ZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUgYi8uZ2l0aWdub3JlCmluZGV4IGVkODM2OGEuLmI1YjQxMTkgMTAwNjQ0Ci0tLSBhLy5naXRpZ25vcmUKKysrIGIvLmdpdGlnbm9yZQpAQCAtMTAsNyArMTAsNyBAQAogCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAjIElERQotCitSZWRpcy14NjQtNS4wLjE0LjEvZHVtcC5yZGIKICMjIyBTVFMgIyMjCiAuYXB0X2dlbmVyYXRlZAogLmNsYXNzcGF0aApkaWZmIC0tZ2l0IGEvcG9tLnhtbCBiL3BvbS54bWwKaW5kZXggNWQ0ZmQ3MS4uZWMwZjEzNiAxMDA2NDQKLS0tIGEvcG9tLnhtbAorKysgYi9wb20ueG1sCkBAIC0xMCw3ICsxMCw3IEBACiAKICAgICA8bmFtZT5ydW95aTwvbmFtZT4KICAgICA8dXJsPmh0dHA6Ly93d3cucnVveWkudmlwPC91cmw+Ci0gICAgPGRlc2NyaXB0aW9uPuiLpeS+neeuoeeQhuezu+e7nzwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uPuWMl+S6pOengeS6ulBU572R56uZPC9kZXNjcmlwdGlvbj4KICAgICAKICAgICA8cHJvcGVydGllcz4KICAgICAgICAgPHJ1b3lpLnZlcnNpb24+My44Ljg8L3J1b3lpLnZlcnNpb24+CkBAIC0xOTEsNyArMTkxLDcgQEAKICAgICAgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuc3ByaW5nZnJhbWV3b3JrLmJvb3Q8L2dyb3VwSWQ+CiAgICAgICAgICAgICAgICAgPGFydGlmYWN0SWQ+c3ByaW5nLWJvb3Qtc3RhcnRlci10ZXN0PC9hcnRpZmFjdElkPgogICAgICAgICAgICAgICAgIDx2ZXJzaW9uPjMuMy4wPC92ZXJzaW9uPgotICAgICAgICAgICAgICAgIDxzY29wZT50ZXN0PC9zY29wZT4KKzwhLS0gICAgICAgICAgICAgICAgPHNjb3BlPnRlc3Q8L3Njb3BlPi0tPgogICAgICAgICAgICAgPC9kZXBlbmRlbmN5PgogCiAgICAgICAgICAgICA8ZGVwZW5kZW5jeT4KZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3BvbS54bWwgYi9ydW95aS1hZG1pbi9wb20ueG1sCmluZGV4IGYxNDdlY2MuLjQ5NDRjOTcgMTAwNjQ0Ci0tLSBhL3J1b3lpLWFkbWluL3BvbS54bWwKKysrIGIvcnVveWktYWRtaW4vcG9tLnhtbApAQCAtMTAsMTEgKzEwLDkgQEAKICAgICA8bW9kZWxWZXJzaW9uPjQuMC4wPC9tb2RlbFZlcnNpb24+CiAgICAgPHBhY2thZ2luZz5qYXI8L3BhY2thZ2luZz4KICAgICA8YXJ0aWZhY3RJZD5ydW95aS1hZG1pbjwvYXJ0aWZhY3RJZD4KLQogICAgIDxkZXNjcmlwdGlvbj4KICAgICAgICAgd2Vi5pyN5Yqh5YWl5Y+jCiAgICAgPC9kZXNjcmlwdGlvbj4KLQogICAgIDxkZXBlbmRlbmNpZXM+CiAKICAgICAgICAgPCEtLSBzcHJpbmctYm9vdC1kZXZ0b29scyAtLT4KQEAgLTM1LDEzICszMyw2MCBAQAogICAgICAgICAgICAgPGdyb3VwSWQ+Y29tLm15c3FsPC9ncm91cElkPgogICAgICAgICAgICAgPGFydGlmYWN0SWQ+bXlzcWwtY29ubmVjdG9yLWo8L2FydGlmYWN0SWQ+CiAgICAgICAgIDwvZGVwZW5kZW5jeT4KKyAgICAgICAgPGRlcGVuZGVuY3k+CisgICAgICAgICAgICA8Z3JvdXBJZD5jb20uZnJvc3R3aXJlPC9ncm91cElkPgorICAgICAgICAgICAgPGFydGlmYWN0SWQ+amxpYnRvcnJlbnQ8L2FydGlmYWN0SWQ+CisgICAgICAgICAgICA8dmVyc2lvbj4xLjIuMC45LVJDNTwvdmVyc2lvbj4KKyAgICAgICAgPC9kZXBlbmRlbmN5PgogCi0gICAgICAgIDwhLS1teWJhdGlzLXBsdXPnmoRzcHJpbmdib2905pSv5oyBLS0+Ci08IS0tICAgICAgICA8ZGVwZW5kZW5jeT4tLT4KLTwhLS0gICAgICAgICAgICA8Z3JvdXBJZD4gICAg5a+85YWl5Yay56qBICAgIGNvbS5iYW9taWRvdTwvZ3JvdXBJZD4tLT4KLTwhLS0gICAgICAgICAgICA8YXJ0aWZhY3RJZD5teWJhdGlzLXBsdXMtYm9vdC1zdGFydGVyPC9hcnRpZmFjdElkPi0tPgotPCEtLSAgICAgICAgICAgIDx2ZXJzaW9uPjMuNS4xMC4xPC92ZXJzaW9uPi0tPgotPCEtLSAgICAgICAgPC9kZXBlbmRlbmN5Pi0tPgorICAgICAgICA8ZGVwZW5kZW5jeT4KKyAgICAgICAgICAgIDxncm91cElkPmNvbS50dXJuPC9ncm91cElkPgorICAgICAgICAgICAgPGFydGlmYWN0SWQ+dHRvcnJlbnQtY29yZTwvYXJ0aWZhY3RJZD4KKyAgICAgICAgICAgIDx2ZXJzaW9uPjEuNTwvdmVyc2lvbj4KKyAgICAgICAgPC9kZXBlbmRlbmN5PgorCisgICAgICAgIDwhLS0gV2ViRmx1eCDnlKjkuo7lpITnkIYgdHJhY2tlciDmjqXlj6MgLS0+CisgICAgICAgIDxkZXBlbmRlbmN5PgorICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLnNwcmluZ2ZyYW1ld29yay5ib290PC9ncm91cElkPgorICAgICAgICAgICAgPGFydGlmYWN0SWQ+c3ByaW5nLWJvb3Qtc3RhcnRlci13ZWJmbHV4PC9hcnRpZmFjdElkPgorICAgICAgICA8L2RlcGVuZGVuY3k+CisgICAgICAgIDxkZXBlbmRlbmN5PgorICAgICAgICAgICAgPGdyb3VwSWQ+Y29tLmRhbXBjYWtlPC9ncm91cElkPgorICAgICAgICAgICAgPGFydGlmYWN0SWQ+YmVuY29kZTwvYXJ0aWZhY3RJZD4KKyAgICAgICAgICAgIDx2ZXJzaW9uPjEuNC4xPC92ZXJzaW9uPgorICAgICAgICA8L2RlcGVuZGVuY3k+CisgICAgICAgIDwhLS0gQXBhY2hlIENvbW1vbnMgQ29kZWMgLS0+CisgICAgICAgIDxkZXBlbmRlbmN5PgorICAgICAgICAgICAgPGdyb3VwSWQ+Y29tbW9ucy1jb2RlYzwvZ3JvdXBJZD4KKyAgICAgICAgICAgIDxhcnRpZmFjdElkPmNvbW1vbnMtY29kZWM8L2FydGlmYWN0SWQ+CisgICAgICAgICAgICA8dmVyc2lvbj4xLjE1PC92ZXJzaW9uPgorICAgICAgICA8L2RlcGVuZGVuY3k+CisgICAgICAgIDwhLS0gSmFja3NvbiBmb3IgSlNPTiBoYW5kbGluZyAtLT4KKyAgICAgICAgPGRlcGVuZGVuY3k+CisgICAgICAgICAgICA8Z3JvdXBJZD5jb20uZmFzdGVyeG1sLmphY2tzb24uY29yZTwvZ3JvdXBJZD4KKyAgICAgICAgICAgIDxhcnRpZmFjdElkPmphY2tzb24tZGF0YWJpbmQ8L2FydGlmYWN0SWQ+CisgICAgICAgICAgICA8dmVyc2lvbj4yLjEzLjM8L3ZlcnNpb24+CisgICAgICAgIDwvZGVwZW5kZW5jeT4KKyAgICAgICAgPGRlcGVuZGVuY3k+CisgICAgICAgICAgICA8Z3JvdXBJZD5jb20uZmFzdGVyeG1sLmphY2tzb24uZGF0YXR5cGU8L2dyb3VwSWQ+CisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5qYWNrc29uLWRhdGF0eXBlLWpzcjMxMDwvYXJ0aWZhY3RJZD4KKyAgICAgICAgICAgIDx2ZXJzaW9uPjIuMTMuMzwvdmVyc2lvbj4KKyAgICAgICAgPC9kZXBlbmRlbmN5PgorICAgICAgICA8ZGVwZW5kZW5jeT4KKyAgICAgICAgICAgIDxncm91cElkPm9yZy5zcHJpbmdmcmFtZXdvcmsuYm9vdDwvZ3JvdXBJZD4KKyAgICAgICAgICAgIDxhcnRpZmFjdElkPnNwcmluZy1ib290LXN0YXJ0ZXItdGVzdDwvYXJ0aWZhY3RJZD4KKyAgICAgICAgICAgIDxzY29wZT50ZXN0PC9zY29wZT4KKyAgICAgICAgPC9kZXBlbmRlbmN5PgorICAgICAgICA8ZGVwZW5kZW5jeT4KKyAgICAgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUuaHR0cGNvbXBvbmVudHM8L2dyb3VwSWQ+CisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5odHRwY29yZTwvYXJ0aWZhY3RJZD4KKyAgICAgICAgICAgIDx2ZXJzaW9uPjQuNC45PC92ZXJzaW9uPgorICAgICAgICA8L2RlcGVuZGVuY3k+CisgICAgICAgIDxkZXBlbmRlbmN5PgorICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLnByb2plY3Rsb21ib2s8L2dyb3VwSWQ+CisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5sb21ib2s8L2FydGlmYWN0SWQ+CisgICAgICAgICAgICA8b3B0aW9uYWw+dHJ1ZTwvb3B0aW9uYWw+CisgICAgICAgIDwvZGVwZW5kZW5jeT4KIAogICAgICAgICA8ZGVwZW5kZW5jeT4KICAgICAgICAgICAgIDxncm91cElkPmNvbS50dXJuLnR0b3JyZW50PC9ncm91cElkPgpAQCAtODEsNiArMTI2LDE0NCBAQAogICAgICAgICAgICAgPGdyb3VwSWQ+Y29tLnJ1b3lpPC9ncm91cElkPgogICAgICAgICAgICAgPGFydGlmYWN0SWQ+cnVveWktZ2VuZXJhdG9yPC9hcnRpZmFjdElkPgogICAgICAgICA8L2RlcGVuZGVuY3k+CisgICAgICAgIDxkZXBlbmRlbmN5PgorICAgICAgICAgICAgPGdyb3VwSWQ+Y29tLmZhc3RlcnhtbC5qYWNrc29uLmNvcmU8L2dyb3VwSWQ+CisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5qYWNrc29uLWRhdGFiaW5kPC9hcnRpZmFjdElkPgorICAgICAgICA8L2RlcGVuZGVuY3k+CisgICAgICAgIDxkZXBlbmRlbmN5PgorICAgICAgICAgICAgPGdyb3VwSWQ+Y29tLmdpdGh1Yi5iZW4tbWFuZXMuY2FmZmVpbmU8L2dyb3VwSWQ+CisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5jYWZmZWluZTwvYXJ0aWZhY3RJZD4KKyAgICAgICAgPC9kZXBlbmRlbmN5PgorICAgICAgICA8ZGVwZW5kZW5jeT4KKyAgICAgICAgICAgIDxncm91cElkPm9yZy5zcHJpbmdmcmFtZXdvcmsuYm9vdDwvZ3JvdXBJZD4KKyAgICAgICAgICAgIDxhcnRpZmFjdElkPnNwcmluZy1ib290LXN0YXJ0ZXItd2ViPC9hcnRpZmFjdElkPgorICAgICAgICA8L2RlcGVuZGVuY3k+CisgICAgICAgIDxkZXBlbmRlbmN5PgorICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLnNwcmluZ2ZyYW1ld29yay5ib290PC9ncm91cElkPgorICAgICAgICAgICAgPGFydGlmYWN0SWQ+c3ByaW5nLWJvb3Qtc3RhcnRlci10b21jYXQ8L2FydGlmYWN0SWQ+CisgICAgICAgIDwvZGVwZW5kZW5jeT4KKyAgICAgICAgPGRlcGVuZGVuY3k+CisgICAgICAgICAgICA8Z3JvdXBJZD5jb21tb25zLWZpbGV1cGxvYWQ8L2dyb3VwSWQ+CisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5jb21tb25zLWZpbGV1cGxvYWQ8L2FydGlmYWN0SWQ+CisgICAgICAgICAgICA8dmVyc2lvbj4xLjQ8L3ZlcnNpb24+CisgICAgICAgIDwvZGVwZW5kZW5jeT4KKyAgICAgICAgPGRlcGVuZGVuY3k+CisgICAgICAgICAgICA8Z3JvdXBJZD5jb21tb25zLWlvPC9ncm91cElkPgorICAgICAgICAgICAgPGFydGlmYWN0SWQ+Y29tbW9ucy1pbzwvYXJ0aWZhY3RJZD4KKyAgICAgICAgICAgIDx2ZXJzaW9uPjIuMTEuMDwvdmVyc2lvbj4KKyAgICAgICAgPC9kZXBlbmRlbmN5PgorCisgICAgICAgIDxkZXBlbmRlbmN5PgorICAgICAgICAgICAgPGdyb3VwSWQ+Y29tLmdpdGh1Yi54aWFveW1pbjwvZ3JvdXBJZD4KKyAgICAgICAgICAgIDxhcnRpZmFjdElkPmtuaWZlNGotb3BlbmFwaTMtamFrYXJ0YS1zcHJpbmctYm9vdC1zdGFydGVyPC9hcnRpZmFjdElkPgorICAgICAgICAgICAgPHZlcnNpb24+NC41LjA8L3ZlcnNpb24+CisgICAgICAgIDwvZGVwZW5kZW5jeT4KKyAgICAgICAgPGRlcGVuZGVuY3k+CisgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuZmx5d2F5ZGI8L2dyb3VwSWQ+CisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5mbHl3YXktY29yZTwvYXJ0aWZhY3RJZD4KKyAgICAgICAgPC9kZXBlbmRlbmN5PgorICAgICAgICA8ZGVwZW5kZW5jeT4KKyAgICAgICAgICAgIDxncm91cElkPm9yZy5mbHl3YXlkYjwvZ3JvdXBJZD4KKyAgICAgICAgICAgIDxhcnRpZmFjdElkPmZseXdheS1teXNxbDwvYXJ0aWZhY3RJZD4KKyAgICAgICAgPC9kZXBlbmRlbmN5PgorICAgICAgICA8ZGVwZW5kZW5jeT4KKyAgICAgICAgICAgIDxncm91cElkPmNvbS5teXNxbDwvZ3JvdXBJZD4KKyAgICAgICAgICAgIDxhcnRpZmFjdElkPm15c3FsLWNvbm5lY3Rvci1qPC9hcnRpZmFjdElkPgorICAgICAgICA8L2RlcGVuZGVuY3k+CisgICAgICAgIDxkZXBlbmRlbmN5PgorICAgICAgICAgICAgPGdyb3VwSWQ+Y29tLmJhb21pZG91PC9ncm91cElkPgorICAgICAgICAgICAgPGFydGlmYWN0SWQ+bXliYXRpcy1wbHVzLXNwcmluZy1ib290My1zdGFydGVyPC9hcnRpZmFjdElkPgorICAgICAgICAgICAgPHZlcnNpb24+My41LjU8L3ZlcnNpb24+CisgICAgICAgIDwvZGVwZW5kZW5jeT4KKyAgICAgICAgPGRlcGVuZGVuY3k+CisgICAgICAgICAgICA8Z3JvdXBJZD5qYWthcnRhLnNlcnZsZXQ8L2dyb3VwSWQ+CisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5qYWthcnRhLnNlcnZsZXQtYXBpPC9hcnRpZmFjdElkPgorICAgICAgICAgICAgPHZlcnNpb24+JHtqYWthcnRhLnZlcnNpb259PC92ZXJzaW9uPgorICAgICAgICA8L2RlcGVuZGVuY3k+CisgICAgICAgIDxkZXBlbmRlbmN5PgorICAgICAgICAgICAgPGdyb3VwSWQ+Y29tLmdpdGh1Yi5wYWdlaGVscGVyPC9ncm91cElkPgorICAgICAgICAgICAgPGFydGlmYWN0SWQ+cGFnZWhlbHBlci1zcHJpbmctYm9vdC1zdGFydGVyPC9hcnRpZmFjdElkPgorICAgICAgICAgICAgPHZlcnNpb24+MS40Ljc8L3ZlcnNpb24+CisgICAgICAgIDwvZGVwZW5kZW5jeT4KKworICAgICAgICA8ZGVwZW5kZW5jeT4KKyAgICAgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUuY29tbW9uczwvZ3JvdXBJZD4KKyAgICAgICAgICAgIDxhcnRpZmFjdElkPmNvbW1vbnMtbGFuZzM8L2FydGlmYWN0SWQ+CisgICAgICAgIDwvZGVwZW5kZW5jeT4KKyAgICAgICAgPGRlcGVuZGVuY3k+CisgICAgICAgICAgICA8Z3JvdXBJZD5jb20uYWxpYmFiYTwvZ3JvdXBJZD4KKyAgICAgICAgICAgIDxhcnRpZmFjdElkPmZhc3Rqc29uPC9hcnRpZmFjdElkPgorICAgICAgICAgICAgPHZlcnNpb24+JHtmYXN0anNvbi52ZXJzaW9ufTwvdmVyc2lvbj4KKyAgICAgICAgPC9kZXBlbmRlbmN5PgorICAgICAgICA8ZGVwZW5kZW5jeT4KKyAgICAgICAgICAgIDxncm91cElkPmNuLmh1dG9vbDwvZ3JvdXBJZD4KKyAgICAgICAgICAgIDxhcnRpZmFjdElkPmh1dG9vbC1hbGw8L2FydGlmYWN0SWQ+CisgICAgICAgICAgICA8dmVyc2lvbj41LjguNjwvdmVyc2lvbj4KKyAgICAgICAgPC9kZXBlbmRlbmN5PgorCisgICAgICAgIDxkZXBlbmRlbmN5PgorICAgICAgICAgICAgPGdyb3VwSWQ+Y29tLmRhbXBjYWtlPC9ncm91cElkPgorICAgICAgICAgICAgPGFydGlmYWN0SWQ+YmVuY29kZTwvYXJ0aWZhY3RJZD4KKyAgICAgICAgICAgIDx2ZXJzaW9uPjEuNC4xPC92ZXJzaW9uPgorICAgICAgICA8L2RlcGVuZGVuY3k+CisKKyAgICAgICAgPCEtLSBodHRwczovL212bnJlcG9zaXRvcnkuY29tL2FydGlmYWN0L2NvbS5naXRodWIuYXhldC9rYXB0Y2hhIC0tPgorICAgICAgICA8ZGVwZW5kZW5jeT4KKyAgICAgICAgICAgIDxncm91cElkPmNvbS5naXRodWIuYXhldDwvZ3JvdXBJZD4KKyAgICAgICAgICAgIDxhcnRpZmFjdElkPmthcHRjaGE8L2FydGlmYWN0SWQ+CisgICAgICAgICAgICA8dmVyc2lvbj4wLjAuOTwvdmVyc2lvbj4KKyAgICAgICAgPC9kZXBlbmRlbmN5PgorCisgICAgICAgIDxkZXBlbmRlbmN5PgorICAgICAgICAgICAgPGdyb3VwSWQ+Y29tLmdpdGh1Yi5ob3ViYjwvZ3JvdXBJZD4KKyAgICAgICAgICAgIDxhcnRpZmFjdElkPnNlbnNpdGl2ZS13b3JkPC9hcnRpZmFjdElkPgorICAgICAgICAgICAgPHZlcnNpb24+MC4yLjE8L3ZlcnNpb24+CisgICAgICAgIDwvZGVwZW5kZW5jeT4KKyAgICAgICAgPGRlcGVuZGVuY3k+CisgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuc3ByaW5nZnJhbWV3b3JrLmRhdGE8L2dyb3VwSWQ+CisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5zcHJpbmctZGF0YS1yZWRpczwvYXJ0aWZhY3RJZD4KKyAgICAgICAgPC9kZXBlbmRlbmN5PgorCisgICAgICAgIDwhLS0gU2EtVG9rZW4g5p2D6ZmQ6K6k6K+B77yM5Zyo57q/5paH5qGj77yaaHR0cHM6Ly9zYS10b2tlbi5jYyAtLT4KKyAgICAgICAgPGRlcGVuZGVuY3k+CisgICAgICAgICAgICA8Z3JvdXBJZD5jbi5kZXYzMzwvZ3JvdXBJZD4KKyAgICAgICAgICAgIDxhcnRpZmFjdElkPnNhLXRva2VuLXNwcmluZy1ib290My1zdGFydGVyPC9hcnRpZmFjdElkPgorICAgICAgICAgICAgPHZlcnNpb24+MS4zOC4wPC92ZXJzaW9uPgorICAgICAgICA8L2RlcGVuZGVuY3k+CisgICAgICAgIDwhLS0gU2EtVG9rZW4g5pW05ZCIIFNwcmluZ0FPUCDlrp7njrDms6jop6PpibTmnYMgLS0+CisgICAgICAgIDxkZXBlbmRlbmN5PgorICAgICAgICAgICAgPGdyb3VwSWQ+Y24uZGV2MzM8L2dyb3VwSWQ+CisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5zYS10b2tlbi1zcHJpbmctYW9wPC9hcnRpZmFjdElkPgorICAgICAgICAgICAgPHZlcnNpb24+MS4zOC4wPC92ZXJzaW9uPgorICAgICAgICA8L2RlcGVuZGVuY3k+CisKKyAgICAgICAgPCEtLSBTYS1Ub2tlbiDmlbTlkIggand0IC0tPgorICAgICAgICA8ZGVwZW5kZW5jeT4KKyAgICAgICAgICAgIDxncm91cElkPmNuLmRldjMzPC9ncm91cElkPgorICAgICAgICAgICAgPGFydGlmYWN0SWQ+c2EtdG9rZW4tand0PC9hcnRpZmFjdElkPgorICAgICAgICAgICAgPHZlcnNpb24+MS4zOC4wPC92ZXJzaW9uPgorICAgICAgICA8L2RlcGVuZGVuY3k+CisgICAgICAgIDwhLS0gU2EtVG9rZW4g5pW05ZCIIFJlZGlzIO+8iOS9v+eUqCBqYWNrc29uIOW6j+WIl+WMluaWueW8j++8iSAtLT4KKyAgICAgICAgPGRlcGVuZGVuY3k+CisgICAgICAgICAgICA8Z3JvdXBJZD5jbi5kZXYzMzwvZ3JvdXBJZD4KKyAgICAgICAgICAgIDxhcnRpZmFjdElkPnNhLXRva2VuLXJlZGlzLWphY2tzb248L2FydGlmYWN0SWQ+CisgICAgICAgICAgICA8dmVyc2lvbj4xLjM4LjA8L3ZlcnNpb24+CisgICAgICAgIDwvZGVwZW5kZW5jeT4KKyAgICAgICAgPCEtLSDmj5DkvptSZWRpc+i/nuaOpeaxoCAtLT4KKyAgICAgICAgPGRlcGVuZGVuY3k+CisgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLmNvbW1vbnM8L2dyb3VwSWQ+CisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5jb21tb25zLXBvb2wyPC9hcnRpZmFjdElkPgorICAgICAgICA8L2RlcGVuZGVuY3k+CisgICAgICAgIDxkZXBlbmRlbmN5PgorICAgICAgICAgICAgPGdyb3VwSWQ+Y29tLndhcnJlbnN0cmFuZ2U8L2dyb3VwSWQ+CisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5nb29nbGVhdXRoPC9hcnRpZmFjdElkPgorICAgICAgICAgICAgPHZlcnNpb24+MS41LjA8L3ZlcnNpb24+CisgICAgICAgIDwvZGVwZW5kZW5jeT4KKyAgICAgICAgPGRlcGVuZGVuY3k+CisgICAgICAgICAgICA8Z3JvdXBJZD5jb20uZ2l0aHViLnNlYW5jZm9sZXk8L2dyb3VwSWQ+CisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5pcGFkZHJlc3M8L2FydGlmYWN0SWQ+CisgICAgICAgICAgICA8dmVyc2lvbj41LjUuMDwvdmVyc2lvbj4KKyAgICAgICAgPC9kZXBlbmRlbmN5PgogCiAgICAgICAgIDwhLS0g5rWL6K+V5L6d6LWWIC0tPgogICAgICAgICA8ZGVwZW5kZW5jeT4KQEAgLTg4LDIyICsyNzEsMTYgQEAKICAgICAgICAgICAgIDxhcnRpZmFjdElkPnNwcmluZy1ib290LXN0YXJ0ZXItdGVzdDwvYXJ0aWZhY3RJZD4KICAgICAgICAgICAgIDxzY29wZT50ZXN0PC9zY29wZT4KICAgICAgICAgPC9kZXBlbmRlbmN5PgotCi0gICAgICAgIDxkZXBlbmRlbmN5PgotICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmp1bml0Lmp1cGl0ZXI8L2dyb3VwSWQ+Ci0gICAgICAgICAgICA8YXJ0aWZhY3RJZD5qdW5pdC1qdXBpdGVyPC9hcnRpZmFjdElkPgotICAgICAgICAgICAgPHNjb3BlPnRlc3Q8L3Njb3BlPgotICAgICAgICA8L2RlcGVuZGVuY3k+Ci0KICAgICAgICAgPGRlcGVuZGVuY3k+CiAgICAgICAgICAgICA8Z3JvdXBJZD5vcmcubW9ja2l0bzwvZ3JvdXBJZD4KICAgICAgICAgICAgIDxhcnRpZmFjdElkPm1vY2tpdG8tY29yZTwvYXJ0aWZhY3RJZD4KKyAgICAgICAgICAgIDx2ZXJzaW9uPjUuNS4wPC92ZXJzaW9uPiA8IS0tIOaUueS4uueItumhueebrueahOeJiOacrCAtLT4KICAgICAgICAgICAgIDxzY29wZT50ZXN0PC9zY29wZT4KICAgICAgICAgPC9kZXBlbmRlbmN5PgotCiAgICAgICAgIDxkZXBlbmRlbmN5PgogICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLm1vY2tpdG88L2dyb3VwSWQ+CiAgICAgICAgICAgICA8YXJ0aWZhY3RJZD5tb2NraXRvLWp1bml0LWp1cGl0ZXI8L2FydGlmYWN0SWQ+CisgICAgICAgICAgICA8dmVyc2lvbj41LjUuMDwvdmVyc2lvbj4gPCEtLSDmlLnkuLrniLbpobnnm67nmoTniYjmnKwgLS0+CiAgICAgICAgICAgICA8c2NvcGU+dGVzdDwvc2NvcGU+CiAgICAgICAgIDwvZGVwZW5kZW5jeT4KIApAQCAtMTI3LDEwICszMDQsMTAgQEAKICAgICAgICAgICAgIDxwbHVnaW4+CiAgICAgICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLnNwcmluZ2ZyYW1ld29yay5ib290PC9ncm91cElkPgogICAgICAgICAgICAgICAgIDxhcnRpZmFjdElkPnNwcmluZy1ib290LW1hdmVuLXBsdWdpbjwvYXJ0aWZhY3RJZD4KLSAgICAgICAgICAgICAgICA8dmVyc2lvbj4yLjUuMTU8L3ZlcnNpb24+Ci0gICAgICAgICAgICAgICAgPGNvbmZpZ3VyYXRpb24+Ci0gICAgICAgICAgICAgICAgICAgIDxmb3JrPnRydWU8L2Zvcms+IDwhLS0g5aaC5p6c5rKh5pyJ6K+l6YWN572u77yMZGV2dG9vbHPkuI3kvJrnlJ/mlYggLS0+Ci0gICAgICAgICAgICAgICAgPC9jb25maWd1cmF0aW9uPgorICAgICAgICAgICAgICAgIDx2ZXJzaW9uPjMuMy4wPC92ZXJzaW9uPiA8IS0tIOaUueS4uueItumhueebrueahOeJiOacrCAtLT4KKzwhLS0gICAgICAgICAgICAgICAgPGNvbmZpZ3VyYXRpb24+LS0+Cis8IS0tICAgICAgICAgICAgICAgICAgICA8Zm9yaz50cnVlPC9mb3JrPi0tPgorPCEtLSAgICAgICAgICAgICAgICA8L2NvbmZpZ3VyYXRpb24+LS0+CiAgICAgICAgICAgICAgICAgPGV4ZWN1dGlvbnM+CiAgICAgICAgICAgICAgICAgICAgIDxleGVjdXRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICA8Z29hbHM+CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS9SdW9ZaUFwcGxpY2F0aW9uLmphdmEgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS9SdW9ZaUFwcGxpY2F0aW9uLmphdmEKaW5kZXggOGE1ZmRmZS4uZmZkYTBlNyAxMDA2NDQKLS0tIGEvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvUnVvWWlBcHBsaWNhdGlvbi5qYXZhCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL1J1b1lpQXBwbGljYXRpb24uamF2YQpAQCAtMTEsNiArMTEsNyBAQAogICogCiAgKiBAYXV0aG9yIHJ1b3lpCiAgKi8KKwogQENvbXBvbmVudFNjYW4oYmFzZVBhY2thZ2VzID0gewogICAgICAgICAiY29tLnJ1b3lpIiwKICAgICAgICAgImJvdW50eSIgIC8vIOaWsOWinuaCqOeahOWMhei3r+W+hApAQCAtMTgsMTIgKzE5LDE1IEBACiAvLyDlhbPplK7mt7vliqDvvJrmianlpKdNeUJhdGlz5o6l5Y+j5omr5o+P6IyD5Zu0CiBATWFwcGVyU2NhbihiYXNlUGFja2FnZXMgPSB7CiAgICAgICAgICJjb20ucnVveWkuKioubWFwcGVyIiwKLSAgICAgICAgImJvdW50eS5tYXBwZXIiICAvLyDlpoLmnpxib3VudHnkuIvmnIlNYXBwZXLmjqXlj6MKKyAgICAgICAgImJvdW50eS5tYXBwZXIiLAorICAgICAgICAiY29tLnJ1b3lpLndlYi5kYW8uQlQiLAorICAgICAgICAiY29tLnJ1b3lpLndlYi5kYW8uc3lzIgogfSkKIAogQFNwcmluZ0Jvb3RBcHBsaWNhdGlvbihleGNsdWRlID0geyBEYXRhU291cmNlQXV0b0NvbmZpZ3VyYXRpb24uY2xhc3MgfSkKIHB1YmxpYyBjbGFzcyBSdW9ZaUFwcGxpY2F0aW9uIHsKICAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CisKICAgICAgICAgLy8gU3lzdGVtLnNldFByb3BlcnR5KCJzcHJpbmcuZGV2dG9vbHMucmVzdGFydC5lbmFibGVkIiwgImZhbHNlIik7CiAgICAgICAgIFNwcmluZ0FwcGxpY2F0aW9uLnJ1bihSdW9ZaUFwcGxpY2F0aW9uLmNsYXNzLCBhcmdzKTsKICAgICAgICAgLy8gQU5TSSBlc2NhcGUgY29kZSBmb3IgYmx1ZSB0ZXh0CkBAIC0zMSw2ICszNSw2IEBACiAgICAgICAgIC8vIEFOU0kgZXNjYXBlIGNvZGUgdG8gcmVzZXQgdGV4dCBjb2xvcgogICAgICAgICBTdHJpbmcgcmVzZXQgPSAiXHUwMDFCWzBtIjsKIAotICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oYmx1ZSArICIgLS0tLei0vuS7gee/lCDllrXllrXllrUiICsgcmVzZXQpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oYmx1ZSArICIgLS0tLeaIkeeIsembqOa7lOi6q+S9k+WlveWlvSDllrXllrUg5Za1IOWWtSIgKyByZXNldCk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvV2ViQ29uZmlnLmphdmEgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS9XZWJDb25maWcuamF2YQppbmRleCA1NWQyZTM0Li4zMDgwOGM4IDEwMDY0NAotLS0gYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS9XZWJDb25maWcuamF2YQorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS9XZWJDb25maWcuamF2YQpAQCAtMSw2ICsxLDggQEAKIHBhY2thZ2UgY29tLnJ1b3lpOwogCitpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay5jb250ZXh0LmFubm90YXRpb24uQmVhbjsKIGltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLmNvbnRleHQuYW5ub3RhdGlvbi5Db25maWd1cmF0aW9uOworaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsud2ViLmZpbHRlci5DaGFyYWN0ZXJFbmNvZGluZ0ZpbHRlcjsKIGltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLndlYi5zZXJ2bGV0LmNvbmZpZy5hbm5vdGF0aW9uLlJlc291cmNlSGFuZGxlclJlZ2lzdHJ5OwogaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsud2ViLnNlcnZsZXQuY29uZmlnLmFubm90YXRpb24uV2ViTXZjQ29uZmlndXJlcjsKIApAQCAtMTEsNCArMTMsMTEgQEAKICAgICAgICAgcmVnaXN0cnkuYWRkUmVzb3VyY2VIYW5kbGVyKCIvdXBsb2Fkcy8qKiIpCiAgICAgICAgICAgICAgICAgLmFkZFJlc291cmNlTG9jYXRpb25zKCJmaWxlOnVwbG9hZHMvIik7CiAgICAgfQorICAgIEBCZWFuCisgICAgcHVibGljIENoYXJhY3RlckVuY29kaW5nRmlsdGVyIGNoYXJhY3RlckVuY29kaW5nRmlsdGVyKCkgeworICAgICAgICBDaGFyYWN0ZXJFbmNvZGluZ0ZpbHRlciBmaWx0ZXIgPSBuZXcgQ2hhcmFjdGVyRW5jb2RpbmdGaWx0ZXIoKTsKKyAgICAgICAgZmlsdGVyLnNldEVuY29kaW5nKCJVVEYtOCIpOworICAgICAgICBmaWx0ZXIuc2V0Rm9yY2VFbmNvZGluZyh0cnVlKTsgLy8g5by65Yi26KaG55uW5ZON5bqU57yW56CBCisgICAgICAgIHJldHVybiBmaWx0ZXI7CisgICAgfQogfQpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL1NlcnZlci9Bbm5vdW5jZVNlcnZpY2UuamF2YSBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9TZXJ2ZXIvQW5ub3VuY2VTZXJ2aWNlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjk4M2FjZAotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9TZXJ2ZXIvQW5ub3VuY2VTZXJ2aWNlLmphdmEKQEAgLTAsMCArMSwyNDggQEAKK3BhY2thZ2UgY29tLnJ1b3lpLndlYi5TZXJ2ZXI7CisKK2ltcG9ydCBjb20uYWxpYmFiYS5mYXN0anNvbi5KU09OOworaW1wb3J0IGNvbS5ydW95aS53ZWIuZGFvLnN5cy5Vc2VyRGFvOworaW1wb3J0IGNvbS5ydW95aS53ZWIuZG9tYWluLkJULlRvcnJlbnRFbnRpdHk7CitpbXBvcnQgY29tLnJ1b3lpLndlYi5kb21haW4uQlQuVG9ycmVudFBlZXJFbnRpdHk7CitpbXBvcnQgY29tLnJ1b3lpLndlYi5kb21haW4uc3lzLlVzZXJFbnRpdHk7CitpbXBvcnQgY29tLnJ1b3lpLndlYi5kYW8uQlQuQW5ub3VuY2VSZXF1ZXN0OworaW1wb3J0IGNvbS5ydW95aS53ZWIuZGFvLkJULlRyYWNrZXJSZXNwb25zZTsKK2ltcG9ydCBjb20ucnVveWkud2ViLlNlcnZlci5zeXMuVXNlclNlcnZpY2U7CitpbXBvcnQgY29tLnJ1b3lpLndlYi5TZXJ2ZXIudmFsaWRhdG9yLlZhbGlkYXRpb25NYW5hZ2VyOworaW1wb3J0IGNvbS5ydW95aS53ZWIuU2VydmVyLkJULlRvcnJlbnRQZWVyU2VydmljZTsKK2ltcG9ydCBsb21ib2suUmVxdWlyZWRBcmdzQ29uc3RydWN0b3I7CitpbXBvcnQgbG9tYm9rLmV4dGVybi5zbGY0ai5TbGY0ajsKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMubGFuZzMuU3RyaW5nVXRpbHM7CitpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay5zdGVyZW90eXBlLlNlcnZpY2U7CisKK2ltcG9ydCBqYXZhLnRpbWUuSW5zdGFudDsKK2ltcG9ydCBqYXZhLnRpbWUuTG9jYWxEYXRlVGltZTsKK2ltcG9ydCBqYXZhLnRpbWUuWm9uZU9mZnNldDsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5PYmplY3RzOworaW1wb3J0IGphdmEudXRpbC5zdHJlYW0uQ29sbGVjdG9yczsKKworQFNlcnZpY2UKK0BTbGY0agorQFJlcXVpcmVkQXJnc0NvbnN0cnVjdG9yCitwdWJsaWMgY2xhc3MgQW5ub3VuY2VTZXJ2aWNlIHsKKworICAgIGZpbmFsIFVzZXJEYW8gdXNlckRhbzsKKyAgICBmaW5hbCBVc2VyU2VydmljZSB1c2VyU2VydmljZTsKKworICAgIGZpbmFsIFRvcnJlbnRQZWVyU2VydmljZSB0b3JyZW50UGVlclNlcnZpY2U7CisKKworICAgIGZpbmFsIFZhbGlkYXRpb25NYW5hZ2VyIHZhbGlkYXRpb25NYW5hZ2VyOworCisgICAgcHVibGljIE1hcDxTdHJpbmcsIE9iamVjdD4gYW5ub3VuY2UoQW5ub3VuY2VSZXF1ZXN0IHJlcXVlc3QpIHsKKworICAgICAgICB2YWxpZGF0aW9uTWFuYWdlci52YWxpZGF0ZShyZXF1ZXN0KTsKKworICAgICAgICAvL1RPRE8g5aSE55CG55+t5pe26Ze05YaF6YeN5aSN55qE6K+35rGCCisKKyAgICAgICAgVG9ycmVudEVudGl0eSB0b3JyZW50ID0gcmVxdWVzdC5nZXRUb3JyZW50KCk7CisKKyAgICAgICAgLy/nnIHnlaVwZWVyIGlkCisgICAgICAgIGJvb2xlYW4gbm9QZWVySWQgPSByZXF1ZXN0LmlzTm9QZWVySWQoKTsKKworICAgICAgICBMaXN0PE1hcDxTdHJpbmcsIE9iamVjdD4+IHBlZXJMaXN0ID0gZ2V0UGVlckxpc3QocmVxdWVzdCwgMjAwKTsKKworICAgICAgICB1cGRhdGVQZWVyKHJlcXVlc3QsIG51bGwpOworCisgICAgICAgIHVwZGF0ZVVzZXJJbmZvKHJlcXVlc3QpOworICAgICAgICAvLyDov5Tlm55wZWVy5YiX6KGo57uZ5a6i5oi356uvCisgICAgICAgIC8vVE9ETyDpu5jorqTlgLzmmK82MO+8jOaUueS4uuWKqOaAgeiwg+aVtAorICAgICAgICBJbnRlZ2VyIGludGVydmFsID0gZ2V0QW5ub3VuY2VJbnRlcnZhbChyZXF1ZXN0KTsKKyAgICAgICAgVHJhY2tlclJlc3BvbnNlIHRyYWNrZXJSZXNwb25zZSA9IFRyYWNrZXJSZXNwb25zZS5idWlsZChpbnRlcnZhbCwgNjAsIHRvcnJlbnQuZ2V0U2VlZGVycygpLCB0b3JyZW50LmdldExlZWNoZXJzKCksIHBlZXJMaXN0KTsKKyAgICAgICAgcmV0dXJuIHRyYWNrZXJSZXNwb25zZS50b1Jlc3VsdE1hcCgpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCB1cGRhdGVVc2VySW5mbyhBbm5vdW5jZVJlcXVlc3QgcmVxdWVzdCkgeworICAgICAgICBVc2VyRW50aXR5IHVzZXIgPSByZXF1ZXN0LmdldFVzZXIoKTsKKyAgICAgICAgVG9ycmVudEVudGl0eSB0b3JyZW50ID0gcmVxdWVzdC5nZXRUb3JyZW50KCk7CisgICAgICAgIEludGVnZXIgdXNlcklkID0gcmVxdWVzdC5nZXRVc2VyKCkuZ2V0VXNlcl9pZCgpLmludFZhbHVlKCk7CisgICAgICAgIEludGVnZXIgdG9ycmVudElkID0gcmVxdWVzdC5nZXRUb3JyZW50KCkuZ2V0SWQoKTsKKworICAgICAgICBUb3JyZW50UGVlckVudGl0eSBwZWVyID0gdG9ycmVudFBlZXJTZXJ2aWNlLmdldFBlZXIodXNlcklkLCB0b3JyZW50SWQsIHJlcXVlc3QuZ2V0UGVlcklkKCkpOworICAgICAgICBpZiAocGVlciA9PSBudWxsKSB7CisgICAgICAgICAgICAvL1RPRE8KKyAgICAgICAgICAgIHBlZXIgPSB0cnlJbnNlcnRPclVwZGF0ZVBlZXIocmVxdWVzdCk7CisgICAgICAgIH0KKworICAgICAgICBsb25nIGxhc3RVcGxvYWRlZCA9IHBlZXIuZ2V0VXBsb2FkZWQoKTsKKyAgICAgICAgbG9uZyBsYXN0RG93bmxvYWQgPSBwZWVyLmdldERvd25sb2FkZWQoKTsKKyAgICAgICAgbG9uZyB1cGxvYWRlZE9mZnNldCA9IHJlcXVlc3QuZ2V0VXBsb2FkZWQoKSAtIGxhc3RVcGxvYWRlZDsKKyAgICAgICAgbG9uZyBkb3dubG9hZGVkT2Zmc2V0ID0gcmVxdWVzdC5nZXREb3dubG9hZGVkKCkgLSBsYXN0RG93bmxvYWQ7CisKKyAgICAgICAgTG9jYWxEYXRlVGltZSB1cGRhdGVUaW1lID0gdG9ycmVudC5nZXRVcGRhdGVUaW1lKCk7CisgICAgICAgIGlmICh1cGxvYWRlZE9mZnNldCA8IDApIHsKKyAgICAgICAgICAgIHVwbG9hZGVkT2Zmc2V0ID0gcmVxdWVzdC5nZXRVcGxvYWRlZCgpOworICAgICAgICB9CisgICAgICAgIGlmIChkb3dubG9hZGVkT2Zmc2V0IDwgMCkgeworICAgICAgICAgICAgZG93bmxvYWRlZE9mZnNldCA9IHJlcXVlc3QuZ2V0RG93bmxvYWRlZCgpOworICAgICAgICB9CisKKyAgICAgICAgdXNlci5zZXRSZWFsX2Rvd25sb2FkZWQoT2JqZWN0cy5ub25OdWxsKHVzZXIuZ2V0UmVhbF9kb3dubG9hZGVkKCkpPyB1c2VyLmdldFJlYWxfZG93bmxvYWRlZCgpK2xhc3REb3dubG9hZDpsYXN0RG93bmxvYWQpOworICAgICAgICB1c2VyLnNldFJlYWxfdXBsb2FkZWQoT2JqZWN0cy5ub25OdWxsKHVzZXIuZ2V0UmVhbF91cGxvYWRlZCgpKT91c2VyLmdldFJlYWxfdXBsb2FkZWQoKStsYXN0VXBsb2FkZWQ6IGxhc3RVcGxvYWRlZCk7CisKKyAgICAgICAgLy9UT0RPIOS8mOaDoAorICAgICAgICB1c2VyLnNldFVwbG9hZCh1c2VyLmdldFVwbG9hZCgpICsgdXBsb2FkZWRPZmZzZXQpOworICAgICAgICB1c2VyLnNldERvd25sb2FkKHVzZXIuZ2V0RG93bmxvYWQoKSArIGRvd25sb2FkZWRPZmZzZXQpOworICAgICAgICB1c2VyLnNldFNlZWR0aW1lKHVzZXIuZ2V0U2VlZHRpbWUoKSArIChJbnN0YW50Lm5vdygpLnRvRXBvY2hNaWxsaSgpIC0gdXBkYXRlVGltZS50b0luc3RhbnQoWm9uZU9mZnNldC5VVEMpLnRvRXBvY2hNaWxsaSgpKSk7CisgICAgICAgIHVzZXJTZXJ2aWNlLnVwZGF0ZUJ5SWQodXNlcik7CisKKyAgICAgICAgLy9UT0RPIOacgOWQjuWkhOeQhuWIoOmZpAorICAgICAgICAvL1RPRE8g5qCh5q2jQkVQ5qCH5YeG55qE6K6h566X5pa55byPCisKKworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHVwZGF0ZVBlZXIoQW5ub3VuY2VSZXF1ZXN0IHJlcXVlc3QsIFRvcnJlbnRQZWVyRW50aXR5IHBlZXJTZWxmKSB7CisgICAgICAgIFN0cmluZyBldmVudCA9IFN0cmluZ1V0aWxzLnRyaW1Ub0VtcHR5KHJlcXVlc3QuZ2V0RXZlbnQoKSk7CisgICAgICAgIGxvZy5pbmZvKCJQZWVyIGV2ZW50IHt9OiB7fSIsIGV2ZW50LCBKU09OLnRvSlNPTlN0cmluZyhyZXF1ZXN0LCB0cnVlKSk7CisgICAgICAgIEludGVnZXIgdXNlcklkID0gcmVxdWVzdC5nZXRVc2VyKCkuZ2V0VXNlcl9pZCgpLmludFZhbHVlKCk7CisgICAgICAgIEludGVnZXIgdG9ycmVudElkID0gcmVxdWVzdC5nZXRUb3JyZW50KCkuZ2V0SWQoKTsKKyAgICAgICAgLy9UT0RPIOWKoOWFpeWIhuW4g+W8j+mUgQorCisgICAgICAgIC8vIOS7u+WKoeWBnOatoiDliKDpmaRwZWVyCisgICAgICAgIGlmIChBbm5vdW5jZVJlcXVlc3QuRXZlbnRUeXBlLnN0b3BwZWQuZXF1YWxzSWdub3JlQ2FzZShldmVudCkpIHsKKworICAgICAgICAgICAgLy8g5Y+q5pyJ5b2T5pyJcGVlcuWtmOWcqOeahOaXtuWAmeaJjeaJp+ihjOWIoOmZpOaTjeS9nAorICAgICAgICAgICAgaWYgKHRvcnJlbnRQZWVyU2VydmljZS5wZWVyRXhpc3RzKHVzZXJJZCwgdG9ycmVudElkLCByZXF1ZXN0LmdldFBlZXJJZCgpKSkgeworICAgICAgICAgICAgICAgIHRvcnJlbnRQZWVyU2VydmljZS5kZWxldGUodXNlcklkLCB0b3JyZW50SWQsIHJlcXVlc3QuZ2V0UGVlcklkSGV4KCkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0gZWxzZSBpZiAoQW5ub3VuY2VSZXF1ZXN0LkV2ZW50VHlwZS5zdGFydGVkLmVxdWFsc0lnbm9yZUNhc2UoZXZlbnQpKSB7CisgICAgICAgICAgICB0cnlJbnNlcnRPclVwZGF0ZVBlZXIocmVxdWVzdCk7CisKKyAgICAgICAgfSBlbHNlIGlmIChBbm5vdW5jZVJlcXVlc3QuRXZlbnRUeXBlLmNvbXBsZXRlZC5lcXVhbHNJZ25vcmVDYXNlKGV2ZW50KSkgeworICAgICAgICAgICAgdG9ycmVudFBlZXJTZXJ2aWNlLmRlbGV0ZSh1c2VySWQsIHRvcnJlbnRJZCwgcmVxdWVzdC5nZXRQZWVySWRIZXgoKSk7CisgICAgICAgICAgICB0cnlJbnNlcnRPclVwZGF0ZVBlZXIocmVxdWVzdCk7CisKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRvcnJlbnRQZWVyU2VydmljZS5kZWxldGUodXNlcklkLCB0b3JyZW50SWQsIHJlcXVlc3QuZ2V0UGVlcklkSGV4KCkpOworICAgICAgICAgICAgdHJ5SW5zZXJ0T3JVcGRhdGVQZWVyKHJlcXVlc3QpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICog6I635Y+WIHBlZXIg5YiX6KGoCisgICAgICoKKyAgICAgKiBAcGFyYW0gcGVlck51bVdhbnQg6L+Z5Liq5Y+C5pWw6KGo5piO5L2g5biM5pyb5LuO5pa55rOV6L+U5Zue5aSa5bCR5LiqIHBlZXJz44CC5aaC5p6c5b2T5YmN55qE57O757uf5Lit546w5pyJ55qEIHBlZXIg5pWw6YeP5bCP5LqO5L2g5oOz6KaB55qEIHBlZXJOdW1XYW5077yM6YKj5LmI5bCx6L+U5Zue5omA5pyJ55qECisgICAgICogICAgICAgICAgICAgICAgICAgIHBlZXJz77yb5ZCm5YiZ77yM5Y+q6L+U5Zue5L2g5oOz6KaB55qEIHBlZXJOdW1XYW50IOaVsOmHj+eahCBwZWVyc+OAggorICAgICAqIEByZXR1cm4KKyAgICAgKi8KKyAgICBwcml2YXRlIExpc3Q8TWFwPFN0cmluZywgT2JqZWN0Pj4gZ2V0UGVlckxpc3QoQW5ub3VuY2VSZXF1ZXN0IHJlcXVlc3QsIEludGVnZXIgcGVlck51bVdhbnQpIHsKKworICAgICAgICBJbnRlZ2VyIHRvcnJlbnRJZCA9IHJlcXVlc3QuZ2V0VG9ycmVudCgpLmdldElkKCk7CisgICAgICAgIEJvb2xlYW4gc2VlZGVyID0gcmVxdWVzdC5nZXRTZWVkZXIoKTsKKyAgICAgICAgYm9vbGVhbiBub1BlZXJJZCA9IHJlcXVlc3QuaXNOb1BlZXJJZCgpOworICAgICAgICBJbnRlZ2VyIHVzZXJJZCA9IHJlcXVlc3QuZ2V0VXNlcigpLmdldFVzZXJfaWQoKS5pbnRWYWx1ZSgpOworICAgICAgICBTdHJpbmcgcGVlcklkSGV4ID0gcmVxdWVzdC5nZXRQZWVySWRIZXgoKTsKKworICAgICAgICAvL1RPRE8g5LuO5pWw5o2u5bqT6I635Y+WcGVlcuWIl+ihqAorICAgICAgICAvL1RPRE8g5qC55o2uIHNlZWRlciBwZWVyTnVtV2FudCDlj4LmlbDpmZDliLZwZWVyCisgICAgICAgIC8v5aaC5p6c5b2T5YmN55So5oi35pivIHNlZWRlcu+8jOmCo+S5iOi/meauteS7o+eggeWwhuWvu+aJviBsZWVjaGVy77yb5aaC5p6c5b2T5YmN55So5oi35LiN5pivIHNlZWRlcu+8iOaIluiAheS4jeehruWumuaYr+WQpuaYryBzZWVkZXLvvInvvIzpgqPkuYjlsLHkuI3lr7kgcGVlciDnmoTnsbvlnovov5vooYzov4fmu6TjgIIKKyAgICAgICAgTGlzdDxUb3JyZW50UGVlckVudGl0eT4gbGlzdCA9IHRvcnJlbnRQZWVyU2VydmljZS5saXN0QnlUb3JyZW50KHRvcnJlbnRJZCwgc2VlZGVyLCBwZWVyTnVtV2FudCk7CisKKyAgICAgICAgTGlzdDxNYXA8U3RyaW5nLCBPYmplY3Q+PiByZXN1bHQgPSBsaXN0LnN0cmVhbSgpCisgICAgICAgICAgICAgICAgLm1hcChwZWVyIC0+IHsKKworICAgICAgICAgICAgICAgICAgICAvLyDlvZPliY0gUGVlciDoh6rlt7HkuI3ov5Tlm54KKyAgICAgICAgICAgICAgICAgICAgaWYgKHBlZXIuZ2V0VXNlcklkKCkuZXF1YWxzKHVzZXJJZCkgJiYgcGVlci5nZXRQZWVySWQoKS5lcXVhbHNJZ25vcmVDYXNlKHBlZXJJZEhleCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgTWFwPFN0cmluZywgT2JqZWN0PiBkYXRhTWFwID0gbmV3IEhhc2hNYXA8PigpOworICAgICAgICAgICAgICAgICAgICAvLyDlpITnkIZpcHY0CisgICAgICAgICAgICAgICAgICAgIGlmIChTdHJpbmdVdGlscy5pc05vdEJsYW5rKHBlZXIuZ2V0SXAoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFNYXAucHV0KCJpcCIsIHBlZXIuZ2V0SXAoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBkYXRhTWFwLnB1dCgicG9ydCIsIHBlZXIuZ2V0UG9ydCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbm9QZWVySWQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhTWFwLnB1dCgicGVlciBpZCIsIHBlZXIuZ2V0UGVlcklkKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIC8vVE9ETyDmlK/mjIFpcHY2CisgICAgICAgICAgICAgICAgICAgIC8vVE9ETyDmlK/mjIHljovnvKkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRhdGFNYXAuaXNFbXB0eSgpID8gbnVsbCA6IGRhdGFNYXA7CisgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgICAgICAuZmlsdGVyKHBlZXIgLT4gcGVlciAhPSBudWxsKQorICAgICAgICAgICAgICAgIC5jb2xsZWN0KENvbGxlY3RvcnMudG9MaXN0KCkpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworCisgICAgcHJpdmF0ZSBUb3JyZW50UGVlckVudGl0eSB0cnlJbnNlcnRPclVwZGF0ZVBlZXIoQW5ub3VuY2VSZXF1ZXN0IHJlcXVlc3QpIHsKKyAgICAgICAgdHJ5IHsKKworICAgICAgICAgICAgVG9ycmVudFBlZXJFbnRpdHkgcGVlckVudGl0eSA9IG5ldyBUb3JyZW50UGVlckVudGl0eSgpOworICAgICAgICAgICAgcGVlckVudGl0eS5zZXRVc2VySWQocmVxdWVzdC5nZXRVc2VyKCkuZ2V0VXNlcl9pZCgpLmludFZhbHVlKCkpOworICAgICAgICAgICAgcGVlckVudGl0eS5zZXRUb3JyZW50SWQocmVxdWVzdC5nZXRUb3JyZW50KCkuZ2V0SWQoKSk7CisgICAgICAgICAgICBwZWVyRW50aXR5LnNldFBlZXJJZChyZXF1ZXN0LmdldFBlZXJfaWQoKSk7CisgICAgICAgICAgICBwZWVyRW50aXR5LnNldFBlZXJJZEhleChyZXF1ZXN0LmdldFBlZXJJZEhleCgpKTsKKyAgICAgICAgICAgIHBlZXJFbnRpdHkuc2V0UG9ydChyZXF1ZXN0LmdldFBvcnQoKSk7CisgICAgICAgICAgICBwZWVyRW50aXR5LnNldERvd25sb2FkZWQocmVxdWVzdC5nZXREb3dubG9hZGVkKCkpOworICAgICAgICAgICAgcGVlckVudGl0eS5zZXRVcGxvYWRlZChyZXF1ZXN0LmdldFVwbG9hZGVkKCkpOworICAgICAgICAgICAgcGVlckVudGl0eS5zZXRSZW1haW5pbmcocmVxdWVzdC5nZXRMZWZ0KCkpOworICAgICAgICAgICAgcGVlckVudGl0eS5zZXRTZWVkZXIocmVxdWVzdC5nZXRTZWVkZXIoKSk7CisgICAgICAgICAgICBwZWVyRW50aXR5LnNldFVzZXJBZ2VudChyZXF1ZXN0LmdldFVzZXJBZ2VudCgpKTsKKyAgICAgICAgICAgIHBlZXJFbnRpdHkuc2V0UGFzc2tleShyZXF1ZXN0LmdldFBhc3NrZXkoKSk7CisgICAgICAgICAgICBwZWVyRW50aXR5LnNldENyZWF0ZVRpbWUoTG9jYWxEYXRlVGltZS5ub3coKSk7CisgICAgICAgICAgICBwZWVyRW50aXR5LnNldExhc3RBbm5vdW5jZShMb2NhbERhdGVUaW1lLm5vdygpKTsKKworICAgICAgICAgICAgcGVlckVudGl0eS5zZXRJcChyZXF1ZXN0LmdldElwKCkpOworICAgICAgICAgICAgcGVlckVudGl0eS5zZXRJcHY2KHJlcXVlc3QuZ2V0SXB2NigpKTsKKworICAgICAgICAgICAgaWYgKFN0cmluZ1V0aWxzLmlzQmxhbmsocGVlckVudGl0eS5nZXRJcCgpKSkgeworICAgICAgICAgICAgICAgIHBlZXJFbnRpdHkuc2V0SXAocmVxdWVzdC5nZXRSZW1vdGVBZGRyKCkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0b3JyZW50UGVlclNlcnZpY2Uuc2F2ZShwZWVyRW50aXR5KTsKKyAgICAgICAgICAgIHJldHVybiBwZWVyRW50aXR5OworCisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBleGNlcHRpb24pIHsKKyAgICAgICAgICAgIGxvZy5lcnJvcigiUGVlciB1cGRhdGUgZXJyb3IgdXBkYXRlOiAiLCBleGNlcHRpb24pOworICAgICAgICB9CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIC8qKgorICAgICAqIOW5v+aSremXtOmalAorICAgICAqIOetlueVpe+8mgorICAgICAqIOWfuuS6juenjeWtkOWPkeW4g+eahOaXtumXtOmVv+W6puadpeiwg+aVtOW5v+aSremXtOmalO+8muexu+S8vE5QCisgICAgICog5aaCIOenjeWtkOWPkeW4gzflpKnlhoXvvIzlub/mkq3pl7TpmpTkuLogNjAwcworICAgICAqIOenjeWtkOWPkeW4g+Wkp+S6jjflpKnvvIzlsI/kuo4zMOWkqe+8jCDlub/mkq3pl7TpmpQxODAwcworICAgICAqIOenjeWtkOWPkeW4gzMw5aSp5Lul5LiK77yM5bm/5pKt6Ze06ZqUMzYwMHMKKyAgICAgKiA8cD4KKyAgICAgKiA8cD4KKyAgICAgKiDln7rkuo7mtLvot4PluqbosIPmlbTlub/mkq3pl7TpmpTvvJrkvaDlj6/ku6XmoLnmja7np43lrZDnmoTmtLvot4PluqbvvIjkvovlpoLmtLvot4NwZWVy55qE5pWw6YeP5oiW6ICF5LiL6L29L+S4iuS8oOmAn+W6pu+8ieadpeiwg+aVtOW5v+aSremXtOmalOOAggorICAgICAqIOWmguaenOS4gOS4quenjeWtkOeahOa0u+i3g+W6pumrmO+8jOivtOaYjuWug+mcgOimgeabtOmikee5geWcsOabtOaWsOWSjOW5v+aSrXBlZXLliJfooajjgIIKKyAgICAgKiDlpoLmnpzmtLvot4PluqbkvY7vvIzlj6/ku6Xlop7liqDlub/mkq3pl7TpmpTku6Xlh4/lsJHmnI3liqHlmajotJ/ovb3jgIIKKyAgICAgKiA8cD4KKyAgICAgKiDln7rkuo7mnI3liqHlmajotJ/ovb3osIPmlbTlub/mkq3pl7TpmpTvvJrlpoLmnpzkvaDnmoTmnI3liqHlmajotJ/ovb3pq5jvvIjkvovlpoJDUFUKKyAgICAgKiDkvb/nlKjnjofpq5jvvIzlhoXlrZjkvb/nlKjph4/pq5jvvIzmiJbogIXnvZHnu5zluKblrr3kvb/nlKjpq5jvvInvvIzlj6/ku6Xlop7liqDlub/mkq3pl7TpmpTku6Xlh4/lsJHotJ/ovb3jgIIKKyAgICAgKiDlpoLmnpzmnI3liqHlmajotJ/ovb3kvY7vvIzlj6/ku6Xlh4/lsI/lub/mkq3pl7TpmpTku6Xmj5Dpq5jmlofku7bliIbkuqvnmoTmlYjnjofjgIIKKyAgICAgKiA8cD4KKyAgICAgKiDliqjmgIHosIPmlbTlub/mkq3pl7TpmpTvvJrkvaDlj6/ku6Xlrp7ml7bnm5HmjqfkvaDnmoTnvZHnu5znirblhrXjgIHmnI3liqHlmajnirblhrXjgIHku6Xlj4rnp43lrZDnmoTmtLvot4PluqbvvIznhLblkI7liqjmgIHosIPmlbTlub/mkq3pl7TpmpTjgIIKKyAgICAgKiDkvovlpoLvvIzlpoLmnpzkvaDlj5HnjrDmn5DkuKrml7bpl7TmrrXnlKjmiLfmlbDph4/lop7lpJrvvIzlj6/ku6XkuLTml7blh4/lsI/lub/mkq3pl7TpmpTjgILlpoLmnpzlj5HnjrDmn5DkuKrml7bpl7TmrrXnlKjmiLfmlbDph4/lh4/lsJHvvIzlj6/ku6Xlop7liqDlub/mkq3pl7TpmpTjgIIKKyAgICAgKiA8cD4KKyAgICAgKiA8cD4KKyAgICAgKiDnu7zlkIjnrZbnlaXvvJoKKyAgICAgKiA8cD4KKyAgICAgKiDnp43lrZDlj5HluIM35aSp5YaF5oiW5rS76LeDcGVlcuaVsOWkp+S6jjEwMDDvvIzlub/mkq3pl7TpmpTkuLogNjAwcworICAgICAqIOenjeWtkOWPkeW4g+Wkp+S6jjflpKnvvIzlsI/kuo4zMOWkqeaIlua0u+i3g3BlZXLmlbDlnKgxMDAtMTAwMOS5i+mXtO+8jOW5v+aSremXtOmalOS4uiAxODAwcworICAgICAqIOenjeWtkOWPkeW4gzMw5aSp5Lul5LiK5oiW5rS76LeDcGVlcuaVsOWwj+S6jjEwMO+8jOW5v+aSremXtOmalOS4uiAzNjAwcworICAgICAqCisgICAgICogQHBhcmFtIHJlcXVlc3QKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHJpdmF0ZSBJbnRlZ2VyIGdldEFubm91bmNlSW50ZXJ2YWwoQW5ub3VuY2VSZXF1ZXN0IHJlcXVlc3QpIHsKKyAgICAgICAgLy9UT0RPIOW5v+aSremXtOmalAorCisgICAgICAgIHJldHVybiA2MDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvU2VydmVyL0JUL0RlZmF1bHRQYXNza2V5TWFuYWdlci5qYXZhIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL1NlcnZlci9CVC9EZWZhdWx0UGFzc2tleU1hbmFnZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZGNmNTk3Ci0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL1NlcnZlci9CVC9EZWZhdWx0UGFzc2tleU1hbmFnZXIuamF2YQpAQCAtMCwwICsxLDIwIEBACitwYWNrYWdlIGNvbS5ydW95aS53ZWIuU2VydmVyLkJUOworCitpbXBvcnQgY24uaHV0b29sLmNvcmUubGFuZy5VVUlEOworaW1wb3J0IGxvbWJvay5SZXF1aXJlZEFyZ3NDb25zdHJ1Y3RvcjsKK2ltcG9ydCBsb21ib2suZXh0ZXJuLnNsZjRqLlNsZjRqOworaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsuc3RlcmVvdHlwZS5Db21wb25lbnQ7CisKK0BTbGY0agorQENvbXBvbmVudAorQFJlcXVpcmVkQXJnc0NvbnN0cnVjdG9yCitwdWJsaWMgY2xhc3MgRGVmYXVsdFBhc3NrZXlNYW5hZ2VyIGltcGxlbWVudHMgUGFzc2tleU1hbmFnZXIgeworCisgICAgQE92ZXJyaWRlCisgICAgcHVibGljIFN0cmluZyBnZW5lcmF0ZShJbnRlZ2VyIHVzZXJJZCkgeworICAgICAgICAvLzMy5L2NVVVJRAorICAgICAgICBTdHJpbmcgcGFzc2tleSA9IFVVSUQuZmFzdFVVSUQoKS50b1N0cmluZyh0cnVlKTsKKworICAgICAgICByZXR1cm4gcGFzc2tleTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvU2VydmVyL0JUL0RlZmF1bHRUb3JyZW50TWFuYWdlci5qYXZhIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL1NlcnZlci9CVC9EZWZhdWx0VG9ycmVudE1hbmFnZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZmUzNzBhCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL1NlcnZlci9CVC9EZWZhdWx0VG9ycmVudE1hbmFnZXIuamF2YQpAQCAtMCwwICsxLDEwNiBAQAorcGFja2FnZSBjb20ucnVveWkud2ViLlNlcnZlci5CVDsKKworaW1wb3J0IGNvbS5kYW1wY2FrZS5iZW5jb2RlLkJlbmNvZGU7CitpbXBvcnQgY29tLmRhbXBjYWtlLmJlbmNvZGUuVHlwZTsKK2ltcG9ydCBjb20ucnVveWkud2ViLmNvbnRyb2xsZXIuY29tbW9uLkNvbW1vblJlc3VsdFN0YXR1czsKK2ltcG9ydCBjb20ucnVveWkud2ViLmNvbnRyb2xsZXIuY29tbW9uLkNvbnN0YW50czsKK2ltcG9ydCBjb20ucnVveWkud2ViLmNvbnRyb2xsZXIuY29tbW9uLmJhc2UuSTE4bk1lc3NhZ2U7CitpbXBvcnQgY29tLnJ1b3lpLndlYi5jb250cm9sbGVyLmNvbW1vbi5leGNlcHRpb24uUm9ja2V0UFRFeGNlcHRpb247CitpbXBvcnQgY29tLnJ1b3lpLndlYi5kYW8uQlQuVG9ycmVudEZpbGVEYW87CitpbXBvcnQgY29tLnJ1b3lpLndlYi5kb21haW4uQlQuVG9ycmVudER0bzsKK2ltcG9ydCBsb21ib2suUmVxdWlyZWRBcmdzQ29uc3RydWN0b3I7CitpbXBvcnQgbG9tYm9rLmV4dGVybi5zbGY0ai5TbGY0ajsKK2ltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLnN0ZXJlb3R5cGUuQ29tcG9uZW50OworCitpbXBvcnQgamF2YS5uaW8uY2hhcnNldC5TdGFuZGFyZENoYXJzZXRzOworaW1wb3J0IGphdmEuc2VjdXJpdHkuTWVzc2FnZURpZ2VzdDsKK2ltcG9ydCBqYXZhLnNlY3VyaXR5Lk5vU3VjaEFsZ29yaXRobUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5zdHJlYW0uQ29sbGVjdG9yczsKKworLyoqCisgKiBAYXV0aG9yIEpyeAorICovCitAU2xmNGoKK0BDb21wb25lbnQKK0BSZXF1aXJlZEFyZ3NDb25zdHJ1Y3RvcgorcHVibGljIGNsYXNzIERlZmF1bHRUb3JyZW50TWFuYWdlciBpbXBsZW1lbnRzIFRvcnJlbnRNYW5hZ2VyIHsKKworICAgIHByaXZhdGUgZmluYWwgQmVuY29kZSBiZW5jb2RlID0gbmV3IEJlbmNvZGUoU3RhbmRhcmRDaGFyc2V0cy5VVEZfOCk7CisgICAgcHJpdmF0ZSBmaW5hbCBCZW5jb2RlIGluZm9CZW5jb2RlID0gbmV3IEJlbmNvZGUoU3RhbmRhcmRDaGFyc2V0cy5JU09fODg1OV8xKTsKKyAgICBwcml2YXRlIGZpbmFsIFRvcnJlbnRGaWxlRGFvIHRvcnJlbnRGaWxlRGFvOworCisgICAgQE92ZXJyaWRlCisgICAgcHVibGljIFRvcnJlbnREdG8gcGFyc2UoYnl0ZVtdIGJ5dGVzKSB7CisgICAgICAgIE1hcDxTdHJpbmcsIE9iamVjdD4gZGVjb2RlRGljdCA9IGJlbmNvZGUuZGVjb2RlKGJ5dGVzLCBUeXBlLkRJQ1RJT05BUlkpOworICAgICAgICBpZiAoZGVjb2RlRGljdC5jb250YWluc0tleSgicGllY2UgbGF5ZXJzIikgfHwgZGVjb2RlRGljdC5jb250YWluc0tleSgiZmlsZXMgdHJlZSIpIHx8CisgICAgICAgICAgICAgICAgZGVjb2RlRGljdC5jb250YWluc0tleSgibWV0YSB2ZXJzaW9uIikgJiYgKGludCkgZGVjb2RlRGljdC5nZXQoIm1ldGEgdmVyc2lvbiIpID09IDIpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBSb2NrZXRQVEV4Y2VwdGlvbihDb21tb25SZXN1bHRTdGF0dXMuUEFSQU1fRVJST1IsIEkxOG5NZXNzYWdlLmdldE1lc3NhZ2UoCisgICAgICAgICAgICAgICAgICAgICJwcm90b2NvbF92Ml9ub3Rfc3VwcG9ydCIpKTsKKyAgICAgICAgfQorICAgICAgICBNYXA8U3RyaW5nLCBPYmplY3Q+IGluZm9EaWN0ID0gKE1hcDxTdHJpbmcsIE9iamVjdD4pIGRlY29kZURpY3QuZ2V0KCJpbmZvIik7CisgICAgICAgIExvbmcgc2l6ZTsKKyAgICAgICAgTG9uZyBjb3VudDsKKyAgICAgICAgaWYgKGluZm9EaWN0LmNvbnRhaW5zS2V5KCJsZW5ndGgiKSkgeworICAgICAgICAgICAgc2l6ZSA9IChMb25nKSBpbmZvRGljdC5nZXQoImxlbmd0aCIpOworICAgICAgICAgICAgY291bnQgPSAxTDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIExpc3Q8TWFwPFN0cmluZywgT2JqZWN0Pj4gZmlsZXMgPSAoTGlzdDxNYXA8U3RyaW5nLCBPYmplY3Q+PikgaW5mb0RpY3QuZ2V0KCJmaWxlcyIpOworICAgICAgICAgICAgc2l6ZSA9IGZpbGVzLnN0cmVhbSgpLm1hcChmIC0+IChMb25nKSBmLmdldCgibGVuZ3RoIikpLmNvbGxlY3QoQ29sbGVjdG9ycy5zdW1taW5nTG9uZyhpIC0+IGkpKTsKKyAgICAgICAgICAgIGNvdW50ID0gKGxvbmcpIGZpbGVzLnNpemUoKTsKKyAgICAgICAgfQorICAgICAgICBUb3JyZW50RHRvIGR0byA9IG5ldyBUb3JyZW50RHRvKCk7CisgICAgICAgIGR0by5zZXRUb3JyZW50U2l6ZShzaXplKTsKKyAgICAgICAgZHRvLnNldFRvcnJlbnRDb3VudChjb3VudCk7CisgICAgICAgIGR0by5zZXREaWN0KGRlY29kZURpY3QpOworICAgICAgICByZXR1cm4gZHRvOworICAgIH0KKworICAgIC8qKgorICAgICAqIOS/ruaUuXRvcnJlbnTmlofku7bvvJoKKyAgICAgKgorICAgICAqIOS/ruaUuXRyYWNrZXIKKyAgICAgKiDkv67mlLnkuLrnp4HmnInnp43lrZAgcHJpdmF0ZT0xCisgICAgICogaHR0cDovL2JpdHRvcnJlbnQub3JnL2JlcHMvYmVwXzAwMjcuaHRtbAorICAgICAqCisgICAgICogQHBhcmFtIGJ5dGVzCisgICAgICogQHJldHVybgorICAgICAqLworICAgIEBPdmVycmlkZQorICAgIHB1YmxpYyBieXRlW10gdHJhbnNmb3JtKGJ5dGVbXSBieXRlcykgeworICAgICAgICBNYXA8U3RyaW5nLCBPYmplY3Q+IG1hcCA9IGluZm9CZW5jb2RlLmRlY29kZShieXRlcywgVHlwZS5ESUNUSU9OQVJZKTsKKyAgICAgICAgbWFwLnJlbW92ZSgiYW5ub3VuY2UtbGlzdCIpOworICAgICAgICBtYXAucmVtb3ZlKCJhbm5vdW5jZSIpOworICAgICAgICBtYXAucHV0KCJjb21tZW50IiwgIlRodW5kZXJIdWIgcHQg6LW15oC75oiR5Lus5pWs54ix5oKo5ZWK77yBIik7CisgICAgICAgIE1hcDxTdHJpbmcsIE9iamVjdD4gaW5mb01hcCA9IChNYXA8U3RyaW5nLCBPYmplY3Q+KSBtYXAuZ2V0KCJpbmZvIik7CisgICAgICAgIGluZm9NYXAucHV0KCJwcml2YXRlIiwgMSk7CisgICAgICAgIC8vdG9kbyDphY3nva4KKyAgICAgICAgLy90b2RvIOmFjee9ruWJjee8gAorICAgICAgICBpbmZvTWFwLnB1dCgic291cmNlIiwgQ29uc3RhbnRzLlNvdXJjZS5QUkVGSVggKyBDb25zdGFudHMuU291cmNlLk5BTUUpOworICAgICAgICBtYXAucHV0KCJpbmZvIiwgaW5mb01hcCk7CisKKyAgICAgICAgLy8g5bGP6JS9Qml0dG9ycmVudCB2MuenjeWtkOS4iuS8oAorICAgICAgICBpZiAobWFwLmNvbnRhaW5zS2V5KCJwaWVjZSBsYXllcnMiKSB8fCBpbmZvTWFwLmNvbnRhaW5zS2V5KCJmaWxlcyB0cmVlIikKKyAgICAgICAgICAgICAgICB8fCAoaW5mb01hcC5jb250YWluc0tleSgibWV0YSB2ZXJzaW9uIikgJiYgaW5mb01hcC5nZXQoIm1ldGEgdmVyc2lvbiIpLmVxdWFscygyKSkpIHsKKworICAgICAgICAgICAgdGhyb3cgbmV3IFJvY2tldFBURXhjZXB0aW9uKCLkuI3mlK/mjIHkvb/nlKggQml0dG9ycmVudCDljY/orq4gdjIg5Yib5bu655qEIFRvcnJlbnQg5paH5Lu25oiW5re35ZCIIHRvcnJlbnQiKTsKKyAgICAgICAgfQorCisKKworICAgICAgICByZXR1cm4gaW5mb0JlbmNvZGUuZW5jb2RlKG1hcCk7CisgICAgfQorCisgICAgQE92ZXJyaWRlCisgICAgcHVibGljIGJ5dGVbXSBpbmZvSGFzaChieXRlW10gYnl0ZXMpIHRocm93cyBOb1N1Y2hBbGdvcml0aG1FeGNlcHRpb24geworICAgICAgICBNYXA8U3RyaW5nLCBPYmplY3Q+IGRlY29kZWRNYXAgPSBpbmZvQmVuY29kZS5kZWNvZGUoYnl0ZXMsIFR5cGUuRElDVElPTkFSWSk7CisgICAgICAgIE1hcDxTdHJpbmcsIE9iamVjdD4gaW5mb0RlY29kZWRNYXAgPSAoTWFwPFN0cmluZywgT2JqZWN0PikgZGVjb2RlZE1hcC5nZXQoImluZm8iKTsKKyAgICAgICAgYnl0ZVtdIGVuY29kZSA9IGluZm9CZW5jb2RlLmVuY29kZShpbmZvRGVjb2RlZE1hcCk7CisKKyAgICAgICAgTWVzc2FnZURpZ2VzdCBtZCA9IE1lc3NhZ2VEaWdlc3QuZ2V0SW5zdGFuY2UoIlNIQS0xIik7CisgICAgICAgIHJldHVybiBtZC5kaWdlc3QoZW5jb2RlKTsKKyAgICB9CisKKworfQpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL1NlcnZlci9CVC9Mb2NhbFRvcnJlbnRTdG9yYWdlU2VydmljZS5qYXZhIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL1NlcnZlci9CVC9Mb2NhbFRvcnJlbnRTdG9yYWdlU2VydmljZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY0OTMyOWMKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvU2VydmVyL0JUL0xvY2FsVG9ycmVudFN0b3JhZ2VTZXJ2aWNlLmphdmEKQEAgLTAsMCArMSwxMzAgQEAKK3BhY2thZ2UgY29tLnJ1b3lpLndlYi5TZXJ2ZXIuQlQ7CisKK2ltcG9ydCBjbi5odXRvb2wuY29yZS5pby5GaWxlVXRpbDsKK2ltcG9ydCBjb20ucnVveWkud2ViLmNvbnRyb2xsZXIuY29tbW9uLmV4Y2VwdGlvbi5Sb2NrZXRQVEV4Y2VwdGlvbjsKK2ltcG9ydCBjb20ucnVveWkud2ViLlRvb2wuQlQuVG9ycmVudFV0aWxzOworaW1wb3J0IGpha2FydGEuYW5ub3RhdGlvbi5Qb3N0Q29uc3RydWN0OworaW1wb3J0IGxvbWJvay5HZXR0ZXI7CitpbXBvcnQgbG9tYm9rLlJlcXVpcmVkQXJnc0NvbnN0cnVjdG9yOworaW1wb3J0IGxvbWJvay5TZXR0ZXI7CitpbXBvcnQgbG9tYm9rLlNuZWFreVRocm93czsKK2ltcG9ydCBsb21ib2suZXh0ZXJuLnNsZjRqLlNsZjRqOworaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsuc3RlcmVvdHlwZS5TZXJ2aWNlOworaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsudXRpbC5TdHJpbmdVdGlsczsKK2ltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLndlYi5tdWx0aXBhcnQuTXVsdGlwYXJ0RmlsZTsKKworaW1wb3J0IGphdmEuaW8uRmlsZTsKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworCisKKy8qKgorICog5pys5Zyw56eN5a2Q5a2Y5YKoCisgKi8KK0BTbGY0agorQFNlcnZpY2UKK0BSZXF1aXJlZEFyZ3NDb25zdHJ1Y3RvcgorcHVibGljIGNsYXNzIExvY2FsVG9ycmVudFN0b3JhZ2VTZXJ2aWNlIGltcGxlbWVudHMgVG9ycmVudFN0b3JhZ2VTZXJ2aWNlIHsKKworICAgIC8qKgorICAgICAqIOS9v+eUqOe7neWvuei3r+W+hAorICAgICAqLworICAgIEBHZXR0ZXIKKyAgICBAU2V0dGVyCisgICAgYm9vbGVhbiB1c2VBYnNvbHV0ZVBhdGggPSBmYWxzZTsKKworICAgIEBHZXR0ZXIKKyAgICBAU2V0dGVyCisgICAgU3RyaW5nIGFic29sdXRlUGF0aCA9ICIvdG9ycmVudC8iOworCisgICAgQEdldHRlcgorICAgIEBTZXR0ZXIKKyAgICBTdHJpbmcgcmVsYXRpdmVQYXRoID0gIi90b3JyZW50LyI7CisKKworICAgIFN0cmluZyBkZWZhdWx0RGlyID0gVG9ycmVudFV0aWxzLmdldERlZmF1bHREaXIoKTsKKworCisgICAgQFBvc3RDb25zdHJ1Y3QKKyAgICBAT3ZlcnJpZGUKKyAgICBAU25lYWt5VGhyb3dzCisgICAgcHVibGljIHZvaWQgaW5pdCgpIHsKKyAgICAgICAgLy8gMS4g5Yid5aeL5YyW57ud5a+56Lev5b6E77yI5Z+65LqO55u45a+56Lev5b6E6Ieq5Yqo55Sf5oiQ77yJCisgICAgICAgIGlmICh1c2VBYnNvbHV0ZVBhdGgpIHsKKyAgICAgICAgICAgIC8vIOiLpemcgOe7neWvuei3r+W+hO+8jOWPr+WfuuS6juexu+i3r+W+hOaIluezu+e7n+ebruW9leeUn+aIkAorICAgICAgICAgICAgYWJzb2x1dGVQYXRoID0gbmV3IEZpbGUocmVsYXRpdmVQYXRoKS5nZXRBYnNvbHV0ZVBhdGgoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGFic29sdXRlUGF0aCA9IHJlbGF0aXZlUGF0aDsgLy8g55u05o6l5L2/55So55u45a+56Lev5b6E77yI55Sx6L+Q6KGM546v5aKD5Yaz5a6a6Kej5p6Q5pa55byP77yJCisgICAgICAgIH0KKworICAgICAgICAvLyAyLiDnoa7kv53ot6/lvoTlrZjlnKjvvIjoh6rliqjliJvlu7rnm67lvZXvvIkKKyAgICAgICAgRmlsZVV0aWwubWtkaXIoYWJzb2x1dGVQYXRoKTsKKyAgICB9CisKKworICAgIEBPdmVycmlkZQorICAgIHB1YmxpYyB2b2lkIHNhdmUoSW50ZWdlciBpZCwgYnl0ZVtdIHRvcnJlbnQpIHsKKyAgICAgICAgU3RyaW5nIHBhdGggPSBnZXRGaWxlUGF0aChpZCk7CisKKyAgICAgICAgRmlsZVV0aWwud3JpdGVCeXRlcyh0b3JyZW50LCBwYXRoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldFBhdGgoKSB7CisgICAgICAgIGlmICh1c2VBYnNvbHV0ZVBhdGgpIHsKKyAgICAgICAgICAgIHJldHVybiBhYnNvbHV0ZVBhdGg7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZGVmYXVsdERpciArIHJlbGF0aXZlUGF0aDsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldEZpbGVQYXRoKGludCBpZCkgeworICAgICAgICBTdHJpbmcgcGF0aCA9IGdldFBhdGgoKSArIGlkICsgIi50b3JyZW50IjsKKworICAgICAgICByZXR1cm4gcGF0aDsKKyAgICB9CisKKyAgICBAT3ZlcnJpZGUKKyAgICBAU25lYWt5VGhyb3dzCisgICAgcHVibGljIHZvaWQgc3RvcmUoSW50ZWdlciBpZCwgTXVsdGlwYXJ0RmlsZSBmaWxlKSB7CisgICAgICAgIFN0cmluZyBmaWxlbmFtZSA9IFN0cmluZ1V0aWxzLmNsZWFuUGF0aChmaWxlLmdldE9yaWdpbmFsRmlsZW5hbWUoKSk7CisgICAgICAgIC8vIHZhbGlkYXRpb24gaGVyZSBmb3IgLnRvcnJlbnQgZmlsZQorICAgICAgICBpZiAoIWZpbGVuYW1lLmVuZHNXaXRoKCIudG9ycmVudCIpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgUm9ja2V0UFRFeGNlcHRpb24oIkludmFsaWQgZmlsZSB0eXBlLiBPbmx5IC50b3JyZW50IGZpbGVzIGFyZSBhbGxvd2VkIik7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZmlsZS5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBSb2NrZXRQVEV4Y2VwdGlvbigiRmFpbGVkIHRvIHN0b3JlIGVtcHR5IGZpbGUgIiArIGZpbGVuYW1lKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZmlsZW5hbWUuY29udGFpbnMoIi4uIikpIHsKKyAgICAgICAgICAgIC8vIFRoaXMgaXMgYSBzZWN1cml0eSBjaGVjaworICAgICAgICAgICAgdGhyb3cgbmV3IFJvY2tldFBURXhjZXB0aW9uKCJDYW5ub3Qgc3RvcmUgZmlsZSB3aXRoIHJlbGF0aXZlIHBhdGggb3V0c2lkZSBjdXJyZW50IiArCisgICAgICAgICAgICAgICAgICAgICIgZGlyZWN0b3J5ICIKKyAgICAgICAgICAgICAgICAgICAgKyBmaWxlbmFtZSk7CisgICAgICAgIH0KKworICAgICAgICB0cnkgKElucHV0U3RyZWFtIGlucHV0U3RyZWFtID0gZmlsZS5nZXRJbnB1dFN0cmVhbSgpKSB7CisgICAgICAgICAgICBGaWxlVXRpbC53cml0ZUZyb21TdHJlYW0oaW5wdXRTdHJlYW0sIGdldEZpbGVQYXRoKGlkKSk7CisgICAgICAgIH0KKworICAgIH0KKworICAgIEBPdmVycmlkZQorICAgIHB1YmxpYyBieXRlW10gcmVhZChJbnRlZ2VyIGlkKSB7CisgICAgICAgIFN0cmluZyBwYXRoID0gZ2V0RmlsZVBhdGgoaWQpOworCisgICAgICAgIHJldHVybiBGaWxlVXRpbC5yZWFkQnl0ZXMocGF0aCk7CisgICAgfQorCisgICAgQE92ZXJyaWRlCisgICAgcHVibGljIHZvaWQgZGVsZXRlKEludGVnZXIgaWQpIHsKKyAgICAgICAgU3RyaW5nIHBhdGggPSBnZXRGaWxlUGF0aChpZCk7CisgICAgICAgIEZpbGVVdGlsLmRlbChwYXRoKTsKKyAgICB9CisKKyAgICBAT3ZlcnJpZGUKKyAgICBwdWJsaWMgSW5wdXRTdHJlYW0gbG9hZChJbnRlZ2VyIGlkKSB7CisgICAgICAgIFN0cmluZyBwYXRoID0gZ2V0RmlsZVBhdGgoaWQpOworICAgICAgICByZXR1cm4gRmlsZVV0aWwuZ2V0SW5wdXRTdHJlYW0ocGF0aCk7CisKKyAgICB9CisKK30KZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9TZXJ2ZXIvQlQvUGFzc2tleU1hbmFnZXIuamF2YSBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9TZXJ2ZXIvQlQvUGFzc2tleU1hbmFnZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zY2EwMmZmCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL1NlcnZlci9CVC9QYXNza2V5TWFuYWdlci5qYXZhCkBAIC0wLDAgKzEsMTIgQEAKK3BhY2thZ2UgY29tLnJ1b3lpLndlYi5TZXJ2ZXIuQlQ7CisKK2ltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLnN0ZXJlb3R5cGUuU2VydmljZTsKKworLyoqCisgKiBAYXV0aG9yIEpyeAorICovCitwdWJsaWMgaW50ZXJmYWNlIFBhc3NrZXlNYW5hZ2VyIHsKKworICAgIFN0cmluZyBnZW5lcmF0ZShJbnRlZ2VyIHVzZXJJZCk7CisKK30KZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9TZXJ2ZXIvQlQvVG9ycmVudENvbW1lbnRTZXJ2aWNlLmphdmEgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvU2VydmVyL0JUL1RvcnJlbnRDb21tZW50U2VydmljZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZiYzAwNDUKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvU2VydmVyL0JUL1RvcnJlbnRDb21tZW50U2VydmljZS5qYXZhCkBAIC0wLDAgKzEsODggQEAKK3BhY2thZ2UgY29tLnJ1b3lpLndlYi5TZXJ2ZXIuQlQ7CisKK2ltcG9ydCBjb20uYmFvbWlkb3UubXliYXRpc3BsdXMuZXh0ZW5zaW9uLnNlcnZpY2UuaW1wbC5TZXJ2aWNlSW1wbDsKK2ltcG9ydCBjb20uZ2l0aHViLnBhZ2VoZWxwZXIuUGFnZUhlbHBlcjsKK2ltcG9ydCBjb20uZ2l0aHViLnBhZ2VoZWxwZXIuUGFnZUluZm87CitpbXBvcnQgY29tLnJ1b3lpLndlYi5TZXJ2ZXIuc3lzLlVzZXJTZXJ2aWNlOworaW1wb3J0IGNvbS5ydW95aS53ZWIuZGFvLkJULlRvcnJlbnRDb21tZW50RGFvOworaW1wb3J0IGNvbS5ydW95aS53ZWIuZGFvLkJULlRvcnJlbnRQZWVyRGFvOworaW1wb3J0IGNvbS5ydW95aS53ZWIuZG9tYWluLkJULlRvcnJlbnRDb21tZW50RW50aXR5OworCitpbXBvcnQgY29tLnJ1b3lpLndlYi5kb21haW4uQlQuVG9ycmVudENvbW1lbnRWTzsKK2ltcG9ydCBjb20ucnVveWkud2ViLmRvbWFpbi5zeXMuVXNlckVudGl0eTsKK2ltcG9ydCBsb21ib2suUmVxdWlyZWRBcmdzQ29uc3RydWN0b3I7CitpbXBvcnQgbG9tYm9rLmV4dGVybi5zbGY0ai5TbGY0ajsKK2ltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLmJlYW5zLkJlYW5VdGlsczsKK2ltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLmJlYW5zLmZhY3RvcnkuYW5ub3RhdGlvbi5BdXRvd2lyZWQ7CitpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay5zdGVyZW90eXBlLlNlcnZpY2U7CisKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuc3RyZWFtLkNvbGxlY3RvcnM7CisKK0BTZXJ2aWNlCitAU2xmNGoKK0BSZXF1aXJlZEFyZ3NDb25zdHJ1Y3RvcgorcHVibGljIGNsYXNzIFRvcnJlbnRDb21tZW50U2VydmljZSBleHRlbmRzIFNlcnZpY2VJbXBsPFRvcnJlbnRDb21tZW50RGFvLCBUb3JyZW50Q29tbWVudEVudGl0eT4geworCisgICAgcHJpdmF0ZSBmaW5hbCBUb3JyZW50Q29tbWVudERhbyB0b3JyZW50Q29tbWVudERhbzsKKyAgICBwcml2YXRlIGZpbmFsIFVzZXJTZXJ2aWNlIHVzZXJTZXJ2aWNlOworCisgICAgcHVibGljIGJvb2xlYW4gc2F2ZUNvbW1lbnQoVG9ycmVudENvbW1lbnRFbnRpdHkgZW50aXR5KXsKKyAgICAgICAgcmV0dXJuIHNhdmUoZW50aXR5KTsKKyAgICB9CisKKworICAgIHB1YmxpYyBQYWdlSW5mbzxUb3JyZW50Q29tbWVudFZPPiBnZXRDb21tZW50c0J5VG9ycmVudElkKAorICAgICAgICAgICAgSW50ZWdlciB0b3JyZW50SWQsIEludGVnZXIgcGFnZU51bSwgSW50ZWdlciBwYWdlU2l6ZSkgeworICAgICAgICAvLyDliIbpobXmn6Xor6IKKyAgICAgICAgUGFnZUhlbHBlci5zdGFydFBhZ2UocGFnZU51bSwgcGFnZVNpemUpOworICAgICAgICBMaXN0PFRvcnJlbnRDb21tZW50RW50aXR5PiBjb21tZW50RW50aXRpZXMgPQorICAgICAgICAgICAgICAgIHRvcnJlbnRDb21tZW50RGFvLnNlbGVjdEJ5VG9ycmVudElkKHRvcnJlbnRJZCk7CisKKyAgICAgICAgLy8g6L2s5o2i5Li6Vk/vvIjljIXlkKvnlKjmiLfkv6Hmga/vvIkKKyAgICAgICAgTGlzdDxUb3JyZW50Q29tbWVudFZPPiBjb21tZW50Vk9zID0gY29tbWVudEVudGl0aWVzLnN0cmVhbSgpCisgICAgICAgICAgICAgICAgLm1hcChlbnRpdHkgLT4geworICAgICAgICAgICAgICAgICAgICBUb3JyZW50Q29tbWVudFZPIHZvID0gbmV3IFRvcnJlbnRDb21tZW50Vk8oKTsKKyAgICAgICAgICAgICAgICAgICAgQmVhblV0aWxzLmNvcHlQcm9wZXJ0aWVzKGVudGl0eSwgdm8pOworCisgICAgICAgICAgICAgICAgICAgIC8vIOafpeivoueUqOaIt+S/oeaBrworICAgICAgICAgICAgICAgICAgICBVc2VyRW50aXR5IHVzZXIgPSB1c2VyU2VydmljZS5nZXRVc2VyQnlJZChlbnRpdHkuZ2V0VXNlcklkKCkpOworICAgICAgICAgICAgICAgICAgICBpZiAodXNlciAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB2by5zZXRVc2VybmFtZSh1c2VyLmdldFVzZXJfbmFtZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHZvLnNldEF2YXRhcih1c2VyLmdldEF2YXRhcigpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIC8vIOmAkuW9kuafpeivouWtkOivhOiuuu+8iOalvOS4realvO+8iQorICAgICAgICAgICAgICAgICAgICBMaXN0PFRvcnJlbnRDb21tZW50Vk8+IGNoaWxkcmVuID0gZ2V0Q2hpbGRyZW5Db21tZW50cyhlbnRpdHkuZ2V0SWQoKSk7CisgICAgICAgICAgICAgICAgICAgIHZvLnNldENoaWxkcmVuKGNoaWxkcmVuKTsKKworICAgICAgICAgICAgICAgICAgICByZXR1cm4gdm87CisgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgICAgICAuY29sbGVjdChDb2xsZWN0b3JzLnRvTGlzdCgpKTsKKworICAgICAgICByZXR1cm4gbmV3IFBhZ2VJbmZvPD4oY29tbWVudFZPcyk7CisgICAgfQorCisgICAgLy8g6YCS5b2S5p+l6K+i5a2Q6K+E6K66CisgICAgcHJpdmF0ZSBMaXN0PFRvcnJlbnRDb21tZW50Vk8+IGdldENoaWxkcmVuQ29tbWVudHMoSW50ZWdlciBwYXJlbnRJZCkgeworICAgICAgICBMaXN0PFRvcnJlbnRDb21tZW50RW50aXR5PiBjaGlsZHJlbiA9CisgICAgICAgICAgICAgICAgdG9ycmVudENvbW1lbnREYW8uc2VsZWN0QnlQYXJlbnRJZChwYXJlbnRJZCk7CisKKyAgICAgICAgcmV0dXJuIGNoaWxkcmVuLnN0cmVhbSgpCisgICAgICAgICAgICAgICAgLm1hcChlbnRpdHkgLT4geworICAgICAgICAgICAgICAgICAgICBUb3JyZW50Q29tbWVudFZPIHZvID0gbmV3IFRvcnJlbnRDb21tZW50Vk8oKTsKKyAgICAgICAgICAgICAgICAgICAgQmVhblV0aWxzLmNvcHlQcm9wZXJ0aWVzKGVudGl0eSwgdm8pOworCisgICAgICAgICAgICAgICAgICAgIC8vIOiuvue9rueUqOaIt+S/oeaBrworICAgICAgICAgICAgICAgICAgICBVc2VyRW50aXR5IHVzZXIgPSB1c2VyU2VydmljZS5nZXRVc2VyQnlJZChlbnRpdHkuZ2V0VXNlcklkKCkpOworICAgICAgICAgICAgICAgICAgICBpZiAodXNlciAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB2by5zZXRVc2VybmFtZSh1c2VyLmdldFVzZXJfbmFtZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHZvLnNldEF2YXRhcih1c2VyLmdldEF2YXRhcigpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIHJldHVybiB2bzsKKyAgICAgICAgICAgICAgICB9KQorICAgICAgICAgICAgICAgIC5jb2xsZWN0KENvbGxlY3RvcnMudG9MaXN0KCkpOworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL1NlcnZlci9CVC9Ub3JyZW50TWFuYWdlci5qYXZhIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL1NlcnZlci9CVC9Ub3JyZW50TWFuYWdlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVmMTlhYWMKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvU2VydmVyL0JUL1RvcnJlbnRNYW5hZ2VyLmphdmEKQEAgLTAsMCArMSwxOCBAQAorcGFja2FnZSBjb20ucnVveWkud2ViLlNlcnZlci5CVDsKKworaW1wb3J0IGNvbS5ydW95aS53ZWIuZG9tYWluLkJULlRvcnJlbnREdG87CisKK2ltcG9ydCBqYXZhLnNlY3VyaXR5Lk5vU3VjaEFsZ29yaXRobUV4Y2VwdGlvbjsKKworLyoqCisgKiBAYXV0aG9yIEpyeAorICovCitwdWJsaWMgaW50ZXJmYWNlIFRvcnJlbnRNYW5hZ2VyIHsKKworICAgIFRvcnJlbnREdG8gcGFyc2UoYnl0ZVtdIGJ5dGVzKTsKKworICAgIGJ5dGVbXSB0cmFuc2Zvcm0oYnl0ZVtdIGJ5dGVzKTsKKworICAgIGJ5dGVbXSBpbmZvSGFzaChieXRlW10gYnl0ZXMpIHRocm93cyBOb1N1Y2hBbGdvcml0aG1FeGNlcHRpb247CisKK30KZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9TZXJ2ZXIvQlQvVG9ycmVudFBlZXJTZXJ2aWNlLmphdmEgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvU2VydmVyL0JUL1RvcnJlbnRQZWVyU2VydmljZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFmNTkxMjgKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvU2VydmVyL0JUL1RvcnJlbnRQZWVyU2VydmljZS5qYXZhCkBAIC0wLDAgKzEsNzIgQEAKK3BhY2thZ2UgY29tLnJ1b3lpLndlYi5TZXJ2ZXIuQlQ7CisKK2ltcG9ydCBjb20uYmFvbWlkb3UubXliYXRpc3BsdXMuY29yZS5jb25kaXRpb25zLnF1ZXJ5LlF1ZXJ5V3JhcHBlcjsKK2ltcG9ydCBjb20uYmFvbWlkb3UubXliYXRpc3BsdXMuZXh0ZW5zaW9uLnNlcnZpY2UuaW1wbC5TZXJ2aWNlSW1wbDsKK2ltcG9ydCBjb20ucnVveWkud2ViLmRhby5CVC5Ub3JyZW50UGVlckRhbzsKK2ltcG9ydCBjb20ucnVveWkud2ViLmRvbWFpbi5CVC5Ub3JyZW50UGVlckVudGl0eTsKK2ltcG9ydCBsb21ib2suZXh0ZXJuLnNsZjRqLlNsZjRqOworaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsuc3RlcmVvdHlwZS5TZXJ2aWNlOworCitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CisKKy8qKgorICog56eN5a2QUGVlcuihqAorICovCitAU2VydmljZQorQFNsZjRqCitwdWJsaWMgY2xhc3MgVG9ycmVudFBlZXJTZXJ2aWNlIGV4dGVuZHMgU2VydmljZUltcGw8VG9ycmVudFBlZXJEYW8sIFRvcnJlbnRQZWVyRW50aXR5PiB7CisKKworICAgIC8qKgorICAgICAqIOS7juaVsOaNruW6k+iOt+WPlnBlZXLliJfooagKKyAgICAgKgorICAgICAqIEBwYXJhbSB0b3JyZW50SWQKKyAgICAgKiBAcGFyYW0gc2VlZGVyCisgICAgICogQHBhcmFtIHBlZXJOdW1XYW50CisgICAgICogQHJldHVybgorICAgICAqLworICAgIHB1YmxpYyBMaXN0PFRvcnJlbnRQZWVyRW50aXR5PiBsaXN0QnlUb3JyZW50KEludGVnZXIgdG9ycmVudElkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJvb2xlYW4gc2VlZGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIgcGVlck51bVdhbnQpIHsKKworICAgICAgICBMaXN0PFRvcnJlbnRQZWVyRW50aXR5PiBsaXN0ID0gbGlzdChuZXcgUXVlcnlXcmFwcGVyPFRvcnJlbnRQZWVyRW50aXR5PigpCisgICAgICAgICAgICAgICAgLmxhbWJkYSgpCisgICAgICAgICAgICAgICAgLmVxKFRvcnJlbnRQZWVyRW50aXR5OjpnZXRUb3JyZW50SWQsIHRvcnJlbnRJZCkKKyAgICAgICAgICAgICAgICAvLyDlpoLmnpzkuIvovb3lrozkuobvvIzlsLHkuI3pnIDopoHojrflj5ZzZWVkZXLnlKjmiLfkuoYKKyAgICAgICAgICAgICAgICAvLyDlpoLmnpzlvZPliY3nlKjmiLfmmK8gc2VlZGVy77yM6YKj5LmI6L+Z5q615Luj56CB5bCG5a+75om+IGxlZWNoZXLvvJvlpoLmnpzlvZPliY3nlKjmiLfkuI3mmK8gc2VlZGVy77yI5oiW6ICF5LiN56Gu5a6a5piv5ZCm5pivIHNlZWRlcu+8ie+8jOmCo+S5iOWwseS4jeWvuSBwZWVyIOeahOexu+Wei+i/m+ihjOi/h+a7pAorICAgICAgICAgICAgICAgIC5lcShzZWVkZXIsIFRvcnJlbnRQZWVyRW50aXR5OjpnZXRTZWVkZXIsIDApCisgICAgICAgICAgICAgICAgLmxhc3QoIm9yZGVyIGJ5IHJhbmQoKSBsaW1pdCAiICsgcGVlck51bVdhbnQpCisgICAgICAgICk7CisKKyAgICAgICAgcmV0dXJuIGxpc3Q7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gcGVlckV4aXN0cyhJbnRlZ2VyIHVzZXJJZCwgSW50ZWdlciB0b3JyZW50SWQsIGJ5dGVbXSBwZWVySWQpIHsKKyAgICAgICAgbG9uZyBjb3VudCA9IGNvdW50KG5ldyBRdWVyeVdyYXBwZXI8VG9ycmVudFBlZXJFbnRpdHk+KCkKKyAgICAgICAgICAgICAgICAubGFtYmRhKCkKKyAgICAgICAgICAgICAgICAuZXEoVG9ycmVudFBlZXJFbnRpdHk6OmdldFRvcnJlbnRJZCwgdG9ycmVudElkKQorICAgICAgICAgICAgICAgIC5lcShUb3JyZW50UGVlckVudGl0eTo6Z2V0VXNlcklkLCB1c2VySWQpCisgICAgICAgICAgICAgICAgLmVxKFRvcnJlbnRQZWVyRW50aXR5OjpnZXRQZWVySWQsIHBlZXJJZCkKKyAgICAgICAgKTsKKyAgICAgICAgcmV0dXJuIGNvdW50ID4gMDsKKyAgICB9CisKKyAgICBwdWJsaWMgVG9ycmVudFBlZXJFbnRpdHkgZ2V0UGVlcihJbnRlZ2VyIHVzZXJJZCwgSW50ZWdlciB0b3JyZW50SWQsIGJ5dGVbXSBwZWVySWQpIHsKKyAgICAgICAgcmV0dXJuIGdldE9uZShuZXcgUXVlcnlXcmFwcGVyPFRvcnJlbnRQZWVyRW50aXR5PigpCisgICAgICAgICAgICAgICAgLmxhbWJkYSgpCisgICAgICAgICAgICAgICAgLmVxKFRvcnJlbnRQZWVyRW50aXR5OjpnZXRUb3JyZW50SWQsIHRvcnJlbnRJZCkKKyAgICAgICAgICAgICAgICAuZXEoVG9ycmVudFBlZXJFbnRpdHk6OmdldFVzZXJJZCwgdXNlcklkKQorICAgICAgICAgICAgICAgIC5lcShUb3JyZW50UGVlckVudGl0eTo6Z2V0UGVlcklkLCBwZWVySWQpLCBmYWxzZQorICAgICAgICApOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGRlbGV0ZShJbnRlZ2VyIHVzZXJJZCwgSW50ZWdlciB0b3JyZW50SWQsIFN0cmluZyBwZWVySWRIZXgpIHsKKyAgICAgICAgcmVtb3ZlKG5ldyBRdWVyeVdyYXBwZXI8VG9ycmVudFBlZXJFbnRpdHk+KCkKKyAgICAgICAgICAgICAgICAubGFtYmRhKCkKKyAgICAgICAgICAgICAgICAuZXEoVG9ycmVudFBlZXJFbnRpdHk6OmdldFRvcnJlbnRJZCwgdG9ycmVudElkKQorICAgICAgICAgICAgICAgIC5lcShUb3JyZW50UGVlckVudGl0eTo6Z2V0VXNlcklkLCB1c2VySWQpCisgICAgICAgICAgICAgICAgLmVxKFRvcnJlbnRQZWVyRW50aXR5OjpnZXRQZWVySWRIZXgsIHBlZXJJZEhleCkKKyAgICAgICAgKTsKKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9TZXJ2ZXIvQlQvVG9ycmVudFNlcnZpY2UuamF2YSBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9TZXJ2ZXIvQlQvVG9ycmVudFNlcnZpY2UuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNmYxYjcyCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL1NlcnZlci9CVC9Ub3JyZW50U2VydmljZS5qYXZhCkBAIC0wLDAgKzEsMjczIEBACitwYWNrYWdlIGNvbS5ydW95aS53ZWIuU2VydmVyLkJUOworCitpbXBvcnQgY24uaHV0b29sLmNvcmUuYmVhbi5CZWFuVXRpbDsKK2ltcG9ydCBjb20uYmFvbWlkb3UubXliYXRpc3BsdXMuY29yZS5jb25kaXRpb25zLnF1ZXJ5LlF1ZXJ5V3JhcHBlcjsKK2ltcG9ydCBjb20uYmFvbWlkb3UubXliYXRpc3BsdXMuY29yZS50b29sa2l0LldyYXBwZXJzOworaW1wb3J0IGNvbS5iYW9taWRvdS5teWJhdGlzcGx1cy5leHRlbnNpb24uc2VydmljZS5pbXBsLlNlcnZpY2VJbXBsOworaW1wb3J0IGNvbS5kYW1wY2FrZS5iZW5jb2RlLkJlbmNvZGU7CitpbXBvcnQgY29tLmRhbXBjYWtlLmJlbmNvZGUuVHlwZTsKK2ltcG9ydCBjb20ucnVveWkuc3lzdGVtLm1hcHBlci5TeXNDb25maWdNYXBwZXI7CitpbXBvcnQgY29tLnJ1b3lpLndlYi5TZXJ2ZXIuc3lzLlVzZXJDcmVkZW50aWFsU2VydmljZTsKK2ltcG9ydCBjb20ucnVveWkud2ViLlRvb2wuQlQuSVBVdGlsczsKK2ltcG9ydCBjb20ucnVveWkud2ViLlRvb2wuQlQuVG9ycmVudFV0aWxzOworaW1wb3J0IGNvbS5ydW95aS53ZWIuY29udHJvbGxlci5jb21tb24uQ29tbW9uUmVzdWx0U3RhdHVzOworaW1wb3J0IGNvbS5ydW95aS53ZWIuY29udHJvbGxlci5jb21tb24uYmFzZS5JMThuTWVzc2FnZTsKK2ltcG9ydCBjb20ucnVveWkud2ViLmNvbnRyb2xsZXIuY29tbW9uLmV4Y2VwdGlvbi5Sb2NrZXRQVEV4Y2VwdGlvbjsKK2ltcG9ydCBjb20ucnVveWkud2ViLmRhby5CVC5Ub3JyZW50RGFvOworaW1wb3J0IGNvbS5ydW95aS53ZWIuZG9tYWluLkJULio7CitpbXBvcnQgY29tLnJ1b3lpLndlYi5TZXJ2ZXIuc3lzLlVzZXJTZXJ2aWNlOworaW1wb3J0IGNvbS5ydW95aS53ZWIuZG9tYWluLnN5cy5Vc2VyQ3JlZGVudGlhbEVudGl0eTsKK2ltcG9ydCBjb20ucnVveWkud2ViLmRvbWFpbi5zeXMuVXNlckVudGl0eTsKK2ltcG9ydCBsb21ib2suUmVxdWlyZWRBcmdzQ29uc3RydWN0b3I7CitpbXBvcnQgbG9tYm9rLlNuZWFreVRocm93czsKK2ltcG9ydCBsb21ib2suZXh0ZXJuLnNsZjRqLlNsZjRqOworaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5sYW5nMy5TdHJpbmdVdGlsczsKK2ltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLnN0ZXJlb3R5cGUuU2VydmljZTsKK2ltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLnRyYW5zYWN0aW9uLmFubm90YXRpb24uVHJhbnNhY3Rpb25hbDsKK2ltcG9ydCBjbi5odXRvb2wuY29yZS51dGlsLlJhbmRvbVV0aWw7CitpbXBvcnQgamF2YS5pby5GaWxlOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS5uaW8uY2hhcnNldC5TdGFuZGFyZENoYXJzZXRzOworaW1wb3J0IGphdmEubmlvLmZpbGUuRmlsZXM7CitpbXBvcnQgamF2YS5uaW8uZmlsZS5QYXRoOworaW1wb3J0IGphdmEudXRpbC5BcnJheXM7CitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKKworQFNlcnZpY2UKK0BTbGY0agorQFJlcXVpcmVkQXJnc0NvbnN0cnVjdG9yCitwdWJsaWMgY2xhc3MgVG9ycmVudFNlcnZpY2UgZXh0ZW5kcyBTZXJ2aWNlSW1wbDxUb3JyZW50RGFvLCBUb3JyZW50RW50aXR5PiB7CisKKyAgICBmaW5hbCBUb3JyZW50TWFuYWdlciB0b3JyZW50TWFuYWdlcjsKKyAgICBmaW5hbCBUb3JyZW50RGFvIHRvcnJlbnREYW87CisgICAgZmluYWwgVHJhY2tlclVSTFNlcnZpY2UgdHJhY2tlclVSTFNlcnZpY2U7CisgICAgcHJpdmF0ZSBmaW5hbCBVc2VyQ3JlZGVudGlhbFNlcnZpY2UgdXNlckNyZWRlbnRpYWxTZXJ2aWNlOworICAgIHByaXZhdGUgZmluYWwgUGFzc2tleU1hbmFnZXIgcGFzc2tleU1hbmFnZXI7CisKKyAgICBmaW5hbCBVc2VyU2VydmljZSB1c2VyU2VydmljZTsKKyAgICBmaW5hbCBUb3JyZW50U3RvcmFnZVNlcnZpY2UgdG9ycmVudFN0b3JhZ2VTZXJ2aWNlOworICAgIGZpbmFsIEJlbmNvZGUgaW5mb0JlbmNvZGUgPSBuZXcgQmVuY29kZShTdGFuZGFyZENoYXJzZXRzLklTT184ODU5XzEpOworCisgICAgcHVibGljIHZvaWQgaW5jcmVtZW50TGVlY2hlcnMoSW50ZWdlciBpZCkgeworICAgICAgICAvLyDkvb/nlKjkuZDop4LplIHmiJbmlbDmja7lupPplIHnoa7kv53nur/nqIvlronlhagKKyAgICAgICAgLy8g56S65L6L5L2/55So5pWw5o2u5bqTIHVwZGF0ZSDor63lj6Xljp/lrZDmgKflop7liqAKKyAgICAgICAgaW50IHJvd3MgPSB0b3JyZW50RGFvLmluY3JlbWVudExlZWNoZXJzKGlkKTsKKyAgICAgICAgaWYgKHJvd3MgPT0gMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFJvY2tldFBURXhjZXB0aW9uKENvbW1vblJlc3VsdFN0YXR1cy5GQUlMLCAiRmFpbGVkIHRvIHVwZGF0ZSBsZWVjaGVycyBjb3VudCIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIEludGVnZXIgYWRkKFRvcnJlbnRBZGRQYXJhbSBwYXJhbSkgeworICAgICAgICBUb3JyZW50RW50aXR5IGVudGl0eSA9IEJlYW5VdGlsLmNvcHlQcm9wZXJ0aWVzKHBhcmFtLCBUb3JyZW50RW50aXR5LmNsYXNzKTsKKyAgICAgICAgZW50aXR5LnNldFN0YXR1cyhUb3JyZW50RW50aXR5LlN0YXR1cy5DQU5ESURBVEUpOworICAgICAgICBlbnRpdHkuc2V0RmlsZVN0YXR1cygwKTsKKyAgICAgICAgZW50aXR5LnNldE93bmVyKHVzZXJTZXJ2aWNlLmdldFVzZXJJZCgpKTsKKyAgICAgICAgdG9ycmVudERhby5pbnNlcnQoZW50aXR5KTsKKyAgICAgICAgcmV0dXJuIGVudGl0eS5nZXRJZCgpOworICAgIH0KKworICAgIEBTbmVha3lUaHJvd3MKKyAgICBAVHJhbnNhY3Rpb25hbChyb2xsYmFja0ZvciA9IEV4Y2VwdGlvbi5jbGFzcykKKyAgICBwdWJsaWMgdm9pZCB1cGxvYWQoSW50ZWdlciBpZCwgYnl0ZVtdIGJ5dGVzLCBTdHJpbmcgZmlsZW5hbWUpIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGJ5dGVzKTsKKyAgICAgICAgVG9ycmVudEVudGl0eSBlbnRpdHkgPSBnZXRCeUlkKGlkKTsKKyAgICAgICAgaWYgKGVudGl0eSA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgUm9ja2V0UFRFeGNlcHRpb24oQ29tbW9uUmVzdWx0U3RhdHVzLlBBUkFNX0VSUk9SLCAi6K+l56eN5a2Q5LiN5a2Y5ZyoIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGVudGl0eS5nZXRGaWxlU3RhdHVzKCkgPT0gMSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFJvY2tldFBURXhjZXB0aW9uKENvbW1vblJlc3VsdFN0YXR1cy5QQVJBTV9FUlJPUiwgIuivpeenjeWtkOW3suS4iuS8oOi/h++8jOWmgumcgOmHjeS8oO+8jOivt+WIoOmZpOWQjuWGjeivlSIpOworICAgICAgICB9CisgICAgICAgIGlmICghZW50aXR5LmdldE93bmVyKCkuZXF1YWxzKHVzZXJTZXJ2aWNlLmdldFVzZXJJZCgpKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFJvY2tldFBURXhjZXB0aW9uKENvbW1vblJlc3VsdFN0YXR1cy5QQVJBTV9FUlJPUiwgIuivpeenjeWtkOS4jeWxnuS6juS9oCIpOworICAgICAgICB9CisKKworICAgICAgICBieXRlW10gdHJhbnNmb3JtZWRCeXRlcyA9IHRvcnJlbnRNYW5hZ2VyLnRyYW5zZm9ybShieXRlcyk7CisgICAgICAgIGJ5dGVbXSBpbmZvSGFzaCA9IHRvcnJlbnRNYW5hZ2VyLmluZm9IYXNoKHRyYW5zZm9ybWVkQnl0ZXMpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oaW5mb0hhc2gpOworCisgICAgICAgIGxvbmcgY291bnQgPSBjb3VudChXcmFwcGVycy48VG9ycmVudEVudGl0eT5sYW1iZGFRdWVyeSgpCisgICAgICAgICAgICAgICAgLmVxKFRvcnJlbnRFbnRpdHk6OmdldEluZm9IYXNoLCBpbmZvSGFzaCkpOworCisgICAgICAgIGlmIChjb3VudCAhPSAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgUm9ja2V0UFRFeGNlcHRpb24oQ29tbW9uUmVzdWx0U3RhdHVzLlBBUkFNX0VSUk9SLCAi6K+l56eN5a2Q56uZ5YaF5bey5a2Y5Zyo44CCIik7CisgICAgICAgIH0KKyAgICAgICAgVG9ycmVudER0byBkdG8gPSB0b3JyZW50TWFuYWdlci5wYXJzZShieXRlcyk7CisKKyAgICAgICAgZW50aXR5LnNldEluZm9IYXNoKGluZm9IYXNoKTsKKyAgICAgICAgZW50aXR5LnNldEZpbGVuYW1lKGZpbGVuYW1lKTsKKworICAgICAgICBlbnRpdHkuc2V0U2l6ZShkdG8uZ2V0VG9ycmVudFNpemUoKSk7CisgICAgICAgIGVudGl0eS5zZXRGaWxlQ291bnQoZHRvLmdldFRvcnJlbnRDb3VudCgpLmludFZhbHVlKCkpOworICAgICAgICBlbnRpdHkuc2V0VHlwZShkdG8uZ2V0VG9ycmVudENvdW50KCkgPiAxID8gMiA6IDEpOworICAgICAgICB1cGRhdGVCeUlkKGVudGl0eSk7CisgICAgICAgIHRvcnJlbnRTdG9yYWdlU2VydmljZS5zYXZlKGlkLCB0cmFuc2Zvcm1lZEJ5dGVzKTsKKworICAgIH0KKworICAgIHB1YmxpYyBieXRlW10gZmV0Y2goSW50ZWdlciB0b3JyZW50SWQsIFN0cmluZyBwYXNza2V5KSB7CisgICAgICAgIGJ5dGVbXSBmaWxlQnl0ZXMgPSB0b3JyZW50U3RvcmFnZVNlcnZpY2UucmVhZCh0b3JyZW50SWQpOworCisgICAgICAgIGlmIChmaWxlQnl0ZXMgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFJvY2tldFBURXhjZXB0aW9uKENvbW1vblJlc3VsdFN0YXR1cy5QQVJBTV9FUlJPUiwgSTE4bk1lc3NhZ2UuZ2V0TWVzc2FnZSgKKyAgICAgICAgICAgICAgICAgICAgInRvcnJlbnRfbm90X2V4aXN0cyIpKTsKKyAgICAgICAgfQorCisgICAgICAgIE1hcDxTdHJpbmcsIE9iamVjdD4gZGVjb2RlZE1hcCA9IGluZm9CZW5jb2RlLmRlY29kZShmaWxlQnl0ZXMsIFR5cGUuRElDVElPTkFSWSk7CisgICAgICAgIGlmIChTdHJpbmdVdGlscy5pc0VtcHR5KHBhc3NrZXkpKSB7CisgICAgICAgICAgICBwYXNza2V5ID0gdXNlclNlcnZpY2UuZ2V0UGFzc2tleSh1c2VyU2VydmljZS5nZXRVc2VySWQoKSk7CisgICAgICAgIH0KKworICAgICAgICBkZWNvZGVkTWFwLnB1dCgiYW5ub3VuY2UiLCB0cmFja2VyVVJMU2VydmljZS5nZXRBbm5vdW5jZShwYXNza2V5KSk7CisKKyAgICAgICAgcmV0dXJuIGluZm9CZW5jb2RlLmVuY29kZShkZWNvZGVkTWFwKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBhdWRpdChUb3JyZW50QXVkaXRQYXJhbSBwYXJhbSkgeworCisKKworICAgICAgICBJbnRlZ2VyIGlkID0gcGFyYW0uZ2V0SWQoKTsKKyAgICAgICAgVG9ycmVudEVudGl0eSBlbnRpdHkgPSBnZXRCeUlkKGlkKTsKKyAgICAgICAgaWYgKGVudGl0eSA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgUm9ja2V0UFRFeGNlcHRpb24oQ29tbW9uUmVzdWx0U3RhdHVzLlBBUkFNX0VSUk9SLCAi6K+l56eN5a2Q5LiN5a2Y5ZyoIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGVudGl0eS5nZXRTdGF0dXMoKSAhPSAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgUm9ja2V0UFRFeGNlcHRpb24oQ29tbW9uUmVzdWx0U3RhdHVzLlBBUkFNX0VSUk9SLCAi6K+l56eN5a2Q5LiN5piv5b6F5a6h5qC454q25oCBIik7CisgICAgICAgIH0KKyAgICAgICAgZW50aXR5LnNldFJldmlld2VyKHVzZXJTZXJ2aWNlLmdldFVzZXJJZCgpKTsKKworICAgICAgICBlbnRpdHkuc2V0U3RhdHVzKHBhcmFtLmdldFN0YXR1cygpKTsKKyAgICAgICAgaWYgKFN0cmluZ1V0aWxzLmlzTm90RW1wdHkocGFyYW0uZ2V0UmVtYXJrKCkpKSB7CisgICAgICAgICAgICBlbnRpdHkuc2V0UmVtYXJrKHBhcmFtLmdldFJlbWFyaygpKTsKKyAgICAgICAgfQorICAgICAgICB1cGRhdGVCeUlkKGVudGl0eSk7CisKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB1cGRhdGUoVG9ycmVudEVudGl0eSBlbnRpdHkpIHsKKyAgICAgICAgSW50ZWdlciBpZCA9IGVudGl0eS5nZXRJZCgpOworICAgICAgICBUb3JyZW50RW50aXR5IHRvcnJlbnQgPSBnZXRCeUlkKGlkKTsKKworICAgICAgICBpZiAodG9ycmVudCA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgUm9ja2V0UFRFeGNlcHRpb24oQ29tbW9uUmVzdWx0U3RhdHVzLlBBUkFNX0VSUk9SLCBJMThuTWVzc2FnZS5nZXRNZXNzYWdlKAorICAgICAgICAgICAgICAgICAgICAidG9ycmVudF9ub3RfZXhpc3RzIikpOworICAgICAgICB9CisgICAgICAgIGlmICghZW50aXR5LmdldE93bmVyKCkuZXF1YWxzKHVzZXJTZXJ2aWNlLmdldFVzZXJJZCgpKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFJvY2tldFBURXhjZXB0aW9uKENvbW1vblJlc3VsdFN0YXR1cy5QQVJBTV9FUlJPUiwgIuivpeenjeWtkOS4jeWxnuS6juS9oCIpOworICAgICAgICB9CisKKyAgICAgICAgdG9ycmVudC5zZXREZXNjcmlwdGlvbihlbnRpdHkuZ2V0RGVzY3JpcHRpb24oKSk7CisgICAgICAgIHRvcnJlbnQuc2V0VGl0bGUoZW50aXR5LmdldFRpdGxlKCkpOworICAgICAgICB0b3JyZW50LnNldE5hbWUoZW50aXR5LmdldE5hbWUoKSk7CisgICAgICAgIHRvcnJlbnQuc2V0U3ViaGVhZGluZyhlbnRpdHkuZ2V0U3ViaGVhZGluZygpKTsKKyAgICAgICAgdG9ycmVudC5zZXRTdGF0dXMoVG9ycmVudEVudGl0eS5TdGF0dXMuUkVUUklBTCk7CisKKyAgICAgICAgdXBkYXRlQnlJZCh0b3JyZW50KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCByZW1vdmUoSW50ZWdlcltdIGlkcykgeworICAgICAgICBmb3IgKEludGVnZXIgaWQgOiBpZHMpIHsKKyAgICAgICAgICAgIFRvcnJlbnRFbnRpdHkgZW50aXR5ID0gZ2V0QnlJZChpZCk7CisgICAgICAgICAgICBpZiAoIWVudGl0eS5nZXRPd25lcigpLmVxdWFscyh1c2VyU2VydmljZS5nZXRVc2VySWQoKSkpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUm9ja2V0UFRFeGNlcHRpb24oQ29tbW9uUmVzdWx0U3RhdHVzLlBBUkFNX0VSUk9SLCAi6K+l56eN5a2Q5LiN5bGe5LqO5L2gIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZW1vdmVCeUlkcyhBcnJheXMuYXNMaXN0KGlkcykpOworICAgIH0KKworICAgIHB1YmxpYyBUb3JyZW50RW50aXR5IGdldEJ5SW5mb0hhc2goYnl0ZVtdIGluZm9IYXNoKSB7CisgICAgICAgIFRvcnJlbnRFbnRpdHkgZW50aXR5ID0gZ2V0T25lKG5ldyBRdWVyeVdyYXBwZXI8VG9ycmVudEVudGl0eT4oKQorICAgICAgICAgICAgICAgICAgICAgICAgLmxhbWJkYSgpCisgICAgICAgICAgICAgICAgICAgICAgICAuZXEoVG9ycmVudEVudGl0eTo6Z2V0SW5mb0hhc2gsIGluZm9IYXNoKQorICAgICAgICAgICAgICAgICwgZmFsc2UKKyAgICAgICAgKTsKKyAgICAgICAgcmV0dXJuIGVudGl0eTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiDmlLbol4/miJbogIXlj5bmtojmlLbol48KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBmYXZvcml0ZShJbnRlZ2VyIHRvcnJlbnRJZCwgSW50ZWdlciB1c2VySWQpIHsKKworICAgIH0KKworCisgICAgLyoqCisgICAgICog5bCG5pmu6YCa5paH5Lu26L2s5o2i5Li656eN5a2Q5paH5Lu2CisgICAgICogQHBhcmFtIGZpbGVCeXRlcyAgICAgICDljp/lp4vmlofku7blrZfoioLmlbDmja4KKyAgICAgKiBAcGFyYW0gb3JpZ2luYWxOYW1lICAgIOWOn+Wni+aWh+S7tuWQje+8iOS4jeWQq+aJqeWxleWQje+8iQorICAgICAqIEBwYXJhbSBhbm5vdW5jZVVybCAgICAgdHJhY2tlcuWcsOWdgAorICAgICAqIEByZXR1cm4g56eN5a2Q5paH5Lu25a2X6IqC5pWw5o2uCisgICAgICovCisgICAgcHVibGljIGJ5dGVbXSBjcmVhdGVUb3JyZW50RnJvbUZpbGUoYnl0ZVtdIGZpbGVCeXRlcywgU3RyaW5nIG9yaWdpbmFsTmFtZSwgU3RyaW5nIGFubm91bmNlVXJsKQorICAgICAgICAgICAgdGhyb3dzIElPRXhjZXB0aW9uLCBSb2NrZXRQVEV4Y2VwdGlvbiB7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIC8vIOeUn+aIkOenjeWtkOaWh+S7tuWQje+8iOW8uuWItua3u+WKoC50b3JyZW505ZCO57yA77yJCisgICAgICAgICAgICBTdHJpbmcgdG9ycmVudE5hbWUgPSBvcmlnaW5hbE5hbWUgKyAiLnRvcnJlbnQiOworCisgICAgICAgICAgICAvLyDliJvlu7rkuLTml7bmlofku7YKKyAgICAgICAgICAgIFBhdGggdGVtcEZpbGUgPSBGaWxlcy5jcmVhdGVUZW1wRmlsZSgidXBsb2FkLSIsICIudG1wIik7CisgICAgICAgICAgICBGaWxlcy53cml0ZSh0ZW1wRmlsZSwgZmlsZUJ5dGVzKTsKKworICAgICAgICAgICAgLy8g6LCD55So5bel5YW357G755Sf5oiQ56eN5a2QCisgICAgICAgICAgICBGaWxlIHRvcnJlbnRGaWxlID0gbmV3IEZpbGUodGVtcEZpbGUudG9VcmkoKSk7CisgICAgICAgICAgICBUb3JyZW50VXRpbHMuY3JlYXRlVG9ycmVudCgKKyAgICAgICAgICAgICAgICAgICAgdG9ycmVudEZpbGUsCisgICAgICAgICAgICAgICAgICAgIG5ldyBGaWxlKHRlbXBGaWxlLnRvVXJpKCkpLAorICAgICAgICAgICAgICAgICAgICBhbm5vdW5jZVVybAorICAgICAgICAgICAgKTsKKworICAgICAgICAgICAgLy8g6K+75Y+W55Sf5oiQ55qE56eN5a2Q5paH5Lu2CisgICAgICAgICAgICBieXRlW10gdG9ycmVudEJ5dGVzID0gRmlsZXMucmVhZEFsbEJ5dGVzKHRlbXBGaWxlKTsKKworICAgICAgICAgICAgLy8g5riF55CG5Li05pe25paH5Lu2CisgICAgICAgICAgICBGaWxlcy5kZWxldGVJZkV4aXN0cyh0ZW1wRmlsZSk7CisKKyAgICAgICAgICAgIHJldHVybiB0b3JyZW50Qnl0ZXM7CisKKyAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgbG9nLmVycm9yKCLnlJ/miJDnp43lrZDmlofku7blpLHotKU6IHt9IiwgZS5nZXRNZXNzYWdlKCksIGUpOworICAgICAgICAgICAgdGhyb3cgbmV3IFJvY2tldFBURXhjZXB0aW9uKCLmlofku7bovazmjaLlpLHotKXvvIzor7fph43or5UiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRoZSBwdXJwb3NlIG9mIHRoZSBtZXRob2Q6CisgICAgICog57uZ5b2T5YmN55So5oi35Yib5bu6cGFzc2tleeWHreivgeS/oeaBrworICAgICAqLworICAgICBwdWJsaWMgdm9pZCBjcmVhdGVDcmVkZW50aWFsKGludCB1c2VySWQpeworCisgICAgICAgICBpZiAodXNlckNyZWRlbnRpYWxTZXJ2aWNlLmdldEJ5SWQodXNlcklkKSA9PSBudWxsKXsKKyAgICAgICAgICAgICBVc2VyRW50aXR5IHVzZXJFbnRpdHkgPSB1c2VyU2VydmljZS5nZXRVc2VyQnlJZCh1c2VySWQpOworICAgICAgICAgICAgIFVzZXJDcmVkZW50aWFsRW50aXR5IHVzZXJDcmVkZW50aWFsRW50aXR5ID0gbmV3IFVzZXJDcmVkZW50aWFsRW50aXR5KCk7CisgICAgICAgICAgICAgdXNlckNyZWRlbnRpYWxFbnRpdHkuc2V0VXNlcmlkKHVzZXJFbnRpdHkuZ2V0VXNlcl9pZCgpLmludFZhbHVlKCkpOworICAgICAgICAgICAgIHVzZXJDcmVkZW50aWFsRW50aXR5LnNldFVzZXJuYW1lKHVzZXJFbnRpdHkuZ2V0VXNlcl9uYW1lKCkpOworICAgICAgICAgICAgIHVzZXJDcmVkZW50aWFsRW50aXR5LnNldFJlZ0lwKElQVXRpbHMuZ2V0SXBBZGRyKCkpOworICAgICAgICAgICAgIHVzZXJDcmVkZW50aWFsRW50aXR5LnNldFJlZ1R5cGUodXNlckVudGl0eS5nZXRSZWdfdHlwZSgpKTsKKyAgICAgICAgICAgICBTdHJpbmcgY2hlY2tDb2RlID0gcGFzc2tleU1hbmFnZXIuZ2VuZXJhdGUodXNlckVudGl0eS5nZXRVc2VyX2lkKCkuaW50VmFsdWUoKSk7CisgICAgICAgICAgICAgdXNlckNyZWRlbnRpYWxFbnRpdHkuc2V0Q2hlY2tDb2RlKGNoZWNrQ29kZSk7CisKKyAgICAgICAgICAgICAvLyDnlJ/miJDpmo/mnLrnm5Dlkozlr4bnoIEKKyAgICAgICAgICAgICBTdHJpbmcgc2FsdCA9IFJhbmRvbVV0aWwucmFuZG9tU3RyaW5nKDgpOworICAgICAgICAgICAgIFN0cmluZyBwYXNza2V5ID0gcGFzc2tleU1hbmFnZXIuZ2VuZXJhdGUodXNlckVudGl0eS5nZXRVc2VyX2lkKCkuaW50VmFsdWUoKSk7CisKKyAgICAgICAgICAgICB1c2VyQ3JlZGVudGlhbEVudGl0eS5zZXRTYWx0KHNhbHQpOworICAgICAgICAgICAgIHVzZXJDcmVkZW50aWFsRW50aXR5LnNldFBhc3NrZXkocGFzc2tleSk7CisgICAgICAgICAgICAgU3RyaW5nIGdlbmVyYXRlZFBhc3N3b3JkID0gdXNlckNyZWRlbnRpYWxTZXJ2aWNlLmdlbmVyYXRlKHVzZXJFbnRpdHkuZ2V0UGFzc3dvcmQoKSwgc2FsdCk7CisgICAgICAgICAgICAgdXNlckNyZWRlbnRpYWxFbnRpdHkuc2V0UGFzc3dvcmQoZ2VuZXJhdGVkUGFzc3dvcmQpOworICAgICAgICAgICAgIC8vIOS/neWtmOeUqOaIt+WHreivgeWunuS9kworICAgICAgICAgICAgIHVzZXJDcmVkZW50aWFsU2VydmljZS5zYXZlKHVzZXJDcmVkZW50aWFsRW50aXR5KTsKKyAgICAgICAgIH0KKworICAgICB9CisKKworICAgIHB1YmxpYyBMaXN0PFRvcnJlbnRFbnRpdHk+IGFkdmFuY2VkU2VhcmNoKEFkdmFuY2VkVG9ycmVudFBhcmFtIHBhcmFtKXsKKyAgICAgICAgIHJldHVybiB0b3JyZW50RGFvLmFkdmFuY2VkU2VhcmNoKHBhcmFtKTsKKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9TZXJ2ZXIvQlQvVG9ycmVudFN0b3JhZ2VTZXJ2aWNlLmphdmEgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvU2VydmVyL0JUL1RvcnJlbnRTdG9yYWdlU2VydmljZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE0N2ViOTIKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvU2VydmVyL0JUL1RvcnJlbnRTdG9yYWdlU2VydmljZS5qYXZhCkBAIC0wLDAgKzEsMjggQEAKK3BhY2thZ2UgY29tLnJ1b3lpLndlYi5TZXJ2ZXIuQlQ7CisKK2ltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLndlYi5tdWx0aXBhcnQuTXVsdGlwYXJ0RmlsZTsKKworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07CisKKy8qKgorICog56eN5a2Q5a2Y5YKo5pyN5YqhCisgKgorICovCitwdWJsaWMgaW50ZXJmYWNlIFRvcnJlbnRTdG9yYWdlU2VydmljZSB7CisKKyAgICBkZWZhdWx0IHZvaWQgaW5pdCgpIHsKKworICAgIH0KKworICAgIHZvaWQgc2F2ZShJbnRlZ2VyIGlkLCBieXRlW10gdG9ycmVudCk7CisKKyAgICB2b2lkIHN0b3JlKEludGVnZXIgaWQsIE11bHRpcGFydEZpbGUgZmlsZSk7CisKKyAgICBJbnB1dFN0cmVhbSBsb2FkKEludGVnZXIgaWQpOworCisgICAgYnl0ZVtdIHJlYWQoSW50ZWdlciBpZCk7CisKKyAgICB2b2lkIGRlbGV0ZShJbnRlZ2VyIGlkKTsKKworfQorCmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvU2VydmVyL0JUL1RyYWNrZXJVUkxTZXJ2aWNlLmphdmEgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvU2VydmVyL0JUL1RyYWNrZXJVUkxTZXJ2aWNlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDI4YzdlMgotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9TZXJ2ZXIvQlQvVHJhY2tlclVSTFNlcnZpY2UuamF2YQpAQCAtMCwwICsxLDM4IEBACitwYWNrYWdlIGNvbS5ydW95aS53ZWIuU2VydmVyLkJUOworCitpbXBvcnQgY29tLnJ1b3lpLndlYi5jb250cm9sbGVyLmNvbW1vbi5Db25zdGFudHM7CitpbXBvcnQgY29tLnJ1b3lpLndlYi5jb250cm9sbGVyLmNvbW1vbi5Db25zdGFudHM7CitpbXBvcnQgbG9tYm9rLlJlcXVpcmVkQXJnc0NvbnN0cnVjdG9yOworaW1wb3J0IGxvbWJvay5leHRlcm4uc2xmNGouU2xmNGo7CitpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay5zdGVyZW90eXBlLlNlcnZpY2U7CisKK2ltcG9ydCBqYXZhLm5ldC5JbmV0QWRkcmVzczsKK2ltcG9ydCBqYXZhLm5ldC5Vbmtub3duSG9zdEV4Y2VwdGlvbjsKKworLyoqCisgKiDns7vnu5/phY3nva4KKyAqCisgKiBAYXV0aG9yIEpyeAorICovCitAU2VydmljZQorQFNsZjRqCitAUmVxdWlyZWRBcmdzQ29uc3RydWN0b3IKK3B1YmxpYyBjbGFzcyBUcmFja2VyVVJMU2VydmljZSB7CisKKyAgICAvKioKKyAgICAgKiDojrflj5blvZPliY3nmoR0cmFja2VyIEFubm91bmNlIOWcsOWdgAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0QW5ub3VuY2UoU3RyaW5nIHBhc3NrZXkpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIEluZXRBZGRyZXNzIGxvY2FsaG9zdCA9IEluZXRBZGRyZXNzLmdldExvY2FsSG9zdCgpOworICAgICAgICAgICAgU3RyaW5nIGhvc3RuYW1lID0gbG9jYWxob3N0LmdldEhvc3ROYW1lKCk7CisKKyAgICAgICAgICAgIFN0cmluZyBzdHJpbmcgPSBDb25zdGFudHMuQW5ub3VuY2UuUFJPVE9DT0wgKyAiOi8vIiArIGhvc3RuYW1lICsgIjoiICsgQ29uc3RhbnRzLkFubm91bmNlLlBPUlQgKyAiL3RyYWNrZXIvYW5ub3VuY2U/cGFzc2tleT0iICsgcGFzc2tleTsKKworICAgICAgICAgICAgcmV0dXJuIHN0cmluZzsKKyAgICAgICAgfWNhdGNoIChVbmtub3duSG9zdEV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgIHJldHVybiAiU2VydmVyIGVycm9yOiBjYW4gbm90IGdldCBob3N0IjsKKyAgICAgICAgfQorICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL1NlcnZlci9zeXMvVXNlckNyZWRlbnRpYWxTZXJ2aWNlLmphdmEgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvU2VydmVyL3N5cy9Vc2VyQ3JlZGVudGlhbFNlcnZpY2UuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ODM5YjlkCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL1NlcnZlci9zeXMvVXNlckNyZWRlbnRpYWxTZXJ2aWNlLmphdmEKQEAgLTAsMCArMSwxNDAgQEAKK3BhY2thZ2UgY29tLnJ1b3lpLndlYi5TZXJ2ZXIuc3lzOworCitpbXBvcnQgY24uZGV2MzMuc2F0b2tlbi5zZWN1cmUuU2FTZWN1cmVVdGlsOworaW1wb3J0IGNvbS5iYW9taWRvdS5teWJhdGlzcGx1cy5jb3JlLmNvbmRpdGlvbnMucXVlcnkuUXVlcnlXcmFwcGVyOworaW1wb3J0IGNvbS5iYW9taWRvdS5teWJhdGlzcGx1cy5jb3JlLmNvbmRpdGlvbnMudXBkYXRlLkxhbWJkYVVwZGF0ZVdyYXBwZXI7CitpbXBvcnQgY29tLmJhb21pZG91Lm15YmF0aXNwbHVzLmNvcmUudG9vbGtpdC5XcmFwcGVyczsKK2ltcG9ydCBjb20uYmFvbWlkb3UubXliYXRpc3BsdXMuZXh0ZW5zaW9uLnNlcnZpY2UuaW1wbC5TZXJ2aWNlSW1wbDsKK2ltcG9ydCBjb20ucnVveWkud2ViLmNvbnRyb2xsZXIuY29tbW9uLkNvbW1vblJlc3VsdFN0YXR1czsKK2ltcG9ydCBjb20ucnVveWkud2ViLmNvbnRyb2xsZXIuY29tbW9uLmV4Y2VwdGlvbi5Sb2NrZXRQVEV4Y2VwdGlvbjsKK2ltcG9ydCBjb20ucnVveWkud2ViLmRhby5zeXMuVXNlckNyZWRlbnRpYWxEYW87CitpbXBvcnQgY29tLnJ1b3lpLndlYi5kb21haW4uc3lzLlVzZXJDcmVkZW50aWFsRW50aXR5OworaW1wb3J0IGNvbS5ydW95aS53ZWIuU2VydmVyLkJULlBhc3NrZXlNYW5hZ2VyOworaW1wb3J0IGxvbWJvay5SZXF1aXJlZEFyZ3NDb25zdHJ1Y3RvcjsKK2ltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLnN0ZXJlb3R5cGUuU2VydmljZTsKKworaW1wb3J0IGphdmEudXRpbC5PcHRpb25hbDsKKworQFNlcnZpY2UKK0BSZXF1aXJlZEFyZ3NDb25zdHJ1Y3RvcgorcHVibGljIGNsYXNzIFVzZXJDcmVkZW50aWFsU2VydmljZSBleHRlbmRzIFNlcnZpY2VJbXBsPFVzZXJDcmVkZW50aWFsRGFvLCBVc2VyQ3JlZGVudGlhbEVudGl0eT4geworCisgICAgcHJpdmF0ZSBmaW5hbCBQYXNza2V5TWFuYWdlciBwYXNza2V5TWFuYWdlcjsKKworICAgIHByaXZhdGUgZmluYWwgVXNlckNyZWRlbnRpYWxEYW8gdXNlckNyZWRlbnRpYWxEYW87CisKKyAgICAvKioKKyAgICAgKiDnlJ/miJDliqDlr4bnmoTlr4bnoIEKKyAgICAgKgorICAgICAqIEBwYXJhbSBwYXNzd29yZAorICAgICAqIEBwYXJhbSBzYWx0CisgICAgICogQHJldHVybgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2VuZXJhdGUoU3RyaW5nIHBhc3N3b3JkLCBTdHJpbmcgc2FsdCkgeworICAgICAgICByZXR1cm4gU2FTZWN1cmVVdGlsLnNoYTI1NihwYXNzd29yZCArIHNhbHQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIOabtOaWsOWvhueggQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHVwZGF0ZVBhc3N3b3JkKEludGVnZXIgdXNlcklkLCBTdHJpbmcgbmV3UGFzc3dvcmQpIHsKKyAgICAgICAgU3RyaW5nIHNhbHQgPSBnZXRCeUlkKHVzZXJJZCkuZ2V0U2FsdCgpOworICAgICAgICB1cGRhdGVQYXNzd29yZCh1c2VySWQsIG5ld1Bhc3N3b3JkLCBzYWx0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiDmm7TmlrB0b3RwCisgICAgICovCisgICAgcHVibGljIHZvaWQgdXBkYXRlVG90cChJbnRlZ2VyIHVzZXJJZCwgU3RyaW5nIG5ld1RvdHApIHsKKyAgICAgICAgdXBkYXRlKG5ldyBMYW1iZGFVcGRhdGVXcmFwcGVyPFVzZXJDcmVkZW50aWFsRW50aXR5PigpCisgICAgICAgICAgICAgICAgLmVxKFVzZXJDcmVkZW50aWFsRW50aXR5OjpnZXRVc2VyaWQsIHVzZXJJZCkKKyAgICAgICAgICAgICAgICAuc2V0KFVzZXJDcmVkZW50aWFsRW50aXR5OjpnZXRUb3RwLCBuZXdUb3RwKQorICAgICAgICApOworICAgIH0KKworICAgIC8qKgorICAgICAqIOWOu+aOiXJlbW92ZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHJlbW92ZVRvdHAoSW50ZWdlciB1c2VySWQpIHsKKyAgICAgICAgdXBkYXRlKG5ldyBMYW1iZGFVcGRhdGVXcmFwcGVyPFVzZXJDcmVkZW50aWFsRW50aXR5PigpCisgICAgICAgICAgICAgICAgLmVxKFVzZXJDcmVkZW50aWFsRW50aXR5OjpnZXRVc2VyaWQsIHVzZXJJZCkKKyAgICAgICAgICAgICAgICAuc2V0KFVzZXJDcmVkZW50aWFsRW50aXR5OjpnZXRUb3RwLCBudWxsKQorICAgICAgICApOworICAgIH0KKworCisgICAgLyoqCisgICAgICog5pu05paw5a+G56CBCisgICAgICovCisgICAgcHVibGljIHZvaWQgdXBkYXRlUGFzc3dvcmQoSW50ZWdlciB1c2VySWQsIFN0cmluZyBuZXdQYXNzd29yZCwgU3RyaW5nIHNhbHQpIHsKKyAgICAgICAgU3RyaW5nIGdlbmVyYXRlZFBhc3N3b3JkID0gZ2VuZXJhdGUobmV3UGFzc3dvcmQsIHNhbHQpOworCisgICAgICAgIHVwZGF0ZShuZXcgTGFtYmRhVXBkYXRlV3JhcHBlcjxVc2VyQ3JlZGVudGlhbEVudGl0eT4oKQorICAgICAgICAgICAgICAgIC5lcShVc2VyQ3JlZGVudGlhbEVudGl0eTo6Z2V0VXNlcmlkLCB1c2VySWQpCisgICAgICAgICAgICAgICAgLnNldChVc2VyQ3JlZGVudGlhbEVudGl0eTo6Z2V0UGFzc3dvcmQsIGdlbmVyYXRlZFBhc3N3b3JkKQorICAgICAgICApOworCisgICAgfQorCisgICAgLyoqCisgICAgICog5qC55o2u55So5oi35ZCN6I635Y+WCisgICAgICoKKyAgICAgKiBAcGFyYW0gdXNlcm5hbWUKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHVibGljIFVzZXJDcmVkZW50aWFsRW50aXR5IGdldEJ5VXNlcm5hbWUoU3RyaW5nIHVzZXJuYW1lKSB7CisgICAgICAgIHJldHVybiBnZXRPbmUobmV3IFF1ZXJ5V3JhcHBlcjxVc2VyQ3JlZGVudGlhbEVudGl0eT4oKQorICAgICAgICAgICAgICAgIC5sYW1iZGEoKQorICAgICAgICAgICAgICAgIC5lcShVc2VyQ3JlZGVudGlhbEVudGl0eTo6Z2V0VXNlcm5hbWUsIHVzZXJuYW1lKSwgZmFsc2UKKyAgICAgICAgKTsKKyAgICB9CisKKyAgICBwdWJsaWMgVXNlckNyZWRlbnRpYWxFbnRpdHkgZ2V0QnlVc2VySWQoSW50ZWdlciBpZCkgeworICAgICAgICByZXR1cm4gdXNlckNyZWRlbnRpYWxEYW8uZ2V0QnlJZChpZCk7CisgICAgfQorCisgICAgLyoqCisgICAgICog6I635Y+WCisgICAgICoKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHVibGljIFVzZXJDcmVkZW50aWFsRW50aXR5IGdldEJ5Q2hlY2tDb2RlKFN0cmluZyBjb2RlKSB7CisgICAgICAgIHJldHVybiBnZXRPbmUobmV3IFF1ZXJ5V3JhcHBlcjxVc2VyQ3JlZGVudGlhbEVudGl0eT4oKQorICAgICAgICAgICAgICAgIC5sYW1iZGEoKQorICAgICAgICAgICAgICAgIC5lcShVc2VyQ3JlZGVudGlhbEVudGl0eTo6Z2V0Q2hlY2tDb2RlLCBjb2RlKSwgZmFsc2UKKyAgICAgICAgKTsKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIOmHjee9rueUqOaIt1BBU1NLRVkKKyAgICAgKgorICAgICAqIEBwYXJhbSB1c2VySWQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZWZyZXNoUGFzc2tleShJbnRlZ2VyIHVzZXJJZCkgeworCisgICAgICAgIFVzZXJDcmVkZW50aWFsRW50aXR5IGNyZWRlbnRpYWxFbnRpdHkgPSBnZXRPbmUoCisgICAgICAgICAgICAgICAgV3JhcHBlcnMuPFVzZXJDcmVkZW50aWFsRW50aXR5PmxhbWJkYVF1ZXJ5KCkKKyAgICAgICAgICAgICAgICAgICAgICAgIC5lcShVc2VyQ3JlZGVudGlhbEVudGl0eTo6Z2V0VXNlcmlkLCB1c2VySWQpCisgICAgICAgICk7CisKKyAgICAgICAgVXNlckNyZWRlbnRpYWxFbnRpdHkgY3JlZGVudGlhbCA9IE9wdGlvbmFsLm9mTnVsbGFibGUoY3JlZGVudGlhbEVudGl0eSkKKyAgICAgICAgICAgICAgICAub3JFbHNlVGhyb3coKCkgLT4gbmV3IFJvY2tldFBURXhjZXB0aW9uKENvbW1vblJlc3VsdFN0YXR1cy5QQVJBTV9FUlJPUikpOworCisgICAgICAgIFN0cmluZyBrZXkgPSBwYXNza2V5TWFuYWdlci5nZW5lcmF0ZSh1c2VySWQpOworCisgICAgICAgIGNyZWRlbnRpYWwuc2V0UGFzc2tleShrZXkpOworICAgICAgICB1cGRhdGVCeUlkKGNyZWRlbnRpYWwpOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgcmVzZXRDaGVja0NvZGUoSW50ZWdlciB1c2VySWQpIHsKKyAgICAgICAgU3RyaW5nIGNoZWNrQ29kZSA9IHBhc3NrZXlNYW5hZ2VyLmdlbmVyYXRlKHVzZXJJZCk7CisKKyAgICAgICAgdXBkYXRlKG5ldyBMYW1iZGFVcGRhdGVXcmFwcGVyPFVzZXJDcmVkZW50aWFsRW50aXR5PigpCisgICAgICAgICAgICAgICAgLmVxKFVzZXJDcmVkZW50aWFsRW50aXR5OjpnZXRVc2VyaWQsIHVzZXJJZCkKKyAgICAgICAgICAgICAgICAuc2V0KFVzZXJDcmVkZW50aWFsRW50aXR5OjpnZXRDaGVja0NvZGUsIGNoZWNrQ29kZSkKKyAgICAgICAgKTsKKworICAgICAgICByZXR1cm4gY2hlY2tDb2RlOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9TZXJ2ZXIvc3lzL1VzZXJTZXJ2aWNlLmphdmEgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvU2VydmVyL3N5cy9Vc2VyU2VydmljZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY1YjU3Y2UKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvU2VydmVyL3N5cy9Vc2VyU2VydmljZS5qYXZhCkBAIC0wLDAgKzEsNTAxIEBACitwYWNrYWdlIGNvbS5ydW95aS53ZWIuU2VydmVyLnN5czsKKworaW1wb3J0IGNvbS5iYW9taWRvdS5teWJhdGlzcGx1cy5leHRlbnNpb24uc2VydmljZS5pbXBsLlNlcnZpY2VJbXBsOworaW1wb3J0IGNvbS5ydW95aS5jb21tb24uY29yZS5kb21haW4ubW9kZWwuTG9naW5Vc2VyOworaW1wb3J0IGNvbS5ydW95aS53ZWIuVG9vbC5CVC5SZWRpc1V0aWw7CitpbXBvcnQgY29tLnJ1b3lpLndlYi5kYW8uc3lzLlVzZXJEYW87CitpbXBvcnQgY29tLnJ1b3lpLndlYi5kb21haW4uc3lzLlVzZXJDcmVkZW50aWFsRW50aXR5OworaW1wb3J0IGNvbS5ydW95aS53ZWIuZG9tYWluLnN5cy5Vc2VyRW50aXR5OworaW1wb3J0IGxvbWJvay5SZXF1aXJlZEFyZ3NDb25zdHJ1Y3RvcjsKK2ltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLnNlY3VyaXR5LmNvcmUuQXV0aGVudGljYXRpb247CitpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay5zZWN1cml0eS5jb3JlLmNvbnRleHQuU2VjdXJpdHlDb250ZXh0SG9sZGVyOworaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsuc3RlcmVvdHlwZS5TZXJ2aWNlOworCisvKioKKyAqIEBhdXRob3IgSnJ4CisgKi8KK0BTZXJ2aWNlCitAUmVxdWlyZWRBcmdzQ29uc3RydWN0b3IKK3B1YmxpYyBjbGFzcyBVc2VyU2VydmljZSBleHRlbmRzIFNlcnZpY2VJbXBsPFVzZXJEYW8sVXNlckVudGl0eT4geworCisgICAgcHJpdmF0ZSBmaW5hbCBVc2VyRGFvIHVzZXJEYW87CisvLyAgICBwcml2YXRlIGZpbmFsIEludml0YXRpb25TZXJ2aWNlIGludml0YXRpb25TZXJ2aWNlOworICAgIHByaXZhdGUgZmluYWwgVXNlckNyZWRlbnRpYWxTZXJ2aWNlIHVzZXJDcmVkZW50aWFsU2VydmljZTsKKy8vICAgIHByaXZhdGUgZmluYWwgQ2hlY2tDb2RlTWFuYWdlciBjaGVja0NvZGVNYW5hZ2VyOworLy8gICAgcHJpdmF0ZSBmaW5hbCBQYXNza2V5TWFuYWdlciBwYXNza2V5TWFuYWdlcjsKKy8vICAgIHByaXZhdGUgZmluYWwgQ2FwdGNoYVNlcnZpY2UgY2FwdGNoYVNlcnZpY2U7CisvLyAgICBwcml2YXRlIGZpbmFsIE1haWxTZXJ2aWNlIG1haWxTZXJ2aWNlOworLy8gICAgcHJpdmF0ZSBmaW5hbCBFbWFpbENvZGVTZXJ2aWNlIGVtYWlsQ29kZVNlcnZpY2U7CisvLyAgICBwcml2YXRlIGZpbmFsIFVzZXJSb2xlU2VydmljZSB1c2VyUm9sZVNlcnZpY2U7CisgICAgcHJpdmF0ZSBmaW5hbCBSZWRpc1V0aWwgcmVkaXNVdGlsOworLy8KKy8vICAgIHByaXZhdGUgZmluYWwgR29vZ2xlQXV0aGVudGljYXRvclNlcnZpY2UgZ29vZ2xlQXV0aGVudGljYXRvclNlcnZpY2U7CisKKworLy8gICAgQFRyYW5zYWN0aW9uYWwocm9sbGJhY2tGb3IgPSBFeGNlcHRpb24uY2xhc3MpCisvLyAgICBwdWJsaWMgVXNlckVudGl0eSBjcmVhdGVVc2VyKFN0cmluZyB1c2VybmFtZSwKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGZ1bGxOYW1lLAorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgYXZhdGFyLAorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVc2VyRW50aXR5LkdlbmRlciBnZW5kZXIsCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBlbWFpbCwKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXNlckVudGl0eS5TdGF0ZSBzdGF0ZSkgeworLy8gICAgICAgIFVzZXJFbnRpdHkgdXNlckVudGl0eSA9IG5ldyBVc2VyRW50aXR5KCk7CisvLyAgICAgICAgdXNlckVudGl0eS5zZXRVc2VybmFtZSh1c2VybmFtZSk7CisvLyAgICAgICAgdXNlckVudGl0eS5zZXROaWNrbmFtZShmdWxsTmFtZSk7CisvLyAgICAgICAgdXNlckVudGl0eS5zZXRBdmF0YXIoYXZhdGFyKTsKKy8vICAgICAgICB1c2VyRW50aXR5LnNldEdlbmRlcihnZW5kZXIuZ2V0Q29kZSgpKTsKKy8vICAgICAgICB1c2VyRW50aXR5LnNldEVtYWlsKGVtYWlsKTsKKy8vICAgICAgICB1c2VyRW50aXR5LnNldFN0YXRlKHN0YXRlLmdldENvZGUoKSk7CisvLyAgICAgICAgdXNlckVudGl0eS5zZXRDcmVhdGVUaW1lKExvY2FsRGF0ZVRpbWUubm93KCkpOworLy8gICAgICAgIHNhdmUodXNlckVudGl0eSk7CisvLyAgICAgICAgRG9tYWluRXZlbnRQdWJsaXNoZXIuaW5zdGFuY2UoKS5wdWJsaXNoKG5ldyBVc2VyQ3JlYXRlZCh1c2VyRW50aXR5KSk7CisvLyAgICAgICAgcmV0dXJuIHVzZXJFbnRpdHk7CisvLyAgICB9CisvLworLy8gICAgQFRyYW5zYWN0aW9uYWwocm9sbGJhY2tGb3IgPSBFeGNlcHRpb24uY2xhc3MpCisvLyAgICBwdWJsaWMgVXNlckVudGl0eSBjcmVhdGVVc2VyKFVzZXJFbnRpdHkgZW50aXR5KSB7CisvLyAgICAgICAgZW50aXR5LnNldFN0YXRlKDApOworLy8gICAgICAgIGVudGl0eS5zZXRDcmVhdGVUaW1lKExvY2FsRGF0ZVRpbWUubm93KCkpOworLy8gICAgICAgIHNhdmUoZW50aXR5KTsKKy8vICAgICAgICBEb21haW5FdmVudFB1Ymxpc2hlci5pbnN0YW5jZSgpLnB1Ymxpc2gobmV3IFVzZXJDcmVhdGVkKGVudGl0eSkpOworLy8gICAgICAgIHJldHVybiBlbnRpdHk7CisvLyAgICB9CisvLworLy8gICAgcHVibGljIFNldDxVc2VyRW50aXR5PiBmaW5kVXNlckJ5SWRzKFNldDxJbnRlZ2VyPiB1c2VySWRzKSB7CisvLyAgICAgICAgTGlzdDxVc2VyRW50aXR5PiB1c2VyRW50aXRpZXMgPSBsaXN0QnlJZHModXNlcklkcyk7CisvLyAgICAgICAgcmV0dXJuIG5ldyBMaW5rZWRIYXNoU2V0PD4odXNlckVudGl0aWVzKTsKKy8vICAgIH0KKy8vCisvLyAgICBwdWJsaWMgTGlzdDxVc2VyRW50aXR5PiBmaW5kVXNlckJ5SWRzKExpc3Q8SW50ZWdlcj4gaWRzKSB7CisvLyAgICAgICAgTGlzdDxVc2VyRW50aXR5PiBsaXN0ID0gbGlzdEJ5SWRzKGlkcyk7CisvLyAgICAgICAgcmV0dXJuIGxpc3Q7CisvLyAgICB9CisvLworLy8gICAgcHVibGljIFVzZXJFbnRpdHkgZmluZFVzZXJCeUlkKEludGVnZXIgdXNlcklkKSB7CisvLyAgICAgICAgVXNlckVudGl0eSB1c2VyRW50aXR5ID0gZ2V0QnlJZCh1c2VySWQpOworLy8gICAgICAgIGlmICh1c2VyRW50aXR5ID09IG51bGwpIHsKKy8vICAgICAgICAgICAgdGhyb3cgbmV3IFJvY2tldFBURXhjZXB0aW9uKFJFQ09SRF9OT1RfRVhJU1QpOworLy8gICAgICAgIH0KKy8vICAgICAgICByZXR1cm4gdXNlckVudGl0eTsKKy8vICAgIH0KKy8vCisvLworLy8gICAgQFRyYW5zYWN0aW9uYWwocm9sbGJhY2tGb3IgPSBFeGNlcHRpb24uY2xhc3MpCisvLyAgICBwdWJsaWMgVXNlckVudGl0eSB1cGRhdGVVc2VyKEludGVnZXIgdXNlcklkLCBTdHJpbmcgZnVsbE5hbWUsIFN0cmluZyBhdmF0YXIsCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJFbnRpdHkuR2VuZGVyIGdlbmRlciwKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXNlckVudGl0eS5TdGF0ZSBzdGF0ZSwgTG9uZyBvcmdhbml6YXRpb24pIHsKKy8vICAgICAgICBVc2VyRW50aXR5IHVzZXJFbnRpdHkgPSBmaW5kVXNlckJ5SWQodXNlcklkKTsKKy8vICAgICAgICB1c2VyRW50aXR5LnNldE5pY2tuYW1lKGZ1bGxOYW1lKTsKKy8vICAgICAgICB1c2VyRW50aXR5LnNldEF2YXRhcihhdmF0YXIpOworLy8gICAgICAgIHVzZXJFbnRpdHkuc2V0R2VuZGVyKGdlbmRlci5nZXRDb2RlKCkpOworLy8gICAgICAgIHVzZXJFbnRpdHkuc2V0U3RhdGUoc3RhdGUuZ2V0Q29kZSgpKTsKKy8vICAgICAgICB1cGRhdGVCeUlkKHVzZXJFbnRpdHkpOworLy8gICAgICAgIERvbWFpbkV2ZW50UHVibGlzaGVyLmluc3RhbmNlKCkucHVibGlzaChuZXcgVXNlclVwZGF0ZWQodXNlckVudGl0eSkpOworLy8gICAgICAgIHJldHVybiB1c2VyRW50aXR5OworLy8gICAgfQorLy8KKy8vCisvLyAgICBAVHJhbnNhY3Rpb25hbChyb2xsYmFja0ZvciA9IEV4Y2VwdGlvbi5jbGFzcykKKy8vICAgIHB1YmxpYyBVc2VyRW50aXR5IHVwZGF0ZVVzZXIoVXNlckVudGl0eSBlbnRpdHkpIHsKKy8vCisvLyAgICAgICAgdXBkYXRlQnlJZChlbnRpdHkpOworLy8gICAgICAgIERvbWFpbkV2ZW50UHVibGlzaGVyLmluc3RhbmNlKCkucHVibGlzaChuZXcgVXNlclVwZGF0ZWQoZW50aXR5KSk7CisvLyAgICAgICAgcmV0dXJuIGVudGl0eTsKKy8vICAgIH0KKy8vCisvLyAgICBAVHJhbnNhY3Rpb25hbChyb2xsYmFja0ZvciA9IEV4Y2VwdGlvbi5jbGFzcykKKy8vICAgIHB1YmxpYyBVc2VyRW50aXR5IGxvY2tVc2VyKEludGVnZXIgdXNlcklkKSB7CisvLyAgICAgICAgVXNlckVudGl0eSB1c2VyRW50aXR5ID0gZmluZFVzZXJCeUlkKHVzZXJJZCk7CisvLyAgICAgICAgdXNlckVudGl0eS5zZXRTdGF0ZShVc2VyRW50aXR5LlN0YXRlLkxPQ0tFRC5nZXRDb2RlKCkpOworLy8gICAgICAgIHVwZGF0ZUJ5SWQodXNlckVudGl0eSk7CisvLyAgICAgICAgcmV0dXJuIHVzZXJFbnRpdHk7CisvLyAgICB9CisvLworLy8gICAgQFRyYW5zYWN0aW9uYWwocm9sbGJhY2tGb3IgPSBFeGNlcHRpb24uY2xhc3MpCisvLyAgICBwdWJsaWMgVXNlckVudGl0eSB1bmxvY2tVc2VyKEludGVnZXIgdXNlcklkKSB7CisvLyAgICAgICAgVXNlckVudGl0eSB1c2VyRW50aXR5ID0gZmluZFVzZXJCeUlkKHVzZXJJZCk7CisvLyAgICAgICAgdXNlckVudGl0eS5zZXRTdGF0ZShVc2VyRW50aXR5LlN0YXRlLk5PUk1BTC5nZXRDb2RlKCkpOworLy8gICAgICAgIHVwZGF0ZUJ5SWQodXNlckVudGl0eSk7CisvLyAgICAgICAgcmV0dXJuIHVzZXJFbnRpdHk7CisvLyAgICB9CisvLworLy8vLyAgICBwdWJsaWMgUGFnZURUTzxVc2VyRW50aXR5PiBmaW5kVXNlcnMoUGFnZWFibGUgcGFnZWFibGUsIFVzZXJFbnRpdHkgdXNlckVudGl0eSkgeworLy8vLyAgICAgICAgUGFnZUhlbHBlci5zdGFydFBhZ2UocGFnZWFibGUuZ2V0UGFnZU51bWJlcigpLCBwYWdlYWJsZS5nZXRQYWdlU2l6ZSgpKTsKKy8vLy8gICAgICAgIE1hcDxTdHJpbmcsIE9iamVjdD4gbWFwID0gSnNvblV0aWxzLnBhcnNlVG9NYXAoSnNvblV0aWxzLnN0cmluZ2lmeSh1c2VyRW50aXR5KSk7CisvLy8vICAgICAgICBMaXN0PFVzZXJFbnRpdHk+IHVzZXJFbnRpdGllcyA9IGxpc3RCeU1hcChtYXApOworLy8vLyAgICAgICAgbG9uZyB0b3RhbCA9IG5ldyBQYWdlSW5mbyh1c2VyRW50aXRpZXMpLmdldFRvdGFsKCk7CisvLy8vICAgICAgICByZXR1cm4gbmV3IFBhZ2VEVE88Pih1c2VyRW50aXRpZXMsIHRvdGFsKTsKKy8vLy8gICAgfQorLy8KKy8vICAgIHB1YmxpYyBSZXN1bHQgZmluZFVzZXJzKFVzZXJQYXJhbSBwYXJhbSkgeworLy8gICAgICAgIFBhZ2VIZWxwZXIuc3RhcnRQYWdlKHBhcmFtLmdldFBhZ2UoKSwgcGFyYW0uZ2V0U2l6ZSgpKTsKKy8vICAgICAgICBib29sZWFuIHVzZXJuYW1lTm90RW1wdHkgPSBTdHJpbmdVdGlscy5pc05vdEVtcHR5KHBhcmFtLmdldFVzZXJuYW1lKCkpOworLy8gICAgICAgIExpc3Q8VXNlckVudGl0eT4gbGlzdCA9IGxpc3QobmV3IFF1ZXJ5V3JhcHBlcjxVc2VyRW50aXR5PigpCisvLyAgICAgICAgICAgICAgICAubGFtYmRhKCkKKy8vICAgICAgICAgICAgICAgIC5saWtlKHVzZXJuYW1lTm90RW1wdHksIFVzZXJFbnRpdHk6OmdldFVzZXJuYW1lLCBwYXJhbS5nZXRVc2VybmFtZSgpKQorLy8gICAgICAgICk7CisvLworLy8gICAgICAgIFJlc1BhZ2UgcGFnZSA9IFBhZ2VVdGlsLmdldFBhZ2UobGlzdCk7CisvLyAgICAgICAgcmV0dXJuIFJlc3VsdC5vayhsaXN0LCBwYWdlKTsKKy8vICAgIH0KKy8vCisvLyAgICBwdWJsaWMgYm9vbGVhbiBpc0V4aXN0cyhTdHJpbmcgZW1haWwsIFN0cmluZyB1c2VybmFtZSkgeworLy8gICAgICAgIGxvbmcgY291bnQgPSBjb3VudChXcmFwcGVycy48VXNlckVudGl0eT5sYW1iZGFRdWVyeSgpCisvLyAgICAgICAgICAgICAgICAuZXEoVXNlckVudGl0eTo6Z2V0RW1haWwsIGVtYWlsKQorLy8gICAgICAgICAgICAgICAgLm9yKCkKKy8vICAgICAgICAgICAgICAgIC5lcShVc2VyRW50aXR5OjpnZXRVc2VybmFtZSwgdXNlcm5hbWUpCisvLyAgICAgICAgKTsKKy8vCisvLyAgICAgICAgcmV0dXJuIGNvdW50ID4gMDsKKy8vICAgIH0KKy8vCisvLyAgICBAVHJhbnNhY3Rpb25hbChyb2xsYmFja0ZvciA9IEV4Y2VwdGlvbi5jbGFzcykKKy8vICAgIHB1YmxpYyB2b2lkIGRlbGV0ZShJbnRlZ2VyIHVzZXJJZCkgeworLy8gICAgICAgIFVzZXJFbnRpdHkgdXNlckVudGl0eSA9IGZpbmRVc2VyQnlJZCh1c2VySWQpOworLy8gICAgICAgIHJlbW92ZUJ5SWQodXNlckVudGl0eSk7CisvLyAgICAgICAgRG9tYWluRXZlbnRQdWJsaXNoZXIuaW5zdGFuY2UoKS5wdWJsaXNoKG5ldyBVc2VyRGVsZXRlZCh1c2VyRW50aXR5KSk7CisvLyAgICB9CisvLworLy8gICAgLyoqCisvLyAgICAgKiDnlKjmiLfms6jlhozmlrnms5UKKy8vICAgICAqCisvLyAgICAgKiBAcGFyYW0gcGFyYW0g5rOo5YaM5Y+C5pWwCisvLyAgICAgKiBAdGhyb3dzIFJvY2tldFBURXhjZXB0aW9uIOazqOWGjOi/h+eoi+S4reeahOW8guW4uAorLy8gICAgICovCisvLyAgICBAVHJhbnNhY3Rpb25hbChyb2xsYmFja0ZvciA9IEV4Y2VwdGlvbi5jbGFzcykKKy8vICAgIHB1YmxpYyB2b2lkIHJlZ2lzdGVyKFJlZ2lzdGVyUGFyYW0gcGFyYW0pIHsKKy8vICAgICAgICBpZiAocGFyYW0uZ2V0VHlwZSgpICE9IDEpIHsKKy8vICAgICAgICAgICAgLy8g5qOA5p+l6YKA6K+356CB5piv5ZCm5pyJ5pWICisvLyAgICAgICAgICAgIGlmICghaW52aXRhdGlvblNlcnZpY2UuY2hlY2socGFyYW0uZ2V0RW1haWwoKSwgcGFyYW0uZ2V0SW52aXRhdGlvbkNvZGUoKSkpIHsKKy8vICAgICAgICAgICAgICAgIHRocm93IG5ldyBSb2NrZXRQVEV4Y2VwdGlvbihDb21tb25SZXN1bHRTdGF0dXMuUEFSQU1fRVJST1IsIEkxOG5NZXNzYWdlLmdldE1lc3NhZ2UoCisvLyAgICAgICAgICAgICAgICAgICAgICAgICJpbnZpdGF0aW9uX25vdF9leGlzdHMiKSk7CisvLyAgICAgICAgICAgIH0KKy8vICAgICAgICB9CisvLworLy8gICAgICAgIC8vIOajgOafpemCrueuseWSjOeUqOaIt+WQjeaYr+WQpuW3suWtmOWcqAorLy8gICAgICAgIGlmIChpc0V4aXN0cyhwYXJhbS5nZXRFbWFpbCgpLCBwYXJhbS5nZXRVc2VybmFtZSgpKSkgeworLy8gICAgICAgICAgICB0aHJvdyBuZXcgUm9ja2V0UFRFeGNlcHRpb24oQ29tbW9uUmVzdWx0U3RhdHVzLlBBUkFNX0VSUk9SLCBJMThuTWVzc2FnZS5nZXRNZXNzYWdlKAorLy8gICAgICAgICAgICAgICAgICAgICJlbWFpbF9leGlzdHMiKSk7CisvLyAgICAgICAgfQorLy8gICAgICAgIGVtYWlsQ29kZVNlcnZpY2UuY2hlY2tFbWFpbENvZGUocGFyYW0uZ2V0RW1haWwoKSwgcGFyYW0uZ2V0Q29kZSgpKTsKKy8vCisvLyAgICAgICAgLy8g5qCh6aqM6YCa6L+H77yM5Yib5bu655So5oi35a6e5L2TCisvLyAgICAgICAgVXNlckVudGl0eSB1c2VyRW50aXR5ID0gY3JlYXRlVXNlcigKKy8vICAgICAgICAgICAgICAgIHBhcmFtLmdldFVzZXJuYW1lKCksCisvLyAgICAgICAgICAgICAgICBwYXJhbS5nZXROaWNrbmFtZSgpLAorLy8gICAgICAgICAgICAgICAgIi9pbWcucG5nIiwKKy8vICAgICAgICAgICAgICAgIFVzZXJFbnRpdHkuR2VuZGVyLnZhbHVlb2YocGFyYW0uZ2V0U2V4KCkpLAorLy8gICAgICAgICAgICAgICAgcGFyYW0uZ2V0RW1haWwoKSwKKy8vICAgICAgICAgICAgICAgIFVzZXJFbnRpdHkuU3RhdGUuTk9STUFMCisvLyAgICAgICAgKTsKKy8vCisvLyAgICAgICAgLy8g6K6+572u55So5oi35bGe5oCnCisvLyAgICAgICAgdXBkYXRlQnlJZCh1c2VyRW50aXR5KTsKKy8vCisvLyAgICAgICAgLy8g5Yib5bu655So5oi35Yet6K+B5a6e5L2TCisvLyAgICAgICAgVXNlckNyZWRlbnRpYWxFbnRpdHkgdXNlckNyZWRlbnRpYWxFbnRpdHkgPSBuZXcgVXNlckNyZWRlbnRpYWxFbnRpdHkoKTsKKy8vICAgICAgICB1c2VyQ3JlZGVudGlhbEVudGl0eS5zZXRJZCh1c2VyRW50aXR5LmdldElkKCkpOworLy8gICAgICAgIHVzZXJDcmVkZW50aWFsRW50aXR5LnNldFVzZXJuYW1lKHBhcmFtLmdldFVzZXJuYW1lKCkpOworLy8gICAgICAgIHVzZXJDcmVkZW50aWFsRW50aXR5LnNldFJlZ0lwKElQVXRpbHMuZ2V0SXBBZGRyKCkpOworLy8gICAgICAgIHVzZXJDcmVkZW50aWFsRW50aXR5LnNldFJlZ1R5cGUocGFyYW0uZ2V0VHlwZSgpKTsKKy8vICAgICAgICBTdHJpbmcgY2hlY2tDb2RlID0gcGFzc2tleU1hbmFnZXIuZ2VuZXJhdGUodXNlckVudGl0eS5nZXRJZCgpKTsKKy8vICAgICAgICB1c2VyQ3JlZGVudGlhbEVudGl0eS5zZXRDaGVja0NvZGUoY2hlY2tDb2RlKTsKKy8vCisvLyAgICAgICAgLy8g55Sf5oiQ6ZqP5py655uQ5ZKM5a+G56CBCisvLyAgICAgICAgU3RyaW5nIHNhbHQgPSBSYW5kb21VdGlsLnJhbmRvbVN0cmluZyg4KTsKKy8vICAgICAgICBTdHJpbmcgcGFzc2tleSA9IHBhc3NrZXlNYW5hZ2VyLmdlbmVyYXRlKHVzZXJFbnRpdHkuZ2V0SWQoKSk7CisvLworLy8gICAgICAgIHVzZXJDcmVkZW50aWFsRW50aXR5LnNldFNhbHQoc2FsdCk7CisvLyAgICAgICAgdXNlckNyZWRlbnRpYWxFbnRpdHkuc2V0UGFzc2tleShwYXNza2V5KTsKKy8vICAgICAgICBTdHJpbmcgZ2VuZXJhdGVkUGFzc3dvcmQgPSB1c2VyQ3JlZGVudGlhbFNlcnZpY2UuZ2VuZXJhdGUocGFyYW0uZ2V0UGFzc3dvcmQoKSwgc2FsdCk7CisvLyAgICAgICAgdXNlckNyZWRlbnRpYWxFbnRpdHkuc2V0UGFzc3dvcmQoZ2VuZXJhdGVkUGFzc3dvcmQpOworLy8KKy8vICAgICAgICAvLyDkv53lrZjnlKjmiLflh63or4Hlrp7kvZMKKy8vICAgICAgICB1c2VyQ3JlZGVudGlhbFNlcnZpY2Uuc2F2ZSh1c2VyQ3JlZGVudGlhbEVudGl0eSk7CisvLyAgICAgICAgdXNlclJvbGVTZXJ2aWNlLnJlZ2lzdGVyKHVzZXJFbnRpdHkuZ2V0SWQoKSk7CisvLworLy8gICAgICAgIC8vIOa2iOi0uemCgOivt+eggQorLy8gICAgICAgIGlmIChwYXJhbS5nZXRUeXBlKCkgIT0gMSkgeworLy8gICAgICAgICAgICBpbnZpdGF0aW9uU2VydmljZS5jb25zdW1lKHBhcmFtLmdldEVtYWlsKCksIHBhcmFtLmdldEludml0YXRpb25Db2RlKCksIHVzZXJFbnRpdHkpOworLy8gICAgICAgIH0KKy8vICAgIH0KKy8vCisvLworLy8gICAgLyoqCisvLyAgICAgKiDnlKjmiLfnmbvlvZXmlrnms5UKKy8vICAgICAqCisvLyAgICAgKiBAcGFyYW0gcGFyYW0g55m75b2V5Y+C5pWwCisvLyAgICAgKiBAcmV0dXJuIOeZu+W9leaIkOWKn+i/lOWbnueUqOaIt0lE77yM55m75b2V5aSx6LSl6L+U5ZueMAorLy8gICAgICovCisvLyAgICBwdWJsaWMgSW50ZWdlciBsb2dpbihMb2dpblBhcmFtIHBhcmFtKSB7CisvLyAgICAgICAgU3RyaW5nIHVzZXJuYW1lID0gcGFyYW0uZ2V0VXNlcm5hbWUoKTsKKy8vICAgICAgICBTdHJpbmcgcGFzc3dvcmQgPSBwYXJhbS5nZXRQYXNzd29yZCgpOworLy8KKy8vICAgICAgICAvLyDmoLnmja7nlKjmiLflkI3ojrflj5bnlKjmiLflh63or4Hlrp7kvZMKKy8vICAgICAgICBVc2VyQ3JlZGVudGlhbEVudGl0eSB1c2VyID0gdXNlckNyZWRlbnRpYWxTZXJ2aWNlLmdldEJ5VXNlcm5hbWUodXNlcm5hbWUpOworLy8KKy8vICAgICAgICBpZiAodXNlciA9PSBudWxsKSB7CisvLyAgICAgICAgICAgIHJldHVybiAwOworLy8gICAgICAgIH0KKy8vCisvLyAgICAgICAgLy8g5a+55a+G56CB6L+b6KGM5Yqg5a+G5aSE55CGCisvLyAgICAgICAgU3RyaW5nIGVuY3J5cHRlZFBhc3N3b3JkID0gU2FTZWN1cmVVdGlsLnNoYTI1NihwYXNzd29yZCArIHVzZXIuZ2V0U2FsdCgpKTsKKy8vCisvLyAgICAgICAgLy8g5q+U6L6D5Yqg5a+G5ZCO55qE5a+G56CB5LiO5pWw5o2u5bqT5Lit5a2Y5YKo55qE5a+G56CB5piv5ZCm5LiA6Ie0CisvLyAgICAgICAgaWYgKCF1c2VyLmdldFBhc3N3b3JkKCkuZXF1YWxzKGVuY3J5cHRlZFBhc3N3b3JkKSkgeworLy8gICAgICAgICAgICByZXR1cm4gMDsKKy8vICAgICAgICB9CisvLworLy8gICAgICAgIC8vIOiOt+WPlueUqOaIt+eahFRPVFAKKy8vICAgICAgICBTdHJpbmcgdG90cCA9IHVzZXIuZ2V0VG90cCgpOworLy8KKy8vICAgICAgICAvLyDpqozor4FUT1RQ56CB5piv5ZCm5pyJ5pWICisvLyAgICAgICAgYm9vbGVhbiBjb2RlVmFsaWQgPSBpc1RvdHBWYWxpZChwYXJhbS5nZXRUb3RwKCksIHRvdHApOworLy8gICAgICAgIGlmICghY29kZVZhbGlkKSB7CisvLyAgICAgICAgICAgIHJldHVybiAwOworLy8gICAgICAgIH0KKy8vCisvLyAgICAgICAgaWYgKGlzVXNlckxvY2tlZCh1c2VyLmdldElkKCkpKSB7CisvLyAgICAgICAgICAgIHRocm93IG5ldyBVc2VyRXhjZXB0aW9uKENvbW1vblJlc3VsdFN0YXR1cy5VTkFVVEhPUklaRUQsICLnlKjmiLflt7Lnu4/npoHnlKjvvIzor7fkuI7nrqHnkIblkZjogZTns7siKTsKKy8vICAgICAgICB9CisvLworLy8gICAgICAgIC8vIOi/lOWbnueUqOaIt0lECisvLyAgICAgICAgcmV0dXJuIHVzZXIuZ2V0SWQoKTsKKy8vICAgIH0KKy8vCisvLyAgICAvKioKKy8vICAgICAqIEBwYXJhbSB1c2VySWQKKy8vICAgICAqIEByZXR1cm4g55So5oi35piv5ZCm5bey57uP56aB55SoCisvLyAgICAgKi8KKy8vICAgIHB1YmxpYyBib29sZWFuIGlzVXNlckxvY2tlZChJbnRlZ2VyIHVzZXJJZCkgeworLy8gICAgICAgIFVzZXJFbnRpdHkgdXNlckVudGl0eSA9IGdldE9uZShuZXcgUXVlcnlXcmFwcGVyPFVzZXJFbnRpdHk+KCkKKy8vICAgICAgICAgICAgICAgIC5sYW1iZGEoKQorLy8gICAgICAgICAgICAgICAgLnNlbGVjdChVc2VyRW50aXR5OjpnZXRTdGF0ZSkKKy8vICAgICAgICAgICAgICAgIC5lcShVc2VyRW50aXR5OjpnZXRJZCwgdXNlcklkKQorLy8gICAgICAgICk7CisvLyAgICAgICAgaWYgKHVzZXJFbnRpdHkgPT0gbnVsbCkgeworLy8gICAgICAgICAgICB0aHJvdyBuZXcgVXNlckV4Y2VwdGlvbihDb21tb25SZXN1bHRTdGF0dXMuVU5BVVRIT1JJWkVELCAi55So5oi35LiN5a2Y5ZyoIik7CisvLyAgICAgICAgfQorLy8KKy8vICAgICAgICByZXR1cm4gdXNlckVudGl0eS5nZXRTdGF0ZSgpID09IDE7CisvLyAgICB9CisvLworLy8gICAgLyoqCisvLyAgICAgKiDpqozor4FUT1RQ56CB5piv5ZCm5pyJ5pWICisvLyAgICAgKgorLy8gICAgICogQHBhcmFtIHZlcmlmaWNhdGlvbkNvZGUg55So5oi36L6T5YWl55qE6aqM6K+B56CBCisvLyAgICAgKiBAcGFyYW0gdG90cCAgICAgICAgICAgICDnlKjmiLfnmoRUT1RQ56CBCisvLyAgICAgKiBAcmV0dXJuIOmqjOivgeeggeacieaViOi/lOWbnnRydWXvvIzml6DmlYjov5Tlm55mYWxzZQorLy8gICAgICovCisvLyAgICBwdWJsaWMgYm9vbGVhbiBpc1RvdHBWYWxpZChJbnRlZ2VyIHZlcmlmaWNhdGlvbkNvZGUsIFN0cmluZyB0b3RwKSB7CisvLyAgICAgICAgLy8g5aaC5p6c55So5oi355qEVE9UUOeggeS4uuepuu+8jOinhuS4uuacieaViAorLy8gICAgICAgIGlmIChTdHJpbmdVdGlscy5pc0VtcHR5KHRvdHApKSB7CisvLyAgICAgICAgICAgIHJldHVybiB0cnVlOworLy8gICAgICAgIH0KKy8vCisvLyAgICAgICAgLy8g5aaC5p6c55So5oi36L6T5YWl55qE6aqM6K+B56CB5Li656m677yM6KeG5Li65peg5pWICisvLyAgICAgICAgaWYgKHZlcmlmaWNhdGlvbkNvZGUgPT0gbnVsbCkgeworLy8gICAgICAgICAgICByZXR1cm4gZmFsc2U7CisvLyAgICAgICAgfQorLy8KKy8vICAgICAgICAvLyDkvb/nlKhHb29nbGUgQXV0aGVudGljYXRvcuacjeWKoemqjOivgVRPVFDnoIHnmoTmnInmlYjmgKcKKy8vICAgICAgICBib29sZWFuIGNvZGVWYWxpZCA9IGdvb2dsZUF1dGhlbnRpY2F0b3JTZXJ2aWNlLmlzQ29kZVZhbGlkKHRvdHAsIHZlcmlmaWNhdGlvbkNvZGUpOworLy8KKy8vICAgICAgICAvLyDov5Tlm57pqozor4Hnu5PmnpwKKy8vICAgICAgICByZXR1cm4gY29kZVZhbGlkOworLy8gICAgfQorLy8KKy8vCisvLyAgICAvKioKKy8vICAgICAqIOagueaNrnVzZXJuYW1l6I635Y+W55So5oi35L+h5oGvCisvLyAgICAgKgorLy8gICAgICogQHBhcmFtIHVzZXJuYW1lCisvLyAgICAgKiBAcmV0dXJuCisvLyAgICAgKi8KKy8vICAgIHByaXZhdGUgVXNlckVudGl0eSBnZXRCeVVzZXJuYW1lKFN0cmluZyB1c2VybmFtZSkgeworLy8gICAgICAgIHJldHVybiBnZXRPbmUobmV3IFF1ZXJ5V3JhcHBlcjxVc2VyRW50aXR5PigpCisvLyAgICAgICAgICAgICAgICAubGFtYmRhKCkKKy8vICAgICAgICAgICAgICAgIC5lcShVc2VyRW50aXR5OjpnZXRVc2VybmFtZSwgdXNlcm5hbWUpLCBmYWxzZQorLy8gICAgICAgICk7CisvLyAgICB9CisvLworLy8gICAgLyoqCisvLyAgICAgKiDmoLnmja5lbWFpbOiOt+WPlueUqOaIt+S/oeaBrworLy8gICAgICoKKy8vICAgICAqIEByZXR1cm4KKy8vICAgICAqLworLy8gICAgcHJpdmF0ZSBVc2VyRW50aXR5IGdldEJ5RW1haWwoU3RyaW5nIGVtYWlsKSB7CisvLyAgICAgICAgcmV0dXJuIGdldE9uZShuZXcgUXVlcnlXcmFwcGVyPFVzZXJFbnRpdHk+KCkKKy8vICAgICAgICAgICAgICAgIC5sYW1iZGEoKQorLy8gICAgICAgICAgICAgICAgLmVxKFVzZXJFbnRpdHk6OmdldEVtYWlsLCBlbWFpbCksIGZhbHNlCisvLyAgICAgICAgKTsKKy8vICAgIH0KKworICAgIC8qKgorICAgICAqIOiOt+WPluW9k+WJjeeZu+W9leeahOeUqOaIt0lECisgICAgICovCisgICAgcHVibGljIEludGVnZXIgZ2V0VXNlcklkKCkgeworICAgICAgICAvLyDojrflj5blvZPliY3orqTor4Hkv6Hmga8KKyAgICAgICAgQXV0aGVudGljYXRpb24gYXV0aGVudGljYXRpb24gPSBTZWN1cml0eUNvbnRleHRIb2xkZXIuZ2V0Q29udGV4dCgpLmdldEF1dGhlbnRpY2F0aW9uKCk7CisKKyAgICAgICAgaWYgKGF1dGhlbnRpY2F0aW9uICE9IG51bGwgJiYgYXV0aGVudGljYXRpb24uZ2V0UHJpbmNpcGFsKCkgaW5zdGFuY2VvZiBMb2dpblVzZXIpIHsKKyAgICAgICAgICAgIExvZ2luVXNlciBsb2dpblVzZXIgPSAoTG9naW5Vc2VyKSBhdXRoZW50aWNhdGlvbi5nZXRQcmluY2lwYWwoKTsKKyAgICAgICAgICAgIHJldHVybiBsb2dpblVzZXIuZ2V0VXNlcklkKCkuaW50VmFsdWUoKTsgLy8g5LuOIExvZ2luVXNlciDkuK3ojrflj5bnlKjmiLdJRAorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG51bGw7IC8vIOacqueZu+W9leaIluaXoOazleiOt+WPlueUqOaIt0lECisgICAgfQorCisgICAgLyoqCisgICAgICogVGhlIHB1cnBvc2Ugb2YgdGhlIG1ldGhvZAorICAgICAqIOiOt+WPluW9k+WJjeeUqOaItworICAgICAqIEBwYXJhbSBpZAorICAgICAqIHtAY29kZSBAYXV0aG9yfSBKaWEKKyAgICAgKiB7QGNvZGUgQGRhdGV9IDIwMjUvNS8yNyAxODowOAorICAgICAqLworICAgIHB1YmxpYyBVc2VyRW50aXR5IGdldFVzZXJCeUlkKGludCBpZCkgeworICAgICAgICBVc2VyRW50aXR5IHVzZXJFbnRpdHkgPSB1c2VyRGFvLmZpbmRVc2VyQnlJZChpZCk7CisgICAgICAgIHJldHVybiB1c2VyRW50aXR5OworICAgIH0KKworLy8gICAgLyoqCisvLyAgICAgKiDojrflj5bnlKjmiLfkv6Hmga8KKy8vICAgICAqLworLy8gICAgcHVibGljIFVzZXJpbmZvRFRPIGdldFVzZXJJbmZvKCkgeworLy8gICAgICAgIC8vVE9ETyDmoKHpqoznlKjmiLfkv6Hmga/vvIzlubblj6rpnIDopoHov5Tlm57lv4XopoHkv6Hmga/vvIzpmpDol4/mlY/mhJ/kv6Hmga8KKy8vICAgICAgICAvL+iOt+WPlueUqOaIt+S/oeaBrworLy8gICAgICAgIFVzZXJFbnRpdHkgdXNlckVudGl0eSA9IGZpbmRVc2VyQnlJZChnZXRVc2VySWQoKSk7CisvLyAgICAgICAgVXNlcmluZm9EVE8gdXNlcmluZm9EVE8gPSBuZXcgVXNlcmluZm9EVE8oKTsKKy8vICAgICAgICBCZWFuVXRpbHMuY29weVByb3BlcnRpZXModXNlckVudGl0eSwgdXNlcmluZm9EVE8pOworLy8gICAgICAgIHJldHVybiB1c2VyaW5mb0RUTzsKKy8vICAgIH0KKy8vCisvLworLy8gICAgLyoqCisvLyAgICAgKiDnoa7orqTpgq7nrrEKKy8vICAgICAqLworLy8gICAgQFRyYW5zYWN0aW9uYWwocm9sbGJhY2tGb3IgPSBFeGNlcHRpb24uY2xhc3MpCisvLyAgICBwdWJsaWMgdm9pZCBjb25maXJtKFN0cmluZyBjb2RlKSB7CisvLyAgICAgICAgVXNlckNyZWRlbnRpYWxFbnRpdHkgdXNlckNyZWRlbnRpYWwgPSB1c2VyQ3JlZGVudGlhbFNlcnZpY2UuZ2V0QnlDaGVja0NvZGUoY29kZSk7CisvLyAgICAgICAgaWYgKHVzZXJDcmVkZW50aWFsID09IG51bGwpIHsKKy8vICAgICAgICAgICAgdGhyb3cgbmV3IFJvY2tldFBURXhjZXB0aW9uKCLmoKHpqoznoIHkuI3mraPnoa4iKTsKKy8vICAgICAgICB9CisvLyAgICAgICAgSW50ZWdlciBpZCA9IHVzZXJDcmVkZW50aWFsLmdldElkKCk7CisvLyAgICAgICAgVXNlckVudGl0eSBlbnRpdHkgPSBnZXRCeUlkKGlkKTsKKy8vICAgICAgICBpZiAoIWVudGl0eS5nZXRTdGF0ZSgpLmVxdWFscygyKSkgeworLy8gICAgICAgICAgICB0aHJvdyBuZXcgUm9ja2V0UFRFeGNlcHRpb24oIueUqOaIt+eKtuaAgeS4jeato+ehriIpOworLy8gICAgICAgIH0KKy8vCisvLyAgICAgICAgZW50aXR5LnNldFN0YXRlKDApOworLy8gICAgICAgIHVwZGF0ZUJ5SWQoZW50aXR5KTsKKy8vICAgICAgICB1c2VyQ3JlZGVudGlhbFNlcnZpY2UucmVzZXRDaGVja0NvZGUoaWQpOworLy8KKy8vICAgIH0KKy8vCisvLworLy8gICAgLyoqCisvLyAgICAgKiDlv5jorrDlr4bnoIEKKy8vICAgICAqLworLy8gICAgQFRyYW5zYWN0aW9uYWwocm9sbGJhY2tGb3IgPSBFeGNlcHRpb24uY2xhc3MpCisvLyAgICBwdWJsaWMgdm9pZCBmb3Jnb3RQYXNzd29yZChGb3Jnb3RQYXNzd29yZFBhcmFtIHBhcmFtKSB7CisvLyAgICAgICAgVXNlckVudGl0eSBlbnRpdHkgPSBnZXRCeUVtYWlsKHBhcmFtLmdldEVtYWlsKCkpOworLy8gICAgICAgIGlmIChlbnRpdHkgPT0gbnVsbCkgeworLy8gICAgICAgICAgICB0aHJvdyBuZXcgUm9ja2V0UFRFeGNlcHRpb24oIumCrueuseS4jeato+ehriIpOworLy8gICAgICAgIH0KKy8vCisvLyAgICAgICAgaWYgKCFlbnRpdHkuZ2V0U3RhdGUoKS5lcXVhbHMoMCkpIHsKKy8vICAgICAgICAgICAgdGhyb3cgbmV3IFJvY2tldFBURXhjZXB0aW9uKCLnlKjmiLfnirbmgIHkuI3mraPnoa4iKTsKKy8vICAgICAgICB9CisvLyAgICAgICAgU3RyaW5nIGNoZWNrQ29kZSA9IHVzZXJDcmVkZW50aWFsU2VydmljZS5yZXNldENoZWNrQ29kZShlbnRpdHkuZ2V0SWQoKSk7CisvLyAgICAgICAgLy/lj5Hpgq7ku7YKKy8vICAgICAgICBtYWlsU2VydmljZS5zZW5kTWFpbChwYXJhbS5nZXRFbWFpbCgpLAorLy8gICAgICAgICAgICAgICAgSTE4bk1lc3NhZ2UuZ2V0TWVzc2FnZSgiY29uZmlybV90aXRsZSIpLAorLy8gICAgICAgICAgICAgICAgSTE4bk1lc3NhZ2UuZ2V0TWVzc2FnZSgiY29uZmlybV9lbWFpbCIpICsgY2hlY2tDb2RlLAorLy8gICAgICAgICAgICAgICAgbnVsbCk7CisvLyAgICB9CisvLworLy8KKy8vICAgIC8qKgorLy8gICAgICog5pu05paw5a+G56CBCisvLyAgICAgKi8KKy8vICAgIEBUcmFuc2FjdGlvbmFsKHJvbGxiYWNrRm9yID0gRXhjZXB0aW9uLmNsYXNzKQorLy8gICAgcHVibGljIHZvaWQgY2hhbmdlUGFzc3dvcmQoQ2hhbmdlUGFzc3dvcmRQYXJhbSBwYXJhbSkgeworLy8gICAgICAgIC8vIOiOt+WPlueUqOaIt+WHreivgeWunuS9kworLy8gICAgICAgIEludGVnZXIgdXNlcklkID0gZ2V0VXNlcklkKCk7CisvLyAgICAgICAgVXNlckNyZWRlbnRpYWxFbnRpdHkgY3JlZGVudGlhbEVudGl0eSA9IHVzZXJDcmVkZW50aWFsU2VydmljZS5nZXRCeUlkKHVzZXJJZCk7CisvLworLy8gICAgICAgIC8vIOeUn+aIkOaXp+WvhueggeeahOWTiOW4jOWAvAorLy8gICAgICAgIFN0cmluZyBvbGQgPSB1c2VyQ3JlZGVudGlhbFNlcnZpY2UuZ2VuZXJhdGUocGFyYW0uZ2V0T2xkUGFzc3dvcmQoKSwKKy8vICAgICAgICAgICAgICAgIGNyZWRlbnRpYWxFbnRpdHkuZ2V0U2FsdCgpKTsKKy8vCisvLyAgICAgICAgLy8g6I635Y+W5pWw5o2u5bqT5Lit5L+d5a2Y55qE5a+G56CBCisvLyAgICAgICAgU3RyaW5nIHBhc3N3b3JkID0gY3JlZGVudGlhbEVudGl0eS5nZXRQYXNzd29yZCgpOworLy8KKy8vICAgICAgICAvLyDmo4Dmn6Xml6flr4bnoIHmmK/lkKbmraPnoa4KKy8vICAgICAgICBpZiAoIW9sZC5lcXVhbHMocGFzc3dvcmQpKSB7CisvLyAgICAgICAgICAgIC8vIOaKm+WHuueUqOaIt+W8guW4uO+8jOihqOekuuacquaOiOadg+iuv+mXrgorLy8gICAgICAgICAgICB0aHJvdyBuZXcgVXNlckV4Y2VwdGlvbihDb21tb25SZXN1bHRTdGF0dXMuVU5BVVRIT1JJWkVELCAi5a+G56CB5LiN5q2j56GuIik7CisvLyAgICAgICAgfQorLy8KKy8vICAgICAgICAvLyDmm7TmlrDnlKjmiLflh63or4Hlrp7kvZPkuK3nmoTlr4bnoIEKKy8vICAgICAgICB1c2VyQ3JlZGVudGlhbFNlcnZpY2UudXBkYXRlUGFzc3dvcmQodXNlcklkLCBwYXJhbS5nZXROZXdQYXNzd29yZCgpLAorLy8gICAgICAgICAgICAgICAgY3JlZGVudGlhbEVudGl0eS5nZXRTYWx0KCkpOworLy8KKy8vICAgIH0KKy8vCisvLworLy8gICAgLyoqCisvLyAgICAgKiDph43nva7lr4bnoIEKKy8vICAgICAqLworLy8gICAgQFRyYW5zYWN0aW9uYWwocm9sbGJhY2tGb3IgPSBFeGNlcHRpb24uY2xhc3MpCisvLyAgICBwdWJsaWMgdm9pZCByZXNldFBhc3N3b3JkKFJlc2V0UGFzc3dvcmRQYXJhbSBwYXJhbSkgeworLy8gICAgICAgIFN0cmluZyBjb2RlID0gcGFyYW0uZ2V0Q2hlY2tDb2RlKCk7CisvLyAgICAgICAgVXNlckNyZWRlbnRpYWxFbnRpdHkgdXNlckNyZWRlbnRpYWwgPSB1c2VyQ3JlZGVudGlhbFNlcnZpY2UuZ2V0QnlDaGVja0NvZGUoY29kZSk7CisvLyAgICAgICAgaWYgKHVzZXJDcmVkZW50aWFsID09IG51bGwpIHsKKy8vICAgICAgICAgICAgdGhyb3cgbmV3IFJvY2tldFBURXhjZXB0aW9uKCLmoKHpqoznoIHkuI3mraPnoa4iKTsKKy8vICAgICAgICB9CisvLyAgICAgICAgSW50ZWdlciB1c2VySWQgPSB1c2VyQ3JlZGVudGlhbC5nZXRJZCgpOworLy8gICAgICAgIFVzZXJFbnRpdHkgZW50aXR5ID0gZ2V0QnlJZCh1c2VySWQpOworLy8gICAgICAgIGlmICghZW50aXR5LmdldFN0YXRlKCkuZXF1YWxzKDApKSB7CisvLyAgICAgICAgICAgIHRocm93IG5ldyBSb2NrZXRQVEV4Y2VwdGlvbigi55So5oi354q25oCB5LiN5q2j56GuIik7CisvLyAgICAgICAgfQorLy8KKy8vICAgICAgICAvLyDmm7TmlrDnlKjmiLflh63or4Hlrp7kvZPkuK3nmoTlr4bnoIEKKy8vICAgICAgICB1c2VyQ3JlZGVudGlhbFNlcnZpY2UudXBkYXRlUGFzc3dvcmQodXNlcklkLCBwYXJhbS5nZXROZXdQYXNzd29yZCgpLAorLy8gICAgICAgICAgICAgICAgdXNlckNyZWRlbnRpYWwuZ2V0U2FsdCgpKTsKKy8vCisvLyAgICAgICAgdXNlckNyZWRlbnRpYWxTZXJ2aWNlLnJlc2V0Q2hlY2tDb2RlKHVzZXJJZCk7CisvLworLy8gICAgfQorLy8KKy8vCisgICAgcHVibGljIFN0cmluZyBnZXRQYXNza2V5KEludGVnZXIgaWQpIHsKKyAgICAgICAgVXNlckNyZWRlbnRpYWxFbnRpdHkgZW50aXR5ID0KKyAgICAgICAgICAgICAgICB1c2VyQ3JlZGVudGlhbFNlcnZpY2UuZ2V0QnlVc2VySWQoaWQpOworICAgICAgICByZXR1cm4gZW50aXR5LmdldFBhc3NrZXkoKTsKKyAgICB9CisvLworLy8gICAgLyoqCisvLyAgICAgKiDpqozor4Hlm77niYfpqozor4HnoIHlkozpgoDor7fnoIHmraPnoa7lkI7lj5HpgIHms6jlhozpqozor4HnoIHpgq7ku7YKKy8vICAgICAqCisvLyAgICAgKiBAcGFyYW0gcGFyYW0KKy8vICAgICAqLworLy8gICAgcHVibGljIHZvaWQgc2VuZFJlZ0NvZGUoUmVnaXN0ZXJDb2RlUGFyYW0gcGFyYW0pIHsKKy8vICAgICAgICAvL1RPRE8gIOWIpOaWreWkhOeQhuazqOWGjOexu+WeiworLy8gICAgICAgIC8vICAgICAgMS7lvIDmlL7ms6jlhowKKy8vICAgICAgICAvLyAgICAgIDIu5Y+X6YKA5rOo5YaMCisvLyAgICAgICAgLy8gICAgICAzLuiHquWKqeetlOmimOazqOWGjAorLy8gICAgICAgIC8v6aqM6K+B5Zu+54mH6aqM6K+B56CB5ZKM6YKA6K+356CB5q2j56Gu5ZCO5Y+R6YCB6YKu5Lu2CisvLyAgICAgICAgaWYgKCFjYXB0Y2hhU2VydmljZS52ZXJpZnlDYXB0Y2hhKHBhcmFtLmdldFV1aWQoKSwgcGFyYW0uZ2V0Q29kZSgpKSkgeworLy8gICAgICAgICAgICB0aHJvdyBuZXcgUm9ja2V0UFRFeGNlcHRpb24oIuWbvueJh+mqjOivgeeggemUmeivryIpOworLy8gICAgICAgIH0KKy8vICAgICAgICBpZiAocGFyYW0uZ2V0VHlwZSgpICE9IDEpIHsKKy8vICAgICAgICAgICAgLy8g5qOA5p+l6YKA6K+356CB5piv5ZCm5pyJ5pWICisvLyAgICAgICAgICAgIGlmICghaW52aXRhdGlvblNlcnZpY2UuY2hlY2socGFyYW0uZ2V0RW1haWwoKSwgcGFyYW0uZ2V0SW52aXRhdGlvbkNvZGUoKSkpIHsKKy8vICAgICAgICAgICAgICAgIHRocm93IG5ldyBSb2NrZXRQVEV4Y2VwdGlvbigi6YKA6K+356CB6ZSZ6K+vIik7CisvLyAgICAgICAgICAgIH0KKy8vICAgICAgICB9CisvLyAgICAgICAgZW1haWxDb2RlU2VydmljZS5zZXRNYWlsQ29kZShwYXJhbS5nZXRFbWFpbCgpKTsKKy8vCisvLyAgICB9Cit9CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvU2VydmVyL3ZhbGlkYXRvci9DaGVhdGVyVmFsaWRhdG9yLmphdmEgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvU2VydmVyL3ZhbGlkYXRvci9DaGVhdGVyVmFsaWRhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzJjMWI2ZQotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9TZXJ2ZXIvdmFsaWRhdG9yL0NoZWF0ZXJWYWxpZGF0b3IuamF2YQpAQCAtMCwwICsxLDIyIEBACitwYWNrYWdlIGNvbS5ydW95aS53ZWIuU2VydmVyLnZhbGlkYXRvcjsKKworaW1wb3J0IGNvbS5ydW95aS53ZWIuZGFvLkJULkFubm91bmNlUmVxdWVzdDsKK2ltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLnN0ZXJlb3R5cGUuQ29tcG9uZW50OworCisKK0BDb21wb25lbnQKK3B1YmxpYyBjbGFzcyBDaGVhdGVyVmFsaWRhdG9yIGltcGxlbWVudHMgVHJhY2tlclZhbGlkYXRvciB7CisKKworICAgIEBPdmVycmlkZQorICAgIHB1YmxpYyB2b2lkIHZhbGlkYXRlKEFubm91bmNlUmVxdWVzdCByZXF1ZXN0KSB7CisKKyAgICAgICAgLy90b2RvIOS9nOW8iuajgOafpSDor6Xpg6jliIbmmK/lkKbpnIDopoHlvIDmupDvvJ8KKworICAgIH0KKworICAgIEBPdmVycmlkZQorICAgIHB1YmxpYyBpbnQgZ2V0T3JkZXIoKSB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9TZXJ2ZXIvdmFsaWRhdG9yL0R1cGxpY2F0ZWRBbm5vdW5jZVZhbGlkYXRvci5qYXZhIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL1NlcnZlci92YWxpZGF0b3IvRHVwbGljYXRlZEFubm91bmNlVmFsaWRhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzk1YjllZQotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9TZXJ2ZXIvdmFsaWRhdG9yL0R1cGxpY2F0ZWRBbm5vdW5jZVZhbGlkYXRvci5qYXZhCkBAIC0wLDAgKzEsMjIgQEAKK3BhY2thZ2UgY29tLnJ1b3lpLndlYi5TZXJ2ZXIudmFsaWRhdG9yOworCitpbXBvcnQgY29tLnJ1b3lpLndlYi5kYW8uQlQuQW5ub3VuY2VSZXF1ZXN0OworaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsuc3RlcmVvdHlwZS5Db21wb25lbnQ7CisKKworQENvbXBvbmVudAorcHVibGljIGNsYXNzIER1cGxpY2F0ZWRBbm5vdW5jZVZhbGlkYXRvciBpbXBsZW1lbnRzIFRyYWNrZXJWYWxpZGF0b3IgeworCisKKyAgICBAT3ZlcnJpZGUKKyAgICBwdWJsaWMgdm9pZCB2YWxpZGF0ZShBbm5vdW5jZVJlcXVlc3QgcmVxdWVzdCkgeworCisgICAgICAgIC8vdG9kbyDpqozor4Hph43lpI3or7fmsYIKKworICAgIH0KKworICAgIEBPdmVycmlkZQorICAgIHB1YmxpYyBpbnQgZ2V0T3JkZXIoKSB7CisgICAgICAgIHJldHVybiAxMDI7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL1NlcnZlci92YWxpZGF0b3IvSVBWYWxpZGF0b3IuamF2YSBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9TZXJ2ZXIvdmFsaWRhdG9yL0lQVmFsaWRhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjA5ZjIyNwotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9TZXJ2ZXIvdmFsaWRhdG9yL0lQVmFsaWRhdG9yLmphdmEKQEAgLTAsMCArMSwyMiBAQAorcGFja2FnZSBjb20ucnVveWkud2ViLlNlcnZlci52YWxpZGF0b3I7CisKK2ltcG9ydCBjb20ucnVveWkud2ViLmRhby5CVC5Bbm5vdW5jZVJlcXVlc3Q7CitpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay5zdGVyZW90eXBlLkNvbXBvbmVudDsKKworCitAQ29tcG9uZW50CitwdWJsaWMgY2xhc3MgSVBWYWxpZGF0b3IgaW1wbGVtZW50cyBUcmFja2VyVmFsaWRhdG9yIHsKKworCisgICAgQE92ZXJyaWRlCisgICAgcHVibGljIHZvaWQgdmFsaWRhdGUoQW5ub3VuY2VSZXF1ZXN0IHJlcXVlc3QpIHsKKworICAgICAgICAvL3RvZG8g6aqM6K+BSVAKKworICAgIH0KKworICAgIEBPdmVycmlkZQorICAgIHB1YmxpYyBpbnQgZ2V0T3JkZXIoKSB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9TZXJ2ZXIvdmFsaWRhdG9yL051bVdhbnRWYWxpZGF0b3IuamF2YSBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9TZXJ2ZXIvdmFsaWRhdG9yL051bVdhbnRWYWxpZGF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNjY4ZTQzCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL1NlcnZlci92YWxpZGF0b3IvTnVtV2FudFZhbGlkYXRvci5qYXZhCkBAIC0wLDAgKzEsMzUgQEAKK3BhY2thZ2UgY29tLnJ1b3lpLndlYi5TZXJ2ZXIudmFsaWRhdG9yOworCisKK2ltcG9ydCBjb20ucnVveWkud2ViLmRhby5CVC5Bbm5vdW5jZVJlcXVlc3Q7CitpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay5zdGVyZW90eXBlLkNvbXBvbmVudDsKKworQENvbXBvbmVudAorcHVibGljIGNsYXNzIE51bVdhbnRWYWxpZGF0b3IgaW1wbGVtZW50cyBUcmFja2VyVmFsaWRhdG9yIHsKKworCisgICAgZmluYWwgaW50IGRlZmF1bHROdW1XYW50ID0gMjAwOworICAgIGZpbmFsIGludCBtYXhOdW5XYW50ID0gMjAwMDsKKworICAgIEBPdmVycmlkZQorICAgIHB1YmxpYyB2b2lkIHZhbGlkYXRlKEFubm91bmNlUmVxdWVzdCByZXF1ZXN0KSB7CisgICAgICAgIC8vIOiuvue9rum7mOiupOWAvAorICAgICAgICBpZiAocmVxdWVzdC5nZXROdW13YW50KCkgPT0gbnVsbCB8fCByZXF1ZXN0LmdldE51bXdhbnQoKS5lcXVhbHMoLTEpKSB7CisgICAgICAgICAgICByZXF1ZXN0LnNldE51bXdhbnQoZGVmYXVsdE51bVdhbnQpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgLy8g5bCP5LqOMAorICAgICAgICByZXF1ZXN0LnNldE51bXdhbnQoTWF0aC5tYXgoMCwgcmVxdWVzdC5nZXROdW13YW50KCkpKTsKKworICAgICAgICAvLyDlpKfkuo7mnIDlpKflgLwKKyAgICAgICAgcmVxdWVzdC5zZXROdW13YW50KE1hdGgubWluKHJlcXVlc3QuZ2V0TnVtd2FudCgpLCBtYXhOdW5XYW50KSk7CisKKyAgICB9CisKKyAgICBAT3ZlcnJpZGUKKyAgICBwdWJsaWMgaW50IGdldE9yZGVyKCkgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKK30KZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9TZXJ2ZXIvdmFsaWRhdG9yL1Bhc3NrZXlWYWxpZGF0b3IuamF2YSBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9TZXJ2ZXIvdmFsaWRhdG9yL1Bhc3NrZXlWYWxpZGF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MTlkNmNiCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL1NlcnZlci92YWxpZGF0b3IvUGFzc2tleVZhbGlkYXRvci5qYXZhCkBAIC0wLDAgKzEsMjYgQEAKK3BhY2thZ2UgY29tLnJ1b3lpLndlYi5TZXJ2ZXIudmFsaWRhdG9yOworCitpbXBvcnQgY29tLnJ1b3lpLndlYi5jb250cm9sbGVyLmNvbW1vbi5leGNlcHRpb24uVHJhY2tlck5vUmV0cnlFeGNlcHRpb247CitpbXBvcnQgY29tLnJ1b3lpLndlYi5kYW8uQlQuQW5ub3VuY2VSZXF1ZXN0OworaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsuc3RlcmVvdHlwZS5Db21wb25lbnQ7CisKKworQENvbXBvbmVudAorcHVibGljIGNsYXNzIFBhc3NrZXlWYWxpZGF0b3IgaW1wbGVtZW50cyBUcmFja2VyVmFsaWRhdG9yIHsKKworCisgICAgQE92ZXJyaWRlCisgICAgcHVibGljIHZvaWQgdmFsaWRhdGUoQW5ub3VuY2VSZXF1ZXN0IHJlcXVlc3QpIHsKKworICAgICAgICAvL3RvZG8g6aqM6K+BUGFzc2tleSwg5aKe5Yqg562+5ZCN566X5rOVCisgICAgICAgIGludCBsZW5ndGggPSByZXF1ZXN0LmdldFBhc3NrZXkoKS5sZW5ndGgoKTsKKyAgICAgICAgaWYgKGxlbmd0aCA+IDY0IHx8IGxlbmd0aCA8IDE2KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgVHJhY2tlck5vUmV0cnlFeGNlcHRpb24oIkludmFsaWQgcGFzc2tleS4gUUFRIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBAT3ZlcnJpZGUKKyAgICBwdWJsaWMgaW50IGdldE9yZGVyKCkgeworICAgICAgICByZXR1cm4gMjsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvU2VydmVyL3ZhbGlkYXRvci9Qb3J0VmFsaWRhdG9yLmphdmEgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvU2VydmVyL3ZhbGlkYXRvci9Qb3J0VmFsaWRhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjAwNDkzZQotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9TZXJ2ZXIvdmFsaWRhdG9yL1BvcnRWYWxpZGF0b3IuamF2YQpAQCAtMCwwICsxLDQzIEBACitwYWNrYWdlIGNvbS5ydW95aS53ZWIuU2VydmVyLnZhbGlkYXRvcjsKKworaW1wb3J0IGNvbS5ydW95aS53ZWIuY29udHJvbGxlci5jb21tb24uZXhjZXB0aW9uLlRyYWNrZXJFeGNlcHRpb247CitpbXBvcnQgY29tLnJ1b3lpLndlYi5kYW8uQlQuQW5ub3VuY2VSZXF1ZXN0OworaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsuc3RlcmVvdHlwZS5Db21wb25lbnQ7CisKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKKworCitAQ29tcG9uZW50CitwdWJsaWMgY2xhc3MgUG9ydFZhbGlkYXRvciBpbXBsZW1lbnRzIFRyYWNrZXJWYWxpZGF0b3IgeworCisKKyAgICBMaXN0PEludGVnZXI+IGJhbm5lZCA9IExpc3Qub2YoNDExLCA0MTIsIDQxMywKKyAgICAgICAgICAgIDY4ODEsIDY4ODIsIDY4ODMsIDY4ODQsIDY4ODUsIDY4ODYsIDY4ODcsIDY4ODgsIDY4ODksIDEyMTQsIDYzNDYsIDYzNDcsIDQ2NjIsIDY2OTkpOworCisgICAgQE92ZXJyaWRlCisgICAgcHVibGljIHZvaWQgdmFsaWRhdGUoQW5ub3VuY2VSZXF1ZXN0IHJlcXVlc3QpIHsKKworICAgICAgICBpZiAocmVxdWVzdC5nZXRQb3J0KCkgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFRyYWNrZXJFeGNlcHRpb24oIlBvcnQgbnVsbCIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHJlcXVlc3QuZ2V0UG9ydCgpIDw9IDAgfHwgcmVxdWVzdC5nZXRQb3J0KCkgPj0gNjU1MzUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBUcmFja2VyRXhjZXB0aW9uKCJQb3J0ICIgKyByZXF1ZXN0LmdldFBvcnQoKSArICIgaXMgaW52YWxpZCIpOworICAgICAgICB9CisKKworICAgICAgICBmb3IgKEludGVnZXIgcG9ydCA6IGJhbm5lZCkgeworCisgICAgICAgICAgICBpZiAocG9ydC5lcXVhbHMocmVxdWVzdC5nZXRQb3J0KCkpKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFRyYWNrZXJFeGNlcHRpb24oIlBvcnQgIiArIHJlcXVlc3QuZ2V0UG9ydCgpICsgIiBpcyBiYW5uZWQuIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgfQorCisgICAgfQorCisgICAgQE92ZXJyaWRlCisgICAgcHVibGljIGludCBnZXRPcmRlcigpIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL1NlcnZlci92YWxpZGF0b3IvVG9ycmVudFZhbGlkYXRvci5qYXZhIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL1NlcnZlci92YWxpZGF0b3IvVG9ycmVudFZhbGlkYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdmY2JhYTAKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvU2VydmVyL3ZhbGlkYXRvci9Ub3JyZW50VmFsaWRhdG9yLmphdmEKQEAgLTAsMCArMSw0MiBAQAorcGFja2FnZSBjb20ucnVveWkud2ViLlNlcnZlci52YWxpZGF0b3I7CisKK2ltcG9ydCBjb20ucnVveWkud2ViLlNlcnZlci5CVC5Ub3JyZW50U2VydmljZTsKK2ltcG9ydCBjb20ucnVveWkud2ViLmNvbnRyb2xsZXIuY29tbW9uLmV4Y2VwdGlvbi5UcmFja2VyRXhjZXB0aW9uOworaW1wb3J0IGNvbS5ydW95aS53ZWIuZG9tYWluLkJULlRvcnJlbnRFbnRpdHk7CitpbXBvcnQgY29tLnJ1b3lpLndlYi5kYW8uQlQuQW5ub3VuY2VSZXF1ZXN0OworaW1wb3J0IGxvbWJvay5SZXF1aXJlZEFyZ3NDb25zdHJ1Y3RvcjsKK2ltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLnN0ZXJlb3R5cGUuQ29tcG9uZW50OworCisKK0BSZXF1aXJlZEFyZ3NDb25zdHJ1Y3RvcgorQENvbXBvbmVudAorcHVibGljIGNsYXNzIFRvcnJlbnRWYWxpZGF0b3IgaW1wbGVtZW50cyBUcmFja2VyVmFsaWRhdG9yIHsKKworCisgICAgZmluYWwgVG9ycmVudFNlcnZpY2UgdG9ycmVudFNlcnZpY2U7CisKKyAgICBAT3ZlcnJpZGUKKyAgICBwdWJsaWMgdm9pZCB2YWxpZGF0ZShBbm5vdW5jZVJlcXVlc3QgcmVxdWVzdCkgeworICAgICAgICBUb3JyZW50RW50aXR5IHRvcnJlbnRFbnRpdHkgPSB0b3JyZW50U2VydmljZS5nZXRCeUluZm9IYXNoKHJlcXVlc3QuZ2V0SW5mb0hhc2goKSk7CisKKyAgICAgICAgaWYgKHRvcnJlbnRFbnRpdHkgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFRyYWNrZXJFeGNlcHRpb24oIlRvcnJlbnQgaXMgbm90IGF1dGhvcml6ZWQgZm9yIHVzZSBvbiB0aGlzIHRyYWNrZXIiKTsKKyAgICAgICAgfQorCisKKyAgICAgICAgaWYgKCF0b3JyZW50RW50aXR5LmlzU3RhdHVzT0soKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFRyYWNrZXJFeGNlcHRpb24oIlRvcnJlbnQgc3RhdHVzIG5vdCBvaywgcGxlYXNlIGtlZXAgc2VlZGluZy4iKTsKKyAgICAgICAgfQorCisKKyAgICAgICAgcmVxdWVzdC5zZXRUb3JyZW50KHRvcnJlbnRFbnRpdHkpOworCisgICAgfQorCisgICAgQE92ZXJyaWRlCisgICAgcHVibGljIGludCBnZXRPcmRlcigpIHsKKyAgICAgICAgcmV0dXJuIDEwMTsKKyAgICB9CisKKworfQpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL1NlcnZlci92YWxpZGF0b3IvVHJhY2tlclZhbGlkYXRvci5qYXZhIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL1NlcnZlci92YWxpZGF0b3IvVHJhY2tlclZhbGlkYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhjYWU4YjMKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvU2VydmVyL3ZhbGlkYXRvci9UcmFja2VyVmFsaWRhdG9yLmphdmEKQEAgLTAsMCArMSwyMiBAQAorcGFja2FnZSBjb20ucnVveWkud2ViLlNlcnZlci52YWxpZGF0b3I7CisKK2ltcG9ydCBjb20ucnVveWkud2ViLmRhby5CVC5Bbm5vdW5jZVJlcXVlc3Q7CisKK3B1YmxpYyBpbnRlcmZhY2UgVHJhY2tlclZhbGlkYXRvciB7CisKKyAgICAvKioKKyAgICAgKiDpqozor4EKKyAgICAgKgorICAgICAqIEBwYXJhbSBvYmplY3QKKyAgICAgKi8KKyAgICB2b2lkIHZhbGlkYXRlKEFubm91bmNlUmVxdWVzdCBvYmplY3QpOworCisgICAgLyoqCisgICAgICog5LyY5YWI5qCh6aqM6Z2eSU/mk43kvZwKKyAgICAgKgorICAgICAqIEByZXR1cm4g5omn6KGM6aG65bqP77yM5bCP55qE5YWI5omn6KGMCisgICAgICovCisgICAgZGVmYXVsdCBpbnQgZ2V0T3JkZXIoKSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9TZXJ2ZXIvdmFsaWRhdG9yL1VzZXJBZ2VudFZhbGlkYXRvci5qYXZhIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL1NlcnZlci92YWxpZGF0b3IvVXNlckFnZW50VmFsaWRhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzljNjMyYwotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9TZXJ2ZXIvdmFsaWRhdG9yL1VzZXJBZ2VudFZhbGlkYXRvci5qYXZhCkBAIC0wLDAgKzEsMjMgQEAKK3BhY2thZ2UgY29tLnJ1b3lpLndlYi5TZXJ2ZXIudmFsaWRhdG9yOworCitpbXBvcnQgY29tLnJ1b3lpLndlYi5kYW8uQlQuQW5ub3VuY2VSZXF1ZXN0OworaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsuc3RlcmVvdHlwZS5Db21wb25lbnQ7CisKKworQENvbXBvbmVudAorcHVibGljIGNsYXNzIFVzZXJBZ2VudFZhbGlkYXRvciBpbXBsZW1lbnRzIFRyYWNrZXJWYWxpZGF0b3IgeworCisKKyAgICBAT3ZlcnJpZGUKKyAgICBwdWJsaWMgdm9pZCB2YWxpZGF0ZShBbm5vdW5jZVJlcXVlc3QgcmVxdWVzdCkgeworCisgICAgICAgIC8vdG9kbyDpqozor4HlrqLmiLfnq69Vc2VyQWdlbnQg5Y+q5YWB6K6455m95ZCN5Y2VCisKKworICAgIH0KKworICAgIEBPdmVycmlkZQorICAgIHB1YmxpYyBpbnQgZ2V0T3JkZXIoKSB7CisgICAgICAgIHJldHVybiAzOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9TZXJ2ZXIvdmFsaWRhdG9yL1VzZXJWYWxpZGF0b3IuamF2YSBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9TZXJ2ZXIvdmFsaWRhdG9yL1VzZXJWYWxpZGF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NjE1OWE3Ci0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL1NlcnZlci92YWxpZGF0b3IvVXNlclZhbGlkYXRvci5qYXZhCkBAIC0wLDAgKzEsNDMgQEAKK3BhY2thZ2UgY29tLnJ1b3lpLndlYi5TZXJ2ZXIudmFsaWRhdG9yOworCitpbXBvcnQgY29tLnJ1b3lpLndlYi5jb250cm9sbGVyLmNvbW1vbi5leGNlcHRpb24uVHJhY2tlckV4Y2VwdGlvbjsKK2ltcG9ydCBjb20ucnVveWkud2ViLmRhby5zeXMuVXNlckRhbzsKK2ltcG9ydCBjb20ucnVveWkud2ViLmRvbWFpbi5zeXMuVXNlckVudGl0eTsKK2ltcG9ydCBjb20ucnVveWkud2ViLmRhby5CVC5Bbm5vdW5jZVJlcXVlc3Q7CitpbXBvcnQgbG9tYm9rLlJlcXVpcmVkQXJnc0NvbnN0cnVjdG9yOworaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsuc3RlcmVvdHlwZS5Db21wb25lbnQ7CisKKworQFJlcXVpcmVkQXJnc0NvbnN0cnVjdG9yCitAQ29tcG9uZW50CitwdWJsaWMgY2xhc3MgVXNlclZhbGlkYXRvciBpbXBsZW1lbnRzIFRyYWNrZXJWYWxpZGF0b3IgeworCisKKyAgICBmaW5hbCBVc2VyRGFvIHVzZXJEYW87CisKKyAgICBAT3ZlcnJpZGUKKyAgICBwdWJsaWMgdm9pZCB2YWxpZGF0ZShBbm5vdW5jZVJlcXVlc3QgcmVxdWVzdCkgeworCisgICAgICAgIFVzZXJFbnRpdHkgdXNlciA9IHVzZXJEYW8uZmluZFVzZXJCeVBhc3NrZXkocmVxdWVzdC5nZXRQYXNza2V5KCkpOworCisgICAgICAgIGlmICh1c2VyID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBUcmFja2VyRXhjZXB0aW9uKCJwYXNza2V5IGludmFsaWQsIHBscyByZWRvd25sb2FkIHRoZSB0b3JyZW50IGZpbGUuIik7CisgICAgICAgIH0KKworCisgICAgICAgIGlmICghdXNlci5pc1VzZXJPSygpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgVHJhY2tlckV4Y2VwdGlvbigidXNlciBpbnZhbGlkIik7CisgICAgICAgIH0KKworCisgICAgICAgIHJlcXVlc3Quc2V0VXNlcih1c2VyKTsKKworICAgIH0KKworICAgIEBPdmVycmlkZQorICAgIHB1YmxpYyBpbnQgZ2V0T3JkZXIoKSB7CisgICAgICAgIHJldHVybiAxMDA7CisgICAgfQorCisKK30KZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9TZXJ2ZXIvdmFsaWRhdG9yL1ZhbGlkYXRpb25NYW5hZ2VyLmphdmEgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvU2VydmVyL3ZhbGlkYXRvci9WYWxpZGF0aW9uTWFuYWdlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUxZGY5MjYKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvU2VydmVyL3ZhbGlkYXRvci9WYWxpZGF0aW9uTWFuYWdlci5qYXZhCkBAIC0wLDAgKzEsMzMgQEAKK3BhY2thZ2UgY29tLnJ1b3lpLndlYi5TZXJ2ZXIudmFsaWRhdG9yOworCisKK2ltcG9ydCBjb20ucnVveWkud2ViLmRhby5CVC5Bbm5vdW5jZVJlcXVlc3Q7CitpbXBvcnQgbG9tYm9rLlJlcXVpcmVkQXJnc0NvbnN0cnVjdG9yOworaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsuYmVhbnMuZmFjdG9yeS5hbm5vdGF0aW9uLkF1dG93aXJlZDsKK2ltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLnN0ZXJlb3R5cGUuU2VydmljZTsKKworaW1wb3J0IGphdmEudXRpbC5Db21wYXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5MaXN0OworaW1wb3J0IGphdmEudXRpbC5zdHJlYW0uQ29sbGVjdG9yczsKKworQFNlcnZpY2UKK0BSZXF1aXJlZEFyZ3NDb25zdHJ1Y3RvcgorcHVibGljIGNsYXNzIFZhbGlkYXRpb25NYW5hZ2VyIHsKKworICAgIExpc3Q8VHJhY2tlclZhbGlkYXRvcj4gdmFsaWRhdG9yczsKKworICAgIEBBdXRvd2lyZWQKKyAgICBwdWJsaWMgVmFsaWRhdGlvbk1hbmFnZXIoTGlzdDxUcmFja2VyVmFsaWRhdG9yPiB2YWxpZGF0b3JMaXN0KSB7CisgICAgICAgIHRoaXMudmFsaWRhdG9ycyA9IHZhbGlkYXRvckxpc3Quc3RyZWFtKCkKKyAgICAgICAgICAgICAgICAuc29ydGVkKENvbXBhcmF0b3IuY29tcGFyaW5nKFRyYWNrZXJWYWxpZGF0b3I6OmdldE9yZGVyKSkKKyAgICAgICAgICAgICAgICAuY29sbGVjdChDb2xsZWN0b3JzLnRvTGlzdCgpKTsKKyAgICB9CisKKworICAgIHB1YmxpYyB2b2lkIHZhbGlkYXRlKEFubm91bmNlUmVxdWVzdCBvYmplY3QpIHsKKyAgICAgICAgZm9yIChUcmFja2VyVmFsaWRhdG9yIHZhbGlkYXRvciA6IHZhbGlkYXRvcnMpIHsKKyAgICAgICAgICAgIHZhbGlkYXRvci52YWxpZGF0ZShvYmplY3QpOworICAgICAgICB9CisgICAgfQorCit9CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvVG9vbC9CVC9CZW5jb2RlVXRpbC5qYXZhIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL1Rvb2wvQlQvQmVuY29kZVV0aWwuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ODhmYTgwCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL1Rvb2wvQlQvQmVuY29kZVV0aWwuamF2YQpAQCAtMCwwICsxLDEyNyBAQAorcGFja2FnZSBjb20ucnVveWkud2ViLlRvb2wuQlQ7CisKK2ltcG9ydCBjb20uZGFtcGNha2UuYmVuY29kZS5CZW5jb2RlT3V0cHV0U3RyZWFtOworaW1wb3J0IGNvbS5ydW95aS53ZWIuY29udHJvbGxlci5jb21tb24uZXhjZXB0aW9uLlRyYWNrZXJFeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5CeXRlQXJyYXlPdXRwdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworCisvKioKKyAqIOe8luino+eggQorICovCitwdWJsaWMgY2xhc3MgQmVuY29kZVV0aWwgeworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgZXhjZXB0aW9uTXNnID0gIk9vcHMhIFlvdXIgcmVxdWVzdCBpcyBsaWtlIGFuIGFsaWVuIGxhbmd1YWdlIHRvIHVzLCB3ZSAiICsKKyAgICAgICAgICAgICJjYW4ndCBlbmNvZGUgaXQhIjsKKworICAgIHB1YmxpYyBpbnRlcmZhY2UgRXJyb3JzIHsKKyAgICAgICAgU3RyaW5nIENMSUVOVF9FUlJPUiA9IEJlbmNvZGVVdGlsLmVycm9yKCJPb3BzISBZb3VyIHJlcXVlc3QgaXMgbGlrZSBhbiBhbGllbiBsYW5ndWFnZSB0byAiICsKKyAgICAgICAgICAgICAgICAidXMsIHdlIGNhbid0IGRlY29kZSBpdCEiKTsKKyAgICAgICAgU3RyaW5nIElOVEVSTkFMX0VSUk9SXzYwID0gQmVuY29kZVV0aWwuZXJyb3IoIkdpdmUgdXMgYSBtb21lbnQsIHRyeSBhZ2FpbiBsYXRlciEiLCA2MCk7CisgICAgICAgIFN0cmluZyBJTlRFUk5BTF9FUlJPUl8xMjAgPSBCZW5jb2RlVXRpbC5lcnJvcigiSG9sZCB5b3VyIGhvcnNlcyEgdGhlbiB0cnkgYWdhaW4gbGF0ZXIhIiwKKyAgICAgICAgICAgICAgICAxMjApOworCisKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBlcnJvcihTdHJpbmcgcmVhc29uKSB7CisgICAgICAgIHJldHVybiBlbmNvZGUoTWFwLm9mKCJmYWlsdXJlIHJlYXNvbiIsIHJlYXNvbikpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGVycm9yTm9SZXRyeShTdHJpbmcgcmVhc29uKSB7CisgICAgICAgIHJldHVybiBlbmNvZGUoTWFwLm9mKCJmYWlsdXJlIHJlYXNvbiIsIHJlYXNvbiwKKyAgICAgICAgICAgICAgICAicmV0cnkgaW4iLCAibmV2ZXIiCisgICAgICAgICkpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHdhcm5pbmcoU3RyaW5nIHJlYXNvbikgeworICAgICAgICByZXR1cm4gZW5jb2RlKE1hcC5vZigid2FybmluZyBtZXNzYWdlIiwgcmVhc29uKSk7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZXJyb3IoKSB7CisgICAgICAgIHJldHVybiBFcnJvcnMuQ0xJRU5UX0VSUk9SOworICAgIH0KKworCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZXJyb3IoU3RyaW5nIHJlYXNvbiwgSW50ZWdlciByZXRyeSkgeworICAgICAgICByZXR1cm4gZW5jb2RlKE1hcC5vZigiZmFpbHVyZSByZWFzb24iLCByZWFzb24sICJyZXRyeSBpbiIsIHJldHJ5KSk7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyA8SywgVj4gU3RyaW5nIGVuY29kZShNYXA8SywgVj4gZGF0YSkgeworICAgICAgICB0cnkgKEJ5dGVBcnJheU91dHB1dFN0cmVhbSBvdXQgPSBuZXcgQnl0ZUFycmF5T3V0cHV0U3RyZWFtKCkpIHsKKyAgICAgICAgICAgIHRyeSAoQmVuY29kZU91dHB1dFN0cmVhbSBiZW5jb2RlciA9IG5ldyBCZW5jb2RlT3V0cHV0U3RyZWFtKG91dCkpIHsKKyAgICAgICAgICAgICAgICBiZW5jb2Rlci53cml0ZURpY3Rpb25hcnkoZGF0YSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIG91dC50b1N0cmluZygpOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgVHJhY2tlckV4Y2VwdGlvbihleGNlcHRpb25Nc2csIGUpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZW5jb2RlKEludGVnZXIgZGF0YSkgeworICAgICAgICB0cnkgKEJ5dGVBcnJheU91dHB1dFN0cmVhbSBvdXQgPSBuZXcgQnl0ZUFycmF5T3V0cHV0U3RyZWFtKCkpIHsKKyAgICAgICAgICAgIHRyeSAoQmVuY29kZU91dHB1dFN0cmVhbSBiZW5jb2RlciA9IG5ldyBCZW5jb2RlT3V0cHV0U3RyZWFtKG91dCkpIHsKKyAgICAgICAgICAgICAgICBiZW5jb2Rlci53cml0ZShkYXRhKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gb3V0LnRvU3RyaW5nKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBUcmFja2VyRXhjZXB0aW9uKGV4Y2VwdGlvbk1zZywgZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBlbmNvZGUoTnVtYmVyIGRhdGEpIHsKKyAgICAgICAgdHJ5IChCeXRlQXJyYXlPdXRwdXRTdHJlYW0gb3V0ID0gbmV3IEJ5dGVBcnJheU91dHB1dFN0cmVhbSgpKSB7CisgICAgICAgICAgICB0cnkgKEJlbmNvZGVPdXRwdXRTdHJlYW0gYmVuY29kZXIgPSBuZXcgQmVuY29kZU91dHB1dFN0cmVhbShvdXQpKSB7CisgICAgICAgICAgICAgICAgYmVuY29kZXIud3JpdGVOdW1iZXIoZGF0YSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIG91dC50b1N0cmluZygpOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgVHJhY2tlckV4Y2VwdGlvbihleGNlcHRpb25Nc2csIGUpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZW5jb2RlKGJ5dGVbXSBkYXRhKSB7CisgICAgICAgIHRyeSAoQnl0ZUFycmF5T3V0cHV0U3RyZWFtIG91dCA9IG5ldyBCeXRlQXJyYXlPdXRwdXRTdHJlYW0oKSkgeworICAgICAgICAgICAgdHJ5IChCZW5jb2RlT3V0cHV0U3RyZWFtIGJlbmNvZGVyID0gbmV3IEJlbmNvZGVPdXRwdXRTdHJlYW0ob3V0KSkgeworICAgICAgICAgICAgICAgIGJlbmNvZGVyLndyaXRlKGRhdGEpOworICAgICAgICAgICAgICAgIHJldHVybiBvdXQudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFRyYWNrZXJFeGNlcHRpb24oZXhjZXB0aW9uTXNnLCBlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGVuY29kZShieXRlW10gZGF0YSwgaW50IG9mZnNldCwgaW50IGxlbmd0aCkgeworICAgICAgICB0cnkgKEJ5dGVBcnJheU91dHB1dFN0cmVhbSBvdXQgPSBuZXcgQnl0ZUFycmF5T3V0cHV0U3RyZWFtKCkpIHsKKyAgICAgICAgICAgIHRyeSAoQmVuY29kZU91dHB1dFN0cmVhbSBiZW5jb2RlciA9IG5ldyBCZW5jb2RlT3V0cHV0U3RyZWFtKG91dCkpIHsKKyAgICAgICAgICAgICAgICBiZW5jb2Rlci53cml0ZShkYXRhLCBvZmZzZXQsIGxlbmd0aCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIG91dC50b1N0cmluZygpOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgVHJhY2tlckV4Y2VwdGlvbihleGNlcHRpb25Nc2csIGUpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZW5jb2RlKFN0cmluZyBkYXRhKSB7CisgICAgICAgIHRyeSAoQnl0ZUFycmF5T3V0cHV0U3RyZWFtIG91dCA9IG5ldyBCeXRlQXJyYXlPdXRwdXRTdHJlYW0oKSkgeworICAgICAgICAgICAgdHJ5IChCZW5jb2RlT3V0cHV0U3RyZWFtIGJlbmNvZGVyID0gbmV3IEJlbmNvZGVPdXRwdXRTdHJlYW0ob3V0KSkgeworICAgICAgICAgICAgICAgIGJlbmNvZGVyLndyaXRlU3RyaW5nKGRhdGEpOworICAgICAgICAgICAgICAgIHJldHVybiBvdXQudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFRyYWNrZXJFeGNlcHRpb24oZXhjZXB0aW9uTXNnLCBlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgPEU+IFN0cmluZyBlbmNvZGUoTGlzdDxFPiBkYXRhKSB7CisgICAgICAgIHRyeSAoQnl0ZUFycmF5T3V0cHV0U3RyZWFtIG91dCA9IG5ldyBCeXRlQXJyYXlPdXRwdXRTdHJlYW0oKSkgeworICAgICAgICAgICAgdHJ5IChCZW5jb2RlT3V0cHV0U3RyZWFtIGJlbmNvZGVyID0gbmV3IEJlbmNvZGVPdXRwdXRTdHJlYW0ob3V0KSkgeworICAgICAgICAgICAgICAgIGJlbmNvZGVyLndyaXRlTGlzdChkYXRhKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gb3V0LnRvU3RyaW5nKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBUcmFja2VyRXhjZXB0aW9uKGV4Y2VwdGlvbk1zZywgZSk7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvVG9vbC9CVC9CaW5hcnlGaWVsZFV0aWwuamF2YSBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9Ub29sL0JUL0JpbmFyeUZpZWxkVXRpbC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIwOTI3YjYKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvVG9vbC9CVC9CaW5hcnlGaWVsZFV0aWwuamF2YQpAQCAtMCwwICsxLDUxIEBACitwYWNrYWdlIGNvbS5ydW95aS53ZWIuVG9vbC5CVDsKKworCitpbXBvcnQgY29tLnJ1b3lpLndlYi5jb250cm9sbGVyLmNvbW1vbi5leGNlcHRpb24uVHJhY2tlckV4Y2VwdGlvbjsKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMuY29kZWMuRGVjb2RlckV4Y2VwdGlvbjsKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMuY29kZWMubmV0LlVSTENvZGVjOworCitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CitpbXBvcnQgamF2YS51dGlsLnJlZ2V4LlBhdHRlcm47CisKK3B1YmxpYyBjbGFzcyBCaW5hcnlGaWVsZFV0aWwgeworICAgIGludGVyZmFjZSBSZWdleFBhdHRlcm4geworICAgICAgICBQYXR0ZXJuIElORk9fSEFTSCA9IFBhdHRlcm4uY29tcGlsZSgiKD8paW5mb19oYXNoPShbXiZdKikiKTsKKyAgICAgICAgUGF0dGVybiBQRUVSX0lEID0gUGF0dGVybi5jb21waWxlKCIoPylwZWVyX2lkPShbXiZdKikiKTsKKyAgICB9CisKKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBVUkxDb2RlYyBDT0RFQyA9IG5ldyBVUkxDb2RlYygpOworCisgICAgc3RhdGljIHB1YmxpYyBMaXN0PGJ5dGVbXT4gbWF0Y2hJbmZvSGFzaGVzSGV4KFN0cmluZyBxdWVyeVN0cmluZ3MpIHsKKyAgICAgICAgcmV0dXJuIFJlZ2V4UGF0dGVybi5JTkZPX0hBU0gubWF0Y2hlcihxdWVyeVN0cmluZ3MpCisgICAgICAgICAgICAgICAgLnJlc3VsdHMoKQorICAgICAgICAgICAgICAgIC5tYXAoeCAtPiB4Lmdyb3VwKDEpKQorICAgICAgICAgICAgICAgIC5tYXAoQmluYXJ5RmllbGRVdGlsOjpkZWNvZGVVcmwpCisgICAgICAgICAgICAgICAgLnRvTGlzdCgpOworICAgIH0KKworICAgIHN0YXRpYyBwdWJsaWMgYnl0ZVtdIG1hdGNoSW5mb0hhc2goU3RyaW5nIHF1ZXJ5U3RyaW5ncykgeworICAgICAgICByZXR1cm4gUmVnZXhQYXR0ZXJuLklORk9fSEFTSC5tYXRjaGVyKHF1ZXJ5U3RyaW5ncykKKyAgICAgICAgICAgICAgICAucmVzdWx0cygpCisgICAgICAgICAgICAgICAgLm1hcCh4IC0+IHguZ3JvdXAoMSkpCisgICAgICAgICAgICAgICAgLm1hcChCaW5hcnlGaWVsZFV0aWw6OmRlY29kZVVybCkKKyAgICAgICAgICAgICAgICAuZmluZEZpcnN0KCkub3JFbHNlVGhyb3coKCkgLT4gbmV3IFRyYWNrZXJFeGNlcHRpb24oIm1pc3NpbmcgZmllbGQgaW5mb19oYXNoIikpOworICAgIH0KKworICAgIHN0YXRpYyBwdWJsaWMgYnl0ZVtdIG1hdGNoUGVlcklkKFN0cmluZyBxdWVyeVN0cmluZ3MpIHsKKyAgICAgICAgcmV0dXJuIFJlZ2V4UGF0dGVybi5QRUVSX0lELm1hdGNoZXIocXVlcnlTdHJpbmdzKQorICAgICAgICAgICAgICAgIC5yZXN1bHRzKCkKKyAgICAgICAgICAgICAgICAubWFwKHggLT4geC5ncm91cCgxKSkKKyAgICAgICAgICAgICAgICAubWFwKEJpbmFyeUZpZWxkVXRpbDo6ZGVjb2RlVXJsKQorICAgICAgICAgICAgICAgIC5maW5kRmlyc3QoKQorICAgICAgICAgICAgICAgIC5vckVsc2VUaHJvdygoKSAtPiBuZXcgVHJhY2tlckV4Y2VwdGlvbigibWlzc2luZyBmaWVsZCBwZWVyX2lkIikpOworICAgIH0KKworICAgIHN0YXRpYyBwcml2YXRlIGJ5dGVbXSBkZWNvZGVVcmwoU3RyaW5nIHVybCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0dXJuIENPREVDLmRlY29kZSh1cmwuZ2V0Qnl0ZXMoKSk7CisgICAgICAgIH0gY2F0Y2ggKERlY29kZXJFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFRyYWNrZXJFeGNlcHRpb24oInVuYWJsZSB0byBkZWNvZGUgaW5wdXQgZGF0YSAiICsgdXJsLCBlKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9Ub29sL0JUL0NvbGxlY3Rpb25VdGlscy5qYXZhIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL1Rvb2wvQlQvQ29sbGVjdGlvblV0aWxzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmI5Y2FmYgotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9Ub29sL0JUL0NvbGxlY3Rpb25VdGlscy5qYXZhCkBAIC0wLDAgKzEsMTA0IEBACitwYWNrYWdlIGNvbS5ydW95aS53ZWIuVG9vbC5CVDsKKworaW1wb3J0IGphdmEudXRpbC4qOworCisvKioKKyAqIFN0YXRpYyBoZWxwZXIgY2xhc3MgZm9yIHVzZSBkZWFsaW5nIHdpdGggQ29sbGVjdGlvbnMuCisgKgorICogQHNpbmNlIDAuOQorICovCitwdWJsaWMgY2xhc3MgQ29sbGVjdGlvblV0aWxzIHsKKworICAgIC8vVE9ETyAtIGNvbXBsZXRlIEphdmFEb2MKKworICAgIHB1YmxpYyBzdGF0aWMgPEU+IFNldDxFPiBhc1NldChFLi4uIGVsZW1lbnRzKSB7CisgICAgICAgIGlmIChlbGVtZW50cyA9PSBudWxsIHx8IGVsZW1lbnRzLmxlbmd0aCA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gQ29sbGVjdGlvbnMuZW1wdHlTZXQoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChlbGVtZW50cy5sZW5ndGggPT0gMSkgeworICAgICAgICAgICAgcmV0dXJuIENvbGxlY3Rpb25zLnNpbmdsZXRvbihlbGVtZW50c1swXSk7CisgICAgICAgIH0KKworICAgICAgICBMaW5rZWRIYXNoU2V0PEU+IHNldCA9IG5ldyBMaW5rZWRIYXNoU2V0PEU+KGVsZW1lbnRzLmxlbmd0aCAqIDQgLyAzICsgMSk7CisgICAgICAgIENvbGxlY3Rpb25zLmFkZEFsbChzZXQsIGVsZW1lbnRzKTsKKyAgICAgICAgcmV0dXJuIHNldDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHtAY29kZSB0cnVlfSBpZiB0aGUgc3BlY2lmaWVkIHtAY29kZSBDb2xsZWN0aW9ufSBpcyB7QGNvZGUgbnVsbH0gb3IKKyAgICAgKiB7QGxpbmsgQ29sbGVjdGlvbiNpc0VtcHR5IGVtcHR5fSwKKyAgICAgKiB7QGNvZGUgZmFsc2V9IG90aGVyd2lzZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjIHRoZSBjb2xsZWN0aW9uIHRvIGNoZWNrCisgICAgICogQHJldHVybiB7QGNvZGUgdHJ1ZX0gaWYgdGhlIHNwZWNpZmllZCB7QGNvZGUgQ29sbGVjdGlvbn0gaXMge0Bjb2RlIG51bGx9IG9yCisgICAgICoge0BsaW5rIENvbGxlY3Rpb24jaXNFbXB0eSBlbXB0eX0sCisgICAgICoge0Bjb2RlIGZhbHNlfSBvdGhlcndpc2UuCisgICAgICogQHNpbmNlIDEuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc0VtcHR5KENvbGxlY3Rpb24gYykgeworICAgICAgICByZXR1cm4gYyA9PSBudWxsIHx8IGMuaXNFbXB0eSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMge0Bjb2RlIHRydWV9IGlmIHRoZSBzcGVjaWZpZWQge0Bjb2RlIE1hcH0gaXMge0Bjb2RlIG51bGx9IG9yIHtAbGluayBNYXAjaXNFbXB0eQorICAgICAqIGVtcHR5fSwKKyAgICAgKiB7QGNvZGUgZmFsc2V9IG90aGVyd2lzZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtIHRoZSB7QGNvZGUgTWFwfSB0byBjaGVjaworICAgICAqIEByZXR1cm4ge0Bjb2RlIHRydWV9IGlmIHRoZSBzcGVjaWZpZWQge0Bjb2RlIE1hcH0gaXMge0Bjb2RlIG51bGx9IG9yIHtAbGluayBNYXAjaXNFbXB0eQorICAgICAqIGVtcHR5fSwKKyAgICAgKiB7QGNvZGUgZmFsc2V9IG90aGVyd2lzZS4KKyAgICAgKiBAc2luY2UgMS4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzRW1wdHkoTWFwIG0pIHsKKyAgICAgICAgcmV0dXJuIG0gPT0gbnVsbCB8fCBtLmlzRW1wdHkoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBzaXplIG9mIHRoZSBzcGVjaWZpZWQgY29sbGVjdGlvbiBvciB7QGNvZGUgMH0gaWYgdGhlIGNvbGxlY3Rpb24gaXMge0Bjb2RlIG51bGx9LgorICAgICAqCisgICAgICogQHBhcmFtIGMgdGhlIGNvbGxlY3Rpb24gdG8gY2hlY2sKKyAgICAgKiBAcmV0dXJuIHRoZSBzaXplIG9mIHRoZSBzcGVjaWZpZWQgY29sbGVjdGlvbiBvciB7QGNvZGUgMH0gaWYgdGhlIGNvbGxlY3Rpb24gaXMge0Bjb2RlIG51bGx9LgorICAgICAqIEBzaW5jZSAxLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBzaXplKENvbGxlY3Rpb24gYykgeworICAgICAgICByZXR1cm4gYyAhPSBudWxsID8gYy5zaXplKCkgOiAwOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHNpemUgb2YgdGhlIHNwZWNpZmllZCBtYXAgb3Ige0Bjb2RlIDB9IGlmIHRoZSBtYXAgaXMge0Bjb2RlIG51bGx9LgorICAgICAqCisgICAgICogQHBhcmFtIG0gdGhlIG1hcCB0byBjaGVjaworICAgICAqIEByZXR1cm4gdGhlIHNpemUgb2YgdGhlIHNwZWNpZmllZCBtYXAgb3Ige0Bjb2RlIDB9IGlmIHRoZSBtYXAgaXMge0Bjb2RlIG51bGx9LgorICAgICAqIEBzaW5jZSAxLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBzaXplKE1hcCBtKSB7CisgICAgICAgIHJldHVybiBtICE9IG51bGwgPyBtLnNpemUoKSA6IDA7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyA8RT4gTGlzdDxFPiBhc0xpc3QoRS4uLiBlbGVtZW50cykgeworICAgICAgICBpZiAoZWxlbWVudHMgPT0gbnVsbCB8fCBlbGVtZW50cy5sZW5ndGggPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIENvbGxlY3Rpb25zLmVtcHR5TGlzdCgpOworICAgICAgICB9CisKKyAgICAgICAgLy8gSW50ZWdlciBvdmVyZmxvdyBkb2VzIG5vdCBvY2N1ciB3aGVuIGEgbGFyZ2UgYXJyYXkgaXMgcGFzc2VkIGluIGJlY2F1c2UgdGhlIGxpc3QgYXJyYXkKKyAgICAgICAgLy8gYWxyZWFkeSBleGlzdHMKKyAgICAgICAgcmV0dXJuIEFycmF5cy5hc0xpc3QoZWxlbWVudHMpOworICAgIH0KKworICAgIC8qcHVibGljIHN0YXRpYyA8RT4gRGVxdWU8RT4gYXNEZXF1ZShFLi4uIGVsZW1lbnRzKSB7CisgICAgICAgIGlmIChlbGVtZW50cyA9PSBudWxsIHx8IGVsZW1lbnRzLmxlbmd0aCA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IEFycmF5RGVxdWU8RT4oKTsKKyAgICAgICAgfQorICAgICAgICAvLyBBdm9pZCBpbnRlZ2VyIG92ZXJmbG93IHdoZW4gYSBsYXJnZSBhcnJheSBpcyBwYXNzZWQgaW4KKyAgICAgICAgaW50IGNhcGFjaXR5ID0gY29tcHV0ZUxpc3RDYXBhY2l0eShlbGVtZW50cy5sZW5ndGgpOworICAgICAgICBBcnJheURlcXVlPEU+IGRlcXVlID0gbmV3IEFycmF5RGVxdWU8RT4oY2FwYWNpdHkpOworICAgICAgICBDb2xsZWN0aW9ucy5hZGRBbGwoZGVxdWUsIGVsZW1lbnRzKTsKKyAgICAgICAgcmV0dXJuIGRlcXVlOworICAgIH0qLworCisgICAgc3RhdGljIGludCBjb21wdXRlTGlzdENhcGFjaXR5KGludCBhcnJheVNpemUpIHsKKyAgICAgICAgcmV0dXJuIChpbnQpIE1hdGgubWluKDVMICsgYXJyYXlTaXplICsgKGFycmF5U2l6ZSAvIDEwKSwgSW50ZWdlci5NQVhfVkFMVUUpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9Ub29sL0JUL0ZpbGVVdGlsLmphdmEgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvVG9vbC9CVC9GaWxlVXRpbC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEyNDcwZTgKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvVG9vbC9CVC9GaWxlVXRpbC5qYXZhCkBAIC0wLDAgKzEsMTIgQEAKK3BhY2thZ2UgY29tLnJ1b3lpLndlYi5Ub29sLkJUOworCitpbXBvcnQgamF2YS5pby5GaWxlT3V0cHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CisKK3B1YmxpYyBjbGFzcyBGaWxlVXRpbCB7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIHdyaXRlQnl0ZXNUb0ZpbGUoYnl0ZVtdIGRhdGEsIFN0cmluZyBmaWxlUGF0aCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgdHJ5IChGaWxlT3V0cHV0U3RyZWFtIGZvcyA9IG5ldyBGaWxlT3V0cHV0U3RyZWFtKGZpbGVQYXRoKSkgeworICAgICAgICAgICAgZm9zLndyaXRlKGRhdGEpOworICAgICAgICB9CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9Ub29sL0JUL0lQVXRpbHMuamF2YSBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9Ub29sL0JUL0lQVXRpbHMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNmMyN2FlCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL1Rvb2wvQlQvSVBVdGlscy5qYXZhCkBAIC0wLDAgKzEsOTYgQEAKK3BhY2thZ2UgY29tLnJ1b3lpLndlYi5Ub29sLkJUOworCitpbXBvcnQgamFrYXJ0YS5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0OworaW1wb3J0IGxvbWJvay5leHRlcm4uc2xmNGouU2xmNGo7CitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLmxhbmczLlN0cmluZ1V0aWxzOworaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsud2ViLmNvbnRleHQucmVxdWVzdC5SZXF1ZXN0Q29udGV4dEhvbGRlcjsKK2ltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLndlYi5jb250ZXh0LnJlcXVlc3QuU2VydmxldFJlcXVlc3RBdHRyaWJ1dGVzOworCisvKioKKyAqIOiOt+WPluivt+axguS4u+acuklQ5Zyw5Z2A5bel5YW3CisgKgorICogQGF1dGhvciBwdAorICovCitAU2xmNGoKK3B1YmxpYyBjbGFzcyBJUFV0aWxzIHsKKworICAgIC8qKgorICAgICAqIOiOt+WPluivt+axguS4u+acuklQ5Zyw5Z2ALOWmguaenOmAmui/h+S7o+eQhui/m+adpe+8jOWImemAj+i/h+mYsueBq+WimeiOt+WPluecn+WunklQ5Zyw5Z2AOworICAgICAqIDxwPgorICAgICAqIHgtcmVhbC1pcDoxNzEuMTExCisgICAgICogeC1mb3J3YXJkZWQtZm9yOjE3MS4xLjE1Ny4xMQorICAgICAqIHJlbW90ZS1ob3N0OjE3MS4xMTEuMTU3LjExCisgICAgICog5L2/55SoTmdpbnjnrYnlj43lkJHku6PnkIbova/ku7bvvIwg5YiZ5LiN6IO96YCa6L+HcmVxdWVzdC5nZXRSZW1vdGVBZGRyKCnojrflj5ZJUOWcsOWdgAorICAgICAqIOWmguaenOS9v+eUqOS6huWkmue6p+WPjeWQkeS7o+eQhueahOivne+8jFgtRm9yd2FyZGVkLUZvcueahOWAvOW5tuS4jeatouS4gOS4qu+8jOiAjOaYr+S4gOS4sklQ5Zyw5Z2A77yMWC1Gb3J3YXJkZWQtRm9y5Lit56ys5LiA5Liq6Z2edW5rbm93bueahOacieaViElQ5a2X56ym5Liy77yM5YiZ5Li655yf5a6eSVDlnLDlnYAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXRJcEFkZHIoKSB7CisKKyAgICAgICAgSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QgPQorICAgICAgICAgICAgICAgICgoU2VydmxldFJlcXVlc3RBdHRyaWJ1dGVzKSBSZXF1ZXN0Q29udGV4dEhvbGRlci5nZXRSZXF1ZXN0QXR0cmlidXRlcygpKS5nZXRSZXF1ZXN0KCk7CisKKworICAgICAgICAvL+aJk+WNsOWktOS/oeaBrworLy8gICAgICAgIEVudW1lcmF0aW9uIGVudW1zID0gcmVxdWVzdC5nZXRIZWFkZXJOYW1lcygpOworLy8gICAgICAgIHdoaWxlIChlbnVtcy5oYXNNb3JlRWxlbWVudHMoKSkgeworLy8gICAgICAgICAgICBTdHJpbmcgaGVhZGVyTmFtZSA9IChTdHJpbmcpIGVudW1zLm5leHRFbGVtZW50KCk7CisvLyAgICAgICAgICAgIFN0cmluZyBoZWFkZXJWYWx1ZSA9IHJlcXVlc3QuZ2V0SGVhZGVyKGhlYWRlck5hbWUpOworLy8gICAgICAgICAgICBsb2cuaW5mbyhoZWFkZXJOYW1lICsgIjoiICsgaGVhZGVyVmFsdWUpOworLy8gICAgICAgIH0KKworCisgICAgICAgIHJldHVybiBnZXRJcEFkZHIocmVxdWVzdCk7CisgICAgfQorCisgICAgLyoqCisgICAgICog6I635Y+W6K+35rGC5Li75py6SVDlnLDlnYAs5aaC5p6c6YCa6L+H5Luj55CG6L+b5p2l77yM5YiZ6YCP6L+H6Ziy54Gr5aKZ6I635Y+W55yf5a6eSVDlnLDlnYA7CisgICAgICogPHA+CisgICAgICogeC1yZWFsLWlwOjE3MS4xMTEKKyAgICAgKiB4LWZvcndhcmRlZC1mb3I6MTcxLjEuMTU3LjExCisgICAgICogcmVtb3RlLWhvc3Q6MTcxLjExMS4xNTcuMTEKKyAgICAgKiDkvb/nlKhOZ2lueOetieWPjeWQkeS7o+eQhui9r+S7tu+8jCDliJnkuI3og73pgJrov4dyZXF1ZXN0LmdldFJlbW90ZUFkZHIoKeiOt+WPlklQ5Zyw5Z2ACisgICAgICog5aaC5p6c5L2/55So5LqG5aSa57qn5Y+N5ZCR5Luj55CG55qE6K+d77yMWC1Gb3J3YXJkZWQtRm9y55qE5YC85bm25LiN5q2i5LiA5Liq77yM6ICM5piv5LiA5LiySVDlnLDlnYDvvIxYLUZvcndhcmRlZC1Gb3LkuK3nrKzkuIDkuKrpnZ51bmtub3du55qE5pyJ5pWISVDlrZfnrKbkuLLvvIzliJnkuLrnnJ/lrp5JUOWcsOWdgAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldElwQWRkcihIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCkgeworCisgICAgICAgIFN0cmluZyBpcCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpcCA9IHJlcXVlc3QuZ2V0SGVhZGVyKCJ4LXJlYWwtaXAiKTsKKworCisgICAgICAgICAgICBpZiAoaXNVbmtub3duSXAoaXApKSB7CisgICAgICAgICAgICAgICAgaXAgPSByZXF1ZXN0LmdldEhlYWRlcigieC1mb3J3YXJkZWQtZm9yIik7CisKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChpc1Vua25vd25JcChpcCkpIHsKKyAgICAgICAgICAgICAgICBpcCA9IHJlcXVlc3QuZ2V0SGVhZGVyKCJyZW1vdGUtaG9zdCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGlzVW5rbm93bklwKGlwKSkgeworICAgICAgICAgICAgICAgIGlwID0gcmVxdWVzdC5nZXRIZWFkZXIoIlByb3h5LUNsaWVudC1JUCIpOworCisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoaXNVbmtub3duSXAoaXApKSB7CisgICAgICAgICAgICAgICAgaXAgPSByZXF1ZXN0LmdldEhlYWRlcigiSFRUUF9YX0ZPUldBUkRFRF9GT1IiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChpc1Vua25vd25JcChpcCkpIHsKKyAgICAgICAgICAgICAgICBpcCA9IHJlcXVlc3QuZ2V0UmVtb3RlQWRkcigpOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgbG9nLmVycm9yKCJJUFV0aWxzIEVSUk9SICIsIGUpOworICAgICAgICB9CisKKyAgICAgICAgLy/kvb/nlKjku6PnkIbvvIzliJnojrflj5bnrKzkuIDkuKpJUOWcsOWdgAorICAgICAgICBpZiAoU3RyaW5nVXRpbHMuaXNOb3RCbGFuayhpcCkgJiYgaXAubGVuZ3RoKCkgPiAxNSkgeworICAgICAgICAgICAgaWYgKGlwLmluZGV4T2YoIiwiKSA+IDApIHsKKyAgICAgICAgICAgICAgICBpcCA9IGlwLnN1YnN0cmluZygwLCBpcC5pbmRleE9mKCIsIikpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGlwOworICAgIH0KKworCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBpc1Vua25vd25JcChTdHJpbmcgaXApIHsKKyAgICAgICAgcmV0dXJuIFN0cmluZ1V0aWxzLmlzQmxhbmsoaXApIHx8ICJ1bmtub3duIi5lcXVhbHNJZ25vcmVDYXNlKGlwKTsKKyAgICB9CisKK30KZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9Ub29sL0JUL0pzb25UeXBlSGFuZGxlci5qYXZhIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL1Rvb2wvQlQvSnNvblR5cGVIYW5kbGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODNmMDYyMwotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9Ub29sL0JUL0pzb25UeXBlSGFuZGxlci5qYXZhCkBAIC0wLDAgKzEsNzAgQEAKK3BhY2thZ2UgY29tLnJ1b3lpLndlYi5Ub29sLkJUOworCitpbXBvcnQgY29tLmZhc3RlcnhtbC5qYWNrc29uLmNvcmUuSnNvblByb2Nlc3NpbmdFeGNlcHRpb247CitpbXBvcnQgY29tLmZhc3RlcnhtbC5qYWNrc29uLmNvcmUudHlwZS5UeXBlUmVmZXJlbmNlOworaW1wb3J0IGNvbS5mYXN0ZXJ4bWwuamFja3Nvbi5kYXRhYmluZC5EZXNlcmlhbGl6YXRpb25GZWF0dXJlOworaW1wb3J0IGNvbS5mYXN0ZXJ4bWwuamFja3Nvbi5kYXRhYmluZC5PYmplY3RNYXBwZXI7CitpbXBvcnQgY29tLmZhc3RlcnhtbC5qYWNrc29uLmRhdGF0eXBlLmpzcjMxMC5KYXZhVGltZU1vZHVsZTsKK2ltcG9ydCBvcmcuYXBhY2hlLmliYXRpcy50eXBlLkJhc2VUeXBlSGFuZGxlcjsKK2ltcG9ydCBvcmcuYXBhY2hlLmliYXRpcy50eXBlLkpkYmNUeXBlOworCitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnNxbC5DYWxsYWJsZVN0YXRlbWVudDsKK2ltcG9ydCBqYXZhLnNxbC5QcmVwYXJlZFN0YXRlbWVudDsKK2ltcG9ydCBqYXZhLnNxbC5SZXN1bHRTZXQ7CitpbXBvcnQgamF2YS5zcWwuU1FMRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5NYXA7CisKK3B1YmxpYyBjbGFzcyBKc29uVHlwZUhhbmRsZXIgZXh0ZW5kcyBCYXNlVHlwZUhhbmRsZXI8TWFwPFN0cmluZywgT2JqZWN0Pj4geworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIE9iamVjdE1hcHBlciBvYmplY3RNYXBwZXIgPSBuZXcgT2JqZWN0TWFwcGVyKCk7CisKKyAgICBzdGF0aWMgeworICAgICAgICBvYmplY3RNYXBwZXIuY29uZmlndXJlKERlc2VyaWFsaXphdGlvbkZlYXR1cmUuRkFJTF9PTl9VTktOT1dOX1BST1BFUlRJRVMsIGZhbHNlKTsKKyAgICAgICAgb2JqZWN0TWFwcGVyLnJlZ2lzdGVyTW9kdWxlKG5ldyBKYXZhVGltZU1vZHVsZSgpKTsKKyAgICB9CisKKyAgICBAT3ZlcnJpZGUKKyAgICBwdWJsaWMgdm9pZCBzZXROb25OdWxsUGFyYW1ldGVyKFByZXBhcmVkU3RhdGVtZW50IHBzLCBpbnQgaSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hcDxTdHJpbmcsIE9iamVjdD4gcGFyYW1ldGVyLCBKZGJjVHlwZSBqZGJjVHlwZSkKKyAgICAgICAgICAgIHRocm93cyBTUUxFeGNlcHRpb24geworICAgICAgICB0cnkgeworICAgICAgICAgICAgcHMuc2V0U3RyaW5nKGksIG9iamVjdE1hcHBlci53cml0ZVZhbHVlQXNTdHJpbmcocGFyYW1ldGVyKSk7CisgICAgICAgIH0gY2F0Y2ggKEpzb25Qcm9jZXNzaW5nRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBTUUxFeGNlcHRpb24oIkVycm9yIGNvbnZlcnRpbmcgbWFwIHRvIEpTT04iLCBlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIEBPdmVycmlkZQorICAgIHB1YmxpYyBNYXA8U3RyaW5nLCBPYmplY3Q+IGdldE51bGxhYmxlUmVzdWx0KFJlc3VsdFNldCBycywgU3RyaW5nIGNvbHVtbk5hbWUpCisgICAgICAgICAgICB0aHJvd3MgU1FMRXhjZXB0aW9uIHsKKyAgICAgICAgU3RyaW5nIGpzb24gPSBycy5nZXRTdHJpbmcoY29sdW1uTmFtZSk7CisgICAgICAgIHJldHVybiBwYXJzZUpzb25Ub01hcChqc29uKTsKKyAgICB9CisKKyAgICBAT3ZlcnJpZGUKKyAgICBwdWJsaWMgTWFwPFN0cmluZywgT2JqZWN0PiBnZXROdWxsYWJsZVJlc3VsdChSZXN1bHRTZXQgcnMsIGludCBjb2x1bW5JbmRleCkKKyAgICAgICAgICAgIHRocm93cyBTUUxFeGNlcHRpb24geworICAgICAgICBTdHJpbmcganNvbiA9IHJzLmdldFN0cmluZyhjb2x1bW5JbmRleCk7CisgICAgICAgIHJldHVybiBwYXJzZUpzb25Ub01hcChqc29uKTsKKyAgICB9CisKKyAgICBAT3ZlcnJpZGUKKyAgICBwdWJsaWMgTWFwPFN0cmluZywgT2JqZWN0PiBnZXROdWxsYWJsZVJlc3VsdChDYWxsYWJsZVN0YXRlbWVudCBjcywgaW50IGNvbHVtbkluZGV4KQorICAgICAgICAgICAgdGhyb3dzIFNRTEV4Y2VwdGlvbiB7CisgICAgICAgIFN0cmluZyBqc29uID0gY3MuZ2V0U3RyaW5nKGNvbHVtbkluZGV4KTsKKyAgICAgICAgcmV0dXJuIHBhcnNlSnNvblRvTWFwKGpzb24pOworICAgIH0KKworICAgIHByaXZhdGUgTWFwPFN0cmluZywgT2JqZWN0PiBwYXJzZUpzb25Ub01hcChTdHJpbmcganNvbikgeworICAgICAgICBpZiAoanNvbiA9PSBudWxsIHx8IGpzb24uaXNFbXB0eSgpKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IEhhc2hNYXA8PigpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXR1cm4gb2JqZWN0TWFwcGVyLnJlYWRWYWx1ZShqc29uLAorICAgICAgICAgICAgICAgICAgICBuZXcgVHlwZVJlZmVyZW5jZTxNYXA8U3RyaW5nLCBPYmplY3Q+PigpIHt9KTsKKyAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oIkVycm9yIHBhcnNpbmcgSlNPTiB0byBtYXAiLCBlKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9Ub29sL0JUL0pzb25VdGlscy5qYXZhIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL1Rvb2wvQlQvSnNvblV0aWxzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjRlMWE1OQotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9Ub29sL0JUL0pzb25VdGlscy5qYXZhCkBAIC0wLDAgKzEsOTMgQEAKK3BhY2thZ2UgY29tLnJ1b3lpLndlYi5Ub29sLkJUOworCitpbXBvcnQgY29tLmZhc3RlcnhtbC5qYWNrc29uLmFubm90YXRpb24uSnNvbkluY2x1ZGU7CitpbXBvcnQgY29tLmZhc3RlcnhtbC5qYWNrc29uLmNvcmUuSnNvblByb2Nlc3NpbmdFeGNlcHRpb247CitpbXBvcnQgY29tLmZhc3RlcnhtbC5qYWNrc29uLmNvcmUudHlwZS5UeXBlUmVmZXJlbmNlOworaW1wb3J0IGNvbS5mYXN0ZXJ4bWwuamFja3Nvbi5kYXRhYmluZC5EZXNlcmlhbGl6YXRpb25GZWF0dXJlOworaW1wb3J0IGNvbS5mYXN0ZXJ4bWwuamFja3Nvbi5kYXRhYmluZC5Kc29uTm9kZTsKK2ltcG9ydCBjb20uZmFzdGVyeG1sLmphY2tzb24uZGF0YWJpbmQuTWFwcGVyRmVhdHVyZTsKK2ltcG9ydCBjb20uZmFzdGVyeG1sLmphY2tzb24uZGF0YWJpbmQuU2VyaWFsaXphdGlvbkZlYXR1cmU7CitpbXBvcnQgY29tLmZhc3RlcnhtbC5qYWNrc29uLmRhdGFiaW5kLmpzb24uSnNvbk1hcHBlcjsKK2ltcG9ydCBjb20uZmFzdGVyeG1sLmphY2tzb24uZGF0YXR5cGUuanNyMzEwLkphdmFUaW1lTW9kdWxlOworCitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKKworCisvKioKKyAqIEBhdXRob3IgSnJ4CisgKi8KK3B1YmxpYyBjbGFzcyBKc29uVXRpbHMgeworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgSnNvbk1hcHBlciBKU09OOworCisgICAgc3RhdGljIHsKKyAgICAgICAgSnNvbk1hcHBlci5CdWlsZGVyIGJ1aWxkZXIgPSBuZXcgSnNvbk1hcHBlcigpLnJlYnVpbGQoKTsKKyAgICAgICAgYnVpbGRlci5zZXJpYWxpemF0aW9uSW5jbHVzaW9uKEpzb25JbmNsdWRlLkluY2x1ZGUuTk9OX05VTEwpOworLy8gICAgICAgIEpTT04uY29uZmlndXJlKFNlcmlhbGl6YXRpb25GZWF0dXJlLklOREVOVF9PVVRQVVQsIGZhbHNlKTsKKyAgICAgICAgLy/kuI3mmL7npLrkuLpudWxs55qE5a2X5q61CisgICAgICAgIGJ1aWxkZXIuc2VyaWFsaXphdGlvbkluY2x1c2lvbihKc29uSW5jbHVkZS5JbmNsdWRlLk5PTl9OVUxMKTsKKyAgICAgICAgLy/luo/liJfljJbmnprkuL7mmK/ku6VvcmRpbmFsKCnmnaXovpPlh7oKKyAgICAgICAgYnVpbGRlci5hZGRNb2R1bGUobmV3IEphdmFUaW1lTW9kdWxlKCkpOworICAgICAgICBidWlsZGVyLmRpc2FibGUoU2VyaWFsaXphdGlvbkZlYXR1cmUuV1JJVEVfREFURVNfQVNfVElNRVNUQU1QUyk7CisgICAgICAgIGJ1aWxkZXIuZW5hYmxlKERlc2VyaWFsaXphdGlvbkZlYXR1cmUuRkFJTF9PTl9VTktOT1dOX1BST1BFUlRJRVMpOworICAgICAgICBidWlsZGVyLmVuYWJsZShNYXBwZXJGZWF0dXJlLkFDQ0VQVF9DQVNFX0lOU0VOU0lUSVZFX0VOVU1TKTsKKy8vICAgICAgICBTaW1wbGVNb2R1bGUgbW9kdWxlID0gbmV3IFNpbXBsZU1vZHVsZSgpOworLy8gICAgICAgIG1vZHVsZS5hZGRTZXJpYWxpemVyKEVudGl0eUJhc2VTZXJpYWxpemVyLmluc3RhbmNlKTsKKy8vICAgICAgICBidWlsZGVyLmFkZE1vZHVsZShtb2R1bGUpOworICAgICAgICBKU09OID0gYnVpbGRlci5idWlsZCgpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHN0cmluZ2lmeShPYmplY3Qgb2JqKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXR1cm4gSlNPTi53cml0ZVZhbHVlQXNTdHJpbmcob2JqKTsKKyAgICAgICAgfSBjYXRjaCAoSnNvblByb2Nlc3NpbmdFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIDxUPiBUIHBhcnNlVG9PYmplY3QoU3RyaW5nIGpzb24sIENsYXNzPFQ+IGNseikgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0dXJuIEpTT04ucmVhZFZhbHVlKGpzb24sIGNseik7CisgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIE1hcDxTdHJpbmcsIE9iamVjdD4gcGFyc2VUb01hcChTdHJpbmcganNvbikgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0dXJuIEpTT04ucmVhZFZhbHVlKGpzb24sIG5ldyBUeXBlUmVmZXJlbmNlPD4oKSB7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbihlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgPFQ+IExpc3Q8VD4gcGFyc2VUb0xpc3QoU3RyaW5nIGpzb24sIENsYXNzPFQ+IGNseikgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgTGlzdDxUPiByZXN1bHQgPSBuZXcgQXJyYXlMaXN0PD4oKTsKKyAgICAgICAgICAgIEpzb25Ob2RlIGpzb25Ob2RlID0gSlNPTi5yZWFkVHJlZShqc29uKTsKKyAgICAgICAgICAgIGZvciAoSnNvbk5vZGUgaXRlbU5vZGUgOiBqc29uTm9kZSkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hZGQoSlNPTi5yZWFkVmFsdWUoaXRlbU5vZGUudG9TdHJpbmcoKSwgY2x6KSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKGUpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyA8VD4gU2V0PFQ+IHBhcnNlVG9TZXQoU3RyaW5nIGpzb24sIENsYXNzPFQ+IGNseikgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgU2V0PFQ+IHJlc3VsdCA9IG5ldyBIYXNoU2V0PD4oKTsKKyAgICAgICAgICAgIEpzb25Ob2RlIGpzb25Ob2RlID0gSlNPTi5yZWFkVHJlZShqc29uKTsKKyAgICAgICAgICAgIGZvciAoSnNvbk5vZGUgaXRlbU5vZGUgOiBqc29uTm9kZSkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hZGQoSlNPTi5yZWFkVmFsdWUoaXRlbU5vZGUudG9TdHJpbmcoKSwgY2x6KSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKGUpOworICAgICAgICB9CisgICAgfQorCit9CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvVG9vbC9CVC9SZWRpc1V0aWwuamF2YSBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9Ub29sL0JUL1JlZGlzVXRpbC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVjYTUwNWEKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvVG9vbC9CVC9SZWRpc1V0aWwuamF2YQpAQCAtMCwwICsxLDEzMzIgQEAKK3BhY2thZ2UgY29tLnJ1b3lpLndlYi5Ub29sLkJUOworCisKK2ltcG9ydCBsb21ib2suR2V0dGVyOworaW1wb3J0IGxvbWJvay5SZXF1aXJlZEFyZ3NDb25zdHJ1Y3RvcjsKK2ltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLmRhdGEucmVkaXMuY29ubmVjdGlvbi5EYXRhVHlwZTsKK2ltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLmRhdGEucmVkaXMuY29yZS5DdXJzb3I7CitpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay5kYXRhLnJlZGlzLmNvcmUuU2Nhbk9wdGlvbnM7CitpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay5kYXRhLnJlZGlzLmNvcmUuU3RyaW5nUmVkaXNUZW1wbGF0ZTsKK2ltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLmRhdGEucmVkaXMuY29yZS5aU2V0T3BlcmF0aW9ucy5UeXBlZFR1cGxlOworaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsuc3RlcmVvdHlwZS5Db21wb25lbnQ7CisKK2ltcG9ydCBqYXZhLnV0aWwuKjsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwLkVudHJ5OworaW1wb3J0IGphdmEudXRpbC5jb25jdXJyZW50LlRpbWVVbml0OworCisvKioKKyAqIFJlZGlz5bel5YW357G7CisgKiBSZWRpc1RlbXBsYXRl5ZKMU3RyaW5nUmVkaXNUZW1wbGF0ZQorICog5LqM6ICF5Li76KaB5Yy65Yir5piv5LuW5Lus5L2/55So55qE5bqP5YiX5YyW57G75LiN5LiA5qC377yMUmVkaXNUZW1wbGF0ZeS9v+eUqOeahOaYr0pka1NlcmlhbGl6YXRpb25SZWRpc1NlcmlhbGl6ZXLvvIwKKyAqIFN0cmluZ1JlZGlzVGVtcGxhdGXkvb/nlKjnmoTmmK9TdHJpbmdSZWRpc1NlcmlhbGl6ZXLvvIzkuKTogIXnmoTmlbDmja7mmK/kuI3lhbHpgJrnmoTjgIIKKyAqLworQENvbXBvbmVudAorQFJlcXVpcmVkQXJnc0NvbnN0cnVjdG9yCitwdWJsaWMgY2xhc3MgUmVkaXNVdGlsIHsKKworICAgIEBHZXR0ZXIKKyAgICBmaW5hbCBTdHJpbmdSZWRpc1RlbXBsYXRlIHJlZGlzVGVtcGxhdGU7CisKKyAgICAvKiogLS0tLS0tLS0tLS0tLS0tLS0tLWtleeebuOWFs+aTjeS9nC0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworCisgICAgLyoqCisgICAgICog5Yig6Zmka2V5CisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5CisgICAgICovCisgICAgcHVibGljIHZvaWQgZGVsZXRlKFN0cmluZyBrZXkpIHsKKyAgICAgICAgcmVkaXNUZW1wbGF0ZS5kZWxldGUoa2V5KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiDmibnph4/liKDpmaRrZXkKKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXlzCisgICAgICovCisgICAgcHVibGljIHZvaWQgZGVsZXRlKENvbGxlY3Rpb248U3RyaW5nPiBrZXlzKSB7CisgICAgICAgIHJlZGlzVGVtcGxhdGUuZGVsZXRlKGtleXMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIOW6j+WIl+WMlmtleQorICAgICAqCisgICAgICogQHBhcmFtIGtleQorICAgICAqIEByZXR1cm4KKyAgICAgKi8KKyAgICBwdWJsaWMgYnl0ZVtdIGR1bXAoU3RyaW5nIGtleSkgeworICAgICAgICByZXR1cm4gcmVkaXNUZW1wbGF0ZS5kdW1wKGtleSk7CisgICAgfQorCisgICAgLyoqCisgICAgICog5piv5ZCm5a2Y5Zyoa2V5CisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5CisgICAgICogQHJldHVybgorICAgICAqLworICAgIHB1YmxpYyBCb29sZWFuIGhhc0tleShTdHJpbmcga2V5KSB7CisgICAgICAgIHJldHVybiByZWRpc1RlbXBsYXRlLmhhc0tleShrZXkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIOiuvue9rui/h+acn+aXtumXtAorICAgICAqCisgICAgICogQHBhcmFtIGtleQorICAgICAqIEBwYXJhbSB0aW1lb3V0CisgICAgICogQHBhcmFtIHVuaXQKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHVibGljIEJvb2xlYW4gZXhwaXJlKFN0cmluZyBrZXksIGxvbmcgdGltZW91dCwgVGltZVVuaXQgdW5pdCkgeworICAgICAgICByZXR1cm4gcmVkaXNUZW1wbGF0ZS5leHBpcmUoa2V5LCB0aW1lb3V0LCB1bml0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiDorr7nva7ov4fmnJ/ml7bpl7QKKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXkKKyAgICAgKiBAcGFyYW0gZGF0ZQorICAgICAqIEByZXR1cm4KKyAgICAgKi8KKyAgICBwdWJsaWMgQm9vbGVhbiBleHBpcmVBdChTdHJpbmcga2V5LCBEYXRlIGRhdGUpIHsKKyAgICAgICAgcmV0dXJuIHJlZGlzVGVtcGxhdGUuZXhwaXJlQXQoa2V5LCBkYXRlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiDmn6Xmib7ljLnphY3nmoRrZXkKKyAgICAgKgorICAgICAqIEBwYXJhbSBwYXR0ZXJuCisgICAgICogQHJldHVybgorICAgICAqLworICAgIHB1YmxpYyBTZXQ8U3RyaW5nPiBrZXlzKFN0cmluZyBwYXR0ZXJuKSB7CisgICAgICAgIHJldHVybiByZWRpc1RlbXBsYXRlLmtleXMocGF0dGVybik7CisgICAgfQorCisgICAgLyoqCisgICAgICog5bCG5b2T5YmN5pWw5o2u5bqT55qEIGtleSDnp7vliqjliLDnu5nlrprnmoTmlbDmja7lupMgZGIg5b2T5LitCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5CisgICAgICogQHBhcmFtIGRiSW5kZXgKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHVibGljIEJvb2xlYW4gbW92ZShTdHJpbmcga2V5LCBpbnQgZGJJbmRleCkgeworICAgICAgICByZXR1cm4gcmVkaXNUZW1wbGF0ZS5tb3ZlKGtleSwgZGJJbmRleCk7CisgICAgfQorCisgICAgLyoqCisgICAgICog56e76ZmkIGtleSDnmoTov4fmnJ/ml7bpl7TvvIxrZXkg5bCG5oyB5LmF5L+d5oyBCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5CisgICAgICogQHJldHVybgorICAgICAqLworICAgIHB1YmxpYyBCb29sZWFuIHBlcnNpc3QoU3RyaW5nIGtleSkgeworICAgICAgICByZXR1cm4gcmVkaXNUZW1wbGF0ZS5wZXJzaXN0KGtleSk7CisgICAgfQorCisgICAgLyoqCisgICAgICog6L+U5ZueIGtleSDnmoTliankvZnnmoTov4fmnJ/ml7bpl7QKKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXkKKyAgICAgKiBAcGFyYW0gdW5pdAorICAgICAqIEByZXR1cm4KKyAgICAgKi8KKyAgICBwdWJsaWMgTG9uZyBnZXRFeHBpcmUoU3RyaW5nIGtleSwgVGltZVVuaXQgdW5pdCkgeworICAgICAgICByZXR1cm4gcmVkaXNUZW1wbGF0ZS5nZXRFeHBpcmUoa2V5LCB1bml0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiDov5Tlm54ga2V5IOeahOWJqeS9meeahOi/h+acn+aXtumXtAorICAgICAqCisgICAgICogQHBhcmFtIGtleQorICAgICAqIEByZXR1cm4KKyAgICAgKi8KKyAgICBwdWJsaWMgTG9uZyBnZXRFeHBpcmUoU3RyaW5nIGtleSkgeworICAgICAgICByZXR1cm4gcmVkaXNUZW1wbGF0ZS5nZXRFeHBpcmUoa2V5KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiDku47lvZPliY3mlbDmja7lupPkuK3pmo/mnLrov5Tlm57kuIDkuKoga2V5CisgICAgICoKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyByYW5kb21LZXkoKSB7CisgICAgICAgIHJldHVybiByZWRpc1RlbXBsYXRlLnJhbmRvbUtleSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIOS/ruaUuSBrZXkg55qE5ZCN56ewCisgICAgICoKKyAgICAgKiBAcGFyYW0gb2xkS2V5CisgICAgICogQHBhcmFtIG5ld0tleQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHJlbmFtZShTdHJpbmcgb2xkS2V5LCBTdHJpbmcgbmV3S2V5KSB7CisgICAgICAgIHJlZGlzVGVtcGxhdGUucmVuYW1lKG9sZEtleSwgbmV3S2V5KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiDku4XlvZMgbmV3a2V5IOS4jeWtmOWcqOaXtu+8jOWwhiBvbGRLZXkg5pS55ZCN5Li6IG5ld2tleQorICAgICAqCisgICAgICogQHBhcmFtIG9sZEtleQorICAgICAqIEBwYXJhbSBuZXdLZXkKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHVibGljIEJvb2xlYW4gcmVuYW1lSWZBYnNlbnQoU3RyaW5nIG9sZEtleSwgU3RyaW5nIG5ld0tleSkgeworICAgICAgICByZXR1cm4gcmVkaXNUZW1wbGF0ZS5yZW5hbWVJZkFic2VudChvbGRLZXksIG5ld0tleSk7CisgICAgfQorCisgICAgLyoqCisgICAgICog6L+U5ZueIGtleSDmiYDlgqjlrZjnmoTlgLznmoTnsbvlnosKKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXkKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHVibGljIERhdGFUeXBlIHR5cGUoU3RyaW5nIGtleSkgeworICAgICAgICByZXR1cm4gcmVkaXNUZW1wbGF0ZS50eXBlKGtleSk7CisgICAgfQorCisgICAgLyoqIC0tLS0tLS0tLS0tLS0tLS0tLS1zdHJpbmfnm7jlhbPmk43kvZwtLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKworICAgIC8qKgorICAgICAqIOiuvue9ruaMh+WumiBrZXkg55qE5YC8CisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5CisgICAgICogQHBhcmFtIHZhbHVlCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0KFN0cmluZyBrZXksIFN0cmluZyB2YWx1ZSkgeworICAgICAgICByZWRpc1RlbXBsYXRlLm9wc0ZvclZhbHVlKCkuc2V0KGtleSwgdmFsdWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIOiOt+WPluaMh+WumiBrZXkg55qE5YC8CisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5CisgICAgICogQHJldHVybgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0KFN0cmluZyBrZXkpIHsKKyAgICAgICAgcmV0dXJuIHJlZGlzVGVtcGxhdGUub3BzRm9yVmFsdWUoKS5nZXQoa2V5KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiDov5Tlm54ga2V5IOS4reWtl+espuS4suWAvOeahOWtkOWtl+espgorICAgICAqCisgICAgICogQHBhcmFtIGtleQorICAgICAqIEBwYXJhbSBzdGFydAorICAgICAqIEBwYXJhbSBlbmQKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRSYW5nZShTdHJpbmcga2V5LCBsb25nIHN0YXJ0LCBsb25nIGVuZCkgeworICAgICAgICByZXR1cm4gcmVkaXNUZW1wbGF0ZS5vcHNGb3JWYWx1ZSgpLmdldChrZXksIHN0YXJ0LCBlbmQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIOWwhue7meWumiBrZXkg55qE5YC86K6+5Li6IHZhbHVlIO+8jOW5tui/lOWbniBrZXkg55qE5pen5YC8KG9sZCB2YWx1ZSkKKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXkKKyAgICAgKiBAcGFyYW0gdmFsdWUKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRBbmRTZXQoU3RyaW5nIGtleSwgU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIHJldHVybiByZWRpc1RlbXBsYXRlLm9wc0ZvclZhbHVlKCkuZ2V0QW5kU2V0KGtleSwgdmFsdWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIOWvuSBrZXkg5omA5YKo5a2Y55qE5a2X56ym5Liy5YC877yM6I635Y+W5oyH5a6a5YGP56e76YeP5LiK55qE5L2NKGJpdCkKKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXkKKyAgICAgKiBAcGFyYW0gb2Zmc2V0CisgICAgICogQHJldHVybgorICAgICAqLworICAgIHB1YmxpYyBCb29sZWFuIGdldEJpdChTdHJpbmcga2V5LCBsb25nIG9mZnNldCkgeworICAgICAgICByZXR1cm4gcmVkaXNUZW1wbGF0ZS5vcHNGb3JWYWx1ZSgpLmdldEJpdChrZXksIG9mZnNldCk7CisgICAgfQorCisgICAgLyoqCisgICAgICog5om56YeP6I635Y+WCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5cworICAgICAqIEByZXR1cm4KKyAgICAgKi8KKyAgICBwdWJsaWMgTGlzdDxTdHJpbmc+IG11bHRpR2V0KENvbGxlY3Rpb248U3RyaW5nPiBrZXlzKSB7CisgICAgICAgIHJldHVybiByZWRpc1RlbXBsYXRlLm9wc0ZvclZhbHVlKCkubXVsdGlHZXQoa2V5cyk7CisgICAgfQorCisgICAgLyoqCisgICAgICog6K6+572uQVNDSUnnoIEsIOWtl+espuS4sidhJ+eahEFTQ0lJ56CB5pivOTcsIOi9rOS4uuS6jOi/m+WItuaYrycwMTEwMDAwMScsIOatpOaWueazleaYr+WwhuS6jOi/m+WItuesrG9mZnNldOS9jeWAvOWPmOS4unZhbHVlCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5CisgICAgICogQHBhcmFtIHBvc3Rpb24g5L2N572uCisgICAgICogQHBhcmFtIHZhbHVlICAg5YC8LHRydWXkuLoxLCBmYWxzZeS4ujAKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gc2V0Qml0KFN0cmluZyBrZXksIGxvbmcgb2Zmc2V0LCBib29sZWFuIHZhbHVlKSB7CisgICAgICAgIHJldHVybiByZWRpc1RlbXBsYXRlLm9wc0ZvclZhbHVlKCkuc2V0Qml0KGtleSwgb2Zmc2V0LCB2YWx1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICog5bCG5YC8IHZhbHVlIOWFs+iBlOWIsCBrZXkg77yM5bm25bCGIGtleSDnmoTov4fmnJ/ml7bpl7Torr7kuLogdGltZW91dAorICAgICAqCisgICAgICogQHBhcmFtIGtleQorICAgICAqIEBwYXJhbSB2YWx1ZQorICAgICAqIEBwYXJhbSB0aW1lb3V0IOi/h+acn+aXtumXtAorICAgICAqIEBwYXJhbSB1bml0ICAgIOaXtumXtOWNleS9jSwg5aSpOlRpbWVVbml0LkRBWVMg5bCP5pe2OlRpbWVVbml0LkhPVVJTIOWIhumSnzpUaW1lVW5pdC5NSU5VVEVTCisgICAgICogICAgICAgICAgICAgICAg56eSOlRpbWVVbml0LlNFQ09ORFMg5q+r56eSOlRpbWVVbml0Lk1JTExJU0VDT05EUworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEV4KFN0cmluZyBrZXksIFN0cmluZyB2YWx1ZSwgbG9uZyB0aW1lb3V0LCBUaW1lVW5pdCB1bml0KSB7CisgICAgICAgIHJlZGlzVGVtcGxhdGUub3BzRm9yVmFsdWUoKS5zZXQoa2V5LCB2YWx1ZSwgdGltZW91dCwgdW5pdCk7CisgICAgfQorCisgICAgLyoqCisgICAgICog5Y+q5pyJ5ZyoIGtleSDkuI3lrZjlnKjml7borr7nva4ga2V5IOeahOWAvAorICAgICAqCisgICAgICogQHBhcmFtIGtleQorICAgICAqIEBwYXJhbSB2YWx1ZQorICAgICAqIEByZXR1cm4g5LmL5YmN5bey57uP5a2Y5Zyo6L+U5ZueZmFsc2UsIOS4jeWtmOWcqOi/lOWbnnRydWUKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBzZXRJZkFic2VudChTdHJpbmcga2V5LCBTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgcmV0dXJuIHJlZGlzVGVtcGxhdGUub3BzRm9yVmFsdWUoKS5zZXRJZkFic2VudChrZXksIHZhbHVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiDnlKggdmFsdWUg5Y+C5pWw6KaG5YaZ57uZ5a6aIGtleSDmiYDlgqjlrZjnmoTlrZfnrKbkuLLlgLzvvIzku47lgY/np7vph48gb2Zmc2V0IOW8gOWniworICAgICAqCisgICAgICogQHBhcmFtIGtleQorICAgICAqIEBwYXJhbSB2YWx1ZQorICAgICAqIEBwYXJhbSBvZmZzZXQg5LuO5oyH5a6a5L2N572u5byA5aeL6KaG5YaZCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0UmFuZ2UoU3RyaW5nIGtleSwgU3RyaW5nIHZhbHVlLCBsb25nIG9mZnNldCkgeworICAgICAgICByZWRpc1RlbXBsYXRlLm9wc0ZvclZhbHVlKCkuc2V0KGtleSwgdmFsdWUsIG9mZnNldCk7CisgICAgfQorCisgICAgLyoqCisgICAgICog6I635Y+W5a2X56ym5Liy55qE6ZW/5bqmCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5CisgICAgICogQHJldHVybgorICAgICAqLworICAgIHB1YmxpYyBMb25nIHNpemUoU3RyaW5nIGtleSkgeworICAgICAgICByZXR1cm4gcmVkaXNUZW1wbGF0ZS5vcHNGb3JWYWx1ZSgpLnNpemUoa2V5KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiDmibnph4/mt7vliqAKKyAgICAgKgorICAgICAqIEBwYXJhbSBtYXBzCisgICAgICovCisgICAgcHVibGljIHZvaWQgbXVsdGlTZXQoTWFwPFN0cmluZywgU3RyaW5nPiBtYXBzKSB7CisgICAgICAgIHJlZGlzVGVtcGxhdGUub3BzRm9yVmFsdWUoKS5tdWx0aVNldChtYXBzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiDlkIzml7borr7nva7kuIDkuKrmiJblpJrkuKoga2V5LXZhbHVlIOWvue+8jOW9k+S4lOS7heW9k+aJgOaciee7meWumiBrZXkg6YO95LiN5a2Y5ZyoCisgICAgICoKKyAgICAgKiBAcGFyYW0gbWFwcworICAgICAqIEByZXR1cm4g5LmL5YmN5bey57uP5a2Y5Zyo6L+U5ZueZmFsc2UsIOS4jeWtmOWcqOi/lOWbnnRydWUKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBtdWx0aVNldElmQWJzZW50KE1hcDxTdHJpbmcsIFN0cmluZz4gbWFwcykgeworICAgICAgICByZXR1cm4gcmVkaXNUZW1wbGF0ZS5vcHNGb3JWYWx1ZSgpLm11bHRpU2V0SWZBYnNlbnQobWFwcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICog5aKe5YqgKOiHquWinumVvyksIOi0n+aVsOWImeS4uuiHquWHjworICAgICAqCisgICAgICogQHBhcmFtIGtleQorICAgICAqIEBwYXJhbSB2YWx1ZQorICAgICAqIEByZXR1cm4KKyAgICAgKi8KKyAgICBwdWJsaWMgTG9uZyBpbmNyQnkoU3RyaW5nIGtleSwgbG9uZyBpbmNyZW1lbnQpIHsKKyAgICAgICAgcmV0dXJuIHJlZGlzVGVtcGxhdGUub3BzRm9yVmFsdWUoKS5pbmNyZW1lbnQoa2V5LCBpbmNyZW1lbnQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBrZXkKKyAgICAgKiBAcGFyYW0gdmFsdWUKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHVibGljIERvdWJsZSBpbmNyQnlGbG9hdChTdHJpbmcga2V5LCBkb3VibGUgaW5jcmVtZW50KSB7CisgICAgICAgIHJldHVybiByZWRpc1RlbXBsYXRlLm9wc0ZvclZhbHVlKCkuaW5jcmVtZW50KGtleSwgaW5jcmVtZW50KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiDov73liqDliLDmnKvlsL4KKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXkKKyAgICAgKiBAcGFyYW0gdmFsdWUKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHVibGljIEludGVnZXIgYXBwZW5kKFN0cmluZyBrZXksIFN0cmluZyB2YWx1ZSkgeworICAgICAgICByZXR1cm4gcmVkaXNUZW1wbGF0ZS5vcHNGb3JWYWx1ZSgpLmFwcGVuZChrZXksIHZhbHVlKTsKKyAgICB9CisKKyAgICAvKiogLS0tLS0tLS0tLS0tLS0tLS0tLWhhc2jnm7jlhbPmk43kvZwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisKKyAgICAvKioKKyAgICAgKiDojrflj5blrZjlgqjlnKjlk4jluIzooajkuK3mjIflrprlrZfmrrXnmoTlgLwKKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXkKKyAgICAgKiBAcGFyYW0gZmllbGQKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBoR2V0KFN0cmluZyBrZXksIFN0cmluZyBmaWVsZCkgeworICAgICAgICByZXR1cm4gcmVkaXNUZW1wbGF0ZS5vcHNGb3JIYXNoKCkuZ2V0KGtleSwgZmllbGQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIOiOt+WPluaJgOaciee7meWumuWtl+auteeahOWAvAorICAgICAqCisgICAgICogQHBhcmFtIGtleQorICAgICAqIEByZXR1cm4KKyAgICAgKi8KKyAgICBwdWJsaWMgTWFwPE9iamVjdCwgT2JqZWN0PiBoR2V0QWxsKFN0cmluZyBrZXkpIHsKKyAgICAgICAgcmV0dXJuIHJlZGlzVGVtcGxhdGUub3BzRm9ySGFzaCgpLmVudHJpZXMoa2V5KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiDojrflj5bmiYDmnInnu5nlrprlrZfmrrXnmoTlgLwKKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXkKKyAgICAgKiBAcGFyYW0gZmllbGRzCisgICAgICogQHJldHVybgorICAgICAqLworICAgIHB1YmxpYyBMaXN0PE9iamVjdD4gaE11bHRpR2V0KFN0cmluZyBrZXksIENvbGxlY3Rpb248T2JqZWN0PiBmaWVsZHMpIHsKKyAgICAgICAgcmV0dXJuIHJlZGlzVGVtcGxhdGUub3BzRm9ySGFzaCgpLm11bHRpR2V0KGtleSwgZmllbGRzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBoUHV0KFN0cmluZyBrZXksIFN0cmluZyBoYXNoS2V5LCBTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgcmVkaXNUZW1wbGF0ZS5vcHNGb3JIYXNoKCkucHV0KGtleSwgaGFzaEtleSwgdmFsdWUpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGhQdXRBbGwoU3RyaW5nIGtleSwgTWFwPFN0cmluZywgU3RyaW5nPiBtYXBzKSB7CisgICAgICAgIHJlZGlzVGVtcGxhdGUub3BzRm9ySGFzaCgpLnB1dEFsbChrZXksIG1hcHMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIOS7heW9k2hhc2hLZXnkuI3lrZjlnKjml7bmiY3orr7nva4KKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXkKKyAgICAgKiBAcGFyYW0gaGFzaEtleQorICAgICAqIEBwYXJhbSB2YWx1ZQorICAgICAqIEByZXR1cm4KKyAgICAgKi8KKyAgICBwdWJsaWMgQm9vbGVhbiBoUHV0SWZBYnNlbnQoU3RyaW5nIGtleSwgU3RyaW5nIGhhc2hLZXksIFN0cmluZyB2YWx1ZSkgeworICAgICAgICByZXR1cm4gcmVkaXNUZW1wbGF0ZS5vcHNGb3JIYXNoKCkucHV0SWZBYnNlbnQoa2V5LCBoYXNoS2V5LCB2YWx1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICog5Yig6Zmk5LiA5Liq5oiW5aSa5Liq5ZOI5biM6KGo5a2X5q61CisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5CisgICAgICogQHBhcmFtIGZpZWxkcworICAgICAqIEByZXR1cm4KKyAgICAgKi8KKyAgICBwdWJsaWMgTG9uZyBoRGVsZXRlKFN0cmluZyBrZXksIE9iamVjdC4uLiBmaWVsZHMpIHsKKyAgICAgICAgcmV0dXJuIHJlZGlzVGVtcGxhdGUub3BzRm9ySGFzaCgpLmRlbGV0ZShrZXksIGZpZWxkcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICog5p+l55yL5ZOI5biM6KGoIGtleSDkuK3vvIzmjIflrprnmoTlrZfmrrXmmK/lkKblrZjlnKgKKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXkKKyAgICAgKiBAcGFyYW0gZmllbGQKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaEV4aXN0cyhTdHJpbmcga2V5LCBTdHJpbmcgZmllbGQpIHsKKyAgICAgICAgcmV0dXJuIHJlZGlzVGVtcGxhdGUub3BzRm9ySGFzaCgpLmhhc0tleShrZXksIGZpZWxkKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiDkuLrlk4jluIzooagga2V5IOS4reeahOaMh+WumuWtl+auteeahOaVtOaVsOWAvOWKoOS4iuWinumHjyBpbmNyZW1lbnQKKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXkKKyAgICAgKiBAcGFyYW0gZmllbGQKKyAgICAgKiBAcGFyYW0gaW5jcmVtZW50CisgICAgICogQHJldHVybgorICAgICAqLworICAgIHB1YmxpYyBMb25nIGhJbmNyQnkoU3RyaW5nIGtleSwgT2JqZWN0IGZpZWxkLCBsb25nIGluY3JlbWVudCkgeworICAgICAgICByZXR1cm4gcmVkaXNUZW1wbGF0ZS5vcHNGb3JIYXNoKCkuaW5jcmVtZW50KGtleSwgZmllbGQsIGluY3JlbWVudCk7CisgICAgfQorCisgICAgLyoqCisgICAgICog5Li65ZOI5biM6KGoIGtleSDkuK3nmoTmjIflrprlrZfmrrXnmoTmlbTmlbDlgLzliqDkuIrlop7ph48gaW5jcmVtZW50CisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5CisgICAgICogQHBhcmFtIGZpZWxkCisgICAgICogQHBhcmFtIGRlbHRhCisgICAgICogQHJldHVybgorICAgICAqLworICAgIHB1YmxpYyBEb3VibGUgaEluY3JCeUZsb2F0KFN0cmluZyBrZXksIE9iamVjdCBmaWVsZCwgZG91YmxlIGRlbHRhKSB7CisgICAgICAgIHJldHVybiByZWRpc1RlbXBsYXRlLm9wc0Zvckhhc2goKS5pbmNyZW1lbnQoa2V5LCBmaWVsZCwgZGVsdGEpOworICAgIH0KKworICAgIC8qKgorICAgICAqIOiOt+WPluaJgOacieWTiOW4jOihqOS4reeahOWtl+autQorICAgICAqCisgICAgICogQHBhcmFtIGtleQorICAgICAqIEByZXR1cm4KKyAgICAgKi8KKyAgICBwdWJsaWMgU2V0PE9iamVjdD4gaEtleXMoU3RyaW5nIGtleSkgeworICAgICAgICByZXR1cm4gcmVkaXNUZW1wbGF0ZS5vcHNGb3JIYXNoKCkua2V5cyhrZXkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIOiOt+WPluWTiOW4jOihqOS4reWtl+auteeahOaVsOmHjworICAgICAqCisgICAgICogQHBhcmFtIGtleQorICAgICAqIEByZXR1cm4KKyAgICAgKi8KKyAgICBwdWJsaWMgTG9uZyBoU2l6ZShTdHJpbmcga2V5KSB7CisgICAgICAgIHJldHVybiByZWRpc1RlbXBsYXRlLm9wc0Zvckhhc2goKS5zaXplKGtleSk7CisgICAgfQorCisgICAgLyoqCisgICAgICog6I635Y+W5ZOI5biM6KGo5Lit5omA5pyJ5YC8CisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5CisgICAgICogQHJldHVybgorICAgICAqLworICAgIHB1YmxpYyBMaXN0PE9iamVjdD4gaFZhbHVlcyhTdHJpbmcga2V5KSB7CisgICAgICAgIHJldHVybiByZWRpc1RlbXBsYXRlLm9wc0Zvckhhc2goKS52YWx1ZXMoa2V5KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiDov63ku6Plk4jluIzooajkuK3nmoTplK7lgLzlr7kKKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXkKKyAgICAgKiBAcGFyYW0gb3B0aW9ucworICAgICAqIEByZXR1cm4KKyAgICAgKi8KKyAgICBwdWJsaWMgQ3Vyc29yPEVudHJ5PE9iamVjdCwgT2JqZWN0Pj4gaFNjYW4oU3RyaW5nIGtleSwgU2Nhbk9wdGlvbnMgb3B0aW9ucykgeworICAgICAgICByZXR1cm4gcmVkaXNUZW1wbGF0ZS5vcHNGb3JIYXNoKCkuc2NhbihrZXksIG9wdGlvbnMpOworICAgIH0KKworICAgIC8qKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1saXN055u45YWz5pON5L2cLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworCisgICAgLyoqCisgICAgICog6YCa6L+H57Si5byV6I635Y+W5YiX6KGo5Lit55qE5YWD57SgCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5CisgICAgICogQHBhcmFtIGluZGV4CisgICAgICogQHJldHVybgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgbEluZGV4KFN0cmluZyBrZXksIGxvbmcgaW5kZXgpIHsKKyAgICAgICAgcmV0dXJuIHJlZGlzVGVtcGxhdGUub3BzRm9yTGlzdCgpLmluZGV4KGtleSwgaW5kZXgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIOiOt+WPluWIl+ihqOaMh+WumuiMg+WbtOWGheeahOWFg+e0oAorICAgICAqCisgICAgICogQHBhcmFtIGtleQorICAgICAqIEBwYXJhbSBzdGFydCDlvIDlp4vkvY3nva4sIDDmmK/lvIDlp4vkvY3nva4KKyAgICAgKiBAcGFyYW0gZW5kICAg57uT5p2f5L2N572uLCAtMei/lOWbnuaJgOaciQorICAgICAqIEByZXR1cm4KKyAgICAgKi8KKyAgICBwdWJsaWMgTGlzdDxTdHJpbmc+IGxSYW5nZShTdHJpbmcga2V5LCBsb25nIHN0YXJ0LCBsb25nIGVuZCkgeworICAgICAgICByZXR1cm4gcmVkaXNUZW1wbGF0ZS5vcHNGb3JMaXN0KCkucmFuZ2Uoa2V5LCBzdGFydCwgZW5kKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiDlrZjlgqjlnKhsaXN05aS06YOoCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5CisgICAgICogQHBhcmFtIHZhbHVlCisgICAgICogQHJldHVybgorICAgICAqLworICAgIHB1YmxpYyBMb25nIGxMZWZ0UHVzaChTdHJpbmcga2V5LCBTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgcmV0dXJuIHJlZGlzVGVtcGxhdGUub3BzRm9yTGlzdCgpLmxlZnRQdXNoKGtleSwgdmFsdWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBrZXkKKyAgICAgKiBAcGFyYW0gdmFsdWUKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHVibGljIExvbmcgbExlZnRQdXNoQWxsKFN0cmluZyBrZXksIFN0cmluZy4uLiB2YWx1ZSkgeworICAgICAgICByZXR1cm4gcmVkaXNUZW1wbGF0ZS5vcHNGb3JMaXN0KCkubGVmdFB1c2hBbGwoa2V5LCB2YWx1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtIGtleQorICAgICAqIEBwYXJhbSB2YWx1ZQorICAgICAqIEByZXR1cm4KKyAgICAgKi8KKyAgICBwdWJsaWMgTG9uZyBsTGVmdFB1c2hBbGwoU3RyaW5nIGtleSwgQ29sbGVjdGlvbjxTdHJpbmc+IHZhbHVlKSB7CisgICAgICAgIHJldHVybiByZWRpc1RlbXBsYXRlLm9wc0Zvckxpc3QoKS5sZWZ0UHVzaEFsbChrZXksIHZhbHVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiDlvZNsaXN05a2Y5Zyo55qE5pe25YCZ5omN5Yqg5YWlCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5CisgICAgICogQHBhcmFtIHZhbHVlCisgICAgICogQHJldHVybgorICAgICAqLworICAgIHB1YmxpYyBMb25nIGxMZWZ0UHVzaElmUHJlc2VudChTdHJpbmcga2V5LCBTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgcmV0dXJuIHJlZGlzVGVtcGxhdGUub3BzRm9yTGlzdCgpLmxlZnRQdXNoSWZQcmVzZW50KGtleSwgdmFsdWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIOWmguaenHBpdm905a2Y5ZyoLOWGjXBpdm905YmN6Z2i5re75YqgCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5CisgICAgICogQHBhcmFtIHBpdm90CisgICAgICogQHBhcmFtIHZhbHVlCisgICAgICogQHJldHVybgorICAgICAqLworICAgIHB1YmxpYyBMb25nIGxMZWZ0UHVzaChTdHJpbmcga2V5LCBTdHJpbmcgcGl2b3QsIFN0cmluZyB2YWx1ZSkgeworICAgICAgICByZXR1cm4gcmVkaXNUZW1wbGF0ZS5vcHNGb3JMaXN0KCkubGVmdFB1c2goa2V5LCBwaXZvdCwgdmFsdWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBrZXkKKyAgICAgKiBAcGFyYW0gdmFsdWUKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHVibGljIExvbmcgbFJpZ2h0UHVzaChTdHJpbmcga2V5LCBTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgcmV0dXJuIHJlZGlzVGVtcGxhdGUub3BzRm9yTGlzdCgpLnJpZ2h0UHVzaChrZXksIHZhbHVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ga2V5CisgICAgICogQHBhcmFtIHZhbHVlCisgICAgICogQHJldHVybgorICAgICAqLworICAgIHB1YmxpYyBMb25nIGxSaWdodFB1c2hBbGwoU3RyaW5nIGtleSwgU3RyaW5nLi4uIHZhbHVlKSB7CisgICAgICAgIHJldHVybiByZWRpc1RlbXBsYXRlLm9wc0Zvckxpc3QoKS5yaWdodFB1c2hBbGwoa2V5LCB2YWx1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtIGtleQorICAgICAqIEBwYXJhbSB2YWx1ZQorICAgICAqIEByZXR1cm4KKyAgICAgKi8KKyAgICBwdWJsaWMgTG9uZyBsUmlnaHRQdXNoQWxsKFN0cmluZyBrZXksIENvbGxlY3Rpb248U3RyaW5nPiB2YWx1ZSkgeworICAgICAgICByZXR1cm4gcmVkaXNUZW1wbGF0ZS5vcHNGb3JMaXN0KCkucmlnaHRQdXNoQWxsKGtleSwgdmFsdWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIOS4uuW3suWtmOWcqOeahOWIl+ihqOa3u+WKoOWAvAorICAgICAqCisgICAgICogQHBhcmFtIGtleQorICAgICAqIEBwYXJhbSB2YWx1ZQorICAgICAqIEByZXR1cm4KKyAgICAgKi8KKyAgICBwdWJsaWMgTG9uZyBsUmlnaHRQdXNoSWZQcmVzZW50KFN0cmluZyBrZXksIFN0cmluZyB2YWx1ZSkgeworICAgICAgICByZXR1cm4gcmVkaXNUZW1wbGF0ZS5vcHNGb3JMaXN0KCkucmlnaHRQdXNoSWZQcmVzZW50KGtleSwgdmFsdWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIOWcqHBpdm905YWD57Sg55qE5Y+z6L655re75Yqg5YC8CisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5CisgICAgICogQHBhcmFtIHBpdm90CisgICAgICogQHBhcmFtIHZhbHVlCisgICAgICogQHJldHVybgorICAgICAqLworICAgIHB1YmxpYyBMb25nIGxSaWdodFB1c2goU3RyaW5nIGtleSwgU3RyaW5nIHBpdm90LCBTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgcmV0dXJuIHJlZGlzVGVtcGxhdGUub3BzRm9yTGlzdCgpLnJpZ2h0UHVzaChrZXksIHBpdm90LCB2YWx1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICog6YCa6L+H57Si5byV6K6+572u5YiX6KGo5YWD57Sg55qE5YC8CisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5CisgICAgICogQHBhcmFtIGluZGV4IOS9jee9rgorICAgICAqIEBwYXJhbSB2YWx1ZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGxTZXQoU3RyaW5nIGtleSwgbG9uZyBpbmRleCwgU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIHJlZGlzVGVtcGxhdGUub3BzRm9yTGlzdCgpLnNldChrZXksIGluZGV4LCB2YWx1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICog56e75Ye65bm26I635Y+W5YiX6KGo55qE56ys5LiA5Liq5YWD57SgCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5CisgICAgICogQHJldHVybiDliKDpmaTnmoTlhYPntKAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGxMZWZ0UG9wKFN0cmluZyBrZXkpIHsKKyAgICAgICAgcmV0dXJuIHJlZGlzVGVtcGxhdGUub3BzRm9yTGlzdCgpLmxlZnRQb3Aoa2V5KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiDnp7vlh7rlubbojrflj5bliJfooajnmoTnrKzkuIDkuKrlhYPntKDvvIwg5aaC5p6c5YiX6KGo5rKh5pyJ5YWD57Sg5Lya6Zi75aGe5YiX6KGo55u05Yiw562J5b6F6LaF5pe25oiW5Y+R546w5Y+v5by55Ye65YWD57Sg5Li65q2iCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5CisgICAgICogQHBhcmFtIHRpbWVvdXQg562J5b6F5pe26Ze0CisgICAgICogQHBhcmFtIHVuaXQgICAg5pe26Ze05Y2V5L2NCisgICAgICogQHJldHVybgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgbEJMZWZ0UG9wKFN0cmluZyBrZXksIGxvbmcgdGltZW91dCwgVGltZVVuaXQgdW5pdCkgeworICAgICAgICByZXR1cm4gcmVkaXNUZW1wbGF0ZS5vcHNGb3JMaXN0KCkubGVmdFBvcChrZXksIHRpbWVvdXQsIHVuaXQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIOenu+mZpOW5tuiOt+WPluWIl+ihqOacgOWQjuS4gOS4quWFg+e0oAorICAgICAqCisgICAgICogQHBhcmFtIGtleQorICAgICAqIEByZXR1cm4g5Yig6Zmk55qE5YWD57SgCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBsUmlnaHRQb3AoU3RyaW5nIGtleSkgeworICAgICAgICByZXR1cm4gcmVkaXNUZW1wbGF0ZS5vcHNGb3JMaXN0KCkucmlnaHRQb3Aoa2V5KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiDnp7vlh7rlubbojrflj5bliJfooajnmoTmnIDlkI7kuIDkuKrlhYPntKDvvIwg5aaC5p6c5YiX6KGo5rKh5pyJ5YWD57Sg5Lya6Zi75aGe5YiX6KGo55u05Yiw562J5b6F6LaF5pe25oiW5Y+R546w5Y+v5by55Ye65YWD57Sg5Li65q2iCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5CisgICAgICogQHBhcmFtIHRpbWVvdXQg562J5b6F5pe26Ze0CisgICAgICogQHBhcmFtIHVuaXQgICAg5pe26Ze05Y2V5L2NCisgICAgICogQHJldHVybgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgbEJSaWdodFBvcChTdHJpbmcga2V5LCBsb25nIHRpbWVvdXQsIFRpbWVVbml0IHVuaXQpIHsKKyAgICAgICAgcmV0dXJuIHJlZGlzVGVtcGxhdGUub3BzRm9yTGlzdCgpLnJpZ2h0UG9wKGtleSwgdGltZW91dCwgdW5pdCk7CisgICAgfQorCisgICAgLyoqCisgICAgICog56e76Zmk5YiX6KGo55qE5pyA5ZCO5LiA5Liq5YWD57Sg77yM5bm25bCG6K+l5YWD57Sg5re75Yqg5Yiw5Y+m5LiA5Liq5YiX6KGo5bm26L+U5ZueCisgICAgICoKKyAgICAgKiBAcGFyYW0gc291cmNlS2V5CisgICAgICogQHBhcmFtIGRlc3RpbmF0aW9uS2V5CisgICAgICogQHJldHVybgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgbFJpZ2h0UG9wQW5kTGVmdFB1c2goU3RyaW5nIHNvdXJjZUtleSwgU3RyaW5nIGRlc3RpbmF0aW9uS2V5KSB7CisgICAgICAgIHJldHVybiByZWRpc1RlbXBsYXRlLm9wc0Zvckxpc3QoKS5yaWdodFBvcEFuZExlZnRQdXNoKHNvdXJjZUtleSwKKyAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbktleSk7CisgICAgfQorCisgICAgLyoqCisgICAgICog5LuO5YiX6KGo5Lit5by55Ye65LiA5Liq5YC877yM5bCG5by55Ye655qE5YWD57Sg5o+S5YWl5Yiw5Y+m5aSW5LiA5Liq5YiX6KGo5Lit5bm26L+U5Zue5a6D77ybIOWmguaenOWIl+ihqOayoeacieWFg+e0oOS8mumYu+WhnuWIl+ihqOebtOWIsOetieW+hei2heaXtuaIluWPkeeOsOWPr+W8ueWHuuWFg+e0oOS4uuatogorICAgICAqCisgICAgICogQHBhcmFtIHNvdXJjZUtleQorICAgICAqIEBwYXJhbSBkZXN0aW5hdGlvbktleQorICAgICAqIEBwYXJhbSB0aW1lb3V0CisgICAgICogQHBhcmFtIHVuaXQKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBsQlJpZ2h0UG9wQW5kTGVmdFB1c2goU3RyaW5nIHNvdXJjZUtleSwgU3RyaW5nIGRlc3RpbmF0aW9uS2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgdGltZW91dCwgVGltZVVuaXQgdW5pdCkgeworICAgICAgICByZXR1cm4gcmVkaXNUZW1wbGF0ZS5vcHNGb3JMaXN0KCkucmlnaHRQb3BBbmRMZWZ0UHVzaChzb3VyY2VLZXksCisgICAgICAgICAgICAgICAgZGVzdGluYXRpb25LZXksIHRpbWVvdXQsIHVuaXQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIOWIoOmZpOmbhuWQiOS4reWAvOetieS6jnZhbHVl5b6X5YWD57SgCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5CisgICAgICogQHBhcmFtIGluZGV4IGluZGV4PTAsIOWIoOmZpOaJgOacieWAvOetieS6jnZhbHVl55qE5YWD57SgOyBpbmRleD4wLCDku47lpLTpg6jlvIDlp4vliKDpmaTnrKzkuIDkuKrlgLznrYnkuo52YWx1ZeeahOWFg+e0oDsKKyAgICAgKiAgICAgICAgICAgICAgaW5kZXg8MCwg5LuO5bC+6YOo5byA5aeL5Yig6Zmk56ys5LiA5Liq5YC8562J5LqOdmFsdWXnmoTlhYPntKA7CisgICAgICogQHBhcmFtIHZhbHVlCisgICAgICogQHJldHVybgorICAgICAqLworICAgIHB1YmxpYyBMb25nIGxSZW1vdmUoU3RyaW5nIGtleSwgbG9uZyBpbmRleCwgU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIHJldHVybiByZWRpc1RlbXBsYXRlLm9wc0Zvckxpc3QoKS5yZW1vdmUoa2V5LCBpbmRleCwgdmFsdWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIOijgeWJqmxpc3QKKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXkKKyAgICAgKiBAcGFyYW0gc3RhcnQKKyAgICAgKiBAcGFyYW0gZW5kCisgICAgICovCisgICAgcHVibGljIHZvaWQgbFRyaW0oU3RyaW5nIGtleSwgbG9uZyBzdGFydCwgbG9uZyBlbmQpIHsKKyAgICAgICAgcmVkaXNUZW1wbGF0ZS5vcHNGb3JMaXN0KCkudHJpbShrZXksIHN0YXJ0LCBlbmQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIOiOt+WPluWIl+ihqOmVv+W6pgorICAgICAqCisgICAgICogQHBhcmFtIGtleQorICAgICAqIEByZXR1cm4KKyAgICAgKi8KKyAgICBwdWJsaWMgTG9uZyBsTGVuKFN0cmluZyBrZXkpIHsKKyAgICAgICAgcmV0dXJuIHJlZGlzVGVtcGxhdGUub3BzRm9yTGlzdCgpLnNpemUoa2V5KTsKKyAgICB9CisKKyAgICAvKiogLS0tLS0tLS0tLS0tLS0tLS0tLS1zZXTnm7jlhbPmk43kvZwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworCisgICAgLyoqCisgICAgICogc2V05re75Yqg5YWD57SgCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5CisgICAgICogQHBhcmFtIHZhbHVlcworICAgICAqIEByZXR1cm4KKyAgICAgKi8KKyAgICBwdWJsaWMgTG9uZyBzQWRkKFN0cmluZyBrZXksIFN0cmluZy4uLiB2YWx1ZXMpIHsKKyAgICAgICAgcmV0dXJuIHJlZGlzVGVtcGxhdGUub3BzRm9yU2V0KCkuYWRkKGtleSwgdmFsdWVzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBzZXTnp7vpmaTlhYPntKAKKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXkKKyAgICAgKiBAcGFyYW0gdmFsdWVzCisgICAgICogQHJldHVybgorICAgICAqLworICAgIHB1YmxpYyBMb25nIHNSZW1vdmUoU3RyaW5nIGtleSwgT2JqZWN0Li4uIHZhbHVlcykgeworICAgICAgICByZXR1cm4gcmVkaXNUZW1wbGF0ZS5vcHNGb3JTZXQoKS5yZW1vdmUoa2V5LCB2YWx1ZXMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIOenu+mZpOW5tui/lOWbnumbhuWQiOeahOS4gOS4qumaj+acuuWFg+e0oAorICAgICAqCisgICAgICogQHBhcmFtIGtleQorICAgICAqIEByZXR1cm4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHNQb3AoU3RyaW5nIGtleSkgeworICAgICAgICByZXR1cm4gcmVkaXNUZW1wbGF0ZS5vcHNGb3JTZXQoKS5wb3Aoa2V5KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiDlsIblhYPntKB2YWx1ZeS7juS4gOS4qumbhuWQiOenu+WIsOWPpuS4gOS4qumbhuWQiAorICAgICAqCisgICAgICogQHBhcmFtIGtleQorICAgICAqIEBwYXJhbSB2YWx1ZQorICAgICAqIEBwYXJhbSBkZXN0S2V5CisgICAgICogQHJldHVybgorICAgICAqLworICAgIHB1YmxpYyBCb29sZWFuIHNNb3ZlKFN0cmluZyBrZXksIFN0cmluZyB2YWx1ZSwgU3RyaW5nIGRlc3RLZXkpIHsKKyAgICAgICAgcmV0dXJuIHJlZGlzVGVtcGxhdGUub3BzRm9yU2V0KCkubW92ZShrZXksIHZhbHVlLCBkZXN0S2V5KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiDojrflj5bpm4blkIjnmoTlpKflsI8KKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXkKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHVibGljIExvbmcgc1NpemUoU3RyaW5nIGtleSkgeworICAgICAgICByZXR1cm4gcmVkaXNUZW1wbGF0ZS5vcHNGb3JTZXQoKS5zaXplKGtleSk7CisgICAgfQorCisgICAgLyoqCisgICAgICog5Yik5pat6ZuG5ZCI5piv5ZCm5YyF5ZCrdmFsdWUKKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXkKKyAgICAgKiBAcGFyYW0gdmFsdWUKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHVibGljIEJvb2xlYW4gc0lzTWVtYmVyKFN0cmluZyBrZXksIE9iamVjdCB2YWx1ZSkgeworICAgICAgICByZXR1cm4gcmVkaXNUZW1wbGF0ZS5vcHNGb3JTZXQoKS5pc01lbWJlcihrZXksIHZhbHVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiDojrflj5bkuKTkuKrpm4blkIjnmoTkuqTpm4YKKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXkKKyAgICAgKiBAcGFyYW0gb3RoZXJLZXkKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHVibGljIFNldDxTdHJpbmc+IHNJbnRlcnNlY3QoU3RyaW5nIGtleSwgU3RyaW5nIG90aGVyS2V5KSB7CisgICAgICAgIHJldHVybiByZWRpc1RlbXBsYXRlLm9wc0ZvclNldCgpLmludGVyc2VjdChrZXksIG90aGVyS2V5KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiDojrflj5ZrZXnpm4blkIjkuI7lpJrkuKrpm4blkIjnmoTkuqTpm4YKKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXkKKyAgICAgKiBAcGFyYW0gb3RoZXJLZXlzCisgICAgICogQHJldHVybgorICAgICAqLworICAgIHB1YmxpYyBTZXQ8U3RyaW5nPiBzSW50ZXJzZWN0KFN0cmluZyBrZXksIENvbGxlY3Rpb248U3RyaW5nPiBvdGhlcktleXMpIHsKKyAgICAgICAgcmV0dXJuIHJlZGlzVGVtcGxhdGUub3BzRm9yU2V0KCkuaW50ZXJzZWN0KGtleSwgb3RoZXJLZXlzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBrZXnpm4blkIjkuI5vdGhlcktleembhuWQiOeahOS6pOmbhuWtmOWCqOWIsGRlc3RLZXnpm4blkIjkuK0KKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXkKKyAgICAgKiBAcGFyYW0gb3RoZXJLZXkKKyAgICAgKiBAcGFyYW0gZGVzdEtleQorICAgICAqIEByZXR1cm4KKyAgICAgKi8KKyAgICBwdWJsaWMgTG9uZyBzSW50ZXJzZWN0QW5kU3RvcmUoU3RyaW5nIGtleSwgU3RyaW5nIG90aGVyS2V5LCBTdHJpbmcgZGVzdEtleSkgeworICAgICAgICByZXR1cm4gcmVkaXNUZW1wbGF0ZS5vcHNGb3JTZXQoKS5pbnRlcnNlY3RBbmRTdG9yZShrZXksIG90aGVyS2V5LAorICAgICAgICAgICAgICAgIGRlc3RLZXkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIGtleembhuWQiOS4juWkmuS4qumbhuWQiOeahOS6pOmbhuWtmOWCqOWIsGRlc3RLZXnpm4blkIjkuK0KKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXkKKyAgICAgKiBAcGFyYW0gb3RoZXJLZXlzCisgICAgICogQHBhcmFtIGRlc3RLZXkKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHVibGljIExvbmcgc0ludGVyc2VjdEFuZFN0b3JlKFN0cmluZyBrZXksIENvbGxlY3Rpb248U3RyaW5nPiBvdGhlcktleXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBkZXN0S2V5KSB7CisgICAgICAgIHJldHVybiByZWRpc1RlbXBsYXRlLm9wc0ZvclNldCgpLmludGVyc2VjdEFuZFN0b3JlKGtleSwgb3RoZXJLZXlzLAorICAgICAgICAgICAgICAgIGRlc3RLZXkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIOiOt+WPluS4pOS4qumbhuWQiOeahOW5tumbhgorICAgICAqCisgICAgICogQHBhcmFtIGtleQorICAgICAqIEBwYXJhbSBvdGhlcktleXMKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHVibGljIFNldDxTdHJpbmc+IHNVbmlvbihTdHJpbmcga2V5LCBTdHJpbmcgb3RoZXJLZXlzKSB7CisgICAgICAgIHJldHVybiByZWRpc1RlbXBsYXRlLm9wc0ZvclNldCgpLnVuaW9uKGtleSwgb3RoZXJLZXlzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiDojrflj5ZrZXnpm4blkIjkuI7lpJrkuKrpm4blkIjnmoTlubbpm4YKKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXkKKyAgICAgKiBAcGFyYW0gb3RoZXJLZXlzCisgICAgICogQHJldHVybgorICAgICAqLworICAgIHB1YmxpYyBTZXQ8U3RyaW5nPiBzVW5pb24oU3RyaW5nIGtleSwgQ29sbGVjdGlvbjxTdHJpbmc+IG90aGVyS2V5cykgeworICAgICAgICByZXR1cm4gcmVkaXNUZW1wbGF0ZS5vcHNGb3JTZXQoKS51bmlvbihrZXksIG90aGVyS2V5cyk7CisgICAgfQorCisgICAgLyoqCisgICAgICoga2V56ZuG5ZCI5LiOb3RoZXJLZXnpm4blkIjnmoTlubbpm4blrZjlgqjliLBkZXN0S2V55LitCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5CisgICAgICogQHBhcmFtIG90aGVyS2V5CisgICAgICogQHBhcmFtIGRlc3RLZXkKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHVibGljIExvbmcgc1VuaW9uQW5kU3RvcmUoU3RyaW5nIGtleSwgU3RyaW5nIG90aGVyS2V5LCBTdHJpbmcgZGVzdEtleSkgeworICAgICAgICByZXR1cm4gcmVkaXNUZW1wbGF0ZS5vcHNGb3JTZXQoKS51bmlvbkFuZFN0b3JlKGtleSwgb3RoZXJLZXksIGRlc3RLZXkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIGtleembhuWQiOS4juWkmuS4qumbhuWQiOeahOW5tumbhuWtmOWCqOWIsGRlc3RLZXnkuK0KKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXkKKyAgICAgKiBAcGFyYW0gb3RoZXJLZXlzCisgICAgICogQHBhcmFtIGRlc3RLZXkKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHVibGljIExvbmcgc1VuaW9uQW5kU3RvcmUoU3RyaW5nIGtleSwgQ29sbGVjdGlvbjxTdHJpbmc+IG90aGVyS2V5cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZGVzdEtleSkgeworICAgICAgICByZXR1cm4gcmVkaXNUZW1wbGF0ZS5vcHNGb3JTZXQoKS51bmlvbkFuZFN0b3JlKGtleSwgb3RoZXJLZXlzLCBkZXN0S2V5KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiDojrflj5bkuKTkuKrpm4blkIjnmoTlt67pm4YKKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXkKKyAgICAgKiBAcGFyYW0gb3RoZXJLZXkKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHVibGljIFNldDxTdHJpbmc+IHNEaWZmZXJlbmNlKFN0cmluZyBrZXksIFN0cmluZyBvdGhlcktleSkgeworICAgICAgICByZXR1cm4gcmVkaXNUZW1wbGF0ZS5vcHNGb3JTZXQoKS5kaWZmZXJlbmNlKGtleSwgb3RoZXJLZXkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIOiOt+WPlmtleembhuWQiOS4juWkmuS4qumbhuWQiOeahOW3rumbhgorICAgICAqCisgICAgICogQHBhcmFtIGtleQorICAgICAqIEBwYXJhbSBvdGhlcktleXMKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHVibGljIFNldDxTdHJpbmc+IHNEaWZmZXJlbmNlKFN0cmluZyBrZXksIENvbGxlY3Rpb248U3RyaW5nPiBvdGhlcktleXMpIHsKKyAgICAgICAgcmV0dXJuIHJlZGlzVGVtcGxhdGUub3BzRm9yU2V0KCkuZGlmZmVyZW5jZShrZXksIG90aGVyS2V5cyk7CisgICAgfQorCisgICAgLyoqCisgICAgICoga2V56ZuG5ZCI5LiOb3RoZXJLZXnpm4blkIjnmoTlt67pm4blrZjlgqjliLBkZXN0S2V55LitCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5CisgICAgICogQHBhcmFtIG90aGVyS2V5CisgICAgICogQHBhcmFtIGRlc3RLZXkKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHVibGljIExvbmcgc0RpZmZlcmVuY2UoU3RyaW5nIGtleSwgU3RyaW5nIG90aGVyS2V5LCBTdHJpbmcgZGVzdEtleSkgeworICAgICAgICByZXR1cm4gcmVkaXNUZW1wbGF0ZS5vcHNGb3JTZXQoKS5kaWZmZXJlbmNlQW5kU3RvcmUoa2V5LCBvdGhlcktleSwKKyAgICAgICAgICAgICAgICBkZXN0S2V5KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBrZXnpm4blkIjkuI7lpJrkuKrpm4blkIjnmoTlt67pm4blrZjlgqjliLBkZXN0S2V55LitCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5CisgICAgICogQHBhcmFtIG90aGVyS2V5cworICAgICAqIEBwYXJhbSBkZXN0S2V5CisgICAgICogQHJldHVybgorICAgICAqLworICAgIHB1YmxpYyBMb25nIHNEaWZmZXJlbmNlKFN0cmluZyBrZXksIENvbGxlY3Rpb248U3RyaW5nPiBvdGhlcktleXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGRlc3RLZXkpIHsKKyAgICAgICAgcmV0dXJuIHJlZGlzVGVtcGxhdGUub3BzRm9yU2V0KCkuZGlmZmVyZW5jZUFuZFN0b3JlKGtleSwgb3RoZXJLZXlzLAorICAgICAgICAgICAgICAgIGRlc3RLZXkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIOiOt+WPlumbhuWQiOaJgOacieWFg+e0oAorICAgICAqCisgICAgICogQHBhcmFtIGtleQorICAgICAqIEBwYXJhbSBvdGhlcktleXMKKyAgICAgKiBAcGFyYW0gZGVzdEtleQorICAgICAqIEByZXR1cm4KKyAgICAgKi8KKyAgICBwdWJsaWMgU2V0PFN0cmluZz4gc2V0TWVtYmVycyhTdHJpbmcga2V5KSB7CisgICAgICAgIHJldHVybiByZWRpc1RlbXBsYXRlLm9wc0ZvclNldCgpLm1lbWJlcnMoa2V5KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiDpmo/mnLrojrflj5bpm4blkIjkuK3nmoTkuIDkuKrlhYPntKAKKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXkKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBzUmFuZG9tTWVtYmVyKFN0cmluZyBrZXkpIHsKKyAgICAgICAgcmV0dXJuIHJlZGlzVGVtcGxhdGUub3BzRm9yU2V0KCkucmFuZG9tTWVtYmVyKGtleSk7CisgICAgfQorCisgICAgLyoqCisgICAgICog6ZqP5py66I635Y+W6ZuG5ZCI5LitY291bnTkuKrlhYPntKAKKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXkKKyAgICAgKiBAcGFyYW0gY291bnQKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHVibGljIExpc3Q8U3RyaW5nPiBzUmFuZG9tTWVtYmVycyhTdHJpbmcga2V5LCBsb25nIGNvdW50KSB7CisgICAgICAgIHJldHVybiByZWRpc1RlbXBsYXRlLm9wc0ZvclNldCgpLnJhbmRvbU1lbWJlcnMoa2V5LCBjb3VudCk7CisgICAgfQorCisgICAgLyoqCisgICAgICog6ZqP5py66I635Y+W6ZuG5ZCI5LitY291bnTkuKrlhYPntKDlubbkuJTljrvpmaTph43lpI3nmoQKKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXkKKyAgICAgKiBAcGFyYW0gY291bnQKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHVibGljIFNldDxTdHJpbmc+IHNEaXN0aW5jdFJhbmRvbU1lbWJlcnMoU3RyaW5nIGtleSwgbG9uZyBjb3VudCkgeworICAgICAgICByZXR1cm4gcmVkaXNUZW1wbGF0ZS5vcHNGb3JTZXQoKS5kaXN0aW5jdFJhbmRvbU1lbWJlcnMoa2V5LCBjb3VudCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtIGtleQorICAgICAqIEBwYXJhbSBvcHRpb25zCisgICAgICogQHJldHVybgorICAgICAqLworICAgIHB1YmxpYyBDdXJzb3I8U3RyaW5nPiBzU2NhbihTdHJpbmcga2V5LCBTY2FuT3B0aW9ucyBvcHRpb25zKSB7CisgICAgICAgIHJldHVybiByZWRpc1RlbXBsYXRlLm9wc0ZvclNldCgpLnNjYW4oa2V5LCBvcHRpb25zKTsKKyAgICB9CisKKyAgICAvKiotLS0tLS0tLS0tLS0tLS0tLS16U2V055u45YWz5pON5L2cLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisgICAgLyoqCisgICAgICog5re75Yqg5YWD57SgLOacieW6j+mbhuWQiOaYr+aMieeFp+WFg+e0oOeahHNjb3Jl5YC855Sx5bCP5Yiw5aSn5o6S5YiXCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5CisgICAgICogQHBhcmFtIHZhbHVlCisgICAgICogQHBhcmFtIHNjb3JlCisgICAgICogQHJldHVybgorICAgICAqLworICAgIHB1YmxpYyBCb29sZWFuIHpBZGQoU3RyaW5nIGtleSwgU3RyaW5nIHZhbHVlLCBkb3VibGUgc2NvcmUpIHsKKyAgICAgICAgcmV0dXJuIHJlZGlzVGVtcGxhdGUub3BzRm9yWlNldCgpLmFkZChrZXksIHZhbHVlLCBzY29yZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtIGtleQorICAgICAqIEBwYXJhbSB2YWx1ZXMKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHVibGljIExvbmcgekFkZChTdHJpbmcga2V5LCBTZXQ8VHlwZWRUdXBsZTxTdHJpbmc+PiB2YWx1ZXMpIHsKKyAgICAgICAgcmV0dXJuIHJlZGlzVGVtcGxhdGUub3BzRm9yWlNldCgpLmFkZChrZXksIHZhbHVlcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtIGtleQorICAgICAqIEBwYXJhbSB2YWx1ZXMKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHVibGljIExvbmcgelJlbW92ZShTdHJpbmcga2V5LCBPYmplY3QuLi4gdmFsdWVzKSB7CisgICAgICAgIHJldHVybiByZWRpc1RlbXBsYXRlLm9wc0ZvclpTZXQoKS5yZW1vdmUoa2V5LCB2YWx1ZXMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIOWinuWKoOWFg+e0oOeahHNjb3Jl5YC877yM5bm26L+U5Zue5aKe5Yqg5ZCO55qE5YC8CisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5CisgICAgICogQHBhcmFtIHZhbHVlCisgICAgICogQHBhcmFtIGRlbHRhCisgICAgICogQHJldHVybgorICAgICAqLworICAgIHB1YmxpYyBEb3VibGUgekluY3JlbWVudFNjb3JlKFN0cmluZyBrZXksIFN0cmluZyB2YWx1ZSwgZG91YmxlIGRlbHRhKSB7CisgICAgICAgIHJldHVybiByZWRpc1RlbXBsYXRlLm9wc0ZvclpTZXQoKS5pbmNyZW1lbnRTY29yZShrZXksIHZhbHVlLCBkZWx0YSk7CisgICAgfQorCisgICAgLyoqCisgICAgICog6L+U5Zue5YWD57Sg5Zyo6ZuG5ZCI55qE5o6S5ZCNLOacieW6j+mbhuWQiOaYr+aMieeFp+WFg+e0oOeahHNjb3Jl5YC855Sx5bCP5Yiw5aSn5o6S5YiXCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5CisgICAgICogQHBhcmFtIHZhbHVlCisgICAgICogQHJldHVybiAw6KGo56S656ys5LiA5L2NCisgICAgICovCisgICAgcHVibGljIExvbmcgelJhbmsoU3RyaW5nIGtleSwgT2JqZWN0IHZhbHVlKSB7CisgICAgICAgIHJldHVybiByZWRpc1RlbXBsYXRlLm9wc0ZvclpTZXQoKS5yYW5rKGtleSwgdmFsdWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIOi/lOWbnuWFg+e0oOWcqOmbhuWQiOeahOaOkuWQjSzmjInlhYPntKDnmoRzY29yZeWAvOeUseWkp+WIsOWwj+aOkuWIlworICAgICAqCisgICAgICogQHBhcmFtIGtleQorICAgICAqIEBwYXJhbSB2YWx1ZQorICAgICAqIEByZXR1cm4KKyAgICAgKi8KKyAgICBwdWJsaWMgTG9uZyB6UmV2ZXJzZVJhbmsoU3RyaW5nIGtleSwgT2JqZWN0IHZhbHVlKSB7CisgICAgICAgIHJldHVybiByZWRpc1RlbXBsYXRlLm9wc0ZvclpTZXQoKS5yZXZlcnNlUmFuayhrZXksIHZhbHVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiDojrflj5bpm4blkIjnmoTlhYPntKAsIOS7juWwj+WIsOWkp+aOkuW6jworICAgICAqCisgICAgICogQHBhcmFtIGtleQorICAgICAqIEBwYXJhbSBzdGFydCDlvIDlp4vkvY3nva4KKyAgICAgKiBAcGFyYW0gZW5kICAg57uT5p2f5L2N572uLCAtMeafpeivouaJgOaciQorICAgICAqIEByZXR1cm4KKyAgICAgKi8KKyAgICBwdWJsaWMgU2V0PFN0cmluZz4gelJhbmdlKFN0cmluZyBrZXksIGxvbmcgc3RhcnQsIGxvbmcgZW5kKSB7CisgICAgICAgIHJldHVybiByZWRpc1RlbXBsYXRlLm9wc0ZvclpTZXQoKS5yYW5nZShrZXksIHN0YXJ0LCBlbmQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIOiOt+WPlumbhuWQiOWFg+e0oCwg5bm25LiU5oqKc2NvcmXlgLzkuZ/ojrflj5YKKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXkKKyAgICAgKiBAcGFyYW0gc3RhcnQKKyAgICAgKiBAcGFyYW0gZW5kCisgICAgICogQHJldHVybgorICAgICAqLworICAgIHB1YmxpYyBTZXQ8VHlwZWRUdXBsZTxTdHJpbmc+PiB6UmFuZ2VXaXRoU2NvcmVzKFN0cmluZyBrZXksIGxvbmcgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBlbmQpIHsKKyAgICAgICAgcmV0dXJuIHJlZGlzVGVtcGxhdGUub3BzRm9yWlNldCgpLnJhbmdlV2l0aFNjb3JlcyhrZXksIHN0YXJ0LCBlbmQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIOagueaNrlNjb3Jl5YC85p+l6K+i6ZuG5ZCI5YWD57SgCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5CisgICAgICogQHBhcmFtIG1pbiDmnIDlsI/lgLwKKyAgICAgKiBAcGFyYW0gbWF4IOacgOWkp+WAvAorICAgICAqIEByZXR1cm4KKyAgICAgKi8KKyAgICBwdWJsaWMgU2V0PFN0cmluZz4gelJhbmdlQnlTY29yZShTdHJpbmcga2V5LCBkb3VibGUgbWluLCBkb3VibGUgbWF4KSB7CisgICAgICAgIHJldHVybiByZWRpc1RlbXBsYXRlLm9wc0ZvclpTZXQoKS5yYW5nZUJ5U2NvcmUoa2V5LCBtaW4sIG1heCk7CisgICAgfQorCisgICAgLyoqCisgICAgICog5qC55o2uU2NvcmXlgLzmn6Xor6Lpm4blkIjlhYPntKAsIOS7juWwj+WIsOWkp+aOkuW6jworICAgICAqCisgICAgICogQHBhcmFtIGtleQorICAgICAqIEBwYXJhbSBtaW4g5pyA5bCP5YC8CisgICAgICogQHBhcmFtIG1heCDmnIDlpKflgLwKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHVibGljIFNldDxUeXBlZFR1cGxlPFN0cmluZz4+IHpSYW5nZUJ5U2NvcmVXaXRoU2NvcmVzKFN0cmluZyBrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSBtaW4sIGRvdWJsZSBtYXgpIHsKKyAgICAgICAgcmV0dXJuIHJlZGlzVGVtcGxhdGUub3BzRm9yWlNldCgpLnJhbmdlQnlTY29yZVdpdGhTY29yZXMoa2V5LCBtaW4sIG1heCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtIGtleQorICAgICAqIEBwYXJhbSBtaW4KKyAgICAgKiBAcGFyYW0gbWF4CisgICAgICogQHBhcmFtIHN0YXJ0CisgICAgICogQHBhcmFtIGVuZAorICAgICAqIEByZXR1cm4KKyAgICAgKi8KKyAgICBwdWJsaWMgU2V0PFR5cGVkVHVwbGU8U3RyaW5nPj4gelJhbmdlQnlTY29yZVdpdGhTY29yZXMoU3RyaW5nIGtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIG1pbiwgZG91YmxlIG1heCwgbG9uZyBzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBlbmQpIHsKKyAgICAgICAgcmV0dXJuIHJlZGlzVGVtcGxhdGUub3BzRm9yWlNldCgpLnJhbmdlQnlTY29yZVdpdGhTY29yZXMoa2V5LCBtaW4sIG1heCwKKyAgICAgICAgICAgICAgICBzdGFydCwgZW5kKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiDojrflj5bpm4blkIjnmoTlhYPntKAsIOS7juWkp+WIsOWwj+aOkuW6jworICAgICAqCisgICAgICogQHBhcmFtIGtleQorICAgICAqIEBwYXJhbSBzdGFydAorICAgICAqIEBwYXJhbSBlbmQKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHVibGljIFNldDxTdHJpbmc+IHpSZXZlcnNlUmFuZ2UoU3RyaW5nIGtleSwgbG9uZyBzdGFydCwgbG9uZyBlbmQpIHsKKyAgICAgICAgcmV0dXJuIHJlZGlzVGVtcGxhdGUub3BzRm9yWlNldCgpLnJldmVyc2VSYW5nZShrZXksIHN0YXJ0LCBlbmQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIOiOt+WPlumbhuWQiOeahOWFg+e0oCwg5LuO5aSn5Yiw5bCP5o6S5bqPLCDlubbov5Tlm55zY29yZeWAvAorICAgICAqCisgICAgICogQHBhcmFtIGtleQorICAgICAqIEBwYXJhbSBzdGFydAorICAgICAqIEBwYXJhbSBlbmQKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHVibGljIFNldDxUeXBlZFR1cGxlPFN0cmluZz4+IHpSZXZlcnNlUmFuZ2VXaXRoU2NvcmVzKFN0cmluZyBrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgc3RhcnQsIGxvbmcgZW5kKSB7CisgICAgICAgIHJldHVybiByZWRpc1RlbXBsYXRlLm9wc0ZvclpTZXQoKS5yZXZlcnNlUmFuZ2VXaXRoU2NvcmVzKGtleSwgc3RhcnQsCisgICAgICAgICAgICAgICAgZW5kKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiDmoLnmja5TY29yZeWAvOafpeivoumbhuWQiOWFg+e0oCwg5LuO5aSn5Yiw5bCP5o6S5bqPCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5CisgICAgICogQHBhcmFtIG1pbgorICAgICAqIEBwYXJhbSBtYXgKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHVibGljIFNldDxTdHJpbmc+IHpSZXZlcnNlUmFuZ2VCeVNjb3JlKFN0cmluZyBrZXksIGRvdWJsZSBtaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSBtYXgpIHsKKyAgICAgICAgcmV0dXJuIHJlZGlzVGVtcGxhdGUub3BzRm9yWlNldCgpLnJldmVyc2VSYW5nZUJ5U2NvcmUoa2V5LCBtaW4sIG1heCk7CisgICAgfQorCisgICAgLyoqCisgICAgICog5qC55o2uU2NvcmXlgLzmn6Xor6Lpm4blkIjlhYPntKAsIOS7juWkp+WIsOWwj+aOkuW6jworICAgICAqCisgICAgICogQHBhcmFtIGtleQorICAgICAqIEBwYXJhbSBtaW4KKyAgICAgKiBAcGFyYW0gbWF4CisgICAgICogQHJldHVybgorICAgICAqLworICAgIHB1YmxpYyBTZXQ8VHlwZWRUdXBsZTxTdHJpbmc+PiB6UmV2ZXJzZVJhbmdlQnlTY29yZVdpdGhTY29yZXMoCisgICAgICAgICAgICBTdHJpbmcga2V5LCBkb3VibGUgbWluLCBkb3VibGUgbWF4KSB7CisgICAgICAgIHJldHVybiByZWRpc1RlbXBsYXRlLm9wc0ZvclpTZXQoKS5yZXZlcnNlUmFuZ2VCeVNjb3JlV2l0aFNjb3JlcyhrZXksCisgICAgICAgICAgICAgICAgbWluLCBtYXgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBrZXkKKyAgICAgKiBAcGFyYW0gbWluCisgICAgICogQHBhcmFtIG1heAorICAgICAqIEBwYXJhbSBzdGFydAorICAgICAqIEBwYXJhbSBlbmQKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHVibGljIFNldDxTdHJpbmc+IHpSZXZlcnNlUmFuZ2VCeVNjb3JlKFN0cmluZyBrZXksIGRvdWJsZSBtaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSBtYXgsIGxvbmcgc3RhcnQsIGxvbmcgZW5kKSB7CisgICAgICAgIHJldHVybiByZWRpc1RlbXBsYXRlLm9wc0ZvclpTZXQoKS5yZXZlcnNlUmFuZ2VCeVNjb3JlKGtleSwgbWluLCBtYXgsCisgICAgICAgICAgICAgICAgc3RhcnQsIGVuZCk7CisgICAgfQorCisgICAgLyoqCisgICAgICog5qC55o2uc2NvcmXlgLzojrflj5bpm4blkIjlhYPntKDmlbDph48KKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXkKKyAgICAgKiBAcGFyYW0gbWluCisgICAgICogQHBhcmFtIG1heAorICAgICAqIEByZXR1cm4KKyAgICAgKi8KKyAgICBwdWJsaWMgTG9uZyB6Q291bnQoU3RyaW5nIGtleSwgZG91YmxlIG1pbiwgZG91YmxlIG1heCkgeworICAgICAgICByZXR1cm4gcmVkaXNUZW1wbGF0ZS5vcHNGb3JaU2V0KCkuY291bnQoa2V5LCBtaW4sIG1heCk7CisgICAgfQorCisgICAgLyoqCisgICAgICog6I635Y+W6ZuG5ZCI5aSn5bCPCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5CisgICAgICogQHJldHVybgorICAgICAqLworICAgIHB1YmxpYyBMb25nIHpTaXplKFN0cmluZyBrZXkpIHsKKyAgICAgICAgcmV0dXJuIHJlZGlzVGVtcGxhdGUub3BzRm9yWlNldCgpLnNpemUoa2V5KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiDojrflj5bpm4blkIjlpKflsI8KKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXkKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHVibGljIExvbmcgelpDYXJkKFN0cmluZyBrZXkpIHsKKyAgICAgICAgcmV0dXJuIHJlZGlzVGVtcGxhdGUub3BzRm9yWlNldCgpLnpDYXJkKGtleSk7CisgICAgfQorCisgICAgLyoqCisgICAgICog6I635Y+W6ZuG5ZCI5LitdmFsdWXlhYPntKDnmoRzY29yZeWAvAorICAgICAqCisgICAgICogQHBhcmFtIGtleQorICAgICAqIEBwYXJhbSB2YWx1ZQorICAgICAqIEByZXR1cm4KKyAgICAgKi8KKyAgICBwdWJsaWMgRG91YmxlIHpTY29yZShTdHJpbmcga2V5LCBPYmplY3QgdmFsdWUpIHsKKyAgICAgICAgcmV0dXJuIHJlZGlzVGVtcGxhdGUub3BzRm9yWlNldCgpLnNjb3JlKGtleSwgdmFsdWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIOenu+mZpOaMh+Wumue0ouW8leS9jee9rueahOaIkOWRmAorICAgICAqCisgICAgICogQHBhcmFtIGtleQorICAgICAqIEBwYXJhbSBzdGFydAorICAgICAqIEBwYXJhbSBlbmQKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHVibGljIExvbmcgelJlbW92ZVJhbmdlKFN0cmluZyBrZXksIGxvbmcgc3RhcnQsIGxvbmcgZW5kKSB7CisgICAgICAgIHJldHVybiByZWRpc1RlbXBsYXRlLm9wc0ZvclpTZXQoKS5yZW1vdmVSYW5nZShrZXksIHN0YXJ0LCBlbmQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIOagueaNruaMh+WumueahHNjb3Jl5YC855qE6IyD5Zu05p2l56e76Zmk5oiQ5ZGYCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5CisgICAgICogQHBhcmFtIG1pbgorICAgICAqIEBwYXJhbSBtYXgKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHVibGljIExvbmcgelJlbW92ZVJhbmdlQnlTY29yZShTdHJpbmcga2V5LCBkb3VibGUgbWluLCBkb3VibGUgbWF4KSB7CisgICAgICAgIHJldHVybiByZWRpc1RlbXBsYXRlLm9wc0ZvclpTZXQoKS5yZW1vdmVSYW5nZUJ5U2NvcmUoa2V5LCBtaW4sIG1heCk7CisgICAgfQorCisgICAgLyoqCisgICAgICog6I635Y+Wa2V55ZKMb3RoZXJLZXnnmoTlubbpm4blubblrZjlgqjlnKhkZXN0S2V55LitCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5CisgICAgICogQHBhcmFtIG90aGVyS2V5CisgICAgICogQHBhcmFtIGRlc3RLZXkKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHVibGljIExvbmcgelVuaW9uQW5kU3RvcmUoU3RyaW5nIGtleSwgU3RyaW5nIG90aGVyS2V5LCBTdHJpbmcgZGVzdEtleSkgeworICAgICAgICByZXR1cm4gcmVkaXNUZW1wbGF0ZS5vcHNGb3JaU2V0KCkudW5pb25BbmRTdG9yZShrZXksIG90aGVyS2V5LCBkZXN0S2V5KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ga2V5CisgICAgICogQHBhcmFtIG90aGVyS2V5cworICAgICAqIEBwYXJhbSBkZXN0S2V5CisgICAgICogQHJldHVybgorICAgICAqLworICAgIHB1YmxpYyBMb25nIHpVbmlvbkFuZFN0b3JlKFN0cmluZyBrZXksIENvbGxlY3Rpb248U3RyaW5nPiBvdGhlcktleXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGRlc3RLZXkpIHsKKyAgICAgICAgcmV0dXJuIHJlZGlzVGVtcGxhdGUub3BzRm9yWlNldCgpCisgICAgICAgICAgICAgICAgLnVuaW9uQW5kU3RvcmUoa2V5LCBvdGhlcktleXMsIGRlc3RLZXkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIOS6pOmbhgorICAgICAqCisgICAgICogQHBhcmFtIGtleQorICAgICAqIEBwYXJhbSBvdGhlcktleQorICAgICAqIEBwYXJhbSBkZXN0S2V5CisgICAgICogQHJldHVybgorICAgICAqLworICAgIHB1YmxpYyBMb25nIHpJbnRlcnNlY3RBbmRTdG9yZShTdHJpbmcga2V5LCBTdHJpbmcgb3RoZXJLZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBkZXN0S2V5KSB7CisgICAgICAgIHJldHVybiByZWRpc1RlbXBsYXRlLm9wc0ZvclpTZXQoKS5pbnRlcnNlY3RBbmRTdG9yZShrZXksIG90aGVyS2V5LAorICAgICAgICAgICAgICAgIGRlc3RLZXkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIOS6pOmbhgorICAgICAqCisgICAgICogQHBhcmFtIGtleQorICAgICAqIEBwYXJhbSBvdGhlcktleXMKKyAgICAgKiBAcGFyYW0gZGVzdEtleQorICAgICAqIEByZXR1cm4KKyAgICAgKi8KKyAgICBwdWJsaWMgTG9uZyB6SW50ZXJzZWN0QW5kU3RvcmUoU3RyaW5nIGtleSwgQ29sbGVjdGlvbjxTdHJpbmc+IG90aGVyS2V5cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGRlc3RLZXkpIHsKKyAgICAgICAgcmV0dXJuIHJlZGlzVGVtcGxhdGUub3BzRm9yWlNldCgpLmludGVyc2VjdEFuZFN0b3JlKGtleSwgb3RoZXJLZXlzLAorICAgICAgICAgICAgICAgIGRlc3RLZXkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBrZXkKKyAgICAgKiBAcGFyYW0gb3B0aW9ucworICAgICAqIEByZXR1cm4KKyAgICAgKi8KKyAgICBwdWJsaWMgQ3Vyc29yPFR5cGVkVHVwbGU8U3RyaW5nPj4gelNjYW4oU3RyaW5nIGtleSwgU2Nhbk9wdGlvbnMgb3B0aW9ucykgeworICAgICAgICByZXR1cm4gcmVkaXNUZW1wbGF0ZS5vcHNGb3JaU2V0KCkuc2NhbihrZXksIG9wdGlvbnMpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9Ub29sL0JUL1N0cmluZ0xpc3RUeXBlSGFuZGxlci5qYXZhIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL1Rvb2wvQlQvU3RyaW5nTGlzdFR5cGVIYW5kbGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDBkNDcyZQotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9Ub29sL0JUL1N0cmluZ0xpc3RUeXBlSGFuZGxlci5qYXZhCkBAIC0wLDAgKzEsNTcgQEAKK3BhY2thZ2UgY29tLnJ1b3lpLndlYi5Ub29sLkJUOworCitpbXBvcnQgb3JnLmFwYWNoZS5pYmF0aXMudHlwZS5CYXNlVHlwZUhhbmRsZXI7CitpbXBvcnQgb3JnLmFwYWNoZS5pYmF0aXMudHlwZS5KZGJjVHlwZTsKKworaW1wb3J0IGphdmEuc3FsLkNhbGxhYmxlU3RhdGVtZW50OworaW1wb3J0IGphdmEuc3FsLlByZXBhcmVkU3RhdGVtZW50OworaW1wb3J0IGphdmEuc3FsLlJlc3VsdFNldDsKK2ltcG9ydCBqYXZhLnNxbC5TUUxFeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOworaW1wb3J0IGphdmEudXRpbC5MaXN0OworCitwdWJsaWMgY2xhc3MgU3RyaW5nTGlzdFR5cGVIYW5kbGVyIGV4dGVuZHMgQmFzZVR5cGVIYW5kbGVyPExpc3Q8U3RyaW5nPj4geworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBERUxJTUlURVIgPSAiLCI7CisKKyAgICBAT3ZlcnJpZGUKKyAgICBwdWJsaWMgdm9pZCBzZXROb25OdWxsUGFyYW1ldGVyKFByZXBhcmVkU3RhdGVtZW50IHBzLCBpbnQgaSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Q8U3RyaW5nPiBwYXJhbWV0ZXIsIEpkYmNUeXBlIGpkYmNUeXBlKQorICAgICAgICAgICAgdGhyb3dzIFNRTEV4Y2VwdGlvbiB7CisgICAgICAgIGlmIChwYXJhbWV0ZXIgPT0gbnVsbCB8fCBwYXJhbWV0ZXIuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICBwcy5zZXRTdHJpbmcoaSwgIiIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcHMuc2V0U3RyaW5nKGksIFN0cmluZy5qb2luKERFTElNSVRFUiwgcGFyYW1ldGVyKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBAT3ZlcnJpZGUKKyAgICBwdWJsaWMgTGlzdDxTdHJpbmc+IGdldE51bGxhYmxlUmVzdWx0KFJlc3VsdFNldCBycywgU3RyaW5nIGNvbHVtbk5hbWUpCisgICAgICAgICAgICB0aHJvd3MgU1FMRXhjZXB0aW9uIHsKKyAgICAgICAgU3RyaW5nIHZhbHVlID0gcnMuZ2V0U3RyaW5nKGNvbHVtbk5hbWUpOworICAgICAgICByZXR1cm4gcGFyc2VTdHJpbmdUb0xpc3QodmFsdWUpOworICAgIH0KKworICAgIEBPdmVycmlkZQorICAgIHB1YmxpYyBMaXN0PFN0cmluZz4gZ2V0TnVsbGFibGVSZXN1bHQoUmVzdWx0U2V0IHJzLCBpbnQgY29sdW1uSW5kZXgpCisgICAgICAgICAgICB0aHJvd3MgU1FMRXhjZXB0aW9uIHsKKyAgICAgICAgU3RyaW5nIHZhbHVlID0gcnMuZ2V0U3RyaW5nKGNvbHVtbkluZGV4KTsKKyAgICAgICAgcmV0dXJuIHBhcnNlU3RyaW5nVG9MaXN0KHZhbHVlKTsKKyAgICB9CisKKyAgICBAT3ZlcnJpZGUKKyAgICBwdWJsaWMgTGlzdDxTdHJpbmc+IGdldE51bGxhYmxlUmVzdWx0KENhbGxhYmxlU3RhdGVtZW50IGNzLCBpbnQgY29sdW1uSW5kZXgpCisgICAgICAgICAgICB0aHJvd3MgU1FMRXhjZXB0aW9uIHsKKyAgICAgICAgU3RyaW5nIHZhbHVlID0gY3MuZ2V0U3RyaW5nKGNvbHVtbkluZGV4KTsKKyAgICAgICAgcmV0dXJuIHBhcnNlU3RyaW5nVG9MaXN0KHZhbHVlKTsKKyAgICB9CisKKyAgICBwcml2YXRlIExpc3Q8U3RyaW5nPiBwYXJzZVN0cmluZ1RvTGlzdChTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgaWYgKHZhbHVlID09IG51bGwgfHwgdmFsdWUuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IEFycmF5TGlzdDw+KCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIEFycmF5cy5hc0xpc3QodmFsdWUuc3BsaXQoREVMSU1JVEVSKSk7CisgICAgfQorfQorCisKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9Ub29sL0JUL1RvcnJlbnRVdGlscy5qYXZhIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL1Rvb2wvQlQvVG9ycmVudFV0aWxzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTQwZDA0NwotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9Ub29sL0JUL1RvcnJlbnRVdGlscy5qYXZhCkBAIC0wLDAgKzEsMjEyIEBACitwYWNrYWdlIGNvbS5ydW95aS53ZWIuVG9vbC5CVDsKKworaW1wb3J0IGNuLmh1dG9vbC5jb3JlLmlvLkZpbGVVdGlsOworaW1wb3J0IGNvbS5kYW1wY2FrZS5iZW5jb2RlLkJlbmNvZGU7CitpbXBvcnQgY29tLmRhbXBjYWtlLmJlbmNvZGUuVHlwZTsKK2ltcG9ydCBjb20ucnVveWkud2ViLmRvbWFpbi5CVC5Ub3JyZW50RHRvOworaW1wb3J0IGNvbS5ydW95aS53ZWIuZG9tYWluLkJULlRvcnJlbnRGaWxlVm87CitpbXBvcnQgbG9tYm9rLmV4dGVybi5zbGY0ai5TbGY0ajsKK2ltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLmJvb3Quc3lzdGVtLkFwcGxpY2F0aW9uSG9tZTsKKworaW1wb3J0IGphdmEuaW8uKjsKK2ltcG9ydCBqYXZhLm5pby5CeXRlQnVmZmVyOworaW1wb3J0IGphdmEuc2VjdXJpdHkuTWVzc2FnZURpZ2VzdDsKK2ltcG9ydCBqYXZhLnNlY3VyaXR5Lk5vU3VjaEFsZ29yaXRobUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKKworLyoqCisgKiBAYXV0aG9yIEpyeAorICovCitAU2xmNGoKK3B1YmxpYyBjbGFzcyBUb3JyZW50VXRpbHMgeworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXJbXSBIRVhfU1lNQk9MUyA9ICIwMTIzNDU2Nzg5QUJDREVGIi50b0NoYXJBcnJheSgpOworCisgICAgLyoqCisgICAgICog5Y+q6I635Y+W56eN5a2QaW5mb+eahGhhc2jlubbov5Tlm54KKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXRhCisgICAgICogQHJldHVybgorICAgICAqIEB0aHJvd3MgTm9TdWNoQWxnb3JpdGhtRXhjZXB0aW9uCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBUb3JyZW50RHRvIGdldFRvcnJlbnRIYXNoKGJ5dGVbXSBkYXRhKSB0aHJvd3MgTm9TdWNoQWxnb3JpdGhtRXhjZXB0aW9uIHsKKyAgICAgICAgQmVuY29kZSBiZW5jb2RlID0gbmV3IEJlbmNvZGUodHJ1ZSk7CisgICAgICAgIE1hcDxTdHJpbmcsIE9iamVjdD4gdG9ycmVudERhdGFNYXAgPSBiZW5jb2RlLmRlY29kZShkYXRhLCBUeXBlLkRJQ1RJT05BUlkpOworICAgICAgICBNYXA8U3RyaW5nLCBPYmplY3Q+IGluZm9NYXAgPSAoTWFwPFN0cmluZywgT2JqZWN0PikgdG9ycmVudERhdGFNYXAuZ2V0KCJpbmZvIik7CisgICAgICAgIExpc3Q8T2JqZWN0PiBmaWxlcyA9IChMaXN0PE9iamVjdD4pIGluZm9NYXAuZ2V0KCJmaWxlcyIpOworICAgICAgICBsb25nIGxlbiA9IDA7CisgICAgICAgIGxvbmcgY291bnQgPSAwOworICAgICAgICBpZiAoZmlsZXMgIT0gbnVsbCkgeworICAgICAgICAgICAgZm9yIChPYmplY3QgbyA6IGZpbGVzKSB7CisgICAgICAgICAgICAgICAgTWFwPFN0cmluZywgT2JqZWN0PiBwYWNlID0gKE1hcDxTdHJpbmcsIE9iamVjdD4pIG87CisgICAgICAgICAgICAgICAgbGVuICs9IChsb25nKSBwYWNlLmdldCgibGVuZ3RoIik7CisgICAgICAgICAgICAgICAgTGlzdDxPYmplY3Q+IHBhdGggPSAoTGlzdDxPYmplY3Q+KSBwYWNlLmdldCgicGF0aCIpOworICAgICAgICAgICAgICAgIGZvciAoT2JqZWN0IHZhbHVlIDogcGF0aCkgeworICAgICAgICAgICAgICAgICAgICBCeXRlQnVmZmVyIG5hbWUgPSAoQnl0ZUJ1ZmZlcikgdmFsdWU7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBzID0gbmV3IFN0cmluZyhuYW1lLmFycmF5KCkpOworICAgICAgICAgICAgICAgICAgICBpZiAocy5jb250YWlucygiLiIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbGVuID0gKGxvbmcpIGluZm9NYXAuZ2V0KCJsZW5ndGgiKTsKKyAgICAgICAgICAgIGNvdW50ID0gMTsKKyAgICAgICAgfQorICAgICAgICBUb3JyZW50RHRvIHRvcnJlbnQgPSBuZXcgVG9ycmVudER0bygpOworICAgICAgICB0b3JyZW50LnNldFVrSW5mb0hhc2goaGFzaChiZW5jb2RlLmVuY29kZShpbmZvTWFwKSkpOworICAgICAgICB0b3JyZW50LnNldFRvcnJlbnRTaXplKGxlbik7CisgICAgICAgIHRvcnJlbnQuc2V0VG9ycmVudENvdW50KGNvdW50KTsKKyAgICAgICAgcmV0dXJuIHRvcnJlbnQ7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBUb3JyZW50RmlsZVZvIGdldFRvcnJlbnRGaWxlKEZpbGUgZmlsZSkgdGhyb3dzIE5vU3VjaEFsZ29yaXRobUV4Y2VwdGlvbiB7CisgICAgICAgIFRvcnJlbnRGaWxlVm8gdG9ycmVudCA9IG5ldyBUb3JyZW50RmlsZVZvKCk7CisgICAgICAgIHRvcnJlbnQuc2V0RmlsbE5hbWUoZmlsZS5nZXROYW1lKCkpOworICAgICAgICBCZW5jb2RlIGJlbmNvZGUgPSBuZXcgQmVuY29kZSh0cnVlKTsKKyAgICAgICAgYnl0ZVtdIGZpbGVCeXRlcyA9IEZpbGVVdGlsLnJlYWRCeXRlcyhmaWxlKTsKKyAgICAgICAgTWFwPFN0cmluZywgT2JqZWN0PiB0b3JyZW50TWFwID0gYmVuY29kZS5kZWNvZGUoZmlsZUJ5dGVzLCBUeXBlLkRJQ1RJT05BUlkpOworICAgICAgICBCeXRlQnVmZmVyIGFubm91bmNlQnl0ZUJ1ZmZlciA9IChCeXRlQnVmZmVyKSB0b3JyZW50TWFwLmdldCgiYW5ub3VuY2UiKTsKKyAgICAgICAgdG9ycmVudC5zZXRBbm5vdW5jZShuZXcgU3RyaW5nKGFubm91bmNlQnl0ZUJ1ZmZlci5hcnJheSgpKSk7CisgICAgICAgIE1hcDxTdHJpbmcsIE9iamVjdD4gaW5mb01hcCA9IChNYXA8U3RyaW5nLCBPYmplY3Q+KSB0b3JyZW50TWFwLmdldCgiaW5mbyIpOworICAgICAgICAvLyBpbmZvCisgICAgICAgIExpc3Q8T2JqZWN0PiBmaWxlcyA9IChMaXN0PE9iamVjdD4pIGluZm9NYXAuZ2V0KCJmaWxlcyIpOworICAgICAgICAvLyBoYXNoCisgICAgICAgIHRvcnJlbnQuc2V0SGFzaChoYXNoKGJlbmNvZGUuZW5jb2RlKGluZm9NYXApKSk7CisgICAgICAgIC8vIGxlbmd0aAorICAgICAgICBsb25nIGxlbiA9IDA7CisgICAgICAgIGlmIChmaWxlcyAhPSBudWxsKSB7CisgICAgICAgICAgICBmb3IgKE9iamVjdCBvIDogZmlsZXMpIHsKKyAgICAgICAgICAgICAgICBNYXA8U3RyaW5nLCBPYmplY3Q+IHBhY2UgPSAoTWFwPFN0cmluZywgT2JqZWN0PikgbzsKKyAgICAgICAgICAgICAgICBsZW4gKz0gKGxvbmcpIHBhY2UuZ2V0KCJsZW5ndGgiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxlbiA9IChsb25nKSBpbmZvTWFwLmdldCgibGVuZ3RoIik7CisgICAgICAgIH0KKyAgICAgICAgdG9ycmVudC5zZXRMZW5ndGgobGVuKTsKKyAgICAgICAgcmV0dXJuIHRvcnJlbnQ7CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBoYXNoCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF0YQorICAgICAqIEByZXR1cm4KKyAgICAgKiBAdGhyb3dzIE5vU3VjaEFsZ29yaXRobUV4Y2VwdGlvbgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYnl0ZVtdIGhhc2goYnl0ZVtdIGRhdGEpIHRocm93cyBOb1N1Y2hBbGdvcml0aG1FeGNlcHRpb24geworICAgICAgICBNZXNzYWdlRGlnZXN0IGNyeXB0OworICAgICAgICBjcnlwdCA9IE1lc3NhZ2VEaWdlc3QuZ2V0SW5zdGFuY2UoIlNIQS0xIik7CisgICAgICAgIGNyeXB0LnJlc2V0KCk7CisgICAgICAgIGNyeXB0LnVwZGF0ZShkYXRhKTsKKyAgICAgICAgcmV0dXJuIGNyeXB0LmRpZ2VzdCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIOiOt+WPlum7mOiupOenjeWtkOebruW9lTogamFy5omA5Zyo55uu5b2VL3RvcnJlbnQKKyAgICAgKgorICAgICAqIEByZXR1cm4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXREZWZhdWx0RGlyKCkgeworICAgICAgICBBcHBsaWNhdGlvbkhvbWUgaG9tZSA9IG5ldyBBcHBsaWNhdGlvbkhvbWUoKTsKKyAgICAgICAgcmV0dXJuIGhvbWUuZ2V0RGlyKCkuZ2V0QWJzb2x1dGVQYXRoKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICog6I635Y+W6buY6K6k56eN5a2Q55uu5b2VOiBqYXLmiYDlnKjnm67lvZUvdG9ycmVudAorICAgICAqCisgICAgICogQHJldHVybgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldERlZmF1bHRUb3JyZW50RGlyKCkgeworICAgICAgICByZXR1cm4gZ2V0RGVmYXVsdERpcigpICsgIi90b3JyZW50LyI7CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiDnlJ/miJDnp43lrZDmlofku7YKKyAgICAgKiB7QGNvZGUgQGF1dGhvcn0gSmlhCisgICAgICoge0Bjb2RlIEBkYXRlfSAyMDI1LzUvMjcgMTc6MjAKKyAgICAgKi8KKworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgZW5jb2RlT2JqZWN0KE9iamVjdCBvLCBPdXRwdXRTdHJlYW0gb3V0KSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBpZiAobyBpbnN0YW5jZW9mIFN0cmluZykKKyAgICAgICAgICAgIGVuY29kZVN0cmluZygoU3RyaW5nKSBvLCBvdXQpOworICAgICAgICBlbHNlIGlmIChvIGluc3RhbmNlb2YgTWFwKQorICAgICAgICAgICAgZW5jb2RlTWFwKChNYXApIG8sIG91dCk7CisgICAgICAgIGVsc2UgaWYgKG8gaW5zdGFuY2VvZiBieXRlW10pCisgICAgICAgICAgICBlbmNvZGVCeXRlcygoYnl0ZVtdKSBvLCBvdXQpOworICAgICAgICBlbHNlIGlmIChvIGluc3RhbmNlb2YgTnVtYmVyKQorICAgICAgICAgICAgZW5jb2RlTG9uZygoKE51bWJlcikgbykubG9uZ1ZhbHVlKCksIG91dCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5lbmNvZGFibGUgdHlwZSIpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgZW5jb2RlTG9uZyhsb25nIHZhbHVlLCBPdXRwdXRTdHJlYW0gb3V0KSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBvdXQud3JpdGUoJ2knKTsKKyAgICAgICAgb3V0LndyaXRlKExvbmcudG9TdHJpbmcodmFsdWUpLmdldEJ5dGVzKCJVUy1BU0NJSSIpKTsKKyAgICAgICAgb3V0LndyaXRlKCdlJyk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBlbmNvZGVCeXRlcyhieXRlW10gYnl0ZXMsIE91dHB1dFN0cmVhbSBvdXQpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIG91dC53cml0ZShJbnRlZ2VyLnRvU3RyaW5nKGJ5dGVzLmxlbmd0aCkuZ2V0Qnl0ZXMoIlVTLUFTQ0lJIikpOworICAgICAgICBvdXQud3JpdGUoJzonKTsKKyAgICAgICAgb3V0LndyaXRlKGJ5dGVzKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIGVuY29kZVN0cmluZyhTdHJpbmcgc3RyLCBPdXRwdXRTdHJlYW0gb3V0KSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBlbmNvZGVCeXRlcyhzdHIuZ2V0Qnl0ZXMoIlVURi04IiksIG91dCk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBlbmNvZGVNYXAoTWFwPFN0cmluZywgT2JqZWN0PiBtYXAsIE91dHB1dFN0cmVhbSBvdXQpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIC8vIFNvcnQgdGhlIG1hcC4gQSBnZW5lcmljIGVuY29kZXIgc2hvdWxkIHNvcnQgYnkga2V5IGJ5dGVzCisgICAgICAgIFNvcnRlZE1hcDxTdHJpbmcsIE9iamVjdD4gc29ydGVkTWFwID0gbmV3IFRyZWVNYXA8U3RyaW5nLCBPYmplY3Q+KG1hcCk7CisgICAgICAgIG91dC53cml0ZSgnZCcpOworICAgICAgICBmb3IgKE1hcC5FbnRyeTxTdHJpbmcsIE9iamVjdD4gZSA6IHNvcnRlZE1hcC5lbnRyeVNldCgpKSB7CisgICAgICAgICAgICBlbmNvZGVTdHJpbmcoZS5nZXRLZXkoKSwgb3V0KTsKKyAgICAgICAgICAgIGVuY29kZU9iamVjdChlLmdldFZhbHVlKCksIG91dCk7CisgICAgICAgIH0KKyAgICAgICAgb3V0LndyaXRlKCdlJyk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgYnl0ZVtdIGhhc2hQaWVjZXMoRmlsZSBmaWxlLCBpbnQgcGllY2VMZW5ndGgpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIE1lc3NhZ2VEaWdlc3Qgc2hhMTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHNoYTEgPSBNZXNzYWdlRGlnZXN0LmdldEluc3RhbmNlKCJTSEEiKTsKKyAgICAgICAgfSBjYXRjaCAoTm9TdWNoQWxnb3JpdGhtRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiU0hBMSBub3Qgc3VwcG9ydGVkIik7CisgICAgICAgIH0KKyAgICAgICAgSW5wdXRTdHJlYW0gaW4gPSBuZXcgRmlsZUlucHV0U3RyZWFtKGZpbGUpOworICAgICAgICBCeXRlQXJyYXlPdXRwdXRTdHJlYW0gcGllY2VzID0gbmV3IEJ5dGVBcnJheU91dHB1dFN0cmVhbSgpOworICAgICAgICBieXRlW10gYnl0ZXMgPSBuZXcgYnl0ZVtwaWVjZUxlbmd0aF07CisgICAgICAgIGludCBwaWVjZUJ5dGVDb3VudCA9IDAsIHJlYWRDb3VudCA9IGluLnJlYWQoYnl0ZXMsIDAsIHBpZWNlTGVuZ3RoKTsKKyAgICAgICAgd2hpbGUgKHJlYWRDb3VudCAhPSAtMSkgeworICAgICAgICAgICAgcGllY2VCeXRlQ291bnQgKz0gcmVhZENvdW50OworICAgICAgICAgICAgc2hhMS51cGRhdGUoYnl0ZXMsIDAsIHJlYWRDb3VudCk7CisgICAgICAgICAgICBpZiAocGllY2VCeXRlQ291bnQgPT0gcGllY2VMZW5ndGgpIHsKKyAgICAgICAgICAgICAgICBwaWVjZUJ5dGVDb3VudCA9IDA7CisgICAgICAgICAgICAgICAgcGllY2VzLndyaXRlKHNoYTEuZGlnZXN0KCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmVhZENvdW50ID0gaW4ucmVhZChieXRlcywgMCwgcGllY2VMZW5ndGggLSBwaWVjZUJ5dGVDb3VudCk7CisgICAgICAgIH0KKyAgICAgICAgaW4uY2xvc2UoKTsKKyAgICAgICAgaWYgKHBpZWNlQnl0ZUNvdW50ID4gMCkKKyAgICAgICAgICAgIHBpZWNlcy53cml0ZShzaGExLmRpZ2VzdCgpKTsKKyAgICAgICAgcmV0dXJuIHBpZWNlcy50b0J5dGVBcnJheSgpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBjcmVhdGVUb3JyZW50KEZpbGUgZmlsZSwgRmlsZSBzaGFyZWRGaWxlLCBTdHJpbmcgYW5ub3VuY2VVUkwpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGZpbmFsIGludCBwaWVjZUxlbmd0aCA9IDUxMiAqIDEwMjQ7CisgICAgICAgIE1hcDxTdHJpbmcsIE9iamVjdD4gaW5mbyA9IG5ldyBIYXNoTWFwPD4oKTsKKyAgICAgICAgaW5mby5wdXQoIm5hbWUiLCBzaGFyZWRGaWxlLmdldE5hbWUoKSk7CisgICAgICAgIGluZm8ucHV0KCJsZW5ndGgiLCBzaGFyZWRGaWxlLmxlbmd0aCgpKTsKKyAgICAgICAgaW5mby5wdXQoInBpZWNlIGxlbmd0aCIsIHBpZWNlTGVuZ3RoKTsKKyAgICAgICAgaW5mby5wdXQoInBpZWNlcyIsIGhhc2hQaWVjZXMoc2hhcmVkRmlsZSwgcGllY2VMZW5ndGgpKTsKKyAgICAgICAgTWFwPFN0cmluZywgT2JqZWN0PiBtZXRhaW5mbyA9IG5ldyBIYXNoTWFwPFN0cmluZywgT2JqZWN0PigpOworICAgICAgICBtZXRhaW5mby5wdXQoImFubm91bmNlIiwgYW5ub3VuY2VVUkwpOworICAgICAgICBtZXRhaW5mby5wdXQoImluZm8iLCBpbmZvKTsKKyAgICAgICAgT3V0cHV0U3RyZWFtIG91dCA9IG5ldyBGaWxlT3V0cHV0U3RyZWFtKGZpbGUpOworICAgICAgICBlbmNvZGVNYXAobWV0YWluZm8sIG91dCk7CisgICAgICAgIG91dC5jbG9zZSgpOworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2NvbnRyb2xsZXIvQlQvVGFnQ29udHJvbGxlci5qYXZhIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2NvbnRyb2xsZXIvQlQvVGFnQ29udHJvbGxlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjZWRkNWQKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvY29udHJvbGxlci9CVC9UYWdDb250cm9sbGVyLmphdmEKQEAgLTAsMCArMSw0NCBAQAorcGFja2FnZSBjb20ucnVveWkud2ViLmNvbnRyb2xsZXIuQlQ7CisKK2ltcG9ydCBjb20ucnVveWkud2ViLlNlcnZlci5zeXMuVXNlclNlcnZpY2U7CitpbXBvcnQgY29tLnJ1b3lpLndlYi5jb250cm9sbGVyLmNvbW1vbi5Db25zdGFudHM7CitpbXBvcnQgY29tLnJ1b3lpLndlYi5jb250cm9sbGVyLmNvbW1vbi5iYXNlLlJlc3VsdDsKK2ltcG9ydCBjb20ucnVveWkud2ViLmRhby5CVC5UYWdEYW87CitpbXBvcnQgY29tLnJ1b3lpLndlYi5kb21haW4uQlQuVGFnQ2F0RW50aXR5OworaW1wb3J0IGNvbS5ydW95aS53ZWIuZG9tYWluLkJULlRhZ0VudGl0eTsKK2ltcG9ydCBpby5zd2FnZ2VyLnYzLm9hcy5hbm5vdGF0aW9ucy5PcGVyYXRpb247CitpbXBvcnQgaW8uc3dhZ2dlci52My5vYXMuYW5ub3RhdGlvbnMudGFncy5UYWc7CitpbXBvcnQgbG9tYm9rLlJlcXVpcmVkQXJnc0NvbnN0cnVjdG9yOworaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsudmFsaWRhdGlvbi5hbm5vdGF0aW9uLlZhbGlkYXRlZDsKK2ltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLndlYi5iaW5kLmFubm90YXRpb24uR2V0TWFwcGluZzsKK2ltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLndlYi5iaW5kLmFubm90YXRpb24uUmVxdWVzdE1hcHBpbmc7CitpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay53ZWIuYmluZC5hbm5vdGF0aW9uLlJlc3RDb250cm9sbGVyOworCitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CisKKworQFJlc3RDb250cm9sbGVyCitAVGFnKG5hbWUgPSAi56eN5a2Q5qCH562+55u45YWzIiwgZGVzY3JpcHRpb24gPSBDb25zdGFudHMuRmluaXNoU3RhdHVzLlVORklOSVNIRUQpCitAUmVxdWlyZWRBcmdzQ29uc3RydWN0b3IKK0BSZXF1ZXN0TWFwcGluZygiL3RhZyIpCitAVmFsaWRhdGVkCitwdWJsaWMgY2xhc3MgVGFnQ29udHJvbGxlciB7CisKKyAgICBwcml2YXRlIGZpbmFsIFRhZ0RhbyB0YWdEYW87CisgICAgcHJpdmF0ZSBmaW5hbCBVc2VyU2VydmljZSB1c2VyU2VydmljZTsKKworCisgICAgQE9wZXJhdGlvbihzdW1tYXJ5ID0gIuaJgOacieagh+etviIsIGRlc2NyaXB0aW9uID0gIui/lOWbnuaJgOacieagh+etvu+8jOiHquaJk+S4iueahOagh+etviIpCisgICAgQEdldE1hcHBpbmcoIi9hbGxfdGFnIikKKyAgICBwdWJsaWMgUmVzdWx0IGFsbFRhZygpIHsKKyAgICAgICAgTGlzdDxUYWdFbnRpdHk+IHRhZ3MgPSB0YWdEYW8uYWxsX3RhZygpOworICAgICAgICByZXR1cm4gUmVzdWx0Lm9rKHRhZ3MpOworICAgIH0KKworICAgIEBPcGVyYXRpb24oc3VtbWFyeSA9ICLmiYDmnInliIbnsbsiLCBkZXNjcmlwdGlvbiA9ICLov5Tlm57miYDmnInliIbnsbss55S15b2x5LmL57G755qEIikKKyAgICBAR2V0TWFwcGluZygiL2FsbF9jYXQiKQorICAgIHB1YmxpYyBSZXN1bHQgYWxsQ2F0KCkgeworICAgICAgICBMaXN0PFRhZ0NhdEVudGl0eT4gdGFncyA9IHRhZ0Rhby5hbGxfY2F0KCk7CisgICAgICAgIHJldHVybiBSZXN1bHQub2sodGFncyk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2NvbnRyb2xsZXIvQlQvVG9ycmVudENvbnRyb2xsZXIuamF2YSBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9jb250cm9sbGVyL0JUL1RvcnJlbnRDb250cm9sbGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2E4NGNkNQotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9jb250cm9sbGVyL0JUL1RvcnJlbnRDb250cm9sbGVyLmphdmEKQEAgLTAsMCArMSwzNDEgQEAKK3BhY2thZ2UgY29tLnJ1b3lpLndlYi5jb250cm9sbGVyLkJUOworCitpbXBvcnQgY24uZGV2MzMuc2F0b2tlbi5hbm5vdGF0aW9uLlNhSWdub3JlOworaW1wb3J0IGNvbS5naXRodWIucGFnZWhlbHBlci5QYWdlSW5mbzsKK2ltcG9ydCBjb20ucnVveWkud2ViLlNlcnZlci5CVC5Ub3JyZW50Q29tbWVudFNlcnZpY2U7CitpbXBvcnQgY29tLnJ1b3lpLndlYi5TZXJ2ZXIuQlQuVG9ycmVudFNlcnZpY2U7CitpbXBvcnQgY29tLnJ1b3lpLndlYi5TZXJ2ZXIuQlQuVHJhY2tlclVSTFNlcnZpY2U7CitpbXBvcnQgY29tLnJ1b3lpLndlYi5jb250cm9sbGVyLmNvbW1vbi5Db21tb25SZXN1bHRTdGF0dXM7CitpbXBvcnQgY29tLnJ1b3lpLndlYi5jb250cm9sbGVyLmNvbW1vbi5Db25zdGFudHM7CitpbXBvcnQgY29tLnJ1b3lpLndlYi5jb250cm9sbGVyLmNvbW1vbi5iYXNlLkkxOG5NZXNzYWdlOworaW1wb3J0IGNvbS5ydW95aS53ZWIuY29udHJvbGxlci5jb21tb24uYmFzZS5QYWdlVXRpbDsKK2ltcG9ydCBjb20ucnVveWkud2ViLmNvbnRyb2xsZXIuY29tbW9uLmJhc2UuUmVzdWx0OworaW1wb3J0IGNvbS5ydW95aS53ZWIuY29udHJvbGxlci5jb21tb24uZXhjZXB0aW9uLlJvY2tldFBURXhjZXB0aW9uOworaW1wb3J0IGNvbS5ydW95aS53ZWIuZGFvLkJULlN1Z2dlc3REYW87CitpbXBvcnQgY29tLnJ1b3lpLndlYi5kb21haW4uQlQuKjsKK2ltcG9ydCBjb20ucnVveWkud2ViLlNlcnZlci5zeXMuVXNlclNlcnZpY2U7CisKK2ltcG9ydCBpby5zd2FnZ2VyLnYzLm9hcy5hbm5vdGF0aW9ucy5PcGVyYXRpb247CitpbXBvcnQgaW8uc3dhZ2dlci52My5vYXMuYW5ub3RhdGlvbnMuUGFyYW1ldGVyOworaW1wb3J0IGlvLnN3YWdnZXIudjMub2FzLmFubm90YXRpb25zLmVudW1zLlBhcmFtZXRlckluOworaW1wb3J0IGlvLnN3YWdnZXIudjMub2FzLmFubm90YXRpb25zLm1lZGlhLkNvbnRlbnQ7CitpbXBvcnQgaW8uc3dhZ2dlci52My5vYXMuYW5ub3RhdGlvbnMubWVkaWEuU2NoZW1hOworaW1wb3J0IGlvLnN3YWdnZXIudjMub2FzLmFubm90YXRpb25zLnJlc3BvbnNlcy5BcGlSZXNwb25zZTsKK2ltcG9ydCBpby5zd2FnZ2VyLnYzLm9hcy5hbm5vdGF0aW9ucy50YWdzLlRhZzsKK2ltcG9ydCBqYWthcnRhLnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3Q7CitpbXBvcnQgamFrYXJ0YS5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZTsKK2ltcG9ydCBqYWthcnRhLnZhbGlkYXRpb24uVmFsaWQ7CitpbXBvcnQgamFrYXJ0YS52YWxpZGF0aW9uLmNvbnN0cmFpbnRzLlBvc2l0aXZlOworaW1wb3J0IGxvbWJvay5SZXF1aXJlZEFyZ3NDb25zdHJ1Y3RvcjsKK2ltcG9ydCBsb21ib2suU25lYWt5VGhyb3dzOworaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5sYW5nMy5TdHJpbmdVdGlsczsKK2ltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLmh0dHAuSHR0cEhlYWRlcnM7CitpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay5odHRwLk1lZGlhVHlwZTsKK2ltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLmh0dHAuUmVzcG9uc2VFbnRpdHk7CitpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay52YWxpZGF0aW9uLmFubm90YXRpb24uVmFsaWRhdGVkOworaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsud2ViLmJpbmQuYW5ub3RhdGlvbi4qOworaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsud2ViLm11bHRpcGFydC5NdWx0aXBhcnRGaWxlOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS5uZXQuVVJMRW5jb2RlcjsKK2ltcG9ydCBqYXZhLm5pby5jaGFyc2V0LlN0YW5kYXJkQ2hhcnNldHM7CitpbXBvcnQgamF2YS50aW1lLkxvY2FsRGF0ZVRpbWU7CitpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKKworCisvKioKKyAqIEBhdXRob3IgSnJ4CisgKi8KK0BSZXN0Q29udHJvbGxlcgorQFRhZyhuYW1lID0gInRvcnJlbnTnp43lrZDnm7jlhbMiLCBkZXNjcmlwdGlvbiA9IENvbnN0YW50cy5GaW5pc2hTdGF0dXMuRklOSVNIRUQpCitAUmVxdWlyZWRBcmdzQ29uc3RydWN0b3IKK0BSZXF1ZXN0TWFwcGluZygiL3RvcnJlbnQiKQorQFZhbGlkYXRlZAorcHVibGljIGNsYXNzIFRvcnJlbnRDb250cm9sbGVyIHsKKworICAgIHByaXZhdGUgZmluYWwgVG9ycmVudFNlcnZpY2UgdG9ycmVudFNlcnZpY2U7CisgICAgcHJpdmF0ZSBmaW5hbCBUcmFja2VyVVJMU2VydmljZSB0cmFja2VyVVJMU2VydmljZTsKKyAgICBwcml2YXRlIGZpbmFsIFN1Z2dlc3REYW8gc3VnZ2VzdERhbzsKKyAgICBwcml2YXRlIGZpbmFsIFVzZXJTZXJ2aWNlIHVzZXJTZXJ2aWNlOworICAgIHByaXZhdGUgZmluYWwgVG9ycmVudENvbW1lbnRTZXJ2aWNlIHRvcnJlbnRDb21tZW50U2VydmljZTsKKworICAgIC8qKgorICAgICAqIOenjeWtkOWIl+ihqOafpeivogorICAgICAqLworICAgIAorICAgIEBPcGVyYXRpb24oc3VtbWFyeSA9ICLnp43lrZDliJfooajmn6Xor6IiLCBkZXNjcmlwdGlvbiA9ICLnp43lrZDliJfooajmnaHku7bmn6Xor6It5YiG6aG1LeaOkuW6jyIpCisgICAgQEFwaVJlc3BvbnNlKHJlc3BvbnNlQ29kZSA9ICIwIiwgZGVzY3JpcHRpb24gPSAi5pON5L2c5oiQ5YqfIiwKKyAgICAgICAgICAgIGNvbnRlbnQgPSB7QENvbnRlbnQobWVkaWFUeXBlID0gImFwcGxpY2F0aW9uL2pzb24iLAorICAgICAgICAgICAgICAgICAgICBzY2hlbWEgPSBAU2NoZW1hKGltcGxlbWVudGF0aW9uID0gVG9ycmVudFZPLmNsYXNzKSkKKyAgICAgICAgICAgIH0pCisgICAgQFBvc3RNYXBwaW5nKCIvbGlzdCIpCisgICAgcHVibGljIFJlc3VsdCBsaXN0KEBSZXF1ZXN0Qm9keSBUb3JyZW50UGFyYW0gcGFyYW0pIHsKKyAgICAgICAgcGFyYW0udmFsaWRPcmRlcihwYXJhbS5nZXRPcmRlcktleShUb3JyZW50RW50aXR5LmNsYXNzKSk7CisgICAgICAgIHBhcmFtLmJ1aWxkTGlrZSgpOworICAgICAgICBQYWdlVXRpbC5zdGFydFBhZ2UocGFyYW0pOworCisgICAgICAgIExpc3Q8VG9ycmVudEVudGl0eT4gbGlzdCA9IHRvcnJlbnRTZXJ2aWNlLmdldEJhc2VNYXBwZXIoKS5zZWFyY2gocGFyYW0pOworCisgICAgICAgIHJldHVybiBSZXN1bHQub2sobGlzdCwgUGFnZVV0aWwuZ2V0UGFnZShsaXN0KSk7CisgICAgfQorCisgICAgQE9wZXJhdGlvbihzdW1tYXJ5ID0gIuenjeWtkOaQnOe0ouW7uuiuriIpCisgICAgQEdldE1hcHBpbmcoIi9zdWdnZXN0IikKKyAgICBAUGFyYW1ldGVyKG5hbWUgPSAicSIsIGRlc2NyaXB0aW9uID0gIuWFs+mUruWtlyIsIHJlcXVpcmVkID0gdHJ1ZSwgaW4gPSBQYXJhbWV0ZXJJbi5RVUVSWSkKKyAgICBAQXBpUmVzcG9uc2UocmVzcG9uc2VDb2RlID0gIjAiLCBkZXNjcmlwdGlvbiA9ICLmk43kvZzmiJDlip8iLCBjb250ZW50ID0geworICAgICAgICAgICAgQENvbnRlbnQobWVkaWFUeXBlID0gImFwcGxpY2F0aW9uL2pzb24iLCBzY2hlbWEgPSBAU2NoZW1hKGltcGxlbWVudGF0aW9uID0KKyAgICAgICAgICAgICAgICAgICAgU3VnZ2VzdFZvLmNsYXNzKSkKKyAgICB9KQorICAgIHB1YmxpYyBSZXN1bHQgZ2V0U3VnZ2VzdGlvbnMoQFJlcXVlc3RQYXJhbShyZXF1aXJlZCA9IGZhbHNlKSBTdHJpbmcgcSkgeworCisgICAgICAgIGlmIChTdHJpbmdVdGlscy5pc0VtcHR5KHEpKSB7CisgICAgICAgICAgICByZXR1cm4gUmVzdWx0Lm9rKG5ldyBBcnJheUxpc3Q8PigpKTsKKyAgICAgICAgfQorCisgICAgICAgIExpc3Q8U3VnZ2VzdFZvPiBzdWdnZXN0cyA9IHN1Z2dlc3REYW8uZ2V0U3VnZ2VzdGlvbnMocS50cmltKCkgKyAiJSIpOworICAgICAgICBMaXN0PFN1Z2dlc3RWbz4gcmVzdWx0ID0gbmV3IEFycmF5TGlzdDw+KCk7CisgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgZm9yIChTdWdnZXN0Vm8gc3VnZ2VzdCA6IHN1Z2dlc3RzKSB7CisgICAgICAgICAgICBpZiAoc3VnZ2VzdC5nZXRTdWdnZXN0KCkubGVuZ3RoKCkgPiAyNSkgeworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmVzdWx0LmFkZChzdWdnZXN0KTsKKworICAgICAgICAgICAgaSsrOworICAgICAgICAgICAgaWYgKGkgPj0gNSkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIFJlc3VsdC5vayhyZXN1bHQpOworICAgIH0KKworICAgIAorICAgIEBPcGVyYXRpb24oc3VtbWFyeSA9ICLnp43lrZDor6bmg4Xmn6Xor6IiKQorICAgIEBBcGlSZXNwb25zZShyZXNwb25zZUNvZGUgPSAiMCIsIGRlc2NyaXB0aW9uID0gIuaTjeS9nOaIkOWKnyIsIGNvbnRlbnQgPSB7CisgICAgICAgICAgICBAQ29udGVudChtZWRpYVR5cGUgPSAiYXBwbGljYXRpb24vanNvbiIsIHNjaGVtYSA9IEBTY2hlbWEoaW1wbGVtZW50YXRpb24gPQorICAgICAgICAgICAgICAgICAgICBUb3JyZW50RW50aXR5LmNsYXNzKSkKKyAgICB9KQorICAgIEBQb3N0TWFwcGluZygiL2luZm8ve2lkfSIpCisgICAgcHVibGljIFJlc3VsdCBpbmZvKEBQYXRoVmFyaWFibGUoImlkIikgSW50ZWdlciBpZCkgeworICAgICAgICBUb3JyZW50RW50aXR5IGVudGl0eSA9IHRvcnJlbnRTZXJ2aWNlLmdldEJ5SWQoaWQpOworICAgICAgICByZXR1cm4gUmVzdWx0Lm9rKGVudGl0eSk7CisgICAgfQorCisgICAgCisgICAgQE9wZXJhdGlvbihzdW1tYXJ5ID0gIuaWsOWinuenjeWtkCIpCisgICAgQFBvc3RNYXBwaW5nKCIvYWRkIikKKyAgICBwdWJsaWMgUmVzdWx0IGFkZChUb3JyZW50QWRkUGFyYW0gcGFyYW0pIHsKKyAgICAgICAgSW50ZWdlciBpZCA9IHRvcnJlbnRTZXJ2aWNlLmFkZChwYXJhbSk7CisgICAgICAgIHJldHVybiBSZXN1bHQub2soaWQpOworICAgIH0KKworCisgICAgCisgICAgQE9wZXJhdGlvbihzdW1tYXJ5ID0gIuWuoeaguOenjeWtkCIpCisgICAgQFBvc3RNYXBwaW5nKCIvYXVkaXQiKQorICAgIHB1YmxpYyBSZXN1bHQgYXVkaXQoQFJlcXVlc3RCb2R5IEBWYWxpZGF0ZWQgVG9ycmVudEF1ZGl0UGFyYW0gcGFyYW0pIHsKKyAgICAgICAgdG9ycmVudFNlcnZpY2UuYXVkaXQocGFyYW0pOworICAgICAgICByZXR1cm4gUmVzdWx0Lm9rKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICog5pS26JeP5oiW6ICF5Y+W5raI5pS26JePCisgICAgICovCisgICAgQE9wZXJhdGlvbihzdW1tYXJ5ID0gIuaUtuiXj+aIluiAheWPlua2iOaUtuiXj+enjeWtkCIpCisgICAgQFBhcmFtZXRlcihuYW1lID0gImlkIiwgZGVzY3JpcHRpb24gPSAi56eN5a2QSUQiLCByZXF1aXJlZCA9IHRydWUsIGluID0gUGFyYW1ldGVySW4uUVVFUlkpCisgICAgQFBvc3RNYXBwaW5nKCIvZmF2b3JpdGUiKQorICAgIHB1YmxpYyBSZXN1bHQgZmF2b3JpdGUoSW50ZWdlciBpZCkgeworICAgICAgICB0b3JyZW50U2VydmljZS5mYXZvcml0ZShpZCwgdXNlclNlcnZpY2UuZ2V0VXNlcklkKCkpOworICAgICAgICByZXR1cm4gUmVzdWx0Lm9rKCk7CisgICAgfQorCisKKyAgICBAUG9zdE1hcHBpbmcoIi9jcmVhdGVfY3JlZGVudGlhbCIpCisgICAgcHVibGljIFJlc3VsdCBjcmVhdGVDcmVkZW50aWFsKCl7CisgICAgICAgIHRvcnJlbnRTZXJ2aWNlLmNyZWF0ZUNyZWRlbnRpYWwodXNlclNlcnZpY2UuZ2V0VXNlcklkKCkpOworICAgICAgICByZXR1cm4gUmVzdWx0Lm9rKCk7CisgICAgfQorCisKKyAgICBAT3BlcmF0aW9uKHN1bW1hcnkgPSAi5LiK5Lyg5paH5Lu25bm255Sf5oiQ56eN5a2QIikKKyAgICBAUG9zdE1hcHBpbmcoIi91cGxvYWQiKQorICAgIHB1YmxpYyBSZXNwb25zZUVudGl0eTxieXRlW10+IHVwbG9hZChAUmVxdWVzdFBhcnQoImZpbGUiKSBNdWx0aXBhcnRGaWxlIGZpbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBSZXF1ZXN0UGFyYW0gSW50ZWdlciBpZCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgaWYgKGZpbGUuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJvY2tldFBURXhjZXB0aW9uKENvbW1vblJlc3VsdFN0YXR1cy5QQVJBTV9FUlJPUiwKKyAgICAgICAgICAgICAgICAgICAgICAgIEkxOG5NZXNzYWdlLmdldE1lc3NhZ2UoInRvcnJlbnRfZW1wdHkiKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIFN0cmluZyBvcmlnaW5hbEZpbGVuYW1lID0gb3JnLnNwcmluZ2ZyYW1ld29yay51dGlsLlN0cmluZ1V0aWxzLmNsZWFuUGF0aChmaWxlLmdldE9yaWdpbmFsRmlsZW5hbWUoKSk7CisgICAgICAgICAgICBib29sZWFuIGlzVG9ycmVudEZpbGUgPSBvcmlnaW5hbEZpbGVuYW1lLmVuZHNXaXRoKCIudG9ycmVudCIpOworICAgICAgICAgICAgU3RyaW5nIGZpbGVuYW1lID0gb3JpZ2luYWxGaWxlbmFtZTsgLy8g5Y6f5aeL5paH5Lu25ZCN77yI5Y+v6IO95YyF5ZCr5Lit5paH77yJCisgICAgICAgICAgICBieXRlW10gZmlsZUJ5dGVzID0gZmlsZS5nZXRCeXRlcygpOyAvLyDojrflj5bmlofku7blrZfoioIKKworICAgICAgICAgICAgLy8g6Z2e56eN5a2Q5paH5Lu26ZyA6KaB5YWI6L2s5o2i5Li656eN5a2QCisgICAgICAgICAgICBpZiAoIWlzVG9ycmVudEZpbGUpIHsKKyAgICAgICAgICAgICAgICAvLyDojrflj5Z0cmFja2Vy5Zyw5Z2ACisgICAgICAgICAgICAgICAgU3RyaW5nIHBhc3NrZXkgPSB1c2VyU2VydmljZS5nZXRQYXNza2V5KHVzZXJTZXJ2aWNlLmdldFVzZXJJZCgpKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgYW5ub3VuY2VVcmwgPSB0cmFja2VyVVJMU2VydmljZS5nZXRBbm5vdW5jZShwYXNza2V5KTsKKworICAgICAgICAgICAgICAgIC8vIOeUn+aIkOenjeWtkOaWh+S7tgorICAgICAgICAgICAgICAgIGZpbGVCeXRlcyA9IHRvcnJlbnRTZXJ2aWNlLmNyZWF0ZVRvcnJlbnRGcm9tRmlsZSgKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVCeXRlcywKKyAgICAgICAgICAgICAgICAgICAgICAgIG9yaWdpbmFsRmlsZW5hbWUsIC8vIOS9v+eUqOWOn+Wni+aWh+S7tuWQjeeUn+aIkOenjeWtkAorICAgICAgICAgICAgICAgICAgICAgICAgYW5ub3VuY2VVcmwKKyAgICAgICAgICAgICAgICApOworCisgICAgICAgICAgICAgICAgZmlsZW5hbWUgPSBvcmlnaW5hbEZpbGVuYW1lICsgIi50b3JyZW50IjsgLy8g5by65Yi25re75YqgLnRvcnJlbnTlkI7nvIAKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8g6aqM6K+B5paH5Lu26Lev5b6E5a6J5YWo77yI5aSE55CG57yW56CB5YmN55qE5Y6f5aeL5paH5Lu25ZCN77yM6YG/5YWN57uV6L+H5qCh6aqM77yJCisgICAgICAgICAgICBpZiAob3JpZ2luYWxGaWxlbmFtZS5jb250YWlucygiLi4iKSkgeyAvLyDmo4Dmn6Xljp/lp4vmlofku7blkI3vvIzogIzpnZ7nvJbnoIHlkI7nmoTlkI3np7AKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUm9ja2V0UFRFeGNlcHRpb24oIuaWh+S7tui3r+W+hOWMheWQq+mdnuazleWtl+espiIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyDosIPnlKjljp/mnInkuIrkvKDpgLvovpEKKyAgICAgICAgICAgIHRvcnJlbnRTZXJ2aWNlLnVwbG9hZChpZCwgZmlsZUJ5dGVzLCBmaWxlbmFtZSk7CisKKyAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0g5YWz6ZSu5L+u5pS577ya5a+55ZON5bqU5aS05Lit55qE5paH5Lu25ZCN6L+b6KGM57yW56CBIC0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgIC8vIDEuIOWvueaWh+S7tuWQjei/m+ihjCBVVEYtOCBVUkwg57yW56CBCisgICAgICAgICAgICBTdHJpbmcgZW5jb2RlZEZpbGVuYW1lID0gVVJMRW5jb2Rlci5lbmNvZGUoZmlsZW5hbWUsIFN0YW5kYXJkQ2hhcnNldHMuVVRGXzgpCisgICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlQWxsKCJcXCsiLCAiJTIwIik7IC8vIOabv+aNoiArIOS4uiAlMjDvvIznrKblkIggVVJMIOe8lueggeinhOiMgworCisgICAgICAgICAgICAvLyAyLiDkvb/nlKggUkZDIDU5ODcg5qCH5YeG55qEIGZpbGVuYW1lKiDor63ms5Xorr7nva7lk43lupTlpLQKKyAgICAgICAgICAgIFN0cmluZyBjb250ZW50RGlzcG9zaXRpb24gPSAiYXR0YWNobWVudDsgZmlsZW5hbWUqPVVURi04JyciICsgZW5jb2RlZEZpbGVuYW1lOworCisgICAgICAgICAgICByZXR1cm4gUmVzcG9uc2VFbnRpdHkub2soKQorICAgICAgICAgICAgICAgICAgICAuY29udGVudFR5cGUoTWVkaWFUeXBlLnBhcnNlTWVkaWFUeXBlKCJhcHBsaWNhdGlvbi94LWJpdHRvcnJlbnQiKSkgLy8g5piO56Gu57G75Z6LCisgICAgICAgICAgICAgICAgICAgIC5oZWFkZXIoSHR0cEhlYWRlcnMuQ09OVEVOVF9ESVNQT1NJVElPTiwgY29udGVudERpc3Bvc2l0aW9uKSAvLyDkvb/nlKggUkZDIDU5ODcKKyAgICAgICAgICAgICAgICAgICAgLmJvZHkoZmlsZUJ5dGVzKTsKKworICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiB8IFJvY2tldFBURXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHJldHVybiBSZXNwb25zZUVudGl0eS5zdGF0dXMoNTAxKQorICAgICAgICAgICAgICAgICAgICAuYm9keShlLmdldE1lc3NhZ2UoKS5nZXRCeXRlcygpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBAT3BlcmF0aW9uKHN1bW1hcnkgPSAi5L+u5pS556eN5a2QIikKKyAgICBAUG9zdE1hcHBpbmcoIi91cGRhdGUiKQorICAgIHB1YmxpYyBSZXN1bHQgdXBkYXRlKEBSZXF1ZXN0Qm9keSBUb3JyZW50RW50aXR5IGVudGl0eSkgeworICAgICAgICB0b3JyZW50U2VydmljZS51cGRhdGUoZW50aXR5KTsKKyAgICAgICAgcmV0dXJuIFJlc3VsdC5vaygpOworICAgIH0KKworCisgICAgCisgICAgQE9wZXJhdGlvbihzdW1tYXJ5ID0gIuWIoOmZpOenjeWtkCIpCisgICAgQFBvc3RNYXBwaW5nKCIvZGVsZXRlIikKKyAgICBwdWJsaWMgUmVzdWx0IGRlbGV0ZShAUmVxdWVzdEJvZHkgSW50ZWdlcltdIGlkcykgeworICAgICAgICB0b3JyZW50U2VydmljZS5yZW1vdmUoaWRzKTsKKworICAgICAgICByZXR1cm4gUmVzdWx0Lm9rKCk7CisgICAgfQorCisgICAgQE9wZXJhdGlvbihzdW1tYXJ5ID0gIuiOt+WPlnRyYWNrZXLmnI3liqHlmagiKQorICAgIEBQb3N0TWFwcGluZygiL3RyYWNrZXIiKQorICAgIHB1YmxpYyBSZXN1bHQgdHJhY2tlcigpIHsKKyAgICAgICAgU3RyaW5nIGFubm91bmNlID0gdHJhY2tlclVSTFNlcnZpY2UuZ2V0QW5ub3VuY2UodXNlclNlcnZpY2UuZ2V0UGFzc2tleSh1c2VyU2VydmljZS5nZXRVc2VySWQoKSkpOworICAgICAgICByZXR1cm4gUmVzdWx0Lm9rKGFubm91bmNlKTsKKyAgICB9CisKKworICAgIEBTYUlnbm9yZQorICAgIEBTbmVha3lUaHJvd3MKKyAgICBAT3BlcmF0aW9uKHN1bW1hcnkgPSAi5LiL6L2956eN5a2QIikKKyAgICBAUGFyYW1ldGVyKG5hbWUgPSAiaWQiLCBkZXNjcmlwdGlvbiA9ICLnp43lrZBJRCIsIHJlcXVpcmVkID0gdHJ1ZSwgaW4gPSBQYXJhbWV0ZXJJbi5RVUVSWSkKKyAgICBAUGFyYW1ldGVyKG5hbWUgPSAicGFzc2tleSIsIGRlc2NyaXB0aW9uID0gInBhc3NrZXkiLCBpbiA9IFBhcmFtZXRlckluLlFVRVJZKQorICAgIEBHZXRNYXBwaW5nKCIvZG93bmxvYWQiKQorICAgIHB1YmxpYyB2b2lkIGRvd25sb2FkKEBSZXF1ZXN0UGFyYW0oImlkIikgQFBvc2l0aXZlIEludGVnZXIgaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgQFJlcXVlc3RQYXJhbSh2YWx1ZSA9ICJwYXNza2V5IiwgcmVxdWlyZWQgPSBmYWxzZSkgQFBvc2l0aXZlIFN0cmluZyBwYXNza2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgIEh0dHBTZXJ2bGV0UmVzcG9uc2UgcmVzcG9uc2UpIHsKKworICAgICAgICBUb3JyZW50RW50aXR5IGVudGl0eSA9IHRvcnJlbnRTZXJ2aWNlLmdldEJ5SWQoaWQpOworICAgICAgICBpZiAoZW50aXR5ID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBSb2NrZXRQVEV4Y2VwdGlvbihDb21tb25SZXN1bHRTdGF0dXMuUEFSQU1fRVJST1IsIEkxOG5NZXNzYWdlLmdldE1lc3NhZ2UoCisgICAgICAgICAgICAgICAgICAgICJ0b3JyZW50X25vdF9leGlzdHMiKSk7CisgICAgICAgIH0KKyAgICAgICAgYnl0ZVtdIHRvcnJlbnRCeXRlcyA9IHRvcnJlbnRTZXJ2aWNlLmZldGNoKGlkLCBwYXNza2V5KTsKKyAgICAgICAgU3RyaW5nIGZpbGVuYW1lID0gZW50aXR5LmdldEZpbGVuYW1lKCk7CisgICAgICAgIGlmIChTdHJpbmdVdGlscy5pc0JsYW5rKGZpbGVuYW1lKSkgeworICAgICAgICAgICAgZmlsZW5hbWUgPSBlbnRpdHkuZ2V0SWQoKSArICIudG9ycmVudCI7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFTdHJpbmdVdGlscy5lbmRzV2l0aElnbm9yZUNhc2UoZmlsZW5hbWUsICIudG9ycmVudCIpKSB7CisgICAgICAgICAgICBmaWxlbmFtZSA9IGZpbGVuYW1lICsgIi50b3JyZW50IjsKKyAgICAgICAgfQorCisgICAgICAgIGZpbGVuYW1lID0gVVJMRW5jb2Rlci5lbmNvZGUoZmlsZW5hbWUsIFN0YW5kYXJkQ2hhcnNldHMuVVRGXzgpLnJlcGxhY2VBbGwoIlxcKyIsICIlMjAiKTsKKyAgICAgICAgcmVzcG9uc2Uuc2V0Q2hhcmFjdGVyRW5jb2RpbmcoU3RhbmRhcmRDaGFyc2V0cy5VVEZfOC5uYW1lKCkpOworICAgICAgICByZXNwb25zZS5zZXRDb250ZW50TGVuZ3RoKHRvcnJlbnRCeXRlcy5sZW5ndGgpOworICAgICAgICByZXNwb25zZS5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24veC1iaXR0b3JyZW50Iik7CisgICAgICAgIHJlc3BvbnNlLnNldEhlYWRlcigiQ29udGVudC1EaXNwb3NpdGlvbiIsICJhdHRhY2htZW50O2ZpbGVuYW1lPSIgKyBmaWxlbmFtZSk7CisgICAgICAgIGlmIChyZXNwb25zZS5pc0NvbW1pdHRlZCgpKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgcmVzcG9uc2UuZ2V0T3V0cHV0U3RyZWFtKCkud3JpdGUodG9ycmVudEJ5dGVzKTsKKyAgICAgICAgcmVzcG9uc2UuZ2V0T3V0cHV0U3RyZWFtKCkuZmx1c2goKTsKKyAgICAgICAgLy8g5oiQ5Yqf5LiL6L295ZCO5pu05pawIGxlZWNoZXJzIOWtl+autQorICAgICAgICB0b3JyZW50U2VydmljZS5pbmNyZW1lbnRMZWVjaGVycyhpZCk7CisgICAgfQorCisgICAgQE9wZXJhdGlvbihzdW1tYXJ5ID0gIumrmOe6p+enjeWtkOWIl+ihqOafpeivoiIsIGRlc2NyaXB0aW9uID0gIuaUr+aMgeWIhumhteOAgeWkmuWtl+auteaOkuW6j+WSjOWkjeWQiOadoeS7tuetm+mAiSIpCisgICAgQEFwaVJlc3BvbnNlKHJlc3BvbnNlQ29kZSA9ICIwIiwgZGVzY3JpcHRpb24gPSAi5pON5L2c5oiQ5YqfIiwKKyAgICAgICAgICAgIGNvbnRlbnQgPSB7QENvbnRlbnQobWVkaWFUeXBlID0gImFwcGxpY2F0aW9uL2pzb24iLAorICAgICAgICAgICAgICAgICAgICBzY2hlbWEgPSBAU2NoZW1hKGltcGxlbWVudGF0aW9uID0gVG9ycmVudFZPLmNsYXNzKSkKKyAgICAgICAgICAgIH0pCisgICAgQFBvc3RNYXBwaW5nKCIvdG9ycmVudExpc3QiKQorICAgIHB1YmxpYyBSZXN1bHQgYWR2YW5jZWRMaXN0KEBSZXF1ZXN0Qm9keSBBZHZhbmNlZFRvcnJlbnRQYXJhbSBwYXJhbSkgeworICAgICAgICAvLyDmoKHpqozmjpLluo/lrZfmrrXlkIjms5XmgKcKKyAgICAgICAgcGFyYW0udmFsaWRPcmRlcihwYXJhbS5nZXRPcmRlcktleShUb3JyZW50RW50aXR5LmNsYXNzKSk7CisgICAgICAgIC8vIOaehOW7uuaooeeziuafpeivouadoeS7tgorICAgICAgICBwYXJhbS5idWlsZExpa2UoKTsKKyAgICAgICAgLy8g5byA5ZCv5YiG6aG1CisgICAgICAgIFBhZ2VVdGlsLnN0YXJ0UGFnZShwYXJhbSk7CisKKyAgICAgICAgLy8g5p+l6K+i5pWw5o2u77yI5a6e6ZmF5Lia5Yqh6YC76L6R6ZyA5ZyoU2VydmljZeS4reWunueOsO+8iQorICAgICAgICBMaXN0PFRvcnJlbnRFbnRpdHk+IGxpc3QgPSB0b3JyZW50U2VydmljZS5hZHZhbmNlZFNlYXJjaChwYXJhbSk7CisKKyAgICAgICAgLy8g6L+U5Zue5YiG6aG157uT5p6cCisgICAgICAgIHJldHVybiBSZXN1bHQub2sobGlzdCwgUGFnZVV0aWwuZ2V0UGFnZShsaXN0KSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhlIHB1cnBvc2Ugb2YgdGhlIG1ldGhvZDoKKyAgICAgKiDnp43lrZDnmoTor4TorroKKyAgICAgKiB7QGNvZGUgQGF1dGhvcn0gSmlhCisgICAgICovCisKKyAgICBAUG9zdE1hcHBpbmcoIi9hZGRDb21tZW50IikKKyAgICBwdWJsaWMgUmVzdWx0IGNvbW1lbnQoQFJlcXVlc3RCb2R5IEBWYWxpZCBDb21tZW50Rm9ybSBmb3JtLAorICAgICAgICAgICAgICAgICAgICAgICAgICBIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCkgeworICAgICAgICAvLyDojrflj5blvZPliY3nmbvlvZXnlKjmiLdJRAorICAgICAgICBJbnRlZ2VyIHVzZXJJZCA9IHVzZXJTZXJ2aWNlLmdldFVzZXJJZCgpOworCisgICAgICAgIC8vIOaehOW7uuivhOiuuuWunuS9kworICAgICAgICBUb3JyZW50Q29tbWVudEVudGl0eSBjb21tZW50ID0gbmV3IFRvcnJlbnRDb21tZW50RW50aXR5KCk7CisgICAgICAgIGNvbW1lbnQuc2V0VG9ycmVudElkKGZvcm0uZ2V0VG9ycmVudElkKCkpOworICAgICAgICBjb21tZW50LnNldFVzZXJJZCh1c2VySWQpOworICAgICAgICBjb21tZW50LnNldFBpZChmb3JtLmdldFBpZCgpKTsKKyAgICAgICAgY29tbWVudC5zZXRDb21tZW50KGZvcm0uZ2V0Q29tbWVudCgpKTsKKyAgICAgICAgY29tbWVudC5zZXRDcmVhdGVUaW1lKExvY2FsRGF0ZVRpbWUubm93KCkpOworCisgICAgICAgIC8vIOS/neWtmOivhOiuugorICAgICAgICB0b3JyZW50Q29tbWVudFNlcnZpY2Uuc2F2ZUNvbW1lbnQoY29tbWVudCk7CisKKyAgICAgICAgcmV0dXJuIFJlc3VsdC5vaygpOworICAgIH0KKworICAgIEBHZXRNYXBwaW5nKCIvY29tbWVudHMiKSAvLyDkvb/nlKhHRVTmlrnms5Xmm7TnrKblkIjor63kuYkKKyAgICBwdWJsaWMgUmVzdWx0IGdldENvbW1lbnRzKAorICAgICAgICAgICAgQFJlcXVlc3RQYXJhbSgidG9ycmVudElkIikgSW50ZWdlciB0b3JyZW50SWQsCisgICAgICAgICAgICBAUmVxdWVzdFBhcmFtKHZhbHVlID0gInBhZ2VOdW0iLCBkZWZhdWx0VmFsdWUgPSAiMSIpIEludGVnZXIgcGFnZU51bSwKKyAgICAgICAgICAgIEBSZXF1ZXN0UGFyYW0odmFsdWUgPSAicGFnZVNpemUiLCBkZWZhdWx0VmFsdWUgPSAiMjAiKSBJbnRlZ2VyIHBhZ2VTaXplCisgICAgKSB7CisgICAgICAgIC8vIOWIhumhteafpeivouenjeWtkOivhOiuuu+8iOaMieaXtumXtOWAkuW6j++8iQorICAgICAgICBQYWdlSW5mbzxUb3JyZW50Q29tbWVudFZPPiBwYWdlSW5mbyA9IHRvcnJlbnRDb21tZW50U2VydmljZS5nZXRDb21tZW50c0J5VG9ycmVudElkKAorICAgICAgICAgICAgICAgIHRvcnJlbnRJZCwgcGFnZU51bSwgcGFnZVNpemUKKyAgICAgICAgKTsKKworICAgICAgICByZXR1cm4gUmVzdWx0Lm9rKHBhZ2VJbmZvKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvY29udHJvbGxlci9CVC9UcmFja2VyQ29udHJvbGxlci5qYXZhIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2NvbnRyb2xsZXIvQlQvVHJhY2tlckNvbnRyb2xsZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NTgxM2FlCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2NvbnRyb2xsZXIvQlQvVHJhY2tlckNvbnRyb2xsZXIuamF2YQpAQCAtMCwwICsxLDk0IEBACitwYWNrYWdlIGNvbS5ydW95aS53ZWIuY29udHJvbGxlci5CVDsKKworCitpbXBvcnQgY24uaHV0b29sLmNvcmUudXRpbC5IZXhVdGlsOworaW1wb3J0IGNvbS5ydW95aS53ZWIuU2VydmVyLkFubm91bmNlU2VydmljZTsKK2ltcG9ydCBjb20ucnVveWkud2ViLmRhby5CVC5Bbm5vdW5jZVJlcXVlc3Q7CitpbXBvcnQgY29tLnJ1b3lpLndlYi5Ub29sLkJULkJlbmNvZGVVdGlsOworaW1wb3J0IGNvbS5ydW95aS53ZWIuVG9vbC5CVC5CaW5hcnlGaWVsZFV0aWw7CitpbXBvcnQgY29tLnJ1b3lpLndlYi5Ub29sLkJULklQVXRpbHM7CitpbXBvcnQgamFrYXJ0YS5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0OworaW1wb3J0IGxvbWJvay5SZXF1aXJlZEFyZ3NDb25zdHJ1Y3RvcjsKK2ltcG9ydCBsb21ib2suZXh0ZXJuLnNsZjRqLlNsZjRqOworaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5sYW5nMy5TdHJpbmdVdGlsczsKK2ltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLndlYi5iaW5kLmFubm90YXRpb24uKjsKKworaW1wb3J0IGphdmEudXRpbC5MaXN0OworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgamF2YS51dGlsLk9wdGlvbmFsOworCitAU2xmNGoKK0BSZXN0Q29udHJvbGxlcgorQFJlcXVpcmVkQXJnc0NvbnN0cnVjdG9yCitAUmVxdWVzdE1hcHBpbmcoIi90cmFja2VyIikKK3B1YmxpYyBjbGFzcyBUcmFja2VyQ29udHJvbGxlciB7CisgICAgZmluYWwgQW5ub3VuY2VTZXJ2aWNlIGFubm91bmNlU2VydmljZTsKKworICAgIC8qKgorICAgICAqIDxwPgorICAgICAqIHdhbnQtZGlnZXN0IOaYr+S4uuS6huagoemqjGFyaWEyCisgICAgICogPHA+CisgICAgICogMS4gYmVw5bu66K6u5o6l5Y+j6Lev5b6E5pivIC9hbm5vdW5jZQorICAgICAqIDIuIOaIkOWKn+WTjeW6lAorICAgICAqIOi/lOWbnuS4gOS4que7j+i/hyBCZW5jb2RlIOe8lueggeeahCBEaWN0aW9uYXJ5IO+8iOS5n+WwseaYryBNYXDvvInvvIzljIXlkKvku6XkuIsga2V577yaCisgICAgICogPHA+CisgICAgICogaW50ZXJ2YWwg4oCTIOS7o+ihqOmXtOmalOaXtumXtO+8jOWNleS9jeaYr+enku+8jOihqOekuiBCVCDlrqLmiLfnq6/lupTor6XmjIflrprml7bpl7TkuYvlkI7lho3kuI4gVHJhY2tlciDogZTns7vmm7TmlrDnirbmgIEKKyAgICAgKiBwZWVycyDigJMg6L+Z5piv5LiqIExpc3TvvIzmr4/kuKogTGlzdCDlrZjlgqjkuIDkuKogRGljdGlvbmFyee+8iOS5n+WwseaYryBNYXDvvInvvIzmr4/kuKogRGljdGlvbmFyeSDljIXlkKvku6XkuIsga2V577yaCisgICAgICogcGVlciBpZCAg5a6i5oi356uv6ZqP5py65ZSv5LiAIElECisgICAgICogaXAg5a6i5oi356uvIElQIOWcsOWdgO+8jOaXouWPr+aYryBJUFY077yM5Lmf5Y+v5Lul5pivIElQVjbvvIzku6XluLjop4TlrZfnrKbkuLLooajnpLrljbPlj6/vvIzlpoIgYDEyNy4wLjAuMTEg5oiW6ICFIDo6Me+8jOS5n+aUr+aMgSBETlMg5ZCN56ewCisgICAgICogcG9ydCDlrqLmiLfnq6/nq6/lj6Plj7cKKyAgICAgKi8KKyAgICBAR2V0TWFwcGluZygiL2Fubm91bmNlIikKKyAgICBwdWJsaWMgU3RyaW5nIGFubm91bmNlKEh0dHBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgQE1vZGVsQXR0cmlidXRlIEFubm91bmNlUmVxdWVzdCBhbm5vdW5jZVJlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBAUmVxdWVzdEhlYWRlcihuYW1lID0gIlVzZXItQWdlbnQiKSBTdHJpbmcgdWEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBAUmVxdWVzdEhlYWRlcihuYW1lID0gIndhbnQtZGlnZXN0IiwgcmVxdWlyZWQgPSBmYWxzZSkgU3RyaW5nIHdhbnREaWdlc3QpIHsKKworICAgICAgICBTdHJpbmcgcXVlcnlTdHJpbmdzID0gcmVxdWVzdC5nZXRRdWVyeVN0cmluZygpOworICAgICAgICBsb2cuaW5mbygi5pS25YiwYW5ub3VuY2XmsYfmiqXvvJoiICsgcXVlcnlTdHJpbmdzKTsKKyAgICAgICAgU3RyaW5nIGlwQWRkciA9IElQVXRpbHMuZ2V0SXBBZGRyKCk7CisgICAgICAgIGJ5dGVbXSBwZWVySWQgPSBCaW5hcnlGaWVsZFV0aWwubWF0Y2hQZWVySWQocXVlcnlTdHJpbmdzKTsKKworICAgICAgICBTdHJpbmcgcGVlcklkSGV4ID0gSGV4VXRpbC5lbmNvZGVIZXhTdHIocGVlcklkKTsKKworICAgICAgICBhbm5vdW5jZVJlcXVlc3Quc2V0U2VlZGVyKGFubm91bmNlUmVxdWVzdC5nZXRMZWZ0KCkuZXF1YWxzKDBMKSk7CisgICAgICAgIGFubm91bmNlUmVxdWVzdC5zZXRJbmZvSGFzaChCaW5hcnlGaWVsZFV0aWwubWF0Y2hJbmZvSGFzaChxdWVyeVN0cmluZ3MpKTsKKyAgICAgICAgYW5ub3VuY2VSZXF1ZXN0LnNldFBlZXJJZChwZWVySWQpOworICAgICAgICBhbm5vdW5jZVJlcXVlc3Quc2V0UGVlcklkSGV4KHBlZXJJZEhleCk7CisgICAgICAgIGFubm91bmNlUmVxdWVzdC5zZXRSZW1vdGVBZGRyKGlwQWRkcik7CisgICAgICAgIGFubm91bmNlUmVxdWVzdC5zZXRXYW50RGlnZXN0KHdhbnREaWdlc3QpOworICAgICAgICBhbm5vdW5jZVJlcXVlc3Quc2V0VXNlckFnZW50KHVhKTsKKworICAgICAgICBNYXA8U3RyaW5nLCBPYmplY3Q+IHJlc3BvbnNlID0gYW5ub3VuY2VTZXJ2aWNlLmFubm91bmNlKGFubm91bmNlUmVxdWVzdCk7CisKKyAgICAgICAgU3RyaW5nIHJlc3BvbnNlU3RyID0gQmVuY29kZVV0aWwuZW5jb2RlKHJlc3BvbnNlKTsKKyAgICAgICAgcmV0dXJuIHJlc3BvbnNlU3RyOworICAgIH0KKworICAgIC8qKgorICAgICAqIOS7juivt+axguS4reiOt+WPluaJgOaciWluZm9faGFzaOS/oeaBr++8jAorICAgICAqIOS7juaVsOaNruW6k+S4reWMuemFjeWHuuadpeWvueW6lOeahOWBmuenjeWGheWuue+8jAorICAgICAqIDxwPgorICAgICAqIOS4gOS4queJueauiueahOivt+axgu+8jOWug+WFgeiuuOeUqOaIt+iOt+WPluWFs+S6juS4gOS4quaIluWkmuS4qiB0b3JyZW50IOeahOWfuuacrOe7n+iuoeS/oeaBr++8jOiAjOS4jemcgOimgeWujOWFqOWKoOWFpSBzd2Fybe+8iOWNsyB0b3JyZW50IOeahOS4i+i9vS/kuIrkvKDnvqTkvZPvvInjgIIKKyAgICAgKiDpgJrluLjvvIzov5nkupvkv6Hmga/ljIXmi6zvvJrlrozmiJDkuIvovb3nmoTmrKHmlbDvvIjljbPmnInlpJrlsJEgcGVlcnMg5oul5pyJ5LqG5paH5Lu255qE5YWo6YOo5YaF5a6577yJ44CB5q2j5Zyo5LiL6L2955qE55So5oi35pWw6YeP77yIbGVlY2hlcnPvvInjgIHmi6XmnInlrozmlbTmlofku7blubbkuJTmraPlnKjliIblj5HnmoTnlKjmiLfmlbDph4/vvIhzZWVkZXJz77yJ44CCCisgICAgICog6YCa6L+HIHNjcmFwZSDor7fmsYLvvIznlKjmiLflj6/ku6Xlv6vpgJ/kuobop6MgdG9ycmVudCDnmoTigJzlgaXlurfnirblhrXigJ3vvIzogIzml6DpnIDliqDlhaUgc3dhcm3jgILkvovlpoLvvIzkuIDkuKrmi6XmnInlvojlpJogc2VlZGVycyDnmoQgdG9ycmVudCDlj6/og73kuIvovb3pgJ/luqbmm7Tlv6vvvIzooajmmI7lroPmmK/kuIDkuKrmtLvot4PnmoQgdG9ycmVudOOAggorICAgICAqIOWPpuS4gOaWuemdou+8jOWmguaenOS4gOS4qiB0b3JyZW50IOayoeaciSBzZWVkZXJz77yM6YKj5LmI5paw55So5oi35Y+v6IO95peg5rOV5LiL6L295Yiw5a6M5pW055qE5paH5Lu244CCCisgICAgICog5L2G5piv77yM5a+55LqOUFTmnaXor7TvvIxzY3JhcGUg6K+35rGC5a+55LqO5LiA6Iis55So5oi36ICM6KiA5bm25LiN5piv5b+F6ZyA77yM55So5oi35Y+v5Lul5LuO572R56uZ55qE6aG16Z2i5LiK6I635b6X5YWz5LqOIHRvcnJlbnQg5YGl5bq354q25Ya155qE6Laz5aSf5L+h5oGv77yM5peg6ZyA55u05o6l6L+b6KGMIHNjcmFwZSDor7fmsYLjgIIKKyAgICAgKiA8cD4KKyAgICAgKi8KKyAgICBAR2V0TWFwcGluZygiL3NjcmFwZSIpCisgICAgcHVibGljIFN0cmluZyBwcm9jZXNzaW5nU2NyYXBlKE9wdGlvbmFsPFN0cmluZz4gcGFzc2tleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QpIHsKKyAgICAgICAgU3RyaW5nIHF1ZXJ5U3RyaW5nID0gcmVxdWVzdC5nZXRRdWVyeVN0cmluZygpOworICAgICAgICAvL+aUtuWIsHNjcmFwZeaxh+aKpe+8mnBhc3NrZXk9eHh4JmluZm9faGFzaD1YMCVCRSV4eHg3JUEwCisgICAgICAgIGxvZy5pbmZvKCLmlLbliLBzY3JhcGXmsYfmiqXvvJoiICsgcXVlcnlTdHJpbmcpOworCisgICAgICAgIGlmIChTdHJpbmdVdGlscy5pc0VtcHR5KHF1ZXJ5U3RyaW5nKSkgeworICAgICAgICAgICAgcmV0dXJuIEJlbmNvZGVVdGlsLmVycm9yKCk7CisgICAgICAgIH0KKworICAgICAgICBMaXN0PGJ5dGVbXT4gaW5mb0hhc2hlc0hleCA9IEJpbmFyeUZpZWxkVXRpbC5tYXRjaEluZm9IYXNoZXNIZXgocXVlcnlTdHJpbmcpOworCisgICAgICAgIHJldHVybiBCZW5jb2RlVXRpbC5lcnJvck5vUmV0cnkoImRvbnQgdG91Y2ggc2VydmVyIik7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2NvbnRyb2xsZXIvY29tbW9uL0NvbW1vblJlc3VsdFN0YXR1cy5qYXZhIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2NvbnRyb2xsZXIvY29tbW9uL0NvbW1vblJlc3VsdFN0YXR1cy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk2MjhiYzMKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvY29udHJvbGxlci9jb21tb24vQ29tbW9uUmVzdWx0U3RhdHVzLmphdmEKQEAgLTAsMCArMSwzOSBAQAorcGFja2FnZSBjb20ucnVveWkud2ViLmNvbnRyb2xsZXIuY29tbW9uOworCisvKioKKyAqIEBhdXRob3IgcGxleHB0CisgKi8KK3B1YmxpYyBlbnVtIENvbW1vblJlc3VsdFN0YXR1cyBpbXBsZW1lbnRzIFJlc3VsdFN0YXR1cyB7CisKKyAgICBPSygwLCAi5oiQ5YqfIiksCisKKyAgICBGQUlMKDUwMCwgIuWksei0pSIpLAorCisgICAgUEFSQU1fRVJST1IoNDAwLCAi5Y+C5pWw6Z2e5rOVIiksCisKKyAgICBSRUNPUkRfTk9UX0VYSVNUKDQwNCwgIuiusOW9leS4jeWtmOWcqCIpLAorCisgICAgVU5BVVRIT1JJWkVEKDQwMSwgIuacquaOiOadgyIpLAorCisgICAgRk9SQklEREVOKDQwMywgIuaXoOadg+mZkCIpLAorCisgICAgU0VSVkVSX0VSUk9SKDUwMCwgIuacjeWKoeWZqOWGhemDqOmUmeivryIpOworCisgICAgcHJpdmF0ZSBmaW5hbCBpbnQgY29kZTsKKyAgICBwcml2YXRlIGZpbmFsIFN0cmluZyBtZXNzYWdlOworCisgICAgQ29tbW9uUmVzdWx0U3RhdHVzKGludCBjb2RlLCBTdHJpbmcgbWVzc2FnZSkgeworICAgICAgICB0aGlzLmNvZGUgPSBjb2RlOworICAgICAgICB0aGlzLm1lc3NhZ2UgPSBtZXNzYWdlOworICAgIH0KKworICAgIEBPdmVycmlkZQorICAgIHB1YmxpYyBpbnQgZ2V0Q29kZSgpIHsKKyAgICAgICAgcmV0dXJuIGNvZGU7CisgICAgfQorCisgICAgQE92ZXJyaWRlCisgICAgcHVibGljIFN0cmluZyBnZXRNZXNzYWdlKCkgeworICAgICAgICByZXR1cm4gbWVzc2FnZTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvY29udHJvbGxlci9jb21tb24vQ29uc3RhbnRzLmphdmEgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvY29udHJvbGxlci9jb21tb24vQ29uc3RhbnRzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTNmYTkxYgotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9jb250cm9sbGVyL2NvbW1vbi9Db25zdGFudHMuamF2YQpAQCAtMCwwICsxLDU2IEBACitwYWNrYWdlIGNvbS5ydW95aS53ZWIuY29udHJvbGxlci5jb21tb247CisKK2ltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLmJlYW5zLmZhY3RvcnkuYW5ub3RhdGlvbi5WYWx1ZTsKKworLyoqCisgKiBAYXV0aG9yIHBsZXhwdAorICovCitwdWJsaWMgaW50ZXJmYWNlIENvbnN0YW50cyB7CisKKyAgICBTdHJpbmcgVE9LRU5fSEVBREVSX05BTUUgPSAiQXV0aG9yaXphdGlvbiI7CisgICAgU3RyaW5nIFNFU1NJT05fQ1VSUkVOVF9VU0VSID0gImN1cnJlbnRVc2VyIjsKKworICAgIC8qKgorICAgICAqIOiPnOWNleaguWlkCisgICAgICovCisgICAgSW50ZWdlciBSRVNPVVJDRV9ST09UX0lEID0gMDsKKworICAgIGludGVyZmFjZSBPcmRlciB7CisgICAgICAgIFN0cmluZyBERUZBVUxUX09SREVSX1RZUEUgPSAiZGVzYyI7CisKKyAgICAgICAgU3RyaW5nW10gT1JERVJfVFlQRSA9IG5ldyBTdHJpbmdbXXsiZGVzYyIsICJhc2MiLCAiREVTQyIsICJBU0MifTsKKyAgICB9CisKKyAgICBpbnRlcmZhY2UgRmluaXNoU3RhdHVzIHsKKworICAgICAgICAvKioKKyAgICAgICAgICog5bey5a6M5oiQ5bm25rWL6K+VCisgICAgICAgICAqLworICAgICAgICBTdHJpbmcgRklOSVNIRUQgPSAiICjlt7LlrozmiJDlubbmtYvor5XpgJrov4cpIjsKKworICAgICAgICAvKioKKyAgICAgICAgICog5pyq5a6M5oiQ5pyq5rWL6K+VCisgICAgICAgICAqLworICAgICAgICBTdHJpbmcgVU5GSU5JU0hFRCA9ICIgKOacquWujOaIkOacqua1i+ivlSkiOworCisgICAgICAgIC8qKgorICAgICAgICAgKiDlt7LlrozmiJDkvYbmnKrmtYvor5UKKyAgICAgICAgICovCisgICAgICAgIFN0cmluZyBGSU5JU0hFRF9OT1RfVEVTVCA9ICIgKOW3suWujOaIkOS9huacqua1i+ivlSkiOworCisgICAgfQorCisgICAgaW50ZXJmYWNlIFNvdXJjZSB7CisgICAgICAgIFN0cmluZyBQUkVGSVggPSAiW1JLVF0gIjsKKworICAgICAgICBTdHJpbmcgTkFNRSA9ICJ0aHVuZGVyIHB0IjsKKyAgICB9CisKKyAgICBpbnRlcmZhY2UgQW5ub3VuY2UgeworCisgICAgICAgIFN0cmluZyBQUk9UT0NPTCA9ICJodHRwIjsKKworICAgICAgICBJbnRlZ2VyIFBPUlQgPSA4MDgwOworCisgICAgfQorfQpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2NvbnRyb2xsZXIvY29tbW9uL0RvbWFpbkV2ZW50LmphdmEgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvY29udHJvbGxlci9jb21tb24vRG9tYWluRXZlbnQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZjlmNWM1Ci0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2NvbnRyb2xsZXIvY29tbW9uL0RvbWFpbkV2ZW50LmphdmEKQEAgLTAsMCArMSwzMiBAQAorLy8gICBDb3B5cmlnaHQgMjAxMiwyMDEzIFZhdWdobiBWZXJub24KKy8vCisvLyAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8gICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisvLyAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorLy8KKy8vICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorLy8KKy8vICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorLy8gICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKy8vICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorLy8gICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKworcGFja2FnZSBjb20ucnVveWkud2ViLmNvbnRyb2xsZXIuY29tbW9uOworCitpbXBvcnQgamF2YS50aW1lLkxvY2FsRGF0ZVRpbWU7CisKK3B1YmxpYyBpbnRlcmZhY2UgRG9tYWluRXZlbnQgeworCisgICAgZGVmYXVsdCBpbnQgZXZlbnRWZXJzaW9uKCkgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBkZWZhdWx0IExvY2FsRGF0ZVRpbWUgb2NjdXJyZWRPbigpIHsKKyAgICAgICAgcmV0dXJuIExvY2FsRGF0ZVRpbWUubm93KCk7CisgICAgfQorCisgICAgZGVmYXVsdCBib29sZWFuIG5lZWRTYXZlKCkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2NvbnRyb2xsZXIvY29tbW9uL0RvbWFpbkV2ZW50UHVibGlzaGVyLmphdmEgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvY29udHJvbGxlci9jb21tb24vRG9tYWluRXZlbnRQdWJsaXNoZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMTRjMDRiCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2NvbnRyb2xsZXIvY29tbW9uL0RvbWFpbkV2ZW50UHVibGlzaGVyLmphdmEKQEAgLTAsMCArMSwxNDYgQEAKKy8vICAgQ29weXJpZ2h0IDIwMTIsMjAxMyBWYXVnaG4gVmVybm9uCisvLworLy8gICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKy8vICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKy8vCisvLyAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKy8vICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKy8vICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKy8vICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisKK3BhY2thZ2UgY29tLnJ1b3lpLndlYi5jb250cm9sbGVyLmNvbW1vbjsKKworaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkNvbGxlY3Rpb247CitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CitpbXBvcnQgamF2YS51dGlsLmNvbmN1cnJlbnQuQ29tcGxldGFibGVGdXR1cmU7CitpbXBvcnQgamF2YS51dGlsLmZ1bmN0aW9uLkNvbnN1bWVyOworCitwdWJsaWMgY2xhc3MgRG9tYWluRXZlbnRQdWJsaXNoZXIgeworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgVGhyZWFkTG9jYWw8RG9tYWluRXZlbnRQdWJsaXNoZXI+IGluc3RhbmNlID0KKyAgICAgICAgICAgIFRocmVhZExvY2FsLndpdGhJbml0aWFsKCgpIC0+IG5ldyBEb21haW5FdmVudFB1Ymxpc2hlcigpKTsKKworICAgIHByaXZhdGUgYm9vbGVhbiBwdWJsaXNoaW5nOworCisgICAgQFN1cHByZXNzV2FybmluZ3MoInJhd3R5cGVzIikKKyAgICBwcml2YXRlIExpc3Qgc3Vic2NyaWJlcnM7CisKKyAgICBwcml2YXRlIERvbWFpbkV2ZW50UHVibGlzaGVyKCkgeworICAgICAgICBzdXBlcigpOworCisgICAgICAgIHRoaXMuc2V0UHVibGlzaGluZyhmYWxzZSk7CisgICAgICAgIHRoaXMuZW5zdXJlU3Vic2NyaWJlcnNMaXN0KCk7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBEb21haW5FdmVudFB1Ymxpc2hlciBpbnN0YW5jZSgpIHsKKyAgICAgICAgcmV0dXJuIGluc3RhbmNlLmdldCgpOworICAgIH0KKworICAgIHB1YmxpYyA8VD4gdm9pZCBwdWJsaXNoKGZpbmFsIFQgYURvbWFpbkV2ZW50KSB7CisgICAgICAgIGlmICghdGhpcy5pc1B1Ymxpc2hpbmcoKSAmJiB0aGlzLmhhc1N1YnNjcmliZXJzKCkpIHsKKworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICB0aGlzLnNldFB1Ymxpc2hpbmcodHJ1ZSk7CisKKyAgICAgICAgICAgICAgICBDbGFzczw/PiBldmVudFR5cGUgPSBhRG9tYWluRXZlbnQuZ2V0Q2xhc3MoKTsKKworICAgICAgICAgICAgICAgIEBTdXBwcmVzc1dhcm5pbmdzKCJ1bmNoZWNrZWQiKQorICAgICAgICAgICAgICAgIExpc3Q8RG9tYWluRXZlbnRTdWJzY3JpYmVyPFQ+PiBhbGxTdWJzY3JpYmVycyA9IHRoaXMuc3Vic2NyaWJlcnMoKTsKKworICAgICAgICAgICAgICAgIGZvciAoRG9tYWluRXZlbnRTdWJzY3JpYmVyPFQ+IHN1YnNjcmliZXIgOiBhbGxTdWJzY3JpYmVycykgeworICAgICAgICAgICAgICAgICAgICBDbGFzczw/PiBzdWJzY3JpYmVkVG9UeXBlID0gc3Vic2NyaWJlci5zdWJzY3JpYmVkVG9FdmVudFR5cGUoKTsKKworICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnRUeXBlID09IHN1YnNjcmliZWRUb1R5cGUgfHwgc3Vic2NyaWJlZFRvVHlwZSA9PSBEb21haW5FdmVudC5jbGFzcykgeworICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlci5oYW5kbGVFdmVudChhRG9tYWluRXZlbnQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICB9IGZpbmFsbHkgeworICAgICAgICAgICAgICAgIHRoaXMuc2V0UHVibGlzaGluZyhmYWxzZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBwdWJsaXNoQWxsKENvbGxlY3Rpb248RG9tYWluRXZlbnQ+IGFEb21haW5FdmVudHMpIHsKKyAgICAgICAgZm9yIChEb21haW5FdmVudCBkb21haW5FdmVudCA6IGFEb21haW5FdmVudHMpIHsKKyAgICAgICAgICAgIHRoaXMucHVibGlzaChkb21haW5FdmVudCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCByZXNldCgpIHsKKyAgICAgICAgaWYgKCF0aGlzLmlzUHVibGlzaGluZygpKSB7CisgICAgICAgICAgICB0aGlzLnNldFN1YnNjcmliZXJzKG51bGwpOworICAgICAgICB9CisgICAgfQorCisgICAgQFN1cHByZXNzV2FybmluZ3MoInVuY2hlY2tlZCIpCisgICAgcHVibGljIDxUPiB2b2lkIHN1YnNjcmliZShEb21haW5FdmVudFN1YnNjcmliZXI8VD4gYVN1YnNjcmliZXIpIHsKKyAgICAgICAgaWYgKCF0aGlzLmlzUHVibGlzaGluZygpKSB7CisgICAgICAgICAgICB0aGlzLmVuc3VyZVN1YnNjcmliZXJzTGlzdCgpOworCisgICAgICAgICAgICB0aGlzLnN1YnNjcmliZXJzKCkuYWRkKGFTdWJzY3JpYmVyKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyA8VD4gdm9pZCBhc3luY1N1YnNjcmliZShDbGFzczxUPiBzdWJzY3JpYmVkVG9FdmVudFR5cGUsIENvbnN1bWVyPFQ+IGV2ZW50KSB7CisgICAgICAgIHN1YnNjcmliZShuZXcgRG9tYWluRXZlbnRTdWJzY3JpYmVyPFQ+KCkgeworICAgICAgICAgICAgQE92ZXJyaWRlCisgICAgICAgICAgICBwdWJsaWMgdm9pZCBoYW5kbGVFdmVudChUIGFEb21haW5FdmVudCkgeworICAgICAgICAgICAgICAgIENvbXBsZXRhYmxlRnV0dXJlLnJ1bkFzeW5jKCgpIC0+IGV2ZW50LmFjY2VwdChhRG9tYWluRXZlbnQpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgQE92ZXJyaWRlCisgICAgICAgICAgICBwdWJsaWMgQ2xhc3M8VD4gc3Vic2NyaWJlZFRvRXZlbnRUeXBlKCkgeworICAgICAgICAgICAgICAgIHJldHVybiBzdWJzY3JpYmVkVG9FdmVudFR5cGU7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0KKworICAgIHB1YmxpYyA8VD4gdm9pZCBzdWJzY3JpYmUoQ2xhc3M8VD4gc3Vic2NyaWJlZFRvRXZlbnRUeXBlLCBDb25zdW1lcjxUPiBldmVudCkgeworICAgICAgICBzdWJzY3JpYmUobmV3IERvbWFpbkV2ZW50U3Vic2NyaWJlcjxUPigpIHsKKyAgICAgICAgICAgIEBPdmVycmlkZQorICAgICAgICAgICAgcHVibGljIHZvaWQgaGFuZGxlRXZlbnQoVCBhRG9tYWluRXZlbnQpIHsKKyAgICAgICAgICAgICAgICBldmVudC5hY2NlcHQoYURvbWFpbkV2ZW50KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgQE92ZXJyaWRlCisgICAgICAgICAgICBwdWJsaWMgQ2xhc3M8VD4gc3Vic2NyaWJlZFRvRXZlbnRUeXBlKCkgeworICAgICAgICAgICAgICAgIHJldHVybiBzdWJzY3JpYmVkVG9FdmVudFR5cGU7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0KKworICAgIEBTdXBwcmVzc1dhcm5pbmdzKCJyYXd0eXBlcyIpCisgICAgcHJpdmF0ZSB2b2lkIGVuc3VyZVN1YnNjcmliZXJzTGlzdCgpIHsKKyAgICAgICAgaWYgKCF0aGlzLmhhc1N1YnNjcmliZXJzKCkpIHsKKyAgICAgICAgICAgIHRoaXMuc2V0U3Vic2NyaWJlcnMobmV3IEFycmF5TGlzdCgpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgYm9vbGVhbiBpc1B1Ymxpc2hpbmcoKSB7CisgICAgICAgIHJldHVybiB0aGlzLnB1Ymxpc2hpbmc7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHNldFB1Ymxpc2hpbmcoYm9vbGVhbiBhRmxhZykgeworICAgICAgICB0aGlzLnB1Ymxpc2hpbmcgPSBhRmxhZzsKKyAgICB9CisKKyAgICBwcml2YXRlIGJvb2xlYW4gaGFzU3Vic2NyaWJlcnMoKSB7CisgICAgICAgIHJldHVybiB0aGlzLnN1YnNjcmliZXJzKCkgIT0gbnVsbDsKKyAgICB9CisKKyAgICBAU3VwcHJlc3NXYXJuaW5ncygicmF3dHlwZXMiKQorICAgIHByaXZhdGUgTGlzdCBzdWJzY3JpYmVycygpIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuc3Vic2NyaWJlcnM7CisgICAgfQorCisgICAgQFN1cHByZXNzV2FybmluZ3MoInJhd3R5cGVzIikKKyAgICBwcml2YXRlIHZvaWQgc2V0U3Vic2NyaWJlcnMoTGlzdCBhU3Vic2NyaWJlckxpc3QpIHsKKyAgICAgICAgdGhpcy5zdWJzY3JpYmVycyA9IGFTdWJzY3JpYmVyTGlzdDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvY29udHJvbGxlci9jb21tb24vRG9tYWluRXZlbnRTdWJzY3JpYmVyLmphdmEgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvY29udHJvbGxlci9jb21tb24vRG9tYWluRXZlbnRTdWJzY3JpYmVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGNlMjFiYQotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9jb250cm9sbGVyL2NvbW1vbi9Eb21haW5FdmVudFN1YnNjcmliZXIuamF2YQpAQCAtMCwwICsxLDIyIEBACisvLyAgIENvcHlyaWdodCAyMDEyLDIwMTMgVmF1Z2huIFZlcm5vbgorLy8KKy8vICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisvLyAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKy8vICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisvLworLy8gICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisvLyAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorLy8gICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorCitwYWNrYWdlIGNvbS5ydW95aS53ZWIuY29udHJvbGxlci5jb21tb247CisKK3B1YmxpYyBpbnRlcmZhY2UgRG9tYWluRXZlbnRTdWJzY3JpYmVyPFQ+IHsKKworICAgIHZvaWQgaGFuZGxlRXZlbnQoZmluYWwgVCBhRG9tYWluRXZlbnQpOworCisgICAgQ2xhc3M8VD4gc3Vic2NyaWJlZFRvRXZlbnRUeXBlKCk7Cit9CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvY29udHJvbGxlci9jb21tb24vRXZlbnRTdG9yZS5qYXZhIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2NvbnRyb2xsZXIvY29tbW9uL0V2ZW50U3RvcmUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ODQyZTg3Ci0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2NvbnRyb2xsZXIvY29tbW9uL0V2ZW50U3RvcmUuamF2YQpAQCAtMCwwICsxLDEyIEBACitwYWNrYWdlIGNvbS5ydW95aS53ZWIuY29udHJvbGxlci5jb21tb247CisKKworLyoqCisgKiBAYXV0aG9yIHBsZXhwdAorICogQGRhdGUgMjAyMi83LzIyCisgKi8KK3B1YmxpYyBpbnRlcmZhY2UgRXZlbnRTdG9yZSB7CisKKyAgICB2b2lkIGFwcGVuZChEb21haW5FdmVudCBhRG9tYWluRXZlbnQpOworCit9CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvY29udHJvbGxlci9jb21tb24vUmVzdWx0U3RhdHVzLmphdmEgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvY29udHJvbGxlci9jb21tb24vUmVzdWx0U3RhdHVzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTY1YzAwYQotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9jb250cm9sbGVyL2NvbW1vbi9SZXN1bHRTdGF0dXMuamF2YQpAQCAtMCwwICsxLDE2IEBACitwYWNrYWdlIGNvbS5ydW95aS53ZWIuY29udHJvbGxlci5jb21tb247CisKKy8qKgorICogQGF1dGhvciBwbGV4cHQKKyAqLworcHVibGljIGludGVyZmFjZSBSZXN1bHRTdGF0dXMgeworICAgIC8qKgorICAgICAqIOmUmeivr+eggQorICAgICAqLworICAgIGludCBnZXRDb2RlKCk7CisKKyAgICAvKioKKyAgICAgKiDplJnor6/kv6Hmga8KKyAgICAgKi8KKyAgICBTdHJpbmcgZ2V0TWVzc2FnZSgpOworfQpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2NvbnRyb2xsZXIvY29tbW9uL1Nlc3Npb25JdGVtSG9sZGVyLmphdmEgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvY29udHJvbGxlci9jb21tb24vU2Vzc2lvbkl0ZW1Ib2xkZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MGE2OWUyCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2NvbnRyb2xsZXIvY29tbW9uL1Nlc3Npb25JdGVtSG9sZGVyLmphdmEKQEAgLTAsMCArMSwyOSBAQAorcGFja2FnZSBjb20ucnVveWkud2ViLmNvbnRyb2xsZXIuY29tbW9uOworCitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKKworLyoqCisgKiBAYXV0aG9yIHBsZXhwdAorICovCitwdWJsaWMgY2xhc3MgU2Vzc2lvbkl0ZW1Ib2xkZXIgeworCisgICAgcHJpdmF0ZSBTZXNzaW9uSXRlbUhvbGRlcigpIHsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBUaHJlYWRMb2NhbDxNYXA8U3RyaW5nLCBPYmplY3Q+PiBzdG9yZSA9CisgICAgICAgICAgICBJbmhlcml0YWJsZVRocmVhZExvY2FsLndpdGhJbml0aWFsKEhhc2hNYXA6Om5ldyk7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgc2V0SXRlbShTdHJpbmcga2V5LCBPYmplY3Qgb2JqKSB7CisgICAgICAgIHN0b3JlLmdldCgpLnB1dChrZXksIG9iaik7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBPYmplY3QgZ2V0SXRlbShTdHJpbmcga2V5KSB7CisgICAgICAgIHJldHVybiBzdG9yZS5nZXQoKS5nZXQoa2V5KTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIHZvaWQgY2xlYXIoKSB7CisgICAgICAgIHN0b3JlLnJlbW92ZSgpOworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2NvbnRyb2xsZXIvY29tbW9uL2Jhc2UvSTE4bk1lc3NhZ2UuamF2YSBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9jb250cm9sbGVyL2NvbW1vbi9iYXNlL0kxOG5NZXNzYWdlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2MzNTM3OAotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9jb250cm9sbGVyL2NvbW1vbi9iYXNlL0kxOG5NZXNzYWdlLmphdmEKQEAgLTAsMCArMSw2MCBAQAorcGFja2FnZSBjb20ucnVveWkud2ViLmNvbnRyb2xsZXIuY29tbW9uLmJhc2U7CisKK2ltcG9ydCBsb21ib2suZXhwZXJpbWVudGFsLlV0aWxpdHlDbGFzczsKK2ltcG9ydCBsb21ib2suZXh0ZXJuLnNsZjRqLlNsZjRqOworaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsuY29udGV4dC5NZXNzYWdlU291cmNlOworaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsuY29udGV4dC5pMThuLkxvY2FsZUNvbnRleHRIb2xkZXI7CitpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay5jb250ZXh0LnN1cHBvcnQuUmVsb2FkYWJsZVJlc291cmNlQnVuZGxlTWVzc2FnZVNvdXJjZTsKKworaW1wb3J0IGphdmEudXRpbC5PYmplY3RzOworCitAU2xmNGoKK0BVdGlsaXR5Q2xhc3MKK3B1YmxpYyBjbGFzcyBJMThuTWVzc2FnZSB7CisKKyAgICBzdGF0aWMgeworICAgICAgICBSZWxvYWRhYmxlUmVzb3VyY2VCdW5kbGVNZXNzYWdlU291cmNlIG1lc3NhZ2VTb3VyY2UgPQorICAgICAgICAgICAgICAgIG5ldyBSZWxvYWRhYmxlUmVzb3VyY2VCdW5kbGVNZXNzYWdlU291cmNlKCk7CisgICAgICAgIG1lc3NhZ2VTb3VyY2Uuc2V0Q2FjaGVTZWNvbmRzKDUpOworICAgICAgICBtZXNzYWdlU291cmNlLnNldEJhc2VuYW1lcygiY2xhc3NwYXRoOmkxOG4vbWVzc2FnZSIpOworICAgICAgICBJMThuTWVzc2FnZS5pbml0KG1lc3NhZ2VTb3VyY2UpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIE1lc3NhZ2VTb3VyY2UgbWVzc2FnZVNvdXJjZTsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBpbml0KE1lc3NhZ2VTb3VyY2UgbWVzc2FnZVNvdXJjZSkgeworICAgICAgICBPYmplY3RzLnJlcXVpcmVOb25OdWxsKG1lc3NhZ2VTb3VyY2UsICJNZXNzYWdlU291cmNlIGNhbid0IGJlIG51bGwiKTsKKyAgICAgICAgSTE4bk1lc3NhZ2UubWVzc2FnZVNvdXJjZSA9IG1lc3NhZ2VTb3VyY2U7CisgICAgfQorCisgICAgLyoqCisgICAgICog6K+75Y+W5Zu96ZmF5YyW5raI5oGvCisgICAgICoKKyAgICAgKiBAcGFyYW0gbXNnQ29kZSDmtojmga/noIEKKyAgICAgKiBAcGFyYW0gYXJncyAgICDmtojmga/lj4LmlbAg5L6LOiBuZXcgU3RyaW5nW117IjEiLCIyIiwiMyJ9CisgICAgICogQHJldHVybgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldE1lc3NhZ2UoU3RyaW5nIG1zZ0NvZGUsIE9iamVjdFtdIGFyZ3MpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJldHVybiBJMThuTWVzc2FnZS5tZXNzYWdlU291cmNlLmdldE1lc3NhZ2UobXNnQ29kZSwgYXJncywKKyAgICAgICAgICAgICAgICAgICAgTG9jYWxlQ29udGV4dEhvbGRlci5nZXRMb2NhbGUoKSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBpZiAobG9nLmlzRGVidWdFbmFibGVkKCkpIHsKKyAgICAgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbG9nLmVycm9yKCI9PT0+IOivu+WPluWbvemZheWMlua2iOaBr+Wksei0pSwgY29kZTp7fSwgYXJnczp7fSwgZXg6e30iLCBtc2dDb2RlLCBhcmdzLAorICAgICAgICAgICAgICAgICAgICBlLmdldE1lc3NhZ2UoKSA9PSBudWxsID8gZS50b1N0cmluZygpIDogZS5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiAiLVVua25vd24tIjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiDojrflj5bkuIDmnaHor63oqIDphY3nva7kv6Hmga8KKyAgICAgKgorICAgICAqIEBwYXJhbSBtc2dDb2RlIOa2iOaBr+eggQorICAgICAqIEByZXR1cm4g5a+55bqU6YWN572u55qE5L+h5oGvCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0TWVzc2FnZShTdHJpbmcgbXNnQ29kZSkgeworICAgICAgICByZXR1cm4gSTE4bk1lc3NhZ2UuZ2V0TWVzc2FnZShtc2dDb2RlLCBudWxsKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvY29udHJvbGxlci9jb21tb24vYmFzZS9PcmRlclBhZ2VQYXJhbS5qYXZhIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2NvbnRyb2xsZXIvY29tbW9uL2Jhc2UvT3JkZXJQYWdlUGFyYW0uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYTNlNjY2Ci0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2NvbnRyb2xsZXIvY29tbW9uL2Jhc2UvT3JkZXJQYWdlUGFyYW0uamF2YQpAQCAtMCwwICsxLDk3IEBACitwYWNrYWdlIGNvbS5ydW95aS53ZWIuY29udHJvbGxlci5jb21tb24uYmFzZTsKKworCitpbXBvcnQgY24uaHV0b29sLmNvcmUudXRpbC5TdHJVdGlsOworaW1wb3J0IGNuLmh1dG9vbC5jb3JlLnV0aWwuQXJyYXlVdGlsOworaW1wb3J0IGNvbS5ydW95aS53ZWIuY29udHJvbGxlci5jb21tb24uQ29tbW9uUmVzdWx0U3RhdHVzOworaW1wb3J0IGNvbS5ydW95aS53ZWIuY29udHJvbGxlci5jb21tb24uQ29uc3RhbnRzOworaW1wb3J0IGNvbS5ydW95aS53ZWIuY29udHJvbGxlci5jb21tb24uZXhjZXB0aW9uLlJvY2tldFBURXhjZXB0aW9uOworaW1wb3J0IGlvLnN3YWdnZXIudjMub2FzLmFubm90YXRpb25zLm1lZGlhLlNjaGVtYTsKK2ltcG9ydCBsb21ib2suR2V0dGVyOworaW1wb3J0IGxvbWJvay5TZXR0ZXI7CitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLmxhbmczLlN0cmluZ1V0aWxzOworCitpbXBvcnQgamF2YS5sYW5nLnJlZmxlY3QuRmllbGQ7CitpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOworaW1wb3J0IGphdmEudXRpbC5MaXN0OworCitAR2V0dGVyCitAU2V0dGVyCitwdWJsaWMgY2xhc3MgT3JkZXJQYWdlUGFyYW0gZXh0ZW5kcyBQYWdlUGFyYW0geworCisgICAgLyoqCisgICAgICog5o6S5bqP5a2X5q61CisgICAgICovCisgICAgQFNjaGVtYShkZXNjcmlwdGlvbiA9ICLmjpLluo/lrZfmrrUiKQorICAgIHByb3RlY3RlZCBTdHJpbmcgcHJvcDsKKworICAgIC8qKgorICAgICAqIOaOkuW6j+inhOWImQorICAgICAqLworICAgIEBTY2hlbWEoZGVzY3JpcHRpb24gPSAi5o6S5bqP6KeE5YiZIikKKyAgICBwcm90ZWN0ZWQgU3RyaW5nIHNvcnQ7CisKKyAgICBwdWJsaWMgdm9pZCB2YWxpZE9yZGVyKExpc3Q8U3RyaW5nPiBvcmRlcktleSkgdGhyb3dzIFJvY2tldFBURXhjZXB0aW9uIHsKKyAgICAgICAgcHJvcCA9IFN0cmluZ1V0aWxzLmlzQmxhbmsocHJvcCkgPyBudWxsIDogU3RyVXRpbC50b1VuZGVybGluZUNhc2UocHJvcCk7CisgICAgICAgIHNvcnQgPSBTdHJpbmdVdGlscy5pc0JsYW5rKHNvcnQpID8gQ29uc3RhbnRzLk9yZGVyLkRFRkFVTFRfT1JERVJfVFlQRSA6IHNvcnQ7CisKKyAgICAgICAgaWYgKEFycmF5cy5hc0xpc3QoQ29uc3RhbnRzLk9yZGVyLk9SREVSX1RZUEUpLmluZGV4T2Yoc29ydCkgPCAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgUm9ja2V0UFRFeGNlcHRpb24oQ29tbW9uUmVzdWx0U3RhdHVzLlBBUkFNX0VSUk9SLCAi5o6S5bqP5pa55byP6Yyv6KqkIik7CisgICAgICAgIH0KKworICAgICAgICBpZiAoU3RyaW5nVXRpbHMuaXNOb3RCbGFuayhwcm9wKSAmJiBBcnJheXMuYXNMaXN0KG9yZGVyS2V5KS5pbmRleE9mKHByb3ApIDwgMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFJvY2tldFBURXhjZXB0aW9uKENvbW1vblJlc3VsdFN0YXR1cy5QQVJBTV9FUlJPUiwgIuaOkuW6j+ashOS9jemMr+iqpCIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdmFsaWRPcmRlcigpIHRocm93cyBSb2NrZXRQVEV4Y2VwdGlvbiB7CisgICAgICAgIExpc3Q8U3RyaW5nPiBvcmRlcktleSA9IGdldE9yZGVyS2V5KCk7CisgICAgICAgIHByb3AgPSBTdHJpbmdVdGlscy5pc0JsYW5rKHByb3ApID8gbnVsbCA6IFN0clV0aWwudG9VbmRlcmxpbmVDYXNlKHByb3ApOworICAgICAgICBzb3J0ID0gU3RyaW5nVXRpbHMuaXNCbGFuayhzb3J0KSA/IENvbnN0YW50cy5PcmRlci5ERUZBVUxUX09SREVSX1RZUEUgOiBzb3J0OworCisgICAgICAgIGlmICghQXJyYXlVdGlsLmNvbnRhaW5zKENvbnN0YW50cy5PcmRlci5PUkRFUl9UWVBFLCBzb3J0KSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFJvY2tldFBURXhjZXB0aW9uKENvbW1vblJlc3VsdFN0YXR1cy5QQVJBTV9FUlJPUiwgIuaOkuW6j+aWueW8j+mMr+iqpCIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKFN0cmluZ1V0aWxzLmlzTm90QmxhbmsocHJvcCkgJiYgIW9yZGVyS2V5LmNvbnRhaW5zKHByb3ApKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgUm9ja2V0UFRFeGNlcHRpb24oQ29tbW9uUmVzdWx0U3RhdHVzLlBBUkFNX0VSUk9SLCAi5o6S5bqP5qyE5L2N6Yyv6KqkIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIOWPjeWwhOiOt+WPluWtl+auteWIl+ihqAorICAgICAqLworICAgIHB1YmxpYyBMaXN0PFN0cmluZz4gZ2V0T3JkZXJLZXkoKSB7CisgICAgICAgIExpc3Q8U3RyaW5nPiBsaXN0ID0gbmV3IEFycmF5TGlzdDw+KCk7CisKKyAgICAgICAgRmllbGRbXSBmaWVsZHMgPSBnZXRDbGFzcygpLmdldERlY2xhcmVkRmllbGRzKCk7CisgICAgICAgIGlmIChmaWVsZHMgIT0gbnVsbCkgeworICAgICAgICAgICAgZm9yIChGaWVsZCBmaWVsZCA6IGZpZWxkcykgeworICAgICAgICAgICAgICAgIGZpZWxkLnNldEFjY2Vzc2libGUodHJ1ZSk7CisgICAgICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSBmaWVsZC5nZXROYW1lKCk7CisKKyAgICAgICAgICAgICAgICBsaXN0LmFkZChTdHJVdGlsLnRvVW5kZXJsaW5lQ2FzZShuYW1lKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGxpc3Q7CisgICAgfQorICAgIC8qKgorICAgICAqIEByZXR1cm4g5Y+N5bCE6I635Y+W5a2X5q615YiX6KGoCisgICAgICovCisgICAgcHVibGljIExpc3Q8U3RyaW5nPiBnZXRPcmRlcktleShDbGFzcyBjbGF6eikgeworICAgICAgICBMaXN0PFN0cmluZz4gbGlzdCA9IG5ldyBBcnJheUxpc3Q8PigpOworCisgICAgICAgIEZpZWxkW10gZmllbGRzID0gY2xhenouZ2V0RGVjbGFyZWRGaWVsZHMoKTsKKyAgICAgICAgaWYgKGZpZWxkcyAhPSBudWxsKSB7CisgICAgICAgICAgICBmb3IgKEZpZWxkIGZpZWxkIDogZmllbGRzKSB7CisgICAgICAgICAgICAgICAgZmllbGQuc2V0QWNjZXNzaWJsZSh0cnVlKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IGZpZWxkLmdldE5hbWUoKTsKKworICAgICAgICAgICAgICAgIGxpc3QuYWRkKFN0clV0aWwudG9VbmRlcmxpbmVDYXNlKG5hbWUpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbGlzdDsKKyAgICB9CisKK30KZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9jb250cm9sbGVyL2NvbW1vbi9iYXNlL09yZGVyUGFyYW0uamF2YSBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9jb250cm9sbGVyL2NvbW1vbi9iYXNlL09yZGVyUGFyYW0uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMWRjMzgxCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2NvbnRyb2xsZXIvY29tbW9uL2Jhc2UvT3JkZXJQYXJhbS5qYXZhCkBAIC0wLDAgKzEsNzQgQEAKK3BhY2thZ2UgY29tLnJ1b3lpLndlYi5jb250cm9sbGVyLmNvbW1vbi5iYXNlOworCitpbXBvcnQgY24uaHV0b29sLmNvcmUudXRpbC5TdHJVdGlsOworaW1wb3J0IGNuLmh1dG9vbC5jb3JlLnV0aWwuQXJyYXlVdGlsOworaW1wb3J0IGNvbS5ydW95aS53ZWIuY29udHJvbGxlci5jb21tb24uQ29tbW9uUmVzdWx0U3RhdHVzOworaW1wb3J0IGNvbS5ydW95aS53ZWIuY29udHJvbGxlci5jb21tb24uQ29uc3RhbnRzOworaW1wb3J0IGNvbS5ydW95aS53ZWIuY29udHJvbGxlci5jb21tb24uZXhjZXB0aW9uLlJvY2tldFBURXhjZXB0aW9uOworaW1wb3J0IGxvbWJvay5EYXRhOworaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5sYW5nMy5TdHJpbmdVdGlsczsKKworaW1wb3J0IGphdmEubGFuZy5yZWZsZWN0LkZpZWxkOworaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkFycmF5czsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKKworQERhdGEKK3B1YmxpYyBjbGFzcyBPcmRlclBhcmFtIHsKKworICAgIC8qKgorICAgICAqIOaOkuW6j+Wtl+autQorICAgICAqLworICAgIHByb3RlY3RlZCBTdHJpbmcgcHJvcDsKKworICAgIC8qKgorICAgICAqIOaOkuW6j+inhOWImQorICAgICAqLworICAgIHByb3RlY3RlZCBTdHJpbmcgc29ydDsKKworICAgIHB1YmxpYyB2b2lkIHZhbGlkT3JkZXIoU3RyaW5nW10gb3JkZXJLZXkpIHRocm93cyBSb2NrZXRQVEV4Y2VwdGlvbiB7CisgICAgICAgIHRoaXMucHJvcCA9IFN0cmluZ1V0aWxzLmlzQmxhbmsodGhpcy5wcm9wKSA/IG51bGwgOiB0aGlzLnByb3A7CisgICAgICAgIHRoaXMuc29ydCA9IFN0cmluZ1V0aWxzLmlzQmxhbmsodGhpcy5zb3J0KSA/IENvbnN0YW50cy5PcmRlci5ERUZBVUxUX09SREVSX1RZUEUKKyAgICAgICAgICAgICAgICA6IHRoaXMuc29ydDsKKworICAgICAgICBpZiAoQXJyYXlzLmFzTGlzdChDb25zdGFudHMuT3JkZXIuT1JERVJfVFlQRSkuaW5kZXhPZih0aGlzLnNvcnQpIDwgMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFJvY2tldFBURXhjZXB0aW9uKENvbW1vblJlc3VsdFN0YXR1cy5QQVJBTV9FUlJPUiwgIuaOkuW6j+aWueW8j+mMr+iqpCIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFTdHJpbmdVdGlscy5pc0JsYW5rKHRoaXMucHJvcCkgJiYgQXJyYXlzLmFzTGlzdChvcmRlcktleSkuaW5kZXhPZih0aGlzLnByb3ApIDwgMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFJvY2tldFBURXhjZXB0aW9uKENvbW1vblJlc3VsdFN0YXR1cy5QQVJBTV9FUlJPUiwgIuaOkuW6j+ashOS9jemMr+iqpCIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdmFsaWRPcmRlcigpIHRocm93cyBSb2NrZXRQVEV4Y2VwdGlvbiB7CisgICAgICAgIExpc3Q8U3RyaW5nPiBvcmRlcktleSA9IGdldE9yZGVyS2V5KCk7CisgICAgICAgIHByb3AgPSBTdHJpbmdVdGlscy5pc0JsYW5rKHByb3ApID8gbnVsbCA6IFN0clV0aWwudG9VbmRlcmxpbmVDYXNlKHByb3ApOworICAgICAgICBzb3J0ID0gU3RyaW5nVXRpbHMuaXNCbGFuayhzb3J0KSA/IENvbnN0YW50cy5PcmRlci5ERUZBVUxUX09SREVSX1RZUEUgOiBzb3J0OworCisgICAgICAgIGlmICghQXJyYXlVdGlsLmNvbnRhaW5zKENvbnN0YW50cy5PcmRlci5PUkRFUl9UWVBFLCBzb3J0KSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFJvY2tldFBURXhjZXB0aW9uKENvbW1vblJlc3VsdFN0YXR1cy5QQVJBTV9FUlJPUiwgIuaOkuW6j+aWueW8j+mMr+iqpCIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKFN0cmluZ1V0aWxzLmlzTm90QmxhbmsocHJvcCkgJiYgIW9yZGVyS2V5LmNvbnRhaW5zKHByb3ApKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgUm9ja2V0UFRFeGNlcHRpb24oQ29tbW9uUmVzdWx0U3RhdHVzLlBBUkFNX0VSUk9SLCAi5o6S5bqP5qyE5L2N6Yyv6KqkIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIOWPjeWwhOiOt+WPluWtl+auteWIl+ihqAorICAgICAqLworICAgIHByaXZhdGUgTGlzdDxTdHJpbmc+IGdldE9yZGVyS2V5KCkgeworICAgICAgICBMaXN0PFN0cmluZz4gbGlzdCA9IG5ldyBBcnJheUxpc3Q8PigpOworCisgICAgICAgIEZpZWxkW10gZmllbGRzID0gZ2V0Q2xhc3MoKS5nZXREZWNsYXJlZEZpZWxkcygpOworICAgICAgICBpZiAoZmllbGRzICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZvciAoRmllbGQgZmllbGQgOiBmaWVsZHMpIHsKKyAgICAgICAgICAgICAgICBmaWVsZC5zZXRBY2Nlc3NpYmxlKHRydWUpOworICAgICAgICAgICAgICAgIFN0cmluZyBuYW1lID0gZmllbGQuZ2V0TmFtZSgpOworCisgICAgICAgICAgICAgICAgbGlzdC5hZGQoU3RyVXRpbC50b1VuZGVybGluZUNhc2UobmFtZSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBsaXN0OworICAgIH0KK30KZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9jb250cm9sbGVyL2NvbW1vbi9iYXNlL1BhZ2VQYXJhbS5qYXZhIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2NvbnRyb2xsZXIvY29tbW9uL2Jhc2UvUGFnZVBhcmFtLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzI4M2Y1YgotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9jb250cm9sbGVyL2NvbW1vbi9iYXNlL1BhZ2VQYXJhbS5qYXZhCkBAIC0wLDAgKzEsMjUgQEAKK3BhY2thZ2UgY29tLnJ1b3lpLndlYi5jb250cm9sbGVyLmNvbW1vbi5iYXNlOworCitpbXBvcnQgamFrYXJ0YS52YWxpZGF0aW9uLmNvbnN0cmFpbnRzLk1heDsKK2ltcG9ydCBqYWthcnRhLnZhbGlkYXRpb24uY29uc3RyYWludHMuTWluOworaW1wb3J0IGpha2FydGEudmFsaWRhdGlvbi5jb25zdHJhaW50cy5Ob3ROdWxsOworaW1wb3J0IGxvbWJvay5HZXR0ZXI7CitpbXBvcnQgbG9tYm9rLlNldHRlcjsKK2ltcG9ydCBsb21ib2suVG9TdHJpbmc7CisKKworQEdldHRlcgorQFNldHRlcgorQFRvU3RyaW5nCitwdWJsaWMgY2xhc3MgUGFnZVBhcmFtIHsKKyAgICBATm90TnVsbChtZXNzYWdlID0gInBhZ2Xlj4LmlbDkuI3og73kuLrnqboiKQorICAgIEBNaW4odmFsdWUgPSAxTCwgbWVzc2FnZSA9ICJwYWdl5Y+C5pWw5b+F6aG75piv5pWw5a2X5oiW5pWw5YC85bCP5LqO6ZmQ5Yi2IikKKyAgICBwcm90ZWN0ZWQgSW50ZWdlciBwYWdlOworCisgICAgQE5vdE51bGwobWVzc2FnZSA9ICLlj4LmlbDkuI3og73kuLrnqboiKQorICAgIEBNaW4odmFsdWUgPSAxTCwgbWVzc2FnZSA9ICLlj4LmlbDlv4XpobvmmK/mlbDlrZfmiJbmlbDlgLzlsI/kuo7pmZDliLYiKQorICAgIEBNYXgodmFsdWUgPSAyMDBMLCBtZXNzYWdlID0gIuWPguaVsOW/hemhu+aYr+aVsOWtl+aIluaVsOWAvOWkp+S6jumZkOWItiIpCisgICAgcHJvdGVjdGVkIEludGVnZXIgc2l6ZTsKKworCit9CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvY29udHJvbGxlci9jb21tb24vYmFzZS9QYWdlVXRpbC5qYXZhIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2NvbnRyb2xsZXIvY29tbW9uL2Jhc2UvUGFnZVV0aWwuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMjNjY2Q0Ci0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2NvbnRyb2xsZXIvY29tbW9uL2Jhc2UvUGFnZVV0aWwuamF2YQpAQCAtMCwwICsxLDU0IEBACitwYWNrYWdlIGNvbS5ydW95aS53ZWIuY29udHJvbGxlci5jb21tb24uYmFzZTsKKworaW1wb3J0IGNvbS5naXRodWIucGFnZWhlbHBlci5QYWdlSGVscGVyOworaW1wb3J0IGNvbS5naXRodWIucGFnZWhlbHBlci5QYWdlSW5mbzsKKworaW1wb3J0IGphdmEudXRpbC5MaXN0OworCitwdWJsaWMgY2xhc3MgUGFnZVV0aWwgeworCisKKyAgICBwdWJsaWMgc3RhdGljIGludCBERUZBVUxUX1BBR0VfU0laRSA9IDIwOworCisgICAgLyoqCisgICAgICog5byA5aeL5YiG6aG1CisgICAgICoKKyAgICAgKiBAcGFyYW0gcGFyYW0KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgc3RhcnRQYWdlKE9yZGVyUGFnZVBhcmFtIHBhcmFtKSB7CisgICAgICAgIEludGVnZXIgcGFnZSA9IHBhcmFtLmdldFBhZ2UoKTsKKyAgICAgICAgaWYgKHBhZ2UgPT0gbnVsbCkgeworICAgICAgICAgICAgcGFyYW0uc2V0UGFnZSgxKTsKKyAgICAgICAgICAgIHBhcmFtLnNldFNpemUoREVGQVVMVF9QQUdFX1NJWkUpOworICAgICAgICB9CisKKyAgICAgICAgUGFnZUhlbHBlci5zdGFydFBhZ2UocGFyYW0uZ2V0UGFnZSgpLCBwYXJhbS5nZXRTaXplKCkpOworCisgICAgfQorCisgICAgLyoqCisgICAgICog5byA5aeL5YiG6aG1CisgICAgICoKKyAgICAgKiBAcGFyYW0gcGFyYW0KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgc3RhcnRQYWdlKFBhZ2VQYXJhbSBwYXJhbSkgeworICAgICAgICBJbnRlZ2VyIHBhZ2UgPSBwYXJhbS5nZXRQYWdlKCk7CisgICAgICAgIGlmIChwYWdlID09IG51bGwpIHsKKyAgICAgICAgICAgIHBhcmFtLnNldFBhZ2UoMSk7CisgICAgICAgICAgICBwYXJhbS5zZXRTaXplKERFRkFVTFRfUEFHRV9TSVpFKTsKKyAgICAgICAgfQorCisgICAgICAgIFBhZ2VIZWxwZXIuc3RhcnRQYWdlKHBhcmFtLmdldFBhZ2UoKSwgcGFyYW0uZ2V0U2l6ZSgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiDliIbpobXnu5PmnpwKKyAgICAgKgorICAgICAqIEBwYXJhbSBsaXN0CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBSZXNQYWdlIGdldFBhZ2UoTGlzdCBsaXN0KSB7CisgICAgICAgIFBhZ2VJbmZvIHBhZ2VJbmZvID0gbmV3IFBhZ2VJbmZvKGxpc3QpOworICAgICAgICByZXR1cm4gbmV3IFJlc1BhZ2UocGFnZUluZm8uZ2V0VG90YWwoKSwgcGFnZUluZm8uZ2V0UGFnZU51bSgpLCBwYWdlSW5mby5nZXRTaXplKCkpOworCisgICAgfQorfQpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2NvbnRyb2xsZXIvY29tbW9uL2Jhc2UvUmVzUGFnZS5qYXZhIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2NvbnRyb2xsZXIvY29tbW9uL2Jhc2UvUmVzUGFnZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU1ZTJjMjcKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvY29udHJvbGxlci9jb21tb24vYmFzZS9SZXNQYWdlLmphdmEKQEAgLTAsMCArMSwyOCBAQAorcGFja2FnZSBjb20ucnVveWkud2ViLmNvbnRyb2xsZXIuY29tbW9uLmJhc2U7CisKK2ltcG9ydCBsb21ib2suKjsKKworLyoqCisgKiDliIbpobXnmoTov5Tlm57lgLwKKyAqLworQEdldHRlcgorQFNldHRlcgorQFRvU3RyaW5nKGNhbGxTdXBlciA9IGZhbHNlKQorQE5vQXJnc0NvbnN0cnVjdG9yCitAQWxsQXJnc0NvbnN0cnVjdG9yCitwdWJsaWMgY2xhc3MgUmVzUGFnZSB7CisKKyAgICBwcml2YXRlIGxvbmcgdG90YWw7CisKKyAgICBwcml2YXRlIGludCBwYWdlOworCisgICAgcHJpdmF0ZSBpbnQgc2l6ZTsKKworICAgIHB1YmxpYyBzdGF0aWMgUmVzUGFnZSBnZXRQYWdlKGxvbmcgdG90YWwsIGludCBwYWdlLCBpbnQgc2l6ZSkgeworICAgICAgICByZXR1cm4gbmV3IFJlc1BhZ2UodG90YWwsIHBhZ2UsIHNpemUpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgUmVzUGFnZSBkZWZhdWx0UGFnZSgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBSZXNQYWdlKDEwLCAxLCAxMCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2NvbnRyb2xsZXIvY29tbW9uL2Jhc2UvUmVzdWx0LmphdmEgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvY29udHJvbGxlci9jb21tb24vYmFzZS9SZXN1bHQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NzY5YzVmCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2NvbnRyb2xsZXIvY29tbW9uL2Jhc2UvUmVzdWx0LmphdmEKQEAgLTAsMCArMSwxODAgQEAKK3BhY2thZ2UgY29tLnJ1b3lpLndlYi5jb250cm9sbGVyLmNvbW1vbi5iYXNlOworCisKK2ltcG9ydCBjb20uZmFzdGVyeG1sLmphY2tzb24uYW5ub3RhdGlvbi5Kc29uSWdub3JlOworaW1wb3J0IGNvbS5mYXN0ZXJ4bWwuamFja3Nvbi5hbm5vdGF0aW9uLkpzb25Qcm9wZXJ0eTsKKworaW1wb3J0IGxvbWJvay5HZXR0ZXI7CitpbXBvcnQgbG9tYm9rLk5vQXJnc0NvbnN0cnVjdG9yOworaW1wb3J0IGxvbWJvay5TZXR0ZXI7CitpbXBvcnQgbG9tYm9rLlRvU3RyaW5nOworCitpbXBvcnQgY29tLnJ1b3lpLndlYi5jb250cm9sbGVyLmNvbW1vbi5iYXNlLlN0YXR1czsKKworLyoqCisgKiDov5Tlm57lgLzlrp7kvZPnsbsKKyAqLworQEdldHRlcgorQFNldHRlcgorQFRvU3RyaW5nCitATm9BcmdzQ29uc3RydWN0b3IKK3B1YmxpYyBjbGFzcyBSZXN1bHQ8VD4geworCisgICAgcHJpdmF0ZSBpbnQgY29kZTsKKworICAgIHByaXZhdGUgU3RyaW5nIG1zZzsKKworICAgIEBKc29uUHJvcGVydHkKKyAgICBwcml2YXRlIFQgZGF0YTsKKworICAgIHByaXZhdGUgUmVzUGFnZSBwYWdlOworCisKKyAgICBwdWJsaWMgUmVzdWx0KFN0YXR1cyBzdGF0dXMpIHsKKyAgICAgICAgdGhpcy5jb2RlID0gc3RhdHVzLmdldENvZGUoKTsKKyAgICAgICAgdGhpcy5tc2cgPSBzdGF0dXMuZ2V0TXNnKCk7CisgICAgICAgIHRoaXMuZGF0YSA9IG51bGw7CisgICAgfQorCisgICAgcHVibGljIFJlc3VsdChTdGF0dXMgc3RhdHVzLCBUIGRhdGEpIHsKKyAgICAgICAgdGhpcy5jb2RlID0gc3RhdHVzLmdldENvZGUoKTsKKyAgICAgICAgdGhpcy5tc2cgPSBzdGF0dXMuZ2V0TXNnKCk7CisgICAgICAgIHRoaXMuZGF0YSA9IGRhdGE7CisgICAgfQorCisgICAgcHVibGljIFJlc3VsdChTdGF0dXMgc3RhdHVzLCBTdHJpbmcgbXNnKSB7CisgICAgICAgIHRoaXMuY29kZSA9IHN0YXR1cy5nZXRDb2RlKCk7CisgICAgICAgIHRoaXMubXNnID0gbXNnOworICAgICAgICB0aGlzLmRhdGEgPSBudWxsOworICAgIH0KKworICAgIHB1YmxpYyBSZXN1bHQoU3RhdHVzIHN0YXR1cywgaW50IG1zZ0NvZGUpIHsKKyAgICAgICAgdGhpcy5jb2RlID0gc3RhdHVzLmdldENvZGUoKTsKKyAgICAgICAgdGhpcy5tc2cgPSBJMThuTWVzc2FnZS5nZXRNZXNzYWdlKFN0cmluZy52YWx1ZU9mKG1zZ0NvZGUpKTsKKyAgICAgICAgdGhpcy5kYXRhID0gbnVsbDsKKyAgICB9CisKKyAgICBwdWJsaWMgUmVzdWx0KFN0YXR1cyBzdGF0dXMsIFN0cmluZyBtc2csIFQgZGF0YSkgeworICAgICAgICB0aGlzLmNvZGUgPSBzdGF0dXMuZ2V0Q29kZSgpOworICAgICAgICB0aGlzLm1zZyA9IG1zZzsKKyAgICAgICAgdGhpcy5kYXRhID0gZGF0YTsKKyAgICB9CisKKyAgICBwdWJsaWMgUmVzdWx0KFN0YXR1cyBzdGF0dXMsIGludCBtc2dDb2RlLCBUIGRhdGEpIHsKKyAgICAgICAgdGhpcy5jb2RlID0gc3RhdHVzLmdldENvZGUoKTsKKyAgICAgICAgdGhpcy5tc2cgPSBJMThuTWVzc2FnZS5nZXRNZXNzYWdlKFN0cmluZy52YWx1ZU9mKG1zZ0NvZGUpKTsKKyAgICAgICAgdGhpcy5kYXRhID0gZGF0YTsKKyAgICB9CisKKyAgICBwdWJsaWMgUmVzdWx0KFN0YXR1cyBzdGF0dXMsIFQgZGF0YSwgUmVzUGFnZSBwYWdlKSB7CisgICAgICAgIHRoaXMuY29kZSA9IHN0YXR1cy5nZXRDb2RlKCk7CisgICAgICAgIHRoaXMubXNnID0gc3RhdHVzLmdldE1zZygpOworICAgICAgICB0aGlzLmRhdGEgPSBkYXRhOworICAgICAgICB0aGlzLnBhZ2UgPSBwYWdlOworICAgIH0KKworICAgIHB1YmxpYyBSZXN1bHQoU3RhdHVzIHN0YXR1cywgU3RyaW5nIG1zZywgVCBkYXRhLCBSZXNQYWdlIHBhZ2UpIHsKKyAgICAgICAgdGhpcy5jb2RlID0gc3RhdHVzLmdldENvZGUoKTsKKyAgICAgICAgdGhpcy5tc2cgPSBtc2c7CisgICAgICAgIHRoaXMuZGF0YSA9IGRhdGE7CisgICAgICAgIHRoaXMucGFnZSA9IHBhZ2U7CisgICAgfQorCisgICAgcHVibGljIFJlc3VsdChTdGF0dXMgc3RhdHVzLCBpbnQgbXNnQ29kZSwgVCBkYXRhLCBSZXNQYWdlIHBhZ2UpIHsKKyAgICAgICAgdGhpcy5jb2RlID0gc3RhdHVzLmdldENvZGUoKTsKKyAgICAgICAgdGhpcy5tc2cgPSBJMThuTWVzc2FnZS5nZXRNZXNzYWdlKFN0cmluZy52YWx1ZU9mKG1zZ0NvZGUpKTsKKyAgICAgICAgdGhpcy5kYXRhID0gZGF0YTsKKyAgICAgICAgdGhpcy5wYWdlID0gcGFnZTsKKyAgICB9CisKKyAgICBASnNvbklnbm9yZQorICAgIHB1YmxpYyBib29sZWFuIGlzU3VjY2VzcygpIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuY29kZSA9PSBTdGF0dXMuU1VDQ0VTUy5nZXRDb2RlKCk7CisgICAgfQorCisgICAgQEpzb25JZ25vcmUKKyAgICBwdWJsaWMgYm9vbGVhbiBub25TdWNjZXNzKCkgeworICAgICAgICByZXR1cm4gdGhpcy5jb2RlICE9IFN0YXR1cy5TVUNDRVNTLmdldENvZGUoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIDxUPiBSZXN1bHQ8VD4gc3VjY2VzcygpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBSZXN1bHQ8VD4oU3RhdHVzLlNVQ0NFU1MpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgPFQ+IFJlc3VsdDxUPiBvaygpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBSZXN1bHQ8VD4oU3RhdHVzLlNVQ0NFU1MpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgPFQ+IFJlc3VsdDxUPiBvayhUIGRhdGEpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBSZXN1bHQ8VD4oU3RhdHVzLlNVQ0NFU1MsIGRhdGEpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgPFQ+IFJlc3VsdDxUPiBpbGxlZ2FsKCkgeworICAgICAgICByZXR1cm4gbmV3IFJlc3VsdDxUPihTdGF0dXMuQkFEX1JFUVVFU1QpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgPFQ+IFJlc3VsdDxUPiB1bmF1dGhvcml6ZWQoKSB7CisgICAgICAgIHJldHVybiBuZXcgUmVzdWx0PFQ+KFN0YXR1cy5VTkFVVEhPUklaRUQpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgPFQ+IFJlc3VsdDxUPiBmb3JiaWRkZW4oKSB7CisgICAgICAgIHJldHVybiBuZXcgUmVzdWx0PFQ+KFN0YXR1cy5GT1JCSURERU4pOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgPFQ+IFJlc3VsdDxUPiBub3RGb3VuZCgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBSZXN1bHQ8VD4oU3RhdHVzLk5PVF9GT1VORCk7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyA8VD4gUmVzdWx0PFQ+IGZhaWx1cmUoKSB7CisgICAgICAgIHJldHVybiBuZXcgUmVzdWx0PFQ+KFN0YXR1cy5GQUlMVVJFKTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIDxUPiBSZXN1bHQ8VD4gZmFpbHVyZShTdHJpbmcgbXNnKSB7CisgICAgICAgIHJldHVybiBuZXcgUmVzdWx0PFQ+KFN0YXR1cy5GQUlMVVJFLCBtc2cpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgPFQ+IFJlc3VsdDxUPiBlcnJvcihTdHJpbmcgbXNnKSB7CisgICAgICAgIHJldHVybiBuZXcgUmVzdWx0PFQ+KFN0YXR1cy5GQUlMVVJFLCBtc2cpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgPFQ+IFJlc3VsdDxUPiBjb25mbGljdCgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBSZXN1bHQ8VD4oU3RhdHVzLkNPTkZMSUNUKTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIDxUPiBSZXN1bHQ8VD4gYnVpbGQoU3RhdHVzIHN0YXR1cywgVCBkYXRhKSB7CisgICAgICAgIHJldHVybiBuZXcgUmVzdWx0PFQ+KHN0YXR1cywgZGF0YSk7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyA8VD4gUmVzdWx0PFQ+IGJ1aWxkKFN0YXR1cyBzdGF0dXMsIFN0cmluZyBtc2cpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBSZXN1bHQ8VD4oc3RhdHVzLCBtc2cpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgPFQ+IFJlc3VsdDxUPiBidWlsZChTdGF0dXMgc3RhdHVzLCBpbnQgbXNnQ29kZSkgeworICAgICAgICByZXR1cm4gbmV3IFJlc3VsdDxUPihzdGF0dXMsIG1zZ0NvZGUpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgPFQ+IFJlc3VsdDxUPiBidWlsZChTdGF0dXMgc3RhdHVzLCBTdHJpbmcgbXNnLCBUIGRhdGEpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBSZXN1bHQ8VD4oc3RhdHVzLCBtc2csIGRhdGEpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgPFQ+IFJlc3VsdDxUPiBidWlsZChTdGF0dXMgc3RhdHVzLCBpbnQgbXNnQ29kZSwgVCBkYXRhKSB7CisgICAgICAgIHJldHVybiBuZXcgUmVzdWx0PFQ+KHN0YXR1cywgbXNnQ29kZSwgZGF0YSk7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBSZXN1bHQgb2soT2JqZWN0IGRhdGEsIFJlc1BhZ2UgcGFnZSkgeworICAgICAgICByZXR1cm4gbmV3IFJlc3VsdChTdGF0dXMuU1VDQ0VTUywgZGF0YSwgcGFnZSk7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBSZXN1bHQgYnVpbGQoU3RhdHVzIHN0YXR1cywgT2JqZWN0IGRhdGEsIFJlc1BhZ2UgcGFnZSkgeworICAgICAgICByZXR1cm4gbmV3IFJlc3VsdChzdGF0dXMsIGRhdGEsIHBhZ2UpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgUmVzdWx0IGJ1aWxkKFN0YXR1cyBzdGF0dXMsIFN0cmluZyBtc2csIE9iamVjdCBkYXRhLCBSZXNQYWdlIHBhZ2UpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBSZXN1bHQoc3RhdHVzLCBtc2csIGRhdGEsIHBhZ2UpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgUmVzdWx0IGJ1aWxkKFN0YXR1cyBzdGF0dXMsIGludCBtc2dDb2RlLCBPYmplY3QgZGF0YSwgUmVzUGFnZSBwYWdlKSB7CisgICAgICAgIHJldHVybiBuZXcgUmVzdWx0KHN0YXR1cywgbXNnQ29kZSwgZGF0YSwgcGFnZSk7CisgICAgfQorCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2NvbnRyb2xsZXIvY29tbW9uL2Jhc2UvU3RhdHVzLmphdmEgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvY29udHJvbGxlci9jb21tb24vYmFzZS9TdGF0dXMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zY2I3M2FkCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2NvbnRyb2xsZXIvY29tbW9uL2Jhc2UvU3RhdHVzLmphdmEKQEAgLTAsMCArMSw2NCBAQAorcGFja2FnZSBjb20ucnVveWkud2ViLmNvbnRyb2xsZXIuY29tbW9uLmJhc2U7CisKKy8qKgorICog6L+U5Zue5YC854q25oCB56CBCisgKgorICogQGF1dGhvciBsaXl1ZQorICogQHZlcnNpb24gdjEKKyAqIEBjcmVhdGUgMjAxOS0wMy0wNyAxNjo0MDo1MgorICogQGNvcHlyaWdodCB3d3cubGlkZXJvbmcuY24KKyAqLworcHVibGljIGVudW0gU3RhdHVzIHsKKworICAgIC8qKgorICAgICAqIOivt+axguaJp+ihjOaIkOWKnworICAgICAqLworICAgIFNVQ0NFU1MoMCwgIuaTjeS9nOaIkOWKnyIpLAorCisgICAgLyoqCisgICAgICog6K+35rGC6aqM6K+B5aSx6LSlCisgICAgICovCisgICAgQkFEX1JFUVVFU1QoNDAwLCAi5pON5L2c6aqM6K+B5aSx6LSlIiksCisKKyAgICAvKioKKyAgICAgKiDmnYPpmZDkuI3otrMKKyAgICAgKi8KKyAgICBVTkFVVEhPUklaRUQoNDAxLCAi5pON5L2c5pyq5o6I5p2DIiksCisKKyAgICAvKioKKyAgICAgKiDor7fmsYLmi5Lnu50KKyAgICAgKi8KKyAgICBGT1JCSURERU4oNDAzLCAi5pON5L2c6KKr5ouS57udIiksCisKKyAgICAvKioKKyAgICAgKiDmnKrnn6Xor7fmsYIKKyAgICAgKi8KKyAgICBOT1RfRk9VTkQoNDA0LCAi5pyq55+l5pON5L2cIiksCisKKyAgICAvKioKKyAgICAgKiDmnKrnn6Xor7fmsYIKKyAgICAgKi8KKyAgICBDT05GTElDVCg0MDksICLor7fmsYLlj5HnlJ/lhrLnqoEiKSwKKworICAgIC8qKgorICAgICAqIOivt+axguaJp+ihjOWksei0pQorICAgICAqLworICAgIEZBSUxVUkUoNTAwLCAi5pON5L2c5aSx6LSlIik7CisKKyAgICBwcml2YXRlIGludCBjb2RlOworCisgICAgcHJpdmF0ZSBTdHJpbmcgbXNnOworCisgICAgU3RhdHVzKGludCBjb2RlLCBTdHJpbmcgbXNnKSB7CisgICAgICAgIHRoaXMuY29kZSA9IGNvZGU7CisgICAgICAgIHRoaXMubXNnID0gbXNnOworICAgIH0KKworICAgIHB1YmxpYyBpbnQgZ2V0Q29kZSgpIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuY29kZTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldE1zZygpIHsKKyAgICAgICAgcmV0dXJuIHRoaXMubXNnOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9jb250cm9sbGVyL2NvbW1vbi9leGNlcHRpb24vRXhjZXB0aW9uQ29udHJvbGxlckFkdmljZS5qYXZhIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2NvbnRyb2xsZXIvY29tbW9uL2V4Y2VwdGlvbi9FeGNlcHRpb25Db250cm9sbGVyQWR2aWNlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODVjNzM4OQotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9jb250cm9sbGVyL2NvbW1vbi9leGNlcHRpb24vRXhjZXB0aW9uQ29udHJvbGxlckFkdmljZS5qYXZhCkBAIC0wLDAgKzEsOTkgQEAKK3BhY2thZ2UgY29tLnJ1b3lpLndlYi5jb250cm9sbGVyLmNvbW1vbi5leGNlcHRpb247CisKK2ltcG9ydCBjb20ucnVveWkud2ViLlRvb2wuQlQuQmVuY29kZVV0aWw7CitpbXBvcnQgY29tLnJ1b3lpLndlYi5jb250cm9sbGVyLmNvbW1vbi5Db21tb25SZXN1bHRTdGF0dXM7CitpbXBvcnQgY29tLnJ1b3lpLndlYi5jb250cm9sbGVyLmNvbW1vbi5SZXN1bHRTdGF0dXM7CisKK2ltcG9ydCBpby5zd2FnZ2VyLnYzLm9hcy5hbm5vdGF0aW9ucy5zZWN1cml0eS5TZWN1cml0eVJlcXVpcmVtZW50OworaW1wb3J0IGpha2FydGEuc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdDsKK2ltcG9ydCBqYWthcnRhLnZhbGlkYXRpb24uQ29uc3RyYWludFZpb2xhdGlvbkV4Y2VwdGlvbjsKK2ltcG9ydCBsb21ib2suZXh0ZXJuLnNsZjRqLlNsZjRqOworaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsuaHR0cC5IdHRwU3RhdHVzOworaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsuaHR0cC5SZXNwb25zZUVudGl0eTsKK2ltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLndlYi5iaW5kLk1ldGhvZEFyZ3VtZW50Tm90VmFsaWRFeGNlcHRpb247CitpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay53ZWIuYmluZC5hbm5vdGF0aW9uLkV4Y2VwdGlvbkhhbmRsZXI7CitpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay53ZWIuYmluZC5hbm5vdGF0aW9uLlJlc3RDb250cm9sbGVyQWR2aWNlOworCitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuc3RyZWFtLkNvbGxlY3RvcnM7CisKKy8qKgorICogQGF1dGhvciBwbGV4cHQKKyAqLworQFNsZjRqCitAU2VjdXJpdHlSZXF1aXJlbWVudChuYW1lID0gImJlYXJlckF1dGgiKQorQFJlc3RDb250cm9sbGVyQWR2aWNlCitwdWJsaWMgY2xhc3MgRXhjZXB0aW9uQ29udHJvbGxlckFkdmljZSB7CisKKyAgICBwcml2YXRlIGZpbmFsIE1hcDxSZXN1bHRTdGF0dXMsIEh0dHBTdGF0dXM+IGNvZGVNYXAgPSBuZXcgSGFzaE1hcDw+KCkge3sKKyAgICAgICAgcHV0KENvbW1vblJlc3VsdFN0YXR1cy5GQUlMLCBIdHRwU3RhdHVzLkJBRF9SRVFVRVNUKTsKKyAgICAgICAgcHV0KENvbW1vblJlc3VsdFN0YXR1cy5QQVJBTV9FUlJPUiwgSHR0cFN0YXR1cy5CQURfUkVRVUVTVCk7CisgICAgICAgIHB1dChDb21tb25SZXN1bHRTdGF0dXMuUkVDT1JEX05PVF9FWElTVCwgSHR0cFN0YXR1cy5CQURfUkVRVUVTVCk7CisgICAgICAgIHB1dChDb21tb25SZXN1bHRTdGF0dXMuVU5BVVRIT1JJWkVELCBIdHRwU3RhdHVzLlVOQVVUSE9SSVpFRCk7CisgICAgICAgIHB1dChDb21tb25SZXN1bHRTdGF0dXMuRk9SQklEREVOLCBIdHRwU3RhdHVzLkZPUkJJRERFTik7CisgICAgfX07CisKKworICAgIEBFeGNlcHRpb25IYW5kbGVyKFRyYWNrZXJFeGNlcHRpb24uY2xhc3MpCisgICAgcHVibGljIFN0cmluZyBpbnZhbGlkTGVuZ3RoRXhjZXB0aW9uSGFuZGxlcihUcmFja2VyRXhjZXB0aW9uIGV4Y2VwdGlvbikgeworICAgICAgICBsb2cuZXJyb3IoInRyYWNrZXIgZXhjZXB0aW9uLCBtZXNzYWdlPXt9IiwgZXhjZXB0aW9uLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIGlmIChleGNlcHRpb24gaW5zdGFuY2VvZiBUcmFja2VyTm9SZXRyeUV4Y2VwdGlvbikgeworICAgICAgICAgICAgcmV0dXJuIEJlbmNvZGVVdGlsLmVycm9yTm9SZXRyeShleGNlcHRpb24uZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gQmVuY29kZVV0aWwuZXJyb3IoZXhjZXB0aW9uLmdldE1lc3NhZ2UoKSk7CisgICAgfQorCisKKyAgICBARXhjZXB0aW9uSGFuZGxlcihFeGNlcHRpb24uY2xhc3MpCisgICAgcHVibGljIFJlc3BvbnNlRW50aXR5PE1hcDxTdHJpbmcsIE9iamVjdD4+IGhhbmRsZURlZmF1bHRFcnJvclZpZXcoRXhjZXB0aW9uIGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEh0dHBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0KSB7CisgICAgICAgIGxvZy5lcnJvcigiSGFuZGxlIGV4Y2VwdGlvbiwgbWVzc2FnZT17fSwgcmVxdWVzdFVybD17fSIsIGV4LmdldE1lc3NhZ2UoKSwKKyAgICAgICAgICAgICAgICByZXF1ZXN0LmdldFJlcXVlc3RVUkkoKSwgZXgpOworICAgICAgICBNYXA8U3RyaW5nLCBPYmplY3Q+IGJvZHkgPSBuZXcgSGFzaE1hcDw+KCk7CisgICAgICAgIGJvZHkucHV0KCJjb2RlIiwgQ29tbW9uUmVzdWx0U3RhdHVzLlNFUlZFUl9FUlJPUi5nZXRDb2RlKCkpOworICAgICAgICBib2R5LnB1dCgibWVzc2FnZSIsIGV4LmdldE1lc3NhZ2UoKSk7CisgICAgICAgIGJvZHkucHV0KCJzdWNjZXNzIiwgZmFsc2UpOworICAgICAgICByZXR1cm4gUmVzcG9uc2VFbnRpdHkuc3RhdHVzKEh0dHBTdGF0dXMuSU5URVJOQUxfU0VSVkVSX0VSUk9SKS5ib2R5KGJvZHkpOworICAgIH0KKworICAgIEBFeGNlcHRpb25IYW5kbGVyKFJvY2tldFBURXhjZXB0aW9uLmNsYXNzKQorICAgIHB1YmxpYyBSZXNwb25zZUVudGl0eTxNYXA8U3RyaW5nLCBPYmplY3Q+PiBoYW5kbGVCdXNpbmVzc0V4Y2VwdGlvbihSb2NrZXRQVEV4Y2VwdGlvbiBleCkgeworICAgICAgICBNYXA8U3RyaW5nLCBPYmplY3Q+IGJvZHkgPSBNYXAub2YoImNvZGUiLCBleC5nZXRTdGF0dXMoKS5nZXRDb2RlKCksICJtZXNzYWdlIiwKKyAgICAgICAgICAgICAgICBleC5nZXRNZXNzYWdlKCksICJzdWNjZXNzIiwgZmFsc2UpOworICAgICAgICByZXR1cm4gUmVzcG9uc2VFbnRpdHkuc3RhdHVzKGNvZGVNYXAuZ2V0T3JEZWZhdWx0KGV4LmdldFN0YXR1cygpLCBIdHRwU3RhdHVzLkJBRF9SRVFVRVNUKSkuYm9keShib2R5KTsKKyAgICB9CisKKyAgICBARXhjZXB0aW9uSGFuZGxlcihNZXRob2RBcmd1bWVudE5vdFZhbGlkRXhjZXB0aW9uLmNsYXNzKQorICAgIHB1YmxpYyBSZXNwb25zZUVudGl0eTxNYXA8U3RyaW5nLCBPYmplY3Q+PiBoYW5kbGVNZXRob2RBcmd1bWVudE5vdFZhbGlkRXhjZXB0aW9uKAorICAgICAgICAgICAgTWV0aG9kQXJndW1lbnROb3RWYWxpZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIExpc3Q8U3RyaW5nPiBmaWVsZEVycm9ycyA9IGUuZ2V0QmluZGluZ1Jlc3VsdCgpLmdldEZpZWxkRXJyb3JzKCkuc3RyZWFtKCkKKyAgICAgICAgICAgICAgICAubWFwKGZpZWxkRXJyb3IgLT4gZmllbGRFcnJvci5nZXRGaWVsZCgpICsgIiAiICsgZmllbGRFcnJvci5nZXREZWZhdWx0TWVzc2FnZSgpKQorICAgICAgICAgICAgICAgIC5jb2xsZWN0KENvbGxlY3RvcnMudG9MaXN0KCkpOworICAgICAgICBNYXA8U3RyaW5nLCBPYmplY3Q+IGJvZHkgPSBnZXRFcnJvcnNNYXAoZmllbGRFcnJvcnMpOworICAgICAgICByZXR1cm4gUmVzcG9uc2VFbnRpdHkuc3RhdHVzKEh0dHBTdGF0dXMuQkFEX1JFUVVFU1QpLmJvZHkoYm9keSk7CisgICAgfQorCisgICAgQEV4Y2VwdGlvbkhhbmRsZXIoQ29uc3RyYWludFZpb2xhdGlvbkV4Y2VwdGlvbi5jbGFzcykKKyAgICBwdWJsaWMgUmVzcG9uc2VFbnRpdHk8TWFwPFN0cmluZywgT2JqZWN0Pj4gaGFuZGxlQ29uc3RyYWludFZpb2xhdGlvbkV4Y2VwdGlvbigKKyAgICAgICAgICAgIENvbnN0cmFpbnRWaW9sYXRpb25FeGNlcHRpb24gZSkgeworICAgICAgICBMaXN0PFN0cmluZz4gZXJyb3JzID0gZS5nZXRDb25zdHJhaW50VmlvbGF0aW9ucygpLnN0cmVhbSgpCisgICAgICAgICAgICAgICAgLm1hcChjb25zdHJhaW50VmlvbGF0aW9uIC0+IGNvbnN0cmFpbnRWaW9sYXRpb24uZ2V0UHJvcGVydHlQYXRoKCkgKyBjb25zdHJhaW50VmlvbGF0aW9uLmdldE1lc3NhZ2UoKSkKKyAgICAgICAgICAgICAgICAuY29sbGVjdChDb2xsZWN0b3JzLnRvTGlzdCgpKTsKKyAgICAgICAgTWFwPFN0cmluZywgT2JqZWN0PiBib2R5ID0gZ2V0RXJyb3JzTWFwKGVycm9ycyk7CisgICAgICAgIHJldHVybiBSZXNwb25zZUVudGl0eS5zdGF0dXMoSHR0cFN0YXR1cy5CQURfUkVRVUVTVCkuYm9keShib2R5KTsKKyAgICB9CisKKyAgICBwcml2YXRlIE1hcDxTdHJpbmcsIE9iamVjdD4gZ2V0RXJyb3JzTWFwKExpc3Q8U3RyaW5nPiBmaWVsZEVycm9ycykgeworICAgICAgICBNYXA8U3RyaW5nLCBPYmplY3Q+IGJvZHkgPSBuZXcgSGFzaE1hcDw+KCk7CisgICAgICAgIGJvZHkucHV0KCJjb2RlIiwgQ29tbW9uUmVzdWx0U3RhdHVzLlBBUkFNX0VSUk9SLmdldENvZGUoKSk7CisgICAgICAgIGJvZHkucHV0KCJtZXNzYWdlIiwgZmllbGRFcnJvcnMuc3RyZWFtKCkuY29sbGVjdChDb2xsZWN0b3JzLmpvaW5pbmcoIiwgIikpKTsKKyAgICAgICAgYm9keS5wdXQoImVycm9ycyIsIGZpZWxkRXJyb3JzKTsKKyAgICAgICAgYm9keS5wdXQoInN1Y2Nlc3MiLCBmYWxzZSk7CisgICAgICAgIHJldHVybiBib2R5OworICAgIH0KKworCit9CisKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9jb250cm9sbGVyL2NvbW1vbi9leGNlcHRpb24vRXhjZXB0aW9uQ29udHJvbGxlckFkdmljZVRyYWNrZXIuamF2YSBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9jb250cm9sbGVyL2NvbW1vbi9leGNlcHRpb24vRXhjZXB0aW9uQ29udHJvbGxlckFkdmljZVRyYWNrZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYzVmYmZiCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2NvbnRyb2xsZXIvY29tbW9uL2V4Y2VwdGlvbi9FeGNlcHRpb25Db250cm9sbGVyQWR2aWNlVHJhY2tlci5qYXZhCkBAIC0wLDAgKzEsMzAgQEAKK3BhY2thZ2UgY29tLnJ1b3lpLndlYi5jb250cm9sbGVyLmNvbW1vbi5leGNlcHRpb247CisKK2ltcG9ydCBjb20ucnVveWkud2ViLlRvb2wuQlQuQmVuY29kZVV0aWw7CitpbXBvcnQgY29tLnJ1b3lpLndlYi5jb250cm9sbGVyLkJULlRyYWNrZXJDb250cm9sbGVyOworaW1wb3J0IGxvbWJvay5leHRlcm4uc2xmNGouU2xmNGo7CitpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay53ZWIuYmluZC5hbm5vdGF0aW9uLkV4Y2VwdGlvbkhhbmRsZXI7CitpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay53ZWIuYmluZC5hbm5vdGF0aW9uLlJlc3RDb250cm9sbGVyQWR2aWNlOworCisvKioKKyAqIEBhdXRob3IgcGxleHB0CisgKi8KK0BTbGY0agorQFJlc3RDb250cm9sbGVyQWR2aWNlKGFzc2lnbmFibGVUeXBlcyA9IFRyYWNrZXJDb250cm9sbGVyLmNsYXNzKQorcHVibGljIGNsYXNzIEV4Y2VwdGlvbkNvbnRyb2xsZXJBZHZpY2VUcmFja2VyIHsKKworCisgICAgQEV4Y2VwdGlvbkhhbmRsZXIoVHJhY2tlckV4Y2VwdGlvbi5jbGFzcykKKyAgICBwdWJsaWMgU3RyaW5nIGludmFsaWRMZW5ndGhFeGNlcHRpb25IYW5kbGVyKFRyYWNrZXJFeGNlcHRpb24gZXhjZXB0aW9uKSB7CisKKyAgICAgICAgcmV0dXJuIEJlbmNvZGVVdGlsLmVycm9yKGV4Y2VwdGlvbi5nZXRNZXNzYWdlKCkpOworICAgIH0KKworICAgIEBFeGNlcHRpb25IYW5kbGVyKEV4Y2VwdGlvbi5jbGFzcykKKyAgICBwdWJsaWMgU3RyaW5nIGUoRXhjZXB0aW9uIGV4Y2VwdGlvbikgeworICAgICAgICByZXR1cm4gQmVuY29kZVV0aWwuZXJyb3IoZXhjZXB0aW9uLmdldE1lc3NhZ2UoKSk7CisgICAgfQorCisKK30KKwpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2NvbnRyb2xsZXIvY29tbW9uL2V4Y2VwdGlvbi9Sb2NrZXRQVEV4Y2VwdGlvbi5qYXZhIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2NvbnRyb2xsZXIvY29tbW9uL2V4Y2VwdGlvbi9Sb2NrZXRQVEV4Y2VwdGlvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBkNDdkN2QKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvY29udHJvbGxlci9jb21tb24vZXhjZXB0aW9uL1JvY2tldFBURXhjZXB0aW9uLmphdmEKQEAgLTAsMCArMSwzNiBAQAorcGFja2FnZSBjb20ucnVveWkud2ViLmNvbnRyb2xsZXIuY29tbW9uLmV4Y2VwdGlvbjsKKworaW1wb3J0IGNvbS5ydW95aS53ZWIuY29udHJvbGxlci5jb21tb24uQ29tbW9uUmVzdWx0U3RhdHVzOworaW1wb3J0IGNvbS5ydW95aS53ZWIuY29udHJvbGxlci5jb21tb24uUmVzdWx0U3RhdHVzOworCisvKioKKyAqIEBhdXRob3IgSnJ4CisgKi8KK3B1YmxpYyBjbGFzcyBSb2NrZXRQVEV4Y2VwdGlvbiBleHRlbmRzIFJ1bnRpbWVFeGNlcHRpb24geworICAgIHByaXZhdGUgZmluYWwgUmVzdWx0U3RhdHVzIHN0YXR1czsKKworICAgIHB1YmxpYyBSb2NrZXRQVEV4Y2VwdGlvbihSZXN1bHRTdGF0dXMgc3RhdHVzKSB7CisgICAgICAgIHN1cGVyKHN0YXR1cy5nZXRNZXNzYWdlKCkpOworICAgICAgICB0aGlzLnN0YXR1cyA9IHN0YXR1czsKKyAgICB9CisKKyAgICBwdWJsaWMgUm9ja2V0UFRFeGNlcHRpb24oUmVzdWx0U3RhdHVzIHN0YXR1cywgU3RyaW5nIG1lc3NhZ2UpIHsKKyAgICAgICAgc3VwZXIobWVzc2FnZSk7CisgICAgICAgIHRoaXMuc3RhdHVzID0gc3RhdHVzOworICAgIH0KKworICAgIHB1YmxpYyBSb2NrZXRQVEV4Y2VwdGlvbihjb20ucnVveWkud2ViLmNvbnRyb2xsZXIuY29tbW9uLkNvbW1vblJlc3VsdFN0YXR1cyBwYXJhbUVycm9yLCBTdHJpbmcgbWVzc2FnZSkgeworICAgICAgICBzdXBlcihtZXNzYWdlKTsKKyAgICAgICAgdGhpcy5zdGF0dXMgPSBDb21tb25SZXN1bHRTdGF0dXMuRkFJTDsKKyAgICB9CisgICAgcHVibGljIFJvY2tldFBURXhjZXB0aW9uKFN0cmluZyBtZXNzYWdlKSB7CisgICAgICAgIHN1cGVyKG1lc3NhZ2UpOworICAgICAgICB0aGlzLnN0YXR1cyA9IENvbW1vblJlc3VsdFN0YXR1cy5GQUlMOworICAgIH0KKworICAgIHB1YmxpYyBSZXN1bHRTdGF0dXMgZ2V0U3RhdHVzKCkgeworICAgICAgICByZXR1cm4gc3RhdHVzOworICAgIH0KKworCit9CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvY29udHJvbGxlci9jb21tb24vZXhjZXB0aW9uL1RyYWNrZXJFeGNlcHRpb24uamF2YSBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9jb250cm9sbGVyL2NvbW1vbi9leGNlcHRpb24vVHJhY2tlckV4Y2VwdGlvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4YzQ5Y2MKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvY29udHJvbGxlci9jb21tb24vZXhjZXB0aW9uL1RyYWNrZXJFeGNlcHRpb24uamF2YQpAQCAtMCwwICsxLDI2IEBACitwYWNrYWdlIGNvbS5ydW95aS53ZWIuY29udHJvbGxlci5jb21tb24uZXhjZXB0aW9uOworCisKK3B1YmxpYyBjbGFzcyBUcmFja2VyRXhjZXB0aW9uIGV4dGVuZHMgUnVudGltZUV4Y2VwdGlvbiB7CisKKyAgICBwdWJsaWMgVHJhY2tlckV4Y2VwdGlvbigpIHsKKyAgICAgICAgc3VwZXIoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgVHJhY2tlckV4Y2VwdGlvbihTdHJpbmcgbWVzc2FnZSkgeworICAgICAgICBzdXBlcihtZXNzYWdlKTsKKyAgICB9CisKKyAgICBwdWJsaWMgVHJhY2tlckV4Y2VwdGlvbihTdHJpbmcgbWVzc2FnZSwgVGhyb3dhYmxlIGNhdXNlKSB7CisgICAgICAgIHN1cGVyKG1lc3NhZ2UsIGNhdXNlKTsKKyAgICB9CisKKyAgICBwdWJsaWMgVHJhY2tlckV4Y2VwdGlvbihUaHJvd2FibGUgY2F1c2UpIHsKKyAgICAgICAgc3VwZXIoY2F1c2UpOworICAgIH0KKworICAgIHByb3RlY3RlZCBUcmFja2VyRXhjZXB0aW9uKFN0cmluZyBtZXNzYWdlLCBUaHJvd2FibGUgY2F1c2UsIGJvb2xlYW4gZW5hYmxlU3VwcHJlc3Npb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiB3cml0YWJsZVN0YWNrVHJhY2UpIHsKKyAgICAgICAgc3VwZXIobWVzc2FnZSwgY2F1c2UsIGVuYWJsZVN1cHByZXNzaW9uLCB3cml0YWJsZVN0YWNrVHJhY2UpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9jb250cm9sbGVyL2NvbW1vbi9leGNlcHRpb24vVHJhY2tlck5vUmV0cnlFeGNlcHRpb24uamF2YSBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9jb250cm9sbGVyL2NvbW1vbi9leGNlcHRpb24vVHJhY2tlck5vUmV0cnlFeGNlcHRpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kM2I5MGNjCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2NvbnRyb2xsZXIvY29tbW9uL2V4Y2VwdGlvbi9UcmFja2VyTm9SZXRyeUV4Y2VwdGlvbi5qYXZhCkBAIC0wLDAgKzEsMjYgQEAKK3BhY2thZ2UgY29tLnJ1b3lpLndlYi5jb250cm9sbGVyLmNvbW1vbi5leGNlcHRpb247CisKKworcHVibGljIGNsYXNzIFRyYWNrZXJOb1JldHJ5RXhjZXB0aW9uIGV4dGVuZHMgVHJhY2tlckV4Y2VwdGlvbiB7CisKKyAgICBwdWJsaWMgVHJhY2tlck5vUmV0cnlFeGNlcHRpb24oKSB7CisgICAgICAgIHN1cGVyKCk7CisgICAgfQorCisgICAgcHVibGljIFRyYWNrZXJOb1JldHJ5RXhjZXB0aW9uKFN0cmluZyBtZXNzYWdlKSB7CisgICAgICAgIHN1cGVyKG1lc3NhZ2UpOworICAgIH0KKworICAgIHB1YmxpYyBUcmFja2VyTm9SZXRyeUV4Y2VwdGlvbihTdHJpbmcgbWVzc2FnZSwgVGhyb3dhYmxlIGNhdXNlKSB7CisgICAgICAgIHN1cGVyKG1lc3NhZ2UsIGNhdXNlKTsKKyAgICB9CisKKyAgICBwdWJsaWMgVHJhY2tlck5vUmV0cnlFeGNlcHRpb24oVGhyb3dhYmxlIGNhdXNlKSB7CisgICAgICAgIHN1cGVyKGNhdXNlKTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgVHJhY2tlck5vUmV0cnlFeGNlcHRpb24oU3RyaW5nIG1lc3NhZ2UsIFRocm93YWJsZSBjYXVzZSwgYm9vbGVhbiBlbmFibGVTdXBwcmVzc2lvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiB3cml0YWJsZVN0YWNrVHJhY2UpIHsKKyAgICAgICAgc3VwZXIobWVzc2FnZSwgY2F1c2UsIGVuYWJsZVN1cHByZXNzaW9uLCB3cml0YWJsZVN0YWNrVHJhY2UpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9jb250cm9sbGVyL2NvbW1vbi9leGNlcHRpb24vVXNlckV4Y2VwdGlvbi5qYXZhIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2NvbnRyb2xsZXIvY29tbW9uL2V4Y2VwdGlvbi9Vc2VyRXhjZXB0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmZlNzE0MgotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9jb250cm9sbGVyL2NvbW1vbi9leGNlcHRpb24vVXNlckV4Y2VwdGlvbi5qYXZhCkBAIC0wLDAgKzEsMTcgQEAKK3BhY2thZ2UgY29tLnJ1b3lpLndlYi5jb250cm9sbGVyLmNvbW1vbi5leGNlcHRpb247CisKK2ltcG9ydCBjb20ucnVveWkud2ViLmNvbnRyb2xsZXIuY29tbW9uLlJlc3VsdFN0YXR1czsKKworLyoqCisgKiBAYXV0aG9yIHBsZXhwdAorICovCitwdWJsaWMgY2xhc3MgVXNlckV4Y2VwdGlvbiBleHRlbmRzIFJvY2tldFBURXhjZXB0aW9uIHsKKworICAgIHB1YmxpYyBVc2VyRXhjZXB0aW9uKFJlc3VsdFN0YXR1cyBzdGF0dXMpIHsKKyAgICAgICAgc3VwZXIoc3RhdHVzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgVXNlckV4Y2VwdGlvbihSZXN1bHRTdGF0dXMgc3RhdHVzLCBTdHJpbmcgbWVzc2FnZSkgeworICAgICAgICBzdXBlcihzdGF0dXMsIG1lc3NhZ2UpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9jb250cm9sbGVyL3N5c3RlbS9TeXNSZWdpc3RlckNvbnRyb2xsZXIuamF2YSBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9jb250cm9sbGVyL3N5c3RlbS9TeXNSZWdpc3RlckNvbnRyb2xsZXIuamF2YQppbmRleCBmZTE5MjQ5Li5iNGIwMTdiIDEwMDY0NAotLS0gYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvY29udHJvbGxlci9zeXN0ZW0vU3lzUmVnaXN0ZXJDb250cm9sbGVyLmphdmEKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2NvbnRyb2xsZXIvc3lzdGVtL1N5c1JlZ2lzdGVyQ29udHJvbGxlci5qYXZhCkBAIC0zNCw1ICszNCwzMSBAQAogICAgICAgICB9CiAgICAgICAgIFN0cmluZyBtc2cgPSByZWdpc3RlclNlcnZpY2UucmVnaXN0ZXIodXNlcik7CiAgICAgICAgIHJldHVybiBTdHJpbmdVdGlscy5pc0VtcHR5KG1zZykgPyBzdWNjZXNzKCkgOiBlcnJvcihtc2cpOworICAgICAgICAgICAgLy8g5Yib5bu655So5oi35Yet6K+B5a6e5L2TCisvLyAgICAgICAgVXNlckNyZWRlbnRpYWxFbnRpdHkgdXNlckNyZWRlbnRpYWxFbnRpdHkgPSBuZXcgVXNlckNyZWRlbnRpYWxFbnRpdHkoKTsKKy8vICAgICAgICB1c2VyQ3JlZGVudGlhbEVudGl0eS5zZXRJZCh1c2VyRW50aXR5LmdldElkKCkpOworLy8gICAgICAgIHVzZXJDcmVkZW50aWFsRW50aXR5LnNldFVzZXJuYW1lKHBhcmFtLmdldFVzZXJuYW1lKCkpOworLy8gICAgICAgIHVzZXJDcmVkZW50aWFsRW50aXR5LnNldFJlZ0lwKElQVXRpbHMuZ2V0SXBBZGRyKCkpOworLy8gICAgICAgIHVzZXJDcmVkZW50aWFsRW50aXR5LnNldFJlZ1R5cGUocGFyYW0uZ2V0VHlwZSgpKTsKKy8vICAgICAgICBTdHJpbmcgY2hlY2tDb2RlID0gcGFzc2tleU1hbmFnZXIuZ2VuZXJhdGUodXNlckVudGl0eS5nZXRJZCgpKTsKKy8vICAgICAgICB1c2VyQ3JlZGVudGlhbEVudGl0eS5zZXRDaGVja0NvZGUoY2hlY2tDb2RlKTsKKy8vCisvLyAgICAgICAgLy8g55Sf5oiQ6ZqP5py655uQ5ZKM5a+G56CBCisvLyAgICAgICAgU3RyaW5nIHNhbHQgPSBSYW5kb21VdGlsLnJhbmRvbVN0cmluZyg4KTsKKy8vICAgICAgICBTdHJpbmcgcGFzc2tleSA9IHBhc3NrZXlNYW5hZ2VyLmdlbmVyYXRlKHVzZXJFbnRpdHkuZ2V0SWQoKSk7CisvLworLy8gICAgICAgIHVzZXJDcmVkZW50aWFsRW50aXR5LnNldFNhbHQoc2FsdCk7CisvLyAgICAgICAgdXNlckNyZWRlbnRpYWxFbnRpdHkuc2V0UGFzc2tleShwYXNza2V5KTsKKy8vICAgICAgICBTdHJpbmcgZ2VuZXJhdGVkUGFzc3dvcmQgPSB1c2VyQ3JlZGVudGlhbFNlcnZpY2UuZ2VuZXJhdGUocGFyYW0uZ2V0UGFzc3dvcmQoKSwgc2FsdCk7CisvLyAgICAgICAgdXNlckNyZWRlbnRpYWxFbnRpdHkuc2V0UGFzc3dvcmQoZ2VuZXJhdGVkUGFzc3dvcmQpOworLy8KKy8vICAgICAgICAvLyDkv53lrZjnlKjmiLflh63or4Hlrp7kvZMKKy8vICAgICAgICB1c2VyQ3JlZGVudGlhbFNlcnZpY2Uuc2F2ZSh1c2VyQ3JlZGVudGlhbEVudGl0eSk7CisvLyAgICAgICAgdXNlclJvbGVTZXJ2aWNlLnJlZ2lzdGVyKHVzZXJFbnRpdHkuZ2V0SWQoKSk7CisKKworCisKKwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9kYW8vQlQvQW5ub3VuY2VSZXF1ZXN0LmphdmEgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvZGFvL0JUL0Fubm91bmNlUmVxdWVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgxOWU2OGEKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvZGFvL0JUL0Fubm91bmNlUmVxdWVzdC5qYXZhCkBAIC0wLDAgKzEsMzA5IEBACitwYWNrYWdlIGNvbS5ydW95aS53ZWIuZGFvLkJUOworCitpbXBvcnQgY29tLnJ1b3lpLndlYi5kb21haW4uQlQuVG9ycmVudEVudGl0eTsKK2ltcG9ydCBjb20ucnVveWkud2ViLmRvbWFpbi5zeXMuVXNlckVudGl0eTsKK2ltcG9ydCBsb21ib2suRGF0YTsKK2ltcG9ydCBsb21ib2suZXh0ZXJuLnNsZjRqLlNsZjRqOworCisvKioKKyAqIEFubm91bmNl6K+35rGC5Y+C5pWwCisgKiA8cD4KKyAqIOWPguiAgworICogaHR0cDovL2JpdHRvcnJlbnQub3JnL2JlcHMvYmVwXzAwMDMuaHRtbAorICogaHR0cHM6Ly93aWtpLnRoZW9yeS5vcmcvQml0VG9ycmVudFNwZWNpZmljYXRpb24KKyAqIGh0dHBzOi8vd2lraS50aGVvcnkub3JnL0JpdFRvcnJlbnRfVHJhY2tlcl9Qcm90b2NvbAorICovCitARGF0YQorQFNsZjRqCitwdWJsaWMgY2xhc3MgQW5ub3VuY2VSZXF1ZXN0IHsKKyAgICAvL+adpeiHquWuouaIt+err+eahOivt+axguWmguS4iworICAgIC8vIHFCaXR0b3JyZW50IHY0LjUuNQorICAgIC8veworICAgIC8vICAicGFzc2tleSI6ICJ4eHh4eHh4eCIsCisgICAgLy8gICJpbmZvX2hhc2giOiAiJTVkJWRmJTE5JWEyJTg1JTAzIiwKKyAgICAvLyAgInBlZXJfaWQiOiAiLXFCNDU1MC1OSjRweHh4a3gpemEiLAorICAgIC8vICAicG9ydCI6IDE0MDQyLAorICAgIC8vICAidXBsb2FkZWQiOiAwLAorICAgIC8vICAiZG93bmxvYWRlZCI6IDAsCisgICAgLy8gICJsZWZ0IjogMTM1NjIxMzc1LAorICAgIC8vICAiY29ycnVwdCI6IDAsCisgICAgLy8gICJrZXkiOiAiQjk5REU5MUUiLAorICAgIC8vICAiZXZlbnQiOiAic3RhcnRlZCIsCisgICAgLy8gICJudW13YW50IjogMjAwLAorICAgIC8vICAiY29tcGFjdCI6IDEsCisgICAgLy8gICJub19wZWVyX2lkIjogMSwKKyAgICAvLyAgInN1cHBvcnRjcnlwdG8iOiAxLAorICAgIC8vICAicmVkdW5kYW50IjogMCwKKyAgICAvLyAgImlwdjYiOiBbCisgICAgLy8gICAgIjExMTE6MjIyIiwKKyAgICAvLyAgICAiMTExMTozMzMiCisgICAgLy8gIF0KKyAgICAvL30KKworCisgICAgLy9UcmFuc21pc3Npb24gNC4wLjMKKyAgICAvL3sKKyAgICAvLyAgInBhc3NrZXkiOiAieHh4eHgiLAorICAgIC8vICAiaW5mb19oYXNoIjogInh4eCIsCisgICAgLy8gICJwZWVyX2lkIjogIi1UUjQwMzAtYTJjZHh4eHhmNDJtIiwKKyAgICAvLyAgInBvcnQiOiA1MTQxMywKKyAgICAvLyAgInVwbG9hZGVkIjogMCwKKyAgICAvLyAgImRvd25sb2FkZWQiOiAwLAorICAgIC8vICAibGVmdCI6IDEzNTYyMTM3NSwKKyAgICAvLyAgIm51bXdhbnQiOiA4MCwKKyAgICAvLyAgImtleSI6IDIxMTY0NzI2MzUsCisgICAgLy8gICJjb21wYWN0IjogMSwKKyAgICAvLyAgInN1cHBvcnRjcnlwdG8iOiAxLAorICAgIC8vICAiZXZlbnQiOiAic3RhcnRlZCIKKyAgICAvL30KKworICAgIC8vdVRvcnJlbnQgMy42LjAKKyAgICAvL3sKKyAgICAvLyAgInBhc3NrZXkiOiAieHh4eHgiLAorICAgIC8vICAiaW5mb19oYXNoIjogInh4eCIsCisgICAgLy8gICJwZWVyX2lkIjogIi1VVDM2MFMtJTI0JWI3JWMxJTVlQWN0JWU2c3klMmYlZTkiLAorICAgIC8vICAicG9ydCI6IDE2NjIzLAorICAgIC8vICAidXBsb2FkZWQiOiAwLAorICAgIC8vICAiZG93bmxvYWRlZCI6IDAsCisgICAgLy8gICJsZWZ0IjogMTM1NjIxMzc1LAorICAgIC8vICAiY29ycnVwdCI6IDAsCisgICAgLy8gICJrZXkiOiAiRDM5RDczM0MiLAorICAgIC8vICAiZXZlbnQiOiAic3RhcnRlZCIsCisgICAgLy8gICJudW13YW50IjogMjAwLAorICAgIC8vICAiY29tcGFjdCI6IDEsCisgICAgLy8gICJub19wZWVyX2lkIjogMQorICAgIC8vfQorCisgICAgLy/CtVRvcnJlbnQtMi4yLjEKKyAgICAvL3sKKyAgICAvLyAgInBhc3NrZXkiOiAieHh4eCIsCisgICAgLy8gICJpbmZvX2hhc2giOiAieHh4IiwKKyAgICAvLyAgInBlZXJfaWQiOiAiLVVUMjIxMC0lZDZiMiViNTAlYzElMWQlOWIlMGElZTclODIlYzAiLAorICAgIC8vICAicG9ydCI6IDYzNjM2LAorICAgIC8vICAidXBsb2FkZWQiOiAwLAorICAgIC8vICAiZG93bmxvYWRlZCI6IDAsCisgICAgLy8gICJsZWZ0IjogMTM1NjIxMzc1LAorICAgIC8vICAiY29ycnVwdCI6IDAsCisgICAgLy8gICJrZXkiOiAiMDE0RTI1Q0YiLAorICAgIC8vICAiZXZlbnQiOiAic3RhcnRlZCIsCisgICAgLy8gICJudW13YW50IjogMjAwLAorICAgIC8vICAiY29tcGFjdCI6IDEsCisgICAgLy8gICJub19wZWVyX2lkIjogMSwKKyAgICAvLyAgImlwdjYiOiAiMjEwZSUxYTMiCisgICAgLy99CisKKyAgICAvL3sKKyAgICAvLyAgInBhc3NrZXkiOiAieHh4IiwKKyAgICAvLyAgImluZm9faGFzaCI6ICJ4eHgiLAorICAgIC8vICAicGVlcl9pZCI6ICItVVQzNTVTLSVkOCViNWclMWNmJWE1JTgwJWM4JTE2JWY0JTEyJTBiIiwKKyAgICAvLyAgInBvcnQiOiAyNDI5NSwKKyAgICAvLyAgInVwbG9hZGVkIjogMCwKKyAgICAvLyAgImRvd25sb2FkZWQiOiAwLAorICAgIC8vICAibGVmdCI6IDEzNTYyMTM3NSwKKyAgICAvLyAgImNvcnJ1cHQiOiAwLAorICAgIC8vICAia2V5IjogIkMzOTRGNENBIiwKKyAgICAvLyAgImV2ZW50IjogInN0YXJ0ZWQiLAorICAgIC8vICAibnVtd2FudCI6IDIwMCwKKyAgICAvLyAgImNvbXBhY3QiOiAxLAorICAgIC8vICAibm9fcGVlcl9pZCI6IDEKKyAgICAvL30KKworICAgIC8qKgorICAgICAqIHBhc3NrZXkKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBwYXNza2V5OworCisgICAgLyoqCisgICAgICogaGFzaAorICAgICAqIDIw5a2X6IqCU0hBMeWTiOW4jOOAguivt+azqOaEj++8jOivpeWAvOWwhuaYr+S4gOS4qmLnvJbnoIHnmoTlrZflhbgKKyAgICAgKi8KKyAgICBwcml2YXRlIGJ5dGVbXSBpbmZvSGFzaDsKKworICAgIC8qKgorICAgICAqIOWuouaIt+err0lECisgICAgICog5a6i5oi356uv5Zyo5ZCv5Yqo5pe255Sf5oiQ55qE55So5L2c5a6i5oi356uv5ZSv5LiASUTnmoR1cmznvJbnoIHnmoQyMOWtl+iKguWtl+espuS4suOAggorICAgICAqIOWug+WPr+S7peaYr+S7u+S9leWAvO+8jOS5n+WPr+S7peaYr+S6jOi/m+WItuaVsOaNruOAguWug+iHs+WwkeW/hemhu+WvueaCqOeahOacrOWcsOacuuWZqOaYr+WUr+S4gOeahO+8jOWboOatpOW6lOivpeWMheaLrOivuOWmgui/m+eoi0lE5ZKM5Y+v6IO95Zyo5ZCv5Yqo5pe26K6w5b2V55qE5pe26Ze05oiz5LmL57G755qE5Lic6KW/44CCCisgICAgICog5pyJ5YWz5q2k5a2X5q6155qE5bi46KeB5a6i5oi356uv57yW56CB77yM6K+35Y+C6KeB5LiL6Z2i55qEcGVlcl9pZOOAggorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIHBlZXJfaWQ7CisgICAgcHJpdmF0ZSBieXRlW10gcGVlcklkOworCisgICAgLyoqCisgICAgICog5a6i5oi356uvSUTvvIgxNui/m+WItu+8iQorICAgICAqIDJkNTQ1MjM0MzAzMzMwMmQ2MjY0NjM3YTcxMTExMTE4Mzg2YTMxNzAKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBwZWVySWRIZXg7CisKKyAgICAvKioKKyAgICAgKiDkuovku7YKKyAgICAgKiBzdGFydGVkLCBjb21wbGV0ZWQsIHN0b3BwZWQgKOaIluS4uuepuu+8jOi/meS4juacquaMh+WumuebuOWQjCkuCisgICAgICog6L+Z5piv5LiA5Liq5Y+v6YCJ55qE6ZSu77yM5a6D5a+55bqU5LqOIHN0YXJ0ZWTvvIjlt7LlvIDlp4vvvInjgIFjb21wbGV0ZWTvvIjlt7LlrozmiJDvvInmiJYgc3RvcHBlZO+8iOW3suWBnOatou+8iSDvvIjmiJbkuLrnqbrvvIzov5nnrYnlkIzkuo7kuI3lh7rnjrDvvInjgIIKKyAgICAgKiDlpoLmnpzmnKrmjIflrprvvIzliJnmraTor7fmsYLmmK/lrprmnJ/miafooYznmoTor7fmsYLkuYvkuIDjgIIKKyAgICAgKiDlvZPkuIvovb3pppbmrKHlvIDlp4vml7bvvIzkvJrlj5HpgIHkvb/nlKggc3RhcnRlZCDnmoTlhazlkYrvvIzlvZPkuIvovb3lrozmiJDml7bvvIzkvJrlj5HpgIHkvb/nlKggY29tcGxldGVkIOeahOWFrOWRiuOAggorICAgICAqIOWmguaenOaWh+S7tuWcqOW8gOWni+aXtuWwseW3sue7j+WujOaIkO+8jOmCo+S5iOS4jeS8muWPkemAgSBjb21wbGV0ZWTjgIIKKyAgICAgKiDlvZPkuIvovb3lmajlgZzmraLkuIvovb3ml7bvvIzkvJrlj5HpgIHkvb/nlKggc3RvcHBlZCDnmoTlhazlkYrjgIIKKyAgICAgKiA8cD4KKyAgICAgKiBzdGFydGVk77ya5a+56Lef6Liq5Zmo55qE56ys5LiA5Liq6K+35rGC5b+F6aG75YyF5ZCr5YW35pyJ5q2k5YC855qE5LqL5Lu26ZSu44CCCisgICAgICogc3RvcHBlZO+8muWmguaenOWuouaIt+err+ato+W4uOWFs+mXre+8jOWImeW/hemhu+WPkemAgeWIsOi3n+i4quWZqOOAggorICAgICAqIGNvbXBsZXRlZO+8muW9k+S4i+i9veWujOaIkOaXtu+8jOW/hemhu+WPkemAgee7mei3n+i4quWZqOOAguS9huaYr++8jOWmguaenOWuouaIt+err+WQr+WKqOaXtuS4i+i9veW3sue7jzEwMCXlrozmiJDvvIzliJnkuI3lvpflj5HpgIHjgILlpKfmpoLmmK/kuLrkuoblhYHorrjot5/ouKrlmajku4XmoLnmja7mraTkuovku7bpgJLlop7igJzlt7LlrozmiJDkuIvovb3igJ3nmoTluqbph4/moIflh4bjgIIKKyAgICAgKgorICAgICAqIEBzZWUgRXZlbnRUeXBlCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgZXZlbnQgPSAiIjsKKworICAgIC8qKgorICAgICAqIElQdjblnLDlnYAKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBpcHY2OworCisgICAgLyoqCisgICAgICogSVB2NOWcsOWdgAorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIGlwdjQ7CisKKyAgICAvKioKKyAgICAgKiBJUOWcsOWdgAorICAgICAqIDxwPgorICAgICAqIOWPr+mAieOAguWuouaIt+err+acuuWZqOeahOecn+WunklQ5Zyw5Z2A77yM5Lul54K55YiG5Zub57uE5qC85byP5oiWcmZjMzUxM+WumuS5ieeahOWNgeWFrei/m+WItklQdjblnLDlnYDjgIIKKyAgICAgKiDms6jmhI/vvJrpgJrluLjkuI3pnIDopoHmraTlj4LmlbDvvIzlm6DkuLrlj6/ku6Xku47lj5Hlh7pIVFRQ6K+35rGC55qESVDlnLDlnYDnoa7lrprlrqLmiLfnq6/nmoTlnLDlnYDjgIIKKyAgICAgKiDlj6rmnInlnKjor7fmsYLliLDovr7nmoRJUOWcsOWdgOS4jeaYr+WuouaIt+err+eahElQ5Zyw5Z2A55qE5oOF5Ya15LiL5omN6ZyA6KaB5q2k5Y+C5pWw44CCCisgICAgICog6L+Z5Y+R55Sf5Zyo5a6i5oi356uv6YCa6L+H5Luj55CG77yI5oiW6YCP5piOV2Vi5Luj55CGL+e8k+WtmO+8ieS4jui3n+i4quWZqOmAmuS/oeeahOaDheWGteS4i+OAggorICAgICAqIOW9k+WuouaIt+err+WSjOi3n+i4quWZqOmDveS9jeS6jk5BVOe9keWFs+eahOWQjOS4gOacrOWcsOS+p+aXtu+8jOS5n+aYr+W/hemcgOeahOOAggorICAgICAqIOi/meagt+WBmueahOWOn+WboOaYr++8jOWQpuWImei3n+i4quWZqOWwhue7meWHuuWuouaIt+err+eahOWGhemDqO+8iFJGQzE5MTjvvInlnLDlnYDvvIzov5nkuI3mmK/lj6/ot6/nlLHnmoTjgIIKKyAgICAgKiDlm6DmraTvvIzlrqLmiLfnq6/lv4XpobvmmL7lvI/lnLDlo7DmmI7lhbbvvIjlpJbpg6jvvIzlj6/ot6/nlLHnmoTvvIlJUOWcsOWdgO+8jOS7peS+v+WIhuWPkee7meWklumDqOWvueetieaWueOAggorICAgICAqIOWQhOenjei3n+i4quWZqOWvueatpOWPguaVsOeahOWkhOeQhuWQhOS4jeebuOWQjOOAguacieS6m+WPquacieWcqOivt+axguWIsOi+vueahElQ5Zyw5Z2A5L2N5LqOUkZDMTkxOOepuumXtOaXtuaJjeaOpeWPl+Wug+OAggorICAgICAqIOWFtuS7luS6uuaXoOadoeS7tuWcsOWwiumHjeWug++8jOiAjOWPpuS4gOS6m+S6uuWImeWujOWFqOW/veeVpeWug+OAguWvueS6jklQdjblnLDlnYDvvIjkvovlpoLvvJoyMDAxOmRiODoxOjI6OjEwMO+8ie+8jOWug+WPquihqOaYjuWuouaIt+err+WPr+S7pemAmui/h0lQdjbov5vooYzpgJrkv6HjgIIKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBpcDsKKworICAgIC8qKgorICAgICAqIOWvhumSpQorICAgICAqIDxwPgorICAgICAqIOWPr+mAieOAguS4gOS4quS4jeS4juS7u+S9leWFtuS7luWuouaIt+err+WFseS6q+eahOmZhOWKoOagh+ivhuOAguWug+aXqOWcqOWFgeiuuOWuouaIt+err+WcqElQ5Zyw5Z2A5pu05pS55pe26K+B5piO5YW26Lqr5Lu944CCCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcga2V5OworCisKKyAgICAvKioKKyAgICAgKiDnq6/lj6Plj7cKKyAgICAgKiDlrqLmiLfnq6/mraPlnKjkvqblkKznmoTnq6/lj6Plj7fjgILkuLpCaXRUb3JyZW505L+d55WZ55qE56uv5Y+j6YCa5bi45pivNjg4MS02ODg544CCCisgICAgICovCisgICAgcHJpdmF0ZSBJbnRlZ2VyIHBvcnQ7CisKKyAgICAvKioKKyAgICAgKiDpnIDopoHnmoTlkIzkvLTmlbAKKyAgICAgKiBodHRwOi8vYml0dG9ycmVudC5vcmcvYmVwcy9iZXBfMDAwOC5odG1sCisgICAgICovCisgICAgcHJpdmF0ZSBJbnRlZ2VyIG51bXdhbnQgPSAyMDA7CisKKyAgICAvKioKKyAgICAgKiDlt7LkuIvovb3ph48KKyAgICAgKiDlrqLmiLfnq6/lkJHot5/ouKrlmajlj5HpgIEnc3RhcnRlZCfkuovku7blkI7kuIvovb3nmoTmgLvph4/vvIjku6Xln7rmlbDljYHnmoRBU0NJSeihqOekuu+8ieOAguiZveeEtuWumOaWueinhOiMg+S4reayoeacieaYjuehruivtOaYju+8jOS9huWFseivhuaYr+i/meW6lOivpeaYr+S4i+i9veeahOaAu+Wtl+iKguaVsOOAggorICAgICAqLworICAgIHByaXZhdGUgTG9uZyBkb3dubG9hZGVkID0gLTFMOworCisgICAgLyoqCisgICAgICog5bey5LiK5Lyg6YePCisgICAgICog5a6i5oi356uv5ZCRdHJhY2tlcuWPkemAgSdzdGFydGVkJ+S6i+S7tuWQjuS4iuS8oOeahOaAu+mHj++8iOS7peWfuuaVsOWNgeeahEFTQ0lJ6KGo56S677yJ44CCCisgICAgICog6Jm954S25a6Y5pa56KeE6IyD5Lit5rKh5pyJ5piO56Gu6K+05piO77yM5L2G5YWx6K+G5piv6L+Z5bqU6K+l5piv5LiK5Lyg55qE5oC75a2X6IqC5pWw44CCCisgICAgICovCisgICAgcHJpdmF0ZSBMb25nIHVwbG9hZGVkID0gLTFMOworCisgICAgLyoqCisgICAgICog5Ymp5L2Z6YePCisgICAgICog5q2k5a6i5oi356uv5LuN6ZyA5LiL6L2955qE5a2X6IqC5pWw77yI5Lul5Z+65pWw5Y2B55qEQVNDSUnooajnpLrvvInjgILmvoTmuIXvvJrkuLrkuobovr7liLAxMDAl55qE5a6M5oiQ5bqm5bm26I635b6X56eN5a2Q5Lit5YyF5ZCr55qE5omA5pyJ5paH5Lu277yM6ZyA6KaB5LiL6L2955qE5a2X6IqC5pWw44CCCisgICAgICovCisgICAgcHJpdmF0ZSBMb25nIGxlZnQgPSAtMUw7CisKKyAgICAvKioKKyAgICAgKiByZWR1bmRhbnQKKyAgICAgKiA8cD4KKyAgICAgKiBodHRwOi8vYml0dG9ycmVudC5vcmcvYmVwcy9iZXBfMDAxNi5odG1sCisgICAgICogPHA+CisgICAgICog56CU56m25oiW6KeC5a+f6KGo5piO77yM6YCa6L+H6LaF57qn5pKt56eN5qih5byP77yM5Yid5aeL5pKt56eN6ICF5Yib5bu65paw56eN5a2Q5omA6ZyA55qE5LiK5Lyg5pWw5o2u6YeP5LuF5Li65oC75paH5Lu25aSn5bCP55qE5aSn57qmMTA1Je+8jOiAjOS9v+eUqOagh+WHhuaWueazlemAmuW4uOmcgOimgTE1MC0yMDAl44CCCisgICAgICog5LiA6Iis55So6YCU5LiN5bu66K6u5L2/55So6LaF57qn56eN5a2Q5qih5byP44CC6Jm954S25a6D56Gu5a6e5pyJ5Yqp5LqO5pu05bm/5rOb5Zyw5YiG5Y+R56iA5pyJ5pWw5o2u77yMCisgICAgICog5L2G5Zug5Li65a6D6ZmQ5Yi25LqG5a6i5oi356uv5Y+v5Lul5LiL6L2955qE54mH5q6155qE6YCJ5oup77yM5omA5Lul5a6D5Lmf6ZmQ5Yi25LqG6L+Z5Lqb5a6i5oi356uv5LiL6L295LuW5Lus5bey57uP6YOo5YiG5qOA57Si55qE54mH5q6155qE5pWw5o2u55qE6IO95Yqb44CCCisgICAgICog5Zug5q2k77yM5LuF5bu66K6u5Yid5aeL56eN5a2Q5pyN5Yqh5Zmo5L2/55So6LaF57qn56eN5a2Q5qih5byP44CCCisgICAgICovCisgICAgcHJpdmF0ZSBMb25nIHJlZHVuZGFudCA9IDBMOworCisgICAgLyoqCisgICAgICog5Y6L57yp5ZON5bqUCisgICAgICog5bCG5q2k6K6+572u5Li6MeihqOekuuWuouaIt+err+aOpeWPl+e0p+WHkeeahOWTjeW6lOOAggorICAgICAqIDxwPgorICAgICAqIOebuOWFs+aWh+ahoworICAgICAqIGh0dHA6Ly9iaXR0b3JyZW50Lm9yZy9iZXBzL2JlcF8wMDA3Lmh0bWwKKyAgICAgKiBodHRwOi8vYml0dG9ycmVudC5vcmcvYmVwcy9iZXBfMDAxMC5odG1sCisgICAgICogaHR0cDovL2JpdHRvcnJlbnQub3JnL2JlcHMvYmVwXzAwMTUuaHRtbAorICAgICAqIGh0dHA6Ly9iaXR0b3JyZW50Lm9yZy9iZXBzL2JlcF8wMDUyLmh0bWwKKyAgICAgKiBodHRwOi8vYml0dG9ycmVudC5vcmcvYmVwcy9iZXBfMDAyMy5odG1sCisgICAgICovCisgICAgcHJpdmF0ZSBJbnRlZ2VyIGNvbXBhY3Q7CisKKyAgICAvKioKKyAgICAgKiAibm9fcGVlcl9pZCLvvJrooajnpLp0cmFja2Vy5Y+v5Lul5ZyocGVlcnPlrZflhbjkuK3nnIHnlaVwZWVyIGlk5a2X5q6144CC5aaC5p6c5ZCv55So5LqGImNvbXBhY3Qi6YCJ6aG577yM5YiZ5Lya5b+955Wl5q2k6YCJ6aG544CCCisgICAgICovCisgICAgcHJpdmF0ZSBJbnRlZ2VyIG5vX3BlZXJfaWQ7CisKKyAgICAvKioKKyAgICAgKiDlgZrnp40KKyAgICAgKi8KKyAgICBwcml2YXRlIEJvb2xlYW4gc2VlZGVyOworCisgICAgLyoqCisgICAgICog6L+c56iL5Zyw5Z2ACisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgcmVtb3RlQWRkcjsKKworICAgIC8qKgorICAgICAqIOWuouaIt+err+S/oeaBrworICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIHVzZXJBZ2VudDsKKworICAgIC8qKgorICAgICAqIOaDs+imgeeahOaRmOimgeS/oeaBrworICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIHdhbnREaWdlc3Q7CisKKyAgICAvKioKKyAgICAgKiDnlKjmiLflrp7kvZMKKyAgICAgKi8KKyAgICBwcml2YXRlIFVzZXJFbnRpdHkgdXNlcjsKKworICAgIC8qKgorICAgICAqIOeUqOaIt+WunuS9kworICAgICAqLworICAgIHByaXZhdGUgVG9ycmVudEVudGl0eSB0b3JyZW50OworCisKKyAgICBwdWJsaWMgYm9vbGVhbiBpc05vUGVlcklkKCkgeworICAgICAgICBib29sZWFuIG5vUGVlcklkID0gSW50ZWdlci52YWx1ZU9mKDEpLmVxdWFscyhnZXROb19wZWVyX2lkKCkpOworCisgICAgICAgIHJldHVybiBub1BlZXJJZDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiDkuovku7YKKyAgICAgKiBzdGFydGVkLCBjb21wbGV0ZWQsIHN0b3BwZWQgKOaIluS4uuepuu+8jOi/meS4juacquaMh+WumuebuOWQjCkuCisgICAgICog6L+Z5piv5LiA5Liq5Y+v6YCJ55qE6ZSu77yM5a6D5a+55bqU5LqOIHN0YXJ0ZWTvvIjlt7LlvIDlp4vvvInjgIFjb21wbGV0ZWTvvIjlt7LlrozmiJDvvInmiJYgc3RvcHBlZO+8iOW3suWBnOatou+8iSDvvIjmiJbkuLrnqbrvvIzov5nnrYnlkIzkuo7kuI3lh7rnjrDvvInjgIIKKyAgICAgKiDlpoLmnpzmnKrmjIflrprvvIzliJnmraTor7fmsYLmmK/lrprmnJ/miafooYznmoTor7fmsYLkuYvkuIDjgIIKKyAgICAgKiDlvZPkuIvovb3pppbmrKHlvIDlp4vml7bvvIzkvJrlj5HpgIHkvb/nlKggc3RhcnRlZCDnmoTlhazlkYrvvIzlvZPkuIvovb3lrozmiJDml7bvvIzkvJrlj5HpgIHkvb/nlKggY29tcGxldGVkIOeahOWFrOWRiuOAggorICAgICAqIOWmguaenOaWh+S7tuWcqOW8gOWni+aXtuWwseW3sue7j+WujOaIkO+8jOmCo+S5iOS4jeS8muWPkemAgSBjb21wbGV0ZWTjgIIKKyAgICAgKiDlvZPkuIvovb3lmajlgZzmraLkuIvovb3ml7bvvIzkvJrlj5HpgIHkvb/nlKggc3RvcHBlZCDnmoTlhazlkYrjgIIKKyAgICAgKiA8cD4KKyAgICAgKiBzdGFydGVk77ya5a+56Lef6Liq5Zmo55qE56ys5LiA5Liq6K+35rGC5b+F6aG75YyF5ZCr5YW35pyJ5q2k5YC855qE5LqL5Lu26ZSu44CCCisgICAgICogc3RvcHBlZO+8muWmguaenOWuouaIt+err+ato+W4uOWFs+mXre+8jOWImeW/hemhu+WPkemAgeWIsOi3n+i4quWZqOOAggorICAgICAqIGNvbXBsZXRlZO+8muW9k+S4i+i9veWujOaIkOaXtu+8jOW/hemhu+WPkemAgee7mei3n+i4quWZqOOAguS9huaYr++8jOWmguaenOWuouaIt+err+WQr+WKqOaXtuS4i+i9veW3sue7jzEwMCXlrozmiJDvvIzliJnkuI3lvpflj5HpgIHjgILlpKfmpoLmmK/kuLrkuoblhYHorrjot5/ouKrlmajku4XmoLnmja7mraTkuovku7bpgJLlop7igJzlt7LlrozmiJDkuIvovb3igJ3nmoTluqbph4/moIflh4bjgIIKKyAgICAgKiBwYXVzZWTvvJogaHR0cDovL2JpdHRvcnJlbnQub3JnL2JlcHMvYmVwXzAwMjEuaHRtbAorICAgICAqLworICAgIHB1YmxpYyBpbnRlcmZhY2UgRXZlbnRUeXBlIHsKKyAgICAgICAgLy8gc3RhcnRlZCwgY29tcGxldGVkLCBzdG9wcGVkICjmiJbkuLrnqbrvvIzov5nkuI7mnKrmjIflrprnm7jlkIwpLgorICAgICAgICAvLworICAgICAgICBTdHJpbmcgc3RhcnRlZCA9ICJzdGFydGVkIjsKKyAgICAgICAgU3RyaW5nIGNvbXBsZXRlZCA9ICJjb21wbGV0ZWQiOworICAgICAgICBTdHJpbmcgc3RvcHBlZCA9ICJzdG9wcGVkIjsKKyAgICAgICAgU3RyaW5nIHBhdXNlZCA9ICJwYXVzZWQiOworICAgICAgICBTdHJpbmcgZW1wdHkgPSAiIjsKKyAgICB9CisKK30KZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9kYW8vQlQvU3VnZ2VzdERhby5qYXZhIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2Rhby9CVC9TdWdnZXN0RGFvLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWM2ZjkyYgotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9kYW8vQlQvU3VnZ2VzdERhby5qYXZhCkBAIC0wLDAgKzEsMjUgQEAKK3BhY2thZ2UgY29tLnJ1b3lpLndlYi5kYW8uQlQ7CisKK2ltcG9ydCBjb20uYmFvbWlkb3UubXliYXRpc3BsdXMuY29yZS5tYXBwZXIuQmFzZU1hcHBlcjsKK2ltcG9ydCBjb20ucnVveWkud2ViLmRvbWFpbi5CVC5TdWdnZXN0RW50aXR5OworaW1wb3J0IGNvbS5ydW95aS53ZWIuZG9tYWluLkJULlN1Z2dlc3RWbzsKK2ltcG9ydCBvcmcuYXBhY2hlLmliYXRpcy5hbm5vdGF0aW9ucy5NYXBwZXI7CitpbXBvcnQgb3JnLmFwYWNoZS5pYmF0aXMuYW5ub3RhdGlvbnMuUGFyYW07CitpbXBvcnQgb3JnLmFwYWNoZS5pYmF0aXMuYW5ub3RhdGlvbnMuU2VsZWN0OworCitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CisKKy8qKgorICogQGF1dGhvciB5enIKKyAqLworQE1hcHBlcgorcHVibGljIGludGVyZmFjZSBTdWdnZXN0RGFvIGV4dGVuZHMgQmFzZU1hcHBlcjxTdWdnZXN0RW50aXR5PiB7CisKKworICAgIEBTZWxlY3QoIlNFTEVDVCBrZXl3b3JkIEFTIHN1Z2dlc3QsIENPVU5UKCopIEFTIGNvdW50ICIgKworICAgICAgICAgICAgIkZST00gdF9zdWdnZXN0IFdIRVJFIGtleXdvcmQgTElLRSAje3NlYXJjaFN0cn0gIiArCisgICAgICAgICAgICAiR1JPVVAgQlkga2V5d29yZCAiICsKKyAgICAgICAgICAgICJPUkRFUiBCWSBjb3VudCBERVNDLCBrZXl3b3JkIERFU0MgTElNSVQgMTAiKQorICAgIExpc3Q8U3VnZ2VzdFZvPiBnZXRTdWdnZXN0aW9ucyhAUGFyYW0oInNlYXJjaFN0ciIpIFN0cmluZyBzZWFyY2hTdHIpOworCit9CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvZGFvL0JUL1RhZ0Rhby5qYXZhIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2Rhby9CVC9UYWdEYW8uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZDNjZTU1Ci0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2Rhby9CVC9UYWdEYW8uamF2YQpAQCAtMCwwICsxLDE4IEBACitwYWNrYWdlIGNvbS5ydW95aS53ZWIuZGFvLkJUOworCitpbXBvcnQgY29tLmJhb21pZG91Lm15YmF0aXNwbHVzLmNvcmUubWFwcGVyLkJhc2VNYXBwZXI7CitpbXBvcnQgY29tLnJ1b3lpLndlYi5kb21haW4uQlQuVGFnQ2F0RW50aXR5OworaW1wb3J0IGNvbS5ydW95aS53ZWIuZG9tYWluLkJULlRhZ0VudGl0eTsKK2ltcG9ydCBvcmcuYXBhY2hlLmliYXRpcy5hbm5vdGF0aW9ucy5NYXBwZXI7CitpbXBvcnQgb3JnLmFwYWNoZS5pYmF0aXMuYW5ub3RhdGlvbnMuU2VsZWN0OworCitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CisKKworQE1hcHBlcgorcHVibGljIGludGVyZmFjZSBUYWdEYW8gZXh0ZW5kcyBCYXNlTWFwcGVyPFRhZ0VudGl0eT4geworICAgIEBTZWxlY3QoInNlbGVjdCAqIGZyb20gYnRfdGFnIikKKyAgICBMaXN0PFRhZ0VudGl0eT4gYWxsX3RhZygpOworICAgIEBTZWxlY3QoInNlbGVjdCAqIGZyb20gYnRfY2F0IikKKyAgICBMaXN0PFRhZ0NhdEVudGl0eT4gYWxsX2NhdCgpOworfQpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2Rhby9CVC9Ub3JyZW50Q29tbWVudERhby5qYXZhIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2Rhby9CVC9Ub3JyZW50Q29tbWVudERhby5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJmNTBhN2IKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvZGFvL0JUL1RvcnJlbnRDb21tZW50RGFvLmphdmEKQEAgLTAsMCArMSwxOCBAQAorcGFja2FnZSBjb20ucnVveWkud2ViLmRhby5CVDsKKworaW1wb3J0IGNvbS5iYW9taWRvdS5teWJhdGlzcGx1cy5jb3JlLm1hcHBlci5CYXNlTWFwcGVyOworaW1wb3J0IGNvbS5ydW95aS53ZWIuZG9tYWluLkJULlRvcnJlbnRDb21tZW50RW50aXR5OworaW1wb3J0IG9yZy5hcGFjaGUuaWJhdGlzLmFubm90YXRpb25zLk1hcHBlcjsKK2ltcG9ydCBvcmcuYXBhY2hlLmliYXRpcy5hbm5vdGF0aW9ucy5TZWxlY3Q7CisKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKKworQE1hcHBlcgorcHVibGljIGludGVyZmFjZSBUb3JyZW50Q29tbWVudERhbyBleHRlbmRzIEJhc2VNYXBwZXI8VG9ycmVudENvbW1lbnRFbnRpdHk+IHsKKworICAgIEBTZWxlY3QoInNlbGVjdCAqIGZyb20gYnRfdG9ycmVudF9jb21tZW50IHdoZXJlIHRvcnJlbnRfaWQ9I3t0b3JyZW50SWR9IikKKyAgICBMaXN0PFRvcnJlbnRDb21tZW50RW50aXR5PiAgc2VsZWN0QnlUb3JyZW50SWQoSW50ZWdlciB0b3JyZW50SWQpOworCisgICAgQFNlbGVjdCgic2VsZWN0ICogZnJvbSBidF90b3JyZW50X2NvbW1lbnQgd2hlcmUgcGlkPSN7cGlkfSIpCisgICAgTGlzdDxUb3JyZW50Q29tbWVudEVudGl0eT4gc2VsZWN0QnlQYXJlbnRJZChJbnRlZ2VyIHBpZCk7Cit9CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvZGFvL0JUL1RvcnJlbnREYW8uamF2YSBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9kYW8vQlQvVG9ycmVudERhby5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBjY2MwNjYKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvZGFvL0JUL1RvcnJlbnREYW8uamF2YQpAQCAtMCwwICsxLDg4IEBACitwYWNrYWdlIGNvbS5ydW95aS53ZWIuZGFvLkJUOworCitpbXBvcnQgY29tLmJhb21pZG91Lm15YmF0aXNwbHVzLmNvcmUuY29uZGl0aW9ucy5xdWVyeS5RdWVyeVdyYXBwZXI7CitpbXBvcnQgY29tLmJhb21pZG91Lm15YmF0aXNwbHVzLmNvcmUubWFwcGVyLkJhc2VNYXBwZXI7CitpbXBvcnQgY29tLmJhb21pZG91Lm15YmF0aXNwbHVzLmNvcmUudG9vbGtpdC5TdHJpbmdVdGlsczsKK2ltcG9ydCBjb20ucnVveWkud2ViLmRvbWFpbi5CVC5BZHZhbmNlZFRvcnJlbnRQYXJhbTsKK2ltcG9ydCBjb20ucnVveWkud2ViLmRvbWFpbi5CVC5Ub3JyZW50RW50aXR5OworaW1wb3J0IGNvbS5ydW95aS53ZWIuZG9tYWluLkJULlRvcnJlbnRQYXJhbTsKK2ltcG9ydCBvcmcuYXBhY2hlLmliYXRpcy5hbm5vdGF0aW9ucy4qOworaW1wb3J0IG9yZy5hcGFjaGUucG9pLnNzLmZvcm11bGEuZnVuY3Rpb25zLlQ7CisKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKKworQE1hcHBlcgorcHVibGljIGludGVyZmFjZSBUb3JyZW50RGFvIGV4dGVuZHMgQmFzZU1hcHBlcjxUb3JyZW50RW50aXR5PiB7CisgICAgTGlzdDxUb3JyZW50RW50aXR5PiBzZWFyY2goVG9ycmVudFBhcmFtIHBhcmFtKTsKKyAgICBASW5zZXJ0KCJJTlNFUlQgSU5UTyBidF90b3JyZW50IChcbiIgKworICAgICAgICAgICAgIiAgICBpbmZvX2hhc2gsIG5hbWUsIGZpbGVuYW1lLCB0aXRsZSwgc3ViaGVhZGluZywgXG4iICsKKyAgICAgICAgICAgICIgICAgY292ZXIsIGRlc2NyaXB0aW9uLCBjYXRlZ29yeSwgc3RhdHVzLCBmaWxlX3N0YXR1cywgXG4iICsKKyAgICAgICAgICAgICIgICAgcmV2aWV3ZXIsIGNyZWF0ZV90aW1lLCB1cGRhdGVfdGltZSwgb3duZXIsIHNpemUsIFxuIiArCisgICAgICAgICAgICAiICAgIHR5cGUsIGZpbGVfY291bnQsIGNvbW1lbnRzLCB2aWV3cywgaGl0cywgXG4iICsKKyAgICAgICAgICAgICIgICAgdmlzaWJsZSwgYW5vbnltb3VzLCBsZWVjaGVycywgc2VlZGVycywgY29tcGxldGlvbnMsIFxuIiArCisgICAgICAgICAgICAiICAgIHJlbWFya1xuIiArCisgICAgICAgICAgICAiKSBWQUxVRVMgKFxuIiArCisgICAgICAgICAgICAiICAgICN7aW5mb0hhc2h9LCAje25hbWV9LCAje2ZpbGVuYW1lfSwgI3t0aXRsZX0sICN7c3ViaGVhZGluZ30sIFxuIiArCisgICAgICAgICAgICAiICAgICN7Y292ZXJ9LCAje2Rlc2NyaXB0aW9ufSwgI3tjYXRlZ29yeX0sICN7c3RhdHVzfSwgI3tmaWxlU3RhdHVzfSwgXG4iICsKKyAgICAgICAgICAgICIgICAgI3tyZXZpZXdlcn0sICN7Y3JlYXRlVGltZX0sICN7dXBkYXRlVGltZX0sICN7b3duZXJ9LCAje3NpemV9LCBcbiIgKworICAgICAgICAgICAgIiAgICAje3R5cGV9LCAje2ZpbGVDb3VudH0sICN7Y29tbWVudHN9LCAje3ZpZXdzfSwgI3toaXRzfSwgXG4iICsKKyAgICAgICAgICAgICIgICAgI3t2aXNpYmxlfSwgI3thbm9ueW1vdXN9LCAje2xlZWNoZXJzfSwgI3tzZWVkZXJzfSwgI3tjb21wbGV0aW9uc30sIFxuIiArCisgICAgICAgICAgICAiICAgICN7cmVtYXJrfVxuIiArCisgICAgICAgICAgICAiKSIpCisgICAgaW50IGluc2VydChUb3JyZW50RW50aXR5IGVudGl0eSk7CisKKyAgICBAU2VsZWN0KCJzZWxlY3QgKiBmcm9tIGJ0X3RvcnJlbnQgd2hlcmUgaWQ9I3tpZH0iKQorICAgIFRvcnJlbnRFbnRpdHkgc2VsZWN0QnlJZChpbnQgaWQpOworCisgICAgQFNlbGVjdCgiU0VMRUNUIENPVU5UKCopIEZST00gYnRfdG9ycmVudCBXSEVSRSBpbmZvX2hhc2ggPSAje2luZm9IYXNofSIpCisgICAgbG9uZyBzZWxlY3RDb3VudEJ5SW5mb0hhc2goYnl0ZVtdIGluZm9IYXNoKTsKKworCisgICAgZGVmYXVsdCBMaXN0PFRvcnJlbnRFbnRpdHk+IGFkdmFuY2VkU2VhcmNoKEFkdmFuY2VkVG9ycmVudFBhcmFtIHBhcmFtKSB7CisgICAgICAgIFF1ZXJ5V3JhcHBlcjxUb3JyZW50RW50aXR5PiB3cmFwcGVyID0gbmV3IFF1ZXJ5V3JhcHBlcjw+KCk7CisKKyAgICAgICAgLy8g5p6E5bu65Z+656GA5p+l6K+i5p2h5Lu2CisgICAgICAgIGlmIChwYXJhbS5nZXRDYXRlZ29yeSgpICE9IG51bGwpIHsKKyAgICAgICAgICAgIHdyYXBwZXIuZXEoImNhdGVnb3J5IiwgcGFyYW0uZ2V0Q2F0ZWdvcnkoKSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHBhcmFtLmdldFN0YXR1cygpICE9IG51bGwpIHsKKyAgICAgICAgICAgIHdyYXBwZXIuZXEoInN0YXR1cyIsIHBhcmFtLmdldFN0YXR1cygpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIOWkhOeQhuaOkuW6jworICAgICAgICBpZiAoU3RyaW5nVXRpbHMuaXNOb3RCbGFuayhwYXJhbS5nZXRTb3J0RmllbGQoKSkpIHsKKyAgICAgICAgICAgIC8vIOWuieWFqOaYoOWwhO+8mumYsuatolNRTOazqOWFpQorICAgICAgICAgICAgU3RyaW5nIG9yZGVyQnlGaWVsZCA9IG1hcFNvcnRGaWVsZChwYXJhbS5nZXRTb3J0RmllbGQoKSk7CisgICAgICAgICAgICBpZiAob3JkZXJCeUZpZWxkICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBib29sZWFuIGlzQXNjID0gImFzYyIuZXF1YWxzSWdub3JlQ2FzZShwYXJhbS5nZXRTb3J0RGlyZWN0aW9uKCkpOworICAgICAgICAgICAgICAgIHdyYXBwZXIub3JkZXJCeSh0cnVlLCBpc0FzYywgb3JkZXJCeUZpZWxkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB0aGlzLnNlbGVjdExpc3Qod3JhcHBlcik7CisgICAgfQorCisgICAgLyoqCisgICAgICog5a6J5YWo5pig5bCE5o6S5bqP5a2X5q6177yI6Ziy5q2iU1FM5rOo5YWl77yJCisgICAgICovCisgICAgZGVmYXVsdCBTdHJpbmcgbWFwU29ydEZpZWxkKFN0cmluZyBzb3J0RmllbGQpIHsKKyAgICAgICAgc3dpdGNoIChzb3J0RmllbGQpIHsKKyAgICAgICAgICAgIGNhc2UgImNyZWF0ZVRpbWUiOgorICAgICAgICAgICAgICAgIHJldHVybiAiY3JlYXRlX3RpbWUiOworICAgICAgICAgICAgY2FzZSAidXBkYXRlVGltZSI6CisgICAgICAgICAgICAgICAgcmV0dXJuICJ1cGRhdGVfdGltZSI7CisgICAgICAgICAgICBjYXNlICJjb21wbGV0aW9ucyI6CisgICAgICAgICAgICAgICAgcmV0dXJuICJjb21wbGV0aW9ucyI7CisgICAgICAgICAgICBjYXNlICJsZWVjaGVycyI6CisgICAgICAgICAgICAgICAgcmV0dXJuICJsZWVjaGVycyI7CisgICAgICAgICAgICBjYXNlICJzZWVkZXJzIjoKKyAgICAgICAgICAgICAgICByZXR1cm4gInNlZWRlcnMiOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsgLy8g5b+955Wl6Z2e5rOV5a2X5q61CisgICAgICAgIH0KKyAgICB9CisKKyAgICBAVXBkYXRlKCJVUERBVEUgYnRfdG9ycmVudCBTRVQgbGVlY2hlcnMgPSBsZWVjaGVycyArIDEgV0hFUkUgaWQgPSAje2lkfSIpCisgICAgaW50IGluY3JlbWVudExlZWNoZXJzKEBQYXJhbSgiaWQiKSBJbnRlZ2VyIGlkKTsKKworfQpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2Rhby9CVC9Ub3JyZW50RmlsZURhby5qYXZhIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2Rhby9CVC9Ub3JyZW50RmlsZURhby5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRjZGEwNmUKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvZGFvL0JUL1RvcnJlbnRGaWxlRGFvLmphdmEKQEAgLTAsMCArMSwxMiBAQAorcGFja2FnZSBjb20ucnVveWkud2ViLmRhby5CVDsKKworaW1wb3J0IGNvbS5iYW9taWRvdS5teWJhdGlzcGx1cy5jb3JlLm1hcHBlci5CYXNlTWFwcGVyOworaW1wb3J0IGNvbS5ydW95aS53ZWIuZG9tYWluLkJULlRvcnJlbnRGaWxlc0VudGl0eTsKK2ltcG9ydCBvcmcuYXBhY2hlLmliYXRpcy5hbm5vdGF0aW9ucy5NYXBwZXI7CisKKy8qKgorICogQGF1dGhvciB5enIKKyAqLworQE1hcHBlcgorcHVibGljIGludGVyZmFjZSBUb3JyZW50RmlsZURhbyBleHRlbmRzIEJhc2VNYXBwZXI8VG9ycmVudEZpbGVzRW50aXR5PiB7Cit9CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvZGFvL0JUL1RvcnJlbnRQZWVyRGFvLmphdmEgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvZGFvL0JUL1RvcnJlbnRQZWVyRGFvLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTYzNDcxYQotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9kYW8vQlQvVG9ycmVudFBlZXJEYW8uamF2YQpAQCAtMCwwICsxLDE0IEBACitwYWNrYWdlIGNvbS5ydW95aS53ZWIuZGFvLkJUOworCitpbXBvcnQgY29tLmJhb21pZG91Lm15YmF0aXNwbHVzLmNvcmUubWFwcGVyLkJhc2VNYXBwZXI7CitpbXBvcnQgY29tLnJ1b3lpLndlYi5kb21haW4uQlQuVG9ycmVudFBlZXJFbnRpdHk7CitpbXBvcnQgb3JnLmFwYWNoZS5pYmF0aXMuYW5ub3RhdGlvbnMuTWFwcGVyOworCisvKioKKyAqIOenjeWtkFBlZXIKKyAqCisgKi8KK0BNYXBwZXIKK3B1YmxpYyBpbnRlcmZhY2UgVG9ycmVudFBlZXJEYW8gZXh0ZW5kcyBCYXNlTWFwcGVyPFRvcnJlbnRQZWVyRW50aXR5PiB7CisKK30KZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9kYW8vQlQvVG9ycmVudFRhZ0Rhby5qYXZhIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2Rhby9CVC9Ub3JyZW50VGFnRGFvLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTAyYWI2NAotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9kYW8vQlQvVG9ycmVudFRhZ0Rhby5qYXZhCkBAIC0wLDAgKzEsMTAgQEAKK3BhY2thZ2UgY29tLnJ1b3lpLndlYi5kYW8uQlQ7CisKK2ltcG9ydCBjb20uYmFvbWlkb3UubXliYXRpc3BsdXMuY29yZS5tYXBwZXIuQmFzZU1hcHBlcjsKK2ltcG9ydCBjb20ucnVveWkud2ViLmRvbWFpbi5CVC5Ub3JyZW50VGFnRW50aXR5OworaW1wb3J0IG9yZy5hcGFjaGUuaWJhdGlzLmFubm90YXRpb25zLk1hcHBlcjsKKworCitATWFwcGVyCitwdWJsaWMgaW50ZXJmYWNlIFRvcnJlbnRUYWdEYW8gZXh0ZW5kcyBCYXNlTWFwcGVyPFRvcnJlbnRUYWdFbnRpdHk+IHsKK30KZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9kYW8vQlQvVHJhY2tlclJlc3BvbnNlLmphdmEgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvZGFvL0JUL1RyYWNrZXJSZXNwb25zZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE1YzcwYjUKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvZGFvL0JUL1RyYWNrZXJSZXNwb25zZS5qYXZhCkBAIC0wLDAgKzEsOTEgQEAKK3BhY2thZ2UgY29tLnJ1b3lpLndlYi5kYW8uQlQ7CisKKworaW1wb3J0IGxvbWJvay5EYXRhOworCitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKKworQERhdGEKK3B1YmxpYyBjbGFzcyBUcmFja2VyUmVzcG9uc2UgeworCisKKyAgICBTdHJpbmcgZmFpbHVyZVJlYXNvbjsKKworICAgIFN0cmluZyB3YXJuaW5nTWVzc2FnZTsKKworICAgIEludGVnZXIgaW50ZXJ2YWw7CisKKyAgICBJbnRlZ2VyIG1pbkludGVydmFsOworCisgICAgU3RyaW5nIHRyYWNrZXJJZDsKKworICAgIEludGVnZXIgY29tcGxldGU7CisgICAgSW50ZWdlciBpbmNvbXBsZXRlOworCisgICAgLyoqCisgICAgICog5LiL6L295qyh5pWwCisgICAgICogcWJpdOWPr+S7peeci+WIsAorICAgICAqLworICAgIEludGVnZXIgZG93bmxvYWRlZDsKKworICAgIExpc3Q8TWFwPFN0cmluZywgT2JqZWN0Pj4gcGVlcnM7CisKKyAgICBwdWJsaWMgc3RhdGljIFRyYWNrZXJSZXNwb25zZSBidWlsZChJbnRlZ2VyIGludGVydmFsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIgbWluSW50ZXJ2YWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlciBjb21wbGV0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyIGluY29tcGxldGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdDxNYXA8U3RyaW5nLCBPYmplY3Q+PiBwZWVycykgeworICAgICAgICBUcmFja2VyUmVzcG9uc2UgcmVzcG9uc2UgPSBuZXcgVHJhY2tlclJlc3BvbnNlKCk7CisgICAgICAgIHJlc3BvbnNlLnNldEludGVydmFsKGludGVydmFsKTsKKyAgICAgICAgcmVzcG9uc2Uuc2V0TWluSW50ZXJ2YWwobWluSW50ZXJ2YWwpOworICAgICAgICByZXNwb25zZS5zZXRDb21wbGV0ZShjb21wbGV0ZSk7CisgICAgICAgIHJlc3BvbnNlLnNldEluY29tcGxldGUoaW5jb21wbGV0ZSk7CisgICAgICAgIHJlc3BvbnNlLnNldFBlZXJzKHBlZXJzKTsKKworICAgICAgICByZXR1cm4gcmVzcG9uc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogVHJhY2tlciDlk43lupQKKyAgICAgKiA8cD4KKyAgICAgKiBUcmFja2VyIOi/lOWbnuS4gOS4qiAidGV4dC9wbGFpbiIg5paH5qGj77yM6K+l5paH5qGj5YyF5ZCr5LiA5LiqIGJlbmNvZGVkIOWtl+WFuO+8jOWFtuS4reWMheWQq+S7peS4i+mUruWAvO+8mgorICAgICAqIDxwPgorICAgICAqIGZhaWx1cmUgcmVhc29u77yI5aSx6LSl5Y6f5Zug77yJ77ya5aaC5p6c5q2k6ZSu5a2Y5Zyo77yM5YiZ5Y+v6IO95rKh5pyJ5YW25LuW6ZSu44CC6K+l5YC85piv5LiA5Liq5Lq657G75Y+v6K+755qE6ZSZ6K+v5raI5oGv77yM6K+05piO6K+35rGC5Li65L2V5aSx6LSl77yI5a2X56ym5Liy77yJ44CCCisgICAgICogd2FybmluZyBtZXNzYWdl77yI6K2m5ZGK5L+h5oGv77yJ77ya77yI5paw55qE77yM5Y+v6YCJ55qE77yJ57G75Ly85LqOIGZhaWx1cmUgcmVhc29u77yM5L2G5ZON5bqU5LuN5Lya6KKr5q2j5bi45aSE55CG44CC6K2m5ZGK5L+h5oGv5bCx5YOP6ZSZ6K+v5L+h5oGv5LiA5qC35pi+56S644CCCisgICAgICogaW50ZXJ2YWzvvIjpl7TpmpTvvInvvJrlrqLmiLfnq6/lupTlnKjlkJEgdHJhY2tlciDlj5HpgIHluLjop4Tor7fmsYLkuYvpl7TnrYnlvoXnmoTnp5LmlbDjgIIKKyAgICAgKiBtaW4gaW50ZXJ2YWzvvIjmnIDlsI/pl7TpmpTvvInvvJrvvIjlj6/pgInnmoTvvInmnIDlsI/lhazlkYrpl7TpmpTjgILlpoLmnpzmraTplK7lrZjlnKjvvIzlrqLmiLfnq6/kuI3lvpflnKjmraTml7bpl7Tpl7TpmpTlhoXph43lpI3msYfmiqXjgIIKKyAgICAgKiB0cmFja2VyIGlk77yI6Lef6Liq5ZmoIElE77yJ77ya5a6i5oi356uv5bqU5Zyo5YW25LiL5LiA5qyh5rGH5oql5Lit5Y+R6YCB5Zue55qE5a2X56ym5Liy44CC5aaC5p6c5rKh5pyJ5bm25LiU5YWI5YmN55qE5YWs5ZGK5Y+R6YCB5LqG5LiA5Liq6L+96Liq5ZmoSUTvvIzor7fkuI3opoHkuKLlvIPml6flgLzvvJvnu6fnu63kvb/nlKjlroPjgIIKKyAgICAgKiBjb21wbGV0Ze+8iOWujOaIkO+8ie+8muaLpeacieaVtOS4quaWh+S7tueahCBwZWVy77yI5a+5562J5pa577yJ5pWw6YeP77yM5Y2z56eN5a2Qc2VlZGVycyDvvIjmlbTmlbDnsbvlnovvvInjgIIKKyAgICAgKiBpbmNvbXBsZXRl77yI5pyq5a6M5oiQ77yJ77ya6Z2e56eN5a2QIHBlZXLvvIjlr7nnrYnmlrnvvInnmoTmlbDph4/vvIzlj4jlkI0gImxlZWNoZXJzIu+8iOaVtOaVsOexu+Wei++8ieOAggorICAgICAqIHBlZXJzIO+8mu+8iOWtl+WFuOaooeWei++8ieivpemUrueahOWAvOaYr+S4gOS4quWtl+WFuOWIl+ihqO+8jOavj+S4quWtl+WFuOmDveWMheWQq+S7peS4i+mUru+8mgorICAgICAqIC0tLS0gcGVlciBpZCDvvIjlrZfnrKbkuLLvvIkKKyAgICAgKiAtLS0tIGlw77yacGVlcueahElQ5Zyw5Z2A77yM5Y+v5Lul5pivSVB2Nu+8iOWNgeWFrei/m+WItu+8ie+8jElQdjTvvIjngrnnirblm5vlhYPnu4TvvInmiJZETlPlkI3np7DvvIjlrZfnrKbkuLLvvIkKKyAgICAgKiAtLS0tIHBvcnTvvIjnq6/lj6PvvInvvJpwZWVy55qE56uv5Y+j5Y+377yI5pW05pWw77yJCisgICAgICogcGVlcnMg77ya77yI5LqM6L+b5Yi25qih5Z6L77yJ5LiN5L2/55So5LiK6L+w55qE5a2X5YW45qih5Z6L77yMcGVlcnMg6ZSu55qE5YC85Y+v5Lul5piv5LiA5Liq5a2X56ym5Liy77yM55Sx5aSa5LiqNuWtl+iKgue7hOaIkOOAguWJjTTlrZfoioLmmK8gSVAg5Zyw5Z2A77yM5ZCOMuWtl+iKguaYr+err+WPo+WPt+OAguaJgOaciei/meS6m+mDvemHh+eUqOe9kee7nOWtl+iKguW6j++8iOWkp+err+W6j++8ieOAggorICAgICAqIDxwPgorICAgICAqIOWmguS4iuaJgOi/sO+8jOm7mOiupOaDheWGteS4i++8jHBlZXJz5YiX6KGo6ZW/5bqm5Li6IDUw44CC5aaC5p6cIHRvcnJlbnQg5Lit55qEcGVlcnPovoPlsJHvvIzliJnliJfooajkvJrmm7TlsI/jgIIKKyAgICAgKiDlkKbliJnvvIx0cmFja2VyIOS8mumaj+acuumAieaLqeWMheWQq+WcqOWTjeW6lOS4reeahHBlZXJz44CCCisgICAgICogdHJhY2tlciDlj6/og73kvJrpgInmi6nlrp7mlr3mm7Tmmbrog73nmoRwZWVyc+mAieaLqeacuuWItuadpeWTjeW6lOivt+axguOAggorICAgICAqIOS+i+Wmgu+8jOWPr+S7pemBv+WFjeWQkeWFtuS7luenjeWtkOaKpeWRiuenjeWtkOOAggorICAgICAqIDxwPgorICAgICAqIOWcqOWPkeeUn+eJueWumuS6i+S7tu+8iOWmgiBzdG9wcGVkIOaIliBjb21wbGV0ZWTvvInml7bvvIzmiJbogIXlrqLmiLfnq6/pnIDopoHkuobop6Pmm7TlpJpwZWVyc+aXtu+8jOWuouaIt+err+WPr+S7peavlOaMh+WumueahOmXtOmalOabtOmikee5geWcsOWQkSB0cmFja2VyIOWPkemAgeivt+axguOAguS9huaYr++8jOmikee5geWcsOKAnOi9sOeCuOKAnSB0cmFja2VyIOS7peiOt+WPluWkmuS4qnBlZXJz5piv5LiA56eN5LiN6Imv6KGM5Li644CC5aaC5p6c5a6i5oi356uv5biM5pyb5Zyo5ZON5bqU5Lit6I635b6X5aSn6YePcGVlcuWIl+ihqO+8jOWImeW6lOaMh+WumiBudW13YW50IOWPguaVsOOAggorICAgICAqIDxwPgorICAgICAqIOWunuaWveiAheazqOaEj++8muWNs+S9vzMw5LiqcGVlcuW3sue7j+i2s+Wkn++8jOWumOaWueWuouaIt+err+eJiOacrDPlrp7pmYXkuIrlj6rmnInlnKhwZWVy5bCR5LqOMzDkuKrml7bmiY3kuLvliqjlvaLmiJDmlrDov57mjqXvvIzlubbkuJTlpoLmnpzmnIk1NeS4qnBlZXLvvIzlroPlsIbmi5Lnu53ov57mjqXjgILov5nkuKrlgLzlr7nmgKfog73pnZ7luLjph43opoHjgIIKKyAgICAgKiDlvZPmlrDnmoTniYfmrrXkuIvovb3lrozmiJDlkI7vvIzpnIDopoHlkJHlpKflpJrmlbDmtLvot4PnmoRwZWVy5Y+R6YCBIEhBVkUg5raI5oGv77yI6KeB5LiL5paH77yJ44CC57uT5p6c5piv5bm/5pKt5rWB6YeP55qE5oiQ5pys5LiOcGVlcueahOaVsOmHj+aIkOato+avlOOAggorICAgICAqIOi2hei/hzI15LiqcGVlcuWQju+8jOaWsOeahHBlZXLkuI3lpKrlj6/og73lop7liqDkuIvovb3pgJ/luqbjgIIKKyAgICAgKgorICAgICAqIEByZXR1cm4KKyAgICAgKi8KKyAgICBwdWJsaWMgTWFwPFN0cmluZywgT2JqZWN0PiB0b1Jlc3VsdE1hcCgpIHsKKyAgICAgICAgcmV0dXJuIE1hcC5vZigKKyAgICAgICAgICAgICAgICAiaW50ZXJ2YWwiLCBpbnRlcnZhbCwKKyAgICAgICAgICAgICAgICAibWluIGludGVydmFsIiwgbWluSW50ZXJ2YWwsCisgICAgICAgICAgICAgICAgImNvbXBsZXRlIiwgY29tcGxldGUsCisgICAgICAgICAgICAgICAgImluY29tcGxldGUiLCBpbmNvbXBsZXRlLAorICAgICAgICAgICAgICAgICJkb3dubG9hZGVkIiwgNjAsCisgICAgICAgICAgICAgICAgImRvd25sb2FkZXJzIiwgNzAsCisgICAgICAgICAgICAgICAgInBlZXJzIiwgcGVlcnMKKyAgICAgICAgKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvZGFvL3N5cy9Vc2VyQ3JlZGVudGlhbERhby5qYXZhIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2Rhby9zeXMvVXNlckNyZWRlbnRpYWxEYW8uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yM2M0MTIzCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2Rhby9zeXMvVXNlckNyZWRlbnRpYWxEYW8uamF2YQpAQCAtMCwwICsxLDI3IEBACitwYWNrYWdlIGNvbS5ydW95aS53ZWIuZGFvLnN5czsKKworaW1wb3J0IGNvbS5iYW9taWRvdS5teWJhdGlzcGx1cy5jb3JlLm1hcHBlci5CYXNlTWFwcGVyOworaW1wb3J0IGNvbS5ydW95aS53ZWIuZG9tYWluLnN5cy5Vc2VyQ3JlZGVudGlhbEVudGl0eTsKK2ltcG9ydCBvcmcuYXBhY2hlLmliYXRpcy5hbm5vdGF0aW9ucy5JbnNlcnQ7CitpbXBvcnQgb3JnLmFwYWNoZS5pYmF0aXMuYW5ub3RhdGlvbnMuTWFwcGVyOworaW1wb3J0IG9yZy5hcGFjaGUuaWJhdGlzLmFubm90YXRpb25zLlNlbGVjdDsKKworLyoqCisgKiBAYXV0aG9yIEpyeAorICovCitATWFwcGVyCitwdWJsaWMgaW50ZXJmYWNlIFVzZXJDcmVkZW50aWFsRGFvIGV4dGVuZHMgQmFzZU1hcHBlcjxVc2VyQ3JlZGVudGlhbEVudGl0eT4geworCisgICAgQFNlbGVjdCgic2VsZWN0ICogZnJvbSBzeXNfdXNlcl9jcmVkZW50aWFsIHdoZXJlIGlkPSN7aWR9IikKKyAgICBwdWJsaWMgVXNlckNyZWRlbnRpYWxFbnRpdHkgc2VsZWN0QnlJZChpbnQgaWQpOworCisgICAgQEluc2VydCgiIElOU0VSVCBJTlRPIHN5c191c2VyX2NyZWRlbnRpYWwgXG4iICsKKyAgICAgICAgICAgICIgICAgICAgICh1c2VyaWQsdXNlcm5hbWUsIHBhc3N3b3JkLCBzYWx0LCBwYXNza2V5LCBjaGVja19jb2RlLCB0b3RwLCByZWdfaXAsIHJlZ190eXBlKVxuIiArCisgICAgICAgICAgICAiICAgICAgICBWQUxVRVMgXG4iICsKKyAgICAgICAgICAgICIgICAgICAgICgje3VzZXJpZH0sI3t1c2VybmFtZX0sICN7cGFzc3dvcmR9LCAje3NhbHR9LCAje3Bhc3NrZXl9LCAje2NoZWNrQ29kZX0sICN7dG90cH0sICN7cmVnSXB9LCAje3JlZ1R5cGV9KSIpCisgICAgaW50IGluc2VydChVc2VyQ3JlZGVudGlhbEVudGl0eSBlbnRpdHkpOworCisKKyAgICBAU2VsZWN0KCJzZWxlY3QgKiBmcm9tIHN5c191c2VyX2NyZWRlbnRpYWwgd2hlcmUgdXNlcmlkPSN7aWR9IikKKyAgICBVc2VyQ3JlZGVudGlhbEVudGl0eSBnZXRCeUlkKEludGVnZXIgaWQpOworfQpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2Rhby9zeXMvVXNlckRhby5qYXZhIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2Rhby9zeXMvVXNlckRhby5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFkNjQxYzAKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvZGFvL3N5cy9Vc2VyRGFvLmphdmEKQEAgLTAsMCArMSwzOCBAQAorcGFja2FnZSBjb20ucnVveWkud2ViLmRhby5zeXM7CisKK2ltcG9ydCBjb20uYmFvbWlkb3UubXliYXRpc3BsdXMuY29yZS5tYXBwZXIuQmFzZU1hcHBlcjsKK2ltcG9ydCBjb20ucnVveWkud2ViLmRvbWFpbi5zeXMuVXNlckVudGl0eTsKK2ltcG9ydCBvcmcuYXBhY2hlLmliYXRpcy5hbm5vdGF0aW9ucy5NYXBwZXI7CitpbXBvcnQgb3JnLmFwYWNoZS5pYmF0aXMuYW5ub3RhdGlvbnMuU2VsZWN0OworCitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CitpbXBvcnQgamF2YS51dGlsLlNldDsKKworLyoqCisgKiBAYXV0aG9yIEpyeAorICovCisKK0BNYXBwZXIKK3B1YmxpYyBpbnRlcmZhY2UgVXNlckRhbyBleHRlbmRzIEJhc2VNYXBwZXI8VXNlckVudGl0eT4geworCisKKyAgICAvKioKKyAgICAgKiDmn6Xor6LnlKjmiLfnmoTmiYDmnInmnYPpmZAKKyAgICAgKgorICAgICAqIEBwYXJhbSB1c2VySWQg55So5oi3SUQKKyAgICAgKi8KKyAgICBMaXN0PFN0cmluZz4gcXVlcnlBbGxQZXJtcyhJbnRlZ2VyIHVzZXJJZCk7CisKKyAgICBAU2VsZWN0KCJzZWxlY3QgKiBmcm9tIHN5c191c2VyIHdoZXJlIGlkIGluICgje3VzZXJJZHN9KSIpCisgICAgU2V0PFVzZXJFbnRpdHk+IGZpbmRCeUlkcyhTZXQ8TG9uZz4gdXNlcklkcyk7CisKKyAgICBTZXQ8U3RyaW5nPiBsaXN0VXNlclBlcm1pc3Npb25zKEludGVnZXIgdXNlcklkKTsKKworICAgIEBTZWxlY3QoIlNFTEVDVCAqIEZST00gc3lzX3VzZXIgdSBMRUZUIEpPSU4gc3lzX3VzZXJfY3JlZGVudGlhbCB1YyBvbiB1Yy5pZCA9IHUudXNlcl9pZCBXSEVSRSB1Yy5wYXNza2V5PSN7cGFzc2tleX0iKQorICAgIFVzZXJFbnRpdHkgZmluZFVzZXJCeVBhc3NrZXkoU3RyaW5nIHBhc3NrZXkpOworCisgICAgQFNlbGVjdCgiU0VMRUNUICogRlJPTSBzeXNfdXNlciBXSEVSRSB1c2VyX2lkPSN7aWR9IikKKyAgICBVc2VyRW50aXR5IGZpbmRVc2VyQnlJZChJbnRlZ2VyIGlkKTsKKworCit9CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvZG9tYWluL0JUL0FkdmFuY2VkVG9ycmVudFBhcmFtLmphdmEgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvZG9tYWluL0JUL0FkdmFuY2VkVG9ycmVudFBhcmFtLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWUxMDkzNQotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9kb21haW4vQlQvQWR2YW5jZWRUb3JyZW50UGFyYW0uamF2YQpAQCAtMCwwICsxLDE5IEBACitwYWNrYWdlIGNvbS5ydW95aS53ZWIuZG9tYWluLkJUOworCitpbXBvcnQgbG9tYm9rLkRhdGE7CitpbXBvcnQgbG9tYm9rLkVxdWFsc0FuZEhhc2hDb2RlOworCitARGF0YQorQEVxdWFsc0FuZEhhc2hDb2RlKGNhbGxTdXBlciA9IHRydWUpCitwdWJsaWMgY2xhc3MgQWR2YW5jZWRUb3JyZW50UGFyYW0gZXh0ZW5kcyBUb3JyZW50UGFyYW0geworCisgICAgLyoqCisgICAgICog5o6S5bqP5a2X5q6177yI5pSv5oyB77yaY3JlYXRlVGltZS3liJvlu7rml7bpl7TjgIF1cGRhdGVUaW1lLeabtOaWsOaXtumXtOOAgWNvbXBsZXRpb25zLeS4i+i9vemHj+OAgXNlZWRlcnMt5YGa56eN5pWw77yJCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgc29ydEZpZWxkOworCisgICAgLyoqCisgICAgICog5o6S5bqP5pa55ZCR77yIYXNjL2Rlc2PvvIkKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBzb3J0RGlyZWN0aW9uOworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9kb21haW4vQlQvQ29tbWVudEZvcm0uamF2YSBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9kb21haW4vQlQvQ29tbWVudEZvcm0uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMWU0MDgzCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2RvbWFpbi9CVC9Db21tZW50Rm9ybS5qYXZhCkBAIC0wLDAgKzEsMTggQEAKK3BhY2thZ2UgY29tLnJ1b3lpLndlYi5kb21haW4uQlQ7CisKK2ltcG9ydCBqYWthcnRhLnZhbGlkYXRpb24uY29uc3RyYWludHMuTm90Qmxhbms7CitpbXBvcnQgamFrYXJ0YS52YWxpZGF0aW9uLmNvbnN0cmFpbnRzLk5vdE51bGw7CitpbXBvcnQgamFrYXJ0YS52YWxpZGF0aW9uLmNvbnN0cmFpbnRzLlNpemU7CitpbXBvcnQgbG9tYm9rLkRhdGE7CisKK0BEYXRhCitwdWJsaWMgY2xhc3MgQ29tbWVudEZvcm0geworICAgIEBOb3ROdWxsKG1lc3NhZ2UgPSAi56eN5a2QSUTkuI3og73kuLrnqboiKQorICAgIHByaXZhdGUgSW50ZWdlciB0b3JyZW50SWQ7CisKKyAgICBwcml2YXRlIEludGVnZXIgcGlkOyAvLyDlj6/pgInvvIzmpbzkuK3mpbzor4TorroKKworICAgIEBOb3RCbGFuayhtZXNzYWdlID0gIuivhOiuuuWGheWuueS4jeiDveS4uuepuiIpCisgICAgQFNpemUobWF4ID0gMTAwMCwgbWVzc2FnZSA9ICLor4TorrrlhoXlrrnkuI3og73otoXov4cxMDAw5Liq5a2X56ymIikKKyAgICBwcml2YXRlIFN0cmluZyBjb21tZW50OworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9kb21haW4vQlQvRW50aXR5QmFzZS5qYXZhIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2RvbWFpbi9CVC9FbnRpdHlCYXNlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjAwOWQzMgotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9kb21haW4vQlQvRW50aXR5QmFzZS5qYXZhCkBAIC0wLDAgKzEsNzMgQEAKK3BhY2thZ2UgY29tLnJ1b3lpLndlYi5kb21haW4uQlQ7CisKKworaW1wb3J0IGNvbS5iYW9taWRvdS5teWJhdGlzcGx1cy5hbm5vdGF0aW9uLklkVHlwZTsKK2ltcG9ydCBjb20uYmFvbWlkb3UubXliYXRpc3BsdXMuYW5ub3RhdGlvbi5UYWJsZUlkOworaW1wb3J0IGxvbWJvay5HZXR0ZXI7CitpbXBvcnQgbG9tYm9rLlNldHRlcjsKKworaW1wb3J0IGphdmEudXRpbC5PYmplY3RzOworCisvKioKKyAqIEJhc2UgY2xhc3MgZm9yIGFuIGVudGl0eSwgYXMgZXhwbGFpbmVkIGluIHRoZSBib29rICJEb21haW4gRHJpdmVuIERlc2lnbiIuCisgKiBBbGwgZW50aXRpZXMgaW4gdGhpcyBwcm9qZWN0IGhhdmUgYW4gaWRlbnRpdHkgYXR0cmlidXRlIHdpdGggdHlwZSBMb25nIGFuZAorICogbmFtZSBpZC4gSW5zcGlyZWQgYnkgdGhlIERERCBTYW1wbGUgcHJvamVjdC4KKyAqCisgKiBAYXV0aG9yIENocmlzdG9waCBLbmFiZQorICogQGF1dGhvciBwbGV4cHQKKyAqIEBzZWUgPGEgaHJlZj0KKyAqICJodHRwczovL2dpdGh1Yi5jb20vY2l0ZXJ1cy9kZGRzYW1wbGUtY29yZS9ibG9iL21hc3Rlci9zcmMvbWFpbi9qYXZhL3NlL2NpdGVydXMvZGRkc2FtcGxlCisgKiAvZG9tYWluL3NoYXJlZC9FbnRpdHkuamF2YSI+RW50aXR5CisgKiBpbiB0aGUgREREIFNhbXBsZTwvYT4KKyAqIEBzaW5jZSAyMDE3LTAzLTA2CisgKi8KK0BTZXR0ZXIKK0BHZXR0ZXIKK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBFbnRpdHlCYXNlIHsKKworICAgIC8qKgorICAgICAqIFRoaXMgaWRlbnRpdHkgZmllbGQgaGFzIHRoZSB3cmFwcGVyIGNsYXNzIHR5cGUgTG9uZyBzbyB0aGF0IGFuIGVudGl0eSB3aGljaAorICAgICAqIGhhcyBub3QgYmVlbiBzYXZlZCBpcyByZWNvZ25pemFibGUgYnkgYSBudWxsIGlkZW50aXR5LgorICAgICAqLworICAgIEBUYWJsZUlkKHR5cGUgPSBJZFR5cGUuQVVUTykKKyAgICBwcml2YXRlIEludGVnZXIgaWQ7CisKKyAgICBAT3ZlcnJpZGUKKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoZmluYWwgT2JqZWN0IG9iamVjdCkgeworICAgICAgICBpZiAoIShvYmplY3QgaW5zdGFuY2VvZiBFbnRpdHlCYXNlKSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmICghZ2V0Q2xhc3MoKS5lcXVhbHMob2JqZWN0LmdldENsYXNzKCkpKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgZmluYWwgRW50aXR5QmFzZSB0aGF0ID0gKEVudGl0eUJhc2UpIG9iamVjdDsKKyAgICAgICAgX2NoZWNrSWRlbnRpdHkodGhpcyk7CisgICAgICAgIF9jaGVja0lkZW50aXR5KHRoYXQpOworICAgICAgICByZXR1cm4gdGhpcy5pZC5lcXVhbHModGhhdC5nZXRJZCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDaGVja3MgdGhlIHBhc3NlZCBlbnRpdHksIGlmIGl0IGhhcyBhbiBpZGVudGl0eS4gSXQgZ2V0cyBhbiBpZGVudGl0eSBvbmx5IGJ5CisgICAgICogc2F2aW5nLgorICAgICAqCisgICAgICogQHBhcmFtIGVudGl0eSB0aGUgZW50aXR5IHRvIGJlIGNoZWNrZWQKKyAgICAgKiBAdGhyb3dzIElsbGVnYWxTdGF0ZUV4Y2VwdGlvbiB0aGUgcGFzc2VkIGVudGl0eSBkb2VzIG5vdCBoYXZlIHRoZSBpZGVudGl0eQorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBzZXQuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIF9jaGVja0lkZW50aXR5KGZpbmFsIEVudGl0eUJhc2UgZW50aXR5KSB7CisgICAgICAgIGlmIChlbnRpdHkuZ2V0SWQoKSA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJDb21wYXJpc29uIGlkZW50aXR5IG1pc3NpbmcgaW4gZW50aXR5OiAiICsgZW50aXR5KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIEBPdmVycmlkZQorICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKSB7CisgICAgICAgIHJldHVybiBPYmplY3RzLmhhc2godGhpcy5nZXRJZCgpKTsKKyAgICB9CisKKyAgICBAT3ZlcnJpZGUKKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICByZXR1cm4gdGhpcy5nZXRDbGFzcygpLmdldFNpbXBsZU5hbWUoKSArICI8IiArIGdldElkKCkgKyAiPiI7CisgICAgfQorCit9CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvZG9tYWluL0JUL1N1Z2dlc3RFbnRpdHkuamF2YSBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9kb21haW4vQlQvU3VnZ2VzdEVudGl0eS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFkNzJjZGQKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvZG9tYWluL0JUL1N1Z2dlc3RFbnRpdHkuamF2YQpAQCAtMCwwICsxLDM4IEBACitwYWNrYWdlIGNvbS5ydW95aS53ZWIuZG9tYWluLkJUOworCitpbXBvcnQgY29tLmJhb21pZG91Lm15YmF0aXNwbHVzLmFubm90YXRpb24uVGFibGVJZDsKK2ltcG9ydCBjb20uYmFvbWlkb3UubXliYXRpc3BsdXMuYW5ub3RhdGlvbi5UYWJsZU5hbWU7CitpbXBvcnQgaW8uc3dhZ2dlci52My5vYXMuYW5ub3RhdGlvbnMubWVkaWEuU2NoZW1hOworaW1wb3J0IGxvbWJvay5EYXRhOworCitpbXBvcnQgamF2YS50aW1lLkxvY2FsRGF0ZVRpbWU7CisKKy8qKgorICoKKyAqCisgKiBAYXV0aG9yIEpyeAorICovCitARGF0YQorQFRhYmxlTmFtZSgiYnRfc3VnZ2VzdCIpCitwdWJsaWMgY2xhc3MgU3VnZ2VzdEVudGl0eSBleHRlbmRzIEVudGl0eUJhc2UgeworCisKKyAgICBAVGFibGVJZAorICAgIHByaXZhdGUgSW50ZWdlciBpZDsKKyAgICAvKioKKyAgICAgKiDop5LoibLlkI3np7AKKyAgICAgKi8KKyAgICBAU2NoZW1hKGRlc2NyaXB0aW9uID0gImtleXdvcmQiKQorICAgIHByaXZhdGUgU3RyaW5nIGtleXdvcmQ7CisgICAgLyoqCisgICAgICog5Yib5bu66ICFSUQKKyAgICAgKi8KKyAgICBAU2NoZW1hKGRlc2NyaXB0aW9uID0gIuWIm+W7uuiAhUlEIikKKyAgICBwcml2YXRlIEludGVnZXIgY3JlYXRlQnk7CisgICAgLyoqCisgICAgICog5Yib5bu65pe26Ze0CisgICAgICovCisgICAgQFNjaGVtYShkZXNjcmlwdGlvbiA9ICLliJvlu7rml7bpl7QiKQorICAgIHByaXZhdGUgTG9jYWxEYXRlVGltZSBjcmVhdGVUaW1lOworCit9CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvZG9tYWluL0JUL1N1Z2dlc3RWby5qYXZhIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2RvbWFpbi9CVC9TdWdnZXN0Vm8uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNWI0MWU5Ci0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2RvbWFpbi9CVC9TdWdnZXN0Vm8uamF2YQpAQCAtMCwwICsxLDEyIEBACitwYWNrYWdlIGNvbS5ydW95aS53ZWIuZG9tYWluLkJUOworCisKK2ltcG9ydCBsb21ib2suRGF0YTsKKworQERhdGEKK3B1YmxpYyBjbGFzcyBTdWdnZXN0Vm8geworCisgICAgcHJpdmF0ZSBTdHJpbmcgc3VnZ2VzdDsKKworICAgIHByaXZhdGUgaW50IGNvdW50OworfQpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2RvbWFpbi9CVC9UYWdDYXRFbnRpdHkuamF2YSBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9kb21haW4vQlQvVGFnQ2F0RW50aXR5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWUzZmRiYwotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9kb21haW4vQlQvVGFnQ2F0RW50aXR5LmphdmEKQEAgLTAsMCArMSwyNyBAQAorcGFja2FnZSBjb20ucnVveWkud2ViLmRvbWFpbi5CVDsKKworCitpbXBvcnQgY29tLmJhb21pZG91Lm15YmF0aXNwbHVzLmFubm90YXRpb24uSWRUeXBlOworaW1wb3J0IGNvbS5iYW9taWRvdS5teWJhdGlzcGx1cy5hbm5vdGF0aW9uLlRhYmxlSWQ7CitpbXBvcnQgY29tLmJhb21pZG91Lm15YmF0aXNwbHVzLmFubm90YXRpb24uVGFibGVOYW1lOworaW1wb3J0IGlvLnN3YWdnZXIudjMub2FzLmFubm90YXRpb25zLm1lZGlhLlNjaGVtYTsKK2ltcG9ydCBsb21ib2suRGF0YTsKKworLyoqCisgKiDliIbnsbsKKyAqIHtAY29kZSBAYXV0aG9yfSBKaWEKKyAqIHtAY29kZSBAZGF0ZX0gMjAyNS81LzI2IDIwOjM4CisgKi8KK0BEYXRhCitAVGFibGVOYW1lKCJidF9jYXQiKQorcHVibGljIGNsYXNzIFRhZ0NhdEVudGl0eSBleHRlbmRzIEVudGl0eUJhc2V7CisgICAgQFRhYmxlSWQodHlwZSA9IElkVHlwZS5BVVRPKQorICAgIHByaXZhdGUgSW50ZWdlciBpZDsKKyAgICBAU2NoZW1hKGRlc2NyaXB0aW9uID0gIuWQjeensCIpCisgICAgcHJpdmF0ZSBTdHJpbmcgbmFtZTsKKyAgICBAU2NoZW1hKGRlc2NyaXB0aW9uID0gIuWkh+azqCIpCisgICAgcHJpdmF0ZSBTdHJpbmcgcmVtYXJrOworCisgICAgQFNjaGVtYShkZXNjcmlwdGlvbiA9ICLliIbnsbvnsbvlnosg5Y+v5Lul5pivIOWkmumAieOAgeWNlemAiSDmiJYg5b+F6YCJ5LiA5LiqIikKKyAgICBwcml2YXRlIEludGVnZXIgdHlwZTsKK30KZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9kb21haW4vQlQvVGFnRW50aXR5LmphdmEgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvZG9tYWluL0JUL1RhZ0VudGl0eS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJhODBmZjQKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvZG9tYWluL0JUL1RhZ0VudGl0eS5qYXZhCkBAIC0wLDAgKzEsNDUgQEAKK3BhY2thZ2UgY29tLnJ1b3lpLndlYi5kb21haW4uQlQ7CisKK2ltcG9ydCBjb20uYmFvbWlkb3UubXliYXRpc3BsdXMuYW5ub3RhdGlvbi5UYWJsZUlkOworaW1wb3J0IGNvbS5iYW9taWRvdS5teWJhdGlzcGx1cy5hbm5vdGF0aW9uLlRhYmxlTmFtZTsKK2ltcG9ydCBpby5zd2FnZ2VyLnYzLm9hcy5hbm5vdGF0aW9ucy5tZWRpYS5TY2hlbWE7CitpbXBvcnQgbG9tYm9rLkRhdGE7CisKK2ltcG9ydCBqYXZhLnRpbWUuTG9jYWxEYXRlVGltZTsKKworLyoqCisgKiDmoIfnrb4KKyAqCisgKiBAYXV0aG9yIEpyeAorICovCitARGF0YQorQFRhYmxlTmFtZSgiYnRfdGFnIikKK3B1YmxpYyBjbGFzcyBUYWdFbnRpdHkgZXh0ZW5kcyBFbnRpdHlCYXNlIHsKKworCisgICAgQFRhYmxlSWQKKyAgICBwcml2YXRlIEludGVnZXIgaWQ7CisgICAgLyoqCisgICAgICog5ZCN56ewCisgICAgICovCisgICAgQFNjaGVtYShkZXNjcmlwdGlvbiA9ICLlkI3np7AiKQorICAgIHByaXZhdGUgU3RyaW5nIG5hbWU7CisKKyAgICBAU2NoZW1hKGRlc2NyaXB0aW9uID0gIuWkh+azqCIpCisgICAgcHJpdmF0ZSBTdHJpbmcgcmVtYXJrOworCisgICAgQFNjaGVtYShkZXNjcmlwdGlvbiA9ICLmoIfnrb7liIbnsbsiKQorICAgIHByaXZhdGUgSW50ZWdlciBjYXQ7CisgICAgLyoqCisgICAgICog5Yib5bu66ICFSUQKKyAgICAgKi8KKyAgICBAU2NoZW1hKGRlc2NyaXB0aW9uID0gIuWIm+W7uuiAhUlEIikKKyAgICBwcml2YXRlIEludGVnZXIgY3JlYXRlQnk7CisgICAgLyoqCisgICAgICog5Yib5bu65pe26Ze0CisgICAgICovCisgICAgQFNjaGVtYShkZXNjcmlwdGlvbiA9ICLliJvlu7rml7bpl7QiKQorICAgIHByaXZhdGUgTG9jYWxEYXRlVGltZSBjcmVhdGVUaW1lOworCisKK30KZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9kb21haW4vQlQvVG9ycmVudEFkZFBhcmFtLmphdmEgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvZG9tYWluL0JUL1RvcnJlbnRBZGRQYXJhbS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE3MjEyNWYKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvZG9tYWluL0JUL1RvcnJlbnRBZGRQYXJhbS5qYXZhCkBAIC0wLDAgKzEsNjcgQEAKK3BhY2thZ2UgY29tLnJ1b3lpLndlYi5kb21haW4uQlQ7CisKK2ltcG9ydCBpby5zd2FnZ2VyLnYzLm9hcy5hbm5vdGF0aW9ucy5tZWRpYS5TY2hlbWE7CitpbXBvcnQgamFrYXJ0YS52YWxpZGF0aW9uLmNvbnN0cmFpbnRzLk5vdEVtcHR5OworaW1wb3J0IGpha2FydGEudmFsaWRhdGlvbi5jb25zdHJhaW50cy5Ob3ROdWxsOworaW1wb3J0IGxvbWJvay5EYXRhOworCitARGF0YQorcHVibGljIGNsYXNzIFRvcnJlbnRBZGRQYXJhbSB7CisKKworICAgIC8qKgorICAgICAqIOWQjeensAorICAgICAqLworICAgIEBOb3RFbXB0eQorICAgIEBTY2hlbWEoZGVzY3JpcHRpb24gPSAi566A56ewIikKKyAgICBwcml2YXRlIFN0cmluZyBuYW1lOworCisgICAgLyoqCisgICAgICog5qCH6aKYCisgICAgICovCisgICAgQE5vdEVtcHR5CisgICAgQFNjaGVtYShkZXNjcmlwdGlvbiA9ICLmoIfpopgiKQorICAgIHByaXZhdGUgU3RyaW5nIHRpdGxlOworICAgIC8qKgorICAgICAqIOeugOS7i+WJr+agh+mimAorICAgICAqLworICAgIEBOb3RFbXB0eQorICAgIEBTY2hlbWEoZGVzY3JpcHRpb24gPSAi5Ymv5qCH6aKYIikKKyAgICBwcml2YXRlIFN0cmluZyBzdWJoZWFkaW5nOworICAgIC8qKgorICAgICAqIOWwgemdogorICAgICAqLworICAgIEBTY2hlbWEoZGVzY3JpcHRpb24gPSAi5bCB6Z2iIikKKyAgICBwcml2YXRlIFN0cmluZyBjb3ZlcjsKKyAgICAvKioKKyAgICAgKiDmj4/ov7AKKyAgICAgKi8KKyAgICBATm90RW1wdHkKKyAgICBAU2NoZW1hKGRlc2NyaXB0aW9uID0gIuaPj+i/sCIpCisgICAgcHJpdmF0ZSBTdHJpbmcgZGVzY3JpcHRpb247CisKKyAgICAvKioKKyAgICAgKiDnsbvliKsKKyAgICAgKi8KKyAgICBATm90TnVsbAorICAgIEBTY2hlbWEoZGVzY3JpcHRpb24gPSAi57G75YirIikKKyAgICBwcml2YXRlIEludGVnZXIgY2F0ZWdvcnk7CisKKyAgICAvKioKKyAgICAgKiDnirbmgIEgMCDlgJnpgInkuK0gMSDlt7Llj5HluIMgMiDlt7LkuIvmnrYKKyAgICAgKi8KKyAgICBAU2NoZW1hKGRlc2NyaXB0aW9uID0gIueKtuaAgSAwIOWAmemAieS4rSAxIOW3suWPkeW4gyAyIOW3suS4i+aetiIpCisgICAgcHJpdmF0ZSBJbnRlZ2VyIHN0YXR1czsKKworICAgIC8qKgorICAgICAqIOaYr+WQpuWMv+WQjSAwIOWQpiAxIOaYrworICAgICAqLworICAgIEBTY2hlbWEoZGVzY3JpcHRpb24gPSAi5piv5ZCm5Yy/5ZCNIDAg5ZCmIDEg5pivIikKKyAgICBwcml2YXRlIEludGVnZXIgYW5vbnltb3VzOworCisKKyAgICBAU2NoZW1hKGRlc2NyaXB0aW9uID0gIuWkh+azqCIpCisgICAgcHJpdmF0ZSBTdHJpbmcgcmVtYXJrOworCisKK30KZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9kb21haW4vQlQvVG9ycmVudEF1ZGl0UGFyYW0uamF2YSBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9kb21haW4vQlQvVG9ycmVudEF1ZGl0UGFyYW0uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNGI5YzY3Ci0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2RvbWFpbi9CVC9Ub3JyZW50QXVkaXRQYXJhbS5qYXZhCkBAIC0wLDAgKzEsMjYgQEAKK3BhY2thZ2UgY29tLnJ1b3lpLndlYi5kb21haW4uQlQ7CisKK2ltcG9ydCBpby5zd2FnZ2VyLnYzLm9hcy5hbm5vdGF0aW9ucy5tZWRpYS5TY2hlbWE7CitpbXBvcnQgamFrYXJ0YS52YWxpZGF0aW9uLmNvbnN0cmFpbnRzLk5vdE51bGw7CitpbXBvcnQgbG9tYm9rLkRhdGE7CisKK0BEYXRhCitwdWJsaWMgY2xhc3MgVG9ycmVudEF1ZGl0UGFyYW0geworCisgICAgQE5vdE51bGwKKyAgICBJbnRlZ2VyIGlkOworCisKKyAgICAvKioKKyAgICAgKiDlrqHmoLjnirbmgIEgIDEg6YCa6L+HIDIg5LiN6YCa6L+HCisgICAgICovCisgICAgQFNjaGVtYShkZXNjcmlwdGlvbiA9ICLnirbmgIEgMCDlgJnpgInkuK0gMSDlt7Llj5HluIMgMiDlt7LkuIvmnrYiKQorICAgIEBOb3ROdWxsCisgICAgSW50ZWdlciBzdGF0dXM7CisKKworICAgIEBTY2hlbWEoZGVzY3JpcHRpb24gPSAi5aSH5rOoIikKKyAgICBTdHJpbmcgcmVtYXJrOworCisKK30KZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9kb21haW4vQlQvVG9ycmVudENvbW1lbnRFbnRpdHkuamF2YSBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9kb21haW4vQlQvVG9ycmVudENvbW1lbnRFbnRpdHkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMzdlYTM4Ci0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2RvbWFpbi9CVC9Ub3JyZW50Q29tbWVudEVudGl0eS5qYXZhCkBAIC0wLDAgKzEsNTEgQEAKK3BhY2thZ2UgY29tLnJ1b3lpLndlYi5kb21haW4uQlQ7CisKK2ltcG9ydCBjb20uYmFvbWlkb3UubXliYXRpc3BsdXMuYW5ub3RhdGlvbi5UYWJsZU5hbWU7CitpbXBvcnQgbG9tYm9rLkRhdGE7CitpbXBvcnQgbG9tYm9rLk5vQXJnc0NvbnN0cnVjdG9yOworCitpbXBvcnQgamF2YS50aW1lLkxvY2FsRGF0ZVRpbWU7CisKKy8qKgorICog56eN5a2Q5paH5Lu25YiX6KGoCisgKgorICogQGF1dGhvciBKcngKKyAqLworQERhdGEKK0BOb0FyZ3NDb25zdHJ1Y3RvcgorQFRhYmxlTmFtZSgiYnRfdG9ycmVudF9jb21tZW50IikKK3B1YmxpYyBjbGFzcyBUb3JyZW50Q29tbWVudEVudGl0eSBleHRlbmRzIEVudGl0eUJhc2UgeworCisgICAgLyoqCisgICAgICogSUQKKyAgICAgKi8KKyAgICBJbnRlZ2VyIGlkOworCisgICAgLyoqCisgICAgICog5YWz6IGU55qE56eN5a2QSUQKKyAgICAgKi8KKyAgICBJbnRlZ2VyIHRvcnJlbnRJZDsKKworICAgIC8qKgorICAgICAqIOeUqOaIt0lECisgICAgICovCisgICAgSW50ZWdlciB1c2VySWQ7CisKKyAgICAvKioKKyAgICAgKiDniLbnuqdJRCDmpbzkuK3mpbzmiY3mnIkKKyAgICAgKi8KKyAgICBJbnRlZ2VyIHBpZDsKKworICAgIC8qKgorICAgICAqIGNvbW1lbnTlhoXlrrkKKyAgICAgKi8KKyAgICBTdHJpbmcgY29tbWVudDsKKworCisgICAgLyoqCisgICAgICog5re75Yqg5pel5pyfCisgICAgICovCisgICAgcHJpdmF0ZSBMb2NhbERhdGVUaW1lIGNyZWF0ZVRpbWU7CisKKworfQpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2RvbWFpbi9CVC9Ub3JyZW50Q29tbWVudFZPLmphdmEgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvZG9tYWluL0JUL1RvcnJlbnRDb21tZW50Vk8uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MjJhOGU4Ci0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2RvbWFpbi9CVC9Ub3JyZW50Q29tbWVudFZPLmphdmEKQEAgLTAsMCArMSwyMSBAQAorcGFja2FnZSBjb20ucnVveWkud2ViLmRvbWFpbi5CVDsKKworaW1wb3J0IGxvbWJvay5EYXRhOworCitpbXBvcnQgamF2YS50aW1lLkxvY2FsRGF0ZVRpbWU7CitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CisKK0BEYXRhCitwdWJsaWMgY2xhc3MgVG9ycmVudENvbW1lbnRWTyB7CisgICAgcHJpdmF0ZSBJbnRlZ2VyIGlkOworICAgIHByaXZhdGUgSW50ZWdlciB0b3JyZW50SWQ7CisgICAgcHJpdmF0ZSBJbnRlZ2VyIHVzZXJJZDsKKyAgICBwcml2YXRlIFN0cmluZyB1c2VybmFtZTsgLy8g55So5oi35pi156ewCisgICAgcHJpdmF0ZSBTdHJpbmcgYXZhdGFyOyAgIC8vIOeUqOaIt+WktOWDjworICAgIHByaXZhdGUgSW50ZWdlciBwaWQ7CisgICAgcHJpdmF0ZSBTdHJpbmcgY29tbWVudDsKKyAgICBwcml2YXRlIExvY2FsRGF0ZVRpbWUgY3JlYXRlVGltZTsKKyAgICBwcml2YXRlIEJvb2xlYW4gaXNMaWtlZDsgLy8g5piv5ZCm5bey54K56LWe77yI5Y+v6YCJ77yJCisgICAgLy8g5Y+v6IO95YyF5ZCr5a2Q6K+E6K665YiX6KGo77yI5qW85Lit5qW877yJCisgICAgcHJpdmF0ZSBMaXN0PFRvcnJlbnRDb21tZW50Vk8+IGNoaWxkcmVuOworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9kb21haW4vQlQvVG9ycmVudER0by5qYXZhIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2RvbWFpbi9CVC9Ub3JyZW50RHRvLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmU2MzJhOAotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9kb21haW4vQlQvVG9ycmVudER0by5qYXZhCkBAIC0wLDAgKzEsMzQgQEAKK3BhY2thZ2UgY29tLnJ1b3lpLndlYi5kb21haW4uQlQ7CisKK2ltcG9ydCBjb20uYmFvbWlkb3UubXliYXRpc3BsdXMuYW5ub3RhdGlvbi4qOworaW1wb3J0IGxvbWJvay5EYXRhOworCitpbXBvcnQgamF2YS50aW1lLkxvY2FsRGF0ZVRpbWU7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKKworLyoqCisgKiB0b3JyZW505Z+65pys5L+h5oGvCisgKi8KK0BEYXRhCitAVGFibGVOYW1lKHZhbHVlID0gImJ0X3RvcnJlbnRfaW5mbyIpCitwdWJsaWMgY2xhc3MgVG9ycmVudER0byB7CisKKyAgICBAVGFibGVJZCh0eXBlID0gSWRUeXBlLkFVVE8pCisgICAgcHJpdmF0ZSBJbnRlZ2VyIGlkOworICAgIC8vIOWIm+W7uuaXtumXtAorICAgIEBUYWJsZUZpZWxkKGZpbGwgPSBGaWVsZEZpbGwuSU5TRVJUKQorICAgIHByaXZhdGUgTG9jYWxEYXRlVGltZSBjcmVhdGVkOworICAgIC8vIOabtOaWsOaXtumXtAorICAgIEBUYWJsZUZpZWxkKGZpbGwgPSBGaWVsZEZpbGwuSU5TRVJUX1VQREFURSkKKyAgICBwcml2YXRlIExvY2FsRGF0ZVRpbWUgbW9kaWZpZWQ7CisgICAgcHJpdmF0ZSBMb25nIGZrVXNlckF1dGhJZDsKKyAgICBwcml2YXRlIExvbmcgZmtUb3JyZW50RGlzY291bnRJZDsKKyAgICBwcml2YXRlIGJ5dGVbXSB1a0luZm9IYXNoOworICAgIHByaXZhdGUgU3RyaW5nIGZpbGVOYW1lOworICAgIHByaXZhdGUgTG9uZyBmaWxlU2l6ZTsKKyAgICBwcml2YXRlIFN0cmluZyBmaWxlUGF0aDsKKyAgICBwcml2YXRlIExvbmcgdG9ycmVudFNpemU7CisgICAgcHJpdmF0ZSBMb25nIHRvcnJlbnRDb3VudDsKKyAgICBwcml2YXRlIEJvb2xlYW4gaXNEZWxldGU7CisgICAgcHJpdmF0ZSBNYXA8U3RyaW5nLCBPYmplY3Q+IGRpY3Q7Cit9CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvZG9tYWluL0JUL1RvcnJlbnRFbnRpdHkuamF2YSBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9kb21haW4vQlQvVG9ycmVudEVudGl0eS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA1OTIxMDIKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvZG9tYWluL0JUL1RvcnJlbnRFbnRpdHkuamF2YQpAQCAtMCwwICsxLDE3NyBAQAorcGFja2FnZSBjb20ucnVveWkud2ViLmRvbWFpbi5CVDsKKworaW1wb3J0IGNvbS5iYW9taWRvdS5teWJhdGlzcGx1cy5hbm5vdGF0aW9uLkVudW1WYWx1ZTsKK2ltcG9ydCBjb20uYmFvbWlkb3UubXliYXRpc3BsdXMuYW5ub3RhdGlvbi5UYWJsZUlkOworaW1wb3J0IGNvbS5iYW9taWRvdS5teWJhdGlzcGx1cy5hbm5vdGF0aW9uLlRhYmxlTmFtZTsKK2ltcG9ydCBsb21ib2suRGF0YTsKK2ltcG9ydCBsb21ib2suR2V0dGVyOworaW1wb3J0IGxvbWJvay5SZXF1aXJlZEFyZ3NDb25zdHJ1Y3RvcjsKKworaW1wb3J0IGphdmEudGltZS5Mb2NhbERhdGVUaW1lOworCitARGF0YQorQFRhYmxlTmFtZSgiYnRfdG9ycmVudCIpCitwdWJsaWMgY2xhc3MgVG9ycmVudEVudGl0eSB7CisKKyAgICAvKioKKyAgICAgKgorICAgICAqLworICAgIEBUYWJsZUlkCisgICAgcHJpdmF0ZSBJbnRlZ2VyIGlkOworICAgIC8qKgorICAgICAqIOenjeWtkOWTiOW4jAorICAgICAqLworICAgIHByaXZhdGUgYnl0ZVtdIGluZm9IYXNoOworICAgIC8qKgorICAgICAqIOWQjeensAorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIG5hbWU7CisgICAgLyoqCisgICAgICog5LiK5Lyg5paH5Lu25ZCNCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgZmlsZW5hbWU7CisgICAgLyoqCisgICAgICog5qCH6aKYCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgdGl0bGU7CisgICAgLyoqCisgICAgICog566A5LuL5Ymv5qCH6aKYCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgc3ViaGVhZGluZzsKKyAgICAvKioKKyAgICAgKiDlsIHpnaIKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBjb3ZlcjsKKyAgICAvKioKKyAgICAgKiDmj4/ov7AKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBkZXNjcmlwdGlvbjsKKworICAgIC8qKgorICAgICAqIOexu+WIqworICAgICAqLworICAgIHByaXZhdGUgSW50ZWdlciBjYXRlZ29yeTsKKworICAgIC8qKgorICAgICAqIOeKtuaAgQorICAgICAqCisgICAgICogQHNlZSBTdGF0dXMKKyAgICAgKi8KKyAgICBwcml2YXRlIEludGVnZXIgc3RhdHVzOworCisgICAgLyoqCisgICAgICog5paH5Lu254q25oCBIDAg5pyq5LiK5LygIDEg5bey5LiK5LygCisgICAgICovCisgICAgcHJpdmF0ZSBJbnRlZ2VyIGZpbGVTdGF0dXM7CisgICAgLyoqCisgICAgICog5a6h5qC45Lq6CisgICAgICovCisgICAgcHJpdmF0ZSBJbnRlZ2VyIHJldmlld2VyOworCisKKyAgICAvKioKKyAgICAgKiDmt7vliqDml6XmnJ8KKyAgICAgKi8KKyAgICBwcml2YXRlIExvY2FsRGF0ZVRpbWUgY3JlYXRlVGltZTsKKworCisgICAgLyoqCisgICAgICog5L+u5pS55pel5pyfCisgICAgICovCisgICAgcHJpdmF0ZSBMb2NhbERhdGVUaW1lIHVwZGF0ZVRpbWU7CisKKyAgICAvKioKKyAgICAgKiDmi6XmnInogIUKKyAgICAgKi8KKyAgICBwcml2YXRlIEludGVnZXIgb3duZXI7CisgICAgLyoqCisgICAgICog5paH5Lu25aSn5bCPCisgICAgICovCisgICAgcHJpdmF0ZSBMb25nIHNpemU7CisgICAgLyoqCisgICAgICog57G75Z6LCisgICAgICogc2luZ2xlKDEpCisgICAgICogbXVsdGkoMikKKyAgICAgKi8KKyAgICBwcml2YXRlIEludGVnZXIgdHlwZTsKKyAgICAvKioKKyAgICAgKiDmlofku7bmlbDph48KKyAgICAgKi8KKyAgICBwcml2YXRlIEludGVnZXIgZmlsZUNvdW50OworCisgICAgLyoqCisgICAgICog6K+E6K665pWwCisgICAgICovCisgICAgcHJpdmF0ZSBJbnRlZ2VyIGNvbW1lbnRzOworICAgIC8qKgorICAgICAqIOa1j+iniOasoeaVsAorICAgICAqLworICAgIHByaXZhdGUgSW50ZWdlciB2aWV3czsKKyAgICAvKioKKyAgICAgKiDngrnlh7vmrKHmlbAKKyAgICAgKi8KKyAgICBwcml2YXRlIEludGVnZXIgaGl0czsKKworICAgIC8qKgorICAgICAqIOWPr+ingeaApworICAgICAqLworICAgIHByaXZhdGUgSW50ZWdlciB2aXNpYmxlOworCisgICAgLyoqCisgICAgICog5piv5ZCm5Yy/5ZCNCisgICAgICovCisgICAgcHJpdmF0ZSBJbnRlZ2VyIGFub255bW91czsKKworCisgICAgLyoqCisgICAgICog5LiL6L295pWwCisgICAgICovCisgICAgcHJpdmF0ZSBJbnRlZ2VyIGxlZWNoZXJzOworICAgIC8qKgorICAgICAqIOWBmuenjeaVsAorICAgICAqLworICAgIHByaXZhdGUgSW50ZWdlciBzZWVkZXJzOworCisgICAgLyoqCisgICAgICog5YGa56eN5a6M5oiQ5qyh5pWwCisgICAgICovCisgICAgcHJpdmF0ZSBJbnRlZ2VyIGNvbXBsZXRpb25zOworCisgICAgLyoqCisgICAgICoKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyByZW1hcms7CisKKyAgICAvKioKKyAgICAgKiDnp43lrZDnirbmgIEKKyAgICAgKiAwIOWAmemAieS4rSAxIOW3suWPkeW4gyAyIOWuoeaguOS4jemAmui/hyAzIOW3suS4iuaetuS/ruaUuemHjeWuoeS4rSAxMCDlt7LkuIvmnrYKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50ZXJmYWNlIFN0YXR1cyB7CisKKyAgICAgICAgaW50IENBTkRJREFURSA9IDA7CisKKyAgICAgICAgaW50IFBVQkxJU0hFRCA9IDE7CisKKyAgICAgICAgaW50IEFVRElUX05PVF9QQVNTRUQgPSAyOworCisgICAgICAgIGludCBSRVRSSUFMID0gMzsKKworICAgICAgICBpbnQgUkVNT1ZFRCA9IDEwOworCisgICAgfQorCisgICAgQFJlcXVpcmVkQXJnc0NvbnN0cnVjdG9yCisgICAgcHVibGljIGVudW0gVHlwZSB7CisgICAgICAgIHNpbmdsZSgxKSwKKyAgICAgICAgbXVsdGkoMik7CisKKyAgICAgICAgQEdldHRlcgorICAgICAgICBARW51bVZhbHVlCisgICAgICAgIHByaXZhdGUgZmluYWwgaW50IGNvZGU7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gaXNTdGF0dXNPSygpIHsKKyAgICAgICAgcmV0dXJuIHN0YXR1cyA9PSAxOworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2RvbWFpbi9CVC9Ub3JyZW50RmlsZVZvLmphdmEgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvZG9tYWluL0JUL1RvcnJlbnRGaWxlVm8uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNjFmMTQ4Ci0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2RvbWFpbi9CVC9Ub3JyZW50RmlsZVZvLmphdmEKQEAgLTAsMCArMSwxNSBAQAorcGFja2FnZSBjb20ucnVveWkud2ViLmRvbWFpbi5CVDsKKworaW1wb3J0IGxvbWJvay5HZXR0ZXI7CitpbXBvcnQgbG9tYm9rLlNldHRlcjsKK2ltcG9ydCBsb21ib2suVG9TdHJpbmc7CisKK0BHZXR0ZXIKK0BTZXR0ZXIKK0BUb1N0cmluZworcHVibGljIGNsYXNzIFRvcnJlbnRGaWxlVm8geworICAgIHByaXZhdGUgU3RyaW5nIGZpbGxOYW1lOworICAgIHByaXZhdGUgU3RyaW5nIGFubm91bmNlOworICAgIHByaXZhdGUgYnl0ZVtdIGhhc2g7CisgICAgcHJpdmF0ZSBsb25nIGxlbmd0aDsKK30KZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9kb21haW4vQlQvVG9ycmVudEZpbGVzRW50aXR5LmphdmEgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvZG9tYWluL0JUL1RvcnJlbnRGaWxlc0VudGl0eS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxOWJhMTcKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvZG9tYWluL0JUL1RvcnJlbnRGaWxlc0VudGl0eS5qYXZhCkBAIC0wLDAgKzEsNDEgQEAKK3BhY2thZ2UgY29tLnJ1b3lpLndlYi5kb21haW4uQlQ7CisKK2ltcG9ydCBjb20uYmFvbWlkb3UubXliYXRpc3BsdXMuYW5ub3RhdGlvbi5UYWJsZU5hbWU7CitpbXBvcnQgbG9tYm9rLkRhdGE7CitpbXBvcnQgbG9tYm9rLk5vQXJnc0NvbnN0cnVjdG9yOworCisvKioKKyAqIOenjeWtkOaWh+S7tuWIl+ihqAorICoKKyAqIEBhdXRob3IgSnJ4CisgKi8KK0BEYXRhCitATm9BcmdzQ29uc3RydWN0b3IKK0BUYWJsZU5hbWUoImJ0X3RvcnJlbnRfZmlsZXMiKQorcHVibGljIGNsYXNzIFRvcnJlbnRGaWxlc0VudGl0eSBleHRlbmRzIEVudGl0eUJhc2UgeworCisgICAgLyoqCisgICAgICogSUQKKyAgICAgKi8KKyAgICBJbnRlZ2VyIGlkOworCisgICAgLyoqCisgICAgICog5YWz6IGU55qE56eN5a2QSUQKKyAgICAgKi8KKyAgICBJbnRlZ2VyIHRvcnJlbnRJZDsKKyAgICAvKioKKyAgICAgKiDniLbnuqdJRAorICAgICAqLworICAgIEludGVnZXIgcGlkOworCisgICAgLyoqCisgICAgICog5paH5Lu255qE5ZCN56ewCisgICAgICovCisgICAgU3RyaW5nIGZpbGVuYW1lOworCisgICAgLyoqCisgICAgICog5paH5Lu255qE5aSn5bCP77yM5Y2V5L2N5Li65a2X6IqC44CCCisgICAgICovCisgICAgTG9uZyBzaXplOworCit9CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvZG9tYWluL0JUL1RvcnJlbnRQYXJhbS5qYXZhIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2RvbWFpbi9CVC9Ub3JyZW50UGFyYW0uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MTBhZDUxCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2RvbWFpbi9CVC9Ub3JyZW50UGFyYW0uamF2YQpAQCAtMCwwICsxLDU2IEBACitwYWNrYWdlIGNvbS5ydW95aS53ZWIuZG9tYWluLkJUOworCitpbXBvcnQgY29tLnJ1b3lpLndlYi5jb250cm9sbGVyLmNvbW1vbi5iYXNlLk9yZGVyUGFnZVBhcmFtOworaW1wb3J0IGlvLnN3YWdnZXIudjMub2FzLmFubm90YXRpb25zLm1lZGlhLlNjaGVtYTsKK2ltcG9ydCBsb21ib2suRGF0YTsKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMubGFuZzMuU3RyaW5nVXRpbHM7CisKK2ltcG9ydCBqYXZhLnV0aWwuTGlua2VkSGFzaFNldDsKK2ltcG9ydCBqYXZhLnV0aWwuU2V0OworCisvKioKKyAqIOenjeWtkOafpeivogorICovCitARGF0YQorQFNjaGVtYShkZXNjcmlwdGlvbiA9ICLnp43lrZDmn6Xor6IiKQorcHVibGljIGNsYXNzIFRvcnJlbnRQYXJhbSBleHRlbmRzIE9yZGVyUGFnZVBhcmFtIHsKKworCisgICAgQFNjaGVtYShkZXNjcmlwdGlvbiA9ICLlhbPplK7lrZciKQorICAgIFN0cmluZyBrZXl3b3JkOworCisKKyAgICBAU2NoZW1hKGRlc2NyaXB0aW9uID0gIuWIhuexuyIpCisgICAgSW50ZWdlciBjYXRlZ29yeTsKKworICAgIEBTY2hlbWEoZGVzY3JpcHRpb24gPSAi54q25oCBIikKKyAgICBJbnRlZ2VyIHN0YXR1czsKKworICAgIEBTY2hlbWEoZGVzY3JpcHRpb24gPSAi5a6h5qC454q25oCBIikKKyAgICBJbnRlZ2VyIHJldmlld1N0YXR1czsKKworICAgIC8v5L+D6ZSA56eN5a2Q77yfCisgICAgQFNjaGVtYShkZXNjcmlwdGlvbiA9ICLkv4PplIDnp43lrZDvvJ8iKQorICAgIFN0cmluZyBmcmVlOworCisKKyAgICBwcml2YXRlIFNldDxTdHJpbmc+IGxpa2VFeHByZXNzaW9uczsKKworICAgIHB1YmxpYyB2b2lkIGJ1aWxkTGlrZSgpIHsKKyAgICAgICAgbGlrZUV4cHJlc3Npb25zID0gbmV3IExpbmtlZEhhc2hTZXQ8PigpOworICAgICAgICBpZiAoU3RyaW5nVXRpbHMuaXNFbXB0eShrZXl3b3JkKSkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAga2V5d29yZCA9IGtleXdvcmQucmVwbGFjZSgiLiIsICIgIik7CisgICAgICAgIFN0cmluZ1tdIHNlYXJjaHN0ckV4cGxvZGVkID0ga2V5d29yZC5zcGxpdCgiICIpOworCisKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzZWFyY2hzdHJFeHBsb2RlZC5sZW5ndGggJiYgaSA8IDEwOyBpKyspIHsKKyAgICAgICAgICAgIFN0cmluZyBzZWFyY2hzdHJFbGVtZW50ID0gc2VhcmNoc3RyRXhwbG9kZWRbaV0udHJpbSgpOworICAgICAgICAgICAgbGlrZUV4cHJlc3Npb25zLmFkZChzZWFyY2hzdHJFbGVtZW50KTsKKyAgICAgICAgfQorCisKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvZG9tYWluL0JUL1RvcnJlbnRQZWVyRW50aXR5LmphdmEgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvZG9tYWluL0JUL1RvcnJlbnRQZWVyRW50aXR5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWNhZjZjMwotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9kb21haW4vQlQvVG9ycmVudFBlZXJFbnRpdHkuamF2YQpAQCAtMCwwICsxLDEzMSBAQAorcGFja2FnZSBjb20ucnVveWkud2ViLmRvbWFpbi5CVDsKKworaW1wb3J0IGNvbS5iYW9taWRvdS5teWJhdGlzcGx1cy5hbm5vdGF0aW9uLlRhYmxlTmFtZTsKK2ltcG9ydCBsb21ib2suRGF0YTsKK2ltcG9ydCBsb21ib2suTm9BcmdzQ29uc3RydWN0b3I7CisKK2ltcG9ydCBqYXZhLnRpbWUuTG9jYWxEYXRlVGltZTsKKworLyoqCisgKiDnp43lrZDmlofku7bliJfooagKKyAqCisgKiBAYXV0aG9yIHBsZXhwdAorICovCitARGF0YQorQE5vQXJnc0NvbnN0cnVjdG9yCitAVGFibGVOYW1lKCJidF90b3JyZW50X3BlZXIiKQorcHVibGljIGNsYXNzIFRvcnJlbnRQZWVyRW50aXR5IGV4dGVuZHMgRW50aXR5QmFzZSB7CisKKyAgICAvKioKKyAgICAgKiBJRAorICAgICAqLworICAgIEludGVnZXIgaWQ7CisKKyAgICAvKioKKyAgICAgKiDlhbPogZTnmoTnp43lrZBJRAorICAgICAqLworICAgIEludGVnZXIgdG9ycmVudElkOworCisgICAgLyoqCisgICAgICog55So5oi3SUQKKyAgICAgKi8KKyAgICBJbnRlZ2VyIHVzZXJJZDsKKworICAgIC8qKgorICAgICAqIFBlZXLnmoTlrqLmiLfnq69JRO+8jOihqOekuuWcqFAyUOe9kee7nOS4reeahOWUr+S4gOagh+ivhu+8jOWmgiAiLXFCNDUyMC1Md35HVzFXTVY1Wk8iCisgICAgICovCisgICAgU3RyaW5nIHBlZXJJZDsKKyAgICBTdHJpbmcgcGVlcklkSGV4OworCisgICAgLyoqCisgICAgICog55So5oi3SVDlnLDlnYAKKyAgICAgKi8KKyAgICBTdHJpbmcgaXA7CisKKyAgICAvKioKKyAgICAgKiDnlKjmiLdJUFY25Zyw5Z2ACisgICAgICovCisgICAgU3RyaW5nIGlwdjY7CisKKyAgICAvKioKKyAgICAgKiDnlKjmiLfnmoTnvZHnu5znq6/lj6Plj7cKKyAgICAgKi8KKyAgICBJbnRlZ2VyIHBvcnQ7CisKKyAgICAvKioKKyAgICAgKiDnlKjmiLflt7Lnu4/kuIrkvKDnmoTmlbDmja7ph4/vvIjljZXkvY3vvJrlrZfoioLvvIkKKyAgICAgKi8KKyAgICBMb25nIHVwbG9hZGVkOworCisgICAgLyoqCisgICAgICog55So5oi35bey57uP5LiL6L2955qE5pWw5o2u6YeP77yI5Y2V5L2N77ya5a2X6IqC77yJCisgICAgICovCisgICAgTG9uZyBkb3dubG9hZGVkOworCisgICAgLyoqCisgICAgICog55So5oi35Ymp5L2Z6ZyA6KaB5LiL6L2955qE5pWw5o2u6YeP77yI5Y2V5L2N77ya5a2X6IqC77yJCisgICAgICovCisgICAgTG9uZyByZW1haW5pbmc7CisKKyAgICAvKioKKyAgICAgKiDmnKzmrKHkvJror53nmoTkuIvovb3ph4/lgY/np7vvvIjljZXkvY3vvJrlrZfoioLvvIkKKyAgICAgKi8KKyAgICBMb25nIGRvd25sb2Fkb2Zmc2V0OworCisgICAgLyoqCisgICAgICog5pys5qyh5Lya6K+d55qE5LiK5Lyg6YeP5YGP56e777yI5Y2V5L2N77ya5a2X6IqC77yJCisgICAgICovCisgICAgTG9uZyB1cGxvYWRvZmZzZXQ7CisKKyAgICAvKioKKyAgICAgKiDmmK/lkKbmmK/lgZrnp43ogIXvvIzlpoLmnpzmmK/vvIzliJnlgLzkuLp0cnVlCisgICAgICovCisgICAgQm9vbGVhbiBzZWVkZXI7CisKKyAgICAvKioKKyAgICAgKiDmmK/lkKblj6/ov57mjqXvvIzlpoLmnpzmmK/vvIzliJnlgLzkuLp0cnVlCisgICAgICovCisgICAgQm9vbGVhbiBjb25uZWN0YWJsZTsKKworICAgIC8qKgorICAgICAqIOaYr+WQpuS9v+eUqOenjeWtkOebku+8jOWmguaenOaYr++8jOWImeWAvOS4unRydWUKKyAgICAgKi8KKyAgICBCb29sZWFuIHNlZWRCb3g7CisKKyAgICAvKioKKyAgICAgKiDnlKjmiLfkvb/nlKjnmoTlrqLmiLfnq6/nmoTnlKjmiLfku6PnkIbvvIzkvovlpoIgInFCaXR0b3JyZW50LzQuNS4yIgorICAgICAqLworICAgIFN0cmluZyB1c2VyQWdlbnQ7CisKKyAgICAvKioKKyAgICAgKiDnlKjmiLfnmoTnp5jpkqXvvIznlKjkuo7ouqvku73pqozor4EKKyAgICAgKi8KKyAgICBTdHJpbmcgcGFzc2tleTsKKworICAgIC8qKgorICAgICAqIOeUqOaIt+a3u+WKoOenjeWtkOeahOaXtumXtAorICAgICAqLworICAgIExvY2FsRGF0ZVRpbWUgY3JlYXRlVGltZTsKKworICAgIC8qKgorICAgICAqIOeUqOaIt+W8gOWni+S4i+i9veaIluiAheS4iuS8oOenjeWtkOeahOaXtumXtAorICAgICAqLworICAgIExvY2FsRGF0ZVRpbWUgc3RhcnRUaW1lOworCisgICAgLyoqCisgICAgICog55So5oi35a6M5oiQ5LiL6L295oiW6ICF5LiK5Lyg56eN5a2Q55qE5pe26Ze0CisgICAgICovCisgICAgTG9jYWxEYXRlVGltZSBmaW5pc2hUaW1lOworCisgICAgLyoqCisgICAgICog55So5oi35pyA6L+R5LiA5qyh6L+e5o6l5YiwdHJhY2tlcueahOaXtumXtAorICAgICAqLworICAgIExvY2FsRGF0ZVRpbWUgbGFzdEFubm91bmNlOworCisgICAgLyoqCisgICAgICog55So5oi35LiK5LiA5qyh6L+e5o6l5YiwdHJhY2tlcueahOaXtumXtAorICAgICAqLworICAgIExvY2FsRGF0ZVRpbWUgcHJlQW5ub3VuY2U7CisKKworfQpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2RvbWFpbi9CVC9Ub3JyZW50VGFnRW50aXR5LmphdmEgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvZG9tYWluL0JUL1RvcnJlbnRUYWdFbnRpdHkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOTk1MjVmCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2RvbWFpbi9CVC9Ub3JyZW50VGFnRW50aXR5LmphdmEKQEAgLTAsMCArMSwyNyBAQAorcGFja2FnZSBjb20ucnVveWkud2ViLmRvbWFpbi5CVDsKKworaW1wb3J0IGNvbS5iYW9taWRvdS5teWJhdGlzcGx1cy5hbm5vdGF0aW9uLlRhYmxlSWQ7CitpbXBvcnQgY29tLmJhb21pZG91Lm15YmF0aXNwbHVzLmFubm90YXRpb24uVGFibGVOYW1lOworaW1wb3J0IGxvbWJvay5BbGxBcmdzQ29uc3RydWN0b3I7CitpbXBvcnQgbG9tYm9rLkRhdGE7CitpbXBvcnQgbG9tYm9rLk5vQXJnc0NvbnN0cnVjdG9yOworCisvKioKKyAqIOenjeWtkOagh+etvgorICoKKyAqIEBhdXRob3IgSnJ4CisgKi8KK0BEYXRhCitATm9BcmdzQ29uc3RydWN0b3IKK0BBbGxBcmdzQ29uc3RydWN0b3IKK0BUYWJsZU5hbWUoImJ0X3RvcnJlbnRfdGFnIikKK3B1YmxpYyBjbGFzcyBUb3JyZW50VGFnRW50aXR5IHsKKworICAgIEBUYWJsZUlkCisgICAgcHJpdmF0ZSBJbnRlZ2VyIGlkOworCisgICAgcHJpdmF0ZSBJbnRlZ2VyIHRvcnJlbnRJZDsKKworICAgIHByaXZhdGUgSW50ZWdlciB0YWdJZDsKKworfQpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2RvbWFpbi9CVC9Ub3JyZW50Vk8uamF2YSBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9kb21haW4vQlQvVG9ycmVudFZPLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDg1NzBlNQotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9kb21haW4vQlQvVG9ycmVudFZPLmphdmEKQEAgLTAsMCArMSwxNTUgQEAKK3BhY2thZ2UgY29tLnJ1b3lpLndlYi5kb21haW4uQlQ7CisKK2ltcG9ydCBpby5zd2FnZ2VyLnYzLm9hcy5hbm5vdGF0aW9ucy5tZWRpYS5TY2hlbWE7CitpbXBvcnQgamFrYXJ0YS52YWxpZGF0aW9uLmNvbnN0cmFpbnRzLk5vdEVtcHR5OworaW1wb3J0IGpha2FydGEudmFsaWRhdGlvbi5jb25zdHJhaW50cy5Ob3ROdWxsOworaW1wb3J0IGxvbWJvay5EYXRhOworCitpbXBvcnQgamF2YS50aW1lLkxvY2FsRGF0ZVRpbWU7CisKK0BEYXRhCitwdWJsaWMgY2xhc3MgVG9ycmVudFZPIHsKKworICAgIHByaXZhdGUgSW50ZWdlciBpZDsKKworICAgIC8qKgorICAgICAqIOWQjeensAorICAgICAqLworICAgIEBOb3RFbXB0eQorICAgIEBTY2hlbWEoZGVzY3JpcHRpb24gPSAi566A56ewIikKKyAgICBwcml2YXRlIFN0cmluZyBuYW1lOworCisgICAgLyoqCisgICAgICog5qCH6aKYCisgICAgICovCisgICAgQE5vdEVtcHR5CisgICAgQFNjaGVtYShkZXNjcmlwdGlvbiA9ICLmoIfpopgiKQorICAgIHByaXZhdGUgU3RyaW5nIHRpdGxlOworICAgIC8qKgorICAgICAqIOeugOS7i+WJr+agh+mimAorICAgICAqLworICAgIEBOb3RFbXB0eQorICAgIEBTY2hlbWEoZGVzY3JpcHRpb24gPSAi5Ymv5qCH6aKYIikKKyAgICBwcml2YXRlIFN0cmluZyBzdWJoZWFkaW5nOworICAgIC8qKgorICAgICAqIOWwgemdogorICAgICAqLworICAgIEBTY2hlbWEoZGVzY3JpcHRpb24gPSAi5bCB6Z2iIikKKyAgICBwcml2YXRlIFN0cmluZyBjb3ZlcjsKKyAgICAvKioKKyAgICAgKiDmj4/ov7AKKyAgICAgKi8KKyAgICBATm90RW1wdHkKKyAgICBAU2NoZW1hKGRlc2NyaXB0aW9uID0gIuaPj+i/sCIpCisgICAgcHJpdmF0ZSBTdHJpbmcgZGVzY3JpcHRpb247CisKKyAgICAvKioKKyAgICAgKiDnsbvliKsKKyAgICAgKi8KKyAgICBATm90TnVsbAorICAgIEBTY2hlbWEoZGVzY3JpcHRpb24gPSAi57G75YirIikKKyAgICBwcml2YXRlIEludGVnZXIgY2F0ZWdvcnk7CisKKyAgICAvKioKKyAgICAgKiDnirbmgIEgMCDlgJnpgInkuK0gMSDlt7Llj5HluIMgMiDlt7LkuIvmnrYKKyAgICAgKi8KKyAgICBAU2NoZW1hKGRlc2NyaXB0aW9uID0gIueKtuaAgSAwIOWAmemAieS4rSAxIOW3suWPkeW4gyAyIOW3suS4i+aetiIpCisgICAgcHJpdmF0ZSBJbnRlZ2VyIHN0YXR1czsKKworICAgIC8qKgorICAgICAqIOaYr+WQpuWMv+WQjSAwIOWQpiAxIOaYrworICAgICAqLworICAgIEBTY2hlbWEoZGVzY3JpcHRpb24gPSAi5piv5ZCm5Yy/5ZCNIDAg5ZCmIDEg5pivIikKKyAgICBwcml2YXRlIEludGVnZXIgYW5vbnltb3VzOworCisKKyAgICBAU2NoZW1hKGRlc2NyaXB0aW9uID0gIuWkh+azqCIpCisgICAgcHJpdmF0ZSBTdHJpbmcgcmVtYXJrOworCisKKyAgICAvKioKKyAgICAgKiDmlofku7bnirbmgIEgMCDmnKrkuIrkvKAgMSDlt7LkuIrkvKAKKyAgICAgKi8KKyAgICBwcml2YXRlIEludGVnZXIgZmlsZVN0YXR1czsKKyAgICAvKioKKyAgICAgKiDlrqHmoLjkuroKKyAgICAgKi8KKyAgICBAU2NoZW1hKGRlc2NyaXB0aW9uID0gIuWuoeaguOS6uiIpCisgICAgcHJpdmF0ZSBJbnRlZ2VyIHJldmlld2VyOworCisKKyAgICAvKioKKyAgICAgKiDmt7vliqDml6XmnJ8KKyAgICAgKi8KKyAgICBAU2NoZW1hKGRlc2NyaXB0aW9uID0gIua3u+WKoOaXpeacnyIpCisgICAgcHJpdmF0ZSBMb2NhbERhdGVUaW1lIGNyZWF0ZVRpbWU7CisKKworICAgIC8qKgorICAgICAqIOS/ruaUueaXpeacnworICAgICAqLworICAgIEBTY2hlbWEoZGVzY3JpcHRpb24gPSAi5L+u5pS55pel5pyfIikKKyAgICBwcml2YXRlIExvY2FsRGF0ZVRpbWUgdXBkYXRlVGltZTsKKworICAgIC8qKgorICAgICAqIOaLpeacieiAhQorICAgICAqLworICAgIEBTY2hlbWEoZGVzY3JpcHRpb24gPSAi5oul5pyJ6ICFIikKKyAgICBwcml2YXRlIEludGVnZXIgb3duZXI7CisgICAgLyoqCisgICAgICog5paH5Lu25aSn5bCPCisgICAgICovCisgICAgQFNjaGVtYShkZXNjcmlwdGlvbiA9ICLmlofku7blpKflsI8iKQorICAgIHByaXZhdGUgTG9uZyBzaXplOworICAgIC8qKgorICAgICAqIOexu+WeiworICAgICAqIHNpbmdsZSgxKQorICAgICAqIG11bHRpKDIpCisgICAgICovCisgICAgcHJpdmF0ZSBJbnRlZ2VyIHR5cGU7CisgICAgLyoqCisgICAgICog5paH5Lu25pWw6YePCisgICAgICovCisgICAgQFNjaGVtYShkZXNjcmlwdGlvbiA9ICLmlofku7bmlbDph48iKQorICAgIHByaXZhdGUgSW50ZWdlciBmaWxlQ291bnQ7CisKKyAgICAvKioKKyAgICAgKiDor4TorrrmlbAKKyAgICAgKi8KKyAgICBAU2NoZW1hKGRlc2NyaXB0aW9uID0gIuivhOiuuuaVsCIpCisgICAgcHJpdmF0ZSBJbnRlZ2VyIGNvbW1lbnRzOworICAgIC8qKgorICAgICAqIOa1j+iniOasoeaVsAorICAgICAqLworICAgIEBTY2hlbWEoZGVzY3JpcHRpb24gPSAi5rWP6KeI5qyh5pWwIikKKyAgICBwcml2YXRlIEludGVnZXIgdmlld3M7CisgICAgLyoqCisgICAgICog54K55Ye75qyh5pWwCisgICAgICovCisgICAgQFNjaGVtYShkZXNjcmlwdGlvbiA9ICLngrnlh7vmrKHmlbAiKQorICAgIHByaXZhdGUgSW50ZWdlciBoaXRzOworCisgICAgLyoqCisgICAgICog5Y+v6KeB5oCnCisgICAgICovCisgICAgQFNjaGVtYShkZXNjcmlwdGlvbiA9ICLlj6/op4HmgKciKQorICAgIHByaXZhdGUgSW50ZWdlciB2aXNpYmxlOworCisgICAgLyoqCisgICAgICog5LiL6L295pWwCisgICAgICovCisgICAgQFNjaGVtYShkZXNjcmlwdGlvbiA9ICLkuIvovb3mlbAiKQorICAgIHByaXZhdGUgSW50ZWdlciBsZWVjaGVyczsKKyAgICAvKioKKyAgICAgKiDlgZrnp43mlbAKKyAgICAgKi8KKyAgICBAU2NoZW1hKGRlc2NyaXB0aW9uID0gIuWBmuenjeaVsCIpCisgICAgcHJpdmF0ZSBJbnRlZ2VyIHNlZWRlcnM7CisKKyAgICAvKioKKyAgICAgKiDlrozmiJDmrKHmlbAKKyAgICAgKi8KKyAgICBAU2NoZW1hKGRlc2NyaXB0aW9uID0gIuWujOaIkOasoeaVsCIpCisgICAgcHJpdmF0ZSBJbnRlZ2VyIGNvbXBsZXRpb25zOworCit9CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvZG9tYWluL0JUL1RvdHBWby5qYXZhIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2RvbWFpbi9CVC9Ub3RwVm8uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YzM3NjE5Ci0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2RvbWFpbi9CVC9Ub3RwVm8uamF2YQpAQCAtMCwwICsxLDI2IEBACitwYWNrYWdlIGNvbS5ydW95aS53ZWIuZG9tYWluLkJUOworCisKK2ltcG9ydCBpby5zd2FnZ2VyLnYzLm9hcy5hbm5vdGF0aW9ucy5tZWRpYS5TY2hlbWE7CitpbXBvcnQgamFrYXJ0YS52YWxpZGF0aW9uLmNvbnN0cmFpbnRzLk5vdEVtcHR5OworaW1wb3J0IGpha2FydGEudmFsaWRhdGlvbi5jb25zdHJhaW50cy5Ob3ROdWxsOworaW1wb3J0IGxvbWJvay5EYXRhOworaW1wb3J0IG9yZy5oaWJlcm5hdGUudmFsaWRhdG9yLmNvbnN0cmFpbnRzLkxlbmd0aDsKKworQERhdGEKK0BTY2hlbWEoZGVzY3JpcHRpb24gPSAiVE9UUCIpCitwdWJsaWMgY2xhc3MgVG90cFZvIHsKKworICAgIEBOb3RFbXB0eQorICAgIEBTY2hlbWEoZGVzY3JpcHRpb24gPSAi5a+G6ZKlIikKKyAgICBTdHJpbmcga2V5OworCisgICAgQFNjaGVtYShkZXNjcmlwdGlvbiA9ICLkuoznu7TnoIHlhoXlrrkiKQorICAgIFN0cmluZyB1cmk7CisKKworICAgIEBOb3ROdWxsCisgICAgQExlbmd0aChtaW4gPSA2LCBtYXggPSA2KQorICAgIEBTY2hlbWEoZGVzY3JpcHRpb24gPSAiNuS9jeWKqOaAgemqjOivgeeggSIpCisgICAgSW50ZWdlciBjb2RlOworfQpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2RvbWFpbi9CVC9UcmFja2VyUmVzcG9uc2UuamF2YSBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9kb21haW4vQlQvVHJhY2tlclJlc3BvbnNlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDIxNWRjMwotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9kb21haW4vQlQvVHJhY2tlclJlc3BvbnNlLmphdmEKQEAgLTAsMCArMSw5MSBAQAorcGFja2FnZSBjb20ucnVveWkud2ViLmRvbWFpbi5CVDsKKworCitpbXBvcnQgbG9tYm9rLkRhdGE7CisKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworCitARGF0YQorcHVibGljIGNsYXNzIFRyYWNrZXJSZXNwb25zZSB7CisKKworICAgIFN0cmluZyBmYWlsdXJlUmVhc29uOworCisgICAgU3RyaW5nIHdhcm5pbmdNZXNzYWdlOworCisgICAgSW50ZWdlciBpbnRlcnZhbDsKKworICAgIEludGVnZXIgbWluSW50ZXJ2YWw7CisKKyAgICBTdHJpbmcgdHJhY2tlcklkOworCisgICAgSW50ZWdlciBjb21wbGV0ZTsKKyAgICBJbnRlZ2VyIGluY29tcGxldGU7CisKKyAgICAvKioKKyAgICAgKiDkuIvovb3mrKHmlbAKKyAgICAgKiBxYml05Y+v5Lul55yL5YiwCisgICAgICovCisgICAgSW50ZWdlciBkb3dubG9hZGVkOworCisgICAgTGlzdDxNYXA8U3RyaW5nLCBPYmplY3Q+PiBwZWVyczsKKworICAgIHB1YmxpYyBzdGF0aWMgVHJhY2tlclJlc3BvbnNlIGJ1aWxkKEludGVnZXIgaW50ZXJ2YWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlciBtaW5JbnRlcnZhbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyIGNvbXBsZXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIgaW5jb21wbGV0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0PE1hcDxTdHJpbmcsIE9iamVjdD4+IHBlZXJzKSB7CisgICAgICAgIFRyYWNrZXJSZXNwb25zZSByZXNwb25zZSA9IG5ldyBUcmFja2VyUmVzcG9uc2UoKTsKKyAgICAgICAgcmVzcG9uc2Uuc2V0SW50ZXJ2YWwoaW50ZXJ2YWwpOworICAgICAgICByZXNwb25zZS5zZXRNaW5JbnRlcnZhbChtaW5JbnRlcnZhbCk7CisgICAgICAgIHJlc3BvbnNlLnNldENvbXBsZXRlKGNvbXBsZXRlKTsKKyAgICAgICAgcmVzcG9uc2Uuc2V0SW5jb21wbGV0ZShpbmNvbXBsZXRlKTsKKyAgICAgICAgcmVzcG9uc2Uuc2V0UGVlcnMocGVlcnMpOworCisgICAgICAgIHJldHVybiByZXNwb25zZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUcmFja2VyIOWTjeW6lAorICAgICAqIDxwPgorICAgICAqIFRyYWNrZXIg6L+U5Zue5LiA5LiqICJ0ZXh0L3BsYWluIiDmlofmoaPvvIzor6XmlofmoaPljIXlkKvkuIDkuKogYmVuY29kZWQg5a2X5YW477yM5YW25Lit5YyF5ZCr5Lul5LiL6ZSu5YC877yaCisgICAgICogPHA+CisgICAgICogZmFpbHVyZSByZWFzb27vvIjlpLHotKXljp/lm6DvvInvvJrlpoLmnpzmraTplK7lrZjlnKjvvIzliJnlj6/og73msqHmnInlhbbku5bplK7jgILor6XlgLzmmK/kuIDkuKrkurrnsbvlj6/or7vnmoTplJnor6/mtojmga/vvIzor7TmmI7or7fmsYLkuLrkvZXlpLHotKXvvIjlrZfnrKbkuLLvvInjgIIKKyAgICAgKiB3YXJuaW5nIG1lc3NhZ2XvvIjorablkYrkv6Hmga/vvInvvJrvvIjmlrDnmoTvvIzlj6/pgInnmoTvvInnsbvkvLzkuo4gZmFpbHVyZSByZWFzb27vvIzkvYblk43lupTku43kvJrooqvmraPluLjlpITnkIbjgILorablkYrkv6Hmga/lsLHlg4/plJnor6/kv6Hmga/kuIDmoLfmmL7npLrjgIIKKyAgICAgKiBpbnRlcnZhbO+8iOmXtOmalO+8ie+8muWuouaIt+err+W6lOWcqOWQkSB0cmFja2VyIOWPkemAgeW4uOinhOivt+axguS5i+mXtOetieW+heeahOenkuaVsOOAggorICAgICAqIG1pbiBpbnRlcnZhbO+8iOacgOWwj+mXtOmalO+8ie+8mu+8iOWPr+mAieeahO+8ieacgOWwj+WFrOWRiumXtOmalOOAguWmguaenOatpOmUruWtmOWcqO+8jOWuouaIt+err+S4jeW+l+WcqOatpOaXtumXtOmXtOmalOWGhemHjeWkjeaxh+aKpeOAggorICAgICAqIHRyYWNrZXIgaWTvvIjot5/ouKrlmaggSUTvvInvvJrlrqLmiLfnq6/lupTlnKjlhbbkuIvkuIDmrKHmsYfmiqXkuK3lj5HpgIHlm57nmoTlrZfnrKbkuLLjgILlpoLmnpzmsqHmnInlubbkuJTlhYjliY3nmoTlhazlkYrlj5HpgIHkuobkuIDkuKrov73ouKrlmahJRO+8jOivt+S4jeimgeS4ouW8g+aXp+WAvO+8m+e7p+e7reS9v+eUqOWug+OAggorICAgICAqIGNvbXBsZXRl77yI5a6M5oiQ77yJ77ya5oul5pyJ5pW05Liq5paH5Lu255qEIHBlZXLvvIjlr7nnrYnmlrnvvInmlbDph4/vvIzljbPnp43lrZBzZWVkZXJzIO+8iOaVtOaVsOexu+Wei++8ieOAggorICAgICAqIGluY29tcGxldGXvvIjmnKrlrozmiJDvvInvvJrpnZ7np43lrZAgcGVlcu+8iOWvueetieaWue+8ieeahOaVsOmHj++8jOWPiOWQjSAibGVlY2hlcnMi77yI5pW05pWw57G75Z6L77yJ44CCCisgICAgICogcGVlcnMg77ya77yI5a2X5YW45qih5Z6L77yJ6K+l6ZSu55qE5YC85piv5LiA5Liq5a2X5YW45YiX6KGo77yM5q+P5Liq5a2X5YW46YO95YyF5ZCr5Lul5LiL6ZSu77yaCisgICAgICogLS0tLSBwZWVyIGlkIO+8iOWtl+espuS4su+8iQorICAgICAqIC0tLS0gaXDvvJpwZWVy55qESVDlnLDlnYDvvIzlj6/ku6XmmK9JUHY277yI5Y2B5YWt6L+b5Yi277yJ77yMSVB2NO+8iOeCueeKtuWbm+WFg+e7hO+8ieaIlkROU+WQjeensO+8iOWtl+espuS4su+8iQorICAgICAqIC0tLS0gcG9ydO+8iOerr+WPo++8ie+8mnBlZXLnmoTnq6/lj6Plj7fvvIjmlbTmlbDvvIkKKyAgICAgKiBwZWVycyDvvJrvvIjkuozov5vliLbmqKHlnovvvInkuI3kvb/nlKjkuIrov7DnmoTlrZflhbjmqKHlnovvvIxwZWVycyDplK7nmoTlgLzlj6/ku6XmmK/kuIDkuKrlrZfnrKbkuLLvvIznlLHlpJrkuKo25a2X6IqC57uE5oiQ44CC5YmNNOWtl+iKguaYryBJUCDlnLDlnYDvvIzlkI4y5a2X6IqC5piv56uv5Y+j5Y+344CC5omA5pyJ6L+Z5Lqb6YO96YeH55So572R57uc5a2X6IqC5bqP77yI5aSn56uv5bqP77yJ44CCCisgICAgICogPHA+CisgICAgICog5aaC5LiK5omA6L+w77yM6buY6K6k5oOF5Ya15LiL77yMcGVlcnPliJfooajplb/luqbkuLogNTDjgILlpoLmnpwgdG9ycmVudCDkuK3nmoRwZWVyc+i+g+Wwke+8jOWImeWIl+ihqOS8muabtOWwj+OAggorICAgICAqIOWQpuWIme+8jHRyYWNrZXIg5Lya6ZqP5py66YCJ5oup5YyF5ZCr5Zyo5ZON5bqU5Lit55qEcGVlcnPjgIIKKyAgICAgKiB0cmFja2VyIOWPr+iDveS8mumAieaLqeWunuaWveabtOaZuuiDveeahHBlZXJz6YCJ5oup5py65Yi25p2l5ZON5bqU6K+35rGC44CCCisgICAgICog5L6L5aaC77yM5Y+v5Lul6YG/5YWN5ZCR5YW25LuW56eN5a2Q5oql5ZGK56eN5a2Q44CCCisgICAgICogPHA+CisgICAgICog5Zyo5Y+R55Sf54m55a6a5LqL5Lu277yI5aaCIHN0b3BwZWQg5oiWIGNvbXBsZXRlZO+8ieaXtu+8jOaIluiAheWuouaIt+err+mcgOimgeS6huino+abtOWkmnBlZXJz5pe277yM5a6i5oi356uv5Y+v5Lul5q+U5oyH5a6a55qE6Ze06ZqU5pu06aKR57mB5Zyw5ZCRIHRyYWNrZXIg5Y+R6YCB6K+35rGC44CC5L2G5piv77yM6aKR57mB5Zyw4oCc6L2w54K44oCdIHRyYWNrZXIg5Lul6I635Y+W5aSa5LiqcGVlcnPmmK/kuIDnp43kuI3oia/ooYzkuLrjgILlpoLmnpzlrqLmiLfnq6/luIzmnJvlnKjlk43lupTkuK3ojrflvpflpKfph49wZWVy5YiX6KGo77yM5YiZ5bqU5oyH5a6aIG51bXdhbnQg5Y+C5pWw44CCCisgICAgICogPHA+CisgICAgICog5a6e5pa96ICF5rOo5oSP77ya5Y2z5L2/MzDkuKpwZWVy5bey57uP6Laz5aSf77yM5a6Y5pa55a6i5oi356uv54mI5pysM+WunumZheS4iuWPquacieWcqHBlZXLlsJHkuo4zMOS4quaXtuaJjeS4u+WKqOW9ouaIkOaWsOi/nuaOpe+8jOW5tuS4lOWmguaenOaciTU15LiqcGVlcu+8jOWug+WwhuaLkue7nei/nuaOpeOAgui/meS4quWAvOWvueaAp+iDvemdnuW4uOmHjeimgeOAggorICAgICAqIOW9k+aWsOeahOeJh+auteS4i+i9veWujOaIkOWQju+8jOmcgOimgeWQkeWkp+WkmuaVsOa0u+i3g+eahHBlZXLlj5HpgIEgSEFWRSDmtojmga/vvIjop4HkuIvmlofvvInjgILnu5PmnpzmmK/lub/mkq3mtYHph4/nmoTmiJDmnKzkuI5wZWVy55qE5pWw6YeP5oiQ5q2j5q+U44CCCisgICAgICog6LaF6L+HMjXkuKpwZWVy5ZCO77yM5paw55qEcGVlcuS4jeWkquWPr+iDveWinuWKoOS4i+i9vemAn+W6puOAggorICAgICAqCisgICAgICogQHJldHVybgorICAgICAqLworICAgIHB1YmxpYyBNYXA8U3RyaW5nLCBPYmplY3Q+IHRvUmVzdWx0TWFwKCkgeworICAgICAgICByZXR1cm4gTWFwLm9mKAorICAgICAgICAgICAgICAgICJpbnRlcnZhbCIsIGludGVydmFsLAorICAgICAgICAgICAgICAgICJtaW4gaW50ZXJ2YWwiLCBtaW5JbnRlcnZhbCwKKyAgICAgICAgICAgICAgICAiY29tcGxldGUiLCBjb21wbGV0ZSwKKyAgICAgICAgICAgICAgICAiaW5jb21wbGV0ZSIsIGluY29tcGxldGUsCisgICAgICAgICAgICAgICAgImRvd25sb2FkZWQiLCA2MCwKKyAgICAgICAgICAgICAgICAiZG93bmxvYWRlcnMiLCA3MCwKKyAgICAgICAgICAgICAgICAicGVlcnMiLCBwZWVycworICAgICAgICApOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9kb21haW4vc3lzL1N5c1VzZXIuamF2YSBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9kb21haW4vc3lzL1N5c1VzZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNDVlNzdkCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2RvbWFpbi9zeXMvU3lzVXNlci5qYXZhCkBAIC0wLDAgKzEsMzIgQEAKKy8vcGFja2FnZSBjb20ucnVveWkud2ViLmRvbWFpbi5zeXM7CisvLworLy9pbXBvcnQgY29tLmJhb21pZG91Lm15YmF0aXNwbHVzLmFubm90YXRpb24uVGFibGVJZDsKKy8vaW1wb3J0IGNvbS5iYW9taWRvdS5teWJhdGlzcGx1cy5hbm5vdGF0aW9uLlRhYmxlTmFtZTsKKy8vaW1wb3J0IGxvbWJvay5EYXRhOworLy8KKy8vQERhdGEKKy8vQFRhYmxlTmFtZSgic3lzX3VzZXIiKQorLy9wdWJsaWMgY2xhc3MgU3lzVXNlciB7CisvLyAgICBAVGFibGVJZCgidXNlcl9pZCIpCisvLyAgICBwcml2YXRlIExvbmcgdXNlcklkOworLy8gICAgcHJpdmF0ZSBTdHJpbmcgdXNlck5hbWU7CisvLyAgICBwcml2YXRlIFN0cmluZyBuaWNrTmFtZTsKKy8vICAgIHByaXZhdGUgU3RyaW5nIHVzZXJUeXBlOworLy8gICAgcHJpdmF0ZSBTdHJpbmcgZW1haWw7CisvLyAgICBwcml2YXRlIFN0cmluZyBwaG9uZW51bWJlcjsKKy8vICAgIHByaXZhdGUgU3RyaW5nIHNleDsKKy8vICAgIHByaXZhdGUgU3RyaW5nIGF2YXRhcjsKKy8vICAgIHByaXZhdGUgU3RyaW5nIHBhc3N3b3JkOworLy8gICAgcHJpdmF0ZSBMb25nIGRvd25sb2FkQ291bnQ7CisvLyAgICBwcml2YXRlIExvbmcgdXBsb2FkQ291bnQ7CisvLyAgICBwcml2YXRlIGludCBzdGF0dXM7CisvLyAgICBwcml2YXRlIFN0cmluZyBsb2dpbklwOworLy8gICAgcHJpdmF0ZSBEYXRhIGxvZ2luRGF0ZTsKKy8vICAgIHByaXZhdGUgU3RyaW5nIGNyZWF0ZUJ5OworLy8gICAgcHJpdmF0ZSBTdHJpbmcgdXBkYXRlVGltZTsKKy8vICAgIHByaXZhdGUgU3RyaW5nIHJlbWFyazsKKy8vCisvLyAgICBwdWJsaWMgYm9vbGVhbiBpc1VzZXJPSygpIHsKKy8vICAgICAgICByZXR1cm4gdGhpcy5zdGF0dXMgPT0gMTsKKy8vICAgIH0KKy8vfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9kb21haW4vc3lzL1VzZXJDcmVkZW50aWFsRW50aXR5LmphdmEgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvZG9tYWluL3N5cy9Vc2VyQ3JlZGVudGlhbEVudGl0eS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU5ZjVkZTYKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS93ZWIvZG9tYWluL3N5cy9Vc2VyQ3JlZGVudGlhbEVudGl0eS5qYXZhCkBAIC0wLDAgKzEsNzQgQEAKK3BhY2thZ2UgY29tLnJ1b3lpLndlYi5kb21haW4uc3lzOworCitpbXBvcnQgY29tLmJhb21pZG91Lm15YmF0aXNwbHVzLmFubm90YXRpb24uSWRUeXBlOworaW1wb3J0IGNvbS5iYW9taWRvdS5teWJhdGlzcGx1cy5hbm5vdGF0aW9uLlRhYmxlSWQ7CitpbXBvcnQgY29tLmJhb21pZG91Lm15YmF0aXNwbHVzLmFubm90YXRpb24uVGFibGVOYW1lOworaW1wb3J0IGNvbS5ydW95aS53ZWIuZG9tYWluLkJULkVudGl0eUJhc2U7CitpbXBvcnQgaW8uc3dhZ2dlci52My5vYXMuYW5ub3RhdGlvbnMubWVkaWEuU2NoZW1hOworaW1wb3J0IGxvbWJvay5BbGxBcmdzQ29uc3RydWN0b3I7CitpbXBvcnQgbG9tYm9rLkRhdGE7CitpbXBvcnQgbG9tYm9rLk5vQXJnc0NvbnN0cnVjdG9yOworCisvKioKKyAqIOeUqOaIt+WHreivgSDmlY/mhJ/kv6Hmga8gdXNlcl9jcmVkZW50aWFsCisgKgorICogQGF1dGhvciBKcngKKyAqLworQERhdGEKK0BBbGxBcmdzQ29uc3RydWN0b3IKK0BOb0FyZ3NDb25zdHJ1Y3RvcgorQFRhYmxlTmFtZSgic3lzX3VzZXJfY3JlZGVudGlhbCIpCitwdWJsaWMgY2xhc3MgVXNlckNyZWRlbnRpYWxFbnRpdHkgZXh0ZW5kcyBFbnRpdHlCYXNlIHsKKyAgICAvKioKKyAgICAgKiBJRAorICAgICAqLworICAgIEBUYWJsZUlkKHR5cGUgPSBJZFR5cGUuSU5QVVQpCisgICAgcHJpdmF0ZSBJbnRlZ2VyIGlkOworCisgICAgcHJpdmF0ZSBJbnRlZ2VyIHVzZXJpZDsKKworCisgICAgLyoqCisgICAgICog55So5oi35ZCNCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgdXNlcm5hbWU7CisKKyAgICAvKioKKyAgICAgKiBwYXNzd29yZAorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIHBhc3N3b3JkOworCisgICAgLyoqCisgICAgICogc2FsdAorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIHNhbHQ7CisKKyAgICAvKioKKyAgICAgKiBwYXNza2V5CisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgcGFzc2tleTsKKyAgICAvKioKKyAgICAgKiDpgq7nrrHmoKHpqoznoIEKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBjaGVja0NvZGU7CisKKyAgICAvKioKKyAgICAgKiDkuozmraXpqozor4EgdG90cAorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIHRvdHA7CisKKyAgICAvKioKKyAgICAgKiDms6jlhoxJUAorICAgICAqLworICAgIEBTY2hlbWEoZGVzY3JpcHRpb24gPSAi5rOo5YaMSVAiKQorICAgIHByaXZhdGUgU3RyaW5nIHJlZ0lwOworCisgICAgLyoqCisgICAgICog5rOo5YaM57G75Z6LCisgICAgICogMC7miYvliqjmt7vliqAKKyAgICAgKiAxLuW8gOaUvuazqOWGjAorICAgICAqIDIu5Y+X6YKA5rOo5YaMCisgICAgICogMy7oh6rliqnnrZTpopjms6jlhowKKyAgICAgKi8KKyAgICBwcml2YXRlIEludGVnZXIgcmVnVHlwZTsKK30KZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9kb21haW4vc3lzL1VzZXJFbnRpdHkuamF2YSBiL3J1b3lpLWFkbWluL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL3dlYi9kb21haW4vc3lzL1VzZXJFbnRpdHkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYTg1ODgwCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vamF2YS9jb20vcnVveWkvd2ViL2RvbWFpbi9zeXMvVXNlckVudGl0eS5qYXZhCkBAIC0wLDAgKzEsMTExIEBACitwYWNrYWdlIGNvbS5ydW95aS53ZWIuZG9tYWluLnN5czsKKworaW1wb3J0IGNvbS5iYW9taWRvdS5teWJhdGlzcGx1cy5hbm5vdGF0aW9uLio7CitpbXBvcnQgY29tLmZhc3RlcnhtbC5qYWNrc29uLmFubm90YXRpb24uSnNvbkZvcm1hdDsKK2ltcG9ydCBpby5zd2FnZ2VyLnYzLm9hcy5hbm5vdGF0aW9ucy5tZWRpYS5TY2hlbWE7CitpbXBvcnQgbG9tYm9rLkRhdGE7CisKK2ltcG9ydCBqYXZhLmlvLlNlcmlhbGl6YWJsZTsKK2ltcG9ydCBqYXZhLnRpbWUuTG9jYWxEYXRlVGltZTsKKworCisvKioKKyAqIOeUqOaItworICogQGF1dGhvciBKcngKKyAqLworQERhdGEKK0BUYWJsZU5hbWUoInN5c191c2VyIikKK3B1YmxpYyBjbGFzcyBVc2VyRW50aXR5IGltcGxlbWVudHMgU2VyaWFsaXphYmxlIHsKKworICAgIEBUYWJsZUlkKHZhbHVlID0gInVzZXJfaWQiLCB0eXBlID0gSWRUeXBlLkFVVE8pCisgICAgcHJpdmF0ZSBMb25nIHVzZXJfaWQ7CisgICAgcHJpdmF0ZSBTdHJpbmcgdXNlcl9uYW1lOworICAgIHByaXZhdGUgU3RyaW5nIG5pY2tfbmFtZTsKKyAgICBwcml2YXRlIFN0cmluZyB1c2VyX3R5cGU7CisgICAgcHJpdmF0ZSBTdHJpbmcgZW1haWw7CisgICAgcHJpdmF0ZSBTdHJpbmcgcGhvbmVudW1iZXI7CisKKyAgICAvLyDmlbDmja7lupPlrZfmrrXkuLpzZXjvvIzlrp7kvZPnsbvkvb/nlKhnZW5kZXLmm7TnrKblkIjor63kuYkKKyAgICBAVGFibGVGaWVsZCgic2V4IikKKyAgICBwcml2YXRlIFN0cmluZyBnZW5kZXI7CisKKyAgICBwcml2YXRlIFN0cmluZyBhdmF0YXI7CisgICAgcHJpdmF0ZSBTdHJpbmcgcGFzc3dvcmQ7CisKKyAgICAvLyDnirbmgIHlrZfmrrXmmKDlsIQKKyAgICBAVGFibGVGaWVsZCgic3RhdHVzIikKKyAgICBwcml2YXRlIEludGVnZXIgc3RhdHVzOworCisgICAgcHJpdmF0ZSBTdHJpbmcgbG9naW5faXA7CisKKyAgICAvLyDml6XmnJ/nsbvlnovnu5/kuIDkvb/nlKhMb2NhbERhdGVUaW1lCisgICAgQEpzb25Gb3JtYXQocGF0dGVybiA9ICJ5eXl5LU1NLWRkIEhIOm1tOnNzIikKKyAgICBwcml2YXRlIExvY2FsRGF0ZVRpbWUgbG9naW5fZGF0ZTsKKworICAgIHByaXZhdGUgU3RyaW5nIGNyZWF0ZV9ieTsKKworICAgIC8vIOS/ruato+Wtl+auteWQjeS4juaVsOaNruW6k+S4gOiHtAorICAgIEBUYWJsZUZpZWxkKCJjcmVhdGVfdGltZSIpCisgICAgcHJpdmF0ZSBMb2NhbERhdGVUaW1lIGNyZWF0ZV90aW1lOworCisgICAgcHJpdmF0ZSBTdHJpbmcgdXBkYXRlX2J5OworCisgICAgLy8g5L+u5q2j5a2X5q615ZCN5LiO5pWw5o2u5bqT5LiA6Ie0CisgICAgQFRhYmxlRmllbGQoInVwZGF0ZV90aW1lIikKKyAgICBwcml2YXRlIExvY2FsRGF0ZVRpbWUgdXBkYXRlX3RpbWU7CisKKyAgICBwcml2YXRlIFN0cmluZyByZW1hcms7CisgICAgcHJpdmF0ZSBTdHJpbmcgZnVsbF9uYW1lOworCisgICAgLy8g5L2/55SoSW50ZWdlcuiAjOmdnuiHquWumuS5ieaemuS4vu+8jOS4juaVsOaNruW6k+Wtl+auteexu+Wei+S4gOiHtAorICAgIHByaXZhdGUgSW50ZWdlciBzdGF0ZTsKKworICAgIHByaXZhdGUgTG9jYWxEYXRlVGltZSBhZGRlZDsKKyAgICBwcml2YXRlIExvY2FsRGF0ZVRpbWUgbGFzdF9sb2dpbjsKKyAgICBwcml2YXRlIExvY2FsRGF0ZVRpbWUgbGFzdF9hY2Nlc3M7CisgICAgcHJpdmF0ZSBMb2NhbERhdGVUaW1lIGxhc3RfaG9tZTsKKyAgICBwcml2YXRlIExvY2FsRGF0ZVRpbWUgbGFzdF9vZmZlcjsKKyAgICBwcml2YXRlIExvY2FsRGF0ZVRpbWUgZm9ydW1fYWNjZXNzOworICAgIHByaXZhdGUgTG9jYWxEYXRlVGltZSBsYXN0X3N0YWZmbXNnOworICAgIHByaXZhdGUgTG9jYWxEYXRlVGltZSBsYXN0X3BtOworICAgIHByaXZhdGUgTG9jYWxEYXRlVGltZSBsYXN0X2NvbW1lbnQ7CisgICAgcHJpdmF0ZSBMb2NhbERhdGVUaW1lIGxhc3RfcG9zdDsKKyAgICBwcml2YXRlIExvY2FsRGF0ZVRpbWUgbGFzdF9hY3RpdmU7CisKKyAgICBwcml2YXRlIEludGVnZXIgcHJpdmFjeTsKKyAgICBwcml2YXRlIFN0cmluZyByZWdfaXA7CisgICAgcHJpdmF0ZSBJbnRlZ2VyIGxldmVsOworICAgIHByaXZhdGUgTG9uZyBzZWVkdGltZTsKKyAgICBwcml2YXRlIExvbmcgbGVlY2h0aW1lOworCisgICAgQFNjaGVtYShkZXNjcmlwdGlvbiA9ICLnnJ/lrp7kuIrkvKDph48iKQorICAgIHByaXZhdGUgTG9uZyByZWFsX3VwbG9hZGVkOworCisgICAgQFNjaGVtYShkZXNjcmlwdGlvbiA9ICLnnJ/lrp7kuIvovb3ph48iKQorICAgIHByaXZhdGUgTG9uZyByZWFsX2Rvd25sb2FkZWQ7CisKKyAgICBwcml2YXRlIFN0cmluZyBtb2Rjb21tZW50OworICAgIHByaXZhdGUgTG9uZyB3YXJuaW5nX2J5OworICAgIHByaXZhdGUgSW50ZWdlciB3YXJuaW5nX3RpbWVzOworICAgIHByaXZhdGUgQm9vbGVhbiB3YXJuaW5nOworCisgICAgQEpzb25Gb3JtYXQocGF0dGVybiA9ICJ5eXl5LU1NLWRkIEhIOm1tOnNzIikKKyAgICBwcml2YXRlIExvY2FsRGF0ZVRpbWUgd2FybmluZ191bnRpbDsKKworICAgIHByaXZhdGUgTG9uZyBkb3dubG9hZDsKKyAgICBwcml2YXRlIExvbmcgdXBsb2FkOworICAgIHByaXZhdGUgSW50ZWdlciBpbnZpdGVkX2J5OworICAgIHByaXZhdGUgTG9uZyBib251czsKKyAgICBwcml2YXRlIExvbmcgZXhwOworICAgIHByaXZhdGUgU3RyaW5nIGNoZWNrX2NvZGU7CisgICAgcHJpdmF0ZSBJbnRlZ2VyIHJlZ190eXBlOworCisgICAgLy8g54q25oCB6L6F5Yqp5pa55rOVCisgICAgcHVibGljIGJvb2xlYW4gaXNVc2VyTG9ja2VkKCkgeworICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZSAhPSBudWxsICYmIHRoaXMuc3RhdGUgPT0gMTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBpc1VzZXJPSygpIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGUgIT0gbnVsbCAmJiB0aGlzLnN0YXRlID09IDA7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL2FwcGxpY2F0aW9uLWRydWlkLnltbCBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9hcHBsaWNhdGlvbi1kcnVpZC55bWwKaW5kZXggMWViMmMyZi4uNTZjN2Q2OSAxMDA2NDQKLS0tIGEvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL2FwcGxpY2F0aW9uLWRydWlkLnltbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvYXBwbGljYXRpb24tZHJ1aWQueW1sCkBAIC0xMiwxMCArMTIsMTAgQEAKICAgICAgICAgICAgICMg5LuO5bqT5pWw5o2u5rqQCiAgICAgICAgICAgICBzbGF2ZToKICAgICAgICAgICAgICAgICAjIOS7juaVsOaNrua6kOW8gOWFsy/pu5jorqTlhbPpl60KLSAgICAgICAgICAgICAgICBlbmFibGVkOiBmYWxzZQotICAgICAgICAgICAgICAgIHVybDogCi0gICAgICAgICAgICAgICAgdXNlcm5hbWU6IAotICAgICAgICAgICAgICAgIHBhc3N3b3JkOiAKKyAgICAgICAgICAgICAgICBlbmFibGVkOiB0cnVlCisgICAgICAgICAgICAgICAgdXJsOiBqZGJjOm15c3FsOi8vMzkuMTA1LjM4LjYzOjMzMDYvcHQ/dXNlVW5pY29kZT10cnVlJmNoYXJhY3RlckVuY29kaW5nPXV0ZjgmemVyb0RhdGVUaW1lQmVoYXZpb3I9Y29udmVydFRvTnVsbCZ1c2VTU0w9dHJ1ZSZzZXJ2ZXJUaW1lem9uZT1HTVQlMkI4CisgICAgICAgICAgICAgICAgdXNlcm5hbWU6IHB0CisgICAgICAgICAgICAgICAgcGFzc3dvcmQ6IEpSOGRIeWlBSmp0ZjZKQWkKICAgICAgICAgICAgICMg5Yid5aeL6L+e5o6l5pWwCiAgICAgICAgICAgICBpbml0aWFsU2l6ZTogNQogICAgICAgICAgICAgIyDmnIDlsI/ov57mjqXmsaDmlbDph48KZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9hcHBsaWNhdGlvbi1wcm9kLnltbCBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9hcHBsaWNhdGlvbi1wcm9kLnltbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YzYwMGI4Ci0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL2FwcGxpY2F0aW9uLXByb2QueW1sCkBAIC0wLDAgKzEsMTg1IEBACisjIOmhueebruebuOWFs+mFjee9rgorcnVveWk6CisgICMg5ZCN56ewCisgIG5hbWU6IFRkSHViCisgICMg54mI5pysCisgIHZlcnNpb246IDMuOC44CisgICMg54mI5p2D5bm05Lu9CisgIGNvcHlyaWdodFllYXI6IDIwMjQKKyAgcHJvZmlsZTogLi9kb3dubG9hZAorICAjIOiOt+WPlmlw5Zyw5Z2A5byA5YWzCisgIGFkZHJlc3NFbmFibGVkOiBmYWxzZQorICAjIOmqjOivgeeggeexu+WeiyBtYXRoIOaVsOWtl+iuoeeulyBjaGFyIOWtl+espumqjOivgQorICBjYXB0Y2hhVHlwZTogbWF0aAorCisjIOW8gOWPkeeOr+Wig+mFjee9rgorc2VydmVyOgorICAjIOacjeWKoeWZqOeahEhUVFDnq6/lj6PvvIzpu5jorqTkuLo4MDgwCisgIGFkZHJlc3M6IDAuMC4wLjAKKyAgcG9ydDogODA4MAorICBzZXJ2bGV0OgorICAgICMg5bqU55So55qE6K6/6Zeu6Lev5b6ECisgICAgY29udGV4dC1wYXRoOiAvCisgIHRvbWNhdDoKKyAgICAjIHRvbWNhdOeahFVSSee8lueggQorICAgIHVyaS1lbmNvZGluZzogVVRGLTgKKyAgICAjIOi/nuaOpeaVsOa7oeWQjueahOaOkumYn+aVsO+8jOm7mOiupOS4ujEwMAorICAgIGFjY2VwdC1jb3VudDogMTAwMAorICAgIHRocmVhZHM6CisgICAgICAjIHRvbWNhdOacgOWkp+e6v+eoi+aVsO+8jOm7mOiupOS4ujIwMAorICAgICAgbWF4OiA4MDAKKyAgICAgICMgVG9tY2F05ZCv5Yqo5Yid5aeL5YyW55qE57q/56iL5pWw77yM6buY6K6k5YC8MTAKKyAgICAgIG1pbi1zcGFyZTogMTAwCisgIGhvc3RuYW1lOiAiMTkyLjE2OC4xNDYuMSIKKworIyDml6Xlv5fphY3nva4KK2xvZ2dpbmc6CisgIGxldmVsOgorICAgIGNvbS5ydW95aTogZGVidWcKKyAgICBvcmcuc3ByaW5nZnJhbWV3b3JrOiB3YXJuCisKKyMg55So5oi36YWN572uCit1c2VyOgorICBwYXNzd29yZDoKKyAgICAjIOWvhueggeacgOWkp+mUmeivr+asoeaVsAorICAgIG1heFJldHJ5Q291bnQ6IDUKKyAgICAjIOWvhueggemUgeWumuaXtumXtO+8iOm7mOiupDEw5YiG6ZKf77yJCisgICAgbG9ja1RpbWU6IDEwCisKKyMgU3ByaW5n6YWN572uCitzcHJpbmc6CisgIGpwYToKKyAgICBzaG93LXNxbDogdHJ1ZQorICAgIHByb3BlcnRpZXM6CisgICAgICBoaWJlcm5hdGU6CisgICAgICAgIGZvcm1hdF9zcWw6IHRydWUKKyAgZmx5d2F5OgorICAgIGVuYWJsZWQ6IGZhbHNlICAjIOemgeeUqEZseXdheQorICAjIOi1hOa6kOS/oeaBrworICBtZXNzYWdlczoKKyAgICAjIOWbvemZheWMlui1hOa6kOaWh+S7tui3r+W+hAorICAgIGJhc2VuYW1lOiBpMThuL21lc3NhZ2VzCisgIHByb2ZpbGVzOgorICAgIGFjdGl2ZTogZHJ1aWQKKyAgIyDmlofku7bkuIrkvKAKKyAgc2VydmxldDoKKyAgICBtdWx0aXBhcnQ6CisgICAgICAjIOWNleS4quaWh+S7tuWkp+WwjworICAgICAgZW5hYmxlZDogdHJ1ZQorICAgICAgbWF4LWZpbGUtc2l6ZTogMTAwTUIKKyAgICAgICMg6K6+572u5oC75LiK5Lyg55qE5paH5Lu25aSn5bCPCisgICAgICBtYXgtcmVxdWVzdC1zaXplOiAxMDI0TUIKKyAgIyDmnI3liqHmqKHlnZcKKyAgZGV2dG9vbHM6CisgICAgcmVzdGFydDoKKyAgICAgICMg54Ot6YOo572y5byA5YWzCisgICAgICBlbmFibGVkOiB0cnVlCisgIGRhdGE6CisgICAgIyByZWRpcyDphY3nva4KKyAgICByZWRpczoKKyAgICAgICMg5Zyw5Z2ACisgICAgICBob3N0OiByZWRpcworICAgICAgIyDnq6/lj6PvvIzpu5jorqTkuLo2Mzc5CisgICAgICBwb3J0OiA2Mzc5CisgICAgICAjIOaVsOaNruW6k+e0ouW8lQorICAgICAgZGF0YWJhc2U6IDAKKyAgICAgICMg5a+G56CBCisgICAgICBwYXNzd29yZDoKKyAgICAgICMg6L+e5o6l6LaF5pe25pe26Ze0CisgICAgICB0aW1lb3V0OiAxMHMKKyAgICAgIGxldHR1Y2U6CisgICAgICAgIHBvb2w6CisgICAgICAgICAgIyDov57mjqXmsaDkuK3nmoTmnIDlsI/nqbrpl7Lov57mjqUKKyAgICAgICAgICBtaW4taWRsZTogMAorICAgICAgICAgICMg6L+e5o6l5rGg5Lit55qE5pyA5aSn56m66Zey6L+e5o6lCisgICAgICAgICAgbWF4LWlkbGU6IDgKKyAgICAgICAgICAjIOi/nuaOpeaxoOeahOacgOWkp+aVsOaNruW6k+i/nuaOpeaVsAorICAgICAgICAgIG1heC1hY3RpdmU6IDgKKyAgICAgICAgICAjICPov57mjqXmsaDmnIDlpKfpmLvloZ7nrYnlvoXml7bpl7TvvIjkvb/nlKjotJ/lgLzooajnpLrmsqHmnInpmZDliLbvvIkKKyAgICAgICAgICBtYXgtd2FpdDogLTFtcworCisjIHRva2Vu6YWN572uCit0b2tlbjoKKyAgIyDku6TniYzoh6rlrprkuYnmoIfor4YKKyAgaGVhZGVyOiBBdXRob3JpemF0aW9uCisgICMg5Luk54mM5a+G6ZKlCisgIHNlY3JldDogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoKKyAgIyDku6TniYzmnInmlYjmnJ/vvIjpu5jorqQzMOWIhumSn++8iQorICBleHBpcmVUaW1lOiAzMAorCisjIyMgTXlCYXRpc+mFjee9rgorI215YmF0aXM6CisjICAjIOaQnOe0ouaMh+WumuWMheWIq+WQjQorIyAgdHlwZUFsaWFzZXNQYWNrYWdlOiBjb20ucnVveWkuKiouZG9tYWluCisjICAjIOmFjee9rm1hcHBlcueahOaJq+aPj++8jOaJvuWIsOaJgOacieeahG1hcHBlci54bWzmmKDlsITmlofku7YKKyMgIG1hcHBlckxvY2F0aW9uczogY2xhc3NwYXRoKjptYXBwZXIvKiovKk1hcHBlci54bWwKKyMgICMg5Yqg6L295YWo5bGA55qE6YWN572u5paH5Lu2CisjICBjb25maWdMb2NhdGlvbjogY2xhc3NwYXRoOm15YmF0aXMvbXliYXRpcy1jb25maWcueG1sCisjICBjb25maWd1cmF0aW9uOgorIyAgICAgbWFwVW5kZXJzY29yZVRvQ2FtZWxDYXNlOiB0cnVlCisKKworIyBNeUJhdGlzLXBsdXPphY3nva4KK215YmF0aXMtcGx1czoKKyAgIyDmkJzntKLmjIflrprljIXliKvlkI0KKyAgdHlwZUFsaWFzZXNQYWNrYWdlOiBjb20ucnVveWkuKiouZG9tYWluCisgICMg6YWN572ubWFwcGVy55qE5omr5o+P77yM5om+5Yiw5omA5pyJ55qEbWFwcGVyLnhtbOaYoOWwhOaWh+S7tgorICBtYXBwZXJMb2NhdGlvbnM6IGNsYXNzcGF0aCo6bWFwcGVyLyoqLypNYXBwZXIueG1sCisgIGNvbmZpZ0xvY2F0aW9uOiBjbGFzc3BhdGg6bXliYXRpcy9teWJhdGlzLWNvbmZpZy54bWwKKyAgIyDlhajlsYDphY3nva4KKyAgZ2xvYmFsLWNvbmZpZzoKKyAgICAjIOS4u+mUruexu+WeiyAgMDoi5pWw5o2u5bqTSUToh6rlop4iLCAxOiLnlKjmiLfovpPlhaVJRCIsMjoi5YWo5bGA5ZSv5LiASUQgKOaVsOWtl+exu+Wei+WUr+S4gElEKSIsIDM6IuWFqOWxgOWUr+S4gElEIFVVSUQiOworICAgIGlkLXR5cGU6IDAKKyAgICAjIOWtl+auteetlueVpSAwOiLlv73nlaXliKTmlq0iLDE6IumdniBOVUxMIOWIpOaWrSIpLDI6IumdnuepuuWIpOaWrSIKKyAgICBmaWVsZC1zdHJhdGVneTogMgorICAgICMg6am85bOw5LiL5YiS57q/6L2s5o2iCisgICAgZGItY29sdW1uLXVuZGVybGluZTogdHJ1ZQorICAgICMg5Yi35pawbWFwcGVyIOiwg+ivleelnuWZqAorICAgIHJlZnJlc2gtbWFwcGVyOiB0cnVlCisgICAgIyDphY3nva4KKyAgICBjb25maWd1cmF0aW9uOgorICAgICAgIyDpqbzls7DlvI/lkb3lkI0KKyAgICAgIG1hcC11bmRlcnNjb3JlLXRvLWNhbWVsLWNhc2U6IHRydWUKKyAgICAgICMg5YWo5bGA5pig5bCE5Zmo5ZCv55So57yT5a2YCisgICAgICBjYWNoZS1lbmFibGVkOiB0cnVlCisgICAgICAjIOaMh+WumiBNeUJhdGlzIOaJgOeUqOaXpeW/l+eahOWFt+S9k+WunueOsAorICAgICAgbG9nLWltcGw6IG9yZy5zbGY0ajsKKyAgICAgICMg6YWN572u6buY6K6k55qE5omn6KGM5ZmoCisgICAgICBkZWZhdWx0LWV4ZWN1dG9yLXR5cGU6IHJldXNlCisgICAgICAjIOWFgeiuuCBKREJDIOaUr+aMgeiHquWKqOeUn+aIkOS4u+mUrgorICAgICAgdXNlLWdlbmVyYXRlZC1rZXlzOiB0cnVlCisKKworIyBQYWdlSGVscGVy5YiG6aG15o+S5Lu2CitwYWdlaGVscGVyOgorICBoZWxwZXJEaWFsZWN0OiBteXNxbAorICBzdXBwb3J0TWV0aG9kc0FyZ3VtZW50czogdHJ1ZQorICBwYXJhbXM6IGNvdW50PWNvdW50U3FsCisKKyMgU3ByaW5nZG9j6YWN572uCitzcHJpbmdkb2M6CisgIGFwaS1kb2NzOgorICAgIHBhdGg6IC92My9hcGktZG9jcworICBzd2FnZ2VyLXVpOgorICAgIGVuYWJsZWQ6IHRydWUKKyAgICBwYXRoOiAvc3dhZ2dlci11aS5odG1sCisgICAgdGFncy1zb3J0ZXI6IGFscGhhCisgIGdyb3VwLWNvbmZpZ3M6CisgICAgLSBncm91cDogJ2RlZmF1bHQnCisgICAgICBkaXNwbGF5LW5hbWU6ICfmtYvor5XmqKHlnZcnCisgICAgICBwYXRocy10by1tYXRjaDogJy8qKicKKyAgICAgIHBhY2thZ2VzLXRvLXNjYW46IGNvbS5ydW95aS53ZWIuY29udHJvbGxlci50b29sCisKKyMg6Ziy5q2iWFNT5pS75Ye7Cit4c3M6CisgICMg6L+H5ruk5byA5YWzCisgIGVuYWJsZWQ6IHRydWUKKyAgIyDmjpLpmaTpk77mjqXvvIjlpJrkuKrnlKjpgJflj7fliIbpmpTvvIkKKyAgZXhjbHVkZXM6IC9zeXN0ZW0vbm90aWNlCisgICMg5Yy56YWN6ZO+5o6lCisgIHVybFBhdHRlcm5zOiAvc3lzdGVtLyosL21vbml0b3IvKiwvdG9vbC8qCisKKyMg6K6+572u5piv5ZCm6LCD6K+V77yM6LCD6K+V5oOF5Ya15Y+v6Lez6L+H5o6l5Y+j6K6k6K+BCitkZWJ1ZzogZmFsc2UKKworCmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvYXBwbGljYXRpb24ueW1sIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL2FwcGxpY2F0aW9uLnltbAppbmRleCA5OGIwM2ZkLi5lZDVkZWJlIDEwMDY0NAotLS0gYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvYXBwbGljYXRpb24ueW1sCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9hcHBsaWNhdGlvbi55bWwKQEAgLTMyLDYgKzMyLDcgQEAKICAgICAgIG1heDogODAwCiAgICAgICAjIFRvbWNhdOWQr+WKqOWIneWni+WMlueahOe6v+eoi+aVsO+8jOm7mOiupOWAvDEwCiAgICAgICBtaW4tc3BhcmU6IDEwMAorICBob3N0bmFtZTogIjE5Mi4xNjguMTQ2LjEiCiAKICMg5pel5b+X6YWN572uCiBsb2dnaW5nOgpAQCAtNDksNiArNTAsMTMgQEAKIAogIyBTcHJpbmfphY3nva4KIHNwcmluZzoKKyAganBhOgorICAgIHNob3ctc3FsOiB0cnVlCisgICAgcHJvcGVydGllczoKKyAgICAgIGhpYmVybmF0ZToKKyAgICAgICAgZm9ybWF0X3NxbDogdHJ1ZQorICBmbHl3YXk6CisgICAgZW5hYmxlZDogZmFsc2UgICMg56aB55SoRmx5d2F5CiAgICMg6LWE5rqQ5L+h5oGvCiAgIG1lc3NhZ2VzOgogICAgICMg5Zu96ZmF5YyW6LWE5rqQ5paH5Lu26Lev5b6ECkBAIC01OCwxMCArNjYsMTMgQEAKICAgIyDmlofku7bkuIrkvKAKICAgc2VydmxldDoKICAgICBtdWx0aXBhcnQ6CisKKyAgICAgICMg5Y2V5Liq5paH5Lu25aSn5bCPCiAgICAgICBlbmFibGVkOiB0cnVlCi0gICAgICBtYXgtZmlsZS1zaXplOiAxME1CCisgICAgICBtYXgtZmlsZS1zaXplOiAxMDBNQgorCiAgICAgICAjIOiuvue9ruaAu+S4iuS8oOeahOaWh+S7tuWkp+WwjwotICAgICAgbWF4LXJlcXVlc3Qtc2l6ZTogMjBNQgorICAgICAgbWF4LXJlcXVlc3Qtc2l6ZTogMTAyNE1CCiAgICMg5pyN5Yqh5qih5Z2XCiAgIGRldnRvb2xzOgogICAgIHJlc3RhcnQ6CkBAIC03MSw3ICs4Miw3IEBACiAgICAgIyByZWRpcyDphY3nva4KICAgICByZWRpczoKICAgICAgICMg5Zyw5Z2ACi0gICAgICBob3N0OiBsb2NhbGhvc3QKKyAgICAgIGhvc3Q6IDEyNy4wLjAuMQogICAgICAgIyDnq6/lj6PvvIzpu5jorqTkuLo2Mzc5CiAgICAgICBwb3J0OiA2Mzc5CiAgICAgICAjIOaVsOaNruW6k+e0ouW8lQpAQCAtMTA0LDE5ICsxMTUsMTIgQEAKICAgIyDku6TniYzmnInmlYjmnJ/vvIjpu5jorqQzMOWIhumSn++8iQogICBleHBpcmVUaW1lOiAzMAogCi0jIE15QmF0aXPphY3nva4KLW15YmF0aXM6Ci0gICMg5pCc57Si5oyH5a6a5YyF5Yir5ZCNCi0gIHR5cGVBbGlhc2VzUGFja2FnZTogY29tLnJ1b3lpLioqLmRvbWFpbgotICAjIOmHjeeCueS/ruaUuTHvvJrmianlsZVYTUzmiavmj4/ot6/lvoQKLSAgbWFwcGVyTG9jYXRpb25zOiBjbGFzc3BhdGgqOm1hcHBlci8qKi8qTWFwcGVyLnhtbAotICAjIOWKoOi9veWFqOWxgOeahOmFjee9ruaWh+S7tgotICBjb25maWdMb2NhdGlvbjogY2xhc3NwYXRoOm15YmF0aXMvbXliYXRpcy1jb25maWcueG1sCiAKICMgTXlCYXRpcy1wbHVz6YWN572uCiBteWJhdGlzLXBsdXM6CiAgICMg5pCc57Si5oyH5a6a5YyF5Yir5ZCNCiAgIHR5cGVBbGlhc2VzUGFja2FnZTogY29tLnJ1b3lpLioqLmRvbWFpbgorCiAgICMg6YeN54K55L+u5pS5Mu+8muimhuebluWOn+i3r+W+hO+8jOaUr+aMgeWkmuaooeWdlwogICBtYXBwZXItbG9jYXRpb25zOiBjbGFzc3BhdGgqOm1hcHBlci8qKi8qLnhtbAogICBjb25maWdMb2NhdGlvbjogY2xhc3NwYXRoOm15YmF0aXMvbXliYXRpcy1jb25maWcueG1sCkBAIC0xNzgsMyArMTgyLDUgQEAKIAogIyDorr7nva7mmK/lkKbosIPor5XvvIzosIPor5Xmg4XlhrXlj6/ot7Pov4fmjqXlj6PorqTor4EKIGRlYnVnOiBmYWxzZQorCisKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9teWJhdGlzL215YmF0aXMtY29uZmlnLnhtbCBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9teWJhdGlzL215YmF0aXMtY29uZmlnLnhtbAppbmRleCBhYzQ3YzAzLi4xMGNmNmIwIDEwMDY0NAotLS0gYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvbXliYXRpcy9teWJhdGlzLWNvbmZpZy54bWwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL215YmF0aXMvbXliYXRpcy1jb25maWcueG1sCkBAIC0xNCw3ICsxNCw3IEBACiAJCTwhLS0g5oyH5a6aIE15QmF0aXMg5omA55So5pel5b+X55qE5YW35L2T5a6e546wIC0tPgogICAgICAgICA8c2V0dGluZyBuYW1lPSJsb2dJbXBsIiAgICAgICAgICAgICAgICAgIHZhbHVlPSJTTEY0SiIgIC8+CiAgICAgICAgIDwhLS0g5L2/55So6am85bOw5ZG95ZCN5rOV6L2s5o2i5a2X5q61IC0tPgotCQk8IS0tIDxzZXR0aW5nIG5hbWU9Im1hcFVuZGVyc2NvcmVUb0NhbWVsQ2FzZSIgdmFsdWU9InRydWUiLz4gLS0+CisJCSA8c2V0dGluZyBuYW1lPSJtYXBVbmRlcnNjb3JlVG9DYW1lbENhc2UiIHZhbHVlPSJ0cnVlIi8+CiAJPC9zZXR0aW5ncz4KIAkKIDwvY29uZmlndXJhdGlvbj4KZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvMTI1Ni4yZmFlOGQzZi5hc3luYy5qcyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvMTI1Ni4yZmFlOGQzZi5hc3luYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45Njg2YTk0Ci0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy8xMjU2LjJmYWU4ZDNmLmFzeW5jLmpzCkBAIC0wLDAgKzEgQEAKKyJ1c2Ugc3RyaWN0Ijsoc2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Bybz1zZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvfHxbXSkucHVzaChbWzEyNTYsODIxMywxMzE2XSx7MzExOTk6ZnVuY3Rpb24oUSxNLG8pe3ZhciB0PW8oMTQxMyksdT1vKDkxKSxmPW8oNjcyOTQpLGI9byg5MjE3OSksXz1vKDg1ODkzKSxFPVsiZmllbGRQcm9wcyIsIm1pbiIsInByb0ZpZWxkUHJvcHMiLCJtYXgiXSxEPWZ1bmN0aW9uKHMsQil7dmFyIEk9cy5maWVsZFByb3BzLHA9cy5taW4sYz1zLnByb0ZpZWxkUHJvcHMsUj1zLm1heCxoPSgwLHUuWikocyxFKTtyZXR1cm4oMCxfLmpzeCkoYi5aLCgwLHQuWikoe3ZhbHVlVHlwZToiZGlnaXQiLGZpZWxkUHJvcHM6KDAsdC5aKSh7bWluOnAsbWF4OlJ9LEkpLHJlZjpCLGZpbGVkQ29uZmlnOntkZWZhdWx0UHJvcHM6e3dpZHRoOiIxMDAlIn19LHByb0ZpZWxkUHJvcHM6Y30saCkpfSxTPWYuZm9yd2FyZFJlZihEKTtNLlo9U30sODY2MTU6ZnVuY3Rpb24oUSxNLG8pe3ZhciB0PW8oMTQxMyksdT1vKDkxKSxmPW8oMjIyNzApLGI9byg3ODA0NSksXz1vKDY3Mjk0KSxFPW8oOTA3ODkpLEQ9byg5MjE3OSksUz1vKDg1ODkzKSxnPVsiZmllbGRQcm9wcyIsIm9wdGlvbnMiLCJyYWRpb1R5cGUiLCJsYXlvdXQiLCJwcm9GaWVsZFByb3BzIiwidmFsdWVFbnVtIl0scz1fLmZvcndhcmRSZWYoZnVuY3Rpb24oYyxSKXt2YXIgaD1jLmZpZWxkUHJvcHMsTz1jLm9wdGlvbnMsWj1jLnJhZGlvVHlwZSxpPWMubGF5b3V0LG49Yy5wcm9GaWVsZFByb3BzLFQ9Yy52YWx1ZUVudW0sQz0oMCx1LlopKGMsZyk7cmV0dXJuKDAsUy5qc3gpKEQuWiwoMCx0LlopKCgwLHQuWikoe3ZhbHVlVHlwZTpaPT09ImJ1dHRvbiI/InJhZGlvQnV0dG9uIjoicmFkaW8iLHJlZjpSLHZhbHVlRW51bTooMCxmLmgpKFQsdm9pZCAwKX0sQykse30se2ZpZWxkUHJvcHM6KDAsdC5aKSh7b3B0aW9uczpPLGxheW91dDppfSxoKSxwcm9GaWVsZFByb3BzOm4sZmlsZWRDb25maWc6e2N1c3RvbUxpZ2h0TW9kZTohMH19KSl9KSxCPV8uZm9yd2FyZFJlZihmdW5jdGlvbihjLFIpe3ZhciBoPWMuZmllbGRQcm9wcyxPPWMuY2hpbGRyZW47cmV0dXJuKDAsUy5qc3gpKGIuWlAsKDAsdC5aKSgoMCx0LlopKHt9LGgpLHt9LHtyZWY6UixjaGlsZHJlbjpPfSkpfSksST0oMCxFLkcpKEIse3ZhbHVlUHJvcE5hbWU6ImNoZWNrZWQiLGlnbm9yZVdpZHRoOiEwfSkscD1JO3AuR3JvdXA9cyxwLkJ1dHRvbj1iLlpQLkJ1dHRvbixwLmRpc3BsYXlOYW1lPSJQcm9Gb3JtQ29tcG9uZW50IixNLlo9cH0sOTA2NzI6ZnVuY3Rpb24oUSxNLG8pe3ZhciB0PW8oMTQxMyksdT1vKDkxKSxmPW8oNjcyOTQpLGI9byg5MjE3OSksXz1vKDg1ODkzKSxFPVsiZmllbGRQcm9wcyIsInByb0ZpZWxkUHJvcHMiXSxEPWZ1bmN0aW9uKGcscyl7dmFyIEI9Zy5maWVsZFByb3BzLEk9Zy5wcm9GaWVsZFByb3BzLHA9KDAsdS5aKShnLEUpO3JldHVybigwLF8uanN4KShiLlosKDAsdC5aKSh7cmVmOnMsdmFsdWVUeXBlOiJ0ZXh0YXJlYSIsZmllbGRQcm9wczpCLHByb0ZpZWxkUHJvcHM6SX0scCkpfTtNLlo9Zi5mb3J3YXJkUmVmKEQpfSw1OTY2OmZ1bmN0aW9uKFEsTSxvKXt2YXIgdD1vKDk3Njg1KSx1PW8oMTQxMyksZj1vKDkxKSxiPW8oMjE3NzApLF89byg5OTg1OSksRT1vKDU1MjQxKSxEPW8oOTg0MjMpLFM9byg2NzI5NCksZz1vKDkyMTc5KSxzPW8oODU4OTMpLEI9WyJmaWVsZFByb3BzIiwicHJvRmllbGRQcm9wcyJdLEk9WyJmaWVsZFByb3BzIiwicHJvRmllbGRQcm9wcyJdLHA9InRleHQiLGM9ZnVuY3Rpb24oaSl7dmFyIG49aS5maWVsZFByb3BzLFQ9aS5wcm9GaWVsZFByb3BzLEM9KDAsZi5aKShpLEIpO3JldHVybigwLHMuanN4KShnLlosKDAsdS5aKSh7dmFsdWVUeXBlOnAsZmllbGRQcm9wczpuLGZpbGVkQ29uZmlnOnt2YWx1ZVR5cGU6cH0scHJvRmllbGRQcm9wczpUfSxDKSl9LFI9ZnVuY3Rpb24oaSl7dmFyIG49KDAsYi5aKShpLm9wZW58fCExLHt2YWx1ZTppLm9wZW4sb25DaGFuZ2U6aS5vbk9wZW5DaGFuZ2V9KSxUPSgwLHQuWikobiwyKSxDPVRbMF0sTj1UWzFdO3JldHVybigwLHMuanN4KShfLlouSXRlbSx7c2hvdWxkVXBkYXRlOiEwLG5vU3R5bGU6ITAsY2hpbGRyZW46ZnVuY3Rpb24oSCl7dmFyIG0sVj1ILmdldEZpZWxkVmFsdWUoaS5uYW1lfHxbXSk7cmV0dXJuKDAscy5qc3gpKEUuWiwoMCx1LlopKCgwLHUuWikoe2dldFBvcHVwQ29udGFpbmVyOmZ1bmN0aW9uKHYpe3JldHVybiB2JiZ2LnBhcmVudE5vZGU/di5wYXJlbnROb2RlOnZ9LG9uT3BlbkNoYW5nZTpmdW5jdGlvbih2KXtyZXR1cm4gTih2KX0sY29udGVudDooMCxzLmpzeHMpKCJkaXYiLHtzdHlsZTp7cGFkZGluZzoiNHB4IDAifSxjaGlsZHJlbjpbKG09aS5zdGF0dXNSZW5kZXIpPT09bnVsbHx8bT09PXZvaWQgMD92b2lkIDA6bS5jYWxsKGksViksaS5zdHJlbmd0aFRleHQ/KDAscy5qc3gpKCJkaXYiLHtzdHlsZTp7bWFyZ2luVG9wOjEwfSxjaGlsZHJlbjooMCxzLmpzeCkoInNwYW4iLHtjaGlsZHJlbjppLnN0cmVuZ3RoVGV4dH0pfSk6bnVsbF19KSxvdmVybGF5U3R5bGU6e3dpZHRoOjI0MH0scGxhY2VtZW50OiJyaWdodFRvcCJ9LGkucG9wb3ZlclByb3BzKSx7fSx7b3BlbjpDLGNoaWxkcmVuOmkuY2hpbGRyZW59KSl9fSl9LGg9ZnVuY3Rpb24oaSl7dmFyIG49aS5maWVsZFByb3BzLFQ9aS5wcm9GaWVsZFByb3BzLEM9KDAsZi5aKShpLEkpLE49KDAsUy51c2VTdGF0ZSkoITEpLHo9KDAsdC5aKShOLDIpLEg9elswXSxtPXpbMV07cmV0dXJuIG4hPW51bGwmJm4uc3RhdHVzUmVuZGVyJiZDLm5hbWU/KDAscy5qc3gpKFIse25hbWU6Qy5uYW1lLHN0YXR1c1JlbmRlcjpuPT1udWxsP3ZvaWQgMDpuLnN0YXR1c1JlbmRlcixwb3BvdmVyUHJvcHM6bj09bnVsbD92b2lkIDA6bi5wb3BvdmVyUHJvcHMsc3RyZW5ndGhUZXh0Om49PW51bGw/dm9pZCAwOm4uc3RyZW5ndGhUZXh0LG9wZW46SCxvbk9wZW5DaGFuZ2U6bSxjaGlsZHJlbjooMCxzLmpzeCkoImRpdiIse2NoaWxkcmVuOigwLHMuanN4KShnLlosKDAsdS5aKSh7dmFsdWVUeXBlOiJwYXNzd29yZCIsZmllbGRQcm9wczooMCx1LlopKCgwLHUuWikoe30sKDAsRC5aKShuLFsic3RhdHVzUmVuZGVyIiwicG9wb3ZlclByb3BzIiwic3RyZW5ndGhUZXh0Il0pKSx7fSx7b25CbHVyOmZ1bmN0aW9uKCQpe3ZhciB2O249PW51bGx8fCh2PW4ub25CbHVyKT09PW51bGx8fHY9PT12b2lkIDB8fHYuY2FsbChuLCQpLG0oITEpfSxvbkNsaWNrOmZ1bmN0aW9uKCQpe3ZhciB2O249PW51bGx8fCh2PW4ub25DbGljayk9PT1udWxsfHx2PT09dm9pZCAwfHx2LmNhbGwobiwkKSxtKCEwKX19KSxwcm9GaWVsZFByb3BzOlQsZmlsZWRDb25maWc6e3ZhbHVlVHlwZTpwfX0sQykpfSl9KTooMCxzLmpzeCkoZy5aLCgwLHUuWikoe3ZhbHVlVHlwZToicGFzc3dvcmQiLGZpZWxkUHJvcHM6bixwcm9GaWVsZFByb3BzOlQsZmlsZWRDb25maWc6e3ZhbHVlVHlwZTpwfX0sQykpfSxPPWM7Ty5QYXNzd29yZD1oLE8uZGlzcGxheU5hbWU9IlByb0Zvcm1Db21wb25lbnQiLE0uWj1PfSw2NjMwOTpmdW5jdGlvbihRLE0sbyl7by5kKE0se1o6ZnVuY3Rpb24oKXtyZXR1cm4gaWV9fSk7dmFyIHQ9byg2NzI5NCksdT1vKDkzOTY3KSxmPW8ubih1KSxiPW8oOTg0MjMpLF89byg5ODc4NyksRT1vKDY5NzYwKSxEPW8oOTYxNTkpLFM9byg0NTM1MyksZz1vKDUzMTI0KSxzPW8oMTE1NjgpLEI9bygxNTA2MyksST1vKDE0NzQ3KSxwPW8oODMyNjIpLGM9byg4MzU1OSk7Y29uc3QgUj1lPT57Y29uc3R7cGFkZGluZ1hYUzphLGxpbmVXaWR0aDpkLHRhZ1BhZGRpbmdIb3Jpem9udGFsOnIsY29tcG9uZW50Q2xzOmwsY2FsYzp4fT1lLFA9eChyKS5zdWIoZCkuZXF1YWwoKSxBPXgoYSkuc3ViKGQpLmVxdWFsKCk7cmV0dXJue1tsXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sKDAsSS5XZikoZSkpLHtkaXNwbGF5OiJpbmxpbmUtYmxvY2siLGhlaWdodDoiYXV0byIsbWFyZ2luSW5saW5lRW5kOmUubWFyZ2luWFMscGFkZGluZ0lubGluZTpQLGZvbnRTaXplOmUudGFnRm9udFNpemUsbGluZUhlaWdodDplLnRhZ0xpbmVIZWlnaHQsd2hpdGVTcGFjZToibm93cmFwIixiYWNrZ3JvdW5kOmUuZGVmYXVsdEJnLGJvcmRlcjpgJHsoMCxzLmJmKShlLmxpbmVXaWR0aCl9ICR7ZS5saW5lVHlwZX0gJHtlLmNvbG9yQm9yZGVyfWAsYm9yZGVyUmFkaXVzOmUuYm9yZGVyUmFkaXVzU00sb3BhY2l0eToxLHRyYW5zaXRpb246YGFsbCAke2UubW90aW9uRHVyYXRpb25NaWR9YCx0ZXh0QWxpZ246InN0YXJ0Iixwb3NpdGlvbjoicmVsYXRpdmUiLFtgJiR7bH0tcnRsYF06e2RpcmVjdGlvbjoicnRsIn0sIiYsIGEsIGE6aG92ZXIiOntjb2xvcjplLmRlZmF1bHRDb2xvcn0sW2Ake2x9LWNsb3NlLWljb25gXTp7bWFyZ2luSW5saW5lU3RhcnQ6QSxmb250U2l6ZTplLnRhZ0ljb25TaXplLGNvbG9yOmUuY29sb3JUZXh0RGVzY3JpcHRpb24sY3Vyc29yOiJwb2ludGVyIix0cmFuc2l0aW9uOmBhbGwgJHtlLm1vdGlvbkR1cmF0aW9uTWlkfWAsIiY6aG92ZXIiOntjb2xvcjplLmNvbG9yVGV4dEhlYWRpbmd9fSxbYCYke2x9LWhhcy1jb2xvcmBdOntib3JkZXJDb2xvcjoidHJhbnNwYXJlbnQiLFtgJiwgYSwgYTpob3ZlciwgJHtlLmljb25DbHN9LWNsb3NlLCAke2UuaWNvbkNsc30tY2xvc2U6aG92ZXJgXTp7Y29sb3I6ZS5jb2xvclRleHRMaWdodFNvbGlkfX0sIiYtY2hlY2thYmxlIjp7YmFja2dyb3VuZENvbG9yOiJ0cmFuc3BhcmVudCIsYm9yZGVyQ29sb3I6InRyYW5zcGFyZW50IixjdXJzb3I6InBvaW50ZXIiLFtgJjpub3QoJHtsfS1jaGVja2FibGUtY2hlY2tlZCk6aG92ZXJgXTp7Y29sb3I6ZS5jb2xvclByaW1hcnksYmFja2dyb3VuZENvbG9yOmUuY29sb3JGaWxsU2Vjb25kYXJ5fSwiJjphY3RpdmUsICYtY2hlY2tlZCI6e2NvbG9yOmUuY29sb3JUZXh0TGlnaHRTb2xpZH0sIiYtY2hlY2tlZCI6e2JhY2tncm91bmRDb2xvcjplLmNvbG9yUHJpbWFyeSwiJjpob3ZlciI6e2JhY2tncm91bmRDb2xvcjplLmNvbG9yUHJpbWFyeUhvdmVyfX0sIiY6YWN0aXZlIjp7YmFja2dyb3VuZENvbG9yOmUuY29sb3JQcmltYXJ5QWN0aXZlfX0sIiYtaGlkZGVuIjp7ZGlzcGxheToibm9uZSJ9LFtgPiAke2UuaWNvbkNsc30gKyBzcGFuLCA+IHNwYW4gKyAke2UuaWNvbkNsc31gXTp7bWFyZ2luSW5saW5lU3RhcnQ6UH19KSxbYCR7bH0tYm9yZGVybGVzc2BdOntib3JkZXJDb2xvcjoidHJhbnNwYXJlbnQiLGJhY2tncm91bmQ6ZS50YWdCb3JkZXJsZXNzQmd9fX0saD1lPT57Y29uc3R7bGluZVdpZHRoOmEsZm9udFNpemVJY29uOmQsY2FsYzpyfT1lLGw9ZS5mb250U2l6ZVNNO3JldHVybigwLHAuSVgpKGUse3RhZ0ZvbnRTaXplOmwsdGFnTGluZUhlaWdodDooMCxzLmJmKShyKGUubGluZUhlaWdodFNNKS5tdWwobCkuZXF1YWwoKSksdGFnSWNvblNpemU6cihkKS5zdWIocihhKS5tdWwoMikpLmVxdWFsKCksdGFnUGFkZGluZ0hvcml6b250YWw6OCx0YWdCb3JkZXJsZXNzQmc6ZS5kZWZhdWx0Qmd9KX0sTz1lPT4oe2RlZmF1bHRCZzpuZXcgQi50KGUuY29sb3JGaWxsUXVhdGVybmFyeSkub25CYWNrZ3JvdW5kKGUuY29sb3JCZ0NvbnRhaW5lcikudG9IZXhTdHJpbmcoKSxkZWZhdWx0Q29sb3I6ZS5jb2xvclRleHR9KTt2YXIgWj0oMCxjLkkkKSgiVGFnIixlPT57Y29uc3QgYT1oKGUpO3JldHVybiBSKGEpfSxPKSxpPWZ1bmN0aW9uKGUsYSl7dmFyIGQ9e307Zm9yKHZhciByIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikmJmEuaW5kZXhPZihyKTwwJiYoZFtyXT1lW3JdKTtpZihlIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIGw9MCxyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7bDxyLmxlbmd0aDtsKyspYS5pbmRleE9mKHJbbF0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLHJbbF0pJiYoZFtyW2xdXT1lW3JbbF1dKTtyZXR1cm4gZH0sVD10LmZvcndhcmRSZWYoKGUsYSk9Pntjb25zdHtwcmVmaXhDbHM6ZCxzdHlsZTpyLGNsYXNzTmFtZTpsLGNoZWNrZWQ6eCxvbkNoYW5nZTpQLG9uQ2xpY2s6QX09ZSxqPWkoZSxbInByZWZpeENscyIsInN0eWxlIiwiY2xhc3NOYW1lIiwiY2hlY2tlZCIsIm9uQ2hhbmdlIiwib25DbGljayJdKSx7Z2V0UHJlZml4Q2xzOlgsdGFnOld9PXQudXNlQ29udGV4dChnLkVfKSxHPUo9PntQPT1udWxsfHxQKCF4KSxBPT1udWxsfHxBKEopfSxMPVgoInRhZyIsZCksW1ksdyxGXT1aKEwpLGs9ZigpKEwsYCR7TH0tY2hlY2thYmxlYCx7W2Ake0x9LWNoZWNrYWJsZS1jaGVja2VkYF06eH0sVz09bnVsbD92b2lkIDA6Vy5jbGFzc05hbWUsbCx3LEYpO3JldHVybiBZKHQuY3JlYXRlRWxlbWVudCgic3BhbiIsT2JqZWN0LmFzc2lnbih7fSxqLHtyZWY6YSxzdHlsZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sciksVz09bnVsbD92b2lkIDA6Vy5zdHlsZSksY2xhc3NOYW1lOmssb25DbGljazpHfSkpKX0pLEM9byg5ODcxOSk7Y29uc3QgTj1lPT4oMCxDLlopKGUsKGEsZCk9PntsZXR7dGV4dENvbG9yOnIsbGlnaHRCb3JkZXJDb2xvcjpsLGxpZ2h0Q29sb3I6eCxkYXJrQ29sb3I6UH09ZDtyZXR1cm57W2Ake2UuY29tcG9uZW50Q2xzfSR7ZS5jb21wb25lbnRDbHN9LSR7YX1gXTp7Y29sb3I6cixiYWNrZ3JvdW5kOngsYm9yZGVyQ29sb3I6bCwiJi1pbnZlcnNlIjp7Y29sb3I6ZS5jb2xvclRleHRMaWdodFNvbGlkLGJhY2tncm91bmQ6UCxib3JkZXJDb2xvcjpQfSxbYCYke2UuY29tcG9uZW50Q2xzfS1ib3JkZXJsZXNzYF06e2JvcmRlckNvbG9yOiJ0cmFuc3BhcmVudCJ9fX19KTt2YXIgej0oMCxjLmJrKShbIlRhZyIsInByZXNldCJdLGU9Pntjb25zdCBhPWgoZSk7cmV0dXJuIE4oYSl9LE8pO2Z1bmN0aW9uIEgoZSl7cmV0dXJuIHR5cGVvZiBlIT0ic3RyaW5nIj9lOmUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrZS5zbGljZSgxKX1jb25zdCBtPShlLGEsZCk9Pntjb25zdCByPUgoZCk7cmV0dXJue1tgJHtlLmNvbXBvbmVudENsc30ke2UuY29tcG9uZW50Q2xzfS0ke2F9YF06e2NvbG9yOmVbYGNvbG9yJHtkfWBdLGJhY2tncm91bmQ6ZVtgY29sb3Ike3J9QmdgXSxib3JkZXJDb2xvcjplW2Bjb2xvciR7cn1Cb3JkZXJgXSxbYCYke2UuY29tcG9uZW50Q2xzfS1ib3JkZXJsZXNzYF06e2JvcmRlckNvbG9yOiJ0cmFuc3BhcmVudCJ9fX19O3ZhciBWPSgwLGMuYmspKFsiVGFnIiwic3RhdHVzIl0sZT0+e2NvbnN0IGE9aChlKTtyZXR1cm5bbShhLCJzdWNjZXNzIiwiU3VjY2VzcyIpLG0oYSwicHJvY2Vzc2luZyIsIkluZm8iKSxtKGEsImVycm9yIiwiRXJyb3IiKSxtKGEsIndhcm5pbmciLCJXYXJuaW5nIildfSxPKSwkPWZ1bmN0aW9uKGUsYSl7dmFyIGQ9e307Zm9yKHZhciByIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikmJmEuaW5kZXhPZihyKTwwJiYoZFtyXT1lW3JdKTtpZihlIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIGw9MCxyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7bDxyLmxlbmd0aDtsKyspYS5pbmRleE9mKHJbbF0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLHJbbF0pJiYoZFtyW2xdXT1lW3JbbF1dKTtyZXR1cm4gZH07Y29uc3Qgb2U9dC5mb3J3YXJkUmVmKChlLGEpPT57Y29uc3R7cHJlZml4Q2xzOmQsY2xhc3NOYW1lOnIscm9vdENsYXNzTmFtZTpsLHN0eWxlOngsY2hpbGRyZW46UCxpY29uOkEsY29sb3I6aixvbkNsb3NlOlgsYm9yZGVyZWQ6Vz0hMCx2aXNpYmxlOkd9PWUsTD0kKGUsWyJwcmVmaXhDbHMiLCJjbGFzc05hbWUiLCJyb290Q2xhc3NOYW1lIiwic3R5bGUiLCJjaGlsZHJlbiIsImljb24iLCJjb2xvciIsIm9uQ2xvc2UiLCJib3JkZXJlZCIsInZpc2libGUiXSkse2dldFByZWZpeENsczpZLGRpcmVjdGlvbjp3LHRhZzpGfT10LnVzZUNvbnRleHQoZy5FXyksW2ssSl09dC51c2VTdGF0ZSghMCksZGU9KDAsYi5aKShMLFsiY2xvc2VJY29uIiwiY2xvc2FibGUiXSk7dC51c2VFZmZlY3QoKCk9PntHIT09dm9pZCAwJiZKKEcpfSxbR10pO2NvbnN0IHJlPSgwLF8ubzIpKGopLHRlPSgwLF8ueVQpKGopLHE9cmV8fHRlLGNlPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7YmFja2dyb3VuZENvbG9yOmomJiFxP2o6dm9pZCAwfSxGPT1udWxsP3ZvaWQgMDpGLnN0eWxlKSx4KSx5PVkoInRhZyIsZCksW3VlLHBlLHZlXT1aKHkpLFBlPWYoKSh5LEY9PW51bGw/dm9pZCAwOkYuY2xhc3NOYW1lLHtbYCR7eX0tJHtqfWBdOnEsW2Ake3l9LWhhcy1jb2xvcmBdOmomJiFxLFtgJHt5fS1oaWRkZW5gXTohayxbYCR7eX0tcnRsYF06dz09PSJydGwiLFtgJHt5fS1ib3JkZXJsZXNzYF06IVd9LHIsbCxwZSx2ZSksbmU9Sz0+e0suc3RvcFByb3BhZ2F0aW9uKCksWD09bnVsbHx8WChLKSwhSy5kZWZhdWx0UHJldmVudGVkJiZKKCExKX0sWyxnZV09KDAsRS5aKSgoMCxFLncpKGUpLCgwLEUudykoRikse2Nsb3NhYmxlOiExLGNsb3NlSWNvblJlbmRlcjpLPT57Y29uc3QgbWU9dC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmAke3l9LWNsb3NlLWljb25gLG9uQ2xpY2s6bmV9LEspO3JldHVybigwLEQud20pKEssbWUsVT0+KHtvbkNsaWNrOnNlPT57dmFyIGVlOyhlZT1VPT1udWxsP3ZvaWQgMDpVLm9uQ2xpY2spPT09bnVsbHx8ZWU9PT12b2lkIDB8fGVlLmNhbGwoVSxzZSksbmUoc2UpfSxjbGFzc05hbWU6ZigpKFU9PW51bGw/dm9pZCAwOlUuY2xhc3NOYW1lLGAke3l9LWNsb3NlLWljb25gKX0pKX19KSxmZT10eXBlb2YgTC5vbkNsaWNrPT0iZnVuY3Rpb24ifHxQJiZQLnR5cGU9PT0iYSIsbGU9QXx8bnVsbCxDZT1sZT90LmNyZWF0ZUVsZW1lbnQodC5GcmFnbWVudCxudWxsLGxlLFAmJnQuY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCxQKSk6UCxhZT10LmNyZWF0ZUVsZW1lbnQoInNwYW4iLE9iamVjdC5hc3NpZ24oe30sZGUse3JlZjphLGNsYXNzTmFtZTpQZSxzdHlsZTpjZX0pLENlLGdlLHJlJiZ0LmNyZWF0ZUVsZW1lbnQoeix7a2V5OiJwcmVzZXQiLHByZWZpeENsczp5fSksdGUmJnQuY3JlYXRlRWxlbWVudChWLHtrZXk6InN0YXR1cyIscHJlZml4Q2xzOnl9KSk7cmV0dXJuIHVlKGZlP3QuY3JlYXRlRWxlbWVudChTLlose2NvbXBvbmVudDoiVGFnIn0sYWUpOmFlKX0pO29lLkNoZWNrYWJsZVRhZz1UO3ZhciBpZT1vZX19XSk7CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzEyODMuNTBkYTA5MjAuYXN5bmMuanMgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzEyODMuNTBkYTA5MjAuYXN5bmMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmU3MDIxOAotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvMTI4My41MGRhMDkyMC5hc3luYy5qcwpAQCAtMCwwICsxIEBACisidXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W10pLnB1c2goW1sxMjgzXSx7MjEyODM6ZnVuY3Rpb24oWSxJLHMpe3MucihJKTt2YXIgVz1zKDk3ODU3KSxaPXMubihXKSx5PXMoNTU3NCksTD1zLm4oeSksdz1zKDE1MDA5KSxhPXMubih3KSxVPXMoOTkyODkpLGc9cy5uKFUpLGI9cyg2NzI5NCksZD1zKDc2NzcyKSxfPXMoMjQ1MyksRD1zKDgzNjIyKSxDPXMoMTc3ODgpLEs9cyg2MTEwKSwkPXMoNjUzODUpLHg9cygyMjM2KSxSPXMoMTE0NzUpLEI9cyg0ODY4OSksaz1zKDMzNTUpLFM9cygyNDk2OSksaj1zKDM4MDAyKSxIPXMoOTQxNjIpLGU9cyg4NTg5MyksRj1mdW5jdGlvbigpe3ZhciBFPWcoKShhKCkoKS5tYXJrKGZ1bmN0aW9uIGgobCl7dmFyIG0sdTtyZXR1cm4gYSgpKCkud3JhcChmdW5jdGlvbihyKXtmb3IoOzspc3dpdGNoKHIucHJldj1yLm5leHQpe2Nhc2UgMDppZihtPV8uWlAubG9hZGluZygiXHU2QjYzXHU1NzI4XHU1MjIwXHU5NjY0IiksbCl7ci5uZXh0PTM7YnJlYWt9cmV0dXJuIHIuYWJydXB0KCJyZXR1cm4iLCEwKTtjYXNlIDM6cmV0dXJuIHIucHJldj0zLHIubmV4dD02LCgwLGouancpKGwubWFwKGZ1bmN0aW9uKE0pe3JldHVybiBNLmluZm9JZH0pLmpvaW4oIiwiKSk7Y2FzZSA2OnJldHVybiB1PXIuc2VudCxtKCksdS5jb2RlPT09MjAwP18uWlAuc3VjY2VzcygiXHU1MjIwXHU5NjY0XHU2MjEwXHU1MjlGXHVGRjBDXHU1MzczXHU1QzA2XHU1MjM3XHU2NUIwIik6Xy5aUC5lcnJvcih1Lm1zZyksci5hYnJ1cHQoInJldHVybiIsITApO2Nhc2UgMTI6cmV0dXJuIHIucHJldj0xMixyLnQwPXIuY2F0Y2goMyksbSgpLF8uWlAuZXJyb3IoIlx1NTIyMFx1OTY2NFx1NTkzMVx1OEQyNVx1RkYwQ1x1OEJGN1x1OTFDRFx1OEJENSIpLHIuYWJydXB0KCJyZXR1cm4iLCExKTtjYXNlIDE3OmNhc2UiZW5kIjpyZXR1cm4gci5zdG9wKCl9fSxoLG51bGwsW1szLDEyXV0pfSkpO3JldHVybiBmdW5jdGlvbihsKXtyZXR1cm4gRS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLE49ZnVuY3Rpb24oKXt2YXIgRT1nKCkoYSgpKCkubWFyayhmdW5jdGlvbiBoKCl7dmFyIGwsbTtyZXR1cm4gYSgpKCkud3JhcChmdW5jdGlvbihuKXtmb3IoOzspc3dpdGNoKG4ucHJldj1uLm5leHQpe2Nhc2UgMDpyZXR1cm4gbD1fLlpQLmxvYWRpbmcoIlx1OEJGN1x1N0EwRFx1NTAxOSIpLG4ucHJldj0xLG4ubmV4dD00LCgwLGouS0YpKCk7Y2FzZSA0OnJldHVybiBtPW4uc2VudCxsKCksbS5jb2RlPT09MjAwP18uWlAuc3VjY2VzcygiXHU2RTA1XHU3QTdBXHU2MjEwXHU1MjlGXHVGRjBDXHU1MzczXHU1QzA2XHU1MjM3XHU2NUIwIik6Xy5aUC5lcnJvcihtLm1zZyksbi5hYnJ1cHQoInJldHVybiIsITApO2Nhc2UgMTA6cmV0dXJuIG4ucHJldj0xMCxuLnQwPW4uY2F0Y2goMSksbCgpLF8uWlAuZXJyb3IoIlx1OEJGN1x1NkM0Mlx1NTkzMVx1OEQyNVx1RkYwQ1x1OEJGN1x1OTFDRFx1OEJENSIpLG4uYWJydXB0KCJyZXR1cm4iLCExKTtjYXNlIDE1OmNhc2UiZW5kIjpyZXR1cm4gbi5zdG9wKCl9fSxoLG51bGwsW1sxLDEwXV0pfSkpO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBFLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksRz1mdW5jdGlvbigpe3ZhciBFPWcoKShhKCkoKS5tYXJrKGZ1bmN0aW9uIGgobCl7dmFyIG0sdTtyZXR1cm4gYSgpKCkud3JhcChmdW5jdGlvbihyKXtmb3IoOzspc3dpdGNoKHIucHJldj1yLm5leHQpe2Nhc2UgMDpyZXR1cm4gbT1fLlpQLmxvYWRpbmcoIlx1NkI2M1x1NTcyOFx1ODlFM1x1OTUwMSIpLHIucHJldj0xLHIubmV4dD00LCgwLGouTnkpKGwpO2Nhc2UgNDpyZXR1cm4gdT1yLnNlbnQsbSgpLHUuY29kZT09PTIwMD9fLlpQLnN1Y2Nlc3MoIlx1ODlFM1x1OTUwMVx1NjIxMFx1NTI5Rlx1RkYwQ1x1NTM3M1x1NUMwNlx1NTIzN1x1NjVCMCIpOl8uWlAuZXJyb3IodS5tc2cpLHIuYWJydXB0KCJyZXR1cm4iLCEwKTtjYXNlIDEwOnJldHVybiByLnByZXY9MTAsci50MD1yLmNhdGNoKDEpLG0oKSxfLlpQLmVycm9yKCJcdTg5RTNcdTk1MDFcdTU5MzFcdThEMjVcdUZGMENcdThCRjdcdTkxQ0RcdThCRDUiKSxyLmFicnVwdCgicmV0dXJuIiwhMSk7Y2FzZSAxNTpjYXNlImVuZCI6cmV0dXJuIHIuc3RvcCgpfX0saCxudWxsLFtbMSwxMF1dKX0pKTtyZXR1cm4gZnVuY3Rpb24obCl7cmV0dXJuIEUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSx6PWZ1bmN0aW9uKCl7dmFyIEU9ZygpKGEoKSgpLm1hcmsoZnVuY3Rpb24gaCgpe3ZhciBsO3JldHVybiBhKCkoKS53cmFwKGZ1bmN0aW9uKHUpe2Zvcig7Oylzd2l0Y2godS5wcmV2PXUubmV4dCl7Y2FzZSAwOnJldHVybiBsPV8uWlAubG9hZGluZygiXHU2QjYzXHU1NzI4XHU1QkZDXHU1MUZBIiksdS5wcmV2PTEsdS5uZXh0PTQsKDAsai5RNikoKTtjYXNlIDQ6cmV0dXJuIGwoKSxfLlpQLnN1Y2Nlc3MoIlx1NUJGQ1x1NTFGQVx1NjIxMFx1NTI5RiIpLHUuYWJydXB0KCJyZXR1cm4iLCEwKTtjYXNlIDk6cmV0dXJuIHUucHJldj05LHUudDA9dS5jYXRjaCgxKSxsKCksXy5aUC5lcnJvcigiXHU1QkZDXHU1MUZBXHU1OTMxXHU4RDI1XHVGRjBDXHU4QkY3XHU5MUNEXHU4QkQ1IiksdS5hYnJ1cHQoInJldHVybiIsITEpO2Nhc2UgMTQ6Y2FzZSJlbmQiOnJldHVybiB1LnN0b3AoKX19LGgsbnVsbCxbWzEsOV1dKX0pKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gRS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLFE9ZnVuY3Rpb24oKXt2YXIgaD0oMCxiLnVzZVJlZikoKSxsPSgwLGIudXNlUmVmKSgpLG09KDAsYi51c2VTdGF0ZSkoW10pLHU9TCgpKG0sMiksbj11WzBdLHI9dVsxXSxNPSgwLGQudXNlQWNjZXNzKSgpLEo9ezA6e2xhYmVsOiJcdTYyMTBcdTUyOUYiLGtleToiMCIsdmFsdWU6IjAiLHRleHQ6Ilx1NjIxMFx1NTI5RiIsc3RhdHVzOiJzdWNjZXNzIixsaXN0Q2xhc3M6InN1Y2Nlc3MifSwxOntsYWJlbDoiXHU1OTMxXHU4RDI1IixrZXk6IjEiLHZhbHVlOiIxIix0ZXh0OiJcdTU5MzFcdThEMjUiLHN0YXR1czoiZXJyb3IiLGxpc3RDbGFzczoiZGFuZ2VyIn19LFY9KDAsZC51c2VJbnRsKSgpOygwLGIudXNlRWZmZWN0KShmdW5jdGlvbigpe30sW10pO3ZhciBYPVt7dGl0bGU6KDAsZS5qc3gpKGQuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3IubG9naW5pbmZvci5pbmZvX2lkIixkZWZhdWx0TWVzc2FnZToiXHU4QkJGXHU5NUVFXHU3RjE2XHU1M0Y3In0pLGRhdGFJbmRleDoiaW5mb0lkIix2YWx1ZVR5cGU6InRleHQiLGhpZGVJblNlYXJjaDohMH0se3RpdGxlOigwLGUuanN4KShkLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJtb25pdG9yLmxvZ2luaW5mb3IudXNlcl9uYW1lIixkZWZhdWx0TWVzc2FnZToiXHU3NTI4XHU2MjM3XHU4RDI2XHU1M0Y3In0pLGRhdGFJbmRleDoidXNlck5hbWUiLHZhbHVlVHlwZToidGV4dCJ9LHt0aXRsZTooMCxlLmpzeCkoZC5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoibW9uaXRvci5sb2dpbmluZm9yLmlwYWRkciIsZGVmYXVsdE1lc3NhZ2U6Ilx1NzY3Qlx1NUY1NUlQXHU1NzMwXHU1NzQwIn0pLGRhdGFJbmRleDoiaXBhZGRyIix2YWx1ZVR5cGU6InRleHQifSx7dGl0bGU6KDAsZS5qc3gpKGQuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3IubG9naW5pbmZvci5sb2dpbl9sb2NhdGlvbiIsZGVmYXVsdE1lc3NhZ2U6Ilx1NzY3Qlx1NUY1NVx1NTczMFx1NzBCOSJ9KSxkYXRhSW5kZXg6ImxvZ2luTG9jYXRpb24iLHZhbHVlVHlwZToidGV4dCIsaGlkZUluU2VhcmNoOiEwfSx7dGl0bGU6KDAsZS5qc3gpKGQuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3IubG9naW5pbmZvci5icm93c2VyIixkZWZhdWx0TWVzc2FnZToiXHU2RDRGXHU4OUM4XHU1NjY4XHU3QzdCXHU1NzhCIn0pLGRhdGFJbmRleDoiYnJvd3NlciIsdmFsdWVUeXBlOiJ0ZXh0IixoaWRlSW5TZWFyY2g6ITB9LHt0aXRsZTooMCxlLmpzeCkoZC5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoibW9uaXRvci5sb2dpbmluZm9yLm9zIixkZWZhdWx0TWVzc2FnZToiXHU2NENEXHU0RjVDXHU3Q0ZCXHU3RURGIn0pLGRhdGFJbmRleDoib3MiLHZhbHVlVHlwZToidGV4dCIsaGlkZUluU2VhcmNoOiEwfSx7dGl0bGU6KDAsZS5qc3gpKGQuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3IubG9naW5pbmZvci5zdGF0dXMiLGRlZmF1bHRNZXNzYWdlOiJcdTc2N0JcdTVGNTVcdTcyQjZcdTYwMDEifSksZGF0YUluZGV4OiJzdGF0dXMiLHZhbHVlVHlwZToic2VsZWN0IixyZW5kZXI6ZnVuY3Rpb24ocCxmKXtyZXR1cm4oMCxlLmpzeCkoSC5aLHtlbnVtczpKLHZhbHVlOmYuc3RhdHVzfSl9fSx7dGl0bGU6KDAsZS5qc3gpKGQuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3IubG9naW5pbmZvci5tc2ciLGRlZmF1bHRNZXNzYWdlOiJcdTYzRDBcdTc5M0FcdTZEODhcdTYwNkYifSksZGF0YUluZGV4OiJtc2ciLHZhbHVlVHlwZToidGV4dCIsaGlkZUluU2VhcmNoOiEwfSx7dGl0bGU6KDAsZS5qc3gpKGQuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3IubG9naW5pbmZvci5sb2dpbl90aW1lIixkZWZhdWx0TWVzc2FnZToiXHU4QkJGXHU5NUVFXHU2NUY2XHU5NUY0In0pLGRhdGFJbmRleDoibG9naW5UaW1lIix2YWx1ZVR5cGU6ImRhdGVUaW1lIn1dO3JldHVybigwLGUuanN4cykoSy5feix7Y2hpbGRyZW46WygwLGUuanN4KSgiZGl2Iix7c3R5bGU6e3dpZHRoOiIxMDAlIixmbG9hdDoicmlnaHQifSxjaGlsZHJlbjooMCxlLmpzeCkoJC5aLHtoZWFkZXJUaXRsZTpWLmZvcm1hdE1lc3NhZ2Uoe2lkOiJwYWdlcy5zZWFyY2hUYWJsZS50aXRsZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NEZFMVx1NjA2RiJ9KSxhY3Rpb25SZWY6bCxmb3JtUmVmOmgscm93S2V5OiJpbmZvSWQiLHNlYXJjaDp7bGFiZWxXaWR0aDoxMjB9LHRvb2xCYXJSZW5kZXI6ZnVuY3Rpb24oKXtyZXR1cm5bKDAsZS5qc3hzKShELlpQLHtkYW5nZXI6ITAsaGlkZGVuOihuPT1udWxsP3ZvaWQgMDpuLmxlbmd0aCk9PT0wfHwhTS5oYXNQZXJtcygibW9uaXRvcjpsb2dpbmluZm9yOnJlbW92ZSIpLG9uQ2xpY2s6ZygpKGEoKSgpLm1hcmsoZnVuY3Rpb24gcCgpe3JldHVybiBhKCkoKS53cmFwKGZ1bmN0aW9uKGkpe2Zvcig7Oylzd2l0Y2goaS5wcmV2PWkubmV4dCl7Y2FzZSAwOkMuWi5jb25maXJtKHt0aXRsZToiXHU2NjJGXHU1NDI2XHU3ODZFXHU4QkE0XHU1MjIwXHU5NjY0XHU2MjQwXHU5MDA5XHU2NTcwXHU2MzZFXHU5ODc5PyIsaWNvbjooMCxlLmpzeCkoUi5aLHt9KSxjb250ZW50OiJcdThCRjdcdThDMjhcdTYxNEVcdTY0Q0RcdTRGNUMiLG9uT2s6ZnVuY3Rpb24oKXtyZXR1cm4gZygpKGEoKSgpLm1hcmsoZnVuY3Rpb24gVCgpe3ZhciB2LG8sYztyZXR1cm4gYSgpKCkud3JhcChmdW5jdGlvbih0KXtmb3IoOzspc3dpdGNoKHQucHJldj10Lm5leHQpe2Nhc2UgMDpyZXR1cm4gdC5uZXh0PTIsRihuKTtjYXNlIDI6dj10LnNlbnQsdiYmKHIoW10pLChvPWwuY3VycmVudCk9PT1udWxsfHxvPT09dm9pZCAwfHwoYz1vLnJlbG9hZEFuZFJlc3QpPT09bnVsbHx8Yz09PXZvaWQgMHx8Yy5jYWxsKG8pKTtjYXNlIDQ6Y2FzZSJlbmQiOnJldHVybiB0LnN0b3AoKX19LFQpfSkpKCl9LG9uQ2FuY2VsOmZ1bmN0aW9uKCl7fX0pO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGkuc3RvcCgpfX0scCl9KSksY2hpbGRyZW46WygwLGUuanN4KShCLlose30pLCgwLGUuanN4KShkLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJwYWdlcy5zZWFyY2hUYWJsZS5kZWxldGUiLGRlZmF1bHRNZXNzYWdlOiJcdTUyMjBcdTk2NjQifSldfSwicmVtb3ZlIiksKDAsZS5qc3hzKShELlpQLHt0eXBlOiJwcmltYXJ5IixkYW5nZXI6ITAsaGlkZGVuOihuPT1udWxsP3ZvaWQgMDpuLmxlbmd0aCk9PT0wfHwhTS5oYXNQZXJtcygibW9uaXRvcjpsb2dpbmluZm9yOnJlbW92ZSIpLG9uQ2xpY2s6ZygpKGEoKSgpLm1hcmsoZnVuY3Rpb24gcCgpe3JldHVybiBhKCkoKS53cmFwKGZ1bmN0aW9uKGkpe2Zvcig7Oylzd2l0Y2goaS5wcmV2PWkubmV4dCl7Y2FzZSAwOkMuWi5jb25maXJtKHt0aXRsZToiXHU2NjJGXHU1NDI2XHU3ODZFXHU4QkE0XHU2RTA1XHU3QTdBXHU2MjQwXHU2NzA5XHU2NTcwXHU2MzZFXHU5ODc5PyIsaWNvbjooMCxlLmpzeCkoUi5aLHt9KSxjb250ZW50OiJcdThCRjdcdThDMjhcdTYxNEVcdTY0Q0RcdTRGNUMiLG9uT2s6ZnVuY3Rpb24oKXtyZXR1cm4gZygpKGEoKSgpLm1hcmsoZnVuY3Rpb24gVCgpe3ZhciB2LG8sYztyZXR1cm4gYSgpKCkud3JhcChmdW5jdGlvbih0KXtmb3IoOzspc3dpdGNoKHQucHJldj10Lm5leHQpe2Nhc2UgMDpyZXR1cm4gdC5uZXh0PTIsTigpO2Nhc2UgMjp2PXQuc2VudCx2JiYocihbXSksKG89bC5jdXJyZW50KT09PW51bGx8fG89PT12b2lkIDB8fChjPW8ucmVsb2FkQW5kUmVzdCk9PT1udWxsfHxjPT09dm9pZCAwfHxjLmNhbGwobykpO2Nhc2UgNDpjYXNlImVuZCI6cmV0dXJuIHQuc3RvcCgpfX0sVCl9KSkoKX0sb25DYW5jZWw6ZnVuY3Rpb24oKXt9fSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gaS5zdG9wKCl9fSxwKX0pKSxjaGlsZHJlbjpbKDAsZS5qc3gpKEIuWix7fSksKDAsZS5qc3gpKGQuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InBhZ2VzLnNlYXJjaFRhYmxlLmNsZWFuQWxsIixkZWZhdWx0TWVzc2FnZToiXHU2RTA1XHU3QTdBIn0pXX0sImNsZWFuIiksKDAsZS5qc3hzKShELlpQLHt0eXBlOiJwcmltYXJ5IixoaWRkZW46KG49PW51bGw/dm9pZCAwOm4ubGVuZ3RoKT09PTB8fCFNLmhhc1Blcm1zKCJtb25pdG9yOmxvZ2luaW5mb3I6dW5sb2NrIiksb25DbGljazpnKCkoYSgpKCkubWFyayhmdW5jdGlvbiBwKCl7cmV0dXJuIGEoKSgpLndyYXAoZnVuY3Rpb24oaSl7Zm9yKDs7KXN3aXRjaChpLnByZXY9aS5uZXh0KXtjYXNlIDA6Qy5aLmNvbmZpcm0oe3RpdGxlOiJcdTY2MkZcdTU0MjZcdTc4NkVcdThCQTRcdTg5RTNcdTk1MDFcdThCRTVcdTc1MjhcdTYyMzdcdTc2ODRcdTY1NzBcdTYzNkVcdTk4Nzk/IixpY29uOigwLGUuanN4KShSLlose30pLGNvbnRlbnQ6Ilx1OEJGN1x1OEMyOFx1NjE0RVx1NjRDRFx1NEY1QyIsb25PazpmdW5jdGlvbigpe3JldHVybiBnKCkoYSgpKCkubWFyayhmdW5jdGlvbiBUKCl7dmFyIHYsbyxjO3JldHVybiBhKCkoKS53cmFwKGZ1bmN0aW9uKHQpe2Zvcig7Oylzd2l0Y2godC5wcmV2PXQubmV4dCl7Y2FzZSAwOnJldHVybiB0Lm5leHQ9MixHKG5bMF0udXNlck5hbWUpO2Nhc2UgMjp2PXQuc2VudCx2JiYocihbXSksKG89bC5jdXJyZW50KT09PW51bGx8fG89PT12b2lkIDB8fChjPW8ucmVsb2FkQW5kUmVzdCk9PT1udWxsfHxjPT09dm9pZCAwfHxjLmNhbGwobykpO2Nhc2UgNDpjYXNlImVuZCI6cmV0dXJuIHQuc3RvcCgpfX0sVCl9KSkoKX0sb25DYW5jZWw6ZnVuY3Rpb24oKXt9fSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gaS5zdG9wKCl9fSxwKX0pKSxjaGlsZHJlbjpbKDAsZS5qc3gpKGsuWix7fSksKDAsZS5qc3gpKGQuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3IubG9naW5pbmZvci51bmxvY2siLGRlZmF1bHRNZXNzYWdlOiJcdTg5RTNcdTk1MDEifSldfSwidW5sb2NrIiksKDAsZS5qc3hzKShELlpQLHt0eXBlOiJwcmltYXJ5IixoaWRkZW46IU0uaGFzUGVybXMoIm1vbml0b3I6bG9naW5pbmZvcjpleHBvcnQiKSxvbkNsaWNrOmcoKShhKCkoKS5tYXJrKGZ1bmN0aW9uIHAoKXtyZXR1cm4gYSgpKCkud3JhcChmdW5jdGlvbihpKXtmb3IoOzspc3dpdGNoKGkucHJldj1pLm5leHQpe2Nhc2UgMDp6KCk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gaS5zdG9wKCl9fSxwKX0pKSxjaGlsZHJlbjpbKDAsZS5qc3gpKFMuWix7fSksKDAsZS5qc3gpKGQuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InBhZ2VzLnNlYXJjaFRhYmxlLmV4cG9ydCIsZGVmYXVsdE1lc3NhZ2U6Ilx1NUJGQ1x1NTFGQSJ9KV19LCJleHBvcnQiKV19LHJlcXVlc3Q6ZnVuY3Rpb24ocCl7cmV0dXJuKDAsai5VMCkoWigpKHt9LHApKS50aGVuKGZ1bmN0aW9uKGYpe3ZhciBpPXtkYXRhOmYucm93cyx0b3RhbDpmLnRvdGFsLHN1Y2Nlc3M6ITB9O3JldHVybiBpfSl9LGNvbHVtbnM6WCxyb3dTZWxlY3Rpb246e29uQ2hhbmdlOmZ1bmN0aW9uKHAsZil7cihmKX19fSwibG9naW5pbmZvckxpc3QiKX0pLChuPT1udWxsP3ZvaWQgMDpuLmxlbmd0aCk+MCYmKDAsZS5qc3gpKHguUyx7ZXh0cmE6KDAsZS5qc3hzKSgiZGl2Iix7Y2hpbGRyZW46WygwLGUuanN4KShkLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJwYWdlcy5zZWFyY2hUYWJsZS5jaG9zZW4iLGRlZmF1bHRNZXNzYWdlOiJcdTVERjJcdTkwMDlcdTYyRTkifSksKDAsZS5qc3gpKCJhIix7c3R5bGU6e2ZvbnRXZWlnaHQ6NjAwfSxjaGlsZHJlbjpuLmxlbmd0aH0pLCgwLGUuanN4KShkLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJwYWdlcy5zZWFyY2hUYWJsZS5pdGVtIixkZWZhdWx0TWVzc2FnZToiXHU5ODc5In0pXX0pLGNoaWxkcmVuOigwLGUuanN4KShELlpQLHtkYW5nZXI6ITAsaGlkZGVuOiFNLmhhc1Blcm1zKCJtb25pdG9yOmxvZ2luaW5mb3I6cmVtb3ZlIiksb25DbGljazpnKCkoYSgpKCkubWFyayhmdW5jdGlvbiBPKCl7cmV0dXJuIGEoKSgpLndyYXAoZnVuY3Rpb24oZil7Zm9yKDs7KXN3aXRjaChmLnByZXY9Zi5uZXh0KXtjYXNlIDA6Qy5aLmNvbmZpcm0oe3RpdGxlOiJcdTUyMjBcdTk2NjQiLGNvbnRlbnQ6Ilx1Nzg2RVx1NUI5QVx1NTIyMFx1OTY2NFx1OEJFNVx1OTg3OVx1NTQxN1x1RkYxRiIsb2tUZXh0OiJcdTc4NkVcdThCQTQiLGNhbmNlbFRleHQ6Ilx1NTNENlx1NkQ4OCIsb25PazpmdW5jdGlvbigpe3ZhciBpPWcoKShhKCkoKS5tYXJrKGZ1bmN0aW9uIFQoKXt2YXIgdixvLGM7cmV0dXJuIGEoKSgpLndyYXAoZnVuY3Rpb24odCl7Zm9yKDs7KXN3aXRjaCh0LnByZXY9dC5uZXh0KXtjYXNlIDA6cmV0dXJuIHQubmV4dD0yLEYobik7Y2FzZSAyOnY9dC5zZW50LHYmJihyKFtdKSwobz1sLmN1cnJlbnQpPT09bnVsbHx8bz09PXZvaWQgMHx8KGM9by5yZWxvYWRBbmRSZXN0KT09PW51bGx8fGM9PT12b2lkIDB8fGMuY2FsbChvKSk7Y2FzZSA0OmNhc2UiZW5kIjpyZXR1cm4gdC5zdG9wKCl9fSxUKX0pKTtmdW5jdGlvbiBQKCl7cmV0dXJuIGkuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBQfSgpfSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gZi5zdG9wKCl9fSxPKX0pKSxjaGlsZHJlbjooMCxlLmpzeCkoZC5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoicGFnZXMuc2VhcmNoVGFibGUuYmF0Y2hEZWxldGlvbiIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjI3OVx1OTFDRlx1NTIyMFx1OTY2NCJ9KX0sInJlbW92ZSIpfSldfSl9O0kuZGVmYXVsdD1RfX1dKTsKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvMTMwNi4zZGYyYzAyNC5hc3luYy5qcyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvMTMwNi4zZGYyYzAyNC5hc3luYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YjI5MjZhCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy8xMzA2LjNkZjJjMDI0LmFzeW5jLmpzCkBAIC0wLDAgKzEgQEAKKyJ1c2Ugc3RyaWN0Ijsoc2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Bybz1zZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvfHxbXSkucHVzaChbWzEzMDYsNjQ5Ml0sezk0MTYyOmZ1bmN0aW9uKHEseSxlKXt2YXIgSz1lKDY0NTk5KSx0PWUubihLKSxMPWUoNjcyOTQpLG49ZSg2NjMwOSksZj1lKDg1ODkzKSxGPWZ1bmN0aW9uKHUpe2Z1bmN0aW9uIEEobyl7c3dpdGNoKG8pe2Nhc2UicHJpbWFyeSI6cmV0dXJuImJsdWUiO2Nhc2Uic3VjY2VzcyI6cmV0dXJuInN1Y2Nlc3MiO2Nhc2UiaW5mbyI6cmV0dXJuImdyZWVuIjtjYXNlIndhcm5pbmciOnJldHVybiJ3YXJuaW5nIjtjYXNlImRhbmdlciI6cmV0dXJuImVycm9yIjtjYXNlImRlZmF1bHQiOmRlZmF1bHQ6cmV0dXJuImRlZmF1bHQifX1mdW5jdGlvbiBwKG8pe2lmKG89PT12b2lkIDApcmV0dXJuIiI7aWYodS5lbnVtcyl7dmFyIGo9dS5lbnVtc1tvXTtyZXR1cm4gai5sYWJlbH1pZih1Lm9wdGlvbnMpe2lmKCFBcnJheS5pc0FycmF5KHUub3B0aW9ucykpcmV0dXJuIGNvbnNvbGUubG9nKCJEaWN0VGFnIG9wdGlvbnMgaXMgbm8gYXJyYXkhIiksIiI7dmFyIG09dCgpKHUub3B0aW9ucyksUDt0cnl7Zm9yKG0ucygpOyEoUD1tLm4oKSkuZG9uZTspe3ZhciBsPVAudmFsdWU7aWYobC52YWx1ZT09PW8pcmV0dXJuIGwudGV4dH19Y2F0Y2goXyl7bS5lKF8pfWZpbmFsbHl7bS5mKCl9fXJldHVybiBTdHJpbmcodS52YWx1ZSl9ZnVuY3Rpb24gUihvKXtpZihvPT09dm9pZCAwKXJldHVybiJkZWZhdWx0IjtpZih1LmVudW1zKXt2YXIgaj11LmVudW1zW29dO3JldHVybiBqLmxpc3RDbGFzc3x8ImRlZmF1bHQifWlmKHUub3B0aW9ucyl7aWYoIUFycmF5LmlzQXJyYXkodS5vcHRpb25zKSlyZXR1cm4gY29uc29sZS5sb2coIkRpY3RUYWcgb3B0aW9ucyBpcyBubyBhcnJheSEiKSwiZGVmYXVsdCI7dmFyIG09dCgpKHUub3B0aW9ucyksUDt0cnl7Zm9yKG0ucygpOyEoUD1tLm4oKSkuZG9uZTspe3ZhciBsPVAudmFsdWU7aWYobC52YWx1ZT09PW8pcmV0dXJuIGwubGlzdENsYXNzfHwiZGVmYXVsdCJ9fWNhdGNoKF8pe20uZShfKX1maW5hbGx5e20uZigpfX1yZXR1cm4gU3RyaW5nKHUudmFsdWUpfXZhciBUPWZ1bmN0aW9uKCl7cmV0dXJuIEEoUih1LnZhbHVlKS50b0xvd2VyQ2FzZSgpKX0sZD1mdW5jdGlvbigpe3JldHVybiBwKHUudmFsdWUpfTtyZXR1cm4oMCxmLmpzeCkobi5aLHtjb2xvcjpUKCksY2hpbGRyZW46ZCgpfSl9O3kuWj1GfSwzMzg2NzpmdW5jdGlvbihxLHksZSl7ZS5kKHkse2lLOmZ1bmN0aW9uKCl7cmV0dXJuIEt9LHpjOmZ1bmN0aW9uKCl7cmV0dXJuIEx9fSk7dmFyIEs9ZnVuY3Rpb24obil7cmV0dXJuIG5bbi5TVUNDRVNTPTIwMF09IlNVQ0NFU1MiLG5bbi5FUlJPUj0tMV09IkVSUk9SIixuW24uVElNRU9VVD00MDFdPSJUSU1FT1VUIixuLlRZUEU9InN1Y2Nlc3MiLG59KHt9KSx0PWZ1bmN0aW9uKG4pe3JldHVybiBuLkdFVD0iR0VUIixuLlBPU1Q9IlBPU1QiLG4uUFVUPSJQVVQiLG4uREVMRVRFPSJERUxFVEUiLG59KHt9KSxMPWZ1bmN0aW9uKG4pe3JldHVybiBuLkpTT049ImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCIsbi5GT1JNX1VSTEVOQ09ERUQ9ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PVVURi04IixuLkZPUk1fREFUQT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YTtjaGFyc2V0PVVURi04IixufSh7fSl9LDQ2NDkyOmZ1bmN0aW9uKHEseSxlKXtlLnIoeSk7dmFyIEs9ZSg2NzI5NCksdD1lKDE3Nzg4KSxMPWUoODM2MjIpLG49ZSgyNjQxMiksZj1lKDc2NzcyKSxGPWUoNjEzMTQpLGE9ZSg4NTg5MyksdT1mdW5jdGlvbihwKXt2YXIgUixUPXAudmFsdWVzLGQ9cC5zdGF0dXNPcHRpb25zOygwLEsudXNlRWZmZWN0KShmdW5jdGlvbigpe30sW3BdKTt2YXIgbz0oMCxmLnVzZUludGwpKCksaj17MDoiXHU5RUQ4XHU4QkE0XHU3QjU2XHU3NTY1IiwxOiJcdTdBQ0JcdTUzNzNcdTYyNjdcdTg4NEMiLDI6Ilx1NjI2N1x1ODg0Q1x1NEUwMFx1NkIyMSIsMzoiXHU2NTNFXHU1RjAzXHU2MjY3XHU4ODRDIn0sbT1mdW5jdGlvbigpe3Aub25DYW5jZWwoKX07cmV0dXJuKDAsYS5qc3gpKHQuWix7d2lkdGg6ODAwLHRpdGxlOm8uZm9ybWF0TWVzc2FnZSh7aWQ6Im1vbml0b3Iuam9iLmRldGFpbCIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjRDRFx1NEY1Q1x1NjVFNVx1NUZEN1x1OEJFNlx1N0VDNlx1NEZFMVx1NjA2RiJ9KSxvcGVuOnAub3BlbixkZXN0cm95T25DbG9zZTohMCxvbkNhbmNlbDptLGZvb3RlcjpbKDAsYS5qc3gpKEwuWlAse29uQ2xpY2s6bSxjaGlsZHJlbjoiXHU1MTczXHU5NUVEIn0sImJhY2siKV0sY2hpbGRyZW46KDAsYS5qc3hzKShuLlose2NvbHVtbjoyNCxjaGlsZHJlbjpbKDAsYS5qc3gpKG4uWi5JdGVtLHtzcGFuOjEyLGxhYmVsOigwLGEuanN4KShmLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJtb25pdG9yLmpvYi5qb2JfaWQiLGRlZmF1bHRNZXNzYWdlOiJcdTRFRkJcdTUyQTFcdTdGMTZcdTUzRjcifSksY2hpbGRyZW46VC5qb2JJZH0pLCgwLGEuanN4KShuLlouSXRlbSx7c3BhbjoxMixsYWJlbDooMCxhLmpzeCkoZi5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoibW9uaXRvci5qb2Iuam9iX25hbWUiLGRlZmF1bHRNZXNzYWdlOiJcdTRFRkJcdTUyQTFcdTU0MERcdTc5RjAifSksY2hpbGRyZW46VC5qb2JOYW1lfSksKDAsYS5qc3gpKG4uWi5JdGVtLHtzcGFuOjEyLGxhYmVsOigwLGEuanN4KShmLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJtb25pdG9yLmpvYi5qb2JfZ3JvdXAiLGRlZmF1bHRNZXNzYWdlOiJcdTRFRkJcdTUyQTFcdTdFQzRcdTU0MEQifSksY2hpbGRyZW46VC5qb2JHcm91cH0pLCgwLGEuanN4KShuLlouSXRlbSx7c3BhbjoxMixsYWJlbDooMCxhLmpzeCkoZi5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoibW9uaXRvci5qb2IuY29uY3VycmVudCIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjYyRlx1NTQyNlx1NUU3Nlx1NTNEMVx1NjI2N1x1ODg0QyJ9KSxjaGlsZHJlbjpULmNvbmN1cnJlbnQ9PT0iMSI/Ilx1Nzk4MVx1NkI2MiI6Ilx1NTE0MVx1OEJCOCJ9KSwoMCxhLmpzeCkobi5aLkl0ZW0se3NwYW46MTIsbGFiZWw6KDAsYS5qc3gpKGYuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3Iuam9iLm1pc2ZpcmVfcG9saWN5IixkZWZhdWx0TWVzc2FnZToiXHU4QkExXHU1MjEyXHU2MjY3XHU4ODRDXHU5NTE5XHU4QkVGXHU3QjU2XHU3NTY1In0pLGNoaWxkcmVuOmpbVC5taXNmaXJlUG9saWN5P1QubWlzZmlyZVBvbGljeToiMCJdfSksKDAsYS5qc3gpKG4uWi5JdGVtLHtzcGFuOjEyLGxhYmVsOigwLGEuanN4KShmLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJtb25pdG9yLmpvYi5jcmVhdGVfdGltZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NTIxQlx1NUVGQVx1NjVGNlx1OTVGNCJ9KSxjaGlsZHJlbjooUj1ULmNyZWF0ZVRpbWUpPT09bnVsbHx8Uj09PXZvaWQgMD92b2lkIDA6Ui50b1N0cmluZygpfSksKDAsYS5qc3gpKG4uWi5JdGVtLHtzcGFuOjEyLGxhYmVsOigwLGEuanN4KShmLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJtb25pdG9yLmpvYi5zdGF0dXMiLGRlZmF1bHRNZXNzYWdlOiJcdTcyQjZcdTYwMDEifSksY2hpbGRyZW46KDAsRi5uKShkLFQuc3RhdHVzLCJcdTY3MkFcdTc3RTUiKX0pLCgwLGEuanN4KShuLlouSXRlbSx7c3BhbjoxMixsYWJlbDooMCxhLmpzeCkoZi5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoibW9uaXRvci5qb2IubmV4dF92YWxpZF90aW1lIixkZWZhdWx0TWVzc2FnZToiXHU0RTBCXHU2QjIxXHU2MjY3XHU4ODRDXHU2NUY2XHU5NUY0In0pLGNoaWxkcmVuOlQubmV4dFZhbGlkVGltZX0pLCgwLGEuanN4KShuLlouSXRlbSx7c3BhbjoyNCxsYWJlbDooMCxhLmpzeCkoZi5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoibW9uaXRvci5qb2IuY3Jvbl9leHByZXNzaW9uIixkZWZhdWx0TWVzc2FnZToiY3Jvblx1NjI2N1x1ODg0Q1x1ODg2OFx1OEZCRVx1NUYwRiJ9KSxjaGlsZHJlbjpULmNyb25FeHByZXNzaW9ufSksKDAsYS5qc3gpKG4uWi5JdGVtLHtzcGFuOjI0LGxhYmVsOigwLGEuanN4KShmLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJtb25pdG9yLmpvYi5pbnZva2VfdGFyZ2V0IixkZWZhdWx0TWVzc2FnZToiXHU4QzAzXHU3NTI4XHU3NkVFXHU2ODA3XHU1QjU3XHU3QjI2XHU0RTMyIn0pLGNoaWxkcmVuOlQuaW52b2tlVGFyZ2V0fSldfSl9KX07eS5kZWZhdWx0PXV9LDE4Mjk5OmZ1bmN0aW9uKHEseSxlKXtlLnIoeSk7dmFyIEs9ZSgxNTAwOSksdD1lLm4oSyksTD1lKDk5Mjg5KSxuPWUubihMKSxmPWUoNTU3NCksRj1lLm4oZiksYT1lKDY3Mjk0KSx1PWUoOTcyNjkpLEE9ZSgzMTE5OSkscD1lKDU5NjYpLFI9ZSg2NDMxNyksVD1lKDkwNjcyKSxkPWUoMTY0MzQpLG89ZSg4NjYxNSksaj1lKDk5ODU5KSxtPWUoMTc3ODgpLFA9ZSg3Njc3MiksbD1lKDg1ODkzKSxfPWZ1bmN0aW9uKHMpe3ZhciBjPWouWi51c2VGb3JtKCksYWU9RigpKGMsMSksQz1hZVswXSxlZT1zLmpvYkdyb3VwT3B0aW9ucyxFPXMuc3RhdHVzT3B0aW9uczsoMCxhLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtDLnJlc2V0RmllbGRzKCksQy5zZXRGaWVsZHNWYWx1ZSh7am9iSWQ6cy52YWx1ZXMuam9iSWQsam9iTmFtZTpzLnZhbHVlcy5qb2JOYW1lLGpvYkdyb3VwOnMudmFsdWVzLmpvYkdyb3VwLGludm9rZVRhcmdldDpzLnZhbHVlcy5pbnZva2VUYXJnZXQsY3JvbkV4cHJlc3Npb246cy52YWx1ZXMuY3JvbkV4cHJlc3Npb24sbWlzZmlyZVBvbGljeTpzLnZhbHVlcy5taXNmaXJlUG9saWN5LGNvbmN1cnJlbnQ6cy52YWx1ZXMuY29uY3VycmVudCxzdGF0dXM6cy52YWx1ZXMuc3RhdHVzLGNyZWF0ZUJ5OnMudmFsdWVzLmNyZWF0ZUJ5LGNyZWF0ZVRpbWU6cy52YWx1ZXMuY3JlYXRlVGltZSx1cGRhdGVCeTpzLnZhbHVlcy51cGRhdGVCeSx1cGRhdGVUaW1lOnMudmFsdWVzLnVwZGF0ZVRpbWUscmVtYXJrOnMudmFsdWVzLnJlbWFya30pfSxbQyxzXSk7dmFyIGc9KDAsUC51c2VJbnRsKSgpLHc9ZnVuY3Rpb24oKXtDLnN1Ym1pdCgpfSxyPWZ1bmN0aW9uKCl7cy5vbkNhbmNlbCgpLEMucmVzZXRGaWVsZHMoKX0sVj1mdW5jdGlvbigpe3ZhciB6PW4oKSh0KCkoKS5tYXJrKGZ1bmN0aW9uIE0oTyl7cmV0dXJuIHQoKSgpLndyYXAoZnVuY3Rpb24oc2Upe2Zvcig7Oylzd2l0Y2goc2UucHJldj1zZS5uZXh0KXtjYXNlIDA6cy5vblN1Ym1pdChPKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBzZS5zdG9wKCl9fSxNKX0pKTtyZXR1cm4gZnVuY3Rpb24oTyl7cmV0dXJuIHouYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKTtyZXR1cm4oMCxsLmpzeCkobS5aLHt3aWR0aDo2NDAsdGl0bGU6Zy5mb3JtYXRNZXNzYWdlKHtpZDoibW9uaXRvci5qb2IudGl0bGUiLGRlZmF1bHRNZXNzYWdlOiJcdTdGMTZcdThGOTFcdTVCOUFcdTY1RjZcdTRFRkJcdTUyQTFcdThDMDNcdTVFQTYifSksb3BlbjpzLm9wZW4sZm9yY2VSZW5kZXI6ITAsZGVzdHJveU9uQ2xvc2U6ITAsb25Pazp3LG9uQ2FuY2VsOnIsY2hpbGRyZW46KDAsbC5qc3hzKSh1LkEse2Zvcm06QyxncmlkOiEwLHN1Ym1pdHRlcjohMSxsYXlvdXQ6Imhvcml6b250YWwiLG9uRmluaXNoOlYsY2hpbGRyZW46WygwLGwuanN4KShBLlose25hbWU6ImpvYklkIixsYWJlbDpnLmZvcm1hdE1lc3NhZ2Uoe2lkOiJtb25pdG9yLmpvYi5qb2JfaWQiLGRlZmF1bHRNZXNzYWdlOiJcdTRFRkJcdTUyQTFcdTdGMTZcdTUzRjcifSksY29sUHJvcHM6e21kOjI0fSxwbGFjZWhvbGRlcjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU0RUZCXHU1MkExXHU3RjE2XHU1M0Y3IixkaXNhYmxlZDohMCxoaWRkZW46ITAscnVsZXM6W3tyZXF1aXJlZDohMSxtZXNzYWdlOigwLGwuanN4KShQLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTRFRkJcdTUyQTFcdTdGMTZcdTUzRjdcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTRFRkJcdTUyQTFcdTdGMTZcdTUzRjdcdUZGMDEifSl9XX0pLCgwLGwuanN4KShwLlose25hbWU6ImpvYk5hbWUiLGxhYmVsOmcuZm9ybWF0TWVzc2FnZSh7aWQ6Im1vbml0b3Iuam9iLmpvYl9uYW1lIixkZWZhdWx0TWVzc2FnZToiXHU0RUZCXHU1MkExXHU1NDBEXHU3OUYwIn0pLGNvbFByb3BzOnttZDoyNH0scGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NEVGQlx1NTJBMVx1NTQwRFx1NzlGMCIscnVsZXM6W3tyZXF1aXJlZDohMSxtZXNzYWdlOigwLGwuanN4KShQLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTRFRkJcdTUyQTFcdTU0MERcdTc5RjBcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTRFRkJcdTUyQTFcdTU0MERcdTc5RjBcdUZGMDEifSl9XX0pLCgwLGwuanN4KShSLlose25hbWU6ImpvYkdyb3VwIixvcHRpb25zOmVlLGxhYmVsOmcuZm9ybWF0TWVzc2FnZSh7aWQ6Im1vbml0b3Iuam9iLmpvYl9ncm91cCIsZGVmYXVsdE1lc3NhZ2U6Ilx1NEVGQlx1NTJBMVx1N0VDNFx1NTQwRCJ9KSxjb2xQcm9wczp7bWQ6MjR9LHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdTRFRkJcdTUyQTFcdTdFQzRcdTU0MEQiLHJ1bGVzOlt7cmVxdWlyZWQ6ITEsbWVzc2FnZTooMCxsLmpzeCkoUC5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU0RUZCXHU1MkExXHU3RUM0XHU1NDBEXHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU0RUZCXHU1MkExXHU3RUM0XHU1NDBEXHVGRjAxIn0pfV19KSwoMCxsLmpzeCkoVC5aLHtuYW1lOiJpbnZva2VUYXJnZXQiLGxhYmVsOmcuZm9ybWF0TWVzc2FnZSh7aWQ6Im1vbml0b3Iuam9iLmludm9rZV90YXJnZXQiLGRlZmF1bHRNZXNzYWdlOiJcdThDMDNcdTc1MjhcdTc2RUVcdTY4MDdcdTVCNTdcdTdCMjZcdTRFMzIifSksY29sUHJvcHM6e21kOjI0fSxwbGFjZWhvbGRlcjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU4QzAzXHU3NTI4XHU3NkVFXHU2ODA3XHU1QjU3XHU3QjI2XHU0RTMyIixydWxlczpbe3JlcXVpcmVkOiEwLG1lc3NhZ2U6KDAsbC5qc3gpKFAuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1OEMwM1x1NzUyOFx1NzZFRVx1NjgwN1x1NUI1N1x1N0IyNlx1NEUzMlx1RkYwMSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1OEMwM1x1NzUyOFx1NzZFRVx1NjgwN1x1NUI1N1x1N0IyNlx1NEUzMlx1RkYwMSJ9KX1dfSksKDAsbC5qc3gpKGQuWix7bmFtZToiY3JvbkV4cHJlc3Npb24iLGxhYmVsOmcuZm9ybWF0TWVzc2FnZSh7aWQ6Im1vbml0b3Iuam9iLmNyb25fZXhwcmVzc2lvbiIsZGVmYXVsdE1lc3NhZ2U6ImNyb25cdTYyNjdcdTg4NENcdTg4NjhcdThGQkVcdTVGMEYifSksY2FwdGNoYVRleHRSZW5kZXI6ZnVuY3Rpb24oKXtyZXR1cm4iXHU3NTFGXHU2MjEwXHU4ODY4XHU4RkJFXHU1RjBGIn0sb25HZXRDYXB0Y2hhOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKE0sTyl7TygpfSl9fSksKDAsbC5qc3gpKG8uWi5Hcm91cCx7bmFtZToibWlzZmlyZVBvbGljeSIsbGFiZWw6Zy5mb3JtYXRNZXNzYWdlKHtpZDoibW9uaXRvci5qb2IubWlzZmlyZV9wb2xpY3kiLGRlZmF1bHRNZXNzYWdlOiJcdThCQTFcdTUyMTJcdTYyNjdcdTg4NENcdTk1MTlcdThCRUZcdTdCNTZcdTc1NjUifSksY29sUHJvcHM6e21kOjI0fSxwbGFjZWhvbGRlcjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU4QkExXHU1MjEyXHU2MjY3XHU4ODRDXHU5NTE5XHU4QkVGXHU3QjU2XHU3NTY1Iix2YWx1ZUVudW06ezA6Ilx1N0FDQlx1NTM3M1x1NjI2N1x1ODg0QyIsMToiXHU2MjY3XHU4ODRDXHU0RTAwXHU2QjIxIiwzOiJcdTY1M0VcdTVGMDNcdTYyNjdcdTg4NEMifSxydWxlczpbe3JlcXVpcmVkOiExLG1lc3NhZ2U6KDAsbC5qc3gpKFAuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1OEJBMVx1NTIxMlx1NjI2N1x1ODg0Q1x1OTUxOVx1OEJFRlx1N0I1Nlx1NzU2NVx1RkYwMSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1OEJBMVx1NTIxMlx1NjI2N1x1ODg0Q1x1OTUxOVx1OEJFRlx1N0I1Nlx1NzU2NVx1RkYwMSJ9KX1dLGZpZWxkUHJvcHM6e29wdGlvblR5cGU6ImJ1dHRvbiIsYnV0dG9uU3R5bGU6InNvbGlkIn19KSwoMCxsLmpzeCkoby5aLkdyb3VwLHtuYW1lOiJjb25jdXJyZW50IixsYWJlbDpnLmZvcm1hdE1lc3NhZ2Uoe2lkOiJtb25pdG9yLmpvYi5jb25jdXJyZW50IixkZWZhdWx0TWVzc2FnZToiXHU2NjJGXHU1NDI2XHU1RTc2XHU1M0QxXHU2MjY3XHU4ODRDIn0pLGNvbFByb3BzOnttZDoyNH0scGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NjYyRlx1NTQyNlx1NUU3Nlx1NTNEMVx1NjI2N1x1ODg0QyIsdmFsdWVFbnVtOnswOiJcdTUxNDFcdThCQjgiLDE6Ilx1Nzk4MVx1NkI2MiJ9LHJ1bGVzOlt7cmVxdWlyZWQ6ITEsbWVzc2FnZTooMCxsLmpzeCkoUC5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU2NjJGXHU1NDI2XHU1RTc2XHU1M0QxXHU2MjY3XHU4ODRDXHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU2NjJGXHU1NDI2XHU1RTc2XHU1M0QxXHU2MjY3XHU4ODRDXHVGRjAxIn0pfV0sZmllbGRQcm9wczp7b3B0aW9uVHlwZToiYnV0dG9uIixidXR0b25TdHlsZToic29saWQifX0pLCgwLGwuanN4KShvLlouR3JvdXAse3ZhbHVlRW51bTpFLG5hbWU6InN0YXR1cyIsbGFiZWw6Zy5mb3JtYXRNZXNzYWdlKHtpZDoibW9uaXRvci5qb2Iuc3RhdHVzIixkZWZhdWx0TWVzc2FnZToiXHU3MkI2XHU2MDAxIn0pLGNvbFByb3BzOnttZDoyNH0scGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NzJCNlx1NjAwMSIscnVsZXM6W3tyZXF1aXJlZDohMSxtZXNzYWdlOigwLGwuanN4KShQLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTcyQjZcdTYwMDFcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTcyQjZcdTYwMDFcdUZGMDEifSl9XX0pXX0pfSl9O3kuZGVmYXVsdD1ffSw2MTMwNjpmdW5jdGlvbihxLHksZSl7ZS5yKHkpO3ZhciBLPWUoNTU3NCksdD1lLm4oSyksTD1lKDE1MDA5KSxuPWUubihMKSxmPWUoOTc4NTcpLEY9ZS5uKGYpLGE9ZSg5OTI4OSksdT1lLm4oYSksQT1lKDY3Mjk0KSxwPWUoNzY3NzIpLFI9ZSg4NTQxOCksVD1lKDc4OTU3KSxkPWUoMjQ1Myksbz1lKDgzNjIyKSxqPWUoMTc3ODgpLG09ZSg2MTEwKSxQPWUoNjUzODUpLGw9ZSgyMjM2KSxfPWUoODY1NDgpLEQ9ZSg0ODY4OSkscz1lKDgwODgyKSxjPWUoMjQ5NjkpLGFlPWUoMTE0NzUpLEM9ZSg5MTY0NiksZWU9ZSg5Mjk4MiksRT1lKDE4Mjk5KSxnPWUoNDY0OTIpLHc9ZSg5NDE2Mikscj1lKDg1ODkzKSxWPWZ1bmN0aW9uKCl7dmFyIE49dSgpKG4oKSgpLm1hcmsoZnVuY3Rpb24gWihJKXt2YXIgVyxoO3JldHVybiBuKCkoKS53cmFwKGZ1bmN0aW9uKGkpe2Zvcig7Oylzd2l0Y2goaS5wcmV2PWkubmV4dCl7Y2FzZSAwOnJldHVybiBXPWQuWlAubG9hZGluZygiXHU2QjYzXHU1NzI4XHU2REZCXHU1MkEwIiksaS5wcmV2PTEsaS5uZXh0PTQsKDAsQy5ZJCkoRigpKHt9LEkpKTtjYXNlIDQ6cmV0dXJuIGg9aS5zZW50LFcoKSxoLmNvZGU9PT0yMDA/ZC5aUC5zdWNjZXNzKCJcdTZERkJcdTUyQTBcdTYyMTBcdTUyOUYiKTpkLlpQLmVycm9yKGgubXNnKSxpLmFicnVwdCgicmV0dXJuIiwhMCk7Y2FzZSAxMDpyZXR1cm4gaS5wcmV2PTEwLGkudDA9aS5jYXRjaCgxKSxXKCksZC5aUC5lcnJvcigiXHU2REZCXHU1MkEwXHU1OTMxXHU4RDI1XHU4QkY3XHU5MUNEXHU4QkQ1XHVGRjAxIiksaS5hYnJ1cHQoInJldHVybiIsITEpO2Nhc2UgMTU6Y2FzZSJlbmQiOnJldHVybiBpLnN0b3AoKX19LFosbnVsbCxbWzEsMTBdXSl9KSk7cmV0dXJuIGZ1bmN0aW9uKEkpe3JldHVybiBOLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksej1mdW5jdGlvbigpe3ZhciBOPXUoKShuKCkoKS5tYXJrKGZ1bmN0aW9uIFooSSl7dmFyIFcsaDtyZXR1cm4gbigpKCkud3JhcChmdW5jdGlvbihpKXtmb3IoOzspc3dpdGNoKGkucHJldj1pLm5leHQpe2Nhc2UgMDpyZXR1cm4gVz1kLlpQLmxvYWRpbmcoIlx1NkI2M1x1NTcyOFx1NjZGNFx1NjVCMCIpLGkucHJldj0xLGkubmV4dD00LCgwLEMuZ0spKEkpO2Nhc2UgNDpyZXR1cm4gaD1pLnNlbnQsVygpLGguY29kZT09PTIwMD9kLlpQLnN1Y2Nlc3MoIlx1NjZGNFx1NjVCMFx1NjIxMFx1NTI5RiIpOmQuWlAuZXJyb3IoaC5tc2cpLGkuYWJydXB0KCJyZXR1cm4iLCEwKTtjYXNlIDEwOnJldHVybiBpLnByZXY9MTAsaS50MD1pLmNhdGNoKDEpLFcoKSxkLlpQLmVycm9yKCJcdTkxNERcdTdGNkVcdTU5MzFcdThEMjVcdThCRjdcdTkxQ0RcdThCRDVcdUZGMDEiKSxpLmFicnVwdCgicmV0dXJuIiwhMSk7Y2FzZSAxNTpjYXNlImVuZCI6cmV0dXJuIGkuc3RvcCgpfX0sWixudWxsLFtbMSwxMF1dKX0pKTtyZXR1cm4gZnVuY3Rpb24oSSl7cmV0dXJuIE4uYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSxNPWZ1bmN0aW9uKCl7dmFyIE49dSgpKG4oKSgpLm1hcmsoZnVuY3Rpb24gWihJKXt2YXIgVyxoO3JldHVybiBuKCkoKS53cmFwKGZ1bmN0aW9uKGkpe2Zvcig7Oylzd2l0Y2goaS5wcmV2PWkubmV4dCl7Y2FzZSAwOmlmKFc9ZC5aUC5sb2FkaW5nKCJcdTZCNjNcdTU3MjhcdTUyMjBcdTk2NjQiKSxJKXtpLm5leHQ9MzticmVha31yZXR1cm4gaS5hYnJ1cHQoInJldHVybiIsITApO2Nhc2UgMzpyZXR1cm4gaS5wcmV2PTMsaS5uZXh0PTYsKDAsQy5lWCkoSS5tYXAoZnVuY3Rpb24oVSl7cmV0dXJuIFUuam9iSWR9KS5qb2luKCIsIikpO2Nhc2UgNjpyZXR1cm4gaD1pLnNlbnQsVygpLGguY29kZT09PTIwMD9kLlpQLnN1Y2Nlc3MoIlx1NTIyMFx1OTY2NFx1NjIxMFx1NTI5Rlx1RkYwQ1x1NTM3M1x1NUMwNlx1NTIzN1x1NjVCMCIpOmQuWlAuZXJyb3IoaC5tc2cpLGkuYWJydXB0KCJyZXR1cm4iLCEwKTtjYXNlIDEyOnJldHVybiBpLnByZXY9MTIsaS50MD1pLmNhdGNoKDMpLFcoKSxkLlpQLmVycm9yKCJcdTUyMjBcdTk2NjRcdTU5MzFcdThEMjVcdUZGMENcdThCRjdcdTkxQ0RcdThCRDUiKSxpLmFicnVwdCgicmV0dXJuIiwhMSk7Y2FzZSAxNzpjYXNlImVuZCI6cmV0dXJuIGkuc3RvcCgpfX0sWixudWxsLFtbMywxMl1dKX0pKTtyZXR1cm4gZnVuY3Rpb24oSSl7cmV0dXJuIE4uYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSxPPWZ1bmN0aW9uKCl7dmFyIE49dSgpKG4oKSgpLm1hcmsoZnVuY3Rpb24gWihJKXt2YXIgVyxoLEg7cmV0dXJuIG4oKSgpLndyYXAoZnVuY3Rpb24oVSl7Zm9yKDs7KXN3aXRjaChVLnByZXY9VS5uZXh0KXtjYXNlIDA6aWYoVz1kLlpQLmxvYWRpbmcoIlx1NkI2M1x1NTcyOFx1NTIyMFx1OTY2NCIpLEkpe1UubmV4dD0zO2JyZWFrfXJldHVybiBVLmFicnVwdCgicmV0dXJuIiwhMCk7Y2FzZSAzOnJldHVybiBVLnByZXY9MyxoPVtJLmpvYklkXSxVLm5leHQ9NywoMCxDLmVYKShoLmpvaW4oIiwiKSk7Y2FzZSA3OnJldHVybiBIPVUuc2VudCxXKCksSC5jb2RlPT09MjAwP2QuWlAuc3VjY2VzcygiXHU1MjIwXHU5NjY0XHU2MjEwXHU1MjlGXHVGRjBDXHU1MzczXHU1QzA2XHU1MjM3XHU2NUIwIik6ZC5aUC5lcnJvcihILm1zZyksVS5hYnJ1cHQoInJldHVybiIsITApO2Nhc2UgMTM6cmV0dXJuIFUucHJldj0xMyxVLnQwPVUuY2F0Y2goMyksVygpLGQuWlAuZXJyb3IoIlx1NTIyMFx1OTY2NFx1NTkzMVx1OEQyNVx1RkYwQ1x1OEJGN1x1OTFDRFx1OEJENSIpLFUuYWJydXB0KCJyZXR1cm4iLCExKTtjYXNlIDE4OmNhc2UiZW5kIjpyZXR1cm4gVS5zdG9wKCl9fSxaLG51bGwsW1szLDEzXV0pfSkpO3JldHVybiBmdW5jdGlvbihJKXtyZXR1cm4gTi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLGRlPWZ1bmN0aW9uKCl7dmFyIE49dSgpKG4oKSgpLm1hcmsoZnVuY3Rpb24gWigpe3ZhciBJO3JldHVybiBuKCkoKS53cmFwKGZ1bmN0aW9uKGgpe2Zvcig7Oylzd2l0Y2goaC5wcmV2PWgubmV4dCl7Y2FzZSAwOnJldHVybiBJPWQuWlAubG9hZGluZygiXHU2QjYzXHU1NzI4XHU1QkZDXHU1MUZBIiksaC5wcmV2PTEsaC5uZXh0PTQsKDAsQy5RJCkoKTtjYXNlIDQ6cmV0dXJuIEkoKSxkLlpQLnN1Y2Nlc3MoIlx1NUJGQ1x1NTFGQVx1NjIxMFx1NTI5RiIpLGguYWJydXB0KCJyZXR1cm4iLCEwKTtjYXNlIDk6cmV0dXJuIGgucHJldj05LGgudDA9aC5jYXRjaCgxKSxJKCksZC5aUC5lcnJvcigiXHU1QkZDXHU1MUZBXHU1OTMxXHU4RDI1XHVGRjBDXHU4QkY3XHU5MUNEXHU4QkQ1IiksaC5hYnJ1cHQoInJldHVybiIsITEpO2Nhc2UgMTQ6Y2FzZSJlbmQiOnJldHVybiBoLnN0b3AoKX19LFosbnVsbCxbWzEsOV1dKX0pKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gTi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLHNlPWZ1bmN0aW9uKCl7dmFyIFo9KDAsQS51c2VSZWYpKCksST0oMCxBLnVzZVN0YXRlKSghMSksVz10KCkoSSwyKSxoPVdbMF0sSD1XWzFdLGk9KDAsQS51c2VTdGF0ZSkoITEpLFU9dCgpKGksMiksYmU9VVswXSxpZT1VWzFdLG5lPSgwLEEudXNlUmVmKSgpLGdlPSgwLEEudXNlU3RhdGUpKCksbWU9dCgpKGdlLDIpLGNlPW1lWzBdLHJlPW1lWzFdLGhlPSgwLEEudXNlU3RhdGUpKFtdKSxwZT10KCkoaGUsMiksWD1wZVswXSxsZT1wZVsxXSx2ZT0oMCxBLnVzZVN0YXRlKShbXSksZmU9dCgpKHZlLDIpLF9lPWZlWzBdLFRlPWZlWzFdLGplPSgwLEEudXNlU3RhdGUpKFtdKSxFZT10KCkoamUsMiksb2U9RWVbMF0sUGU9RWVbMV0sdWU9KDAscC51c2VBY2Nlc3MpKCksTWU9KDAscC51c2VJbnRsKSgpOygwLEEudXNlRWZmZWN0KShmdW5jdGlvbigpeygwLGVlLkhyKSgic3lzX2pvYl9ncm91cCIpLnRoZW4oZnVuY3Rpb24oUyl7VGUoUyl9KSwoMCxlZS5wWCkoInN5c19ub3JtYWxfZGlzYWJsZSIpLnRoZW4oZnVuY3Rpb24oUyl7UGUoUyl9KX0sW10pO3ZhciBEZT1be3RpdGxlOigwLHIuanN4KShwLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJtb25pdG9yLmpvYi5qb2JfaWQiLGRlZmF1bHRNZXNzYWdlOiJcdTRFRkJcdTUyQTFcdTdGMTZcdTUzRjcifSksZGF0YUluZGV4OiJqb2JJZCIsdmFsdWVUeXBlOiJ0ZXh0IixoaWRlSW5TZWFyY2g6ITB9LHt0aXRsZTooMCxyLmpzeCkocC5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoibW9uaXRvci5qb2Iuam9iX25hbWUiLGRlZmF1bHRNZXNzYWdlOiJcdTRFRkJcdTUyQTFcdTU0MERcdTc5RjAifSksZGF0YUluZGV4OiJqb2JOYW1lIix2YWx1ZVR5cGU6InRleHQiLHJlbmRlcjpmdW5jdGlvbih4LGIpe3JldHVybigwLHIuanN4KSgiYSIse29uQ2xpY2s6ZnVuY3Rpb24oKXtpZSghMCkscmUoYil9LGNoaWxkcmVuOnh9KX19LHt0aXRsZTooMCxyLmpzeCkocC5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoibW9uaXRvci5qb2Iuam9iX2dyb3VwIixkZWZhdWx0TWVzc2FnZToiXHU0RUZCXHU1MkExXHU3RUM0XHU1NDBEIn0pLGRhdGFJbmRleDoiam9iR3JvdXAiLHZhbHVlVHlwZToidGV4dCIsdmFsdWVFbnVtOl9lLHJlbmRlcjpmdW5jdGlvbih4LGIpe3JldHVybigwLHIuanN4KSh3Llose29wdGlvbnM6X2UsdmFsdWU6Yi5qb2JHcm91cH0pfX0se3RpdGxlOigwLHIuanN4KShwLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJtb25pdG9yLmpvYi5pbnZva2VfdGFyZ2V0IixkZWZhdWx0TWVzc2FnZToiXHU4QzAzXHU3NTI4XHU3NkVFXHU2ODA3XHU1QjU3XHU3QjI2XHU0RTMyIn0pLGRhdGFJbmRleDoiaW52b2tlVGFyZ2V0Iix2YWx1ZVR5cGU6InRleHRhcmVhIn0se3RpdGxlOigwLHIuanN4KShwLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJtb25pdG9yLmpvYi5jcm9uX2V4cHJlc3Npb24iLGRlZmF1bHRNZXNzYWdlOiJjcm9uXHU2MjY3XHU4ODRDXHU4ODY4XHU4RkJFXHU1RjBGIn0pLGRhdGFJbmRleDoiY3JvbkV4cHJlc3Npb24iLHZhbHVlVHlwZToidGV4dCJ9LHt0aXRsZTooMCxyLmpzeCkocC5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoibW9uaXRvci5qb2Iuc3RhdHVzIixkZWZhdWx0TWVzc2FnZToiXHU3MkI2XHU2MDAxIn0pLGRhdGFJbmRleDoic3RhdHVzIix2YWx1ZVR5cGU6InNlbGVjdCIsdmFsdWVFbnVtOm9lLHJlbmRlcjpmdW5jdGlvbih4LGIpe3JldHVybigwLHIuanN4KSh3Llose2VudW1zOm9lLHZhbHVlOmIuc3RhdHVzfSl9fSx7dGl0bGU6KDAsci5qc3gpKHAuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InBhZ2VzLnNlYXJjaFRhYmxlLnRpdGxlT3B0aW9uIixkZWZhdWx0TWVzc2FnZToiXHU2NENEXHU0RjVDIn0pLGRhdGFJbmRleDoib3B0aW9uIix3aWR0aDoiMjIwcHgiLHZhbHVlVHlwZToib3B0aW9uIixyZW5kZXI6ZnVuY3Rpb24oeCxiKXtyZXR1cm5bKDAsci5qc3gpKG8uWlAse3R5cGU6ImxpbmsiLHNpemU6InNtYWxsIixpY29uOigwLHIuanN4KShfLlose30pLGhpZGRlbjohdWUuaGFzUGVybXMoIm1vbml0b3I6am9iOmVkaXQiKSxvbkNsaWNrOmZ1bmN0aW9uKCl7SCghMCkscmUoYil9LGNoaWxkcmVuOiJcdTdGMTZcdThGOTEifSwiZWRpdCIpLCgwLHIuanN4KShvLlpQLHt0eXBlOiJsaW5rIixzaXplOiJzbWFsbCIsZGFuZ2VyOiEwLGljb246KDAsci5qc3gpKEQuWix7fSksaGlkZGVuOiF1ZS5oYXNQZXJtcygibW9uaXRvcjpqb2I6cmVtb3ZlIiksb25DbGljazp1KCkobigpKCkubWFyayhmdW5jdGlvbiB2KCl7cmV0dXJuIG4oKSgpLndyYXAoZnVuY3Rpb24oQil7Zm9yKDs7KXN3aXRjaChCLnByZXY9Qi5uZXh0KXtjYXNlIDA6ai5aLmNvbmZpcm0oe3RpdGxlOiJcdTUyMjBcdTk2NjQiLGNvbnRlbnQ6Ilx1Nzg2RVx1NUI5QVx1NTIyMFx1OTY2NFx1OEJFNVx1OTg3OVx1NTQxN1x1RkYxRiIsb2tUZXh0OiJcdTc4NkVcdThCQTQiLGNhbmNlbFRleHQ6Ilx1NTNENlx1NkQ4OCIsb25PazpmdW5jdGlvbigpe3ZhciBZPXUoKShuKCkoKS5tYXJrKGZ1bmN0aW9uIGsoKXt2YXIgdGU7cmV0dXJuIG4oKSgpLndyYXAoZnVuY3Rpb24oSil7Zm9yKDs7KXN3aXRjaChKLnByZXY9Si5uZXh0KXtjYXNlIDA6cmV0dXJuIEoubmV4dD0yLE8oYik7Y2FzZSAyOnRlPUouc2VudCx0ZSYmbmUuY3VycmVudCYmbmUuY3VycmVudC5yZWxvYWQoKTtjYXNlIDQ6Y2FzZSJlbmQiOnJldHVybiBKLnN0b3AoKX19LGspfSkpO2Z1bmN0aW9uICQoKXtyZXR1cm4gWS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuICR9KCl9KTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBCLnN0b3AoKX19LHYpfSkpLGNoaWxkcmVuOiJcdTUyMjBcdTk2NjQifSwiYmF0Y2hSZW1vdmUiKSwoMCxyLmpzeCkoUi5aLHttZW51OntpdGVtczpbe2xhYmVsOiJcdTYyNjdcdTg4NENcdTRFMDBcdTZCMjEiLGtleToicnVuT25jZSJ9LHtsYWJlbDoiXHU4QkU2XHU3RUM2IixrZXk6ImRldGFpbCJ9LHtsYWJlbDoiXHU1Mzg2XHU1M0YyIixrZXk6ImxvZyJ9XSxvbkNsaWNrOmZ1bmN0aW9uKFEpe3ZhciBCPVEua2V5O0I9PT0icnVuT25jZSI/ai5aLmNvbmZpcm0oe3RpdGxlOiJcdThCNjZcdTU0NEEiLGNvbnRlbnQ6Ilx1Nzg2RVx1OEJBNFx1ODk4MVx1N0FDQlx1NTM3M1x1NjI2N1x1ODg0Q1x1NEUwMFx1NkIyMVx1RkYxRiIsb2tUZXh0OiJcdTc4NkVcdThCQTQiLGNhbmNlbFRleHQ6Ilx1NTNENlx1NkQ4OCIsb25PazpmdW5jdGlvbigpe3ZhciBZPXUoKShuKCkoKS5tYXJrKGZ1bmN0aW9uIGsoKXt2YXIgdGU7cmV0dXJuIG4oKSgpLndyYXAoZnVuY3Rpb24oSil7Zm9yKDs7KXN3aXRjaChKLnByZXY9Si5uZXh0KXtjYXNlIDA6cmV0dXJuIEoubmV4dD0yLCgwLEMudXUpKGIuam9iSWQsYi5qb2JHcm91cCk7Y2FzZSAyOnRlPUouc2VudCx0ZSYmZC5aUC5zdWNjZXNzKCJcdTYyNjdcdTg4NENcdTYyMTBcdTUyOUYiKTtjYXNlIDQ6Y2FzZSJlbmQiOnJldHVybiBKLnN0b3AoKX19LGspfSkpO2Z1bmN0aW9uICQoKXtyZXR1cm4gWS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuICR9KCl9KTpCPT09ImRldGFpbCI/KGllKCEwKSxyZShiKSk6Qj09PSJsb2ciJiZwLmhpc3RvcnkucHVzaCgiL21vbml0b3Ivam9iLWxvZy9pbmRleC8iLmNvbmNhdChiLmpvYklkKSl9fSxjaGlsZHJlbjooMCxyLmpzeCkoImEiLHtjbGFzc05hbWU6ImFudC1kcm9wZG93bi1saW5rIixvbkNsaWNrOmZ1bmN0aW9uKFEpe3JldHVybiBRLnByZXZlbnREZWZhdWx0KCl9LGNoaWxkcmVuOigwLHIuanN4cykoVC5aLHtjaGlsZHJlbjpbKDAsci5qc3gpKHMuWix7fSksIlx1NjZGNFx1NTkxQSJdfSl9KX0sIm1vcmUiKV19fV07cmV0dXJuKDAsci5qc3hzKShtLl96LHtjaGlsZHJlbjpbKDAsci5qc3gpKCJkaXYiLHtzdHlsZTp7d2lkdGg6IjEwMCUiLGZsb2F0OiJyaWdodCJ9LGNoaWxkcmVuOigwLHIuanN4KShQLlose2hlYWRlclRpdGxlOk1lLmZvcm1hdE1lc3NhZ2Uoe2lkOiJwYWdlcy5zZWFyY2hUYWJsZS50aXRsZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NEZFMVx1NjA2RiJ9KSxhY3Rpb25SZWY6bmUsZm9ybVJlZjpaLHJvd0tleToiam9iSWQiLHNlYXJjaDp7bGFiZWxXaWR0aDoxMjB9LHRvb2xCYXJSZW5kZXI6ZnVuY3Rpb24oKXtyZXR1cm5bKDAsci5qc3hzKShvLlpQLHt0eXBlOiJwcmltYXJ5IixoaWRkZW46IXVlLmhhc1Blcm1zKCJtb25pdG9yOmpvYjphZGQiKSxvbkNsaWNrOnUoKShuKCkoKS5tYXJrKGZ1bmN0aW9uIHgoKXtyZXR1cm4gbigpKCkud3JhcChmdW5jdGlvbih2KXtmb3IoOzspc3dpdGNoKHYucHJldj12Lm5leHQpe2Nhc2UgMDpyZSh2b2lkIDApLEgoITApO2Nhc2UgMjpjYXNlImVuZCI6cmV0dXJuIHYuc3RvcCgpfX0seCl9KSksY2hpbGRyZW46WygwLHIuanN4KShjLlose30pLCIgIiwoMCxyLmpzeCkocC5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoicGFnZXMuc2VhcmNoVGFibGUubmV3IixkZWZhdWx0TWVzc2FnZToiXHU2NUIwXHU1RUZBIn0pXX0sImFkZCIpLCgwLHIuanN4cykoby5aUCx7dHlwZToicHJpbWFyeSIsZGFuZ2VyOiEwLGhpZGRlbjooWD09bnVsbD92b2lkIDA6WC5sZW5ndGgpPT09MHx8IXVlLmhhc1Blcm1zKCJtb25pdG9yOmpvYjpyZW1vdmUiKSxvbkNsaWNrOnUoKShuKCkoKS5tYXJrKGZ1bmN0aW9uIHgoKXtyZXR1cm4gbigpKCkud3JhcChmdW5jdGlvbih2KXtmb3IoOzspc3dpdGNoKHYucHJldj12Lm5leHQpe2Nhc2UgMDpqLlouY29uZmlybSh7dGl0bGU6Ilx1NjYyRlx1NTQyNlx1Nzg2RVx1OEJBNFx1NTIyMFx1OTY2NFx1NjI0MFx1OTAwOVx1NjU3MFx1NjM2RVx1OTg3OT8iLGljb246KDAsci5qc3gpKGFlLlose30pLGNvbnRlbnQ6Ilx1OEJGN1x1OEMyOFx1NjE0RVx1NjRDRFx1NEY1QyIsb25PazpmdW5jdGlvbigpe3JldHVybiB1KCkobigpKCkubWFyayhmdW5jdGlvbiBCKCl7dmFyIFksJCxrO3JldHVybiBuKCkoKS53cmFwKGZ1bmN0aW9uKEcpe2Zvcig7Oylzd2l0Y2goRy5wcmV2PUcubmV4dCl7Y2FzZSAwOnJldHVybiBHLm5leHQ9MixNKFgpO2Nhc2UgMjpZPUcuc2VudCxZJiYobGUoW10pLCgkPW5lLmN1cnJlbnQpPT09bnVsbHx8JD09PXZvaWQgMHx8KGs9JC5yZWxvYWRBbmRSZXN0KT09PW51bGx8fGs9PT12b2lkIDB8fGsuY2FsbCgkKSk7Y2FzZSA0OmNhc2UiZW5kIjpyZXR1cm4gRy5zdG9wKCl9fSxCKX0pKSgpfSxvbkNhbmNlbDpmdW5jdGlvbigpe319KTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiB2LnN0b3AoKX19LHgpfSkpLGNoaWxkcmVuOlsoMCxyLmpzeCkoRC5aLHt9KSwoMCxyLmpzeCkocC5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoicGFnZXMuc2VhcmNoVGFibGUuZGVsZXRlIixkZWZhdWx0TWVzc2FnZToiXHU1MjIwXHU5NjY0In0pXX0sInJlbW92ZSIpLCgwLHIuanN4cykoby5aUCx7dHlwZToicHJpbWFyeSIsaGlkZGVuOiF1ZS5oYXNQZXJtcygibW9uaXRvcjpqb2I6ZXhwb3J0Iiksb25DbGljazp1KCkobigpKCkubWFyayhmdW5jdGlvbiB4KCl7cmV0dXJuIG4oKSgpLndyYXAoZnVuY3Rpb24odil7Zm9yKDs7KXN3aXRjaCh2LnByZXY9di5uZXh0KXtjYXNlIDA6ZGUoKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiB2LnN0b3AoKX19LHgpfSkpLGNoaWxkcmVuOlsoMCxyLmpzeCkoYy5aLHt9KSwoMCxyLmpzeCkocC5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoicGFnZXMuc2VhcmNoVGFibGUuZXhwb3J0IixkZWZhdWx0TWVzc2FnZToiXHU1QkZDXHU1MUZBIn0pXX0sImV4cG9ydCIpXX0scmVxdWVzdDpmdW5jdGlvbih4KXtyZXR1cm4oMCxDLkdvKShGKCkoe30seCkpLnRoZW4oZnVuY3Rpb24oYil7dmFyIHY9e2RhdGE6Yi5yb3dzLHRvdGFsOmIudG90YWwsc3VjY2VzczohMH07cmV0dXJuIHZ9KX0sY29sdW1uczpEZSxyb3dTZWxlY3Rpb246e29uQ2hhbmdlOmZ1bmN0aW9uKHgsYil7bGUoYil9fX0sImpvYkxpc3QiKX0pLChYPT1udWxsP3ZvaWQgMDpYLmxlbmd0aCk+MCYmKDAsci5qc3gpKGwuUyx7ZXh0cmE6KDAsci5qc3hzKSgiZGl2Iix7Y2hpbGRyZW46WygwLHIuanN4KShwLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJwYWdlcy5zZWFyY2hUYWJsZS5jaG9zZW4iLGRlZmF1bHRNZXNzYWdlOiJcdTVERjJcdTkwMDlcdTYyRTkifSksKDAsci5qc3gpKCJhIix7c3R5bGU6e2ZvbnRXZWlnaHQ6NjAwfSxjaGlsZHJlbjpYLmxlbmd0aH0pLCgwLHIuanN4KShwLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJwYWdlcy5zZWFyY2hUYWJsZS5pdGVtIixkZWZhdWx0TWVzc2FnZToiXHU5ODc5In0pXX0pLGNoaWxkcmVuOigwLHIuanN4KShvLlpQLHtkYW5nZXI6ITAsaGlkZGVuOiF1ZS5oYXNQZXJtcygibW9uaXRvcjpqb2I6ZGVsIiksb25DbGljazp1KCkobigpKCkubWFyayhmdW5jdGlvbiBTKCl7cmV0dXJuIG4oKSgpLndyYXAoZnVuY3Rpb24oYil7Zm9yKDs7KXN3aXRjaChiLnByZXY9Yi5uZXh0KXtjYXNlIDA6ai5aLmNvbmZpcm0oe3RpdGxlOiJcdTUyMjBcdTk2NjQiLGNvbnRlbnQ6Ilx1Nzg2RVx1NUI5QVx1NTIyMFx1OTY2NFx1OEJFNVx1OTg3OVx1NTQxN1x1RkYxRiIsb2tUZXh0OiJcdTc4NkVcdThCQTQiLGNhbmNlbFRleHQ6Ilx1NTNENlx1NkQ4OCIsb25PazpmdW5jdGlvbigpe3ZhciB2PXUoKShuKCkoKS5tYXJrKGZ1bmN0aW9uIEIoKXt2YXIgWSwkLGs7cmV0dXJuIG4oKSgpLndyYXAoZnVuY3Rpb24oRyl7Zm9yKDs7KXN3aXRjaChHLnByZXY9Ry5uZXh0KXtjYXNlIDA6cmV0dXJuIEcubmV4dD0yLE0oWCk7Y2FzZSAyOlk9Ry5zZW50LFkmJihsZShbXSksKCQ9bmUuY3VycmVudCk9PT1udWxsfHwkPT09dm9pZCAwfHwoaz0kLnJlbG9hZEFuZFJlc3QpPT09bnVsbHx8az09PXZvaWQgMHx8ay5jYWxsKCQpKTtjYXNlIDQ6Y2FzZSJlbmQiOnJldHVybiBHLnN0b3AoKX19LEIpfSkpO2Z1bmN0aW9uIFEoKXtyZXR1cm4gdi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIFF9KCl9KTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBiLnN0b3AoKX19LFMpfSkpLGNoaWxkcmVuOigwLHIuanN4KShwLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJwYWdlcy5zZWFyY2hUYWJsZS5iYXRjaERlbGV0aW9uIixkZWZhdWx0TWVzc2FnZToiXHU2Mjc5XHU5MUNGXHU1MjIwXHU5NjY0In0pfSwicmVtb3ZlIil9KSwoMCxyLmpzeCkoRS5kZWZhdWx0LHtvblN1Ym1pdDpmdW5jdGlvbigpe3ZhciBTPXUoKShuKCkoKS5tYXJrKGZ1bmN0aW9uIHgoYil7dmFyIHY7cmV0dXJuIG4oKSgpLndyYXAoZnVuY3Rpb24oQil7Zm9yKDs7KXN3aXRjaChCLnByZXY9Qi5uZXh0KXtjYXNlIDA6aWYodj0hMSwhYi5qb2JJZCl7Qi5uZXh0PTc7YnJlYWt9cmV0dXJuIEIubmV4dD00LHooRigpKHt9LGIpKTtjYXNlIDQ6dj1CLnNlbnQsQi5uZXh0PTEwO2JyZWFrO2Nhc2UgNzpyZXR1cm4gQi5uZXh0PTksVihGKCkoe30sYikpO2Nhc2UgOTp2PUIuc2VudDtjYXNlIDEwOnYmJihIKCExKSxyZSh2b2lkIDApLG5lLmN1cnJlbnQmJm5lLmN1cnJlbnQucmVsb2FkKCkpO2Nhc2UgMTE6Y2FzZSJlbmQiOnJldHVybiBCLnN0b3AoKX19LHgpfSkpO3JldHVybiBmdW5jdGlvbih4KXtyZXR1cm4gUy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLG9uQ2FuY2VsOmZ1bmN0aW9uKCl7SCghMSkscmUodm9pZCAwKX0sb3BlbjpoLHZhbHVlczpjZXx8e30sam9iR3JvdXBPcHRpb25zOl9lfHx7fSxzdGF0dXNPcHRpb25zOm9lfSksKDAsci5qc3gpKGcuZGVmYXVsdCx7b25DYW5jZWw6ZnVuY3Rpb24oKXtpZSghMSkscmUodm9pZCAwKX0sb3BlbjpiZSx2YWx1ZXM6Y2V8fHt9LHN0YXR1c09wdGlvbnM6b2V9KV19KX07eS5kZWZhdWx0PXNlfSw5MTY0NjpmdW5jdGlvbihxLHksZSl7ZS5kKHkse0dvOmZ1bmN0aW9uKCl7cmV0dXJuIGF9LFEkOmZ1bmN0aW9uKCl7cmV0dXJuIG19LFkkOmZ1bmN0aW9uKCl7cmV0dXJuIHB9LFpuOmZ1bmN0aW9uKCl7cmV0dXJuIEF9LGVYOmZ1bmN0aW9uKCl7cmV0dXJuIG99LGdLOmZ1bmN0aW9uKCl7cmV0dXJuIFR9LHV1OmZ1bmN0aW9uKCl7cmV0dXJuIFB9fSk7dmFyIEs9ZSgxNTAwOSksdD1lLm4oSyksTD1lKDk5Mjg5KSxuPWUubihMKSxmPWUoNzY3NzIpLEY9ZSgzMDk2NCk7ZnVuY3Rpb24gYShfKXtyZXR1cm4gdS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gdSgpe3JldHVybiB1PW4oKSh0KCkoKS5tYXJrKGZ1bmN0aW9uIF8oRCl7cmV0dXJuIHQoKSgpLndyYXAoZnVuY3Rpb24oYyl7Zm9yKDs7KXN3aXRjaChjLnByZXY9Yy5uZXh0KXtjYXNlIDA6cmV0dXJuIGMuYWJydXB0KCJyZXR1cm4iLCgwLGYucmVxdWVzdCkoIi9hcGkvbW9uaXRvci9qb2IvbGlzdCIse21ldGhvZDoiR0VUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In0scGFyYW1zOkR9KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gYy5zdG9wKCl9fSxfKX0pKSx1LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBBKF8pe3JldHVybigwLGYucmVxdWVzdCkoIi9hcGkvbW9uaXRvci9qb2IvIi5jb25jYXQoXykse21ldGhvZDoiR0VUIn0pfWZ1bmN0aW9uIHAoXyl7cmV0dXJuIFIuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIFIoKXtyZXR1cm4gUj1uKCkodCgpKCkubWFyayhmdW5jdGlvbiBfKEQpe3JldHVybiB0KCkoKS53cmFwKGZ1bmN0aW9uKGMpe2Zvcig7Oylzd2l0Y2goYy5wcmV2PWMubmV4dCl7Y2FzZSAwOnJldHVybiBjLmFicnVwdCgicmV0dXJuIiwoMCxmLnJlcXVlc3QpKCIvYXBpL21vbml0b3Ivam9iIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In0sZGF0YTpEfSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGMuc3RvcCgpfX0sXyl9KSksUi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gVChfKXtyZXR1cm4gZC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gZCgpe3JldHVybiBkPW4oKSh0KCkoKS5tYXJrKGZ1bmN0aW9uIF8oRCl7cmV0dXJuIHQoKSgpLndyYXAoZnVuY3Rpb24oYyl7Zm9yKDs7KXN3aXRjaChjLnByZXY9Yy5uZXh0KXtjYXNlIDA6cmV0dXJuIGMuYWJydXB0KCJyZXR1cm4iLCgwLGYucmVxdWVzdCkoIi9hcGkvbW9uaXRvci9qb2IiLHttZXRob2Q6IlBVVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCJ9LGRhdGE6RH0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBjLnN0b3AoKX19LF8pfSkpLGQuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIG8oXyl7cmV0dXJuIGouYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGooKXtyZXR1cm4gaj1uKCkodCgpKCkubWFyayhmdW5jdGlvbiBfKEQpe3JldHVybiB0KCkoKS53cmFwKGZ1bmN0aW9uKGMpe2Zvcig7Oylzd2l0Y2goYy5wcmV2PWMubmV4dCl7Y2FzZSAwOnJldHVybiBjLmFicnVwdCgicmV0dXJuIiwoMCxmLnJlcXVlc3QpKCIvYXBpL21vbml0b3Ivam9iLyIuY29uY2F0KEQpLHttZXRob2Q6IkRFTEVURSJ9KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gYy5zdG9wKCl9fSxfKX0pKSxqLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBtKF8pe3JldHVybigwLEYuc3UpKCIvYXBpL21vbml0b3Ivam9iL2V4cG9ydCIse3BhcmFtczpffSwiam9iXyIuY29uY2F0KG5ldyBEYXRlKCkuZ2V0VGltZSgpLCIueGxzeCIpKX1mdW5jdGlvbiBQKF8sRCl7cmV0dXJuIGwuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGwoKXtyZXR1cm4gbD1uKCkodCgpKCkubWFyayhmdW5jdGlvbiBfKEQscyl7dmFyIGM7cmV0dXJuIHQoKSgpLndyYXAoZnVuY3Rpb24oQyl7Zm9yKDs7KXN3aXRjaChDLnByZXY9Qy5uZXh0KXtjYXNlIDA6cmV0dXJuIGM9e2pvYklkOkQsam9iR3JvdXA6c30sQy5hYnJ1cHQoInJldHVybiIsKDAsZi5yZXF1ZXN0KSgiL2FwaS9tb25pdG9yL2pvYi9ydW4iLHttZXRob2Q6IlBVVCIsZGF0YTpjfSkpO2Nhc2UgMjpjYXNlImVuZCI6cmV0dXJuIEMuc3RvcCgpfX0sXyl9KSksbC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSw5Mjk4MjpmdW5jdGlvbihxLHksZSl7ZS5kKHkse0hyOmZ1bmN0aW9uKCl7cmV0dXJuIGp9LFFLOmZ1bmN0aW9uKCl7cmV0dXJuIEN9LFZkOmZ1bmN0aW9uKCl7cmV0dXJuIFR9LGE3OmZ1bmN0aW9uKCl7cmV0dXJuIF99LGpLOmZ1bmN0aW9uKCl7cmV0dXJuIHB9LG4yOmZ1bmN0aW9uKCl7cmV0dXJuIGFlfSxvSDpmdW5jdGlvbigpe3JldHVybiBQfSxwWDpmdW5jdGlvbigpe3JldHVybiBkfSxzRjpmdW5jdGlvbigpe3JldHVybiBzfX0pO3ZhciBLPWUoMTUwMDkpLHQ9ZS5uKEspLEw9ZSg5Nzg1Nyksbj1lLm4oTCksZj1lKDk5Mjg5KSxGPWUubihmKSxhPWUoNzY3NzIpLHU9ZSgzMzg2NyksQT1lKDMwOTY0KTtmdW5jdGlvbiBwKEUpe3JldHVybiBSLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBSKCl7cmV0dXJuIFI9RigpKHQoKSgpLm1hcmsoZnVuY3Rpb24gRShnKXtyZXR1cm4gdCgpKCkud3JhcChmdW5jdGlvbihyKXtmb3IoOzspc3dpdGNoKHIucHJldj1yLm5leHQpe2Nhc2UgMDpyZXR1cm4gci5hYnJ1cHQoInJldHVybiIsKDAsYS5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vZGljdC90eXBlL2xpc3QiLHtwYXJhbXM6bigpKHt9LGcpLG1ldGhvZDoiR0VUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In19KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gci5zdG9wKCl9fSxFKX0pKSxSLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBUKEUpe3JldHVybigwLGEucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RpY3QvdHlwZS8iLmNvbmNhdChFKSx7bWV0aG9kOiJHRVQifSl9ZnVuY3Rpb24gZChFLGcpe3JldHVybiBvLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBvKCl7cmV0dXJuIG89RigpKHQoKSgpLm1hcmsoZnVuY3Rpb24gRShnLHcpe3ZhciByLFY7cmV0dXJuIHQoKSgpLndyYXAoZnVuY3Rpb24oTSl7Zm9yKDs7KXN3aXRjaChNLnByZXY9TS5uZXh0KXtjYXNlIDA6cmV0dXJuIE0ubmV4dD0yLCgwLGEucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RpY3QvZGF0YS90eXBlLyIuY29uY2F0KGcpLHttZXRob2Q6IkdFVCJ9KTtjYXNlIDI6aWYocj1NLnNlbnQsci5jb2RlIT09dS5pSy5TVUNDRVNTKXtNLm5leHQ9OTticmVha31yZXR1cm4gVj17fSxyLmRhdGEuZm9yRWFjaChmdW5jdGlvbihPKXtWW08uZGljdFZhbHVlXT17dGV4dDpPLmRpY3RMYWJlbCxsYWJlbDpPLmRpY3RMYWJlbCx2YWx1ZTp3P051bWJlcihPLmRpY3RWYWx1ZSk6Ty5kaWN0VmFsdWUsa2V5Ok8uZGljdENvZGUsbGlzdENsYXNzOk8ubGlzdENsYXNzLHN0YXR1czpPLmxpc3RDbGFzc319KSxNLmFicnVwdCgicmV0dXJuIixWKTtjYXNlIDk6cmV0dXJuIE0uYWJydXB0KCJyZXR1cm4iLHt9KTtjYXNlIDEwOmNhc2UiZW5kIjpyZXR1cm4gTS5zdG9wKCl9fSxFKX0pKSxvLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBqKEUsZyl7cmV0dXJuIG0uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIG0oKXtyZXR1cm4gbT1GKCkodCgpKCkubWFyayhmdW5jdGlvbiBFKGcsdyl7dmFyIHIsVjtyZXR1cm4gdCgpKCkud3JhcChmdW5jdGlvbihNKXtmb3IoOzspc3dpdGNoKE0ucHJldj1NLm5leHQpe2Nhc2UgMDpyZXR1cm4gTS5uZXh0PTIsKDAsYS5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vZGljdC9kYXRhL3R5cGUvIi5jb25jYXQoZykse21ldGhvZDoiR0VUIn0pO2Nhc2UgMjppZihyPU0uc2VudCxyLmNvZGUhPT0yMDApe00ubmV4dD02O2JyZWFrfXJldHVybiBWPXIuZGF0YS5tYXAoZnVuY3Rpb24oTyl7cmV0dXJue3RleHQ6Ty5kaWN0TGFiZWwsbGFiZWw6Ty5kaWN0TGFiZWwsdmFsdWU6dz9OdW1iZXIoTy5kaWN0VmFsdWUpOk8uZGljdFZhbHVlLGtleTpPLmRpY3RDb2RlLGxpc3RDbGFzczpPLmxpc3RDbGFzcyxzdGF0dXM6Ty5saXN0Q2xhc3N9fSksTS5hYnJ1cHQoInJldHVybiIsVik7Y2FzZSA2OnJldHVybiBNLmFicnVwdCgicmV0dXJuIixbXSk7Y2FzZSA3OmNhc2UiZW5kIjpyZXR1cm4gTS5zdG9wKCl9fSxFKX0pKSxtLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBQKEUpe3JldHVybiBsLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBsKCl7cmV0dXJuIGw9RigpKHQoKSgpLm1hcmsoZnVuY3Rpb24gRShnKXtyZXR1cm4gdCgpKCkud3JhcChmdW5jdGlvbihyKXtmb3IoOzspc3dpdGNoKHIucHJldj1yLm5leHQpe2Nhc2UgMDpyZXR1cm4gci5hYnJ1cHQoInJldHVybiIsKDAsYS5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vZGljdC90eXBlIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In0sZGF0YTpnfSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIHIuc3RvcCgpfX0sRSl9KSksbC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gXyhFKXtyZXR1cm4gRC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gRCgpe3JldHVybiBEPUYoKSh0KCkoKS5tYXJrKGZ1bmN0aW9uIEUoZyl7cmV0dXJuIHQoKSgpLndyYXAoZnVuY3Rpb24ocil7Zm9yKDs7KXN3aXRjaChyLnByZXY9ci5uZXh0KXtjYXNlIDA6cmV0dXJuIHIuYWJydXB0KCJyZXR1cm4iLCgwLGEucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RpY3QvdHlwZSIse21ldGhvZDoiUFVUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In0sZGF0YTpnfSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIHIuc3RvcCgpfX0sRSl9KSksRC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gcyhFKXtyZXR1cm4gYy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gYygpe3JldHVybiBjPUYoKSh0KCkoKS5tYXJrKGZ1bmN0aW9uIEUoZyl7cmV0dXJuIHQoKSgpLndyYXAoZnVuY3Rpb24ocil7Zm9yKDs7KXN3aXRjaChyLnByZXY9ci5uZXh0KXtjYXNlIDA6cmV0dXJuIHIuYWJydXB0KCJyZXR1cm4iLCgwLGEucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RpY3QvdHlwZS8iLmNvbmNhdChnKSx7bWV0aG9kOiJERUxFVEUifSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIHIuc3RvcCgpfX0sRSl9KSksYy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gYWUoRSl7cmV0dXJuKDAsQS5zdSkoIi9hcGkvc3lzdGVtL2RpY3QvdHlwZS9leHBvcnQiLHtwYXJhbXM6RX0sImRpY3RfdHlwZV8iLmNvbmNhdChuZXcgRGF0ZSgpLmdldFRpbWUoKSwiLnhsc3giKSl9ZnVuY3Rpb24gQyhFKXtyZXR1cm4gZWUuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGVlKCl7cmV0dXJuIGVlPUYoKSh0KCkoKS5tYXJrKGZ1bmN0aW9uIEUoZyl7cmV0dXJuIHQoKSgpLndyYXAoZnVuY3Rpb24ocil7Zm9yKDs7KXN3aXRjaChyLnByZXY9ci5uZXh0KXtjYXNlIDA6cmV0dXJuIHIuYWJydXB0KCJyZXR1cm4iLCgwLGEucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RpY3QvdHlwZS9vcHRpb25zZWxlY3QiLHtwYXJhbXM6bigpKHt9LGcpLG1ldGhvZDoiR0VUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In19KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gci5zdG9wKCl9fSxFKX0pKSxlZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSwzMDk2NDpmdW5jdGlvbihxLHksZSl7ZS5kKHkse3A2OmZ1bmN0aW9uKCl7cmV0dXJuIHB9LHN1OmZ1bmN0aW9uKCl7cmV0dXJuIFJ9fSk7dmFyIEs9ZSgxNTAwOSksdD1lLm4oSyksTD1lKDk3ODU3KSxuPWUubihMKSxmPWUoOTkyODkpLEY9ZS5uKGYpLGE9ZSg3Njc3MiksdT17eGxzeDoiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQiLHppcDoiYXBwbGljYXRpb24vemlwIn07ZnVuY3Rpb24gQShvLGope3ZhciBtPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKSxQPW5ldyBCbG9iKFtvLmRhdGFdLHt0eXBlOmp9KSxsPW5ldyBSZWdFeHAoImZpbGVuYW1lPShbXjtdK1xcLlteXFwuO10rKTsqIiksXz1kZWNvZGVVUkkoby5oZWFkZXJzWyJjb250ZW50LWRpc3Bvc2l0aW9uIl0pLEQ9bC5leGVjKF8pLHM9RD9EWzFdOiJmaWxlIjtzPXMucmVwbGFjZSgvIi9nLCIiKSxtLnN0eWxlLmRpc3BsYXk9Im5vbmUiLG0uaHJlZj1VUkwuY3JlYXRlT2JqZWN0VVJMKFApLG0uc2V0QXR0cmlidXRlKCJkb3dubG9hZCIscyksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChtKSxtLmNsaWNrKCksVVJMLnJldm9rZU9iamVjdFVSTChtLmhyZWYpLGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQobSl9ZnVuY3Rpb24gcChvKXsoMCxhLnJlcXVlc3QpKG8se21ldGhvZDoiR0VUIixyZXNwb25zZVR5cGU6ImJsb2IiLGdldFJlc3BvbnNlOiEwfSkudGhlbihmdW5jdGlvbihqKXtBKGosdS56aXApfSl9ZnVuY3Rpb24gUihvLGosbSl7cmV0dXJuIFQuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIFQoKXtyZXR1cm4gVD1GKCkodCgpKCkubWFyayhmdW5jdGlvbiBvKGosbSxQKXtyZXR1cm4gdCgpKCkud3JhcChmdW5jdGlvbihfKXtmb3IoOzspc3dpdGNoKF8ucHJldj1fLm5leHQpe2Nhc2UgMDpyZXR1cm4gXy5hYnJ1cHQoInJldHVybiIsKDAsYS5yZXF1ZXN0KShqLG4oKShuKCkoe30sbSkse30se21ldGhvZDoiUE9TVCIscmVzcG9uc2VUeXBlOiJibG9iIn0pKS50aGVuKGZ1bmN0aW9uKEQpe3ZhciBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKSxjPUQ7cy5zdHlsZS5kaXNwbGF5PSJub25lIixzLmhyZWY9VVJMLmNyZWF0ZU9iamVjdFVSTChjKSxzLnNldEF0dHJpYnV0ZSgiZG93bmxvYWQiLFApLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocykscy5jbGljaygpLFVSTC5yZXZva2VPYmplY3RVUkwocy5ocmVmKSxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHMpfSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIF8uc3RvcCgpfX0sbyl9KSksVC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gZChvKXt3aW5kb3cubG9jYXRpb24uaHJlZj0iL2FwaS9jb21tb24vZG93bmxvYWQ/ZmlsZU5hbWU9Ii5jb25jYXQoZW5jb2RlVVJJKG8pLCImZGVsZXRlPSIsITApfX0sNjEzMTQ6ZnVuY3Rpb24ocSx5LGUpe2UuZCh5LHtuOmZ1bmN0aW9uKCl7cmV0dXJuIEt9fSk7ZnVuY3Rpb24gSyh0LEwsbil7aWYoTCE9PXZvaWQgMCl7dmFyIGY9dFtMXTtpZihmKXJldHVybiBmLnRleHR9cmV0dXJuIG58fEx9fX1dKTsKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvMTMxNi4yOWUxYTJjMS5hc3luYy5qcyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvMTMxNi4yOWUxYTJjMS5hc3luYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MWRhZTM5Ci0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy8xMzE2LjI5ZTFhMmMxLmFzeW5jLmpzCkBAIC0wLDAgKzEgQEAKKyJ1c2Ugc3RyaWN0Ijsoc2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Bybz1zZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvfHxbXSkucHVzaChbWzEzMTYsODIxMywxMjU2XSx7MzExOTk6ZnVuY3Rpb24oUSxNLG8pe3ZhciB0PW8oMTQxMyksdT1vKDkxKSxmPW8oNjcyOTQpLGI9byg5MjE3OSksXz1vKDg1ODkzKSxFPVsiZmllbGRQcm9wcyIsIm1pbiIsInByb0ZpZWxkUHJvcHMiLCJtYXgiXSxEPWZ1bmN0aW9uKHMsQil7dmFyIEk9cy5maWVsZFByb3BzLHA9cy5taW4sYz1zLnByb0ZpZWxkUHJvcHMsUj1zLm1heCxoPSgwLHUuWikocyxFKTtyZXR1cm4oMCxfLmpzeCkoYi5aLCgwLHQuWikoe3ZhbHVlVHlwZToiZGlnaXQiLGZpZWxkUHJvcHM6KDAsdC5aKSh7bWluOnAsbWF4OlJ9LEkpLHJlZjpCLGZpbGVkQ29uZmlnOntkZWZhdWx0UHJvcHM6e3dpZHRoOiIxMDAlIn19LHByb0ZpZWxkUHJvcHM6Y30saCkpfSxTPWYuZm9yd2FyZFJlZihEKTtNLlo9U30sODY2MTU6ZnVuY3Rpb24oUSxNLG8pe3ZhciB0PW8oMTQxMyksdT1vKDkxKSxmPW8oMjIyNzApLGI9byg3ODA0NSksXz1vKDY3Mjk0KSxFPW8oOTA3ODkpLEQ9byg5MjE3OSksUz1vKDg1ODkzKSxnPVsiZmllbGRQcm9wcyIsIm9wdGlvbnMiLCJyYWRpb1R5cGUiLCJsYXlvdXQiLCJwcm9GaWVsZFByb3BzIiwidmFsdWVFbnVtIl0scz1fLmZvcndhcmRSZWYoZnVuY3Rpb24oYyxSKXt2YXIgaD1jLmZpZWxkUHJvcHMsTz1jLm9wdGlvbnMsWj1jLnJhZGlvVHlwZSxpPWMubGF5b3V0LG49Yy5wcm9GaWVsZFByb3BzLFQ9Yy52YWx1ZUVudW0sQz0oMCx1LlopKGMsZyk7cmV0dXJuKDAsUy5qc3gpKEQuWiwoMCx0LlopKCgwLHQuWikoe3ZhbHVlVHlwZTpaPT09ImJ1dHRvbiI/InJhZGlvQnV0dG9uIjoicmFkaW8iLHJlZjpSLHZhbHVlRW51bTooMCxmLmgpKFQsdm9pZCAwKX0sQykse30se2ZpZWxkUHJvcHM6KDAsdC5aKSh7b3B0aW9uczpPLGxheW91dDppfSxoKSxwcm9GaWVsZFByb3BzOm4sZmlsZWRDb25maWc6e2N1c3RvbUxpZ2h0TW9kZTohMH19KSl9KSxCPV8uZm9yd2FyZFJlZihmdW5jdGlvbihjLFIpe3ZhciBoPWMuZmllbGRQcm9wcyxPPWMuY2hpbGRyZW47cmV0dXJuKDAsUy5qc3gpKGIuWlAsKDAsdC5aKSgoMCx0LlopKHt9LGgpLHt9LHtyZWY6UixjaGlsZHJlbjpPfSkpfSksST0oMCxFLkcpKEIse3ZhbHVlUHJvcE5hbWU6ImNoZWNrZWQiLGlnbm9yZVdpZHRoOiEwfSkscD1JO3AuR3JvdXA9cyxwLkJ1dHRvbj1iLlpQLkJ1dHRvbixwLmRpc3BsYXlOYW1lPSJQcm9Gb3JtQ29tcG9uZW50IixNLlo9cH0sOTA2NzI6ZnVuY3Rpb24oUSxNLG8pe3ZhciB0PW8oMTQxMyksdT1vKDkxKSxmPW8oNjcyOTQpLGI9byg5MjE3OSksXz1vKDg1ODkzKSxFPVsiZmllbGRQcm9wcyIsInByb0ZpZWxkUHJvcHMiXSxEPWZ1bmN0aW9uKGcscyl7dmFyIEI9Zy5maWVsZFByb3BzLEk9Zy5wcm9GaWVsZFByb3BzLHA9KDAsdS5aKShnLEUpO3JldHVybigwLF8uanN4KShiLlosKDAsdC5aKSh7cmVmOnMsdmFsdWVUeXBlOiJ0ZXh0YXJlYSIsZmllbGRQcm9wczpCLHByb0ZpZWxkUHJvcHM6SX0scCkpfTtNLlo9Zi5mb3J3YXJkUmVmKEQpfSw1OTY2OmZ1bmN0aW9uKFEsTSxvKXt2YXIgdD1vKDk3Njg1KSx1PW8oMTQxMyksZj1vKDkxKSxiPW8oMjE3NzApLF89byg5OTg1OSksRT1vKDU1MjQxKSxEPW8oOTg0MjMpLFM9byg2NzI5NCksZz1vKDkyMTc5KSxzPW8oODU4OTMpLEI9WyJmaWVsZFByb3BzIiwicHJvRmllbGRQcm9wcyJdLEk9WyJmaWVsZFByb3BzIiwicHJvRmllbGRQcm9wcyJdLHA9InRleHQiLGM9ZnVuY3Rpb24oaSl7dmFyIG49aS5maWVsZFByb3BzLFQ9aS5wcm9GaWVsZFByb3BzLEM9KDAsZi5aKShpLEIpO3JldHVybigwLHMuanN4KShnLlosKDAsdS5aKSh7dmFsdWVUeXBlOnAsZmllbGRQcm9wczpuLGZpbGVkQ29uZmlnOnt2YWx1ZVR5cGU6cH0scHJvRmllbGRQcm9wczpUfSxDKSl9LFI9ZnVuY3Rpb24oaSl7dmFyIG49KDAsYi5aKShpLm9wZW58fCExLHt2YWx1ZTppLm9wZW4sb25DaGFuZ2U6aS5vbk9wZW5DaGFuZ2V9KSxUPSgwLHQuWikobiwyKSxDPVRbMF0sTj1UWzFdO3JldHVybigwLHMuanN4KShfLlouSXRlbSx7c2hvdWxkVXBkYXRlOiEwLG5vU3R5bGU6ITAsY2hpbGRyZW46ZnVuY3Rpb24oSCl7dmFyIG0sVj1ILmdldEZpZWxkVmFsdWUoaS5uYW1lfHxbXSk7cmV0dXJuKDAscy5qc3gpKEUuWiwoMCx1LlopKCgwLHUuWikoe2dldFBvcHVwQ29udGFpbmVyOmZ1bmN0aW9uKHYpe3JldHVybiB2JiZ2LnBhcmVudE5vZGU/di5wYXJlbnROb2RlOnZ9LG9uT3BlbkNoYW5nZTpmdW5jdGlvbih2KXtyZXR1cm4gTih2KX0sY29udGVudDooMCxzLmpzeHMpKCJkaXYiLHtzdHlsZTp7cGFkZGluZzoiNHB4IDAifSxjaGlsZHJlbjpbKG09aS5zdGF0dXNSZW5kZXIpPT09bnVsbHx8bT09PXZvaWQgMD92b2lkIDA6bS5jYWxsKGksViksaS5zdHJlbmd0aFRleHQ/KDAscy5qc3gpKCJkaXYiLHtzdHlsZTp7bWFyZ2luVG9wOjEwfSxjaGlsZHJlbjooMCxzLmpzeCkoInNwYW4iLHtjaGlsZHJlbjppLnN0cmVuZ3RoVGV4dH0pfSk6bnVsbF19KSxvdmVybGF5U3R5bGU6e3dpZHRoOjI0MH0scGxhY2VtZW50OiJyaWdodFRvcCJ9LGkucG9wb3ZlclByb3BzKSx7fSx7b3BlbjpDLGNoaWxkcmVuOmkuY2hpbGRyZW59KSl9fSl9LGg9ZnVuY3Rpb24oaSl7dmFyIG49aS5maWVsZFByb3BzLFQ9aS5wcm9GaWVsZFByb3BzLEM9KDAsZi5aKShpLEkpLE49KDAsUy51c2VTdGF0ZSkoITEpLHo9KDAsdC5aKShOLDIpLEg9elswXSxtPXpbMV07cmV0dXJuIG4hPW51bGwmJm4uc3RhdHVzUmVuZGVyJiZDLm5hbWU/KDAscy5qc3gpKFIse25hbWU6Qy5uYW1lLHN0YXR1c1JlbmRlcjpuPT1udWxsP3ZvaWQgMDpuLnN0YXR1c1JlbmRlcixwb3BvdmVyUHJvcHM6bj09bnVsbD92b2lkIDA6bi5wb3BvdmVyUHJvcHMsc3RyZW5ndGhUZXh0Om49PW51bGw/dm9pZCAwOm4uc3RyZW5ndGhUZXh0LG9wZW46SCxvbk9wZW5DaGFuZ2U6bSxjaGlsZHJlbjooMCxzLmpzeCkoImRpdiIse2NoaWxkcmVuOigwLHMuanN4KShnLlosKDAsdS5aKSh7dmFsdWVUeXBlOiJwYXNzd29yZCIsZmllbGRQcm9wczooMCx1LlopKCgwLHUuWikoe30sKDAsRC5aKShuLFsic3RhdHVzUmVuZGVyIiwicG9wb3ZlclByb3BzIiwic3RyZW5ndGhUZXh0Il0pKSx7fSx7b25CbHVyOmZ1bmN0aW9uKCQpe3ZhciB2O249PW51bGx8fCh2PW4ub25CbHVyKT09PW51bGx8fHY9PT12b2lkIDB8fHYuY2FsbChuLCQpLG0oITEpfSxvbkNsaWNrOmZ1bmN0aW9uKCQpe3ZhciB2O249PW51bGx8fCh2PW4ub25DbGljayk9PT1udWxsfHx2PT09dm9pZCAwfHx2LmNhbGwobiwkKSxtKCEwKX19KSxwcm9GaWVsZFByb3BzOlQsZmlsZWRDb25maWc6e3ZhbHVlVHlwZTpwfX0sQykpfSl9KTooMCxzLmpzeCkoZy5aLCgwLHUuWikoe3ZhbHVlVHlwZToicGFzc3dvcmQiLGZpZWxkUHJvcHM6bixwcm9GaWVsZFByb3BzOlQsZmlsZWRDb25maWc6e3ZhbHVlVHlwZTpwfX0sQykpfSxPPWM7Ty5QYXNzd29yZD1oLE8uZGlzcGxheU5hbWU9IlByb0Zvcm1Db21wb25lbnQiLE0uWj1PfSw2NjMwOTpmdW5jdGlvbihRLE0sbyl7by5kKE0se1o6ZnVuY3Rpb24oKXtyZXR1cm4gaWV9fSk7dmFyIHQ9byg2NzI5NCksdT1vKDkzOTY3KSxmPW8ubih1KSxiPW8oOTg0MjMpLF89byg5ODc4NyksRT1vKDY5NzYwKSxEPW8oOTYxNTkpLFM9byg0NTM1MyksZz1vKDUzMTI0KSxzPW8oMTE1NjgpLEI9bygxNTA2MyksST1vKDE0NzQ3KSxwPW8oODMyNjIpLGM9byg4MzU1OSk7Y29uc3QgUj1lPT57Y29uc3R7cGFkZGluZ1hYUzphLGxpbmVXaWR0aDpkLHRhZ1BhZGRpbmdIb3Jpem9udGFsOnIsY29tcG9uZW50Q2xzOmwsY2FsYzp4fT1lLFA9eChyKS5zdWIoZCkuZXF1YWwoKSxBPXgoYSkuc3ViKGQpLmVxdWFsKCk7cmV0dXJue1tsXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sKDAsSS5XZikoZSkpLHtkaXNwbGF5OiJpbmxpbmUtYmxvY2siLGhlaWdodDoiYXV0byIsbWFyZ2luSW5saW5lRW5kOmUubWFyZ2luWFMscGFkZGluZ0lubGluZTpQLGZvbnRTaXplOmUudGFnRm9udFNpemUsbGluZUhlaWdodDplLnRhZ0xpbmVIZWlnaHQsd2hpdGVTcGFjZToibm93cmFwIixiYWNrZ3JvdW5kOmUuZGVmYXVsdEJnLGJvcmRlcjpgJHsoMCxzLmJmKShlLmxpbmVXaWR0aCl9ICR7ZS5saW5lVHlwZX0gJHtlLmNvbG9yQm9yZGVyfWAsYm9yZGVyUmFkaXVzOmUuYm9yZGVyUmFkaXVzU00sb3BhY2l0eToxLHRyYW5zaXRpb246YGFsbCAke2UubW90aW9uRHVyYXRpb25NaWR9YCx0ZXh0QWxpZ246InN0YXJ0Iixwb3NpdGlvbjoicmVsYXRpdmUiLFtgJiR7bH0tcnRsYF06e2RpcmVjdGlvbjoicnRsIn0sIiYsIGEsIGE6aG92ZXIiOntjb2xvcjplLmRlZmF1bHRDb2xvcn0sW2Ake2x9LWNsb3NlLWljb25gXTp7bWFyZ2luSW5saW5lU3RhcnQ6QSxmb250U2l6ZTplLnRhZ0ljb25TaXplLGNvbG9yOmUuY29sb3JUZXh0RGVzY3JpcHRpb24sY3Vyc29yOiJwb2ludGVyIix0cmFuc2l0aW9uOmBhbGwgJHtlLm1vdGlvbkR1cmF0aW9uTWlkfWAsIiY6aG92ZXIiOntjb2xvcjplLmNvbG9yVGV4dEhlYWRpbmd9fSxbYCYke2x9LWhhcy1jb2xvcmBdOntib3JkZXJDb2xvcjoidHJhbnNwYXJlbnQiLFtgJiwgYSwgYTpob3ZlciwgJHtlLmljb25DbHN9LWNsb3NlLCAke2UuaWNvbkNsc30tY2xvc2U6aG92ZXJgXTp7Y29sb3I6ZS5jb2xvclRleHRMaWdodFNvbGlkfX0sIiYtY2hlY2thYmxlIjp7YmFja2dyb3VuZENvbG9yOiJ0cmFuc3BhcmVudCIsYm9yZGVyQ29sb3I6InRyYW5zcGFyZW50IixjdXJzb3I6InBvaW50ZXIiLFtgJjpub3QoJHtsfS1jaGVja2FibGUtY2hlY2tlZCk6aG92ZXJgXTp7Y29sb3I6ZS5jb2xvclByaW1hcnksYmFja2dyb3VuZENvbG9yOmUuY29sb3JGaWxsU2Vjb25kYXJ5fSwiJjphY3RpdmUsICYtY2hlY2tlZCI6e2NvbG9yOmUuY29sb3JUZXh0TGlnaHRTb2xpZH0sIiYtY2hlY2tlZCI6e2JhY2tncm91bmRDb2xvcjplLmNvbG9yUHJpbWFyeSwiJjpob3ZlciI6e2JhY2tncm91bmRDb2xvcjplLmNvbG9yUHJpbWFyeUhvdmVyfX0sIiY6YWN0aXZlIjp7YmFja2dyb3VuZENvbG9yOmUuY29sb3JQcmltYXJ5QWN0aXZlfX0sIiYtaGlkZGVuIjp7ZGlzcGxheToibm9uZSJ9LFtgPiAke2UuaWNvbkNsc30gKyBzcGFuLCA+IHNwYW4gKyAke2UuaWNvbkNsc31gXTp7bWFyZ2luSW5saW5lU3RhcnQ6UH19KSxbYCR7bH0tYm9yZGVybGVzc2BdOntib3JkZXJDb2xvcjoidHJhbnNwYXJlbnQiLGJhY2tncm91bmQ6ZS50YWdCb3JkZXJsZXNzQmd9fX0saD1lPT57Y29uc3R7bGluZVdpZHRoOmEsZm9udFNpemVJY29uOmQsY2FsYzpyfT1lLGw9ZS5mb250U2l6ZVNNO3JldHVybigwLHAuSVgpKGUse3RhZ0ZvbnRTaXplOmwsdGFnTGluZUhlaWdodDooMCxzLmJmKShyKGUubGluZUhlaWdodFNNKS5tdWwobCkuZXF1YWwoKSksdGFnSWNvblNpemU6cihkKS5zdWIocihhKS5tdWwoMikpLmVxdWFsKCksdGFnUGFkZGluZ0hvcml6b250YWw6OCx0YWdCb3JkZXJsZXNzQmc6ZS5kZWZhdWx0Qmd9KX0sTz1lPT4oe2RlZmF1bHRCZzpuZXcgQi50KGUuY29sb3JGaWxsUXVhdGVybmFyeSkub25CYWNrZ3JvdW5kKGUuY29sb3JCZ0NvbnRhaW5lcikudG9IZXhTdHJpbmcoKSxkZWZhdWx0Q29sb3I6ZS5jb2xvclRleHR9KTt2YXIgWj0oMCxjLkkkKSgiVGFnIixlPT57Y29uc3QgYT1oKGUpO3JldHVybiBSKGEpfSxPKSxpPWZ1bmN0aW9uKGUsYSl7dmFyIGQ9e307Zm9yKHZhciByIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikmJmEuaW5kZXhPZihyKTwwJiYoZFtyXT1lW3JdKTtpZihlIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIGw9MCxyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7bDxyLmxlbmd0aDtsKyspYS5pbmRleE9mKHJbbF0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLHJbbF0pJiYoZFtyW2xdXT1lW3JbbF1dKTtyZXR1cm4gZH0sVD10LmZvcndhcmRSZWYoKGUsYSk9Pntjb25zdHtwcmVmaXhDbHM6ZCxzdHlsZTpyLGNsYXNzTmFtZTpsLGNoZWNrZWQ6eCxvbkNoYW5nZTpQLG9uQ2xpY2s6QX09ZSxqPWkoZSxbInByZWZpeENscyIsInN0eWxlIiwiY2xhc3NOYW1lIiwiY2hlY2tlZCIsIm9uQ2hhbmdlIiwib25DbGljayJdKSx7Z2V0UHJlZml4Q2xzOlgsdGFnOld9PXQudXNlQ29udGV4dChnLkVfKSxHPUo9PntQPT1udWxsfHxQKCF4KSxBPT1udWxsfHxBKEopfSxMPVgoInRhZyIsZCksW1ksdyxGXT1aKEwpLGs9ZigpKEwsYCR7TH0tY2hlY2thYmxlYCx7W2Ake0x9LWNoZWNrYWJsZS1jaGVja2VkYF06eH0sVz09bnVsbD92b2lkIDA6Vy5jbGFzc05hbWUsbCx3LEYpO3JldHVybiBZKHQuY3JlYXRlRWxlbWVudCgic3BhbiIsT2JqZWN0LmFzc2lnbih7fSxqLHtyZWY6YSxzdHlsZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sciksVz09bnVsbD92b2lkIDA6Vy5zdHlsZSksY2xhc3NOYW1lOmssb25DbGljazpHfSkpKX0pLEM9byg5ODcxOSk7Y29uc3QgTj1lPT4oMCxDLlopKGUsKGEsZCk9PntsZXR7dGV4dENvbG9yOnIsbGlnaHRCb3JkZXJDb2xvcjpsLGxpZ2h0Q29sb3I6eCxkYXJrQ29sb3I6UH09ZDtyZXR1cm57W2Ake2UuY29tcG9uZW50Q2xzfSR7ZS5jb21wb25lbnRDbHN9LSR7YX1gXTp7Y29sb3I6cixiYWNrZ3JvdW5kOngsYm9yZGVyQ29sb3I6bCwiJi1pbnZlcnNlIjp7Y29sb3I6ZS5jb2xvclRleHRMaWdodFNvbGlkLGJhY2tncm91bmQ6UCxib3JkZXJDb2xvcjpQfSxbYCYke2UuY29tcG9uZW50Q2xzfS1ib3JkZXJsZXNzYF06e2JvcmRlckNvbG9yOiJ0cmFuc3BhcmVudCJ9fX19KTt2YXIgej0oMCxjLmJrKShbIlRhZyIsInByZXNldCJdLGU9Pntjb25zdCBhPWgoZSk7cmV0dXJuIE4oYSl9LE8pO2Z1bmN0aW9uIEgoZSl7cmV0dXJuIHR5cGVvZiBlIT0ic3RyaW5nIj9lOmUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrZS5zbGljZSgxKX1jb25zdCBtPShlLGEsZCk9Pntjb25zdCByPUgoZCk7cmV0dXJue1tgJHtlLmNvbXBvbmVudENsc30ke2UuY29tcG9uZW50Q2xzfS0ke2F9YF06e2NvbG9yOmVbYGNvbG9yJHtkfWBdLGJhY2tncm91bmQ6ZVtgY29sb3Ike3J9QmdgXSxib3JkZXJDb2xvcjplW2Bjb2xvciR7cn1Cb3JkZXJgXSxbYCYke2UuY29tcG9uZW50Q2xzfS1ib3JkZXJsZXNzYF06e2JvcmRlckNvbG9yOiJ0cmFuc3BhcmVudCJ9fX19O3ZhciBWPSgwLGMuYmspKFsiVGFnIiwic3RhdHVzIl0sZT0+e2NvbnN0IGE9aChlKTtyZXR1cm5bbShhLCJzdWNjZXNzIiwiU3VjY2VzcyIpLG0oYSwicHJvY2Vzc2luZyIsIkluZm8iKSxtKGEsImVycm9yIiwiRXJyb3IiKSxtKGEsIndhcm5pbmciLCJXYXJuaW5nIildfSxPKSwkPWZ1bmN0aW9uKGUsYSl7dmFyIGQ9e307Zm9yKHZhciByIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikmJmEuaW5kZXhPZihyKTwwJiYoZFtyXT1lW3JdKTtpZihlIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIGw9MCxyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7bDxyLmxlbmd0aDtsKyspYS5pbmRleE9mKHJbbF0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLHJbbF0pJiYoZFtyW2xdXT1lW3JbbF1dKTtyZXR1cm4gZH07Y29uc3Qgb2U9dC5mb3J3YXJkUmVmKChlLGEpPT57Y29uc3R7cHJlZml4Q2xzOmQsY2xhc3NOYW1lOnIscm9vdENsYXNzTmFtZTpsLHN0eWxlOngsY2hpbGRyZW46UCxpY29uOkEsY29sb3I6aixvbkNsb3NlOlgsYm9yZGVyZWQ6Vz0hMCx2aXNpYmxlOkd9PWUsTD0kKGUsWyJwcmVmaXhDbHMiLCJjbGFzc05hbWUiLCJyb290Q2xhc3NOYW1lIiwic3R5bGUiLCJjaGlsZHJlbiIsImljb24iLCJjb2xvciIsIm9uQ2xvc2UiLCJib3JkZXJlZCIsInZpc2libGUiXSkse2dldFByZWZpeENsczpZLGRpcmVjdGlvbjp3LHRhZzpGfT10LnVzZUNvbnRleHQoZy5FXyksW2ssSl09dC51c2VTdGF0ZSghMCksZGU9KDAsYi5aKShMLFsiY2xvc2VJY29uIiwiY2xvc2FibGUiXSk7dC51c2VFZmZlY3QoKCk9PntHIT09dm9pZCAwJiZKKEcpfSxbR10pO2NvbnN0IHJlPSgwLF8ubzIpKGopLHRlPSgwLF8ueVQpKGopLHE9cmV8fHRlLGNlPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7YmFja2dyb3VuZENvbG9yOmomJiFxP2o6dm9pZCAwfSxGPT1udWxsP3ZvaWQgMDpGLnN0eWxlKSx4KSx5PVkoInRhZyIsZCksW3VlLHBlLHZlXT1aKHkpLFBlPWYoKSh5LEY9PW51bGw/dm9pZCAwOkYuY2xhc3NOYW1lLHtbYCR7eX0tJHtqfWBdOnEsW2Ake3l9LWhhcy1jb2xvcmBdOmomJiFxLFtgJHt5fS1oaWRkZW5gXTohayxbYCR7eX0tcnRsYF06dz09PSJydGwiLFtgJHt5fS1ib3JkZXJsZXNzYF06IVd9LHIsbCxwZSx2ZSksbmU9Sz0+e0suc3RvcFByb3BhZ2F0aW9uKCksWD09bnVsbHx8WChLKSwhSy5kZWZhdWx0UHJldmVudGVkJiZKKCExKX0sWyxnZV09KDAsRS5aKSgoMCxFLncpKGUpLCgwLEUudykoRikse2Nsb3NhYmxlOiExLGNsb3NlSWNvblJlbmRlcjpLPT57Y29uc3QgbWU9dC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmAke3l9LWNsb3NlLWljb25gLG9uQ2xpY2s6bmV9LEspO3JldHVybigwLEQud20pKEssbWUsVT0+KHtvbkNsaWNrOnNlPT57dmFyIGVlOyhlZT1VPT1udWxsP3ZvaWQgMDpVLm9uQ2xpY2spPT09bnVsbHx8ZWU9PT12b2lkIDB8fGVlLmNhbGwoVSxzZSksbmUoc2UpfSxjbGFzc05hbWU6ZigpKFU9PW51bGw/dm9pZCAwOlUuY2xhc3NOYW1lLGAke3l9LWNsb3NlLWljb25gKX0pKX19KSxmZT10eXBlb2YgTC5vbkNsaWNrPT0iZnVuY3Rpb24ifHxQJiZQLnR5cGU9PT0iYSIsbGU9QXx8bnVsbCxDZT1sZT90LmNyZWF0ZUVsZW1lbnQodC5GcmFnbWVudCxudWxsLGxlLFAmJnQuY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCxQKSk6UCxhZT10LmNyZWF0ZUVsZW1lbnQoInNwYW4iLE9iamVjdC5hc3NpZ24oe30sZGUse3JlZjphLGNsYXNzTmFtZTpQZSxzdHlsZTpjZX0pLENlLGdlLHJlJiZ0LmNyZWF0ZUVsZW1lbnQoeix7a2V5OiJwcmVzZXQiLHByZWZpeENsczp5fSksdGUmJnQuY3JlYXRlRWxlbWVudChWLHtrZXk6InN0YXR1cyIscHJlZml4Q2xzOnl9KSk7cmV0dXJuIHVlKGZlP3QuY3JlYXRlRWxlbWVudChTLlose2NvbXBvbmVudDoiVGFnIn0sYWUpOmFlKX0pO29lLkNoZWNrYWJsZVRhZz1UO3ZhciBpZT1vZX19XSk7CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzE0LjUxZGViNGZhLmFzeW5jLmpzIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy8xNC41MWRlYjRmYS5hc3luYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMzM5YzE4Ci0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy8xNC41MWRlYjRmYS5hc3luYy5qcwpAQCAtMCwwICsxIEBACisidXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W10pLnB1c2goW1sxNF0sezMxMTk5OmZ1bmN0aW9uKGllLCQsZSl7dmFyIGg9ZSgxNDEzKSx2PWUoOTEpLHM9ZSg2NzI5NCksaj1lKDkyMTc5KSxIPWUoODU4OTMpLFY9WyJmaWVsZFByb3BzIiwibWluIiwicHJvRmllbGRQcm9wcyIsIm1heCJdLHo9ZnVuY3Rpb24oaSxHKXt2YXIgSj1pLmZpZWxkUHJvcHMsUz1pLm1pbixXPWkucHJvRmllbGRQcm9wcyxnPWkubWF4LF89KDAsdi5aKShpLFYpO3JldHVybigwLEguanN4KShqLlosKDAsaC5aKSh7dmFsdWVUeXBlOiJkaWdpdCIsZmllbGRQcm9wczooMCxoLlopKHttaW46UyxtYXg6Z30sSikscmVmOkcsZmlsZWRDb25maWc6e2RlZmF1bHRQcm9wczp7d2lkdGg6IjEwMCUifX0scHJvRmllbGRQcm9wczpXfSxfKSl9LEY9cy5mb3J3YXJkUmVmKHopOyQuWj1GfSw2NDMxNzpmdW5jdGlvbihpZSwkLGUpe3ZhciBoPWUoMTQxMyksdj1lKDkxKSxzPWUoMjIyNzApLGo9ZSg2NzI5NCksSD1lKDY2NzU4KSxWPWUoOTIxNzkpLHo9ZSg4NTg5MyksRj1bImZpZWxkUHJvcHMiLCJjaGlsZHJlbiIsInBhcmFtcyIsInByb0ZpZWxkUHJvcHMiLCJtb2RlIiwidmFsdWVFbnVtIiwicmVxdWVzdCIsInNob3dTZWFyY2giLCJvcHRpb25zIl0sSz1bImZpZWxkUHJvcHMiLCJjaGlsZHJlbiIsInBhcmFtcyIsInByb0ZpZWxkUHJvcHMiLCJtb2RlIiwidmFsdWVFbnVtIiwicmVxdWVzdCIsIm9wdGlvbnMiXSxpPWZ1bmN0aW9uKF8sQil7dmFyIHc9Xy5maWVsZFByb3BzLGE9Xy5jaGlsZHJlbixuPV8ucGFyYW1zLG89Xy5wcm9GaWVsZFByb3BzLEQ9Xy5tb2RlLFo9Xy52YWx1ZUVudW0sbT1fLnJlcXVlc3QsST1fLnNob3dTZWFyY2gseD1fLm9wdGlvbnMsQz0oMCx2LlopKF8sRiksQT0oMCxqLnVzZUNvbnRleHQpKEguWik7cmV0dXJuKDAsei5qc3gpKFYuWiwoMCxoLlopKCgwLGguWikoe3ZhbHVlRW51bTooMCxzLmgpKFopLHJlcXVlc3Q6bSxwYXJhbXM6bix2YWx1ZVR5cGU6InNlbGVjdCIsZmlsZWRDb25maWc6e2N1c3RvbUxpZ2h0TW9kZTohMH0sZmllbGRQcm9wczooMCxoLlopKHtvcHRpb25zOngsbW9kZTpELHNob3dTZWFyY2g6SSxnZXRQb3B1cENvbnRhaW5lcjpBLmdldFBvcHVwQ29udGFpbmVyfSx3KSxyZWY6Qixwcm9GaWVsZFByb3BzOm99LEMpLHt9LHtjaGlsZHJlbjphfSkpfSxHPWouZm9yd2FyZFJlZihmdW5jdGlvbihnLF8pe3ZhciBCPWcuZmllbGRQcm9wcyx3PWcuY2hpbGRyZW4sYT1nLnBhcmFtcyxuPWcucHJvRmllbGRQcm9wcyxvPWcubW9kZSxEPWcudmFsdWVFbnVtLFo9Zy5yZXF1ZXN0LG09Zy5vcHRpb25zLEk9KDAsdi5aKShnLEspLHg9KDAsaC5aKSh7b3B0aW9uczptLG1vZGU6b3x8Im11bHRpcGxlIixsYWJlbEluVmFsdWU6ITAsc2hvd1NlYXJjaDohMCxzdWZmaXhJY29uOm51bGwsYXV0b0NsZWFyU2VhcmNoVmFsdWU6ITAsb3B0aW9uTGFiZWxQcm9wOiJsYWJlbCJ9LEIpLEM9KDAsai51c2VDb250ZXh0KShILlopO3JldHVybigwLHouanN4KShWLlosKDAsaC5aKSgoMCxoLlopKHt2YWx1ZUVudW06KDAscy5oKShEKSxyZXF1ZXN0OloscGFyYW1zOmEsdmFsdWVUeXBlOiJzZWxlY3QiLGZpbGVkQ29uZmlnOntjdXN0b21MaWdodE1vZGU6ITB9LGZpZWxkUHJvcHM6KDAsaC5aKSh7Z2V0UG9wdXBDb250YWluZXI6Qy5nZXRQb3B1cENvbnRhaW5lcn0seCkscmVmOl8scHJvRmllbGRQcm9wczpufSxJKSx7fSx7Y2hpbGRyZW46d30pKX0pLEo9ai5mb3J3YXJkUmVmKGkpLFM9RyxXPUo7Vy5TZWFyY2hTZWxlY3Q9UyxXLmRpc3BsYXlOYW1lPSJQcm9Gb3JtQ29tcG9uZW50IiwkLlo9V30sNTk2NjpmdW5jdGlvbihpZSwkLGUpe3ZhciBoPWUoOTc2ODUpLHY9ZSgxNDEzKSxzPWUoOTEpLGo9ZSgyMTc3MCksSD1lKDk5ODU5KSxWPWUoNTUyNDEpLHo9ZSg5ODQyMyksRj1lKDY3Mjk0KSxLPWUoOTIxNzkpLGk9ZSg4NTg5MyksRz1bImZpZWxkUHJvcHMiLCJwcm9GaWVsZFByb3BzIl0sSj1bImZpZWxkUHJvcHMiLCJwcm9GaWVsZFByb3BzIl0sUz0idGV4dCIsVz1mdW5jdGlvbihhKXt2YXIgbj1hLmZpZWxkUHJvcHMsbz1hLnByb0ZpZWxkUHJvcHMsRD0oMCxzLlopKGEsRyk7cmV0dXJuKDAsaS5qc3gpKEsuWiwoMCx2LlopKHt2YWx1ZVR5cGU6UyxmaWVsZFByb3BzOm4sZmlsZWRDb25maWc6e3ZhbHVlVHlwZTpTfSxwcm9GaWVsZFByb3BzOm99LEQpKX0sZz1mdW5jdGlvbihhKXt2YXIgbj0oMCxqLlopKGEub3Blbnx8ITEse3ZhbHVlOmEub3BlbixvbkNoYW5nZTphLm9uT3BlbkNoYW5nZX0pLG89KDAsaC5aKShuLDIpLEQ9b1swXSxaPW9bMV07cmV0dXJuKDAsaS5qc3gpKEguWi5JdGVtLHtzaG91bGRVcGRhdGU6ITAsbm9TdHlsZTohMCxjaGlsZHJlbjpmdW5jdGlvbihJKXt2YXIgeCxDPUkuZ2V0RmllbGRWYWx1ZShhLm5hbWV8fFtdKTtyZXR1cm4oMCxpLmpzeCkoVi5aLCgwLHYuWikoKDAsdi5aKSh7Z2V0UG9wdXBDb250YWluZXI6ZnVuY3Rpb24oRSl7cmV0dXJuIEUmJkUucGFyZW50Tm9kZT9FLnBhcmVudE5vZGU6RX0sb25PcGVuQ2hhbmdlOmZ1bmN0aW9uKEUpe3JldHVybiBaKEUpfSxjb250ZW50OigwLGkuanN4cykoImRpdiIse3N0eWxlOntwYWRkaW5nOiI0cHggMCJ9LGNoaWxkcmVuOlsoeD1hLnN0YXR1c1JlbmRlcik9PT1udWxsfHx4PT09dm9pZCAwP3ZvaWQgMDp4LmNhbGwoYSxDKSxhLnN0cmVuZ3RoVGV4dD8oMCxpLmpzeCkoImRpdiIse3N0eWxlOnttYXJnaW5Ub3A6MTB9LGNoaWxkcmVuOigwLGkuanN4KSgic3BhbiIse2NoaWxkcmVuOmEuc3RyZW5ndGhUZXh0fSl9KTpudWxsXX0pLG92ZXJsYXlTdHlsZTp7d2lkdGg6MjQwfSxwbGFjZW1lbnQ6InJpZ2h0VG9wIn0sYS5wb3BvdmVyUHJvcHMpLHt9LHtvcGVuOkQsY2hpbGRyZW46YS5jaGlsZHJlbn0pKX19KX0sXz1mdW5jdGlvbihhKXt2YXIgbj1hLmZpZWxkUHJvcHMsbz1hLnByb0ZpZWxkUHJvcHMsRD0oMCxzLlopKGEsSiksWj0oMCxGLnVzZVN0YXRlKSghMSksbT0oMCxoLlopKFosMiksST1tWzBdLHg9bVsxXTtyZXR1cm4gbiE9bnVsbCYmbi5zdGF0dXNSZW5kZXImJkQubmFtZT8oMCxpLmpzeCkoZyx7bmFtZTpELm5hbWUsc3RhdHVzUmVuZGVyOm49PW51bGw/dm9pZCAwOm4uc3RhdHVzUmVuZGVyLHBvcG92ZXJQcm9wczpuPT1udWxsP3ZvaWQgMDpuLnBvcG92ZXJQcm9wcyxzdHJlbmd0aFRleHQ6bj09bnVsbD92b2lkIDA6bi5zdHJlbmd0aFRleHQsb3BlbjpJLG9uT3BlbkNoYW5nZTp4LGNoaWxkcmVuOigwLGkuanN4KSgiZGl2Iix7Y2hpbGRyZW46KDAsaS5qc3gpKEsuWiwoMCx2LlopKHt2YWx1ZVR5cGU6InBhc3N3b3JkIixmaWVsZFByb3BzOigwLHYuWikoKDAsdi5aKSh7fSwoMCx6LlopKG4sWyJzdGF0dXNSZW5kZXIiLCJwb3BvdmVyUHJvcHMiLCJzdHJlbmd0aFRleHQiXSkpLHt9LHtvbkJsdXI6ZnVuY3Rpb24oQSl7dmFyIEU7bj09bnVsbHx8KEU9bi5vbkJsdXIpPT09bnVsbHx8RT09PXZvaWQgMHx8RS5jYWxsKG4sQSkseCghMSl9LG9uQ2xpY2s6ZnVuY3Rpb24oQSl7dmFyIEU7bj09bnVsbHx8KEU9bi5vbkNsaWNrKT09PW51bGx8fEU9PT12b2lkIDB8fEUuY2FsbChuLEEpLHgoITApfX0pLHByb0ZpZWxkUHJvcHM6byxmaWxlZENvbmZpZzp7dmFsdWVUeXBlOlN9fSxEKSl9KX0pOigwLGkuanN4KShLLlosKDAsdi5aKSh7dmFsdWVUeXBlOiJwYXNzd29yZCIsZmllbGRQcm9wczpuLHByb0ZpZWxkUHJvcHM6byxmaWxlZENvbmZpZzp7dmFsdWVUeXBlOlN9fSxEKSl9LEI9VztCLlBhc3N3b3JkPV8sQi5kaXNwbGF5TmFtZT0iUHJvRm9ybUNvbXBvbmVudCIsJC5aPUJ9LDIwMDE0OmZ1bmN0aW9uKGllLCQsZSl7ZS5yKCQpO3ZhciBoPWUoMTUwMDkpLHY9ZS5uKGgpLHM9ZSg5Nzg1Nyksaj1lLm4ocyksSD1lKDk5Mjg5KSxWPWUubihIKSx6PWUoNTU3NCksRj1lLm4oeiksSz1lKDY3Mjk0KSxpPWUoOTk4NTkpLEc9ZSgxNzc4OCksSj1lKDcxMjMwKSxTPWUoMTU3NDYpLFc9ZSg4NDU2NyksZz1lKDIwODYzKSxfPWUoNzY3NzIpLEI9ZSg5NzI2OSksdz1lKDMxMTk5KSxhPWUoNTk2Niksbj1lKDY0MzE3KSxvPWUoODU4OTMpLEQ9ZnVuY3Rpb24obSl7dmFyIEk9aS5aLnVzZUZvcm0oKSx4PUYoKShJLDEpLEM9eFswXSxBPW0uZGVwdFRyZWUsRT1tLmRlcHRDaGVja2VkS2V5cyx1ZT0oMCxLLnVzZVN0YXRlKSgiMSIpLGNlPUYoKSh1ZSwyKSxQZT1jZVswXSxfZT1jZVsxXSxsZT0oMCxLLnVzZVN0YXRlKShbXSkscGU9RigpKGxlLDIpLGw9cGVbMF0sdT1wZVsxXSxwPSgwLEsudXNlU3RhdGUpKFtdKSxyPUYoKShwLDIpLGQ9clswXSx0PXJbMV0sYz0oMCxLLnVzZVN0YXRlKSghMCksZj1GKCkoYywyKSx5PWZbMF0sTT1mWzFdOygwLEsudXNlRWZmZWN0KShmdW5jdGlvbigpe3UoRSksQy5yZXNldEZpZWxkcygpLEMuc2V0RmllbGRzVmFsdWUoe3JvbGVJZDptLnZhbHVlcy5yb2xlSWQscm9sZU5hbWU6bS52YWx1ZXMucm9sZU5hbWUscm9sZUtleTptLnZhbHVlcy5yb2xlS2V5LGRhdGFTY29wZTptLnZhbHVlcy5kYXRhU2NvcGV9KSxfZShtLnZhbHVlcy5kYXRhU2NvcGUpfSxbbS52YWx1ZXNdKTt2YXIgTD0oMCxfLnVzZUludGwpKCksdGU9ZnVuY3Rpb24oKXtDLnN1Ym1pdCgpfSxuZT1mdW5jdGlvbigpe20ub25DYW5jZWwoKX0scmU9ZnVuY3Rpb24oKXt2YXIgTz1WKCkodigpKCkubWFyayhmdW5jdGlvbiBQKGIpe3JldHVybiB2KCkoKS53cmFwKGZ1bmN0aW9uKGVlKXtmb3IoOzspc3dpdGNoKGVlLnByZXY9ZWUubmV4dCl7Y2FzZSAwOm0ub25TdWJtaXQoaigpKGooKSh7fSxiKSx7fSx7ZGVwdElkczpsfSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGVlLnN0b3AoKX19LFApfSkpO3JldHVybiBmdW5jdGlvbihiKXtyZXR1cm4gTy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLGFlPWZ1bmN0aW9uIE8oUCl7dmFyIGI9W107cmV0dXJuIFAuZm9yRWFjaChmdW5jdGlvbihUKXtiLnB1c2goVC5rZXkpLFQuY2hpbGRyZW4mJihiPWIuY29uY2F0KE8oVC5jaGlsZHJlbikpKX0pLGJ9LGs9YWUoQSkscT1mdW5jdGlvbihQKXtQLmluY2x1ZGVzKCJkZXB0RXhwYW5kIik/dChrKTp0KFtdKSxQLmluY2x1ZGVzKCJkZXB0Tm9kZUFsbCIpP3Uoayk6dShbXSksUC5pbmNsdWRlcygiZGVwdENoZWNrU3RyaWN0bHkiKT9NKCExKTpNKCEwKX07cmV0dXJuKDAsby5qc3gpKEcuWix7d2lkdGg6NjQwLHRpdGxlOkwuZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS51c2VyLmF1dGgucm9sZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NTIwNlx1OTE0RFx1ODlEMlx1ODI3MiJ9KSxvcGVuOm0ub3BlbixkZXN0cm95T25DbG9zZTohMCxmb3JjZVJlbmRlcjohMCxvbk9rOnRlLG9uQ2FuY2VsOm5lLGNoaWxkcmVuOigwLG8uanN4cykoQi5BLHtmb3JtOkMsZ3JpZDohMCxsYXlvdXQ6Imhvcml6b250YWwiLG9uRmluaXNoOnJlLGluaXRpYWxWYWx1ZXM6e2xvZ2luX3Bhc3N3b3JkOiIiLGNvbmZpcm1fcGFzc3dvcmQ6IiJ9LGNoaWxkcmVuOlsoMCxvLmpzeCkody5aLHtuYW1lOiJyb2xlSWQiLGxhYmVsOkwuZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5yb2xlLnJvbGVfaWQiLGRlZmF1bHRNZXNzYWdlOiJcdTg5RDJcdTgyNzJcdTdGMTZcdTUzRjcifSksY29sUHJvcHM6e21kOjEyLHhsOjEyfSxwbGFjZWhvbGRlcjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU4OUQyXHU4MjcyXHU3RjE2XHU1M0Y3IixkaXNhYmxlZDohMCxoaWRkZW46ITAscnVsZXM6W3tyZXF1aXJlZDohMSxtZXNzYWdlOigwLG8uanN4KShfLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTg5RDJcdTgyNzJcdTdGMTZcdTUzRjdcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTg5RDJcdTgyNzJcdTdGMTZcdTUzRjdcdUZGMDEifSl9XX0pLCgwLG8uanN4KShhLlose25hbWU6InJvbGVOYW1lIixsYWJlbDpMLmZvcm1hdE1lc3NhZ2Uoe2lkOiJzeXN0ZW0ucm9sZS5yb2xlX25hbWUiLGRlZmF1bHRNZXNzYWdlOiJcdTg5RDJcdTgyNzJcdTU0MERcdTc5RjAifSksZGlzYWJsZWQ6ITAscGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1ODlEMlx1ODI3Mlx1NTQwRFx1NzlGMCIscnVsZXM6W3tyZXF1aXJlZDohMCxtZXNzYWdlOigwLG8uanN4KShfLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTg5RDJcdTgyNzJcdTU0MERcdTc5RjBcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTg5RDJcdTgyNzJcdTU0MERcdTc5RjBcdUZGMDEifSl9XX0pLCgwLG8uanN4KShhLlose25hbWU6InJvbGVLZXkiLGxhYmVsOkwuZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5yb2xlLnJvbGVfa2V5IixkZWZhdWx0TWVzc2FnZToiXHU2NzQzXHU5NjUwXHU1QjU3XHU3QjI2XHU0RTMyIn0pLGRpc2FibGVkOiEwLHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdTg5RDJcdTgyNzJcdTY3NDNcdTk2NTBcdTVCNTdcdTdCMjZcdTRFMzIiLHJ1bGVzOlt7cmVxdWlyZWQ6ITAsbWVzc2FnZTooMCxvLmpzeCkoXy5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU4OUQyXHU4MjcyXHU2NzQzXHU5NjUwXHU1QjU3XHU3QjI2XHU0RTMyXHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU4OUQyXHU4MjcyXHU2NzQzXHU5NjUwXHU1QjU3XHU3QjI2XHU0RTMyXHVGRjAxIn0pfV19KSwoMCxvLmpzeCkobi5aLHtuYW1lOiJkYXRhU2NvcGUiLGxhYmVsOiJcdTY3NDNcdTk2NTBcdTgzMDNcdTU2RjQiLGluaXRpYWxWYWx1ZToiMSIscGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NzUyOFx1NjIzN1x1NjAyN1x1NTIyQiIsdmFsdWVFbnVtOnsxOiJcdTUxNjhcdTkwRThcdTY1NzBcdTYzNkVcdTY3NDNcdTk2NTAiLDI6Ilx1ODFFQVx1NUI5QVx1NjU3MFx1NjM2RVx1Njc0M1x1OTY1MCIsMzoiXHU2NzJDXHU5MEU4XHU5NUU4XHU2NTcwXHU2MzZFXHU2NzQzXHU5NjUwIiw0OiJcdTY3MkNcdTkwRThcdTk1RThcdTUzQ0FcdTRFRTVcdTRFMEJcdTY1NzBcdTYzNkVcdTY3NDNcdTk2NTAiLDU6Ilx1NEVDNVx1NjcyQ1x1NEVCQVx1NjU3MFx1NjM2RVx1Njc0M1x1OTY1MCJ9LHJ1bGVzOlt7cmVxdWlyZWQ6ITB9XSxmaWVsZFByb3BzOntvbkNoYW5nZTpmdW5jdGlvbihQKXtfZShQKX19fSksKDAsby5qc3gpKEIuQS5JdGVtLHtuYW1lOiJkZXB0SWRzIixsYWJlbDpMLmZvcm1hdE1lc3NhZ2Uoe2lkOiJzeXN0ZW0ucm9sZS5hdXRoIixkZWZhdWx0TWVzc2FnZToiXHU4M0RDXHU1MzU1XHU2NzQzXHU5NjUwIn0pLHJlcXVpcmVkOlBlPT09IjEiLGhpZGRlbjpQZSE9PSIxIixjaGlsZHJlbjooMCxvLmpzeHMpKEouWix7Z3V0dGVyOlsxNiwxNl0sY2hpbGRyZW46WygwLG8uanN4KShTLlose21kOjI0LGNoaWxkcmVuOigwLG8uanN4KShXLlouR3JvdXAse29wdGlvbnM6W3tsYWJlbDoiXHU1QzU1XHU1RjAwL1x1NjI5OFx1NTNFMCIsdmFsdWU6ImRlcHRFeHBhbmQifSx7bGFiZWw6Ilx1NTE2OFx1OTAwOS9cdTUxNjhcdTRFMERcdTkwMDkiLHZhbHVlOiJkZXB0Tm9kZUFsbCJ9XSxvbkNoYW5nZTpxfSl9KSwoMCxvLmpzeCkoUy5aLHttZDoyNCxjaGlsZHJlbjooMCxvLmpzeCkoZy5aLHtjaGVja2FibGU6ITAsY2hlY2tTdHJpY3RseTp5LGV4cGFuZGVkS2V5czpkLHRyZWVEYXRhOkEsY2hlY2tlZEtleXM6bCxkZWZhdWx0Q2hlY2tlZEtleXM6RSxvbkNoZWNrOmZ1bmN0aW9uKFAsYil7cmV0dXJuIGNvbnNvbGUubG9nKFAsYiksdSh5P1AuY2hlY2tlZDp7Y2hlY2tlZDpQLGhhbGZDaGVja2VkOmIuaGFsZkNoZWNrZWRLZXlzfSl9LG9uRXhwYW5kOmZ1bmN0aW9uKFApe3QoZC5jb25jYXQoUCkpfX0pfSldfSl9KV19KX0pfTskLmRlZmF1bHQ9RH0sMjA4NjM6ZnVuY3Rpb24oaWUsJCxlKXtlLmQoJCx7WjpmdW5jdGlvbigpe3JldHVybiBwZX19KTt2YXIgaD1lKDcwNTkzKSx2PWUoNzQ5MDIpLHM9ZSg2NzI5NCksaj1lKDI2OTExKSxIPWUoOTU1OTEpLFY9ZSgzMjMxOSksej1lKDkzOTY3KSxGPWUubih6KSxLPWUoMTAyMjUpLGk9ZSgxMDg5KSxHPWUoNTMxMjQpLEo9ZSgyOTc1MSksUz1lKDMzNjAzKSxXPWUoMjk2OTEpLGc9ZSg0MDU2MSk7Y29uc3QgXz00O2Z1bmN0aW9uIEIobCl7Y29uc3R7ZHJvcFBvc2l0aW9uOnUsZHJvcExldmVsT2Zmc2V0OnAscHJlZml4Q2xzOnIsaW5kZW50OmQsZGlyZWN0aW9uOnQ9Imx0ciJ9PWwsYz10PT09Imx0ciI/ImxlZnQiOiJyaWdodCIsZj10PT09Imx0ciI/InJpZ2h0IjoibGVmdCIseT17W2NdOi1wKmQrXyxbZl06MH07c3dpdGNoKHUpe2Nhc2UtMTp5LnRvcD0tMzticmVhaztjYXNlIDE6eS5ib3R0b209LTM7YnJlYWs7ZGVmYXVsdDp5LmJvdHRvbT0tMyx5W2NdPWQrXzticmVha31yZXR1cm4gcy5jcmVhdGVFbGVtZW50KCJkaXYiLHtzdHlsZTp5LGNsYXNzTmFtZTpgJHtyfS1kcm9wLWluZGljYXRvcmB9KX12YXIgdz1CLGE9ZSg2MTYzOSksbz1zLmZvcndhcmRSZWYoKGwsdSk9Pnt2YXIgcDtjb25zdHtnZXRQcmVmaXhDbHM6cixkaXJlY3Rpb246ZCx2aXJ0dWFsOnQsdHJlZTpjfT1zLnVzZUNvbnRleHQoRy5FXykse3ByZWZpeENsczpmLGNsYXNzTmFtZTp5LHNob3dJY29uOk09ITEsc2hvd0xpbmU6TCxzd2l0Y2hlckljb246dGUsc3dpdGNoZXJMb2FkaW5nSWNvbjpuZSxibG9ja05vZGU6cmU9ITEsY2hpbGRyZW46YWUsY2hlY2thYmxlOms9ITEsc2VsZWN0YWJsZTpxPSEwLGRyYWdnYWJsZTpPLG1vdGlvbjpQLHN0eWxlOmJ9PWwsVD1yKCJ0cmVlIixmKSxlZT1yKCksZGU9UCE9bnVsbD9QOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwoMCxTLlopKGVlKSkse21vdGlvbkFwcGVhcjohMX0pLHZlPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxsKSx7Y2hlY2thYmxlOmssc2VsZWN0YWJsZTpxLHNob3dJY29uOk0sbW90aW9uOmRlLGJsb2NrTm9kZTpyZSxzaG93TGluZTohIUwsZHJvcEluZGljYXRvclJlbmRlcjp3fSksW1EsVSxZXT0oMCxnLlpQKShUKSxbLHNlXT0oMCxXLlpQKSgpLG9lPXNlLnBhZGRpbmdYUy8yKygoKHA9c2UuVHJlZSk9PT1udWxsfHxwPT09dm9pZCAwP3ZvaWQgMDpwLnRpdGxlSGVpZ2h0KXx8c2UuY29udHJvbEhlaWdodFNNKSxFZT1zLnVzZU1lbW8oKCk9PntpZighTylyZXR1cm4hMTtsZXQgUj17fTtzd2l0Y2godHlwZW9mIE8pe2Nhc2UiZnVuY3Rpb24iOlIubm9kZURyYWdnYWJsZT1PO2JyZWFrO2Nhc2Uib2JqZWN0IjpSPU9iamVjdC5hc3NpZ24oe30sTyk7YnJlYWs7ZGVmYXVsdDpicmVha31yZXR1cm4gUi5pY29uIT09ITEmJihSLmljb249Ui5pY29ufHxzLmNyZWF0ZUVsZW1lbnQoSi5aLG51bGwpKSxSfSxbT10pLE49Uj0+cy5jcmVhdGVFbGVtZW50KGEuWix7cHJlZml4Q2xzOlQsc3dpdGNoZXJJY29uOnRlLHN3aXRjaGVyTG9hZGluZ0ljb246bmUsdHJlZU5vZGVQcm9wczpSLHNob3dMaW5lOkx9KTtyZXR1cm4gUShzLmNyZWF0ZUVsZW1lbnQoaC5aUCxPYmplY3QuYXNzaWduKHtpdGVtSGVpZ2h0Om9lLHJlZjp1LHZpcnR1YWw6dH0sdmUse3N0eWxlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxjPT1udWxsP3ZvaWQgMDpjLnN0eWxlKSxiKSxwcmVmaXhDbHM6VCxjbGFzc05hbWU6RigpKHtbYCR7VH0taWNvbi1oaWRlYF06IU0sW2Ake1R9LWJsb2NrLW5vZGVgXTpyZSxbYCR7VH0tdW5zZWxlY3RhYmxlYF06IXEsW2Ake1R9LXJ0bGBdOmQ9PT0icnRsIn0sYz09bnVsbD92b2lkIDA6Yy5jbGFzc05hbWUseSxVLFkpLGRpcmVjdGlvbjpkLGNoZWNrYWJsZTprJiZzLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6YCR7VH0tY2hlY2tib3gtaW5uZXJgfSksc2VsZWN0YWJsZTpxLHN3aXRjaGVySWNvbjpOLGRyYWdnYWJsZTpFZX0pLGFlKSl9KTtjb25zdCBEPTAsWj0xLG09MjtmdW5jdGlvbiBJKGwsdSxwKXtjb25zdHtrZXk6cixjaGlsZHJlbjpkfT1wO2Z1bmN0aW9uIHQoYyl7Y29uc3QgZj1jW3JdLHk9Y1tkXTt1KGYsYykhPT0hMSYmSSh5fHxbXSx1LHApfWwuZm9yRWFjaCh0KX1mdW5jdGlvbiB4KGwpe2xldHt0cmVlRGF0YTp1LGV4cGFuZGVkS2V5czpwLHN0YXJ0S2V5OnIsZW5kS2V5OmQsZmllbGROYW1lczp0fT1sO2NvbnN0IGM9W107bGV0IGY9RDtpZihyJiZyPT09ZClyZXR1cm5bcl07aWYoIXJ8fCFkKXJldHVybltdO2Z1bmN0aW9uIHkoTSl7cmV0dXJuIE09PT1yfHxNPT09ZH1yZXR1cm4gSSh1LE09PntpZihmPT09bSlyZXR1cm4hMTtpZih5KE0pKXtpZihjLnB1c2goTSksZj09PUQpZj1aO2Vsc2UgaWYoZj09PVopcmV0dXJuIGY9bSwhMX1lbHNlIGY9PT1aJiZjLnB1c2goTSk7cmV0dXJuIHAuaW5jbHVkZXMoTSl9LCgwLGkudyQpKHQpKSxjfWZ1bmN0aW9uIEMobCx1LHApe2NvbnN0IHI9KDAsdi5aKSh1KSxkPVtdO3JldHVybiBJKGwsKHQsYyk9Pntjb25zdCBmPXIuaW5kZXhPZih0KTtyZXR1cm4gZiE9PS0xJiYoZC5wdXNoKGMpLHIuc3BsaWNlKGYsMSkpLCEhci5sZW5ndGh9LCgwLGkudyQpKHApKSxkfXZhciBBPWZ1bmN0aW9uKGwsdSl7dmFyIHA9e307Zm9yKHZhciByIGluIGwpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGwscikmJnUuaW5kZXhPZihyKTwwJiYocFtyXT1sW3JdKTtpZihsIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIGQ9MCxyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMobCk7ZDxyLmxlbmd0aDtkKyspdS5pbmRleE9mKHJbZF0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChsLHJbZF0pJiYocFtyW2RdXT1sW3JbZF1dKTtyZXR1cm4gcH07ZnVuY3Rpb24gRShsKXtjb25zdHtpc0xlYWY6dSxleHBhbmRlZDpwfT1sO3JldHVybiB1P3MuY3JlYXRlRWxlbWVudChqLlosbnVsbCk6cD9zLmNyZWF0ZUVsZW1lbnQoSC5aLG51bGwpOnMuY3JlYXRlRWxlbWVudChWLlosbnVsbCl9ZnVuY3Rpb24gdWUobCl7bGV0e3RyZWVEYXRhOnUsY2hpbGRyZW46cH09bDtyZXR1cm4gdXx8KDAsaS56bikocCl9Y29uc3QgY2U9KGwsdSk9Pnt2YXJ7ZGVmYXVsdEV4cGFuZEFsbDpwLGRlZmF1bHRFeHBhbmRQYXJlbnQ6cixkZWZhdWx0RXhwYW5kZWRLZXlzOmR9PWwsdD1BKGwsWyJkZWZhdWx0RXhwYW5kQWxsIiwiZGVmYXVsdEV4cGFuZFBhcmVudCIsImRlZmF1bHRFeHBhbmRlZEtleXMiXSk7Y29uc3QgYz1zLnVzZVJlZihudWxsKSxmPXMudXNlUmVmKG51bGwpLHk9KCk9Pntjb25zdHtrZXlFbnRpdGllczpRfT0oMCxpLkk4KSh1ZSh0KSk7bGV0IFU7cmV0dXJuIHA/VT1PYmplY3Qua2V5cyhRKTpyP1U9KDAsSy5yNykodC5leHBhbmRlZEtleXN8fGR8fFtdLFEpOlU9dC5leHBhbmRlZEtleXN8fGR8fFtdLFV9LFtNLExdPXMudXNlU3RhdGUodC5zZWxlY3RlZEtleXN8fHQuZGVmYXVsdFNlbGVjdGVkS2V5c3x8W10pLFt0ZSxuZV09cy51c2VTdGF0ZSgoKT0+eSgpKTtzLnVzZUVmZmVjdCgoKT0+eyJzZWxlY3RlZEtleXMiaW4gdCYmTCh0LnNlbGVjdGVkS2V5cyl9LFt0LnNlbGVjdGVkS2V5c10pLHMudXNlRWZmZWN0KCgpPT57ImV4cGFuZGVkS2V5cyJpbiB0JiZuZSh0LmV4cGFuZGVkS2V5cyl9LFt0LmV4cGFuZGVkS2V5c10pO2NvbnN0IHJlPShRLFUpPT57dmFyIFk7cmV0dXJuImV4cGFuZGVkS2V5cyJpbiB0fHxuZShRKSwoWT10Lm9uRXhwYW5kKT09PW51bGx8fFk9PT12b2lkIDA/dm9pZCAwOlkuY2FsbCh0LFEsVSl9LGFlPShRLFUpPT57dmFyIFk7Y29uc3R7bXVsdGlwbGU6c2UsZmllbGROYW1lczpvZX09dCx7bm9kZTpFZSxuYXRpdmVFdmVudDpOfT1VLHtrZXk6Uj0iIn09RWUsbWU9dWUodCksZmU9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LFUpLHtzZWxlY3RlZDohMH0pLGhlPShOPT1udWxsP3ZvaWQgMDpOLmN0cmxLZXkpfHwoTj09bnVsbD92b2lkIDA6Ti5tZXRhS2V5KSxnZT1OPT1udWxsP3ZvaWQgMDpOLnNoaWZ0S2V5O2xldCBYO3NlJiZoZT8oWD1RLGMuY3VycmVudD1SLGYuY3VycmVudD1YLGZlLnNlbGVjdGVkTm9kZXM9QyhtZSxYLG9lKSk6c2UmJmdlPyhYPUFycmF5LmZyb20obmV3IFNldChbXS5jb25jYXQoKDAsdi5aKShmLmN1cnJlbnR8fFtdKSwoMCx2LlopKHgoe3RyZWVEYXRhOm1lLGV4cGFuZGVkS2V5czp0ZSxzdGFydEtleTpSLGVuZEtleTpjLmN1cnJlbnQsZmllbGROYW1lczpvZX0pKSkpKSxmZS5zZWxlY3RlZE5vZGVzPUMobWUsWCxvZSkpOihYPVtSXSxjLmN1cnJlbnQ9UixmLmN1cnJlbnQ9WCxmZS5zZWxlY3RlZE5vZGVzPUMobWUsWCxvZSkpLChZPXQub25TZWxlY3QpPT09bnVsbHx8WT09PXZvaWQgMHx8WS5jYWxsKHQsWCxmZSksInNlbGVjdGVkS2V5cyJpbiB0fHxMKFgpfSx7Z2V0UHJlZml4Q2xzOmssZGlyZWN0aW9uOnF9PXMudXNlQ29udGV4dChHLkVfKSx7cHJlZml4Q2xzOk8sY2xhc3NOYW1lOlAsc2hvd0ljb246Yj0hMCxleHBhbmRBY3Rpb246VD0iY2xpY2sifT10LGVlPUEodCxbInByZWZpeENscyIsImNsYXNzTmFtZSIsInNob3dJY29uIiwiZXhwYW5kQWN0aW9uIl0pLGRlPWsoInRyZWUiLE8pLHZlPUYoKShgJHtkZX0tZGlyZWN0b3J5YCx7W2Ake2RlfS1kaXJlY3RvcnktcnRsYF06cT09PSJydGwifSxQKTtyZXR1cm4gcy5jcmVhdGVFbGVtZW50KG8sT2JqZWN0LmFzc2lnbih7aWNvbjpFLHJlZjp1LGJsb2NrTm9kZTohMH0sZWUse3Nob3dJY29uOmIsZXhwYW5kQWN0aW9uOlQscHJlZml4Q2xzOmRlLGNsYXNzTmFtZTp2ZSxleHBhbmRlZEtleXM6dGUsc2VsZWN0ZWRLZXlzOk0sb25TZWxlY3Q6YWUsb25FeHBhbmQ6cmV9KSl9O3ZhciBfZT1zLmZvcndhcmRSZWYoY2UpO2NvbnN0IGxlPW87bGUuRGlyZWN0b3J5VHJlZT1fZSxsZS5UcmVlTm9kZT1oLk9GO3ZhciBwZT1sZX19XSk7CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzE0MTQuNzA5MDgxNTUuYXN5bmMuanMgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzE0MTQuNzA5MDgxNTUuYXN5bmMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmI1ZTUwZQotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvMTQxNC43MDkwODE1NS5hc3luYy5qcwpAQCAtMCwwICsxIEBACisidXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W10pLnB1c2goW1sxNDE0XSx7MjE0MTQ6ZnVuY3Rpb24oVSx4LGUpe2Uucih4KSxlLmQoeCx7ZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybiBQfX0pO3ZhciBNPWUoOTc4NTcpLGo9ZS5uKE0pLEw9ZSgxNTAwOSkscz1lLm4oTCksQz1lKDk5Mjg5KSxjPWUubihDKSxtPWUoMjQ1MyksRD1lKDgzNjIyKSxPPWUoMTc3ODgpLGg9ZSg2NzI5NCkscj1lKDc2NzcyKTtmdW5jdGlvbiBSKHUpe3JldHVybiBwLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBwKCl7cmV0dXJuIHA9YygpKHMoKSgpLm1hcmsoZnVuY3Rpb24gdShpKXtyZXR1cm4gcygpKCkud3JhcChmdW5jdGlvbih0KXtmb3IoOzspc3dpdGNoKHQucHJldj10Lm5leHQpe2Nhc2UgMDpyZXR1cm4gdC5hYnJ1cHQoInJldHVybiIsKDAsci5yZXF1ZXN0KSgiL2FwaS9tb25pdG9yL29ubGluZS9saXN0Iix7bWV0aG9kOiJHRVQiLHBhcmFtczppfSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIHQuc3RvcCgpfX0sdSl9KSkscC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gdyh1KXtyZXR1cm4gZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gZygpe3JldHVybiBnPWMoKShzKCkoKS5tYXJrKGZ1bmN0aW9uIHUoaSl7cmV0dXJuIHMoKSgpLndyYXAoZnVuY3Rpb24odCl7Zm9yKDs7KXN3aXRjaCh0LnByZXY9dC5uZXh0KXtjYXNlIDA6cmV0dXJuIHQuYWJydXB0KCJyZXR1cm4iLCgwLHIucmVxdWVzdCkoIi9hcGkvbW9uaXRvci9vbmxpbmUvIi5jb25jYXQoaSkse21ldGhvZDoiREVMRVRFIn0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiB0LnN0b3AoKX19LHUpfSkpLGcuYXBwbHkodGhpcyxhcmd1bWVudHMpfXZhciBCPWUoNjUzODUpLEU9ZSg0ODY4OSksbj1lKDg1ODkzKSxTPWZ1bmN0aW9uKCl7dmFyIHU9YygpKHMoKSgpLm1hcmsoZnVuY3Rpb24gaShvKXt2YXIgdDtyZXR1cm4gcygpKCkud3JhcChmdW5jdGlvbihhKXtmb3IoOzspc3dpdGNoKGEucHJldj1hLm5leHQpe2Nhc2UgMDpyZXR1cm4gdD1tLlpQLmxvYWRpbmcoIlx1NkI2M1x1NTcyOFx1NUYzQVx1NTIzNlx1NEUwQlx1N0VCRiIpLGEucHJldj0xLGEubmV4dD00LHcoby50b2tlbklkKTtjYXNlIDQ6cmV0dXJuIHQoKSxtLlpQLnN1Y2Nlc3MoIlx1NUYzQVx1NTIzNlx1NEUwQlx1N0VCRlx1NjIxMFx1NTI5Rlx1RkYwQ1x1NTM3M1x1NUMwNlx1NTIzN1x1NjVCMCIpLGEuYWJydXB0KCJyZXR1cm4iLCEwKTtjYXNlIDk6cmV0dXJuIGEucHJldj05LGEudDA9YS5jYXRjaCgxKSx0KCksbS5aUC5lcnJvcigiXHU1RjNBXHU1MjM2XHU0RTBCXHU3RUJGXHU1OTMxXHU4RDI1XHVGRjBDXHU4QkY3XHU5MUNEXHU4QkQ1IiksYS5hYnJ1cHQoInJldHVybiIsITEpO2Nhc2UgMTQ6Y2FzZSJlbmQiOnJldHVybiBhLnN0b3AoKX19LGksbnVsbCxbWzEsOV1dKX0pKTtyZXR1cm4gZnVuY3Rpb24obyl7cmV0dXJuIHUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSxaPWZ1bmN0aW9uKCl7dmFyIGk9KDAsaC51c2VSZWYpKCksbz0oMCxoLnVzZVJlZikoKSx0PSgwLHIudXNlQWNjZXNzKSgpLHk9KDAsci51c2VJbnRsKSgpOygwLGgudXNlRWZmZWN0KShmdW5jdGlvbigpe30sW10pO3ZhciBhPVt7dGl0bGU6KDAsbi5qc3gpKHIuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3Iub25saW5lLnVzZXIudG9rZW5faWQiLGRlZmF1bHRNZXNzYWdlOiJcdTRGMUFcdThCRERcdTdGMTZcdTUzRjcifSksZGF0YUluZGV4OiJ0b2tlbklkIix2YWx1ZVR5cGU6InRleHQiLGhpZGVJblNlYXJjaDohMH0se3RpdGxlOigwLG4uanN4KShyLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJtb25pdG9yLm9ubGluZS51c2VyLnVzZXJfbmFtZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NzUyOFx1NjIzN1x1OEQyNlx1NTNGNyJ9KSxkYXRhSW5kZXg6InVzZXJOYW1lIix2YWx1ZVR5cGU6InRleHQifSx7dGl0bGU6KDAsbi5qc3gpKHIuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3Iub25saW5lLnVzZXIuZGVwdF9uYW1lIixkZWZhdWx0TWVzc2FnZToiXHU5MEU4XHU5NUU4XHU1NDBEXHU3OUYwIn0pLGRhdGFJbmRleDoiZGVwdE5hbWUiLHZhbHVlVHlwZToidGV4dCIsaGlkZUluU2VhcmNoOiEwfSx7dGl0bGU6KDAsbi5qc3gpKHIuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3Iub25saW5lLnVzZXIuaXBhZGRyIixkZWZhdWx0TWVzc2FnZToiXHU3NjdCXHU1RjU1SVBcdTU3MzBcdTU3NDAifSksZGF0YUluZGV4OiJpcGFkZHIiLHZhbHVlVHlwZToidGV4dCJ9LHt0aXRsZTooMCxuLmpzeCkoci5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoibW9uaXRvci5vbmxpbmUudXNlci5sb2dpbl9sb2NhdGlvbiIsZGVmYXVsdE1lc3NhZ2U6Ilx1NzY3Qlx1NUY1NVx1NTczMFx1NzBCOSJ9KSxkYXRhSW5kZXg6ImxvZ2luTG9jYXRpb24iLHZhbHVlVHlwZToidGV4dCIsaGlkZUluU2VhcmNoOiEwfSx7dGl0bGU6KDAsbi5qc3gpKHIuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3Iub25saW5lLnVzZXIuYnJvd3NlciIsZGVmYXVsdE1lc3NhZ2U6Ilx1NkQ0Rlx1ODlDOFx1NTY2OFx1N0M3Qlx1NTc4QiJ9KSxkYXRhSW5kZXg6ImJyb3dzZXIiLHZhbHVlVHlwZToidGV4dCIsaGlkZUluU2VhcmNoOiEwfSx7dGl0bGU6KDAsbi5qc3gpKHIuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3Iub25saW5lLnVzZXIub3MiLGRlZmF1bHRNZXNzYWdlOiJcdTY0Q0RcdTRGNUNcdTdDRkJcdTdFREYifSksZGF0YUluZGV4OiJvcyIsdmFsdWVUeXBlOiJ0ZXh0IixoaWRlSW5TZWFyY2g6ITB9LHt0aXRsZTooMCxuLmpzeCkoci5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoibW9uaXRvci5vbmxpbmUudXNlci5sb2dpbl90aW1lIixkZWZhdWx0TWVzc2FnZToiXHU3NjdCXHU1RjU1XHU2NUY2XHU5NUY0In0pLGRhdGFJbmRleDoibG9naW5UaW1lIix2YWx1ZVR5cGU6ImRhdGVSYW5nZSIscmVuZGVyOmZ1bmN0aW9uKGwsZCl7cmV0dXJuKDAsbi5qc3gpKCJzcGFuIix7Y2hpbGRyZW46ZC5sb2dpblRpbWV9KX0saGlkZUluU2VhcmNoOiEwLHNlYXJjaDp7dHJhbnNmb3JtOmZ1bmN0aW9uKGwpe3JldHVybnsicGFyYW1zW2JlZ2luVGltZV0iOmxbMF0sInBhcmFtc1tlbmRUaW1lXSI6bFsxXX19fX0se3RpdGxlOigwLG4uanN4KShyLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJwYWdlcy5zZWFyY2hUYWJsZS50aXRsZU9wdGlvbiIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjRDRFx1NEY1QyJ9KSxkYXRhSW5kZXg6Im9wdGlvbiIsd2lkdGg6IjYwcHgiLHZhbHVlVHlwZToib3B0aW9uIixyZW5kZXI6ZnVuY3Rpb24obCxkKXtyZXR1cm5bKDAsbi5qc3gpKEQuWlAse3R5cGU6ImxpbmsiLHNpemU6InNtYWxsIixkYW5nZXI6ITAsaWNvbjooMCxuLmpzeCkoRS5aLHt9KSxoaWRkZW46IXQuaGFzUGVybXMoIm1vbml0b3I6b25saW5lOmZvcmNlTG9nb3V0Iiksb25DbGljazpjKCkocygpKCkubWFyayhmdW5jdGlvbiBGKCl7cmV0dXJuIHMoKSgpLndyYXAoZnVuY3Rpb24oVCl7Zm9yKDs7KXN3aXRjaChULnByZXY9VC5uZXh0KXtjYXNlIDA6Ty5aLmNvbmZpcm0oe3RpdGxlOiJcdTVGM0FcdThFMjIiLGNvbnRlbnQ6Ilx1Nzg2RVx1NUI5QVx1NUYzQVx1NTIzNlx1NUMwNlx1OEJFNVx1NzUyOFx1NjIzN1x1OEUyMlx1NEUwQlx1N0VCRlx1NTQxN1x1RkYxRiIsb2tUZXh0OiJcdTc4NkVcdThCQTQiLGNhbmNlbFRleHQ6Ilx1NTNENlx1NkQ4OCIsb25PazpmdW5jdGlvbigpe3ZhciBiPWMoKShzKCkoKS5tYXJrKGZ1bmN0aW9uIGsoKXt2YXIgSTtyZXR1cm4gcygpKCkud3JhcChmdW5jdGlvbihmKXtmb3IoOzspc3dpdGNoKGYucHJldj1mLm5leHQpe2Nhc2UgMDpyZXR1cm4gZi5uZXh0PTIsUyhkKTtjYXNlIDI6ST1mLnNlbnQsSSYmby5jdXJyZW50JiZvLmN1cnJlbnQucmVsb2FkKCk7Y2FzZSA0OmNhc2UiZW5kIjpyZXR1cm4gZi5zdG9wKCl9fSxrKX0pKTtmdW5jdGlvbiAkKCl7cmV0dXJuIGIuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiAkfSgpfSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gVC5zdG9wKCl9fSxGKX0pKSxjaGlsZHJlbjoiXHU1RjNBXHU5MDAwIn0sImJhdGNoUmVtb3ZlIildfX1dO3JldHVybigwLG4uanN4KSgiZGl2Iix7c3R5bGU6e3dpZHRoOiIxMDAlIixmbG9hdDoicmlnaHQifSxjaGlsZHJlbjooMCxuLmpzeCkoQi5aLHtoZWFkZXJUaXRsZTp5LmZvcm1hdE1lc3NhZ2Uoe2lkOiJwYWdlcy5zZWFyY2hUYWJsZS50aXRsZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NEZFMVx1NjA2RiJ9KSxhY3Rpb25SZWY6byxmb3JtUmVmOmkscm93S2V5OiJ0b2tlbklkIixzZWFyY2g6e2xhYmVsV2lkdGg6MTIwfSxyZXF1ZXN0OmZ1bmN0aW9uKGwpe3JldHVybiBSKGooKSh7fSxsKSkudGhlbihmdW5jdGlvbihkKXt2YXIgRj17ZGF0YTpkLnJvd3MsdG90YWw6ZC50b3RhbCxzdWNjZXNzOiEwfTtyZXR1cm4gRn0pfSxjb2x1bW5zOmF9LCJsb2dpbmluZm9yTGlzdCIpfSl9LFA9Wn19XSk7CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzE0NTguZTkxNDA0ZDQuYXN5bmMuanMgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzE0NTguZTkxNDA0ZDQuYXN5bmMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDMyYTUwNgotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvMTQ1OC5lOTE0MDRkNC5hc3luYy5qcwpAQCAtMCwwICsxLDU5IEBACisoc2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Bybz1zZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvfHxbXSkucHVzaChbWzE0NThdLHs0NzM1NjpmdW5jdGlvbih0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg3MiA0NzRIMjg2LjlsMzUwLjItMzA0YzUuNi00LjkgMi4yLTE0LTUuMi0xNGgtODguNWMtMy45IDAtNy42IDEuNC0xMC41IDMuOUwxNTUgNDg3LjhhMzEuOTYgMzEuOTYgMCAwMDAgNDguM0w1MzUuMSA4NjZjMS41IDEuMyAzLjMgMiA1LjIgMmg5MS41YzcuNCAwIDEwLjgtOS4yIDUuMi0xNEwyODYuOSA1NTBIODcyYzQuNCAwIDgtMy42IDgtOHYtNjBjMC00LjQtMy42LTgtOC04eiJ9fV19LG5hbWU6ImFycm93LWxlZnQiLHRoZW1lOiJvdXRsaW5lZCJ9O24uZGVmYXVsdD1lfSw0NDE0OTpmdW5jdGlvbih0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg2OSA0ODcuOEw0OTEuMiAxNTkuOWMtMi45LTIuNS02LjYtMy45LTEwLjUtMy45aC04OC41Yy03LjQgMC0xMC44IDkuMi01LjIgMTRsMzUwLjIgMzA0SDE1MmMtNC40IDAtOCAzLjYtOCA4djYwYzAgNC40IDMuNiA4IDggOGg1ODUuMUwzODYuOSA4NTRjLTUuNiA0LjktMi4yIDE0IDUuMiAxNGg5MS41YzEuOSAwIDMuOC0uNyA1LjItMkw4NjkgNTM2LjJhMzIuMDcgMzIuMDcgMCAwMDAtNDguNHoifX1dfSxuYW1lOiJhcnJvdy1yaWdodCIsdGhlbWU6Im91dGxpbmVkIn07bi5kZWZhdWx0PWV9LDkyMDc0OmZ1bmN0aW9uKHQsbixlKXsidXNlIHN0cmljdCI7InVzZSBjbGllbnQiO3ZhciBvPWUoNjQ4MzYpLmRlZmF1bHQsaT1lKDc1MjYzKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxuLmRlZmF1bHQ9dm9pZCAwO3ZhciByPW8oZSgxMDQzNCkpLGE9byhlKDI3NDI0KSksdT1vKGUoMzg0MTYpKSxsPW8oZSg3MDIxNSkpLHM9aShlKDY3Mjk0KSksZj1vKGUoOTM5NjcpKSxtPWUoODQ4OTgpLGc9byhlKDk4Mzk5KSksQz1vKGUoOTUxNjApKSx3PWUoNDY3NjgpLE09ZSg3MjQ3OSkseD1bImNsYXNzTmFtZSIsImljb24iLCJzcGluIiwicm90YXRlIiwidGFiSW5kZXgiLCJvbkNsaWNrIiwidHdvVG9uZUNvbG9yIl07KDAsdy5zZXRUd29Ub25lQ29sb3IpKG0uYmx1ZS5wcmltYXJ5KTt2YXIgTz1zLmZvcndhcmRSZWYoZnVuY3Rpb24oUCxJKXt2YXIgcD1QLmNsYXNzTmFtZSxkPVAuaWNvbixjPVAuc3Bpbix2PVAucm90YXRlLGg9UC50YWJJbmRleCx5PVAub25DbGljayxUPVAudHdvVG9uZUNvbG9yLGo9KDAsbC5kZWZhdWx0KShQLHgpLGI9cy51c2VDb250ZXh0KGcuZGVmYXVsdCksUz1iLnByZWZpeENscyxSPVM9PT12b2lkIDA/ImFudGljb24iOlMsTj1iLnJvb3RDbGFzc05hbWUsRT0oMCxmLmRlZmF1bHQpKE4sUiwoMCx1LmRlZmF1bHQpKCgwLHUuZGVmYXVsdCkoe30sIiIuY29uY2F0KFIsIi0iKS5jb25jYXQoZC5uYW1lKSwhIWQubmFtZSksIiIuY29uY2F0KFIsIi1zcGluIiksISFjfHxkLm5hbWU9PT0ibG9hZGluZyIpLHApLEQ9aDtEPT09dm9pZCAwJiZ5JiYoRD0tMSk7dmFyIEw9dj97bXNUcmFuc2Zvcm06InJvdGF0ZSgiLmNvbmNhdCh2LCJkZWcpIiksdHJhbnNmb3JtOiJyb3RhdGUoIi5jb25jYXQodiwiZGVnKSIpfTp2b2lkIDAsej0oMCxNLm5vcm1hbGl6ZVR3b1RvbmVDb2xvcnMpKFQpLFc9KDAsYS5kZWZhdWx0KSh6LDIpLF89V1swXSxCPVdbMV07cmV0dXJuIHMuY3JlYXRlRWxlbWVudCgic3BhbiIsKDAsci5kZWZhdWx0KSh7cm9sZToiaW1nIiwiYXJpYS1sYWJlbCI6ZC5uYW1lfSxqLHtyZWY6SSx0YWJJbmRleDpELG9uQ2xpY2s6eSxjbGFzc05hbWU6RX0pLHMuY3JlYXRlRWxlbWVudChDLmRlZmF1bHQse2ljb246ZCxwcmltYXJ5Q29sb3I6XyxzZWNvbmRhcnlDb2xvcjpCLHN0eWxlOkx9KSl9KTtPLmRpc3BsYXlOYW1lPSJBbnRkSWNvbiIsTy5nZXRUd29Ub25lQ29sb3I9dy5nZXRUd29Ub25lQ29sb3IsTy5zZXRUd29Ub25lQ29sb3I9dy5zZXRUd29Ub25lQ29sb3I7dmFyIEE9bi5kZWZhdWx0PU99LDk4Mzk5OmZ1bmN0aW9uKHQsbixlKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLG4uZGVmYXVsdD12b2lkIDA7dmFyIG89ZSg2NzI5NCksaT0oMCxvLmNyZWF0ZUNvbnRleHQpKHt9KSxyPW4uZGVmYXVsdD1pfSw5NTE2MDpmdW5jdGlvbih0LG4sZSl7InVzZSBzdHJpY3QiO3ZhciBvPWUoNjQ4MzYpLmRlZmF1bHQsaT1lKDc1MjYzKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxuLmRlZmF1bHQ9dm9pZCAwO3ZhciByPW8oZSg3MDIxNSkpLGE9byhlKDQyMTIyKSksdT1pKGUoNjcyOTQpKSxsPWUoNzI0NzkpLHM9WyJpY29uIiwiY2xhc3NOYW1lIiwib25DbGljayIsInN0eWxlIiwicHJpbWFyeUNvbG9yIiwic2Vjb25kYXJ5Q29sb3IiXSxmPXtwcmltYXJ5Q29sb3I6IiMzMzMiLHNlY29uZGFyeUNvbG9yOiIjRTZFNkU2IixjYWxjdWxhdGVkOiExfTtmdW5jdGlvbiBtKE0pe3ZhciB4PU0ucHJpbWFyeUNvbG9yLE89TS5zZWNvbmRhcnlDb2xvcjtmLnByaW1hcnlDb2xvcj14LGYuc2Vjb25kYXJ5Q29sb3I9T3x8KDAsbC5nZXRTZWNvbmRhcnlDb2xvcikoeCksZi5jYWxjdWxhdGVkPSEhT31mdW5jdGlvbiBnKCl7cmV0dXJuKDAsYS5kZWZhdWx0KSh7fSxmKX12YXIgQz1mdW5jdGlvbih4KXt2YXIgTz14Lmljb24sQT14LmNsYXNzTmFtZSxQPXgub25DbGljayxJPXguc3R5bGUscD14LnByaW1hcnlDb2xvcixkPXguc2Vjb25kYXJ5Q29sb3IsYz0oMCxyLmRlZmF1bHQpKHgscyksdj11LnVzZVJlZigpLGg9ZjtpZihwJiYoaD17cHJpbWFyeUNvbG9yOnAsc2Vjb25kYXJ5Q29sb3I6ZHx8KDAsbC5nZXRTZWNvbmRhcnlDb2xvcikocCl9KSwoMCxsLnVzZUluc2VydFN0eWxlcykodiksKDAsbC53YXJuaW5nKSgoMCxsLmlzSWNvbkRlZmluaXRpb24pKE8pLCJpY29uIHNob3VsZCBiZSBpY29uIGRlZmluaXRvbiwgYnV0IGdvdCAiLmNvbmNhdChPKSksISgwLGwuaXNJY29uRGVmaW5pdGlvbikoTykpcmV0dXJuIG51bGw7dmFyIHk9TztyZXR1cm4geSYmdHlwZW9mIHkuaWNvbj09ImZ1bmN0aW9uIiYmKHk9KDAsYS5kZWZhdWx0KSgoMCxhLmRlZmF1bHQpKHt9LHkpLHt9LHtpY29uOnkuaWNvbihoLnByaW1hcnlDb2xvcixoLnNlY29uZGFyeUNvbG9yKX0pKSwoMCxsLmdlbmVyYXRlKSh5Lmljb24sInN2Zy0iLmNvbmNhdCh5Lm5hbWUpLCgwLGEuZGVmYXVsdCkoKDAsYS5kZWZhdWx0KSh7Y2xhc3NOYW1lOkEsb25DbGljazpQLHN0eWxlOkksImRhdGEtaWNvbiI6eS5uYW1lLHdpZHRoOiIxZW0iLGhlaWdodDoiMWVtIixmaWxsOiJjdXJyZW50Q29sb3IiLCJhcmlhLWhpZGRlbiI6InRydWUifSxjKSx7fSx7cmVmOnZ9KSl9O0MuZGlzcGxheU5hbWU9Ikljb25SZWFjdCIsQy5nZXRUd29Ub25lQ29sb3JzPWcsQy5zZXRUd29Ub25lQ29sb3JzPW07dmFyIHc9bi5kZWZhdWx0PUN9LDQ2NzY4OmZ1bmN0aW9uKHQsbixlKXsidXNlIHN0cmljdCI7dmFyIG89ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksbi5nZXRUd29Ub25lQ29sb3I9bCxuLnNldFR3b1RvbmVDb2xvcj11O3ZhciBpPW8oZSgyNzQyNCkpLHI9byhlKDk1MTYwKSksYT1lKDcyNDc5KTtmdW5jdGlvbiB1KHMpe3ZhciBmPSgwLGEubm9ybWFsaXplVHdvVG9uZUNvbG9ycykocyksbT0oMCxpLmRlZmF1bHQpKGYsMiksZz1tWzBdLEM9bVsxXTtyZXR1cm4gci5kZWZhdWx0LnNldFR3b1RvbmVDb2xvcnMoe3ByaW1hcnlDb2xvcjpnLHNlY29uZGFyeUNvbG9yOkN9KX1mdW5jdGlvbiBsKCl7dmFyIHM9ci5kZWZhdWx0LmdldFR3b1RvbmVDb2xvcnMoKTtyZXR1cm4gcy5jYWxjdWxhdGVkP1tzLnByaW1hcnlDb2xvcixzLnNlY29uZGFyeUNvbG9yXTpzLnByaW1hcnlDb2xvcn19LDg1MzE3OmZ1bmN0aW9uKHQsbixlKXsidXNlIHN0cmljdCI7dmFyIG89ZSg3NTI2MykuZGVmYXVsdCxpPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLG4uZGVmYXVsdD12b2lkIDA7dmFyIHI9aShlKDEwNDM0KSksYT1vKGUoNjcyOTQpKSx1PWkoZSg0NzM1NikpLGw9aShlKDkyMDc0KSkscz1mdW5jdGlvbihDLHcpe3JldHVybiBhLmNyZWF0ZUVsZW1lbnQobC5kZWZhdWx0LCgwLHIuZGVmYXVsdCkoe30sQyx7cmVmOncsaWNvbjp1LmRlZmF1bHR9KSl9LGY9YS5mb3J3YXJkUmVmKHMpLG09bi5kZWZhdWx0PWZ9LDkxNzI0OmZ1bmN0aW9uKHQsbixlKXsidXNlIHN0cmljdCI7dmFyIG89ZSg3NTI2MykuZGVmYXVsdCxpPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLG4uZGVmYXVsdD12b2lkIDA7dmFyIHI9aShlKDEwNDM0KSksYT1vKGUoNjcyOTQpKSx1PWkoZSg0NDE0OSkpLGw9aShlKDkyMDc0KSkscz1mdW5jdGlvbihDLHcpe3JldHVybiBhLmNyZWF0ZUVsZW1lbnQobC5kZWZhdWx0LCgwLHIuZGVmYXVsdCkoe30sQyx7cmVmOncsaWNvbjp1LmRlZmF1bHR9KSl9LGY9YS5mb3J3YXJkUmVmKHMpLG09bi5kZWZhdWx0PWZ9LDcyNDc5OmZ1bmN0aW9uKHQsbixlKXsidXNlIHN0cmljdCI7dmFyIG89ZSg3NTI2MykuZGVmYXVsdCxpPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLG4uZ2VuZXJhdGU9TyxuLmdldFNlY29uZGFyeUNvbG9yPUEsbi5pY29uU3R5bGVzPXZvaWQgMCxuLmlzSWNvbkRlZmluaXRpb249TSxuLm5vcm1hbGl6ZUF0dHJzPXgsbi5ub3JtYWxpemVUd29Ub25lQ29sb3JzPVAsbi51c2VJbnNlcnRTdHlsZXM9bi5zdmdCYXNlUHJvcHM9dm9pZCAwLG4ud2FybmluZz13O3ZhciByPWkoZSg0MjEyMikpLGE9aShlKDE4Njk4KSksdT1lKDg0ODk4KSxsPWUoOTMzOTkpLHM9ZSg2MzI5OCksZj1pKGUoNDU1MjApKSxtPW8oZSg2NzI5NCkpLGc9aShlKDk4Mzk5KSk7ZnVuY3Rpb24gQyhjKXtyZXR1cm4gYy5yZXBsYWNlKC8tKC4pL2csZnVuY3Rpb24odixoKXtyZXR1cm4gaC50b1VwcGVyQ2FzZSgpfSl9ZnVuY3Rpb24gdyhjLHYpeygwLGYuZGVmYXVsdCkoYywiW0BhbnQtZGVzaWduL2ljb25zXSAiLmNvbmNhdCh2KSl9ZnVuY3Rpb24gTShjKXtyZXR1cm4oMCxhLmRlZmF1bHQpKGMpPT09Im9iamVjdCImJnR5cGVvZiBjLm5hbWU9PSJzdHJpbmciJiZ0eXBlb2YgYy50aGVtZT09InN0cmluZyImJigoMCxhLmRlZmF1bHQpKGMuaWNvbik9PT0ib2JqZWN0Inx8dHlwZW9mIGMuaWNvbj09ImZ1bmN0aW9uIil9ZnVuY3Rpb24geCgpe3ZhciBjPWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dm9pZCAwP2FyZ3VtZW50c1swXTp7fTtyZXR1cm4gT2JqZWN0LmtleXMoYykucmVkdWNlKGZ1bmN0aW9uKHYsaCl7dmFyIHk9Y1toXTtzd2l0Y2goaCl7Y2FzZSJjbGFzcyI6di5jbGFzc05hbWU9eSxkZWxldGUgdi5jbGFzczticmVhaztkZWZhdWx0OmRlbGV0ZSB2W2hdLHZbQyhoKV09eX1yZXR1cm4gdn0se30pfWZ1bmN0aW9uIE8oYyx2LGgpe3JldHVybiBoP20uZGVmYXVsdC5jcmVhdGVFbGVtZW50KGMudGFnLCgwLHIuZGVmYXVsdCkoKDAsci5kZWZhdWx0KSh7a2V5OnZ9LHgoYy5hdHRycykpLGgpLChjLmNoaWxkcmVufHxbXSkubWFwKGZ1bmN0aW9uKHksVCl7cmV0dXJuIE8oeSwiIi5jb25jYXQodiwiLSIpLmNvbmNhdChjLnRhZywiLSIpLmNvbmNhdChUKSl9KSk6bS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoYy50YWcsKDAsci5kZWZhdWx0KSh7a2V5OnZ9LHgoYy5hdHRycykpLChjLmNoaWxkcmVufHxbXSkubWFwKGZ1bmN0aW9uKHksVCl7cmV0dXJuIE8oeSwiIi5jb25jYXQodiwiLSIpLmNvbmNhdChjLnRhZywiLSIpLmNvbmNhdChUKSl9KSl9ZnVuY3Rpb24gQShjKXtyZXR1cm4oMCx1LmdlbmVyYXRlKShjKVswXX1mdW5jdGlvbiBQKGMpe3JldHVybiBjP0FycmF5LmlzQXJyYXkoYyk/YzpbY106W119dmFyIEk9bi5zdmdCYXNlUHJvcHM9e3dpZHRoOiIxZW0iLGhlaWdodDoiMWVtIixmaWxsOiJjdXJyZW50Q29sb3IiLCJhcmlhLWhpZGRlbiI6InRydWUiLGZvY3VzYWJsZToiZmFsc2UifSxwPW4uaWNvblN0eWxlcz1gCisuYW50aWNvbiB7CisgIGRpc3BsYXk6IGlubGluZS1mbGV4OworICBhbGlnbi1pdGVtczogY2VudGVyOworICBjb2xvcjogaW5oZXJpdDsKKyAgZm9udC1zdHlsZTogbm9ybWFsOworICBsaW5lLWhlaWdodDogMDsKKyAgdGV4dC1hbGlnbjogY2VudGVyOworICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsKKyAgdmVydGljYWwtYWxpZ246IC0wLjEyNWVtOworICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5OworICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKKyAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsKK30KKworLmFudGljb24gPiAqIHsKKyAgbGluZS1oZWlnaHQ6IDE7Cit9CisKKy5hbnRpY29uIHN2ZyB7CisgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKK30KKworLmFudGljb246OmJlZm9yZSB7CisgIGRpc3BsYXk6IG5vbmU7Cit9CisKKy5hbnRpY29uIC5hbnRpY29uLWljb24geworICBkaXNwbGF5OiBibG9jazsKK30KKworLmFudGljb25bdGFiaW5kZXhdIHsKKyAgY3Vyc29yOiBwb2ludGVyOworfQorCisuYW50aWNvbi1zcGluOjpiZWZvcmUsCisuYW50aWNvbi1zcGluIHsKKyAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICAtd2Via2l0LWFuaW1hdGlvbjogbG9hZGluZ0NpcmNsZSAxcyBpbmZpbml0ZSBsaW5lYXI7CisgIGFuaW1hdGlvbjogbG9hZGluZ0NpcmNsZSAxcyBpbmZpbml0ZSBsaW5lYXI7Cit9CisKK0Atd2Via2l0LWtleWZyYW1lcyBsb2FkaW5nQ2lyY2xlIHsKKyAgMTAwJSB7CisgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOworICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7CisgIH0KK30KKworQGtleWZyYW1lcyBsb2FkaW5nQ2lyY2xlIHsKKyAgMTAwJSB7CisgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOworICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7CisgIH0KK30KK2AsZD1uLnVzZUluc2VydFN0eWxlcz1mdW5jdGlvbih2KXt2YXIgaD0oMCxtLnVzZUNvbnRleHQpKGcuZGVmYXVsdCkseT1oLmNzcCxUPWgucHJlZml4Q2xzLGo9aC5sYXllcixiPXA7VCYmKGI9Yi5yZXBsYWNlKC9hbnRpY29uL2csVCkpLGomJihiPSJAbGF5ZXIgIi5jb25jYXQoaixgIHsKK2ApLmNvbmNhdChiLGAKK31gKSksKDAsbS51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7dmFyIFM9di5jdXJyZW50LFI9KDAscy5nZXRTaGFkb3dSb290KShTKTsoMCxsLnVwZGF0ZUNTUykoYiwiQGFudC1kZXNpZ24taWNvbnMiLHtwcmVwZW5kOiFqLGNzcDp5LGF0dGFjaFRvOlJ9KX0sW10pfX0sMTkxNTg6ZnVuY3Rpb24odCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLG4uZGVmYXVsdD1lO2Z1bmN0aW9uIGUoKXtyZXR1cm4hISh0eXBlb2Ygd2luZG93IT0idW5kZWZpbmVkIiYmd2luZG93LmRvY3VtZW50JiZ3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCl9fSwzMjE5MTpmdW5jdGlvbih0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksbi5kZWZhdWx0PWU7ZnVuY3Rpb24gZShvLGkpe2lmKCFvKXJldHVybiExO2lmKG8uY29udGFpbnMpcmV0dXJuIG8uY29udGFpbnMoaSk7Zm9yKHZhciByPWk7cjspe2lmKHI9PT1vKXJldHVybiEwO3I9ci5wYXJlbnROb2RlfXJldHVybiExfX0sOTMzOTk6ZnVuY3Rpb24odCxuLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgbz1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxuLmNsZWFyQ29udGFpbmVyQ2FjaGU9UCxuLmluamVjdENTUz1NLG4ucmVtb3ZlQ1NTPU8sbi51cGRhdGVDU1M9STt2YXIgaT1vKGUoNDIxMjIpKSxyPW8oZSgxOTE1OCkpLGE9byhlKDMyMTkxKSksdT0iZGF0YS1yYy1vcmRlciIsbD0iZGF0YS1yYy1wcmlvcml0eSIscz0icmMtdXRpbC1rZXkiLGY9bmV3IE1hcDtmdW5jdGlvbiBtKCl7dmFyIHA9YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT12b2lkIDA/YXJndW1lbnRzWzBdOnt9LGQ9cC5tYXJrO3JldHVybiBkP2Quc3RhcnRzV2l0aCgiZGF0YS0iKT9kOiJkYXRhLSIuY29uY2F0KGQpOnN9ZnVuY3Rpb24gZyhwKXtpZihwLmF0dGFjaFRvKXJldHVybiBwLmF0dGFjaFRvO3ZhciBkPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImhlYWQiKTtyZXR1cm4gZHx8ZG9jdW1lbnQuYm9keX1mdW5jdGlvbiBDKHApe3JldHVybiBwPT09InF1ZXVlIj8icHJlcGVuZFF1ZXVlIjpwPyJwcmVwZW5kIjoiYXBwZW5kIn1mdW5jdGlvbiB3KHApe3JldHVybiBBcnJheS5mcm9tKChmLmdldChwKXx8cCkuY2hpbGRyZW4pLmZpbHRlcihmdW5jdGlvbihkKXtyZXR1cm4gZC50YWdOYW1lPT09IlNUWUxFIn0pfWZ1bmN0aW9uIE0ocCl7dmFyIGQ9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOnt9O2lmKCEoMCxyLmRlZmF1bHQpKCkpcmV0dXJuIG51bGw7dmFyIGM9ZC5jc3Asdj1kLnByZXBlbmQsaD1kLnByaW9yaXR5LHk9aD09PXZvaWQgMD8wOmgsVD1DKHYpLGo9VD09PSJwcmVwZW5kUXVldWUiLGI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtiLnNldEF0dHJpYnV0ZSh1LFQpLGomJnkmJmIuc2V0QXR0cmlidXRlKGwsIiIuY29uY2F0KHkpKSxjIT1udWxsJiZjLm5vbmNlJiYoYi5ub25jZT1jPT1udWxsP3ZvaWQgMDpjLm5vbmNlKSxiLmlubmVySFRNTD1wO3ZhciBTPWcoZCksUj1TLmZpcnN0Q2hpbGQ7aWYodil7aWYoail7dmFyIE49KGQuc3R5bGVzfHx3KFMpKS5maWx0ZXIoZnVuY3Rpb24oRSl7aWYoIVsicHJlcGVuZCIsInByZXBlbmRRdWV1ZSJdLmluY2x1ZGVzKEUuZ2V0QXR0cmlidXRlKHUpKSlyZXR1cm4hMTt2YXIgRD1OdW1iZXIoRS5nZXRBdHRyaWJ1dGUobCl8fDApO3JldHVybiB5Pj1EfSk7aWYoTi5sZW5ndGgpcmV0dXJuIFMuaW5zZXJ0QmVmb3JlKGIsTltOLmxlbmd0aC0xXS5uZXh0U2libGluZyksYn1TLmluc2VydEJlZm9yZShiLFIpfWVsc2UgUy5hcHBlbmRDaGlsZChiKTtyZXR1cm4gYn1mdW5jdGlvbiB4KHApe3ZhciBkPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTp7fSxjPWcoZCk7cmV0dXJuKGQuc3R5bGVzfHx3KGMpKS5maW5kKGZ1bmN0aW9uKHYpe3JldHVybiB2LmdldEF0dHJpYnV0ZShtKGQpKT09PXB9KX1mdW5jdGlvbiBPKHApe3ZhciBkPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTp7fSxjPXgocCxkKTtpZihjKXt2YXIgdj1nKGQpO3YucmVtb3ZlQ2hpbGQoYyl9fWZ1bmN0aW9uIEEocCxkKXt2YXIgYz1mLmdldChwKTtpZighY3x8ISgwLGEuZGVmYXVsdCkoZG9jdW1lbnQsYykpe3ZhciB2PU0oIiIsZCksaD12LnBhcmVudE5vZGU7Zi5zZXQocCxoKSxwLnJlbW92ZUNoaWxkKHYpfX1mdW5jdGlvbiBQKCl7Zi5jbGVhcigpfWZ1bmN0aW9uIEkocCxkKXt2YXIgYz1hcmd1bWVudHMubGVuZ3RoPjImJmFyZ3VtZW50c1syXSE9PXZvaWQgMD9hcmd1bWVudHNbMl06e30sdj1nKGMpLGg9dyh2KSx5PSgwLGkuZGVmYXVsdCkoKDAsaS5kZWZhdWx0KSh7fSxjKSx7fSx7c3R5bGVzOmh9KTtBKHYseSk7dmFyIFQ9eChkLHkpO2lmKFQpe3ZhciBqLGI7aWYoKGo9eS5jc3ApIT09bnVsbCYmaiE9PXZvaWQgMCYmai5ub25jZSYmVC5ub25jZSE9PSgoYj15LmNzcCk9PT1udWxsfHxiPT09dm9pZCAwP3ZvaWQgMDpiLm5vbmNlKSl7dmFyIFM7VC5ub25jZT0oUz15LmNzcCk9PT1udWxsfHxTPT09dm9pZCAwP3ZvaWQgMDpTLm5vbmNlfXJldHVybiBULmlubmVySFRNTCE9PXAmJihULmlubmVySFRNTD1wKSxUfXZhciBSPU0ocCx5KTtyZXR1cm4gUi5zZXRBdHRyaWJ1dGUobSh5KSxkKSxSfX0sNjMyOTg6ZnVuY3Rpb24odCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLG4uZ2V0U2hhZG93Um9vdD1pLG4uaW5TaGFkb3c9bztmdW5jdGlvbiBlKHIpe3ZhciBhO3JldHVybiByPT1udWxsfHwoYT1yLmdldFJvb3ROb2RlKT09PW51bGx8fGE9PT12b2lkIDA/dm9pZCAwOmEuY2FsbChyKX1mdW5jdGlvbiBvKHIpe3JldHVybiBlKHIpaW5zdGFuY2VvZiBTaGFkb3dSb290fWZ1bmN0aW9uIGkocil7cmV0dXJuIG8ocik/ZShyKTpudWxsfX0sNDU1MjA6ZnVuY3Rpb24odCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLG4uY2FsbD1sLG4uZGVmYXVsdD12b2lkIDAsbi5ub3RlPWEsbi5ub3RlT25jZT1mLG4ucHJlTWVzc2FnZT12b2lkIDAsbi5yZXNldFdhcm5lZD11LG4ud2FybmluZz1yLG4ud2FybmluZ09uY2U9czt2YXIgZT17fSxvPVtdLGk9bi5wcmVNZXNzYWdlPWZ1bmN0aW9uKEMpe28ucHVzaChDKX07ZnVuY3Rpb24gcihnLEMpe2lmKDApdmFyIHd9ZnVuY3Rpb24gYShnLEMpe2lmKDApdmFyIHd9ZnVuY3Rpb24gdSgpe2U9e319ZnVuY3Rpb24gbChnLEMsdyl7IUMmJiFlW3ddJiYoZyghMSx3KSxlW3ddPSEwKX1mdW5jdGlvbiBzKGcsQyl7bChyLGcsQyl9ZnVuY3Rpb24gZihnLEMpe2woYSxnLEMpfXMucHJlTWVzc2FnZT1pLHMucmVzZXRXYXJuZWQ9dSxzLm5vdGVPbmNlPWY7dmFyIG09bi5kZWZhdWx0PXN9LDczODk3OmZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG4oZSxvKXsobz09bnVsbHx8bz5lLmxlbmd0aCkmJihvPWUubGVuZ3RoKTtmb3IodmFyIGk9MCxyPUFycmF5KG8pO2k8bztpKyspcltpXT1lW2ldO3JldHVybiByfXQuZXhwb3J0cz1uLHQuZXhwb3J0cy5fX2VzTW9kdWxlPSEwLHQuZXhwb3J0cy5kZWZhdWx0PXQuZXhwb3J0c30sODUzNzI6ZnVuY3Rpb24odCl7ZnVuY3Rpb24gbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfXQuZXhwb3J0cz1uLHQuZXhwb3J0cy5fX2VzTW9kdWxlPSEwLHQuZXhwb3J0cy5kZWZhdWx0PXQuZXhwb3J0c30sMzg0MTY6ZnVuY3Rpb24odCxuLGUpe3ZhciBvPWUoNjQwNjIpO2Z1bmN0aW9uIGkocixhLHUpe3JldHVybihhPW8oYSkpaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixhLHt2YWx1ZTp1LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6clthXT11LHJ9dC5leHBvcnRzPWksdC5leHBvcnRzLl9fZXNNb2R1bGU9ITAsdC5leHBvcnRzLmRlZmF1bHQ9dC5leHBvcnRzfSwxMDQzNDpmdW5jdGlvbih0KXtmdW5jdGlvbiBuKCl7cmV0dXJuIHQuZXhwb3J0cz1uPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24oZSl7Zm9yKHZhciBvPTE7bzxhcmd1bWVudHMubGVuZ3RoO28rKyl7dmFyIGk9YXJndW1lbnRzW29dO2Zvcih2YXIgciBpbiBpKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChpLHIpJiYoZVtyXT1pW3JdKX1yZXR1cm4gZX0sdC5leHBvcnRzLl9fZXNNb2R1bGU9ITAsdC5leHBvcnRzLmRlZmF1bHQ9dC5leHBvcnRzLG4uYXBwbHkobnVsbCxhcmd1bWVudHMpfXQuZXhwb3J0cz1uLHQuZXhwb3J0cy5fX2VzTW9kdWxlPSEwLHQuZXhwb3J0cy5kZWZhdWx0PXQuZXhwb3J0c30sNjQ4MzY6ZnVuY3Rpb24odCl7ZnVuY3Rpb24gbihlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19dC5leHBvcnRzPW4sdC5leHBvcnRzLl9fZXNNb2R1bGU9ITAsdC5leHBvcnRzLmRlZmF1bHQ9dC5leHBvcnRzfSw3NTI2MzpmdW5jdGlvbih0LG4sZSl7dmFyIG89ZSgxODY5OCkuZGVmYXVsdDtmdW5jdGlvbiBpKGEpe2lmKHR5cGVvZiBXZWFrTWFwIT0iZnVuY3Rpb24iKXJldHVybiBudWxsO3ZhciB1PW5ldyBXZWFrTWFwLGw9bmV3IFdlYWtNYXA7cmV0dXJuKGk9ZnVuY3Rpb24oZil7cmV0dXJuIGY/bDp1fSkoYSl9ZnVuY3Rpb24gcihhLHUpe2lmKCF1JiZhJiZhLl9fZXNNb2R1bGUpcmV0dXJuIGE7aWYoYT09PW51bGx8fG8oYSkhPSJvYmplY3QiJiZ0eXBlb2YgYSE9ImZ1bmN0aW9uIilyZXR1cm57ZGVmYXVsdDphfTt2YXIgbD1pKHUpO2lmKGwmJmwuaGFzKGEpKXJldHVybiBsLmdldChhKTt2YXIgcz17X19wcm90b19fOm51bGx9LGY9T2JqZWN0LmRlZmluZVByb3BlcnR5JiZPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO2Zvcih2YXIgbSBpbiBhKWlmKG0hPT0iZGVmYXVsdCImJnt9Lmhhc093blByb3BlcnR5LmNhbGwoYSxtKSl7dmFyIGc9Zj9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsbSk6bnVsbDtnJiYoZy5nZXR8fGcuc2V0KT9PYmplY3QuZGVmaW5lUHJvcGVydHkocyxtLGcpOnNbbV09YVttXX1yZXR1cm4gcy5kZWZhdWx0PWEsbCYmbC5zZXQoYSxzKSxzfXQuZXhwb3J0cz1yLHQuZXhwb3J0cy5fX2VzTW9kdWxlPSEwLHQuZXhwb3J0cy5kZWZhdWx0PXQuZXhwb3J0c30sNjg4NzI6ZnVuY3Rpb24odCl7ZnVuY3Rpb24gbihlLG8pe3ZhciBpPWU9PW51bGw/bnVsbDp0eXBlb2YgU3ltYm9sIT0idW5kZWZpbmVkIiYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlWyJAQGl0ZXJhdG9yIl07aWYoaSE9bnVsbCl7dmFyIHIsYSx1LGwscz1bXSxmPSEwLG09ITE7dHJ5e2lmKHU9KGk9aS5jYWxsKGUpKS5uZXh0LG89PT0wKXtpZihPYmplY3QoaSkhPT1pKXJldHVybjtmPSExfWVsc2UgZm9yKDshKGY9KHI9dS5jYWxsKGkpKS5kb25lKSYmKHMucHVzaChyLnZhbHVlKSxzLmxlbmd0aCE9PW8pO2Y9ITApO31jYXRjaChnKXttPSEwLGE9Z31maW5hbGx5e3RyeXtpZighZiYmaS5yZXR1cm4hPW51bGwmJihsPWkucmV0dXJuKCksT2JqZWN0KGwpIT09bCkpcmV0dXJufWZpbmFsbHl7aWYobSl0aHJvdyBhfX1yZXR1cm4gc319dC5leHBvcnRzPW4sdC5leHBvcnRzLl9fZXNNb2R1bGU9ITAsdC5leHBvcnRzLmRlZmF1bHQ9dC5leHBvcnRzfSwxMjIxODpmdW5jdGlvbih0KXtmdW5jdGlvbiBuKCl7dGhyb3cgbmV3IFR5cGVFcnJvcihgSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS4KK0luIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5gKX10LmV4cG9ydHM9bix0LmV4cG9ydHMuX19lc01vZHVsZT0hMCx0LmV4cG9ydHMuZGVmYXVsdD10LmV4cG9ydHN9LDQyMTIyOmZ1bmN0aW9uKHQsbixlKXt2YXIgbz1lKDM4NDE2KTtmdW5jdGlvbiBpKGEsdSl7dmFyIGw9T2JqZWN0LmtleXMoYSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHM9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhhKTt1JiYocz1zLmZpbHRlcihmdW5jdGlvbihmKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhLGYpLmVudW1lcmFibGV9KSksbC5wdXNoLmFwcGx5KGwscyl9cmV0dXJuIGx9ZnVuY3Rpb24gcihhKXtmb3IodmFyIHU9MTt1PGFyZ3VtZW50cy5sZW5ndGg7dSsrKXt2YXIgbD1hcmd1bWVudHNbdV0hPW51bGw/YXJndW1lbnRzW3VdOnt9O3UlMj9pKE9iamVjdChsKSwhMCkuZm9yRWFjaChmdW5jdGlvbihzKXtvKGEscyxsW3NdKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGEsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobCkpOmkoT2JqZWN0KGwpKS5mb3JFYWNoKGZ1bmN0aW9uKHMpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShhLHMsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsLHMpKX0pfXJldHVybiBhfXQuZXhwb3J0cz1yLHQuZXhwb3J0cy5fX2VzTW9kdWxlPSEwLHQuZXhwb3J0cy5kZWZhdWx0PXQuZXhwb3J0c30sNzAyMTU6ZnVuY3Rpb24odCxuLGUpe3ZhciBvPWUoNzA3MSk7ZnVuY3Rpb24gaShyLGEpe2lmKHI9PW51bGwpcmV0dXJue307dmFyIHUsbCxzPW8ocixhKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgZj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHIpO2ZvcihsPTA7bDxmLmxlbmd0aDtsKyspdT1mW2xdLGEuaW5kZXhPZih1KT09PS0xJiZ7fS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHIsdSkmJihzW3VdPXJbdV0pfXJldHVybiBzfXQuZXhwb3J0cz1pLHQuZXhwb3J0cy5fX2VzTW9kdWxlPSEwLHQuZXhwb3J0cy5kZWZhdWx0PXQuZXhwb3J0c30sNzA3MTpmdW5jdGlvbih0KXtmdW5jdGlvbiBuKGUsbyl7aWYoZT09bnVsbClyZXR1cm57fTt2YXIgaT17fTtmb3IodmFyIHIgaW4gZSlpZih7fS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikpe2lmKG8uaW5kZXhPZihyKSE9PS0xKWNvbnRpbnVlO2lbcl09ZVtyXX1yZXR1cm4gaX10LmV4cG9ydHM9bix0LmV4cG9ydHMuX19lc01vZHVsZT0hMCx0LmV4cG9ydHMuZGVmYXVsdD10LmV4cG9ydHN9LDI3NDI0OmZ1bmN0aW9uKHQsbixlKXt2YXIgbz1lKDg1MzcyKSxpPWUoNjg4NzIpLHI9ZSg4NjExNiksYT1lKDEyMjE4KTtmdW5jdGlvbiB1KGwscyl7cmV0dXJuIG8obCl8fGkobCxzKXx8cihsLHMpfHxhKCl9dC5leHBvcnRzPXUsdC5leHBvcnRzLl9fZXNNb2R1bGU9ITAsdC5leHBvcnRzLmRlZmF1bHQ9dC5leHBvcnRzfSw5NTAzNjpmdW5jdGlvbih0LG4sZSl7dmFyIG89ZSgxODY5OCkuZGVmYXVsdDtmdW5jdGlvbiBpKHIsYSl7aWYobyhyKSE9Im9iamVjdCJ8fCFyKXJldHVybiByO3ZhciB1PXJbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih1IT09dm9pZCAwKXt2YXIgbD11LmNhbGwocixhfHwiZGVmYXVsdCIpO2lmKG8obCkhPSJvYmplY3QiKXJldHVybiBsO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKGE9PT0ic3RyaW5nIj9TdHJpbmc6TnVtYmVyKShyKX10LmV4cG9ydHM9aSx0LmV4cG9ydHMuX19lc01vZHVsZT0hMCx0LmV4cG9ydHMuZGVmYXVsdD10LmV4cG9ydHN9LDY0MDYyOmZ1bmN0aW9uKHQsbixlKXt2YXIgbz1lKDE4Njk4KS5kZWZhdWx0LGk9ZSg5NTAzNik7ZnVuY3Rpb24gcihhKXt2YXIgdT1pKGEsInN0cmluZyIpO3JldHVybiBvKHUpPT0ic3ltYm9sIj91OnUrIiJ9dC5leHBvcnRzPXIsdC5leHBvcnRzLl9fZXNNb2R1bGU9ITAsdC5leHBvcnRzLmRlZmF1bHQ9dC5leHBvcnRzfSwxODY5ODpmdW5jdGlvbih0KXtmdW5jdGlvbiBuKGUpeyJAYmFiZWwvaGVscGVycyAtIHR5cGVvZiI7cmV0dXJuIHQuZXhwb3J0cz1uPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJnR5cGVvZiBTeW1ib2wuaXRlcmF0b3I9PSJzeW1ib2wiP2Z1bmN0aW9uKG8pe3JldHVybiB0eXBlb2Ygb306ZnVuY3Rpb24obyl7cmV0dXJuIG8mJnR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJm8uY29uc3RydWN0b3I9PT1TeW1ib2wmJm8hPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBvfSx0LmV4cG9ydHMuX19lc01vZHVsZT0hMCx0LmV4cG9ydHMuZGVmYXVsdD10LmV4cG9ydHMsbihlKX10LmV4cG9ydHM9bix0LmV4cG9ydHMuX19lc01vZHVsZT0hMCx0LmV4cG9ydHMuZGVmYXVsdD10LmV4cG9ydHN9LDg2MTE2OmZ1bmN0aW9uKHQsbixlKXt2YXIgbz1lKDczODk3KTtmdW5jdGlvbiBpKHIsYSl7aWYocil7aWYodHlwZW9mIHI9PSJzdHJpbmciKXJldHVybiBvKHIsYSk7dmFyIHU9e30udG9TdHJpbmcuY2FsbChyKS5zbGljZSg4LC0xKTtyZXR1cm4gdT09PSJPYmplY3QiJiZyLmNvbnN0cnVjdG9yJiYodT1yLmNvbnN0cnVjdG9yLm5hbWUpLHU9PT0iTWFwInx8dT09PSJTZXQiP0FycmF5LmZyb20ocik6dT09PSJBcmd1bWVudHMifHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdCh1KT9vKHIsYSk6dm9pZCAwfX10LmV4cG9ydHM9aSx0LmV4cG9ydHMuX19lc01vZHVsZT0hMCx0LmV4cG9ydHMuZGVmYXVsdD10LmV4cG9ydHN9fV0pOwpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy8xNTgxLjMwMWIxMDI1LmFzeW5jLmpzIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy8xNTgxLjMwMWIxMDI1LmFzeW5jLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUxNjFhODMKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzE1ODEuMzAxYjEwMjUuYXN5bmMuanMKQEAgLTAsMCArMSBAQAorInVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvPXNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm98fFtdKS5wdXNoKFtbMTU4MV0sezU2NjkyOmZ1bmN0aW9uKEEsdixlKXtlLnIodiksZS5kKHYse2RlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4gRn19KTt2YXIgbD1lKDE1MDA5KSxwPWUubihsKSxfPWUoOTkyODkpLFc9ZS5uKF8pLFo9ZSg1NTc0KSxPPWUubihaKSxNPWUoNjcyOTQpLEM9ZSg3Njc3Mik7ZnVuY3Rpb24gSSgpe3JldHVybigwLEMucmVxdWVzdCkoIi9hcGkvbW9uaXRvci9jYWNoZS9nZXROYW1lcyIse21ldGhvZDoiZ2V0In0pfWZ1bmN0aW9uIFQoQil7cmV0dXJuKDAsQy5yZXF1ZXN0KSgiL2FwaS9tb25pdG9yL2NhY2hlL2dldEtleXMvIitCLHttZXRob2Q6ImdldCJ9KX1mdW5jdGlvbiBmKEIsTil7cmV0dXJuKDAsQy5yZXF1ZXN0KSgiL2FwaS9tb25pdG9yL2NhY2hlL2dldFZhbHVlLyIrQisiLyIrTix7bWV0aG9kOiJnZXQifSl9ZnVuY3Rpb24gYShCKXtyZXR1cm4oMCxDLnJlcXVlc3QpKCIvYXBpL21vbml0b3IvY2FjaGUvY2xlYXJDYWNoZU5hbWUvIitCLHttZXRob2Q6ImRlbGV0ZSJ9KX1mdW5jdGlvbiBzKEIpe3JldHVybigwLEMucmVxdWVzdCkoIi9hcGkvbW9uaXRvci9jYWNoZS9jbGVhckNhY2hlS2V5LyIrQix7bWV0aG9kOiJkZWxldGUifSl9ZnVuY3Rpb24gbygpe3JldHVybigwLEMucmVxdWVzdCkoIi9hcGkvbW9uaXRvci9jYWNoZS9jbGVhckNhY2hlQWxsIix7bWV0aG9kOiJkZWxldGUifSl9dmFyIHI9ZSgyNTI3OCksbj1lKDk5ODU5KSx1PWUoMjQ1MyksZD1lKDgzNjIyKSxjPWUoNzEyMzApLG09ZSgxNTc0NikseD1lKDQzOTMpLEQ9ZSg5NjE1NCksRT1lKDU3MDg5KSxqPWUoMzMxNjApLEw9ZSg5NzI2OSksdD1lKDg1ODkzKSxKPXIuWi5UZXh0QXJlYSxxPWZ1bmN0aW9uKCl7dmFyIE49KDAsTS51c2VTdGF0ZSkoW10pLEs9TygpKE4sMiksej1LWzBdLHc9S1sxXSxlZT0oMCxNLnVzZVN0YXRlKShbXSksaz1PKCkoZWUsMiksUj1rWzBdLEc9a1sxXSxVPSgwLE0udXNlU3RhdGUpKFtdKSxIPU8oKShVLDIpLHRlPUhbMF0sbmU9SFsxXSxhZT1uLloudXNlRm9ybSgpLG9lPU8oKShhZSwxKSwkPW9lWzBdLFE9ZnVuY3Rpb24oKXtJKCkudGhlbihmdW5jdGlvbihpKXtpLmNvZGU9PT0yMDAmJncoaS5kYXRhKX0pfTsoMCxNLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtRKCl9LFtdKTt2YXIgYj1mdW5jdGlvbihpKXtUKGkpLnRoZW4oZnVuY3Rpb24oZyl7aWYoZy5jb2RlPT09MjAwKXt2YXIgUD0wLFM9Zy5kYXRhLm1hcChmdW5jdGlvbihzZSl7cmV0dXJue2luZGV4OlArKyxjYWNoZUtleTpzZX19KTtuZShTKX19KX0sVj1mdW5jdGlvbigpe3ZhciBoPVcoKShwKCkoKS5tYXJrKGZ1bmN0aW9uIGkoKXtyZXR1cm4gcCgpKCkud3JhcChmdW5jdGlvbihQKXtmb3IoOzspc3dpdGNoKFAucHJldj1QLm5leHQpe2Nhc2UgMDpvKCkudGhlbihmdW5jdGlvbihTKXtTLmNvZGU9PT0yMDAmJnUuWlAuc3VjY2VzcygiXHU2RTA1XHU3NDA2XHU1MTY4XHU5MEU4XHU3RjEzXHU1QjU4XHU2MjEwXHU1MjlGIil9KTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBQLnN0b3AoKX19LGkpfSkpO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBoLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCkscmU9ZnVuY3Rpb24oaSl7dS5aUC5lcnJvcigiRmFpbGVkOiIsaSl9LGxlPWZ1bmN0aW9uKCl7USgpLHUuWlAuc3VjY2VzcygiXHU1MjM3XHU2NUIwXHU3RjEzXHU1QjU4XHU1MjE3XHU4ODY4XHU2MjEwXHU1MjlGIil9LFg9ZnVuY3Rpb24oKXtiKFIpLHUuWlAuc3VjY2VzcygiXHU1MjM3XHU2NUIwXHU5NTJFXHU1NDBEXHU1MjE3XHU4ODY4XHU2MjEwXHU1MjlGIil9LFk9W3t0aXRsZToiXHU3RjEzXHU1QjU4XHU1NDBEXHU3OUYwIixkYXRhSW5kZXg6ImNhY2hlTmFtZSIsa2V5OiJjYWNoZU5hbWUiLHJlbmRlcjpmdW5jdGlvbihpLGcpe3JldHVybiBnLmNhY2hlTmFtZS5yZXBsYWNlKCI6IiwiIil9fSx7dGl0bGU6Ilx1NTkwN1x1NkNFOCIsZGF0YUluZGV4OiJyZW1hcmsiLGtleToicmVtYXJrIn0se3RpdGxlOigwLHQuanN4KShDLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJwYWdlcy5zZWFyY2hUYWJsZS50aXRsZU9wdGlvbiIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjRDRFx1NEY1QyJ9KSxkYXRhSW5kZXg6Im9wdGlvbiIsd2lkdGg6IjQwcHgiLHZhbHVlVHlwZToib3B0aW9uIixyZW5kZXI6ZnVuY3Rpb24oaSxnKXtyZXR1cm5bKDAsdC5qc3gpKGQuWlAse3R5cGU6ImxpbmsiLHNpemU6InNtYWxsIixkYW5nZXI6ITAsb25DbGljazpmdW5jdGlvbigpe2EoZy5jYWNoZU5hbWUpLnRoZW4oZnVuY3Rpb24oUyl7Uy5jb2RlPT09MjAwJiYodS5aUC5zdWNjZXNzKCJcdTZFMDVcdTc0MDZcdTdGMTNcdTVCNThcdTU0MERcdTc5RjBbIitnLmNhY2hlTmFtZSsiXVx1NjIxMFx1NTI5RiIpLGIoUikpfSl9LGNoaWxkcmVuOigwLHQuanN4KShDLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJwYWdlcy5zZWFyY2hUYWJsZS5kZWxldGUiLGRlZmF1bHRNZXNzYWdlOiJcdTUyMjBcdTk2NjQifSl9LCJyZW1vdmUiKV19fV0seT1be3RpdGxlOiJcdTVFOEZcdTUzRjciLGRhdGFJbmRleDoiaW5kZXgiLGtleToiaW5kZXgifSx7dGl0bGU6Ilx1N0YxM1x1NUI1OFx1OTUyRVx1NTQwRCIsZGF0YUluZGV4OiJjYWNoZUtleSIsa2V5OiJjYWNoZUtleSIscmVuZGVyOmZ1bmN0aW9uKGksZyl7cmV0dXJuIGcuY2FjaGVLZXkucmVwbGFjZShSLCIiKX19LHt0aXRsZTooMCx0LmpzeCkoQy5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoicGFnZXMuc2VhcmNoVGFibGUudGl0bGVPcHRpb24iLGRlZmF1bHRNZXNzYWdlOiJcdTY0Q0RcdTRGNUMifSksZGF0YUluZGV4OiJvcHRpb24iLHdpZHRoOiI0MHB4Iix2YWx1ZVR5cGU6Im9wdGlvbiIscmVuZGVyOmZ1bmN0aW9uKGksZyl7cmV0dXJuWygwLHQuanN4KShkLlpQLHt0eXBlOiJsaW5rIixzaXplOiJzbWFsbCIsZGFuZ2VyOiEwLG9uQ2xpY2s6ZnVuY3Rpb24oKXtjb25zb2xlLmxvZyhnKSxzKGcuY2FjaGVLZXkpLnRoZW4oZnVuY3Rpb24oUyl7Uy5jb2RlPT09MjAwJiYodS5aUC5zdWNjZXNzKCJcdTZFMDVcdTc0MDZcdTdGMTNcdTVCNThcdTk1MkVcdTU0MERbIitnLmNhY2hlS2V5KyJdXHU2MjEwXHU1MjlGIiksYihSKSl9KX0sY2hpbGRyZW46KDAsdC5qc3gpKEMuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InBhZ2VzLnNlYXJjaFRhYmxlLmRlbGV0ZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NTIyMFx1OTY2NCJ9KX0sInJlbW92ZSIpXX19XTtyZXR1cm4oMCx0LmpzeCkoImRpdiIse2NoaWxkcmVuOigwLHQuanN4cykoYy5aLHtndXR0ZXI6WzI0LDI0XSxjaGlsZHJlbjpbKDAsdC5qc3gpKG0uWix7c3Bhbjo4LGNoaWxkcmVuOigwLHQuanN4KSh4Llose3RpdGxlOiJcdTdGMTNcdTVCNThcdTUyMTdcdTg4NjgiLGV4dHJhOigwLHQuanN4KShkLlpQLHtpY29uOigwLHQuanN4KShqLlose30pLG9uQ2xpY2s6ZnVuY3Rpb24oKXtsZSgpfSx0eXBlOiJsaW5rIn0pLGNsYXNzTmFtZTpFLlouY2FyZCxjaGlsZHJlbjooMCx0LmpzeCkoRC5aLHtyb3dLZXk6ImNhY2hlTmFtZSIsZGF0YVNvdXJjZTp6LGNvbHVtbnM6WSxvblJvdzpmdW5jdGlvbihpKXtyZXR1cm57b25DbGljazpmdW5jdGlvbigpe0coaS5jYWNoZU5hbWUpLGIoaS5jYWNoZU5hbWUpfX19fSl9KX0pLCgwLHQuanN4KShtLlose3NwYW46OCxjaGlsZHJlbjooMCx0LmpzeCkoeC5aLHt0aXRsZToiXHU5NTJFXHU1NDBEXHU1MjE3XHU4ODY4IixleHRyYTooMCx0LmpzeCkoZC5aUCx7aWNvbjooMCx0LmpzeCkoai5aLHt9KSxvbkNsaWNrOmZ1bmN0aW9uKCl7WCgpfSx0eXBlOiJsaW5rIn0pLGNsYXNzTmFtZTpFLlouY2FyZCxjaGlsZHJlbjooMCx0LmpzeCkoRC5aLHtyb3dLZXk6ImluZGV4IixkYXRhU291cmNlOnRlLGNvbHVtbnM6eSxvblJvdzpmdW5jdGlvbihpKXtyZXR1cm57b25DbGljazpmdW5jdGlvbigpe2YoUixpLmNhY2hlS2V5KS50aGVuKGZ1bmN0aW9uKFApe1AuY29kZT09PTIwMCYmKCQucmVzZXRGaWVsZHMoKSwkLnNldEZpZWxkc1ZhbHVlKHtjYWNoZU5hbWU6UC5kYXRhLmNhY2hlTmFtZSxjYWNoZUtleTpQLmRhdGEuY2FjaGVLZXksY2FjaGVWYWx1ZTpQLmRhdGEuY2FjaGVWYWx1ZSxyZW1hcms6UC5kYXRhLnJlbWFya30pKX0pfX19fSl9KX0pLCgwLHQuanN4KShtLlose3NwYW46OCxjaGlsZHJlbjooMCx0LmpzeCkoeC5aLHt0aXRsZToiXHU3RjEzXHU1QjU4XHU1MTg1XHU1QkI5IixleHRyYTooMCx0LmpzeCkoZC5aUCx7aWNvbjooMCx0LmpzeCkoai5aLHt9KSxvbkNsaWNrOmZ1bmN0aW9uKCl7VigpfSx0eXBlOiJsaW5rIixjaGlsZHJlbjoiXHU2RTA1XHU3NDA2XHU1MTY4XHU5MEU4In0pLGNsYXNzTmFtZTpFLlouY2FyZCxjaGlsZHJlbjooMCx0LmpzeHMpKEwuQSx7bmFtZToiYmFzaWMiLGZvcm06JCxsYWJlbENvbDp7c3Bhbjo4fSx3cmFwcGVyQ29sOntzcGFuOjE2fSxvbkZpbmlzaDpWLG9uRmluaXNoRmFpbGVkOnJlLGF1dG9Db21wbGV0ZToib2ZmIixjaGlsZHJlbjpbKDAsdC5qc3gpKG4uWi5JdGVtLHtsYWJlbDoiXHU3RjEzXHU1QjU4XHU1NDBEXHU3OUYwIixuYW1lOiJjYWNoZU5hbWUiLGNoaWxkcmVuOigwLHQuanN4KShyLlose30pfSksKDAsdC5qc3gpKG4uWi5JdGVtLHtsYWJlbDoiXHU3RjEzXHU1QjU4XHU5NTJFXHU1NDBEIixuYW1lOiJjYWNoZUtleSIsY2hpbGRyZW46KDAsdC5qc3gpKHIuWix7fSl9KSwoMCx0LmpzeCkobi5aLkl0ZW0se2xhYmVsOiJcdTdGMTNcdTVCNThcdTUxODVcdTVCQjkiLG5hbWU6ImNhY2hlVmFsdWUiLGNoaWxkcmVuOigwLHQuanN4KShKLHthdXRvU2l6ZTp7bWluUm93czoyfX0pfSldfSl9KX0pXX0pfSl9LEY9cX0sNTcwODk6ZnVuY3Rpb24oQSx2KXt2Llo9e2NhcmQ6ImNhcmRfX19mR05fVCIsbWluaUNoYXJ0OiJtaW5pQ2hhcnRfX19Rdm0zcSIsY2hhcnRDb250ZW50OiJjaGFydENvbnRlbnRfX19rZVE2bCIsY2hhcnRMb2FkaW5nOiJjaGFydExvYWRpbmdfX193Rk0xZyJ9fSw4MTY0MzpmdW5jdGlvbihBLHYsZSl7ZS5kKHYse1o6ZnVuY3Rpb24oKXtyZXR1cm4gbH19KTtjb25zdCBsPXA9PnA/dHlwZW9mIHA9PSJmdW5jdGlvbiI/cCgpOnA6bnVsbH0sMTU3NDY6ZnVuY3Rpb24oQSx2LGUpe3ZhciBsPWUoMjE1ODQpO3YuWj1sLlp9LDY2MzMwOmZ1bmN0aW9uKEEsdixlKXtlLmQodix7YVY6ZnVuY3Rpb24oKXtyZXR1cm4gSX19KTt2YXIgbD1lKDY3Mjk0KSxwPWUoOTM5NjcpLF89ZS5uKHApLFc9ZSg5MjQxOSksWj1lKDgxNjQzKSxPPWUoNTMxMjQpLE09ZSgyMDEzNiksQz1mdW5jdGlvbihhLHMpe3ZhciBvPXt9O2Zvcih2YXIgciBpbiBhKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhLHIpJiZzLmluZGV4T2Yocik8MCYmKG9bcl09YVtyXSk7aWYoYSE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBuPTAscj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGEpO248ci5sZW5ndGg7bisrKXMuaW5kZXhPZihyW25dKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoYSxyW25dKSYmKG9bcltuXV09YVtyW25dXSk7cmV0dXJuIG99O2NvbnN0IEk9YT0+e2xldHt0aXRsZTpzLGNvbnRlbnQ6byxwcmVmaXhDbHM6cn09YTtyZXR1cm4hcyYmIW8/bnVsbDpsLmNyZWF0ZUVsZW1lbnQobC5GcmFnbWVudCxudWxsLHMmJmwuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmAke3J9LXRpdGxlYH0scyksbyYmbC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YCR7cn0taW5uZXItY29udGVudGB9LG8pKX0sVD1hPT57Y29uc3R7aGFzaElkOnMscHJlZml4Q2xzOm8sY2xhc3NOYW1lOnIsc3R5bGU6bixwbGFjZW1lbnQ6dT0idG9wIix0aXRsZTpkLGNvbnRlbnQ6YyxjaGlsZHJlbjptfT1hLHg9KDAsWi5aKShkKSxEPSgwLFouWikoYyksRT1fKCkocyxvLGAke299LXB1cmVgLGAke299LXBsYWNlbWVudC0ke3V9YCxyKTtyZXR1cm4gbC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6RSxzdHlsZTpufSxsLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpgJHtvfS1hcnJvd2B9KSxsLmNyZWF0ZUVsZW1lbnQoVy5HLE9iamVjdC5hc3NpZ24oe30sYSx7Y2xhc3NOYW1lOnMscHJlZml4Q2xzOm99KSxtfHxsLmNyZWF0ZUVsZW1lbnQoSSx7cHJlZml4Q2xzOm8sdGl0bGU6eCxjb250ZW50OkR9KSkpfSxmPWE9Pntjb25zdHtwcmVmaXhDbHM6cyxjbGFzc05hbWU6b309YSxyPUMoYSxbInByZWZpeENscyIsImNsYXNzTmFtZSJdKSx7Z2V0UHJlZml4Q2xzOm59PWwudXNlQ29udGV4dChPLkVfKSx1PW4oInBvcG92ZXIiLHMpLFtkLGMsbV09KDAsTS5aKSh1KTtyZXR1cm4gZChsLmNyZWF0ZUVsZW1lbnQoVCxPYmplY3QuYXNzaWduKHt9LHIse3ByZWZpeENsczp1LGhhc2hJZDpjLGNsYXNzTmFtZTpfKCkobyxtKX0pKSl9O3YuWlA9Zn0sNTUyNDE6ZnVuY3Rpb24oQSx2LGUpe3ZhciBsPWUoNjcyOTQpLHA9ZSg5Mzk2NyksXz1lLm4ocCksVz1lKDIxNzcwKSxaPWUoMTUxMDUpLE89ZSg4MTY0MyksTT1lKDMzNjAzKSxDPWUoOTYxNTkpLEk9ZSg4MzA2MiksVD1lKDY2MzMwKSxmPWUoNTMxMjQpLGE9ZSgyMDEzNikscz1mdW5jdGlvbihuLHUpe3ZhciBkPXt9O2Zvcih2YXIgYyBpbiBuKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLGMpJiZ1LmluZGV4T2YoYyk8MCYmKGRbY109bltjXSk7aWYobiE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBtPTAsYz1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG4pO208Yy5sZW5ndGg7bSsrKXUuaW5kZXhPZihjW21dKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwobixjW21dKSYmKGRbY1ttXV09bltjW21dXSk7cmV0dXJuIGR9O2NvbnN0IHI9bC5mb3J3YXJkUmVmKChuLHUpPT57dmFyIGQsYztjb25zdHtwcmVmaXhDbHM6bSx0aXRsZTp4LGNvbnRlbnQ6RCxvdmVybGF5Q2xhc3NOYW1lOkUscGxhY2VtZW50Omo9InRvcCIsdHJpZ2dlcjpMPSJob3ZlciIsY2hpbGRyZW46dCxtb3VzZUVudGVyRGVsYXk6Sj0uMSxtb3VzZUxlYXZlRGVsYXk6cT0uMSxvbk9wZW5DaGFuZ2U6RixvdmVybGF5U3R5bGU6Qj17fSxzdHlsZXM6TixjbGFzc05hbWVzOkt9PW4sej1zKG4sWyJwcmVmaXhDbHMiLCJ0aXRsZSIsImNvbnRlbnQiLCJvdmVybGF5Q2xhc3NOYW1lIiwicGxhY2VtZW50IiwidHJpZ2dlciIsImNoaWxkcmVuIiwibW91c2VFbnRlckRlbGF5IiwibW91c2VMZWF2ZURlbGF5Iiwib25PcGVuQ2hhbmdlIiwib3ZlcmxheVN0eWxlIiwic3R5bGVzIiwiY2xhc3NOYW1lcyJdKSx7Z2V0UHJlZml4Q2xzOncsY2xhc3NOYW1lOmVlLHN0eWxlOmssY2xhc3NOYW1lczpSLHN0eWxlczpHfT0oMCxmLmRqKSgicG9wb3ZlciIpLFU9dygicG9wb3ZlciIsbSksW0gsdGUsbmVdPSgwLGEuWikoVSksYWU9dygpLG9lPV8oKShFLHRlLG5lLGVlLFIucm9vdCxLPT1udWxsP3ZvaWQgMDpLLnJvb3QpLCQ9XygpKFIuYm9keSxLPT1udWxsP3ZvaWQgMDpLLmJvZHkpLFtRLGJdPSgwLFcuWikoITEse3ZhbHVlOihkPW4ub3BlbikhPT1udWxsJiZkIT09dm9pZCAwP2Q6bi52aXNpYmxlLGRlZmF1bHRWYWx1ZTooYz1uLmRlZmF1bHRPcGVuKSE9PW51bGwmJmMhPT12b2lkIDA/YzpuLmRlZmF1bHRWaXNpYmxlfSksVj0oeSxoKT0+e2IoeSwhMCksRj09bnVsbHx8Rih5LGgpfSxyZT15PT57eS5rZXlDb2RlPT09Wi5aLkVTQyYmVighMSx5KX0sbGU9eT0+e1YoeSl9LFg9KDAsTy5aKSh4KSxZPSgwLE8uWikoRCk7cmV0dXJuIEgobC5jcmVhdGVFbGVtZW50KEkuWixPYmplY3QuYXNzaWduKHtwbGFjZW1lbnQ6aix0cmlnZ2VyOkwsbW91c2VFbnRlckRlbGF5OkosbW91c2VMZWF2ZURlbGF5OnF9LHose3ByZWZpeENsczpVLGNsYXNzTmFtZXM6e3Jvb3Q6b2UsYm9keTokfSxzdHlsZXM6e3Jvb3Q6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxHLnJvb3QpLGspLEIpLE49PW51bGw/dm9pZCAwOk4ucm9vdCksYm9keTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sRy5ib2R5KSxOPT1udWxsP3ZvaWQgMDpOLmJvZHkpfSxyZWY6dSxvcGVuOlEsb25PcGVuQ2hhbmdlOmxlLG92ZXJsYXk6WHx8WT9sLmNyZWF0ZUVsZW1lbnQoVC5hVix7cHJlZml4Q2xzOlUsdGl0bGU6WCxjb250ZW50Oll9KTpudWxsLHRyYW5zaXRpb25OYW1lOigwLE0ubSkoYWUsInpvb20tYmlnIix6LnRyYW5zaXRpb25OYW1lKSwiZGF0YS1wb3BvdmVyLWluamVjdCI6ITB9KSwoMCxDLlRtKSh0LHtvbktleURvd246eT0+e3ZhciBoLGk7bC5pc1ZhbGlkRWxlbWVudCh0KSYmKChpPXQ9PW51bGw/dm9pZCAwOihoPXQucHJvcHMpLm9uS2V5RG93bik9PT1udWxsfHxpPT09dm9pZCAwfHxpLmNhbGwoaCx5KSkscmUoeSl9fSkpKX0pO3IuX0ludGVybmFsUGFuZWxEb05vdFVzZU9yWW91V2lsbEJlRmlyZWQ9VC5aUCx2Llo9cn0sMjAxMzY6ZnVuY3Rpb24oQSx2LGUpe3ZhciBsPWUoMTQ3NDcpLHA9ZSg1MDQzOCksXz1lKDk3NDE0KSxXPWUoNzk1MTEpLFo9ZSg4Nzk2KSxPPWUoODM1NTkpLE09ZSg4MzI2Mik7Y29uc3QgQz1mPT57Y29uc3R7Y29tcG9uZW50Q2xzOmEscG9wb3ZlckNvbG9yOnMsdGl0bGVNaW5XaWR0aDpvLGZvbnRXZWlnaHRTdHJvbmc6cixpbm5lclBhZGRpbmc6bixib3hTaGFkb3dTZWNvbmRhcnk6dSxjb2xvclRleHRIZWFkaW5nOmQsYm9yZGVyUmFkaXVzTEc6Yyx6SW5kZXhQb3B1cDptLHRpdGxlTWFyZ2luQm90dG9tOngsY29sb3JCZ0VsZXZhdGVkOkQscG9wb3ZlckJnOkUsdGl0bGVCb3JkZXJCb3R0b206aixpbm5lckNvbnRlbnRQYWRkaW5nOkwsdGl0bGVQYWRkaW5nOnR9PWY7cmV0dXJuW3tbYV06T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCgwLGwuV2YpKGYpKSx7cG9zaXRpb246ImFic29sdXRlIix0b3A6MCxsZWZ0Ontfc2tpcF9jaGVja186ITAsdmFsdWU6MH0sekluZGV4Om0sZm9udFdlaWdodDoibm9ybWFsIix3aGl0ZVNwYWNlOiJub3JtYWwiLHRleHRBbGlnbjoic3RhcnQiLGN1cnNvcjoiYXV0byIsdXNlclNlbGVjdDoidGV4dCIsIi0tdmFsaWQtb2Zmc2V0LXgiOiJ2YXIoLS1hcnJvdy1vZmZzZXQtaG9yaXpvbnRhbCwgdmFyKC0tYXJyb3cteCkpIix0cmFuc2Zvcm1PcmlnaW46WyJ2YXIoLS12YWxpZC1vZmZzZXQteCwgNTAlKSIsInZhcigtLWFycm93LXksIDUwJSkiXS5qb2luKCIgIiksIi0tYW50ZC1hcnJvdy1iYWNrZ3JvdW5kLWNvbG9yIjpELHdpZHRoOiJtYXgtY29udGVudCIsbWF4V2lkdGg6IjEwMHZ3IiwiJi1ydGwiOntkaXJlY3Rpb246InJ0bCJ9LCImLWhpZGRlbiI6e2Rpc3BsYXk6Im5vbmUifSxbYCR7YX0tY29udGVudGBdOntwb3NpdGlvbjoicmVsYXRpdmUifSxbYCR7YX0taW5uZXJgXTp7YmFja2dyb3VuZENvbG9yOkUsYmFja2dyb3VuZENsaXA6InBhZGRpbmctYm94Iixib3JkZXJSYWRpdXM6Yyxib3hTaGFkb3c6dSxwYWRkaW5nOm59LFtgJHthfS10aXRsZWBdOnttaW5XaWR0aDpvLG1hcmdpbkJvdHRvbTp4LGNvbG9yOmQsZm9udFdlaWdodDpyLGJvcmRlckJvdHRvbTpqLHBhZGRpbmc6dH0sW2Ake2F9LWlubmVyLWNvbnRlbnRgXTp7Y29sb3I6cyxwYWRkaW5nOkx9fSl9LCgwLF8uWlApKGYsInZhcigtLWFudGQtYXJyb3ctYmFja2dyb3VuZC1jb2xvcikiKSx7W2Ake2F9LXB1cmVgXTp7cG9zaXRpb246InJlbGF0aXZlIixtYXhXaWR0aDoibm9uZSIsbWFyZ2luOmYuc2l6ZVBvcHVwQXJyb3csZGlzcGxheToiaW5saW5lLWJsb2NrIixbYCR7YX0tY29udGVudGBdOntkaXNwbGF5OiJpbmxpbmUtYmxvY2sifX19XX0sST1mPT57Y29uc3R7Y29tcG9uZW50Q2xzOmF9PWY7cmV0dXJue1thXTpaLmkubWFwKHM9Pntjb25zdCBvPWZbYCR7c302YF07cmV0dXJue1tgJiR7YX0tJHtzfWBdOnsiLS1hbnRkLWFycm93LWJhY2tncm91bmQtY29sb3IiOm8sW2Ake2F9LWlubmVyYF06e2JhY2tncm91bmRDb2xvcjpvfSxbYCR7YX0tYXJyb3dgXTp7YmFja2dyb3VuZDoidHJhbnNwYXJlbnQifX19fSl9fSxUPWY9Pntjb25zdHtsaW5lV2lkdGg6YSxjb250cm9sSGVpZ2h0OnMsZm9udEhlaWdodDpvLHBhZGRpbmc6cix3aXJlZnJhbWU6bix6SW5kZXhQb3B1cEJhc2U6dSxib3JkZXJSYWRpdXNMRzpkLG1hcmdpblhTOmMsbGluZVR5cGU6bSxjb2xvclNwbGl0OngscGFkZGluZ1NNOkR9PWYsRT1zLW8saj1FLzIsTD1FLzItYSx0PXI7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt0aXRsZU1pbldpZHRoOjE3Nyx6SW5kZXhQb3B1cDp1KzMwfSwoMCxXLncpKGYpKSwoMCxfLndaKSh7Y29udGVudFJhZGl1czpkLGxpbWl0VmVydGljYWxSYWRpdXM6ITB9KSkse2lubmVyUGFkZGluZzpuPzA6MTIsdGl0bGVNYXJnaW5Cb3R0b206bj8wOmMsdGl0bGVQYWRkaW5nOm4/YCR7an1weCAke3R9cHggJHtMfXB4YDowLHRpdGxlQm9yZGVyQm90dG9tOm4/YCR7YX1weCAke219ICR7eH1gOiJub25lIixpbm5lckNvbnRlbnRQYWRkaW5nOm4/YCR7RH1weCAke3R9cHhgOjB9KX07di5aPSgwLE8uSSQpKCJQb3BvdmVyIixmPT57Y29uc3R7Y29sb3JCZ0VsZXZhdGVkOmEsY29sb3JUZXh0OnN9PWYsbz0oMCxNLklYKShmLHtwb3BvdmVyQmc6YSxwb3BvdmVyQ29sb3I6c30pO3JldHVybltDKG8pLEkobyksKDAscC5feSkobywiem9vbS1iaWciKV19LFQse3Jlc2V0U3R5bGU6ITEsZGVwcmVjYXRlZFRva2VuczpbWyJ3aWR0aCIsInRpdGxlTWluV2lkdGgiXSxbIm1pbldpZHRoIiwidGl0bGVNaW5XaWR0aCJdXX0pfSw3MTIzMDpmdW5jdGlvbihBLHYsZSl7dmFyIGw9ZSgxNzYyMSk7di5aPWwuWn19XSk7CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzE1ODEuZGM3MmFjZmQuY2h1bmsuY3NzIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy8xNTgxLmRjNzJhY2ZkLmNodW5rLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZjMyZjdiCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy8xNTgxLmRjNzJhY2ZkLmNodW5rLmNzcwpAQCAtMCwwICsxIEBACisuY2FyZF9fX2ZHTl9Ue21hcmdpbi1ib3R0b206MTJweH0ubWluaUNoYXJ0X19fUXZtM3F7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTAwJX0ubWluaUNoYXJ0X19fUXZtM3EgLmNoYXJ0Q29udGVudF9fX2tlUTZse3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTotMjhweDt3aWR0aDoxMDAlfS5taW5pQ2hhcnRfX19Rdm0zcSAuY2hhcnRDb250ZW50X19fa2VRNmw+ZGl2e21hcmdpbjowIC01cHg7b3ZlcmZsb3c6aGlkZGVufS5taW5pQ2hhcnRfX19Rdm0zcSAuY2hhcnRMb2FkaW5nX19fd0ZNMWd7cG9zaXRpb246YWJzb2x1dGU7dG9wOjE2cHg7bGVmdDo1MCU7bWFyZ2luLWxlZnQ6LTdweH0KZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvMTc3LmIzNjI1MGY4LmFzeW5jLmpzIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy8xNzcuYjM2MjUwZjguYXN5bmMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2FkMjQ3YgotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvMTc3LmIzNjI1MGY4LmFzeW5jLmpzCkBAIC0wLDAgKzEgQEAKKyJ1c2Ugc3RyaWN0Ijsoc2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Bybz1zZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvfHxbXSkucHVzaChbWzE3N10sezMxMTk5OmZ1bmN0aW9uKHcseCxlKXt2YXIgRT1lKDE0MTMpLG09ZSg5MSksbz1lKDY3Mjk0KSxGPWUoOTIxNzkpLEs9ZSg4NTg5Myksaj1bImZpZWxkUHJvcHMiLCJtaW4iLCJwcm9GaWVsZFByb3BzIiwibWF4Il0sQT1mdW5jdGlvbihsLEQpe3ZhciBCPWwuZmllbGRQcm9wcyxwPWwubWluLHY9bC5wcm9GaWVsZFByb3BzLEk9bC5tYXgsUj0oMCxtLlopKGwsaik7cmV0dXJuKDAsSy5qc3gpKEYuWiwoMCxFLlopKHt2YWx1ZVR5cGU6ImRpZ2l0IixmaWVsZFByb3BzOigwLEUuWikoe21pbjpwLG1heDpJfSxCKSxyZWY6RCxmaWxlZENvbmZpZzp7ZGVmYXVsdFByb3BzOnt3aWR0aDoiMTAwJSJ9fSxwcm9GaWVsZFByb3BzOnZ9LFIpKX0sTz1vLmZvcndhcmRSZWYoQSk7eC5aPU99LDg2NjE1OmZ1bmN0aW9uKHcseCxlKXt2YXIgRT1lKDE0MTMpLG09ZSg5MSksbz1lKDIyMjcwKSxGPWUoNzgwNDUpLEs9ZSg2NzI5NCksaj1lKDkwNzg5KSxBPWUoOTIxNzkpLE89ZSg4NTg5MyksaD1bImZpZWxkUHJvcHMiLCJvcHRpb25zIiwicmFkaW9UeXBlIiwibGF5b3V0IiwicHJvRmllbGRQcm9wcyIsInZhbHVlRW51bSJdLGw9Sy5mb3J3YXJkUmVmKGZ1bmN0aW9uKHYsSSl7dmFyIFI9di5maWVsZFByb3BzLGc9di5vcHRpb25zLFg9di5yYWRpb1R5cGUsdD12LmxheW91dCxhPXYucHJvRmllbGRQcm9wcyxNPXYudmFsdWVFbnVtLHM9KDAsbS5aKSh2LGgpO3JldHVybigwLE8uanN4KShBLlosKDAsRS5aKSgoMCxFLlopKHt2YWx1ZVR5cGU6WD09PSJidXR0b24iPyJyYWRpb0J1dHRvbiI6InJhZGlvIixyZWY6SSx2YWx1ZUVudW06KDAsby5oKShNLHZvaWQgMCl9LHMpLHt9LHtmaWVsZFByb3BzOigwLEUuWikoe29wdGlvbnM6ZyxsYXlvdXQ6dH0sUikscHJvRmllbGRQcm9wczphLGZpbGVkQ29uZmlnOntjdXN0b21MaWdodE1vZGU6ITB9fSkpfSksRD1LLmZvcndhcmRSZWYoZnVuY3Rpb24odixJKXt2YXIgUj12LmZpZWxkUHJvcHMsZz12LmNoaWxkcmVuO3JldHVybigwLE8uanN4KShGLlpQLCgwLEUuWikoKDAsRS5aKSh7fSxSKSx7fSx7cmVmOkksY2hpbGRyZW46Z30pKX0pLEI9KDAsai5HKShELHt2YWx1ZVByb3BOYW1lOiJjaGVja2VkIixpZ25vcmVXaWR0aDohMH0pLHA9QjtwLkdyb3VwPWwscC5CdXR0b249Ri5aUC5CdXR0b24scC5kaXNwbGF5TmFtZT0iUHJvRm9ybUNvbXBvbmVudCIseC5aPXB9LDkwNjcyOmZ1bmN0aW9uKHcseCxlKXt2YXIgRT1lKDE0MTMpLG09ZSg5MSksbz1lKDY3Mjk0KSxGPWUoOTIxNzkpLEs9ZSg4NTg5Myksaj1bImZpZWxkUHJvcHMiLCJwcm9GaWVsZFByb3BzIl0sQT1mdW5jdGlvbihoLGwpe3ZhciBEPWguZmllbGRQcm9wcyxCPWgucHJvRmllbGRQcm9wcyxwPSgwLG0uWikoaCxqKTtyZXR1cm4oMCxLLmpzeCkoRi5aLCgwLEUuWikoe3JlZjpsLHZhbHVlVHlwZToidGV4dGFyZWEiLGZpZWxkUHJvcHM6RCxwcm9GaWVsZFByb3BzOkJ9LHApKX07eC5aPW8uZm9yd2FyZFJlZihBKX0sNTk2NjpmdW5jdGlvbih3LHgsZSl7dmFyIEU9ZSg5NzY4NSksbT1lKDE0MTMpLG89ZSg5MSksRj1lKDIxNzcwKSxLPWUoOTk4NTkpLGo9ZSg1NTI0MSksQT1lKDk4NDIzKSxPPWUoNjcyOTQpLGg9ZSg5MjE3OSksbD1lKDg1ODkzKSxEPVsiZmllbGRQcm9wcyIsInByb0ZpZWxkUHJvcHMiXSxCPVsiZmllbGRQcm9wcyIsInByb0ZpZWxkUHJvcHMiXSxwPSJ0ZXh0Iix2PWZ1bmN0aW9uKHQpe3ZhciBhPXQuZmllbGRQcm9wcyxNPXQucHJvRmllbGRQcm9wcyxzPSgwLG8uWikodCxEKTtyZXR1cm4oMCxsLmpzeCkoaC5aLCgwLG0uWikoe3ZhbHVlVHlwZTpwLGZpZWxkUHJvcHM6YSxmaWxlZENvbmZpZzp7dmFsdWVUeXBlOnB9LHByb0ZpZWxkUHJvcHM6TX0scykpfSxJPWZ1bmN0aW9uKHQpe3ZhciBhPSgwLEYuWikodC5vcGVufHwhMSx7dmFsdWU6dC5vcGVuLG9uQ2hhbmdlOnQub25PcGVuQ2hhbmdlfSksTT0oMCxFLlopKGEsMikscz1NWzBdLEg9TVsxXTtyZXR1cm4oMCxsLmpzeCkoSy5aLkl0ZW0se3Nob3VsZFVwZGF0ZTohMCxub1N0eWxlOiEwLGNoaWxkcmVuOmZ1bmN0aW9uKHkpe3ZhciBXLEc9eS5nZXRGaWVsZFZhbHVlKHQubmFtZXx8W10pO3JldHVybigwLGwuanN4KShqLlosKDAsbS5aKSgoMCxtLlopKHtnZXRQb3B1cENvbnRhaW5lcjpmdW5jdGlvbihmKXtyZXR1cm4gZiYmZi5wYXJlbnROb2RlP2YucGFyZW50Tm9kZTpmfSxvbk9wZW5DaGFuZ2U6ZnVuY3Rpb24oZil7cmV0dXJuIEgoZil9LGNvbnRlbnQ6KDAsbC5qc3hzKSgiZGl2Iix7c3R5bGU6e3BhZGRpbmc6IjRweCAwIn0sY2hpbGRyZW46WyhXPXQuc3RhdHVzUmVuZGVyKT09PW51bGx8fFc9PT12b2lkIDA/dm9pZCAwOlcuY2FsbCh0LEcpLHQuc3RyZW5ndGhUZXh0PygwLGwuanN4KSgiZGl2Iix7c3R5bGU6e21hcmdpblRvcDoxMH0sY2hpbGRyZW46KDAsbC5qc3gpKCJzcGFuIix7Y2hpbGRyZW46dC5zdHJlbmd0aFRleHR9KX0pOm51bGxdfSksb3ZlcmxheVN0eWxlOnt3aWR0aDoyNDB9LHBsYWNlbWVudDoicmlnaHRUb3AifSx0LnBvcG92ZXJQcm9wcykse30se29wZW46cyxjaGlsZHJlbjp0LmNoaWxkcmVufSkpfX0pfSxSPWZ1bmN0aW9uKHQpe3ZhciBhPXQuZmllbGRQcm9wcyxNPXQucHJvRmllbGRQcm9wcyxzPSgwLG8uWikodCxCKSxIPSgwLE8udXNlU3RhdGUpKCExKSxKPSgwLEUuWikoSCwyKSx5PUpbMF0sVz1KWzFdO3JldHVybiBhIT1udWxsJiZhLnN0YXR1c1JlbmRlciYmcy5uYW1lPygwLGwuanN4KShJLHtuYW1lOnMubmFtZSxzdGF0dXNSZW5kZXI6YT09bnVsbD92b2lkIDA6YS5zdGF0dXNSZW5kZXIscG9wb3ZlclByb3BzOmE9PW51bGw/dm9pZCAwOmEucG9wb3ZlclByb3BzLHN0cmVuZ3RoVGV4dDphPT1udWxsP3ZvaWQgMDphLnN0cmVuZ3RoVGV4dCxvcGVuOnksb25PcGVuQ2hhbmdlOlcsY2hpbGRyZW46KDAsbC5qc3gpKCJkaXYiLHtjaGlsZHJlbjooMCxsLmpzeCkoaC5aLCgwLG0uWikoe3ZhbHVlVHlwZToicGFzc3dvcmQiLGZpZWxkUHJvcHM6KDAsbS5aKSgoMCxtLlopKHt9LCgwLEEuWikoYSxbInN0YXR1c1JlbmRlciIsInBvcG92ZXJQcm9wcyIsInN0cmVuZ3RoVGV4dCJdKSkse30se29uQmx1cjpmdW5jdGlvbihVKXt2YXIgZjthPT1udWxsfHwoZj1hLm9uQmx1cik9PT1udWxsfHxmPT09dm9pZCAwfHxmLmNhbGwoYSxVKSxXKCExKX0sb25DbGljazpmdW5jdGlvbihVKXt2YXIgZjthPT1udWxsfHwoZj1hLm9uQ2xpY2spPT09bnVsbHx8Zj09PXZvaWQgMHx8Zi5jYWxsKGEsVSksVyghMCl9fSkscHJvRmllbGRQcm9wczpNLGZpbGVkQ29uZmlnOnt2YWx1ZVR5cGU6cH19LHMpKX0pfSk6KDAsbC5qc3gpKGguWiwoMCxtLlopKHt2YWx1ZVR5cGU6InBhc3N3b3JkIixmaWVsZFByb3BzOmEscHJvRmllbGRQcm9wczpNLGZpbGVkQ29uZmlnOnt2YWx1ZVR5cGU6cH19LHMpKX0sZz12O2cuUGFzc3dvcmQ9UixnLmRpc3BsYXlOYW1lPSJQcm9Gb3JtQ29tcG9uZW50Iix4Llo9Z30sMTc3OmZ1bmN0aW9uKHcseCxlKXtlLnIoeCk7dmFyIEU9ZSgxNTAwOSksbT1lLm4oRSksbz1lKDk3ODU3KSxGPWUubihvKSxLPWUoOTkyODkpLGo9ZS5uKEspLEE9ZSg1NTc0KSxPPWUubihBKSxoPWUoNjcyOTQpLGw9ZSg5NzI2OSksRD1lKDMxMTk5KSxCPWUoNTk2NikscD1lKDg2NjE1KSx2PWUoOTA2NzIpLEk9ZSg5OTg1OSksUj1lKDE3Nzg4KSxnPWUoNzY3NzIpLFg9ZSgyMDg2MyksdD1lKDg1ODkzKSxhPWZ1bmN0aW9uKHMpe3ZhciBIPUkuWi51c2VGb3JtKCksSj1PKCkoSCwxKSx5PUpbMF0sVz1zLm1lbnVUcmVlLEc9cy5tZW51Q2hlY2tlZEtleXMsVT0oMCxoLnVzZVN0YXRlKShbXSksZj1PKCkoVSwyKSxvZT1mWzBdLF9lPWZbMV0scGU9cy5zdGF0dXNPcHRpb25zOygwLGgudXNlRWZmZWN0KShmdW5jdGlvbigpe3kucmVzZXRGaWVsZHMoKSx5LnNldEZpZWxkc1ZhbHVlKHtyb2xlSWQ6cy52YWx1ZXMucm9sZUlkLHJvbGVOYW1lOnMudmFsdWVzLnJvbGVOYW1lLHJvbGVLZXk6cy52YWx1ZXMucm9sZUtleSxyb2xlU29ydDpzLnZhbHVlcy5yb2xlU29ydCxkYXRhU2NvcGU6cy52YWx1ZXMuZGF0YVNjb3BlLG1lbnVDaGVja1N0cmljdGx5OnMudmFsdWVzLm1lbnVDaGVja1N0cmljdGx5LGRlcHRDaGVja1N0cmljdGx5OnMudmFsdWVzLmRlcHRDaGVja1N0cmljdGx5LHN0YXR1czpzLnZhbHVlcy5zdGF0dXMsZGVsRmxhZzpzLnZhbHVlcy5kZWxGbGFnLGNyZWF0ZUJ5OnMudmFsdWVzLmNyZWF0ZUJ5LGNyZWF0ZVRpbWU6cy52YWx1ZXMuY3JlYXRlVGltZSx1cGRhdGVCeTpzLnZhbHVlcy51cGRhdGVCeSx1cGRhdGVUaW1lOnMudmFsdWVzLnVwZGF0ZVRpbWUscmVtYXJrOnMudmFsdWVzLnJlbWFya30pfSxbeSxzXSk7dmFyIFM9KDAsZy51c2VJbnRsKSgpLHE9ZnVuY3Rpb24oKXt5LnN1Ym1pdCgpfSxjZT1mdW5jdGlvbigpe3Mub25DYW5jZWwoKX0sdT1mdW5jdGlvbigpe3ZhciBfPWooKShtKCkoKS5tYXJrKGZ1bmN0aW9uIGQobil7cmV0dXJuIG0oKSgpLndyYXAoZnVuY3Rpb24ocil7Zm9yKDs7KXN3aXRjaChyLnByZXY9ci5uZXh0KXtjYXNlIDA6cy5vblN1Ym1pdChGKCkoRigpKHt9LG4pLHt9LHttZW51SWRzOm9lfSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIHIuc3RvcCgpfX0sZCl9KSk7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiBfLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCk7cmV0dXJuKDAsdC5qc3gpKFIuWix7d2lkdGg6NjQwLHRpdGxlOlMuZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5yb2xlLnRpdGxlIixkZWZhdWx0TWVzc2FnZToiXHU3RjE2XHU4RjkxXHU4OUQyXHU4MjcyXHU0RkUxXHU2MDZGIn0pLGZvcmNlUmVuZGVyOiEwLG9wZW46cy5vcGVuLGRlc3Ryb3lPbkNsb3NlOiEwLG9uT2s6cSxvbkNhbmNlbDpjZSxjaGlsZHJlbjooMCx0LmpzeHMpKGwuQSx7Zm9ybTp5LGdyaWQ6ITAsbGF5b3V0OiJob3Jpem9udGFsIixzdWJtaXR0ZXI6ITEsb25GaW5pc2g6dSxjaGlsZHJlbjpbKDAsdC5qc3gpKEQuWix7bmFtZToicm9sZUlkIixsYWJlbDpTLmZvcm1hdE1lc3NhZ2Uoe2lkOiJzeXN0ZW0ucm9sZS5yb2xlX2lkIixkZWZhdWx0TWVzc2FnZToiXHU4OUQyXHU4MjcyXHU3RjE2XHU1M0Y3In0pLHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdTg5RDJcdTgyNzJcdTdGMTZcdTUzRjciLGRpc2FibGVkOiEwLGhpZGRlbjohMCxydWxlczpbe3JlcXVpcmVkOiExLG1lc3NhZ2U6KDAsdC5qc3gpKGcuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1ODlEMlx1ODI3Mlx1N0YxNlx1NTNGN1x1RkYwMSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1ODlEMlx1ODI3Mlx1N0YxNlx1NTNGN1x1RkYwMSJ9KX1dfSksKDAsdC5qc3gpKEIuWix7bmFtZToicm9sZU5hbWUiLGxhYmVsOlMuZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5yb2xlLnJvbGVfbmFtZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1ODlEMlx1ODI3Mlx1NTQwRFx1NzlGMCJ9KSxwbGFjZWhvbGRlcjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU4OUQyXHU4MjcyXHU1NDBEXHU3OUYwIixydWxlczpbe3JlcXVpcmVkOiEwLG1lc3NhZ2U6KDAsdC5qc3gpKGcuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1ODlEMlx1ODI3Mlx1NTQwRFx1NzlGMFx1RkYwMSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1ODlEMlx1ODI3Mlx1NTQwRFx1NzlGMFx1RkYwMSJ9KX1dfSksKDAsdC5qc3gpKEIuWix7bmFtZToicm9sZUtleSIsbGFiZWw6Uy5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLnJvbGUucm9sZV9rZXkiLGRlZmF1bHRNZXNzYWdlOiJcdTY3NDNcdTk2NTBcdTVCNTdcdTdCMjZcdTRFMzIifSkscGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1ODlEMlx1ODI3Mlx1Njc0M1x1OTY1MFx1NUI1N1x1N0IyNlx1NEUzMiIscnVsZXM6W3tyZXF1aXJlZDohMCxtZXNzYWdlOigwLHQuanN4KShnLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTg5RDJcdTgyNzJcdTY3NDNcdTk2NTBcdTVCNTdcdTdCMjZcdTRFMzJcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTg5RDJcdTgyNzJcdTY3NDNcdTk2NTBcdTVCNTdcdTdCMjZcdTRFMzJcdUZGMDEifSl9XX0pLCgwLHQuanN4KShELlose25hbWU6InJvbGVTb3J0IixsYWJlbDpTLmZvcm1hdE1lc3NhZ2Uoe2lkOiJzeXN0ZW0ucm9sZS5yb2xlX3NvcnQiLGRlZmF1bHRNZXNzYWdlOiJcdTY2M0VcdTc5M0FcdTk4N0FcdTVFOEYifSkscGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NjYzRVx1NzkzQVx1OTg3QVx1NUU4RiIscnVsZXM6W3tyZXF1aXJlZDohMCxtZXNzYWdlOigwLHQuanN4KShnLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTY2M0VcdTc5M0FcdTk4N0FcdTVFOEZcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTY2M0VcdTc5M0FcdTk4N0FcdTVFOEZcdUZGMDEifSl9XSxmaWVsZFByb3BzOntkZWZhdWx0VmFsdWU6MX19KSwoMCx0LmpzeCkocC5aLkdyb3VwLHt2YWx1ZUVudW06cGUsbmFtZToic3RhdHVzIixsYWJlbDpTLmZvcm1hdE1lc3NhZ2Uoe2lkOiJzeXN0ZW0ucm9sZS5zdGF0dXMiLGRlZmF1bHRNZXNzYWdlOiJcdTg5RDJcdTgyNzJcdTcyQjZcdTYwMDEifSkscGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1ODlEMlx1ODI3Mlx1NzJCNlx1NjAwMSIscnVsZXM6W3tyZXF1aXJlZDohMCxtZXNzYWdlOigwLHQuanN4KShnLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTg5RDJcdTgyNzJcdTcyQjZcdTYwMDFcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTg5RDJcdTgyNzJcdTcyQjZcdTYwMDFcdUZGMDEifSl9XSxmaWVsZFByb3BzOntkZWZhdWx0VmFsdWU6IjAifX0pLCgwLHQuanN4KShsLkEuSXRlbSx7bmFtZToibWVudUlkcyIsbGFiZWw6Uy5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLnJvbGUuYXV0aCIsZGVmYXVsdE1lc3NhZ2U6Ilx1ODNEQ1x1NTM1NVx1Njc0M1x1OTY1MCJ9KSxjaGlsZHJlbjooMCx0LmpzeCkoWC5aLHtjaGVja2FibGU6ITAsbXVsdGlwbGU6ITAsY2hlY2tTdHJpY3RseTohMCxkZWZhdWx0RXhwYW5kQWxsOiExLHRyZWVEYXRhOlcsZGVmYXVsdENoZWNrZWRLZXlzOkcsb25DaGVjazpmdW5jdGlvbihkKXtyZXR1cm4gX2UoZC5jaGVja2VkKX19KX0pLCgwLHQuanN4KSh2Llose25hbWU6InJlbWFyayIsbGFiZWw6Uy5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLnJvbGUucmVtYXJrIixkZWZhdWx0TWVzc2FnZToiXHU1OTA3XHU2Q0U4In0pLHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdTU5MDdcdTZDRTgiLHJ1bGVzOlt7cmVxdWlyZWQ6ITEsbWVzc2FnZTooMCx0LmpzeCkoZy5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU1OTA3XHU2Q0U4XHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU1OTA3XHU2Q0U4XHVGRjAxIn0pfV19KV19KX0pfTt4LmRlZmF1bHQ9YX0sMjA4NjM6ZnVuY3Rpb24odyx4LGUpe2UuZCh4LHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGNlfX0pO3ZhciBFPWUoNzA1OTMpLG09ZSg3NDkwMiksbz1lKDY3Mjk0KSxGPWUoMjY5MTEpLEs9ZSg5NTU5MSksaj1lKDMyMzE5KSxBPWUoOTM5NjcpLE89ZS5uKEEpLGg9ZSgxMDIyNSksbD1lKDEwODkpLEQ9ZSg1MzEyNCksQj1lKDI5NzUxKSxwPWUoMzM2MDMpLHY9ZSgyOTY5MSksST1lKDQwNTYxKTtjb25zdCBSPTQ7ZnVuY3Rpb24gZyh1KXtjb25zdHtkcm9wUG9zaXRpb246Xyxkcm9wTGV2ZWxPZmZzZXQ6ZCxwcmVmaXhDbHM6bixpbmRlbnQ6aSxkaXJlY3Rpb246cj0ibHRyIn09dSxjPXI9PT0ibHRyIj8ibGVmdCI6InJpZ2h0IixQPXI9PT0ibHRyIj8icmlnaHQiOiJsZWZ0IixUPXtbY106LWQqaStSLFtQXTowfTtzd2l0Y2goXyl7Y2FzZS0xOlQudG9wPS0zO2JyZWFrO2Nhc2UgMTpULmJvdHRvbT0tMzticmVhaztkZWZhdWx0OlQuYm90dG9tPS0zLFRbY109aStSO2JyZWFrfXJldHVybiBvLmNyZWF0ZUVsZW1lbnQoImRpdiIse3N0eWxlOlQsY2xhc3NOYW1lOmAke259LWRyb3AtaW5kaWNhdG9yYH0pfXZhciBYPWcsdD1lKDYxNjM5KSxNPW8uZm9yd2FyZFJlZigodSxfKT0+e3ZhciBkO2NvbnN0e2dldFByZWZpeENsczpuLGRpcmVjdGlvbjppLHZpcnR1YWw6cix0cmVlOmN9PW8udXNlQ29udGV4dChELkVfKSx7cHJlZml4Q2xzOlAsY2xhc3NOYW1lOlQsc2hvd0ljb246Yj0hMSxzaG93TGluZTplZSxzd2l0Y2hlckljb246YWUsc3dpdGNoZXJMb2FkaW5nSWNvbjpsZSxibG9ja05vZGU6dWU9ITEsY2hpbGRyZW46bWUsY2hlY2thYmxlOnRlPSExLHNlbGVjdGFibGU6cmU9ITAsZHJhZ2dhYmxlOlEsbW90aW9uOnNlLHN0eWxlOmZlfT11LE49bigidHJlZSIsUCksUGU9bigpLG5lPXNlIT1udWxsP3NlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwoMCxwLlopKFBlKSkse21vdGlvbkFwcGVhcjohMX0pLEVlPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx1KSx7Y2hlY2thYmxlOnRlLHNlbGVjdGFibGU6cmUsc2hvd0ljb246Yixtb3Rpb246bmUsYmxvY2tOb2RlOnVlLHNob3dMaW5lOiEhZWUsZHJvcEluZGljYXRvclJlbmRlcjpYfSksW1YsWix6XT0oMCxJLlpQKShOKSxbLFldPSgwLHYuWlApKCksaz1ZLnBhZGRpbmdYUy8yKygoKGQ9WS5UcmVlKT09PW51bGx8fGQ9PT12b2lkIDA/dm9pZCAwOmQudGl0bGVIZWlnaHQpfHxZLmNvbnRyb2xIZWlnaHRTTSksdmU9by51c2VNZW1vKCgpPT57aWYoIVEpcmV0dXJuITE7bGV0IEM9e307c3dpdGNoKHR5cGVvZiBRKXtjYXNlImZ1bmN0aW9uIjpDLm5vZGVEcmFnZ2FibGU9UTticmVhaztjYXNlIm9iamVjdCI6Qz1PYmplY3QuYXNzaWduKHt9LFEpO2JyZWFrO2RlZmF1bHQ6YnJlYWt9cmV0dXJuIEMuaWNvbiE9PSExJiYoQy5pY29uPUMuaWNvbnx8by5jcmVhdGVFbGVtZW50KEIuWixudWxsKSksQ30sW1FdKSxMPUM9Pm8uY3JlYXRlRWxlbWVudCh0Llose3ByZWZpeENsczpOLHN3aXRjaGVySWNvbjphZSxzd2l0Y2hlckxvYWRpbmdJY29uOmxlLHRyZWVOb2RlUHJvcHM6QyxzaG93TGluZTplZX0pO3JldHVybiBWKG8uY3JlYXRlRWxlbWVudChFLlpQLE9iamVjdC5hc3NpZ24oe2l0ZW1IZWlnaHQ6ayxyZWY6Xyx2aXJ0dWFsOnJ9LEVlLHtzdHlsZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sYz09bnVsbD92b2lkIDA6Yy5zdHlsZSksZmUpLHByZWZpeENsczpOLGNsYXNzTmFtZTpPKCkoe1tgJHtOfS1pY29uLWhpZGVgXTohYixbYCR7Tn0tYmxvY2stbm9kZWBdOnVlLFtgJHtOfS11bnNlbGVjdGFibGVgXTohcmUsW2Ake059LXJ0bGBdOmk9PT0icnRsIn0sYz09bnVsbD92b2lkIDA6Yy5jbGFzc05hbWUsVCxaLHopLGRpcmVjdGlvbjppLGNoZWNrYWJsZTp0ZSYmby5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmAke059LWNoZWNrYm94LWlubmVyYH0pLHNlbGVjdGFibGU6cmUsc3dpdGNoZXJJY29uOkwsZHJhZ2dhYmxlOnZlfSksbWUpKX0pO2NvbnN0IHM9MCxIPTEsSj0yO2Z1bmN0aW9uIHkodSxfLGQpe2NvbnN0e2tleTpuLGNoaWxkcmVuOml9PWQ7ZnVuY3Rpb24gcihjKXtjb25zdCBQPWNbbl0sVD1jW2ldO18oUCxjKSE9PSExJiZ5KFR8fFtdLF8sZCl9dS5mb3JFYWNoKHIpfWZ1bmN0aW9uIFcodSl7bGV0e3RyZWVEYXRhOl8sZXhwYW5kZWRLZXlzOmQsc3RhcnRLZXk6bixlbmRLZXk6aSxmaWVsZE5hbWVzOnJ9PXU7Y29uc3QgYz1bXTtsZXQgUD1zO2lmKG4mJm49PT1pKXJldHVybltuXTtpZighbnx8IWkpcmV0dXJuW107ZnVuY3Rpb24gVChiKXtyZXR1cm4gYj09PW58fGI9PT1pfXJldHVybiB5KF8sYj0+e2lmKFA9PT1KKXJldHVybiExO2lmKFQoYikpe2lmKGMucHVzaChiKSxQPT09cylQPUg7ZWxzZSBpZihQPT09SClyZXR1cm4gUD1KLCExfWVsc2UgUD09PUgmJmMucHVzaChiKTtyZXR1cm4gZC5pbmNsdWRlcyhiKX0sKDAsbC53JCkocikpLGN9ZnVuY3Rpb24gRyh1LF8sZCl7Y29uc3Qgbj0oMCxtLlopKF8pLGk9W107cmV0dXJuIHkodSwocixjKT0+e2NvbnN0IFA9bi5pbmRleE9mKHIpO3JldHVybiBQIT09LTEmJihpLnB1c2goYyksbi5zcGxpY2UoUCwxKSksISFuLmxlbmd0aH0sKDAsbC53JCkoZCkpLGl9dmFyIFU9ZnVuY3Rpb24odSxfKXt2YXIgZD17fTtmb3IodmFyIG4gaW4gdSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodSxuKSYmXy5pbmRleE9mKG4pPDAmJihkW25dPXVbbl0pO2lmKHUhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgaT0wLG49T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh1KTtpPG4ubGVuZ3RoO2krKylfLmluZGV4T2YobltpXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHUsbltpXSkmJihkW25baV1dPXVbbltpXV0pO3JldHVybiBkfTtmdW5jdGlvbiBmKHUpe2NvbnN0e2lzTGVhZjpfLGV4cGFuZGVkOmR9PXU7cmV0dXJuIF8/by5jcmVhdGVFbGVtZW50KEYuWixudWxsKTpkP28uY3JlYXRlRWxlbWVudChLLlosbnVsbCk6by5jcmVhdGVFbGVtZW50KGouWixudWxsKX1mdW5jdGlvbiBvZSh1KXtsZXR7dHJlZURhdGE6XyxjaGlsZHJlbjpkfT11O3JldHVybiBffHwoMCxsLnpuKShkKX1jb25zdCBfZT0odSxfKT0+e3ZhcntkZWZhdWx0RXhwYW5kQWxsOmQsZGVmYXVsdEV4cGFuZFBhcmVudDpuLGRlZmF1bHRFeHBhbmRlZEtleXM6aX09dSxyPVUodSxbImRlZmF1bHRFeHBhbmRBbGwiLCJkZWZhdWx0RXhwYW5kUGFyZW50IiwiZGVmYXVsdEV4cGFuZGVkS2V5cyJdKTtjb25zdCBjPW8udXNlUmVmKG51bGwpLFA9by51c2VSZWYobnVsbCksVD0oKT0+e2NvbnN0e2tleUVudGl0aWVzOlZ9PSgwLGwuSTgpKG9lKHIpKTtsZXQgWjtyZXR1cm4gZD9aPU9iamVjdC5rZXlzKFYpOm4/Wj0oMCxoLnI3KShyLmV4cGFuZGVkS2V5c3x8aXx8W10sVik6Wj1yLmV4cGFuZGVkS2V5c3x8aXx8W10sWn0sW2IsZWVdPW8udXNlU3RhdGUoci5zZWxlY3RlZEtleXN8fHIuZGVmYXVsdFNlbGVjdGVkS2V5c3x8W10pLFthZSxsZV09by51c2VTdGF0ZSgoKT0+VCgpKTtvLnVzZUVmZmVjdCgoKT0+eyJzZWxlY3RlZEtleXMiaW4gciYmZWUoci5zZWxlY3RlZEtleXMpfSxbci5zZWxlY3RlZEtleXNdKSxvLnVzZUVmZmVjdCgoKT0+eyJleHBhbmRlZEtleXMiaW4gciYmbGUoci5leHBhbmRlZEtleXMpfSxbci5leHBhbmRlZEtleXNdKTtjb25zdCB1ZT0oVixaKT0+e3ZhciB6O3JldHVybiJleHBhbmRlZEtleXMiaW4gcnx8bGUoViksKHo9ci5vbkV4cGFuZCk9PT1udWxsfHx6PT09dm9pZCAwP3ZvaWQgMDp6LmNhbGwocixWLFopfSxtZT0oVixaKT0+e3ZhciB6O2NvbnN0e211bHRpcGxlOlksZmllbGROYW1lczprfT1yLHtub2RlOnZlLG5hdGl2ZUV2ZW50Okx9PVose2tleTpDPSIifT12ZSxkZT1vZShyKSxpZT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sWikse3NlbGVjdGVkOiEwfSksZ2U9KEw9PW51bGw/dm9pZCAwOkwuY3RybEtleSl8fChMPT1udWxsP3ZvaWQgMDpMLm1ldGFLZXkpLGhlPUw9PW51bGw/dm9pZCAwOkwuc2hpZnRLZXk7bGV0ICQ7WSYmZ2U/KCQ9VixjLmN1cnJlbnQ9QyxQLmN1cnJlbnQ9JCxpZS5zZWxlY3RlZE5vZGVzPUcoZGUsJCxrKSk6WSYmaGU/KCQ9QXJyYXkuZnJvbShuZXcgU2V0KFtdLmNvbmNhdCgoMCxtLlopKFAuY3VycmVudHx8W10pLCgwLG0uWikoVyh7dHJlZURhdGE6ZGUsZXhwYW5kZWRLZXlzOmFlLHN0YXJ0S2V5OkMsZW5kS2V5OmMuY3VycmVudCxmaWVsZE5hbWVzOmt9KSkpKSksaWUuc2VsZWN0ZWROb2Rlcz1HKGRlLCQsaykpOigkPVtDXSxjLmN1cnJlbnQ9QyxQLmN1cnJlbnQ9JCxpZS5zZWxlY3RlZE5vZGVzPUcoZGUsJCxrKSksKHo9ci5vblNlbGVjdCk9PT1udWxsfHx6PT09dm9pZCAwfHx6LmNhbGwociwkLGllKSwic2VsZWN0ZWRLZXlzImluIHJ8fGVlKCQpfSx7Z2V0UHJlZml4Q2xzOnRlLGRpcmVjdGlvbjpyZX09by51c2VDb250ZXh0KEQuRV8pLHtwcmVmaXhDbHM6USxjbGFzc05hbWU6c2Usc2hvd0ljb246ZmU9ITAsZXhwYW5kQWN0aW9uOk49ImNsaWNrIn09cixQZT1VKHIsWyJwcmVmaXhDbHMiLCJjbGFzc05hbWUiLCJzaG93SWNvbiIsImV4cGFuZEFjdGlvbiJdKSxuZT10ZSgidHJlZSIsUSksRWU9TygpKGAke25lfS1kaXJlY3RvcnlgLHtbYCR7bmV9LWRpcmVjdG9yeS1ydGxgXTpyZT09PSJydGwifSxzZSk7cmV0dXJuIG8uY3JlYXRlRWxlbWVudChNLE9iamVjdC5hc3NpZ24oe2ljb246ZixyZWY6XyxibG9ja05vZGU6ITB9LFBlLHtzaG93SWNvbjpmZSxleHBhbmRBY3Rpb246TixwcmVmaXhDbHM6bmUsY2xhc3NOYW1lOkVlLGV4cGFuZGVkS2V5czphZSxzZWxlY3RlZEtleXM6YixvblNlbGVjdDptZSxvbkV4cGFuZDp1ZX0pKX07dmFyIFM9by5mb3J3YXJkUmVmKF9lKTtjb25zdCBxPU07cS5EaXJlY3RvcnlUcmVlPVMscS5UcmVlTm9kZT1FLk9GO3ZhciBjZT1xfX1dKTsKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvMTgwNy5mZDU5NzI1My5hc3luYy5qcyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvMTgwNy5mZDU5NzI1My5hc3luYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNGE4ODc0Ci0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy8xODA3LmZkNTk3MjUzLmFzeW5jLmpzCkBAIC0wLDAgKzEgQEAKKyJ1c2Ugc3RyaWN0Ijsoc2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Bybz1zZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvfHxbXSkucHVzaChbWzE4MDddLHszMTE5OTpmdW5jdGlvbihRLFMsbyl7dmFyIHQ9bygxNDEzKSx1PW8oOTEpLG09byg2NzI5NCksYj1vKDkyMTc5KSxfPW8oODU4OTMpLGg9WyJmaWVsZFByb3BzIiwibWluIiwicHJvRmllbGRQcm9wcyIsIm1heCJdLEI9ZnVuY3Rpb24oYSxJKXt2YXIgRj1hLmZpZWxkUHJvcHMscD1hLm1pbixjPWEucHJvRmllbGRQcm9wcyxFPWEubWF4LGc9KDAsdS5aKShhLGgpO3JldHVybigwLF8uanN4KShiLlosKDAsdC5aKSh7dmFsdWVUeXBlOiJkaWdpdCIsZmllbGRQcm9wczooMCx0LlopKHttaW46cCxtYXg6RX0sRikscmVmOkksZmlsZWRDb25maWc6e2RlZmF1bHRQcm9wczp7d2lkdGg6IjEwMCUifX0scHJvRmllbGRQcm9wczpjfSxnKSl9LE09bS5mb3J3YXJkUmVmKEIpO1MuWj1NfSw4NjYxNTpmdW5jdGlvbihRLFMsbyl7dmFyIHQ9bygxNDEzKSx1PW8oOTEpLG09bygyMjI3MCksYj1vKDc4MDQ1KSxfPW8oNjcyOTQpLGg9byg5MDc4OSksQj1vKDkyMTc5KSxNPW8oODU4OTMpLHg9WyJmaWVsZFByb3BzIiwib3B0aW9ucyIsInJhZGlvVHlwZSIsImxheW91dCIsInByb0ZpZWxkUHJvcHMiLCJ2YWx1ZUVudW0iXSxhPV8uZm9yd2FyZFJlZihmdW5jdGlvbihjLEUpe3ZhciBnPWMuZmllbGRQcm9wcyxPPWMub3B0aW9ucyxaPWMucmFkaW9UeXBlLGk9Yy5sYXlvdXQsbj1jLnByb0ZpZWxkUHJvcHMsVD1jLnZhbHVlRW51bSxmPSgwLHUuWikoYyx4KTtyZXR1cm4oMCxNLmpzeCkoQi5aLCgwLHQuWikoKDAsdC5aKSh7dmFsdWVUeXBlOlo9PT0iYnV0dG9uIj8icmFkaW9CdXR0b24iOiJyYWRpbyIscmVmOkUsdmFsdWVFbnVtOigwLG0uaCkoVCx2b2lkIDApfSxmKSx7fSx7ZmllbGRQcm9wczooMCx0LlopKHtvcHRpb25zOk8sbGF5b3V0Oml9LGcpLHByb0ZpZWxkUHJvcHM6bixmaWxlZENvbmZpZzp7Y3VzdG9tTGlnaHRNb2RlOiEwfX0pKX0pLEk9Xy5mb3J3YXJkUmVmKGZ1bmN0aW9uKGMsRSl7dmFyIGc9Yy5maWVsZFByb3BzLE89Yy5jaGlsZHJlbjtyZXR1cm4oMCxNLmpzeCkoYi5aUCwoMCx0LlopKCgwLHQuWikoe30sZykse30se3JlZjpFLGNoaWxkcmVuOk99KSl9KSxGPSgwLGguRykoSSx7dmFsdWVQcm9wTmFtZToiY2hlY2tlZCIsaWdub3JlV2lkdGg6ITB9KSxwPUY7cC5Hcm91cD1hLHAuQnV0dG9uPWIuWlAuQnV0dG9uLHAuZGlzcGxheU5hbWU9IlByb0Zvcm1Db21wb25lbnQiLFMuWj1wfSw1OTY2OmZ1bmN0aW9uKFEsUyxvKXt2YXIgdD1vKDk3Njg1KSx1PW8oMTQxMyksbT1vKDkxKSxiPW8oMjE3NzApLF89byg5OTg1OSksaD1vKDU1MjQxKSxCPW8oOTg0MjMpLE09byg2NzI5NCkseD1vKDkyMTc5KSxhPW8oODU4OTMpLEk9WyJmaWVsZFByb3BzIiwicHJvRmllbGRQcm9wcyJdLEY9WyJmaWVsZFByb3BzIiwicHJvRmllbGRQcm9wcyJdLHA9InRleHQiLGM9ZnVuY3Rpb24oaSl7dmFyIG49aS5maWVsZFByb3BzLFQ9aS5wcm9GaWVsZFByb3BzLGY9KDAsbS5aKShpLEkpO3JldHVybigwLGEuanN4KSh4LlosKDAsdS5aKSh7dmFsdWVUeXBlOnAsZmllbGRQcm9wczpuLGZpbGVkQ29uZmlnOnt2YWx1ZVR5cGU6cH0scHJvRmllbGRQcm9wczpUfSxmKSl9LEU9ZnVuY3Rpb24oaSl7dmFyIG49KDAsYi5aKShpLm9wZW58fCExLHt2YWx1ZTppLm9wZW4sb25DaGFuZ2U6aS5vbk9wZW5DaGFuZ2V9KSxUPSgwLHQuWikobiwyKSxmPVRbMF0sTj1UWzFdO3JldHVybigwLGEuanN4KShfLlouSXRlbSx7c2hvdWxkVXBkYXRlOiEwLG5vU3R5bGU6ITAsY2hpbGRyZW46ZnVuY3Rpb24oSCl7dmFyIEMsVj1ILmdldEZpZWxkVmFsdWUoaS5uYW1lfHxbXSk7cmV0dXJuKDAsYS5qc3gpKGguWiwoMCx1LlopKCgwLHUuWikoe2dldFBvcHVwQ29udGFpbmVyOmZ1bmN0aW9uKHYpe3JldHVybiB2JiZ2LnBhcmVudE5vZGU/di5wYXJlbnROb2RlOnZ9LG9uT3BlbkNoYW5nZTpmdW5jdGlvbih2KXtyZXR1cm4gTih2KX0sY29udGVudDooMCxhLmpzeHMpKCJkaXYiLHtzdHlsZTp7cGFkZGluZzoiNHB4IDAifSxjaGlsZHJlbjpbKEM9aS5zdGF0dXNSZW5kZXIpPT09bnVsbHx8Qz09PXZvaWQgMD92b2lkIDA6Qy5jYWxsKGksViksaS5zdHJlbmd0aFRleHQ/KDAsYS5qc3gpKCJkaXYiLHtzdHlsZTp7bWFyZ2luVG9wOjEwfSxjaGlsZHJlbjooMCxhLmpzeCkoInNwYW4iLHtjaGlsZHJlbjppLnN0cmVuZ3RoVGV4dH0pfSk6bnVsbF19KSxvdmVybGF5U3R5bGU6e3dpZHRoOjI0MH0scGxhY2VtZW50OiJyaWdodFRvcCJ9LGkucG9wb3ZlclByb3BzKSx7fSx7b3BlbjpmLGNoaWxkcmVuOmkuY2hpbGRyZW59KSl9fSl9LGc9ZnVuY3Rpb24oaSl7dmFyIG49aS5maWVsZFByb3BzLFQ9aS5wcm9GaWVsZFByb3BzLGY9KDAsbS5aKShpLEYpLE49KDAsTS51c2VTdGF0ZSkoITEpLHo9KDAsdC5aKShOLDIpLEg9elswXSxDPXpbMV07cmV0dXJuIG4hPW51bGwmJm4uc3RhdHVzUmVuZGVyJiZmLm5hbWU/KDAsYS5qc3gpKEUse25hbWU6Zi5uYW1lLHN0YXR1c1JlbmRlcjpuPT1udWxsP3ZvaWQgMDpuLnN0YXR1c1JlbmRlcixwb3BvdmVyUHJvcHM6bj09bnVsbD92b2lkIDA6bi5wb3BvdmVyUHJvcHMsc3RyZW5ndGhUZXh0Om49PW51bGw/dm9pZCAwOm4uc3RyZW5ndGhUZXh0LG9wZW46SCxvbk9wZW5DaGFuZ2U6QyxjaGlsZHJlbjooMCxhLmpzeCkoImRpdiIse2NoaWxkcmVuOigwLGEuanN4KSh4LlosKDAsdS5aKSh7dmFsdWVUeXBlOiJwYXNzd29yZCIsZmllbGRQcm9wczooMCx1LlopKCgwLHUuWikoe30sKDAsQi5aKShuLFsic3RhdHVzUmVuZGVyIiwicG9wb3ZlclByb3BzIiwic3RyZW5ndGhUZXh0Il0pKSx7fSx7b25CbHVyOmZ1bmN0aW9uKCQpe3ZhciB2O249PW51bGx8fCh2PW4ub25CbHVyKT09PW51bGx8fHY9PT12b2lkIDB8fHYuY2FsbChuLCQpLEMoITEpfSxvbkNsaWNrOmZ1bmN0aW9uKCQpe3ZhciB2O249PW51bGx8fCh2PW4ub25DbGljayk9PT1udWxsfHx2PT09dm9pZCAwfHx2LmNhbGwobiwkKSxDKCEwKX19KSxwcm9GaWVsZFByb3BzOlQsZmlsZWRDb25maWc6e3ZhbHVlVHlwZTpwfX0sZikpfSl9KTooMCxhLmpzeCkoeC5aLCgwLHUuWikoe3ZhbHVlVHlwZToicGFzc3dvcmQiLGZpZWxkUHJvcHM6bixwcm9GaWVsZFByb3BzOlQsZmlsZWRDb25maWc6e3ZhbHVlVHlwZTpwfX0sZikpfSxPPWM7Ty5QYXNzd29yZD1nLE8uZGlzcGxheU5hbWU9IlByb0Zvcm1Db21wb25lbnQiLFMuWj1PfSwxOTA1NDpmdW5jdGlvbihRLFMsbyl7dmFyIHQ9bygxNDEzKSx1PW8oOTEpLG09byg2NzI5NCksYj1vKDkyMTc5KSxfPW8oODU4OTMpLGg9WyJmaWVsZFByb3BzIiwicmVxdWVzdCIsInBhcmFtcyIsInByb0ZpZWxkUHJvcHMiXSxCPWZ1bmN0aW9uKGEsSSl7dmFyIEY9YS5maWVsZFByb3BzLHA9YS5yZXF1ZXN0LGM9YS5wYXJhbXMsRT1hLnByb0ZpZWxkUHJvcHMsZz0oMCx1LlopKGEsaCk7cmV0dXJuKDAsXy5qc3gpKGIuWiwoMCx0LlopKHt2YWx1ZVR5cGU6InRyZWVTZWxlY3QiLGZpZWxkUHJvcHM6RixyZWY6SSxyZXF1ZXN0OnAscGFyYW1zOmMsZmlsZWRDb25maWc6e2N1c3RvbUxpZ2h0TW9kZTohMH0scHJvRmllbGRQcm9wczpFfSxnKSl9LE09bS5mb3J3YXJkUmVmKEIpO1MuWj1NfSw2NjMwOTpmdW5jdGlvbihRLFMsbyl7by5kKFMse1o6ZnVuY3Rpb24oKXtyZXR1cm4gaWV9fSk7dmFyIHQ9byg2NzI5NCksdT1vKDkzOTY3KSxtPW8ubih1KSxiPW8oOTg0MjMpLF89byg5ODc4NyksaD1vKDY5NzYwKSxCPW8oOTYxNTkpLE09byg0NTM1MykseD1vKDUzMTI0KSxhPW8oMTE1NjgpLEk9bygxNTA2MyksRj1vKDE0NzQ3KSxwPW8oODMyNjIpLGM9byg4MzU1OSk7Y29uc3QgRT1lPT57Y29uc3R7cGFkZGluZ1hYUzpzLGxpbmVXaWR0aDpkLHRhZ1BhZGRpbmdIb3Jpem9udGFsOnIsY29tcG9uZW50Q2xzOmwsY2FsYzpEfT1lLFA9RChyKS5zdWIoZCkuZXF1YWwoKSxMPUQocykuc3ViKGQpLmVxdWFsKCk7cmV0dXJue1tsXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sKDAsRi5XZikoZSkpLHtkaXNwbGF5OiJpbmxpbmUtYmxvY2siLGhlaWdodDoiYXV0byIsbWFyZ2luSW5saW5lRW5kOmUubWFyZ2luWFMscGFkZGluZ0lubGluZTpQLGZvbnRTaXplOmUudGFnRm9udFNpemUsbGluZUhlaWdodDplLnRhZ0xpbmVIZWlnaHQsd2hpdGVTcGFjZToibm93cmFwIixiYWNrZ3JvdW5kOmUuZGVmYXVsdEJnLGJvcmRlcjpgJHsoMCxhLmJmKShlLmxpbmVXaWR0aCl9ICR7ZS5saW5lVHlwZX0gJHtlLmNvbG9yQm9yZGVyfWAsYm9yZGVyUmFkaXVzOmUuYm9yZGVyUmFkaXVzU00sb3BhY2l0eToxLHRyYW5zaXRpb246YGFsbCAke2UubW90aW9uRHVyYXRpb25NaWR9YCx0ZXh0QWxpZ246InN0YXJ0Iixwb3NpdGlvbjoicmVsYXRpdmUiLFtgJiR7bH0tcnRsYF06e2RpcmVjdGlvbjoicnRsIn0sIiYsIGEsIGE6aG92ZXIiOntjb2xvcjplLmRlZmF1bHRDb2xvcn0sW2Ake2x9LWNsb3NlLWljb25gXTp7bWFyZ2luSW5saW5lU3RhcnQ6TCxmb250U2l6ZTplLnRhZ0ljb25TaXplLGNvbG9yOmUuY29sb3JUZXh0RGVzY3JpcHRpb24sY3Vyc29yOiJwb2ludGVyIix0cmFuc2l0aW9uOmBhbGwgJHtlLm1vdGlvbkR1cmF0aW9uTWlkfWAsIiY6aG92ZXIiOntjb2xvcjplLmNvbG9yVGV4dEhlYWRpbmd9fSxbYCYke2x9LWhhcy1jb2xvcmBdOntib3JkZXJDb2xvcjoidHJhbnNwYXJlbnQiLFtgJiwgYSwgYTpob3ZlciwgJHtlLmljb25DbHN9LWNsb3NlLCAke2UuaWNvbkNsc30tY2xvc2U6aG92ZXJgXTp7Y29sb3I6ZS5jb2xvclRleHRMaWdodFNvbGlkfX0sIiYtY2hlY2thYmxlIjp7YmFja2dyb3VuZENvbG9yOiJ0cmFuc3BhcmVudCIsYm9yZGVyQ29sb3I6InRyYW5zcGFyZW50IixjdXJzb3I6InBvaW50ZXIiLFtgJjpub3QoJHtsfS1jaGVja2FibGUtY2hlY2tlZCk6aG92ZXJgXTp7Y29sb3I6ZS5jb2xvclByaW1hcnksYmFja2dyb3VuZENvbG9yOmUuY29sb3JGaWxsU2Vjb25kYXJ5fSwiJjphY3RpdmUsICYtY2hlY2tlZCI6e2NvbG9yOmUuY29sb3JUZXh0TGlnaHRTb2xpZH0sIiYtY2hlY2tlZCI6e2JhY2tncm91bmRDb2xvcjplLmNvbG9yUHJpbWFyeSwiJjpob3ZlciI6e2JhY2tncm91bmRDb2xvcjplLmNvbG9yUHJpbWFyeUhvdmVyfX0sIiY6YWN0aXZlIjp7YmFja2dyb3VuZENvbG9yOmUuY29sb3JQcmltYXJ5QWN0aXZlfX0sIiYtaGlkZGVuIjp7ZGlzcGxheToibm9uZSJ9LFtgPiAke2UuaWNvbkNsc30gKyBzcGFuLCA+IHNwYW4gKyAke2UuaWNvbkNsc31gXTp7bWFyZ2luSW5saW5lU3RhcnQ6UH19KSxbYCR7bH0tYm9yZGVybGVzc2BdOntib3JkZXJDb2xvcjoidHJhbnNwYXJlbnQiLGJhY2tncm91bmQ6ZS50YWdCb3JkZXJsZXNzQmd9fX0sZz1lPT57Y29uc3R7bGluZVdpZHRoOnMsZm9udFNpemVJY29uOmQsY2FsYzpyfT1lLGw9ZS5mb250U2l6ZVNNO3JldHVybigwLHAuSVgpKGUse3RhZ0ZvbnRTaXplOmwsdGFnTGluZUhlaWdodDooMCxhLmJmKShyKGUubGluZUhlaWdodFNNKS5tdWwobCkuZXF1YWwoKSksdGFnSWNvblNpemU6cihkKS5zdWIocihzKS5tdWwoMikpLmVxdWFsKCksdGFnUGFkZGluZ0hvcml6b250YWw6OCx0YWdCb3JkZXJsZXNzQmc6ZS5kZWZhdWx0Qmd9KX0sTz1lPT4oe2RlZmF1bHRCZzpuZXcgSS50KGUuY29sb3JGaWxsUXVhdGVybmFyeSkub25CYWNrZ3JvdW5kKGUuY29sb3JCZ0NvbnRhaW5lcikudG9IZXhTdHJpbmcoKSxkZWZhdWx0Q29sb3I6ZS5jb2xvclRleHR9KTt2YXIgWj0oMCxjLkkkKSgiVGFnIixlPT57Y29uc3Qgcz1nKGUpO3JldHVybiBFKHMpfSxPKSxpPWZ1bmN0aW9uKGUscyl7dmFyIGQ9e307Zm9yKHZhciByIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikmJnMuaW5kZXhPZihyKTwwJiYoZFtyXT1lW3JdKTtpZihlIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIGw9MCxyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7bDxyLmxlbmd0aDtsKyspcy5pbmRleE9mKHJbbF0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLHJbbF0pJiYoZFtyW2xdXT1lW3JbbF1dKTtyZXR1cm4gZH0sVD10LmZvcndhcmRSZWYoKGUscyk9Pntjb25zdHtwcmVmaXhDbHM6ZCxzdHlsZTpyLGNsYXNzTmFtZTpsLGNoZWNrZWQ6RCxvbkNoYW5nZTpQLG9uQ2xpY2s6TH09ZSxXPWkoZSxbInByZWZpeENscyIsInN0eWxlIiwiY2xhc3NOYW1lIiwiY2hlY2tlZCIsIm9uQ2hhbmdlIiwib25DbGljayJdKSx7Z2V0UHJlZml4Q2xzOlgsdGFnOmp9PXQudXNlQ29udGV4dCh4LkVfKSxHPUo9PntQPT1udWxsfHxQKCFEKSxMPT1udWxsfHxMKEopfSxBPVgoInRhZyIsZCksW1ksdyxSXT1aKEEpLGs9bSgpKEEsYCR7QX0tY2hlY2thYmxlYCx7W2Ake0F9LWNoZWNrYWJsZS1jaGVja2VkYF06RH0saj09bnVsbD92b2lkIDA6ai5jbGFzc05hbWUsbCx3LFIpO3JldHVybiBZKHQuY3JlYXRlRWxlbWVudCgic3BhbiIsT2JqZWN0LmFzc2lnbih7fSxXLHtyZWY6cyxzdHlsZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sciksaj09bnVsbD92b2lkIDA6ai5zdHlsZSksY2xhc3NOYW1lOmssb25DbGljazpHfSkpKX0pLGY9byg5ODcxOSk7Y29uc3QgTj1lPT4oMCxmLlopKGUsKHMsZCk9PntsZXR7dGV4dENvbG9yOnIsbGlnaHRCb3JkZXJDb2xvcjpsLGxpZ2h0Q29sb3I6RCxkYXJrQ29sb3I6UH09ZDtyZXR1cm57W2Ake2UuY29tcG9uZW50Q2xzfSR7ZS5jb21wb25lbnRDbHN9LSR7c31gXTp7Y29sb3I6cixiYWNrZ3JvdW5kOkQsYm9yZGVyQ29sb3I6bCwiJi1pbnZlcnNlIjp7Y29sb3I6ZS5jb2xvclRleHRMaWdodFNvbGlkLGJhY2tncm91bmQ6UCxib3JkZXJDb2xvcjpQfSxbYCYke2UuY29tcG9uZW50Q2xzfS1ib3JkZXJsZXNzYF06e2JvcmRlckNvbG9yOiJ0cmFuc3BhcmVudCJ9fX19KTt2YXIgej0oMCxjLmJrKShbIlRhZyIsInByZXNldCJdLGU9Pntjb25zdCBzPWcoZSk7cmV0dXJuIE4ocyl9LE8pO2Z1bmN0aW9uIEgoZSl7cmV0dXJuIHR5cGVvZiBlIT0ic3RyaW5nIj9lOmUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrZS5zbGljZSgxKX1jb25zdCBDPShlLHMsZCk9Pntjb25zdCByPUgoZCk7cmV0dXJue1tgJHtlLmNvbXBvbmVudENsc30ke2UuY29tcG9uZW50Q2xzfS0ke3N9YF06e2NvbG9yOmVbYGNvbG9yJHtkfWBdLGJhY2tncm91bmQ6ZVtgY29sb3Ike3J9QmdgXSxib3JkZXJDb2xvcjplW2Bjb2xvciR7cn1Cb3JkZXJgXSxbYCYke2UuY29tcG9uZW50Q2xzfS1ib3JkZXJsZXNzYF06e2JvcmRlckNvbG9yOiJ0cmFuc3BhcmVudCJ9fX19O3ZhciBWPSgwLGMuYmspKFsiVGFnIiwic3RhdHVzIl0sZT0+e2NvbnN0IHM9ZyhlKTtyZXR1cm5bQyhzLCJzdWNjZXNzIiwiU3VjY2VzcyIpLEMocywicHJvY2Vzc2luZyIsIkluZm8iKSxDKHMsImVycm9yIiwiRXJyb3IiKSxDKHMsIndhcm5pbmciLCJXYXJuaW5nIildfSxPKSwkPWZ1bmN0aW9uKGUscyl7dmFyIGQ9e307Zm9yKHZhciByIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikmJnMuaW5kZXhPZihyKTwwJiYoZFtyXT1lW3JdKTtpZihlIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIGw9MCxyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7bDxyLmxlbmd0aDtsKyspcy5pbmRleE9mKHJbbF0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLHJbbF0pJiYoZFtyW2xdXT1lW3JbbF1dKTtyZXR1cm4gZH07Y29uc3Qgb2U9dC5mb3J3YXJkUmVmKChlLHMpPT57Y29uc3R7cHJlZml4Q2xzOmQsY2xhc3NOYW1lOnIscm9vdENsYXNzTmFtZTpsLHN0eWxlOkQsY2hpbGRyZW46UCxpY29uOkwsY29sb3I6VyxvbkNsb3NlOlgsYm9yZGVyZWQ6aj0hMCx2aXNpYmxlOkd9PWUsQT0kKGUsWyJwcmVmaXhDbHMiLCJjbGFzc05hbWUiLCJyb290Q2xhc3NOYW1lIiwic3R5bGUiLCJjaGlsZHJlbiIsImljb24iLCJjb2xvciIsIm9uQ2xvc2UiLCJib3JkZXJlZCIsInZpc2libGUiXSkse2dldFByZWZpeENsczpZLGRpcmVjdGlvbjp3LHRhZzpSfT10LnVzZUNvbnRleHQoeC5FXyksW2ssSl09dC51c2VTdGF0ZSghMCksZGU9KDAsYi5aKShBLFsiY2xvc2VJY29uIiwiY2xvc2FibGUiXSk7dC51c2VFZmZlY3QoKCk9PntHIT09dm9pZCAwJiZKKEcpfSxbR10pO2NvbnN0IHJlPSgwLF8ubzIpKFcpLHRlPSgwLF8ueVQpKFcpLHE9cmV8fHRlLGNlPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7YmFja2dyb3VuZENvbG9yOlcmJiFxP1c6dm9pZCAwfSxSPT1udWxsP3ZvaWQgMDpSLnN0eWxlKSxEKSx5PVkoInRhZyIsZCksW3VlLHBlLHZlXT1aKHkpLFBlPW0oKSh5LFI9PW51bGw/dm9pZCAwOlIuY2xhc3NOYW1lLHtbYCR7eX0tJHtXfWBdOnEsW2Ake3l9LWhhcy1jb2xvcmBdOlcmJiFxLFtgJHt5fS1oaWRkZW5gXTohayxbYCR7eX0tcnRsYF06dz09PSJydGwiLFtgJHt5fS1ib3JkZXJsZXNzYF06IWp9LHIsbCxwZSx2ZSksbmU9Sz0+e0suc3RvcFByb3BhZ2F0aW9uKCksWD09bnVsbHx8WChLKSwhSy5kZWZhdWx0UHJldmVudGVkJiZKKCExKX0sWyxnZV09KDAsaC5aKSgoMCxoLncpKGUpLCgwLGgudykoUikse2Nsb3NhYmxlOiExLGNsb3NlSWNvblJlbmRlcjpLPT57Y29uc3QgQ2U9dC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmAke3l9LWNsb3NlLWljb25gLG9uQ2xpY2s6bmV9LEspO3JldHVybigwLEIud20pKEssQ2UsVT0+KHtvbkNsaWNrOnNlPT57dmFyIGVlOyhlZT1VPT1udWxsP3ZvaWQgMDpVLm9uQ2xpY2spPT09bnVsbHx8ZWU9PT12b2lkIDB8fGVlLmNhbGwoVSxzZSksbmUoc2UpfSxjbGFzc05hbWU6bSgpKFU9PW51bGw/dm9pZCAwOlUuY2xhc3NOYW1lLGAke3l9LWNsb3NlLWljb25gKX0pKX19KSxtZT10eXBlb2YgQS5vbkNsaWNrPT0iZnVuY3Rpb24ifHxQJiZQLnR5cGU9PT0iYSIsbGU9THx8bnVsbCxmZT1sZT90LmNyZWF0ZUVsZW1lbnQodC5GcmFnbWVudCxudWxsLGxlLFAmJnQuY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCxQKSk6UCxhZT10LmNyZWF0ZUVsZW1lbnQoInNwYW4iLE9iamVjdC5hc3NpZ24oe30sZGUse3JlZjpzLGNsYXNzTmFtZTpQZSxzdHlsZTpjZX0pLGZlLGdlLHJlJiZ0LmNyZWF0ZUVsZW1lbnQoeix7a2V5OiJwcmVzZXQiLHByZWZpeENsczp5fSksdGUmJnQuY3JlYXRlRWxlbWVudChWLHtrZXk6InN0YXR1cyIscHJlZml4Q2xzOnl9KSk7cmV0dXJuIHVlKG1lP3QuY3JlYXRlRWxlbWVudChNLlose2NvbXBvbmVudDoiVGFnIn0sYWUpOmFlKX0pO29lLkNoZWNrYWJsZVRhZz1UO3ZhciBpZT1vZX19XSk7CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzE4NDIuMzBiZDgwZmIuYXN5bmMuanMgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzE4NDIuMzBiZDgwZmIuYXN5bmMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGY4ZWEzOQotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvMTg0Mi4zMGJkODBmYi5hc3luYy5qcwpAQCAtMCwwICsxIEBACisidXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W10pLnB1c2goW1sxODQyLDc2MjldLHs0MTg0MjpmdW5jdGlvbihJLGksdCl7dC5yKGkpO3ZhciBQPXQoOTc4NTcpLGI9dC5uKFApLHk9dCg1NTc0KSxFPXQubih5KSxkPXQoNjcyOTQpLGw9dCg4NDU2NyksZz10KDY2MzA5KSx4PXQoNzEyMzApLF89dCgxNTc0Niksbz10KDgzNjIyKSxqPXQoNzY3NzIpLEM9dCgxOTAzNSksTT10KDUwNzI3KSxlPXQoODU4OTMpLHI9W3tsYWJlbDoidHJ1ZSIsdmFsdWU6IjEifSx7bGFiZWw6ImZhbHNlIix2YWx1ZToiMCJ9XSxPPWZ1bmN0aW9uKGMpe3ZhciBMPSgwLGQudXNlUmVmKSgpLFI9KDAsZC51c2VTdGF0ZSkoKSxwPUUoKShSLDIpLGY9cFswXSxtPXBbMV0sQT0oMCxkLnVzZVN0YXRlKShbXSksaD1FKCkoQSwyKSxCPWhbMF0sRD1oWzFdLHU9Yy5kYXRhLFM9Yy5kaWN0RGF0YSxUPWMub25TdGVwU3VibWl0LEs9W3t0aXRsZToiXHU3RjE2XHU1M0Y3IixkYXRhSW5kZXg6ImNvbHVtbklkIixlZGl0YWJsZTohMSx3aWR0aDo4MH0se3RpdGxlOiJcdTVCNTdcdTZCQjVcdTU0MEQiLGRhdGFJbmRleDoiY29sdW1uTmFtZSIsZWRpdGFibGU6ITF9LHt0aXRsZToiXHU1QjU3XHU2QkI1XHU2M0NGXHU4RkYwIixkYXRhSW5kZXg6ImNvbHVtbkNvbW1lbnQiLGhpZGVJbkZvcm06ITAsaGlkZUluU2VhcmNoOiEwLHdpZHRoOjIwMH0se3RpdGxlOiJcdTVCNTdcdTZCQjVcdTdDN0JcdTU3OEIiLGRhdGFJbmRleDoiY29sdW1uVHlwZSIsZWRpdGFibGU6ITF9LHt0aXRsZToiSmF2YVx1N0M3Qlx1NTc4QiIsZGF0YUluZGV4OiJqYXZhVHlwZSIsdmFsdWVUeXBlOiJzZWxlY3QiLHZhbHVlRW51bTp7TG9uZzp7dGV4dDoiTG9uZyJ9LFN0cmluZzp7dGV4dDoiU3RyaW5nIn0sSW50ZWdlcjp7dGV4dDoiSW50ZWdlciJ9LERvdWJsZTp7dGV4dDoiRG91YmxlIn0sQmlnRGVjaW1hbDp7dGV4dDoiQmlnRGVjaW1hbCJ9LERhdGU6e3RleHQ6IkRhdGUifX19LHt0aXRsZToiSmF2YVx1NUM1RVx1NjAyNyIsZGF0YUluZGV4OiJqYXZhRmllbGQifSx7dGl0bGU6Ilx1NjNEMlx1NTE2NSIsZGF0YUluZGV4OiJpc0luc2VydCIsdmFsdWVUeXBlOiJzZWxlY3QiLGZpZWxkUHJvcHM6e29wdGlvbnM6cn0scmVuZGVyOmZ1bmN0aW9uKGEscyl7cmV0dXJuKDAsZS5qc3gpKGwuWix7Y2hlY2tlZDpzLmlzSW5zZXJ0PT09IjEifSl9fSx7dGl0bGU6Ilx1N0YxNlx1OEY5MSIsZGF0YUluZGV4OiJpc0VkaXQiLHZhbHVlVHlwZToic2VsZWN0IixmaWVsZFByb3BzOntvcHRpb25zOnJ9LHJlbmRlcjpmdW5jdGlvbihhLHMpe3JldHVybigwLGUuanN4KShsLlose2NoZWNrZWQ6cy5pc0VkaXQ9PT0iMSJ9KX19LHt0aXRsZToiXHU1MjE3XHU4ODY4IixkYXRhSW5kZXg6ImlzTGlzdCIsdmFsdWVUeXBlOiJzZWxlY3QiLGZpZWxkUHJvcHM6e29wdGlvbnM6cn0scmVuZGVyOmZ1bmN0aW9uKGEscyl7cmV0dXJuKDAsZS5qc3gpKGwuWix7Y2hlY2tlZDpzLmlzTGlzdD09PSIxIn0pfX0se3RpdGxlOiJcdTY3RTVcdThCRTIiLGRhdGFJbmRleDoiaXNRdWVyeSIsdmFsdWVUeXBlOiJzZWxlY3QiLGZpZWxkUHJvcHM6e29wdGlvbnM6cn0scmVuZGVyOmZ1bmN0aW9uKGEscyl7cmV0dXJuKDAsZS5qc3gpKGwuWix7Y2hlY2tlZDpzLmlzUXVlcnk9PT0iMSJ9KX19LHt0aXRsZToiXHU2N0U1XHU4QkUyXHU2NUI5XHU1RjBGIixkYXRhSW5kZXg6InF1ZXJ5VHlwZSIsdmFsdWVUeXBlOiJzZWxlY3QiLHZhbHVlRW51bTp7RVE6e3RleHQ6Ij0ifSxORTp7dGV4dDoiIT0ifSxHVDp7dGV4dDoiPiJ9LEdURTp7dGV4dDoiPj0ifSxMVDp7dGV4dDoiPCJ9LExURTp7dGV4dDoiPD0ifSxMSUtFOnt0ZXh0OiJMSUtFIn0sQkVUV0VFTjp7dGV4dDoiQkVUV0VFTiJ9fX0se3RpdGxlOiJcdTVGQzVcdTU4NkIiLGRhdGFJbmRleDoiaXNSZXF1aXJlZCIsdmFsdWVUeXBlOiJzZWxlY3QiLGZpZWxkUHJvcHM6e29wdGlvbnM6cn0scmVuZGVyOmZ1bmN0aW9uKGEscyl7cmV0dXJuKDAsZS5qc3gpKGwuWix7Y2hlY2tlZDpzLmlzUmVxdWlyZWQ9PT0iMSJ9KX19LHt0aXRsZToiXHU2NjNFXHU3OTNBXHU3QzdCXHU1NzhCIixkYXRhSW5kZXg6Imh0bWxUeXBlIixoaWRlSW5TZWFyY2g6ITAsdmFsdWVUeXBlOiJzZWxlY3QiLHZhbHVlRW51bTp7aW5wdXQ6e3RleHQ6Ilx1NjU4N1x1NjcyQ1x1Njg0NiJ9LHRleHRhcmVhOnt0ZXh0OiJcdTY1ODdcdTY3MkNcdTU3REYifSxzZWxlY3Q6e3RleHQ6Ilx1NEUwQlx1NjJDOVx1Njg0NiJ9LHJhZGlvOnt0ZXh0OiJcdTUzNTVcdTkwMDlcdTY4NDYifSxjaGVja2JveDp7dGV4dDoiXHU1OTBEXHU5MDA5XHU2ODQ2In0sZGF0ZXRpbWU6e3RleHQ6Ilx1NjVFNVx1NjcxRlx1NjNBN1x1NEVGNiJ9LGltYWdlVXBsb2FkOnt0ZXh0OiJcdTU2RkVcdTcyNDdcdTRFMEFcdTRGMjAifSxmaWxlVXBsb2FkOnt0ZXh0OiJcdTY1ODdcdTRFRjZcdTRFMEFcdTRGMjAifSxlZGl0b3I6e3RleHQ6Ilx1NUJDQ1x1NjU4N1x1NjcyQ1x1NjNBN1x1NEVGNiJ9fX0se3RpdGxlOiJcdTVCNTdcdTUxNzhcdTdDN0JcdTU3OEIiLGRhdGFJbmRleDoiZGljdFR5cGUiLGhpZGVJblNlYXJjaDohMCx2YWx1ZVR5cGU6InNlbGVjdCIsZmllbGRQcm9wczp7b3B0aW9uczpTfSxyZW5kZXI6ZnVuY3Rpb24oYSl7cmV0dXJuKDAsZS5qc3gpKGcuWix7Y29sb3I6IiMxMDhlZTkiLGNoaWxkcmVuOmF9KX19XTsoMCxkLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXttKHUpLHUmJkQodS5tYXAoZnVuY3Rpb24obil7cmV0dXJuIG4uY29sdW1uSWR9KSl9LFt1XSk7dmFyIHY9ZnVuY3Rpb24oYSl7VCYmVCgiY29sdW1uIixmLGEpfSxXPWZ1bmN0aW9uKGEpe20oYigpKHt9LGEpKX07cmV0dXJuKDAsZS5qc3hzKShkLkZyYWdtZW50LHtjaGlsZHJlbjpbKDAsZS5qc3gpKHguWix7Y2hpbGRyZW46KDAsZS5qc3gpKF8uWix7c3BhbjoyNCxjaGlsZHJlbjooMCxlLmpzeCkoTS5aLHtmb3JtUmVmOkwscm93S2V5OiJjb2x1bW5JZCIsc2VhcmNoOiExLGNvbHVtbnM6Syx2YWx1ZTpmLGVkaXRhYmxlOnt0eXBlOiJtdWx0aXBsZSIsZWRpdGFibGVLZXlzOkIsb25DaGFuZ2U6RCxhY3Rpb25SZW5kZXI6ZnVuY3Rpb24oYSxzLFope3JldHVybltaLmRlbGV0ZV19LG9uVmFsdWVzQ2hhbmdlOmZ1bmN0aW9uKGEscyl7bShzKX19LG9uQ2hhbmdlOlcscmVjb3JkQ3JlYXRvclByb3BzOiExfSl9KX0pLCgwLGUuanN4cykoeC5aLHtqdXN0aWZ5OiJjZW50ZXIiLGNoaWxkcmVuOlsoMCxlLmpzeCkoXy5aLHtzcGFuOjQsY2hpbGRyZW46KDAsZS5qc3gpKG8uWlAse3R5cGU6InByaW1hcnkiLG9uQ2xpY2s6ZnVuY3Rpb24oKXtqLmhpc3RvcnkuYmFjaygpfSxjaGlsZHJlbjoiXHU4RkQ0XHU1NkRFIn0pfSksKDAsZS5qc3gpKF8uWix7c3Bhbjo0LGNoaWxkcmVuOigwLGUuanN4KShvLlpQLHt0eXBlOiJwcmltYXJ5IixjbGFzc05hbWU6Qy5aLnN0ZXBfYnV0dG9ucyxvbkNsaWNrOmZ1bmN0aW9uKCl7digicHJldiIpfSxjaGlsZHJlbjoiXHU0RTBBXHU0RTAwXHU2QjY1In0pfSksKDAsZS5qc3gpKF8uWix7c3Bhbjo0LGNoaWxkcmVuOigwLGUuanN4KShvLlpQLHt0eXBlOiJwcmltYXJ5IixvbkNsaWNrOmZ1bmN0aW9uKCl7digibmV4dCIpfSxjaGlsZHJlbjoiXHU0RTBCXHU0RTAwXHU2QjY1In0pfSldfSldfSl9O2kuZGVmYXVsdD1PfSwxOTAzNTpmdW5jdGlvbihJLGkpe2kuWj17c3RlcHM6InN0ZXBzX19fX3N0WkQifX19XSk7CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzE4NDIuZmQ5YjNhYjkuY2h1bmsuY3NzIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy8xODQyLmZkOWIzYWI5LmNodW5rLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYzI3ZjQwCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy8xODQyLmZkOWIzYWI5LmNodW5rLmNzcwpAQCAtMCwwICsxIEBACisuc3RlcHNfX19fc3RaRC5hbnQtc3RlcHN7bWF4LXdpZHRoOjc1MHB4O21hcmdpbjoxNnB4IGF1dG99CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzE5OTQuZTRmNDFkMDUuYXN5bmMuanMgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzE5OTQuZTRmNDFkMDUuYXN5bmMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjUxNjc1MwotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvMTk5NC5lNGY0MWQwNS5hc3luYy5qcwpAQCAtMCwwICsxIEBACisidXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W10pLnB1c2goW1sxOTk0XSx7OTgwOTc6ZnVuY3Rpb24od2UsVSxyKXtyLmQoVSx7dlk6ZnVuY3Rpb24oKXtyZXR1cm4gTmV9fSk7dmFyIFI9cig3NDkwMiksTT1yKDc0MTY1KSxZPXIoMTU4NjEpLHE9cig5MSkscz1yKDE0MTMpLFNlPXIoOTc5MzcpLHBlPXIoNjM2MDYpLGRlPXIoODY1NDgpLE89cig5NTIpLF89cig5MjE3OSksUD1yKDY3Mjk0KSxmPXIoNDgwNTQpLCQ9cig0MzkzKSxlZT1yKDI1Mzc4KSxiZT1yKDk2MDc0KSx6PXIoNzg5NTcpLGU9cig4NTg5MyksdGU9ZnVuY3Rpb24odCl7dmFyIGE9dC5wYWRkaW5nO3JldHVybigwLGUuanN4KSgiZGl2Iix7c3R5bGU6e3BhZGRpbmc6YXx8IjAgMjRweCJ9LGNoaWxkcmVuOigwLGUuanN4KShiZS5aLHtzdHlsZTp7bWFyZ2luOjB9fSl9KX0sUT17eHM6MixzbToyLG1kOjQsbGc6NCx4bDo2LHh4bDo2fSxDPWZ1bmN0aW9uKHQpe3ZhciBhPXQuc2l6ZSxuPXQuYWN0aXZlLGk9KDAsUC51c2VNZW1vKShmdW5jdGlvbigpe3JldHVybntsZzohMCxtZDohMCxzbTohMSx4bDohMSx4czohMSx4eGw6ITF9fSxbXSksZz0oMCxlZS5aKSgpfHxpLG89T2JqZWN0LmtleXMoZykuZmlsdGVyKGZ1bmN0aW9uKFope3JldHVybiBnW1pdPT09ITB9KVswXXx8Im1kIix4PWE9PT12b2lkIDA/UVtvXXx8NjphLHA9ZnVuY3Rpb24oZCl7cmV0dXJuIGQ9PT0wPzA6eD4yPzQyOjE2fTtyZXR1cm4oMCxlLmpzeCkoJC5aLHtib3JkZXJlZDohMSxzdHlsZTp7bWFyZ2luQmxvY2tFbmQ6MTZ9LGNoaWxkcmVuOigwLGUuanN4KSgiZGl2Iix7c3R5bGU6e3dpZHRoOiIxMDAlIixqdXN0aWZ5Q29udGVudDoic3BhY2UtYmV0d2VlbiIsZGlzcGxheToiZmxleCJ9LGNoaWxkcmVuOm5ldyBBcnJheSh4KS5maWxsKG51bGwpLm1hcChmdW5jdGlvbihaLGQpe3JldHVybigwLGUuanN4cykoImRpdiIse3N0eWxlOntib3JkZXJJbmxpbmVTdGFydDp4PjImJmQ9PT0xPyIxcHggc29saWQgcmdiYSgwLDAsMCwwLjA2KSI6dm9pZCAwLHBhZGRpbmdJbmxpbmVTdGFydDpwKGQpLGZsZXg6MSxtYXJnaW5JbmxpbmVFbmQ6ZD09PTA/MTY6MH0sY2hpbGRyZW46WygwLGUuanN4KShmLlose2FjdGl2ZTpuLHBhcmFncmFwaDohMSx0aXRsZTp7d2lkdGg6MTAwLHN0eWxlOnttYXJnaW5CbG9ja1N0YXJ0OjB9fX0pLCgwLGUuanN4KShmLlouQnV0dG9uLHthY3RpdmU6bixzdHlsZTp7aGVpZ2h0OjQ4fX0pXX0sZCl9KX0pfSl9LEg9ZnVuY3Rpb24odCl7dmFyIGE9dC5hY3RpdmU7cmV0dXJuKDAsZS5qc3hzKShlLkZyYWdtZW50LHtjaGlsZHJlbjpbKDAsZS5qc3gpKCQuWix7Ym9yZGVyZWQ6ITEsc3R5bGU6e2JvcmRlclJhZGl1czowfSxzdHlsZXM6e2JvZHk6e3BhZGRpbmc6MjR9fSxjaGlsZHJlbjooMCxlLmpzeHMpKCJkaXYiLHtzdHlsZTp7d2lkdGg6IjEwMCUiLGRpc3BsYXk6ImZsZXgiLGFsaWduSXRlbXM6ImNlbnRlciIsanVzdGlmeUNvbnRlbnQ6InNwYWNlLWJldHdlZW4ifSxjaGlsZHJlbjpbKDAsZS5qc3gpKCJkaXYiLHtzdHlsZTp7bWF4V2lkdGg6IjEwMCUiLGZsZXg6MX0sY2hpbGRyZW46KDAsZS5qc3gpKGYuWix7YWN0aXZlOmEsdGl0bGU6e3dpZHRoOjEwMCxzdHlsZTp7bWFyZ2luQmxvY2tTdGFydDowfX0scGFyYWdyYXBoOntyb3dzOjEsc3R5bGU6e21hcmdpbjowfX19KX0pLCgwLGUuanN4KShmLlouQnV0dG9uLHthY3RpdmU6YSxzaXplOiJzbWFsbCIsc3R5bGU6e3dpZHRoOjE2NSxtYXJnaW5CbG9ja1N0YXJ0OjEyfX0pXX0pfSksKDAsZS5qc3gpKHRlLHt9KV19KX0sYWU9ZnVuY3Rpb24odCl7dmFyIGE9dC5zaXplLG49dC5hY3RpdmUsaT1uPT09dm9pZCAwPyEwOm4sZz10LmFjdGlvbkJ1dHRvbjtyZXR1cm4oMCxlLmpzeHMpKCQuWix7Ym9yZGVyZWQ6ITEsc3R5bGVzOntib2R5OntwYWRkaW5nOjB9fSxjaGlsZHJlbjpbbmV3IEFycmF5KGEpLmZpbGwobnVsbCkubWFwKGZ1bmN0aW9uKG8seCl7cmV0dXJuKDAsZS5qc3gpKEgse2FjdGl2ZTohIWl9LHgpfSksZyE9PSExJiYoMCxlLmpzeCkoJC5aLHtib3JkZXJlZDohMSxzdHlsZTp7Ym9yZGVyU3RhcnRFbmRSYWRpdXM6MCxib3JkZXJUb3BMZWZ0UmFkaXVzOjB9LHN0eWxlczp7Ym9keTp7ZGlzcGxheToiZmxleCIsYWxpZ25JdGVtczoiY2VudGVyIixqdXN0aWZ5Q29udGVudDoiY2VudGVyIn19LGNoaWxkcmVuOigwLGUuanN4KShmLlouQnV0dG9uLHtzdHlsZTp7d2lkdGg6MTAyfSxhY3RpdmU6aSxzaXplOiJzbWFsbCJ9KX0pXX0pfSxHPWZ1bmN0aW9uKHQpe3ZhciBhPXQuYWN0aXZlO3JldHVybigwLGUuanN4cykoImRpdiIse3N0eWxlOnttYXJnaW5CbG9ja0VuZDoxNn0sY2hpbGRyZW46WygwLGUuanN4KShmLlose3BhcmFncmFwaDohMSx0aXRsZTp7d2lkdGg6MTg1fX0pLCgwLGUuanN4KShmLlouQnV0dG9uLHthY3RpdmU6YSxzaXplOiJzbWFsbCJ9KV19KX0sdWU9ZnVuY3Rpb24odCl7dmFyIGE9dC5hY3RpdmU7cmV0dXJuKDAsZS5qc3gpKCQuWix7Ym9yZGVyZWQ6ITEsc3R5bGU6e2JvcmRlckJvdHRvbVJpZ2h0UmFkaXVzOjAsYm9yZGVyQm90dG9tTGVmdFJhZGl1czowfSxzdHlsZXM6e2JvZHk6e3BhZGRpbmdCbG9ja0VuZDo4fX0sY2hpbGRyZW46KDAsZS5qc3hzKSh6Llose3N0eWxlOnt3aWR0aDoiMTAwJSIsanVzdGlmeUNvbnRlbnQ6InNwYWNlLWJldHdlZW4ifSxjaGlsZHJlbjpbKDAsZS5qc3gpKGYuWi5CdXR0b24se2FjdGl2ZTphLHN0eWxlOnt3aWR0aDoyMDB9LHNpemU6InNtYWxsIn0pLCgwLGUuanN4cykoei5aLHtjaGlsZHJlbjpbKDAsZS5qc3gpKGYuWi5CdXR0b24se2FjdGl2ZTphLHNpemU6InNtYWxsIixzdHlsZTp7d2lkdGg6MTIwfX0pLCgwLGUuanN4KShmLlouQnV0dG9uLHthY3RpdmU6YSxzaXplOiJzbWFsbCIsc3R5bGU6e3dpZHRoOjgwfX0pXX0pXX0pfSl9LENlPWZ1bmN0aW9uKHQpe3ZhciBhPXQuYWN0aXZlLG49YT09PXZvaWQgMD8hMDphLGk9dC5zdGF0aXN0aWMsZz10LmFjdGlvbkJ1dHRvbixvPXQudG9vbGJhcix4PXQucGFnZUhlYWRlcixwPXQubGlzdCxaPXA9PT12b2lkIDA/NTpwO3JldHVybigwLGUuanN4cykoImRpdiIse3N0eWxlOnt3aWR0aDoiMTAwJSJ9LGNoaWxkcmVuOlt4IT09ITEmJigwLGUuanN4KShHLHthY3RpdmU6bn0pLGkhPT0hMSYmKDAsZS5qc3gpKEMse3NpemU6aSxhY3RpdmU6bn0pLChvIT09ITF8fFohPT0hMSkmJigwLGUuanN4cykoJC5aLHtib3JkZXJlZDohMSxzdHlsZXM6e2JvZHk6e3BhZGRpbmc6MH19LGNoaWxkcmVuOltvIT09ITEmJigwLGUuanN4KSh1ZSx7YWN0aXZlOm59KSxaIT09ITEmJigwLGUuanN4KShhZSx7c2l6ZTpaLGFjdGl2ZTpuLGFjdGlvbkJ1dHRvbjpnfSldfSldfSl9LFRlPUNlLG5lPXt4czoxLHNtOjIsbWQ6MyxsZzozLHhsOjMseHhsOjR9LEVlPWZ1bmN0aW9uKHQpe3ZhciBhPXQuYWN0aXZlO3JldHVybigwLGUuanN4cykoImRpdiIse3N0eWxlOnttYXJnaW5CbG9ja1N0YXJ0OjMyfSxjaGlsZHJlbjpbKDAsZS5qc3gpKGYuWi5CdXR0b24se2FjdGl2ZTphLHNpemU6InNtYWxsIixzdHlsZTp7d2lkdGg6MTAwLG1hcmdpbkJsb2NrRW5kOjE2fX0pLCgwLGUuanN4cykoImRpdiIse3N0eWxlOnt3aWR0aDoiMTAwJSIsanVzdGlmeUNvbnRlbnQ6InNwYWNlLWJldHdlZW4iLGRpc3BsYXk6ImZsZXgifSxjaGlsZHJlbjpbKDAsZS5qc3hzKSgiZGl2Iix7c3R5bGU6e2ZsZXg6MSxtYXJnaW5JbmxpbmVFbmQ6MjQsbWF4V2lkdGg6MzAwfSxjaGlsZHJlbjpbKDAsZS5qc3gpKGYuWix7YWN0aXZlOmEscGFyYWdyYXBoOiExLHRpdGxlOntzdHlsZTp7bWFyZ2luQmxvY2tTdGFydDowfX19KSwoMCxlLmpzeCkoZi5aLHthY3RpdmU6YSxwYXJhZ3JhcGg6ITEsdGl0bGU6e3N0eWxlOnttYXJnaW5CbG9ja1N0YXJ0Ojh9fX0pLCgwLGUuanN4KShmLlose2FjdGl2ZTphLHBhcmFncmFwaDohMSx0aXRsZTp7c3R5bGU6e21hcmdpbkJsb2NrU3RhcnQ6OH19fSldfSksKDAsZS5qc3gpKCJkaXYiLHtzdHlsZTp7ZmxleDoxLGFsaWduSXRlbXM6ImNlbnRlciIsanVzdGlmeUNvbnRlbnQ6ImNlbnRlciJ9LGNoaWxkcmVuOigwLGUuanN4cykoImRpdiIse3N0eWxlOnttYXhXaWR0aDozMDAsbWFyZ2luOiJhdXRvIn0sY2hpbGRyZW46WygwLGUuanN4KShmLlose2FjdGl2ZTphLHBhcmFncmFwaDohMSx0aXRsZTp7c3R5bGU6e21hcmdpbkJsb2NrU3RhcnQ6MH19fSksKDAsZS5qc3gpKGYuWix7YWN0aXZlOmEscGFyYWdyYXBoOiExLHRpdGxlOntzdHlsZTp7bWFyZ2luQmxvY2tTdGFydDo4fX19KV19KX0pXX0pXX0pfSxjZT1mdW5jdGlvbih0KXt2YXIgYT10LnNpemUsbj10LmFjdGl2ZSxpPSgwLFAudXNlTWVtbykoZnVuY3Rpb24oKXtyZXR1cm57bGc6ITAsbWQ6ITAsc206ITEseGw6ITEseHM6ITEseHhsOiExfX0sW10pLGc9KDAsZWUuWikoKXx8aSxvPU9iamVjdC5rZXlzKGcpLmZpbHRlcihmdW5jdGlvbihwKXtyZXR1cm4gZ1twXT09PSEwfSlbMF18fCJtZCIseD1hPT09dm9pZCAwP25lW29dfHwzOmE7cmV0dXJuKDAsZS5qc3gpKCJkaXYiLHtzdHlsZTp7d2lkdGg6IjEwMCUiLGp1c3RpZnlDb250ZW50OiJzcGFjZS1iZXR3ZWVuIixkaXNwbGF5OiJmbGV4In0sY2hpbGRyZW46bmV3IEFycmF5KHgpLmZpbGwobnVsbCkubWFwKGZ1bmN0aW9uKHAsWil7cmV0dXJuKDAsZS5qc3hzKSgiZGl2Iix7c3R5bGU6e2ZsZXg6MSxwYWRkaW5nSW5saW5lU3RhcnQ6Wj09PTA/MDoyNCxwYWRkaW5nSW5saW5lRW5kOlo9PT14LTE/MDoyNH0sY2hpbGRyZW46WygwLGUuanN4KShmLlose2FjdGl2ZTpuLHBhcmFncmFwaDohMSx0aXRsZTp7c3R5bGU6e21hcmdpbkJsb2NrU3RhcnQ6MH19fSksKDAsZS5qc3gpKGYuWix7YWN0aXZlOm4scGFyYWdyYXBoOiExLHRpdGxlOntzdHlsZTp7bWFyZ2luQmxvY2tTdGFydDo4fX19KSwoMCxlLmpzeCkoZi5aLHthY3RpdmU6bixwYXJhZ3JhcGg6ITEsdGl0bGU6e3N0eWxlOnttYXJnaW5CbG9ja1N0YXJ0Ojh9fX0pXX0sWil9KX0pfSx2ZT1mdW5jdGlvbih0KXt2YXIgYT10LmFjdGl2ZSxuPXQuaGVhZGVyLGk9bj09PXZvaWQgMD8hMTpuLGc9KDAsUC51c2VNZW1vKShmdW5jdGlvbigpe3JldHVybntsZzohMCxtZDohMCxzbTohMSx4bDohMSx4czohMSx4eGw6ITF9fSxbXSksbz0oMCxlZS5aKSgpfHxnLHg9T2JqZWN0LmtleXMobykuZmlsdGVyKGZ1bmN0aW9uKFope3JldHVybiBvW1pdPT09ITB9KVswXXx8Im1kIixwPW5lW3hdfHwzO3JldHVybigwLGUuanN4cykoZS5GcmFnbWVudCx7Y2hpbGRyZW46WygwLGUuanN4cykoImRpdiIse3N0eWxlOntkaXNwbGF5OiJmbGV4IixiYWNrZ3JvdW5kOmk/InJnYmEoMCwwLDAsMC4wMikiOiJub25lIixwYWRkaW5nOiIyNHB4IDhweCJ9LGNoaWxkcmVuOltuZXcgQXJyYXkocCkuZmlsbChudWxsKS5tYXAoZnVuY3Rpb24oWixkKXtyZXR1cm4oMCxlLmpzeCkoImRpdiIse3N0eWxlOntmbGV4OjEscGFkZGluZ0lubGluZVN0YXJ0OmkmJmQ9PT0wPzA6MjAscGFkZGluZ0lubGluZUVuZDozMn0sY2hpbGRyZW46KDAsZS5qc3gpKGYuWix7YWN0aXZlOmEscGFyYWdyYXBoOiExLHRpdGxlOntzdHlsZTp7bWFyZ2luOjAsaGVpZ2h0OjI0LHdpZHRoOmk/Ijc1cHgiOiIxMDAlIn19fSl9LGQpfSksKDAsZS5qc3gpKCJkaXYiLHtzdHlsZTp7ZmxleDozLHBhZGRpbmdJbmxpbmVTdGFydDozMn0sY2hpbGRyZW46KDAsZS5qc3gpKGYuWix7YWN0aXZlOmEscGFyYWdyYXBoOiExLHRpdGxlOntzdHlsZTp7bWFyZ2luOjAsaGVpZ2h0OjI0LHdpZHRoOmk/Ijc1cHgiOiIxMDAlIn19fSl9KV19KSwoMCxlLmpzeCkodGUse3BhZGRpbmc6IjBweCAwcHgifSldfSl9LHJlPWZ1bmN0aW9uKHQpe3ZhciBhPXQuYWN0aXZlLG49dC5zaXplLGk9bj09PXZvaWQgMD80Om47cmV0dXJuKDAsZS5qc3hzKSgkLlose2JvcmRlcmVkOiExLGNoaWxkcmVuOlsoMCxlLmpzeCkoZi5aLkJ1dHRvbix7YWN0aXZlOmEsc2l6ZToic21hbGwiLHN0eWxlOnt3aWR0aDoxMDAsbWFyZ2luQmxvY2tFbmQ6MTZ9fSksKDAsZS5qc3gpKHZlLHtoZWFkZXI6ITAsYWN0aXZlOmF9KSxuZXcgQXJyYXkoaSkuZmlsbChudWxsKS5tYXAoZnVuY3Rpb24oZyxvKXtyZXR1cm4oMCxlLmpzeCkodmUse2FjdGl2ZTphfSxvKX0pLCgwLGUuanN4KSgiZGl2Iix7c3R5bGU6e2Rpc3BsYXk6ImZsZXgiLGp1c3RpZnlDb250ZW50OiJmbGV4LWVuZCIscGFkZGluZ0Jsb2NrU3RhcnQ6MTZ9LGNoaWxkcmVuOigwLGUuanN4KShmLlose2FjdGl2ZTphLHBhcmFncmFwaDohMSx0aXRsZTp7c3R5bGU6e21hcmdpbjowLGhlaWdodDozMixmbG9hdDoicmlnaHQiLG1heFdpZHRoOiI2MzBweCJ9fX0pfSldfSl9LEllPWZ1bmN0aW9uKHQpe3ZhciBhPXQuYWN0aXZlO3JldHVybigwLGUuanN4cykoJC5aLHtib3JkZXJlZDohMSxzdHlsZTp7Ym9yZGVyU3RhcnRFbmRSYWRpdXM6MCxib3JkZXJUb3BMZWZ0UmFkaXVzOjB9LGNoaWxkcmVuOlsoMCxlLmpzeCkoZi5aLkJ1dHRvbix7YWN0aXZlOmEsc2l6ZToic21hbGwiLHN0eWxlOnt3aWR0aDoxMDAsbWFyZ2luQmxvY2tFbmQ6MTZ9fSksKDAsZS5qc3gpKGNlLHthY3RpdmU6YX0pLCgwLGUuanN4KShFZSx7YWN0aXZlOmF9KV19KX0sQT1mdW5jdGlvbih0KXt2YXIgYT10LmFjdGl2ZSxuPWE9PT12b2lkIDA/ITA6YSxpPXQucGFnZUhlYWRlcixnPXQubGlzdDtyZXR1cm4oMCxlLmpzeHMpKCJkaXYiLHtzdHlsZTp7d2lkdGg6IjEwMCUifSxjaGlsZHJlbjpbaSE9PSExJiYoMCxlLmpzeCkoRyx7YWN0aXZlOm59KSwoMCxlLmpzeCkoSWUse2FjdGl2ZTpufSksZyE9PSExJiYoMCxlLmpzeCkodGUse30pLGchPT0hMSYmKDAsZS5qc3gpKHJlLHthY3RpdmU6bixzaXplOmd9KV19KX0sZmU9QSxEZT1mdW5jdGlvbih0KXt2YXIgYT10LmFjdGl2ZSxuPWE9PT12b2lkIDA/ITA6YSxpPXQucGFnZUhlYWRlcjtyZXR1cm4oMCxlLmpzeHMpKCJkaXYiLHtzdHlsZTp7d2lkdGg6IjEwMCUifSxjaGlsZHJlbjpbaSE9PSExJiYoMCxlLmpzeCkoRyx7YWN0aXZlOm59KSwoMCxlLmpzeCkoJC5aLHtjaGlsZHJlbjooMCxlLmpzeHMpKCJkaXYiLHtzdHlsZTp7ZGlzcGxheToiZmxleCIsanVzdGlmeUNvbnRlbnQ6ImNlbnRlciIsYWxpZ25JdGVtczoiY2VudGVyIixmbGV4RGlyZWN0aW9uOiJjb2x1bW4iLHBhZGRpbmc6MTI4fSxjaGlsZHJlbjpbKDAsZS5qc3gpKGYuWi5BdmF0YXIse3NpemU6NjQsc3R5bGU6e21hcmdpbkJsb2NrRW5kOjMyfX0pLCgwLGUuanN4KShmLlouQnV0dG9uLHthY3RpdmU6bixzdHlsZTp7d2lkdGg6MjE0LG1hcmdpbkJsb2NrRW5kOjh9fSksKDAsZS5qc3gpKGYuWi5CdXR0b24se2FjdGl2ZTpuLHN0eWxlOnt3aWR0aDozMjh9LHNpemU6InNtYWxsIn0pLCgwLGUuanN4cykoei5aLHtzdHlsZTp7bWFyZ2luQmxvY2tTdGFydDoyNH0sY2hpbGRyZW46WygwLGUuanN4KShmLlouQnV0dG9uLHthY3RpdmU6bixzdHlsZTp7d2lkdGg6MTE2fX0pLCgwLGUuanN4KShmLlouQnV0dG9uLHthY3RpdmU6bixzdHlsZTp7d2lkdGg6MTE2fX0pXX0pXX0pfSldfSl9LGxlPURlLEk9WyJ0eXBlIl0sbWU9ZnVuY3Rpb24odCl7dmFyIGE9dC50eXBlLG49YT09PXZvaWQgMD8ibGlzdCI6YSxpPSgwLHEuWikodCxJKTtyZXR1cm4gbj09PSJyZXN1bHQiPygwLGUuanN4KShsZSwoMCxzLlopKHt9LGkpKTpuPT09ImRlc2NyaXB0aW9ucyI/KDAsZS5qc3gpKGZlLCgwLHMuWikoe30saSkpOigwLGUuanN4KShUZSwoMCxzLlopKHt9LGkpKX0sZ2U9bWUsaWU9cigyMDI2KSx4ZT1yKDkwMDgxKSxzZT1yKDE5NzcpLEJlPXIoNzczOTgpLFg9cigxMjc5NSksUGU9cig1MzkxNCksSj1yKDk3Njg1KSxIZT1yKDEwOTE1KSxMZT1yKDI0NTMpLFdlPXIoNTY3OTApLGtlPXIoMjE3NzApLHllPXIoODY2NzEpLEtlPWZ1bmN0aW9uKHQpe3JldHVybihMZS5aUC53YXJufHxMZS5aUC53YXJuaW5nKSh0KX07ZnVuY3Rpb24gT2UobCl7dmFyIHQ9bC5kYXRhLGE9bC5yb3c7cmV0dXJuKDAscy5aKSgoMCxzLlopKHt9LHQpLGEpfWZ1bmN0aW9uIFhlKGwpe3ZhciB0PSgwLFAudXNlUmVmKShudWxsKSxhPWwudHlwZXx8InNpbmdsZSIsbj0oMCxIZS5ZQikoKSxpPSgwLGtlLlopKFtdLHt2YWx1ZTpsLmVkaXRhYmxlS2V5cyxvbkNoYW5nZTpsLm9uQ2hhbmdlP2Z1bmN0aW9uKG0pe3ZhciB5O2w9PW51bGx8fCh5PWwub25DaGFuZ2UpPT09bnVsbHx8eT09PXZvaWQgMHx8eS5jYWxsKGwsbSxsLmRhdGFTb3VyY2UpfTp2b2lkIDB9KSxnPSgwLEouWikoaSwyKSxvPWdbMF0seD1nWzFdLHA9KDAsUC51c2VNZW1vKShmdW5jdGlvbigpe3ZhciBtPWE9PT0ic2luZ2xlIj9vPT1udWxsP3ZvaWQgMDpvLnNsaWNlKDAsMSk6bztyZXR1cm4gbmV3IFNldChtKX0sWyhvfHxbXSkuam9pbigiLCIpLGFdKSxaPSgwLFAudXNlQ2FsbGJhY2spKGZ1bmN0aW9uKG0pe3JldHVybiEhKG8hPW51bGwmJm8uaW5jbHVkZXMoKDAseWUuc04pKG0pKSl9LFsob3x8W10pLmpvaW4oIiwiKV0pLGQ9ZnVuY3Rpb24oeSxiKXt2YXIgdjtyZXR1cm4gcC5zaXplPjAmJmE9PT0ic2luZ2xlIj8oS2UobC5vbmx5T25lTGluZUVkaXRvckFsZXJ0TWVzc2FnZXx8bi5nZXRNZXNzYWdlKCJlZGl0YWJsZVRhYmxlLm9ubHlPbmVMaW5lRWRpdG9yIiwiXHU1M0VBXHU4MEZEXHU1NDBDXHU2NUY2XHU3RjE2XHU4RjkxXHU0RTAwXHU4ODRDIikpLCExKToodC5jdXJyZW50PSh2PWIhPW51bGw/YjooMCxXZS5VMikobC5kYXRhU291cmNlLEFycmF5LmlzQXJyYXkoeSk/eTpbeV0pKSE9PW51bGwmJnYhPT12b2lkIDA/djpudWxsLHAuYWRkKCgwLHllLnNOKSh5KSkseChBcnJheS5mcm9tKHApKSwhMCl9LFQ9ZnVuY3Rpb24oeSl7cmV0dXJuIHAuZGVsZXRlKCgwLHllLnNOKSh5KSkseChBcnJheS5mcm9tKHApKSwhMH0sRj1mdW5jdGlvbigpe3ZhciBtPSgwLFkuWikoKDAsTS5aKSgpLm1hcmsoZnVuY3Rpb24geShiLHYsdyxMKXt2YXIgQixjO3JldHVybigwLE0uWikoKS53cmFwKGZ1bmN0aW9uKGgpe2Zvcig7Oylzd2l0Y2goaC5wcmV2PWgubmV4dCl7Y2FzZSAwOnJldHVybiBoLm5leHQ9MixsPT1udWxsfHwoQj1sLm9uQ2FuY2VsKT09PW51bGx8fEI9PT12b2lkIDA/dm9pZCAwOkIuY2FsbChsLGIsdix3LEwpO2Nhc2UgMjppZihjPWguc2VudCxjIT09ITEpe2gubmV4dD01O2JyZWFrfXJldHVybiBoLmFicnVwdCgicmV0dXJuIiwhMSk7Y2FzZSA1OnJldHVybiBoLmFicnVwdCgicmV0dXJuIiwhMCk7Y2FzZSA2OmNhc2UiZW5kIjpyZXR1cm4gaC5zdG9wKCl9fSx5KX0pKTtyZXR1cm4gZnVuY3Rpb24oYix2LHcsTCl7cmV0dXJuIG0uYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSxEPWZ1bmN0aW9uKCl7dmFyIG09KDAsWS5aKSgoMCxNLlopKCkubWFyayhmdW5jdGlvbiB5KGIsdix3KXt2YXIgTCxCLGM7cmV0dXJuKDAsTS5aKSgpLndyYXAoZnVuY3Rpb24oaCl7Zm9yKDs7KXN3aXRjaChoLnByZXY9aC5uZXh0KXtjYXNlIDA6cmV0dXJuIGgubmV4dD0yLGw9PW51bGx8fChMPWwub25TYXZlKT09PW51bGx8fEw9PT12b2lkIDA/dm9pZCAwOkwuY2FsbChsLGIsdix3KTtjYXNlIDI6aWYoQj1oLnNlbnQsQiE9PSExKXtoLm5leHQ9NTticmVha31yZXR1cm4gaC5hYnJ1cHQoInJldHVybiIsITEpO2Nhc2UgNTpyZXR1cm4gaC5uZXh0PTcsVChiKTtjYXNlIDc6cmV0dXJuIGM9e2RhdGE6bC5kYXRhU291cmNlLHJvdzp2LGtleTpiLGNoaWxkcmVuQ29sdW1uTmFtZTpsLmNoaWxkcmVuQ29sdW1uTmFtZXx8ImNoaWxkcmVuIn0sbC5zZXREYXRhU291cmNlKE9lKGMpKSxoLmFicnVwdCgicmV0dXJuIiwhMCk7Y2FzZSAxMDpjYXNlImVuZCI6cmV0dXJuIGguc3RvcCgpfX0seSl9KSk7cmV0dXJuIGZ1bmN0aW9uKGIsdix3KXtyZXR1cm4gbS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLFc9bi5nZXRNZXNzYWdlKCJlZGl0YWJsZVRhYmxlLmFjdGlvbi5zYXZlIiwiXHU0RkREXHU1QjU4IiksRT1uLmdldE1lc3NhZ2UoImVkaXRhYmxlVGFibGUuYWN0aW9uLmRlbGV0ZSIsIlx1NTIyMFx1OTY2NCIpLGs9bi5nZXRNZXNzYWdlKCJlZGl0YWJsZVRhYmxlLmFjdGlvbi5jYW5jZWwiLCJcdTUzRDZcdTZEODgiKSxOPSgwLFAudXNlQ2FsbGJhY2spKGZ1bmN0aW9uKG0seSl7dmFyIGI9KDAscy5aKSh7cmVjb3JkS2V5Om0sY2FuY2VsRWRpdGFibGU6VCxvbkNhbmNlbDpGLG9uU2F2ZTpELGVkaXRhYmxlS2V5czpvLHNldEVkaXRhYmxlUm93S2V5czp4LHNhdmVUZXh0OlcsY2FuY2VsVGV4dDprLHByZUVkaXRSb3dSZWY6dCxkZWxldGVUZXh0OkUsZGVsZXRlUG9wY29uZmlybU1lc3NhZ2U6IiIuY29uY2F0KG4uZ2V0TWVzc2FnZSgiZGVsZXRlVGhpc0xpbmUiLCJcdTUyMjBcdTk2NjRcdTZCNjRcdTk4NzkiKSwiPyIpLGVkaXRvclR5cGU6Ik1hcCJ9LHkpLHY9KDAseWUuYVgpKGwuZGF0YVNvdXJjZSxiKTtyZXR1cm4gbC5hY3Rpb25SZW5kZXI/bC5hY3Rpb25SZW5kZXIobC5kYXRhU291cmNlLGIse3NhdmU6di5zYXZlLGRlbGV0ZTp2LmRlbGV0ZSxjYW5jZWw6di5jYW5jZWx9KTpbdi5zYXZlLHYuZGVsZXRlLHYuY2FuY2VsXX0sW28mJm8uam9pbigiLCIpLGwuZGF0YVNvdXJjZV0pO3JldHVybntlZGl0YWJsZUtleXM6byxzZXRFZGl0YWJsZVJvd0tleXM6eCxpc0VkaXRhYmxlOlosYWN0aW9uUmVuZGVyOk4sc3RhcnRFZGl0YWJsZTpkLGNhbmNlbEVkaXRhYmxlOlR9fXZhciBHZT1yKDc4MTY0KSxNZT1yKDY3MTU5KSxSZT1yKDI2NDEyKSxWZT1yKDIxNTMyKSxRZT1yKDUwMzQ0KSxZZT1yKDg4MzA2KSxKZT1mdW5jdGlvbih0LGEpe3ZhciBuPWF8fHt9LGk9bi5vblJlcXVlc3RFcnJvcixnPW4uZWZmZWN0cyxvPW4ubWFudWFsLHg9bi5kYXRhU291cmNlLHA9bi5kZWZhdWx0RGF0YVNvdXJjZSxaPW4ub25EYXRhU291cmNlQ2hhbmdlLGQ9KDAsa2UuWikocCx7dmFsdWU6eCxvbkNoYW5nZTpafSksVD0oMCxKLlopKGQsMiksRj1UWzBdLEQ9VFsxXSxXPSgwLGtlLlopKGE9PW51bGw/dm9pZCAwOmEubG9hZGluZyx7dmFsdWU6YT09bnVsbD92b2lkIDA6YS5sb2FkaW5nLG9uQ2hhbmdlOmE9PW51bGw/dm9pZCAwOmEub25Mb2FkaW5nQ2hhbmdlfSksRT0oMCxKLlopKFcsMiksaz1FWzBdLE49RVsxXSxtPWZ1bmN0aW9uKHYpe0QodiksTighMSl9LHk9ZnVuY3Rpb24oKXt2YXIgYj0oMCxZLlopKCgwLE0uWikoKS5tYXJrKGZ1bmN0aW9uIHYoKXt2YXIgdyxMLEI7cmV0dXJuKDAsTS5aKSgpLndyYXAoZnVuY3Rpb24odSl7Zm9yKDs7KXN3aXRjaCh1LnByZXY9dS5uZXh0KXtjYXNlIDA6aWYoIWspe3UubmV4dD0yO2JyZWFrfXJldHVybiB1LmFicnVwdCgicmV0dXJuIik7Y2FzZSAyOnJldHVybiBOKCEwKSx1LnByZXY9Myx1Lm5leHQ9Nix0KCk7Y2FzZSA2OmlmKHUudDA9dS5zZW50LHUudDApe3UubmV4dD05O2JyZWFrfXUudDA9e307Y2FzZSA5Onc9dS50MCxMPXcuZGF0YSxCPXcuc3VjY2VzcyxCIT09ITEmJm0oTCksdS5uZXh0PTIzO2JyZWFrO2Nhc2UgMTU6aWYodS5wcmV2PTE1LHUudDE9dS5jYXRjaCgzKSxpIT09dm9pZCAwKXt1Lm5leHQ9MjE7YnJlYWt9dGhyb3cgbmV3IEVycm9yKHUudDEpO2Nhc2UgMjE6aSh1LnQxKTtjYXNlIDIyOk4oITEpO2Nhc2UgMjM6cmV0dXJuIHUucHJldj0yMyxOKCExKSx1LmZpbmlzaCgyMyk7Y2FzZSAyNjpjYXNlImVuZCI6cmV0dXJuIHUuc3RvcCgpfX0sdixudWxsLFtbMywxNSwyMywyNl1dKX0pKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gYi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpO3JldHVybigwLFAudXNlRWZmZWN0KShmdW5jdGlvbigpe298fHkoKX0sW10uY29uY2F0KCgwLFIuWikoZ3x8W10pLFtvXSkpLHtkYXRhU291cmNlOkYsc2V0RGF0YVNvdXJjZTpELGxvYWRpbmc6ayxyZWxvYWQ6ZnVuY3Rpb24oKXtyZXR1cm4geSgpfX19LFVlPUplLHplPXIoNjQ4NDcpLHFlPVsidmFsdWVFbnVtIiwicmVuZGVyIiwicmVuZGVyVGV4dCIsIm1vZGUiLCJwbGFpbiIsImRhdGFJbmRleCIsInJlcXVlc3QiLCJwYXJhbXMiLCJlZGl0YWJsZSJdLF9lPVsicmVxdWVzdCIsImNvbHVtbnMiLCJwYXJhbXMiLCJkYXRhU291cmNlIiwib25EYXRhU291cmNlQ2hhbmdlIiwiZm9ybVByb3BzIiwiZWRpdGFibGUiLCJsb2FkaW5nIiwib25Mb2FkaW5nQ2hhbmdlIiwiYWN0aW9uUmVmIiwib25SZXF1ZXN0RXJyb3IiLCJlbXB0eVRleHQiLCJjb250ZW50U3R5bGUiXSxldD1mdW5jdGlvbih0LGEpe3ZhciBuPXQuZGF0YUluZGV4O2lmKG4pe3ZhciBpPUFycmF5LmlzQXJyYXkobik/KDAsWWUuWikoYSxuKTphW25dO2lmKGkhPT12b2lkIDB8fGkhPT1udWxsKXJldHVybiBpfXJldHVybiB0LmNoaWxkcmVufSwkZT1mdW5jdGlvbih0KXt2YXIgYSxuPXQudmFsdWVFbnVtLGk9dC5hY3Rpb24sZz10LmluZGV4LG89dC50ZXh0LHg9dC5lbnRpdHkscD10Lm1vZGUsWj10LnJlbmRlcixkPXQuZWRpdGFibGVVdGlscyxUPXQudmFsdWVUeXBlLEY9dC5wbGFpbixEPXQuZGF0YUluZGV4LFc9dC5yZXF1ZXN0LEU9dC5yZW5kZXJGb3JtSXRlbSxrPXQucGFyYW1zLE49dC5lbXB0eVRleHQsbT1PLlpQLnVzZUZvcm1JbnN0YW5jZSgpLHk9KGE9emUuT3cudXNlVG9rZW4pPT09bnVsbHx8YT09PXZvaWQgMD92b2lkIDA6YS5jYWxsKHplLk93KSxiPXkudG9rZW4sdj17dGV4dDpvLHZhbHVlRW51bTpuLG1vZGU6cHx8InJlYWQiLHByb0ZpZWxkUHJvcHM6e2VtcHR5VGV4dDpOLHJlbmRlcjpaP2Z1bmN0aW9uKEIpe3JldHVybiBaPT1udWxsP3ZvaWQgMDpaKEIseCxnLGksKDAscy5aKSgoMCxzLlopKHt9LHQpLHt9LHt0eXBlOiJkZXNjcmlwdGlvbnMifSkpfTp2b2lkIDB9LGlnbm9yZUZvcm1JdGVtOiEwLHZhbHVlVHlwZTpULHJlcXVlc3Q6VyxwYXJhbXM6ayxwbGFpbjpGfTtpZihwPT09InJlYWQifHwhcHx8VD09PSJvcHRpb24iKXt2YXIgdz0oMCxpZS53KSh0LmZpZWxkUHJvcHMsdm9pZCAwLCgwLHMuWikoKDAscy5aKSh7fSx0KSx7fSx7cm93S2V5OkQsaXNFZGl0YWJsZTohMX0pKTtyZXR1cm4oMCxlLmpzeCkoXy5aLCgwLHMuWikoKDAscy5aKSh7bmFtZTpEfSx2KSx7fSx7ZmllbGRQcm9wczp3fSkpfXZhciBMPWZ1bmN0aW9uKCl7dmFyIGMsdT0oMCxpZS53KSh0LmZvcm1JdGVtUHJvcHMsbSwoMCxzLlopKCgwLHMuWikoe30sdCkse30se3Jvd0tleTpELGlzRWRpdGFibGU6ITB9KSksaD0oMCxpZS53KSh0LmZpZWxkUHJvcHMsbSwoMCxzLlopKCgwLHMuWikoe30sdCkse30se3Jvd0tleTpELGlzRWRpdGFibGU6ITB9KSk7cmV0dXJuKDAsZS5qc3hzKSgiZGl2Iix7c3R5bGU6e2Rpc3BsYXk6ImZsZXgiLGdhcDpiLm1hcmdpblhTLGFsaWduSXRlbXM6ImJhc2VsaW5lIn0sY2hpbGRyZW46WygwLGUuanN4KSh4ZS5VLCgwLHMuWikoKDAscy5aKSh7bmFtZTpEfSx1KSx7fSx7c3R5bGU6KDAscy5aKSh7bWFyZ2luOjB9LCh1PT1udWxsP3ZvaWQgMDp1LnN0eWxlKXx8e30pLGluaXRpYWxWYWx1ZTpvfHwodT09bnVsbD92b2lkIDA6dS5pbml0aWFsVmFsdWUpLGNoaWxkcmVuOigwLGUuanN4KShfLlosKDAscy5aKSgoMCxzLlopKHt9LHYpLHt9LHtwcm9GaWVsZFByb3BzOigwLHMuWikoe30sdi5wcm9GaWVsZFByb3BzKSxyZW5kZXJGb3JtSXRlbTpFP2Z1bmN0aW9uKCl7cmV0dXJuIEU9PW51bGw/dm9pZCAwOkUoKDAscy5aKSgoMCxzLlopKHt9LHQpLHt9LHt0eXBlOiJkZXNjcmlwdGlvbnMifSkse2lzRWRpdGFibGU6ITAscmVjb3JkS2V5OkQscmVjb3JkOm0uZ2V0RmllbGRWYWx1ZShbRF0uZmxhdCgxKSksZGVmYXVsdFJlbmRlcjpmdW5jdGlvbigpe3JldHVybigwLGUuanN4KShfLlosKDAscy5aKSgoMCxzLlopKHt9LHYpLHt9LHtmaWVsZFByb3BzOmh9KSl9LHR5cGU6ImRlc2NyaXB0aW9ucyJ9LG0pfTp2b2lkIDAsZmllbGRQcm9wczpofSkpfSkpLCgwLGUuanN4KSgiZGl2Iix7c3R5bGU6e2Rpc3BsYXk6ImZsZXgiLG1heEhlaWdodDpiLmNvbnRyb2xIZWlnaHQsYWxpZ25JdGVtczoiY2VudGVyIixnYXA6Yi5tYXJnaW5YU30sY2hpbGRyZW46ZD09bnVsbHx8KGM9ZC5hY3Rpb25SZW5kZXIpPT09bnVsbHx8Yz09PXZvaWQgMD92b2lkIDA6Yy5jYWxsKGQsRHx8Zyx7Y2FuY2VsVGV4dDooMCxlLmpzeCkoU2UuWix7fSksc2F2ZVRleHQ6KDAsZS5qc3gpKHBlLlose30pLGRlbGV0ZVRleHQ6ITF9KX0pXX0pfTtyZXR1cm4oMCxlLmpzeCkoImRpdiIse3N0eWxlOnttYXJnaW5Ub3A6LTUsbWFyZ2luQm90dG9tOi01LG1hcmdpbkxlZnQ6MCxtYXJnaW5SaWdodDowfSxjaGlsZHJlbjpMKCl9KX0sdHQ9ZnVuY3Rpb24odCxhLG4saSxnKXt2YXIgbyx4PVtdLHA9KDAsc2UubikoTWUuWiwiNS44LjAiKT49MCxaPXQ9PW51bGx8fChvPXQubWFwKT09PW51bGx8fG89PT12b2lkIDA/dm9pZCAwOm8uY2FsbCh0LGZ1bmN0aW9uKGQsVCl7dmFyIEYsRCxXO2lmKFAuaXNWYWxpZEVsZW1lbnQoZCkpcmV0dXJuIHA/e2NoaWxkcmVuOmR9OmQ7dmFyIEU9ZCxrPUUudmFsdWVFbnVtLE49RS5yZW5kZXIsbT1FLnJlbmRlclRleHQseT1FLm1vZGUsYj1FLnBsYWluLHY9RS5kYXRhSW5kZXgsdz1FLnJlcXVlc3QsTD1FLnBhcmFtcyxCPUUuZWRpdGFibGUsYz0oMCxxLlopKEUscWUpLHU9KEY9ZXQoZCxhKSkhPT1udWxsJiZGIT09dm9pZCAwP0Y6Yy5jaGlsZHJlbixoPW0/bSh1LGEsVCxuKTp1LFY9dHlwZW9mIGMudGl0bGU9PSJmdW5jdGlvbiI/Yy50aXRsZShkLCJkZXNjcmlwdGlvbnMiLG51bGwpOmMudGl0bGUsSz10eXBlb2YgYy52YWx1ZVR5cGU9PSJmdW5jdGlvbiI/Yy52YWx1ZVR5cGUoYXx8e30sImRlc2NyaXB0aW9ucyIpOmMudmFsdWVUeXBlLGo9aT09bnVsbD92b2lkIDA6aS5pc0VkaXRhYmxlKHZ8fFQpLFM9eXx8aj8iZWRpdCI6InJlYWQiLG9lPWkmJlM9PT0icmVhZCImJkIhPT0hMSYmKEI9PW51bGw/dm9pZCAwOkIoaCxhLFQpKSE9PSExLGhlPW9lP3ouWjpQLkZyYWdtZW50LFplPVM9PT0iZWRpdCI/aDooMCxCZS5YKShoLGQsaCksamU9cCYmSyE9PSJvcHRpb24iPygwLHMuWikoKDAscy5aKSh7fSxjKSx7fSx7a2V5OmMua2V5fHwoKEQ9Yy5sYWJlbCk9PT1udWxsfHxEPT09dm9pZCAwP3ZvaWQgMDpELnRvU3RyaW5nKCkpfHxULGxhYmVsOihWfHxjLmxhYmVsfHxjLnRvb2x0aXApJiYoMCxlLmpzeCkoWC5HLHtsYWJlbDpWfHxjLmxhYmVsLHRvb2x0aXA6Yy50b29sdGlwLGVsbGlwc2lzOmQuZWxsaXBzaXN9KSxjaGlsZHJlbjooMCxlLmpzeHMpKGhlLHtjaGlsZHJlbjpbKDAsUC5jcmVhdGVFbGVtZW50KSgkZSwoMCxzLlopKCgwLHMuWikoe30sZCkse30se2tleTpkPT1udWxsP3ZvaWQgMDpkLmtleSxkYXRhSW5kZXg6ZC5kYXRhSW5kZXh8fFQsbW9kZTpTLHRleHQ6WmUsdmFsdWVUeXBlOkssZW50aXR5OmEsaW5kZXg6VCxlbXB0eVRleHQ6ZyxhY3Rpb246bixlZGl0YWJsZVV0aWxzOml9KSksb2UmJigwLGUuanN4KShkZS5aLHtvbkNsaWNrOmZ1bmN0aW9uKCl7aT09bnVsbHx8aS5zdGFydEVkaXRhYmxlKHZ8fFQpfX0pXX0pfSk6KDAsUC5jcmVhdGVFbGVtZW50KShSZS5aLkl0ZW0sKDAscy5aKSgoMCxzLlopKHt9LGMpLHt9LHtrZXk6Yy5rZXl8fCgoVz1jLmxhYmVsKT09PW51bGx8fFc9PT12b2lkIDA/dm9pZCAwOlcudG9TdHJpbmcoKSl8fFQsbGFiZWw6KFZ8fGMubGFiZWx8fGMudG9vbHRpcCkmJigwLGUuanN4KShYLkcse2xhYmVsOlZ8fGMubGFiZWwsdG9vbHRpcDpjLnRvb2x0aXAsZWxsaXBzaXM6ZC5lbGxpcHNpc30pfSksKDAsZS5qc3hzKShoZSx7Y2hpbGRyZW46WygwLGUuanN4KSgkZSwoMCxzLlopKCgwLHMuWikoe30sZCkse30se2RhdGFJbmRleDpkLmRhdGFJbmRleHx8VCxtb2RlOlMsdGV4dDpaZSx2YWx1ZVR5cGU6SyxlbnRpdHk6YSxpbmRleDpULGFjdGlvbjpuLGVkaXRhYmxlVXRpbHM6aX0pKSxvZSYmSyE9PSJvcHRpb24iJiYoMCxlLmpzeCkoZGUuWix7b25DbGljazpmdW5jdGlvbigpe2k9PW51bGx8fGkuc3RhcnRFZGl0YWJsZSh2fHxUKX19KV19KSk7cmV0dXJuIEs9PT0ib3B0aW9uIj8oeC5wdXNoKGplKSxudWxsKTpqZX0pLmZpbHRlcihmdW5jdGlvbihkKXtyZXR1cm4gZH0pO3JldHVybntvcHRpb25zOnghPW51bGwmJngubGVuZ3RoP3g6bnVsbCxjaGlsZHJlbjpafX0sQWU9ZnVuY3Rpb24odCl7cmV0dXJuKDAsZS5qc3gpKFJlLlouSXRlbSwoMCxzLlopKCgwLHMuWikoe30sdCkse30se2NoaWxkcmVuOnQuY2hpbGRyZW59KSl9O0FlLmRpc3BsYXlOYW1lPSJQcm9EZXNjcmlwdGlvbnNJdGVtIjt2YXIgYXQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQuY2hpbGRyZW59LE5lPWZ1bmN0aW9uKHQpe3ZhciBhLG49dC5yZXF1ZXN0LGk9dC5jb2x1bW5zLGc9dC5wYXJhbXMsbz10LmRhdGFTb3VyY2UseD10Lm9uRGF0YVNvdXJjZUNoYW5nZSxwPXQuZm9ybVByb3BzLFo9dC5lZGl0YWJsZSxkPXQubG9hZGluZyxUPXQub25Mb2FkaW5nQ2hhbmdlLEY9dC5hY3Rpb25SZWYsRD10Lm9uUmVxdWVzdEVycm9yLFc9dC5lbXB0eVRleHQsRT10LmNvbnRlbnRTdHlsZSxrPSgwLHEuWikodCxfZSksTj0oMCxQLnVzZUNvbnRleHQpKFZlLlpQLkNvbmZpZ0NvbnRleHQpLG09VWUoKDAsWS5aKSgoMCxNLlopKCkubWFyayhmdW5jdGlvbiBWKCl7dmFyIEs7cmV0dXJuKDAsTS5aKSgpLndyYXAoZnVuY3Rpb24oUyl7Zm9yKDs7KXN3aXRjaChTLnByZXY9Uy5uZXh0KXtjYXNlIDA6aWYoIW4pe1MubmV4dD02O2JyZWFrfXJldHVybiBTLm5leHQ9MyxuKGd8fHt9KTtjYXNlIDM6Uy50MD1TLnNlbnQsUy5uZXh0PTc7YnJlYWs7Y2FzZSA2OlMudDA9e2RhdGE6e319O2Nhc2UgNzpyZXR1cm4gSz1TLnQwLFMuYWJydXB0KCJyZXR1cm4iLEspO2Nhc2UgOTpjYXNlImVuZCI6cmV0dXJuIFMuc3RvcCgpfX0sVil9KSkse29uUmVxdWVzdEVycm9yOkQsZWZmZWN0czpbKDAsUGUuWlApKGcpXSxtYW51YWw6IW4sZGF0YVNvdXJjZTpvLGxvYWRpbmc6ZCxvbkxvYWRpbmdDaGFuZ2U6VCxvbkRhdGFTb3VyY2VDaGFuZ2U6eH0pLHk9WGUoKDAscy5aKSgoMCxzLlopKHt9LHQuZWRpdGFibGUpLHt9LHtjaGlsZHJlbkNvbHVtbk5hbWU6dm9pZCAwLGRhdGFTb3VyY2U6bS5kYXRhU291cmNlLHNldERhdGFTb3VyY2U6bS5zZXREYXRhU291cmNlfSkpO2lmKCgwLFAudXNlRWZmZWN0KShmdW5jdGlvbigpe0YmJihGLmN1cnJlbnQ9KDAscy5aKSh7cmVsb2FkOm0ucmVsb2FkfSx5KSl9LFttLEYseV0pLG0ubG9hZGluZ3x8bS5sb2FkaW5nPT09dm9pZCAwJiZuKXJldHVybigwLGUuanN4KShnZSx7dHlwZToiZGVzY3JpcHRpb25zIixsaXN0OiExLHBhZ2VIZWFkZXI6ITF9KTt2YXIgYj1mdW5jdGlvbigpe3ZhciBLPSgwLFFlLlopKHQuY2hpbGRyZW4pLmZpbHRlcihCb29sZWFuKS5tYXAoZnVuY3Rpb24oail7aWYoIVAuaXNWYWxpZEVsZW1lbnQoaikpcmV0dXJuIGo7dmFyIFM9aj09bnVsbD92b2lkIDA6ai5wcm9wcyxvZT1TLnZhbHVlRW51bSxoZT1TLnZhbHVlVHlwZSxaZT1TLmRhdGFJbmRleCxqZT1TLmVsbGlwc2lzLEZlPVMuY29weWFibGUsbnQ9Uy5yZXF1ZXN0O3JldHVybiFoZSYmIW9lJiYhWmUmJiFudCYmIWplJiYhRmUmJmoudHlwZS5kaXNwbGF5TmFtZSE9PSJQcm9EZXNjcmlwdGlvbnNJdGVtIj9qOigwLHMuWikoKDAscy5aKSh7fSxqPT1udWxsP3ZvaWQgMDpqLnByb3BzKSx7fSx7ZW50aXR5Om99KX0pO3JldHVybltdLmNvbmNhdCgoMCxSLlopKGl8fFtdKSwoMCxSLlopKEspKS5maWx0ZXIoZnVuY3Rpb24oail7cmV0dXJuIWp8fGohPW51bGwmJmoudmFsdWVUeXBlJiZbImluZGV4IiwiaW5kZXhCb3JkZXIiXS5pbmNsdWRlcyhqPT1udWxsP3ZvaWQgMDpqLnZhbHVlVHlwZSk/ITE6IShqIT1udWxsJiZqLmhpZGVJbkRlc2NyaXB0aW9ucyl9KS5zb3J0KGZ1bmN0aW9uKGosUyl7cmV0dXJuIFMub3JkZXJ8fGoub3JkZXI/KFMub3JkZXJ8fDApLShqLm9yZGVyfHwwKTooUy5pbmRleHx8MCktKGouaW5kZXh8fDApfSl9LHY9dHQoYigpLG0uZGF0YVNvdXJjZXx8e30sKEY9PW51bGw/dm9pZCAwOkYuY3VycmVudCl8fG0sWj95OnZvaWQgMCx0LmVtcHR5VGV4dCksdz12Lm9wdGlvbnMsTD12LmNoaWxkcmVuLEI9Wj9PLlpQOmF0LGM9bnVsbDsoay50aXRsZXx8ay50b29sdGlwfHxrLnRpcCkmJihjPSgwLGUuanN4KShYLkcse2xhYmVsOmsudGl0bGUsdG9vbHRpcDprLnRvb2x0aXB8fGsudGlwfSkpO3ZhciB1PU4uZ2V0UHJlZml4Q2xzKCJwcm8tZGVzY3JpcHRpb25zIiksaD0oMCxzZS5uKShNZS5aLCI1LjguMCIpPj0wO3JldHVybigwLGUuanN4KShHZS5TLHtjaGlsZHJlbjooMCxlLmpzeCkoQiwoMCxzLlopKCgwLHMuWikoe2Zvcm06KGE9dC5lZGl0YWJsZSk9PT1udWxsfHxhPT09dm9pZCAwP3ZvaWQgMDphLmZvcm0sY29tcG9uZW50OiExLHN1Ym1pdHRlcjohMX0scCkse30se29uRmluaXNoOnZvaWQgMCxjaGlsZHJlbjooMCxlLmpzeCkoUmUuWiwoMCxzLlopKCgwLHMuWikoe2NsYXNzTmFtZTp1fSxrKSx7fSx7Y29udGVudFN0eWxlOigwLHMuWikoe21pbldpZHRoOjB9LEV8fHt9KSxleHRyYTprLmV4dHJhPygwLGUuanN4cykoei5aLHtjaGlsZHJlbjpbdyxrLmV4dHJhXX0pOncsdGl0bGU6YyxpdGVtczpoP0w6dm9pZCAwLGNoaWxkcmVuOmg/bnVsbDpMfSkpfSksImZvcm0iKX0pfTtOZS5JdGVtPUFlO3ZhciBydD1udWxsfSwyMjM2OmZ1bmN0aW9uKHdlLFUscil7ci5kKFUse1M6ZnVuY3Rpb24oKXtyZXR1cm4gdGV9fSk7dmFyIFI9cigxNDEzKSxNPXIoNDk0MiksWT1yKDkxKSxxPXIoMTIwNDQpLHM9cigyMTUzMiksU2U9cig5Mzk2NykscGU9ci5uKFNlKSxkZT1yKDk4NDIzKSxPPXIoNjcyOTQpLF89cig3MzkzNSksUD1yKDc2NTA5KSxmPXIoNjQ4NDcpLCQ9ZnVuY3Rpb24oQyl7cmV0dXJuKDAsTS5aKSh7fSxDLmNvbXBvbmVudENscyx7cG9zaXRpb246ImZpeGVkIixpbnNldElubGluZUVuZDowLGJvdHRvbTowLHpJbmRleDo5OSxkaXNwbGF5OiJmbGV4IixhbGlnbkl0ZW1zOiJjZW50ZXIiLHdpZHRoOiIxMDAlIixwYWRkaW5nSW5saW5lOjI0LHBhZGRpbmdCbG9jazowLGJveFNpemluZzoiYm9yZGVyLWJveCIsbGluZUhlaWdodDoiNjRweCIsYmFja2dyb3VuZENvbG9yOigwLGYudUspKEMuY29sb3JCZ0VsZXZhdGVkLC42KSxib3JkZXJCbG9ja1N0YXJ0OiIxcHggc29saWQgIi5jb25jYXQoQy5jb2xvclNwbGl0KSwiLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXIiOiJibHVyKDhweCkiLGJhY2tkcm9wRmlsdGVyOiJibHVyKDhweCkiLGNvbG9yOkMuY29sb3JUZXh0LHRyYW5zaXRpb246ImFsbCAwLjJzIGVhc2UgMHMiLCImLWxlZnQiOntmbGV4OjEsY29sb3I6Qy5jb2xvclRleHR9LCImLXJpZ2h0Ijp7Y29sb3I6Qy5jb2xvclRleHQsIj4gKiI6e21hcmdpbklubGluZUVuZDo4LCImOmxhc3QtY2hpbGQiOnttYXJnaW5CbG9jazowLG1hcmdpbklubGluZTowfX19fSl9O2Z1bmN0aW9uIGVlKFEpe3JldHVybigwLGYuWGopKCJQcm9MYXlvdXRGb290ZXJUb29sYmFyIixmdW5jdGlvbihDKXt2YXIgSD0oMCxSLlopKCgwLFIuWikoe30sQykse30se2NvbXBvbmVudENsczoiLiIuY29uY2F0KFEpfSk7cmV0dXJuWyQoSCldfSl9ZnVuY3Rpb24gYmUoUSxDKXt2YXIgSD1DLnN0eWxpc2g7cmV0dXJuKDAsZi5YaikoIlByb0xheW91dEZvb3RlclRvb2xiYXJTdHlsaXNoIixmdW5jdGlvbihhZSl7dmFyIEc9KDAsUi5aKSgoMCxSLlopKHt9LGFlKSx7fSx7Y29tcG9uZW50Q2xzOiIuIi5jb25jYXQoUSl9KTtyZXR1cm4gSD9bKDAsTS5aKSh7fSwiIi5jb25jYXQoRy5jb21wb25lbnRDbHMpLEg9PW51bGw/dm9pZCAwOkgoRykpXTpbXX0pfXZhciB6PXIoODU4OTMpLGU9WyJjaGlsZHJlbiIsImNsYXNzTmFtZSIsImV4dHJhIiwicG9ydGFsRG9tIiwic3R5bGUiLCJyZW5kZXJDb250ZW50Il0sdGU9ZnVuY3Rpb24oQyl7dmFyIEg9Qy5jaGlsZHJlbixhZT1DLmNsYXNzTmFtZSxHPUMuZXh0cmEsdWU9Qy5wb3J0YWxEb20sQ2U9dWU9PT12b2lkIDA/ITA6dWUsVGU9Qy5zdHlsZSxuZT1DLnJlbmRlckNvbnRlbnQsRWU9KDAsWS5aKShDLGUpLGNlPSgwLE8udXNlQ29udGV4dCkocy5aUC5Db25maWdDb250ZXh0KSx2ZT1jZS5nZXRQcmVmaXhDbHMscmU9Y2UuZ2V0VGFyZ2V0Q29udGFpbmVyLEllPUMucHJlZml4Q2xzfHx2ZSgicHJvIiksQT0iIi5jb25jYXQoSWUsIi1mb290ZXItYmFyIiksZmU9ZWUoQSksRGU9ZmUud3JhcFNTUixsZT1mZS5oYXNoSWQsST0oMCxPLnVzZUNvbnRleHQpKFAuWCksbWU9KDAsTy51c2VNZW1vKShmdW5jdGlvbigpe3ZhciBYPUkuaGFzU2lkZXJNZW51LFBlPUkuaXNNb2JpbGUsSj1JLnNpZGVyV2lkdGg7aWYoWClyZXR1cm4gSj9QZT8iMTAwJSI6ImNhbGMoMTAwJSAtICIuY29uY2F0KEosInB4KSIpOiIxMDAlIn0sW0kuY29sbGFwc2VkLEkuaGFzU2lkZXJNZW51LEkuaXNNb2JpbGUsSS5zaWRlcldpZHRoXSksZ2U9KDAsTy51c2VNZW1vKShmdW5jdGlvbigpe3JldHVybiB0eXBlb2Ygd2luZG93PT0idW5kZWZpbmVkInx8dHlwZW9mIGRvY3VtZW50PT0idW5kZWZpbmVkIj9udWxsOihyZT09bnVsbD92b2lkIDA6cmUoKSl8fGRvY3VtZW50LmJvZHl9LFtdKSxpZT1iZSgiIi5jb25jYXQoQSwiLiIpLmNvbmNhdChBLCItc3R5bGlzaCIpLHtzdHlsaXNoOkMuc3R5bGlzaH0pLHhlPSgwLHouanN4cykoei5GcmFnbWVudCx7Y2hpbGRyZW46WygwLHouanN4KSgiZGl2Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdChBLCItbGVmdCAiKS5jb25jYXQobGUpLnRyaW0oKSxjaGlsZHJlbjpHfSksKDAsei5qc3gpKCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KEEsIi1yaWdodCAiKS5jb25jYXQobGUpLnRyaW0oKSxjaGlsZHJlbjpIfSldfSk7KDAsTy51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7cmV0dXJuIUl8fCEoSSE9bnVsbCYmSS5zZXRIYXNGb290ZXJUb29sYmFyKT9mdW5jdGlvbigpe306KEk9PW51bGx8fEkuc2V0SGFzRm9vdGVyVG9vbGJhcighMCksZnVuY3Rpb24oKXt2YXIgWDtJPT1udWxsfHwoWD1JLnNldEhhc0Zvb3RlclRvb2xiYXIpPT09bnVsbHx8WD09PXZvaWQgMHx8WC5jYWxsKEksITEpfSl9LFtdKTt2YXIgc2U9KDAsei5qc3gpKCJkaXYiLCgwLFIuWikoKDAsUi5aKSh7Y2xhc3NOYW1lOnBlKCkoYWUsbGUsQSwoMCxNLlopKHt9LCIiLmNvbmNhdChBLCItc3R5bGlzaCIpLCEhQy5zdHlsaXNoKSksc3R5bGU6KDAsUi5aKSh7d2lkdGg6bWV9LFRlKX0sKDAsZGUuWikoRWUsWyJwcmVmaXhDbHMiXSkpLHt9LHtjaGlsZHJlbjpuZT9uZSgoMCxSLlopKCgwLFIuWikoKDAsUi5aKSh7fSxDKSxJKSx7fSx7bGVmdFdpZHRoOm1lfSkseGUpOnhlfSkpLEJlPSEoMCxxLmopKCl8fCFDZXx8IWdlP3NlOigwLF8uY3JlYXRlUG9ydGFsKShzZSxnZSxBKTtyZXR1cm4gaWUud3JhcFNTUihEZSgoMCx6LmpzeCkoTy5GcmFnbWVudCx7Y2hpbGRyZW46QmV9LEEpKSl9fSw3NjUwOTpmdW5jdGlvbih3ZSxVLHIpe3IuZChVLHtYOmZ1bmN0aW9uKCl7cmV0dXJuIE19fSk7dmFyIFI9cig2NzI5NCksTT0oMCxSLmNyZWF0ZUNvbnRleHQpKHt9KX19XSk7CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzIwMTYuYWJkNjYzNjEuYXN5bmMuanMgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzIwMTYuYWJkNjYzNjEuYXN5bmMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmUwZTMxZQotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvMjAxNi5hYmQ2NjM2MS5hc3luYy5qcwpAQCAtMCwwICsxLDIgQEAKKyhzZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvPXNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm98fFtdKS5wdXNoKFtbMjAxNl0sezMzMTI5OmZ1bmN0aW9uKEp0KXsoZnVuY3Rpb24oVHQsRil7SnQuZXhwb3J0cz1GKCl9KSh0aGlzLGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIFR0KGEsdCl7dmFyIGk9T2JqZWN0LmtleXMoYSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGU9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhhKTt0JiYoZT1lLmZpbHRlcihmdW5jdGlvbihvKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhLG8pLmVudW1lcmFibGV9KSksaS5wdXNoLmFwcGx5KGksZSl9cmV0dXJuIGl9ZnVuY3Rpb24gRihhKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgaT1hcmd1bWVudHNbdF0hPW51bGw/YXJndW1lbnRzW3RdOnt9O3QlMj9UdChPYmplY3QoaSksITApLmZvckVhY2goZnVuY3Rpb24oZSl7SHQoYSxlLGlbZV0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoYSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhpKSk6VHQoT2JqZWN0KGkpKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShhLGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihpLGUpKX0pfXJldHVybiBhfWZ1bmN0aW9uIGooYSx0KXtpZih0eXBlb2YgYSE9Im9iamVjdCJ8fCFhKXJldHVybiBhO3ZhciBpPWFbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZihpIT09dm9pZCAwKXt2YXIgZT1pLmNhbGwoYSx0fHwiZGVmYXVsdCIpO2lmKHR5cGVvZiBlIT0ib2JqZWN0IilyZXR1cm4gZTt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybih0PT09InN0cmluZyI/U3RyaW5nOk51bWJlcikoYSl9ZnVuY3Rpb24gUHQoYSl7dmFyIHQ9aihhLCJzdHJpbmciKTtyZXR1cm4gdHlwZW9mIHQ9PSJzeW1ib2wiP3Q6dCsiIn1mdW5jdGlvbiBPdChhKXsiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2YiO3JldHVybiBPdD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZ0eXBlb2YgU3ltYm9sLml0ZXJhdG9yPT0ic3ltYm9sIj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiZ0eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgdH0sT3QoYSl9ZnVuY3Rpb24gWihhLHQpe2lmKCEoYSBpbnN0YW5jZW9mIHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIG10KGEsdCl7Zm9yKHZhciBpPTA7aTx0Lmxlbmd0aDtpKyspe3ZhciBlPXRbaV07ZS5lbnVtZXJhYmxlPWUuZW51bWVyYWJsZXx8ITEsZS5jb25maWd1cmFibGU9ITAsInZhbHVlImluIGUmJihlLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxQdChlLmtleSksZSl9fWZ1bmN0aW9uIFd0KGEsdCxpKXtyZXR1cm4gdCYmbXQoYS5wcm90b3R5cGUsdCksaSYmbXQoYSxpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYSwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxhfWZ1bmN0aW9uIEh0KGEsdCxpKXtyZXR1cm4gdD1QdCh0KSx0IGluIGE/T2JqZWN0LmRlZmluZVByb3BlcnR5KGEsdCx7dmFsdWU6aSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmFbdF09aSxhfWZ1bmN0aW9uIEx0KGEpe3JldHVybiBQKGEpfHxHKGEpfHx4KGEpfHxMKCl9ZnVuY3Rpb24gUChhKXtpZihBcnJheS5pc0FycmF5KGEpKXJldHVybiBPKGEpfWZ1bmN0aW9uIEcoYSl7aWYodHlwZW9mIFN5bWJvbCE9InVuZGVmaW5lZCImJmFbU3ltYm9sLml0ZXJhdG9yXSE9bnVsbHx8YVsiQEBpdGVyYXRvciJdIT1udWxsKXJldHVybiBBcnJheS5mcm9tKGEpfWZ1bmN0aW9uIHgoYSx0KXtpZihhKXtpZih0eXBlb2YgYT09InN0cmluZyIpcmV0dXJuIE8oYSx0KTt2YXIgaT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYSkuc2xpY2UoOCwtMSk7aWYoaT09PSJPYmplY3QiJiZhLmNvbnN0cnVjdG9yJiYoaT1hLmNvbnN0cnVjdG9yLm5hbWUpLGk9PT0iTWFwInx8aT09PSJTZXQiKXJldHVybiBBcnJheS5mcm9tKGEpO2lmKGk9PT0iQXJndW1lbnRzInx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaSkpcmV0dXJuIE8oYSx0KX19ZnVuY3Rpb24gTyhhLHQpeyh0PT1udWxsfHx0PmEubGVuZ3RoKSYmKHQ9YS5sZW5ndGgpO2Zvcih2YXIgaT0wLGU9bmV3IEFycmF5KHQpO2k8dDtpKyspZVtpXT1hW2ldO3JldHVybiBlfWZ1bmN0aW9uIEwoKXt0aHJvdyBuZXcgVHlwZUVycm9yKGBJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS4KK0luIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5gKX12YXIgUT10eXBlb2Ygd2luZG93IT0idW5kZWZpbmVkIiYmdHlwZW9mIHdpbmRvdy5kb2N1bWVudCE9InVuZGVmaW5lZCIsWD1RP3dpbmRvdzp7fSxDdD1RJiZYLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudD8ib250b3VjaHN0YXJ0ImluIFguZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OiExLE50PVE/IlBvaW50ZXJFdmVudCJpbiBYOiExLHk9ImNyb3BwZXIiLEF0PSJhbGwiLHp0PSJjcm9wIix2dD0ibW92ZSIsa3Q9Inpvb20iLCQ9ImUiLEo9InciLHR0PSJzIixVPSJuIixydD0ibmUiLGh0PSJudyIsQj0ic2UiLGN0PSJzdyIsQz0iIi5jb25jYXQoeSwiLWNyb3AiKSxJPSIiLmNvbmNhdCh5LCItZGlzYWJsZWQiKSx2PSIiLmNvbmNhdCh5LCItaGlkZGVuIiksUj0iIi5jb25jYXQoeSwiLWhpZGUiKSxldD0iIi5jb25jYXQoeSwiLWludmlzaWJsZSIpLGJ0PSIiLmNvbmNhdCh5LCItbW9kYWwiKSx3dD0iIi5jb25jYXQoeSwiLW1vdmUiKSxsdD0iIi5jb25jYXQoeSwiQWN0aW9uIiksZnQ9IiIuY29uY2F0KHksIlByZXZpZXciKSxSdD0iY3JvcCIsU3Q9Im1vdmUiLF90PSJub25lIix5dD0iY3JvcCIsanQ9ImNyb3BlbmQiLFV0PSJjcm9wbW92ZSIsVnQ9ImNyb3BzdGFydCIsdGU9ImRibGNsaWNrIixNZT1DdD8idG91Y2hzdGFydCI6Im1vdXNlZG93biIsVGU9Q3Q/InRvdWNobW92ZSI6Im1vdXNlbW92ZSIsT2U9Q3Q/InRvdWNoZW5kIHRvdWNoY2FuY2VsIjoibW91c2V1cCIsZWU9TnQ/InBvaW50ZXJkb3duIjpNZSxpZT1OdD8icG9pbnRlcm1vdmUiOlRlLGFlPU50PyJwb2ludGVydXAgcG9pbnRlcmNhbmNlbCI6T2UscmU9InJlYWR5IixuZT0icmVzaXplIixvZT0id2hlZWwiLEd0PSJ6b29tIixzZT0iaW1hZ2UvanBlZyIsQ2U9L15lfHd8c3xufHNlfHN3fG5lfG53fGFsbHxjcm9wfG1vdmV8em9vbSQvLE5lPS9eZGF0YTovLEFlPS9eZGF0YTppbWFnZVwvanBlZztiYXNlNjQsLyxSZT0vXmltZ3xjYW52YXMkL2ksaGU9MjAwLGNlPTEwMCxsZT17dmlld01vZGU6MCxkcmFnTW9kZTpSdCxpbml0aWFsQXNwZWN0UmF0aW86TmFOLGFzcGVjdFJhdGlvOk5hTixkYXRhOm51bGwscHJldmlldzoiIixyZXNwb25zaXZlOiEwLHJlc3RvcmU6ITAsY2hlY2tDcm9zc09yaWdpbjohMCxjaGVja09yaWVudGF0aW9uOiEwLG1vZGFsOiEwLGd1aWRlczohMCxjZW50ZXI6ITAsaGlnaGxpZ2h0OiEwLGJhY2tncm91bmQ6ITAsYXV0b0Nyb3A6ITAsYXV0b0Nyb3BBcmVhOi44LG1vdmFibGU6ITAscm90YXRhYmxlOiEwLHNjYWxhYmxlOiEwLHpvb21hYmxlOiEwLHpvb21PblRvdWNoOiEwLHpvb21PbldoZWVsOiEwLHdoZWVsWm9vbVJhdGlvOi4xLGNyb3BCb3hNb3ZhYmxlOiEwLGNyb3BCb3hSZXNpemFibGU6ITAsdG9nZ2xlRHJhZ01vZGVPbkRibGNsaWNrOiEwLG1pbkNhbnZhc1dpZHRoOjAsbWluQ2FudmFzSGVpZ2h0OjAsbWluQ3JvcEJveFdpZHRoOjAsbWluQ3JvcEJveEhlaWdodDowLG1pbkNvbnRhaW5lcldpZHRoOmhlLG1pbkNvbnRhaW5lckhlaWdodDpjZSxyZWFkeTpudWxsLGNyb3BzdGFydDpudWxsLGNyb3Btb3ZlOm51bGwsY3JvcGVuZDpudWxsLGNyb3A6bnVsbCx6b29tOm51bGx9LFNlPSc8ZGl2IGNsYXNzPSJjcm9wcGVyLWNvbnRhaW5lciIgdG91Y2gtYWN0aW9uPSJub25lIj48ZGl2IGNsYXNzPSJjcm9wcGVyLXdyYXAtYm94Ij48ZGl2IGNsYXNzPSJjcm9wcGVyLWNhbnZhcyI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iY3JvcHBlci1kcmFnLWJveCI+PC9kaXY+PGRpdiBjbGFzcz0iY3JvcHBlci1jcm9wLWJveCI+PHNwYW4gY2xhc3M9ImNyb3BwZXItdmlldy1ib3giPjwvc3Bhbj48c3BhbiBjbGFzcz0iY3JvcHBlci1kYXNoZWQgZGFzaGVkLWgiPjwvc3Bhbj48c3BhbiBjbGFzcz0iY3JvcHBlci1kYXNoZWQgZGFzaGVkLXYiPjwvc3Bhbj48c3BhbiBjbGFzcz0iY3JvcHBlci1jZW50ZXIiPjwvc3Bhbj48c3BhbiBjbGFzcz0iY3JvcHBlci1mYWNlIj48L3NwYW4+PHNwYW4gY2xhc3M9ImNyb3BwZXItbGluZSBsaW5lLWUiIGRhdGEtY3JvcHBlci1hY3Rpb249ImUiPjwvc3Bhbj48c3BhbiBjbGFzcz0iY3JvcHBlci1saW5lIGxpbmUtbiIgZGF0YS1jcm9wcGVyLWFjdGlvbj0ibiI+PC9zcGFuPjxzcGFuIGNsYXNzPSJjcm9wcGVyLWxpbmUgbGluZS13IiBkYXRhLWNyb3BwZXItYWN0aW9uPSJ3Ij48L3NwYW4+PHNwYW4gY2xhc3M9ImNyb3BwZXItbGluZSBsaW5lLXMiIGRhdGEtY3JvcHBlci1hY3Rpb249InMiPjwvc3Bhbj48c3BhbiBjbGFzcz0iY3JvcHBlci1wb2ludCBwb2ludC1lIiBkYXRhLWNyb3BwZXItYWN0aW9uPSJlIj48L3NwYW4+PHNwYW4gY2xhc3M9ImNyb3BwZXItcG9pbnQgcG9pbnQtbiIgZGF0YS1jcm9wcGVyLWFjdGlvbj0ibiI+PC9zcGFuPjxzcGFuIGNsYXNzPSJjcm9wcGVyLXBvaW50IHBvaW50LXciIGRhdGEtY3JvcHBlci1hY3Rpb249InciPjwvc3Bhbj48c3BhbiBjbGFzcz0iY3JvcHBlci1wb2ludCBwb2ludC1zIiBkYXRhLWNyb3BwZXItYWN0aW9uPSJzIj48L3NwYW4+PHNwYW4gY2xhc3M9ImNyb3BwZXItcG9pbnQgcG9pbnQtbmUiIGRhdGEtY3JvcHBlci1hY3Rpb249Im5lIj48L3NwYW4+PHNwYW4gY2xhc3M9ImNyb3BwZXItcG9pbnQgcG9pbnQtbnciIGRhdGEtY3JvcHBlci1hY3Rpb249Im53Ij48L3NwYW4+PHNwYW4gY2xhc3M9ImNyb3BwZXItcG9pbnQgcG9pbnQtc3ciIGRhdGEtY3JvcHBlci1hY3Rpb249InN3Ij48L3NwYW4+PHNwYW4gY2xhc3M9ImNyb3BwZXItcG9pbnQgcG9pbnQtc2UiIGRhdGEtY3JvcHBlci1hY3Rpb249InNlIj48L3NwYW4+PC9kaXY+PC9kaXY+JyxfZT1OdW1iZXIuaXNOYU58fFguaXNOYU47ZnVuY3Rpb24gcChhKXtyZXR1cm4gdHlwZW9mIGE9PSJudW1iZXIiJiYhX2UoYSl9dmFyIGZlPWZ1bmN0aW9uKHQpe3JldHVybiB0PjAmJnQ8MS8wfTtmdW5jdGlvbiAkdChhKXtyZXR1cm4gdHlwZW9mIGE9PSJ1bmRlZmluZWQifWZ1bmN0aW9uIHV0KGEpe3JldHVybiBPdChhKT09PSJvYmplY3QiJiZhIT09bnVsbH12YXIgSWU9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiB4dChhKXtpZighdXQoYSkpcmV0dXJuITE7dHJ5e3ZhciB0PWEuY29uc3RydWN0b3IsaT10LnByb3RvdHlwZTtyZXR1cm4gdCYmaSYmSWUuY2FsbChpLCJpc1Byb3RvdHlwZU9mIil9Y2F0Y2goZSl7cmV0dXJuITF9fWZ1bmN0aW9uIHooYSl7cmV0dXJuIHR5cGVvZiBhPT0iZnVuY3Rpb24ifXZhciBCZT1BcnJheS5wcm90b3R5cGUuc2xpY2U7ZnVuY3Rpb24gdWUoYSl7cmV0dXJuIEFycmF5LmZyb20/QXJyYXkuZnJvbShhKTpCZS5jYWxsKGEpfWZ1bmN0aW9uIE0oYSx0KXtyZXR1cm4gYSYmeih0KSYmKEFycmF5LmlzQXJyYXkoYSl8fHAoYS5sZW5ndGgpP3VlKGEpLmZvckVhY2goZnVuY3Rpb24oaSxlKXt0LmNhbGwoYSxpLGUsYSl9KTp1dChhKSYmT2JqZWN0LmtleXMoYSkuZm9yRWFjaChmdW5jdGlvbihpKXt0LmNhbGwoYSxhW2ldLGksYSl9KSksYX12YXIgRD1PYmplY3QuYXNzaWdufHxmdW5jdGlvbih0KXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aCxlPW5ldyBBcnJheShpPjE/aS0xOjApLG89MTtvPGk7bysrKWVbby0xXT1hcmd1bWVudHNbb107cmV0dXJuIHV0KHQpJiZlLmxlbmd0aD4wJiZlLmZvckVhY2goZnVuY3Rpb24ocil7dXQocikmJk9iamVjdC5rZXlzKHIpLmZvckVhY2goZnVuY3Rpb24obil7dFtuXT1yW25dfSl9KSx0fSxQZT0vXC5cZCooPzowfDkpezEyfVxkKiQvO2Z1bmN0aW9uIER0KGEpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXToxZTExO3JldHVybiBQZS50ZXN0KGEpP01hdGgucm91bmQoYSp0KS90OmF9dmFyIExlPS9ed2lkdGh8aGVpZ2h0fGxlZnR8dG9wfG1hcmdpbkxlZnR8bWFyZ2luVG9wJC87ZnVuY3Rpb24gbnQoYSx0KXt2YXIgaT1hLnN0eWxlO00odCxmdW5jdGlvbihlLG8pe0xlLnRlc3QobykmJnAoZSkmJihlPSIiLmNvbmNhdChlLCJweCIpKSxpW29dPWV9KX1mdW5jdGlvbiB6ZShhLHQpe3JldHVybiBhLmNsYXNzTGlzdD9hLmNsYXNzTGlzdC5jb250YWlucyh0KTphLmNsYXNzTmFtZS5pbmRleE9mKHQpPi0xfWZ1bmN0aW9uIFMoYSx0KXtpZih0KXtpZihwKGEubGVuZ3RoKSl7TShhLGZ1bmN0aW9uKGUpe1MoZSx0KX0pO3JldHVybn1pZihhLmNsYXNzTGlzdCl7YS5jbGFzc0xpc3QuYWRkKHQpO3JldHVybn12YXIgaT1hLmNsYXNzTmFtZS50cmltKCk7aT9pLmluZGV4T2YodCk8MCYmKGEuY2xhc3NOYW1lPSIiLmNvbmNhdChpLCIgIikuY29uY2F0KHQpKTphLmNsYXNzTmFtZT10fX1mdW5jdGlvbiBLKGEsdCl7aWYodCl7aWYocChhLmxlbmd0aCkpe00oYSxmdW5jdGlvbihpKXtLKGksdCl9KTtyZXR1cm59aWYoYS5jbGFzc0xpc3Qpe2EuY2xhc3NMaXN0LnJlbW92ZSh0KTtyZXR1cm59YS5jbGFzc05hbWUuaW5kZXhPZih0KT49MCYmKGEuY2xhc3NOYW1lPWEuY2xhc3NOYW1lLnJlcGxhY2UodCwiIikpfX1mdW5jdGlvbiBFdChhLHQsaSl7aWYodCl7aWYocChhLmxlbmd0aCkpe00oYSxmdW5jdGlvbihlKXtFdChlLHQsaSl9KTtyZXR1cm59aT9TKGEsdCk6SyhhLHQpfX12YXIga2U9LyhbYS16XGRdKShbQS1aXSkvZztmdW5jdGlvbiBLdChhKXtyZXR1cm4gYS5yZXBsYWNlKGtlLCIkMS0kMiIpLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gcXQoYSx0KXtyZXR1cm4gdXQoYVt0XSk/YVt0XTphLmRhdGFzZXQ/YS5kYXRhc2V0W3RdOmEuZ2V0QXR0cmlidXRlKCJkYXRhLSIuY29uY2F0KEt0KHQpKSl9ZnVuY3Rpb24gSXQoYSx0LGkpe3V0KGkpP2FbdF09aTphLmRhdGFzZXQ/YS5kYXRhc2V0W3RdPWk6YS5zZXRBdHRyaWJ1dGUoImRhdGEtIi5jb25jYXQoS3QodCkpLGkpfWZ1bmN0aW9uIFllKGEsdCl7aWYodXQoYVt0XSkpdHJ5e2RlbGV0ZSBhW3RdfWNhdGNoKGkpe2FbdF09dm9pZCAwfWVsc2UgaWYoYS5kYXRhc2V0KXRyeXtkZWxldGUgYS5kYXRhc2V0W3RdfWNhdGNoKGkpe2EuZGF0YXNldFt0XT12b2lkIDB9ZWxzZSBhLnJlbW92ZUF0dHJpYnV0ZSgiZGF0YS0iLmNvbmNhdChLdCh0KSkpfXZhciBkZT0vXHNccyovLHBlPWZ1bmN0aW9uKCl7dmFyIGE9ITE7aWYoUSl7dmFyIHQ9ITEsaT1mdW5jdGlvbigpe30sZT1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sIm9uY2UiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYT0hMCx0fSxzZXQ6ZnVuY3Rpb24ocil7dD1yfX0pO1guYWRkRXZlbnRMaXN0ZW5lcigidGVzdCIsaSxlKSxYLnJlbW92ZUV2ZW50TGlzdGVuZXIoInRlc3QiLGksZSl9cmV0dXJuIGF9KCk7ZnVuY3Rpb24gVihhLHQsaSl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4zJiZhcmd1bWVudHNbM10hPT12b2lkIDA/YXJndW1lbnRzWzNdOnt9LG89aTt0LnRyaW0oKS5zcGxpdChkZSkuZm9yRWFjaChmdW5jdGlvbihyKXtpZighcGUpe3ZhciBuPWEubGlzdGVuZXJzO24mJm5bcl0mJm5bcl1baV0mJihvPW5bcl1baV0sZGVsZXRlIG5bcl1baV0sT2JqZWN0LmtleXMobltyXSkubGVuZ3RoPT09MCYmZGVsZXRlIG5bcl0sT2JqZWN0LmtleXMobikubGVuZ3RoPT09MCYmZGVsZXRlIGEubGlzdGVuZXJzKX1hLnJlbW92ZUV2ZW50TGlzdGVuZXIocixvLGUpfSl9ZnVuY3Rpb24gVyhhLHQsaSl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4zJiZhcmd1bWVudHNbM10hPT12b2lkIDA/YXJndW1lbnRzWzNdOnt9LG89aTt0LnRyaW0oKS5zcGxpdChkZSkuZm9yRWFjaChmdW5jdGlvbihyKXtpZihlLm9uY2UmJiFwZSl7dmFyIG49YS5saXN0ZW5lcnMscz1uPT09dm9pZCAwP3t9Om47bz1mdW5jdGlvbigpe2RlbGV0ZSBzW3JdW2ldLGEucmVtb3ZlRXZlbnRMaXN0ZW5lcihyLG8sZSk7Zm9yKHZhciBsPWFyZ3VtZW50cy5sZW5ndGgsaD1uZXcgQXJyYXkobCksYz0wO2M8bDtjKyspaFtjXT1hcmd1bWVudHNbY107aS5hcHBseShhLGgpfSxzW3JdfHwoc1tyXT17fSksc1tyXVtpXSYmYS5yZW1vdmVFdmVudExpc3RlbmVyKHIsc1tyXVtpXSxlKSxzW3JdW2ldPW8sYS5saXN0ZW5lcnM9c31hLmFkZEV2ZW50TGlzdGVuZXIocixvLGUpfSl9ZnVuY3Rpb24gTXQoYSx0LGkpe3ZhciBlO3JldHVybiB6KEV2ZW50KSYmeihDdXN0b21FdmVudCk/ZT1uZXcgQ3VzdG9tRXZlbnQodCx7ZGV0YWlsOmksYnViYmxlczohMCxjYW5jZWxhYmxlOiEwfSk6KGU9ZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkN1c3RvbUV2ZW50IiksZS5pbml0Q3VzdG9tRXZlbnQodCwhMCwhMCxpKSksYS5kaXNwYXRjaEV2ZW50KGUpfWZ1bmN0aW9uIGdlKGEpe3ZhciB0PWEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJue2xlZnQ6dC5sZWZ0Kyh3aW5kb3cucGFnZVhPZmZzZXQtZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudExlZnQpLHRvcDp0LnRvcCsod2luZG93LnBhZ2VZT2Zmc2V0LWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRUb3ApfX12YXIgRnQ9WC5sb2NhdGlvbixYZT0vXihcdys6KVwvXC8oW146Lz8jXSopOj8oXGQqKS9pO2Z1bmN0aW9uIG1lKGEpe3ZhciB0PWEubWF0Y2goWGUpO3JldHVybiB0IT09bnVsbCYmKHRbMV0hPT1GdC5wcm90b2NvbHx8dFsyXSE9PUZ0Lmhvc3RuYW1lfHx0WzNdIT09RnQucG9ydCl9ZnVuY3Rpb24gdmUoYSl7dmFyIHQ9InRpbWVzdGFtcD0iLmNvbmNhdChuZXcgRGF0ZSgpLmdldFRpbWUoKSk7cmV0dXJuIGErKGEuaW5kZXhPZigiPyIpPT09LTE/Ij8iOiImIikrdH1mdW5jdGlvbiBCdChhKXt2YXIgdD1hLnJvdGF0ZSxpPWEuc2NhbGVYLGU9YS5zY2FsZVksbz1hLnRyYW5zbGF0ZVgscj1hLnRyYW5zbGF0ZVksbj1bXTtwKG8pJiZvIT09MCYmbi5wdXNoKCJ0cmFuc2xhdGVYKCIuY29uY2F0KG8sInB4KSIpKSxwKHIpJiZyIT09MCYmbi5wdXNoKCJ0cmFuc2xhdGVZKCIuY29uY2F0KHIsInB4KSIpKSxwKHQpJiZ0IT09MCYmbi5wdXNoKCJyb3RhdGUoIi5jb25jYXQodCwiZGVnKSIpKSxwKGkpJiZpIT09MSYmbi5wdXNoKCJzY2FsZVgoIi5jb25jYXQoaSwiKSIpKSxwKGUpJiZlIT09MSYmbi5wdXNoKCJzY2FsZVkoIi5jb25jYXQoZSwiKSIpKTt2YXIgcz1uLmxlbmd0aD9uLmpvaW4oIiAiKToibm9uZSI7cmV0dXJue1dlYmtpdFRyYW5zZm9ybTpzLG1zVHJhbnNmb3JtOnMsdHJhbnNmb3JtOnN9fWZ1bmN0aW9uIFdlKGEpe3ZhciB0PUYoe30sYSksaT0wO3JldHVybiBNKGEsZnVuY3Rpb24oZSxvKXtkZWxldGUgdFtvXSxNKHQsZnVuY3Rpb24ocil7dmFyIG49TWF0aC5hYnMoZS5zdGFydFgtci5zdGFydFgpLHM9TWF0aC5hYnMoZS5zdGFydFktci5zdGFydFkpLHU9TWF0aC5hYnMoZS5lbmRYLXIuZW5kWCksbD1NYXRoLmFicyhlLmVuZFktci5lbmRZKSxoPU1hdGguc3FydChuKm4rcypzKSxjPU1hdGguc3FydCh1KnUrbCpsKSxmPShjLWgpL2g7TWF0aC5hYnMoZik+TWF0aC5hYnMoaSkmJihpPWYpfSl9KSxpfWZ1bmN0aW9uIFl0KGEsdCl7dmFyIGk9YS5wYWdlWCxlPWEucGFnZVksbz17ZW5kWDppLGVuZFk6ZX07cmV0dXJuIHQ/bzpGKHtzdGFydFg6aSxzdGFydFk6ZX0sbyl9ZnVuY3Rpb24gSGUoYSl7dmFyIHQ9MCxpPTAsZT0wO3JldHVybiBNKGEsZnVuY3Rpb24obyl7dmFyIHI9by5zdGFydFgsbj1vLnN0YXJ0WTt0Kz1yLGkrPW4sZSs9MX0pLHQvPWUsaS89ZSx7cGFnZVg6dCxwYWdlWTppfX1mdW5jdGlvbiBvdChhKXt2YXIgdD1hLmFzcGVjdFJhdGlvLGk9YS5oZWlnaHQsZT1hLndpZHRoLG89YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOiJjb250YWluIixyPWZlKGUpLG49ZmUoaSk7aWYociYmbil7dmFyIHM9aSp0O289PT0iY29udGFpbiImJnM+ZXx8bz09PSJjb3ZlciImJnM8ZT9pPWUvdDplPWkqdH1lbHNlIHI/aT1lL3Q6biYmKGU9aSp0KTtyZXR1cm57d2lkdGg6ZSxoZWlnaHQ6aX19ZnVuY3Rpb24gamUoYSl7dmFyIHQ9YS53aWR0aCxpPWEuaGVpZ2h0LGU9YS5kZWdyZWU7aWYoZT1NYXRoLmFicyhlKSUxODAsZT09PTkwKXJldHVybnt3aWR0aDppLGhlaWdodDp0fTt2YXIgbz1lJTkwKk1hdGguUEkvMTgwLHI9TWF0aC5zaW4obyksbj1NYXRoLmNvcyhvKSxzPXQqbitpKnIsdT10KnIraSpuO3JldHVybiBlPjkwP3t3aWR0aDp1LGhlaWdodDpzfTp7d2lkdGg6cyxoZWlnaHQ6dX19ZnVuY3Rpb24gVWUoYSx0LGksZSl7dmFyIG89dC5hc3BlY3RSYXRpbyxyPXQubmF0dXJhbFdpZHRoLG49dC5uYXR1cmFsSGVpZ2h0LHM9dC5yb3RhdGUsdT1zPT09dm9pZCAwPzA6cyxsPXQuc2NhbGVYLGg9bD09PXZvaWQgMD8xOmwsYz10LnNjYWxlWSxmPWM9PT12b2lkIDA/MTpjLG09aS5hc3BlY3RSYXRpbyxnPWkubmF0dXJhbFdpZHRoLEU9aS5uYXR1cmFsSGVpZ2h0LGI9ZS5maWxsQ29sb3IsTj1iPT09dm9pZCAwPyJ0cmFuc3BhcmVudCI6YixfPWUuaW1hZ2VTbW9vdGhpbmdFbmFibGVkLFQ9Xz09PXZvaWQgMD8hMDpfLGl0PWUuaW1hZ2VTbW9vdGhpbmdRdWFsaXR5LFk9aXQ9PT12b2lkIDA/ImxvdyI6aXQsZD1lLm1heFdpZHRoLHc9ZD09PXZvaWQgMD8xLzA6ZCxBPWUubWF4SGVpZ2h0LEg9QT09PXZvaWQgMD8xLzA6QSxhdD1lLm1pbldpZHRoLGR0PWF0PT09dm9pZCAwPzA6YXQscHQ9ZS5taW5IZWlnaHQsc3Q9cHQ9PT12b2lkIDA/MDpwdCxxPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLGs9cS5nZXRDb250ZXh0KCIyZCIpLGd0PW90KHthc3BlY3RSYXRpbzptLHdpZHRoOncsaGVpZ2h0Okh9KSxYdD1vdCh7YXNwZWN0UmF0aW86bSx3aWR0aDpkdCxoZWlnaHQ6c3R9LCJjb3ZlciIpLFp0PU1hdGgubWluKGd0LndpZHRoLE1hdGgubWF4KFh0LndpZHRoLGcpKSxRdD1NYXRoLm1pbihndC5oZWlnaHQsTWF0aC5tYXgoWHQuaGVpZ2h0LEUpKSx5ZT1vdCh7YXNwZWN0UmF0aW86byx3aWR0aDp3LGhlaWdodDpIfSkseGU9b3Qoe2FzcGVjdFJhdGlvOm8sd2lkdGg6ZHQsaGVpZ2h0OnN0fSwiY292ZXIiKSxEZT1NYXRoLm1pbih5ZS53aWR0aCxNYXRoLm1heCh4ZS53aWR0aCxyKSksRWU9TWF0aC5taW4oeWUuaGVpZ2h0LE1hdGgubWF4KHhlLmhlaWdodCxuKSkscmk9Wy1EZS8yLC1FZS8yLERlLEVlXTtyZXR1cm4gcS53aWR0aD1EdChadCkscS5oZWlnaHQ9RHQoUXQpLGsuZmlsbFN0eWxlPU4say5maWxsUmVjdCgwLDAsWnQsUXQpLGsuc2F2ZSgpLGsudHJhbnNsYXRlKFp0LzIsUXQvMiksay5yb3RhdGUodSpNYXRoLlBJLzE4MCksay5zY2FsZShoLGYpLGsuaW1hZ2VTbW9vdGhpbmdFbmFibGVkPVQsay5pbWFnZVNtb290aGluZ1F1YWxpdHk9WSxrLmRyYXdJbWFnZS5hcHBseShrLFthXS5jb25jYXQoTHQocmkubWFwKGZ1bmN0aW9uKG5pKXtyZXR1cm4gTWF0aC5mbG9vcihEdChuaSkpfSkpKSksay5yZXN0b3JlKCkscX12YXIgYmU9U3RyaW5nLmZyb21DaGFyQ29kZTtmdW5jdGlvbiBWZShhLHQsaSl7dmFyIGU9IiI7aSs9dDtmb3IodmFyIG89dDtvPGk7bys9MSllKz1iZShhLmdldFVpbnQ4KG8pKTtyZXR1cm4gZX12YXIgR2U9L15kYXRhOi4qLC87ZnVuY3Rpb24gJGUoYSl7dmFyIHQ9YS5yZXBsYWNlKEdlLCIiKSxpPWF0b2IodCksZT1uZXcgQXJyYXlCdWZmZXIoaS5sZW5ndGgpLG89bmV3IFVpbnQ4QXJyYXkoZSk7cmV0dXJuIE0obyxmdW5jdGlvbihyLG4pe29bbl09aS5jaGFyQ29kZUF0KG4pfSksZX1mdW5jdGlvbiBLZShhLHQpe2Zvcih2YXIgaT1bXSxlPTgxOTIsbz1uZXcgVWludDhBcnJheShhKTtvLmxlbmd0aD4wOylpLnB1c2goYmUuYXBwbHkobnVsbCx1ZShvLnN1YmFycmF5KDAsZSkpKSksbz1vLnN1YmFycmF5KGUpO3JldHVybiJkYXRhOiIuY29uY2F0KHQsIjtiYXNlNjQsIikuY29uY2F0KGJ0b2EoaS5qb2luKCIiKSkpfWZ1bmN0aW9uIHFlKGEpe3ZhciB0PW5ldyBEYXRhVmlldyhhKSxpO3RyeXt2YXIgZSxvLHI7aWYodC5nZXRVaW50OCgwKT09PTI1NSYmdC5nZXRVaW50OCgxKT09PTIxNilmb3IodmFyIG49dC5ieXRlTGVuZ3RoLHM9MjtzKzE8bjspe2lmKHQuZ2V0VWludDgocyk9PT0yNTUmJnQuZ2V0VWludDgocysxKT09PTIyNSl7bz1zO2JyZWFrfXMrPTF9aWYobyl7dmFyIHU9bys0LGw9bysxMDtpZihWZSh0LHUsNCk9PT0iRXhpZiIpe3ZhciBoPXQuZ2V0VWludDE2KGwpO2lmKGU9aD09PTE4NzYxLChlfHxoPT09MTk3ODkpJiZ0LmdldFVpbnQxNihsKzIsZSk9PT00Mil7dmFyIGM9dC5nZXRVaW50MzIobCs0LGUpO2M+PTgmJihyPWwrYyl9fX1pZihyKXt2YXIgZj10LmdldFVpbnQxNihyLGUpLG0sZztmb3IoZz0wO2c8ZjtnKz0xKWlmKG09citnKjEyKzIsdC5nZXRVaW50MTYobSxlKT09PTI3NCl7bSs9OCxpPXQuZ2V0VWludDE2KG0sZSksdC5zZXRVaW50MTYobSwxLGUpO2JyZWFrfX19Y2F0Y2goRSl7aT0xfXJldHVybiBpfWZ1bmN0aW9uIEZlKGEpe3ZhciB0PTAsaT0xLGU9MTtzd2l0Y2goYSl7Y2FzZSAyOmk9LTE7YnJlYWs7Y2FzZSAzOnQ9LTE4MDticmVhaztjYXNlIDQ6ZT0tMTticmVhaztjYXNlIDU6dD05MCxlPS0xO2JyZWFrO2Nhc2UgNjp0PTkwO2JyZWFrO2Nhc2UgNzp0PTkwLGk9LTE7YnJlYWs7Y2FzZSA4OnQ9LTkwO2JyZWFrfXJldHVybntyb3RhdGU6dCxzY2FsZVg6aSxzY2FsZVk6ZX19dmFyIFplPXtyZW5kZXI6ZnVuY3Rpb24oKXt0aGlzLmluaXRDb250YWluZXIoKSx0aGlzLmluaXRDYW52YXMoKSx0aGlzLmluaXRDcm9wQm94KCksdGhpcy5yZW5kZXJDYW52YXMoKSx0aGlzLmNyb3BwZWQmJnRoaXMucmVuZGVyQ3JvcEJveCgpfSxpbml0Q29udGFpbmVyOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5lbGVtZW50LGk9dGhpcy5vcHRpb25zLGU9dGhpcy5jb250YWluZXIsbz10aGlzLmNyb3BwZXIscj1OdW1iZXIoaS5taW5Db250YWluZXJXaWR0aCksbj1OdW1iZXIoaS5taW5Db250YWluZXJIZWlnaHQpO1Mobyx2KSxLKHQsdik7dmFyIHM9e3dpZHRoOk1hdGgubWF4KGUub2Zmc2V0V2lkdGgscj49MD9yOmhlKSxoZWlnaHQ6TWF0aC5tYXgoZS5vZmZzZXRIZWlnaHQsbj49MD9uOmNlKX07dGhpcy5jb250YWluZXJEYXRhPXMsbnQobyx7d2lkdGg6cy53aWR0aCxoZWlnaHQ6cy5oZWlnaHR9KSxTKHQsdiksSyhvLHYpfSxpbml0Q2FudmFzOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5jb250YWluZXJEYXRhLGk9dGhpcy5pbWFnZURhdGEsZT10aGlzLm9wdGlvbnMudmlld01vZGUsbz1NYXRoLmFicyhpLnJvdGF0ZSklMTgwPT09OTAscj1vP2kubmF0dXJhbEhlaWdodDppLm5hdHVyYWxXaWR0aCxuPW8/aS5uYXR1cmFsV2lkdGg6aS5uYXR1cmFsSGVpZ2h0LHM9ci9uLHU9dC53aWR0aCxsPXQuaGVpZ2h0O3QuaGVpZ2h0KnM+dC53aWR0aD9lPT09Mz91PXQuaGVpZ2h0KnM6bD10LndpZHRoL3M6ZT09PTM/bD10LndpZHRoL3M6dT10LmhlaWdodCpzO3ZhciBoPXthc3BlY3RSYXRpbzpzLG5hdHVyYWxXaWR0aDpyLG5hdHVyYWxIZWlnaHQ6bix3aWR0aDp1LGhlaWdodDpsfTt0aGlzLmNhbnZhc0RhdGE9aCx0aGlzLmxpbWl0ZWQ9ZT09PTF8fGU9PT0yLHRoaXMubGltaXRDYW52YXMoITAsITApLGgud2lkdGg9TWF0aC5taW4oTWF0aC5tYXgoaC53aWR0aCxoLm1pbldpZHRoKSxoLm1heFdpZHRoKSxoLmhlaWdodD1NYXRoLm1pbihNYXRoLm1heChoLmhlaWdodCxoLm1pbkhlaWdodCksaC5tYXhIZWlnaHQpLGgubGVmdD0odC53aWR0aC1oLndpZHRoKS8yLGgudG9wPSh0LmhlaWdodC1oLmhlaWdodCkvMixoLm9sZExlZnQ9aC5sZWZ0LGgub2xkVG9wPWgudG9wLHRoaXMuaW5pdGlhbENhbnZhc0RhdGE9RCh7fSxoKX0sbGltaXRDYW52YXM6ZnVuY3Rpb24odCxpKXt2YXIgZT10aGlzLm9wdGlvbnMsbz10aGlzLmNvbnRhaW5lckRhdGEscj10aGlzLmNhbnZhc0RhdGEsbj10aGlzLmNyb3BCb3hEYXRhLHM9ZS52aWV3TW9kZSx1PXIuYXNwZWN0UmF0aW8sbD10aGlzLmNyb3BwZWQmJm47aWYodCl7dmFyIGg9TnVtYmVyKGUubWluQ2FudmFzV2lkdGgpfHwwLGM9TnVtYmVyKGUubWluQ2FudmFzSGVpZ2h0KXx8MDtzPjE/KGg9TWF0aC5tYXgoaCxvLndpZHRoKSxjPU1hdGgubWF4KGMsby5oZWlnaHQpLHM9PT0zJiYoYyp1Pmg/aD1jKnU6Yz1oL3UpKTpzPjAmJihoP2g9TWF0aC5tYXgoaCxsP24ud2lkdGg6MCk6Yz9jPU1hdGgubWF4KGMsbD9uLmhlaWdodDowKTpsJiYoaD1uLndpZHRoLGM9bi5oZWlnaHQsYyp1Pmg/aD1jKnU6Yz1oL3UpKTt2YXIgZj1vdCh7YXNwZWN0UmF0aW86dSx3aWR0aDpoLGhlaWdodDpjfSk7aD1mLndpZHRoLGM9Zi5oZWlnaHQsci5taW5XaWR0aD1oLHIubWluSGVpZ2h0PWMsci5tYXhXaWR0aD0xLzAsci5tYXhIZWlnaHQ9MS8wfWlmKGkpaWYocz4obD8wOjEpKXt2YXIgbT1vLndpZHRoLXIud2lkdGgsZz1vLmhlaWdodC1yLmhlaWdodDtyLm1pbkxlZnQ9TWF0aC5taW4oMCxtKSxyLm1pblRvcD1NYXRoLm1pbigwLGcpLHIubWF4TGVmdD1NYXRoLm1heCgwLG0pLHIubWF4VG9wPU1hdGgubWF4KDAsZyksbCYmdGhpcy5saW1pdGVkJiYoci5taW5MZWZ0PU1hdGgubWluKG4ubGVmdCxuLmxlZnQrKG4ud2lkdGgtci53aWR0aCkpLHIubWluVG9wPU1hdGgubWluKG4udG9wLG4udG9wKyhuLmhlaWdodC1yLmhlaWdodCkpLHIubWF4TGVmdD1uLmxlZnQsci5tYXhUb3A9bi50b3Ascz09PTImJihyLndpZHRoPj1vLndpZHRoJiYoci5taW5MZWZ0PU1hdGgubWluKDAsbSksci5tYXhMZWZ0PU1hdGgubWF4KDAsbSkpLHIuaGVpZ2h0Pj1vLmhlaWdodCYmKHIubWluVG9wPU1hdGgubWluKDAsZyksci5tYXhUb3A9TWF0aC5tYXgoMCxnKSkpKX1lbHNlIHIubWluTGVmdD0tci53aWR0aCxyLm1pblRvcD0tci5oZWlnaHQsci5tYXhMZWZ0PW8ud2lkdGgsci5tYXhUb3A9by5oZWlnaHR9LHJlbmRlckNhbnZhczpmdW5jdGlvbih0LGkpe3ZhciBlPXRoaXMuY2FudmFzRGF0YSxvPXRoaXMuaW1hZ2VEYXRhO2lmKGkpe3ZhciByPWplKHt3aWR0aDpvLm5hdHVyYWxXaWR0aCpNYXRoLmFicyhvLnNjYWxlWHx8MSksaGVpZ2h0Om8ubmF0dXJhbEhlaWdodCpNYXRoLmFicyhvLnNjYWxlWXx8MSksZGVncmVlOm8ucm90YXRlfHwwfSksbj1yLndpZHRoLHM9ci5oZWlnaHQsdT1lLndpZHRoKihuL2UubmF0dXJhbFdpZHRoKSxsPWUuaGVpZ2h0KihzL2UubmF0dXJhbEhlaWdodCk7ZS5sZWZ0LT0odS1lLndpZHRoKS8yLGUudG9wLT0obC1lLmhlaWdodCkvMixlLndpZHRoPXUsZS5oZWlnaHQ9bCxlLmFzcGVjdFJhdGlvPW4vcyxlLm5hdHVyYWxXaWR0aD1uLGUubmF0dXJhbEhlaWdodD1zLHRoaXMubGltaXRDYW52YXMoITAsITEpfShlLndpZHRoPmUubWF4V2lkdGh8fGUud2lkdGg8ZS5taW5XaWR0aCkmJihlLmxlZnQ9ZS5vbGRMZWZ0KSwoZS5oZWlnaHQ+ZS5tYXhIZWlnaHR8fGUuaGVpZ2h0PGUubWluSGVpZ2h0KSYmKGUudG9wPWUub2xkVG9wKSxlLndpZHRoPU1hdGgubWluKE1hdGgubWF4KGUud2lkdGgsZS5taW5XaWR0aCksZS5tYXhXaWR0aCksZS5oZWlnaHQ9TWF0aC5taW4oTWF0aC5tYXgoZS5oZWlnaHQsZS5taW5IZWlnaHQpLGUubWF4SGVpZ2h0KSx0aGlzLmxpbWl0Q2FudmFzKCExLCEwKSxlLmxlZnQ9TWF0aC5taW4oTWF0aC5tYXgoZS5sZWZ0LGUubWluTGVmdCksZS5tYXhMZWZ0KSxlLnRvcD1NYXRoLm1pbihNYXRoLm1heChlLnRvcCxlLm1pblRvcCksZS5tYXhUb3ApLGUub2xkTGVmdD1lLmxlZnQsZS5vbGRUb3A9ZS50b3AsbnQodGhpcy5jYW52YXMsRCh7d2lkdGg6ZS53aWR0aCxoZWlnaHQ6ZS5oZWlnaHR9LEJ0KHt0cmFuc2xhdGVYOmUubGVmdCx0cmFuc2xhdGVZOmUudG9wfSkpKSx0aGlzLnJlbmRlckltYWdlKHQpLHRoaXMuY3JvcHBlZCYmdGhpcy5saW1pdGVkJiZ0aGlzLmxpbWl0Q3JvcEJveCghMCwhMCl9LHJlbmRlckltYWdlOmZ1bmN0aW9uKHQpe3ZhciBpPXRoaXMuY2FudmFzRGF0YSxlPXRoaXMuaW1hZ2VEYXRhLG89ZS5uYXR1cmFsV2lkdGgqKGkud2lkdGgvaS5uYXR1cmFsV2lkdGgpLHI9ZS5uYXR1cmFsSGVpZ2h0KihpLmhlaWdodC9pLm5hdHVyYWxIZWlnaHQpO0QoZSx7d2lkdGg6byxoZWlnaHQ6cixsZWZ0OihpLndpZHRoLW8pLzIsdG9wOihpLmhlaWdodC1yKS8yfSksbnQodGhpcy5pbWFnZSxEKHt3aWR0aDplLndpZHRoLGhlaWdodDplLmhlaWdodH0sQnQoRCh7dHJhbnNsYXRlWDplLmxlZnQsdHJhbnNsYXRlWTplLnRvcH0sZSkpKSksdCYmdGhpcy5vdXRwdXQoKX0saW5pdENyb3BCb3g6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wdGlvbnMsaT10aGlzLmNhbnZhc0RhdGEsZT10LmFzcGVjdFJhdGlvfHx0LmluaXRpYWxBc3BlY3RSYXRpbyxvPU51bWJlcih0LmF1dG9Dcm9wQXJlYSl8fC44LHI9e3dpZHRoOmkud2lkdGgsaGVpZ2h0OmkuaGVpZ2h0fTtlJiYoaS5oZWlnaHQqZT5pLndpZHRoP3IuaGVpZ2h0PXIud2lkdGgvZTpyLndpZHRoPXIuaGVpZ2h0KmUpLHRoaXMuY3JvcEJveERhdGE9cix0aGlzLmxpbWl0Q3JvcEJveCghMCwhMCksci53aWR0aD1NYXRoLm1pbihNYXRoLm1heChyLndpZHRoLHIubWluV2lkdGgpLHIubWF4V2lkdGgpLHIuaGVpZ2h0PU1hdGgubWluKE1hdGgubWF4KHIuaGVpZ2h0LHIubWluSGVpZ2h0KSxyLm1heEhlaWdodCksci53aWR0aD1NYXRoLm1heChyLm1pbldpZHRoLHIud2lkdGgqbyksci5oZWlnaHQ9TWF0aC5tYXgoci5taW5IZWlnaHQsci5oZWlnaHQqbyksci5sZWZ0PWkubGVmdCsoaS53aWR0aC1yLndpZHRoKS8yLHIudG9wPWkudG9wKyhpLmhlaWdodC1yLmhlaWdodCkvMixyLm9sZExlZnQ9ci5sZWZ0LHIub2xkVG9wPXIudG9wLHRoaXMuaW5pdGlhbENyb3BCb3hEYXRhPUQoe30scil9LGxpbWl0Q3JvcEJveDpmdW5jdGlvbih0LGkpe3ZhciBlPXRoaXMub3B0aW9ucyxvPXRoaXMuY29udGFpbmVyRGF0YSxyPXRoaXMuY2FudmFzRGF0YSxuPXRoaXMuY3JvcEJveERhdGEscz10aGlzLmxpbWl0ZWQsdT1lLmFzcGVjdFJhdGlvO2lmKHQpe3ZhciBsPU51bWJlcihlLm1pbkNyb3BCb3hXaWR0aCl8fDAsaD1OdW1iZXIoZS5taW5Dcm9wQm94SGVpZ2h0KXx8MCxjPXM/TWF0aC5taW4oby53aWR0aCxyLndpZHRoLHIud2lkdGgrci5sZWZ0LG8ud2lkdGgtci5sZWZ0KTpvLndpZHRoLGY9cz9NYXRoLm1pbihvLmhlaWdodCxyLmhlaWdodCxyLmhlaWdodCtyLnRvcCxvLmhlaWdodC1yLnRvcCk6by5oZWlnaHQ7bD1NYXRoLm1pbihsLG8ud2lkdGgpLGg9TWF0aC5taW4oaCxvLmhlaWdodCksdSYmKGwmJmg/aCp1Pmw/aD1sL3U6bD1oKnU6bD9oPWwvdTpoJiYobD1oKnUpLGYqdT5jP2Y9Yy91OmM9Zip1KSxuLm1pbldpZHRoPU1hdGgubWluKGwsYyksbi5taW5IZWlnaHQ9TWF0aC5taW4oaCxmKSxuLm1heFdpZHRoPWMsbi5tYXhIZWlnaHQ9Zn1pJiYocz8obi5taW5MZWZ0PU1hdGgubWF4KDAsci5sZWZ0KSxuLm1pblRvcD1NYXRoLm1heCgwLHIudG9wKSxuLm1heExlZnQ9TWF0aC5taW4oby53aWR0aCxyLmxlZnQrci53aWR0aCktbi53aWR0aCxuLm1heFRvcD1NYXRoLm1pbihvLmhlaWdodCxyLnRvcCtyLmhlaWdodCktbi5oZWlnaHQpOihuLm1pbkxlZnQ9MCxuLm1pblRvcD0wLG4ubWF4TGVmdD1vLndpZHRoLW4ud2lkdGgsbi5tYXhUb3A9by5oZWlnaHQtbi5oZWlnaHQpKX0scmVuZGVyQ3JvcEJveDpmdW5jdGlvbigpe3ZhciB0PXRoaXMub3B0aW9ucyxpPXRoaXMuY29udGFpbmVyRGF0YSxlPXRoaXMuY3JvcEJveERhdGE7KGUud2lkdGg+ZS5tYXhXaWR0aHx8ZS53aWR0aDxlLm1pbldpZHRoKSYmKGUubGVmdD1lLm9sZExlZnQpLChlLmhlaWdodD5lLm1heEhlaWdodHx8ZS5oZWlnaHQ8ZS5taW5IZWlnaHQpJiYoZS50b3A9ZS5vbGRUb3ApLGUud2lkdGg9TWF0aC5taW4oTWF0aC5tYXgoZS53aWR0aCxlLm1pbldpZHRoKSxlLm1heFdpZHRoKSxlLmhlaWdodD1NYXRoLm1pbihNYXRoLm1heChlLmhlaWdodCxlLm1pbkhlaWdodCksZS5tYXhIZWlnaHQpLHRoaXMubGltaXRDcm9wQm94KCExLCEwKSxlLmxlZnQ9TWF0aC5taW4oTWF0aC5tYXgoZS5sZWZ0LGUubWluTGVmdCksZS5tYXhMZWZ0KSxlLnRvcD1NYXRoLm1pbihNYXRoLm1heChlLnRvcCxlLm1pblRvcCksZS5tYXhUb3ApLGUub2xkTGVmdD1lLmxlZnQsZS5vbGRUb3A9ZS50b3AsdC5tb3ZhYmxlJiZ0LmNyb3BCb3hNb3ZhYmxlJiZJdCh0aGlzLmZhY2UsbHQsZS53aWR0aD49aS53aWR0aCYmZS5oZWlnaHQ+PWkuaGVpZ2h0P3Z0OkF0KSxudCh0aGlzLmNyb3BCb3gsRCh7d2lkdGg6ZS53aWR0aCxoZWlnaHQ6ZS5oZWlnaHR9LEJ0KHt0cmFuc2xhdGVYOmUubGVmdCx0cmFuc2xhdGVZOmUudG9wfSkpKSx0aGlzLmNyb3BwZWQmJnRoaXMubGltaXRlZCYmdGhpcy5saW1pdENhbnZhcyghMCwhMCksdGhpcy5kaXNhYmxlZHx8dGhpcy5vdXRwdXQoKX0sb3V0cHV0OmZ1bmN0aW9uKCl7dGhpcy5wcmV2aWV3KCksTXQodGhpcy5lbGVtZW50LHl0LHRoaXMuZ2V0RGF0YSgpKX19LFFlPXtpbml0UHJldmlldzpmdW5jdGlvbigpe3ZhciB0PXRoaXMuZWxlbWVudCxpPXRoaXMuY3Jvc3NPcmlnaW4sZT10aGlzLm9wdGlvbnMucHJldmlldyxvPWk/dGhpcy5jcm9zc09yaWdpblVybDp0aGlzLnVybCxyPXQuYWx0fHwiVGhlIGltYWdlIHRvIHByZXZpZXciLG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7aWYoaSYmKG4uY3Jvc3NPcmlnaW49aSksbi5zcmM9byxuLmFsdD1yLHRoaXMudmlld0JveC5hcHBlbmRDaGlsZChuKSx0aGlzLnZpZXdCb3hJbWFnZT1uLCEhZSl7dmFyIHM9ZTt0eXBlb2YgZT09InN0cmluZyI/cz10Lm93bmVyRG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChlKTplLnF1ZXJ5U2VsZWN0b3ImJihzPVtlXSksdGhpcy5wcmV2aWV3cz1zLE0ocyxmdW5jdGlvbih1KXt2YXIgbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTtJdCh1LGZ0LHt3aWR0aDp1Lm9mZnNldFdpZHRoLGhlaWdodDp1Lm9mZnNldEhlaWdodCxodG1sOnUuaW5uZXJIVE1MfSksaSYmKGwuY3Jvc3NPcmlnaW49aSksbC5zcmM9byxsLmFsdD1yLGwuc3R5bGUuY3NzVGV4dD0nZGlzcGxheTpibG9jazt3aWR0aDoxMDAlO2hlaWdodDphdXRvO21pbi13aWR0aDowIWltcG9ydGFudDttaW4taGVpZ2h0OjAhaW1wb3J0YW50O21heC13aWR0aDpub25lIWltcG9ydGFudDttYXgtaGVpZ2h0Om5vbmUhaW1wb3J0YW50O2ltYWdlLW9yaWVudGF0aW9uOjBkZWchaW1wb3J0YW50OyInLHUuaW5uZXJIVE1MPSIiLHUuYXBwZW5kQ2hpbGQobCl9KX19LHJlc2V0UHJldmlldzpmdW5jdGlvbigpe00odGhpcy5wcmV2aWV3cyxmdW5jdGlvbih0KXt2YXIgaT1xdCh0LGZ0KTtudCh0LHt3aWR0aDppLndpZHRoLGhlaWdodDppLmhlaWdodH0pLHQuaW5uZXJIVE1MPWkuaHRtbCxZZSh0LGZ0KX0pfSxwcmV2aWV3OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5pbWFnZURhdGEsaT10aGlzLmNhbnZhc0RhdGEsZT10aGlzLmNyb3BCb3hEYXRhLG89ZS53aWR0aCxyPWUuaGVpZ2h0LG49dC53aWR0aCxzPXQuaGVpZ2h0LHU9ZS5sZWZ0LWkubGVmdC10LmxlZnQsbD1lLnRvcC1pLnRvcC10LnRvcDshdGhpcy5jcm9wcGVkfHx0aGlzLmRpc2FibGVkfHwobnQodGhpcy52aWV3Qm94SW1hZ2UsRCh7d2lkdGg6bixoZWlnaHQ6c30sQnQoRCh7dHJhbnNsYXRlWDotdSx0cmFuc2xhdGVZOi1sfSx0KSkpKSxNKHRoaXMucHJldmlld3MsZnVuY3Rpb24oaCl7dmFyIGM9cXQoaCxmdCksZj1jLndpZHRoLG09Yy5oZWlnaHQsZz1mLEU9bSxiPTE7byYmKGI9Zi9vLEU9cipiKSxyJiZFPm0mJihiPW0vcixnPW8qYixFPW0pLG50KGgse3dpZHRoOmcsaGVpZ2h0OkV9KSxudChoLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbWciKVswXSxEKHt3aWR0aDpuKmIsaGVpZ2h0OnMqYn0sQnQoRCh7dHJhbnNsYXRlWDotdSpiLHRyYW5zbGF0ZVk6LWwqYn0sdCkpKSl9KSl9fSxKZT17YmluZDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuZWxlbWVudCxpPXRoaXMub3B0aW9ucyxlPXRoaXMuY3JvcHBlcjt6KGkuY3JvcHN0YXJ0KSYmVyh0LFZ0LGkuY3JvcHN0YXJ0KSx6KGkuY3JvcG1vdmUpJiZXKHQsVXQsaS5jcm9wbW92ZSkseihpLmNyb3BlbmQpJiZXKHQsanQsaS5jcm9wZW5kKSx6KGkuY3JvcCkmJlcodCx5dCxpLmNyb3ApLHooaS56b29tKSYmVyh0LEd0LGkuem9vbSksVyhlLGVlLHRoaXMub25Dcm9wU3RhcnQ9dGhpcy5jcm9wU3RhcnQuYmluZCh0aGlzKSksaS56b29tYWJsZSYmaS56b29tT25XaGVlbCYmVyhlLG9lLHRoaXMub25XaGVlbD10aGlzLndoZWVsLmJpbmQodGhpcykse3Bhc3NpdmU6ITEsY2FwdHVyZTohMH0pLGkudG9nZ2xlRHJhZ01vZGVPbkRibGNsaWNrJiZXKGUsdGUsdGhpcy5vbkRibGNsaWNrPXRoaXMuZGJsY2xpY2suYmluZCh0aGlzKSksVyh0Lm93bmVyRG9jdW1lbnQsaWUsdGhpcy5vbkNyb3BNb3ZlPXRoaXMuY3JvcE1vdmUuYmluZCh0aGlzKSksVyh0Lm93bmVyRG9jdW1lbnQsYWUsdGhpcy5vbkNyb3BFbmQ9dGhpcy5jcm9wRW5kLmJpbmQodGhpcykpLGkucmVzcG9uc2l2ZSYmVyh3aW5kb3csbmUsdGhpcy5vblJlc2l6ZT10aGlzLnJlc2l6ZS5iaW5kKHRoaXMpKX0sdW5iaW5kOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5lbGVtZW50LGk9dGhpcy5vcHRpb25zLGU9dGhpcy5jcm9wcGVyO3ooaS5jcm9wc3RhcnQpJiZWKHQsVnQsaS5jcm9wc3RhcnQpLHooaS5jcm9wbW92ZSkmJlYodCxVdCxpLmNyb3Btb3ZlKSx6KGkuY3JvcGVuZCkmJlYodCxqdCxpLmNyb3BlbmQpLHooaS5jcm9wKSYmVih0LHl0LGkuY3JvcCkseihpLnpvb20pJiZWKHQsR3QsaS56b29tKSxWKGUsZWUsdGhpcy5vbkNyb3BTdGFydCksaS56b29tYWJsZSYmaS56b29tT25XaGVlbCYmVihlLG9lLHRoaXMub25XaGVlbCx7cGFzc2l2ZTohMSxjYXB0dXJlOiEwfSksaS50b2dnbGVEcmFnTW9kZU9uRGJsY2xpY2smJlYoZSx0ZSx0aGlzLm9uRGJsY2xpY2spLFYodC5vd25lckRvY3VtZW50LGllLHRoaXMub25Dcm9wTW92ZSksVih0Lm93bmVyRG9jdW1lbnQsYWUsdGhpcy5vbkNyb3BFbmQpLGkucmVzcG9uc2l2ZSYmVih3aW5kb3csbmUsdGhpcy5vblJlc2l6ZSl9fSx0aT17cmVzaXplOmZ1bmN0aW9uKCl7aWYoIXRoaXMuZGlzYWJsZWQpe3ZhciB0PXRoaXMub3B0aW9ucyxpPXRoaXMuY29udGFpbmVyLGU9dGhpcy5jb250YWluZXJEYXRhLG89aS5vZmZzZXRXaWR0aC9lLndpZHRoLHI9aS5vZmZzZXRIZWlnaHQvZS5oZWlnaHQsbj1NYXRoLmFicyhvLTEpPk1hdGguYWJzKHItMSk/bzpyO2lmKG4hPT0xKXt2YXIgcyx1O3QucmVzdG9yZSYmKHM9dGhpcy5nZXRDYW52YXNEYXRhKCksdT10aGlzLmdldENyb3BCb3hEYXRhKCkpLHRoaXMucmVuZGVyKCksdC5yZXN0b3JlJiYodGhpcy5zZXRDYW52YXNEYXRhKE0ocyxmdW5jdGlvbihsLGgpe3NbaF09bCpufSkpLHRoaXMuc2V0Q3JvcEJveERhdGEoTSh1LGZ1bmN0aW9uKGwsaCl7dVtoXT1sKm59KSkpfX19LGRibGNsaWNrOmZ1bmN0aW9uKCl7dGhpcy5kaXNhYmxlZHx8dGhpcy5vcHRpb25zLmRyYWdNb2RlPT09X3R8fHRoaXMuc2V0RHJhZ01vZGUoemUodGhpcy5kcmFnQm94LEMpP1N0OlJ0KX0sd2hlZWw6ZnVuY3Rpb24odCl7dmFyIGk9dGhpcyxlPU51bWJlcih0aGlzLm9wdGlvbnMud2hlZWxab29tUmF0aW8pfHwuMSxvPTE7dGhpcy5kaXNhYmxlZHx8KHQucHJldmVudERlZmF1bHQoKSwhdGhpcy53aGVlbGluZyYmKHRoaXMud2hlZWxpbmc9ITAsc2V0VGltZW91dChmdW5jdGlvbigpe2kud2hlZWxpbmc9ITF9LDUwKSx0LmRlbHRhWT9vPXQuZGVsdGFZPjA/MTotMTp0LndoZWVsRGVsdGE/bz0tdC53aGVlbERlbHRhLzEyMDp0LmRldGFpbCYmKG89dC5kZXRhaWw+MD8xOi0xKSx0aGlzLnpvb20oLW8qZSx0KSkpfSxjcm9wU3RhcnQ6ZnVuY3Rpb24odCl7dmFyIGk9dC5idXR0b25zLGU9dC5idXR0b247aWYoISh0aGlzLmRpc2FibGVkfHwodC50eXBlPT09Im1vdXNlZG93biJ8fHQudHlwZT09PSJwb2ludGVyZG93biImJnQucG9pbnRlclR5cGU9PT0ibW91c2UiKSYmKHAoaSkmJmkhPT0xfHxwKGUpJiZlIT09MHx8dC5jdHJsS2V5KSkpe3ZhciBvPXRoaXMub3B0aW9ucyxyPXRoaXMucG9pbnRlcnMsbjt0LmNoYW5nZWRUb3VjaGVzP00odC5jaGFuZ2VkVG91Y2hlcyxmdW5jdGlvbihzKXtyW3MuaWRlbnRpZmllcl09WXQocyl9KTpyW3QucG9pbnRlcklkfHwwXT1ZdCh0KSxPYmplY3Qua2V5cyhyKS5sZW5ndGg+MSYmby56b29tYWJsZSYmby56b29tT25Ub3VjaD9uPWt0Om49cXQodC50YXJnZXQsbHQpLENlLnRlc3QobikmJk10KHRoaXMuZWxlbWVudCxWdCx7b3JpZ2luYWxFdmVudDp0LGFjdGlvbjpufSkhPT0hMSYmKHQucHJldmVudERlZmF1bHQoKSx0aGlzLmFjdGlvbj1uLHRoaXMuY3JvcHBpbmc9ITEsbj09PXp0JiYodGhpcy5jcm9wcGluZz0hMCxTKHRoaXMuZHJhZ0JveCxidCkpKX19LGNyb3BNb3ZlOmZ1bmN0aW9uKHQpe3ZhciBpPXRoaXMuYWN0aW9uO2lmKCEodGhpcy5kaXNhYmxlZHx8IWkpKXt2YXIgZT10aGlzLnBvaW50ZXJzO3QucHJldmVudERlZmF1bHQoKSxNdCh0aGlzLmVsZW1lbnQsVXQse29yaWdpbmFsRXZlbnQ6dCxhY3Rpb246aX0pIT09ITEmJih0LmNoYW5nZWRUb3VjaGVzP00odC5jaGFuZ2VkVG91Y2hlcyxmdW5jdGlvbihvKXtEKGVbby5pZGVudGlmaWVyXXx8e30sWXQobywhMCkpfSk6RChlW3QucG9pbnRlcklkfHwwXXx8e30sWXQodCwhMCkpLHRoaXMuY2hhbmdlKHQpKX19LGNyb3BFbmQ6ZnVuY3Rpb24odCl7aWYoIXRoaXMuZGlzYWJsZWQpe3ZhciBpPXRoaXMuYWN0aW9uLGU9dGhpcy5wb2ludGVyczt0LmNoYW5nZWRUb3VjaGVzP00odC5jaGFuZ2VkVG91Y2hlcyxmdW5jdGlvbihvKXtkZWxldGUgZVtvLmlkZW50aWZpZXJdfSk6ZGVsZXRlIGVbdC5wb2ludGVySWR8fDBdLGkmJih0LnByZXZlbnREZWZhdWx0KCksT2JqZWN0LmtleXMoZSkubGVuZ3RofHwodGhpcy5hY3Rpb249IiIpLHRoaXMuY3JvcHBpbmcmJih0aGlzLmNyb3BwaW5nPSExLEV0KHRoaXMuZHJhZ0JveCxidCx0aGlzLmNyb3BwZWQmJnRoaXMub3B0aW9ucy5tb2RhbCkpLE10KHRoaXMuZWxlbWVudCxqdCx7b3JpZ2luYWxFdmVudDp0LGFjdGlvbjppfSkpfX19LGVpPXtjaGFuZ2U6ZnVuY3Rpb24odCl7dmFyIGk9dGhpcy5vcHRpb25zLGU9dGhpcy5jYW52YXNEYXRhLG89dGhpcy5jb250YWluZXJEYXRhLHI9dGhpcy5jcm9wQm94RGF0YSxuPXRoaXMucG9pbnRlcnMscz10aGlzLmFjdGlvbix1PWkuYXNwZWN0UmF0aW8sbD1yLmxlZnQsaD1yLnRvcCxjPXIud2lkdGgsZj1yLmhlaWdodCxtPWwrYyxnPWgrZixFPTAsYj0wLE49by53aWR0aCxfPW8uaGVpZ2h0LFQ9ITAsaXQ7IXUmJnQuc2hpZnRLZXkmJih1PWMmJmY/Yy9mOjEpLHRoaXMubGltaXRlZCYmKEU9ci5taW5MZWZ0LGI9ci5taW5Ub3AsTj1FK01hdGgubWluKG8ud2lkdGgsZS53aWR0aCxlLmxlZnQrZS53aWR0aCksXz1iK01hdGgubWluKG8uaGVpZ2h0LGUuaGVpZ2h0LGUudG9wK2UuaGVpZ2h0KSk7dmFyIFk9bltPYmplY3Qua2V5cyhuKVswXV0sZD17eDpZLmVuZFgtWS5zdGFydFgseTpZLmVuZFktWS5zdGFydFl9LHc9ZnVuY3Rpb24oSCl7c3dpdGNoKEgpe2Nhc2UgJDptK2QueD5OJiYoZC54PU4tbSk7YnJlYWs7Y2FzZSBKOmwrZC54PEUmJihkLng9RS1sKTticmVhaztjYXNlIFU6aCtkLnk8YiYmKGQueT1iLWgpO2JyZWFrO2Nhc2UgdHQ6ZytkLnk+XyYmKGQueT1fLWcpO2JyZWFrfX07c3dpdGNoKHMpe2Nhc2UgQXQ6bCs9ZC54LGgrPWQueTticmVhaztjYXNlICQ6aWYoZC54Pj0wJiYobT49Tnx8dSYmKGg8PWJ8fGc+PV8pKSl7VD0hMTticmVha313KCQpLGMrPWQueCxjPDAmJihzPUosYz0tYyxsLT1jKSx1JiYoZj1jL3UsaCs9KHIuaGVpZ2h0LWYpLzIpO2JyZWFrO2Nhc2UgVTppZihkLnk8PTAmJihoPD1ifHx1JiYobDw9RXx8bT49TikpKXtUPSExO2JyZWFrfXcoVSksZi09ZC55LGgrPWQueSxmPDAmJihzPXR0LGY9LWYsaC09ZiksdSYmKGM9Zip1LGwrPShyLndpZHRoLWMpLzIpO2JyZWFrO2Nhc2UgSjppZihkLng8PTAmJihsPD1FfHx1JiYoaDw9Ynx8Zz49XykpKXtUPSExO2JyZWFrfXcoSiksYy09ZC54LGwrPWQueCxjPDAmJihzPSQsYz0tYyxsLT1jKSx1JiYoZj1jL3UsaCs9KHIuaGVpZ2h0LWYpLzIpO2JyZWFrO2Nhc2UgdHQ6aWYoZC55Pj0wJiYoZz49X3x8dSYmKGw8PUV8fG0+PU4pKSl7VD0hMTticmVha313KHR0KSxmKz1kLnksZjwwJiYocz1VLGY9LWYsaC09ZiksdSYmKGM9Zip1LGwrPShyLndpZHRoLWMpLzIpO2JyZWFrO2Nhc2UgcnQ6aWYodSl7aWYoZC55PD0wJiYoaDw9Ynx8bT49Tikpe1Q9ITE7YnJlYWt9dyhVKSxmLT1kLnksaCs9ZC55LGM9Zip1fWVsc2UgdyhVKSx3KCQpLGQueD49MD9tPE4/Yys9ZC54OmQueTw9MCYmaDw9YiYmKFQ9ITEpOmMrPWQueCxkLnk8PTA/aD5iJiYoZi09ZC55LGgrPWQueSk6KGYtPWQueSxoKz1kLnkpO2M8MCYmZjwwPyhzPWN0LGY9LWYsYz0tYyxoLT1mLGwtPWMpOmM8MD8ocz1odCxjPS1jLGwtPWMpOmY8MCYmKHM9QixmPS1mLGgtPWYpO2JyZWFrO2Nhc2UgaHQ6aWYodSl7aWYoZC55PD0wJiYoaDw9Ynx8bDw9RSkpe1Q9ITE7YnJlYWt9dyhVKSxmLT1kLnksaCs9ZC55LGM9Zip1LGwrPXIud2lkdGgtY31lbHNlIHcoVSksdyhKKSxkLng8PTA/bD5FPyhjLT1kLngsbCs9ZC54KTpkLnk8PTAmJmg8PWImJihUPSExKTooYy09ZC54LGwrPWQueCksZC55PD0wP2g+YiYmKGYtPWQueSxoKz1kLnkpOihmLT1kLnksaCs9ZC55KTtjPDAmJmY8MD8ocz1CLGY9LWYsYz0tYyxoLT1mLGwtPWMpOmM8MD8ocz1ydCxjPS1jLGwtPWMpOmY8MCYmKHM9Y3QsZj0tZixoLT1mKTticmVhaztjYXNlIGN0OmlmKHUpe2lmKGQueDw9MCYmKGw8PUV8fGc+PV8pKXtUPSExO2JyZWFrfXcoSiksYy09ZC54LGwrPWQueCxmPWMvdX1lbHNlIHcodHQpLHcoSiksZC54PD0wP2w+RT8oYy09ZC54LGwrPWQueCk6ZC55Pj0wJiZnPj1fJiYoVD0hMSk6KGMtPWQueCxsKz1kLngpLGQueT49MD9nPF8mJihmKz1kLnkpOmYrPWQueTtjPDAmJmY8MD8ocz1ydCxmPS1mLGM9LWMsaC09ZixsLT1jKTpjPDA/KHM9QixjPS1jLGwtPWMpOmY8MCYmKHM9aHQsZj0tZixoLT1mKTticmVhaztjYXNlIEI6aWYodSl7aWYoZC54Pj0wJiYobT49Tnx8Zz49Xykpe1Q9ITE7YnJlYWt9dygkKSxjKz1kLngsZj1jL3V9ZWxzZSB3KHR0KSx3KCQpLGQueD49MD9tPE4/Yys9ZC54OmQueT49MCYmZz49XyYmKFQ9ITEpOmMrPWQueCxkLnk+PTA/ZzxfJiYoZis9ZC55KTpmKz1kLnk7YzwwJiZmPDA/KHM9aHQsZj0tZixjPS1jLGgtPWYsbC09Yyk6YzwwPyhzPWN0LGM9LWMsbC09Yyk6ZjwwJiYocz1ydCxmPS1mLGgtPWYpO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tb3ZlKGQueCxkLnkpLFQ9ITE7YnJlYWs7Y2FzZSBrdDp0aGlzLnpvb20oV2UobiksdCksVD0hMTticmVhaztjYXNlIHp0OmlmKCFkLnh8fCFkLnkpe1Q9ITE7YnJlYWt9aXQ9Z2UodGhpcy5jcm9wcGVyKSxsPVkuc3RhcnRYLWl0LmxlZnQsaD1ZLnN0YXJ0WS1pdC50b3AsYz1yLm1pbldpZHRoLGY9ci5taW5IZWlnaHQsZC54PjA/cz1kLnk+MD9COnJ0OmQueDwwJiYobC09YyxzPWQueT4wP2N0Omh0KSxkLnk8MCYmKGgtPWYpLHRoaXMuY3JvcHBlZHx8KEsodGhpcy5jcm9wQm94LHYpLHRoaXMuY3JvcHBlZD0hMCx0aGlzLmxpbWl0ZWQmJnRoaXMubGltaXRDcm9wQm94KCEwLCEwKSk7YnJlYWt9VCYmKHIud2lkdGg9YyxyLmhlaWdodD1mLHIubGVmdD1sLHIudG9wPWgsdGhpcy5hY3Rpb249cyx0aGlzLnJlbmRlckNyb3BCb3goKSksTShuLGZ1bmN0aW9uKEEpe0Euc3RhcnRYPUEuZW5kWCxBLnN0YXJ0WT1BLmVuZFl9KX19LGlpPXtjcm9wOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVhZHkmJiF0aGlzLmNyb3BwZWQmJiF0aGlzLmRpc2FibGVkJiYodGhpcy5jcm9wcGVkPSEwLHRoaXMubGltaXRDcm9wQm94KCEwLCEwKSx0aGlzLm9wdGlvbnMubW9kYWwmJlModGhpcy5kcmFnQm94LGJ0KSxLKHRoaXMuY3JvcEJveCx2KSx0aGlzLnNldENyb3BCb3hEYXRhKHRoaXMuaW5pdGlhbENyb3BCb3hEYXRhKSksdGhpc30scmVzZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZWFkeSYmIXRoaXMuZGlzYWJsZWQmJih0aGlzLmltYWdlRGF0YT1EKHt9LHRoaXMuaW5pdGlhbEltYWdlRGF0YSksdGhpcy5jYW52YXNEYXRhPUQoe30sdGhpcy5pbml0aWFsQ2FudmFzRGF0YSksdGhpcy5jcm9wQm94RGF0YT1EKHt9LHRoaXMuaW5pdGlhbENyb3BCb3hEYXRhKSx0aGlzLnJlbmRlckNhbnZhcygpLHRoaXMuY3JvcHBlZCYmdGhpcy5yZW5kZXJDcm9wQm94KCkpLHRoaXN9LGNsZWFyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3JvcHBlZCYmIXRoaXMuZGlzYWJsZWQmJihEKHRoaXMuY3JvcEJveERhdGEse2xlZnQ6MCx0b3A6MCx3aWR0aDowLGhlaWdodDowfSksdGhpcy5jcm9wcGVkPSExLHRoaXMucmVuZGVyQ3JvcEJveCgpLHRoaXMubGltaXRDYW52YXMoITAsITApLHRoaXMucmVuZGVyQ2FudmFzKCksSyh0aGlzLmRyYWdCb3gsYnQpLFModGhpcy5jcm9wQm94LHYpKSx0aGlzfSxyZXBsYWNlOmZ1bmN0aW9uKHQpe3ZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTohMTtyZXR1cm4hdGhpcy5kaXNhYmxlZCYmdCYmKHRoaXMuaXNJbWcmJih0aGlzLmVsZW1lbnQuc3JjPXQpLGk/KHRoaXMudXJsPXQsdGhpcy5pbWFnZS5zcmM9dCx0aGlzLnJlYWR5JiYodGhpcy52aWV3Qm94SW1hZ2Uuc3JjPXQsTSh0aGlzLnByZXZpZXdzLGZ1bmN0aW9uKGUpe2UuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImltZyIpWzBdLnNyYz10fSkpKToodGhpcy5pc0ltZyYmKHRoaXMucmVwbGFjZWQ9ITApLHRoaXMub3B0aW9ucy5kYXRhPW51bGwsdGhpcy51bmNyZWF0ZSgpLHRoaXMubG9hZCh0KSkpLHRoaXN9LGVuYWJsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJlYWR5JiZ0aGlzLmRpc2FibGVkJiYodGhpcy5kaXNhYmxlZD0hMSxLKHRoaXMuY3JvcHBlcixJKSksdGhpc30sZGlzYWJsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJlYWR5JiYhdGhpcy5kaXNhYmxlZCYmKHRoaXMuZGlzYWJsZWQ9ITAsUyh0aGlzLmNyb3BwZXIsSSkpLHRoaXN9LGRlc3Ryb3k6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmVsZW1lbnQ7cmV0dXJuIHRbeV0/KHRbeV09dm9pZCAwLHRoaXMuaXNJbWcmJnRoaXMucmVwbGFjZWQmJih0LnNyYz10aGlzLm9yaWdpbmFsVXJsKSx0aGlzLnVuY3JlYXRlKCksdGhpcyk6dGhpc30sbW92ZTpmdW5jdGlvbih0KXt2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06dCxlPXRoaXMuY2FudmFzRGF0YSxvPWUubGVmdCxyPWUudG9wO3JldHVybiB0aGlzLm1vdmVUbygkdCh0KT90Om8rTnVtYmVyKHQpLCR0KGkpP2k6citOdW1iZXIoaSkpfSxtb3ZlVG86ZnVuY3Rpb24odCl7dmFyIGk9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOnQsZT10aGlzLmNhbnZhc0RhdGEsbz0hMTtyZXR1cm4gdD1OdW1iZXIodCksaT1OdW1iZXIoaSksdGhpcy5yZWFkeSYmIXRoaXMuZGlzYWJsZWQmJnRoaXMub3B0aW9ucy5tb3ZhYmxlJiYocCh0KSYmKGUubGVmdD10LG89ITApLHAoaSkmJihlLnRvcD1pLG89ITApLG8mJnRoaXMucmVuZGVyQ2FudmFzKCEwKSksdGhpc30sem9vbTpmdW5jdGlvbih0LGkpe3ZhciBlPXRoaXMuY2FudmFzRGF0YTtyZXR1cm4gdD1OdW1iZXIodCksdDwwP3Q9MS8oMS10KTp0PTErdCx0aGlzLnpvb21UbyhlLndpZHRoKnQvZS5uYXR1cmFsV2lkdGgsbnVsbCxpKX0sem9vbVRvOmZ1bmN0aW9uKHQsaSxlKXt2YXIgbz10aGlzLm9wdGlvbnMscj10aGlzLmNhbnZhc0RhdGEsbj1yLndpZHRoLHM9ci5oZWlnaHQsdT1yLm5hdHVyYWxXaWR0aCxsPXIubmF0dXJhbEhlaWdodDtpZih0PU51bWJlcih0KSx0Pj0wJiZ0aGlzLnJlYWR5JiYhdGhpcy5kaXNhYmxlZCYmby56b29tYWJsZSl7dmFyIGg9dSp0LGM9bCp0O2lmKE10KHRoaXMuZWxlbWVudCxHdCx7cmF0aW86dCxvbGRSYXRpbzpuL3Usb3JpZ2luYWxFdmVudDplfSk9PT0hMSlyZXR1cm4gdGhpcztpZihlKXt2YXIgZj10aGlzLnBvaW50ZXJzLG09Z2UodGhpcy5jcm9wcGVyKSxnPWYmJk9iamVjdC5rZXlzKGYpLmxlbmd0aD9IZShmKTp7cGFnZVg6ZS5wYWdlWCxwYWdlWTplLnBhZ2VZfTtyLmxlZnQtPShoLW4pKigoZy5wYWdlWC1tLmxlZnQtci5sZWZ0KS9uKSxyLnRvcC09KGMtcykqKChnLnBhZ2VZLW0udG9wLXIudG9wKS9zKX1lbHNlIHh0KGkpJiZwKGkueCkmJnAoaS55KT8oci5sZWZ0LT0oaC1uKSooKGkueC1yLmxlZnQpL24pLHIudG9wLT0oYy1zKSooKGkueS1yLnRvcCkvcykpOihyLmxlZnQtPShoLW4pLzIsci50b3AtPShjLXMpLzIpO3Iud2lkdGg9aCxyLmhlaWdodD1jLHRoaXMucmVuZGVyQ2FudmFzKCEwKX1yZXR1cm4gdGhpc30scm90YXRlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnJvdGF0ZVRvKCh0aGlzLmltYWdlRGF0YS5yb3RhdGV8fDApK051bWJlcih0KSl9LHJvdGF0ZVRvOmZ1bmN0aW9uKHQpe3JldHVybiB0PU51bWJlcih0KSxwKHQpJiZ0aGlzLnJlYWR5JiYhdGhpcy5kaXNhYmxlZCYmdGhpcy5vcHRpb25zLnJvdGF0YWJsZSYmKHRoaXMuaW1hZ2VEYXRhLnJvdGF0ZT10JTM2MCx0aGlzLnJlbmRlckNhbnZhcyghMCwhMCkpLHRoaXN9LHNjYWxlWDpmdW5jdGlvbih0KXt2YXIgaT10aGlzLmltYWdlRGF0YS5zY2FsZVk7cmV0dXJuIHRoaXMuc2NhbGUodCxwKGkpP2k6MSl9LHNjYWxlWTpmdW5jdGlvbih0KXt2YXIgaT10aGlzLmltYWdlRGF0YS5zY2FsZVg7cmV0dXJuIHRoaXMuc2NhbGUocChpKT9pOjEsdCl9LHNjYWxlOmZ1bmN0aW9uKHQpe3ZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTp0LGU9dGhpcy5pbWFnZURhdGEsbz0hMTtyZXR1cm4gdD1OdW1iZXIodCksaT1OdW1iZXIoaSksdGhpcy5yZWFkeSYmIXRoaXMuZGlzYWJsZWQmJnRoaXMub3B0aW9ucy5zY2FsYWJsZSYmKHAodCkmJihlLnNjYWxlWD10LG89ITApLHAoaSkmJihlLnNjYWxlWT1pLG89ITApLG8mJnRoaXMucmVuZGVyQ2FudmFzKCEwLCEwKSksdGhpc30sZ2V0RGF0YTpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dm9pZCAwP2FyZ3VtZW50c1swXTohMSxpPXRoaXMub3B0aW9ucyxlPXRoaXMuaW1hZ2VEYXRhLG89dGhpcy5jYW52YXNEYXRhLHI9dGhpcy5jcm9wQm94RGF0YSxuO2lmKHRoaXMucmVhZHkmJnRoaXMuY3JvcHBlZCl7bj17eDpyLmxlZnQtby5sZWZ0LHk6ci50b3Atby50b3Asd2lkdGg6ci53aWR0aCxoZWlnaHQ6ci5oZWlnaHR9O3ZhciBzPWUud2lkdGgvZS5uYXR1cmFsV2lkdGg7aWYoTShuLGZ1bmN0aW9uKGgsYyl7bltjXT1oL3N9KSx0KXt2YXIgdT1NYXRoLnJvdW5kKG4ueStuLmhlaWdodCksbD1NYXRoLnJvdW5kKG4ueCtuLndpZHRoKTtuLng9TWF0aC5yb3VuZChuLngpLG4ueT1NYXRoLnJvdW5kKG4ueSksbi53aWR0aD1sLW4ueCxuLmhlaWdodD11LW4ueX19ZWxzZSBuPXt4OjAseTowLHdpZHRoOjAsaGVpZ2h0OjB9O3JldHVybiBpLnJvdGF0YWJsZSYmKG4ucm90YXRlPWUucm90YXRlfHwwKSxpLnNjYWxhYmxlJiYobi5zY2FsZVg9ZS5zY2FsZVh8fDEsbi5zY2FsZVk9ZS5zY2FsZVl8fDEpLG59LHNldERhdGE6ZnVuY3Rpb24odCl7dmFyIGk9dGhpcy5vcHRpb25zLGU9dGhpcy5pbWFnZURhdGEsbz10aGlzLmNhbnZhc0RhdGEscj17fTtpZih0aGlzLnJlYWR5JiYhdGhpcy5kaXNhYmxlZCYmeHQodCkpe3ZhciBuPSExO2kucm90YXRhYmxlJiZwKHQucm90YXRlKSYmdC5yb3RhdGUhPT1lLnJvdGF0ZSYmKGUucm90YXRlPXQucm90YXRlLG49ITApLGkuc2NhbGFibGUmJihwKHQuc2NhbGVYKSYmdC5zY2FsZVghPT1lLnNjYWxlWCYmKGUuc2NhbGVYPXQuc2NhbGVYLG49ITApLHAodC5zY2FsZVkpJiZ0LnNjYWxlWSE9PWUuc2NhbGVZJiYoZS5zY2FsZVk9dC5zY2FsZVksbj0hMCkpLG4mJnRoaXMucmVuZGVyQ2FudmFzKCEwLCEwKTt2YXIgcz1lLndpZHRoL2UubmF0dXJhbFdpZHRoO3AodC54KSYmKHIubGVmdD10LngqcytvLmxlZnQpLHAodC55KSYmKHIudG9wPXQueSpzK28udG9wKSxwKHQud2lkdGgpJiYoci53aWR0aD10LndpZHRoKnMpLHAodC5oZWlnaHQpJiYoci5oZWlnaHQ9dC5oZWlnaHQqcyksdGhpcy5zZXRDcm9wQm94RGF0YShyKX1yZXR1cm4gdGhpc30sZ2V0Q29udGFpbmVyRGF0YTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJlYWR5P0Qoe30sdGhpcy5jb250YWluZXJEYXRhKTp7fX0sZ2V0SW1hZ2VEYXRhOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2l6ZWQ/RCh7fSx0aGlzLmltYWdlRGF0YSk6e319LGdldENhbnZhc0RhdGE6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmNhbnZhc0RhdGEsaT17fTtyZXR1cm4gdGhpcy5yZWFkeSYmTShbImxlZnQiLCJ0b3AiLCJ3aWR0aCIsImhlaWdodCIsIm5hdHVyYWxXaWR0aCIsIm5hdHVyYWxIZWlnaHQiXSxmdW5jdGlvbihlKXtpW2VdPXRbZV19KSxpfSxzZXRDYW52YXNEYXRhOmZ1bmN0aW9uKHQpe3ZhciBpPXRoaXMuY2FudmFzRGF0YSxlPWkuYXNwZWN0UmF0aW87cmV0dXJuIHRoaXMucmVhZHkmJiF0aGlzLmRpc2FibGVkJiZ4dCh0KSYmKHAodC5sZWZ0KSYmKGkubGVmdD10LmxlZnQpLHAodC50b3ApJiYoaS50b3A9dC50b3ApLHAodC53aWR0aCk/KGkud2lkdGg9dC53aWR0aCxpLmhlaWdodD10LndpZHRoL2UpOnAodC5oZWlnaHQpJiYoaS5oZWlnaHQ9dC5oZWlnaHQsaS53aWR0aD10LmhlaWdodCplKSx0aGlzLnJlbmRlckNhbnZhcyghMCkpLHRoaXN9LGdldENyb3BCb3hEYXRhOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5jcm9wQm94RGF0YSxpO3JldHVybiB0aGlzLnJlYWR5JiZ0aGlzLmNyb3BwZWQmJihpPXtsZWZ0OnQubGVmdCx0b3A6dC50b3Asd2lkdGg6dC53aWR0aCxoZWlnaHQ6dC5oZWlnaHR9KSxpfHx7fX0sc2V0Q3JvcEJveERhdGE6ZnVuY3Rpb24odCl7dmFyIGk9dGhpcy5jcm9wQm94RGF0YSxlPXRoaXMub3B0aW9ucy5hc3BlY3RSYXRpbyxvLHI7cmV0dXJuIHRoaXMucmVhZHkmJnRoaXMuY3JvcHBlZCYmIXRoaXMuZGlzYWJsZWQmJnh0KHQpJiYocCh0LmxlZnQpJiYoaS5sZWZ0PXQubGVmdCkscCh0LnRvcCkmJihpLnRvcD10LnRvcCkscCh0LndpZHRoKSYmdC53aWR0aCE9PWkud2lkdGgmJihvPSEwLGkud2lkdGg9dC53aWR0aCkscCh0LmhlaWdodCkmJnQuaGVpZ2h0IT09aS5oZWlnaHQmJihyPSEwLGkuaGVpZ2h0PXQuaGVpZ2h0KSxlJiYobz9pLmhlaWdodD1pLndpZHRoL2U6ciYmKGkud2lkdGg9aS5oZWlnaHQqZSkpLHRoaXMucmVuZGVyQ3JvcEJveCgpKSx0aGlzfSxnZXRDcm9wcGVkQ2FudmFzOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT12b2lkIDA/YXJndW1lbnRzWzBdOnt9O2lmKCF0aGlzLnJlYWR5fHwhd2luZG93LkhUTUxDYW52YXNFbGVtZW50KXJldHVybiBudWxsO3ZhciBpPXRoaXMuY2FudmFzRGF0YSxlPVVlKHRoaXMuaW1hZ2UsdGhpcy5pbWFnZURhdGEsaSx0KTtpZighdGhpcy5jcm9wcGVkKXJldHVybiBlO3ZhciBvPXRoaXMuZ2V0RGF0YSh0LnJvdW5kZWQpLHI9by54LG49by55LHM9by53aWR0aCx1PW8uaGVpZ2h0LGw9ZS53aWR0aC9NYXRoLmZsb29yKGkubmF0dXJhbFdpZHRoKTtsIT09MSYmKHIqPWwsbio9bCxzKj1sLHUqPWwpO3ZhciBoPXMvdSxjPW90KHthc3BlY3RSYXRpbzpoLHdpZHRoOnQubWF4V2lkdGh8fDEvMCxoZWlnaHQ6dC5tYXhIZWlnaHR8fDEvMH0pLGY9b3Qoe2FzcGVjdFJhdGlvOmgsd2lkdGg6dC5taW5XaWR0aHx8MCxoZWlnaHQ6dC5taW5IZWlnaHR8fDB9LCJjb3ZlciIpLG09b3Qoe2FzcGVjdFJhdGlvOmgsd2lkdGg6dC53aWR0aHx8KGwhPT0xP2Uud2lkdGg6cyksaGVpZ2h0OnQuaGVpZ2h0fHwobCE9PTE/ZS5oZWlnaHQ6dSl9KSxnPW0ud2lkdGgsRT1tLmhlaWdodDtnPU1hdGgubWluKGMud2lkdGgsTWF0aC5tYXgoZi53aWR0aCxnKSksRT1NYXRoLm1pbihjLmhlaWdodCxNYXRoLm1heChmLmhlaWdodCxFKSk7dmFyIGI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIiksTj1iLmdldENvbnRleHQoIjJkIik7Yi53aWR0aD1EdChnKSxiLmhlaWdodD1EdChFKSxOLmZpbGxTdHlsZT10LmZpbGxDb2xvcnx8InRyYW5zcGFyZW50IixOLmZpbGxSZWN0KDAsMCxnLEUpO3ZhciBfPXQuaW1hZ2VTbW9vdGhpbmdFbmFibGVkLFQ9Xz09PXZvaWQgMD8hMDpfLGl0PXQuaW1hZ2VTbW9vdGhpbmdRdWFsaXR5O04uaW1hZ2VTbW9vdGhpbmdFbmFibGVkPVQsaXQmJihOLmltYWdlU21vb3RoaW5nUXVhbGl0eT1pdCk7dmFyIFk9ZS53aWR0aCxkPWUuaGVpZ2h0LHc9cixBPW4sSCxhdCxkdCxwdCxzdCxxO3c8PS1zfHx3Plk/KHc9MCxIPTAsZHQ9MCxzdD0wKTp3PD0wPyhkdD0tdyx3PTAsSD1NYXRoLm1pbihZLHMrdyksc3Q9SCk6dzw9WSYmKGR0PTAsSD1NYXRoLm1pbihzLFktdyksc3Q9SCksSDw9MHx8QTw9LXV8fEE+ZD8oQT0wLGF0PTAscHQ9MCxxPTApOkE8PTA/KHB0PS1BLEE9MCxhdD1NYXRoLm1pbihkLHUrQSkscT1hdCk6QTw9ZCYmKHB0PTAsYXQ9TWF0aC5taW4odSxkLUEpLHE9YXQpO3ZhciBrPVt3LEEsSCxhdF07aWYoc3Q+MCYmcT4wKXt2YXIgZ3Q9Zy9zO2sucHVzaChkdCpndCxwdCpndCxzdCpndCxxKmd0KX1yZXR1cm4gTi5kcmF3SW1hZ2UuYXBwbHkoTixbZV0uY29uY2F0KEx0KGsubWFwKGZ1bmN0aW9uKFh0KXtyZXR1cm4gTWF0aC5mbG9vcihEdChYdCkpfSkpKSksYn0sc2V0QXNwZWN0UmF0aW86ZnVuY3Rpb24odCl7dmFyIGk9dGhpcy5vcHRpb25zO3JldHVybiF0aGlzLmRpc2FibGVkJiYhJHQodCkmJihpLmFzcGVjdFJhdGlvPU1hdGgubWF4KDAsdCl8fE5hTix0aGlzLnJlYWR5JiYodGhpcy5pbml0Q3JvcEJveCgpLHRoaXMuY3JvcHBlZCYmdGhpcy5yZW5kZXJDcm9wQm94KCkpKSx0aGlzfSxzZXREcmFnTW9kZTpmdW5jdGlvbih0KXt2YXIgaT10aGlzLm9wdGlvbnMsZT10aGlzLmRyYWdCb3gsbz10aGlzLmZhY2U7aWYodGhpcy5yZWFkeSYmIXRoaXMuZGlzYWJsZWQpe3ZhciByPXQ9PT1SdCxuPWkubW92YWJsZSYmdD09PVN0O3Q9cnx8bj90Ol90LGkuZHJhZ01vZGU9dCxJdChlLGx0LHQpLEV0KGUsQyxyKSxFdChlLHd0LG4pLGkuY3JvcEJveE1vdmFibGV8fChJdChvLGx0LHQpLEV0KG8sQyxyKSxFdChvLHd0LG4pKX1yZXR1cm4gdGhpc319LGFpPVguQ3JvcHBlcix3ZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGEodCl7dmFyIGk9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOnt9O2lmKFoodGhpcyxhKSwhdHx8IVJlLnRlc3QodC50YWdOYW1lKSl0aHJvdyBuZXcgRXJyb3IoIlRoZSBmaXJzdCBhcmd1bWVudCBpcyByZXF1aXJlZCBhbmQgbXVzdCBiZSBhbiA8aW1nPiBvciA8Y2FudmFzPiBlbGVtZW50LiIpO3RoaXMuZWxlbWVudD10LHRoaXMub3B0aW9ucz1EKHt9LGxlLHh0KGkpJiZpKSx0aGlzLmNyb3BwZWQ9ITEsdGhpcy5kaXNhYmxlZD0hMSx0aGlzLnBvaW50ZXJzPXt9LHRoaXMucmVhZHk9ITEsdGhpcy5yZWxvYWRpbmc9ITEsdGhpcy5yZXBsYWNlZD0hMSx0aGlzLnNpemVkPSExLHRoaXMuc2l6aW5nPSExLHRoaXMuaW5pdCgpfXJldHVybiBXdChhLFt7a2V5OiJpbml0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBpPXRoaXMuZWxlbWVudCxlPWkudGFnTmFtZS50b0xvd2VyQ2FzZSgpLG87aWYoIWlbeV0pe2lmKGlbeV09dGhpcyxlPT09ImltZyIpe2lmKHRoaXMuaXNJbWc9ITAsbz1pLmdldEF0dHJpYnV0ZSgic3JjIil8fCIiLHRoaXMub3JpZ2luYWxVcmw9bywhbylyZXR1cm47bz1pLnNyY31lbHNlIGU9PT0iY2FudmFzIiYmd2luZG93LkhUTUxDYW52YXNFbGVtZW50JiYobz1pLnRvRGF0YVVSTCgpKTt0aGlzLmxvYWQobyl9fX0se2tleToibG9hZCIsdmFsdWU6ZnVuY3Rpb24oaSl7dmFyIGU9dGhpcztpZihpKXt0aGlzLnVybD1pLHRoaXMuaW1hZ2VEYXRhPXt9O3ZhciBvPXRoaXMuZWxlbWVudCxyPXRoaXMub3B0aW9ucztpZighci5yb3RhdGFibGUmJiFyLnNjYWxhYmxlJiYoci5jaGVja09yaWVudGF0aW9uPSExKSwhci5jaGVja09yaWVudGF0aW9ufHwhd2luZG93LkFycmF5QnVmZmVyKXt0aGlzLmNsb25lKCk7cmV0dXJufWlmKE5lLnRlc3QoaSkpe0FlLnRlc3QoaSk/dGhpcy5yZWFkKCRlKGkpKTp0aGlzLmNsb25lKCk7cmV0dXJufXZhciBuPW5ldyBYTUxIdHRwUmVxdWVzdCxzPXRoaXMuY2xvbmUuYmluZCh0aGlzKTt0aGlzLnJlbG9hZGluZz0hMCx0aGlzLnhocj1uLG4ub25hYm9ydD1zLG4ub25lcnJvcj1zLG4ub250aW1lb3V0PXMsbi5vbnByb2dyZXNzPWZ1bmN0aW9uKCl7bi5nZXRSZXNwb25zZUhlYWRlcigiY29udGVudC10eXBlIikhPT1zZSYmbi5hYm9ydCgpfSxuLm9ubG9hZD1mdW5jdGlvbigpe2UucmVhZChuLnJlc3BvbnNlKX0sbi5vbmxvYWRlbmQ9ZnVuY3Rpb24oKXtlLnJlbG9hZGluZz0hMSxlLnhocj1udWxsfSxyLmNoZWNrQ3Jvc3NPcmlnaW4mJm1lKGkpJiZvLmNyb3NzT3JpZ2luJiYoaT12ZShpKSksbi5vcGVuKCJHRVQiLGksITApLG4ucmVzcG9uc2VUeXBlPSJhcnJheWJ1ZmZlciIsbi53aXRoQ3JlZGVudGlhbHM9by5jcm9zc09yaWdpbj09PSJ1c2UtY3JlZGVudGlhbHMiLG4uc2VuZCgpfX19LHtrZXk6InJlYWQiLHZhbHVlOmZ1bmN0aW9uKGkpe3ZhciBlPXRoaXMub3B0aW9ucyxvPXRoaXMuaW1hZ2VEYXRhLHI9cWUoaSksbj0wLHM9MSx1PTE7aWYocj4xKXt0aGlzLnVybD1LZShpLHNlKTt2YXIgbD1GZShyKTtuPWwucm90YXRlLHM9bC5zY2FsZVgsdT1sLnNjYWxlWX1lLnJvdGF0YWJsZSYmKG8ucm90YXRlPW4pLGUuc2NhbGFibGUmJihvLnNjYWxlWD1zLG8uc2NhbGVZPXUpLHRoaXMuY2xvbmUoKX19LHtrZXk6ImNsb25lIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBpPXRoaXMuZWxlbWVudCxlPXRoaXMudXJsLG89aS5jcm9zc09yaWdpbixyPWU7dGhpcy5vcHRpb25zLmNoZWNrQ3Jvc3NPcmlnaW4mJm1lKGUpJiYob3x8KG89ImFub255bW91cyIpLHI9dmUoZSkpLHRoaXMuY3Jvc3NPcmlnaW49byx0aGlzLmNyb3NzT3JpZ2luVXJsPXI7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7byYmKG4uY3Jvc3NPcmlnaW49byksbi5zcmM9cnx8ZSxuLmFsdD1pLmFsdHx8IlRoZSBpbWFnZSB0byBjcm9wIix0aGlzLmltYWdlPW4sbi5vbmxvYWQ9dGhpcy5zdGFydC5iaW5kKHRoaXMpLG4ub25lcnJvcj10aGlzLnN0b3AuYmluZCh0aGlzKSxTKG4sUiksaS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShuLGkubmV4dFNpYmxpbmcpfX0se2tleToic3RhcnQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGk9dGhpcyxlPXRoaXMuaW1hZ2U7ZS5vbmxvYWQ9bnVsbCxlLm9uZXJyb3I9bnVsbCx0aGlzLnNpemluZz0hMDt2YXIgbz1YLm5hdmlnYXRvciYmLyg/OmlQYWR8aVBob25lfGlQb2QpLio/QXBwbGVXZWJLaXQvaS50ZXN0KFgubmF2aWdhdG9yLnVzZXJBZ2VudCkscj1mdW5jdGlvbihsLGgpe0QoaS5pbWFnZURhdGEse25hdHVyYWxXaWR0aDpsLG5hdHVyYWxIZWlnaHQ6aCxhc3BlY3RSYXRpbzpsL2h9KSxpLmluaXRpYWxJbWFnZURhdGE9RCh7fSxpLmltYWdlRGF0YSksaS5zaXppbmc9ITEsaS5zaXplZD0hMCxpLmJ1aWxkKCl9O2lmKGUubmF0dXJhbFdpZHRoJiYhbyl7cihlLm5hdHVyYWxXaWR0aCxlLm5hdHVyYWxIZWlnaHQpO3JldHVybn12YXIgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKSxzPWRvY3VtZW50LmJvZHl8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDt0aGlzLnNpemluZ0ltYWdlPW4sbi5vbmxvYWQ9ZnVuY3Rpb24oKXtyKG4ud2lkdGgsbi5oZWlnaHQpLG98fHMucmVtb3ZlQ2hpbGQobil9LG4uc3JjPWUuc3JjLG98fChuLnN0eWxlLmNzc1RleHQ9ImxlZnQ6MDttYXgtaGVpZ2h0Om5vbmUhaW1wb3J0YW50O21heC13aWR0aDpub25lIWltcG9ydGFudDttaW4taGVpZ2h0OjAhaW1wb3J0YW50O21pbi13aWR0aDowIWltcG9ydGFudDtvcGFjaXR5OjA7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7ei1pbmRleDotMTsiLHMuYXBwZW5kQ2hpbGQobikpfX0se2tleToic3RvcCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaT10aGlzLmltYWdlO2kub25sb2FkPW51bGwsaS5vbmVycm9yPW51bGwsaS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGkpLHRoaXMuaW1hZ2U9bnVsbH19LHtrZXk6ImJ1aWxkIix2YWx1ZTpmdW5jdGlvbigpe2lmKCEoIXRoaXMuc2l6ZWR8fHRoaXMucmVhZHkpKXt2YXIgaT10aGlzLmVsZW1lbnQsZT10aGlzLm9wdGlvbnMsbz10aGlzLmltYWdlLHI9aS5wYXJlbnROb2RlLG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7bi5pbm5lckhUTUw9U2U7dmFyIHM9bi5xdWVyeVNlbGVjdG9yKCIuIi5jb25jYXQoeSwiLWNvbnRhaW5lciIpKSx1PXMucXVlcnlTZWxlY3RvcigiLiIuY29uY2F0KHksIi1jYW52YXMiKSksbD1zLnF1ZXJ5U2VsZWN0b3IoIi4iLmNvbmNhdCh5LCItZHJhZy1ib3giKSksaD1zLnF1ZXJ5U2VsZWN0b3IoIi4iLmNvbmNhdCh5LCItY3JvcC1ib3giKSksYz1oLnF1ZXJ5U2VsZWN0b3IoIi4iLmNvbmNhdCh5LCItZmFjZSIpKTt0aGlzLmNvbnRhaW5lcj1yLHRoaXMuY3JvcHBlcj1zLHRoaXMuY2FudmFzPXUsdGhpcy5kcmFnQm94PWwsdGhpcy5jcm9wQm94PWgsdGhpcy52aWV3Qm94PXMucXVlcnlTZWxlY3RvcigiLiIuY29uY2F0KHksIi12aWV3LWJveCIpKSx0aGlzLmZhY2U9Yyx1LmFwcGVuZENoaWxkKG8pLFMoaSx2KSxyLmluc2VydEJlZm9yZShzLGkubmV4dFNpYmxpbmcpLEsobyxSKSx0aGlzLmluaXRQcmV2aWV3KCksdGhpcy5iaW5kKCksZS5pbml0aWFsQXNwZWN0UmF0aW89TWF0aC5tYXgoMCxlLmluaXRpYWxBc3BlY3RSYXRpbyl8fE5hTixlLmFzcGVjdFJhdGlvPU1hdGgubWF4KDAsZS5hc3BlY3RSYXRpbyl8fE5hTixlLnZpZXdNb2RlPU1hdGgubWF4KDAsTWF0aC5taW4oMyxNYXRoLnJvdW5kKGUudmlld01vZGUpKSl8fDAsUyhoLHYpLGUuZ3VpZGVzfHxTKGguZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiIi5jb25jYXQoeSwiLWRhc2hlZCIpKSx2KSxlLmNlbnRlcnx8UyhoLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoIiIuY29uY2F0KHksIi1jZW50ZXIiKSksdiksZS5iYWNrZ3JvdW5kJiZTKHMsIiIuY29uY2F0KHksIi1iZyIpKSxlLmhpZ2hsaWdodHx8UyhjLGV0KSxlLmNyb3BCb3hNb3ZhYmxlJiYoUyhjLHd0KSxJdChjLGx0LEF0KSksZS5jcm9wQm94UmVzaXphYmxlfHwoUyhoLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoIiIuY29uY2F0KHksIi1saW5lIikpLHYpLFMoaC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCIiLmNvbmNhdCh5LCItcG9pbnQiKSksdikpLHRoaXMucmVuZGVyKCksdGhpcy5yZWFkeT0hMCx0aGlzLnNldERyYWdNb2RlKGUuZHJhZ01vZGUpLGUuYXV0b0Nyb3AmJnRoaXMuY3JvcCgpLHRoaXMuc2V0RGF0YShlLmRhdGEpLHooZS5yZWFkeSkmJlcoaSxyZSxlLnJlYWR5LHtvbmNlOiEwfSksTXQoaSxyZSl9fX0se2tleToidW5idWlsZCIsdmFsdWU6ZnVuY3Rpb24oKXtpZih0aGlzLnJlYWR5KXt0aGlzLnJlYWR5PSExLHRoaXMudW5iaW5kKCksdGhpcy5yZXNldFByZXZpZXcoKTt2YXIgaT10aGlzLmNyb3BwZXIucGFyZW50Tm9kZTtpJiZpLnJlbW92ZUNoaWxkKHRoaXMuY3JvcHBlciksSyh0aGlzLmVsZW1lbnQsdil9fX0se2tleToidW5jcmVhdGUiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5yZWFkeT8odGhpcy51bmJ1aWxkKCksdGhpcy5yZWFkeT0hMSx0aGlzLmNyb3BwZWQ9ITEpOnRoaXMuc2l6aW5nPyh0aGlzLnNpemluZ0ltYWdlLm9ubG9hZD1udWxsLHRoaXMuc2l6aW5nPSExLHRoaXMuc2l6ZWQ9ITEpOnRoaXMucmVsb2FkaW5nPyh0aGlzLnhoci5vbmFib3J0PW51bGwsdGhpcy54aHIuYWJvcnQoKSk6dGhpcy5pbWFnZSYmdGhpcy5zdG9wKCl9fV0sW3trZXk6Im5vQ29uZmxpY3QiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHdpbmRvdy5Dcm9wcGVyPWFpLGF9fSx7a2V5OiJzZXREZWZhdWx0cyIsdmFsdWU6ZnVuY3Rpb24oaSl7RChsZSx4dChpKSYmaSl9fV0pfSgpO3JldHVybiBEKHdlLnByb3RvdHlwZSxaZSxRZSxKZSx0aSxlaSxpaSksd2V9KX0sNDIwMTY6ZnVuY3Rpb24oSnQsVHQsRil7InVzZSBzdHJpY3QiO0YuZChUdCx7ZjpmdW5jdGlvbigpe3JldHVybiBMdH19KTt2YXIgaj1GKDY3Mjk0KSxQdD1GKDMzMTI5KSxPdD1GLm4oUHQpLFo9ZnVuY3Rpb24oKXtyZXR1cm4gWj1PYmplY3QuYXNzaWdufHxmdW5jdGlvbihQKXtmb3IodmFyIEcseD0xLE89YXJndW1lbnRzLmxlbmd0aDt4PE87eCsrKWZvcih2YXIgTCBpbiBHPWFyZ3VtZW50c1t4XSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoRyxMKSYmKFBbTF09R1tMXSk7cmV0dXJuIFB9LFouYXBwbHkodGhpcyxhcmd1bWVudHMpfTtmdW5jdGlvbiBtdChQLEcpe3ZhciB4PXt9O2Zvcih2YXIgTyBpbiBQKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChQLE8pJiZHLmluZGV4T2YoTyk8MCYmKHhbT109UFtPXSk7aWYoUCE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpe3ZhciBMPTA7Zm9yKE89T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhQKTtMPE8ubGVuZ3RoO0wrKylHLmluZGV4T2YoT1tMXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKFAsT1tMXSkmJih4W09bTF1dPVBbT1tMXV0pfXJldHVybiB4fXZhciBXdD1bImFzcGVjdFJhdGlvIiwiYXV0b0Nyb3AiLCJhdXRvQ3JvcEFyZWEiLCJiYWNrZ3JvdW5kIiwiY2VudGVyIiwiY2hlY2tDcm9zc09yaWdpbiIsImNoZWNrT3JpZW50YXRpb24iLCJjcm9wQm94TW92YWJsZSIsImNyb3BCb3hSZXNpemFibGUiLCJkYXRhIiwiZHJhZ01vZGUiLCJndWlkZXMiLCJoaWdobGlnaHQiLCJpbml0aWFsQXNwZWN0UmF0aW8iLCJtaW5DYW52YXNIZWlnaHQiLCJtaW5DYW52YXNXaWR0aCIsIm1pbkNvbnRhaW5lckhlaWdodCIsIm1pbkNvbnRhaW5lcldpZHRoIiwibWluQ3JvcEJveEhlaWdodCIsIm1pbkNyb3BCb3hXaWR0aCIsIm1vZGFsIiwibW92YWJsZSIsInByZXZpZXciLCJyZXNwb25zaXZlIiwicmVzdG9yZSIsInJvdGF0YWJsZSIsInNjYWxhYmxlIiwidG9nZ2xlRHJhZ01vZGVPbkRibGNsaWNrIiwidmlld01vZGUiLCJ3aGVlbFpvb21SYXRpbyIsInpvb21PblRvdWNoIiwiem9vbU9uV2hlZWwiLCJ6b29tYWJsZSIsImNyb3BzdGFydCIsImNyb3Btb3ZlIiwiY3JvcGVuZCIsImNyb3AiLCJ6b29tIiwicmVhZHkiXSxIdD17b3BhY2l0eTowLG1heFdpZHRoOiIxMDAlIn0sTHQ9ai5mb3J3YXJkUmVmKGZ1bmN0aW9uKFAsRyl7dmFyIHg9bXQoUCxbXSksTz14LmRyYWdNb2RlLEw9Tz09PXZvaWQgMD8iY3JvcCI6TyxRPXguc3JjLFg9eC5zdHlsZSxDdD14LmNsYXNzTmFtZSxOdD14LmNyb3NzT3JpZ2luLHk9eC5zY2FsZVgsQXQ9eC5zY2FsZVksenQ9eC5lbmFibGUsdnQ9eC56b29tVG8sa3Q9eC5yb3RhdGVUbywkPXguYWx0LEo9JD09PXZvaWQgMD8icGljdHVyZSI6JCx0dD14LnJlYWR5LFU9eC5vbkluaXRpYWxpemVkLHJ0PW10KHgsWyJkcmFnTW9kZSIsInNyYyIsInN0eWxlIiwiY2xhc3NOYW1lIiwiY3Jvc3NPcmlnaW4iLCJzY2FsZVgiLCJzY2FsZVkiLCJlbmFibGUiLCJ6b29tVG8iLCJyb3RhdGVUbyIsImFsdCIsInJlYWR5Iiwib25Jbml0aWFsaXplZCJdKSxodD17c2NhbGVZOkF0LHNjYWxlWDp5LGVuYWJsZTp6dCx6b29tVG86dnQscm90YXRlVG86a3R9LEI9ZnVuY3Rpb24oKXtmb3IodmFyIEM9W10sST0wO0k8YXJndW1lbnRzLmxlbmd0aDtJKyspQ1tJXT1hcmd1bWVudHNbSV07dmFyIHY9KDAsai51c2VSZWYpKG51bGwpO3JldHVybiBqLnVzZUVmZmVjdChmdW5jdGlvbigpe0MuZm9yRWFjaChmdW5jdGlvbihSKXtSJiYodHlwZW9mIFI9PSJmdW5jdGlvbiI/Uih2LmN1cnJlbnQpOlIuY3VycmVudD12LmN1cnJlbnQpfSl9LFtDXSksdn0oRywoMCxqLnVzZVJlZikobnVsbCkpOygwLGoudXNlRWZmZWN0KShmdW5jdGlvbigpe3ZhciBDOyEoKEM9Qi5jdXJyZW50KT09PW51bGx8fEM9PT12b2lkIDApJiZDLmNyb3BwZXImJnR5cGVvZiB2dD09Im51bWJlciImJkIuY3VycmVudC5jcm9wcGVyLnpvb21Ubyh2dCl9LFt4Lnpvb21Ub10pLCgwLGoudXNlRWZmZWN0KShmdW5jdGlvbigpe3ZhciBDOyEoKEM9Qi5jdXJyZW50KT09PW51bGx8fEM9PT12b2lkIDApJiZDLmNyb3BwZXImJlEhPT12b2lkIDAmJkIuY3VycmVudC5jcm9wcGVyLnJlc2V0KCkuY2xlYXIoKS5yZXBsYWNlKFEpfSxbUV0pLCgwLGoudXNlRWZmZWN0KShmdW5jdGlvbigpe2lmKEIuY3VycmVudCE9PW51bGwpe3ZhciBDPW5ldyhPdCgpKShCLmN1cnJlbnQsWihaKHtkcmFnTW9kZTpMfSxydCkse3JlYWR5OmZ1bmN0aW9uKEkpe0kuY3VycmVudFRhcmdldCE9PW51bGwmJmZ1bmN0aW9uKHYsUil7Uj09PXZvaWQgMCYmKFI9e30pO3ZhciBldD1SLmVuYWJsZSxidD1ldD09PXZvaWQgMHx8ZXQsd3Q9Ui5zY2FsZVgsbHQ9d3Q9PT12b2lkIDA/MTp3dCxmdD1SLnNjYWxlWSxSdD1mdD09PXZvaWQgMD8xOmZ0LFN0PVIuem9vbVRvLF90PVN0PT09dm9pZCAwPzA6U3QseXQ9Ui5yb3RhdGVUbztidD92LmVuYWJsZSgpOnYuZGlzYWJsZSgpLHYuc2NhbGVYKGx0KSx2LnNjYWxlWShSdCkseXQhPT12b2lkIDAmJnYucm90YXRlVG8oeXQpLF90PjAmJnYuem9vbVRvKF90KX0oSS5jdXJyZW50VGFyZ2V0LmNyb3BwZXIsaHQpLHR0JiZ0dChJKX19KSk7VSYmVShDKX1yZXR1cm4gZnVuY3Rpb24oKXt2YXIgSSx2Oyh2PShJPUIuY3VycmVudCk9PT1udWxsfHxJPT09dm9pZCAwP3ZvaWQgMDpJLmNyb3BwZXIpPT09bnVsbHx8dj09PXZvaWQgMHx8di5kZXN0cm95KCl9fSxbQl0pO3ZhciBjdD1mdW5jdGlvbihDKXtyZXR1cm4gV3QucmVkdWNlKGZ1bmN0aW9uKEksdil7dmFyIFI9SSxldD12O3JldHVybiBSW2V0XSxtdChSLFt0eXBlb2YgZXQ9PSJzeW1ib2wiP2V0OmV0KyIiXSl9LEMpfShaKFooe30scnQpLHtjcm9zc09yaWdpbjpOdCxzcmM6USxhbHQ6Sn0pKTtyZXR1cm4gai5jcmVhdGVFbGVtZW50KCJkaXYiLHtzdHlsZTpYLGNsYXNzTmFtZTpDdH0sai5jcmVhdGVFbGVtZW50KCJpbWciLFooe30sY3Qse3N0eWxlOkh0LHJlZjpCfSkpKX0pfX1dKTsKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvMjA1Ny4yY2ZlNzA1OC5hc3luYy5qcyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvMjA1Ny4yY2ZlNzA1OC5hc3luYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OGQxNDQ3Ci0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy8yMDU3LjJjZmU3MDU4LmFzeW5jLmpzCkBAIC0wLDAgKzEgQEAKKyJ1c2Ugc3RyaWN0Ijsoc2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Bybz1zZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvfHxbXSkucHVzaChbWzIwNTddLHs4NjYxNTpmdW5jdGlvbihVLE8sbil7dmFyIHM9bigxNDEzKSxfPW4oOTEpLGI9bigyMjI3MCksZj1uKDc4MDQ1KSxqPW4oNjcyOTQpLE09big5MDc4OSksUj1uKDkyMTc5KSxtPW4oODU4OTMpLHQ9WyJmaWVsZFByb3BzIiwib3B0aW9ucyIsInJhZGlvVHlwZSIsImxheW91dCIsInByb0ZpZWxkUHJvcHMiLCJ2YWx1ZUVudW0iXSxQPWouZm9yd2FyZFJlZihmdW5jdGlvbih1LGwpe3ZhciBvPXUuZmllbGRQcm9wcyxkPXUub3B0aW9ucyxDPXUucmFkaW9UeXBlLHI9dS5sYXlvdXQsZT11LnByb0ZpZWxkUHJvcHMsaD11LnZhbHVlRW51bSxEPSgwLF8uWikodSx0KTtyZXR1cm4oMCxtLmpzeCkoUi5aLCgwLHMuWikoKDAscy5aKSh7dmFsdWVUeXBlOkM9PT0iYnV0dG9uIj8icmFkaW9CdXR0b24iOiJyYWRpbyIscmVmOmwsdmFsdWVFbnVtOigwLGIuaCkoaCx2b2lkIDApfSxEKSx7fSx7ZmllbGRQcm9wczooMCxzLlopKHtvcHRpb25zOmQsbGF5b3V0OnJ9LG8pLHByb0ZpZWxkUHJvcHM6ZSxmaWxlZENvbmZpZzp7Y3VzdG9tTGlnaHRNb2RlOiEwfX0pKX0pLFc9ai5mb3J3YXJkUmVmKGZ1bmN0aW9uKHUsbCl7dmFyIG89dS5maWVsZFByb3BzLGQ9dS5jaGlsZHJlbjtyZXR1cm4oMCxtLmpzeCkoZi5aUCwoMCxzLlopKCgwLHMuWikoe30sbykse30se3JlZjpsLGNoaWxkcmVuOmR9KSl9KSxGPSgwLE0uRykoVyx7dmFsdWVQcm9wTmFtZToiY2hlY2tlZCIsaWdub3JlV2lkdGg6ITB9KSxwPUY7cC5Hcm91cD1QLHAuQnV0dG9uPWYuWlAuQnV0dG9uLHAuZGlzcGxheU5hbWU9IlByb0Zvcm1Db21wb25lbnQiLE8uWj1wfSw2NDMxNzpmdW5jdGlvbihVLE8sbil7dmFyIHM9bigxNDEzKSxfPW4oOTEpLGI9bigyMjI3MCksZj1uKDY3Mjk0KSxqPW4oNjY3NTgpLE09big5MjE3OSksUj1uKDg1ODkzKSxtPVsiZmllbGRQcm9wcyIsImNoaWxkcmVuIiwicGFyYW1zIiwicHJvRmllbGRQcm9wcyIsIm1vZGUiLCJ2YWx1ZUVudW0iLCJyZXF1ZXN0Iiwic2hvd1NlYXJjaCIsIm9wdGlvbnMiXSx0PVsiZmllbGRQcm9wcyIsImNoaWxkcmVuIiwicGFyYW1zIiwicHJvRmllbGRQcm9wcyIsIm1vZGUiLCJ2YWx1ZUVudW0iLCJyZXF1ZXN0Iiwib3B0aW9ucyJdLFA9ZnVuY3Rpb24obyxkKXt2YXIgQz1vLmZpZWxkUHJvcHMscj1vLmNoaWxkcmVuLGU9by5wYXJhbXMsaD1vLnByb0ZpZWxkUHJvcHMsRD1vLm1vZGUsYT1vLnZhbHVlRW51bSx4PW8ucmVxdWVzdCxCPW8uc2hvd1NlYXJjaCx2PW8ub3B0aW9ucyxBPSgwLF8uWikobyxtKSxaPSgwLGYudXNlQ29udGV4dCkoai5aKTtyZXR1cm4oMCxSLmpzeCkoTS5aLCgwLHMuWikoKDAscy5aKSh7dmFsdWVFbnVtOigwLGIuaCkoYSkscmVxdWVzdDp4LHBhcmFtczplLHZhbHVlVHlwZToic2VsZWN0IixmaWxlZENvbmZpZzp7Y3VzdG9tTGlnaHRNb2RlOiEwfSxmaWVsZFByb3BzOigwLHMuWikoe29wdGlvbnM6dixtb2RlOkQsc2hvd1NlYXJjaDpCLGdldFBvcHVwQ29udGFpbmVyOlouZ2V0UG9wdXBDb250YWluZXJ9LEMpLHJlZjpkLHByb0ZpZWxkUHJvcHM6aH0sQSkse30se2NoaWxkcmVuOnJ9KSl9LFc9Zi5mb3J3YXJkUmVmKGZ1bmN0aW9uKGwsbyl7dmFyIGQ9bC5maWVsZFByb3BzLEM9bC5jaGlsZHJlbixyPWwucGFyYW1zLGU9bC5wcm9GaWVsZFByb3BzLGg9bC5tb2RlLEQ9bC52YWx1ZUVudW0sYT1sLnJlcXVlc3QseD1sLm9wdGlvbnMsQj0oMCxfLlopKGwsdCksdj0oMCxzLlopKHtvcHRpb25zOngsbW9kZTpofHwibXVsdGlwbGUiLGxhYmVsSW5WYWx1ZTohMCxzaG93U2VhcmNoOiEwLHN1ZmZpeEljb246bnVsbCxhdXRvQ2xlYXJTZWFyY2hWYWx1ZTohMCxvcHRpb25MYWJlbFByb3A6ImxhYmVsIn0sZCksQT0oMCxmLnVzZUNvbnRleHQpKGouWik7cmV0dXJuKDAsUi5qc3gpKE0uWiwoMCxzLlopKCgwLHMuWikoe3ZhbHVlRW51bTooMCxiLmgpKEQpLHJlcXVlc3Q6YSxwYXJhbXM6cix2YWx1ZVR5cGU6InNlbGVjdCIsZmlsZWRDb25maWc6e2N1c3RvbUxpZ2h0TW9kZTohMH0sZmllbGRQcm9wczooMCxzLlopKHtnZXRQb3B1cENvbnRhaW5lcjpBLmdldFBvcHVwQ29udGFpbmVyfSx2KSxyZWY6byxwcm9GaWVsZFByb3BzOmV9LEIpLHt9LHtjaGlsZHJlbjpDfSkpfSksRj1mLmZvcndhcmRSZWYoUCkscD1XLHU9Rjt1LlNlYXJjaFNlbGVjdD1wLHUuZGlzcGxheU5hbWU9IlByb0Zvcm1Db21wb25lbnQiLE8uWj11fSw1OTY2OmZ1bmN0aW9uKFUsTyxuKXt2YXIgcz1uKDk3Njg1KSxfPW4oMTQxMyksYj1uKDkxKSxmPW4oMjE3NzApLGo9big5OTg1OSksTT1uKDU1MjQxKSxSPW4oOTg0MjMpLG09big2NzI5NCksdD1uKDkyMTc5KSxQPW4oODU4OTMpLFc9WyJmaWVsZFByb3BzIiwicHJvRmllbGRQcm9wcyJdLEY9WyJmaWVsZFByb3BzIiwicHJvRmllbGRQcm9wcyJdLHA9InRleHQiLHU9ZnVuY3Rpb24ocil7dmFyIGU9ci5maWVsZFByb3BzLGg9ci5wcm9GaWVsZFByb3BzLEQ9KDAsYi5aKShyLFcpO3JldHVybigwLFAuanN4KSh0LlosKDAsXy5aKSh7dmFsdWVUeXBlOnAsZmllbGRQcm9wczplLGZpbGVkQ29uZmlnOnt2YWx1ZVR5cGU6cH0scHJvRmllbGRQcm9wczpofSxEKSl9LGw9ZnVuY3Rpb24ocil7dmFyIGU9KDAsZi5aKShyLm9wZW58fCExLHt2YWx1ZTpyLm9wZW4sb25DaGFuZ2U6ci5vbk9wZW5DaGFuZ2V9KSxoPSgwLHMuWikoZSwyKSxEPWhbMF0sYT1oWzFdO3JldHVybigwLFAuanN4KShqLlouSXRlbSx7c2hvdWxkVXBkYXRlOiEwLG5vU3R5bGU6ITAsY2hpbGRyZW46ZnVuY3Rpb24oQil7dmFyIHYsQT1CLmdldEZpZWxkVmFsdWUoci5uYW1lfHxbXSk7cmV0dXJuKDAsUC5qc3gpKE0uWiwoMCxfLlopKCgwLF8uWikoe2dldFBvcHVwQ29udGFpbmVyOmZ1bmN0aW9uKGMpe3JldHVybiBjJiZjLnBhcmVudE5vZGU/Yy5wYXJlbnROb2RlOmN9LG9uT3BlbkNoYW5nZTpmdW5jdGlvbihjKXtyZXR1cm4gYShjKX0sY29udGVudDooMCxQLmpzeHMpKCJkaXYiLHtzdHlsZTp7cGFkZGluZzoiNHB4IDAifSxjaGlsZHJlbjpbKHY9ci5zdGF0dXNSZW5kZXIpPT09bnVsbHx8dj09PXZvaWQgMD92b2lkIDA6di5jYWxsKHIsQSksci5zdHJlbmd0aFRleHQ/KDAsUC5qc3gpKCJkaXYiLHtzdHlsZTp7bWFyZ2luVG9wOjEwfSxjaGlsZHJlbjooMCxQLmpzeCkoInNwYW4iLHtjaGlsZHJlbjpyLnN0cmVuZ3RoVGV4dH0pfSk6bnVsbF19KSxvdmVybGF5U3R5bGU6e3dpZHRoOjI0MH0scGxhY2VtZW50OiJyaWdodFRvcCJ9LHIucG9wb3ZlclByb3BzKSx7fSx7b3BlbjpELGNoaWxkcmVuOnIuY2hpbGRyZW59KSl9fSl9LG89ZnVuY3Rpb24ocil7dmFyIGU9ci5maWVsZFByb3BzLGg9ci5wcm9GaWVsZFByb3BzLEQ9KDAsYi5aKShyLEYpLGE9KDAsbS51c2VTdGF0ZSkoITEpLHg9KDAscy5aKShhLDIpLEI9eFswXSx2PXhbMV07cmV0dXJuIGUhPW51bGwmJmUuc3RhdHVzUmVuZGVyJiZELm5hbWU/KDAsUC5qc3gpKGwse25hbWU6RC5uYW1lLHN0YXR1c1JlbmRlcjplPT1udWxsP3ZvaWQgMDplLnN0YXR1c1JlbmRlcixwb3BvdmVyUHJvcHM6ZT09bnVsbD92b2lkIDA6ZS5wb3BvdmVyUHJvcHMsc3RyZW5ndGhUZXh0OmU9PW51bGw/dm9pZCAwOmUuc3RyZW5ndGhUZXh0LG9wZW46Qixvbk9wZW5DaGFuZ2U6dixjaGlsZHJlbjooMCxQLmpzeCkoImRpdiIse2NoaWxkcmVuOigwLFAuanN4KSh0LlosKDAsXy5aKSh7dmFsdWVUeXBlOiJwYXNzd29yZCIsZmllbGRQcm9wczooMCxfLlopKCgwLF8uWikoe30sKDAsUi5aKShlLFsic3RhdHVzUmVuZGVyIiwicG9wb3ZlclByb3BzIiwic3RyZW5ndGhUZXh0Il0pKSx7fSx7b25CbHVyOmZ1bmN0aW9uKFope3ZhciBjO2U9PW51bGx8fChjPWUub25CbHVyKT09PW51bGx8fGM9PT12b2lkIDB8fGMuY2FsbChlLFopLHYoITEpfSxvbkNsaWNrOmZ1bmN0aW9uKFope3ZhciBjO2U9PW51bGx8fChjPWUub25DbGljayk9PT1udWxsfHxjPT09dm9pZCAwfHxjLmNhbGwoZSxaKSx2KCEwKX19KSxwcm9GaWVsZFByb3BzOmgsZmlsZWRDb25maWc6e3ZhbHVlVHlwZTpwfX0sRCkpfSl9KTooMCxQLmpzeCkodC5aLCgwLF8uWikoe3ZhbHVlVHlwZToicGFzc3dvcmQiLGZpZWxkUHJvcHM6ZSxwcm9GaWVsZFByb3BzOmgsZmlsZWRDb25maWc6e3ZhbHVlVHlwZTpwfX0sRCkpfSxkPXU7ZC5QYXNzd29yZD1vLGQuZGlzcGxheU5hbWU9IlByb0Zvcm1Db21wb25lbnQiLE8uWj1kfSw2MjA1NzpmdW5jdGlvbihVLE8sbil7bi5yKE8pO3ZhciBzPW4oMTUwMDkpLF89bi5uKHMpLGI9big5OTI4OSksZj1uLm4oYiksaj1uKDU1NzQpLE09bi5uKGopLFI9big5OTg1OSksbT1uKDcxMjMwKSx0PW4oMTU3NDYpLFA9big1OTg0NyksVz1uKDk2MDc0KSxGPW4oODM2MjIpLHA9big2NzI5NCksdT1uKDc2NzcyKSxsPW4oMTkwMzUpLG89big5NzI2OSksZD1uKDY0MzE3KSxDPW4oNTk2Nikscj1uKDg2NjE1KSxlPW4oODU4OTMpLGg9ZnVuY3Rpb24oYSl7dmFyIHg9Ui5aLnVzZUZvcm0oKSxCPU0oKSh4LDEpLHY9QlswXSxBPSgwLHAudXNlU3RhdGUpKCIwIiksWj1NKCkoQSwyKSxjPVpbMF0sRz1aWzFdLFg9KDAscC51c2VTdGF0ZSkoImN1cmQiKSwkPU0oKShYLDIpLEk9JFswXSxIPSRbMV0sWT0oMCxwLnVzZVN0YXRlKSgpLFY9TSgpKFksMiksaz1WWzBdLHc9VlsxXSxxPWEubWVudURhdGEsVD1hLnRhYmxlSW5mbyx6PWEub25TdGVwU3VibWl0LGVlPVQ9PW51bGw/dm9pZCAwOlQubWFwKGZ1bmN0aW9uKGkpe3JldHVybnt2YWx1ZTppLnRhYmxlTmFtZSxsYWJlbDoiIi5jb25jYXQoaS50YWJsZU5hbWUsIlx1RkYxQSIpLmNvbmNhdChpLnRhYmxlQ29tbWVudCl9fSk7aWYoVClmb3IodmFyIG5lPWZ1bmN0aW9uKCl7dmFyIGc9VFtLXTtpZihnLnRhYmxlTmFtZT09PWEudmFsdWVzLnN1YlRhYmxlTmFtZSl7dmFyIEw9W107cmV0dXJuIGcuY29sdW1ucy5mb3JFYWNoKGZ1bmN0aW9uKEUpe0wucHVzaCh7dmFsdWU6RS5jb2x1bW5OYW1lLGxhYmVsOiIiLmNvbmNhdChFLmNvbHVtbk5hbWUsIjogIikuY29uY2F0KEUuY29sdW1uQ29tbWVudCl9KX0pLDF9fSxLPTA7SzwoVD09bnVsbD92b2lkIDA6VC5sZW5ndGgpJiYhbmUoKTtLKz0xKTt2YXIgUz1hLnZhbHVlcy5jb2x1bW5zLm1hcChmdW5jdGlvbihpKXtyZXR1cm57dmFsdWU6aS5jb2x1bW5OYW1lLGxhYmVsOiIiLmNvbmNhdChpLmNvbHVtbk5hbWUsIjogIikuY29uY2F0KGkuY29sdW1uQ29tbWVudCl9fSksSj1mdW5jdGlvbigpe3ZhciBpPWYoKShfKCkoKS5tYXJrKGZ1bmN0aW9uIGcoTCl7dmFyIEU7cmV0dXJuIF8oKSgpLndyYXAoZnVuY3Rpb24oeSl7Zm9yKDs7KXN3aXRjaCh5LnByZXY9eS5uZXh0KXtjYXNlIDA6cmV0dXJuIHkubmV4dD0yLHYudmFsaWRhdGVGaWVsZHMoKTtjYXNlIDI6RT15LnNlbnQseigiZ2VuIixFLEwpO2Nhc2UgNDpjYXNlImVuZCI6cmV0dXJuIHkuc3RvcCgpfX0sZyl9KSk7cmV0dXJuIGZ1bmN0aW9uKEwpe3JldHVybiBpLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCk7cmV0dXJuKDAscC51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7RyhhLnZhbHVlcy5nZW5UeXBlKSxIKGEudmFsdWVzLnRwbENhdGVnb3J5KX0sW2EudmFsdWVzLmdlblR5cGUsYS52YWx1ZXMudHBsQ2F0ZWdvcnldKSwoMCxlLmpzeHMpKHAuRnJhZ21lbnQse2NoaWxkcmVuOlsoMCxlLmpzeCkobS5aLHtjaGlsZHJlbjooMCxlLmpzeCkodC5aLHtzcGFuOjI0LGNoaWxkcmVuOigwLGUuanN4cykoby5BLHtmb3JtOnYsb25GaW5pc2g6ZigpKF8oKSgpLm1hcmsoZnVuY3Rpb24gaSgpe3ZhciBnO3JldHVybiBfKCkoKS53cmFwKGZ1bmN0aW9uKEUpe2Zvcig7Oylzd2l0Y2goRS5wcmV2PUUubmV4dCl7Y2FzZSAwOnJldHVybiBFLm5leHQ9Mix2LnZhbGlkYXRlRmllbGRzKCk7Y2FzZSAyOmc9RS5zZW50LHooImdlbiIsZyk7Y2FzZSA0OmNhc2UiZW5kIjpyZXR1cm4gRS5zdG9wKCl9fSxpKX0pKSxpbml0aWFsVmFsdWVzOntjdXJkOmEudmFsdWVzLmN1cmQsdHJlZTphLnZhbHVlcy50cmVlLHN1YjphLnZhbHVlcy5zdWIsdHBsQ2F0ZWdvcnk6YS52YWx1ZXMudHBsQ2F0ZWdvcnkscGFja2FnZU5hbWU6YS52YWx1ZXMucGFja2FnZU5hbWUsbW9kdWxlTmFtZTphLnZhbHVlcy5tb2R1bGVOYW1lLGJ1c2luZXNzTmFtZTphLnZhbHVlcy5idXNpbmVzc05hbWUsZnVuY3Rpb25OYW1lOmEudmFsdWVzLmZ1bmN0aW9uTmFtZSxwYXJlbnRNZW51SWQ6YS52YWx1ZXMucGFyZW50TWVudUlkLGdlblR5cGU6YS52YWx1ZXMuZ2VuVHlwZSxnZW5QYXRoOmEudmFsdWVzLmdlblBhdGgsdHJlZUNvZGU6YS52YWx1ZXMudHJlZUNvZGUsdHJlZVBhcmVudENvZGU6YS52YWx1ZXMudHJlZVBhcmVudENvZGUsdHJlZU5hbWU6YS52YWx1ZXMudHJlZU5hbWUsc3ViVGFibGVOYW1lOmEudmFsdWVzLnN1YlRhYmxlTmFtZSxzdWJUYWJsZUZrTmFtZTphLnZhbHVlcy5zdWJUYWJsZUZrTmFtZX0sc3VibWl0dGVyOntyZXNldEJ1dHRvblByb3BzOntzdHlsZTp7ZGlzcGxheToibm9uZSJ9fSxzdWJtaXRCdXR0b25Qcm9wczp7c3R5bGU6e2Rpc3BsYXk6Im5vbmUifX19LGNoaWxkcmVuOlsoMCxlLmpzeHMpKG0uWix7Z3V0dGVyOlsxNiwxNl0sY2hpbGRyZW46WygwLGUuanN4KSh0Llose3NwYW46MTIsb3JkZXI6MSxjaGlsZHJlbjooMCxlLmpzeCkoZC5aLHtmaWVsZFByb3BzOntvbkNoYW5nZTpmdW5jdGlvbihnKXtIKGcpfX0sdmFsdWVFbnVtOntjcnVkOiJcdTUzNTVcdTg4NjhcdUZGMDhcdTU4OUVcdTUyMjBcdTY1MzlcdTY3RTVcdUZGMDkiLHRyZWU6Ilx1NjgxMVx1ODg2OFx1RkYwOFx1NTg5RVx1NTIyMFx1NjUzOVx1NjdFNVx1RkYwOSIsc3ViOiJcdTRFM0JcdTVCNTBcdTg4NjhcdUZGMDhcdTU4OUVcdTUyMjBcdTY1MzlcdTY3RTVcdUZGMDkifSxuYW1lOiJ0cGxDYXRlZ29yeSIsbGFiZWw6Ilx1NzUxRlx1NjIxMFx1NkEyMVx1Njc3RiIscnVsZXM6W3tyZXF1aXJlZDohMCxtZXNzYWdlOiJcdTkwMDlcdTYyRTlcdTdDN0JcdTU3OEIifV19KX0pLCgwLGUuanN4KSh0Llose3NwYW46MTIsb3JkZXI6MixjaGlsZHJlbjooMCxlLmpzeCkoQy5aLHtuYW1lOiJwYWNrYWdlTmFtZSIsbGFiZWw6Ilx1NzUxRlx1NjIxMFx1NTMwNVx1OERFRlx1NUY4NCJ9KX0pXX0pLCgwLGUuanN4cykobS5aLHtndXR0ZXI6WzE2LDE2XSxjaGlsZHJlbjpbKDAsZS5qc3gpKHQuWix7c3BhbjoxMixvcmRlcjoxLGNoaWxkcmVuOigwLGUuanN4KShDLlose25hbWU6Im1vZHVsZU5hbWUiLGxhYmVsOiJcdTc1MUZcdTYyMTBcdTZBMjFcdTU3NTdcdTU0MEQifSl9KSwoMCxlLmpzeCkodC5aLHtzcGFuOjEyLG9yZGVyOjIsY2hpbGRyZW46KDAsZS5qc3gpKEMuWix7bmFtZToiYnVzaW5lc3NOYW1lIixsYWJlbDoiXHU3NTFGXHU2MjEwXHU0RTFBXHU1MkExXHU1NDBEIn0pfSldfSksKDAsZS5qc3hzKShtLlose2d1dHRlcjpbMTYsMTZdLGNoaWxkcmVuOlsoMCxlLmpzeCkodC5aLHtzcGFuOjEyLG9yZGVyOjEsY2hpbGRyZW46KDAsZS5qc3gpKEMuWix7bmFtZToiZnVuY3Rpb25OYW1lIixsYWJlbDoiXHU3NTFGXHU2MjEwXHU1MjlGXHU4MEZEXHU1NDBEIn0pfSksKDAsZS5qc3gpKHQuWix7c3BhbjoxMixvcmRlcjoyLGNoaWxkcmVuOigwLGUuanN4KShvLkEuSXRlbSx7bGFiZWxDb2w6e3NwYW46MjB9LG5hbWU6InBhcmVudE1lbnVJZCIsbGFiZWw6Ilx1NzIzNlx1ODNEQ1x1NTM1NSIsY2hpbGRyZW46KDAsZS5qc3gpKFAuWix7c3R5bGU6e3dpZHRoOiI3NCUifSxkZWZhdWx0VmFsdWU6YS52YWx1ZXMucGFyZW50TWVudUlkLHRyZWVEYXRhOnEscGxhY2Vob2xkZXI6Ilx1OEJGN1x1OTAwOVx1NjJFOVx1NzIzNlx1ODNEQ1x1NTM1NSJ9KX0pfSldfSksKDAsZS5qc3gpKG0uWix7Z3V0dGVyOlsxNiwxNl0sY2hpbGRyZW46KDAsZS5qc3gpKHQuWix7c3BhbjoyNCxjaGlsZHJlbjooMCxlLmpzeCkoci5aLkdyb3VwLHt2YWx1ZUVudW06ezA6InppcFx1NTM4Qlx1N0YyOVx1NTMwNSIsMToiXHU4MUVBXHU1QjlBXHU0RTQ5XHU4REVGXHU1Rjg0In0sbmFtZToiZ2VuVHlwZSIsbGFiZWw6Ilx1NzUxRlx1NjIxMFx1NEVFM1x1NzgwMVx1NjVCOVx1NUYwRiIscnVsZXM6W3tyZXF1aXJlZDohMCxtZXNzYWdlOiJcdTkwMDlcdTYyRTlcdTdDN0JcdTU3OEIifV0sZmllbGRQcm9wczp7b25DaGFuZ2U6ZnVuY3Rpb24oZyl7RyhnLnRhcmdldC52YWx1ZSl9fX0pfSl9KSwoMCxlLmpzeCkobS5aLHtndXR0ZXI6WzE2LDE2XSxjaGlsZHJlbjooMCxlLmpzeCkodC5aLHtzcGFuOjI0LG9yZGVyOjEsY2hpbGRyZW46KDAsZS5qc3gpKEMuWix7aGlkZGVuOmM9PT0iMCIsd2lkdGg6Im1kIixuYW1lOiJnZW5QYXRoIixsYWJlbDoiXHU4MUVBXHU1QjlBXHU0RTQ5XHU4REVGXHU1Rjg0In0pfSl9KSwoMCxlLmpzeHMpKCJkaXYiLHtoaWRkZW46SSE9PSJ0cmVlIixjaGlsZHJlbjpbKDAsZS5qc3gpKFcuWix7b3JpZW50YXRpb246ImxlZnQiLGNoaWxkcmVuOiJcdTUxNzZcdTRFRDZcdTRGRTFcdTYwNkYifSksKDAsZS5qc3hzKShtLlose2d1dHRlcjpbMTYsMTZdLGNoaWxkcmVuOlsoMCxlLmpzeCkodC5aLHtzcGFuOjEyLG9yZGVyOjEsY2hpbGRyZW46KDAsZS5qc3gpKGQuWix7bmFtZToidHJlZUNvZGUiLGxhYmVsOiJcdTY4MTFcdTdGMTZcdTc4MDFcdTVCNTdcdTZCQjUiLG9wdGlvbnM6UyxydWxlczpbe3JlcXVpcmVkOkk9PT0idHJlZSIsbWVzc2FnZToiXHU2ODExXHU3RjE2XHU3ODAxXHU1QjU3XHU2QkI1In1dfSl9KSwoMCxlLmpzeCkodC5aLHtzcGFuOjEyLG9yZGVyOjIsY2hpbGRyZW46KDAsZS5qc3gpKGQuWix7bmFtZToidHJlZVBhcmVudENvZGUiLGxhYmVsOiJcdTY4MTFcdTcyMzZcdTdGMTZcdTc4MDFcdTVCNTdcdTZCQjUiLG9wdGlvbnM6UyxydWxlczpbe3JlcXVpcmVkOkk9PT0idHJlZSIsbWVzc2FnZToiXHU2ODExXHU3MjM2XHU3RjE2XHU3ODAxXHU1QjU3XHU2QkI1In1dfSl9KV19KSwoMCxlLmpzeCkobS5aLHtndXR0ZXI6WzE2LDE2XSxjaGlsZHJlbjooMCxlLmpzeCkodC5aLHtzcGFuOjEyLG9yZGVyOjEsY2hpbGRyZW46KDAsZS5qc3gpKGQuWix7bmFtZToidHJlZU5hbWUiLGxhYmVsOiJcdTY4MTFcdTU0MERcdTc5RjBcdTVCNTdcdTZCQjUiLG9wdGlvbnM6UyxydWxlczpbe3JlcXVpcmVkOkk9PT0idHJlZSIsbWVzc2FnZToiXHU2ODExXHU1NDBEXHU3OUYwXHU1QjU3XHU2QkI1In1dfSl9KX0pXX0pLCgwLGUuanN4cykoImRpdiIse2hpZGRlbjpJIT09InN1YiIsY2hpbGRyZW46WygwLGUuanN4KShXLlose29yaWVudGF0aW9uOiJsZWZ0IixjaGlsZHJlbjoiXHU1MTczXHU4MDU0XHU0RkUxXHU2MDZGIn0pLCgwLGUuanN4cykobS5aLHtndXR0ZXI6WzE2LDE2XSxjaGlsZHJlbjpbKDAsZS5qc3gpKHQuWix7c3BhbjoxMixvcmRlcjoxLGNoaWxkcmVuOigwLGUuanN4KShkLlose25hbWU6InN1YlRhYmxlTmFtZSIsbGFiZWw6Ilx1NTE3M1x1ODA1NFx1NUI1MFx1ODg2OFx1NzY4NFx1ODg2OFx1NTQwRCIsb3B0aW9uczplZSxydWxlczpbe3JlcXVpcmVkOkk9PT0ic3ViIixtZXNzYWdlOiJcdTUxNzNcdTgwNTRcdTVCNTBcdTg4NjhcdTc2ODRcdTg4NjhcdTU0MEQifV0sZmllbGRQcm9wczp7b25DaGFuZ2U6ZnVuY3Rpb24oZyl7aWYodi5zZXRGaWVsZHNWYWx1ZSh7c3ViVGFibGVGa05hbWU6IiJ9KSxUKWZvcih2YXIgTD1mdW5jdGlvbigpe3ZhciB5PVRbRV07aWYoeS50YWJsZU5hbWU9PT1nKXt2YXIgUT1bXTtyZXR1cm4geS5jb2x1bW5zLmZvckVhY2goZnVuY3Rpb24oTil7US5wdXNoKHt2YWx1ZTpOLmNvbHVtbk5hbWUsbGFiZWw6IiIuY29uY2F0KE4uY29sdW1uTmFtZSwiXHVGRjFBIikuY29uY2F0KE4uY29sdW1uQ29tbWVudCl9KX0pLHcoUSksMX19LEU9MDtFPChUPT1udWxsP3ZvaWQgMDpULmxlbmd0aCkmJiFMKCk7RSs9MSk7fX19KX0pLCgwLGUuanN4KSh0Llose3NwYW46MTIsb3JkZXI6MixjaGlsZHJlbjooMCxlLmpzeCkoZC5aLHtuYW1lOiJzdWJUYWJsZUZrTmFtZSIsb3B0aW9uczprLGxhYmVsOiJcdTVCNTBcdTg4NjhcdTUxNzNcdTgwNTRcdTc2ODRcdTU5MTZcdTk1MkVcdTU0MEQiLHJ1bGVzOlt7cmVxdWlyZWQ6ST09PSJzdWIiLG1lc3NhZ2U6Ilx1NUI1MFx1ODg2OFx1NTE3M1x1ODA1NFx1NzY4NFx1NTkxNlx1OTUyRVx1NTQwRCJ9XX0pfSldfSldfSldfSl9KX0pLCgwLGUuanN4cykobS5aLHtqdXN0aWZ5OiJjZW50ZXIiLGNoaWxkcmVuOlsoMCxlLmpzeCkodC5aLHtzcGFuOjQsY2hpbGRyZW46KDAsZS5qc3gpKEYuWlAse3R5cGU6InByaW1hcnkiLG9uQ2xpY2s6ZnVuY3Rpb24oKXt1Lmhpc3RvcnkuYmFjaygpfSxjaGlsZHJlbjoiXHU4RkQ0XHU1NkRFIn0pfSksKDAsZS5qc3gpKHQuWix7c3Bhbjo0LGNoaWxkcmVuOigwLGUuanN4KShGLlpQLHt0eXBlOiJwcmltYXJ5IixjbGFzc05hbWU6bC5aLnN0ZXBfYnV0dG9ucyxvbkNsaWNrOmZ1bmN0aW9uKCl7SigicHJldiIpfSxjaGlsZHJlbjoiXHU0RTBBXHU0RTAwXHU2QjY1In0pfSksKDAsZS5qc3gpKHQuWix7c3Bhbjo0LGNoaWxkcmVuOigwLGUuanN4KShGLlpQLHt0eXBlOiJwcmltYXJ5IixvbkNsaWNrOmZ1bmN0aW9uKCl7SigibmV4dCIpfSxjaGlsZHJlbjoiXHU2M0QwXHU0RUE0In0pfSldfSldfSl9O08uZGVmYXVsdD1ofSwxOTAzNTpmdW5jdGlvbihVLE8pe08uWj17c3RlcHM6InN0ZXBzX19fX3N0WkQifX19XSk7CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzIwNjMuYTE4ZGZlYzkuYXN5bmMuanMgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzIwNjMuYTE4ZGZlYzkuYXN5bmMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODJlZmU5YgotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvMjA2My5hMThkZmVjOS5hc3luYy5qcwpAQCAtMCwwICsxIEBACisidXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W10pLnB1c2goW1syMDYzXSx7NTIwNjM6ZnVuY3Rpb24ocGUsSSxuKXtuLnIoSSk7dmFyIGc9bigxNTAwOSksaj1uLm4oZyksVT1uKDk5Mjg5KSxLPW4ubihVKSxWPW4oNTU3NCksQz1uLm4oViksRT1uKDY3Mjk0KSxrPW4oNjA5NjApLEo9bigyNTI3OCksTz1uKDI0NTMpLHJlPW4oNjYzMDkpLFg9big3ODk1NyksUz1uKDgzNjIyKSxOPW4oNDM5Myksc2U9big5NjE1NCksUj1uKDE3Nzg4KSx6PW4oOTk2MTEpLEg9big2MzYwNiksUT1uKDk3OTM3KSxvZT1uKDc2NjIpLGFlPW4oMjcxODUpLHQ9big4NTg5MyksaGU9ay5aLlRpdGxlLGxlPWsuWi5QYXJhZ3JhcGgsaWU9Si5aLlRleHRBcmVhLCQ9ZnVuY3Rpb24oKXt2YXIgY2U9KDAsRS51c2VTdGF0ZSkoW10pLHVlPUMoKShjZSwyKSxHPXVlWzBdLGRlPXVlWzFdLGU9KDAsRS51c2VTdGF0ZSkoITEpLG89QygpKGUsMiksaT1vWzBdLHI9b1sxXSxzPSgwLEUudXNlU3RhdGUpKCExKSx2PUMoKShzLDIpLG09dlswXSxmPXZbMV0sYj0oMCxFLnVzZVN0YXRlKSghMSksQT1DKCkoYiwyKSxUPUFbMF0seD1BWzFdLFA9KDAsRS51c2VTdGF0ZSkobnVsbCksRj1DKCkoUCwyKSx1PUZbMF0saD1GWzFdLHc9KDAsRS51c2VTdGF0ZSkobnVsbCksQj1DKCkodywyKSxEPUJbMF0sVz1CWzFdLFk9KDAsRS51c2VTdGF0ZSkoIiIpLFo9QygpKFksMikscT1aWzBdLHA9WlsxXTsoMCxFLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtlZSgpfSxbXSk7dmFyIGVlPWZ1bmN0aW9uKCl7dmFyIGQ9SygpKGooKSgpLm1hcmsoZnVuY3Rpb24gbCgpe3ZhciBjO3JldHVybiBqKCkoKS53cmFwKGZ1bmN0aW9uKGEpe2Zvcig7Oylzd2l0Y2goYS5wcmV2PWEubmV4dCl7Y2FzZSAwOnJldHVybiByKCEwKSxhLnByZXY9MSxhLm5leHQ9NCwoMCxvZS5OUikoe3BhZ2VOdW06MSxwYWdlU2l6ZToxMDB9KTtjYXNlIDQ6Yz1hLnNlbnQsYy5jb2RlPT09MjAwP2RlKGMucm93c3x8W10pOk8uWlAuZXJyb3IoYy5tc2d8fCJcdTgzQjdcdTUzRDZcdTRFM0VcdTYyQTVcdTUyMTdcdTg4NjhcdTU5MzFcdThEMjUiKSxhLm5leHQ9MTE7YnJlYWs7Y2FzZSA4OmEucHJldj04LGEudDA9YS5jYXRjaCgxKSxPLlpQLmVycm9yKCJcdTgzQjdcdTUzRDZcdTRFM0VcdTYyQTVcdTUyMTdcdTg4NjhcdTU5MzFcdThEMjUiKTtjYXNlIDExOnJldHVybiBhLnByZXY9MTEscighMSksYS5maW5pc2goMTEpO2Nhc2UgMTQ6Y2FzZSJlbmQiOnJldHVybiBhLnN0b3AoKX19LGwsbnVsbCxbWzEsOCwxMSwxNF1dKX0pKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLEw9ZnVuY3Rpb24oKXt2YXIgZD1LKCkoaigpKCkubWFyayhmdW5jdGlvbiBsKGMsXyl7cmV0dXJuIGooKSgpLndyYXAoZnVuY3Rpb24oeSl7Zm9yKDs7KXN3aXRjaCh5LnByZXY9eS5uZXh0KXtjYXNlIDA6aChjKSxXKF8pLHAoIiIpLHgoITApO2Nhc2UgNDpjYXNlImVuZCI6cmV0dXJuIHkuc3RvcCgpfX0sbCl9KSk7cmV0dXJuIGZ1bmN0aW9uKGMsXyl7cmV0dXJuIGQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSxnZT1mdW5jdGlvbigpe3ZhciBkPUsoKShqKCkoKS5tYXJrKGZ1bmN0aW9uIGwoKXt2YXIgYztyZXR1cm4gaigpKCkud3JhcChmdW5jdGlvbihhKXtmb3IoOzspc3dpdGNoKGEucHJldj1hLm5leHQpe2Nhc2UgMDppZighKCF1fHwhRCkpe2EubmV4dD0yO2JyZWFrfXJldHVybiBhLmFicnVwdCgicmV0dXJuIik7Y2FzZSAyOnJldHVybiBhLnByZXY9MixhLm5leHQ9NSwoMCxvZS5EZCkodS5yZXBvcnRJZCxELHUucG9zdElkLHEpO2Nhc2UgNTpjPWEuc2VudCxjLmNvZGU9PT0yMDA/KE8uWlAuc3VjY2VzcyhEPT09ImFwcHJvdmUiPyJcdTRFM0VcdTYyQTVcdTU5MDRcdTc0MDZcdTYyMTBcdTUyOUZcdUZGMENcdTVFMTZcdTVCNTBcdTVERjJcdTRFMEJcdTY3QjYiOiJcdTRFM0VcdTYyQTVcdTVERjJcdTlBNzNcdTU2REUiKSxlZSgpKTpPLlpQLmVycm9yKGMubXNnfHwiXHU1OTA0XHU3NDA2XHU1OTMxXHU4RDI1IiksYS5uZXh0PTEyO2JyZWFrO2Nhc2UgOTphLnByZXY9OSxhLnQwPWEuY2F0Y2goMiksTy5aUC5lcnJvcigiXHU1OTA0XHU3NDA2XHU1OTMxXHU4RDI1Iik7Y2FzZSAxMjp4KCExKSxoKG51bGwpLFcobnVsbCkscCgiIik7Y2FzZSAxNjpjYXNlImVuZCI6cmV0dXJuIGEuc3RvcCgpfX0sbCxudWxsLFtbMiw5XV0pfSkpO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBkLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksdGU9ZnVuY3Rpb24obCl7aChsKSxmKCEwKX0sbmU9W3t0aXRsZToiXHU0RTNFXHU2MkE1XHU1RTE2XHU1QjUwIixkYXRhSW5kZXg6InBvc3RUaXRsZSIsa2V5OiJwb3N0VGl0bGUiLHdpZHRoOjE4MCxyZW5kZXI6ZnVuY3Rpb24obCxjKXtyZXR1cm4oMCx0LmpzeCkoImEiLHtvbkNsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIHRlKGMpfSxzdHlsZTp7Y29sb3I6IiMxODkwZmYifSxjaGlsZHJlbjpsfSl9fSx7dGl0bGU6Ilx1NEUzRVx1NjJBNVx1NEVCQSIsZGF0YUluZGV4OiJyZXBvcnRVc2VyTmFtZSIsa2V5OiJyZXBvcnRVc2VyTmFtZSIsd2lkdGg6MTAwfSx7dGl0bGU6Ilx1NEUzRVx1NjJBNVx1NjVGNlx1OTVGNCIsZGF0YUluZGV4OiJjcmVhdGVUaW1lIixrZXk6ImNyZWF0ZVRpbWUiLHdpZHRoOjE0MH0se3RpdGxlOiJcdTRFM0VcdTYyQTVcdTc0MDZcdTc1MzEiLGRhdGFJbmRleDoicmVwb3J0UmVhc29uIixrZXk6InJlcG9ydFJlYXNvbiIsd2lkdGg6MTUwLGVsbGlwc2lzOiEwLHJlbmRlcjpmdW5jdGlvbihsKXtyZXR1cm4oMCx0LmpzeCkoInNwYW4iLHt0aXRsZTpsLGNoaWxkcmVuOmx9KX19LHt0aXRsZToiXHU3MkI2XHU2MDAxIixkYXRhSW5kZXg6InN0YXR1cyIsa2V5OiJzdGF0dXMiLHdpZHRoOjgwLHJlbmRlcjpmdW5jdGlvbihsKXt2YXIgYz17MDp7Y29sb3I6Im9yYW5nZSIsdGV4dDoiXHU1Rjg1XHU1OTA0XHU3NDA2In0sMTp7Y29sb3I6ImdyZWVuIix0ZXh0OiJcdTVERjJcdTU5MDRcdTc0MDYifSwyOntjb2xvcjoicmVkIix0ZXh0OiJcdTVERjJcdTlBNzNcdTU2REUifX0sXz1jW2xdfHx7Y29sb3I6ImdyYXkiLHRleHQ6Ilx1NjcyQVx1NzdFNSJ9O3JldHVybigwLHQuanN4KShyZS5aLHtjb2xvcjpfLmNvbG9yLGNoaWxkcmVuOl8udGV4dH0pfX0se3RpdGxlOiJcdTY0Q0RcdTRGNUMiLGtleToiYWN0aW9uIix3aWR0aDozMDAsZml4ZWQ6InJpZ2h0IixyZW5kZXI6ZnVuY3Rpb24obCxjKXtyZXR1cm4oMCx0LmpzeHMpKFguWix7c2l6ZToic21hbGwiLGNoaWxkcmVuOlsoMCx0LmpzeCkoUy5aUCx7dHlwZToibGluayIsaWNvbjooMCx0LmpzeCkoei5aLHt9KSxvbkNsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIHRlKGMpfSxzaXplOiJzbWFsbCIsY2hpbGRyZW46Ilx1NjdFNVx1NzcwQiJ9KSxjLnN0YXR1cz09PSIwIiYmKDAsdC5qc3hzKSh0LkZyYWdtZW50LHtjaGlsZHJlbjpbKDAsdC5qc3gpKFMuWlAse3R5cGU6ImxpbmsiLGljb246KDAsdC5qc3gpKEguWix7fSksc3R5bGU6e2NvbG9yOiJncmVlbiJ9LG9uQ2xpY2s6ZnVuY3Rpb24oKXtyZXR1cm4gTChjLCJhcHByb3ZlIil9LHNpemU6InNtYWxsIixjaGlsZHJlbjoiXHU3ODZFXHU4QkE0XHU0RTBCXHU2N0I2In0pLCgwLHQuanN4KShTLlpQLHt0eXBlOiJsaW5rIixkYW5nZXI6ITAsaWNvbjooMCx0LmpzeCkoUS5aLHt9KSxvbkNsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIEwoYywicmVqZWN0Iil9LHNpemU6InNtYWxsIixjaGlsZHJlbjoiXHU5QTczXHU1NkRFXHU0RTNFXHU2MkE1In0pXX0pXX0pfX1dO3JldHVybigwLHQuanN4cykoImRpdiIse2NsYXNzTmFtZTphZS5aLnBvc3RSZXZpZXdDb250YWluZXIsY2hpbGRyZW46WygwLHQuanN4KShOLlose3RpdGxlOiJcdTVFMTZcdTVCNTBcdTRFM0VcdTYyQTVcdTdCQTFcdTc0MDYiLGNoaWxkcmVuOigwLHQuanN4KShzZS5aLHtjb2x1bW5zOm5lLGRhdGFTb3VyY2U6Ryxsb2FkaW5nOmkscm93S2V5OiJyZXBvcnRJZCIsc2Nyb2xsOnt4Ojg4MH0scGFnaW5hdGlvbjp7cGFnZVNpemU6MTAsc2hvd1RvdGFsOmZ1bmN0aW9uKGwpe3JldHVybiJcdTUxNzEgIi5jb25jYXQobCwiIFx1Njc2MVx1OEJCMFx1NUY1NSIpfSxzaG93U2l6ZUNoYW5nZXI6ITAsc2hvd1F1aWNrSnVtcGVyOiEwfX0pfSksKDAsdC5qc3gpKFIuWix7dGl0bGU6Ilx1NEUzRVx1NjJBNVx1OEJFNlx1NjBDNSIsb3BlbjptLG9uQ2FuY2VsOmZ1bmN0aW9uKCl7ZighMSksaChudWxsKX0sZm9vdGVyOm51bGwsd2lkdGg6NjAwLGNoaWxkcmVuOnUmJigwLHQuanN4cykoImRpdiIse2NoaWxkcmVuOlsoMCx0LmpzeHMpKCJkaXYiLHtzdHlsZTp7bWFyZ2luQm90dG9tOjE2fSxjaGlsZHJlbjpbKDAsdC5qc3gpKCJzdHJvbmciLHtjaGlsZHJlbjoiXHU0RTNFXHU2MkE1XHU1RTE2XHU1QjUwXHVGRjFBIn0pLHUucG9zdFRpdGxlXX0pLCgwLHQuanN4cykoImRpdiIse3N0eWxlOnttYXJnaW5Cb3R0b206MTZ9LGNoaWxkcmVuOlsoMCx0LmpzeCkoInN0cm9uZyIse2NoaWxkcmVuOiJcdTRFM0VcdTYyQTVcdTRFQkFcdUZGMUEifSksdS5yZXBvcnRVc2VyTmFtZV19KSwoMCx0LmpzeHMpKCJkaXYiLHtzdHlsZTp7bWFyZ2luQm90dG9tOjE2fSxjaGlsZHJlbjpbKDAsdC5qc3gpKCJzdHJvbmciLHtjaGlsZHJlbjoiXHU0RTNFXHU2MkE1XHU2NUY2XHU5NUY0XHVGRjFBIn0pLHUuY3JlYXRlVGltZV19KSwoMCx0LmpzeHMpKCJkaXYiLHtzdHlsZTp7bWFyZ2luQm90dG9tOjE2fSxjaGlsZHJlbjpbKDAsdC5qc3gpKCJzdHJvbmciLHtjaGlsZHJlbjoiXHU0RTNFXHU2MkE1XHU3NDA2XHU3NTMxXHVGRjFBIn0pLCgwLHQuanN4KShsZSx7Y2hpbGRyZW46dS5yZXBvcnRSZWFzb259KV19KSx1LnN0YXR1cyE9PSIwIiYmKDAsdC5qc3hzKSh0LkZyYWdtZW50LHtjaGlsZHJlbjpbKDAsdC5qc3hzKSgiZGl2Iix7c3R5bGU6e21hcmdpbkJvdHRvbToxNn0sY2hpbGRyZW46WygwLHQuanN4KSgic3Ryb25nIix7Y2hpbGRyZW46Ilx1NTkwNFx1NzQwNlx1N0VEM1x1Njc5Q1x1RkYxQSJ9KSx1LmhhbmRsZVJlc3VsdF19KSwoMCx0LmpzeHMpKCJkaXYiLHtzdHlsZTp7bWFyZ2luQm90dG9tOjE2fSxjaGlsZHJlbjpbKDAsdC5qc3gpKCJzdHJvbmciLHtjaGlsZHJlbjoiXHU1OTA0XHU3NDA2XHU2NUY2XHU5NUY0XHVGRjFBIn0pLHUuaGFuZGxlVGltZV19KSwoMCx0LmpzeHMpKCJkaXYiLHtzdHlsZTp7bWFyZ2luQm90dG9tOjE2fSxjaGlsZHJlbjpbKDAsdC5qc3gpKCJzdHJvbmciLHtjaGlsZHJlbjoiXHU1OTA0XHU3NDA2XHU0RUJBXHVGRjFBIn0pLHUuaGFuZGxlQnldfSldfSksdS5zdGF0dXM9PT0iMCImJigwLHQuanN4KSgiZGl2Iix7c3R5bGU6e21hcmdpblRvcDoxNn0sY2hpbGRyZW46KDAsdC5qc3hzKShYLlose2NoaWxkcmVuOlsoMCx0LmpzeCkoUy5aUCx7dHlwZToicHJpbWFyeSIsaWNvbjooMCx0LmpzeCkoSC5aLHt9KSxvbkNsaWNrOmZ1bmN0aW9uKCl7TCh1LCJhcHByb3ZlIiksZighMSl9LGNoaWxkcmVuOiJcdTc4NkVcdThCQTRcdTRFMEJcdTY3QjYifSksKDAsdC5qc3gpKFMuWlAse2RhbmdlcjohMCxpY29uOigwLHQuanN4KShRLlose30pLG9uQ2xpY2s6ZnVuY3Rpb24oKXtMKHUsInJlamVjdCIpLGYoITEpfSxjaGlsZHJlbjoiXHU5QTczXHU1NkRFXHU0RTNFXHU2MkE1In0pXX0pfSldfSl9KSwoMCx0LmpzeHMpKFIuWix7dGl0bGU6RD09PSJhcHByb3ZlIj8iXHU3ODZFXHU4QkE0XHU0RTBCXHU2N0I2XHU1RTE2XHU1QjUwIjoiXHU5QTczXHU1NkRFXHU0RTNFXHU2MkE1IixvcGVuOlQsb25PazpnZSxvbkNhbmNlbDpmdW5jdGlvbigpe3goITEpLGgobnVsbCksVyhudWxsKSxwKCIiKX0sb2tUZXh0OiJcdTc4NkVcdTVCOUEiLGNhbmNlbFRleHQ6Ilx1NTNENlx1NkQ4OCIsY2hpbGRyZW46WygwLHQuanN4cykoImRpdiIse3N0eWxlOnttYXJnaW5Cb3R0b206MTZ9LGNoaWxkcmVuOlsoMCx0LmpzeCkoInN0cm9uZyIse2NoaWxkcmVuOiJcdTVFMTZcdTVCNTBcdUZGMUEifSksdT09bnVsbD92b2lkIDA6dS5wb3N0VGl0bGVdfSksKDAsdC5qc3hzKSgiZGl2Iix7Y2hpbGRyZW46WygwLHQuanN4cykoInN0cm9uZyIse2NoaWxkcmVuOltEPT09ImFwcHJvdmUiPyJcdTRFMEJcdTY3QjZcdTc0MDZcdTc1MzEiOiJcdTlBNzNcdTU2REVcdTc0MDZcdTc1MzEiLCJcdUZGMDhcdTUzRUZcdTkwMDlcdUZGMDlcdUZGMUEiXX0pLCgwLHQuanN4KShpZSx7dmFsdWU6cSxvbkNoYW5nZTpmdW5jdGlvbihsKXtyZXR1cm4gcChsLnRhcmdldC52YWx1ZSl9LHBsYWNlaG9sZGVyOkQ9PT0iYXBwcm92ZSI/Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NEUwQlx1NjdCNlx1NzQwNlx1NzUzMS4uLiI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1OUE3M1x1NTZERVx1NzQwNlx1NzUzMS4uLiIscm93czo0LHN0eWxlOnttYXJnaW5Ub3A6OH19KV19KV19KV19KX07SS5kZWZhdWx0PSR9LDI3MTg1OmZ1bmN0aW9uKHBlLEkpe0kuWj17cG9zdFJldmlld0NvbnRhaW5lcjoicG9zdFJldmlld0NvbnRhaW5lcl9fX0pnRHFlIixwb3N0RGV0YWlsOiJwb3N0RGV0YWlsX19feHBMUGciLHBvc3RNZXRhOiJwb3N0TWV0YV9fX1FNYjdoIixwb3N0Q292ZXI6InBvc3RDb3Zlcl9fX0RKSWtPIixwb3N0VGFnczoicG9zdFRhZ3NfX19yNGFLYyIscG9zdFN1bW1hcnk6InBvc3RTdW1tYXJ5X19fcndTeEwiLHBvc3RDb250ZW50OiJwb3N0Q29udGVudF9fX1Q5TXJfIixwb3N0QWN0aW9uczoicG9zdEFjdGlvbnNfX19jVzJrSiJ9fSw2NjMwOTpmdW5jdGlvbihwZSxJLG4pe24uZChJLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGRlfX0pO3ZhciBnPW4oNjcyOTQpLGo9big5Mzk2NyksVT1uLm4oaiksSz1uKDk4NDIzKSxWPW4oOTg3ODcpLEM9big2OTc2MCksRT1uKDk2MTU5KSxrPW4oNDUzNTMpLEo9big1MzEyNCksTz1uKDExNTY4KSxyZT1uKDE1MDYzKSxYPW4oMTQ3NDcpLFM9big4MzI2MiksTj1uKDgzNTU5KTtjb25zdCBzZT1lPT57Y29uc3R7cGFkZGluZ1hYUzpvLGxpbmVXaWR0aDppLHRhZ1BhZGRpbmdIb3Jpem9udGFsOnIsY29tcG9uZW50Q2xzOnMsY2FsYzp2fT1lLG09dihyKS5zdWIoaSkuZXF1YWwoKSxmPXYobykuc3ViKGkpLmVxdWFsKCk7cmV0dXJue1tzXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sKDAsWC5XZikoZSkpLHtkaXNwbGF5OiJpbmxpbmUtYmxvY2siLGhlaWdodDoiYXV0byIsbWFyZ2luSW5saW5lRW5kOmUubWFyZ2luWFMscGFkZGluZ0lubGluZTptLGZvbnRTaXplOmUudGFnRm9udFNpemUsbGluZUhlaWdodDplLnRhZ0xpbmVIZWlnaHQsd2hpdGVTcGFjZToibm93cmFwIixiYWNrZ3JvdW5kOmUuZGVmYXVsdEJnLGJvcmRlcjpgJHsoMCxPLmJmKShlLmxpbmVXaWR0aCl9ICR7ZS5saW5lVHlwZX0gJHtlLmNvbG9yQm9yZGVyfWAsYm9yZGVyUmFkaXVzOmUuYm9yZGVyUmFkaXVzU00sb3BhY2l0eToxLHRyYW5zaXRpb246YGFsbCAke2UubW90aW9uRHVyYXRpb25NaWR9YCx0ZXh0QWxpZ246InN0YXJ0Iixwb3NpdGlvbjoicmVsYXRpdmUiLFtgJiR7c30tcnRsYF06e2RpcmVjdGlvbjoicnRsIn0sIiYsIGEsIGE6aG92ZXIiOntjb2xvcjplLmRlZmF1bHRDb2xvcn0sW2Ake3N9LWNsb3NlLWljb25gXTp7bWFyZ2luSW5saW5lU3RhcnQ6Zixmb250U2l6ZTplLnRhZ0ljb25TaXplLGNvbG9yOmUuY29sb3JUZXh0RGVzY3JpcHRpb24sY3Vyc29yOiJwb2ludGVyIix0cmFuc2l0aW9uOmBhbGwgJHtlLm1vdGlvbkR1cmF0aW9uTWlkfWAsIiY6aG92ZXIiOntjb2xvcjplLmNvbG9yVGV4dEhlYWRpbmd9fSxbYCYke3N9LWhhcy1jb2xvcmBdOntib3JkZXJDb2xvcjoidHJhbnNwYXJlbnQiLFtgJiwgYSwgYTpob3ZlciwgJHtlLmljb25DbHN9LWNsb3NlLCAke2UuaWNvbkNsc30tY2xvc2U6aG92ZXJgXTp7Y29sb3I6ZS5jb2xvclRleHRMaWdodFNvbGlkfX0sIiYtY2hlY2thYmxlIjp7YmFja2dyb3VuZENvbG9yOiJ0cmFuc3BhcmVudCIsYm9yZGVyQ29sb3I6InRyYW5zcGFyZW50IixjdXJzb3I6InBvaW50ZXIiLFtgJjpub3QoJHtzfS1jaGVja2FibGUtY2hlY2tlZCk6aG92ZXJgXTp7Y29sb3I6ZS5jb2xvclByaW1hcnksYmFja2dyb3VuZENvbG9yOmUuY29sb3JGaWxsU2Vjb25kYXJ5fSwiJjphY3RpdmUsICYtY2hlY2tlZCI6e2NvbG9yOmUuY29sb3JUZXh0TGlnaHRTb2xpZH0sIiYtY2hlY2tlZCI6e2JhY2tncm91bmRDb2xvcjplLmNvbG9yUHJpbWFyeSwiJjpob3ZlciI6e2JhY2tncm91bmRDb2xvcjplLmNvbG9yUHJpbWFyeUhvdmVyfX0sIiY6YWN0aXZlIjp7YmFja2dyb3VuZENvbG9yOmUuY29sb3JQcmltYXJ5QWN0aXZlfX0sIiYtaGlkZGVuIjp7ZGlzcGxheToibm9uZSJ9LFtgPiAke2UuaWNvbkNsc30gKyBzcGFuLCA+IHNwYW4gKyAke2UuaWNvbkNsc31gXTp7bWFyZ2luSW5saW5lU3RhcnQ6bX19KSxbYCR7c30tYm9yZGVybGVzc2BdOntib3JkZXJDb2xvcjoidHJhbnNwYXJlbnQiLGJhY2tncm91bmQ6ZS50YWdCb3JkZXJsZXNzQmd9fX0sUj1lPT57Y29uc3R7bGluZVdpZHRoOm8sZm9udFNpemVJY29uOmksY2FsYzpyfT1lLHM9ZS5mb250U2l6ZVNNO3JldHVybigwLFMuSVgpKGUse3RhZ0ZvbnRTaXplOnMsdGFnTGluZUhlaWdodDooMCxPLmJmKShyKGUubGluZUhlaWdodFNNKS5tdWwocykuZXF1YWwoKSksdGFnSWNvblNpemU6cihpKS5zdWIocihvKS5tdWwoMikpLmVxdWFsKCksdGFnUGFkZGluZ0hvcml6b250YWw6OCx0YWdCb3JkZXJsZXNzQmc6ZS5kZWZhdWx0Qmd9KX0sej1lPT4oe2RlZmF1bHRCZzpuZXcgcmUudChlLmNvbG9yRmlsbFF1YXRlcm5hcnkpLm9uQmFja2dyb3VuZChlLmNvbG9yQmdDb250YWluZXIpLnRvSGV4U3RyaW5nKCksZGVmYXVsdENvbG9yOmUuY29sb3JUZXh0fSk7dmFyIEg9KDAsTi5JJCkoIlRhZyIsZT0+e2NvbnN0IG89UihlKTtyZXR1cm4gc2Uobyl9LHopLFE9ZnVuY3Rpb24oZSxvKXt2YXIgaT17fTtmb3IodmFyIHIgaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxyKSYmby5pbmRleE9mKHIpPDAmJihpW3JdPWVbcl0pO2lmKGUhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgcz0wLHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtzPHIubGVuZ3RoO3MrKylvLmluZGV4T2YocltzXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUscltzXSkmJihpW3Jbc11dPWVbcltzXV0pO3JldHVybiBpfSxhZT1nLmZvcndhcmRSZWYoKGUsbyk9Pntjb25zdHtwcmVmaXhDbHM6aSxzdHlsZTpyLGNsYXNzTmFtZTpzLGNoZWNrZWQ6dixvbkNoYW5nZTptLG9uQ2xpY2s6Zn09ZSxiPVEoZSxbInByZWZpeENscyIsInN0eWxlIiwiY2xhc3NOYW1lIiwiY2hlY2tlZCIsIm9uQ2hhbmdlIiwib25DbGljayJdKSx7Z2V0UHJlZml4Q2xzOkEsdGFnOlR9PWcudXNlQ29udGV4dChKLkVfKSx4PUI9PnttPT1udWxsfHxtKCF2KSxmPT1udWxsfHxmKEIpfSxQPUEoInRhZyIsaSksW0YsdSxoXT1IKFApLHc9VSgpKFAsYCR7UH0tY2hlY2thYmxlYCx7W2Ake1B9LWNoZWNrYWJsZS1jaGVja2VkYF06dn0sVD09bnVsbD92b2lkIDA6VC5jbGFzc05hbWUscyx1LGgpO3JldHVybiBGKGcuY3JlYXRlRWxlbWVudCgic3BhbiIsT2JqZWN0LmFzc2lnbih7fSxiLHtyZWY6byxzdHlsZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sciksVD09bnVsbD92b2lkIDA6VC5zdHlsZSksY2xhc3NOYW1lOncsb25DbGljazp4fSkpKX0pLHQ9big5ODcxOSk7Y29uc3QgaGU9ZT0+KDAsdC5aKShlLChvLGkpPT57bGV0e3RleHRDb2xvcjpyLGxpZ2h0Qm9yZGVyQ29sb3I6cyxsaWdodENvbG9yOnYsZGFya0NvbG9yOm19PWk7cmV0dXJue1tgJHtlLmNvbXBvbmVudENsc30ke2UuY29tcG9uZW50Q2xzfS0ke299YF06e2NvbG9yOnIsYmFja2dyb3VuZDp2LGJvcmRlckNvbG9yOnMsIiYtaW52ZXJzZSI6e2NvbG9yOmUuY29sb3JUZXh0TGlnaHRTb2xpZCxiYWNrZ3JvdW5kOm0sYm9yZGVyQ29sb3I6bX0sW2AmJHtlLmNvbXBvbmVudENsc30tYm9yZGVybGVzc2BdOntib3JkZXJDb2xvcjoidHJhbnNwYXJlbnQifX19fSk7dmFyIGxlPSgwLE4uYmspKFsiVGFnIiwicHJlc2V0Il0sZT0+e2NvbnN0IG89UihlKTtyZXR1cm4gaGUobyl9LHopO2Z1bmN0aW9uIGllKGUpe3JldHVybiB0eXBlb2YgZSE9InN0cmluZyI/ZTplLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2Uuc2xpY2UoMSl9Y29uc3QgJD0oZSxvLGkpPT57Y29uc3Qgcj1pZShpKTtyZXR1cm57W2Ake2UuY29tcG9uZW50Q2xzfSR7ZS5jb21wb25lbnRDbHN9LSR7b31gXTp7Y29sb3I6ZVtgY29sb3Ike2l9YF0sYmFja2dyb3VuZDplW2Bjb2xvciR7cn1CZ2BdLGJvcmRlckNvbG9yOmVbYGNvbG9yJHtyfUJvcmRlcmBdLFtgJiR7ZS5jb21wb25lbnRDbHN9LWJvcmRlcmxlc3NgXTp7Ym9yZGVyQ29sb3I6InRyYW5zcGFyZW50In19fX07dmFyIHZlPSgwLE4uYmspKFsiVGFnIiwic3RhdHVzIl0sZT0+e2NvbnN0IG89UihlKTtyZXR1cm5bJChvLCJzdWNjZXNzIiwiU3VjY2VzcyIpLCQobywicHJvY2Vzc2luZyIsIkluZm8iKSwkKG8sImVycm9yIiwiRXJyb3IiKSwkKG8sIndhcm5pbmciLCJXYXJuaW5nIildfSx6KSxjZT1mdW5jdGlvbihlLG8pe3ZhciBpPXt9O2Zvcih2YXIgciBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHIpJiZvLmluZGV4T2Yocik8MCYmKGlbcl09ZVtyXSk7aWYoZSE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBzPTAscj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3M8ci5sZW5ndGg7cysrKW8uaW5kZXhPZihyW3NdKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxyW3NdKSYmKGlbcltzXV09ZVtyW3NdXSk7cmV0dXJuIGl9O2NvbnN0IEc9Zy5mb3J3YXJkUmVmKChlLG8pPT57Y29uc3R7cHJlZml4Q2xzOmksY2xhc3NOYW1lOnIscm9vdENsYXNzTmFtZTpzLHN0eWxlOnYsY2hpbGRyZW46bSxpY29uOmYsY29sb3I6YixvbkNsb3NlOkEsYm9yZGVyZWQ6VD0hMCx2aXNpYmxlOnh9PWUsUD1jZShlLFsicHJlZml4Q2xzIiwiY2xhc3NOYW1lIiwicm9vdENsYXNzTmFtZSIsInN0eWxlIiwiY2hpbGRyZW4iLCJpY29uIiwiY29sb3IiLCJvbkNsb3NlIiwiYm9yZGVyZWQiLCJ2aXNpYmxlIl0pLHtnZXRQcmVmaXhDbHM6RixkaXJlY3Rpb246dSx0YWc6aH09Zy51c2VDb250ZXh0KEouRV8pLFt3LEJdPWcudXNlU3RhdGUoITApLEQ9KDAsSy5aKShQLFsiY2xvc2VJY29uIiwiY2xvc2FibGUiXSk7Zy51c2VFZmZlY3QoKCk9Pnt4IT09dm9pZCAwJiZCKHgpfSxbeF0pO2NvbnN0IFc9KDAsVi5vMikoYiksWT0oMCxWLnlUKShiKSxaPVd8fFkscT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe2JhY2tncm91bmRDb2xvcjpiJiYhWj9iOnZvaWQgMH0saD09bnVsbD92b2lkIDA6aC5zdHlsZSksdikscD1GKCJ0YWciLGkpLFtlZSxMLGdlXT1IKHApLHRlPVUoKShwLGg9PW51bGw/dm9pZCAwOmguY2xhc3NOYW1lLHtbYCR7cH0tJHtifWBdOlosW2Ake3B9LWhhcy1jb2xvcmBdOmImJiFaLFtgJHtwfS1oaWRkZW5gXTohdyxbYCR7cH0tcnRsYF06dT09PSJydGwiLFtgJHtwfS1ib3JkZXJsZXNzYF06IVR9LHIscyxMLGdlKSxuZT15PT57eS5zdG9wUHJvcGFnYXRpb24oKSxBPT1udWxsfHxBKHkpLCF5LmRlZmF1bHRQcmV2ZW50ZWQmJkIoITEpfSxbLGRdPSgwLEMuWikoKDAsQy53KShlKSwoMCxDLncpKGgpLHtjbG9zYWJsZTohMSxjbG9zZUljb25SZW5kZXI6eT0+e2NvbnN0IGZlPWcuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpgJHtwfS1jbG9zZS1pY29uYCxvbkNsaWNrOm5lfSx5KTtyZXR1cm4oMCxFLndtKSh5LGZlLE09Pih7b25DbGljazpfZT0+e3ZhciBtZTsobWU9TT09bnVsbD92b2lkIDA6TS5vbkNsaWNrKT09PW51bGx8fG1lPT09dm9pZCAwfHxtZS5jYWxsKE0sX2UpLG5lKF9lKX0sY2xhc3NOYW1lOlUoKShNPT1udWxsP3ZvaWQgMDpNLmNsYXNzTmFtZSxgJHtwfS1jbG9zZS1pY29uYCl9KSl9fSksbD10eXBlb2YgUC5vbkNsaWNrPT0iZnVuY3Rpb24ifHxtJiZtLnR5cGU9PT0iYSIsYz1mfHxudWxsLF89Yz9nLmNyZWF0ZUVsZW1lbnQoZy5GcmFnbWVudCxudWxsLGMsbSYmZy5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLG0pKTptLGE9Zy5jcmVhdGVFbGVtZW50KCJzcGFuIixPYmplY3QuYXNzaWduKHt9LEQse3JlZjpvLGNsYXNzTmFtZTp0ZSxzdHlsZTpxfSksXyxkLFcmJmcuY3JlYXRlRWxlbWVudChsZSx7a2V5OiJwcmVzZXQiLHByZWZpeENsczpwfSksWSYmZy5jcmVhdGVFbGVtZW50KHZlLHtrZXk6InN0YXR1cyIscHJlZml4Q2xzOnB9KSk7cmV0dXJuIGVlKGw/Zy5jcmVhdGVFbGVtZW50KGsuWix7Y29tcG9uZW50OiJUYWcifSxhKTphKX0pO0cuQ2hlY2thYmxlVGFnPWFlO3ZhciBkZT1HfX1dKTsKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvMjA4Ni5mNzZiZTlhYS5hc3luYy5qcyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvMjA4Ni5mNzZiZTlhYS5hc3luYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ODQwYjNjCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy8yMDg2LmY3NmJlOWFhLmFzeW5jLmpzCkBAIC0wLDAgKzEgQEAKKyhzZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvPXNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm98fFtdKS5wdXNoKFtbMjA4Nl0sezkxOTc4OmZ1bmN0aW9uKGFlLEYsbSl7InVzZSBzdHJpY3QiO20uZChGLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGd0fX0pO3ZhciBjPW0oNjcyOTQpLFk9bSg4NzQ2Mikscz1tKDE0MTMpLFU9bSgxNTY3MSksST1tKDQzMTQ0KSxIPW0oODI5NjMpLCQ9bSg3ODgxNCksTT1tKDYxMTIwKSxYPW0oNjAxMzYpLGc9bSg0OTQyKSxQZT1tKDcxMDAyKSxXZT1tKDkxKSxSZT17YW5pbWF0aW5nOiExLGF1dG9wbGF5aW5nOm51bGwsY3VycmVudERpcmVjdGlvbjowLGN1cnJlbnRMZWZ0Om51bGwsY3VycmVudFNsaWRlOjAsZGlyZWN0aW9uOjEsZHJhZ2dpbmc6ITEsZWRnZURyYWdnZWQ6ITEsaW5pdGlhbGl6ZWQ6ITEsbGF6eUxvYWRlZExpc3Q6W10sbGlzdEhlaWdodDpudWxsLGxpc3RXaWR0aDpudWxsLHNjcm9sbGluZzohMSxzbGlkZUNvdW50Om51bGwsc2xpZGVIZWlnaHQ6bnVsbCxzbGlkZVdpZHRoOm51bGwsc3dpcGVMZWZ0Om51bGwsc3dpcGVkOiExLHN3aXBpbmc6ITEsdG91Y2hPYmplY3Q6e3N0YXJ0WDowLHN0YXJ0WTowLGN1clg6MCxjdXJZOjB9LHRyYWNrU3R5bGU6e30sdHJhY2tXaWR0aDowLHRhcmdldFNsaWRlOjB9LHBlPVJlLE5lPW0oMjc4NTYpLGdlPW0oOTM5NjcpLE49bS5uKGdlKSx4ZT17YWNjZXNzaWJpbGl0eTohMCxhZGFwdGl2ZUhlaWdodDohMSxhZnRlckNoYW5nZTpudWxsLGFwcGVuZERvdHM6ZnVuY3Rpb24odCl7cmV0dXJuIGMuY3JlYXRlRWxlbWVudCgidWwiLHtzdHlsZTp7ZGlzcGxheToiYmxvY2sifX0sdCl9LGFycm93czohMCxhdXRvcGxheTohMSxhdXRvcGxheVNwZWVkOjNlMyxiZWZvcmVDaGFuZ2U6bnVsbCxjZW50ZXJNb2RlOiExLGNlbnRlclBhZGRpbmc6IjUwcHgiLGNsYXNzTmFtZToiIixjc3NFYXNlOiJlYXNlIixjdXN0b21QYWdpbmc6ZnVuY3Rpb24odCl7cmV0dXJuIGMuY3JlYXRlRWxlbWVudCgiYnV0dG9uIixudWxsLHQrMSl9LGRvdHM6ITEsZG90c0NsYXNzOiJzbGljay1kb3RzIixkcmFnZ2FibGU6ITAsZWFzaW5nOiJsaW5lYXIiLGVkZ2VGcmljdGlvbjouMzUsZmFkZTohMSxmb2N1c09uU2VsZWN0OiExLGluZmluaXRlOiEwLGluaXRpYWxTbGlkZTowLGxhenlMb2FkOm51bGwsbmV4dEFycm93Om51bGwsb25FZGdlOm51bGwsb25Jbml0Om51bGwsb25MYXp5TG9hZEVycm9yOm51bGwsb25SZUluaXQ6bnVsbCxwYXVzZU9uRG90c0hvdmVyOiExLHBhdXNlT25Gb2N1czohMSxwYXVzZU9uSG92ZXI6ITAscHJldkFycm93Om51bGwscmVzcG9uc2l2ZTpudWxsLHJvd3M6MSxydGw6ITEsc2xpZGU6ImRpdiIsc2xpZGVzUGVyUm93OjEsc2xpZGVzVG9TY3JvbGw6MSxzbGlkZXNUb1Nob3c6MSxzcGVlZDo1MDAsc3dpcGU6ITAsc3dpcGVFdmVudDpudWxsLHN3aXBlVG9TbGlkZTohMSx0b3VjaE1vdmU6ITAsdG91Y2hUaHJlc2hvbGQ6NSx1c2VDU1M6ITAsdXNlVHJhbnNmb3JtOiEwLHZhcmlhYmxlV2lkdGg6ITEsdmVydGljYWw6ITEsd2FpdEZvckFuaW1hdGU6ITAsYXNOYXZGb3I6bnVsbH0sU2U9eGU7ZnVuY3Rpb24gTGUobyx0LHIpe3JldHVybiBNYXRoLm1heCh0LE1hdGgubWluKG8scikpfXZhciB0ZT1mdW5jdGlvbih0KXt2YXIgcj1bIm9uVG91Y2hTdGFydCIsIm9uVG91Y2hNb3ZlIiwib25XaGVlbCJdO3IuaW5jbHVkZXModC5fcmVhY3ROYW1lKXx8dC5wcmV2ZW50RGVmYXVsdCgpfSxkZT1mdW5jdGlvbih0KXtmb3IodmFyIHI9W10sZT1tZSh0KSxsPXllKHQpLG49ZTtuPGw7bisrKXQubGF6eUxvYWRlZExpc3QuaW5kZXhPZihuKTwwJiZyLnB1c2gobik7cmV0dXJuIHJ9LFFlPWZ1bmN0aW9uKHQpe2Zvcih2YXIgcj1bXSxlPW1lKHQpLGw9eWUodCksbj1lO248bDtuKyspci5wdXNoKG4pO3JldHVybiByfSxtZT1mdW5jdGlvbih0KXtyZXR1cm4gdC5jdXJyZW50U2xpZGUtdWUodCl9LHllPWZ1bmN0aW9uKHQpe3JldHVybiB0LmN1cnJlbnRTbGlkZStBZSh0KX0sdWU9ZnVuY3Rpb24odCl7cmV0dXJuIHQuY2VudGVyTW9kZT9NYXRoLmZsb29yKHQuc2xpZGVzVG9TaG93LzIpKyhwYXJzZUludCh0LmNlbnRlclBhZGRpbmcpPjA/MTowKTowfSxBZT1mdW5jdGlvbih0KXtyZXR1cm4gdC5jZW50ZXJNb2RlP01hdGguZmxvb3IoKHQuc2xpZGVzVG9TaG93LTEpLzIpKzErKHBhcnNlSW50KHQuY2VudGVyUGFkZGluZyk+MD8xOjApOnQuc2xpZGVzVG9TaG93fSxDZT1mdW5jdGlvbih0KXtyZXR1cm4gdCYmdC5vZmZzZXRXaWR0aHx8MH0sT2U9ZnVuY3Rpb24odCl7cmV0dXJuIHQmJnQub2Zmc2V0SGVpZ2h0fHwwfSxiZT1mdW5jdGlvbih0KXt2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06ITEsZSxsLG4saTtyZXR1cm4gZT10LnN0YXJ0WC10LmN1clgsbD10LnN0YXJ0WS10LmN1clksbj1NYXRoLmF0YW4yKGwsZSksaT1NYXRoLnJvdW5kKG4qMTgwL01hdGguUEkpLGk8MCYmKGk9MzYwLU1hdGguYWJzKGkpKSxpPD00NSYmaT49MHx8aTw9MzYwJiZpPj0zMTU/ImxlZnQiOmk+PTEzNSYmaTw9MjI1PyJyaWdodCI6cj09PSEwP2k+PTM1JiZpPD0xMzU/InVwIjoiZG93biI6InZlcnRpY2FsIn0sY2U9ZnVuY3Rpb24odCl7dmFyIHI9ITA7cmV0dXJuIHQuaW5maW5pdGV8fCh0LmNlbnRlck1vZGUmJnQuY3VycmVudFNsaWRlPj10LnNsaWRlQ291bnQtMXx8dC5zbGlkZUNvdW50PD10LnNsaWRlc1RvU2hvd3x8dC5jdXJyZW50U2xpZGU+PXQuc2xpZGVDb3VudC10LnNsaWRlc1RvU2hvdykmJihyPSExKSxyfSx1PWZ1bmN0aW9uKHQscil7dmFyIGU9e307cmV0dXJuIHIuZm9yRWFjaChmdW5jdGlvbihsKXtyZXR1cm4gZVtsXT10W2xdfSksZX0sTD1mdW5jdGlvbih0KXt2YXIgcj1jLkNoaWxkcmVuLmNvdW50KHQuY2hpbGRyZW4pLGU9dC5saXN0UmVmLGw9TWF0aC5jZWlsKENlKGUpKSxuPXQudHJhY2tSZWYmJnQudHJhY2tSZWYubm9kZSxpPU1hdGguY2VpbChDZShuKSksYTtpZih0LnZlcnRpY2FsKWE9bDtlbHNle3ZhciBkPXQuY2VudGVyTW9kZSYmcGFyc2VJbnQodC5jZW50ZXJQYWRkaW5nKSoyO3R5cGVvZiB0LmNlbnRlclBhZGRpbmc9PSJzdHJpbmciJiZ0LmNlbnRlclBhZGRpbmcuc2xpY2UoLTEpPT09IiUiJiYoZCo9bC8xMDApLGE9TWF0aC5jZWlsKChsLWQpL3Quc2xpZGVzVG9TaG93KX12YXIgcD1lJiZPZShlLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLWluZGV4PSIwIl0nKSksUz1wKnQuc2xpZGVzVG9TaG93LGY9dC5jdXJyZW50U2xpZGU9PT12b2lkIDA/dC5pbml0aWFsU2xpZGU6dC5jdXJyZW50U2xpZGU7dC5ydGwmJnQuY3VycmVudFNsaWRlPT09dm9pZCAwJiYoZj1yLTEtdC5pbml0aWFsU2xpZGUpO3ZhciBiPXQubGF6eUxvYWRlZExpc3R8fFtdLGs9ZGUoKDAscy5aKSgoMCxzLlopKHt9LHQpLHt9LHtjdXJyZW50U2xpZGU6ZixsYXp5TG9hZGVkTGlzdDpifSkpO2I9Yi5jb25jYXQoayk7dmFyIEM9e3NsaWRlQ291bnQ6cixzbGlkZVdpZHRoOmEsbGlzdFdpZHRoOmwsdHJhY2tXaWR0aDppLGN1cnJlbnRTbGlkZTpmLHNsaWRlSGVpZ2h0OnAsbGlzdEhlaWdodDpTLGxhenlMb2FkZWRMaXN0OmJ9O3JldHVybiB0LmF1dG9wbGF5aW5nPT09bnVsbCYmdC5hdXRvcGxheSYmKEMuYXV0b3BsYXlpbmc9InBsYXlpbmciKSxDfSx6PWZ1bmN0aW9uKHQpe3ZhciByPXQud2FpdEZvckFuaW1hdGUsZT10LmFuaW1hdGluZyxsPXQuZmFkZSxuPXQuaW5maW5pdGUsaT10LmluZGV4LGE9dC5zbGlkZUNvdW50LGQ9dC5sYXp5TG9hZCxwPXQuY3VycmVudFNsaWRlLFM9dC5jZW50ZXJNb2RlLGY9dC5zbGlkZXNUb1Njcm9sbCxiPXQuc2xpZGVzVG9TaG93LGs9dC51c2VDU1MsQz10LmxhenlMb2FkZWRMaXN0O2lmKHImJmUpcmV0dXJue307dmFyIHY9aSx5LFQsaCxaPXt9LEU9e30sTz1uP2k6TGUoaSwwLGEtMSk7aWYobCl7aWYoIW4mJihpPDB8fGk+PWEpKXJldHVybnt9O2k8MD92PWkrYTppPj1hJiYodj1pLWEpLGQmJkMuaW5kZXhPZih2KTwwJiYoQz1DLmNvbmNhdCh2KSksWj17YW5pbWF0aW5nOiEwLGN1cnJlbnRTbGlkZTp2LGxhenlMb2FkZWRMaXN0OkMsdGFyZ2V0U2xpZGU6dn0sRT17YW5pbWF0aW5nOiExLHRhcmdldFNsaWRlOnZ9fWVsc2UgeT12LHY8MD8oeT12K2Esbj9hJWYhPT0wJiYoeT1hLWElZik6eT0wKTohY2UodCkmJnY+cD92PXk9cDpTJiZ2Pj1hPyh2PW4/YTphLTEseT1uPzA6YS0xKTp2Pj1hJiYoeT12LWEsbj9hJWYhPT0wJiYoeT0wKTp5PWEtYiksIW4mJnYrYj49YSYmKHk9YS1iKSxUPV8oKDAscy5aKSgoMCxzLlopKHt9LHQpLHt9LHtzbGlkZUluZGV4OnZ9KSksaD1fKCgwLHMuWikoKDAscy5aKSh7fSx0KSx7fSx7c2xpZGVJbmRleDp5fSkpLG58fChUPT09aCYmKHY9eSksVD1oKSxkJiYoQz1DLmNvbmNhdChkZSgoMCxzLlopKCgwLHMuWikoe30sdCkse30se2N1cnJlbnRTbGlkZTp2fSkpKSksaz8oWj17YW5pbWF0aW5nOiEwLGN1cnJlbnRTbGlkZTp5LHRyYWNrU3R5bGU6ZmUoKDAscy5aKSgoMCxzLlopKHt9LHQpLHt9LHtsZWZ0OlR9KSksbGF6eUxvYWRlZExpc3Q6Qyx0YXJnZXRTbGlkZTpPfSxFPXthbmltYXRpbmc6ITEsY3VycmVudFNsaWRlOnksdHJhY2tTdHlsZTpBKCgwLHMuWikoKDAscy5aKSh7fSx0KSx7fSx7bGVmdDpofSkpLHN3aXBlTGVmdDpudWxsLHRhcmdldFNsaWRlOk99KTpaPXtjdXJyZW50U2xpZGU6eSx0cmFja1N0eWxlOkEoKDAscy5aKSgoMCxzLlopKHt9LHQpLHt9LHtsZWZ0Omh9KSksbGF6eUxvYWRlZExpc3Q6Qyx0YXJnZXRTbGlkZTpPfTtyZXR1cm57c3RhdGU6WixuZXh0U3RhdGU6RX19LHc9ZnVuY3Rpb24odCxyKXt2YXIgZSxsLG4saSxhLGQ9dC5zbGlkZXNUb1Njcm9sbCxwPXQuc2xpZGVzVG9TaG93LFM9dC5zbGlkZUNvdW50LGY9dC5jdXJyZW50U2xpZGUsYj10LnRhcmdldFNsaWRlLGs9dC5sYXp5TG9hZCxDPXQuaW5maW5pdGU7aWYoaT1TJWQhPT0wLGU9aT8wOihTLWYpJWQsci5tZXNzYWdlPT09InByZXZpb3VzIiluPWU9PT0wP2Q6cC1lLGE9Zi1uLGsmJiFDJiYobD1mLW4sYT1sPT09LTE/Uy0xOmwpLEN8fChhPWItZCk7ZWxzZSBpZihyLm1lc3NhZ2U9PT0ibmV4dCIpbj1lPT09MD9kOmUsYT1mK24sayYmIUMmJihhPShmK2QpJVMrZSksQ3x8KGE9YitkKTtlbHNlIGlmKHIubWVzc2FnZT09PSJkb3RzIilhPXIuaW5kZXgqci5zbGlkZXNUb1Njcm9sbDtlbHNlIGlmKHIubWVzc2FnZT09PSJjaGlsZHJlbiIpe2lmKGE9ci5pbmRleCxDKXt2YXIgdj1EZSgoMCxzLlopKCgwLHMuWikoe30sdCkse30se3RhcmdldFNsaWRlOmF9KSk7YT5yLmN1cnJlbnRTbGlkZSYmdj09PSJsZWZ0Ij9hPWEtUzphPHIuY3VycmVudFNsaWRlJiZ2PT09InJpZ2h0IiYmKGE9YStTKX19ZWxzZSByLm1lc3NhZ2U9PT0iaW5kZXgiJiYoYT1OdW1iZXIoci5pbmRleCkpO3JldHVybiBhfSx4PWZ1bmN0aW9uKHQscixlKXtyZXR1cm4gdC50YXJnZXQudGFnTmFtZS5tYXRjaCgiVEVYVEFSRUF8SU5QVVR8U0VMRUNUIil8fCFyPyIiOnQua2V5Q29kZT09PTM3P2U/Im5leHQiOiJwcmV2aW91cyI6dC5rZXlDb2RlPT09Mzk/ZT8icHJldmlvdXMiOiJuZXh0IjoiIn0saj1mdW5jdGlvbih0LHIsZSl7cmV0dXJuIHQudGFyZ2V0LnRhZ05hbWU9PT0iSU1HIiYmdGUodCksIXJ8fCFlJiZ0LnR5cGUuaW5kZXhPZigibW91c2UiKSE9PS0xPyIiOntkcmFnZ2luZzohMCx0b3VjaE9iamVjdDp7c3RhcnRYOnQudG91Y2hlcz90LnRvdWNoZXNbMF0ucGFnZVg6dC5jbGllbnRYLHN0YXJ0WTp0LnRvdWNoZXM/dC50b3VjaGVzWzBdLnBhZ2VZOnQuY2xpZW50WSxjdXJYOnQudG91Y2hlcz90LnRvdWNoZXNbMF0ucGFnZVg6dC5jbGllbnRYLGN1clk6dC50b3VjaGVzP3QudG91Y2hlc1swXS5wYWdlWTp0LmNsaWVudFl9fX0sUj1mdW5jdGlvbih0LHIpe3ZhciBlPXIuc2Nyb2xsaW5nLGw9ci5hbmltYXRpbmcsbj1yLnZlcnRpY2FsLGk9ci5zd2lwZVRvU2xpZGUsYT1yLnZlcnRpY2FsU3dpcGluZyxkPXIucnRsLHA9ci5jdXJyZW50U2xpZGUsUz1yLmVkZ2VGcmljdGlvbixmPXIuZWRnZURyYWdnZWQsYj1yLm9uRWRnZSxrPXIuc3dpcGVkLEM9ci5zd2lwaW5nLHY9ci5zbGlkZUNvdW50LHk9ci5zbGlkZXNUb1Njcm9sbCxUPXIuaW5maW5pdGUsaD1yLnRvdWNoT2JqZWN0LFo9ci5zd2lwZUV2ZW50LEU9ci5saXN0SGVpZ2h0LE89ci5saXN0V2lkdGg7aWYoIWUpe2lmKGwpcmV0dXJuIHRlKHQpO24mJmkmJmEmJnRlKHQpO3ZhciBQLFY9e30sSz1fKHIpO2guY3VyWD10LnRvdWNoZXM/dC50b3VjaGVzWzBdLnBhZ2VYOnQuY2xpZW50WCxoLmN1clk9dC50b3VjaGVzP3QudG91Y2hlc1swXS5wYWdlWTp0LmNsaWVudFksaC5zd2lwZUxlbmd0aD1NYXRoLnJvdW5kKE1hdGguc3FydChNYXRoLnBvdyhoLmN1clgtaC5zdGFydFgsMikpKTt2YXIgbGU9TWF0aC5yb3VuZChNYXRoLnNxcnQoTWF0aC5wb3coaC5jdXJZLWguc3RhcnRZLDIpKSk7aWYoIWEmJiFDJiZsZT4xMClyZXR1cm57c2Nyb2xsaW5nOiEwfTthJiYoaC5zd2lwZUxlbmd0aD1sZSk7dmFyIG9lPShkPy0xOjEpKihoLmN1clg+aC5zdGFydFg/MTotMSk7YSYmKG9lPWguY3VyWT5oLnN0YXJ0WT8xOi0xKTt2YXIgS2U9TWF0aC5jZWlsKHYveSksUT1iZShyLnRvdWNoT2JqZWN0LGEpLHNlPWguc3dpcGVMZW5ndGg7cmV0dXJuIFR8fChwPT09MCYmKFE9PT0icmlnaHQifHxRPT09ImRvd24iKXx8cCsxPj1LZSYmKFE9PT0ibGVmdCJ8fFE9PT0idXAiKXx8IWNlKHIpJiYoUT09PSJsZWZ0Inx8UT09PSJ1cCIpKSYmKHNlPWguc3dpcGVMZW5ndGgqUyxmPT09ITEmJmImJihiKFEpLFYuZWRnZURyYWdnZWQ9ITApKSwhayYmWiYmKFooUSksVi5zd2lwZWQ9ITApLG4/UD1LK3NlKihFL08pKm9lOmQ/UD1LLXNlKm9lOlA9SytzZSpvZSxhJiYoUD1LK3NlKm9lKSxWPSgwLHMuWikoKDAscy5aKSh7fSxWKSx7fSx7dG91Y2hPYmplY3Q6aCxzd2lwZUxlZnQ6UCx0cmFja1N0eWxlOkEoKDAscy5aKSgoMCxzLlopKHt9LHIpLHt9LHtsZWZ0OlB9KSl9KSxNYXRoLmFicyhoLmN1clgtaC5zdGFydFgpPE1hdGguYWJzKGguY3VyWS1oLnN0YXJ0WSkqLjh8fGguc3dpcGVMZW5ndGg+MTAmJihWLnN3aXBpbmc9ITAsdGUodCkpLFZ9fSxKPWZ1bmN0aW9uKHQscil7dmFyIGU9ci5kcmFnZ2luZyxsPXIuc3dpcGUsbj1yLnRvdWNoT2JqZWN0LGk9ci5saXN0V2lkdGgsYT1yLnRvdWNoVGhyZXNob2xkLGQ9ci52ZXJ0aWNhbFN3aXBpbmcscD1yLmxpc3RIZWlnaHQsUz1yLnN3aXBlVG9TbGlkZSxmPXIuc2Nyb2xsaW5nLGI9ci5vblN3aXBlLGs9ci50YXJnZXRTbGlkZSxDPXIuY3VycmVudFNsaWRlLHY9ci5pbmZpbml0ZTtpZighZSlyZXR1cm4gbCYmdGUodCkse307dmFyIHk9ZD9wL2E6aS9hLFQ9YmUobixkKSxoPXtkcmFnZ2luZzohMSxlZGdlRHJhZ2dlZDohMSxzY3JvbGxpbmc6ITEsc3dpcGluZzohMSxzd2lwZWQ6ITEsc3dpcGVMZWZ0Om51bGwsdG91Y2hPYmplY3Q6e319O2lmKGZ8fCFuLnN3aXBlTGVuZ3RoKXJldHVybiBoO2lmKG4uc3dpcGVMZW5ndGg+eSl7dGUodCksYiYmYihUKTt2YXIgWixFLE89dj9DOms7c3dpdGNoKFQpe2Nhc2UibGVmdCI6Y2FzZSJ1cCI6RT1PK0IociksWj1TP3JlKHIsRSk6RSxoLmN1cnJlbnREaXJlY3Rpb249MDticmVhaztjYXNlInJpZ2h0IjpjYXNlImRvd24iOkU9Ty1CKHIpLFo9Uz9yZShyLEUpOkUsaC5jdXJyZW50RGlyZWN0aW9uPTE7YnJlYWs7ZGVmYXVsdDpaPU99aC50cmlnZ2VyU2xpZGVIYW5kbGVyPVp9ZWxzZXt2YXIgUD1fKHIpO2gudHJhY2tTdHlsZT1mZSgoMCxzLlopKCgwLHMuWikoe30scikse30se2xlZnQ6UH0pKX1yZXR1cm4gaH0sRz1mdW5jdGlvbih0KXtmb3IodmFyIHI9dC5pbmZpbml0ZT90LnNsaWRlQ291bnQqMjp0LnNsaWRlQ291bnQsZT10LmluZmluaXRlP3Quc2xpZGVzVG9TaG93Ki0xOjAsbD10LmluZmluaXRlP3Quc2xpZGVzVG9TaG93Ki0xOjAsbj1bXTtlPHI7KW4ucHVzaChlKSxlPWwrdC5zbGlkZXNUb1Njcm9sbCxsKz1NYXRoLm1pbih0LnNsaWRlc1RvU2Nyb2xsLHQuc2xpZGVzVG9TaG93KTtyZXR1cm4gbn0scmU9ZnVuY3Rpb24odCxyKXt2YXIgZT1HKHQpLGw9MDtpZihyPmVbZS5sZW5ndGgtMV0pcj1lW2UubGVuZ3RoLTFdO2Vsc2UgZm9yKHZhciBuIGluIGUpe2lmKHI8ZVtuXSl7cj1sO2JyZWFrfWw9ZVtuXX1yZXR1cm4gcn0sQj1mdW5jdGlvbih0KXt2YXIgcj10LmNlbnRlck1vZGU/dC5zbGlkZVdpZHRoKk1hdGguZmxvb3IodC5zbGlkZXNUb1Nob3cvMik6MDtpZih0LnN3aXBlVG9TbGlkZSl7dmFyIGUsbD10Lmxpc3RSZWYsbj1sLnF1ZXJ5U2VsZWN0b3JBbGwmJmwucXVlcnlTZWxlY3RvckFsbCgiLnNsaWNrLXNsaWRlIil8fFtdO2lmKEFycmF5LmZyb20obikuZXZlcnkoZnVuY3Rpb24oZCl7aWYodC52ZXJ0aWNhbCl7aWYoZC5vZmZzZXRUb3ArT2UoZCkvMj50LnN3aXBlTGVmdCotMSlyZXR1cm4gZT1kLCExfWVsc2UgaWYoZC5vZmZzZXRMZWZ0LXIrQ2UoZCkvMj50LnN3aXBlTGVmdCotMSlyZXR1cm4gZT1kLCExO3JldHVybiEwfSksIWUpcmV0dXJuIDA7dmFyIGk9dC5ydGw9PT0hMD90LnNsaWRlQ291bnQtdC5jdXJyZW50U2xpZGU6dC5jdXJyZW50U2xpZGUsYT1NYXRoLmFicyhlLmRhdGFzZXQuaW5kZXgtaSl8fDE7cmV0dXJuIGF9ZWxzZSByZXR1cm4gdC5zbGlkZXNUb1Njcm9sbH0scT1mdW5jdGlvbih0LHIpe3JldHVybiByLnJlZHVjZShmdW5jdGlvbihlLGwpe3JldHVybiBlJiZ0Lmhhc093blByb3BlcnR5KGwpfSwhMCk/bnVsbDpjb25zb2xlLmVycm9yKCJLZXlzIE1pc3Npbmc6Iix0KX0sQT1mdW5jdGlvbih0KXtxKHQsWyJsZWZ0IiwidmFyaWFibGVXaWR0aCIsInNsaWRlQ291bnQiLCJzbGlkZXNUb1Nob3ciLCJzbGlkZVdpZHRoIl0pO3ZhciByLGU7aWYoIXQudmVydGljYWwpcj12ZSh0KSp0LnNsaWRlV2lkdGg7ZWxzZXt2YXIgbD10LnVuc2xpY2s/dC5zbGlkZUNvdW50OnQuc2xpZGVDb3VudCsyKnQuc2xpZGVzVG9TaG93O2U9bCp0LnNsaWRlSGVpZ2h0fXZhciBuPXtvcGFjaXR5OjEsdHJhbnNpdGlvbjoiIixXZWJraXRUcmFuc2l0aW9uOiIifTtpZih0LnVzZVRyYW5zZm9ybSl7dmFyIGk9dC52ZXJ0aWNhbD8idHJhbnNsYXRlM2QoMHB4LCAiK3QubGVmdCsicHgsIDBweCkiOiJ0cmFuc2xhdGUzZCgiK3QubGVmdCsicHgsIDBweCwgMHB4KSIsYT10LnZlcnRpY2FsPyJ0cmFuc2xhdGUzZCgwcHgsICIrdC5sZWZ0KyJweCwgMHB4KSI6InRyYW5zbGF0ZTNkKCIrdC5sZWZ0KyJweCwgMHB4LCAwcHgpIixkPXQudmVydGljYWw/InRyYW5zbGF0ZVkoIit0LmxlZnQrInB4KSI6InRyYW5zbGF0ZVgoIit0LmxlZnQrInB4KSI7bj0oMCxzLlopKCgwLHMuWikoe30sbikse30se1dlYmtpdFRyYW5zZm9ybTppLHRyYW5zZm9ybTphLG1zVHJhbnNmb3JtOmR9KX1lbHNlIHQudmVydGljYWw/bi50b3A9dC5sZWZ0Om4ubGVmdD10LmxlZnQ7cmV0dXJuIHQuZmFkZSYmKG49e29wYWNpdHk6MX0pLHImJihuLndpZHRoPXIpLGUmJihuLmhlaWdodD1lKSx3aW5kb3cmJiF3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciYmd2luZG93LmF0dGFjaEV2ZW50JiYodC52ZXJ0aWNhbD9uLm1hcmdpblRvcD10LmxlZnQrInB4IjpuLm1hcmdpbkxlZnQ9dC5sZWZ0KyJweCIpLG59LGZlPWZ1bmN0aW9uKHQpe3EodCxbImxlZnQiLCJ2YXJpYWJsZVdpZHRoIiwic2xpZGVDb3VudCIsInNsaWRlc1RvU2hvdyIsInNsaWRlV2lkdGgiLCJzcGVlZCIsImNzc0Vhc2UiXSk7dmFyIHI9QSh0KTtyZXR1cm4gdC51c2VUcmFuc2Zvcm0/KHIuV2Via2l0VHJhbnNpdGlvbj0iLXdlYmtpdC10cmFuc2Zvcm0gIit0LnNwZWVkKyJtcyAiK3QuY3NzRWFzZSxyLnRyYW5zaXRpb249InRyYW5zZm9ybSAiK3Quc3BlZWQrIm1zICIrdC5jc3NFYXNlKTp0LnZlcnRpY2FsP3IudHJhbnNpdGlvbj0idG9wICIrdC5zcGVlZCsibXMgIit0LmNzc0Vhc2U6ci50cmFuc2l0aW9uPSJsZWZ0ICIrdC5zcGVlZCsibXMgIit0LmNzc0Vhc2Uscn0sXz1mdW5jdGlvbih0KXtpZih0LnVuc2xpY2spcmV0dXJuIDA7cSh0LFsic2xpZGVJbmRleCIsInRyYWNrUmVmIiwiaW5maW5pdGUiLCJjZW50ZXJNb2RlIiwic2xpZGVDb3VudCIsInNsaWRlc1RvU2hvdyIsInNsaWRlc1RvU2Nyb2xsIiwic2xpZGVXaWR0aCIsImxpc3RXaWR0aCIsInZhcmlhYmxlV2lkdGgiLCJzbGlkZUhlaWdodCJdKTt2YXIgcj10LnNsaWRlSW5kZXgsZT10LnRyYWNrUmVmLGw9dC5pbmZpbml0ZSxuPXQuY2VudGVyTW9kZSxpPXQuc2xpZGVDb3VudCxhPXQuc2xpZGVzVG9TaG93LGQ9dC5zbGlkZXNUb1Njcm9sbCxwPXQuc2xpZGVXaWR0aCxTPXQubGlzdFdpZHRoLGY9dC52YXJpYWJsZVdpZHRoLGI9dC5zbGlkZUhlaWdodCxrPXQuZmFkZSxDPXQudmVydGljYWwsdj0wLHksVCxoPTA7aWYoa3x8dC5zbGlkZUNvdW50PT09MSlyZXR1cm4gMDt2YXIgWj0wO2lmKGw/KFo9LVcodCksaSVkIT09MCYmcitkPmkmJihaPS0ocj5pP2EtKHItaSk6aSVkKSksbiYmKForPXBhcnNlSW50KGEvMikpKTooaSVkIT09MCYmcitkPmkmJihaPWEtaSVkKSxuJiYoWj1wYXJzZUludChhLzIpKSksdj1aKnAsaD1aKmIsQz95PXIqYiotMStoOnk9cipwKi0xK3YsZj09PSEwKXt2YXIgRSxPPWUmJmUubm9kZTtpZihFPXIrVyh0KSxUPU8mJk8uY2hpbGROb2Rlc1tFXSx5PVQ/VC5vZmZzZXRMZWZ0Ki0xOjAsbj09PSEwKXtFPWw/citXKHQpOnIsVD1PJiZPLmNoaWxkcmVuW0VdLHk9MDtmb3IodmFyIFA9MDtQPEU7UCsrKXktPU8mJk8uY2hpbGRyZW5bUF0mJk8uY2hpbGRyZW5bUF0ub2Zmc2V0V2lkdGg7eS09cGFyc2VJbnQodC5jZW50ZXJQYWRkaW5nKSx5Kz1UJiYoUy1ULm9mZnNldFdpZHRoKS8yfX1yZXR1cm4geX0sVz1mdW5jdGlvbih0KXtyZXR1cm4gdC51bnNsaWNrfHwhdC5pbmZpbml0ZT8wOnQudmFyaWFibGVXaWR0aD90LnNsaWRlQ291bnQ6dC5zbGlkZXNUb1Nob3crKHQuY2VudGVyTW9kZT8xOjApfSxuZT1mdW5jdGlvbih0KXtyZXR1cm4gdC51bnNsaWNrfHwhdC5pbmZpbml0ZT8wOnQuc2xpZGVDb3VudH0sdmU9ZnVuY3Rpb24odCl7cmV0dXJuIHQuc2xpZGVDb3VudD09PTE/MTpXKHQpK3Quc2xpZGVDb3VudCtuZSh0KX0sRGU9ZnVuY3Rpb24odCl7cmV0dXJuIHQudGFyZ2V0U2xpZGU+dC5jdXJyZW50U2xpZGU/dC50YXJnZXRTbGlkZT50LmN1cnJlbnRTbGlkZStFZSh0KT8ibGVmdCI6InJpZ2h0Ijp0LnRhcmdldFNsaWRlPHQuY3VycmVudFNsaWRlLXplKHQpPyJyaWdodCI6ImxlZnQifSxFZT1mdW5jdGlvbih0KXt2YXIgcj10LnNsaWRlc1RvU2hvdyxlPXQuY2VudGVyTW9kZSxsPXQucnRsLG49dC5jZW50ZXJQYWRkaW5nO2lmKGUpe3ZhciBpPShyLTEpLzIrMTtyZXR1cm4gcGFyc2VJbnQobik+MCYmKGkrPTEpLGwmJnIlMj09PTAmJihpKz0xKSxpfXJldHVybiBsPzA6ci0xfSx6ZT1mdW5jdGlvbih0KXt2YXIgcj10LnNsaWRlc1RvU2hvdyxlPXQuY2VudGVyTW9kZSxsPXQucnRsLG49dC5jZW50ZXJQYWRkaW5nO2lmKGUpe3ZhciBpPShyLTEpLzIrMTtyZXR1cm4gcGFyc2VJbnQobik+MCYmKGkrPTEpLCFsJiZyJTI9PT0wJiYoaSs9MSksaX1yZXR1cm4gbD9yLTE6MH0saGU9ZnVuY3Rpb24oKXtyZXR1cm4hISh0eXBlb2Ygd2luZG93IT0idW5kZWZpbmVkIiYmd2luZG93LmRvY3VtZW50JiZ3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCl9LCRlPU9iamVjdC5rZXlzKFNlKTtmdW5jdGlvbiBEKG8pe3JldHVybiAkZS5yZWR1Y2UoZnVuY3Rpb24odCxyKXtyZXR1cm4gby5oYXNPd25Qcm9wZXJ0eShyKSYmKHRbcl09b1tyXSksdH0se30pfWZ1bmN0aW9uIGplKG8sdCxyKXtyZXR1cm4gdD0oMCxNLlopKHQpLCgwLEguWikobywoMCwkLlopKCk/UmVmbGVjdC5jb25zdHJ1Y3QodCxyfHxbXSwoMCxNLlopKG8pLmNvbnN0cnVjdG9yKTp0LmFwcGx5KG8scikpfXZhciB3ZT1mdW5jdGlvbih0KXt2YXIgcixlLGwsbixpO3QucnRsP2k9dC5zbGlkZUNvdW50LTEtdC5pbmRleDppPXQuaW5kZXgsbD1pPDB8fGk+PXQuc2xpZGVDb3VudCx0LmNlbnRlck1vZGU/KG49TWF0aC5mbG9vcih0LnNsaWRlc1RvU2hvdy8yKSxlPShpLXQuY3VycmVudFNsaWRlKSV0LnNsaWRlQ291bnQ9PT0wLGk+dC5jdXJyZW50U2xpZGUtbi0xJiZpPD10LmN1cnJlbnRTbGlkZStuJiYocj0hMCkpOnI9dC5jdXJyZW50U2xpZGU8PWkmJmk8dC5jdXJyZW50U2xpZGUrdC5zbGlkZXNUb1Nob3c7dmFyIGE7dC50YXJnZXRTbGlkZTwwP2E9dC50YXJnZXRTbGlkZSt0LnNsaWRlQ291bnQ6dC50YXJnZXRTbGlkZT49dC5zbGlkZUNvdW50P2E9dC50YXJnZXRTbGlkZS10LnNsaWRlQ291bnQ6YT10LnRhcmdldFNsaWRlO3ZhciBkPWk9PT1hO3JldHVybnsic2xpY2stc2xpZGUiOiEwLCJzbGljay1hY3RpdmUiOnIsInNsaWNrLWNlbnRlciI6ZSwic2xpY2stY2xvbmVkIjpsLCJzbGljay1jdXJyZW50IjpkfX0sWGU9ZnVuY3Rpb24odCl7dmFyIHI9e307cmV0dXJuKHQudmFyaWFibGVXaWR0aD09PXZvaWQgMHx8dC52YXJpYWJsZVdpZHRoPT09ITEpJiYoci53aWR0aD10LnNsaWRlV2lkdGgpLHQuZmFkZSYmKHIucG9zaXRpb249InJlbGF0aXZlIix0LnZlcnRpY2FsJiZ0LnNsaWRlSGVpZ2h0P3IudG9wPS10LmluZGV4KnBhcnNlSW50KHQuc2xpZGVIZWlnaHQpOnIubGVmdD0tdC5pbmRleCpwYXJzZUludCh0LnNsaWRlV2lkdGgpLHIub3BhY2l0eT10LmN1cnJlbnRTbGlkZT09PXQuaW5kZXg/MTowLHIuekluZGV4PXQuY3VycmVudFNsaWRlPT09dC5pbmRleD85OTk6OTk4LHQudXNlQ1NTJiYoci50cmFuc2l0aW9uPSJvcGFjaXR5ICIrdC5zcGVlZCsibXMgIit0LmNzc0Vhc2UrIiwgdmlzaWJpbGl0eSAiK3Quc3BlZWQrIm1zICIrdC5jc3NFYXNlKSkscn0sa2U9ZnVuY3Rpb24odCxyKXtyZXR1cm4gdC5rZXkrIi0iK3J9LE1lPWZ1bmN0aW9uKHQpe3ZhciByLGU9W10sbD1bXSxuPVtdLGk9Yy5DaGlsZHJlbi5jb3VudCh0LmNoaWxkcmVuKSxhPW1lKHQpLGQ9eWUodCk7cmV0dXJuIGMuQ2hpbGRyZW4uZm9yRWFjaCh0LmNoaWxkcmVuLGZ1bmN0aW9uKHAsUyl7dmFyIGYsYj17bWVzc2FnZToiY2hpbGRyZW4iLGluZGV4OlMsc2xpZGVzVG9TY3JvbGw6dC5zbGlkZXNUb1Njcm9sbCxjdXJyZW50U2xpZGU6dC5jdXJyZW50U2xpZGV9OyF0LmxhenlMb2FkfHx0LmxhenlMb2FkJiZ0LmxhenlMb2FkZWRMaXN0LmluZGV4T2YoUyk+PTA/Zj1wOmY9Yy5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwpO3ZhciBrPVhlKCgwLHMuWikoKDAscy5aKSh7fSx0KSx7fSx7aW5kZXg6U30pKSxDPWYucHJvcHMuY2xhc3NOYW1lfHwiIix2PXdlKCgwLHMuWikoKDAscy5aKSh7fSx0KSx7fSx7aW5kZXg6U30pKTtpZihlLnB1c2goYy5jbG9uZUVsZW1lbnQoZix7a2V5OiJvcmlnaW5hbCIra2UoZixTKSwiZGF0YS1pbmRleCI6UyxjbGFzc05hbWU6TigpKHYsQyksdGFiSW5kZXg6Ii0xIiwiYXJpYS1oaWRkZW4iOiF2WyJzbGljay1hY3RpdmUiXSxzdHlsZTooMCxzLlopKCgwLHMuWikoe291dGxpbmU6Im5vbmUifSxmLnByb3BzLnN0eWxlfHx7fSksayksb25DbGljazpmdW5jdGlvbihoKXtmLnByb3BzJiZmLnByb3BzLm9uQ2xpY2smJmYucHJvcHMub25DbGljayhoKSx0LmZvY3VzT25TZWxlY3QmJnQuZm9jdXNPblNlbGVjdChiKX19KSksdC5pbmZpbml0ZSYmaT4xJiZ0LmZhZGU9PT0hMSYmIXQudW5zbGljayl7dmFyIHk9aS1TO3k8PVcodCkmJihyPS15LHI+PWEmJihmPXApLHY9d2UoKDAscy5aKSgoMCxzLlopKHt9LHQpLHt9LHtpbmRleDpyfSkpLGwucHVzaChjLmNsb25lRWxlbWVudChmLHtrZXk6InByZWNsb25lZCIra2UoZixyKSwiZGF0YS1pbmRleCI6cix0YWJJbmRleDoiLTEiLGNsYXNzTmFtZTpOKCkodixDKSwiYXJpYS1oaWRkZW4iOiF2WyJzbGljay1hY3RpdmUiXSxzdHlsZTooMCxzLlopKCgwLHMuWikoe30sZi5wcm9wcy5zdHlsZXx8e30pLGspLG9uQ2xpY2s6ZnVuY3Rpb24oaCl7Zi5wcm9wcyYmZi5wcm9wcy5vbkNsaWNrJiZmLnByb3BzLm9uQ2xpY2soaCksdC5mb2N1c09uU2VsZWN0JiZ0LmZvY3VzT25TZWxlY3QoYil9fSkpKSxyPWkrUyxyPGQmJihmPXApLHY9d2UoKDAscy5aKSgoMCxzLlopKHt9LHQpLHt9LHtpbmRleDpyfSkpLG4ucHVzaChjLmNsb25lRWxlbWVudChmLHtrZXk6InBvc3RjbG9uZWQiK2tlKGYsciksImRhdGEtaW5kZXgiOnIsdGFiSW5kZXg6Ii0xIixjbGFzc05hbWU6TigpKHYsQyksImFyaWEtaGlkZGVuIjohdlsic2xpY2stYWN0aXZlIl0sc3R5bGU6KDAscy5aKSgoMCxzLlopKHt9LGYucHJvcHMuc3R5bGV8fHt9KSxrKSxvbkNsaWNrOmZ1bmN0aW9uKGgpe2YucHJvcHMmJmYucHJvcHMub25DbGljayYmZi5wcm9wcy5vbkNsaWNrKGgpLHQuZm9jdXNPblNlbGVjdCYmdC5mb2N1c09uU2VsZWN0KGIpfX0pKX19KSx0LnJ0bD9sLmNvbmNhdChlLG4pLnJldmVyc2UoKTpsLmNvbmNhdChlLG4pfSxCZT1mdW5jdGlvbihvKXtmdW5jdGlvbiB0KCl7dmFyIHI7KDAsVS5aKSh0aGlzLHQpO2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLGw9bmV3IEFycmF5KGUpLG49MDtuPGU7bisrKWxbbl09YXJndW1lbnRzW25dO3JldHVybiByPWplKHRoaXMsdCxbXS5jb25jYXQobCkpLCgwLGcuWikociwibm9kZSIsbnVsbCksKDAsZy5aKShyLCJoYW5kbGVSZWYiLGZ1bmN0aW9uKGkpe3Iubm9kZT1pfSkscn1yZXR1cm4oMCxYLlopKHQsbyksKDAsSS5aKSh0LFt7a2V5OiJyZW5kZXIiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9TWUodGhpcy5wcm9wcyksbD10aGlzLnByb3BzLG49bC5vbk1vdXNlRW50ZXIsaT1sLm9uTW91c2VPdmVyLGE9bC5vbk1vdXNlTGVhdmUsZD17b25Nb3VzZUVudGVyOm4sb25Nb3VzZU92ZXI6aSxvbk1vdXNlTGVhdmU6YX07cmV0dXJuIGMuY3JlYXRlRWxlbWVudCgiZGl2IiwoMCxZLlopKHtyZWY6dGhpcy5oYW5kbGVSZWYsY2xhc3NOYW1lOiJzbGljay10cmFjayIsc3R5bGU6dGhpcy5wcm9wcy50cmFja1N0eWxlfSxkKSxlKX19XSl9KGMuUHVyZUNvbXBvbmVudCk7ZnVuY3Rpb24gRmUobyx0LHIpe3JldHVybiB0PSgwLE0uWikodCksKDAsSC5aKShvLCgwLCQuWikoKT9SZWZsZWN0LmNvbnN0cnVjdCh0LHJ8fFtdLCgwLE0uWikobykuY29uc3RydWN0b3IpOnQuYXBwbHkobyxyKSl9dmFyIEllPWZ1bmN0aW9uKHQpe3ZhciByO3JldHVybiB0LmluZmluaXRlP3I9TWF0aC5jZWlsKHQuc2xpZGVDb3VudC90LnNsaWRlc1RvU2Nyb2xsKTpyPU1hdGguY2VpbCgodC5zbGlkZUNvdW50LXQuc2xpZGVzVG9TaG93KS90LnNsaWRlc1RvU2Nyb2xsKSsxLHJ9LFllPWZ1bmN0aW9uKG8pe2Z1bmN0aW9uIHQoKXtyZXR1cm4oMCxVLlopKHRoaXMsdCksRmUodGhpcyx0LGFyZ3VtZW50cyl9cmV0dXJuKDAsWC5aKSh0LG8pLCgwLEkuWikodCxbe2tleToiY2xpY2tIYW5kbGVyIix2YWx1ZTpmdW5jdGlvbihlLGwpe2wucHJldmVudERlZmF1bHQoKSx0aGlzLnByb3BzLmNsaWNrSGFuZGxlcihlKX19LHtrZXk6InJlbmRlciIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFyIGU9dGhpcy5wcm9wcyxsPWUub25Nb3VzZUVudGVyLG49ZS5vbk1vdXNlT3ZlcixpPWUub25Nb3VzZUxlYXZlLGE9ZS5pbmZpbml0ZSxkPWUuc2xpZGVzVG9TY3JvbGwscD1lLnNsaWRlc1RvU2hvdyxTPWUuc2xpZGVDb3VudCxmPWUuY3VycmVudFNsaWRlLGI9SWUoe3NsaWRlQ291bnQ6UyxzbGlkZXNUb1Njcm9sbDpkLHNsaWRlc1RvU2hvdzpwLGluZmluaXRlOmF9KSxrPXtvbk1vdXNlRW50ZXI6bCxvbk1vdXNlT3ZlcjpuLG9uTW91c2VMZWF2ZTppfSxDPVtdLHY9MDt2PGI7disrKXt2YXIgeT0odisxKSpkLTEsVD1hP3k6TGUoeSwwLFMtMSksaD1ULShkLTEpLFo9YT9oOkxlKGgsMCxTLTEpLEU9TigpKHsic2xpY2stYWN0aXZlIjphP2Y+PVomJmY8PVQ6Zj09PVp9KSxPPXttZXNzYWdlOiJkb3RzIixpbmRleDp2LHNsaWRlc1RvU2Nyb2xsOmQsY3VycmVudFNsaWRlOmZ9LFA9dGhpcy5jbGlja0hhbmRsZXIuYmluZCh0aGlzLE8pO0M9Qy5jb25jYXQoYy5jcmVhdGVFbGVtZW50KCJsaSIse2tleTp2LGNsYXNzTmFtZTpFfSxjLmNsb25lRWxlbWVudCh0aGlzLnByb3BzLmN1c3RvbVBhZ2luZyh2KSx7b25DbGljazpQfSkpKX1yZXR1cm4gYy5jbG9uZUVsZW1lbnQodGhpcy5wcm9wcy5hcHBlbmREb3RzKEMpLCgwLHMuWikoe2NsYXNzTmFtZTp0aGlzLnByb3BzLmRvdHNDbGFzc30saykpfX1dKX0oYy5QdXJlQ29tcG9uZW50KTtmdW5jdGlvbiBaZShvLHQscil7cmV0dXJuIHQ9KDAsTS5aKSh0KSwoMCxILlopKG8sKDAsJC5aKSgpP1JlZmxlY3QuY29uc3RydWN0KHQscnx8W10sKDAsTS5aKShvKS5jb25zdHJ1Y3Rvcik6dC5hcHBseShvLHIpKX12YXIgaWU9ZnVuY3Rpb24obyl7ZnVuY3Rpb24gdCgpe3JldHVybigwLFUuWikodGhpcyx0KSxaZSh0aGlzLHQsYXJndW1lbnRzKX1yZXR1cm4oMCxYLlopKHQsbyksKDAsSS5aKSh0LFt7a2V5OiJjbGlja0hhbmRsZXIiLHZhbHVlOmZ1bmN0aW9uKGUsbCl7bCYmbC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMucHJvcHMuY2xpY2tIYW5kbGVyKGUsbCl9fSx7a2V5OiJyZW5kZXIiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9eyJzbGljay1hcnJvdyI6ITAsInNsaWNrLXByZXYiOiEwfSxsPXRoaXMuY2xpY2tIYW5kbGVyLmJpbmQodGhpcyx7bWVzc2FnZToicHJldmlvdXMifSk7IXRoaXMucHJvcHMuaW5maW5pdGUmJih0aGlzLnByb3BzLmN1cnJlbnRTbGlkZT09PTB8fHRoaXMucHJvcHMuc2xpZGVDb3VudDw9dGhpcy5wcm9wcy5zbGlkZXNUb1Nob3cpJiYoZVsic2xpY2stZGlzYWJsZWQiXT0hMCxsPW51bGwpO3ZhciBuPXtrZXk6IjAiLCJkYXRhLXJvbGUiOiJub25lIixjbGFzc05hbWU6TigpKGUpLHN0eWxlOntkaXNwbGF5OiJibG9jayJ9LG9uQ2xpY2s6bH0saT17Y3VycmVudFNsaWRlOnRoaXMucHJvcHMuY3VycmVudFNsaWRlLHNsaWRlQ291bnQ6dGhpcy5wcm9wcy5zbGlkZUNvdW50fSxhO3JldHVybiB0aGlzLnByb3BzLnByZXZBcnJvdz9hPWMuY2xvbmVFbGVtZW50KHRoaXMucHJvcHMucHJldkFycm93LCgwLHMuWikoKDAscy5aKSh7fSxuKSxpKSk6YT1jLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIsKDAsWS5aKSh7a2V5OiIwIix0eXBlOiJidXR0b24ifSxuKSwiICIsIlByZXZpb3VzIiksYX19XSl9KGMuUHVyZUNvbXBvbmVudCksVWU9ZnVuY3Rpb24obyl7ZnVuY3Rpb24gdCgpe3JldHVybigwLFUuWikodGhpcyx0KSxaZSh0aGlzLHQsYXJndW1lbnRzKX1yZXR1cm4oMCxYLlopKHQsbyksKDAsSS5aKSh0LFt7a2V5OiJjbGlja0hhbmRsZXIiLHZhbHVlOmZ1bmN0aW9uKGUsbCl7bCYmbC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMucHJvcHMuY2xpY2tIYW5kbGVyKGUsbCl9fSx7a2V5OiJyZW5kZXIiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9eyJzbGljay1hcnJvdyI6ITAsInNsaWNrLW5leHQiOiEwfSxsPXRoaXMuY2xpY2tIYW5kbGVyLmJpbmQodGhpcyx7bWVzc2FnZToibmV4dCJ9KTtjZSh0aGlzLnByb3BzKXx8KGVbInNsaWNrLWRpc2FibGVkIl09ITAsbD1udWxsKTt2YXIgbj17a2V5OiIxIiwiZGF0YS1yb2xlIjoibm9uZSIsY2xhc3NOYW1lOk4oKShlKSxzdHlsZTp7ZGlzcGxheToiYmxvY2sifSxvbkNsaWNrOmx9LGk9e2N1cnJlbnRTbGlkZTp0aGlzLnByb3BzLmN1cnJlbnRTbGlkZSxzbGlkZUNvdW50OnRoaXMucHJvcHMuc2xpZGVDb3VudH0sYTtyZXR1cm4gdGhpcy5wcm9wcy5uZXh0QXJyb3c/YT1jLmNsb25lRWxlbWVudCh0aGlzLnByb3BzLm5leHRBcnJvdywoMCxzLlopKCgwLHMuWikoe30sbiksaSkpOmE9Yy5jcmVhdGVFbGVtZW50KCJidXR0b24iLCgwLFkuWikoe2tleToiMSIsdHlwZToiYnV0dG9uIn0sbiksIiAiLCJOZXh0IiksYX19XSl9KGMuUHVyZUNvbXBvbmVudCksZWU9bSg5MTAzMyksSGU9WyJhbmltYXRpbmciXTtmdW5jdGlvbiBUZShvLHQscil7cmV0dXJuIHQ9KDAsTS5aKSh0KSwoMCxILlopKG8sKDAsJC5aKSgpP1JlZmxlY3QuY29uc3RydWN0KHQscnx8W10sKDAsTS5aKShvKS5jb25zdHJ1Y3Rvcik6dC5hcHBseShvLHIpKX12YXIgZXQ9ZnVuY3Rpb24obyl7ZnVuY3Rpb24gdChyKXt2YXIgZTsoMCxVLlopKHRoaXMsdCksZT1UZSh0aGlzLHQsW3JdKSwoMCxnLlopKGUsImxpc3RSZWZIYW5kbGVyIixmdW5jdGlvbihuKXtyZXR1cm4gZS5saXN0PW59KSwoMCxnLlopKGUsInRyYWNrUmVmSGFuZGxlciIsZnVuY3Rpb24obil7cmV0dXJuIGUudHJhY2s9bn0pLCgwLGcuWikoZSwiYWRhcHRIZWlnaHQiLGZ1bmN0aW9uKCl7aWYoZS5wcm9wcy5hZGFwdGl2ZUhlaWdodCYmZS5saXN0KXt2YXIgbj1lLmxpc3QucXVlcnlTZWxlY3RvcignW2RhdGEtaW5kZXg9IicuY29uY2F0KGUuc3RhdGUuY3VycmVudFNsaWRlLCciXScpKTtlLmxpc3Quc3R5bGUuaGVpZ2h0PU9lKG4pKyJweCJ9fSksKDAsZy5aKShlLCJjb21wb25lbnREaWRNb3VudCIsZnVuY3Rpb24oKXtpZihlLnByb3BzLm9uSW5pdCYmZS5wcm9wcy5vbkluaXQoKSxlLnByb3BzLmxhenlMb2FkKXt2YXIgbj1kZSgoMCxzLlopKCgwLHMuWikoe30sZS5wcm9wcyksZS5zdGF0ZSkpO24ubGVuZ3RoPjAmJihlLnNldFN0YXRlKGZ1bmN0aW9uKGEpe3JldHVybntsYXp5TG9hZGVkTGlzdDphLmxhenlMb2FkZWRMaXN0LmNvbmNhdChuKX19KSxlLnByb3BzLm9uTGF6eUxvYWQmJmUucHJvcHMub25MYXp5TG9hZChuKSl9dmFyIGk9KDAscy5aKSh7bGlzdFJlZjplLmxpc3QsdHJhY2tSZWY6ZS50cmFja30sZS5wcm9wcyk7ZS51cGRhdGVTdGF0ZShpLCEwLGZ1bmN0aW9uKCl7ZS5hZGFwdEhlaWdodCgpLGUucHJvcHMuYXV0b3BsYXkmJmUuYXV0b1BsYXkoInBsYXlpbmciKX0pLGUucHJvcHMubGF6eUxvYWQ9PT0icHJvZ3Jlc3NpdmUiJiYoZS5sYXp5TG9hZFRpbWVyPXNldEludGVydmFsKGUucHJvZ3Jlc3NpdmVMYXp5TG9hZCwxZTMpKSxlLnJvPW5ldyBlZS5aKGZ1bmN0aW9uKCl7ZS5zdGF0ZS5hbmltYXRpbmc/KGUub25XaW5kb3dSZXNpemVkKCExKSxlLmNhbGxiYWNrVGltZXJzLnB1c2goc2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiBlLm9uV2luZG93UmVzaXplZCgpfSxlLnByb3BzLnNwZWVkKSkpOmUub25XaW5kb3dSZXNpemVkKCl9KSxlLnJvLm9ic2VydmUoZS5saXN0KSxkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsJiZBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5zbGljay1zbGlkZSIpLGZ1bmN0aW9uKGEpe2Eub25mb2N1cz1lLnByb3BzLnBhdXNlT25Gb2N1cz9lLm9uU2xpZGVGb2N1czpudWxsLGEub25ibHVyPWUucHJvcHMucGF1c2VPbkZvY3VzP2Uub25TbGlkZUJsdXI6bnVsbH0pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyP3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLGUub25XaW5kb3dSZXNpemVkKTp3aW5kb3cuYXR0YWNoRXZlbnQoIm9ucmVzaXplIixlLm9uV2luZG93UmVzaXplZCl9KSwoMCxnLlopKGUsImNvbXBvbmVudFdpbGxVbm1vdW50IixmdW5jdGlvbigpe2UuYW5pbWF0aW9uRW5kQ2FsbGJhY2smJmNsZWFyVGltZW91dChlLmFuaW1hdGlvbkVuZENhbGxiYWNrKSxlLmxhenlMb2FkVGltZXImJmNsZWFySW50ZXJ2YWwoZS5sYXp5TG9hZFRpbWVyKSxlLmNhbGxiYWNrVGltZXJzLmxlbmd0aCYmKGUuY2FsbGJhY2tUaW1lcnMuZm9yRWFjaChmdW5jdGlvbihuKXtyZXR1cm4gY2xlYXJUaW1lb3V0KG4pfSksZS5jYWxsYmFja1RpbWVycz1bXSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXI/d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsZS5vbldpbmRvd1Jlc2l6ZWQpOndpbmRvdy5kZXRhY2hFdmVudCgib25yZXNpemUiLGUub25XaW5kb3dSZXNpemVkKSxlLmF1dG9wbGF5VGltZXImJmNsZWFySW50ZXJ2YWwoZS5hdXRvcGxheVRpbWVyKSxlLnJvLmRpc2Nvbm5lY3QoKX0pLCgwLGcuWikoZSwiY29tcG9uZW50RGlkVXBkYXRlIixmdW5jdGlvbihuKXtpZihlLmNoZWNrSW1hZ2VzTG9hZCgpLGUucHJvcHMub25SZUluaXQmJmUucHJvcHMub25SZUluaXQoKSxlLnByb3BzLmxhenlMb2FkKXt2YXIgaT1kZSgoMCxzLlopKCgwLHMuWikoe30sZS5wcm9wcyksZS5zdGF0ZSkpO2kubGVuZ3RoPjAmJihlLnNldFN0YXRlKGZ1bmN0aW9uKHApe3JldHVybntsYXp5TG9hZGVkTGlzdDpwLmxhenlMb2FkZWRMaXN0LmNvbmNhdChpKX19KSxlLnByb3BzLm9uTGF6eUxvYWQmJmUucHJvcHMub25MYXp5TG9hZChpKSl9ZS5hZGFwdEhlaWdodCgpO3ZhciBhPSgwLHMuWikoKDAscy5aKSh7bGlzdFJlZjplLmxpc3QsdHJhY2tSZWY6ZS50cmFja30sZS5wcm9wcyksZS5zdGF0ZSksZD1lLmRpZFByb3BzQ2hhbmdlKG4pO2QmJmUudXBkYXRlU3RhdGUoYSxkLGZ1bmN0aW9uKCl7ZS5zdGF0ZS5jdXJyZW50U2xpZGU+PWMuQ2hpbGRyZW4uY291bnQoZS5wcm9wcy5jaGlsZHJlbikmJmUuY2hhbmdlU2xpZGUoe21lc3NhZ2U6ImluZGV4IixpbmRleDpjLkNoaWxkcmVuLmNvdW50KGUucHJvcHMuY2hpbGRyZW4pLWUucHJvcHMuc2xpZGVzVG9TaG93LGN1cnJlbnRTbGlkZTplLnN0YXRlLmN1cnJlbnRTbGlkZX0pLChuLmF1dG9wbGF5IT09ZS5wcm9wcy5hdXRvcGxheXx8bi5hdXRvcGxheVNwZWVkIT09ZS5wcm9wcy5hdXRvcGxheVNwZWVkKSYmKCFuLmF1dG9wbGF5JiZlLnByb3BzLmF1dG9wbGF5P2UuYXV0b1BsYXkoInBsYXlpbmciKTplLnByb3BzLmF1dG9wbGF5P2UuYXV0b1BsYXkoInVwZGF0ZSIpOmUucGF1c2UoInBhdXNlZCIpKX0pfSksKDAsZy5aKShlLCJvbldpbmRvd1Jlc2l6ZWQiLGZ1bmN0aW9uKG4pe2UuZGVib3VuY2VkUmVzaXplJiZlLmRlYm91bmNlZFJlc2l6ZS5jYW5jZWwoKSxlLmRlYm91bmNlZFJlc2l6ZT0oMCxOZS5EKSg1MCxmdW5jdGlvbigpe3JldHVybiBlLnJlc2l6ZVdpbmRvdyhuKX0pLGUuZGVib3VuY2VkUmVzaXplKCl9KSwoMCxnLlopKGUsInJlc2l6ZVdpbmRvdyIsZnVuY3Rpb24oKXt2YXIgbj1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXZvaWQgMD9hcmd1bWVudHNbMF06ITAsaT0hIShlLnRyYWNrJiZlLnRyYWNrLm5vZGUpO2lmKGkpe3ZhciBhPSgwLHMuWikoKDAscy5aKSh7bGlzdFJlZjplLmxpc3QsdHJhY2tSZWY6ZS50cmFja30sZS5wcm9wcyksZS5zdGF0ZSk7ZS51cGRhdGVTdGF0ZShhLG4sZnVuY3Rpb24oKXtlLnByb3BzLmF1dG9wbGF5P2UuYXV0b1BsYXkoInVwZGF0ZSIpOmUucGF1c2UoInBhdXNlZCIpfSksZS5zZXRTdGF0ZSh7YW5pbWF0aW5nOiExfSksY2xlYXJUaW1lb3V0KGUuYW5pbWF0aW9uRW5kQ2FsbGJhY2spLGRlbGV0ZSBlLmFuaW1hdGlvbkVuZENhbGxiYWNrfX0pLCgwLGcuWikoZSwidXBkYXRlU3RhdGUiLGZ1bmN0aW9uKG4saSxhKXt2YXIgZD1MKG4pO249KDAscy5aKSgoMCxzLlopKCgwLHMuWikoe30sbiksZCkse30se3NsaWRlSW5kZXg6ZC5jdXJyZW50U2xpZGV9KTt2YXIgcD1fKG4pO249KDAscy5aKSgoMCxzLlopKHt9LG4pLHt9LHtsZWZ0OnB9KTt2YXIgUz1BKG4pOyhpfHxjLkNoaWxkcmVuLmNvdW50KGUucHJvcHMuY2hpbGRyZW4pIT09Yy5DaGlsZHJlbi5jb3VudChuLmNoaWxkcmVuKSkmJihkLnRyYWNrU3R5bGU9UyksZS5zZXRTdGF0ZShkLGEpfSksKDAsZy5aKShlLCJzc3JJbml0IixmdW5jdGlvbigpe2lmKGUucHJvcHMudmFyaWFibGVXaWR0aCl7dmFyIG49MCxpPTAsYT1bXSxkPVcoKDAscy5aKSgoMCxzLlopKCgwLHMuWikoe30sZS5wcm9wcyksZS5zdGF0ZSkse30se3NsaWRlQ291bnQ6ZS5wcm9wcy5jaGlsZHJlbi5sZW5ndGh9KSkscD1uZSgoMCxzLlopKCgwLHMuWikoKDAscy5aKSh7fSxlLnByb3BzKSxlLnN0YXRlKSx7fSx7c2xpZGVDb3VudDplLnByb3BzLmNoaWxkcmVuLmxlbmd0aH0pKTtlLnByb3BzLmNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24oUCl7YS5wdXNoKFAucHJvcHMuc3R5bGUud2lkdGgpLG4rPVAucHJvcHMuc3R5bGUud2lkdGh9KTtmb3IodmFyIFM9MDtTPGQ7UysrKWkrPWFbYS5sZW5ndGgtMS1TXSxuKz1hW2EubGVuZ3RoLTEtU107Zm9yKHZhciBmPTA7ZjxwO2YrKyluKz1hW2ZdO2Zvcih2YXIgYj0wO2I8ZS5zdGF0ZS5jdXJyZW50U2xpZGU7YisrKWkrPWFbYl07dmFyIGs9e3dpZHRoOm4rInB4IixsZWZ0Oi1pKyJweCJ9O2lmKGUucHJvcHMuY2VudGVyTW9kZSl7dmFyIEM9IiIuY29uY2F0KGFbZS5zdGF0ZS5jdXJyZW50U2xpZGVdLCJweCIpO2subGVmdD0iY2FsYygiLmNvbmNhdChrLmxlZnQsIiArICgxMDAlIC0gIikuY29uY2F0KEMsIikgLyAyICkgIil9cmV0dXJue3RyYWNrU3R5bGU6a319dmFyIHY9Yy5DaGlsZHJlbi5jb3VudChlLnByb3BzLmNoaWxkcmVuKSx5PSgwLHMuWikoKDAscy5aKSgoMCxzLlopKHt9LGUucHJvcHMpLGUuc3RhdGUpLHt9LHtzbGlkZUNvdW50OnZ9KSxUPVcoeSkrbmUoeSkrdixoPTEwMC9lLnByb3BzLnNsaWRlc1RvU2hvdypULFo9MTAwL1QsRT0tWiooVyh5KStlLnN0YXRlLmN1cnJlbnRTbGlkZSkqaC8xMDA7ZS5wcm9wcy5jZW50ZXJNb2RlJiYoRSs9KDEwMC1aKmgvMTAwKS8yKTt2YXIgTz17d2lkdGg6aCsiJSIsbGVmdDpFKyIlIn07cmV0dXJue3NsaWRlV2lkdGg6WisiJSIsdHJhY2tTdHlsZTpPfX0pLCgwLGcuWikoZSwiY2hlY2tJbWFnZXNMb2FkIixmdW5jdGlvbigpe3ZhciBuPWUubGlzdCYmZS5saXN0LnF1ZXJ5U2VsZWN0b3JBbGwmJmUubGlzdC5xdWVyeVNlbGVjdG9yQWxsKCIuc2xpY2stc2xpZGUgaW1nIil8fFtdLGk9bi5sZW5ndGgsYT0wO0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwobixmdW5jdGlvbihkKXt2YXIgcD1mdW5jdGlvbigpe3JldHVybisrYSYmYT49aSYmZS5vbldpbmRvd1Jlc2l6ZWQoKX07aWYoIWQub25jbGljaylkLm9uY2xpY2s9ZnVuY3Rpb24oKXtyZXR1cm4gZC5wYXJlbnROb2RlLmZvY3VzKCl9O2Vsc2V7dmFyIFM9ZC5vbmNsaWNrO2Qub25jbGljaz1mdW5jdGlvbihmKXtTKGYpLGQucGFyZW50Tm9kZS5mb2N1cygpfX1kLm9ubG9hZHx8KGUucHJvcHMubGF6eUxvYWQ/ZC5vbmxvYWQ9ZnVuY3Rpb24oKXtlLmFkYXB0SGVpZ2h0KCksZS5jYWxsYmFja1RpbWVycy5wdXNoKHNldFRpbWVvdXQoZS5vbldpbmRvd1Jlc2l6ZWQsZS5wcm9wcy5zcGVlZCkpfTooZC5vbmxvYWQ9cCxkLm9uZXJyb3I9ZnVuY3Rpb24oKXtwKCksZS5wcm9wcy5vbkxhenlMb2FkRXJyb3ImJmUucHJvcHMub25MYXp5TG9hZEVycm9yKCl9KSl9KX0pLCgwLGcuWikoZSwicHJvZ3Jlc3NpdmVMYXp5TG9hZCIsZnVuY3Rpb24oKXtmb3IodmFyIG49W10saT0oMCxzLlopKCgwLHMuWikoe30sZS5wcm9wcyksZS5zdGF0ZSksYT1lLnN0YXRlLmN1cnJlbnRTbGlkZTthPGUuc3RhdGUuc2xpZGVDb3VudCtuZShpKTthKyspaWYoZS5zdGF0ZS5sYXp5TG9hZGVkTGlzdC5pbmRleE9mKGEpPDApe24ucHVzaChhKTticmVha31mb3IodmFyIGQ9ZS5zdGF0ZS5jdXJyZW50U2xpZGUtMTtkPj0tVyhpKTtkLS0paWYoZS5zdGF0ZS5sYXp5TG9hZGVkTGlzdC5pbmRleE9mKGQpPDApe24ucHVzaChkKTticmVha31uLmxlbmd0aD4wPyhlLnNldFN0YXRlKGZ1bmN0aW9uKHApe3JldHVybntsYXp5TG9hZGVkTGlzdDpwLmxhenlMb2FkZWRMaXN0LmNvbmNhdChuKX19KSxlLnByb3BzLm9uTGF6eUxvYWQmJmUucHJvcHMub25MYXp5TG9hZChuKSk6ZS5sYXp5TG9hZFRpbWVyJiYoY2xlYXJJbnRlcnZhbChlLmxhenlMb2FkVGltZXIpLGRlbGV0ZSBlLmxhenlMb2FkVGltZXIpfSksKDAsZy5aKShlLCJzbGlkZUhhbmRsZXIiLGZ1bmN0aW9uKG4pe3ZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTohMSxhPWUucHJvcHMsZD1hLmFzTmF2Rm9yLHA9YS5iZWZvcmVDaGFuZ2UsUz1hLm9uTGF6eUxvYWQsZj1hLnNwZWVkLGI9YS5hZnRlckNoYW5nZSxrPWUuc3RhdGUuY3VycmVudFNsaWRlLEM9eigoMCxzLlopKCgwLHMuWikoKDAscy5aKSh7aW5kZXg6bn0sZS5wcm9wcyksZS5zdGF0ZSkse30se3RyYWNrUmVmOmUudHJhY2ssdXNlQ1NTOmUucHJvcHMudXNlQ1NTJiYhaX0pKSx2PUMuc3RhdGUseT1DLm5leHRTdGF0ZTtpZih2KXtwJiZwKGssdi5jdXJyZW50U2xpZGUpO3ZhciBUPXYubGF6eUxvYWRlZExpc3QuZmlsdGVyKGZ1bmN0aW9uKGgpe3JldHVybiBlLnN0YXRlLmxhenlMb2FkZWRMaXN0LmluZGV4T2YoaCk8MH0pO1MmJlQubGVuZ3RoPjAmJlMoVCksIWUucHJvcHMud2FpdEZvckFuaW1hdGUmJmUuYW5pbWF0aW9uRW5kQ2FsbGJhY2smJihjbGVhclRpbWVvdXQoZS5hbmltYXRpb25FbmRDYWxsYmFjayksYiYmYihrKSxkZWxldGUgZS5hbmltYXRpb25FbmRDYWxsYmFjayksZS5zZXRTdGF0ZSh2LGZ1bmN0aW9uKCl7ZCYmZS5hc05hdkZvckluZGV4IT09biYmKGUuYXNOYXZGb3JJbmRleD1uLGQuaW5uZXJTbGlkZXIuc2xpZGVIYW5kbGVyKG4pKSx5JiYoZS5hbmltYXRpb25FbmRDYWxsYmFjaz1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIGg9eS5hbmltYXRpbmcsWj0oMCxXZS5aKSh5LEhlKTtlLnNldFN0YXRlKFosZnVuY3Rpb24oKXtlLmNhbGxiYWNrVGltZXJzLnB1c2goc2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiBlLnNldFN0YXRlKHthbmltYXRpbmc6aH0pfSwxMCkpLGImJmIodi5jdXJyZW50U2xpZGUpLGRlbGV0ZSBlLmFuaW1hdGlvbkVuZENhbGxiYWNrfSl9LGYpKX0pfX0pLCgwLGcuWikoZSwiY2hhbmdlU2xpZGUiLGZ1bmN0aW9uKG4pe3ZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTohMSxhPSgwLHMuWikoKDAscy5aKSh7fSxlLnByb3BzKSxlLnN0YXRlKSxkPXcoYSxuKTtpZighKGQhPT0wJiYhZCkmJihpPT09ITA/ZS5zbGlkZUhhbmRsZXIoZCxpKTplLnNsaWRlSGFuZGxlcihkKSxlLnByb3BzLmF1dG9wbGF5JiZlLmF1dG9QbGF5KCJ1cGRhdGUiKSxlLnByb3BzLmZvY3VzT25TZWxlY3QpKXt2YXIgcD1lLmxpc3QucXVlcnlTZWxlY3RvckFsbCgiLnNsaWNrLWN1cnJlbnQiKTtwWzBdJiZwWzBdLmZvY3VzKCl9fSksKDAsZy5aKShlLCJjbGlja0hhbmRsZXIiLGZ1bmN0aW9uKG4pe2UuY2xpY2thYmxlPT09ITEmJihuLnN0b3BQcm9wYWdhdGlvbigpLG4ucHJldmVudERlZmF1bHQoKSksZS5jbGlja2FibGU9ITB9KSwoMCxnLlopKGUsImtleUhhbmRsZXIiLGZ1bmN0aW9uKG4pe3ZhciBpPXgobixlLnByb3BzLmFjY2Vzc2liaWxpdHksZS5wcm9wcy5ydGwpO2khPT0iIiYmZS5jaGFuZ2VTbGlkZSh7bWVzc2FnZTppfSl9KSwoMCxnLlopKGUsInNlbGVjdEhhbmRsZXIiLGZ1bmN0aW9uKG4pe2UuY2hhbmdlU2xpZGUobil9KSwoMCxnLlopKGUsImRpc2FibGVCb2R5U2Nyb2xsIixmdW5jdGlvbigpe3ZhciBuPWZ1bmN0aW9uKGEpe2E9YXx8d2luZG93LmV2ZW50LGEucHJldmVudERlZmF1bHQmJmEucHJldmVudERlZmF1bHQoKSxhLnJldHVyblZhbHVlPSExfTt3aW5kb3cub250b3VjaG1vdmU9bn0pLCgwLGcuWikoZSwiZW5hYmxlQm9keVNjcm9sbCIsZnVuY3Rpb24oKXt3aW5kb3cub250b3VjaG1vdmU9bnVsbH0pLCgwLGcuWikoZSwic3dpcGVTdGFydCIsZnVuY3Rpb24obil7ZS5wcm9wcy52ZXJ0aWNhbFN3aXBpbmcmJmUuZGlzYWJsZUJvZHlTY3JvbGwoKTt2YXIgaT1qKG4sZS5wcm9wcy5zd2lwZSxlLnByb3BzLmRyYWdnYWJsZSk7aSE9PSIiJiZlLnNldFN0YXRlKGkpfSksKDAsZy5aKShlLCJzd2lwZU1vdmUiLGZ1bmN0aW9uKG4pe3ZhciBpPVIobiwoMCxzLlopKCgwLHMuWikoKDAscy5aKSh7fSxlLnByb3BzKSxlLnN0YXRlKSx7fSx7dHJhY2tSZWY6ZS50cmFjayxsaXN0UmVmOmUubGlzdCxzbGlkZUluZGV4OmUuc3RhdGUuY3VycmVudFNsaWRlfSkpO2kmJihpLnN3aXBpbmcmJihlLmNsaWNrYWJsZT0hMSksZS5zZXRTdGF0ZShpKSl9KSwoMCxnLlopKGUsInN3aXBlRW5kIixmdW5jdGlvbihuKXt2YXIgaT1KKG4sKDAscy5aKSgoMCxzLlopKCgwLHMuWikoe30sZS5wcm9wcyksZS5zdGF0ZSkse30se3RyYWNrUmVmOmUudHJhY2ssbGlzdFJlZjplLmxpc3Qsc2xpZGVJbmRleDplLnN0YXRlLmN1cnJlbnRTbGlkZX0pKTtpZihpKXt2YXIgYT1pLnRyaWdnZXJTbGlkZUhhbmRsZXI7ZGVsZXRlIGkudHJpZ2dlclNsaWRlSGFuZGxlcixlLnNldFN0YXRlKGkpLGEhPT12b2lkIDAmJihlLnNsaWRlSGFuZGxlcihhKSxlLnByb3BzLnZlcnRpY2FsU3dpcGluZyYmZS5lbmFibGVCb2R5U2Nyb2xsKCkpfX0pLCgwLGcuWikoZSwidG91Y2hFbmQiLGZ1bmN0aW9uKG4pe2Uuc3dpcGVFbmQobiksZS5jbGlja2FibGU9ITB9KSwoMCxnLlopKGUsInNsaWNrUHJldiIsZnVuY3Rpb24oKXtlLmNhbGxiYWNrVGltZXJzLnB1c2goc2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiBlLmNoYW5nZVNsaWRlKHttZXNzYWdlOiJwcmV2aW91cyJ9KX0sMCkpfSksKDAsZy5aKShlLCJzbGlja05leHQiLGZ1bmN0aW9uKCl7ZS5jYWxsYmFja1RpbWVycy5wdXNoKHNldFRpbWVvdXQoZnVuY3Rpb24oKXtyZXR1cm4gZS5jaGFuZ2VTbGlkZSh7bWVzc2FnZToibmV4dCJ9KX0sMCkpfSksKDAsZy5aKShlLCJzbGlja0dvVG8iLGZ1bmN0aW9uKG4pe3ZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTohMTtpZihuPU51bWJlcihuKSxpc05hTihuKSlyZXR1cm4iIjtlLmNhbGxiYWNrVGltZXJzLnB1c2goc2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiBlLmNoYW5nZVNsaWRlKHttZXNzYWdlOiJpbmRleCIsaW5kZXg6bixjdXJyZW50U2xpZGU6ZS5zdGF0ZS5jdXJyZW50U2xpZGV9LGkpfSwwKSl9KSwoMCxnLlopKGUsInBsYXkiLGZ1bmN0aW9uKCl7dmFyIG47aWYoZS5wcm9wcy5ydGwpbj1lLnN0YXRlLmN1cnJlbnRTbGlkZS1lLnByb3BzLnNsaWRlc1RvU2Nyb2xsO2Vsc2UgaWYoY2UoKDAscy5aKSgoMCxzLlopKHt9LGUucHJvcHMpLGUuc3RhdGUpKSluPWUuc3RhdGUuY3VycmVudFNsaWRlK2UucHJvcHMuc2xpZGVzVG9TY3JvbGw7ZWxzZSByZXR1cm4hMTtlLnNsaWRlSGFuZGxlcihuKX0pLCgwLGcuWikoZSwiYXV0b1BsYXkiLGZ1bmN0aW9uKG4pe2UuYXV0b3BsYXlUaW1lciYmY2xlYXJJbnRlcnZhbChlLmF1dG9wbGF5VGltZXIpO3ZhciBpPWUuc3RhdGUuYXV0b3BsYXlpbmc7aWYobj09PSJ1cGRhdGUiKXtpZihpPT09ImhvdmVyZWQifHxpPT09ImZvY3VzZWQifHxpPT09InBhdXNlZCIpcmV0dXJufWVsc2UgaWYobj09PSJsZWF2ZSIpe2lmKGk9PT0icGF1c2VkInx8aT09PSJmb2N1c2VkIilyZXR1cm59ZWxzZSBpZihuPT09ImJsdXIiJiYoaT09PSJwYXVzZWQifHxpPT09ImhvdmVyZWQiKSlyZXR1cm47ZS5hdXRvcGxheVRpbWVyPXNldEludGVydmFsKGUucGxheSxlLnByb3BzLmF1dG9wbGF5U3BlZWQrNTApLGUuc2V0U3RhdGUoe2F1dG9wbGF5aW5nOiJwbGF5aW5nIn0pfSksKDAsZy5aKShlLCJwYXVzZSIsZnVuY3Rpb24obil7ZS5hdXRvcGxheVRpbWVyJiYoY2xlYXJJbnRlcnZhbChlLmF1dG9wbGF5VGltZXIpLGUuYXV0b3BsYXlUaW1lcj1udWxsKTt2YXIgaT1lLnN0YXRlLmF1dG9wbGF5aW5nO249PT0icGF1c2VkIj9lLnNldFN0YXRlKHthdXRvcGxheWluZzoicGF1c2VkIn0pOm49PT0iZm9jdXNlZCI/KGk9PT0iaG92ZXJlZCJ8fGk9PT0icGxheWluZyIpJiZlLnNldFN0YXRlKHthdXRvcGxheWluZzoiZm9jdXNlZCJ9KTppPT09InBsYXlpbmciJiZlLnNldFN0YXRlKHthdXRvcGxheWluZzoiaG92ZXJlZCJ9KX0pLCgwLGcuWikoZSwib25Eb3RzT3ZlciIsZnVuY3Rpb24oKXtyZXR1cm4gZS5wcm9wcy5hdXRvcGxheSYmZS5wYXVzZSgiaG92ZXJlZCIpfSksKDAsZy5aKShlLCJvbkRvdHNMZWF2ZSIsZnVuY3Rpb24oKXtyZXR1cm4gZS5wcm9wcy5hdXRvcGxheSYmZS5zdGF0ZS5hdXRvcGxheWluZz09PSJob3ZlcmVkIiYmZS5hdXRvUGxheSgibGVhdmUiKX0pLCgwLGcuWikoZSwib25UcmFja092ZXIiLGZ1bmN0aW9uKCl7cmV0dXJuIGUucHJvcHMuYXV0b3BsYXkmJmUucGF1c2UoImhvdmVyZWQiKX0pLCgwLGcuWikoZSwib25UcmFja0xlYXZlIixmdW5jdGlvbigpe3JldHVybiBlLnByb3BzLmF1dG9wbGF5JiZlLnN0YXRlLmF1dG9wbGF5aW5nPT09ImhvdmVyZWQiJiZlLmF1dG9QbGF5KCJsZWF2ZSIpfSksKDAsZy5aKShlLCJvblNsaWRlRm9jdXMiLGZ1bmN0aW9uKCl7cmV0dXJuIGUucHJvcHMuYXV0b3BsYXkmJmUucGF1c2UoImZvY3VzZWQiKX0pLCgwLGcuWikoZSwib25TbGlkZUJsdXIiLGZ1bmN0aW9uKCl7cmV0dXJuIGUucHJvcHMuYXV0b3BsYXkmJmUuc3RhdGUuYXV0b3BsYXlpbmc9PT0iZm9jdXNlZCImJmUuYXV0b1BsYXkoImJsdXIiKX0pLCgwLGcuWikoZSwicmVuZGVyIixmdW5jdGlvbigpe3ZhciBuPU4oKSgic2xpY2stc2xpZGVyIixlLnByb3BzLmNsYXNzTmFtZSx7InNsaWNrLXZlcnRpY2FsIjplLnByb3BzLnZlcnRpY2FsLCJzbGljay1pbml0aWFsaXplZCI6ITB9KSxpPSgwLHMuWikoKDAscy5aKSh7fSxlLnByb3BzKSxlLnN0YXRlKSxhPXUoaSxbImZhZGUiLCJjc3NFYXNlIiwic3BlZWQiLCJpbmZpbml0ZSIsImNlbnRlck1vZGUiLCJmb2N1c09uU2VsZWN0IiwiY3VycmVudFNsaWRlIiwibGF6eUxvYWQiLCJsYXp5TG9hZGVkTGlzdCIsInJ0bCIsInNsaWRlV2lkdGgiLCJzbGlkZUhlaWdodCIsImxpc3RIZWlnaHQiLCJ2ZXJ0aWNhbCIsInNsaWRlc1RvU2hvdyIsInNsaWRlc1RvU2Nyb2xsIiwic2xpZGVDb3VudCIsInRyYWNrU3R5bGUiLCJ2YXJpYWJsZVdpZHRoIiwidW5zbGljayIsImNlbnRlclBhZGRpbmciLCJ0YXJnZXRTbGlkZSIsInVzZUNTUyJdKSxkPWUucHJvcHMucGF1c2VPbkhvdmVyO2E9KDAscy5aKSgoMCxzLlopKHt9LGEpLHt9LHtvbk1vdXNlRW50ZXI6ZD9lLm9uVHJhY2tPdmVyOm51bGwsb25Nb3VzZUxlYXZlOmQ/ZS5vblRyYWNrTGVhdmU6bnVsbCxvbk1vdXNlT3ZlcjpkP2Uub25UcmFja092ZXI6bnVsbCxmb2N1c09uU2VsZWN0OmUucHJvcHMuZm9jdXNPblNlbGVjdCYmZS5jbGlja2FibGU/ZS5zZWxlY3RIYW5kbGVyOm51bGx9KTt2YXIgcDtpZihlLnByb3BzLmRvdHM9PT0hMCYmZS5zdGF0ZS5zbGlkZUNvdW50Pj1lLnByb3BzLnNsaWRlc1RvU2hvdyl7dmFyIFM9dShpLFsiZG90c0NsYXNzIiwic2xpZGVDb3VudCIsInNsaWRlc1RvU2hvdyIsImN1cnJlbnRTbGlkZSIsInNsaWRlc1RvU2Nyb2xsIiwiY2xpY2tIYW5kbGVyIiwiY2hpbGRyZW4iLCJjdXN0b21QYWdpbmciLCJpbmZpbml0ZSIsImFwcGVuZERvdHMiXSksZj1lLnByb3BzLnBhdXNlT25Eb3RzSG92ZXI7Uz0oMCxzLlopKCgwLHMuWikoe30sUykse30se2NsaWNrSGFuZGxlcjplLmNoYW5nZVNsaWRlLG9uTW91c2VFbnRlcjpmP2Uub25Eb3RzTGVhdmU6bnVsbCxvbk1vdXNlT3ZlcjpmP2Uub25Eb3RzT3ZlcjpudWxsLG9uTW91c2VMZWF2ZTpmP2Uub25Eb3RzTGVhdmU6bnVsbH0pLHA9Yy5jcmVhdGVFbGVtZW50KFllLFMpfXZhciBiLGssQz11KGksWyJpbmZpbml0ZSIsImNlbnRlck1vZGUiLCJjdXJyZW50U2xpZGUiLCJzbGlkZUNvdW50Iiwic2xpZGVzVG9TaG93IiwicHJldkFycm93IiwibmV4dEFycm93Il0pO0MuY2xpY2tIYW5kbGVyPWUuY2hhbmdlU2xpZGUsZS5wcm9wcy5hcnJvd3MmJihiPWMuY3JlYXRlRWxlbWVudChpZSxDKSxrPWMuY3JlYXRlRWxlbWVudChVZSxDKSk7dmFyIHY9bnVsbDtlLnByb3BzLnZlcnRpY2FsJiYodj17aGVpZ2h0OmUuc3RhdGUubGlzdEhlaWdodH0pO3ZhciB5PW51bGw7ZS5wcm9wcy52ZXJ0aWNhbD09PSExP2UucHJvcHMuY2VudGVyTW9kZT09PSEwJiYoeT17cGFkZGluZzoiMHB4ICIrZS5wcm9wcy5jZW50ZXJQYWRkaW5nfSk6ZS5wcm9wcy5jZW50ZXJNb2RlPT09ITAmJih5PXtwYWRkaW5nOmUucHJvcHMuY2VudGVyUGFkZGluZysiIDBweCJ9KTt2YXIgVD0oMCxzLlopKCgwLHMuWikoe30sdikseSksaD1lLnByb3BzLnRvdWNoTW92ZSxaPXtjbGFzc05hbWU6InNsaWNrLWxpc3QiLHN0eWxlOlQsb25DbGljazplLmNsaWNrSGFuZGxlcixvbk1vdXNlRG93bjpoP2Uuc3dpcGVTdGFydDpudWxsLG9uTW91c2VNb3ZlOmUuc3RhdGUuZHJhZ2dpbmcmJmg/ZS5zd2lwZU1vdmU6bnVsbCxvbk1vdXNlVXA6aD9lLnN3aXBlRW5kOm51bGwsb25Nb3VzZUxlYXZlOmUuc3RhdGUuZHJhZ2dpbmcmJmg/ZS5zd2lwZUVuZDpudWxsLG9uVG91Y2hTdGFydDpoP2Uuc3dpcGVTdGFydDpudWxsLG9uVG91Y2hNb3ZlOmUuc3RhdGUuZHJhZ2dpbmcmJmg/ZS5zd2lwZU1vdmU6bnVsbCxvblRvdWNoRW5kOmg/ZS50b3VjaEVuZDpudWxsLG9uVG91Y2hDYW5jZWw6ZS5zdGF0ZS5kcmFnZ2luZyYmaD9lLnN3aXBlRW5kOm51bGwsb25LZXlEb3duOmUucHJvcHMuYWNjZXNzaWJpbGl0eT9lLmtleUhhbmRsZXI6bnVsbH0sRT17Y2xhc3NOYW1lOm4sZGlyOiJsdHIiLHN0eWxlOmUucHJvcHMuc3R5bGV9O3JldHVybiBlLnByb3BzLnVuc2xpY2smJihaPXtjbGFzc05hbWU6InNsaWNrLWxpc3QifSxFPXtjbGFzc05hbWU6bixzdHlsZTplLnByb3BzLnN0eWxlfSksYy5jcmVhdGVFbGVtZW50KCJkaXYiLEUsZS5wcm9wcy51bnNsaWNrPyIiOmIsYy5jcmVhdGVFbGVtZW50KCJkaXYiLCgwLFkuWikoe3JlZjplLmxpc3RSZWZIYW5kbGVyfSxaKSxjLmNyZWF0ZUVsZW1lbnQoQmUsKDAsWS5aKSh7cmVmOmUudHJhY2tSZWZIYW5kbGVyfSxhKSxlLnByb3BzLmNoaWxkcmVuKSksZS5wcm9wcy51bnNsaWNrPyIiOmssZS5wcm9wcy51bnNsaWNrPyIiOnApfSksZS5saXN0PW51bGwsZS50cmFjaz1udWxsLGUuc3RhdGU9KDAscy5aKSgoMCxzLlopKHt9LHBlKSx7fSx7Y3VycmVudFNsaWRlOmUucHJvcHMuaW5pdGlhbFNsaWRlLHRhcmdldFNsaWRlOmUucHJvcHMuaW5pdGlhbFNsaWRlP2UucHJvcHMuaW5pdGlhbFNsaWRlOjAsc2xpZGVDb3VudDpjLkNoaWxkcmVuLmNvdW50KGUucHJvcHMuY2hpbGRyZW4pfSksZS5jYWxsYmFja1RpbWVycz1bXSxlLmNsaWNrYWJsZT0hMCxlLmRlYm91bmNlZFJlc2l6ZT1udWxsO3ZhciBsPWUuc3NySW5pdCgpO3JldHVybiBlLnN0YXRlPSgwLHMuWikoKDAscy5aKSh7fSxlLnN0YXRlKSxsKSxlfXJldHVybigwLFguWikodCxvKSwoMCxJLlopKHQsW3trZXk6ImRpZFByb3BzQ2hhbmdlIix2YWx1ZTpmdW5jdGlvbihlKXtmb3IodmFyIGw9ITEsbj0wLGk9T2JqZWN0LmtleXModGhpcy5wcm9wcyk7bjxpLmxlbmd0aDtuKyspe3ZhciBhPWlbbl07aWYoIWUuaGFzT3duUHJvcGVydHkoYSkpe2w9ITA7YnJlYWt9aWYoISgoMCxQZS5aKShlW2FdKT09PSJvYmplY3QifHx0eXBlb2YgZVthXT09ImZ1bmN0aW9uInx8aXNOYU4oZVthXSkpJiZlW2FdIT09dGhpcy5wcm9wc1thXSl7bD0hMDticmVha319cmV0dXJuIGx8fGMuQ2hpbGRyZW4uY291bnQodGhpcy5wcm9wcy5jaGlsZHJlbikhPT1jLkNoaWxkcmVuLmNvdW50KGUuY2hpbGRyZW4pfX1dKX0oYy5Db21wb25lbnQpLHR0PW0oODA5NzMpLEdlPW0ubih0dCk7ZnVuY3Rpb24gcnQobyx0LHIpe3JldHVybiB0PSgwLE0uWikodCksKDAsSC5aKShvLCgwLCQuWikoKT9SZWZsZWN0LmNvbnN0cnVjdCh0LHJ8fFtdLCgwLE0uWikobykuY29uc3RydWN0b3IpOnQuYXBwbHkobyxyKSl9dmFyIG50PWZ1bmN0aW9uKG8pe2Z1bmN0aW9uIHQocil7dmFyIGU7cmV0dXJuKDAsVS5aKSh0aGlzLHQpLGU9cnQodGhpcyx0LFtyXSksKDAsZy5aKShlLCJpbm5lclNsaWRlclJlZkhhbmRsZXIiLGZ1bmN0aW9uKGwpe3JldHVybiBlLmlubmVyU2xpZGVyPWx9KSwoMCxnLlopKGUsInNsaWNrUHJldiIsZnVuY3Rpb24oKXtyZXR1cm4gZS5pbm5lclNsaWRlci5zbGlja1ByZXYoKX0pLCgwLGcuWikoZSwic2xpY2tOZXh0IixmdW5jdGlvbigpe3JldHVybiBlLmlubmVyU2xpZGVyLnNsaWNrTmV4dCgpfSksKDAsZy5aKShlLCJzbGlja0dvVG8iLGZ1bmN0aW9uKGwpe3ZhciBuPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTohMTtyZXR1cm4gZS5pbm5lclNsaWRlci5zbGlja0dvVG8obCxuKX0pLCgwLGcuWikoZSwic2xpY2tQYXVzZSIsZnVuY3Rpb24oKXtyZXR1cm4gZS5pbm5lclNsaWRlci5wYXVzZSgicGF1c2VkIil9KSwoMCxnLlopKGUsInNsaWNrUGxheSIsZnVuY3Rpb24oKXtyZXR1cm4gZS5pbm5lclNsaWRlci5hdXRvUGxheSgicGxheSIpfSksZS5zdGF0ZT17YnJlYWtwb2ludDpudWxsfSxlLl9yZXNwb25zaXZlTWVkaWFIYW5kbGVycz1bXSxlfXJldHVybigwLFguWikodCxvKSwoMCxJLlopKHQsW3trZXk6Im1lZGlhIix2YWx1ZTpmdW5jdGlvbihlLGwpe3ZhciBuPXdpbmRvdy5tYXRjaE1lZGlhKGUpLGk9ZnVuY3Rpb24oZCl7dmFyIHA9ZC5tYXRjaGVzO3AmJmwoKX07bi5hZGRMaXN0ZW5lcihpKSxpKG4pLHRoaXMuX3Jlc3BvbnNpdmVNZWRpYUhhbmRsZXJzLnB1c2goe21xbDpuLHF1ZXJ5OmUsbGlzdGVuZXI6aX0pfX0se2tleToiY29tcG9uZW50RGlkTW91bnQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztpZih0aGlzLnByb3BzLnJlc3BvbnNpdmUpe3ZhciBsPXRoaXMucHJvcHMucmVzcG9uc2l2ZS5tYXAoZnVuY3Rpb24oaSl7cmV0dXJuIGkuYnJlYWtwb2ludH0pO2wuc29ydChmdW5jdGlvbihpLGEpe3JldHVybiBpLWF9KSxsLmZvckVhY2goZnVuY3Rpb24oaSxhKXt2YXIgZDthPT09MD9kPUdlKCkoe21pbldpZHRoOjAsbWF4V2lkdGg6aX0pOmQ9R2UoKSh7bWluV2lkdGg6bFthLTFdKzEsbWF4V2lkdGg6aX0pLGhlKCkmJmUubWVkaWEoZCxmdW5jdGlvbigpe2Uuc2V0U3RhdGUoe2JyZWFrcG9pbnQ6aX0pfSl9KTt2YXIgbj1HZSgpKHttaW5XaWR0aDpsLnNsaWNlKC0xKVswXX0pO2hlKCkmJnRoaXMubWVkaWEobixmdW5jdGlvbigpe2Uuc2V0U3RhdGUoe2JyZWFrcG9pbnQ6bnVsbH0pfSl9fX0se2tleToiY29tcG9uZW50V2lsbFVubW91bnQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5fcmVzcG9uc2l2ZU1lZGlhSGFuZGxlcnMuZm9yRWFjaChmdW5jdGlvbihlKXtlLm1xbC5yZW1vdmVMaXN0ZW5lcihlLmxpc3RlbmVyKX0pfX0se2tleToicmVuZGVyIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMsbCxuO3RoaXMuc3RhdGUuYnJlYWtwb2ludD8obj10aGlzLnByb3BzLnJlc3BvbnNpdmUuZmlsdGVyKGZ1bmN0aW9uKHYpe3JldHVybiB2LmJyZWFrcG9pbnQ9PT1lLnN0YXRlLmJyZWFrcG9pbnR9KSxsPW5bMF0uc2V0dGluZ3M9PT0idW5zbGljayI/InVuc2xpY2siOigwLHMuWikoKDAscy5aKSgoMCxzLlopKHt9LFNlKSx0aGlzLnByb3BzKSxuWzBdLnNldHRpbmdzKSk6bD0oMCxzLlopKCgwLHMuWikoe30sU2UpLHRoaXMucHJvcHMpLGwuY2VudGVyTW9kZSYmKGwuc2xpZGVzVG9TY3JvbGw+MSxsLnNsaWRlc1RvU2Nyb2xsPTEpLGwuZmFkZSYmKGwuc2xpZGVzVG9TaG93PjEsbC5zbGlkZXNUb1Njcm9sbD4xLGwuc2xpZGVzVG9TaG93PTEsbC5zbGlkZXNUb1Njcm9sbD0xKTt2YXIgaT1jLkNoaWxkcmVuLnRvQXJyYXkodGhpcy5wcm9wcy5jaGlsZHJlbik7aT1pLmZpbHRlcihmdW5jdGlvbih2KXtyZXR1cm4gdHlwZW9mIHY9PSJzdHJpbmciPyEhdi50cmltKCk6ISF2fSksbC52YXJpYWJsZVdpZHRoJiYobC5yb3dzPjF8fGwuc2xpZGVzUGVyUm93PjEpJiYoY29uc29sZS53YXJuKCJ2YXJpYWJsZVdpZHRoIGlzIG5vdCBzdXBwb3J0ZWQgaW4gY2FzZSBvZiByb3dzID4gMSBvciBzbGlkZXNQZXJSb3cgPiAxIiksbC52YXJpYWJsZVdpZHRoPSExKTtmb3IodmFyIGE9W10sZD1udWxsLHA9MDtwPGkubGVuZ3RoO3ArPWwucm93cypsLnNsaWRlc1BlclJvdyl7Zm9yKHZhciBTPVtdLGY9cDtmPHArbC5yb3dzKmwuc2xpZGVzUGVyUm93O2YrPWwuc2xpZGVzUGVyUm93KXtmb3IodmFyIGI9W10saz1mO2s8ZitsLnNsaWRlc1BlclJvdyYmKGwudmFyaWFibGVXaWR0aCYmaVtrXS5wcm9wcy5zdHlsZSYmKGQ9aVtrXS5wcm9wcy5zdHlsZS53aWR0aCksIShrPj1pLmxlbmd0aCkpO2srPTEpYi5wdXNoKGMuY2xvbmVFbGVtZW50KGlba10se2tleToxMDAqcCsxMCpmK2ssdGFiSW5kZXg6LTEsc3R5bGU6e3dpZHRoOiIiLmNvbmNhdCgxMDAvbC5zbGlkZXNQZXJSb3csIiUiKSxkaXNwbGF5OiJpbmxpbmUtYmxvY2sifX0pKTtTLnB1c2goYy5jcmVhdGVFbGVtZW50KCJkaXYiLHtrZXk6MTAqcCtmfSxiKSl9bC52YXJpYWJsZVdpZHRoP2EucHVzaChjLmNyZWF0ZUVsZW1lbnQoImRpdiIse2tleTpwLHN0eWxlOnt3aWR0aDpkfX0sUykpOmEucHVzaChjLmNyZWF0ZUVsZW1lbnQoImRpdiIse2tleTpwfSxTKSl9aWYobD09PSJ1bnNsaWNrIil7dmFyIEM9InJlZ3VsYXIgc2xpZGVyICIrKHRoaXMucHJvcHMuY2xhc3NOYW1lfHwiIik7cmV0dXJuIGMuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOkN9LGkpfWVsc2UgYS5sZW5ndGg8PWwuc2xpZGVzVG9TaG93JiYhbC5pbmZpbml0ZSYmKGwudW5zbGljaz0hMCk7cmV0dXJuIGMuY3JlYXRlRWxlbWVudChldCwoMCxZLlopKHtzdHlsZTp0aGlzLnByb3BzLnN0eWxlLHJlZjp0aGlzLmlubmVyU2xpZGVyUmVmSGFuZGxlcn0sRChsKSksYSl9fV0pfShjLkNvbXBvbmVudCksaXQ9bnQsYXQ9bSg1MzEyNCksbHQ9bSgxMTU2OCksb3Q9bSgxNDc0Nyksc3Q9bSg4MzU1OSk7Y29uc3QgVmU9Ii0tZG90LWR1cmF0aW9uIixkdD1vPT57Y29uc3R7Y29tcG9uZW50Q2xzOnQsYW50Q2xzOnJ9PW87cmV0dXJue1t0XTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sKDAsb3QuV2YpKG8pKSx7Ii5zbGljay1zbGlkZXIiOntwb3NpdGlvbjoicmVsYXRpdmUiLGRpc3BsYXk6ImJsb2NrIixib3hTaXppbmc6ImJvcmRlci1ib3giLHRvdWNoQWN0aW9uOiJwYW4teSIsV2Via2l0VG91Y2hDYWxsb3V0OiJub25lIixXZWJraXRUYXBIaWdobGlnaHRDb2xvcjoidHJhbnNwYXJlbnQiLCIuc2xpY2stdHJhY2ssIC5zbGljay1saXN0Ijp7dHJhbnNmb3JtOiJ0cmFuc2xhdGUzZCgwLCAwLCAwKSIsdG91Y2hBY3Rpb246InBhbi15In19LCIuc2xpY2stbGlzdCI6e3Bvc2l0aW9uOiJyZWxhdGl2ZSIsZGlzcGxheToiYmxvY2siLG1hcmdpbjowLHBhZGRpbmc6MCxvdmVyZmxvdzoiaGlkZGVuIiwiJjpmb2N1cyI6e291dGxpbmU6Im5vbmUifSwiJi5kcmFnZ2luZyI6e2N1cnNvcjoicG9pbnRlciJ9LCIuc2xpY2stc2xpZGUiOntwb2ludGVyRXZlbnRzOiJub25lIixbYGlucHV0JHtyfS1yYWRpby1pbnB1dCwgaW5wdXQke3J9LWNoZWNrYm94LWlucHV0YF06e3Zpc2liaWxpdHk6ImhpZGRlbiJ9LCImLnNsaWNrLWFjdGl2ZSI6e3BvaW50ZXJFdmVudHM6ImF1dG8iLFtgaW5wdXQke3J9LXJhZGlvLWlucHV0LCBpbnB1dCR7cn0tY2hlY2tib3gtaW5wdXRgXTp7dmlzaWJpbGl0eToidmlzaWJsZSJ9fSwiPiBkaXYgPiBkaXYiOnt2ZXJ0aWNhbEFsaWduOiJib3R0b20ifX19LCIuc2xpY2stdHJhY2siOntwb3NpdGlvbjoicmVsYXRpdmUiLHRvcDowLGluc2V0SW5saW5lU3RhcnQ6MCxkaXNwbGF5OiJibG9jayIsIiY6OmJlZm9yZSwgJjo6YWZ0ZXIiOntkaXNwbGF5OiJ0YWJsZSIsY29udGVudDonIiInfSwiJjo6YWZ0ZXIiOntjbGVhcjoiYm90aCJ9fSwiLnNsaWNrLXNsaWRlIjp7ZGlzcGxheToibm9uZSIsZmxvYXQ6ImxlZnQiLGhlaWdodDoiMTAwJSIsbWluSGVpZ2h0OjEsaW1nOntkaXNwbGF5OiJibG9jayJ9LCImLmRyYWdnaW5nIGltZyI6e3BvaW50ZXJFdmVudHM6Im5vbmUifX0sIi5zbGljay1pbml0aWFsaXplZCAuc2xpY2stc2xpZGUiOntkaXNwbGF5OiJibG9jayJ9LCIuc2xpY2stdmVydGljYWwgLnNsaWNrLXNsaWRlIjp7ZGlzcGxheToiYmxvY2siLGhlaWdodDoiYXV0byJ9fSl9fSx1dD1vPT57Y29uc3R7Y29tcG9uZW50Q2xzOnQsbW90aW9uRHVyYXRpb25TbG93OnIsYXJyb3dTaXplOmUsYXJyb3dPZmZzZXQ6bH09byxuPW8uY2FsYyhlKS5kaXYoTWF0aC5TUVJUMikuZXF1YWwoKTtyZXR1cm57W3RdOnsiLnNsaWNrLXByZXYsIC5zbGljay1uZXh0Ijp7cG9zaXRpb246ImFic29sdXRlIix0b3A6IjUwJSIsd2lkdGg6ZSxoZWlnaHQ6ZSx0cmFuc2Zvcm06InRyYW5zbGF0ZVkoLTUwJSkiLGNvbG9yOiIjZmZmIixvcGFjaXR5Oi40LGJhY2tncm91bmQ6InRyYW5zcGFyZW50IixwYWRkaW5nOjAsbGluZUhlaWdodDowLGJvcmRlcjowLG91dGxpbmU6Im5vbmUiLGN1cnNvcjoicG9pbnRlciIsekluZGV4OjEsdHJhbnNpdGlvbjpgb3BhY2l0eSAke3J9YCwiJjpob3ZlciwgJjpmb2N1cyI6e29wYWNpdHk6MX0sIiYuc2xpY2stZGlzYWJsZWQiOntwb2ludGVyRXZlbnRzOiJub25lIixvcGFjaXR5OjB9LCImOjphZnRlciI6e2JveFNpemluZzoiYm9yZGVyLWJveCIscG9zaXRpb246ImFic29sdXRlIix0b3A6by5jYWxjKGUpLnN1YihuKS5kaXYoMikuZXF1YWwoKSxpbnNldElubGluZVN0YXJ0Om8uY2FsYyhlKS5zdWIobikuZGl2KDIpLmVxdWFsKCksZGlzcGxheToiaW5saW5lLWJsb2NrIix3aWR0aDpuLGhlaWdodDpuLGJvcmRlcjoiMCBzb2xpZCBjdXJyZW50Y29sb3IiLGJvcmRlcklubGluZVdpZHRoOiIycHggMCIsYm9yZGVyQmxvY2tXaWR0aDoiMnB4IDAiLGJvcmRlclJhZGl1czoxLGNvbnRlbnQ6JyIiJ319LCIuc2xpY2stcHJldiI6e2luc2V0SW5saW5lU3RhcnQ6bCwiJjo6YWZ0ZXIiOnt0cmFuc2Zvcm06InJvdGF0ZSgtNDVkZWcpIn19LCIuc2xpY2stbmV4dCI6e2luc2V0SW5saW5lRW5kOmwsIiY6OmFmdGVyIjp7dHJhbnNmb3JtOiJyb3RhdGUoMTM1ZGVnKSJ9fX19fSxjdD1vPT57Y29uc3R7Y29tcG9uZW50Q2xzOnQsZG90T2Zmc2V0OnIsZG90V2lkdGg6ZSxkb3RIZWlnaHQ6bCxkb3RHYXA6bixjb2xvckJnQ29udGFpbmVyOmksbW90aW9uRHVyYXRpb25TbG93OmF9PW87cmV0dXJue1t0XTp7Ii5zbGljay1kb3RzIjp7cG9zaXRpb246ImFic29sdXRlIixpbnNldElubGluZUVuZDowLGJvdHRvbTowLGluc2V0SW5saW5lU3RhcnQ6MCx6SW5kZXg6MTUsZGlzcGxheToiZmxleCAhaW1wb3J0YW50IixqdXN0aWZ5Q29udGVudDoiY2VudGVyIixwYWRkaW5nSW5saW5lU3RhcnQ6MCxtYXJnaW46MCxsaXN0U3R5bGU6Im5vbmUiLCImLWJvdHRvbSI6e2JvdHRvbTpyfSwiJi10b3AiOnt0b3A6cixib3R0b206ImF1dG8ifSxsaTp7cG9zaXRpb246InJlbGF0aXZlIixkaXNwbGF5OiJpbmxpbmUtYmxvY2siLGZsZXg6IjAgMSBhdXRvIixib3hTaXppbmc6ImNvbnRlbnQtYm94Iix3aWR0aDplLGhlaWdodDpsLG1hcmdpbklubGluZTpuLHBhZGRpbmc6MCx0ZXh0QWxpZ246ImNlbnRlciIsdGV4dEluZGVudDotOTk5LHZlcnRpY2FsQWxpZ246InRvcCIsdHJhbnNpdGlvbjpgYWxsICR7YX1gLGJvcmRlclJhZGl1czpsLG92ZXJmbG93OiJoaWRkZW4iLCImOjphZnRlciI6e2Rpc3BsYXk6ImJsb2NrIixwb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDowLGluc2V0SW5saW5lU3RhcnQ6MCx3aWR0aDoiMTAwJSIsaGVpZ2h0OmwsY29udGVudDonIiInLGJhY2tncm91bmQ6aSxib3JkZXJSYWRpdXM6bCxvcGFjaXR5OjEsb3V0bGluZToibm9uZSIsY3Vyc29yOiJwb2ludGVyIixvdmVyZmxvdzoiaGlkZGVuIix0cmFuc2Zvcm06InRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKSJ9LGJ1dHRvbjp7cG9zaXRpb246InJlbGF0aXZlIixkaXNwbGF5OiJibG9jayIsd2lkdGg6IjEwMCUiLGhlaWdodDpsLHBhZGRpbmc6MCxjb2xvcjoidHJhbnNwYXJlbnQiLGZvbnRTaXplOjAsYmFja2dyb3VuZDppLGJvcmRlcjowLGJvcmRlclJhZGl1czpsLG91dGxpbmU6Im5vbmUiLGN1cnNvcjoicG9pbnRlciIsb3BhY2l0eTouMix0cmFuc2l0aW9uOmBhbGwgJHthfWAsb3ZlcmZsb3c6ImhpZGRlbiIsIiY6aG92ZXIiOntvcGFjaXR5Oi43NX0sIiY6OmFmdGVyIjp7cG9zaXRpb246ImFic29sdXRlIixpbnNldDpvLmNhbGMobikubXVsKC0xKS5lcXVhbCgpLGNvbnRlbnQ6JyIiJ319LCImLnNsaWNrLWFjdGl2ZSI6e3dpZHRoOm8uZG90QWN0aXZlV2lkdGgscG9zaXRpb246InJlbGF0aXZlIiwiJjpob3ZlciI6e29wYWNpdHk6MX0sIiY6OmFmdGVyIjp7dHJhbnNmb3JtOiJ0cmFuc2xhdGUzZCgwLCAwLCAwKSIsdHJhbnNpdGlvbjpgdHJhbnNmb3JtIHZhcigke1ZlfSkgZWFzZS1vdXRgfX19fX19fSxmdD1vPT57Y29uc3R7Y29tcG9uZW50Q2xzOnQsZG90T2Zmc2V0OnIsYXJyb3dPZmZzZXQ6ZSxtYXJnaW5YWFM6bH09byxuPXt3aWR0aDpvLmRvdEhlaWdodCxoZWlnaHQ6by5kb3RXaWR0aH07cmV0dXJue1tgJHt0fS12ZXJ0aWNhbGBdOnsiLnNsaWNrLXByZXYsIC5zbGljay1uZXh0Ijp7aW5zZXRJbmxpbmVTdGFydDoiNTAlIixtYXJnaW5CbG9ja1N0YXJ0OiJ1bnNldCIsdHJhbnNmb3JtOiJ0cmFuc2xhdGVYKC01MCUpIn0sIi5zbGljay1wcmV2Ijp7aW5zZXRCbG9ja1N0YXJ0OmUsaW5zZXRJbmxpbmVTdGFydDoiNTAlIiwiJjo6YWZ0ZXIiOnt0cmFuc2Zvcm06InJvdGF0ZSg0NWRlZykifX0sIi5zbGljay1uZXh0Ijp7aW5zZXRCbG9ja1N0YXJ0OiJhdXRvIixpbnNldEJsb2NrRW5kOmUsIiY6OmFmdGVyIjp7dHJhbnNmb3JtOiJyb3RhdGUoLTEzNWRlZykifX0sIi5zbGljay1kb3RzIjp7dG9wOiI1MCUiLGJvdHRvbToiYXV0byIsZmxleERpcmVjdGlvbjoiY29sdW1uIix3aWR0aDpvLmRvdEhlaWdodCxoZWlnaHQ6ImF1dG8iLG1hcmdpbjowLHRyYW5zZm9ybToidHJhbnNsYXRlWSgtNTAlKSIsIiYtbGVmdCI6e2luc2V0SW5saW5lRW5kOiJhdXRvIixpbnNldElubGluZVN0YXJ0OnJ9LCImLXJpZ2h0Ijp7aW5zZXRJbmxpbmVFbmQ6cixpbnNldElubGluZVN0YXJ0OiJhdXRvIn0sbGk6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG4pLHttYXJnaW46YCR7KDAsbHQuYmYpKGwpfSAwYCx2ZXJ0aWNhbEFsaWduOiJiYXNlbGluZSIsYnV0dG9uOm4sIiY6OmFmdGVyIjpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbikse2hlaWdodDowfSksIiYuc2xpY2stYWN0aXZlIjpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbikse2J1dHRvbjpuLCImOjphZnRlciI6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG4pLHt0cmFuc2l0aW9uOmBoZWlnaHQgdmFyKCR7VmV9KSBlYXNlLW91dGB9KX0pfSl9fX19LHZ0PW89Pntjb25zdHtjb21wb25lbnRDbHM6dH09bztyZXR1cm5be1tgJHt0fS1ydGxgXTp7ZGlyZWN0aW9uOiJydGwiLCIuc2xpY2stZG90cyI6e1tgJHt0fS1ydGwmYF06e2ZsZXhEaXJlY3Rpb246InJvdy1yZXZlcnNlIn19fX0se1tgJHt0fS12ZXJ0aWNhbGBdOnsiLnNsaWNrLWRvdHMiOntbYCR7dH0tcnRsJmBdOntmbGV4RGlyZWN0aW9uOiJjb2x1bW4ifX19fV19LGh0PW89Pih7YXJyb3dTaXplOjE2LGFycm93T2Zmc2V0Om8ubWFyZ2luWFMsZG90V2lkdGg6MTYsZG90SGVpZ2h0OjMsZG90R2FwOm8ubWFyZ2luWFhTLGRvdE9mZnNldDoxMixkb3RXaWR0aEFjdGl2ZToyNCxkb3RBY3RpdmVXaWR0aDoyNH0pO3ZhciBwdD0oMCxzdC5JJCkoIkNhcm91c2VsIixvPT5bZHQobyksdXQobyksY3QobyksZnQobyksdnQobyldLGh0LHtkZXByZWNhdGVkVG9rZW5zOltbImRvdFdpZHRoQWN0aXZlIiwiZG90QWN0aXZlV2lkdGgiXV19KSxKZT1mdW5jdGlvbihvLHQpe3ZhciByPXt9O2Zvcih2YXIgZSBpbiBvKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvLGUpJiZ0LmluZGV4T2YoZSk8MCYmKHJbZV09b1tlXSk7aWYobyE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBsPTAsZT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG8pO2w8ZS5sZW5ndGg7bCsrKXQuaW5kZXhPZihlW2xdKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwobyxlW2xdKSYmKHJbZVtsXV09b1tlW2xdXSk7cmV0dXJuIHJ9O2NvbnN0IHFlPSJzbGljay1kb3RzIixfZT1vPT57dmFye2N1cnJlbnRTbGlkZTp0LHNsaWRlQ291bnQ6cn09byxlPUplKG8sWyJjdXJyZW50U2xpZGUiLCJzbGlkZUNvdW50Il0pO3JldHVybiBjLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIsT2JqZWN0LmFzc2lnbih7dHlwZToiYnV0dG9uIn0sZSkpfTt2YXIgZ3Q9Yy5mb3J3YXJkUmVmKChvLHQpPT57Y29uc3R7ZG90czpyPSEwLGFycm93czplPSExLHByZXZBcnJvdzpsPWMuY3JlYXRlRWxlbWVudChfZSx7ImFyaWEtbGFiZWwiOiJwcmV2In0pLG5leHRBcnJvdzpuPWMuY3JlYXRlRWxlbWVudChfZSx7ImFyaWEtbGFiZWwiOiJuZXh0In0pLGRyYWdnYWJsZTppPSExLHdhaXRGb3JBbmltYXRlOmE9ITEsZG90UG9zaXRpb246ZD0iYm90dG9tIix2ZXJ0aWNhbDpwPWQ9PT0ibGVmdCJ8fGQ9PT0icmlnaHQiLHJvb3RDbGFzc05hbWU6UyxjbGFzc05hbWU6ZixzdHlsZTpiLGlkOmssYXV0b3BsYXk6Qz0hMSxhdXRvcGxheVNwZWVkOnY9M2UzfT1vLHk9SmUobyxbImRvdHMiLCJhcnJvd3MiLCJwcmV2QXJyb3ciLCJuZXh0QXJyb3ciLCJkcmFnZ2FibGUiLCJ3YWl0Rm9yQW5pbWF0ZSIsImRvdFBvc2l0aW9uIiwidmVydGljYWwiLCJyb290Q2xhc3NOYW1lIiwiY2xhc3NOYW1lIiwic3R5bGUiLCJpZCIsImF1dG9wbGF5IiwiYXV0b3BsYXlTcGVlZCJdKSx7Z2V0UHJlZml4Q2xzOlQsZGlyZWN0aW9uOmgsY2xhc3NOYW1lOlosc3R5bGU6RX09KDAsYXQuZGopKCJjYXJvdXNlbCIpLE89Yy51c2VSZWYobnVsbCksUD1mdW5jdGlvbihDdCl7bGV0IGJ0PWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTohMTtPLmN1cnJlbnQuc2xpY2tHb1RvKEN0LGJ0KX07Yy51c2VJbXBlcmF0aXZlSGFuZGxlKHQsKCk9Pih7Z29UbzpQLGF1dG9QbGF5Ok8uY3VycmVudC5pbm5lclNsaWRlci5hdXRvUGxheSxpbm5lclNsaWRlcjpPLmN1cnJlbnQuaW5uZXJTbGlkZXIscHJldjpPLmN1cnJlbnQuc2xpY2tQcmV2LG5leHQ6Ty5jdXJyZW50LnNsaWNrTmV4dH0pLFtPLmN1cnJlbnRdKTtjb25zdCBWPWMudXNlUmVmKGMuQ2hpbGRyZW4uY291bnQoby5jaGlsZHJlbikpO2MudXNlRWZmZWN0KCgpPT57Vi5jdXJyZW50IT09Yy5DaGlsZHJlbi5jb3VudChvLmNoaWxkcmVuKSYmKFAoby5pbml0aWFsU2xpZGV8fDAsITEpLFYuY3VycmVudD1jLkNoaWxkcmVuLmNvdW50KG8uY2hpbGRyZW4pKX0sW28uY2hpbGRyZW5dKTtjb25zdCBLPU9iamVjdC5hc3NpZ24oe3ZlcnRpY2FsOnAsY2xhc3NOYW1lOk4oKShmLFopLHN0eWxlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxFKSxiKSxhdXRvcGxheTohIUN9LHkpO0suZWZmZWN0PT09ImZhZGUiJiYoSy5mYWRlPSEwKTtjb25zdCBsZT1UKCJjYXJvdXNlbCIsSy5wcmVmaXhDbHMpLG9lPSEhcixLZT1OKCkocWUsYCR7cWV9LSR7ZH1gLHR5cGVvZiByPT0iYm9vbGVhbiI/ITE6cj09bnVsbD92b2lkIDA6ci5jbGFzc05hbWUpLFtRLHNlLFN0XT1wdChsZSksbXQ9TigpKGxlLHtbYCR7bGV9LXJ0bGBdOmg9PT0icnRsIixbYCR7bGV9LXZlcnRpY2FsYF06Sy52ZXJ0aWNhbH0sc2UsU3QsUykseXQ9QyYmKHR5cGVvZiBDPT0ib2JqZWN0Ij9DLmRvdER1cmF0aW9uOiExKT97W1ZlXTpgJHt2fW1zYH06e307cmV0dXJuIFEoYy5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bXQsaWQ6ayxzdHlsZTp5dH0sYy5jcmVhdGVFbGVtZW50KGl0LE9iamVjdC5hc3NpZ24oe3JlZjpPfSxLLHtkb3RzOm9lLGRvdHNDbGFzczpLZSxhcnJvd3M6ZSxwcmV2QXJyb3c6bCxuZXh0QXJyb3c6bixkcmFnZ2FibGU6aSx2ZXJ0aWNhbFN3aXBpbmc6cCxhdXRvcGxheVNwZWVkOnYsd2FpdEZvckFuaW1hdGU6YX0pKSkpfSl9LDE1NzQ2OmZ1bmN0aW9uKGFlLEYsbSl7InVzZSBzdHJpY3QiO3ZhciBjPW0oMjE1ODQpO0YuWj1jLlp9LDcxMjMwOmZ1bmN0aW9uKGFlLEYsbSl7InVzZSBzdHJpY3QiO3ZhciBjPW0oMTc2MjEpO0YuWj1jLlp9LDY2MzA5OmZ1bmN0aW9uKGFlLEYsbSl7InVzZSBzdHJpY3QiO20uZChGLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGNlfX0pO3ZhciBjPW0oNjcyOTQpLFk9bSg5Mzk2Nykscz1tLm4oWSksVT1tKDk4NDIzKSxJPW0oOTg3ODcpLEg9bSg2OTc2MCksJD1tKDk2MTU5KSxNPW0oNDUzNTMpLFg9bSg1MzEyNCksZz1tKDExNTY4KSxQZT1tKDE1MDYzKSxXZT1tKDE0NzQ3KSxSZT1tKDgzMjYyKSxwZT1tKDgzNTU5KTtjb25zdCBOZT11PT57Y29uc3R7cGFkZGluZ1hYUzpMLGxpbmVXaWR0aDp6LHRhZ1BhZGRpbmdIb3Jpem9udGFsOncsY29tcG9uZW50Q2xzOngsY2FsYzpqfT11LFI9aih3KS5zdWIoeikuZXF1YWwoKSxKPWooTCkuc3ViKHopLmVxdWFsKCk7cmV0dXJue1t4XTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sKDAsV2UuV2YpKHUpKSx7ZGlzcGxheToiaW5saW5lLWJsb2NrIixoZWlnaHQ6ImF1dG8iLG1hcmdpbklubGluZUVuZDp1Lm1hcmdpblhTLHBhZGRpbmdJbmxpbmU6Uixmb250U2l6ZTp1LnRhZ0ZvbnRTaXplLGxpbmVIZWlnaHQ6dS50YWdMaW5lSGVpZ2h0LHdoaXRlU3BhY2U6Im5vd3JhcCIsYmFja2dyb3VuZDp1LmRlZmF1bHRCZyxib3JkZXI6YCR7KDAsZy5iZikodS5saW5lV2lkdGgpfSAke3UubGluZVR5cGV9ICR7dS5jb2xvckJvcmRlcn1gLGJvcmRlclJhZGl1czp1LmJvcmRlclJhZGl1c1NNLG9wYWNpdHk6MSx0cmFuc2l0aW9uOmBhbGwgJHt1Lm1vdGlvbkR1cmF0aW9uTWlkfWAsdGV4dEFsaWduOiJzdGFydCIscG9zaXRpb246InJlbGF0aXZlIixbYCYke3h9LXJ0bGBdOntkaXJlY3Rpb246InJ0bCJ9LCImLCBhLCBhOmhvdmVyIjp7Y29sb3I6dS5kZWZhdWx0Q29sb3J9LFtgJHt4fS1jbG9zZS1pY29uYF06e21hcmdpbklubGluZVN0YXJ0OkosZm9udFNpemU6dS50YWdJY29uU2l6ZSxjb2xvcjp1LmNvbG9yVGV4dERlc2NyaXB0aW9uLGN1cnNvcjoicG9pbnRlciIsdHJhbnNpdGlvbjpgYWxsICR7dS5tb3Rpb25EdXJhdGlvbk1pZH1gLCImOmhvdmVyIjp7Y29sb3I6dS5jb2xvclRleHRIZWFkaW5nfX0sW2AmJHt4fS1oYXMtY29sb3JgXTp7Ym9yZGVyQ29sb3I6InRyYW5zcGFyZW50IixbYCYsIGEsIGE6aG92ZXIsICR7dS5pY29uQ2xzfS1jbG9zZSwgJHt1Lmljb25DbHN9LWNsb3NlOmhvdmVyYF06e2NvbG9yOnUuY29sb3JUZXh0TGlnaHRTb2xpZH19LCImLWNoZWNrYWJsZSI6e2JhY2tncm91bmRDb2xvcjoidHJhbnNwYXJlbnQiLGJvcmRlckNvbG9yOiJ0cmFuc3BhcmVudCIsY3Vyc29yOiJwb2ludGVyIixbYCY6bm90KCR7eH0tY2hlY2thYmxlLWNoZWNrZWQpOmhvdmVyYF06e2NvbG9yOnUuY29sb3JQcmltYXJ5LGJhY2tncm91bmRDb2xvcjp1LmNvbG9yRmlsbFNlY29uZGFyeX0sIiY6YWN0aXZlLCAmLWNoZWNrZWQiOntjb2xvcjp1LmNvbG9yVGV4dExpZ2h0U29saWR9LCImLWNoZWNrZWQiOntiYWNrZ3JvdW5kQ29sb3I6dS5jb2xvclByaW1hcnksIiY6aG92ZXIiOntiYWNrZ3JvdW5kQ29sb3I6dS5jb2xvclByaW1hcnlIb3Zlcn19LCImOmFjdGl2ZSI6e2JhY2tncm91bmRDb2xvcjp1LmNvbG9yUHJpbWFyeUFjdGl2ZX19LCImLWhpZGRlbiI6e2Rpc3BsYXk6Im5vbmUifSxbYD4gJHt1Lmljb25DbHN9ICsgc3BhbiwgPiBzcGFuICsgJHt1Lmljb25DbHN9YF06e21hcmdpbklubGluZVN0YXJ0OlJ9fSksW2Ake3h9LWJvcmRlcmxlc3NgXTp7Ym9yZGVyQ29sb3I6InRyYW5zcGFyZW50IixiYWNrZ3JvdW5kOnUudGFnQm9yZGVybGVzc0JnfX19LGdlPXU9Pntjb25zdHtsaW5lV2lkdGg6TCxmb250U2l6ZUljb246eixjYWxjOnd9PXUseD11LmZvbnRTaXplU007cmV0dXJuKDAsUmUuSVgpKHUse3RhZ0ZvbnRTaXplOngsdGFnTGluZUhlaWdodDooMCxnLmJmKSh3KHUubGluZUhlaWdodFNNKS5tdWwoeCkuZXF1YWwoKSksdGFnSWNvblNpemU6dyh6KS5zdWIodyhMKS5tdWwoMikpLmVxdWFsKCksdGFnUGFkZGluZ0hvcml6b250YWw6OCx0YWdCb3JkZXJsZXNzQmc6dS5kZWZhdWx0Qmd9KX0sTj11PT4oe2RlZmF1bHRCZzpuZXcgUGUudCh1LmNvbG9yRmlsbFF1YXRlcm5hcnkpLm9uQmFja2dyb3VuZCh1LmNvbG9yQmdDb250YWluZXIpLnRvSGV4U3RyaW5nKCksZGVmYXVsdENvbG9yOnUuY29sb3JUZXh0fSk7dmFyIHhlPSgwLHBlLkkkKSgiVGFnIix1PT57Y29uc3QgTD1nZSh1KTtyZXR1cm4gTmUoTCl9LE4pLFNlPWZ1bmN0aW9uKHUsTCl7dmFyIHo9e307Zm9yKHZhciB3IGluIHUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHUsdykmJkwuaW5kZXhPZih3KTwwJiYoelt3XT11W3ddKTtpZih1IT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIHg9MCx3PU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModSk7eDx3Lmxlbmd0aDt4KyspTC5pbmRleE9mKHdbeF0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh1LHdbeF0pJiYoelt3W3hdXT11W3dbeF1dKTtyZXR1cm4gen0sdGU9Yy5mb3J3YXJkUmVmKCh1LEwpPT57Y29uc3R7cHJlZml4Q2xzOnosc3R5bGU6dyxjbGFzc05hbWU6eCxjaGVja2VkOmosb25DaGFuZ2U6UixvbkNsaWNrOkp9PXUsRz1TZSh1LFsicHJlZml4Q2xzIiwic3R5bGUiLCJjbGFzc05hbWUiLCJjaGVja2VkIiwib25DaGFuZ2UiLCJvbkNsaWNrIl0pLHtnZXRQcmVmaXhDbHM6cmUsdGFnOkJ9PWMudXNlQ29udGV4dChYLkVfKSxxPXZlPT57Uj09bnVsbHx8UighaiksSj09bnVsbHx8Sih2ZSl9LEE9cmUoInRhZyIseiksW2ZlLF8sV109eGUoQSksbmU9cygpKEEsYCR7QX0tY2hlY2thYmxlYCx7W2Ake0F9LWNoZWNrYWJsZS1jaGVja2VkYF06an0sQj09bnVsbD92b2lkIDA6Qi5jbGFzc05hbWUseCxfLFcpO3JldHVybiBmZShjLmNyZWF0ZUVsZW1lbnQoInNwYW4iLE9iamVjdC5hc3NpZ24oe30sRyx7cmVmOkwsc3R5bGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHcpLEI9PW51bGw/dm9pZCAwOkIuc3R5bGUpLGNsYXNzTmFtZTpuZSxvbkNsaWNrOnF9KSkpfSksZGU9bSg5ODcxOSk7Y29uc3QgUWU9dT0+KDAsZGUuWikodSwoTCx6KT0+e2xldHt0ZXh0Q29sb3I6dyxsaWdodEJvcmRlckNvbG9yOngsbGlnaHRDb2xvcjpqLGRhcmtDb2xvcjpSfT16O3JldHVybntbYCR7dS5jb21wb25lbnRDbHN9JHt1LmNvbXBvbmVudENsc30tJHtMfWBdOntjb2xvcjp3LGJhY2tncm91bmQ6aixib3JkZXJDb2xvcjp4LCImLWludmVyc2UiOntjb2xvcjp1LmNvbG9yVGV4dExpZ2h0U29saWQsYmFja2dyb3VuZDpSLGJvcmRlckNvbG9yOlJ9LFtgJiR7dS5jb21wb25lbnRDbHN9LWJvcmRlcmxlc3NgXTp7Ym9yZGVyQ29sb3I6InRyYW5zcGFyZW50In19fX0pO3ZhciBtZT0oMCxwZS5iaykoWyJUYWciLCJwcmVzZXQiXSx1PT57Y29uc3QgTD1nZSh1KTtyZXR1cm4gUWUoTCl9LE4pO2Z1bmN0aW9uIHllKHUpe3JldHVybiB0eXBlb2YgdSE9InN0cmluZyI/dTp1LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK3Uuc2xpY2UoMSl9Y29uc3QgdWU9KHUsTCx6KT0+e2NvbnN0IHc9eWUoeik7cmV0dXJue1tgJHt1LmNvbXBvbmVudENsc30ke3UuY29tcG9uZW50Q2xzfS0ke0x9YF06e2NvbG9yOnVbYGNvbG9yJHt6fWBdLGJhY2tncm91bmQ6dVtgY29sb3Ike3d9QmdgXSxib3JkZXJDb2xvcjp1W2Bjb2xvciR7d31Cb3JkZXJgXSxbYCYke3UuY29tcG9uZW50Q2xzfS1ib3JkZXJsZXNzYF06e2JvcmRlckNvbG9yOiJ0cmFuc3BhcmVudCJ9fX19O3ZhciBBZT0oMCxwZS5iaykoWyJUYWciLCJzdGF0dXMiXSx1PT57Y29uc3QgTD1nZSh1KTtyZXR1cm5bdWUoTCwic3VjY2VzcyIsIlN1Y2Nlc3MiKSx1ZShMLCJwcm9jZXNzaW5nIiwiSW5mbyIpLHVlKEwsImVycm9yIiwiRXJyb3IiKSx1ZShMLCJ3YXJuaW5nIiwiV2FybmluZyIpXX0sTiksQ2U9ZnVuY3Rpb24odSxMKXt2YXIgej17fTtmb3IodmFyIHcgaW4gdSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodSx3KSYmTC5pbmRleE9mKHcpPDAmJih6W3ddPXVbd10pO2lmKHUhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgeD0wLHc9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh1KTt4PHcubGVuZ3RoO3grKylMLmluZGV4T2Yod1t4XSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHUsd1t4XSkmJih6W3dbeF1dPXVbd1t4XV0pO3JldHVybiB6fTtjb25zdCBiZT1jLmZvcndhcmRSZWYoKHUsTCk9Pntjb25zdHtwcmVmaXhDbHM6eixjbGFzc05hbWU6dyxyb290Q2xhc3NOYW1lOngsc3R5bGU6aixjaGlsZHJlbjpSLGljb246Sixjb2xvcjpHLG9uQ2xvc2U6cmUsYm9yZGVyZWQ6Qj0hMCx2aXNpYmxlOnF9PXUsQT1DZSh1LFsicHJlZml4Q2xzIiwiY2xhc3NOYW1lIiwicm9vdENsYXNzTmFtZSIsInN0eWxlIiwiY2hpbGRyZW4iLCJpY29uIiwiY29sb3IiLCJvbkNsb3NlIiwiYm9yZGVyZWQiLCJ2aXNpYmxlIl0pLHtnZXRQcmVmaXhDbHM6ZmUsZGlyZWN0aW9uOl8sdGFnOld9PWMudXNlQ29udGV4dChYLkVfKSxbbmUsdmVdPWMudXNlU3RhdGUoITApLERlPSgwLFUuWikoQSxbImNsb3NlSWNvbiIsImNsb3NhYmxlIl0pO2MudXNlRWZmZWN0KCgpPT57cSE9PXZvaWQgMCYmdmUocSl9LFtxXSk7Y29uc3QgRWU9KDAsSS5vMikoRyksemU9KDAsSS55VCkoRyksaGU9RWV8fHplLCRlPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7YmFja2dyb3VuZENvbG9yOkcmJiFoZT9HOnZvaWQgMH0sVz09bnVsbD92b2lkIDA6Vy5zdHlsZSksaiksRD1mZSgidGFnIix6KSxbamUsd2UsWGVdPXhlKEQpLGtlPXMoKShELFc9PW51bGw/dm9pZCAwOlcuY2xhc3NOYW1lLHtbYCR7RH0tJHtHfWBdOmhlLFtgJHtEfS1oYXMtY29sb3JgXTpHJiYhaGUsW2Ake0R9LWhpZGRlbmBdOiFuZSxbYCR7RH0tcnRsYF06Xz09PSJydGwiLFtgJHtEfS1ib3JkZXJsZXNzYF06IUJ9LHcseCx3ZSxYZSksTWU9aWU9PntpZS5zdG9wUHJvcGFnYXRpb24oKSxyZT09bnVsbHx8cmUoaWUpLCFpZS5kZWZhdWx0UHJldmVudGVkJiZ2ZSghMSl9LFssQmVdPSgwLEguWikoKDAsSC53KSh1KSwoMCxILncpKFcpLHtjbG9zYWJsZTohMSxjbG9zZUljb25SZW5kZXI6aWU9Pntjb25zdCBVZT1jLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6YCR7RH0tY2xvc2UtaWNvbmAsb25DbGljazpNZX0saWUpO3JldHVybigwLCQud20pKGllLFVlLGVlPT4oe29uQ2xpY2s6SGU9Pnt2YXIgVGU7KFRlPWVlPT1udWxsP3ZvaWQgMDplZS5vbkNsaWNrKT09PW51bGx8fFRlPT09dm9pZCAwfHxUZS5jYWxsKGVlLEhlKSxNZShIZSl9LGNsYXNzTmFtZTpzKCkoZWU9PW51bGw/dm9pZCAwOmVlLmNsYXNzTmFtZSxgJHtEfS1jbG9zZS1pY29uYCl9KSl9fSksRmU9dHlwZW9mIEEub25DbGljaz09ImZ1bmN0aW9uInx8UiYmUi50eXBlPT09ImEiLEllPUp8fG51bGwsWWU9SWU/Yy5jcmVhdGVFbGVtZW50KGMuRnJhZ21lbnQsbnVsbCxJZSxSJiZjLmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwsUikpOlIsWmU9Yy5jcmVhdGVFbGVtZW50KCJzcGFuIixPYmplY3QuYXNzaWduKHt9LERlLHtyZWY6TCxjbGFzc05hbWU6a2Usc3R5bGU6JGV9KSxZZSxCZSxFZSYmYy5jcmVhdGVFbGVtZW50KG1lLHtrZXk6InByZXNldCIscHJlZml4Q2xzOkR9KSx6ZSYmYy5jcmVhdGVFbGVtZW50KEFlLHtrZXk6InN0YXR1cyIscHJlZml4Q2xzOkR9KSk7cmV0dXJuIGplKEZlP2MuY3JlYXRlRWxlbWVudChNLlose2NvbXBvbmVudDoiVGFnIn0sWmUpOlplKX0pO2JlLkNoZWNrYWJsZVRhZz10ZTt2YXIgY2U9YmV9LDgwOTczOmZ1bmN0aW9uKGFlLEYsbSl7dmFyIGM9bSg3MTE2OSksWT1mdW5jdGlvbihJKXt2YXIgSD0vW2hlaWdodHx3aWR0aF0kLztyZXR1cm4gSC50ZXN0KEkpfSxzPWZ1bmN0aW9uKEkpe3ZhciBIPSIiLCQ9T2JqZWN0LmtleXMoSSk7cmV0dXJuICQuZm9yRWFjaChmdW5jdGlvbihNLFgpe3ZhciBnPUlbTV07TT1jKE0pLFkoTSkmJnR5cGVvZiBnPT0ibnVtYmVyIiYmKGc9ZysicHgiKSxnPT09ITA/SCs9TTpnPT09ITE/SCs9Im5vdCAiK006SCs9IigiK00rIjogIitnKyIpIixYPCQubGVuZ3RoLTEmJihIKz0iIGFuZCAiKX0pLEh9LFU9ZnVuY3Rpb24oSSl7dmFyIEg9IiI7cmV0dXJuIHR5cGVvZiBJPT0ic3RyaW5nIj9JOkkgaW5zdGFuY2VvZiBBcnJheT8oSS5mb3JFYWNoKGZ1bmN0aW9uKCQsTSl7SCs9cygkKSxNPEkubGVuZ3RoLTEmJihIKz0iLCAiKX0pLEgpOnMoSSl9O2FlLmV4cG9ydHM9VX0sNzExNjk6ZnVuY3Rpb24oYWUpe3ZhciBGPWZ1bmN0aW9uKG0pe3JldHVybiBtLnJlcGxhY2UoL1tBLVpdL2csZnVuY3Rpb24oYyl7cmV0dXJuIi0iK2MudG9Mb3dlckNhc2UoKX0pLnRvTG93ZXJDYXNlKCl9O2FlLmV4cG9ydHM9Rn19XSk7CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzIxNTcuMzI4MWZjOWMuY2h1bmsuY3NzIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy8yMTU3LjMyODFmYzljLmNodW5rLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lM2FhNWNlCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy8yMTU3LjMyODFmYzljLmNodW5rLmNzcwpAQCAtMCwwICsxIEBACisuU3cxU2lSM3Awa1BnOWdCVEtpUzl7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJX0uZkxLTmF6NDMzaTRTclJHZEZfc0t7aGVpZ2h0OjEwMCU7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtib3JkZXItcmFkaXVzOjEycHg7b3ZlcmZsb3c6aGlkZGVuO2JveC1zaGFkb3c6MCAycHggOHB4ICMwMDAwMDAxYTt0cmFuc2l0aW9uOmFsbCAuM3MgZWFzZTtiYWNrZ3JvdW5kOiNmZmZ9LmZMS05hejQzM2k0U3JSR2RGX3NLOmhvdmVye3RyYW5zZm9ybTp0cmFuc2xhdGVZKC00cHgpO2JveC1zaGFkb3c6MCA4cHggMjRweCAjMDAwMDAwMjZ9Lkc4bzE0ZHNMcm9JdWY5ZE5adjc2e3dpZHRoOjEwMCU7aGVpZ2h0OjIwMHB4O292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZTtiYWNrZ3JvdW5kOiNmNWY1ZjU7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5zbmN4ZXpvXzQ2aWFMY2Q4ckI4dnt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO29iamVjdC1maXQ6Y29udGFpbjtvYmplY3QtcG9zaXRpb246Y2VudGVyO3RyYW5zaXRpb246dHJhbnNmb3JtIC4zcyBlYXNlO2JhY2tncm91bmQ6I2Y1ZjVmNX0uZkxLTmF6NDMzaTRTclJHZEZfc0s6aG92ZXIgLnNuY3hlem9fNDZpYUxjZDhyQjh2e3RyYW5zZm9ybTpzY2FsZSgxLjAyKX0ubnJmRHlCS0hzNUFNMm5ncHU2SkZ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjhweDtyaWdodDo4cHg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoNDVkZWcsI2ZmNmI2YixvcmFuZ2UpO2NvbG9yOiNmZmY7cGFkZGluZzo0cHggOHB4O2JvcmRlci1yYWRpdXM6MTJweDtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo3MDA7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NHB4O3otaW5kZXg6MTA7Ym94LXNoYWRvdzowIDJweCA0cHggIzAwMDN9LnhvS3NfZDU3WWtfaTVLUDJlRzBGe2ZsZXg6MSAxO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47aGVpZ2h0OjEwMCV9LmtKTlV0N2hQVnQweWRTV0NzTkVBe2ZvbnQtc2l6ZToxNnB4O2ZvbnQtd2VpZ2h0OjYwMDttYXJnaW46MCAwIDEycHg7bGluZS1oZWlnaHQ6MS40O2NvbG9yOiMyNjI2MjY7ZGlzcGxheTotd2Via2l0LWJveDstd2Via2l0LWxpbmUtY2xhbXA6Mjstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7b3ZlcmZsb3c6aGlkZGVuO2hlaWdodDo0NHB4fS5vQXZjSGFlelBsOG95MTlLbVYxRXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2ZvbnQtc2l6ZToxMnB4O2NvbG9yOiM4YzhjOGM7bWFyZ2luLWJvdHRvbToxMnB4O2hlaWdodDoyMHB4fS5BVmhTbXFXMVI5d25VWVM3N0pqdXtmb250LXdlaWdodDo1MDA7Y29sb3I6IzU5NTk1OX0uTHJQcWhRb0Nud3hScU9GWkY3RWN7Y29sb3I6IzhjOGM4Y30uQ2tvaXF5dG9WbllXR3pDcFdJbFF7bWFyZ2luLWJvdHRvbToxMnB4O2hlaWdodDoyNHB4O2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDtnYXA6NHB4O292ZXJmbG93OmhpZGRlbn0uSVA4S2Q2SXJva3ZSY1BzZ3N4R197Zm9udC1zaXplOjExcHg7cGFkZGluZzoycHggNnB4O21hcmdpbjowO2JvcmRlci1yYWRpdXM6NHB4fS5KMVFjNUVYd1lvU0lINmk4Vk1uWXtmbGV4OjEgMTtmb250LXNpemU6MTNweDtjb2xvcjojNTk1OTU5O2xpbmUtaGVpZ2h0OjEuNTttYXJnaW4tYm90dG9tOjE2cHg7ZGlzcGxheTotd2Via2l0LWJveDstd2Via2l0LWxpbmUtY2xhbXA6Mzstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7b3ZlcmZsb3c6aGlkZGVuO2hlaWdodDo2MHB4fS5YVmN1clJrUHRRMHBvRUY1b1Z4d3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO21hcmdpbi10b3A6YXV0bztwYWRkaW5nLXRvcDoxMnB4O2JvcmRlci10b3A6MXB4IHNvbGlkICNmMGYwZjA7aGVpZ2h0OjMycHh9LnBReXI5dXhvRzRJT2hQRFpkeW16e2Rpc3BsYXk6ZmxleDtnYXA6MTZweH0uR1pqMEo2RHFnSWdqOEhPU1NySUZ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NHB4O2ZvbnQtc2l6ZToxMnB4O2NvbG9yOiM4YzhjOGN9LkdaajBKNkRxZ0lnajhIT1NTcklGIC5fWksxUEFPRWdvUHI2STdPM0JIT3tmb250LXNpemU6MTJweH0uQnl2NVdKUWlaUk1tQ3FNbW1xUXp7cGFkZGluZzowO2ZvbnQtc2l6ZToxMnB4O2NvbG9yOiMxODkwZmY7Zm9udC13ZWlnaHQ6NTAwfS5CeXY1V0pRaVpSTW1DcU1tbXFRejpob3Zlcntjb2xvcjojNDBhOWZmfUBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCl7Lkc4bzE0ZHNMcm9JdWY5ZE5adjc2e2hlaWdodDoxNjBweH0ua0pOVXQ3aFBWdDB5ZFNXQ3NORUF7Zm9udC1zaXplOjE0cHg7aGVpZ2h0OjQwcHh9LkoxUWM1RVh3WW9TSUg2aThWTW5Ze2ZvbnQtc2l6ZToxMnB4Oy13ZWJraXQtbGluZS1jbGFtcDoyO2hlaWdodDozNnB4fS5wUXlyOXV4b0c0SU9oUERaZHltentnYXA6MTJweH0uR1pqMEo2RHFnSWdqOEhPU1NySUZ7Zm9udC1zaXplOjExcHh9fQpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy8yMTU3LjU0MTBkZTUyLmFzeW5jLmpzIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy8yMTU3LjU0MTBkZTUyLmFzeW5jLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYzMTlhYTAKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzIxNTcuNTQxMGRlNTIuYXN5bmMuanMKQEAgLTAsMCArMSBAQAorInVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvPXNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm98fFtdKS5wdXNoKFtbMjE1N10sezMyMTU3OmZ1bmN0aW9uKGUsbyx0KXt0LnIobyksby5kZWZhdWx0PXtwb3N0Q2FyZFdyYXBwZXI6IlN3MVNpUjNwMGtQZzlnQlRLaVM5Iixwb3N0Q2FyZDoiZkxLTmF6NDMzaTRTclJHZEZfc0siLGNvdmVyQ29udGFpbmVyOiJHOG8xNGRzTHJvSXVmOWROWnY3NiIsY292ZXJJbWFnZToic25jeGV6b180NmlhTGNkOHJCOHYiLHByb21vdGlvbkJhZGdlOiJucmZEeUJLSHM1QU0ybmdwdTZKRiIsY2FyZENvbnRlbnQ6InhvS3NfZDU3WWtfaTVLUDJlRzBGIixwb3N0VGl0bGU6ImtKTlV0N2hQVnQweWRTV0NzTkVBIixwb3N0TWV0YToib0F2Y0hhZXpQbDhveTE5S21WMUUiLGF1dGhvck5hbWU6IkFWaFNtcVcxUjl3blVZUzc3Smp1IixwdWJsaXNoVGltZToiTHJQcWhRb0Nud3hScU9GWkY3RWMiLHRhZ3NDb250YWluZXI6IkNrb2lxeXRvVm5ZV0d6Q3BXSWxRIix0YWc6IklQOEtkNklyb2t2UmNQc2dzeEdfIixwb3N0U3VtbWFyeToiSjFRYzVFWHdZb1NJSDZpOFZNblkiLHBvc3RGb290ZXI6IlhWY3VyUmtQdFEwcG9FRjVvVnh3IixzdGF0czoicFF5cjl1eG9HNElPaFBEWmR5bXoiLHN0YXRJdGVtOiJHWmowSjZEcWdJZ2o4SE9TU3JJRiIsYW50aWNvbjoiX1pLMVBBT0Vnb1ByNkk3TzNCSE8iLHJlYWRNb3JlQnRuOiJCeXY1V0pRaVpSTW1DcU1tbXFReiJ9fX1dKTsKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvMjE3OS5lY2E5OGZlMy5hc3luYy5qcyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvMjE3OS5lY2E5OGZlMy5hc3luYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xM2MwMjM4Ci0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy8yMTc5LmVjYTk4ZmUzLmFzeW5jLmpzCkBAIC0wLDAgKzEsOTQgQEAKKyEoZnVuY3Rpb24oKXt2YXIgdXA9T2JqZWN0LmRlZmluZVByb3BlcnR5O3ZhciBHdT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzO3ZhciBjcD1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LGRwPU9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGU7dmFyIFF1PShTLFosaSk9PlogaW4gUz91cChTLFose2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOml9KTpTW1pdPWksSnU9KFMsWik9Pntmb3IodmFyIGkgaW4gWnx8KFo9e30pKWNwLmNhbGwoWixpKSYmUXUoUyxpLFpbaV0pO2lmKEd1KWZvcih2YXIgaSBvZiBHdShaKSlkcC5jYWxsKFosaSkmJlF1KFMsaSxaW2ldKTtyZXR1cm4gU307KHNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W10pLnB1c2goW1syMTc5XSx7NjA2OTI6ZnVuY3Rpb24oUyxaLGkpeyJ1c2Ugc3RyaWN0IjtpLmQoWix7WlA6ZnVuY3Rpb24oKXtyZXR1cm4gbnJ9LE5BOmZ1bmN0aW9uKCl7cmV0dXJuIFZ0fSxhSzpmdW5jdGlvbigpe3JldHVybiBabn19KTt2YXIgcz1pKDE0MTMpLGc9aSg5MSksYj1pKDk3Njg1KSxPPWkoNzEwMDIpLEk9aSg3NDkwMiksJD1pKDQ5NDIpLFI9aSgxMDkxNSksRj1pKDY0ODQ3KSxMPWkoMTkwNDMpLFU9aSg3NTY2MSksZGU9aSg0ODE3MSksbz1pKDc0MTM4KSxqPWkoMjE3NzApLERlPWkoMjcwNjgpLG1lPWkoNjcyOTQpLF89aSg1MTI4MCk7ZnVuY3Rpb24gdmUobmUpe3ZhciBrPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXToxMDAsJGU9YXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDAsTmU9KDAsbWUudXNlU3RhdGUpKG5lKSxUZT0oMCxiLlopKE5lLDIpLGF0PVRlWzBdLE9lPVRlWzFdLG10PSgwLF8uZCkobmUpO3JldHVybigwLG1lLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXt2YXIgaHQ9c2V0VGltZW91dChmdW5jdGlvbigpe09lKG10LmN1cnJlbnQpfSxrKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gY2xlYXJUaW1lb3V0KGh0KX19LCRlP1trXS5jb25jYXQoKDAsSS5aKSgkZSkpOnZvaWQgMCksYXR9dmFyIGJlPWkoMzE0MTMpLGxlPWkoMjE1MzIpLFhlPWkoNTczODEpLG9lPWkoNTA2OCksRmU9aSg0ODI5NiksemU9aSgyMTIyKSxkdD1pKDM0MDQxKSxndD1pKDI1Mjc4KSxydD1pKDkzOTY3KSxDdD1pLm4ocnQpLG90PWkoNTAzNDQpLEc9aSg4NTg5MyksdGU9WyJsYWJlbCIsInByZWZpeENscyIsIm9uQ2hhbmdlIiwidmFsdWUiLCJtb2RlIiwiY2hpbGRyZW4iLCJkZWZhdWx0VmFsdWUiLCJzaXplIiwic2hvd1NlYXJjaCIsImRpc2FibGVkIiwic3R5bGUiLCJjbGFzc05hbWUiLCJib3JkZXJlZCIsIm9wdGlvbnMiLCJvblNlYXJjaCIsImFsbG93Q2xlYXIiLCJsYWJlbEluVmFsdWUiLCJmaWVsZE5hbWVzIiwibGlnaHRMYWJlbCIsImxhYmVsVHJpZ2dlciIsIm9wdGlvbkZpbHRlclByb3AiLCJvcHRpb25MYWJlbFByb3AiLCJ2YWx1ZU1heExlbmd0aCIsImZldGNoRGF0YU9uU2VhcmNoIiwiZmV0Y2hEYXRhIl0sUWU9ZnVuY3Rpb24oaywkZSl7cmV0dXJuKDAsTy5aKSgkZSkhPT0ib2JqZWN0Ij9rWyRlXXx8JGU6a1skZT09bnVsbD92b2lkIDA6JGUudmFsdWVdfHwkZS5sYWJlbH0sX2U9ZnVuY3Rpb24oaywkZSl7dmFyIE5lPWsubGFiZWwsVGU9ay5wcmVmaXhDbHMsYXQ9ay5vbkNoYW5nZSxPZT1rLnZhbHVlLG10PWsubW9kZSxodD1rLmNoaWxkcmVuLEZ0PWsuZGVmYXVsdFZhbHVlLCR0PWsuc2l6ZSxBdD1rLnNob3dTZWFyY2gsQnQ9ay5kaXNhYmxlZCxEdD1rLnN0eWxlLFllPWsuY2xhc3NOYW1lLGFuPWsuYm9yZGVyZWQsSHQ9ay5vcHRpb25zLGhuPWsub25TZWFyY2gscXQ9ay5hbGxvd0NsZWFyLHduPWsubGFiZWxJblZhbHVlLFR0PWsuZmllbGROYW1lcyxZbj1rLmxpZ2h0TGFiZWwsVW49ay5sYWJlbFRyaWdnZXIsc249ay5vcHRpb25GaWx0ZXJQcm9wLHZuPWsub3B0aW9uTGFiZWxQcm9wLEhuPXZuPT09dm9pZCAwPyIiOnZuLGx0PWsudmFsdWVNYXhMZW5ndGgscW49bHQ9PT12b2lkIDA/NDE6bHQsdHQ9ay5mZXRjaERhdGFPblNlYXJjaCxQdD10dD09PXZvaWQgMD8hMTp0dCxSbj1rLmZldGNoRGF0YSxYdD0oMCxnLlopKGssdGUpLFhuPWsucGxhY2Vob2xkZXIsRG49WG49PT12b2lkIDA/TmU6WG4scnI9VHR8fHt9LF9uPXJyLmxhYmVsLHBuPV9uPT09dm9pZCAwPyJsYWJlbCI6X24sZXI9cnIudmFsdWUsYm49ZXI9PT12b2lkIDA/InZhbHVlIjplcix5bj0oMCxtZS51c2VDb250ZXh0KShsZS5aUC5Db25maWdDb250ZXh0KSxrbj15bi5nZXRQcmVmaXhDbHMsb249a24oInByby1maWVsZC1zZWxlY3QtbGlnaHQtc2VsZWN0IiksdW49KDAsbWUudXNlU3RhdGUpKCExKSxjbj0oMCxiLlopKHVuLDIpLE9uPWNuWzBdLENuPWNuWzFdLFJyPSgwLG1lLnVzZVN0YXRlKSgiIiksZHI9KDAsYi5aKShSciwyKSxncj1kclswXSx5cj1kclsxXSxmZT0oMCxGLlhqKSgiTGlnaHRTZWxlY3QiLGZ1bmN0aW9uKGtlKXtyZXR1cm4oMCwkLlopKHt9LCIuIi5jb25jYXQob24pLCgwLCQuWikoKDAsJC5aKSh7fSwiIi5jb25jYXQoa2UuYW50Q2xzLCItc2VsZWN0Iikse3Bvc2l0aW9uOiJhYnNvbHV0ZSIsd2lkdGg6IjE1M3B4IixoZWlnaHQ6IjI4cHgiLHZpc2liaWxpdHk6ImhpZGRlbiIsIiYtc2VsZWN0b3IiOntoZWlnaHQ6Mjh9fSksIiYuIi5jb25jYXQob24sIi1zZWFyY2hhYmxlIiksKDAsJC5aKSh7fSwiIi5jb25jYXQoa2UuYW50Q2xzLCItc2VsZWN0Iikse3dpZHRoOiIyMDBweCIsIiYtc2VsZWN0b3IiOntoZWlnaHQ6Mjh9fSkpKX0pLEtlPWZlLndyYXBTU1IsamU9ZmUuaGFzaElkLHdlPSgwLG1lLnVzZU1lbW8pKGZ1bmN0aW9uKCl7dmFyIGtlPXt9O3JldHVybiBIdD09bnVsbHx8SHQuZm9yRWFjaChmdW5jdGlvbihXZSl7dmFyIExlPVdlW0huXXx8V2VbcG5dLE50PVdlW2JuXTtrZVtOdF09TGV8fE50fSksa2V9LFtwbixIdCxibixIbl0pLEhlPSgwLG1lLnVzZU1lbW8pKGZ1bmN0aW9uKCl7cmV0dXJuIFJlZmxlY3QuaGFzKFh0LCJvcGVuIik/WHQ9PW51bGw/dm9pZCAwOlh0Lm9wZW46T259LFtPbixYdF0pLHB0PUFycmF5LmlzQXJyYXkoT2UpP09lLm1hcChmdW5jdGlvbihrZSl7cmV0dXJuIFFlKHdlLGtlKX0pOlFlKHdlLE9lKTtyZXR1cm4gS2UoKDAsRy5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOkN0KCkob24samUsKDAsJC5aKSh7fSwiIi5jb25jYXQob24sIi1zZWFyY2hhYmxlIiksQXQpLCIiLmNvbmNhdChvbiwiLWNvbnRhaW5lci0iKS5jb25jYXQoWHQucGxhY2VtZW50fHwiYm90dG9tTGVmdCIpLFllKSxzdHlsZTpEdCxvbkNsaWNrOmZ1bmN0aW9uKFdlKXt2YXIgTGU7aWYoIUJ0KXt2YXIgTnQ9WW49PW51bGx8fChMZT1Zbi5jdXJyZW50KT09PW51bGx8fExlPT09dm9pZCAwfHwoTGU9TGUubGFiZWxSZWYpPT09bnVsbHx8TGU9PT12b2lkIDB8fChMZT1MZS5jdXJyZW50KT09PW51bGx8fExlPT09dm9pZCAwP3ZvaWQgMDpMZS5jb250YWlucyhXZS50YXJnZXQpO050JiZDbighT24pfX0sY2hpbGRyZW46WygwLEcuanN4KShkdC5aLCgwLHMuWikoKDAscy5aKSgoMCxzLlopKHt9LFh0KSx7fSx7YWxsb3dDbGVhcjpxdCx2YWx1ZTpPZSxtb2RlOm10LGxhYmVsSW5WYWx1ZTp3bixzaXplOiR0LGRpc2FibGVkOkJ0LG9uQ2hhbmdlOmZ1bmN0aW9uKFdlLExlKXthdD09bnVsbHx8YXQoV2UsTGUpLG10IT09Im11bHRpcGxlIiYmQ24oITEpfX0sKDAsYmUuSikoYW4pKSx7fSx7c2hvd1NlYXJjaDpBdCxvblNlYXJjaDpBdD9mdW5jdGlvbihrZSl7UHQmJlJuJiZSbihrZSksaG49PW51bGx8fGhuKGtlKX06dm9pZCAwLHN0eWxlOkR0LGRyb3Bkb3duUmVuZGVyOmZ1bmN0aW9uKFdlKXtyZXR1cm4oMCxHLmpzeHMpKCJkaXYiLHtyZWY6JGUsY2hpbGRyZW46W0F0JiYoMCxHLmpzeCkoImRpdiIse3N0eWxlOnttYXJnaW46IjRweCA4cHgifSxjaGlsZHJlbjooMCxHLmpzeCkoZ3QuWix7dmFsdWU6Z3IsYWxsb3dDbGVhcjohIXF0LG9uQ2hhbmdlOmZ1bmN0aW9uKE50KXt5cihOdC50YXJnZXQudmFsdWUpLFB0JiZSbiYmUm4oTnQudGFyZ2V0LnZhbHVlKSxobj09bnVsbHx8aG4oTnQudGFyZ2V0LnZhbHVlKX0sb25LZXlEb3duOmZ1bmN0aW9uKE50KXtpZihOdC5rZXk9PT0iQmFja3NwYWNlIil7TnQuc3RvcFByb3BhZ2F0aW9uKCk7cmV0dXJufShOdC5rZXk9PT0iQXJyb3dVcCJ8fE50LmtleT09PSJBcnJvd0Rvd24iKSYmTnQucHJldmVudERlZmF1bHQoKX0sc3R5bGU6e3dpZHRoOiIxMDAlIn0scHJlZml4OigwLEcuanN4KShGZS5aLHt9KX0pfSksV2VdfSl9LG9wZW46SGUsb25Ecm9wZG93blZpc2libGVDaGFuZ2U6ZnVuY3Rpb24oV2Upe3ZhciBMZTtXZXx8eXIoIiIpLFVufHxDbihXZSksWHQ9PW51bGx8fChMZT1YdC5vbkRyb3Bkb3duVmlzaWJsZUNoYW5nZSk9PT1udWxsfHxMZT09PXZvaWQgMHx8TGUuY2FsbChYdCxXZSl9LHByZWZpeENsczpUZSxvcHRpb25zOmhufHwhZ3I/SHQ6SHQ9PW51bGw/dm9pZCAwOkh0LmZpbHRlcihmdW5jdGlvbihrZSl7dmFyIFdlLExlO3JldHVybiBzbj8oMCxvdC5aKShrZVtzbl0pLmpvaW4oIiIpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZ3IpOigoV2U9U3RyaW5nKGtlW3BuXSkpPT09bnVsbHx8V2U9PT12b2lkIDB8fChXZT1XZS50b0xvd2VyQ2FzZSgpKT09PW51bGx8fFdlPT09dm9pZCAwP3ZvaWQgMDpXZS5pbmNsdWRlcyhncj09bnVsbD92b2lkIDA6Z3IudG9Mb3dlckNhc2UoKSkpfHwoKExlPWtlW2JuXSk9PT1udWxsfHxMZT09PXZvaWQgMHx8KExlPUxlLnRvU3RyaW5nKCkpPT09bnVsbHx8TGU9PT12b2lkIDB8fChMZT1MZS50b0xvd2VyQ2FzZSgpKT09PW51bGx8fExlPT09dm9pZCAwP3ZvaWQgMDpMZS5pbmNsdWRlcyhncj09bnVsbD92b2lkIDA6Z3IudG9Mb3dlckNhc2UoKSkpfSl9KSksKDAsRy5qc3gpKHplLlEse2VsbGlwc2lzOiEwLGxhYmVsOk5lLHBsYWNlaG9sZGVyOkRuLGRpc2FibGVkOkJ0LGJvcmRlcmVkOmFuLGFsbG93Q2xlYXI6ISFxdCx2YWx1ZTpwdHx8KE9lPT1udWxsP3ZvaWQgMDpPZS5sYWJlbCl8fE9lLG9uQ2xlYXI6ZnVuY3Rpb24oKXthdD09bnVsbHx8YXQodm9pZCAwLHZvaWQgMCl9LHJlZjpZbix2YWx1ZU1heExlbmd0aDpxbn0pXX0pKX0sZnQ9bWUuZm9yd2FyZFJlZihfZSksTHQ9WyJvcHRpb25JdGVtUmVuZGVyIiwibW9kZSIsIm9uU2VhcmNoIiwib25Gb2N1cyIsIm9uQ2hhbmdlIiwiYXV0b0NsZWFyU2VhcmNoVmFsdWUiLCJzZWFyY2hPbkZvY3VzIiwicmVzZXRBZnRlclNlbGVjdCIsImZldGNoRGF0YU9uU2VhcmNoIiwib3B0aW9uRmlsdGVyUHJvcCIsIm9wdGlvbkxhYmVsUHJvcCIsImNsYXNzTmFtZSIsImRpc2FibGVkIiwib3B0aW9ucyIsImZldGNoRGF0YSIsInJlc2V0RGF0YSIsInByZWZpeENscyIsIm9uQ2xlYXIiLCJzZWFyY2hWYWx1ZSIsInNob3dTZWFyY2giLCJmaWVsZE5hbWVzIiwiZGVmYXVsdFNlYXJjaFZhbHVlIiwicHJlc2VydmVPcmlnaW5hbExhYmVsIl0sd3Q9WyJjbGFzc05hbWUiLCJvcHRpb25UeXBlIl0sV3Q9ZnVuY3Rpb24oaywkZSl7dmFyIE5lPWsub3B0aW9uSXRlbVJlbmRlcixUZT1rLm1vZGUsYXQ9ay5vblNlYXJjaCxPZT1rLm9uRm9jdXMsbXQ9ay5vbkNoYW5nZSxodD1rLmF1dG9DbGVhclNlYXJjaFZhbHVlLEZ0PWh0PT09dm9pZCAwPyEwOmh0LCR0PWsuc2VhcmNoT25Gb2N1cyxBdD0kdD09PXZvaWQgMD8hMTokdCxCdD1rLnJlc2V0QWZ0ZXJTZWxlY3QsRHQ9QnQ9PT12b2lkIDA/ITE6QnQsWWU9ay5mZXRjaERhdGFPblNlYXJjaCxhbj1ZZT09PXZvaWQgMD8hMDpZZSxIdD1rLm9wdGlvbkZpbHRlclByb3AsaG49SHQ9PT12b2lkIDA/ImxhYmVsIjpIdCxxdD1rLm9wdGlvbkxhYmVsUHJvcCx3bj1xdD09PXZvaWQgMD8ibGFiZWwiOnF0LFR0PWsuY2xhc3NOYW1lLFluPWsuZGlzYWJsZWQsVW49ay5vcHRpb25zLHNuPWsuZmV0Y2hEYXRhLHZuPWsucmVzZXREYXRhLEhuPWsucHJlZml4Q2xzLGx0PWsub25DbGVhcixxbj1rLnNlYXJjaFZhbHVlLHR0PWsuc2hvd1NlYXJjaCxQdD1rLmZpZWxkTmFtZXMsUm49ay5kZWZhdWx0U2VhcmNoVmFsdWUsWHQ9ay5wcmVzZXJ2ZU9yaWdpbmFsTGFiZWwsWG49WHQ9PT12b2lkIDA/ITE6WHQsRG49KDAsZy5aKShrLEx0KSxycj1QdHx8e30sX249cnIubGFiZWwscG49X249PT12b2lkIDA/ImxhYmVsIjpfbixlcj1yci52YWx1ZSxibj1lcj09PXZvaWQgMD8idmFsdWUiOmVyLHluPXJyLm9wdGlvbnMsa249eW49PT12b2lkIDA/Im9wdGlvbnMiOnluLG9uPSgwLG1lLnVzZVN0YXRlKShxbiE9bnVsbD9xbjpSbiksdW49KDAsYi5aKShvbiwyKSxjbj11blswXSxPbj11blsxXSxDbj0oMCxtZS51c2VSZWYpKCk7KDAsbWUudXNlSW1wZXJhdGl2ZUhhbmRsZSkoJGUsZnVuY3Rpb24oKXtyZXR1cm4gQ24uY3VycmVudH0pLCgwLG1lLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtpZihEbi5hdXRvRm9jdXMpe3ZhciBqZTtDbj09bnVsbHx8KGplPUNuLmN1cnJlbnQpPT09bnVsbHx8amU9PT12b2lkIDB8fGplLmZvY3VzKCl9fSxbRG4uYXV0b0ZvY3VzXSksKDAsbWUudXNlRWZmZWN0KShmdW5jdGlvbigpe09uKHFuKX0sW3FuXSk7dmFyIFJyPSgwLG1lLnVzZUNvbnRleHQpKGxlLlpQLkNvbmZpZ0NvbnRleHQpLGRyPVJyLmdldFByZWZpeENscyxncj1kcigicHJvLWZpbGVkLXNlYXJjaC1zZWxlY3QiLEhuKSx5cj1DdCgpKGdyLFR0LCgwLCQuWikoe30sIiIuY29uY2F0KGdyLCItZGlzYWJsZWQiKSxZbikpLGZlPWZ1bmN0aW9uKHdlLEhlKXtyZXR1cm4gQXJyYXkuaXNBcnJheSh3ZSkmJkFycmF5LmlzQXJyYXkoSGUpJiZ3ZS5sZW5ndGg+MD93ZS5tYXAoZnVuY3Rpb24ocHQsa2Upe3ZhciBXZT1IZT09bnVsbD92b2lkIDA6SGVba2VdLExlPShXZT09bnVsbD92b2lkIDA6V2VbImRhdGEtaXRlbSJdKXx8e307cmV0dXJuKDAscy5aKSgoMCxzLlopKCgwLHMuWikoe30sTGUpLHB0KSx7fSx7bGFiZWw6WG4/TGUubGFiZWw6cHQubGFiZWx9KX0pOltdfSxLZT1mdW5jdGlvbiBqZSh3ZSl7cmV0dXJuIHdlLm1hcChmdW5jdGlvbihIZSxwdCl7dmFyIGtlLFdlPUhlLExlPVdlLmNsYXNzTmFtZSxOdD1XZS5vcHRpb25UeXBlLEd0PSgwLGcuWikoV2Usd3QpLGxuPUhlW3BuXSxoZT1IZVtibl0sdHI9KGtlPUhlW2tuXSkhPT1udWxsJiZrZSE9PXZvaWQgMD9rZTpbXTtyZXR1cm4gTnQ9PT0ib3B0R3JvdXAifHxIZS5vcHRpb25zPygwLHMuWikoKDAscy5aKSh7bGFiZWw6bG59LEd0KSx7fSx7ZGF0YV90aXRsZTpsbix0aXRsZTpsbixrZXk6aGUhPW51bGw/aGU6IiIuY29uY2F0KGxuPT1udWxsP3ZvaWQgMDpsbi50b1N0cmluZygpLCItIikuY29uY2F0KHB0LCItIikuY29uY2F0KCgwLFUueCkoKSksY2hpbGRyZW46amUodHIpfSk6KDAscy5aKSgoMCxzLlopKHt0aXRsZTpsbn0sR3QpLHt9LHtkYXRhX3RpdGxlOmxuLHZhbHVlOmhlIT1udWxsP2hlOnB0LGtleTpoZSE9bnVsbD9oZToiIi5jb25jYXQobG49PW51bGw/dm9pZCAwOmxuLnRvU3RyaW5nKCksIi0iKS5jb25jYXQocHQsIi0iKS5jb25jYXQoKDAsVS54KSgpKSwiZGF0YS1pdGVtIjpIZSxjbGFzc05hbWU6IiIuY29uY2F0KGdyLCItb3B0aW9uICIpLmNvbmNhdChMZXx8IiIpLnRyaW0oKSxsYWJlbDooTmU9PW51bGw/dm9pZCAwOk5lKEhlKSl8fGxufSl9KX07cmV0dXJuKDAsRy5qc3gpKGR0LlosKDAscy5aKSgoMCxzLlopKHtyZWY6Q24sY2xhc3NOYW1lOnlyLGFsbG93Q2xlYXI6ITAsYXV0b0NsZWFyU2VhcmNoVmFsdWU6RnQsZGlzYWJsZWQ6WW4sbW9kZTpUZSxzaG93U2VhcmNoOnR0LHNlYXJjaFZhbHVlOmNuLG9wdGlvbkZpbHRlclByb3A6aG4sb3B0aW9uTGFiZWxQcm9wOnduLG9uQ2xlYXI6ZnVuY3Rpb24oKXtsdD09bnVsbHx8bHQoKSxzbih2b2lkIDApLHR0JiZPbih2b2lkIDApfX0sRG4pLHt9LHtmaWx0ZXJPcHRpb246RG4uZmlsdGVyT3B0aW9uPT0hMT8hMTpmdW5jdGlvbihqZSx3ZSl7dmFyIEhlLHB0LGtlO3JldHVybiBEbi5maWx0ZXJPcHRpb24mJnR5cGVvZiBEbi5maWx0ZXJPcHRpb249PSJmdW5jdGlvbiI/RG4uZmlsdGVyT3B0aW9uKGplLCgwLHMuWikoKDAscy5aKSh7fSx3ZSkse30se2xhYmVsOndlPT1udWxsP3ZvaWQgMDp3ZS5kYXRhX3RpdGxlfSkpOiEhKHdlIT1udWxsJiYoSGU9d2UuZGF0YV90aXRsZSkhPT1udWxsJiZIZSE9PXZvaWQgMCYmSGUudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGplLnRvTG93ZXJDYXNlKCkpfHx3ZSE9bnVsbCYmKHB0PXdlLmxhYmVsKSE9PW51bGwmJnB0IT09dm9pZCAwJiZwdC50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoamUudG9Mb3dlckNhc2UoKSl8fHdlIT1udWxsJiYoa2U9d2UudmFsdWUpIT09bnVsbCYma2UhPT12b2lkIDAmJmtlLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhqZS50b0xvd2VyQ2FzZSgpKSl9LG9uU2VhcmNoOnR0P2Z1bmN0aW9uKGplKXthbiYmc24oamUpLGF0PT1udWxsfHxhdChqZSksT24oamUpfTp2b2lkIDAsb25DaGFuZ2U6ZnVuY3Rpb24od2UsSGUpe3R0JiZGdCYmKHNuKHZvaWQgMCksYXQ9PW51bGx8fGF0KCIiKSxPbih2b2lkIDApKTtmb3IodmFyIHB0PWFyZ3VtZW50cy5sZW5ndGgsa2U9bmV3IEFycmF5KHB0PjI/cHQtMjowKSxXZT0yO1dlPHB0O1dlKyspa2VbV2UtMl09YXJndW1lbnRzW1dlXTtpZighay5sYWJlbEluVmFsdWUpe210PT1udWxsfHxtdC5hcHBseSh2b2lkIDAsW3dlLEhlXS5jb25jYXQoa2UpKTtyZXR1cm59aWYoVGUhPT0ibXVsdGlwbGUiJiYhQXJyYXkuaXNBcnJheShIZSkpe3ZhciBMZT1IZSYmSGVbImRhdGEtaXRlbSJdO2lmKCF3ZXx8IUxlKXt2YXIgTnQ9d2UmJigwLHMuWikoKDAscy5aKSh7fSx3ZSkse30se2xhYmVsOlhuJiYoTGU9PW51bGw/dm9pZCAwOkxlLmxhYmVsKXx8d2UubGFiZWx9KTttdD09bnVsbHx8bXQuYXBwbHkodm9pZCAwLFtOdCxIZV0uY29uY2F0KGtlKSl9ZWxzZSBtdD09bnVsbHx8bXQuYXBwbHkodm9pZCAwLFsoMCxzLlopKCgwLHMuWikoKDAscy5aKSh7fSx3ZSksTGUpLHt9LHtsYWJlbDpYbj9MZS5sYWJlbDp3ZS5sYWJlbH0pLEhlXS5jb25jYXQoa2UpKTtyZXR1cm59dmFyIEd0PWZlKHdlLEhlKTttdD09bnVsbHx8bXQuYXBwbHkodm9pZCAwLFtHdCxIZV0uY29uY2F0KGtlKSksRHQmJnZuKCl9LG9uRm9jdXM6ZnVuY3Rpb24od2Upe0F0JiZzbihjbiksT2U9PW51bGx8fE9lKHdlKX0sb3B0aW9uczpLZShVbnx8W10pfSkpfSxybj1tZS5mb3J3YXJkUmVmKFd0KSxqdD1bInZhbHVlIiwidGV4dCJdLEp0PVsibW9kZSIsInZhbHVlRW51bSIsInJlbmRlciIsInJlbmRlckZvcm1JdGVtIiwicmVxdWVzdCIsImZpZWxkUHJvcHMiLCJwbGFpbiIsImNoaWxkcmVuIiwibGlnaHQiLCJwcm9GaWVsZEtleSIsInBhcmFtcyIsImxhYmVsIiwiYm9yZGVyZWQiLCJpZCIsImxpZ2h0TGFiZWwiLCJsYWJlbFRyaWdnZXIiXSx6dD1mdW5jdGlvbihrKXtmb3IodmFyICRlPWsubGFiZWwsTmU9ay53b3JkcyxUZT0oMCxtZS51c2VDb250ZXh0KShsZS5aUC5Db25maWdDb250ZXh0KSxhdD1UZS5nZXRQcmVmaXhDbHMsT2U9YXQoInByby1zZWxlY3QtaXRlbS1vcHRpb24tY29udGVudC1saWdodCIpLG10PWF0KCJwcm8tc2VsZWN0LWl0ZW0tb3B0aW9uLWNvbnRlbnQiKSxodD0oMCxGLlhqKSgiSGlnaGxpZ2h0IixmdW5jdGlvbihIdCl7cmV0dXJuKDAsJC5aKSgoMCwkLlopKHt9LCIuIi5jb25jYXQoT2UpLHtjb2xvcjpIdC5jb2xvclByaW1hcnl9KSwiLiIuY29uY2F0KG10KSx7ZmxleDoiYXV0byIsb3ZlcmZsb3c6ImhpZGRlbiIsd2hpdGVTcGFjZToibm93cmFwIix0ZXh0T3ZlcmZsb3c6ImVsbGlwc2lzIn0pfSksRnQ9aHQud3JhcFNTUiwkdD1uZXcgUmVnRXhwKE5lLm1hcChmdW5jdGlvbihIdCl7cmV0dXJuIEh0LnJlcGxhY2UoL1stW1xdL3t9KCkqKz8uXFxeJHxdL2csIlxcJCYiKX0pLmpvaW4oInwiKSwiZ2kiKSxBdD0kZSxCdD1bXTtBdC5sZW5ndGg7KXt2YXIgRHQ9JHQuZXhlYyhBdCk7aWYoIUR0KXtCdC5wdXNoKEF0KTticmVha312YXIgWWU9RHQuaW5kZXgsYW49RHRbMF0ubGVuZ3RoK1llO0J0LnB1c2goQXQuc2xpY2UoMCxZZSksbWUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpPZX0sQXQuc2xpY2UoWWUsYW4pKSksQXQ9QXQuc2xpY2UoYW4pfXJldHVybiBGdChtZS5jcmVhdGVFbGVtZW50LmFwcGx5KG1lLFsiZGl2Iix7dGl0bGU6JGUsY2xhc3NOYW1lOm10fV0uY29uY2F0KEJ0KSkpfTtmdW5jdGlvbiBLdChuZSxrKXt2YXIgJGUsTmU7aWYoIWt8fG5lIT1udWxsJiYoJGU9bmUubGFiZWwpIT09bnVsbCYmJGUhPT12b2lkIDAmJiRlLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhrLnRvTG93ZXJDYXNlKCkpfHxuZSE9bnVsbCYmKE5lPW5lLnZhbHVlKSE9PW51bGwmJk5lIT09dm9pZCAwJiZOZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoay50b0xvd2VyQ2FzZSgpKSlyZXR1cm4hMDtpZihuZS5jaGlsZHJlbnx8bmUub3B0aW9ucyl7dmFyIFRlPVtdLmNvbmNhdCgoMCxJLlopKG5lLmNoaWxkcmVufHxbXSksW25lLm9wdGlvbnN8fFtdXSkuZmluZChmdW5jdGlvbihhdCl7cmV0dXJuIEt0KGF0LGspfSk7aWYoVGUpcmV0dXJuITB9cmV0dXJuITF9dmFyIFZ0PWZ1bmN0aW9uKGspe3ZhciAkZT1bXSxOZT0oMCxMLlI2KShrKTtyZXR1cm4gTmUuZm9yRWFjaChmdW5jdGlvbihUZSxhdCl7dmFyIE9lPU5lLmdldChhdCl8fE5lLmdldCgiIi5jb25jYXQoYXQpKTtpZihPZSl7aWYoKDAsTy5aKShPZSk9PT0ib2JqZWN0IiYmT2UhPT1udWxsJiZPZSE9PXZvaWQgMCYmT2UudGV4dCl7JGUucHVzaCh7dGV4dDpPZT09bnVsbD92b2lkIDA6T2UudGV4dCx2YWx1ZTphdCxsYWJlbDpPZT09bnVsbD92b2lkIDA6T2UudGV4dCxkaXNhYmxlZDpPZS5kaXNhYmxlZH0pO3JldHVybn0kZS5wdXNoKHt0ZXh0Ok9lLHZhbHVlOmF0fSl9fSksJGV9LFpuPWZ1bmN0aW9uKGspe3ZhciAkZSxOZSxUZSxhdCxPZT1rLmNhY2hlRm9yU3dyLG10PWsuZmllbGRQcm9wcyxodD0oMCxtZS51c2VTdGF0ZSkoay5kZWZhdWx0S2V5V29yZHMpLEZ0PSgwLGIuWikoaHQsMiksJHQ9RnRbMF0sQXQ9RnRbMV0sQnQ9KDAsbWUudXNlU3RhdGUpKGZ1bmN0aW9uKCl7cmV0dXJuIGsucHJvRmllbGRLZXk/ay5wcm9GaWVsZEtleS50b1N0cmluZygpOmsucmVxdWVzdD8oMCxVLngpKCk6Im5vLWZldGNoIn0pLER0PSgwLGIuWikoQnQsMSksWWU9RHRbMF0sYW49KDAsbWUudXNlUmVmKShZZSksSHQ9KDAsZGUuSikoZnVuY3Rpb24odHQpe3JldHVybiBWdCgoMCxMLlI2KSh0dCkpLm1hcChmdW5jdGlvbihQdCl7dmFyIFJuPVB0LnZhbHVlLFh0PVB0LnRleHQsWG49KDAsZy5aKShQdCxqdCk7cmV0dXJuKDAscy5aKSh7bGFiZWw6WHQsdmFsdWU6Um4sa2V5OlJufSxYbil9KX0pLGhuPSgwLG8uWikoZnVuY3Rpb24oKXtpZihtdCl7dmFyIHR0PShtdD09bnVsbD92b2lkIDA6bXQub3B0aW9ucyl8fChtdD09bnVsbD92b2lkIDA6bXQudHJlZURhdGEpO2lmKHR0KXt2YXIgUHQ9bXQuZmllbGROYW1lc3x8e30sUm49UHQuY2hpbGRyZW4sWHQ9UHQubGFiZWwsWG49UHQudmFsdWUsRG49ZnVuY3Rpb24gcnIoX24scG4pe2lmKF9uIT1udWxsJiZfbi5sZW5ndGgpZm9yKHZhciBlcj1fbi5sZW5ndGgsYm49MDtibjxlcjspe3ZhciB5bj1fbltibisrXTsoeW5bUm5dfHx5bltYdF18fHluW1huXSkmJih5bltwbl09eW5bcG49PT0iY2hpbGRyZW4iP1JuOnBuPT09ImxhYmVsIj9YdDpYbl0scnIoeW5bUm5dLHBuKSl9fTtyZXR1cm4gUm4mJkRuKHR0LCJjaGlsZHJlbiIpLFh0JiZEbih0dCwibGFiZWwiKSxYbiYmRG4odHQsInZhbHVlIiksdHR9fX0sW210XSkscXQ9KDAsai5aKShmdW5jdGlvbigpe3JldHVybiBrLnZhbHVlRW51bT9IdChrLnZhbHVlRW51bSk6W119LHt2YWx1ZTpobn0pLHduPSgwLGIuWikocXQsMiksVHQ9d25bMF0sWW49d25bMV07KDAsRGUuS1cpKGZ1bmN0aW9uKCl7dmFyIHR0LFB0OyFrLnZhbHVlRW51bXx8KHR0PWsuZmllbGRQcm9wcykhPT1udWxsJiZ0dCE9PXZvaWQgMCYmdHQub3B0aW9uc3x8KFB0PWsuZmllbGRQcm9wcykhPT1udWxsJiZQdCE9PXZvaWQgMCYmUHQudHJlZURhdGF8fFluKEh0KGsudmFsdWVFbnVtKSl9LFtrLnZhbHVlRW51bV0pO3ZhciBVbj12ZShbYW4uY3VycmVudCxrLnBhcmFtcywkdF0sKCRlPShOZT1rLmRlYm91bmNlVGltZSkhPT1udWxsJiZOZSE9PXZvaWQgMD9OZTprPT1udWxsfHwoVGU9ay5maWVsZFByb3BzKT09PW51bGx8fFRlPT09dm9pZCAwP3ZvaWQgMDpUZS5kZWJvdW5jZVRpbWUpIT09bnVsbCYmJGUhPT12b2lkIDA/JGU6MCxbay5wYXJhbXMsJHRdKSxzbj0oMCxvZS5aUCkoZnVuY3Rpb24oKXtyZXR1cm4gay5yZXF1ZXN0P1VuOm51bGx9LGZ1bmN0aW9uKHR0KXt2YXIgUHQ9KDAsYi5aKSh0dCwzKSxSbj1QdFsxXSxYdD1QdFsyXTtyZXR1cm4gay5yZXF1ZXN0KCgwLHMuWikoKDAscy5aKSh7fSxSbikse30se2tleVdvcmRzOlh0fSksayl9LHtyZXZhbGlkYXRlSWZTdGFsZTohT2UscmV2YWxpZGF0ZU9uUmVjb25uZWN0Ok9lLHNob3VsZFJldHJ5T25FcnJvcjohMSxyZXZhbGlkYXRlT25Gb2N1czohMX0pLHZuPXNuLmRhdGEsSG49c24ubXV0YXRlLGx0PXNuLmlzVmFsaWRhdGluZyxxbj0oMCxtZS51c2VNZW1vKShmdW5jdGlvbigpe3ZhciB0dCxQdCxSbj1UdD09bnVsbD92b2lkIDA6VHQubWFwKGZ1bmN0aW9uKFh0KXtpZih0eXBlb2YgWHQ9PSJzdHJpbmciKXJldHVybntsYWJlbDpYdCx2YWx1ZTpYdH07aWYoWHQuY2hpbGRyZW58fFh0Lm9wdGlvbnMpe3ZhciBYbj1bXS5jb25jYXQoKDAsSS5aKShYdC5jaGlsZHJlbnx8W10pLCgwLEkuWikoWHQub3B0aW9uc3x8W10pKS5maWx0ZXIoZnVuY3Rpb24oRG4pe3JldHVybiBLdChEbiwkdCl9KTtyZXR1cm4oMCxzLlopKCgwLHMuWikoe30sWHQpLHt9LHtjaGlsZHJlbjpYbixvcHRpb25zOlhufSl9cmV0dXJuIFh0fSk7cmV0dXJuKCh0dD1rLmZpZWxkUHJvcHMpPT09bnVsbHx8dHQ9PT12b2lkIDA/dm9pZCAwOnR0LmZpbHRlck9wdGlvbik9PT0hMHx8KChQdD1rLmZpZWxkUHJvcHMpPT09bnVsbHx8UHQ9PT12b2lkIDA/dm9pZCAwOlB0LmZpbHRlck9wdGlvbik9PT12b2lkIDA/Um49PW51bGw/dm9pZCAwOlJuLmZpbHRlcihmdW5jdGlvbihYdCl7cmV0dXJuIFh0PyR0P0t0KFh0LCR0KTohMDohMX0pOlJufSxbVHQsJHQsKGF0PWsuZmllbGRQcm9wcyk9PT1udWxsfHxhdD09PXZvaWQgMD92b2lkIDA6YXQuZmlsdGVyT3B0aW9uXSk7cmV0dXJuW2x0LGsucmVxdWVzdD92bjpxbixmdW5jdGlvbih0dCl7QXQodHQpfSxmdW5jdGlvbigpe0F0KHZvaWQgMCksSG4oW10sITEpfV19LExuPWZ1bmN0aW9uKGssJGUpe3ZhciBOZSxUZT1rLm1vZGUsYXQ9ay52YWx1ZUVudW0sT2U9ay5yZW5kZXIsbXQ9ay5yZW5kZXJGb3JtSXRlbSxodD1rLnJlcXVlc3QsRnQ9ay5maWVsZFByb3BzLCR0PWsucGxhaW4sQXQ9ay5jaGlsZHJlbixCdD1rLmxpZ2h0LER0PWsucHJvRmllbGRLZXksWWU9ay5wYXJhbXMsYW49ay5sYWJlbCxIdD1rLmJvcmRlcmVkLGhuPWsuaWQscXQ9ay5saWdodExhYmVsLHduPWsubGFiZWxUcmlnZ2VyLFR0PSgwLGcuWikoayxKdCksWW49KDAsbWUudXNlUmVmKSgpLFVuPSgwLFIuWUIpKCksc249KDAsbWUudXNlUmVmKSgiIiksdm49RnQuZmllbGROYW1lczsoMCxtZS51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7c24uY3VycmVudD1GdD09bnVsbD92b2lkIDA6RnQuc2VhcmNoVmFsdWV9LFtGdD09bnVsbD92b2lkIDA6RnQuc2VhcmNoVmFsdWVdKTt2YXIgSG49Wm4oayksbHQ9KDAsYi5aKShIbiw0KSxxbj1sdFswXSx0dD1sdFsxXSxQdD1sdFsyXSxSbj1sdFszXSxYdD0obGUuWlA9PT1udWxsfHxsZS5aUD09PXZvaWQgMHx8KE5lPWxlLlpQLnVzZUNvbmZpZyk9PT1udWxsfHxOZT09PXZvaWQgMD92b2lkIDA6TmUuY2FsbChsZS5aUCkpfHx7Y29tcG9uZW50U2l6ZToibWlkZGxlIn0sWG49WHQuY29tcG9uZW50U2l6ZTsoMCxtZS51c2VJbXBlcmF0aXZlSGFuZGxlKSgkZSxmdW5jdGlvbigpe3JldHVybigwLHMuWikoKDAscy5aKSh7fSxZbi5jdXJyZW50fHx7fSkse30se2ZldGNoRGF0YTpmdW5jdGlvbihrbil7cmV0dXJuIFB0KGtuKX19KX0sW1B0XSk7dmFyIERuPSgwLG1lLnVzZU1lbW8pKGZ1bmN0aW9uKCl7aWYoVGU9PT0icmVhZCIpe3ZhciB5bj12bnx8e30sa249eW4ubGFiZWwsb249a249PT12b2lkIDA/ImxhYmVsIjprbix1bj15bi52YWx1ZSxjbj11bj09PXZvaWQgMD8idmFsdWUiOnVuLE9uPXluLm9wdGlvbnMsQ249T249PT12b2lkIDA/Im9wdGlvbnMiOk9uLFJyPW5ldyBNYXAsZHI9ZnVuY3Rpb24gZ3IoeXIpe2lmKCEoeXIhPW51bGwmJnlyLmxlbmd0aCkpcmV0dXJuIFJyO2Zvcih2YXIgZmU9eXIubGVuZ3RoLEtlPTA7S2U8ZmU7KXt2YXIgamU9eXJbS2UrK107UnIuc2V0KGplW2NuXSxqZVtvbl0pLGdyKGplW0NuXSl9cmV0dXJuIFJyfTtyZXR1cm4gZHIodHQpfX0sW3ZuLFRlLHR0XSk7aWYoVGU9PT0icmVhZCIpe3ZhciBycj0oMCxHLmpzeCkoRy5GcmFnbWVudCx7Y2hpbGRyZW46KDAsTC5NUCkoVHQudGV4dCwoMCxMLlI2KShhdHx8RG4pKX0pO2lmKE9lKXt2YXIgX247cmV0dXJuKF9uPU9lKHJyLCgwLHMuWikoe21vZGU6VGV9LEZ0KSxycikpIT09bnVsbCYmX24hPT12b2lkIDA/X246bnVsbH1yZXR1cm4gcnJ9aWYoVGU9PT0iZWRpdCJ8fFRlPT09InVwZGF0ZSIpe3ZhciBwbj1mdW5jdGlvbigpe3JldHVybiBCdD8oMCxHLmpzeCkoZnQsKDAscy5aKSgoMCxzLlopKHt9LCgwLGJlLkopKEh0KSkse30se2lkOmhuLGxvYWRpbmc6cW4scmVmOlluLGFsbG93Q2xlYXI6ITAsc2l6ZTpYbixvcHRpb25zOnR0LGxhYmVsOmFuLHBsYWNlaG9sZGVyOlVuLmdldE1lc3NhZ2UoInRhYmxlRm9ybS5zZWxlY3RQbGFjZWhvbGRlciIsIlx1OEJGN1x1OTAwOVx1NjJFOSIpLGxpZ2h0TGFiZWw6cXQsbGFiZWxUcmlnZ2VyOnduLGZldGNoRGF0YTpQdH0sRnQpKTooMCxHLmpzeCkocm4sKDAscy5aKSgoMCxzLlopKCgwLHMuWikoe2NsYXNzTmFtZTpUdC5jbGFzc05hbWUsc3R5bGU6KDAscy5aKSh7bWluV2lkdGg6MTAwfSxUdC5zdHlsZSl9LCgwLGJlLkopKEh0KSkse30se2lkOmhuLGxvYWRpbmc6cW4scmVmOlluLGFsbG93Q2xlYXI6ITAsZGVmYXVsdFNlYXJjaFZhbHVlOmsuZGVmYXVsdEtleVdvcmRzLG5vdEZvdW5kQ29udGVudDpxbj8oMCxHLmpzeCkoWGUuWix7c2l6ZToic21hbGwifSk6RnQ9PW51bGw/dm9pZCAwOkZ0Lm5vdEZvdW5kQ29udGVudCxmZXRjaERhdGE6ZnVuY3Rpb24ob24pe3NuLmN1cnJlbnQ9b24hPW51bGw/b246IiIsUHQob24pfSxyZXNldERhdGE6Um4scHJlc2VydmVPcmlnaW5hbExhYmVsOiEwLG9wdGlvbkl0ZW1SZW5kZXI6ZnVuY3Rpb24ob24pe3JldHVybiB0eXBlb2Ygb24ubGFiZWw9PSJzdHJpbmciJiZzbi5jdXJyZW50PygwLEcuanN4KSh6dCx7bGFiZWw6b24ubGFiZWwsd29yZHM6W3NuLmN1cnJlbnRdfSk6b24ubGFiZWx9LHBsYWNlaG9sZGVyOlVuLmdldE1lc3NhZ2UoInRhYmxlRm9ybS5zZWxlY3RQbGFjZWhvbGRlciIsIlx1OEJGN1x1OTAwOVx1NjJFOSIpLGxhYmVsOmFufSxGdCkse30se29wdGlvbnM6dHR9KSwiU2VhcmNoU2VsZWN0Iil9LGVyPXBuKCk7aWYobXQpe3ZhciBibjtyZXR1cm4oYm49bXQoVHQudGV4dCwoMCxzLlopKCgwLHMuWikoe21vZGU6VGV9LEZ0KSx7fSx7b3B0aW9uczp0dCxsb2FkaW5nOnFufSksZXIpKSE9PW51bGwmJmJuIT09dm9pZCAwP2JuOm51bGx9cmV0dXJuIGVyfXJldHVybiBudWxsfSxucj1tZS5mb3J3YXJkUmVmKExuKX0sOTA3ODk6ZnVuY3Rpb24oUyxaLGkpeyJ1c2Ugc3RyaWN0IjtpLmQoWix7RzpmdW5jdGlvbigpe3JldHVybiBydH19KTt2YXIgcz1pKDQ5NDIpLGc9aSg5NzY4NSksYj1pKDE0MTMpLE89aSg5MSksST1pKDc0MTM4KSwkPWkoNTE4MTIpLFI9WyJjb2xvbiIsImRlcGVuZGVuY2llcyIsImV4dHJhIiwiZ2V0VmFsdWVGcm9tRXZlbnQiLCJnZXRWYWx1ZVByb3BzIiwiaGFzRmVlZGJhY2siLCJoZWxwIiwiaHRtbEZvciIsImluaXRpYWxWYWx1ZSIsIm5vU3R5bGUiLCJsYWJlbCIsImxhYmVsQWxpZ24iLCJsYWJlbENvbCIsIm5hbWUiLCJwcmVzZXJ2ZSIsIm5vcm1hbGl6ZSIsInJlcXVpcmVkIiwicnVsZXMiLCJzaG91bGRVcGRhdGUiLCJ0cmlnZ2VyIiwidmFsaWRhdGVGaXJzdCIsInZhbGlkYXRlU3RhdHVzIiwidmFsaWRhdGVUcmlnZ2VyIiwidmFsdWVQcm9wTmFtZSIsIndyYXBwZXJDb2wiLCJoaWRkZW4iLCJhZGRvbkJlZm9yZSIsImFkZG9uQWZ0ZXIiLCJhZGRvbldhcnBTdHlsZSJdO2Z1bmN0aW9uIEYoQ3Qpe3ZhciBvdD17fTtyZXR1cm4gUi5mb3JFYWNoKGZ1bmN0aW9uKEcpe0N0W0ddIT09dm9pZCAwJiYob3RbR109Q3RbR10pfSksb3R9dmFyIEw9aSg1MzkxNCksVT1pKDQ4MTcxKSxkZT1pKDkzOTY3KSxvPWkubihkZSksaj1pKDg4NjkyKSxEZT1pKDgwMzM0KSxtZT1pKDY3Mjk0KSxfPWkoNjY3NTgpLHZlPWkoNDQ5OSksYmU9aSg5NzQ2MiksbGU9aSgyNTE0KSxYZT1pKDg1ODkzKSxvZT1bInZhbHVlVHlwZSIsImN1c3RvbUxpZ2h0TW9kZSIsImxpZ2h0RmlsdGVyTGFiZWxGb3JtYXR0ZXIiLCJ2YWx1ZVByb3BOYW1lIiwiaWdub3JlV2lkdGgiLCJkZWZhdWx0UHJvcHMiXSxGZT1bImxhYmVsIiwidG9vbHRpcCIsInBsYWNlaG9sZGVyIiwid2lkdGgiLCJib3JkZXJlZCIsIm1lc3NhZ2VWYXJpYWJsZXMiLCJpZ25vcmVGb3JtSXRlbSIsInRyYW5zZm9ybSIsImNvbnZlcnRWYWx1ZSIsInJlYWRvbmx5IiwiYWxsb3dDbGVhciIsImNvbFNpemUiLCJnZXRGb3JtSXRlbVByb3BzIiwiZ2V0RmllbGRQcm9wcyIsImZpbGVkQ29uZmlnIiwiY2FjaGVGb3JTd3IiLCJwcm9GaWVsZFByb3BzIl0semU9U3ltYm9sKCJQcm9Gb3JtQ29tcG9uZW50IiksZHQ9e3hzOjEwNCxzOjIxNixzbToyMTYsbTozMjgsbWQ6MzI4LGw6NDQwLGxnOjQ0MCx4bDo1NTJ9LGd0PVsic3dpdGNoIiwicmFkaW9CdXR0b24iLCJyYWRpbyIsInJhdGUiXTtmdW5jdGlvbiBydChDdCxvdCl7Q3QuZGlzcGxheU5hbWU9IlByb0Zvcm1Db21wb25lbnQiO3ZhciBHPWZ1bmN0aW9uKF9lKXt2YXIgZnQ9KDAsYi5aKSgoMCxiLlopKHt9LF9lPT1udWxsP3ZvaWQgMDpfZS5maWxlZENvbmZpZyksb3QpLEx0PWZ0LnZhbHVlVHlwZSx3dD1mdC5jdXN0b21MaWdodE1vZGUsV3Q9ZnQubGlnaHRGaWx0ZXJMYWJlbEZvcm1hdHRlcixybj1mdC52YWx1ZVByb3BOYW1lLGp0PXJuPT09dm9pZCAwPyJ2YWx1ZSI6cm4sSnQ9ZnQuaWdub3JlV2lkdGgsenQ9ZnQuZGVmYXVsdFByb3BzLEt0PSgwLE8uWikoZnQsb2UpLFZ0PSgwLGIuWikoKDAsYi5aKSh7fSx6dCksX2UpLFpuPVZ0LmxhYmVsLExuPVZ0LnRvb2x0aXAsbnI9VnQucGxhY2Vob2xkZXIsbmU9VnQud2lkdGgsaz1WdC5ib3JkZXJlZCwkZT1WdC5tZXNzYWdlVmFyaWFibGVzLE5lPVZ0Lmlnbm9yZUZvcm1JdGVtLFRlPVZ0LnRyYW5zZm9ybSxhdD1WdC5jb252ZXJ0VmFsdWUsT2U9VnQucmVhZG9ubHksbXQ9VnQuYWxsb3dDbGVhcixodD1WdC5jb2xTaXplLEZ0PVZ0LmdldEZvcm1JdGVtUHJvcHMsJHQ9VnQuZ2V0RmllbGRQcm9wcyxBdD1WdC5maWxlZENvbmZpZyxCdD1WdC5jYWNoZUZvclN3cixEdD1WdC5wcm9GaWVsZFByb3BzLFllPSgwLE8uWikoVnQsRmUpLGFuPUx0fHxZZS52YWx1ZVR5cGUsSHQ9KDAsbWUudXNlTWVtbykoZnVuY3Rpb24oKXtyZXR1cm4gSnR8fGd0LmluY2x1ZGVzKGFuKX0sW0p0LGFuXSksaG49KDAsbWUudXNlU3RhdGUpKCkscXQ9KDAsZy5aKShobiwyKSx3bj1xdFsxXSxUdD0oMCxtZS51c2VTdGF0ZSkoKSxZbj0oMCxnLlopKFR0LDIpLFVuPVluWzBdLHNuPVluWzFdLHZuPW1lLnVzZUNvbnRleHQoXy5aKSxIbj0oMCxJLlopKGZ1bmN0aW9uKCl7cmV0dXJue2Zvcm1JdGVtUHJvcHM6RnQ9PW51bGw/dm9pZCAwOkZ0KCksZmllbGRQcm9wczokdD09bnVsbD92b2lkIDA6JHQoKX19LFskdCxGdCxZZS5kZXBlbmRlbmNpZXNWYWx1ZXMsVW5dKSxsdD0oMCxJLlopKGZ1bmN0aW9uKCl7dmFyIHVuPSgwLGIuWikoKDAsYi5aKSgoMCxiLlopKCgwLGIuWikoe30sTmU/KDAsJC5ZKSh7dmFsdWU6WWUudmFsdWV9KTp7fSkse30se3BsYWNlaG9sZGVyOm5yLGRpc2FibGVkOl9lLmRpc2FibGVkfSx2bi5maWVsZFByb3BzKSxIbi5maWVsZFByb3BzKSxZZS5maWVsZFByb3BzKTtyZXR1cm4gdW4uc3R5bGU9KDAsJC5ZKSh1bj09bnVsbD92b2lkIDA6dW4uc3R5bGUpLHVufSxbTmUsWWUudmFsdWUsWWUuZmllbGRQcm9wcyxucixfZS5kaXNhYmxlZCx2bi5maWVsZFByb3BzLEhuLmZpZWxkUHJvcHNdKSxxbj1GKFllKSx0dD0oMCxJLlopKGZ1bmN0aW9uKCl7cmV0dXJuKDAsYi5aKSgoMCxiLlopKCgwLGIuWikoKDAsYi5aKSh7fSx2bi5mb3JtSXRlbVByb3BzKSxxbiksSG4uZm9ybUl0ZW1Qcm9wcyksWWUuZm9ybUl0ZW1Qcm9wcyl9LFtIbi5mb3JtSXRlbVByb3BzLHZuLmZvcm1JdGVtUHJvcHMsWWUuZm9ybUl0ZW1Qcm9wcyxxbl0pLFB0PSgwLEkuWikoZnVuY3Rpb24oKXtyZXR1cm4oMCxiLlopKCgwLGIuWikoe21lc3NhZ2VWYXJpYWJsZXM6JGV9LEt0KSx0dCl9LFtLdCx0dCwkZV0pOygwLERlLkVUKSghWWUuZGVmYXVsdFZhbHVlLCJcdThCRjdcdTRFMERcdTg5ODFcdTU3MjggRm9ybSBcdTRFMkRcdTRGN0ZcdTc1MjggZGVmYXVsdFhYWFx1MzAwMlx1NTk4Mlx1Njc5Q1x1OTcwMFx1ODk4MVx1OUVEOFx1OEJBNFx1NTAzQ1x1OEJGN1x1NEY3Rlx1NzUyOCBpbml0aWFsVmFsdWVzIFx1NTQ4QyBpbml0aWFsVmFsdWVcdTMwMDIiKTt2YXIgUm49KDAsbWUudXNlQ29udGV4dCkoai56YiksWHQ9Um4ucHJlZml4TmFtZSxYbj0oMCxJLlopKGZ1bmN0aW9uKCl7dmFyIHVuLGNuPVB0PT1udWxsP3ZvaWQgMDpQdC5uYW1lO0FycmF5LmlzQXJyYXkoY24pJiYoY249Y24uam9pbigiXyIpKSxBcnJheS5pc0FycmF5KFh0KSYmY24mJihjbj0iIi5jb25jYXQoWHQuam9pbigiLiIpLCIuIikuY29uY2F0KGNuKSk7dmFyIE9uPWNuJiYiZm9ybS0iLmNvbmNhdCgodW49dm4uZm9ybUtleSkhPT1udWxsJiZ1biE9PXZvaWQgMD91bjoiIiwiLWZpZWxkLSIpLmNvbmNhdChjbik7cmV0dXJuIE9ufSxbKDAsTC5aUCkoUHQ9PW51bGw/dm9pZCAwOlB0Lm5hbWUpLFh0LHZuLmZvcm1LZXldKSxEbj0oMCxVLkopKGZ1bmN0aW9uKCl7dmFyIHVuO0Z0fHwkdD9zbihbXSk6WWUucmVuZGVyRm9ybUl0ZW0mJnduKFtdKTtmb3IodmFyIGNuPWFyZ3VtZW50cy5sZW5ndGgsT249bmV3IEFycmF5KGNuKSxDbj0wO0NuPGNuO0NuKyspT25bQ25dPWFyZ3VtZW50c1tDbl07bHQ9PW51bGx8fCh1bj1sdC5vbkNoYW5nZSk9PT1udWxsfHx1bj09PXZvaWQgMHx8dW4uY2FsbC5hcHBseSh1bixbbHRdLmNvbmNhdChPbikpfSkscnI9KDAsSS5aKShmdW5jdGlvbigpe3ZhciB1bj0oMCxiLlopKHt3aWR0aDpuZSYmIWR0W25lXT9uZTp2bi5ncmlkPyIxMDAlIjp2b2lkIDB9LGx0PT1udWxsP3ZvaWQgMDpsdC5zdHlsZSk7cmV0dXJuIEh0JiZSZWZsZWN0LmRlbGV0ZVByb3BlcnR5KHVuLCJ3aWR0aCIpLCgwLCQuWSkodW4pfSxbKDAsTC5aUCkobHQ9PW51bGw/dm9pZCAwOmx0LnN0eWxlKSx2bi5ncmlkLEh0LG5lXSksX249KDAsSS5aKShmdW5jdGlvbigpe3ZhciB1bj1uZSYmZHRbbmVdO3JldHVybiBvKCkobHQ9PW51bGw/dm9pZCAwOmx0LmNsYXNzTmFtZSwoMCxzLlopKHsicHJvLWZpZWxkIjp1bn0sInByby1maWVsZC0iLmNvbmNhdChuZSksdW4mJiFIdCkpfHx2b2lkIDB9LFtuZSxsdD09bnVsbD92b2lkIDA6bHQuY2xhc3NOYW1lLEh0XSkscG49KDAsSS5aKShmdW5jdGlvbigpe3JldHVybigwLCQuWSkoKDAsYi5aKSgoMCxiLlopKHt9LHZuLnByb0ZpZWxkUHJvcHMpLHt9LHttb2RlOlllPT1udWxsP3ZvaWQgMDpZZS5tb2RlLHJlYWRvbmx5Ok9lLHBhcmFtczpZZS5wYXJhbXMscHJvRmllbGRLZXk6WG4sY2FjaGVGb3JTd3I6QnR9LER0KSl9LFt2bi5wcm9GaWVsZFByb3BzLFllPT1udWxsP3ZvaWQgMDpZZS5tb2RlLFllLnBhcmFtcyxPZSxYbixCdCxEdF0pLGVyPSgwLEkuWikoZnVuY3Rpb24oKXtyZXR1cm4oMCxiLlopKCgwLGIuWikoe29uQ2hhbmdlOkRuLGFsbG93Q2xlYXI6bXR9LGx0KSx7fSx7c3R5bGU6cnIsY2xhc3NOYW1lOl9ufSl9LFttdCxfbixEbixsdCxycl0pLGJuPSgwLEkuWikoZnVuY3Rpb24oKXtyZXR1cm4oMCxYZS5qc3gpKEN0LCgwLGIuWikoKDAsYi5aKSh7fSxZZSkse30se2ZpZWxkUHJvcHM6ZXIscHJvRmllbGRQcm9wczpwbixyZWY6X2U9PW51bGw/dm9pZCAwOl9lLmZpZWxkUmVmfSksX2UucHJvRm9ybUZpZWxkS2V5fHxfZS5uYW1lKX0sW3BuLGVyLFllXSkseW49KDAsSS5aKShmdW5jdGlvbigpe3ZhciB1bixjbixPbixDbjtyZXR1cm4oMCxYZS5qc3gpKHZlLlosKDAsYi5aKSgoMCxiLlopKHtsYWJlbDpabiYmKER0PT1udWxsP3ZvaWQgMDpEdC5saWdodCkhPT0hMD9abjp2b2lkIDAsdG9vbHRpcDooRHQ9PW51bGw/dm9pZCAwOkR0LmxpZ2h0KSE9PSEwJiZMbix2YWx1ZVByb3BOYW1lOmp0fSxQdCkse30se2lnbm9yZUZvcm1JdGVtOk5lLHRyYW5zZm9ybTpUZSxkYXRhRm9ybWF0Omx0PT1udWxsP3ZvaWQgMDpsdC5mb3JtYXQsdmFsdWVUeXBlOmFuLG1lc3NhZ2VWYXJpYWJsZXM6KDAsYi5aKSh7bGFiZWw6Wm58fCIifSxQdD09bnVsbD92b2lkIDA6UHQubWVzc2FnZVZhcmlhYmxlcyksY29udmVydFZhbHVlOmF0LGxpZ2h0UHJvcHM6KDAsJC5ZKSgoMCxiLlopKCgwLGIuWikoKDAsYi5aKSh7fSxsdCkse30se3ZhbHVlVHlwZTphbixib3JkZXJlZDprLGFsbG93Q2xlYXI6KGNuPWJuPT1udWxsfHwoT249Ym4ucHJvcHMpPT09bnVsbHx8T249PT12b2lkIDA/dm9pZCAwOk9uLmFsbG93Q2xlYXIpIT09bnVsbCYmY24hPT12b2lkIDA/Y246bXQsbGlnaHQ6RHQ9PW51bGw/dm9pZCAwOkR0LmxpZ2h0LGxhYmVsOlpuLGN1c3RvbUxpZ2h0TW9kZTp3dCxsYWJlbEZvcm1hdHRlcjpXdCx2YWx1ZVByb3BOYW1lOmp0LGZvb3RlclJlbmRlcjpibj09bnVsbHx8KENuPWJuLnByb3BzKT09PW51bGx8fENuPT09dm9pZCAwP3ZvaWQgMDpDbi5mb290ZXJSZW5kZXJ9LFllLmxpZ2h0UHJvcHMpLFB0LmxpZ2h0UHJvcHMpKSxjaGlsZHJlbjpibn0pLF9lLnByb0Zvcm1GaWVsZEtleXx8KCh1bj1QdC5uYW1lKT09PW51bGx8fHVuPT09dm9pZCAwP3ZvaWQgMDp1bi50b1N0cmluZygpKSl9LFtabixEdD09bnVsbD92b2lkIDA6RHQubGlnaHQsTG4sanQsX2UucHJvRm9ybUZpZWxkS2V5LFB0LE5lLFRlLGx0LGFuLGF0LGssYm4sbXQsd3QsV3QsWWUubGlnaHRQcm9wc10pLGtuPSgwLGxlLnp4KShZZSksb249a24uQ29sV3JhcHBlcjtyZXR1cm4oMCxYZS5qc3gpKG9uLHtjaGlsZHJlbjp5bn0pfSx0ZT1mdW5jdGlvbihfZSl7dmFyIGZ0PV9lLmRlcGVuZGVuY2llcztyZXR1cm4gZnQ/KDAsWGUuanN4KShiZS5aLHtuYW1lOmZ0LG9yaWdpbkRlcGVuZGVuY2llczpfZT09bnVsbD92b2lkIDA6X2Uub3JpZ2luRGVwZW5kZW5jaWVzLGNoaWxkcmVuOmZ1bmN0aW9uKHd0KXtyZXR1cm4oMCxYZS5qc3gpKEcsKDAsYi5aKSh7ZGVwZW5kZW5jaWVzVmFsdWVzOnd0LGRlcGVuZGVuY2llczpmdH0sX2UpKX19KTooMCxYZS5qc3gpKEcsKDAsYi5aKSh7ZGVwZW5kZW5jaWVzOmZ0fSxfZSkpfTtyZXR1cm4gdGV9fSw5NzQ2MjpmdW5jdGlvbihTLFosaSl7InVzZSBzdHJpY3QiO3ZhciBzPWkoMTQxMyksZz1pKDkxKSxiPWkoNDEwMzYpLE89aSg2MDI0OSksST1pKDkyMjEwKSwkPWkoOTk4NTkpLFI9aSg4ODMwNiksRj1pKDg4ODApLEw9aSg2NzI5NCksVT1pKDE3MTg2KSxkZT1pKDg1ODkzKSxvPVsibmFtZSIsIm9yaWdpbkRlcGVuZGVuY2llcyIsImNoaWxkcmVuIiwiaWdub3JlRm9ybUxpc3RGaWVsZCJdLGo9ZnVuY3Rpb24obWUpe3ZhciBfPW1lLm5hbWUsdmU9bWUub3JpZ2luRGVwZW5kZW5jaWVzLGJlPXZlPT09dm9pZCAwP186dmUsbGU9bWUuY2hpbGRyZW4sWGU9bWUuaWdub3JlRm9ybUxpc3RGaWVsZCxvZT0oMCxnLlopKG1lLG8pLEZlPSgwLEwudXNlQ29udGV4dCkoYi5KKSx6ZT0oMCxMLnVzZUNvbnRleHQpKFUuSiksZHQ9KDAsTC51c2VNZW1vKShmdW5jdGlvbigpe3JldHVybiBfLm1hcChmdW5jdGlvbihndCl7dmFyIHJ0LEN0PVtndF07cmV0dXJuIVhlJiZ6ZS5uYW1lIT09dm9pZCAwJiYocnQ9emUubGlzdE5hbWUpIT09bnVsbCYmcnQhPT12b2lkIDAmJnJ0Lmxlbmd0aCYmQ3QudW5zaGlmdCh6ZS5saXN0TmFtZSksQ3QuZmxhdCgxKX0pfSxbemUubGlzdE5hbWUsemUubmFtZSxYZSxfPT1udWxsP3ZvaWQgMDpfLnRvU3RyaW5nKCldKTtyZXR1cm4oMCxkZS5qc3gpKCQuWi5JdGVtLCgwLHMuWikoKDAscy5aKSh7fSxvZSkse30se25vU3R5bGU6ITAsc2hvdWxkVXBkYXRlOmZ1bmN0aW9uKHJ0LEN0LG90KXtpZih0eXBlb2Ygb2Uuc2hvdWxkVXBkYXRlPT0iYm9vbGVhbiIpcmV0dXJuIG9lLnNob3VsZFVwZGF0ZTtpZih0eXBlb2Ygb2Uuc2hvdWxkVXBkYXRlPT0iZnVuY3Rpb24iKXt2YXIgRztyZXR1cm4oRz1vZS5zaG91bGRVcGRhdGUpPT09bnVsbHx8Rz09PXZvaWQgMD92b2lkIDA6Ry5jYWxsKG9lLHJ0LEN0LG90KX1yZXR1cm4gZHQuc29tZShmdW5jdGlvbih0ZSl7cmV0dXJuISgwLE8uQSkoKDAsUi5aKShydCx0ZSksKDAsUi5aKShDdCx0ZSkpfSl9LGNoaWxkcmVuOmZ1bmN0aW9uKHJ0KXtmb3IodmFyIEN0PXt9LG90PTA7b3Q8Xy5sZW5ndGg7b3QrKyl7dmFyIEcsdGU9ZHRbb3RdLFFlPWJlW290XSxfZT1bUWVdLmZsYXQoMSksZnQ9KEc9RmUuZ2V0RmllbGRGb3JtYXRWYWx1ZU9iamVjdCk9PT1udWxsfHxHPT09dm9pZCAwP3ZvaWQgMDpHLmNhbGwoRmUsdGUpO2lmKGZ0JiZPYmplY3Qua2V5cyhmdCkubGVuZ3RoKUN0PSgwLEkuVCkoe30sQ3QsZnQpLCgwLFIuWikoZnQsdGUpJiYoQ3Q9KDAsRi5aKShDdCxfZSwoMCxSLlopKGZ0LHRlKSkpO2Vsc2V7dmFyIEx0O2Z0PShMdD1ydC5nZXRGaWVsZFZhbHVlKT09PW51bGx8fEx0PT09dm9pZCAwP3ZvaWQgMDpMdC5jYWxsKHJ0LHRlKSx0eXBlb2YgZnQhPSJ1bmRlZmluZWQiJiYoQ3Q9KDAsRi5aKShDdCxfZSxmdCkpfX1yZXR1cm4gbGU9PW51bGw/dm9pZCAwOmxlKEN0LCgwLHMuWikoKDAscy5aKSh7fSxydCksRmUpKX19KSl9O2ouZGlzcGxheU5hbWU9IlByb0Zvcm1EZXBlbmRlbmN5IixaLlo9an0sOTIxNzk6ZnVuY3Rpb24oUyxaLGkpeyJ1c2Ugc3RyaWN0IjtpLmQoWix7WjpmdW5jdGlvbigpe3JldHVybiBhcH19KTt2YXIgcz1pKDE0MTMpLGc9aSg5MSksYj1pKDcxMDAyKSxPPWkoMTA5MTUpLEk9InZhbHVlVHlwZSByZXF1ZXN0IHBsYWluIHJlbmRlckZvcm1JdGVtIHJlbmRlciB0ZXh0IGZvcm1JdGVtUHJvcHMgdmFsdWVFbnVtIiwkPSJmaWVsZFByb3BzIGlzRGVmYXVsdERvbSBncm91cFByb3BzIGNvbnRlbnRSZW5kZXIgc3VibWl0dGVyUHJvcHMgc3VibWl0dGVyIjtmdW5jdGlvbiBSKGUpe3ZhciB0PSIiLmNvbmNhdChJLCIgIikuY29uY2F0KCQpLnNwbGl0KC9bXHNcbl0rLyksbj17fTtyZXR1cm4gT2JqZWN0LmtleXMoZXx8e30pLmZvckVhY2goZnVuY3Rpb24ocil7dC5pbmNsdWRlcyhyKXx8KG5bcl09ZVtyXSl9KSxufXZhciBGPWkoNDgxNzEpLEw9aSg3NDEzOCksVT1pKDUxODEyKSxkZT1pKDY4OTk3KSxvPWkoNjcyOTQpLGo9aSg5NzY4NSksRGU9aSg1MDg4OCksbWU9aSgxOTA0MyksXz1pKDMxNDEzKSx2ZT1pKDIxMjIpLGJlPWkoMjE1MzIpLGxlPWkoNzQ5MDIpLFhlPWkoOTM5NjcpLG9lPWkubihYZSksRmU9aSg4NzQ2MiksemU9aSg4MjI3NSksZHQ9aSg4ODcwOCksZ3Q9aSg2NjY4MCkscnQ9aSgyMTc3MCksQ3Q9by5jcmVhdGVDb250ZXh0KHt9KSxvdD1DdCxHPWkoNDk0MiksdGU9Il9fcmNfY2FzY2FkZXJfc2VhcmNoX21hcmtfXyIsUWU9ZnVuY3Rpb24odCxuLHIpe3ZhciBhPXIubGFiZWwsbD1hPT09dm9pZCAwPyIiOmE7cmV0dXJuIG4uc29tZShmdW5jdGlvbih1KXtyZXR1cm4gU3RyaW5nKHVbbF0pLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModC50b0xvd2VyQ2FzZSgpKX0pfSxfZT1mdW5jdGlvbih0LG4scixhKXtyZXR1cm4gbi5tYXAoZnVuY3Rpb24obCl7cmV0dXJuIGxbYS5sYWJlbF19KS5qb2luKCIgLyAiKX0sZnQ9ZnVuY3Rpb24odCxuLHIsYSxsLHUpe3ZhciBjPWwuZmlsdGVyLGQ9Yz09PXZvaWQgMD9RZTpjLHY9bC5yZW5kZXIsZj12PT09dm9pZCAwP19lOnYsbT1sLmxpbWl0LGg9bT09PXZvaWQgMD81MDptLEM9bC5zb3J0O3JldHVybiBvLnVzZU1lbW8oZnVuY3Rpb24oKXt2YXIgeD1bXTtpZighdClyZXR1cm5bXTtmdW5jdGlvbiBwKHksdyl7dmFyIFA9YXJndW1lbnRzLmxlbmd0aD4yJiZhcmd1bWVudHNbMl0hPT12b2lkIDA/YXJndW1lbnRzWzJdOiExO3kuZm9yRWFjaChmdW5jdGlvbihFKXtpZighKCFDJiZoIT09ITEmJmg+MCYmeC5sZW5ndGg+PWgpKXt2YXIgTT1bXS5jb25jYXQoKDAsbGUuWikodyksW0VdKSxEPUVbci5jaGlsZHJlbl0sTj1QfHxFLmRpc2FibGVkO2lmKCghRHx8RC5sZW5ndGg9PT0wfHx1KSYmZCh0LE0se2xhYmVsOnIubGFiZWx9KSl7dmFyIFQ7eC5wdXNoKCgwLHMuWikoKDAscy5aKSh7fSxFKSx7fSwoVD17ZGlzYWJsZWQ6Tn0sKDAsRy5aKShULHIubGFiZWwsZih0LE0sYSxyKSksKDAsRy5aKShULHRlLE0pLCgwLEcuWikoVCxyLmNoaWxkcmVuLHZvaWQgMCksVCkpKX1EJiZwKEVbci5jaGlsZHJlbl0sTSxOKX19KX1yZXR1cm4gcChuLFtdKSxDJiZ4LnNvcnQoZnVuY3Rpb24oeSx3KXtyZXR1cm4gQyh5W3RlXSx3W3RlXSx0LHIpfSksaCE9PSExJiZoPjA/eC5zbGljZSgwLGgpOnh9LFt0LG4scixhLGYsdSxkLEMsaF0pfSxMdD1mdCx3dD0iX19SQ19DQVNDQURFUl9TUExJVF9fIixXdD0iU0hPV19QQVJFTlQiLHJuPSJTSE9XX0NISUxEIjtmdW5jdGlvbiBqdChlKXtyZXR1cm4gZS5qb2luKHd0KX1mdW5jdGlvbiBKdChlKXtyZXR1cm4gZS5tYXAoanQpfWZ1bmN0aW9uIHp0KGUpe3JldHVybiBlLnNwbGl0KHd0KX1mdW5jdGlvbiBLdChlKXt2YXIgdD1lfHx7fSxuPXQubGFiZWwscj10LnZhbHVlLGE9dC5jaGlsZHJlbixsPXJ8fCJ2YWx1ZSI7cmV0dXJue2xhYmVsOm58fCJsYWJlbCIsdmFsdWU6bCxrZXk6bCxjaGlsZHJlbjphfHwiY2hpbGRyZW4ifX1mdW5jdGlvbiBWdChlLHQpe3ZhciBuLHI7cmV0dXJuKG49ZS5pc0xlYWYpIT09bnVsbCYmbiE9PXZvaWQgMD9uOiEoKHI9ZVt0LmNoaWxkcmVuXSkhPT1udWxsJiZyIT09dm9pZCAwJiZyLmxlbmd0aCl9ZnVuY3Rpb24gWm4oZSl7dmFyIHQ9ZS5wYXJlbnRFbGVtZW50O2lmKHQpe3ZhciBuPWUub2Zmc2V0VG9wLXQub2Zmc2V0VG9wO24tdC5zY3JvbGxUb3A8MD90LnNjcm9sbFRvKHt0b3A6bn0pOm4rZS5vZmZzZXRIZWlnaHQtdC5zY3JvbGxUb3A+dC5vZmZzZXRIZWlnaHQmJnQuc2Nyb2xsVG8oe3RvcDpuK2Uub2Zmc2V0SGVpZ2h0LXQub2Zmc2V0SGVpZ2h0fSl9fWZ1bmN0aW9uIExuKGUsdCl7cmV0dXJuIGUubWFwKGZ1bmN0aW9uKG4pe3ZhciByO3JldHVybihyPW5bdGVdKT09PW51bGx8fHI9PT12b2lkIDA/dm9pZCAwOnIubWFwKGZ1bmN0aW9uKGEpe3JldHVybiBhW3QudmFsdWVdfSl9KX1mdW5jdGlvbiBucihlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKSYmQXJyYXkuaXNBcnJheShlWzBdKX1mdW5jdGlvbiBuZShlKXtyZXR1cm4gZT9ucihlKT9lOihlLmxlbmd0aD09PTA/W106W2VdKS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCk/dDpbdF19KTpbXX1mdW5jdGlvbiBrKGUsdCxuKXt2YXIgcj1uZXcgU2V0KGUpLGE9dCgpO3JldHVybiBlLmZpbHRlcihmdW5jdGlvbihsKXt2YXIgdT1hW2xdLGM9dT91LnBhcmVudDpudWxsLGQ9dT91LmNoaWxkcmVuOm51bGw7cmV0dXJuIHUmJnUubm9kZS5kaXNhYmxlZD8hMDpuPT09cm4/IShkJiZkLnNvbWUoZnVuY3Rpb24odil7cmV0dXJuIHYua2V5JiZyLmhhcyh2LmtleSl9KSk6IShjJiYhYy5ub2RlLmRpc2FibGVkJiZyLmhhcyhjLmtleSkpfSl9ZnVuY3Rpb24gJGUoZSx0LG4pe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjMmJmFyZ3VtZW50c1szXSE9PXZvaWQgMD9hcmd1bWVudHNbM106ITEsYT10LGw9W10sdT1mdW5jdGlvbigpe3ZhciB2LGYsbSxoPWVbY10sQz0odj1hKT09PW51bGx8fHY9PT12b2lkIDA/dm9pZCAwOnYuZmluZEluZGV4KGZ1bmN0aW9uKHApe3ZhciB5PXBbbi52YWx1ZV07cmV0dXJuIHI/U3RyaW5nKHkpPT09U3RyaW5nKGgpOnk9PT1ofSkseD1DIT09LTE/KGY9YSk9PT1udWxsfHxmPT09dm9pZCAwP3ZvaWQgMDpmW0NdOm51bGw7bC5wdXNoKHt2YWx1ZToobT14PT1udWxsP3ZvaWQgMDp4W24udmFsdWVdKSE9PW51bGwmJm0hPT12b2lkIDA/bTpoLGluZGV4OkMsb3B0aW9uOnh9KSxhPXg9PW51bGw/dm9pZCAwOnhbbi5jaGlsZHJlbl19LGM9MDtjPGUubGVuZ3RoO2MrPTEpdSgpO3JldHVybiBsfXZhciBOZT1mdW5jdGlvbihlLHQsbixyLGEpe3JldHVybiBvLnVzZU1lbW8oZnVuY3Rpb24oKXt2YXIgbD1hfHxmdW5jdGlvbih1KXt2YXIgYz1yP3Uuc2xpY2UoLTEpOnUsZD0iIC8gIjtyZXR1cm4gYy5ldmVyeShmdW5jdGlvbih2KXtyZXR1cm5bInN0cmluZyIsIm51bWJlciJdLmluY2x1ZGVzKCgwLGIuWikodikpfSk/Yy5qb2luKGQpOmMucmVkdWNlKGZ1bmN0aW9uKHYsZixtKXt2YXIgaD1vLmlzVmFsaWRFbGVtZW50KGYpP28uY2xvbmVFbGVtZW50KGYse2tleTptfSk6ZjtyZXR1cm4gbT09PTA/W2hdOltdLmNvbmNhdCgoMCxsZS5aKSh2KSxbZCxoXSl9LFtdKX07cmV0dXJuIGUubWFwKGZ1bmN0aW9uKHUpe3ZhciBjLGQ9JGUodSx0LG4pLHY9bChkLm1hcChmdW5jdGlvbihtKXt2YXIgaCxDPW0ub3B0aW9uLHg9bS52YWx1ZTtyZXR1cm4oaD1DPT1udWxsP3ZvaWQgMDpDW24ubGFiZWxdKSE9PW51bGwmJmghPT12b2lkIDA/aDp4fSksZC5tYXAoZnVuY3Rpb24obSl7dmFyIGg9bS5vcHRpb247cmV0dXJuIGh9KSksZj1qdCh1KTtyZXR1cm57bGFiZWw6dix2YWx1ZTpmLGtleTpmLHZhbHVlQ2VsbHM6dSxkaXNhYmxlZDooYz1kW2QubGVuZ3RoLTFdKT09PW51bGx8fGM9PT12b2lkIDB8fChjPWMub3B0aW9uKT09PW51bGx8fGM9PT12b2lkIDA/dm9pZCAwOmMuZGlzYWJsZWR9fSl9LFtlLHQsbixhLHJdKX07ZnVuY3Rpb24gVGUoZSx0KXtyZXR1cm4gby51c2VDYWxsYmFjayhmdW5jdGlvbihuKXt2YXIgcj1bXSxhPVtdO3JldHVybiBuLmZvckVhY2goZnVuY3Rpb24obCl7dmFyIHU9JGUobCxlLHQpO3UuZXZlcnkoZnVuY3Rpb24oYyl7cmV0dXJuIGMub3B0aW9ufSk/YS5wdXNoKGwpOnIucHVzaChsKX0pLFthLHJdfSxbZSx0XSl9dmFyIGF0PWkoMTA4OSksT2U9ZnVuY3Rpb24oZSx0KXt2YXIgbj1vLnVzZVJlZih7b3B0aW9uczpbXSxpbmZvOntrZXlFbnRpdGllczp7fSxwYXRoS2V5RW50aXRpZXM6e319fSkscj1vLnVzZUNhbGxiYWNrKGZ1bmN0aW9uKCl7cmV0dXJuIG4uY3VycmVudC5vcHRpb25zIT09ZSYmKG4uY3VycmVudC5vcHRpb25zPWUsbi5jdXJyZW50LmluZm89KDAsYXQuSTgpKGUse2ZpZWxkTmFtZXM6dCxpbml0V3JhcHBlcjpmdW5jdGlvbihsKXtyZXR1cm4oMCxzLlopKCgwLHMuWikoe30sbCkse30se3BhdGhLZXlFbnRpdGllczp7fX0pfSxwcm9jZXNzRW50aXR5OmZ1bmN0aW9uKGwsdSl7dmFyIGM9bC5ub2Rlcy5tYXAoZnVuY3Rpb24oZCl7cmV0dXJuIGRbdC52YWx1ZV19KS5qb2luKHd0KTt1LnBhdGhLZXlFbnRpdGllc1tjXT1sLGwua2V5PWN9fSkpLG4uY3VycmVudC5pbmZvLnBhdGhLZXlFbnRpdGllc30sW3QsZV0pO3JldHVybiByfTtmdW5jdGlvbiBtdChlLHQpe3ZhciBuPW8udXNlTWVtbyhmdW5jdGlvbigpe3JldHVybiB0fHxbXX0sW3RdKSxyPU9lKG4sZSksYT1vLnVzZUNhbGxiYWNrKGZ1bmN0aW9uKGwpe3ZhciB1PXIoKTtyZXR1cm4gbC5tYXAoZnVuY3Rpb24oYyl7dmFyIGQ9dVtjXS5ub2RlcztyZXR1cm4gZC5tYXAoZnVuY3Rpb24odil7cmV0dXJuIHZbZS52YWx1ZV19KX0pfSxbcixlXSk7cmV0dXJuW24scixhXX12YXIgaHQ9aSg4MDMzNCk7ZnVuY3Rpb24gRnQoZSl7cmV0dXJuIG8udXNlTWVtbyhmdW5jdGlvbigpe2lmKCFlKXJldHVyblshMSx7fV07dmFyIHQ9e21hdGNoSW5wdXRXaWR0aDohMCxsaW1pdDo1MH07cmV0dXJuIGUmJigwLGIuWikoZSk9PT0ib2JqZWN0IiYmKHQ9KDAscy5aKSgoMCxzLlopKHt9LHQpLGUpKSx0LmxpbWl0PD0wJiYodC5saW1pdD0hMSksWyEwLHRdfSxbZV0pfXZhciAkdD1pKDE3MzQxKTtmdW5jdGlvbiBBdChlLHQsbixyLGEsbCx1LGMpe3JldHVybiBmdW5jdGlvbihkKXtpZighZSl0KGQpO2Vsc2V7dmFyIHY9anQoZCksZj1KdChuKSxtPUp0KHIpLGg9Zi5pbmNsdWRlcyh2KSxDPWEuc29tZShmdW5jdGlvbihOKXtyZXR1cm4ganQoTik9PT12fSkseD1uLHA9YTtpZihDJiYhaClwPWEuZmlsdGVyKGZ1bmN0aW9uKE4pe3JldHVybiBqdChOKSE9PXZ9KTtlbHNle3ZhciB5PWg/Zi5maWx0ZXIoZnVuY3Rpb24oTil7cmV0dXJuIE4hPT12fSk6W10uY29uY2F0KCgwLGxlLlopKGYpLFt2XSksdz1sKCksUDtpZihoKXt2YXIgRT0oMCwkdC5TKSh5LHtjaGVja2VkOiExLGhhbGZDaGVja2VkS2V5czptfSx3KTtQPUUuY2hlY2tlZEtleXN9ZWxzZXt2YXIgTT0oMCwkdC5TKSh5LCEwLHcpO1A9TS5jaGVja2VkS2V5c312YXIgRD1rKFAsbCxjKTt4PXUoRCl9dChbXS5jb25jYXQoKDAsbGUuWikocCksKDAsbGUuWikoeCkpKX19fWZ1bmN0aW9uIEJ0KGUsdCxuLHIsYSl7cmV0dXJuIG8udXNlTWVtbyhmdW5jdGlvbigpe3ZhciBsPWEodCksdT0oMCxqLlopKGwsMiksYz11WzBdLGQ9dVsxXTtpZighZXx8IXQubGVuZ3RoKXJldHVybltjLFtdLGRdO3ZhciB2PUp0KGMpLGY9bigpLG09KDAsJHQuUykodiwhMCxmKSxoPW0uY2hlY2tlZEtleXMsQz1tLmhhbGZDaGVja2VkS2V5cztyZXR1cm5bcihoKSxyKEMpLGRdfSxbZSx0LG4scixhXSl9dmFyIER0PW8ubWVtbyhmdW5jdGlvbihlKXt2YXIgdD1lLmNoaWxkcmVuO3JldHVybiB0fSxmdW5jdGlvbihlLHQpe3JldHVybiF0Lm9wZW59KSxZZT1EdDtmdW5jdGlvbiBhbihlKXt2YXIgdCxuPWUucHJlZml4Q2xzLHI9ZS5jaGVja2VkLGE9ZS5oYWxmQ2hlY2tlZCxsPWUuZGlzYWJsZWQsdT1lLm9uQ2xpY2ssYz1lLmRpc2FibGVDaGVja2JveCxkPW8udXNlQ29udGV4dChvdCksdj1kLmNoZWNrYWJsZSxmPXR5cGVvZiB2IT0iYm9vbGVhbiI/djpudWxsO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6b2UoKSgiIi5jb25jYXQobiksKHQ9e30sKDAsRy5aKSh0LCIiLmNvbmNhdChuLCItY2hlY2tlZCIpLHIpLCgwLEcuWikodCwiIi5jb25jYXQobiwiLWluZGV0ZXJtaW5hdGUiKSwhciYmYSksKDAsRy5aKSh0LCIiLmNvbmNhdChuLCItZGlzYWJsZWQiKSxsfHxjKSx0KSksb25DbGljazp1fSxmKX12YXIgSHQ9Il9fY2FzY2FkZXJfZml4X2xhYmVsX18iO2Z1bmN0aW9uIGhuKGUpe3ZhciB0PWUucHJlZml4Q2xzLG49ZS5tdWx0aXBsZSxyPWUub3B0aW9ucyxhPWUuYWN0aXZlVmFsdWUsbD1lLnByZXZWYWx1ZVBhdGgsdT1lLm9uVG9nZ2xlT3BlbixjPWUub25TZWxlY3QsZD1lLm9uQWN0aXZlLHY9ZS5jaGVja2VkU2V0LGY9ZS5oYWxmQ2hlY2tlZFNldCxtPWUubG9hZGluZ0tleXMsaD1lLmlzU2VsZWN0YWJsZSxDPWUuZGlzYWJsZWQseD0iIi5jb25jYXQodCwiLW1lbnUiKSxwPSIiLmNvbmNhdCh0LCItbWVudS1pdGVtIikseT1vLnVzZUNvbnRleHQob3QpLHc9eS5maWVsZE5hbWVzLFA9eS5jaGFuZ2VPblNlbGVjdCxFPXkuZXhwYW5kVHJpZ2dlcixNPXkuZXhwYW5kSWNvbixEPXkubG9hZGluZ0ljb24sTj15LmRyb3Bkb3duTWVudUNvbHVtblN0eWxlLFQ9eS5vcHRpb25SZW5kZXIsVz1FPT09ImhvdmVyIixCPWZ1bmN0aW9uKEEpe3JldHVybiBDfHxBfSxZPW8udXNlTWVtbyhmdW5jdGlvbigpe3JldHVybiByLm1hcChmdW5jdGlvbihIKXt2YXIgQSxWPUguZGlzYWJsZWQsej1ILmRpc2FibGVDaGVja2JveCxYPUhbdGVdLHE9KEE9SFtIdF0pIT09bnVsbCYmQSE9PXZvaWQgMD9BOkhbdy5sYWJlbF0sUT1IW3cudmFsdWVdLGFlPVZ0KEgsdyksZWU9WD9YLm1hcChmdW5jdGlvbihjZSl7cmV0dXJuIGNlW3cudmFsdWVdfSk6W10uY29uY2F0KCgwLGxlLlopKGwpLFtRXSkscmU9anQoZWUpLHNlPW0uaW5jbHVkZXMocmUpLEo9di5oYXMocmUpLGllPWYuaGFzKHJlKTtyZXR1cm57ZGlzYWJsZWQ6VixsYWJlbDpxLHZhbHVlOlEsaXNMZWFmOmFlLGlzTG9hZGluZzpzZSxjaGVja2VkOkosaGFsZkNoZWNrZWQ6aWUsb3B0aW9uOkgsZGlzYWJsZUNoZWNrYm94OnosZnVsbFBhdGg6ZWUsZnVsbFBhdGhLZXk6cmV9fSl9LFtyLHYsdyxmLG0sbF0pO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoInVsIix7Y2xhc3NOYW1lOngscm9sZToibWVudSJ9LFkubWFwKGZ1bmN0aW9uKEgpe3ZhciBBLFY9SC5kaXNhYmxlZCx6PUgubGFiZWwsWD1ILnZhbHVlLHE9SC5pc0xlYWYsUT1ILmlzTG9hZGluZyxhZT1ILmNoZWNrZWQsZWU9SC5oYWxmQ2hlY2tlZCxyZT1ILm9wdGlvbixzZT1ILmZ1bGxQYXRoLEo9SC5mdWxsUGF0aEtleSxpZT1ILmRpc2FibGVDaGVja2JveCxjZT1mdW5jdGlvbigpe2lmKCFCKFYpKXt2YXIgUGU9KDAsbGUuWikoc2UpO1cmJnEmJlBlLnBvcCgpLGQoUGUpfX0seGU9ZnVuY3Rpb24oKXtoKHJlKSYmIUIoVikmJmMoc2UscSl9LHVlO3JldHVybiB0eXBlb2YgcmUudGl0bGU9PSJzdHJpbmciP3VlPXJlLnRpdGxlOnR5cGVvZiB6PT0ic3RyaW5nIiYmKHVlPXopLG8uY3JlYXRlRWxlbWVudCgibGkiLHtrZXk6SixjbGFzc05hbWU6b2UoKShwLChBPXt9LCgwLEcuWikoQSwiIi5jb25jYXQocCwiLWV4cGFuZCIpLCFxKSwoMCxHLlopKEEsIiIuY29uY2F0KHAsIi1hY3RpdmUiKSxhPT09WHx8YT09PUopLCgwLEcuWikoQSwiIi5jb25jYXQocCwiLWRpc2FibGVkIiksQihWKSksKDAsRy5aKShBLCIiLmNvbmNhdChwLCItbG9hZGluZyIpLFEpLEEpKSxzdHlsZTpOLHJvbGU6Im1lbnVpdGVtY2hlY2tib3giLHRpdGxlOnVlLCJhcmlhLWNoZWNrZWQiOmFlLCJkYXRhLXBhdGgta2V5IjpKLG9uQ2xpY2s6ZnVuY3Rpb24oKXtjZSgpLCFpZSYmKCFufHxxKSYmeGUoKX0sb25Eb3VibGVDbGljazpmdW5jdGlvbigpe1AmJnUoITEpfSxvbk1vdXNlRW50ZXI6ZnVuY3Rpb24oKXtXJiZjZSgpfSxvbk1vdXNlRG93bjpmdW5jdGlvbihQZSl7UGUucHJldmVudERlZmF1bHQoKX19LG4mJm8uY3JlYXRlRWxlbWVudChhbix7cHJlZml4Q2xzOiIiLmNvbmNhdCh0LCItY2hlY2tib3giKSxjaGVja2VkOmFlLGhhbGZDaGVja2VkOmVlLGRpc2FibGVkOkIoVil8fGllLGRpc2FibGVDaGVja2JveDppZSxvbkNsaWNrOmZ1bmN0aW9uKFBlKXtpZXx8KFBlLnN0b3BQcm9wYWdhdGlvbigpLHhlKCkpfX0pLG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdChwLCItY29udGVudCIpfSxUP1QocmUpOnopLCFRJiZNJiYhcSYmby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KHAsIi1leHBhbmQtaWNvbiIpfSxNKSxRJiZEJiZvLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiIi5jb25jYXQocCwiLWxvYWRpbmctaWNvbiIpfSxEKSl9KSl9dmFyIHF0PWZ1bmN0aW9uKHQsbil7dmFyIHI9by51c2VDb250ZXh0KG90KSxhPXIudmFsdWVzLGw9YVswXSx1PW8udXNlU3RhdGUoW10pLGM9KDAsai5aKSh1LDIpLGQ9Y1swXSx2PWNbMV07cmV0dXJuIG8udXNlRWZmZWN0KGZ1bmN0aW9uKCl7dHx8dihsfHxbXSl9LFtuLGxdKSxbZCx2XX0sd249cXQsVHQ9aSgxNTEwNSksWW49ZnVuY3Rpb24oZSx0LG4scixhLGwsdSl7dmFyIGM9dS5kaXJlY3Rpb24sZD11LnNlYXJjaFZhbHVlLHY9dS50b2dnbGVPcGVuLGY9dS5vcGVuLG09Yz09PSJydGwiLGg9by51c2VNZW1vKGZ1bmN0aW9uKCl7Zm9yKHZhciBOPS0xLFQ9dCxXPVtdLEI9W10sWT1yLmxlbmd0aCxIPUxuKHQsbiksQT1mdW5jdGlvbihRKXt2YXIgYWU9VC5maW5kSW5kZXgoZnVuY3Rpb24oZWUscmUpe3JldHVybihIW3JlXT9qdChIW3JlXSk6ZWVbbi52YWx1ZV0pPT09cltRXX0pO2lmKGFlPT09LTEpcmV0dXJuIDE7Tj1hZSxXLnB1c2goTiksQi5wdXNoKHJbUV0pLFQ9VFtOXVtuLmNoaWxkcmVuXX0sVj0wO1Y8WSYmVCYmIUEoVik7Vis9MSk7Zm9yKHZhciB6PXQsWD0wO1g8Vy5sZW5ndGgtMTtYKz0xKXo9eltXW1hdXVtuLmNoaWxkcmVuXTtyZXR1cm5bQixOLHosSF19LFtyLG4sdF0pLEM9KDAsai5aKShoLDQpLHg9Q1swXSxwPUNbMV0seT1DWzJdLHc9Q1szXSxQPWZ1bmN0aW9uKFQpe2EoVCl9LEU9ZnVuY3Rpb24oVCl7dmFyIFc9eS5sZW5ndGgsQj1wO0I9PT0tMSYmVDwwJiYoQj1XKTtmb3IodmFyIFk9MDtZPFc7WSs9MSl7Qj0oQitUK1cpJVc7dmFyIEg9eVtCXTtpZihIJiYhSC5kaXNhYmxlZCl7dmFyIEE9eC5zbGljZSgwLC0xKS5jb25jYXQod1tCXT9qdCh3W0JdKTpIW24udmFsdWVdKTtQKEEpO3JldHVybn19fSxNPWZ1bmN0aW9uKCl7aWYoeC5sZW5ndGg+MSl7dmFyIFQ9eC5zbGljZSgwLC0xKTtQKFQpfWVsc2UgdighMSl9LEQ9ZnVuY3Rpb24oKXt2YXIgVCxXPSgoVD15W3BdKT09PW51bGx8fFQ9PT12b2lkIDA/dm9pZCAwOlRbbi5jaGlsZHJlbl0pfHxbXSxCPVcuZmluZChmdW5jdGlvbihIKXtyZXR1cm4hSC5kaXNhYmxlZH0pO2lmKEIpe3ZhciBZPVtdLmNvbmNhdCgoMCxsZS5aKSh4KSxbQltuLnZhbHVlXV0pO1AoWSl9fTtvLnVzZUltcGVyYXRpdmVIYW5kbGUoZSxmdW5jdGlvbigpe3JldHVybntvbktleURvd246ZnVuY3Rpb24oVCl7dmFyIFc9VC53aGljaDtzd2l0Y2goVyl7Y2FzZSBUdC5aLlVQOmNhc2UgVHQuWi5ET1dOOnt2YXIgQj0wO1c9PT1UdC5aLlVQP0I9LTE6Vz09PVR0LlouRE9XTiYmKEI9MSksQiE9PTAmJkUoQik7YnJlYWt9Y2FzZSBUdC5aLkxFRlQ6e2lmKGQpYnJlYWs7bT9EKCk6TSgpO2JyZWFrfWNhc2UgVHQuWi5SSUdIVDp7aWYoZClicmVhazttP00oKTpEKCk7YnJlYWt9Y2FzZSBUdC5aLkJBQ0tTUEFDRTp7ZHx8TSgpO2JyZWFrfWNhc2UgVHQuWi5FTlRFUjp7aWYoeC5sZW5ndGgpe3ZhciBZPXlbcF0sSD0oWT09bnVsbD92b2lkIDA6WVt0ZV0pfHxbXTtILmxlbmd0aD9sKEgubWFwKGZ1bmN0aW9uKEEpe3JldHVybiBBW24udmFsdWVdfSksSFtILmxlbmd0aC0xXSk6bCh4LHlbcF0pfWJyZWFrfWNhc2UgVHQuWi5FU0M6dighMSksZiYmVC5zdG9wUHJvcGFnYXRpb24oKX19LG9uS2V5VXA6ZnVuY3Rpb24oKXt9fX0pfSxVbj1vLmZvcndhcmRSZWYoZnVuY3Rpb24oZSx0KXt2YXIgbixyLGEsbD1lLnByZWZpeENscyx1PWUubXVsdGlwbGUsYz1lLnNlYXJjaFZhbHVlLGQ9ZS50b2dnbGVPcGVuLHY9ZS5ub3RGb3VuZENvbnRlbnQsZj1lLmRpcmVjdGlvbixtPWUub3BlbixoPWUuZGlzYWJsZWQsQz1vLnVzZVJlZihudWxsKSx4PWY9PT0icnRsIixwPW8udXNlQ29udGV4dChvdCkseT1wLm9wdGlvbnMsdz1wLnZhbHVlcyxQPXAuaGFsZlZhbHVlcyxFPXAuZmllbGROYW1lcyxNPXAuY2hhbmdlT25TZWxlY3QsRD1wLm9uU2VsZWN0LE49cC5zZWFyY2hPcHRpb25zLFQ9cC5kcm9wZG93blByZWZpeENscyxXPXAubG9hZERhdGEsQj1wLmV4cGFuZFRyaWdnZXIsWT1UfHxsLEg9by51c2VTdGF0ZShbXSksQT0oMCxqLlopKEgsMiksVj1BWzBdLHo9QVsxXSxYPWZ1bmN0aW9uKENlKXtpZighKCFXfHxjKSl7dmFyIEVlPSRlKENlLHksRSkscGU9RWUubWFwKGZ1bmN0aW9uKHZ0KXt2YXIgeXQ9dnQub3B0aW9uO3JldHVybiB5dH0pLEplPXBlW3BlLmxlbmd0aC0xXTtpZihKZSYmIVZ0KEplLEUpKXt2YXIgQmU9anQoQ2UpO3ooZnVuY3Rpb24odnQpe3JldHVybltdLmNvbmNhdCgoMCxsZS5aKSh2dCksW0JlXSl9KSxXKHBlKX19fTtvLnVzZUVmZmVjdChmdW5jdGlvbigpe1YubGVuZ3RoJiZWLmZvckVhY2goZnVuY3Rpb24oWmUpe3ZhciBDZT16dChaZSksRWU9JGUoQ2UseSxFLCEwKS5tYXAoZnVuY3Rpb24oSmUpe3ZhciBCZT1KZS5vcHRpb247cmV0dXJuIEJlfSkscGU9RWVbRWUubGVuZ3RoLTFdOyghcGV8fHBlW0UuY2hpbGRyZW5dfHxWdChwZSxFKSkmJnooZnVuY3Rpb24oSmUpe3JldHVybiBKZS5maWx0ZXIoZnVuY3Rpb24oQmUpe3JldHVybiBCZSE9PVplfSl9KX0pfSxbeSxWLEVdKTt2YXIgcT1vLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFNldChKdCh3KSl9LFt3XSksUT1vLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFNldChKdChQKSl9LFtQXSksYWU9d24odSxtKSxlZT0oMCxqLlopKGFlLDIpLHJlPWVlWzBdLHNlPWVlWzFdLEo9ZnVuY3Rpb24oQ2Upe3NlKENlKSxYKENlKX0saWU9ZnVuY3Rpb24oQ2Upe2lmKGgpcmV0dXJuITE7dmFyIEVlPUNlLmRpc2FibGVkLHBlPVZ0KENlLEUpO3JldHVybiFFZSYmKHBlfHxNfHx1KX0sY2U9ZnVuY3Rpb24oQ2UsRWUpe3ZhciBwZT1hcmd1bWVudHMubGVuZ3RoPjImJmFyZ3VtZW50c1syXSE9PXZvaWQgMD9hcmd1bWVudHNbMl06ITE7RChDZSksIXUmJihFZXx8TSYmKEI9PT0iaG92ZXIifHxwZSkpJiZkKCExKX0seGU9by51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJuIGM/Tjp5fSxbYyxOLHldKSx1ZT1vLnVzZU1lbW8oZnVuY3Rpb24oKXtmb3IodmFyIFplPVt7b3B0aW9uczp4ZX1dLENlPXhlLEVlPUxuKENlLEUpLHBlPWZ1bmN0aW9uKCl7dmFyIHZ0PXJlW0plXSx5dD1DZS5maW5kKGZ1bmN0aW9uKG50LEl0KXtyZXR1cm4oRWVbSXRdP2p0KEVlW0l0XSk6bnRbRS52YWx1ZV0pPT09dnR9KSxzdD15dD09bnVsbD92b2lkIDA6eXRbRS5jaGlsZHJlbl07aWYoIShzdCE9bnVsbCYmc3QubGVuZ3RoKSlyZXR1cm4gMTtDZT1zdCxaZS5wdXNoKHtvcHRpb25zOnN0fSl9LEplPTA7SmU8cmUubGVuZ3RoJiYhcGUoKTtKZSs9MSk7cmV0dXJuIFplfSxbeGUscmUsRV0pLHllPWZ1bmN0aW9uKENlLEVlKXtpZShFZSkmJmNlKENlLFZ0KEVlLEUpLCEwKX07WW4odCx4ZSxFLHJlLEoseWUse2RpcmVjdGlvbjpmLHNlYXJjaFZhbHVlOmMsdG9nZ2xlT3BlbjpkLG9wZW46bX0pLG8udXNlRWZmZWN0KGZ1bmN0aW9uKCl7aWYoIWMpZm9yKHZhciBaZT0wO1plPHJlLmxlbmd0aDtaZSs9MSl7dmFyIENlLEVlPXJlLnNsaWNlKDAsWmUrMSkscGU9anQoRWUpLEplPShDZT1DLmN1cnJlbnQpPT09bnVsbHx8Q2U9PT12b2lkIDA/dm9pZCAwOkNlLnF1ZXJ5U2VsZWN0b3IoJ2xpW2RhdGEtcGF0aC1rZXk9IicuY29uY2F0KHBlLnJlcGxhY2UoL1xcezAsMn0iL2csJ1xcIicpLCciXScpKTtKZSYmWm4oSmUpfX0sW3JlLGNdKTt2YXIgUGU9ISgobj11ZVswXSkhPT1udWxsJiZuIT09dm9pZCAwJiYobj1uLm9wdGlvbnMpIT09bnVsbCYmbiE9PXZvaWQgMCYmbi5sZW5ndGgpLGdlPVsocj17fSwoMCxHLlopKHIsRS52YWx1ZSwiX19FTVBUWV9fIiksKDAsRy5aKShyLEh0LHYpLCgwLEcuWikociwiZGlzYWJsZWQiLCEwKSxyKV0sUmU9KDAscy5aKSgoMCxzLlopKHt9LGUpLHt9LHttdWx0aXBsZTohUGUmJnUsb25TZWxlY3Q6Y2Usb25BY3RpdmU6SixvblRvZ2dsZU9wZW46ZCxjaGVja2VkU2V0OnEsaGFsZkNoZWNrZWRTZXQ6USxsb2FkaW5nS2V5czpWLGlzU2VsZWN0YWJsZTppZX0pLFNlPVBlP1t7b3B0aW9uczpnZX1dOnVlLEllPVNlLm1hcChmdW5jdGlvbihaZSxDZSl7dmFyIEVlPXJlLnNsaWNlKDAsQ2UpLHBlPXJlW0NlXTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KGhuLCgwLEZlLlopKHtrZXk6Q2V9LFJlLHtwcmVmaXhDbHM6WSxvcHRpb25zOlplLm9wdGlvbnMscHJldlZhbHVlUGF0aDpFZSxhY3RpdmVWYWx1ZTpwZX0pKX0pO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoWWUse29wZW46bX0sby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6b2UoKSgiIi5jb25jYXQoWSwiLW1lbnVzIiksKGE9e30sKDAsRy5aKShhLCIiLmNvbmNhdChZLCItbWVudS1lbXB0eSIpLFBlKSwoMCxHLlopKGEsIiIuY29uY2F0KFksIi1ydGwiKSx4KSxhKSkscmVmOkN9LEllKSl9KSxzbj1Vbix2bj1vLmZvcndhcmRSZWYoZnVuY3Rpb24oZSx0KXt2YXIgbj0oMCx6ZS5saykoKTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KHNuLCgwLEZlLlopKHt9LGUsbix7cmVmOnR9KSl9KSxIbj12bixsdD1pKDU2NzkwKTtmdW5jdGlvbiBxbigpe31mdW5jdGlvbiB0dChlKXt2YXIgdCxuPWUscj1uLnByZWZpeENscyxhPXI9PT12b2lkIDA/InJjLWNhc2NhZGVyIjpyLGw9bi5zdHlsZSx1PW4uY2xhc3NOYW1lLGM9bi5vcHRpb25zLGQ9bi5jaGVja2FibGUsdj1uLmRlZmF1bHRWYWx1ZSxmPW4udmFsdWUsbT1uLmZpZWxkTmFtZXMsaD1uLmNoYW5nZU9uU2VsZWN0LEM9bi5vbkNoYW5nZSx4PW4uc2hvd0NoZWNrZWRTdHJhdGVneSxwPW4ubG9hZERhdGEseT1uLmV4cGFuZFRyaWdnZXIsdz1uLmV4cGFuZEljb24sUD13PT09dm9pZCAwPyI+Ijp3LEU9bi5sb2FkaW5nSWNvbixNPW4uZGlyZWN0aW9uLEQ9bi5ub3RGb3VuZENvbnRlbnQsTj1EPT09dm9pZCAwPyJOb3QgRm91bmQiOkQsVD1uLmRpc2FibGVkLFc9ISFkLEI9KDAsbHQuQzgpKHYse3ZhbHVlOmYscG9zdFN0YXRlOm5lfSksWT0oMCxqLlopKEIsMiksSD1ZWzBdLEE9WVsxXSxWPW8udXNlTWVtbyhmdW5jdGlvbigpe3JldHVybiBLdChtKX0sW0pTT04uc3RyaW5naWZ5KG0pXSksej1tdChWLGMpLFg9KDAsai5aKSh6LDMpLHE9WFswXSxRPVhbMV0sYWU9WFsyXSxlZT1UZShxLFYpLHJlPUJ0KFcsSCxRLGFlLGVlKSxzZT0oMCxqLlopKHJlLDMpLEo9c2VbMF0saWU9c2VbMV0sY2U9c2VbMl0seGU9KDAsbHQuelgpKGZ1bmN0aW9uKFNlKXtpZihBKFNlKSxDKXt2YXIgSWU9bmUoU2UpLFplPUllLm1hcChmdW5jdGlvbihwZSl7cmV0dXJuICRlKHBlLHEsVikubWFwKGZ1bmN0aW9uKEplKXtyZXR1cm4gSmUub3B0aW9ufSl9KSxDZT1XP0llOkllWzBdLEVlPVc/WmU6WmVbMF07QyhDZSxFZSl9fSksdWU9QXQoVyx4ZSxKLGllLGNlLFEsYWUseCkseWU9KDAsbHQuelgpKGZ1bmN0aW9uKFNlKXt1ZShTZSl9KSxQZT1vLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm57b3B0aW9uczpxLGZpZWxkTmFtZXM6Vix2YWx1ZXM6SixoYWxmVmFsdWVzOmllLGNoYW5nZU9uU2VsZWN0Omgsb25TZWxlY3Q6eWUsY2hlY2thYmxlOmQsc2VhcmNoT3B0aW9uczpbXSxkcm9wZG93blByZWZpeENsczp2b2lkIDAsbG9hZERhdGE6cCxleHBhbmRUcmlnZ2VyOnksZXhwYW5kSWNvbjpQLGxvYWRpbmdJY29uOkUsZHJvcGRvd25NZW51Q29sdW1uU3R5bGU6dm9pZCAwfX0sW3EsVixKLGllLGgseWUsZCxwLHksUCxFXSksZ2U9IiIuY29uY2F0KGEsIi1wYW5lbCIpLFJlPSFxLmxlbmd0aDtyZXR1cm4gby5jcmVhdGVFbGVtZW50KG90LlByb3ZpZGVyLHt2YWx1ZTpQZX0sby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6b2UoKShnZSwodD17fSwoMCxHLlopKHQsIiIuY29uY2F0KGdlLCItcnRsIiksTT09PSJydGwiKSwoMCxHLlopKHQsIiIuY29uY2F0KGdlLCItZW1wdHkiKSxSZSksdCksdSksc3R5bGU6bH0sUmU/TjpvLmNyZWF0ZUVsZW1lbnQoc24se3ByZWZpeENsczphLHNlYXJjaFZhbHVlOiIiLG11bHRpcGxlOlcsdG9nZ2xlT3BlbjpxbixvcGVuOiEwLGRpcmVjdGlvbjpNLGRpc2FibGVkOlR9KSkpfWZ1bmN0aW9uIFB0KGUpe3ZhciB0PWUub25Qb3B1cFZpc2libGVDaGFuZ2Usbj1lLnBvcHVwVmlzaWJsZSxyPWUucG9wdXBDbGFzc05hbWUsYT1lLnBvcHVwUGxhY2VtZW50O3dhcm5pbmcoIXQsImBvblBvcHVwVmlzaWJsZUNoYW5nZWAgaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBgb25Ecm9wZG93blZpc2libGVDaGFuZ2VgIGluc3RlYWQuIiksd2FybmluZyhuPT09dm9pZCAwLCJgcG9wdXBWaXNpYmxlYCBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIGBvcGVuYCBpbnN0ZWFkLiIpLHdhcm5pbmcocj09PXZvaWQgMCwiYHBvcHVwQ2xhc3NOYW1lYCBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIGBkcm9wZG93bkNsYXNzTmFtZWAgaW5zdGVhZC4iKSx3YXJuaW5nKGE9PT12b2lkIDAsImBwb3B1cFBsYWNlbWVudGAgaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBgcGxhY2VtZW50YCBpbnN0ZWFkLiIpfWZ1bmN0aW9uIFJuKGUsdCl7aWYoZSl7dmFyIG49ZnVuY3Rpb24gcihhKXtmb3IodmFyIGw9MDtsPGEubGVuZ3RoO2wrKyl7dmFyIHU9YVtsXTtpZih1W3Q9PW51bGw/dm9pZCAwOnQudmFsdWVdPT09bnVsbClyZXR1cm4gd2FybmluZyghMSwiYHZhbHVlYCBpbiBDYXNjYWRlciBvcHRpb25zIHNob3VsZCBub3QgYmUgYG51bGxgLiIpLCEwO2lmKEFycmF5LmlzQXJyYXkodVt0PT1udWxsP3ZvaWQgMDp0LmNoaWxkcmVuXSkmJnIodVt0PT1udWxsP3ZvaWQgMDp0LmNoaWxkcmVuXSkpcmV0dXJuITB9fTtuKGUpfX12YXIgWHQ9bnVsbCxYbj1bImlkIiwicHJlZml4Q2xzIiwiZmllbGROYW1lcyIsImRlZmF1bHRWYWx1ZSIsInZhbHVlIiwiY2hhbmdlT25TZWxlY3QiLCJvbkNoYW5nZSIsImRpc3BsYXlSZW5kZXIiLCJjaGVja2FibGUiLCJhdXRvQ2xlYXJTZWFyY2hWYWx1ZSIsInNlYXJjaFZhbHVlIiwib25TZWFyY2giLCJzaG93U2VhcmNoIiwiZXhwYW5kVHJpZ2dlciIsIm9wdGlvbnMiLCJkcm9wZG93blByZWZpeENscyIsImxvYWREYXRhIiwicG9wdXBWaXNpYmxlIiwib3BlbiIsInBvcHVwQ2xhc3NOYW1lIiwiZHJvcGRvd25DbGFzc05hbWUiLCJkcm9wZG93bk1lbnVDb2x1bW5TdHlsZSIsImRyb3Bkb3duU3R5bGUiLCJwb3B1cFBsYWNlbWVudCIsInBsYWNlbWVudCIsIm9uRHJvcGRvd25WaXNpYmxlQ2hhbmdlIiwib25Qb3B1cFZpc2libGVDaGFuZ2UiLCJleHBhbmRJY29uIiwibG9hZGluZ0ljb24iLCJjaGlsZHJlbiIsImRyb3Bkb3duTWF0Y2hTZWxlY3RXaWR0aCIsInNob3dDaGVja2VkU3RyYXRlZ3kiLCJvcHRpb25SZW5kZXIiXSxEbj1vLmZvcndhcmRSZWYoZnVuY3Rpb24oZSx0KXt2YXIgbj1lLmlkLHI9ZS5wcmVmaXhDbHMsYT1yPT09dm9pZCAwPyJyYy1jYXNjYWRlciI6cixsPWUuZmllbGROYW1lcyx1PWUuZGVmYXVsdFZhbHVlLGM9ZS52YWx1ZSxkPWUuY2hhbmdlT25TZWxlY3Qsdj1lLm9uQ2hhbmdlLGY9ZS5kaXNwbGF5UmVuZGVyLG09ZS5jaGVja2FibGUsaD1lLmF1dG9DbGVhclNlYXJjaFZhbHVlLEM9aD09PXZvaWQgMD8hMDpoLHg9ZS5zZWFyY2hWYWx1ZSxwPWUub25TZWFyY2gseT1lLnNob3dTZWFyY2gsdz1lLmV4cGFuZFRyaWdnZXIsUD1lLm9wdGlvbnMsRT1lLmRyb3Bkb3duUHJlZml4Q2xzLE09ZS5sb2FkRGF0YSxEPWUucG9wdXBWaXNpYmxlLE49ZS5vcGVuLFQ9ZS5wb3B1cENsYXNzTmFtZSxXPWUuZHJvcGRvd25DbGFzc05hbWUsQj1lLmRyb3Bkb3duTWVudUNvbHVtblN0eWxlLFk9ZS5kcm9wZG93blN0eWxlLEg9ZS5wb3B1cFBsYWNlbWVudCxBPWUucGxhY2VtZW50LFY9ZS5vbkRyb3Bkb3duVmlzaWJsZUNoYW5nZSx6PWUub25Qb3B1cFZpc2libGVDaGFuZ2UsWD1lLmV4cGFuZEljb24scT1YPT09dm9pZCAwPyI+IjpYLFE9ZS5sb2FkaW5nSWNvbixhZT1lLmNoaWxkcmVuLGVlPWUuZHJvcGRvd25NYXRjaFNlbGVjdFdpZHRoLHJlPWVlPT09dm9pZCAwPyExOmVlLHNlPWUuc2hvd0NoZWNrZWRTdHJhdGVneSxKPXNlPT09dm9pZCAwP1d0OnNlLGllPWUub3B0aW9uUmVuZGVyLGNlPSgwLGcuWikoZSxYbikseGU9KDAsZHQuWlApKG4pLHVlPSEhbSx5ZT0oMCxydC5aKSh1LHt2YWx1ZTpjLHBvc3RTdGF0ZTpuZX0pLFBlPSgwLGouWikoeWUsMiksZ2U9UGVbMF0sUmU9UGVbMV0sU2U9by51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJuIEt0KGwpfSxbSlNPTi5zdHJpbmdpZnkobCldKSxJZT1tdChTZSxQKSxaZT0oMCxqLlopKEllLDMpLENlPVplWzBdLEVlPVplWzFdLHBlPVplWzJdLEplPSgwLHJ0LlopKCIiLHt2YWx1ZTp4LHBvc3RTdGF0ZTpmdW5jdGlvbihfdCl7cmV0dXJuIF90fHwiIn19KSxCZT0oMCxqLlopKEplLDIpLHZ0PUJlWzBdLHl0PUJlWzFdLHN0PWZ1bmN0aW9uKF90LEJuKXt5dChfdCksQm4uc291cmNlIT09ImJsdXIiJiZwJiZwKF90KX0sbnQ9RnQoeSksSXQ9KDAsai5aKShudCwyKSxjdD1JdFswXSxadD1JdFsxXSxidD1MdCh2dCxDZSxTZSxFfHxhLFp0LGR8fHVlKSxrdD1UZShDZSxTZSksQWU9QnQodWUsZ2UsRWUscGUsa3QpLHFlPSgwLGouWikoQWUsMyksZXQ9cWVbMF0sT3Q9cWVbMV0sR2U9cWVbMl0sbm49by51c2VNZW1vKGZ1bmN0aW9uKCl7dmFyIEV0PUp0KGV0KSxfdD1rKEV0LEVlLEopO3JldHVybltdLmNvbmNhdCgoMCxsZS5aKShHZSksKDAsbGUuWikocGUoX3QpKSl9LFtldCxFZSxwZSxHZSxKXSksaXQ9TmUobm4sQ2UsU2UsdWUsZiksVmU9KDAsZ3QuWikoZnVuY3Rpb24oRXQpe2lmKFJlKEV0KSx2KXt2YXIgX3Q9bmUoRXQpLEJuPV90Lm1hcChmdW5jdGlvbihNYSl7cmV0dXJuICRlKE1hLENlLFNlKS5tYXAoZnVuY3Rpb24oSnIpe3JldHVybiBKci5vcHRpb259KX0pLE1yPXVlP190Ol90WzBdLFlyPXVlP0JuOkJuWzBdO3YoTXIsWXIpfX0pLHV0PUF0KHVlLFZlLGV0LE90LEdlLEVlLHBlLEopLE1lPSgwLGd0LlopKGZ1bmN0aW9uKEV0KXsoIXVlfHxDKSYmeXQoIiIpLHV0KEV0KX0pLFVlPWZ1bmN0aW9uKF90LEJuKXtpZihCbi50eXBlPT09ImNsZWFyIil7VmUoW10pO3JldHVybn12YXIgTXI9Qm4udmFsdWVzWzBdLFlyPU1yLnZhbHVlQ2VsbHM7TWUoWXIpfSxUbj1OIT09dm9pZCAwP046RCxkbj1XfHxULEtuPUF8fEgsTW49ZnVuY3Rpb24oX3Qpe1Y9PW51bGx8fFYoX3QpLHo9PW51bGx8fHooX3QpfSx4dD1vLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm57b3B0aW9uczpDZSxmaWVsZE5hbWVzOlNlLHZhbHVlczpldCxoYWxmVmFsdWVzOk90LGNoYW5nZU9uU2VsZWN0OmQsb25TZWxlY3Q6TWUsY2hlY2thYmxlOm0sc2VhcmNoT3B0aW9uczpidCxkcm9wZG93blByZWZpeENsczpFLGxvYWREYXRhOk0sZXhwYW5kVHJpZ2dlcjp3LGV4cGFuZEljb246cSxsb2FkaW5nSWNvbjpRLGRyb3Bkb3duTWVudUNvbHVtblN0eWxlOkIsb3B0aW9uUmVuZGVyOmllfX0sW0NlLFNlLGV0LE90LGQsTWUsbSxidCxFLE0sdyxxLFEsQixpZV0pLFN0PSEodnQ/YnQ6Q2UpLmxlbmd0aCxZdD12dCYmWnQubWF0Y2hJbnB1dFdpZHRofHxTdD97fTp7bWluV2lkdGg6ImF1dG8ifTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KG90LlByb3ZpZGVyLHt2YWx1ZTp4dH0sby5jcmVhdGVFbGVtZW50KHplLkFjLCgwLEZlLlopKHt9LGNlLHtyZWY6dCxpZDp4ZSxwcmVmaXhDbHM6YSxhdXRvQ2xlYXJTZWFyY2hWYWx1ZTpDLGRyb3Bkb3duTWF0Y2hTZWxlY3RXaWR0aDpyZSxkcm9wZG93blN0eWxlOigwLHMuWikoKDAscy5aKSh7fSxZdCksWSksZGlzcGxheVZhbHVlczppdCxvbkRpc3BsYXlWYWx1ZXNDaGFuZ2U6VWUsbW9kZTp1ZT8ibXVsdGlwbGUiOnZvaWQgMCxzZWFyY2hWYWx1ZTp2dCxvblNlYXJjaDpzdCxzaG93U2VhcmNoOmN0LE9wdGlvbkxpc3Q6SG4sZW1wdHlPcHRpb25zOlN0LG9wZW46VG4sZHJvcGRvd25DbGFzc05hbWU6ZG4scGxhY2VtZW50OktuLG9uRHJvcGRvd25WaXNpYmxlQ2hhbmdlOk1uLGdldFJhd0lucHV0RWxlbWVudDpmdW5jdGlvbigpe3JldHVybiBhZX19KSkpfSk7RG4uU0hPV19QQVJFTlQ9V3QsRG4uU0hPV19DSElMRD1ybixEbi5QYW5lbD10dDt2YXIgcnI9RG4sX249cnIscG49aSg5ODQyMyksZXI9aSg4NzI2MyksYm49aSgzMzYwMykseW49aSg4NzQ1KSxrbj1pKDk3MDgpLG9uPWkoNTMxMjQpLHVuPWkoODgyNTgpLGNuPWkoOTg4NjYpLE9uPWkoMzU3OTIpLENuPWkoOTg2NzUpLFJyPWkoNjUyMjMpLGRyPWkoMjc4MzMpLGdyPWkoMzAzMDcpLHlyPWkoMTUwMzApLGZlPWkoNDMyNzcpLEtlPWkoNzg2NDIpLGplPWkoNDE3Myk7ZnVuY3Rpb24gd2UoZSx0KXtjb25zdHtnZXRQcmVmaXhDbHM6bixkaXJlY3Rpb246cixyZW5kZXJFbXB0eTphfT1vLnVzZUNvbnRleHQob24uRV8pLGw9dHx8cix1PW4oInNlbGVjdCIsZSksYz1uKCJjYXNjYWRlciIsZSk7cmV0dXJuW3UsYyxsLGFdfXZhciBIZT13ZTtmdW5jdGlvbiBwdChlLHQpe3JldHVybiBvLnVzZU1lbW8oKCk9PnQ/by5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmAke2V9LWNoZWNrYm94LWlubmVyYH0pOiExLFt0XSl9dmFyIGtlPWkoNjE3MSksV2U9aSg5MDgxNCksTnQ9KGUsdCxuKT0+e2xldCByPW47bnx8KHI9dD9vLmNyZWF0ZUVsZW1lbnQoa2UuWixudWxsKTpvLmNyZWF0ZUVsZW1lbnQoV2UuWixudWxsKSk7Y29uc3QgYT1vLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6YCR7ZX0tbWVudS1pdGVtLWxvYWRpbmctaWNvbmB9LG8uY3JlYXRlRWxlbWVudChEZS5aLHtzcGluOiEwfSkpO3JldHVybiBvLnVzZU1lbW8oKCk9PltyLGFdLFtyXSl9LEd0PWkoODAxMTApLGxuPWkoODM1NTkpLGhlPWkoMTE1NjgpLHRyPWkoNjMxODUpLE5uPWkoMTQ3NDcpLGxyPWU9Pntjb25zdHtwcmVmaXhDbHM6dCxjb21wb25lbnRDbHM6bn09ZSxyPWAke259LW1lbnUtaXRlbWAsYT1gCisgICYke3J9LWV4cGFuZCAke3J9LWV4cGFuZC1pY29uLAorICAke3J9LWxvYWRpbmctaWNvbgorYDtyZXR1cm5bKDAsdHIuQzIpKGAke3R9LWNoZWNrYm94YCxlKSx7W25dOnsiJi1jaGVja2JveCI6e3RvcDowLG1hcmdpbklubGluZUVuZDplLnBhZGRpbmdYUyxwb2ludGVyRXZlbnRzOiJ1bnNldCJ9LCImLW1lbnVzIjp7ZGlzcGxheToiZmxleCIsZmxleFdyYXA6Im5vd3JhcCIsYWxpZ25JdGVtczoiZmxleC1zdGFydCIsW2AmJHtufS1tZW51LWVtcHR5YF06e1tgJHtufS1tZW51YF06e3dpZHRoOiIxMDAlIixoZWlnaHQ6ImF1dG8iLFtyXTp7Y29sb3I6ZS5jb2xvclRleHREaXNhYmxlZH19fX0sIiYtbWVudSI6e2ZsZXhHcm93OjEsZmxleFNocmluazowLG1pbldpZHRoOmUuY29udHJvbEl0ZW1XaWR0aCxoZWlnaHQ6ZS5kcm9wZG93bkhlaWdodCxtYXJnaW46MCxwYWRkaW5nOmUubWVudVBhZGRpbmcsb3ZlcmZsb3c6ImF1dG8iLHZlcnRpY2FsQWxpZ246InRvcCIsbGlzdFN0eWxlOiJub25lIiwiLW1zLW92ZXJmbG93LXN0eWxlIjoiLW1zLWF1dG9oaWRpbmctc2Nyb2xsYmFyIiwiJjpub3QoOmxhc3QtY2hpbGQpIjp7Ym9yZGVySW5saW5lRW5kOmAkeygwLGhlLmJmKShlLmxpbmVXaWR0aCl9ICR7ZS5saW5lVHlwZX0gJHtlLmNvbG9yU3BsaXR9YH0sIiYtaXRlbSI6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LE5uLnZTKSx7ZGlzcGxheToiZmxleCIsZmxleFdyYXA6Im5vd3JhcCIsYWxpZ25JdGVtczoiY2VudGVyIixwYWRkaW5nOmUub3B0aW9uUGFkZGluZyxsaW5lSGVpZ2h0OmUubGluZUhlaWdodCxjdXJzb3I6InBvaW50ZXIiLHRyYW5zaXRpb246YGFsbCAke2UubW90aW9uRHVyYXRpb25NaWR9YCxib3JkZXJSYWRpdXM6ZS5ib3JkZXJSYWRpdXNTTSwiJjpob3ZlciI6e2JhY2tncm91bmQ6ZS5jb250cm9sSXRlbUJnSG92ZXJ9LCImLWRpc2FibGVkIjp7Y29sb3I6ZS5jb2xvclRleHREaXNhYmxlZCxjdXJzb3I6Im5vdC1hbGxvd2VkIiwiJjpob3ZlciI6e2JhY2tncm91bmQ6InRyYW5zcGFyZW50In0sW2FdOntjb2xvcjplLmNvbG9yVGV4dERpc2FibGVkfX0sW2AmLWFjdGl2ZTpub3QoJHtyfS1kaXNhYmxlZClgXTp7IiYsICY6aG92ZXIiOntjb2xvcjplLm9wdGlvblNlbGVjdGVkQ29sb3IsZm9udFdlaWdodDplLm9wdGlvblNlbGVjdGVkRm9udFdlaWdodCxiYWNrZ3JvdW5kQ29sb3I6ZS5vcHRpb25TZWxlY3RlZEJnfX0sIiYtY29udGVudCI6e2ZsZXg6ImF1dG8ifSxbYV06e21hcmdpbklubGluZVN0YXJ0OmUucGFkZGluZ1hYUyxjb2xvcjplLmNvbG9yVGV4dERlc2NyaXB0aW9uLGZvbnRTaXplOmUuZm9udFNpemVJY29ufSwiJi1rZXl3b3JkIjp7Y29sb3I6ZS5jb2xvckhpZ2hsaWdodH19KX19fV19O2NvbnN0IFZyPWU9Pntjb25zdHtjb21wb25lbnRDbHM6dCxhbnRDbHM6bn09ZTtyZXR1cm5be1t0XTp7d2lkdGg6ZS5jb250cm9sV2lkdGh9fSx7W2Ake3R9LWRyb3Bkb3duYF06W3tbYCYke259LXNlbGVjdC1kcm9wZG93bmBdOntwYWRkaW5nOjB9fSxscihlKV19LHtbYCR7dH0tZHJvcGRvd24tcnRsYF06e2RpcmVjdGlvbjoicnRsIn19LCgwLEd0LmMpKGUpXX0sbGE9ZT0+e2NvbnN0IHQ9TWF0aC5yb3VuZCgoZS5jb250cm9sSGVpZ2h0LWUuZm9udFNpemUqZS5saW5lSGVpZ2h0KS8yKTtyZXR1cm57Y29udHJvbFdpZHRoOjE4NCxjb250cm9sSXRlbVdpZHRoOjExMSxkcm9wZG93bkhlaWdodDoxODAsb3B0aW9uU2VsZWN0ZWRCZzplLmNvbnRyb2xJdGVtQmdBY3RpdmUsb3B0aW9uU2VsZWN0ZWRGb250V2VpZ2h0OmUuZm9udFdlaWdodFN0cm9uZyxvcHRpb25QYWRkaW5nOmAke3R9cHggJHtlLnBhZGRpbmdTTX1weGAsbWVudVBhZGRpbmc6ZS5wYWRkaW5nWFhTLG9wdGlvblNlbGVjdGVkQ29sb3I6ZS5jb2xvclRleHR9fTt2YXIgX3I9KDAsbG4uSSQpKCJDYXNjYWRlciIsZT0+W1ZyKGUpXSxsYSk7Y29uc3QgU2E9ZT0+e2NvbnN0e2NvbXBvbmVudENsczp0fT1lO3JldHVybntbYCR7dH0tcGFuZWxgXTpbbHIoZSkse2Rpc3BsYXk6ImlubGluZS1mbGV4Iixib3JkZXI6YCR7KDAsaGUuYmYpKGUubGluZVdpZHRoKX0gJHtlLmxpbmVUeXBlfSAke2UuY29sb3JTcGxpdH1gLGJvcmRlclJhZGl1czplLmJvcmRlclJhZGl1c0xHLG92ZXJmbG93WDoiYXV0byIsbWF4V2lkdGg6IjEwMCUiLFtgJHt0fS1tZW51c2BdOnthbGlnbkl0ZW1zOiJzdHJldGNoIn0sW2Ake3R9LW1lbnVgXTp7aGVpZ2h0OiJhdXRvIn0sIiYtZW1wdHkiOntwYWRkaW5nOmUucGFkZGluZ1hYU319XX19O3ZhciBEcj0oMCxsbi5BMSkoWyJDYXNjYWRlciIsIlBhbmVsIl0sZT0+U2EoZSksbGEpO2Z1bmN0aW9uIHByKGUpe2NvbnN0e3ByZWZpeENsczp0LGNsYXNzTmFtZTpuLG11bHRpcGxlOnIscm9vdENsYXNzTmFtZTphLG5vdEZvdW5kQ29udGVudDpsLGRpcmVjdGlvbjp1LGV4cGFuZEljb246YyxkaXNhYmxlZDpkfT1lLHY9by51c2VDb250ZXh0KGNuLlopLGY9ZCE9bnVsbD9kOnYsW20saCxDLHhdPUhlKHQsdSkscD0oMCxPbi5aKShoKSxbeSx3LFBdPV9yKGgscCk7RHIoaCk7Y29uc3QgRT1DPT09InJ0bCIsW00sRF09TnQobSxFLGMpLE49bHx8KHg9PW51bGw/dm9pZCAwOngoIkNhc2NhZGVyIikpfHxvLmNyZWF0ZUVsZW1lbnQodW4uWix7Y29tcG9uZW50TmFtZToiQ2FzY2FkZXIifSksVD1wdChoLHIpO3JldHVybiB5KG8uY3JlYXRlRWxlbWVudCh0dCxPYmplY3QuYXNzaWduKHt9LGUse2NoZWNrYWJsZTpULHByZWZpeENsczpoLGNsYXNzTmFtZTpvZSgpKG4sdyxhLFAscCksbm90Rm91bmRDb250ZW50Ok4sZGlyZWN0aW9uOkMsZXhwYW5kSWNvbjpNLGxvYWRpbmdJY29uOkQsZGlzYWJsZWQ6Zn0pKSl9dmFyIFVhPXByLHNhPWZ1bmN0aW9uKGUsdCl7dmFyIG49e307Zm9yKHZhciByIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikmJnQuaW5kZXhPZihyKTwwJiYobltyXT1lW3JdKTtpZihlIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIGE9MCxyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7YTxyLmxlbmd0aDthKyspdC5pbmRleE9mKHJbYV0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLHJbYV0pJiYobltyW2FdXT1lW3JbYV1dKTtyZXR1cm4gbn07Y29uc3R7U0hPV19DSElMRDphcixTSE9XX1BBUkVOVDpmYX09X247ZnVuY3Rpb24gQ3IoZSx0LG4pe2NvbnN0IHI9ZS50b0xvd2VyQ2FzZSgpLnNwbGl0KHQpLnJlZHVjZSgodSxjLGQpPT5kPT09MD9bY106W10uY29uY2F0KCgwLGxlLlopKHUpLFt0LGNdKSxbXSksYT1bXTtsZXQgbD0wO3JldHVybiByLmZvckVhY2goKHUsYyk9Pntjb25zdCBkPWwrdS5sZW5ndGg7bGV0IHY9ZS5zbGljZShsLGQpO2w9ZCxjJTI9PT0xJiYodj1vLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6YCR7bn0tbWVudS1pdGVtLWtleXdvcmRgLGtleTpgc2VwYXJhdG9yLSR7Y31gfSx2KSksYS5wdXNoKHYpfSksYX1jb25zdCBEYT0oZSx0LG4scik9Pntjb25zdCBhPVtdLGw9ZS50b0xvd2VyQ2FzZSgpO3JldHVybiB0LmZvckVhY2goKHUsYyk9PntjIT09MCYmYS5wdXNoKCIgLyAiKTtsZXQgZD11W3IubGFiZWxdO2NvbnN0IHY9dHlwZW9mIGQ7KHY9PT0ic3RyaW5nInx8dj09PSJudW1iZXIiKSYmKGQ9Q3IoU3RyaW5nKGQpLGwsbikpLGEucHVzaChkKX0pLGF9LE5yPW8uZm9yd2FyZFJlZigoZSx0KT0+e3ZhciBuO2NvbnN0e3ByZWZpeENsczpyLHNpemU6YSxkaXNhYmxlZDpsLGNsYXNzTmFtZTp1LHJvb3RDbGFzc05hbWU6YyxtdWx0aXBsZTpkLGJvcmRlcmVkOnY9ITAsdHJhbnNpdGlvbk5hbWU6ZixjaG9pY2VUcmFuc2l0aW9uTmFtZTptPSIiLHBvcHVwQ2xhc3NOYW1lOmgsZHJvcGRvd25DbGFzc05hbWU6QyxleHBhbmRJY29uOngscGxhY2VtZW50OnAsc2hvd1NlYXJjaDp5LGFsbG93Q2xlYXI6dz0hMCxub3RGb3VuZENvbnRlbnQ6UCxkaXJlY3Rpb246RSxnZXRQb3B1cENvbnRhaW5lcjpNLHN0YXR1czpELHNob3dBcnJvdzpOLGJ1aWx0aW5QbGFjZW1lbnRzOlQsc3R5bGU6Vyx2YXJpYW50OkJ9PWUsWT1zYShlLFsicHJlZml4Q2xzIiwic2l6ZSIsImRpc2FibGVkIiwiY2xhc3NOYW1lIiwicm9vdENsYXNzTmFtZSIsIm11bHRpcGxlIiwiYm9yZGVyZWQiLCJ0cmFuc2l0aW9uTmFtZSIsImNob2ljZVRyYW5zaXRpb25OYW1lIiwicG9wdXBDbGFzc05hbWUiLCJkcm9wZG93bkNsYXNzTmFtZSIsImV4cGFuZEljb24iLCJwbGFjZW1lbnQiLCJzaG93U2VhcmNoIiwiYWxsb3dDbGVhciIsIm5vdEZvdW5kQ29udGVudCIsImRpcmVjdGlvbiIsImdldFBvcHVwQ29udGFpbmVyIiwic3RhdHVzIiwic2hvd0Fycm93IiwiYnVpbHRpblBsYWNlbWVudHMiLCJzdHlsZSIsInZhcmlhbnQiXSksSD0oMCxwbi5aKShZLFsic3VmZml4SWNvbiJdKSx7Z2V0UHJlZml4Q2xzOkEsZ2V0UG9wdXBDb250YWluZXI6VixjbGFzc05hbWU6eixzdHlsZTpYfT0oMCxvbi5kaikoImNhc2NhZGVyIikse3BvcHVwT3ZlcmZsb3c6cX09by51c2VDb250ZXh0KG9uLkVfKSx7c3RhdHVzOlEsaGFzRmVlZGJhY2s6YWUsaXNGb3JtSXRlbUlucHV0OmVlLGZlZWRiYWNrSWNvbjpyZX09by51c2VDb250ZXh0KFJyLmFNKSxzZT0oMCxrbi5GKShRLEQpLFtKLGllLGNlLHhlXT1IZShyLEUpLHVlPWNlPT09InJ0bCIseWU9QSgpLFBlPSgwLE9uLlopKEopLFtnZSxSZSxTZV09KDAseXIuWikoSixQZSksSWU9KDAsT24uWikoaWUpLFtaZV09X3IoaWUsSWUpLHtjb21wYWN0U2l6ZTpDZSxjb21wYWN0SXRlbUNsYXNzbmFtZXM6RWV9PSgwLGplLnJpKShKLEUpLFtwZSxKZV09KDAsZHIuWikoImNhc2NhZGVyIixCLHYpLEJlPVB8fCh4ZT09bnVsbD92b2lkIDA6eGUoIkNhc2NhZGVyIikpfHxvLmNyZWF0ZUVsZW1lbnQodW4uWix7Y29tcG9uZW50TmFtZToiQ2FzY2FkZXIifSksdnQ9b2UoKShofHxDLGAke2llfS1kcm9wZG93bmAse1tgJHtpZX0tZHJvcGRvd24tcnRsYF06Y2U9PT0icnRsIn0sYyxQZSxJZSxSZSxTZSkseXQ9by51c2VNZW1vKCgpPT57aWYoIXkpcmV0dXJuIHk7bGV0IFZlPXtyZW5kZXI6RGF9O3JldHVybiB0eXBlb2YgeT09Im9iamVjdCImJihWZT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sVmUpLHkpKSxWZX0sW3ldKSxzdD0oMCxDbi5aKShWZT0+e3ZhciB1dDtyZXR1cm4odXQ9YSE9bnVsbD9hOkNlKSE9PW51bGwmJnV0IT09dm9pZCAwP3V0OlZlfSksbnQ9by51c2VDb250ZXh0KGNuLlopLEl0PWwhPW51bGw/bDpudCxbY3QsWnRdPU50KEosdWUseCksYnQ9cHQoaWUsZCksa3Q9KDAsS2UuWikoZS5zdWZmaXhJY29uLE4pLHtzdWZmaXhJY29uOkFlLHJlbW92ZUljb246cWUsY2xlYXJJY29uOmV0fT0oMCxmZS5aKShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZSkse2hhc0ZlZWRiYWNrOmFlLGZlZWRiYWNrSWNvbjpyZSxzaG93U3VmZml4SWNvbjprdCxtdWx0aXBsZTpkLHByZWZpeENsczpKLGNvbXBvbmVudE5hbWU6IkNhc2NhZGVyIn0pKSxPdD1vLnVzZU1lbW8oKCk9PnAhPT12b2lkIDA/cDp1ZT8iYm90dG9tUmlnaHQiOiJib3R0b21MZWZ0IixbcCx1ZV0pLEdlPXc9PT0hMD97Y2xlYXJJY29uOmV0fTp3LFtubl09KDAsZXIuQ24pKCJTZWxlY3RMaWtlIiwobj1ILmRyb3Bkb3duU3R5bGUpPT09bnVsbHx8bj09PXZvaWQgMD92b2lkIDA6bi56SW5kZXgpLGl0PW8uY3JlYXRlRWxlbWVudChfbixPYmplY3QuYXNzaWduKHtwcmVmaXhDbHM6SixjbGFzc05hbWU6b2UoKSghciYmaWUse1tgJHtKfS1sZ2BdOnN0PT09ImxhcmdlIixbYCR7Sn0tc21gXTpzdD09PSJzbWFsbCIsW2Ake0p9LXJ0bGBdOnVlLFtgJHtKfS0ke3BlfWBdOkplLFtgJHtKfS1pbi1mb3JtLWl0ZW1gXTplZX0sKDAsa24uWikoSixzZSxhZSksRWUseix1LGMsUGUsSWUsUmUsU2UpLGRpc2FibGVkOkl0LHN0eWxlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxYKSxXKX0sSCx7YnVpbHRpblBsYWNlbWVudHM6KDAsZ3IuWikoVCxxKSxkaXJlY3Rpb246Y2UscGxhY2VtZW50Ok90LG5vdEZvdW5kQ29udGVudDpCZSxhbGxvd0NsZWFyOkdlLHNob3dTZWFyY2g6eXQsZXhwYW5kSWNvbjpjdCxzdWZmaXhJY29uOkFlLHJlbW92ZUljb246cWUsbG9hZGluZ0ljb246WnQsY2hlY2thYmxlOmJ0LGRyb3Bkb3duQ2xhc3NOYW1lOnZ0LGRyb3Bkb3duUHJlZml4Q2xzOnJ8fGllLGRyb3Bkb3duU3R5bGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LEguZHJvcGRvd25TdHlsZSkse3pJbmRleDpubn0pLGNob2ljZVRyYW5zaXRpb25OYW1lOigwLGJuLm0pKHllLCIiLG0pLHRyYW5zaXRpb25OYW1lOigwLGJuLm0pKHllLCJzbGlkZS11cCIsZiksZ2V0UG9wdXBDb250YWluZXI6TXx8VixyZWY6dH0pKTtyZXR1cm4gWmUoZ2UoaXQpKX0pLHZhPSgwLHluLlopKE5yLCJkcm9wZG93bkFsaWduIixlPT4oMCxwbi5aKShlLFsidmlzaWJsZSJdKSk7TnIuU0hPV19QQVJFTlQ9ZmEsTnIuU0hPV19DSElMRD1hcixOci5QYW5lbD1VYSxOci5fSW50ZXJuYWxQYW5lbERvTm90VXNlT3JZb3VXaWxsQmVGaXJlZD12YTt2YXIgWGE9TnIsRnI9aSg2MDY5MiksSz1pKDg1ODkzKSxQYT1bInJhZGlvVHlwZSIsInJlbmRlckZvcm1JdGVtIiwibW9kZSIsInJlbmRlciIsImxhYmVsIiwibGlnaHQiXSxOYT1mdW5jdGlvbih0LG4pe3ZhciByLGE9dC5yYWRpb1R5cGUsbD10LnJlbmRlckZvcm1JdGVtLHU9dC5tb2RlLGM9dC5yZW5kZXIsZD10LmxhYmVsLHY9dC5saWdodCxmPSgwLGcuWikodCxQYSksbT0oMCxvLnVzZUNvbnRleHQpKGJlLlpQLkNvbmZpZ0NvbnRleHQpLGg9bS5nZXRQcmVmaXhDbHMsQz1oKCJwcm8tZmllbGQtY2FzY2FkZXIiKSx4PSgwLEZyLmFLKShmKSxwPSgwLGouWikoeCwzKSx5PXBbMF0sdz1wWzFdLFA9cFsyXSxFPSgwLE8uWUIpKCksTT0oMCxvLnVzZVJlZikoKSxEPSgwLG8udXNlU3RhdGUpKCExKSxOPSgwLGouWikoRCwyKSxUPU5bMF0sVz1OWzFdOygwLG8udXNlSW1wZXJhdGl2ZUhhbmRsZSkobixmdW5jdGlvbigpe3JldHVybigwLHMuWikoKDAscy5aKSh7fSxNLmN1cnJlbnR8fHt9KSx7fSx7ZmV0Y2hEYXRhOmZ1bmN0aW9uKHNlKXtyZXR1cm4gUChzZSl9fSl9LFtQXSk7dmFyIEI9KDAsby51c2VNZW1vKShmdW5jdGlvbigpe3ZhciByZTtpZih1PT09InJlYWQiKXt2YXIgc2U9KChyZT1mLmZpZWxkUHJvcHMpPT09bnVsbHx8cmU9PT12b2lkIDA/dm9pZCAwOnJlLmZpZWxkTmFtZXMpfHx7fSxKPXNlLnZhbHVlLGllPUo9PT12b2lkIDA/InZhbHVlIjpKLGNlPXNlLmxhYmVsLHhlPWNlPT09dm9pZCAwPyJsYWJlbCI6Y2UsdWU9c2UuY2hpbGRyZW4seWU9dWU9PT12b2lkIDA/ImNoaWxkcmVuIjp1ZSxQZT1uZXcgTWFwLGdlPWZ1bmN0aW9uIFJlKFNlKXtpZighKFNlIT1udWxsJiZTZS5sZW5ndGgpKXJldHVybiBQZTtmb3IodmFyIEllPVNlLmxlbmd0aCxaZT0wO1plPEllOyl7dmFyIENlPVNlW1plKytdO1BlLnNldChDZVtpZV0sQ2VbeGVdKSxSZShDZVt5ZV0pfXJldHVybiBQZX07cmV0dXJuIGdlKHcpfX0sW3Usdywocj1mLmZpZWxkUHJvcHMpPT09bnVsbHx8cj09PXZvaWQgMD92b2lkIDA6ci5maWVsZE5hbWVzXSk7aWYodT09PSJyZWFkIil7dmFyIFk9KDAsSy5qc3gpKEsuRnJhZ21lbnQse2NoaWxkcmVuOigwLG1lLk1QKShmLnRleHQsKDAsbWUuUjYpKGYudmFsdWVFbnVtfHxCKSl9KTtpZihjKXt2YXIgSDtyZXR1cm4oSD1jKGYudGV4dCwoMCxzLlopKHttb2RlOnV9LGYuZmllbGRQcm9wcyksWSkpIT09bnVsbCYmSCE9PXZvaWQgMD9IOm51bGx9cmV0dXJuIFl9aWYodT09PSJlZGl0Iil7dmFyIEEsVix6PSgwLEsuanN4KShYYSwoMCxzLlopKCgwLHMuWikoKDAscy5aKSh7fSwoMCxfLkopKCF2KSkse30se3JlZjpNLG9wZW46VCxzdWZmaXhJY29uOnk/KDAsSy5qc3gpKERlLlose30pOnZvaWQgMCxwbGFjZWhvbGRlcjpFLmdldE1lc3NhZ2UoInRhYmxlRm9ybS5zZWxlY3RQbGFjZWhvbGRlciIsIlx1OEJGN1x1OTAwOVx1NjJFOSIpLGFsbG93Q2xlYXI6KChBPWYuZmllbGRQcm9wcyk9PT1udWxsfHxBPT09dm9pZCAwP3ZvaWQgMDpBLmFsbG93Q2xlYXIpIT09ITF9LGYuZmllbGRQcm9wcykse30se29uRHJvcGRvd25WaXNpYmxlQ2hhbmdlOmZ1bmN0aW9uKHNlKXt2YXIgSixpZTtmPT1udWxsfHwoSj1mLmZpZWxkUHJvcHMpPT09bnVsbHx8Sj09PXZvaWQgMHx8KGllPUoub25Ecm9wZG93blZpc2libGVDaGFuZ2UpPT09bnVsbHx8aWU9PT12b2lkIDB8fGllLmNhbGwoSixzZSksVyhzZSl9LGNsYXNzTmFtZTpvZSgpKChWPWYuZmllbGRQcm9wcyk9PT1udWxsfHxWPT09dm9pZCAwP3ZvaWQgMDpWLmNsYXNzTmFtZSxDKSxvcHRpb25zOnd9KSk7aWYobCl7dmFyIFg7ej0oWD1sKGYudGV4dCwoMCxzLlopKCgwLHMuWikoe21vZGU6dX0sZi5maWVsZFByb3BzKSx7fSx7b3B0aW9uczp3LGxvYWRpbmc6eX0pLHopKSE9PW51bGwmJlghPT12b2lkIDA/WDpudWxsfWlmKHYpe3ZhciBxPWYuZmllbGRQcm9wcyxRPXEuZGlzYWJsZWQsYWU9cS52YWx1ZSxlZT0hIWFlJiYoYWU9PW51bGw/dm9pZCAwOmFlLmxlbmd0aCkhPT0wO3JldHVybigwLEsuanN4KSh2ZS5RLHtsYWJlbDpkLGRpc2FibGVkOlEsYm9yZGVyZWQ6Zi5ib3JkZXJlZCx2YWx1ZTplZXx8VD96Om51bGwsc3R5bGU6ZWU/e3BhZGRpbmdJbmxpbmVFbmQ6MH06dm9pZCAwLGFsbG93Q2xlYXI6ITEsZG93bkljb246ZWV8fFQ/ITE6dm9pZCAwLG9uQ2xpY2s6ZnVuY3Rpb24oKXt2YXIgc2UsSjtXKCEwKSxmPT1udWxsfHwoc2U9Zi5maWVsZFByb3BzKT09PW51bGx8fHNlPT09dm9pZCAwfHwoSj1zZS5vbkRyb3Bkb3duVmlzaWJsZUNoYW5nZSk9PT1udWxsfHxKPT09dm9pZCAwfHxKLmNhbGwoc2UsITApfX0pfXJldHVybiB6fXJldHVybiBudWxsfSxHYT1vLmZvcndhcmRSZWYoTmEpLGZyPWkoNjQ4NDcpLG1hPWkoOTk4NTkpLFRyPWkoNTczODEpLFFhPWkoODQ1NjcpLEphPVsibGF5b3V0IiwicmVuZGVyRm9ybUl0ZW0iLCJtb2RlIiwicmVuZGVyIl0scWE9WyJmaWVsZE5hbWVzIl0sanI9ZnVuY3Rpb24odCxuKXt2YXIgcixhLGw9dC5sYXlvdXQsdT1sPT09dm9pZCAwPyJob3Jpem9udGFsIjpsLGM9dC5yZW5kZXJGb3JtSXRlbSxkPXQubW9kZSx2PXQucmVuZGVyLGY9KDAsZy5aKSh0LEphKSxtPSgwLG8udXNlQ29udGV4dCkoYmUuWlAuQ29uZmlnQ29udGV4dCksaD1tLmdldFByZWZpeENscyxDPWgoInByby1maWVsZC1jaGVja2JveCIpLHg9KHI9bWEuWi5JdGVtKT09PW51bGx8fHI9PT12b2lkIDB8fChhPXIudXNlU3RhdHVzKT09PW51bGx8fGE9PT12b2lkIDA/dm9pZCAwOmEuY2FsbChyKSxwPSgwLEZyLmFLKShmKSx5PSgwLGouWikocCwzKSx3PXlbMF0sUD15WzFdLEU9eVsyXSxNPSgwLGZyLlhqKSgiQ2hlY2tib3giLGZ1bmN0aW9uKGVlKXtyZXR1cm4oMCxHLlopKHt9LCIuIi5jb25jYXQoQykseyImLWVycm9yIjp7c3Bhbjp7Y29sb3I6ZWUuY29sb3JFcnJvcn19LCImLXdhcm5pbmciOntzcGFuOntjb2xvcjplZS5jb2xvcldhcm5pbmd9fSwiJi12ZXJ0aWNhbCI6KDAsRy5aKSgoMCxHLlopKCgwLEcuWikoe30sIiYiLmNvbmNhdChlZS5hbnRDbHMsIi1jaGVja2JveC1ncm91cCIpLHtkaXNwbGF5OiJpbmxpbmUtYmxvY2sifSksIiIuY29uY2F0KGVlLmFudENscywiLWNoZWNrYm94LXdyYXBwZXIrIikuY29uY2F0KGVlLmFudENscywiLWNoZWNrYm94LXdyYXBwZXIiKSx7Im1hcmdpbi1pbmxpbmUtc3RhcnQiOiIwICAhaW1wb3J0YW50In0pLCIiLmNvbmNhdChlZS5hbnRDbHMsIi1jaGVja2JveC1ncm91cC1pdGVtIikse2Rpc3BsYXk6ImZsZXgiLG1hcmdpbklubGluZUVuZDowfSl9KX0pLEQ9TS53cmFwU1NSLE49TS5oYXNoSWQsVD1mci5kUT09PW51bGx8fGZyLmRRPT09dm9pZCAwP3ZvaWQgMDooMCxmci5kUSkoKSxXPVQudG9rZW4sQj0oMCxvLnVzZVJlZikoKTtpZigoMCxvLnVzZUltcGVyYXRpdmVIYW5kbGUpKG4sZnVuY3Rpb24oKXtyZXR1cm4oMCxzLlopKCgwLHMuWikoe30sQi5jdXJyZW50fHx7fSkse30se2ZldGNoRGF0YTpmdW5jdGlvbihyZSl7cmV0dXJuIEUocmUpfX0pfSxbRV0pLHcpcmV0dXJuKDAsSy5qc3gpKFRyLlose3NpemU6InNtYWxsIn0pO2lmKGQ9PT0icmVhZCIpe3ZhciBZPVAhPW51bGwmJlAubGVuZ3RoP1A9PW51bGw/dm9pZCAwOlAucmVkdWNlKGZ1bmN0aW9uKGVlLHJlKXt2YXIgc2U7cmV0dXJuKDAscy5aKSgoMCxzLlopKHt9LGVlKSx7fSwoMCxHLlopKHt9LChzZT1yZS52YWx1ZSkhPT1udWxsJiZzZSE9PXZvaWQgMD9zZToiIixyZS5sYWJlbCkpfSx7fSk6dm9pZCAwLEg9KDAsbWUuTVApKGYudGV4dCwoMCxtZS5SNikoZi52YWx1ZUVudW18fFkpKTtpZih2KXt2YXIgQTtyZXR1cm4oQT12KGYudGV4dCwoMCxzLlopKHttb2RlOmR9LGYuZmllbGRQcm9wcyksKDAsSy5qc3gpKEsuRnJhZ21lbnQse2NoaWxkcmVuOkh9KSkpIT09bnVsbCYmQSE9PXZvaWQgMD9BOm51bGx9cmV0dXJuKDAsSy5qc3gpKCJkaXYiLHtzdHlsZTp7ZGlzcGxheToiZmxleCIsZmxleFdyYXA6IndyYXAiLGFsaWduSXRlbXM6ImNlbnRlciIsZ2FwOlcubWFyZ2luU019LGNoaWxkcmVuOkh9KX1pZihkPT09ImVkaXQiKXt2YXIgVix6PWYuZmllbGRQcm9wc3x8e30sWD16LmZpZWxkTmFtZXMscT0oMCxnLlopKHoscWEpLFE9RCgoMCxLLmpzeCkoUWEuWi5Hcm91cCwoMCxzLlopKCgwLHMuWikoe30scSkse30se2NsYXNzTmFtZTpvZSgpKChWPWYuZmllbGRQcm9wcyk9PT1udWxsfHxWPT09dm9pZCAwP3ZvaWQgMDpWLmNsYXNzTmFtZSxOLCIiLmNvbmNhdChDLCItIikuY29uY2F0KHUpLCgwLEcuWikoKDAsRy5aKSh7fSwiIi5jb25jYXQoQywiLWVycm9yIiksKHg9PW51bGw/dm9pZCAwOnguc3RhdHVzKT09PSJlcnJvciIpLCIiLmNvbmNhdChDLCItd2FybmluZyIpLCh4PT1udWxsP3ZvaWQgMDp4LnN0YXR1cyk9PT0id2FybmluZyIpKSxvcHRpb25zOlB9KSkpO2lmKGMpe3ZhciBhZTtyZXR1cm4oYWU9YyhmLnRleHQsKDAscy5aKSgoMCxzLlopKHttb2RlOmR9LGYuZmllbGRQcm9wcykse30se29wdGlvbnM6UCxsb2FkaW5nOnd9KSxRKSkhPT1udWxsJiZhZSE9PXZvaWQgMD9hZTpudWxsfXJldHVybiBRfXJldHVybiBudWxsfSxnYT1vLmZvcndhcmRSZWYoanIpLEFyPWkoMjUyNzgpLGhyPWZ1bmN0aW9uKHQsbil7aWYodHlwZW9mIHQhPSJzdHJpbmciKXJldHVybiB0O3RyeXtpZihuPT09Impzb24iKXJldHVybiBKU09OLnN0cmluZ2lmeShKU09OLnBhcnNlKHQpLG51bGwsMil9Y2F0Y2gocil7fXJldHVybiB0fSxoYT1mdW5jdGlvbih0LG4pe3ZhciByPXQudGV4dCxhPXQubW9kZSxsPXQucmVuZGVyLHU9dC5sYW5ndWFnZSxjPXU9PT12b2lkIDA/InRleHQiOnUsZD10LnJlbmRlckZvcm1JdGVtLHY9dC5wbGFpbixmPXQuZmllbGRQcm9wcyxtPWhyKHIsYyksaD1mci5Pdy51c2VUb2tlbigpLEM9aC50b2tlbjtpZihhPT09InJlYWQiKXt2YXIgeD0oMCxLLmpzeCkoInByZSIsKDAscy5aKSgoMCxzLlopKHtyZWY6bn0sZikse30se3N0eWxlOigwLHMuWikoe3BhZGRpbmc6MTYsb3ZlcmZsb3c6ImF1dG8iLGZvbnRTaXplOiI4NSUiLGxpbmVIZWlnaHQ6MS40NSxjb2xvcjpDLmNvbG9yVGV4dFNlY29uZGFyeSxmb250RmFtaWx5OkMuZm9udEZhbWlseUNvZGUsYmFja2dyb3VuZENvbG9yOiJyZ2JhKDE1MCwgMTUwLCAxNTAsIDAuMSkiLGJvcmRlclJhZGl1czozLHdpZHRoOiJtaW4tY29udGVudCJ9LGYuc3R5bGUpLGNoaWxkcmVuOigwLEsuanN4KSgiY29kZSIse2NoaWxkcmVuOm19KX0pKTtyZXR1cm4gbD9sKG0sKDAscy5aKSgoMCxzLlopKHttb2RlOmF9LGYpLHt9LHtyZWY6bn0pLHgpOnh9aWYoYT09PSJlZGl0Inx8YT09PSJ1cGRhdGUiKXtmLnZhbHVlPW07dmFyIHA9KDAsSy5qc3gpKEFyLlouVGV4dEFyZWEsKDAscy5aKSgoMCxzLlopKHtyb3dzOjV9LGYpLHt9LHtyZWY6bn0pKTtpZih2JiYocD0oMCxLLmpzeCkoQXIuWiwoMCxzLlopKCgwLHMuWikoe30sZikse30se3JlZjpufSkpKSxkKXt2YXIgeTtyZXR1cm4oeT1kKG0sKDAscy5aKSgoMCxzLlopKHttb2RlOmF9LGYpLHt9LHtyZWY6bn0pLHApKSE9PW51bGwmJnkhPT12b2lkIDA/eTpudWxsfXJldHVybiBwfXJldHVybiBudWxsfSxlYT1vLmZvcndhcmRSZWYoaGEpLEZhPWkoMTk3Nyksd2E9aSg2NzE1OSksWHI9aSg4OTk0MiksT3I9aSg1NTI0MSksdnI9aSgxMTYxNiksVGE9aSg5NjA3NCksT2E9aSgzOTg5OSksV249aSg4NDEwKSx0YT1pKDQyNTUwKSxqYT1pKDI5MzcyKSxFcj1mdW5jdGlvbih0LG4pe2lmKCF0KXJldHVybiBudWxsO3ZhciByPXtsZWZ0OnQub2Zmc2V0TGVmdCxyaWdodDp0LnBhcmVudEVsZW1lbnQuY2xpZW50V2lkdGgtdC5jbGllbnRXaWR0aC10Lm9mZnNldExlZnQsd2lkdGg6dC5jbGllbnRXaWR0aCx0b3A6dC5vZmZzZXRUb3AsYm90dG9tOnQucGFyZW50RWxlbWVudC5jbGllbnRIZWlnaHQtdC5jbGllbnRIZWlnaHQtdC5vZmZzZXRUb3AsaGVpZ2h0OnQuY2xpZW50SGVpZ2h0fTtyZXR1cm4gbj97bGVmdDowLHJpZ2h0OjAsd2lkdGg6MCx0b3A6ci50b3AsYm90dG9tOnIuYm90dG9tLGhlaWdodDpyLmhlaWdodH06e2xlZnQ6ci5sZWZ0LHJpZ2h0OnIucmlnaHQsd2lkdGg6ci53aWR0aCx0b3A6MCxib3R0b206MCxoZWlnaHQ6MH19LFNyPWZ1bmN0aW9uKHQpe3JldHVybiB0IT09dm9pZCAwPyIiLmNvbmNhdCh0LCJweCIpOnZvaWQgMH07ZnVuY3Rpb24gQWEoZSl7dmFyIHQ9ZS5wcmVmaXhDbHMsbj1lLmNvbnRhaW5lclJlZixyPWUudmFsdWUsYT1lLmdldFZhbHVlSW5kZXgsbD1lLm1vdGlvbk5hbWUsdT1lLm9uTW90aW9uU3RhcnQsYz1lLm9uTW90aW9uRW5kLGQ9ZS5kaXJlY3Rpb24sdj1lLnZlcnRpY2FsLGY9dj09PXZvaWQgMD8hMTp2LG09by51c2VSZWYobnVsbCksaD1vLnVzZVN0YXRlKHIpLEM9KDAsai5aKShoLDIpLHg9Q1swXSxwPUNbMV0seT1mdW5jdGlvbihYKXt2YXIgcSxRPWEoWCksYWU9KHE9bi5jdXJyZW50KT09PW51bGx8fHE9PT12b2lkIDA/dm9pZCAwOnEucXVlcnlTZWxlY3RvckFsbCgiLiIuY29uY2F0KHQsIi1pdGVtIikpW1FdO3JldHVybihhZT09bnVsbD92b2lkIDA6YWUub2Zmc2V0UGFyZW50KSYmYWV9LHc9by51c2VTdGF0ZShudWxsKSxQPSgwLGouWikodywyKSxFPVBbMF0sTT1QWzFdLEQ9by51c2VTdGF0ZShudWxsKSxOPSgwLGouWikoRCwyKSxUPU5bMF0sVz1OWzFdOygwLFduLlopKGZ1bmN0aW9uKCl7aWYoeCE9PXIpe3ZhciB6PXkoeCksWD15KHIpLHE9RXIoeixmKSxRPUVyKFgsZik7cChyKSxNKHEpLFcoUSkseiYmWD91KCk6YygpfX0sW3JdKTt2YXIgQj1vLnVzZU1lbW8oZnVuY3Rpb24oKXtpZihmKXt2YXIgejtyZXR1cm4gU3IoKHo9RT09bnVsbD92b2lkIDA6RS50b3ApIT09bnVsbCYmeiE9PXZvaWQgMD96OjApfXJldHVybiBTcihkPT09InJ0bCI/LShFPT1udWxsP3ZvaWQgMDpFLnJpZ2h0KTpFPT1udWxsP3ZvaWQgMDpFLmxlZnQpfSxbZixkLEVdKSxZPW8udXNlTWVtbyhmdW5jdGlvbigpe2lmKGYpe3ZhciB6O3JldHVybiBTcigoej1UPT1udWxsP3ZvaWQgMDpULnRvcCkhPT1udWxsJiZ6IT09dm9pZCAwP3o6MCl9cmV0dXJuIFNyKGQ9PT0icnRsIj8tKFQ9PW51bGw/dm9pZCAwOlQucmlnaHQpOlQ9PW51bGw/dm9pZCAwOlQubGVmdCl9LFtmLGQsVF0pLEg9ZnVuY3Rpb24oKXtyZXR1cm4gZj97dHJhbnNmb3JtOiJ0cmFuc2xhdGVZKHZhcigtLXRodW1iLXN0YXJ0LXRvcCkpIixoZWlnaHQ6InZhcigtLXRodW1iLXN0YXJ0LWhlaWdodCkifTp7dHJhbnNmb3JtOiJ0cmFuc2xhdGVYKHZhcigtLXRodW1iLXN0YXJ0LWxlZnQpKSIsd2lkdGg6InZhcigtLXRodW1iLXN0YXJ0LXdpZHRoKSJ9fSxBPWZ1bmN0aW9uKCl7cmV0dXJuIGY/e3RyYW5zZm9ybToidHJhbnNsYXRlWSh2YXIoLS10aHVtYi1hY3RpdmUtdG9wKSkiLGhlaWdodDoidmFyKC0tdGh1bWItYWN0aXZlLWhlaWdodCkifTp7dHJhbnNmb3JtOiJ0cmFuc2xhdGVYKHZhcigtLXRodW1iLWFjdGl2ZS1sZWZ0KSkiLHdpZHRoOiJ2YXIoLS10aHVtYi1hY3RpdmUtd2lkdGgpIn19LFY9ZnVuY3Rpb24oKXtNKG51bGwpLFcobnVsbCksYygpfTtyZXR1cm4hRXx8IVQ/bnVsbDpvLmNyZWF0ZUVsZW1lbnQoamEuWlAse3Zpc2libGU6ITAsbW90aW9uTmFtZTpsLG1vdGlvbkFwcGVhcjohMCxvbkFwcGVhclN0YXJ0Okgsb25BcHBlYXJBY3RpdmU6QSxvblZpc2libGVDaGFuZ2VkOlZ9LGZ1bmN0aW9uKHosWCl7dmFyIHE9ei5jbGFzc05hbWUsUT16LnN0eWxlLGFlPSgwLHMuWikoKDAscy5aKSh7fSxRKSx7fSx7Ii0tdGh1bWItc3RhcnQtbGVmdCI6QiwiLS10aHVtYi1zdGFydC13aWR0aCI6U3IoRT09bnVsbD92b2lkIDA6RS53aWR0aCksIi0tdGh1bWItYWN0aXZlLWxlZnQiOlksIi0tdGh1bWItYWN0aXZlLXdpZHRoIjpTcihUPT1udWxsP3ZvaWQgMDpULndpZHRoKSwiLS10aHVtYi1zdGFydC10b3AiOkIsIi0tdGh1bWItc3RhcnQtaGVpZ2h0IjpTcihFPT1udWxsP3ZvaWQgMDpFLmhlaWdodCksIi0tdGh1bWItYWN0aXZlLXRvcCI6WSwiLS10aHVtYi1hY3RpdmUtaGVpZ2h0IjpTcihUPT1udWxsP3ZvaWQgMDpULmhlaWdodCl9KSxlZT17cmVmOigwLHRhLnNRKShtLFgpLHN0eWxlOmFlLGNsYXNzTmFtZTpvZSgpKCIiLmNvbmNhdCh0LCItdGh1bWIiKSxxKX07cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgiZGl2IixlZSl9KX12YXIgR3I9WyJwcmVmaXhDbHMiLCJkaXJlY3Rpb24iLCJ2ZXJ0aWNhbCIsIm9wdGlvbnMiLCJkaXNhYmxlZCIsImRlZmF1bHRWYWx1ZSIsInZhbHVlIiwibmFtZSIsIm9uQ2hhbmdlIiwiY2xhc3NOYW1lIiwibW90aW9uTmFtZSJdO2Z1bmN0aW9uIGZvKGUpe2lmKHR5cGVvZiBlLnRpdGxlIT0idW5kZWZpbmVkIilyZXR1cm4gZS50aXRsZTtpZigoMCxiLlopKGUubGFiZWwpIT09Im9iamVjdCIpe3ZhciB0O3JldHVybih0PWUubGFiZWwpPT09bnVsbHx8dD09PXZvaWQgMD92b2lkIDA6dC50b1N0cmluZygpfX1mdW5jdGlvbiBuYShlKXtyZXR1cm4gZS5tYXAoZnVuY3Rpb24odCl7aWYoKDAsYi5aKSh0KT09PSJvYmplY3QiJiZ0IT09bnVsbCl7dmFyIG49Zm8odCk7cmV0dXJuKDAscy5aKSgoMCxzLlopKHt9LHQpLHt9LHt0aXRsZTpufSl9cmV0dXJue2xhYmVsOnQ9PW51bGw/dm9pZCAwOnQudG9TdHJpbmcoKSx0aXRsZTp0PT1udWxsP3ZvaWQgMDp0LnRvU3RyaW5nKCksdmFsdWU6dH19KX12YXIgc3I9ZnVuY3Rpb24odCl7dmFyIG49dC5wcmVmaXhDbHMscj10LmNsYXNzTmFtZSxhPXQuZGlzYWJsZWQsbD10LmNoZWNrZWQsdT10LmxhYmVsLGM9dC50aXRsZSxkPXQudmFsdWUsdj10Lm5hbWUsZj10Lm9uQ2hhbmdlLG09dC5vbkZvY3VzLGg9dC5vbkJsdXIsQz10Lm9uS2V5RG93bix4PXQub25LZXlVcCxwPXQub25Nb3VzZURvd24seT1mdW5jdGlvbihQKXthfHxmKFAsZCl9O3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoImxhYmVsIix7Y2xhc3NOYW1lOm9lKCkociwoMCxHLlopKHt9LCIiLmNvbmNhdChuLCItaXRlbS1kaXNhYmxlZCIpLGEpKSxvbk1vdXNlRG93bjpwfSxvLmNyZWF0ZUVsZW1lbnQoImlucHV0Iix7bmFtZTp2LGNsYXNzTmFtZToiIi5jb25jYXQobiwiLWl0ZW0taW5wdXQiKSx0eXBlOiJyYWRpbyIsZGlzYWJsZWQ6YSxjaGVja2VkOmwsb25DaGFuZ2U6eSxvbkZvY3VzOm0sb25CbHVyOmgsb25LZXlEb3duOkMsb25LZXlVcDp4fSksby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KG4sIi1pdGVtLWxhYmVsIiksdGl0bGU6YywiYXJpYS1zZWxlY3RlZCI6bH0sdSkpfSx2bz1vLmZvcndhcmRSZWYoZnVuY3Rpb24oZSx0KXt2YXIgbixyLGE9ZS5wcmVmaXhDbHMsbD1hPT09dm9pZCAwPyJyYy1zZWdtZW50ZWQiOmEsdT1lLmRpcmVjdGlvbixjPWUudmVydGljYWwsZD1lLm9wdGlvbnMsdj1kPT09dm9pZCAwP1tdOmQsZj1lLmRpc2FibGVkLG09ZS5kZWZhdWx0VmFsdWUsaD1lLnZhbHVlLEM9ZS5uYW1lLHg9ZS5vbkNoYW5nZSxwPWUuY2xhc3NOYW1lLHk9cD09PXZvaWQgMD8iIjpwLHc9ZS5tb3Rpb25OYW1lLFA9dz09PXZvaWQgMD8idGh1bWItbW90aW9uIjp3LEU9KDAsZy5aKShlLEdyKSxNPW8udXNlUmVmKG51bGwpLEQ9by51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJuKDAsdGEuc1EpKE0sdCl9LFtNLHRdKSxOPW8udXNlTWVtbyhmdW5jdGlvbigpe3JldHVybiBuYSh2KX0sW3ZdKSxUPSgwLHJ0LlopKChuPU5bMF0pPT09bnVsbHx8bj09PXZvaWQgMD92b2lkIDA6bi52YWx1ZSx7dmFsdWU6aCxkZWZhdWx0VmFsdWU6bX0pLFc9KDAsai5aKShULDIpLEI9V1swXSxZPVdbMV0sSD1vLnVzZVN0YXRlKCExKSxBPSgwLGouWikoSCwyKSxWPUFbMF0sej1BWzFdLFg9ZnVuY3Rpb24oSWUsWmUpe1koWmUpLHg9PW51bGx8fHgoWmUpfSxxPSgwLHBuLlopKEUsWyJjaGlsZHJlbiJdKSxRPW8udXNlU3RhdGUoITEpLGFlPSgwLGouWikoUSwyKSxlZT1hZVswXSxyZT1hZVsxXSxzZT1vLnVzZVN0YXRlKCExKSxKPSgwLGouWikoc2UsMiksaWU9SlswXSxjZT1KWzFdLHhlPWZ1bmN0aW9uKCl7Y2UoITApfSx1ZT1mdW5jdGlvbigpe2NlKCExKX0seWU9ZnVuY3Rpb24oKXtyZSghMSl9LFBlPWZ1bmN0aW9uKEllKXtJZS5rZXk9PT0iVGFiIiYmcmUoITApfSxnZT1mdW5jdGlvbihJZSl7dmFyIFplPU4uZmluZEluZGV4KGZ1bmN0aW9uKEplKXtyZXR1cm4gSmUudmFsdWU9PT1CfSksQ2U9Ti5sZW5ndGgsRWU9KFplK0llK0NlKSVDZSxwZT1OW0VlXTtwZSYmKFkocGUudmFsdWUpLHg9PW51bGx8fHgocGUudmFsdWUpKX0sUmU9ZnVuY3Rpb24oSWUpe3N3aXRjaChJZS5rZXkpe2Nhc2UiQXJyb3dMZWZ0IjpjYXNlIkFycm93VXAiOmdlKC0xKTticmVhaztjYXNlIkFycm93UmlnaHQiOmNhc2UiQXJyb3dEb3duIjpnZSgxKTticmVha319O3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoImRpdiIsKDAsRmUuWikoe3JvbGU6InJhZGlvZ3JvdXAiLCJhcmlhLWxhYmVsIjoic2VnbWVudGVkIGNvbnRyb2wiLHRhYkluZGV4OmY/dm9pZCAwOjB9LHEse2NsYXNzTmFtZTpvZSgpKGwsKHI9e30sKDAsRy5aKShyLCIiLmNvbmNhdChsLCItcnRsIiksdT09PSJydGwiKSwoMCxHLlopKHIsIiIuY29uY2F0KGwsIi1kaXNhYmxlZCIpLGYpLCgwLEcuWikociwiIi5jb25jYXQobCwiLXZlcnRpY2FsIiksYykscikseSkscmVmOkR9KSxvLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiIi5jb25jYXQobCwiLWdyb3VwIil9LG8uY3JlYXRlRWxlbWVudChBYSx7dmVydGljYWw6YyxwcmVmaXhDbHM6bCx2YWx1ZTpCLGNvbnRhaW5lclJlZjpNLG1vdGlvbk5hbWU6IiIuY29uY2F0KGwsIi0iKS5jb25jYXQoUCksZGlyZWN0aW9uOnUsZ2V0VmFsdWVJbmRleDpmdW5jdGlvbihJZSl7cmV0dXJuIE4uZmluZEluZGV4KGZ1bmN0aW9uKFplKXtyZXR1cm4gWmUudmFsdWU9PT1JZX0pfSxvbk1vdGlvblN0YXJ0OmZ1bmN0aW9uKCl7eighMCl9LG9uTW90aW9uRW5kOmZ1bmN0aW9uKCl7eighMSl9fSksTi5tYXAoZnVuY3Rpb24oU2Upe3ZhciBJZTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KHNyLCgwLEZlLlopKHt9LFNlLHtuYW1lOkMsa2V5OlNlLnZhbHVlLHByZWZpeENsczpsLGNsYXNzTmFtZTpvZSgpKFNlLmNsYXNzTmFtZSwiIi5jb25jYXQobCwiLWl0ZW0iKSwoSWU9e30sKDAsRy5aKShJZSwiIi5jb25jYXQobCwiLWl0ZW0tc2VsZWN0ZWQiKSxTZS52YWx1ZT09PUImJiFWKSwoMCxHLlopKEllLCIiLmNvbmNhdChsLCItaXRlbS1mb2N1c2VkIiksaWUmJmVlJiZTZS52YWx1ZT09PUIpLEllKSksY2hlY2tlZDpTZS52YWx1ZT09PUIsb25DaGFuZ2U6WCxvbkZvY3VzOnhlLG9uQmx1cjp1ZSxvbktleURvd246UmUsb25LZXlVcDpQZSxvbk1vdXNlRG93bjp5ZSxkaXNhYmxlZDohIWZ8fCEhU2UuZGlzYWJsZWR9KSl9KSkpfSksX2E9dm8sSGE9X2EsRWE9aSg3MDI4KSxCcj1pKDgzMjYyKTtmdW5jdGlvbiBJcihlLHQpe3JldHVybntbYCR7ZX0sICR7ZX06aG92ZXIsICR7ZX06Zm9jdXNgXTp7Y29sb3I6dC5jb2xvclRleHREaXNhYmxlZCxjdXJzb3I6Im5vdC1hbGxvd2VkIn19fWZ1bmN0aW9uIGthKGUpe3JldHVybntiYWNrZ3JvdW5kQ29sb3I6ZS5pdGVtU2VsZWN0ZWRCZyxib3hTaGFkb3c6ZS5ib3hTaGFkb3dUZXJ0aWFyeX19Y29uc3QgYnI9T2JqZWN0LmFzc2lnbih7b3ZlcmZsb3c6ImhpZGRlbiJ9LE5uLnZTKSwkcj1lPT57Y29uc3R7Y29tcG9uZW50Q2xzOnR9PWUsbj1lLmNhbGMoZS5jb250cm9sSGVpZ2h0KS5zdWIoZS5jYWxjKGUudHJhY2tQYWRkaW5nKS5tdWwoMikpLmVxdWFsKCkscj1lLmNhbGMoZS5jb250cm9sSGVpZ2h0TEcpLnN1YihlLmNhbGMoZS50cmFja1BhZGRpbmcpLm11bCgyKSkuZXF1YWwoKSxhPWUuY2FsYyhlLmNvbnRyb2xIZWlnaHRTTSkuc3ViKGUuY2FsYyhlLnRyYWNrUGFkZGluZykubXVsKDIpKS5lcXVhbCgpO3JldHVybntbdF06T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwoMCxObi5XZikoZSkpLHtkaXNwbGF5OiJpbmxpbmUtYmxvY2siLHBhZGRpbmc6ZS50cmFja1BhZGRpbmcsY29sb3I6ZS5pdGVtQ29sb3IsYmFja2dyb3VuZDplLnRyYWNrQmcsYm9yZGVyUmFkaXVzOmUuYm9yZGVyUmFkaXVzLHRyYW5zaXRpb246YGFsbCAke2UubW90aW9uRHVyYXRpb25NaWR9ICR7ZS5tb3Rpb25FYXNlSW5PdXR9YH0pLCgwLE5uLlF5KShlKSkse1tgJHt0fS1ncm91cGBdOntwb3NpdGlvbjoicmVsYXRpdmUiLGRpc3BsYXk6ImZsZXgiLGFsaWduSXRlbXM6InN0cmV0Y2giLGp1c3RpZnlJdGVtczoiZmxleC1zdGFydCIsZmxleERpcmVjdGlvbjoicm93Iix3aWR0aDoiMTAwJSJ9LFtgJiR7dH0tcnRsYF06e2RpcmVjdGlvbjoicnRsIn0sW2AmJHt0fS12ZXJ0aWNhbGBdOntbYCR7dH0tZ3JvdXBgXTp7ZmxleERpcmVjdGlvbjoiY29sdW1uIn0sW2Ake3R9LXRodW1iYF06e3dpZHRoOiIxMDAlIixoZWlnaHQ6MCxwYWRkaW5nOmAwICR7KDAsaGUuYmYpKGUucGFkZGluZ1hYUyl9YH19LFtgJiR7dH0tYmxvY2tgXTp7ZGlzcGxheToiZmxleCJ9LFtgJiR7dH0tYmxvY2sgJHt0fS1pdGVtYF06e2ZsZXg6MSxtaW5XaWR0aDowfSxbYCR7dH0taXRlbWBdOntwb3NpdGlvbjoicmVsYXRpdmUiLHRleHRBbGlnbjoiY2VudGVyIixjdXJzb3I6InBvaW50ZXIiLHRyYW5zaXRpb246YGNvbG9yICR7ZS5tb3Rpb25EdXJhdGlvbk1pZH0gJHtlLm1vdGlvbkVhc2VJbk91dH1gLGJvcmRlclJhZGl1czplLmJvcmRlclJhZGl1c1NNLHRyYW5zZm9ybToidHJhbnNsYXRlWigwKSIsIiYtc2VsZWN0ZWQiOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxrYShlKSkse2NvbG9yOmUuaXRlbVNlbGVjdGVkQ29sb3J9KSwiJi1mb2N1c2VkIjpPYmplY3QuYXNzaWduKHt9LCgwLE5uLm9OKShlKSksIiY6OmFmdGVyIjp7Y29udGVudDonIiInLHBvc2l0aW9uOiJhYnNvbHV0ZSIsekluZGV4Oi0xLHdpZHRoOiIxMDAlIixoZWlnaHQ6IjEwMCUiLHRvcDowLGluc2V0SW5saW5lU3RhcnQ6MCxib3JkZXJSYWRpdXM6ImluaGVyaXQiLG9wYWNpdHk6MCx0cmFuc2l0aW9uOmBvcGFjaXR5ICR7ZS5tb3Rpb25EdXJhdGlvbk1pZH1gLHBvaW50ZXJFdmVudHM6Im5vbmUifSxbYCY6aG92ZXI6bm90KCR7dH0taXRlbS1zZWxlY3RlZCk6bm90KCR7dH0taXRlbS1kaXNhYmxlZClgXTp7Y29sb3I6ZS5pdGVtSG92ZXJDb2xvciwiJjo6YWZ0ZXIiOntvcGFjaXR5OjEsYmFja2dyb3VuZENvbG9yOmUuaXRlbUhvdmVyQmd9fSxbYCY6YWN0aXZlOm5vdCgke3R9LWl0ZW0tc2VsZWN0ZWQpOm5vdCgke3R9LWl0ZW0tZGlzYWJsZWQpYF06e2NvbG9yOmUuaXRlbUhvdmVyQ29sb3IsIiY6OmFmdGVyIjp7b3BhY2l0eToxLGJhY2tncm91bmRDb2xvcjplLml0ZW1BY3RpdmVCZ319LCImLWxhYmVsIjpPYmplY3QuYXNzaWduKHttaW5IZWlnaHQ6bixsaW5lSGVpZ2h0OigwLGhlLmJmKShuKSxwYWRkaW5nOmAwICR7KDAsaGUuYmYpKGUuc2VnbWVudGVkUGFkZGluZ0hvcml6b250YWwpfWB9LGJyKSwiJi1pY29uICsgKiI6e21hcmdpbklubGluZVN0YXJ0OmUuY2FsYyhlLm1hcmdpblNNKS5kaXYoMikuZXF1YWwoKX0sIiYtaW5wdXQiOntwb3NpdGlvbjoiYWJzb2x1dGUiLGluc2V0QmxvY2tTdGFydDowLGluc2V0SW5saW5lU3RhcnQ6MCx3aWR0aDowLGhlaWdodDowLG9wYWNpdHk6MCxwb2ludGVyRXZlbnRzOiJub25lIn19LFtgJHt0fS10aHVtYmBdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxrYShlKSkse3Bvc2l0aW9uOiJhYnNvbHV0ZSIsaW5zZXRCbG9ja1N0YXJ0OjAsaW5zZXRJbmxpbmVTdGFydDowLHdpZHRoOjAsaGVpZ2h0OiIxMDAlIixwYWRkaW5nOmAkeygwLGhlLmJmKShlLnBhZGRpbmdYWFMpfSAwYCxib3JkZXJSYWRpdXM6ZS5ib3JkZXJSYWRpdXNTTSx0cmFuc2l0aW9uOmB0cmFuc2Zvcm0gJHtlLm1vdGlvbkR1cmF0aW9uU2xvd30gJHtlLm1vdGlvbkVhc2VJbk91dH0sIGhlaWdodCAke2UubW90aW9uRHVyYXRpb25TbG93fSAke2UubW90aW9uRWFzZUluT3V0fWAsW2AmIH4gJHt0fS1pdGVtOm5vdCgke3R9LWl0ZW0tc2VsZWN0ZWQpOm5vdCgke3R9LWl0ZW0tZGlzYWJsZWQpOjphZnRlcmBdOntiYWNrZ3JvdW5kQ29sb3I6InRyYW5zcGFyZW50In19KSxbYCYke3R9LWxnYF06e2JvcmRlclJhZGl1czplLmJvcmRlclJhZGl1c0xHLFtgJHt0fS1pdGVtLWxhYmVsYF06e21pbkhlaWdodDpyLGxpbmVIZWlnaHQ6KDAsaGUuYmYpKHIpLHBhZGRpbmc6YDAgJHsoMCxoZS5iZikoZS5zZWdtZW50ZWRQYWRkaW5nSG9yaXpvbnRhbCl9YCxmb250U2l6ZTplLmZvbnRTaXplTEd9LFtgJHt0fS1pdGVtLCAke3R9LXRodW1iYF06e2JvcmRlclJhZGl1czplLmJvcmRlclJhZGl1c319LFtgJiR7dH0tc21gXTp7Ym9yZGVyUmFkaXVzOmUuYm9yZGVyUmFkaXVzU00sW2Ake3R9LWl0ZW0tbGFiZWxgXTp7bWluSGVpZ2h0OmEsbGluZUhlaWdodDooMCxoZS5iZikoYSkscGFkZGluZzpgMCAkeygwLGhlLmJmKShlLnNlZ21lbnRlZFBhZGRpbmdIb3Jpem9udGFsU00pfWB9LFtgJHt0fS1pdGVtLCAke3R9LXRodW1iYF06e2JvcmRlclJhZGl1czplLmJvcmRlclJhZGl1c1hTfX19KSxJcihgJi1kaXNhYmxlZCAke3R9LWl0ZW1gLGUpKSxJcihgJHt0fS1pdGVtLWRpc2FibGVkYCxlKSkse1tgJHt0fS10aHVtYi1tb3Rpb24tYXBwZWFyLWFjdGl2ZWBdOnt0cmFuc2l0aW9uOmB0cmFuc2Zvcm0gJHtlLm1vdGlvbkR1cmF0aW9uU2xvd30gJHtlLm1vdGlvbkVhc2VJbk91dH0sIHdpZHRoICR7ZS5tb3Rpb25EdXJhdGlvblNsb3d9ICR7ZS5tb3Rpb25FYXNlSW5PdXR9YCx3aWxsQ2hhbmdlOiJ0cmFuc2Zvcm0sIHdpZHRoIn0sW2AmJHt0fS1zaGFwZS1yb3VuZGBdOntib3JkZXJSYWRpdXM6OTk5OSxbYCR7dH0taXRlbSwgJHt0fS10aHVtYmBdOntib3JkZXJSYWRpdXM6OTk5OX19fSl9fSxFbj1lPT57Y29uc3R7Y29sb3JUZXh0TGFiZWw6dCxjb2xvclRleHQ6bixjb2xvckZpbGxTZWNvbmRhcnk6cixjb2xvckJnRWxldmF0ZWQ6YSxjb2xvckZpbGw6bCxsaW5lV2lkdGhCb2xkOnUsY29sb3JCZ0xheW91dDpjfT1lO3JldHVybnt0cmFja1BhZGRpbmc6dSx0cmFja0JnOmMsaXRlbUNvbG9yOnQsaXRlbUhvdmVyQ29sb3I6bixpdGVtSG92ZXJCZzpyLGl0ZW1TZWxlY3RlZEJnOmEsaXRlbUFjdGl2ZUJnOmwsaXRlbVNlbGVjdGVkQ29sb3I6bn19O3ZhciBtbj0oMCxsbi5JJCkoIlNlZ21lbnRlZCIsZT0+e2NvbnN0e2xpbmVXaWR0aDp0LGNhbGM6bn09ZSxyPSgwLEJyLklYKShlLHtzZWdtZW50ZWRQYWRkaW5nSG9yaXpvbnRhbDpuKGUuY29udHJvbFBhZGRpbmdIb3Jpem9udGFsKS5zdWIodCkuZXF1YWwoKSxzZWdtZW50ZWRQYWRkaW5nSG9yaXpvbnRhbFNNOm4oZS5jb250cm9sUGFkZGluZ0hvcml6b250YWxTTSkuc3ViKHQpLmVxdWFsKCl9KTtyZXR1cm5bJHIocildfSxFbiksdXI9ZnVuY3Rpb24oZSx0KXt2YXIgbj17fTtmb3IodmFyIHIgaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxyKSYmdC5pbmRleE9mKHIpPDAmJihuW3JdPWVbcl0pO2lmKGUhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgYT0wLHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTthPHIubGVuZ3RoO2ErKyl0LmluZGV4T2YoclthXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsclthXSkmJihuW3JbYV1dPWVbclthXV0pO3JldHVybiBufTtmdW5jdGlvbiB6bihlKXtyZXR1cm4gdHlwZW9mIGU9PSJvYmplY3QiJiYhIShlIT1udWxsJiZlLmljb24pfXZhciBQcj1vLmZvcndhcmRSZWYoKGUsdCk9Pntjb25zdCBuPSgwLEVhLlopKCkse3ByZWZpeENsczpyLGNsYXNzTmFtZTphLHJvb3RDbGFzc05hbWU6bCxibG9jazp1LG9wdGlvbnM6Yz1bXSxzaXplOmQ9Im1pZGRsZSIsc3R5bGU6dix2ZXJ0aWNhbDpmLHNoYXBlOm09ImRlZmF1bHQiLG5hbWU6aD1ufT1lLEM9dXIoZSxbInByZWZpeENscyIsImNsYXNzTmFtZSIsInJvb3RDbGFzc05hbWUiLCJibG9jayIsIm9wdGlvbnMiLCJzaXplIiwic3R5bGUiLCJ2ZXJ0aWNhbCIsInNoYXBlIiwibmFtZSJdKSx7Z2V0UHJlZml4Q2xzOngsZGlyZWN0aW9uOnAsY2xhc3NOYW1lOnksc3R5bGU6d309KDAsb24uZGopKCJzZWdtZW50ZWQiKSxQPXgoInNlZ21lbnRlZCIsciksW0UsTSxEXT1tbihQKSxOPSgwLENuLlopKGQpLFQ9by51c2VNZW1vKCgpPT5jLm1hcChZPT57aWYoem4oWSkpe2NvbnN0e2ljb246SCxsYWJlbDpBfT1ZLFY9dXIoWSxbImljb24iLCJsYWJlbCJdKTtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LFYpLHtsYWJlbDpvLmNyZWF0ZUVsZW1lbnQoby5GcmFnbWVudCxudWxsLG8uY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpgJHtQfS1pdGVtLWljb25gfSxIKSxBJiZvLmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwsQSkpfSl9cmV0dXJuIFl9KSxbYyxQXSksVz1vZSgpKGEsbCx5LHtbYCR7UH0tYmxvY2tgXTp1LFtgJHtQfS1zbWBdOk49PT0ic21hbGwiLFtgJHtQfS1sZ2BdOk49PT0ibGFyZ2UiLFtgJHtQfS12ZXJ0aWNhbGBdOmYsW2Ake1B9LXNoYXBlLSR7bX1gXTptPT09InJvdW5kIn0sTSxEKSxCPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx3KSx2KTtyZXR1cm4gRShvLmNyZWF0ZUVsZW1lbnQoSGEsT2JqZWN0LmFzc2lnbih7fSxDLHtuYW1lOmgsY2xhc3NOYW1lOlcsc3R5bGU6QixvcHRpb25zOlQscmVmOnQscHJlZml4Q2xzOlAsZGlyZWN0aW9uOnAsdmVydGljYWw6Zn0pKSl9KTtjb25zdCBMYT1vLmNyZWF0ZUNvbnRleHQoe30pLHpyPW8uY3JlYXRlQ29udGV4dCh7fSk7dmFyIEluPWkoOTM3NjYpLHlpPWU9PntsZXR7cHJlZml4Q2xzOnQsdmFsdWU6bixvbkNoYW5nZTpyfT1lO2NvbnN0IGE9KCk9PntpZihyJiZuJiYhbi5jbGVhcmVkKXtjb25zdCBsPW4udG9Ic2IoKTtsLmE9MDtjb25zdCB1PSgwLEluLnZDKShsKTt1LmNsZWFyZWQ9ITAscih1KX19O3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpgJHt0fS1jbGVhcmAsb25DbGljazphfSl9LENpPWkoMzQwNDEpO2NvbnN0IFZhPSJoZXgiLG1vPSJyZ2IiLHhpPSJoc2IiO3ZhciBYaT1pKDgwODgyKSxHaT1pKDQ4MTE1KSxnbz1pKDE1NjcxKSxNbz1pKDQzMTQ0KTtmdW5jdGlvbiBlbygpe3JldHVybiB0eXBlb2YgQmlnSW50PT0iZnVuY3Rpb24ifWZ1bmN0aW9uIFpvKGUpe3JldHVybiFlJiZlIT09MCYmIU51bWJlci5pc05hTihlKXx8IVN0cmluZyhlKS50cmltKCl9ZnVuY3Rpb24gQmEoZSl7dmFyIHQ9ZS50cmltKCksbj10LnN0YXJ0c1dpdGgoIi0iKTtuJiYodD10LnNsaWNlKDEpKSx0PXQucmVwbGFjZSgvKFwuXGQqW14wXSkwKiQvLCIkMSIpLnJlcGxhY2UoL1wuMCokLywiIikucmVwbGFjZSgvXjArLywiIiksdC5zdGFydHNXaXRoKCIuIikmJih0PSIwIi5jb25jYXQodCkpO3ZhciByPXR8fCIwIixhPXIuc3BsaXQoIi4iKSxsPWFbMF18fCIwIix1PWFbMV18fCIwIjtsPT09IjAiJiZ1PT09IjAiJiYobj0hMSk7dmFyIGM9bj8iLSI6IiI7cmV0dXJue25lZ2F0aXZlOm4sbmVnYXRpdmVTdHI6Yyx0cmltU3RyOnIsaW50ZWdlclN0cjpsLGRlY2ltYWxTdHI6dSxmdWxsU3RyOiIiLmNvbmNhdChjKS5jb25jYXQocil9fWZ1bmN0aW9uIFFvKGUpe3ZhciB0PVN0cmluZyhlKTtyZXR1cm4hTnVtYmVyLmlzTmFOKE51bWJlcih0KSkmJnQuaW5jbHVkZXMoImUiKX1mdW5jdGlvbiBXYShlKXt2YXIgdD1TdHJpbmcoZSk7aWYoUW8oZSkpe3ZhciBuPU51bWJlcih0LnNsaWNlKHQuaW5kZXhPZigiZS0iKSsyKSkscj10Lm1hdGNoKC9cLihcZCspLyk7cmV0dXJuIHIhPW51bGwmJnJbMV0mJihuKz1yWzFdLmxlbmd0aCksbn1yZXR1cm4gdC5pbmNsdWRlcygiLiIpJiZ4bih0KT90Lmxlbmd0aC10LmluZGV4T2YoIi4iKS0xOjB9ZnVuY3Rpb24gUm8oZSl7dmFyIHQ9U3RyaW5nKGUpO2lmKFFvKGUpKXtpZihlPk51bWJlci5NQVhfU0FGRV9JTlRFR0VSKXJldHVybiBTdHJpbmcoZW8oKT9CaWdJbnQoZSkudG9TdHJpbmcoKTpOdW1iZXIuTUFYX1NBRkVfSU5URUdFUik7aWYoZTxOdW1iZXIuTUlOX1NBRkVfSU5URUdFUilyZXR1cm4gU3RyaW5nKGVvKCk/QmlnSW50KGUpLnRvU3RyaW5nKCk6TnVtYmVyLk1JTl9TQUZFX0lOVEVHRVIpO3Q9ZS50b0ZpeGVkKFdhKHQpKX1yZXR1cm4gQmEodCkuZnVsbFN0cn1mdW5jdGlvbiB4bihlKXtyZXR1cm4gdHlwZW9mIGU9PSJudW1iZXIiPyFOdW1iZXIuaXNOYU4oZSk6ZT8vXlxzKi0/XGQrKFwuXGQrKT9ccyokLy50ZXN0KGUpfHwvXlxzKi0/XGQrXC5ccyokLy50ZXN0KGUpfHwvXlxzKi0/XC5cZCtccyokLy50ZXN0KGUpOiExfXZhciAkbj1mdW5jdGlvbigpe2Z1bmN0aW9uIGUodCl7aWYoKDAsZ28uWikodGhpcyxlKSwoMCxHLlopKHRoaXMsIm9yaWdpbiIsIiIpLCgwLEcuWikodGhpcywibmVnYXRpdmUiLHZvaWQgMCksKDAsRy5aKSh0aGlzLCJpbnRlZ2VyIix2b2lkIDApLCgwLEcuWikodGhpcywiZGVjaW1hbCIsdm9pZCAwKSwoMCxHLlopKHRoaXMsImRlY2ltYWxMZW4iLHZvaWQgMCksKDAsRy5aKSh0aGlzLCJlbXB0eSIsdm9pZCAwKSwoMCxHLlopKHRoaXMsIm5hbiIsdm9pZCAwKSxabyh0KSl7dGhpcy5lbXB0eT0hMDtyZXR1cm59aWYodGhpcy5vcmlnaW49U3RyaW5nKHQpLHQ9PT0iLSJ8fE51bWJlci5pc05hTih0KSl7dGhpcy5uYW49ITA7cmV0dXJufXZhciBuPXQ7aWYoUW8obikmJihuPU51bWJlcihuKSksbj10eXBlb2Ygbj09InN0cmluZyI/bjpSbyhuKSx4bihuKSl7dmFyIHI9QmEobik7dGhpcy5uZWdhdGl2ZT1yLm5lZ2F0aXZlO3ZhciBhPXIudHJpbVN0ci5zcGxpdCgiLiIpO3RoaXMuaW50ZWdlcj1CaWdJbnQoYVswXSk7dmFyIGw9YVsxXXx8IjAiO3RoaXMuZGVjaW1hbD1CaWdJbnQobCksdGhpcy5kZWNpbWFsTGVuPWwubGVuZ3RofWVsc2UgdGhpcy5uYW49ITB9cmV0dXJuKDAsTW8uWikoZSxbe2tleToiZ2V0TWFyayIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5uZWdhdGl2ZT8iLSI6IiJ9fSx7a2V5OiJnZXRJbnRlZ2VyU3RyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmludGVnZXIudG9TdHJpbmcoKX19LHtrZXk6ImdldERlY2ltYWxTdHIiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGVjaW1hbC50b1N0cmluZygpLnBhZFN0YXJ0KHRoaXMuZGVjaW1hbExlbiwiMCIpfX0se2tleToiYWxpZ25EZWNpbWFsIix2YWx1ZTpmdW5jdGlvbihuKXt2YXIgcj0iIi5jb25jYXQodGhpcy5nZXRNYXJrKCkpLmNvbmNhdCh0aGlzLmdldEludGVnZXJTdHIoKSkuY29uY2F0KHRoaXMuZ2V0RGVjaW1hbFN0cigpLnBhZEVuZChuLCIwIikpO3JldHVybiBCaWdJbnQocil9fSx7a2V5OiJuZWdhdGUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIG49bmV3IGUodGhpcy50b1N0cmluZygpKTtyZXR1cm4gbi5uZWdhdGl2ZT0hbi5uZWdhdGl2ZSxufX0se2tleToiY2FsIix2YWx1ZTpmdW5jdGlvbihuLHIsYSl7dmFyIGw9TWF0aC5tYXgodGhpcy5nZXREZWNpbWFsU3RyKCkubGVuZ3RoLG4uZ2V0RGVjaW1hbFN0cigpLmxlbmd0aCksdT10aGlzLmFsaWduRGVjaW1hbChsKSxjPW4uYWxpZ25EZWNpbWFsKGwpLGQ9cih1LGMpLnRvU3RyaW5nKCksdj1hKGwpLGY9QmEoZCksbT1mLm5lZ2F0aXZlU3RyLGg9Zi50cmltU3RyLEM9IiIuY29uY2F0KG0pLmNvbmNhdChoLnBhZFN0YXJ0KHYrMSwiMCIpKTtyZXR1cm4gbmV3IGUoIiIuY29uY2F0KEMuc2xpY2UoMCwtdiksIi4iKS5jb25jYXQoQy5zbGljZSgtdikpKX19LHtrZXk6ImFkZCIsdmFsdWU6ZnVuY3Rpb24obil7aWYodGhpcy5pc0ludmFsaWRhdGUoKSlyZXR1cm4gbmV3IGUobik7dmFyIHI9bmV3IGUobik7cmV0dXJuIHIuaXNJbnZhbGlkYXRlKCk/dGhpczp0aGlzLmNhbChyLGZ1bmN0aW9uKGEsbCl7cmV0dXJuIGErbH0sZnVuY3Rpb24oYSl7cmV0dXJuIGF9KX19LHtrZXk6Im11bHRpIix2YWx1ZTpmdW5jdGlvbihuKXt2YXIgcj1uZXcgZShuKTtyZXR1cm4gdGhpcy5pc0ludmFsaWRhdGUoKXx8ci5pc0ludmFsaWRhdGUoKT9uZXcgZShOYU4pOnRoaXMuY2FsKHIsZnVuY3Rpb24oYSxsKXtyZXR1cm4gYSpsfSxmdW5jdGlvbihhKXtyZXR1cm4gYSoyfSl9fSx7a2V5OiJpc0VtcHR5Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVtcHR5fX0se2tleToiaXNOYU4iLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmFufX0se2tleToiaXNJbnZhbGlkYXRlIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlzRW1wdHkoKXx8dGhpcy5pc05hTigpfX0se2tleToiZXF1YWxzIix2YWx1ZTpmdW5jdGlvbihuKXtyZXR1cm4gdGhpcy50b1N0cmluZygpPT09KG49PW51bGw/dm9pZCAwOm4udG9TdHJpbmcoKSl9fSx7a2V5OiJsZXNzRXF1YWxzIix2YWx1ZTpmdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5hZGQobi5uZWdhdGUoKS50b1N0cmluZygpKS50b051bWJlcigpPD0wfX0se2tleToidG9OdW1iZXIiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNOYU4oKT9OYU46TnVtYmVyKHRoaXMudG9TdHJpbmcoKSl9fSx7a2V5OiJ0b1N0cmluZyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgbj1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXZvaWQgMD9hcmd1bWVudHNbMF06ITA7cmV0dXJuIG4/dGhpcy5pc0ludmFsaWRhdGUoKT8iIjpCYSgiIi5jb25jYXQodGhpcy5nZXRNYXJrKCkpLmNvbmNhdCh0aGlzLmdldEludGVnZXJTdHIoKSwiLiIpLmNvbmNhdCh0aGlzLmdldERlY2ltYWxTdHIoKSkpLmZ1bGxTdHI6dGhpcy5vcmlnaW59fV0pLGV9KCksRm49ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKHQpe2lmKCgwLGdvLlopKHRoaXMsZSksKDAsRy5aKSh0aGlzLCJvcmlnaW4iLCIiKSwoMCxHLlopKHRoaXMsIm51bWJlciIsdm9pZCAwKSwoMCxHLlopKHRoaXMsImVtcHR5Iix2b2lkIDApLFpvKHQpKXt0aGlzLmVtcHR5PSEwO3JldHVybn10aGlzLm9yaWdpbj1TdHJpbmcodCksdGhpcy5udW1iZXI9TnVtYmVyKHQpfXJldHVybigwLE1vLlopKGUsW3trZXk6Im5lZ2F0ZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGUoLXRoaXMudG9OdW1iZXIoKSl9fSx7a2V5OiJhZGQiLHZhbHVlOmZ1bmN0aW9uKG4pe2lmKHRoaXMuaXNJbnZhbGlkYXRlKCkpcmV0dXJuIG5ldyBlKG4pO3ZhciByPU51bWJlcihuKTtpZihOdW1iZXIuaXNOYU4ocikpcmV0dXJuIHRoaXM7dmFyIGE9dGhpcy5udW1iZXIrcjtpZihhPk51bWJlci5NQVhfU0FGRV9JTlRFR0VSKXJldHVybiBuZXcgZShOdW1iZXIuTUFYX1NBRkVfSU5URUdFUik7aWYoYTxOdW1iZXIuTUlOX1NBRkVfSU5URUdFUilyZXR1cm4gbmV3IGUoTnVtYmVyLk1JTl9TQUZFX0lOVEVHRVIpO3ZhciBsPU1hdGgubWF4KFdhKHRoaXMubnVtYmVyKSxXYShyKSk7cmV0dXJuIG5ldyBlKGEudG9GaXhlZChsKSl9fSx7a2V5OiJtdWx0aSIsdmFsdWU6ZnVuY3Rpb24obil7dmFyIHI9TnVtYmVyKG4pO2lmKHRoaXMuaXNJbnZhbGlkYXRlKCl8fE51bWJlci5pc05hTihyKSlyZXR1cm4gbmV3IGUoTmFOKTt2YXIgYT10aGlzLm51bWJlcipyO2lmKGE+TnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpcmV0dXJuIG5ldyBlKE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKTtpZihhPE51bWJlci5NSU5fU0FGRV9JTlRFR0VSKXJldHVybiBuZXcgZShOdW1iZXIuTUlOX1NBRkVfSU5URUdFUik7dmFyIGw9TWF0aC5tYXgoV2EodGhpcy5udW1iZXIpLFdhKHIpKTtyZXR1cm4gbmV3IGUoYS50b0ZpeGVkKGwpKX19LHtrZXk6ImlzRW1wdHkiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZW1wdHl9fSx7a2V5OiJpc05hTiIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gTnVtYmVyLmlzTmFOKHRoaXMubnVtYmVyKX19LHtrZXk6ImlzSW52YWxpZGF0ZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc0VtcHR5KCl8fHRoaXMuaXNOYU4oKX19LHtrZXk6ImVxdWFscyIsdmFsdWU6ZnVuY3Rpb24obil7cmV0dXJuIHRoaXMudG9OdW1iZXIoKT09PShuPT1udWxsP3ZvaWQgMDpuLnRvTnVtYmVyKCkpfX0se2tleToibGVzc0VxdWFscyIsdmFsdWU6ZnVuY3Rpb24obil7cmV0dXJuIHRoaXMuYWRkKG4ubmVnYXRlKCkudG9TdHJpbmcoKSkudG9OdW1iZXIoKTw9MH19LHtrZXk6InRvTnVtYmVyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm51bWJlcn19LHtrZXk6InRvU3RyaW5nIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBuPWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dm9pZCAwP2FyZ3VtZW50c1swXTohMDtyZXR1cm4gbj90aGlzLmlzSW52YWxpZGF0ZSgpPyIiOlJvKHRoaXMubnVtYmVyKTp0aGlzLm9yaWdpbn19XSksZX0oKTtmdW5jdGlvbiBWbihlKXtyZXR1cm4gZW8oKT9uZXcgJG4oZSk6bmV3IEZuKGUpfWZ1bmN0aW9uIEhyKGUsdCxuKXt2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjMmJmFyZ3VtZW50c1szXSE9PXZvaWQgMD9hcmd1bWVudHNbM106ITE7aWYoZT09PSIiKXJldHVybiIiO3ZhciBhPUJhKGUpLGw9YS5uZWdhdGl2ZVN0cix1PWEuaW50ZWdlclN0cixjPWEuZGVjaW1hbFN0cixkPSIiLmNvbmNhdCh0KS5jb25jYXQoYyksdj0iIi5jb25jYXQobCkuY29uY2F0KHUpO2lmKG4+PTApe3ZhciBmPU51bWJlcihjW25dKTtpZihmPj01JiYhcil7dmFyIG09Vm4oZSkuYWRkKCIiLmNvbmNhdChsLCIwLiIpLmNvbmNhdCgiMCIucmVwZWF0KG4pKS5jb25jYXQoMTAtZikpO3JldHVybiBIcihtLnRvU3RyaW5nKCksdCxuLHIpfXJldHVybiBuPT09MD92OiIiLmNvbmNhdCh2KS5jb25jYXQodCkuY29uY2F0KGMucGFkRW5kKG4sIjAiKS5zbGljZSgwLG4pKX1yZXR1cm4gZD09PSIuMCI/djoiIi5jb25jYXQodikuY29uY2F0KGQpfXZhciBqbj1WbixHbj1pKDY3NjU2KTtmdW5jdGlvbiBRbihlLHQpe3JldHVybiB0eXBlb2YgUHJveHkhPSJ1bmRlZmluZWQiJiZlP25ldyBQcm94eShlLHtnZXQ6ZnVuY3Rpb24ocixhKXtpZih0W2FdKXJldHVybiB0W2FdO3ZhciBsPXJbYV07cmV0dXJuIHR5cGVvZiBsPT0iZnVuY3Rpb24iP2wuYmluZChyKTpsfX0pOmV9ZnVuY3Rpb24gS3IoZSx0KXt2YXIgbj0oMCxvLnVzZVJlZikobnVsbCk7ZnVuY3Rpb24gcigpe3RyeXt2YXIgbD1lLnNlbGVjdGlvblN0YXJ0LHU9ZS5zZWxlY3Rpb25FbmQsYz1lLnZhbHVlLGQ9Yy5zdWJzdHJpbmcoMCxsKSx2PWMuc3Vic3RyaW5nKHUpO24uY3VycmVudD17c3RhcnQ6bCxlbmQ6dSx2YWx1ZTpjLGJlZm9yZVR4dDpkLGFmdGVyVHh0OnZ9fWNhdGNoKGYpe319ZnVuY3Rpb24gYSgpe2lmKGUmJm4uY3VycmVudCYmdCl0cnl7dmFyIGw9ZS52YWx1ZSx1PW4uY3VycmVudCxjPXUuYmVmb3JlVHh0LGQ9dS5hZnRlclR4dCx2PXUuc3RhcnQsZj1sLmxlbmd0aDtpZihsLnN0YXJ0c1dpdGgoYykpZj1jLmxlbmd0aDtlbHNlIGlmKGwuZW5kc1dpdGgoZCkpZj1sLmxlbmd0aC1uLmN1cnJlbnQuYWZ0ZXJUeHQubGVuZ3RoO2Vsc2V7dmFyIG09Y1t2LTFdLGg9bC5pbmRleE9mKG0sdi0xKTtoIT09LTEmJihmPWgrMSl9ZS5zZXRTZWxlY3Rpb25SYW5nZShmLGYpfWNhdGNoKEMpeygwLGh0LlpQKSghMSwiU29tZXRoaW5nIHdhcm5pbmcgb2YgY3Vyc29yIHJlc3RvcmUuIFBsZWFzZSBmaXJlIGlzc3VlIGFib3V0IHRoaXM6ICIuY29uY2F0KEMubWVzc2FnZSkpfX1yZXR1cm5bcixhXX12YXIgSWE9aSgzMTEzMSksaG89ZnVuY3Rpb24oKXt2YXIgdD0oMCxvLnVzZVN0YXRlKSghMSksbj0oMCxqLlopKHQsMikscj1uWzBdLGE9blsxXTtyZXR1cm4oMCxXbi5aKShmdW5jdGlvbigpe2EoKDAsSWEuWikoKSl9LFtdKSxyfSxwbz1obyxKbj1pKDc1MTY0KSx0bz0yMDAsRG89NjAwO2Z1bmN0aW9uIHVhKGUpe3ZhciB0PWUucHJlZml4Q2xzLG49ZS51cE5vZGUscj1lLmRvd25Ob2RlLGE9ZS51cERpc2FibGVkLGw9ZS5kb3duRGlzYWJsZWQsdT1lLm9uU3RlcCxjPW8udXNlUmVmKCksZD1vLnVzZVJlZihbXSksdj1vLnVzZVJlZigpO3YuY3VycmVudD11O3ZhciBmPWZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KGMuY3VycmVudCl9LG09ZnVuY3Rpb24oRSxNKXtFLnByZXZlbnREZWZhdWx0KCksZigpLHYuY3VycmVudChNKTtmdW5jdGlvbiBEKCl7di5jdXJyZW50KE0pLGMuY3VycmVudD1zZXRUaW1lb3V0KEQsdG8pfWMuY3VycmVudD1zZXRUaW1lb3V0KEQsRG8pfTtvLnVzZUVmZmVjdChmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbigpe2YoKSxkLmN1cnJlbnQuZm9yRWFjaChmdW5jdGlvbihQKXtyZXR1cm4gSm4uWi5jYW5jZWwoUCl9KX19LFtdKTt2YXIgaD1wbygpO2lmKGgpcmV0dXJuIG51bGw7dmFyIEM9IiIuY29uY2F0KHQsIi1oYW5kbGVyIikseD1vZSgpKEMsIiIuY29uY2F0KEMsIi11cCIpLCgwLEcuWikoe30sIiIuY29uY2F0KEMsIi11cC1kaXNhYmxlZCIpLGEpKSxwPW9lKCkoQywiIi5jb25jYXQoQywiLWRvd24iKSwoMCxHLlopKHt9LCIiLmNvbmNhdChDLCItZG93bi1kaXNhYmxlZCIpLGwpKSx5PWZ1bmN0aW9uKCl7cmV0dXJuIGQuY3VycmVudC5wdXNoKCgwLEpuLlopKGYpKX0sdz17dW5zZWxlY3RhYmxlOiJvbiIscm9sZToiYnV0dG9uIixvbk1vdXNlVXA6eSxvbk1vdXNlTGVhdmU6eX07cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdChDLCItd3JhcCIpfSxvLmNyZWF0ZUVsZW1lbnQoInNwYW4iLCgwLEZlLlopKHt9LHcse29uTW91c2VEb3duOmZ1bmN0aW9uKEUpe20oRSwhMCl9LCJhcmlhLWxhYmVsIjoiSW5jcmVhc2UgVmFsdWUiLCJhcmlhLWRpc2FibGVkIjphLGNsYXNzTmFtZTp4fSksbnx8by5jcmVhdGVFbGVtZW50KCJzcGFuIix7dW5zZWxlY3RhYmxlOiJvbiIsY2xhc3NOYW1lOiIiLmNvbmNhdCh0LCItaGFuZGxlci11cC1pbm5lciIpfSkpLG8uY3JlYXRlRWxlbWVudCgic3BhbiIsKDAsRmUuWikoe30sdyx7b25Nb3VzZURvd246ZnVuY3Rpb24oRSl7bShFLCExKX0sImFyaWEtbGFiZWwiOiJEZWNyZWFzZSBWYWx1ZSIsImFyaWEtZGlzYWJsZWQiOmwsY2xhc3NOYW1lOnB9KSxyfHxvLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHt1bnNlbGVjdGFibGU6Im9uIixjbGFzc05hbWU6IiIuY29uY2F0KHQsIi1oYW5kbGVyLWRvd24taW5uZXIiKX0pKSl9ZnVuY3Rpb24gcGEoZSl7dmFyIHQ9dHlwZW9mIGU9PSJudW1iZXIiP1JvKGUpOkJhKGUpLmZ1bGxTdHIsbj10LmluY2x1ZGVzKCIuIik7cmV0dXJuIG4/QmEodC5yZXBsYWNlKC8oXGQpXC4oXGQpL2csIiQxJDIuIikpLmZ1bGxTdHI6ZSsiMCJ9dmFyIHF1PWkoODc4ODcpLF91PWZ1bmN0aW9uKCl7dmFyIGU9KDAsby51c2VSZWYpKDApLHQ9ZnVuY3Rpb24oKXtKbi5aLmNhbmNlbChlLmN1cnJlbnQpfTtyZXR1cm4oMCxvLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtyZXR1cm4gdH0sW10pLGZ1bmN0aW9uKG4pe3QoKSxlLmN1cnJlbnQ9KDAsSm4uWikoZnVuY3Rpb24oKXtuKCl9KX19LGVjPVsicHJlZml4Q2xzIiwiY2xhc3NOYW1lIiwic3R5bGUiLCJtaW4iLCJtYXgiLCJzdGVwIiwiZGVmYXVsdFZhbHVlIiwidmFsdWUiLCJkaXNhYmxlZCIsInJlYWRPbmx5IiwidXBIYW5kbGVyIiwiZG93bkhhbmRsZXIiLCJrZXlib2FyZCIsImNoYW5nZU9uV2hlZWwiLCJjb250cm9scyIsImNsYXNzTmFtZXMiLCJzdHJpbmdNb2RlIiwicGFyc2VyIiwiZm9ybWF0dGVyIiwicHJlY2lzaW9uIiwiZGVjaW1hbFNlcGFyYXRvciIsIm9uQ2hhbmdlIiwib25JbnB1dCIsIm9uUHJlc3NFbnRlciIsIm9uU3RlcCIsImNoYW5nZU9uQmx1ciIsImRvbVJlZiJdLHRjPVsiZGlzYWJsZWQiLCJzdHlsZSIsInByZWZpeENscyIsInZhbHVlIiwicHJlZml4Iiwic3VmZml4IiwiYWRkb25CZWZvcmUiLCJhZGRvbkFmdGVyIiwiY2xhc3NOYW1lIiwiY2xhc3NOYW1lcyJdLEJsPWZ1bmN0aW9uKHQsbil7cmV0dXJuIHR8fG4uaXNFbXB0eSgpP24udG9TdHJpbmcoKTpuLnRvTnVtYmVyKCl9LFdsPWZ1bmN0aW9uKHQpe3ZhciBuPWpuKHQpO3JldHVybiBuLmlzSW52YWxpZGF0ZSgpP251bGw6bn0sbmM9by5mb3J3YXJkUmVmKGZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5wcmVmaXhDbHMscj1lLmNsYXNzTmFtZSxhPWUuc3R5bGUsbD1lLm1pbix1PWUubWF4LGM9ZS5zdGVwLGQ9Yz09PXZvaWQgMD8xOmMsdj1lLmRlZmF1bHRWYWx1ZSxmPWUudmFsdWUsbT1lLmRpc2FibGVkLGg9ZS5yZWFkT25seSxDPWUudXBIYW5kbGVyLHg9ZS5kb3duSGFuZGxlcixwPWUua2V5Ym9hcmQseT1lLmNoYW5nZU9uV2hlZWwsdz15PT09dm9pZCAwPyExOnksUD1lLmNvbnRyb2xzLEU9UD09PXZvaWQgMD8hMDpQLE09ZS5jbGFzc05hbWVzLEQ9ZS5zdHJpbmdNb2RlLE49ZS5wYXJzZXIsVD1lLmZvcm1hdHRlcixXPWUucHJlY2lzaW9uLEI9ZS5kZWNpbWFsU2VwYXJhdG9yLFk9ZS5vbkNoYW5nZSxIPWUub25JbnB1dCxBPWUub25QcmVzc0VudGVyLFY9ZS5vblN0ZXAsej1lLmNoYW5nZU9uQmx1cixYPXo9PT12b2lkIDA/ITA6eixxPWUuZG9tUmVmLFE9KDAsZy5aKShlLGVjKSxhZT0iIi5jb25jYXQobiwiLWlucHV0IiksZWU9by51c2VSZWYobnVsbCkscmU9by51c2VTdGF0ZSghMSksc2U9KDAsai5aKShyZSwyKSxKPXNlWzBdLGllPXNlWzFdLGNlPW8udXNlUmVmKCExKSx4ZT1vLnVzZVJlZighMSksdWU9by51c2VSZWYoITEpLHllPW8udXNlU3RhdGUoZnVuY3Rpb24oKXtyZXR1cm4gam4oZiE9bnVsbD9mOnYpfSksUGU9KDAsai5aKSh5ZSwyKSxnZT1QZVswXSxSZT1QZVsxXTtmdW5jdGlvbiBTZSh4dCl7Zj09PXZvaWQgMCYmUmUoeHQpfXZhciBJZT1vLnVzZUNhbGxiYWNrKGZ1bmN0aW9uKHh0LFN0KXtpZighU3QpcmV0dXJuIFc+PTA/VzpNYXRoLm1heChXYSh4dCksV2EoZCkpfSxbVyxkXSksWmU9by51c2VDYWxsYmFjayhmdW5jdGlvbih4dCl7dmFyIFN0PVN0cmluZyh4dCk7aWYoTilyZXR1cm4gTihTdCk7dmFyIFl0PVN0O3JldHVybiBCJiYoWXQ9WXQucmVwbGFjZShCLCIuIikpLFl0LnJlcGxhY2UoL1teXHcuLV0rL2csIiIpfSxbTixCXSksQ2U9by51c2VSZWYoIiIpLEVlPW8udXNlQ2FsbGJhY2soZnVuY3Rpb24oeHQsU3Qpe2lmKFQpcmV0dXJuIFQoeHQse3VzZXJUeXBpbmc6U3QsaW5wdXQ6U3RyaW5nKENlLmN1cnJlbnQpfSk7dmFyIFl0PXR5cGVvZiB4dD09Im51bWJlciI/Um8oeHQpOnh0O2lmKCFTdCl7dmFyIEV0PUllKFl0LFN0KTtpZih4bihZdCkmJihCfHxFdD49MCkpe3ZhciBfdD1CfHwiLiI7WXQ9SHIoWXQsX3QsRXQpfX1yZXR1cm4gWXR9LFtULEllLEJdKSxwZT1vLnVzZVN0YXRlKGZ1bmN0aW9uKCl7dmFyIHh0PXYhPW51bGw/djpmO3JldHVybiBnZS5pc0ludmFsaWRhdGUoKSYmWyJzdHJpbmciLCJudW1iZXIiXS5pbmNsdWRlcygoMCxiLlopKHh0KSk/TnVtYmVyLmlzTmFOKHh0KT8iIjp4dDpFZShnZS50b1N0cmluZygpLCExKX0pLEplPSgwLGouWikocGUsMiksQmU9SmVbMF0sdnQ9SmVbMV07Q2UuY3VycmVudD1CZTtmdW5jdGlvbiB5dCh4dCxTdCl7dnQoRWUoeHQuaXNJbnZhbGlkYXRlKCk/eHQudG9TdHJpbmcoITEpOnh0LnRvU3RyaW5nKCFTdCksU3QpKX12YXIgc3Q9by51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJuIFdsKHUpfSxbdSxXXSksbnQ9by51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJuIFdsKGwpfSxbbCxXXSksSXQ9by51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJuIXN0fHwhZ2V8fGdlLmlzSW52YWxpZGF0ZSgpPyExOnN0Lmxlc3NFcXVhbHMoZ2UpfSxbc3QsZ2VdKSxjdD1vLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4hbnR8fCFnZXx8Z2UuaXNJbnZhbGlkYXRlKCk/ITE6Z2UubGVzc0VxdWFscyhudCl9LFtudCxnZV0pLFp0PUtyKGVlLmN1cnJlbnQsSiksYnQ9KDAsai5aKShadCwyKSxrdD1idFswXSxBZT1idFsxXSxxZT1mdW5jdGlvbihTdCl7cmV0dXJuIHN0JiYhU3QubGVzc0VxdWFscyhzdCk/c3Q6bnQmJiFudC5sZXNzRXF1YWxzKFN0KT9udDpudWxsfSxldD1mdW5jdGlvbihTdCl7cmV0dXJuIXFlKFN0KX0sT3Q9ZnVuY3Rpb24oU3QsWXQpe3ZhciBFdD1TdCxfdD1ldChFdCl8fEV0LmlzRW1wdHkoKTtpZighRXQuaXNFbXB0eSgpJiYhWXQmJihFdD1xZShFdCl8fEV0LF90PSEwKSwhaCYmIW0mJl90KXt2YXIgQm49RXQudG9TdHJpbmcoKSxNcj1JZShCbixZdCk7cmV0dXJuIE1yPj0wJiYoRXQ9am4oSHIoQm4sIi4iLE1yKSksZXQoRXQpfHwoRXQ9am4oSHIoQm4sIi4iLE1yLCEwKSkpKSxFdC5lcXVhbHMoZ2UpfHwoU2UoRXQpLFk9PW51bGx8fFkoRXQuaXNFbXB0eSgpP251bGw6QmwoRCxFdCkpLGY9PT12b2lkIDAmJnl0KEV0LFl0KSksRXR9cmV0dXJuIGdlfSxHZT1fdSgpLG5uPWZ1bmN0aW9uIHh0KFN0KXtpZihrdCgpLENlLmN1cnJlbnQ9U3QsdnQoU3QpLCF4ZS5jdXJyZW50KXt2YXIgWXQ9WmUoU3QpLEV0PWpuKFl0KTtFdC5pc05hTigpfHxPdChFdCwhMCl9SD09bnVsbHx8SChTdCksR2UoZnVuY3Rpb24oKXt2YXIgX3Q9U3Q7Tnx8KF90PVN0LnJlcGxhY2UoL+OAgi9nLCIuIikpLF90IT09U3QmJnh0KF90KX0pfSxpdD1mdW5jdGlvbigpe3hlLmN1cnJlbnQ9ITB9LFZlPWZ1bmN0aW9uKCl7eGUuY3VycmVudD0hMSxubihlZS5jdXJyZW50LnZhbHVlKX0sdXQ9ZnVuY3Rpb24oU3Qpe25uKFN0LnRhcmdldC52YWx1ZSl9LE1lPWZ1bmN0aW9uKFN0KXt2YXIgWXQ7aWYoIShTdCYmSXR8fCFTdCYmY3QpKXtjZS5jdXJyZW50PSExO3ZhciBFdD1qbih1ZS5jdXJyZW50P3BhKGQpOmQpO1N0fHwoRXQ9RXQubmVnYXRlKCkpO3ZhciBfdD0oZ2V8fGpuKDApKS5hZGQoRXQudG9TdHJpbmcoKSksQm49T3QoX3QsITEpO1Y9PW51bGx8fFYoQmwoRCxCbikse29mZnNldDp1ZS5jdXJyZW50P3BhKGQpOmQsdHlwZTpTdD8idXAiOiJkb3duIn0pLChZdD1lZS5jdXJyZW50KT09PW51bGx8fFl0PT09dm9pZCAwfHxZdC5mb2N1cygpfX0sVWU9ZnVuY3Rpb24oU3Qpe3ZhciBZdD1qbihaZShCZSkpLEV0O1l0LmlzTmFOKCk/RXQ9T3QoZ2UsU3QpOkV0PU90KFl0LFN0KSxmIT09dm9pZCAwP3l0KGdlLCExKTpFdC5pc05hTigpfHx5dChFdCwhMSl9LFRuPWZ1bmN0aW9uKCl7Y2UuY3VycmVudD0hMH0sZG49ZnVuY3Rpb24oU3Qpe3ZhciBZdD1TdC5rZXksRXQ9U3Quc2hpZnRLZXk7Y2UuY3VycmVudD0hMCx1ZS5jdXJyZW50PUV0LFl0PT09IkVudGVyIiYmKHhlLmN1cnJlbnR8fChjZS5jdXJyZW50PSExKSxVZSghMSksQT09bnVsbHx8QShTdCkpLHAhPT0hMSYmIXhlLmN1cnJlbnQmJlsiVXAiLCJBcnJvd1VwIiwiRG93biIsIkFycm93RG93biJdLmluY2x1ZGVzKFl0KSYmKE1lKFl0PT09IlVwInx8WXQ9PT0iQXJyb3dVcCIpLFN0LnByZXZlbnREZWZhdWx0KCkpfSxLbj1mdW5jdGlvbigpe2NlLmN1cnJlbnQ9ITEsdWUuY3VycmVudD0hMX07by51c2VFZmZlY3QoZnVuY3Rpb24oKXtpZih3JiZKKXt2YXIgeHQ9ZnVuY3Rpb24oRXQpe01lKEV0LmRlbHRhWTwwKSxFdC5wcmV2ZW50RGVmYXVsdCgpfSxTdD1lZS5jdXJyZW50O2lmKFN0KXJldHVybiBTdC5hZGRFdmVudExpc3RlbmVyKCJ3aGVlbCIseHQse3Bhc3NpdmU6ITF9KSxmdW5jdGlvbigpe3JldHVybiBTdC5yZW1vdmVFdmVudExpc3RlbmVyKCJ3aGVlbCIseHQpfX19KTt2YXIgTW49ZnVuY3Rpb24oKXtYJiZVZSghMSksaWUoITEpLGNlLmN1cnJlbnQ9ITF9O3JldHVybigwLFduLm8pKGZ1bmN0aW9uKCl7Z2UuaXNJbnZhbGlkYXRlKCl8fHl0KGdlLCExKX0sW1csVF0pLCgwLFduLm8pKGZ1bmN0aW9uKCl7dmFyIHh0PWpuKGYpO1JlKHh0KTt2YXIgU3Q9am4oWmUoQmUpKTsoIXh0LmVxdWFscyhTdCl8fCFjZS5jdXJyZW50fHxUKSYmeXQoeHQsY2UuY3VycmVudCl9LFtmXSksKDAsV24ubykoZnVuY3Rpb24oKXtUJiZBZSgpfSxbQmVdKSxvLmNyZWF0ZUVsZW1lbnQoImRpdiIse3JlZjpxLGNsYXNzTmFtZTpvZSgpKG4sciwoMCxHLlopKCgwLEcuWikoKDAsRy5aKSgoMCxHLlopKCgwLEcuWikoe30sIiIuY29uY2F0KG4sIi1mb2N1c2VkIiksSiksIiIuY29uY2F0KG4sIi1kaXNhYmxlZCIpLG0pLCIiLmNvbmNhdChuLCItcmVhZG9ubHkiKSxoKSwiIi5jb25jYXQobiwiLW5vdC1hLW51bWJlciIpLGdlLmlzTmFOKCkpLCIiLmNvbmNhdChuLCItb3V0LW9mLXJhbmdlIiksIWdlLmlzSW52YWxpZGF0ZSgpJiYhZXQoZ2UpKSksc3R5bGU6YSxvbkZvY3VzOmZ1bmN0aW9uKCl7aWUoITApfSxvbkJsdXI6TW4sb25LZXlEb3duOmRuLG9uS2V5VXA6S24sb25Db21wb3NpdGlvblN0YXJ0Oml0LG9uQ29tcG9zaXRpb25FbmQ6VmUsb25CZWZvcmVJbnB1dDpUbn0sRSYmby5jcmVhdGVFbGVtZW50KHVhLHtwcmVmaXhDbHM6bix1cE5vZGU6Qyxkb3duTm9kZTp4LHVwRGlzYWJsZWQ6SXQsZG93bkRpc2FibGVkOmN0LG9uU3RlcDpNZX0pLG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdChhZSwiLXdyYXAiKX0sby5jcmVhdGVFbGVtZW50KCJpbnB1dCIsKDAsRmUuWikoe2F1dG9Db21wbGV0ZToib2ZmIixyb2xlOiJzcGluYnV0dG9uIiwiYXJpYS12YWx1ZW1pbiI6bCwiYXJpYS12YWx1ZW1heCI6dSwiYXJpYS12YWx1ZW5vdyI6Z2UuaXNJbnZhbGlkYXRlKCk/bnVsbDpnZS50b1N0cmluZygpLHN0ZXA6ZH0sUSx7cmVmOigwLHRhLnNRKShlZSx0KSxjbGFzc05hbWU6YWUsdmFsdWU6QmUsb25DaGFuZ2U6dXQsZGlzYWJsZWQ6bSxyZWFkT25seTpofSkpKSl9KSxyYz1vLmZvcndhcmRSZWYoZnVuY3Rpb24oZSx0KXt2YXIgbj1lLmRpc2FibGVkLHI9ZS5zdHlsZSxhPWUucHJlZml4Q2xzLGw9YT09PXZvaWQgMD8icmMtaW5wdXQtbnVtYmVyIjphLHU9ZS52YWx1ZSxjPWUucHJlZml4LGQ9ZS5zdWZmaXgsdj1lLmFkZG9uQmVmb3JlLGY9ZS5hZGRvbkFmdGVyLG09ZS5jbGFzc05hbWUsaD1lLmNsYXNzTmFtZXMsQz0oMCxnLlopKGUsdGMpLHg9by51c2VSZWYobnVsbCkscD1vLnVzZVJlZihudWxsKSx5PW8udXNlUmVmKG51bGwpLHc9ZnVuY3Rpb24oRSl7eS5jdXJyZW50JiYoMCxxdS5uSCkoeS5jdXJyZW50LEUpfTtyZXR1cm4gby51c2VJbXBlcmF0aXZlSGFuZGxlKHQsZnVuY3Rpb24oKXtyZXR1cm4gUW4oeS5jdXJyZW50LHtmb2N1czp3LG5hdGl2ZUVsZW1lbnQ6eC5jdXJyZW50Lm5hdGl2ZUVsZW1lbnR8fHAuY3VycmVudH0pfSksby5jcmVhdGVFbGVtZW50KEduLlEse2NsYXNzTmFtZTptLHRyaWdnZXJGb2N1czp3LHByZWZpeENsczpsLHZhbHVlOnUsZGlzYWJsZWQ6bixzdHlsZTpyLHByZWZpeDpjLHN1ZmZpeDpkLGFkZG9uQWZ0ZXI6ZixhZGRvbkJlZm9yZTp2LGNsYXNzTmFtZXM6aCxjb21wb25lbnRzOnthZmZpeFdyYXBwZXI6ImRpdiIsZ3JvdXBXcmFwcGVyOiJkaXYiLHdyYXBwZXI6ImRpdiIsZ3JvdXBBZGRvbjoiZGl2In0scmVmOnh9LG8uY3JlYXRlRWxlbWVudChuYywoMCxGZS5aKSh7cHJlZml4Q2xzOmwsZGlzYWJsZWQ6bixyZWY6eSxkb21SZWY6cCxjbGFzc05hbWU6aD09bnVsbD92b2lkIDA6aC5pbnB1dH0sQykpKX0pLGFjPXJjLG9jPWFjLEpvPWkoNDc2NzMpLFNpPWkoMjAzNTMpLCRhPWkoOTM5MDApLGJvPWkoMTUwNjMpO2NvbnN0IGljPWU9Pnt2YXIgdDtjb25zdCBuPSh0PWUuaGFuZGxlVmlzaWJsZSkhPT1udWxsJiZ0IT09dm9pZCAwP3Q6ImF1dG8iLHI9ZS5jb250cm9sSGVpZ2h0U00tZS5saW5lV2lkdGgqMjtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCgwLFNpLlQpKGUpKSx7Y29udHJvbFdpZHRoOjkwLGhhbmRsZVdpZHRoOnIsaGFuZGxlRm9udFNpemU6ZS5mb250U2l6ZS8yLGhhbmRsZVZpc2libGU6bixoYW5kbGVBY3RpdmVCZzplLmNvbG9yRmlsbEFsdGVyLGhhbmRsZUJnOmUuY29sb3JCZ0NvbnRhaW5lcixmaWxsZWRIYW5kbGVCZzpuZXcgYm8udChlLmNvbG9yRmlsbFNlY29uZGFyeSkub25CYWNrZ3JvdW5kKGUuY29sb3JCZ0NvbnRhaW5lcikudG9IZXhTdHJpbmcoKSxoYW5kbGVIb3ZlckNvbG9yOmUuY29sb3JQcmltYXJ5LGhhbmRsZUJvcmRlckNvbG9yOmUuY29sb3JCb3JkZXIsaGFuZGxlT3BhY2l0eTpuPT09ITA/MTowLGhhbmRsZVZpc2libGVXaWR0aDpuPT09ITA/cjowfSl9LHpsPShlLHQpPT57bGV0e2NvbXBvbmVudENsczpuLGJvcmRlclJhZGl1c1NNOnIsYm9yZGVyUmFkaXVzTEc6YX09ZTtjb25zdCBsPXQ9PT0ibGciP2E6cjtyZXR1cm57W2AmLSR7dH1gXTp7W2Ake259LWhhbmRsZXItd3JhcGBdOntib3JkZXJTdGFydEVuZFJhZGl1czpsLGJvcmRlckVuZEVuZFJhZGl1czpsfSxbYCR7bn0taGFuZGxlci11cGBdOntib3JkZXJTdGFydEVuZFJhZGl1czpsfSxbYCR7bn0taGFuZGxlci1kb3duYF06e2JvcmRlckVuZEVuZFJhZGl1czpsfX19fSxsYz1lPT57Y29uc3R7Y29tcG9uZW50Q2xzOnQsbGluZVdpZHRoOm4sbGluZVR5cGU6cixib3JkZXJSYWRpdXM6YSxpbnB1dEZvbnRTaXplU006bCxpbnB1dEZvbnRTaXplTEc6dSxjb250cm9sSGVpZ2h0TEc6Yyxjb250cm9sSGVpZ2h0U006ZCxjb2xvckVycm9yOnYscGFkZGluZ0lubGluZVNNOmYscGFkZGluZ0Jsb2NrU006bSxwYWRkaW5nQmxvY2tMRzpoLHBhZGRpbmdJbmxpbmVMRzpDLGNvbG9yVGV4dERlc2NyaXB0aW9uOngsbW90aW9uRHVyYXRpb25NaWQ6cCxoYW5kbGVIb3ZlckNvbG9yOnksaGFuZGxlT3BhY2l0eTp3LHBhZGRpbmdJbmxpbmU6UCxwYWRkaW5nQmxvY2s6RSxoYW5kbGVCZzpNLGhhbmRsZUFjdGl2ZUJnOkQsY29sb3JUZXh0RGlzYWJsZWQ6Tixib3JkZXJSYWRpdXNTTTpULGJvcmRlclJhZGl1c0xHOlcsY29udHJvbFdpZHRoOkIsaGFuZGxlQm9yZGVyQ29sb3I6WSxmaWxsZWRIYW5kbGVCZzpILGxpbmVIZWlnaHRMRzpBLGNhbGM6Vn09ZTtyZXR1cm5be1t0XTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sKDAsTm4uV2YpKGUpKSwoMCxKby5paykoZSkpLHtkaXNwbGF5OiJpbmxpbmUtYmxvY2siLHdpZHRoOkIsbWFyZ2luOjAscGFkZGluZzowLGJvcmRlclJhZGl1czphfSksKDAsJGEucUcpKGUse1tgJHt0fS1oYW5kbGVyLXdyYXBgXTp7YmFja2dyb3VuZDpNLFtgJHt0fS1oYW5kbGVyLWRvd25gXTp7Ym9yZGVyQmxvY2tTdGFydDpgJHsoMCxoZS5iZikobil9ICR7cn0gJHtZfWB9fX0pKSwoMCwkYS5IOCkoZSx7W2Ake3R9LWhhbmRsZXItd3JhcGBdOntiYWNrZ3JvdW5kOkgsW2Ake3R9LWhhbmRsZXItZG93bmBdOntib3JkZXJCbG9ja1N0YXJ0OmAkeygwLGhlLmJmKShuKX0gJHtyfSAke1l9YH19LCImOmZvY3VzLXdpdGhpbiI6e1tgJHt0fS1oYW5kbGVyLXdyYXBgXTp7YmFja2dyb3VuZDpNfX19KSksKDAsJGEudmMpKGUse1tgJHt0fS1oYW5kbGVyLXdyYXBgXTp7YmFja2dyb3VuZDpNLFtgJHt0fS1oYW5kbGVyLWRvd25gXTp7Ym9yZGVyQmxvY2tTdGFydDpgJHsoMCxoZS5iZikobil9ICR7cn0gJHtZfWB9fX0pKSwoMCwkYS5NdSkoZSkpLHsiJi1ydGwiOntkaXJlY3Rpb246InJ0bCIsW2Ake3R9LWlucHV0YF06e2RpcmVjdGlvbjoicnRsIn19LCImLWxnIjp7cGFkZGluZzowLGZvbnRTaXplOnUsbGluZUhlaWdodDpBLGJvcmRlclJhZGl1czpXLFtgaW5wdXQke3R9LWlucHV0YF06e2hlaWdodDpWKGMpLnN1YihWKG4pLm11bCgyKSkuZXF1YWwoKSxwYWRkaW5nOmAkeygwLGhlLmJmKShoKX0gJHsoMCxoZS5iZikoQyl9YH19LCImLXNtIjp7cGFkZGluZzowLGZvbnRTaXplOmwsYm9yZGVyUmFkaXVzOlQsW2BpbnB1dCR7dH0taW5wdXRgXTp7aGVpZ2h0OlYoZCkuc3ViKFYobikubXVsKDIpKS5lcXVhbCgpLHBhZGRpbmc6YCR7KDAsaGUuYmYpKG0pfSAkeygwLGhlLmJmKShmKX1gfX0sIiYtb3V0LW9mLXJhbmdlIjp7W2Ake3R9LWlucHV0LXdyYXBgXTp7aW5wdXQ6e2NvbG9yOnZ9fX0sIiYtZ3JvdXAiOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCgwLE5uLldmKShlKSksKDAsSm8uczcpKGUpKSx7IiYtd3JhcHBlciI6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe2Rpc3BsYXk6ImlubGluZS1ibG9jayIsdGV4dEFsaWduOiJzdGFydCIsdmVydGljYWxBbGlnbjoidG9wIixbYCR7dH0tYWZmaXgtd3JhcHBlcmBdOnt3aWR0aDoiMTAwJSJ9LCImLWxnIjp7W2Ake3R9LWdyb3VwLWFkZG9uYF06e2JvcmRlclJhZGl1czpXLGZvbnRTaXplOmUuZm9udFNpemVMR319LCImLXNtIjp7W2Ake3R9LWdyb3VwLWFkZG9uYF06e2JvcmRlclJhZGl1czpUfX19LCgwLCRhLmlyKShlKSksKDAsJGEuUzUpKGUpKSx7W2AmOm5vdCgke3R9LWNvbXBhY3QtZmlyc3QtaXRlbSk6bm90KCR7dH0tY29tcGFjdC1sYXN0LWl0ZW0pJHt0fS1jb21wYWN0LWl0ZW1gXTp7W2Ake3R9LCAke3R9LWdyb3VwLWFkZG9uYF06e2JvcmRlclJhZGl1czowfX0sW2AmOm5vdCgke3R9LWNvbXBhY3QtbGFzdC1pdGVtKSR7dH0tY29tcGFjdC1maXJzdC1pdGVtYF06e1tgJHt0fSwgJHt0fS1ncm91cC1hZGRvbmBdOntib3JkZXJTdGFydEVuZFJhZGl1czowLGJvcmRlckVuZEVuZFJhZGl1czowfX0sW2AmOm5vdCgke3R9LWNvbXBhY3QtZmlyc3QtaXRlbSkke3R9LWNvbXBhY3QtbGFzdC1pdGVtYF06e1tgJHt0fSwgJHt0fS1ncm91cC1hZGRvbmBdOntib3JkZXJTdGFydFN0YXJ0UmFkaXVzOjAsYm9yZGVyRW5kU3RhcnRSYWRpdXM6MH19fSl9KSxbYCYtZGlzYWJsZWQgJHt0fS1pbnB1dGBdOntjdXJzb3I6Im5vdC1hbGxvd2VkIn0sW3RdOnsiJi1pbnB1dCI6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwoMCxObi5XZikoZSkpLHt3aWR0aDoiMTAwJSIscGFkZGluZzpgJHsoMCxoZS5iZikoRSl9ICR7KDAsaGUuYmYpKFApfWAsdGV4dEFsaWduOiJzdGFydCIsYmFja2dyb3VuZENvbG9yOiJ0cmFuc3BhcmVudCIsYm9yZGVyOjAsYm9yZGVyUmFkaXVzOmEsb3V0bGluZTowLHRyYW5zaXRpb246YGFsbCAke3B9IGxpbmVhcmAsYXBwZWFyYW5jZToidGV4dGZpZWxkIixmb250U2l6ZToiaW5oZXJpdCJ9KSwoMCxKby5ueikoZS5jb2xvclRleHRQbGFjZWhvbGRlcikpLHsnJlt0eXBlPSJudW1iZXIiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiwgJlt0eXBlPSJudW1iZXIiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbic6e21hcmdpbjowLHdlYmtpdEFwcGVhcmFuY2U6Im5vbmUiLGFwcGVhcmFuY2U6Im5vbmUifX0pfSxbYCY6aG92ZXIgJHt0fS1oYW5kbGVyLXdyYXAsICYtZm9jdXNlZCAke3R9LWhhbmRsZXItd3JhcGBdOnt3aWR0aDplLmhhbmRsZVdpZHRoLG9wYWNpdHk6MX19KX0se1t0XTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7W2Ake3R9LWhhbmRsZXItd3JhcGBdOntwb3NpdGlvbjoiYWJzb2x1dGUiLGluc2V0QmxvY2tTdGFydDowLGluc2V0SW5saW5lRW5kOjAsd2lkdGg6ZS5oYW5kbGVWaXNpYmxlV2lkdGgsb3BhY2l0eTp3LGhlaWdodDoiMTAwJSIsYm9yZGVyU3RhcnRTdGFydFJhZGl1czowLGJvcmRlclN0YXJ0RW5kUmFkaXVzOmEsYm9yZGVyRW5kRW5kUmFkaXVzOmEsYm9yZGVyRW5kU3RhcnRSYWRpdXM6MCxkaXNwbGF5OiJmbGV4IixmbGV4RGlyZWN0aW9uOiJjb2x1bW4iLGFsaWduSXRlbXM6InN0cmV0Y2giLHRyYW5zaXRpb246YGFsbCAke3B9YCxvdmVyZmxvdzoiaGlkZGVuIixbYCR7dH0taGFuZGxlcmBdOntkaXNwbGF5OiJmbGV4IixhbGlnbkl0ZW1zOiJjZW50ZXIiLGp1c3RpZnlDb250ZW50OiJjZW50ZXIiLGZsZXg6ImF1dG8iLGhlaWdodDoiNDAlIixbYAorICAgICAgICAgICAgICAke3R9LWhhbmRsZXItdXAtaW5uZXIsCisgICAgICAgICAgICAgICR7dH0taGFuZGxlci1kb3duLWlubmVyCisgICAgICAgICAgICBgXTp7bWFyZ2luSW5saW5lRW5kOjAsZm9udFNpemU6ZS5oYW5kbGVGb250U2l6ZX19fSxbYCR7dH0taGFuZGxlcmBdOntoZWlnaHQ6IjUwJSIsb3ZlcmZsb3c6ImhpZGRlbiIsY29sb3I6eCxmb250V2VpZ2h0OiJib2xkIixsaW5lSGVpZ2h0OjAsdGV4dEFsaWduOiJjZW50ZXIiLGN1cnNvcjoicG9pbnRlciIsYm9yZGVySW5saW5lU3RhcnQ6YCR7KDAsaGUuYmYpKG4pfSAke3J9ICR7WX1gLHRyYW5zaXRpb246YGFsbCAke3B9IGxpbmVhcmAsIiY6YWN0aXZlIjp7YmFja2dyb3VuZDpEfSwiJjpob3ZlciI6e2hlaWdodDoiNjAlIixbYAorICAgICAgICAgICAgICAke3R9LWhhbmRsZXItdXAtaW5uZXIsCisgICAgICAgICAgICAgICR7dH0taGFuZGxlci1kb3duLWlubmVyCisgICAgICAgICAgICBgXTp7Y29sb3I6eX19LCImLXVwLWlubmVyLCAmLWRvd24taW5uZXIiOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwoMCxObi5SbykoKSkse2NvbG9yOngsdHJhbnNpdGlvbjpgYWxsICR7cH0gbGluZWFyYCx1c2VyU2VsZWN0OiJub25lIn0pfSxbYCR7dH0taGFuZGxlci11cGBdOntib3JkZXJTdGFydEVuZFJhZGl1czphfSxbYCR7dH0taGFuZGxlci1kb3duYF06e2JvcmRlckVuZEVuZFJhZGl1czphfX0semwoZSwibGciKSksemwoZSwic20iKSkseyImLWRpc2FibGVkLCAmLXJlYWRvbmx5Ijp7W2Ake3R9LWhhbmRsZXItd3JhcGBdOntkaXNwbGF5OiJub25lIn0sW2Ake3R9LWlucHV0YF06e2NvbG9yOiJpbmhlcml0In19LFtgCisgICAgICAgICAgJHt0fS1oYW5kbGVyLXVwLWRpc2FibGVkLAorICAgICAgICAgICR7dH0taGFuZGxlci1kb3duLWRpc2FibGVkCisgICAgICAgIGBdOntjdXJzb3I6Im5vdC1hbGxvd2VkIn0sW2AKKyAgICAgICAgICAke3R9LWhhbmRsZXItdXAtZGlzYWJsZWQ6aG92ZXIgJi1oYW5kbGVyLXVwLWlubmVyLAorICAgICAgICAgICR7dH0taGFuZGxlci1kb3duLWRpc2FibGVkOmhvdmVyICYtaGFuZGxlci1kb3duLWlubmVyCisgICAgICAgIGBdOntjb2xvcjpOfX0pfV19LHNjPWU9Pntjb25zdHtjb21wb25lbnRDbHM6dCxwYWRkaW5nQmxvY2s6bixwYWRkaW5nSW5saW5lOnIsaW5wdXRBZmZpeFBhZGRpbmc6YSxjb250cm9sV2lkdGg6bCxib3JkZXJSYWRpdXNMRzp1LGJvcmRlclJhZGl1c1NNOmMscGFkZGluZ0lubGluZUxHOmQscGFkZGluZ0lubGluZVNNOnYscGFkZGluZ0Jsb2NrTEc6ZixwYWRkaW5nQmxvY2tTTTptLG1vdGlvbkR1cmF0aW9uTWlkOmh9PWU7cmV0dXJue1tgJHt0fS1hZmZpeC13cmFwcGVyYF06T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHtbYGlucHV0JHt0fS1pbnB1dGBdOntwYWRkaW5nOmAkeygwLGhlLmJmKShuKX0gMGB9fSwoMCxKby5paykoZSkpLHtwb3NpdGlvbjoicmVsYXRpdmUiLGRpc3BsYXk6ImlubGluZS1mbGV4IixhbGlnbkl0ZW1zOiJjZW50ZXIiLHdpZHRoOmwscGFkZGluZzowLHBhZGRpbmdJbmxpbmVTdGFydDpyLCImLWxnIjp7Ym9yZGVyUmFkaXVzOnUscGFkZGluZ0lubGluZVN0YXJ0OmQsW2BpbnB1dCR7dH0taW5wdXRgXTp7cGFkZGluZzpgJHsoMCxoZS5iZikoZil9IDBgfX0sIiYtc20iOntib3JkZXJSYWRpdXM6YyxwYWRkaW5nSW5saW5lU3RhcnQ6dixbYGlucHV0JHt0fS1pbnB1dGBdOntwYWRkaW5nOmAkeygwLGhlLmJmKShtKX0gMGB9fSxbYCY6bm90KCR7dH0tZGlzYWJsZWQpOmhvdmVyYF06e3pJbmRleDoxfSwiJi1mb2N1c2VkLCAmOmZvY3VzIjp7ekluZGV4OjF9LFtgJi1kaXNhYmxlZCA+ICR7dH0tZGlzYWJsZWRgXTp7YmFja2dyb3VuZDoidHJhbnNwYXJlbnQifSxbYD4gZGl2JHt0fWBdOnt3aWR0aDoiMTAwJSIsYm9yZGVyOiJub25lIixvdXRsaW5lOiJub25lIixbYCYke3R9LWZvY3VzZWRgXTp7Ym94U2hhZG93OiJub25lICFpbXBvcnRhbnQifX0sIiY6OmJlZm9yZSI6e2Rpc3BsYXk6ImlubGluZS1ibG9jayIsd2lkdGg6MCx2aXNpYmlsaXR5OiJoaWRkZW4iLGNvbnRlbnQ6JyJcXGEwIid9LFtgJHt0fS1oYW5kbGVyLXdyYXBgXTp7ekluZGV4OjJ9LFt0XTp7cG9zaXRpb246InN0YXRpYyIsY29sb3I6ImluaGVyaXQiLCImLXByZWZpeCwgJi1zdWZmaXgiOntkaXNwbGF5OiJmbGV4IixmbGV4OiJub25lIixhbGlnbkl0ZW1zOiJjZW50ZXIiLHBvaW50ZXJFdmVudHM6Im5vbmUifSwiJi1wcmVmaXgiOnttYXJnaW5JbmxpbmVFbmQ6YX0sIiYtc3VmZml4Ijp7aW5zZXRCbG9ja1N0YXJ0OjAsaW5zZXRJbmxpbmVFbmQ6MCxoZWlnaHQ6IjEwMCUiLG1hcmdpbklubGluZUVuZDpyLG1hcmdpbklubGluZVN0YXJ0OmEsdHJhbnNpdGlvbjpgbWFyZ2luICR7aH1gfX0sW2AmOmhvdmVyICR7dH0taGFuZGxlci13cmFwLCAmLWZvY3VzZWQgJHt0fS1oYW5kbGVyLXdyYXBgXTp7d2lkdGg6ZS5oYW5kbGVXaWR0aCxvcGFjaXR5OjF9LFtgJjpub3QoJHt0fS1hZmZpeC13cmFwcGVyLXdpdGhvdXQtY29udHJvbHMpOmhvdmVyICR7dH0tc3VmZml4YF06e21hcmdpbklubGluZUVuZDplLmNhbGMoZS5oYW5kbGVXaWR0aCkuYWRkKHIpLmVxdWFsKCl9fSl9fTt2YXIgdWM9KDAsbG4uSSQpKCJJbnB1dE51bWJlciIsZT0+e2NvbnN0IHQ9KDAsQnIuSVgpKGUsKDAsU2kuZSkoZSkpO3JldHVybltsYyh0KSxzYyh0KSwoMCxHdC5jKSh0KV19LGljLHt1bml0bGVzczp7aGFuZGxlT3BhY2l0eTohMH19KSxjYz1mdW5jdGlvbihlLHQpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHIpJiZ0LmluZGV4T2Yocik8MCYmKG5bcl09ZVtyXSk7aWYoZSE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBhPTAscj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2E8ci5sZW5ndGg7YSsrKXQuaW5kZXhPZihyW2FdKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxyW2FdKSYmKG5bclthXV09ZVtyW2FdXSk7cmV0dXJuIG59O2NvbnN0IEtsPW8uZm9yd2FyZFJlZigoZSx0KT0+e2NvbnN0e2dldFByZWZpeENsczpuLGRpcmVjdGlvbjpyfT1vLnVzZUNvbnRleHQob24uRV8pLGE9by51c2VSZWYobnVsbCk7by51c2VJbXBlcmF0aXZlSGFuZGxlKHQsKCk9PmEuY3VycmVudCk7Y29uc3R7Y2xhc3NOYW1lOmwscm9vdENsYXNzTmFtZTp1LHNpemU6YyxkaXNhYmxlZDpkLHByZWZpeENsczp2LGFkZG9uQmVmb3JlOmYsYWRkb25BZnRlcjptLHByZWZpeDpoLHN1ZmZpeDpDLGJvcmRlcmVkOngscmVhZE9ubHk6cCxzdGF0dXM6eSxjb250cm9sczp3LHZhcmlhbnQ6UH09ZSxFPWNjKGUsWyJjbGFzc05hbWUiLCJyb290Q2xhc3NOYW1lIiwic2l6ZSIsImRpc2FibGVkIiwicHJlZml4Q2xzIiwiYWRkb25CZWZvcmUiLCJhZGRvbkFmdGVyIiwicHJlZml4Iiwic3VmZml4IiwiYm9yZGVyZWQiLCJyZWFkT25seSIsInN0YXR1cyIsImNvbnRyb2xzIiwidmFyaWFudCJdKSxNPW4oImlucHV0LW51bWJlciIsdiksRD0oMCxPbi5aKShNKSxbTixULFddPXVjKE0sRCkse2NvbXBhY3RTaXplOkIsY29tcGFjdEl0ZW1DbGFzc25hbWVzOll9PSgwLGplLnJpKShNLHIpO2xldCBIPW8uY3JlYXRlRWxlbWVudChHaS5aLHtjbGFzc05hbWU6YCR7TX0taGFuZGxlci11cC1pbm5lcmB9KSxBPW8uY3JlYXRlRWxlbWVudChYaS5aLHtjbGFzc05hbWU6YCR7TX0taGFuZGxlci1kb3duLWlubmVyYH0pO2NvbnN0IFY9dHlwZW9mIHc9PSJib29sZWFuIj93OnZvaWQgMDt0eXBlb2Ygdz09Im9iamVjdCImJihIPXR5cGVvZiB3LnVwSWNvbj09InVuZGVmaW5lZCI/SDpvLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6YCR7TX0taGFuZGxlci11cC1pbm5lcmB9LHcudXBJY29uKSxBPXR5cGVvZiB3LmRvd25JY29uPT0idW5kZWZpbmVkIj9BOm8uY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpgJHtNfS1oYW5kbGVyLWRvd24taW5uZXJgfSx3LmRvd25JY29uKSk7Y29uc3R7aGFzRmVlZGJhY2s6eixzdGF0dXM6WCxpc0Zvcm1JdGVtSW5wdXQ6cSxmZWVkYmFja0ljb246UX09by51c2VDb250ZXh0KFJyLmFNKSxhZT0oMCxrbi5GKShYLHkpLGVlPSgwLENuLlopKFBlPT57dmFyIGdlO3JldHVybihnZT1jIT1udWxsP2M6QikhPT1udWxsJiZnZSE9PXZvaWQgMD9nZTpQZX0pLHJlPW8udXNlQ29udGV4dChjbi5aKSxzZT1kIT1udWxsP2Q6cmUsW0osaWVdPSgwLGRyLlopKCJpbnB1dE51bWJlciIsUCx4KSxjZT16JiZvLmNyZWF0ZUVsZW1lbnQoby5GcmFnbWVudCxudWxsLFEpLHhlPW9lKCkoe1tgJHtNfS1sZ2BdOmVlPT09ImxhcmdlIixbYCR7TX0tc21gXTplZT09PSJzbWFsbCIsW2Ake019LXJ0bGBdOnI9PT0icnRsIixbYCR7TX0taW4tZm9ybS1pdGVtYF06cX0sVCksdWU9YCR7TX0tZ3JvdXBgLHllPW8uY3JlYXRlRWxlbWVudChvYyxPYmplY3QuYXNzaWduKHtyZWY6YSxkaXNhYmxlZDpzZSxjbGFzc05hbWU6b2UoKShXLEQsbCx1LFkpLHVwSGFuZGxlcjpILGRvd25IYW5kbGVyOkEscHJlZml4Q2xzOk0scmVhZE9ubHk6cCxjb250cm9sczpWLHByZWZpeDpoLHN1ZmZpeDpjZXx8QyxhZGRvbkJlZm9yZTpmJiZvLmNyZWF0ZUVsZW1lbnQoWHIuWix7Zm9ybTohMCxzcGFjZTohMH0sZiksYWRkb25BZnRlcjptJiZvLmNyZWF0ZUVsZW1lbnQoWHIuWix7Zm9ybTohMCxzcGFjZTohMH0sbSksY2xhc3NOYW1lczp7aW5wdXQ6eGUsdmFyaWFudDpvZSgpKHtbYCR7TX0tJHtKfWBdOmllfSwoMCxrbi5aKShNLGFlLHopKSxhZmZpeFdyYXBwZXI6b2UoKSh7W2Ake019LWFmZml4LXdyYXBwZXItc21gXTplZT09PSJzbWFsbCIsW2Ake019LWFmZml4LXdyYXBwZXItbGdgXTplZT09PSJsYXJnZSIsW2Ake019LWFmZml4LXdyYXBwZXItcnRsYF06cj09PSJydGwiLFtgJHtNfS1hZmZpeC13cmFwcGVyLXdpdGhvdXQtY29udHJvbHNgXTp3PT09ITF9LFQpLHdyYXBwZXI6b2UoKSh7W2Ake3VlfS1ydGxgXTpyPT09InJ0bCJ9LFQpLGdyb3VwV3JhcHBlcjpvZSgpKHtbYCR7TX0tZ3JvdXAtd3JhcHBlci1zbWBdOmVlPT09InNtYWxsIixbYCR7TX0tZ3JvdXAtd3JhcHBlci1sZ2BdOmVlPT09ImxhcmdlIixbYCR7TX0tZ3JvdXAtd3JhcHBlci1ydGxgXTpyPT09InJ0bCIsW2Ake019LWdyb3VwLXdyYXBwZXItJHtKfWBdOmllfSwoMCxrbi5aKShgJHtNfS1ncm91cC13cmFwcGVyYCxhZSx6KSxUKX19LEUpKTtyZXR1cm4gTih5ZSl9KSxZbD1LbCxkYz1lPT5vLmNyZWF0ZUVsZW1lbnQoYmUuWlAse3RoZW1lOntjb21wb25lbnRzOntJbnB1dE51bWJlcjp7aGFuZGxlVmlzaWJsZTohMH19fX0sby5jcmVhdGVFbGVtZW50KEtsLE9iamVjdC5hc3NpZ24oe30sZSkpKTtZbC5fSW50ZXJuYWxQYW5lbERvTm90VXNlT3JZb3VXaWxsQmVGaXJlZD1kYzt2YXIgbm89WWwseW89ZT0+e2xldHtwcmVmaXhDbHM6dCxtaW46bj0wLG1heDpyPTEwMCx2YWx1ZTphLG9uQ2hhbmdlOmwsY2xhc3NOYW1lOnUsZm9ybWF0dGVyOmN9PWU7Y29uc3QgZD1gJHt0fS1zdGVwcGVyc2AsW3YsZl09KDAsby51c2VTdGF0ZSkoYSk7cmV0dXJuKDAsby51c2VFZmZlY3QpKCgpPT57TnVtYmVyLmlzTmFOKGEpfHxmKGEpfSxbYV0pLG8uY3JlYXRlRWxlbWVudChubyx7Y2xhc3NOYW1lOm9lKCkoZCx1KSxtaW46bixtYXg6cix2YWx1ZTp2LGZvcm1hdHRlcjpjLHNpemU6InNtYWxsIixvbkNoYW5nZTptPT57YXx8ZihtfHwwKSxsPT1udWxsfHxsKG0pfX0pfSxmYz1lPT57bGV0e3ByZWZpeENsczp0LHZhbHVlOm4sb25DaGFuZ2U6cn09ZTtjb25zdCBhPWAke3R9LWFscGhhLWlucHV0YCxbbCx1XT0oMCxvLnVzZVN0YXRlKSgoMCxJbi52Qykobnx8IiMwMDAiKSk7KDAsby51c2VFZmZlY3QpKCgpPT57biYmdShuKX0sW25dKTtjb25zdCBjPWQ9Pntjb25zdCB2PWwudG9Ic2IoKTt2LmE9KGR8fDApLzEwMDtjb25zdCBmPSgwLEluLnZDKSh2KTtufHx1KGYpLHI9PW51bGx8fHIoZil9O3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoeW8se3ZhbHVlOigwLEluLnVaKShsKSxwcmVmaXhDbHM6dCxmb3JtYXR0ZXI6ZD0+YCR7ZH0lYCxjbGFzc05hbWU6YSxvbkNoYW5nZTpjfSl9LHZjPWkoODI1ODYpO2NvbnN0IG1jPS8oXiNbXGRhLWZdezZ9JCl8KF4jW1xkYS1mXXs4fSQpL2ksZ2M9ZT0+bWMudGVzdChgIyR7ZX1gKTt2YXIgaGM9ZT0+e2xldHtwcmVmaXhDbHM6dCx2YWx1ZTpuLG9uQ2hhbmdlOnJ9PWU7Y29uc3QgYT1gJHt0fS1oZXgtaW5wdXRgLFtsLHVdPSgwLG8udXNlU3RhdGUpKCgpPT5uPygwLHZyLk90KShuLnRvSGV4U3RyaW5nKCkpOnZvaWQgMCk7KDAsby51c2VFZmZlY3QpKCgpPT57biYmdSgoMCx2ci5PdCkobi50b0hleFN0cmluZygpKSl9LFtuXSk7Y29uc3QgYz1kPT57Y29uc3Qgdj1kLnRhcmdldC52YWx1ZTt1KCgwLHZyLk90KSh2KSksZ2MoKDAsdnIuT3QpKHYsITApKSYmKHI9PW51bGx8fHIoKDAsSW4udkMpKHYpKSl9O3JldHVybiBvLmNyZWF0ZUVsZW1lbnQodmMuWix7Y2xhc3NOYW1lOmEsdmFsdWU6bCxwcmVmaXg6IiMiLG9uQ2hhbmdlOmMsc2l6ZToic21hbGwifSl9LHBjPWU9PntsZXR7cHJlZml4Q2xzOnQsdmFsdWU6bixvbkNoYW5nZTpyfT1lO2NvbnN0IGE9YCR7dH0taHNiLWlucHV0YCxbbCx1XT0oMCxvLnVzZVN0YXRlKSgoMCxJbi52Qykobnx8IiMwMDAiKSk7KDAsby51c2VFZmZlY3QpKCgpPT57biYmdShuKX0sW25dKTtjb25zdCBjPShkLHYpPT57Y29uc3QgZj1sLnRvSHNiKCk7Zlt2XT12PT09ImgiP2Q6KGR8fDApLzEwMDtjb25zdCBtPSgwLEluLnZDKShmKTtufHx1KG0pLHI9PW51bGx8fHIobSl9O3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTphfSxvLmNyZWF0ZUVsZW1lbnQoeW8se21heDozNjAsbWluOjAsdmFsdWU6TnVtYmVyKGwudG9Ic2IoKS5oKSxwcmVmaXhDbHM6dCxjbGFzc05hbWU6YSxmb3JtYXR0ZXI6ZD0+KDAsSW4ubHgpKGR8fDApLnRvU3RyaW5nKCksb25DaGFuZ2U6ZD0+YyhOdW1iZXIoZCksImgiKX0pLG8uY3JlYXRlRWxlbWVudCh5byx7bWF4OjEwMCxtaW46MCx2YWx1ZTpOdW1iZXIobC50b0hzYigpLnMpKjEwMCxwcmVmaXhDbHM6dCxjbGFzc05hbWU6YSxmb3JtYXR0ZXI6ZD0+YCR7KDAsSW4ubHgpKGR8fDApfSVgLG9uQ2hhbmdlOmQ9PmMoTnVtYmVyKGQpLCJzIil9KSxvLmNyZWF0ZUVsZW1lbnQoeW8se21heDoxMDAsbWluOjAsdmFsdWU6TnVtYmVyKGwudG9Ic2IoKS5iKSoxMDAscHJlZml4Q2xzOnQsY2xhc3NOYW1lOmEsZm9ybWF0dGVyOmQ9PmAkeygwLEluLmx4KShkfHwwKX0lYCxvbkNoYW5nZTpkPT5jKE51bWJlcihkKSwiYiIpfSkpfSxiYz1lPT57bGV0e3ByZWZpeENsczp0LHZhbHVlOm4sb25DaGFuZ2U6cn09ZTtjb25zdCBhPWAke3R9LXJnYi1pbnB1dGAsW2wsdV09KDAsby51c2VTdGF0ZSkoKDAsSW4udkMpKG58fCIjMDAwIikpOygwLG8udXNlRWZmZWN0KSgoKT0+e24mJnUobil9LFtuXSk7Y29uc3QgYz0oZCx2KT0+e2NvbnN0IGY9bC50b1JnYigpO2Zbdl09ZHx8MDtjb25zdCBtPSgwLEluLnZDKShmKTtufHx1KG0pLHI9PW51bGx8fHIobSl9O3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTphfSxvLmNyZWF0ZUVsZW1lbnQoeW8se21heDoyNTUsbWluOjAsdmFsdWU6TnVtYmVyKGwudG9SZ2IoKS5yKSxwcmVmaXhDbHM6dCxjbGFzc05hbWU6YSxvbkNoYW5nZTpkPT5jKE51bWJlcihkKSwiciIpfSksby5jcmVhdGVFbGVtZW50KHlvLHttYXg6MjU1LG1pbjowLHZhbHVlOk51bWJlcihsLnRvUmdiKCkuZykscHJlZml4Q2xzOnQsY2xhc3NOYW1lOmEsb25DaGFuZ2U6ZD0+YyhOdW1iZXIoZCksImciKX0pLG8uY3JlYXRlRWxlbWVudCh5byx7bWF4OjI1NSxtaW46MCx2YWx1ZTpOdW1iZXIobC50b1JnYigpLmIpLHByZWZpeENsczp0LGNsYXNzTmFtZTphLG9uQ2hhbmdlOmQ9PmMoTnVtYmVyKGQpLCJiIil9KSl9O2NvbnN0IHljPVtWYSx4aSxtb10ubWFwKGU9Pih7dmFsdWU6ZSxsYWJlbDplLnRvVXBwZXJDYXNlKCl9KSk7dmFyIENjPWU9Pntjb25zdHtwcmVmaXhDbHM6dCxmb3JtYXQ6bix2YWx1ZTpyLGRpc2FibGVkQWxwaGE6YSxvbkZvcm1hdENoYW5nZTpsLG9uQ2hhbmdlOnUsZGlzYWJsZWRGb3JtYXQ6Y309ZSxbZCx2XT0oMCxydC5aKShWYSx7dmFsdWU6bixvbkNoYW5nZTpsfSksZj1gJHt0fS1pbnB1dGAsbT1DPT57dihDKX0saD0oMCxvLnVzZU1lbW8pKCgpPT57Y29uc3QgQz17dmFsdWU6cixwcmVmaXhDbHM6dCxvbkNoYW5nZTp1fTtzd2l0Y2goZCl7Y2FzZSB4aTpyZXR1cm4gby5jcmVhdGVFbGVtZW50KHBjLE9iamVjdC5hc3NpZ24oe30sQykpO2Nhc2UgbW86cmV0dXJuIG8uY3JlYXRlRWxlbWVudChiYyxPYmplY3QuYXNzaWduKHt9LEMpKTtkZWZhdWx0OnJldHVybiBvLmNyZWF0ZUVsZW1lbnQoaGMsT2JqZWN0LmFzc2lnbih7fSxDKSl9fSxbZCx0LHIsdV0pO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpgJHtmfS1jb250YWluZXJgfSwhYyYmby5jcmVhdGVFbGVtZW50KENpLlose3ZhbHVlOmQsdmFyaWFudDoiYm9yZGVybGVzcyIsZ2V0UG9wdXBDb250YWluZXI6Qz0+Qyxwb3B1cE1hdGNoU2VsZWN0V2lkdGg6NjgscGxhY2VtZW50OiJib3R0b21SaWdodCIsb25DaGFuZ2U6bSxjbGFzc05hbWU6YCR7dH0tZm9ybWF0LXNlbGVjdGAsc2l6ZToic21hbGwiLG9wdGlvbnM6eWN9KSxvLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpmfSxoKSwhYSYmby5jcmVhdGVFbGVtZW50KGZjLHtwcmVmaXhDbHM6dCx2YWx1ZTpyLG9uQ2hhbmdlOnV9KSl9LHhjPWkoOTE4ODEpLFNjPWkoNzM5MzUpO2Z1bmN0aW9uIFFpKGUsdCxuKXtyZXR1cm4oZS10KS8obi10KX1mdW5jdGlvbiBKaShlLHQsbixyKXt2YXIgYT1RaSh0LG4sciksbD17fTtzd2l0Y2goZSl7Y2FzZSJydGwiOmwucmlnaHQ9IiIuY29uY2F0KGEqMTAwLCIlIiksbC50cmFuc2Zvcm09InRyYW5zbGF0ZVgoNTAlKSI7YnJlYWs7Y2FzZSJidHQiOmwuYm90dG9tPSIiLmNvbmNhdChhKjEwMCwiJSIpLGwudHJhbnNmb3JtPSJ0cmFuc2xhdGVZKDUwJSkiO2JyZWFrO2Nhc2UidHRiIjpsLnRvcD0iIi5jb25jYXQoYSoxMDAsIiUiKSxsLnRyYW5zZm9ybT0idHJhbnNsYXRlWSgtNTAlKSI7YnJlYWs7ZGVmYXVsdDpsLmxlZnQ9IiIuY29uY2F0KGEqMTAwLCIlIiksbC50cmFuc2Zvcm09InRyYW5zbGF0ZVgoLTUwJSkiO2JyZWFrfXJldHVybiBsfWZ1bmN0aW9uIENvKGUsdCl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSk/ZVt0XTplfXZhciBQYz1vLmNyZWF0ZUNvbnRleHQoe21pbjowLG1heDowLGRpcmVjdGlvbjoibHRyIixzdGVwOjEsaW5jbHVkZWRTdGFydDowLGluY2x1ZGVkRW5kOjAsdGFiSW5kZXg6MCxrZXlib2FyZDohMCxzdHlsZXM6e30sY2xhc3NOYW1lczp7fX0pLHhvPVBjLFVsPW8uY3JlYXRlQ29udGV4dCh7fSksd2M9WyJwcmVmaXhDbHMiLCJ2YWx1ZSIsInZhbHVlSW5kZXgiLCJvblN0YXJ0TW92ZSIsIm9uRGVsZXRlIiwic3R5bGUiLCJyZW5kZXIiLCJkcmFnZ2luZyIsImRyYWdnaW5nRGVsZXRlIiwib25PZmZzZXRDaGFuZ2UiLCJvbkNoYW5nZUNvbXBsZXRlIiwib25Gb2N1cyIsIm9uTW91c2VFbnRlciJdLE9jPW8uZm9yd2FyZFJlZihmdW5jdGlvbihlLHQpe3ZhciBuPWUucHJlZml4Q2xzLHI9ZS52YWx1ZSxhPWUudmFsdWVJbmRleCxsPWUub25TdGFydE1vdmUsdT1lLm9uRGVsZXRlLGM9ZS5zdHlsZSxkPWUucmVuZGVyLHY9ZS5kcmFnZ2luZyxmPWUuZHJhZ2dpbmdEZWxldGUsbT1lLm9uT2Zmc2V0Q2hhbmdlLGg9ZS5vbkNoYW5nZUNvbXBsZXRlLEM9ZS5vbkZvY3VzLHg9ZS5vbk1vdXNlRW50ZXIscD0oMCxnLlopKGUsd2MpLHk9by51c2VDb250ZXh0KHhvKSx3PXkubWluLFA9eS5tYXgsRT15LmRpcmVjdGlvbixNPXkuZGlzYWJsZWQsRD15LmtleWJvYXJkLE49eS5yYW5nZSxUPXkudGFiSW5kZXgsVz15LmFyaWFMYWJlbEZvckhhbmRsZSxCPXkuYXJpYUxhYmVsbGVkQnlGb3JIYW5kbGUsWT15LmFyaWFSZXF1aXJlZCxIPXkuYXJpYVZhbHVlVGV4dEZvcm1hdHRlckZvckhhbmRsZSxBPXkuc3R5bGVzLFY9eS5jbGFzc05hbWVzLHo9IiIuY29uY2F0KG4sIi1oYW5kbGUiKSxYPWZ1bmN0aW9uKHhlKXtNfHxsKHhlLGEpfSxxPWZ1bmN0aW9uKHhlKXtDPT1udWxsfHxDKHhlLGEpfSxRPWZ1bmN0aW9uKHhlKXt4KHhlLGEpfSxhZT1mdW5jdGlvbih4ZSl7aWYoIU0mJkQpe3ZhciB1ZT1udWxsO3N3aXRjaCh4ZS53aGljaHx8eGUua2V5Q29kZSl7Y2FzZSBUdC5aLkxFRlQ6dWU9RT09PSJsdHIifHxFPT09ImJ0dCI/LTE6MTticmVhaztjYXNlIFR0LlouUklHSFQ6dWU9RT09PSJsdHIifHxFPT09ImJ0dCI/MTotMTticmVhaztjYXNlIFR0LlouVVA6dWU9RSE9PSJ0dGIiPzE6LTE7YnJlYWs7Y2FzZSBUdC5aLkRPV046dWU9RSE9PSJ0dGIiPy0xOjE7YnJlYWs7Y2FzZSBUdC5aLkhPTUU6dWU9Im1pbiI7YnJlYWs7Y2FzZSBUdC5aLkVORDp1ZT0ibWF4IjticmVhaztjYXNlIFR0LlouUEFHRV9VUDp1ZT0yO2JyZWFrO2Nhc2UgVHQuWi5QQUdFX0RPV046dWU9LTI7YnJlYWs7Y2FzZSBUdC5aLkJBQ0tTUEFDRTpjYXNlIFR0LlouREVMRVRFOnUoYSk7YnJlYWt9dWUhPT1udWxsJiYoeGUucHJldmVudERlZmF1bHQoKSxtKHVlLGEpKX19LGVlPWZ1bmN0aW9uKHhlKXtzd2l0Y2goeGUud2hpY2h8fHhlLmtleUNvZGUpe2Nhc2UgVHQuWi5MRUZUOmNhc2UgVHQuWi5SSUdIVDpjYXNlIFR0LlouVVA6Y2FzZSBUdC5aLkRPV046Y2FzZSBUdC5aLkhPTUU6Y2FzZSBUdC5aLkVORDpjYXNlIFR0LlouUEFHRV9VUDpjYXNlIFR0LlouUEFHRV9ET1dOOmg9PW51bGx8fGgoKTticmVha319LHJlPUppKEUscix3LFApLHNlPXt9O2lmKGEhPT1udWxsKXt2YXIgSjtzZT17dGFiSW5kZXg6TT9udWxsOkNvKFQsYSkscm9sZToic2xpZGVyIiwiYXJpYS12YWx1ZW1pbiI6dywiYXJpYS12YWx1ZW1heCI6UCwiYXJpYS12YWx1ZW5vdyI6ciwiYXJpYS1kaXNhYmxlZCI6TSwiYXJpYS1sYWJlbCI6Q28oVyxhKSwiYXJpYS1sYWJlbGxlZGJ5IjpDbyhCLGEpLCJhcmlhLXJlcXVpcmVkIjpDbyhZLGEpLCJhcmlhLXZhbHVldGV4dCI6KEo9Q28oSCxhKSk9PT1udWxsfHxKPT09dm9pZCAwP3ZvaWQgMDpKKHIpLCJhcmlhLW9yaWVudGF0aW9uIjpFPT09Imx0ciJ8fEU9PT0icnRsIj8iaG9yaXpvbnRhbCI6InZlcnRpY2FsIixvbk1vdXNlRG93bjpYLG9uVG91Y2hTdGFydDpYLG9uRm9jdXM6cSxvbk1vdXNlRW50ZXI6USxvbktleURvd246YWUsb25LZXlVcDplZX19dmFyIGllPW8uY3JlYXRlRWxlbWVudCgiZGl2IiwoMCxGZS5aKSh7cmVmOnQsY2xhc3NOYW1lOm9lKCkoeiwoMCxHLlopKCgwLEcuWikoKDAsRy5aKSh7fSwiIi5jb25jYXQoeiwiLSIpLmNvbmNhdChhKzEpLGEhPT1udWxsJiZOKSwiIi5jb25jYXQoeiwiLWRyYWdnaW5nIiksdiksIiIuY29uY2F0KHosIi1kcmFnZ2luZy1kZWxldGUiKSxmKSxWLmhhbmRsZSksc3R5bGU6KDAscy5aKSgoMCxzLlopKCgwLHMuWikoe30scmUpLGMpLEEuaGFuZGxlKX0sc2UscCkpO3JldHVybiBkJiYoaWU9ZChpZSx7aW5kZXg6YSxwcmVmaXhDbHM6bix2YWx1ZTpyLGRyYWdnaW5nOnYsZHJhZ2dpbmdEZWxldGU6Zn0pKSxpZX0pLFhsPU9jLEVjPVsicHJlZml4Q2xzIiwic3R5bGUiLCJvblN0YXJ0TW92ZSIsIm9uT2Zmc2V0Q2hhbmdlIiwidmFsdWVzIiwiaGFuZGxlUmVuZGVyIiwiYWN0aXZlSGFuZGxlUmVuZGVyIiwiZHJhZ2dpbmdJbmRleCIsImRyYWdnaW5nRGVsZXRlIiwib25Gb2N1cyJdLEljPW8uZm9yd2FyZFJlZihmdW5jdGlvbihlLHQpe3ZhciBuPWUucHJlZml4Q2xzLHI9ZS5zdHlsZSxhPWUub25TdGFydE1vdmUsbD1lLm9uT2Zmc2V0Q2hhbmdlLHU9ZS52YWx1ZXMsYz1lLmhhbmRsZVJlbmRlcixkPWUuYWN0aXZlSGFuZGxlUmVuZGVyLHY9ZS5kcmFnZ2luZ0luZGV4LGY9ZS5kcmFnZ2luZ0RlbGV0ZSxtPWUub25Gb2N1cyxoPSgwLGcuWikoZSxFYyksQz1vLnVzZVJlZih7fSkseD1vLnVzZVN0YXRlKCExKSxwPSgwLGouWikoeCwyKSx5PXBbMF0sdz1wWzFdLFA9by51c2VTdGF0ZSgtMSksRT0oMCxqLlopKFAsMiksTT1FWzBdLEQ9RVsxXSxOPWZ1bmN0aW9uKEgpe0QoSCksdyghMCl9LFQ9ZnVuY3Rpb24oSCxBKXtOKEEpLG09PW51bGx8fG0oSCl9LFc9ZnVuY3Rpb24oSCxBKXtOKEEpfTtvLnVzZUltcGVyYXRpdmVIYW5kbGUodCxmdW5jdGlvbigpe3JldHVybntmb2N1czpmdW5jdGlvbihIKXt2YXIgQTsoQT1DLmN1cnJlbnRbSF0pPT09bnVsbHx8QT09PXZvaWQgMHx8QS5mb2N1cygpfSxoaWRlSGVscDpmdW5jdGlvbigpeygwLFNjLmZsdXNoU3luYykoZnVuY3Rpb24oKXt3KCExKX0pfX19KTt2YXIgQj0oMCxzLlopKHtwcmVmaXhDbHM6bixvblN0YXJ0TW92ZTphLG9uT2Zmc2V0Q2hhbmdlOmwscmVuZGVyOmMsb25Gb2N1czpULG9uTW91c2VFbnRlcjpXfSxoKTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KG8uRnJhZ21lbnQsbnVsbCx1Lm1hcChmdW5jdGlvbihZLEgpe3ZhciBBPXY9PT1IO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoWGwsKDAsRmUuWikoe3JlZjpmdW5jdGlvbih6KXt6P0MuY3VycmVudFtIXT16OmRlbGV0ZSBDLmN1cnJlbnRbSF19LGRyYWdnaW5nOkEsZHJhZ2dpbmdEZWxldGU6QSYmZixzdHlsZTpDbyhyLEgpLGtleTpILHZhbHVlOlksdmFsdWVJbmRleDpIfSxCKSl9KSxkJiZ5JiZvLmNyZWF0ZUVsZW1lbnQoWGwsKDAsRmUuWikoe2tleToiYTExeSJ9LEIse3ZhbHVlOnVbTV0sdmFsdWVJbmRleDpudWxsLGRyYWdnaW5nOnYhPT0tMSxkcmFnZ2luZ0RlbGV0ZTpmLHJlbmRlcjpkLHN0eWxlOntwb2ludGVyRXZlbnRzOiJub25lIn0sdGFiSW5kZXg6bnVsbCwiYXJpYS1oaWRkZW4iOiEwfSkpKX0pLCRjPUljLE1jPWZ1bmN0aW9uKHQpe3ZhciBuPXQucHJlZml4Q2xzLHI9dC5zdHlsZSxhPXQuY2hpbGRyZW4sbD10LnZhbHVlLHU9dC5vbkNsaWNrLGM9by51c2VDb250ZXh0KHhvKSxkPWMubWluLHY9Yy5tYXgsZj1jLmRpcmVjdGlvbixtPWMuaW5jbHVkZWRTdGFydCxoPWMuaW5jbHVkZWRFbmQsQz1jLmluY2x1ZGVkLHg9IiIuY29uY2F0KG4sIi10ZXh0IikscD1KaShmLGwsZCx2KTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOm9lKCkoeCwoMCxHLlopKHt9LCIiLmNvbmNhdCh4LCItYWN0aXZlIiksQyYmbTw9bCYmbDw9aCkpLHN0eWxlOigwLHMuWikoKDAscy5aKSh7fSxwKSxyKSxvbk1vdXNlRG93bjpmdW5jdGlvbih3KXt3LnN0b3BQcm9wYWdhdGlvbigpfSxvbkNsaWNrOmZ1bmN0aW9uKCl7dShsKX19LGEpfSxaYz1NYyxSYz1mdW5jdGlvbih0KXt2YXIgbj10LnByZWZpeENscyxyPXQubWFya3MsYT10Lm9uQ2xpY2ssbD0iIi5jb25jYXQobiwiLW1hcmsiKTtyZXR1cm4gci5sZW5ndGg/by5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bH0sci5tYXAoZnVuY3Rpb24odSl7dmFyIGM9dS52YWx1ZSxkPXUuc3R5bGUsdj11LmxhYmVsO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoWmMse2tleTpjLHByZWZpeENsczpsLHN0eWxlOmQsdmFsdWU6YyxvbkNsaWNrOmF9LHYpfSkpOm51bGx9LERjPVJjLE5jPWZ1bmN0aW9uKHQpe3ZhciBuPXQucHJlZml4Q2xzLHI9dC52YWx1ZSxhPXQuc3R5bGUsbD10LmFjdGl2ZVN0eWxlLHU9by51c2VDb250ZXh0KHhvKSxjPXUubWluLGQ9dS5tYXgsdj11LmRpcmVjdGlvbixmPXUuaW5jbHVkZWQsbT11LmluY2x1ZGVkU3RhcnQsaD11LmluY2x1ZGVkRW5kLEM9IiIuY29uY2F0KG4sIi1kb3QiKSx4PWYmJm08PXImJnI8PWgscD0oMCxzLlopKCgwLHMuWikoe30sSmkodixyLGMsZCkpLHR5cGVvZiBhPT0iZnVuY3Rpb24iP2Eocik6YSk7cmV0dXJuIHgmJihwPSgwLHMuWikoKDAscy5aKSh7fSxwKSx0eXBlb2YgbD09ImZ1bmN0aW9uIj9sKHIpOmwpKSxvLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6b2UoKShDLCgwLEcuWikoe30sIiIuY29uY2F0KEMsIi1hY3RpdmUiKSx4KSksc3R5bGU6cH0pfSxGYz1OYyxUYz1mdW5jdGlvbih0KXt2YXIgbj10LnByZWZpeENscyxyPXQubWFya3MsYT10LmRvdHMsbD10LnN0eWxlLHU9dC5hY3RpdmVTdHlsZSxjPW8udXNlQ29udGV4dCh4byksZD1jLm1pbix2PWMubWF4LGY9Yy5zdGVwLG09by51c2VNZW1vKGZ1bmN0aW9uKCl7dmFyIGg9bmV3IFNldDtpZihyLmZvckVhY2goZnVuY3Rpb24oeCl7aC5hZGQoeC52YWx1ZSl9KSxhJiZmIT09bnVsbClmb3IodmFyIEM9ZDtDPD12OyloLmFkZChDKSxDKz1mO3JldHVybiBBcnJheS5mcm9tKGgpfSxbZCx2LGYsYSxyXSk7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdChuLCItc3RlcCIpfSxtLm1hcChmdW5jdGlvbihoKXtyZXR1cm4gby5jcmVhdGVFbGVtZW50KEZjLHtwcmVmaXhDbHM6bixrZXk6aCx2YWx1ZTpoLHN0eWxlOmwsYWN0aXZlU3R5bGU6dX0pfSkpfSxqYz1UYyxBYz1mdW5jdGlvbih0KXt2YXIgbj10LnByZWZpeENscyxyPXQuc3R5bGUsYT10LnN0YXJ0LGw9dC5lbmQsdT10LmluZGV4LGM9dC5vblN0YXJ0TW92ZSxkPXQucmVwbGFjZUNscyx2PW8udXNlQ29udGV4dCh4byksZj12LmRpcmVjdGlvbixtPXYubWluLGg9di5tYXgsQz12LmRpc2FibGVkLHg9di5yYW5nZSxwPXYuY2xhc3NOYW1lcyx5PSIiLmNvbmNhdChuLCItdHJhY2siKSx3PVFpKGEsbSxoKSxQPVFpKGwsbSxoKSxFPWZ1bmN0aW9uKFQpeyFDJiZjJiZjKFQsLTEpfSxNPXt9O3N3aXRjaChmKXtjYXNlInJ0bCI6TS5yaWdodD0iIi5jb25jYXQodyoxMDAsIiUiKSxNLndpZHRoPSIiLmNvbmNhdChQKjEwMC13KjEwMCwiJSIpO2JyZWFrO2Nhc2UiYnR0IjpNLmJvdHRvbT0iIi5jb25jYXQodyoxMDAsIiUiKSxNLmhlaWdodD0iIi5jb25jYXQoUCoxMDAtdyoxMDAsIiUiKTticmVhaztjYXNlInR0YiI6TS50b3A9IiIuY29uY2F0KHcqMTAwLCIlIiksTS5oZWlnaHQ9IiIuY29uY2F0KFAqMTAwLXcqMTAwLCIlIik7YnJlYWs7ZGVmYXVsdDpNLmxlZnQ9IiIuY29uY2F0KHcqMTAwLCIlIiksTS53aWR0aD0iIi5jb25jYXQoUCoxMDAtdyoxMDAsIiUiKX12YXIgRD1kfHxvZSgpKHksKDAsRy5aKSgoMCxHLlopKHt9LCIiLmNvbmNhdCh5LCItIikuY29uY2F0KHUrMSksdSE9PW51bGwmJngpLCIiLmNvbmNhdChuLCItdHJhY2stZHJhZ2dhYmxlIiksYykscC50cmFjayk7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOkQsc3R5bGU6KDAscy5aKSgoMCxzLlopKHt9LE0pLHIpLG9uTW91c2VEb3duOkUsb25Ub3VjaFN0YXJ0OkV9KX0sR2w9QWMsSGM9ZnVuY3Rpb24odCl7dmFyIG49dC5wcmVmaXhDbHMscj10LnN0eWxlLGE9dC52YWx1ZXMsbD10LnN0YXJ0UG9pbnQsdT10Lm9uU3RhcnRNb3ZlLGM9by51c2VDb250ZXh0KHhvKSxkPWMuaW5jbHVkZWQsdj1jLnJhbmdlLGY9Yy5taW4sbT1jLnN0eWxlcyxoPWMuY2xhc3NOYW1lcyxDPW8udXNlTWVtbyhmdW5jdGlvbigpe2lmKCF2KXtpZihhLmxlbmd0aD09PTApcmV0dXJuW107dmFyIHA9bCE9bnVsbD9sOmYseT1hWzBdO3JldHVyblt7c3RhcnQ6TWF0aC5taW4ocCx5KSxlbmQ6TWF0aC5tYXgocCx5KX1dfWZvcih2YXIgdz1bXSxQPTA7UDxhLmxlbmd0aC0xO1ArPTEpdy5wdXNoKHtzdGFydDphW1BdLGVuZDphW1ArMV19KTtyZXR1cm4gd30sW2EsdixsLGZdKTtpZighZClyZXR1cm4gbnVsbDt2YXIgeD1DIT1udWxsJiZDLmxlbmd0aCYmKGgudHJhY2tzfHxtLnRyYWNrcyk/by5jcmVhdGVFbGVtZW50KEdsLHtpbmRleDpudWxsLHByZWZpeENsczpuLHN0YXJ0OkNbMF0uc3RhcnQsZW5kOkNbQy5sZW5ndGgtMV0uZW5kLHJlcGxhY2VDbHM6b2UoKShoLnRyYWNrcywiIi5jb25jYXQobiwiLXRyYWNrcyIpKSxzdHlsZTptLnRyYWNrc30pOm51bGw7cmV0dXJuIG8uY3JlYXRlRWxlbWVudChvLkZyYWdtZW50LG51bGwseCxDLm1hcChmdW5jdGlvbihwLHkpe3ZhciB3PXAuc3RhcnQsUD1wLmVuZDtyZXR1cm4gby5jcmVhdGVFbGVtZW50KEdsLHtpbmRleDp5LHByZWZpeENsczpuLHN0eWxlOigwLHMuWikoKDAscy5aKSh7fSxDbyhyLHkpKSxtLnRyYWNrKSxzdGFydDp3LGVuZDpQLGtleTp5LG9uU3RhcnRNb3ZlOnV9KX0pKX0sa2M9SGMsTGM9MTMwO2Z1bmN0aW9uIFFsKGUpe3ZhciB0PSJ0YXJnZXRUb3VjaGVzImluIGU/ZS50YXJnZXRUb3VjaGVzWzBdOmU7cmV0dXJue3BhZ2VYOnQucGFnZVgscGFnZVk6dC5wYWdlWX19ZnVuY3Rpb24gVmMoZSx0LG4scixhLGwsdSxjLGQsdixmKXt2YXIgbT1vLnVzZVN0YXRlKG51bGwpLGg9KDAsai5aKShtLDIpLEM9aFswXSx4PWhbMV0scD1vLnVzZVN0YXRlKC0xKSx5PSgwLGouWikocCwyKSx3PXlbMF0sUD15WzFdLEU9by51c2VTdGF0ZSghMSksTT0oMCxqLlopKEUsMiksRD1NWzBdLE49TVsxXSxUPW8udXNlU3RhdGUobiksVz0oMCxqLlopKFQsMiksQj1XWzBdLFk9V1sxXSxIPW8udXNlU3RhdGUobiksQT0oMCxqLlopKEgsMiksVj1BWzBdLHo9QVsxXSxYPW8udXNlUmVmKG51bGwpLHE9by51c2VSZWYobnVsbCksUT1vLnVzZVJlZihudWxsKSxhZT1vLnVzZUNvbnRleHQoVWwpLGVlPWFlLm9uRHJhZ1N0YXJ0LHJlPWFlLm9uRHJhZ0NoYW5nZTsoMCxXbi5aKShmdW5jdGlvbigpe3c9PT0tMSYmWShuKX0sW24sd10pLG8udXNlRWZmZWN0KGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKCl7ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIixYLmN1cnJlbnQpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHEuY3VycmVudCksUS5jdXJyZW50JiYoUS5jdXJyZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsWC5jdXJyZW50KSxRLmN1cnJlbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLHEuY3VycmVudCkpfX0sW10pO3ZhciBzZT1mdW5jdGlvbih1ZSx5ZSxQZSl7eWUhPT12b2lkIDAmJngoeWUpLFkodWUpO3ZhciBnZT11ZTtQZSYmKGdlPXVlLmZpbHRlcihmdW5jdGlvbihSZSxTZSl7cmV0dXJuIFNlIT09d30pKSx1KGdlKSxyZSYmcmUoe3Jhd1ZhbHVlczp1ZSxkZWxldGVJbmRleDpQZT93Oi0xLGRyYWdnaW5nSW5kZXg6dyxkcmFnZ2luZ1ZhbHVlOnllfSl9LEo9KDAsZ3QuWikoZnVuY3Rpb24oeGUsdWUseWUpe2lmKHhlPT09LTEpe3ZhciBQZT1WWzBdLGdlPVZbVi5sZW5ndGgtMV0sUmU9ci1QZSxTZT1hLWdlLEllPXVlKihhLXIpO0llPU1hdGgubWF4KEllLFJlKSxJZT1NYXRoLm1pbihJZSxTZSk7dmFyIFplPWwoUGUrSWUpO0llPVplLVBlO3ZhciBDZT1WLm1hcChmdW5jdGlvbihCZSl7cmV0dXJuIEJlK0llfSk7c2UoQ2UpfWVsc2V7dmFyIEVlPShhLXIpKnVlLHBlPSgwLGxlLlopKEIpO3BlW3hlXT1WW3hlXTt2YXIgSmU9ZChwZSxFZSx4ZSwiZGlzdCIpO3NlKEplLnZhbHVlcyxKZS52YWx1ZSx5ZSl9fSksaWU9ZnVuY3Rpb24odWUseWUsUGUpe3VlLnN0b3BQcm9wYWdhdGlvbigpO3ZhciBnZT1QZXx8bixSZT1nZVt5ZV07UCh5ZSkseChSZSkseihnZSksWShnZSksTighMSk7dmFyIFNlPVFsKHVlKSxJZT1TZS5wYWdlWCxaZT1TZS5wYWdlWSxDZT0hMTtlZSYmZWUoe3Jhd1ZhbHVlczpnZSxkcmFnZ2luZ0luZGV4OnllLGRyYWdnaW5nVmFsdWU6UmV9KTt2YXIgRWU9ZnVuY3Rpb24oQmUpe0JlLnByZXZlbnREZWZhdWx0KCk7dmFyIHZ0PVFsKEJlKSx5dD12dC5wYWdlWCxzdD12dC5wYWdlWSxudD15dC1JZSxJdD1zdC1aZSxjdD1lLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksWnQ9Y3Qud2lkdGgsYnQ9Y3QuaGVpZ2h0LGt0LEFlO3N3aXRjaCh0KXtjYXNlImJ0dCI6a3Q9LUl0L2J0LEFlPW50O2JyZWFrO2Nhc2UidHRiIjprdD1JdC9idCxBZT1udDticmVhaztjYXNlInJ0bCI6a3Q9LW50L1p0LEFlPUl0O2JyZWFrO2RlZmF1bHQ6a3Q9bnQvWnQsQWU9SXR9Q2U9dj9NYXRoLmFicyhBZSk+TGMmJmY8Qi5sZW5ndGg6ITEsTihDZSksSih5ZSxrdCxDZSl9LHBlPWZ1bmN0aW9uIEplKEJlKXtCZS5wcmV2ZW50RGVmYXVsdCgpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLEplKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLEVlKSxRLmN1cnJlbnQmJihRLmN1cnJlbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixYLmN1cnJlbnQpLFEuY3VycmVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIscS5jdXJyZW50KSksWC5jdXJyZW50PW51bGwscS5jdXJyZW50PW51bGwsUS5jdXJyZW50PW51bGwsYyhDZSksUCgtMSksTighMSl9O2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHBlKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLEVlKSx1ZS5jdXJyZW50VGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIixwZSksdWUuY3VycmVudFRhcmdldC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLEVlKSxYLmN1cnJlbnQ9RWUscS5jdXJyZW50PXBlLFEuY3VycmVudD11ZS5jdXJyZW50VGFyZ2V0fSxjZT1vLnVzZU1lbW8oZnVuY3Rpb24oKXt2YXIgeGU9KDAsbGUuWikobikuc29ydChmdW5jdGlvbihSZSxTZSl7cmV0dXJuIFJlLVNlfSksdWU9KDAsbGUuWikoQikuc29ydChmdW5jdGlvbihSZSxTZSl7cmV0dXJuIFJlLVNlfSkseWU9e307dWUuZm9yRWFjaChmdW5jdGlvbihSZSl7eWVbUmVdPSh5ZVtSZV18fDApKzF9KSx4ZS5mb3JFYWNoKGZ1bmN0aW9uKFJlKXt5ZVtSZV09KHllW1JlXXx8MCktMX0pO3ZhciBQZT12PzE6MCxnZT1PYmplY3QudmFsdWVzKHllKS5yZWR1Y2UoZnVuY3Rpb24oUmUsU2Upe3JldHVybiBSZStNYXRoLmFicyhTZSl9LDApO3JldHVybiBnZTw9UGU/QjpufSxbbixCLHZdKTtyZXR1cm5bdyxDLEQsY2UsaWVdfXZhciBCYz1WYztmdW5jdGlvbiBXYyhlLHQsbixyLGEsbCl7dmFyIHU9by51c2VDYWxsYmFjayhmdW5jdGlvbihDKXtyZXR1cm4gTWF0aC5tYXgoZSxNYXRoLm1pbih0LEMpKX0sW2UsdF0pLGM9by51c2VDYWxsYmFjayhmdW5jdGlvbihDKXtpZihuIT09bnVsbCl7dmFyIHg9ZStNYXRoLnJvdW5kKCh1KEMpLWUpL24pKm4scD1mdW5jdGlvbihFKXtyZXR1cm4oU3RyaW5nKEUpLnNwbGl0KCIuIilbMV18fCIiKS5sZW5ndGh9LHk9TWF0aC5tYXgocChuKSxwKHQpLHAoZSkpLHc9TnVtYmVyKHgudG9GaXhlZCh5KSk7cmV0dXJuIGU8PXcmJnc8PXQ/dzpudWxsfXJldHVybiBudWxsfSxbbixlLHQsdV0pLGQ9by51c2VDYWxsYmFjayhmdW5jdGlvbihDKXt2YXIgeD11KEMpLHA9ci5tYXAoZnVuY3Rpb24oUCl7cmV0dXJuIFAudmFsdWV9KTtuIT09bnVsbCYmcC5wdXNoKGMoQykpLHAucHVzaChlLHQpO3ZhciB5PXBbMF0sdz10LWU7cmV0dXJuIHAuZm9yRWFjaChmdW5jdGlvbihQKXt2YXIgRT1NYXRoLmFicyh4LVApO0U8PXcmJih5PVAsdz1FKX0pLHl9LFtlLHQscixuLHUsY10pLHY9ZnVuY3Rpb24gQyh4LHAseSl7dmFyIHc9YXJndW1lbnRzLmxlbmd0aD4zJiZhcmd1bWVudHNbM10hPT12b2lkIDA/YXJndW1lbnRzWzNdOiJ1bml0IjtpZih0eXBlb2YgcD09Im51bWJlciIpe3ZhciBQLEU9eFt5XSxNPUUrcCxEPVtdO3IuZm9yRWFjaChmdW5jdGlvbihZKXtELnB1c2goWS52YWx1ZSl9KSxELnB1c2goZSx0KSxELnB1c2goYyhFKSk7dmFyIE49cD4wPzE6LTE7dz09PSJ1bml0Ij9ELnB1c2goYyhFK04qbikpOkQucHVzaChjKE0pKSxEPUQuZmlsdGVyKGZ1bmN0aW9uKFkpe3JldHVybiBZIT09bnVsbH0pLmZpbHRlcihmdW5jdGlvbihZKXtyZXR1cm4gcDwwP1k8PUU6WT49RX0pLHc9PT0idW5pdCImJihEPUQuZmlsdGVyKGZ1bmN0aW9uKFkpe3JldHVybiBZIT09RX0pKTt2YXIgVD13PT09InVuaXQiP0U6TTtQPURbMF07dmFyIFc9TWF0aC5hYnMoUC1UKTtpZihELmZvckVhY2goZnVuY3Rpb24oWSl7dmFyIEg9TWF0aC5hYnMoWS1UKTtIPFcmJihQPVksVz1IKX0pLFA9PT12b2lkIDApcmV0dXJuIHA8MD9lOnQ7aWYodz09PSJkaXN0IilyZXR1cm4gUDtpZihNYXRoLmFicyhwKT4xKXt2YXIgQj0oMCxsZS5aKSh4KTtyZXR1cm4gQlt5XT1QLEMoQixwLU4seSx3KX1yZXR1cm4gUH1lbHNle2lmKHA9PT0ibWluIilyZXR1cm4gZTtpZihwPT09Im1heCIpcmV0dXJuIHR9fSxmPWZ1bmN0aW9uKHgscCx5KXt2YXIgdz1hcmd1bWVudHMubGVuZ3RoPjMmJmFyZ3VtZW50c1szXSE9PXZvaWQgMD9hcmd1bWVudHNbM106InVuaXQiLFA9eFt5XSxFPXYoeCxwLHksdyk7cmV0dXJue3ZhbHVlOkUsY2hhbmdlZDpFIT09UH19LG09ZnVuY3Rpb24oeCl7cmV0dXJuIGw9PT1udWxsJiZ4PT09MHx8dHlwZW9mIGw9PSJudW1iZXIiJiZ4PGx9LGg9ZnVuY3Rpb24oeCxwLHkpe3ZhciB3PWFyZ3VtZW50cy5sZW5ndGg+MyYmYXJndW1lbnRzWzNdIT09dm9pZCAwP2FyZ3VtZW50c1szXToidW5pdCIsUD14Lm1hcChkKSxFPVBbeV0sTT12KFAscCx5LHcpO2lmKFBbeV09TSxhPT09ITEpe3ZhciBEPWx8fDA7eT4wJiZQW3ktMV0hPT1FJiYoUFt5XT1NYXRoLm1heChQW3ldLFBbeS0xXStEKSkseTxQLmxlbmd0aC0xJiZQW3krMV0hPT1FJiYoUFt5XT1NYXRoLm1pbihQW3ldLFBbeSsxXS1EKSl9ZWxzZSBpZih0eXBlb2YgbD09Im51bWJlciJ8fGw9PT1udWxsKXtmb3IodmFyIE49eSsxO048UC5sZW5ndGg7Tis9MSlmb3IodmFyIFQ9ITA7bShQW05dLVBbTi0xXSkmJlQ7KXt2YXIgVz1mKFAsMSxOKTtQW05dPVcudmFsdWUsVD1XLmNoYW5nZWR9Zm9yKHZhciBCPXk7Qj4wO0ItPTEpZm9yKHZhciBZPSEwO20oUFtCXS1QW0ItMV0pJiZZOyl7dmFyIEg9ZihQLC0xLEItMSk7UFtCLTFdPUgudmFsdWUsWT1ILmNoYW5nZWR9Zm9yKHZhciBBPVAubGVuZ3RoLTE7QT4wO0EtPTEpZm9yKHZhciBWPSEwO20oUFtBXS1QW0EtMV0pJiZWOyl7dmFyIHo9ZihQLC0xLEEtMSk7UFtBLTFdPXoudmFsdWUsVj16LmNoYW5nZWR9Zm9yKHZhciBYPTA7WDxQLmxlbmd0aC0xO1grPTEpZm9yKHZhciBxPSEwO20oUFtYKzFdLVBbWF0pJiZxOyl7dmFyIFE9ZihQLDEsWCsxKTtQW1grMV09US52YWx1ZSxxPVEuY2hhbmdlZH19cmV0dXJue3ZhbHVlOlBbeV0sdmFsdWVzOlB9fTtyZXR1cm5bZCxoXX1mdW5jdGlvbiB6YyhlKXtyZXR1cm4oMCxvLnVzZU1lbW8pKGZ1bmN0aW9uKCl7aWYoZT09PSEwfHwhZSlyZXR1cm5bISFlLCExLCExLDBdO3ZhciB0PWUuZWRpdGFibGUsbj1lLmRyYWdnYWJsZVRyYWNrLHI9ZS5taW5Db3VudCxhPWUubWF4Q291bnQ7cmV0dXJuWyEwLHQsIXQmJm4scnx8MCxhXX0sW2VdKX12YXIgS2M9by5mb3J3YXJkUmVmKGZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5wcmVmaXhDbHMscj1uPT09dm9pZCAwPyJyYy1zbGlkZXIiOm4sYT1lLmNsYXNzTmFtZSxsPWUuc3R5bGUsdT1lLmNsYXNzTmFtZXMsYz1lLnN0eWxlcyxkPWUuaWQsdj1lLmRpc2FibGVkLGY9dj09PXZvaWQgMD8hMTp2LG09ZS5rZXlib2FyZCxoPW09PT12b2lkIDA/ITA6bSxDPWUuYXV0b0ZvY3VzLHg9ZS5vbkZvY3VzLHA9ZS5vbkJsdXIseT1lLm1pbix3PXk9PT12b2lkIDA/MDp5LFA9ZS5tYXgsRT1QPT09dm9pZCAwPzEwMDpQLE09ZS5zdGVwLEQ9TT09PXZvaWQgMD8xOk0sTj1lLnZhbHVlLFQ9ZS5kZWZhdWx0VmFsdWUsVz1lLnJhbmdlLEI9ZS5jb3VudCxZPWUub25DaGFuZ2UsSD1lLm9uQmVmb3JlQ2hhbmdlLEE9ZS5vbkFmdGVyQ2hhbmdlLFY9ZS5vbkNoYW5nZUNvbXBsZXRlLHo9ZS5hbGxvd0Nyb3NzLFg9ej09PXZvaWQgMD8hMDp6LHE9ZS5wdXNoYWJsZSxRPXE9PT12b2lkIDA/ITE6cSxhZT1lLnJldmVyc2UsZWU9ZS52ZXJ0aWNhbCxyZT1lLmluY2x1ZGVkLHNlPXJlPT09dm9pZCAwPyEwOnJlLEo9ZS5zdGFydFBvaW50LGllPWUudHJhY2tTdHlsZSxjZT1lLmhhbmRsZVN0eWxlLHhlPWUucmFpbFN0eWxlLHVlPWUuZG90U3R5bGUseWU9ZS5hY3RpdmVEb3RTdHlsZSxQZT1lLm1hcmtzLGdlPWUuZG90cyxSZT1lLmhhbmRsZVJlbmRlcixTZT1lLmFjdGl2ZUhhbmRsZVJlbmRlcixJZT1lLnRyYWNrLFplPWUudGFiSW5kZXgsQ2U9WmU9PT12b2lkIDA/MDpaZSxFZT1lLmFyaWFMYWJlbEZvckhhbmRsZSxwZT1lLmFyaWFMYWJlbGxlZEJ5Rm9ySGFuZGxlLEplPWUuYXJpYVJlcXVpcmVkLEJlPWUuYXJpYVZhbHVlVGV4dEZvcm1hdHRlckZvckhhbmRsZSx2dD1vLnVzZVJlZihudWxsKSx5dD1vLnVzZVJlZihudWxsKSxzdD1vLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4gZWU/YWU/InR0YiI6ImJ0dCI6YWU/InJ0bCI6Imx0ciJ9LFthZSxlZV0pLG50PXpjKFcpLEl0PSgwLGouWikobnQsNSksY3Q9SXRbMF0sWnQ9SXRbMV0sYnQ9SXRbMl0sa3Q9SXRbM10sQWU9SXRbNF0scWU9by51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJuIGlzRmluaXRlKHcpP3c6MH0sW3ddKSxldD1vLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4gaXNGaW5pdGUoRSk/RToxMDB9LFtFXSksT3Q9by51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJuIEQhPT1udWxsJiZEPD0wPzE6RH0sW0RdKSxHZT1vLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4gdHlwZW9mIFE9PSJib29sZWFuIj9RP090OiExOlE+PTA/UTohMX0sW1EsT3RdKSxubj1vLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmtleXMoUGV8fHt9KS5tYXAoZnVuY3Rpb24oZ24pe3ZhciBSdD1QZVtnbl0sU249e3ZhbHVlOk51bWJlcihnbil9O3JldHVybiBSdCYmKDAsYi5aKShSdCk9PT0ib2JqZWN0IiYmIW8uaXNWYWxpZEVsZW1lbnQoUnQpJiYoImxhYmVsImluIFJ0fHwic3R5bGUiaW4gUnQpPyhTbi5zdHlsZT1SdC5zdHlsZSxTbi5sYWJlbD1SdC5sYWJlbCk6U24ubGFiZWw9UnQsU259KS5maWx0ZXIoZnVuY3Rpb24oZ24pe3ZhciBSdD1nbi5sYWJlbDtyZXR1cm4gUnR8fHR5cGVvZiBSdD09Im51bWJlciJ9KS5zb3J0KGZ1bmN0aW9uKGduLFJ0KXtyZXR1cm4gZ24udmFsdWUtUnQudmFsdWV9KX0sW1BlXSksaXQ9V2MocWUsZXQsT3Qsbm4sWCxHZSksVmU9KDAsai5aKShpdCwyKSx1dD1WZVswXSxNZT1WZVsxXSxVZT0oMCxydC5aKShULHt2YWx1ZTpOfSksVG49KDAsai5aKShVZSwyKSxkbj1UblswXSxLbj1UblsxXSxNbj1vLnVzZU1lbW8oZnVuY3Rpb24oKXt2YXIgZ249ZG49PW51bGw/W106QXJyYXkuaXNBcnJheShkbik/ZG46W2RuXSxSdD0oMCxqLlopKGduLDEpLFNuPVJ0WzBdLEFuPVNuPT09dm9pZCAwP3FlOlNuLGlyPWRuPT09bnVsbD9bXTpbQW5dO2lmKGN0KXtpZihpcj0oMCxsZS5aKShnbiksQnx8ZG49PT12b2lkIDApe3ZhciBhYT1CPj0wP0IrMToyO2Zvcihpcj1pci5zbGljZSgwLGFhKTtpci5sZW5ndGg8YWE7KXt2YXIgb2E7aXIucHVzaCgob2E9aXJbaXIubGVuZ3RoLTFdKSE9PW51bGwmJm9hIT09dm9pZCAwP29hOnFlKX19aXIuc29ydChmdW5jdGlvbihVcixpYSl7cmV0dXJuIFVyLWlhfSl9cmV0dXJuIGlyLmZvckVhY2goZnVuY3Rpb24oVXIsaWEpe2lyW2lhXT11dChVcil9KSxpcn0sW2RuLGN0LHFlLEIsdXRdKSx4dD1mdW5jdGlvbihSdCl7cmV0dXJuIGN0P1J0OlJ0WzBdfSxTdD0oMCxndC5aKShmdW5jdGlvbihnbil7dmFyIFJ0PSgwLGxlLlopKGduKS5zb3J0KGZ1bmN0aW9uKFNuLEFuKXtyZXR1cm4gU24tQW59KTtZJiYhKDAseGMuWikoUnQsTW4sITApJiZZKHh0KFJ0KSksS24oUnQpfSksWXQ9KDAsZ3QuWikoZnVuY3Rpb24oZ24pe2duJiZ2dC5jdXJyZW50LmhpZGVIZWxwKCk7dmFyIFJ0PXh0KE1uKTtBPT1udWxsfHxBKFJ0KSwoMCxodC5aUCkoIUEsIltyYy1zbGlkZXJdIGBvbkFmdGVyQ2hhbmdlYCBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIGBvbkNoYW5nZUNvbXBsZXRlYCBpbnN0ZWFkLiIpLFY9PW51bGx8fFYoUnQpfSksRXQ9ZnVuY3Rpb24oUnQpe2lmKCEoZnx8IVp0fHxNbi5sZW5ndGg8PWt0KSl7dmFyIFNuPSgwLGxlLlopKE1uKTtTbi5zcGxpY2UoUnQsMSksSD09bnVsbHx8SCh4dChTbikpLFN0KFNuKTt2YXIgQW49TWF0aC5tYXgoMCxSdC0xKTt2dC5jdXJyZW50LmhpZGVIZWxwKCksdnQuY3VycmVudC5mb2N1cyhBbil9fSxfdD1CYyh5dCxzdCxNbixxZSxldCx1dCxTdCxZdCxNZSxadCxrdCksQm49KDAsai5aKShfdCw1KSxNcj1CblswXSxZcj1CblsxXSxNYT1CblsyXSxKcj1CblszXSxLYT1Cbls0XSxZYT1mdW5jdGlvbihSdCxTbil7aWYoIWYpe3ZhciBBbj0oMCxsZS5aKShNbiksaXI9MCxhYT0wLG9hPWV0LXFlO01uLmZvckVhY2goZnVuY3Rpb24oZGEsY28pe3ZhciBHbz1NYXRoLmFicyhSdC1kYSk7R288PW9hJiYob2E9R28saXI9Y28pLGRhPFJ0JiYoYWE9Y28pfSk7dmFyIFVyPWlyO1p0JiZvYSE9PTAmJighQWV8fE1uLmxlbmd0aDxBZSk/KEFuLnNwbGljZShhYSsxLDAsUnQpLFVyPWFhKzEpOkFuW2lyXT1SdCxjdCYmIU1uLmxlbmd0aCYmQj09PXZvaWQgMCYmQW4ucHVzaChSdCk7dmFyIGlhPXh0KEFuKTtpZihIPT1udWxsfHxIKGlhKSxTdChBbiksU24pe3ZhciB4YSxaYTsoeGE9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCk9PT1udWxsfHx4YT09PXZvaWQgMHx8KFphPXhhLmJsdXIpPT09bnVsbHx8WmE9PT12b2lkIDB8fFphLmNhbGwoeGEpLHZ0LmN1cnJlbnQuZm9jdXMoVXIpLEthKFNuLFVyLEFuKX1lbHNlIEE9PW51bGx8fEEoaWEpLCgwLGh0LlpQKSghQSwiW3JjLXNsaWRlcl0gYG9uQWZ0ZXJDaGFuZ2VgIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgYG9uQ2hhbmdlQ29tcGxldGVgIGluc3RlYWQuIiksVj09bnVsbHx8VihpYSl9fSxLbz1mdW5jdGlvbihSdCl7UnQucHJldmVudERlZmF1bHQoKTt2YXIgU249eXQuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxBbj1Tbi53aWR0aCxpcj1Tbi5oZWlnaHQsYWE9U24ubGVmdCxvYT1Tbi50b3AsVXI9U24uYm90dG9tLGlhPVNuLnJpZ2h0LHhhPVJ0LmNsaWVudFgsWmE9UnQuY2xpZW50WSxkYTtzd2l0Y2goc3Qpe2Nhc2UiYnR0IjpkYT0oVXItWmEpL2lyO2JyZWFrO2Nhc2UidHRiIjpkYT0oWmEtb2EpL2lyO2JyZWFrO2Nhc2UicnRsIjpkYT0oaWEteGEpL0FuO2JyZWFrO2RlZmF1bHQ6ZGE9KHhhLWFhKS9Bbn12YXIgY289cWUrZGEqKGV0LXFlKTtZYSh1dChjbyksUnQpfSxnaT1vLnVzZVN0YXRlKG51bGwpLFlvPSgwLGouWikoZ2ksMiksbG89WW9bMF0sSW89WW9bMV0saGk9ZnVuY3Rpb24oUnQsU24pe2lmKCFmKXt2YXIgQW49TWUoTW4sUnQsU24pO0g9PW51bGx8fEgoeHQoTW4pKSxTdChBbi52YWx1ZXMpLElvKEFuLnZhbHVlKX19O28udXNlRWZmZWN0KGZ1bmN0aW9uKCl7aWYobG8hPT1udWxsKXt2YXIgZ249TW4uaW5kZXhPZihsbyk7Z24+PTAmJnZ0LmN1cnJlbnQuZm9jdXMoZ24pfUlvKG51bGwpfSxbbG9dKTt2YXIgVW89by51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJuIGJ0JiZPdD09PW51bGw/ITE6YnR9LFtidCxPdF0pLGNhPSgwLGd0LlopKGZ1bmN0aW9uKGduLFJ0KXtLYShnbixSdCksSD09bnVsbHx8SCh4dChNbikpfSksc289TXIhPT0tMTtvLnVzZUVmZmVjdChmdW5jdGlvbigpe2lmKCFzbyl7dmFyIGduPU1uLmxhc3RJbmRleE9mKFlyKTt2dC5jdXJyZW50LmZvY3VzKGduKX19LFtzb10pO3ZhciBMcj1vLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4oMCxsZS5aKShKcikuc29ydChmdW5jdGlvbihnbixSdCl7cmV0dXJuIGduLVJ0fSl9LFtKcl0pLHBpPW8udXNlTWVtbyhmdW5jdGlvbigpe3JldHVybiBjdD9bTHJbMF0sTHJbTHIubGVuZ3RoLTFdXTpbcWUsTHJbMF1dfSxbTHIsY3QscWVdKSwkbz0oMCxqLlopKHBpLDIpLFhvPSRvWzBdLHVvPSRvWzFdO28udXNlSW1wZXJhdGl2ZUhhbmRsZSh0LGZ1bmN0aW9uKCl7cmV0dXJue2ZvY3VzOmZ1bmN0aW9uKCl7dnQuY3VycmVudC5mb2N1cygwKX0sYmx1cjpmdW5jdGlvbigpe3ZhciBSdCxTbj1kb2N1bWVudCxBbj1Tbi5hY3RpdmVFbGVtZW50OyhSdD15dC5jdXJyZW50KSE9PW51bGwmJlJ0IT09dm9pZCAwJiZSdC5jb250YWlucyhBbikmJihBbj09bnVsbHx8QW4uYmx1cigpKX19fSksby51c2VFZmZlY3QoZnVuY3Rpb24oKXtDJiZ2dC5jdXJyZW50LmZvY3VzKDApfSxbXSk7dmFyIGJpPW8udXNlTWVtbyhmdW5jdGlvbigpe3JldHVybnttaW46cWUsbWF4OmV0LGRpcmVjdGlvbjpzdCxkaXNhYmxlZDpmLGtleWJvYXJkOmgsc3RlcDpPdCxpbmNsdWRlZDpzZSxpbmNsdWRlZFN0YXJ0OlhvLGluY2x1ZGVkRW5kOnVvLHJhbmdlOmN0LHRhYkluZGV4OkNlLGFyaWFMYWJlbEZvckhhbmRsZTpFZSxhcmlhTGFiZWxsZWRCeUZvckhhbmRsZTpwZSxhcmlhUmVxdWlyZWQ6SmUsYXJpYVZhbHVlVGV4dEZvcm1hdHRlckZvckhhbmRsZTpCZSxzdHlsZXM6Y3x8e30sY2xhc3NOYW1lczp1fHx7fX19LFtxZSxldCxzdCxmLGgsT3Qsc2UsWG8sdW8sY3QsQ2UsRWUscGUsSmUsQmUsYyx1XSk7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCh4by5Qcm92aWRlcix7dmFsdWU6Yml9LG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7cmVmOnl0LGNsYXNzTmFtZTpvZSgpKHIsYSwoMCxHLlopKCgwLEcuWikoKDAsRy5aKSgoMCxHLlopKHt9LCIiLmNvbmNhdChyLCItZGlzYWJsZWQiKSxmKSwiIi5jb25jYXQociwiLXZlcnRpY2FsIiksZWUpLCIiLmNvbmNhdChyLCItaG9yaXpvbnRhbCIpLCFlZSksIiIuY29uY2F0KHIsIi13aXRoLW1hcmtzIiksbm4ubGVuZ3RoKSksc3R5bGU6bCxvbk1vdXNlRG93bjpLbyxpZDpkfSxvLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpvZSgpKCIiLmNvbmNhdChyLCItcmFpbCIpLHU9PW51bGw/dm9pZCAwOnUucmFpbCksc3R5bGU6KDAscy5aKSgoMCxzLlopKHt9LHhlKSxjPT1udWxsP3ZvaWQgMDpjLnJhaWwpfSksSWUhPT0hMSYmby5jcmVhdGVFbGVtZW50KGtjLHtwcmVmaXhDbHM6cixzdHlsZTppZSx2YWx1ZXM6TW4sc3RhcnRQb2ludDpKLG9uU3RhcnRNb3ZlOlVvP2NhOnZvaWQgMH0pLG8uY3JlYXRlRWxlbWVudChqYyx7cHJlZml4Q2xzOnIsbWFya3M6bm4sZG90czpnZSxzdHlsZTp1ZSxhY3RpdmVTdHlsZTp5ZX0pLG8uY3JlYXRlRWxlbWVudCgkYyx7cmVmOnZ0LHByZWZpeENsczpyLHN0eWxlOmNlLHZhbHVlczpKcixkcmFnZ2luZ0luZGV4Ok1yLGRyYWdnaW5nRGVsZXRlOk1hLG9uU3RhcnRNb3ZlOmNhLG9uT2Zmc2V0Q2hhbmdlOmhpLG9uRm9jdXM6eCxvbkJsdXI6cCxoYW5kbGVSZW5kZXI6UmUsYWN0aXZlSGFuZGxlUmVuZGVyOlNlLG9uQ2hhbmdlQ29tcGxldGU6WXQsb25EZWxldGU6WnQ/RXQ6dm9pZCAwfSksby5jcmVhdGVFbGVtZW50KERjLHtwcmVmaXhDbHM6cixtYXJrczpubixvbkNsaWNrOllhfSkpKX0pLFljPUtjLFVjPVljLEpsPSgwLG8uY3JlYXRlQ29udGV4dCkoe30pLHFpPWkoODMwNjIpLHFsPW8uZm9yd2FyZFJlZigoZSx0KT0+e2NvbnN0e29wZW46bixkcmFnZ2luZ0RlbGV0ZTpyfT1lLGE9KDAsby51c2VSZWYpKG51bGwpLGw9biYmIXIsdT0oMCxvLnVzZVJlZikobnVsbCk7ZnVuY3Rpb24gYygpe0puLlouY2FuY2VsKHUuY3VycmVudCksdS5jdXJyZW50PW51bGx9ZnVuY3Rpb24gZCgpe3UuY3VycmVudD0oMCxKbi5aKSgoKT0+e3ZhciB2Oyh2PWEuY3VycmVudCk9PT1udWxsfHx2PT09dm9pZCAwfHx2LmZvcmNlQWxpZ24oKSx1LmN1cnJlbnQ9bnVsbH0pfXJldHVybiBvLnVzZUVmZmVjdCgoKT0+KGw/ZCgpOmMoKSxjKSxbbCxlLnRpdGxlXSksby5jcmVhdGVFbGVtZW50KHFpLlosT2JqZWN0LmFzc2lnbih7cmVmOigwLHRhLnNRKShhLHQpfSxlLHtvcGVuOmx9KSl9KTtjb25zdCBYYz1lPT57Y29uc3R7Y29tcG9uZW50Q2xzOnQsYW50Q2xzOm4sY29udHJvbFNpemU6cixkb3RTaXplOmEsbWFyZ2luRnVsbDpsLG1hcmdpblBhcnQ6dSxjb2xvckZpbGxDb250ZW50SG92ZXI6YyxoYW5kbGVDb2xvckRpc2FibGVkOmQsY2FsYzp2LGhhbmRsZVNpemU6ZixoYW5kbGVTaXplSG92ZXI6bSxoYW5kbGVBY3RpdmVDb2xvcjpoLGhhbmRsZUFjdGl2ZU91dGxpbmVDb2xvcjpDLGhhbmRsZUxpbmVXaWR0aDp4LGhhbmRsZUxpbmVXaWR0aEhvdmVyOnAsbW90aW9uRHVyYXRpb25NaWQ6eX09ZTtyZXR1cm57W3RdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwoMCxObi5XZikoZSkpLHtwb3NpdGlvbjoicmVsYXRpdmUiLGhlaWdodDpyLG1hcmdpbjpgJHsoMCxoZS5iZikodSl9ICR7KDAsaGUuYmYpKGwpfWAscGFkZGluZzowLGN1cnNvcjoicG9pbnRlciIsdG91Y2hBY3Rpb246Im5vbmUiLCImLXZlcnRpY2FsIjp7bWFyZ2luOmAkeygwLGhlLmJmKShsKX0gJHsoMCxoZS5iZikodSl9YH0sW2Ake3R9LXJhaWxgXTp7cG9zaXRpb246ImFic29sdXRlIixiYWNrZ3JvdW5kQ29sb3I6ZS5yYWlsQmcsYm9yZGVyUmFkaXVzOmUuYm9yZGVyUmFkaXVzWFMsdHJhbnNpdGlvbjpgYmFja2dyb3VuZC1jb2xvciAke3l9YH0sW2Ake3R9LXRyYWNrLCR7dH0tdHJhY2tzYF06e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdHJhbnNpdGlvbjpgYmFja2dyb3VuZC1jb2xvciAke3l9YH0sW2Ake3R9LXRyYWNrYF06e2JhY2tncm91bmRDb2xvcjplLnRyYWNrQmcsYm9yZGVyUmFkaXVzOmUuYm9yZGVyUmFkaXVzWFN9LFtgJHt0fS10cmFjay1kcmFnZ2FibGVgXTp7Ym94U2l6aW5nOiJjb250ZW50LWJveCIsYmFja2dyb3VuZENsaXA6ImNvbnRlbnQtYm94Iixib3JkZXI6InNvbGlkIHJnYmEoMCwwLDAsMCkifSwiJjpob3ZlciI6e1tgJHt0fS1yYWlsYF06e2JhY2tncm91bmRDb2xvcjplLnJhaWxIb3ZlckJnfSxbYCR7dH0tdHJhY2tgXTp7YmFja2dyb3VuZENvbG9yOmUudHJhY2tIb3ZlckJnfSxbYCR7dH0tZG90YF06e2JvcmRlckNvbG9yOmN9LFtgJHt0fS1oYW5kbGU6OmFmdGVyYF06e2JveFNoYWRvdzpgMCAwIDAgJHsoMCxoZS5iZikoeCl9ICR7ZS5jb2xvclByaW1hcnlCb3JkZXJIb3Zlcn1gfSxbYCR7dH0tZG90LWFjdGl2ZWBdOntib3JkZXJDb2xvcjplLmRvdEFjdGl2ZUJvcmRlckNvbG9yfX0sW2Ake3R9LWhhbmRsZWBdOntwb3NpdGlvbjoiYWJzb2x1dGUiLHdpZHRoOmYsaGVpZ2h0OmYsb3V0bGluZToibm9uZSIsdXNlclNlbGVjdDoibm9uZSIsIiYtZHJhZ2dpbmctZGVsZXRlIjp7b3BhY2l0eTowfSwiJjo6YmVmb3JlIjp7Y29udGVudDonIiInLHBvc2l0aW9uOiJhYnNvbHV0ZSIsaW5zZXRJbmxpbmVTdGFydDp2KHgpLm11bCgtMSkuZXF1YWwoKSxpbnNldEJsb2NrU3RhcnQ6dih4KS5tdWwoLTEpLmVxdWFsKCksd2lkdGg6dihmKS5hZGQodih4KS5tdWwoMikpLmVxdWFsKCksaGVpZ2h0OnYoZikuYWRkKHYoeCkubXVsKDIpKS5lcXVhbCgpLGJhY2tncm91bmRDb2xvcjoidHJhbnNwYXJlbnQifSwiJjo6YWZ0ZXIiOntjb250ZW50OiciIicscG9zaXRpb246ImFic29sdXRlIixpbnNldEJsb2NrU3RhcnQ6MCxpbnNldElubGluZVN0YXJ0OjAsd2lkdGg6ZixoZWlnaHQ6ZixiYWNrZ3JvdW5kQ29sb3I6ZS5jb2xvckJnRWxldmF0ZWQsYm94U2hhZG93OmAwIDAgMCAkeygwLGhlLmJmKSh4KX0gJHtlLmhhbmRsZUNvbG9yfWAsb3V0bGluZToiMHB4IHNvbGlkIHRyYW5zcGFyZW50Iixib3JkZXJSYWRpdXM6IjUwJSIsY3Vyc29yOiJwb2ludGVyIix0cmFuc2l0aW9uOmAKKyAgICAgICAgICAgIGluc2V0LWlubGluZS1zdGFydCAke3l9LAorICAgICAgICAgICAgaW5zZXQtYmxvY2stc3RhcnQgJHt5fSwKKyAgICAgICAgICAgIHdpZHRoICR7eX0sCisgICAgICAgICAgICBoZWlnaHQgJHt5fSwKKyAgICAgICAgICAgIGJveC1zaGFkb3cgJHt5fSwKKyAgICAgICAgICAgIG91dGxpbmUgJHt5fQorICAgICAgICAgIGB9LCImOmhvdmVyLCAmOmFjdGl2ZSwgJjpmb2N1cyI6eyImOjpiZWZvcmUiOntpbnNldElubGluZVN0YXJ0OnYobSkuc3ViKGYpLmRpdigyKS5hZGQocCkubXVsKC0xKS5lcXVhbCgpLGluc2V0QmxvY2tTdGFydDp2KG0pLnN1YihmKS5kaXYoMikuYWRkKHApLm11bCgtMSkuZXF1YWwoKSx3aWR0aDp2KG0pLmFkZCh2KHApLm11bCgyKSkuZXF1YWwoKSxoZWlnaHQ6dihtKS5hZGQodihwKS5tdWwoMikpLmVxdWFsKCl9LCImOjphZnRlciI6e2JveFNoYWRvdzpgMCAwIDAgJHsoMCxoZS5iZikocCl9ICR7aH1gLG91dGxpbmU6YDZweCBzb2xpZCAke0N9YCx3aWR0aDptLGhlaWdodDptLGluc2V0SW5saW5lU3RhcnQ6ZS5jYWxjKGYpLnN1YihtKS5kaXYoMikuZXF1YWwoKSxpbnNldEJsb2NrU3RhcnQ6ZS5jYWxjKGYpLnN1YihtKS5kaXYoMikuZXF1YWwoKX19fSxbYCYtbG9jayAke3R9LWhhbmRsZWBdOnsiJjo6YmVmb3JlLCAmOjphZnRlciI6e3RyYW5zaXRpb246Im5vbmUifX0sW2Ake3R9LW1hcmtgXTp7cG9zaXRpb246ImFic29sdXRlIixmb250U2l6ZTplLmZvbnRTaXplfSxbYCR7dH0tbWFyay10ZXh0YF06e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsZGlzcGxheToiaW5saW5lLWJsb2NrIixjb2xvcjplLmNvbG9yVGV4dERlc2NyaXB0aW9uLHRleHRBbGlnbjoiY2VudGVyIix3b3JkQnJlYWs6ImtlZXAtYWxsIixjdXJzb3I6InBvaW50ZXIiLHVzZXJTZWxlY3Q6Im5vbmUiLCImLWFjdGl2ZSI6e2NvbG9yOmUuY29sb3JUZXh0fX0sW2Ake3R9LXN0ZXBgXTp7cG9zaXRpb246ImFic29sdXRlIixiYWNrZ3JvdW5kOiJ0cmFuc3BhcmVudCIscG9pbnRlckV2ZW50czoibm9uZSJ9LFtgJHt0fS1kb3RgXTp7cG9zaXRpb246ImFic29sdXRlIix3aWR0aDphLGhlaWdodDphLGJhY2tncm91bmRDb2xvcjplLmNvbG9yQmdFbGV2YXRlZCxib3JkZXI6YCR7KDAsaGUuYmYpKHgpfSBzb2xpZCAke2UuZG90Qm9yZGVyQ29sb3J9YCxib3JkZXJSYWRpdXM6IjUwJSIsY3Vyc29yOiJwb2ludGVyIix0cmFuc2l0aW9uOmBib3JkZXItY29sb3IgJHtlLm1vdGlvbkR1cmF0aW9uU2xvd31gLHBvaW50ZXJFdmVudHM6ImF1dG8iLCImLWFjdGl2ZSI6e2JvcmRlckNvbG9yOmUuZG90QWN0aXZlQm9yZGVyQ29sb3J9fSxbYCYke3R9LWRpc2FibGVkYF06e2N1cnNvcjoibm90LWFsbG93ZWQiLFtgJHt0fS1yYWlsYF06e2JhY2tncm91bmRDb2xvcjpgJHtlLnJhaWxCZ30gIWltcG9ydGFudGB9LFtgJHt0fS10cmFja2BdOntiYWNrZ3JvdW5kQ29sb3I6YCR7ZS50cmFja0JnRGlzYWJsZWR9ICFpbXBvcnRhbnRgfSxbYAorICAgICAgICAgICR7dH0tZG90CisgICAgICAgIGBdOntiYWNrZ3JvdW5kQ29sb3I6ZS5jb2xvckJnRWxldmF0ZWQsYm9yZGVyQ29sb3I6ZS50cmFja0JnRGlzYWJsZWQsYm94U2hhZG93OiJub25lIixjdXJzb3I6Im5vdC1hbGxvd2VkIn0sW2Ake3R9LWhhbmRsZTo6YWZ0ZXJgXTp7YmFja2dyb3VuZENvbG9yOmUuY29sb3JCZ0VsZXZhdGVkLGN1cnNvcjoibm90LWFsbG93ZWQiLHdpZHRoOmYsaGVpZ2h0OmYsYm94U2hhZG93OmAwIDAgMCAkeygwLGhlLmJmKSh4KX0gJHtkfWAsaW5zZXRJbmxpbmVTdGFydDowLGluc2V0QmxvY2tTdGFydDowfSxbYAorICAgICAgICAgICR7dH0tbWFyay10ZXh0LAorICAgICAgICAgICR7dH0tZG90CisgICAgICAgIGBdOntjdXJzb3I6Im5vdC1hbGxvd2VkICFpbXBvcnRhbnQifX0sW2AmLXRvb2x0aXAgJHtufS10b29sdGlwLWlubmVyYF06e21pbldpZHRoOiJ1bnNldCJ9fSl9fSxfbD0oZSx0KT0+e2NvbnN0e2NvbXBvbmVudENsczpuLHJhaWxTaXplOnIsaGFuZGxlU2l6ZTphLGRvdFNpemU6bCxtYXJnaW5GdWxsOnUsY2FsYzpjfT1lLGQ9dD8icGFkZGluZ0Jsb2NrIjoicGFkZGluZ0lubGluZSIsdj10PyJ3aWR0aCI6ImhlaWdodCIsZj10PyJoZWlnaHQiOiJ3aWR0aCIsbT10PyJpbnNldEJsb2NrU3RhcnQiOiJpbnNldElubGluZVN0YXJ0IixoPXQ/InRvcCI6Imluc2V0SW5saW5lU3RhcnQiLEM9YyhyKS5tdWwoMykuc3ViKGEpLmRpdigyKS5lcXVhbCgpLHg9YyhhKS5zdWIocikuZGl2KDIpLmVxdWFsKCkscD10P3tib3JkZXJXaWR0aDpgJHsoMCxoZS5iZikoeCl9IDBgLHRyYW5zZm9ybTpgdHJhbnNsYXRlWSgkeygwLGhlLmJmKShjKHgpLm11bCgtMSkuZXF1YWwoKSl9KWB9Ontib3JkZXJXaWR0aDpgMCAkeygwLGhlLmJmKSh4KX1gLHRyYW5zZm9ybTpgdHJhbnNsYXRlWCgkeygwLGhlLmJmKShlLmNhbGMoeCkubXVsKC0xKS5lcXVhbCgpKX0pYH07cmV0dXJue1tkXTpyLFtmXTpjKHIpLm11bCgzKS5lcXVhbCgpLFtgJHtufS1yYWlsYF06e1t2XToiMTAwJSIsW2ZdOnJ9LFtgJHtufS10cmFjaywke259LXRyYWNrc2BdOntbZl06cn0sW2Ake259LXRyYWNrLWRyYWdnYWJsZWBdOk9iamVjdC5hc3NpZ24oe30scCksW2Ake259LWhhbmRsZWBdOntbbV06Q30sW2Ake259LW1hcmtgXTp7aW5zZXRJbmxpbmVTdGFydDowLHRvcDowLFtoXTpjKHIpLm11bCgzKS5hZGQodD8wOnUpLmVxdWFsKCksW3ZdOiIxMDAlIn0sW2Ake259LXN0ZXBgXTp7aW5zZXRJbmxpbmVTdGFydDowLHRvcDowLFtoXTpyLFt2XToiMTAwJSIsW2ZdOnJ9LFtgJHtufS1kb3RgXTp7cG9zaXRpb246ImFic29sdXRlIixbbV06YyhyKS5zdWIobCkuZGl2KDIpLmVxdWFsKCl9fX0sR2M9ZT0+e2NvbnN0e2NvbXBvbmVudENsczp0LG1hcmdpblBhcnRXaXRoTWFyazpufT1lO3JldHVybntbYCR7dH0taG9yaXpvbnRhbGBdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxfbChlLCEwKSkse1tgJiR7dH0td2l0aC1tYXJrc2BdOnttYXJnaW5Cb3R0b206bn19KX19LFFjPWU9Pntjb25zdHtjb21wb25lbnRDbHM6dH09ZTtyZXR1cm57W2Ake3R9LXZlcnRpY2FsYF06T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LF9sKGUsITEpKSx7aGVpZ2h0OiIxMDAlIn0pfX0sSmM9ZT0+e2NvbnN0IG49ZS5jb250cm9sSGVpZ2h0TEcvNCxyPWUuY29udHJvbEhlaWdodFNNLzIsYT1lLmxpbmVXaWR0aCsxLGw9ZS5saW5lV2lkdGgrMSoxLjUsdT1lLmNvbG9yUHJpbWFyeSxjPW5ldyBiby50KHUpLnNldEEoLjIpLnRvUmdiU3RyaW5nKCk7cmV0dXJue2NvbnRyb2xTaXplOm4scmFpbFNpemU6NCxoYW5kbGVTaXplOm4saGFuZGxlU2l6ZUhvdmVyOnIsZG90U2l6ZTo4LGhhbmRsZUxpbmVXaWR0aDphLGhhbmRsZUxpbmVXaWR0aEhvdmVyOmwscmFpbEJnOmUuY29sb3JGaWxsVGVydGlhcnkscmFpbEhvdmVyQmc6ZS5jb2xvckZpbGxTZWNvbmRhcnksdHJhY2tCZzplLmNvbG9yUHJpbWFyeUJvcmRlcix0cmFja0hvdmVyQmc6ZS5jb2xvclByaW1hcnlCb3JkZXJIb3ZlcixoYW5kbGVDb2xvcjplLmNvbG9yUHJpbWFyeUJvcmRlcixoYW5kbGVBY3RpdmVDb2xvcjp1LGhhbmRsZUFjdGl2ZU91dGxpbmVDb2xvcjpjLGhhbmRsZUNvbG9yRGlzYWJsZWQ6bmV3IGJvLnQoZS5jb2xvclRleHREaXNhYmxlZCkub25CYWNrZ3JvdW5kKGUuY29sb3JCZ0NvbnRhaW5lcikudG9IZXhTdHJpbmcoKSxkb3RCb3JkZXJDb2xvcjplLmNvbG9yQm9yZGVyU2Vjb25kYXJ5LGRvdEFjdGl2ZUJvcmRlckNvbG9yOmUuY29sb3JQcmltYXJ5Qm9yZGVyLHRyYWNrQmdEaXNhYmxlZDplLmNvbG9yQmdDb250YWluZXJEaXNhYmxlZH19O3ZhciBxYz0oMCxsbi5JJCkoIlNsaWRlciIsZT0+e2NvbnN0IHQ9KDAsQnIuSVgpKGUse21hcmdpblBhcnQ6ZS5jYWxjKGUuY29udHJvbEhlaWdodCkuc3ViKGUuY29udHJvbFNpemUpLmRpdigyKS5lcXVhbCgpLG1hcmdpbkZ1bGw6ZS5jYWxjKGUuY29udHJvbFNpemUpLmRpdigyKS5lcXVhbCgpLG1hcmdpblBhcnRXaXRoTWFyazplLmNhbGMoZS5jb250cm9sSGVpZ2h0TEcpLnN1YihlLmNvbnRyb2xTaXplKS5lcXVhbCgpfSk7cmV0dXJuW1hjKHQpLEdjKHQpLFFjKHQpXX0sSmMpO2Z1bmN0aW9uIF9pKCl7Y29uc3RbZSx0XT1vLnVzZVN0YXRlKCExKSxuPW8udXNlUmVmKG51bGwpLHI9KCk9PntKbi5aLmNhbmNlbChuLmN1cnJlbnQpfSxhPWw9PntyKCksbD90KGwpOm4uY3VycmVudD0oMCxKbi5aKSgoKT0+e3QobCl9KX07cmV0dXJuIG8udXNlRWZmZWN0KCgpPT5yLFtdKSxbZSxhXX12YXIgX2M9ZnVuY3Rpb24oZSx0KXt2YXIgbj17fTtmb3IodmFyIHIgaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxyKSYmdC5pbmRleE9mKHIpPDAmJihuW3JdPWVbcl0pO2lmKGUhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgYT0wLHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTthPHIubGVuZ3RoO2ErKyl0LmluZGV4T2YoclthXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsclthXSkmJihuW3JbYV1dPWVbclthXV0pO3JldHVybiBufTtmdW5jdGlvbiBlZChlLHQpe3JldHVybiBlfHxlPT09bnVsbD9lOnR8fHQ9PT1udWxsP3Q6bj0+dHlwZW9mIG49PSJudW1iZXIiP24udG9TdHJpbmcoKToiIn12YXIgZXM9by5mb3J3YXJkUmVmKChlLHQpPT57Y29uc3R7cHJlZml4Q2xzOm4scmFuZ2U6cixjbGFzc05hbWU6YSxyb290Q2xhc3NOYW1lOmwsc3R5bGU6dSxkaXNhYmxlZDpjLHRvb2x0aXBQcmVmaXhDbHM6ZCx0aXBGb3JtYXR0ZXI6dix0b29sdGlwVmlzaWJsZTpmLGdldFRvb2x0aXBQb3B1cENvbnRhaW5lcjptLHRvb2x0aXBQbGFjZW1lbnQ6aCx0b29sdGlwOkM9e30sb25DaGFuZ2VDb21wbGV0ZTp4LGNsYXNzTmFtZXM6cCxzdHlsZXM6eX09ZSx3PV9jKGUsWyJwcmVmaXhDbHMiLCJyYW5nZSIsImNsYXNzTmFtZSIsInJvb3RDbGFzc05hbWUiLCJzdHlsZSIsImRpc2FibGVkIiwidG9vbHRpcFByZWZpeENscyIsInRpcEZvcm1hdHRlciIsInRvb2x0aXBWaXNpYmxlIiwiZ2V0VG9vbHRpcFBvcHVwQ29udGFpbmVyIiwidG9vbHRpcFBsYWNlbWVudCIsInRvb2x0aXAiLCJvbkNoYW5nZUNvbXBsZXRlIiwiY2xhc3NOYW1lcyIsInN0eWxlcyJdKSx7dmVydGljYWw6UH09ZSx7Z2V0UHJlZml4Q2xzOkUsZGlyZWN0aW9uOk0sY2xhc3NOYW1lOkQsc3R5bGU6TixjbGFzc05hbWVzOlQsc3R5bGVzOlcsZ2V0UG9wdXBDb250YWluZXI6Qn09KDAsb24uZGopKCJzbGlkZXIiKSxZPW8udXNlQ29udGV4dChjbi5aKSxIPWMhPW51bGw/YzpZLHtoYW5kbGVSZW5kZXI6QSxkaXJlY3Rpb246Vn09by51c2VDb250ZXh0KEpsKSxYPShWfHxNKT09PSJydGwiLFtxLFFdPV9pKCksW2FlLGVlXT1faSgpLHJlPU9iamVjdC5hc3NpZ24oe30sQykse29wZW46c2UscGxhY2VtZW50OkosZ2V0UG9wdXBDb250YWluZXI6aWUscHJlZml4Q2xzOmNlLGZvcm1hdHRlcjp4ZX09cmUsdWU9c2UhPW51bGw/c2U6Zix5ZT0ocXx8YWUpJiZ1ZSE9PSExLFBlPWVkKHhlLHYpLFtnZSxSZV09X2koKSxTZT1jdD0+e3g9PW51bGx8fHgoY3QpLFJlKCExKX0sSWU9KGN0LFp0KT0+Y3R8fChadD9YPyJsZWZ0IjoicmlnaHQiOiJ0b3AiKSxaZT1FKCJzbGlkZXIiLG4pLFtDZSxFZSxwZV09cWMoWmUpLEplPW9lKCkoYSxELFQucm9vdCxwPT1udWxsP3ZvaWQgMDpwLnJvb3QsbCx7W2Ake1plfS1ydGxgXTpYLFtgJHtaZX0tbG9ja2BdOmdlfSxFZSxwZSk7WCYmIXcudmVydGljYWwmJih3LnJldmVyc2U9IXcucmV2ZXJzZSksby51c2VFZmZlY3QoKCk9Pntjb25zdCBjdD0oKT0+eygwLEpuLlopKCgpPT57ZWUoITEpfSwxKX07cmV0dXJuIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLGN0KSwoKT0+e2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLGN0KX19LFtdKTtjb25zdCBCZT1yJiYhdWUsdnQ9QXx8KChjdCxadCk9Pntjb25zdHtpbmRleDpidH09WnQsa3Q9Y3QucHJvcHM7ZnVuY3Rpb24gQWUoR2Usbm4saXQpe3ZhciBWZSx1dCxNZSxVZTtpdCYmKCh1dD0oVmU9dylbR2VdKT09PW51bGx8fHV0PT09dm9pZCAwfHx1dC5jYWxsKFZlLG5uKSksKFVlPShNZT1rdClbR2VdKT09PW51bGx8fFVlPT09dm9pZCAwfHxVZS5jYWxsKE1lLG5uKX1jb25zdCBxZT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sa3QpLHtvbk1vdXNlRW50ZXI6R2U9PntRKCEwKSxBZSgib25Nb3VzZUVudGVyIixHZSl9LG9uTW91c2VMZWF2ZTpHZT0+e1EoITEpLEFlKCJvbk1vdXNlTGVhdmUiLEdlKX0sb25Nb3VzZURvd246R2U9PntlZSghMCksUmUoITApLEFlKCJvbk1vdXNlRG93biIsR2UpfSxvbkZvY3VzOkdlPT57dmFyIG5uO2VlKCEwKSwobm49dy5vbkZvY3VzKT09PW51bGx8fG5uPT09dm9pZCAwfHxubi5jYWxsKHcsR2UpLEFlKCJvbkZvY3VzIixHZSwhMCl9LG9uQmx1cjpHZT0+e3ZhciBubjtlZSghMSksKG5uPXcub25CbHVyKT09PW51bGx8fG5uPT09dm9pZCAwfHxubi5jYWxsKHcsR2UpLEFlKCJvbkJsdXIiLEdlLCEwKX19KSxldD1vLmNsb25lRWxlbWVudChjdCxxZSksT3Q9KCEhdWV8fHllKSYmUGUhPT1udWxsO3JldHVybiBCZT9ldDpvLmNyZWF0ZUVsZW1lbnQocWwsT2JqZWN0LmFzc2lnbih7fSxyZSx7cHJlZml4Q2xzOkUoInRvb2x0aXAiLGNlIT1udWxsP2NlOmQpLHRpdGxlOlBlP1BlKFp0LnZhbHVlKToiIixvcGVuOk90LHBsYWNlbWVudDpJZShKIT1udWxsP0o6aCxQKSxrZXk6YnQsY2xhc3NOYW1lczp7cm9vdDpgJHtaZX0tdG9vbHRpcGB9LGdldFBvcHVwQ29udGFpbmVyOmllfHxtfHxCfSksZXQpfSkseXQ9QmU/KGN0LFp0KT0+e2NvbnN0IGJ0PW8uY2xvbmVFbGVtZW50KGN0LHtzdHlsZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sY3QucHJvcHMuc3R5bGUpLHt2aXNpYmlsaXR5OiJoaWRkZW4ifSl9KTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KHFsLE9iamVjdC5hc3NpZ24oe30scmUse3ByZWZpeENsczpFKCJ0b29sdGlwIixjZSE9bnVsbD9jZTpkKSx0aXRsZTpQZT9QZShadC52YWx1ZSk6IiIsb3BlbjpQZSE9PW51bGwmJnllLHBsYWNlbWVudDpJZShKIT1udWxsP0o6aCxQKSxrZXk6InRvb2x0aXAiLGNsYXNzTmFtZXM6e3Jvb3Q6YCR7WmV9LXRvb2x0aXBgfSxnZXRQb3B1cENvbnRhaW5lcjppZXx8bXx8QixkcmFnZ2luZ0RlbGV0ZTpadC5kcmFnZ2luZ0RlbGV0ZX0pLGJ0KX06dm9pZCAwLHN0PU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sVy5yb290KSxOKSx5PT1udWxsP3ZvaWQgMDp5LnJvb3QpLHUpLG50PU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxXLnRyYWNrcykseT09bnVsbD92b2lkIDA6eS50cmFja3MpLEl0PW9lKCkoVC50cmFja3MscD09bnVsbD92b2lkIDA6cC50cmFja3MpO3JldHVybiBDZShvLmNyZWF0ZUVsZW1lbnQoVWMsT2JqZWN0LmFzc2lnbih7fSx3LHtjbGFzc05hbWVzOk9iamVjdC5hc3NpZ24oe2hhbmRsZTpvZSgpKFQuaGFuZGxlLHA9PW51bGw/dm9pZCAwOnAuaGFuZGxlKSxyYWlsOm9lKCkoVC5yYWlsLHA9PW51bGw/dm9pZCAwOnAucmFpbCksdHJhY2s6b2UoKShULnRyYWNrLHA9PW51bGw/dm9pZCAwOnAudHJhY2spfSxJdD97dHJhY2tzOkl0fTp7fSksc3R5bGVzOk9iamVjdC5hc3NpZ24oe2hhbmRsZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sVy5oYW5kbGUpLHk9PW51bGw/dm9pZCAwOnkuaGFuZGxlKSxyYWlsOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxXLnJhaWwpLHk9PW51bGw/dm9pZCAwOnkucmFpbCksdHJhY2s6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LFcudHJhY2spLHk9PW51bGw/dm9pZCAwOnkudHJhY2spfSxPYmplY3Qua2V5cyhudCkubGVuZ3RoP3t0cmFja3M6bnR9Ont9KSxzdGVwOncuc3RlcCxyYW5nZTpyLGNsYXNzTmFtZTpKZSxzdHlsZTpzdCxkaXNhYmxlZDpILHJlZjp0LHByZWZpeENsczpaZSxoYW5kbGVSZW5kZXI6dnQsYWN0aXZlSGFuZGxlUmVuZGVyOnl0LG9uQ2hhbmdlQ29tcGxldGU6U2V9KSkpfSksdGQ9ZnVuY3Rpb24oZSx0KXt2YXIgbj17fTtmb3IodmFyIHIgaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxyKSYmdC5pbmRleE9mKHIpPDAmJihuW3JdPWVbcl0pO2lmKGUhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgYT0wLHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTthPHIubGVuZ3RoO2ErKyl0LmluZGV4T2YoclthXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsclthXSkmJihuW3JbYV1dPWVbclthXV0pO3JldHVybiBufTtjb25zdCB0cz1lPT57Y29uc3R7cHJlZml4Q2xzOnQsY29sb3JzOm4sdHlwZTpyLGNvbG9yOmEscmFuZ2U6bD0hMSxjbGFzc05hbWU6dSxhY3RpdmVJbmRleDpjLG9uQWN0aXZlOmQsb25EcmFnU3RhcnQ6dixvbkRyYWdDaGFuZ2U6ZixvbktleURlbGV0ZTptfT1lLGg9dGQoZSxbInByZWZpeENscyIsImNvbG9ycyIsInR5cGUiLCJjb2xvciIsInJhbmdlIiwiY2xhc3NOYW1lIiwiYWN0aXZlSW5kZXgiLCJvbkFjdGl2ZSIsIm9uRHJhZ1N0YXJ0Iiwib25EcmFnQ2hhbmdlIiwib25LZXlEZWxldGUiXSksQz1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30saCkse3RyYWNrOiExfSkseD1vLnVzZU1lbW8oKCk9PmBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICR7bi5tYXAoTj0+YCR7Ti5jb2xvcn0gJHtOLnBlcmNlbnR9JWApLmpvaW4oIiwgIil9KWAsW25dKSxwPW8udXNlTWVtbygoKT0+IWF8fCFyP251bGw6cj09PSJhbHBoYSI/YS50b1JnYlN0cmluZygpOmBoc2woJHthLnRvSHNiKCkuaH0sIDEwMCUsIDUwJSlgLFthLHJdKSx5PSgwLGd0LlopKHYpLHc9KDAsZ3QuWikoZiksUD1vLnVzZU1lbW8oKCk9Pih7b25EcmFnU3RhcnQ6eSxvbkRyYWdDaGFuZ2U6d30pLFtdKSxFPSgwLGd0LlopKChELE4pPT57Y29uc3R7b25Gb2N1czpULHN0eWxlOlcsY2xhc3NOYW1lOkIsb25LZXlEb3duOll9PUQucHJvcHMsSD1PYmplY3QuYXNzaWduKHt9LFcpO3JldHVybiByPT09ImdyYWRpZW50IiYmKEguYmFja2dyb3VuZD0oMCxJbi5BTykobixOLnZhbHVlKSksby5jbG9uZUVsZW1lbnQoRCx7b25Gb2N1czpBPT57ZD09bnVsbHx8ZChOLmluZGV4KSxUPT1udWxsfHxUKEEpfSxzdHlsZTpILGNsYXNzTmFtZTpvZSgpKEIse1tgJHt0fS1zbGlkZXItaGFuZGxlLWFjdGl2ZWBdOmM9PT1OLmluZGV4fSksb25LZXlEb3duOkE9PnsoQS5rZXk9PT0iRGVsZXRlInx8QS5rZXk9PT0iQmFja3NwYWNlIikmJm0mJm0oTi5pbmRleCksWT09bnVsbHx8WShBKX19KX0pLE09by51c2VNZW1vKCgpPT4oe2RpcmVjdGlvbjoibHRyIixoYW5kbGVSZW5kZXI6RX0pLFtdKTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KEpsLlByb3ZpZGVyLHt2YWx1ZTpNfSxvLmNyZWF0ZUVsZW1lbnQoVWwuUHJvdmlkZXIse3ZhbHVlOlB9LG8uY3JlYXRlRWxlbWVudChlcyxPYmplY3QuYXNzaWduKHt9LEMse2NsYXNzTmFtZTpvZSgpKHUsYCR7dH0tc2xpZGVyYCksdG9vbHRpcDp7b3BlbjohMX0scmFuZ2U6e2VkaXRhYmxlOmwsbWluQ291bnQ6Mn0sc3R5bGVzOntyYWlsOntiYWNrZ3JvdW5kOnh9LGhhbmRsZTpwP3tiYWNrZ3JvdW5kOnB9Ont9fSxjbGFzc05hbWVzOntyYWlsOmAke3R9LXNsaWRlci1yYWlsYCxoYW5kbGU6YCR7dH0tc2xpZGVyLWhhbmRsZWB9fSkpKSl9O3ZhciBuZD1lPT57Y29uc3R7dmFsdWU6dCxvbkNoYW5nZTpuLG9uQ2hhbmdlQ29tcGxldGU6cn09ZSxhPXU9Pm4odVswXSksbD11PT5yKHVbMF0pO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQodHMsT2JqZWN0LmFzc2lnbih7fSxlLHt2YWx1ZTpbdF0sb25DaGFuZ2U6YSxvbkNoYW5nZUNvbXBsZXRlOmx9KSl9O2Z1bmN0aW9uIG5zKGUpe3JldHVybigwLGxlLlopKGUpLnNvcnQoKHQsbik9PnQucGVyY2VudC1uLnBlcmNlbnQpfWNvbnN0IHJkPWU9Pntjb25zdHtwcmVmaXhDbHM6dCxtb2RlOm4sb25DaGFuZ2U6cixvbkNoYW5nZUNvbXBsZXRlOmEsb25BY3RpdmU6bCxhY3RpdmVJbmRleDp1LG9uR3JhZGllbnREcmFnZ2luZzpjLGNvbG9yczpkfT1lLHY9bj09PSJncmFkaWVudCIsZj1vLnVzZU1lbW8oKCk9PmQubWFwKHc9Pih7cGVyY2VudDp3LnBlcmNlbnQsY29sb3I6dy5jb2xvci50b1JnYlN0cmluZygpfSkpLFtkXSksbT1vLnVzZU1lbW8oKCk9PmYubWFwKHc9PncucGVyY2VudCksW2ZdKSxoPW8udXNlUmVmKGYpLEM9dz0+e2xldHtyYXdWYWx1ZXM6UCxkcmFnZ2luZ0luZGV4OkUsZHJhZ2dpbmdWYWx1ZTpNfT13O2lmKFAubGVuZ3RoPmYubGVuZ3RoKXtjb25zdCBEPSgwLEluLkFPKShmLE0pLE49KDAsbGUuWikoZik7Ti5zcGxpY2UoRSwwLHtwZXJjZW50Ok0sY29sb3I6RH0pLGguY3VycmVudD1OfWVsc2UgaC5jdXJyZW50PWY7YyghMCkscihuZXcgdnIueTkobnMoaC5jdXJyZW50KSksITApfSx4PXc9PntsZXR7ZGVsZXRlSW5kZXg6UCxkcmFnZ2luZ0luZGV4OkUsZHJhZ2dpbmdWYWx1ZTpNfT13LEQ9KDAsbGUuWikoaC5jdXJyZW50KTtQIT09LTE/RC5zcGxpY2UoUCwxKTooRFtFXT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sRFtFXSkse3BlcmNlbnQ6TX0pLEQ9bnMoRCkpLHIobmV3IHZyLnk5KEQpLCEwKX0scD13PT57Y29uc3QgUD0oMCxsZS5aKShmKTtQLnNwbGljZSh3LDEpO2NvbnN0IEU9bmV3IHZyLnk5KFApO3IoRSksYShFKX0seT13PT57YShuZXcgdnIueTkoZikpLHU+PXcubGVuZ3RoJiZsKHcubGVuZ3RoLTEpLGMoITEpfTtyZXR1cm4gdj9vLmNyZWF0ZUVsZW1lbnQodHMse21pbjowLG1heDoxMDAscHJlZml4Q2xzOnQsY2xhc3NOYW1lOmAke3R9LWdyYWRpZW50LXNsaWRlcmAsY29sb3JzOmYsY29sb3I6bnVsbCx2YWx1ZTptLHJhbmdlOiEwLG9uQ2hhbmdlQ29tcGxldGU6eSxkaXNhYmxlZDohMSx0eXBlOiJncmFkaWVudCIsYWN0aXZlSW5kZXg6dSxvbkFjdGl2ZTpsLG9uRHJhZ1N0YXJ0OkMsb25EcmFnQ2hhbmdlOngsb25LZXlEZWxldGU6cH0pOm51bGx9O3ZhciBhZD1vLm1lbW8ocmQpLG9kPWZ1bmN0aW9uKGUsdCl7dmFyIG49e307Zm9yKHZhciByIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikmJnQuaW5kZXhPZihyKTwwJiYobltyXT1lW3JdKTtpZihlIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIGE9MCxyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7YTxyLmxlbmd0aDthKyspdC5pbmRleE9mKHJbYV0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLHJbYV0pJiYobltyW2FdXT1lW3JbYV1dKTtyZXR1cm4gbn07Y29uc3QgaWQ9e3NsaWRlcjpuZH07dmFyIHJzPSgpPT57Y29uc3QgZT0oMCxvLnVzZUNvbnRleHQpKExhKSx7bW9kZTp0LG9uTW9kZUNoYW5nZTpuLG1vZGVPcHRpb25zOnIscHJlZml4Q2xzOmEsYWxsb3dDbGVhcjpsLHZhbHVlOnUsZGlzYWJsZWRBbHBoYTpjLG9uQ2hhbmdlOmQsb25DbGVhcjp2LG9uQ2hhbmdlQ29tcGxldGU6ZixhY3RpdmVJbmRleDptLGdyYWRpZW50RHJhZ2dpbmc6aH09ZSxDPW9kKGUsWyJtb2RlIiwib25Nb2RlQ2hhbmdlIiwibW9kZU9wdGlvbnMiLCJwcmVmaXhDbHMiLCJhbGxvd0NsZWFyIiwidmFsdWUiLCJkaXNhYmxlZEFscGhhIiwib25DaGFuZ2UiLCJvbkNsZWFyIiwib25DaGFuZ2VDb21wbGV0ZSIsImFjdGl2ZUluZGV4IiwiZ3JhZGllbnREcmFnZ2luZyJdKSx4PW8udXNlTWVtbygoKT0+dS5jbGVhcmVkP1t7cGVyY2VudDowLGNvbG9yOm5ldyB2ci55OSgiIil9LHtwZXJjZW50OjEwMCxjb2xvcjpuZXcgdnIueTkoIiIpfV06dS5nZXRDb2xvcnMoKSxbdV0pLHA9IXUuaXNHcmFkaWVudCgpLFt5LHddPW8udXNlU3RhdGUodSk7KDAsV24uWikoKCk9Pnt2YXIgejtwfHx3KCh6PXhbbV0pPT09bnVsbHx8ej09PXZvaWQgMD92b2lkIDA6ei5jb2xvcil9LFtoLG1dKTtjb25zdCBQPW8udXNlTWVtbygoKT0+e3ZhciB6O3JldHVybiBwP3U6aD95Oih6PXhbbV0pPT09bnVsbHx8ej09PXZvaWQgMD92b2lkIDA6ei5jb2xvcn0sW3UsbSxwLHksaF0pLFtFLE1dPW8udXNlU3RhdGUoUCksW0QsTl09by51c2VTdGF0ZSgwKSxUPUUhPW51bGwmJkUuZXF1YWxzKFApP1A6RTsoMCxXbi5aKSgoKT0+e00oUCl9LFtELFA9PW51bGw/dm9pZCAwOlAudG9IZXhTdHJpbmcoKV0pO2NvbnN0IFc9KHosWCk9PntsZXQgcT0oMCxJbi52Qykoeik7aWYodS5jbGVhcmVkKXtjb25zdCBhZT1xLnRvUmdiKCk7aWYoIWFlLnImJiFhZS5nJiYhYWUuYiYmWCl7Y29uc3R7dHlwZTplZSx2YWx1ZTpyZT0wfT1YO3E9bmV3IHZyLnk5KHtoOmVlPT09Imh1ZSI/cmU6MCxzOjEsYjoxLGE6ZWU9PT0iYWxwaGEiP3JlLzEwMDoxfSl9ZWxzZSBxPSgwLEluLlQ3KShxKX1pZih0PT09InNpbmdsZSIpcmV0dXJuIHE7Y29uc3QgUT0oMCxsZS5aKSh4KTtyZXR1cm4gUVttXT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sUVttXSkse2NvbG9yOnF9KSxuZXcgdnIueTkoUSl9LEI9KHosWCxxKT0+e2NvbnN0IFE9Vyh6LHEpO00oUS5pc0dyYWRpZW50KCk/US5nZXRDb2xvcnMoKVttXS5jb2xvcjpRKSxkKFEsWCl9LFk9KHosWCk9PntmKFcoeixYKSksTihxPT5xKzEpfSxIPXo9PntkKFcoeikpfTtsZXQgQT1udWxsO2NvbnN0IFY9ci5sZW5ndGg+MTtyZXR1cm4obHx8VikmJihBPW8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmAke2F9LW9wZXJhdGlvbmB9LFYmJm8uY3JlYXRlRWxlbWVudChQcix7c2l6ZToic21hbGwiLG9wdGlvbnM6cix2YWx1ZTp0LG9uQ2hhbmdlOm59KSxvLmNyZWF0ZUVsZW1lbnQoeWksT2JqZWN0LmFzc2lnbih7cHJlZml4Q2xzOmEsdmFsdWU6dSxvbkNoYW5nZTp6PT57ZCh6KSx2PT1udWxsfHx2KCl9fSxDKSkpKSxvLmNyZWF0ZUVsZW1lbnQoby5GcmFnbWVudCxudWxsLEEsby5jcmVhdGVFbGVtZW50KGFkLE9iamVjdC5hc3NpZ24oe30sZSx7Y29sb3JzOnh9KSksby5jcmVhdGVFbGVtZW50KE9hLlpQLHtwcmVmaXhDbHM6YSx2YWx1ZTpUPT1udWxsP3ZvaWQgMDpULnRvSHNiKCksZGlzYWJsZWRBbHBoYTpjLG9uQ2hhbmdlOih6LFgpPT57Qih6LCEwLFgpfSxvbkNoYW5nZUNvbXBsZXRlOih6LFgpPT57WSh6LFgpfSxjb21wb25lbnRzOmlkfSksby5jcmVhdGVFbGVtZW50KENjLE9iamVjdC5hc3NpZ24oe3ZhbHVlOlAsb25DaGFuZ2U6SCxwcmVmaXhDbHM6YSxkaXNhYmxlZEFscGhhOmN9LEMpKSl9LGxkPWkoMzI2OTUpLGFzPSgpPT57Y29uc3R7cHJlZml4Q2xzOmUsdmFsdWU6dCxwcmVzZXRzOm4sb25DaGFuZ2U6cn09KDAsby51c2VDb250ZXh0KSh6cik7cmV0dXJuIEFycmF5LmlzQXJyYXkobik/by5jcmVhdGVFbGVtZW50KGxkLlose3ZhbHVlOnQscHJlc2V0czpuLHByZWZpeENsczplLG9uQ2hhbmdlOnJ9KTpudWxsfSxzZD1lPT57Y29uc3R7cHJlZml4Q2xzOnQscHJlc2V0czpuLHBhbmVsUmVuZGVyOnIsdmFsdWU6YSxvbkNoYW5nZTpsLG9uQ2xlYXI6dSxhbGxvd0NsZWFyOmMsZGlzYWJsZWRBbHBoYTpkLG1vZGU6dixvbk1vZGVDaGFuZ2U6Zixtb2RlT3B0aW9uczptLG9uQ2hhbmdlQ29tcGxldGU6aCxhY3RpdmVJbmRleDpDLG9uQWN0aXZlOngsZm9ybWF0OnAsb25Gb3JtYXRDaGFuZ2U6eSxncmFkaWVudERyYWdnaW5nOncsb25HcmFkaWVudERyYWdnaW5nOlAsZGlzYWJsZWRGb3JtYXQ6RX09ZSxNPWAke3R9LWlubmVyYCxEPW8udXNlTWVtbygoKT0+KHtwcmVmaXhDbHM6dCx2YWx1ZTphLG9uQ2hhbmdlOmwsb25DbGVhcjp1LGFsbG93Q2xlYXI6YyxkaXNhYmxlZEFscGhhOmQsbW9kZTp2LG9uTW9kZUNoYW5nZTpmLG1vZGVPcHRpb25zOm0sb25DaGFuZ2VDb21wbGV0ZTpoLGFjdGl2ZUluZGV4OkMsb25BY3RpdmU6eCxmb3JtYXQ6cCxvbkZvcm1hdENoYW5nZTp5LGdyYWRpZW50RHJhZ2dpbmc6dyxvbkdyYWRpZW50RHJhZ2dpbmc6UCxkaXNhYmxlZEZvcm1hdDpFfSksW3QsYSxsLHUsYyxkLHYsZixtLGgsQyx4LHAseSx3LFAsRV0pLE49by51c2VNZW1vKCgpPT4oe3ByZWZpeENsczp0LHZhbHVlOmEscHJlc2V0czpuLG9uQ2hhbmdlOmx9KSxbdCxhLG4sbF0pLFQ9by5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YCR7TX0tY29udGVudGB9LG8uY3JlYXRlRWxlbWVudChycyxudWxsKSxBcnJheS5pc0FycmF5KG4pJiZvLmNyZWF0ZUVsZW1lbnQoVGEuWixudWxsKSxvLmNyZWF0ZUVsZW1lbnQoYXMsbnVsbCkpO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoTGEuUHJvdmlkZXIse3ZhbHVlOkR9LG8uY3JlYXRlRWxlbWVudCh6ci5Qcm92aWRlcix7dmFsdWU6Tn0sby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6TX0sdHlwZW9mIHI9PSJmdW5jdGlvbiI/cihULHtjb21wb25lbnRzOntQaWNrZXI6cnMsUHJlc2V0czphc319KTpUKSkpfSxxbz1pKDY0MjE3KSxQaT1pKDEwMTEwKSx1ZD1mdW5jdGlvbihlLHQpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHIpJiZ0LmluZGV4T2Yocik8MCYmKG5bcl09ZVtyXSk7aWYoZSE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBhPTAscj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2E8ci5sZW5ndGg7YSsrKXQuaW5kZXhPZihyW2FdKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxyW2FdKSYmKG5bclthXV09ZVtyW2FdXSk7cmV0dXJuIG59LGNkPSgwLG8uZm9yd2FyZFJlZikoKGUsdCk9Pntjb25zdHtjb2xvcjpuLHByZWZpeENsczpyLG9wZW46YSxkaXNhYmxlZDpsLGZvcm1hdDp1LGNsYXNzTmFtZTpjLHNob3dUZXh0OmQsYWN0aXZlSW5kZXg6dn09ZSxmPXVkKGUsWyJjb2xvciIsInByZWZpeENscyIsIm9wZW4iLCJkaXNhYmxlZCIsImZvcm1hdCIsImNsYXNzTmFtZSIsInNob3dUZXh0IiwiYWN0aXZlSW5kZXgiXSksbT1gJHtyfS10cmlnZ2VyYCxoPWAke219LXRleHRgLEM9YCR7aH0tY2VsbGAsW3hdPSgwLFBpLlopKCJDb2xvclBpY2tlciIpLHA9by51c2VNZW1vKCgpPT57aWYoIWQpcmV0dXJuIiI7aWYodHlwZW9mIGQ9PSJmdW5jdGlvbiIpcmV0dXJuIGQobik7aWYobi5jbGVhcmVkKXJldHVybiB4LnRyYW5zcGFyZW50O2lmKG4uaXNHcmFkaWVudCgpKXJldHVybiBuLmdldENvbG9ycygpLm1hcCgoRSxNKT0+e2NvbnN0IEQ9diE9PS0xJiZ2IT09TTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJzcGFuIix7a2V5Ok0sY2xhc3NOYW1lOm9lKCkoQyxEJiZgJHtDfS1pbmFjdGl2ZWApfSxFLmNvbG9yLnRvUmdiU3RyaW5nKCksIiAiLEUucGVyY2VudCwiJSIpfSk7Y29uc3Qgdz1uLnRvSGV4U3RyaW5nKCkudG9VcHBlckNhc2UoKSxQPSgwLEluLnVaKShuKTtzd2l0Y2godSl7Y2FzZSJyZ2IiOnJldHVybiBuLnRvUmdiU3RyaW5nKCk7Y2FzZSJoc2IiOnJldHVybiBuLnRvSHNiU3RyaW5nKCk7ZGVmYXVsdDpyZXR1cm4gUDwxMDA/YCR7dy5zbGljZSgwLDcpfSwke1B9JWA6d319LFtuLHUsZCx2XSkseT0oMCxvLnVzZU1lbW8pKCgpPT5uLmNsZWFyZWQ/by5jcmVhdGVFbGVtZW50KHlpLHtwcmVmaXhDbHM6cn0pOm8uY3JlYXRlRWxlbWVudChPYS5HNSx7cHJlZml4Q2xzOnIsY29sb3I6bi50b0Nzc1N0cmluZygpfSksW24scl0pO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoImRpdiIsT2JqZWN0LmFzc2lnbih7cmVmOnQsY2xhc3NOYW1lOm9lKCkobSxjLHtbYCR7bX0tYWN0aXZlYF06YSxbYCR7bX0tZGlzYWJsZWRgXTpsfSl9LCgwLHFvLlopKGYpKSx5LGQmJm8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmh9LHApKX0pO2Z1bmN0aW9uIGRkKGUsdCxuKXtjb25zdFtyXT0oMCxQaS5aKSgiQ29sb3JQaWNrZXIiKSxbYSxsXT0oMCxydC5aKShlLHt2YWx1ZTp0fSksW3UsY109by51c2VTdGF0ZSgic2luZ2xlIiksW2Qsdl09by51c2VNZW1vKCgpPT57Y29uc3QgcD0oQXJyYXkuaXNBcnJheShuKT9uOltuXSkuZmlsdGVyKEU9PkUpO3AubGVuZ3RofHxwLnB1c2goInNpbmdsZSIpO2NvbnN0IHk9bmV3IFNldChwKSx3PVtdLFA9KEUsTSk9Pnt5LmhhcyhFKSYmdy5wdXNoKHtsYWJlbDpNLHZhbHVlOkV9KX07cmV0dXJuIFAoInNpbmdsZSIsci5zaW5nbGVDb2xvciksUCgiZ3JhZGllbnQiLHIuZ3JhZGllbnRDb2xvciksW3cseV19LFtuXSksW2YsbV09by51c2VTdGF0ZShudWxsKSxoPSgwLGd0LlopKHA9PnttKHApLGwocCl9KSxDPW8udXNlTWVtbygoKT0+e2NvbnN0IHA9KDAsSW4udkMpKGF8fCIiKTtyZXR1cm4gcC5lcXVhbHMoZik/ZjpwfSxbYSxmXSkseD1vLnVzZU1lbW8oKCk9Pnt2YXIgcDtyZXR1cm4gdi5oYXModSk/dToocD1kWzBdKT09PW51bGx8fHA9PT12b2lkIDA/dm9pZCAwOnAudmFsdWV9LFt2LHUsZF0pO3JldHVybiBvLnVzZUVmZmVjdCgoKT0+e2MoQy5pc0dyYWRpZW50KCk/ImdyYWRpZW50Ijoic2luZ2xlIil9LFtDXSksW0MsaCx4LGMsZF19Y29uc3Qgb3M9KGUsdCk9Pih7YmFja2dyb3VuZEltYWdlOmBjb25pYy1ncmFkaWVudCgke3R9IDAgMjUlLCB0cmFuc3BhcmVudCAwIDUwJSwgJHt0fSAwIDc1JSwgdHJhbnNwYXJlbnQgMClgLGJhY2tncm91bmRTaXplOmAke2V9ICR7ZX1gfSk7dmFyIGlzPShlLHQpPT57Y29uc3R7Y29tcG9uZW50Q2xzOm4sYm9yZGVyUmFkaXVzU006cixjb2xvclBpY2tlckluc2V0U2hhZG93OmEsbGluZVdpZHRoOmwsY29sb3JGaWxsU2Vjb25kYXJ5OnV9PWU7cmV0dXJue1tgJHtufS1jb2xvci1ibG9ja2BdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7cG9zaXRpb246InJlbGF0aXZlIixib3JkZXJSYWRpdXM6cix3aWR0aDp0LGhlaWdodDp0LGJveFNoYWRvdzphLGZsZXg6Im5vbmUifSxvcygiNTAlIixlLmNvbG9yRmlsbFNlY29uZGFyeSkpLHtbYCR7bn0tY29sb3ItYmxvY2staW5uZXJgXTp7d2lkdGg6IjEwMCUiLGhlaWdodDoiMTAwJSIsYm94U2hhZG93OmBpbnNldCAwIDAgMCAkeygwLGhlLmJmKShsKX0gJHt1fWAsYm9yZGVyUmFkaXVzOiJpbmhlcml0In19KX19LGZkPWU9Pntjb25zdHtjb21wb25lbnRDbHM6dCxhbnRDbHM6bixmb250U2l6ZVNNOnIsbGluZUhlaWdodFNNOmEsY29sb3JQaWNrZXJBbHBoYUlucHV0V2lkdGg6bCxtYXJnaW5YWFM6dSxwYWRkaW5nWFhTOmMsY29udHJvbEhlaWdodFNNOmQsbWFyZ2luWFM6dixmb250U2l6ZUljb246ZixwYWRkaW5nWFM6bSxjb2xvclRleHRQbGFjZWhvbGRlcjpoLGNvbG9yUGlja2VySW5wdXROdW1iZXJIYW5kbGVXaWR0aDpDLGxpbmVXaWR0aDp4fT1lO3JldHVybntbYCR7dH0taW5wdXQtY29udGFpbmVyYF06e2Rpc3BsYXk6ImZsZXgiLFtgJHt0fS1zdGVwcGVycyR7bn0taW5wdXQtbnVtYmVyYF06e2ZvbnRTaXplOnIsbGluZUhlaWdodDphLFtgJHtufS1pbnB1dC1udW1iZXItaW5wdXRgXTp7cGFkZGluZ0lubGluZVN0YXJ0OmMscGFkZGluZ0lubGluZUVuZDowfSxbYCR7bn0taW5wdXQtbnVtYmVyLWhhbmRsZXItd3JhcGBdOnt3aWR0aDpDfX0sW2Ake3R9LXN0ZXBwZXJzJHt0fS1hbHBoYS1pbnB1dGBdOntmbGV4OmAwIDAgJHsoMCxoZS5iZikobCl9YCxtYXJnaW5JbmxpbmVTdGFydDp1fSxbYCR7dH0tZm9ybWF0LXNlbGVjdCR7bn0tc2VsZWN0YF06e21hcmdpbklubGluZUVuZDp2LHdpZHRoOiJhdXRvIiwiJi1zaW5nbGUiOntbYCR7bn0tc2VsZWN0LXNlbGVjdG9yYF06e3BhZGRpbmc6MCxib3JkZXI6MH0sW2Ake259LXNlbGVjdC1hcnJvd2BdOntpbnNldElubGluZUVuZDowfSxbYCR7bn0tc2VsZWN0LXNlbGVjdGlvbi1pdGVtYF06e3BhZGRpbmdJbmxpbmVFbmQ6ZS5jYWxjKGYpLmFkZCh1KS5lcXVhbCgpLGZvbnRTaXplOnIsbGluZUhlaWdodDooMCxoZS5iZikoZCl9LFtgJHtufS1zZWxlY3QtaXRlbS1vcHRpb24tY29udGVudGBdOntmb250U2l6ZTpyLGxpbmVIZWlnaHQ6YX0sW2Ake259LXNlbGVjdC1kcm9wZG93bmBdOntbYCR7bn0tc2VsZWN0LWl0ZW1gXTp7bWluSGVpZ2h0OiJhdXRvIn19fX0sW2Ake3R9LWlucHV0YF06e2dhcDp1LGFsaWduSXRlbXM6ImNlbnRlciIsZmxleDoxLHdpZHRoOjAsW2Ake3R9LWhzYi1pbnB1dCwke3R9LXJnYi1pbnB1dGBdOntkaXNwbGF5OiJmbGV4IixnYXA6dSxhbGlnbkl0ZW1zOiJjZW50ZXIifSxbYCR7dH0tc3RlcHBlcnNgXTp7ZmxleDoxfSxbYCR7dH0taGV4LWlucHV0JHtufS1pbnB1dC1hZmZpeC13cmFwcGVyYF06e2ZsZXg6MSxwYWRkaW5nOmAwICR7KDAsaGUuYmYpKG0pfWAsW2Ake259LWlucHV0YF06e2ZvbnRTaXplOnIsdGV4dFRyYW5zZm9ybToidXBwZXJjYXNlIixsaW5lSGVpZ2h0OigwLGhlLmJmKShlLmNhbGMoZCkuc3ViKGUuY2FsYyh4KS5tdWwoMikpLmVxdWFsKCkpfSxbYCR7bn0taW5wdXQtcHJlZml4YF06e2NvbG9yOmh9fX19fX0sdmQ9ZT0+e2NvbnN0e2NvbXBvbmVudENsczp0LGNvbnRyb2xIZWlnaHRMRzpuLGJvcmRlclJhZGl1c1NNOnIsY29sb3JQaWNrZXJJbnNldFNoYWRvdzphLG1hcmdpblNNOmwsY29sb3JCZ0VsZXZhdGVkOnUsY29sb3JGaWxsU2Vjb25kYXJ5OmMsbGluZVdpZHRoQm9sZDpkLGNvbG9yUGlja2VySGFuZGxlclNpemU6dn09ZTtyZXR1cm57dXNlclNlbGVjdDoibm9uZSIsW2Ake3R9LXNlbGVjdGBdOntbYCR7dH0tcGFsZXR0ZWBdOnttaW5IZWlnaHQ6ZS5jYWxjKG4pLm11bCg0KS5lcXVhbCgpLG92ZXJmbG93OiJoaWRkZW4iLGJvcmRlclJhZGl1czpyfSxbYCR7dH0tc2F0dXJhdGlvbmBdOntwb3NpdGlvbjoiYWJzb2x1dGUiLGJvcmRlclJhZGl1czoiaW5oZXJpdCIsYm94U2hhZG93OmEsaW5zZXQ6MH0sbWFyZ2luQm90dG9tOmx9LFtgJHt0fS1oYW5kbGVyYF06e3dpZHRoOnYsaGVpZ2h0OnYsYm9yZGVyOmAkeygwLGhlLmJmKShkKX0gc29saWQgJHt1fWAscG9zaXRpb246InJlbGF0aXZlIixib3JkZXJSYWRpdXM6IjUwJSIsY3Vyc29yOiJwb2ludGVyIixib3hTaGFkb3c6YCR7YX0sIDAgMCAwIDFweCAke2N9YH19fSxtZD1lPT57Y29uc3R7Y29tcG9uZW50Q2xzOnQsYW50Q2xzOm4sY29sb3JUZXh0UXVhdGVybmFyeTpyLHBhZGRpbmdYWFM6YSxjb2xvclBpY2tlclByZXNldENvbG9yU2l6ZTpsLGZvbnRTaXplU006dSxjb2xvclRleHQ6YyxsaW5lSGVpZ2h0U006ZCxsaW5lV2lkdGg6dixib3JkZXJSYWRpdXM6Zixjb2xvckZpbGw6bSxjb2xvcldoaXRlOmgsbWFyZ2luWFhTOkMscGFkZGluZ1hTOngsZm9udEhlaWdodFNNOnB9PWU7cmV0dXJue1tgJHt0fS1wcmVzZXRzYF06e1tgJHtufS1jb2xsYXBzZS1pdGVtID4gJHtufS1jb2xsYXBzZS1oZWFkZXJgXTp7cGFkZGluZzowLFtgJHtufS1jb2xsYXBzZS1leHBhbmQtaWNvbmBdOntoZWlnaHQ6cCxjb2xvcjpyLHBhZGRpbmdJbmxpbmVFbmQ6YX19LFtgJHtufS1jb2xsYXBzZWBdOntkaXNwbGF5OiJmbGV4IixmbGV4RGlyZWN0aW9uOiJjb2x1bW4iLGdhcDpDfSxbYCR7bn0tY29sbGFwc2UtaXRlbSA+ICR7bn0tY29sbGFwc2UtY29udGVudCA+ICR7bn0tY29sbGFwc2UtY29udGVudC1ib3hgXTp7cGFkZGluZzpgJHsoMCxoZS5iZikoeCl9IDBgfSwiJi1sYWJlbCI6e2ZvbnRTaXplOnUsY29sb3I6YyxsaW5lSGVpZ2h0OmR9LCImLWl0ZW1zIjp7ZGlzcGxheToiZmxleCIsZmxleFdyYXA6IndyYXAiLGdhcDplLmNhbGMoQykubXVsKDEuNSkuZXF1YWwoKSxbYCR7dH0tcHJlc2V0cy1jb2xvcmBdOntwb3NpdGlvbjoicmVsYXRpdmUiLGN1cnNvcjoicG9pbnRlciIsd2lkdGg6bCxoZWlnaHQ6bCwiJjo6YmVmb3JlIjp7Y29udGVudDonIiInLHBvaW50ZXJFdmVudHM6Im5vbmUiLHdpZHRoOmUuY2FsYyhsKS5hZGQoZS5jYWxjKHYpLm11bCg0KSkuZXF1YWwoKSxoZWlnaHQ6ZS5jYWxjKGwpLmFkZChlLmNhbGModikubXVsKDQpKS5lcXVhbCgpLHBvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOmUuY2FsYyh2KS5tdWwoLTIpLmVxdWFsKCksaW5zZXRJbmxpbmVTdGFydDplLmNhbGModikubXVsKC0yKS5lcXVhbCgpLGJvcmRlclJhZGl1czpmLGJvcmRlcjpgJHsoMCxoZS5iZikodil9IHNvbGlkIHRyYW5zcGFyZW50YCx0cmFuc2l0aW9uOmBib3JkZXItY29sb3IgJHtlLm1vdGlvbkR1cmF0aW9uTWlkfSAke2UubW90aW9uRWFzZUluQmFja31gfSwiJjpob3Zlcjo6YmVmb3JlIjp7Ym9yZGVyQ29sb3I6bX0sIiY6OmFmdGVyIjp7Ym94U2l6aW5nOiJib3JkZXItYm94Iixwb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDoiNTAlIixpbnNldElubGluZVN0YXJ0OiIyMS41JSIsZGlzcGxheToidGFibGUiLHdpZHRoOmUuY2FsYyhsKS5kaXYoMTMpLm11bCg1KS5lcXVhbCgpLGhlaWdodDplLmNhbGMobCkuZGl2KDEzKS5tdWwoOCkuZXF1YWwoKSxib3JkZXI6YCR7KDAsaGUuYmYpKGUubGluZVdpZHRoQm9sZCl9IHNvbGlkICR7ZS5jb2xvcldoaXRlfWAsYm9yZGVyVG9wOjAsYm9yZGVySW5saW5lU3RhcnQ6MCx0cmFuc2Zvcm06InJvdGF0ZSg0NWRlZykgc2NhbGUoMCkgdHJhbnNsYXRlKC01MCUsLTUwJSkiLG9wYWNpdHk6MCxjb250ZW50OiciIicsdHJhbnNpdGlvbjpgYWxsICR7ZS5tb3Rpb25EdXJhdGlvbkZhc3R9ICR7ZS5tb3Rpb25FYXNlSW5CYWNrfSwgb3BhY2l0eSAke2UubW90aW9uRHVyYXRpb25GYXN0fWB9LFtgJiR7dH0tcHJlc2V0cy1jb2xvci1jaGVja2VkYF06eyImOjphZnRlciI6e29wYWNpdHk6MSxib3JkZXJDb2xvcjpoLHRyYW5zZm9ybToicm90YXRlKDQ1ZGVnKSBzY2FsZSgxKSB0cmFuc2xhdGUoLTUwJSwtNTAlKSIsdHJhbnNpdGlvbjpgdHJhbnNmb3JtICR7ZS5tb3Rpb25EdXJhdGlvbk1pZH0gJHtlLm1vdGlvbkVhc2VPdXRCYWNrfSAke2UubW90aW9uRHVyYXRpb25GYXN0fWB9LFtgJiR7dH0tcHJlc2V0cy1jb2xvci1icmlnaHRgXTp7IiY6OmFmdGVyIjp7Ym9yZGVyQ29sb3I6InJnYmEoMCwgMCwgMCwgMC40NSkifX19fX0sIiYtZW1wdHkiOntmb250U2l6ZTp1LGNvbG9yOnJ9fX19LGdkPWU9Pntjb25zdHtjb21wb25lbnRDbHM6dCxjb2xvclBpY2tlckluc2V0U2hhZG93Om4sY29sb3JCZ0VsZXZhdGVkOnIsY29sb3JGaWxsU2Vjb25kYXJ5OmEsbGluZVdpZHRoQm9sZDpsLGNvbG9yUGlja2VySGFuZGxlclNpemVTTTp1LGNvbG9yUGlja2VyU2xpZGVySGVpZ2h0OmMsbWFyZ2luU006ZCxtYXJnaW5YUzp2fT1lLGY9ZS5jYWxjKHUpLnN1YihlLmNhbGMobCkubXVsKDIpLmVxdWFsKCkpLmVxdWFsKCksbT1lLmNhbGModSkuYWRkKGUuY2FsYyhsKS5tdWwoMikuZXF1YWwoKSkuZXF1YWwoKSxoPXsiJjphZnRlciI6e3RyYW5zZm9ybToic2NhbGUoMSkiLGJveFNoYWRvdzpgJHtufSwgMCAwIDAgMXB4ICR7ZS5jb2xvclByaW1hcnlBY3RpdmV9YH19O3JldHVybntbYCR7dH0tc2xpZGVyYF06W29zKCgwLGhlLmJmKShjKSxlLmNvbG9yRmlsbFNlY29uZGFyeSkse21hcmdpbjowLHBhZGRpbmc6MCxoZWlnaHQ6Yyxib3JkZXJSYWRpdXM6ZS5jYWxjKGMpLmRpdigyKS5lcXVhbCgpLCImLXJhaWwiOntoZWlnaHQ6Yyxib3JkZXJSYWRpdXM6ZS5jYWxjKGMpLmRpdigyKS5lcXVhbCgpLGJveFNoYWRvdzpufSxbYCYgJHt0fS1zbGlkZXItaGFuZGxlYF06e3dpZHRoOmYsaGVpZ2h0OmYsdG9wOjAsYm9yZGVyUmFkaXVzOiIxMDAlIiwiJjpiZWZvcmUiOntkaXNwbGF5OiJibG9jayIscG9zaXRpb246ImFic29sdXRlIixiYWNrZ3JvdW5kOiJ0cmFuc3BhcmVudCIsbGVmdDp7X3NraXBfY2hlY2tfOiEwLHZhbHVlOiI1MCUifSx0b3A6IjUwJSIsdHJhbnNmb3JtOiJ0cmFuc2xhdGUoLTUwJSwgLTUwJSkiLHdpZHRoOm0saGVpZ2h0Om0sYm9yZGVyUmFkaXVzOiIxMDAlIn0sIiY6YWZ0ZXIiOnt3aWR0aDp1LGhlaWdodDp1LGJvcmRlcjpgJHsoMCxoZS5iZikobCl9IHNvbGlkICR7cn1gLGJveFNoYWRvdzpgJHtufSwgMCAwIDAgMXB4ICR7YX1gLG91dGxpbmU6Im5vbmUiLGluc2V0SW5saW5lU3RhcnQ6ZS5jYWxjKGwpLm11bCgtMSkuZXF1YWwoKSx0b3A6ZS5jYWxjKGwpLm11bCgtMSkuZXF1YWwoKSxiYWNrZ3JvdW5kOiJ0cmFuc3BhcmVudCIsdHJhbnNpdGlvbjoibm9uZSJ9LCImOmZvY3VzIjpofX1dLFtgJHt0fS1zbGlkZXItY29udGFpbmVyYF06e2Rpc3BsYXk6ImZsZXgiLGdhcDpkLG1hcmdpbkJvdHRvbTpkLFtgJHt0fS1zbGlkZXItZ3JvdXBgXTp7ZmxleDoxLGZsZXhEaXJlY3Rpb246ImNvbHVtbiIsanVzdGlmeUNvbnRlbnQ6InNwYWNlLWJldHdlZW4iLGRpc3BsYXk6ImZsZXgiLCImLWRpc2FibGVkLWFscGhhIjp7anVzdGlmeUNvbnRlbnQ6ImNlbnRlciJ9fX0sW2Ake3R9LWdyYWRpZW50LXNsaWRlcmBdOnttYXJnaW5Cb3R0b206dixbYCYgJHt0fS1zbGlkZXItaGFuZGxlYF06eyImOmFmdGVyIjp7dHJhbnNmb3JtOiJzY2FsZSgwLjgpIn0sIiYtYWN0aXZlLCAmOmZvY3VzIjpofX19fTtjb25zdCBlbD0oZSx0LG4pPT4oe2JvcmRlcklubGluZUVuZFdpZHRoOmUubGluZVdpZHRoLGJvcmRlckNvbG9yOnQsYm94U2hhZG93OmAwIDAgMCAkeygwLGhlLmJmKShlLmNvbnRyb2xPdXRsaW5lV2lkdGgpfSAke259YCxvdXRsaW5lOjB9KSxoZD1lPT57Y29uc3R7Y29tcG9uZW50Q2xzOnR9PWU7cmV0dXJueyImLXJ0bCI6e1tgJHt0fS1wcmVzZXRzLWNvbG9yYF06eyImOjphZnRlciI6e2RpcmVjdGlvbjoibHRyIn19LFtgJHt0fS1jbGVhcmBdOnsiJjo6YWZ0ZXIiOntkaXJlY3Rpb246Imx0ciJ9fX19fSxscz0oZSx0LG4pPT57Y29uc3R7Y29tcG9uZW50Q2xzOnIsYm9yZGVyUmFkaXVzU006YSxsaW5lV2lkdGg6bCxjb2xvclNwbGl0OnUsY29sb3JCb3JkZXI6YyxyZWQ2OmR9PWU7cmV0dXJue1tgJHtyfS1jbGVhcmBdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7d2lkdGg6dCxoZWlnaHQ6dCxib3JkZXJSYWRpdXM6YSxib3JkZXI6YCR7KDAsaGUuYmYpKGwpfSBzb2xpZCAke3V9YCxwb3NpdGlvbjoicmVsYXRpdmUiLG92ZXJmbG93OiJoaWRkZW4iLGN1cnNvcjoiaW5oZXJpdCIsdHJhbnNpdGlvbjpgYWxsICR7ZS5tb3Rpb25EdXJhdGlvbkZhc3R9YH0sbikseyImOjphZnRlciI6e2NvbnRlbnQ6JyIiJyxwb3NpdGlvbjoiYWJzb2x1dGUiLGluc2V0SW5saW5lRW5kOmUuY2FsYyhsKS5tdWwoLTEpLmVxdWFsKCksdG9wOmUuY2FsYyhsKS5tdWwoLTEpLmVxdWFsKCksZGlzcGxheToiYmxvY2siLHdpZHRoOjQwLGhlaWdodDoyLHRyYW5zZm9ybU9yaWdpbjoiY2FsYygxMDAlIC0gMXB4KSAxcHgiLHRyYW5zZm9ybToicm90YXRlKC00NWRlZykiLGJhY2tncm91bmRDb2xvcjpkfSwiJjpob3ZlciI6e2JvcmRlckNvbG9yOmN9fSl9fSxwZD1lPT57Y29uc3R7Y29tcG9uZW50Q2xzOnQsY29sb3JFcnJvcjpuLGNvbG9yV2FybmluZzpyLGNvbG9yRXJyb3JIb3ZlcjphLGNvbG9yV2FybmluZ0hvdmVyOmwsY29sb3JFcnJvck91dGxpbmU6dSxjb2xvcldhcm5pbmdPdXRsaW5lOmN9PWU7cmV0dXJue1tgJiR7dH0tc3RhdHVzLWVycm9yYF06e2JvcmRlckNvbG9yOm4sIiY6aG92ZXIiOntib3JkZXJDb2xvcjphfSxbYCYke3R9LXRyaWdnZXItYWN0aXZlYF06T2JqZWN0LmFzc2lnbih7fSxlbChlLG4sdSkpfSxbYCYke3R9LXN0YXR1cy13YXJuaW5nYF06e2JvcmRlckNvbG9yOnIsIiY6aG92ZXIiOntib3JkZXJDb2xvcjpsfSxbYCYke3R9LXRyaWdnZXItYWN0aXZlYF06T2JqZWN0LmFzc2lnbih7fSxlbChlLHIsYykpfX19LGJkPWU9Pntjb25zdHtjb21wb25lbnRDbHM6dCxjb250cm9sSGVpZ2h0TEc6bixjb250cm9sSGVpZ2h0U006cixjb250cm9sSGVpZ2h0OmEsY29udHJvbEhlaWdodFhTOmwsYm9yZGVyUmFkaXVzOnUsYm9yZGVyUmFkaXVzU006Yyxib3JkZXJSYWRpdXNYUzpkLGJvcmRlclJhZGl1c0xHOnYsZm9udFNpemVMRzpmfT1lO3JldHVybntbYCYke3R9LWxnYF06e21pbldpZHRoOm4sbWluSGVpZ2h0Om4sYm9yZGVyUmFkaXVzOnYsW2Ake3R9LWNvbG9yLWJsb2NrLCAke3R9LWNsZWFyYF06e3dpZHRoOmEsaGVpZ2h0OmEsYm9yZGVyUmFkaXVzOnV9LFtgJHt0fS10cmlnZ2VyLXRleHRgXTp7Zm9udFNpemU6Zn19LFtgJiR7dH0tc21gXTp7bWluV2lkdGg6cixtaW5IZWlnaHQ6cixib3JkZXJSYWRpdXM6YyxbYCR7dH0tY29sb3ItYmxvY2ssICR7dH0tY2xlYXJgXTp7d2lkdGg6bCxoZWlnaHQ6bCxib3JkZXJSYWRpdXM6ZH0sW2Ake3R9LXRyaWdnZXItdGV4dGBdOntsaW5lSGVpZ2h0OigwLGhlLmJmKShsKX19fX0seWQ9ZT0+e2NvbnN0e2FudENsczp0LGNvbXBvbmVudENsczpuLGNvbG9yUGlja2VyV2lkdGg6cixjb2xvclByaW1hcnk6YSxtb3Rpb25EdXJhdGlvbk1pZDpsLGNvbG9yQmdFbGV2YXRlZDp1LGNvbG9yVGV4dERpc2FibGVkOmMsY29sb3JUZXh0OmQsY29sb3JCZ0NvbnRhaW5lckRpc2FibGVkOnYsYm9yZGVyUmFkaXVzOmYsbWFyZ2luWFM6bSxtYXJnaW5TTTpoLGNvbnRyb2xIZWlnaHQ6Qyxjb250cm9sSGVpZ2h0U006eCxjb2xvckJnVGV4dEFjdGl2ZTpwLGNvbG9yUGlja2VyUHJlc2V0Q29sb3JTaXplOnksY29sb3JQaWNrZXJQcmV2aWV3U2l6ZTp3LGxpbmVXaWR0aDpQLGNvbG9yQm9yZGVyOkUscGFkZGluZ1hYUzpNLGZvbnRTaXplOkQsY29sb3JQcmltYXJ5SG92ZXI6Tixjb250cm9sT3V0bGluZTpUfT1lO3JldHVyblt7W25dOk9iamVjdC5hc3NpZ24oe1tgJHtufS1pbm5lcmBdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHsiJi1jb250ZW50Ijp7ZGlzcGxheToiZmxleCIsZmxleERpcmVjdGlvbjoiY29sdW1uIix3aWR0aDpyLFtgJiA+ICR7dH0tZGl2aWRlcmBdOnttYXJnaW46YCR7KDAsaGUuYmYpKGgpfSAwICR7KDAsaGUuYmYpKG0pfWB9fSxbYCR7bn0tcGFuZWxgXTpPYmplY3QuYXNzaWduKHt9LHZkKGUpKX0sZ2QoZSkpLGlzKGUsdykpLGZkKGUpKSxtZChlKSksbHMoZSx5LHttYXJnaW5JbmxpbmVTdGFydDoiYXV0byJ9KSkse1tgJHtufS1vcGVyYXRpb25gXTp7ZGlzcGxheToiZmxleCIsanVzdGlmeUNvbnRlbnQ6InNwYWNlLWJldHdlZW4iLG1hcmdpbkJvdHRvbTptfX0pLCImLXRyaWdnZXIiOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe21pbldpZHRoOkMsbWluSGVpZ2h0OkMsYm9yZGVyUmFkaXVzOmYsYm9yZGVyOmAkeygwLGhlLmJmKShQKX0gc29saWQgJHtFfWAsY3Vyc29yOiJwb2ludGVyIixkaXNwbGF5OiJpbmxpbmUtZmxleCIsYWxpZ25JdGVtczoiZmxleC1zdGFydCIsanVzdGlmeUNvbnRlbnQ6ImNlbnRlciIsdHJhbnNpdGlvbjpgYWxsICR7bH1gLGJhY2tncm91bmQ6dSxwYWRkaW5nOmUuY2FsYyhNKS5zdWIoUCkuZXF1YWwoKSxbYCR7bn0tdHJpZ2dlci10ZXh0YF06e21hcmdpbklubGluZVN0YXJ0Om0sbWFyZ2luSW5saW5lRW5kOmUuY2FsYyhtKS5zdWIoZS5jYWxjKE0pLnN1YihQKSkuZXF1YWwoKSxmb250U2l6ZTpELGNvbG9yOmQsYWxpZ25TZWxmOiJjZW50ZXIiLCImLWNlbGwiOnsiJjpub3QoOmxhc3QtY2hpbGQpOmFmdGVyIjp7Y29udGVudDonIiwgIid9LCImLWluYWN0aXZlIjp7Y29sb3I6Y319fSwiJjpob3ZlciI6e2JvcmRlckNvbG9yOk59LFtgJiR7bn0tdHJpZ2dlci1hY3RpdmVgXTpPYmplY3QuYXNzaWduKHt9LGVsKGUsYSxUKSksIiYtZGlzYWJsZWQiOntjb2xvcjpjLGJhY2tncm91bmQ6dixjdXJzb3I6Im5vdC1hbGxvd2VkIiwiJjpob3ZlciI6e2JvcmRlckNvbG9yOnB9LFtgJHtufS10cmlnZ2VyLXRleHRgXTp7Y29sb3I6Y319fSxscyhlLHgpKSxpcyhlLHgpKSxwZChlKSksYmQoZSkpfSxoZChlKSl9LCgwLEd0LmMpKGUse2ZvY3VzRWxDbHM6YCR7bn0tdHJpZ2dlci1hY3RpdmVgfSldfTt2YXIgQ2Q9KDAsbG4uSSQpKCJDb2xvclBpY2tlciIsZT0+e2NvbnN0e2NvbG9yVGV4dFF1YXRlcm5hcnk6dCxtYXJnaW5TTTpufT1lLHI9OCxhPSgwLEJyLklYKShlLHtjb2xvclBpY2tlcldpZHRoOjIzNCxjb2xvclBpY2tlckhhbmRsZXJTaXplOjE2LGNvbG9yUGlja2VySGFuZGxlclNpemVTTToxMixjb2xvclBpY2tlckFscGhhSW5wdXRXaWR0aDo0NCxjb2xvclBpY2tlcklucHV0TnVtYmVySGFuZGxlV2lkdGg6MTYsY29sb3JQaWNrZXJQcmVzZXRDb2xvclNpemU6MjQsY29sb3JQaWNrZXJJbnNldFNoYWRvdzpgaW5zZXQgMCAwIDFweCAwICR7dH1gLGNvbG9yUGlja2VyU2xpZGVySGVpZ2h0OnIsY29sb3JQaWNrZXJQcmV2aWV3U2l6ZTplLmNhbGMocikubXVsKDIpLmFkZChuKS5lcXVhbCgpfSk7cmV0dXJuW3lkKGEpXX0pLHhkPWZ1bmN0aW9uKGUsdCl7dmFyIG49e307Zm9yKHZhciByIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikmJnQuaW5kZXhPZihyKTwwJiYobltyXT1lW3JdKTtpZihlIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIGE9MCxyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7YTxyLmxlbmd0aDthKyspdC5pbmRleE9mKHJbYV0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLHJbYV0pJiYobltyW2FdXT1lW3JbYV1dKTtyZXR1cm4gbn07Y29uc3QgdGw9ZT0+e2NvbnN0e21vZGU6dCx2YWx1ZTpuLGRlZmF1bHRWYWx1ZTpyLGZvcm1hdDphLGRlZmF1bHRGb3JtYXQ6bCxhbGxvd0NsZWFyOnU9ITEscHJlc2V0czpjLGNoaWxkcmVuOmQsdHJpZ2dlcjp2PSJjbGljayIsb3BlbjpmLGRpc2FibGVkOm0scGxhY2VtZW50Omg9ImJvdHRvbUxlZnQiLGFycm93OkM9ITAscGFuZWxSZW5kZXI6eCxzaG93VGV4dDpwLHN0eWxlOnksY2xhc3NOYW1lOncsc2l6ZTpQLHJvb3RDbGFzc05hbWU6RSxwcmVmaXhDbHM6TSxzdHlsZXM6RCxkaXNhYmxlZEFscGhhOk49ITEsb25Gb3JtYXRDaGFuZ2U6VCxvbkNoYW5nZTpXLG9uQ2xlYXI6Qixvbk9wZW5DaGFuZ2U6WSxvbkNoYW5nZUNvbXBsZXRlOkgsZ2V0UG9wdXBDb250YWluZXI6QSxhdXRvQWRqdXN0T3ZlcmZsb3c6Vj0hMCxkZXN0cm95VG9vbHRpcE9uSGlkZTp6LGRpc2FibGVkRm9ybWF0Olh9PWUscT14ZChlLFsibW9kZSIsInZhbHVlIiwiZGVmYXVsdFZhbHVlIiwiZm9ybWF0IiwiZGVmYXVsdEZvcm1hdCIsImFsbG93Q2xlYXIiLCJwcmVzZXRzIiwiY2hpbGRyZW4iLCJ0cmlnZ2VyIiwib3BlbiIsImRpc2FibGVkIiwicGxhY2VtZW50IiwiYXJyb3ciLCJwYW5lbFJlbmRlciIsInNob3dUZXh0Iiwic3R5bGUiLCJjbGFzc05hbWUiLCJzaXplIiwicm9vdENsYXNzTmFtZSIsInByZWZpeENscyIsInN0eWxlcyIsImRpc2FibGVkQWxwaGEiLCJvbkZvcm1hdENoYW5nZSIsIm9uQ2hhbmdlIiwib25DbGVhciIsIm9uT3BlbkNoYW5nZSIsIm9uQ2hhbmdlQ29tcGxldGUiLCJnZXRQb3B1cENvbnRhaW5lciIsImF1dG9BZGp1c3RPdmVyZmxvdyIsImRlc3Ryb3lUb29sdGlwT25IaWRlIiwiZGlzYWJsZWRGb3JtYXQiXSkse2dldFByZWZpeENsczpRLGRpcmVjdGlvbjphZSxjb2xvclBpY2tlcjplZX09KDAsby51c2VDb250ZXh0KShvbi5FXykscmU9KDAsby51c2VDb250ZXh0KShjbi5aKSxzZT1tIT1udWxsP206cmUsW0osaWVdPSgwLHJ0LlopKCExLHt2YWx1ZTpmLHBvc3RTdGF0ZTp1dD0+IXNlJiZ1dCxvbkNoYW5nZTpZfSksW2NlLHhlXT0oMCxydC5aKShhLHt2YWx1ZTphLGRlZmF1bHRWYWx1ZTpsLG9uQ2hhbmdlOlR9KSx1ZT1RKCJjb2xvci1waWNrZXIiLE0pLFt5ZSxQZSxnZSxSZSxTZV09ZGQocixuLHQpLEllPSgwLG8udXNlTWVtbykoKCk9PigwLEluLnVaKSh5ZSk8MTAwLFt5ZV0pLFtaZSxDZV09by51c2VTdGF0ZShudWxsKSxFZT11dD0+e2lmKEgpe2xldCBNZT0oMCxJbi52QykodXQpO04mJkllJiYoTWU9KDAsSW4uVDcpKHV0KSksSChNZSl9fSxwZT0odXQsTWUpPT57bGV0IFVlPSgwLEluLnZDKSh1dCk7TiYmSWUmJihVZT0oMCxJbi5UNykoVWUpKSxQZShVZSksQ2UobnVsbCksVyYmVyhVZSxVZS50b0Nzc1N0cmluZygpKSxNZXx8RWUoVWUpfSxbSmUsQmVdPW8udXNlU3RhdGUoMCksW3Z0LHl0XT1vLnVzZVN0YXRlKCExKSxzdD11dD0+e2lmKFJlKHV0KSx1dD09PSJzaW5nbGUiJiZ5ZS5pc0dyYWRpZW50KCkpQmUoMCkscGUobmV3IHZyLnk5KHllLmdldENvbG9ycygpWzBdLmNvbG9yKSksQ2UoeWUpO2Vsc2UgaWYodXQ9PT0iZ3JhZGllbnQiJiYheWUuaXNHcmFkaWVudCgpKXtjb25zdCBNZT1JZT8oMCxJbi5UNykoeWUpOnllO3BlKG5ldyB2ci55OShaZXx8W3twZXJjZW50OjAsY29sb3I6TWV9LHtwZXJjZW50OjEwMCxjb2xvcjpNZX1dKSl9fSx7c3RhdHVzOm50fT1vLnVzZUNvbnRleHQoUnIuYU0pLHtjb21wYWN0U2l6ZTpJdCxjb21wYWN0SXRlbUNsYXNzbmFtZXM6Y3R9PSgwLGplLnJpKSh1ZSxhZSksWnQ9KDAsQ24uWikodXQ9Pnt2YXIgTWU7cmV0dXJuKE1lPVAhPW51bGw/UDpJdCkhPT1udWxsJiZNZSE9PXZvaWQgMD9NZTp1dH0pLGJ0PSgwLE9uLlopKHVlKSxba3QsQWUscWVdPUNkKHVlLGJ0KSxldD17W2Ake3VlfS1ydGxgXTphZX0sT3Q9b2UoKShFLHFlLGJ0LGV0KSxHZT1vZSgpKCgwLGtuLlopKHVlLG50KSx7W2Ake3VlfS1zbWBdOlp0PT09InNtYWxsIixbYCR7dWV9LWxnYF06WnQ9PT0ibGFyZ2UifSxjdCxlZT09bnVsbD92b2lkIDA6ZWUuY2xhc3NOYW1lLE90LHcsQWUpLG5uPW9lKCkodWUsT3QpLGl0PXtvcGVuOkosdHJpZ2dlcjp2LHBsYWNlbWVudDpoLGFycm93OkMscm9vdENsYXNzTmFtZTpFLGdldFBvcHVwQ29udGFpbmVyOkEsYXV0b0FkanVzdE92ZXJmbG93OlYsZGVzdHJveVRvb2x0aXBPbkhpZGU6en0sVmU9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGVlPT1udWxsP3ZvaWQgMDplZS5zdHlsZSkseSk7cmV0dXJuIGt0KG8uY3JlYXRlRWxlbWVudChPci5aLE9iamVjdC5hc3NpZ24oe3N0eWxlOkQ9PW51bGw/dm9pZCAwOkQucG9wdXAsc3R5bGVzOntib2R5OkQ9PW51bGw/dm9pZCAwOkQucG9wdXBPdmVybGF5SW5uZXJ9LG9uT3BlbkNoYW5nZTp1dD0+eyghdXR8fCFzZSkmJmllKHV0KX0sY29udGVudDpvLmNyZWF0ZUVsZW1lbnQoWHIuWix7Zm9ybTohMH0sby5jcmVhdGVFbGVtZW50KHNkLHttb2RlOmdlLG9uTW9kZUNoYW5nZTpzdCxtb2RlT3B0aW9uczpTZSxwcmVmaXhDbHM6dWUsdmFsdWU6eWUsYWxsb3dDbGVhcjp1LGRpc2FibGVkOnNlLGRpc2FibGVkQWxwaGE6TixwcmVzZXRzOmMscGFuZWxSZW5kZXI6eCxmb3JtYXQ6Y2Usb25Gb3JtYXRDaGFuZ2U6eGUsb25DaGFuZ2U6cGUsb25DaGFuZ2VDb21wbGV0ZTpFZSxvbkNsZWFyOkIsYWN0aXZlSW5kZXg6SmUsb25BY3RpdmU6QmUsZ3JhZGllbnREcmFnZ2luZzp2dCxvbkdyYWRpZW50RHJhZ2dpbmc6eXQsZGlzYWJsZWRGb3JtYXQ6WH0pKSxjbGFzc05hbWVzOntyb290Om5ufX0saXQpLGR8fG8uY3JlYXRlRWxlbWVudChjZCxPYmplY3QuYXNzaWduKHthY3RpdmVJbmRleDpKP0plOi0xLG9wZW46SixjbGFzc05hbWU6R2Usc3R5bGU6VmUscHJlZml4Q2xzOnVlLGRpc2FibGVkOnNlLHNob3dUZXh0OnAsZm9ybWF0OmNlfSxxLHtjb2xvcjp5ZX0pKSkpfSxTZD0oMCx5bi5aKSh0bCx2b2lkIDAsZT0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGUpLHtwbGFjZW1lbnQ6ImJvdHRvbSIsYXV0b0FkanVzdE92ZXJmbG93OiExfSksImNvbG9yLXBpY2tlciIsZT0+ZSk7dGwuX0ludGVybmFsUGFuZWxEb05vdFVzZU9yWW91V2lsbEJlRmlyZWQ9U2Q7dmFyIFBkPXRsLHdkPVBkLHJvPWkoNzk5NDEpLE9kPWkoODI0OTIpLEVkPWkubihPZCksSWQ9ZnVuY3Rpb24odCxuLHIsYSxsKXt2YXIgdT1sLmNsaWVudFdpZHRoLGM9bC5jbGllbnRIZWlnaHQsZD10eXBlb2YgdC5wYWdlWD09Im51bWJlciI/dC5wYWdlWDp0LnRvdWNoZXNbMF0ucGFnZVgsdj10eXBlb2YgdC5wYWdlWT09Im51bWJlciI/dC5wYWdlWTp0LnRvdWNoZXNbMF0ucGFnZVksZj1kLShsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQrd2luZG93LnBhZ2VYT2Zmc2V0KSxtPXYtKGwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wK3dpbmRvdy5wYWdlWU9mZnNldCk7aWYocj09PSJ2ZXJ0aWNhbCIpe3ZhciBoO2lmKG08MD9oPTA6bT5jP2g9MTpoPU1hdGgucm91bmQobSoxMDAvYykvMTAwLG4uYSE9PWgpcmV0dXJue2g6bi5oLHM6bi5zLGw6bi5sLGE6aCxzb3VyY2U6InJnYiJ9fWVsc2V7dmFyIEM7aWYoZjwwP0M9MDpmPnU/Qz0xOkM9TWF0aC5yb3VuZChmKjEwMC91KS8xMDAsYSE9PUMpcmV0dXJue2g6bi5oLHM6bi5zLGw6bi5sLGE6Qyxzb3VyY2U6InJnYiJ9fXJldHVybiBudWxsfSxubD17fSwkZD1mdW5jdGlvbih0LG4scixhKXtpZih0eXBlb2YgZG9jdW1lbnQ9PSJ1bmRlZmluZWQiJiYhYSlyZXR1cm4gbnVsbDt2YXIgbD1hP25ldyBhOmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpO2wud2lkdGg9cioyLGwuaGVpZ2h0PXIqMjt2YXIgdT1sLmdldENvbnRleHQoIjJkIik7cmV0dXJuIHU/KHUuZmlsbFN0eWxlPXQsdS5maWxsUmVjdCgwLDAsbC53aWR0aCxsLmhlaWdodCksdS5maWxsU3R5bGU9bix1LmZpbGxSZWN0KDAsMCxyLHIpLHUudHJhbnNsYXRlKHIsciksdS5maWxsUmVjdCgwLDAscixyKSxsLnRvRGF0YVVSTCgpKTpudWxsfSxNZD1mdW5jdGlvbih0LG4scixhKXt2YXIgbD0iIi5jb25jYXQodCwiLSIpLmNvbmNhdChuLCItIikuY29uY2F0KHIpLmNvbmNhdChhPyItc2VydmVyIjoiIik7aWYobmxbbF0pcmV0dXJuIG5sW2xdO3ZhciB1PSRkKHQsbixyLGEpO3JldHVybiBubFtsXT11LHV9O2Z1bmN0aW9uIF9vKGUpeyJAYmFiZWwvaGVscGVycyAtIHR5cGVvZiI7cmV0dXJuIF9vPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJnR5cGVvZiBTeW1ib2wuaXRlcmF0b3I9PSJzeW1ib2wiP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJnR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiB0fSxfbyhlKX1mdW5jdGlvbiBzcyhlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dCYmKHI9ci5maWx0ZXIoZnVuY3Rpb24oYSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSxhKS5lbnVtZXJhYmxlfSkpLG4ucHVzaC5hcHBseShuLHIpfXJldHVybiBufWZ1bmN0aW9uIHdpKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XSE9bnVsbD9hcmd1bWVudHNbdF06e307dCUyP3NzKE9iamVjdChuKSwhMCkuZm9yRWFjaChmdW5jdGlvbihyKXtaZChlLHIsbltyXSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTpzcyhPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24ocil7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUscixPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4scikpfSl9cmV0dXJuIGV9ZnVuY3Rpb24gWmQoZSx0LG4pe3JldHVybiB0PVJkKHQpLHQgaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1uLGV9ZnVuY3Rpb24gUmQoZSl7dmFyIHQ9RGQoZSwic3RyaW5nIik7cmV0dXJuIF9vKHQpPT09InN5bWJvbCI/dDpTdHJpbmcodCl9ZnVuY3Rpb24gRGQoZSx0KXtpZihfbyhlKSE9PSJvYmplY3QifHxlPT09bnVsbClyZXR1cm4gZTt2YXIgbj1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYobiE9PXZvaWQgMCl7dmFyIHI9bi5jYWxsKGUsdHx8ImRlZmF1bHQiKTtpZihfbyhyKSE9PSJvYmplY3QiKXJldHVybiByO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKHQ9PT0ic3RyaW5nIj9TdHJpbmc6TnVtYmVyKShlKX12YXIgdXM9ZnVuY3Rpb24odCl7dmFyIG49dC53aGl0ZSxyPXQuZ3JleSxhPXQuc2l6ZSxsPXQucmVuZGVyZXJzLHU9dC5ib3JkZXJSYWRpdXMsYz10LmJveFNoYWRvdyxkPXQuY2hpbGRyZW4sdj0oMCxyby5aUCkoe2RlZmF1bHQ6e2dyaWQ6e2JvcmRlclJhZGl1czp1LGJveFNoYWRvdzpjLGFic29sdXRlOiIwcHggMHB4IDBweCAwcHgiLGJhY2tncm91bmQ6InVybCgiLmNvbmNhdChNZChuLHIsYSxsLmNhbnZhcyksIikgY2VudGVyIGxlZnQiKX19fSk7cmV0dXJuKDAsby5pc1ZhbGlkRWxlbWVudCkoZCk/by5jbG9uZUVsZW1lbnQoZCx3aSh3aSh7fSxkLnByb3BzKSx7fSx7c3R5bGU6d2kod2koe30sZC5wcm9wcy5zdHlsZSksdi5ncmlkKX0pKTpvLmNyZWF0ZUVsZW1lbnQoImRpdiIse3N0eWxlOnYuZ3JpZH0pfTt1cy5kZWZhdWx0UHJvcHM9e3NpemU6OCx3aGl0ZToidHJhbnNwYXJlbnQiLGdyZXk6InJnYmEoMCwwLDAsLjA4KSIscmVuZGVyZXJzOnt9fTt2YXIgcmw9dXM7ZnVuY3Rpb24gTm8oZSl7IkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mIjtyZXR1cm4gTm89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmdHlwZW9mIFN5bWJvbC5pdGVyYXRvcj09InN5bWJvbCI/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmdHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIHR9LE5vKGUpfWZ1bmN0aW9uIGNzKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0JiYocj1yLmZpbHRlcihmdW5jdGlvbihhKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLGEpLmVudW1lcmFibGV9KSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gTmQoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdIT1udWxsP2FyZ3VtZW50c1t0XTp7fTt0JTI/Y3MoT2JqZWN0KG4pLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHIpe0ZkKGUscixuW3JdKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOmNzKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbihyKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixyKSl9KX1yZXR1cm4gZX1mdW5jdGlvbiBGZChlLHQsbil7cmV0dXJuIHQ9ZnModCksdCBpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1mdW5jdGlvbiBUZChlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIGRzKGUsdCl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciByPXRbbl07ci5lbnVtZXJhYmxlPXIuZW51bWVyYWJsZXx8ITEsci5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHImJihyLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxmcyhyLmtleSkscil9fWZ1bmN0aW9uIGpkKGUsdCxuKXtyZXR1cm4gdCYmZHMoZS5wcm90b3R5cGUsdCksbiYmZHMoZSxuKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxlfWZ1bmN0aW9uIGZzKGUpe3ZhciB0PUFkKGUsInN0cmluZyIpO3JldHVybiBObyh0KT09PSJzeW1ib2wiP3Q6U3RyaW5nKHQpfWZ1bmN0aW9uIEFkKGUsdCl7aWYoTm8oZSkhPT0ib2JqZWN0Inx8ZT09PW51bGwpcmV0dXJuIGU7dmFyIG49ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKG4hPT12b2lkIDApe3ZhciByPW4uY2FsbChlLHR8fCJkZWZhdWx0Iik7aWYoTm8ocikhPT0ib2JqZWN0IilyZXR1cm4gcjt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybih0PT09InN0cmluZyI/U3RyaW5nOk51bWJlcikoZSl9ZnVuY3Rpb24gSGQoZSx0KXtpZih0eXBlb2YgdCE9ImZ1bmN0aW9uIiYmdCE9PW51bGwpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksdCYmYWwoZSx0KX1mdW5jdGlvbiBhbChlLHQpe3JldHVybiBhbD1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihyLGEpe3JldHVybiByLl9fcHJvdG9fXz1hLHJ9LGFsKGUsdCl9ZnVuY3Rpb24ga2QoZSl7dmFyIHQ9QmQoKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgcj1PaShlKSxhO2lmKHQpe3ZhciBsPU9pKHRoaXMpLmNvbnN0cnVjdG9yO2E9UmVmbGVjdC5jb25zdHJ1Y3Qocixhcmd1bWVudHMsbCl9ZWxzZSBhPXIuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBMZCh0aGlzLGEpfX1mdW5jdGlvbiBMZChlLHQpe2lmKHQmJihObyh0KT09PSJvYmplY3QifHx0eXBlb2YgdD09ImZ1bmN0aW9uIikpcmV0dXJuIHQ7aWYodCE9PXZvaWQgMCl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBWZChlKX1mdW5jdGlvbiBWZChlKXtpZihlPT09dm9pZCAwKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGV9ZnVuY3Rpb24gQmQoKXtpZih0eXBlb2YgUmVmbGVjdD09InVuZGVmaW5lZCJ8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZih0eXBlb2YgUHJveHk9PSJmdW5jdGlvbiIpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChlKXtyZXR1cm4hMX19ZnVuY3Rpb24gT2koZSl7cmV0dXJuIE9pPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKG4pe3JldHVybiBuLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKG4pfSxPaShlKX12YXIgV2Q9ZnVuY3Rpb24oZSl7SGQobixlKTt2YXIgdD1rZChuKTtmdW5jdGlvbiBuKCl7dmFyIHI7VGQodGhpcyxuKTtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aCxsPW5ldyBBcnJheShhKSx1PTA7dTxhO3UrKylsW3VdPWFyZ3VtZW50c1t1XTtyZXR1cm4gcj10LmNhbGwuYXBwbHkodCxbdGhpc10uY29uY2F0KGwpKSxyLmhhbmRsZUNoYW5nZT1mdW5jdGlvbihjKXt2YXIgZD1JZChjLHIucHJvcHMuaHNsLHIucHJvcHMuZGlyZWN0aW9uLHIucHJvcHMuYSxyLmNvbnRhaW5lcik7ZCYmdHlwZW9mIHIucHJvcHMub25DaGFuZ2U9PSJmdW5jdGlvbiImJnIucHJvcHMub25DaGFuZ2UoZCxjKX0sci5oYW5kbGVNb3VzZURvd249ZnVuY3Rpb24oYyl7ci5oYW5kbGVDaGFuZ2UoYyksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsci5oYW5kbGVDaGFuZ2UpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIixyLmhhbmRsZU1vdXNlVXApfSxyLmhhbmRsZU1vdXNlVXA9ZnVuY3Rpb24oKXtyLnVuYmluZEV2ZW50TGlzdGVuZXJzKCl9LHIudW5iaW5kRXZlbnRMaXN0ZW5lcnM9ZnVuY3Rpb24oKXt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIixyLmhhbmRsZUNoYW5nZSksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHIuaGFuZGxlTW91c2VVcCl9LHJ9cmV0dXJuIGpkKG4sW3trZXk6ImNvbXBvbmVudFdpbGxVbm1vdW50Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMudW5iaW5kRXZlbnRMaXN0ZW5lcnMoKX19LHtrZXk6InJlbmRlciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLGw9dGhpcy5wcm9wcy5yZ2IsdT0oMCxyby5aUCkoe2RlZmF1bHQ6e2FscGhhOnthYnNvbHV0ZToiMHB4IDBweCAwcHggMHB4Iixib3JkZXJSYWRpdXM6dGhpcy5wcm9wcy5yYWRpdXN9LGNoZWNrYm9hcmQ6e2Fic29sdXRlOiIwcHggMHB4IDBweCAwcHgiLG92ZXJmbG93OiJoaWRkZW4iLGJvcmRlclJhZGl1czp0aGlzLnByb3BzLnJhZGl1c30sZ3JhZGllbnQ6e2Fic29sdXRlOiIwcHggMHB4IDBweCAwcHgiLGJhY2tncm91bmQ6ImxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgiLmNvbmNhdChsLnIsIiwiKS5jb25jYXQobC5nLCIsIikuY29uY2F0KGwuYixgLCAwKSAwJSwKKyAgICAgICAgICAgcmdiYShgKS5jb25jYXQobC5yLCIsIikuY29uY2F0KGwuZywiLCIpLmNvbmNhdChsLmIsIiwgMSkgMTAwJSkiKSxib3hTaGFkb3c6dGhpcy5wcm9wcy5zaGFkb3csYm9yZGVyUmFkaXVzOnRoaXMucHJvcHMucmFkaXVzfSxjb250YWluZXI6e3Bvc2l0aW9uOiJyZWxhdGl2ZSIsaGVpZ2h0OiIxMDAlIixtYXJnaW46IjAgM3B4In0scG9pbnRlcjp7cG9zaXRpb246ImFic29sdXRlIixsZWZ0OiIiLmNvbmNhdChsLmEqMTAwLCIlIil9LHNsaWRlcjp7d2lkdGg6IjRweCIsYm9yZGVyUmFkaXVzOiIxcHgiLGhlaWdodDoiOHB4Iixib3hTaGFkb3c6IjAgMCAycHggcmdiYSgwLCAwLCAwLCAuNikiLGJhY2tncm91bmQ6IiNmZmYiLG1hcmdpblRvcDoiMXB4Iix0cmFuc2Zvcm06InRyYW5zbGF0ZVgoLTJweCkifX0sdmVydGljYWw6e2dyYWRpZW50OntiYWNrZ3JvdW5kOiJsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKCIuY29uY2F0KGwuciwiLCIpLmNvbmNhdChsLmcsIiwiKS5jb25jYXQobC5iLGAsIDApIDAlLAorICAgICAgICAgICByZ2JhKGApLmNvbmNhdChsLnIsIiwiKS5jb25jYXQobC5nLCIsIikuY29uY2F0KGwuYiwiLCAxKSAxMDAlKSIpfSxwb2ludGVyOntsZWZ0OjAsdG9wOiIiLmNvbmNhdChsLmEqMTAwLCIlIil9fSxvdmVyd3JpdGU6TmQoe30sdGhpcy5wcm9wcy5zdHlsZSl9LHt2ZXJ0aWNhbDp0aGlzLnByb3BzLmRpcmVjdGlvbj09PSJ2ZXJ0aWNhbCIsb3ZlcndyaXRlOiEwfSk7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7c3R5bGU6dS5hbHBoYX0sby5jcmVhdGVFbGVtZW50KCJkaXYiLHtzdHlsZTp1LmNoZWNrYm9hcmR9LG8uY3JlYXRlRWxlbWVudChybCx7cmVuZGVyZXJzOnRoaXMucHJvcHMucmVuZGVyZXJzfSkpLG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7c3R5bGU6dS5ncmFkaWVudH0pLG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7c3R5bGU6dS5jb250YWluZXIscmVmOmZ1bmN0aW9uKGQpe3JldHVybiBhLmNvbnRhaW5lcj1kfSxvbk1vdXNlRG93bjp0aGlzLmhhbmRsZU1vdXNlRG93bixvblRvdWNoTW92ZTp0aGlzLmhhbmRsZUNoYW5nZSxvblRvdWNoU3RhcnQ6dGhpcy5oYW5kbGVDaGFuZ2V9LG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7c3R5bGU6dS5wb2ludGVyfSx0aGlzLnByb3BzLnBvaW50ZXI/by5jcmVhdGVFbGVtZW50KHRoaXMucHJvcHMucG9pbnRlcix0aGlzLnByb3BzKTpvLmNyZWF0ZUVsZW1lbnQoImRpdiIse3N0eWxlOnUuc2xpZGVyfSkpKSl9fV0pLG59KG8uUHVyZUNvbXBvbmVudHx8by5Db21wb25lbnQpLHpkPVdkLEtkPWZ1bmN0aW9uKHQsbixyLGEpe3ZhciBsPWEuY2xpZW50V2lkdGgsdT1hLmNsaWVudEhlaWdodCxjPXR5cGVvZiB0LnBhZ2VYPT0ibnVtYmVyIj90LnBhZ2VYOnQudG91Y2hlc1swXS5wYWdlWCxkPXR5cGVvZiB0LnBhZ2VZPT0ibnVtYmVyIj90LnBhZ2VZOnQudG91Y2hlc1swXS5wYWdlWSx2PWMtKGEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdCt3aW5kb3cucGFnZVhPZmZzZXQpLGY9ZC0oYS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3Ard2luZG93LnBhZ2VZT2Zmc2V0KTtpZihuPT09InZlcnRpY2FsIil7dmFyIG07aWYoZjwwKW09MzU5O2Vsc2UgaWYoZj51KW09MDtlbHNle3ZhciBoPS0oZioxMDAvdSkrMTAwO209MzYwKmgvMTAwfWlmKHIuaCE9PW0pcmV0dXJue2g6bSxzOnIucyxsOnIubCxhOnIuYSxzb3VyY2U6ImhzbCJ9fWVsc2V7dmFyIEM7aWYodjwwKUM9MDtlbHNlIGlmKHY+bClDPTM1OTtlbHNle3ZhciB4PXYqMTAwL2w7Qz0zNjAqeC8xMDB9aWYoci5oIT09QylyZXR1cm57aDpDLHM6ci5zLGw6ci5sLGE6ci5hLHNvdXJjZToiaHNsIn19cmV0dXJuIG51bGx9O2Z1bmN0aW9uIEZvKGUpeyJAYmFiZWwvaGVscGVycyAtIHR5cGVvZiI7cmV0dXJuIEZvPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJnR5cGVvZiBTeW1ib2wuaXRlcmF0b3I9PSJzeW1ib2wiP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJnR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiB0fSxGbyhlKX1mdW5jdGlvbiBZZChlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIHZzKGUsdCl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciByPXRbbl07ci5lbnVtZXJhYmxlPXIuZW51bWVyYWJsZXx8ITEsci5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHImJihyLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxYZChyLmtleSkscil9fWZ1bmN0aW9uIFVkKGUsdCxuKXtyZXR1cm4gdCYmdnMoZS5wcm90b3R5cGUsdCksbiYmdnMoZSxuKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxlfWZ1bmN0aW9uIFhkKGUpe3ZhciB0PUdkKGUsInN0cmluZyIpO3JldHVybiBGbyh0KT09PSJzeW1ib2wiP3Q6U3RyaW5nKHQpfWZ1bmN0aW9uIEdkKGUsdCl7aWYoRm8oZSkhPT0ib2JqZWN0Inx8ZT09PW51bGwpcmV0dXJuIGU7dmFyIG49ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKG4hPT12b2lkIDApe3ZhciByPW4uY2FsbChlLHR8fCJkZWZhdWx0Iik7aWYoRm8ocikhPT0ib2JqZWN0IilyZXR1cm4gcjt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybih0PT09InN0cmluZyI/U3RyaW5nOk51bWJlcikoZSl9ZnVuY3Rpb24gUWQoZSx0KXtpZih0eXBlb2YgdCE9ImZ1bmN0aW9uIiYmdCE9PW51bGwpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksdCYmb2woZSx0KX1mdW5jdGlvbiBvbChlLHQpe3JldHVybiBvbD1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihyLGEpe3JldHVybiByLl9fcHJvdG9fXz1hLHJ9LG9sKGUsdCl9ZnVuY3Rpb24gSmQoZSl7dmFyIHQ9ZWYoKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgcj1FaShlKSxhO2lmKHQpe3ZhciBsPUVpKHRoaXMpLmNvbnN0cnVjdG9yO2E9UmVmbGVjdC5jb25zdHJ1Y3Qocixhcmd1bWVudHMsbCl9ZWxzZSBhPXIuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBxZCh0aGlzLGEpfX1mdW5jdGlvbiBxZChlLHQpe2lmKHQmJihGbyh0KT09PSJvYmplY3QifHx0eXBlb2YgdD09ImZ1bmN0aW9uIikpcmV0dXJuIHQ7aWYodCE9PXZvaWQgMCl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBfZChlKX1mdW5jdGlvbiBfZChlKXtpZihlPT09dm9pZCAwKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGV9ZnVuY3Rpb24gZWYoKXtpZih0eXBlb2YgUmVmbGVjdD09InVuZGVmaW5lZCJ8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZih0eXBlb2YgUHJveHk9PSJmdW5jdGlvbiIpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChlKXtyZXR1cm4hMX19ZnVuY3Rpb24gRWkoZSl7cmV0dXJuIEVpPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKG4pe3JldHVybiBuLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKG4pfSxFaShlKX12YXIgdGY9ZnVuY3Rpb24oZSl7UWQobixlKTt2YXIgdD1KZChuKTtmdW5jdGlvbiBuKCl7dmFyIHI7WWQodGhpcyxuKTtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aCxsPW5ldyBBcnJheShhKSx1PTA7dTxhO3UrKylsW3VdPWFyZ3VtZW50c1t1XTtyZXR1cm4gcj10LmNhbGwuYXBwbHkodCxbdGhpc10uY29uY2F0KGwpKSxyLmhhbmRsZUNoYW5nZT1mdW5jdGlvbihjKXt2YXIgZD1LZChjLHIucHJvcHMuZGlyZWN0aW9uLHIucHJvcHMuaHNsLHIuY29udGFpbmVyKTtkJiZ0eXBlb2Ygci5wcm9wcy5vbkNoYW5nZT09ImZ1bmN0aW9uIiYmci5wcm9wcy5vbkNoYW5nZShkLGMpfSxyLmhhbmRsZU1vdXNlRG93bj1mdW5jdGlvbihjKXtyLmhhbmRsZUNoYW5nZShjKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIixyLmhhbmRsZUNoYW5nZSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHIuaGFuZGxlTW91c2VVcCl9LHIuaGFuZGxlTW91c2VVcD1mdW5jdGlvbigpe3IudW5iaW5kRXZlbnRMaXN0ZW5lcnMoKX0scn1yZXR1cm4gVWQobixbe2tleToiY29tcG9uZW50V2lsbFVubW91bnQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy51bmJpbmRFdmVudExpc3RlbmVycygpfX0se2tleToidW5iaW5kRXZlbnRMaXN0ZW5lcnMiLHZhbHVlOmZ1bmN0aW9uKCl7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5oYW5kbGVDaGFuZ2UpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLmhhbmRsZU1vdXNlVXApfX0se2tleToicmVuZGVyIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBhPXRoaXMsbD10aGlzLnByb3BzLmRpcmVjdGlvbix1PWw9PT12b2lkIDA/Imhvcml6b250YWwiOmwsYz0oMCxyby5aUCkoe2RlZmF1bHQ6e2h1ZTp7YWJzb2x1dGU6IjBweCAwcHggMHB4IDBweCIsYm9yZGVyUmFkaXVzOnRoaXMucHJvcHMucmFkaXVzLGJveFNoYWRvdzp0aGlzLnByb3BzLnNoYWRvd30sY29udGFpbmVyOntwYWRkaW5nOiIwIDJweCIscG9zaXRpb246InJlbGF0aXZlIixoZWlnaHQ6IjEwMCUiLGJvcmRlclJhZGl1czp0aGlzLnByb3BzLnJhZGl1c30scG9pbnRlcjp7cG9zaXRpb246ImFic29sdXRlIixsZWZ0OiIiLmNvbmNhdCh0aGlzLnByb3BzLmhzbC5oKjEwMC8zNjAsIiUiKX0sc2xpZGVyOnttYXJnaW5Ub3A6IjFweCIsd2lkdGg6IjRweCIsYm9yZGVyUmFkaXVzOiIxcHgiLGhlaWdodDoiOHB4Iixib3hTaGFkb3c6IjAgMCAycHggcmdiYSgwLCAwLCAwLCAuNikiLGJhY2tncm91bmQ6IiNmZmYiLHRyYW5zZm9ybToidHJhbnNsYXRlWCgtMnB4KSJ9fSx2ZXJ0aWNhbDp7cG9pbnRlcjp7bGVmdDoiMHB4Iix0b3A6IiIuY29uY2F0KC0odGhpcy5wcm9wcy5oc2wuaCoxMDAvMzYwKSsxMDAsIiUiKX19fSx7dmVydGljYWw6dT09PSJ2ZXJ0aWNhbCJ9KTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJkaXYiLHtzdHlsZTpjLmh1ZX0sby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Imh1ZS0iLmNvbmNhdCh1KSxzdHlsZTpjLmNvbnRhaW5lcixyZWY6ZnVuY3Rpb24odil7cmV0dXJuIGEuY29udGFpbmVyPXZ9LG9uTW91c2VEb3duOnRoaXMuaGFuZGxlTW91c2VEb3duLG9uVG91Y2hNb3ZlOnRoaXMuaGFuZGxlQ2hhbmdlLG9uVG91Y2hTdGFydDp0aGlzLmhhbmRsZUNoYW5nZX0sby5jcmVhdGVFbGVtZW50KCJzdHlsZSIsbnVsbCxgCisgICAgICAgICAgICAuaHVlLWhvcml6b250YWwgeworICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNmMDAgMCUsICNmZjAgMTclLCAjMGYwCisgICAgICAgICAgICAgICAgMzMlLCAjMGZmIDUwJSwgIzAwZiA2NyUsICNmMGYgODMlLCAjZjAwIDEwMCUpOworICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0byByaWdodCwgI2YwMCAwJSwgI2ZmMAorICAgICAgICAgICAgICAgIDE3JSwgIzBmMCAzMyUsICMwZmYgNTAlLCAjMDBmIDY3JSwgI2YwZiA4MyUsICNmMDAgMTAwJSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC5odWUtdmVydGljYWwgeworICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCAjZjAwIDAlLCAjZmYwIDE3JSwgIzBmMCAzMyUsCisgICAgICAgICAgICAgICAgIzBmZiA1MCUsICMwMGYgNjclLCAjZjBmIDgzJSwgI2YwMCAxMDAlKTsKKyAgICAgICAgICAgICAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG8gdG9wLCAjZjAwIDAlLCAjZmYwIDE3JSwKKyAgICAgICAgICAgICAgICAjMGYwIDMzJSwgIzBmZiA1MCUsICMwMGYgNjclLCAjZjBmIDgzJSwgI2YwMCAxMDAlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICBgKSxvLmNyZWF0ZUVsZW1lbnQoImRpdiIse3N0eWxlOmMucG9pbnRlcn0sdGhpcy5wcm9wcy5wb2ludGVyP28uY3JlYXRlRWxlbWVudCh0aGlzLnByb3BzLnBvaW50ZXIsdGhpcy5wcm9wcyk6by5jcmVhdGVFbGVtZW50KCJkaXYiLHtzdHlsZTpjLnNsaWRlcn0pKSkpfX1dKSxufShvLlB1cmVDb21wb25lbnR8fG8uQ29tcG9uZW50KSxuZj10ZixyZj1pKDIzNDkzKSxhZj1pLm4ocmYpLG9mPWZ1bmN0aW9uKHQsbixyKXt2YXIgYT1yLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGw9YS53aWR0aCx1PWEuaGVpZ2h0LGM9dHlwZW9mIHQucGFnZVg9PSJudW1iZXIiP3QucGFnZVg6dC50b3VjaGVzWzBdLnBhZ2VYLGQ9dHlwZW9mIHQucGFnZVk9PSJudW1iZXIiP3QucGFnZVk6dC50b3VjaGVzWzBdLnBhZ2VZLHY9Yy0oci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0K3dpbmRvdy5wYWdlWE9mZnNldCksZj1kLShyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCt3aW5kb3cucGFnZVlPZmZzZXQpO3Y8MD92PTA6dj5sJiYodj1sKSxmPDA/Zj0wOmY+dSYmKGY9dSk7dmFyIG09di9sLGg9MS1mL3U7cmV0dXJue2g6bi5oLHM6bSx2OmgsYTpuLmEsc291cmNlOiJoc3YifX07ZnVuY3Rpb24gVG8oZSl7IkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mIjtyZXR1cm4gVG89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmdHlwZW9mIFN5bWJvbC5pdGVyYXRvcj09InN5bWJvbCI/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmdHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIHR9LFRvKGUpfWZ1bmN0aW9uIGxmKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gbXMoZSx0KXtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIHI9dFtuXTtyLmVudW1lcmFibGU9ci5lbnVtZXJhYmxlfHwhMSxyLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gciYmKHIud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHVmKHIua2V5KSxyKX19ZnVuY3Rpb24gc2YoZSx0LG4pe3JldHVybiB0JiZtcyhlLnByb3RvdHlwZSx0KSxuJiZtcyhlLG4pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGV9ZnVuY3Rpb24gdWYoZSl7dmFyIHQ9Y2YoZSwic3RyaW5nIik7cmV0dXJuIFRvKHQpPT09InN5bWJvbCI/dDpTdHJpbmcodCl9ZnVuY3Rpb24gY2YoZSx0KXtpZihUbyhlKSE9PSJvYmplY3QifHxlPT09bnVsbClyZXR1cm4gZTt2YXIgbj1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYobiE9PXZvaWQgMCl7dmFyIHI9bi5jYWxsKGUsdHx8ImRlZmF1bHQiKTtpZihUbyhyKSE9PSJvYmplY3QiKXJldHVybiByO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKHQ9PT0ic3RyaW5nIj9TdHJpbmc6TnVtYmVyKShlKX1mdW5jdGlvbiBkZihlLHQpe2lmKHR5cGVvZiB0IT0iZnVuY3Rpb24iJiZ0IT09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2UucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTplLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSx0JiZpbChlLHQpfWZ1bmN0aW9uIGlsKGUsdCl7cmV0dXJuIGlsPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHIsYSl7cmV0dXJuIHIuX19wcm90b19fPWEscn0saWwoZSx0KX1mdW5jdGlvbiBmZihlKXt2YXIgdD1nZigpO3JldHVybiBmdW5jdGlvbigpe3ZhciByPUlpKGUpLGE7aWYodCl7dmFyIGw9SWkodGhpcykuY29uc3RydWN0b3I7YT1SZWZsZWN0LmNvbnN0cnVjdChyLGFyZ3VtZW50cyxsKX1lbHNlIGE9ci5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIHZmKHRoaXMsYSl9fWZ1bmN0aW9uIHZmKGUsdCl7aWYodCYmKFRvKHQpPT09Im9iamVjdCJ8fHR5cGVvZiB0PT0iZnVuY3Rpb24iKSlyZXR1cm4gdDtpZih0IT09dm9pZCAwKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIG1mKGUpfWZ1bmN0aW9uIG1mKGUpe2lmKGU9PT12b2lkIDApdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZX1mdW5jdGlvbiBnZigpe2lmKHR5cGVvZiBSZWZsZWN0PT0idW5kZWZpbmVkInx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKHR5cGVvZiBQcm94eT09ImZ1bmN0aW9uIilyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGUpe3JldHVybiExfX1mdW5jdGlvbiBJaShlKXtyZXR1cm4gSWk9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24obil7cmV0dXJuIG4uX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2Yobil9LElpKGUpfXZhciBoZj1mdW5jdGlvbihlKXtkZihuLGUpO3ZhciB0PWZmKG4pO2Z1bmN0aW9uIG4ocil7dmFyIGE7cmV0dXJuIGxmKHRoaXMsbiksYT10LmNhbGwodGhpcyxyKSxhLmhhbmRsZUNoYW5nZT1mdW5jdGlvbihsKXt0eXBlb2YgYS5wcm9wcy5vbkNoYW5nZT09ImZ1bmN0aW9uIiYmYS50aHJvdHRsZShhLnByb3BzLm9uQ2hhbmdlLG9mKGwsYS5wcm9wcy5oc2wsYS5jb250YWluZXIpLGwpfSxhLmhhbmRsZU1vdXNlRG93bj1mdW5jdGlvbihsKXthLmhhbmRsZUNoYW5nZShsKTt2YXIgdT1hLmdldENvbnRhaW5lclJlbmRlcldpbmRvdygpO3UuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIixhLmhhbmRsZUNoYW5nZSksdS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIixhLmhhbmRsZU1vdXNlVXApfSxhLmhhbmRsZU1vdXNlVXA9ZnVuY3Rpb24oKXthLnVuYmluZEV2ZW50TGlzdGVuZXJzKCl9LGEudGhyb3R0bGU9YWYoKShmdW5jdGlvbihsLHUsYyl7bCh1LGMpfSw1MCksYX1yZXR1cm4gc2Yobixbe2tleToiY29tcG9uZW50V2lsbFVubW91bnQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy50aHJvdHRsZS5jYW5jZWwoKSx0aGlzLnVuYmluZEV2ZW50TGlzdGVuZXJzKCl9fSx7a2V5OiJnZXRDb250YWluZXJSZW5kZXJXaW5kb3ciLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciBhPXRoaXMuY29udGFpbmVyLGw9d2luZG93OyFsLmRvY3VtZW50LmNvbnRhaW5zKGEpJiZsLnBhcmVudCE9PWw7KWw9bC5wYXJlbnQ7cmV0dXJuIGx9fSx7a2V5OiJ1bmJpbmRFdmVudExpc3RlbmVycyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmdldENvbnRhaW5lclJlbmRlcldpbmRvdygpO2EucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmhhbmRsZUNoYW5nZSksYS5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLmhhbmRsZU1vdXNlVXApfX0se2tleToicmVuZGVyIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBhPXRoaXMsbD10aGlzLnByb3BzLnN0eWxlfHx7fSx1PWwuY29sb3IsYz1sLndoaXRlLGQ9bC5ibGFjayx2PWwucG9pbnRlcixmPWwuY2lyY2xlLG09KDAscm8uWlApKHtkZWZhdWx0Ontjb2xvcjp7YWJzb2x1dGU6IjBweCAwcHggMHB4IDBweCIsYmFja2dyb3VuZDoiaHNsKCIuY29uY2F0KHRoaXMucHJvcHMuaHNsLmgsIiwxMDAlLCA1MCUpIiksYm9yZGVyUmFkaXVzOnRoaXMucHJvcHMucmFkaXVzfSx3aGl0ZTp7YWJzb2x1dGU6IjBweCAwcHggMHB4IDBweCIsYm9yZGVyUmFkaXVzOnRoaXMucHJvcHMucmFkaXVzfSxibGFjazp7YWJzb2x1dGU6IjBweCAwcHggMHB4IDBweCIsYm94U2hhZG93OnRoaXMucHJvcHMuc2hhZG93LGJvcmRlclJhZGl1czp0aGlzLnByb3BzLnJhZGl1c30scG9pbnRlcjp7cG9zaXRpb246ImFic29sdXRlIix0b3A6IiIuY29uY2F0KC0odGhpcy5wcm9wcy5oc3YudioxMDApKzEwMCwiJSIpLGxlZnQ6IiIuY29uY2F0KHRoaXMucHJvcHMuaHN2LnMqMTAwLCIlIiksY3Vyc29yOiJkZWZhdWx0In0sY2lyY2xlOnt3aWR0aDoiNHB4IixoZWlnaHQ6IjRweCIsYm94U2hhZG93OmAwIDAgMCAxLjVweCAjZmZmLCBpbnNldCAwIDAgMXB4IDFweCByZ2JhKDAsMCwwLC4zKSwKKyAgICAgICAgICAgIDAgMCAxcHggMnB4IHJnYmEoMCwwLDAsLjQpYCxib3JkZXJSYWRpdXM6IjUwJSIsY3Vyc29yOiJoYW5kIix0cmFuc2Zvcm06InRyYW5zbGF0ZSgtMnB4LCAtMnB4KSJ9fSxjdXN0b206e2NvbG9yOnUsd2hpdGU6YyxibGFjazpkLHBvaW50ZXI6dixjaXJjbGU6Zn19LHtjdXN0b206ISF0aGlzLnByb3BzLnN0eWxlfSk7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7c3R5bGU6bS5jb2xvcixyZWY6ZnVuY3Rpb24oQyl7cmV0dXJuIGEuY29udGFpbmVyPUN9LG9uTW91c2VEb3duOnRoaXMuaGFuZGxlTW91c2VEb3duLG9uVG91Y2hNb3ZlOnRoaXMuaGFuZGxlQ2hhbmdlLG9uVG91Y2hTdGFydDp0aGlzLmhhbmRsZUNoYW5nZX0sby5jcmVhdGVFbGVtZW50KCJzdHlsZSIsbnVsbCxgCisgICAgICAgICAgLnNhdHVyYXRpb24td2hpdGUgeworICAgICAgICAgICAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNmZmYsIHJnYmEoMjU1LDI1NSwyNTUsMCkpOworICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjZmZmLCByZ2JhKDI1NSwyNTUsMjU1LDApKTsKKyAgICAgICAgICB9CisgICAgICAgICAgLnNhdHVyYXRpb24tYmxhY2sgeworICAgICAgICAgICAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG8gdG9wLCAjMDAwLCByZ2JhKDAsMCwwLDApKTsKKyAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byB0b3AsICMwMDAsIHJnYmEoMCwwLDAsMCkpOworICAgICAgICAgIH0KKyAgICAgICAgYCksby5jcmVhdGVFbGVtZW50KCJkaXYiLHtzdHlsZTptLndoaXRlLGNsYXNzTmFtZToic2F0dXJhdGlvbi13aGl0ZSJ9LG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7c3R5bGU6bS5ibGFjayxjbGFzc05hbWU6InNhdHVyYXRpb24tYmxhY2sifSksby5jcmVhdGVFbGVtZW50KCJkaXYiLHtzdHlsZTptLnBvaW50ZXJ9LHRoaXMucHJvcHMucG9pbnRlcj9vLmNyZWF0ZUVsZW1lbnQodGhpcy5wcm9wcy5wb2ludGVyLHRoaXMucHJvcHMpOm8uY3JlYXRlRWxlbWVudCgiZGl2Iix7c3R5bGU6bS5jaXJjbGV9KSkpKX19XSksbn0oby5QdXJlQ29tcG9uZW50fHxvLkNvbXBvbmVudCkscGY9aGYsYmY9aSgyMzI3OSkseWY9aS5uKGJmKSxDZj1pKDY2MDczKSx4Zj1pLm4oQ2YpO2Z1bmN0aW9uICRpKGUpeyJAYmFiZWwvaGVscGVycyAtIHR5cGVvZiI7cmV0dXJuICRpPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJnR5cGVvZiBTeW1ib2wuaXRlcmF0b3I9PSJzeW1ib2wiP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJnR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiB0fSwkaShlKX12YXIgU2Y9L15ccysvLFBmPS9ccyskLztmdW5jdGlvbiBNdChlLHQpe2lmKGU9ZXx8IiIsdD10fHx7fSxlIGluc3RhbmNlb2YgTXQpcmV0dXJuIGU7aWYoISh0aGlzIGluc3RhbmNlb2YgTXQpKXJldHVybiBuZXcgTXQoZSx0KTt2YXIgbj13ZihlKTt0aGlzLl9vcmlnaW5hbElucHV0PWUsdGhpcy5fcj1uLnIsdGhpcy5fZz1uLmcsdGhpcy5fYj1uLmIsdGhpcy5fYT1uLmEsdGhpcy5fcm91bmRBPU1hdGgucm91bmQoMTAwKnRoaXMuX2EpLzEwMCx0aGlzLl9mb3JtYXQ9dC5mb3JtYXR8fG4uZm9ybWF0LHRoaXMuX2dyYWRpZW50VHlwZT10LmdyYWRpZW50VHlwZSx0aGlzLl9yPDEmJih0aGlzLl9yPU1hdGgucm91bmQodGhpcy5fcikpLHRoaXMuX2c8MSYmKHRoaXMuX2c9TWF0aC5yb3VuZCh0aGlzLl9nKSksdGhpcy5fYjwxJiYodGhpcy5fYj1NYXRoLnJvdW5kKHRoaXMuX2IpKSx0aGlzLl9vaz1uLm9rfU10LnByb3RvdHlwZT17aXNEYXJrOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0QnJpZ2h0bmVzcygpPDEyOH0saXNMaWdodDpmdW5jdGlvbigpe3JldHVybiF0aGlzLmlzRGFyaygpfSxpc1ZhbGlkOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX29rfSxnZXRPcmlnaW5hbElucHV0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX29yaWdpbmFsSW5wdXR9LGdldEZvcm1hdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9mb3JtYXR9LGdldEFscGhhOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2F9LGdldEJyaWdodG5lc3M6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnRvUmdiKCk7cmV0dXJuKHQucioyOTkrdC5nKjU4Nyt0LmIqMTE0KS8xZTN9LGdldEx1bWluYW5jZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMudG9SZ2IoKSxuLHIsYSxsLHUsYztyZXR1cm4gbj10LnIvMjU1LHI9dC5nLzI1NSxhPXQuYi8yNTUsbjw9LjAzOTI4P2w9bi8xMi45MjpsPU1hdGgucG93KChuKy4wNTUpLzEuMDU1LDIuNCkscjw9LjAzOTI4P3U9ci8xMi45Mjp1PU1hdGgucG93KChyKy4wNTUpLzEuMDU1LDIuNCksYTw9LjAzOTI4P2M9YS8xMi45MjpjPU1hdGgucG93KChhKy4wNTUpLzEuMDU1LDIuNCksLjIxMjYqbCsuNzE1Mip1Ky4wNzIyKmN9LHNldEFscGhhOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9hPUNzKHQpLHRoaXMuX3JvdW5kQT1NYXRoLnJvdW5kKDEwMCp0aGlzLl9hKS8xMDAsdGhpc30sdG9Ic3Y6ZnVuY3Rpb24oKXt2YXIgdD1ocyh0aGlzLl9yLHRoaXMuX2csdGhpcy5fYik7cmV0dXJue2g6dC5oKjM2MCxzOnQucyx2OnQudixhOnRoaXMuX2F9fSx0b0hzdlN0cmluZzpmdW5jdGlvbigpe3ZhciB0PWhzKHRoaXMuX3IsdGhpcy5fZyx0aGlzLl9iKSxuPU1hdGgucm91bmQodC5oKjM2MCkscj1NYXRoLnJvdW5kKHQucyoxMDApLGE9TWF0aC5yb3VuZCh0LnYqMTAwKTtyZXR1cm4gdGhpcy5fYT09MT8iaHN2KCIrbisiLCAiK3IrIiUsICIrYSsiJSkiOiJoc3ZhKCIrbisiLCAiK3IrIiUsICIrYSsiJSwgIit0aGlzLl9yb3VuZEErIikifSx0b0hzbDpmdW5jdGlvbigpe3ZhciB0PWdzKHRoaXMuX3IsdGhpcy5fZyx0aGlzLl9iKTtyZXR1cm57aDp0LmgqMzYwLHM6dC5zLGw6dC5sLGE6dGhpcy5fYX19LHRvSHNsU3RyaW5nOmZ1bmN0aW9uKCl7dmFyIHQ9Z3ModGhpcy5fcix0aGlzLl9nLHRoaXMuX2IpLG49TWF0aC5yb3VuZCh0LmgqMzYwKSxyPU1hdGgucm91bmQodC5zKjEwMCksYT1NYXRoLnJvdW5kKHQubCoxMDApO3JldHVybiB0aGlzLl9hPT0xPyJoc2woIituKyIsICIrcisiJSwgIithKyIlKSI6ImhzbGEoIituKyIsICIrcisiJSwgIithKyIlLCAiK3RoaXMuX3JvdW5kQSsiKSJ9LHRvSGV4OmZ1bmN0aW9uKHQpe3JldHVybiBwcyh0aGlzLl9yLHRoaXMuX2csdGhpcy5fYix0KX0sdG9IZXhTdHJpbmc6ZnVuY3Rpb24odCl7cmV0dXJuIiMiK3RoaXMudG9IZXgodCl9LHRvSGV4ODpmdW5jdGlvbih0KXtyZXR1cm4gJGYodGhpcy5fcix0aGlzLl9nLHRoaXMuX2IsdGhpcy5fYSx0KX0sdG9IZXg4U3RyaW5nOmZ1bmN0aW9uKHQpe3JldHVybiIjIit0aGlzLnRvSGV4OCh0KX0sdG9SZ2I6ZnVuY3Rpb24oKXtyZXR1cm57cjpNYXRoLnJvdW5kKHRoaXMuX3IpLGc6TWF0aC5yb3VuZCh0aGlzLl9nKSxiOk1hdGgucm91bmQodGhpcy5fYiksYTp0aGlzLl9hfX0sdG9SZ2JTdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYT09MT8icmdiKCIrTWF0aC5yb3VuZCh0aGlzLl9yKSsiLCAiK01hdGgucm91bmQodGhpcy5fZykrIiwgIitNYXRoLnJvdW5kKHRoaXMuX2IpKyIpIjoicmdiYSgiK01hdGgucm91bmQodGhpcy5fcikrIiwgIitNYXRoLnJvdW5kKHRoaXMuX2cpKyIsICIrTWF0aC5yb3VuZCh0aGlzLl9iKSsiLCAiK3RoaXMuX3JvdW5kQSsiKSJ9LHRvUGVyY2VudGFnZVJnYjpmdW5jdGlvbigpe3JldHVybntyOk1hdGgucm91bmQob3IodGhpcy5fciwyNTUpKjEwMCkrIiUiLGc6TWF0aC5yb3VuZChvcih0aGlzLl9nLDI1NSkqMTAwKSsiJSIsYjpNYXRoLnJvdW5kKG9yKHRoaXMuX2IsMjU1KSoxMDApKyIlIixhOnRoaXMuX2F9fSx0b1BlcmNlbnRhZ2VSZ2JTdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYT09MT8icmdiKCIrTWF0aC5yb3VuZChvcih0aGlzLl9yLDI1NSkqMTAwKSsiJSwgIitNYXRoLnJvdW5kKG9yKHRoaXMuX2csMjU1KSoxMDApKyIlLCAiK01hdGgucm91bmQob3IodGhpcy5fYiwyNTUpKjEwMCkrIiUpIjoicmdiYSgiK01hdGgucm91bmQob3IodGhpcy5fciwyNTUpKjEwMCkrIiUsICIrTWF0aC5yb3VuZChvcih0aGlzLl9nLDI1NSkqMTAwKSsiJSwgIitNYXRoLnJvdW5kKG9yKHRoaXMuX2IsMjU1KSoxMDApKyIlLCAiK3RoaXMuX3JvdW5kQSsiKSJ9LHRvTmFtZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hPT09MD8idHJhbnNwYXJlbnQiOnRoaXMuX2E8MT8hMTpMZltwcyh0aGlzLl9yLHRoaXMuX2csdGhpcy5fYiwhMCldfHwhMX0sdG9GaWx0ZXI6ZnVuY3Rpb24odCl7dmFyIG49IiMiK2JzKHRoaXMuX3IsdGhpcy5fZyx0aGlzLl9iLHRoaXMuX2EpLHI9bixhPXRoaXMuX2dyYWRpZW50VHlwZT8iR3JhZGllbnRUeXBlID0gMSwgIjoiIjtpZih0KXt2YXIgbD1NdCh0KTtyPSIjIiticyhsLl9yLGwuX2csbC5fYixsLl9hKX1yZXR1cm4icHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KCIrYSsic3RhcnRDb2xvcnN0cj0iK24rIixlbmRDb2xvcnN0cj0iK3IrIikifSx0b1N0cmluZzpmdW5jdGlvbih0KXt2YXIgbj0hIXQ7dD10fHx0aGlzLl9mb3JtYXQ7dmFyIHI9ITEsYT10aGlzLl9hPDEmJnRoaXMuX2E+PTAsbD0hbiYmYSYmKHQ9PT0iaGV4Inx8dD09PSJoZXg2Inx8dD09PSJoZXgzInx8dD09PSJoZXg0Inx8dD09PSJoZXg4Inx8dD09PSJuYW1lIik7cmV0dXJuIGw/dD09PSJuYW1lIiYmdGhpcy5fYT09PTA/dGhpcy50b05hbWUoKTp0aGlzLnRvUmdiU3RyaW5nKCk6KHQ9PT0icmdiIiYmKHI9dGhpcy50b1JnYlN0cmluZygpKSx0PT09InByZ2IiJiYocj10aGlzLnRvUGVyY2VudGFnZVJnYlN0cmluZygpKSwodD09PSJoZXgifHx0PT09ImhleDYiKSYmKHI9dGhpcy50b0hleFN0cmluZygpKSx0PT09ImhleDMiJiYocj10aGlzLnRvSGV4U3RyaW5nKCEwKSksdD09PSJoZXg0IiYmKHI9dGhpcy50b0hleDhTdHJpbmcoITApKSx0PT09ImhleDgiJiYocj10aGlzLnRvSGV4OFN0cmluZygpKSx0PT09Im5hbWUiJiYocj10aGlzLnRvTmFtZSgpKSx0PT09ImhzbCImJihyPXRoaXMudG9Ic2xTdHJpbmcoKSksdD09PSJoc3YiJiYocj10aGlzLnRvSHN2U3RyaW5nKCkpLHJ8fHRoaXMudG9IZXhTdHJpbmcoKSl9LGNsb25lOmZ1bmN0aW9uKCl7cmV0dXJuIE10KHRoaXMudG9TdHJpbmcoKSl9LF9hcHBseU1vZGlmaWNhdGlvbjpmdW5jdGlvbih0LG4pe3ZhciByPXQuYXBwbHkobnVsbCxbdGhpc10uY29uY2F0KFtdLnNsaWNlLmNhbGwobikpKTtyZXR1cm4gdGhpcy5fcj1yLl9yLHRoaXMuX2c9ci5fZyx0aGlzLl9iPXIuX2IsdGhpcy5zZXRBbHBoYShyLl9hKSx0aGlzfSxsaWdodGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FwcGx5TW9kaWZpY2F0aW9uKERmLGFyZ3VtZW50cyl9LGJyaWdodGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FwcGx5TW9kaWZpY2F0aW9uKE5mLGFyZ3VtZW50cyl9LGRhcmtlbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcHBseU1vZGlmaWNhdGlvbihGZixhcmd1bWVudHMpfSxkZXNhdHVyYXRlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FwcGx5TW9kaWZpY2F0aW9uKE1mLGFyZ3VtZW50cyl9LHNhdHVyYXRlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FwcGx5TW9kaWZpY2F0aW9uKFpmLGFyZ3VtZW50cyl9LGdyZXlzY2FsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcHBseU1vZGlmaWNhdGlvbihSZixhcmd1bWVudHMpfSxzcGluOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FwcGx5TW9kaWZpY2F0aW9uKFRmLGFyZ3VtZW50cyl9LF9hcHBseUNvbWJpbmF0aW9uOmZ1bmN0aW9uKHQsbil7cmV0dXJuIHQuYXBwbHkobnVsbCxbdGhpc10uY29uY2F0KFtdLnNsaWNlLmNhbGwobikpKX0sYW5hbG9nb3VzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FwcGx5Q29tYmluYXRpb24oSGYsYXJndW1lbnRzKX0sY29tcGxlbWVudDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcHBseUNvbWJpbmF0aW9uKGpmLGFyZ3VtZW50cyl9LG1vbm9jaHJvbWF0aWM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYXBwbHlDb21iaW5hdGlvbihrZixhcmd1bWVudHMpfSxzcGxpdGNvbXBsZW1lbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYXBwbHlDb21iaW5hdGlvbihBZixhcmd1bWVudHMpfSx0cmlhZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcHBseUNvbWJpbmF0aW9uKHlzLFszXSl9LHRldHJhZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcHBseUNvbWJpbmF0aW9uKHlzLFs0XSl9fSxNdC5mcm9tUmF0aW89ZnVuY3Rpb24oZSx0KXtpZigkaShlKT09Im9iamVjdCIpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiBlKWUuaGFzT3duUHJvcGVydHkocikmJihyPT09ImEiP25bcl09ZVtyXTpuW3JdPWVpKGVbcl0pKTtlPW59cmV0dXJuIE10KGUsdCl9O2Z1bmN0aW9uIHdmKGUpe3ZhciB0PXtyOjAsZzowLGI6MH0sbj0xLHI9bnVsbCxhPW51bGwsbD1udWxsLHU9ITEsYz0hMTtyZXR1cm4gdHlwZW9mIGU9PSJzdHJpbmciJiYoZT16ZihlKSksJGkoZSk9PSJvYmplY3QiJiYoemEoZS5yKSYmemEoZS5nKSYmemEoZS5iKT8odD1PZihlLnIsZS5nLGUuYiksdT0hMCxjPVN0cmluZyhlLnIpLnN1YnN0cigtMSk9PT0iJSI/InByZ2IiOiJyZ2IiKTp6YShlLmgpJiZ6YShlLnMpJiZ6YShlLnYpPyhyPWVpKGUucyksYT1laShlLnYpLHQ9SWYoZS5oLHIsYSksdT0hMCxjPSJoc3YiKTp6YShlLmgpJiZ6YShlLnMpJiZ6YShlLmwpJiYocj1laShlLnMpLGw9ZWkoZS5sKSx0PUVmKGUuaCxyLGwpLHU9ITAsYz0iaHNsIiksZS5oYXNPd25Qcm9wZXJ0eSgiYSIpJiYobj1lLmEpKSxuPUNzKG4pLHtvazp1LGZvcm1hdDplLmZvcm1hdHx8YyxyOk1hdGgubWluKDI1NSxNYXRoLm1heCh0LnIsMCkpLGc6TWF0aC5taW4oMjU1LE1hdGgubWF4KHQuZywwKSksYjpNYXRoLm1pbigyNTUsTWF0aC5tYXgodC5iLDApKSxhOm59fWZ1bmN0aW9uIE9mKGUsdCxuKXtyZXR1cm57cjpvcihlLDI1NSkqMjU1LGc6b3IodCwyNTUpKjI1NSxiOm9yKG4sMjU1KSoyNTV9fWZ1bmN0aW9uIGdzKGUsdCxuKXtlPW9yKGUsMjU1KSx0PW9yKHQsMjU1KSxuPW9yKG4sMjU1KTt2YXIgcj1NYXRoLm1heChlLHQsbiksYT1NYXRoLm1pbihlLHQsbiksbCx1LGM9KHIrYSkvMjtpZihyPT1hKWw9dT0wO2Vsc2V7dmFyIGQ9ci1hO3N3aXRjaCh1PWM+LjU/ZC8oMi1yLWEpOmQvKHIrYSkscil7Y2FzZSBlOmw9KHQtbikvZCsodDxuPzY6MCk7YnJlYWs7Y2FzZSB0Omw9KG4tZSkvZCsyO2JyZWFrO2Nhc2UgbjpsPShlLXQpL2QrNDticmVha31sLz02fXJldHVybntoOmwsczp1LGw6Y319ZnVuY3Rpb24gRWYoZSx0LG4pe3ZhciByLGEsbDtlPW9yKGUsMzYwKSx0PW9yKHQsMTAwKSxuPW9yKG4sMTAwKTtmdW5jdGlvbiB1KHYsZixtKXtyZXR1cm4gbTwwJiYobSs9MSksbT4xJiYobS09MSksbTwxLzY/disoZi12KSo2Km06bTwxLzI/ZjptPDIvMz92KyhmLXYpKigyLzMtbSkqNjp2fWlmKHQ9PT0wKXI9YT1sPW47ZWxzZXt2YXIgYz1uPC41P24qKDErdCk6bit0LW4qdCxkPTIqbi1jO3I9dShkLGMsZSsxLzMpLGE9dShkLGMsZSksbD11KGQsYyxlLTEvMyl9cmV0dXJue3I6cioyNTUsZzphKjI1NSxiOmwqMjU1fX1mdW5jdGlvbiBocyhlLHQsbil7ZT1vcihlLDI1NSksdD1vcih0LDI1NSksbj1vcihuLDI1NSk7dmFyIHI9TWF0aC5tYXgoZSx0LG4pLGE9TWF0aC5taW4oZSx0LG4pLGwsdSxjPXIsZD1yLWE7aWYodT1yPT09MD8wOmQvcixyPT1hKWw9MDtlbHNle3N3aXRjaChyKXtjYXNlIGU6bD0odC1uKS9kKyh0PG4/NjowKTticmVhaztjYXNlIHQ6bD0obi1lKS9kKzI7YnJlYWs7Y2FzZSBuOmw9KGUtdCkvZCs0O2JyZWFrfWwvPTZ9cmV0dXJue2g6bCxzOnUsdjpjfX1mdW5jdGlvbiBJZihlLHQsbil7ZT1vcihlLDM2MCkqNix0PW9yKHQsMTAwKSxuPW9yKG4sMTAwKTt2YXIgcj1NYXRoLmZsb29yKGUpLGE9ZS1yLGw9biooMS10KSx1PW4qKDEtYSp0KSxjPW4qKDEtKDEtYSkqdCksZD1yJTYsdj1bbix1LGwsbCxjLG5dW2RdLGY9W2MsbixuLHUsbCxsXVtkXSxtPVtsLGwsYyxuLG4sdV1bZF07cmV0dXJue3I6dioyNTUsZzpmKjI1NSxiOm0qMjU1fX1mdW5jdGlvbiBwcyhlLHQsbixyKXt2YXIgYT1bYmEoTWF0aC5yb3VuZChlKS50b1N0cmluZygxNikpLGJhKE1hdGgucm91bmQodCkudG9TdHJpbmcoMTYpKSxiYShNYXRoLnJvdW5kKG4pLnRvU3RyaW5nKDE2KSldO3JldHVybiByJiZhWzBdLmNoYXJBdCgwKT09YVswXS5jaGFyQXQoMSkmJmFbMV0uY2hhckF0KDApPT1hWzFdLmNoYXJBdCgxKSYmYVsyXS5jaGFyQXQoMCk9PWFbMl0uY2hhckF0KDEpP2FbMF0uY2hhckF0KDApK2FbMV0uY2hhckF0KDApK2FbMl0uY2hhckF0KDApOmEuam9pbigiIil9ZnVuY3Rpb24gJGYoZSx0LG4scixhKXt2YXIgbD1bYmEoTWF0aC5yb3VuZChlKS50b1N0cmluZygxNikpLGJhKE1hdGgucm91bmQodCkudG9TdHJpbmcoMTYpKSxiYShNYXRoLnJvdW5kKG4pLnRvU3RyaW5nKDE2KSksYmEoeHMocikpXTtyZXR1cm4gYSYmbFswXS5jaGFyQXQoMCk9PWxbMF0uY2hhckF0KDEpJiZsWzFdLmNoYXJBdCgwKT09bFsxXS5jaGFyQXQoMSkmJmxbMl0uY2hhckF0KDApPT1sWzJdLmNoYXJBdCgxKSYmbFszXS5jaGFyQXQoMCk9PWxbM10uY2hhckF0KDEpP2xbMF0uY2hhckF0KDApK2xbMV0uY2hhckF0KDApK2xbMl0uY2hhckF0KDApK2xbM10uY2hhckF0KDApOmwuam9pbigiIil9ZnVuY3Rpb24gYnMoZSx0LG4scil7dmFyIGE9W2JhKHhzKHIpKSxiYShNYXRoLnJvdW5kKGUpLnRvU3RyaW5nKDE2KSksYmEoTWF0aC5yb3VuZCh0KS50b1N0cmluZygxNikpLGJhKE1hdGgucm91bmQobikudG9TdHJpbmcoMTYpKV07cmV0dXJuIGEuam9pbigiIil9TXQuZXF1YWxzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIWV8fCF0PyExOk10KGUpLnRvUmdiU3RyaW5nKCk9PU10KHQpLnRvUmdiU3RyaW5nKCl9LE10LnJhbmRvbT1mdW5jdGlvbigpe3JldHVybiBNdC5mcm9tUmF0aW8oe3I6TWF0aC5yYW5kb20oKSxnOk1hdGgucmFuZG9tKCksYjpNYXRoLnJhbmRvbSgpfSl9O2Z1bmN0aW9uIE1mKGUsdCl7dD10PT09MD8wOnR8fDEwO3ZhciBuPU10KGUpLnRvSHNsKCk7cmV0dXJuIG4ucy09dC8xMDAsbi5zPU1pKG4ucyksTXQobil9ZnVuY3Rpb24gWmYoZSx0KXt0PXQ9PT0wPzA6dHx8MTA7dmFyIG49TXQoZSkudG9Ic2woKTtyZXR1cm4gbi5zKz10LzEwMCxuLnM9TWkobi5zKSxNdChuKX1mdW5jdGlvbiBSZihlKXtyZXR1cm4gTXQoZSkuZGVzYXR1cmF0ZSgxMDApfWZ1bmN0aW9uIERmKGUsdCl7dD10PT09MD8wOnR8fDEwO3ZhciBuPU10KGUpLnRvSHNsKCk7cmV0dXJuIG4ubCs9dC8xMDAsbi5sPU1pKG4ubCksTXQobil9ZnVuY3Rpb24gTmYoZSx0KXt0PXQ9PT0wPzA6dHx8MTA7dmFyIG49TXQoZSkudG9SZ2IoKTtyZXR1cm4gbi5yPU1hdGgubWF4KDAsTWF0aC5taW4oMjU1LG4uci1NYXRoLnJvdW5kKDI1NSotKHQvMTAwKSkpKSxuLmc9TWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsbi5nLU1hdGgucm91bmQoMjU1Ki0odC8xMDApKSkpLG4uYj1NYXRoLm1heCgwLE1hdGgubWluKDI1NSxuLmItTWF0aC5yb3VuZCgyNTUqLSh0LzEwMCkpKSksTXQobil9ZnVuY3Rpb24gRmYoZSx0KXt0PXQ9PT0wPzA6dHx8MTA7dmFyIG49TXQoZSkudG9Ic2woKTtyZXR1cm4gbi5sLT10LzEwMCxuLmw9TWkobi5sKSxNdChuKX1mdW5jdGlvbiBUZihlLHQpe3ZhciBuPU10KGUpLnRvSHNsKCkscj0obi5oK3QpJTM2MDtyZXR1cm4gbi5oPXI8MD8zNjArcjpyLE10KG4pfWZ1bmN0aW9uIGpmKGUpe3ZhciB0PU10KGUpLnRvSHNsKCk7cmV0dXJuIHQuaD0odC5oKzE4MCklMzYwLE10KHQpfWZ1bmN0aW9uIHlzKGUsdCl7aWYoaXNOYU4odCl8fHQ8PTApdGhyb3cgbmV3IEVycm9yKCJBcmd1bWVudCB0byBwb2x5YWQgbXVzdCBiZSBhIHBvc2l0aXZlIG51bWJlciIpO2Zvcih2YXIgbj1NdChlKS50b0hzbCgpLHI9W010KGUpXSxhPTM2MC90LGw9MTtsPHQ7bCsrKXIucHVzaChNdCh7aDoobi5oK2wqYSklMzYwLHM6bi5zLGw6bi5sfSkpO3JldHVybiByfWZ1bmN0aW9uIEFmKGUpe3ZhciB0PU10KGUpLnRvSHNsKCksbj10Lmg7cmV0dXJuW010KGUpLE10KHtoOihuKzcyKSUzNjAsczp0LnMsbDp0Lmx9KSxNdCh7aDoobisyMTYpJTM2MCxzOnQucyxsOnQubH0pXX1mdW5jdGlvbiBIZihlLHQsbil7dD10fHw2LG49bnx8MzA7dmFyIHI9TXQoZSkudG9Ic2woKSxhPTM2MC9uLGw9W010KGUpXTtmb3Ioci5oPShyLmgtKGEqdD4+MSkrNzIwKSUzNjA7LS10OylyLmg9KHIuaCthKSUzNjAsbC5wdXNoKE10KHIpKTtyZXR1cm4gbH1mdW5jdGlvbiBrZihlLHQpe3Q9dHx8Njtmb3IodmFyIG49TXQoZSkudG9Ic3YoKSxyPW4uaCxhPW4ucyxsPW4udix1PVtdLGM9MS90O3QtLTspdS5wdXNoKE10KHtoOnIsczphLHY6bH0pKSxsPShsK2MpJTE7cmV0dXJuIHV9TXQubWl4PWZ1bmN0aW9uKGUsdCxuKXtuPW49PT0wPzA6bnx8NTA7dmFyIHI9TXQoZSkudG9SZ2IoKSxhPU10KHQpLnRvUmdiKCksbD1uLzEwMCx1PXtyOihhLnItci5yKSpsK3IucixnOihhLmctci5nKSpsK3IuZyxiOihhLmItci5iKSpsK3IuYixhOihhLmEtci5hKSpsK3IuYX07cmV0dXJuIE10KHUpfSxNdC5yZWFkYWJpbGl0eT1mdW5jdGlvbihlLHQpe3ZhciBuPU10KGUpLHI9TXQodCk7cmV0dXJuKE1hdGgubWF4KG4uZ2V0THVtaW5hbmNlKCksci5nZXRMdW1pbmFuY2UoKSkrLjA1KS8oTWF0aC5taW4obi5nZXRMdW1pbmFuY2UoKSxyLmdldEx1bWluYW5jZSgpKSsuMDUpfSxNdC5pc1JlYWRhYmxlPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1NdC5yZWFkYWJpbGl0eShlLHQpLGEsbDtzd2l0Y2gobD0hMSxhPUtmKG4pLGEubGV2ZWwrYS5zaXplKXtjYXNlIkFBc21hbGwiOmNhc2UiQUFBbGFyZ2UiOmw9cj49NC41O2JyZWFrO2Nhc2UiQUFsYXJnZSI6bD1yPj0zO2JyZWFrO2Nhc2UiQUFBc21hbGwiOmw9cj49NzticmVha31yZXR1cm4gbH0sTXQubW9zdFJlYWRhYmxlPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1udWxsLGE9MCxsLHUsYyxkO249bnx8e30sdT1uLmluY2x1ZGVGYWxsYmFja0NvbG9ycyxjPW4ubGV2ZWwsZD1uLnNpemU7Zm9yKHZhciB2PTA7djx0Lmxlbmd0aDt2KyspbD1NdC5yZWFkYWJpbGl0eShlLHRbdl0pLGw+YSYmKGE9bCxyPU10KHRbdl0pKTtyZXR1cm4gTXQuaXNSZWFkYWJsZShlLHIse2xldmVsOmMsc2l6ZTpkfSl8fCF1P3I6KG4uaW5jbHVkZUZhbGxiYWNrQ29sb3JzPSExLE10Lm1vc3RSZWFkYWJsZShlLFsiI2ZmZiIsIiMwMDAiXSxuKSl9O3ZhciBsbD1NdC5uYW1lcz17YWxpY2VibHVlOiJmMGY4ZmYiLGFudGlxdWV3aGl0ZToiZmFlYmQ3IixhcXVhOiIwZmYiLGFxdWFtYXJpbmU6IjdmZmZkNCIsYXp1cmU6ImYwZmZmZiIsYmVpZ2U6ImY1ZjVkYyIsYmlzcXVlOiJmZmU0YzQiLGJsYWNrOiIwMDAiLGJsYW5jaGVkYWxtb25kOiJmZmViY2QiLGJsdWU6IjAwZiIsYmx1ZXZpb2xldDoiOGEyYmUyIixicm93bjoiYTUyYTJhIixidXJseXdvb2Q6ImRlYjg4NyIsYnVybnRzaWVubmE6ImVhN2U1ZCIsY2FkZXRibHVlOiI1ZjllYTAiLGNoYXJ0cmV1c2U6IjdmZmYwMCIsY2hvY29sYXRlOiJkMjY5MWUiLGNvcmFsOiJmZjdmNTAiLGNvcm5mbG93ZXJibHVlOiI2NDk1ZWQiLGNvcm5zaWxrOiJmZmY4ZGMiLGNyaW1zb246ImRjMTQzYyIsY3lhbjoiMGZmIixkYXJrYmx1ZToiMDAwMDhiIixkYXJrY3lhbjoiMDA4YjhiIixkYXJrZ29sZGVucm9kOiJiODg2MGIiLGRhcmtncmF5OiJhOWE5YTkiLGRhcmtncmVlbjoiMDA2NDAwIixkYXJrZ3JleToiYTlhOWE5IixkYXJra2hha2k6ImJkYjc2YiIsZGFya21hZ2VudGE6IjhiMDA4YiIsZGFya29saXZlZ3JlZW46IjU1NmIyZiIsZGFya29yYW5nZToiZmY4YzAwIixkYXJrb3JjaGlkOiI5OTMyY2MiLGRhcmtyZWQ6IjhiMDAwMCIsZGFya3NhbG1vbjoiZTk5NjdhIixkYXJrc2VhZ3JlZW46IjhmYmM4ZiIsZGFya3NsYXRlYmx1ZToiNDgzZDhiIixkYXJrc2xhdGVncmF5OiIyZjRmNGYiLGRhcmtzbGF0ZWdyZXk6IjJmNGY0ZiIsZGFya3R1cnF1b2lzZToiMDBjZWQxIixkYXJrdmlvbGV0OiI5NDAwZDMiLGRlZXBwaW5rOiJmZjE0OTMiLGRlZXBza3libHVlOiIwMGJmZmYiLGRpbWdyYXk6IjY5Njk2OSIsZGltZ3JleToiNjk2OTY5Iixkb2RnZXJibHVlOiIxZTkwZmYiLGZpcmVicmljazoiYjIyMjIyIixmbG9yYWx3aGl0ZToiZmZmYWYwIixmb3Jlc3RncmVlbjoiMjI4YjIyIixmdWNoc2lhOiJmMGYiLGdhaW5zYm9ybzoiZGNkY2RjIixnaG9zdHdoaXRlOiJmOGY4ZmYiLGdvbGQ6ImZmZDcwMCIsZ29sZGVucm9kOiJkYWE1MjAiLGdyYXk6IjgwODA4MCIsZ3JlZW46IjAwODAwMCIsZ3JlZW55ZWxsb3c6ImFkZmYyZiIsZ3JleToiODA4MDgwIixob25leWRldzoiZjBmZmYwIixob3RwaW5rOiJmZjY5YjQiLGluZGlhbnJlZDoiY2Q1YzVjIixpbmRpZ286IjRiMDA4MiIsaXZvcnk6ImZmZmZmMCIsa2hha2k6ImYwZTY4YyIsbGF2ZW5kZXI6ImU2ZTZmYSIsbGF2ZW5kZXJibHVzaDoiZmZmMGY1IixsYXduZ3JlZW46IjdjZmMwMCIsbGVtb25jaGlmZm9uOiJmZmZhY2QiLGxpZ2h0Ymx1ZToiYWRkOGU2IixsaWdodGNvcmFsOiJmMDgwODAiLGxpZ2h0Y3lhbjoiZTBmZmZmIixsaWdodGdvbGRlbnJvZHllbGxvdzoiZmFmYWQyIixsaWdodGdyYXk6ImQzZDNkMyIsbGlnaHRncmVlbjoiOTBlZTkwIixsaWdodGdyZXk6ImQzZDNkMyIsbGlnaHRwaW5rOiJmZmI2YzEiLGxpZ2h0c2FsbW9uOiJmZmEwN2EiLGxpZ2h0c2VhZ3JlZW46IjIwYjJhYSIsbGlnaHRza3libHVlOiI4N2NlZmEiLGxpZ2h0c2xhdGVncmF5OiI3ODkiLGxpZ2h0c2xhdGVncmV5OiI3ODkiLGxpZ2h0c3RlZWxibHVlOiJiMGM0ZGUiLGxpZ2h0eWVsbG93OiJmZmZmZTAiLGxpbWU6IjBmMCIsbGltZWdyZWVuOiIzMmNkMzIiLGxpbmVuOiJmYWYwZTYiLG1hZ2VudGE6ImYwZiIsbWFyb29uOiI4MDAwMDAiLG1lZGl1bWFxdWFtYXJpbmU6IjY2Y2RhYSIsbWVkaXVtYmx1ZToiMDAwMGNkIixtZWRpdW1vcmNoaWQ6ImJhNTVkMyIsbWVkaXVtcHVycGxlOiI5MzcwZGIiLG1lZGl1bXNlYWdyZWVuOiIzY2IzNzEiLG1lZGl1bXNsYXRlYmx1ZToiN2I2OGVlIixtZWRpdW1zcHJpbmdncmVlbjoiMDBmYTlhIixtZWRpdW10dXJxdW9pc2U6IjQ4ZDFjYyIsbWVkaXVtdmlvbGV0cmVkOiJjNzE1ODUiLG1pZG5pZ2h0Ymx1ZToiMTkxOTcwIixtaW50Y3JlYW06ImY1ZmZmYSIsbWlzdHlyb3NlOiJmZmU0ZTEiLG1vY2Nhc2luOiJmZmU0YjUiLG5hdmFqb3doaXRlOiJmZmRlYWQiLG5hdnk6IjAwMDA4MCIsb2xkbGFjZToiZmRmNWU2IixvbGl2ZToiODA4MDAwIixvbGl2ZWRyYWI6IjZiOGUyMyIsb3JhbmdlOiJmZmE1MDAiLG9yYW5nZXJlZDoiZmY0NTAwIixvcmNoaWQ6ImRhNzBkNiIscGFsZWdvbGRlbnJvZDoiZWVlOGFhIixwYWxlZ3JlZW46Ijk4ZmI5OCIscGFsZXR1cnF1b2lzZToiYWZlZWVlIixwYWxldmlvbGV0cmVkOiJkYjcwOTMiLHBhcGF5YXdoaXA6ImZmZWZkNSIscGVhY2hwdWZmOiJmZmRhYjkiLHBlcnU6ImNkODUzZiIscGluazoiZmZjMGNiIixwbHVtOiJkZGEwZGQiLHBvd2RlcmJsdWU6ImIwZTBlNiIscHVycGxlOiI4MDAwODAiLHJlYmVjY2FwdXJwbGU6IjY2MzM5OSIscmVkOiJmMDAiLHJvc3licm93bjoiYmM4ZjhmIixyb3lhbGJsdWU6IjQxNjllMSIsc2FkZGxlYnJvd246IjhiNDUxMyIsc2FsbW9uOiJmYTgwNzIiLHNhbmR5YnJvd246ImY0YTQ2MCIsc2VhZ3JlZW46IjJlOGI1NyIsc2Vhc2hlbGw6ImZmZjVlZSIsc2llbm5hOiJhMDUyMmQiLHNpbHZlcjoiYzBjMGMwIixza3libHVlOiI4N2NlZWIiLHNsYXRlYmx1ZToiNmE1YWNkIixzbGF0ZWdyYXk6IjcwODA5MCIsc2xhdGVncmV5OiI3MDgwOTAiLHNub3c6ImZmZmFmYSIsc3ByaW5nZ3JlZW46IjAwZmY3ZiIsc3RlZWxibHVlOiI0NjgyYjQiLHRhbjoiZDJiNDhjIix0ZWFsOiIwMDgwODAiLHRoaXN0bGU6ImQ4YmZkOCIsdG9tYXRvOiJmZjYzNDciLHR1cnF1b2lzZToiNDBlMGQwIix2aW9sZXQ6ImVlODJlZSIsd2hlYXQ6ImY1ZGViMyIsd2hpdGU6ImZmZiIsd2hpdGVzbW9rZToiZjVmNWY1Iix5ZWxsb3c6ImZmMCIseWVsbG93Z3JlZW46IjlhY2QzMiJ9LExmPU10LmhleE5hbWVzPVZmKGxsKTtmdW5jdGlvbiBWZihlKXt2YXIgdD17fTtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtlW25dXT1uKTtyZXR1cm4gdH1mdW5jdGlvbiBDcyhlKXtyZXR1cm4gZT1wYXJzZUZsb2F0KGUpLChpc05hTihlKXx8ZTwwfHxlPjEpJiYoZT0xKSxlfWZ1bmN0aW9uIG9yKGUsdCl7QmYoZSkmJihlPSIxMDAlIik7dmFyIG49V2YoZSk7cmV0dXJuIGU9TWF0aC5taW4odCxNYXRoLm1heCgwLHBhcnNlRmxvYXQoZSkpKSxuJiYoZT1wYXJzZUludChlKnQsMTApLzEwMCksTWF0aC5hYnMoZS10KTwxZS02PzE6ZSV0L3BhcnNlRmxvYXQodCl9ZnVuY3Rpb24gTWkoZSl7cmV0dXJuIE1hdGgubWluKDEsTWF0aC5tYXgoMCxlKSl9ZnVuY3Rpb24gcmEoZSl7cmV0dXJuIHBhcnNlSW50KGUsMTYpfWZ1bmN0aW9uIEJmKGUpe3JldHVybiB0eXBlb2YgZT09InN0cmluZyImJmUuaW5kZXhPZigiLiIpIT0tMSYmcGFyc2VGbG9hdChlKT09PTF9ZnVuY3Rpb24gV2YoZSl7cmV0dXJuIHR5cGVvZiBlPT0ic3RyaW5nIiYmZS5pbmRleE9mKCIlIikhPS0xfWZ1bmN0aW9uIGJhKGUpe3JldHVybiBlLmxlbmd0aD09MT8iMCIrZToiIitlfWZ1bmN0aW9uIGVpKGUpe3JldHVybiBlPD0xJiYoZT1lKjEwMCsiJSIpLGV9ZnVuY3Rpb24geHMoZSl7cmV0dXJuIE1hdGgucm91bmQocGFyc2VGbG9hdChlKSoyNTUpLnRvU3RyaW5nKDE2KX1mdW5jdGlvbiBTcyhlKXtyZXR1cm4gcmEoZSkvMjU1fXZhciB5YT1mdW5jdGlvbigpe3ZhciBlPSJbLVxcK10/XFxkKyU/Iix0PSJbLVxcK10/XFxkKlxcLlxcZCslPyIsbj0iKD86Iit0KyIpfCg/OiIrZSsiKSIscj0iW1xcc3xcXChdKygiK24rIilbLHxcXHNdKygiK24rIilbLHxcXHNdKygiK24rIilcXHMqXFwpPyIsYT0iW1xcc3xcXChdKygiK24rIilbLHxcXHNdKygiK24rIilbLHxcXHNdKygiK24rIilbLHxcXHNdKygiK24rIilcXHMqXFwpPyI7cmV0dXJue0NTU19VTklUOm5ldyBSZWdFeHAobikscmdiOm5ldyBSZWdFeHAoInJnYiIrcikscmdiYTpuZXcgUmVnRXhwKCJyZ2JhIithKSxoc2w6bmV3IFJlZ0V4cCgiaHNsIityKSxoc2xhOm5ldyBSZWdFeHAoImhzbGEiK2EpLGhzdjpuZXcgUmVnRXhwKCJoc3YiK3IpLGhzdmE6bmV3IFJlZ0V4cCgiaHN2YSIrYSksaGV4MzovXiM/KFswLTlhLWZBLUZdezF9KShbMC05YS1mQS1GXXsxfSkoWzAtOWEtZkEtRl17MX0pJC8saGV4NjovXiM/KFswLTlhLWZBLUZdezJ9KShbMC05YS1mQS1GXXsyfSkoWzAtOWEtZkEtRl17Mn0pJC8saGV4NDovXiM/KFswLTlhLWZBLUZdezF9KShbMC05YS1mQS1GXXsxfSkoWzAtOWEtZkEtRl17MX0pKFswLTlhLWZBLUZdezF9KSQvLGhleDg6L14jPyhbMC05YS1mQS1GXXsyfSkoWzAtOWEtZkEtRl17Mn0pKFswLTlhLWZBLUZdezJ9KShbMC05YS1mQS1GXXsyfSkkL319KCk7ZnVuY3Rpb24gemEoZSl7cmV0dXJuISF5YS5DU1NfVU5JVC5leGVjKGUpfWZ1bmN0aW9uIHpmKGUpe2U9ZS5yZXBsYWNlKFNmLCIiKS5yZXBsYWNlKFBmLCIiKS50b0xvd2VyQ2FzZSgpO3ZhciB0PSExO2lmKGxsW2VdKWU9bGxbZV0sdD0hMDtlbHNlIGlmKGU9PSJ0cmFuc3BhcmVudCIpcmV0dXJue3I6MCxnOjAsYjowLGE6MCxmb3JtYXQ6Im5hbWUifTt2YXIgbjtyZXR1cm4obj15YS5yZ2IuZXhlYyhlKSk/e3I6blsxXSxnOm5bMl0sYjpuWzNdfToobj15YS5yZ2JhLmV4ZWMoZSkpP3tyOm5bMV0sZzpuWzJdLGI6blszXSxhOm5bNF19OihuPXlhLmhzbC5leGVjKGUpKT97aDpuWzFdLHM6blsyXSxsOm5bM119OihuPXlhLmhzbGEuZXhlYyhlKSk/e2g6blsxXSxzOm5bMl0sbDpuWzNdLGE6bls0XX06KG49eWEuaHN2LmV4ZWMoZSkpP3toOm5bMV0sczpuWzJdLHY6blszXX06KG49eWEuaHN2YS5leGVjKGUpKT97aDpuWzFdLHM6blsyXSx2Om5bM10sYTpuWzRdfToobj15YS5oZXg4LmV4ZWMoZSkpP3tyOnJhKG5bMV0pLGc6cmEoblsyXSksYjpyYShuWzNdKSxhOlNzKG5bNF0pLGZvcm1hdDp0PyJuYW1lIjoiaGV4OCJ9OihuPXlhLmhleDYuZXhlYyhlKSk/e3I6cmEoblsxXSksZzpyYShuWzJdKSxiOnJhKG5bM10pLGZvcm1hdDp0PyJuYW1lIjoiaGV4In06KG49eWEuaGV4NC5leGVjKGUpKT97cjpyYShuWzFdKyIiK25bMV0pLGc6cmEoblsyXSsiIituWzJdKSxiOnJhKG5bM10rIiIrblszXSksYTpTcyhuWzRdKyIiK25bNF0pLGZvcm1hdDp0PyJuYW1lIjoiaGV4OCJ9OihuPXlhLmhleDMuZXhlYyhlKSk/e3I6cmEoblsxXSsiIituWzFdKSxnOnJhKG5bMl0rIiIrblsyXSksYjpyYShuWzNdKyIiK25bM10pLGZvcm1hdDp0PyJuYW1lIjoiaGV4In06ITF9ZnVuY3Rpb24gS2YoZSl7dmFyIHQsbjtyZXR1cm4gZT1lfHx7bGV2ZWw6IkFBIixzaXplOiJzbWFsbCJ9LHQ9KGUubGV2ZWx8fCJBQSIpLnRvVXBwZXJDYXNlKCksbj0oZS5zaXplfHwic21hbGwiKS50b0xvd2VyQ2FzZSgpLHQhPT0iQUEiJiZ0IT09IkFBQSImJih0PSJBQSIpLG4hPT0ic21hbGwiJiZuIT09ImxhcmdlIiYmKG49InNtYWxsIikse2xldmVsOnQsc2l6ZTpufX12YXIgUHM9ZnVuY3Rpb24odCl7dmFyIG49WyJyIiwiZyIsImIiLCJhIiwiaCIsInMiLCJsIiwidiJdLHI9MCxhPTA7cmV0dXJuIHhmKCkobixmdW5jdGlvbihsKXtpZih0W2xdJiYocis9MSxpc05hTih0W2xdKXx8KGErPTEpLGw9PT0icyJ8fGw9PT0ibCIpKXt2YXIgdT0vXlxkKyUkLzt1LnRlc3QodFtsXSkmJihhKz0xKX19KSxyPT09YT90OiExfSx0aT1mdW5jdGlvbih0LG4pe3ZhciByPXQuaGV4P010KHQuaGV4KTpNdCh0KSxhPXIudG9Ic2woKSxsPXIudG9Ic3YoKSx1PXIudG9SZ2IoKSxjPXIudG9IZXgoKTthLnM9PT0wJiYoYS5oPW58fDAsbC5oPW58fDApO3ZhciBkPWM9PT0iMDAwMDAwIiYmdS5hPT09MDtyZXR1cm57aHNsOmEsaGV4OmQ/InRyYW5zcGFyZW50IjoiIyIuY29uY2F0KGMpLHJnYjp1LGhzdjpsLG9sZEh1ZTp0Lmh8fG58fGEuaCxzb3VyY2U6dC5zb3VyY2V9fSxZZj1mdW5jdGlvbih0KXtpZih0PT09InRyYW5zcGFyZW50IilyZXR1cm4hMDt2YXIgbj1TdHJpbmcodCkuY2hhckF0KDApPT09IiMiPzE6MDtyZXR1cm4gdC5sZW5ndGghPT00K24mJnQubGVuZ3RoPDcrbiYmTXQodCkuaXNWYWxpZCgpfSxScD1mdW5jdGlvbih0KXtpZighdClyZXR1cm4iI2ZmZiI7dmFyIG49dGkodCk7aWYobi5oZXg9PT0idHJhbnNwYXJlbnQiKXJldHVybiJyZ2JhKDAsMCwwLDAuNCkiO3ZhciByPShuLnJnYi5yKjI5OStuLnJnYi5nKjU4NytuLnJnYi5iKjExNCkvMWUzO3JldHVybiByPj0xMjg/IiMwMDAiOiIjZmZmIn0sRHA9e2hzbDp7YToxLGg6MCxsOi41LHM6MX0saGV4OiIjZmYwMDAwIixyZ2I6e3I6MjU1LGc6MCxiOjAsYToxfSxoc3Y6e2g6MCxzOjEsdjoxLGE6MX19LE5wPWZ1bmN0aW9uKHQsbil7dmFyIHI9dC5yZXBsYWNlKCJceEIwIiwiIik7cmV0dXJuIHRpbnljb2xvcigiIi5jb25jYXQobiwiICgiKS5jb25jYXQociwiKSIpKS5fb2t9O2Z1bmN0aW9uIGpvKGUpeyJAYmFiZWwvaGVscGVycyAtIHR5cGVvZiI7cmV0dXJuIGpvPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJnR5cGVvZiBTeW1ib2wuaXRlcmF0b3I9PSJzeW1ib2wiP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJnR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiB0fSxqbyhlKX1mdW5jdGlvbiBzbCgpe3JldHVybiBzbD1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKGVbcl09bltyXSl9cmV0dXJuIGV9LHNsLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiB3cyhlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dCYmKHI9ci5maWx0ZXIoZnVuY3Rpb24oYSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSxhKS5lbnVtZXJhYmxlfSkpLG4ucHVzaC5hcHBseShuLHIpfXJldHVybiBufWZ1bmN0aW9uIG5pKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XSE9bnVsbD9hcmd1bWVudHNbdF06e307dCUyP3dzKE9iamVjdChuKSwhMCkuZm9yRWFjaChmdW5jdGlvbihyKXtVZihlLHIsbltyXSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTp3cyhPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24ocil7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUscixPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4scikpfSl9cmV0dXJuIGV9ZnVuY3Rpb24gVWYoZSx0LG4pe3JldHVybiB0PUVzKHQpLHQgaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1uLGV9ZnVuY3Rpb24gWGYoZSx0KXtpZighKGUgaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBPcyhlLHQpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgcj10W25dO3IuZW51bWVyYWJsZT1yLmVudW1lcmFibGV8fCExLHIuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiByJiYoci53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsRXMoci5rZXkpLHIpfX1mdW5jdGlvbiBHZihlLHQsbil7cmV0dXJuIHQmJk9zKGUucHJvdG90eXBlLHQpLG4mJk9zKGUsbiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZX1mdW5jdGlvbiBFcyhlKXt2YXIgdD1RZihlLCJzdHJpbmciKTtyZXR1cm4gam8odCk9PT0ic3ltYm9sIj90OlN0cmluZyh0KX1mdW5jdGlvbiBRZihlLHQpe2lmKGpvKGUpIT09Im9iamVjdCJ8fGU9PT1udWxsKXJldHVybiBlO3ZhciBuPWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZihuIT09dm9pZCAwKXt2YXIgcj1uLmNhbGwoZSx0fHwiZGVmYXVsdCIpO2lmKGpvKHIpIT09Im9iamVjdCIpcmV0dXJuIHI7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4odD09PSJzdHJpbmciP1N0cmluZzpOdW1iZXIpKGUpfWZ1bmN0aW9uIEpmKGUsdCl7aWYodHlwZW9mIHQhPSJmdW5jdGlvbiImJnQhPT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmUsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLHQmJnVsKGUsdCl9ZnVuY3Rpb24gdWwoZSx0KXtyZXR1cm4gdWw9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24ocixhKXtyZXR1cm4gci5fX3Byb3RvX189YSxyfSx1bChlLHQpfWZ1bmN0aW9uIHFmKGUpe3ZhciB0PXR2KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHI9WmkoZSksYTtpZih0KXt2YXIgbD1aaSh0aGlzKS5jb25zdHJ1Y3RvcjthPVJlZmxlY3QuY29uc3RydWN0KHIsYXJndW1lbnRzLGwpfWVsc2UgYT1yLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gX2YodGhpcyxhKX19ZnVuY3Rpb24gX2YoZSx0KXtpZih0JiYoam8odCk9PT0ib2JqZWN0Inx8dHlwZW9mIHQ9PSJmdW5jdGlvbiIpKXJldHVybiB0O2lmKHQhPT12b2lkIDApdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZXYoZSl9ZnVuY3Rpb24gZXYoZSl7aWYoZT09PXZvaWQgMCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBlfWZ1bmN0aW9uIHR2KCl7aWYodHlwZW9mIFJlZmxlY3Q9PSJ1bmRlZmluZWQifHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYodHlwZW9mIFByb3h5PT0iZnVuY3Rpb24iKXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZSl7cmV0dXJuITF9fWZ1bmN0aW9uIFppKGUpe3JldHVybiBaaT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihuKXtyZXR1cm4gbi5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihuKX0sWmkoZSl9dmFyIG52PWZ1bmN0aW9uKHQpe3ZhciBuPWZ1bmN0aW9uKHIpe0pmKGwscik7dmFyIGE9cWYobCk7ZnVuY3Rpb24gbCh1KXt2YXIgYztyZXR1cm4gWGYodGhpcyxsKSxjPWEuY2FsbCh0aGlzKSxjLmhhbmRsZUNoYW5nZT1mdW5jdGlvbihkLHYpe3ZhciBmPVBzKGQpO2lmKGYpe3ZhciBtPXRpKGQsZC5ofHxjLnN0YXRlLm9sZEh1ZSk7Yy5zZXRTdGF0ZShtKSxjLnByb3BzLm9uQ2hhbmdlQ29tcGxldGUmJmMuZGVib3VuY2UoYy5wcm9wcy5vbkNoYW5nZUNvbXBsZXRlLG0sdiksYy5wcm9wcy5vbkNoYW5nZSYmYy5wcm9wcy5vbkNoYW5nZShtLHYpfX0sYy5oYW5kbGVTd2F0Y2hIb3Zlcj1mdW5jdGlvbihkLHYpe3ZhciBmPVBzKGQpO2lmKGYpe3ZhciBtPXRpKGQsZC5ofHxjLnN0YXRlLm9sZEh1ZSk7Yy5wcm9wcy5vblN3YXRjaEhvdmVyJiZjLnByb3BzLm9uU3dhdGNoSG92ZXIobSx2KX19LGMuc3RhdGU9bmkoe30sdGkodS5jb2xvciwwKSksYy5kZWJvdW5jZT15ZigpKGZ1bmN0aW9uKGQsdixmKXtkKHYsZil9LDEwMCksY31yZXR1cm4gR2YobCxbe2tleToicmVuZGVyIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBjPXt9O3JldHVybiB0aGlzLnByb3BzLm9uU3dhdGNoSG92ZXImJihjLm9uU3dhdGNoSG92ZXI9dGhpcy5oYW5kbGVTd2F0Y2hIb3Zlciksby5jcmVhdGVFbGVtZW50KHQsc2woe30sdGhpcy5wcm9wcyx0aGlzLnN0YXRlLHtvbkNoYW5nZTp0aGlzLmhhbmRsZUNoYW5nZX0sYykpfX1dLFt7a2V5OiJnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMiLHZhbHVlOmZ1bmN0aW9uKGMsZCl7cmV0dXJuIG5pKHt9LHRpKGMuY29sb3IsZC5vbGRIdWUpKX19XSksbH0oby5QdXJlQ29tcG9uZW50fHxvLkNvbXBvbmVudCk7cmV0dXJuIG4ucHJvcFR5cGVzPW5pKHt9LHQucHJvcFR5cGVzKSxuLmRlZmF1bHRQcm9wcz1uaShuaSh7fSx0LmRlZmF1bHRQcm9wcykse30se2NvbG9yOntoOjI1MCxzOi41LGw6LjIsYToxfX0pLG59LHJ2PW52O2Z1bmN0aW9uIEFvKGUpeyJAYmFiZWwvaGVscGVycyAtIHR5cGVvZiI7cmV0dXJuIEFvPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJnR5cGVvZiBTeW1ib2wuaXRlcmF0b3I9PSJzeW1ib2wiP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJnR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiB0fSxBbyhlKX1mdW5jdGlvbiBhdihlLHQsbil7cmV0dXJuIHQ9JHModCksdCBpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1mdW5jdGlvbiBvdihlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIElzKGUsdCl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciByPXRbbl07ci5lbnVtZXJhYmxlPXIuZW51bWVyYWJsZXx8ITEsci5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHImJihyLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwkcyhyLmtleSkscil9fWZ1bmN0aW9uIGl2KGUsdCxuKXtyZXR1cm4gdCYmSXMoZS5wcm90b3R5cGUsdCksbiYmSXMoZSxuKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxlfWZ1bmN0aW9uICRzKGUpe3ZhciB0PWx2KGUsInN0cmluZyIpO3JldHVybiBBbyh0KT09PSJzeW1ib2wiP3Q6U3RyaW5nKHQpfWZ1bmN0aW9uIGx2KGUsdCl7aWYoQW8oZSkhPT0ib2JqZWN0Inx8ZT09PW51bGwpcmV0dXJuIGU7dmFyIG49ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKG4hPT12b2lkIDApe3ZhciByPW4uY2FsbChlLHR8fCJkZWZhdWx0Iik7aWYoQW8ocikhPT0ib2JqZWN0IilyZXR1cm4gcjt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybih0PT09InN0cmluZyI/U3RyaW5nOk51bWJlcikoZSl9ZnVuY3Rpb24gc3YoZSx0KXtpZih0eXBlb2YgdCE9ImZ1bmN0aW9uIiYmdCE9PW51bGwpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksdCYmY2woZSx0KX1mdW5jdGlvbiBjbChlLHQpe3JldHVybiBjbD1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihyLGEpe3JldHVybiByLl9fcHJvdG9fXz1hLHJ9LGNsKGUsdCl9ZnVuY3Rpb24gdXYoZSl7dmFyIHQ9ZnYoKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgcj1SaShlKSxhO2lmKHQpe3ZhciBsPVJpKHRoaXMpLmNvbnN0cnVjdG9yO2E9UmVmbGVjdC5jb25zdHJ1Y3Qocixhcmd1bWVudHMsbCl9ZWxzZSBhPXIuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBjdih0aGlzLGEpfX1mdW5jdGlvbiBjdihlLHQpe2lmKHQmJihBbyh0KT09PSJvYmplY3QifHx0eXBlb2YgdD09ImZ1bmN0aW9uIikpcmV0dXJuIHQ7aWYodCE9PXZvaWQgMCl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBkdihlKX1mdW5jdGlvbiBkdihlKXtpZihlPT09dm9pZCAwKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGV9ZnVuY3Rpb24gZnYoKXtpZih0eXBlb2YgUmVmbGVjdD09InVuZGVmaW5lZCJ8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZih0eXBlb2YgUHJveHk9PSJmdW5jdGlvbiIpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChlKXtyZXR1cm4hMX19ZnVuY3Rpb24gUmkoZSl7cmV0dXJuIFJpPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKG4pe3JldHVybiBuLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKG4pfSxSaShlKX12YXIgdnY9MSxNcz0zOCxtdj00MCxndj1bTXMsbXZdLGh2PWZ1bmN0aW9uKHQpe3JldHVybiBndi5pbmRleE9mKHQpPi0xfSxwdj1mdW5jdGlvbih0KXtyZXR1cm4gTnVtYmVyKFN0cmluZyh0KS5yZXBsYWNlKC8lL2csIiIpKX0sYnY9MSx5dj1mdW5jdGlvbihlKXtzdihuLGUpO3ZhciB0PXV2KG4pO2Z1bmN0aW9uIG4ocil7dmFyIGE7cmV0dXJuIG92KHRoaXMsbiksYT10LmNhbGwodGhpcyksYS5oYW5kbGVCbHVyPWZ1bmN0aW9uKCl7YS5zdGF0ZS5ibHVyVmFsdWUmJmEuc2V0U3RhdGUoe3ZhbHVlOmEuc3RhdGUuYmx1clZhbHVlLGJsdXJWYWx1ZTpudWxsfSl9LGEuaGFuZGxlQ2hhbmdlPWZ1bmN0aW9uKGwpe2Euc2V0VXBkYXRlZFZhbHVlKGwudGFyZ2V0LnZhbHVlLGwpfSxhLmhhbmRsZUtleURvd249ZnVuY3Rpb24obCl7dmFyIHU9cHYobC50YXJnZXQudmFsdWUpO2lmKCFpc05hTih1KSYmaHYobC5rZXlDb2RlKSl7dmFyIGM9YS5nZXRBcnJvd09mZnNldCgpLGQ9bC5rZXlDb2RlPT09TXM/dStjOnUtYzthLnNldFVwZGF0ZWRWYWx1ZShkLGwpfX0sYS5oYW5kbGVEcmFnPWZ1bmN0aW9uKGwpe2lmKGEucHJvcHMuZHJhZ0xhYmVsKXt2YXIgdT1NYXRoLnJvdW5kKGEucHJvcHMudmFsdWUrbC5tb3ZlbWVudFgpO3U+PTAmJnU8PWEucHJvcHMuZHJhZ01heCYmYS5wcm9wcy5vbkNoYW5nZSYmYS5wcm9wcy5vbkNoYW5nZShhLmdldFZhbHVlT2JqZWN0V2l0aExhYmVsKHUpLGwpfX0sYS5oYW5kbGVNb3VzZURvd249ZnVuY3Rpb24obCl7YS5wcm9wcy5kcmFnTGFiZWwmJihsLnByZXZlbnREZWZhdWx0KCksYS5oYW5kbGVEcmFnKGwpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLGEuaGFuZGxlRHJhZyksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLGEuaGFuZGxlTW91c2VVcCkpfSxhLmhhbmRsZU1vdXNlVXA9ZnVuY3Rpb24oKXthLnVuYmluZEV2ZW50TGlzdGVuZXJzKCl9LGEudW5iaW5kRXZlbnRMaXN0ZW5lcnM9ZnVuY3Rpb24oKXt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIixhLmhhbmRsZURyYWcpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIixhLmhhbmRsZU1vdXNlVXApfSxhLnN0YXRlPXt2YWx1ZTpTdHJpbmcoci52YWx1ZSkudG9VcHBlckNhc2UoKSxibHVyVmFsdWU6U3RyaW5nKHIudmFsdWUpLnRvVXBwZXJDYXNlKCl9LGEuaW5wdXRJZD0icmMtZWRpdGFibGUtaW5wdXQtIi5jb25jYXQoYnYrKyksYX1yZXR1cm4gaXYobixbe2tleToiY29tcG9uZW50RGlkVXBkYXRlIix2YWx1ZTpmdW5jdGlvbihhLGwpe3RoaXMucHJvcHMudmFsdWUhPT10aGlzLnN0YXRlLnZhbHVlJiYoYS52YWx1ZSE9PXRoaXMucHJvcHMudmFsdWV8fGwudmFsdWUhPT10aGlzLnN0YXRlLnZhbHVlKSYmKHRoaXMuaW5wdXQ9PT1kb2N1bWVudC5hY3RpdmVFbGVtZW50P3RoaXMuc2V0U3RhdGUoe2JsdXJWYWx1ZTpTdHJpbmcodGhpcy5wcm9wcy52YWx1ZSkudG9VcHBlckNhc2UoKX0pOnRoaXMuc2V0U3RhdGUoe3ZhbHVlOlN0cmluZyh0aGlzLnByb3BzLnZhbHVlKS50b1VwcGVyQ2FzZSgpLGJsdXJWYWx1ZTohdGhpcy5zdGF0ZS5ibHVyVmFsdWUmJlN0cmluZyh0aGlzLnByb3BzLnZhbHVlKS50b1VwcGVyQ2FzZSgpfSkpfX0se2tleToiY29tcG9uZW50V2lsbFVubW91bnQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy51bmJpbmRFdmVudExpc3RlbmVycygpfX0se2tleToiZ2V0VmFsdWVPYmplY3RXaXRoTGFiZWwiLHZhbHVlOmZ1bmN0aW9uKGEpe3JldHVybiBhdih7fSx0aGlzLnByb3BzLmxhYmVsLGEpfX0se2tleToiZ2V0QXJyb3dPZmZzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHJvcHMuYXJyb3dPZmZzZXR8fHZ2fX0se2tleToic2V0VXBkYXRlZFZhbHVlIix2YWx1ZTpmdW5jdGlvbihhLGwpe3ZhciB1PXRoaXMucHJvcHMubGFiZWw/dGhpcy5nZXRWYWx1ZU9iamVjdFdpdGhMYWJlbChhKTphO3RoaXMucHJvcHMub25DaGFuZ2UmJnRoaXMucHJvcHMub25DaGFuZ2UodSxsKSx0aGlzLnNldFN0YXRlKHt2YWx1ZTphfSl9fSx7a2V5OiJyZW5kZXIiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcyxsPSgwLHJvLlpQKSh7ZGVmYXVsdDp7d3JhcDp7cG9zaXRpb246InJlbGF0aXZlIn19LCJ1c2VyLW92ZXJyaWRlIjp7d3JhcDp0aGlzLnByb3BzLnN0eWxlJiZ0aGlzLnByb3BzLnN0eWxlLndyYXA/dGhpcy5wcm9wcy5zdHlsZS53cmFwOnt9LGlucHV0OnRoaXMucHJvcHMuc3R5bGUmJnRoaXMucHJvcHMuc3R5bGUuaW5wdXQ/dGhpcy5wcm9wcy5zdHlsZS5pbnB1dDp7fSxsYWJlbDp0aGlzLnByb3BzLnN0eWxlJiZ0aGlzLnByb3BzLnN0eWxlLmxhYmVsP3RoaXMucHJvcHMuc3R5bGUubGFiZWw6e319LCJkcmFnTGFiZWwtdHJ1ZSI6e2xhYmVsOntjdXJzb3I6ImV3LXJlc2l6ZSJ9fX0seyJ1c2VyLW92ZXJyaWRlIjohMH0sdGhpcy5wcm9wcyk7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7c3R5bGU6bC53cmFwfSxvLmNyZWF0ZUVsZW1lbnQoImlucHV0Iix7aWQ6dGhpcy5pbnB1dElkLHN0eWxlOmwuaW5wdXQscmVmOmZ1bmN0aW9uKGMpe3JldHVybiBhLmlucHV0PWN9LHZhbHVlOnRoaXMuc3RhdGUudmFsdWUsb25LZXlEb3duOnRoaXMuaGFuZGxlS2V5RG93bixvbkNoYW5nZTp0aGlzLmhhbmRsZUNoYW5nZSxvbkJsdXI6dGhpcy5oYW5kbGVCbHVyLHBsYWNlaG9sZGVyOnRoaXMucHJvcHMucGxhY2Vob2xkZXIsc3BlbGxDaGVjazoiZmFsc2UifSksdGhpcy5wcm9wcy5sYWJlbCYmIXRoaXMucHJvcHMuaGlkZUxhYmVsP28uY3JlYXRlRWxlbWVudCgibGFiZWwiLHtodG1sRm9yOnRoaXMuaW5wdXRJZCxzdHlsZTpsLmxhYmVsLG9uTW91c2VEb3duOnRoaXMuaGFuZGxlTW91c2VEb3dufSx0aGlzLnByb3BzLmxhYmVsKTpudWxsKX19XSksbn0oby5QdXJlQ29tcG9uZW50fHxvLkNvbXBvbmVudCkscmk9eXY7ZnVuY3Rpb24gSG8oZSl7IkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mIjtyZXR1cm4gSG89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmdHlwZW9mIFN5bWJvbC5pdGVyYXRvcj09InN5bWJvbCI/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmdHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIHR9LEhvKGUpfWZ1bmN0aW9uIGRsKCl7cmV0dXJuIGRsPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYoZVtyXT1uW3JdKX1yZXR1cm4gZX0sZGwuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEN2KGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gWnMoZSx0KXtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIHI9dFtuXTtyLmVudW1lcmFibGU9ci5lbnVtZXJhYmxlfHwhMSxyLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gciYmKHIud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFN2KHIua2V5KSxyKX19ZnVuY3Rpb24geHYoZSx0LG4pe3JldHVybiB0JiZacyhlLnByb3RvdHlwZSx0KSxuJiZacyhlLG4pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGV9ZnVuY3Rpb24gU3YoZSl7dmFyIHQ9UHYoZSwic3RyaW5nIik7cmV0dXJuIEhvKHQpPT09InN5bWJvbCI/dDpTdHJpbmcodCl9ZnVuY3Rpb24gUHYoZSx0KXtpZihIbyhlKSE9PSJvYmplY3QifHxlPT09bnVsbClyZXR1cm4gZTt2YXIgbj1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYobiE9PXZvaWQgMCl7dmFyIHI9bi5jYWxsKGUsdHx8ImRlZmF1bHQiKTtpZihIbyhyKSE9PSJvYmplY3QiKXJldHVybiByO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKHQ9PT0ic3RyaW5nIj9TdHJpbmc6TnVtYmVyKShlKX1mdW5jdGlvbiB3dihlLHQpe2lmKHR5cGVvZiB0IT0iZnVuY3Rpb24iJiZ0IT09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2UucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTplLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSx0JiZmbChlLHQpfWZ1bmN0aW9uIGZsKGUsdCl7cmV0dXJuIGZsPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHIsYSl7cmV0dXJuIHIuX19wcm90b19fPWEscn0sZmwoZSx0KX1mdW5jdGlvbiBPdihlKXt2YXIgdD0kdigpO3JldHVybiBmdW5jdGlvbigpe3ZhciByPURpKGUpLGE7aWYodCl7dmFyIGw9RGkodGhpcykuY29uc3RydWN0b3I7YT1SZWZsZWN0LmNvbnN0cnVjdChyLGFyZ3VtZW50cyxsKX1lbHNlIGE9ci5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIEV2KHRoaXMsYSl9fWZ1bmN0aW9uIEV2KGUsdCl7aWYodCYmKEhvKHQpPT09Im9iamVjdCJ8fHR5cGVvZiB0PT0iZnVuY3Rpb24iKSlyZXR1cm4gdDtpZih0IT09dm9pZCAwKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIEl2KGUpfWZ1bmN0aW9uIEl2KGUpe2lmKGU9PT12b2lkIDApdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZX1mdW5jdGlvbiAkdigpe2lmKHR5cGVvZiBSZWZsZWN0PT0idW5kZWZpbmVkInx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKHR5cGVvZiBQcm94eT09ImZ1bmN0aW9uIilyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGUpe3JldHVybiExfX1mdW5jdGlvbiBEaShlKXtyZXR1cm4gRGk9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24obil7cmV0dXJuIG4uX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2Yobil9LERpKGUpfXZhciBNdj1mdW5jdGlvbih0KXt2YXIgbj1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06InNwYW4iO3JldHVybiBmdW5jdGlvbihyKXt3dihsLHIpO3ZhciBhPU92KGwpO2Z1bmN0aW9uIGwoKXt2YXIgdTtDdih0aGlzLGwpO2Zvcih2YXIgYz1hcmd1bWVudHMubGVuZ3RoLGQ9bmV3IEFycmF5KGMpLHY9MDt2PGM7disrKWRbdl09YXJndW1lbnRzW3ZdO3JldHVybiB1PWEuY2FsbC5hcHBseShhLFt0aGlzXS5jb25jYXQoZCkpLHUuc3RhdGU9e2ZvY3VzOiExfSx1LmhhbmRsZUZvY3VzPWZ1bmN0aW9uKCl7cmV0dXJuIHUuc2V0U3RhdGUoe2ZvY3VzOiEwfSl9LHUuaGFuZGxlQmx1cj1mdW5jdGlvbigpe3JldHVybiB1LnNldFN0YXRlKHtmb2N1czohMX0pfSx1fXJldHVybiB4dihsLFt7a2V5OiJyZW5kZXIiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudChuLHtvbkZvY3VzOnRoaXMuaGFuZGxlRm9jdXMsb25CbHVyOnRoaXMuaGFuZGxlQmx1cn0sby5jcmVhdGVFbGVtZW50KHQsZGwoe30sdGhpcy5wcm9wcyx0aGlzLnN0YXRlKSkpfX1dKSxsfShvLkNvbXBvbmVudCl9O2Z1bmN0aW9uIGFpKGUpeyJAYmFiZWwvaGVscGVycyAtIHR5cGVvZiI7cmV0dXJuIGFpPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJnR5cGVvZiBTeW1ib2wuaXRlcmF0b3I9PSJzeW1ib2wiP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJnR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiB0fSxhaShlKX1mdW5jdGlvbiB2bCgpe3JldHVybiB2bD1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKGVbcl09bltyXSl9cmV0dXJuIGV9LHZsLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBScyhlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dCYmKHI9ci5maWx0ZXIoZnVuY3Rpb24oYSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSxhKS5lbnVtZXJhYmxlfSkpLG4ucHVzaC5hcHBseShuLHIpfXJldHVybiBufWZ1bmN0aW9uIERzKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XSE9bnVsbD9hcmd1bWVudHNbdF06e307dCUyP1JzKE9iamVjdChuKSwhMCkuZm9yRWFjaChmdW5jdGlvbihyKXtadihlLHIsbltyXSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTpScyhPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24ocil7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUscixPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4scikpfSl9cmV0dXJuIGV9ZnVuY3Rpb24gWnYoZSx0LG4pe3JldHVybiB0PVJ2KHQpLHQgaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1uLGV9ZnVuY3Rpb24gUnYoZSl7dmFyIHQ9RHYoZSwic3RyaW5nIik7cmV0dXJuIGFpKHQpPT09InN5bWJvbCI/dDpTdHJpbmcodCl9ZnVuY3Rpb24gRHYoZSx0KXtpZihhaShlKSE9PSJvYmplY3QifHxlPT09bnVsbClyZXR1cm4gZTt2YXIgbj1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYobiE9PXZvaWQgMCl7dmFyIHI9bi5jYWxsKGUsdHx8ImRlZmF1bHQiKTtpZihhaShyKSE9PSJvYmplY3QiKXJldHVybiByO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKHQ9PT0ic3RyaW5nIj9TdHJpbmc6TnVtYmVyKShlKX12YXIgTnY9MTMsRnY9ZnVuY3Rpb24odCl7dmFyIG49dC5jb2xvcixyPXQuc3R5bGUsYT10Lm9uQ2xpY2ssbD1hPT09dm9pZCAwP2Z1bmN0aW9uKCl7fTphLHU9dC5vbkhvdmVyLGM9dC50aXRsZSxkPWM9PT12b2lkIDA/bjpjLHY9dC5jaGlsZHJlbixmPXQuZm9jdXMsbT10LmZvY3VzU3R5bGUsaD1tPT09dm9pZCAwP3t9Om0sQz1uPT09InRyYW5zcGFyZW50Iix4PSgwLHJvLlpQKSh7ZGVmYXVsdDp7c3dhdGNoOkRzKERzKHtiYWNrZ3JvdW5kOm4saGVpZ2h0OiIxMDAlIix3aWR0aDoiMTAwJSIsY3Vyc29yOiJwb2ludGVyIixwb3NpdGlvbjoicmVsYXRpdmUiLG91dGxpbmU6Im5vbmUifSxyKSxmP2g6e30pfX0pLHA9ZnVuY3Rpb24oTSl7cmV0dXJuIGwobixNKX0seT1mdW5jdGlvbihNKXtyZXR1cm4gTS5rZXlDb2RlPT09TnYmJmwobixNKX0sdz1mdW5jdGlvbihNKXtyZXR1cm4gdShuLE0pfSxQPXt9O3JldHVybiB1JiYoUC5vbk1vdXNlT3Zlcj13KSxvLmNyZWF0ZUVsZW1lbnQoImRpdiIsdmwoe3N0eWxlOnguc3dhdGNoLG9uQ2xpY2s6cCx0aXRsZTpkLHRhYkluZGV4OjAsb25LZXlEb3duOnl9LFApLHYsQyYmby5jcmVhdGVFbGVtZW50KHJsLHtib3JkZXJSYWRpdXM6eC5zd2F0Y2guYm9yZGVyUmFkaXVzLGJveFNoYWRvdzoiaW5zZXQgMCAwIDAgMXB4IHJnYmEoMCwwLDAsMC4xKSJ9KSl9LFR2PU12KEZ2KSxqdj1mdW5jdGlvbih0KXt2YXIgbj10Lm9uQ2hhbmdlLHI9dC5yZ2IsYT10LmhzbCxsPXQuaGV4LHU9dC5kaXNhYmxlQWxwaGEsYz0oMCxyby5aUCkoe2RlZmF1bHQ6e2ZpZWxkczp7ZGlzcGxheToiZmxleCIscGFkZGluZ1RvcDoiNHB4In0sc2luZ2xlOntmbGV4OiIxIixwYWRkaW5nTGVmdDoiNnB4In0sYWxwaGE6e2ZsZXg6IjEiLHBhZGRpbmdMZWZ0OiI2cHgifSxkb3VibGU6e2ZsZXg6IjIifSxpbnB1dDp7d2lkdGg6IjgwJSIscGFkZGluZzoiNHB4IDEwJSAzcHgiLGJvcmRlcjoibm9uZSIsYm94U2hhZG93OiJpbnNldCAwIDAgMCAxcHggI2NjYyIsZm9udFNpemU6IjExcHgifSxsYWJlbDp7ZGlzcGxheToiYmxvY2siLHRleHRBbGlnbjoiY2VudGVyIixmb250U2l6ZToiMTFweCIsY29sb3I6IiMyMjIiLHBhZGRpbmdUb3A6IjNweCIscGFkZGluZ0JvdHRvbToiNHB4Iix0ZXh0VHJhbnNmb3JtOiJjYXBpdGFsaXplIn19LGRpc2FibGVBbHBoYTp7YWxwaGE6e2Rpc3BsYXk6Im5vbmUifX19LHtkaXNhYmxlQWxwaGE6dX0pLGQ9ZnVuY3Rpb24oZixtKXtmLmhleD9ZZihmLmhleCkmJihuPT1udWxsfHxuKHtoZXg6Zi5oZXgsc291cmNlOiJoZXgifSxtKSk6Zi5yfHxmLmd8fGYuYj9uPT1udWxsfHxuKHtyOmYucnx8KHI9PW51bGw/dm9pZCAwOnIuciksZzpmLmd8fChyPT1udWxsP3ZvaWQgMDpyLmcpLGI6Zi5ifHwocj09bnVsbD92b2lkIDA6ci5iKSxhOnI9PW51bGw/dm9pZCAwOnIuYSxzb3VyY2U6InJnYiJ9LG0pOmYuYSYmKGYuYTwwP2YuYT0wOmYuYT4xMDAmJihmLmE9MTAwKSxmLmEvPTEwMCxuPT1udWxsfHxuKHtoOmE9PW51bGw/dm9pZCAwOmEuaCxzOmE9PW51bGw/dm9pZCAwOmEucyxsOmE9PW51bGw/dm9pZCAwOmEubCxhOmYuYSxzb3VyY2U6InJnYiJ9LG0pKX07cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7c3R5bGU6Yy5maWVsZHMsY2xhc3NOYW1lOiJmbGV4Ym94LWZpeCJ9LG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7c3R5bGU6Yy5kb3VibGV9LG8uY3JlYXRlRWxlbWVudChyaSx7c3R5bGU6e2lucHV0OmMuaW5wdXQsbGFiZWw6Yy5sYWJlbH0sbGFiZWw6ImhleCIsdmFsdWU6bD09bnVsbD92b2lkIDA6bC5yZXBsYWNlKCIjIiwiIiksb25DaGFuZ2U6ZH0pKSxvLmNyZWF0ZUVsZW1lbnQoImRpdiIse3N0eWxlOmMuc2luZ2xlfSxvLmNyZWF0ZUVsZW1lbnQocmkse3N0eWxlOntpbnB1dDpjLmlucHV0LGxhYmVsOmMubGFiZWx9LGxhYmVsOiJyIix2YWx1ZTpyPT1udWxsP3ZvaWQgMDpyLnIsb25DaGFuZ2U6ZCxkcmFnTGFiZWw6InRydWUiLGRyYWdNYXg6IjI1NSJ9KSksby5jcmVhdGVFbGVtZW50KCJkaXYiLHtzdHlsZTpjLnNpbmdsZX0sby5jcmVhdGVFbGVtZW50KHJpLHtzdHlsZTp7aW5wdXQ6Yy5pbnB1dCxsYWJlbDpjLmxhYmVsfSxsYWJlbDoiZyIsdmFsdWU6cj09bnVsbD92b2lkIDA6ci5nLG9uQ2hhbmdlOmQsZHJhZ0xhYmVsOiJ0cnVlIixkcmFnTWF4OiIyNTUifSkpLG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7c3R5bGU6Yy5zaW5nbGV9LG8uY3JlYXRlRWxlbWVudChyaSx7c3R5bGU6e2lucHV0OmMuaW5wdXQsbGFiZWw6Yy5sYWJlbH0sbGFiZWw6ImIiLHZhbHVlOnI9PW51bGw/dm9pZCAwOnIuYixvbkNoYW5nZTpkLGRyYWdMYWJlbDoidHJ1ZSIsZHJhZ01heDoiMjU1In0pKSxvLmNyZWF0ZUVsZW1lbnQoImRpdiIse3N0eWxlOmMuYWxwaGF9LG8uY3JlYXRlRWxlbWVudChyaSx7c3R5bGU6e2lucHV0OmMuaW5wdXQsbGFiZWw6Yy5sYWJlbH0sbGFiZWw6ImEiLHZhbHVlOk1hdGgucm91bmQoKChyPT1udWxsP3ZvaWQgMDpyLmEpfHwwKSoxMDApLG9uQ2hhbmdlOmQsZHJhZ0xhYmVsOiJ0cnVlIixkcmFnTWF4OiIxMDAifSkpKX0sQXY9anY7ZnVuY3Rpb24gb2koZSl7IkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mIjtyZXR1cm4gb2k9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmdHlwZW9mIFN5bWJvbC5pdGVyYXRvcj09InN5bWJvbCI/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmdHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIHR9LG9pKGUpfWZ1bmN0aW9uIE5zKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0JiYocj1yLmZpbHRlcihmdW5jdGlvbihhKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLGEpLmVudW1lcmFibGV9KSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gRnMoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdIT1udWxsP2FyZ3VtZW50c1t0XTp7fTt0JTI/TnMoT2JqZWN0KG4pLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHIpe0h2KGUscixuW3JdKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOk5zKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbihyKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixyKSl9KX1yZXR1cm4gZX1mdW5jdGlvbiBIdihlLHQsbil7cmV0dXJuIHQ9a3YodCksdCBpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1mdW5jdGlvbiBrdihlKXt2YXIgdD1MdihlLCJzdHJpbmciKTtyZXR1cm4gb2kodCk9PT0ic3ltYm9sIj90OlN0cmluZyh0KX1mdW5jdGlvbiBMdihlLHQpe2lmKG9pKGUpIT09Im9iamVjdCJ8fGU9PT1udWxsKXJldHVybiBlO3ZhciBuPWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZihuIT09dm9pZCAwKXt2YXIgcj1uLmNhbGwoZSx0fHwiZGVmYXVsdCIpO2lmKG9pKHIpIT09Im9iamVjdCIpcmV0dXJuIHI7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4odD09PSJzdHJpbmciP1N0cmluZzpOdW1iZXIpKGUpfXZhciBWdj1mdW5jdGlvbih0KXt2YXIgbj10LmNvbG9ycyxyPXQub25DbGljayxhPXI9PT12b2lkIDA/ZnVuY3Rpb24oKXt9OnIsbD10Lm9uU3dhdGNoSG92ZXIsdT17Y29sb3JzOnttYXJnaW46IjAgLTEwcHgiLHBhZGRpbmc6IjEwcHggMCAwIDEwcHgiLGJvcmRlclRvcDoiMXB4IHNvbGlkICNlZWUiLGRpc3BsYXk6ImZsZXgiLGZsZXhXcmFwOiJ3cmFwIixwb3NpdGlvbjoicmVsYXRpdmUifSxzd2F0Y2hXcmFwOnt3aWR0aDoiMTZweCIsaGVpZ2h0OiIxNnB4IixtYXJnaW46IjAgMTBweCAxMHB4IDAifSxzd2F0Y2g6e21zQm9yZGVyUmFkaXVzOiIzcHgiLE1vekJvcmRlclJhZGl1czoiM3B4IixPQm9yZGVyUmFkaXVzOiIzcHgiLFdlYmtpdEJvcmRlclJhZGl1czoiM3B4Iixib3JkZXJSYWRpdXM6IjNweCIsbXNCb3hTaGFkb3c6Imluc2V0IDAgMCAwIDFweCByZ2JhKDAsMCwwLC4xNSkiLE1vekJveFNoYWRvdzoiaW5zZXQgMCAwIDAgMXB4IHJnYmEoMCwwLDAsLjE1KSIsT0JveFNoYWRvdzoiaW5zZXQgMCAwIDAgMXB4IHJnYmEoMCwwLDAsLjE1KSIsV2Via2l0Qm94U2hhZG93OiJpbnNldCAwIDAgMCAxcHggcmdiYSgwLDAsMCwuMTUpIixib3hTaGFkb3c6Imluc2V0IDAgMCAwIDFweCByZ2JhKDAsMCwwLC4xNSkifX0sYz1mdW5jdGlvbih2LGYpe2E9PW51bGx8fGEoe2hleDp2LHNvdXJjZToiaGV4In0sZil9O3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoImRpdiIse3N0eWxlOnUuY29sb3JzLGNsYXNzTmFtZToiZmxleGJveC1maXgifSxuPT1udWxsP3ZvaWQgMDpuLm1hcChmdW5jdGlvbihkKXt2YXIgdj10eXBlb2YgZD09InN0cmluZyI/e2NvbG9yOmQsdGl0bGU6dm9pZCAwfTpkLGY9IiIuY29uY2F0KHYuY29sb3IpLmNvbmNhdCgodj09bnVsbD92b2lkIDA6di50aXRsZSl8fCIiKTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJkaXYiLHtrZXk6ZixzdHlsZTp1LnN3YXRjaFdyYXB9LG8uY3JlYXRlRWxlbWVudChUdixGcyhGcyh7fSx2KSx7fSx7c3R5bGU6dS5zd2F0Y2gsb25DbGljazpjLG9uSG92ZXI6bCxmb2N1c1N0eWxlOntib3hTaGFkb3c6Imluc2V0IDAgMCAwIDFweCByZ2JhKDAsMCwwLC4xNSksIDAgMCA0cHggIi5jb25jYXQodi5jb2xvcil9fSkpKX0pKX0sQnY9VnY7ZnVuY3Rpb24gaWkoZSl7IkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mIjtyZXR1cm4gaWk9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmdHlwZW9mIFN5bWJvbC5pdGVyYXRvcj09InN5bWJvbCI/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmdHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIHR9LGlpKGUpfWZ1bmN0aW9uIFRzKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0JiYocj1yLmZpbHRlcihmdW5jdGlvbihhKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLGEpLmVudW1lcmFibGV9KSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gV3YoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdIT1udWxsP2FyZ3VtZW50c1t0XTp7fTt0JTI/VHMoT2JqZWN0KG4pLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHIpe3p2KGUscixuW3JdKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOlRzKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbihyKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixyKSl9KX1yZXR1cm4gZX1mdW5jdGlvbiB6dihlLHQsbil7cmV0dXJuIHQ9S3YodCksdCBpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1mdW5jdGlvbiBLdihlKXt2YXIgdD1ZdihlLCJzdHJpbmciKTtyZXR1cm4gaWkodCk9PT0ic3ltYm9sIj90OlN0cmluZyh0KX1mdW5jdGlvbiBZdihlLHQpe2lmKGlpKGUpIT09Im9iamVjdCJ8fGU9PT1udWxsKXJldHVybiBlO3ZhciBuPWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZihuIT09dm9pZCAwKXt2YXIgcj1uLmNhbGwoZSx0fHwiZGVmYXVsdCIpO2lmKGlpKHIpIT09Im9iamVjdCIpcmV0dXJuIHI7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4odD09PSJzdHJpbmciP1N0cmluZzpOdW1iZXIpKGUpfXZhciBqcz1mdW5jdGlvbih0KXt2YXIgbj10LndpZHRoLHI9dC5yZ2IsYT10LmhleCxsPXQuaHN2LHU9dC5oc2wsYz10Lm9uQ2hhbmdlLGQ9dC5vblN3YXRjaEhvdmVyLHY9dC5kaXNhYmxlQWxwaGEsZj10LnByZXNldENvbG9ycyxtPXQucmVuZGVyZXJzLGg9dC5zdHlsZXMsQz1oPT09dm9pZCAwP3t9OmgseD10LmNsYXNzTmFtZSxwPXg9PT12b2lkIDA/IiI6eCx5PSgwLHJvLlpQKShFZCgpKHtkZWZhdWx0Old2KHtwaWNrZXI6e3dpZHRoOm4scGFkZGluZzoiMTBweCAxMHB4IDAiLGJveFNpemluZzoiaW5pdGlhbCIsYmFja2dyb3VuZDoiI2ZmZiIsYm9yZGVyUmFkaXVzOiI0cHgiLGJveFNoYWRvdzoiMCAwIDAgMXB4IHJnYmEoMCwwLDAsLjE1KSwgMCA4cHggMTZweCByZ2JhKDAsMCwwLC4xNSkifSxzYXR1cmF0aW9uOnt3aWR0aDoiMTAwJSIscGFkZGluZ0JvdHRvbToiNzUlIixwb3NpdGlvbjoicmVsYXRpdmUiLG92ZXJmbG93OiJoaWRkZW4ifSxTYXR1cmF0aW9uOntyYWRpdXM6IjNweCIsc2hhZG93OiJpbnNldCAwIDAgMCAxcHggcmdiYSgwLDAsMCwuMTUpLCBpbnNldCAwIDAgNHB4IHJnYmEoMCwwLDAsLjI1KSJ9LGNvbnRyb2xzOntkaXNwbGF5OiJmbGV4In0sc2xpZGVyczp7cGFkZGluZzoiNHB4IDAiLGZsZXg6IjEifSxjb2xvcjp7d2lkdGg6IjI0cHgiLGhlaWdodDoiMjRweCIscG9zaXRpb246InJlbGF0aXZlIixtYXJnaW5Ub3A6IjRweCIsbWFyZ2luTGVmdDoiNHB4Iixib3JkZXJSYWRpdXM6IjNweCJ9LGFjdGl2ZUNvbG9yOnthYnNvbHV0ZToiMHB4IDBweCAwcHggMHB4Iixib3JkZXJSYWRpdXM6IjJweCIsYmFja2dyb3VuZDoicmdiYSgiLmNvbmNhdChyLnIsIiwiKS5jb25jYXQoci5nLCIsIikuY29uY2F0KHIuYiwiLCIpLmNvbmNhdChyLmEsIikiKSxib3hTaGFkb3c6Imluc2V0IDAgMCAwIDFweCByZ2JhKDAsMCwwLC4xNSksIGluc2V0IDAgMCA0cHggcmdiYSgwLDAsMCwuMjUpIn0saHVlOntwb3NpdGlvbjoicmVsYXRpdmUiLGhlaWdodDoiMTBweCIsb3ZlcmZsb3c6ImhpZGRlbiJ9LEh1ZTp7cmFkaXVzOiIycHgiLHNoYWRvdzoiaW5zZXQgMCAwIDAgMXB4IHJnYmEoMCwwLDAsLjE1KSwgaW5zZXQgMCAwIDRweCByZ2JhKDAsMCwwLC4yNSkifSxhbHBoYTp7cG9zaXRpb246InJlbGF0aXZlIixoZWlnaHQ6IjEwcHgiLG1hcmdpblRvcDoiNHB4IixvdmVyZmxvdzoiaGlkZGVuIn0sQWxwaGE6e3JhZGl1czoiMnB4IixzaGFkb3c6Imluc2V0IDAgMCAwIDFweCByZ2JhKDAsMCwwLC4xNSksIGluc2V0IDAgMCA0cHggcmdiYSgwLDAsMCwuMjUpIn19LEMpLGRpc2FibGVBbHBoYTp7Y29sb3I6e2hlaWdodDoiMTBweCJ9LGh1ZTp7aGVpZ2h0OiIxMHB4In0sYWxwaGE6e2Rpc3BsYXk6Im5vbmUifX19LEMpLHtkaXNhYmxlQWxwaGE6dn0pO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoImRpdiIse3N0eWxlOnkucGlja2VyLGNsYXNzTmFtZToic2tldGNoLXBpY2tlciAiLmNvbmNhdChwKX0sby5jcmVhdGVFbGVtZW50KCJkaXYiLHtzdHlsZTp5LnNhdHVyYXRpb259LG8uY3JlYXRlRWxlbWVudChwZix7c3R5bGU6eS5TYXR1cmF0aW9uLGhzbDp1LGhzdjpsLG9uQ2hhbmdlOmN9KSksby5jcmVhdGVFbGVtZW50KCJkaXYiLHtzdHlsZTp5LmNvbnRyb2xzLGNsYXNzTmFtZToiZmxleGJveC1maXgifSxvLmNyZWF0ZUVsZW1lbnQoImRpdiIse3N0eWxlOnkuc2xpZGVyc30sby5jcmVhdGVFbGVtZW50KCJkaXYiLHtzdHlsZTp5Lmh1ZX0sby5jcmVhdGVFbGVtZW50KG5mLHtzdHlsZTp5Lkh1ZSxoc2w6dSxvbkNoYW5nZTpjfSkpLG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7c3R5bGU6eS5hbHBoYX0sby5jcmVhdGVFbGVtZW50KHpkLHtzdHlsZTp5LkFscGhhLHJnYjpyLGhzbDp1LHJlbmRlcmVyczptLG9uQ2hhbmdlOmN9KSkpLG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7c3R5bGU6eS5jb2xvcn0sby5jcmVhdGVFbGVtZW50KHJsLG51bGwpLG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7c3R5bGU6eS5hY3RpdmVDb2xvcn0pKSksby5jcmVhdGVFbGVtZW50KEF2LHtyZ2I6cixoc2w6dSxoZXg6YSxvbkNoYW5nZTpjLGRpc2FibGVBbHBoYTp2fSksby5jcmVhdGVFbGVtZW50KEJ2LHtjb2xvcnM6ZixvbkNsaWNrOmMsb25Td2F0Y2hIb3ZlcjpkfSkpfTtqcy5kZWZhdWx0UHJvcHM9e2Rpc2FibGVBbHBoYTohMSx3aWR0aDoyMDAsc3R5bGVzOnt9LHByZXNldENvbG9yczpbIiNEMDAyMUIiLCIjRjVBNjIzIiwiI0Y4RTcxQyIsIiM4QjU3MkEiLCIjN0VEMzIxIiwiIzQxNzUwNSIsIiNCRDEwRTAiLCIjOTAxM0ZFIiwiIzRBOTBFMiIsIiM1MEUzQzIiLCIjQjhFOTg2IiwiIzAwMDAwMCIsIiM0QTRBNEEiLCIjOUI5QjlCIiwiI0ZGRkZGRiJdfTt2YXIgVXY9cnYoanMpLFh2PVsibW9kZSIsInBvcG92ZXJQcm9wcyJdLEd2PVsiI0ZGOUQ0RSIsIiM1QkQ4QTYiLCIjNUI4RkY5IiwiI0Y3NjY0RSIsIiNGRjg2QjciLCIjMkI5RTlEIiwiIzkyNzBDQSIsIiM2REM4RUMiLCIjNjY3Nzk2IiwiI0Y2QkQxNiJdLFF2PW8uZm9yd2FyZFJlZihmdW5jdGlvbihlLHQpe3ZhciBuPWUubW9kZSxyPWUucG9wb3ZlclByb3BzLGE9KDAsZy5aKShlLFh2KSxsPSgwLG8udXNlQ29udGV4dCkoYmUuWlAuQ29uZmlnQ29udGV4dCksdT1sLmdldFByZWZpeENscyxjPXUoInByby1maWVsZC1jb2xvci1waWNrZXIiKSxkPWZyLk93LnVzZVRva2VuKCksdj1kLnRva2VuLGY9KDAscnQuWikoIiMxODkwZmYiLHt2YWx1ZTphLnZhbHVlLG9uQ2hhbmdlOmEub25DaGFuZ2V9KSxtPSgwLGouWikoZiwyKSxoPW1bMF0sQz1tWzFdLHg9KDAsZnIuWGopKCJQcm9GaWxlZENvbG9yUGlja2VyIitoLGZ1bmN0aW9uKCl7cmV0dXJuKDAsRy5aKSh7fSwiLiIuY29uY2F0KGMpLHt3aWR0aDozMixoZWlnaHQ6MzIsZGlzcGxheToiZmxleCIsYWxpZ25JdGVtczoiY2VudGVyIixqdXN0aWZ5Q29udGVudDoiY2VudGVyIixib3hTaXppbmc6ImJvcmRlci1ib3giLGJvcmRlcjoiMXB4IHNvbGlkICIuY29uY2F0KHYuY29sb3JTcGxpdCksYm9yZGVyUmFkaXVzOnYuYm9yZGVyUmFkaXVzLCImOmhvdmVyIjp7Ym9yZGVyQ29sb3I6aH19KX0pLHA9eC53cmFwU1NSLHk9eC5oYXNoSWQsdz1wKCgwLEsuanN4KSgiZGl2Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdChjLCIgIikuY29uY2F0KHkpLnRyaW0oKSxzdHlsZTp7Y3Vyc29yOmEuZGlzYWJsZWQ/Im5vdC1hbGxvd2VkIjoicG9pbnRlciIsYmFja2dyb3VuZENvbG9yOmEuZGlzYWJsZWQ/di5jb2xvckJnQ29udGFpbmVyRGlzYWJsZWQ6di5jb2xvckJnQ29udGFpbmVyfSxjaGlsZHJlbjooMCxLLmpzeCkoImRpdiIse3N0eWxlOntiYWNrZ3JvdW5kQ29sb3I6aCx3aWR0aDoyNCxib3hTaXppbmc6ImJvcmRlci1ib3giLGhlaWdodDoyNCxib3JkZXJSYWRpdXM6di5ib3JkZXJSYWRpdXN9fSl9KSk7cmV0dXJuKDAsby51c2VJbXBlcmF0aXZlSGFuZGxlKSh0LGZ1bmN0aW9uKCl7fSksbj09PSJyZWFkInx8YS5kaXNhYmxlZD93OigwLEsuanN4KShPci5aLCgwLHMuWikoKDAscy5aKSh7dHJpZ2dlcjoiY2xpY2siLHBsYWNlbWVudDoicmlnaHQifSxyKSx7fSx7Y29udGVudDooMCxLLmpzeCkoImRpdiIse3N0eWxlOnttYXJnaW46Ii0xMnB4IC0xNnB4In0sY2hpbGRyZW46KDAsSy5qc3gpKFV2LCgwLHMuWikoKDAscy5aKSh7fSxhKSx7fSx7cHJlc2V0Q29sb3JzOmEuY29sb3JzfHxhLnByZXNldENvbG9yc3x8R3YsY29sb3I6aCxvbkNoYW5nZTpmdW5jdGlvbihFKXt2YXIgTT1FLmhleCxEPUUucmdiLE49RC5yLFQ9RC5nLFc9RC5iLEI9RC5hO2lmKEImJkI8MSl7QygicmdiYSgiLmNvbmNhdChOLCIsICIpLmNvbmNhdChULCIsICIpLmNvbmNhdChXLCIsICIpLmNvbmNhdChCLCIpIikpO3JldHVybn1DKE0pfX0pKX0pLGNoaWxkcmVuOnd9KSl9KSxKdj17bGFiZWw6IlJlY29tbWVuZGVkIixjb2xvcnM6WyIjRjUyMjJEIiwiI0ZBOEMxNiIsIiNGQURCMTQiLCIjOEJCQjExIiwiIzUyQzQxQSIsIiMxM0E4QTgiLCIjMTY3N0ZGIiwiIzJGNTRFQiIsIiM3MjJFRDEiLCIjRUIyRjk2IiwiI0Y1MjIyRDREIiwiI0ZBOEMxNjREIiwiI0ZBREIxNDREIiwiIzhCQkIxMTREIiwiIzUyQzQxQTREIiwiIzEzQThBODREIiwiIzE2NzdGRjREIiwiIzJGNTRFQjREIiwiIzcyMkVEMTREIiwiI0VCMkY5NjREIl19O2Z1bmN0aW9uIEFzKCl7cmV0dXJuKDAsRmEubikod2EuWiwiNS41LjAiKT4tMX1mdW5jdGlvbiBxdigpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dm9pZCAwP2FyZ3VtZW50c1swXTohMTtyZXR1cm4odHlwZW9mIGU9PSJ1bmRlZmluZWQifHxlPT09ITEpJiZBcygpP3dkOlF2fXZhciBfdj1mdW5jdGlvbih0LG4pe3ZhciByPXQudGV4dCxhPXQubW9kZSxsPXQucmVuZGVyLHU9dC5yZW5kZXJGb3JtSXRlbSxjPXQuZmllbGRQcm9wcyxkPXQub2xkLHY9KDAsby51c2VDb250ZXh0KShiZS5aUC5Db25maWdDb250ZXh0KSxmPXYuZ2V0UHJlZml4Q2xzLG09by51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJuIHF2KGQpfSxbZF0pLGg9ZigicHJvLWZpZWxkLWNvbG9yLXBpY2tlciIpLEM9KDAsby51c2VNZW1vKShmdW5jdGlvbigpe3JldHVybiBkPyIiOm9lKCkoKDAsRy5aKSh7fSxoLEFzKCkpKX0sW2gsZF0pO2lmKGE9PT0icmVhZCIpe3ZhciB4PSgwLEsuanN4KShtLHt2YWx1ZTpyLG1vZGU6InJlYWQiLHJlZjpuLGNsYXNzTmFtZTpDLG9wZW46ITF9KTtyZXR1cm4gbD9sKHIsKDAscy5aKSh7bW9kZTphfSxjKSx4KTp4fWlmKGE9PT0iZWRpdCJ8fGE9PT0idXBkYXRlIil7dmFyIHA9KDAscy5aKSh7ZGlzcGxheToidGFibGUtY2VsbCJ9LGMuc3R5bGUpLHk9KDAsSy5qc3gpKG0sKDAscy5aKSgoMCxzLlopKHtyZWY6bixwcmVzZXRzOltKdl19LGMpLHt9LHtzdHlsZTpwLGNsYXNzTmFtZTpDfSkpO3JldHVybiB1P3UociwoMCxzLlopKCgwLHMuWikoe21vZGU6YX0sYykse30se3N0eWxlOnB9KSx5KTp5fXJldHVybiBudWxsfSxlbT1vLmZvcndhcmRSZWYoX3YpLHRtPWkoMjc0ODQpLHRuPWkubih0bSksbm09aSgxMDI4NSksSHM9aS5uKG5tKSxtbD1pKDc0NzYzKTt0bigpLmV4dGVuZChIcygpKTt2YXIga3M9ZnVuY3Rpb24odCl7cmV0dXJuISEodCE9bnVsbCYmdC5faXNBTW9tZW50T2JqZWN0KX0sbGk9ZnVuY3Rpb24gZSh0LG4pe3JldHVybigwLG1sLmspKHQpfHx0bigpLmlzRGF5anModCl8fGtzKHQpP2tzKHQpP3RuKCkodCk6dDpBcnJheS5pc0FycmF5KHQpP3QubWFwKGZ1bmN0aW9uKHIpe3JldHVybiBlKHIsbil9KTp0eXBlb2YgdD09Im51bWJlciI/dG4oKSh0KTp0bigpKHQsbil9LHJtPWkoNjgzMyksTHM9aS5uKHJtKSxhbT1pKDk2MDM2KSxWcz1pLm4oYW0pLG9tPWkoNTUxODMpLGdsPWkubihvbSksaW09aSgxNzIpLGxtPWkubihpbSksc209aSgyODczNCksQnM9aS5uKHNtKTt0bigpLmV4dGVuZChIcygpKSx0bigpLmV4dGVuZChCcygpKSx0bigpLmV4dGVuZChMcygpKSx0bigpLmV4dGVuZChWcygpKSx0bigpLmV4dGVuZChnbCgpKSx0bigpLmV4dGVuZChsbSgpKSx0bigpLmV4dGVuZChmdW5jdGlvbihlLHQpe3ZhciBuPXQucHJvdG90eXBlLHI9bi5mb3JtYXQ7bi5mb3JtYXQ9ZnVuY3Rpb24obCl7dmFyIHU9KGx8fCIiKS5yZXBsYWNlKCJXbyIsIndvIik7cmV0dXJuIHIuYmluZCh0aGlzKSh1KX19KTt2YXIgdW09e2JuX0JEOiJibi1iZCIsYnlfQlk6ImJlIixlbl9HQjoiZW4tZ2IiLGVuX1VTOiJlbiIsZnJfQkU6ImZyIixmcl9DQToiZnItY2EiLGh5X0FNOiJoeS1hbSIsa21yX0lROiJrdSIsbmxfQkU6Im5sLWJlIixwdF9CUjoicHQtYnIiLHpoX0NOOiJ6aC1jbiIsemhfSEs6InpoLWhrIix6aF9UVzoiemgtdHcifSxTbz1mdW5jdGlvbih0KXt2YXIgbj11bVt0XTtyZXR1cm4gbnx8dC5zcGxpdCgiXyIpWzBdfSxXcz1mdW5jdGlvbigpe30sY209e2dldE5vdzpmdW5jdGlvbigpe3ZhciB0PXRuKCkoKTtyZXR1cm4gdHlwZW9mIHQudHo9PSJmdW5jdGlvbiI/dC50eigpOnR9LGdldEZpeGVkRGF0ZTpmdW5jdGlvbih0KXtyZXR1cm4gdG4oKSh0LFsiWVlZWS1NLUREIiwiWVlZWS1NTS1ERCJdKX0sZ2V0RW5kRGF0ZTpmdW5jdGlvbih0KXtyZXR1cm4gdC5lbmRPZigibW9udGgiKX0sZ2V0V2Vla0RheTpmdW5jdGlvbih0KXt2YXIgbj10LmxvY2FsZSgiZW4iKTtyZXR1cm4gbi53ZWVrZGF5KCkrbi5sb2NhbGVEYXRhKCkuZmlyc3REYXlPZldlZWsoKX0sZ2V0WWVhcjpmdW5jdGlvbih0KXtyZXR1cm4gdC55ZWFyKCl9LGdldE1vbnRoOmZ1bmN0aW9uKHQpe3JldHVybiB0Lm1vbnRoKCl9LGdldERhdGU6ZnVuY3Rpb24odCl7cmV0dXJuIHQuZGF0ZSgpfSxnZXRIb3VyOmZ1bmN0aW9uKHQpe3JldHVybiB0LmhvdXIoKX0sZ2V0TWludXRlOmZ1bmN0aW9uKHQpe3JldHVybiB0Lm1pbnV0ZSgpfSxnZXRTZWNvbmQ6ZnVuY3Rpb24odCl7cmV0dXJuIHQuc2Vjb25kKCl9LGdldE1pbGxpc2Vjb25kOmZ1bmN0aW9uKHQpe3JldHVybiB0Lm1pbGxpc2Vjb25kKCl9LGFkZFllYXI6ZnVuY3Rpb24odCxuKXtyZXR1cm4gdC5hZGQobiwieWVhciIpfSxhZGRNb250aDpmdW5jdGlvbih0LG4pe3JldHVybiB0LmFkZChuLCJtb250aCIpfSxhZGREYXRlOmZ1bmN0aW9uKHQsbil7cmV0dXJuIHQuYWRkKG4sImRheSIpfSxzZXRZZWFyOmZ1bmN0aW9uKHQsbil7cmV0dXJuIHQueWVhcihuKX0sc2V0TW9udGg6ZnVuY3Rpb24odCxuKXtyZXR1cm4gdC5tb250aChuKX0sc2V0RGF0ZTpmdW5jdGlvbih0LG4pe3JldHVybiB0LmRhdGUobil9LHNldEhvdXI6ZnVuY3Rpb24odCxuKXtyZXR1cm4gdC5ob3VyKG4pfSxzZXRNaW51dGU6ZnVuY3Rpb24odCxuKXtyZXR1cm4gdC5taW51dGUobil9LHNldFNlY29uZDpmdW5jdGlvbih0LG4pe3JldHVybiB0LnNlY29uZChuKX0sc2V0TWlsbGlzZWNvbmQ6ZnVuY3Rpb24odCxuKXtyZXR1cm4gdC5taWxsaXNlY29uZChuKX0saXNBZnRlcjpmdW5jdGlvbih0LG4pe3JldHVybiB0LmlzQWZ0ZXIobil9LGlzVmFsaWRhdGU6ZnVuY3Rpb24odCl7cmV0dXJuIHQuaXNWYWxpZCgpfSxsb2NhbGU6e2dldFdlZWtGaXJzdERheTpmdW5jdGlvbih0KXtyZXR1cm4gdG4oKSgpLmxvY2FsZShTbyh0KSkubG9jYWxlRGF0YSgpLmZpcnN0RGF5T2ZXZWVrKCl9LGdldFdlZWtGaXJzdERhdGU6ZnVuY3Rpb24odCxuKXtyZXR1cm4gbi5sb2NhbGUoU28odCkpLndlZWtkYXkoMCl9LGdldFdlZWs6ZnVuY3Rpb24odCxuKXtyZXR1cm4gbi5sb2NhbGUoU28odCkpLndlZWsoKX0sZ2V0U2hvcnRXZWVrRGF5czpmdW5jdGlvbih0KXtyZXR1cm4gdG4oKSgpLmxvY2FsZShTbyh0KSkubG9jYWxlRGF0YSgpLndlZWtkYXlzTWluKCl9LGdldFNob3J0TW9udGhzOmZ1bmN0aW9uKHQpe3JldHVybiB0bigpKCkubG9jYWxlKFNvKHQpKS5sb2NhbGVEYXRhKCkubW9udGhzU2hvcnQoKX0sZm9ybWF0OmZ1bmN0aW9uKHQsbixyKXtyZXR1cm4gbi5sb2NhbGUoU28odCkpLmZvcm1hdChyKX0scGFyc2U6ZnVuY3Rpb24odCxuLHIpe2Zvcih2YXIgYT1Tbyh0KSxsPTA7bDxyLmxlbmd0aDtsKz0xKXt2YXIgdT1yW2xdLGM9bjtpZih1LmluY2x1ZGVzKCJ3byIpfHx1LmluY2x1ZGVzKCJXbyIpKXtmb3IodmFyIGQ9Yy5zcGxpdCgiLSIpWzBdLHY9Yy5zcGxpdCgiLSIpWzFdLGY9dG4oKShkLCJZWVlZIikuc3RhcnRPZigieWVhciIpLmxvY2FsZShhKSxtPTA7bTw9NTI7bSs9MSl7dmFyIGg9Zi5hZGQobSwid2VlayIpO2lmKGguZm9ybWF0KCJXbyIpPT09dilyZXR1cm4gaH1yZXR1cm4gV3MoKSxudWxsfXZhciBDPXRuKCkoYyx1LCEwKS5sb2NhbGUoYSk7aWYoQy5pc1ZhbGlkKCkpcmV0dXJuIEN9cmV0dXJuIG4mJldzKCksbnVsbH19fSxkbT1jbSx6cz1pKDIwODQxKSxLcz1pKDI0MDE5KSxmbT1pKDMyMTk4KSx2bT1pKDQwMjI4KTtmdW5jdGlvbiBtbShlLHQpe3JldHVybiBlIT09dm9pZCAwP2U6dD8iYm90dG9tUmlnaHQiOiJib3R0b21MZWZ0In12YXIgZ209by5jcmVhdGVDb250ZXh0KG51bGwpLENhPWdtLGhtPXtib3R0b21MZWZ0Ontwb2ludHM6WyJ0bCIsImJsIl0sb2Zmc2V0OlswLDRdLG92ZXJmbG93OnthZGp1c3RYOjEsYWRqdXN0WToxfX0sYm90dG9tUmlnaHQ6e3BvaW50czpbInRyIiwiYnIiXSxvZmZzZXQ6WzAsNF0sb3ZlcmZsb3c6e2FkanVzdFg6MSxhZGp1c3RZOjF9fSx0b3BMZWZ0Ontwb2ludHM6WyJibCIsInRsIl0sb2Zmc2V0OlswLC00XSxvdmVyZmxvdzp7YWRqdXN0WDowLGFkanVzdFk6MX19LHRvcFJpZ2h0Ontwb2ludHM6WyJiciIsInRyIl0sb2Zmc2V0OlswLC00XSxvdmVyZmxvdzp7YWRqdXN0WDowLGFkanVzdFk6MX19fTtmdW5jdGlvbiBwbShlKXt2YXIgdD1lLnBvcHVwRWxlbWVudCxuPWUucG9wdXBTdHlsZSxyPWUucG9wdXBDbGFzc05hbWUsYT1lLnBvcHVwQWxpZ24sbD1lLnRyYW5zaXRpb25OYW1lLHU9ZS5nZXRQb3B1cENvbnRhaW5lcixjPWUuY2hpbGRyZW4sZD1lLnJhbmdlLHY9ZS5wbGFjZW1lbnQsZj1lLmJ1aWx0aW5QbGFjZW1lbnRzLG09Zj09PXZvaWQgMD9obTpmLGg9ZS5kaXJlY3Rpb24sQz1lLnZpc2libGUseD1lLm9uQ2xvc2UscD1vLnVzZUNvbnRleHQoQ2EpLHk9cC5wcmVmaXhDbHMsdz0iIi5jb25jYXQoeSwiLWRyb3Bkb3duIiksUD1tbSh2LGg9PT0icnRsIik7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCh2bS5aLHtzaG93QWN0aW9uOltdLGhpZGVBY3Rpb246WyJjbGljayJdLHBvcHVwUGxhY2VtZW50OlAsYnVpbHRpblBsYWNlbWVudHM6bSxwcmVmaXhDbHM6dyxwb3B1cFRyYW5zaXRpb25OYW1lOmwscG9wdXA6dCxwb3B1cEFsaWduOmEscG9wdXBWaXNpYmxlOkMscG9wdXBDbGFzc05hbWU6b2UoKShyLCgwLEcuWikoKDAsRy5aKSh7fSwiIi5jb25jYXQodywiLXJhbmdlIiksZCksIiIuY29uY2F0KHcsIi1ydGwiKSxoPT09InJ0bCIpKSxwb3B1cFN0eWxlOm4sc3RyZXRjaDoibWluV2lkdGgiLGdldFBvcHVwQ29udGFpbmVyOnUsb25Qb3B1cFZpc2libGVDaGFuZ2U6ZnVuY3Rpb24oTSl7TXx8eCgpfX0sYyl9dmFyIFlzPXBtO2Z1bmN0aW9uIGhsKGUsdCl7Zm9yKHZhciBuPWFyZ3VtZW50cy5sZW5ndGg+MiYmYXJndW1lbnRzWzJdIT09dm9pZCAwP2FyZ3VtZW50c1syXToiMCIscj1TdHJpbmcoZSk7ci5sZW5ndGg8dDspcj0iIi5jb25jYXQobikuY29uY2F0KHIpO3JldHVybiByfWZ1bmN0aW9uIFBvKGUpe3JldHVybiBlPT1udWxsP1tdOkFycmF5LmlzQXJyYXkoZSk/ZTpbZV19ZnVuY3Rpb24gc2koZSx0LG4pe3ZhciByPSgwLGxlLlopKGUpO3JldHVybiByW3RdPW4scn1mdW5jdGlvbiBOaShlLHQpe3ZhciBuPXt9LHI9dHx8T2JqZWN0LmtleXMoZSk7cmV0dXJuIHIuZm9yRWFjaChmdW5jdGlvbihhKXtlW2FdIT09dm9pZCAwJiYoblthXT1lW2FdKX0pLG59ZnVuY3Rpb24gVXMoZSx0LG4pe2lmKG4pcmV0dXJuIG47c3dpdGNoKGUpe2Nhc2UidGltZSI6cmV0dXJuIHQuZmllbGRUaW1lRm9ybWF0O2Nhc2UiZGF0ZXRpbWUiOnJldHVybiB0LmZpZWxkRGF0ZVRpbWVGb3JtYXQ7Y2FzZSJtb250aCI6cmV0dXJuIHQuZmllbGRNb250aEZvcm1hdDtjYXNlInllYXIiOnJldHVybiB0LmZpZWxkWWVhckZvcm1hdDtjYXNlInF1YXJ0ZXIiOnJldHVybiB0LmZpZWxkUXVhcnRlckZvcm1hdDtjYXNlIndlZWsiOnJldHVybiB0LmZpZWxkV2Vla0Zvcm1hdDtkZWZhdWx0OnJldHVybiB0LmZpZWxkRGF0ZUZvcm1hdH19ZnVuY3Rpb24gWHMoZSx0LG4pe3ZhciByPW4hPT12b2lkIDA/bjp0W3QubGVuZ3RoLTFdLGE9dC5maW5kKGZ1bmN0aW9uKGwpe3JldHVybiBlW2xdfSk7cmV0dXJuIHIhPT1hP2VbYV06dm9pZCAwfWZ1bmN0aW9uIEdzKGUpe3JldHVybiBOaShlLFsicGxhY2VtZW50IiwiYnVpbHRpblBsYWNlbWVudHMiLCJwb3B1cEFsaWduIiwiZ2V0UG9wdXBDb250YWluZXIiLCJ0cmFuc2l0aW9uTmFtZSIsImRpcmVjdGlvbiJdKX1mdW5jdGlvbiBwbChlLHQsbixyKXt2YXIgYT1vLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4gZXx8ZnVuY3Rpb24odSxjKXt2YXIgZD11O3JldHVybiB0JiZjLnR5cGU9PT0iZGF0ZSI/dChkLGMudG9kYXkpOm4mJmMudHlwZT09PSJtb250aCI/bihkLGMubG9jYWxlKTpjLm9yaWdpbk5vZGV9fSxbZSxuLHRdKSxsPW8udXNlQ2FsbGJhY2soZnVuY3Rpb24odSxjKXtyZXR1cm4gYSh1LCgwLHMuWikoKDAscy5aKSh7fSxjKSx7fSx7cmFuZ2U6cn0pKX0sW2Escl0pO3JldHVybiBsfWZ1bmN0aW9uIFFzKGUsdCl7dmFyIG49YXJndW1lbnRzLmxlbmd0aD4yJiZhcmd1bWVudHNbMl0hPT12b2lkIDA/YXJndW1lbnRzWzJdOltdLHI9by51c2VTdGF0ZShbITEsITFdKSxhPSgwLGouWikociwyKSxsPWFbMF0sdT1hWzFdLGM9ZnVuY3Rpb24oZixtKXt1KGZ1bmN0aW9uKGgpe3JldHVybiBzaShoLG0sZil9KX0sZD1vLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4gbC5tYXAoZnVuY3Rpb24odixmKXtpZih2KXJldHVybiEwO3ZhciBtPWVbZl07cmV0dXJuIG0/ISEoIW5bZl0mJiFtfHxtJiZ0KG0se2FjdGl2ZUluZGV4OmZ9KSk6ITF9KX0sW2UsbCx0LG5dKTtyZXR1cm5bZCxjXX1mdW5jdGlvbiBKcyhlLHQsbixyLGEpe3ZhciBsPSIiLHU9W107cmV0dXJuIGUmJnUucHVzaChhPyJoaCI6IkhIIiksdCYmdS5wdXNoKCJtbSIpLG4mJnUucHVzaCgic3MiKSxsPXUuam9pbigiOiIpLHImJihsKz0iLlNTUyIpLGEmJihsKz0iIEEiKSxsfWZ1bmN0aW9uIGJtKGUsdCxuLHIsYSxsKXt2YXIgdT1lLmZpZWxkRGF0ZVRpbWVGb3JtYXQsYz1lLmZpZWxkRGF0ZUZvcm1hdCxkPWUuZmllbGRUaW1lRm9ybWF0LHY9ZS5maWVsZE1vbnRoRm9ybWF0LGY9ZS5maWVsZFllYXJGb3JtYXQsbT1lLmZpZWxkV2Vla0Zvcm1hdCxoPWUuZmllbGRRdWFydGVyRm9ybWF0LEM9ZS55ZWFyRm9ybWF0LHg9ZS5jZWxsWWVhckZvcm1hdCxwPWUuY2VsbFF1YXJ0ZXJGb3JtYXQseT1lLmRheUZvcm1hdCx3PWUuY2VsbERhdGVGb3JtYXQsUD1Kcyh0LG4scixhLGwpO3JldHVybigwLHMuWikoKDAscy5aKSh7fSxlKSx7fSx7ZmllbGREYXRlVGltZUZvcm1hdDp1fHwiWVlZWS1NTS1ERCAiLmNvbmNhdChQKSxmaWVsZERhdGVGb3JtYXQ6Y3x8IllZWVktTU0tREQiLGZpZWxkVGltZUZvcm1hdDpkfHxQLGZpZWxkTW9udGhGb3JtYXQ6dnx8IllZWVktTU0iLGZpZWxkWWVhckZvcm1hdDpmfHwiWVlZWSIsZmllbGRXZWVrRm9ybWF0Om18fCJnZ2dnLXdvIixmaWVsZFF1YXJ0ZXJGb3JtYXQ6aHx8IllZWVktW1FdUSIseWVhckZvcm1hdDpDfHwiWVlZWSIsY2VsbFllYXJGb3JtYXQ6eHx8IllZWVkiLGNlbGxRdWFydGVyRm9ybWF0OnB8fCJbUV1RIixjZWxsRGF0ZUZvcm1hdDp3fHx5fHwiRCJ9KX1mdW5jdGlvbiBxcyhlLHQpe3ZhciBuPXQuc2hvd0hvdXIscj10LnNob3dNaW51dGUsYT10LnNob3dTZWNvbmQsbD10LnNob3dNaWxsaXNlY29uZCx1PXQudXNlMTJIb3VycztyZXR1cm4gby51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJuIGJtKGUsbixyLGEsbCx1KX0sW2UsbixyLGEsbCx1XSl9ZnVuY3Rpb24gdWkoZSx0LG4pe3JldHVybiBuIT1udWxsP246dC5zb21lKGZ1bmN0aW9uKHIpe3JldHVybiBlLmluY2x1ZGVzKHIpfSl9dmFyIHltPVsic2hvd05vdyIsInNob3dIb3VyIiwic2hvd01pbnV0ZSIsInNob3dTZWNvbmQiLCJzaG93TWlsbGlzZWNvbmQiLCJ1c2UxMkhvdXJzIiwiaG91clN0ZXAiLCJtaW51dGVTdGVwIiwic2Vjb25kU3RlcCIsIm1pbGxpc2Vjb25kU3RlcCIsImhpZGVEaXNhYmxlZE9wdGlvbnMiLCJkZWZhdWx0VmFsdWUiLCJkaXNhYmxlZEhvdXJzIiwiZGlzYWJsZWRNaW51dGVzIiwiZGlzYWJsZWRTZWNvbmRzIiwiZGlzYWJsZWRNaWxsaXNlY29uZHMiLCJkaXNhYmxlZFRpbWUiLCJjaGFuZ2VPblNjcm9sbCIsImRlZmF1bHRPcGVuVmFsdWUiXTtmdW5jdGlvbiBDbShlKXt2YXIgdD1OaShlLHltKSxuPWUuZm9ybWF0LHI9ZS5waWNrZXIsYT1udWxsO3JldHVybiBuJiYoYT1uLEFycmF5LmlzQXJyYXkoYSkmJihhPWFbMF0pLGE9KDAsYi5aKShhKT09PSJvYmplY3QiP2EuZm9ybWF0OmEpLHI9PT0idGltZSImJih0LmZvcm1hdD1hKSxbdCxhXX1mdW5jdGlvbiB4bShlKXtyZXR1cm4gZSYmdHlwZW9mIGU9PSJzdHJpbmcifWZ1bmN0aW9uIF9zKGUsdCxuLHIpe3JldHVybltlLHQsbixyXS5zb21lKGZ1bmN0aW9uKGEpe3JldHVybiBhIT09dm9pZCAwfSl9ZnVuY3Rpb24gZXUoZSx0LG4scixhKXt2YXIgbD10LHU9bixjPXI7aWYoIWUmJiFsJiYhdSYmIWMmJiFhKWw9ITAsdT0hMCxjPSEwO2Vsc2UgaWYoZSl7dmFyIGQsdixmLG09W2wsdSxjXS5zb21lKGZ1bmN0aW9uKHgpe3JldHVybiB4PT09ITF9KSxoPVtsLHUsY10uc29tZShmdW5jdGlvbih4KXtyZXR1cm4geD09PSEwfSksQz1tPyEwOiFoO2w9KGQ9bCkhPT1udWxsJiZkIT09dm9pZCAwP2Q6Qyx1PSh2PXUpIT09bnVsbCYmdiE9PXZvaWQgMD92OkMsYz0oZj1jKSE9PW51bGwmJmYhPT12b2lkIDA/ZjpDfXJldHVybltsLHUsYyxhXX1mdW5jdGlvbiB0dShlKXt2YXIgdD1lLnNob3dUaW1lLG49Q20oZSkscj0oMCxqLlopKG4sMiksYT1yWzBdLGw9clsxXSx1PXQmJigwLGIuWikodCk9PT0ib2JqZWN0Ij90Ont9LGM9KDAscy5aKSgoMCxzLlopKHtkZWZhdWx0T3BlblZhbHVlOnUuZGVmYXVsdE9wZW5WYWx1ZXx8dS5kZWZhdWx0VmFsdWV9LGEpLHUpLGQ9Yy5zaG93TWlsbGlzZWNvbmQsdj1jLnNob3dIb3VyLGY9Yy5zaG93TWludXRlLG09Yy5zaG93U2Vjb25kLGg9X3ModixmLG0sZCksQz1ldShoLHYsZixtLGQpLHg9KDAsai5aKShDLDMpO3JldHVybiB2PXhbMF0sZj14WzFdLG09eFsyXSxbYywoMCxzLlopKCgwLHMuWikoe30sYykse30se3Nob3dIb3VyOnYsc2hvd01pbnV0ZTpmLHNob3dTZWNvbmQ6bSxzaG93TWlsbGlzZWNvbmQ6ZH0pLGMuZm9ybWF0LGxdfWZ1bmN0aW9uIG51KGUsdCxuLHIsYSl7dmFyIGw9ZT09PSJ0aW1lIjtpZihlPT09ImRhdGV0aW1lInx8bCl7Zm9yKHZhciB1PXIsYz1VcyhlLGEsbnVsbCksZD1jLHY9W3Qsbl0sZj0wO2Y8di5sZW5ndGg7Zis9MSl7dmFyIG09UG8odltmXSlbMF07aWYoeG0obSkpe2Q9bTticmVha319dmFyIGg9dS5zaG93SG91cixDPXUuc2hvd01pbnV0ZSx4PXUuc2hvd1NlY29uZCxwPXUuc2hvd01pbGxpc2Vjb25kLHk9dS51c2UxMkhvdXJzLHc9dWkoZCxbImEiLCJBIiwiTFQiLCJMTEwiLCJMVFMiXSx5KSxQPV9zKGgsQyx4LHApO1B8fChoPXVpKGQsWyJIIiwiaCIsImsiLCJMVCIsIkxMTCJdKSxDPXVpKGQsWyJtIiwiTFQiLCJMTEwiXSkseD11aShkLFsicyIsIkxUUyJdKSxwPXVpKGQsWyJTU1MiXSkpO3ZhciBFPWV1KFAsaCxDLHgscCksTT0oMCxqLlopKEUsMyk7aD1NWzBdLEM9TVsxXSx4PU1bMl07dmFyIEQ9dHx8SnMoaCxDLHgscCx3KTtyZXR1cm4oMCxzLlopKCgwLHMuWikoe30sdSkse30se2Zvcm1hdDpELHNob3dIb3VyOmgsc2hvd01pbnV0ZTpDLHNob3dTZWNvbmQ6eCxzaG93TWlsbGlzZWNvbmQ6cCx1c2UxMkhvdXJzOnd9KX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBTbShlLHQsbil7aWYodD09PSExKXJldHVybiBudWxsO3ZhciByPXQmJigwLGIuWikodCk9PT0ib2JqZWN0Ij90Ont9O3JldHVybiByLmNsZWFySWNvbnx8bnx8by5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiIiLmNvbmNhdChlLCItY2xlYXItYnRuIil9KX12YXIgYmw9NztmdW5jdGlvbiBhbyhlLHQsbil7cmV0dXJuIWUmJiF0fHxlPT09dD8hMDohZXx8IXQ/ITE6bigpfWZ1bmN0aW9uIHlsKGUsdCxuKXtyZXR1cm4gYW8odCxuLGZ1bmN0aW9uKCl7dmFyIHI9TWF0aC5mbG9vcihlLmdldFllYXIodCkvMTApLGE9TWF0aC5mbG9vcihlLmdldFllYXIobikvMTApO3JldHVybiByPT09YX0pfWZ1bmN0aW9uIHdvKGUsdCxuKXtyZXR1cm4gYW8odCxuLGZ1bmN0aW9uKCl7cmV0dXJuIGUuZ2V0WWVhcih0KT09PWUuZ2V0WWVhcihuKX0pfWZ1bmN0aW9uIHJ1KGUsdCl7dmFyIG49TWF0aC5mbG9vcihlLmdldE1vbnRoKHQpLzMpO3JldHVybiBuKzF9ZnVuY3Rpb24gUG0oZSx0LG4pe3JldHVybiBhbyh0LG4sZnVuY3Rpb24oKXtyZXR1cm4gd28oZSx0LG4pJiZydShlLHQpPT09cnUoZSxuKX0pfWZ1bmN0aW9uIENsKGUsdCxuKXtyZXR1cm4gYW8odCxuLGZ1bmN0aW9uKCl7cmV0dXJuIHdvKGUsdCxuKSYmZS5nZXRNb250aCh0KT09PWUuZ2V0TW9udGgobil9KX1mdW5jdGlvbiB4bChlLHQsbil7cmV0dXJuIGFvKHQsbixmdW5jdGlvbigpe3JldHVybiB3byhlLHQsbikmJkNsKGUsdCxuKSYmZS5nZXREYXRlKHQpPT09ZS5nZXREYXRlKG4pfSl9ZnVuY3Rpb24gYXUoZSx0LG4pe3JldHVybiBhbyh0LG4sZnVuY3Rpb24oKXtyZXR1cm4gZS5nZXRIb3VyKHQpPT09ZS5nZXRIb3VyKG4pJiZlLmdldE1pbnV0ZSh0KT09PWUuZ2V0TWludXRlKG4pJiZlLmdldFNlY29uZCh0KT09PWUuZ2V0U2Vjb25kKG4pfSl9ZnVuY3Rpb24gb3UoZSx0LG4pe3JldHVybiBhbyh0LG4sZnVuY3Rpb24oKXtyZXR1cm4geGwoZSx0LG4pJiZhdShlLHQsbikmJmUuZ2V0TWlsbGlzZWNvbmQodCk9PT1lLmdldE1pbGxpc2Vjb25kKG4pfSl9ZnVuY3Rpb24gY2koZSx0LG4scil7cmV0dXJuIGFvKG4scixmdW5jdGlvbigpe3ZhciBhPWUubG9jYWxlLmdldFdlZWtGaXJzdERhdGUodCxuKSxsPWUubG9jYWxlLmdldFdlZWtGaXJzdERhdGUodCxyKTtyZXR1cm4gd28oZSxhLGwpJiZlLmxvY2FsZS5nZXRXZWVrKHQsbik9PT1lLmxvY2FsZS5nZXRXZWVrKHQscil9KX1mdW5jdGlvbiBrcihlLHQsbixyLGEpe3N3aXRjaChhKXtjYXNlImRhdGUiOnJldHVybiB4bChlLG4scik7Y2FzZSJ3ZWVrIjpyZXR1cm4gY2koZSx0LmxvY2FsZSxuLHIpO2Nhc2UibW9udGgiOnJldHVybiBDbChlLG4scik7Y2FzZSJxdWFydGVyIjpyZXR1cm4gUG0oZSxuLHIpO2Nhc2UieWVhciI6cmV0dXJuIHdvKGUsbixyKTtjYXNlImRlY2FkZSI6cmV0dXJuIHlsKGUsbixyKTtjYXNlInRpbWUiOnJldHVybiBhdShlLG4scik7ZGVmYXVsdDpyZXR1cm4gb3UoZSxuLHIpfX1mdW5jdGlvbiBGaShlLHQsbixyKXtyZXR1cm4hdHx8IW58fCFyPyExOmUuaXNBZnRlcihyLHQpJiZlLmlzQWZ0ZXIobixyKX1mdW5jdGlvbiBUaShlLHQsbixyLGEpe3JldHVybiBrcihlLHQsbixyLGEpPyEwOmUuaXNBZnRlcihuLHIpfWZ1bmN0aW9uIHdtKGUsdCxuKXt2YXIgcj10LmxvY2FsZS5nZXRXZWVrRmlyc3REYXkoZSksYT10LnNldERhdGUobiwxKSxsPXQuZ2V0V2Vla0RheShhKSx1PXQuYWRkRGF0ZShhLHItbCk7cmV0dXJuIHQuZ2V0TW9udGgodSk9PT10LmdldE1vbnRoKG4pJiZ0LmdldERhdGUodSk+MSYmKHU9dC5hZGREYXRlKHUsLTcpKSx1fWZ1bmN0aW9uIHhyKGUsdCl7dmFyIG49dC5nZW5lcmF0ZUNvbmZpZyxyPXQubG9jYWxlLGE9dC5mb3JtYXQ7cmV0dXJuIGU/dHlwZW9mIGE9PSJmdW5jdGlvbiI/YShlKTpuLmxvY2FsZS5mb3JtYXQoci5sb2NhbGUsZSxhKToiIn1mdW5jdGlvbiBqaShlLHQsbil7dmFyIHI9dCxhPVsiZ2V0SG91ciIsImdldE1pbnV0ZSIsImdldFNlY29uZCIsImdldE1pbGxpc2Vjb25kIl0sbD1bInNldEhvdXIiLCJzZXRNaW51dGUiLCJzZXRTZWNvbmQiLCJzZXRNaWxsaXNlY29uZCJdO3JldHVybiBsLmZvckVhY2goZnVuY3Rpb24odSxjKXtuP3I9ZVt1XShyLGVbYVtjXV0obikpOnI9ZVt1XShyLDApfSkscn1mdW5jdGlvbiBPbShlLHQsbixyLGEpe3ZhciBsPSgwLGx0LnpYKShmdW5jdGlvbih1LGMpe3JldHVybiEhKG4mJm4odSxjKXx8ciYmZS5pc0FmdGVyKHIsdSkmJiFrcihlLHQscix1LGMudHlwZSl8fGEmJmUuaXNBZnRlcih1LGEpJiYha3IoZSx0LGEsdSxjLnR5cGUpKX0pO3JldHVybiBsfWZ1bmN0aW9uIEVtKGUsdCxuKXtyZXR1cm4gby51c2VNZW1vKGZ1bmN0aW9uKCl7dmFyIHI9VXMoZSx0LG4pLGE9UG8ociksbD1hWzBdLHU9KDAsYi5aKShsKT09PSJvYmplY3QiJiZsLnR5cGU9PT0ibWFzayI/bC5mb3JtYXQ6bnVsbDtyZXR1cm5bYS5tYXAoZnVuY3Rpb24oYyl7cmV0dXJuIHR5cGVvZiBjPT0ic3RyaW5nInx8dHlwZW9mIGM9PSJmdW5jdGlvbiI/YzpjLmZvcm1hdH0pLHVdfSxbZSx0LG5dKX1mdW5jdGlvbiBJbShlLHQsbil7cmV0dXJuIHR5cGVvZiBlWzBdPT0iZnVuY3Rpb24ifHxuPyEwOnR9ZnVuY3Rpb24gJG0oZSx0LG4scil7dmFyIGE9KDAsbHQuelgpKGZ1bmN0aW9uKGwsdSl7dmFyIGM9KDAscy5aKSh7dHlwZTp0fSx1KTtpZihkZWxldGUgYy5hY3RpdmVJbmRleCwhZS5pc1ZhbGlkYXRlKGwpfHxuJiZuKGwsYykpcmV0dXJuITA7aWYoKHQ9PT0iZGF0ZSJ8fHQ9PT0idGltZSIpJiZyKXt2YXIgZCx2PXUmJnUuYWN0aXZlSW5kZXg9PT0xPyJlbmQiOiJzdGFydCIsZj0oKGQ9ci5kaXNhYmxlZFRpbWUpPT09bnVsbHx8ZD09PXZvaWQgMD92b2lkIDA6ZC5jYWxsKHIsbCx2LHtmcm9tOmMuZnJvbX0pKXx8e30sbT1mLmRpc2FibGVkSG91cnMsaD1mLmRpc2FibGVkTWludXRlcyxDPWYuZGlzYWJsZWRTZWNvbmRzLHg9Zi5kaXNhYmxlZE1pbGxpc2Vjb25kcyxwPXIuZGlzYWJsZWRIb3Vycyx5PXIuZGlzYWJsZWRNaW51dGVzLHc9ci5kaXNhYmxlZFNlY29uZHMsUD1tfHxwLEU9aHx8eSxNPUN8fHcsRD1lLmdldEhvdXIobCksTj1lLmdldE1pbnV0ZShsKSxUPWUuZ2V0U2Vjb25kKGwpLFc9ZS5nZXRNaWxsaXNlY29uZChsKTtpZihQJiZQKCkuaW5jbHVkZXMoRCl8fEUmJkUoRCkuaW5jbHVkZXMoTil8fE0mJk0oRCxOKS5pbmNsdWRlcyhUKXx8eCYmeChELE4sVCkuaW5jbHVkZXMoVykpcmV0dXJuITB9cmV0dXJuITF9KTtyZXR1cm4gYX1mdW5jdGlvbiBBaShlKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06ITEsbj1vLnVzZU1lbW8oZnVuY3Rpb24oKXt2YXIgcj1lJiZQbyhlKTtyZXR1cm4gdCYmciYmKHJbMV09clsxXXx8clswXSkscn0sW2UsdF0pO3JldHVybiBufWZ1bmN0aW9uIGl1KGUsdCl7dmFyIG49ZS5nZW5lcmF0ZUNvbmZpZyxyPWUubG9jYWxlLGE9ZS5waWNrZXIsbD1hPT09dm9pZCAwPyJkYXRlIjphLHU9ZS5wcmVmaXhDbHMsYz11PT09dm9pZCAwPyJyYy1waWNrZXIiOnUsZD1lLnN0eWxlcyx2PWQ9PT12b2lkIDA/e306ZCxmPWUuY2xhc3NOYW1lcyxtPWY9PT12b2lkIDA/e306ZixoPWUub3JkZXIsQz1oPT09dm9pZCAwPyEwOmgseD1lLmNvbXBvbmVudHMscD14PT09dm9pZCAwP3t9OngseT1lLmlucHV0UmVuZGVyLHc9ZS5hbGxvd0NsZWFyLFA9ZS5jbGVhckljb24sRT1lLm5lZWRDb25maXJtLE09ZS5tdWx0aXBsZSxEPWUuZm9ybWF0LE49ZS5pbnB1dFJlYWRPbmx5LFQ9ZS5kaXNhYmxlZERhdGUsVz1lLm1pbkRhdGUsQj1lLm1heERhdGUsWT1lLnNob3dUaW1lLEg9ZS52YWx1ZSxBPWUuZGVmYXVsdFZhbHVlLFY9ZS5waWNrZXJWYWx1ZSx6PWUuZGVmYXVsdFBpY2tlclZhbHVlLFg9QWkoSCkscT1BaShBKSxRPUFpKFYpLGFlPUFpKHopLGVlPWw9PT0iZGF0ZSImJlk/ImRhdGV0aW1lIjpsLHJlPWVlPT09InRpbWUifHxlZT09PSJkYXRldGltZSIsc2U9cmV8fE0sSj1FIT1udWxsP0U6cmUsaWU9dHUoZSksY2U9KDAsai5aKShpZSw0KSx4ZT1jZVswXSx1ZT1jZVsxXSx5ZT1jZVsyXSxQZT1jZVszXSxnZT1xcyhyLHVlKSxSZT1vLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4gbnUoZWUseWUsUGUseGUsZ2UpfSxbZWUseWUsUGUseGUsZ2VdKSxTZT1vLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4oMCxzLlopKCgwLHMuWikoe30sZSkse30se3ByZWZpeENsczpjLGxvY2FsZTpnZSxwaWNrZXI6bCxzdHlsZXM6dixjbGFzc05hbWVzOm0sb3JkZXI6Qyxjb21wb25lbnRzOigwLHMuWikoe2lucHV0Onl9LHApLGNsZWFySWNvbjpTbShjLHcsUCksc2hvd1RpbWU6UmUsdmFsdWU6WCxkZWZhdWx0VmFsdWU6cSxwaWNrZXJWYWx1ZTpRLGRlZmF1bHRQaWNrZXJWYWx1ZTphZX0sdD09bnVsbD92b2lkIDA6dCgpKX0sW2VdKSxJZT1FbShlZSxnZSxEKSxaZT0oMCxqLlopKEllLDIpLENlPVplWzBdLEVlPVplWzFdLHBlPUltKENlLE4sTSksSmU9T20obixyLFQsVyxCKSxCZT0kbShuLGwsSmUsUmUpLHZ0PW8udXNlTWVtbyhmdW5jdGlvbigpe3JldHVybigwLHMuWikoKDAscy5aKSh7fSxTZSkse30se25lZWRDb25maXJtOkosaW5wdXRSZWFkT25seTpwZSxkaXNhYmxlZERhdGU6SmV9KX0sW1NlLEoscGUsSmVdKTtyZXR1cm5bdnQsZWUsc2UsQ2UsRWUsQmVdfWZ1bmN0aW9uIE1tKGUsdCxuKXt2YXIgcj0oMCxsdC5DOCkodCx7dmFsdWU6ZX0pLGE9KDAsai5aKShyLDIpLGw9YVswXSx1PWFbMV0sYz1vLnVzZVJlZihlKSxkPW8udXNlUmVmKCksdj1mdW5jdGlvbigpe0puLlouY2FuY2VsKGQuY3VycmVudCl9LGY9KDAsbHQuelgpKGZ1bmN0aW9uKCl7dShjLmN1cnJlbnQpLG4mJmwhPT1jLmN1cnJlbnQmJm4oYy5jdXJyZW50KX0pLG09KDAsbHQuelgpKGZ1bmN0aW9uKGgsQyl7digpLGMuY3VycmVudD1oLGh8fEM/ZigpOmQuY3VycmVudD0oMCxKbi5aKShmKX0pO3JldHVybiBvLnVzZUVmZmVjdChmdW5jdGlvbigpe3JldHVybiB2fSxbXSksW2wsbV19ZnVuY3Rpb24gbHUoZSx0KXt2YXIgbj1hcmd1bWVudHMubGVuZ3RoPjImJmFyZ3VtZW50c1syXSE9PXZvaWQgMD9hcmd1bWVudHNbMl06W10scj1hcmd1bWVudHMubGVuZ3RoPjM/YXJndW1lbnRzWzNdOnZvaWQgMCxhPW4uZXZlcnkoZnVuY3Rpb24oZil7cmV0dXJuIGZ9KT8hMTplLGw9TW0oYSx0fHwhMSxyKSx1PSgwLGouWikobCwyKSxjPXVbMF0sZD11WzFdO2Z1bmN0aW9uIHYoZil7dmFyIG09YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOnt9OyghbS5pbmhlcml0fHxjKSYmZChmLG0uZm9yY2UpfXJldHVybltjLHZdfWZ1bmN0aW9uIHN1KGUpe3ZhciB0PW8udXNlUmVmKCk7cmV0dXJuIG8udXNlSW1wZXJhdGl2ZUhhbmRsZShlLGZ1bmN0aW9uKCl7dmFyIG47cmV0dXJue25hdGl2ZUVsZW1lbnQ6KG49dC5jdXJyZW50KT09PW51bGx8fG49PT12b2lkIDA/dm9pZCAwOm4ubmF0aXZlRWxlbWVudCxmb2N1czpmdW5jdGlvbihhKXt2YXIgbDsobD10LmN1cnJlbnQpPT09bnVsbHx8bD09PXZvaWQgMHx8bC5mb2N1cyhhKX0sYmx1cjpmdW5jdGlvbigpe3ZhciBhOyhhPXQuY3VycmVudCk9PT1udWxsfHxhPT09dm9pZCAwfHxhLmJsdXIoKX19fSksdH1mdW5jdGlvbiB1dShlLHQpe3JldHVybiBvLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4gZXx8KHQ/KCgwLGh0LlpQKSghMSwiYHJhbmdlc2AgaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBgcHJlc2V0c2AgaW5zdGVhZC4iKSxPYmplY3QuZW50cmllcyh0KS5tYXAoZnVuY3Rpb24obil7dmFyIHI9KDAsai5aKShuLDIpLGE9clswXSxsPXJbMV07cmV0dXJue2xhYmVsOmEsdmFsdWU6bH19KSk6W10pfSxbZSx0XSl9ZnVuY3Rpb24gU2woZSx0KXt2YXIgbj1hcmd1bWVudHMubGVuZ3RoPjImJmFyZ3VtZW50c1syXSE9PXZvaWQgMD9hcmd1bWVudHNbMl06MSxyPW8udXNlUmVmKHQpO3IuY3VycmVudD10LCgwLFduLm8pKGZ1bmN0aW9uKCl7aWYoZSlyLmN1cnJlbnQoZSk7ZWxzZXt2YXIgYT0oMCxKbi5aKShmdW5jdGlvbigpe3IuY3VycmVudChlKX0sbik7cmV0dXJuIGZ1bmN0aW9uKCl7Sm4uWi5jYW5jZWwoYSl9fX0sW2VdKX1mdW5jdGlvbiBjdShlKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06W10sbj1hcmd1bWVudHMubGVuZ3RoPjImJmFyZ3VtZW50c1syXSE9PXZvaWQgMD9hcmd1bWVudHNbMl06ITEscj1vLnVzZVN0YXRlKDApLGE9KDAsai5aKShyLDIpLGw9YVswXSx1PWFbMV0sYz1vLnVzZVN0YXRlKCExKSxkPSgwLGouWikoYywyKSx2PWRbMF0sZj1kWzFdLG09by51c2VSZWYoW10pLGg9by51c2VSZWYobnVsbCksQz1vLnVzZVJlZihudWxsKSx4PWZ1bmN0aW9uKE0pe2guY3VycmVudD1NfSxwPWZ1bmN0aW9uKE0pe3JldHVybiBoLmN1cnJlbnQ9PT1NfSx5PWZ1bmN0aW9uKE0pe2YoTSl9LHc9ZnVuY3Rpb24oTSl7cmV0dXJuIE0mJihDLmN1cnJlbnQ9TSksQy5jdXJyZW50fSxQPWZ1bmN0aW9uKE0pe3ZhciBEPW0uY3VycmVudCxOPW5ldyBTZXQoRC5maWx0ZXIoZnVuY3Rpb24oVyl7cmV0dXJuIE1bV118fHRbV119KSksVD1EW0QubGVuZ3RoLTFdPT09MD8xOjA7cmV0dXJuIE4uc2l6ZT49Mnx8ZVtUXT9udWxsOlR9O3JldHVybiBTbCh2fHxuLGZ1bmN0aW9uKCl7dnx8KG0uY3VycmVudD1bXSx4KG51bGwpKX0pLG8udXNlRWZmZWN0KGZ1bmN0aW9uKCl7diYmbS5jdXJyZW50LnB1c2gobCl9LFt2LGxdKSxbdix5LHcsbCx1LFAsbS5jdXJyZW50LHgscF19ZnVuY3Rpb24gWm0oZSx0LG4scixhLGwpe3ZhciB1PW5bbi5sZW5ndGgtMV0sYz1mdW5jdGlvbih2LGYpe3ZhciBtPSgwLGouWikoZSwyKSxoPW1bMF0sQz1tWzFdLHg9KDAscy5aKSgoMCxzLlopKHt9LGYpLHt9LHtmcm9tOlhzKGUsbil9KTtyZXR1cm4gdT09PTEmJnRbMF0mJmgmJiFrcihyLGEsaCx2LHgudHlwZSkmJnIuaXNBZnRlcihoLHYpfHx1PT09MCYmdFsxXSYmQyYmIWtyKHIsYSxDLHYseC50eXBlKSYmci5pc0FmdGVyKHYsQyk/ITA6bD09bnVsbD92b2lkIDA6bCh2LHgpfTtyZXR1cm4gY31mdW5jdGlvbiBkaShlLHQsbixyKXtzd2l0Y2godCl7Y2FzZSJkYXRlIjpjYXNlIndlZWsiOnJldHVybiBlLmFkZE1vbnRoKG4scik7Y2FzZSJtb250aCI6Y2FzZSJxdWFydGVyIjpyZXR1cm4gZS5hZGRZZWFyKG4scik7Y2FzZSJ5ZWFyIjpyZXR1cm4gZS5hZGRZZWFyKG4scioxMCk7Y2FzZSJkZWNhZGUiOnJldHVybiBlLmFkZFllYXIobixyKjEwMCk7ZGVmYXVsdDpyZXR1cm4gbn19dmFyIFBsPVtdO2Z1bmN0aW9uIGR1KGUsdCxuLHIsYSxsLHUsYyl7dmFyIGQ9YXJndW1lbnRzLmxlbmd0aD44JiZhcmd1bWVudHNbOF0hPT12b2lkIDA/YXJndW1lbnRzWzhdOlBsLHY9YXJndW1lbnRzLmxlbmd0aD45JiZhcmd1bWVudHNbOV0hPT12b2lkIDA/YXJndW1lbnRzWzldOlBsLGY9YXJndW1lbnRzLmxlbmd0aD4xMCYmYXJndW1lbnRzWzEwXSE9PXZvaWQgMD9hcmd1bWVudHNbMTBdOlBsLG09YXJndW1lbnRzLmxlbmd0aD4xMT9hcmd1bWVudHNbMTFdOnZvaWQgMCxoPWFyZ3VtZW50cy5sZW5ndGg+MTI/YXJndW1lbnRzWzEyXTp2b2lkIDAsQz1hcmd1bWVudHMubGVuZ3RoPjEzP2FyZ3VtZW50c1sxM106dm9pZCAwLHg9dT09PSJ0aW1lIixwPWx8fDAseT1mdW5jdGlvbihRKXt2YXIgYWU9ZS5nZXROb3coKTtyZXR1cm4geCYmKGFlPWppKGUsYWUpKSxkW1FdfHxuW1FdfHxhZX0sdz0oMCxqLlopKHYsMiksUD13WzBdLEU9d1sxXSxNPSgwLGx0LkM4KShmdW5jdGlvbigpe3JldHVybiB5KDApfSx7dmFsdWU6UH0pLEQ9KDAsai5aKShNLDIpLE49RFswXSxUPURbMV0sVz0oMCxsdC5DOCkoZnVuY3Rpb24oKXtyZXR1cm4geSgxKX0se3ZhbHVlOkV9KSxCPSgwLGouWikoVywyKSxZPUJbMF0sSD1CWzFdLEE9by51c2VNZW1vKGZ1bmN0aW9uKCl7dmFyIHE9W04sWV1bcF07cmV0dXJuIHg/cTpqaShlLHEsZltwXSl9LFt4LE4sWSxwLGUsZl0pLFY9ZnVuY3Rpb24oUSl7dmFyIGFlPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXToicGFuZWwiLGVlPVtULEhdW3BdO2VlKFEpO3ZhciByZT1bTixZXTtyZVtwXT1RLG0mJigha3IoZSx0LE4scmVbMF0sdSl8fCFrcihlLHQsWSxyZVsxXSx1KSkmJm0ocmUse3NvdXJjZTphZSxyYW5nZTpwPT09MT8iZW5kIjoic3RhcnQiLG1vZGU6cn0pfSx6PWZ1bmN0aW9uKFEsYWUpe2lmKGMpe3ZhciBlZT17ZGF0ZToibW9udGgiLHdlZWs6Im1vbnRoIixtb250aDoieWVhciIscXVhcnRlcjoieWVhciJ9LHJlPWVlW3VdO2lmKHJlJiYha3IoZSx0LFEsYWUscmUpKXJldHVybiBkaShlLHUsYWUsLTEpO2lmKHU9PT0ieWVhciImJlEpe3ZhciBzZT1NYXRoLmZsb29yKGUuZ2V0WWVhcihRKS8xMCksSj1NYXRoLmZsb29yKGUuZ2V0WWVhcihhZSkvMTApO2lmKHNlIT09SilyZXR1cm4gZGkoZSx1LGFlLC0xKX19cmV0dXJuIGFlfSxYPW8udXNlUmVmKG51bGwpO3JldHVybigwLFduLlopKGZ1bmN0aW9uKCl7aWYoYSYmIWRbcF0pe3ZhciBxPXg/bnVsbDplLmdldE5vdygpO2lmKFguY3VycmVudCE9PW51bGwmJlguY3VycmVudCE9PXA/cT1bTixZXVtwXjFdOm5bcF0/cT1wPT09MD9uWzBdOnooblswXSxuWzFdKTpuW3BeMV0mJihxPW5bcF4xXSkscSl7aCYmZS5pc0FmdGVyKGgscSkmJihxPWgpO3ZhciBRPWM/ZGkoZSx1LHEsMSk6cTtDJiZlLmlzQWZ0ZXIoUSxDKSYmKHE9Yz9kaShlLHUsQywtMSk6QyksVihxLCJyZXNldCIpfX19LFthLHAsbltwXV0pLG8udXNlRWZmZWN0KGZ1bmN0aW9uKCl7YT9YLmN1cnJlbnQ9cDpYLmN1cnJlbnQ9bnVsbH0sW2EscF0pLCgwLFduLlopKGZ1bmN0aW9uKCl7YSYmZCYmZFtwXSYmVihkW3BdLCJyZXNldCIpfSxbYSxwXSksW0EsVl19ZnVuY3Rpb24gZnUoZSx0KXt2YXIgbj1vLnVzZVJlZihlKSxyPW8udXNlU3RhdGUoe30pLGE9KDAsai5aKShyLDIpLGw9YVsxXSx1PWZ1bmN0aW9uKHYpe3JldHVybiB2JiZ0IT09dm9pZCAwP3Q6bi5jdXJyZW50fSxjPWZ1bmN0aW9uKHYpe24uY3VycmVudD12LGwoe30pfTtyZXR1cm5bdSxjLHUoITApXX12YXIgUm09W107ZnVuY3Rpb24gdnUoZSx0LG4pe3ZhciByPWZ1bmN0aW9uKHUpe3JldHVybiB1Lm1hcChmdW5jdGlvbihjKXtyZXR1cm4geHIoYyx7Z2VuZXJhdGVDb25maWc6ZSxsb2NhbGU6dCxmb3JtYXQ6blswXX0pfSl9LGE9ZnVuY3Rpb24odSxjKXtmb3IodmFyIGQ9TWF0aC5tYXgodS5sZW5ndGgsYy5sZW5ndGgpLHY9LTEsZj0wO2Y8ZDtmKz0xKXt2YXIgbT11W2ZdfHxudWxsLGg9Y1tmXXx8bnVsbDtpZihtIT09aCYmIW91KGUsbSxoKSl7dj1mO2JyZWFrfX1yZXR1cm5bdjwwLHYhPT0wXX07cmV0dXJuW3IsYV19ZnVuY3Rpb24gbXUoZSx0KXtyZXR1cm4oMCxsZS5aKShlKS5zb3J0KGZ1bmN0aW9uKG4scil7cmV0dXJuIHQuaXNBZnRlcihuLHIpPzE6LTF9KX1mdW5jdGlvbiBEbShlKXt2YXIgdD1mdShlKSxuPSgwLGouWikodCwyKSxyPW5bMF0sYT1uWzFdLGw9KDAsbHQuelgpKGZ1bmN0aW9uKCl7YShlKX0pO3JldHVybiBvLnVzZUVmZmVjdChmdW5jdGlvbigpe2woKX0sW2VdKSxbcixhXX1mdW5jdGlvbiBndShlLHQsbixyLGEsbCx1LGMsZCl7dmFyIHY9KDAsbHQuQzgpKGwse3ZhbHVlOnV9KSxmPSgwLGouWikodiwyKSxtPWZbMF0saD1mWzFdLEM9bXx8Um0seD1EbShDKSxwPSgwLGouWikoeCwyKSx5PXBbMF0sdz1wWzFdLFA9dnUoZSx0LG4pLEU9KDAsai5aKShQLDIpLE09RVswXSxEPUVbMV0sTj0oMCxsdC56WCkoZnVuY3Rpb24oVyl7dmFyIEI9KDAsbGUuWikoVyk7aWYocilmb3IodmFyIFk9MDtZPDI7WSs9MSlCW1ldPUJbWV18fG51bGw7ZWxzZSBhJiYoQj1tdShCLmZpbHRlcihmdW5jdGlvbihxKXtyZXR1cm4gcX0pLGUpKTt2YXIgSD1EKHkoKSxCKSxBPSgwLGouWikoSCwyKSxWPUFbMF0sej1BWzFdO2lmKCFWJiYodyhCKSxjKSl7dmFyIFg9TShCKTtjKEIsWCx7cmFuZ2U6ej8iZW5kIjoic3RhcnQifSl9fSksVD1mdW5jdGlvbigpe2QmJmQoeSgpKX07cmV0dXJuW0MsaCx5LE4sVF19ZnVuY3Rpb24gaHUoZSx0LG4scixhLGwsdSxjLGQsdil7dmFyIGY9ZS5nZW5lcmF0ZUNvbmZpZyxtPWUubG9jYWxlLGg9ZS5waWNrZXIsQz1lLm9uQ2hhbmdlLHg9ZS5hbGxvd0VtcHR5LHA9ZS5vcmRlcix5PWwuc29tZShmdW5jdGlvbihWKXtyZXR1cm4gVn0pPyExOnAsdz12dShmLG0sdSksUD0oMCxqLlopKHcsMiksRT1QWzBdLE09UFsxXSxEPWZ1KHQpLE49KDAsai5aKShELDIpLFQ9TlswXSxXPU5bMV0sQj0oMCxsdC56WCkoZnVuY3Rpb24oKXtXKHQpfSk7by51c2VFZmZlY3QoZnVuY3Rpb24oKXtCKCl9LFt0XSk7dmFyIFk9KDAsbHQuelgpKGZ1bmN0aW9uKFYpe3ZhciB6PVY9PT1udWxsLFg9KDAsbGUuWikoVnx8VCgpKTtpZih6KWZvcih2YXIgcT1NYXRoLm1heChsLmxlbmd0aCxYLmxlbmd0aCksUT0wO1E8cTtRKz0xKWxbUV18fChYW1FdPW51bGwpO3kmJlhbMF0mJlhbMV0mJihYPW11KFgsZikpLGEoWCk7dmFyIGFlPVgsZWU9KDAsai5aKShhZSwyKSxyZT1lZVswXSxzZT1lZVsxXSxKPSFyZSxpZT0hc2UsY2U9eD8oIUp8fHhbMF0pJiYoIWllfHx4WzFdKTohMCx4ZT0hcHx8Snx8aWV8fGtyKGYsbSxyZSxzZSxoKXx8Zi5pc0FmdGVyKHNlLHJlKSx1ZT0obFswXXx8IXJlfHwhdihyZSx7YWN0aXZlSW5kZXg6MH0pKSYmKGxbMV18fCFzZXx8IXYoc2Use2Zyb206cmUsYWN0aXZlSW5kZXg6MX0pKSx5ZT16fHxjZSYmeGUmJnVlO2lmKHllKXtuKFgpO3ZhciBQZT1NKFgsdCksZ2U9KDAsai5aKShQZSwxKSxSZT1nZVswXTtDJiYhUmUmJkMoeiYmWC5ldmVyeShmdW5jdGlvbihTZSl7cmV0dXJuIVNlfSk/bnVsbDpYLEUoWCkpfXJldHVybiB5ZX0pLEg9KDAsbHQuelgpKGZ1bmN0aW9uKFYseil7dmFyIFg9c2koVCgpLFYscigpW1ZdKTtXKFgpLHomJlkoKX0pLEE9IWMmJiFkO3JldHVybiBTbCghQSxmdW5jdGlvbigpe0EmJihZKCksYSh0KSxCKCkpfSwyKSxbSCxZXX1mdW5jdGlvbiBwdShlLHQsbixyLGEpe3JldHVybiB0IT09ImRhdGUiJiZ0IT09InRpbWUiPyExOm4hPT12b2lkIDA/bjpyIT09dm9pZCAwP3I6IWEmJihlPT09ImRhdGUifHxlPT09InRpbWUiKX12YXIgYnU9aSg0ODU1NSk7ZnVuY3Rpb24gTm0oZSx0LG4scixhLGwpe3ZhciB1PWU7ZnVuY3Rpb24gYyhtLGgsQyl7dmFyIHg9bFttXSh1KSxwPUMuZmluZChmdW5jdGlvbihFKXtyZXR1cm4gRS52YWx1ZT09PXh9KTtpZighcHx8cC5kaXNhYmxlZCl7dmFyIHk9Qy5maWx0ZXIoZnVuY3Rpb24oRSl7cmV0dXJuIUUuZGlzYWJsZWR9KSx3PSgwLGxlLlopKHkpLnJldmVyc2UoKSxQPXcuZmluZChmdW5jdGlvbihFKXtyZXR1cm4gRS52YWx1ZTw9eH0pfHx5WzBdO1AmJih4PVAudmFsdWUsdT1sW2hdKHUseCkpfXJldHVybiB4fXZhciBkPWMoImdldEhvdXIiLCJzZXRIb3VyIix0KCkpLHY9YygiZ2V0TWludXRlIiwic2V0TWludXRlIixuKGQpKSxmPWMoImdldFNlY29uZCIsInNldFNlY29uZCIscihkLHYpKTtyZXR1cm4gYygiZ2V0TWlsbGlzZWNvbmQiLCJzZXRNaWxsaXNlY29uZCIsYShkLHYsZikpLHV9ZnVuY3Rpb24gSGkoKXtyZXR1cm5bXX1mdW5jdGlvbiBraShlLHQpe2Zvcih2YXIgbj1hcmd1bWVudHMubGVuZ3RoPjImJmFyZ3VtZW50c1syXSE9PXZvaWQgMD9hcmd1bWVudHNbMl06MSxyPWFyZ3VtZW50cy5sZW5ndGg+MyYmYXJndW1lbnRzWzNdIT09dm9pZCAwP2FyZ3VtZW50c1szXTohMSxhPWFyZ3VtZW50cy5sZW5ndGg+NCYmYXJndW1lbnRzWzRdIT09dm9pZCAwP2FyZ3VtZW50c1s0XTpbXSxsPWFyZ3VtZW50cy5sZW5ndGg+NSYmYXJndW1lbnRzWzVdIT09dm9pZCAwP2FyZ3VtZW50c1s1XToyLHU9W10sYz1uPj0xP258MDoxLGQ9ZTtkPD10O2QrPWMpe3ZhciB2PWEuaW5jbHVkZXMoZCk7KCF2fHwhcikmJnUucHVzaCh7bGFiZWw6aGwoZCxsKSx2YWx1ZTpkLGRpc2FibGVkOnZ9KX1yZXR1cm4gdX1mdW5jdGlvbiB3bChlKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06e30sbj1hcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMCxyPXR8fHt9LGE9ci51c2UxMkhvdXJzLGw9ci5ob3VyU3RlcCx1PWw9PT12b2lkIDA/MTpsLGM9ci5taW51dGVTdGVwLGQ9Yz09PXZvaWQgMD8xOmMsdj1yLnNlY29uZFN0ZXAsZj12PT09dm9pZCAwPzE6dixtPXIubWlsbGlzZWNvbmRTdGVwLGg9bT09PXZvaWQgMD8xMDA6bSxDPXIuaGlkZURpc2FibGVkT3B0aW9ucyx4PXIuZGlzYWJsZWRUaW1lLHA9ci5kaXNhYmxlZEhvdXJzLHk9ci5kaXNhYmxlZE1pbnV0ZXMsdz1yLmRpc2FibGVkU2Vjb25kcyxQPW8udXNlTWVtbyhmdW5jdGlvbigpe3JldHVybiBufHxlLmdldE5vdygpfSxbbixlXSk7aWYoMCl2YXIgRSxNLEQ7dmFyIE49by51c2VDYWxsYmFjayhmdW5jdGlvbihzZSl7dmFyIEo9KHg9PW51bGw/dm9pZCAwOngoc2UpKXx8e307cmV0dXJuW0ouZGlzYWJsZWRIb3Vyc3x8cHx8SGksSi5kaXNhYmxlZE1pbnV0ZXN8fHl8fEhpLEouZGlzYWJsZWRTZWNvbmRzfHx3fHxIaSxKLmRpc2FibGVkTWlsbGlzZWNvbmRzfHxIaV19LFt4LHAseSx3XSksVD1vLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4gTihQKX0sW1AsTl0pLFc9KDAsai5aKShULDQpLEI9V1swXSxZPVdbMV0sSD1XWzJdLEE9V1szXSxWPW8udXNlQ2FsbGJhY2soZnVuY3Rpb24oc2UsSixpZSxjZSl7dmFyIHhlPWtpKDAsMjMsdSxDLHNlKCkpLHVlPWE/eGUubWFwKGZ1bmN0aW9uKFJlKXtyZXR1cm4oMCxzLlopKCgwLHMuWikoe30sUmUpLHt9LHtsYWJlbDpobChSZS52YWx1ZSUxMnx8MTIsMil9KX0pOnhlLHllPWZ1bmN0aW9uKFNlKXtyZXR1cm4ga2koMCw1OSxkLEMsSihTZSkpfSxQZT1mdW5jdGlvbihTZSxJZSl7cmV0dXJuIGtpKDAsNTksZixDLGllKFNlLEllKSl9LGdlPWZ1bmN0aW9uKFNlLEllLFplKXtyZXR1cm4ga2koMCw5OTksaCxDLGNlKFNlLEllLFplKSwzKX07cmV0dXJuW3VlLHllLFBlLGdlXX0sW0MsdSxhLGgsZCxmXSksej1vLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4gVihCLFksSCxBKX0sW1YsQixZLEgsQV0pLFg9KDAsai5aKSh6LDQpLHE9WFswXSxRPVhbMV0sYWU9WFsyXSxlZT1YWzNdLHJlPWZ1bmN0aW9uKEosaWUpe3ZhciBjZT1mdW5jdGlvbigpe3JldHVybiBxfSx4ZT1RLHVlPWFlLHllPWVlO2lmKGllKXt2YXIgUGU9TihpZSksZ2U9KDAsai5aKShQZSw0KSxSZT1nZVswXSxTZT1nZVsxXSxJZT1nZVsyXSxaZT1nZVszXSxDZT1WKFJlLFNlLEllLFplKSxFZT0oMCxqLlopKENlLDQpLHBlPUVlWzBdLEplPUVlWzFdLEJlPUVlWzJdLHZ0PUVlWzNdO2NlPWZ1bmN0aW9uKCl7cmV0dXJuIHBlfSx4ZT1KZSx1ZT1CZSx5ZT12dH12YXIgeXQ9Tm0oSixjZSx4ZSx1ZSx5ZSxlKTtyZXR1cm4geXR9O3JldHVybltyZSxxLFEsYWUsZWVdfWZ1bmN0aW9uIEZtKGUpe3ZhciB0PWUubW9kZSxuPWUuaW50ZXJuYWxNb2RlLHI9ZS5yZW5kZXJFeHRyYUZvb3RlcixhPWUuc2hvd05vdyxsPWUuc2hvd1RpbWUsdT1lLm9uU3VibWl0LGM9ZS5vbk5vdyxkPWUuaW52YWxpZCx2PWUubmVlZENvbmZpcm0sZj1lLmdlbmVyYXRlQ29uZmlnLG09ZS5kaXNhYmxlZERhdGUsaD1vLnVzZUNvbnRleHQoQ2EpLEM9aC5wcmVmaXhDbHMseD1oLmxvY2FsZSxwPWguYnV0dG9uLHk9cD09PXZvaWQgMD8iYnV0dG9uIjpwLHc9Zi5nZXROb3coKSxQPXdsKGYsbCx3KSxFPSgwLGouWikoUCwxKSxNPUVbMF0sRD1yPT1udWxsP3ZvaWQgMDpyKHQpLE49bSh3LHt0eXBlOnR9KSxUPWZ1bmN0aW9uKCl7aWYoIU4pe3ZhciB6PU0odyk7Yyh6KX19LFc9IiIuY29uY2F0KEMsIi1ub3ciKSxCPSIiLmNvbmNhdChXLCItYnRuIiksWT1hJiZvLmNyZWF0ZUVsZW1lbnQoImxpIix7Y2xhc3NOYW1lOld9LG8uY3JlYXRlRWxlbWVudCgiYSIse2NsYXNzTmFtZTpvZSgpKEIsTiYmIiIuY29uY2F0KEIsIi1kaXNhYmxlZCIpKSwiYXJpYS1kaXNhYmxlZCI6TixvbkNsaWNrOlR9LG49PT0iZGF0ZSI/eC50b2RheTp4Lm5vdykpLEg9diYmby5jcmVhdGVFbGVtZW50KCJsaSIse2NsYXNzTmFtZToiIi5jb25jYXQoQywiLW9rIil9LG8uY3JlYXRlRWxlbWVudCh5LHtkaXNhYmxlZDpkLG9uQ2xpY2s6dX0seC5vaykpLEE9KFl8fEgpJiZvLmNyZWF0ZUVsZW1lbnQoInVsIix7Y2xhc3NOYW1lOiIiLmNvbmNhdChDLCItcmFuZ2VzIil9LFksSCk7cmV0dXJuIUQmJiFBP251bGw6by5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KEMsIi1mb290ZXIiKX0sRCYmby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KEMsIi1mb290ZXItZXh0cmEiKX0sRCksQSl9ZnVuY3Rpb24geXUoZSx0LG4pe2Z1bmN0aW9uIHIoYSxsKXt2YXIgdT1hLmZpbmRJbmRleChmdW5jdGlvbihkKXtyZXR1cm4ga3IoZSx0LGQsbCxuKX0pO2lmKHU9PT0tMSlyZXR1cm5bXS5jb25jYXQoKDAsbGUuWikoYSksW2xdKTt2YXIgYz0oMCxsZS5aKShhKTtyZXR1cm4gYy5zcGxpY2UodSwxKSxjfXJldHVybiByfXZhciBPbz1vLmNyZWF0ZUNvbnRleHQobnVsbCk7ZnVuY3Rpb24gTGkoKXtyZXR1cm4gby51c2VDb250ZXh0KE9vKX1mdW5jdGlvbiBrbyhlLHQpe3ZhciBuPWUucHJlZml4Q2xzLHI9ZS5nZW5lcmF0ZUNvbmZpZyxhPWUubG9jYWxlLGw9ZS5kaXNhYmxlZERhdGUsdT1lLm1pbkRhdGUsYz1lLm1heERhdGUsZD1lLmNlbGxSZW5kZXIsdj1lLmhvdmVyVmFsdWUsZj1lLmhvdmVyUmFuZ2VWYWx1ZSxtPWUub25Ib3ZlcixoPWUudmFsdWVzLEM9ZS5waWNrZXJWYWx1ZSx4PWUub25TZWxlY3QscD1lLnByZXZJY29uLHk9ZS5uZXh0SWNvbix3PWUuc3VwZXJQcmV2SWNvbixQPWUuc3VwZXJOZXh0SWNvbixFPXIuZ2V0Tm93KCksTT17bm93OkUsdmFsdWVzOmgscGlja2VyVmFsdWU6QyxwcmVmaXhDbHM6bixkaXNhYmxlZERhdGU6bCxtaW5EYXRlOnUsbWF4RGF0ZTpjLGNlbGxSZW5kZXI6ZCxob3ZlclZhbHVlOnYsaG92ZXJSYW5nZVZhbHVlOmYsb25Ib3ZlcjptLGxvY2FsZTphLGdlbmVyYXRlQ29uZmlnOnIsb25TZWxlY3Q6eCxwYW5lbFR5cGU6dCxwcmV2SWNvbjpwLG5leHRJY29uOnksc3VwZXJQcmV2SWNvbjp3LHN1cGVyTmV4dEljb246UH07cmV0dXJuW00sRV19dmFyIG9vPW8uY3JlYXRlQ29udGV4dCh7fSk7ZnVuY3Rpb24gZmkoZSl7Zm9yKHZhciB0PWUucm93TnVtLG49ZS5jb2xOdW0scj1lLmJhc2VEYXRlLGE9ZS5nZXRDZWxsRGF0ZSxsPWUucHJlZml4Q29sdW1uLHU9ZS5yb3dDbGFzc05hbWUsYz1lLnRpdGxlRm9ybWF0LGQ9ZS5nZXRDZWxsVGV4dCx2PWUuZ2V0Q2VsbENsYXNzTmFtZSxmPWUuaGVhZGVyQ2VsbHMsbT1lLmNlbGxTZWxlY3Rpb24saD1tPT09dm9pZCAwPyEwOm0sQz1lLmRpc2FibGVkRGF0ZSx4PUxpKCkscD14LnByZWZpeENscyx5PXgucGFuZWxUeXBlLHc9eC5ub3csUD14LmRpc2FibGVkRGF0ZSxFPXguY2VsbFJlbmRlcixNPXgub25Ib3ZlcixEPXguaG92ZXJWYWx1ZSxOPXguaG92ZXJSYW5nZVZhbHVlLFQ9eC5nZW5lcmF0ZUNvbmZpZyxXPXgudmFsdWVzLEI9eC5sb2NhbGUsWT14Lm9uU2VsZWN0LEg9Q3x8UCxBPSIiLmNvbmNhdChwLCItY2VsbCIpLFY9by51c2VDb250ZXh0KG9vKSx6PVYub25DZWxsRGJsQ2xpY2ssWD1mdW5jdGlvbihpZSl7cmV0dXJuIFcuc29tZShmdW5jdGlvbihjZSl7cmV0dXJuIGNlJiZrcihULEIsaWUsY2UseSl9KX0scT1bXSxRPTA7UTx0O1ErPTEpe2Zvcih2YXIgYWU9W10sZWU9dm9pZCAwLHJlPWZ1bmN0aW9uKCl7dmFyIGllPVEqbitzZSxjZT1hKHIsaWUpLHhlPUg9PW51bGw/dm9pZCAwOkgoY2Use3R5cGU6eX0pO3NlPT09MCYmKGVlPWNlLGwmJmFlLnB1c2gobChlZSkpKTt2YXIgdWU9ITEseWU9ITEsUGU9ITE7aWYoaCYmTil7dmFyIGdlPSgwLGouWikoTiwyKSxSZT1nZVswXSxTZT1nZVsxXTt1ZT1GaShULFJlLFNlLGNlKSx5ZT1rcihULEIsY2UsUmUseSksUGU9a3IoVCxCLGNlLFNlLHkpfXZhciBJZT1jP3hyKGNlLHtsb2NhbGU6Qixmb3JtYXQ6YyxnZW5lcmF0ZUNvbmZpZzpUfSk6dm9pZCAwLFplPW8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdChBLCItaW5uZXIiKX0sZChjZSkpO2FlLnB1c2goby5jcmVhdGVFbGVtZW50KCJ0ZCIse2tleTpzZSx0aXRsZTpJZSxjbGFzc05hbWU6b2UoKShBLCgwLHMuWikoKDAsRy5aKSgoMCxHLlopKCgwLEcuWikoKDAsRy5aKSgoMCxHLlopKCgwLEcuWikoe30sIiIuY29uY2F0KEEsIi1kaXNhYmxlZCIpLHhlKSwiIi5jb25jYXQoQSwiLWhvdmVyIiksKER8fFtdKS5zb21lKGZ1bmN0aW9uKENlKXtyZXR1cm4ga3IoVCxCLGNlLENlLHkpfSkpLCIiLmNvbmNhdChBLCItaW4tcmFuZ2UiKSx1ZSYmIXllJiYhUGUpLCIiLmNvbmNhdChBLCItcmFuZ2Utc3RhcnQiKSx5ZSksIiIuY29uY2F0KEEsIi1yYW5nZS1lbmQiKSxQZSksIiIuY29uY2F0KHAsIi1jZWxsLXNlbGVjdGVkIiksIU4mJnkhPT0id2VlayImJlgoY2UpKSx2KGNlKSkpLG9uQ2xpY2s6ZnVuY3Rpb24oKXt4ZXx8WShjZSl9LG9uRG91YmxlQ2xpY2s6ZnVuY3Rpb24oKXsheGUmJnomJnooKX0sb25Nb3VzZUVudGVyOmZ1bmN0aW9uKCl7eGV8fE09PW51bGx8fE0oY2UpfSxvbk1vdXNlTGVhdmU6ZnVuY3Rpb24oKXt4ZXx8TT09bnVsbHx8TShudWxsKX19LEU/RShjZSx7cHJlZml4Q2xzOnAsb3JpZ2luTm9kZTpaZSx0b2RheTp3LHR5cGU6eSxsb2NhbGU6Qn0pOlplKSl9LHNlPTA7c2U8bjtzZSs9MSlyZSgpO3EucHVzaChvLmNyZWF0ZUVsZW1lbnQoInRyIix7a2V5OlEsY2xhc3NOYW1lOnU9PW51bGw/dm9pZCAwOnUoZWUpfSxhZSkpfXJldHVybiBvLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiIi5jb25jYXQocCwiLWJvZHkiKX0sby5jcmVhdGVFbGVtZW50KCJ0YWJsZSIse2NsYXNzTmFtZToiIi5jb25jYXQocCwiLWNvbnRlbnQiKX0sZiYmby5jcmVhdGVFbGVtZW50KCJ0aGVhZCIsbnVsbCxvLmNyZWF0ZUVsZW1lbnQoInRyIixudWxsLGYpKSxvLmNyZWF0ZUVsZW1lbnQoInRib2R5IixudWxsLHEpKSl9dmFyIFZpPXt2aXNpYmlsaXR5OiJoaWRkZW4ifTtmdW5jdGlvbiBUbShlKXt2YXIgdD1lLm9mZnNldCxuPWUuc3VwZXJPZmZzZXQscj1lLm9uQ2hhbmdlLGE9ZS5nZXRTdGFydCxsPWUuZ2V0RW5kLHU9ZS5jaGlsZHJlbixjPUxpKCksZD1jLnByZWZpeENscyx2PWMucHJldkljb24sZj12PT09dm9pZCAwPyJcdTIwMzkiOnYsbT1jLm5leHRJY29uLGg9bT09PXZvaWQgMD8iXHUyMDNBIjptLEM9Yy5zdXBlclByZXZJY29uLHg9Qz09PXZvaWQgMD8iXHhBQiI6QyxwPWMuc3VwZXJOZXh0SWNvbix5PXA9PT12b2lkIDA/Ilx4QkIiOnAsdz1jLm1pbkRhdGUsUD1jLm1heERhdGUsRT1jLmdlbmVyYXRlQ29uZmlnLE09Yy5sb2NhbGUsRD1jLnBpY2tlclZhbHVlLE49Yy5wYW5lbFR5cGUsVD0iIi5jb25jYXQoZCwiLWhlYWRlciIpLFc9by51c2VDb250ZXh0KG9vKSxCPVcuaGlkZVByZXYsWT1XLmhpZGVOZXh0LEg9Vy5oaWRlSGVhZGVyLEE9by51c2VNZW1vKGZ1bmN0aW9uKCl7aWYoIXd8fCF0fHwhbClyZXR1cm4hMTt2YXIgSj1sKHQoLTEsRCkpO3JldHVybiFUaShFLE0sSix3LE4pfSxbdyx0LEQsbCxFLE0sTl0pLFY9by51c2VNZW1vKGZ1bmN0aW9uKCl7aWYoIXd8fCFufHwhbClyZXR1cm4hMTt2YXIgSj1sKG4oLTEsRCkpO3JldHVybiFUaShFLE0sSix3LE4pfSxbdyxuLEQsbCxFLE0sTl0pLHo9by51c2VNZW1vKGZ1bmN0aW9uKCl7aWYoIVB8fCF0fHwhYSlyZXR1cm4hMTt2YXIgSj1hKHQoMSxEKSk7cmV0dXJuIVRpKEUsTSxQLEosTil9LFtQLHQsRCxhLEUsTSxOXSksWD1vLnVzZU1lbW8oZnVuY3Rpb24oKXtpZighUHx8IW58fCFhKXJldHVybiExO3ZhciBKPWEobigxLEQpKTtyZXR1cm4hVGkoRSxNLFAsSixOKX0sW1AsbixELGEsRSxNLE5dKSxxPWZ1bmN0aW9uKGllKXt0JiZyKHQoaWUsRCkpfSxRPWZ1bmN0aW9uKGllKXtuJiZyKG4oaWUsRCkpfTtpZihIKXJldHVybiBudWxsO3ZhciBhZT0iIi5jb25jYXQoVCwiLXByZXYtYnRuIiksZWU9IiIuY29uY2F0KFQsIi1uZXh0LWJ0biIpLHJlPSIiLmNvbmNhdChULCItc3VwZXItcHJldi1idG4iKSxzZT0iIi5jb25jYXQoVCwiLXN1cGVyLW5leHQtYnRuIik7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOlR9LG4mJm8uY3JlYXRlRWxlbWVudCgiYnV0dG9uIix7dHlwZToiYnV0dG9uIiwiYXJpYS1sYWJlbCI6TS5wcmV2aW91c1llYXIsb25DbGljazpmdW5jdGlvbigpe3JldHVybiBRKC0xKX0sdGFiSW5kZXg6LTEsY2xhc3NOYW1lOm9lKCkocmUsViYmIiIuY29uY2F0KHJlLCItZGlzYWJsZWQiKSksZGlzYWJsZWQ6VixzdHlsZTpCP1ZpOnt9fSx4KSx0JiZvLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsImFyaWEtbGFiZWwiOk0ucHJldmlvdXNNb250aCxvbkNsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIHEoLTEpfSx0YWJJbmRleDotMSxjbGFzc05hbWU6b2UoKShhZSxBJiYiIi5jb25jYXQoYWUsIi1kaXNhYmxlZCIpKSxkaXNhYmxlZDpBLHN0eWxlOkI/Vmk6e319LGYpLG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdChULCItdmlldyIpfSx1KSx0JiZvLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsImFyaWEtbGFiZWwiOk0ubmV4dE1vbnRoLG9uQ2xpY2s6ZnVuY3Rpb24oKXtyZXR1cm4gcSgxKX0sdGFiSW5kZXg6LTEsY2xhc3NOYW1lOm9lKCkoZWUseiYmIiIuY29uY2F0KGVlLCItZGlzYWJsZWQiKSksZGlzYWJsZWQ6eixzdHlsZTpZP1ZpOnt9fSxoKSxuJiZvLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsImFyaWEtbGFiZWwiOk0ubmV4dFllYXIsb25DbGljazpmdW5jdGlvbigpe3JldHVybiBRKDEpfSx0YWJJbmRleDotMSxjbGFzc05hbWU6b2UoKShzZSxYJiYiIi5jb25jYXQoc2UsIi1kaXNhYmxlZCIpKSxkaXNhYmxlZDpYLHN0eWxlOlk/Vmk6e319LHkpKX12YXIgTG89VG07ZnVuY3Rpb24gQmkoZSl7dmFyIHQ9ZS5wcmVmaXhDbHMsbj1lLnBhbmVsTmFtZSxyPW49PT12b2lkIDA/ImRhdGUiOm4sYT1lLmxvY2FsZSxsPWUuZ2VuZXJhdGVDb25maWcsdT1lLnBpY2tlclZhbHVlLGM9ZS5vblBpY2tlclZhbHVlQ2hhbmdlLGQ9ZS5vbk1vZGVDaGFuZ2Usdj1lLm1vZGUsZj12PT09dm9pZCAwPyJkYXRlIjp2LG09ZS5kaXNhYmxlZERhdGUsaD1lLm9uU2VsZWN0LEM9ZS5vbkhvdmVyLHg9ZS5zaG93V2VlayxwPSIiLmNvbmNhdCh0LCItIikuY29uY2F0KHIsIi1wYW5lbCIpLHk9IiIuY29uY2F0KHQsIi1jZWxsIiksdz1mPT09IndlZWsiLFA9a28oZSxmKSxFPSgwLGouWikoUCwyKSxNPUVbMF0sRD1FWzFdLE49bC5sb2NhbGUuZ2V0V2Vla0ZpcnN0RGF5KGEubG9jYWxlKSxUPWwuc2V0RGF0ZSh1LDEpLFc9d20oYS5sb2NhbGUsbCxUKSxCPWwuZ2V0TW9udGgodSksWT14PT09dm9pZCAwP3c6eCxIPVk/ZnVuY3Rpb24oSil7dmFyIGllPW09PW51bGw/dm9pZCAwOm0oSix7dHlwZToid2VlayJ9KTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJ0ZCIse2tleToid2VlayIsY2xhc3NOYW1lOm9lKCkoeSwiIi5jb25jYXQoeSwiLXdlZWsiKSwoMCxHLlopKHt9LCIiLmNvbmNhdCh5LCItZGlzYWJsZWQiKSxpZSkpLG9uQ2xpY2s6ZnVuY3Rpb24oKXtpZXx8aChKKX0sb25Nb3VzZUVudGVyOmZ1bmN0aW9uKCl7aWV8fEM9PW51bGx8fEMoSil9LG9uTW91c2VMZWF2ZTpmdW5jdGlvbigpe2llfHxDPT1udWxsfHxDKG51bGwpfX0sby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KHksIi1pbm5lciIpfSxsLmxvY2FsZS5nZXRXZWVrKGEubG9jYWxlLEopKSl9Om51bGwsQT1bXSxWPWEuc2hvcnRXZWVrRGF5c3x8KGwubG9jYWxlLmdldFNob3J0V2Vla0RheXM/bC5sb2NhbGUuZ2V0U2hvcnRXZWVrRGF5cyhhLmxvY2FsZSk6W10pO0gmJkEucHVzaChvLmNyZWF0ZUVsZW1lbnQoInRoIix7a2V5OiJlbXB0eSJ9LG8uY3JlYXRlRWxlbWVudCgic3BhbiIse3N0eWxlOnt3aWR0aDowLGhlaWdodDowLHBvc2l0aW9uOiJhYnNvbHV0ZSIsb3ZlcmZsb3c6ImhpZGRlbiIsb3BhY2l0eTowfX0sYS53ZWVrKSkpO2Zvcih2YXIgej0wO3o8Ymw7eis9MSlBLnB1c2goby5jcmVhdGVFbGVtZW50KCJ0aCIse2tleTp6fSxWWyh6K04pJWJsXSkpO3ZhciBYPWZ1bmN0aW9uKGllLGNlKXtyZXR1cm4gbC5hZGREYXRlKGllLGNlKX0scT1mdW5jdGlvbihpZSl7cmV0dXJuIHhyKGllLHtsb2NhbGU6YSxmb3JtYXQ6YS5jZWxsRGF0ZUZvcm1hdCxnZW5lcmF0ZUNvbmZpZzpsfSl9LFE9ZnVuY3Rpb24oaWUpe3ZhciBjZT0oMCxHLlopKCgwLEcuWikoe30sIiIuY29uY2F0KHQsIi1jZWxsLWluLXZpZXciKSxDbChsLGllLHUpKSwiIi5jb25jYXQodCwiLWNlbGwtdG9kYXkiKSx4bChsLGllLEQpKTtyZXR1cm4gY2V9LGFlPWEuc2hvcnRNb250aHN8fChsLmxvY2FsZS5nZXRTaG9ydE1vbnRocz9sLmxvY2FsZS5nZXRTaG9ydE1vbnRocyhhLmxvY2FsZSk6W10pLGVlPW8uY3JlYXRlRWxlbWVudCgiYnV0dG9uIix7dHlwZToiYnV0dG9uIiwiYXJpYS1sYWJlbCI6YS55ZWFyU2VsZWN0LGtleToieWVhciIsb25DbGljazpmdW5jdGlvbigpe2QoInllYXIiLHUpfSx0YWJJbmRleDotMSxjbGFzc05hbWU6IiIuY29uY2F0KHQsIi15ZWFyLWJ0biIpfSx4cih1LHtsb2NhbGU6YSxmb3JtYXQ6YS55ZWFyRm9ybWF0LGdlbmVyYXRlQ29uZmlnOmx9KSkscmU9by5jcmVhdGVFbGVtZW50KCJidXR0b24iLHt0eXBlOiJidXR0b24iLCJhcmlhLWxhYmVsIjphLm1vbnRoU2VsZWN0LGtleToibW9udGgiLG9uQ2xpY2s6ZnVuY3Rpb24oKXtkKCJtb250aCIsdSl9LHRhYkluZGV4Oi0xLGNsYXNzTmFtZToiIi5jb25jYXQodCwiLW1vbnRoLWJ0biIpfSxhLm1vbnRoRm9ybWF0P3hyKHUse2xvY2FsZTphLGZvcm1hdDphLm1vbnRoRm9ybWF0LGdlbmVyYXRlQ29uZmlnOmx9KTphZVtCXSksc2U9YS5tb250aEJlZm9yZVllYXI/W3JlLGVlXTpbZWUscmVdO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoT28uUHJvdmlkZXIse3ZhbHVlOk19LG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOm9lKCkocCx4JiYiIi5jb25jYXQocCwiLXNob3ctd2VlayIpKX0sby5jcmVhdGVFbGVtZW50KExvLHtvZmZzZXQ6ZnVuY3Rpb24oaWUpe3JldHVybiBsLmFkZE1vbnRoKHUsaWUpfSxzdXBlck9mZnNldDpmdW5jdGlvbihpZSl7cmV0dXJuIGwuYWRkWWVhcih1LGllKX0sb25DaGFuZ2U6YyxnZXRTdGFydDpmdW5jdGlvbihpZSl7cmV0dXJuIGwuc2V0RGF0ZShpZSwxKX0sZ2V0RW5kOmZ1bmN0aW9uKGllKXt2YXIgY2U9bC5zZXREYXRlKGllLDEpO3JldHVybiBjZT1sLmFkZE1vbnRoKGNlLDEpLGwuYWRkRGF0ZShjZSwtMSl9fSxzZSksby5jcmVhdGVFbGVtZW50KGZpLCgwLEZlLlopKHt0aXRsZUZvcm1hdDphLmZpZWxkRGF0ZUZvcm1hdH0sZSx7Y29sTnVtOmJsLHJvd051bTo2LGJhc2VEYXRlOlcsaGVhZGVyQ2VsbHM6QSxnZXRDZWxsRGF0ZTpYLGdldENlbGxUZXh0OnEsZ2V0Q2VsbENsYXNzTmFtZTpRLHByZWZpeENvbHVtbjpILGNlbGxTZWxlY3Rpb246IXd9KSkpKX12YXIgam09aSg1MTEwKSxBbT0xLzM7ZnVuY3Rpb24gSG0oZSx0KXt2YXIgbj1vLnVzZVJlZighMSkscj1vLnVzZVJlZihudWxsKSxhPW8udXNlUmVmKG51bGwpLGw9ZnVuY3Rpb24oKXtyZXR1cm4gbi5jdXJyZW50fSx1PWZ1bmN0aW9uKCl7Sm4uWi5jYW5jZWwoci5jdXJyZW50KSxuLmN1cnJlbnQ9ITF9LGM9by51c2VSZWYoKSxkPWZ1bmN0aW9uKCl7dmFyIG09ZS5jdXJyZW50O2lmKGEuY3VycmVudD1udWxsLGMuY3VycmVudD0wLG0pe3ZhciBoPW0ucXVlcnlTZWxlY3RvcignW2RhdGEtdmFsdWU9IicuY29uY2F0KHQsJyJdJykpLEM9bS5xdWVyeVNlbGVjdG9yKCJsaSIpLHg9ZnVuY3Rpb24gcCgpe3UoKSxuLmN1cnJlbnQ9ITAsYy5jdXJyZW50Kz0xO3ZhciB5PW0uc2Nyb2xsVG9wLHc9Qy5vZmZzZXRUb3AsUD1oLm9mZnNldFRvcCxFPVAtdztpZihQPT09MCYmaCE9PUN8fCEoMCxqbS5aKShtKSl7Yy5jdXJyZW50PD01JiYoci5jdXJyZW50PSgwLEpuLlopKHApKTtyZXR1cm59dmFyIE09eSsoRS15KSpBbSxEPU1hdGguYWJzKEUtTSk7aWYoYS5jdXJyZW50IT09bnVsbCYmYS5jdXJyZW50PEQpe3UoKTtyZXR1cm59aWYoYS5jdXJyZW50PUQsRDw9MSl7bS5zY3JvbGxUb3A9RSx1KCk7cmV0dXJufW0uc2Nyb2xsVG9wPU0sci5jdXJyZW50PSgwLEpuLlopKHApfTtoJiZDJiZ4KCl9fSx2PSgwLGx0LnpYKShkKTtyZXR1cm5bdix1LGxdfXZhciBrbT0zMDA7ZnVuY3Rpb24gTG0oZSl7cmV0dXJuIGUubWFwKGZ1bmN0aW9uKHQpe3ZhciBuPXQudmFsdWUscj10LmxhYmVsLGE9dC5kaXNhYmxlZDtyZXR1cm5bbixyLGFdLmpvaW4oIiwiKX0pLmpvaW4oIjsiKX1mdW5jdGlvbiB2aShlKXt2YXIgdD1lLnVuaXRzLG49ZS52YWx1ZSxyPWUub3B0aW9uYWxWYWx1ZSxhPWUudHlwZSxsPWUub25DaGFuZ2UsdT1lLm9uSG92ZXIsYz1lLm9uRGJsQ2xpY2ssZD1lLmNoYW5nZU9uU2Nyb2xsLHY9TGkoKSxmPXYucHJlZml4Q2xzLG09di5jZWxsUmVuZGVyLGg9di5ub3csQz12LmxvY2FsZSx4PSIiLmNvbmNhdChmLCItdGltZS1wYW5lbCIpLHA9IiIuY29uY2F0KGYsIi10aW1lLXBhbmVsLWNlbGwiKSx5PW8udXNlUmVmKG51bGwpLHc9by51c2VSZWYoKSxQPWZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHcuY3VycmVudCl9LEU9SG0oeSxuIT1udWxsP246ciksTT0oMCxqLlopKEUsMyksRD1NWzBdLE49TVsxXSxUPU1bMl07KDAsV24uWikoZnVuY3Rpb24oKXtyZXR1cm4gRCgpLFAoKSxmdW5jdGlvbigpe04oKSxQKCl9fSxbbixyLExtKHQpXSk7dmFyIFc9ZnVuY3Rpb24oSCl7UCgpO3ZhciBBPUgudGFyZ2V0OyFUKCkmJmQmJih3LmN1cnJlbnQ9c2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBWPXkuY3VycmVudCx6PVYucXVlcnlTZWxlY3RvcigibGkiKS5vZmZzZXRUb3AsWD1BcnJheS5mcm9tKFYucXVlcnlTZWxlY3RvckFsbCgibGkiKSkscT1YLm1hcChmdW5jdGlvbihzZSl7cmV0dXJuIHNlLm9mZnNldFRvcC16fSksUT1xLm1hcChmdW5jdGlvbihzZSxKKXtyZXR1cm4gdFtKXS5kaXNhYmxlZD9OdW1iZXIuTUFYX1NBRkVfSU5URUdFUjpNYXRoLmFicyhzZS1BLnNjcm9sbFRvcCl9KSxhZT1NYXRoLm1pbi5hcHBseShNYXRoLCgwLGxlLlopKFEpKSxlZT1RLmZpbmRJbmRleChmdW5jdGlvbihzZSl7cmV0dXJuIHNlPT09YWV9KSxyZT10W2VlXTtyZSYmIXJlLmRpc2FibGVkJiZsKHJlLnZhbHVlKX0sa20pKX0sQj0iIi5jb25jYXQoeCwiLWNvbHVtbiIpO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoInVsIix7Y2xhc3NOYW1lOkIscmVmOnksImRhdGEtdHlwZSI6YSxvblNjcm9sbDpXfSx0Lm1hcChmdW5jdGlvbihZKXt2YXIgSD1ZLmxhYmVsLEE9WS52YWx1ZSxWPVkuZGlzYWJsZWQsej1vLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiIi5jb25jYXQocCwiLWlubmVyIil9LEgpO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoImxpIix7a2V5OkEsY2xhc3NOYW1lOm9lKCkocCwoMCxHLlopKCgwLEcuWikoe30sIiIuY29uY2F0KHAsIi1zZWxlY3RlZCIpLG49PT1BKSwiIi5jb25jYXQocCwiLWRpc2FibGVkIiksVikpLG9uQ2xpY2s6ZnVuY3Rpb24oKXtWfHxsKEEpfSxvbkRvdWJsZUNsaWNrOmZ1bmN0aW9uKCl7IVYmJmMmJmMoKX0sb25Nb3VzZUVudGVyOmZ1bmN0aW9uKCl7dShBKX0sb25Nb3VzZUxlYXZlOmZ1bmN0aW9uKCl7dShudWxsKX0sImRhdGEtdmFsdWUiOkF9LG0/bShBLHtwcmVmaXhDbHM6ZixvcmlnaW5Ob2RlOnosdG9kYXk6aCx0eXBlOiJ0aW1lIixzdWJUeXBlOmEsbG9jYWxlOkN9KTp6KX0pKX1mdW5jdGlvbiBpbyhlKXtyZXR1cm4gZTwxMn1mdW5jdGlvbiBWbShlKXt2YXIgdD1lLnNob3dIb3VyLG49ZS5zaG93TWludXRlLHI9ZS5zaG93U2Vjb25kLGE9ZS5zaG93TWlsbGlzZWNvbmQsbD1lLnVzZTEySG91cnMsdT1lLmNoYW5nZU9uU2Nyb2xsLGM9TGkoKSxkPWMucHJlZml4Q2xzLHY9Yy52YWx1ZXMsZj1jLmdlbmVyYXRlQ29uZmlnLG09Yy5sb2NhbGUsaD1jLm9uU2VsZWN0LEM9Yy5vbkhvdmVyLHg9Qz09PXZvaWQgMD9mdW5jdGlvbigpe306QyxwPWMucGlja2VyVmFsdWUseT0odj09bnVsbD92b2lkIDA6dlswXSl8fG51bGwsdz1vLnVzZUNvbnRleHQob28pLFA9dy5vbkNlbGxEYmxDbGljayxFPXdsKGYsZSx5KSxNPSgwLGouWikoRSw1KSxEPU1bMF0sTj1NWzFdLFQ9TVsyXSxXPU1bM10sQj1NWzRdLFk9ZnVuY3Rpb24oVWUpe3ZhciBUbj15JiZmW1VlXSh5KSxkbj1wJiZmW1VlXShwKTtyZXR1cm5bVG4sZG5dfSxIPVkoImdldEhvdXIiKSxBPSgwLGouWikoSCwyKSxWPUFbMF0sej1BWzFdLFg9WSgiZ2V0TWludXRlIikscT0oMCxqLlopKFgsMiksUT1xWzBdLGFlPXFbMV0sZWU9WSgiZ2V0U2Vjb25kIikscmU9KDAsai5aKShlZSwyKSxzZT1yZVswXSxKPXJlWzFdLGllPVkoImdldE1pbGxpc2Vjb25kIiksY2U9KDAsai5aKShpZSwyKSx4ZT1jZVswXSx1ZT1jZVsxXSx5ZT1WPT09bnVsbD9udWxsOmlvKFYpPyJhbSI6InBtIixQZT1vLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4gbD9pbyhWKT9OLmZpbHRlcihmdW5jdGlvbihNZSl7cmV0dXJuIGlvKE1lLnZhbHVlKX0pOk4uZmlsdGVyKGZ1bmN0aW9uKE1lKXtyZXR1cm4haW8oTWUudmFsdWUpfSk6Tn0sW1YsTixsXSksZ2U9ZnVuY3Rpb24oVWUsVG4pe3ZhciBkbixLbj1VZS5maWx0ZXIoZnVuY3Rpb24oTW4pe3JldHVybiFNbi5kaXNhYmxlZH0pO3JldHVybiBUbiE9bnVsbD9UbjpLbj09bnVsbHx8KGRuPUtuWzBdKT09PW51bGx8fGRuPT09dm9pZCAwP3ZvaWQgMDpkbi52YWx1ZX0sUmU9Z2UoTixWKSxTZT1vLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4gVChSZSl9LFtULFJlXSksSWU9Z2UoU2UsUSksWmU9by51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJuIFcoUmUsSWUpfSxbVyxSZSxJZV0pLENlPWdlKFplLHNlKSxFZT1vLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4gQihSZSxJZSxDZSl9LFtCLFJlLEllLENlXSkscGU9Z2UoRWUseGUpLEplPW8udXNlTWVtbyhmdW5jdGlvbigpe2lmKCFsKXJldHVybltdO3ZhciBNZT1mLmdldE5vdygpLFVlPWYuc2V0SG91cihNZSw2KSxUbj1mLnNldEhvdXIoTWUsMTgpLGRuPWZ1bmN0aW9uKE1uLHh0KXt2YXIgU3Q9bS5jZWxsTWVyaWRpZW1Gb3JtYXQ7cmV0dXJuIFN0P3hyKE1uLHtnZW5lcmF0ZUNvbmZpZzpmLGxvY2FsZTptLGZvcm1hdDpTdH0pOnh0fTtyZXR1cm5be2xhYmVsOmRuKFVlLCJBTSIpLHZhbHVlOiJhbSIsZGlzYWJsZWQ6Ti5ldmVyeShmdW5jdGlvbihLbil7cmV0dXJuIEtuLmRpc2FibGVkfHwhaW8oS24udmFsdWUpfSl9LHtsYWJlbDpkbihUbiwiUE0iKSx2YWx1ZToicG0iLGRpc2FibGVkOk4uZXZlcnkoZnVuY3Rpb24oS24pe3JldHVybiBLbi5kaXNhYmxlZHx8aW8oS24udmFsdWUpfSl9XX0sW04sbCxmLG1dKSxCZT1mdW5jdGlvbihVZSl7dmFyIFRuPUQoVWUpO2goVG4pfSx2dD1vLnVzZU1lbW8oZnVuY3Rpb24oKXt2YXIgTWU9eXx8cHx8Zi5nZXROb3coKSxVZT1mdW5jdGlvbihkbil7cmV0dXJuIGRuIT1udWxsfTtyZXR1cm4gVWUoVik/KE1lPWYuc2V0SG91cihNZSxWKSxNZT1mLnNldE1pbnV0ZShNZSxRKSxNZT1mLnNldFNlY29uZChNZSxzZSksTWU9Zi5zZXRNaWxsaXNlY29uZChNZSx4ZSkpOlVlKHopPyhNZT1mLnNldEhvdXIoTWUseiksTWU9Zi5zZXRNaW51dGUoTWUsYWUpLE1lPWYuc2V0U2Vjb25kKE1lLEopLE1lPWYuc2V0TWlsbGlzZWNvbmQoTWUsdWUpKTpVZShSZSkmJihNZT1mLnNldEhvdXIoTWUsUmUpLE1lPWYuc2V0TWludXRlKE1lLEllKSxNZT1mLnNldFNlY29uZChNZSxDZSksTWU9Zi5zZXRNaWxsaXNlY29uZChNZSxwZSkpLE1lfSxbeSxwLFYsUSxzZSx4ZSxSZSxJZSxDZSxwZSx6LGFlLEosdWUsZl0pLHl0PWZ1bmN0aW9uKFVlLFRuKXtyZXR1cm4gVWU9PT1udWxsP251bGw6ZltUbl0odnQsVWUpfSxzdD1mdW5jdGlvbihVZSl7cmV0dXJuIHl0KFVlLCJzZXRIb3VyIil9LG50PWZ1bmN0aW9uKFVlKXtyZXR1cm4geXQoVWUsInNldE1pbnV0ZSIpfSxJdD1mdW5jdGlvbihVZSl7cmV0dXJuIHl0KFVlLCJzZXRTZWNvbmQiKX0sY3Q9ZnVuY3Rpb24oVWUpe3JldHVybiB5dChVZSwic2V0TWlsbGlzZWNvbmQiKX0sWnQ9ZnVuY3Rpb24oVWUpe3JldHVybiBVZT09PW51bGw/bnVsbDpVZT09PSJhbSImJiFpbyhWKT9mLnNldEhvdXIodnQsVi0xMik6VWU9PT0icG0iJiZpbyhWKT9mLnNldEhvdXIodnQsVisxMik6dnR9LGJ0PWZ1bmN0aW9uKFVlKXtCZShzdChVZSkpfSxrdD1mdW5jdGlvbihVZSl7QmUobnQoVWUpKX0sQWU9ZnVuY3Rpb24oVWUpe0JlKEl0KFVlKSl9LHFlPWZ1bmN0aW9uKFVlKXtCZShjdChVZSkpfSxldD1mdW5jdGlvbihVZSl7QmUoWnQoVWUpKX0sT3Q9ZnVuY3Rpb24oVWUpe3goc3QoVWUpKX0sR2U9ZnVuY3Rpb24oVWUpe3gobnQoVWUpKX0sbm49ZnVuY3Rpb24oVWUpe3goSXQoVWUpKX0saXQ9ZnVuY3Rpb24oVWUpe3goY3QoVWUpKX0sVmU9ZnVuY3Rpb24oVWUpe3goWnQoVWUpKX0sdXQ9e29uRGJsQ2xpY2s6UCxjaGFuZ2VPblNjcm9sbDp1fTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KGQsIi1jb250ZW50Iil9LHQmJm8uY3JlYXRlRWxlbWVudCh2aSwoMCxGZS5aKSh7dW5pdHM6UGUsdmFsdWU6VixvcHRpb25hbFZhbHVlOnosdHlwZToiaG91ciIsb25DaGFuZ2U6YnQsb25Ib3ZlcjpPdH0sdXQpKSxuJiZvLmNyZWF0ZUVsZW1lbnQodmksKDAsRmUuWikoe3VuaXRzOlNlLHZhbHVlOlEsb3B0aW9uYWxWYWx1ZTphZSx0eXBlOiJtaW51dGUiLG9uQ2hhbmdlOmt0LG9uSG92ZXI6R2V9LHV0KSksciYmby5jcmVhdGVFbGVtZW50KHZpLCgwLEZlLlopKHt1bml0czpaZSx2YWx1ZTpzZSxvcHRpb25hbFZhbHVlOkosdHlwZToic2Vjb25kIixvbkNoYW5nZTpBZSxvbkhvdmVyOm5ufSx1dCkpLGEmJm8uY3JlYXRlRWxlbWVudCh2aSwoMCxGZS5aKSh7dW5pdHM6RWUsdmFsdWU6eGUsb3B0aW9uYWxWYWx1ZTp1ZSx0eXBlOiJtaWxsaXNlY29uZCIsb25DaGFuZ2U6cWUsb25Ib3ZlcjppdH0sdXQpKSxsJiZvLmNyZWF0ZUVsZW1lbnQodmksKDAsRmUuWikoe3VuaXRzOkplLHZhbHVlOnllLHR5cGU6Im1lcmlkaWVtIixvbkNoYW5nZTpldCxvbkhvdmVyOlZlfSx1dCkpKX1mdW5jdGlvbiBDdShlKXt2YXIgdD1lLnByZWZpeENscyxuPWUudmFsdWUscj1lLmxvY2FsZSxhPWUuZ2VuZXJhdGVDb25maWcsbD1lLnNob3dUaW1lLHU9bHx8e30sYz11LmZvcm1hdCxkPSIiLmNvbmNhdCh0LCItdGltZS1wYW5lbCIpLHY9a28oZSwidGltZSIpLGY9KDAsai5aKSh2LDEpLG09ZlswXTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KE9vLlByb3ZpZGVyLHt2YWx1ZTptfSxvLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpvZSgpKGQpfSxvLmNyZWF0ZUVsZW1lbnQoTG8sbnVsbCxuP3hyKG4se2xvY2FsZTpyLGZvcm1hdDpjLGdlbmVyYXRlQ29uZmlnOmF9KToiXHhBMCIpLG8uY3JlYXRlRWxlbWVudChWbSxsKSkpfWZ1bmN0aW9uIEJtKGUpe3ZhciB0PWUucHJlZml4Q2xzLG49ZS5nZW5lcmF0ZUNvbmZpZyxyPWUuc2hvd1RpbWUsYT1lLm9uU2VsZWN0LGw9ZS52YWx1ZSx1PWUucGlja2VyVmFsdWUsYz1lLm9uSG92ZXIsZD0iIi5jb25jYXQodCwiLWRhdGV0aW1lLXBhbmVsIiksdj13bChuLHIpLGY9KDAsai5aKSh2LDEpLG09ZlswXSxoPWZ1bmN0aW9uKHkpe3JldHVybiBsP2ppKG4seSxsKTpqaShuLHksdSl9LEM9ZnVuY3Rpb24oeSl7Yz09bnVsbHx8Yyh5JiZoKHkpKX0seD1mdW5jdGlvbih5KXt2YXIgdz1oKHkpO2EobSh3LHcpKX07cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmR9LG8uY3JlYXRlRWxlbWVudChCaSwoMCxGZS5aKSh7fSxlLHtvblNlbGVjdDp4LG9uSG92ZXI6Q30pKSxvLmNyZWF0ZUVsZW1lbnQoQ3UsZSkpfWZ1bmN0aW9uIFdtKGUpe3ZhciB0PWUucHJlZml4Q2xzLG49ZS5sb2NhbGUscj1lLmdlbmVyYXRlQ29uZmlnLGE9ZS5waWNrZXJWYWx1ZSxsPWUuZGlzYWJsZWREYXRlLHU9ZS5vblBpY2tlclZhbHVlQ2hhbmdlLGM9IiIuY29uY2F0KHQsIi1kZWNhZGUtcGFuZWwiKSxkPWtvKGUsImRlY2FkZSIpLHY9KDAsai5aKShkLDEpLGY9dlswXSxtPWZ1bmN0aW9uKE4pe3ZhciBUPU1hdGguZmxvb3Ioci5nZXRZZWFyKE4pLzEwMCkqMTAwO3JldHVybiByLnNldFllYXIoTixUKX0saD1mdW5jdGlvbihOKXt2YXIgVD1tKE4pO3JldHVybiByLmFkZFllYXIoVCw5OSl9LEM9bShhKSx4PWgoYSkscD1yLmFkZFllYXIoQywtMTApLHk9ZnVuY3Rpb24oTixUKXtyZXR1cm4gci5hZGRZZWFyKE4sVCoxMCl9LHc9ZnVuY3Rpb24oTil7dmFyIFQ9bi5jZWxsWWVhckZvcm1hdCxXPXhyKE4se2xvY2FsZTpuLGZvcm1hdDpULGdlbmVyYXRlQ29uZmlnOnJ9KSxCPXhyKHIuYWRkWWVhcihOLDkpLHtsb2NhbGU6bixmb3JtYXQ6VCxnZW5lcmF0ZUNvbmZpZzpyfSk7cmV0dXJuIiIuY29uY2F0KFcsIi0iKS5jb25jYXQoQil9LFA9ZnVuY3Rpb24oTil7cmV0dXJuKDAsRy5aKSh7fSwiIi5jb25jYXQodCwiLWNlbGwtaW4tdmlldyIpLHlsKHIsTixDKXx8eWwocixOLHgpfHxGaShyLEMseCxOKSl9LEU9bD9mdW5jdGlvbihELE4pe3ZhciBUPXIuc2V0RGF0ZShELDEpLFc9ci5zZXRNb250aChULDApLEI9ci5zZXRZZWFyKFcsTWF0aC5mbG9vcihyLmdldFllYXIoVykvMTApKjEwKSxZPXIuYWRkWWVhcihCLDEwKSxIPXIuYWRkRGF0ZShZLC0xKTtyZXR1cm4gbChCLE4pJiZsKEgsTil9Om51bGwsTT0iIi5jb25jYXQoeHIoQyx7bG9jYWxlOm4sZm9ybWF0Om4ueWVhckZvcm1hdCxnZW5lcmF0ZUNvbmZpZzpyfSksIi0iKS5jb25jYXQoeHIoeCx7bG9jYWxlOm4sZm9ybWF0Om4ueWVhckZvcm1hdCxnZW5lcmF0ZUNvbmZpZzpyfSkpO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoT28uUHJvdmlkZXIse3ZhbHVlOmZ9LG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmN9LG8uY3JlYXRlRWxlbWVudChMbyx7c3VwZXJPZmZzZXQ6ZnVuY3Rpb24oTil7cmV0dXJuIHIuYWRkWWVhcihhLE4qMTAwKX0sb25DaGFuZ2U6dSxnZXRTdGFydDptLGdldEVuZDpofSxNKSxvLmNyZWF0ZUVsZW1lbnQoZmksKDAsRmUuWikoe30sZSx7ZGlzYWJsZWREYXRlOkUsY29sTnVtOjMscm93TnVtOjQsYmFzZURhdGU6cCxnZXRDZWxsRGF0ZTp5LGdldENlbGxUZXh0OncsZ2V0Q2VsbENsYXNzTmFtZTpQfSkpKSl9ZnVuY3Rpb24gem0oZSl7dmFyIHQ9ZS5wcmVmaXhDbHMsbj1lLmxvY2FsZSxyPWUuZ2VuZXJhdGVDb25maWcsYT1lLnBpY2tlclZhbHVlLGw9ZS5kaXNhYmxlZERhdGUsdT1lLm9uUGlja2VyVmFsdWVDaGFuZ2UsYz1lLm9uTW9kZUNoYW5nZSxkPSIiLmNvbmNhdCh0LCItbW9udGgtcGFuZWwiKSx2PWtvKGUsIm1vbnRoIiksZj0oMCxqLlopKHYsMSksbT1mWzBdLGg9ci5zZXRNb250aChhLDApLEM9bi5zaG9ydE1vbnRoc3x8KHIubG9jYWxlLmdldFNob3J0TW9udGhzP3IubG9jYWxlLmdldFNob3J0TW9udGhzKG4ubG9jYWxlKTpbXSkseD1mdW5jdGlvbihNLEQpe3JldHVybiByLmFkZE1vbnRoKE0sRCl9LHA9ZnVuY3Rpb24oTSl7dmFyIEQ9ci5nZXRNb250aChNKTtyZXR1cm4gbi5tb250aEZvcm1hdD94cihNLHtsb2NhbGU6bixmb3JtYXQ6bi5tb250aEZvcm1hdCxnZW5lcmF0ZUNvbmZpZzpyfSk6Q1tEXX0seT1mdW5jdGlvbigpe3JldHVybigwLEcuWikoe30sIiIuY29uY2F0KHQsIi1jZWxsLWluLXZpZXciKSwhMCl9LHc9bD9mdW5jdGlvbihFLE0pe3ZhciBEPXIuc2V0RGF0ZShFLDEpLE49ci5zZXRNb250aChELHIuZ2V0TW9udGgoRCkrMSksVD1yLmFkZERhdGUoTiwtMSk7cmV0dXJuIGwoRCxNKSYmbChULE0pfTpudWxsLFA9by5jcmVhdGVFbGVtZW50KCJidXR0b24iLHt0eXBlOiJidXR0b24iLGtleToieWVhciIsImFyaWEtbGFiZWwiOm4ueWVhclNlbGVjdCxvbkNsaWNrOmZ1bmN0aW9uKCl7YygieWVhciIpfSx0YWJJbmRleDotMSxjbGFzc05hbWU6IiIuY29uY2F0KHQsIi15ZWFyLWJ0biIpfSx4cihhLHtsb2NhbGU6bixmb3JtYXQ6bi55ZWFyRm9ybWF0LGdlbmVyYXRlQ29uZmlnOnJ9KSk7cmV0dXJuIG8uY3JlYXRlRWxlbWVudChPby5Qcm92aWRlcix7dmFsdWU6bX0sby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ZH0sby5jcmVhdGVFbGVtZW50KExvLHtzdXBlck9mZnNldDpmdW5jdGlvbihNKXtyZXR1cm4gci5hZGRZZWFyKGEsTSl9LG9uQ2hhbmdlOnUsZ2V0U3RhcnQ6ZnVuY3Rpb24oTSl7cmV0dXJuIHIuc2V0TW9udGgoTSwwKX0sZ2V0RW5kOmZ1bmN0aW9uKE0pe3JldHVybiByLnNldE1vbnRoKE0sMTEpfX0sUCksby5jcmVhdGVFbGVtZW50KGZpLCgwLEZlLlopKHt9LGUse2Rpc2FibGVkRGF0ZTp3LHRpdGxlRm9ybWF0Om4uZmllbGRNb250aEZvcm1hdCxjb2xOdW06Myxyb3dOdW06NCxiYXNlRGF0ZTpoLGdldENlbGxEYXRlOngsZ2V0Q2VsbFRleHQ6cCxnZXRDZWxsQ2xhc3NOYW1lOnl9KSkpKX1mdW5jdGlvbiBLbShlKXt2YXIgdD1lLnByZWZpeENscyxuPWUubG9jYWxlLHI9ZS5nZW5lcmF0ZUNvbmZpZyxhPWUucGlja2VyVmFsdWUsbD1lLm9uUGlja2VyVmFsdWVDaGFuZ2UsdT1lLm9uTW9kZUNoYW5nZSxjPSIiLmNvbmNhdCh0LCItcXVhcnRlci1wYW5lbCIpLGQ9a28oZSwicXVhcnRlciIpLHY9KDAsai5aKShkLDEpLGY9dlswXSxtPXIuc2V0TW9udGgoYSwwKSxoPWZ1bmN0aW9uKHcsUCl7cmV0dXJuIHIuYWRkTW9udGgodyxQKjMpfSxDPWZ1bmN0aW9uKHcpe3JldHVybiB4cih3LHtsb2NhbGU6bixmb3JtYXQ6bi5jZWxsUXVhcnRlckZvcm1hdCxnZW5lcmF0ZUNvbmZpZzpyfSl9LHg9ZnVuY3Rpb24oKXtyZXR1cm4oMCxHLlopKHt9LCIiLmNvbmNhdCh0LCItY2VsbC1pbi12aWV3IiksITApfSxwPW8uY3JlYXRlRWxlbWVudCgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixrZXk6InllYXIiLCJhcmlhLWxhYmVsIjpuLnllYXJTZWxlY3Qsb25DbGljazpmdW5jdGlvbigpe3UoInllYXIiKX0sdGFiSW5kZXg6LTEsY2xhc3NOYW1lOiIiLmNvbmNhdCh0LCIteWVhci1idG4iKX0seHIoYSx7bG9jYWxlOm4sZm9ybWF0Om4ueWVhckZvcm1hdCxnZW5lcmF0ZUNvbmZpZzpyfSkpO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoT28uUHJvdmlkZXIse3ZhbHVlOmZ9LG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmN9LG8uY3JlYXRlRWxlbWVudChMbyx7c3VwZXJPZmZzZXQ6ZnVuY3Rpb24odyl7cmV0dXJuIHIuYWRkWWVhcihhLHcpfSxvbkNoYW5nZTpsLGdldFN0YXJ0OmZ1bmN0aW9uKHcpe3JldHVybiByLnNldE1vbnRoKHcsMCl9LGdldEVuZDpmdW5jdGlvbih3KXtyZXR1cm4gci5zZXRNb250aCh3LDExKX19LHApLG8uY3JlYXRlRWxlbWVudChmaSwoMCxGZS5aKSh7fSxlLHt0aXRsZUZvcm1hdDpuLmZpZWxkUXVhcnRlckZvcm1hdCxjb2xOdW06NCxyb3dOdW06MSxiYXNlRGF0ZTptLGdldENlbGxEYXRlOmgsZ2V0Q2VsbFRleHQ6QyxnZXRDZWxsQ2xhc3NOYW1lOnh9KSkpKX1mdW5jdGlvbiBZbShlKXt2YXIgdD1lLnByZWZpeENscyxuPWUuZ2VuZXJhdGVDb25maWcscj1lLmxvY2FsZSxhPWUudmFsdWUsbD1lLmhvdmVyVmFsdWUsdT1lLmhvdmVyUmFuZ2VWYWx1ZSxjPXIubG9jYWxlLGQ9IiIuY29uY2F0KHQsIi13ZWVrLXBhbmVsLXJvdyIpLHY9ZnVuY3Rpb24obSl7dmFyIGg9e307aWYodSl7dmFyIEM9KDAsai5aKSh1LDIpLHg9Q1swXSxwPUNbMV0seT1jaShuLGMseCxtKSx3PWNpKG4sYyxwLG0pO2hbIiIuY29uY2F0KGQsIi1yYW5nZS1zdGFydCIpXT15LGhbIiIuY29uY2F0KGQsIi1yYW5nZS1lbmQiKV09dyxoWyIiLmNvbmNhdChkLCItcmFuZ2UtaG92ZXIiKV09IXkmJiF3JiZGaShuLHgscCxtKX1yZXR1cm4gbCYmKGhbIiIuY29uY2F0KGQsIi1ob3ZlciIpXT1sLnNvbWUoZnVuY3Rpb24oUCl7cmV0dXJuIGNpKG4sYyxtLFApfSkpLG9lKCkoZCwoMCxHLlopKHt9LCIiLmNvbmNhdChkLCItc2VsZWN0ZWQiKSwhdSYmY2kobixjLGEsbSkpLGgpfTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KEJpLCgwLEZlLlopKHt9LGUse21vZGU6IndlZWsiLHBhbmVsTmFtZToid2VlayIscm93Q2xhc3NOYW1lOnZ9KSl9ZnVuY3Rpb24gVW0oZSl7dmFyIHQ9ZS5wcmVmaXhDbHMsbj1lLmxvY2FsZSxyPWUuZ2VuZXJhdGVDb25maWcsYT1lLnBpY2tlclZhbHVlLGw9ZS5kaXNhYmxlZERhdGUsdT1lLm9uUGlja2VyVmFsdWVDaGFuZ2UsYz1lLm9uTW9kZUNoYW5nZSxkPSIiLmNvbmNhdCh0LCIteWVhci1wYW5lbCIpLHY9a28oZSwieWVhciIpLGY9KDAsai5aKSh2LDEpLG09ZlswXSxoPWZ1bmN0aW9uKFQpe3ZhciBXPU1hdGguZmxvb3Ioci5nZXRZZWFyKFQpLzEwKSoxMDtyZXR1cm4gci5zZXRZZWFyKFQsVyl9LEM9ZnVuY3Rpb24oVCl7dmFyIFc9aChUKTtyZXR1cm4gci5hZGRZZWFyKFcsOSl9LHg9aChhKSxwPUMoYSkseT1yLmFkZFllYXIoeCwtMSksdz1mdW5jdGlvbihULFcpe3JldHVybiByLmFkZFllYXIoVCxXKX0sUD1mdW5jdGlvbihUKXtyZXR1cm4geHIoVCx7bG9jYWxlOm4sZm9ybWF0Om4uY2VsbFllYXJGb3JtYXQsZ2VuZXJhdGVDb25maWc6cn0pfSxFPWZ1bmN0aW9uKFQpe3JldHVybigwLEcuWikoe30sIiIuY29uY2F0KHQsIi1jZWxsLWluLXZpZXciKSx3byhyLFQseCl8fHdvKHIsVCxwKXx8Rmkocix4LHAsVCkpfSxNPWw/ZnVuY3Rpb24oTixUKXt2YXIgVz1yLnNldE1vbnRoKE4sMCksQj1yLnNldERhdGUoVywxKSxZPXIuYWRkWWVhcihCLDEpLEg9ci5hZGREYXRlKFksLTEpO3JldHVybiBsKEIsVCkmJmwoSCxUKX06bnVsbCxEPW8uY3JlYXRlRWxlbWVudCgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixrZXk6ImRlY2FkZSIsImFyaWEtbGFiZWwiOm4uZGVjYWRlU2VsZWN0LG9uQ2xpY2s6ZnVuY3Rpb24oKXtjKCJkZWNhZGUiKX0sdGFiSW5kZXg6LTEsY2xhc3NOYW1lOiIiLmNvbmNhdCh0LCItZGVjYWRlLWJ0biIpfSx4cih4LHtsb2NhbGU6bixmb3JtYXQ6bi55ZWFyRm9ybWF0LGdlbmVyYXRlQ29uZmlnOnJ9KSwiLSIseHIocCx7bG9jYWxlOm4sZm9ybWF0Om4ueWVhckZvcm1hdCxnZW5lcmF0ZUNvbmZpZzpyfSkpO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoT28uUHJvdmlkZXIse3ZhbHVlOm19LG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmR9LG8uY3JlYXRlRWxlbWVudChMbyx7c3VwZXJPZmZzZXQ6ZnVuY3Rpb24oVCl7cmV0dXJuIHIuYWRkWWVhcihhLFQqMTApfSxvbkNoYW5nZTp1LGdldFN0YXJ0OmgsZ2V0RW5kOkN9LEQpLG8uY3JlYXRlRWxlbWVudChmaSwoMCxGZS5aKSh7fSxlLHtkaXNhYmxlZERhdGU6TSx0aXRsZUZvcm1hdDpuLmZpZWxkWWVhckZvcm1hdCxjb2xOdW06Myxyb3dOdW06NCxiYXNlRGF0ZTp5LGdldENlbGxEYXRlOncsZ2V0Q2VsbFRleHQ6UCxnZXRDZWxsQ2xhc3NOYW1lOkV9KSkpKX12YXIgWG09e2RhdGU6QmksZGF0ZXRpbWU6Qm0sd2VlazpZbSxtb250aDp6bSxxdWFydGVyOkttLHllYXI6VW0sZGVjYWRlOldtLHRpbWU6Q3V9O2Z1bmN0aW9uIEdtKGUsdCl7dmFyIG4scj1lLmxvY2FsZSxhPWUuZ2VuZXJhdGVDb25maWcsbD1lLmRpcmVjdGlvbix1PWUucHJlZml4Q2xzLGM9ZS50YWJJbmRleCxkPWM9PT12b2lkIDA/MDpjLHY9ZS5tdWx0aXBsZSxmPWUuZGVmYXVsdFZhbHVlLG09ZS52YWx1ZSxoPWUub25DaGFuZ2UsQz1lLm9uU2VsZWN0LHg9ZS5kZWZhdWx0UGlja2VyVmFsdWUscD1lLnBpY2tlclZhbHVlLHk9ZS5vblBpY2tlclZhbHVlQ2hhbmdlLHc9ZS5tb2RlLFA9ZS5vblBhbmVsQ2hhbmdlLEU9ZS5waWNrZXIsTT1FPT09dm9pZCAwPyJkYXRlIjpFLEQ9ZS5zaG93VGltZSxOPWUuaG92ZXJWYWx1ZSxUPWUuaG92ZXJSYW5nZVZhbHVlLFc9ZS5jZWxsUmVuZGVyLEI9ZS5kYXRlUmVuZGVyLFk9ZS5tb250aENlbGxSZW5kZXIsSD1lLmNvbXBvbmVudHMsQT1IPT09dm9pZCAwP3t9OkgsVj1lLmhpZGVIZWFkZXIsej0oKG49by51c2VDb250ZXh0KENhKSk9PT1udWxsfHxuPT09dm9pZCAwP3ZvaWQgMDpuLnByZWZpeENscyl8fHV8fCJyYy1waWNrZXIiLFg9by51c2VSZWYoKTtvLnVzZUltcGVyYXRpdmVIYW5kbGUodCxmdW5jdGlvbigpe3JldHVybntuYXRpdmVFbGVtZW50OlguY3VycmVudH19KTt2YXIgcT10dShlKSxRPSgwLGouWikocSw0KSxhZT1RWzBdLGVlPVFbMV0scmU9UVsyXSxzZT1RWzNdLEo9cXMocixlZSksaWU9TT09PSJkYXRlIiYmRD8iZGF0ZXRpbWUiOk0sY2U9by51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJuIG51KGllLHJlLHNlLGFlLEopfSxbaWUscmUsc2UsYWUsSl0pLHhlPWEuZ2V0Tm93KCksdWU9KDAsbHQuQzgpKE0se3ZhbHVlOncscG9zdFN0YXRlOmZ1bmN0aW9uKFZlKXtyZXR1cm4gVmV8fCJkYXRlIn19KSx5ZT0oMCxqLlopKHVlLDIpLFBlPXllWzBdLGdlPXllWzFdLFJlPVBlPT09ImRhdGUiJiZjZT8iZGF0ZXRpbWUiOlBlLFNlPXl1KGEscixpZSksSWU9KDAsbHQuQzgpKGYse3ZhbHVlOm19KSxaZT0oMCxqLlopKEllLDIpLENlPVplWzBdLEVlPVplWzFdLHBlPW8udXNlTWVtbyhmdW5jdGlvbigpe3ZhciBpdD1QbyhDZSkuZmlsdGVyKGZ1bmN0aW9uKFZlKXtyZXR1cm4gVmV9KTtyZXR1cm4gdj9pdDppdC5zbGljZSgwLDEpfSxbQ2Usdl0pLEplPSgwLGx0LnpYKShmdW5jdGlvbihpdCl7RWUoaXQpLGgmJihpdD09PW51bGx8fHBlLmxlbmd0aCE9PWl0Lmxlbmd0aHx8cGUuc29tZShmdW5jdGlvbihWZSx1dCl7cmV0dXJuIWtyKGEscixWZSxpdFt1dF0saWUpfSkpJiYoaD09bnVsbHx8aCh2P2l0Oml0WzBdKSl9KSxCZT0oMCxsdC56WCkoZnVuY3Rpb24oaXQpe2lmKEM9PW51bGx8fEMoaXQpLFBlPT09TSl7dmFyIFZlPXY/U2UocGUsaXQpOltpdF07SmUoVmUpfX0pLHZ0PSgwLGx0LkM4KSh4fHxwZVswXXx8eGUse3ZhbHVlOnB9KSx5dD0oMCxqLlopKHZ0LDIpLHN0PXl0WzBdLG50PXl0WzFdO28udXNlRWZmZWN0KGZ1bmN0aW9uKCl7cGVbMF0mJiFwJiZudChwZVswXSl9LFtwZVswXV0pO3ZhciBJdD1mdW5jdGlvbihWZSx1dCl7UD09bnVsbHx8UChWZXx8cCx1dHx8UGUpfSxjdD1mdW5jdGlvbihWZSl7dmFyIHV0PWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTohMTtudChWZSkseT09bnVsbHx8eShWZSksdXQmJkl0KFZlKX0sWnQ9ZnVuY3Rpb24oVmUsdXQpe2dlKFZlKSx1dCYmY3QodXQpLEl0KHV0LFZlKX0sYnQ9ZnVuY3Rpb24oVmUpe2lmKEJlKFZlKSxjdChWZSksUGUhPT1NKXt2YXIgdXQ9WyJkZWNhZGUiLCJ5ZWFyIl0sTWU9W10uY29uY2F0KHV0LFsibW9udGgiXSksVWU9e3F1YXJ0ZXI6W10uY29uY2F0KHV0LFsicXVhcnRlciJdKSx3ZWVrOltdLmNvbmNhdCgoMCxsZS5aKShNZSksWyJ3ZWVrIl0pLGRhdGU6W10uY29uY2F0KCgwLGxlLlopKE1lKSxbImRhdGUiXSl9LFRuPVVlW01dfHxNZSxkbj1Ubi5pbmRleE9mKFBlKSxLbj1UbltkbisxXTtLbiYmWnQoS24sVmUpfX0sa3Q9by51c2VNZW1vKGZ1bmN0aW9uKCl7dmFyIGl0LFZlO2lmKEFycmF5LmlzQXJyYXkoVCkpe3ZhciB1dD0oMCxqLlopKFQsMik7aXQ9dXRbMF0sVmU9dXRbMV19ZWxzZSBpdD1UO3JldHVybiFpdCYmIVZlP251bGw6KGl0PWl0fHxWZSxWZT1WZXx8aXQsYS5pc0FmdGVyKGl0LFZlKT9bVmUsaXRdOltpdCxWZV0pfSxbVCxhXSksQWU9cGwoVyxCLFkpLHFlPUFbUmVdfHxYbVtSZV18fEJpLGV0PW8udXNlQ29udGV4dChvbyksT3Q9by51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJuKDAscy5aKSgoMCxzLlopKHt9LGV0KSx7fSx7aGlkZUhlYWRlcjpWfSl9LFtldCxWXSksR2U9IiIuY29uY2F0KHosIi1wYW5lbCIpLG5uPU5pKGUsWyJzaG93V2VlayIsInByZXZJY29uIiwibmV4dEljb24iLCJzdXBlclByZXZJY29uIiwic3VwZXJOZXh0SWNvbiIsImRpc2FibGVkRGF0ZSIsIm1pbkRhdGUiLCJtYXhEYXRlIiwib25Ib3ZlciJdKTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KG9vLlByb3ZpZGVyLHt2YWx1ZTpPdH0sby5jcmVhdGVFbGVtZW50KCJkaXYiLHtyZWY6WCx0YWJJbmRleDpkLGNsYXNzTmFtZTpvZSgpKEdlLCgwLEcuWikoe30sIiIuY29uY2F0KEdlLCItcnRsIiksbD09PSJydGwiKSl9LG8uY3JlYXRlRWxlbWVudChxZSwoMCxGZS5aKSh7fSxubix7c2hvd1RpbWU6Y2UscHJlZml4Q2xzOnosbG9jYWxlOkosZ2VuZXJhdGVDb25maWc6YSxvbk1vZGVDaGFuZ2U6WnQscGlja2VyVmFsdWU6c3Qsb25QaWNrZXJWYWx1ZUNoYW5nZTpmdW5jdGlvbihWZSl7Y3QoVmUsITApfSx2YWx1ZTpwZVswXSxvblNlbGVjdDpidCx2YWx1ZXM6cGUsY2VsbFJlbmRlcjpBZSxob3ZlclJhbmdlVmFsdWU6a3QsaG92ZXJWYWx1ZTpOfSkpKSl9dmFyIFFtPW8ubWVtbyhvLmZvcndhcmRSZWYoR20pKSxPbD1RbTtmdW5jdGlvbiBKbShlKXt2YXIgdD1lLnBpY2tlcixuPWUubXVsdGlwbGVQYW5lbCxyPWUucGlja2VyVmFsdWUsYT1lLm9uUGlja2VyVmFsdWVDaGFuZ2UsbD1lLm5lZWRDb25maXJtLHU9ZS5vblN1Ym1pdCxjPWUucmFuZ2UsZD1lLmhvdmVyVmFsdWUsdj1vLnVzZUNvbnRleHQoQ2EpLGY9di5wcmVmaXhDbHMsbT12LmdlbmVyYXRlQ29uZmlnLGg9by51c2VDYWxsYmFjayhmdW5jdGlvbihQLEUpe3JldHVybiBkaShtLHQsUCxFKX0sW20sdF0pLEM9by51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJuIGgociwxKX0sW3IsaF0pLHg9ZnVuY3Rpb24oRSl7YShoKEUsLTEpKX0scD17b25DZWxsRGJsQ2xpY2s6ZnVuY3Rpb24oKXtsJiZ1KCl9fSx5PXQ9PT0idGltZSIsdz0oMCxzLlopKCgwLHMuWikoe30sZSkse30se2hvdmVyVmFsdWU6bnVsbCxob3ZlclJhbmdlVmFsdWU6bnVsbCxoaWRlSGVhZGVyOnl9KTtyZXR1cm4gYz93LmhvdmVyUmFuZ2VWYWx1ZT1kOncuaG92ZXJWYWx1ZT1kLG4/by5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KGYsIi1wYW5lbHMiKX0sby5jcmVhdGVFbGVtZW50KG9vLlByb3ZpZGVyLHt2YWx1ZTooMCxzLlopKCgwLHMuWikoe30scCkse30se2hpZGVOZXh0OiEwfSl9LG8uY3JlYXRlRWxlbWVudChPbCx3KSksby5jcmVhdGVFbGVtZW50KG9vLlByb3ZpZGVyLHt2YWx1ZTooMCxzLlopKCgwLHMuWikoe30scCkse30se2hpZGVQcmV2OiEwfSl9LG8uY3JlYXRlRWxlbWVudChPbCwoMCxGZS5aKSh7fSx3LHtwaWNrZXJWYWx1ZTpDLG9uUGlja2VyVmFsdWVDaGFuZ2U6eH0pKSkpOm8uY3JlYXRlRWxlbWVudChvby5Qcm92aWRlcix7dmFsdWU6KDAscy5aKSh7fSxwKX0sby5jcmVhdGVFbGVtZW50KE9sLHcpKX1mdW5jdGlvbiB4dShlKXtyZXR1cm4gdHlwZW9mIGU9PSJmdW5jdGlvbiI/ZSgpOmV9ZnVuY3Rpb24gcW0oZSl7dmFyIHQ9ZS5wcmVmaXhDbHMsbj1lLnByZXNldHMscj1lLm9uQ2xpY2ssYT1lLm9uSG92ZXI7cmV0dXJuIG4ubGVuZ3RoP28uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdCh0LCItcHJlc2V0cyIpfSxvLmNyZWF0ZUVsZW1lbnQoInVsIixudWxsLG4ubWFwKGZ1bmN0aW9uKGwsdSl7dmFyIGM9bC5sYWJlbCxkPWwudmFsdWU7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgibGkiLHtrZXk6dSxvbkNsaWNrOmZ1bmN0aW9uKCl7cih4dShkKSl9LG9uTW91c2VFbnRlcjpmdW5jdGlvbigpe2EoeHUoZCkpfSxvbk1vdXNlTGVhdmU6ZnVuY3Rpb24oKXthKG51bGwpfX0sYyl9KSkpOm51bGx9ZnVuY3Rpb24gU3UoZSl7dmFyIHQ9ZS5wYW5lbFJlbmRlcixuPWUuaW50ZXJuYWxNb2RlLHI9ZS5waWNrZXIsYT1lLnNob3dOb3csbD1lLnJhbmdlLHU9ZS5tdWx0aXBsZSxjPWUuYWN0aXZlSW5mbyxkPWM9PT12b2lkIDA/WzAsMCwwXTpjLHY9ZS5wcmVzZXRzLGY9ZS5vblByZXNldEhvdmVyLG09ZS5vblByZXNldFN1Ym1pdCxoPWUub25Gb2N1cyxDPWUub25CbHVyLHg9ZS5vblBhbmVsTW91c2VEb3duLHA9ZS5kaXJlY3Rpb24seT1lLnZhbHVlLHc9ZS5vblNlbGVjdCxQPWUuaXNJbnZhbGlkLEU9ZS5kZWZhdWx0T3BlblZhbHVlLE09ZS5vbk9rLEQ9ZS5vblN1Ym1pdCxOPW8udXNlQ29udGV4dChDYSksVD1OLnByZWZpeENscyxXPSIiLmNvbmNhdChULCItcGFuZWwiKSxCPXA9PT0icnRsIixZPW8udXNlUmVmKG51bGwpLEg9by51c2VSZWYobnVsbCksQT1vLnVzZVN0YXRlKDApLFY9KDAsai5aKShBLDIpLHo9VlswXSxYPVZbMV0scT1vLnVzZVN0YXRlKDApLFE9KDAsai5aKShxLDIpLGFlPVFbMF0sZWU9UVsxXSxyZT1vLnVzZVN0YXRlKDApLHNlPSgwLGouWikocmUsMiksSj1zZVswXSxpZT1zZVsxXSxjZT1mdW5jdGlvbihidCl7YnQud2lkdGgmJlgoYnQud2lkdGgpfSx4ZT0oMCxqLlopKGQsMyksdWU9eGVbMF0seWU9eGVbMV0sUGU9eGVbMl0sZ2U9by51c2VTdGF0ZSgwKSxSZT0oMCxqLlopKGdlLDIpLFNlPVJlWzBdLEllPVJlWzFdO28udXNlRWZmZWN0KGZ1bmN0aW9uKCl7SWUoMTApfSxbdWVdKSxvLnVzZUVmZmVjdChmdW5jdGlvbigpe2lmKGwmJkguY3VycmVudCl7dmFyIFp0LGJ0PSgoWnQ9WS5jdXJyZW50KT09PW51bGx8fFp0PT09dm9pZCAwP3ZvaWQgMDpadC5vZmZzZXRXaWR0aCl8fDAsa3Q9SC5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2lmKCFrdC5oZWlnaHR8fGt0LnJpZ2h0PDApe0llKGZ1bmN0aW9uKE90KXtyZXR1cm4gTWF0aC5tYXgoMCxPdC0xKX0pO3JldHVybn12YXIgQWU9KEI/eWUtYnQ6dWUpLWt0LmxlZnQ7aWYoaWUoQWUpLHomJno8UGUpe3ZhciBxZT1CP2t0LnJpZ2h0LSh5ZS1idCt6KTp1ZStidC1rdC5sZWZ0LXosZXQ9TWF0aC5tYXgoMCxxZSk7ZWUoZXQpfWVsc2UgZWUoMCl9fSxbU2UsQix6LHVlLHllLFBlLGxdKTtmdW5jdGlvbiBaZShadCl7cmV0dXJuIFp0LmZpbHRlcihmdW5jdGlvbihidCl7cmV0dXJuIGJ0fSl9dmFyIENlPW8udXNlTWVtbyhmdW5jdGlvbigpe3JldHVybiBaZShQbyh5KSl9LFt5XSksRWU9cj09PSJ0aW1lIiYmIUNlLmxlbmd0aCxwZT1vLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4gRWU/WmUoW0VdKTpDZX0sW0VlLENlLEVdKSxKZT1FZT9FOkNlLEJlPW8udXNlTWVtbyhmdW5jdGlvbigpe3JldHVybiBwZS5sZW5ndGg/cGUuc29tZShmdW5jdGlvbihadCl7cmV0dXJuIFAoWnQpfSk6ITB9LFtwZSxQXSksdnQ9ZnVuY3Rpb24oKXtFZSYmdyhFKSxNKCksRCgpfSx5dD1vLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiIi5jb25jYXQoVCwiLXBhbmVsLWxheW91dCIpfSxvLmNyZWF0ZUVsZW1lbnQocW0se3ByZWZpeENsczpULHByZXNldHM6dixvbkNsaWNrOm0sb25Ib3ZlcjpmfSksby5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsby5jcmVhdGVFbGVtZW50KEptLCgwLEZlLlopKHt9LGUse3ZhbHVlOkplfSkpLG8uY3JlYXRlRWxlbWVudChGbSwoMCxGZS5aKSh7fSxlLHtzaG93Tm93OnU/ITE6YSxpbnZhbGlkOkJlLG9uU3VibWl0OnZ0fSkpKSk7dCYmKHl0PXQoeXQpKTt2YXIgc3Q9IiIuY29uY2F0KFcsIi1jb250YWluZXIiKSxudD0ibWFyZ2luTGVmdCIsSXQ9Im1hcmdpblJpZ2h0IixjdD1vLmNyZWF0ZUVsZW1lbnQoImRpdiIse29uTW91c2VEb3duOngsdGFiSW5kZXg6LTEsY2xhc3NOYW1lOm9lKCkoc3QsIiIuY29uY2F0KFQsIi0iKS5jb25jYXQobiwiLXBhbmVsLWNvbnRhaW5lciIpKSxzdHlsZTooMCxHLlopKCgwLEcuWikoe30sQj9JdDpudCxhZSksQj9udDpJdCwiYXV0byIpLG9uRm9jdXM6aCxvbkJsdXI6Q30seXQpO3JldHVybiBsJiYoY3Q9by5jcmVhdGVFbGVtZW50KCJkaXYiLHtvbk1vdXNlRG93bjp4LHJlZjpILGNsYXNzTmFtZTpvZSgpKCIiLmNvbmNhdChULCItcmFuZ2Utd3JhcHBlciIpLCIiLmNvbmNhdChULCItIikuY29uY2F0KHIsIi1yYW5nZS13cmFwcGVyIikpfSxvLmNyZWF0ZUVsZW1lbnQoImRpdiIse3JlZjpZLGNsYXNzTmFtZToiIi5jb25jYXQoVCwiLXJhbmdlLWFycm93Iiksc3R5bGU6e2xlZnQ6Sn19KSxvLmNyZWF0ZUVsZW1lbnQoYnUuWix7b25SZXNpemU6Y2V9LGN0KSkpLGN0fWZ1bmN0aW9uIFB1KGUsdCl7dmFyIG49ZS5mb3JtYXQscj1lLm1hc2tGb3JtYXQsYT1lLmdlbmVyYXRlQ29uZmlnLGw9ZS5sb2NhbGUsdT1lLnByZXNlcnZlSW52YWxpZE9uQmx1cixjPWUuaW5wdXRSZWFkT25seSxkPWUucmVxdWlyZWQsdj1lWyJhcmlhLXJlcXVpcmVkIl0sZj1lLm9uU3VibWl0LG09ZS5vbkZvY3VzLGg9ZS5vbkJsdXIsQz1lLm9uSW5wdXRDaGFuZ2UseD1lLm9uSW52YWxpZCxwPWUub3Blbix5PWUub25PcGVuQ2hhbmdlLHc9ZS5vbktleURvd24sUD1lLm9uQ2hhbmdlLEU9ZS5hY3RpdmVIZWxwLE09ZS5uYW1lLEQ9ZS5hdXRvQ29tcGxldGUsTj1lLmlkLFQ9ZS52YWx1ZSxXPWUuaW52YWxpZCxCPWUucGxhY2Vob2xkZXIsWT1lLmRpc2FibGVkLEg9ZS5hY3RpdmVJbmRleCxBPWUuYWxsSGVscCxWPWUucGlja2VyLHo9ZnVuY3Rpb24oSixpZSl7dmFyIGNlPWEubG9jYWxlLnBhcnNlKGwubG9jYWxlLEosW2llXSk7cmV0dXJuIGNlJiZhLmlzVmFsaWRhdGUoY2UpP2NlOm51bGx9LFg9blswXSxxPW8udXNlQ2FsbGJhY2soZnVuY3Rpb24oc2Upe3JldHVybiB4cihzZSx7bG9jYWxlOmwsZm9ybWF0OlgsZ2VuZXJhdGVDb25maWc6YX0pfSxbbCxhLFhdKSxRPW8udXNlTWVtbyhmdW5jdGlvbigpe3JldHVybiBULm1hcChxKX0sW1QscV0pLGFlPW8udXNlTWVtbyhmdW5jdGlvbigpe3ZhciBzZT1WPT09InRpbWUiPzg6MTAsSj10eXBlb2YgWD09ImZ1bmN0aW9uIj9YKGEuZ2V0Tm93KCkpLmxlbmd0aDpYLmxlbmd0aDtyZXR1cm4gTWF0aC5tYXgoc2UsSikrMn0sW1gsVixhXSksZWU9ZnVuY3Rpb24oSil7Zm9yKHZhciBpZT0wO2llPG4ubGVuZ3RoO2llKz0xKXt2YXIgY2U9bltpZV07aWYodHlwZW9mIGNlPT0ic3RyaW5nIil7dmFyIHhlPXooSixjZSk7aWYoeGUpcmV0dXJuIHhlfX1yZXR1cm4hMX0scmU9ZnVuY3Rpb24oSil7ZnVuY3Rpb24gaWUodWUpe3JldHVybiBKIT09dm9pZCAwP3VlW0pdOnVlfXZhciBjZT0oMCxxby5aKShlLHthcmlhOiEwLGRhdGE6ITB9KSx4ZT0oMCxzLlopKCgwLHMuWikoe30sY2UpLHt9LHtmb3JtYXQ6cix2YWxpZGF0ZUZvcm1hdDpmdW5jdGlvbih5ZSl7cmV0dXJuISFlZSh5ZSl9LHByZXNlcnZlSW52YWxpZE9uQmx1cjp1LHJlYWRPbmx5OmMscmVxdWlyZWQ6ZCwiYXJpYS1yZXF1aXJlZCI6dixuYW1lOk0sYXV0b0NvbXBsZXRlOkQsc2l6ZTphZSxpZDppZShOKSx2YWx1ZTppZShRKXx8IiIsaW52YWxpZDppZShXKSxwbGFjZWhvbGRlcjppZShCKSxhY3RpdmU6SD09PUosaGVscGVkOkF8fEUmJkg9PT1KLGRpc2FibGVkOmllKFkpLG9uRm9jdXM6ZnVuY3Rpb24oeWUpe20oeWUsSil9LG9uQmx1cjpmdW5jdGlvbih5ZSl7aCh5ZSxKKX0sb25TdWJtaXQ6ZixvbkNoYW5nZTpmdW5jdGlvbih5ZSl7QygpO3ZhciBQZT1lZSh5ZSk7aWYoUGUpe3goITEsSiksUChQZSxKKTtyZXR1cm59eCghIXllLEopfSxvbkhlbHA6ZnVuY3Rpb24oKXt5KCEwLHtpbmRleDpKfSl9LG9uS2V5RG93bjpmdW5jdGlvbih5ZSl7dmFyIFBlPSExO2lmKHc9PW51bGx8fHcoeWUsZnVuY3Rpb24oKXtQZT0hMH0pLCF5ZS5kZWZhdWx0UHJldmVudGVkJiYhUGUpc3dpdGNoKHllLmtleSl7Y2FzZSJFc2NhcGUiOnkoITEse2luZGV4Okp9KTticmVhaztjYXNlIkVudGVyIjpwfHx5KCEwKTticmVha319fSx0PT1udWxsP3ZvaWQgMDp0KHt2YWx1ZVRleHRzOlF9KSk7cmV0dXJuIE9iamVjdC5rZXlzKHhlKS5mb3JFYWNoKGZ1bmN0aW9uKHVlKXt4ZVt1ZV09PT12b2lkIDAmJmRlbGV0ZSB4ZVt1ZV19KSx4ZX07cmV0dXJuW3JlLHFdfXZhciBfbT1bIm9uTW91c2VFbnRlciIsIm9uTW91c2VMZWF2ZSJdO2Z1bmN0aW9uIHd1KGUpe3JldHVybiBvLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4gTmkoZSxfbSl9LFtlXSl9dmFyIGVnPVsiaWNvbiIsInR5cGUiXSx0Zz1bIm9uQ2xlYXIiXTtmdW5jdGlvbiBXaShlKXt2YXIgdD1lLmljb24sbj1lLnR5cGUscj0oMCxnLlopKGUsZWcpLGE9by51c2VDb250ZXh0KENhKSxsPWEucHJlZml4Q2xzO3JldHVybiB0P28uY3JlYXRlRWxlbWVudCgic3BhbiIsKDAsRmUuWikoe2NsYXNzTmFtZToiIi5jb25jYXQobCwiLSIpLmNvbmNhdChuKX0sciksdCk6bnVsbH1mdW5jdGlvbiBFbChlKXt2YXIgdD1lLm9uQ2xlYXIsbj0oMCxnLlopKGUsdGcpO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoV2ksKDAsRmUuWikoe30sbix7dHlwZToiY2xlYXIiLHJvbGU6ImJ1dHRvbiIsb25Nb3VzZURvd246ZnVuY3Rpb24oYSl7YS5wcmV2ZW50RGVmYXVsdCgpfSxvbkNsaWNrOmZ1bmN0aW9uKGEpe2Euc3RvcFByb3BhZ2F0aW9uKCksdCgpfX0pKX12YXIgSWw9WyJZWVlZIiwiTU0iLCJERCIsIkhIIiwibW0iLCJzcyIsIlNTUyJdLE91PSJcdTk4NjciLG5nPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0KXsoMCxnby5aKSh0aGlzLGUpLCgwLEcuWikodGhpcywiZm9ybWF0Iix2b2lkIDApLCgwLEcuWikodGhpcywibWFza0Zvcm1hdCIsdm9pZCAwKSwoMCxHLlopKHRoaXMsImNlbGxzIix2b2lkIDApLCgwLEcuWikodGhpcywibWFza0NlbGxzIix2b2lkIDApLHRoaXMuZm9ybWF0PXQ7dmFyIG49SWwubWFwKGZ1bmN0aW9uKGMpe3JldHVybiIoIi5jb25jYXQoYywiKSIpfSkuam9pbigifCIpLHI9bmV3IFJlZ0V4cChuLCJnIik7dGhpcy5tYXNrRm9ybWF0PXQucmVwbGFjZShyLGZ1bmN0aW9uKGMpe3JldHVybiBPdS5yZXBlYXQoYy5sZW5ndGgpfSk7dmFyIGE9bmV3IFJlZ0V4cCgiKCIuY29uY2F0KElsLmpvaW4oInwiKSwiKSIpKSxsPSh0LnNwbGl0KGEpfHxbXSkuZmlsdGVyKGZ1bmN0aW9uKGMpe3JldHVybiBjfSksdT0wO3RoaXMuY2VsbHM9bC5tYXAoZnVuY3Rpb24oYyl7dmFyIGQ9SWwuaW5jbHVkZXMoYyksdj11LGY9dStjLmxlbmd0aDtyZXR1cm4gdT1mLHt0ZXh0OmMsbWFzazpkLHN0YXJ0OnYsZW5kOmZ9fSksdGhpcy5tYXNrQ2VsbHM9dGhpcy5jZWxscy5maWx0ZXIoZnVuY3Rpb24oYyl7cmV0dXJuIGMubWFza30pfXJldHVybigwLE1vLlopKGUsW3trZXk6ImdldFNlbGVjdGlvbiIsdmFsdWU6ZnVuY3Rpb24obil7dmFyIHI9dGhpcy5tYXNrQ2VsbHNbbl18fHt9LGE9ci5zdGFydCxsPXIuZW5kO3JldHVyblthfHwwLGx8fDBdfX0se2tleToibWF0Y2giLHZhbHVlOmZ1bmN0aW9uKG4pe2Zvcih2YXIgcj0wO3I8dGhpcy5tYXNrRm9ybWF0Lmxlbmd0aDtyKz0xKXt2YXIgYT10aGlzLm1hc2tGb3JtYXRbcl0sbD1uW3JdO2lmKCFsfHxhIT09T3UmJmEhPT1sKXJldHVybiExfXJldHVybiEwfX0se2tleToic2l6ZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXNrQ2VsbHMubGVuZ3RofX0se2tleToiZ2V0TWFza0NlbGxJbmRleCIsdmFsdWU6ZnVuY3Rpb24obil7Zm9yKHZhciByPU51bWJlci5NQVhfU0FGRV9JTlRFR0VSLGE9MCxsPTA7bDx0aGlzLm1hc2tDZWxscy5sZW5ndGg7bCs9MSl7dmFyIHU9dGhpcy5tYXNrQ2VsbHNbbF0sYz11LnN0YXJ0LGQ9dS5lbmQ7aWYobj49YyYmbjw9ZClyZXR1cm4gbDt2YXIgdj1NYXRoLm1pbihNYXRoLmFicyhuLWMpLE1hdGguYWJzKG4tZCkpO3Y8ciYmKHI9dixhPWwpfXJldHVybiBhfX1dKSxlfSgpO2Z1bmN0aW9uIHJnKGUpe3ZhciB0PXtZWVlZOlswLDk5OTksbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpXSxNTTpbMSwxMl0sREQ6WzEsMzFdLEhIOlswLDIzXSxtbTpbMCw1OV0sc3M6WzAsNTldLFNTUzpbMCw5OTldfTtyZXR1cm4gdFtlXX12YXIgYWc9WyJhY3RpdmUiLCJzaG93QWN0aXZlQ2xzIiwic3VmZml4SWNvbiIsImZvcm1hdCIsInZhbGlkYXRlRm9ybWF0Iiwib25DaGFuZ2UiLCJvbklucHV0IiwiaGVscGVkIiwib25IZWxwIiwib25TdWJtaXQiLCJvbktleURvd24iLCJwcmVzZXJ2ZUludmFsaWRPbkJsdXIiLCJpbnZhbGlkIiwiY2xlYXJJY29uIl0sb2c9by5mb3J3YXJkUmVmKGZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5hY3RpdmUscj1lLnNob3dBY3RpdmVDbHMsYT1yPT09dm9pZCAwPyEwOnIsbD1lLnN1ZmZpeEljb24sdT1lLmZvcm1hdCxjPWUudmFsaWRhdGVGb3JtYXQsZD1lLm9uQ2hhbmdlLHY9ZS5vbklucHV0LGY9ZS5oZWxwZWQsbT1lLm9uSGVscCxoPWUub25TdWJtaXQsQz1lLm9uS2V5RG93bix4PWUucHJlc2VydmVJbnZhbGlkT25CbHVyLHA9eD09PXZvaWQgMD8hMTp4LHk9ZS5pbnZhbGlkLHc9ZS5jbGVhckljb24sUD0oMCxnLlopKGUsYWcpLEU9ZS52YWx1ZSxNPWUub25Gb2N1cyxEPWUub25CbHVyLE49ZS5vbk1vdXNlVXAsVD1vLnVzZUNvbnRleHQoQ2EpLFc9VC5wcmVmaXhDbHMsQj1ULmlucHV0LFk9Qj09PXZvaWQgMD8iaW5wdXQiOkIsSD0iIi5jb25jYXQoVywiLWlucHV0IiksQT1vLnVzZVN0YXRlKCExKSxWPSgwLGouWikoQSwyKSx6PVZbMF0sWD1WWzFdLHE9by51c2VTdGF0ZShFKSxRPSgwLGouWikocSwyKSxhZT1RWzBdLGVlPVFbMV0scmU9by51c2VTdGF0ZSgiIiksc2U9KDAsai5aKShyZSwyKSxKPXNlWzBdLGllPXNlWzFdLGNlPW8udXNlU3RhdGUobnVsbCkseGU9KDAsai5aKShjZSwyKSx1ZT14ZVswXSx5ZT14ZVsxXSxQZT1vLnVzZVN0YXRlKG51bGwpLGdlPSgwLGouWikoUGUsMiksUmU9Z2VbMF0sU2U9Z2VbMV0sSWU9YWV8fCIiO28udXNlRWZmZWN0KGZ1bmN0aW9uKCl7ZWUoRSl9LFtFXSk7dmFyIFplPW8udXNlUmVmKCksQ2U9by51c2VSZWYoKTtvLnVzZUltcGVyYXRpdmVIYW5kbGUodCxmdW5jdGlvbigpe3JldHVybntuYXRpdmVFbGVtZW50OlplLmN1cnJlbnQsaW5wdXRFbGVtZW50OkNlLmN1cnJlbnQsZm9jdXM6ZnVuY3Rpb24oVmUpe0NlLmN1cnJlbnQuZm9jdXMoVmUpfSxibHVyOmZ1bmN0aW9uKCl7Q2UuY3VycmVudC5ibHVyKCl9fX0pO3ZhciBFZT1vLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4gbmV3IG5nKHV8fCIiKX0sW3VdKSxwZT1vLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4gZj9bMCwwXTpFZS5nZXRTZWxlY3Rpb24odWUpfSxbRWUsdWUsZl0pLEplPSgwLGouWikocGUsMiksQmU9SmVbMF0sdnQ9SmVbMV0seXQ9ZnVuY3Rpb24oVmUpe1ZlJiZWZSE9PXUmJlZlIT09RSYmbSgpfSxzdD0oMCxsdC56WCkoZnVuY3Rpb24oaXQpe2MoaXQpJiZkKGl0KSxlZShpdCkseXQoaXQpfSksbnQ9ZnVuY3Rpb24oVmUpe2lmKCF1KXt2YXIgdXQ9VmUudGFyZ2V0LnZhbHVlO3l0KHV0KSxlZSh1dCksZCh1dCl9fSxJdD1mdW5jdGlvbihWZSl7dmFyIHV0PVZlLmNsaXBib2FyZERhdGEuZ2V0RGF0YSgidGV4dCIpO2ModXQpJiZzdCh1dCl9LGN0PW8udXNlUmVmKCExKSxadD1mdW5jdGlvbigpe2N0LmN1cnJlbnQ9ITB9LGJ0PWZ1bmN0aW9uKFZlKXt2YXIgdXQ9VmUudGFyZ2V0LE1lPXV0LnNlbGVjdGlvblN0YXJ0LFVlPUVlLmdldE1hc2tDZWxsSW5kZXgoTWUpO3llKFVlKSxTZSh7fSksTj09bnVsbHx8TihWZSksY3QuY3VycmVudD0hMX0sa3Q9ZnVuY3Rpb24oVmUpe1goITApLHllKDApLGllKCIiKSxNKFZlKX0sQWU9ZnVuY3Rpb24oVmUpe0QoVmUpfSxxZT1mdW5jdGlvbihWZSl7WCghMSksQWUoVmUpfTtTbChuLGZ1bmN0aW9uKCl7IW4mJiFwJiZlZShFKX0pO3ZhciBldD1mdW5jdGlvbihWZSl7VmUua2V5PT09IkVudGVyIiYmYyhJZSkmJmgoKSxDPT1udWxsfHxDKFZlKX0sT3Q9ZnVuY3Rpb24oVmUpe2V0KFZlKTt2YXIgdXQ9VmUua2V5LE1lPW51bGwsVWU9bnVsbCxUbj12dC1CZSxkbj11LnNsaWNlKEJlLHZ0KSxLbj1mdW5jdGlvbihZdCl7eWUoZnVuY3Rpb24oRXQpe3ZhciBfdD1FdCtZdDtyZXR1cm4gX3Q9TWF0aC5tYXgoX3QsMCksX3Q9TWF0aC5taW4oX3QsRWUuc2l6ZSgpLTEpLF90fSl9LE1uPWZ1bmN0aW9uKFl0KXt2YXIgRXQ9cmcoZG4pLF90PSgwLGouWikoRXQsMyksQm49X3RbMF0sTXI9X3RbMV0sWXI9X3RbMl0sTWE9SWUuc2xpY2UoQmUsdnQpLEpyPU51bWJlcihNYSk7aWYoaXNOYU4oSnIpKXJldHVybiBTdHJpbmcoWXJ8fChZdD4wP0JuOk1yKSk7dmFyIEthPUpyK1l0LFlhPU1yLUJuKzE7cmV0dXJuIFN0cmluZyhCbisoWWErS2EtQm4pJVlhKX07c3dpdGNoKHV0KXtjYXNlIkJhY2tzcGFjZSI6Y2FzZSJEZWxldGUiOk1lPSIiLFVlPWRuO2JyZWFrO2Nhc2UiQXJyb3dMZWZ0IjpNZT0iIixLbigtMSk7YnJlYWs7Y2FzZSJBcnJvd1JpZ2h0IjpNZT0iIixLbigxKTticmVhaztjYXNlIkFycm93VXAiOk1lPSIiLFVlPU1uKDEpO2JyZWFrO2Nhc2UiQXJyb3dEb3duIjpNZT0iIixVZT1NbigtMSk7YnJlYWs7ZGVmYXVsdDppc05hTihOdW1iZXIodXQpKXx8KE1lPUordXQsVWU9TWUpO2JyZWFrfWlmKE1lIT09bnVsbCYmKGllKE1lKSxNZS5sZW5ndGg+PVRuJiYoS24oMSksaWUoIiIpKSksVWUhPT1udWxsKXt2YXIgeHQ9SWUuc2xpY2UoMCxCZSkraGwoVWUsVG4pK0llLnNsaWNlKHZ0KTtzdCh4dC5zbGljZSgwLHUubGVuZ3RoKSl9U2Uoe30pfSxHZT1vLnVzZVJlZigpOygwLFduLlopKGZ1bmN0aW9uKCl7aWYoISghenx8IXV8fGN0LmN1cnJlbnQpKXtpZighRWUubWF0Y2goSWUpKXtzdCh1KTtyZXR1cm59cmV0dXJuIENlLmN1cnJlbnQuc2V0U2VsZWN0aW9uUmFuZ2UoQmUsdnQpLEdlLmN1cnJlbnQ9KDAsSm4uWikoZnVuY3Rpb24oKXtDZS5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKEJlLHZ0KX0pLGZ1bmN0aW9uKCl7Sm4uWi5jYW5jZWwoR2UuY3VycmVudCl9fX0sW0VlLHUseixJZSx1ZSxCZSx2dCxSZSxzdF0pO3ZhciBubj11P3tvbkZvY3VzOmt0LG9uQmx1cjpxZSxvbktleURvd246T3Qsb25Nb3VzZURvd246WnQsb25Nb3VzZVVwOmJ0LG9uUGFzdGU6SXR9Ont9O3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoImRpdiIse3JlZjpaZSxjbGFzc05hbWU6b2UoKShILCgwLEcuWikoKDAsRy5aKSh7fSwiIi5jb25jYXQoSCwiLWFjdGl2ZSIpLG4mJmEpLCIiLmNvbmNhdChILCItcGxhY2Vob2xkZXIiKSxmKSl9LG8uY3JlYXRlRWxlbWVudChZLCgwLEZlLlopKHtyZWY6Q2UsImFyaWEtaW52YWxpZCI6eSxhdXRvQ29tcGxldGU6Im9mZiJ9LFAse29uS2V5RG93bjpldCxvbkJsdXI6QWV9LG5uLHt2YWx1ZTpJZSxvbkNoYW5nZTpudH0pKSxvLmNyZWF0ZUVsZW1lbnQoV2kse3R5cGU6InN1ZmZpeCIsaWNvbjpsfSksdyl9KSwkbD1vZyxpZz1bImlkIiwicHJlZml4IiwiY2xlYXJJY29uIiwic3VmZml4SWNvbiIsInNlcGFyYXRvciIsImFjdGl2ZUluZGV4IiwiYWN0aXZlSGVscCIsImFsbEhlbHAiLCJmb2N1c2VkIiwib25Gb2N1cyIsIm9uQmx1ciIsIm9uS2V5RG93biIsImxvY2FsZSIsImdlbmVyYXRlQ29uZmlnIiwicGxhY2Vob2xkZXIiLCJjbGFzc05hbWUiLCJzdHlsZSIsIm9uQ2xpY2siLCJvbkNsZWFyIiwidmFsdWUiLCJvbkNoYW5nZSIsIm9uU3VibWl0Iiwib25JbnB1dENoYW5nZSIsImZvcm1hdCIsIm1hc2tGb3JtYXQiLCJwcmVzZXJ2ZUludmFsaWRPbkJsdXIiLCJvbkludmFsaWQiLCJkaXNhYmxlZCIsImludmFsaWQiLCJpbnB1dFJlYWRPbmx5IiwiZGlyZWN0aW9uIiwib25PcGVuQ2hhbmdlIiwib25BY3RpdmVJbmZvIiwicGxhY2VtZW50Iiwib25Nb3VzZURvd24iLCJyZXF1aXJlZCIsImFyaWEtcmVxdWlyZWQiLCJhdXRvRm9jdXMiLCJ0YWJJbmRleCJdLGxnPVsiaW5kZXgiXTtmdW5jdGlvbiBzZyhlLHQpe3ZhciBuPWUuaWQscj1lLnByZWZpeCxhPWUuY2xlYXJJY29uLGw9ZS5zdWZmaXhJY29uLHU9ZS5zZXBhcmF0b3IsYz11PT09dm9pZCAwPyJ+Ijp1LGQ9ZS5hY3RpdmVJbmRleCx2PWUuYWN0aXZlSGVscCxmPWUuYWxsSGVscCxtPWUuZm9jdXNlZCxoPWUub25Gb2N1cyxDPWUub25CbHVyLHg9ZS5vbktleURvd24scD1lLmxvY2FsZSx5PWUuZ2VuZXJhdGVDb25maWcsdz1lLnBsYWNlaG9sZGVyLFA9ZS5jbGFzc05hbWUsRT1lLnN0eWxlLE09ZS5vbkNsaWNrLEQ9ZS5vbkNsZWFyLE49ZS52YWx1ZSxUPWUub25DaGFuZ2UsVz1lLm9uU3VibWl0LEI9ZS5vbklucHV0Q2hhbmdlLFk9ZS5mb3JtYXQsSD1lLm1hc2tGb3JtYXQsQT1lLnByZXNlcnZlSW52YWxpZE9uQmx1cixWPWUub25JbnZhbGlkLHo9ZS5kaXNhYmxlZCxYPWUuaW52YWxpZCxxPWUuaW5wdXRSZWFkT25seSxRPWUuZGlyZWN0aW9uLGFlPWUub25PcGVuQ2hhbmdlLGVlPWUub25BY3RpdmVJbmZvLHJlPWUucGxhY2VtZW50LHNlPWUub25Nb3VzZURvd24sSj1lLnJlcXVpcmVkLGllPWVbImFyaWEtcmVxdWlyZWQiXSxjZT1lLmF1dG9Gb2N1cyx4ZT1lLnRhYkluZGV4LHVlPSgwLGcuWikoZSxpZykseWU9UT09PSJydGwiLFBlPW8udXNlQ29udGV4dChDYSksZ2U9UGUucHJlZml4Q2xzLFJlPW8udXNlTWVtbyhmdW5jdGlvbigpe2lmKHR5cGVvZiBuPT0ic3RyaW5nIilyZXR1cm5bbl07dmFyIEFlPW58fHt9O3JldHVybltBZS5zdGFydCxBZS5lbmRdfSxbbl0pLFNlPW8udXNlUmVmKCksSWU9by51c2VSZWYoKSxaZT1vLnVzZVJlZigpLENlPWZ1bmN0aW9uKHFlKXt2YXIgZXQ7cmV0dXJuKGV0PVtJZSxaZV1bcWVdKT09PW51bGx8fGV0PT09dm9pZCAwP3ZvaWQgMDpldC5jdXJyZW50fTtvLnVzZUltcGVyYXRpdmVIYW5kbGUodCxmdW5jdGlvbigpe3JldHVybntuYXRpdmVFbGVtZW50OlNlLmN1cnJlbnQsZm9jdXM6ZnVuY3Rpb24ocWUpe2lmKCgwLGIuWikocWUpPT09Im9iamVjdCIpe3ZhciBldCxPdD1xZXx8e30sR2U9T3QuaW5kZXgsbm49R2U9PT12b2lkIDA/MDpHZSxpdD0oMCxnLlopKE90LGxnKTsoZXQ9Q2Uobm4pKT09PW51bGx8fGV0PT09dm9pZCAwfHxldC5mb2N1cyhpdCl9ZWxzZXt2YXIgVmU7KFZlPUNlKHFlIT1udWxsP3FlOjApKT09PW51bGx8fFZlPT09dm9pZCAwfHxWZS5mb2N1cygpfX0sYmx1cjpmdW5jdGlvbigpe3ZhciBxZSxldDsocWU9Q2UoMCkpPT09bnVsbHx8cWU9PT12b2lkIDB8fHFlLmJsdXIoKSwoZXQ9Q2UoMSkpPT09bnVsbHx8ZXQ9PT12b2lkIDB8fGV0LmJsdXIoKX19fSk7dmFyIEVlPXd1KHVlKSxwZT1vLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4gQXJyYXkuaXNBcnJheSh3KT93Olt3LHddfSxbd10pLEplPVB1KCgwLHMuWikoKDAscy5aKSh7fSxlKSx7fSx7aWQ6UmUscGxhY2Vob2xkZXI6cGV9KSksQmU9KDAsai5aKShKZSwxKSx2dD1CZVswXSx5dD1vLnVzZVN0YXRlKHtwb3NpdGlvbjoiYWJzb2x1dGUiLHdpZHRoOjB9KSxzdD0oMCxqLlopKHl0LDIpLG50PXN0WzBdLEl0PXN0WzFdLGN0PSgwLGx0LnpYKShmdW5jdGlvbigpe3ZhciBBZT1DZShkKTtpZihBZSl7dmFyIHFlPUFlLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksZXQ9U2UuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxPdD1xZS5sZWZ0LWV0LmxlZnQ7SXQoZnVuY3Rpb24oR2Upe3JldHVybigwLHMuWikoKDAscy5aKSh7fSxHZSkse30se3dpZHRoOnFlLndpZHRoLGxlZnQ6T3R9KX0pLGVlKFtxZS5sZWZ0LHFlLnJpZ2h0LGV0LndpZHRoXSl9fSk7by51c2VFZmZlY3QoZnVuY3Rpb24oKXtjdCgpfSxbZF0pO3ZhciBadD1hJiYoTlswXSYmIXpbMF18fE5bMV0mJiF6WzFdKSxidD1jZSYmIXpbMF0sa3Q9Y2UmJiFidCYmIXpbMV07cmV0dXJuIG8uY3JlYXRlRWxlbWVudChidS5aLHtvblJlc2l6ZTpjdH0sby5jcmVhdGVFbGVtZW50KCJkaXYiLCgwLEZlLlopKHt9LEVlLHtjbGFzc05hbWU6b2UoKShnZSwiIi5jb25jYXQoZ2UsIi1yYW5nZSIpLCgwLEcuWikoKDAsRy5aKSgoMCxHLlopKCgwLEcuWikoe30sIiIuY29uY2F0KGdlLCItZm9jdXNlZCIpLG0pLCIiLmNvbmNhdChnZSwiLWRpc2FibGVkIiksei5ldmVyeShmdW5jdGlvbihBZSl7cmV0dXJuIEFlfSkpLCIiLmNvbmNhdChnZSwiLWludmFsaWQiKSxYLnNvbWUoZnVuY3Rpb24oQWUpe3JldHVybiBBZX0pKSwiIi5jb25jYXQoZ2UsIi1ydGwiKSx5ZSksUCksc3R5bGU6RSxyZWY6U2Usb25DbGljazpNLG9uTW91c2VEb3duOmZ1bmN0aW9uKHFlKXt2YXIgZXQ9cWUudGFyZ2V0O2V0IT09SWUuY3VycmVudC5pbnB1dEVsZW1lbnQmJmV0IT09WmUuY3VycmVudC5pbnB1dEVsZW1lbnQmJnFlLnByZXZlbnREZWZhdWx0KCksc2U9PW51bGx8fHNlKHFlKX19KSxyJiZvLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiIi5jb25jYXQoZ2UsIi1wcmVmaXgiKX0sciksby5jcmVhdGVFbGVtZW50KCRsLCgwLEZlLlopKHtyZWY6SWV9LHZ0KDApLHthdXRvRm9jdXM6YnQsdGFiSW5kZXg6eGUsImRhdGUtcmFuZ2UiOiJzdGFydCJ9KSksby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KGdlLCItcmFuZ2Utc2VwYXJhdG9yIil9LGMpLG8uY3JlYXRlRWxlbWVudCgkbCwoMCxGZS5aKSh7cmVmOlplfSx2dCgxKSx7YXV0b0ZvY3VzOmt0LHRhYkluZGV4OnhlLCJkYXRlLXJhbmdlIjoiZW5kIn0pKSxvLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiIi5jb25jYXQoZ2UsIi1hY3RpdmUtYmFyIiksc3R5bGU6bnR9KSxvLmNyZWF0ZUVsZW1lbnQoV2kse3R5cGU6InN1ZmZpeCIsaWNvbjpsfSksWnQmJm8uY3JlYXRlRWxlbWVudChFbCx7aWNvbjphLG9uQ2xlYXI6RH0pKSl9dmFyIHVnPW8uZm9yd2FyZFJlZihzZyksY2c9dWc7ZnVuY3Rpb24gRXUoZSx0KXt2YXIgbj1lIT1udWxsP2U6dDtyZXR1cm4gQXJyYXkuaXNBcnJheShuKT9uOltuLG5dfWZ1bmN0aW9uIHppKGUpe3JldHVybiBlPT09MT8iZW5kIjoic3RhcnQifWZ1bmN0aW9uIGRnKGUsdCl7dmFyIG49aXUoZSxmdW5jdGlvbigpe3ZhciBQbj1lLmRpc2FibGVkLFF0PWUuYWxsb3dFbXB0eSxmbj1FdShQbiwhMSksY3I9RXUoUXQsITEpO3JldHVybntkaXNhYmxlZDpmbixhbGxvd0VtcHR5OmNyfX0pLHI9KDAsai5aKShuLDYpLGE9clswXSxsPXJbMV0sdT1yWzJdLGM9clszXSxkPXJbNF0sdj1yWzVdLGY9YS5wcmVmaXhDbHMsbT1hLnN0eWxlcyxoPWEuY2xhc3NOYW1lcyxDPWEuZGVmYXVsdFZhbHVlLHg9YS52YWx1ZSxwPWEubmVlZENvbmZpcm0seT1hLm9uS2V5RG93bix3PWEuZGlzYWJsZWQsUD1hLmFsbG93RW1wdHksRT1hLmRpc2FibGVkRGF0ZSxNPWEubWluRGF0ZSxEPWEubWF4RGF0ZSxOPWEuZGVmYXVsdE9wZW4sVD1hLm9wZW4sVz1hLm9uT3BlbkNoYW5nZSxCPWEubG9jYWxlLFk9YS5nZW5lcmF0ZUNvbmZpZyxIPWEucGlja2VyLEE9YS5zaG93Tm93LFY9YS5zaG93VG9kYXksej1hLnNob3dUaW1lLFg9YS5tb2RlLHE9YS5vblBhbmVsQ2hhbmdlLFE9YS5vbkNhbGVuZGFyQ2hhbmdlLGFlPWEub25PayxlZT1hLmRlZmF1bHRQaWNrZXJWYWx1ZSxyZT1hLnBpY2tlclZhbHVlLHNlPWEub25QaWNrZXJWYWx1ZUNoYW5nZSxKPWEuaW5wdXRSZWFkT25seSxpZT1hLnN1ZmZpeEljb24sY2U9YS5vbkZvY3VzLHhlPWEub25CbHVyLHVlPWEucHJlc2V0cyx5ZT1hLnJhbmdlcyxQZT1hLmNvbXBvbmVudHMsZ2U9YS5jZWxsUmVuZGVyLFJlPWEuZGF0ZVJlbmRlcixTZT1hLm1vbnRoQ2VsbFJlbmRlcixJZT1hLm9uQ2xpY2ssWmU9c3UodCksQ2U9bHUoVCxOLHcsVyksRWU9KDAsai5aKShDZSwyKSxwZT1FZVswXSxKZT1FZVsxXSxCZT1mdW5jdGlvbihRdCxmbil7KHcuc29tZShmdW5jdGlvbihjcil7cmV0dXJuIWNyfSl8fCFRdCkmJkplKFF0LGZuKX0sdnQ9Z3UoWSxCLGMsITAsITEsQyx4LFEsYWUpLHl0PSgwLGouWikodnQsNSksc3Q9eXRbMF0sbnQ9eXRbMV0sSXQ9eXRbMl0sY3Q9eXRbM10sWnQ9eXRbNF0sYnQ9SXQoKSxrdD1jdSh3LFAscGUpLEFlPSgwLGouWikoa3QsOSkscWU9QWVbMF0sZXQ9QWVbMV0sT3Q9QWVbMl0sR2U9QWVbM10sbm49QWVbNF0saXQ9QWVbNV0sVmU9QWVbNl0sdXQ9QWVbN10sTWU9QWVbOF0sVWU9ZnVuY3Rpb24oUXQsZm4pe2V0KCEwKSxjZT09bnVsbHx8Y2UoUXQse3JhbmdlOnppKGZuIT1udWxsP2ZuOkdlKX0pfSxUbj1mdW5jdGlvbihRdCxmbil7ZXQoITEpLHhlPT1udWxsfHx4ZShRdCx7cmFuZ2U6emkoZm4hPW51bGw/Zm46R2UpfSl9LGRuPW8udXNlTWVtbyhmdW5jdGlvbigpe2lmKCF6KXJldHVybiBudWxsO3ZhciBQbj16LmRpc2FibGVkVGltZSxRdD1Qbj9mdW5jdGlvbihmbil7dmFyIGNyPXppKEdlKSxacj1YcyhidCxWZSxHZSk7cmV0dXJuIFBuKGZuLGNyLHtmcm9tOlpyfSl9OnZvaWQgMDtyZXR1cm4oMCxzLlopKCgwLHMuWikoe30seikse30se2Rpc2FibGVkVGltZTpRdH0pfSxbeixHZSxidCxWZV0pLEtuPSgwLGx0LkM4KShbSCxIXSx7dmFsdWU6WH0pLE1uPSgwLGouWikoS24sMikseHQ9TW5bMF0sU3Q9TW5bMV0sWXQ9eHRbR2VdfHxILEV0PVl0PT09ImRhdGUiJiZkbj8iZGF0ZXRpbWUiOll0LF90PUV0PT09SCYmRXQhPT0idGltZSIsQm49cHUoSCxZdCxBLFYsITApLE1yPWh1KGEsc3QsbnQsSXQsY3QsdyxjLHFlLHBlLHYpLFlyPSgwLGouWikoTXIsMiksTWE9WXJbMF0sSnI9WXJbMV0sS2E9Wm0oYnQsdyxWZSxZLEIsRSksWWE9UXMoYnQsdixQKSxLbz0oMCxqLlopKFlhLDIpLGdpPUtvWzBdLFlvPUtvWzFdLGxvPWR1KFksQixidCx4dCxwZSxHZSxsLF90LGVlLHJlLGRuPT1udWxsP3ZvaWQgMDpkbi5kZWZhdWx0T3BlblZhbHVlLHNlLE0sRCksSW89KDAsai5aKShsbywyKSxoaT1Jb1swXSxVbz1Jb1sxXSxjYT0oMCxsdC56WCkoZnVuY3Rpb24oUG4sUXQsZm4pe3ZhciBjcj1zaSh4dCxHZSxRdCk7aWYoKGNyWzBdIT09eHRbMF18fGNyWzFdIT09eHRbMV0pJiZTdChjcikscSYmZm4hPT0hMSl7dmFyIFpyPSgwLGxlLlopKGJ0KTtQbiYmKFpyW0dlXT1QbikscShacixjcil9fSksc289ZnVuY3Rpb24oUXQsZm4pe3JldHVybiBzaShidCxmbixRdCl9LExyPWZ1bmN0aW9uKFF0LGZuKXt2YXIgY3I9YnQ7UXQmJihjcj1zbyhRdCxHZSkpLHV0KEdlKTt2YXIgWnI9aXQoY3IpO2N0KGNyKSxNYShHZSxacj09PW51bGwpLFpyPT09bnVsbD9CZSghMSx7Zm9yY2U6ITB9KTpmbnx8WmUuY3VycmVudC5mb2N1cyh7aW5kZXg6WnJ9KX0scGk9ZnVuY3Rpb24oUXQpe3ZhciBmbixjcj1RdC50YXJnZXQuZ2V0Um9vdE5vZGUoKTtpZighWmUuY3VycmVudC5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKChmbj1jci5hY3RpdmVFbGVtZW50KSE9PW51bGwmJmZuIT09dm9pZCAwP2ZuOmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpKXt2YXIgWnI9dy5maW5kSW5kZXgoZnVuY3Rpb24oc3Ape3JldHVybiFzcH0pO1pyPj0wJiZaZS5jdXJyZW50LmZvY3VzKHtpbmRleDpacn0pfUJlKCEwKSxJZT09bnVsbHx8SWUoUXQpfSwkbz1mdW5jdGlvbigpe0pyKG51bGwpLEJlKCExLHtmb3JjZTohMH0pfSxYbz1vLnVzZVN0YXRlKG51bGwpLHVvPSgwLGouWikoWG8sMiksYmk9dW9bMF0sZ249dW9bMV0sUnQ9by51c2VTdGF0ZShudWxsKSxTbj0oMCxqLlopKFJ0LDIpLEFuPVNuWzBdLGlyPVNuWzFdLGFhPW8udXNlTWVtbyhmdW5jdGlvbigpe3JldHVybiBBbnx8YnR9LFtidCxBbl0pO28udXNlRWZmZWN0KGZ1bmN0aW9uKCl7cGV8fGlyKG51bGwpfSxbcGVdKTt2YXIgb2E9by51c2VTdGF0ZShbMCwwLDBdKSxVcj0oMCxqLlopKG9hLDIpLGlhPVVyWzBdLHhhPVVyWzFdLFphPXV1KHVlLHllKSxkYT1mdW5jdGlvbihRdCl7aXIoUXQpLGduKCJwcmVzZXQiKX0sY289ZnVuY3Rpb24oUXQpe3ZhciBmbj1KcihRdCk7Zm4mJkJlKCExLHtmb3JjZTohMH0pfSxHbz1mdW5jdGlvbihRdCl7THIoUXQpfSxGbD1mdW5jdGlvbihRdCl7aXIoUXQ/c28oUXQsR2UpOm51bGwpLGduKCJjZWxsIil9LFRsPWZ1bmN0aW9uKFF0KXtCZSghMCksVWUoUXQpfSxqbD1mdW5jdGlvbigpe090KCJwYW5lbCIpfSxBbD1mdW5jdGlvbihRdCl7dmFyIGZuPXNpKGJ0LEdlLFF0KTtjdChmbiksIXAmJiF1JiZsPT09RXQmJkxyKFF0KX0sSGw9ZnVuY3Rpb24oKXtCZSghMSl9LGtsPXBsKGdlLFJlLFNlLHppKEdlKSksTGw9YnRbR2VdfHxudWxsLFZsPSgwLGx0LnpYKShmdW5jdGlvbihQbil7cmV0dXJuIHYoUG4se2FjdGl2ZUluZGV4OkdlfSl9KSxlbj1vLnVzZU1lbW8oZnVuY3Rpb24oKXt2YXIgUG49KDAscW8uWikoYSwhMSksUXQ9KDAscG4uWikoYSxbXS5jb25jYXQoKDAsbGUuWikoT2JqZWN0LmtleXMoUG4pKSxbIm9uQ2hhbmdlIiwib25DYWxlbmRhckNoYW5nZSIsInN0eWxlIiwiY2xhc3NOYW1lIiwib25QYW5lbENoYW5nZSIsImRpc2FibGVkVGltZSJdKSk7cmV0dXJuIFF0fSxbYV0pLFV0PW8uY3JlYXRlRWxlbWVudChTdSwoMCxGZS5aKSh7fSxlbix7c2hvd05vdzpCbixzaG93VGltZTpkbixyYW5nZTohMCxtdWx0aXBsZVBhbmVsOl90LGFjdGl2ZUluZm86aWEsZGlzYWJsZWREYXRlOkthLG9uRm9jdXM6VGwsb25CbHVyOlRuLG9uUGFuZWxNb3VzZURvd246amwscGlja2VyOkgsbW9kZTpZdCxpbnRlcm5hbE1vZGU6RXQsb25QYW5lbENoYW5nZTpjYSxmb3JtYXQ6ZCx2YWx1ZTpMbCxpc0ludmFsaWQ6Vmwsb25DaGFuZ2U6bnVsbCxvblNlbGVjdDpBbCxwaWNrZXJWYWx1ZTpoaSxkZWZhdWx0T3BlblZhbHVlOlBvKHo9PW51bGw/dm9pZCAwOnouZGVmYXVsdE9wZW5WYWx1ZSlbR2VdLG9uUGlja2VyVmFsdWVDaGFuZ2U6VW8saG92ZXJWYWx1ZTphYSxvbkhvdmVyOkZsLG5lZWRDb25maXJtOnAsb25TdWJtaXQ6THIsb25PazpadCxwcmVzZXRzOlphLG9uUHJlc2V0SG92ZXI6ZGEsb25QcmVzZXRTdWJtaXQ6Y28sb25Ob3c6R28sY2VsbFJlbmRlcjprbH0pKSxxcj1mdW5jdGlvbihRdCxmbil7dmFyIGNyPXNvKFF0LGZuKTtjdChjcil9LFJhPWZ1bmN0aW9uKCl7T3QoImlucHV0Iil9LFlpPWZ1bmN0aW9uKFF0LGZuKXt2YXIgY3I9VmUubGVuZ3RoLFpyPVZlW2NyLTFdO2lmKGNyJiZaciE9PWZuJiZwJiYhUFtacl0mJiFNZShacikmJmJ0W1pyXSl7WmUuY3VycmVudC5mb2N1cyh7aW5kZXg6WnJ9KTtyZXR1cm59T3QoImlucHV0IiksQmUoITAse2luaGVyaXQ6ITB9KSxHZSE9PWZuJiZwZSYmIXAmJnUmJkxyKG51bGwsITApLG5uKGZuKSxVZShRdCxmbil9LG9wPWZ1bmN0aW9uKFF0LGZuKXtpZihCZSghMSksIXAmJk90KCk9PT0iaW5wdXQiKXt2YXIgY3I9aXQoYnQpO01hKEdlLGNyPT09bnVsbCl9VG4oUXQsZm4pfSxpcD1mdW5jdGlvbihRdCxmbil7UXQua2V5PT09IlRhYiImJkxyKG51bGwsITApLHk9PW51bGx8fHkoUXQsZm4pfSxscD1vLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm57cHJlZml4Q2xzOmYsbG9jYWxlOkIsZ2VuZXJhdGVDb25maWc6WSxidXR0b246UGUuYnV0dG9uLGlucHV0OlBlLmlucHV0fX0sW2YsQixZLFBlLmJ1dHRvbixQZS5pbnB1dF0pO2lmKCgwLFduLlopKGZ1bmN0aW9uKCl7cGUmJkdlIT09dm9pZCAwJiZjYShudWxsLEgsITEpfSxbcGUsR2UsSF0pLCgwLFduLlopKGZ1bmN0aW9uKCl7dmFyIFBuPU90KCk7IXBlJiZQbj09PSJpbnB1dCImJihCZSghMSksTHIobnVsbCwhMCkpLCFwZSYmdSYmIXAmJlBuPT09InBhbmVsIiYmKEJlKCEwKSxMcigpKX0sW3BlXSksMCl2YXIgQnA7cmV0dXJuIG8uY3JlYXRlRWxlbWVudChDYS5Qcm92aWRlcix7dmFsdWU6bHB9LG8uY3JlYXRlRWxlbWVudChZcywoMCxGZS5aKSh7fSxHcyhhKSx7cG9wdXBFbGVtZW50OlV0LHBvcHVwU3R5bGU6bS5wb3B1cCxwb3B1cENsYXNzTmFtZTpoLnBvcHVwLHZpc2libGU6cGUsb25DbG9zZTpIbCxyYW5nZTohMH0pLG8uY3JlYXRlRWxlbWVudChjZywoMCxGZS5aKSh7fSxhLHtyZWY6WmUsc3VmZml4SWNvbjppZSxhY3RpdmVJbmRleDpxZXx8cGU/R2U6bnVsbCxhY3RpdmVIZWxwOiEhQW4sYWxsSGVscDohIUFuJiZiaT09PSJwcmVzZXQiLGZvY3VzZWQ6cWUsb25Gb2N1czpZaSxvbkJsdXI6b3Asb25LZXlEb3duOmlwLG9uU3VibWl0OkxyLHZhbHVlOmFhLG1hc2tGb3JtYXQ6ZCxvbkNoYW5nZTpxcixvbklucHV0Q2hhbmdlOlJhLGZvcm1hdDpjLGlucHV0UmVhZE9ubHk6SixkaXNhYmxlZDp3LG9wZW46cGUsb25PcGVuQ2hhbmdlOkJlLG9uQ2xpY2s6cGksb25DbGVhcjokbyxpbnZhbGlkOmdpLG9uSW52YWxpZDpZbyxvbkFjdGl2ZUluZm86eGF9KSkpKX12YXIgZmc9by5mb3J3YXJkUmVmKGRnKSx2Zz1mZyxtZz1pKDM5OTgzKTtmdW5jdGlvbiBnZyhlKXt2YXIgdD1lLnByZWZpeENscyxuPWUudmFsdWUscj1lLm9uUmVtb3ZlLGE9ZS5yZW1vdmVJY29uLGw9YT09PXZvaWQgMD8iXHhENyI6YSx1PWUuZm9ybWF0RGF0ZSxjPWUuZGlzYWJsZWQsZD1lLm1heFRhZ0NvdW50LHY9ZS5wbGFjZWhvbGRlcixmPSIiLmNvbmNhdCh0LCItc2VsZWN0b3IiKSxtPSIiLmNvbmNhdCh0LCItc2VsZWN0aW9uIiksaD0iIi5jb25jYXQobSwiLW92ZXJmbG93Iik7ZnVuY3Rpb24gQyh5LHcpe3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6b2UoKSgiIi5jb25jYXQobSwiLWl0ZW0iKSksdGl0bGU6dHlwZW9mIHk9PSJzdHJpbmciP3k6bnVsbH0sby5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiIiLmNvbmNhdChtLCItaXRlbS1jb250ZW50Iil9LHkpLCFjJiZ3JiZvLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtvbk1vdXNlRG93bjpmdW5jdGlvbihFKXtFLnByZXZlbnREZWZhdWx0KCl9LG9uQ2xpY2s6dyxjbGFzc05hbWU6IiIuY29uY2F0KG0sIi1pdGVtLXJlbW92ZSIpfSxsKSl9ZnVuY3Rpb24geCh5KXt2YXIgdz11KHkpLFA9ZnVuY3Rpb24oTSl7TSYmTS5zdG9wUHJvcGFnYXRpb24oKSxyKHkpfTtyZXR1cm4gQyh3LFApfWZ1bmN0aW9uIHAoeSl7dmFyIHc9IisgIi5jb25jYXQoeS5sZW5ndGgsIiAuLi4iKTtyZXR1cm4gQyh3KX1yZXR1cm4gby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Zn0sby5jcmVhdGVFbGVtZW50KG1nLlose3ByZWZpeENsczpoLGRhdGE6bixyZW5kZXJJdGVtOngscmVuZGVyUmVzdDpwLGl0ZW1LZXk6ZnVuY3Rpb24odyl7cmV0dXJuIHUodyl9LG1heENvdW50OmR9KSwhbi5sZW5ndGgmJm8uY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToiIi5jb25jYXQodCwiLXNlbGVjdGlvbi1wbGFjZWhvbGRlciIpfSx2KSl9dmFyIGhnPVsiaWQiLCJvcGVuIiwicHJlZml4IiwiY2xlYXJJY29uIiwic3VmZml4SWNvbiIsImFjdGl2ZUhlbHAiLCJhbGxIZWxwIiwiZm9jdXNlZCIsIm9uRm9jdXMiLCJvbkJsdXIiLCJvbktleURvd24iLCJsb2NhbGUiLCJnZW5lcmF0ZUNvbmZpZyIsInBsYWNlaG9sZGVyIiwiY2xhc3NOYW1lIiwic3R5bGUiLCJvbkNsaWNrIiwib25DbGVhciIsImludGVybmFsUGlja2VyIiwidmFsdWUiLCJvbkNoYW5nZSIsIm9uU3VibWl0Iiwib25JbnB1dENoYW5nZSIsIm11bHRpcGxlIiwibWF4VGFnQ291bnQiLCJmb3JtYXQiLCJtYXNrRm9ybWF0IiwicHJlc2VydmVJbnZhbGlkT25CbHVyIiwib25JbnZhbGlkIiwiZGlzYWJsZWQiLCJpbnZhbGlkIiwiaW5wdXRSZWFkT25seSIsImRpcmVjdGlvbiIsIm9uT3BlbkNoYW5nZSIsIm9uTW91c2VEb3duIiwicmVxdWlyZWQiLCJhcmlhLXJlcXVpcmVkIiwiYXV0b0ZvY3VzIiwidGFiSW5kZXgiLCJyZW1vdmVJY29uIl07ZnVuY3Rpb24gcGcoZSx0KXt2YXIgbj1lLmlkLHI9ZS5vcGVuLGE9ZS5wcmVmaXgsbD1lLmNsZWFySWNvbix1PWUuc3VmZml4SWNvbixjPWUuYWN0aXZlSGVscCxkPWUuYWxsSGVscCx2PWUuZm9jdXNlZCxmPWUub25Gb2N1cyxtPWUub25CbHVyLGg9ZS5vbktleURvd24sQz1lLmxvY2FsZSx4PWUuZ2VuZXJhdGVDb25maWcscD1lLnBsYWNlaG9sZGVyLHk9ZS5jbGFzc05hbWUsdz1lLnN0eWxlLFA9ZS5vbkNsaWNrLEU9ZS5vbkNsZWFyLE09ZS5pbnRlcm5hbFBpY2tlcixEPWUudmFsdWUsTj1lLm9uQ2hhbmdlLFQ9ZS5vblN1Ym1pdCxXPWUub25JbnB1dENoYW5nZSxCPWUubXVsdGlwbGUsWT1lLm1heFRhZ0NvdW50LEg9ZS5mb3JtYXQsQT1lLm1hc2tGb3JtYXQsVj1lLnByZXNlcnZlSW52YWxpZE9uQmx1cix6PWUub25JbnZhbGlkLFg9ZS5kaXNhYmxlZCxxPWUuaW52YWxpZCxRPWUuaW5wdXRSZWFkT25seSxhZT1lLmRpcmVjdGlvbixlZT1lLm9uT3BlbkNoYW5nZSxyZT1lLm9uTW91c2VEb3duLHNlPWUucmVxdWlyZWQsSj1lWyJhcmlhLXJlcXVpcmVkIl0saWU9ZS5hdXRvRm9jdXMsY2U9ZS50YWJJbmRleCx4ZT1lLnJlbW92ZUljb24sdWU9KDAsZy5aKShlLGhnKSx5ZT1hZT09PSJydGwiLFBlPW8udXNlQ29udGV4dChDYSksZ2U9UGUucHJlZml4Q2xzLFJlPW8udXNlUmVmKCksU2U9by51c2VSZWYoKTtvLnVzZUltcGVyYXRpdmVIYW5kbGUodCxmdW5jdGlvbigpe3JldHVybntuYXRpdmVFbGVtZW50OlJlLmN1cnJlbnQsZm9jdXM6ZnVuY3Rpb24obnQpe3ZhciBJdDsoSXQ9U2UuY3VycmVudCk9PT1udWxsfHxJdD09PXZvaWQgMHx8SXQuZm9jdXMobnQpfSxibHVyOmZ1bmN0aW9uKCl7dmFyIG50OyhudD1TZS5jdXJyZW50KT09PW51bGx8fG50PT09dm9pZCAwfHxudC5ibHVyKCl9fX0pO3ZhciBJZT13dSh1ZSksWmU9ZnVuY3Rpb24obnQpe04oW250XSl9LENlPWZ1bmN0aW9uKG50KXt2YXIgSXQ9RC5maWx0ZXIoZnVuY3Rpb24oY3Qpe3JldHVybiBjdCYmIWtyKHgsQyxjdCxudCxNKX0pO04oSXQpLHJ8fFQoKX0sRWU9UHUoKDAscy5aKSgoMCxzLlopKHt9LGUpLHt9LHtvbkNoYW5nZTpaZX0pLGZ1bmN0aW9uKHN0KXt2YXIgbnQ9c3QudmFsdWVUZXh0cztyZXR1cm57dmFsdWU6bnRbMF18fCIiLGFjdGl2ZTp2fX0pLHBlPSgwLGouWikoRWUsMiksSmU9cGVbMF0sQmU9cGVbMV0sdnQ9ISEobCYmRC5sZW5ndGgmJiFYKSx5dD1CP28uY3JlYXRlRWxlbWVudChvLkZyYWdtZW50LG51bGwsby5jcmVhdGVFbGVtZW50KGdnLHtwcmVmaXhDbHM6Z2UsdmFsdWU6RCxvblJlbW92ZTpDZSxmb3JtYXREYXRlOkJlLG1heFRhZ0NvdW50OlksZGlzYWJsZWQ6WCxyZW1vdmVJY29uOnhlLHBsYWNlaG9sZGVyOnB9KSxvLmNyZWF0ZUVsZW1lbnQoImlucHV0Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdChnZSwiLW11bHRpcGxlLWlucHV0IiksdmFsdWU6RC5tYXAoQmUpLmpvaW4oIiwiKSxyZWY6U2UscmVhZE9ubHk6ITAsYXV0b0ZvY3VzOmllLHRhYkluZGV4OmNlfSksby5jcmVhdGVFbGVtZW50KFdpLHt0eXBlOiJzdWZmaXgiLGljb246dX0pLHZ0JiZvLmNyZWF0ZUVsZW1lbnQoRWwse2ljb246bCxvbkNsZWFyOkV9KSk6by5jcmVhdGVFbGVtZW50KCRsLCgwLEZlLlopKHtyZWY6U2V9LEplKCkse2F1dG9Gb2N1czppZSx0YWJJbmRleDpjZSxzdWZmaXhJY29uOnUsY2xlYXJJY29uOnZ0JiZvLmNyZWF0ZUVsZW1lbnQoRWwse2ljb246bCxvbkNsZWFyOkV9KSxzaG93QWN0aXZlQ2xzOiExfSkpO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoImRpdiIsKDAsRmUuWikoe30sSWUse2NsYXNzTmFtZTpvZSgpKGdlLCgwLEcuWikoKDAsRy5aKSgoMCxHLlopKCgwLEcuWikoKDAsRy5aKSh7fSwiIi5jb25jYXQoZ2UsIi1tdWx0aXBsZSIpLEIpLCIiLmNvbmNhdChnZSwiLWZvY3VzZWQiKSx2KSwiIi5jb25jYXQoZ2UsIi1kaXNhYmxlZCIpLFgpLCIiLmNvbmNhdChnZSwiLWludmFsaWQiKSxxKSwiIi5jb25jYXQoZ2UsIi1ydGwiKSx5ZSkseSksc3R5bGU6dyxyZWY6UmUsb25DbGljazpQLG9uTW91c2VEb3duOmZ1bmN0aW9uKG50KXt2YXIgSXQsY3Q9bnQudGFyZ2V0O2N0IT09KChJdD1TZS5jdXJyZW50KT09PW51bGx8fEl0PT09dm9pZCAwP3ZvaWQgMDpJdC5pbnB1dEVsZW1lbnQpJiZudC5wcmV2ZW50RGVmYXVsdCgpLHJlPT1udWxsfHxyZShudCl9fSksYSYmby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KGdlLCItcHJlZml4Iil9LGEpLHl0KX12YXIgYmc9by5mb3J3YXJkUmVmKHBnKSx5Zz1iZztmdW5jdGlvbiBDZyhlLHQpe3ZhciBuPWl1KGUpLHI9KDAsai5aKShuLDYpLGE9clswXSxsPXJbMV0sdT1yWzJdLGM9clszXSxkPXJbNF0sdj1yWzVdLGY9YSxtPWYucHJlZml4Q2xzLGg9Zi5zdHlsZXMsQz1mLmNsYXNzTmFtZXMseD1mLm9yZGVyLHA9Zi5kZWZhdWx0VmFsdWUseT1mLnZhbHVlLHc9Zi5uZWVkQ29uZmlybSxQPWYub25DaGFuZ2UsRT1mLm9uS2V5RG93bixNPWYuZGlzYWJsZWQsRD1mLmRpc2FibGVkRGF0ZSxOPWYubWluRGF0ZSxUPWYubWF4RGF0ZSxXPWYuZGVmYXVsdE9wZW4sQj1mLm9wZW4sWT1mLm9uT3BlbkNoYW5nZSxIPWYubG9jYWxlLEE9Zi5nZW5lcmF0ZUNvbmZpZyxWPWYucGlja2VyLHo9Zi5zaG93Tm93LFg9Zi5zaG93VG9kYXkscT1mLnNob3dUaW1lLFE9Zi5tb2RlLGFlPWYub25QYW5lbENoYW5nZSxlZT1mLm9uQ2FsZW5kYXJDaGFuZ2UscmU9Zi5vbk9rLHNlPWYubXVsdGlwbGUsSj1mLmRlZmF1bHRQaWNrZXJWYWx1ZSxpZT1mLnBpY2tlclZhbHVlLGNlPWYub25QaWNrZXJWYWx1ZUNoYW5nZSx4ZT1mLmlucHV0UmVhZE9ubHksdWU9Zi5zdWZmaXhJY29uLHllPWYucmVtb3ZlSWNvbixQZT1mLm9uRm9jdXMsZ2U9Zi5vbkJsdXIsUmU9Zi5wcmVzZXRzLFNlPWYuY29tcG9uZW50cyxJZT1mLmNlbGxSZW5kZXIsWmU9Zi5kYXRlUmVuZGVyLENlPWYubW9udGhDZWxsUmVuZGVyLEVlPWYub25DbGljayxwZT1zdSh0KTtmdW5jdGlvbiBKZShlbil7cmV0dXJuIGVuPT09bnVsbD9udWxsOnNlP2VuOmVuWzBdfXZhciBCZT15dShBLEgsbCksdnQ9bHUoQixXLFtNXSxZKSx5dD0oMCxqLlopKHZ0LDIpLHN0PXl0WzBdLG50PXl0WzFdLEl0PWZ1bmN0aW9uKFV0LHFyLFJhKXtpZihlZSl7dmFyIFlpPSgwLHMuWikoe30sUmEpO2RlbGV0ZSBZaS5yYW5nZSxlZShKZShVdCksSmUocXIpLFlpKX19LGN0PWZ1bmN0aW9uKFV0KXtyZT09bnVsbHx8cmUoSmUoVXQpKX0sWnQ9Z3UoQSxILGMsITEseCxwLHksSXQsY3QpLGJ0PSgwLGouWikoWnQsNSksa3Q9YnRbMF0sQWU9YnRbMV0scWU9YnRbMl0sZXQ9YnRbM10sT3Q9YnRbNF0sR2U9cWUoKSxubj1jdShbTV0pLGl0PSgwLGouWikobm4sNCksVmU9aXRbMF0sdXQ9aXRbMV0sTWU9aXRbMl0sVWU9aXRbM10sVG49ZnVuY3Rpb24oVXQpe3V0KCEwKSxQZT09bnVsbHx8UGUoVXQse30pfSxkbj1mdW5jdGlvbihVdCl7dXQoITEpLGdlPT1udWxsfHxnZShVdCx7fSl9LEtuPSgwLGx0LkM4KShWLHt2YWx1ZTpRfSksTW49KDAsai5aKShLbiwyKSx4dD1NblswXSxTdD1NblsxXSxZdD14dD09PSJkYXRlIiYmcT8iZGF0ZXRpbWUiOnh0LEV0PXB1KFYseHQseixYKSxfdD1QJiZmdW5jdGlvbihlbixVdCl7UChKZShlbiksSmUoVXQpKX0sQm49aHUoKDAscy5aKSgoMCxzLlopKHt9LGEpLHt9LHtvbkNoYW5nZTpfdH0pLGt0LEFlLHFlLGV0LFtdLGMsVmUsc3QsdiksTXI9KDAsai5aKShCbiwyKSxZcj1NclsxXSxNYT1RcyhHZSx2KSxKcj0oMCxqLlopKE1hLDIpLEthPUpyWzBdLFlhPUpyWzFdLEtvPW8udXNlTWVtbyhmdW5jdGlvbigpe3JldHVybiBLYS5zb21lKGZ1bmN0aW9uKGVuKXtyZXR1cm4gZW59KX0sW0thXSksZ2k9ZnVuY3Rpb24oVXQscXIpe2lmKGNlKXt2YXIgUmE9KDAscy5aKSgoMCxzLlopKHt9LHFyKSx7fSx7bW9kZTpxci5tb2RlWzBdfSk7ZGVsZXRlIFJhLnJhbmdlLGNlKFV0WzBdLFJhKX19LFlvPWR1KEEsSCxHZSxbeHRdLHN0LFVlLGwsITEsSixpZSxQbyhxPT1udWxsP3ZvaWQgMDpxLmRlZmF1bHRPcGVuVmFsdWUpLGdpLE4sVCksbG89KDAsai5aKShZbywyKSxJbz1sb1swXSxoaT1sb1sxXSxVbz0oMCxsdC56WCkoZnVuY3Rpb24oZW4sVXQscXIpe2lmKFN0KFV0KSxhZSYmcXIhPT0hMSl7dmFyIFJhPWVufHxHZVtHZS5sZW5ndGgtMV07YWUoUmEsVXQpfX0pLGNhPWZ1bmN0aW9uKCl7WXIocWUoKSksbnQoITEse2ZvcmNlOiEwfSl9LHNvPWZ1bmN0aW9uKFV0KXshTSYmIXBlLmN1cnJlbnQubmF0aXZlRWxlbWVudC5jb250YWlucyhkb2N1bWVudC5hY3RpdmVFbGVtZW50KSYmcGUuY3VycmVudC5mb2N1cygpLG50KCEwKSxFZT09bnVsbHx8RWUoVXQpfSxMcj1mdW5jdGlvbigpe1lyKG51bGwpLG50KCExLHtmb3JjZTohMH0pfSxwaT1vLnVzZVN0YXRlKG51bGwpLCRvPSgwLGouWikocGksMiksWG89JG9bMF0sdW89JG9bMV0sYmk9by51c2VTdGF0ZShudWxsKSxnbj0oMCxqLlopKGJpLDIpLFJ0PWduWzBdLFNuPWduWzFdLEFuPW8udXNlTWVtbyhmdW5jdGlvbigpe3ZhciBlbj1bUnRdLmNvbmNhdCgoMCxsZS5aKShHZSkpLmZpbHRlcihmdW5jdGlvbihVdCl7cmV0dXJuIFV0fSk7cmV0dXJuIHNlP2VuOmVuLnNsaWNlKDAsMSl9LFtHZSxSdCxzZV0pLGlyPW8udXNlTWVtbyhmdW5jdGlvbigpe3JldHVybiFzZSYmUnQ/W1J0XTpHZS5maWx0ZXIoZnVuY3Rpb24oZW4pe3JldHVybiBlbn0pfSxbR2UsUnQsc2VdKTtvLnVzZUVmZmVjdChmdW5jdGlvbigpe3N0fHxTbihudWxsKX0sW3N0XSk7dmFyIGFhPXV1KFJlKSxvYT1mdW5jdGlvbihVdCl7U24oVXQpLHVvKCJwcmVzZXQiKX0sVXI9ZnVuY3Rpb24oVXQpe3ZhciBxcj1zZT9CZShxZSgpLFV0KTpbVXRdLFJhPVlyKHFyKTtSYSYmIXNlJiZudCghMSx7Zm9yY2U6ITB9KX0saWE9ZnVuY3Rpb24oVXQpe1VyKFV0KX0seGE9ZnVuY3Rpb24oVXQpe1NuKFV0KSx1bygiY2VsbCIpfSxaYT1mdW5jdGlvbihVdCl7bnQoITApLFRuKFV0KX0sZGE9ZnVuY3Rpb24oVXQpe2lmKE1lKCJwYW5lbCIpLCEoc2UmJll0IT09Vikpe3ZhciBxcj1zZT9CZShxZSgpLFV0KTpbVXRdO2V0KHFyKSwhdyYmIXUmJmw9PT1ZdCYmY2EoKX19LGNvPWZ1bmN0aW9uKCl7bnQoITEpfSxHbz1wbChJZSxaZSxDZSksRmw9by51c2VNZW1vKGZ1bmN0aW9uKCl7dmFyIGVuPSgwLHFvLlopKGEsITEpLFV0PSgwLHBuLlopKGEsW10uY29uY2F0KCgwLGxlLlopKE9iamVjdC5rZXlzKGVuKSksWyJvbkNoYW5nZSIsIm9uQ2FsZW5kYXJDaGFuZ2UiLCJzdHlsZSIsImNsYXNzTmFtZSIsIm9uUGFuZWxDaGFuZ2UiXSkpO3JldHVybigwLHMuWikoKDAscy5aKSh7fSxVdCkse30se211bHRpcGxlOmEubXVsdGlwbGV9KX0sW2FdKSxUbD1vLmNyZWF0ZUVsZW1lbnQoU3UsKDAsRmUuWikoe30sRmwse3Nob3dOb3c6RXQsc2hvd1RpbWU6cSxkaXNhYmxlZERhdGU6RCxvbkZvY3VzOlphLG9uQmx1cjpkbixwaWNrZXI6Vixtb2RlOnh0LGludGVybmFsTW9kZTpZdCxvblBhbmVsQ2hhbmdlOlVvLGZvcm1hdDpkLHZhbHVlOkdlLGlzSW52YWxpZDp2LG9uQ2hhbmdlOm51bGwsb25TZWxlY3Q6ZGEscGlja2VyVmFsdWU6SW8sZGVmYXVsdE9wZW5WYWx1ZTpxPT1udWxsP3ZvaWQgMDpxLmRlZmF1bHRPcGVuVmFsdWUsb25QaWNrZXJWYWx1ZUNoYW5nZTpoaSxob3ZlclZhbHVlOkFuLG9uSG92ZXI6eGEsbmVlZENvbmZpcm06dyxvblN1Ym1pdDpjYSxvbk9rOk90LHByZXNldHM6YWEsb25QcmVzZXRIb3ZlcjpvYSxvblByZXNldFN1Ym1pdDpVcixvbk5vdzppYSxjZWxsUmVuZGVyOkdvfSkpLGpsPWZ1bmN0aW9uKFV0KXtldChVdCl9LEFsPWZ1bmN0aW9uKCl7TWUoImlucHV0Iil9LEhsPWZ1bmN0aW9uKFV0KXtNZSgiaW5wdXQiKSxudCghMCx7aW5oZXJpdDohMH0pLFRuKFV0KX0sa2w9ZnVuY3Rpb24oVXQpe250KCExKSxkbihVdCl9LExsPWZ1bmN0aW9uKFV0LHFyKXtVdC5rZXk9PT0iVGFiIiYmY2EoKSxFPT1udWxsfHxFKFV0LHFyKX0sVmw9by51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJue3ByZWZpeENsczptLGxvY2FsZTpILGdlbmVyYXRlQ29uZmlnOkEsYnV0dG9uOlNlLmJ1dHRvbixpbnB1dDpTZS5pbnB1dH19LFttLEgsQSxTZS5idXR0b24sU2UuaW5wdXRdKTtyZXR1cm4oMCxXbi5aKShmdW5jdGlvbigpe3N0JiZVZSE9PXZvaWQgMCYmVW8obnVsbCxWLCExKX0sW3N0LFVlLFZdKSwoMCxXbi5aKShmdW5jdGlvbigpe3ZhciBlbj1NZSgpOyFzdCYmZW49PT0iaW5wdXQiJiYobnQoITEpLGNhKCkpLCFzdCYmdSYmIXcmJmVuPT09InBhbmVsIiYmY2EoKX0sW3N0XSksby5jcmVhdGVFbGVtZW50KENhLlByb3ZpZGVyLHt2YWx1ZTpWbH0sby5jcmVhdGVFbGVtZW50KFlzLCgwLEZlLlopKHt9LEdzKGEpLHtwb3B1cEVsZW1lbnQ6VGwscG9wdXBTdHlsZTpoLnBvcHVwLHBvcHVwQ2xhc3NOYW1lOkMucG9wdXAsdmlzaWJsZTpzdCxvbkNsb3NlOmNvfSksby5jcmVhdGVFbGVtZW50KHlnLCgwLEZlLlopKHt9LGEse3JlZjpwZSxzdWZmaXhJY29uOnVlLHJlbW92ZUljb246eWUsYWN0aXZlSGVscDohIVJ0LGFsbEhlbHA6ISFSdCYmWG89PT0icHJlc2V0Iixmb2N1c2VkOlZlLG9uRm9jdXM6SGwsb25CbHVyOmtsLG9uS2V5RG93bjpMbCxvblN1Ym1pdDpjYSx2YWx1ZTppcixtYXNrRm9ybWF0OmQsb25DaGFuZ2U6amwsb25JbnB1dENoYW5nZTpBbCxpbnRlcm5hbFBpY2tlcjpsLGZvcm1hdDpjLGlucHV0UmVhZE9ubHk6eGUsZGlzYWJsZWQ6TSxvcGVuOnN0LG9uT3BlbkNoYW5nZTpudCxvbkNsaWNrOnNvLG9uQ2xlYXI6THIsaW52YWxpZDpLbyxvbkludmFsaWQ6ZnVuY3Rpb24oVXQpe1lhKFV0LDApfX0pKSkpfXZhciB4Zz1vLmZvcndhcmRSZWYoQ2cpLFNnPXhnLFBnPVNnLEl1PWkoODcyMDYpLFZvPWkoNjc3NzEpLCR1PWkoMzMyOTcpLE11PWkoNzk1MTEpLFp1PWkoMTY5MjgpO2NvbnN0IE1sPShlLHQpPT57Y29uc3R7Y29tcG9uZW50Q2xzOm4sY29udHJvbEhlaWdodDpyfT1lLGE9dD9gJHtufS0ke3R9YDoiIixsPSgwLFp1LmdwKShlKTtyZXR1cm5be1tgJHtufS1tdWx0aXBsZSR7YX1gXTp7cGFkZGluZ0Jsb2NrOmwuY29udGFpbmVyUGFkZGluZyxwYWRkaW5nSW5saW5lU3RhcnQ6bC5iYXNlUGFkZGluZyxtaW5IZWlnaHQ6cixbYCR7bn0tc2VsZWN0aW9uLWl0ZW1gXTp7aGVpZ2h0OmwuaXRlbUhlaWdodCxsaW5lSGVpZ2h0OigwLGhlLmJmKShsLml0ZW1MaW5lSGVpZ2h0KX19fV19O3ZhciB3Zz1lPT57Y29uc3R7Y29tcG9uZW50Q2xzOnQsY2FsYzpuLGxpbmVXaWR0aDpyfT1lLGE9KDAsQnIuSVgpKGUse2ZvbnRIZWlnaHQ6ZS5mb250U2l6ZSxzZWxlY3RIZWlnaHQ6ZS5jb250cm9sSGVpZ2h0U00sbXVsdGlwbGVTZWxlY3RJdGVtSGVpZ2h0OmUubXVsdGlwbGVJdGVtSGVpZ2h0U00sYm9yZGVyUmFkaXVzOmUuYm9yZGVyUmFkaXVzU00sYm9yZGVyUmFkaXVzU006ZS5ib3JkZXJSYWRpdXNYUyxjb250cm9sSGVpZ2h0OmUuY29udHJvbEhlaWdodFNNfSksbD0oMCxCci5JWCkoZSx7Zm9udEhlaWdodDpuKGUubXVsdGlwbGVJdGVtSGVpZ2h0TEcpLnN1YihuKHIpLm11bCgyKS5lcXVhbCgpKS5lcXVhbCgpLGZvbnRTaXplOmUuZm9udFNpemVMRyxzZWxlY3RIZWlnaHQ6ZS5jb250cm9sSGVpZ2h0TEcsbXVsdGlwbGVTZWxlY3RJdGVtSGVpZ2h0OmUubXVsdGlwbGVJdGVtSGVpZ2h0TEcsYm9yZGVyUmFkaXVzOmUuYm9yZGVyUmFkaXVzTEcsYm9yZGVyUmFkaXVzU006ZS5ib3JkZXJSYWRpdXMsY29udHJvbEhlaWdodDplLmNvbnRyb2xIZWlnaHRMR30pO3JldHVybltNbChhLCJzbWFsbCIpLE1sKGUpLE1sKGwsImxhcmdlIikse1tgJHt0fSR7dH0tbXVsdGlwbGVgXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe3dpZHRoOiIxMDAlIixjdXJzb3I6InRleHQiLFtgJHt0fS1zZWxlY3RvcmBdOntmbGV4OiJhdXRvIixwYWRkaW5nOjAscG9zaXRpb246InJlbGF0aXZlIiwiJjphZnRlciI6e21hcmdpbjowfSxbYCR7dH0tc2VsZWN0aW9uLXBsYWNlaG9sZGVyYF06e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOiI1MCUiLGluc2V0SW5saW5lU3RhcnQ6ZS5pbnB1dFBhZGRpbmdIb3Jpem9udGFsQmFzZSxpbnNldElubGluZUVuZDowLHRyYW5zZm9ybToidHJhbnNsYXRlWSgtNTAlKSIsdHJhbnNpdGlvbjpgYWxsICR7ZS5tb3Rpb25EdXJhdGlvblNsb3d9YCxvdmVyZmxvdzoiaGlkZGVuIix3aGl0ZVNwYWNlOiJub3dyYXAiLHRleHRPdmVyZmxvdzoiZWxsaXBzaXMiLGZsZXg6MSxjb2xvcjplLmNvbG9yVGV4dFBsYWNlaG9sZGVyLHBvaW50ZXJFdmVudHM6Im5vbmUifX19LCgwLFp1Ll96KShlKSkse1tgJHt0fS1tdWx0aXBsZS1pbnB1dGBdOnt3aWR0aDowLGhlaWdodDowLGJvcmRlcjowLHZpc2liaWxpdHk6ImhpZGRlbiIscG9zaXRpb246ImFic29sdXRlIix6SW5kZXg6LTF9fSl9XX07Y29uc3QgT2c9ZT0+e2NvbnN0e3BpY2tlckNlbGxDbHM6dCxwaWNrZXJDZWxsSW5uZXJDbHM6bixjZWxsSGVpZ2h0OnIsYm9yZGVyUmFkaXVzU006YSxtb3Rpb25EdXJhdGlvbk1pZDpsLGNlbGxIb3ZlckJnOnUsbGluZVdpZHRoOmMsbGluZVR5cGU6ZCxjb2xvclByaW1hcnk6dixjZWxsQWN0aXZlV2l0aFJhbmdlQmc6Zixjb2xvclRleHRMaWdodFNvbGlkOm0sY29sb3JUZXh0RGlzYWJsZWQ6aCxjZWxsQmdEaXNhYmxlZDpDLGNvbG9yRmlsbFNlY29uZGFyeTp4fT1lO3JldHVybnsiJjo6YmVmb3JlIjp7cG9zaXRpb246ImFic29sdXRlIix0b3A6IjUwJSIsaW5zZXRJbmxpbmVTdGFydDowLGluc2V0SW5saW5lRW5kOjAsekluZGV4OjEsaGVpZ2h0OnIsdHJhbnNmb3JtOiJ0cmFuc2xhdGVZKC01MCUpIixjb250ZW50OiciIicscG9pbnRlckV2ZW50czoibm9uZSJ9LFtuXTp7cG9zaXRpb246InJlbGF0aXZlIix6SW5kZXg6MixkaXNwbGF5OiJpbmxpbmUtYmxvY2siLG1pbldpZHRoOnIsaGVpZ2h0OnIsbGluZUhlaWdodDooMCxoZS5iZikociksYm9yZGVyUmFkaXVzOmEsdHJhbnNpdGlvbjpgYmFja2dyb3VuZCAke2x9YH0sW2AmOmhvdmVyOm5vdCgke3R9LWluLXZpZXcpOm5vdCgke3R9LWRpc2FibGVkKSwKKyAgICAmOmhvdmVyOm5vdCgke3R9LXNlbGVjdGVkKTpub3QoJHt0fS1yYW5nZS1zdGFydCk6bm90KCR7dH0tcmFuZ2UtZW5kKTpub3QoJHt0fS1kaXNhYmxlZClgXTp7W25dOntiYWNrZ3JvdW5kOnV9fSxbYCYtaW4tdmlldyR7dH0tdG9kYXkgJHtufWBdOnsiJjo6YmVmb3JlIjp7cG9zaXRpb246ImFic29sdXRlIix0b3A6MCxpbnNldElubGluZUVuZDowLGJvdHRvbTowLGluc2V0SW5saW5lU3RhcnQ6MCx6SW5kZXg6MSxib3JkZXI6YCR7KDAsaGUuYmYpKGMpfSAke2R9ICR7dn1gLGJvcmRlclJhZGl1czphLGNvbnRlbnQ6JyIiJ319LFtgJi1pbi12aWV3JHt0fS1pbi1yYW5nZSwKKyAgICAgICYtaW4tdmlldyR7dH0tcmFuZ2Utc3RhcnQsCisgICAgICAmLWluLXZpZXcke3R9LXJhbmdlLWVuZGBdOntwb3NpdGlvbjoicmVsYXRpdmUiLFtgJjpub3QoJHt0fS1kaXNhYmxlZCk6YmVmb3JlYF06e2JhY2tncm91bmQ6Zn19LFtgJi1pbi12aWV3JHt0fS1zZWxlY3RlZCwKKyAgICAgICYtaW4tdmlldyR7dH0tcmFuZ2Utc3RhcnQsCisgICAgICAmLWluLXZpZXcke3R9LXJhbmdlLWVuZGBdOntbYCY6bm90KCR7dH0tZGlzYWJsZWQpICR7bn1gXTp7Y29sb3I6bSxiYWNrZ3JvdW5kOnZ9LFtgJiR7dH0tZGlzYWJsZWQgJHtufWBdOntiYWNrZ3JvdW5kOnh9fSxbYCYtaW4tdmlldyR7dH0tcmFuZ2Utc3RhcnQ6bm90KCR7dH0tZGlzYWJsZWQpOmJlZm9yZWBdOntpbnNldElubGluZVN0YXJ0OiI1MCUifSxbYCYtaW4tdmlldyR7dH0tcmFuZ2UtZW5kOm5vdCgke3R9LWRpc2FibGVkKTpiZWZvcmVgXTp7aW5zZXRJbmxpbmVFbmQ6IjUwJSJ9LFtgJi1pbi12aWV3JHt0fS1yYW5nZS1zdGFydDpub3QoJHt0fS1yYW5nZS1lbmQpICR7bn1gXTp7Ym9yZGVyU3RhcnRTdGFydFJhZGl1czphLGJvcmRlckVuZFN0YXJ0UmFkaXVzOmEsYm9yZGVyU3RhcnRFbmRSYWRpdXM6MCxib3JkZXJFbmRFbmRSYWRpdXM6MH0sW2AmLWluLXZpZXcke3R9LXJhbmdlLWVuZDpub3QoJHt0fS1yYW5nZS1zdGFydCkgJHtufWBdOntib3JkZXJTdGFydFN0YXJ0UmFkaXVzOjAsYm9yZGVyRW5kU3RhcnRSYWRpdXM6MCxib3JkZXJTdGFydEVuZFJhZGl1czphLGJvcmRlckVuZEVuZFJhZGl1czphfSwiJi1kaXNhYmxlZCI6e2NvbG9yOmgsY3Vyc29yOiJub3QtYWxsb3dlZCIsW25dOntiYWNrZ3JvdW5kOiJ0cmFuc3BhcmVudCJ9LCImOjpiZWZvcmUiOntiYWNrZ3JvdW5kOkN9fSxbYCYtZGlzYWJsZWQke3R9LXRvZGF5ICR7bn06OmJlZm9yZWBdOntib3JkZXJDb2xvcjpofX19LEVnPWU9Pntjb25zdHtjb21wb25lbnRDbHM6dCxwaWNrZXJDZWxsQ2xzOm4scGlja2VyQ2VsbElubmVyQ2xzOnIscGlja2VyWWVhck1vbnRoQ2VsbFdpZHRoOmEscGlja2VyQ29udHJvbEljb25TaXplOmwsY2VsbFdpZHRoOnUscGFkZGluZ1NNOmMscGFkZGluZ1hTOmQscGFkZGluZ1hYUzp2LGNvbG9yQmdDb250YWluZXI6ZixsaW5lV2lkdGg6bSxsaW5lVHlwZTpoLGJvcmRlclJhZGl1c0xHOkMsY29sb3JQcmltYXJ5OngsY29sb3JUZXh0SGVhZGluZzpwLGNvbG9yU3BsaXQ6eSxwaWNrZXJDb250cm9sSWNvbkJvcmRlcldpZHRoOncsY29sb3JJY29uOlAsdGV4dEhlaWdodDpFLG1vdGlvbkR1cmF0aW9uTWlkOk0sY29sb3JJY29uSG92ZXI6RCxmb250V2VpZ2h0U3Ryb25nOk4sY2VsbEhlaWdodDpULHBpY2tlckNlbGxQYWRkaW5nVmVydGljYWw6Vyxjb2xvclRleHREaXNhYmxlZDpCLGNvbG9yVGV4dDpZLGZvbnRTaXplOkgsbW90aW9uRHVyYXRpb25TbG93OkEsd2l0aG91dFRpbWVDZWxsSGVpZ2h0OlYscGlja2VyUXVhcnRlclBhbmVsQ29udGVudEhlaWdodDp6LGJvcmRlclJhZGl1c1NNOlgsY29sb3JUZXh0TGlnaHRTb2xpZDpxLGNlbGxIb3ZlckJnOlEsdGltZUNvbHVtbkhlaWdodDphZSx0aW1lQ29sdW1uV2lkdGg6ZWUsdGltZUNlbGxIZWlnaHQ6cmUsY29udHJvbEl0ZW1CZ0FjdGl2ZTpzZSxtYXJnaW5YWFM6SixwaWNrZXJEYXRlUGFuZWxQYWRkaW5nSG9yaXpvbnRhbDppZSxwaWNrZXJDb250cm9sSWNvbk1hcmdpbjpjZX09ZSx4ZT1lLmNhbGModSkubXVsKDcpLmFkZChlLmNhbGMoaWUpLm11bCgyKSkuZXF1YWwoKTtyZXR1cm57W3RdOnsiJi1wYW5lbCI6e2Rpc3BsYXk6ImlubGluZS1mbGV4IixmbGV4RGlyZWN0aW9uOiJjb2x1bW4iLHRleHRBbGlnbjoiY2VudGVyIixiYWNrZ3JvdW5kOmYsYm9yZGVyUmFkaXVzOkMsb3V0bGluZToibm9uZSIsIiYtZm9jdXNlZCI6e2JvcmRlckNvbG9yOnh9LCImLXJ0bCI6e1tgJHt0fS1wcmV2LWljb24sCisgICAgICAgICAgICAgICR7dH0tc3VwZXItcHJldi1pY29uYF06e3RyYW5zZm9ybToicm90YXRlKDQ1ZGVnKSJ9LFtgJHt0fS1uZXh0LWljb24sCisgICAgICAgICAgICAgICR7dH0tc3VwZXItbmV4dC1pY29uYF06e3RyYW5zZm9ybToicm90YXRlKC0xMzVkZWcpIn0sW2Ake3R9LXRpbWUtcGFuZWxgXTp7W2Ake3R9LWNvbnRlbnRgXTp7ZGlyZWN0aW9uOiJsdHIiLCI+ICoiOntkaXJlY3Rpb246InJ0bCJ9fX19fSwiJi1kZWNhZGUtcGFuZWwsXG4gICAgICAgICYteWVhci1wYW5lbCxcbiAgICAgICAgJi1xdWFydGVyLXBhbmVsLFxuICAgICAgICAmLW1vbnRoLXBhbmVsLFxuICAgICAgICAmLXdlZWstcGFuZWwsXG4gICAgICAgICYtZGF0ZS1wYW5lbCxcbiAgICAgICAgJi10aW1lLXBhbmVsIjp7ZGlzcGxheToiZmxleCIsZmxleERpcmVjdGlvbjoiY29sdW1uIix3aWR0aDp4ZX0sIiYtaGVhZGVyIjp7ZGlzcGxheToiZmxleCIscGFkZGluZzpgMCAkeygwLGhlLmJmKShkKX1gLGNvbG9yOnAsYm9yZGVyQm90dG9tOmAkeygwLGhlLmJmKShtKX0gJHtofSAke3l9YCwiPiAqIjp7ZmxleDoibm9uZSJ9LGJ1dHRvbjp7cGFkZGluZzowLGNvbG9yOlAsbGluZUhlaWdodDooMCxoZS5iZikoRSksYmFja2dyb3VuZDoidHJhbnNwYXJlbnQiLGJvcmRlcjowLGN1cnNvcjoicG9pbnRlciIsdHJhbnNpdGlvbjpgY29sb3IgJHtNfWAsZm9udFNpemU6ImluaGVyaXQiLGRpc3BsYXk6ImlubGluZS1mbGV4IixhbGlnbkl0ZW1zOiJjZW50ZXIiLGp1c3RpZnlDb250ZW50OiJjZW50ZXIiLCImOmVtcHR5Ijp7ZGlzcGxheToibm9uZSJ9fSwiPiBidXR0b24iOnttaW5XaWR0aDoiMS42ZW0iLGZvbnRTaXplOkgsIiY6aG92ZXIiOntjb2xvcjpEfSwiJjpkaXNhYmxlZCI6e29wYWNpdHk6LjI1LHBvaW50ZXJFdmVudHM6Im5vbmUifX0sIiYtdmlldyI6e2ZsZXg6ImF1dG8iLGZvbnRXZWlnaHQ6TixsaW5lSGVpZ2h0OigwLGhlLmJmKShFKSwiPiBidXR0b24iOntjb2xvcjoiaW5oZXJpdCIsZm9udFdlaWdodDoiaW5oZXJpdCIsdmVydGljYWxBbGlnbjoidG9wIiwiJjpub3QoOmZpcnN0LWNoaWxkKSI6e21hcmdpbklubGluZVN0YXJ0OmR9LCImOmhvdmVyIjp7Y29sb3I6eH19fX0sIiYtcHJldi1pY29uLFxuICAgICAgICAmLW5leHQtaWNvbixcbiAgICAgICAgJi1zdXBlci1wcmV2LWljb24sXG4gICAgICAgICYtc3VwZXItbmV4dC1pY29uIjp7cG9zaXRpb246InJlbGF0aXZlIix3aWR0aDpsLGhlaWdodDpsLCImOjpiZWZvcmUiOntwb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDowLGluc2V0SW5saW5lU3RhcnQ6MCx3aWR0aDpsLGhlaWdodDpsLGJvcmRlcjoiMCBzb2xpZCBjdXJyZW50Y29sb3IiLGJvcmRlckJsb2NrV2lkdGg6YCR7KDAsaGUuYmYpKHcpfSAwYCxib3JkZXJJbmxpbmVXaWR0aDpgJHsoMCxoZS5iZikodyl9IDBgLGNvbnRlbnQ6JyIiJ319LCImLXN1cGVyLXByZXYtaWNvbixcbiAgICAgICAgJi1zdXBlci1uZXh0LWljb24iOnsiJjo6YWZ0ZXIiOntwb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDpjZSxpbnNldElubGluZVN0YXJ0OmNlLGRpc3BsYXk6ImlubGluZS1ibG9jayIsd2lkdGg6bCxoZWlnaHQ6bCxib3JkZXI6IjAgc29saWQgY3VycmVudGNvbG9yIixib3JkZXJCbG9ja1dpZHRoOmAkeygwLGhlLmJmKSh3KX0gMGAsYm9yZGVySW5saW5lV2lkdGg6YCR7KDAsaGUuYmYpKHcpfSAwYCxjb250ZW50OiciIid9fSwiJi1wcmV2LWljb24sICYtc3VwZXItcHJldi1pY29uIjp7dHJhbnNmb3JtOiJyb3RhdGUoLTQ1ZGVnKSJ9LCImLW5leHQtaWNvbiwgJi1zdXBlci1uZXh0LWljb24iOnt0cmFuc2Zvcm06InJvdGF0ZSgxMzVkZWcpIn0sIiYtY29udGVudCI6e3dpZHRoOiIxMDAlIix0YWJsZUxheW91dDoiZml4ZWQiLGJvcmRlckNvbGxhcHNlOiJjb2xsYXBzZSIsInRoLCB0ZCI6e3Bvc2l0aW9uOiJyZWxhdGl2ZSIsbWluV2lkdGg6VCxmb250V2VpZ2h0OiJub3JtYWwifSx0aDp7aGVpZ2h0OmUuY2FsYyhUKS5hZGQoZS5jYWxjKFcpLm11bCgyKSkuZXF1YWwoKSxjb2xvcjpZLHZlcnRpY2FsQWxpZ246Im1pZGRsZSJ9fSwiJi1jZWxsIjpPYmplY3QuYXNzaWduKHtwYWRkaW5nOmAkeygwLGhlLmJmKShXKX0gMGAsY29sb3I6QixjdXJzb3I6InBvaW50ZXIiLCImLWluLXZpZXciOntjb2xvcjpZfX0sT2coZSkpLCImLWRlY2FkZS1wYW5lbCxcbiAgICAgICAgJi15ZWFyLXBhbmVsLFxuICAgICAgICAmLXF1YXJ0ZXItcGFuZWwsXG4gICAgICAgICYtbW9udGgtcGFuZWwiOntbYCR7dH0tY29udGVudGBdOntoZWlnaHQ6ZS5jYWxjKFYpLm11bCg0KS5lcXVhbCgpfSxbcl06e3BhZGRpbmc6YDAgJHsoMCxoZS5iZikoZCl9YH19LCImLXF1YXJ0ZXItcGFuZWwiOntbYCR7dH0tY29udGVudGBdOntoZWlnaHQ6en19LCImLWRlY2FkZS1wYW5lbCI6e1tyXTp7cGFkZGluZzpgMCAkeygwLGhlLmJmKShlLmNhbGMoZCkuZGl2KDIpLmVxdWFsKCkpfWB9LFtgJHt0fS1jZWxsOjpiZWZvcmVgXTp7ZGlzcGxheToibm9uZSJ9fSwiJi15ZWFyLXBhbmVsLFxuICAgICAgICAmLXF1YXJ0ZXItcGFuZWwsXG4gICAgICAgICYtbW9udGgtcGFuZWwiOntbYCR7dH0tYm9keWBdOntwYWRkaW5nOmAwICR7KDAsaGUuYmYpKGQpfWB9LFtyXTp7d2lkdGg6YX19LCImLWRhdGUtcGFuZWwiOntbYCR7dH0tYm9keWBdOntwYWRkaW5nOmAkeygwLGhlLmJmKShkKX0gJHsoMCxoZS5iZikoaWUpfWB9LFtgJHt0fS1jb250ZW50IHRoYF06e2JveFNpemluZzoiYm9yZGVyLWJveCIscGFkZGluZzowfX0sIiYtd2Vlay1wYW5lbCI6e1tgJHt0fS1jZWxsYF06e1tgJjpob3ZlciAke3J9LAorICAgICAgICAgICAgJi1zZWxlY3RlZCAke3J9LAorICAgICAgICAgICAgJHtyfWBdOntiYWNrZ3JvdW5kOiJ0cmFuc3BhcmVudCAhaW1wb3J0YW50In19LCImLXJvdyI6e3RkOnsiJjpiZWZvcmUiOnt0cmFuc2l0aW9uOmBiYWNrZ3JvdW5kICR7TX1gfSwiJjpmaXJzdC1jaGlsZDpiZWZvcmUiOntib3JkZXJTdGFydFN0YXJ0UmFkaXVzOlgsYm9yZGVyRW5kU3RhcnRSYWRpdXM6WH0sIiY6bGFzdC1jaGlsZDpiZWZvcmUiOntib3JkZXJTdGFydEVuZFJhZGl1czpYLGJvcmRlckVuZEVuZFJhZGl1czpYfX0sIiY6aG92ZXIgdGQ6YmVmb3JlIjp7YmFja2dyb3VuZDpRfSwiJi1yYW5nZS1zdGFydCB0ZCwgJi1yYW5nZS1lbmQgdGQsICYtc2VsZWN0ZWQgdGQsICYtaG92ZXIgdGQiOntbYCYke259YF06eyImOmJlZm9yZSI6e2JhY2tncm91bmQ6eH0sW2AmJHt0fS1jZWxsLXdlZWtgXTp7Y29sb3I6bmV3IGJvLnQocSkuc2V0QSguNSkudG9IZXhTdHJpbmcoKX0sW3JdOntjb2xvcjpxfX19LCImLXJhbmdlLWhvdmVyIHRkOmJlZm9yZSI6e2JhY2tncm91bmQ6c2V9fX0sIiYtd2Vlay1wYW5lbCwgJi1kYXRlLXBhbmVsLXNob3ctd2VlayI6e1tgJHt0fS1ib2R5YF06e3BhZGRpbmc6YCR7KDAsaGUuYmYpKGQpfSAkeygwLGhlLmJmKShjKX1gfSxbYCR7dH0tY29udGVudCB0aGBdOnt3aWR0aDoiYXV0byJ9fSwiJi1kYXRldGltZS1wYW5lbCI6e2Rpc3BsYXk6ImZsZXgiLFtgJHt0fS10aW1lLXBhbmVsYF06e2JvcmRlcklubGluZVN0YXJ0OmAkeygwLGhlLmJmKShtKX0gJHtofSAke3l9YH0sW2Ake3R9LWRhdGUtcGFuZWwsCisgICAgICAgICAgJHt0fS10aW1lLXBhbmVsYF06e3RyYW5zaXRpb246YG9wYWNpdHkgJHtBfWB9LCImLWFjdGl2ZSI6e1tgJHt0fS1kYXRlLXBhbmVsLAorICAgICAgICAgICAgJHt0fS10aW1lLXBhbmVsYF06e29wYWNpdHk6LjMsIiYtYWN0aXZlIjp7b3BhY2l0eToxfX19fSwiJi10aW1lLXBhbmVsIjp7d2lkdGg6ImF1dG8iLG1pbldpZHRoOiJhdXRvIixbYCR7dH0tY29udGVudGBdOntkaXNwbGF5OiJmbGV4IixmbGV4OiJhdXRvIixoZWlnaHQ6YWV9LCImLWNvbHVtbiI6e2ZsZXg6IjEgMCBhdXRvIix3aWR0aDplZSxtYXJnaW46YCR7KDAsaGUuYmYpKHYpfSAwYCxwYWRkaW5nOjAsb3ZlcmZsb3dZOiJoaWRkZW4iLHRleHRBbGlnbjoic3RhcnQiLGxpc3RTdHlsZToibm9uZSIsdHJhbnNpdGlvbjpgYmFja2dyb3VuZCAke019YCxvdmVyZmxvd1g6ImhpZGRlbiIsIiY6Oi13ZWJraXQtc2Nyb2xsYmFyIjp7d2lkdGg6OCxiYWNrZ3JvdW5kQ29sb3I6InRyYW5zcGFyZW50In0sIiY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIjp7YmFja2dyb3VuZENvbG9yOmUuY29sb3JUZXh0VGVydGlhcnksYm9yZGVyUmFkaXVzOmUuYm9yZGVyUmFkaXVzU019LCImIjp7c2Nyb2xsYmFyV2lkdGg6InRoaW4iLHNjcm9sbGJhckNvbG9yOmAke2UuY29sb3JUZXh0VGVydGlhcnl9IHRyYW5zcGFyZW50YH0sIiY6OmFmdGVyIjp7ZGlzcGxheToiYmxvY2siLGhlaWdodDpgY2FsYygxMDAlIC0gJHsoMCxoZS5iZikocmUpfSlgLGNvbnRlbnQ6JyIiJ30sIiY6bm90KDpmaXJzdC1jaGlsZCkiOntib3JkZXJJbmxpbmVTdGFydDpgJHsoMCxoZS5iZikobSl9ICR7aH0gJHt5fWB9LCImLWFjdGl2ZSI6e2JhY2tncm91bmQ6bmV3IGJvLnQoc2UpLnNldEEoLjIpLnRvSGV4U3RyaW5nKCl9LCImOmhvdmVyIjp7b3ZlcmZsb3dZOiJhdXRvIn0sIj4gbGkiOnttYXJnaW46MCxwYWRkaW5nOjAsW2AmJHt0fS10aW1lLXBhbmVsLWNlbGxgXTp7bWFyZ2luSW5saW5lOkosW2Ake3R9LXRpbWUtcGFuZWwtY2VsbC1pbm5lcmBdOntkaXNwbGF5OiJibG9jayIsd2lkdGg6ZS5jYWxjKGVlKS5zdWIoZS5jYWxjKEopLm11bCgyKSkuZXF1YWwoKSxoZWlnaHQ6cmUsbWFyZ2luOjAscGFkZGluZ0Jsb2NrOjAscGFkZGluZ0lubGluZUVuZDowLHBhZGRpbmdJbmxpbmVTdGFydDplLmNhbGMoZWUpLnN1YihyZSkuZGl2KDIpLmVxdWFsKCksY29sb3I6WSxsaW5lSGVpZ2h0OigwLGhlLmJmKShyZSksYm9yZGVyUmFkaXVzOlgsY3Vyc29yOiJwb2ludGVyIix0cmFuc2l0aW9uOmBiYWNrZ3JvdW5kICR7TX1gLCImOmhvdmVyIjp7YmFja2dyb3VuZDpRfX0sIiYtc2VsZWN0ZWQiOntbYCR7dH0tdGltZS1wYW5lbC1jZWxsLWlubmVyYF06e2JhY2tncm91bmQ6c2V9fSwiJi1kaXNhYmxlZCI6e1tgJHt0fS10aW1lLXBhbmVsLWNlbGwtaW5uZXJgXTp7Y29sb3I6QixiYWNrZ3JvdW5kOiJ0cmFuc3BhcmVudCIsY3Vyc29yOiJub3QtYWxsb3dlZCJ9fX19fX19fX07dmFyIElnPWU9Pntjb25zdHtjb21wb25lbnRDbHM6dCx0ZXh0SGVpZ2h0Om4sbGluZVdpZHRoOnIscGFkZGluZ1NNOmEsYW50Q2xzOmwsY29sb3JQcmltYXJ5OnUsY2VsbEFjdGl2ZVdpdGhSYW5nZUJnOmMsY29sb3JQcmltYXJ5Qm9yZGVyOmQsbGluZVR5cGU6dixjb2xvclNwbGl0OmZ9PWU7cmV0dXJue1tgJHt0fS1kcm9wZG93bmBdOntbYCR7dH0tZm9vdGVyYF06e2JvcmRlclRvcDpgJHsoMCxoZS5iZikocil9ICR7dn0gJHtmfWAsIiYtZXh0cmEiOntwYWRkaW5nOmAwICR7KDAsaGUuYmYpKGEpfWAsbGluZUhlaWdodDooMCxoZS5iZikoZS5jYWxjKG4pLnN1YihlLmNhbGMocikubXVsKDIpKS5lcXVhbCgpKSx0ZXh0QWxpZ246InN0YXJ0IiwiJjpub3QoOmxhc3QtY2hpbGQpIjp7Ym9yZGVyQm90dG9tOmAkeygwLGhlLmJmKShyKX0gJHt2fSAke2Z9YH19fSxbYCR7dH0tcGFuZWxzICsgJHt0fS1mb290ZXIgJHt0fS1yYW5nZXNgXTp7anVzdGlmeUNvbnRlbnQ6InNwYWNlLWJldHdlZW4ifSxbYCR7dH0tcmFuZ2VzYF06e21hcmdpbkJsb2NrOjAscGFkZGluZ0lubGluZTooMCxoZS5iZikoYSksb3ZlcmZsb3c6ImhpZGRlbiIsdGV4dEFsaWduOiJzdGFydCIsbGlzdFN0eWxlOiJub25lIixkaXNwbGF5OiJmbGV4IixqdXN0aWZ5Q29udGVudDoiY2VudGVyIixhbGlnbkl0ZW1zOiJjZW50ZXIiLCI+IGxpIjp7bGluZUhlaWdodDooMCxoZS5iZikoZS5jYWxjKG4pLnN1YihlLmNhbGMocikubXVsKDIpKS5lcXVhbCgpKSxkaXNwbGF5OiJpbmxpbmUtYmxvY2sifSxbYCR7dH0tbm93LWJ0bi1kaXNhYmxlZGBdOntwb2ludGVyRXZlbnRzOiJub25lIixjb2xvcjplLmNvbG9yVGV4dERpc2FibGVkfSxbYCR7dH0tcHJlc2V0ID4gJHtsfS10YWctYmx1ZWBdOntjb2xvcjp1LGJhY2tncm91bmQ6Yyxib3JkZXJDb2xvcjpkLGN1cnNvcjoicG9pbnRlciJ9LFtgJHt0fS1va2BdOntwYWRkaW5nQmxvY2s6ZS5jYWxjKHIpLm11bCgyKS5lcXVhbCgpLG1hcmdpbklubGluZVN0YXJ0OiJhdXRvIn19fX19O2NvbnN0ICRnPWU9Pntjb25zdHtjb21wb25lbnRDbHM6dCxjb250cm9sSGVpZ2h0TEc6bixwYWRkaW5nWFhTOnIscGFkZGluZzphfT1lO3JldHVybntwaWNrZXJDZWxsQ2xzOmAke3R9LWNlbGxgLHBpY2tlckNlbGxJbm5lckNsczpgJHt0fS1jZWxsLWlubmVyYCxwaWNrZXJZZWFyTW9udGhDZWxsV2lkdGg6ZS5jYWxjKG4pLm11bCgxLjUpLmVxdWFsKCkscGlja2VyUXVhcnRlclBhbmVsQ29udGVudEhlaWdodDplLmNhbGMobikubXVsKDEuNCkuZXF1YWwoKSxwaWNrZXJDZWxsUGFkZGluZ1ZlcnRpY2FsOmUuY2FsYyhyKS5hZGQoZS5jYWxjKHIpLmRpdigyKSkuZXF1YWwoKSxwaWNrZXJDZWxsQm9yZGVyR2FwOjIscGlja2VyQ29udHJvbEljb25TaXplOjcscGlja2VyQ29udHJvbEljb25NYXJnaW46NCxwaWNrZXJDb250cm9sSWNvbkJvcmRlcldpZHRoOjEuNSxwaWNrZXJEYXRlUGFuZWxQYWRkaW5nSG9yaXpvbnRhbDplLmNhbGMoYSkuYWRkKGUuY2FsYyhyKS5kaXYoMikpLmVxdWFsKCl9fSxNZz1lPT57Y29uc3R7Y29sb3JCZ0NvbnRhaW5lckRpc2FibGVkOnQsY29udHJvbEhlaWdodDpuLGNvbnRyb2xIZWlnaHRTTTpyLGNvbnRyb2xIZWlnaHRMRzphLHBhZGRpbmdYWFM6bCxsaW5lV2lkdGg6dX09ZSxjPWwqMixkPXUqMix2PU1hdGgubWluKG4tYyxuLWQpLGY9TWF0aC5taW4oci1jLHItZCksbT1NYXRoLm1pbihhLWMsYS1kKTtyZXR1cm57SU5URVJOQUxfRklYRURfSVRFTV9NQVJHSU46TWF0aC5mbG9vcihsLzIpLGNlbGxIb3ZlckJnOmUuY29udHJvbEl0ZW1CZ0hvdmVyLGNlbGxBY3RpdmVXaXRoUmFuZ2VCZzplLmNvbnRyb2xJdGVtQmdBY3RpdmUsY2VsbEhvdmVyV2l0aFJhbmdlQmc6bmV3IGJvLnQoZS5jb2xvclByaW1hcnkpLmxpZ2h0ZW4oMzUpLnRvSGV4U3RyaW5nKCksY2VsbFJhbmdlQm9yZGVyQ29sb3I6bmV3IGJvLnQoZS5jb2xvclByaW1hcnkpLmxpZ2h0ZW4oMjApLnRvSGV4U3RyaW5nKCksY2VsbEJnRGlzYWJsZWQ6dCx0aW1lQ29sdW1uV2lkdGg6YSoxLjQsdGltZUNvbHVtbkhlaWdodDoyOCo4LHRpbWVDZWxsSGVpZ2h0OjI4LGNlbGxXaWR0aDpyKjEuNSxjZWxsSGVpZ2h0OnIsdGV4dEhlaWdodDphLHdpdGhvdXRUaW1lQ2VsbEhlaWdodDphKjEuNjUsbXVsdGlwbGVJdGVtQmc6ZS5jb2xvckZpbGxTZWNvbmRhcnksbXVsdGlwbGVJdGVtQm9yZGVyQ29sb3I6InRyYW5zcGFyZW50IixtdWx0aXBsZUl0ZW1IZWlnaHQ6dixtdWx0aXBsZUl0ZW1IZWlnaHRTTTpmLG11bHRpcGxlSXRlbUhlaWdodExHOm0sbXVsdGlwbGVTZWxlY3RvckJnRGlzYWJsZWQ6dCxtdWx0aXBsZUl0ZW1Db2xvckRpc2FibGVkOmUuY29sb3JUZXh0RGlzYWJsZWQsbXVsdGlwbGVJdGVtQm9yZGVyQ29sb3JEaXNhYmxlZDoidHJhbnNwYXJlbnQifX0sWmc9ZT0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwoMCxTaS5UKShlKSksTWcoZSkpLCgwLE11LncpKGUpKSx7cHJlc2V0c1dpZHRoOjEyMCxwcmVzZXRzTWF4V2lkdGg6MjAwLHpJbmRleFBvcHVwOmUuekluZGV4UG9wdXBCYXNlKzUwfSk7dmFyIFJnPWU9Pntjb25zdHtjb21wb25lbnRDbHM6dH09ZTtyZXR1cm57W3RdOltPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCgwLCRhLnFHKShlKSksKDAsJGEudmMpKGUpKSwoMCwkYS5IOCkoZSkpLCgwLCRhLk11KShlKSkseyImLW91dGxpbmVkIjp7W2AmJHt0fS1tdWx0aXBsZSAke3R9LXNlbGVjdGlvbi1pdGVtYF06e2JhY2tncm91bmQ6ZS5tdWx0aXBsZUl0ZW1CZyxib3JkZXI6YCR7KDAsaGUuYmYpKGUubGluZVdpZHRoKX0gJHtlLmxpbmVUeXBlfSAke2UubXVsdGlwbGVJdGVtQm9yZGVyQ29sb3J9YH19LCImLWZpbGxlZCI6e1tgJiR7dH0tbXVsdGlwbGUgJHt0fS1zZWxlY3Rpb24taXRlbWBdOntiYWNrZ3JvdW5kOmUuY29sb3JCZ0NvbnRhaW5lcixib3JkZXI6YCR7KDAsaGUuYmYpKGUubGluZVdpZHRoKX0gJHtlLmxpbmVUeXBlfSAke2UuY29sb3JTcGxpdH1gfX0sIiYtYm9yZGVybGVzcyI6e1tgJiR7dH0tbXVsdGlwbGUgJHt0fS1zZWxlY3Rpb24taXRlbWBdOntiYWNrZ3JvdW5kOmUubXVsdGlwbGVJdGVtQmcsYm9yZGVyOmAkeygwLGhlLmJmKShlLmxpbmVXaWR0aCl9ICR7ZS5saW5lVHlwZX0gJHtlLm11bHRpcGxlSXRlbUJvcmRlckNvbG9yfWB9fSwiJi11bmRlcmxpbmVkIjp7W2AmJHt0fS1tdWx0aXBsZSAke3R9LXNlbGVjdGlvbi1pdGVtYF06e2JhY2tncm91bmQ6ZS5tdWx0aXBsZUl0ZW1CZyxib3JkZXI6YCR7KDAsaGUuYmYpKGUubGluZVdpZHRoKX0gJHtlLmxpbmVUeXBlfSAke2UubXVsdGlwbGVJdGVtQm9yZGVyQ29sb3J9YH19fV19fTtjb25zdCBabD0oZSx0LG4scik9Pntjb25zdCBhPWUuY2FsYyhuKS5hZGQoMikuZXF1YWwoKSxsPWUubWF4KGUuY2FsYyh0KS5zdWIoYSkuZGl2KDIpLmVxdWFsKCksMCksdT1lLm1heChlLmNhbGModCkuc3ViKGEpLnN1YihsKS5lcXVhbCgpLDApO3JldHVybntwYWRkaW5nOmAkeygwLGhlLmJmKShsKX0gJHsoMCxoZS5iZikocil9ICR7KDAsaGUuYmYpKHUpfWB9fSxEZz1lPT57Y29uc3R7Y29tcG9uZW50Q2xzOnQsY29sb3JFcnJvcjpuLGNvbG9yV2FybmluZzpyfT1lO3JldHVybntbYCR7dH06bm90KCR7dH0tZGlzYWJsZWQpOm5vdChbZGlzYWJsZWRdKWBdOntbYCYke3R9LXN0YXR1cy1lcnJvcmBdOntbYCR7dH0tYWN0aXZlLWJhcmBdOntiYWNrZ3JvdW5kOm59fSxbYCYke3R9LXN0YXR1cy13YXJuaW5nYF06e1tgJHt0fS1hY3RpdmUtYmFyYF06e2JhY2tncm91bmQ6cn19fX19LE5nPWU9Pntjb25zdHtjb21wb25lbnRDbHM6dCxhbnRDbHM6bixjb250cm9sSGVpZ2h0OnIscGFkZGluZ0lubGluZTphLGxpbmVXaWR0aDpsLGxpbmVUeXBlOnUsY29sb3JCb3JkZXI6Yyxib3JkZXJSYWRpdXM6ZCxtb3Rpb25EdXJhdGlvbk1pZDp2LGNvbG9yVGV4dERpc2FibGVkOmYsY29sb3JUZXh0UGxhY2Vob2xkZXI6bSxjb250cm9sSGVpZ2h0TEc6aCxmb250U2l6ZUxHOkMsY29udHJvbEhlaWdodFNNOngscGFkZGluZ0lubGluZVNNOnAscGFkZGluZ1hTOnksbWFyZ2luWFM6dyxjb2xvclRleHREZXNjcmlwdGlvbjpQLGxpbmVXaWR0aEJvbGQ6RSxjb2xvclByaW1hcnk6TSxtb3Rpb25EdXJhdGlvblNsb3c6RCx6SW5kZXhQb3B1cDpOLHBhZGRpbmdYWFM6VCxzaXplUG9wdXBBcnJvdzpXLGNvbG9yQmdFbGV2YXRlZDpCLGJvcmRlclJhZGl1c0xHOlksYm94U2hhZG93U2Vjb25kYXJ5OkgsYm9yZGVyUmFkaXVzU006QSxjb2xvclNwbGl0OlYsY2VsbEhvdmVyQmc6eixwcmVzZXRzV2lkdGg6WCxwcmVzZXRzTWF4V2lkdGg6cSxib3hTaGFkb3dQb3BvdmVyQXJyb3c6USxmb250SGVpZ2h0OmFlLGZvbnRIZWlnaHRMRzplZSxsaW5lSGVpZ2h0TEc6cmV9PWU7cmV0dXJuW3tbdF06T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sKDAsTm4uV2YpKGUpKSxabChlLHIsYWUsYSkpLHtwb3NpdGlvbjoicmVsYXRpdmUiLGRpc3BsYXk6ImlubGluZS1mbGV4IixhbGlnbkl0ZW1zOiJjZW50ZXIiLGxpbmVIZWlnaHQ6MSxib3JkZXJSYWRpdXM6ZCx0cmFuc2l0aW9uOmBib3JkZXIgJHt2fSwgYm94LXNoYWRvdyAke3Z9LCBiYWNrZ3JvdW5kICR7dn1gLFtgJHt0fS1wcmVmaXhgXTp7ZmxleDoiMCAwIGF1dG8iLG1hcmdpbklubGluZUVuZDplLmlucHV0QWZmaXhQYWRkaW5nfSxbYCR7dH0taW5wdXRgXTp7cG9zaXRpb246InJlbGF0aXZlIixkaXNwbGF5OiJpbmxpbmUtZmxleCIsYWxpZ25JdGVtczoiY2VudGVyIix3aWR0aDoiMTAwJSIsIj4gaW5wdXQiOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7cG9zaXRpb246InJlbGF0aXZlIixkaXNwbGF5OiJpbmxpbmUtYmxvY2siLHdpZHRoOiIxMDAlIixjb2xvcjoiaW5oZXJpdCIsZm9udFNpemU6ZS5mb250U2l6ZSxsaW5lSGVpZ2h0OmUubGluZUhlaWdodCx0cmFuc2l0aW9uOmBhbGwgJHt2fWB9LCgwLEpvLm56KShtKSkse2ZsZXg6ImF1dG8iLG1pbldpZHRoOjEsaGVpZ2h0OiJhdXRvIixwYWRkaW5nOjAsYmFja2dyb3VuZDoidHJhbnNwYXJlbnQiLGJvcmRlcjowLGZvbnRGYW1pbHk6ImluaGVyaXQiLCImOmZvY3VzIjp7Ym94U2hhZG93OiJub25lIixvdXRsaW5lOjB9LCImW2Rpc2FibGVkXSI6e2JhY2tncm91bmQ6InRyYW5zcGFyZW50Iixjb2xvcjpmLGN1cnNvcjoibm90LWFsbG93ZWQifX0pLCImLXBsYWNlaG9sZGVyIjp7Ij4gaW5wdXQiOntjb2xvcjptfX19LCImLWxhcmdlIjpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sWmwoZSxoLGVlLGEpKSx7W2Ake3R9LWlucHV0ID4gaW5wdXRgXTp7Zm9udFNpemU6QyxsaW5lSGVpZ2h0OnJlfX0pLCImLXNtYWxsIjpPYmplY3QuYXNzaWduKHt9LFpsKGUseCxhZSxwKSksW2Ake3R9LXN1ZmZpeGBdOntkaXNwbGF5OiJmbGV4IixmbGV4OiJub25lIixhbGlnblNlbGY6ImNlbnRlciIsbWFyZ2luSW5saW5lU3RhcnQ6ZS5jYWxjKHkpLmRpdigyKS5lcXVhbCgpLGNvbG9yOmYsbGluZUhlaWdodDoxLHBvaW50ZXJFdmVudHM6Im5vbmUiLHRyYW5zaXRpb246YG9wYWNpdHkgJHt2fSwgY29sb3IgJHt2fWAsIj4gKiI6e3ZlcnRpY2FsQWxpZ246InRvcCIsIiY6bm90KDpsYXN0LWNoaWxkKSI6e21hcmdpbklubGluZUVuZDp3fX19LFtgJHt0fS1jbGVhcmBdOntwb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDoiNTAlIixpbnNldElubGluZUVuZDowLGNvbG9yOmYsbGluZUhlaWdodDoxLHRyYW5zZm9ybToidHJhbnNsYXRlWSgtNTAlKSIsY3Vyc29yOiJwb2ludGVyIixvcGFjaXR5OjAsdHJhbnNpdGlvbjpgb3BhY2l0eSAke3Z9LCBjb2xvciAke3Z9YCwiPiAqIjp7dmVydGljYWxBbGlnbjoidG9wIn0sIiY6aG92ZXIiOntjb2xvcjpQfX0sIiY6aG92ZXIiOntbYCR7dH0tY2xlYXJgXTp7b3BhY2l0eToxfSxbYCR7dH0tc3VmZml4Om5vdCg6bGFzdC1jaGlsZClgXTp7b3BhY2l0eTowfX0sW2Ake3R9LXNlcGFyYXRvcmBdOntwb3NpdGlvbjoicmVsYXRpdmUiLGRpc3BsYXk6ImlubGluZS1ibG9jayIsd2lkdGg6IjFlbSIsaGVpZ2h0OkMsY29sb3I6Zixmb250U2l6ZTpDLHZlcnRpY2FsQWxpZ246InRvcCIsY3Vyc29yOiJkZWZhdWx0IixbYCR7dH0tZm9jdXNlZCAmYF06e2NvbG9yOlB9LFtgJHt0fS1yYW5nZS1zZXBhcmF0b3IgJmBdOntbYCR7dH0tZGlzYWJsZWQgJmBdOntjdXJzb3I6Im5vdC1hbGxvd2VkIn19fSwiJi1yYW5nZSI6e3Bvc2l0aW9uOiJyZWxhdGl2ZSIsZGlzcGxheToiaW5saW5lLWZsZXgiLFtgJHt0fS1hY3RpdmUtYmFyYF06e2JvdHRvbTplLmNhbGMobCkubXVsKC0xKS5lcXVhbCgpLGhlaWdodDpFLGJhY2tncm91bmQ6TSxvcGFjaXR5OjAsdHJhbnNpdGlvbjpgYWxsICR7RH0gZWFzZS1vdXRgLHBvaW50ZXJFdmVudHM6Im5vbmUifSxbYCYke3R9LWZvY3VzZWRgXTp7W2Ake3R9LWFjdGl2ZS1iYXJgXTp7b3BhY2l0eToxfX0sW2Ake3R9LXJhbmdlLXNlcGFyYXRvcmBdOnthbGlnbkl0ZW1zOiJjZW50ZXIiLHBhZGRpbmc6YDAgJHsoMCxoZS5iZikoeSl9YCxsaW5lSGVpZ2h0OjF9fSwiJi1yYW5nZSwgJi1tdWx0aXBsZSI6e1tgJHt0fS1jbGVhcmBdOntpbnNldElubGluZUVuZDphfSxbYCYke3R9LXNtYWxsYF06e1tgJHt0fS1jbGVhcmBdOntpbnNldElubGluZUVuZDpwfX19LCImLWRyb3Bkb3duIjpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwoMCxObi5XZikoZSkpLEVnKGUpKSx7cG9pbnRlckV2ZW50czoibm9uZSIscG9zaXRpb246ImFic29sdXRlIix0b3A6LTk5OTksbGVmdDp7X3NraXBfY2hlY2tfOiEwLHZhbHVlOi05OTk5fSx6SW5kZXg6TixbYCYke3R9LWRyb3Bkb3duLWhpZGRlbmBdOntkaXNwbGF5OiJub25lIn0sIiYtcnRsIjp7ZGlyZWN0aW9uOiJydGwifSxbYCYke3R9LWRyb3Bkb3duLXBsYWNlbWVudC1ib3R0b21MZWZ0LAorICAgICAgICAgICAgJiR7dH0tZHJvcGRvd24tcGxhY2VtZW50LWJvdHRvbVJpZ2h0YF06e1tgJHt0fS1yYW5nZS1hcnJvd2BdOnt0b3A6MCxkaXNwbGF5OiJibG9jayIsdHJhbnNmb3JtOiJ0cmFuc2xhdGVZKC0xMDAlKSJ9fSxbYCYke3R9LWRyb3Bkb3duLXBsYWNlbWVudC10b3BMZWZ0LAorICAgICAgICAgICAgJiR7dH0tZHJvcGRvd24tcGxhY2VtZW50LXRvcFJpZ2h0YF06e1tgJHt0fS1yYW5nZS1hcnJvd2BdOntib3R0b206MCxkaXNwbGF5OiJibG9jayIsdHJhbnNmb3JtOiJ0cmFuc2xhdGVZKDEwMCUpIHJvdGF0ZSgxODBkZWcpIn19LFtgJiR7bn0tc2xpZGUtdXAtYXBwZWFyLCAmJHtufS1zbGlkZS11cC1lbnRlcmBdOntbYCR7dH0tcmFuZ2UtYXJyb3cke3R9LXJhbmdlLWFycm93YF06e3RyYW5zaXRpb246Im5vbmUifX0sW2AmJHtufS1zbGlkZS11cC1lbnRlciR7bn0tc2xpZGUtdXAtZW50ZXItYWN0aXZlJHt0fS1kcm9wZG93bi1wbGFjZW1lbnQtdG9wTGVmdCwKKyAgICAgICAgICAmJHtufS1zbGlkZS11cC1lbnRlciR7bn0tc2xpZGUtdXAtZW50ZXItYWN0aXZlJHt0fS1kcm9wZG93bi1wbGFjZW1lbnQtdG9wUmlnaHQsCisgICAgICAgICAgJiR7bn0tc2xpZGUtdXAtYXBwZWFyJHtufS1zbGlkZS11cC1hcHBlYXItYWN0aXZlJHt0fS1kcm9wZG93bi1wbGFjZW1lbnQtdG9wTGVmdCwKKyAgICAgICAgICAmJHtufS1zbGlkZS11cC1hcHBlYXIke259LXNsaWRlLXVwLWFwcGVhci1hY3RpdmUke3R9LWRyb3Bkb3duLXBsYWNlbWVudC10b3BSaWdodGBdOnthbmltYXRpb25OYW1lOlZvLlF0fSxbYCYke259LXNsaWRlLXVwLWVudGVyJHtufS1zbGlkZS11cC1lbnRlci1hY3RpdmUke3R9LWRyb3Bkb3duLXBsYWNlbWVudC1ib3R0b21MZWZ0LAorICAgICAgICAgICYke259LXNsaWRlLXVwLWVudGVyJHtufS1zbGlkZS11cC1lbnRlci1hY3RpdmUke3R9LWRyb3Bkb3duLXBsYWNlbWVudC1ib3R0b21SaWdodCwKKyAgICAgICAgICAmJHtufS1zbGlkZS11cC1hcHBlYXIke259LXNsaWRlLXVwLWFwcGVhci1hY3RpdmUke3R9LWRyb3Bkb3duLXBsYWNlbWVudC1ib3R0b21MZWZ0LAorICAgICAgICAgICYke259LXNsaWRlLXVwLWFwcGVhciR7bn0tc2xpZGUtdXAtYXBwZWFyLWFjdGl2ZSR7dH0tZHJvcGRvd24tcGxhY2VtZW50LWJvdHRvbVJpZ2h0YF06e2FuaW1hdGlvbk5hbWU6Vm8uZkp9LFtgJiR7bn0tc2xpZGUtdXAtbGVhdmUgJHt0fS1wYW5lbC1jb250YWluZXJgXTp7cG9pbnRlckV2ZW50czoibm9uZSJ9LFtgJiR7bn0tc2xpZGUtdXAtbGVhdmUke259LXNsaWRlLXVwLWxlYXZlLWFjdGl2ZSR7dH0tZHJvcGRvd24tcGxhY2VtZW50LXRvcExlZnQsCisgICAgICAgICAgJiR7bn0tc2xpZGUtdXAtbGVhdmUke259LXNsaWRlLXVwLWxlYXZlLWFjdGl2ZSR7dH0tZHJvcGRvd24tcGxhY2VtZW50LXRvcFJpZ2h0YF06e2FuaW1hdGlvbk5hbWU6Vm8ubHl9LFtgJiR7bn0tc2xpZGUtdXAtbGVhdmUke259LXNsaWRlLXVwLWxlYXZlLWFjdGl2ZSR7dH0tZHJvcGRvd24tcGxhY2VtZW50LWJvdHRvbUxlZnQsCisgICAgICAgICAgJiR7bn0tc2xpZGUtdXAtbGVhdmUke259LXNsaWRlLXVwLWxlYXZlLWFjdGl2ZSR7dH0tZHJvcGRvd24tcGxhY2VtZW50LWJvdHRvbVJpZ2h0YF06e2FuaW1hdGlvbk5hbWU6Vm8uVXd9LFtgJHt0fS1wYW5lbCA+ICR7dH0tdGltZS1wYW5lbGBdOntwYWRkaW5nVG9wOlR9LFtgJHt0fS1yYW5nZS13cmFwcGVyYF06e2Rpc3BsYXk6ImZsZXgiLHBvc2l0aW9uOiJyZWxhdGl2ZSJ9LFtgJHt0fS1yYW5nZS1hcnJvd2BdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7cG9zaXRpb246ImFic29sdXRlIix6SW5kZXg6MSxkaXNwbGF5OiJub25lIixwYWRkaW5nSW5saW5lOmUuY2FsYyhhKS5tdWwoMS41KS5lcXVhbCgpLGJveFNpemluZzoiY29udGVudC1ib3giLHRyYW5zaXRpb246YGFsbCAke0R9IGVhc2Utb3V0YH0sKDAsTXUuVykoZSxCLFEpKSx7IiY6YmVmb3JlIjp7aW5zZXRJbmxpbmVTdGFydDplLmNhbGMoYSkubXVsKDEuNSkuZXF1YWwoKX19KSxbYCR7dH0tcGFuZWwtY29udGFpbmVyYF06e292ZXJmbG93OiJoaWRkZW4iLHZlcnRpY2FsQWxpZ246InRvcCIsYmFja2dyb3VuZDpCLGJvcmRlclJhZGl1czpZLGJveFNoYWRvdzpILHRyYW5zaXRpb246YG1hcmdpbiAke0R9YCxkaXNwbGF5OiJpbmxpbmUtYmxvY2siLHBvaW50ZXJFdmVudHM6ImF1dG8iLFtgJHt0fS1wYW5lbC1sYXlvdXRgXTp7ZGlzcGxheToiZmxleCIsZmxleFdyYXA6Im5vd3JhcCIsYWxpZ25JdGVtczoic3RyZXRjaCJ9LFtgJHt0fS1wcmVzZXRzYF06e2Rpc3BsYXk6ImZsZXgiLGZsZXhEaXJlY3Rpb246ImNvbHVtbiIsbWluV2lkdGg6WCxtYXhXaWR0aDpxLHVsOntoZWlnaHQ6MCxmbGV4OiJhdXRvIixsaXN0U3R5bGU6Im5vbmUiLG92ZXJmbG93OiJhdXRvIixtYXJnaW46MCxwYWRkaW5nOnksYm9yZGVySW5saW5lRW5kOmAkeygwLGhlLmJmKShsKX0gJHt1fSAke1Z9YCxsaTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sTm4udlMpLHtib3JkZXJSYWRpdXM6QSxwYWRkaW5nSW5saW5lOnkscGFkZGluZ0Jsb2NrOmUuY2FsYyh4KS5zdWIoYWUpLmRpdigyKS5lcXVhbCgpLGN1cnNvcjoicG9pbnRlciIsdHJhbnNpdGlvbjpgYWxsICR7RH1gLCIrIGxpIjp7bWFyZ2luVG9wOnd9LCImOmhvdmVyIjp7YmFja2dyb3VuZDp6fX0pfX0sW2Ake3R9LXBhbmVsc2BdOntkaXNwbGF5OiJpbmxpbmUtZmxleCIsZmxleFdyYXA6Im5vd3JhcCIsIiY6bGFzdC1jaGlsZCI6e1tgJHt0fS1wYW5lbGBdOntib3JkZXJXaWR0aDowfX19LFtgJHt0fS1wYW5lbGBdOnt2ZXJ0aWNhbEFsaWduOiJ0b3AiLGJhY2tncm91bmQ6InRyYW5zcGFyZW50Iixib3JkZXJSYWRpdXM6MCxib3JkZXJXaWR0aDowLFtgJHt0fS1jb250ZW50LCB0YWJsZWBdOnt0ZXh0QWxpZ246ImNlbnRlciJ9LCImLWZvY3VzZWQiOntib3JkZXJDb2xvcjpjfX19fSksIiYtZHJvcGRvd24tcmFuZ2UiOntwYWRkaW5nOmAkeygwLGhlLmJmKShlLmNhbGMoVykubXVsKDIpLmRpdigzKS5lcXVhbCgpKX0gMGAsIiYtaGlkZGVuIjp7ZGlzcGxheToibm9uZSJ9fSwiJi1ydGwiOntkaXJlY3Rpb246InJ0bCIsW2Ake3R9LXNlcGFyYXRvcmBdOnt0cmFuc2Zvcm06InNjYWxlKC0xLCAxKSJ9LFtgJHt0fS1mb290ZXJgXTp7IiYtZXh0cmEiOntkaXJlY3Rpb246InJ0bCJ9fX19KX0sKDAsVm8ub04pKGUsInNsaWRlLXVwIiksKDAsVm8ub04pKGUsInNsaWRlLWRvd24iKSwoMCwkdS5GbSkoZSwibW92ZS11cCIpLCgwLCR1LkZtKShlLCJtb3ZlLWRvd24iKV19O3ZhciBSdT0oMCxsbi5JJCkoIkRhdGVQaWNrZXIiLGU9Pntjb25zdCB0PSgwLEJyLklYKSgoMCxTaS5lKShlKSwkZyhlKSx7aW5wdXRQYWRkaW5nSG9yaXpvbnRhbEJhc2U6ZS5jYWxjKGUucGFkZGluZ1NNKS5zdWIoMSkuZXF1YWwoKSxtdWx0aXBsZVNlbGVjdEl0ZW1IZWlnaHQ6ZS5tdWx0aXBsZUl0ZW1IZWlnaHQsc2VsZWN0SGVpZ2h0OmUuY29udHJvbEhlaWdodH0pO3JldHVybltJZyh0KSxOZyh0KSxSZyh0KSxEZyh0KSx3Zyh0KSwoMCxHdC5jKShlLHtmb2N1c0VsQ2xzOmAke2UuY29tcG9uZW50Q2xzfS1mb2N1c2VkYH0pXX0sWmcpO2Z1bmN0aW9uIEZnKGUsdCxuKXtyZXR1cm4gbiE9PXZvaWQgMD9uOnQ9PT0ieWVhciImJmUubGFuZy55ZWFyUGxhY2Vob2xkZXI/ZS5sYW5nLnllYXJQbGFjZWhvbGRlcjp0PT09InF1YXJ0ZXIiJiZlLmxhbmcucXVhcnRlclBsYWNlaG9sZGVyP2UubGFuZy5xdWFydGVyUGxhY2Vob2xkZXI6dD09PSJtb250aCImJmUubGFuZy5tb250aFBsYWNlaG9sZGVyP2UubGFuZy5tb250aFBsYWNlaG9sZGVyOnQ9PT0id2VlayImJmUubGFuZy53ZWVrUGxhY2Vob2xkZXI/ZS5sYW5nLndlZWtQbGFjZWhvbGRlcjp0PT09InRpbWUiJiZlLnRpbWVQaWNrZXJMb2NhbGUucGxhY2Vob2xkZXI/ZS50aW1lUGlja2VyTG9jYWxlLnBsYWNlaG9sZGVyOmUubGFuZy5wbGFjZWhvbGRlcn1mdW5jdGlvbiBUZyhlLHQsbil7cmV0dXJuIG4hPT12b2lkIDA/bjp0PT09InllYXIiJiZlLmxhbmcueWVhclBsYWNlaG9sZGVyP2UubGFuZy5yYW5nZVllYXJQbGFjZWhvbGRlcjp0PT09InF1YXJ0ZXIiJiZlLmxhbmcucXVhcnRlclBsYWNlaG9sZGVyP2UubGFuZy5yYW5nZVF1YXJ0ZXJQbGFjZWhvbGRlcjp0PT09Im1vbnRoIiYmZS5sYW5nLm1vbnRoUGxhY2Vob2xkZXI/ZS5sYW5nLnJhbmdlTW9udGhQbGFjZWhvbGRlcjp0PT09IndlZWsiJiZlLmxhbmcud2Vla1BsYWNlaG9sZGVyP2UubGFuZy5yYW5nZVdlZWtQbGFjZWhvbGRlcjp0PT09InRpbWUiJiZlLnRpbWVQaWNrZXJMb2NhbGUucGxhY2Vob2xkZXI/ZS50aW1lUGlja2VyTG9jYWxlLnJhbmdlUGxhY2Vob2xkZXI6ZS5sYW5nLnJhbmdlUGxhY2Vob2xkZXJ9ZnVuY3Rpb24gRHUoZSx0KXtjb25zdHthbGxvd0NsZWFyOm49ITB9PWUse2NsZWFySWNvbjpyLHJlbW92ZUljb246YX09KDAsZmUuWikoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGUpLHtwcmVmaXhDbHM6dCxjb21wb25lbnROYW1lOiJEYXRlUGlja2VyIn0pKTtyZXR1cm5bby51c2VNZW1vKCgpPT5uPT09ITE/ITE6T2JqZWN0LmFzc2lnbih7Y2xlYXJJY29uOnJ9LG49PT0hMD97fTpuKSxbbixyXSksYV19Y29uc3RbamcsQWddPVsid2VlayIsIldlZWtQaWNrZXIiXSxbSGcsa2ddPVsibW9udGgiLCJNb250aFBpY2tlciJdLFtMZyxWZ109WyJ5ZWFyIiwiWWVhclBpY2tlciJdLFtCZyxXZ109WyJxdWFydGVyIiwiUXVhcnRlclBpY2tlciJdLFtOdSxGdV09WyJ0aW1lIiwiVGltZVBpY2tlciJdO3ZhciB6Zz1pKDgzNjIyKSxLZz1lPT5vLmNyZWF0ZUVsZW1lbnQoemcuWlAsT2JqZWN0LmFzc2lnbih7c2l6ZToic21hbGwiLHR5cGU6InByaW1hcnkifSxlKSk7ZnVuY3Rpb24gVHUoZSl7cmV0dXJuKDAsby51c2VNZW1vKSgoKT0+T2JqZWN0LmFzc2lnbih7YnV0dG9uOktnfSxlKSxbZV0pfXZhciBZZz1mdW5jdGlvbihlLHQpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHIpJiZ0LmluZGV4T2Yocik8MCYmKG5bcl09ZVtyXSk7aWYoZSE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBhPTAscj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2E8ci5sZW5ndGg7YSsrKXQuaW5kZXhPZihyW2FdKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxyW2FdKSYmKG5bclthXV09ZVtyW2FdXSk7cmV0dXJuIG59LFVnPWU9PigwLG8uZm9yd2FyZFJlZikoKG4scik9Pnt2YXIgYTtjb25zdHtwcmVmaXhDbHM6bCxnZXRQb3B1cENvbnRhaW5lcjp1LGNvbXBvbmVudHM6YyxjbGFzc05hbWU6ZCxzdHlsZTp2LHBsYWNlbWVudDpmLHNpemU6bSxkaXNhYmxlZDpoLGJvcmRlcmVkOkM9ITAscGxhY2Vob2xkZXI6eCxwb3B1cENsYXNzTmFtZTpwLGRyb3Bkb3duQ2xhc3NOYW1lOnksc3RhdHVzOncscm9vdENsYXNzTmFtZTpQLHZhcmlhbnQ6RSxwaWNrZXI6TX09bixEPVlnKG4sWyJwcmVmaXhDbHMiLCJnZXRQb3B1cENvbnRhaW5lciIsImNvbXBvbmVudHMiLCJjbGFzc05hbWUiLCJzdHlsZSIsInBsYWNlbWVudCIsInNpemUiLCJkaXNhYmxlZCIsImJvcmRlcmVkIiwicGxhY2Vob2xkZXIiLCJwb3B1cENsYXNzTmFtZSIsImRyb3Bkb3duQ2xhc3NOYW1lIiwic3RhdHVzIiwicm9vdENsYXNzTmFtZSIsInZhcmlhbnQiLCJwaWNrZXIiXSksTj1vLnVzZVJlZihudWxsKSx7Z2V0UHJlZml4Q2xzOlQsZGlyZWN0aW9uOlcsZ2V0UG9wdXBDb250YWluZXI6QixyYW5nZVBpY2tlcjpZfT0oMCxvLnVzZUNvbnRleHQpKG9uLkVfKSxIPVQoInBpY2tlciIsbCkse2NvbXBhY3RTaXplOkEsY29tcGFjdEl0ZW1DbGFzc25hbWVzOlZ9PSgwLGplLnJpKShILFcpLHo9VCgpLFtYLHFdPSgwLGRyLlopKCJyYW5nZVBpY2tlciIsRSxDKSxRPSgwLE9uLlopKEgpLFthZSxlZSxyZV09UnUoSCxRKSxbc2VdPUR1KG4sSCksSj1UdShjKSxpZT0oMCxDbi5aKShDZT0+e3ZhciBFZTtyZXR1cm4oRWU9bSE9bnVsbD9tOkEpIT09bnVsbCYmRWUhPT12b2lkIDA/RWU6Q2V9KSxjZT1vLnVzZUNvbnRleHQoY24uWikseGU9aCE9bnVsbD9oOmNlLHVlPSgwLG8udXNlQ29udGV4dCkoUnIuYU0pLHtoYXNGZWVkYmFjazp5ZSxzdGF0dXM6UGUsZmVlZGJhY2tJY29uOmdlfT11ZSxSZT1vLmNyZWF0ZUVsZW1lbnQoby5GcmFnbWVudCxudWxsLE09PT1OdT9vLmNyZWF0ZUVsZW1lbnQoS3MuWixudWxsKTpvLmNyZWF0ZUVsZW1lbnQoenMuWixudWxsKSx5ZSYmZ2UpOygwLG8udXNlSW1wZXJhdGl2ZUhhbmRsZSkociwoKT0+Ti5jdXJyZW50KTtjb25zdFtTZV09KDAsUGkuWikoIkNhbGVuZGFyIixJdS5aKSxJZT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sU2UpLG4ubG9jYWxlKSxbWmVdPSgwLGVyLkNuKSgiRGF0ZVBpY2tlciIsKGE9bi5wb3B1cFN0eWxlKT09PW51bGx8fGE9PT12b2lkIDA/dm9pZCAwOmEuekluZGV4KTtyZXR1cm4gYWUoby5jcmVhdGVFbGVtZW50KFhyLlose3NwYWNlOiEwfSxvLmNyZWF0ZUVsZW1lbnQodmcsT2JqZWN0LmFzc2lnbih7c2VwYXJhdG9yOm8uY3JlYXRlRWxlbWVudCgic3BhbiIseyJhcmlhLWxhYmVsIjoidG8iLGNsYXNzTmFtZTpgJHtIfS1zZXBhcmF0b3JgfSxvLmNyZWF0ZUVsZW1lbnQoZm0uWixudWxsKSksZGlzYWJsZWQ6eGUscmVmOk4scGxhY2VtZW50OmYscGxhY2Vob2xkZXI6VGcoSWUsTSx4KSxzdWZmaXhJY29uOlJlLHByZXZJY29uOm8uY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpgJHtIfS1wcmV2LWljb25gfSksbmV4dEljb246by5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmAke0h9LW5leHQtaWNvbmB9KSxzdXBlclByZXZJY29uOm8uY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpgJHtIfS1zdXBlci1wcmV2LWljb25gfSksc3VwZXJOZXh0SWNvbjpvLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6YCR7SH0tc3VwZXItbmV4dC1pY29uYH0pLHRyYW5zaXRpb25OYW1lOmAke3p9LXNsaWRlLXVwYCxwaWNrZXI6TX0sRCx7Y2xhc3NOYW1lOm9lKCkoe1tgJHtIfS0ke2llfWBdOmllLFtgJHtIfS0ke1h9YF06cX0sKDAsa24uWikoSCwoMCxrbi5GKShQZSx3KSx5ZSksZWUsVixkLFk9PW51bGw/dm9pZCAwOlkuY2xhc3NOYW1lLHJlLFEsUCksc3R5bGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LFk9PW51bGw/dm9pZCAwOlkuc3R5bGUpLHYpLGxvY2FsZTpJZS5sYW5nLHByZWZpeENsczpILGdldFBvcHVwQ29udGFpbmVyOnV8fEIsZ2VuZXJhdGVDb25maWc6ZSxjb21wb25lbnRzOkosZGlyZWN0aW9uOlcsY2xhc3NOYW1lczp7cG9wdXA6b2UoKShlZSxwfHx5LHJlLFEsUCl9LHN0eWxlczp7cG9wdXA6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG4ucG9wdXBTdHlsZSkse3pJbmRleDpaZX0pfSxhbGxvd0NsZWFyOnNlfSkpKSl9KSxYZz1mdW5jdGlvbihlLHQpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHIpJiZ0LmluZGV4T2Yocik8MCYmKG5bcl09ZVtyXSk7aWYoZSE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBhPTAscj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2E8ci5sZW5ndGg7YSsrKXQuaW5kZXhPZihyW2FdKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxyW2FdKSYmKG5bclthXV09ZVtyW2FdXSk7cmV0dXJuIG59LEdnPWU9Pntjb25zdCB0PShkLHYpPT57Y29uc3QgZj12PT09RnU/InRpbWVQaWNrZXIiOiJkYXRlUGlja2VyIjtyZXR1cm4oMCxvLmZvcndhcmRSZWYpKChoLEMpPT57dmFyIHg7Y29uc3R7cHJlZml4Q2xzOnAsZ2V0UG9wdXBDb250YWluZXI6eSxjb21wb25lbnRzOncsc3R5bGU6UCxjbGFzc05hbWU6RSxyb290Q2xhc3NOYW1lOk0sc2l6ZTpELGJvcmRlcmVkOk4scGxhY2VtZW50OlQscGxhY2Vob2xkZXI6Vyxwb3B1cENsYXNzTmFtZTpCLGRyb3Bkb3duQ2xhc3NOYW1lOlksZGlzYWJsZWQ6SCxzdGF0dXM6QSx2YXJpYW50OlYsb25DYWxlbmRhckNoYW5nZTp6fT1oLFg9WGcoaCxbInByZWZpeENscyIsImdldFBvcHVwQ29udGFpbmVyIiwiY29tcG9uZW50cyIsInN0eWxlIiwiY2xhc3NOYW1lIiwicm9vdENsYXNzTmFtZSIsInNpemUiLCJib3JkZXJlZCIsInBsYWNlbWVudCIsInBsYWNlaG9sZGVyIiwicG9wdXBDbGFzc05hbWUiLCJkcm9wZG93bkNsYXNzTmFtZSIsImRpc2FibGVkIiwic3RhdHVzIiwidmFyaWFudCIsIm9uQ2FsZW5kYXJDaGFuZ2UiXSkse2dldFByZWZpeENsczpxLGRpcmVjdGlvbjpRLGdldFBvcHVwQ29udGFpbmVyOmFlLFtmXTplZX09KDAsby51c2VDb250ZXh0KShvbi5FXykscmU9cSgicGlja2VyIixwKSx7Y29tcGFjdFNpemU6c2UsY29tcGFjdEl0ZW1DbGFzc25hbWVzOkp9PSgwLGplLnJpKShyZSxRKSxpZT1vLnVzZVJlZihudWxsKSxbY2UseGVdPSgwLGRyLlopKCJkYXRlUGlja2VyIixWLE4pLHVlPSgwLE9uLlopKHJlKSxbeWUsUGUsZ2VdPVJ1KHJlLHVlKTsoMCxvLnVzZUltcGVyYXRpdmVIYW5kbGUpKEMsKCk9PmllLmN1cnJlbnQpO2NvbnN0IFJlPXtzaG93VG9kYXk6ITB9LFNlPWR8fGgucGlja2VyLEllPXEoKSx7b25TZWxlY3Q6WmUsbXVsdGlwbGU6Q2V9PVgsRWU9WmUmJmQ9PT0idGltZSImJiFDZSxwZT0oT3QsR2Usbm4pPT57ej09bnVsbHx8eihPdCxHZSxubiksRWUmJlplKE90KX0sW0plLEJlXT1EdShoLHJlKSx2dD1UdSh3KSx5dD0oMCxDbi5aKShPdD0+e3ZhciBHZTtyZXR1cm4oR2U9RCE9bnVsbD9EOnNlKSE9PW51bGwmJkdlIT09dm9pZCAwP0dlOk90fSksc3Q9by51c2VDb250ZXh0KGNuLlopLG50PUghPW51bGw/SDpzdCxJdD0oMCxvLnVzZUNvbnRleHQpKFJyLmFNKSx7aGFzRmVlZGJhY2s6Y3Qsc3RhdHVzOlp0LGZlZWRiYWNrSWNvbjpidH09SXQsa3Q9by5jcmVhdGVFbGVtZW50KG8uRnJhZ21lbnQsbnVsbCxTZT09PSJ0aW1lIj9vLmNyZWF0ZUVsZW1lbnQoS3MuWixudWxsKTpvLmNyZWF0ZUVsZW1lbnQoenMuWixudWxsKSxjdCYmYnQpLFtBZV09KDAsUGkuWikoIkRhdGVQaWNrZXIiLEl1LlopLHFlPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxBZSksaC5sb2NhbGUpLFtldF09KDAsZXIuQ24pKCJEYXRlUGlja2VyIiwoeD1oLnBvcHVwU3R5bGUpPT09bnVsbHx8eD09PXZvaWQgMD92b2lkIDA6eC56SW5kZXgpO3JldHVybiB5ZShvLmNyZWF0ZUVsZW1lbnQoWHIuWix7c3BhY2U6ITB9LG8uY3JlYXRlRWxlbWVudChQZyxPYmplY3QuYXNzaWduKHtyZWY6aWUscGxhY2Vob2xkZXI6RmcocWUsU2UsVyksc3VmZml4SWNvbjprdCxwbGFjZW1lbnQ6VCxwcmV2SWNvbjpvLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6YCR7cmV9LXByZXYtaWNvbmB9KSxuZXh0SWNvbjpvLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6YCR7cmV9LW5leHQtaWNvbmB9KSxzdXBlclByZXZJY29uOm8uY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpgJHtyZX0tc3VwZXItcHJldi1pY29uYH0pLHN1cGVyTmV4dEljb246by5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmAke3JlfS1zdXBlci1uZXh0LWljb25gfSksdHJhbnNpdGlvbk5hbWU6YCR7SWV9LXNsaWRlLXVwYCxwaWNrZXI6ZCxvbkNhbGVuZGFyQ2hhbmdlOnBlfSxSZSxYLHtsb2NhbGU6cWUubGFuZyxjbGFzc05hbWU6b2UoKSh7W2Ake3JlfS0ke3l0fWBdOnl0LFtgJHtyZX0tJHtjZX1gXTp4ZX0sKDAsa24uWikocmUsKDAsa24uRikoWnQsQSksY3QpLFBlLEosZWU9PW51bGw/dm9pZCAwOmVlLmNsYXNzTmFtZSxFLGdlLHVlLE0pLHN0eWxlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxlZT09bnVsbD92b2lkIDA6ZWUuc3R5bGUpLFApLHByZWZpeENsczpyZSxnZXRQb3B1cENvbnRhaW5lcjp5fHxhZSxnZW5lcmF0ZUNvbmZpZzplLGNvbXBvbmVudHM6dnQsZGlyZWN0aW9uOlEsZGlzYWJsZWQ6bnQsY2xhc3NOYW1lczp7cG9wdXA6b2UoKShQZSxnZSx1ZSxNLEJ8fFkpfSxzdHlsZXM6e3BvcHVwOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxoLnBvcHVwU3R5bGUpLHt6SW5kZXg6ZXR9KX0sYWxsb3dDbGVhcjpKZSxyZW1vdmVJY29uOkJlfSkpKSl9KX0sbj10KCkscj10KGpnLEFnKSxhPXQoSGcsa2cpLGw9dChMZyxWZyksdT10KEJnLFdnKSxjPXQoTnUsRnUpO3JldHVybntEYXRlUGlja2VyOm4sV2Vla1BpY2tlcjpyLE1vbnRoUGlja2VyOmEsWWVhclBpY2tlcjpsLFRpbWVQaWNrZXI6YyxRdWFydGVyUGlja2VyOnV9fSxqdT1lPT57Y29uc3R7RGF0ZVBpY2tlcjp0LFdlZWtQaWNrZXI6bixNb250aFBpY2tlcjpyLFllYXJQaWNrZXI6YSxUaW1lUGlja2VyOmwsUXVhcnRlclBpY2tlcjp1fT1HZyhlKSxjPVVnKGUpLGQ9dDtyZXR1cm4gZC5XZWVrUGlja2VyPW4sZC5Nb250aFBpY2tlcj1yLGQuWWVhclBpY2tlcj1hLGQuUmFuZ2VQaWNrZXI9YyxkLlRpbWVQaWNrZXI9bCxkLlF1YXJ0ZXJQaWNrZXI9dSxkfTtjb25zdCBCbz1qdShkbSksUWc9KDAseW4uWikoQm8sInBvcHVwQWxpZ24iLHZvaWQgMCwicGlja2VyIik7Qm8uX0ludGVybmFsUGFuZWxEb05vdFVzZU9yWW91V2lsbEJlRmlyZWQ9UWc7Y29uc3QgSmc9KDAseW4uWikoQm8uUmFuZ2VQaWNrZXIsInBvcHVwQWxpZ24iLHZvaWQgMCwicGlja2VyIik7Qm8uX0ludGVybmFsUmFuZ2VQYW5lbERvTm90VXNlT3JZb3VXaWxsQmVGaXJlZD1KZyxCby5nZW5lcmF0ZVBpY2tlcj1qdTt2YXIgRW89Qm87dG4oKS5leHRlbmQoZ2woKSk7dmFyIHFnPWZ1bmN0aW9uKHQsbil7cmV0dXJuIHQ/dHlwZW9mIG49PSJmdW5jdGlvbiI/bih0bigpKHQpKTp0bigpKHQpLmZvcm1hdCgoQXJyYXkuaXNBcnJheShuKT9uWzBdOm4pfHwiWVlZWS1NTS1ERCIpOiItIn0sX2c9ZnVuY3Rpb24odCxuKXt2YXIgcj10LnRleHQsYT10Lm1vZGUsbD10LmZvcm1hdCx1PXQubGFiZWwsYz10LmxpZ2h0LGQ9dC5yZW5kZXIsdj10LnJlbmRlckZvcm1JdGVtLGY9dC5wbGFpbixtPXQuc2hvd1RpbWUsaD10LmZpZWxkUHJvcHMsQz10LnBpY2tlcix4PXQuYm9yZGVyZWQscD10LmxpZ2h0TGFiZWwseT0oMCxPLllCKSgpLHc9KDAsby51c2VTdGF0ZSkoITEpLFA9KDAsai5aKSh3LDIpLEU9UFswXSxNPVBbMV07aWYoYT09PSJyZWFkIil7dmFyIEQ9cWcocixoLmZvcm1hdHx8bCk7cmV0dXJuIGQ/ZChyLCgwLHMuWikoe21vZGU6YX0saCksKDAsSy5qc3gpKEsuRnJhZ21lbnQse2NoaWxkcmVuOkR9KSk6KDAsSy5qc3gpKEsuRnJhZ21lbnQse2NoaWxkcmVuOkR9KX1pZihhPT09ImVkaXQifHxhPT09InVwZGF0ZSIpe3ZhciBOLFQ9aC5kaXNhYmxlZCxXPWgudmFsdWUsQj1oLnBsYWNlaG9sZGVyLFk9Qj09PXZvaWQgMD95LmdldE1lc3NhZ2UoInRhYmxlRm9ybS5zZWxlY3RQbGFjZWhvbGRlciIsIlx1OEJGN1x1OTAwOVx1NjJFOSIpOkIsSD1saShXKTtyZXR1cm4gYz9OPSgwLEsuanN4KSh2ZS5RLHtsYWJlbDp1LG9uQ2xpY2s6ZnVuY3Rpb24oKXt2YXIgVjtoPT1udWxsfHwoVj1oLm9uT3BlbkNoYW5nZSk9PT1udWxsfHxWPT09dm9pZCAwfHxWLmNhbGwoaCwhMCksTSghMCl9LHN0eWxlOkg/e3BhZGRpbmdJbmxpbmVFbmQ6MH06dm9pZCAwLGRpc2FibGVkOlQsdmFsdWU6SHx8RT8oMCxLLmpzeCkoRW8sKDAscy5aKSgoMCxzLlopKCgwLHMuWikoe3BpY2tlcjpDLHNob3dUaW1lOm0sZm9ybWF0OmwscmVmOm59LGgpLHt9LHt2YWx1ZTpILG9uT3BlbkNoYW5nZTpmdW5jdGlvbihWKXt2YXIgejtNKFYpLGg9PW51bGx8fCh6PWgub25PcGVuQ2hhbmdlKT09PW51bGx8fHo9PT12b2lkIDB8fHouY2FsbChoLFYpfX0sKDAsXy5KKSghMSkpLHt9LHtvcGVuOkV9KSk6dm9pZCAwLGFsbG93Q2xlYXI6ITEsZG93bkljb246SHx8RT8hMTp2b2lkIDAsYm9yZGVyZWQ6eCxyZWY6cH0pOk49KDAsSy5qc3gpKEVvLCgwLHMuWikoKDAscy5aKSgoMCxzLlopKHtwaWNrZXI6QyxzaG93VGltZTptLGZvcm1hdDpsLHBsYWNlaG9sZGVyOll9LCgwLF8uSikoZj09PXZvaWQgMD8hMDohZikpLHt9LHtyZWY6bn0saCkse30se3ZhbHVlOkh9KSksdj92KHIsKDAscy5aKSh7bW9kZTphfSxoKSxOKTpOfXJldHVybiBudWxsfSxXbz1vLmZvcndhcmRSZWYoX2cpLGVoPWZ1bmN0aW9uKHQsbil7dmFyIHI9dC50ZXh0LGE9dC5tb2RlLGw9dC5yZW5kZXIsdT10LnBsYWNlaG9sZGVyLGM9dC5yZW5kZXJGb3JtSXRlbSxkPXQuZmllbGRQcm9wcyx2PSgwLE8uWUIpKCksZj11fHx2LmdldE1lc3NhZ2UoInRhYmxlRm9ybS5pbnB1dFBsYWNlaG9sZGVyIiwiXHU4QkY3XHU4RjkzXHU1MTY1IiksbT0oMCxvLnVzZUNhbGxiYWNrKShmdW5jdGlvbih3KXt2YXIgUD13IT1udWxsP3c6dm9pZCAwO3JldHVybiFkLnN0cmluZ01vZGUmJnR5cGVvZiBQPT0ic3RyaW5nIiYmKFA9TnVtYmVyKFApKSx0eXBlb2YgUD09Im51bWJlciImJiEoMCxtbC5rKShQKSYmISgwLG1sLmspKGQucHJlY2lzaW9uKSYmKFA9TnVtYmVyKFAudG9GaXhlZChkLnByZWNpc2lvbikpKSxQfSxbZF0pO2lmKGE9PT0icmVhZCIpe3ZhciBoLEM9e307ZCE9bnVsbCYmZC5wcmVjaXNpb24mJihDPXttaW5pbXVtRnJhY3Rpb25EaWdpdHM6TnVtYmVyKGQucHJlY2lzaW9uKSxtYXhpbXVtRnJhY3Rpb25EaWdpdHM6TnVtYmVyKGQucHJlY2lzaW9uKX0pO3ZhciB4PW5ldyBJbnRsLk51bWJlckZvcm1hdCh2b2lkIDAsKDAscy5aKSgoMCxzLlopKHt9LEMpLChkPT1udWxsP3ZvaWQgMDpkLmludGxQcm9wcyl8fHt9KSkuZm9ybWF0KE51bWJlcihyKSkscD1kIT1udWxsJiZkLnN0cmluZ01vZGU/KDAsSy5qc3gpKCJzcGFuIix7Y2hpbGRyZW46cn0pOigwLEsuanN4KSgic3BhbiIse3JlZjpuLGNoaWxkcmVuOihkPT1udWxsfHwoaD1kLmZvcm1hdHRlcik9PT1udWxsfHxoPT09dm9pZCAwP3ZvaWQgMDpoLmNhbGwoZCx4KSl8fHh9KTtyZXR1cm4gbD9sKHIsKDAscy5aKSh7bW9kZTphfSxkKSxwKTpwfWlmKGE9PT0iZWRpdCJ8fGE9PT0idXBkYXRlIil7dmFyIHk9KDAsSy5qc3gpKG5vLCgwLHMuWikoKDAscy5aKSh7cmVmOm4sbWluOjAscGxhY2Vob2xkZXI6Zn0sKDAscG4uWikoZCxbIm9uQ2hhbmdlIiwib25CbHVyIl0pKSx7fSx7b25DaGFuZ2U6ZnVuY3Rpb24oUCl7dmFyIEU7cmV0dXJuIGQ9PW51bGx8fChFPWQub25DaGFuZ2UpPT09bnVsbHx8RT09PXZvaWQgMD92b2lkIDA6RS5jYWxsKGQsbShQKSl9LG9uQmx1cjpmdW5jdGlvbihQKXt2YXIgRTtyZXR1cm4gZD09bnVsbHx8KEU9ZC5vbkJsdXIpPT09bnVsbHx8RT09PXZvaWQgMD92b2lkIDA6RS5jYWxsKGQsbShQLnRhcmdldC52YWx1ZSkpfX0pKTtyZXR1cm4gYz9jKHIsKDAscy5aKSh7bW9kZTphfSxkKSx5KTp5fXJldHVybiBudWxsfSx0aD1vLmZvcndhcmRSZWYoZWgpLFJsPWkoNzg5NTcpLG5oPWZ1bmN0aW9uKHQsbil7dmFyIHI9dC50ZXh0LGE9dC5tb2RlLGw9dC5yZW5kZXIsdT10LnBsYWNlaG9sZGVyLGM9dC5yZW5kZXJGb3JtSXRlbSxkPXQuZmllbGRQcm9wcyx2PXQuc2VwYXJhdG9yLGY9dj09PXZvaWQgMD8ifiI6dixtPXQuc2VwYXJhdG9yV2lkdGgsaD1tPT09dm9pZCAwPzMwOm0sQz1kLnZhbHVlLHg9ZC5kZWZhdWx0VmFsdWUscD1kLm9uQ2hhbmdlLHk9ZC5pZCx3PSgwLE8uWUIpKCksUD1mci5Pdy51c2VUb2tlbigpLEU9UC50b2tlbixNPSgwLHJ0LlopKGZ1bmN0aW9uKCl7cmV0dXJuIHh9LHt2YWx1ZTpDLG9uQ2hhbmdlOnB9KSxEPSgwLGouWikoTSwyKSxOPURbMF0sVD1EWzFdO2lmKGE9PT0icmVhZCIpe3ZhciBXPWZ1bmN0aW9uKGFlKXt2YXIgZWUscmU9bmV3IEludGwuTnVtYmVyRm9ybWF0KHZvaWQgMCwoMCxzLlopKHttaW5pbXVtU2lnbmlmaWNhbnREaWdpdHM6Mn0sKGQ9PW51bGw/dm9pZCAwOmQuaW50bFByb3BzKXx8e30pKS5mb3JtYXQoTnVtYmVyKGFlKSk7cmV0dXJuKGQ9PW51bGx8fChlZT1kLmZvcm1hdHRlcik9PT1udWxsfHxlZT09PXZvaWQgMD92b2lkIDA6ZWUuY2FsbChkLHJlKSl8fHJlfSxCPSgwLEsuanN4cykoInNwYW4iLHtyZWY6bixjaGlsZHJlbjpbVyhyWzBdKSwiICIsZiwiICIsVyhyWzFdKV19KTtyZXR1cm4gbD9sKHIsKDAscy5aKSh7bW9kZTphfSxkKSxCKTpCfWlmKGE9PT0iZWRpdCJ8fGE9PT0idXBkYXRlIil7dmFyIFk9ZnVuY3Rpb24oKXtpZihBcnJheS5pc0FycmF5KE4pKXt2YXIgYWU9KDAsai5aKShOLDIpLGVlPWFlWzBdLHJlPWFlWzFdO3R5cGVvZiBlZT09Im51bWJlciImJnR5cGVvZiByZT09Im51bWJlciImJmVlPnJlP1QoW3JlLGVlXSk6ZWU9PT12b2lkIDAmJnJlPT09dm9pZCAwJiZUKHZvaWQgMCl9fSxIPWZ1bmN0aW9uKGFlLGVlKXt2YXIgcmU9KDAsbGUuWikoTnx8W10pO3JlW2FlXT1lZT09PW51bGw/dm9pZCAwOmVlLFQocmUpfSxBPShkPT1udWxsP3ZvaWQgMDpkLnBsYWNlaG9sZGVyKXx8dXx8W3cuZ2V0TWVzc2FnZSgidGFibGVGb3JtLmlucHV0UGxhY2Vob2xkZXIiLCJcdThCRjdcdThGOTNcdTUxNjUiKSx3LmdldE1lc3NhZ2UoInRhYmxlRm9ybS5pbnB1dFBsYWNlaG9sZGVyIiwiXHU4QkY3XHU4RjkzXHU1MTY1IildLFY9ZnVuY3Rpb24oYWUpe3JldHVybiBBcnJheS5pc0FycmF5KEEpP0FbYWVdOkF9LHo9UmwuWi5Db21wYWN0fHxBci5aLkdyb3VwLFg9UmwuWi5Db21wYWN0P3t9Ontjb21wYWN0OiEwfSxxPSgwLEsuanN4cykoeiwoMCxzLlopKCgwLHMuWikoe30sWCkse30se29uQmx1cjpZLGNoaWxkcmVuOlsoMCxLLmpzeCkobm8sKDAscy5aKSgoMCxzLlopKHt9LGQpLHt9LHtwbGFjZWhvbGRlcjpWKDApLGlkOnkhPW51bGw/eToiIi5jb25jYXQoeSwiLTAiKSxzdHlsZTp7d2lkdGg6ImNhbGMoKDEwMCUgLSAiLmNvbmNhdChoLCJweCkgLyAyKSIpfSx2YWx1ZTpOPT1udWxsP3ZvaWQgMDpOWzBdLGRlZmF1bHRWYWx1ZTp4PT1udWxsP3ZvaWQgMDp4WzBdLG9uQ2hhbmdlOmZ1bmN0aW9uKGFlKXtyZXR1cm4gSCgwLGFlKX19KSksKDAsSy5qc3gpKEFyLlose3N0eWxlOnt3aWR0aDpoLHRleHRBbGlnbjoiY2VudGVyIixib3JkZXJJbmxpbmVTdGFydDowLGJvcmRlcklubGluZUVuZDowLHBvaW50ZXJFdmVudHM6Im5vbmUiLGJhY2tncm91bmRDb2xvcjpFPT1udWxsP3ZvaWQgMDpFLmNvbG9yQmdDb250YWluZXJ9LHBsYWNlaG9sZGVyOmYsZGlzYWJsZWQ6ITB9KSwoMCxLLmpzeCkobm8sKDAscy5aKSgoMCxzLlopKHt9LGQpLHt9LHtwbGFjZWhvbGRlcjpWKDEpLGlkOnkhPW51bGw/eToiIi5jb25jYXQoeSwiLTEiKSxzdHlsZTp7d2lkdGg6ImNhbGMoKDEwMCUgLSAiLmNvbmNhdChoLCJweCkgLyAyKSIpLGJvcmRlcklubGluZVN0YXJ0OjB9LHZhbHVlOk49PW51bGw/dm9pZCAwOk5bMV0sZGVmYXVsdFZhbHVlOng9PW51bGw/dm9pZCAwOnhbMV0sb25DaGFuZ2U6ZnVuY3Rpb24oYWUpe3JldHVybiBIKDEsYWUpfX0pKV19KSk7cmV0dXJuIGM/YyhyLCgwLHMuWikoe21vZGU6YX0sZCkscSk6cX1yZXR1cm4gbnVsbH0scmg9by5mb3J3YXJkUmVmKG5oKSxhaD1pKDg0MTEwKSxvaD1pLm4oYWgpO3RuKCkuZXh0ZW5kKG9oKCkpO3ZhciBpaD1mdW5jdGlvbih0LG4pe3ZhciByPXQudGV4dCxhPXQubW9kZSxsPXQucGxhaW4sdT10LnJlbmRlcixjPXQucmVuZGVyRm9ybUl0ZW0sZD10LmZvcm1hdCx2PXQuZmllbGRQcm9wcyxmPSgwLE8uWUIpKCk7aWYoYT09PSJyZWFkIil7dmFyIG09KDAsSy5qc3gpKHFpLlose3RpdGxlOnRuKCkocikuZm9ybWF0KCh2PT1udWxsP3ZvaWQgMDp2LmZvcm1hdCl8fGR8fCJZWVlZLU1NLUREIEhIOm1tOnNzIiksY2hpbGRyZW46dG4oKShyKS5mcm9tTm93KCl9KTtyZXR1cm4gdT91KHIsKDAscy5aKSh7bW9kZTphfSx2KSwoMCxLLmpzeCkoSy5GcmFnbWVudCx7Y2hpbGRyZW46bX0pKTooMCxLLmpzeCkoSy5GcmFnbWVudCx7Y2hpbGRyZW46bX0pfWlmKGE9PT0iZWRpdCJ8fGE9PT0idXBkYXRlIil7dmFyIGg9Zi5nZXRNZXNzYWdlKCJ0YWJsZUZvcm0uc2VsZWN0UGxhY2Vob2xkZXIiLCJcdThCRjdcdTkwMDlcdTYyRTkiKSxDPWxpKHYudmFsdWUpLHg9KDAsSy5qc3gpKEVvLCgwLHMuWikoKDAscy5aKSgoMCxzLlopKHtyZWY6bixwbGFjZWhvbGRlcjpoLHNob3dUaW1lOiEwfSwoMCxfLkopKGw9PT12b2lkIDA/ITA6IWwpKSx2KSx7fSx7dmFsdWU6Q30pKTtyZXR1cm4gYz9jKHIsKDAscy5aKSh7bW9kZTphfSx2KSx4KTp4fXJldHVybiBudWxsfSxsaD1vLmZvcndhcmRSZWYoaWgpLHNoPWkoMTUyNDEpLHVoPW8uZm9yd2FyZFJlZihmdW5jdGlvbihlLHQpe3ZhciBuPWUudGV4dCxyPWUubW9kZSxhPWUucmVuZGVyLGw9ZS5yZW5kZXJGb3JtSXRlbSx1PWUuZmllbGRQcm9wcyxjPWUucGxhY2Vob2xkZXIsZD1lLndpZHRoLHY9KDAsTy5ZQikoKSxmPWN8fHYuZ2V0TWVzc2FnZSgidGFibGVGb3JtLmlucHV0UGxhY2Vob2xkZXIiLCJcdThCRjdcdThGOTNcdTUxNjUiKTtpZihyPT09InJlYWQiKXt2YXIgbT0oMCxLLmpzeCkoc2guWiwoMCxzLlopKHtyZWY6dCx3aWR0aDpkfHwzMixzcmM6bn0sdSkpO3JldHVybiBhP2EobiwoMCxzLlopKHttb2RlOnJ9LHUpLG0pOm19aWYocj09PSJlZGl0Inx8cj09PSJ1cGRhdGUiKXt2YXIgaD0oMCxLLmpzeCkoQXIuWiwoMCxzLlopKHtyZWY6dCxwbGFjZWhvbGRlcjpmfSx1KSk7cmV0dXJuIGw/bChuLCgwLHMuWikoe21vZGU6cn0sdSksaCk6aH1yZXR1cm4gbnVsbH0pLEF1PXVoLGNoPWZ1bmN0aW9uKHQsbil7dmFyIHI9dC5ib3JkZXIsYT1yPT09dm9pZCAwPyExOnIsbD10LmNoaWxkcmVuLHU9KDAsby51c2VDb250ZXh0KShiZS5aUC5Db25maWdDb250ZXh0KSxjPXUuZ2V0UHJlZml4Q2xzLGQ9YygicHJvLWZpZWxkLWluZGV4LWNvbHVtbiIpLHY9KDAsZnIuWGopKCJJbmRleENvbHVtbiIsZnVuY3Rpb24oKXtyZXR1cm4oMCxHLlopKHt9LCIuIi5jb25jYXQoZCkse2Rpc3BsYXk6ImlubGluZS1mbGV4IixhbGlnbkl0ZW1zOiJjZW50ZXIiLGp1c3RpZnlDb250ZW50OiJjZW50ZXIiLHdpZHRoOiIxOHB4IixoZWlnaHQ6IjE4cHgiLCImLWJvcmRlciI6e2NvbG9yOiIjZmZmIixmb250U2l6ZToiMTJweCIsbGluZUhlaWdodDoiMTJweCIsYmFja2dyb3VuZENvbG9yOiIjMzE0NjU5Iixib3JkZXJSYWRpdXM6IjlweCIsIiYudG9wLXRocmVlIjp7YmFja2dyb3VuZENvbG9yOiIjOTc5Nzk3In19fSl9KSxmPXYud3JhcFNTUixtPXYuaGFzaElkO3JldHVybiBmKCgwLEsuanN4KSgiZGl2Iix7cmVmOm4sY2xhc3NOYW1lOm9lKCkoZCxtLCgwLEcuWikoKDAsRy5aKSh7fSwiIi5jb25jYXQoZCwiLWJvcmRlciIpLGEpLCJ0b3AtdGhyZWUiLGw+MykpLGNoaWxkcmVuOmx9KSl9LEh1PW8uZm9yd2FyZFJlZihjaCksa3U9aSg1MTc3OSksZGg9aSg3MzE3NyksZmg9WyJjb250ZW50UmVuZGVyIiwibnVtYmVyRm9ybWF0T3B0aW9ucyIsIm51bWJlclBvcG92ZXJSZW5kZXIiLCJvcGVuIl0sdmg9WyJ0ZXh0IiwibW9kZSIsInJlbmRlciIsInJlbmRlckZvcm1JdGVtIiwiZmllbGRQcm9wcyIsInByb0ZpZWxkS2V5IiwicGxhaW4iLCJ2YWx1ZUVudW0iLCJwbGFjZWhvbGRlciIsImxvY2FsZSIsImN1c3RvbVN5bWJvbCIsIm51bWJlckZvcm1hdE9wdGlvbnMiLCJudW1iZXJQb3BvdmVyUmVuZGVyIl0sTHU9bmV3IEludGwuTnVtYmVyRm9ybWF0KCJ6aC1IYW5zLUNOIix7Y3VycmVuY3k6IkNOWSIsc3R5bGU6ImN1cnJlbmN5In0pLG1oPXtzdHlsZToiY3VycmVuY3kiLGN1cnJlbmN5OiJVU0QifSxnaD17c3R5bGU6ImN1cnJlbmN5IixjdXJyZW5jeToiUlVCIn0saGg9e3N0eWxlOiJjdXJyZW5jeSIsY3VycmVuY3k6IlJTRCJ9LHBoPXtzdHlsZToiY3VycmVuY3kiLGN1cnJlbmN5OiJNWVIifSxiaD17c3R5bGU6ImN1cnJlbmN5IixjdXJyZW5jeToiQlJMIn0seWg9e2RlZmF1bHQ6THUsInpoLUhhbnMtQ04iOntjdXJyZW5jeToiQ05ZIixzdHlsZToiY3VycmVuY3kifSwiZW4tVVMiOm1oLCJydS1SVSI6Z2gsIm1zLU1ZIjpwaCwic3ItUlMiOmhoLCJwdC1CUiI6Ymh9LFZ1PWZ1bmN0aW9uKHQsbixyLGEpe3ZhciBsPWFyZ3VtZW50cy5sZW5ndGg+NCYmYXJndW1lbnRzWzRdIT09dm9pZCAwP2FyZ3VtZW50c1s0XToiIix1PW49PW51bGw/dm9pZCAwOm4udG9TdHJpbmcoKS5yZXBsYWNlQWxsKCIsIiwiIik7aWYodHlwZW9mIHU9PSJzdHJpbmciKXt2YXIgYz1OdW1iZXIodSk7aWYoTnVtYmVyLmlzTmFOKGMpKXJldHVybiB1O3U9Y31pZighdSYmdSE9PTApcmV0dXJuIiI7dmFyIGQ9ITE7dHJ5e2Q9dCE9PSExJiZJbnRsLk51bWJlckZvcm1hdC5zdXBwb3J0ZWRMb2NhbGVzT2YoW3QucmVwbGFjZSgiXyIsIi0iKV0se2xvY2FsZU1hdGNoZXI6Imxvb2t1cCJ9KS5sZW5ndGg+MH1jYXRjaCh5KXt9dHJ5e3ZhciB2PW5ldyBJbnRsLk51bWJlckZvcm1hdChkJiZ0IT09ITEmJih0PT1udWxsP3ZvaWQgMDp0LnJlcGxhY2UoIl8iLCItIikpfHwiemgtSGFucy1DTiIsKDAscy5aKSgoMCxzLlopKHt9LHloW3R8fCJ6aC1IYW5zLUNOIl18fEx1KSx7fSx7bWF4aW11bUZyYWN0aW9uRGlnaXRzOnJ9LGEpKSxmPXYuZm9ybWF0KHUpLG09ZnVuY3Rpb24odyl7dmFyIFA9dy5tYXRjaCgvXGQrLyk7aWYoUCl7dmFyIEU9UFswXTtyZXR1cm4gdy5zbGljZSh3LmluZGV4T2YoRSkpfWVsc2UgcmV0dXJuIHd9LGg9bShmKSxDPWZ8fCIiLHg9KDAsai5aKShDLDEpLHA9eFswXTtyZXR1cm5bIisiLCItIl0uaW5jbHVkZXMocCk/IiIuY29uY2F0KGx8fCIiKS5jb25jYXQocCkuY29uY2F0KGgpOiIiLmNvbmNhdChsfHwiIikuY29uY2F0KGgpfWNhdGNoKHkpe3JldHVybiB1fX0sRGw9MixDaD1vLmZvcndhcmRSZWYoZnVuY3Rpb24oZSx0KXt2YXIgbj1lLmNvbnRlbnRSZW5kZXIscj1lLm51bWJlckZvcm1hdE9wdGlvbnMsYT1lLm51bWJlclBvcG92ZXJSZW5kZXIsbD1lLm9wZW4sdT0oMCxnLlopKGUsZmgpLGM9KDAscnQuWikoZnVuY3Rpb24oKXtyZXR1cm4gdS5kZWZhdWx0VmFsdWV9LHt2YWx1ZTp1LnZhbHVlLG9uQ2hhbmdlOnUub25DaGFuZ2V9KSxkPSgwLGouWikoYywyKSx2PWRbMF0sZj1kWzFdLG09bj09bnVsbD92b2lkIDA6bigoMCxzLlopKCgwLHMuWikoe30sdSkse30se3ZhbHVlOnZ9KSksaD0oMCxkaC5YKShtP2w6ITEpO3JldHVybigwLEsuanN4KShPci5aLCgwLHMuWikoKDAscy5aKSh7cGxhY2VtZW50OiJ0b3BMZWZ0In0saCkse30se3RyaWdnZXI6WyJmb2N1cyIsImNsaWNrIl0sY29udGVudDptLGdldFBvcHVwQ29udGFpbmVyOmZ1bmN0aW9uKHgpe3JldHVybih4PT1udWxsP3ZvaWQgMDp4LnBhcmVudEVsZW1lbnQpfHxkb2N1bWVudC5ib2R5fSxjaGlsZHJlbjooMCxLLmpzeCkobm8sKDAscy5aKSgoMCxzLlopKHtyZWY6dH0sdSkse30se3ZhbHVlOnYsb25DaGFuZ2U6Zn0pKX0pKX0pLHhoPWZ1bmN0aW9uKHQsbil7dmFyIHIsYT10LnRleHQsbD10Lm1vZGUsdT10LnJlbmRlcixjPXQucmVuZGVyRm9ybUl0ZW0sZD10LmZpZWxkUHJvcHMsdj10LnByb0ZpZWxkS2V5LGY9dC5wbGFpbixtPXQudmFsdWVFbnVtLGg9dC5wbGFjZWhvbGRlcixDPXQubG9jYWxlLHg9dC5jdXN0b21TeW1ib2wscD14PT09dm9pZCAwP2QuY3VzdG9tU3ltYm9sOngseT10Lm51bWJlckZvcm1hdE9wdGlvbnMsdz15PT09dm9pZCAwP2Q9PW51bGw/dm9pZCAwOmQubnVtYmVyRm9ybWF0T3B0aW9uczp5LFA9dC5udW1iZXJQb3BvdmVyUmVuZGVyLEU9UD09PXZvaWQgMD8oZD09bnVsbD92b2lkIDA6ZC5udW1iZXJQb3BvdmVyUmVuZGVyKXx8ITE6UCxNPSgwLGcuWikodCx2aCksRD0ocj1kPT1udWxsP3ZvaWQgMDpkLnByZWNpc2lvbikhPT1udWxsJiZyIT09dm9pZCAwP3I6RGwsTj0oMCxPLllCKSgpO0MmJmt1LkdvW0NdJiYoTj1rdS5Hb1tDXSk7dmFyIFQ9aHx8Ti5nZXRNZXNzYWdlKCJ0YWJsZUZvcm0uaW5wdXRQbGFjZWhvbGRlciIsIlx1OEJGN1x1OEY5M1x1NTE2NSIpLFc9KDAsby51c2VNZW1vKShmdW5jdGlvbigpe2lmKHApcmV0dXJuIHA7aWYoIShNLm1vbmV5U3ltYm9sPT09ITF8fGQubW9uZXlTeW1ib2w9PT0hMSkpcmV0dXJuIE4uZ2V0TWVzc2FnZSgibW9uZXlTeW1ib2wiLCJceEE1Iil9LFtwLGQubW9uZXlTeW1ib2wsTixNLm1vbmV5U3ltYm9sXSksQj0oMCxvLnVzZUNhbGxiYWNrKShmdW5jdGlvbihBKXt2YXIgVj1uZXcgUmVnRXhwKCJcXEIoPz0oXFxkeyIuY29uY2F0KDMrTWF0aC5tYXgoRC1EbCwwKSwifSkrKD8hXFxkKSkiKSwiZyIpLHo9U3RyaW5nKEEpLnNwbGl0KCIuIiksWD0oMCxqLlopKHosMikscT1YWzBdLFE9WFsxXSxhZT1xLnJlcGxhY2UoViwiLCIpLGVlPSIiO3JldHVybiBRJiZEPjAmJihlZT0iLiIuY29uY2F0KFEuc2xpY2UoMCxEPT09dm9pZCAwP0RsOkQpKSksIiIuY29uY2F0KGFlKS5jb25jYXQoZWUpfSxbRF0pO2lmKGw9PT0icmVhZCIpe3ZhciBZPSgwLEsuanN4KSgic3BhbiIse3JlZjpuLGNoaWxkcmVuOlZ1KEN8fCExLGEsRCx3IT1udWxsP3c6ZC5udW1iZXJGb3JtYXRPcHRpb25zLFcpfSk7cmV0dXJuIHU/dShhLCgwLHMuWikoe21vZGU6bH0sZCksWSk6WX1pZihsPT09ImVkaXQifHxsPT09InVwZGF0ZSIpe3ZhciBIPSgwLEsuanN4KShDaCwoMCxzLlopKCgwLHMuWikoe2NvbnRlbnRSZW5kZXI6ZnVuY3Rpb24oVil7aWYoRT09PSExfHwhVi52YWx1ZSlyZXR1cm4gbnVsbDt2YXIgej1WdShXfHxDfHwhMSwiIi5jb25jYXQoQihWLnZhbHVlKSksRCwoMCxzLlopKCgwLHMuWikoe30sdykse30se25vdGF0aW9uOiJjb21wYWN0In0pLFcpO3JldHVybiB0eXBlb2YgRT09ImZ1bmN0aW9uIj9FPT1udWxsP3ZvaWQgMDpFKFYseik6en0scmVmOm4scHJlY2lzaW9uOkQsZm9ybWF0dGVyOmZ1bmN0aW9uKFYpe3JldHVybiBWJiZXPyIiLmNvbmNhdChXLCIgIikuY29uY2F0KEIoVikpOlY9PW51bGw/dm9pZCAwOlYudG9TdHJpbmcoKX0scGFyc2VyOmZ1bmN0aW9uKFYpe3JldHVybiBXJiZWP1YucmVwbGFjZShuZXcgUmVnRXhwKCJcXCIuY29uY2F0KFcsIlxccz98KCwqKSIpLCJnIiksIiIpOlZ9LHBsYWNlaG9sZGVyOlR9LCgwLHBuLlopKGQsWyJudW1iZXJGb3JtYXRPcHRpb25zIiwicHJlY2lzaW9uIiwibnVtYmVyUG9wb3ZlclJlbmRlciIsImN1c3RvbVN5bWJvbCIsIm1vbmV5U3ltYm9sIiwidmlzaWJsZSIsIm9wZW4iXSkpLHt9LHtvbkJsdXI6ZC5vbkJsdXI/ZnVuY3Rpb24oQSl7dmFyIFYsej1BLnRhcmdldC52YWx1ZTtXJiZ6JiYoej16LnJlcGxhY2UobmV3IFJlZ0V4cCgiXFwiLmNvbmNhdChXLCJcXHM/fCgsKikiKSwiZyIpLCIiKSksKFY9ZC5vbkJsdXIpPT09bnVsbHx8Vj09PXZvaWQgMHx8Vi5jYWxsKGQseil9OnZvaWQgMH0pKTtyZXR1cm4gYz9jKGEsKDAscy5aKSh7bW9kZTpsfSxkKSxIKTpIfXJldHVybiBudWxsfSxCdT1vLmZvcndhcmRSZWYoeGgpLFd1PWZ1bmN0aW9uKHQpe3JldHVybiB0Lm1hcChmdW5jdGlvbihuLHIpe3ZhciBhO3JldHVybiBvLmlzVmFsaWRFbGVtZW50KG4pP28uY2xvbmVFbGVtZW50KG4sKDAscy5aKSgoMCxzLlopKHtrZXk6cn0sbj09bnVsbD92b2lkIDA6bi5wcm9wcykse30se3N0eWxlOigwLHMuWikoe30sbj09bnVsbHx8KGE9bi5wcm9wcyk9PT1udWxsfHxhPT09dm9pZCAwP3ZvaWQgMDphLnN0eWxlKX0pKTooMCxLLmpzeCkoby5GcmFnbWVudCx7Y2hpbGRyZW46bn0scil9KX0sU2g9ZnVuY3Rpb24odCxuKXt2YXIgcj10LnRleHQsYT10Lm1vZGUsbD10LnJlbmRlcix1PXQuZmllbGRQcm9wcyxjPSgwLG8udXNlQ29udGV4dCkoYmUuWlAuQ29uZmlnQ29udGV4dCksZD1jLmdldFByZWZpeENscyx2PWQoInByby1maWVsZC1vcHRpb24iKSxmPWZyLk93LnVzZVRva2VuKCksbT1mLnRva2VuO2lmKCgwLG8udXNlSW1wZXJhdGl2ZUhhbmRsZSkobixmdW5jdGlvbigpe3JldHVybnt9fSksbCl7dmFyIGg9bChyLCgwLHMuWikoe21vZGU6YX0sdSksKDAsSy5qc3gpKEsuRnJhZ21lbnQse30pKTtyZXR1cm4haHx8KGg9PW51bGw/dm9pZCAwOmgubGVuZ3RoKTwxfHwhQXJyYXkuaXNBcnJheShoKT9udWxsOigwLEsuanN4KSgiZGl2Iix7c3R5bGU6e2Rpc3BsYXk6ImZsZXgiLGdhcDptLm1hcmdpbixhbGlnbkl0ZW1zOiJjZW50ZXIifSxjbGFzc05hbWU6dixjaGlsZHJlbjpXdShoKX0pfXJldHVybiFyfHwhQXJyYXkuaXNBcnJheShyKT9vLmlzVmFsaWRFbGVtZW50KHIpP3I6bnVsbDooMCxLLmpzeCkoImRpdiIse3N0eWxlOntkaXNwbGF5OiJmbGV4IixnYXA6bS5tYXJnaW4sYWxpZ25JdGVtczoiY2VudGVyIn0sY2xhc3NOYW1lOnYsY2hpbGRyZW46V3Uocil9KX0sUGg9by5mb3J3YXJkUmVmKFNoKSx3aD1pKDk5NjExKSxPaD1pKDkwNDIwKSxFaD1bInRleHQiLCJtb2RlIiwicmVuZGVyIiwicmVuZGVyRm9ybUl0ZW0iLCJmaWVsZFByb3BzIiwicHJvRmllbGRLZXkiXSxJaD1mdW5jdGlvbih0LG4pe3ZhciByPXQudGV4dCxhPXQubW9kZSxsPXQucmVuZGVyLHU9dC5yZW5kZXJGb3JtSXRlbSxjPXQuZmllbGRQcm9wcyxkPXQucHJvRmllbGRLZXksdj0oMCxnLlopKHQsRWgpLGY9KDAsTy5ZQikoKSxtPSgwLHJ0LlopKGZ1bmN0aW9uKCl7cmV0dXJuIHYub3Blbnx8di52aXNpYmxlfHwhMX0se3ZhbHVlOnYub3Blbnx8di52aXNpYmxlLG9uQ2hhbmdlOnYub25PcGVuQ2hhbmdlfHx2Lm9uVmlzaWJsZX0pLGg9KDAsai5aKShtLDIpLEM9aFswXSx4PWhbMV07aWYoYT09PSJyZWFkIil7dmFyIHA9KDAsSy5qc3gpKEsuRnJhZ21lbnQse2NoaWxkcmVuOiItIn0pO3JldHVybiByJiYocD0oMCxLLmpzeHMpKFJsLlose2NoaWxkcmVuOlsoMCxLLmpzeCkoInNwYW4iLHtyZWY6bixjaGlsZHJlbjpDP3I6IioqKioqKioqIn0pLCgwLEsuanN4KSgiYSIse29uQ2xpY2s6ZnVuY3Rpb24oKXtyZXR1cm4geCghQyl9LGNoaWxkcmVuOkM/KDAsSy5qc3gpKHdoLlose30pOigwLEsuanN4KShPaC5aLHt9KX0pXX0pKSxsP2wociwoMCxzLlopKHttb2RlOmF9LGMpLHApOnB9aWYoYT09PSJlZGl0Inx8YT09PSJ1cGRhdGUiKXt2YXIgeT0oMCxLLmpzeCkoQXIuWi5QYXNzd29yZCwoMCxzLlopKHtwbGFjZWhvbGRlcjpmLmdldE1lc3NhZ2UoInRhYmxlRm9ybS5pbnB1dFBsYWNlaG9sZGVyIiwiXHU4QkY3XHU4RjkzXHU1MTY1IikscmVmOm59LGMpKTtyZXR1cm4gdT91KHIsKDAscy5aKSh7bW9kZTphfSxjKSx5KTp5fXJldHVybiBudWxsfSwkaD1vLmZvcndhcmRSZWYoSWgpO2Z1bmN0aW9uIE1oKGUpe3JldHVybiBlPT09MD9udWxsOmU+MD8iKyI6Ii0ifWZ1bmN0aW9uIFpoKGUpe3JldHVybiBlPT09MD8iIzU5NTk1OSI6ZT4wPyIjZmY0ZDRmIjoiIzUyYzQxYSJ9ZnVuY3Rpb24gUmgoZSl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOjI7cmV0dXJuIHQ+PTA/ZT09bnVsbD92b2lkIDA6ZS50b0ZpeGVkKHQpOmV9ZnVuY3Rpb24gS2koZSl7cmV0dXJuKDAsYi5aKShlKT09PSJzeW1ib2wifHxlIGluc3RhbmNlb2YgU3ltYm9sP05hTjpOdW1iZXIoZSl9dmFyIERoPWZ1bmN0aW9uKHQsbil7dmFyIHI9dC50ZXh0LGE9dC5wcmVmaXgsbD10LnByZWNpc2lvbix1PXQuc3VmZml4LGM9dT09PXZvaWQgMD8iJSI6dSxkPXQubW9kZSx2PXQuc2hvd0NvbG9yLGY9dj09PXZvaWQgMD8hMTp2LG09dC5yZW5kZXIsaD10LnJlbmRlckZvcm1JdGVtLEM9dC5maWVsZFByb3BzLHg9dC5wbGFjZWhvbGRlcixwPXQuc2hvd1N5bWJvbCx5PSgwLE8uWUIpKCksdz14fHx5LmdldE1lc3NhZ2UoInRhYmxlRm9ybS5pbnB1dFBsYWNlaG9sZGVyIiwiXHU4QkY3XHU4RjkzXHU1MTY1IiksUD0oMCxvLnVzZU1lbW8pKGZ1bmN0aW9uKCl7cmV0dXJuIHR5cGVvZiByPT0ic3RyaW5nIiYmci5pbmNsdWRlcygiJSIpP0tpKHIucmVwbGFjZSgiJSIsIiIpKTpLaShyKX0sW3JdKSxFPSgwLG8udXNlTWVtbykoZnVuY3Rpb24oKXtyZXR1cm4gdHlwZW9mIHA9PSJmdW5jdGlvbiI/cD09bnVsbD92b2lkIDA6cChyKTpwfSxbcCxyXSk7aWYoZD09PSJyZWFkIil7dmFyIE09Zj97Y29sb3I6WmgoUCl9Ont9LEQ9KDAsSy5qc3hzKSgic3BhbiIse3N0eWxlOk0scmVmOm4sY2hpbGRyZW46W2EmJigwLEsuanN4KSgic3BhbiIse2NoaWxkcmVuOmF9KSxFJiYoMCxLLmpzeHMpKG8uRnJhZ21lbnQse2NoaWxkcmVuOltNaChQKSwiICJdfSksUmgoTWF0aC5hYnMoUCksbCksYyYmY119KTtyZXR1cm4gbT9tKHIsKDAscy5aKSgoMCxzLlopKHttb2RlOmR9LEMpLHt9LHtwcmVmaXg6YSxwcmVjaXNpb246bCxzaG93U3ltYm9sOkUsc3VmZml4OmN9KSxEKTpEfWlmKGQ9PT0iZWRpdCJ8fGQ9PT0idXBkYXRlIil7dmFyIE49KDAsSy5qc3gpKG5vLCgwLHMuWikoe3JlZjpuLGZvcm1hdHRlcjpmdW5jdGlvbihXKXtyZXR1cm4gVyYmYT8iIi5jb25jYXQoYSwiICIpLmNvbmNhdChXKS5yZXBsYWNlKC9cQig/PShcZHszfSkrKD8hXGQpJCkvZywiLCIpOld9LHBhcnNlcjpmdW5jdGlvbihXKXtyZXR1cm4gVz9XLnJlcGxhY2UoLy4qXHN8LC9nLCIiKToiIn0scGxhY2Vob2xkZXI6d30sQykpO3JldHVybiBoP2gociwoMCxzLlopKHttb2RlOmR9LEMpLE4pOk59cmV0dXJuIG51bGx9LHp1PW8uZm9yd2FyZFJlZihEaCksTmg9aSgzODcwMyk7ZnVuY3Rpb24gRmgoZSl7cmV0dXJuIGU9PT0xMDA/InN1Y2Nlc3MiOmU8MD8iZXhjZXB0aW9uIjplPDEwMD8iYWN0aXZlIjoibm9ybWFsIn12YXIgVGg9ZnVuY3Rpb24odCxuKXt2YXIgcj10LnRleHQsYT10Lm1vZGUsbD10LnJlbmRlcix1PXQucGxhaW4sYz10LnJlbmRlckZvcm1JdGVtLGQ9dC5maWVsZFByb3BzLHY9dC5wbGFjZWhvbGRlcixmPSgwLE8uWUIpKCksbT12fHxmLmdldE1lc3NhZ2UoInRhYmxlRm9ybS5pbnB1dFBsYWNlaG9sZGVyIiwiXHU4QkY3XHU4RjkzXHU1MTY1IiksaD0oMCxvLnVzZU1lbW8pKGZ1bmN0aW9uKCl7cmV0dXJuIHR5cGVvZiByPT0ic3RyaW5nIiYmci5pbmNsdWRlcygiJSIpP0tpKHIucmVwbGFjZSgiJSIsIiIpKTpLaShyKX0sW3JdKTtpZihhPT09InJlYWQiKXt2YXIgQz0oMCxLLmpzeCkoTmguWiwoMCxzLlopKHtyZWY6bixzaXplOiJzbWFsbCIsc3R5bGU6e21pbldpZHRoOjEwMCxtYXhXaWR0aDozMjB9LHBlcmNlbnQ6aCxzdGVwczp1PzEwOnZvaWQgMCxzdGF0dXM6RmgoaCl9LGQpKTtyZXR1cm4gbD9sKGgsKDAscy5aKSh7bW9kZTphfSxkKSxDKTpDfWlmKGE9PT0iZWRpdCJ8fGE9PT0idXBkYXRlIil7dmFyIHg9KDAsSy5qc3gpKG5vLCgwLHMuWikoe3JlZjpuLHBsYWNlaG9sZGVyOm19LGQpKTtyZXR1cm4gYz9jKHIsKDAscy5aKSh7bW9kZTphfSxkKSx4KTp4fXJldHVybiBudWxsfSxLdT1vLmZvcndhcmRSZWYoVGgpLGpoPWkoNzgwNDUpLEFoPVsicmFkaW9UeXBlIiwicmVuZGVyRm9ybUl0ZW0iLCJtb2RlIiwicmVuZGVyIl0sSGg9ZnVuY3Rpb24odCxuKXt2YXIgcixhLGw9dC5yYWRpb1R5cGUsdT10LnJlbmRlckZvcm1JdGVtLGM9dC5tb2RlLGQ9dC5yZW5kZXIsdj0oMCxnLlopKHQsQWgpLGY9KDAsby51c2VDb250ZXh0KShiZS5aUC5Db25maWdDb250ZXh0KSxtPWYuZ2V0UHJlZml4Q2xzLGg9bSgicHJvLWZpZWxkLXJhZGlvIiksQz0oMCxGci5hSykodikseD0oMCxqLlopKEMsMykscD14WzBdLHk9eFsxXSx3PXhbMl0sUD0oMCxvLnVzZVJlZikoKSxFPShyPW1hLlouSXRlbSk9PT1udWxsfHxyPT09dm9pZCAwfHwoYT1yLnVzZVN0YXR1cyk9PT1udWxsfHxhPT09dm9pZCAwP3ZvaWQgMDphLmNhbGwocik7KDAsby51c2VJbXBlcmF0aXZlSGFuZGxlKShuLGZ1bmN0aW9uKCl7cmV0dXJuKDAscy5aKSgoMCxzLlopKHt9LFAuY3VycmVudHx8e30pLHt9LHtmZXRjaERhdGE6ZnVuY3Rpb24oeil7cmV0dXJuIHcoeil9fSl9LFt3XSk7dmFyIE09KDAsZnIuWGopKCJGaWVsZFJhZGlvUmFkaW8iLGZ1bmN0aW9uKFYpe3JldHVybigwLEcuWikoKDAsRy5aKSgoMCxHLlopKHt9LCIuIi5jb25jYXQoaCwiLWVycm9yIikse3NwYW46e2NvbG9yOlYuY29sb3JFcnJvcn19KSwiLiIuY29uY2F0KGgsIi13YXJuaW5nIikse3NwYW46e2NvbG9yOlYuY29sb3JXYXJuaW5nfX0pLCIuIi5jb25jYXQoaCwiLXZlcnRpY2FsIiksKDAsRy5aKSh7fSwiIi5jb25jYXQoVi5hbnRDbHMsIi1yYWRpby13cmFwcGVyIikse2Rpc3BsYXk6ImZsZXgiLG1hcmdpbklubGluZUVuZDowfSkpfSksRD1NLndyYXBTU1IsTj1NLmhhc2hJZDtpZihwKXJldHVybigwLEsuanN4KShUci5aLHtzaXplOiJzbWFsbCJ9KTtpZihjPT09InJlYWQiKXt2YXIgVD15IT1udWxsJiZ5Lmxlbmd0aD95PT1udWxsP3ZvaWQgMDp5LnJlZHVjZShmdW5jdGlvbihWLHope3ZhciBYO3JldHVybigwLHMuWikoKDAscy5aKSh7fSxWKSx7fSwoMCxHLlopKHt9LChYPXoudmFsdWUpIT09bnVsbCYmWCE9PXZvaWQgMD9YOiIiLHoubGFiZWwpKX0se30pOnZvaWQgMCxXPSgwLEsuanN4KShLLkZyYWdtZW50LHtjaGlsZHJlbjooMCxtZS5NUCkodi50ZXh0LCgwLG1lLlI2KSh2LnZhbHVlRW51bXx8VCkpfSk7aWYoZCl7dmFyIEI7cmV0dXJuKEI9ZCh2LnRleHQsKDAscy5aKSh7bW9kZTpjfSx2LmZpZWxkUHJvcHMpLFcpKSE9PW51bGwmJkIhPT12b2lkIDA/QjpudWxsfXJldHVybiBXfWlmKGM9PT0iZWRpdCIpe3ZhciBZLEg9RCgoMCxLLmpzeCkoamguWlAuR3JvdXAsKDAscy5aKSgoMCxzLlopKHtyZWY6UCxvcHRpb25UeXBlOmx9LHYuZmllbGRQcm9wcykse30se2NsYXNzTmFtZTpvZSgpKChZPXYuZmllbGRQcm9wcyk9PT1udWxsfHxZPT09dm9pZCAwP3ZvaWQgMDpZLmNsYXNzTmFtZSwoMCxHLlopKCgwLEcuWikoe30sIiIuY29uY2F0KGgsIi1lcnJvciIpLChFPT1udWxsP3ZvaWQgMDpFLnN0YXR1cyk9PT0iZXJyb3IiKSwiIi5jb25jYXQoaCwiLXdhcm5pbmciKSwoRT09bnVsbD92b2lkIDA6RS5zdGF0dXMpPT09Indhcm5pbmciKSxOLCIiLmNvbmNhdChoLCItIikuY29uY2F0KHYuZmllbGRQcm9wcy5sYXlvdXR8fCJob3Jpem9udGFsIikpLG9wdGlvbnM6eX0pKSk7aWYodSl7dmFyIEE7cmV0dXJuKEE9dSh2LnRleHQsKDAscy5aKSgoMCxzLlopKHttb2RlOmN9LHYuZmllbGRQcm9wcykse30se29wdGlvbnM6eSxsb2FkaW5nOnB9KSxIKSkhPT1udWxsJiZBIT09dm9pZCAwP0E6bnVsbH1yZXR1cm4gSH1yZXR1cm4gbnVsbH0sWXU9by5mb3J3YXJkUmVmKEhoKSxraD1mdW5jdGlvbih0LG4pe3ZhciByPXQudGV4dCxhPXQubW9kZSxsPXQubGlnaHQsdT10LmxhYmVsLGM9dC5mb3JtYXQsZD10LnJlbmRlcix2PXQucGlja2VyLGY9dC5yZW5kZXJGb3JtSXRlbSxtPXQucGxhaW4saD10LnNob3dUaW1lLEM9dC5saWdodExhYmVsLHg9dC5ib3JkZXJlZCxwPXQuZmllbGRQcm9wcyx5PSgwLE8uWUIpKCksdz1BcnJheS5pc0FycmF5KHIpP3I6W10sUD0oMCxqLlopKHcsMiksRT1QWzBdLE09UFsxXSxEPW8udXNlU3RhdGUoITEpLE49KDAsai5aKShELDIpLFQ9TlswXSxXPU5bMV0sQj0oMCxvLnVzZUNhbGxiYWNrKShmdW5jdGlvbihxKXtpZih0eXBlb2YocD09bnVsbD92b2lkIDA6cC5mb3JtYXQpPT0iZnVuY3Rpb24iKXt2YXIgUTtyZXR1cm4gcD09bnVsbHx8KFE9cC5mb3JtYXQpPT09bnVsbHx8UT09PXZvaWQgMD92b2lkIDA6US5jYWxsKHAscSl9cmV0dXJuKHA9PW51bGw/dm9pZCAwOnAuZm9ybWF0KXx8Y3x8IllZWVktTU0tREQifSxbcCxjXSksWT1FP3RuKCkoRSkuZm9ybWF0KEIodG4oKShFKSkpOiIiLEg9TT90bigpKE0pLmZvcm1hdChCKHRuKCkoTSkpKToiIjtpZihhPT09InJlYWQiKXt2YXIgQT0oMCxLLmpzeHMpKCJkaXYiLHtyZWY6bixzdHlsZTp7ZGlzcGxheToiZmxleCIsZmxleFdyYXA6IndyYXAiLGdhcDo4LGFsaWduSXRlbXM6ImNlbnRlciJ9LGNoaWxkcmVuOlsoMCxLLmpzeCkoImRpdiIse2NoaWxkcmVuOll8fCItIn0pLCgwLEsuanN4KSgiZGl2Iix7Y2hpbGRyZW46SHx8Ii0ifSldfSk7cmV0dXJuIGQ/ZChyLCgwLHMuWikoe21vZGU6YX0scCksKDAsSy5qc3gpKCJzcGFuIix7Y2hpbGRyZW46QX0pKTpBfWlmKGE9PT0iZWRpdCJ8fGE9PT0idXBkYXRlIil7dmFyIFY9bGkocC52YWx1ZSksejtpZihsKXt2YXIgWDt6PSgwLEsuanN4KSh2ZS5RLHtsYWJlbDp1LG9uQ2xpY2s6ZnVuY3Rpb24oKXt2YXIgUTtwPT1udWxsfHwoUT1wLm9uT3BlbkNoYW5nZSk9PT1udWxsfHxRPT09dm9pZCAwfHxRLmNhbGwocCwhMCksVyghMCl9LHN0eWxlOlY/e3BhZGRpbmdJbmxpbmVFbmQ6MH06dm9pZCAwLGRpc2FibGVkOnAuZGlzYWJsZWQsdmFsdWU6Vnx8VD8oMCxLLmpzeCkoRW8uUmFuZ2VQaWNrZXIsKDAscy5aKSgoMCxzLlopKCgwLHMuWikoe3BpY2tlcjp2LHNob3dUaW1lOmgsZm9ybWF0OmN9LCgwLF8uSikoITEpKSxwKSx7fSx7cGxhY2Vob2xkZXI6KFg9cC5wbGFjZWhvbGRlcikhPT1udWxsJiZYIT09dm9pZCAwP1g6W3kuZ2V0TWVzc2FnZSgidGFibGVGb3JtLnNlbGVjdFBsYWNlaG9sZGVyIiwiXHU4QkY3XHU5MDA5XHU2MkU5IikseS5nZXRNZXNzYWdlKCJ0YWJsZUZvcm0uc2VsZWN0UGxhY2Vob2xkZXIiLCJcdThCRjdcdTkwMDlcdTYyRTkiKV0sb25DbGVhcjpmdW5jdGlvbigpe3ZhciBRO1coITEpLHA9PW51bGx8fChRPXAub25DbGVhcik9PT1udWxsfHxRPT09dm9pZCAwfHxRLmNhbGwocCl9LHZhbHVlOlYsb25PcGVuQ2hhbmdlOmZ1bmN0aW9uKFEpe3ZhciBhZTtWJiZXKFEpLHA9PW51bGx8fChhZT1wLm9uT3BlbkNoYW5nZSk9PT1udWxsfHxhZT09PXZvaWQgMHx8YWUuY2FsbChwLFEpfX0pKTpudWxsLGFsbG93Q2xlYXI6ITEsYm9yZGVyZWQ6eCxyZWY6Qyxkb3duSWNvbjpWfHxUPyExOnZvaWQgMH0pfWVsc2Ugej0oMCxLLmpzeCkoRW8uUmFuZ2VQaWNrZXIsKDAscy5aKSgoMCxzLlopKCgwLHMuWikoe3JlZjpuLGZvcm1hdDpjLHNob3dUaW1lOmgscGxhY2Vob2xkZXI6W3kuZ2V0TWVzc2FnZSgidGFibGVGb3JtLnNlbGVjdFBsYWNlaG9sZGVyIiwiXHU4QkY3XHU5MDA5XHU2MkU5IikseS5nZXRNZXNzYWdlKCJ0YWJsZUZvcm0uc2VsZWN0UGxhY2Vob2xkZXIiLCJcdThCRjdcdTkwMDlcdTYyRTkiKV19LCgwLF8uSikobT09PXZvaWQgMD8hMDohbSkpLHApLHt9LHt2YWx1ZTpWfSkpO3JldHVybiBmP2YociwoMCxzLlopKHttb2RlOmF9LHApLHopOnp9cmV0dXJuIG51bGx9LHpvPW8uZm9yd2FyZFJlZihraCksTGg9aSg5MDU5OCk7ZnVuY3Rpb24gVmgoZSx0KXt2YXIgbj1lLmRpc2FibGVkLHI9ZS5wcmVmaXhDbHMsYT1lLmNoYXJhY3RlcixsPWUuY2hhcmFjdGVyUmVuZGVyLHU9ZS5pbmRleCxjPWUuY291bnQsZD1lLnZhbHVlLHY9ZS5hbGxvd0hhbGYsZj1lLmZvY3VzZWQsbT1lLm9uSG92ZXIsaD1lLm9uQ2xpY2ssQz1mdW5jdGlvbihEKXttKEQsdSl9LHg9ZnVuY3Rpb24oRCl7aChELHUpfSxwPWZ1bmN0aW9uKEQpe0Qua2V5Q29kZT09PVR0LlouRU5URVImJmgoRCx1KX0seT11KzEsdz1uZXcgU2V0KFtyXSk7ZD09PTAmJnU9PT0wJiZmP3cuYWRkKCIiLmNvbmNhdChyLCItZm9jdXNlZCIpKTp2JiZkKy41Pj15JiZkPHk/KHcuYWRkKCIiLmNvbmNhdChyLCItaGFsZiIpKSx3LmFkZCgiIi5jb25jYXQociwiLWFjdGl2ZSIpKSxmJiZ3LmFkZCgiIi5jb25jYXQociwiLWZvY3VzZWQiKSkpOih5PD1kP3cuYWRkKCIiLmNvbmNhdChyLCItZnVsbCIpKTp3LmFkZCgiIi5jb25jYXQociwiLXplcm8iKSkseT09PWQmJmYmJncuYWRkKCIiLmNvbmNhdChyLCItZm9jdXNlZCIpKSk7dmFyIFA9dHlwZW9mIGE9PSJmdW5jdGlvbiI/YShlKTphLEU9by5jcmVhdGVFbGVtZW50KCJsaSIse2NsYXNzTmFtZTpvZSgpKEFycmF5LmZyb20odykpLHJlZjp0fSxvLmNyZWF0ZUVsZW1lbnQoImRpdiIse29uQ2xpY2s6bj9udWxsOngsb25LZXlEb3duOm4/bnVsbDpwLG9uTW91c2VNb3ZlOm4/bnVsbDpDLHJvbGU6InJhZGlvIiwiYXJpYS1jaGVja2VkIjpkPnU/InRydWUiOiJmYWxzZSIsImFyaWEtcG9zaW5zZXQiOnUrMSwiYXJpYS1zZXRzaXplIjpjLHRhYkluZGV4Om4/LTE6MH0sby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KHIsIi1maXJzdCIpfSxQKSxvLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiIi5jb25jYXQociwiLXNlY29uZCIpfSxQKSkpO3JldHVybiBsJiYoRT1sKEUsZSkpLEV9dmFyIEJoPW8uZm9yd2FyZFJlZihWaCk7ZnVuY3Rpb24gV2goKXt2YXIgZT1vLnVzZVJlZih7fSk7ZnVuY3Rpb24gdChyKXtyZXR1cm4gZS5jdXJyZW50W3JdfWZ1bmN0aW9uIG4ocil7cmV0dXJuIGZ1bmN0aW9uKGEpe2UuY3VycmVudFtyXT1hfX1yZXR1cm5bdCxuXX1mdW5jdGlvbiB6aChlKXt2YXIgdD1lLnBhZ2VYT2Zmc2V0LG49InNjcm9sbExlZnQiO2lmKHR5cGVvZiB0IT0ibnVtYmVyIil7dmFyIHI9ZS5kb2N1bWVudDt0PXIuZG9jdW1lbnRFbGVtZW50W25dLHR5cGVvZiB0IT0ibnVtYmVyIiYmKHQ9ci5ib2R5W25dKX1yZXR1cm4gdH1mdW5jdGlvbiBLaChlKXt2YXIgdCxuLHI9ZS5vd25lckRvY3VtZW50LGE9ci5ib2R5LGw9ciYmci5kb2N1bWVudEVsZW1lbnQsdT1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybiB0PXUubGVmdCxuPXUudG9wLHQtPWwuY2xpZW50TGVmdHx8YS5jbGllbnRMZWZ0fHwwLG4tPWwuY2xpZW50VG9wfHxhLmNsaWVudFRvcHx8MCx7bGVmdDp0LHRvcDpufX1mdW5jdGlvbiBZaChlKXt2YXIgdD1LaChlKSxuPWUub3duZXJEb2N1bWVudCxyPW4uZGVmYXVsdFZpZXd8fG4ucGFyZW50V2luZG93O3JldHVybiB0LmxlZnQrPXpoKHIpLHQubGVmdH12YXIgVWg9WyJwcmVmaXhDbHMiLCJjbGFzc05hbWUiLCJkZWZhdWx0VmFsdWUiLCJ2YWx1ZSIsImNvdW50IiwiYWxsb3dIYWxmIiwiYWxsb3dDbGVhciIsImtleWJvYXJkIiwiY2hhcmFjdGVyIiwiY2hhcmFjdGVyUmVuZGVyIiwiZGlzYWJsZWQiLCJkaXJlY3Rpb24iLCJ0YWJJbmRleCIsImF1dG9Gb2N1cyIsIm9uSG92ZXJDaGFuZ2UiLCJvbkNoYW5nZSIsIm9uRm9jdXMiLCJvbkJsdXIiLCJvbktleURvd24iLCJvbk1vdXNlTGVhdmUiXTtmdW5jdGlvbiBYaChlLHQpe3ZhciBuPWUucHJlZml4Q2xzLHI9bj09PXZvaWQgMD8icmMtcmF0ZSI6bixhPWUuY2xhc3NOYW1lLGw9ZS5kZWZhdWx0VmFsdWUsdT1lLnZhbHVlLGM9ZS5jb3VudCxkPWM9PT12b2lkIDA/NTpjLHY9ZS5hbGxvd0hhbGYsZj12PT09dm9pZCAwPyExOnYsbT1lLmFsbG93Q2xlYXIsaD1tPT09dm9pZCAwPyEwOm0sQz1lLmtleWJvYXJkLHg9Qz09PXZvaWQgMD8hMDpDLHA9ZS5jaGFyYWN0ZXIseT1wPT09dm9pZCAwPyJcdTI2MDUiOnAsdz1lLmNoYXJhY3RlclJlbmRlcixQPWUuZGlzYWJsZWQsRT1lLmRpcmVjdGlvbixNPUU9PT12b2lkIDA/Imx0ciI6RSxEPWUudGFiSW5kZXgsTj1EPT09dm9pZCAwPzA6RCxUPWUuYXV0b0ZvY3VzLFc9ZS5vbkhvdmVyQ2hhbmdlLEI9ZS5vbkNoYW5nZSxZPWUub25Gb2N1cyxIPWUub25CbHVyLEE9ZS5vbktleURvd24sVj1lLm9uTW91c2VMZWF2ZSx6PSgwLGcuWikoZSxVaCksWD1XaCgpLHE9KDAsai5aKShYLDIpLFE9cVswXSxhZT1xWzFdLGVlPW8udXNlUmVmKG51bGwpLHJlPWZ1bmN0aW9uKCl7aWYoIVApe3ZhciBBZTsoQWU9ZWUuY3VycmVudCk9PT1udWxsfHxBZT09PXZvaWQgMHx8QWUuZm9jdXMoKX19O28udXNlSW1wZXJhdGl2ZUhhbmRsZSh0LGZ1bmN0aW9uKCl7cmV0dXJue2ZvY3VzOnJlLGJsdXI6ZnVuY3Rpb24oKXtpZighUCl7dmFyIEFlOyhBZT1lZS5jdXJyZW50KT09PW51bGx8fEFlPT09dm9pZCAwfHxBZS5ibHVyKCl9fX19KTt2YXIgc2U9KDAscnQuWikobHx8MCx7dmFsdWU6dX0pLEo9KDAsai5aKShzZSwyKSxpZT1KWzBdLGNlPUpbMV0seGU9KDAscnQuWikobnVsbCksdWU9KDAsai5aKSh4ZSwyKSx5ZT11ZVswXSxQZT11ZVsxXSxnZT1mdW5jdGlvbihBZSxxZSl7dmFyIGV0PU09PT0icnRsIixPdD1BZSsxO2lmKGYpe3ZhciBHZT1RKEFlKSxubj1ZaChHZSksaXQ9R2UuY2xpZW50V2lkdGg7KGV0JiZxZS1ubj5pdC8yfHwhZXQmJnFlLW5uPGl0LzIpJiYoT3QtPS41KX1yZXR1cm4gT3R9LFJlPWZ1bmN0aW9uKEFlKXtjZShBZSksQj09bnVsbHx8QihBZSl9LFNlPW8udXNlU3RhdGUoITEpLEllPSgwLGouWikoU2UsMiksWmU9SWVbMF0sQ2U9SWVbMV0sRWU9ZnVuY3Rpb24oKXtDZSghMCksWT09bnVsbHx8WSgpfSxwZT1mdW5jdGlvbigpe0NlKCExKSxIPT1udWxsfHxIKCl9LEplPW8udXNlU3RhdGUobnVsbCksQmU9KDAsai5aKShKZSwyKSx2dD1CZVswXSx5dD1CZVsxXSxzdD1mdW5jdGlvbihBZSxxZSl7dmFyIGV0PWdlKHFlLEFlLnBhZ2VYKTtldCE9PXllJiYoeXQoZXQpLFBlKG51bGwpKSxXPT1udWxsfHxXKGV0KX0sbnQ9ZnVuY3Rpb24oQWUpe1B8fCh5dChudWxsKSxQZShudWxsKSxXPT1udWxsfHxXKHZvaWQgMCkpLEFlJiYoVj09bnVsbHx8VihBZSkpfSxJdD1mdW5jdGlvbihBZSxxZSl7dmFyIGV0PWdlKHFlLEFlLnBhZ2VYKSxPdD0hMTtoJiYoT3Q9ZXQ9PT1pZSksbnQoKSxSZShPdD8wOmV0KSxQZShPdD9ldDpudWxsKX0sY3Q9ZnVuY3Rpb24oQWUpe3ZhciBxZT1BZS5rZXlDb2RlLGV0PU09PT0icnRsIixPdD1mPy41OjE7eCYmKHFlPT09VHQuWi5SSUdIVCYmaWU8ZCYmIWV0PyhSZShpZStPdCksQWUucHJldmVudERlZmF1bHQoKSk6cWU9PT1UdC5aLkxFRlQmJmllPjAmJiFldHx8cWU9PT1UdC5aLlJJR0hUJiZpZT4wJiZldD8oUmUoaWUtT3QpLEFlLnByZXZlbnREZWZhdWx0KCkpOnFlPT09VHQuWi5MRUZUJiZpZTxkJiZldCYmKFJlKGllK090KSxBZS5wcmV2ZW50RGVmYXVsdCgpKSksQT09bnVsbHx8QShBZSl9O28udXNlRWZmZWN0KGZ1bmN0aW9uKCl7VCYmIVAmJnJlKCl9LFtdKTt2YXIgWnQ9bmV3IEFycmF5KGQpLmZpbGwoMCkubWFwKGZ1bmN0aW9uKGt0LEFlKXtyZXR1cm4gby5jcmVhdGVFbGVtZW50KEJoLHtyZWY6YWUoQWUpLGluZGV4OkFlLGNvdW50OmQsZGlzYWJsZWQ6UCxwcmVmaXhDbHM6IiIuY29uY2F0KHIsIi1zdGFyIiksYWxsb3dIYWxmOmYsdmFsdWU6dnQ9PT1udWxsP2llOnZ0LG9uQ2xpY2s6SXQsb25Ib3ZlcjpzdCxrZXk6a3R8fEFlLGNoYXJhY3Rlcjp5LGNoYXJhY3RlclJlbmRlcjp3LGZvY3VzZWQ6WmV9KX0pLGJ0PW9lKCkocixhLCgwLEcuWikoKDAsRy5aKSh7fSwiIi5jb25jYXQociwiLWRpc2FibGVkIiksUCksIiIuY29uY2F0KHIsIi1ydGwiKSxNPT09InJ0bCIpKTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJ1bCIsKDAsRmUuWikoe2NsYXNzTmFtZTpidCxvbk1vdXNlTGVhdmU6bnQsdGFiSW5kZXg6UD8tMTpOLG9uRm9jdXM6UD9udWxsOkVlLG9uQmx1cjpQP251bGw6cGUsb25LZXlEb3duOlA/bnVsbDpjdCxyZWY6ZWV9LCgwLHFvLlopKHose2FyaWE6ITAsZGF0YTohMCxhdHRyOiEwfSkpLFp0KX12YXIgR2g9by5mb3J3YXJkUmVmKFhoKSxRaD1HaDtjb25zdCBKaD1lPT57Y29uc3R7Y29tcG9uZW50Q2xzOnR9PWU7cmV0dXJue1tgJHt0fS1zdGFyYF06e3Bvc2l0aW9uOiJyZWxhdGl2ZSIsZGlzcGxheToiaW5saW5lLWJsb2NrIixjb2xvcjoiaW5oZXJpdCIsY3Vyc29yOiJwb2ludGVyIiwiJjpub3QoOmxhc3QtY2hpbGQpIjp7bWFyZ2luSW5saW5lRW5kOmUubWFyZ2luWFN9LCI+IGRpdiI6e3RyYW5zaXRpb246YGFsbCAke2UubW90aW9uRHVyYXRpb25NaWR9LCBvdXRsaW5lIDBzYCwiJjpob3ZlciI6e3RyYW5zZm9ybTplLnN0YXJIb3ZlclNjYWxlfSwiJjpmb2N1cyI6e291dGxpbmU6MH0sIiY6Zm9jdXMtdmlzaWJsZSI6e291dGxpbmU6YCR7KDAsaGUuYmYpKGUubGluZVdpZHRoKX0gZGFzaGVkICR7ZS5zdGFyQ29sb3J9YCx0cmFuc2Zvcm06ZS5zdGFySG92ZXJTY2FsZX19LCImLWZpcnN0LCAmLXNlY29uZCI6e2NvbG9yOmUuc3RhckJnLHRyYW5zaXRpb246YGFsbCAke2UubW90aW9uRHVyYXRpb25NaWR9YCx1c2VyU2VsZWN0OiJub25lIn0sIiYtZmlyc3QiOntwb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDowLGluc2V0SW5saW5lU3RhcnQ6MCx3aWR0aDoiNTAlIixoZWlnaHQ6IjEwMCUiLG92ZXJmbG93OiJoaWRkZW4iLG9wYWNpdHk6MH0sW2AmLWhhbGYgJHt0fS1zdGFyLWZpcnN0LCAmLWhhbGYgJHt0fS1zdGFyLXNlY29uZGBdOntvcGFjaXR5OjF9LFtgJi1oYWxmICR7dH0tc3Rhci1maXJzdCwgJi1mdWxsICR7dH0tc3Rhci1zZWNvbmRgXTp7Y29sb3I6ImluaGVyaXQifX19fSxxaD1lPT4oe1tgJi1ydGwke2UuY29tcG9uZW50Q2xzfWBdOntkaXJlY3Rpb246InJ0bCJ9fSksX2g9ZT0+e2NvbnN0e2NvbXBvbmVudENsczp0fT1lO3JldHVybntbdF06T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwoMCxObi5XZikoZSkpLHtkaXNwbGF5OiJpbmxpbmUtYmxvY2siLG1hcmdpbjowLHBhZGRpbmc6MCxjb2xvcjplLnN0YXJDb2xvcixmb250U2l6ZTplLnN0YXJTaXplLGxpbmVIZWlnaHQ6MSxsaXN0U3R5bGU6Im5vbmUiLG91dGxpbmU6Im5vbmUiLFtgJi1kaXNhYmxlZCR7dH0gJHt0fS1zdGFyYF06e2N1cnNvcjoiZGVmYXVsdCIsIj4gZGl2OmhvdmVyIjp7dHJhbnNmb3JtOiJzY2FsZSgxKSJ9fX0pLEpoKGUpKSxxaChlKSl9fSxlMD1lPT4oe3N0YXJDb2xvcjplLnllbGxvdzYsc3RhclNpemU6ZS5jb250cm9sSGVpZ2h0TEcqLjUsc3RhckhvdmVyU2NhbGU6InNjYWxlKDEuMSkiLHN0YXJCZzplLmNvbG9yRmlsbENvbnRlbnR9KTt2YXIgdDA9KDAsbG4uSSQpKCJSYXRlIixlPT57Y29uc3QgdD0oMCxCci5JWCkoZSx7fSk7cmV0dXJuW19oKHQpXX0sZTApLG4wPWZ1bmN0aW9uKGUsdCl7dmFyIG49e307Zm9yKHZhciByIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikmJnQuaW5kZXhPZihyKTwwJiYobltyXT1lW3JdKTtpZihlIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIGE9MCxyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7YTxyLmxlbmd0aDthKyspdC5pbmRleE9mKHJbYV0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLHJbYV0pJiYobltyW2FdXT1lW3JbYV1dKTtyZXR1cm4gbn0sVXU9by5mb3J3YXJkUmVmKChlLHQpPT57Y29uc3R7cHJlZml4Q2xzOm4sY2xhc3NOYW1lOnIscm9vdENsYXNzTmFtZTphLHN0eWxlOmwsdG9vbHRpcHM6dSxjaGFyYWN0ZXI6Yz1vLmNyZWF0ZUVsZW1lbnQoTGguWixudWxsKSxkaXNhYmxlZDpkfT1lLHY9bjAoZSxbInByZWZpeENscyIsImNsYXNzTmFtZSIsInJvb3RDbGFzc05hbWUiLCJzdHlsZSIsInRvb2x0aXBzIiwiY2hhcmFjdGVyIiwiZGlzYWJsZWQiXSksZj0oRCxOKT0+e2xldHtpbmRleDpUfT1OO3JldHVybiB1P28uY3JlYXRlRWxlbWVudChxaS5aLHt0aXRsZTp1W1RdfSxEKTpEfSx7Z2V0UHJlZml4Q2xzOm0sZGlyZWN0aW9uOmgscmF0ZTpDfT1vLnVzZUNvbnRleHQob24uRV8pLHg9bSgicmF0ZSIsbiksW3AseSx3XT10MCh4KSxQPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxDPT1udWxsP3ZvaWQgMDpDLnN0eWxlKSxsKSxFPW8udXNlQ29udGV4dChjbi5aKSxNPWQhPW51bGw/ZDpFO3JldHVybiBwKG8uY3JlYXRlRWxlbWVudChRaCxPYmplY3QuYXNzaWduKHtyZWY6dCxjaGFyYWN0ZXI6YyxjaGFyYWN0ZXJSZW5kZXI6ZixkaXNhYmxlZDpNfSx2LHtjbGFzc05hbWU6b2UoKShyLGEseSx3LEM9PW51bGw/dm9pZCAwOkMuY2xhc3NOYW1lKSxzdHlsZTpQLHByZWZpeENsczp4LGRpcmVjdGlvbjpofSkpKX0pLHIwPWZ1bmN0aW9uKHQsbil7dmFyIHI9dC50ZXh0LGE9dC5tb2RlLGw9dC5yZW5kZXIsdT10LnJlbmRlckZvcm1JdGVtLGM9dC5maWVsZFByb3BzO2lmKGE9PT0icmVhZCIpe3ZhciBkPSgwLEsuanN4KShVdSwoMCxzLlopKCgwLHMuWikoe2FsbG93SGFsZjohMCxkaXNhYmxlZDohMCxyZWY6bn0sYykse30se3ZhbHVlOnJ9KSk7cmV0dXJuIGw/bChyLCgwLHMuWikoe21vZGU6YX0sYyksKDAsSy5qc3gpKEsuRnJhZ21lbnQse2NoaWxkcmVuOmR9KSk6ZH1pZihhPT09ImVkaXQifHxhPT09InVwZGF0ZSIpe3ZhciB2PSgwLEsuanN4KShVdSwoMCxzLlopKHthbGxvd0hhbGY6ITAscmVmOm59LGMpKTtyZXR1cm4gdT91KHIsKDAscy5aKSh7bW9kZTphfSxjKSx2KTp2fXJldHVybiBudWxsfSxhMD1vLmZvcndhcmRSZWYocjApO2Z1bmN0aW9uIG8wKGUpe3ZhciB0PWUsbj0iIixyPSExO3Q8MCYmKHQ9LXQscj0hMCk7dmFyIGE9TWF0aC5mbG9vcih0LygzNjAwKjI0KSksbD1NYXRoLmZsb29yKHQvMzYwMCUyNCksdT1NYXRoLmZsb29yKHQvNjAlNjApLGM9TWF0aC5mbG9vcih0JTYwKTtyZXR1cm4gbj0iIi5jb25jYXQoYywiXHU3OUQyIiksdT4wJiYobj0iIi5jb25jYXQodSwiXHU1MjA2XHU5NDlGIikuY29uY2F0KG4pKSxsPjAmJihuPSIiLmNvbmNhdChsLCJcdTVDMEZcdTY1RjYiKS5jb25jYXQobikpLGE+MCYmKG49IiIuY29uY2F0KGEsIlx1NTkyOSIpLmNvbmNhdChuKSksciYmKG4rPSJcdTUyNEQiKSxufXZhciBpMD1mdW5jdGlvbih0LG4pe3ZhciByPXQudGV4dCxhPXQubW9kZSxsPXQucmVuZGVyLHU9dC5yZW5kZXJGb3JtSXRlbSxjPXQuZmllbGRQcm9wcyxkPXQucGxhY2Vob2xkZXIsdj0oMCxPLllCKSgpLGY9ZHx8di5nZXRNZXNzYWdlKCJ0YWJsZUZvcm0uaW5wdXRQbGFjZWhvbGRlciIsIlx1OEJGN1x1OEY5M1x1NTE2NSIpO2lmKGE9PT0icmVhZCIpe3ZhciBtPW8wKE51bWJlcihyKSksaD0oMCxLLmpzeCkoInNwYW4iLHtyZWY6bixjaGlsZHJlbjptfSk7cmV0dXJuIGw/bChyLCgwLHMuWikoe21vZGU6YX0sYyksaCk6aH1pZihhPT09ImVkaXQifHxhPT09InVwZGF0ZSIpe3ZhciBDPSgwLEsuanN4KShubywoMCxzLlopKHtyZWY6bixtaW46MCxzdHlsZTp7d2lkdGg6IjEwMCUifSxwbGFjZWhvbGRlcjpmfSxjKSk7cmV0dXJuIHU/dShyLCgwLHMuWikoe21vZGU6YX0sYyksQyk6Q31yZXR1cm4gbnVsbH0sbDA9by5mb3J3YXJkUmVmKGkwKSxzMD1bIm1vZGUiLCJyZW5kZXIiLCJyZW5kZXJGb3JtSXRlbSIsImZpZWxkUHJvcHMiLCJlbXB0eVRleHQiXSx1MD1mdW5jdGlvbih0LG4pe3ZhciByPXQubW9kZSxhPXQucmVuZGVyLGw9dC5yZW5kZXJGb3JtSXRlbSx1PXQuZmllbGRQcm9wcyxjPXQuZW1wdHlUZXh0LGQ9Yz09PXZvaWQgMD8iLSI6Yyx2PSgwLGcuWikodCxzMCksZj0oMCxvLnVzZVJlZikoKSxtPSgwLEZyLmFLKSh0KSxoPSgwLGouWikobSwzKSxDPWhbMF0seD1oWzFdLHA9aFsyXTtpZigoMCxvLnVzZUltcGVyYXRpdmVIYW5kbGUpKG4sZnVuY3Rpb24oKXtyZXR1cm4oMCxzLlopKCgwLHMuWikoe30sZi5jdXJyZW50fHx7fSkse30se2ZldGNoRGF0YTpmdW5jdGlvbihEKXtyZXR1cm4gcChEKX19KX0sW3BdKSxDKXJldHVybigwLEsuanN4KShUci5aLHtzaXplOiJzbWFsbCJ9KTtpZihyPT09InJlYWQiKXt2YXIgeT14IT1udWxsJiZ4Lmxlbmd0aD94PT1udWxsP3ZvaWQgMDp4LnJlZHVjZShmdW5jdGlvbihNLEQpe3ZhciBOO3JldHVybigwLHMuWikoKDAscy5aKSh7fSxNKSx7fSwoMCxHLlopKHt9LChOPUQudmFsdWUpIT09bnVsbCYmTiE9PXZvaWQgMD9OOiIiLEQubGFiZWwpKX0se30pOnZvaWQgMCx3PSgwLEsuanN4KShLLkZyYWdtZW50LHtjaGlsZHJlbjooMCxtZS5NUCkodi50ZXh0LCgwLG1lLlI2KSh2LnZhbHVlRW51bXx8eSkpfSk7aWYoYSl7dmFyIFA7cmV0dXJuKFA9YSh2LnRleHQsKDAscy5aKSh7bW9kZTpyfSx1KSwoMCxLLmpzeCkoSy5GcmFnbWVudCx7Y2hpbGRyZW46d30pKSkhPT1udWxsJiZQIT09dm9pZCAwP1A6ZH1yZXR1cm4gd31pZihyPT09ImVkaXQifHxyPT09InVwZGF0ZSIpe3ZhciBFPSgwLEsuanN4KShQciwoMCxzLlopKCgwLHMuWikoe3JlZjpmfSwoMCxwbi5aKSh1fHx7fSxbImFsbG93Q2xlYXIiXSkpLHt9LHtvcHRpb25zOnh9KSk7cmV0dXJuIGw/bCh2LnRleHQsKDAscy5aKSgoMCxzLlopKHttb2RlOnJ9LHUpLHt9LHtvcHRpb25zOngsbG9hZGluZzpDfSksRSk6RX1yZXR1cm4gbnVsbH0sYzA9by5mb3J3YXJkUmVmKHUwKSxkMD1mdW5jdGlvbih0LG4pe3ZhciByPXQudGV4dCxhPXQubW9kZSxsPXQucmVuZGVyLHU9dC5yZW5kZXJGb3JtSXRlbSxjPXQuZmllbGRQcm9wcztpZihhPT09InJlYWQiKXt2YXIgZD1yO3JldHVybiBsP2wociwoMCxzLlopKHttb2RlOmF9LGMpLCgwLEsuanN4KShLLkZyYWdtZW50LHtjaGlsZHJlbjpkfSkpOigwLEsuanN4KShLLkZyYWdtZW50LHtjaGlsZHJlbjpkfSl9aWYoYT09PSJlZGl0Inx8YT09PSJ1cGRhdGUiKXt2YXIgdj0oMCxLLmpzeCkoZXMsKDAscy5aKSgoMCxzLlopKHtyZWY6bn0sYykse30se3N0eWxlOigwLHMuWikoe21pbldpZHRoOjEyMH0sYz09bnVsbD92b2lkIDA6Yy5zdHlsZSl9KSk7cmV0dXJuIHU/dShyLCgwLHMuWikoe21vZGU6YX0sYyksdik6dn1yZXR1cm4gbnVsbH0sZjA9by5mb3J3YXJkUmVmKGQwKSx2MD1pKDcyMjY5KSxtMD1mdW5jdGlvbih0LG4pe3ZhciByPXQudGV4dCxhPXQubW9kZSxsPXQucmVuZGVyLHU9dC5saWdodCxjPXQubGFiZWwsZD10LnJlbmRlckZvcm1JdGVtLHY9dC5maWVsZFByb3BzLGY9KDAsTy5ZQikoKSxtPSgwLG8udXNlTWVtbykoZnVuY3Rpb24oKXt2YXIgeSx3O3JldHVybiByPT1udWxsfHwiIi5jb25jYXQocikubGVuZ3RoPDE/Ii0iOnI/KHk9dj09bnVsbD92b2lkIDA6di5jaGVja2VkQ2hpbGRyZW4pIT09bnVsbCYmeSE9PXZvaWQgMD95OmYuZ2V0TWVzc2FnZSgic3dpdGNoLm9wZW4iLCJcdTYyNTNcdTVGMDAiKToodz12PT1udWxsP3ZvaWQgMDp2LnVuQ2hlY2tlZENoaWxkcmVuKSE9PW51bGwmJnchPT12b2lkIDA/dzpmLmdldE1lc3NhZ2UoInN3aXRjaC5jbG9zZSIsIlx1NTE3M1x1OTVFRCIpfSxbdj09bnVsbD92b2lkIDA6di5jaGVja2VkQ2hpbGRyZW4sdj09bnVsbD92b2lkIDA6di51bkNoZWNrZWRDaGlsZHJlbixyXSk7aWYoYT09PSJyZWFkIilyZXR1cm4gbD9sKHIsKDAscy5aKSh7bW9kZTphfSx2KSwoMCxLLmpzeCkoSy5GcmFnbWVudCx7Y2hpbGRyZW46bX0pKTptIT1udWxsP206Ii0iO2lmKGE9PT0iZWRpdCJ8fGE9PT0idXBkYXRlIil7dmFyIGgsQz0oMCxLLmpzeCkodjAuWiwoMCxzLlopKCgwLHMuWikoe3JlZjpuLHNpemU6dT8ic21hbGwiOnZvaWQgMH0sKDAscG4uWikodixbInZhbHVlIl0pKSx7fSx7Y2hlY2tlZDooaD12PT1udWxsP3ZvaWQgMDp2LmNoZWNrZWQpIT09bnVsbCYmaCE9PXZvaWQgMD9oOnY9PW51bGw/dm9pZCAwOnYudmFsdWV9KSk7aWYodSl7dmFyIHg9di5kaXNhYmxlZCxwPXYuYm9yZGVyZWQ7cmV0dXJuKDAsSy5qc3gpKHZlLlEse2xhYmVsOmMsZGlzYWJsZWQ6eCxib3JkZXJlZDpwLGRvd25JY29uOiExLHZhbHVlOigwLEsuanN4KSgiZGl2Iix7c3R5bGU6e3BhZGRpbmdMZWZ0Ojh9LGNoaWxkcmVuOkN9KSxhbGxvd0NsZWFyOiExfSl9cmV0dXJuIGQ/ZChyLCgwLHMuWikoe21vZGU6YX0sdiksQyk6Q31yZXR1cm4gbnVsbH0sZzA9by5mb3J3YXJkUmVmKG0wKSxoMD1mdW5jdGlvbih0LG4pe3ZhciByPXQudGV4dCxhPXQubW9kZSxsPXQucmVuZGVyLHU9dC5yZW5kZXJGb3JtSXRlbSxjPXQuZmllbGRQcm9wcyxkPXQuZW1wdHlUZXh0LHY9ZD09PXZvaWQgMD8iLSI6ZCxmPWN8fHt9LG09Zi5hdXRvRm9jdXMsaD1mLnByZWZpeCxDPWg9PT12b2lkIDA/IiI6aCx4PWYuc3VmZml4LHA9eD09PXZvaWQgMD8iIjp4LHk9KDAsTy5ZQikoKSx3PSgwLG8udXNlUmVmKSgpO2lmKCgwLG8udXNlSW1wZXJhdGl2ZUhhbmRsZSkobixmdW5jdGlvbigpe3JldHVybiB3LmN1cnJlbnR9LFtdKSwoMCxvLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtpZihtKXt2YXIgTjsoTj13LmN1cnJlbnQpPT09bnVsbHx8Tj09PXZvaWQgMHx8Ti5mb2N1cygpfX0sW21dKSxhPT09InJlYWQiKXt2YXIgUD0oMCxLLmpzeHMpKEsuRnJhZ21lbnQse2NoaWxkcmVuOltDLHIhPW51bGw/cjp2LHBdfSk7aWYobCl7dmFyIEU7cmV0dXJuKEU9bChyLCgwLHMuWikoe21vZGU6YX0sYyksUCkpIT09bnVsbCYmRSE9PXZvaWQgMD9FOnZ9cmV0dXJuIFB9aWYoYT09PSJlZGl0Inx8YT09PSJ1cGRhdGUiKXt2YXIgTT15LmdldE1lc3NhZ2UoInRhYmxlRm9ybS5pbnB1dFBsYWNlaG9sZGVyIiwiXHU4QkY3XHU4RjkzXHU1MTY1IiksRD0oMCxLLmpzeCkoQXIuWiwoMCxzLlopKHtyZWY6dyxwbGFjZWhvbGRlcjpNLGFsbG93Q2xlYXI6ITB9LGMpKTtyZXR1cm4gdT91KHIsKDAscy5aKSh7bW9kZTphfSxjKSxEKTpEfXJldHVybiBudWxsfSxwMD1vLmZvcndhcmRSZWYoaDApLGIwPWZ1bmN0aW9uKHQsbil7dmFyIHI9dC50ZXh0LGE9dC5maWVsZFByb3BzLGw9KDAsby51c2VDb250ZXh0KShiZS5aUC5Db25maWdDb250ZXh0KSx1PWwuZ2V0UHJlZml4Q2xzLGM9dSgicHJvLWZpZWxkLXJlYWRvbmx5IiksZD0iIi5jb25jYXQoYywiLXRleHRhcmVhIiksdj0oMCxmci5YaikoIlRleHRBcmVhIixmdW5jdGlvbigpe3JldHVybigwLEcuWikoe30sIi4iLmNvbmNhdChkKSx7ZGlzcGxheToiaW5saW5lLWJsb2NrIixsaW5lSGVpZ2h0OiIxLjU3MTUiLG1heFdpZHRoOiIxMDAlIix3aGl0ZVNwYWNlOiJwcmUtd3JhcCJ9KX0pLGY9di53cmFwU1NSLG09di5oYXNoSWQ7cmV0dXJuIGYoKDAsSy5qc3gpKCJzcGFuIiwoMCxzLlopKCgwLHMuWikoe3JlZjpuLGNsYXNzTmFtZTpvZSgpKG0sYyxkKX0sKDAscG4uWikoYSxbImF1dG9TaXplIiwiY2xhc3NOYW1lcyIsInN0eWxlcyJdKSkse30se2NoaWxkcmVuOnIhPW51bGw/cjoiLSJ9KSkpfSx5MD1vLmZvcndhcmRSZWYoYjApLEMwPWZ1bmN0aW9uKHQsbil7dmFyIHI9dC50ZXh0LGE9dC5tb2RlLGw9dC5yZW5kZXIsdT10LnJlbmRlckZvcm1JdGVtLGM9dC5maWVsZFByb3BzLGQ9KDAsTy5ZQikoKTtpZihhPT09InJlYWQiKXt2YXIgdj0oMCxLLmpzeCkoeTAsKDAscy5aKSgoMCxzLlopKHt9LHQpLHt9LHtyZWY6bn0pKTtyZXR1cm4gbD9sKHIsKDAscy5aKSh7bW9kZTphfSwoMCxwbi5aKShjLFsic2hvd0NvdW50Il0pKSx2KTp2fWlmKGE9PT0iZWRpdCJ8fGE9PT0idXBkYXRlIil7dmFyIGY9KDAsSy5qc3gpKEFyLlouVGV4dEFyZWEsKDAscy5aKSh7cmVmOm4scm93czozLG9uS2V5UHJlc3M6ZnVuY3Rpb24oaCl7aC5rZXk9PT0iRW50ZXIiJiZoLnN0b3BQcm9wYWdhdGlvbigpfSxwbGFjZWhvbGRlcjpkLmdldE1lc3NhZ2UoInRhYmxlRm9ybS5pbnB1dFBsYWNlaG9sZGVyIiwiXHU4QkY3XHU4RjkzXHU1MTY1Iil9LGMpKTtyZXR1cm4gdT91KHIsKDAscy5aKSh7bW9kZTphfSxjKSxmKTpmfXJldHVybiBudWxsfSx4MD1vLmZvcndhcmRSZWYoQzApLFMwPWZ1bmN0aW9uKGUsdCl7dmFyIG49e307Zm9yKHZhciByIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikmJnQuaW5kZXhPZihyKTwwJiYobltyXT1lW3JdKTtpZihlIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIGE9MCxyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7YTxyLmxlbmd0aDthKyspdC5pbmRleE9mKHJbYV0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLHJbYV0pJiYobltyW2FdXT1lW3JbYV1dKTtyZXR1cm4gbn07Y29uc3R7VGltZVBpY2tlcjpQMCxSYW5nZVBpY2tlcjp3MH09RW8sTzA9by5mb3J3YXJkUmVmKChlLHQpPT5vLmNyZWF0ZUVsZW1lbnQodzAsT2JqZWN0LmFzc2lnbih7fSxlLHtwaWNrZXI6InRpbWUiLG1vZGU6dm9pZCAwLHJlZjp0fSkpKSxtaT1vLmZvcndhcmRSZWYoKGUsdCk9Pnt2YXJ7YWRkb246bixyZW5kZXJFeHRyYUZvb3RlcjpyLHZhcmlhbnQ6YSxib3JkZXJlZDpsfT1lLHU9UzAoZSxbImFkZG9uIiwicmVuZGVyRXh0cmFGb290ZXIiLCJ2YXJpYW50IiwiYm9yZGVyZWQiXSk7Y29uc3RbY109KDAsZHIuWikoInRpbWVQaWNrZXIiLGEsbCksZD1vLnVzZU1lbW8oKCk9PntpZihyKXJldHVybiByO2lmKG4pcmV0dXJuIG59LFtuLHJdKTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KFAwLE9iamVjdC5hc3NpZ24oe30sdSx7bW9kZTp2b2lkIDAscmVmOnQscmVuZGVyRXh0cmFGb290ZXI6ZCx2YXJpYW50OmN9KSl9KSxYdT0oMCx5bi5aKShtaSwicG9wdXBBbGlnbiIsdm9pZCAwLCJwaWNrZXIiKTttaS5fSW50ZXJuYWxQYW5lbERvTm90VXNlT3JZb3VXaWxsQmVGaXJlZD1YdSxtaS5SYW5nZVBpY2tlcj1PMCxtaS5fSW50ZXJuYWxQYW5lbERvTm90VXNlT3JZb3VXaWxsQmVGaXJlZD1YdTt2YXIgTmw9bWksRTA9ZnVuY3Rpb24odCxuKXt2YXIgcj10LnRleHQsYT10Lm1vZGUsbD10LmxpZ2h0LHU9dC5sYWJlbCxjPXQuZm9ybWF0LGQ9dC5yZW5kZXIsdj10LnJlbmRlckZvcm1JdGVtLGY9dC5wbGFpbixtPXQuZmllbGRQcm9wcyxoPXQubGlnaHRMYWJlbCxDPSgwLG8udXNlU3RhdGUpKCExKSx4PSgwLGouWikoQywyKSxwPXhbMF0seT14WzFdLHc9KDAsTy5ZQikoKSxQPShtPT1udWxsP3ZvaWQgMDptLmZvcm1hdCl8fGN8fCJISDptbTpzcyIsRT10bigpLmlzRGF5anMocil8fHR5cGVvZiByPT0ibnVtYmVyIjtpZihhPT09InJlYWQiKXt2YXIgTT0oMCxLLmpzeCkoInNwYW4iLHtyZWY6bixjaGlsZHJlbjpyP3RuKCkocixFP3ZvaWQgMDpQKS5mb3JtYXQoUCk6Ii0ifSk7cmV0dXJuIGQ/ZChyLCgwLHMuWikoe21vZGU6YX0sbSksKDAsSy5qc3gpKCJzcGFuIix7Y2hpbGRyZW46TX0pKTpNfWlmKGE9PT0iZWRpdCJ8fGE9PT0idXBkYXRlIil7dmFyIEQsTj1tLmRpc2FibGVkLFQ9bS52YWx1ZSxXPWxpKFQsUCk7aWYobCl7dmFyIEI7RD0oMCxLLmpzeCkodmUuUSx7b25DbGljazpmdW5jdGlvbigpe3ZhciBIO209PW51bGx8fChIPW0ub25PcGVuQ2hhbmdlKT09PW51bGx8fEg9PT12b2lkIDB8fEguY2FsbChtLCEwKSx5KCEwKX0sc3R5bGU6Vz97cGFkZGluZ0lubGluZUVuZDowfTp2b2lkIDAsbGFiZWw6dSxkaXNhYmxlZDpOLHZhbHVlOld8fHA/KDAsSy5qc3gpKE5sLCgwLHMuWikoKDAscy5aKSgoMCxzLlopKHt9LCgwLF8uSikoITEpKSx7fSx7Zm9ybWF0OmMscmVmOm59LG0pLHt9LHtwbGFjZWhvbGRlcjooQj1tLnBsYWNlaG9sZGVyKSE9PW51bGwmJkIhPT12b2lkIDA/Qjp3LmdldE1lc3NhZ2UoInRhYmxlRm9ybS5zZWxlY3RQbGFjZWhvbGRlciIsIlx1OEJGN1x1OTAwOVx1NjJFOSIpLHZhbHVlOlcsb25PcGVuQ2hhbmdlOmZ1bmN0aW9uKEgpe3ZhciBBO3koSCksbT09bnVsbHx8KEE9bS5vbk9wZW5DaGFuZ2UpPT09bnVsbHx8QT09PXZvaWQgMHx8QS5jYWxsKG0sSCl9LG9wZW46cH0pKTpudWxsLGRvd25JY29uOld8fHA/ITE6dm9pZCAwLGFsbG93Q2xlYXI6ITEscmVmOmh9KX1lbHNlIEQ9KDAsSy5qc3gpKEVvLlRpbWVQaWNrZXIsKDAscy5aKSgoMCxzLlopKCgwLHMuWikoe3JlZjpuLGZvcm1hdDpjfSwoMCxfLkopKGY9PT12b2lkIDA/ITA6IWYpKSxtKSx7fSx7dmFsdWU6V30pKTtyZXR1cm4gdj92KHIsKDAscy5aKSh7bW9kZTphfSxtKSxEKTpEfXJldHVybiBudWxsfSxJMD1mdW5jdGlvbih0LG4pe3ZhciByPXQudGV4dCxhPXQubGlnaHQsbD10LmxhYmVsLHU9dC5tb2RlLGM9dC5saWdodExhYmVsLGQ9dC5mb3JtYXQsdj10LnJlbmRlcixmPXQucmVuZGVyRm9ybUl0ZW0sbT10LnBsYWluLGg9dC5maWVsZFByb3BzLEM9KDAsTy5ZQikoKSx4PSgwLG8udXNlU3RhdGUpKCExKSxwPSgwLGouWikoeCwyKSx5PXBbMF0sdz1wWzFdLFA9KGg9PW51bGw/dm9pZCAwOmguZm9ybWF0KXx8ZHx8IkhIOm1tOnNzIixFPUFycmF5LmlzQXJyYXkocik/cjpbXSxNPSgwLGouWikoRSwyKSxEPU1bMF0sTj1NWzFdLFQ9dG4oKS5pc0RheWpzKEQpfHx0eXBlb2YgRD09Im51bWJlciIsVz10bigpLmlzRGF5anMoTil8fHR5cGVvZiBOPT0ibnVtYmVyIixCPUQ/dG4oKShELFQ/dm9pZCAwOlApLmZvcm1hdChQKToiIixZPU4/dG4oKShOLFc/dm9pZCAwOlApLmZvcm1hdChQKToiIjtpZih1PT09InJlYWQiKXt2YXIgSD0oMCxLLmpzeHMpKCJkaXYiLHtyZWY6bixjaGlsZHJlbjpbKDAsSy5qc3gpKCJkaXYiLHtjaGlsZHJlbjpCfHwiLSJ9KSwoMCxLLmpzeCkoImRpdiIse2NoaWxkcmVuOll8fCItIn0pXX0pO3JldHVybiB2P3YociwoMCxzLlopKHttb2RlOnV9LGgpLCgwLEsuanN4KSgic3BhbiIse2NoaWxkcmVuOkh9KSk6SH1pZih1PT09ImVkaXQifHx1PT09InVwZGF0ZSIpe3ZhciBBPWxpKGgudmFsdWUsUCksVjtpZihhKXt2YXIgej1oLmRpc2FibGVkLFg9aC5wbGFjZWhvbGRlcixxPVg9PT12b2lkIDA/W0MuZ2V0TWVzc2FnZSgidGFibGVGb3JtLnNlbGVjdFBsYWNlaG9sZGVyIiwiXHU4QkY3XHU5MDA5XHU2MkU5IiksQy5nZXRNZXNzYWdlKCJ0YWJsZUZvcm0uc2VsZWN0UGxhY2Vob2xkZXIiLCJcdThCRjdcdTkwMDlcdTYyRTkiKV06WDtWPSgwLEsuanN4KSh2ZS5RLHtvbkNsaWNrOmZ1bmN0aW9uKCl7dmFyIGFlO2g9PW51bGx8fChhZT1oLm9uT3BlbkNoYW5nZSk9PT1udWxsfHxhZT09PXZvaWQgMHx8YWUuY2FsbChoLCEwKSx3KCEwKX0sc3R5bGU6QT97cGFkZGluZ0lubGluZUVuZDowfTp2b2lkIDAsbGFiZWw6bCxkaXNhYmxlZDp6LHBsYWNlaG9sZGVyOnEsdmFsdWU6QXx8eT8oMCxLLmpzeCkoTmwuUmFuZ2VQaWNrZXIsKDAscy5aKSgoMCxzLlopKCgwLHMuWikoe30sKDAsXy5KKSghMSkpLHt9LHtmb3JtYXQ6ZCxyZWY6bn0saCkse30se3BsYWNlaG9sZGVyOnEsdmFsdWU6QSxvbk9wZW5DaGFuZ2U6ZnVuY3Rpb24oYWUpe3ZhciBlZTt3KGFlKSxoPT1udWxsfHwoZWU9aC5vbk9wZW5DaGFuZ2UpPT09bnVsbHx8ZWU9PT12b2lkIDB8fGVlLmNhbGwoaCxhZSl9LG9wZW46eX0pKTpudWxsLGRvd25JY29uOkF8fHk/ITE6dm9pZCAwLGFsbG93Q2xlYXI6ITEscmVmOmN9KX1lbHNlIFY9KDAsSy5qc3gpKE5sLlJhbmdlUGlja2VyLCgwLHMuWikoKDAscy5aKSgoMCxzLlopKHtyZWY6bixmb3JtYXQ6ZH0sKDAsXy5KKShtPT09dm9pZCAwPyEwOiFtKSksaCkse30se3ZhbHVlOkF9KSk7cmV0dXJuIGY/ZihyLCgwLHMuWikoe21vZGU6dX0saCksVik6Vn1yZXR1cm4gbnVsbH0sJDA9by5mb3J3YXJkUmVmKEkwKSxNMD1vLmZvcndhcmRSZWYoRTApLFowPWkoNTk4NDcpLFIwPVsicmFkaW9UeXBlIiwicmVuZGVyRm9ybUl0ZW0iLCJtb2RlIiwibGlnaHQiLCJsYWJlbCIsInJlbmRlciJdLEQwPVsib25TZWFyY2giLCJvbkNsZWFyIiwib25DaGFuZ2UiLCJvbkJsdXIiLCJzaG93U2VhcmNoIiwiYXV0b0NsZWFyU2VhcmNoVmFsdWUiLCJ0cmVlRGF0YSIsImZldGNoRGF0YU9uU2VhcmNoIiwic2VhcmNoVmFsdWUiXSxOMD1mdW5jdGlvbih0LG4pe3ZhciByPXQucmFkaW9UeXBlLGE9dC5yZW5kZXJGb3JtSXRlbSxsPXQubW9kZSx1PXQubGlnaHQsYz10LmxhYmVsLGQ9dC5yZW5kZXIsdj0oMCxnLlopKHQsUjApLGY9KDAsby51c2VDb250ZXh0KShiZS5aUC5Db25maWdDb250ZXh0KSxtPWYuZ2V0UHJlZml4Q2xzLGg9bSgicHJvLWZpZWxkLXRyZWUtc2VsZWN0IiksQz0oMCxvLnVzZVJlZikobnVsbCkseD0oMCxvLnVzZVN0YXRlKSghMSkscD0oMCxqLlopKHgsMikseT1wWzBdLHc9cFsxXSxQPXYuZmllbGRQcm9wcyxFPVAub25TZWFyY2gsTT1QLm9uQ2xlYXIsRD1QLm9uQ2hhbmdlLE49UC5vbkJsdXIsVD1QLnNob3dTZWFyY2gsVz1QLmF1dG9DbGVhclNlYXJjaFZhbHVlLEI9UC50cmVlRGF0YSxZPVAuZmV0Y2hEYXRhT25TZWFyY2gsSD1QLnNlYXJjaFZhbHVlLEE9KDAsZy5aKShQLEQwKSxWPSgwLE8uWUIpKCksej0oMCxGci5hSykoKDAscy5aKSgoMCxzLlopKHt9LHYpLHt9LHtkZWZhdWx0S2V5V29yZHM6SH0pKSxYPSgwLGouWikoeiwzKSxxPVhbMF0sUT1YWzFdLGFlPVhbMl0sZWU9KDAscnQuWikodm9pZCAwLHtvbkNoYW5nZTpFLHZhbHVlOkh9KSxyZT0oMCxqLlopKGVlLDIpLHNlPXJlWzBdLEo9cmVbMV07KDAsby51c2VJbXBlcmF0aXZlSGFuZGxlKShuLGZ1bmN0aW9uKCl7cmV0dXJuKDAscy5aKSgoMCxzLlopKHt9LEMuY3VycmVudHx8e30pLHt9LHtmZXRjaERhdGE6ZnVuY3Rpb24ocGUpe3JldHVybiBhZShwZSl9fSl9KTt2YXIgaWU9KDAsby51c2VNZW1vKShmdW5jdGlvbigpe2lmKGw9PT0icmVhZCIpe3ZhciBFZT0oQT09bnVsbD92b2lkIDA6QS5maWVsZE5hbWVzKXx8e30scGU9RWUudmFsdWUsSmU9cGU9PT12b2lkIDA/InZhbHVlIjpwZSxCZT1FZS5sYWJlbCx2dD1CZT09PXZvaWQgMD8ibGFiZWwiOkJlLHl0PUVlLmNoaWxkcmVuLHN0PXl0PT09dm9pZCAwPyJjaGlsZHJlbiI6eXQsbnQ9bmV3IE1hcCxJdD1mdW5jdGlvbiBjdChadCl7aWYoIShadCE9bnVsbCYmWnQubGVuZ3RoKSlyZXR1cm4gbnQ7Zm9yKHZhciBidD1adC5sZW5ndGgsa3Q9MDtrdDxidDspe3ZhciBBZT1adFtrdCsrXTtudC5zZXQoQWVbSmVdLEFlW3Z0XSksY3QoQWVbc3RdKX1yZXR1cm4gbnR9O3JldHVybiBJdChRKX19LFtBPT1udWxsP3ZvaWQgMDpBLmZpZWxkTmFtZXMsbCxRXSksY2U9ZnVuY3Rpb24ocGUsSmUsQmUpe1QmJlcmJihhZSh2b2lkIDApLEoodm9pZCAwKSksRD09bnVsbHx8RChwZSxKZSxCZSl9O2lmKGw9PT0icmVhZCIpe3ZhciB4ZT0oMCxLLmpzeCkoSy5GcmFnbWVudCx7Y2hpbGRyZW46KDAsbWUuTVApKHYudGV4dCwoMCxtZS5SNikodi52YWx1ZUVudW18fGllKSl9KTtpZihkKXt2YXIgdWU7cmV0dXJuKHVlPWQodi50ZXh0LCgwLHMuWikoe21vZGU6bH0sQSkseGUpKSE9PW51bGwmJnVlIT09dm9pZCAwP3VlOm51bGx9cmV0dXJuIHhlfWlmKGw9PT0iZWRpdCIpe3ZhciB5ZSxQZT1BcnJheS5pc0FycmF5KEE9PW51bGw/dm9pZCAwOkEudmFsdWUpP0E9PW51bGx8fCh5ZT1BLnZhbHVlKT09PW51bGx8fHllPT09dm9pZCAwP3ZvaWQgMDp5ZS5sZW5ndGg6MCxnZT0oMCxLLmpzeCkoVHIuWix7c3Bpbm5pbmc6cSxjaGlsZHJlbjooMCxLLmpzeCkoWjAuWiwoMCxzLlopKCgwLHMuWikoe29wZW46eSxvbkRyb3Bkb3duVmlzaWJsZUNoYW5nZTpmdW5jdGlvbihwZSl7dmFyIEplO0E9PW51bGx8fChKZT1BLm9uRHJvcGRvd25WaXNpYmxlQ2hhbmdlKT09PW51bGx8fEplPT09dm9pZCAwfHxKZS5jYWxsKEEscGUpLHcocGUpfSxyZWY6Qyxwb3B1cE1hdGNoU2VsZWN0V2lkdGg6IXUscGxhY2Vob2xkZXI6Vi5nZXRNZXNzYWdlKCJ0YWJsZUZvcm0uc2VsZWN0UGxhY2Vob2xkZXIiLCJcdThCRjdcdTkwMDlcdTYyRTkiKSx0YWdSZW5kZXI6dT9mdW5jdGlvbihFZSl7dmFyIHBlO2lmKFBlPDIpcmV0dXJuKDAsSy5qc3gpKEsuRnJhZ21lbnQse2NoaWxkcmVuOkVlLmxhYmVsfSk7dmFyIEplPUE9PW51bGx8fChwZT1BLnZhbHVlKT09PW51bGx8fHBlPT09dm9pZCAwP3ZvaWQgMDpwZS5maW5kSW5kZXgoZnVuY3Rpb24oQmUpe3JldHVybiBCZT09PUVlLnZhbHVlfHxCZS52YWx1ZT09PUVlLnZhbHVlfSk7cmV0dXJuKDAsSy5qc3hzKShLLkZyYWdtZW50LHtjaGlsZHJlbjpbRWUubGFiZWwsIiAiLEplPFBlLTE/IiwiOiIiXX0pfTp2b2lkIDAsYm9yZGVyZWQ6IXV9LEEpLHt9LHt0cmVlRGF0YTpRLHNob3dTZWFyY2g6VCxzdHlsZTooMCxzLlopKHttaW5XaWR0aDo2MH0sQS5zdHlsZSksYWxsb3dDbGVhcjpBLmFsbG93Q2xlYXIhPT0hMSxzZWFyY2hWYWx1ZTpzZSxhdXRvQ2xlYXJTZWFyY2hWYWx1ZTpXLG9uQ2xlYXI6ZnVuY3Rpb24oKXtNPT1udWxsfHxNKCksYWUodm9pZCAwKSxUJiZKKHZvaWQgMCl9LG9uQ2hhbmdlOmNlLG9uU2VhcmNoOmZ1bmN0aW9uKHBlKXtZJiZ2IT09bnVsbCYmdiE9PXZvaWQgMCYmdi5yZXF1ZXN0JiZhZShwZSksSihwZSl9LG9uQmx1cjpmdW5jdGlvbihwZSl7Sih2b2lkIDApLGFlKHZvaWQgMCksTj09bnVsbHx8TihwZSl9LGNsYXNzTmFtZTpvZSgpKEE9PW51bGw/dm9pZCAwOkEuY2xhc3NOYW1lLGgpfSkpfSk7aWYoYSl7dmFyIFJlO2dlPShSZT1hKHYudGV4dCwoMCxzLlopKCgwLHMuWikoe21vZGU6bH0sQSkse30se29wdGlvbnM6USxsb2FkaW5nOnF9KSxnZSkpIT09bnVsbCYmUmUhPT12b2lkIDA/UmU6bnVsbH1pZih1KXt2YXIgU2UsSWU9QS5kaXNhYmxlZCxaZT1BLnBsYWNlaG9sZGVyLENlPSEhQS52YWx1ZSYmKChTZT1BLnZhbHVlKT09PW51bGx8fFNlPT09dm9pZCAwP3ZvaWQgMDpTZS5sZW5ndGgpIT09MDtyZXR1cm4oMCxLLmpzeCkodmUuUSx7bGFiZWw6YyxkaXNhYmxlZDpJZSxwbGFjZWhvbGRlcjpaZSxvbkNsaWNrOmZ1bmN0aW9uKCl7dmFyIHBlO3coITApLEE9PW51bGx8fChwZT1BLm9uRHJvcGRvd25WaXNpYmxlQ2hhbmdlKT09PW51bGx8fHBlPT09dm9pZCAwfHxwZS5jYWxsKEEsITApfSxib3JkZXJlZDp2LmJvcmRlcmVkLHZhbHVlOkNlfHx5P2dlOm51bGwsc3R5bGU6Q2U/e3BhZGRpbmdJbmxpbmVFbmQ6MH06dm9pZCAwLGFsbG93Q2xlYXI6ITEsZG93bkljb246ITF9KX1yZXR1cm4gZ2V9cmV0dXJuIG51bGx9LEYwPW8uZm9yd2FyZFJlZihOMCk7ZnVuY3Rpb24gVDAoZSl7dmFyIHQ9KDAsby51c2VTdGF0ZSkoITEpLG49KDAsai5aKSh0LDIpLHI9blswXSxhPW5bMV0sbD0oMCxvLnVzZVJlZikobnVsbCksdT0oMCxvLnVzZUNhbGxiYWNrKShmdW5jdGlvbih2KXt2YXIgZixtLGg9KGY9bC5jdXJyZW50KT09PW51bGx8fGY9PT12b2lkIDB8fChmPWYubGFiZWxSZWYpPT09bnVsbHx8Zj09PXZvaWQgMHx8KGY9Zi5jdXJyZW50KT09PW51bGx8fGY9PT12b2lkIDA/dm9pZCAwOmYuY29udGFpbnModi50YXJnZXQpLEM9KG09bC5jdXJyZW50KT09PW51bGx8fG09PT12b2lkIDB8fChtPW0uY2xlYXJSZWYpPT09bnVsbHx8bT09PXZvaWQgMHx8KG09bS5jdXJyZW50KT09PW51bGx8fG09PT12b2lkIDA/dm9pZCAwOm0uY29udGFpbnModi50YXJnZXQpO3JldHVybiBoJiYhQ30sW2xdKSxjPWZ1bmN0aW9uKGYpe3UoZikmJmEoITApfSxkPWZ1bmN0aW9uKCl7YSghMSl9O3JldHVybiBlLmlzTGlnaHQ/KDAsSy5qc3gpKCJkaXYiLHtvbk1vdXNlRG93bjpjLG9uTW91c2VVcDpkLGNoaWxkcmVuOm8uY2xvbmVFbGVtZW50KGUuY2hpbGRyZW4se2xhYmVsVHJpZ2dlcjpyLGxpZ2h0TGFiZWw6bH0pfSk6KDAsSy5qc3gpKEsuRnJhZ21lbnQse2NoaWxkcmVuOmUuY2hpbGRyZW59KX12YXIgUXI9VDAsajA9aSg1OTU0MiksQTA9aS5uKGowKSxIMD1pKDU2MTc2KSxrMD1pLm4oSDApLEwwPVsiZmllbGRQcm9wcyJdLFYwPVsiZmllbGRQcm9wcyJdLEIwPVsiZmllbGRQcm9wcyJdLFcwPVsiZmllbGRQcm9wcyJdLHowPVsidGV4dCIsInZhbHVlVHlwZSIsIm1vZGUiLCJvbkNoYW5nZSIsInJlbmRlckZvcm1JdGVtIiwidmFsdWUiLCJyZWFkb25seSIsImZpZWxkUHJvcHMiXSxLMD1bInBsYWNlaG9sZGVyIl07dG4oKS5leHRlbmQoVnMoKSksdG4oKS5leHRlbmQoQnMoKSksdG4oKS5leHRlbmQoQTAoKSksdG4oKS5leHRlbmQoZ2woKSksdG4oKS5leHRlbmQoTHMoKSksdG4oKS5leHRlbmQoazAoKSk7dmFyIFkwPWZ1bmN0aW9uKHQsbixyKXt2YXIgYT1SKHIuZmllbGRQcm9wcyk7cmV0dXJuIG4udHlwZT09PSJwcm9ncmVzcyI/KDAsSy5qc3gpKEt1LCgwLHMuWikoKDAscy5aKSh7fSxyKSx7fSx7dGV4dDp0LGZpZWxkUHJvcHM6KDAscy5aKSh7c3RhdHVzOm4uc3RhdHVzP24uc3RhdHVzOnZvaWQgMH0sYSl9KSk6bi50eXBlPT09Im1vbmV5Ij8oMCxLLmpzeCkoQnUsKDAscy5aKSgoMCxzLlopKHtsb2NhbGU6bi5sb2NhbGV9LHIpLHt9LHtmaWVsZFByb3BzOmEsdGV4dDp0LG1vbmV5U3ltYm9sOm4ubW9uZXlTeW1ib2x9KSk6bi50eXBlPT09InBlcmNlbnQiPygwLEsuanN4KSh6dSwoMCxzLlopKCgwLHMuWikoe30scikse30se3RleHQ6dCxzaG93U3ltYm9sOm4uc2hvd1N5bWJvbCxwcmVjaXNpb246bi5wcmVjaXNpb24sZmllbGRQcm9wczphLHNob3dDb2xvcjpuLnNob3dDb2xvcn0pKTpuLnR5cGU9PT0iaW1hZ2UiPygwLEsuanN4KShBdSwoMCxzLlopKCgwLHMuWikoe30scikse30se3RleHQ6dCx3aWR0aDpuLndpZHRofSkpOnR9LFUwPWZ1bmN0aW9uKHQsbixyLGEpe3ZhciBsPXIubW9kZSx1PWw9PT12b2lkIDA/InJlYWQiOmwsYz1yLmVtcHR5VGV4dCxkPWM9PT12b2lkIDA/Ii0iOmM7aWYoZCE9PSExJiZ1PT09InJlYWQiJiZuIT09Im9wdGlvbiImJm4hPT0ic3dpdGNoIiYmdHlwZW9mIHQhPSJib29sZWFuIiYmdHlwZW9mIHQhPSJudW1iZXIiJiYhdCl7dmFyIHY9ci5maWVsZFByb3BzLGY9ci5yZW5kZXI7cmV0dXJuIGY/Zih0LCgwLHMuWikoe21vZGU6dX0sdiksKDAsSy5qc3gpKEsuRnJhZ21lbnQse2NoaWxkcmVuOmR9KSk6KDAsSy5qc3gpKEsuRnJhZ21lbnQse2NoaWxkcmVuOmR9KX1pZihkZWxldGUgci5lbXB0eVRleHQsKDAsYi5aKShuKT09PSJvYmplY3QiKXJldHVybiBZMCh0LG4scik7dmFyIG09YSYmYVtuXTtpZihtKXtpZihkZWxldGUgci5yZWYsdT09PSJyZWFkIil7dmFyIGg7cmV0dXJuKGg9bS5yZW5kZXIpPT09bnVsbHx8aD09PXZvaWQgMD92b2lkIDA6aC5jYWxsKG0sdCwoMCxzLlopKCgwLHMuWikoe3RleHQ6dH0scikse30se21vZGU6dXx8InJlYWQifSksKDAsSy5qc3gpKEsuRnJhZ21lbnQse2NoaWxkcmVuOnR9KSl9aWYodT09PSJ1cGRhdGUifHx1PT09ImVkaXQiKXt2YXIgQztyZXR1cm4oQz1tLnJlbmRlckZvcm1JdGVtKT09PW51bGx8fEM9PT12b2lkIDA/dm9pZCAwOkMuY2FsbChtLHQsKDAscy5aKSh7dGV4dDp0fSxyKSwoMCxLLmpzeCkoSy5GcmFnbWVudCx7Y2hpbGRyZW46dH0pKX19aWYobj09PSJtb25leSIpcmV0dXJuKDAsSy5qc3gpKEJ1LCgwLHMuWikoKDAscy5aKSh7fSxyKSx7fSx7dGV4dDp0fSkpO2lmKG49PT0iZGF0ZSIpcmV0dXJuKDAsSy5qc3gpKFFyLHtpc0xpZ2h0OnIubGlnaHQsY2hpbGRyZW46KDAsSy5qc3gpKFdvLCgwLHMuWikoe3RleHQ6dCxmb3JtYXQ6IllZWVktTU0tREQifSxyKSl9KTtpZihuPT09ImRhdGVXZWVrIilyZXR1cm4oMCxLLmpzeCkoUXIse2lzTGlnaHQ6ci5saWdodCxjaGlsZHJlbjooMCxLLmpzeCkoV28sKDAscy5aKSh7dGV4dDp0LGZvcm1hdDoiWVlZWS13byIscGlja2VyOiJ3ZWVrIn0scikpfSk7aWYobj09PSJkYXRlV2Vla1JhbmdlIil7dmFyIHg9ci5maWVsZFByb3BzLHA9KDAsZy5aKShyLEwwKTtyZXR1cm4oMCxLLmpzeCkoUXIse2lzTGlnaHQ6ci5saWdodCxjaGlsZHJlbjooMCxLLmpzeCkoem8sKDAscy5aKSh7dGV4dDp0LGZvcm1hdDoiWVlZWS1XIixzaG93VGltZTohMCxmaWVsZFByb3BzOigwLHMuWikoe3BpY2tlcjoid2VlayJ9LHgpfSxwKSl9KX1pZihuPT09ImRhdGVNb250aFJhbmdlIil7dmFyIHk9ci5maWVsZFByb3BzLHc9KDAsZy5aKShyLFYwKTtyZXR1cm4oMCxLLmpzeCkoUXIse2lzTGlnaHQ6ci5saWdodCxjaGlsZHJlbjooMCxLLmpzeCkoem8sKDAscy5aKSh7dGV4dDp0LGZvcm1hdDoiWVlZWS1NTSIsc2hvd1RpbWU6ITAsZmllbGRQcm9wczooMCxzLlopKHtwaWNrZXI6Im1vbnRoIn0seSl9LHcpKX0pfWlmKG49PT0iZGF0ZVF1YXJ0ZXJSYW5nZSIpe3ZhciBQPXIuZmllbGRQcm9wcyxFPSgwLGcuWikocixCMCk7cmV0dXJuKDAsSy5qc3gpKFFyLHtpc0xpZ2h0OnIubGlnaHQsY2hpbGRyZW46KDAsSy5qc3gpKHpvLCgwLHMuWikoe3RleHQ6dCxmb3JtYXQ6IllZWVktUSIsc2hvd1RpbWU6ITAsZmllbGRQcm9wczooMCxzLlopKHtwaWNrZXI6InF1YXJ0ZXIifSxQKX0sRSkpfSl9aWYobj09PSJkYXRlWWVhclJhbmdlIil7dmFyIE09ci5maWVsZFByb3BzLEQ9KDAsZy5aKShyLFcwKTtyZXR1cm4oMCxLLmpzeCkoUXIse2lzTGlnaHQ6ci5saWdodCxjaGlsZHJlbjooMCxLLmpzeCkoem8sKDAscy5aKSh7dGV4dDp0LGZvcm1hdDoiWVlZWSIsc2hvd1RpbWU6ITAsZmllbGRQcm9wczooMCxzLlopKHtwaWNrZXI6InllYXIifSxNKX0sRCkpfSl9cmV0dXJuIG49PT0iZGF0ZU1vbnRoIj8oMCxLLmpzeCkoUXIse2lzTGlnaHQ6ci5saWdodCxjaGlsZHJlbjooMCxLLmpzeCkoV28sKDAscy5aKSh7dGV4dDp0LGZvcm1hdDoiWVlZWS1NTSIscGlja2VyOiJtb250aCJ9LHIpKX0pOm49PT0iZGF0ZVF1YXJ0ZXIiPygwLEsuanN4KShRcix7aXNMaWdodDpyLmxpZ2h0LGNoaWxkcmVuOigwLEsuanN4KShXbywoMCxzLlopKHt0ZXh0OnQsZm9ybWF0OiJZWVlZLVtRXVEiLHBpY2tlcjoicXVhcnRlciJ9LHIpKX0pOm49PT0iZGF0ZVllYXIiPygwLEsuanN4KShRcix7aXNMaWdodDpyLmxpZ2h0LGNoaWxkcmVuOigwLEsuanN4KShXbywoMCxzLlopKHt0ZXh0OnQsZm9ybWF0OiJZWVlZIixwaWNrZXI6InllYXIifSxyKSl9KTpuPT09ImRhdGVSYW5nZSI/KDAsSy5qc3gpKHpvLCgwLHMuWikoe3RleHQ6dCxmb3JtYXQ6IllZWVktTU0tREQifSxyKSk6bj09PSJkYXRlVGltZSI/KDAsSy5qc3gpKFFyLHtpc0xpZ2h0OnIubGlnaHQsY2hpbGRyZW46KDAsSy5qc3gpKFdvLCgwLHMuWikoe3RleHQ6dCxmb3JtYXQ6IllZWVktTU0tREQgSEg6bW06c3MiLHNob3dUaW1lOiEwfSxyKSl9KTpuPT09ImRhdGVUaW1lUmFuZ2UiPygwLEsuanN4KShRcix7aXNMaWdodDpyLmxpZ2h0LGNoaWxkcmVuOigwLEsuanN4KSh6bywoMCxzLlopKHt0ZXh0OnQsZm9ybWF0OiJZWVlZLU1NLUREIEhIOm1tOnNzIixzaG93VGltZTohMH0scikpfSk6bj09PSJ0aW1lIj8oMCxLLmpzeCkoUXIse2lzTGlnaHQ6ci5saWdodCxjaGlsZHJlbjooMCxLLmpzeCkoTTAsKDAscy5aKSh7dGV4dDp0LGZvcm1hdDoiSEg6bW06c3MifSxyKSl9KTpuPT09InRpbWVSYW5nZSI/KDAsSy5qc3gpKFFyLHtpc0xpZ2h0OnIubGlnaHQsY2hpbGRyZW46KDAsSy5qc3gpKCQwLCgwLHMuWikoe3RleHQ6dCxmb3JtYXQ6IkhIOm1tOnNzIn0scikpfSk6bj09PSJmcm9tTm93Ij8oMCxLLmpzeCkobGgsKDAscy5aKSh7dGV4dDp0fSxyKSk6bj09PSJpbmRleCI/KDAsSy5qc3gpKEh1LHtjaGlsZHJlbjp0KzF9KTpuPT09ImluZGV4Qm9yZGVyIj8oMCxLLmpzeCkoSHUse2JvcmRlcjohMCxjaGlsZHJlbjp0KzF9KTpuPT09InByb2dyZXNzIj8oMCxLLmpzeCkoS3UsKDAscy5aKSgoMCxzLlopKHt9LHIpLHt9LHt0ZXh0OnR9KSk6bj09PSJwZXJjZW50Ij8oMCxLLmpzeCkoenUsKDAscy5aKSh7dGV4dDp0fSxyKSk6bj09PSJhdmF0YXIiJiZ0eXBlb2YgdD09InN0cmluZyImJnIubW9kZT09PSJyZWFkIj8oMCxLLmpzeCkoZGUuWix7c3JjOnQsc2l6ZToyMixzaGFwZToiY2lyY2xlIn0pOm49PT0iY29kZSI/KDAsSy5qc3gpKGVhLCgwLHMuWikoe3RleHQ6dH0scikpOm49PT0ianNvbkNvZGUiPygwLEsuanN4KShlYSwoMCxzLlopKHt0ZXh0OnQsbGFuZ3VhZ2U6Impzb24ifSxyKSk6bj09PSJ0ZXh0YXJlYSI/KDAsSy5qc3gpKHgwLCgwLHMuWikoe3RleHQ6dH0scikpOm49PT0iZGlnaXQiPygwLEsuanN4KSh0aCwoMCxzLlopKHt0ZXh0OnR9LHIpKTpuPT09ImRpZ2l0UmFuZ2UiPygwLEsuanN4KShyaCwoMCxzLlopKHt0ZXh0OnR9LHIpKTpuPT09InNlY29uZCI/KDAsSy5qc3gpKGwwLCgwLHMuWikoe3RleHQ6dH0scikpOm49PT0ic2VsZWN0Inx8bj09PSJ0ZXh0IiYmKHIudmFsdWVFbnVtfHxyLnJlcXVlc3QpPygwLEsuanN4KShRcix7aXNMaWdodDpyLmxpZ2h0LGNoaWxkcmVuOigwLEsuanN4KShGci5aUCwoMCxzLlopKHt0ZXh0OnR9LHIpKX0pOm49PT0iY2hlY2tib3giPygwLEsuanN4KShnYSwoMCxzLlopKHt0ZXh0OnR9LHIpKTpuPT09InJhZGlvIj8oMCxLLmpzeCkoWXUsKDAscy5aKSh7dGV4dDp0fSxyKSk6bj09PSJyYWRpb0J1dHRvbiI/KDAsSy5qc3gpKFl1LCgwLHMuWikoe3JhZGlvVHlwZToiYnV0dG9uIix0ZXh0OnR9LHIpKTpuPT09InJhdGUiPygwLEsuanN4KShhMCwoMCxzLlopKHt0ZXh0OnR9LHIpKTpuPT09InNsaWRlciI/KDAsSy5qc3gpKGYwLCgwLHMuWikoe3RleHQ6dH0scikpOm49PT0ic3dpdGNoIj8oMCxLLmpzeCkoZzAsKDAscy5aKSh7dGV4dDp0fSxyKSk6bj09PSJvcHRpb24iPygwLEsuanN4KShQaCwoMCxzLlopKHt0ZXh0OnR9LHIpKTpuPT09InBhc3N3b3JkIj8oMCxLLmpzeCkoJGgsKDAscy5aKSh7dGV4dDp0fSxyKSk6bj09PSJpbWFnZSI/KDAsSy5qc3gpKEF1LCgwLHMuWikoe3RleHQ6dH0scikpOm49PT0iY2FzY2FkZXIiPygwLEsuanN4KShHYSwoMCxzLlopKHt0ZXh0OnR9LHIpKTpuPT09InRyZWVTZWxlY3QiPygwLEsuanN4KShGMCwoMCxzLlopKHt0ZXh0OnR9LHIpKTpuPT09ImNvbG9yIj8oMCxLLmpzeCkoZW0sKDAscy5aKSh7dGV4dDp0fSxyKSk6bj09PSJzZWdtZW50ZWQiPygwLEsuanN4KShjMCwoMCxzLlopKHt0ZXh0OnR9LHIpKTooMCxLLmpzeCkocDAsKDAscy5aKSh7dGV4dDp0fSxyKSl9LFgwPWZ1bmN0aW9uKHQsbil7dmFyIHIsYSxsLHUsYyxkPXQudGV4dCx2PXQudmFsdWVUeXBlLGY9dj09PXZvaWQgMD8idGV4dCI6dixtPXQubW9kZSxoPW09PT12b2lkIDA/InJlYWQiOm0sQz10Lm9uQ2hhbmdlLHg9dC5yZW5kZXJGb3JtSXRlbSxwPXQudmFsdWUseT10LnJlYWRvbmx5LHc9dC5maWVsZFByb3BzLFA9KDAsZy5aKSh0LHowKSxFPSgwLG8udXNlQ29udGV4dCkoTy5aUCksTT0oMCxGLkopKGZ1bmN0aW9uKCl7Zm9yKHZhciBULFc9YXJndW1lbnRzLmxlbmd0aCxCPW5ldyBBcnJheShXKSxZPTA7WTxXO1krKylCW1ldPWFyZ3VtZW50c1tZXTt3PT1udWxsfHwoVD13Lm9uQ2hhbmdlKT09PW51bGx8fFQ9PT12b2lkIDB8fFQuY2FsbC5hcHBseShULFt3XS5jb25jYXQoQikpLEM9PW51bGx8fEMuYXBwbHkodm9pZCAwLEIpfSksRD0oMCxMLlopKGZ1bmN0aW9uKCl7cmV0dXJuKHAhPT12b2lkIDB8fHcpJiYoMCxzLlopKCgwLHMuWikoe3ZhbHVlOnB9LCgwLFUuWSkodykpLHt9LHtvbkNoYW5nZTpNfSl9LFtwLHcsTV0pLE49VTAoaD09PSJlZGl0Ij8ocj0oYT1EPT1udWxsP3ZvaWQgMDpELnZhbHVlKSE9PW51bGwmJmEhPT12b2lkIDA/YTpkKSE9PW51bGwmJnIhPT12b2lkIDA/cjoiIjoobD1kIT1udWxsP2Q6RD09bnVsbD92b2lkIDA6RC52YWx1ZSkhPT1udWxsJiZsIT09dm9pZCAwP2w6IiIsZnx8InRleHQiLCgwLFUuWSkoKDAscy5aKSgoMCxzLlopKHtyZWY6bn0sUCkse30se21vZGU6eT8icmVhZCI6aCxyZW5kZXJGb3JtSXRlbTp4P2Z1bmN0aW9uKFQsVyxCKXt2YXIgWT1XLnBsYWNlaG9sZGVyLEg9KDAsZy5aKShXLEswKSxBPXgoVCxILEIpO3JldHVybiBvLmlzVmFsaWRFbGVtZW50KEEpP28uY2xvbmVFbGVtZW50KEEsKDAscy5aKSgoMCxzLlopKHt9LEQpLEEucHJvcHN8fHt9KSk6QX06dm9pZCAwLHBsYWNlaG9sZGVyOng/dm9pZCAwOih1PVA9PW51bGw/dm9pZCAwOlAucGxhY2Vob2xkZXIpIT09bnVsbCYmdSE9PXZvaWQgMD91OkQ9PW51bGw/dm9pZCAwOkQucGxhY2Vob2xkZXIsZmllbGRQcm9wczpSKCgwLFUuWSkoKDAscy5aKSgoMCxzLlopKHt9LEQpLHt9LHtwbGFjZWhvbGRlcjp4P3ZvaWQgMDooYz1QPT1udWxsP3ZvaWQgMDpQLnBsYWNlaG9sZGVyKSE9PW51bGwmJmMhPT12b2lkIDA/YzpEPT1udWxsP3ZvaWQgMDpELnBsYWNlaG9sZGVyfSkpKX0pKSxFLnZhbHVlVHlwZU1hcHx8e30pO3JldHVybigwLEsuanN4KShvLkZyYWdtZW50LHtjaGlsZHJlbjpOfSl9LEcwPW8uZm9yd2FyZFJlZihYMCksUTA9RzAsSjA9aSgyMjI3MCkscTA9aSg2MDI0OSksXzA9aSg5MTA1KSxlcD1pKDkwNzg5KSx0cD1bImZpZWxkUHJvcHMiLCJjaGlsZHJlbiIsImxhYmVsQ29sIiwibGFiZWwiLCJhdXRvRm9jdXMiLCJpc0RlZmF1bHREb20iLCJyZW5kZXIiLCJwcm9GaWVsZFByb3BzIiwicmVuZGVyRm9ybUl0ZW0iLCJ2YWx1ZVR5cGUiLCJpbml0aWFsVmFsdWUiLCJvbkNoYW5nZSIsInZhbHVlRW51bSIsInBhcmFtcyIsIm5hbWUiLCJkZXBlbmRlbmNpZXNWYWx1ZXMiLCJjYWNoZUZvclN3ciIsInZhbHVlUHJvcE5hbWUiXSxucD1mdW5jdGlvbih0KXt2YXIgbj10LmZpZWxkUHJvcHMscj10LmNoaWxkcmVuLGE9dC5sYWJlbENvbCxsPXQubGFiZWwsdT10LmF1dG9Gb2N1cyxjPXQuaXNEZWZhdWx0RG9tLGQ9dC5yZW5kZXIsdj10LnByb0ZpZWxkUHJvcHMsZj10LnJlbmRlckZvcm1JdGVtLG09dC52YWx1ZVR5cGUsaD10LmluaXRpYWxWYWx1ZSxDPXQub25DaGFuZ2UseD10LnZhbHVlRW51bSxwPXQucGFyYW1zLHk9dC5uYW1lLHc9dC5kZXBlbmRlbmNpZXNWYWx1ZXMsUD10LmNhY2hlRm9yU3dyLEU9UD09PXZvaWQgMD8hMTpQLE09dC52YWx1ZVByb3BOYW1lLEQ9TT09PXZvaWQgMD8idmFsdWUiOk0sTj0oMCxnLlopKHQsdHApLFQ9KDAsby51c2VDb250ZXh0KShfMC5BKSxXPSgwLG8udXNlTWVtbykoZnVuY3Rpb24oKXtyZXR1cm4gdyYmTi5yZXF1ZXN0PygwLHMuWikoKDAscy5aKSh7fSxwKSx3fHx7fSk6cH0sW3cscCxOLnJlcXVlc3RdKSxCPSgwLEYuSikoZnVuY3Rpb24oKXtpZihuIT1udWxsJiZuLm9uQ2hhbmdlKXtmb3IodmFyIEEsVj1hcmd1bWVudHMubGVuZ3RoLHo9bmV3IEFycmF5KFYpLFg9MDtYPFY7WCsrKXpbWF09YXJndW1lbnRzW1hdO249PW51bGx8fChBPW4ub25DaGFuZ2UpPT09bnVsbHx8QT09PXZvaWQgMHx8QS5jYWxsLmFwcGx5KEEsW25dLmNvbmNhdCh6KSk7cmV0dXJufX0pLFk9KDAsby51c2VNZW1vKShmdW5jdGlvbigpe3JldHVybigwLHMuWikoKDAscy5aKSh7YXV0b0ZvY3VzOnV9LG4pLHt9LHtvbkNoYW5nZTpCfSl9LFt1LG4sQl0pLEg9KDAsby51c2VNZW1vKShmdW5jdGlvbigpe2lmKHIpcmV0dXJuIG8uaXNWYWxpZEVsZW1lbnQocik/by5jbG9uZUVsZW1lbnQociwoMCxzLlopKCgwLHMuWikoe30sTikse30se29uQ2hhbmdlOmZ1bmN0aW9uKCl7Zm9yKHZhciBWPWFyZ3VtZW50cy5sZW5ndGgsej1uZXcgQXJyYXkoViksWD0wO1g8VjtYKyspeltYXT1hcmd1bWVudHNbWF07aWYobiE9bnVsbCYmbi5vbkNoYW5nZSl7dmFyIHE7bj09bnVsbHx8KHE9bi5vbkNoYW5nZSk9PT1udWxsfHxxPT09dm9pZCAwfHxxLmNhbGwuYXBwbHkocSxbbl0uY29uY2F0KHopKTtyZXR1cm59Qz09bnVsbHx8Qy5hcHBseSh2b2lkIDAseil9fSwocj09bnVsbD92b2lkIDA6ci5wcm9wcyl8fHt9KSk6KDAsSy5qc3gpKEsuRnJhZ21lbnQse2NoaWxkcmVuOnJ9KX0sW3Isbj09bnVsbD92b2lkIDA6bi5vbkNoYW5nZSxDLE5dKTtyZXR1cm4gSHx8KDAsSy5qc3gpKFEwLCgwLHMuWikoKDAscy5aKSgoMCxzLlopKHt0ZXh0Om49PW51bGw/dm9pZCAwOm5bRF0scmVuZGVyOmQscmVuZGVyRm9ybUl0ZW06Zix2YWx1ZVR5cGU6bXx8InRleHQiLGNhY2hlRm9yU3dyOkUsZmllbGRQcm9wczpZLHZhbHVlRW51bTooMCxKMC5oKSh4KX0sdiksTikse30se21vZGU6KHY9PW51bGw/dm9pZCAwOnYubW9kZSl8fFQubW9kZXx8ImVkaXQiLHBhcmFtczpXfSkpfSxycD0oMCxlcC5HKSgoMCxvLm1lbW8pKG5wLGZ1bmN0aW9uKGUsdCl7cmV0dXJuKDAscTAuQSkodCxlLFsib25DaGFuZ2UiLCJvbkJsdXIiXSl9KSksYXA9cnB9LDMxNDEzOmZ1bmN0aW9uKFMsWixpKXsidXNlIHN0cmljdCI7aS5kKFose0o6ZnVuY3Rpb24oKXtyZXR1cm4gYn19KTt2YXIgcz1pKDY3MTU5KSxnPWkoMTk3NyksYj1mdW5jdGlvbihJKXtyZXR1cm4gST09PXZvaWQgMD97fTooMCxnLm4pKHMuWiwiNS4xMy4wIik8PTA/e2JvcmRlcmVkOkl9Ont2YXJpYW50Okk/dm9pZCAwOiJib3JkZXJsZXNzIn19fSw1MTI4MDpmdW5jdGlvbihTLFosaSl7InVzZSBzdHJpY3QiO2kuZChaLHtkOmZ1bmN0aW9uKCl7cmV0dXJuIGd9fSk7dmFyIHM9aSg2NzI5NCksZz1mdW5jdGlvbihPKXt2YXIgST0oMCxzLnVzZVJlZikoTyk7cmV0dXJuIEkuY3VycmVudD1PLEl9fSwxOTA0MzpmdW5jdGlvbihTLFosaSl7InVzZSBzdHJpY3QiO2kuZChaLHtSNjpmdW5jdGlvbigpe3JldHVybiBabn0sTVA6ZnVuY3Rpb24oKXtyZXR1cm4gbnJ9fSk7dmFyIHM9aSg3MTAwMiksZz1pKDY3Mjk0KSxiPWkoOTM5NjcpLE89aS5uKGIpLEk9aSgyOTM3MiksJD1pKDk4Nzg3KSxSPWkoOTYxNTkpLEY9aSg1MzEyNCksTD1pKDExNTY4KSxVPWkoMTQ3NDcpLGRlPWkoOTg3MTkpLG89aSg4MzI2Miksaj1pKDgzNTU5KTtjb25zdCBEZT1uZXcgTC5FNCgiYW50U3RhdHVzUHJvY2Vzc2luZyIseyIwJSI6e3RyYW5zZm9ybToic2NhbGUoMC44KSIsb3BhY2l0eTouNX0sIjEwMCUiOnt0cmFuc2Zvcm06InNjYWxlKDIuNCkiLG9wYWNpdHk6MH19KSxtZT1uZXcgTC5FNCgiYW50Wm9vbUJhZGdlSW4iLHsiMCUiOnt0cmFuc2Zvcm06InNjYWxlKDApIHRyYW5zbGF0ZSg1MCUsIC01MCUpIixvcGFjaXR5OjB9LCIxMDAlIjp7dHJhbnNmb3JtOiJzY2FsZSgxKSB0cmFuc2xhdGUoNTAlLCAtNTAlKSJ9fSksXz1uZXcgTC5FNCgiYW50Wm9vbUJhZGdlT3V0Iix7IjAlIjp7dHJhbnNmb3JtOiJzY2FsZSgxKSB0cmFuc2xhdGUoNTAlLCAtNTAlKSJ9LCIxMDAlIjp7dHJhbnNmb3JtOiJzY2FsZSgwKSB0cmFuc2xhdGUoNTAlLCAtNTAlKSIsb3BhY2l0eTowfX0pLHZlPW5ldyBMLkU0KCJhbnROb1dyYXBwZXJab29tQmFkZ2VJbiIseyIwJSI6e3RyYW5zZm9ybToic2NhbGUoMCkiLG9wYWNpdHk6MH0sIjEwMCUiOnt0cmFuc2Zvcm06InNjYWxlKDEpIn19KSxiZT1uZXcgTC5FNCgiYW50Tm9XcmFwcGVyWm9vbUJhZGdlT3V0Iix7IjAlIjp7dHJhbnNmb3JtOiJzY2FsZSgxKSJ9LCIxMDAlIjp7dHJhbnNmb3JtOiJzY2FsZSgwKSIsb3BhY2l0eTowfX0pLGxlPW5ldyBMLkU0KCJhbnRCYWRnZUxvYWRpbmdDaXJjbGUiLHsiMCUiOnt0cmFuc2Zvcm1PcmlnaW46IjUwJSJ9LCIxMDAlIjp7dHJhbnNmb3JtOiJ0cmFuc2xhdGUoNTAlLCAtNTAlKSByb3RhdGUoMzYwZGVnKSIsdHJhbnNmb3JtT3JpZ2luOiI1MCUifX0pLFhlPW5lPT57Y29uc3R7Y29tcG9uZW50Q2xzOmssaWNvbkNsczokZSxhbnRDbHM6TmUsYmFkZ2VTaGFkb3dTaXplOlRlLHRleHRGb250U2l6ZTphdCx0ZXh0Rm9udFNpemVTTTpPZSxzdGF0dXNTaXplOm10LGRvdFNpemU6aHQsdGV4dEZvbnRXZWlnaHQ6RnQsaW5kaWNhdG9ySGVpZ2h0OiR0LGluZGljYXRvckhlaWdodFNNOkF0LG1hcmdpblhTOkJ0LGNhbGM6RHR9PW5lLFllPWAke05lfS1zY3JvbGwtbnVtYmVyYCxhbj0oMCxkZS5aKShuZSwoSHQsaG4pPT57bGV0e2RhcmtDb2xvcjpxdH09aG47cmV0dXJue1tgJiR7a30gJHtrfS1jb2xvci0ke0h0fWBdOntiYWNrZ3JvdW5kOnF0LFtgJjpub3QoJHtrfS1jb3VudClgXTp7Y29sb3I6cXR9LCJhOmhvdmVyICYiOntiYWNrZ3JvdW5kOnF0fX19fSk7cmV0dXJue1trXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCgwLFUuV2YpKG5lKSkse3Bvc2l0aW9uOiJyZWxhdGl2ZSIsZGlzcGxheToiaW5saW5lLWJsb2NrIix3aWR0aDoiZml0LWNvbnRlbnQiLGxpbmVIZWlnaHQ6MSxbYCR7a30tY291bnRgXTp7ZGlzcGxheToiaW5saW5lLWZsZXgiLGp1c3RpZnlDb250ZW50OiJjZW50ZXIiLHpJbmRleDpuZS5pbmRpY2F0b3JaSW5kZXgsbWluV2lkdGg6JHQsaGVpZ2h0OiR0LGNvbG9yOm5lLmJhZGdlVGV4dENvbG9yLGZvbnRXZWlnaHQ6RnQsZm9udFNpemU6YXQsbGluZUhlaWdodDooMCxMLmJmKSgkdCksd2hpdGVTcGFjZToibm93cmFwIix0ZXh0QWxpZ246ImNlbnRlciIsYmFja2dyb3VuZDpuZS5iYWRnZUNvbG9yLGJvcmRlclJhZGl1czpEdCgkdCkuZGl2KDIpLmVxdWFsKCksYm94U2hhZG93OmAwIDAgMCAkeygwLEwuYmYpKFRlKX0gJHtuZS5iYWRnZVNoYWRvd0NvbG9yfWAsdHJhbnNpdGlvbjpgYmFja2dyb3VuZCAke25lLm1vdGlvbkR1cmF0aW9uTWlkfWAsYTp7Y29sb3I6bmUuYmFkZ2VUZXh0Q29sb3J9LCJhOmhvdmVyIjp7Y29sb3I6bmUuYmFkZ2VUZXh0Q29sb3J9LCJhOmhvdmVyICYiOntiYWNrZ3JvdW5kOm5lLmJhZGdlQ29sb3JIb3Zlcn19LFtgJHtrfS1jb3VudC1zbWBdOnttaW5XaWR0aDpBdCxoZWlnaHQ6QXQsZm9udFNpemU6T2UsbGluZUhlaWdodDooMCxMLmJmKShBdCksYm9yZGVyUmFkaXVzOkR0KEF0KS5kaXYoMikuZXF1YWwoKX0sW2Ake2t9LW11bHRpcGxlLXdvcmRzYF06e3BhZGRpbmc6YDAgJHsoMCxMLmJmKShuZS5wYWRkaW5nWFMpfWAsYmRpOnt1bmljb2RlQmlkaToicGxhaW50ZXh0In19LFtgJHtrfS1kb3RgXTp7ekluZGV4Om5lLmluZGljYXRvclpJbmRleCx3aWR0aDpodCxtaW5XaWR0aDpodCxoZWlnaHQ6aHQsYmFja2dyb3VuZDpuZS5iYWRnZUNvbG9yLGJvcmRlclJhZGl1czoiMTAwJSIsYm94U2hhZG93OmAwIDAgMCAkeygwLEwuYmYpKFRlKX0gJHtuZS5iYWRnZVNoYWRvd0NvbG9yfWB9LFtgJHtrfS1jb3VudCwgJHtrfS1kb3QsICR7WWV9LWN1c3RvbS1jb21wb25lbnRgXTp7cG9zaXRpb246ImFic29sdXRlIix0b3A6MCxpbnNldElubGluZUVuZDowLHRyYW5zZm9ybToidHJhbnNsYXRlKDUwJSwgLTUwJSkiLHRyYW5zZm9ybU9yaWdpbjoiMTAwJSAwJSIsW2AmJHskZX0tc3BpbmBdOnthbmltYXRpb25OYW1lOmxlLGFuaW1hdGlvbkR1cmF0aW9uOiIxcyIsYW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6ImluZmluaXRlIixhbmltYXRpb25UaW1pbmdGdW5jdGlvbjoibGluZWFyIn19LFtgJiR7a30tc3RhdHVzYF06e2xpbmVIZWlnaHQ6ImluaGVyaXQiLHZlcnRpY2FsQWxpZ246ImJhc2VsaW5lIixbYCR7a30tc3RhdHVzLWRvdGBdOntwb3NpdGlvbjoicmVsYXRpdmUiLHRvcDotMSxkaXNwbGF5OiJpbmxpbmUtYmxvY2siLHdpZHRoOm10LGhlaWdodDptdCx2ZXJ0aWNhbEFsaWduOiJtaWRkbGUiLGJvcmRlclJhZGl1czoiNTAlIn0sW2Ake2t9LXN0YXR1cy1zdWNjZXNzYF06e2JhY2tncm91bmRDb2xvcjpuZS5jb2xvclN1Y2Nlc3N9LFtgJHtrfS1zdGF0dXMtcHJvY2Vzc2luZ2BdOntvdmVyZmxvdzoidmlzaWJsZSIsY29sb3I6bmUuY29sb3JJbmZvLGJhY2tncm91bmRDb2xvcjpuZS5jb2xvckluZm8sYm9yZGVyQ29sb3I6ImN1cnJlbnRjb2xvciIsIiY6OmFmdGVyIjp7cG9zaXRpb246ImFic29sdXRlIix0b3A6MCxpbnNldElubGluZVN0YXJ0OjAsd2lkdGg6IjEwMCUiLGhlaWdodDoiMTAwJSIsYm9yZGVyV2lkdGg6VGUsYm9yZGVyU3R5bGU6InNvbGlkIixib3JkZXJDb2xvcjoiaW5oZXJpdCIsYm9yZGVyUmFkaXVzOiI1MCUiLGFuaW1hdGlvbk5hbWU6RGUsYW5pbWF0aW9uRHVyYXRpb246bmUuYmFkZ2VQcm9jZXNzaW5nRHVyYXRpb24sYW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6ImluZmluaXRlIixhbmltYXRpb25UaW1pbmdGdW5jdGlvbjoiZWFzZS1pbi1vdXQiLGNvbnRlbnQ6JyIiJ319LFtgJHtrfS1zdGF0dXMtZGVmYXVsdGBdOntiYWNrZ3JvdW5kQ29sb3I6bmUuY29sb3JUZXh0UGxhY2Vob2xkZXJ9LFtgJHtrfS1zdGF0dXMtZXJyb3JgXTp7YmFja2dyb3VuZENvbG9yOm5lLmNvbG9yRXJyb3J9LFtgJHtrfS1zdGF0dXMtd2FybmluZ2BdOntiYWNrZ3JvdW5kQ29sb3I6bmUuY29sb3JXYXJuaW5nfSxbYCR7a30tc3RhdHVzLXRleHRgXTp7bWFyZ2luSW5saW5lU3RhcnQ6QnQsY29sb3I6bmUuY29sb3JUZXh0LGZvbnRTaXplOm5lLmZvbnRTaXplfX19KSxhbikse1tgJHtrfS16b29tLWFwcGVhciwgJHtrfS16b29tLWVudGVyYF06e2FuaW1hdGlvbk5hbWU6bWUsYW5pbWF0aW9uRHVyYXRpb246bmUubW90aW9uRHVyYXRpb25TbG93LGFuaW1hdGlvblRpbWluZ0Z1bmN0aW9uOm5lLm1vdGlvbkVhc2VPdXRCYWNrLGFuaW1hdGlvbkZpbGxNb2RlOiJib3RoIn0sW2Ake2t9LXpvb20tbGVhdmVgXTp7YW5pbWF0aW9uTmFtZTpfLGFuaW1hdGlvbkR1cmF0aW9uOm5lLm1vdGlvbkR1cmF0aW9uU2xvdyxhbmltYXRpb25UaW1pbmdGdW5jdGlvbjpuZS5tb3Rpb25FYXNlT3V0QmFjayxhbmltYXRpb25GaWxsTW9kZToiYm90aCJ9LFtgJiR7a30tbm90LWEtd3JhcHBlcmBdOntbYCR7a30tem9vbS1hcHBlYXIsICR7a30tem9vbS1lbnRlcmBdOnthbmltYXRpb25OYW1lOnZlLGFuaW1hdGlvbkR1cmF0aW9uOm5lLm1vdGlvbkR1cmF0aW9uU2xvdyxhbmltYXRpb25UaW1pbmdGdW5jdGlvbjpuZS5tb3Rpb25FYXNlT3V0QmFja30sW2Ake2t9LXpvb20tbGVhdmVgXTp7YW5pbWF0aW9uTmFtZTpiZSxhbmltYXRpb25EdXJhdGlvbjpuZS5tb3Rpb25EdXJhdGlvblNsb3csYW5pbWF0aW9uVGltaW5nRnVuY3Rpb246bmUubW90aW9uRWFzZU91dEJhY2t9LFtgJjpub3QoJHtrfS1zdGF0dXMpYF06e3ZlcnRpY2FsQWxpZ246Im1pZGRsZSJ9LFtgJHtZZX0tY3VzdG9tLWNvbXBvbmVudCwgJHtrfS1jb3VudGBdOnt0cmFuc2Zvcm06Im5vbmUifSxbYCR7WWV9LWN1c3RvbS1jb21wb25lbnQsICR7WWV9YF06e3Bvc2l0aW9uOiJyZWxhdGl2ZSIsdG9wOiJhdXRvIixkaXNwbGF5OiJibG9jayIsdHJhbnNmb3JtT3JpZ2luOiI1MCUgNTAlIn19LFtZZV06e292ZXJmbG93OiJoaWRkZW4iLHRyYW5zaXRpb246YGFsbCAke25lLm1vdGlvbkR1cmF0aW9uTWlkfSAke25lLm1vdGlvbkVhc2VPdXRCYWNrfWAsW2Ake1llfS1vbmx5YF06e3Bvc2l0aW9uOiJyZWxhdGl2ZSIsZGlzcGxheToiaW5saW5lLWJsb2NrIixoZWlnaHQ6JHQsdHJhbnNpdGlvbjpgYWxsICR7bmUubW90aW9uRHVyYXRpb25TbG93fSAke25lLm1vdGlvbkVhc2VPdXRCYWNrfWAsV2Via2l0VHJhbnNmb3JtU3R5bGU6InByZXNlcnZlLTNkIixXZWJraXRCYWNrZmFjZVZpc2liaWxpdHk6ImhpZGRlbiIsW2A+IHAke1llfS1vbmx5LXVuaXRgXTp7aGVpZ2h0OiR0LG1hcmdpbjowLFdlYmtpdFRyYW5zZm9ybVN0eWxlOiJwcmVzZXJ2ZS0zZCIsV2Via2l0QmFja2ZhY2VWaXNpYmlsaXR5OiJoaWRkZW4ifX0sW2Ake1llfS1zeW1ib2xgXTp7dmVydGljYWxBbGlnbjoidG9wIn19LCImLXJ0bCI6e2RpcmVjdGlvbjoicnRsIixbYCR7a30tY291bnQsICR7a30tZG90LCAke1llfS1jdXN0b20tY29tcG9uZW50YF06e3RyYW5zZm9ybToidHJhbnNsYXRlKC01MCUsIC01MCUpIn19fSl9fSxvZT1uZT0+e2NvbnN0e2ZvbnRIZWlnaHQ6ayxsaW5lV2lkdGg6JGUsbWFyZ2luWFM6TmUsY29sb3JCb3JkZXJCZzpUZX09bmUsYXQ9ayxPZT0kZSxtdD1uZS5jb2xvclRleHRMaWdodFNvbGlkLGh0PW5lLmNvbG9yRXJyb3IsRnQ9bmUuY29sb3JFcnJvckhvdmVyO3JldHVybigwLG8uSVgpKG5lLHtiYWRnZUZvbnRIZWlnaHQ6YXQsYmFkZ2VTaGFkb3dTaXplOk9lLGJhZGdlVGV4dENvbG9yOm10LGJhZGdlQ29sb3I6aHQsYmFkZ2VDb2xvckhvdmVyOkZ0LGJhZGdlU2hhZG93Q29sb3I6VGUsYmFkZ2VQcm9jZXNzaW5nRHVyYXRpb246IjEuMnMiLGJhZGdlUmliYm9uT2Zmc2V0Ok5lLGJhZGdlUmliYm9uQ29ybmVyVHJhbnNmb3JtOiJzY2FsZVkoMC43NSkiLGJhZGdlUmliYm9uQ29ybmVyRmlsdGVyOiJicmlnaHRuZXNzKDc1JSkifSl9LEZlPW5lPT57Y29uc3R7Zm9udFNpemU6ayxsaW5lSGVpZ2h0OiRlLGZvbnRTaXplU006TmUsbGluZVdpZHRoOlRlfT1uZTtyZXR1cm57aW5kaWNhdG9yWkluZGV4OiJhdXRvIixpbmRpY2F0b3JIZWlnaHQ6TWF0aC5yb3VuZChrKiRlKS0yKlRlLGluZGljYXRvckhlaWdodFNNOmssZG90U2l6ZTpOZS8yLHRleHRGb250U2l6ZTpOZSx0ZXh0Rm9udFNpemVTTTpOZSx0ZXh0Rm9udFdlaWdodDoibm9ybWFsIixzdGF0dXNTaXplOk5lLzJ9fTt2YXIgemU9KDAsai5JJCkoIkJhZGdlIixuZT0+e2NvbnN0IGs9b2UobmUpO3JldHVybiBYZShrKX0sRmUpO2NvbnN0IGR0PW5lPT57Y29uc3R7YW50Q2xzOmssYmFkZ2VGb250SGVpZ2h0OiRlLG1hcmdpblhTOk5lLGJhZGdlUmliYm9uT2Zmc2V0OlRlLGNhbGM6YXR9PW5lLE9lPWAke2t9LXJpYmJvbmAsbXQ9YCR7a30tcmliYm9uLXdyYXBwZXJgLGh0PSgwLGRlLlopKG5lLChGdCwkdCk9PntsZXR7ZGFya0NvbG9yOkF0fT0kdDtyZXR1cm57W2AmJHtPZX0tY29sb3ItJHtGdH1gXTp7YmFja2dyb3VuZDpBdCxjb2xvcjpBdH19fSk7cmV0dXJue1ttdF06e3Bvc2l0aW9uOiJyZWxhdGl2ZSJ9LFtPZV06T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwoMCxVLldmKShuZSkpLHtwb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDpOZSxwYWRkaW5nOmAwICR7KDAsTC5iZikobmUucGFkZGluZ1hTKX1gLGNvbG9yOm5lLmNvbG9yUHJpbWFyeSxsaW5lSGVpZ2h0OigwLEwuYmYpKCRlKSx3aGl0ZVNwYWNlOiJub3dyYXAiLGJhY2tncm91bmRDb2xvcjpuZS5jb2xvclByaW1hcnksYm9yZGVyUmFkaXVzOm5lLmJvcmRlclJhZGl1c1NNLFtgJHtPZX0tdGV4dGBdOntjb2xvcjpuZS5iYWRnZVRleHRDb2xvcn0sW2Ake09lfS1jb3JuZXJgXTp7cG9zaXRpb246ImFic29sdXRlIix0b3A6IjEwMCUiLHdpZHRoOlRlLGhlaWdodDpUZSxjb2xvcjoiY3VycmVudGNvbG9yIixib3JkZXI6YCR7KDAsTC5iZikoYXQoVGUpLmRpdigyKS5lcXVhbCgpKX0gc29saWRgLHRyYW5zZm9ybTpuZS5iYWRnZVJpYmJvbkNvcm5lclRyYW5zZm9ybSx0cmFuc2Zvcm1PcmlnaW46InRvcCIsZmlsdGVyOm5lLmJhZGdlUmliYm9uQ29ybmVyRmlsdGVyfX0pLGh0KSx7W2AmJHtPZX0tcGxhY2VtZW50LWVuZGBdOntpbnNldElubGluZUVuZDphdChUZSkubXVsKC0xKS5lcXVhbCgpLGJvcmRlckVuZEVuZFJhZGl1czowLFtgJHtPZX0tY29ybmVyYF06e2luc2V0SW5saW5lRW5kOjAsYm9yZGVySW5saW5lRW5kQ29sb3I6InRyYW5zcGFyZW50Iixib3JkZXJCbG9ja0VuZENvbG9yOiJ0cmFuc3BhcmVudCJ9fSxbYCYke09lfS1wbGFjZW1lbnQtc3RhcnRgXTp7aW5zZXRJbmxpbmVTdGFydDphdChUZSkubXVsKC0xKS5lcXVhbCgpLGJvcmRlckVuZFN0YXJ0UmFkaXVzOjAsW2Ake09lfS1jb3JuZXJgXTp7aW5zZXRJbmxpbmVTdGFydDowLGJvcmRlckJsb2NrRW5kQ29sb3I6InRyYW5zcGFyZW50Iixib3JkZXJJbmxpbmVTdGFydENvbG9yOiJ0cmFuc3BhcmVudCJ9fSwiJi1ydGwiOntkaXJlY3Rpb246InJ0bCJ9fSl9fTt2YXIgZ3Q9KDAsai5JJCkoWyJCYWRnZSIsIlJpYmJvbiJdLG5lPT57Y29uc3Qgaz1vZShuZSk7cmV0dXJuIGR0KGspfSxGZSksQ3Q9bmU9Pntjb25zdHtjbGFzc05hbWU6ayxwcmVmaXhDbHM6JGUsc3R5bGU6TmUsY29sb3I6VGUsY2hpbGRyZW46YXQsdGV4dDpPZSxwbGFjZW1lbnQ6bXQ9ImVuZCIscm9vdENsYXNzTmFtZTpodH09bmUse2dldFByZWZpeENsczpGdCxkaXJlY3Rpb246JHR9PWcudXNlQ29udGV4dChGLkVfKSxBdD1GdCgicmliYm9uIiwkZSksQnQ9YCR7QXR9LXdyYXBwZXJgLFtEdCxZZSxhbl09Z3QoQXQsQnQpLEh0PSgwLCQubzIpKFRlLCExKSxobj1PKCkoQXQsYCR7QXR9LXBsYWNlbWVudC0ke210fWAse1tgJHtBdH0tcnRsYF06JHQ9PT0icnRsIixbYCR7QXR9LWNvbG9yLSR7VGV9YF06SHR9LGspLHF0PXt9LHduPXt9O3JldHVybiBUZSYmIUh0JiYocXQuYmFja2dyb3VuZD1UZSx3bi5jb2xvcj1UZSksRHQoZy5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6TygpKEJ0LGh0LFllLGFuKX0sYXQsZy5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6TygpKGhuLFllKSxzdHlsZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30scXQpLE5lKX0sZy5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmAke0F0fS10ZXh0YH0sT2UpLGcuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmAke0F0fS1jb3JuZXJgLHN0eWxlOndufSkpKSl9O2NvbnN0IG90PW5lPT57Y29uc3R7cHJlZml4Q2xzOmssdmFsdWU6JGUsY3VycmVudDpOZSxvZmZzZXQ6VGU9MH09bmU7bGV0IGF0O3JldHVybiBUZSYmKGF0PXtwb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDpgJHtUZX0wMCVgLGxlZnQ6MH0pLGcuY3JlYXRlRWxlbWVudCgic3BhbiIse3N0eWxlOmF0LGNsYXNzTmFtZTpPKCkoYCR7a30tb25seS11bml0YCx7Y3VycmVudDpOZX0pfSwkZSl9O2Z1bmN0aW9uIEcobmUsaywkZSl7bGV0IE5lPW5lLFRlPTA7Zm9yKDsoTmUrMTApJTEwIT09azspTmUrPSRlLFRlKz0kZTtyZXR1cm4gVGV9dmFyIFFlPW5lPT57Y29uc3R7cHJlZml4Q2xzOmssY291bnQ6JGUsdmFsdWU6TmV9PW5lLFRlPU51bWJlcihOZSksYXQ9TWF0aC5hYnMoJGUpLFtPZSxtdF09Zy51c2VTdGF0ZShUZSksW2h0LEZ0XT1nLnVzZVN0YXRlKGF0KSwkdD0oKT0+e210KFRlKSxGdChhdCl9O2cudXNlRWZmZWN0KCgpPT57Y29uc3QgRHQ9c2V0VGltZW91dCgkdCwxZTMpO3JldHVybigpPT5jbGVhclRpbWVvdXQoRHQpfSxbVGVdKTtsZXQgQXQsQnQ7aWYoT2U9PT1UZXx8TnVtYmVyLmlzTmFOKFRlKXx8TnVtYmVyLmlzTmFOKE9lKSlBdD1bZy5jcmVhdGVFbGVtZW50KG90LE9iamVjdC5hc3NpZ24oe30sbmUse2tleTpUZSxjdXJyZW50OiEwfSkpXSxCdD17dHJhbnNpdGlvbjoibm9uZSJ9O2Vsc2V7QXQ9W107Y29uc3QgRHQ9VGUrMTAsWWU9W107Zm9yKGxldCBxdD1UZTtxdDw9RHQ7cXQrPTEpWWUucHVzaChxdCk7Y29uc3QgYW49aHQ8YXQ/MTotMSxIdD1ZZS5maW5kSW5kZXgocXQ9PnF0JTEwPT09T2UpO0F0PShhbjwwP1llLnNsaWNlKDAsSHQrMSk6WWUuc2xpY2UoSHQpKS5tYXAoKHF0LHduKT0+e2NvbnN0IFR0PXF0JTEwO3JldHVybiBnLmNyZWF0ZUVsZW1lbnQob3QsT2JqZWN0LmFzc2lnbih7fSxuZSx7a2V5OnF0LHZhbHVlOlR0LG9mZnNldDphbjwwP3duLUh0OnduLGN1cnJlbnQ6d249PT1IdH0pKX0pLEJ0PXt0cmFuc2Zvcm06YHRyYW5zbGF0ZVkoJHstRyhPZSxUZSxhbil9MDAlKWB9fXJldHVybiBnLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6YCR7a30tb25seWAsc3R5bGU6QnQsb25UcmFuc2l0aW9uRW5kOiR0fSxBdCl9LF9lPWZ1bmN0aW9uKG5lLGspe3ZhciAkZT17fTtmb3IodmFyIE5lIGluIG5lKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuZSxOZSkmJmsuaW5kZXhPZihOZSk8MCYmKCRlW05lXT1uZVtOZV0pO2lmKG5lIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIFRlPTAsTmU9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhuZSk7VGU8TmUubGVuZ3RoO1RlKyspay5pbmRleE9mKE5lW1RlXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKG5lLE5lW1RlXSkmJigkZVtOZVtUZV1dPW5lW05lW1RlXV0pO3JldHVybiAkZX0sTHQ9Zy5mb3J3YXJkUmVmKChuZSxrKT0+e2NvbnN0e3ByZWZpeENsczokZSxjb3VudDpOZSxjbGFzc05hbWU6VGUsbW90aW9uQ2xhc3NOYW1lOmF0LHN0eWxlOk9lLHRpdGxlOm10LHNob3c6aHQsY29tcG9uZW50OkZ0PSJzdXAiLGNoaWxkcmVuOiR0fT1uZSxBdD1fZShuZSxbInByZWZpeENscyIsImNvdW50IiwiY2xhc3NOYW1lIiwibW90aW9uQ2xhc3NOYW1lIiwic3R5bGUiLCJ0aXRsZSIsInNob3ciLCJjb21wb25lbnQiLCJjaGlsZHJlbiJdKSx7Z2V0UHJlZml4Q2xzOkJ0fT1nLnVzZUNvbnRleHQoRi5FXyksRHQ9QnQoInNjcm9sbC1udW1iZXIiLCRlKSxZZT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sQXQpLHsiZGF0YS1zaG93IjpodCxzdHlsZTpPZSxjbGFzc05hbWU6TygpKER0LFRlLGF0KSx0aXRsZTptdH0pO2xldCBhbj1OZTtpZihOZSYmTnVtYmVyKE5lKSUxPT09MCl7Y29uc3QgSHQ9U3RyaW5nKE5lKS5zcGxpdCgiIik7YW49Zy5jcmVhdGVFbGVtZW50KCJiZGkiLG51bGwsSHQubWFwKChobixxdCk9PmcuY3JlYXRlRWxlbWVudChRZSx7cHJlZml4Q2xzOkR0LGNvdW50Ok51bWJlcihOZSksdmFsdWU6aG4sa2V5Okh0Lmxlbmd0aC1xdH0pKSl9cmV0dXJuIE9lIT1udWxsJiZPZS5ib3JkZXJDb2xvciYmKFllLnN0eWxlPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxPZSkse2JveFNoYWRvdzpgMCAwIDAgMXB4ICR7T2UuYm9yZGVyQ29sb3J9IGluc2V0YH0pKSwkdD8oMCxSLlRtKSgkdCxIdD0+KHtjbGFzc05hbWU6TygpKGAke0R0fS1jdXN0b20tY29tcG9uZW50YCxIdD09bnVsbD92b2lkIDA6SHQuY2xhc3NOYW1lLGF0KX0pKTpnLmNyZWF0ZUVsZW1lbnQoRnQsT2JqZWN0LmFzc2lnbih7fSxZZSx7cmVmOmt9KSxhbil9KSx3dD1mdW5jdGlvbihuZSxrKXt2YXIgJGU9e307Zm9yKHZhciBOZSBpbiBuZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobmUsTmUpJiZrLmluZGV4T2YoTmUpPDAmJigkZVtOZV09bmVbTmVdKTtpZihuZSE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBUZT0wLE5lPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMobmUpO1RlPE5lLmxlbmd0aDtUZSsrKWsuaW5kZXhPZihOZVtUZV0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChuZSxOZVtUZV0pJiYoJGVbTmVbVGVdXT1uZVtOZVtUZV1dKTtyZXR1cm4gJGV9O2NvbnN0IHJuPWcuZm9yd2FyZFJlZigobmUsayk9Pnt2YXIgJGUsTmUsVGUsYXQsT2U7Y29uc3R7cHJlZml4Q2xzOm10LHNjcm9sbE51bWJlclByZWZpeENsczpodCxjaGlsZHJlbjpGdCxzdGF0dXM6JHQsdGV4dDpBdCxjb2xvcjpCdCxjb3VudDpEdD1udWxsLG92ZXJmbG93Q291bnQ6WWU9OTksZG90OmFuPSExLHNpemU6SHQ9ImRlZmF1bHQiLHRpdGxlOmhuLG9mZnNldDpxdCxzdHlsZTp3bixjbGFzc05hbWU6VHQscm9vdENsYXNzTmFtZTpZbixjbGFzc05hbWVzOlVuLHN0eWxlczpzbixzaG93WmVybzp2bj0hMX09bmUsSG49d3QobmUsWyJwcmVmaXhDbHMiLCJzY3JvbGxOdW1iZXJQcmVmaXhDbHMiLCJjaGlsZHJlbiIsInN0YXR1cyIsInRleHQiLCJjb2xvciIsImNvdW50Iiwib3ZlcmZsb3dDb3VudCIsImRvdCIsInNpemUiLCJ0aXRsZSIsIm9mZnNldCIsInN0eWxlIiwiY2xhc3NOYW1lIiwicm9vdENsYXNzTmFtZSIsImNsYXNzTmFtZXMiLCJzdHlsZXMiLCJzaG93WmVybyJdKSx7Z2V0UHJlZml4Q2xzOmx0LGRpcmVjdGlvbjpxbixiYWRnZTp0dH09Zy51c2VDb250ZXh0KEYuRV8pLFB0PWx0KCJiYWRnZSIsbXQpLFtSbixYdCxYbl09emUoUHQpLERuPUR0PlllP2Ake1llfStgOkR0LHJyPURuPT09IjAifHxEbj09PTAsX249RHQ9PT1udWxsfHxyciYmIXZuLHBuPSgkdCE9bnVsbHx8QnQhPW51bGwpJiZfbixlcj1hbiYmIXJyLGJuPWVyPyIiOkRuLHluPSgwLGcudXNlTWVtbykoKCk9Pihibj09bnVsbHx8Ym49PT0iInx8cnImJiF2bikmJiFlcixbYm4scnIsdm4sZXJdKSxrbj0oMCxnLnVzZVJlZikoRHQpO3lufHwoa24uY3VycmVudD1EdCk7Y29uc3Qgb249a24uY3VycmVudCx1bj0oMCxnLnVzZVJlZikoYm4pO3lufHwodW4uY3VycmVudD1ibik7Y29uc3QgY249dW4uY3VycmVudCxPbj0oMCxnLnVzZVJlZikoZXIpO3lufHwoT24uY3VycmVudD1lcik7Y29uc3QgQ249KDAsZy51c2VNZW1vKSgoKT0+e2lmKCFxdClyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHR0PT1udWxsP3ZvaWQgMDp0dC5zdHlsZSksd24pO2NvbnN0IHdlPXttYXJnaW5Ub3A6cXRbMV19O3JldHVybiBxbj09PSJydGwiP3dlLmxlZnQ9cGFyc2VJbnQocXRbMF0sMTApOndlLnJpZ2h0PS1wYXJzZUludChxdFswXSwxMCksT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sd2UpLHR0PT1udWxsP3ZvaWQgMDp0dC5zdHlsZSksd24pfSxbcW4scXQsd24sdHQ9PW51bGw/dm9pZCAwOnR0LnN0eWxlXSksUnI9aG4hPW51bGw/aG46dHlwZW9mIG9uPT0ic3RyaW5nInx8dHlwZW9mIG9uPT0ibnVtYmVyIj9vbjp2b2lkIDAsZHI9eW58fCFBdD9udWxsOmcuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpgJHtQdH0tc3RhdHVzLXRleHRgfSxBdCksZ3I9IW9ufHx0eXBlb2Ygb24hPSJvYmplY3QiP3ZvaWQgMDooMCxSLlRtKShvbix3ZT0+KHtzdHlsZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sQ24pLHdlLnN0eWxlKX0pKSx5cj0oMCwkLm8yKShCdCwhMSksZmU9TygpKFVuPT1udWxsP3ZvaWQgMDpVbi5pbmRpY2F0b3IsKCRlPXR0PT1udWxsP3ZvaWQgMDp0dC5jbGFzc05hbWVzKT09PW51bGx8fCRlPT09dm9pZCAwP3ZvaWQgMDokZS5pbmRpY2F0b3Ise1tgJHtQdH0tc3RhdHVzLWRvdGBdOnBuLFtgJHtQdH0tc3RhdHVzLSR7JHR9YF06ISEkdCxbYCR7UHR9LWNvbG9yLSR7QnR9YF06eXJ9KSxLZT17fTtCdCYmIXlyJiYoS2UuY29sb3I9QnQsS2UuYmFja2dyb3VuZD1CdCk7Y29uc3QgamU9TygpKFB0LHtbYCR7UHR9LXN0YXR1c2BdOnBuLFtgJHtQdH0tbm90LWEtd3JhcHBlcmBdOiFGdCxbYCR7UHR9LXJ0bGBdOnFuPT09InJ0bCJ9LFR0LFluLHR0PT1udWxsP3ZvaWQgMDp0dC5jbGFzc05hbWUsKE5lPXR0PT1udWxsP3ZvaWQgMDp0dC5jbGFzc05hbWVzKT09PW51bGx8fE5lPT09dm9pZCAwP3ZvaWQgMDpOZS5yb290LFVuPT1udWxsP3ZvaWQgMDpVbi5yb290LFh0LFhuKTtpZighRnQmJnBuKXtjb25zdCB3ZT1Dbi5jb2xvcjtyZXR1cm4gUm4oZy5jcmVhdGVFbGVtZW50KCJzcGFuIixPYmplY3QuYXNzaWduKHt9LEhuLHtjbGFzc05hbWU6amUsc3R5bGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sc249PW51bGw/dm9pZCAwOnNuLnJvb3QpLChUZT10dD09bnVsbD92b2lkIDA6dHQuc3R5bGVzKT09PW51bGx8fFRlPT09dm9pZCAwP3ZvaWQgMDpUZS5yb290KSxDbil9KSxnLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6ZmUsc3R5bGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sc249PW51bGw/dm9pZCAwOnNuLmluZGljYXRvciksKGF0PXR0PT1udWxsP3ZvaWQgMDp0dC5zdHlsZXMpPT09bnVsbHx8YXQ9PT12b2lkIDA/dm9pZCAwOmF0LmluZGljYXRvciksS2UpfSksQXQmJmcuY3JlYXRlRWxlbWVudCgic3BhbiIse3N0eWxlOntjb2xvcjp3ZX0sY2xhc3NOYW1lOmAke1B0fS1zdGF0dXMtdGV4dGB9LEF0KSkpfXJldHVybiBSbihnLmNyZWF0ZUVsZW1lbnQoInNwYW4iLE9iamVjdC5hc3NpZ24oe3JlZjprfSxIbix7Y2xhc3NOYW1lOmplLHN0eWxlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwoT2U9dHQ9PW51bGw/dm9pZCAwOnR0LnN0eWxlcyk9PT1udWxsfHxPZT09PXZvaWQgMD92b2lkIDA6T2Uucm9vdCksc249PW51bGw/dm9pZCAwOnNuLnJvb3QpfSksRnQsZy5jcmVhdGVFbGVtZW50KEkuWlAse3Zpc2libGU6IXluLG1vdGlvbk5hbWU6YCR7UHR9LXpvb21gLG1vdGlvbkFwcGVhcjohMSxtb3Rpb25EZWFkbGluZToxZTN9LHdlPT57bGV0e2NsYXNzTmFtZTpIZX09d2U7dmFyIHB0LGtlO2NvbnN0IFdlPWx0KCJzY3JvbGwtbnVtYmVyIixodCksTGU9T24uY3VycmVudCxOdD1PKCkoVW49PW51bGw/dm9pZCAwOlVuLmluZGljYXRvciwocHQ9dHQ9PW51bGw/dm9pZCAwOnR0LmNsYXNzTmFtZXMpPT09bnVsbHx8cHQ9PT12b2lkIDA/dm9pZCAwOnB0LmluZGljYXRvcix7W2Ake1B0fS1kb3RgXTpMZSxbYCR7UHR9LWNvdW50YF06IUxlLFtgJHtQdH0tY291bnQtc21gXTpIdD09PSJzbWFsbCIsW2Ake1B0fS1tdWx0aXBsZS13b3Jkc2BdOiFMZSYmY24mJmNuLnRvU3RyaW5nKCkubGVuZ3RoPjEsW2Ake1B0fS1zdGF0dXMtJHskdH1gXTohISR0LFtgJHtQdH0tY29sb3ItJHtCdH1gXTp5cn0pO2xldCBHdD1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxzbj09bnVsbD92b2lkIDA6c24uaW5kaWNhdG9yKSwoa2U9dHQ9PW51bGw/dm9pZCAwOnR0LnN0eWxlcyk9PT1udWxsfHxrZT09PXZvaWQgMD92b2lkIDA6a2UuaW5kaWNhdG9yKSxDbik7cmV0dXJuIEJ0JiYheXImJihHdD1HdHx8e30sR3QuYmFja2dyb3VuZD1CdCksZy5jcmVhdGVFbGVtZW50KEx0LHtwcmVmaXhDbHM6V2Usc2hvdzoheW4sbW90aW9uQ2xhc3NOYW1lOkhlLGNsYXNzTmFtZTpOdCxjb3VudDpjbix0aXRsZTpScixzdHlsZTpHdCxrZXk6InNjcm9sbE51bWJlciJ9LGdyKX0pLGRyKSl9KTtybi5SaWJib249Q3Q7dmFyIGp0PXJuLEp0PWkoNzg5NTcpLHp0PWkoODU4OTMpO2Z1bmN0aW9uIEt0KG5lKXt2YXIgaz1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobmUpLm1hdGNoKC9eXFtvYmplY3QgKC4qKVxdJC8pWzFdLnRvTG93ZXJDYXNlKCk7cmV0dXJuIGs9PT0ic3RyaW5nIiYmKDAscy5aKShuZSk9PT0ib2JqZWN0Ij8ib2JqZWN0IjpuZT09PW51bGw/Im51bGwiOm5lPT09dm9pZCAwPyJ1bmRlZmluZWQiOmt9dmFyIFZ0PWZ1bmN0aW9uKGspe3ZhciAkZT1rLmNvbG9yLE5lPWsuY2hpbGRyZW47cmV0dXJuKDAsenQuanN4KShqdCx7Y29sb3I6JGUsdGV4dDpOZX0pfSxabj1mdW5jdGlvbihrKXtyZXR1cm4gS3Qoayk9PT0ibWFwIj9rOm5ldyBNYXAoT2JqZWN0LmVudHJpZXMoa3x8e30pKX0sTG49e1N1Y2Nlc3M6ZnVuY3Rpb24oayl7dmFyICRlPWsuY2hpbGRyZW47cmV0dXJuKDAsenQuanN4KShqdCx7c3RhdHVzOiJzdWNjZXNzIix0ZXh0OiRlfSl9LEVycm9yOmZ1bmN0aW9uKGspe3ZhciAkZT1rLmNoaWxkcmVuO3JldHVybigwLHp0LmpzeCkoanQse3N0YXR1czoiZXJyb3IiLHRleHQ6JGV9KX0sRGVmYXVsdDpmdW5jdGlvbihrKXt2YXIgJGU9ay5jaGlsZHJlbjtyZXR1cm4oMCx6dC5qc3gpKGp0LHtzdGF0dXM6ImRlZmF1bHQiLHRleHQ6JGV9KX0sUHJvY2Vzc2luZzpmdW5jdGlvbihrKXt2YXIgJGU9ay5jaGlsZHJlbjtyZXR1cm4oMCx6dC5qc3gpKGp0LHtzdGF0dXM6InByb2Nlc3NpbmciLHRleHQ6JGV9KX0sV2FybmluZzpmdW5jdGlvbihrKXt2YXIgJGU9ay5jaGlsZHJlbjtyZXR1cm4oMCx6dC5qc3gpKGp0LHtzdGF0dXM6Indhcm5pbmciLHRleHQ6JGV9KX0sc3VjY2VzczpmdW5jdGlvbihrKXt2YXIgJGU9ay5jaGlsZHJlbjtyZXR1cm4oMCx6dC5qc3gpKGp0LHtzdGF0dXM6InN1Y2Nlc3MiLHRleHQ6JGV9KX0sZXJyb3I6ZnVuY3Rpb24oayl7dmFyICRlPWsuY2hpbGRyZW47cmV0dXJuKDAsenQuanN4KShqdCx7c3RhdHVzOiJlcnJvciIsdGV4dDokZX0pfSxkZWZhdWx0OmZ1bmN0aW9uKGspe3ZhciAkZT1rLmNoaWxkcmVuO3JldHVybigwLHp0LmpzeCkoanQse3N0YXR1czoiZGVmYXVsdCIsdGV4dDokZX0pfSxwcm9jZXNzaW5nOmZ1bmN0aW9uKGspe3ZhciAkZT1rLmNoaWxkcmVuO3JldHVybigwLHp0LmpzeCkoanQse3N0YXR1czoicHJvY2Vzc2luZyIsdGV4dDokZX0pfSx3YXJuaW5nOmZ1bmN0aW9uKGspe3ZhciAkZT1rLmNoaWxkcmVuO3JldHVybigwLHp0LmpzeCkoanQse3N0YXR1czoid2FybmluZyIsdGV4dDokZX0pfX0sbnI9ZnVuY3Rpb24gbmUoaywkZSxOZSl7aWYoQXJyYXkuaXNBcnJheShrKSlyZXR1cm4oMCx6dC5qc3gpKEp0Llose3NwbGl0OiIsIixzaXplOjIsd3JhcDohMCxjaGlsZHJlbjprLm1hcChmdW5jdGlvbihGdCwkdCl7cmV0dXJuIG5lKEZ0LCRlLCR0KX0pfSxOZSk7dmFyIFRlPVpuKCRlKTtpZighVGUuaGFzKGspJiYhVGUuaGFzKCIiLmNvbmNhdChrKSkpcmV0dXJuKGs9PW51bGw/dm9pZCAwOmsubGFiZWwpfHxrO3ZhciBhdD1UZS5nZXQoayl8fFRlLmdldCgiIi5jb25jYXQoaykpO2lmKCFhdClyZXR1cm4oMCx6dC5qc3gpKGcuRnJhZ21lbnQse2NoaWxkcmVuOihrPT1udWxsP3ZvaWQgMDprLmxhYmVsKXx8a30sTmUpO3ZhciBPZT1hdC5zdGF0dXMsbXQ9YXQuY29sb3IsaHQ9TG5bT2V8fCJJbml0Il07cmV0dXJuIGh0PygwLHp0LmpzeCkoaHQse2NoaWxkcmVuOmF0LnRleHR9LE5lKTptdD8oMCx6dC5qc3gpKFZ0LHtjb2xvcjptdCxjaGlsZHJlbjphdC50ZXh0fSxOZSk6KDAsenQuanN4KShnLkZyYWdtZW50LHtjaGlsZHJlbjphdC50ZXh0fHxhdH0sTmUpfX0sNTM5MTQ6ZnVuY3Rpb24oUyxaLGkpeyJ1c2Ugc3RyaWN0IjtpLmQoWix7WlA6ZnVuY3Rpb24oKXtyZXR1cm4gJH19KTt2YXIgcz1pKDU2MTQpO2NvbnN0IGc9cy5jb25maWd1cmUsYj1udWxsO3ZhciBPPW51bGwsST1nKHtiaWdpbnQ6ITAsY2lyY3VsYXJWYWx1ZToiTWFnaWMgY2lyY2xlISIsZGV0ZXJtaW5pc3RpYzohMSxtYXhpbXVtRGVwdGg6NH0pLCQ9SX0sNTk4NDc6ZnVuY3Rpb24oUyxaLGkpeyJ1c2Ugc3RyaWN0IjtpLmQoWix7WjpmdW5jdGlvbigpe3JldHVybiB5cn19KTt2YXIgcz1pKDY3Mjk0KSxnPWkoOTM5NjcpLGI9aS5uKGcpLE89aSg4NzQ2MiksST1pKDc0OTAyKSwkPWkoMTQxMyksUj1pKDk3Njg1KSxGPWkoOTEpLEw9aSg3MTAwMiksVT1pKDgyMjc1KSxkZT1pKDg4NzA4KSxvPWkoMTczNDEpLGo9aSgyMTc3MCksRGU9aSg4MDMzNCksbWU9ZnVuY3Rpb24oZmUpe3ZhciBLZT1zLnVzZVJlZih7dmFsdWVMYWJlbHM6bmV3IE1hcH0pO3JldHVybiBzLnVzZU1lbW8oZnVuY3Rpb24oKXt2YXIgamU9S2UuY3VycmVudC52YWx1ZUxhYmVscyx3ZT1uZXcgTWFwLEhlPWZlLm1hcChmdW5jdGlvbihwdCl7dmFyIGtlPXB0LnZhbHVlLFdlPXB0LmxhYmVsLExlPVdlIT1udWxsP1dlOmplLmdldChrZSk7cmV0dXJuIHdlLnNldChrZSxMZSksKDAsJC5aKSgoMCwkLlopKHt9LHB0KSx7fSx7bGFiZWw6TGV9KX0pO3JldHVybiBLZS5jdXJyZW50LnZhbHVlTGFiZWxzPXdlLFtIZV19LFtmZV0pfSxfPWZ1bmN0aW9uKEtlLGplLHdlLEhlKXtyZXR1cm4gcy51c2VNZW1vKGZ1bmN0aW9uKCl7dmFyIHB0PWZ1bmN0aW9uKHRyKXtyZXR1cm4gdHIubWFwKGZ1bmN0aW9uKE5uKXt2YXIgd3I9Tm4udmFsdWU7cmV0dXJuIHdyfSl9LGtlPXB0KEtlKSxXZT1wdChqZSksTGU9a2UuZmlsdGVyKGZ1bmN0aW9uKGhlKXtyZXR1cm4hSGVbaGVdfSksTnQ9a2UsR3Q9V2U7aWYod2Upe3ZhciBsbj0oMCxvLlMpKGtlLCEwLEhlKTtOdD1sbi5jaGVja2VkS2V5cyxHdD1sbi5oYWxmQ2hlY2tlZEtleXN9cmV0dXJuW0FycmF5LmZyb20obmV3IFNldChbXS5jb25jYXQoKDAsSS5aKShMZSksKDAsSS5aKShOdCkpKSksR3RdfSxbS2UsamUsd2UsSGVdKX0sdmU9XyxiZT1pKDEwODkpLGxlPWZ1bmN0aW9uKGZlLEtlKXtyZXR1cm4gcy51c2VNZW1vKGZ1bmN0aW9uKCl7dmFyIGplPSgwLGJlLkk4KShmZSx7ZmllbGROYW1lczpLZSxpbml0V3JhcHBlcjpmdW5jdGlvbihIZSl7cmV0dXJuKDAsJC5aKSgoMCwkLlopKHt9LEhlKSx7fSx7dmFsdWVFbnRpdGllczpuZXcgTWFwfSl9LHByb2Nlc3NFbnRpdHk6ZnVuY3Rpb24oSGUscHQpe3ZhciBrZT1IZS5ub2RlW0tlLnZhbHVlXTtpZigwKXZhciBXZTtwdC52YWx1ZUVudGl0aWVzLnNldChrZSxIZSl9fSk7cmV0dXJuIGplfSxbZmUsS2VdKX0sWGU9aSg0OTQyKSxvZT1pKDUwMzQ0KSxGZT1mdW5jdGlvbigpe3JldHVybiBudWxsfSx6ZT1GZSxkdD1bImNoaWxkcmVuIiwidmFsdWUiXTtmdW5jdGlvbiBndChmZSl7cmV0dXJuKDAsb2UuWikoZmUpLm1hcChmdW5jdGlvbihLZSl7aWYoIXMuaXNWYWxpZEVsZW1lbnQoS2UpfHwhS2UudHlwZSlyZXR1cm4gbnVsbDt2YXIgamU9S2Usd2U9amUua2V5LEhlPWplLnByb3BzLHB0PUhlLmNoaWxkcmVuLGtlPUhlLnZhbHVlLFdlPSgwLEYuWikoSGUsZHQpLExlPSgwLCQuWikoe2tleTp3ZSx2YWx1ZTprZX0sV2UpLE50PWd0KHB0KTtyZXR1cm4gTnQubGVuZ3RoJiYoTGUuY2hpbGRyZW49TnQpLExlfSkuZmlsdGVyKGZ1bmN0aW9uKEtlKXtyZXR1cm4gS2V9KX1mdW5jdGlvbiBydChmZSl7aWYoIWZlKXJldHVybiBmZTt2YXIgS2U9KDAsJC5aKSh7fSxmZSk7cmV0dXJuInByb3BzImluIEtlfHxPYmplY3QuZGVmaW5lUHJvcGVydHkoS2UsInByb3BzIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuKDAsRGUuWlApKCExLCJOZXcgYHJjLXRyZWUtc2VsZWN0YCBub3Qgc3VwcG9ydCByZXR1cm4gbm9kZSBpbnN0YW5jZSBhcyBhcmd1bWVudCBhbnltb3JlLiBQbGVhc2UgY29uc2lkZXIgdG8gcmVtb3ZlIGBwcm9wc2AgYWNjZXNzLiIpLEtlfX0pLEtlfWZ1bmN0aW9uIEN0KGZlLEtlLGplLHdlLEhlLHB0KXt2YXIga2U9bnVsbCxXZT1udWxsO2Z1bmN0aW9uIExlKCl7ZnVuY3Rpb24gTnQoR3Qpe3ZhciBsbj1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06IjAiLGhlPWFyZ3VtZW50cy5sZW5ndGg+MiYmYXJndW1lbnRzWzJdIT09dm9pZCAwP2FyZ3VtZW50c1syXTohMTtyZXR1cm4gR3QubWFwKGZ1bmN0aW9uKHRyLE5uKXt2YXIgd3I9IiIuY29uY2F0KGxuLCItIikuY29uY2F0KE5uKSxscj10cltwdC52YWx1ZV0sVnI9amUuaW5jbHVkZXMobHIpLGxhPU50KHRyW3B0LmNoaWxkcmVuXXx8W10sd3IsVnIpLF9yPXMuY3JlYXRlRWxlbWVudCh6ZSx0cixsYS5tYXAoZnVuY3Rpb24oRHIpe3JldHVybiBEci5ub2RlfSkpO2lmKEtlPT09bHImJihrZT1fciksVnIpe3ZhciBTYT17cG9zOndyLG5vZGU6X3IsY2hpbGRyZW46bGF9O3JldHVybiBoZXx8V2UucHVzaChTYSksU2F9cmV0dXJuIG51bGx9KS5maWx0ZXIoZnVuY3Rpb24odHIpe3JldHVybiB0cn0pfVdlfHwoV2U9W10sTnQod2UpLFdlLnNvcnQoZnVuY3Rpb24oR3QsbG4pe3ZhciBoZT1HdC5ub2RlLnByb3BzLnZhbHVlLHRyPWxuLm5vZGUucHJvcHMudmFsdWUsTm49amUuaW5kZXhPZihoZSksd3I9amUuaW5kZXhPZih0cik7cmV0dXJuIE5uLXdyfSkpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShmZSwidHJpZ2dlck5vZGUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4oMCxEZS5aUCkoITEsImB0cmlnZ2VyTm9kZWAgaXMgZGVwcmVjYXRlZC4gUGxlYXNlIGNvbnNpZGVyIGRlY291cGxpbmcgZGF0YSB3aXRoIG5vZGUuIiksTGUoKSxrZX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZmUsImFsbENoZWNrZWROb2RlcyIse2dldDpmdW5jdGlvbigpe3JldHVybigwLERlLlpQKSghMSwiYGFsbENoZWNrZWROb2Rlc2AgaXMgZGVwcmVjYXRlZC4gUGxlYXNlIGNvbnNpZGVyIGRlY291cGxpbmcgZGF0YSB3aXRoIG5vZGUuIiksTGUoKSxIZT9XZTpXZS5tYXAoZnVuY3Rpb24oR3Qpe3ZhciBsbj1HdC5ub2RlO3JldHVybiBsbn0pfX0pfXZhciBvdD1mdW5jdGlvbihLZSxqZSx3ZSl7dmFyIEhlPXdlLmZpZWxkTmFtZXMscHQ9d2UudHJlZU5vZGVGaWx0ZXJQcm9wLGtlPXdlLmZpbHRlclRyZWVOb2RlLFdlPUhlLmNoaWxkcmVuO3JldHVybiBzLnVzZU1lbW8oZnVuY3Rpb24oKXtpZighamV8fGtlPT09ITEpcmV0dXJuIEtlO3ZhciBMZT10eXBlb2Yga2U9PSJmdW5jdGlvbiI/a2U6ZnVuY3Rpb24oR3QsbG4pe3JldHVybiBTdHJpbmcobG5bcHRdKS50b1VwcGVyQ2FzZSgpLmluY2x1ZGVzKGplLnRvVXBwZXJDYXNlKCkpfSxOdD1mdW5jdGlvbiBHdChsbil7dmFyIGhlPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTohMTtyZXR1cm4gbG4ucmVkdWNlKGZ1bmN0aW9uKHRyLE5uKXt2YXIgd3I9Tm5bV2VdLGxyPWhlfHxMZShqZSxydChObikpLFZyPUd0KHdyfHxbXSxscik7cmV0dXJuKGxyfHxWci5sZW5ndGgpJiZ0ci5wdXNoKCgwLCQuWikoKDAsJC5aKSh7fSxObikse30sKDAsWGUuWikoe2lzTGVhZjp2b2lkIDB9LFdlLFZyKSkpLHRyfSxbXSl9O3JldHVybiBOdChLZSl9LFtLZSxqZSxXZSxwdCxrZV0pfSxHPW90O2Z1bmN0aW9uIHRlKGZlKXt2YXIgS2U9cy51c2VSZWYoKTtLZS5jdXJyZW50PWZlO3ZhciBqZT1zLnVzZUNhbGxiYWNrKGZ1bmN0aW9uKCl7cmV0dXJuIEtlLmN1cnJlbnQuYXBwbHkoS2UsYXJndW1lbnRzKX0sW10pO3JldHVybiBqZX1mdW5jdGlvbiBRZShmZSxLZSl7dmFyIGplPUtlLmlkLHdlPUtlLnBJZCxIZT1LZS5yb290UElkLHB0PW5ldyBNYXAsa2U9W107cmV0dXJuIGZlLmZvckVhY2goZnVuY3Rpb24oV2Upe3ZhciBMZT1XZVtqZV0sTnQ9KDAsJC5aKSgoMCwkLlopKHt9LFdlKSx7fSx7a2V5OldlLmtleXx8TGV9KTtwdC5zZXQoTGUsTnQpfSkscHQuZm9yRWFjaChmdW5jdGlvbihXZSl7dmFyIExlPVdlW3dlXSxOdD1wdC5nZXQoTGUpO050PyhOdC5jaGlsZHJlbj1OdC5jaGlsZHJlbnx8W10sTnQuY2hpbGRyZW4ucHVzaChXZSkpOihMZT09PUhlfHxIZT09PW51bGwpJiZrZS5wdXNoKFdlKX0pLGtlfWZ1bmN0aW9uIF9lKGZlLEtlLGplKXtyZXR1cm4gcy51c2VNZW1vKGZ1bmN0aW9uKCl7aWYoZmUpe2lmKGplKXt2YXIgd2U9KDAsJC5aKSh7aWQ6ImlkIixwSWQ6InBJZCIscm9vdFBJZDpudWxsfSwoMCxMLlopKGplKT09PSJvYmplY3QiP2plOnt9KTtyZXR1cm4gUWUoZmUsd2UpfXJldHVybiBmZX1yZXR1cm4gZ3QoS2UpfSxbS2UsamUsZmVdKX12YXIgZnQ9cy5jcmVhdGVDb250ZXh0KG51bGwpLEx0PWZ0LHd0PWkoMzc3NjIpLFd0PWkoNzA1OTMpLHJuPWkoMTUxMDUpLGp0PWkoNTY5ODIpLEp0PXMuY3JlYXRlQ29udGV4dChudWxsKSx6dD1KdCxLdD1mdW5jdGlvbihLZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoS2UpP0tlOktlIT09dm9pZCAwP1tLZV06W119LFZ0PWZ1bmN0aW9uKEtlKXt2YXIgamU9S2V8fHt9LHdlPWplLmxhYmVsLEhlPWplLnZhbHVlLHB0PWplLmNoaWxkcmVuO3JldHVybntfdGl0bGU6d2U/W3dlXTpbInRpdGxlIiwibGFiZWwiXSx2YWx1ZTpIZXx8InZhbHVlIixrZXk6SGV8fCJ2YWx1ZSIsY2hpbGRyZW46cHR8fCJjaGlsZHJlbiJ9fSxabj1mdW5jdGlvbihLZSl7cmV0dXJuIUtlfHxLZS5kaXNhYmxlZHx8S2UuZGlzYWJsZUNoZWNrYm94fHxLZS5jaGVja2FibGU9PT0hMX0sTG49ZnVuY3Rpb24oS2UsamUpe3ZhciB3ZT1bXSxIZT1mdW5jdGlvbiBwdChrZSl7a2UuZm9yRWFjaChmdW5jdGlvbihXZSl7dmFyIExlPVdlW2plLmNoaWxkcmVuXTtMZSYmKHdlLnB1c2goV2VbamUudmFsdWVdKSxwdChMZSkpfSl9O3JldHVybiBIZShLZSksd2V9LG5yPWZ1bmN0aW9uKEtlKXtyZXR1cm4gS2U9PW51bGx9LG5lPWkoNTY3OTApLGs9e3dpZHRoOjAsaGVpZ2h0OjAsZGlzcGxheToiZmxleCIsb3ZlcmZsb3c6ImhpZGRlbiIsb3BhY2l0eTowLGJvcmRlcjowLHBhZGRpbmc6MCxtYXJnaW46MH0sJGU9ZnVuY3Rpb24oS2UsamUpe3ZhciB3ZT0oMCxVLmxrKSgpLEhlPXdlLnByZWZpeENscyxwdD13ZS5tdWx0aXBsZSxrZT13ZS5zZWFyY2hWYWx1ZSxXZT13ZS50b2dnbGVPcGVuLExlPXdlLm9wZW4sTnQ9d2Uubm90Rm91bmRDb250ZW50LEd0PXMudXNlQ29udGV4dCh6dCksbG49R3QudmlydHVhbCxoZT1HdC5saXN0SGVpZ2h0LHRyPUd0Lmxpc3RJdGVtSGVpZ2h0LE5uPUd0Lmxpc3RJdGVtU2Nyb2xsT2Zmc2V0LHdyPUd0LnRyZWVEYXRhLGxyPUd0LmZpZWxkTmFtZXMsVnI9R3Qub25TZWxlY3QsbGE9R3QuZHJvcGRvd25NYXRjaFNlbGVjdFdpZHRoLF9yPUd0LnRyZWVFeHBhbmRBY3Rpb24sU2E9R3QudHJlZVRpdGxlUmVuZGVyLERyPUd0Lm9uUG9wdXBTY3JvbGwscHI9R3QubGVmdE1heENvdW50LFVhPUd0LmxlYWZDb3VudE9ubHksc2E9R3QudmFsdWVFbnRpdGllcyxhcj1zLnVzZUNvbnRleHQoTHQpLGZhPWFyLmNoZWNrYWJsZSxDcj1hci5jaGVja2VkS2V5cyxEYT1hci5oYWxmQ2hlY2tlZEtleXMsTnI9YXIudHJlZUV4cGFuZGVkS2V5cyx2YT1hci50cmVlRGVmYXVsdEV4cGFuZEFsbCxYYT1hci50cmVlRGVmYXVsdEV4cGFuZGVkS2V5cyxGcj1hci5vblRyZWVFeHBhbmQsSz1hci50cmVlSWNvbixQYT1hci5zaG93VHJlZUljb24sTmE9YXIuc3dpdGNoZXJJY29uLEdhPWFyLnRyZWVMaW5lLGZyPWFyLnRyZWVOb2RlRmlsdGVyUHJvcCxtYT1hci5sb2FkRGF0YSxUcj1hci50cmVlTG9hZGVkS2V5cyxRYT1hci50cmVlTW90aW9uLEphPWFyLm9uVHJlZUxvYWQscWE9YXIua2V5RW50aXRpZXMsanI9cy51c2VSZWYoKSxnYT0oMCxqdC5aKShmdW5jdGlvbigpe3JldHVybiB3cn0sW0xlLHdyXSxmdW5jdGlvbihFbixtbil7cmV0dXJuIG1uWzBdJiZFblsxXSE9PW1uWzFdfSksQXI9cy51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJuIGZhP3tjaGVja2VkOkNyLGhhbGZDaGVja2VkOkRhfTpudWxsfSxbZmEsQ3IsRGFdKTtzLnVzZUVmZmVjdChmdW5jdGlvbigpe2lmKExlJiYhcHQmJkNyLmxlbmd0aCl7dmFyIEVuOyhFbj1qci5jdXJyZW50KT09PW51bGx8fEVuPT09dm9pZCAwfHxFbi5zY3JvbGxUbyh7a2V5OkNyWzBdfSl9fSxbTGVdKTt2YXIgaHI9ZnVuY3Rpb24obW4pe21uLnByZXZlbnREZWZhdWx0KCl9LGhhPWZ1bmN0aW9uKG1uLHVyKXt2YXIgem49dXIubm9kZTtmYSYmWm4oem4pfHwoVnIoem4ua2V5LHtzZWxlY3RlZDohQ3IuaW5jbHVkZXMoem4ua2V5KX0pLHB0fHxXZSghMSkpfSxlYT1zLnVzZVN0YXRlKFhhKSxGYT0oMCxSLlopKGVhLDIpLHdhPUZhWzBdLFhyPUZhWzFdLE9yPXMudXNlU3RhdGUobnVsbCksdnI9KDAsUi5aKShPciwyKSxUYT12clswXSxPYT12clsxXSxXbj1zLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4gTnI/KDAsSS5aKShOcik6a2U/VGE6d2F9LFt3YSxUYSxOcixrZV0pLHRhPWZ1bmN0aW9uKG1uKXtYcihtbiksT2EobW4pLEZyJiZGcihtbil9LGphPVN0cmluZyhrZSkudG9Mb3dlckNhc2UoKSxFcj1mdW5jdGlvbihtbil7cmV0dXJuIGphP1N0cmluZyhtbltmcl0pLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoamEpOiExfTtzLnVzZUVmZmVjdChmdW5jdGlvbigpe2tlJiZPYShMbih3cixscikpfSxba2VdKTt2YXIgU3I9cy51c2VTdGF0ZShmdW5jdGlvbigpe3JldHVybiBuZXcgTWFwfSksQWE9KDAsUi5aKShTciwyKSxHcj1BYVswXSxmbz1BYVsxXTtzLnVzZUVmZmVjdChmdW5jdGlvbigpe3ByJiZmbyhuZXcgTWFwKX0sW3ByXSk7ZnVuY3Rpb24gbmEoRW4pe3ZhciBtbj1Fbltsci52YWx1ZV07aWYoIUdyLmhhcyhtbikpe3ZhciB1cj1zYS5nZXQobW4pLHpuPSh1ci5jaGlsZHJlbnx8W10pLmxlbmd0aD09PTA7aWYoem4pR3Iuc2V0KG1uLCExKTtlbHNle3ZhciBtcj11ci5jaGlsZHJlbi5maWx0ZXIoZnVuY3Rpb24oUHIpe3JldHVybiFQci5ub2RlLmRpc2FibGVkJiYhUHIubm9kZS5kaXNhYmxlQ2hlY2tib3gmJiFDci5pbmNsdWRlcyhQci5ub2RlW2xyLnZhbHVlXSl9KSxXcj1tci5sZW5ndGg7R3Iuc2V0KG1uLFdyPnByKX19cmV0dXJuIEdyLmdldChtbil9dmFyIHNyPSgwLG5lLnpYKShmdW5jdGlvbihFbil7dmFyIG1uPUVuW2xyLnZhbHVlXTtyZXR1cm4gQ3IuaW5jbHVkZXMobW4pfHxwcj09PW51bGw/ITE6cHI8PTA/ITA6VWEmJnByP25hKEVuKTohMX0pLHZvPWZ1bmN0aW9uIEVuKG1uKXt2YXIgdXI9KDAsd3QuWikobW4pLHpuO3RyeXtmb3IodXIucygpOyEoem49dXIubigpKS5kb25lOyl7dmFyIG1yPXpuLnZhbHVlO2lmKCEobXIuZGlzYWJsZWR8fG1yLnNlbGVjdGFibGU9PT0hMSkpe2lmKGtlKXtpZihFcihtcikpcmV0dXJuIG1yfWVsc2UgcmV0dXJuIG1yO2lmKG1yW2xyLmNoaWxkcmVuXSl7dmFyIFdyPUVuKG1yW2xyLmNoaWxkcmVuXSk7aWYoV3IpcmV0dXJuIFdyfX19fWNhdGNoKFByKXt1ci5lKFByKX1maW5hbGx5e3VyLmYoKX1yZXR1cm4gbnVsbH0sX2E9cy51c2VTdGF0ZShudWxsKSxIYT0oMCxSLlopKF9hLDIpLEVhPUhhWzBdLEJyPUhhWzFdLElyPXFhW0VhXTtzLnVzZUVmZmVjdChmdW5jdGlvbigpe2lmKExlKXt2YXIgRW49bnVsbCxtbj1mdW5jdGlvbigpe3ZhciB6bj12byhnYSk7cmV0dXJuIHpuP3puW2xyLnZhbHVlXTpudWxsfTshcHQmJkNyLmxlbmd0aCYmIWtlP0VuPUNyWzBdOkVuPW1uKCksQnIoRW4pfX0sW0xlLGtlXSkscy51c2VJbXBlcmF0aXZlSGFuZGxlKGplLGZ1bmN0aW9uKCl7dmFyIEVuO3JldHVybntzY3JvbGxUbzooRW49anIuY3VycmVudCk9PT1udWxsfHxFbj09PXZvaWQgMD92b2lkIDA6RW4uc2Nyb2xsVG8sb25LZXlEb3duOmZ1bmN0aW9uKHVyKXt2YXIgem4sbXI9dXIud2hpY2g7c3dpdGNoKG1yKXtjYXNlIHJuLlouVVA6Y2FzZSBybi5aLkRPV046Y2FzZSBybi5aLkxFRlQ6Y2FzZSBybi5aLlJJR0hUOih6bj1qci5jdXJyZW50KT09PW51bGx8fHpuPT09dm9pZCAwfHx6bi5vbktleURvd24odXIpO2JyZWFrO2Nhc2Ugcm4uWi5FTlRFUjp7aWYoSXIpe3ZhciBXcj1zcihJci5ub2RlKSxQcj0oSXI9PW51bGw/dm9pZCAwOklyLm5vZGUpfHx7fSxMYT1Qci5zZWxlY3RhYmxlLHpyPVByLnZhbHVlLEluPVByLmRpc2FibGVkO0xhIT09ITEmJiFJbiYmIVdyJiZoYShudWxsLHtub2RlOntrZXk6RWF9LHNlbGVjdGVkOiFDci5pbmNsdWRlcyh6cil9KX1icmVha31jYXNlIHJuLlouRVNDOldlKCExKX19LG9uS2V5VXA6ZnVuY3Rpb24oKXt9fX0pO3ZhciBrYT0oMCxqdC5aKShmdW5jdGlvbigpe3JldHVybiFrZX0sW2tlLE5yfHx3YV0sZnVuY3Rpb24oRW4sbW4pe3ZhciB1cj0oMCxSLlopKEVuLDEpLHpuPXVyWzBdLG1yPSgwLFIuWikobW4sMiksV3I9bXJbMF0sUHI9bXJbMV07cmV0dXJuIHpuIT09V3ImJiEhKFdyfHxQcil9KSxicj1rYT9tYTpudWxsO2lmKGdhLmxlbmd0aD09PTApcmV0dXJuIHMuY3JlYXRlRWxlbWVudCgiZGl2Iix7cm9sZToibGlzdGJveCIsY2xhc3NOYW1lOiIiLmNvbmNhdChIZSwiLWVtcHR5Iiksb25Nb3VzZURvd246aHJ9LE50KTt2YXIgJHI9e2ZpZWxkTmFtZXM6bHJ9O3JldHVybiBUciYmKCRyLmxvYWRlZEtleXM9VHIpLFduJiYoJHIuZXhwYW5kZWRLZXlzPVduKSxzLmNyZWF0ZUVsZW1lbnQoImRpdiIse29uTW91c2VEb3duOmhyfSxJciYmTGUmJnMuY3JlYXRlRWxlbWVudCgic3BhbiIse3N0eWxlOmssImFyaWEtbGl2ZSI6ImFzc2VydGl2ZSJ9LElyLm5vZGUudmFsdWUpLHMuY3JlYXRlRWxlbWVudChXdC55Ni5Qcm92aWRlcix7dmFsdWU6e25vZGVEaXNhYmxlZDpzcn19LHMuY3JlYXRlRWxlbWVudChXdC5aUCwoMCxPLlopKHtyZWY6anIsZm9jdXNhYmxlOiExLHByZWZpeENsczoiIi5jb25jYXQoSGUsIi10cmVlIiksdHJlZURhdGE6Z2EsaGVpZ2h0OmhlLGl0ZW1IZWlnaHQ6dHIsaXRlbVNjcm9sbE9mZnNldDpObix2aXJ0dWFsOmxuIT09ITEmJmxhIT09ITEsbXVsdGlwbGU6cHQsaWNvbjpLLHNob3dJY29uOlBhLHN3aXRjaGVySWNvbjpOYSxzaG93TGluZTpHYSxsb2FkRGF0YTpicixtb3Rpb246UWEsYWN0aXZlS2V5OkVhLGNoZWNrYWJsZTpmYSxjaGVja1N0cmljdGx5OiEwLGNoZWNrZWRLZXlzOkFyLHNlbGVjdGVkS2V5czpmYT9bXTpDcixkZWZhdWx0RXhwYW5kQWxsOnZhLHRpdGxlUmVuZGVyOlNhfSwkcix7b25BY3RpdmVDaGFuZ2U6QnIsb25TZWxlY3Q6aGEsb25DaGVjazpoYSxvbkV4cGFuZDp0YSxvbkxvYWQ6SmEsZmlsdGVyVHJlZU5vZGU6RXIsZXhwYW5kQWN0aW9uOl9yLG9uU2Nyb2xsOkRyfSkpKSl9LE5lPXMuZm9yd2FyZFJlZigkZSksVGU9TmUsYXQ9IlNIT1dfQUxMIixPZT0iU0hPV19QQVJFTlQiLG10PSJTSE9XX0NISUxEIjtmdW5jdGlvbiBodChmZSxLZSxqZSx3ZSl7dmFyIEhlPW5ldyBTZXQoZmUpO3JldHVybiBLZT09PW10P2ZlLmZpbHRlcihmdW5jdGlvbihwdCl7dmFyIGtlPWplW3B0XTtyZXR1cm4ha2V8fCFrZS5jaGlsZHJlbnx8IWtlLmNoaWxkcmVuLnNvbWUoZnVuY3Rpb24oV2Upe3ZhciBMZT1XZS5ub2RlO3JldHVybiBIZS5oYXMoTGVbd2UudmFsdWVdKX0pfHwha2UuY2hpbGRyZW4uZXZlcnkoZnVuY3Rpb24oV2Upe3ZhciBMZT1XZS5ub2RlO3JldHVybiBabihMZSl8fEhlLmhhcyhMZVt3ZS52YWx1ZV0pfSl9KTpLZT09PU9lP2ZlLmZpbHRlcihmdW5jdGlvbihwdCl7dmFyIGtlPWplW3B0XSxXZT1rZT9rZS5wYXJlbnQ6bnVsbDtyZXR1cm4hV2V8fFpuKFdlLm5vZGUpfHwhSGUuaGFzKFdlLmtleSl9KTpmZX1mdW5jdGlvbiBGdChmZSl7dmFyIEtlPWZlLnNlYXJjaFBsYWNlaG9sZGVyLGplPWZlLnRyZWVDaGVja1N0cmljdGx5LHdlPWZlLnRyZWVDaGVja2FibGUsSGU9ZmUubGFiZWxJblZhbHVlLHB0PWZlLnZhbHVlLGtlPWZlLm11bHRpcGxlLFdlPWZlLnNob3dDaGVja2VkU3RyYXRlZ3ksTGU9ZmUubWF4Q291bnQ7d2FybmluZyghS2UsImBzZWFyY2hQbGFjZWhvbGRlcmAgaGFzIGJlZW4gcmVtb3ZlZC4iKSxqZSYmSGU9PT0hMSYmd2FybmluZyghMSwiYHRyZWVDaGVja1N0cmljdGx5YCB3aWxsIGZvcmNlIHNldCBgbGFiZWxJblZhbHVlYCB0byBgdHJ1ZWAuIiksKEhlfHxqZSkmJndhcm5pbmcodG9BcnJheShwdCkuZXZlcnkoZnVuY3Rpb24oTnQpe3JldHVybiBOdCYmX3R5cGVvZihOdCk9PT0ib2JqZWN0IiYmInZhbHVlImluIE50fSksIkludmFsaWQgcHJvcCBgdmFsdWVgIHN1cHBsaWVkIHRvIGBUcmVlU2VsZWN0YC4gWW91IHNob3VsZCB1c2UgeyBsYWJlbDogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIH0gb3IgW3sgbGFiZWw6IHN0cmluZywgdmFsdWU6IHN0cmluZyB8IG51bWJlciB9XSBpbnN0ZWFkLiIpLGplfHxrZXx8d2U/d2FybmluZyghcHR8fEFycmF5LmlzQXJyYXkocHQpLCJgdmFsdWVgIHNob3VsZCBiZSBhbiBhcnJheSB3aGVuIGBUcmVlU2VsZWN0YCBpcyBjaGVja2FibGUgb3IgbXVsdGlwbGUuIik6d2FybmluZyghQXJyYXkuaXNBcnJheShwdCksImB2YWx1ZWAgc2hvdWxkIG5vdCBiZSBhcnJheSB3aGVuIGBUcmVlU2VsZWN0YCBpcyBzaW5nbGUgbW9kZS4iKSxMZSYmKFdlPT09IlNIT1dfQUxMIiYmIWplfHxXZT09PSJTSE9XX1BBUkVOVCIpJiZ3YXJuaW5nKCExLCJgbWF4Q291bnRgIG5vdCB3b3JrIHdpdGggYHNob3dDaGVja2VkU3RyYXRlZ3k9U0hPV19BTExgICh3aGVuIGB0cmVlQ2hlY2tTdHJpY3RseT1mYWxzZWApIG9yIGBzaG93Q2hlY2tlZFN0cmF0ZWd5PVNIT1dfUEFSRU5UYC4iKX12YXIgJHQ9bnVsbCxBdD1bImlkIiwicHJlZml4Q2xzIiwidmFsdWUiLCJkZWZhdWx0VmFsdWUiLCJvbkNoYW5nZSIsIm9uU2VsZWN0Iiwib25EZXNlbGVjdCIsInNlYXJjaFZhbHVlIiwiaW5wdXRWYWx1ZSIsIm9uU2VhcmNoIiwiYXV0b0NsZWFyU2VhcmNoVmFsdWUiLCJmaWx0ZXJUcmVlTm9kZSIsInRyZWVOb2RlRmlsdGVyUHJvcCIsInNob3dDaGVja2VkU3RyYXRlZ3kiLCJ0cmVlTm9kZUxhYmVsUHJvcCIsIm11bHRpcGxlIiwidHJlZUNoZWNrYWJsZSIsInRyZWVDaGVja1N0cmljdGx5IiwibGFiZWxJblZhbHVlIiwibWF4Q291bnQiLCJmaWVsZE5hbWVzIiwidHJlZURhdGFTaW1wbGVNb2RlIiwidHJlZURhdGEiLCJjaGlsZHJlbiIsImxvYWREYXRhIiwidHJlZUxvYWRlZEtleXMiLCJvblRyZWVMb2FkIiwidHJlZURlZmF1bHRFeHBhbmRBbGwiLCJ0cmVlRXhwYW5kZWRLZXlzIiwidHJlZURlZmF1bHRFeHBhbmRlZEtleXMiLCJvblRyZWVFeHBhbmQiLCJ0cmVlRXhwYW5kQWN0aW9uIiwidmlydHVhbCIsImxpc3RIZWlnaHQiLCJsaXN0SXRlbUhlaWdodCIsImxpc3RJdGVtU2Nyb2xsT2Zmc2V0Iiwib25Ecm9wZG93blZpc2libGVDaGFuZ2UiLCJkcm9wZG93bk1hdGNoU2VsZWN0V2lkdGgiLCJ0cmVlTGluZSIsInRyZWVJY29uIiwic2hvd1RyZWVJY29uIiwic3dpdGNoZXJJY29uIiwidHJlZU1vdGlvbiIsInRyZWVUaXRsZVJlbmRlciIsIm9uUG9wdXBTY3JvbGwiXTtmdW5jdGlvbiBCdChmZSl7cmV0dXJuIWZlfHwoMCxMLlopKGZlKSE9PSJvYmplY3QifXZhciBEdD1zLmZvcndhcmRSZWYoZnVuY3Rpb24oZmUsS2Upe3ZhciBqZT1mZS5pZCx3ZT1mZS5wcmVmaXhDbHMsSGU9d2U9PT12b2lkIDA/InJjLXRyZWUtc2VsZWN0Ijp3ZSxwdD1mZS52YWx1ZSxrZT1mZS5kZWZhdWx0VmFsdWUsV2U9ZmUub25DaGFuZ2UsTGU9ZmUub25TZWxlY3QsTnQ9ZmUub25EZXNlbGVjdCxHdD1mZS5zZWFyY2hWYWx1ZSxsbj1mZS5pbnB1dFZhbHVlLGhlPWZlLm9uU2VhcmNoLHRyPWZlLmF1dG9DbGVhclNlYXJjaFZhbHVlLE5uPXRyPT09dm9pZCAwPyEwOnRyLHdyPWZlLmZpbHRlclRyZWVOb2RlLGxyPWZlLnRyZWVOb2RlRmlsdGVyUHJvcCxWcj1scj09PXZvaWQgMD8idmFsdWUiOmxyLGxhPWZlLnNob3dDaGVja2VkU3RyYXRlZ3ksX3I9ZmUudHJlZU5vZGVMYWJlbFByb3AsU2E9ZmUubXVsdGlwbGUsRHI9ZmUudHJlZUNoZWNrYWJsZSxwcj1mZS50cmVlQ2hlY2tTdHJpY3RseSxVYT1mZS5sYWJlbEluVmFsdWUsc2E9ZmUubWF4Q291bnQsYXI9ZmUuZmllbGROYW1lcyxmYT1mZS50cmVlRGF0YVNpbXBsZU1vZGUsQ3I9ZmUudHJlZURhdGEsRGE9ZmUuY2hpbGRyZW4sTnI9ZmUubG9hZERhdGEsdmE9ZmUudHJlZUxvYWRlZEtleXMsWGE9ZmUub25UcmVlTG9hZCxGcj1mZS50cmVlRGVmYXVsdEV4cGFuZEFsbCxLPWZlLnRyZWVFeHBhbmRlZEtleXMsUGE9ZmUudHJlZURlZmF1bHRFeHBhbmRlZEtleXMsTmE9ZmUub25UcmVlRXhwYW5kLEdhPWZlLnRyZWVFeHBhbmRBY3Rpb24sZnI9ZmUudmlydHVhbCxtYT1mZS5saXN0SGVpZ2h0LFRyPW1hPT09dm9pZCAwPzIwMDptYSxRYT1mZS5saXN0SXRlbUhlaWdodCxKYT1RYT09PXZvaWQgMD8yMDpRYSxxYT1mZS5saXN0SXRlbVNjcm9sbE9mZnNldCxqcj1xYT09PXZvaWQgMD8wOnFhLGdhPWZlLm9uRHJvcGRvd25WaXNpYmxlQ2hhbmdlLEFyPWZlLmRyb3Bkb3duTWF0Y2hTZWxlY3RXaWR0aCxocj1Bcj09PXZvaWQgMD8hMDpBcixoYT1mZS50cmVlTGluZSxlYT1mZS50cmVlSWNvbixGYT1mZS5zaG93VHJlZUljb24sd2E9ZmUuc3dpdGNoZXJJY29uLFhyPWZlLnRyZWVNb3Rpb24sT3I9ZmUudHJlZVRpdGxlUmVuZGVyLHZyPWZlLm9uUG9wdXBTY3JvbGwsVGE9KDAsRi5aKShmZSxBdCksT2E9KDAsZGUuWlApKGplKSxXbj1EciYmIXByLHRhPURyfHxwcixqYT1wcnx8VWEsRXI9dGF8fFNhLFNyPSgwLGouWikoa2Use3ZhbHVlOnB0fSksQWE9KDAsUi5aKShTciwyKSxHcj1BYVswXSxmbz1BYVsxXSxuYT1zLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4gRHI/bGF8fG10OmF0fSxbbGEsRHJdKSxzcj1zLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4gVnQoYXIpfSxbSlNPTi5zdHJpbmdpZnkoYXIpXSksdm89KDAsai5aKSgiIix7dmFsdWU6R3QhPT12b2lkIDA/R3Q6bG4scG9zdFN0YXRlOmZ1bmN0aW9uKCRuKXtyZXR1cm4gJG58fCIifX0pLF9hPSgwLFIuWikodm8sMiksSGE9X2FbMF0sRWE9X2FbMV0sQnI9ZnVuY3Rpb24oJG4pe0VhKCRuKSxoZT09bnVsbHx8aGUoJG4pfSxJcj1fZShDcixEYSxmYSksa2E9bGUoSXIsc3IpLGJyPWthLmtleUVudGl0aWVzLCRyPWthLnZhbHVlRW50aXRpZXMsRW49cy51c2VDYWxsYmFjayhmdW5jdGlvbih4bil7dmFyICRuPVtdLEZuPVtdO3JldHVybiB4bi5mb3JFYWNoKGZ1bmN0aW9uKFZuKXskci5oYXMoVm4pP0ZuLnB1c2goVm4pOiRuLnB1c2goVm4pfSkse21pc3NpbmdSYXdWYWx1ZXM6JG4sZXhpc3RSYXdWYWx1ZXM6Rm59fSxbJHJdKSxtbj1HKElyLEhhLHtmaWVsZE5hbWVzOnNyLHRyZWVOb2RlRmlsdGVyUHJvcDpWcixmaWx0ZXJUcmVlTm9kZTp3cn0pLHVyPXMudXNlQ2FsbGJhY2soZnVuY3Rpb24oeG4pe2lmKHhuKXtpZihfcilyZXR1cm4geG5bX3JdO2Zvcih2YXIgJG49c3IuX3RpdGxlLEZuPTA7Rm48JG4ubGVuZ3RoO0ZuKz0xKXt2YXIgVm49eG5bJG5bRm5dXTtpZihWbiE9PXZvaWQgMClyZXR1cm4gVm59fX0sW3NyLF9yXSksem49cy51c2VDYWxsYmFjayhmdW5jdGlvbih4bil7dmFyICRuPUt0KHhuKTtyZXR1cm4gJG4ubWFwKGZ1bmN0aW9uKEZuKXtyZXR1cm4gQnQoRm4pP3t2YWx1ZTpGbn06Rm59KX0sW10pLG1yPXMudXNlQ2FsbGJhY2soZnVuY3Rpb24oeG4pe3ZhciAkbj16bih4bik7cmV0dXJuICRuLm1hcChmdW5jdGlvbihGbil7dmFyIFZuPUZuLmxhYmVsLEhyPUZuLnZhbHVlLGpuPUZuLmhhbGZDaGVja2VkLEduLFFuPSRyLmdldChIcik7aWYoUW4pe3ZhciBLcjtWbj1Pcj9PcihRbi5ub2RlKTooS3I9Vm4pIT09bnVsbCYmS3IhPT12b2lkIDA/S3I6dXIoUW4ubm9kZSksR249UW4ubm9kZS5kaXNhYmxlZH1lbHNlIGlmKFZuPT09dm9pZCAwKXt2YXIgSWE9em4oR3IpLmZpbmQoZnVuY3Rpb24oaG8pe3JldHVybiBoby52YWx1ZT09PUhyfSk7Vm49SWEubGFiZWx9cmV0dXJue2xhYmVsOlZuLHZhbHVlOkhyLGhhbGZDaGVja2VkOmpuLGRpc2FibGVkOkdufX0pfSxbJHIsdXIsem4sR3JdKSxXcj1zLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4gem4oR3I9PT1udWxsP1tdOkdyKX0sW3puLEdyXSksUHI9cy51c2VNZW1vKGZ1bmN0aW9uKCl7dmFyIHhuPVtdLCRuPVtdO3JldHVybiBXci5mb3JFYWNoKGZ1bmN0aW9uKEZuKXtGbi5oYWxmQ2hlY2tlZD8kbi5wdXNoKEZuKTp4bi5wdXNoKEZuKX0pLFt4biwkbl19LFtXcl0pLExhPSgwLFIuWikoUHIsMiksenI9TGFbMF0sSW49TGFbMV0sVWk9cy51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJuIHpyLm1hcChmdW5jdGlvbih4bil7cmV0dXJuIHhuLnZhbHVlfSl9LFt6cl0pLHlpPXZlKHpyLEluLFduLGJyKSxDaT0oMCxSLlopKHlpLDIpLFZhPUNpWzBdLG1vPUNpWzFdLHhpPXMudXNlTWVtbyhmdW5jdGlvbigpe3ZhciB4bj1odChWYSxuYSxicixzciksJG49eG4ubWFwKGZ1bmN0aW9uKGpuKXt2YXIgR24sUW47cmV0dXJuKEduPShRbj1icltqbl0pPT09bnVsbHx8UW49PT12b2lkIDB8fChRbj1Rbi5ub2RlKT09PW51bGx8fFFuPT09dm9pZCAwP3ZvaWQgMDpRbltzci52YWx1ZV0pIT09bnVsbCYmR24hPT12b2lkIDA/R246am59KSxGbj0kbi5tYXAoZnVuY3Rpb24oam4pe3ZhciBHbj16ci5maW5kKGZ1bmN0aW9uKEtyKXtyZXR1cm4gS3IudmFsdWU9PT1qbn0pLFFuPVVhP0duPT1udWxsP3ZvaWQgMDpHbi5sYWJlbDpPcj09bnVsbD92b2lkIDA6T3IoR24pO3JldHVybnt2YWx1ZTpqbixsYWJlbDpRbn19KSxWbj1tcihGbiksSHI9Vm5bMF07cmV0dXJuIUVyJiZIciYmbnIoSHIudmFsdWUpJiZucihIci5sYWJlbCk/W106Vm4ubWFwKGZ1bmN0aW9uKGpuKXt2YXIgR247cmV0dXJuKDAsJC5aKSgoMCwkLlopKHt9LGpuKSx7fSx7bGFiZWw6KEduPWpuLmxhYmVsKSE9PW51bGwmJkduIT09dm9pZCAwP0duOmpuLnZhbHVlfSl9KX0sW3NyLEVyLFZhLHpyLG1yLG5hLGJyXSksWGk9bWUoeGkpLEdpPSgwLFIuWikoWGksMSksZ289R2lbMF0sTW89cy51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJuIEVyJiYobmE9PT0iU0hPV19DSElMRCJ8fHByfHwhRHIpP3NhOm51bGx9LFtzYSxFcixwcixuYSxEcl0pLGVvPXRlKGZ1bmN0aW9uKHhuLCRuLEZuKXt2YXIgVm49aHQoeG4sbmEsYnIsc3IpO2lmKCEoTW8mJlZuLmxlbmd0aD5Nbykpe3ZhciBIcj1tcih4bik7aWYoZm8oSHIpLE5uJiZFYSgiIiksV2Upe3ZhciBqbj14bjtXbiYmKGpuPVZuLm1hcChmdW5jdGlvbih1YSl7dmFyIHBhPSRyLmdldCh1YSk7cmV0dXJuIHBhP3BhLm5vZGVbc3IudmFsdWVdOnVhfSkpO3ZhciBHbj0kbnx8e3RyaWdnZXJWYWx1ZTp2b2lkIDAsc2VsZWN0ZWQ6dm9pZCAwfSxRbj1Hbi50cmlnZ2VyVmFsdWUsS3I9R24uc2VsZWN0ZWQsSWE9am47aWYocHIpe3ZhciBobz1Jbi5maWx0ZXIoZnVuY3Rpb24odWEpe3JldHVybiFqbi5pbmNsdWRlcyh1YS52YWx1ZSl9KTtJYT1bXS5jb25jYXQoKDAsSS5aKShJYSksKDAsSS5aKShobykpfXZhciBwbz1tcihJYSksSm49e3ByZVZhbHVlOnpyLHRyaWdnZXJWYWx1ZTpRbn0sdG89ITA7KHByfHxGbj09PSJzZWxlY3Rpb24iJiYhS3IpJiYodG89ITEpLEN0KEpuLFFuLHhuLElyLHRvLHNyKSx0YT9Kbi5jaGVja2VkPUtyOkpuLnNlbGVjdGVkPUtyO3ZhciBEbz1qYT9wbzpwby5tYXAoZnVuY3Rpb24odWEpe3JldHVybiB1YS52YWx1ZX0pO1dlKEVyP0RvOkRvWzBdLGphP251bGw6cG8ubWFwKGZ1bmN0aW9uKHVhKXtyZXR1cm4gdWEubGFiZWx9KSxKbil9fX0pLFpvPXMudXNlQ2FsbGJhY2soZnVuY3Rpb24oeG4sJG4pe3ZhciBGbixWbj0kbi5zZWxlY3RlZCxIcj0kbi5zb3VyY2Usam49YnJbeG5dLEduPWpuPT1udWxsP3ZvaWQgMDpqbi5ub2RlLFFuPShGbj1Hbj09bnVsbD92b2lkIDA6R25bc3IudmFsdWVdKSE9PW51bGwmJkZuIT09dm9pZCAwP0ZuOnhuO2lmKCFFcillbyhbUW5dLHtzZWxlY3RlZDohMCx0cmlnZ2VyVmFsdWU6UW59LCJvcHRpb24iKTtlbHNle3ZhciBLcj1Wbj9bXS5jb25jYXQoKDAsSS5aKShVaSksW1FuXSk6VmEuZmlsdGVyKGZ1bmN0aW9uKHBhKXtyZXR1cm4gcGEhPT1Rbn0pO2lmKFduKXt2YXIgSWE9RW4oS3IpLGhvPUlhLm1pc3NpbmdSYXdWYWx1ZXMscG89SWEuZXhpc3RSYXdWYWx1ZXMsSm49cG8ubWFwKGZ1bmN0aW9uKHBhKXtyZXR1cm4gJHIuZ2V0KHBhKS5rZXl9KSx0bztpZihWbil7dmFyIERvPSgwLG8uUykoSm4sITAsYnIpO3RvPURvLmNoZWNrZWRLZXlzfWVsc2V7dmFyIHVhPSgwLG8uUykoSm4se2NoZWNrZWQ6ITEsaGFsZkNoZWNrZWRLZXlzOm1vfSxicik7dG89dWEuY2hlY2tlZEtleXN9S3I9W10uY29uY2F0KCgwLEkuWikoaG8pLCgwLEkuWikodG8ubWFwKGZ1bmN0aW9uKHBhKXtyZXR1cm4gYnJbcGFdLm5vZGVbc3IudmFsdWVdfSkpKX1lbyhLcix7c2VsZWN0ZWQ6Vm4sdHJpZ2dlclZhbHVlOlFufSxIcnx8Im9wdGlvbiIpfVZufHwhRXI/TGU9PW51bGx8fExlKFFuLHJ0KEduKSk6TnQ9PW51bGx8fE50KFFuLHJ0KEduKSl9LFtFbiwkcixicixzcixFcixVaSxlbyxXbixMZSxOdCxWYSxtbyxzYV0pLEJhPXMudXNlQ2FsbGJhY2soZnVuY3Rpb24oeG4pe2lmKGdhKXt2YXIgJG49e307T2JqZWN0LmRlZmluZVByb3BlcnR5KCRuLCJkb2N1bWVudENsaWNrQ2xvc2UiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4oMCxEZS5aUCkoITEsIlNlY29uZCBwYXJhbSBvZiBgb25Ecm9wZG93blZpc2libGVDaGFuZ2VgIGhhcyBiZWVuIHJlbW92ZWQuIiksITF9fSksZ2EoeG4sJG4pfX0sW2dhXSksUW89dGUoZnVuY3Rpb24oeG4sJG4pe3ZhciBGbj14bi5tYXAoZnVuY3Rpb24oVm4pe3JldHVybiBWbi52YWx1ZX0pO2lmKCRuLnR5cGU9PT0iY2xlYXIiKXtlbyhGbix7fSwic2VsZWN0aW9uIik7cmV0dXJufSRuLnZhbHVlcy5sZW5ndGgmJlpvKCRuLnZhbHVlc1swXS52YWx1ZSx7c2VsZWN0ZWQ6ITEsc291cmNlOiJzZWxlY3Rpb24ifSl9KSxXYT1zLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm57dmlydHVhbDpmcixkcm9wZG93bk1hdGNoU2VsZWN0V2lkdGg6aHIsbGlzdEhlaWdodDpUcixsaXN0SXRlbUhlaWdodDpKYSxsaXN0SXRlbVNjcm9sbE9mZnNldDpqcix0cmVlRGF0YTptbixmaWVsZE5hbWVzOnNyLG9uU2VsZWN0OlpvLHRyZWVFeHBhbmRBY3Rpb246R2EsdHJlZVRpdGxlUmVuZGVyOk9yLG9uUG9wdXBTY3JvbGw6dnIsbGVmdE1heENvdW50OnNhPT09dm9pZCAwP251bGw6c2EtZ28ubGVuZ3RoLGxlYWZDb3VudE9ubHk6bmE9PT0iU0hPV19DSElMRCImJiFwciYmISFEcix2YWx1ZUVudGl0aWVzOiRyfX0sW2ZyLGhyLFRyLEphLGpyLG1uLHNyLFpvLEdhLE9yLHZyLHNhLGdvLmxlbmd0aCxuYSxwcixEciwkcl0pLFJvPXMudXNlTWVtbyhmdW5jdGlvbigpe3JldHVybntjaGVja2FibGU6dGEsbG9hZERhdGE6TnIsdHJlZUxvYWRlZEtleXM6dmEsb25UcmVlTG9hZDpYYSxjaGVja2VkS2V5czpWYSxoYWxmQ2hlY2tlZEtleXM6bW8sdHJlZURlZmF1bHRFeHBhbmRBbGw6RnIsdHJlZUV4cGFuZGVkS2V5czpLLHRyZWVEZWZhdWx0RXhwYW5kZWRLZXlzOlBhLG9uVHJlZUV4cGFuZDpOYSx0cmVlSWNvbjplYSx0cmVlTW90aW9uOlhyLHNob3dUcmVlSWNvbjpGYSxzd2l0Y2hlckljb246d2EsdHJlZUxpbmU6aGEsdHJlZU5vZGVGaWx0ZXJQcm9wOlZyLGtleUVudGl0aWVzOmJyfX0sW3RhLE5yLHZhLFhhLFZhLG1vLEZyLEssUGEsTmEsZWEsWHIsRmEsd2EsaGEsVnIsYnJdKTtyZXR1cm4gcy5jcmVhdGVFbGVtZW50KHp0LlByb3ZpZGVyLHt2YWx1ZTpXYX0scy5jcmVhdGVFbGVtZW50KEx0LlByb3ZpZGVyLHt2YWx1ZTpSb30scy5jcmVhdGVFbGVtZW50KFUuQWMsKDAsTy5aKSh7cmVmOktlfSxUYSx7aWQ6T2EscHJlZml4Q2xzOkhlLG1vZGU6RXI/Im11bHRpcGxlIjp2b2lkIDAsZGlzcGxheVZhbHVlczpnbyxvbkRpc3BsYXlWYWx1ZXNDaGFuZ2U6UW8sc2VhcmNoVmFsdWU6SGEsb25TZWFyY2g6QnIsT3B0aW9uTGlzdDpUZSxlbXB0eU9wdGlvbnM6IUlyLmxlbmd0aCxvbkRyb3Bkb3duVmlzaWJsZUNoYW5nZTpCYSxkcm9wZG93bk1hdGNoU2VsZWN0V2lkdGg6aHJ9KSkpKX0pLFllPUR0O1llLlRyZWVOb2RlPXplLFllLlNIT1dfQUxMPWF0LFllLlNIT1dfUEFSRU5UPU9lLFllLlNIT1dfQ0hJTEQ9bXQ7dmFyIGFuPVllLEh0PWFuLGhuPWkoOTg0MjMpLHF0PWkoODcyNjMpLHduPWkoMzM2MDMpLFR0PWkoODc0NSksWW49aSg5NzA4KSxVbj1pKDUzMTI0KSxzbj1pKDg4MjU4KSx2bj1pKDk4ODY2KSxIbj1pKDM1NzkyKSxsdD1pKDk4Njc1KSxxbj1pKDY1MjIzKSx0dD1pKDI3ODMzKSxQdD1pKDMwMzA3KSxSbj1pKDE1MDMwKSxYdD1pKDQzMjc3KSxYbj1pKDc4NjQyKSxEbj1pKDQxNzMpLHJyPWkoMjk2OTEpLF9uPWkoNjE2MzkpLHBuPWkoMTE1NjgpLGVyPWkoNjMxODUpLGJuPWkoODMyNjIpLHluPWkoODM1NTkpLGtuPWkoNDA1NjEpO2NvbnN0IG9uPWZlPT57Y29uc3R7Y29tcG9uZW50Q2xzOktlLHRyZWVQcmVmaXhDbHM6amUsY29sb3JCZ0VsZXZhdGVkOndlfT1mZSxIZT1gLiR7amV9YDtyZXR1cm5be1tgJHtLZX0tZHJvcGRvd25gXTpbe3BhZGRpbmc6YCR7KDAscG4uYmYpKGZlLnBhZGRpbmdYUyl9ICR7KDAscG4uYmYpKGZlLmNhbGMoZmUucGFkZGluZ1hTKS5kaXYoMikuZXF1YWwoKSl9YH0sKDAsa24uWWspKGplLCgwLGJuLklYKShmZSx7Y29sb3JCZ0NvbnRhaW5lcjp3ZX0pKSx7W0hlXTp7Ym9yZGVyUmFkaXVzOjAsW2Ake0hlfS1saXN0LWhvbGRlci1pbm5lcmBdOnthbGlnbkl0ZW1zOiJzdHJldGNoIixbYCR7SGV9LXRyZWVub2RlYF06e1tgJHtIZX0tbm9kZS1jb250ZW50LXdyYXBwZXJgXTp7ZmxleDoiYXV0byJ9fX19fSwoMCxlci5DMikoYCR7amV9LWNoZWNrYm94YCxmZSkseyImLXJ0bCI6e2RpcmVjdGlvbjoicnRsIixbYCR7SGV9LXN3aXRjaGVyJHtIZX0tc3dpdGNoZXJfY2xvc2VgXTp7W2Ake0hlfS1zd2l0Y2hlci1pY29uIHN2Z2BdOnt0cmFuc2Zvcm06InJvdGF0ZSg5MGRlZykifX19fV19XX0sdW49bnVsbDtmdW5jdGlvbiBjbihmZSxLZSxqZSl7cmV0dXJuKDAseW4uSSQpKCJUcmVlU2VsZWN0Iix3ZT0+e2NvbnN0IEhlPSgwLGJuLklYKSh3ZSx7dHJlZVByZWZpeENsczpLZX0pO3JldHVybltvbihIZSldfSxrbi5UTSkoZmUsamUpfXZhciBPbj1mdW5jdGlvbihmZSxLZSl7dmFyIGplPXt9O2Zvcih2YXIgd2UgaW4gZmUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGZlLHdlKSYmS2UuaW5kZXhPZih3ZSk8MCYmKGplW3dlXT1mZVt3ZV0pO2lmKGZlIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIEhlPTAsd2U9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhmZSk7SGU8d2UubGVuZ3RoO0hlKyspS2UuaW5kZXhPZih3ZVtIZV0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChmZSx3ZVtIZV0pJiYoamVbd2VbSGVdXT1mZVt3ZVtIZV1dKTtyZXR1cm4gamV9O2NvbnN0IENuPShmZSxLZSk9Pnt2YXIgamU7Y29uc3R7cHJlZml4Q2xzOndlLHNpemU6SGUsZGlzYWJsZWQ6cHQsYm9yZGVyZWQ6a2U9ITAsY2xhc3NOYW1lOldlLHJvb3RDbGFzc05hbWU6TGUsdHJlZUNoZWNrYWJsZTpOdCxtdWx0aXBsZTpHdCxsaXN0SGVpZ2h0OmxuPTI1NixsaXN0SXRlbUhlaWdodDpoZSxwbGFjZW1lbnQ6dHIsbm90Rm91bmRDb250ZW50Ok5uLHN3aXRjaGVySWNvbjp3cix0cmVlTGluZTpscixnZXRQb3B1cENvbnRhaW5lcjpWcixwb3B1cENsYXNzTmFtZTpsYSxkcm9wZG93bkNsYXNzTmFtZTpfcix0cmVlSWNvbjpTYT0hMSx0cmFuc2l0aW9uTmFtZTpEcixjaG9pY2VUcmFuc2l0aW9uTmFtZTpwcj0iIixzdGF0dXM6VWEsdHJlZUV4cGFuZEFjdGlvbjpzYSxidWlsdGluUGxhY2VtZW50czphcixkcm9wZG93bk1hdGNoU2VsZWN0V2lkdGg6ZmEscG9wdXBNYXRjaFNlbGVjdFdpZHRoOkNyLGFsbG93Q2xlYXI6RGEsdmFyaWFudDpOcixkcm9wZG93blN0eWxlOnZhLHRhZ1JlbmRlcjpYYSxtYXhDb3VudDpGcixzaG93Q2hlY2tlZFN0cmF0ZWd5OkssdHJlZUNoZWNrU3RyaWN0bHk6UGF9PWZlLE5hPU9uKGZlLFsicHJlZml4Q2xzIiwic2l6ZSIsImRpc2FibGVkIiwiYm9yZGVyZWQiLCJjbGFzc05hbWUiLCJyb290Q2xhc3NOYW1lIiwidHJlZUNoZWNrYWJsZSIsIm11bHRpcGxlIiwibGlzdEhlaWdodCIsImxpc3RJdGVtSGVpZ2h0IiwicGxhY2VtZW50Iiwibm90Rm91bmRDb250ZW50Iiwic3dpdGNoZXJJY29uIiwidHJlZUxpbmUiLCJnZXRQb3B1cENvbnRhaW5lciIsInBvcHVwQ2xhc3NOYW1lIiwiZHJvcGRvd25DbGFzc05hbWUiLCJ0cmVlSWNvbiIsInRyYW5zaXRpb25OYW1lIiwiY2hvaWNlVHJhbnNpdGlvbk5hbWUiLCJzdGF0dXMiLCJ0cmVlRXhwYW5kQWN0aW9uIiwiYnVpbHRpblBsYWNlbWVudHMiLCJkcm9wZG93bk1hdGNoU2VsZWN0V2lkdGgiLCJwb3B1cE1hdGNoU2VsZWN0V2lkdGgiLCJhbGxvd0NsZWFyIiwidmFyaWFudCIsImRyb3Bkb3duU3R5bGUiLCJ0YWdSZW5kZXIiLCJtYXhDb3VudCIsInNob3dDaGVja2VkU3RyYXRlZ3kiLCJ0cmVlQ2hlY2tTdHJpY3RseSJdKSx7Z2V0UG9wdXBDb250YWluZXI6R2EsZ2V0UHJlZml4Q2xzOmZyLHJlbmRlckVtcHR5Om1hLGRpcmVjdGlvbjpUcix2aXJ0dWFsOlFhLHBvcHVwTWF0Y2hTZWxlY3RXaWR0aDpKYSxwb3B1cE92ZXJmbG93OnFhfT1zLnVzZUNvbnRleHQoVW4uRV8pLFssanJdPSgwLHJyLlpQKSgpLGdhPWhlIT1udWxsP2hlOihqcj09bnVsbD92b2lkIDA6anIuY29udHJvbEhlaWdodFNNKSsoanI9PW51bGw/dm9pZCAwOmpyLnBhZGRpbmdYWFMpLEFyPWZyKCksaHI9ZnIoInNlbGVjdCIsd2UpLGhhPWZyKCJzZWxlY3QtdHJlZSIsd2UpLGVhPWZyKCJ0cmVlLXNlbGVjdCIsd2UpLHtjb21wYWN0U2l6ZTpGYSxjb21wYWN0SXRlbUNsYXNzbmFtZXM6d2F9PSgwLERuLnJpKShocixUciksWHI9KDAsSG4uWikoaHIpLE9yPSgwLEhuLlopKGVhKSxbdnIsVGEsT2FdPSgwLFJuLlopKGhyLFhyKSxbV25dPWNuKGVhLGhhLE9yKSxbdGEsamFdPSgwLHR0LlopKCJ0cmVlU2VsZWN0IixOcixrZSksRXI9YigpKGxhfHxfcixgJHtlYX0tZHJvcGRvd25gLHtbYCR7ZWF9LWRyb3Bkb3duLXJ0bGBdOlRyPT09InJ0bCJ9LExlLE9hLFhyLE9yLFRhKSxTcj0hIShOdHx8R3QpLEFhPXMudXNlTWVtbygoKT0+e2lmKCEoRnImJihLPT09IlNIT1dfQUxMIiYmIVBhfHxLPT09IlNIT1dfUEFSRU5UIikpKXJldHVybiBGcn0sW0ZyLEssUGFdKSxHcj0oMCxYbi5aKShmZS5zdWZmaXhJY29uLGZlLnNob3dBcnJvdyksZm89KGplPUNyIT1udWxsP0NyOmZhKSE9PW51bGwmJmplIT09dm9pZCAwP2plOkphLHtzdGF0dXM6bmEsaGFzRmVlZGJhY2s6c3IsaXNGb3JtSXRlbUlucHV0OnZvLGZlZWRiYWNrSWNvbjpfYX09cy51c2VDb250ZXh0KHFuLmFNKSxIYT0oMCxZbi5GKShuYSxVYSkse3N1ZmZpeEljb246RWEscmVtb3ZlSWNvbjpCcixjbGVhckljb246SXJ9PSgwLFh0LlopKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxOYSkse211bHRpcGxlOlNyLHNob3dTdWZmaXhJY29uOkdyLGhhc0ZlZWRiYWNrOnNyLGZlZWRiYWNrSWNvbjpfYSxwcmVmaXhDbHM6aHIsY29tcG9uZW50TmFtZToiVHJlZVNlbGVjdCJ9KSksa2E9RGE9PT0hMD97Y2xlYXJJY29uOklyfTpEYTtsZXQgYnI7Tm4hPT12b2lkIDA/YnI9Tm46YnI9KG1hPT1udWxsP3ZvaWQgMDptYSgiU2VsZWN0IikpfHxzLmNyZWF0ZUVsZW1lbnQoc24uWix7Y29tcG9uZW50TmFtZToiU2VsZWN0In0pO2NvbnN0ICRyPSgwLGhuLlopKE5hLFsic3VmZml4SWNvbiIsInJlbW92ZUljb24iLCJjbGVhckljb24iLCJpdGVtSWNvbiIsInN3aXRjaGVySWNvbiJdKSxFbj1zLnVzZU1lbW8oKCk9PnRyIT09dm9pZCAwP3RyOlRyPT09InJ0bCI/ImJvdHRvbVJpZ2h0IjoiYm90dG9tTGVmdCIsW3RyLFRyXSksbW49KDAsbHQuWikoenI9Pnt2YXIgSW47cmV0dXJuKEluPUhlIT1udWxsP0hlOkZhKSE9PW51bGwmJkluIT09dm9pZCAwP0luOnpyfSksdXI9cy51c2VDb250ZXh0KHZuLlopLHpuPXB0IT1udWxsP3B0OnVyLG1yPWIoKSghd2UmJmVhLHtbYCR7aHJ9LWxnYF06bW49PT0ibGFyZ2UiLFtgJHtocn0tc21gXTptbj09PSJzbWFsbCIsW2Ake2hyfS1ydGxgXTpUcj09PSJydGwiLFtgJHtocn0tJHt0YX1gXTpqYSxbYCR7aHJ9LWluLWZvcm0taXRlbWBdOnZvfSwoMCxZbi5aKShocixIYSxzciksd2EsV2UsTGUsT2EsWHIsT3IsVGEpLFdyPXpyPT5zLmNyZWF0ZUVsZW1lbnQoX24uWix7cHJlZml4Q2xzOmhhLHN3aXRjaGVySWNvbjp3cix0cmVlTm9kZVByb3BzOnpyLHNob3dMaW5lOmxyfSksW1ByXT0oMCxxdC5DbikoIlNlbGVjdExpa2UiLHZhPT1udWxsP3ZvaWQgMDp2YS56SW5kZXgpLExhPXMuY3JlYXRlRWxlbWVudChIdCxPYmplY3QuYXNzaWduKHt2aXJ0dWFsOlFhLGRpc2FibGVkOnpufSwkcix7ZHJvcGRvd25NYXRjaFNlbGVjdFdpZHRoOmZvLGJ1aWx0aW5QbGFjZW1lbnRzOigwLFB0LlopKGFyLHFhKSxyZWY6S2UscHJlZml4Q2xzOmhyLGNsYXNzTmFtZTptcixsaXN0SGVpZ2h0OmxuLGxpc3RJdGVtSGVpZ2h0OmdhLHRyZWVDaGVja2FibGU6TnQmJnMuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpgJHtocn0tdHJlZS1jaGVja2JveC1pbm5lcmB9KSx0cmVlTGluZTohIWxyLHN1ZmZpeEljb246RWEsbXVsdGlwbGU6U3IscGxhY2VtZW50OkVuLHJlbW92ZUljb246QnIsYWxsb3dDbGVhcjprYSxzd2l0Y2hlckljb246V3Isc2hvd1RyZWVJY29uOlNhLG5vdEZvdW5kQ29udGVudDpicixnZXRQb3B1cENvbnRhaW5lcjpWcnx8R2EsdHJlZU1vdGlvbjpudWxsLGRyb3Bkb3duQ2xhc3NOYW1lOkVyLGRyb3Bkb3duU3R5bGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHZhKSx7ekluZGV4OlByfSksY2hvaWNlVHJhbnNpdGlvbk5hbWU6KDAsd24ubSkoQXIsIiIscHIpLHRyYW5zaXRpb25OYW1lOigwLHduLm0pKEFyLCJzbGlkZS11cCIsRHIpLHRyZWVFeHBhbmRBY3Rpb246c2EsdGFnUmVuZGVyOlNyP1hhOnZvaWQgMCxtYXhDb3VudDpBYSxzaG93Q2hlY2tlZFN0cmF0ZWd5OkssdHJlZUNoZWNrU3RyaWN0bHk6UGF9KSk7cmV0dXJuIHZyKFduKExhKSl9LGRyPXMuZm9yd2FyZFJlZihDbiksZ3I9KDAsVHQuWikoZHIsImRyb3Bkb3duQWxpZ24iLGZlPT4oMCxobi5aKShmZSxbInZpc2libGUiXSkpO2RyLlRyZWVOb2RlPXplLGRyLlNIT1dfQUxMPWF0LGRyLlNIT1dfUEFSRU5UPU9lLGRyLlNIT1dfQ0hJTEQ9bXQsZHIuX0ludGVybmFsUGFuZWxEb05vdFVzZU9yWW91V2lsbEJlRmlyZWQ9Z3I7dmFyIHlyPWRyfSw1OTU0MjpmdW5jdGlvbihTKXsoZnVuY3Rpb24oWixpKXtTLmV4cG9ydHM9aSgpfSkodGhpcyxmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgWj0iZGF5IjtyZXR1cm4gZnVuY3Rpb24oaSxzLGcpe3ZhciBiPWZ1bmN0aW9uKCQpe3JldHVybiAkLmFkZCg0LSQuaXNvV2Vla2RheSgpLFopfSxPPXMucHJvdG90eXBlO08uaXNvV2Vla1llYXI9ZnVuY3Rpb24oKXtyZXR1cm4gYih0aGlzKS55ZWFyKCl9LE8uaXNvV2Vlaz1mdW5jdGlvbigkKXtpZighdGhpcy4kdXRpbHMoKS51KCQpKXJldHVybiB0aGlzLmFkZCg3KigkLXRoaXMuaXNvV2VlaygpKSxaKTt2YXIgUixGLEwsVSxkZT1iKHRoaXMpLG89KFI9dGhpcy5pc29XZWVrWWVhcigpLEY9dGhpcy4kdSxMPShGP2cudXRjOmcpKCkueWVhcihSKS5zdGFydE9mKCJ5ZWFyIiksVT00LUwuaXNvV2Vla2RheSgpLEwuaXNvV2Vla2RheSgpPjQmJihVKz03KSxMLmFkZChVLFopKTtyZXR1cm4gZGUuZGlmZihvLCJ3ZWVrIikrMX0sTy5pc29XZWVrZGF5PWZ1bmN0aW9uKCQpe3JldHVybiB0aGlzLiR1dGlscygpLnUoJCk/dGhpcy5kYXkoKXx8Nzp0aGlzLmRheSh0aGlzLmRheSgpJTc/JDokLTcpfTt2YXIgST1PLnN0YXJ0T2Y7Ty5zdGFydE9mPWZ1bmN0aW9uKCQsUil7dmFyIEY9dGhpcy4kdXRpbHMoKSxMPSEhRi51KFIpfHxSO3JldHVybiBGLnAoJCk9PT0iaXNvd2VlayI/TD90aGlzLmRhdGUodGhpcy5kYXRlKCktKHRoaXMuaXNvV2Vla2RheSgpLTEpKS5zdGFydE9mKCJkYXkiKTp0aGlzLmRhdGUodGhpcy5kYXRlKCktMS0odGhpcy5pc29XZWVrZGF5KCktMSkrNykuZW5kT2YoImRheSIpOkkuYmluZCh0aGlzKSgkLFIpfX19KX0sODQxMTA6ZnVuY3Rpb24oUyl7KGZ1bmN0aW9uKFosaSl7Uy5leHBvcnRzPWkoKX0pKHRoaXMsZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7cmV0dXJuIGZ1bmN0aW9uKFosaSxzKXtaPVp8fHt9O3ZhciBnPWkucHJvdG90eXBlLGI9e2Z1dHVyZToiaW4gJXMiLHBhc3Q6IiVzIGFnbyIsczoiYSBmZXcgc2Vjb25kcyIsbToiYSBtaW51dGUiLG1tOiIlZCBtaW51dGVzIixoOiJhbiBob3VyIixoaDoiJWQgaG91cnMiLGQ6ImEgZGF5IixkZDoiJWQgZGF5cyIsTToiYSBtb250aCIsTU06IiVkIG1vbnRocyIseToiYSB5ZWFyIix5eToiJWQgeWVhcnMifTtmdW5jdGlvbiBPKCQsUixGLEwpe3JldHVybiBnLmZyb21Ub0Jhc2UoJCxSLEYsTCl9cy5lbi5yZWxhdGl2ZVRpbWU9YixnLmZyb21Ub0Jhc2U9ZnVuY3Rpb24oJCxSLEYsTCxVKXtmb3IodmFyIGRlLG8saixEZT1GLiRsb2NhbGUoKS5yZWxhdGl2ZVRpbWV8fGIsbWU9Wi50aHJlc2hvbGRzfHxbe2w6InMiLHI6NDQsZDoic2Vjb25kIn0se2w6Im0iLHI6ODl9LHtsOiJtbSIscjo0NCxkOiJtaW51dGUifSx7bDoiaCIscjo4OX0se2w6ImhoIixyOjIxLGQ6ImhvdXIifSx7bDoiZCIscjozNX0se2w6ImRkIixyOjI1LGQ6ImRheSJ9LHtsOiJNIixyOjQ1fSx7bDoiTU0iLHI6MTAsZDoibW9udGgifSx7bDoieSIscjoxN30se2w6Inl5IixkOiJ5ZWFyIn1dLF89bWUubGVuZ3RoLHZlPTA7dmU8Xzt2ZSs9MSl7dmFyIGJlPW1lW3ZlXTtiZS5kJiYoZGU9TD9zKCQpLmRpZmYoRixiZS5kLCEwKTpGLmRpZmYoJCxiZS5kLCEwKSk7dmFyIGxlPShaLnJvdW5kaW5nfHxNYXRoLnJvdW5kKShNYXRoLmFicyhkZSkpO2lmKGo9ZGU+MCxsZTw9YmUucnx8IWJlLnIpe2xlPD0xJiZ2ZT4wJiYoYmU9bWVbdmUtMV0pO3ZhciBYZT1EZVtiZS5sXTtVJiYobGU9VSgiIitsZSkpLG89dHlwZW9mIFhlPT0ic3RyaW5nIj9YZS5yZXBsYWNlKCIlZCIsbGUpOlhlKGxlLFIsYmUubCxqKTticmVha319aWYoUilyZXR1cm4gbzt2YXIgb2U9aj9EZS5mdXR1cmU6RGUucGFzdDtyZXR1cm4gdHlwZW9mIG9lPT0iZnVuY3Rpb24iP29lKG8pOm9lLnJlcGxhY2UoIiVzIixvKX0sZy50bz1mdW5jdGlvbigkLFIpe3JldHVybiBPKCQsUix0aGlzLCEwKX0sZy5mcm9tPWZ1bmN0aW9uKCQsUil7cmV0dXJuIE8oJCxSLHRoaXMpfTt2YXIgST1mdW5jdGlvbigkKXtyZXR1cm4gJC4kdT9zLnV0YygpOnMoKX07Zy50b05vdz1mdW5jdGlvbigkKXtyZXR1cm4gdGhpcy50byhJKHRoaXMpLCQpfSxnLmZyb21Ob3c9ZnVuY3Rpb24oJCl7cmV0dXJuIHRoaXMuZnJvbShJKHRoaXMpLCQpfX19KX0sMTg1NTI6ZnVuY3Rpb24oUyxaLGkpe3ZhciBzPWkoMTA4NTIpLGc9aSg1NTYzOSksYj1zKGcsIkRhdGFWaWV3Iik7Uy5leHBvcnRzPWJ9LDE5ODk6ZnVuY3Rpb24oUyxaLGkpe3ZhciBzPWkoNTE3ODkpLGc9aSg4MDQwMSksYj1pKDU3NjY3KSxPPWkoMjEzMjcpLEk9aSg4MTg2Nik7ZnVuY3Rpb24gJChSKXt2YXIgRj0tMSxMPVI9PW51bGw/MDpSLmxlbmd0aDtmb3IodGhpcy5jbGVhcigpOysrRjxMOyl7dmFyIFU9UltGXTt0aGlzLnNldChVWzBdLFVbMV0pfX0kLnByb3RvdHlwZS5jbGVhcj1zLCQucHJvdG90eXBlLmRlbGV0ZT1nLCQucHJvdG90eXBlLmdldD1iLCQucHJvdG90eXBlLmhhcz1PLCQucHJvdG90eXBlLnNldD1JLFMuZXhwb3J0cz0kfSwzODQwNzpmdW5jdGlvbihTLFosaSl7dmFyIHM9aSgyNzA0MCksZz1pKDE0MTI1KSxiPWkoODIxMTcpLE89aSg2NzUxOCksST1pKDU0NzA1KTtmdW5jdGlvbiAkKFIpe3ZhciBGPS0xLEw9Uj09bnVsbD8wOlIubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytGPEw7KXt2YXIgVT1SW0ZdO3RoaXMuc2V0KFVbMF0sVVsxXSl9fSQucHJvdG90eXBlLmNsZWFyPXMsJC5wcm90b3R5cGUuZGVsZXRlPWcsJC5wcm90b3R5cGUuZ2V0PWIsJC5wcm90b3R5cGUuaGFzPU8sJC5wcm90b3R5cGUuc2V0PUksUy5leHBvcnRzPSR9LDU3MDcxOmZ1bmN0aW9uKFMsWixpKXt2YXIgcz1pKDEwODUyKSxnPWkoNTU2MzkpLGI9cyhnLCJNYXAiKTtTLmV4cG9ydHM9Yn0sODMzNjk6ZnVuY3Rpb24oUyxaLGkpe3ZhciBzPWkoMjQ3ODUpLGc9aSgxMTI4NSksYj1pKDk2ZTMpLE89aSg0OTkxNiksST1pKDk1MjY1KTtmdW5jdGlvbiAkKFIpe3ZhciBGPS0xLEw9Uj09bnVsbD8wOlIubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytGPEw7KXt2YXIgVT1SW0ZdO3RoaXMuc2V0KFVbMF0sVVsxXSl9fSQucHJvdG90eXBlLmNsZWFyPXMsJC5wcm90b3R5cGUuZGVsZXRlPWcsJC5wcm90b3R5cGUuZ2V0PWIsJC5wcm90b3R5cGUuaGFzPU8sJC5wcm90b3R5cGUuc2V0PUksUy5leHBvcnRzPSR9LDUzODE4OmZ1bmN0aW9uKFMsWixpKXt2YXIgcz1pKDEwODUyKSxnPWkoNTU2MzkpLGI9cyhnLCJQcm9taXNlIik7Uy5leHBvcnRzPWJ9LDU4NTI1OmZ1bmN0aW9uKFMsWixpKXt2YXIgcz1pKDEwODUyKSxnPWkoNTU2MzkpLGI9cyhnLCJTZXQiKTtTLmV4cG9ydHM9Yn0sODg2Njg6ZnVuY3Rpb24oUyxaLGkpe3ZhciBzPWkoODMzNjkpLGc9aSg5MDYxOSksYj1pKDcyMzg1KTtmdW5jdGlvbiBPKEkpe3ZhciAkPS0xLFI9ST09bnVsbD8wOkkubGVuZ3RoO2Zvcih0aGlzLl9fZGF0YV9fPW5ldyBzOysrJDxSOyl0aGlzLmFkZChJWyRdKX1PLnByb3RvdHlwZS5hZGQ9Ty5wcm90b3R5cGUucHVzaD1nLE8ucHJvdG90eXBlLmhhcz1iLFMuZXhwb3J0cz1PfSw0NjM4NDpmdW5jdGlvbihTLFosaSl7dmFyIHM9aSgzODQwNyksZz1pKDM3NDY1KSxiPWkoNjM3NzkpLE89aSg2NzU5OSksST1pKDQ0NzU4KSwkPWkoMzQzMDkpO2Z1bmN0aW9uIFIoRil7dmFyIEw9dGhpcy5fX2RhdGFfXz1uZXcgcyhGKTt0aGlzLnNpemU9TC5zaXplfVIucHJvdG90eXBlLmNsZWFyPWcsUi5wcm90b3R5cGUuZGVsZXRlPWIsUi5wcm90b3R5cGUuZ2V0PU8sUi5wcm90b3R5cGUuaGFzPUksUi5wcm90b3R5cGUuc2V0PSQsUy5leHBvcnRzPVJ9LDExMTQ5OmZ1bmN0aW9uKFMsWixpKXt2YXIgcz1pKDU1NjM5KSxnPXMuVWludDhBcnJheTtTLmV4cG9ydHM9Z30sNzA1Nzc6ZnVuY3Rpb24oUyxaLGkpe3ZhciBzPWkoMTA4NTIpLGc9aSg1NTYzOSksYj1zKGcsIldlYWtNYXAiKTtTLmV4cG9ydHM9Yn0sOTY4NzQ6ZnVuY3Rpb24oUyl7ZnVuY3Rpb24gWihpLHMsZyl7c3dpdGNoKGcubGVuZ3RoKXtjYXNlIDA6cmV0dXJuIGkuY2FsbChzKTtjYXNlIDE6cmV0dXJuIGkuY2FsbChzLGdbMF0pO2Nhc2UgMjpyZXR1cm4gaS5jYWxsKHMsZ1swXSxnWzFdKTtjYXNlIDM6cmV0dXJuIGkuY2FsbChzLGdbMF0sZ1sxXSxnWzJdKX1yZXR1cm4gaS5hcHBseShzLGcpfVMuZXhwb3J0cz1afSw3NzQxMjpmdW5jdGlvbihTKXtmdW5jdGlvbiBaKGkscyl7Zm9yKHZhciBnPS0xLGI9aT09bnVsbD8wOmkubGVuZ3RoOysrZzxiJiZzKGlbZ10sZyxpKSE9PSExOyk7cmV0dXJuIGl9Uy5leHBvcnRzPVp9LDM0OTYzOmZ1bmN0aW9uKFMpe2Z1bmN0aW9uIFooaSxzKXtmb3IodmFyIGc9LTEsYj1pPT1udWxsPzA6aS5sZW5ndGgsTz0wLEk9W107KytnPGI7KXt2YXIgJD1pW2ddO3MoJCxnLGkpJiYoSVtPKytdPSQpfXJldHVybiBJfVMuZXhwb3J0cz1afSwxNDYzNjpmdW5jdGlvbihTLFosaSl7dmFyIHM9aSgyMjU0NSksZz1pKDM1Njk0KSxiPWkoMTQ2OSksTz1pKDQ0MTQ0KSxJPWkoNjU3NzYpLCQ9aSgzNjcxOSksUj1PYmplY3QucHJvdG90eXBlLEY9Ui5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiBMKFUsZGUpe3ZhciBvPWIoVSksaj0hbyYmZyhVKSxEZT0hbyYmIWomJk8oVSksbWU9IW8mJiFqJiYhRGUmJiQoVSksXz1vfHxqfHxEZXx8bWUsdmU9Xz9zKFUubGVuZ3RoLFN0cmluZyk6W10sYmU9dmUubGVuZ3RoO2Zvcih2YXIgbGUgaW4gVSkoZGV8fEYuY2FsbChVLGxlKSkmJiEoXyYmKGxlPT0ibGVuZ3RoInx8RGUmJihsZT09Im9mZnNldCJ8fGxlPT0icGFyZW50Iil8fG1lJiYobGU9PSJidWZmZXIifHxsZT09ImJ5dGVMZW5ndGgifHxsZT09ImJ5dGVPZmZzZXQiKXx8SShsZSxiZSkpKSYmdmUucHVzaChsZSk7cmV0dXJuIHZlfVMuZXhwb3J0cz1MfSw2MjQ4ODpmdW5jdGlvbihTKXtmdW5jdGlvbiBaKGkscyl7Zm9yKHZhciBnPS0xLGI9cy5sZW5ndGgsTz1pLmxlbmd0aDsrK2c8YjspaVtPK2ddPXNbZ107cmV0dXJuIGl9Uy5leHBvcnRzPVp9LDgyOTA4OmZ1bmN0aW9uKFMpe2Z1bmN0aW9uIFooaSxzKXtmb3IodmFyIGc9LTEsYj1pPT1udWxsPzA6aS5sZW5ndGg7KytnPGI7KWlmKHMoaVtnXSxnLGkpKXJldHVybiEwO3JldHVybiExfVMuZXhwb3J0cz1afSw4NjU1NjpmdW5jdGlvbihTLFosaSl7dmFyIHM9aSg4OTQ2NSksZz1pKDc3ODEzKTtmdW5jdGlvbiBiKE8sSSwkKXsoJCE9PXZvaWQgMCYmIWcoT1tJXSwkKXx8JD09PXZvaWQgMCYmIShJIGluIE8pKSYmcyhPLEksJCl9Uy5leHBvcnRzPWJ9LDM0ODY1OmZ1bmN0aW9uKFMsWixpKXt2YXIgcz1pKDg5NDY1KSxnPWkoNzc4MTMpLGI9T2JqZWN0LnByb3RvdHlwZSxPPWIuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gSSgkLFIsRil7dmFyIEw9JFtSXTsoIShPLmNhbGwoJCxSKSYmZyhMLEYpKXx8Rj09PXZvaWQgMCYmIShSIGluICQpKSYmcygkLFIsRil9Uy5leHBvcnRzPUl9LDE4NDcwOmZ1bmN0aW9uKFMsWixpKXt2YXIgcz1pKDc3ODEzKTtmdW5jdGlvbiBnKGIsTyl7Zm9yKHZhciBJPWIubGVuZ3RoO0ktLTspaWYocyhiW0ldWzBdLE8pKXJldHVybiBJO3JldHVybi0xfVMuZXhwb3J0cz1nfSw0NDAzNzpmdW5jdGlvbihTLFosaSl7dmFyIHM9aSg5ODM2MyksZz1pKDM2NzQpO2Z1bmN0aW9uIGIoTyxJKXtyZXR1cm4gTyYmcyhJLGcoSSksTyl9Uy5leHBvcnRzPWJ9LDYzODg2OmZ1bmN0aW9uKFMsWixpKXt2YXIgcz1pKDk4MzYzKSxnPWkoODE3MDQpO2Z1bmN0aW9uIGIoTyxJKXtyZXR1cm4gTyYmcyhJLGcoSSksTyl9Uy5leHBvcnRzPWJ9LDg5NDY1OmZ1bmN0aW9uKFMsWixpKXt2YXIgcz1pKDM4Nzc3KTtmdW5jdGlvbiBnKGIsTyxJKXtPPT0iX19wcm90b19fIiYmcz9zKGIsTyx7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsdmFsdWU6SSx3cml0YWJsZTohMH0pOmJbT109SX1TLmV4cG9ydHM9Z30sODU5OTA6ZnVuY3Rpb24oUyxaLGkpe3ZhciBzPWkoNDYzODQpLGc9aSg3NzQxMiksYj1pKDM0ODY1KSxPPWkoNDQwMzcpLEk9aSg2Mzg4NiksJD1pKDY0NjI2KSxSPWkoNjQ1MCksRj1pKDE4ODA1KSxMPWkoMTkxMSksVT1pKDU4MjM0KSxkZT1pKDQ2OTA0KSxvPWkoNjQxNjApLGo9aSg0MzgyNCksRGU9aSgyOTE0OCksbWU9aSgzODUxNyksXz1pKDE0NjkpLHZlPWkoNDQxNDQpLGJlPWkoNTY2ODgpLGxlPWkoMTMyMTgpLFhlPWkoNzI5MjgpLG9lPWkoMzY3NCksRmU9aSg4MTcwNCksemU9MSxkdD0yLGd0PTQscnQ9IltvYmplY3QgQXJndW1lbnRzXSIsQ3Q9IltvYmplY3QgQXJyYXldIixvdD0iW29iamVjdCBCb29sZWFuXSIsRz0iW29iamVjdCBEYXRlXSIsdGU9IltvYmplY3QgRXJyb3JdIixRZT0iW29iamVjdCBGdW5jdGlvbl0iLF9lPSJbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXSIsZnQ9IltvYmplY3QgTWFwXSIsTHQ9IltvYmplY3QgTnVtYmVyXSIsd3Q9IltvYmplY3QgT2JqZWN0XSIsV3Q9IltvYmplY3QgUmVnRXhwXSIscm49IltvYmplY3QgU2V0XSIsanQ9IltvYmplY3QgU3RyaW5nXSIsSnQ9IltvYmplY3QgU3ltYm9sXSIsenQ9IltvYmplY3QgV2Vha01hcF0iLEt0PSJbb2JqZWN0IEFycmF5QnVmZmVyXSIsVnQ9IltvYmplY3QgRGF0YVZpZXddIixabj0iW29iamVjdCBGbG9hdDMyQXJyYXldIixMbj0iW29iamVjdCBGbG9hdDY0QXJyYXldIixucj0iW29iamVjdCBJbnQ4QXJyYXldIixuZT0iW29iamVjdCBJbnQxNkFycmF5XSIsaz0iW29iamVjdCBJbnQzMkFycmF5XSIsJGU9IltvYmplY3QgVWludDhBcnJheV0iLE5lPSJbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XSIsVGU9IltvYmplY3QgVWludDE2QXJyYXldIixhdD0iW29iamVjdCBVaW50MzJBcnJheV0iLE9lPXt9O09lW3J0XT1PZVtDdF09T2VbS3RdPU9lW1Z0XT1PZVtvdF09T2VbR109T2VbWm5dPU9lW0xuXT1PZVtucl09T2VbbmVdPU9lW2tdPU9lW2Z0XT1PZVtMdF09T2Vbd3RdPU9lW1d0XT1PZVtybl09T2VbanRdPU9lW0p0XT1PZVskZV09T2VbTmVdPU9lW1RlXT1PZVthdF09ITAsT2VbdGVdPU9lW1FlXT1PZVt6dF09ITE7ZnVuY3Rpb24gbXQoaHQsRnQsJHQsQXQsQnQsRHQpe3ZhciBZZSxhbj1GdCZ6ZSxIdD1GdCZkdCxobj1GdCZndDtpZigkdCYmKFllPUJ0PyR0KGh0LEF0LEJ0LER0KTokdChodCkpLFllIT09dm9pZCAwKXJldHVybiBZZTtpZighbGUoaHQpKXJldHVybiBodDt2YXIgcXQ9XyhodCk7aWYocXQpe2lmKFllPWooaHQpLCFhbilyZXR1cm4gUihodCxZZSl9ZWxzZXt2YXIgd249byhodCksVHQ9d249PVFlfHx3bj09X2U7aWYodmUoaHQpKXJldHVybiAkKGh0LGFuKTtpZih3bj09d3R8fHduPT1ydHx8VHQmJiFCdCl7aWYoWWU9SHR8fFR0P3t9Om1lKGh0KSwhYW4pcmV0dXJuIEh0P0woaHQsSShZZSxodCkpOkYoaHQsTyhZZSxodCkpfWVsc2V7aWYoIU9lW3duXSlyZXR1cm4gQnQ/aHQ6e307WWU9RGUoaHQsd24sYW4pfX1EdHx8KER0PW5ldyBzKTt2YXIgWW49RHQuZ2V0KGh0KTtpZihZbilyZXR1cm4gWW47RHQuc2V0KGh0LFllKSxYZShodCk/aHQuZm9yRWFjaChmdW5jdGlvbih2bil7WWUuYWRkKG10KHZuLEZ0LCR0LHZuLGh0LER0KSl9KTpiZShodCkmJmh0LmZvckVhY2goZnVuY3Rpb24odm4sSG4pe1llLnNldChIbixtdCh2bixGdCwkdCxIbixodCxEdCkpfSk7dmFyIFVuPWhuP0h0P2RlOlU6SHQ/RmU6b2Usc249cXQ/dm9pZCAwOlVuKGh0KTtyZXR1cm4gZyhzbnx8aHQsZnVuY3Rpb24odm4sSG4pe3NuJiYoSG49dm4sdm49aHRbSG5dKSxiKFllLEhuLG10KHZuLEZ0LCR0LEhuLGh0LER0KSl9KSxZZX1TLmV4cG9ydHM9bXR9LDMxMTg6ZnVuY3Rpb24oUyxaLGkpe3ZhciBzPWkoMTMyMTgpLGc9T2JqZWN0LmNyZWF0ZSxiPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gTygpe31yZXR1cm4gZnVuY3Rpb24oSSl7aWYoIXMoSSkpcmV0dXJue307aWYoZylyZXR1cm4gZyhJKTtPLnByb3RvdHlwZT1JO3ZhciAkPW5ldyBPO3JldHVybiBPLnByb3RvdHlwZT12b2lkIDAsJH19KCk7Uy5leHBvcnRzPWJ9LDg5ODgxOmZ1bmN0aW9uKFMsWixpKXt2YXIgcz1pKDQ3ODE2KSxnPWkoOTkyOTEpLGI9ZyhzKTtTLmV4cG9ydHM9Yn0sMjg0ODM6ZnVuY3Rpb24oUyxaLGkpe3ZhciBzPWkoMjUwNjMpLGc9cygpO1MuZXhwb3J0cz1nfSw0NzgxNjpmdW5jdGlvbihTLFosaSl7dmFyIHM9aSgyODQ4MyksZz1pKDM2NzQpO2Z1bmN0aW9uIGIoTyxJKXtyZXR1cm4gTyYmcyhPLEksZyl9Uy5leHBvcnRzPWJ9LDk3Nzg2OmZ1bmN0aW9uKFMsWixpKXt2YXIgcz1pKDcxODExKSxnPWkoNDAzMjcpO2Z1bmN0aW9uIGIoTyxJKXtJPXMoSSxPKTtmb3IodmFyICQ9MCxSPUkubGVuZ3RoO08hPW51bGwmJiQ8UjspTz1PW2coSVskKytdKV07cmV0dXJuICQmJiQ9PVI/Tzp2b2lkIDB9Uy5leHBvcnRzPWJ9LDY4ODY2OmZ1bmN0aW9uKFMsWixpKXt2YXIgcz1pKDYyNDg4KSxnPWkoMTQ2OSk7ZnVuY3Rpb24gYihPLEksJCl7dmFyIFI9SShPKTtyZXR1cm4gZyhPKT9SOnMoUiwkKE8pKX1TLmV4cG9ydHM9Yn0sMTM6ZnVuY3Rpb24oUyl7ZnVuY3Rpb24gWihpLHMpe3JldHVybiBpIT1udWxsJiZzIGluIE9iamVjdChpKX1TLmV4cG9ydHM9Wn0sOTQ1NDpmdW5jdGlvbihTLFosaSl7dmFyIHM9aSg0NDIzOSksZz1pKDM3MDA1KSxiPSJbb2JqZWN0IEFyZ3VtZW50c10iO2Z1bmN0aW9uIE8oSSl7cmV0dXJuIGcoSSkmJnMoSSk9PWJ9Uy5leHBvcnRzPU99LDkwOTM5OmZ1bmN0aW9uKFMsWixpKXt2YXIgcz1pKDI0OTIpLGc9aSgzNzAwNSk7ZnVuY3Rpb24gYihPLEksJCxSLEYpe3JldHVybiBPPT09ST8hMDpPPT1udWxsfHxJPT1udWxsfHwhZyhPKSYmIWcoSSk/TyE9PU8mJkkhPT1JOnMoTyxJLCQsUixiLEYpfVMuZXhwb3J0cz1ifSwyNDkyOmZ1bmN0aW9uKFMsWixpKXt2YXIgcz1pKDQ2Mzg0KSxnPWkoNjcxMTQpLGI9aSgxODM1MSksTz1pKDE2MDk2KSxJPWkoNjQxNjApLCQ9aSgxNDY5KSxSPWkoNDQxNDQpLEY9aSgzNjcxOSksTD0xLFU9IltvYmplY3QgQXJndW1lbnRzXSIsZGU9IltvYmplY3QgQXJyYXldIixvPSJbb2JqZWN0IE9iamVjdF0iLGo9T2JqZWN0LnByb3RvdHlwZSxEZT1qLmhhc093blByb3BlcnR5O2Z1bmN0aW9uIG1lKF8sdmUsYmUsbGUsWGUsb2Upe3ZhciBGZT0kKF8pLHplPSQodmUpLGR0PUZlP2RlOkkoXyksZ3Q9emU/ZGU6SSh2ZSk7ZHQ9ZHQ9PVU/bzpkdCxndD1ndD09VT9vOmd0O3ZhciBydD1kdD09byxDdD1ndD09byxvdD1kdD09Z3Q7aWYob3QmJlIoXykpe2lmKCFSKHZlKSlyZXR1cm4hMTtGZT0hMCxydD0hMX1pZihvdCYmIXJ0KXJldHVybiBvZXx8KG9lPW5ldyBzKSxGZXx8RihfKT9nKF8sdmUsYmUsbGUsWGUsb2UpOmIoXyx2ZSxkdCxiZSxsZSxYZSxvZSk7aWYoIShiZSZMKSl7dmFyIEc9cnQmJkRlLmNhbGwoXywiX193cmFwcGVkX18iKSx0ZT1DdCYmRGUuY2FsbCh2ZSwiX193cmFwcGVkX18iKTtpZihHfHx0ZSl7dmFyIFFlPUc/Xy52YWx1ZSgpOl8sX2U9dGU/dmUudmFsdWUoKTp2ZTtyZXR1cm4gb2V8fChvZT1uZXcgcyksWGUoUWUsX2UsYmUsbGUsb2UpfX1yZXR1cm4gb3Q/KG9lfHwob2U9bmV3IHMpLE8oXyx2ZSxiZSxsZSxYZSxvZSkpOiExfVMuZXhwb3J0cz1tZX0sMjU1ODg6ZnVuY3Rpb24oUyxaLGkpe3ZhciBzPWkoNjQxNjApLGc9aSgzNzAwNSksYj0iW29iamVjdCBNYXBdIjtmdW5jdGlvbiBPKEkpe3JldHVybiBnKEkpJiZzKEkpPT1ifVMuZXhwb3J0cz1PfSwyOTU4OmZ1bmN0aW9uKFMsWixpKXt2YXIgcz1pKDQ2Mzg0KSxnPWkoOTA5MzkpLGI9MSxPPTI7ZnVuY3Rpb24gSSgkLFIsRixMKXt2YXIgVT1GLmxlbmd0aCxkZT1VLG89IUw7aWYoJD09bnVsbClyZXR1cm4hZGU7Zm9yKCQ9T2JqZWN0KCQpO1UtLTspe3ZhciBqPUZbVV07aWYobyYmalsyXT9qWzFdIT09JFtqWzBdXTohKGpbMF1pbiAkKSlyZXR1cm4hMX1mb3IoOysrVTxkZTspe2o9RltVXTt2YXIgRGU9alswXSxtZT0kW0RlXSxfPWpbMV07aWYobyYmalsyXSl7aWYobWU9PT12b2lkIDAmJiEoRGUgaW4gJCkpcmV0dXJuITF9ZWxzZXt2YXIgdmU9bmV3IHM7aWYoTCl2YXIgYmU9TChtZSxfLERlLCQsUix2ZSk7aWYoIShiZT09PXZvaWQgMD9nKF8sbWUsYnxPLEwsdmUpOmJlKSlyZXR1cm4hMX19cmV0dXJuITB9Uy5leHBvcnRzPUl9LDI4NDU4OmZ1bmN0aW9uKFMsWixpKXt2YXIgcz1pKDIzNTYwKSxnPWkoMTUzNDYpLGI9aSgxMzIxOCksTz1pKDgwMzQ2KSxJPS9bXFxeJC4qKz8oKVtcXXt9fF0vZywkPS9eXFtvYmplY3QgLis/Q29uc3RydWN0b3JcXSQvLFI9RnVuY3Rpb24ucHJvdG90eXBlLEY9T2JqZWN0LnByb3RvdHlwZSxMPVIudG9TdHJpbmcsVT1GLmhhc093blByb3BlcnR5LGRlPVJlZ0V4cCgiXiIrTC5jYWxsKFUpLnJlcGxhY2UoSSwiXFwkJiIpLnJlcGxhY2UoL2hhc093blByb3BlcnR5fChmdW5jdGlvbikuKj8oPz1cXFwoKXwgZm9yIC4rPyg/PVxcXF0pL2csIiQxLio/IikrIiQiKTtmdW5jdGlvbiBvKGope2lmKCFiKGopfHxnKGopKXJldHVybiExO3ZhciBEZT1zKGopP2RlOiQ7cmV0dXJuIERlLnRlc3QoTyhqKSl9Uy5leHBvcnRzPW99LDI5MjIxOmZ1bmN0aW9uKFMsWixpKXt2YXIgcz1pKDY0MTYwKSxnPWkoMzcwMDUpLGI9IltvYmplY3QgU2V0XSI7ZnVuY3Rpb24gTyhJKXtyZXR1cm4gZyhJKSYmcyhJKT09Yn1TLmV4cG9ydHM9T30sMzg3NDk6ZnVuY3Rpb24oUyxaLGkpe3ZhciBzPWkoNDQyMzkpLGc9aSg0MTc4MCksYj1pKDM3MDA1KSxPPSJbb2JqZWN0IEFyZ3VtZW50c10iLEk9IltvYmplY3QgQXJyYXldIiwkPSJbb2JqZWN0IEJvb2xlYW5dIixSPSJbb2JqZWN0IERhdGVdIixGPSJbb2JqZWN0IEVycm9yXSIsTD0iW29iamVjdCBGdW5jdGlvbl0iLFU9IltvYmplY3QgTWFwXSIsZGU9IltvYmplY3QgTnVtYmVyXSIsbz0iW29iamVjdCBPYmplY3RdIixqPSJbb2JqZWN0IFJlZ0V4cF0iLERlPSJbb2JqZWN0IFNldF0iLG1lPSJbb2JqZWN0IFN0cmluZ10iLF89IltvYmplY3QgV2Vha01hcF0iLHZlPSJbb2JqZWN0IEFycmF5QnVmZmVyXSIsYmU9IltvYmplY3QgRGF0YVZpZXddIixsZT0iW29iamVjdCBGbG9hdDMyQXJyYXldIixYZT0iW29iamVjdCBGbG9hdDY0QXJyYXldIixvZT0iW29iamVjdCBJbnQ4QXJyYXldIixGZT0iW29iamVjdCBJbnQxNkFycmF5XSIsemU9IltvYmplY3QgSW50MzJBcnJheV0iLGR0PSJbb2JqZWN0IFVpbnQ4QXJyYXldIixndD0iW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0iLHJ0PSJbb2JqZWN0IFVpbnQxNkFycmF5XSIsQ3Q9IltvYmplY3QgVWludDMyQXJyYXldIixvdD17fTtvdFtsZV09b3RbWGVdPW90W29lXT1vdFtGZV09b3RbemVdPW90W2R0XT1vdFtndF09b3RbcnRdPW90W0N0XT0hMCxvdFtPXT1vdFtJXT1vdFt2ZV09b3RbJF09b3RbYmVdPW90W1JdPW90W0ZdPW90W0xdPW90W1VdPW90W2RlXT1vdFtvXT1vdFtqXT1vdFtEZV09b3RbbWVdPW90W19dPSExO2Z1bmN0aW9uIEcodGUpe3JldHVybiBiKHRlKSYmZyh0ZS5sZW5ndGgpJiYhIW90W3ModGUpXX1TLmV4cG9ydHM9R30sNjcyMDY6ZnVuY3Rpb24oUyxaLGkpe3ZhciBzPWkoOTE1NzMpLGc9aSgxNjQzMiksYj1pKDY1NTcpLE89aSgxNDY5KSxJPWkoMzk2MDEpO2Z1bmN0aW9uICQoUil7cmV0dXJuIHR5cGVvZiBSPT0iZnVuY3Rpb24iP1I6Uj09bnVsbD9iOnR5cGVvZiBSPT0ib2JqZWN0Ij9PKFIpP2coUlswXSxSWzFdKTpzKFIpOkkoUil9Uy5leHBvcnRzPSR9LDI4MDpmdW5jdGlvbihTLFosaSl7dmFyIHM9aSgyNTcyNiksZz1pKDg2OTE2KSxiPU9iamVjdC5wcm90b3R5cGUsTz1iLmhhc093blByb3BlcnR5O2Z1bmN0aW9uIEkoJCl7aWYoIXMoJCkpcmV0dXJuIGcoJCk7dmFyIFI9W107Zm9yKHZhciBGIGluIE9iamVjdCgkKSlPLmNhbGwoJCxGKSYmRiE9ImNvbnN0cnVjdG9yIiYmUi5wdXNoKEYpO3JldHVybiBSfVMuZXhwb3J0cz1JfSwxMDMxMzpmdW5jdGlvbihTLFosaSl7dmFyIHM9aSgxMzIxOCksZz1pKDI1NzI2KSxiPWkoMzM0OTgpLE89T2JqZWN0LnByb3RvdHlwZSxJPU8uaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gJChSKXtpZighcyhSKSlyZXR1cm4gYihSKTt2YXIgRj1nKFIpLEw9W107Zm9yKHZhciBVIGluIFIpVT09ImNvbnN0cnVjdG9yIiYmKEZ8fCFJLmNhbGwoUixVKSl8fEwucHVzaChVKTtyZXR1cm4gTH1TLmV4cG9ydHM9JH0sNjkxOTk6ZnVuY3Rpb24oUyxaLGkpe3ZhciBzPWkoODk4ODEpLGc9aSg5ODYxMik7ZnVuY3Rpb24gYihPLEkpe3ZhciAkPS0xLFI9ZyhPKT9BcnJheShPLmxlbmd0aCk6W107cmV0dXJuIHMoTyxmdW5jdGlvbihGLEwsVSl7UlsrKyRdPUkoRixMLFUpfSksUn1TLmV4cG9ydHM9Yn0sOTE1NzM6ZnVuY3Rpb24oUyxaLGkpe3ZhciBzPWkoMjk1OCksZz1pKDE0OTkpLGI9aSg0MjYzNCk7ZnVuY3Rpb24gTyhJKXt2YXIgJD1nKEkpO3JldHVybiAkLmxlbmd0aD09MSYmJFswXVsyXT9iKCRbMF1bMF0sJFswXVsxXSk6ZnVuY3Rpb24oUil7cmV0dXJuIFI9PT1JfHxzKFIsSSwkKX19Uy5leHBvcnRzPU99LDE2NDMyOmZ1bmN0aW9uKFMsWixpKXt2YXIgcz1pKDkwOTM5KSxnPWkoMjczNjEpLGI9aSg3OTA5NSksTz1pKDE1NDAzKSxJPWkoODkxNjIpLCQ9aSg0MjYzNCksUj1pKDQwMzI3KSxGPTEsTD0yO2Z1bmN0aW9uIFUoZGUsbyl7cmV0dXJuIE8oZGUpJiZJKG8pPyQoUihkZSksbyk6ZnVuY3Rpb24oail7dmFyIERlPWcoaixkZSk7cmV0dXJuIERlPT09dm9pZCAwJiZEZT09PW8/YihqLGRlKTpzKG8sRGUsRnxMKX19Uy5leHBvcnRzPVV9LDQyOTgwOmZ1bmN0aW9uKFMsWixpKXt2YXIgcz1pKDQ2Mzg0KSxnPWkoODY1NTYpLGI9aSgyODQ4MyksTz1pKDU5NzgzKSxJPWkoMTMyMTgpLCQ9aSg4MTcwNCksUj1pKDM2MzkwKTtmdW5jdGlvbiBGKEwsVSxkZSxvLGope0whPT1VJiZiKFUsZnVuY3Rpb24oRGUsbWUpe2lmKGp8fChqPW5ldyBzKSxJKERlKSlPKEwsVSxtZSxkZSxGLG8saik7ZWxzZXt2YXIgXz1vP28oUihMLG1lKSxEZSxtZSsiIixMLFUsaik6dm9pZCAwO189PT12b2lkIDAmJihfPURlKSxnKEwsbWUsXyl9fSwkKX1TLmV4cG9ydHM9Rn0sNTk3ODM6ZnVuY3Rpb24oUyxaLGkpe3ZhciBzPWkoODY1NTYpLGc9aSg2NDYyNiksYj1pKDc3MTMzKSxPPWkoNjQ1MCksST1pKDM4NTE3KSwkPWkoMzU2OTQpLFI9aSgxNDY5KSxGPWkoMjkyNDYpLEw9aSg0NDE0NCksVT1pKDIzNTYwKSxkZT1pKDEzMjE4KSxvPWkoNjg2MzApLGo9aSgzNjcxOSksRGU9aSgzNjM5MCksbWU9aSg1OTg4MSk7ZnVuY3Rpb24gXyh2ZSxiZSxsZSxYZSxvZSxGZSx6ZSl7dmFyIGR0PURlKHZlLGxlKSxndD1EZShiZSxsZSkscnQ9emUuZ2V0KGd0KTtpZihydCl7cyh2ZSxsZSxydCk7cmV0dXJufXZhciBDdD1GZT9GZShkdCxndCxsZSsiIix2ZSxiZSx6ZSk6dm9pZCAwLG90PUN0PT09dm9pZCAwO2lmKG90KXt2YXIgRz1SKGd0KSx0ZT0hRyYmTChndCksUWU9IUcmJiF0ZSYmaihndCk7Q3Q9Z3QsR3x8dGV8fFFlP1IoZHQpP0N0PWR0OkYoZHQpP0N0PU8oZHQpOnRlPyhvdD0hMSxDdD1nKGd0LCEwKSk6UWU/KG90PSExLEN0PWIoZ3QsITApKTpDdD1bXTpvKGd0KXx8JChndCk/KEN0PWR0LCQoZHQpP0N0PW1lKGR0KTooIWRlKGR0KXx8VShkdCkpJiYoQ3Q9SShndCkpKTpvdD0hMX1vdCYmKHplLnNldChndCxDdCksb2UoQ3QsZ3QsWGUsRmUsemUpLHplLmRlbGV0ZShndCkpLHModmUsbGUsQ3QpfVMuZXhwb3J0cz1ffSw0MDM3MTpmdW5jdGlvbihTKXtmdW5jdGlvbiBaKGkpe3JldHVybiBmdW5jdGlvbihzKXtyZXR1cm4gcz09bnVsbD92b2lkIDA6c1tpXX19Uy5leHBvcnRzPVp9LDc5MTUyOmZ1bmN0aW9uKFMsWixpKXt2YXIgcz1pKDk3Nzg2KTtmdW5jdGlvbiBnKGIpe3JldHVybiBmdW5jdGlvbihPKXtyZXR1cm4gcyhPLGIpfX1TLmV4cG9ydHM9Z30sNTk3NjpmdW5jdGlvbihTLFosaSl7dmFyIHM9aSg2NTU3KSxnPWkoNDUzNTcpLGI9aSgzMDA2MSk7ZnVuY3Rpb24gTyhJLCQpe3JldHVybiBiKGcoSSwkLHMpLEkrIiIpfVMuZXhwb3J0cz1PfSw1NjU2MDpmdW5jdGlvbihTLFosaSl7dmFyIHM9aSg3NTcwMyksZz1pKDM4Nzc3KSxiPWkoNjU1NyksTz1nP2Z1bmN0aW9uKEksJCl7cmV0dXJuIGcoSSwidG9TdHJpbmciLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMSx2YWx1ZTpzKCQpLHdyaXRhYmxlOiEwfSl9OmI7Uy5leHBvcnRzPU99LDIyNTQ1OmZ1bmN0aW9uKFMpe2Z1bmN0aW9uIFooaSxzKXtmb3IodmFyIGc9LTEsYj1BcnJheShpKTsrK2c8aTspYltnXT1zKGcpO3JldHVybiBifVMuZXhwb3J0cz1afSwyNzU2MTpmdW5jdGlvbihTLFosaSl7dmFyIHM9aSg2Nzk5MCksZz0vXlxzKy87ZnVuY3Rpb24gYihPKXtyZXR1cm4gTyYmTy5zbGljZSgwLHMoTykrMSkucmVwbGFjZShnLCIiKX1TLmV4cG9ydHM9Yn0sNTE3MTc6ZnVuY3Rpb24oUyl7ZnVuY3Rpb24gWihpKXtyZXR1cm4gZnVuY3Rpb24ocyl7cmV0dXJuIGkocyl9fVMuZXhwb3J0cz1afSw3NDc1NzpmdW5jdGlvbihTKXtmdW5jdGlvbiBaKGkscyl7cmV0dXJuIGkuaGFzKHMpfVMuZXhwb3J0cz1afSw1NDI5MDpmdW5jdGlvbihTLFosaSl7dmFyIHM9aSg2NTU3KTtmdW5jdGlvbiBnKGIpe3JldHVybiB0eXBlb2YgYj09ImZ1bmN0aW9uIj9iOnN9Uy5leHBvcnRzPWd9LDcxODExOmZ1bmN0aW9uKFMsWixpKXt2YXIgcz1pKDE0NjkpLGc9aSgxNTQwMyksYj1pKDU1NTE0KSxPPWkoNzk4MzMpO2Z1bmN0aW9uIEkoJCxSKXtyZXR1cm4gcygkKT8kOmcoJCxSKT9bJF06YihPKCQpKX1TLmV4cG9ydHM9SX0sNzQzMTg6ZnVuY3Rpb24oUyxaLGkpe3ZhciBzPWkoMTExNDkpO2Z1bmN0aW9uIGcoYil7dmFyIE89bmV3IGIuY29uc3RydWN0b3IoYi5ieXRlTGVuZ3RoKTtyZXR1cm4gbmV3IHMoTykuc2V0KG5ldyBzKGIpKSxPfVMuZXhwb3J0cz1nfSw2NDYyNjpmdW5jdGlvbihTLFosaSl7Uz1pLm5tZChTKTt2YXIgcz1pKDU1NjM5KSxnPVomJiFaLm5vZGVUeXBlJiZaLGI9ZyYmITAmJlMmJiFTLm5vZGVUeXBlJiZTLE89YiYmYi5leHBvcnRzPT09ZyxJPU8/cy5CdWZmZXI6dm9pZCAwLCQ9ST9JLmFsbG9jVW5zYWZlOnZvaWQgMDtmdW5jdGlvbiBSKEYsTCl7aWYoTClyZXR1cm4gRi5zbGljZSgpO3ZhciBVPUYubGVuZ3RoLGRlPSQ/JChVKTpuZXcgRi5jb25zdHJ1Y3RvcihVKTtyZXR1cm4gRi5jb3B5KGRlKSxkZX1TLmV4cG9ydHM9Un0sNTcxNTc6ZnVuY3Rpb24oUyxaLGkpe3ZhciBzPWkoNzQzMTgpO2Z1bmN0aW9uIGcoYixPKXt2YXIgST1PP3MoYi5idWZmZXIpOmIuYnVmZmVyO3JldHVybiBuZXcgYi5jb25zdHJ1Y3RvcihJLGIuYnl0ZU9mZnNldCxiLmJ5dGVMZW5ndGgpfVMuZXhwb3J0cz1nfSw5MzE0NzpmdW5jdGlvbihTKXt2YXIgWj0vXHcqJC87ZnVuY3Rpb24gaShzKXt2YXIgZz1uZXcgcy5jb25zdHJ1Y3RvcihzLnNvdXJjZSxaLmV4ZWMocykpO3JldHVybiBnLmxhc3RJbmRleD1zLmxhc3RJbmRleCxnfVMuZXhwb3J0cz1pfSw0MDQxOTpmdW5jdGlvbihTLFosaSl7dmFyIHM9aSg2MjcwNSksZz1zP3MucHJvdG90eXBlOnZvaWQgMCxiPWc/Zy52YWx1ZU9mOnZvaWQgMDtmdW5jdGlvbiBPKEkpe3JldHVybiBiP09iamVjdChiLmNhbGwoSSkpOnt9fVMuZXhwb3J0cz1PfSw3NzEzMzpmdW5jdGlvbihTLFosaSl7dmFyIHM9aSg3NDMxOCk7ZnVuY3Rpb24gZyhiLE8pe3ZhciBJPU8/cyhiLmJ1ZmZlcik6Yi5idWZmZXI7cmV0dXJuIG5ldyBiLmNvbnN0cnVjdG9yKEksYi5ieXRlT2Zmc2V0LGIubGVuZ3RoKX1TLmV4cG9ydHM9Z30sNjQ1MDpmdW5jdGlvbihTKXtmdW5jdGlvbiBaKGkscyl7dmFyIGc9LTEsYj1pLmxlbmd0aDtmb3Ioc3x8KHM9QXJyYXkoYikpOysrZzxiOylzW2ddPWlbZ107cmV0dXJuIHN9Uy5leHBvcnRzPVp9LDk4MzYzOmZ1bmN0aW9uKFMsWixpKXt2YXIgcz1pKDM0ODY1KSxnPWkoODk0NjUpO2Z1bmN0aW9uIGIoTyxJLCQsUil7dmFyIEY9ISQ7JHx8KCQ9e30pO2Zvcih2YXIgTD0tMSxVPUkubGVuZ3RoOysrTDxVOyl7dmFyIGRlPUlbTF0sbz1SP1IoJFtkZV0sT1tkZV0sZGUsJCxPKTp2b2lkIDA7bz09PXZvaWQgMCYmKG89T1tkZV0pLEY/ZygkLGRlLG8pOnMoJCxkZSxvKX1yZXR1cm4gJH1TLmV4cG9ydHM9Yn0sMTg4MDU6ZnVuY3Rpb24oUyxaLGkpe3ZhciBzPWkoOTgzNjMpLGc9aSg5OTU1MSk7ZnVuY3Rpb24gYihPLEkpe3JldHVybiBzKE8sZyhPKSxJKX1TLmV4cG9ydHM9Yn0sMTkxMTpmdW5jdGlvbihTLFosaSl7dmFyIHM9aSg5ODM2MyksZz1pKDUxNDQyKTtmdW5jdGlvbiBiKE8sSSl7cmV0dXJuIHMoTyxnKE8pLEkpfVMuZXhwb3J0cz1ifSwxNDQyOTpmdW5jdGlvbihTLFosaSl7dmFyIHM9aSg1NTYzOSksZz1zWyJfX2NvcmUtanNfc2hhcmVkX18iXTtTLmV4cG9ydHM9Z30sMjE0NjM6ZnVuY3Rpb24oUyxaLGkpe3ZhciBzPWkoNTk3NiksZz1pKDE2NjEyKTtmdW5jdGlvbiBiKE8pe3JldHVybiBzKGZ1bmN0aW9uKEksJCl7dmFyIFI9LTEsRj0kLmxlbmd0aCxMPUY+MT8kW0YtMV06dm9pZCAwLFU9Rj4yPyRbMl06dm9pZCAwO2ZvcihMPU8ubGVuZ3RoPjMmJnR5cGVvZiBMPT0iZnVuY3Rpb24iPyhGLS0sTCk6dm9pZCAwLFUmJmcoJFswXSwkWzFdLFUpJiYoTD1GPDM/dm9pZCAwOkwsRj0xKSxJPU9iamVjdChJKTsrK1I8Rjspe3ZhciBkZT0kW1JdO2RlJiZPKEksZGUsUixMKX1yZXR1cm4gSX0pfVMuZXhwb3J0cz1ifSw5OTI5MTpmdW5jdGlvbihTLFosaSl7dmFyIHM9aSg5ODYxMik7ZnVuY3Rpb24gZyhiLE8pe3JldHVybiBmdW5jdGlvbihJLCQpe2lmKEk9PW51bGwpcmV0dXJuIEk7aWYoIXMoSSkpcmV0dXJuIGIoSSwkKTtmb3IodmFyIFI9SS5sZW5ndGgsRj1PP1I6LTEsTD1PYmplY3QoSSk7KE8/Ri0tOisrRjxSKSYmJChMW0ZdLEYsTCkhPT0hMTspO3JldHVybiBJfX1TLmV4cG9ydHM9Z30sMjUwNjM6ZnVuY3Rpb24oUyl7ZnVuY3Rpb24gWihpKXtyZXR1cm4gZnVuY3Rpb24ocyxnLGIpe2Zvcih2YXIgTz0tMSxJPU9iamVjdChzKSwkPWIocyksUj0kLmxlbmd0aDtSLS07KXt2YXIgRj0kW2k/UjorK09dO2lmKGcoSVtGXSxGLEkpPT09ITEpYnJlYWt9cmV0dXJuIHN9fVMuZXhwb3J0cz1afSwzODc3NzpmdW5jdGlvbihTLFosaSl7dmFyIHM9aSgxMDg1MiksZz1mdW5jdGlvbigpe3RyeXt2YXIgYj1zKE9iamVjdCwiZGVmaW5lUHJvcGVydHkiKTtyZXR1cm4gYih7fSwiIix7fSksYn1jYXRjaChPKXt9fSgpO1MuZXhwb3J0cz1nfSw2NzExNDpmdW5jdGlvbihTLFosaSl7dmFyIHM9aSg4ODY2OCksZz1pKDgyOTA4KSxiPWkoNzQ3NTcpLE89MSxJPTI7ZnVuY3Rpb24gJChSLEYsTCxVLGRlLG8pe3ZhciBqPUwmTyxEZT1SLmxlbmd0aCxtZT1GLmxlbmd0aDtpZihEZSE9bWUmJiEoaiYmbWU+RGUpKXJldHVybiExO3ZhciBfPW8uZ2V0KFIpLHZlPW8uZ2V0KEYpO2lmKF8mJnZlKXJldHVybiBfPT1GJiZ2ZT09Ujt2YXIgYmU9LTEsbGU9ITAsWGU9TCZJP25ldyBzOnZvaWQgMDtmb3Ioby5zZXQoUixGKSxvLnNldChGLFIpOysrYmU8RGU7KXt2YXIgb2U9UltiZV0sRmU9RltiZV07aWYoVSl2YXIgemU9aj9VKEZlLG9lLGJlLEYsUixvKTpVKG9lLEZlLGJlLFIsRixvKTtpZih6ZSE9PXZvaWQgMCl7aWYoemUpY29udGludWU7bGU9ITE7YnJlYWt9aWYoWGUpe2lmKCFnKEYsZnVuY3Rpb24oZHQsZ3Qpe2lmKCFiKFhlLGd0KSYmKG9lPT09ZHR8fGRlKG9lLGR0LEwsVSxvKSkpcmV0dXJuIFhlLnB1c2goZ3QpfSkpe2xlPSExO2JyZWFrfX1lbHNlIGlmKCEob2U9PT1GZXx8ZGUob2UsRmUsTCxVLG8pKSl7bGU9ITE7YnJlYWt9fXJldHVybiBvLmRlbGV0ZShSKSxvLmRlbGV0ZShGKSxsZX1TLmV4cG9ydHM9JH0sMTgzNTE6ZnVuY3Rpb24oUyxaLGkpe3ZhciBzPWkoNjI3MDUpLGc9aSgxMTE0OSksYj1pKDc3ODEzKSxPPWkoNjcxMTQpLEk9aSg2ODc3NiksJD1pKDIxODE0KSxSPTEsRj0yLEw9IltvYmplY3QgQm9vbGVhbl0iLFU9IltvYmplY3QgRGF0ZV0iLGRlPSJbb2JqZWN0IEVycm9yXSIsbz0iW29iamVjdCBNYXBdIixqPSJbb2JqZWN0IE51bWJlcl0iLERlPSJbb2JqZWN0IFJlZ0V4cF0iLG1lPSJbb2JqZWN0IFNldF0iLF89IltvYmplY3QgU3RyaW5nXSIsdmU9IltvYmplY3QgU3ltYm9sXSIsYmU9IltvYmplY3QgQXJyYXlCdWZmZXJdIixsZT0iW29iamVjdCBEYXRhVmlld10iLFhlPXM/cy5wcm90b3R5cGU6dm9pZCAwLG9lPVhlP1hlLnZhbHVlT2Y6dm9pZCAwO2Z1bmN0aW9uIEZlKHplLGR0LGd0LHJ0LEN0LG90LEcpe3N3aXRjaChndCl7Y2FzZSBsZTppZih6ZS5ieXRlTGVuZ3RoIT1kdC5ieXRlTGVuZ3RofHx6ZS5ieXRlT2Zmc2V0IT1kdC5ieXRlT2Zmc2V0KXJldHVybiExO3plPXplLmJ1ZmZlcixkdD1kdC5idWZmZXI7Y2FzZSBiZTpyZXR1cm4hKHplLmJ5dGVMZW5ndGghPWR0LmJ5dGVMZW5ndGh8fCFvdChuZXcgZyh6ZSksbmV3IGcoZHQpKSk7Y2FzZSBMOmNhc2UgVTpjYXNlIGo6cmV0dXJuIGIoK3plLCtkdCk7Y2FzZSBkZTpyZXR1cm4gemUubmFtZT09ZHQubmFtZSYmemUubWVzc2FnZT09ZHQubWVzc2FnZTtjYXNlIERlOmNhc2UgXzpyZXR1cm4gemU9PWR0KyIiO2Nhc2Ugbzp2YXIgdGU9STtjYXNlIG1lOnZhciBRZT1ydCZSO2lmKHRlfHwodGU9JCksemUuc2l6ZSE9ZHQuc2l6ZSYmIVFlKXJldHVybiExO3ZhciBfZT1HLmdldCh6ZSk7aWYoX2UpcmV0dXJuIF9lPT1kdDtydHw9RixHLnNldCh6ZSxkdCk7dmFyIGZ0PU8odGUoemUpLHRlKGR0KSxydCxDdCxvdCxHKTtyZXR1cm4gRy5kZWxldGUoemUpLGZ0O2Nhc2UgdmU6aWYob2UpcmV0dXJuIG9lLmNhbGwoemUpPT1vZS5jYWxsKGR0KX1yZXR1cm4hMX1TLmV4cG9ydHM9RmV9LDE2MDk2OmZ1bmN0aW9uKFMsWixpKXt2YXIgcz1pKDU4MjM0KSxnPTEsYj1PYmplY3QucHJvdG90eXBlLE89Yi5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiBJKCQsUixGLEwsVSxkZSl7dmFyIG89RiZnLGo9cygkKSxEZT1qLmxlbmd0aCxtZT1zKFIpLF89bWUubGVuZ3RoO2lmKERlIT1fJiYhbylyZXR1cm4hMTtmb3IodmFyIHZlPURlO3ZlLS07KXt2YXIgYmU9alt2ZV07aWYoIShvP2JlIGluIFI6Ty5jYWxsKFIsYmUpKSlyZXR1cm4hMX12YXIgbGU9ZGUuZ2V0KCQpLFhlPWRlLmdldChSKTtpZihsZSYmWGUpcmV0dXJuIGxlPT1SJiZYZT09JDt2YXIgb2U9ITA7ZGUuc2V0KCQsUiksZGUuc2V0KFIsJCk7Zm9yKHZhciBGZT1vOysrdmU8RGU7KXtiZT1qW3ZlXTt2YXIgemU9JFtiZV0sZHQ9UltiZV07aWYoTCl2YXIgZ3Q9bz9MKGR0LHplLGJlLFIsJCxkZSk6TCh6ZSxkdCxiZSwkLFIsZGUpO2lmKCEoZ3Q9PT12b2lkIDA/emU9PT1kdHx8VSh6ZSxkdCxGLEwsZGUpOmd0KSl7b2U9ITE7YnJlYWt9RmV8fChGZT1iZT09ImNvbnN0cnVjdG9yIil9aWYob2UmJiFGZSl7dmFyIHJ0PSQuY29uc3RydWN0b3IsQ3Q9Ui5jb25zdHJ1Y3RvcjtydCE9Q3QmJiJjb25zdHJ1Y3RvciJpbiAkJiYiY29uc3RydWN0b3IiaW4gUiYmISh0eXBlb2YgcnQ9PSJmdW5jdGlvbiImJnJ0IGluc3RhbmNlb2YgcnQmJnR5cGVvZiBDdD09ImZ1bmN0aW9uIiYmQ3QgaW5zdGFuY2VvZiBDdCkmJihvZT0hMSl9cmV0dXJuIGRlLmRlbGV0ZSgkKSxkZS5kZWxldGUoUiksb2V9Uy5leHBvcnRzPUl9LDU4MjM0OmZ1bmN0aW9uKFMsWixpKXt2YXIgcz1pKDY4ODY2KSxnPWkoOTk1NTEpLGI9aSgzNjc0KTtmdW5jdGlvbiBPKEkpe3JldHVybiBzKEksYixnKX1TLmV4cG9ydHM9T30sNDY5MDQ6ZnVuY3Rpb24oUyxaLGkpe3ZhciBzPWkoNjg4NjYpLGc9aSg1MTQ0MiksYj1pKDgxNzA0KTtmdW5jdGlvbiBPKEkpe3JldHVybiBzKEksYixnKX1TLmV4cG9ydHM9T30sNDUwNTA6ZnVuY3Rpb24oUyxaLGkpe3ZhciBzPWkoMzcwMTkpO2Z1bmN0aW9uIGcoYixPKXt2YXIgST1iLl9fZGF0YV9fO3JldHVybiBzKE8pP0lbdHlwZW9mIE89PSJzdHJpbmciPyJzdHJpbmciOiJoYXNoIl06SS5tYXB9Uy5leHBvcnRzPWd9LDE0OTk6ZnVuY3Rpb24oUyxaLGkpe3ZhciBzPWkoODkxNjIpLGc9aSgzNjc0KTtmdW5jdGlvbiBiKE8pe2Zvcih2YXIgST1nKE8pLCQ9SS5sZW5ndGg7JC0tOyl7dmFyIFI9SVskXSxGPU9bUl07SVskXT1bUixGLHMoRildfXJldHVybiBJfVMuZXhwb3J0cz1ifSwxMDg1MjpmdW5jdGlvbihTLFosaSl7dmFyIHM9aSgyODQ1OCksZz1pKDQ3ODAxKTtmdW5jdGlvbiBiKE8sSSl7dmFyICQ9ZyhPLEkpO3JldHVybiBzKCQpPyQ6dm9pZCAwfVMuZXhwb3J0cz1ifSw4NTkyNDpmdW5jdGlvbihTLFosaSl7dmFyIHM9aSg1NTY5KSxnPXMoT2JqZWN0LmdldFByb3RvdHlwZU9mLE9iamVjdCk7Uy5leHBvcnRzPWd9LDk5NTUxOmZ1bmN0aW9uKFMsWixpKXt2YXIgcz1pKDM0OTYzKSxnPWkoNzA0NzkpLGI9T2JqZWN0LnByb3RvdHlwZSxPPWIucHJvcGVydHlJc0VudW1lcmFibGUsST1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzLCQ9ST9mdW5jdGlvbihSKXtyZXR1cm4gUj09bnVsbD9bXTooUj1PYmplY3QoUikscyhJKFIpLGZ1bmN0aW9uKEYpe3JldHVybiBPLmNhbGwoUixGKX0pKX06ZztTLmV4cG9ydHM9JH0sNTE0NDI6ZnVuY3Rpb24oUyxaLGkpe3ZhciBzPWkoNjI0ODgpLGc9aSg4NTkyNCksYj1pKDk5NTUxKSxPPWkoNzA0NzkpLEk9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scywkPUk/ZnVuY3Rpb24oUil7Zm9yKHZhciBGPVtdO1I7KXMoRixiKFIpKSxSPWcoUik7cmV0dXJuIEZ9Ok87Uy5leHBvcnRzPSR9LDY0MTYwOmZ1bmN0aW9uKFMsWixpKXt2YXIgcz1pKDE4NTUyKSxnPWkoNTcwNzEpLGI9aSg1MzgxOCksTz1pKDU4NTI1KSxJPWkoNzA1NzcpLCQ9aSg0NDIzOSksUj1pKDgwMzQ2KSxGPSJbb2JqZWN0IE1hcF0iLEw9IltvYmplY3QgT2JqZWN0XSIsVT0iW29iamVjdCBQcm9taXNlXSIsZGU9IltvYmplY3QgU2V0XSIsbz0iW29iamVjdCBXZWFrTWFwXSIsaj0iW29iamVjdCBEYXRhVmlld10iLERlPVIocyksbWU9UihnKSxfPVIoYiksdmU9UihPKSxiZT1SKEkpLGxlPSQ7KHMmJmxlKG5ldyBzKG5ldyBBcnJheUJ1ZmZlcigxKSkpIT1qfHxnJiZsZShuZXcgZykhPUZ8fGImJmxlKGIucmVzb2x2ZSgpKSE9VXx8TyYmbGUobmV3IE8pIT1kZXx8SSYmbGUobmV3IEkpIT1vKSYmKGxlPWZ1bmN0aW9uKFhlKXt2YXIgb2U9JChYZSksRmU9b2U9PUw/WGUuY29uc3RydWN0b3I6dm9pZCAwLHplPUZlP1IoRmUpOiIiO2lmKHplKXN3aXRjaCh6ZSl7Y2FzZSBEZTpyZXR1cm4gajtjYXNlIG1lOnJldHVybiBGO2Nhc2UgXzpyZXR1cm4gVTtjYXNlIHZlOnJldHVybiBkZTtjYXNlIGJlOnJldHVybiBvfXJldHVybiBvZX0pLFMuZXhwb3J0cz1sZX0sNDc4MDE6ZnVuY3Rpb24oUyl7ZnVuY3Rpb24gWihpLHMpe3JldHVybiBpPT1udWxsP3ZvaWQgMDppW3NdfVMuZXhwb3J0cz1afSwyMjI6ZnVuY3Rpb24oUyxaLGkpe3ZhciBzPWkoNzE4MTEpLGc9aSgzNTY5NCksYj1pKDE0NjkpLE89aSg2NTc3NiksST1pKDQxNzgwKSwkPWkoNDAzMjcpO2Z1bmN0aW9uIFIoRixMLFUpe0w9cyhMLEYpO2Zvcih2YXIgZGU9LTEsbz1MLmxlbmd0aCxqPSExOysrZGU8bzspe3ZhciBEZT0kKExbZGVdKTtpZighKGo9RiE9bnVsbCYmVShGLERlKSkpYnJlYWs7Rj1GW0RlXX1yZXR1cm4ganx8KytkZSE9bz9qOihvPUY9PW51bGw/MDpGLmxlbmd0aCwhIW8mJkkobykmJk8oRGUsbykmJihiKEYpfHxnKEYpKSl9Uy5leHBvcnRzPVJ9LDUxNzg5OmZ1bmN0aW9uKFMsWixpKXt2YXIgcz1pKDk0NTM2KTtmdW5jdGlvbiBnKCl7dGhpcy5fX2RhdGFfXz1zP3MobnVsbCk6e30sdGhpcy5zaXplPTB9Uy5leHBvcnRzPWd9LDgwNDAxOmZ1bmN0aW9uKFMpe2Z1bmN0aW9uIFooaSl7dmFyIHM9dGhpcy5oYXMoaSkmJmRlbGV0ZSB0aGlzLl9fZGF0YV9fW2ldO3JldHVybiB0aGlzLnNpemUtPXM/MTowLHN9Uy5leHBvcnRzPVp9LDU3NjY3OmZ1bmN0aW9uKFMsWixpKXt2YXIgcz1pKDk0NTM2KSxnPSJfX2xvZGFzaF9oYXNoX3VuZGVmaW5lZF9fIixiPU9iamVjdC5wcm90b3R5cGUsTz1iLmhhc093blByb3BlcnR5O2Z1bmN0aW9uIEkoJCl7dmFyIFI9dGhpcy5fX2RhdGFfXztpZihzKXt2YXIgRj1SWyRdO3JldHVybiBGPT09Zz92b2lkIDA6Rn1yZXR1cm4gTy5jYWxsKFIsJCk/UlskXTp2b2lkIDB9Uy5leHBvcnRzPUl9LDIxMzI3OmZ1bmN0aW9uKFMsWixpKXt2YXIgcz1pKDk0NTM2KSxnPU9iamVjdC5wcm90b3R5cGUsYj1nLmhhc093blByb3BlcnR5O2Z1bmN0aW9uIE8oSSl7dmFyICQ9dGhpcy5fX2RhdGFfXztyZXR1cm4gcz8kW0ldIT09dm9pZCAwOmIuY2FsbCgkLEkpfVMuZXhwb3J0cz1PfSw4MTg2NjpmdW5jdGlvbihTLFosaSl7dmFyIHM9aSg5NDUzNiksZz0iX19sb2Rhc2hfaGFzaF91bmRlZmluZWRfXyI7ZnVuY3Rpb24gYihPLEkpe3ZhciAkPXRoaXMuX19kYXRhX187cmV0dXJuIHRoaXMuc2l6ZSs9dGhpcy5oYXMoTyk/MDoxLCRbT109cyYmST09PXZvaWQgMD9nOkksdGhpc31TLmV4cG9ydHM9Yn0sNDM4MjQ6ZnVuY3Rpb24oUyl7dmFyIFo9T2JqZWN0LnByb3RvdHlwZSxpPVouaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gcyhnKXt2YXIgYj1nLmxlbmd0aCxPPW5ldyBnLmNvbnN0cnVjdG9yKGIpO3JldHVybiBiJiZ0eXBlb2YgZ1swXT09InN0cmluZyImJmkuY2FsbChnLCJpbmRleCIpJiYoTy5pbmRleD1nLmluZGV4LE8uaW5wdXQ9Zy5pbnB1dCksT31TLmV4cG9ydHM9c30sMjkxNDg6ZnVuY3Rpb24oUyxaLGkpe3ZhciBzPWkoNzQzMTgpLGc9aSg1NzE1NyksYj1pKDkzMTQ3KSxPPWkoNDA0MTkpLEk9aSg3NzEzMyksJD0iW29iamVjdCBCb29sZWFuXSIsUj0iW29iamVjdCBEYXRlXSIsRj0iW29iamVjdCBNYXBdIixMPSJbb2JqZWN0IE51bWJlcl0iLFU9IltvYmplY3QgUmVnRXhwXSIsZGU9IltvYmplY3QgU2V0XSIsbz0iW29iamVjdCBTdHJpbmddIixqPSJbb2JqZWN0IFN5bWJvbF0iLERlPSJbb2JqZWN0IEFycmF5QnVmZmVyXSIsbWU9IltvYmplY3QgRGF0YVZpZXddIixfPSJbb2JqZWN0IEZsb2F0MzJBcnJheV0iLHZlPSJbb2JqZWN0IEZsb2F0NjRBcnJheV0iLGJlPSJbb2JqZWN0IEludDhBcnJheV0iLGxlPSJbb2JqZWN0IEludDE2QXJyYXldIixYZT0iW29iamVjdCBJbnQzMkFycmF5XSIsb2U9IltvYmplY3QgVWludDhBcnJheV0iLEZlPSJbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XSIsemU9IltvYmplY3QgVWludDE2QXJyYXldIixkdD0iW29iamVjdCBVaW50MzJBcnJheV0iO2Z1bmN0aW9uIGd0KHJ0LEN0LG90KXt2YXIgRz1ydC5jb25zdHJ1Y3Rvcjtzd2l0Y2goQ3Qpe2Nhc2UgRGU6cmV0dXJuIHMocnQpO2Nhc2UgJDpjYXNlIFI6cmV0dXJuIG5ldyBHKCtydCk7Y2FzZSBtZTpyZXR1cm4gZyhydCxvdCk7Y2FzZSBfOmNhc2UgdmU6Y2FzZSBiZTpjYXNlIGxlOmNhc2UgWGU6Y2FzZSBvZTpjYXNlIEZlOmNhc2UgemU6Y2FzZSBkdDpyZXR1cm4gSShydCxvdCk7Y2FzZSBGOnJldHVybiBuZXcgRztjYXNlIEw6Y2FzZSBvOnJldHVybiBuZXcgRyhydCk7Y2FzZSBVOnJldHVybiBiKHJ0KTtjYXNlIGRlOnJldHVybiBuZXcgRztjYXNlIGo6cmV0dXJuIE8ocnQpfX1TLmV4cG9ydHM9Z3R9LDM4NTE3OmZ1bmN0aW9uKFMsWixpKXt2YXIgcz1pKDMxMTgpLGc9aSg4NTkyNCksYj1pKDI1NzI2KTtmdW5jdGlvbiBPKEkpe3JldHVybiB0eXBlb2YgSS5jb25zdHJ1Y3Rvcj09ImZ1bmN0aW9uIiYmIWIoSSk/cyhnKEkpKTp7fX1TLmV4cG9ydHM9T30sNjU3NzY6ZnVuY3Rpb24oUyl7dmFyIFo9OTAwNzE5OTI1NDc0MDk5MSxpPS9eKD86MHxbMS05XVxkKikkLztmdW5jdGlvbiBzKGcsYil7dmFyIE89dHlwZW9mIGc7cmV0dXJuIGI9Yj09bnVsbD9aOmIsISFiJiYoTz09Im51bWJlciJ8fE8hPSJzeW1ib2wiJiZpLnRlc3QoZykpJiZnPi0xJiZnJTE9PTAmJmc8Yn1TLmV4cG9ydHM9c30sMTY2MTI6ZnVuY3Rpb24oUyxaLGkpe3ZhciBzPWkoNzc4MTMpLGc9aSg5ODYxMiksYj1pKDY1Nzc2KSxPPWkoMTMyMTgpO2Z1bmN0aW9uIEkoJCxSLEYpe2lmKCFPKEYpKXJldHVybiExO3ZhciBMPXR5cGVvZiBSO3JldHVybihMPT0ibnVtYmVyIj9nKEYpJiZiKFIsRi5sZW5ndGgpOkw9PSJzdHJpbmciJiZSIGluIEYpP3MoRltSXSwkKTohMX1TLmV4cG9ydHM9SX0sMTU0MDM6ZnVuY3Rpb24oUyxaLGkpe3ZhciBzPWkoMTQ2OSksZz1pKDMzNDQ4KSxiPS9cLnxcWyg/OlteW1xdXSp8KFsiJ10pKD86KD8hXDEpW15cXF18XFwuKSo/XDEpXF0vLE89L15cdyokLztmdW5jdGlvbiBJKCQsUil7aWYocygkKSlyZXR1cm4hMTt2YXIgRj10eXBlb2YgJDtyZXR1cm4gRj09Im51bWJlciJ8fEY9PSJzeW1ib2wifHxGPT0iYm9vbGVhbiJ8fCQ9PW51bGx8fGcoJCk/ITA6Ty50ZXN0KCQpfHwhYi50ZXN0KCQpfHxSIT1udWxsJiYkIGluIE9iamVjdChSKX1TLmV4cG9ydHM9SX0sMzcwMTk6ZnVuY3Rpb24oUyl7ZnVuY3Rpb24gWihpKXt2YXIgcz10eXBlb2YgaTtyZXR1cm4gcz09InN0cmluZyJ8fHM9PSJudW1iZXIifHxzPT0ic3ltYm9sInx8cz09ImJvb2xlYW4iP2khPT0iX19wcm90b19fIjppPT09bnVsbH1TLmV4cG9ydHM9Wn0sMTUzNDY6ZnVuY3Rpb24oUyxaLGkpe3ZhciBzPWkoMTQ0MjkpLGc9ZnVuY3Rpb24oKXt2YXIgTz0vW14uXSskLy5leGVjKHMmJnMua2V5cyYmcy5rZXlzLklFX1BST1RPfHwiIik7cmV0dXJuIE8/IlN5bWJvbChzcmMpXzEuIitPOiIifSgpO2Z1bmN0aW9uIGIoTyl7cmV0dXJuISFnJiZnIGluIE99Uy5leHBvcnRzPWJ9LDI1NzI2OmZ1bmN0aW9uKFMpe3ZhciBaPU9iamVjdC5wcm90b3R5cGU7ZnVuY3Rpb24gaShzKXt2YXIgZz1zJiZzLmNvbnN0cnVjdG9yLGI9dHlwZW9mIGc9PSJmdW5jdGlvbiImJmcucHJvdG90eXBlfHxaO3JldHVybiBzPT09Yn1TLmV4cG9ydHM9aX0sODkxNjI6ZnVuY3Rpb24oUyxaLGkpe3ZhciBzPWkoMTMyMTgpO2Z1bmN0aW9uIGcoYil7cmV0dXJuIGI9PT1iJiYhcyhiKX1TLmV4cG9ydHM9Z30sMjcwNDA6ZnVuY3Rpb24oUyl7ZnVuY3Rpb24gWigpe3RoaXMuX19kYXRhX189W10sdGhpcy5zaXplPTB9Uy5leHBvcnRzPVp9LDE0MTI1OmZ1bmN0aW9uKFMsWixpKXt2YXIgcz1pKDE4NDcwKSxnPUFycmF5LnByb3RvdHlwZSxiPWcuc3BsaWNlO2Z1bmN0aW9uIE8oSSl7dmFyICQ9dGhpcy5fX2RhdGFfXyxSPXMoJCxJKTtpZihSPDApcmV0dXJuITE7dmFyIEY9JC5sZW5ndGgtMTtyZXR1cm4gUj09Rj8kLnBvcCgpOmIuY2FsbCgkLFIsMSksLS10aGlzLnNpemUsITB9Uy5leHBvcnRzPU99LDgyMTE3OmZ1bmN0aW9uKFMsWixpKXt2YXIgcz1pKDE4NDcwKTtmdW5jdGlvbiBnKGIpe3ZhciBPPXRoaXMuX19kYXRhX18sST1zKE8sYik7cmV0dXJuIEk8MD92b2lkIDA6T1tJXVsxXX1TLmV4cG9ydHM9Z30sNjc1MTg6ZnVuY3Rpb24oUyxaLGkpe3ZhciBzPWkoMTg0NzApO2Z1bmN0aW9uIGcoYil7cmV0dXJuIHModGhpcy5fX2RhdGFfXyxiKT4tMX1TLmV4cG9ydHM9Z30sNTQ3MDU6ZnVuY3Rpb24oUyxaLGkpe3ZhciBzPWkoMTg0NzApO2Z1bmN0aW9uIGcoYixPKXt2YXIgST10aGlzLl9fZGF0YV9fLCQ9cyhJLGIpO3JldHVybiAkPDA/KCsrdGhpcy5zaXplLEkucHVzaChbYixPXSkpOklbJF1bMV09Tyx0aGlzfVMuZXhwb3J0cz1nfSwyNDc4NTpmdW5jdGlvbihTLFosaSl7dmFyIHM9aSgxOTg5KSxnPWkoMzg0MDcpLGI9aSg1NzA3MSk7ZnVuY3Rpb24gTygpe3RoaXMuc2l6ZT0wLHRoaXMuX19kYXRhX189e2hhc2g6bmV3IHMsbWFwOm5ldyhifHxnKSxzdHJpbmc6bmV3IHN9fVMuZXhwb3J0cz1PfSwxMTI4NTpmdW5jdGlvbihTLFosaSl7dmFyIHM9aSg0NTA1MCk7ZnVuY3Rpb24gZyhiKXt2YXIgTz1zKHRoaXMsYikuZGVsZXRlKGIpO3JldHVybiB0aGlzLnNpemUtPU8/MTowLE99Uy5leHBvcnRzPWd9LDk2ZTM6ZnVuY3Rpb24oUyxaLGkpe3ZhciBzPWkoNDUwNTApO2Z1bmN0aW9uIGcoYil7cmV0dXJuIHModGhpcyxiKS5nZXQoYil9Uy5leHBvcnRzPWd9LDQ5OTE2OmZ1bmN0aW9uKFMsWixpKXt2YXIgcz1pKDQ1MDUwKTtmdW5jdGlvbiBnKGIpe3JldHVybiBzKHRoaXMsYikuaGFzKGIpfVMuZXhwb3J0cz1nfSw5NTI2NTpmdW5jdGlvbihTLFosaSl7dmFyIHM9aSg0NTA1MCk7ZnVuY3Rpb24gZyhiLE8pe3ZhciBJPXModGhpcyxiKSwkPUkuc2l6ZTtyZXR1cm4gSS5zZXQoYixPKSx0aGlzLnNpemUrPUkuc2l6ZT09JD8wOjEsdGhpc31TLmV4cG9ydHM9Z30sNjg3NzY6ZnVuY3Rpb24oUyl7ZnVuY3Rpb24gWihpKXt2YXIgcz0tMSxnPUFycmF5KGkuc2l6ZSk7cmV0dXJuIGkuZm9yRWFjaChmdW5jdGlvbihiLE8pe2dbKytzXT1bTyxiXX0pLGd9Uy5leHBvcnRzPVp9LDQyNjM0OmZ1bmN0aW9uKFMpe2Z1bmN0aW9uIFooaSxzKXtyZXR1cm4gZnVuY3Rpb24oZyl7cmV0dXJuIGc9PW51bGw/ITE6Z1tpXT09PXMmJihzIT09dm9pZCAwfHxpIGluIE9iamVjdChnKSl9fVMuZXhwb3J0cz1afSwyNDUyMzpmdW5jdGlvbihTLFosaSl7dmFyIHM9aSgxNTY0NCksZz01MDA7ZnVuY3Rpb24gYihPKXt2YXIgST1zKE8sZnVuY3Rpb24oUil7cmV0dXJuICQuc2l6ZT09PWcmJiQuY2xlYXIoKSxSfSksJD1JLmNhY2hlO3JldHVybiBJfVMuZXhwb3J0cz1ifSw5NDUzNjpmdW5jdGlvbihTLFosaSl7dmFyIHM9aSgxMDg1MiksZz1zKE9iamVjdCwiY3JlYXRlIik7Uy5leHBvcnRzPWd9LDg2OTE2OmZ1bmN0aW9uKFMsWixpKXt2YXIgcz1pKDU1NjkpLGc9cyhPYmplY3Qua2V5cyxPYmplY3QpO1MuZXhwb3J0cz1nfSwzMzQ5ODpmdW5jdGlvbihTKXtmdW5jdGlvbiBaKGkpe3ZhciBzPVtdO2lmKGkhPW51bGwpZm9yKHZhciBnIGluIE9iamVjdChpKSlzLnB1c2goZyk7cmV0dXJuIHN9Uy5leHBvcnRzPVp9LDMxMTY3OmZ1bmN0aW9uKFMsWixpKXtTPWkubm1kKFMpO3ZhciBzPWkoMzE5NTcpLGc9WiYmIVoubm9kZVR5cGUmJlosYj1nJiYhMCYmUyYmIVMubm9kZVR5cGUmJlMsTz1iJiZiLmV4cG9ydHM9PT1nLEk9TyYmcy5wcm9jZXNzLCQ9ZnVuY3Rpb24oKXt0cnl7dmFyIFI9YiYmYi5yZXF1aXJlJiZiLnJlcXVpcmUoInV0aWwiKS50eXBlcztyZXR1cm4gUnx8SSYmSS5iaW5kaW5nJiZJLmJpbmRpbmcoInV0aWwiKX1jYXRjaChGKXt9fSgpO1MuZXhwb3J0cz0kfSw1NTY5OmZ1bmN0aW9uKFMpe2Z1bmN0aW9uIFooaSxzKXtyZXR1cm4gZnVuY3Rpb24oZyl7cmV0dXJuIGkocyhnKSl9fVMuZXhwb3J0cz1afSw0NTM1NzpmdW5jdGlvbihTLFosaSl7dmFyIHM9aSg5Njg3NCksZz1NYXRoLm1heDtmdW5jdGlvbiBiKE8sSSwkKXtyZXR1cm4gST1nKEk9PT12b2lkIDA/Ty5sZW5ndGgtMTpJLDApLGZ1bmN0aW9uKCl7Zm9yKHZhciBSPWFyZ3VtZW50cyxGPS0xLEw9ZyhSLmxlbmd0aC1JLDApLFU9QXJyYXkoTCk7KytGPEw7KVVbRl09UltJK0ZdO0Y9LTE7Zm9yKHZhciBkZT1BcnJheShJKzEpOysrRjxJOylkZVtGXT1SW0ZdO3JldHVybiBkZVtJXT0kKFUpLHMoTyx0aGlzLGRlKX19Uy5leHBvcnRzPWJ9LDM2MzkwOmZ1bmN0aW9uKFMpe2Z1bmN0aW9uIFooaSxzKXtpZighKHM9PT0iY29uc3RydWN0b3IiJiZ0eXBlb2YgaVtzXT09ImZ1bmN0aW9uIikmJnMhPSJfX3Byb3RvX18iKXJldHVybiBpW3NdfVMuZXhwb3J0cz1afSw5MDYxOTpmdW5jdGlvbihTKXt2YXIgWj0iX19sb2Rhc2hfaGFzaF91bmRlZmluZWRfXyI7ZnVuY3Rpb24gaShzKXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5zZXQocyxaKSx0aGlzfVMuZXhwb3J0cz1pfSw3MjM4NTpmdW5jdGlvbihTKXtmdW5jdGlvbiBaKGkpe3JldHVybiB0aGlzLl9fZGF0YV9fLmhhcyhpKX1TLmV4cG9ydHM9Wn0sMjE4MTQ6ZnVuY3Rpb24oUyl7ZnVuY3Rpb24gWihpKXt2YXIgcz0tMSxnPUFycmF5KGkuc2l6ZSk7cmV0dXJuIGkuZm9yRWFjaChmdW5jdGlvbihiKXtnWysrc109Yn0pLGd9Uy5leHBvcnRzPVp9LDMwMDYxOmZ1bmN0aW9uKFMsWixpKXt2YXIgcz1pKDU2NTYwKSxnPWkoMjEyNzUpLGI9ZyhzKTtTLmV4cG9ydHM9Yn0sMjEyNzU6ZnVuY3Rpb24oUyl7dmFyIFo9ODAwLGk9MTYscz1EYXRlLm5vdztmdW5jdGlvbiBnKGIpe3ZhciBPPTAsST0wO3JldHVybiBmdW5jdGlvbigpe3ZhciAkPXMoKSxSPWktKCQtSSk7aWYoST0kLFI+MCl7aWYoKytPPj1aKXJldHVybiBhcmd1bWVudHNbMF19ZWxzZSBPPTA7cmV0dXJuIGIuYXBwbHkodm9pZCAwLGFyZ3VtZW50cyl9fVMuZXhwb3J0cz1nfSwzNzQ2NTpmdW5jdGlvbihTLFosaSl7dmFyIHM9aSgzODQwNyk7ZnVuY3Rpb24gZygpe3RoaXMuX19kYXRhX189bmV3IHMsdGhpcy5zaXplPTB9Uy5leHBvcnRzPWd9LDYzNzc5OmZ1bmN0aW9uKFMpe2Z1bmN0aW9uIFooaSl7dmFyIHM9dGhpcy5fX2RhdGFfXyxnPXMuZGVsZXRlKGkpO3JldHVybiB0aGlzLnNpemU9cy5zaXplLGd9Uy5leHBvcnRzPVp9LDY3NTk5OmZ1bmN0aW9uKFMpe2Z1bmN0aW9uIFooaSl7cmV0dXJuIHRoaXMuX19kYXRhX18uZ2V0KGkpfVMuZXhwb3J0cz1afSw0NDc1ODpmdW5jdGlvbihTKXtmdW5jdGlvbiBaKGkpe3JldHVybiB0aGlzLl9fZGF0YV9fLmhhcyhpKX1TLmV4cG9ydHM9Wn0sMzQzMDk6ZnVuY3Rpb24oUyxaLGkpe3ZhciBzPWkoMzg0MDcpLGc9aSg1NzA3MSksYj1pKDgzMzY5KSxPPTIwMDtmdW5jdGlvbiBJKCQsUil7dmFyIEY9dGhpcy5fX2RhdGFfXztpZihGIGluc3RhbmNlb2Ygcyl7dmFyIEw9Ri5fX2RhdGFfXztpZighZ3x8TC5sZW5ndGg8Ty0xKXJldHVybiBMLnB1c2goWyQsUl0pLHRoaXMuc2l6ZT0rK0Yuc2l6ZSx0aGlzO0Y9dGhpcy5fX2RhdGFfXz1uZXcgYihMKX1yZXR1cm4gRi5zZXQoJCxSKSx0aGlzLnNpemU9Ri5zaXplLHRoaXN9Uy5leHBvcnRzPUl9LDU1NTE0OmZ1bmN0aW9uKFMsWixpKXt2YXIgcz1pKDI0NTIzKSxnPS9bXi5bXF1dK3xcWyg/OigtP1xkKyg/OlwuXGQrKT8pfChbIiddKSgoPzooPyFcMilbXlxcXXxcXC4pKj8pXDIpXF18KD89KD86XC58XFtcXSkoPzpcLnxcW1xdfCQpKS9nLGI9L1xcKFxcKT8vZyxPPXMoZnVuY3Rpb24oSSl7dmFyICQ9W107cmV0dXJuIEkuY2hhckNvZGVBdCgwKT09PTQ2JiYkLnB1c2goIiIpLEkucmVwbGFjZShnLGZ1bmN0aW9uKFIsRixMLFUpeyQucHVzaChMP1UucmVwbGFjZShiLCIkMSIpOkZ8fFIpfSksJH0pO1MuZXhwb3J0cz1PfSw0MDMyNzpmdW5jdGlvbihTLFosaSl7dmFyIHM9aSgzMzQ0OCksZz0xLzA7ZnVuY3Rpb24gYihPKXtpZih0eXBlb2YgTz09InN0cmluZyJ8fHMoTykpcmV0dXJuIE87dmFyIEk9TysiIjtyZXR1cm4gST09IjAiJiYxL089PS1nPyItMCI6SX1TLmV4cG9ydHM9Yn0sODAzNDY6ZnVuY3Rpb24oUyl7dmFyIFo9RnVuY3Rpb24ucHJvdG90eXBlLGk9Wi50b1N0cmluZztmdW5jdGlvbiBzKGcpe2lmKGchPW51bGwpe3RyeXtyZXR1cm4gaS5jYWxsKGcpfWNhdGNoKGIpe310cnl7cmV0dXJuIGcrIiJ9Y2F0Y2goYil7fX1yZXR1cm4iIn1TLmV4cG9ydHM9c30sNjc5OTA6ZnVuY3Rpb24oUyl7dmFyIFo9L1xzLztmdW5jdGlvbiBpKHMpe2Zvcih2YXIgZz1zLmxlbmd0aDtnLS0mJloudGVzdChzLmNoYXJBdChnKSk7KTtyZXR1cm4gZ31TLmV4cG9ydHM9aX0sNTAzNjE6ZnVuY3Rpb24oUyxaLGkpe3ZhciBzPWkoODU5OTApLGc9MSxiPTQ7ZnVuY3Rpb24gTyhJKXtyZXR1cm4gcyhJLGd8Yil9Uy5leHBvcnRzPU99LDc1NzAzOmZ1bmN0aW9uKFMpe2Z1bmN0aW9uIFooaSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGl9fVMuZXhwb3J0cz1afSwyMzI3OTpmdW5jdGlvbihTLFosaSl7dmFyIHM9aSgxMzIxOCksZz1pKDc3NzEpLGI9aSgxNDg0MSksTz0iRXhwZWN0ZWQgYSBmdW5jdGlvbiIsST1NYXRoLm1heCwkPU1hdGgubWluO2Z1bmN0aW9uIFIoRixMLFUpe3ZhciBkZSxvLGosRGUsbWUsXyx2ZT0wLGJlPSExLGxlPSExLFhlPSEwO2lmKHR5cGVvZiBGIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoTyk7TD1iKEwpfHwwLHMoVSkmJihiZT0hIVUubGVhZGluZyxsZT0ibWF4V2FpdCJpbiBVLGo9bGU/SShiKFUubWF4V2FpdCl8fDAsTCk6aixYZT0idHJhaWxpbmciaW4gVT8hIVUudHJhaWxpbmc6WGUpO2Z1bmN0aW9uIG9lKHRlKXt2YXIgUWU9ZGUsX2U9bztyZXR1cm4gZGU9bz12b2lkIDAsdmU9dGUsRGU9Ri5hcHBseShfZSxRZSksRGV9ZnVuY3Rpb24gRmUodGUpe3JldHVybiB2ZT10ZSxtZT1zZXRUaW1lb3V0KGd0LEwpLGJlP29lKHRlKTpEZX1mdW5jdGlvbiB6ZSh0ZSl7dmFyIFFlPXRlLV8sX2U9dGUtdmUsZnQ9TC1RZTtyZXR1cm4gbGU/JChmdCxqLV9lKTpmdH1mdW5jdGlvbiBkdCh0ZSl7dmFyIFFlPXRlLV8sX2U9dGUtdmU7cmV0dXJuIF89PT12b2lkIDB8fFFlPj1MfHxRZTwwfHxsZSYmX2U+PWp9ZnVuY3Rpb24gZ3QoKXt2YXIgdGU9ZygpO2lmKGR0KHRlKSlyZXR1cm4gcnQodGUpO21lPXNldFRpbWVvdXQoZ3QsemUodGUpKX1mdW5jdGlvbiBydCh0ZSl7cmV0dXJuIG1lPXZvaWQgMCxYZSYmZGU/b2UodGUpOihkZT1vPXZvaWQgMCxEZSl9ZnVuY3Rpb24gQ3QoKXttZSE9PXZvaWQgMCYmY2xlYXJUaW1lb3V0KG1lKSx2ZT0wLGRlPV89bz1tZT12b2lkIDB9ZnVuY3Rpb24gb3QoKXtyZXR1cm4gbWU9PT12b2lkIDA/RGU6cnQoZygpKX1mdW5jdGlvbiBHKCl7dmFyIHRlPWcoKSxRZT1kdCh0ZSk7aWYoZGU9YXJndW1lbnRzLG89dGhpcyxfPXRlLFFlKXtpZihtZT09PXZvaWQgMClyZXR1cm4gRmUoXyk7aWYobGUpcmV0dXJuIGNsZWFyVGltZW91dChtZSksbWU9c2V0VGltZW91dChndCxMKSxvZShfKX1yZXR1cm4gbWU9PT12b2lkIDAmJihtZT1zZXRUaW1lb3V0KGd0LEwpKSxEZX1yZXR1cm4gRy5jYW5jZWw9Q3QsRy5mbHVzaD1vdCxHfVMuZXhwb3J0cz1SfSw2NjA3MzpmdW5jdGlvbihTLFosaSl7Uy5leHBvcnRzPWkoODQ0ODYpfSw3NzgxMzpmdW5jdGlvbihTKXtmdW5jdGlvbiBaKGkscyl7cmV0dXJuIGk9PT1zfHxpIT09aSYmcyE9PXN9Uy5leHBvcnRzPVp9LDg0NDg2OmZ1bmN0aW9uKFMsWixpKXt2YXIgcz1pKDc3NDEyKSxnPWkoODk4ODEpLGI9aSg1NDI5MCksTz1pKDE0NjkpO2Z1bmN0aW9uIEkoJCxSKXt2YXIgRj1PKCQpP3M6ZztyZXR1cm4gRigkLGIoUikpfVMuZXhwb3J0cz1JfSwyNTI1OmZ1bmN0aW9uKFMsWixpKXt2YXIgcz1pKDQ3ODE2KSxnPWkoNTQyOTApO2Z1bmN0aW9uIGIoTyxJKXtyZXR1cm4gTyYmcyhPLGcoSSkpfVMuZXhwb3J0cz1ifSwyNzM2MTpmdW5jdGlvbihTLFosaSl7dmFyIHM9aSg5Nzc4Nik7ZnVuY3Rpb24gZyhiLE8sSSl7dmFyICQ9Yj09bnVsbD92b2lkIDA6cyhiLE8pO3JldHVybiAkPT09dm9pZCAwP0k6JH1TLmV4cG9ydHM9Z30sNzkwOTU6ZnVuY3Rpb24oUyxaLGkpe3ZhciBzPWkoMTMpLGc9aSgyMjIpO2Z1bmN0aW9uIGIoTyxJKXtyZXR1cm4gTyE9bnVsbCYmZyhPLEkscyl9Uy5leHBvcnRzPWJ9LDY1NTc6ZnVuY3Rpb24oUyl7ZnVuY3Rpb24gWihpKXtyZXR1cm4gaX1TLmV4cG9ydHM9Wn0sMzU2OTQ6ZnVuY3Rpb24oUyxaLGkpe3ZhciBzPWkoOTQ1NCksZz1pKDM3MDA1KSxiPU9iamVjdC5wcm90b3R5cGUsTz1iLmhhc093blByb3BlcnR5LEk9Yi5wcm9wZXJ0eUlzRW51bWVyYWJsZSwkPXMoZnVuY3Rpb24oKXtyZXR1cm4gYXJndW1lbnRzfSgpKT9zOmZ1bmN0aW9uKFIpe3JldHVybiBnKFIpJiZPLmNhbGwoUiwiY2FsbGVlIikmJiFJLmNhbGwoUiwiY2FsbGVlIil9O1MuZXhwb3J0cz0kfSw5ODYxMjpmdW5jdGlvbihTLFosaSl7dmFyIHM9aSgyMzU2MCksZz1pKDQxNzgwKTtmdW5jdGlvbiBiKE8pe3JldHVybiBPIT1udWxsJiZnKE8ubGVuZ3RoKSYmIXMoTyl9Uy5leHBvcnRzPWJ9LDI5MjQ2OmZ1bmN0aW9uKFMsWixpKXt2YXIgcz1pKDk4NjEyKSxnPWkoMzcwMDUpO2Z1bmN0aW9uIGIoTyl7cmV0dXJuIGcoTykmJnMoTyl9Uy5leHBvcnRzPWJ9LDQ0MTQ0OmZ1bmN0aW9uKFMsWixpKXtTPWkubm1kKFMpO3ZhciBzPWkoNTU2MzkpLGc9aSg5NTA2MiksYj1aJiYhWi5ub2RlVHlwZSYmWixPPWImJiEwJiZTJiYhUy5ub2RlVHlwZSYmUyxJPU8mJk8uZXhwb3J0cz09PWIsJD1JP3MuQnVmZmVyOnZvaWQgMCxSPSQ/JC5pc0J1ZmZlcjp2b2lkIDAsRj1SfHxnO1MuZXhwb3J0cz1GfSwyMzU2MDpmdW5jdGlvbihTLFosaSl7dmFyIHM9aSg0NDIzOSksZz1pKDEzMjE4KSxiPSJbb2JqZWN0IEFzeW5jRnVuY3Rpb25dIixPPSJbb2JqZWN0IEZ1bmN0aW9uXSIsST0iW29iamVjdCBHZW5lcmF0b3JGdW5jdGlvbl0iLCQ9IltvYmplY3QgUHJveHldIjtmdW5jdGlvbiBSKEYpe2lmKCFnKEYpKXJldHVybiExO3ZhciBMPXMoRik7cmV0dXJuIEw9PU98fEw9PUl8fEw9PWJ8fEw9PSR9Uy5leHBvcnRzPVJ9LDQxNzgwOmZ1bmN0aW9uKFMpe3ZhciBaPTkwMDcxOTkyNTQ3NDA5OTE7ZnVuY3Rpb24gaShzKXtyZXR1cm4gdHlwZW9mIHM9PSJudW1iZXIiJiZzPi0xJiZzJTE9PTAmJnM8PVp9Uy5leHBvcnRzPWl9LDU2Njg4OmZ1bmN0aW9uKFMsWixpKXt2YXIgcz1pKDI1NTg4KSxnPWkoNTE3MTcpLGI9aSgzMTE2NyksTz1iJiZiLmlzTWFwLEk9Tz9nKE8pOnM7Uy5leHBvcnRzPUl9LDEzMjE4OmZ1bmN0aW9uKFMpe2Z1bmN0aW9uIFooaSl7dmFyIHM9dHlwZW9mIGk7cmV0dXJuIGkhPW51bGwmJihzPT0ib2JqZWN0Inx8cz09ImZ1bmN0aW9uIil9Uy5leHBvcnRzPVp9LDY4NjMwOmZ1bmN0aW9uKFMsWixpKXt2YXIgcz1pKDQ0MjM5KSxnPWkoODU5MjQpLGI9aSgzNzAwNSksTz0iW29iamVjdCBPYmplY3RdIixJPUZ1bmN0aW9uLnByb3RvdHlwZSwkPU9iamVjdC5wcm90b3R5cGUsUj1JLnRvU3RyaW5nLEY9JC5oYXNPd25Qcm9wZXJ0eSxMPVIuY2FsbChPYmplY3QpO2Z1bmN0aW9uIFUoZGUpe2lmKCFiKGRlKXx8cyhkZSkhPU8pcmV0dXJuITE7dmFyIG89ZyhkZSk7aWYobz09PW51bGwpcmV0dXJuITA7dmFyIGo9Ri5jYWxsKG8sImNvbnN0cnVjdG9yIikmJm8uY29uc3RydWN0b3I7cmV0dXJuIHR5cGVvZiBqPT0iZnVuY3Rpb24iJiZqIGluc3RhbmNlb2YgaiYmUi5jYWxsKGopPT1MfVMuZXhwb3J0cz1VfSw3MjkyODpmdW5jdGlvbihTLFosaSl7dmFyIHM9aSgyOTIyMSksZz1pKDUxNzE3KSxiPWkoMzExNjcpLE89YiYmYi5pc1NldCxJPU8/ZyhPKTpzO1MuZXhwb3J0cz1JfSw0NzAzNzpmdW5jdGlvbihTLFosaSl7dmFyIHM9aSg0NDIzOSksZz1pKDE0NjkpLGI9aSgzNzAwNSksTz0iW29iamVjdCBTdHJpbmddIjtmdW5jdGlvbiBJKCQpe3JldHVybiB0eXBlb2YgJD09InN0cmluZyJ8fCFnKCQpJiZiKCQpJiZzKCQpPT1PfVMuZXhwb3J0cz1JfSwzNjcxOTpmdW5jdGlvbihTLFosaSl7dmFyIHM9aSgzODc0OSksZz1pKDUxNzE3KSxiPWkoMzExNjcpLE89YiYmYi5pc1R5cGVkQXJyYXksST1PP2coTyk6cztTLmV4cG9ydHM9SX0sMzY3NDpmdW5jdGlvbihTLFosaSl7dmFyIHM9aSgxNDYzNiksZz1pKDI4MCksYj1pKDk4NjEyKTtmdW5jdGlvbiBPKEkpe3JldHVybiBiKEkpP3MoSSk6ZyhJKX1TLmV4cG9ydHM9T30sODE3MDQ6ZnVuY3Rpb24oUyxaLGkpe3ZhciBzPWkoMTQ2MzYpLGc9aSgxMDMxMyksYj1pKDk4NjEyKTtmdW5jdGlvbiBPKEkpe3JldHVybiBiKEkpP3MoSSwhMCk6ZyhJKX1TLmV4cG9ydHM9T30sMzUxNjE6ZnVuY3Rpb24oUyxaLGkpe3ZhciBzPWkoMjk5MzIpLGc9aSg2NzIwNiksYj1pKDY5MTk5KSxPPWkoMTQ2OSk7ZnVuY3Rpb24gSSgkLFIpe3ZhciBGPU8oJCk/czpiO3JldHVybiBGKCQsZyhSLDMpKX1TLmV4cG9ydHM9SX0sMTU2NDQ6ZnVuY3Rpb24oUyxaLGkpe3ZhciBzPWkoODMzNjkpLGc9IkV4cGVjdGVkIGEgZnVuY3Rpb24iO2Z1bmN0aW9uIGIoTyxJKXtpZih0eXBlb2YgTyE9ImZ1bmN0aW9uInx8SSE9bnVsbCYmdHlwZW9mIEkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcihnKTt2YXIgJD1mdW5jdGlvbigpe3ZhciBSPWFyZ3VtZW50cyxGPUk/SS5hcHBseSh0aGlzLFIpOlJbMF0sTD0kLmNhY2hlO2lmKEwuaGFzKEYpKXJldHVybiBMLmdldChGKTt2YXIgVT1PLmFwcGx5KHRoaXMsUik7cmV0dXJuICQuY2FjaGU9TC5zZXQoRixVKXx8TCxVfTtyZXR1cm4gJC5jYWNoZT1uZXcoYi5DYWNoZXx8cyksJH1iLkNhY2hlPXMsUy5leHBvcnRzPWJ9LDgyNDkyOmZ1bmN0aW9uKFMsWixpKXt2YXIgcz1pKDQyOTgwKSxnPWkoMjE0NjMpLGI9ZyhmdW5jdGlvbihPLEksJCl7cyhPLEksJCl9KTtTLmV4cG9ydHM9Yn0sNzc3MTpmdW5jdGlvbihTLFosaSl7dmFyIHM9aSg1NTYzOSksZz1mdW5jdGlvbigpe3JldHVybiBzLkRhdGUubm93KCl9O1MuZXhwb3J0cz1nfSwzOTYwMTpmdW5jdGlvbihTLFosaSl7dmFyIHM9aSg0MDM3MSksZz1pKDc5MTUyKSxiPWkoMTU0MDMpLE89aSg0MDMyNyk7ZnVuY3Rpb24gSSgkKXtyZXR1cm4gYigkKT9zKE8oJCkpOmcoJCl9Uy5leHBvcnRzPUl9LDcwNDc5OmZ1bmN0aW9uKFMpe2Z1bmN0aW9uIFooKXtyZXR1cm5bXX1TLmV4cG9ydHM9Wn0sOTUwNjI6ZnVuY3Rpb24oUyl7ZnVuY3Rpb24gWigpe3JldHVybiExfVMuZXhwb3J0cz1afSwyMzQ5MzpmdW5jdGlvbihTLFosaSl7dmFyIHM9aSgyMzI3OSksZz1pKDEzMjE4KSxiPSJFeHBlY3RlZCBhIGZ1bmN0aW9uIjtmdW5jdGlvbiBPKEksJCxSKXt2YXIgRj0hMCxMPSEwO2lmKHR5cGVvZiBJIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoYik7cmV0dXJuIGcoUikmJihGPSJsZWFkaW5nImluIFI/ISFSLmxlYWRpbmc6RixMPSJ0cmFpbGluZyJpbiBSPyEhUi50cmFpbGluZzpMKSxzKEksJCx7bGVhZGluZzpGLG1heFdhaXQ6JCx0cmFpbGluZzpMfSl9Uy5leHBvcnRzPU99LDE0ODQxOmZ1bmN0aW9uKFMsWixpKXt2YXIgcz1pKDI3NTYxKSxnPWkoMTMyMTgpLGI9aSgzMzQ0OCksTz1OYU4sST0vXlstK10weFswLTlhLWZdKyQvaSwkPS9eMGJbMDFdKyQvaSxSPS9eMG9bMC03XSskL2ksRj1wYXJzZUludDtmdW5jdGlvbiBMKFUpe2lmKHR5cGVvZiBVPT0ibnVtYmVyIilyZXR1cm4gVTtpZihiKFUpKXJldHVybiBPO2lmKGcoVSkpe3ZhciBkZT10eXBlb2YgVS52YWx1ZU9mPT0iZnVuY3Rpb24iP1UudmFsdWVPZigpOlU7VT1nKGRlKT9kZSsiIjpkZX1pZih0eXBlb2YgVSE9InN0cmluZyIpcmV0dXJuIFU9PT0wP1U6K1U7VT1zKFUpO3ZhciBvPSQudGVzdChVKTtyZXR1cm4gb3x8Ui50ZXN0KFUpP0YoVS5zbGljZSgyKSxvPzI6OCk6SS50ZXN0KFUpP086K1V9Uy5leHBvcnRzPUx9LDU5ODgxOmZ1bmN0aW9uKFMsWixpKXt2YXIgcz1pKDk4MzYzKSxnPWkoODE3MDQpO2Z1bmN0aW9uIGIoTyl7cmV0dXJuIHMoTyxnKE8pKX1TLmV4cG9ydHM9Yn0sMjQ3NTQ6ZnVuY3Rpb24oUyxaLGkpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoWiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksWi5hdXRvcHJlZml4PXZvaWQgMDt2YXIgcz1pKDI1MjUpLGc9TyhzKSxiPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKFIpe2Zvcih2YXIgRj0xO0Y8YXJndW1lbnRzLmxlbmd0aDtGKyspe3ZhciBMPWFyZ3VtZW50c1tGXTtmb3IodmFyIFUgaW4gTClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoTCxVKSYmKFJbVV09TFtVXSl9cmV0dXJuIFJ9O2Z1bmN0aW9uIE8oUil7cmV0dXJuIFImJlIuX19lc01vZHVsZT9SOntkZWZhdWx0OlJ9fXZhciBJPXtib3JkZXJSYWRpdXM6ZnVuY3Rpb24oRil7cmV0dXJue21zQm9yZGVyUmFkaXVzOkYsTW96Qm9yZGVyUmFkaXVzOkYsT0JvcmRlclJhZGl1czpGLFdlYmtpdEJvcmRlclJhZGl1czpGLGJvcmRlclJhZGl1czpGfX0sYm94U2hhZG93OmZ1bmN0aW9uKEYpe3JldHVybnttc0JveFNoYWRvdzpGLE1vekJveFNoYWRvdzpGLE9Cb3hTaGFkb3c6RixXZWJraXRCb3hTaGFkb3c6Rixib3hTaGFkb3c6Rn19LHVzZXJTZWxlY3Q6ZnVuY3Rpb24oRil7cmV0dXJue1dlYmtpdFRvdWNoQ2FsbG91dDpGLEtodG1sVXNlclNlbGVjdDpGLE1velVzZXJTZWxlY3Q6Rixtc1VzZXJTZWxlY3Q6RixXZWJraXRVc2VyU2VsZWN0OkYsdXNlclNlbGVjdDpGfX0sZmxleDpmdW5jdGlvbihGKXtyZXR1cm57V2Via2l0Qm94RmxleDpGLE1vekJveEZsZXg6RixXZWJraXRGbGV4OkYsbXNGbGV4OkYsZmxleDpGfX0sZmxleEJhc2lzOmZ1bmN0aW9uKEYpe3JldHVybntXZWJraXRGbGV4QmFzaXM6RixmbGV4QmFzaXM6Rn19LGp1c3RpZnlDb250ZW50OmZ1bmN0aW9uKEYpe3JldHVybntXZWJraXRKdXN0aWZ5Q29udGVudDpGLGp1c3RpZnlDb250ZW50OkZ9fSx0cmFuc2l0aW9uOmZ1bmN0aW9uKEYpe3JldHVybnttc1RyYW5zaXRpb246RixNb3pUcmFuc2l0aW9uOkYsT1RyYW5zaXRpb246RixXZWJraXRUcmFuc2l0aW9uOkYsdHJhbnNpdGlvbjpGfX0sdHJhbnNmb3JtOmZ1bmN0aW9uKEYpe3JldHVybnttc1RyYW5zZm9ybTpGLE1velRyYW5zZm9ybTpGLE9UcmFuc2Zvcm06RixXZWJraXRUcmFuc2Zvcm06Rix0cmFuc2Zvcm06Rn19LGFic29sdXRlOmZ1bmN0aW9uKEYpe3ZhciBMPUYmJkYuc3BsaXQoIiAiKTtyZXR1cm57cG9zaXRpb246ImFic29sdXRlIix0b3A6TCYmTFswXSxyaWdodDpMJiZMWzFdLGJvdHRvbTpMJiZMWzJdLGxlZnQ6TCYmTFszXX19LGV4dGVuZDpmdW5jdGlvbihGLEwpe3ZhciBVPUxbRl07cmV0dXJuIFV8fHtleHRlbmQ6Rn19fSwkPVouYXV0b3ByZWZpeD1mdW5jdGlvbihGKXt2YXIgTD17fTtyZXR1cm4oMCxnLmRlZmF1bHQpKEYsZnVuY3Rpb24oVSxkZSl7dmFyIG89e307KDAsZy5kZWZhdWx0KShVLGZ1bmN0aW9uKGosRGUpe3ZhciBtZT1JW0RlXTttZT9vPWIoe30sbyxtZShqKSk6b1tEZV09an0pLExbZGVdPW99KSxMfTtaLmRlZmF1bHQ9JH0sMzYwMDI6ZnVuY3Rpb24oUyxaLGkpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoWiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksWi5hY3RpdmU9dm9pZCAwO3ZhciBzPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKEwpe2Zvcih2YXIgVT0xO1U8YXJndW1lbnRzLmxlbmd0aDtVKyspe3ZhciBkZT1hcmd1bWVudHNbVV07Zm9yKHZhciBvIGluIGRlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkZSxvKSYmKExbb109ZGVbb10pfXJldHVybiBMfSxnPWkoNjcyOTQpLGI9TyhnKTtmdW5jdGlvbiBPKEwpe3JldHVybiBMJiZMLl9fZXNNb2R1bGU/TDp7ZGVmYXVsdDpMfX1mdW5jdGlvbiBJKEwsVSl7aWYoIShMIGluc3RhbmNlb2YgVSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gJChMLFUpe2lmKCFMKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIFUmJih0eXBlb2YgVT09Im9iamVjdCJ8fHR5cGVvZiBVPT0iZnVuY3Rpb24iKT9VOkx9ZnVuY3Rpb24gUihMLFUpe2lmKHR5cGVvZiBVIT0iZnVuY3Rpb24iJiZVIT09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90ICIrdHlwZW9mIFUpO0wucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoVSYmVS5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpMLGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLFUmJihPYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mKEwsVSk6TC5fX3Byb3RvX189VSl9dmFyIEY9Wi5hY3RpdmU9ZnVuY3Rpb24oVSl7dmFyIGRlPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXToic3BhbiI7cmV0dXJuIGZ1bmN0aW9uKG8pe1IoaixvKTtmdW5jdGlvbiBqKCl7dmFyIERlLG1lLF8sdmU7SSh0aGlzLGopO2Zvcih2YXIgYmU9YXJndW1lbnRzLmxlbmd0aCxsZT1BcnJheShiZSksWGU9MDtYZTxiZTtYZSsrKWxlW1hlXT1hcmd1bWVudHNbWGVdO3JldHVybiB2ZT0obWU9KF89JCh0aGlzLChEZT1qLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGopKS5jYWxsLmFwcGx5KERlLFt0aGlzXS5jb25jYXQobGUpKSksXyksXy5zdGF0ZT17YWN0aXZlOiExfSxfLmhhbmRsZU1vdXNlRG93bj1mdW5jdGlvbigpe3JldHVybiBfLnNldFN0YXRlKHthY3RpdmU6ITB9KX0sXy5oYW5kbGVNb3VzZVVwPWZ1bmN0aW9uKCl7cmV0dXJuIF8uc2V0U3RhdGUoe2FjdGl2ZTohMX0pfSxfLnJlbmRlcj1mdW5jdGlvbigpe3JldHVybiBiLmRlZmF1bHQuY3JlYXRlRWxlbWVudChkZSx7b25Nb3VzZURvd246Xy5oYW5kbGVNb3VzZURvd24sb25Nb3VzZVVwOl8uaGFuZGxlTW91c2VVcH0sYi5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoVSxzKHt9LF8ucHJvcHMsXy5zdGF0ZSkpKX0sbWUpLCQoXyx2ZSl9cmV0dXJuIGp9KGIuZGVmYXVsdC5Db21wb25lbnQpfTtaLmRlZmF1bHQ9Rn0sOTE3NjU6ZnVuY3Rpb24oUyxaLGkpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoWiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksWi5ob3Zlcj12b2lkIDA7dmFyIHM9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24oTCl7Zm9yKHZhciBVPTE7VTxhcmd1bWVudHMubGVuZ3RoO1UrKyl7dmFyIGRlPWFyZ3VtZW50c1tVXTtmb3IodmFyIG8gaW4gZGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGRlLG8pJiYoTFtvXT1kZVtvXSl9cmV0dXJuIEx9LGc9aSg2NzI5NCksYj1PKGcpO2Z1bmN0aW9uIE8oTCl7cmV0dXJuIEwmJkwuX19lc01vZHVsZT9MOntkZWZhdWx0Okx9fWZ1bmN0aW9uIEkoTCxVKXtpZighKEwgaW5zdGFuY2VvZiBVKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiAkKEwsVSl7aWYoIUwpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gVSYmKHR5cGVvZiBVPT0ib2JqZWN0Inx8dHlwZW9mIFU9PSJmdW5jdGlvbiIpP1U6TH1mdW5jdGlvbiBSKEwsVSl7aWYodHlwZW9mIFUhPSJmdW5jdGlvbiImJlUhPT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgIit0eXBlb2YgVSk7TC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShVJiZVLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOkwsZW51bWVyYWJsZTohMSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksVSYmKE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YoTCxVKTpMLl9fcHJvdG9fXz1VKX12YXIgRj1aLmhvdmVyPWZ1bmN0aW9uKFUpe3ZhciBkZT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06InNwYW4iO3JldHVybiBmdW5jdGlvbihvKXtSKGosbyk7ZnVuY3Rpb24gaigpe3ZhciBEZSxtZSxfLHZlO0kodGhpcyxqKTtmb3IodmFyIGJlPWFyZ3VtZW50cy5sZW5ndGgsbGU9QXJyYXkoYmUpLFhlPTA7WGU8YmU7WGUrKylsZVtYZV09YXJndW1lbnRzW1hlXTtyZXR1cm4gdmU9KG1lPShfPSQodGhpcywoRGU9ai5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihqKSkuY2FsbC5hcHBseShEZSxbdGhpc10uY29uY2F0KGxlKSkpLF8pLF8uc3RhdGU9e2hvdmVyOiExfSxfLmhhbmRsZU1vdXNlT3Zlcj1mdW5jdGlvbigpe3JldHVybiBfLnNldFN0YXRlKHtob3ZlcjohMH0pfSxfLmhhbmRsZU1vdXNlT3V0PWZ1bmN0aW9uKCl7cmV0dXJuIF8uc2V0U3RhdGUoe2hvdmVyOiExfSl9LF8ucmVuZGVyPWZ1bmN0aW9uKCl7cmV0dXJuIGIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGRlLHtvbk1vdXNlT3ZlcjpfLmhhbmRsZU1vdXNlT3Zlcixvbk1vdXNlT3V0Ol8uaGFuZGxlTW91c2VPdXR9LGIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFUscyh7fSxfLnByb3BzLF8uc3RhdGUpKSl9LG1lKSwkKF8sdmUpfXJldHVybiBqfShiLmRlZmF1bHQuQ29tcG9uZW50KX07Wi5kZWZhdWx0PUZ9LDE0MTQ3OmZ1bmN0aW9uKFMsWixpKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KFosIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFouZmxhdHRlbk5hbWVzPXZvaWQgMDt2YXIgcz1pKDQ3MDM3KSxnPUwocyksYj1pKDI1MjUpLE89TChiKSxJPWkoNjg2MzApLCQ9TChJKSxSPWkoMzUxNjEpLEY9TChSKTtmdW5jdGlvbiBMKGRlKXtyZXR1cm4gZGUmJmRlLl9fZXNNb2R1bGU/ZGU6e2RlZmF1bHQ6ZGV9fXZhciBVPVouZmxhdHRlbk5hbWVzPWZ1bmN0aW9uIGRlKCl7dmFyIG89YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT12b2lkIDA/YXJndW1lbnRzWzBdOltdLGo9W107cmV0dXJuKDAsRi5kZWZhdWx0KShvLGZ1bmN0aW9uKERlKXtBcnJheS5pc0FycmF5KERlKT9kZShEZSkubWFwKGZ1bmN0aW9uKG1lKXtyZXR1cm4gai5wdXNoKG1lKX0pOigwLCQuZGVmYXVsdCkoRGUpPygwLE8uZGVmYXVsdCkoRGUsZnVuY3Rpb24obWUsXyl7bWU9PT0hMCYmai5wdXNoKF8pLGoucHVzaChfKyItIittZSl9KTooMCxnLmRlZmF1bHQpKERlKSYmai5wdXNoKERlKX0pLGp9O1ouZGVmYXVsdD1VfSw3OTk0MTpmdW5jdGlvbihTLFosaSl7InVzZSBzdHJpY3QiO3ZhciBzO3M9e3ZhbHVlOiEwfSxzPXM9cz1zPXM9dm9pZCAwO3ZhciBnPWkoMTQxNDcpLGI9RGUoZyksTz1pKDE4NTU2KSxJPURlKE8pLCQ9aSgyNDc1NCksUj1EZSgkKSxGPWkoOTE3NjUpLEw9RGUoRiksVT1pKDM2MDAyKSxkZT1EZShVKSxvPWkoNTc3NDIpLGo9RGUobyk7ZnVuY3Rpb24gRGUoXyl7cmV0dXJuIF8mJl8uX19lc01vZHVsZT9fOntkZWZhdWx0Ol99fXM9TC5kZWZhdWx0LHM9TC5kZWZhdWx0LHM9ZGUuZGVmYXVsdCxzPWouZGVmYXVsdDt2YXIgbWU9cz1mdW5jdGlvbih2ZSl7Zm9yKHZhciBiZT1hcmd1bWVudHMubGVuZ3RoLGxlPUFycmF5KGJlPjE/YmUtMTowKSxYZT0xO1hlPGJlO1hlKyspbGVbWGUtMV09YXJndW1lbnRzW1hlXTt2YXIgb2U9KDAsYi5kZWZhdWx0KShsZSksRmU9KDAsSS5kZWZhdWx0KSh2ZSxvZSk7cmV0dXJuKDAsUi5kZWZhdWx0KShGZSl9O1ouWlA9bWV9LDU3NzQyOmZ1bmN0aW9uKFMsWil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShaLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgaT1mdW5jdGlvbihnLGIpe3ZhciBPPXt9LEk9ZnVuY3Rpb24oUil7dmFyIEY9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOiEwO09bUl09Rn07cmV0dXJuIGc9PT0wJiZJKCJmaXJzdC1jaGlsZCIpLGc9PT1iLTEmJkkoImxhc3QtY2hpbGQiKSwoZz09PTB8fGclMj09PTApJiZJKCJldmVuIiksTWF0aC5hYnMoZyUyKT09PTEmJkkoIm9kZCIpLEkoIm50aC1jaGlsZCIsZyksT307Wi5kZWZhdWx0PWl9LDE4NTU2OmZ1bmN0aW9uKFMsWixpKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KFosIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFoubWVyZ2VDbGFzc2VzPXZvaWQgMDt2YXIgcz1pKDI1MjUpLGc9JChzKSxiPWkoNTAzNjEpLE89JChiKSxJPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKEYpe2Zvcih2YXIgTD0xO0w8YXJndW1lbnRzLmxlbmd0aDtMKyspe3ZhciBVPWFyZ3VtZW50c1tMXTtmb3IodmFyIGRlIGluIFUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKFUsZGUpJiYoRltkZV09VVtkZV0pfXJldHVybiBGfTtmdW5jdGlvbiAkKEYpe3JldHVybiBGJiZGLl9fZXNNb2R1bGU/Rjp7ZGVmYXVsdDpGfX12YXIgUj1aLm1lcmdlQ2xhc3Nlcz1mdW5jdGlvbihMKXt2YXIgVT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06W10sZGU9TC5kZWZhdWx0JiYoMCxPLmRlZmF1bHQpKEwuZGVmYXVsdCl8fHt9O3JldHVybiBVLm1hcChmdW5jdGlvbihvKXt2YXIgaj1MW29dO3JldHVybiBqJiYoMCxnLmRlZmF1bHQpKGosZnVuY3Rpb24oRGUsbWUpe2RlW21lXXx8KGRlW21lXT17fSksZGVbbWVdPUkoe30sZGVbbWVdLGpbbWVdKX0pLG99KSxkZX07Wi5kZWZhdWx0PVJ9LDU2MTQ6ZnVuY3Rpb24oUyxaKXsidXNlIHN0cmljdCI7Y29uc3R7aGFzT3duUHJvcGVydHk6aX09T2JqZWN0LnByb3RvdHlwZSxzPW1lKCk7cy5jb25maWd1cmU9bWUscy5zdHJpbmdpZnk9cyxzLmRlZmF1bHQ9cyxaLnN0cmluZ2lmeT1zLFouY29uZmlndXJlPW1lLFMuZXhwb3J0cz1zO2NvbnN0IGc9L1tcdTAwMDAtXHUwMDFmXHUwMDIyXHUwMDVjXHVkODAwLVx1ZGZmZl0vO2Z1bmN0aW9uIGIoXyl7cmV0dXJuIF8ubGVuZ3RoPDVlMyYmIWcudGVzdChfKT9gIiR7X30iYDpKU09OLnN0cmluZ2lmeShfKX1mdW5jdGlvbiBPKF8sdmUpe2lmKF8ubGVuZ3RoPjIwMHx8dmUpcmV0dXJuIF8uc29ydCh2ZSk7Zm9yKGxldCBiZT0xO2JlPF8ubGVuZ3RoO2JlKyspe2NvbnN0IGxlPV9bYmVdO2xldCBYZT1iZTtmb3IoO1hlIT09MCYmX1tYZS0xXT5sZTspX1tYZV09X1tYZS0xXSxYZS0tO19bWGVdPWxlfXJldHVybiBffWNvbnN0IEk9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihPYmplY3QuZ2V0UHJvdG90eXBlT2YoT2JqZWN0LmdldFByb3RvdHlwZU9mKG5ldyBJbnQ4QXJyYXkpKSxTeW1ib2wudG9TdHJpbmdUYWcpLmdldDtmdW5jdGlvbiAkKF8pe3JldHVybiBJLmNhbGwoXykhPT12b2lkIDAmJl8ubGVuZ3RoIT09MH1mdW5jdGlvbiBSKF8sdmUsYmUpe18ubGVuZ3RoPGJlJiYoYmU9Xy5sZW5ndGgpO2NvbnN0IGxlPXZlPT09IiwiPyIiOiIgIjtsZXQgWGU9YCIwIjoke2xlfSR7X1swXX1gO2ZvcihsZXQgb2U9MTtvZTxiZTtvZSsrKVhlKz1gJHt2ZX0iJHtvZX0iOiR7bGV9JHtfW29lXX1gO3JldHVybiBYZX1mdW5jdGlvbiBGKF8pe2lmKGkuY2FsbChfLCJjaXJjdWxhclZhbHVlIikpe2NvbnN0IHZlPV8uY2lyY3VsYXJWYWx1ZTtpZih0eXBlb2YgdmU9PSJzdHJpbmciKXJldHVybmAiJHt2ZX0iYDtpZih2ZT09bnVsbClyZXR1cm4gdmU7aWYodmU9PT1FcnJvcnx8dmU9PT1UeXBlRXJyb3IpcmV0dXJue3RvU3RyaW5nKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiQ29udmVydGluZyBjaXJjdWxhciBzdHJ1Y3R1cmUgdG8gSlNPTiIpfX07dGhyb3cgbmV3IFR5cGVFcnJvcignVGhlICJjaXJjdWxhclZhbHVlIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgc3RyaW5nIG9yIHRoZSB2YWx1ZSBudWxsIG9yIHVuZGVmaW5lZCcpfXJldHVybiciW0NpcmN1bGFyXSInfWZ1bmN0aW9uIEwoXyl7bGV0IHZlO2lmKGkuY2FsbChfLCJkZXRlcm1pbmlzdGljIikmJih2ZT1fLmRldGVybWluaXN0aWMsdHlwZW9mIHZlIT0iYm9vbGVhbiImJnR5cGVvZiB2ZSE9ImZ1bmN0aW9uIikpdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlICJkZXRlcm1pbmlzdGljIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgYm9vbGVhbiBvciBjb21wYXJhdG9yIGZ1bmN0aW9uJyk7cmV0dXJuIHZlPT09dm9pZCAwPyEwOnZlfWZ1bmN0aW9uIFUoXyx2ZSl7bGV0IGJlO2lmKGkuY2FsbChfLHZlKSYmKGJlPV9bdmVdLHR5cGVvZiBiZSE9ImJvb2xlYW4iKSl0aHJvdyBuZXcgVHlwZUVycm9yKGBUaGUgIiR7dmV9IiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgYm9vbGVhbmApO3JldHVybiBiZT09PXZvaWQgMD8hMDpiZX1mdW5jdGlvbiBkZShfLHZlKXtsZXQgYmU7aWYoaS5jYWxsKF8sdmUpKXtpZihiZT1fW3ZlXSx0eXBlb2YgYmUhPSJudW1iZXIiKXRocm93IG5ldyBUeXBlRXJyb3IoYFRoZSAiJHt2ZX0iIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBudW1iZXJgKTtpZighTnVtYmVyLmlzSW50ZWdlcihiZSkpdGhyb3cgbmV3IFR5cGVFcnJvcihgVGhlICIke3ZlfSIgYXJndW1lbnQgbXVzdCBiZSBhbiBpbnRlZ2VyYCk7aWYoYmU8MSl0aHJvdyBuZXcgUmFuZ2VFcnJvcihgVGhlICIke3ZlfSIgYXJndW1lbnQgbXVzdCBiZSA+PSAxYCl9cmV0dXJuIGJlPT09dm9pZCAwPzEvMDpiZX1mdW5jdGlvbiBvKF8pe3JldHVybiBfPT09MT8iMSBpdGVtIjpgJHtffSBpdGVtc2B9ZnVuY3Rpb24gaihfKXtjb25zdCB2ZT1uZXcgU2V0O2Zvcihjb25zdCBiZSBvZiBfKSh0eXBlb2YgYmU9PSJzdHJpbmcifHx0eXBlb2YgYmU9PSJudW1iZXIiKSYmdmUuYWRkKFN0cmluZyhiZSkpO3JldHVybiB2ZX1mdW5jdGlvbiBEZShfKXtpZihpLmNhbGwoXywic3RyaWN0Iikpe2NvbnN0IHZlPV8uc3RyaWN0O2lmKHR5cGVvZiB2ZSE9ImJvb2xlYW4iKXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSAic3RyaWN0IiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgYm9vbGVhbicpO2lmKHZlKXJldHVybiBiZT0+e2xldCBsZT1gT2JqZWN0IGNhbiBub3Qgc2FmZWx5IGJlIHN0cmluZ2lmaWVkLiBSZWNlaXZlZCB0eXBlICR7dHlwZW9mIGJlfWA7dGhyb3cgdHlwZW9mIGJlIT0iZnVuY3Rpb24iJiYobGUrPWAgKCR7YmUudG9TdHJpbmcoKX0pYCksbmV3IEVycm9yKGxlKX19fWZ1bmN0aW9uIG1lKF8pe189SnUoe30sXyk7Y29uc3QgdmU9RGUoXyk7dmUmJihfLmJpZ2ludD09PXZvaWQgMCYmKF8uYmlnaW50PSExKSwiY2lyY3VsYXJWYWx1ZSJpbiBffHwoXy5jaXJjdWxhclZhbHVlPUVycm9yKSk7Y29uc3QgYmU9RihfKSxsZT1VKF8sImJpZ2ludCIpLFhlPUwoXyksb2U9dHlwZW9mIFhlPT0iZnVuY3Rpb24iP1hlOnZvaWQgMCxGZT1kZShfLCJtYXhpbXVtRGVwdGgiKSx6ZT1kZShfLCJtYXhpbXVtQnJlYWR0aCIpO2Z1bmN0aW9uIGR0KEcsdGUsUWUsX2UsZnQsTHQpe2xldCB3dD10ZVtHXTtzd2l0Y2godHlwZW9mIHd0PT0ib2JqZWN0IiYmd3QhPT1udWxsJiZ0eXBlb2Ygd3QudG9KU09OPT0iZnVuY3Rpb24iJiYod3Q9d3QudG9KU09OKEcpKSx3dD1fZS5jYWxsKHRlLEcsd3QpLHR5cGVvZiB3dCl7Y2FzZSJzdHJpbmciOnJldHVybiBiKHd0KTtjYXNlIm9iamVjdCI6e2lmKHd0PT09bnVsbClyZXR1cm4ibnVsbCI7aWYoUWUuaW5kZXhPZih3dCkhPT0tMSlyZXR1cm4gYmU7bGV0IFd0PSIiLHJuPSIsIjtjb25zdCBqdD1MdDtpZihBcnJheS5pc0FycmF5KHd0KSl7aWYod3QubGVuZ3RoPT09MClyZXR1cm4iW10iO2lmKEZlPFFlLmxlbmd0aCsxKXJldHVybiciW0FycmF5XSInO1FlLnB1c2god3QpLGZ0IT09IiImJihMdCs9ZnQsV3QrPWAKKyR7THR9YCxybj1gLAorJHtMdH1gKTtjb25zdCBMbj1NYXRoLm1pbih3dC5sZW5ndGgsemUpO2xldCBucj0wO2Zvcig7bnI8TG4tMTtucisrKXtjb25zdCBrPWR0KFN0cmluZyhuciksd3QsUWUsX2UsZnQsTHQpO1d0Kz1rIT09dm9pZCAwP2s6Im51bGwiLFd0Kz1ybn1jb25zdCBuZT1kdChTdHJpbmcobnIpLHd0LFFlLF9lLGZ0LEx0KTtpZihXdCs9bmUhPT12b2lkIDA/bmU6Im51bGwiLHd0Lmxlbmd0aC0xPnplKXtjb25zdCBrPXd0Lmxlbmd0aC16ZS0xO1d0Kz1gJHtybn0iLi4uICR7byhrKX0gbm90IHN0cmluZ2lmaWVkImB9cmV0dXJuIGZ0IT09IiImJihXdCs9YAorJHtqdH1gKSxRZS5wb3AoKSxgWyR7V3R9XWB9bGV0IEp0PU9iamVjdC5rZXlzKHd0KTtjb25zdCB6dD1KdC5sZW5ndGg7aWYoenQ9PT0wKXJldHVybiJ7fSI7aWYoRmU8UWUubGVuZ3RoKzEpcmV0dXJuJyJbT2JqZWN0XSInO2xldCBLdD0iIixWdD0iIjtmdCE9PSIiJiYoTHQrPWZ0LHJuPWAsCiske0x0fWAsS3Q9IiAiKTtjb25zdCBabj1NYXRoLm1pbih6dCx6ZSk7WGUmJiEkKHd0KSYmKEp0PU8oSnQsb2UpKSxRZS5wdXNoKHd0KTtmb3IobGV0IExuPTA7TG48Wm47TG4rKyl7Y29uc3QgbnI9SnRbTG5dLG5lPWR0KG5yLHd0LFFlLF9lLGZ0LEx0KTtuZSE9PXZvaWQgMCYmKFd0Kz1gJHtWdH0ke2IobnIpfToke0t0fSR7bmV9YCxWdD1ybil9aWYoenQ+emUpe2NvbnN0IExuPXp0LXplO1d0Kz1gJHtWdH0iLi4uIjoke0t0fSIke28oTG4pfSBub3Qgc3RyaW5naWZpZWQiYCxWdD1ybn1yZXR1cm4gZnQhPT0iIiYmVnQubGVuZ3RoPjEmJihXdD1gCiske0x0fSR7V3R9Ciske2p0fWApLFFlLnBvcCgpLGB7JHtXdH19YH1jYXNlIm51bWJlciI6cmV0dXJuIGlzRmluaXRlKHd0KT9TdHJpbmcod3QpOnZlP3ZlKHd0KToibnVsbCI7Y2FzZSJib29sZWFuIjpyZXR1cm4gd3Q9PT0hMD8idHJ1ZSI6ImZhbHNlIjtjYXNlInVuZGVmaW5lZCI6cmV0dXJuO2Nhc2UiYmlnaW50IjppZihsZSlyZXR1cm4gU3RyaW5nKHd0KTtkZWZhdWx0OnJldHVybiB2ZT92ZSh3dCk6dm9pZCAwfX1mdW5jdGlvbiBndChHLHRlLFFlLF9lLGZ0LEx0KXtzd2l0Y2godHlwZW9mIHRlPT0ib2JqZWN0IiYmdGUhPT1udWxsJiZ0eXBlb2YgdGUudG9KU09OPT0iZnVuY3Rpb24iJiYodGU9dGUudG9KU09OKEcpKSx0eXBlb2YgdGUpe2Nhc2Uic3RyaW5nIjpyZXR1cm4gYih0ZSk7Y2FzZSJvYmplY3QiOntpZih0ZT09PW51bGwpcmV0dXJuIm51bGwiO2lmKFFlLmluZGV4T2YodGUpIT09LTEpcmV0dXJuIGJlO2NvbnN0IHd0PUx0O2xldCBXdD0iIixybj0iLCI7aWYoQXJyYXkuaXNBcnJheSh0ZSkpe2lmKHRlLmxlbmd0aD09PTApcmV0dXJuIltdIjtpZihGZTxRZS5sZW5ndGgrMSlyZXR1cm4nIltBcnJheV0iJztRZS5wdXNoKHRlKSxmdCE9PSIiJiYoTHQrPWZ0LFd0Kz1gCiske0x0fWAscm49YCwKKyR7THR9YCk7Y29uc3QgenQ9TWF0aC5taW4odGUubGVuZ3RoLHplKTtsZXQgS3Q9MDtmb3IoO0t0PHp0LTE7S3QrKyl7Y29uc3QgWm49Z3QoU3RyaW5nKEt0KSx0ZVtLdF0sUWUsX2UsZnQsTHQpO1d0Kz1abiE9PXZvaWQgMD9abjoibnVsbCIsV3QrPXJufWNvbnN0IFZ0PWd0KFN0cmluZyhLdCksdGVbS3RdLFFlLF9lLGZ0LEx0KTtpZihXdCs9VnQhPT12b2lkIDA/VnQ6Im51bGwiLHRlLmxlbmd0aC0xPnplKXtjb25zdCBabj10ZS5sZW5ndGgtemUtMTtXdCs9YCR7cm59Ii4uLiAke28oWm4pfSBub3Qgc3RyaW5naWZpZWQiYH1yZXR1cm4gZnQhPT0iIiYmKFd0Kz1gCiske3d0fWApLFFlLnBvcCgpLGBbJHtXdH1dYH1RZS5wdXNoKHRlKTtsZXQganQ9IiI7ZnQhPT0iIiYmKEx0Kz1mdCxybj1gLAorJHtMdH1gLGp0PSIgIik7bGV0IEp0PSIiO2Zvcihjb25zdCB6dCBvZiBfZSl7Y29uc3QgS3Q9Z3QoenQsdGVbenRdLFFlLF9lLGZ0LEx0KTtLdCE9PXZvaWQgMCYmKFd0Kz1gJHtKdH0ke2IoenQpfToke2p0fSR7S3R9YCxKdD1ybil9cmV0dXJuIGZ0IT09IiImJkp0Lmxlbmd0aD4xJiYoV3Q9YAorJHtMdH0ke1d0fQorJHt3dH1gKSxRZS5wb3AoKSxgeyR7V3R9fWB9Y2FzZSJudW1iZXIiOnJldHVybiBpc0Zpbml0ZSh0ZSk/U3RyaW5nKHRlKTp2ZT92ZSh0ZSk6Im51bGwiO2Nhc2UiYm9vbGVhbiI6cmV0dXJuIHRlPT09ITA/InRydWUiOiJmYWxzZSI7Y2FzZSJ1bmRlZmluZWQiOnJldHVybjtjYXNlImJpZ2ludCI6aWYobGUpcmV0dXJuIFN0cmluZyh0ZSk7ZGVmYXVsdDpyZXR1cm4gdmU/dmUodGUpOnZvaWQgMH19ZnVuY3Rpb24gcnQoRyx0ZSxRZSxfZSxmdCl7c3dpdGNoKHR5cGVvZiB0ZSl7Y2FzZSJzdHJpbmciOnJldHVybiBiKHRlKTtjYXNlIm9iamVjdCI6e2lmKHRlPT09bnVsbClyZXR1cm4ibnVsbCI7aWYodHlwZW9mIHRlLnRvSlNPTj09ImZ1bmN0aW9uIil7aWYodGU9dGUudG9KU09OKEcpLHR5cGVvZiB0ZSE9Im9iamVjdCIpcmV0dXJuIHJ0KEcsdGUsUWUsX2UsZnQpO2lmKHRlPT09bnVsbClyZXR1cm4ibnVsbCJ9aWYoUWUuaW5kZXhPZih0ZSkhPT0tMSlyZXR1cm4gYmU7Y29uc3QgTHQ9ZnQ7aWYoQXJyYXkuaXNBcnJheSh0ZSkpe2lmKHRlLmxlbmd0aD09PTApcmV0dXJuIltdIjtpZihGZTxRZS5sZW5ndGgrMSlyZXR1cm4nIltBcnJheV0iJztRZS5wdXNoKHRlKSxmdCs9X2U7bGV0IEt0PWAKKyR7ZnR9YDtjb25zdCBWdD1gLAorJHtmdH1gLFpuPU1hdGgubWluKHRlLmxlbmd0aCx6ZSk7bGV0IExuPTA7Zm9yKDtMbjxabi0xO0xuKyspe2NvbnN0IG5lPXJ0KFN0cmluZyhMbiksdGVbTG5dLFFlLF9lLGZ0KTtLdCs9bmUhPT12b2lkIDA/bmU6Im51bGwiLEt0Kz1WdH1jb25zdCBucj1ydChTdHJpbmcoTG4pLHRlW0xuXSxRZSxfZSxmdCk7aWYoS3QrPW5yIT09dm9pZCAwP25yOiJudWxsIix0ZS5sZW5ndGgtMT56ZSl7Y29uc3QgbmU9dGUubGVuZ3RoLXplLTE7S3QrPWAke1Z0fSIuLi4gJHtvKG5lKX0gbm90IHN0cmluZ2lmaWVkImB9cmV0dXJuIEt0Kz1gCiske0x0fWAsUWUucG9wKCksYFske0t0fV1gfWxldCB3dD1PYmplY3Qua2V5cyh0ZSk7Y29uc3QgV3Q9d3QubGVuZ3RoO2lmKFd0PT09MClyZXR1cm4ie30iO2lmKEZlPFFlLmxlbmd0aCsxKXJldHVybiciW09iamVjdF0iJztmdCs9X2U7Y29uc3Qgcm49YCwKKyR7ZnR9YDtsZXQganQ9IiIsSnQ9IiIsenQ9TWF0aC5taW4oV3QsemUpOyQodGUpJiYoanQrPVIodGUscm4semUpLHd0PXd0LnNsaWNlKHRlLmxlbmd0aCksenQtPXRlLmxlbmd0aCxKdD1ybiksWGUmJih3dD1PKHd0LG9lKSksUWUucHVzaCh0ZSk7Zm9yKGxldCBLdD0wO0t0PHp0O0t0Kyspe2NvbnN0IFZ0PXd0W0t0XSxabj1ydChWdCx0ZVtWdF0sUWUsX2UsZnQpO1puIT09dm9pZCAwJiYoanQrPWAke0p0fSR7YihWdCl9OiAke1pufWAsSnQ9cm4pfWlmKFd0PnplKXtjb25zdCBLdD1XdC16ZTtqdCs9YCR7SnR9Ii4uLiI6ICIke28oS3QpfSBub3Qgc3RyaW5naWZpZWQiYCxKdD1ybn1yZXR1cm4gSnQhPT0iIiYmKGp0PWAKKyR7ZnR9JHtqdH0KKyR7THR9YCksUWUucG9wKCksYHske2p0fX1gfWNhc2UibnVtYmVyIjpyZXR1cm4gaXNGaW5pdGUodGUpP1N0cmluZyh0ZSk6dmU/dmUodGUpOiJudWxsIjtjYXNlImJvb2xlYW4iOnJldHVybiB0ZT09PSEwPyJ0cnVlIjoiZmFsc2UiO2Nhc2UidW5kZWZpbmVkIjpyZXR1cm47Y2FzZSJiaWdpbnQiOmlmKGxlKXJldHVybiBTdHJpbmcodGUpO2RlZmF1bHQ6cmV0dXJuIHZlP3ZlKHRlKTp2b2lkIDB9fWZ1bmN0aW9uIEN0KEcsdGUsUWUpe3N3aXRjaCh0eXBlb2YgdGUpe2Nhc2Uic3RyaW5nIjpyZXR1cm4gYih0ZSk7Y2FzZSJvYmplY3QiOntpZih0ZT09PW51bGwpcmV0dXJuIm51bGwiO2lmKHR5cGVvZiB0ZS50b0pTT049PSJmdW5jdGlvbiIpe2lmKHRlPXRlLnRvSlNPTihHKSx0eXBlb2YgdGUhPSJvYmplY3QiKXJldHVybiBDdChHLHRlLFFlKTtpZih0ZT09PW51bGwpcmV0dXJuIm51bGwifWlmKFFlLmluZGV4T2YodGUpIT09LTEpcmV0dXJuIGJlO2xldCBfZT0iIjtjb25zdCBmdD10ZS5sZW5ndGghPT12b2lkIDA7aWYoZnQmJkFycmF5LmlzQXJyYXkodGUpKXtpZih0ZS5sZW5ndGg9PT0wKXJldHVybiJbXSI7aWYoRmU8UWUubGVuZ3RoKzEpcmV0dXJuJyJbQXJyYXldIic7UWUucHVzaCh0ZSk7Y29uc3QganQ9TWF0aC5taW4odGUubGVuZ3RoLHplKTtsZXQgSnQ9MDtmb3IoO0p0PGp0LTE7SnQrKyl7Y29uc3QgS3Q9Q3QoU3RyaW5nKEp0KSx0ZVtKdF0sUWUpO19lKz1LdCE9PXZvaWQgMD9LdDoibnVsbCIsX2UrPSIsIn1jb25zdCB6dD1DdChTdHJpbmcoSnQpLHRlW0p0XSxRZSk7aWYoX2UrPXp0IT09dm9pZCAwP3p0OiJudWxsIix0ZS5sZW5ndGgtMT56ZSl7Y29uc3QgS3Q9dGUubGVuZ3RoLXplLTE7X2UrPWAsIi4uLiAke28oS3QpfSBub3Qgc3RyaW5naWZpZWQiYH1yZXR1cm4gUWUucG9wKCksYFske19lfV1gfWxldCBMdD1PYmplY3Qua2V5cyh0ZSk7Y29uc3Qgd3Q9THQubGVuZ3RoO2lmKHd0PT09MClyZXR1cm4ie30iO2lmKEZlPFFlLmxlbmd0aCsxKXJldHVybiciW09iamVjdF0iJztsZXQgV3Q9IiIscm49TWF0aC5taW4od3QsemUpO2Z0JiYkKHRlKSYmKF9lKz1SKHRlLCIsIix6ZSksTHQ9THQuc2xpY2UodGUubGVuZ3RoKSxybi09dGUubGVuZ3RoLFd0PSIsIiksWGUmJihMdD1PKEx0LG9lKSksUWUucHVzaCh0ZSk7Zm9yKGxldCBqdD0wO2p0PHJuO2p0Kyspe2NvbnN0IEp0PUx0W2p0XSx6dD1DdChKdCx0ZVtKdF0sUWUpO3p0IT09dm9pZCAwJiYoX2UrPWAke1d0fSR7YihKdCl9OiR7enR9YCxXdD0iLCIpfWlmKHd0PnplKXtjb25zdCBqdD13dC16ZTtfZSs9YCR7V3R9Ii4uLiI6IiR7byhqdCl9IG5vdCBzdHJpbmdpZmllZCJgfXJldHVybiBRZS5wb3AoKSxgeyR7X2V9fWB9Y2FzZSJudW1iZXIiOnJldHVybiBpc0Zpbml0ZSh0ZSk/U3RyaW5nKHRlKTp2ZT92ZSh0ZSk6Im51bGwiO2Nhc2UiYm9vbGVhbiI6cmV0dXJuIHRlPT09ITA/InRydWUiOiJmYWxzZSI7Y2FzZSJ1bmRlZmluZWQiOnJldHVybjtjYXNlImJpZ2ludCI6aWYobGUpcmV0dXJuIFN0cmluZyh0ZSk7ZGVmYXVsdDpyZXR1cm4gdmU/dmUodGUpOnZvaWQgMH19ZnVuY3Rpb24gb3QoRyx0ZSxRZSl7aWYoYXJndW1lbnRzLmxlbmd0aD4xKXtsZXQgX2U9IiI7aWYodHlwZW9mIFFlPT0ibnVtYmVyIj9fZT0iICIucmVwZWF0KE1hdGgubWluKFFlLDEwKSk6dHlwZW9mIFFlPT0ic3RyaW5nIiYmKF9lPVFlLnNsaWNlKDAsMTApKSx0ZSE9bnVsbCl7aWYodHlwZW9mIHRlPT0iZnVuY3Rpb24iKXJldHVybiBkdCgiIix7IiI6R30sW10sdGUsX2UsIiIpO2lmKEFycmF5LmlzQXJyYXkodGUpKXJldHVybiBndCgiIixHLFtdLGoodGUpLF9lLCIiKX1pZihfZS5sZW5ndGghPT0wKXJldHVybiBydCgiIixHLFtdLF9lLCIiKX1yZXR1cm4gQ3QoIiIsRyxbXSl9cmV0dXJuIG90fX19XSk7Cit9KCkpOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvMjIyMi4wZjlkOGQ0MS5hc3luYy5qcyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvMjIyMi4wZjlkOGQ0MS5hc3luYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOWNhMmZhCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy8yMjIyLjBmOWQ4ZDQxLmFzeW5jLmpzCkBAIC0wLDAgKzEgQEAKKyJ1c2Ugc3RyaWN0Ijsoc2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Bybz1zZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvfHxbXSkucHVzaChbWzIyMjJdLHs1OTY2OmZ1bmN0aW9uKHgsaCxuKXt2YXIgVD1uKDk3Njg1KSx0PW4oMTQxMyksZz1uKDkxKSxPPW4oMjE3NzApLEM9big5OTg1OSksYj1uKDU1MjQxKSxqPW4oOTg0MjMpLEE9big2NzI5NCksRD1uKDkyMTc5KSxzPW4oODU4OTMpLFc9WyJmaWVsZFByb3BzIiwicHJvRmllbGRQcm9wcyJdLEI9WyJmaWVsZFByb3BzIiwicHJvRmllbGRQcm9wcyJdLG09InRleHQiLE09ZnVuY3Rpb24ocil7dmFyIGU9ci5maWVsZFByb3BzLG89ci5wcm9GaWVsZFByb3BzLGE9KDAsZy5aKShyLFcpO3JldHVybigwLHMuanN4KShELlosKDAsdC5aKSh7dmFsdWVUeXBlOm0sZmllbGRQcm9wczplLGZpbGVkQ29uZmlnOnt2YWx1ZVR5cGU6bX0scHJvRmllbGRQcm9wczpvfSxhKSl9LGQ9ZnVuY3Rpb24ocil7dmFyIGU9KDAsTy5aKShyLm9wZW58fCExLHt2YWx1ZTpyLm9wZW4sb25DaGFuZ2U6ci5vbk9wZW5DaGFuZ2V9KSxvPSgwLFQuWikoZSwyKSxhPW9bMF0sUD1vWzFdO3JldHVybigwLHMuanN4KShDLlouSXRlbSx7c2hvdWxkVXBkYXRlOiEwLG5vU3R5bGU6ITAsY2hpbGRyZW46ZnVuY3Rpb24odil7dmFyIGwsRT12LmdldEZpZWxkVmFsdWUoci5uYW1lfHxbXSk7cmV0dXJuKDAscy5qc3gpKGIuWiwoMCx0LlopKCgwLHQuWikoe2dldFBvcHVwQ29udGFpbmVyOmZ1bmN0aW9uKF8pe3JldHVybiBfJiZfLnBhcmVudE5vZGU/Xy5wYXJlbnROb2RlOl99LG9uT3BlbkNoYW5nZTpmdW5jdGlvbihfKXtyZXR1cm4gUChfKX0sY29udGVudDooMCxzLmpzeHMpKCJkaXYiLHtzdHlsZTp7cGFkZGluZzoiNHB4IDAifSxjaGlsZHJlbjpbKGw9ci5zdGF0dXNSZW5kZXIpPT09bnVsbHx8bD09PXZvaWQgMD92b2lkIDA6bC5jYWxsKHIsRSksci5zdHJlbmd0aFRleHQ/KDAscy5qc3gpKCJkaXYiLHtzdHlsZTp7bWFyZ2luVG9wOjEwfSxjaGlsZHJlbjooMCxzLmpzeCkoInNwYW4iLHtjaGlsZHJlbjpyLnN0cmVuZ3RoVGV4dH0pfSk6bnVsbF19KSxvdmVybGF5U3R5bGU6e3dpZHRoOjI0MH0scGxhY2VtZW50OiJyaWdodFRvcCJ9LHIucG9wb3ZlclByb3BzKSx7fSx7b3BlbjphLGNoaWxkcmVuOnIuY2hpbGRyZW59KSl9fSl9LFI9ZnVuY3Rpb24ocil7dmFyIGU9ci5maWVsZFByb3BzLG89ci5wcm9GaWVsZFByb3BzLGE9KDAsZy5aKShyLEIpLFA9KDAsQS51c2VTdGF0ZSkoITEpLHA9KDAsVC5aKShQLDIpLHY9cFswXSxsPXBbMV07cmV0dXJuIGUhPW51bGwmJmUuc3RhdHVzUmVuZGVyJiZhLm5hbWU/KDAscy5qc3gpKGQse25hbWU6YS5uYW1lLHN0YXR1c1JlbmRlcjplPT1udWxsP3ZvaWQgMDplLnN0YXR1c1JlbmRlcixwb3BvdmVyUHJvcHM6ZT09bnVsbD92b2lkIDA6ZS5wb3BvdmVyUHJvcHMsc3RyZW5ndGhUZXh0OmU9PW51bGw/dm9pZCAwOmUuc3RyZW5ndGhUZXh0LG9wZW46dixvbk9wZW5DaGFuZ2U6bCxjaGlsZHJlbjooMCxzLmpzeCkoImRpdiIse2NoaWxkcmVuOigwLHMuanN4KShELlosKDAsdC5aKSh7dmFsdWVUeXBlOiJwYXNzd29yZCIsZmllbGRQcm9wczooMCx0LlopKCgwLHQuWikoe30sKDAsai5aKShlLFsic3RhdHVzUmVuZGVyIiwicG9wb3ZlclByb3BzIiwic3RyZW5ndGhUZXh0Il0pKSx7fSx7b25CbHVyOmZ1bmN0aW9uKGkpe3ZhciBfO2U9PW51bGx8fChfPWUub25CbHVyKT09PW51bGx8fF89PT12b2lkIDB8fF8uY2FsbChlLGkpLGwoITEpfSxvbkNsaWNrOmZ1bmN0aW9uKGkpe3ZhciBfO2U9PW51bGx8fChfPWUub25DbGljayk9PT1udWxsfHxfPT09dm9pZCAwfHxfLmNhbGwoZSxpKSxsKCEwKX19KSxwcm9GaWVsZFByb3BzOm8sZmlsZWRDb25maWc6e3ZhbHVlVHlwZTptfX0sYSkpfSl9KTooMCxzLmpzeCkoRC5aLCgwLHQuWikoe3ZhbHVlVHlwZToicGFzc3dvcmQiLGZpZWxkUHJvcHM6ZSxwcm9GaWVsZFByb3BzOm8sZmlsZWRDb25maWc6e3ZhbHVlVHlwZTptfX0sYSkpfSxjPU07Yy5QYXNzd29yZD1SLGMuZGlzcGxheU5hbWU9IlByb0Zvcm1Db21wb25lbnQiLGguWj1jfSw2MjIyMjpmdW5jdGlvbih4LGgsbil7bi5yKGgpO3ZhciBUPW4oMTUwMDkpLHQ9bi5uKFQpLGc9big5Nzg1NyksTz1uLm4oZyksQz1uKDk5Mjg5KSxiPW4ubihDKSxqPW4oNTU3NCksQT1uLm4oaiksRD1uKDY3Mjk0KSxzPW4oOTk4NTkpLFc9bigxNzc4OCksQj1uKDc2NzcyKSxtPW4oOTcyNjkpLE09big1OTY2KSxkPW4oODU4OTMpLFI9ZnVuY3Rpb24odSl7dmFyIHI9cy5aLnVzZUZvcm0oKSxlPUEoKShyLDEpLG89ZVswXSxhPXMuWi51c2VXYXRjaCgicGFzc3dvcmQiLG8pLFA9dS52YWx1ZXMudXNlcklkLHA9KDAsQi51c2VJbnRsKSgpLHY9ZnVuY3Rpb24oKXtvLnN1Ym1pdCgpfSxsPWZ1bmN0aW9uKCl7dS5vbkNhbmNlbCgpfSxFPWZ1bmN0aW9uKCl7dmFyIF89YigpKHQoKSgpLm1hcmsoZnVuY3Rpb24gRihmKXtyZXR1cm4gdCgpKCkud3JhcChmdW5jdGlvbihJKXtmb3IoOzspc3dpdGNoKEkucHJldj1JLm5leHQpe2Nhc2UgMDp1Lm9uU3VibWl0KE8oKShPKCkoe30sZikse30se3VzZXJJZDpQfSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIEkuc3RvcCgpfX0sRil9KSk7cmV0dXJuIGZ1bmN0aW9uKGYpe3JldHVybiBfLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksaT1mdW5jdGlvbihGLGYpe3JldHVybiBmPT09YT9Qcm9taXNlLnJlc29sdmUoKTpQcm9taXNlLnJlamVjdChuZXcgRXJyb3IoIlx1NEUyNFx1NkIyMVx1NUJDNlx1NzgwMVx1OEY5M1x1NTE2NVx1NEUwRFx1NEUwMFx1ODFGNCIpKX07cmV0dXJuKDAsZC5qc3gpKFcuWix7d2lkdGg6NjQwLHRpdGxlOnAuZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS51c2VyLnJlc2V0LnBhc3N3b3JkIixkZWZhdWx0TWVzc2FnZToiXHU1QkM2XHU3ODAxXHU5MUNEXHU3RjZFIn0pLG9wZW46dS5vcGVuLGRlc3Ryb3lPbkNsb3NlOiEwLG9uT2s6dixvbkNhbmNlbDpsLGNoaWxkcmVuOigwLGQuanN4cykobS5BLHtncmlkOiEwLGZvcm06byxsYXlvdXQ6Imhvcml6b250YWwiLG9uRmluaXNoOkUsaW5pdGlhbFZhbHVlczp7cGFzc3dvcmQ6IiIsY29uZmlybV9wYXNzd29yZDoiIn0sY2hpbGRyZW46WygwLGQuanN4cykoInAiLHtjaGlsZHJlbjpbIlx1OEJGN1x1OEY5M1x1NTE2NVx1NzUyOFx1NjIzNyIsdS52YWx1ZXMudXNlck5hbWUsIlx1NzY4NFx1NjVCMFx1NUJDNlx1NzgwMVx1RkYwMSJdfSksKDAsZC5qc3gpKE0uWi5QYXNzd29yZCx7bmFtZToicGFzc3dvcmQiLGxhYmVsOiJcdTc2N0JcdTVGNTVcdTVCQzZcdTc4MDEiLHJ1bGVzOlt7cmVxdWlyZWQ6ITAsbWVzc2FnZToiXHU3NjdCXHU1RjU1XHU1QkM2XHU3ODAxXHU0RTBEXHU1M0VGXHU0RTNBXHU3QTdBXHUzMDAyIn1dfSksKDAsZC5qc3gpKE0uWi5QYXNzd29yZCx7bmFtZToiY29uZmlybV9wYXNzd29yZCIsbGFiZWw6Ilx1Nzg2RVx1OEJBNFx1NUJDNlx1NzgwMSIscnVsZXM6W3tyZXF1aXJlZDohMCxtZXNzYWdlOiJcdTc4NkVcdThCQTRcdTVCQzZcdTc4MDEifSx7dmFsaWRhdG9yOml9XX0pXX0pfSl9O2guZGVmYXVsdD1SfX1dKTsKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvMjI2MS44YWVlZTY5Mi5hc3luYy5qcyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvMjI2MS44YWVlZTY5Mi5hc3luYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZTk4ZGNiCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy8yMjYxLjhhZWVlNjkyLmFzeW5jLmpzCkBAIC0wLDAgKzEsMTI3IEBACishKGZ1bmN0aW9uKCl7dmFyIHJNPShBZSxCZSk9PihCZT1TeW1ib2xbQWVdKT9CZTpTeW1ib2wuZm9yKCJTeW1ib2wuIitBZSksU2F0PUFlPT57dGhyb3cgVHlwZUVycm9yKEFlKX0sdGk9TWF0aC5wb3c7dmFyIEVhdD1mdW5jdGlvbihBZSxCZSl7dGhpc1swXT1BZSx0aGlzWzFdPUJlfTt2YXIgcDg9QWU9Pnt2YXIgQmU9QWVbck0oImFzeW5jSXRlcmF0b3IiKV0scHQ9ITEsb2UsJD17fTtyZXR1cm4gQmU9PW51bGw/KEJlPUFlW3JNKCJpdGVyYXRvciIpXSgpLG9lPWZlPT4kW2ZlXT1ZZT0+QmVbZmVdKFllKSk6KEJlPUJlLmNhbGwoQWUpLG9lPWZlPT4kW2ZlXT1ZZT0+e2lmKHB0KXtpZihwdD0hMSxmZT09PSJ0aHJvdyIpdGhyb3cgWWU7cmV0dXJuIFllfXJldHVybiBwdD0hMCx7ZG9uZTohMSx2YWx1ZTpuZXcgRWF0KG5ldyBQcm9taXNlKGFlPT57dmFyIFJ0PUJlW2ZlXShZZSk7UnQgaW5zdGFuY2VvZiBPYmplY3R8fFNhdCgiT2JqZWN0IGV4cGVjdGVkIiksYWUoUnQpfSksMSl9fSksJFtyTSgiaXRlcmF0b3IiKV09KCk9PiQsb2UoIm5leHQiKSwidGhyb3ciaW4gQmU/b2UoInRocm93Iik6JC50aHJvdz1mZT0+e3Rocm93IGZlfSwicmV0dXJuImluIEJlJiZvZSgicmV0dXJuIiksJH07KHNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W10pLnB1c2goW1syMjYxXSx7OTUzMjc6ZnVuY3Rpb24oQWUsQmUscHQpeyJ1c2Ugc3RyaWN0IjtwdC5kKEJlLHtQOmZ1bmN0aW9uKCl7cmV0dXJuIGJhdH19KTt2YXIgb2U9e307cHQucihvZSkscHQuZChvZSx7YWRkOmZ1bmN0aW9uKCl7cmV0dXJuIGlofSxhZGpvaW50OmZ1bmN0aW9uKCl7cmV0dXJuIGh2fSxjbG9uZTpmdW5jdGlvbigpe3JldHVybiBkdn0sY29weTpmdW5jdGlvbigpe3JldHVybiBUY30sY3JlYXRlOmZ1bmN0aW9uKCl7cmV0dXJuIFdufSxkZXRlcm1pbmFudDpmdW5jdGlvbigpe3JldHVybiAkdX0sZXF1YWxzOmZ1bmN0aW9uKCl7cmV0dXJuIGFofSxleGFjdEVxdWFsczpmdW5jdGlvbigpe3JldHVybiBraX0sZnJvYjpmdW5jdGlvbigpe3JldHVybiBTYn0sZnJvbVF1YXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGh9LGZyb21RdWF0MjpmdW5jdGlvbigpe3JldHVybiBKZH0sZnJvbVJvdGF0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIHVhfSxmcm9tUm90YXRpb25UcmFuc2xhdGlvbjpmdW5jdGlvbigpe3JldHVybiBNbH0sZnJvbVJvdGF0aW9uVHJhbnNsYXRpb25TY2FsZTpmdW5jdGlvbigpe3JldHVybiB3Yn0sZnJvbVJvdGF0aW9uVHJhbnNsYXRpb25TY2FsZU9yaWdpbjpmdW5jdGlvbigpe3JldHVybiBEc30sZnJvbVNjYWxpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gSXN9LGZyb21UcmFuc2xhdGlvbjpmdW5jdGlvbigpe3JldHVybiBMcn0sZnJvbVZhbHVlczpmdW5jdGlvbigpe3JldHVybiBIZH0sZnJvbVhSb3RhdGlvbjpmdW5jdGlvbigpe3JldHVybiBndn0sZnJvbVlSb3RhdGlvbjpmdW5jdGlvbigpe3JldHVybiBRZH0sZnJvbVpSb3RhdGlvbjpmdW5jdGlvbigpe3JldHVybiBRYX0sZnJ1c3R1bTpmdW5jdGlvbigpe3JldHVybiBPYn0sZ2V0Um90YXRpb246ZnVuY3Rpb24oKXtyZXR1cm4gUGN9LGdldFNjYWxpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gZmF9LGdldFRyYW5zbGF0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuICRufSxpZGVudGl0eTpmdW5jdGlvbigpe3JldHVybiBscn0saW52ZXJ0OmZ1bmN0aW9uKCl7cmV0dXJuICRpfSxsb29rQXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWXV9LG11bDpmdW5jdGlvbigpe3JldHVybiBMY30sbXVsdGlwbHk6ZnVuY3Rpb24oKXtyZXR1cm4gR259LG11bHRpcGx5U2NhbGFyOmZ1bmN0aW9uKCl7cmV0dXJuIEVifSxtdWx0aXBseVNjYWxhckFuZEFkZDpmdW5jdGlvbigpe3JldHVybiBfdn0sb3J0aG86ZnVuY3Rpb24oKXtyZXR1cm4gZWh9LG9ydGhvTk86ZnVuY3Rpb24oKXtyZXR1cm4gYnZ9LG9ydGhvWk86ZnVuY3Rpb24oKXtyZXR1cm4gbmh9LHBlcnNwZWN0aXZlOmZ1bmN0aW9uKCl7cmV0dXJuIG12fSxwZXJzcGVjdGl2ZUZyb21GaWVsZE9mVmlldzpmdW5jdGlvbigpe3JldHVybiBDY30scGVyc3BlY3RpdmVOTzpmdW5jdGlvbigpe3JldHVybiB5dn0scGVyc3BlY3RpdmVaTzpmdW5jdGlvbigpe3JldHVybiBadX0scm90YXRlOmZ1bmN0aW9uKCl7cmV0dXJuIHB2fSxyb3RhdGVYOmZ1bmN0aW9uKCl7cmV0dXJuIHFkfSxyb3RhdGVZOmZ1bmN0aW9uKCl7cmV0dXJuIEtkfSxyb3RhdGVaOmZ1bmN0aW9uKCl7cmV0dXJuIHZ2fSxzY2FsZTpmdW5jdGlvbigpe3JldHVybiBVZH0sc2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFZkfSxzdHI6ZnVuY3Rpb24oKXtyZXR1cm4geHZ9LHN1YjpmdW5jdGlvbigpe3JldHVybiB3dn0sc3VidHJhY3Q6ZnVuY3Rpb24oKXtyZXR1cm4gSHV9LHRhcmdldFRvOmZ1bmN0aW9uKCl7cmV0dXJuIHJofSx0cmFuc2xhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gTnN9LHRyYW5zcG9zZTpmdW5jdGlvbigpe3JldHVybiBYZH19KTt2YXIgJD17fTtwdC5yKCQpLHB0LmQoJCx7YXJlYTpmdW5jdGlvbigpe3JldHVybiBMen0sYm90dG9tOmZ1bmN0aW9uKCl7cmV0dXJuIGNjfSxib3R0b21MZWZ0OmZ1bmN0aW9uKCl7cmV0dXJuIGNjfSxib3R0b21SaWdodDpmdW5jdGlvbigpe3JldHVybiBjY30saW5zaWRlOmZ1bmN0aW9uKCl7cmV0dXJuIGNjfSxsZWZ0OmZ1bmN0aW9uKCl7cmV0dXJuIGNjfSxvdXRzaWRlOmZ1bmN0aW9uKCl7cmV0dXJuIEl6fSxyaWdodDpmdW5jdGlvbigpe3JldHVybiBjY30sc3BpZGVyOmZ1bmN0aW9uKCl7cmV0dXJuIEJ6fSxzdXJyb3VuZDpmdW5jdGlvbigpe3JldHVybiBXen0sdG9wOmZ1bmN0aW9uKCl7cmV0dXJuIGNjfSx0b3BMZWZ0OmZ1bmN0aW9uKCl7cmV0dXJuIGNjfSx0b3BSaWdodDpmdW5jdGlvbigpe3JldHVybiBjY319KTt2YXIgZmU9e307cHQucihmZSkscHQuZChmZSx7aW50ZXJwb2xhdGVCbHVlczpmdW5jdGlvbigpe3JldHVybiB3R30saW50ZXJwb2xhdGVCckJHOmZ1bmN0aW9uKCl7cmV0dXJuIGVHfSxpbnRlcnBvbGF0ZUJ1R246ZnVuY3Rpb24oKXtyZXR1cm4gdUd9LGludGVycG9sYXRlQnVQdTpmdW5jdGlvbigpe3JldHVybiBmR30saW50ZXJwb2xhdGVDaXZpZGlzOmZ1bmN0aW9uKCl7cmV0dXJuIEFHfSxpbnRlcnBvbGF0ZUNvb2w6ZnVuY3Rpb24oKXtyZXR1cm4gTkd9LGludGVycG9sYXRlQ3ViZWhlbGl4RGVmYXVsdDpmdW5jdGlvbigpe3JldHVybiBMR30saW50ZXJwb2xhdGVHbkJ1OmZ1bmN0aW9uKCl7cmV0dXJuIGRHfSxpbnRlcnBvbGF0ZUdyZWVuczpmdW5jdGlvbigpe3JldHVybiBPR30saW50ZXJwb2xhdGVHcmV5czpmdW5jdGlvbigpe3JldHVybiBTR30saW50ZXJwb2xhdGVJbmZlcm5vOmZ1bmN0aW9uKCl7cmV0dXJuIEdHfSxpbnRlcnBvbGF0ZU1hZ21hOmZ1bmN0aW9uKCl7cmV0dXJuIFdHfSxpbnRlcnBvbGF0ZU9yUmQ6ZnVuY3Rpb24oKXtyZXR1cm4gaEd9LGludGVycG9sYXRlT3JhbmdlczpmdW5jdGlvbigpe3JldHVybiBrR30saW50ZXJwb2xhdGVQUkduOmZ1bmN0aW9uKCl7cmV0dXJuIG5HfSxpbnRlcnBvbGF0ZVBpWUc6ZnVuY3Rpb24oKXtyZXR1cm4gckd9LGludGVycG9sYXRlUGxhc21hOmZ1bmN0aW9uKCl7cmV0dXJuICRHfSxpbnRlcnBvbGF0ZVB1QnU6ZnVuY3Rpb24oKXtyZXR1cm4gdkd9LGludGVycG9sYXRlUHVCdUduOmZ1bmN0aW9uKCl7cmV0dXJuIHBHfSxpbnRlcnBvbGF0ZVB1T3I6ZnVuY3Rpb24oKXtyZXR1cm4gaUd9LGludGVycG9sYXRlUHVSZDpmdW5jdGlvbigpe3JldHVybiBnR30saW50ZXJwb2xhdGVQdXJwbGVzOmZ1bmN0aW9uKCl7cmV0dXJuIEVHfSxpbnRlcnBvbGF0ZVJhaW5ib3c6ZnVuY3Rpb24oKXtyZXR1cm4gSUd9LGludGVycG9sYXRlUmRCdTpmdW5jdGlvbigpe3JldHVybiBhR30saW50ZXJwb2xhdGVSZEd5OmZ1bmN0aW9uKCl7cmV0dXJuIG9HfSxpbnRlcnBvbGF0ZVJkUHU6ZnVuY3Rpb24oKXtyZXR1cm4geUd9LGludGVycG9sYXRlUmRZbEJ1OmZ1bmN0aW9uKCl7cmV0dXJuIHNHfSxpbnRlcnBvbGF0ZVJkWWxHbjpmdW5jdGlvbigpe3JldHVybiBjR30saW50ZXJwb2xhdGVSZWRzOmZ1bmN0aW9uKCl7cmV0dXJuIE1HfSxpbnRlcnBvbGF0ZVNpbmVib3c6ZnVuY3Rpb24oKXtyZXR1cm4gRkd9LGludGVycG9sYXRlU3BlY3RyYWw6ZnVuY3Rpb24oKXtyZXR1cm4gbEd9LGludGVycG9sYXRlVHVyYm86ZnVuY3Rpb24oKXtyZXR1cm4gQkd9LGludGVycG9sYXRlVmlyaWRpczpmdW5jdGlvbigpe3JldHVybiB6R30saW50ZXJwb2xhdGVXYXJtOmZ1bmN0aW9uKCl7cmV0dXJuIFJHfSxpbnRlcnBvbGF0ZVlsR246ZnVuY3Rpb24oKXtyZXR1cm4gYkd9LGludGVycG9sYXRlWWxHbkJ1OmZ1bmN0aW9uKCl7cmV0dXJuIG1HfSxpbnRlcnBvbGF0ZVlsT3JCcjpmdW5jdGlvbigpe3JldHVybiB4R30saW50ZXJwb2xhdGVZbE9yUmQ6ZnVuY3Rpb24oKXtyZXR1cm4gX0d9LHNjaGVtZUFjY2VudDpmdW5jdGlvbigpe3JldHVybiBBV30sc2NoZW1lQmx1ZXM6ZnVuY3Rpb24oKXtyZXR1cm4gRjN9LHNjaGVtZUJyQkc6ZnVuY3Rpb24oKXtyZXR1cm4geTN9LHNjaGVtZUJ1R246ZnVuY3Rpb24oKXtyZXR1cm4gTTN9LHNjaGVtZUJ1UHU6ZnVuY3Rpb24oKXtyZXR1cm4gazN9LHNjaGVtZUNhdGVnb3J5MTA6ZnVuY3Rpb24oKXtyZXR1cm4ga1d9LHNjaGVtZURhcmsyOmZ1bmN0aW9uKCl7cmV0dXJuIFRXfSxzY2hlbWVHbkJ1OmZ1bmN0aW9uKCl7cmV0dXJuIEEzfSxzY2hlbWVHcmVlbnM6ZnVuY3Rpb24oKXtyZXR1cm4gQjN9LHNjaGVtZUdyZXlzOmZ1bmN0aW9uKCl7cmV0dXJuIHozfSxzY2hlbWVPYnNlcnZhYmxlMTA6ZnVuY3Rpb24oKXtyZXR1cm4gUFd9LHNjaGVtZU9yUmQ6ZnVuY3Rpb24oKXtyZXR1cm4gVDN9LHNjaGVtZU9yYW5nZXM6ZnVuY3Rpb24oKXtyZXR1cm4gJDN9LHNjaGVtZVBSR246ZnVuY3Rpb24oKXtyZXR1cm4gbTN9LHNjaGVtZVBhaXJlZDpmdW5jdGlvbigpe3JldHVybiBDV30sc2NoZW1lUGFzdGVsMTpmdW5jdGlvbigpe3JldHVybiBMV30sc2NoZW1lUGFzdGVsMjpmdW5jdGlvbigpe3JldHVybiBSV30sc2NoZW1lUGlZRzpmdW5jdGlvbigpe3JldHVybiBiM30sc2NoZW1lUHVCdTpmdW5jdGlvbigpe3JldHVybiBDM30sc2NoZW1lUHVCdUduOmZ1bmN0aW9uKCl7cmV0dXJuIFAzfSxzY2hlbWVQdU9yOmZ1bmN0aW9uKCl7cmV0dXJuIHgzfSxzY2hlbWVQdVJkOmZ1bmN0aW9uKCl7cmV0dXJuIEwzfSxzY2hlbWVQdXJwbGVzOmZ1bmN0aW9uKCl7cmV0dXJuIFczfSxzY2hlbWVSZEJ1OmZ1bmN0aW9uKCl7cmV0dXJuIF8zfSxzY2hlbWVSZEd5OmZ1bmN0aW9uKCl7cmV0dXJuIHczfSxzY2hlbWVSZFB1OmZ1bmN0aW9uKCl7cmV0dXJuIFIzfSxzY2hlbWVSZFlsQnU6ZnVuY3Rpb24oKXtyZXR1cm4gTzN9LHNjaGVtZVJkWWxHbjpmdW5jdGlvbigpe3JldHVybiBTM30sc2NoZW1lUmVkczpmdW5jdGlvbigpe3JldHVybiBHM30sc2NoZW1lU2V0MTpmdW5jdGlvbigpe3JldHVybiBOV30sc2NoZW1lU2V0MjpmdW5jdGlvbigpe3JldHVybiBJV30sc2NoZW1lU2V0MzpmdW5jdGlvbigpe3JldHVybiBEV30sc2NoZW1lU3BlY3RyYWw6ZnVuY3Rpb24oKXtyZXR1cm4gRTN9LHNjaGVtZVRhYmxlYXUxMDpmdW5jdGlvbigpe3JldHVybiBqV30sc2NoZW1lWWxHbjpmdW5jdGlvbigpe3JldHVybiBJM30sc2NoZW1lWWxHbkJ1OmZ1bmN0aW9uKCl7cmV0dXJuIE4zfSxzY2hlbWVZbE9yQnI6ZnVuY3Rpb24oKXtyZXR1cm4gRDN9LHNjaGVtZVlsT3JSZDpmdW5jdGlvbigpe3JldHVybiBqM319KTt2YXIgWWU9e307cHQucihZZSkscHQuZChZZSx7Z2VvQWxiZXJzOmZ1bmN0aW9uKCl7cmV0dXJuIFZEfSxnZW9BbGJlcnNVc2E6ZnVuY3Rpb24oKXtyZXR1cm4gTkp9LGdlb0F6aW11dGhhbEVxdWFsQXJlYTpmdW5jdGlvbigpe3JldHVybiBJSn0sZ2VvQXppbXV0aGFsRXF1YWxBcmVhUmF3OmZ1bmN0aW9uKCl7cmV0dXJuIGdFfSxnZW9BemltdXRoYWxFcXVpZGlzdGFudDpmdW5jdGlvbigpe3JldHVybiBESn0sZ2VvQXppbXV0aGFsRXF1aWRpc3RhbnRSYXc6ZnVuY3Rpb24oKXtyZXR1cm4geUV9LGdlb0NvbmljQ29uZm9ybWFsOmZ1bmN0aW9uKCl7cmV0dXJuIEZKfSxnZW9Db25pY0NvbmZvcm1hbFJhdzpmdW5jdGlvbigpe3JldHVybiBxRH0sZ2VvQ29uaWNFcXVhbEFyZWE6ZnVuY3Rpb24oKXtyZXR1cm4gUTF9LGdlb0NvbmljRXF1YWxBcmVhUmF3OmZ1bmN0aW9uKCl7cmV0dXJuIEhEfSxnZW9Db25pY0VxdWlkaXN0YW50OmZ1bmN0aW9uKCl7cmV0dXJuIHpKfSxnZW9Db25pY0VxdWlkaXN0YW50UmF3OmZ1bmN0aW9uKCl7cmV0dXJuIEtEfSxnZW9FcXVhbEVhcnRoOmZ1bmN0aW9uKCl7cmV0dXJuIEdKfSxnZW9FcXVhbEVhcnRoUmF3OmZ1bmN0aW9uKCl7cmV0dXJuIG1FfSxnZW9FcXVpcmVjdGFuZ3VsYXI6ZnVuY3Rpb24oKXtyZXR1cm4gQkp9LGdlb0VxdWlyZWN0YW5ndWxhclJhdzpmdW5jdGlvbigpe3JldHVybiBGMH0sZ2VvR25vbW9uaWM6ZnVuY3Rpb24oKXtyZXR1cm4gJEp9LGdlb0dub21vbmljUmF3OmZ1bmN0aW9uKCl7cmV0dXJuIGJFfSxnZW9JZGVudGl0eTpmdW5jdGlvbigpe3JldHVybiBaSn0sZ2VvTWVyY2F0b3I6ZnVuY3Rpb24oKXtyZXR1cm4gakp9LGdlb01lcmNhdG9yUmF3OmZ1bmN0aW9uKCl7cmV0dXJuIGowfSxnZW9OYXR1cmFsRWFydGgxOmZ1bmN0aW9uKCl7cmV0dXJuIFlKfSxnZW9OYXR1cmFsRWFydGgxUmF3OmZ1bmN0aW9uKCl7cmV0dXJuIHhFfSxnZW9PcnRob2dyYXBoaWM6ZnVuY3Rpb24oKXtyZXR1cm4gSEp9LGdlb09ydGhvZ3JhcGhpY1JhdzpmdW5jdGlvbigpe3JldHVybiBfRX0sZ2VvUHJvamVjdGlvbjpmdW5jdGlvbigpe3JldHVybiBNc30sZ2VvUHJvamVjdGlvbk11dGF0b3I6ZnVuY3Rpb24oKXtyZXR1cm4gcEV9LGdlb1N0ZXJlb2dyYXBoaWM6ZnVuY3Rpb24oKXtyZXR1cm4gVkp9LGdlb1N0ZXJlb2dyYXBoaWNSYXc6ZnVuY3Rpb24oKXtyZXR1cm4gd0V9LGdlb1RyYW5zdmVyc2VNZXJjYXRvcjpmdW5jdGlvbigpe3JldHVybiBYSn0sZ2VvVHJhbnN2ZXJzZU1lcmNhdG9yUmF3OmZ1bmN0aW9uKCl7cmV0dXJuIE9FfX0pO3ZhciBhZT17fTtwdC5yKGFlKSxwdC5kKGFlLHtmcmVxdWVuY3k6ZnVuY3Rpb24oKXtyZXR1cm4gcWV0fSxpZDpmdW5jdGlvbigpe3JldHVybiBLZXR9LG5hbWU6ZnVuY3Rpb24oKXtyZXR1cm4gUWV0fSx3ZWlnaHQ6ZnVuY3Rpb24oKXtyZXR1cm4gVWV0fX0pO3ZhciBSdD1wdCg2NzI5NCkscXQ9cHQoNzM5MzUpLFl0PXB0LnQocXQsMiksZnQ9ZnVuY3Rpb24oKXtyZXR1cm4gZnQ9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49MSxyPWFyZ3VtZW50cy5sZW5ndGg7bjxyO24rKyl7ZT1hcmd1bWVudHNbbl07Zm9yKHZhciBpIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsaSkmJih0W2ldPWVbaV0pfXJldHVybiB0fSxmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LHJlPWZ1bmN0aW9uKHQsZSxuLHIpe2Z1bmN0aW9uIGkoYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBuP2E6bmV3IG4oZnVuY3Rpb24obyl7byhhKX0pfXJldHVybiBuZXcobnx8KG49UHJvbWlzZSkpKGZ1bmN0aW9uKGEsbyl7ZnVuY3Rpb24gcyh1KXt0cnl7bChyLm5leHQodSkpfWNhdGNoKGYpe28oZil9fWZ1bmN0aW9uIGModSl7dHJ5e2woci50aHJvdyh1KSl9Y2F0Y2goZil7byhmKX19ZnVuY3Rpb24gbCh1KXt1LmRvbmU/YSh1LnZhbHVlKTppKHUudmFsdWUpLnRoZW4ocyxjKX1sKChyPXIuYXBwbHkodCxlfHxbXSkpLm5leHQoKSl9KX0sV3Q9ZnVuY3Rpb24odCxlKXt2YXIgbj17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoYVswXSYxKXRocm93IGFbMV07cmV0dXJuIGFbMV19LHRyeXM6W10sb3BzOltdfSxyLGksYSxvPU9iamVjdC5jcmVhdGUoKHR5cGVvZiBJdGVyYXRvcj09ImZ1bmN0aW9uIj9JdGVyYXRvcjpPYmplY3QpLnByb3RvdHlwZSk7cmV0dXJuIG8ubmV4dD1zKDApLG8udGhyb3c9cygxKSxvLnJldHVybj1zKDIpLHR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJihvW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLG87ZnVuY3Rpb24gcyhsKXtyZXR1cm4gZnVuY3Rpb24odSl7cmV0dXJuIGMoW2wsdV0pfX1mdW5jdGlvbiBjKGwpe2lmKHIpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7byYmKG89MCxsWzBdJiYobj0wKSksbjspdHJ5e2lmKHI9MSxpJiYoYT1sWzBdJjI/aS5yZXR1cm46bFswXT9pLnRocm93fHwoKGE9aS5yZXR1cm4pJiZhLmNhbGwoaSksMCk6aS5uZXh0KSYmIShhPWEuY2FsbChpLGxbMV0pKS5kb25lKXJldHVybiBhO3N3aXRjaChpPTAsYSYmKGw9W2xbMF0mMixhLnZhbHVlXSksbFswXSl7Y2FzZSAwOmNhc2UgMTphPWw7YnJlYWs7Y2FzZSA0OnJldHVybiBuLmxhYmVsKysse3ZhbHVlOmxbMV0sZG9uZTohMX07Y2FzZSA1Om4ubGFiZWwrKyxpPWxbMV0sbD1bMF07Y29udGludWU7Y2FzZSA3Omw9bi5vcHMucG9wKCksbi50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoYT1uLnRyeXMsIShhPWEubGVuZ3RoPjAmJmFbYS5sZW5ndGgtMV0pJiYobFswXT09PTZ8fGxbMF09PT0yKSl7bj0wO2NvbnRpbnVlfWlmKGxbMF09PT0zJiYoIWF8fGxbMV0+YVswXSYmbFsxXTxhWzNdKSl7bi5sYWJlbD1sWzFdO2JyZWFrfWlmKGxbMF09PT02JiZuLmxhYmVsPGFbMV0pe24ubGFiZWw9YVsxXSxhPWw7YnJlYWt9aWYoYSYmbi5sYWJlbDxhWzJdKXtuLmxhYmVsPWFbMl0sbi5vcHMucHVzaChsKTticmVha31hWzJdJiZuLm9wcy5wb3AoKSxuLnRyeXMucG9wKCk7Y29udGludWV9bD1lLmNhbGwodCxuKX1jYXRjaCh1KXtsPVs2LHVdLGk9MH1maW5hbGx5e3I9YT0wfWlmKGxbMF0mNSl0aHJvdyBsWzFdO3JldHVybnt2YWx1ZTpsWzBdP2xbMV06dm9pZCAwLGRvbmU6ITB9fX0sZWU9ZnQoe30sWXQpLFh0PWVlLnZlcnNpb24sa3Q9ZWUucmVuZGVyLFN0PWVlLnVubW91bnRDb21wb25lbnRBdE5vZGUsYnQ7dHJ5e3ZhciBUdD1OdW1iZXIoKFh0fHwiIikuc3BsaXQoIi4iKVswXSk7VHQ+PTE4JiYoYnQ9ZWUuY3JlYXRlUm9vdCl9Y2F0Y2godCl7fWZ1bmN0aW9uIHhlKHQpe3ZhciBlPWVlLl9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEO2UmJnR5cGVvZiBlPT0ib2JqZWN0IiYmKGUudXNpbmdDbGllbnRFbnRyeVBvaW50PXQpfXZhciBfZT0iX19yY19yZWFjdF9yb290X18iO2Z1bmN0aW9uIF9uKHQsZSl7eGUoITApO3ZhciBuPWVbX2VdfHxidChlKTt4ZSghMSksbi5yZW5kZXIodCksZVtfZV09bn1mdW5jdGlvbiBVZSh0LGUpe2t0KHQsZSl9ZnVuY3Rpb24gcG4odCxlKXt9ZnVuY3Rpb24gZ24odCxlKXtpZihidCl7X24odCxlKTtyZXR1cm59VWUodCxlKX1mdW5jdGlvbiBybih0KXtyZXR1cm4gcmUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFd0KHRoaXMsZnVuY3Rpb24oZSl7cmV0dXJuWzIsUHJvbWlzZS5yZXNvbHZlKCkudGhlbihmdW5jdGlvbigpe3ZhciBuOyhuPXRbX2VdKT09PW51bGx8fG49PT12b2lkIDB8fG4udW5tb3VudCgpLGRlbGV0ZSB0W19lXX0pXX0pfSl9ZnVuY3Rpb24gWW4odCl7U3QodCl9ZnVuY3Rpb24gSm4odCl7fWZ1bmN0aW9uIENlKHQpe3JldHVybiByZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gV3QodGhpcyxmdW5jdGlvbihlKXtyZXR1cm4gYnQhPT12b2lkIDA/WzIscm4odCldOihZbih0KSxbMl0pfSl9KX12YXIgU2U9bmV3IE1hcDt0eXBlb2YgZG9jdW1lbnQhPSJ1bmRlZmluZWQiJiZTZS5zZXQoInRvb2x0aXAiLGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKTt2YXIgenI9ZnVuY3Rpb24odCxlKXtlPT09dm9pZCAwJiYoZT0hMSk7dmFyIG49bnVsbDtpZihlKW49U2UuZ2V0KCJ0b29sdGlwIik7ZWxzZSBpZihuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHQhPW51bGwmJnQua2V5KXt2YXIgcj1TZS5nZXQodC5rZXkpO3I/bj1yOlNlLnNldCh0LmtleSxuKX1yZXR1cm4gZ24odCxuKSxufSxkaT1mdW5jdGlvbih0KXtpZih0eXBlb2YgZG9jdW1lbnQ9PSJ1bmRlZmluZWQiKXJldHVybiJsb2FkaW5nIjt2YXIgZT10LmF0dGFjaFNoYWRvdyh7bW9kZToib3BlbiJ9KSxuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtyLmlubmVySFRNTD1gLmxvYWRpbmcgeworICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgd2lkdGg6IDgwcHg7CisgICAgaGVpZ2h0OiA4MHB4OworICB9CisgIC5sb2FkaW5nIGRpdiB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIHRvcDogMzNweDsKKyAgICB3aWR0aDogMTNweDsKKyAgICBoZWlnaHQ6IDEzcHg7CisgICAgYm9yZGVyLXJhZGl1czogNTAlOworICAgIGJhY2tncm91bmQ6ICNjY2M7CisgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAsIDEsIDEsIDApOworICB9CisgIC5sb2FkaW5nIGRpdjpudGgtY2hpbGQoMSkgeworICAgIGxlZnQ6IDhweDsKKyAgICBhbmltYXRpb246IGxvYWRpbmcxIDAuNnMgaW5maW5pdGU7CisgIH0KKyAgLmxvYWRpbmcgZGl2Om50aC1jaGlsZCgyKSB7CisgICAgbGVmdDogOHB4OworICAgIGFuaW1hdGlvbjogbG9hZGluZzIgMC42cyBpbmZpbml0ZTsKKyAgfQorICAubG9hZGluZyBkaXY6bnRoLWNoaWxkKDMpIHsKKyAgICBsZWZ0OiAzMnB4OworICAgIGFuaW1hdGlvbjogbG9hZGluZzIgMC42cyBpbmZpbml0ZTsKKyAgfQorICAubG9hZGluZyBkaXY6bnRoLWNoaWxkKDQpIHsKKyAgICBsZWZ0OiA1NnB4OworICAgIGFuaW1hdGlvbjogbG9hZGluZzMgMC42cyBpbmZpbml0ZTsKKyAgfQorICBAa2V5ZnJhbWVzIGxvYWRpbmcxIHsKKyAgICAwJSB7CisgICAgICB0cmFuc2Zvcm06IHNjYWxlKDApOworICAgIH0KKyAgICAxMDAlIHsKKyAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7CisgICAgfQorICB9CisgIEBrZXlmcmFtZXMgbG9hZGluZzMgeworICAgIDAlIHsKKyAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7CisgICAgfQorICAgIDEwMCUgeworICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTsKKyAgICB9CisgIH0KKyAgQGtleWZyYW1lcyBsb2FkaW5nMiB7CisgICAgMCUgeworICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7CisgICAgfQorICAgIDEwMCUgeworICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMjRweCwgMCk7CisgICAgfQorICB9CisgIGAsbi5jbGFzc0xpc3QuYWRkKCJsb2FkaW5nIiksbi5pbm5lckhUTUw9IjxkaXY+PC9kaXY+PGRpdj48L2Rpdj48ZGl2PjwvZGl2PjxkaXY+PC9kaXY+IixlLmFwcGVuZENoaWxkKHIpLGUuYXBwZW5kQ2hpbGQobil9LEZpPWZ1bmN0aW9uKHQpe3ZhciBlPXQubG9hZGluZ1RlbXBsYXRlLG49dC50aGVtZSxyPW49PT12b2lkIDA/ImxpZ2h0IjpuLGk9UnQudXNlUmVmKG51bGwpO1J0LnVzZUVmZmVjdChmdW5jdGlvbigpeyFlJiZpLmN1cnJlbnQmJmRpKGkuY3VycmVudCl9LFtdKTt2YXIgYT1mdW5jdGlvbigpe3JldHVybiBlfHxSdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtyZWY6aX0pfTtyZXR1cm4gUnQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJjaGFydHMtbG9hZGluZy1jb250YWluZXIiLHN0eWxlOntwb3NpdGlvbjoiYWJzb2x1dGUiLHdpZHRoOiIxMDAlIixoZWlnaHQ6IjEwMCUiLGRpc3BsYXk6ImZsZXgiLGFsaWduSXRlbXM6ImNlbnRlciIsanVzdGlmeUNvbnRlbnQ6ImNlbnRlciIsbGVmdDowLHRvcDowLHpJbmRleDo5OSxiYWNrZ3JvdW5kQ29sb3I6cj09PSJkYXJrIj8icmdiKDIwLCAyMCwgMjApIjoicmdiKDI1NSwgMjU1LCAyNTUpIn19LGEoKSl9LGhpPWZ1bmN0aW9uKCl7dmFyIHQ9ZnVuY3Rpb24oZSxuKXtyZXR1cm4gdD1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24ocixpKXtyLl9fcHJvdG9fXz1pfXx8ZnVuY3Rpb24ocixpKXtmb3IodmFyIGEgaW4gaSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaSxhKSYmKHJbYV09aVthXSl9LHQoZSxuKX07cmV0dXJuIGZ1bmN0aW9uKGUsbil7aWYodHlwZW9mIG4hPSJmdW5jdGlvbiImJm4hPT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIitTdHJpbmcobikrIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7dChlLG4pO2Z1bmN0aW9uIHIoKXt0aGlzLmNvbnN0cnVjdG9yPWV9ZS5wcm90b3R5cGU9bj09PW51bGw/T2JqZWN0LmNyZWF0ZShuKTooci5wcm90b3R5cGU9bi5wcm90b3R5cGUsbmV3IHIpfX0oKSx0cj1mdW5jdGlvbih0KXtoaShlLHQpO2Z1bmN0aW9uIGUoKXt2YXIgbj10IT09bnVsbCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXM7cmV0dXJuIG4uc3RhdGU9e2hhc0Vycm9yOiExfSxuLnJlbmRlckVycm9yPWZ1bmN0aW9uKHIpe3ZhciBpPW4ucHJvcHMuZXJyb3JUZW1wbGF0ZTtzd2l0Y2gocil7ZGVmYXVsdDpyZXR1cm4gdHlwZW9mIGk9PSJmdW5jdGlvbiI/aShyKTppfHxSdC5jcmVhdGVFbGVtZW50KCJoNSIsbnVsbCwiXHU3RUM0XHU0RUY2XHU1MUZBXHU5NTE5XHU0RTg2XHVGRjBDXHU4QkY3XHU2ODM4XHU2N0U1XHU1NDBFXHU5MUNEXHU4QkQ1XHVGRjFBICIsci5tZXNzYWdlKX19LG59cmV0dXJuIGUuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yPWZ1bmN0aW9uKG4pe3JldHVybntoYXNFcnJvcjohMCxlcnJvcjpufX0sZS5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHM9ZnVuY3Rpb24obixyKXtyZXR1cm4gci5jaGlsZHJlbiE9PW4uY2hpbGRyZW4/e2NoaWxkcmVuOm4uY2hpbGRyZW4saGFzRXJyb3I6ITEsZXJyb3I6dm9pZCAwfTpudWxsfSxlLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zdGF0ZS5oYXNFcnJvcj90aGlzLnJlbmRlckVycm9yKHRoaXMuc3RhdGUuZXJyb3IpOlJ0LmNyZWF0ZUVsZW1lbnQoUnQuRnJhZ21lbnQsbnVsbCx0aGlzLnByb3BzLmNoaWxkcmVuKX0sZX0oUnQuQ29tcG9uZW50KSxydD1wdCg5NjQ4NiksYWEsQmk9ZnVuY3Rpb24oKXtyZXR1cm4gYWF8fChhYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKS5nZXRDb250ZXh0KCIyZCIpKSxhYX0sV3I9ZnVuY3Rpb24odCxlLG4pe2lmKG58fGFyZ3VtZW50cy5sZW5ndGg9PT0yKWZvcih2YXIgcj0wLGk9ZS5sZW5ndGgsYTtyPGk7cisrKShhfHwhKHIgaW4gZSkpJiYoYXx8KGE9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZSwwLHIpKSxhW3JdPWVbcl0pO3JldHVybiB0LmNvbmNhdChhfHxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChlKSl9LHlhPSgwLHJ0Lm1lbW9pemUpKGZ1bmN0aW9uKHQsZSl7ZT09PXZvaWQgMCYmKGU9e30pO3ZhciBuPWUuZm9udFNpemUscj1lLmZvbnRGYW1pbHksaT1yPT09dm9pZCAwPyJzYW5zLXNlcmlmIjpyLGE9ZS5mb250V2VpZ2h0LG89ZS5mb250U3R5bGUscz1lLmZvbnRWYXJpYW50LGM9QmkoKTtyZXR1cm4gYy5mb250PVtvLGEscywiIi5jb25jYXQobiwicHgiKSxpXS5qb2luKCIgIiksYy5tZWFzdXJlVGV4dCgoMCxydC5pc1N0cmluZykodCk/dDoiIil9LGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGU9PT12b2lkIDAmJihlPXt9KSxXcihbdF0sKDAscnQudmFsdWVzKShlKSwhMCkuam9pbigiIil9KSxvYT1mdW5jdGlvbih0LGUpe3JldHVybiBlPT09dm9pZCAwJiYoZT17fSkseWEodCxlKS53aWR0aH0sa3M9ZnVuY3Rpb24odCxlKXtlPT09dm9pZCAwJiYoZT17fSk7dmFyIG49eWEodCxlKTtyZXR1cm4gbi5hY3R1YWxCb3VuZGluZ0JveEFzY2VudCtuLmFjdHVhbEJvdW5kaW5nQm94RGVzY2VudH0sT3I9ZnVuY3Rpb24odCl7dmFyIGU9L3JlYWN0fFwuanN4fGNoaWxkcmVuOlxbXCh8cmV0dXJuXHMrW0EtWmEtejAtOV0uY3JlYXRlRWxlbWVudFwoKD8hWyciXVtnfGNpcmNsZXxlbGxpcHNlfGltYWdlfHJlY3R8bGluZXxwb2x5bGluZXxwb2x5Z29ufHRleHR8cGF0aHxodG1sfG1lc2hdWyciXSkoW15cKV0pKiwvaTtyZXR1cm4gZS50ZXN0KHQpfSx5bj1mdW5jdGlvbigpe3JldHVybiB5bj1PYmplY3QuYXNzaWdufHxmdW5jdGlvbih0KXtmb3IodmFyIGUsbj0xLHI9YXJndW1lbnRzLmxlbmd0aDtuPHI7bisrKXtlPWFyZ3VtZW50c1tuXTtmb3IodmFyIGkgaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxpKSYmKHRbaV09ZVtpXSl9cmV0dXJuIHR9LHluLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07ZnVuY3Rpb24gWGEodCxlKXt2YXIgbj0oMCxSdC51c2VSZWYpKCkscj0oMCxSdC51c2VSZWYpKCksaT0oMCxSdC51c2VSZWYpKG51bGwpLGE9ZS5vblJlYWR5LG89ZS5vbkV2ZW50LHM9ZnVuY3Rpb24odSxmKXt2YXIgZDt1PT09dm9pZCAwJiYodT0iaW1hZ2UvcG5nIik7dmFyIGg9KGQ9aS5jdXJyZW50KT09PW51bGx8fGQ9PT12b2lkIDA/dm9pZCAwOmQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImNhbnZhcyIpWzBdO3JldHVybiBoPT1udWxsP3ZvaWQgMDpoLnRvRGF0YVVSTCh1LGYpfSxjPWZ1bmN0aW9uKHUsZixkKXt1PT09dm9pZCAwJiYodT0iZG93bmxvYWQiKSxmPT09dm9pZCAwJiYoZj0iaW1hZ2UvcG5nIik7dmFyIGg9dTt1LmluZGV4T2YoIi4iKT09PS0xJiYoaD0iIi5jb25jYXQodSwiLiIpLmNvbmNhdChmLnNwbGl0KCIvIilbMV0pKTt2YXIgdj1zKGYsZCksZz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7cmV0dXJuIGcuaHJlZj12LGcuZG93bmxvYWQ9aCxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGcpLGcuY2xpY2soKSxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGcpLGc9bnVsbCxofSxsPWZ1bmN0aW9uKHUsZil7Zj09PXZvaWQgMCYmKGY9ITEpO3ZhciBkPU9iamVjdC5rZXlzKHUpLGg9ZjtkLmZvckVhY2goZnVuY3Rpb24odil7dmFyIGc9dVt2XTt2PT09InRvb2x0aXAiJiYoaD0hMCksKDAscnQuaXNGdW5jdGlvbikoZykmJk9yKCIiLmNvbmNhdChnKSk/dVt2XT1mdW5jdGlvbigpe2Zvcih2YXIgeT1bXSxiPTA7Yjxhcmd1bWVudHMubGVuZ3RoO2IrKyl5W2JdPWFyZ3VtZW50c1tiXTtyZXR1cm4genIoZy5hcHBseSh2b2lkIDAseSksaCl9OigwLHJ0LmlzQXJyYXkpKGcpP2cuZm9yRWFjaChmdW5jdGlvbih5KXtsKHksaCl9KTooMCxydC5pc09iamVjdCkoZyk/bChnLGgpOmg9Zn0pfTtyZXR1cm4oMCxSdC51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7bi5jdXJyZW50JiYhKDAscnQuaXNFcXVhbCkoci5jdXJyZW50LGUpJiYoci5jdXJyZW50PSgwLHJ0LmNsb25lRGVlcCkoZSksbChlKSxuLmN1cnJlbnQudXBkYXRlKGUpLG4uY3VycmVudC5yZW5kZXIoKSl9LFtlXSksKDAsUnQudXNlRWZmZWN0KShmdW5jdGlvbigpe2lmKCFpLmN1cnJlbnQpcmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9O3IuY3VycmVudHx8KHIuY3VycmVudD0oMCxydC5jbG9uZURlZXApKGUpKSxsKGUpO3ZhciB1PW5ldyB0KGkuY3VycmVudCx5bih7fSxlKSk7dS50b0RhdGFVUkw9cyx1LmRvd25sb2FkSW1hZ2U9Yyx1LnJlbmRlcigpLG4uY3VycmVudD11LGEmJmEodSk7dmFyIGY9ZnVuY3Rpb24oZCl7byYmbyh1LGQpfTtyZXR1cm4gdS5vbigiKiIsZiksZnVuY3Rpb24oKXtuLmN1cnJlbnQmJihuLmN1cnJlbnQuZGVzdHJveSgpLG4uY3VycmVudC5vZmYoIioiLGYpLG4uY3VycmVudD12b2lkIDApfX0sW10pLHtjaGFydDpuLGNvbnRhaW5lcjppfX12YXIgVWE9IioiLEFzPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3RoaXMuX2V2ZW50cz17fX1yZXR1cm4gdC5wcm90b3R5cGUub249ZnVuY3Rpb24oZSxuLHIpe3JldHVybiB0aGlzLl9ldmVudHNbZV18fCh0aGlzLl9ldmVudHNbZV09W10pLHRoaXMuX2V2ZW50c1tlXS5wdXNoKHtjYWxsYmFjazpuLG9uY2U6ISFyfSksdGhpc30sdC5wcm90b3R5cGUub25jZT1mdW5jdGlvbihlLG4pe3JldHVybiB0aGlzLm9uKGUsbiwhMCl9LHQucHJvdG90eXBlLmVtaXQ9ZnVuY3Rpb24oZSl7Zm9yKHZhciBuPXRoaXMscj1bXSxpPTE7aTxhcmd1bWVudHMubGVuZ3RoO2krKylyW2ktMV09YXJndW1lbnRzW2ldO3ZhciBhPXRoaXMuX2V2ZW50c1tlXXx8W10sbz10aGlzLl9ldmVudHNbVWFdfHxbXSxzPWZ1bmN0aW9uKGMpe2Zvcih2YXIgbD1jLmxlbmd0aCx1PTA7dTxsO3UrKylpZihjW3VdKXt2YXIgZj1jW3VdLGQ9Zi5jYWxsYmFjayxoPWYub25jZTtoJiYoYy5zcGxpY2UodSwxKSxjLmxlbmd0aD09PTAmJmRlbGV0ZSBuLl9ldmVudHNbZV0sbC0tLHUtLSksZC5hcHBseShuLHIpfX07cyhhKSxzKG8pfSx0LnByb3RvdHlwZS5vZmY9ZnVuY3Rpb24oZSxuKXtpZighZSl0aGlzLl9ldmVudHM9e307ZWxzZSBpZighbilkZWxldGUgdGhpcy5fZXZlbnRzW2VdO2Vsc2V7Zm9yKHZhciByPXRoaXMuX2V2ZW50c1tlXXx8W10saT1yLmxlbmd0aCxhPTA7YTxpO2ErKylyW2FdLmNhbGxiYWNrPT09biYmKHIuc3BsaWNlKGEsMSksaS0tLGEtLSk7ci5sZW5ndGg9PT0wJiZkZWxldGUgdGhpcy5fZXZlbnRzW2VdfXJldHVybiB0aGlzfSx0LnByb3RvdHlwZS5nZXRFdmVudHM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZXZlbnRzfSx0fSgpLFRzPUFzO2NvbnN0IFhvPSJtYWluLWxheWVyIix6aT0ibGFiZWwtbGF5ZXIiLG1hPSJlbGVtZW50IixfaT0idmlldyIsYmE9InBsb3QiLEd1PSJjb21wb25lbnQiLFdpPSJsYWJlbCIsYmM9ImFyZWEiLHdsPSJtYXNrIjt2YXIgRWU9cHQoMTQxMykseHQ9cHQoMTU2NzEpLE90PXB0KDQzMTQ0KSxsbj1wdCg3NDkwMiksRGU9cHQoNTM2NDApLE1lPXB0KDYwMTM2KSxUZT1wdCg5NzY4NSksUHM9cHQoMjY3MjkpLExvPVBzLHVuPTFlLTYsSG49dHlwZW9mIEZsb2F0MzJBcnJheSE9InVuZGVmaW5lZCI/RmxvYXQzMkFycmF5OkFycmF5LFByPU1hdGgucmFuZG9tO2Z1bmN0aW9uIHhjKHQpe0huPXR9dmFyIF9jPU1hdGguUEkvMTgwO2Z1bmN0aW9uIHdjKHQpe3JldHVybiB0Kl9jfWZ1bmN0aW9uIHFhKHQsZSl7cmV0dXJuIE1hdGguYWJzKHQtZSk8PXVuKk1hdGgubWF4KDEsTWF0aC5hYnModCksTWF0aC5hYnMoZSkpfU1hdGguaHlwb3R8fChNYXRoLmh5cG90PWZ1bmN0aW9uKCl7Zm9yKHZhciB0PTAsZT1hcmd1bWVudHMubGVuZ3RoO2UtLTspdCs9YXJndW1lbnRzW2VdKmFyZ3VtZW50c1tlXTtyZXR1cm4gTWF0aC5zcXJ0KHQpfSk7ZnVuY3Rpb24gbWUoKXt2YXIgdD1uZXcgSG4oMyk7cmV0dXJuIEhuIT1GbG9hdDMyQXJyYXkmJih0WzBdPTAsdFsxXT0wLHRbMl09MCksdH1mdW5jdGlvbiB3aSh0KXt2YXIgZT1uZXcgSG4oMyk7cmV0dXJuIGVbMF09dFswXSxlWzFdPXRbMV0sZVsyXT10WzJdLGV9ZnVuY3Rpb24gc2EodCl7dmFyIGU9dFswXSxuPXRbMV0scj10WzJdO3JldHVybiBNYXRoLmh5cG90KGUsbixyKX1mdW5jdGlvbiBzbih0LGUsbil7dmFyIHI9bmV3IEhuKDMpO3JldHVybiByWzBdPXQsclsxXT1lLHJbMl09bixyfWZ1bmN0aW9uIGNhKHQsZSl7cmV0dXJuIHRbMF09ZVswXSx0WzFdPWVbMV0sdFsyXT1lWzJdLHR9ZnVuY3Rpb24gR3IodCxlLG4scil7cmV0dXJuIHRbMF09ZSx0WzFdPW4sdFsyXT1yLHR9ZnVuY3Rpb24gTmEodCxlLG4pe3JldHVybiB0WzBdPWVbMF0rblswXSx0WzFdPWVbMV0rblsxXSx0WzJdPWVbMl0rblsyXSx0fWZ1bmN0aW9uIE9sKHQsZSxuKXtyZXR1cm4gdFswXT1lWzBdLW5bMF0sdFsxXT1lWzFdLW5bMV0sdFsyXT1lWzJdLW5bMl0sdH1mdW5jdGlvbiBCZCh0LGUsbil7cmV0dXJuIHRbMF09ZVswXSpuWzBdLHRbMV09ZVsxXSpuWzFdLHRbMl09ZVsyXSpuWzJdLHR9ZnVuY3Rpb24gcnYodCxlLG4pe3JldHVybiB0WzBdPWVbMF0vblswXSx0WzFdPWVbMV0vblsxXSx0WzJdPWVbMl0vblsyXSx0fWZ1bmN0aW9uIGl2KHQsZSl7cmV0dXJuIHRbMF09TWF0aC5jZWlsKGVbMF0pLHRbMV09TWF0aC5jZWlsKGVbMV0pLHRbMl09TWF0aC5jZWlsKGVbMl0pLHR9ZnVuY3Rpb24gemQodCxlKXtyZXR1cm4gdFswXT1NYXRoLmZsb29yKGVbMF0pLHRbMV09TWF0aC5mbG9vcihlWzFdKSx0WzJdPU1hdGguZmxvb3IoZVsyXSksdH1mdW5jdGlvbiBXZCh0LGUsbil7cmV0dXJuIHRbMF09TWF0aC5taW4oZVswXSxuWzBdKSx0WzFdPU1hdGgubWluKGVbMV0sblsxXSksdFsyXT1NYXRoLm1pbihlWzJdLG5bMl0pLHR9ZnVuY3Rpb24gR2QodCxlLG4pe3JldHVybiB0WzBdPU1hdGgubWF4KGVbMF0sblswXSksdFsxXT1NYXRoLm1heChlWzFdLG5bMV0pLHRbMl09TWF0aC5tYXgoZVsyXSxuWzJdKSx0fWZ1bmN0aW9uIGF2KHQsZSl7cmV0dXJuIHRbMF09TWF0aC5yb3VuZChlWzBdKSx0WzFdPU1hdGgucm91bmQoZVsxXSksdFsyXT1NYXRoLnJvdW5kKGVbMl0pLHR9ZnVuY3Rpb24gVW8odCxlLG4pe3JldHVybiB0WzBdPWVbMF0qbix0WzFdPWVbMV0qbix0WzJdPWVbMl0qbix0fWZ1bmN0aW9uIFNsKHQsZSxuLHIpe3JldHVybiB0WzBdPWVbMF0rblswXSpyLHRbMV09ZVsxXStuWzFdKnIsdFsyXT1lWzJdK25bMl0qcix0fWZ1bmN0aW9uIE9jKHQsZSl7dmFyIG49ZVswXS10WzBdLHI9ZVsxXS10WzFdLGk9ZVsyXS10WzJdO3JldHVybiBNYXRoLmh5cG90KG4scixpKX1mdW5jdGlvbiBvdih0LGUpe3ZhciBuPWVbMF0tdFswXSxyPWVbMV0tdFsxXSxpPWVbMl0tdFsyXTtyZXR1cm4gbipuK3IqcitpKml9ZnVuY3Rpb24gc3YodCl7dmFyIGU9dFswXSxuPXRbMV0scj10WzJdO3JldHVybiBlKmUrbipuK3Iqcn1mdW5jdGlvbiBTYyh0LGUpe3JldHVybiB0WzBdPS1lWzBdLHRbMV09LWVbMV0sdFsyXT0tZVsyXSx0fWZ1bmN0aW9uIEVjKHQsZSl7cmV0dXJuIHRbMF09MS9lWzBdLHRbMV09MS9lWzFdLHRbMl09MS9lWzJdLHR9ZnVuY3Rpb24geGEodCxlKXt2YXIgbj1lWzBdLHI9ZVsxXSxpPWVbMl0sYT1uKm4rcipyK2kqaTtyZXR1cm4gYT4wJiYoYT0xL01hdGguc3FydChhKSksdFswXT1lWzBdKmEsdFsxXT1lWzFdKmEsdFsyXT1lWzJdKmEsdH1mdW5jdGlvbiBsYSh0LGUpe3JldHVybiB0WzBdKmVbMF0rdFsxXSplWzFdK3RbMl0qZVsyXX1mdW5jdGlvbiBNYyh0LGUsbil7dmFyIHI9ZVswXSxpPWVbMV0sYT1lWzJdLG89blswXSxzPW5bMV0sYz1uWzJdO3JldHVybiB0WzBdPWkqYy1hKnMsdFsxXT1hKm8tcipjLHRbMl09cipzLWkqbyx0fWZ1bmN0aW9uIEVsKHQsZSxuLHIpe3ZhciBpPWVbMF0sYT1lWzFdLG89ZVsyXTtyZXR1cm4gdFswXT1pK3IqKG5bMF0taSksdFsxXT1hK3IqKG5bMV0tYSksdFsyXT1vK3IqKG5bMl0tbyksdH1mdW5jdGlvbiAkZCh0LGUsbixyLGksYSl7dmFyIG89YSphLHM9byooMiphLTMpKzEsYz1vKihhLTIpK2EsbD1vKihhLTEpLHU9byooMy0yKmEpO3JldHVybiB0WzBdPWVbMF0qcytuWzBdKmMrclswXSpsK2lbMF0qdSx0WzFdPWVbMV0qcytuWzFdKmMrclsxXSpsK2lbMV0qdSx0WzJdPWVbMl0qcytuWzJdKmMrclsyXSpsK2lbMl0qdSx0fWZ1bmN0aW9uIGN2KHQsZSxuLHIsaSxhKXt2YXIgbz0xLWEscz1vKm8sYz1hKmEsbD1zKm8sdT0zKmEqcyxmPTMqYypvLGQ9YyphO3JldHVybiB0WzBdPWVbMF0qbCtuWzBdKnUrclswXSpmK2lbMF0qZCx0WzFdPWVbMV0qbCtuWzFdKnUrclsxXSpmK2lbMV0qZCx0WzJdPWVbMl0qbCtuWzJdKnUrclsyXSpmK2lbMl0qZCx0fWZ1bmN0aW9uIGx2KHQsZSl7ZT1lfHwxO3ZhciBuPWdsTWF0cml4LlJBTkRPTSgpKjIqTWF0aC5QSSxyPWdsTWF0cml4LlJBTkRPTSgpKjItMSxpPU1hdGguc3FydCgxLXIqcikqZTtyZXR1cm4gdFswXT1NYXRoLmNvcyhuKSppLHRbMV09TWF0aC5zaW4obikqaSx0WzJdPXIqZSx0fWZ1bmN0aW9uIGVyKHQsZSxuKXt2YXIgcj1lWzBdLGk9ZVsxXSxhPWVbMl0sbz1uWzNdKnIrbls3XSppK25bMTFdKmErblsxNV07cmV0dXJuIG89b3x8MSx0WzBdPShuWzBdKnIrbls0XSppK25bOF0qYStuWzEyXSkvbyx0WzFdPShuWzFdKnIrbls1XSppK25bOV0qYStuWzEzXSkvbyx0WzJdPShuWzJdKnIrbls2XSppK25bMTBdKmErblsxNF0pL28sdH1mdW5jdGlvbiBaZCh0LGUsbil7dmFyIHI9ZVswXSxpPWVbMV0sYT1lWzJdO3JldHVybiB0WzBdPXIqblswXStpKm5bM10rYSpuWzZdLHRbMV09cipuWzFdK2kqbls0XSthKm5bN10sdFsyXT1yKm5bMl0raSpuWzVdK2Eqbls4XSx0fWZ1bmN0aW9uIHBpKHQsZSxuKXt2YXIgcj1uWzBdLGk9blsxXSxhPW5bMl0sbz1uWzNdLHM9ZVswXSxjPWVbMV0sbD1lWzJdLHU9aSpsLWEqYyxmPWEqcy1yKmwsZD1yKmMtaSpzLGg9aSpkLWEqZix2PWEqdS1yKmQsZz1yKmYtaSp1LHk9byoyO3JldHVybiB1Kj15LGYqPXksZCo9eSxoKj0yLHYqPTIsZyo9Mix0WzBdPXMrdStoLHRbMV09YytmK3YsdFsyXT1sK2QrZyx0fWZ1bmN0aW9uIE9pKHQsZSxuLHIpe3ZhciBpPVtdLGE9W107cmV0dXJuIGlbMF09ZVswXS1uWzBdLGlbMV09ZVsxXS1uWzFdLGlbMl09ZVsyXS1uWzJdLGFbMF09aVswXSxhWzFdPWlbMV0qTWF0aC5jb3MociktaVsyXSpNYXRoLnNpbihyKSxhWzJdPWlbMV0qTWF0aC5zaW4ocikraVsyXSpNYXRoLmNvcyhyKSx0WzBdPWFbMF0rblswXSx0WzFdPWFbMV0rblsxXSx0WzJdPWFbMl0rblsyXSx0fWZ1bmN0aW9uIGoodCxlLG4scil7dmFyIGk9W10sYT1bXTtyZXR1cm4gaVswXT1lWzBdLW5bMF0saVsxXT1lWzFdLW5bMV0saVsyXT1lWzJdLW5bMl0sYVswXT1pWzJdKk1hdGguc2luKHIpK2lbMF0qTWF0aC5jb3MociksYVsxXT1pWzFdLGFbMl09aVsyXSpNYXRoLmNvcyhyKS1pWzBdKk1hdGguc2luKHIpLHRbMF09YVswXStuWzBdLHRbMV09YVsxXStuWzFdLHRbMl09YVsyXStuWzJdLHR9ZnVuY3Rpb24geih0LGUsbixyKXt2YXIgaT1bXSxhPVtdO3JldHVybiBpWzBdPWVbMF0tblswXSxpWzFdPWVbMV0tblsxXSxpWzJdPWVbMl0tblsyXSxhWzBdPWlbMF0qTWF0aC5jb3MociktaVsxXSpNYXRoLnNpbihyKSxhWzFdPWlbMF0qTWF0aC5zaW4ocikraVsxXSpNYXRoLmNvcyhyKSxhWzJdPWlbMl0sdFswXT1hWzBdK25bMF0sdFsxXT1hWzFdK25bMV0sdFsyXT1hWzJdK25bMl0sdH1mdW5jdGlvbiBIKHQsZSl7dmFyIG49dFswXSxyPXRbMV0saT10WzJdLGE9ZVswXSxvPWVbMV0scz1lWzJdLGM9TWF0aC5zcXJ0KG4qbityKnIraSppKSxsPU1hdGguc3FydChhKmErbypvK3MqcyksdT1jKmwsZj11JiZsYSh0LGUpL3U7cmV0dXJuIE1hdGguYWNvcyhNYXRoLm1pbihNYXRoLm1heChmLC0xKSwxKSl9ZnVuY3Rpb24gVSh0KXtyZXR1cm4gdFswXT0wLHRbMV09MCx0WzJdPTAsdH1mdW5jdGlvbiBpdCh0KXtyZXR1cm4idmVjMygiK3RbMF0rIiwgIit0WzFdKyIsICIrdFsyXSsiKSJ9ZnVuY3Rpb24gYXQodCxlKXtyZXR1cm4gdFswXT09PWVbMF0mJnRbMV09PT1lWzFdJiZ0WzJdPT09ZVsyXX1mdW5jdGlvbiBLKHQsZSl7dmFyIG49dFswXSxyPXRbMV0saT10WzJdLGE9ZVswXSxvPWVbMV0scz1lWzJdO3JldHVybiBNYXRoLmFicyhuLWEpPD11bipNYXRoLm1heCgxLE1hdGguYWJzKG4pLE1hdGguYWJzKGEpKSYmTWF0aC5hYnMoci1vKTw9dW4qTWF0aC5tYXgoMSxNYXRoLmFicyhyKSxNYXRoLmFicyhvKSkmJk1hdGguYWJzKGktcyk8PXVuKk1hdGgubWF4KDEsTWF0aC5hYnMoaSksTWF0aC5hYnMocykpfXZhciBKPU9sLGN0PW51bGwsdXQ9bnVsbCxEdD1PYyxIdD1udWxsLGllPXNhLEZ0PW51bGwsSnQ9ZnVuY3Rpb24oKXt2YXIgdD1tZSgpO3JldHVybiBmdW5jdGlvbihlLG4scixpLGEsbyl7dmFyIHMsYztmb3Iobnx8KG49Mykscnx8KHI9MCksaT9jPU1hdGgubWluKGkqbityLGUubGVuZ3RoKTpjPWUubGVuZ3RoLHM9cjtzPGM7cys9bil0WzBdPWVbc10sdFsxXT1lW3MrMV0sdFsyXT1lW3MrMl0sYSh0LHQsbyksZVtzXT10WzBdLGVbcysxXT10WzFdLGVbcysyXT10WzJdO3JldHVybiBlfX0oKTtmdW5jdGlvbiBHdCgpe3ZhciB0PW5ldyBIbig0KTtyZXR1cm4gSG4hPUZsb2F0MzJBcnJheSYmKHRbMF09MCx0WzFdPTAsdFsyXT0wLHRbM109MCksdH1mdW5jdGlvbiBOdCh0KXt2YXIgZT1uZXcgSG4oNCk7cmV0dXJuIGVbMF09dFswXSxlWzFdPXRbMV0sZVsyXT10WzJdLGVbM109dFszXSxlfWZ1bmN0aW9uIGhlKHQsZSxuLHIpe3ZhciBpPW5ldyBIbig0KTtyZXR1cm4gaVswXT10LGlbMV09ZSxpWzJdPW4saVszXT1yLGl9ZnVuY3Rpb24gbmUodCxlKXtyZXR1cm4gdFswXT1lWzBdLHRbMV09ZVsxXSx0WzJdPWVbMl0sdFszXT1lWzNdLHR9ZnVuY3Rpb24gcGUodCxlLG4scixpKXtyZXR1cm4gdFswXT1lLHRbMV09bix0WzJdPXIsdFszXT1pLHR9ZnVuY3Rpb24gVXQodCxlLG4pe3JldHVybiB0WzBdPWVbMF0rblswXSx0WzFdPWVbMV0rblsxXSx0WzJdPWVbMl0rblsyXSx0WzNdPWVbM10rblszXSx0fWZ1bmN0aW9uIHZlKHQsZSxuKXtyZXR1cm4gdFswXT1lWzBdLW5bMF0sdFsxXT1lWzFdLW5bMV0sdFsyXT1lWzJdLW5bMl0sdFszXT1lWzNdLW5bM10sdH1mdW5jdGlvbiBIZSh0LGUsbil7cmV0dXJuIHRbMF09ZVswXSpuWzBdLHRbMV09ZVsxXSpuWzFdLHRbMl09ZVsyXSpuWzJdLHRbM109ZVszXSpuWzNdLHR9ZnVuY3Rpb24gU2kodCxlLG4pe3JldHVybiB0WzBdPWVbMF0vblswXSx0WzFdPWVbMV0vblsxXSx0WzJdPWVbMl0vblsyXSx0WzNdPWVbM10vblszXSx0fWZ1bmN0aW9uIEVpKHQsZSl7cmV0dXJuIHRbMF09TWF0aC5jZWlsKGVbMF0pLHRbMV09TWF0aC5jZWlsKGVbMV0pLHRbMl09TWF0aC5jZWlsKGVbMl0pLHRbM109TWF0aC5jZWlsKGVbM10pLHR9ZnVuY3Rpb24gdmkodCxlKXtyZXR1cm4gdFswXT1NYXRoLmZsb29yKGVbMF0pLHRbMV09TWF0aC5mbG9vcihlWzFdKSx0WzJdPU1hdGguZmxvb3IoZVsyXSksdFszXT1NYXRoLmZsb29yKGVbM10pLHR9ZnVuY3Rpb24gTWkodCxlLG4pe3JldHVybiB0WzBdPU1hdGgubWluKGVbMF0sblswXSksdFsxXT1NYXRoLm1pbihlWzFdLG5bMV0pLHRbMl09TWF0aC5taW4oZVsyXSxuWzJdKSx0WzNdPU1hdGgubWluKGVbM10sblszXSksdH1mdW5jdGlvbiBHaSh0LGUsbil7cmV0dXJuIHRbMF09TWF0aC5tYXgoZVswXSxuWzBdKSx0WzFdPU1hdGgubWF4KGVbMV0sblsxXSksdFsyXT1NYXRoLm1heChlWzJdLG5bMl0pLHRbM109TWF0aC5tYXgoZVszXSxuWzNdKSx0fWZ1bmN0aW9uIG5yKHQsZSl7cmV0dXJuIHRbMF09TWF0aC5yb3VuZChlWzBdKSx0WzFdPU1hdGgucm91bmQoZVsxXSksdFsyXT1NYXRoLnJvdW5kKGVbMl0pLHRbM109TWF0aC5yb3VuZChlWzNdKSx0fWZ1bmN0aW9uIHduKHQsZSxuKXtyZXR1cm4gdFswXT1lWzBdKm4sdFsxXT1lWzFdKm4sdFsyXT1lWzJdKm4sdFszXT1lWzNdKm4sdH1mdW5jdGlvbiBrYyh0LGUsbixyKXtyZXR1cm4gdFswXT1lWzBdK25bMF0qcix0WzFdPWVbMV0rblsxXSpyLHRbMl09ZVsyXStuWzJdKnIsdFszXT1lWzNdK25bM10qcix0fWZ1bmN0aW9uIFlkKHQsZSl7dmFyIG49ZVswXS10WzBdLHI9ZVsxXS10WzFdLGk9ZVsyXS10WzJdLGE9ZVszXS10WzNdO3JldHVybiBNYXRoLmh5cG90KG4scixpLGEpfWZ1bmN0aW9uIEFjKHQsZSl7dmFyIG49ZVswXS10WzBdLHI9ZVsxXS10WzFdLGk9ZVsyXS10WzJdLGE9ZVszXS10WzNdO3JldHVybiBuKm4rcipyK2kqaSthKmF9ZnVuY3Rpb24gX2EodCl7dmFyIGU9dFswXSxuPXRbMV0scj10WzJdLGk9dFszXTtyZXR1cm4gTWF0aC5oeXBvdChlLG4scixpKX1mdW5jdGlvbiBDcih0KXt2YXIgZT10WzBdLG49dFsxXSxyPXRbMl0saT10WzNdO3JldHVybiBlKmUrbipuK3IqcitpKml9ZnVuY3Rpb24gQ3ModCxlKXtyZXR1cm4gdFswXT0tZVswXSx0WzFdPS1lWzFdLHRbMl09LWVbMl0sdFszXT0tZVszXSx0fWZ1bmN0aW9uIExzKHQsZSl7cmV0dXJuIHRbMF09MS9lWzBdLHRbMV09MS9lWzFdLHRbMl09MS9lWzJdLHRbM109MS9lWzNdLHR9ZnVuY3Rpb24gUnModCxlKXt2YXIgbj1lWzBdLHI9ZVsxXSxpPWVbMl0sYT1lWzNdLG89bipuK3IqcitpKmkrYSphO3JldHVybiBvPjAmJihvPTEvTWF0aC5zcXJ0KG8pKSx0WzBdPW4qbyx0WzFdPXIqbyx0WzJdPWkqbyx0WzNdPWEqbyx0fWZ1bmN0aW9uIEthKHQsZSl7cmV0dXJuIHRbMF0qZVswXSt0WzFdKmVbMV0rdFsyXSplWzJdK3RbM10qZVszXX1mdW5jdGlvbiBpTSh0LGUsbixyKXt2YXIgaT1uWzBdKnJbMV0tblsxXSpyWzBdLGE9blswXSpyWzJdLW5bMl0qclswXSxvPW5bMF0qclszXS1uWzNdKnJbMF0scz1uWzFdKnJbMl0tblsyXSpyWzFdLGM9blsxXSpyWzNdLW5bM10qclsxXSxsPW5bMl0qclszXS1uWzNdKnJbMl0sdT1lWzBdLGY9ZVsxXSxkPWVbMl0saD1lWzNdO3JldHVybiB0WzBdPWYqbC1kKmMraCpzLHRbMV09LSh1KmwpK2Qqby1oKmEsdFsyXT11KmMtZipvK2gqaSx0WzNdPS0odSpzKStmKmEtZCppLHR9ZnVuY3Rpb24gdXYodCxlLG4scil7dmFyIGk9ZVswXSxhPWVbMV0sbz1lWzJdLHM9ZVszXTtyZXR1cm4gdFswXT1pK3IqKG5bMF0taSksdFsxXT1hK3IqKG5bMV0tYSksdFsyXT1vK3IqKG5bMl0tbyksdFszXT1zK3IqKG5bM10tcyksdH1mdW5jdGlvbiBhTSh0LGUpe2U9ZXx8MTt2YXIgbixyLGksYSxvLHM7ZG8gbj1nbE1hdHJpeC5SQU5ET00oKSoyLTEscj1nbE1hdHJpeC5SQU5ET00oKSoyLTEsbz1uKm4rcipyO3doaWxlKG8+PTEpO2RvIGk9Z2xNYXRyaXguUkFORE9NKCkqMi0xLGE9Z2xNYXRyaXguUkFORE9NKCkqMi0xLHM9aSppK2EqYTt3aGlsZShzPj0xKTt2YXIgYz1NYXRoLnNxcnQoKDEtbykvcyk7cmV0dXJuIHRbMF09ZSpuLHRbMV09ZSpyLHRbMl09ZSppKmMsdFszXT1lKmEqYyx0fWZ1bmN0aW9uIFJvKHQsZSxuKXt2YXIgcj1lWzBdLGk9ZVsxXSxhPWVbMl0sbz1lWzNdO3JldHVybiB0WzBdPW5bMF0qcituWzRdKmkrbls4XSphK25bMTJdKm8sdFsxXT1uWzFdKnIrbls1XSppK25bOV0qYStuWzEzXSpvLHRbMl09blsyXSpyK25bNl0qaStuWzEwXSphK25bMTRdKm8sdFszXT1uWzNdKnIrbls3XSppK25bMTFdKmErblsxNV0qbyx0fWZ1bmN0aW9uIG9NKHQsZSxuKXt2YXIgcj1lWzBdLGk9ZVsxXSxhPWVbMl0sbz1uWzBdLHM9blsxXSxjPW5bMl0sbD1uWzNdLHU9bCpyK3MqYS1jKmksZj1sKmkrYypyLW8qYSxkPWwqYStvKmktcypyLGg9LW8qci1zKmktYyphO3JldHVybiB0WzBdPXUqbCtoKi1vK2YqLWMtZCotcyx0WzFdPWYqbCtoKi1zK2QqLW8tdSotYyx0WzJdPWQqbCtoKi1jK3UqLXMtZiotbyx0WzNdPWVbM10sdH1mdW5jdGlvbiBzTSh0KXtyZXR1cm4gdFswXT0wLHRbMV09MCx0WzJdPTAsdFszXT0wLHR9ZnVuY3Rpb24gZnYodCl7cmV0dXJuInZlYzQoIit0WzBdKyIsICIrdFsxXSsiLCAiK3RbMl0rIiwgIit0WzNdKyIpIn1mdW5jdGlvbiB4Yih0LGUpe3JldHVybiB0WzBdPT09ZVswXSYmdFsxXT09PWVbMV0mJnRbMl09PT1lWzJdJiZ0WzNdPT09ZVszXX1mdW5jdGlvbiBfYih0LGUpe3ZhciBuPXRbMF0scj10WzFdLGk9dFsyXSxhPXRbM10sbz1lWzBdLHM9ZVsxXSxjPWVbMl0sbD1lWzNdO3JldHVybiBNYXRoLmFicyhuLW8pPD11bipNYXRoLm1heCgxLE1hdGguYWJzKG4pLE1hdGguYWJzKG8pKSYmTWF0aC5hYnMoci1zKTw9dW4qTWF0aC5tYXgoMSxNYXRoLmFicyhyKSxNYXRoLmFicyhzKSkmJk1hdGguYWJzKGktYyk8PXVuKk1hdGgubWF4KDEsTWF0aC5hYnMoaSksTWF0aC5hYnMoYykpJiZNYXRoLmFicyhhLWwpPD11bipNYXRoLm1heCgxLE1hdGguYWJzKGEpLE1hdGguYWJzKGwpKX12YXIgY009bnVsbCxsTT1udWxsLHVNPW51bGwsY3I9bnVsbCxycj1udWxsLGZNPW51bGwsZE09bnVsbCxoTT1mdW5jdGlvbigpe3ZhciB0PUd0KCk7cmV0dXJuIGZ1bmN0aW9uKGUsbixyLGksYSxvKXt2YXIgcyxjO2ZvcihufHwobj00KSxyfHwocj0wKSxpP2M9TWF0aC5taW4oaSpuK3IsZS5sZW5ndGgpOmM9ZS5sZW5ndGgscz1yO3M8YztzKz1uKXRbMF09ZVtzXSx0WzFdPWVbcysxXSx0WzJdPWVbcysyXSx0WzNdPWVbcyszXSxhKHQsdCxvKSxlW3NdPXRbMF0sZVtzKzFdPXRbMV0sZVtzKzJdPXRbMl0sZVtzKzNdPXRbM107cmV0dXJuIGV9fSgpO2Z1bmN0aW9uIFduKCl7dmFyIHQ9bmV3IEhuKDE2KTtyZXR1cm4gSG4hPUZsb2F0MzJBcnJheSYmKHRbMV09MCx0WzJdPTAsdFszXT0wLHRbNF09MCx0WzZdPTAsdFs3XT0wLHRbOF09MCx0WzldPTAsdFsxMV09MCx0WzEyXT0wLHRbMTNdPTAsdFsxNF09MCksdFswXT0xLHRbNV09MSx0WzEwXT0xLHRbMTVdPTEsdH1mdW5jdGlvbiBkdih0KXt2YXIgZT1uZXcgSG4oMTYpO3JldHVybiBlWzBdPXRbMF0sZVsxXT10WzFdLGVbMl09dFsyXSxlWzNdPXRbM10sZVs0XT10WzRdLGVbNV09dFs1XSxlWzZdPXRbNl0sZVs3XT10WzddLGVbOF09dFs4XSxlWzldPXRbOV0sZVsxMF09dFsxMF0sZVsxMV09dFsxMV0sZVsxMl09dFsxMl0sZVsxM109dFsxM10sZVsxNF09dFsxNF0sZVsxNV09dFsxNV0sZX1mdW5jdGlvbiBUYyh0LGUpe3JldHVybiB0WzBdPWVbMF0sdFsxXT1lWzFdLHRbMl09ZVsyXSx0WzNdPWVbM10sdFs0XT1lWzRdLHRbNV09ZVs1XSx0WzZdPWVbNl0sdFs3XT1lWzddLHRbOF09ZVs4XSx0WzldPWVbOV0sdFsxMF09ZVsxMF0sdFsxMV09ZVsxMV0sdFsxMl09ZVsxMl0sdFsxM109ZVsxM10sdFsxNF09ZVsxNF0sdFsxNV09ZVsxNV0sdH1mdW5jdGlvbiBIZCh0LGUsbixyLGksYSxvLHMsYyxsLHUsZixkLGgsdixnKXt2YXIgeT1uZXcgSG4oMTYpO3JldHVybiB5WzBdPXQseVsxXT1lLHlbMl09bix5WzNdPXIseVs0XT1pLHlbNV09YSx5WzZdPW8seVs3XT1zLHlbOF09Yyx5WzldPWwseVsxMF09dSx5WzExXT1mLHlbMTJdPWQseVsxM109aCx5WzE0XT12LHlbMTVdPWcseX1mdW5jdGlvbiBWZCh0LGUsbixyLGksYSxvLHMsYyxsLHUsZixkLGgsdixnLHkpe3JldHVybiB0WzBdPWUsdFsxXT1uLHRbMl09cix0WzNdPWksdFs0XT1hLHRbNV09byx0WzZdPXMsdFs3XT1jLHRbOF09bCx0WzldPXUsdFsxMF09Zix0WzExXT1kLHRbMTJdPWgsdFsxM109dix0WzE0XT1nLHRbMTVdPXksdH1mdW5jdGlvbiBscih0KXtyZXR1cm4gdFswXT0xLHRbMV09MCx0WzJdPTAsdFszXT0wLHRbNF09MCx0WzVdPTEsdFs2XT0wLHRbN109MCx0WzhdPTAsdFs5XT0wLHRbMTBdPTEsdFsxMV09MCx0WzEyXT0wLHRbMTNdPTAsdFsxNF09MCx0WzE1XT0xLHR9ZnVuY3Rpb24gWGQodCxlKXtpZih0PT09ZSl7dmFyIG49ZVsxXSxyPWVbMl0saT1lWzNdLGE9ZVs2XSxvPWVbN10scz1lWzExXTt0WzFdPWVbNF0sdFsyXT1lWzhdLHRbM109ZVsxMl0sdFs0XT1uLHRbNl09ZVs5XSx0WzddPWVbMTNdLHRbOF09cix0WzldPWEsdFsxMV09ZVsxNF0sdFsxMl09aSx0WzEzXT1vLHRbMTRdPXN9ZWxzZSB0WzBdPWVbMF0sdFsxXT1lWzRdLHRbMl09ZVs4XSx0WzNdPWVbMTJdLHRbNF09ZVsxXSx0WzVdPWVbNV0sdFs2XT1lWzldLHRbN109ZVsxM10sdFs4XT1lWzJdLHRbOV09ZVs2XSx0WzEwXT1lWzEwXSx0WzExXT1lWzE0XSx0WzEyXT1lWzNdLHRbMTNdPWVbN10sdFsxNF09ZVsxMV0sdFsxNV09ZVsxNV07cmV0dXJuIHR9ZnVuY3Rpb24gJGkodCxlKXt2YXIgbj1lWzBdLHI9ZVsxXSxpPWVbMl0sYT1lWzNdLG89ZVs0XSxzPWVbNV0sYz1lWzZdLGw9ZVs3XSx1PWVbOF0sZj1lWzldLGQ9ZVsxMF0saD1lWzExXSx2PWVbMTJdLGc9ZVsxM10seT1lWzE0XSxiPWVbMTVdLHg9bipzLXIqbyxfPW4qYy1pKm8sdz1uKmwtYSpvLE89cipjLWkqcyxFPXIqbC1hKnMsTT1pKmwtYSpjLGs9dSpnLWYqdixBPXUqeS1kKnYsUD11KmItaCp2LEM9Zip5LWQqZyxOPWYqYi1oKmcsTD1kKmItaCp5LFI9eCpMLV8qTit3KkMrTypQLUUqQStNKms7cmV0dXJuIFI/KFI9MS9SLHRbMF09KHMqTC1jKk4rbCpDKSpSLHRbMV09KGkqTi1yKkwtYSpDKSpSLHRbMl09KGcqTS15KkUrYipPKSpSLHRbM109KGQqRS1mKk0taCpPKSpSLHRbNF09KGMqUC1vKkwtbCpBKSpSLHRbNV09KG4qTC1pKlArYSpBKSpSLHRbNl09KHkqdy12Kk0tYipfKSpSLHRbN109KHUqTS1kKncraCpfKSpSLHRbOF09KG8qTi1zKlArbCprKSpSLHRbOV09KHIqUC1uKk4tYSprKSpSLHRbMTBdPSh2KkUtZyp3K2IqeCkqUix0WzExXT0oZip3LXUqRS1oKngpKlIsdFsxMl09KHMqQS1vKkMtYyprKSpSLHRbMTNdPShuKkMtcipBK2kqaykqUix0WzE0XT0oZypfLXYqTy15KngpKlIsdFsxNV09KHUqTy1mKl8rZCp4KSpSLHQpOm51bGx9ZnVuY3Rpb24gaHYodCxlKXt2YXIgbj1lWzBdLHI9ZVsxXSxpPWVbMl0sYT1lWzNdLG89ZVs0XSxzPWVbNV0sYz1lWzZdLGw9ZVs3XSx1PWVbOF0sZj1lWzldLGQ9ZVsxMF0saD1lWzExXSx2PWVbMTJdLGc9ZVsxM10seT1lWzE0XSxiPWVbMTVdO3JldHVybiB0WzBdPXMqKGQqYi1oKnkpLWYqKGMqYi1sKnkpK2cqKGMqaC1sKmQpLHRbMV09LShyKihkKmItaCp5KS1mKihpKmItYSp5KStnKihpKmgtYSpkKSksdFsyXT1yKihjKmItbCp5KS1zKihpKmItYSp5KStnKihpKmwtYSpjKSx0WzNdPS0ociooYypoLWwqZCktcyooaSpoLWEqZCkrZiooaSpsLWEqYykpLHRbNF09LShvKihkKmItaCp5KS11KihjKmItbCp5KSt2KihjKmgtbCpkKSksdFs1XT1uKihkKmItaCp5KS11KihpKmItYSp5KSt2KihpKmgtYSpkKSx0WzZdPS0obiooYypiLWwqeSktbyooaSpiLWEqeSkrdiooaSpsLWEqYykpLHRbN109biooYypoLWwqZCktbyooaSpoLWEqZCkrdSooaSpsLWEqYyksdFs4XT1vKihmKmItaCpnKS11KihzKmItbCpnKSt2KihzKmgtbCpmKSx0WzldPS0obiooZipiLWgqZyktdSoocipiLWEqZykrdioocipoLWEqZikpLHRbMTBdPW4qKHMqYi1sKmcpLW8qKHIqYi1hKmcpK3YqKHIqbC1hKnMpLHRbMTFdPS0obioocypoLWwqZiktbyoocipoLWEqZikrdSoocipsLWEqcykpLHRbMTJdPS0obyooZip5LWQqZyktdSoocyp5LWMqZykrdioocypkLWMqZikpLHRbMTNdPW4qKGYqeS1kKmcpLXUqKHIqeS1pKmcpK3YqKHIqZC1pKmYpLHRbMTRdPS0obioocyp5LWMqZyktbyoocip5LWkqZykrdioocipjLWkqcykpLHRbMTVdPW4qKHMqZC1jKmYpLW8qKHIqZC1pKmYpK3UqKHIqYy1pKnMpLHR9ZnVuY3Rpb24gJHUodCl7dmFyIGU9dFswXSxuPXRbMV0scj10WzJdLGk9dFszXSxhPXRbNF0sbz10WzVdLHM9dFs2XSxjPXRbN10sbD10WzhdLHU9dFs5XSxmPXRbMTBdLGQ9dFsxMV0saD10WzEyXSx2PXRbMTNdLGc9dFsxNF0seT10WzE1XSxiPWUqby1uKmEseD1lKnMtciphLF89ZSpjLWkqYSx3PW4qcy1yKm8sTz1uKmMtaSpvLEU9cipjLWkqcyxNPWwqdi11Kmgsaz1sKmctZipoLEE9bCp5LWQqaCxQPXUqZy1mKnYsQz11KnktZCp2LE49Zip5LWQqZztyZXR1cm4gYipOLXgqQytfKlArdypBLU8qaytFKk19ZnVuY3Rpb24gR24odCxlLG4pe3ZhciByPWVbMF0saT1lWzFdLGE9ZVsyXSxvPWVbM10scz1lWzRdLGM9ZVs1XSxsPWVbNl0sdT1lWzddLGY9ZVs4XSxkPWVbOV0saD1lWzEwXSx2PWVbMTFdLGc9ZVsxMl0seT1lWzEzXSxiPWVbMTRdLHg9ZVsxNV0sXz1uWzBdLHc9blsxXSxPPW5bMl0sRT1uWzNdO3JldHVybiB0WzBdPV8qcit3KnMrTypmK0UqZyx0WzFdPV8qaSt3KmMrTypkK0UqeSx0WzJdPV8qYSt3KmwrTypoK0UqYix0WzNdPV8qbyt3KnUrTyp2K0UqeCxfPW5bNF0sdz1uWzVdLE89bls2XSxFPW5bN10sdFs0XT1fKnIrdypzK08qZitFKmcsdFs1XT1fKmkrdypjK08qZCtFKnksdFs2XT1fKmErdypsK08qaCtFKmIsdFs3XT1fKm8rdyp1K08qditFKngsXz1uWzhdLHc9bls5XSxPPW5bMTBdLEU9blsxMV0sdFs4XT1fKnIrdypzK08qZitFKmcsdFs5XT1fKmkrdypjK08qZCtFKnksdFsxMF09XyphK3cqbCtPKmgrRSpiLHRbMTFdPV8qbyt3KnUrTyp2K0UqeCxfPW5bMTJdLHc9blsxM10sTz1uWzE0XSxFPW5bMTVdLHRbMTJdPV8qcit3KnMrTypmK0UqZyx0WzEzXT1fKmkrdypjK08qZCtFKnksdFsxNF09XyphK3cqbCtPKmgrRSpiLHRbMTVdPV8qbyt3KnUrTyp2K0UqeCx0fWZ1bmN0aW9uIE5zKHQsZSxuKXt2YXIgcj1uWzBdLGk9blsxXSxhPW5bMl0sbyxzLGMsbCx1LGYsZCxoLHYsZyx5LGI7cmV0dXJuIGU9PT10Pyh0WzEyXT1lWzBdKnIrZVs0XSppK2VbOF0qYStlWzEyXSx0WzEzXT1lWzFdKnIrZVs1XSppK2VbOV0qYStlWzEzXSx0WzE0XT1lWzJdKnIrZVs2XSppK2VbMTBdKmErZVsxNF0sdFsxNV09ZVszXSpyK2VbN10qaStlWzExXSphK2VbMTVdKToobz1lWzBdLHM9ZVsxXSxjPWVbMl0sbD1lWzNdLHU9ZVs0XSxmPWVbNV0sZD1lWzZdLGg9ZVs3XSx2PWVbOF0sZz1lWzldLHk9ZVsxMF0sYj1lWzExXSx0WzBdPW8sdFsxXT1zLHRbMl09Yyx0WzNdPWwsdFs0XT11LHRbNV09Zix0WzZdPWQsdFs3XT1oLHRbOF09dix0WzldPWcsdFsxMF09eSx0WzExXT1iLHRbMTJdPW8qcit1KmkrdiphK2VbMTJdLHRbMTNdPXMqcitmKmkrZyphK2VbMTNdLHRbMTRdPWMqcitkKmkreSphK2VbMTRdLHRbMTVdPWwqcitoKmkrYiphK2VbMTVdKSx0fWZ1bmN0aW9uIFVkKHQsZSxuKXt2YXIgcj1uWzBdLGk9blsxXSxhPW5bMl07cmV0dXJuIHRbMF09ZVswXSpyLHRbMV09ZVsxXSpyLHRbMl09ZVsyXSpyLHRbM109ZVszXSpyLHRbNF09ZVs0XSppLHRbNV09ZVs1XSppLHRbNl09ZVs2XSppLHRbN109ZVs3XSppLHRbOF09ZVs4XSphLHRbOV09ZVs5XSphLHRbMTBdPWVbMTBdKmEsdFsxMV09ZVsxMV0qYSx0WzEyXT1lWzEyXSx0WzEzXT1lWzEzXSx0WzE0XT1lWzE0XSx0WzE1XT1lWzE1XSx0fWZ1bmN0aW9uIHB2KHQsZSxuLHIpe3ZhciBpPXJbMF0sYT1yWzFdLG89clsyXSxzPU1hdGguaHlwb3QoaSxhLG8pLGMsbCx1LGYsZCxoLHYsZyx5LGIseCxfLHcsTyxFLE0sayxBLFAsQyxOLEwsUixJO3JldHVybiBzPHVuP251bGw6KHM9MS9zLGkqPXMsYSo9cyxvKj1zLGM9TWF0aC5zaW4obiksbD1NYXRoLmNvcyhuKSx1PTEtbCxmPWVbMF0sZD1lWzFdLGg9ZVsyXSx2PWVbM10sZz1lWzRdLHk9ZVs1XSxiPWVbNl0seD1lWzddLF89ZVs4XSx3PWVbOV0sTz1lWzEwXSxFPWVbMTFdLE09aSppKnUrbCxrPWEqaSp1K28qYyxBPW8qaSp1LWEqYyxQPWkqYSp1LW8qYyxDPWEqYSp1K2wsTj1vKmEqdStpKmMsTD1pKm8qdSthKmMsUj1hKm8qdS1pKmMsST1vKm8qdStsLHRbMF09ZipNK2cqaytfKkEsdFsxXT1kKk0reSprK3cqQSx0WzJdPWgqTStiKmsrTypBLHRbM109dipNK3gqaytFKkEsdFs0XT1mKlArZypDK18qTix0WzVdPWQqUCt5KkMrdypOLHRbNl09aCpQK2IqQytPKk4sdFs3XT12KlAreCpDK0UqTix0WzhdPWYqTCtnKlIrXypJLHRbOV09ZCpMK3kqUit3KkksdFsxMF09aCpMK2IqUitPKkksdFsxMV09dipMK3gqUitFKkksZSE9PXQmJih0WzEyXT1lWzEyXSx0WzEzXT1lWzEzXSx0WzE0XT1lWzE0XSx0WzE1XT1lWzE1XSksdCl9ZnVuY3Rpb24gcWQodCxlLG4pe3ZhciByPU1hdGguc2luKG4pLGk9TWF0aC5jb3MobiksYT1lWzRdLG89ZVs1XSxzPWVbNl0sYz1lWzddLGw9ZVs4XSx1PWVbOV0sZj1lWzEwXSxkPWVbMTFdO3JldHVybiBlIT09dCYmKHRbMF09ZVswXSx0WzFdPWVbMV0sdFsyXT1lWzJdLHRbM109ZVszXSx0WzEyXT1lWzEyXSx0WzEzXT1lWzEzXSx0WzE0XT1lWzE0XSx0WzE1XT1lWzE1XSksdFs0XT1hKmkrbCpyLHRbNV09byppK3Uqcix0WzZdPXMqaStmKnIsdFs3XT1jKmkrZCpyLHRbOF09bCppLWEqcix0WzldPXUqaS1vKnIsdFsxMF09ZippLXMqcix0WzExXT1kKmktYypyLHR9ZnVuY3Rpb24gS2QodCxlLG4pe3ZhciByPU1hdGguc2luKG4pLGk9TWF0aC5jb3MobiksYT1lWzBdLG89ZVsxXSxzPWVbMl0sYz1lWzNdLGw9ZVs4XSx1PWVbOV0sZj1lWzEwXSxkPWVbMTFdO3JldHVybiBlIT09dCYmKHRbNF09ZVs0XSx0WzVdPWVbNV0sdFs2XT1lWzZdLHRbN109ZVs3XSx0WzEyXT1lWzEyXSx0WzEzXT1lWzEzXSx0WzE0XT1lWzE0XSx0WzE1XT1lWzE1XSksdFswXT1hKmktbCpyLHRbMV09byppLXUqcix0WzJdPXMqaS1mKnIsdFszXT1jKmktZCpyLHRbOF09YSpyK2wqaSx0WzldPW8qcit1KmksdFsxMF09cypyK2YqaSx0WzExXT1jKnIrZCppLHR9ZnVuY3Rpb24gdnYodCxlLG4pe3ZhciByPU1hdGguc2luKG4pLGk9TWF0aC5jb3MobiksYT1lWzBdLG89ZVsxXSxzPWVbMl0sYz1lWzNdLGw9ZVs0XSx1PWVbNV0sZj1lWzZdLGQ9ZVs3XTtyZXR1cm4gZSE9PXQmJih0WzhdPWVbOF0sdFs5XT1lWzldLHRbMTBdPWVbMTBdLHRbMTFdPWVbMTFdLHRbMTJdPWVbMTJdLHRbMTNdPWVbMTNdLHRbMTRdPWVbMTRdLHRbMTVdPWVbMTVdKSx0WzBdPWEqaStsKnIsdFsxXT1vKmkrdSpyLHRbMl09cyppK2Yqcix0WzNdPWMqaStkKnIsdFs0XT1sKmktYSpyLHRbNV09dSppLW8qcix0WzZdPWYqaS1zKnIsdFs3XT1kKmktYypyLHR9ZnVuY3Rpb24gTHIodCxlKXtyZXR1cm4gdFswXT0xLHRbMV09MCx0WzJdPTAsdFszXT0wLHRbNF09MCx0WzVdPTEsdFs2XT0wLHRbN109MCx0WzhdPTAsdFs5XT0wLHRbMTBdPTEsdFsxMV09MCx0WzEyXT1lWzBdLHRbMTNdPWVbMV0sdFsxNF09ZVsyXSx0WzE1XT0xLHR9ZnVuY3Rpb24gSXModCxlKXtyZXR1cm4gdFswXT1lWzBdLHRbMV09MCx0WzJdPTAsdFszXT0wLHRbNF09MCx0WzVdPWVbMV0sdFs2XT0wLHRbN109MCx0WzhdPTAsdFs5XT0wLHRbMTBdPWVbMl0sdFsxMV09MCx0WzEyXT0wLHRbMTNdPTAsdFsxNF09MCx0WzE1XT0xLHR9ZnVuY3Rpb24gdWEodCxlLG4pe3ZhciByPW5bMF0saT1uWzFdLGE9blsyXSxvPU1hdGguaHlwb3QocixpLGEpLHMsYyxsO3JldHVybiBvPHVuP251bGw6KG89MS9vLHIqPW8saSo9byxhKj1vLHM9TWF0aC5zaW4oZSksYz1NYXRoLmNvcyhlKSxsPTEtYyx0WzBdPXIqcipsK2MsdFsxXT1pKnIqbCthKnMsdFsyXT1hKnIqbC1pKnMsdFszXT0wLHRbNF09cippKmwtYSpzLHRbNV09aSppKmwrYyx0WzZdPWEqaSpsK3Iqcyx0WzddPTAsdFs4XT1yKmEqbCtpKnMsdFs5XT1pKmEqbC1yKnMsdFsxMF09YSphKmwrYyx0WzExXT0wLHRbMTJdPTAsdFsxM109MCx0WzE0XT0wLHRbMTVdPTEsdCl9ZnVuY3Rpb24gZ3YodCxlKXt2YXIgbj1NYXRoLnNpbihlKSxyPU1hdGguY29zKGUpO3JldHVybiB0WzBdPTEsdFsxXT0wLHRbMl09MCx0WzNdPTAsdFs0XT0wLHRbNV09cix0WzZdPW4sdFs3XT0wLHRbOF09MCx0WzldPS1uLHRbMTBdPXIsdFsxMV09MCx0WzEyXT0wLHRbMTNdPTAsdFsxNF09MCx0WzE1XT0xLHR9ZnVuY3Rpb24gUWQodCxlKXt2YXIgbj1NYXRoLnNpbihlKSxyPU1hdGguY29zKGUpO3JldHVybiB0WzBdPXIsdFsxXT0wLHRbMl09LW4sdFszXT0wLHRbNF09MCx0WzVdPTEsdFs2XT0wLHRbN109MCx0WzhdPW4sdFs5XT0wLHRbMTBdPXIsdFsxMV09MCx0WzEyXT0wLHRbMTNdPTAsdFsxNF09MCx0WzE1XT0xLHR9ZnVuY3Rpb24gUWEodCxlKXt2YXIgbj1NYXRoLnNpbihlKSxyPU1hdGguY29zKGUpO3JldHVybiB0WzBdPXIsdFsxXT1uLHRbMl09MCx0WzNdPTAsdFs0XT0tbix0WzVdPXIsdFs2XT0wLHRbN109MCx0WzhdPTAsdFs5XT0wLHRbMTBdPTEsdFsxMV09MCx0WzEyXT0wLHRbMTNdPTAsdFsxNF09MCx0WzE1XT0xLHR9ZnVuY3Rpb24gTWwodCxlLG4pe3ZhciByPWVbMF0saT1lWzFdLGE9ZVsyXSxvPWVbM10scz1yK3IsYz1pK2ksbD1hK2EsdT1yKnMsZj1yKmMsZD1yKmwsaD1pKmMsdj1pKmwsZz1hKmwseT1vKnMsYj1vKmMseD1vKmw7cmV0dXJuIHRbMF09MS0oaCtnKSx0WzFdPWYreCx0WzJdPWQtYix0WzNdPTAsdFs0XT1mLXgsdFs1XT0xLSh1K2cpLHRbNl09dit5LHRbN109MCx0WzhdPWQrYix0WzldPXYteSx0WzEwXT0xLSh1K2gpLHRbMTFdPTAsdFsxMl09blswXSx0WzEzXT1uWzFdLHRbMTRdPW5bMl0sdFsxNV09MSx0fWZ1bmN0aW9uIEpkKHQsZSl7dmFyIG49bmV3IEhuKDMpLHI9LWVbMF0saT0tZVsxXSxhPS1lWzJdLG89ZVszXSxzPWVbNF0sYz1lWzVdLGw9ZVs2XSx1PWVbN10sZj1yKnIraSppK2EqYStvKm87cmV0dXJuIGY+MD8oblswXT0ocypvK3UqcitjKmEtbCppKSoyL2YsblsxXT0oYypvK3UqaStsKnItcyphKSoyL2YsblsyXT0obCpvK3UqYStzKmktYypyKSoyL2YpOihuWzBdPShzKm8rdSpyK2MqYS1sKmkpKjIsblsxXT0oYypvK3UqaStsKnItcyphKSoyLG5bMl09KGwqbyt1KmErcyppLWMqcikqMiksTWwodCxlLG4pLHR9ZnVuY3Rpb24gJG4odCxlKXtyZXR1cm4gdFswXT1lWzEyXSx0WzFdPWVbMTNdLHRbMl09ZVsxNF0sdH1mdW5jdGlvbiBmYSh0LGUpe3ZhciBuPWVbMF0scj1lWzFdLGk9ZVsyXSxhPWVbNF0sbz1lWzVdLHM9ZVs2XSxjPWVbOF0sbD1lWzldLHU9ZVsxMF07cmV0dXJuIHRbMF09TWF0aC5oeXBvdChuLHIsaSksdFsxXT1NYXRoLmh5cG90KGEsbyxzKSx0WzJdPU1hdGguaHlwb3QoYyxsLHUpLHR9ZnVuY3Rpb24gUGModCxlKXt2YXIgbj1uZXcgSG4oMyk7ZmEobixlKTt2YXIgcj0xL25bMF0saT0xL25bMV0sYT0xL25bMl0sbz1lWzBdKnIscz1lWzFdKmksYz1lWzJdKmEsbD1lWzRdKnIsdT1lWzVdKmksZj1lWzZdKmEsZD1lWzhdKnIsaD1lWzldKmksdj1lWzEwXSphLGc9byt1K3YseT0wO3JldHVybiBnPjA/KHk9TWF0aC5zcXJ0KGcrMSkqMix0WzNdPS4yNSp5LHRbMF09KGYtaCkveSx0WzFdPShkLWMpL3ksdFsyXT0ocy1sKS95KTpvPnUmJm8+dj8oeT1NYXRoLnNxcnQoMStvLXUtdikqMix0WzNdPShmLWgpL3ksdFswXT0uMjUqeSx0WzFdPShzK2wpL3ksdFsyXT0oZCtjKS95KTp1PnY/KHk9TWF0aC5zcXJ0KDErdS1vLXYpKjIsdFszXT0oZC1jKS95LHRbMF09KHMrbCkveSx0WzFdPS4yNSp5LHRbMl09KGYraCkveSk6KHk9TWF0aC5zcXJ0KDErdi1vLXUpKjIsdFszXT0ocy1sKS95LHRbMF09KGQrYykveSx0WzFdPShmK2gpL3ksdFsyXT0uMjUqeSksdH1mdW5jdGlvbiB3Yih0LGUsbixyKXt2YXIgaT1lWzBdLGE9ZVsxXSxvPWVbMl0scz1lWzNdLGM9aStpLGw9YSthLHU9bytvLGY9aSpjLGQ9aSpsLGg9aSp1LHY9YSpsLGc9YSp1LHk9byp1LGI9cypjLHg9cypsLF89cyp1LHc9clswXSxPPXJbMV0sRT1yWzJdO3JldHVybiB0WzBdPSgxLSh2K3kpKSp3LHRbMV09KGQrXykqdyx0WzJdPShoLXgpKncsdFszXT0wLHRbNF09KGQtXykqTyx0WzVdPSgxLShmK3kpKSpPLHRbNl09KGcrYikqTyx0WzddPTAsdFs4XT0oaCt4KSpFLHRbOV09KGctYikqRSx0WzEwXT0oMS0oZit2KSkqRSx0WzExXT0wLHRbMTJdPW5bMF0sdFsxM109blsxXSx0WzE0XT1uWzJdLHRbMTVdPTEsdH1mdW5jdGlvbiBEcyh0LGUsbixyLGkpe3ZhciBhPWVbMF0sbz1lWzFdLHM9ZVsyXSxjPWVbM10sbD1hK2EsdT1vK28sZj1zK3MsZD1hKmwsaD1hKnUsdj1hKmYsZz1vKnUseT1vKmYsYj1zKmYseD1jKmwsXz1jKnUsdz1jKmYsTz1yWzBdLEU9clsxXSxNPXJbMl0saz1pWzBdLEE9aVsxXSxQPWlbMl0sQz0oMS0oZytiKSkqTyxOPShoK3cpKk8sTD0odi1fKSpPLFI9KGgtdykqRSxJPSgxLShkK2IpKSpFLEQ9KHkreCkqRSxHPSh2K18pKk0sRj0oeS14KSpNLFc9KDEtKGQrZykpKk07cmV0dXJuIHRbMF09Qyx0WzFdPU4sdFsyXT1MLHRbM109MCx0WzRdPVIsdFs1XT1JLHRbNl09RCx0WzddPTAsdFs4XT1HLHRbOV09Rix0WzEwXT1XLHRbMTFdPTAsdFsxMl09blswXStrLShDKmsrUipBK0cqUCksdFsxM109blsxXStBLShOKmsrSSpBK0YqUCksdFsxNF09blsyXStQLShMKmsrRCpBK1cqUCksdFsxNV09MSx0fWZ1bmN0aW9uIHRoKHQsZSl7dmFyIG49ZVswXSxyPWVbMV0saT1lWzJdLGE9ZVszXSxvPW4rbixzPXIrcixjPWkraSxsPW4qbyx1PXIqbyxmPXIqcyxkPWkqbyxoPWkqcyx2PWkqYyxnPWEqbyx5PWEqcyxiPWEqYztyZXR1cm4gdFswXT0xLWYtdix0WzFdPXUrYix0WzJdPWQteSx0WzNdPTAsdFs0XT11LWIsdFs1XT0xLWwtdix0WzZdPWgrZyx0WzddPTAsdFs4XT1kK3ksdFs5XT1oLWcsdFsxMF09MS1sLWYsdFsxMV09MCx0WzEyXT0wLHRbMTNdPTAsdFsxNF09MCx0WzE1XT0xLHR9ZnVuY3Rpb24gT2IodCxlLG4scixpLGEsbyl7dmFyIHM9MS8obi1lKSxjPTEvKGktciksbD0xLyhhLW8pO3JldHVybiB0WzBdPWEqMipzLHRbMV09MCx0WzJdPTAsdFszXT0wLHRbNF09MCx0WzVdPWEqMipjLHRbNl09MCx0WzddPTAsdFs4XT0obitlKSpzLHRbOV09KGkrcikqYyx0WzEwXT0obythKSpsLHRbMTFdPS0xLHRbMTJdPTAsdFsxM109MCx0WzE0XT1vKmEqMipsLHRbMTVdPTAsdH1mdW5jdGlvbiB5dih0LGUsbixyLGkpe3ZhciBhPTEvTWF0aC50YW4oZS8yKSxvO3JldHVybiB0WzBdPWEvbix0WzFdPTAsdFsyXT0wLHRbM109MCx0WzRdPTAsdFs1XT1hLHRbNl09MCx0WzddPTAsdFs4XT0wLHRbOV09MCx0WzExXT0tMSx0WzEyXT0wLHRbMTNdPTAsdFsxNV09MCxpIT1udWxsJiZpIT09MS8wPyhvPTEvKHItaSksdFsxMF09KGkrcikqbyx0WzE0XT0yKmkqcipvKToodFsxMF09LTEsdFsxNF09LTIqciksdH12YXIgbXY9eXY7ZnVuY3Rpb24gWnUodCxlLG4scixpKXt2YXIgYT0xL01hdGgudGFuKGUvMiksbztyZXR1cm4gdFswXT1hL24sdFsxXT0wLHRbMl09MCx0WzNdPTAsdFs0XT0wLHRbNV09YSx0WzZdPTAsdFs3XT0wLHRbOF09MCx0WzldPTAsdFsxMV09LTEsdFsxMl09MCx0WzEzXT0wLHRbMTVdPTAsaSE9bnVsbCYmaSE9PTEvMD8obz0xLyhyLWkpLHRbMTBdPWkqbyx0WzE0XT1pKnIqbyk6KHRbMTBdPS0xLHRbMTRdPS1yKSx0fWZ1bmN0aW9uIENjKHQsZSxuLHIpe3ZhciBpPU1hdGgudGFuKGUudXBEZWdyZWVzKk1hdGguUEkvMTgwKSxhPU1hdGgudGFuKGUuZG93bkRlZ3JlZXMqTWF0aC5QSS8xODApLG89TWF0aC50YW4oZS5sZWZ0RGVncmVlcypNYXRoLlBJLzE4MCkscz1NYXRoLnRhbihlLnJpZ2h0RGVncmVlcypNYXRoLlBJLzE4MCksYz0yLyhvK3MpLGw9Mi8oaSthKTtyZXR1cm4gdFswXT1jLHRbMV09MCx0WzJdPTAsdFszXT0wLHRbNF09MCx0WzVdPWwsdFs2XT0wLHRbN109MCx0WzhdPS0oKG8tcykqYyouNSksdFs5XT0oaS1hKSpsKi41LHRbMTBdPXIvKG4tciksdFsxMV09LTEsdFsxMl09MCx0WzEzXT0wLHRbMTRdPXIqbi8obi1yKSx0WzE1XT0wLHR9ZnVuY3Rpb24gYnYodCxlLG4scixpLGEsbyl7dmFyIHM9MS8oZS1uKSxjPTEvKHItaSksbD0xLyhhLW8pO3JldHVybiB0WzBdPS0yKnMsdFsxXT0wLHRbMl09MCx0WzNdPTAsdFs0XT0wLHRbNV09LTIqYyx0WzZdPTAsdFs3XT0wLHRbOF09MCx0WzldPTAsdFsxMF09MipsLHRbMTFdPTAsdFsxMl09KGUrbikqcyx0WzEzXT0oaStyKSpjLHRbMTRdPShvK2EpKmwsdFsxNV09MSx0fXZhciBlaD1idjtmdW5jdGlvbiBuaCh0LGUsbixyLGksYSxvKXt2YXIgcz0xLyhlLW4pLGM9MS8oci1pKSxsPTEvKGEtbyk7cmV0dXJuIHRbMF09LTIqcyx0WzFdPTAsdFsyXT0wLHRbM109MCx0WzRdPTAsdFs1XT0tMipjLHRbNl09MCx0WzddPTAsdFs4XT0wLHRbOV09MCx0WzEwXT1sLHRbMTFdPTAsdFsxMl09KGUrbikqcyx0WzEzXT0oaStyKSpjLHRbMTRdPWEqbCx0WzE1XT0xLHR9ZnVuY3Rpb24gWXUodCxlLG4scil7dmFyIGksYSxvLHMsYyxsLHUsZixkLGgsdj1lWzBdLGc9ZVsxXSx5PWVbMl0sYj1yWzBdLHg9clsxXSxfPXJbMl0sdz1uWzBdLE89blsxXSxFPW5bMl07cmV0dXJuIE1hdGguYWJzKHYtdyk8dW4mJk1hdGguYWJzKGctTyk8dW4mJk1hdGguYWJzKHktRSk8dW4/bHIodCk6KHU9di13LGY9Zy1PLGQ9eS1FLGg9MS9NYXRoLmh5cG90KHUsZixkKSx1Kj1oLGYqPWgsZCo9aCxpPXgqZC1fKmYsYT1fKnUtYipkLG89YipmLXgqdSxoPU1hdGguaHlwb3QoaSxhLG8pLGg/KGg9MS9oLGkqPWgsYSo9aCxvKj1oKTooaT0wLGE9MCxvPTApLHM9ZipvLWQqYSxjPWQqaS11Km8sbD11KmEtZippLGg9TWF0aC5oeXBvdChzLGMsbCksaD8oaD0xL2gscyo9aCxjKj1oLGwqPWgpOihzPTAsYz0wLGw9MCksdFswXT1pLHRbMV09cyx0WzJdPXUsdFszXT0wLHRbNF09YSx0WzVdPWMsdFs2XT1mLHRbN109MCx0WzhdPW8sdFs5XT1sLHRbMTBdPWQsdFsxMV09MCx0WzEyXT0tKGkqdithKmcrbyp5KSx0WzEzXT0tKHMqditjKmcrbCp5KSx0WzE0XT0tKHUqditmKmcrZCp5KSx0WzE1XT0xLHQpfWZ1bmN0aW9uIHJoKHQsZSxuLHIpe3ZhciBpPWVbMF0sYT1lWzFdLG89ZVsyXSxzPXJbMF0sYz1yWzFdLGw9clsyXSx1PWktblswXSxmPWEtblsxXSxkPW8tblsyXSxoPXUqdStmKmYrZCpkO2g+MCYmKGg9MS9NYXRoLnNxcnQoaCksdSo9aCxmKj1oLGQqPWgpO3ZhciB2PWMqZC1sKmYsZz1sKnUtcypkLHk9cypmLWMqdTtyZXR1cm4gaD12KnYrZypnK3kqeSxoPjAmJihoPTEvTWF0aC5zcXJ0KGgpLHYqPWgsZyo9aCx5Kj1oKSx0WzBdPXYsdFsxXT1nLHRbMl09eSx0WzNdPTAsdFs0XT1mKnktZCpnLHRbNV09ZCp2LXUqeSx0WzZdPXUqZy1mKnYsdFs3XT0wLHRbOF09dSx0WzldPWYsdFsxMF09ZCx0WzExXT0wLHRbMTJdPWksdFsxM109YSx0WzE0XT1vLHRbMTVdPTEsdH1mdW5jdGlvbiB4dih0KXtyZXR1cm4ibWF0NCgiK3RbMF0rIiwgIit0WzFdKyIsICIrdFsyXSsiLCAiK3RbM10rIiwgIit0WzRdKyIsICIrdFs1XSsiLCAiK3RbNl0rIiwgIit0WzddKyIsICIrdFs4XSsiLCAiK3RbOV0rIiwgIit0WzEwXSsiLCAiK3RbMTFdKyIsICIrdFsxMl0rIiwgIit0WzEzXSsiLCAiK3RbMTRdKyIsICIrdFsxNV0rIikifWZ1bmN0aW9uIFNiKHQpe3JldHVybiBNYXRoLmh5cG90KHRbMF0sdFsxXSx0WzJdLHRbM10sdFs0XSx0WzVdLHRbNl0sdFs3XSx0WzhdLHRbOV0sdFsxMF0sdFsxMV0sdFsxMl0sdFsxM10sdFsxNF0sdFsxNV0pfWZ1bmN0aW9uIGloKHQsZSxuKXtyZXR1cm4gdFswXT1lWzBdK25bMF0sdFsxXT1lWzFdK25bMV0sdFsyXT1lWzJdK25bMl0sdFszXT1lWzNdK25bM10sdFs0XT1lWzRdK25bNF0sdFs1XT1lWzVdK25bNV0sdFs2XT1lWzZdK25bNl0sdFs3XT1lWzddK25bN10sdFs4XT1lWzhdK25bOF0sdFs5XT1lWzldK25bOV0sdFsxMF09ZVsxMF0rblsxMF0sdFsxMV09ZVsxMV0rblsxMV0sdFsxMl09ZVsxMl0rblsxMl0sdFsxM109ZVsxM10rblsxM10sdFsxNF09ZVsxNF0rblsxNF0sdFsxNV09ZVsxNV0rblsxNV0sdH1mdW5jdGlvbiBIdSh0LGUsbil7cmV0dXJuIHRbMF09ZVswXS1uWzBdLHRbMV09ZVsxXS1uWzFdLHRbMl09ZVsyXS1uWzJdLHRbM109ZVszXS1uWzNdLHRbNF09ZVs0XS1uWzRdLHRbNV09ZVs1XS1uWzVdLHRbNl09ZVs2XS1uWzZdLHRbN109ZVs3XS1uWzddLHRbOF09ZVs4XS1uWzhdLHRbOV09ZVs5XS1uWzldLHRbMTBdPWVbMTBdLW5bMTBdLHRbMTFdPWVbMTFdLW5bMTFdLHRbMTJdPWVbMTJdLW5bMTJdLHRbMTNdPWVbMTNdLW5bMTNdLHRbMTRdPWVbMTRdLW5bMTRdLHRbMTVdPWVbMTVdLW5bMTVdLHR9ZnVuY3Rpb24gRWIodCxlLG4pe3JldHVybiB0WzBdPWVbMF0qbix0WzFdPWVbMV0qbix0WzJdPWVbMl0qbix0WzNdPWVbM10qbix0WzRdPWVbNF0qbix0WzVdPWVbNV0qbix0WzZdPWVbNl0qbix0WzddPWVbN10qbix0WzhdPWVbOF0qbix0WzldPWVbOV0qbix0WzEwXT1lWzEwXSpuLHRbMTFdPWVbMTFdKm4sdFsxMl09ZVsxMl0qbix0WzEzXT1lWzEzXSpuLHRbMTRdPWVbMTRdKm4sdFsxNV09ZVsxNV0qbix0fWZ1bmN0aW9uIF92KHQsZSxuLHIpe3JldHVybiB0WzBdPWVbMF0rblswXSpyLHRbMV09ZVsxXStuWzFdKnIsdFsyXT1lWzJdK25bMl0qcix0WzNdPWVbM10rblszXSpyLHRbNF09ZVs0XStuWzRdKnIsdFs1XT1lWzVdK25bNV0qcix0WzZdPWVbNl0rbls2XSpyLHRbN109ZVs3XStuWzddKnIsdFs4XT1lWzhdK25bOF0qcix0WzldPWVbOV0rbls5XSpyLHRbMTBdPWVbMTBdK25bMTBdKnIsdFsxMV09ZVsxMV0rblsxMV0qcix0WzEyXT1lWzEyXStuWzEyXSpyLHRbMTNdPWVbMTNdK25bMTNdKnIsdFsxNF09ZVsxNF0rblsxNF0qcix0WzE1XT1lWzE1XStuWzE1XSpyLHR9ZnVuY3Rpb24ga2kodCxlKXtyZXR1cm4gdFswXT09PWVbMF0mJnRbMV09PT1lWzFdJiZ0WzJdPT09ZVsyXSYmdFszXT09PWVbM10mJnRbNF09PT1lWzRdJiZ0WzVdPT09ZVs1XSYmdFs2XT09PWVbNl0mJnRbN109PT1lWzddJiZ0WzhdPT09ZVs4XSYmdFs5XT09PWVbOV0mJnRbMTBdPT09ZVsxMF0mJnRbMTFdPT09ZVsxMV0mJnRbMTJdPT09ZVsxMl0mJnRbMTNdPT09ZVsxM10mJnRbMTRdPT09ZVsxNF0mJnRbMTVdPT09ZVsxNV19ZnVuY3Rpb24gYWgodCxlKXt2YXIgbj10WzBdLHI9dFsxXSxpPXRbMl0sYT10WzNdLG89dFs0XSxzPXRbNV0sYz10WzZdLGw9dFs3XSx1PXRbOF0sZj10WzldLGQ9dFsxMF0saD10WzExXSx2PXRbMTJdLGc9dFsxM10seT10WzE0XSxiPXRbMTVdLHg9ZVswXSxfPWVbMV0sdz1lWzJdLE89ZVszXSxFPWVbNF0sTT1lWzVdLGs9ZVs2XSxBPWVbN10sUD1lWzhdLEM9ZVs5XSxOPWVbMTBdLEw9ZVsxMV0sUj1lWzEyXSxJPWVbMTNdLEQ9ZVsxNF0sRz1lWzE1XTtyZXR1cm4gTWF0aC5hYnMobi14KTw9dW4qTWF0aC5tYXgoMSxNYXRoLmFicyhuKSxNYXRoLmFicyh4KSkmJk1hdGguYWJzKHItXyk8PXVuKk1hdGgubWF4KDEsTWF0aC5hYnMociksTWF0aC5hYnMoXykpJiZNYXRoLmFicyhpLXcpPD11bipNYXRoLm1heCgxLE1hdGguYWJzKGkpLE1hdGguYWJzKHcpKSYmTWF0aC5hYnMoYS1PKTw9dW4qTWF0aC5tYXgoMSxNYXRoLmFicyhhKSxNYXRoLmFicyhPKSkmJk1hdGguYWJzKG8tRSk8PXVuKk1hdGgubWF4KDEsTWF0aC5hYnMobyksTWF0aC5hYnMoRSkpJiZNYXRoLmFicyhzLU0pPD11bipNYXRoLm1heCgxLE1hdGguYWJzKHMpLE1hdGguYWJzKE0pKSYmTWF0aC5hYnMoYy1rKTw9dW4qTWF0aC5tYXgoMSxNYXRoLmFicyhjKSxNYXRoLmFicyhrKSkmJk1hdGguYWJzKGwtQSk8PXVuKk1hdGgubWF4KDEsTWF0aC5hYnMobCksTWF0aC5hYnMoQSkpJiZNYXRoLmFicyh1LVApPD11bipNYXRoLm1heCgxLE1hdGguYWJzKHUpLE1hdGguYWJzKFApKSYmTWF0aC5hYnMoZi1DKTw9dW4qTWF0aC5tYXgoMSxNYXRoLmFicyhmKSxNYXRoLmFicyhDKSkmJk1hdGguYWJzKGQtTik8PXVuKk1hdGgubWF4KDEsTWF0aC5hYnMoZCksTWF0aC5hYnMoTikpJiZNYXRoLmFicyhoLUwpPD11bipNYXRoLm1heCgxLE1hdGguYWJzKGgpLE1hdGguYWJzKEwpKSYmTWF0aC5hYnModi1SKTw9dW4qTWF0aC5tYXgoMSxNYXRoLmFicyh2KSxNYXRoLmFicyhSKSkmJk1hdGguYWJzKGctSSk8PXVuKk1hdGgubWF4KDEsTWF0aC5hYnMoZyksTWF0aC5hYnMoSSkpJiZNYXRoLmFicyh5LUQpPD11bipNYXRoLm1heCgxLE1hdGguYWJzKHkpLE1hdGguYWJzKEQpKSYmTWF0aC5hYnMoYi1HKTw9dW4qTWF0aC5tYXgoMSxNYXRoLmFicyhiKSxNYXRoLmFicyhHKSl9dmFyIExjPUduLHd2PUh1O2Z1bmN0aW9uIG9oKCl7dmFyIHQ9bmV3IEhuKDkpO3JldHVybiBIbiE9RmxvYXQzMkFycmF5JiYodFsxXT0wLHRbMl09MCx0WzNdPTAsdFs1XT0wLHRbNl09MCx0WzddPTApLHRbMF09MSx0WzRdPTEsdFs4XT0xLHR9ZnVuY3Rpb24gTWIodCxlKXtyZXR1cm4gdFswXT1lWzBdLHRbMV09ZVsxXSx0WzJdPWVbMl0sdFszXT1lWzRdLHRbNF09ZVs1XSx0WzVdPWVbNl0sdFs2XT1lWzhdLHRbN109ZVs5XSx0WzhdPWVbMTBdLHR9ZnVuY3Rpb24gcE0odCl7dmFyIGU9bmV3IGdsTWF0cml4LkFSUkFZX1RZUEUoOSk7cmV0dXJuIGVbMF09dFswXSxlWzFdPXRbMV0sZVsyXT10WzJdLGVbM109dFszXSxlWzRdPXRbNF0sZVs1XT10WzVdLGVbNl09dFs2XSxlWzddPXRbN10sZVs4XT10WzhdLGV9ZnVuY3Rpb24gdk0odCxlKXtyZXR1cm4gdFswXT1lWzBdLHRbMV09ZVsxXSx0WzJdPWVbMl0sdFszXT1lWzNdLHRbNF09ZVs0XSx0WzVdPWVbNV0sdFs2XT1lWzZdLHRbN109ZVs3XSx0WzhdPWVbOF0sdH1mdW5jdGlvbiBrYih0LGUsbixyLGksYSxvLHMsYyl7dmFyIGw9bmV3IEhuKDkpO3JldHVybiBsWzBdPXQsbFsxXT1lLGxbMl09bixsWzNdPXIsbFs0XT1pLGxbNV09YSxsWzZdPW8sbFs3XT1zLGxbOF09YyxsfWZ1bmN0aW9uIGdNKHQsZSxuLHIsaSxhLG8scyxjLGwpe3JldHVybiB0WzBdPWUsdFsxXT1uLHRbMl09cix0WzNdPWksdFs0XT1hLHRbNV09byx0WzZdPXMsdFs3XT1jLHRbOF09bCx0fWZ1bmN0aW9uIGtsKHQpe3JldHVybiB0WzBdPTEsdFsxXT0wLHRbMl09MCx0WzNdPTAsdFs0XT0xLHRbNV09MCx0WzZdPTAsdFs3XT0wLHRbOF09MSx0fWZ1bmN0aW9uIHlNKHQsZSl7aWYodD09PWUpe3ZhciBuPWVbMV0scj1lWzJdLGk9ZVs1XTt0WzFdPWVbM10sdFsyXT1lWzZdLHRbM109bix0WzVdPWVbN10sdFs2XT1yLHRbN109aX1lbHNlIHRbMF09ZVswXSx0WzFdPWVbM10sdFsyXT1lWzZdLHRbM109ZVsxXSx0WzRdPWVbNF0sdFs1XT1lWzddLHRbNl09ZVsyXSx0WzddPWVbNV0sdFs4XT1lWzhdO3JldHVybiB0fWZ1bmN0aW9uIG1NKHQsZSl7dmFyIG49ZVswXSxyPWVbMV0saT1lWzJdLGE9ZVszXSxvPWVbNF0scz1lWzVdLGM9ZVs2XSxsPWVbN10sdT1lWzhdLGY9dSpvLXMqbCxkPS11KmErcypjLGg9bCphLW8qYyx2PW4qZityKmQraSpoO3JldHVybiB2Pyh2PTEvdix0WzBdPWYqdix0WzFdPSgtdSpyK2kqbCkqdix0WzJdPShzKnItaSpvKSp2LHRbM109ZCp2LHRbNF09KHUqbi1pKmMpKnYsdFs1XT0oLXMqbitpKmEpKnYsdFs2XT1oKnYsdFs3XT0oLWwqbityKmMpKnYsdFs4XT0obypuLXIqYSkqdix0KTpudWxsfWZ1bmN0aW9uIE92KHQsZSl7dmFyIG49ZVswXSxyPWVbMV0saT1lWzJdLGE9ZVszXSxvPWVbNF0scz1lWzVdLGM9ZVs2XSxsPWVbN10sdT1lWzhdO3JldHVybiB0WzBdPW8qdS1zKmwsdFsxXT1pKmwtcip1LHRbMl09cipzLWkqbyx0WzNdPXMqYy1hKnUsdFs0XT1uKnUtaSpjLHRbNV09aSphLW4qcyx0WzZdPWEqbC1vKmMsdFs3XT1yKmMtbipsLHRbOF09bipvLXIqYSx0fWZ1bmN0aW9uIEFiKHQpe3ZhciBlPXRbMF0sbj10WzFdLHI9dFsyXSxpPXRbM10sYT10WzRdLG89dFs1XSxzPXRbNl0sYz10WzddLGw9dFs4XTtyZXR1cm4gZSoobCphLW8qYykrbiooLWwqaStvKnMpK3IqKGMqaS1hKnMpfWZ1bmN0aW9uIGpzKHQsZSxuKXt2YXIgcj1lWzBdLGk9ZVsxXSxhPWVbMl0sbz1lWzNdLHM9ZVs0XSxjPWVbNV0sbD1lWzZdLHU9ZVs3XSxmPWVbOF0sZD1uWzBdLGg9blsxXSx2PW5bMl0sZz1uWzNdLHk9bls0XSxiPW5bNV0seD1uWzZdLF89bls3XSx3PW5bOF07cmV0dXJuIHRbMF09ZCpyK2gqbyt2KmwsdFsxXT1kKmkraCpzK3YqdSx0WzJdPWQqYStoKmMrdipmLHRbM109ZypyK3kqbytiKmwsdFs0XT1nKmkreSpzK2IqdSx0WzVdPWcqYSt5KmMrYipmLHRbNl09eCpyK18qbyt3KmwsdFs3XT14KmkrXypzK3cqdSx0WzhdPXgqYStfKmMrdypmLHR9ZnVuY3Rpb24gc2godCxlLG4pe3ZhciByPWVbMF0saT1lWzFdLGE9ZVsyXSxvPWVbM10scz1lWzRdLGM9ZVs1XSxsPWVbNl0sdT1lWzddLGY9ZVs4XSxkPW5bMF0saD1uWzFdO3JldHVybiB0WzBdPXIsdFsxXT1pLHRbMl09YSx0WzNdPW8sdFs0XT1zLHRbNV09Yyx0WzZdPWQqcitoKm8rbCx0WzddPWQqaStoKnMrdSx0WzhdPWQqYStoKmMrZix0fWZ1bmN0aW9uIGJNKHQsZSxuKXt2YXIgcj1lWzBdLGk9ZVsxXSxhPWVbMl0sbz1lWzNdLHM9ZVs0XSxjPWVbNV0sbD1lWzZdLHU9ZVs3XSxmPWVbOF0sZD1NYXRoLnNpbihuKSxoPU1hdGguY29zKG4pO3JldHVybiB0WzBdPWgqcitkKm8sdFsxXT1oKmkrZCpzLHRbMl09aCphK2QqYyx0WzNdPWgqby1kKnIsdFs0XT1oKnMtZCppLHRbNV09aCpjLWQqYSx0WzZdPWwsdFs3XT11LHRbOF09Zix0fWZ1bmN0aW9uIHhNKHQsZSxuKXt2YXIgcj1uWzBdLGk9blsxXTtyZXR1cm4gdFswXT1yKmVbMF0sdFsxXT1yKmVbMV0sdFsyXT1yKmVbMl0sdFszXT1pKmVbM10sdFs0XT1pKmVbNF0sdFs1XT1pKmVbNV0sdFs2XT1lWzZdLHRbN109ZVs3XSx0WzhdPWVbOF0sdH1mdW5jdGlvbiBfTSh0LGUpe3JldHVybiB0WzBdPTEsdFsxXT0wLHRbMl09MCx0WzNdPTAsdFs0XT0xLHRbNV09MCx0WzZdPWVbMF0sdFs3XT1lWzFdLHRbOF09MSx0fWZ1bmN0aW9uIEFsKHQsZSl7dmFyIG49TWF0aC5zaW4oZSkscj1NYXRoLmNvcyhlKTtyZXR1cm4gdFswXT1yLHRbMV09bix0WzJdPTAsdFszXT0tbix0WzRdPXIsdFs1XT0wLHRbNl09MCx0WzddPTAsdFs4XT0xLHR9ZnVuY3Rpb24gSmEodCxlKXtyZXR1cm4gdFswXT1lWzBdLHRbMV09MCx0WzJdPTAsdFszXT0wLHRbNF09ZVsxXSx0WzVdPTAsdFs2XT0wLHRbN109MCx0WzhdPTEsdH1mdW5jdGlvbiBUYih0LGUpe3JldHVybiB0WzBdPWVbMF0sdFsxXT1lWzFdLHRbMl09MCx0WzNdPWVbMl0sdFs0XT1lWzNdLHRbNV09MCx0WzZdPWVbNF0sdFs3XT1lWzVdLHRbOF09MSx0fWZ1bmN0aW9uIHdNKHQsZSl7dmFyIG49ZVswXSxyPWVbMV0saT1lWzJdLGE9ZVszXSxvPW4rbixzPXIrcixjPWkraSxsPW4qbyx1PXIqbyxmPXIqcyxkPWkqbyxoPWkqcyx2PWkqYyxnPWEqbyx5PWEqcyxiPWEqYztyZXR1cm4gdFswXT0xLWYtdix0WzNdPXUtYix0WzZdPWQreSx0WzFdPXUrYix0WzRdPTEtbC12LHRbN109aC1nLHRbMl09ZC15LHRbNV09aCtnLHRbOF09MS1sLWYsdH1mdW5jdGlvbiBPTSh0LGUpe3ZhciBuPWVbMF0scj1lWzFdLGk9ZVsyXSxhPWVbM10sbz1lWzRdLHM9ZVs1XSxjPWVbNl0sbD1lWzddLHU9ZVs4XSxmPWVbOV0sZD1lWzEwXSxoPWVbMTFdLHY9ZVsxMl0sZz1lWzEzXSx5PWVbMTRdLGI9ZVsxNV0seD1uKnMtcipvLF89bipjLWkqbyx3PW4qbC1hKm8sTz1yKmMtaSpzLEU9cipsLWEqcyxNPWkqbC1hKmMsaz11KmctZip2LEE9dSp5LWQqdixQPXUqYi1oKnYsQz1mKnktZCpnLE49ZipiLWgqZyxMPWQqYi1oKnksUj14KkwtXypOK3cqQytPKlAtRSpBK00qaztyZXR1cm4gUj8oUj0xL1IsdFswXT0ocypMLWMqTitsKkMpKlIsdFsxXT0oYypQLW8qTC1sKkEpKlIsdFsyXT0obypOLXMqUCtsKmspKlIsdFszXT0oaSpOLXIqTC1hKkMpKlIsdFs0XT0obipMLWkqUCthKkEpKlIsdFs1XT0ocipQLW4qTi1hKmspKlIsdFs2XT0oZypNLXkqRStiKk8pKlIsdFs3XT0oeSp3LXYqTS1iKl8pKlIsdFs4XT0odipFLWcqdytiKngpKlIsdCk6bnVsbH1mdW5jdGlvbiBTTSh0LGUsbil7cmV0dXJuIHRbMF09Mi9lLHRbMV09MCx0WzJdPTAsdFszXT0wLHRbNF09LTIvbix0WzVdPTAsdFs2XT0tMSx0WzddPTEsdFs4XT0xLHR9ZnVuY3Rpb24gRU0odCl7cmV0dXJuIm1hdDMoIit0WzBdKyIsICIrdFsxXSsiLCAiK3RbMl0rIiwgIit0WzNdKyIsICIrdFs0XSsiLCAiK3RbNV0rIiwgIit0WzZdKyIsICIrdFs3XSsiLCAiK3RbOF0rIikifWZ1bmN0aW9uIE1NKHQpe3JldHVybiBNYXRoLmh5cG90KHRbMF0sdFsxXSx0WzJdLHRbM10sdFs0XSx0WzVdLHRbNl0sdFs3XSx0WzhdKX1mdW5jdGlvbiBjaCh0LGUsbil7cmV0dXJuIHRbMF09ZVswXStuWzBdLHRbMV09ZVsxXStuWzFdLHRbMl09ZVsyXStuWzJdLHRbM109ZVszXStuWzNdLHRbNF09ZVs0XStuWzRdLHRbNV09ZVs1XStuWzVdLHRbNl09ZVs2XStuWzZdLHRbN109ZVs3XStuWzddLHRbOF09ZVs4XStuWzhdLHR9ZnVuY3Rpb24gb3QodCxlLG4pe3JldHVybiB0WzBdPWVbMF0tblswXSx0WzFdPWVbMV0tblsxXSx0WzJdPWVbMl0tblsyXSx0WzNdPWVbM10tblszXSx0WzRdPWVbNF0tbls0XSx0WzVdPWVbNV0tbls1XSx0WzZdPWVbNl0tbls2XSx0WzddPWVbN10tbls3XSx0WzhdPWVbOF0tbls4XSx0fWZ1bmN0aW9uIF90KHQsZSxuKXtyZXR1cm4gdFswXT1lWzBdKm4sdFsxXT1lWzFdKm4sdFsyXT1lWzJdKm4sdFszXT1lWzNdKm4sdFs0XT1lWzRdKm4sdFs1XT1lWzVdKm4sdFs2XT1lWzZdKm4sdFs3XT1lWzddKm4sdFs4XT1lWzhdKm4sdH1mdW5jdGlvbiB2dCh0LGUsbixyKXtyZXR1cm4gdFswXT1lWzBdK25bMF0qcix0WzFdPWVbMV0rblsxXSpyLHRbMl09ZVsyXStuWzJdKnIsdFszXT1lWzNdK25bM10qcix0WzRdPWVbNF0rbls0XSpyLHRbNV09ZVs1XStuWzVdKnIsdFs2XT1lWzZdK25bNl0qcix0WzddPWVbN10rbls3XSpyLHRbOF09ZVs4XStuWzhdKnIsdH1mdW5jdGlvbiBzZSh0LGUpe3JldHVybiB0WzBdPT09ZVswXSYmdFsxXT09PWVbMV0mJnRbMl09PT1lWzJdJiZ0WzNdPT09ZVszXSYmdFs0XT09PWVbNF0mJnRbNV09PT1lWzVdJiZ0WzZdPT09ZVs2XSYmdFs3XT09PWVbN10mJnRbOF09PT1lWzhdfWZ1bmN0aW9uIHplKHQsZSl7dmFyIG49dFswXSxyPXRbMV0saT10WzJdLGE9dFszXSxvPXRbNF0scz10WzVdLGM9dFs2XSxsPXRbN10sdT10WzhdLGY9ZVswXSxkPWVbMV0saD1lWzJdLHY9ZVszXSxnPWVbNF0seT1lWzVdLGI9ZVs2XSx4PWVbN10sXz1lWzhdO3JldHVybiBNYXRoLmFicyhuLWYpPD1nbE1hdHJpeC5FUFNJTE9OKk1hdGgubWF4KDEsTWF0aC5hYnMobiksTWF0aC5hYnMoZikpJiZNYXRoLmFicyhyLWQpPD1nbE1hdHJpeC5FUFNJTE9OKk1hdGgubWF4KDEsTWF0aC5hYnMociksTWF0aC5hYnMoZCkpJiZNYXRoLmFicyhpLWgpPD1nbE1hdHJpeC5FUFNJTE9OKk1hdGgubWF4KDEsTWF0aC5hYnMoaSksTWF0aC5hYnMoaCkpJiZNYXRoLmFicyhhLXYpPD1nbE1hdHJpeC5FUFNJTE9OKk1hdGgubWF4KDEsTWF0aC5hYnMoYSksTWF0aC5hYnModikpJiZNYXRoLmFicyhvLWcpPD1nbE1hdHJpeC5FUFNJTE9OKk1hdGgubWF4KDEsTWF0aC5hYnMobyksTWF0aC5hYnMoZykpJiZNYXRoLmFicyhzLXkpPD1nbE1hdHJpeC5FUFNJTE9OKk1hdGgubWF4KDEsTWF0aC5hYnMocyksTWF0aC5hYnMoeSkpJiZNYXRoLmFicyhjLWIpPD1nbE1hdHJpeC5FUFNJTE9OKk1hdGgubWF4KDEsTWF0aC5hYnMoYyksTWF0aC5hYnMoYikpJiZNYXRoLmFicyhsLXgpPD1nbE1hdHJpeC5FUFNJTE9OKk1hdGgubWF4KDEsTWF0aC5hYnMobCksTWF0aC5hYnMoeCkpJiZNYXRoLmFicyh1LV8pPD1nbE1hdHJpeC5FUFNJTE9OKk1hdGgubWF4KDEsTWF0aC5hYnModSksTWF0aC5hYnMoXykpfXZhciBTbj1udWxsLGVpPW51bGw7ZnVuY3Rpb24gamUoKXt2YXIgdD1uZXcgSG4oNCk7cmV0dXJuIEhuIT1GbG9hdDMyQXJyYXkmJih0WzBdPTAsdFsxXT0wLHRbMl09MCksdFszXT0xLHR9ZnVuY3Rpb24gU3YodCl7cmV0dXJuIHRbMF09MCx0WzFdPTAsdFsyXT0wLHRbM109MSx0fWZ1bmN0aW9uIHFvKHQsZSxuKXtuPW4qLjU7dmFyIHI9TWF0aC5zaW4obik7cmV0dXJuIHRbMF09ciplWzBdLHRbMV09ciplWzFdLHRbMl09ciplWzJdLHRbM109TWF0aC5jb3MobiksdH1mdW5jdGlvbiBJYSh0LGUpe3ZhciBuPU1hdGguYWNvcyhlWzNdKSoyLHI9TWF0aC5zaW4obi8yKTtyZXR1cm4gcj5nbE1hdHJpeC5FUFNJTE9OPyh0WzBdPWVbMF0vcix0WzFdPWVbMV0vcix0WzJdPWVbMl0vcik6KHRbMF09MSx0WzFdPTAsdFsyXT0wKSxufWZ1bmN0aW9uIGxoKHQsZSl7dmFyIG49VnUodCxlKTtyZXR1cm4gTWF0aC5hY29zKDIqbipuLTEpfWZ1bmN0aW9uIEtvKHQsZSxuKXt2YXIgcj1lWzBdLGk9ZVsxXSxhPWVbMl0sbz1lWzNdLHM9blswXSxjPW5bMV0sbD1uWzJdLHU9blszXTtyZXR1cm4gdFswXT1yKnUrbypzK2kqbC1hKmMsdFsxXT1pKnUrbypjK2Eqcy1yKmwsdFsyXT1hKnUrbypsK3IqYy1pKnMsdFszXT1vKnUtcipzLWkqYy1hKmwsdH1mdW5jdGlvbiBUbCh0LGUsbil7bio9LjU7dmFyIHI9ZVswXSxpPWVbMV0sYT1lWzJdLG89ZVszXSxzPU1hdGguc2luKG4pLGM9TWF0aC5jb3Mobik7cmV0dXJuIHRbMF09cipjK28qcyx0WzFdPWkqYythKnMsdFsyXT1hKmMtaSpzLHRbM109bypjLXIqcyx0fWZ1bmN0aW9uIHVoKHQsZSxuKXtuKj0uNTt2YXIgcj1lWzBdLGk9ZVsxXSxhPWVbMl0sbz1lWzNdLHM9TWF0aC5zaW4obiksYz1NYXRoLmNvcyhuKTtyZXR1cm4gdFswXT1yKmMtYSpzLHRbMV09aSpjK28qcyx0WzJdPWEqYytyKnMsdFszXT1vKmMtaSpzLHR9ZnVuY3Rpb24gZmgodCxlLG4pe24qPS41O3ZhciByPWVbMF0saT1lWzFdLGE9ZVsyXSxvPWVbM10scz1NYXRoLnNpbihuKSxjPU1hdGguY29zKG4pO3JldHVybiB0WzBdPXIqYytpKnMsdFsxXT1pKmMtcipzLHRbMl09YSpjK28qcyx0WzNdPW8qYy1hKnMsdH1mdW5jdGlvbiBGbih0LGUpe3ZhciBuPWVbMF0scj1lWzFdLGk9ZVsyXTtyZXR1cm4gdFswXT1uLHRbMV09cix0WzJdPWksdFszXT1NYXRoLnNxcnQoTWF0aC5hYnMoMS1uKm4tcipyLWkqaSkpLHR9ZnVuY3Rpb24gUGIodCxlKXt2YXIgbj1lWzBdLHI9ZVsxXSxpPWVbMl0sYT1lWzNdLG89TWF0aC5zcXJ0KG4qbityKnIraSppKSxzPU1hdGguZXhwKGEpLGM9bz4wP3MqTWF0aC5zaW4obykvbzowO3JldHVybiB0WzBdPW4qYyx0WzFdPXIqYyx0WzJdPWkqYyx0WzNdPXMqTWF0aC5jb3MobyksdH1mdW5jdGlvbiBFdih0LGUpe3ZhciBuPWVbMF0scj1lWzFdLGk9ZVsyXSxhPWVbM10sbz1NYXRoLnNxcnQobipuK3IqcitpKmkpLHM9bz4wP01hdGguYXRhbjIobyxhKS9vOjA7cmV0dXJuIHRbMF09bipzLHRbMV09cipzLHRbMl09aSpzLHRbM109LjUqTWF0aC5sb2cobipuK3IqcitpKmkrYSphKSx0fWZ1bmN0aW9uIGRoKHQsZSxuKXtyZXR1cm4gRXYodCxlKSxCcyh0LHQsbiksUGIodCx0KSx0fWZ1bmN0aW9uIGhoKHQsZSxuLHIpe3ZhciBpPWVbMF0sYT1lWzFdLG89ZVsyXSxzPWVbM10sYz1uWzBdLGw9blsxXSx1PW5bMl0sZj1uWzNdLGQsaCx2LGcseTtyZXR1cm4gaD1pKmMrYSpsK28qdStzKmYsaDwwJiYoaD0taCxjPS1jLGw9LWwsdT0tdSxmPS1mKSwxLWg+dW4/KGQ9TWF0aC5hY29zKGgpLHY9TWF0aC5zaW4oZCksZz1NYXRoLnNpbigoMS1yKSpkKS92LHk9TWF0aC5zaW4ocipkKS92KTooZz0xLXIseT1yKSx0WzBdPWcqaSt5KmMsdFsxXT1nKmEreSpsLHRbMl09ZypvK3kqdSx0WzNdPWcqcyt5KmYsdH1mdW5jdGlvbiBrTSh0KXt2YXIgZT1nbE1hdHJpeC5SQU5ET00oKSxuPWdsTWF0cml4LlJBTkRPTSgpLHI9Z2xNYXRyaXguUkFORE9NKCksaT1NYXRoLnNxcnQoMS1lKSxhPU1hdGguc3FydChlKTtyZXR1cm4gdFswXT1pKk1hdGguc2luKDIqTWF0aC5QSSpuKSx0WzFdPWkqTWF0aC5jb3MoMipNYXRoLlBJKm4pLHRbMl09YSpNYXRoLnNpbigyKk1hdGguUEkqciksdFszXT1hKk1hdGguY29zKDIqTWF0aC5QSSpyKSx0fWZ1bmN0aW9uIHBoKHQsZSl7dmFyIG49ZVswXSxyPWVbMV0saT1lWzJdLGE9ZVszXSxvPW4qbityKnIraSppK2EqYSxzPW8/MS9vOjA7cmV0dXJuIHRbMF09LW4qcyx0WzFdPS1yKnMsdFsyXT0taSpzLHRbM109YSpzLHR9ZnVuY3Rpb24gdmgodCxlKXtyZXR1cm4gdFswXT0tZVswXSx0WzFdPS1lWzFdLHRbMl09LWVbMl0sdFszXT1lWzNdLHR9ZnVuY3Rpb24gUW8odCxlKXt2YXIgbj1lWzBdK2VbNF0rZVs4XSxyO2lmKG4+MClyPU1hdGguc3FydChuKzEpLHRbM109LjUqcixyPS41L3IsdFswXT0oZVs1XS1lWzddKSpyLHRbMV09KGVbNl0tZVsyXSkqcix0WzJdPShlWzFdLWVbM10pKnI7ZWxzZXt2YXIgaT0wO2VbNF0+ZVswXSYmKGk9MSksZVs4XT5lW2kqMytpXSYmKGk9Mik7dmFyIGE9KGkrMSklMyxvPShpKzIpJTM7cj1NYXRoLnNxcnQoZVtpKjMraV0tZVthKjMrYV0tZVtvKjMrb10rMSksdFtpXT0uNSpyLHI9LjUvcix0WzNdPShlW2EqMytvXS1lW28qMythXSkqcix0W2FdPShlW2EqMytpXStlW2kqMythXSkqcix0W29dPShlW28qMytpXStlW2kqMytvXSkqcn1yZXR1cm4gdH1mdW5jdGlvbiBGcyh0LGUsbixyKXt2YXIgaT0uNSpNYXRoLlBJLzE4MDtlKj1pLG4qPWkscio9aTt2YXIgYT1NYXRoLnNpbihlKSxvPU1hdGguY29zKGUpLHM9TWF0aC5zaW4obiksYz1NYXRoLmNvcyhuKSxsPU1hdGguc2luKHIpLHU9TWF0aC5jb3Mocik7cmV0dXJuIHRbMF09YSpjKnUtbypzKmwsdFsxXT1vKnMqdSthKmMqbCx0WzJdPW8qYypsLWEqcyp1LHRbM109bypjKnUrYSpzKmwsdH1mdW5jdGlvbiBDYih0KXtyZXR1cm4icXVhdCgiK3RbMF0rIiwgIit0WzFdKyIsICIrdFsyXSsiLCAiK3RbM10rIikifXZhciBnaD1OdCxNdj1oZSxQbD1uZSxDbD1wZSxMYj1VdCxSYz1LbyxCcz13bixWdT1LYSxBTT11dixUTT1fYSxQTT1udWxsLHloPUNyLG1oPW51bGwsTmM9UnMsQ009eGIsUmI9X2IsTE09ZnVuY3Rpb24oKXt2YXIgdD1tZSgpLGU9c24oMSwwLDApLG49c24oMCwxLDApO3JldHVybiBmdW5jdGlvbihyLGksYSl7dmFyIG89bGEoaSxhKTtyZXR1cm4gbzwtLjk5OTk5OT8oTWModCxlLGkpLGllKHQpPDFlLTYmJk1jKHQsbixpKSx4YSh0LHQpLHFvKHIsdCxNYXRoLlBJKSxyKTpvPi45OTk5OTk/KHJbMF09MCxyWzFdPTAsclsyXT0wLHJbM109MSxyKTooTWModCxpLGEpLHJbMF09dFswXSxyWzFdPXRbMV0sclsyXT10WzJdLHJbM109MStvLE5jKHIscikpfX0oKSxSTT1mdW5jdGlvbigpe3ZhciB0PWplKCksZT1qZSgpO3JldHVybiBmdW5jdGlvbihuLHIsaSxhLG8scyl7cmV0dXJuIGhoKHQscixvLHMpLGhoKGUsaSxhLHMpLGhoKG4sdCxlLDIqcyooMS1zKSksbn19KCksbmk9ZnVuY3Rpb24oKXt2YXIgdD1vaCgpO3JldHVybiBmdW5jdGlvbihlLG4scixpKXtyZXR1cm4gdFswXT1yWzBdLHRbM109clsxXSx0WzZdPXJbMl0sdFsxXT1pWzBdLHRbNF09aVsxXSx0WzddPWlbMl0sdFsyXT0tblswXSx0WzVdPS1uWzFdLHRbOF09LW5bMl0sTmMoZSxRbyhlLHQpKX19KCk7ZnVuY3Rpb24gcmkoKXt2YXIgdD1uZXcgSG4oMik7cmV0dXJuIEhuIT1GbG9hdDMyQXJyYXkmJih0WzBdPTAsdFsxXT0wKSx0fWZ1bmN0aW9uIE5NKHQpe3ZhciBlPW5ldyBnbE1hdHJpeC5BUlJBWV9UWVBFKDIpO3JldHVybiBlWzBdPXRbMF0sZVsxXT10WzFdLGV9ZnVuY3Rpb24gSU0odCxlKXt2YXIgbj1uZXcgZ2xNYXRyaXguQVJSQVlfVFlQRSgyKTtyZXR1cm4gblswXT10LG5bMV09ZSxufWZ1bmN0aW9uIGt2KHQsZSl7cmV0dXJuIHRbMF09ZVswXSx0WzFdPWVbMV0sdH1mdW5jdGlvbiBOYih0LGUsbil7cmV0dXJuIHRbMF09ZSx0WzFdPW4sdH1mdW5jdGlvbiBBdih0LGUsbil7cmV0dXJuIHRbMF09ZVswXStuWzBdLHRbMV09ZVsxXStuWzFdLHR9ZnVuY3Rpb24gWHUodCxlLG4pe3JldHVybiB0WzBdPWVbMF0tblswXSx0WzFdPWVbMV0tblsxXSx0fWZ1bmN0aW9uIFR2KHQsZSxuKXtyZXR1cm4gdFswXT1lWzBdKm5bMF0sdFsxXT1lWzFdKm5bMV0sdH1mdW5jdGlvbiBMbCh0LGUsbil7cmV0dXJuIHRbMF09ZVswXS9uWzBdLHRbMV09ZVsxXS9uWzFdLHR9ZnVuY3Rpb24gVXUodCxlKXtyZXR1cm4gdFswXT1NYXRoLmNlaWwoZVswXSksdFsxXT1NYXRoLmNlaWwoZVsxXSksdH1mdW5jdGlvbiBxdSh0LGUpe3JldHVybiB0WzBdPU1hdGguZmxvb3IoZVswXSksdFsxXT1NYXRoLmZsb29yKGVbMV0pLHR9ZnVuY3Rpb24gYmgodCxlLG4pe3JldHVybiB0WzBdPU1hdGgubWluKGVbMF0sblswXSksdFsxXT1NYXRoLm1pbihlWzFdLG5bMV0pLHR9ZnVuY3Rpb24gUmwodCxlLG4pe3JldHVybiB0WzBdPU1hdGgubWF4KGVbMF0sblswXSksdFsxXT1NYXRoLm1heChlWzFdLG5bMV0pLHR9ZnVuY3Rpb24gRE0odCxlKXtyZXR1cm4gdFswXT1NYXRoLnJvdW5kKGVbMF0pLHRbMV09TWF0aC5yb3VuZChlWzFdKSx0fWZ1bmN0aW9uIGpNKHQsZSxuKXtyZXR1cm4gdFswXT1lWzBdKm4sdFsxXT1lWzFdKm4sdH1mdW5jdGlvbiBGTSh0LGUsbixyKXtyZXR1cm4gdFswXT1lWzBdK25bMF0qcix0WzFdPWVbMV0rblsxXSpyLHR9ZnVuY3Rpb24gQk0odCxlKXt2YXIgbj1lWzBdLXRbMF0scj1lWzFdLXRbMV07cmV0dXJuIE1hdGguaHlwb3QobixyKX1mdW5jdGlvbiB6TSh0LGUpe3ZhciBuPWVbMF0tdFswXSxyPWVbMV0tdFsxXTtyZXR1cm4gbipuK3Iqcn1mdW5jdGlvbiB4aCh0KXt2YXIgZT10WzBdLG49dFsxXTtyZXR1cm4gTWF0aC5oeXBvdChlLG4pfWZ1bmN0aW9uIEt1KHQpe3ZhciBlPXRbMF0sbj10WzFdO3JldHVybiBlKmUrbipufWZ1bmN0aW9uIEliKHQsZSl7cmV0dXJuIHRbMF09LWVbMF0sdFsxXT0tZVsxXSx0fWZ1bmN0aW9uIFoodCxlKXtyZXR1cm4gdFswXT0xL2VbMF0sdFsxXT0xL2VbMV0sdH1mdW5jdGlvbiBJYyh0LGUpe3ZhciBuPWVbMF0scj1lWzFdLGk9bipuK3IqcjtyZXR1cm4gaT4wJiYoaT0xL01hdGguc3FydChpKSksdFswXT1lWzBdKmksdFsxXT1lWzFdKmksdH1mdW5jdGlvbiBRdSh0LGUpe3JldHVybiB0WzBdKmVbMF0rdFsxXSplWzFdfWZ1bmN0aW9uIERhKHQsZSxuKXt2YXIgcj1lWzBdKm5bMV0tZVsxXSpuWzBdO3JldHVybiB0WzBdPXRbMV09MCx0WzJdPXIsdH1mdW5jdGlvbiBmbih0LGUsbixyKXt2YXIgaT1lWzBdLGE9ZVsxXTtyZXR1cm4gdFswXT1pK3IqKG5bMF0taSksdFsxXT1hK3IqKG5bMV0tYSksdH1mdW5jdGlvbiBXTSh0LGUpe2U9ZXx8MTt2YXIgbj1nbE1hdHJpeC5SQU5ET00oKSoyKk1hdGguUEk7cmV0dXJuIHRbMF09TWF0aC5jb3MobikqZSx0WzFdPU1hdGguc2luKG4pKmUsdH1mdW5jdGlvbiBHTSh0LGUsbil7dmFyIHI9ZVswXSxpPWVbMV07cmV0dXJuIHRbMF09blswXSpyK25bMl0qaSx0WzFdPW5bMV0qcituWzNdKmksdH1mdW5jdGlvbiAkTSh0LGUsbil7dmFyIHI9ZVswXSxpPWVbMV07cmV0dXJuIHRbMF09blswXSpyK25bMl0qaStuWzRdLHRbMV09blsxXSpyK25bM10qaStuWzVdLHR9ZnVuY3Rpb24gRGModCxlLG4pe3ZhciByPWVbMF0saT1lWzFdO3JldHVybiB0WzBdPW5bMF0qcituWzNdKmkrbls2XSx0WzFdPW5bMV0qcituWzRdKmkrbls3XSx0fWZ1bmN0aW9uIFpNKHQsZSxuKXt2YXIgcj1lWzBdLGk9ZVsxXTtyZXR1cm4gdFswXT1uWzBdKnIrbls0XSppK25bMTJdLHRbMV09blsxXSpyK25bNV0qaStuWzEzXSx0fWZ1bmN0aW9uIFlNKHQsZSxuLHIpe3ZhciBpPWVbMF0tblswXSxhPWVbMV0tblsxXSxvPU1hdGguc2luKHIpLHM9TWF0aC5jb3Mocik7cmV0dXJuIHRbMF09aSpzLWEqbytuWzBdLHRbMV09aSpvK2EqcytuWzFdLHR9ZnVuY3Rpb24gSE0odCxlKXt2YXIgbj10WzBdLHI9dFsxXSxpPWVbMF0sYT1lWzFdLG89TWF0aC5zcXJ0KG4qbityKnIpKk1hdGguc3FydChpKmkrYSphKSxzPW8mJihuKmkrciphKS9vO3JldHVybiBNYXRoLmFjb3MoTWF0aC5taW4oTWF0aC5tYXgocywtMSksMSkpfWZ1bmN0aW9uIFZNKHQpe3JldHVybiB0WzBdPTAsdFsxXT0wLHR9ZnVuY3Rpb24gWE0odCl7cmV0dXJuInZlYzIoIit0WzBdKyIsICIrdFsxXSsiKSJ9ZnVuY3Rpb24gTm8odCxlKXtyZXR1cm4gdFswXT09PWVbMF0mJnRbMV09PT1lWzFdfWZ1bmN0aW9uIFVNKHQsZSl7dmFyIG49dFswXSxyPXRbMV0saT1lWzBdLGE9ZVsxXTtyZXR1cm4gTWF0aC5hYnMobi1pKTw9Z2xNYXRyaXguRVBTSUxPTipNYXRoLm1heCgxLE1hdGguYWJzKG4pLE1hdGguYWJzKGkpKSYmTWF0aC5hYnMoci1hKTw9Z2xNYXRyaXguRVBTSUxPTipNYXRoLm1heCgxLE1hdGguYWJzKHIpLE1hdGguYWJzKGEpKX12YXIgcU09bnVsbCxLTT1udWxsLFFNPW51bGwsSk09bnVsbCxKbz1udWxsLHRrPW51bGwsZWs9bnVsbCxuaz1mdW5jdGlvbigpe3ZhciB0PXJpKCk7cmV0dXJuIGZ1bmN0aW9uKGUsbixyLGksYSxvKXt2YXIgcyxjO2ZvcihufHwobj0yKSxyfHwocj0wKSxpP2M9TWF0aC5taW4oaSpuK3IsZS5sZW5ndGgpOmM9ZS5sZW5ndGgscz1yO3M8YztzKz1uKXRbMF09ZVtzXSx0WzFdPWVbcysxXSxhKHQsdCxvKSxlW3NdPXRbMF0sZVtzKzFdPXRbMV07cmV0dXJuIGV9fSgpO2Z1bmN0aW9uIFZuKHQpe3JldHVybiB0eXBlb2YgdD09Im51bWJlciJ9ZnVuY3Rpb24gWmkodCxlKXtyZXR1cm4gTWF0aC5zcXJ0KCh0WzBdLWVbMF0pKih0WzBdLWVbMF0pKyh0WzFdLWVbMV0pKih0WzFdLWVbMV0pKX1mdW5jdGlvbiBnZSh0KXtyZXR1cm4gdD09bnVsbH1mdW5jdGlvbiBpcih0KXtyZXR1cm4gdHlwZW9mIHQ9PSJzdHJpbmcifXZhciBEYj1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHQ8ZT9lOnQ+bj9uOnR9LG1uPURiLF9oPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIF9oPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihuLHIpe24uX19wcm90b19fPXJ9fHxmdW5jdGlvbihuLHIpe2Zvcih2YXIgaSBpbiByKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyLGkpJiYobltpXT1yW2ldKX0sX2godCxlKX07ZnVuY3Rpb24gYXIodCxlKXtpZih0eXBlb2YgZSE9ImZ1bmN0aW9uIiYmZSE9PW51bGwpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiK1N0cmluZyhlKSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTtfaCh0LGUpO2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9dC5wcm90b3R5cGU9ZT09PW51bGw/T2JqZWN0LmNyZWF0ZShlKToobi5wcm90b3R5cGU9ZS5wcm90b3R5cGUsbmV3IG4pfXZhciBBdD1mdW5jdGlvbigpe3JldHVybiBBdD1PYmplY3QuYXNzaWdufHxmdW5jdGlvbihlKXtmb3IodmFyIG4scj0xLGk9YXJndW1lbnRzLmxlbmd0aDtyPGk7cisrKXtuPWFyZ3VtZW50c1tyXTtmb3IodmFyIGEgaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixhKSYmKGVbYV09blthXSl9cmV0dXJuIGV9LEF0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX07ZnVuY3Rpb24gJHIodCxlKXt2YXIgbj17fTtmb3IodmFyIHIgaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKSYmZS5pbmRleE9mKHIpPDAmJihuW3JdPXRbcl0pO2lmKHQhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgaT0wLHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTtpPHIubGVuZ3RoO2krKyllLmluZGV4T2YocltpXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHQscltpXSkmJihuW3JbaV1dPXRbcltpXV0pO3JldHVybiBufWZ1bmN0aW9uIGpiKHQsZSxuLHIpe3ZhciBpPWFyZ3VtZW50cy5sZW5ndGgsYT1pPDM/ZTpyPT09bnVsbD9yPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSxuKTpyLG87aWYodHlwZW9mIFJlZmxlY3Q9PSJvYmplY3QiJiZ0eXBlb2YgUmVmbGVjdC5kZWNvcmF0ZT09ImZ1bmN0aW9uIilhPVJlZmxlY3QuZGVjb3JhdGUodCxlLG4scik7ZWxzZSBmb3IodmFyIHM9dC5sZW5ndGgtMTtzPj0wO3MtLSkobz10W3NdKSYmKGE9KGk8Mz9vKGEpOmk+Mz9vKGUsbixhKTpvKGUsbikpfHxhKTtyZXR1cm4gaT4zJiZhJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLGEpLGF9ZnVuY3Rpb24gUHYodCxlKXtyZXR1cm4gZnVuY3Rpb24obixyKXtlKG4scix0KX19ZnVuY3Rpb24gQ3YodCxlLG4scixpLGEpe2Z1bmN0aW9uIG8oYil7aWYoYiE9PXZvaWQgMCYmdHlwZW9mIGIhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4gYn1mb3IodmFyIHM9ci5raW5kLGM9cz09PSJnZXR0ZXIiPyJnZXQiOnM9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGw9IWUmJnQ/ci5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLHU9ZXx8KGw/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsLHIubmFtZSk6e30pLGYsZD0hMSxoPW4ubGVuZ3RoLTE7aD49MDtoLS0pe3ZhciB2PXt9O2Zvcih2YXIgZyBpbiByKXZbZ109Zz09PSJhY2Nlc3MiP3t9OnJbZ107Zm9yKHZhciBnIGluIHIuYWNjZXNzKXYuYWNjZXNzW2ddPXIuYWNjZXNzW2ddO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oYil7aWYoZCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTthLnB1c2gobyhifHxudWxsKSl9O3ZhciB5PSgwLG5baF0pKHM9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2NdLHYpO2lmKHM9PT0iYWNjZXNzb3IiKXtpZih5PT09dm9pZCAwKWNvbnRpbnVlO2lmKHk9PT1udWxsfHx0eXBlb2YgeSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGY9byh5LmdldCkpJiYodS5nZXQ9ZiksKGY9byh5LnNldCkpJiYodS5zZXQ9ZiksKGY9byh5LmluaXQpKSYmaS51bnNoaWZ0KGYpfWVsc2UoZj1vKHkpKSYmKHM9PT0iZmllbGQiP2kudW5zaGlmdChmKTp1W2NdPWYpfWwmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShsLHIubmFtZSx1KSxkPSEwfWZ1bmN0aW9uIEZiKHQsZSxuKXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyluPXI/ZVtpXS5jYWxsKHQsbik6ZVtpXS5jYWxsKHQpO3JldHVybiByP246dm9pZCAwfWZ1bmN0aW9uIEJiKHQpe3JldHVybiB0eXBlb2YgdD09InN5bWJvbCI/dDoiIi5jb25jYXQodCl9ZnVuY3Rpb24gd2godCxlLG4pe3JldHVybiB0eXBlb2YgZT09InN5bWJvbCImJihlPWUuZGVzY3JpcHRpb24/IlsiLmNvbmNhdChlLmRlc2NyaXB0aW9uLCJdIik6IiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJuYW1lIix7Y29uZmlndXJhYmxlOiEwLHZhbHVlOm4/IiIuY29uY2F0KG4sIiAiLGUpOmV9KX1mdW5jdGlvbiBObCh0LGUpe2lmKHR5cGVvZiBSZWZsZWN0PT0ib2JqZWN0IiYmdHlwZW9mIFJlZmxlY3QubWV0YWRhdGE9PSJmdW5jdGlvbiIpcmV0dXJuIFJlZmxlY3QubWV0YWRhdGEodCxlKX1mdW5jdGlvbiBKdSh0LGUsbixyKXtmdW5jdGlvbiBpKGEpe3JldHVybiBhIGluc3RhbmNlb2Ygbj9hOm5ldyBuKGZ1bmN0aW9uKG8pe28oYSl9KX1yZXR1cm4gbmV3KG58fChuPVByb21pc2UpKShmdW5jdGlvbihhLG8pe2Z1bmN0aW9uIHModSl7dHJ5e2woci5uZXh0KHUpKX1jYXRjaChmKXtvKGYpfX1mdW5jdGlvbiBjKHUpe3RyeXtsKHIudGhyb3codSkpfWNhdGNoKGYpe28oZil9fWZ1bmN0aW9uIGwodSl7dS5kb25lP2EodS52YWx1ZSk6aSh1LnZhbHVlKS50aGVuKHMsYyl9bCgocj1yLmFwcGx5KHQsZXx8W10pKS5uZXh0KCkpfSl9ZnVuY3Rpb24gemIodCxlKXt2YXIgbj17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoYVswXSYxKXRocm93IGFbMV07cmV0dXJuIGFbMV19LHRyeXM6W10sb3BzOltdfSxyLGksYSxvPU9iamVjdC5jcmVhdGUoKHR5cGVvZiBJdGVyYXRvcj09ImZ1bmN0aW9uIj9JdGVyYXRvcjpPYmplY3QpLnByb3RvdHlwZSk7cmV0dXJuIG8ubmV4dD1zKDApLG8udGhyb3c9cygxKSxvLnJldHVybj1zKDIpLHR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJihvW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLG87ZnVuY3Rpb24gcyhsKXtyZXR1cm4gZnVuY3Rpb24odSl7cmV0dXJuIGMoW2wsdV0pfX1mdW5jdGlvbiBjKGwpe2lmKHIpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7byYmKG89MCxsWzBdJiYobj0wKSksbjspdHJ5e2lmKHI9MSxpJiYoYT1sWzBdJjI/aS5yZXR1cm46bFswXT9pLnRocm93fHwoKGE9aS5yZXR1cm4pJiZhLmNhbGwoaSksMCk6aS5uZXh0KSYmIShhPWEuY2FsbChpLGxbMV0pKS5kb25lKXJldHVybiBhO3N3aXRjaChpPTAsYSYmKGw9W2xbMF0mMixhLnZhbHVlXSksbFswXSl7Y2FzZSAwOmNhc2UgMTphPWw7YnJlYWs7Y2FzZSA0OnJldHVybiBuLmxhYmVsKysse3ZhbHVlOmxbMV0sZG9uZTohMX07Y2FzZSA1Om4ubGFiZWwrKyxpPWxbMV0sbD1bMF07Y29udGludWU7Y2FzZSA3Omw9bi5vcHMucG9wKCksbi50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoYT1uLnRyeXMsIShhPWEubGVuZ3RoPjAmJmFbYS5sZW5ndGgtMV0pJiYobFswXT09PTZ8fGxbMF09PT0yKSl7bj0wO2NvbnRpbnVlfWlmKGxbMF09PT0zJiYoIWF8fGxbMV0+YVswXSYmbFsxXTxhWzNdKSl7bi5sYWJlbD1sWzFdO2JyZWFrfWlmKGxbMF09PT02JiZuLmxhYmVsPGFbMV0pe24ubGFiZWw9YVsxXSxhPWw7YnJlYWt9aWYoYSYmbi5sYWJlbDxhWzJdKXtuLmxhYmVsPWFbMl0sbi5vcHMucHVzaChsKTticmVha31hWzJdJiZuLm9wcy5wb3AoKSxuLnRyeXMucG9wKCk7Y29udGludWV9bD1lLmNhbGwodCxuKX1jYXRjaCh1KXtsPVs2LHVdLGk9MH1maW5hbGx5e3I9YT0wfWlmKGxbMF0mNSl0aHJvdyBsWzFdO3JldHVybnt2YWx1ZTpsWzBdP2xbMV06dm9pZCAwLGRvbmU6ITB9fX12YXIgdGY9T2JqZWN0LmNyZWF0ZT9mdW5jdGlvbih0LGUsbixyKXtyPT09dm9pZCAwJiYocj1uKTt2YXIgaT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsbik7KCFpfHwoImdldCJpbiBpPyFlLl9fZXNNb2R1bGU6aS53cml0YWJsZXx8aS5jb25maWd1cmFibGUpKSYmKGk9e2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGVbbl19fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQscixpKX06ZnVuY3Rpb24odCxlLG4scil7cj09PXZvaWQgMCYmKHI9biksdFtyXT1lW25dfTtmdW5jdGlvbiBXYih0LGUpe2Zvcih2YXIgbiBpbiB0KW4hPT0iZGVmYXVsdCImJiFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxuKSYmdGYoZSx0LG4pfWZ1bmN0aW9uIGdpKHQpe3ZhciBlPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5pdGVyYXRvcixuPWUmJnRbZV0scj0wO2lmKG4pcmV0dXJuIG4uY2FsbCh0KTtpZih0JiZ0eXBlb2YgdC5sZW5ndGg9PSJudW1iZXIiKXJldHVybntuZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIHQmJnI+PXQubGVuZ3RoJiYodD12b2lkIDApLHt2YWx1ZTp0JiZ0W3IrK10sZG9uZTohdH19fTt0aHJvdyBuZXcgVHlwZUVycm9yKGU/Ik9iamVjdCBpcyBub3QgaXRlcmFibGUuIjoiU3ltYm9sLml0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLiIpfWZ1bmN0aW9uIFYodCxlKXt2YXIgbj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZ0W1N5bWJvbC5pdGVyYXRvcl07aWYoIW4pcmV0dXJuIHQ7dmFyIHI9bi5jYWxsKHQpLGksYT1bXSxvO3RyeXtmb3IoOyhlPT09dm9pZCAwfHxlLS0gPjApJiYhKGk9ci5uZXh0KCkpLmRvbmU7KWEucHVzaChpLnZhbHVlKX1jYXRjaChzKXtvPXtlcnJvcjpzfX1maW5hbGx5e3RyeXtpJiYhaS5kb25lJiYobj1yLnJldHVybikmJm4uY2FsbChyKX1maW5hbGx5e2lmKG8pdGhyb3cgby5lcnJvcn19cmV0dXJuIGF9ZnVuY3Rpb24genMoKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdD10LmNvbmNhdChWKGFyZ3VtZW50c1tlXSkpO3JldHVybiB0fWZ1bmN0aW9uIHdhKCl7Zm9yKHZhciB0PTAsZT0wLG49YXJndW1lbnRzLmxlbmd0aDtlPG47ZSsrKXQrPWFyZ3VtZW50c1tlXS5sZW5ndGg7Zm9yKHZhciByPUFycmF5KHQpLGk9MCxlPTA7ZTxuO2UrKylmb3IodmFyIGE9YXJndW1lbnRzW2VdLG89MCxzPWEubGVuZ3RoO288cztvKyssaSsrKXJbaV09YVtvXTtyZXR1cm4gcn1mdW5jdGlvbiB0ZSh0LGUsbil7aWYobnx8YXJndW1lbnRzLmxlbmd0aD09PTIpZm9yKHZhciByPTAsaT1lLmxlbmd0aCxhO3I8aTtyKyspKGF8fCEociBpbiBlKSkmJihhfHwoYT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChlLDAscikpLGFbcl09ZVtyXSk7cmV0dXJuIHQuY29uY2F0KGF8fEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGUpKX1mdW5jdGlvbiBqYyh0KXtyZXR1cm4gdGhpcyBpbnN0YW5jZW9mIGpjPyh0aGlzLnY9dCx0aGlzKTpuZXcgamModCl9ZnVuY3Rpb24gTHYodCxlLG4pe2lmKCFTeW1ib2wuYXN5bmNJdGVyYXRvcil0aHJvdyBuZXcgVHlwZUVycm9yKCJTeW1ib2wuYXN5bmNJdGVyYXRvciBpcyBub3QgZGVmaW5lZC4iKTt2YXIgcj1uLmFwcGx5KHQsZXx8W10pLGksYT1bXTtyZXR1cm4gaT1PYmplY3QuY3JlYXRlKCh0eXBlb2YgQXN5bmNJdGVyYXRvcj09ImZ1bmN0aW9uIj9Bc3luY0l0ZXJhdG9yOk9iamVjdCkucHJvdG90eXBlKSxzKCJuZXh0IikscygidGhyb3ciKSxzKCJyZXR1cm4iLG8pLGlbU3ltYm9sLmFzeW5jSXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LGk7ZnVuY3Rpb24gbyhoKXtyZXR1cm4gZnVuY3Rpb24odil7cmV0dXJuIFByb21pc2UucmVzb2x2ZSh2KS50aGVuKGgsZil9fWZ1bmN0aW9uIHMoaCx2KXtyW2hdJiYoaVtoXT1mdW5jdGlvbihnKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oeSxiKXthLnB1c2goW2gsZyx5LGJdKT4xfHxjKGgsZyl9KX0sdiYmKGlbaF09dihpW2hdKSkpfWZ1bmN0aW9uIGMoaCx2KXt0cnl7bChyW2hdKHYpKX1jYXRjaChnKXtkKGFbMF1bM10sZyl9fWZ1bmN0aW9uIGwoaCl7aC52YWx1ZSBpbnN0YW5jZW9mIGpjP1Byb21pc2UucmVzb2x2ZShoLnZhbHVlLnYpLnRoZW4odSxmKTpkKGFbMF1bMl0saCl9ZnVuY3Rpb24gdShoKXtjKCJuZXh0IixoKX1mdW5jdGlvbiBmKGgpe2MoInRocm93IixoKX1mdW5jdGlvbiBkKGgsdil7aCh2KSxhLnNoaWZ0KCksYS5sZW5ndGgmJmMoYVswXVswXSxhWzBdWzFdKX19ZnVuY3Rpb24gSWwodCl7dmFyIGUsbjtyZXR1cm4gZT17fSxyKCJuZXh0IikscigidGhyb3ciLGZ1bmN0aW9uKGkpe3Rocm93IGl9KSxyKCJyZXR1cm4iKSxlW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sZTtmdW5jdGlvbiByKGksYSl7ZVtpXT10W2ldP2Z1bmN0aW9uKG8pe3JldHVybihuPSFuKT97dmFsdWU6amModFtpXShvKSksZG9uZTohMX06YT9hKG8pOm99OmF9fWZ1bmN0aW9uIHRzKHQpe2lmKCFTeW1ib2wuYXN5bmNJdGVyYXRvcil0aHJvdyBuZXcgVHlwZUVycm9yKCJTeW1ib2wuYXN5bmNJdGVyYXRvciBpcyBub3QgZGVmaW5lZC4iKTt2YXIgZT10W1N5bWJvbC5hc3luY0l0ZXJhdG9yXSxuO3JldHVybiBlP2UuY2FsbCh0KToodD10eXBlb2YgZ2k9PSJmdW5jdGlvbiI/Z2kodCk6dFtTeW1ib2wuaXRlcmF0b3JdKCksbj17fSxyKCJuZXh0IikscigidGhyb3ciKSxyKCJyZXR1cm4iKSxuW1N5bWJvbC5hc3luY0l0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxuKTtmdW5jdGlvbiByKGEpe25bYV09dFthXSYmZnVuY3Rpb24obyl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHMsYyl7bz10W2FdKG8pLGkocyxjLG8uZG9uZSxvLnZhbHVlKX0pfX1mdW5jdGlvbiBpKGEsbyxzLGMpe1Byb21pc2UucmVzb2x2ZShjKS50aGVuKGZ1bmN0aW9uKGwpe2Eoe3ZhbHVlOmwsZG9uZTpzfSl9LG8pfX1mdW5jdGlvbiBSdih0LGUpe3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHk/T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsInJhdyIse3ZhbHVlOmV9KTp0LnJhdz1lLHR9dmFyIEdiPU9iamVjdC5jcmVhdGU/ZnVuY3Rpb24odCxlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiZGVmYXVsdCIse2VudW1lcmFibGU6ITAsdmFsdWU6ZX0pfTpmdW5jdGlvbih0LGUpe3QuZGVmYXVsdD1lfSxGYz1mdW5jdGlvbih0KXtyZXR1cm4gRmM9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXN8fGZ1bmN0aW9uKGUpe3ZhciBuPVtdO2Zvcih2YXIgciBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHIpJiYobltuLmxlbmd0aF09cik7cmV0dXJuIG59LEZjKHQpfTtmdW5jdGlvbiAkYih0KXtpZih0JiZ0Ll9fZXNNb2R1bGUpcmV0dXJuIHQ7dmFyIGU9e307aWYodCE9bnVsbClmb3IodmFyIG49RmModCkscj0wO3I8bi5sZW5ndGg7cisrKW5bcl0hPT0iZGVmYXVsdCImJnRmKGUsdCxuW3JdKTtyZXR1cm4gR2IoZSx0KSxlfWZ1bmN0aW9uIE52KHQpe3JldHVybiB0JiZ0Ll9fZXNNb2R1bGU/dDp7ZGVmYXVsdDp0fX1mdW5jdGlvbiBScih0LGUsbixyKXtpZihuPT09ImEiJiYhcil0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBnZXR0ZXIiKTtpZih0eXBlb2YgZT09ImZ1bmN0aW9uIj90IT09ZXx8IXI6IWUuaGFzKHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCByZWFkIHByaXZhdGUgbWVtYmVyIGZyb20gYW4gb2JqZWN0IHdob3NlIGNsYXNzIGRpZCBub3QgZGVjbGFyZSBpdCIpO3JldHVybiBuPT09Im0iP3I6bj09PSJhIj9yLmNhbGwodCk6cj9yLnZhbHVlOmUuZ2V0KHQpfWZ1bmN0aW9uIE9oKHQsZSxuLHIsaSl7aWYocj09PSJtIil0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIG1ldGhvZCBpcyBub3Qgd3JpdGFibGUiKTtpZihyPT09ImEiJiYhaSl0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBzZXR0ZXIiKTtpZih0eXBlb2YgZT09ImZ1bmN0aW9uIj90IT09ZXx8IWk6IWUuaGFzKHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCB3cml0ZSBwcml2YXRlIG1lbWJlciB0byBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0Iik7cmV0dXJuIHI9PT0iYSI/aS5jYWxsKHQsbik6aT9pLnZhbHVlPW46ZS5zZXQodCxuKSxufWZ1bmN0aW9uIEl2KHQsZSl7aWYoZT09PW51bGx8fHR5cGVvZiBlIT0ib2JqZWN0IiYmdHlwZW9mIGUhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IHVzZSAnaW4nIG9wZXJhdG9yIG9uIG5vbi1vYmplY3QiKTtyZXR1cm4gdHlwZW9mIHQ9PSJmdW5jdGlvbiI/ZT09PXQ6dC5oYXMoZSl9ZnVuY3Rpb24gdG8odCxlLG4pe2lmKGUhPW51bGwpe2lmKHR5cGVvZiBlIT0ib2JqZWN0IiYmdHlwZW9mIGUhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkLiIpO3ZhciByLGk7aWYobil7aWYoIVN5bWJvbC5hc3luY0Rpc3Bvc2UpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3ltYm9sLmFzeW5jRGlzcG9zZSBpcyBub3QgZGVmaW5lZC4iKTtyPWVbU3ltYm9sLmFzeW5jRGlzcG9zZV19aWYocj09PXZvaWQgMCl7aWYoIVN5bWJvbC5kaXNwb3NlKXRocm93IG5ldyBUeXBlRXJyb3IoIlN5bWJvbC5kaXNwb3NlIGlzIG5vdCBkZWZpbmVkLiIpO3I9ZVtTeW1ib2wuZGlzcG9zZV0sbiYmKGk9cil9aWYodHlwZW9mIHIhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IG5vdCBkaXNwb3NhYmxlLiIpO2kmJihyPWZ1bmN0aW9uKCl7dHJ5e2kuY2FsbCh0aGlzKX1jYXRjaChhKXtyZXR1cm4gUHJvbWlzZS5yZWplY3QoYSl9fSksdC5zdGFjay5wdXNoKHt2YWx1ZTplLGRpc3Bvc2U6cixhc3luYzpufSl9ZWxzZSBuJiZ0LnN0YWNrLnB1c2goe2FzeW5jOiEwfSk7cmV0dXJuIGV9dmFyIFNoPXR5cGVvZiBTdXBwcmVzc2VkRXJyb3I9PSJmdW5jdGlvbiI/U3VwcHJlc3NlZEVycm9yOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uZXcgRXJyb3Iobik7cmV0dXJuIHIubmFtZT0iU3VwcHJlc3NlZEVycm9yIixyLmVycm9yPXQsci5zdXBwcmVzc2VkPWUscn07ZnVuY3Rpb24gZWYodCl7ZnVuY3Rpb24gZShhKXt0LmVycm9yPXQuaGFzRXJyb3I/bmV3IFNoKGEsdC5lcnJvciwiQW4gZXJyb3Igd2FzIHN1cHByZXNzZWQgZHVyaW5nIGRpc3Bvc2FsLiIpOmEsdC5oYXNFcnJvcj0hMH12YXIgbixyPTA7ZnVuY3Rpb24gaSgpe2Zvcig7bj10LnN0YWNrLnBvcCgpOyl0cnl7aWYoIW4uYXN5bmMmJnI9PT0xKXJldHVybiByPTAsdC5zdGFjay5wdXNoKG4pLFByb21pc2UucmVzb2x2ZSgpLnRoZW4oaSk7aWYobi5kaXNwb3NlKXt2YXIgYT1uLmRpc3Bvc2UuY2FsbChuLnZhbHVlKTtpZihuLmFzeW5jKXJldHVybiByfD0yLFByb21pc2UucmVzb2x2ZShhKS50aGVuKGksZnVuY3Rpb24obyl7cmV0dXJuIGUobyksaSgpfSl9ZWxzZSByfD0xfWNhdGNoKG8pe2Uobyl9aWYocj09PTEpcmV0dXJuIHQuaGFzRXJyb3I/UHJvbWlzZS5yZWplY3QodC5lcnJvcik6UHJvbWlzZS5yZXNvbHZlKCk7aWYodC5oYXNFcnJvcil0aHJvdyB0LmVycm9yfXJldHVybiBpKCl9ZnVuY3Rpb24gV3ModCxlKXtyZXR1cm4gdHlwZW9mIHQ9PSJzdHJpbmciJiYvXlwuXC4/XC8vLnRlc3QodCk/dC5yZXBsYWNlKC9cLih0c3gpJHwoKD86XC5kKT8pKCg/OlwuW14uL10rPyk/KVwuKFtjbV0/KXRzJC9pLGZ1bmN0aW9uKG4scixpLGEsbyl7cmV0dXJuIHI/ZT8iLmpzeCI6Ii5qcyI6aSYmKCFhfHwhbyk/bjppK2ErIi4iK28udG9Mb3dlckNhc2UoKSsianMifSk6dH12YXIgWmI9e19fZXh0ZW5kczphcixfX2Fzc2lnbjpBdCxfX3Jlc3Q6JHIsX19kZWNvcmF0ZTpqYixfX3BhcmFtOlB2LF9fZXNEZWNvcmF0ZTpDdixfX3J1bkluaXRpYWxpemVyczpGYixfX3Byb3BLZXk6QmIsX19zZXRGdW5jdGlvbk5hbWU6d2gsX19tZXRhZGF0YTpObCxfX2F3YWl0ZXI6SnUsX19nZW5lcmF0b3I6emIsX19jcmVhdGVCaW5kaW5nOnRmLF9fZXhwb3J0U3RhcjpXYixfX3ZhbHVlczpnaSxfX3JlYWQ6VixfX3NwcmVhZDp6cyxfX3NwcmVhZEFycmF5czp3YSxfX3NwcmVhZEFycmF5OnRlLF9fYXdhaXQ6amMsX19hc3luY0dlbmVyYXRvcjpMdixfX2FzeW5jRGVsZWdhdG9yOklsLF9fYXN5bmNWYWx1ZXM6dHMsX19tYWtlVGVtcGxhdGVPYmplY3Q6UnYsX19pbXBvcnRTdGFyOiRiLF9faW1wb3J0RGVmYXVsdDpOdixfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0OlJyLF9fY2xhc3NQcml2YXRlRmllbGRTZXQ6T2gsX19jbGFzc1ByaXZhdGVGaWVsZEluOkl2LF9fYWRkRGlzcG9zYWJsZVJlc291cmNlOnRvLF9fZGlzcG9zZVJlc291cmNlczplZixfX3Jld3JpdGVSZWxhdGl2ZUltcG9ydEV4dGVuc2lvbjpXc30sWnI9e2E6NyxjOjYsaDoxLGw6MixtOjIscjo0LHE6NCxzOjQsdDoyLHY6MSx6OjB9O2Z1bmN0aW9uIG5mKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpJiZ0LmV2ZXJ5KGZ1bmN0aW9uKGUpe3ZhciBuPWVbMF0udG9Mb3dlckNhc2UoKTtyZXR1cm4gWnJbbl09PT1lLmxlbmd0aC0xJiYiYWNobG1xc3R2eiIuaW5jbHVkZXMobil9KX1mdW5jdGlvbiBEdih0KXtyZXR1cm4gbmYodCkmJnQuZXZlcnkoZnVuY3Rpb24oZSl7dmFyIG49ZVswXTtyZXR1cm4gbj09PW4udG9VcHBlckNhc2UoKX0pfWZ1bmN0aW9uIGp2KHQpe3JldHVybiBEdih0KSYmdC5ldmVyeShmdW5jdGlvbihlKXt2YXIgbj1lWzBdO3JldHVybiJBQ0xNUVoiLmluY2x1ZGVzKG4pfSl9dmFyIEZ2PXt4MTowLHkxOjAseDI6MCx5MjowLHg6MCx5OjAscXg6bnVsbCxxeTpudWxsfTtmdW5jdGlvbiByZih0KXtmb3IodmFyIGU9dC5wYXRoVmFsdWVbdC5zZWdtZW50U3RhcnRdLG49ZS50b0xvd2VyQ2FzZSgpLHI9dC5kYXRhO3IubGVuZ3RoPj1acltuXSYmKG49PT0ibSImJnIubGVuZ3RoPjI/KHQuc2VnbWVudHMucHVzaChbZV0uY29uY2F0KHIuc3BsaWNlKDAsMikpKSxuPSJsIixlPWU9PT0ibSI/ImwiOiJMIik6dC5zZWdtZW50cy5wdXNoKFtlXS5jb25jYXQoci5zcGxpY2UoMCxacltuXSkpKSwhIVpyW25dKTspO31mdW5jdGlvbiBZYih0KXt2YXIgZT10LmluZGV4LG49dC5wYXRoVmFsdWUscj1uLmNoYXJDb2RlQXQoZSk7aWYocj09PTQ4KXt0LnBhcmFtPTAsdC5pbmRleCs9MTtyZXR1cm59aWYocj09PTQ5KXt0LnBhcmFtPTEsdC5pbmRleCs9MTtyZXR1cm59dC5lcnI9J1twYXRoLXV0aWxdOiBpbnZhbGlkIEFyYyBmbGFnICInLmNvbmNhdChuW2VdLCciLCBleHBlY3RpbmcgMCBvciAxIGF0IGluZGV4ICcpLmNvbmNhdChlKX1mdW5jdGlvbiBEbCh0KXtyZXR1cm4gdD49NDgmJnQ8PTU3fHx0PT09NDN8fHQ9PT00NXx8dD09PTQ2fWZ1bmN0aW9uIEdzKHQpe3JldHVybiB0Pj00OCYmdDw9NTd9ZnVuY3Rpb24gSGIodCl7dmFyIGU9dC5tYXgsbj10LnBhdGhWYWx1ZSxyPXQuaW5kZXgsaT1yLGE9ITEsbz0hMSxzPSExLGM9ITEsbDtpZihpPj1lKXt0LmVycj0iW3BhdGgtdXRpbF06IEludmFsaWQgcGF0aCB2YWx1ZSBhdCBpbmRleCAiLmNvbmNhdChpLCcsICJwYXRoVmFsdWUiIGlzIG1pc3NpbmcgcGFyYW0nKTtyZXR1cm59aWYobD1uLmNoYXJDb2RlQXQoaSksKGw9PT00M3x8bD09PTQ1KSYmKGkrPTEsbD1uLmNoYXJDb2RlQXQoaSkpLCFHcyhsKSYmbCE9PTQ2KXt0LmVycj0iW3BhdGgtdXRpbF06IEludmFsaWQgcGF0aCB2YWx1ZSBhdCBpbmRleCAiLmNvbmNhdChpLCcsICInKS5jb25jYXQobltpXSwnIiBpcyBub3QgYSBudW1iZXInKTtyZXR1cm59aWYobCE9PTQ2KXtpZihhPWw9PT00OCxpKz0xLGw9bi5jaGFyQ29kZUF0KGkpLGEmJmk8ZSYmbCYmR3MobCkpe3QuZXJyPSJbcGF0aC11dGlsXTogSW52YWxpZCBwYXRoIHZhbHVlIGF0IGluZGV4ICIuY29uY2F0KHIsJywgIicpLmNvbmNhdChuW3JdLCciIGlsbGVnYWwgbnVtYmVyJyk7cmV0dXJufWZvcig7aTxlJiZHcyhuLmNoYXJDb2RlQXQoaSkpOylpKz0xLG89ITA7bD1uLmNoYXJDb2RlQXQoaSl9aWYobD09PTQ2KXtmb3IoYz0hMCxpKz0xO0dzKG4uY2hhckNvZGVBdChpKSk7KWkrPTEscz0hMDtsPW4uY2hhckNvZGVBdChpKX1pZihsPT09MTAxfHxsPT09Njkpe2lmKGMmJiFvJiYhcyl7dC5lcnI9IltwYXRoLXV0aWxdOiBJbnZhbGlkIHBhdGggdmFsdWUgYXQgaW5kZXggIi5jb25jYXQoaSwnLCAiJykuY29uY2F0KG5baV0sJyIgaW52YWxpZCBmbG9hdCBleHBvbmVudCcpO3JldHVybn1pZihpKz0xLGw9bi5jaGFyQ29kZUF0KGkpLChsPT09NDN8fGw9PT00NSkmJihpKz0xKSxpPGUmJkdzKG4uY2hhckNvZGVBdChpKSkpZm9yKDtpPGUmJkdzKG4uY2hhckNvZGVBdChpKSk7KWkrPTE7ZWxzZXt0LmVycj0iW3BhdGgtdXRpbF06IEludmFsaWQgcGF0aCB2YWx1ZSBhdCBpbmRleCAiLmNvbmNhdChpLCcsICInKS5jb25jYXQobltpXSwnIiBpbnZhbGlkIGludGVnZXIgZXhwb25lbnQnKTtyZXR1cm59fXQuaW5kZXg9aSx0LnBhcmFtPSt0LnBhdGhWYWx1ZS5zbGljZShyLGkpfWZ1bmN0aW9uIFZiKHQpe3ZhciBlPVs1NzYwLDYxNTgsODE5Miw4MTkzLDgxOTQsODE5NSw4MTk2LDgxOTcsODE5OCw4MTk5LDgyMDAsODIwMSw4MjAyLDgyMzksODI4NywxMjI4OCw2NTI3OV07cmV0dXJuIHQ9PT0xMHx8dD09PTEzfHx0PT09ODIzMnx8dD09PTgyMzN8fHQ9PT0zMnx8dD09PTl8fHQ9PT0xMXx8dD09PTEyfHx0PT09MTYwfHx0Pj01NzYwJiZlLmluY2x1ZGVzKHQpfWZ1bmN0aW9uIGVzKHQpe2Zvcih2YXIgZT10LnBhdGhWYWx1ZSxuPXQubWF4O3QuaW5kZXg8biYmVmIoZS5jaGFyQ29kZUF0KHQuaW5kZXgpKTspdC5pbmRleCs9MX1mdW5jdGlvbiBYYih0KXtzd2l0Y2godHwzMil7Y2FzZSAxMDk6Y2FzZSAxMjI6Y2FzZSAxMDg6Y2FzZSAxMDQ6Y2FzZSAxMTg6Y2FzZSA5OTpjYXNlIDExNTpjYXNlIDExMzpjYXNlIDExNjpjYXNlIDk3OnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fWZ1bmN0aW9uIFViKHQpe3JldHVybih0fDMyKT09PTk3fWZ1bmN0aW9uIEVoKHQpe3ZhciBlPXQubWF4LG49dC5wYXRoVmFsdWUscj10LmluZGV4LGk9bi5jaGFyQ29kZUF0KHIpLGE9WnJbbltyXS50b0xvd2VyQ2FzZSgpXTtpZih0LnNlZ21lbnRTdGFydD1yLCFYYihpKSl7dC5lcnI9J1twYXRoLXV0aWxdOiBJbnZhbGlkIHBhdGggdmFsdWUgIicuY29uY2F0KG5bcl0sJyIgaXMgbm90IGEgcGF0aCBjb21tYW5kJyk7cmV0dXJufWlmKHQuaW5kZXgrPTEsZXModCksdC5kYXRhPVtdLCFhKXtyZih0KTtyZXR1cm59Zm9yKDs7KXtmb3IodmFyIG89YTtvPjA7by09MSl7aWYoVWIoaSkmJihvPT09M3x8bz09PTQpP1liKHQpOkhiKHQpLHQuZXJyLmxlbmd0aClyZXR1cm47dC5kYXRhLnB1c2godC5wYXJhbSksZXModCksdC5pbmRleDxlJiZuLmNoYXJDb2RlQXQodC5pbmRleCk9PT00NCYmKHQuaW5kZXgrPTEsZXModCkpfWlmKHQuaW5kZXg+PXQubWF4fHwhRGwobi5jaGFyQ29kZUF0KHQuaW5kZXgpKSlicmVha31yZih0KX12YXIgQnY9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe3RoaXMucGF0aFZhbHVlPWUsdGhpcy5zZWdtZW50cz1bXSx0aGlzLm1heD1lLmxlbmd0aCx0aGlzLmluZGV4PTAsdGhpcy5wYXJhbT0wLHRoaXMuc2VnbWVudFN0YXJ0PTAsdGhpcy5kYXRhPVtdLHRoaXMuZXJyPSIifXJldHVybiB0fSgpO2Z1bmN0aW9uIHFiKHQpe2lmKG5mKHQpKXJldHVybltdLmNvbmNhdCh0KTt2YXIgZT1uZXcgQnYodCk7Zm9yKGVzKGUpO2UuaW5kZXg8ZS5tYXgmJiFlLmVyci5sZW5ndGg7KUVoKGUpO3JldHVybiBlLmVycj9lLmVycjplLnNlZ21lbnRzfWZ1bmN0aW9uIEtiKHQpe2lmKER2KHQpKXJldHVybltdLmNvbmNhdCh0KTt2YXIgZT1xYih0KSxuPTAscj0wLGk9MCxhPTA7cmV0dXJuIGUubWFwKGZ1bmN0aW9uKG8pe3ZhciBzPW8uc2xpY2UoMSkubWFwKE51bWJlciksYz1vWzBdLGw9Yy50b1VwcGVyQ2FzZSgpO2lmKGM9PT0iTSIpcmV0dXJuIG49c1swXSxyPXNbMV0saT1uLGE9cixbIk0iLG4scl07dmFyIHU7aWYoYyE9PWwpc3dpdGNoKGwpe2Nhc2UiQSI6dT1bbCxzWzBdLHNbMV0sc1syXSxzWzNdLHNbNF0sc1s1XStuLHNbNl0rcl07YnJlYWs7Y2FzZSJWIjp1PVtsLHNbMF0rcl07YnJlYWs7Y2FzZSJIIjp1PVtsLHNbMF0rbl07YnJlYWs7ZGVmYXVsdDp7dmFyIGY9cy5tYXAoZnVuY3Rpb24oaCx2KXtyZXR1cm4gaCsodiUyP3I6bil9KTt1PVtsXS5jb25jYXQoZil9fWVsc2UgdT1bbF0uY29uY2F0KHMpO3ZhciBkPXUubGVuZ3RoO3N3aXRjaChsKXtjYXNlIloiOm49aSxyPWE7YnJlYWs7Y2FzZSJIIjpuPXVbMV07YnJlYWs7Y2FzZSJWIjpyPXVbMV07YnJlYWs7ZGVmYXVsdDpuPXVbZC0yXSxyPXVbZC0xXSxsPT09Ik0iJiYoaT1uLGE9cil9cmV0dXJuIHV9KX1mdW5jdGlvbiBRYih0LGUpe3ZhciBuPXRbMF0scj1lLngxLGk9ZS55MSxhPWUueDIsbz1lLnkyLHM9dC5zbGljZSgxKS5tYXAoTnVtYmVyKSxjPXQ7aWYoIlRRIi5pbmNsdWRlcyhuKXx8KGUucXg9bnVsbCxlLnF5PW51bGwpLG49PT0iSCIpYz1bIkwiLHRbMV0saV07ZWxzZSBpZihuPT09IlYiKWM9WyJMIixyLHRbMV1dO2Vsc2UgaWYobj09PSJTIil7dmFyIGw9cioyLWEsdT1pKjItbztlLngxPWwsZS55MT11LGM9WyJDIixsLHVdLmNvbmNhdChzKX1lbHNlIGlmKG49PT0iVCIpe3ZhciBmPXIqMi1lLnF4LGQ9aSoyLWUucXk7ZS5xeD1mLGUucXk9ZCxjPVsiUSIsZixkXS5jb25jYXQocyl9ZWxzZSBpZihuPT09IlEiKXt2YXIgaD1zWzBdLHY9c1sxXTtlLnF4PWgsZS5xeT12fXJldHVybiBjfWZ1bmN0aW9uIGpsKHQpe2lmKGp2KHQpKXJldHVybltdLmNvbmNhdCh0KTtmb3IodmFyIGU9S2IodCksbj1BdCh7fSxGdikscj0wO3I8ZS5sZW5ndGg7cis9MSl7ZVtyXT1RYihlW3JdLG4pO3ZhciBpPWVbcl0sYT1pLmxlbmd0aDtuLngxPStpW2EtMl0sbi55MT0raVthLTFdLG4ueDI9K2lbYS00XXx8bi54MSxuLnkyPStpW2EtM118fG4ueTF9cmV0dXJuIGV9ZnVuY3Rpb24gZW8odCxlLG4pe3ZhciByPXRbMF0saT10WzFdLGE9ZVswXSxvPWVbMV07cmV0dXJuW3IrKGEtcikqbixpKyhvLWkpKm5dfWZ1bmN0aW9uIE1oKHQsZSxuLHIsaSl7dmFyIGE9WmkoW3QsZV0sW24scl0pLG89e3g6MCx5OjB9O2lmKHR5cGVvZiBpPT0ibnVtYmVyIilpZihpPD0wKW89e3g6dCx5OmV9O2Vsc2UgaWYoaT49YSlvPXt4Om4seTpyfTtlbHNle3ZhciBzPWVvKFt0LGVdLFtuLHJdLGkvYSksYz1zWzBdLGw9c1sxXTtvPXt4OmMseTpsfX1yZXR1cm57bGVuZ3RoOmEscG9pbnQ6byxtaW46e3g6TWF0aC5taW4odCxuKSx5Ok1hdGgubWluKGUscil9LG1heDp7eDpNYXRoLm1heCh0LG4pLHk6TWF0aC5tYXgoZSxyKX19fWZ1bmN0aW9uIGFmKHQsZSl7dmFyIG49dC54LHI9dC55LGk9ZS54LGE9ZS55LG89bippK3IqYSxzPU1hdGguc3FydCgoTWF0aC5wb3cobiwyKStNYXRoLnBvdyhyLDIpKSooTWF0aC5wb3coaSwyKStNYXRoLnBvdyhhLDIpKSksYz1uKmEtcippPDA/LTE6MSxsPWMqTWF0aC5hY29zKG8vcyk7cmV0dXJuIGx9ZnVuY3Rpb24genYodCxlLG4scixpLGEsbyxzLGMsbCl7dmFyIHU9TWF0aC5hYnMsZj1NYXRoLnNpbixkPU1hdGguY29zLGg9TWF0aC5zcXJ0LHY9TWF0aC5QSSxnPXUobikseT11KHIpLGI9KGklMzYwKzM2MCklMzYwLHg9Yioodi8xODApO2lmKHQ9PT1zJiZlPT09YylyZXR1cm57eDp0LHk6ZX07aWYoZz09PTB8fHk9PT0wKXJldHVybiBNaCh0LGUscyxjLGwpLnBvaW50O3ZhciBfPSh0LXMpLzIsdz0oZS1jKS8yLE89e3g6ZCh4KSpfK2YoeCkqdyx5Oi1mKHgpKl8rZCh4KSp3fSxFPU1hdGgucG93KE8ueCwyKS9NYXRoLnBvdyhnLDIpK01hdGgucG93KE8ueSwyKS9NYXRoLnBvdyh5LDIpO0U+MSYmKGcqPWgoRSkseSo9aChFKSk7dmFyIE09TWF0aC5wb3coZywyKSpNYXRoLnBvdyh5LDIpLU1hdGgucG93KGcsMikqTWF0aC5wb3coTy55LDIpLU1hdGgucG93KHksMikqTWF0aC5wb3coTy54LDIpLGs9TWF0aC5wb3coZywyKSpNYXRoLnBvdyhPLnksMikrTWF0aC5wb3coeSwyKSpNYXRoLnBvdyhPLngsMiksQT1NL2s7QT1BPDA/MDpBO3ZhciBQPShhIT09bz8xOi0xKSpoKEEpLEM9e3g6UCooZypPLnkveSkseTpQKigtKHkqTy54KS9nKX0sTj17eDpkKHgpKkMueC1mKHgpKkMueSsodCtzKS8yLHk6Zih4KSpDLngrZCh4KSpDLnkrKGUrYykvMn0sTD17eDooTy54LUMueCkvZyx5OihPLnktQy55KS95fSxSPWFmKHt4OjEseTowfSxMKSxJPXt4OigtTy54LUMueCkvZyx5OigtTy55LUMueSkveX0sRD1hZihMLEkpOyFvJiZEPjA/RC09Mip2Om8mJkQ8MCYmKEQrPTIqdiksRCU9Mip2O3ZhciBHPVIrRCpsLEY9ZypkKEcpLFc9eSpmKEcpLFg9e3g6ZCh4KSpGLWYoeCkqVytOLngseTpmKHgpKkYrZCh4KSpXK04ueX07cmV0dXJuIFh9ZnVuY3Rpb24gV3YodCxlLG4scixpLGEsbyxzLGMsbCx1KXt2YXIgZixkPXUuYmJveCxoPWQ9PT12b2lkIDA/ITA6ZCx2PXUubGVuZ3RoLGc9dj09PXZvaWQgMD8hMDp2LHk9dS5zYW1wbGVTaXplLGI9eT09PXZvaWQgMD8zMDp5LHg9dHlwZW9mIGw9PSJudW1iZXIiLF89dCx3PWUsTz0wLEU9W18sdyxPXSxNPVtfLHddLGs9MCxBPXt4OjAseTowfSxQPVt7eDpfLHk6d31dO3gmJmw8PTAmJihBPXt4Ol8seTp3fSk7Zm9yKHZhciBDPTA7Qzw9YjtDKz0xKXtpZihrPUMvYixmPXp2KHQsZSxuLHIsaSxhLG8scyxjLGspLF89Zi54LHc9Zi55LGgmJlAucHVzaCh7eDpfLHk6d30pLGcmJihPKz1aaShNLFtfLHddKSksTT1bXyx3XSx4JiZPPj1sJiZsPkVbMl0pe3ZhciBOPShPLWwpLyhPLUVbMl0pO0E9e3g6TVswXSooMS1OKStFWzBdKk4seTpNWzFdKigxLU4pK0VbMV0qTn19RT1bXyx3LE9dfXJldHVybiB4JiZsPj1PJiYoQT17eDpzLHk6Y30pLHtsZW5ndGg6Tyxwb2ludDpBLG1pbjp7eDpNYXRoLm1pbi5hcHBseShudWxsLFAubWFwKGZ1bmN0aW9uKEwpe3JldHVybiBMLnh9KSkseTpNYXRoLm1pbi5hcHBseShudWxsLFAubWFwKGZ1bmN0aW9uKEwpe3JldHVybiBMLnl9KSl9LG1heDp7eDpNYXRoLm1heC5hcHBseShudWxsLFAubWFwKGZ1bmN0aW9uKEwpe3JldHVybiBMLnh9KSkseTpNYXRoLm1heC5hcHBseShudWxsLFAubWFwKGZ1bmN0aW9uKEwpe3JldHVybiBMLnl9KSl9fX1mdW5jdGlvbiBHdih0LGUsbixyLGksYSxvLHMsYyl7dmFyIGw9MS1jO3JldHVybnt4Ok1hdGgucG93KGwsMykqdCszKk1hdGgucG93KGwsMikqYypuKzMqbCpNYXRoLnBvdyhjLDIpKmkrTWF0aC5wb3coYywzKSpvLHk6TWF0aC5wb3cobCwzKSplKzMqTWF0aC5wb3cobCwyKSpjKnIrMypsKk1hdGgucG93KGMsMikqYStNYXRoLnBvdyhjLDMpKnN9fWZ1bmN0aW9uIEZsKHQsZSxuLHIsaSxhLG8scyxjLGwpe3ZhciB1LGY9bC5iYm94LGQ9Zj09PXZvaWQgMD8hMDpmLGg9bC5sZW5ndGgsdj1oPT09dm9pZCAwPyEwOmgsZz1sLnNhbXBsZVNpemUseT1nPT09dm9pZCAwPzEwOmcsYj10eXBlb2YgYz09Im51bWJlciIseD10LF89ZSx3PTAsTz1beCxfLHddLEU9W3gsX10sTT0wLGs9e3g6MCx5OjB9LEE9W3t4LHk6X31dO2ImJmM8PTAmJihrPXt4LHk6X30pO2Zvcih2YXIgUD0wO1A8PXk7UCs9MSl7aWYoTT1QL3ksdT1Hdih0LGUsbixyLGksYSxvLHMsTSkseD11LngsXz11LnksZCYmQS5wdXNoKHt4LHk6X30pLHYmJih3Kz1aaShFLFt4LF9dKSksRT1beCxfXSxiJiZ3Pj1jJiZjPk9bMl0pe3ZhciBDPSh3LWMpLyh3LU9bMl0pO2s9e3g6RVswXSooMS1DKStPWzBdKkMseTpFWzFdKigxLUMpK09bMV0qQ319Tz1beCxfLHddfXJldHVybiBiJiZjPj13JiYoaz17eDpvLHk6c30pLHtsZW5ndGg6dyxwb2ludDprLG1pbjp7eDpNYXRoLm1pbi5hcHBseShudWxsLEEubWFwKGZ1bmN0aW9uKE4pe3JldHVybiBOLnh9KSkseTpNYXRoLm1pbi5hcHBseShudWxsLEEubWFwKGZ1bmN0aW9uKE4pe3JldHVybiBOLnl9KSl9LG1heDp7eDpNYXRoLm1heC5hcHBseShudWxsLEEubWFwKGZ1bmN0aW9uKE4pe3JldHVybiBOLnh9KSkseTpNYXRoLm1heC5hcHBseShudWxsLEEubWFwKGZ1bmN0aW9uKE4pe3JldHVybiBOLnl9KSl9fX1mdW5jdGlvbiBKYih0LGUsbixyLGksYSxvKXt2YXIgcz0xLW87cmV0dXJue3g6TWF0aC5wb3cocywyKSp0KzIqcypvKm4rTWF0aC5wb3cobywyKSppLHk6TWF0aC5wb3cocywyKSplKzIqcypvKnIrTWF0aC5wb3cobywyKSphfX1mdW5jdGlvbiAkdih0LGUsbixyLGksYSxvLHMpe3ZhciBjLGw9cy5iYm94LHU9bD09PXZvaWQgMD8hMDpsLGY9cy5sZW5ndGgsZD1mPT09dm9pZCAwPyEwOmYsaD1zLnNhbXBsZVNpemUsdj1oPT09dm9pZCAwPzEwOmgsZz10eXBlb2Ygbz09Im51bWJlciIseT10LGI9ZSx4PTAsXz1beSxiLHhdLHc9W3ksYl0sTz0wLEU9e3g6MCx5OjB9LE09W3t4OnkseTpifV07ZyYmbzw9MCYmKEU9e3g6eSx5OmJ9KTtmb3IodmFyIGs9MDtrPD12O2srPTEpe2lmKE89ay92LGM9SmIodCxlLG4scixpLGEsTykseT1jLngsYj1jLnksdSYmTS5wdXNoKHt4OnkseTpifSksZCYmKHgrPVppKHcsW3ksYl0pKSx3PVt5LGJdLGcmJng+PW8mJm8+X1syXSl7dmFyIEE9KHgtbykvKHgtX1syXSk7RT17eDp3WzBdKigxLUEpK19bMF0qQSx5OndbMV0qKDEtQSkrX1sxXSpBfX1fPVt5LGIseF19cmV0dXJuIGcmJm8+PXgmJihFPXt4OmkseTphfSkse2xlbmd0aDp4LHBvaW50OkUsbWluOnt4Ok1hdGgubWluLmFwcGx5KG51bGwsTS5tYXAoZnVuY3Rpb24oUCl7cmV0dXJuIFAueH0pKSx5Ok1hdGgubWluLmFwcGx5KG51bGwsTS5tYXAoZnVuY3Rpb24oUCl7cmV0dXJuIFAueX0pKX0sbWF4Ont4Ok1hdGgubWF4LmFwcGx5KG51bGwsTS5tYXAoZnVuY3Rpb24oUCl7cmV0dXJuIFAueH0pKSx5Ok1hdGgubWF4LmFwcGx5KG51bGwsTS5tYXAoZnVuY3Rpb24oUCl7cmV0dXJuIFAueX0pKX19fWZ1bmN0aW9uIGtoKHQsZSxuKXtmb3IodmFyIHIsaSxhLG8scyxjLGw9amwodCksdT10eXBlb2YgZT09Im51bWJlciIsZixkPVtdLGgsdj0wLGc9MCx5PTAsYj0wLHgsXz1bXSx3PVtdLE89MCxFPXt4OjAseTowfSxNPUUsaz1FLEE9RSxQPTAsQz0wLE49bC5sZW5ndGg7QzxOO0MrPTEpeD1sW0NdLGg9eFswXSxmPWg9PT0iTSIsZD1mP2Q6W3YsZ10uY29uY2F0KHguc2xpY2UoMSkpLGY/KHk9eFsxXSxiPXhbMl0sRT17eDp5LHk6Yn0sTT1FLE89MCx1JiZlPC4wMDEmJihBPUUpKTpoPT09IkwiPyhyPU1oKGRbMF0sZFsxXSxkWzJdLGRbM10sKGV8fDApLVApLE89ci5sZW5ndGgsRT1yLm1pbixNPXIubWF4LGs9ci5wb2ludCk6aD09PSJBIj8oaT1XdihkWzBdLGRbMV0sZFsyXSxkWzNdLGRbNF0sZFs1XSxkWzZdLGRbN10sZFs4XSwoZXx8MCktUCxufHx7fSksTz1pLmxlbmd0aCxFPWkubWluLE09aS5tYXgsaz1pLnBvaW50KTpoPT09IkMiPyhhPUZsKGRbMF0sZFsxXSxkWzJdLGRbM10sZFs0XSxkWzVdLGRbNl0sZFs3XSwoZXx8MCktUCxufHx7fSksTz1hLmxlbmd0aCxFPWEubWluLE09YS5tYXgsaz1hLnBvaW50KTpoPT09IlEiPyhvPSR2KGRbMF0sZFsxXSxkWzJdLGRbM10sZFs0XSxkWzVdLChlfHwwKS1QLG58fHt9KSxPPW8ubGVuZ3RoLEU9by5taW4sTT1vLm1heCxrPW8ucG9pbnQpOmg9PT0iWiImJihkPVt2LGcseSxiXSxzPU1oKGRbMF0sZFsxXSxkWzJdLGRbM10sKGV8fDApLVApLE89cy5sZW5ndGgsRT1zLm1pbixNPXMubWF4LGs9cy5wb2ludCksdSYmUDxlJiZQK08+PWUmJihBPWspLHcucHVzaChNKSxfLnB1c2goRSksUCs9TyxjPWghPT0iWiI/eC5zbGljZSgtMik6W3ksYl0sdj1jWzBdLGc9Y1sxXTtyZXR1cm4gdSYmZT49UCYmKEE9e3g6dix5Omd9KSx7bGVuZ3RoOlAscG9pbnQ6QSxtaW46e3g6TWF0aC5taW4uYXBwbHkobnVsbCxfLm1hcChmdW5jdGlvbihMKXtyZXR1cm4gTC54fSkpLHk6TWF0aC5taW4uYXBwbHkobnVsbCxfLm1hcChmdW5jdGlvbihMKXtyZXR1cm4gTC55fSkpfSxtYXg6e3g6TWF0aC5tYXguYXBwbHkobnVsbCx3Lm1hcChmdW5jdGlvbihMKXtyZXR1cm4gTC54fSkpLHk6TWF0aC5tYXguYXBwbHkobnVsbCx3Lm1hcChmdW5jdGlvbihMKXtyZXR1cm4gTC55fSkpfX19ZnVuY3Rpb24gdHgodCxlKXtyZXR1cm4ga2godCx2b2lkIDAsQXQoQXQoe30sZSkse2Jib3g6ITEsbGVuZ3RoOiEwfSkpLmxlbmd0aH1mdW5jdGlvbiBOcih0KXtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KX12YXIgb2Y9ZnVuY3Rpb24odCl7aWYoTnIodCkpcmV0dXJuIHQucmVkdWNlKGZ1bmN0aW9uKGUsbil7cmV0dXJuIE1hdGgubWluKGUsbil9LHRbMF0pfTtmdW5jdGlvbiBCYyh0KXtpZighQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4tMS8wO3ZhciBlPXQubGVuZ3RoO2lmKCFlKXJldHVybi0xLzA7Zm9yKHZhciBuPXRbMF0scj0xO3I8ZTtyKyspbj1NYXRoLm1heChuLHRbcl0pO3JldHVybiBufXZhciBadj0xZS01O2Z1bmN0aW9uICRzKHQsZSxuKXtyZXR1cm4gbj09PXZvaWQgMCYmKG49WnYpLHQ9PT1lfHxNYXRoLmFicyh0LWUpPG59dmFyIGV4PWZ1bmN0aW9uKHQsZSl7cmV0dXJuKHQlZStlKSVlfSxzZj1leDtmdW5jdGlvbiBKZSh0LGUsbil7aWYodFtuXS5sZW5ndGg+Nyl7dFtuXS5zaGlmdCgpO2Zvcih2YXIgcj10W25dLGk9bjtyLmxlbmd0aDspZVtuXT0iQSIsdC5zcGxpY2UoaSs9MSwwLFsiQyJdLmNvbmNhdChyLnNwbGljZSgwLDYpKSk7dC5zcGxpY2UobiwxKX19ZnVuY3Rpb24gbngodCl7cmV0dXJuIGp2KHQpJiZ0LmV2ZXJ5KGZ1bmN0aW9uKGUpe3ZhciBuPWVbMF07cmV0dXJuIk1DIi5pbmNsdWRlcyhuKX0pfWZ1bmN0aW9uIGNmKHQsZSxuKXt2YXIgcj10Kk1hdGguY29zKG4pLWUqTWF0aC5zaW4obiksaT10Kk1hdGguc2luKG4pK2UqTWF0aC5jb3Mobik7cmV0dXJue3g6cix5Oml9fWZ1bmN0aW9uIFpzKHQsZSxuLHIsaSxhLG8scyxjLGwpe3ZhciB1PXQsZj1lLGQ9bixoPXIsdj1zLGc9Yyx5PU1hdGguUEkqMTIwLzE4MCxiPU1hdGguUEkvMTgwKigraXx8MCkseD1bXSxfLHcsTyxFLE07aWYobCl3PWxbMF0sTz1sWzFdLEU9bFsyXSxNPWxbM107ZWxzZXtfPWNmKHUsZiwtYiksdT1fLngsZj1fLnksXz1jZih2LGcsLWIpLHY9Xy54LGc9Xy55O3ZhciBrPSh1LXYpLzIsQT0oZi1nKS8yLFA9ayprLyhkKmQpK0EqQS8oaCpoKTtQPjEmJihQPU1hdGguc3FydChQKSxkKj1QLGgqPVApO3ZhciBDPWQqZCxOPWgqaCxMPShhPT09bz8tMToxKSpNYXRoLnNxcnQoTWF0aC5hYnMoKEMqTi1DKkEqQS1OKmsqaykvKEMqQSpBK04qayprKSkpO0U9TCpkKkEvaCsodSt2KS8yLE09TCotaCprL2QrKGYrZykvMix3PU1hdGguYXNpbigoKGYtTSkvaCpNYXRoLnBvdygxMCw5KT4+MCkvTWF0aC5wb3coMTAsOSkpLE89TWF0aC5hc2luKCgoZy1NKS9oKk1hdGgucG93KDEwLDkpPj4wKS9NYXRoLnBvdygxMCw5KSksdz11PEU/TWF0aC5QSS13OncsTz12PEU/TWF0aC5QSS1POk8sdzwwJiYodz1NYXRoLlBJKjIrdyksTzwwJiYoTz1NYXRoLlBJKjIrTyksbyYmdz5PJiYody09TWF0aC5QSSoyKSwhbyYmTz53JiYoTy09TWF0aC5QSSoyKX12YXIgUj1PLXc7aWYoTWF0aC5hYnMoUik+eSl7dmFyIEk9TyxEPXYsRz1nO089dyt5KihvJiZPPnc/MTotMSksdj1FK2QqTWF0aC5jb3MoTyksZz1NK2gqTWF0aC5zaW4oTykseD1acyh2LGcsZCxoLGksMCxvLEQsRyxbTyxJLEUsTV0pfVI9Ty13O3ZhciBGPU1hdGguY29zKHcpLFc9TWF0aC5zaW4odyksWD1NYXRoLmNvcyhPKSxRPU1hdGguc2luKE8pLHR0PU1hdGgudGFuKFIvNCksbnQ9NC8zKmQqdHQsaHQ9NC8zKmgqdHQsbHQ9W3UsZl0sd3Q9W3UrbnQqVyxmLWh0KkZdLHl0PVt2K250KlEsZy1odCpYXSxndD1bdixnXTtpZih3dFswXT0yKmx0WzBdLXd0WzBdLHd0WzFdPTIqbHRbMV0td3RbMV0sbClyZXR1cm4gd3QuY29uY2F0KHl0LGd0LHgpO3g9d3QuY29uY2F0KHl0LGd0LHgpO2Zvcih2YXIgQnQ9W10sTHQ9MCxJdD14Lmxlbmd0aDtMdDxJdDtMdCs9MSlCdFtMdF09THQlMj9jZih4W0x0LTFdLHhbTHRdLGIpLnk6Y2YoeFtMdF0seFtMdCsxXSxiKS54O3JldHVybiBCdH1mdW5jdGlvbiBZdih0LGUsbixyLGksYSl7dmFyIG89LjMzMzMzMzMzMzMzMzMzMzMscz0yLzM7cmV0dXJuW28qdCtzKm4sbyplK3MqcixvKmkrcypuLG8qYStzKnIsaSxhXX12YXIgSHY9ZnVuY3Rpb24odCxlLG4scil7dmFyIGk9LjUsYT1lbyhbdCxlXSxbbixyXSxpKTtyZXR1cm4gdGUodGUoW10sYSwhMCksW24scixuLHJdLCExKX07ZnVuY3Rpb24gcngodCxlKXt2YXIgbj10WzBdLHI9dC5zbGljZSgxKS5tYXAoTnVtYmVyKSxpPXJbMF0sYT1yWzFdLG8scz1lLngxLGM9ZS55MSxsPWUueCx1PWUueTtzd2l0Y2goIlRRIi5pbmNsdWRlcyhuKXx8KGUucXg9bnVsbCxlLnF5PW51bGwpLG4pe2Nhc2UiTSI6cmV0dXJuIGUueD1pLGUueT1hLHQ7Y2FzZSJBIjpyZXR1cm4gbz1bcyxjXS5jb25jYXQociksWyJDIl0uY29uY2F0KFpzKG9bMF0sb1sxXSxvWzJdLG9bM10sb1s0XSxvWzVdLG9bNl0sb1s3XSxvWzhdLG9bOV0pKTtjYXNlIlEiOnJldHVybiBlLnF4PWksZS5xeT1hLG89W3MsY10uY29uY2F0KHIpLFsiQyJdLmNvbmNhdChZdihvWzBdLG9bMV0sb1syXSxvWzNdLG9bNF0sb1s1XSkpO2Nhc2UiTCI6cmV0dXJuWyJDIl0uY29uY2F0KEh2KHMsYyxpLGEpKTtjYXNlIloiOnJldHVybiBzPT09bCYmYz09PXU/WyJDIixzLGMsbCx1LGwsdV06WyJDIl0uY29uY2F0KEh2KHMsYyxsLHUpKTtkZWZhdWx0On1yZXR1cm4gdH1mdW5jdGlvbiBZaSh0LGUpe2lmKGU9PT12b2lkIDAmJihlPSExKSxueCh0KSl7dmFyIG49W10uY29uY2F0KHQpO3JldHVybiBlP1tuLFtdXTpufWZvcih2YXIgcj1qbCh0KSxpPUF0KHt9LEZ2KSxhPVtdLG89IiIscz1yLmxlbmd0aCxjLGwsdT1bXSxmPTA7ZjxzO2YrPTEpe3JbZl0mJihvPXJbZl1bMF0pLGFbZl09bzt2YXIgZD1yeChyW2ZdLGkpO3JbZl09ZCxKZShyLGEsZikscz1yLmxlbmd0aCxvPT09IloiJiZ1LnB1c2goZiksYz1yW2ZdLGw9Yy5sZW5ndGgsaS54MT0rY1tsLTJdLGkueTE9K2NbbC0xXSxpLngyPStjW2wtNF18fGkueDEsaS55Mj0rY1tsLTNdfHxpLnkxfXJldHVybiBlP1tyLHVdOnJ9ZnVuY3Rpb24gaXgodCxlKXtlPT09dm9pZCAwJiYoZT0uNSk7dmFyIG49dC5zbGljZSgwLDIpLHI9dC5zbGljZSgyLDQpLGk9dC5zbGljZSg0LDYpLGE9dC5zbGljZSg2LDgpLG89ZW8obixyLGUpLHM9ZW8ocixpLGUpLGM9ZW8oaSxhLGUpLGw9ZW8obyxzLGUpLHU9ZW8ocyxjLGUpLGY9ZW8obCx1LGUpO3JldHVybltbIkMiXS5jb25jYXQobyxsLGYpLFsiQyJdLmNvbmNhdCh1LGMsYSldfWZ1bmN0aW9uIEJsKHQpe3JldHVybiB0Lm1hcChmdW5jdGlvbihlLG4scil7dmFyIGk9biYmcltuLTFdLnNsaWNlKC0yKS5jb25jYXQoZS5zbGljZSgxKSksYT1uP0ZsKGlbMF0saVsxXSxpWzJdLGlbM10saVs0XSxpWzVdLGlbNl0saVs3XSxpWzhdLHtiYm94OiExfSkubGVuZ3RoOjAsbztyZXR1cm4gbj9vPWE/aXgoaSk6W2UsZV06bz1bZV0se3M6ZSxzczpvLGw6YX19KX1mdW5jdGlvbiBsZih0LGUsbil7dmFyIHI9QmwodCksaT1CbChlKSxhPXIubGVuZ3RoLG89aS5sZW5ndGgscz1yLmZpbHRlcihmdW5jdGlvbih5KXtyZXR1cm4geS5sfSkubGVuZ3RoLGM9aS5maWx0ZXIoZnVuY3Rpb24oeSl7cmV0dXJuIHkubH0pLmxlbmd0aCxsPXIuZmlsdGVyKGZ1bmN0aW9uKHkpe3JldHVybiB5Lmx9KS5yZWR1Y2UoZnVuY3Rpb24oeSxiKXt2YXIgeD1iLmw7cmV0dXJuIHkreH0sMCkvc3x8MCx1PWkuZmlsdGVyKGZ1bmN0aW9uKHkpe3JldHVybiB5Lmx9KS5yZWR1Y2UoZnVuY3Rpb24oeSxiKXt2YXIgeD1iLmw7cmV0dXJuIHkreH0sMCkvY3x8MCxmPW58fE1hdGgubWF4KGEsbyksZD1bbCx1XSxoPVtmLWEsZi1vXSx2PTAsZz1bcixpXS5tYXAoZnVuY3Rpb24oeSxiKXtyZXR1cm4geS5sPT09Zj95Lm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC5zfSk6eS5tYXAoZnVuY3Rpb24oeCxfKXtyZXR1cm4gdj1fJiZoW2JdJiZ4Lmw+PWRbYl0saFtiXS09dj8xOjAsdj94LnNzOlt4LnNdfSkuZmxhdCgpfSk7cmV0dXJuIGdbMF0ubGVuZ3RoPT09Z1sxXS5sZW5ndGg/ZzpsZihnWzBdLGdbMV0sZil9ZnVuY3Rpb24gVnYodCxlLG4scixpLGEsbyxzKXtyZXR1cm4gMyooKHMtZSkqKG4raSktKG8tdCkqKHIrYSkrcioodC1pKS1uKihlLWEpK3MqKGkrdC8zKS1vKihhK2UvMykpLzIwfWZ1bmN0aW9uIFh2KHQpe3ZhciBlPTAsbj0wLHI9MDtyZXR1cm4gWWkodCkubWFwKGZ1bmN0aW9uKGkpe3ZhciBhO3N3aXRjaChpWzBdKXtjYXNlIk0iOnJldHVybiBlPWlbMV0sbj1pWzJdLDA7ZGVmYXVsdDp2YXIgbz1pLnNsaWNlKDEpLHM9b1swXSxjPW9bMV0sbD1vWzJdLHU9b1szXSxmPW9bNF0sZD1vWzVdO3JldHVybiByPVZ2KGUsbixzLGMsbCx1LGYsZCksYT1pLnNsaWNlKC0yKSxlPWFbMF0sbj1hWzFdLHJ9fSkucmVkdWNlKGZ1bmN0aW9uKGksYSl7cmV0dXJuIGkrYX0sMCl9ZnVuY3Rpb24gSGkodCl7cmV0dXJuIFh2KHQpPj0wfWZ1bmN0aW9uIG5zKHQpe3ZhciBlPXQuc2xpY2UoMSkubWFwKGZ1bmN0aW9uKG4scixpKXtyZXR1cm4gcj9pW3ItMV0uc2xpY2UoLTIpLmNvbmNhdChuLnNsaWNlKDEpKTp0WzBdLnNsaWNlKDEpLmNvbmNhdChuLnNsaWNlKDEpKX0pLm1hcChmdW5jdGlvbihuKXtyZXR1cm4gbi5tYXAoZnVuY3Rpb24ocixpKXtyZXR1cm4gbltuLmxlbmd0aC1pLTIqKDEtaSUyKV19KX0pLnJldmVyc2UoKTtyZXR1cm5bWyJNIl0uY29uY2F0KGVbMF0uc2xpY2UoMCwyKSldLmNvbmNhdChlLm1hcChmdW5jdGlvbihuKXtyZXR1cm5bIkMiXS5jb25jYXQobi5zbGljZSgyKSl9KSl9ZnVuY3Rpb24gQWgodCl7cmV0dXJuIHQubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBBcnJheS5pc0FycmF5KGUpP1tdLmNvbmNhdChlKTplfSl9ZnVuY3Rpb24gVXYodCl7dmFyIGU9dC5sZW5ndGgsbj1lLTE7cmV0dXJuIHQubWFwKGZ1bmN0aW9uKHIsaSl7cmV0dXJuIHQubWFwKGZ1bmN0aW9uKGEsbyl7dmFyIHM9aStvLGM7cmV0dXJuIG89PT0wfHx0W3NdJiZ0W3NdWzBdPT09Ik0iPyhjPXRbc10sWyJNIl0uY29uY2F0KGMuc2xpY2UoLTIpKSk6KHM+PWUmJihzLT1uKSx0W3NdKX0pfSl9ZnVuY3Rpb24gdWYodCxlKXt2YXIgbj10Lmxlbmd0aC0xLHI9W10saT0wLGE9MCxvPVV2KHQpO3JldHVybiBvLmZvckVhY2goZnVuY3Rpb24ocyxjKXt0LnNsaWNlKDEpLmZvckVhY2goZnVuY3Rpb24obCx1KXthKz1aaSh0WyhjK3UpJW5dLnNsaWNlKC0yKSxlW3Ulbl0uc2xpY2UoLTIpKX0pLHJbY109YSxhPTB9KSxpPXIuaW5kZXhPZihNYXRoLm1pbi5hcHBseShudWxsLHIpKSxvW2ldfXZhciBxdj1mdW5jdGlvbih0KXtyZXR1cm4gdD09PXZvaWQgMH0sRW49cXYsS3Y9e30udG9TdHJpbmcsVGg9ZnVuY3Rpb24odCxlKXtyZXR1cm4gS3YuY2FsbCh0KT09PSJbb2JqZWN0ICIrZSsiXSJ9LGZmPVRoLHJzPWZ1bmN0aW9uKHQpe3JldHVybiBmZih0LCJCb29sZWFuIil9LFF2PXJzO2Z1bmN0aW9uIFhuKHQpe3JldHVybiB0eXBlb2YgdD09ImZ1bmN0aW9uIn12YXIgemw9ZnVuY3Rpb24odCl7dmFyIGU9dHlwZW9mIHQ7cmV0dXJuIHQhPT1udWxsJiZlPT09Im9iamVjdCJ8fGU9PT0iZnVuY3Rpb24ifTtmdW5jdGlvbiBKdih0LGUsbil7cmV0dXJuIGtoKHQsZSxBdChBdCh7fSxuKSx7YmJveDohMSxsZW5ndGg6ITB9KSkucG9pbnR9dmFyIEt0PXB0KDQ5NDIpLHRnPXB0KDYxMTIwKTtmdW5jdGlvbiBheCh0LGUpe2Zvcig7IXt9Lmhhc093blByb3BlcnR5LmNhbGwodCxlKSYmKHQ9KDAsdGcuWikodCkpIT09bnVsbDspO3JldHVybiB0fWZ1bmN0aW9uIFBoKCl7cmV0dXJuIFBoPXR5cGVvZiBSZWZsZWN0IT0idW5kZWZpbmVkIiYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1heCh0LGUpO2lmKHIpe3ZhciBpPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocixlKTtyZXR1cm4gaS5nZXQ/aS5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/dDpuKTppLnZhbHVlfX0sUGguYXBwbHkobnVsbCxhcmd1bWVudHMpfWZ1bmN0aW9uIENoKHQsZSxuLHIpe3ZhciBpPVBoKCgwLHRnLlopKDEmcj90LnByb3RvdHlwZTp0KSxlLG4pO3JldHVybiAyJnImJnR5cGVvZiBpPT0iZnVuY3Rpb24iP2Z1bmN0aW9uKGEpe3JldHVybiBpLmFwcGx5KG4sYSl9Oml9ZnVuY3Rpb24gbGkodCxlLG4scil7dmFyIGk9dC1uLGE9ZS1yO3JldHVybiBNYXRoLnNxcnQoaSppK2EqYSl9ZnVuY3Rpb24gZGYodCxlKXt2YXIgbj1NYXRoLm1pbi5hcHBseShNYXRoLHRlKFtdLFYodCksITEpKSxyPU1hdGgubWluLmFwcGx5KE1hdGgsdGUoW10sVihlKSwhMSkpLGk9TWF0aC5tYXguYXBwbHkoTWF0aCx0ZShbXSxWKHQpLCExKSksYT1NYXRoLm1heC5hcHBseShNYXRoLHRlKFtdLFYoZSksITEpKTtyZXR1cm57eDpuLHk6cix3aWR0aDppLW4saGVpZ2h0OmEtcn19ZnVuY3Rpb24gTGgodCl7cmV0dXJuKHQrTWF0aC5QSSoyKSUoTWF0aC5QSSoyKX1mdW5jdGlvbiBSaCh0LGUpe3ZhciBuPU1hdGguYWJzKHQpO3JldHVybiBlPjA/bjpuKi0xfWZ1bmN0aW9uIFZpKHQsZSxuLHIsaSxhKXt2YXIgbz1uLHM9cjtpZihvPT09MHx8cz09PTApcmV0dXJue3g6dCx5OmV9O2Zvcih2YXIgYz1pLXQsbD1hLWUsdT1NYXRoLmFicyhjKSxmPU1hdGguYWJzKGwpLGQ9bypvLGg9cypzLHY9TWF0aC5QSS80LGc9MCx5PTAsYj0wO2I8NDtiKyspe2c9bypNYXRoLmNvcyh2KSx5PXMqTWF0aC5zaW4odik7dmFyIHg9KGQtaCkqTWF0aC5wb3coTWF0aC5jb3ModiksMykvbyxfPShoLWQpKk1hdGgucG93KE1hdGguc2luKHYpLDMpL3Msdz1nLXgsTz15LV8sRT11LXgsTT1mLV8saz1NYXRoLmh5cG90KE8sdyksQT1NYXRoLmh5cG90KE0sRSksUD1rKk1hdGguYXNpbigodypNLU8qRSkvKGsqQSkpLEM9UC9NYXRoLnNxcnQoZCtoLWcqZy15KnkpO3YrPUMsdj1NYXRoLm1pbihNYXRoLlBJLzIsTWF0aC5tYXgoMCx2KSl9cmV0dXJue3g6dCtSaChnLGMpLHk6ZStSaCh5LGwpfX1mdW5jdGlvbiBubyh0LGUsbixyLGksYSxvLHMpe3JldHVybi0xKm4qTWF0aC5jb3MoaSkqTWF0aC5zaW4ocyktcipNYXRoLnNpbihpKSpNYXRoLmNvcyhzKX1mdW5jdGlvbiBveCh0LGUsbixyLGksYSxvLHMpe3JldHVybi0xKm4qTWF0aC5zaW4oaSkqTWF0aC5zaW4ocykrcipNYXRoLmNvcyhpKSpNYXRoLmNvcyhzKX1mdW5jdGlvbiBzeCh0LGUsbil7cmV0dXJuIE1hdGguYXRhbigtZS90Kk1hdGgudGFuKG4pKX1mdW5jdGlvbiBoZih0LGUsbil7cmV0dXJuIE1hdGguYXRhbihlLyh0Kk1hdGgudGFuKG4pKSl9ZnVuY3Rpb24gemModCxlLG4scixpLGEpe3JldHVybiBuKk1hdGguY29zKGkpKk1hdGguY29zKGEpLXIqTWF0aC5zaW4oaSkqTWF0aC5zaW4oYSkrdH1mdW5jdGlvbiBlZyh0LGUsbixyLGksYSl7cmV0dXJuIG4qTWF0aC5zaW4oaSkqTWF0aC5jb3MoYSkrcipNYXRoLmNvcyhpKSpNYXRoLnNpbihhKStlfWZ1bmN0aW9uIG5nKHQsZSxuLHIpe3ZhciBpPU1hdGguYXRhbjIocip0LG4qZSk7cmV0dXJuKGkrTWF0aC5QSSoyKSUoTWF0aC5QSSoyKX1mdW5jdGlvbiByZyh0LGUsbil7cmV0dXJue3g6dCpNYXRoLmNvcyhuKSx5OmUqTWF0aC5zaW4obil9fWZ1bmN0aW9uIE5oKHQsZSxuKXt2YXIgcj1NYXRoLmNvcyhuKSxpPU1hdGguc2luKG4pO3JldHVyblt0KnItZSppLHQqaStlKnJdfWZ1bmN0aW9uIFdjKHQsZSxuLHIsaSxhLG8pe2Zvcih2YXIgcz1zeChuLHIsaSksYz0xLzAsbD0tMS8wLHU9W2Esb10sZj0tTWF0aC5QSSoyO2Y8PU1hdGguUEkqMjtmKz1NYXRoLlBJKXt2YXIgZD1zK2Y7YTxvP2E8ZCYmZDxvJiZ1LnB1c2goZCk6bzxkJiZkPGEmJnUucHVzaChkKX1mb3IodmFyIGY9MDtmPHUubGVuZ3RoO2YrKyl7dmFyIGg9emModCxlLG4scixpLHVbZl0pO2g8YyYmKGM9aCksaD5sJiYobD1oKX1mb3IodmFyIHY9aGYobixyLGkpLGc9MS8wLHk9LTEvMCxiPVthLG9dLGY9LU1hdGguUEkqMjtmPD1NYXRoLlBJKjI7Zis9TWF0aC5QSSl7dmFyIHg9ditmO2E8bz9hPHgmJng8byYmYi5wdXNoKHgpOm88eCYmeDxhJiZiLnB1c2goeCl9Zm9yKHZhciBmPTA7ZjxiLmxlbmd0aDtmKyspe3ZhciBfPWVnKHQsZSxuLHIsaSxiW2ZdKTtfPGcmJihnPV8pLF8+eSYmKHk9Xyl9cmV0dXJue3g6Yyx5Omcsd2lkdGg6bC1jLGhlaWdodDp5LWd9fWZ1bmN0aW9uIHBmKHQsZSxuLHIsaSxhLG8scyxjKXt2YXIgbD1OaChzLXQsYy1lLC1pKSx1PV9fcmVhZChsLDIpLGY9dVswXSxkPXVbMV0saD1WaSgwLDAsbixyLGYsZCksdj1uZyhuLHIsaC54LGgueSk7djxhP2g9cmcobixyLGEpOnY+byYmKGg9cmcobixyLG8pKTt2YXIgZz1OaChoLngsaC55LGkpO3JldHVybnt4OmdbMF0rdCx5OmdbMV0rZX19ZnVuY3Rpb24gcmsodCxlLG4scixpLGEsbyxzKXt2YXIgYz0oby1hKSpzK2EsbD1ubyh0LGUsbixyLGksYSxvLGMpLHU9b3godCxlLG4scixpLGEsbyxjKTtyZXR1cm4gTGgoTWF0aC5hdGFuMih1LGwpKX12YXIgaWc9MWUtNDtmdW5jdGlvbiBJaCh0LGUsbixyLGksYSl7dmFyIG89LTEscz0xLzAsYz1bbixyXSxsPTIwO2EmJmE+MjAwJiYobD1hLzEwKTtmb3IodmFyIHU9MS9sLGY9dS8xMCxkPTA7ZDw9bDtkKyspe3ZhciBoPWQqdSx2PVtpLmFwcGx5KHZvaWQgMCx0ZShbXSxWKHQuY29uY2F0KFtoXSkpLCExKSksaS5hcHBseSh2b2lkIDAsdGUoW10sVihlLmNvbmNhdChbaF0pKSwhMSkpXSxnPWxpKGNbMF0sY1sxXSx2WzBdLHZbMV0pO2c8cyYmKG89aCxzPWcpfWlmKG89PT0wKXJldHVybnt4OnRbMF0seTplWzBdfTtpZihvPT09MSl7dmFyIHk9dC5sZW5ndGg7cmV0dXJue3g6dFt5LTFdLHk6ZVt5LTFdfX1zPTEvMDtmb3IodmFyIGQ9MDtkPDMyJiYhKGY8aWcpO2QrKyl7dmFyIGI9by1mLHg9bytmLHY9W2kuYXBwbHkodm9pZCAwLHRlKFtdLFYodC5jb25jYXQoW2JdKSksITEpKSxpLmFwcGx5KHZvaWQgMCx0ZShbXSxWKGUuY29uY2F0KFtiXSkpLCExKSldLGc9bGkoY1swXSxjWzFdLHZbMF0sdlsxXSk7aWYoYj49MCYmZzxzKW89YixzPWc7ZWxzZXt2YXIgXz1baS5hcHBseSh2b2lkIDAsdGUoW10sVih0LmNvbmNhdChbeF0pKSwhMSkpLGkuYXBwbHkodm9pZCAwLHRlKFtdLFYoZS5jb25jYXQoW3hdKSksITEpKV0sdz1saShjWzBdLGNbMV0sX1swXSxfWzFdKTt4PD0xJiZ3PHM/KG89eCxzPXcpOmYqPS41fX1yZXR1cm57eDppLmFwcGx5KHZvaWQgMCx0ZShbXSxWKHQuY29uY2F0KFtvXSkpLCExKSkseTppLmFwcGx5KHZvaWQgMCx0ZShbXSxWKGUuY29uY2F0KFtvXSkpLCExKSl9fWZ1bmN0aW9uIHZmKHQsZSl7Zm9yKHZhciBuPTAscj10Lmxlbmd0aCxpPTA7aTxyO2krKyl7dmFyIGE9dFtpXSxvPWVbaV0scz10WyhpKzEpJXJdLGM9ZVsoaSsxKSVyXTtuKz1saShhLG8scyxjKX1yZXR1cm4gbi8yfWZ1bmN0aW9uIGN4KHQsZSxuLHIpe3JldHVybiBkZihbdCxuXSxbZSxyXSl9ZnVuY3Rpb24gV2wodCxlLG4scil7cmV0dXJuIGxpKHQsZSxuLHIpfWZ1bmN0aW9uIE9hKHQsZSxuLHIsaSl7cmV0dXJue3g6KDEtaSkqdCtpKm4seTooMS1pKSplK2kqcn19ZnVuY3Rpb24gZ2YodCxlLG4scixpLGEpe3ZhciBvPShuLXQpKihpLXQpKyhyLWUpKihhLWUpO2lmKG88MClyZXR1cm4gbGkodCxlLGksYSk7dmFyIHM9KG4tdCkqKG4tdCkrKHItZSkqKHItZSk7cmV0dXJuIG8+cz9saShuLHIsaSxhKTphZyh0LGUsbixyLGksYSl9ZnVuY3Rpb24gYWcodCxlLG4scixpLGEpe3ZhciBvPVtuLXQsci1lXTtpZihObyhvLFswLDBdKSlyZXR1cm4gTWF0aC5zcXJ0KChpLXQpKihpLXQpKyhhLWUpKihhLWUpKTt2YXIgcz1bLW9bMV0sb1swXV07SWMocyxzKTt2YXIgYz1baS10LGEtZV07cmV0dXJuIE1hdGguYWJzKFF1KGMscykpfWZ1bmN0aW9uIGx4KHQsZSxuLHIpe3JldHVybiBNYXRoLmF0YW4yKHItZSxuLXQpfWZ1bmN0aW9uIHJvKHQsZSxuLHIsaSl7dmFyIGE9MS1pO3JldHVybiBhKmEqYSp0KzMqZSppKmEqYSszKm4qaSppKmErcippKmkqaX1mdW5jdGlvbiBEaCh0LGUsbixyLGkpe3ZhciBhPTEtaTtyZXR1cm4gMyooYSphKihlLXQpKzIqYSppKihuLWUpK2kqaSooci1uKSl9ZnVuY3Rpb24geWYodCxlLG4scil7dmFyIGk9LTMqdCs5KmUtOSpuKzMqcixhPTYqdC0xMiplKzYqbixvPTMqZS0zKnQscz1bXSxjLGwsdTtpZigkcyhpLDApKSRzKGEsMCl8fChjPS1vL2EsYz49MCYmYzw9MSYmcy5wdXNoKGMpKTtlbHNle3ZhciBmPWEqYS00KmkqbzskcyhmLDApP3MucHVzaCgtYS8oMippKSk6Zj4wJiYodT1NYXRoLnNxcnQoZiksYz0oLWErdSkvKDIqaSksbD0oLWEtdSkvKDIqaSksYz49MCYmYzw9MSYmcy5wdXNoKGMpLGw+PTAmJmw8PTEmJnMucHVzaChsKSl9cmV0dXJuIHN9ZnVuY3Rpb24gdXgodCxlLG4scixpLGEsbyxzLGMpe3ZhciBsPXJvKHQsbixpLG8sYyksdT1ybyhlLHIsYSxzLGMpLGY9T2EodCxlLG4scixjKSxkPU9hKG4scixpLGEsYyksaD1PYShpLGEsbyxzLGMpLHY9T2EoZi54LGYueSxkLngsZC55LGMpLGc9T2EoZC54LGQueSxoLngsaC55LGMpO3JldHVybltbdCxlLGYueCxmLnksdi54LHYueSxsLHVdLFtsLHUsZy54LGcueSxoLngsaC55LG8sc11dfWZ1bmN0aW9uIG1mKHQsZSxuLHIsaSxhLG8scyxjKXtpZihjPT09MClyZXR1cm4gdmYoW3QsbixpLG9dLFtlLHIsYSxzXSk7dmFyIGw9dXgodCxlLG4scixpLGEsbyxzLC41KSx1PV9fc3ByZWFkQXJyYXkoX19zcHJlYWRBcnJheShbXSxfX3JlYWQobFswXSksITEpLFtjLTFdLCExKSxmPV9fc3ByZWFkQXJyYXkoX19zcHJlYWRBcnJheShbXSxfX3JlYWQobFsxXSksITEpLFtjLTFdLCExKTtyZXR1cm4gbWYuYXBwbHkodm9pZCAwLF9fc3ByZWFkQXJyYXkoW10sX19yZWFkKHUpLCExKSkrbWYuYXBwbHkodm9pZCAwLF9fc3ByZWFkQXJyYXkoW10sX19yZWFkKGYpLCExKSl9ZnVuY3Rpb24gSW8odCxlLG4scixpLGEsbyxzKXtmb3IodmFyIGM9W3Qsb10sbD1bZSxzXSx1PXlmKHQsbixpLG8pLGY9eWYoZSxyLGEscyksZD0wO2Q8dS5sZW5ndGg7ZCsrKWMucHVzaChybyh0LG4saSxvLHVbZF0pKTtmb3IodmFyIGQ9MDtkPGYubGVuZ3RoO2QrKylsLnB1c2gocm8oZSxyLGEscyxmW2RdKSk7cmV0dXJuIGRmKGMsbCl9ZnVuY3Rpb24gZngodCxlLG4scixpLGEsbyxzKXtyZXR1cm4gbWYodCxlLG4scixpLGEsbyxzLDMpfWZ1bmN0aW9uIG9nKHQsZSxuLHIsaSxhLG8scyxjLGwsdSl7cmV0dXJuIEloKFt0LG4saSxvXSxbZSxyLGEsc10sYyxsLHJvLHUpfWZ1bmN0aW9uIHNnKHQsZSxuLHIsaSxhLG8scyxjLGwsdSl7dmFyIGY9b2codCxlLG4scixpLGEsbyxzLGMsbCx1KTtyZXR1cm4gbGkoZi54LGYueSxjLGwpfWZ1bmN0aW9uIGR4KHQsZSxuLHIsaSxhLG8scyxjKXtyZXR1cm57eDpybyh0LG4saSxvLGMpLHk6cm8oZSxyLGEscyxjKX19ZnVuY3Rpb24gaWsodCxlLG4scixpLGEsbyxzLGMpe3ZhciBsPURoKHQsbixpLG8sYyksdT1EaChlLHIsYSxzLGMpO3JldHVybiBMaChNYXRoLmF0YW4yKHUsbCkpfWZ1bmN0aW9uIGNnKHQpe2Zvcih2YXIgZT0wLG49W10scj0wO3I8dC5sZW5ndGgtMTtyKyspe3ZhciBpPXRbcl0sYT10W3IrMV0sbz1saShpWzBdLGlbMV0sYVswXSxhWzFdKSxzPXtmcm9tOmksdG86YSxsZW5ndGg6b307bi5wdXNoKHMpLGUrPW99cmV0dXJue3NlZ21lbnRzOm4sdG90YWxMZW5ndGg6ZX19ZnVuY3Rpb24gaW8odCl7aWYodC5sZW5ndGg8MilyZXR1cm4gMDtmb3IodmFyIGU9MCxuPTA7bjx0Lmxlbmd0aC0xO24rKyl7dmFyIHI9dFtuXSxpPXRbbisxXTtlKz1saShyWzBdLHJbMV0saVswXSxpWzFdKX1yZXR1cm4gZX1mdW5jdGlvbiBiZih0LGUpe2lmKGU+MXx8ZTwwfHx0Lmxlbmd0aDwyKXJldHVybiBudWxsO3ZhciBuPWNnKHQpLHI9bi5zZWdtZW50cyxpPW4udG90YWxMZW5ndGg7aWYoaT09PTApcmV0dXJue3g6dFswXVswXSx5OnRbMF1bMV19O2Zvcih2YXIgYT0wLG89bnVsbCxzPTA7czxyLmxlbmd0aDtzKyspe3ZhciBjPXJbc10sbD1jLmZyb20sdT1jLnRvLGY9Yy5sZW5ndGgvaTtpZihlPj1hJiZlPD1hK2Ype3ZhciBkPShlLWEpL2Y7bz1PYShsWzBdLGxbMV0sdVswXSx1WzFdLGQpO2JyZWFrfWErPWZ9cmV0dXJuIG99ZnVuY3Rpb24geGYodCxlKXtpZihlPjF8fGU8MHx8dC5sZW5ndGg8MilyZXR1cm4gMDtmb3IodmFyIG49Y2codCkscj1uLnNlZ21lbnRzLGk9bi50b3RhbExlbmd0aCxhPTAsbz0wLHM9MDtzPHIubGVuZ3RoO3MrKyl7dmFyIGM9cltzXSxsPWMuZnJvbSx1PWMudG8sZj1jLmxlbmd0aC9pO2lmKGU+PWEmJmU8PWErZil7bz1NYXRoLmF0YW4yKHVbMV0tbFsxXSx1WzBdLWxbMF0pO2JyZWFrfWErPWZ9cmV0dXJuIG99ZnVuY3Rpb24gX2YodCxlLG4pe2Zvcih2YXIgcj0xLzAsaT0wO2k8dC5sZW5ndGgtMTtpKyspe3ZhciBhPXRbaV0sbz10W2krMV0scz1nZihhWzBdLGFbMV0sb1swXSxvWzFdLGUsbik7czxyJiYocj1zKX1yZXR1cm4gcn1mdW5jdGlvbiB3Zih0KXtmb3IodmFyIGU9W10sbj1bXSxyPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBpPXRbcl07ZS5wdXNoKGlbMF0pLG4ucHVzaChpWzFdKX1yZXR1cm4gZGYoZSxuKX1mdW5jdGlvbiBHYyh0KXtyZXR1cm4gaW8odCl9ZnVuY3Rpb24gUGUodCxlKXtyZXR1cm4gYmYodCxlKX1mdW5jdGlvbiBqaCh0LGUsbil7cmV0dXJuIF9mKHQsZSxuKX1mdW5jdGlvbiBsZyh0LGUpe3JldHVybiB4Zih0LGUpfWZ1bmN0aW9uIGFvKHQpe3ZhciBlPXQuc2xpY2UoMCk7cmV0dXJuIHQubGVuZ3RoJiZlLnB1c2godFswXSksZX1mdW5jdGlvbiBhayh0KXtyZXR1cm4gd2YodCl9ZnVuY3Rpb24gdWcodCl7cmV0dXJuIGlvKGFvKHQpKX1mdW5jdGlvbiBoeCh0LGUpe3JldHVybiBiZihhbyh0KSxlKX1mdW5jdGlvbiBBaSh0LGUsbil7cmV0dXJuIF9mKGFvKHQpLGUsbil9ZnVuY3Rpb24gb2sodCxlKXtyZXR1cm4geGYoYW8odCksZSl9ZnVuY3Rpb24gR2wodCxlLG4scil7dmFyIGk9MS1yO3JldHVybiBpKmkqdCsyKnIqaSplK3IqcipufWZ1bmN0aW9uIEZoKHQsZSxuKXt2YXIgcj10K24tMiplO2lmKCRzKHIsMCkpcmV0dXJuWy41XTt2YXIgaT0odC1lKS9yO3JldHVybiBpPD0xJiZpPj0wP1tpXTpbXX1mdW5jdGlvbiBweCh0LGUsbixyLGksYSxvKXt2YXIgcz1HbCh0LG4saSxvKSxjPUdsKGUscixhLG8pLGw9T2EodCxlLG4scixvKSx1PU9hKG4scixpLGEsbyk7cmV0dXJuW1t0LGUsbC54LGwueSxzLGNdLFtzLGMsdS54LHUueSxpLGFdXX1mdW5jdGlvbiBPZih0LGUsbixyLGksYSxvKXtpZihvPT09MClyZXR1cm4obGkodCxlLG4scikrbGkobixyLGksYSkrbGkodCxlLGksYSkpLzI7dmFyIHM9cHgodCxlLG4scixpLGEsLjUpLGM9c1swXSxsPXNbMV07cmV0dXJuIGMucHVzaChvLTEpLGwucHVzaChvLTEpLE9mLmFwcGx5KHZvaWQgMCxfX3NwcmVhZEFycmF5KFtdLF9fcmVhZChjKSwhMSkpK09mLmFwcGx5KHZvaWQgMCxfX3NwcmVhZEFycmF5KFtdLF9fcmVhZChsKSwhMSkpfWZ1bmN0aW9uIHZ4KHQsZSxuLHIsaSxhKXt2YXIgbz1GaCh0LG4saSlbMF0scz1GaChlLHIsYSlbMF0sYz1bdCxpXSxsPVtlLGFdO3JldHVybiBvIT09dm9pZCAwJiZjLnB1c2goR2wodCxuLGksbykpLHMhPT12b2lkIDAmJmwucHVzaChHbChlLHIsYSxzKSksZGYoYyxsKX1mdW5jdGlvbiBzayh0LGUsbixyLGksYSl7cmV0dXJuIE9mKHQsZSxuLHIsaSxhLDMpfWZ1bmN0aW9uIGd4KHQsZSxuLHIsaSxhLG8scyl7cmV0dXJuIEloKFt0LG4saV0sW2UscixhXSxvLHMsR2wpfWZ1bmN0aW9uIERvKHQsZSxuLHIsaSxhLG8scyl7dmFyIGM9Z3godCxlLG4scixpLGEsbyxzKTtyZXR1cm4gbGkoYy54LGMueSxvLHMpfXZhciBNbj1wdCg3NDE2NSksb289cHQoMTU4NjEpLFlzPXB0KDM3NzYyKSxqbz1wdCg5MSk7dmFyIHl4PXR5cGVvZiBnbG9iYWxUaGlzIT0idW5kZWZpbmVkIj9nbG9iYWxUaGlzOnR5cGVvZiB3aW5kb3chPSJ1bmRlZmluZWQiP3dpbmRvdzp0eXBlb2YgcHQuZyE9InVuZGVmaW5lZCI/cHQuZzp0eXBlb2Ygc2VsZiE9InVuZGVmaW5lZCI/c2VsZjp7fSxmZz17ZXhwb3J0czp7fX07KGZ1bmN0aW9uKHQsZSl7KGZ1bmN0aW9uKG4scil7dC5leHBvcnRzPXIoKX0pKHl4LGZ1bmN0aW9uKCl7ZnVuY3Rpb24gbihPLEUsTSxrLEEpe3IoTyxFLE18fDAsa3x8Ty5sZW5ndGgtMSxBfHxhKX1mdW5jdGlvbiByKE8sRSxNLGssQSl7Zm9yKDtrPk07KXtpZihrLU0+NjAwKXt2YXIgUD1rLU0rMSxDPUUtTSsxLE49TWF0aC5sb2coUCksTD0uNSpNYXRoLmV4cCgyKk4vMyksUj0uNSpNYXRoLnNxcnQoTipMKihQLUwpL1ApKihDLVAvMjwwPy0xOjEpLEk9TWF0aC5tYXgoTSxNYXRoLmZsb29yKEUtQypML1ArUikpLEQ9TWF0aC5taW4oayxNYXRoLmZsb29yKEUrKFAtQykqTC9QK1IpKTtyKE8sRSxJLEQsQSl9dmFyIEc9T1tFXSxGPU0sVz1rO2ZvcihpKE8sTSxFKSxBKE9ba10sRyk+MCYmaShPLE0sayk7RjxXOyl7Zm9yKGkoTyxGLFcpLEYrKyxXLS07QShPW0ZdLEcpPDA7KUYrKztmb3IoO0EoT1tXXSxHKT4wOylXLS19QShPW01dLEcpPT09MD9pKE8sTSxXKTooVysrLGkoTyxXLGspKSxXPD1FJiYoTT1XKzEpLEU8PVcmJihrPVctMSl9fWZ1bmN0aW9uIGkoTyxFLE0pe3ZhciBrPU9bRV07T1tFXT1PW01dLE9bTV09a31mdW5jdGlvbiBhKE8sRSl7cmV0dXJuIE88RT8tMTpPPkU/MTowfXZhciBvPWZ1bmN0aW9uKEUpe0U9PT12b2lkIDAmJihFPTkpLHRoaXMuX21heEVudHJpZXM9TWF0aC5tYXgoNCxFKSx0aGlzLl9taW5FbnRyaWVzPU1hdGgubWF4KDIsTWF0aC5jZWlsKHRoaXMuX21heEVudHJpZXMqLjQpKSx0aGlzLmNsZWFyKCl9O28ucHJvdG90eXBlLmFsbD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9hbGwodGhpcy5kYXRhLFtdKX0sby5wcm90b3R5cGUuc2VhcmNoPWZ1bmN0aW9uKEUpe3ZhciBNPXRoaXMuZGF0YSxrPVtdO2lmKCF4KEUsTSkpcmV0dXJuIGs7Zm9yKHZhciBBPXRoaXMudG9CQm94LFA9W107TTspe2Zvcih2YXIgQz0wO0M8TS5jaGlsZHJlbi5sZW5ndGg7QysrKXt2YXIgTj1NLmNoaWxkcmVuW0NdLEw9TS5sZWFmP0EoTik6Tjt4KEUsTCkmJihNLmxlYWY/ay5wdXNoKE4pOmIoRSxMKT90aGlzLl9hbGwoTixrKTpQLnB1c2goTikpfU09UC5wb3AoKX1yZXR1cm4ga30sby5wcm90b3R5cGUuY29sbGlkZXM9ZnVuY3Rpb24oRSl7dmFyIE09dGhpcy5kYXRhO2lmKCF4KEUsTSkpcmV0dXJuITE7Zm9yKHZhciBrPVtdO007KXtmb3IodmFyIEE9MDtBPE0uY2hpbGRyZW4ubGVuZ3RoO0ErKyl7dmFyIFA9TS5jaGlsZHJlbltBXSxDPU0ubGVhZj90aGlzLnRvQkJveChQKTpQO2lmKHgoRSxDKSl7aWYoTS5sZWFmfHxiKEUsQykpcmV0dXJuITA7ay5wdXNoKFApfX1NPWsucG9wKCl9cmV0dXJuITF9LG8ucHJvdG90eXBlLmxvYWQ9ZnVuY3Rpb24oRSl7aWYoIShFJiZFLmxlbmd0aCkpcmV0dXJuIHRoaXM7aWYoRS5sZW5ndGg8dGhpcy5fbWluRW50cmllcyl7Zm9yKHZhciBNPTA7TTxFLmxlbmd0aDtNKyspdGhpcy5pbnNlcnQoRVtNXSk7cmV0dXJuIHRoaXN9dmFyIGs9dGhpcy5fYnVpbGQoRS5zbGljZSgpLDAsRS5sZW5ndGgtMSwwKTtpZighdGhpcy5kYXRhLmNoaWxkcmVuLmxlbmd0aCl0aGlzLmRhdGE9aztlbHNlIGlmKHRoaXMuZGF0YS5oZWlnaHQ9PT1rLmhlaWdodCl0aGlzLl9zcGxpdFJvb3QodGhpcy5kYXRhLGspO2Vsc2V7aWYodGhpcy5kYXRhLmhlaWdodDxrLmhlaWdodCl7dmFyIEE9dGhpcy5kYXRhO3RoaXMuZGF0YT1rLGs9QX10aGlzLl9pbnNlcnQoayx0aGlzLmRhdGEuaGVpZ2h0LWsuaGVpZ2h0LTEsITApfXJldHVybiB0aGlzfSxvLnByb3RvdHlwZS5pbnNlcnQ9ZnVuY3Rpb24oRSl7cmV0dXJuIEUmJnRoaXMuX2luc2VydChFLHRoaXMuZGF0YS5oZWlnaHQtMSksdGhpc30sby5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kYXRhPV8oW10pLHRoaXN9LG8ucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbihFLE0pe2lmKCFFKXJldHVybiB0aGlzO2Zvcih2YXIgaz10aGlzLmRhdGEsQT10aGlzLnRvQkJveChFKSxQPVtdLEM9W10sTixMLFI7a3x8UC5sZW5ndGg7KXtpZihrfHwoaz1QLnBvcCgpLEw9UFtQLmxlbmd0aC0xXSxOPUMucG9wKCksUj0hMCksay5sZWFmKXt2YXIgST1zKEUsay5jaGlsZHJlbixNKTtpZihJIT09LTEpcmV0dXJuIGsuY2hpbGRyZW4uc3BsaWNlKEksMSksUC5wdXNoKGspLHRoaXMuX2NvbmRlbnNlKFApLHRoaXN9IVImJiFrLmxlYWYmJmIoayxBKT8oUC5wdXNoKGspLEMucHVzaChOKSxOPTAsTD1rLGs9ay5jaGlsZHJlblswXSk6TD8oTisrLGs9TC5jaGlsZHJlbltOXSxSPSExKTprPW51bGx9cmV0dXJuIHRoaXN9LG8ucHJvdG90eXBlLnRvQkJveD1mdW5jdGlvbihFKXtyZXR1cm4gRX0sby5wcm90b3R5cGUuY29tcGFyZU1pblg9ZnVuY3Rpb24oRSxNKXtyZXR1cm4gRS5taW5YLU0ubWluWH0sby5wcm90b3R5cGUuY29tcGFyZU1pblk9ZnVuY3Rpb24oRSxNKXtyZXR1cm4gRS5taW5ZLU0ubWluWX0sby5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGF0YX0sby5wcm90b3R5cGUuZnJvbUpTT049ZnVuY3Rpb24oRSl7cmV0dXJuIHRoaXMuZGF0YT1FLHRoaXN9LG8ucHJvdG90eXBlLl9hbGw9ZnVuY3Rpb24oRSxNKXtmb3IodmFyIGs9W107RTspRS5sZWFmP00ucHVzaC5hcHBseShNLEUuY2hpbGRyZW4pOmsucHVzaC5hcHBseShrLEUuY2hpbGRyZW4pLEU9ay5wb3AoKTtyZXR1cm4gTX0sby5wcm90b3R5cGUuX2J1aWxkPWZ1bmN0aW9uKEUsTSxrLEEpe3ZhciBQPWstTSsxLEM9dGhpcy5fbWF4RW50cmllcyxOO2lmKFA8PUMpcmV0dXJuIE49XyhFLnNsaWNlKE0saysxKSksYyhOLHRoaXMudG9CQm94KSxOO0F8fChBPU1hdGguY2VpbChNYXRoLmxvZyhQKS9NYXRoLmxvZyhDKSksQz1NYXRoLmNlaWwoUC9NYXRoLnBvdyhDLEEtMSkpKSxOPV8oW10pLE4ubGVhZj0hMSxOLmhlaWdodD1BO3ZhciBMPU1hdGguY2VpbChQL0MpLFI9TCpNYXRoLmNlaWwoTWF0aC5zcXJ0KEMpKTt3KEUsTSxrLFIsdGhpcy5jb21wYXJlTWluWCk7Zm9yKHZhciBJPU07STw9aztJKz1SKXt2YXIgRD1NYXRoLm1pbihJK1ItMSxrKTt3KEUsSSxELEwsdGhpcy5jb21wYXJlTWluWSk7Zm9yKHZhciBHPUk7Rzw9RDtHKz1MKXt2YXIgRj1NYXRoLm1pbihHK0wtMSxEKTtOLmNoaWxkcmVuLnB1c2godGhpcy5fYnVpbGQoRSxHLEYsQS0xKSl9fXJldHVybiBjKE4sdGhpcy50b0JCb3gpLE59LG8ucHJvdG90eXBlLl9jaG9vc2VTdWJ0cmVlPWZ1bmN0aW9uKEUsTSxrLEEpe2Zvcig7QS5wdXNoKE0pLCEoTS5sZWFmfHxBLmxlbmd0aC0xPT09ayk7KXtmb3IodmFyIFA9MS8wLEM9MS8wLE49dm9pZCAwLEw9MDtMPE0uY2hpbGRyZW4ubGVuZ3RoO0wrKyl7dmFyIFI9TS5jaGlsZHJlbltMXSxJPWgoUiksRD1nKEUsUiktSTtEPEM/KEM9RCxQPUk8UD9JOlAsTj1SKTpEPT09QyYmSTxQJiYoUD1JLE49Uil9TT1OfHxNLmNoaWxkcmVuWzBdfXJldHVybiBNfSxvLnByb3RvdHlwZS5faW5zZXJ0PWZ1bmN0aW9uKEUsTSxrKXt2YXIgQT1rP0U6dGhpcy50b0JCb3goRSksUD1bXSxDPXRoaXMuX2Nob29zZVN1YnRyZWUoQSx0aGlzLmRhdGEsTSxQKTtmb3IoQy5jaGlsZHJlbi5wdXNoKEUpLHUoQyxBKTtNPj0wJiZQW01dLmNoaWxkcmVuLmxlbmd0aD50aGlzLl9tYXhFbnRyaWVzOyl0aGlzLl9zcGxpdChQLE0pLE0tLTt0aGlzLl9hZGp1c3RQYXJlbnRCQm94ZXMoQSxQLE0pfSxvLnByb3RvdHlwZS5fc3BsaXQ9ZnVuY3Rpb24oRSxNKXt2YXIgaz1FW01dLEE9ay5jaGlsZHJlbi5sZW5ndGgsUD10aGlzLl9taW5FbnRyaWVzO3RoaXMuX2Nob29zZVNwbGl0QXhpcyhrLFAsQSk7dmFyIEM9dGhpcy5fY2hvb3NlU3BsaXRJbmRleChrLFAsQSksTj1fKGsuY2hpbGRyZW4uc3BsaWNlKEMsay5jaGlsZHJlbi5sZW5ndGgtQykpO04uaGVpZ2h0PWsuaGVpZ2h0LE4ubGVhZj1rLmxlYWYsYyhrLHRoaXMudG9CQm94KSxjKE4sdGhpcy50b0JCb3gpLE0/RVtNLTFdLmNoaWxkcmVuLnB1c2goTik6dGhpcy5fc3BsaXRSb290KGssTil9LG8ucHJvdG90eXBlLl9zcGxpdFJvb3Q9ZnVuY3Rpb24oRSxNKXt0aGlzLmRhdGE9XyhbRSxNXSksdGhpcy5kYXRhLmhlaWdodD1FLmhlaWdodCsxLHRoaXMuZGF0YS5sZWFmPSExLGModGhpcy5kYXRhLHRoaXMudG9CQm94KX0sby5wcm90b3R5cGUuX2Nob29zZVNwbGl0SW5kZXg9ZnVuY3Rpb24oRSxNLGspe2Zvcih2YXIgQSxQPTEvMCxDPTEvMCxOPU07Tjw9ay1NO04rKyl7dmFyIEw9bChFLDAsTix0aGlzLnRvQkJveCksUj1sKEUsTixrLHRoaXMudG9CQm94KSxJPXkoTCxSKSxEPWgoTCkraChSKTtJPFA/KFA9SSxBPU4sQz1EPEM/RDpDKTpJPT09UCYmRDxDJiYoQz1ELEE9Til9cmV0dXJuIEF8fGstTX0sby5wcm90b3R5cGUuX2Nob29zZVNwbGl0QXhpcz1mdW5jdGlvbihFLE0sayl7dmFyIEE9RS5sZWFmP3RoaXMuY29tcGFyZU1pblg6ZixQPUUubGVhZj90aGlzLmNvbXBhcmVNaW5ZOmQsQz10aGlzLl9hbGxEaXN0TWFyZ2luKEUsTSxrLEEpLE49dGhpcy5fYWxsRGlzdE1hcmdpbihFLE0sayxQKTtDPE4mJkUuY2hpbGRyZW4uc29ydChBKX0sby5wcm90b3R5cGUuX2FsbERpc3RNYXJnaW49ZnVuY3Rpb24oRSxNLGssQSl7RS5jaGlsZHJlbi5zb3J0KEEpO2Zvcih2YXIgUD10aGlzLnRvQkJveCxDPWwoRSwwLE0sUCksTj1sKEUsay1NLGssUCksTD12KEMpK3YoTiksUj1NO1I8ay1NO1IrKyl7dmFyIEk9RS5jaGlsZHJlbltSXTt1KEMsRS5sZWFmP1AoSSk6SSksTCs9dihDKX1mb3IodmFyIEQ9ay1NLTE7RD49TTtELS0pe3ZhciBHPUUuY2hpbGRyZW5bRF07dShOLEUubGVhZj9QKEcpOkcpLEwrPXYoTil9cmV0dXJuIEx9LG8ucHJvdG90eXBlLl9hZGp1c3RQYXJlbnRCQm94ZXM9ZnVuY3Rpb24oRSxNLGspe2Zvcih2YXIgQT1rO0E+PTA7QS0tKXUoTVtBXSxFKX0sby5wcm90b3R5cGUuX2NvbmRlbnNlPWZ1bmN0aW9uKEUpe2Zvcih2YXIgTT1FLmxlbmd0aC0xLGs9dm9pZCAwO00+PTA7TS0tKUVbTV0uY2hpbGRyZW4ubGVuZ3RoPT09MD9NPjA/KGs9RVtNLTFdLmNoaWxkcmVuLGsuc3BsaWNlKGsuaW5kZXhPZihFW01dKSwxKSk6dGhpcy5jbGVhcigpOmMoRVtNXSx0aGlzLnRvQkJveCl9O2Z1bmN0aW9uIHMoTyxFLE0pe2lmKCFNKXJldHVybiBFLmluZGV4T2YoTyk7Zm9yKHZhciBrPTA7azxFLmxlbmd0aDtrKyspaWYoTShPLEVba10pKXJldHVybiBrO3JldHVybi0xfWZ1bmN0aW9uIGMoTyxFKXtsKE8sMCxPLmNoaWxkcmVuLmxlbmd0aCxFLE8pfWZ1bmN0aW9uIGwoTyxFLE0sayxBKXtBfHwoQT1fKG51bGwpKSxBLm1pblg9MS8wLEEubWluWT0xLzAsQS5tYXhYPS0xLzAsQS5tYXhZPS0xLzA7Zm9yKHZhciBQPUU7UDxNO1ArKyl7dmFyIEM9Ty5jaGlsZHJlbltQXTt1KEEsTy5sZWFmP2soQyk6Qyl9cmV0dXJuIEF9ZnVuY3Rpb24gdShPLEUpe3JldHVybiBPLm1pblg9TWF0aC5taW4oTy5taW5YLEUubWluWCksTy5taW5ZPU1hdGgubWluKE8ubWluWSxFLm1pblkpLE8ubWF4WD1NYXRoLm1heChPLm1heFgsRS5tYXhYKSxPLm1heFk9TWF0aC5tYXgoTy5tYXhZLEUubWF4WSksT31mdW5jdGlvbiBmKE8sRSl7cmV0dXJuIE8ubWluWC1FLm1pblh9ZnVuY3Rpb24gZChPLEUpe3JldHVybiBPLm1pblktRS5taW5ZfWZ1bmN0aW9uIGgoTyl7cmV0dXJuKE8ubWF4WC1PLm1pblgpKihPLm1heFktTy5taW5ZKX1mdW5jdGlvbiB2KE8pe3JldHVybiBPLm1heFgtTy5taW5YKyhPLm1heFktTy5taW5ZKX1mdW5jdGlvbiBnKE8sRSl7cmV0dXJuKE1hdGgubWF4KEUubWF4WCxPLm1heFgpLU1hdGgubWluKEUubWluWCxPLm1pblgpKSooTWF0aC5tYXgoRS5tYXhZLE8ubWF4WSktTWF0aC5taW4oRS5taW5ZLE8ubWluWSkpfWZ1bmN0aW9uIHkoTyxFKXt2YXIgTT1NYXRoLm1heChPLm1pblgsRS5taW5YKSxrPU1hdGgubWF4KE8ubWluWSxFLm1pblkpLEE9TWF0aC5taW4oTy5tYXhYLEUubWF4WCksUD1NYXRoLm1pbihPLm1heFksRS5tYXhZKTtyZXR1cm4gTWF0aC5tYXgoMCxBLU0pKk1hdGgubWF4KDAsUC1rKX1mdW5jdGlvbiBiKE8sRSl7cmV0dXJuIE8ubWluWDw9RS5taW5YJiZPLm1pblk8PUUubWluWSYmRS5tYXhYPD1PLm1heFgmJkUubWF4WTw9Ty5tYXhZfWZ1bmN0aW9uIHgoTyxFKXtyZXR1cm4gRS5taW5YPD1PLm1heFgmJkUubWluWTw9Ty5tYXhZJiZFLm1heFg+PU8ubWluWCYmRS5tYXhZPj1PLm1pbll9ZnVuY3Rpb24gXyhPKXtyZXR1cm57Y2hpbGRyZW46TyxoZWlnaHQ6MSxsZWFmOiEwLG1pblg6MS8wLG1pblk6MS8wLG1heFg6LTEvMCxtYXhZOi0xLzB9fWZ1bmN0aW9uIHcoTyxFLE0sayxBKXtmb3IodmFyIFA9W0UsTV07UC5sZW5ndGg7KWlmKE09UC5wb3AoKSxFPVAucG9wKCksIShNLUU8PWspKXt2YXIgQz1FK01hdGguY2VpbCgoTS1FKS9rLzIpKms7bihPLEMsRSxNLEEpLFAucHVzaChFLEMsQyxNKX19cmV0dXJuIG99KX0pKGZnKTt2YXIgJGw9ZmcuZXhwb3J0cyxkdD1mdW5jdGlvbih0KXtyZXR1cm4gdC5HUk9VUD0iZyIsdC5GUkFHTUVOVD0iZnJhZ21lbnQiLHQuQ0lSQ0xFPSJjaXJjbGUiLHQuRUxMSVBTRT0iZWxsaXBzZSIsdC5JTUFHRT0iaW1hZ2UiLHQuUkVDVD0icmVjdCIsdC5MSU5FPSJsaW5lIix0LlBPTFlMSU5FPSJwb2x5bGluZSIsdC5QT0xZR09OPSJwb2x5Z29uIix0LlRFWFQ9InRleHQiLHQuUEFUSD0icGF0aCIsdC5IVE1MPSJodG1sIix0Lk1FU0g9Im1lc2giLHR9KHt9KSxabD1mdW5jdGlvbih0KXtyZXR1cm4gdFt0LlpFUk89MF09IlpFUk8iLHRbdC5ORUdBVElWRV9PTkU9MV09Ik5FR0FUSVZFX09ORSIsdH0oe30pLGlzPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpeygwLHh0LlopKHRoaXMsdCksdGhpcy5wbHVnaW5zPVtdfXJldHVybigwLE90LlopKHQsW3trZXk6ImFkZFJlbmRlcmluZ1BsdWdpbiIsdmFsdWU6ZnVuY3Rpb24obil7dGhpcy5wbHVnaW5zLnB1c2gobiksdGhpcy5jb250ZXh0LnJlbmRlcmluZ1BsdWdpbnMucHVzaChuKX19LHtrZXk6InJlbW92ZUFsbFJlbmRlcmluZ1BsdWdpbnMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIG49dGhpczt0aGlzLnBsdWdpbnMuZm9yRWFjaChmdW5jdGlvbihyKXt2YXIgaT1uLmNvbnRleHQucmVuZGVyaW5nUGx1Z2lucy5pbmRleE9mKHIpO2k+PTAmJm4uY29udGV4dC5yZW5kZXJpbmdQbHVnaW5zLnNwbGljZShpLDEpfSl9fV0pfSgpLG14PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlKXsoMCx4dC5aKSh0aGlzLHQpLHRoaXMuY2xpcFNwYWNlTmVhclo9WmwuTkVHQVRJVkVfT05FLHRoaXMucGx1Z2lucz1bXSx0aGlzLmNvbmZpZz0oMCxFZS5aKSh7ZW5hYmxlRGlydHlDaGVjazohMCxlbmFibGVDdWxsaW5nOiExLGVuYWJsZUF1dG9SZW5kZXJpbmc6ITAsZW5hYmxlRGlydHlSZWN0YW5nbGVSZW5kZXJpbmc6ITAsZW5hYmxlRGlydHlSZWN0YW5nbGVSZW5kZXJpbmdEZWJ1ZzohMSxlbmFibGVTaXplQXR0ZW51YXRpb246ITAsZW5hYmxlUmVuZGVyaW5nT3B0aW1pemF0aW9uOiExfSxlKX1yZXR1cm4oMCxPdC5aKSh0LFt7a2V5OiJyZWdpc3RlclBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24obil7dmFyIHI9dGhpcy5wbHVnaW5zLmZpbmRJbmRleChmdW5jdGlvbihpKXtyZXR1cm4gaT09PW59KTtyPT09LTEmJnRoaXMucGx1Z2lucy5wdXNoKG4pfX0se2tleToidW5yZWdpc3RlclBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24obil7dmFyIHI9dGhpcy5wbHVnaW5zLmZpbmRJbmRleChmdW5jdGlvbihpKXtyZXR1cm4gaT09PW59KTtyPi0xJiZ0aGlzLnBsdWdpbnMuc3BsaWNlKHIsMSl9fSx7a2V5OiJnZXRQbHVnaW5zIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBsdWdpbnN9fSx7a2V5OiJnZXRQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKG4pe3JldHVybiB0aGlzLnBsdWdpbnMuZmluZChmdW5jdGlvbihyKXtyZXR1cm4gci5uYW1lPT09bn0pfX0se2tleToiZ2V0Q29uZmlnIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbmZpZ319LHtrZXk6InNldENvbmZpZyIsdmFsdWU6ZnVuY3Rpb24obil7T2JqZWN0LmFzc2lnbih0aGlzLmNvbmZpZyxuKX19XSl9KCksQmg9TmEsJGM9Y2EsZGc9R2QsaGc9V2QscGc9VW8sWWw9Six4cj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXsoMCx4dC5aKSh0aGlzLHQpLHRoaXMuY2VudGVyPVswLDAsMF0sdGhpcy5oYWxmRXh0ZW50cz1bMCwwLDBdLHRoaXMubWluPVswLDAsMF0sdGhpcy5tYXg9WzAsMCwwXX1yZXR1cm4oMCxPdC5aKSh0LFt7a2V5OiJ1cGRhdGUiLHZhbHVlOmZ1bmN0aW9uKG4scil7JGModGhpcy5jZW50ZXIsbiksJGModGhpcy5oYWxmRXh0ZW50cyxyKSxZbCh0aGlzLm1pbix0aGlzLmNlbnRlcix0aGlzLmhhbGZFeHRlbnRzKSxCaCh0aGlzLm1heCx0aGlzLmNlbnRlcix0aGlzLmhhbGZFeHRlbnRzKX19LHtrZXk6InNldE1pbk1heCIsdmFsdWU6ZnVuY3Rpb24obixyKXtCaCh0aGlzLmNlbnRlcixyLG4pLHBnKHRoaXMuY2VudGVyLHRoaXMuY2VudGVyLC41KSxZbCh0aGlzLmhhbGZFeHRlbnRzLHIsbikscGcodGhpcy5oYWxmRXh0ZW50cyx0aGlzLmhhbGZFeHRlbnRzLC41KSwkYyh0aGlzLm1pbixuKSwkYyh0aGlzLm1heCxyKX19LHtrZXk6ImdldE1pbiIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5taW59fSx7a2V5OiJnZXRNYXgiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWF4fX0se2tleToiYWRkIix2YWx1ZTpmdW5jdGlvbihuKXtpZighdC5pc0VtcHR5KG4pKXtpZih0LmlzRW1wdHkodGhpcykpe3RoaXMuc2V0TWluTWF4KG4uZ2V0TWluKCksbi5nZXRNYXgoKSk7cmV0dXJufXZhciByPXRoaXMuY2VudGVyLGk9clswXSxhPXJbMV0sbz1yWzJdLHM9dGhpcy5oYWxmRXh0ZW50cyxjPXNbMF0sbD1zWzFdLHU9c1syXSxmPWktYyxkPWkrYyxoPWEtbCx2PWErbCxnPW8tdSx5PW8rdSxiPW4uY2VudGVyLHg9YlswXSxfPWJbMV0sdz1iWzJdLE89bi5oYWxmRXh0ZW50cyxFPU9bMF0sTT1PWzFdLGs9T1syXSxBPXgtRSxQPXgrRSxDPV8tTSxOPV8rTSxMPXctayxSPXcraztBPGYmJihmPUEpLFA+ZCYmKGQ9UCksQzxoJiYoaD1DKSxOPnYmJih2PU4pLEw8ZyYmKGc9TCksUj55JiYoeT1SKSxyWzBdPShmK2QpKi41LHJbMV09KGgrdikqLjUsclsyXT0oZyt5KSouNSxzWzBdPShkLWYpKi41LHNbMV09KHYtaCkqLjUsc1syXT0oeS1nKSouNSx0aGlzLm1pblswXT1mLHRoaXMubWluWzFdPWgsdGhpcy5taW5bMl09Zyx0aGlzLm1heFswXT1kLHRoaXMubWF4WzFdPXYsdGhpcy5tYXhbMl09eX19fSx7a2V5OiJzZXRGcm9tVHJhbnNmb3JtZWRBQUJCIix2YWx1ZTpmdW5jdGlvbihuLHIpe3ZhciBpPXRoaXMuY2VudGVyLGE9dGhpcy5oYWxmRXh0ZW50cyxvPW4uY2VudGVyLHM9bi5oYWxmRXh0ZW50cyxjPXJbMF0sbD1yWzRdLHU9cls4XSxmPXJbMV0sZD1yWzVdLGg9cls5XSx2PXJbMl0sZz1yWzZdLHk9clsxMF0sYj1NYXRoLmFicyhjKSx4PU1hdGguYWJzKGwpLF89TWF0aC5hYnModSksdz1NYXRoLmFicyhmKSxPPU1hdGguYWJzKGQpLEU9TWF0aC5hYnMoaCksTT1NYXRoLmFicyh2KSxrPU1hdGguYWJzKGcpLEE9TWF0aC5hYnMoeSk7aVswXT1yWzEyXStjKm9bMF0rbCpvWzFdK3Uqb1syXSxpWzFdPXJbMTNdK2Yqb1swXStkKm9bMV0raCpvWzJdLGlbMl09clsxNF0rdipvWzBdK2cqb1sxXSt5Km9bMl0sYVswXT1iKnNbMF0reCpzWzFdK18qc1syXSxhWzFdPXcqc1swXStPKnNbMV0rRSpzWzJdLGFbMl09TSpzWzBdK2sqc1sxXStBKnNbMl0sWWwodGhpcy5taW4saSxhKSxCaCh0aGlzLm1heCxpLGEpfX0se2tleToiaW50ZXJzZWN0cyIsdmFsdWU6ZnVuY3Rpb24obil7dmFyIHI9dGhpcy5nZXRNYXgoKSxpPXRoaXMuZ2V0TWluKCksYT1uLmdldE1heCgpLG89bi5nZXRNaW4oKTtyZXR1cm4gaVswXTw9YVswXSYmclswXT49b1swXSYmaVsxXTw9YVsxXSYmclsxXT49b1sxXSYmaVsyXTw9YVsyXSYmclsyXT49b1syXX19LHtrZXk6ImludGVyc2VjdGlvbiIsdmFsdWU6ZnVuY3Rpb24obil7aWYoIXRoaXMuaW50ZXJzZWN0cyhuKSlyZXR1cm4gbnVsbDt2YXIgcj1uZXcgdCxpPWRnKFswLDAsMF0sdGhpcy5nZXRNaW4oKSxuLmdldE1pbigpKSxhPWhnKFswLDAsMF0sdGhpcy5nZXRNYXgoKSxuLmdldE1heCgpKTtyZXR1cm4gci5zZXRNaW5NYXgoaSxhKSxyfX0se2tleToiZ2V0TmVnYXRpdmVGYXJQb2ludCIsdmFsdWU6ZnVuY3Rpb24obil7cmV0dXJuIG4ucG5WZXJ0ZXhGbGFnPT09MjczPyRjKFswLDAsMF0sdGhpcy5taW4pOm4ucG5WZXJ0ZXhGbGFnPT09MjcyP1t0aGlzLm1pblswXSx0aGlzLm1pblsxXSx0aGlzLm1heFsyXV06bi5wblZlcnRleEZsYWc9PT0yNTc/W3RoaXMubWluWzBdLHRoaXMubWF4WzFdLHRoaXMubWluWzJdXTpuLnBuVmVydGV4RmxhZz09PTI1Nj9bdGhpcy5taW5bMF0sdGhpcy5tYXhbMV0sdGhpcy5tYXhbMl1dOm4ucG5WZXJ0ZXhGbGFnPT09MTc/W3RoaXMubWF4WzBdLHRoaXMubWluWzFdLHRoaXMubWluWzJdXTpuLnBuVmVydGV4RmxhZz09PTE2P1t0aGlzLm1heFswXSx0aGlzLm1pblsxXSx0aGlzLm1heFsyXV06bi5wblZlcnRleEZsYWc9PT0xP1t0aGlzLm1heFswXSx0aGlzLm1heFsxXSx0aGlzLm1pblsyXV06W3RoaXMubWF4WzBdLHRoaXMubWF4WzFdLHRoaXMubWF4WzJdXX19LHtrZXk6ImdldFBvc2l0aXZlRmFyUG9pbnQiLHZhbHVlOmZ1bmN0aW9uKG4pe3JldHVybiBuLnBuVmVydGV4RmxhZz09PTI3Mz8kYyhbMCwwLDBdLHRoaXMubWF4KTpuLnBuVmVydGV4RmxhZz09PTI3Mj9bdGhpcy5tYXhbMF0sdGhpcy5tYXhbMV0sdGhpcy5taW5bMl1dOm4ucG5WZXJ0ZXhGbGFnPT09MjU3P1t0aGlzLm1heFswXSx0aGlzLm1pblsxXSx0aGlzLm1heFsyXV06bi5wblZlcnRleEZsYWc9PT0yNTY/W3RoaXMubWF4WzBdLHRoaXMubWluWzFdLHRoaXMubWluWzJdXTpuLnBuVmVydGV4RmxhZz09PTE3P1t0aGlzLm1pblswXSx0aGlzLm1heFsxXSx0aGlzLm1heFsyXV06bi5wblZlcnRleEZsYWc9PT0xNj9bdGhpcy5taW5bMF0sdGhpcy5tYXhbMV0sdGhpcy5taW5bMl1dOm4ucG5WZXJ0ZXhGbGFnPT09MT9bdGhpcy5taW5bMF0sdGhpcy5taW5bMV0sdGhpcy5tYXhbMl1dOlt0aGlzLm1pblswXSx0aGlzLm1pblsxXSx0aGlzLm1pblsyXV19fV0sW3trZXk6ImlzRW1wdHkiLHZhbHVlOmZ1bmN0aW9uKG4pe3JldHVybiFufHxuLmhhbGZFeHRlbnRzWzBdPT09MCYmbi5oYWxmRXh0ZW50c1sxXT09PTAmJm4uaGFsZkV4dGVudHNbMl09PT0wfX1dKX0oKSxIbD1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSxuKXsoMCx4dC5aKSh0aGlzLHQpLHRoaXMuZGlzdGFuY2U9ZXx8MCx0aGlzLm5vcm1hbD1ufHxzbigwLDEsMCksdGhpcy51cGRhdGVQTlZlcnRleEZsYWcoKX1yZXR1cm4oMCxPdC5aKSh0LFt7a2V5OiJ1cGRhdGVQTlZlcnRleEZsYWciLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5wblZlcnRleEZsYWc9KCsodGhpcy5ub3JtYWxbMF0+PTApPDw4KSsoKyh0aGlzLm5vcm1hbFsxXT49MCk8PDQpKyArKHRoaXMubm9ybWFsWzJdPj0wKX19LHtrZXk6ImRpc3RhbmNlVG9Qb2ludCIsdmFsdWU6ZnVuY3Rpb24obil7cmV0dXJuIGxhKG4sdGhpcy5ub3JtYWwpLXRoaXMuZGlzdGFuY2V9fSx7a2V5OiJub3JtYWxpemUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIG49MS9pZSh0aGlzLm5vcm1hbCk7VW8odGhpcy5ub3JtYWwsdGhpcy5ub3JtYWwsbiksdGhpcy5kaXN0YW5jZSo9bn19LHtrZXk6ImludGVyc2VjdHNMaW5lIix2YWx1ZTpmdW5jdGlvbihuLHIsaSl7dmFyIGE9dGhpcy5kaXN0YW5jZVRvUG9pbnQobiksbz10aGlzLmRpc3RhbmNlVG9Qb2ludChyKSxzPWEvKGEtbyksYz1zPj0wJiZzPD0xO3JldHVybiBjJiZpJiZFbChpLG4scixzKSxjfX1dKX0oKSxhcz1mdW5jdGlvbih0KXtyZXR1cm4gdFt0Lk9VVFNJREU9NDI5NDk2NzI5NV09Ik9VVFNJREUiLHRbdC5JTlNJREU9MF09IklOU0lERSIsdFt0LklOREVURVJNSU5BVEU9MjE0NzQ4MzY0N109IklOREVURVJNSU5BVEUiLHR9KHt9KSx2Zz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7aWYoKDAseHQuWikodGhpcyx0KSx0aGlzLnBsYW5lcz1bXSxlKXRoaXMucGxhbmVzPWU7ZWxzZSBmb3IodmFyIG49MDtuPDY7bisrKXRoaXMucGxhbmVzLnB1c2gobmV3IEhsKX1yZXR1cm4oMCxPdC5aKSh0LFt7a2V5OiJleHRyYWN0RnJvbVZQTWF0cml4Iix2YWx1ZTpmdW5jdGlvbihuKXt2YXIgcj0oMCxUZS5aKShuLDE2KSxpPXJbMF0sYT1yWzFdLG89clsyXSxzPXJbM10sYz1yWzRdLGw9cls1XSx1PXJbNl0sZj1yWzddLGQ9cls4XSxoPXJbOV0sdj1yWzEwXSxnPXJbMTFdLHk9clsxMl0sYj1yWzEzXSx4PXJbMTRdLF89clsxNV07R3IodGhpcy5wbGFuZXNbMF0ubm9ybWFsLHMtaSxmLWMsZy1kKSx0aGlzLnBsYW5lc1swXS5kaXN0YW5jZT1fLXksR3IodGhpcy5wbGFuZXNbMV0ubm9ybWFsLHMraSxmK2MsZytkKSx0aGlzLnBsYW5lc1sxXS5kaXN0YW5jZT1fK3ksR3IodGhpcy5wbGFuZXNbMl0ubm9ybWFsLHMrYSxmK2wsZytoKSx0aGlzLnBsYW5lc1syXS5kaXN0YW5jZT1fK2IsR3IodGhpcy5wbGFuZXNbM10ubm9ybWFsLHMtYSxmLWwsZy1oKSx0aGlzLnBsYW5lc1szXS5kaXN0YW5jZT1fLWIsR3IodGhpcy5wbGFuZXNbNF0ubm9ybWFsLHMtbyxmLXUsZy12KSx0aGlzLnBsYW5lc1s0XS5kaXN0YW5jZT1fLXgsR3IodGhpcy5wbGFuZXNbNV0ubm9ybWFsLHMrbyxmK3UsZyt2KSx0aGlzLnBsYW5lc1s1XS5kaXN0YW5jZT1fK3gsdGhpcy5wbGFuZXMuZm9yRWFjaChmdW5jdGlvbih3KXt3Lm5vcm1hbGl6ZSgpLHcudXBkYXRlUE5WZXJ0ZXhGbGFnKCl9KX19XSl9KCksaWk9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT12b2lkIDA/YXJndW1lbnRzWzBdOjAsbj1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06MDsoMCx4dC5aKSh0aGlzLHQpLHRoaXMueD0wLHRoaXMueT0wLHRoaXMueD1lLHRoaXMueT1ufXJldHVybigwLE90LlopKHQsW3trZXk6ImNsb25lIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBuZXcgdCh0aGlzLngsdGhpcy55KX19LHtrZXk6ImNvcHlGcm9tIix2YWx1ZTpmdW5jdGlvbihuKXt0aGlzLng9bi54LHRoaXMueT1uLnl9fV0pfSgpLEZvPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlLG4scixpKXsoMCx4dC5aKSh0aGlzLHQpLHRoaXMueD1lLHRoaXMueT1uLHRoaXMud2lkdGg9cix0aGlzLmhlaWdodD1pLHRoaXMubGVmdD1lLHRoaXMucmlnaHQ9ZStyLHRoaXMudG9wPW4sdGhpcy5ib3R0b209bitpfXJldHVybigwLE90LlopKHQsW3trZXk6InRvSlNPTiIsdmFsdWU6ZnVuY3Rpb24oKXt9fV0sW3trZXk6ImZyb21SZWN0Iix2YWx1ZTpmdW5jdGlvbihuKXtyZXR1cm4gbmV3IHQobi54LG4ueSxuLndpZHRoLG4uaGVpZ2h0KX19LHtrZXk6ImFwcGx5VHJhbnNmb3JtIix2YWx1ZTpmdW5jdGlvbihuLHIpe3ZhciBpPWhlKG4ueCxuLnksMCwxKSxhPWhlKG4ueCtuLndpZHRoLG4ueSwwLDEpLG89aGUobi54LG4ueStuLmhlaWdodCwwLDEpLHM9aGUobi54K24ud2lkdGgsbi55K24uaGVpZ2h0LDAsMSksYz1HdCgpLGw9R3QoKSx1PUd0KCksZj1HdCgpO1JvKGMsaSxyKSxSbyhsLGEsciksUm8odSxvLHIpLFJvKGYscyxyKTt2YXIgZD1NYXRoLm1pbihjWzBdLGxbMF0sdVswXSxmWzBdKSxoPU1hdGgubWluKGNbMV0sbFsxXSx1WzFdLGZbMV0pLHY9TWF0aC5tYXgoY1swXSxsWzBdLHVbMF0sZlswXSksZz1NYXRoLm1heChjWzFdLGxbMV0sdVsxXSxmWzFdKTtyZXR1cm4gdC5mcm9tUmVjdCh7eDpkLHk6aCx3aWR0aDp2LWQsaGVpZ2h0OmctaH0pfX1dKX0oKSxrbj0iTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4iLFRpPSJVc2UgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50IGluc3RlYWQuIixIcz0iQ2Fubm90IGFwcGVuZCBhIGRlc3Ryb3llZCBlbGVtZW50LiI7ZnVuY3Rpb24gWmModCl7cmV0dXJuIHQ9PT12b2lkIDA/MDp0PjM2MHx8dDwtMzYwP3QlMzYwOnR9dmFyIFNmPW1lKCk7ZnVuY3Rpb24gUGkodCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOjAsbj1hcmd1bWVudHMubGVuZ3RoPjImJmFyZ3VtZW50c1syXSE9PXZvaWQgMD9hcmd1bWVudHNbMl06MCxyPWFyZ3VtZW50cy5sZW5ndGg+MyYmYXJndW1lbnRzWzNdIT09dm9pZCAwP2FyZ3VtZW50c1szXTohMDtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KSYmdC5sZW5ndGg9PT0zP3I/d2kodCk6Y2EoU2YsdCk6Vm4odCk/cj9zbih0LGUsbik6R3IoU2YsdCxlLG4pOnI/c24odFswXSx0WzFdfHxlLHRbMl18fG4pOkdyKFNmLHRbMF0sdFsxXXx8ZSx0WzJdfHxuKX12YXIgYng9TWF0aC5QSS8xODA7ZnVuY3Rpb24gQ24odCl7cmV0dXJuIHQqYnh9dmFyIHh4PTE4MC9NYXRoLlBJO2Z1bmN0aW9uIFNhKHQpe3JldHVybiB0Knh4fXZhciBfeD0uOTtmdW5jdGlvbiBjayh0KXtyZXR1cm4gdCU9NDAwLHQ8MCYmKHQrPTQwMCksdCpfeH1mdW5jdGlvbiBsayh0KXtyZXR1cm4gdC8zNjB9ZnVuY3Rpb24gd3godCl7cmV0dXJuIDM2MCp0fXZhciBFZj1NYXRoLlBJLzI7ZnVuY3Rpb24gT3godCxlKXt2YXIgbj1lWzBdLHI9ZVsxXSxpPWVbMl0sYT1lWzNdLG89bipuLHM9cipyLGM9aSppLGw9YSphLHU9bytzK2MrbCxmPW4qYS1yKmk7cmV0dXJuIGY+LjQ5OTk5NSp1Pyh0WzBdPUVmLHRbMV09MipNYXRoLmF0YW4yKHIsbiksdFsyXT0wKTpmPC0uNDk5OTk1KnU/KHRbMF09LUVmLHRbMV09MipNYXRoLmF0YW4yKHIsbiksdFsyXT0wKToodFswXT1NYXRoLmFzaW4oMioobippLWEqcikpLHRbMV09TWF0aC5hdGFuMigyKihuKmErcippKSwxLTIqKGMrbCkpLHRbMl09TWF0aC5hdGFuMigyKihuKnIraSphKSwxLTIqKHMrYykpKSx0fWZ1bmN0aW9uIGdnKHQsZSl7dmFyIG4scixpPWZhKG1lKCksZSksYT0oMCxUZS5aKShpLDMpLG89YVswXSxzPWFbMV0sYz1hWzJdLGw9TWF0aC5hc2luKC1lWzJdL28pO3JldHVybiBsPEVmP2w+LUVmPyhuPU1hdGguYXRhbjIoZVs2XS9zLGVbMTBdL2MpLHI9TWF0aC5hdGFuMihlWzFdL28sZVswXS9vKSk6KHI9MCxuPS1NYXRoLmF0YW4yKGVbNF0vcyxlWzVdL3MpKToocj0wLG49TWF0aC5hdGFuMihlWzRdL3MsZVs1XS9zKSksdFswXT1uLHRbMV09bCx0WzJdPXIsdH1mdW5jdGlvbiBNZih0LGUpe3JldHVybiBlLmxlbmd0aD09PTE2P2dnKHQsZSk6T3godCxlKX1mdW5jdGlvbiB5Zyh0LGUsbixyLGkpe3ZhciBhPU1hdGguY29zKHQpLG89TWF0aC5zaW4odCk7cmV0dXJuIGtiKHIqYSxpKm8sMCwtcipvLGkqYSwwLGUsbiwxKX1mdW5jdGlvbiBTeCh0LGUsbixyLGksYSxvKXt2YXIgcz1hcmd1bWVudHMubGVuZ3RoPjcmJmFyZ3VtZW50c1s3XSE9PXZvaWQgMD9hcmd1bWVudHNbN106ITEsYz0yKmEsbD1uLWUsdT1yLWksZj1jL2wsZD1jL3UsaD0obitlKS9sLHY9KHIraSkvdSxnLHksYj1vLWEseD1vKmE7cmV0dXJuIHM/KGc9LW8vYix5PS14L2IpOihnPS0obythKS9iLHk9LTIqeC9iKSx0WzBdPWYsdFsxXT0wLHRbMl09MCx0WzNdPTAsdFs0XT0wLHRbNV09ZCx0WzZdPTAsdFs3XT0wLHRbOF09aCx0WzldPXYsdFsxMF09Zyx0WzExXT0tMSx0WzEyXT0wLHRbMTNdPTAsdFsxNF09eSx0WzE1XT0wLHR9ZnVuY3Rpb24gbWcodCl7dmFyIGU9dFswXSxuPXRbMV0scj10WzNdLGk9dFs0XSxhPU1hdGguc3FydChlKmUrbipuKSxvPU1hdGguc3FydChyKnIraSppKSxzPWUqaS1uKnI7aWYoczwwJiYoZTxpP2E9LWE6bz0tbyksYSl7dmFyIGM9MS9hO2UqPWMsbio9Y31pZihvKXt2YXIgbD0xL287cio9bCxpKj1sfXZhciB1PU1hdGguYXRhbjIobixlKSxmPVNhKHUpO3JldHVyblt0WzZdLHRbN10sYSxvLGZdfXZhciBzbz1XbigpLEVhPVduKCksVmw9R3QoKSxMZT1bbWUoKSxtZSgpLG1lKCldLGJnPW1lKCk7ZnVuY3Rpb24gRXgodCxlLG4scixpLGEpe2lmKCFNeChzbyx0KXx8KFRjKEVhLHNvKSxFYVszXT0wLEVhWzddPTAsRWFbMTFdPTAsRWFbMTVdPTEsTWF0aC5hYnMoJHUoRWEpKTwxZS04KSlyZXR1cm4hMTt2YXIgbz1zb1szXSxzPXNvWzddLGM9c29bMTFdLGw9c29bMTJdLHU9c29bMTNdLGY9c29bMTRdLGQ9c29bMTVdO2lmKG8hPT0wfHxzIT09MHx8YyE9PTApe1ZsWzBdPW8sVmxbMV09cyxWbFsyXT1jLFZsWzNdPWQ7dmFyIGg9JGkoRWEsRWEpO2lmKCFoKXJldHVybiExO1hkKEVhLEVhKSxSbyhpLFZsLEVhKX1lbHNlIGlbMF09aVsxXT1pWzJdPTAsaVszXT0xO2lmKGVbMF09bCxlWzFdPXUsZVsyXT1mLGt4KExlLHNvKSxuWzBdPXNhKExlWzBdKSx4YShMZVswXSxMZVswXSksclswXT1sYShMZVswXSxMZVsxXSksWGkoTGVbMV0sTGVbMV0sTGVbMF0sMSwtclswXSksblsxXT1zYShMZVsxXSkseGEoTGVbMV0sTGVbMV0pLHJbMF0vPW5bMV0sclsxXT1sYShMZVswXSxMZVsyXSksWGkoTGVbMl0sTGVbMl0sTGVbMF0sMSwtclsxXSksclsyXT1sYShMZVsxXSxMZVsyXSksWGkoTGVbMl0sTGVbMl0sTGVbMV0sMSwtclsyXSksblsyXT1zYShMZVsyXSkseGEoTGVbMl0sTGVbMl0pLHJbMV0vPW5bMl0sclsyXS89blsyXSxNYyhiZyxMZVsxXSxMZVsyXSksbGEoTGVbMF0sYmcpPDApZm9yKHZhciB2PTA7djwzO3YrKyluW3ZdKj0tMSxMZVt2XVswXSo9LTEsTGVbdl1bMV0qPS0xLExlW3ZdWzJdKj0tMTtyZXR1cm4gYVswXT0uNSpNYXRoLnNxcnQoTWF0aC5tYXgoMStMZVswXVswXS1MZVsxXVsxXS1MZVsyXVsyXSwwKSksYVsxXT0uNSpNYXRoLnNxcnQoTWF0aC5tYXgoMS1MZVswXVswXStMZVsxXVsxXS1MZVsyXVsyXSwwKSksYVsyXT0uNSpNYXRoLnNxcnQoTWF0aC5tYXgoMS1MZVswXVswXS1MZVsxXVsxXStMZVsyXVsyXSwwKSksYVszXT0uNSpNYXRoLnNxcnQoTWF0aC5tYXgoMStMZVswXVswXStMZVsxXVsxXStMZVsyXVsyXSwwKSksTGVbMl1bMV0+TGVbMV1bMl0mJihhWzBdPS1hWzBdKSxMZVswXVsyXT5MZVsyXVswXSYmKGFbMV09LWFbMV0pLExlWzFdWzBdPkxlWzBdWzFdJiYoYVsyXT0tYVsyXSksITB9ZnVuY3Rpb24gTXgodCxlKXt2YXIgbj1lWzE1XTtpZihuPT09MClyZXR1cm4hMTtmb3IodmFyIHI9MS9uLGk9MDtpPDE2O2krKyl0W2ldPWVbaV0qcjtyZXR1cm4hMH1mdW5jdGlvbiBreCh0LGUpe3RbMF1bMF09ZVswXSx0WzBdWzFdPWVbMV0sdFswXVsyXT1lWzJdLHRbMV1bMF09ZVs0XSx0WzFdWzFdPWVbNV0sdFsxXVsyXT1lWzZdLHRbMl1bMF09ZVs4XSx0WzJdWzFdPWVbOV0sdFsyXVsyXT1lWzEwXX1mdW5jdGlvbiBYaSh0LGUsbixyLGkpe3RbMF09ZVswXSpyK25bMF0qaSx0WzFdPWVbMV0qcituWzFdKmksdFsyXT1lWzJdKnIrblsyXSppfXZhciBMbj1mdW5jdGlvbih0KXtyZXR1cm4gdFt0Lk9SQklUSU5HPTBdPSJPUkJJVElORyIsdFt0LkVYUExPUklORz0xXT0iRVhQTE9SSU5HIix0W3QuVFJBQ0tJTkc9Ml09IlRSQUNLSU5HIix0fSh7fSksemg9ZnVuY3Rpb24odCl7cmV0dXJuIHRbdC5ERUZBVUxUPTBdPSJERUZBVUxUIix0W3QuUk9UQVRJT05BTD0xXT0iUk9UQVRJT05BTCIsdFt0LlRSQU5TTEFUSU9OQUw9Ml09IlRSQU5TTEFUSU9OQUwiLHRbdC5DSU5FTUFUSUM9M109IkNJTkVNQVRJQyIsdH0oe30pLE1hPWZ1bmN0aW9uKHQpe3JldHVybiB0W3QuT1JUSE9HUkFQSElDPTBdPSJPUlRIT0dSQVBISUMiLHRbdC5QRVJTUEVDVElWRT0xXT0iUEVSU1BFQ1RJVkUiLHR9KHt9KSxXaD17VVBEQVRFRDoidXBkYXRlZCJ9LHhnPTJlLTQsX2c9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7KDAseHQuWikodGhpcyx0KSx0aGlzLmNsaXBTcGFjZU5lYXJaPVpsLk5FR0FUSVZFX09ORSx0aGlzLmV2ZW50RW1pdHRlcj1uZXcgTG8sdGhpcy5tYXRyaXg9V24oKSx0aGlzLnJpZ2h0PXNuKDEsMCwwKSx0aGlzLnVwPXNuKDAsMSwwKSx0aGlzLmZvcndhcmQ9c24oMCwwLDEpLHRoaXMucG9zaXRpb249c24oMCwwLDEpLHRoaXMuZm9jYWxQb2ludD1zbigwLDAsMCksdGhpcy5kaXN0YW5jZVZlY3Rvcj1zbigwLDAsLTEpLHRoaXMuZGlzdGFuY2U9MSx0aGlzLmF6aW11dGg9MCx0aGlzLmVsZXZhdGlvbj0wLHRoaXMucm9sbD0wLHRoaXMucmVsQXppbXV0aD0wLHRoaXMucmVsRWxldmF0aW9uPTAsdGhpcy5yZWxSb2xsPTAsdGhpcy5kb2xseWluZ1N0ZXA9MCx0aGlzLm1heERpc3RhbmNlPTEvMCx0aGlzLm1pbkRpc3RhbmNlPS0xLzAsdGhpcy56b29tPTEsdGhpcy5yb3RhdGVXb3JsZD0hMSx0aGlzLmZvdj0zMCx0aGlzLm5lYXI9LjEsdGhpcy5mYXI9MWUzLHRoaXMuYXNwZWN0PTEsdGhpcy5wcm9qZWN0aW9uTWF0cml4PVduKCksdGhpcy5wcm9qZWN0aW9uTWF0cml4SW52ZXJzZT1XbigpLHRoaXMuaml0dGVyZWRQcm9qZWN0aW9uTWF0cml4PXZvaWQgMCx0aGlzLmVuYWJsZVVwZGF0ZT0hMCx0aGlzLnR5cGU9TG4uRVhQTE9SSU5HLHRoaXMudHJhY2tpbmdNb2RlPXpoLkRFRkFVTFQsdGhpcy5wcm9qZWN0aW9uTW9kZT1NYS5QRVJTUEVDVElWRSx0aGlzLmZydXN0dW09bmV3IHZnLHRoaXMub3J0aG9NYXRyaXg9V24oKX1yZXR1cm4oMCxPdC5aKSh0LFt7a2V5OiJpc09ydGhvIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnByb2plY3Rpb25Nb2RlPT09TWEuT1JUSE9HUkFQSElDfX0se2tleToiZ2V0UHJvamVjdGlvbk1vZGUiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHJvamVjdGlvbk1vZGV9fSx7a2V5OiJnZXRQZXJzcGVjdGl2ZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5qaXR0ZXJlZFByb2plY3Rpb25NYXRyaXh8fHRoaXMucHJvamVjdGlvbk1hdHJpeH19LHtrZXk6ImdldFBlcnNwZWN0aXZlSW52ZXJzZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wcm9qZWN0aW9uTWF0cml4SW52ZXJzZX19LHtrZXk6ImdldEZydXN0dW0iLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZnJ1c3R1bX19LHtrZXk6ImdldFBvc2l0aW9uIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBvc2l0aW9ufX0se2tleToiZ2V0Rm9jYWxQb2ludCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5mb2NhbFBvaW50fX0se2tleToiZ2V0RG9sbHlpbmdTdGVwIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRvbGx5aW5nU3RlcH19LHtrZXk6ImdldE5lYXIiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmVhcn19LHtrZXk6ImdldEZhciIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5mYXJ9fSx7a2V5OiJnZXRab29tIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnpvb219fSx7a2V5OiJnZXRPcnRob01hdHJpeCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vcnRob01hdHJpeH19LHtrZXk6ImdldFZpZXciLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmlld319LHtrZXk6InNldEVuYWJsZVVwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24obil7dGhpcy5lbmFibGVVcGRhdGU9bn19LHtrZXk6InNldFR5cGUiLHZhbHVlOmZ1bmN0aW9uKG4scil7cmV0dXJuIHRoaXMudHlwZT1uLHRoaXMudHlwZT09PUxuLkVYUExPUklORz90aGlzLnNldFdvcmxkUm90YXRpb24oITApOnRoaXMuc2V0V29ybGRSb3RhdGlvbighMSksdGhpcy5fZ2V0QW5nbGVzKCksdGhpcy50eXBlPT09TG4uVFJBQ0tJTkcmJnIhPT12b2lkIDAmJnRoaXMuc2V0VHJhY2tpbmdNb2RlKHIpLHRoaXN9fSx7a2V5OiJzZXRQcm9qZWN0aW9uTW9kZSIsdmFsdWU6ZnVuY3Rpb24obil7cmV0dXJuIHRoaXMucHJvamVjdGlvbk1vZGU9bix0aGlzfX0se2tleToic2V0VHJhY2tpbmdNb2RlIix2YWx1ZTpmdW5jdGlvbihuKXtpZih0aGlzLnR5cGUhPT1Mbi5UUkFDS0lORyl0aHJvdyBuZXcgRXJyb3IoIkltcG9zc2libGUgdG8gc2V0IGEgdHJhY2tpbmcgbW9kZSBpZiB0aGUgY2FtZXJhIGlzIG5vdCBvZiB0cmFja2luZyB0eXBlIik7cmV0dXJuIHRoaXMudHJhY2tpbmdNb2RlPW4sdGhpc319LHtrZXk6InNldFdvcmxkUm90YXRpb24iLHZhbHVlOmZ1bmN0aW9uKG4pe3JldHVybiB0aGlzLnJvdGF0ZVdvcmxkPW4sdGhpcy5fZ2V0QW5nbGVzKCksdGhpc319LHtrZXk6ImdldFZpZXdUcmFuc2Zvcm0iLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuICRpKFduKCksdGhpcy5tYXRyaXgpfX0se2tleToiZ2V0V29ybGRUcmFuc2Zvcm0iLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWF0cml4fX0se2tleToiaml0dGVyUHJvamVjdGlvbk1hdHJpeCIsdmFsdWU6ZnVuY3Rpb24obixyKXt2YXIgaT1McihXbigpLFtuLHIsMF0pO3RoaXMuaml0dGVyZWRQcm9qZWN0aW9uTWF0cml4PUduKFduKCksaSx0aGlzLnByb2plY3Rpb25NYXRyaXgpfX0se2tleToiY2xlYXJKaXR0ZXJQcm9qZWN0aW9uTWF0cml4Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuaml0dGVyZWRQcm9qZWN0aW9uTWF0cml4PXZvaWQgMH19LHtrZXk6InNldE1hdHJpeCIsdmFsdWU6ZnVuY3Rpb24obil7cmV0dXJuIHRoaXMubWF0cml4PW4sdGhpcy5fdXBkYXRlKCksdGhpc319LHtrZXk6InNldFByb2plY3Rpb25NYXRyaXgiLHZhbHVlOmZ1bmN0aW9uKG4pe3RoaXMucHJvamVjdGlvbk1hdHJpeD1ufX0se2tleToic2V0Rm92Iix2YWx1ZTpmdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5zZXRQZXJzcGVjdGl2ZSh0aGlzLm5lYXIsdGhpcy5mYXIsbix0aGlzLmFzcGVjdCksdGhpc319LHtrZXk6InNldEFzcGVjdCIsdmFsdWU6ZnVuY3Rpb24obil7cmV0dXJuIHRoaXMuc2V0UGVyc3BlY3RpdmUodGhpcy5uZWFyLHRoaXMuZmFyLHRoaXMuZm92LG4pLHRoaXN9fSx7a2V5OiJzZXROZWFyIix2YWx1ZTpmdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5wcm9qZWN0aW9uTW9kZT09PU1hLlBFUlNQRUNUSVZFP3RoaXMuc2V0UGVyc3BlY3RpdmUobix0aGlzLmZhcix0aGlzLmZvdix0aGlzLmFzcGVjdCk6dGhpcy5zZXRPcnRob2dyYXBoaWModGhpcy5sZWZ0LHRoaXMucnJpZ2h0LHRoaXMudG9wLHRoaXMuYm90dG9tLG4sdGhpcy5mYXIpLHRoaXN9fSx7a2V5OiJzZXRGYXIiLHZhbHVlOmZ1bmN0aW9uKG4pe3JldHVybiB0aGlzLnByb2plY3Rpb25Nb2RlPT09TWEuUEVSU1BFQ1RJVkU/dGhpcy5zZXRQZXJzcGVjdGl2ZSh0aGlzLm5lYXIsbix0aGlzLmZvdix0aGlzLmFzcGVjdCk6dGhpcy5zZXRPcnRob2dyYXBoaWModGhpcy5sZWZ0LHRoaXMucnJpZ2h0LHRoaXMudG9wLHRoaXMuYm90dG9tLHRoaXMubmVhcixuKSx0aGlzfX0se2tleToic2V0Vmlld09mZnNldCIsdmFsdWU6ZnVuY3Rpb24obixyLGksYSxvLHMpe3JldHVybiB0aGlzLmFzcGVjdD1uL3IsdGhpcy52aWV3PT09dm9pZCAwJiYodGhpcy52aWV3PXtlbmFibGVkOiEwLGZ1bGxXaWR0aDoxLGZ1bGxIZWlnaHQ6MSxvZmZzZXRYOjAsb2Zmc2V0WTowLHdpZHRoOjEsaGVpZ2h0OjF9KSx0aGlzLnZpZXcuZW5hYmxlZD0hMCx0aGlzLnZpZXcuZnVsbFdpZHRoPW4sdGhpcy52aWV3LmZ1bGxIZWlnaHQ9cix0aGlzLnZpZXcub2Zmc2V0WD1pLHRoaXMudmlldy5vZmZzZXRZPWEsdGhpcy52aWV3LndpZHRoPW8sdGhpcy52aWV3LmhlaWdodD1zLHRoaXMucHJvamVjdGlvbk1vZGU9PT1NYS5QRVJTUEVDVElWRT90aGlzLnNldFBlcnNwZWN0aXZlKHRoaXMubmVhcix0aGlzLmZhcix0aGlzLmZvdix0aGlzLmFzcGVjdCk6dGhpcy5zZXRPcnRob2dyYXBoaWModGhpcy5sZWZ0LHRoaXMucnJpZ2h0LHRoaXMudG9wLHRoaXMuYm90dG9tLHRoaXMubmVhcix0aGlzLmZhciksdGhpc319LHtrZXk6ImNsZWFyVmlld09mZnNldCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52aWV3IT09dm9pZCAwJiYodGhpcy52aWV3LmVuYWJsZWQ9ITEpLHRoaXMucHJvamVjdGlvbk1vZGU9PT1NYS5QRVJTUEVDVElWRT90aGlzLnNldFBlcnNwZWN0aXZlKHRoaXMubmVhcix0aGlzLmZhcix0aGlzLmZvdix0aGlzLmFzcGVjdCk6dGhpcy5zZXRPcnRob2dyYXBoaWModGhpcy5sZWZ0LHRoaXMucnJpZ2h0LHRoaXMudG9wLHRoaXMuYm90dG9tLHRoaXMubmVhcix0aGlzLmZhciksdGhpc319LHtrZXk6InNldFpvb20iLHZhbHVlOmZ1bmN0aW9uKG4pe3JldHVybiB0aGlzLnpvb209bix0aGlzLnByb2plY3Rpb25Nb2RlPT09TWEuT1JUSE9HUkFQSElDP3RoaXMuc2V0T3J0aG9ncmFwaGljKHRoaXMubGVmdCx0aGlzLnJyaWdodCx0aGlzLnRvcCx0aGlzLmJvdHRvbSx0aGlzLm5lYXIsdGhpcy5mYXIpOnRoaXMucHJvamVjdGlvbk1vZGU9PT1NYS5QRVJTUEVDVElWRSYmdGhpcy5zZXRQZXJzcGVjdGl2ZSh0aGlzLm5lYXIsdGhpcy5mYXIsdGhpcy5mb3YsdGhpcy5hc3BlY3QpLHRoaXN9fSx7a2V5OiJzZXRab29tQnlWaWV3cG9ydFBvaW50Iix2YWx1ZTpmdW5jdGlvbihuLHIpe3ZhciBpPXRoaXMuY2FudmFzLnZpZXdwb3J0MkNhbnZhcyh7eDpyWzBdLHk6clsxXX0pLGE9aS54LG89aS55LHM9dGhpcy5yb2xsO3RoaXMucm90YXRlKDAsMCwtcyksdGhpcy5zZXRQb3NpdGlvbihhLG8pLHRoaXMuc2V0Rm9jYWxQb2ludChhLG8pLHRoaXMuc2V0Wm9vbShuKSx0aGlzLnJvdGF0ZSgwLDAscyk7dmFyIGM9dGhpcy5jYW52YXMudmlld3BvcnQyQ2FudmFzKHt4OnJbMF0seTpyWzFdfSksbD1jLngsdT1jLnksZj1zbihsLWEsdS1vLDApLGQ9bGEoZix0aGlzLnJpZ2h0KS9zYSh0aGlzLnJpZ2h0KSxoPWxhKGYsdGhpcy51cCkvc2EodGhpcy51cCksdj10aGlzLmdldFBvc2l0aW9uKCksZz0oMCxUZS5aKSh2LDIpLHk9Z1swXSxiPWdbMV0seD10aGlzLmdldEZvY2FsUG9pbnQoKSxfPSgwLFRlLlopKHgsMiksdz1fWzBdLE89X1sxXTtyZXR1cm4gdGhpcy5zZXRQb3NpdGlvbih5LWQsYi1oKSx0aGlzLnNldEZvY2FsUG9pbnQody1kLE8taCksdGhpc319LHtrZXk6InNldFBlcnNwZWN0aXZlIix2YWx1ZTpmdW5jdGlvbihuLHIsaSxhKXt2YXIgbzt0aGlzLnByb2plY3Rpb25Nb2RlPU1hLlBFUlNQRUNUSVZFLHRoaXMuZm92PWksdGhpcy5uZWFyPW4sdGhpcy5mYXI9cix0aGlzLmFzcGVjdD1hO3ZhciBzPXRoaXMubmVhcipNYXRoLnRhbihDbiguNSp0aGlzLmZvdikpL3RoaXMuem9vbSxjPTIqcyxsPXRoaXMuYXNwZWN0KmMsdT0tLjUqbDtpZigobz10aGlzLnZpZXcpIT09bnVsbCYmbyE9PXZvaWQgMCYmby5lbmFibGVkKXt2YXIgZj10aGlzLnZpZXcuZnVsbFdpZHRoLGQ9dGhpcy52aWV3LmZ1bGxIZWlnaHQ7dSs9dGhpcy52aWV3Lm9mZnNldFgqbC9mLHMtPXRoaXMudmlldy5vZmZzZXRZKmMvZCxsKj10aGlzLnZpZXcud2lkdGgvZixjKj10aGlzLnZpZXcuaGVpZ2h0L2R9cmV0dXJuIFN4KHRoaXMucHJvamVjdGlvbk1hdHJpeCx1LHUrbCxzLWMscyxuLHRoaXMuZmFyLHRoaXMuY2xpcFNwYWNlTmVhclo9PT1abC5aRVJPKSwkaSh0aGlzLnByb2plY3Rpb25NYXRyaXhJbnZlcnNlLHRoaXMucHJvamVjdGlvbk1hdHJpeCksdGhpcy50cmlnZ2VyVXBkYXRlKCksdGhpc319LHtrZXk6InNldE9ydGhvZ3JhcGhpYyIsdmFsdWU6ZnVuY3Rpb24obixyLGksYSxvLHMpe3ZhciBjO3RoaXMucHJvamVjdGlvbk1vZGU9TWEuT1JUSE9HUkFQSElDLHRoaXMucnJpZ2h0PXIsdGhpcy5sZWZ0PW4sdGhpcy50b3A9aSx0aGlzLmJvdHRvbT1hLHRoaXMubmVhcj1vLHRoaXMuZmFyPXM7dmFyIGw9KHRoaXMucnJpZ2h0LXRoaXMubGVmdCkvKDIqdGhpcy56b29tKSx1PSh0aGlzLnRvcC10aGlzLmJvdHRvbSkvKDIqdGhpcy56b29tKSxmPSh0aGlzLnJyaWdodCt0aGlzLmxlZnQpLzIsZD0odGhpcy50b3ArdGhpcy5ib3R0b20pLzIsaD1mLWwsdj1mK2wsZz1kK3UseT1kLXU7aWYoKGM9dGhpcy52aWV3KSE9PW51bGwmJmMhPT12b2lkIDAmJmMuZW5hYmxlZCl7dmFyIGI9KHRoaXMucnJpZ2h0LXRoaXMubGVmdCkvdGhpcy52aWV3LmZ1bGxXaWR0aC90aGlzLnpvb20seD0odGhpcy50b3AtdGhpcy5ib3R0b20pL3RoaXMudmlldy5mdWxsSGVpZ2h0L3RoaXMuem9vbTtoKz1iKnRoaXMudmlldy5vZmZzZXRYLHY9aCtiKnRoaXMudmlldy53aWR0aCxnLT14KnRoaXMudmlldy5vZmZzZXRZLHk9Zy14KnRoaXMudmlldy5oZWlnaHR9cmV0dXJuIHRoaXMuY2xpcFNwYWNlTmVhclo9PT1abC5ORUdBVElWRV9PTkU/ZWgodGhpcy5wcm9qZWN0aW9uTWF0cml4LGgsdixnLHksbyxzKTpuaCh0aGlzLnByb2plY3Rpb25NYXRyaXgsaCx2LGcseSxvLHMpLCRpKHRoaXMucHJvamVjdGlvbk1hdHJpeEludmVyc2UsdGhpcy5wcm9qZWN0aW9uTWF0cml4KSx0aGlzLl9nZXRPcnRob01hdHJpeCgpLHRoaXMudHJpZ2dlclVwZGF0ZSgpLHRoaXN9fSx7a2V5OiJzZXRQb3NpdGlvbiIsdmFsdWU6ZnVuY3Rpb24obil7dmFyIHI9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOnRoaXMucG9zaXRpb25bMV0saT1hcmd1bWVudHMubGVuZ3RoPjImJmFyZ3VtZW50c1syXSE9PXZvaWQgMD9hcmd1bWVudHNbMl06dGhpcy5wb3NpdGlvblsyXSxhPVBpKG4scixpKTtyZXR1cm4gdGhpcy5fc2V0UG9zaXRpb24oYSksdGhpcy5zZXRGb2NhbFBvaW50KHRoaXMuZm9jYWxQb2ludCksdGhpcy50cmlnZ2VyVXBkYXRlKCksdGhpc319LHtrZXk6InNldEZvY2FsUG9pbnQiLHZhbHVlOmZ1bmN0aW9uKG4pe3ZhciByPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTp0aGlzLmZvY2FsUG9pbnRbMV0saT1hcmd1bWVudHMubGVuZ3RoPjImJmFyZ3VtZW50c1syXSE9PXZvaWQgMD9hcmd1bWVudHNbMl06dGhpcy5mb2NhbFBvaW50WzJdLGE9c24oMCwxLDApO2lmKHRoaXMuZm9jYWxQb2ludD1QaShuLHIsaSksdGhpcy50cmFja2luZ01vZGU9PT16aC5DSU5FTUFUSUMpe3ZhciBvPU9sKG1lKCksdGhpcy5mb2NhbFBvaW50LHRoaXMucG9zaXRpb24pO249b1swXSxyPW9bMV0saT1vWzJdO3ZhciBzPXNhKG8pLGM9U2EoTWF0aC5hc2luKHIvcykpLGw9OTArU2EoTWF0aC5hdGFuMihpLG4pKSx1PVduKCk7S2QodSx1LENuKGwpKSxxZCh1LHUsQ24oYykpLGE9ZXIobWUoKSxbMCwxLDBdLHUpfXJldHVybiAkaSh0aGlzLm1hdHJpeCxZdShXbigpLHRoaXMucG9zaXRpb24sdGhpcy5mb2NhbFBvaW50LGEpKSx0aGlzLl9nZXRBeGVzKCksdGhpcy5fZ2V0RGlzdGFuY2UoKSx0aGlzLl9nZXRBbmdsZXMoKSx0aGlzLnRyaWdnZXJVcGRhdGUoKSx0aGlzfX0se2tleToiZ2V0RGlzdGFuY2UiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGlzdGFuY2V9fSx7a2V5OiJnZXREaXN0YW5jZVZlY3RvciIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kaXN0YW5jZVZlY3Rvcn19LHtrZXk6InNldERpc3RhbmNlIix2YWx1ZTpmdW5jdGlvbihuKXtpZih0aGlzLmRpc3RhbmNlPT09bnx8bjwwKXJldHVybiB0aGlzO3RoaXMuZGlzdGFuY2U9bix0aGlzLmRpc3RhbmNlPHhnJiYodGhpcy5kaXN0YW5jZT14ZyksdGhpcy5kb2xseWluZ1N0ZXA9dGhpcy5kaXN0YW5jZS8xMDA7dmFyIHI9bWUoKTtuPXRoaXMuZGlzdGFuY2U7dmFyIGk9dGhpcy5mb3J3YXJkLGE9dGhpcy5mb2NhbFBvaW50O3JldHVybiByWzBdPW4qaVswXSthWzBdLHJbMV09bippWzFdK2FbMV0sclsyXT1uKmlbMl0rYVsyXSx0aGlzLl9zZXRQb3NpdGlvbihyKSx0aGlzLnRyaWdnZXJVcGRhdGUoKSx0aGlzfX0se2tleToic2V0TWF4RGlzdGFuY2UiLHZhbHVlOmZ1bmN0aW9uKG4pe3JldHVybiB0aGlzLm1heERpc3RhbmNlPW4sdGhpc319LHtrZXk6InNldE1pbkRpc3RhbmNlIix2YWx1ZTpmdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5taW5EaXN0YW5jZT1uLHRoaXN9fSx7a2V5OiJzZXRBemltdXRoIix2YWx1ZTpmdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5hemltdXRoPVpjKG4pLHRoaXMuY29tcHV0ZU1hdHJpeCgpLHRoaXMuX2dldEF4ZXMoKSx0aGlzLnR5cGU9PT1Mbi5PUkJJVElOR3x8dGhpcy50eXBlPT09TG4uRVhQTE9SSU5HP3RoaXMuX2dldFBvc2l0aW9uKCk6dGhpcy50eXBlPT09TG4uVFJBQ0tJTkcmJnRoaXMuX2dldEZvY2FsUG9pbnQoKSx0aGlzLnRyaWdnZXJVcGRhdGUoKSx0aGlzfX0se2tleToiZ2V0QXppbXV0aCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hemltdXRofX0se2tleToic2V0RWxldmF0aW9uIix2YWx1ZTpmdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5lbGV2YXRpb249WmMobiksdGhpcy5jb21wdXRlTWF0cml4KCksdGhpcy5fZ2V0QXhlcygpLHRoaXMudHlwZT09PUxuLk9SQklUSU5HfHx0aGlzLnR5cGU9PT1Mbi5FWFBMT1JJTkc/dGhpcy5fZ2V0UG9zaXRpb24oKTp0aGlzLnR5cGU9PT1Mbi5UUkFDS0lORyYmdGhpcy5fZ2V0Rm9jYWxQb2ludCgpLHRoaXMudHJpZ2dlclVwZGF0ZSgpLHRoaXN9fSx7a2V5OiJnZXRFbGV2YXRpb24iLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWxldmF0aW9ufX0se2tleToic2V0Um9sbCIsdmFsdWU6ZnVuY3Rpb24obil7cmV0dXJuIHRoaXMucm9sbD1aYyhuKSx0aGlzLmNvbXB1dGVNYXRyaXgoKSx0aGlzLl9nZXRBeGVzKCksdGhpcy50eXBlPT09TG4uT1JCSVRJTkd8fHRoaXMudHlwZT09PUxuLkVYUExPUklORz90aGlzLl9nZXRQb3NpdGlvbigpOnRoaXMudHlwZT09PUxuLlRSQUNLSU5HJiZ0aGlzLl9nZXRGb2NhbFBvaW50KCksdGhpcy50cmlnZ2VyVXBkYXRlKCksdGhpc319LHtrZXk6ImdldFJvbGwiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucm9sbH19LHtrZXk6Il91cGRhdGUiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5fZ2V0QXhlcygpLHRoaXMuX2dldFBvc2l0aW9uKCksdGhpcy5fZ2V0RGlzdGFuY2UoKSx0aGlzLl9nZXRBbmdsZXMoKSx0aGlzLl9nZXRPcnRob01hdHJpeCgpLHRoaXMudHJpZ2dlclVwZGF0ZSgpfX0se2tleToiY29tcHV0ZU1hdHJpeCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgbj1xbyhqZSgpLFswLDAsMV0sQ24odGhpcy5yb2xsKSk7bHIodGhpcy5tYXRyaXgpO3ZhciByPXFvKGplKCksWzEsMCwwXSxDbigodGhpcy5yb3RhdGVXb3JsZCYmdGhpcy50eXBlIT09TG4uVFJBQ0tJTkd8fHRoaXMudHlwZT09PUxuLlRSQUNLSU5HPzE6LTEpKnRoaXMuZWxldmF0aW9uKSksaT1xbyhqZSgpLFswLDEsMF0sQ24oKHRoaXMucm90YXRlV29ybGQmJnRoaXMudHlwZSE9PUxuLlRSQUNLSU5HfHx0aGlzLnR5cGU9PT1Mbi5UUkFDS0lORz8xOi0xKSp0aGlzLmF6aW11dGgpKSxhPUtvKGplKCksaSxyKTthPUtvKGplKCksYSxuKTt2YXIgbz10aChXbigpLGEpO3RoaXMudHlwZT09PUxuLk9SQklUSU5HfHx0aGlzLnR5cGU9PT1Mbi5FWFBMT1JJTkc/KE5zKHRoaXMubWF0cml4LHRoaXMubWF0cml4LHRoaXMuZm9jYWxQb2ludCksR24odGhpcy5tYXRyaXgsdGhpcy5tYXRyaXgsbyksTnModGhpcy5tYXRyaXgsdGhpcy5tYXRyaXgsWzAsMCx0aGlzLmRpc3RhbmNlXSkpOnRoaXMudHlwZT09PUxuLlRSQUNLSU5HJiYoTnModGhpcy5tYXRyaXgsdGhpcy5tYXRyaXgsdGhpcy5wb3NpdGlvbiksR24odGhpcy5tYXRyaXgsdGhpcy5tYXRyaXgsbykpfX0se2tleToiX3NldFBvc2l0aW9uIix2YWx1ZTpmdW5jdGlvbihuLHIsaSl7dGhpcy5wb3NpdGlvbj1QaShuLHIsaSk7dmFyIGE9dGhpcy5tYXRyaXg7YVsxMl09dGhpcy5wb3NpdGlvblswXSxhWzEzXT10aGlzLnBvc2l0aW9uWzFdLGFbMTRdPXRoaXMucG9zaXRpb25bMl0sYVsxNV09MSx0aGlzLl9nZXRPcnRob01hdHJpeCgpfX0se2tleToiX2dldEF4ZXMiLHZhbHVlOmZ1bmN0aW9uKCl7Y2EodGhpcy5yaWdodCxQaShSbyhHdCgpLFsxLDAsMCwwXSx0aGlzLm1hdHJpeCkpKSxjYSh0aGlzLnVwLFBpKFJvKEd0KCksWzAsMSwwLDBdLHRoaXMubWF0cml4KSkpLGNhKHRoaXMuZm9yd2FyZCxQaShSbyhHdCgpLFswLDAsMSwwXSx0aGlzLm1hdHJpeCkpKSx4YSh0aGlzLnJpZ2h0LHRoaXMucmlnaHQpLHhhKHRoaXMudXAsdGhpcy51cCkseGEodGhpcy5mb3J3YXJkLHRoaXMuZm9yd2FyZCl9fSx7a2V5OiJfZ2V0QW5nbGVzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBuPXRoaXMuZGlzdGFuY2VWZWN0b3JbMF0scj10aGlzLmRpc3RhbmNlVmVjdG9yWzFdLGk9dGhpcy5kaXN0YW5jZVZlY3RvclsyXSxhPXNhKHRoaXMuZGlzdGFuY2VWZWN0b3IpO2lmKGE9PT0wKXt0aGlzLmVsZXZhdGlvbj0wLHRoaXMuYXppbXV0aD0wO3JldHVybn10aGlzLnR5cGU9PT1Mbi5UUkFDS0lORz8odGhpcy5lbGV2YXRpb249U2EoTWF0aC5hc2luKHIvYSkpLHRoaXMuYXppbXV0aD1TYShNYXRoLmF0YW4yKC1uLC1pKSkpOnRoaXMucm90YXRlV29ybGQ/KHRoaXMuZWxldmF0aW9uPVNhKE1hdGguYXNpbihyL2EpKSx0aGlzLmF6aW11dGg9U2EoTWF0aC5hdGFuMigtbiwtaSkpKToodGhpcy5lbGV2YXRpb249LVNhKE1hdGguYXNpbihyL2EpKSx0aGlzLmF6aW11dGg9LVNhKE1hdGguYXRhbjIoLW4sLWkpKSl9fSx7a2V5OiJfZ2V0UG9zaXRpb24iLHZhbHVlOmZ1bmN0aW9uKCl7Y2EodGhpcy5wb3NpdGlvbixQaShSbyhHdCgpLFswLDAsMCwxXSx0aGlzLm1hdHJpeCkpKSx0aGlzLl9nZXREaXN0YW5jZSgpfX0se2tleToiX2dldEZvY2FsUG9pbnQiLHZhbHVlOmZ1bmN0aW9uKCl7WmQodGhpcy5kaXN0YW5jZVZlY3RvcixbMCwwLC10aGlzLmRpc3RhbmNlXSxNYihvaCgpLHRoaXMubWF0cml4KSksTmEodGhpcy5mb2NhbFBvaW50LHRoaXMucG9zaXRpb24sdGhpcy5kaXN0YW5jZVZlY3RvciksdGhpcy5fZ2V0RGlzdGFuY2UoKX19LHtrZXk6Il9nZXREaXN0YW5jZSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmRpc3RhbmNlVmVjdG9yPU9sKG1lKCksdGhpcy5mb2NhbFBvaW50LHRoaXMucG9zaXRpb24pLHRoaXMuZGlzdGFuY2U9c2EodGhpcy5kaXN0YW5jZVZlY3RvciksdGhpcy5kb2xseWluZ1N0ZXA9dGhpcy5kaXN0YW5jZS8xMDB9fSx7a2V5OiJfZ2V0T3J0aG9NYXRyaXgiLHZhbHVlOmZ1bmN0aW9uKCl7aWYodGhpcy5wcm9qZWN0aW9uTW9kZT09PU1hLk9SVEhPR1JBUEhJQyl7dmFyIG49dGhpcy5wb3NpdGlvbixyPXFvKGplKCksWzAsMCwxXSwtdGhpcy5yb2xsKk1hdGguUEkvMTgwKTtEcyh0aGlzLm9ydGhvTWF0cml4LHIsc24oKHRoaXMucnJpZ2h0LXRoaXMubGVmdCkvMi1uWzBdLCh0aGlzLnRvcC10aGlzLmJvdHRvbSkvMi1uWzFdLDApLHNuKHRoaXMuem9vbSx0aGlzLnpvb20sMSksbil9fX0se2tleToidHJpZ2dlclVwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24oKXtpZih0aGlzLmVuYWJsZVVwZGF0ZSl7dmFyIG49dGhpcy5nZXRWaWV3VHJhbnNmb3JtKCkscj1HbihXbigpLHRoaXMuZ2V0UGVyc3BlY3RpdmUoKSxuKTt0aGlzLmdldEZydXN0dW0oKS5leHRyYWN0RnJvbVZQTWF0cml4KHIpLHRoaXMuZXZlbnRFbWl0dGVyLmVtaXQoV2guVVBEQVRFRCl9fX0se2tleToicm90YXRlIix2YWx1ZTpmdW5jdGlvbihuLHIsaSl7dGhyb3cgbmV3IEVycm9yKGtuKX19LHtrZXk6InBhbiIsdmFsdWU6ZnVuY3Rpb24obixyKXt0aHJvdyBuZXcgRXJyb3Ioa24pfX0se2tleToiZG9sbHkiLHZhbHVlOmZ1bmN0aW9uKG4pe3Rocm93IG5ldyBFcnJvcihrbil9fSx7a2V5OiJjcmVhdGVMYW5kbWFyayIsdmFsdWU6ZnVuY3Rpb24obixyKXt0aHJvdyBuZXcgRXJyb3Ioa24pfX0se2tleToiZ290b0xhbmRtYXJrIix2YWx1ZTpmdW5jdGlvbihuLHIpe3Rocm93IG5ldyBFcnJvcihrbil9fSx7a2V5OiJjYW5jZWxMYW5kbWFya0FuaW1hdGlvbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3Ioa24pfX1dKX0oKSxBeD1mdW5jdGlvbih0KXtyZXR1cm4gdFt0LlN0YW5kYXJkPTBdPSJTdGFuZGFyZCIsdH0oe30pLGtmPWZ1bmN0aW9uKHQpe3JldHVybiB0W3QuQURERUQ9MF09IkFEREVEIix0W3QuUkVNT1ZFRD0xXT0iUkVNT1ZFRCIsdFt0LlpfSU5ERVhfQ0hBTkdFRD0yXT0iWl9JTkRFWF9DSEFOR0VEIix0fSh7fSksQWY9e2Fic29sdXRlUGF0aDpbXSxoYXNBcmM6ITEsc2VnbWVudHM6W10scG9seWdvbnM6W10scG9seWxpbmVzOltdLGN1cnZlOm51bGwsdG90YWxMZW5ndGg6MCxyZWN0Om5ldyBGbygwLDAsMCwwKX0senQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQuQ09PUkRJTkFURT0iPGNvb3JkaW5hdGU+Iix0LkNPTE9SPSI8Y29sb3I+Iix0LlBBSU5UPSI8cGFpbnQ+Iix0Lk5VTUJFUj0iPG51bWJlcj4iLHQuQU5HTEU9IjxhbmdsZT4iLHQuT1BBQ0lUWV9WQUxVRT0iPG9wYWNpdHktdmFsdWU+Iix0LlNIQURPV19CTFVSPSI8c2hhZG93LWJsdXI+Iix0LkxFTkdUSD0iPGxlbmd0aD4iLHQuUEVSQ0VOVEFHRT0iPHBlcmNlbnRhZ2U+Iix0LkxFTkdUSF9QRVJDRU5UQUdFPSI8bGVuZ3RoPiB8IDxwZXJjZW50YWdlPiIsdC5MRU5HVEhfUEVSQ0VOVEFHRV8xMj0iWzxsZW5ndGg+IHwgPHBlcmNlbnRhZ2U+XXsxLDJ9Iix0LkxFTkdUSF9QRVJDRU5UQUdFXzE0PSJbPGxlbmd0aD4gfCA8cGVyY2VudGFnZT5dezEsNH0iLHQuTElTVF9PRl9QT0lOVFM9IjxsaXN0LW9mLXBvaW50cz4iLHQuUEFUSD0iPHBhdGg+Iix0LkZJTFRFUj0iPGZpbHRlcj4iLHQuWl9JTkRFWD0iPHotaW5kZXg+Iix0Lk9GRlNFVF9ESVNUQU5DRT0iPG9mZnNldC1kaXN0YW5jZT4iLHQuREVGSU5FRF9QQVRIPSI8ZGVmaW5lZC1wYXRoPiIsdC5NQVJLRVI9IjxtYXJrZXI+Iix0LlRSQU5TRk9STT0iPHRyYW5zZm9ybT4iLHQuVFJBTlNGT1JNX09SSUdJTj0iPHRyYW5zZm9ybS1vcmlnaW4+Iix0LlRFWFQ9Ijx0ZXh0PiIsdC5URVhUX1RSQU5TRk9STT0iPHRleHQtdHJhbnNmb3JtPiIsdH0oe30pO2Z1bmN0aW9uIEdoKHQsZSxuKXt0LnByb3RvdHlwZT1lLnByb3RvdHlwZT1uLG4uY29uc3RydWN0b3I9dH1mdW5jdGlvbiB3Zyh0LGUpe3ZhciBuPU9iamVjdC5jcmVhdGUodC5wcm90b3R5cGUpO2Zvcih2YXIgciBpbiBlKW5bcl09ZVtyXTtyZXR1cm4gbn1mdW5jdGlvbiBYbCgpe312YXIgVWw9LjcsVGY9MS9VbCxZYz0iXFxzKihbKy1dP1xcZCspXFxzKiIscWw9IlxccyooWystXT8oPzpcXGQqXFwuKT9cXGQrKD86W2VFXVsrLV0/XFxkKyk/KVxccyoiLGNvPSJcXHMqKFsrLV0/KD86XFxkKlxcLik/XFxkKyg/OltlRV1bKy1dP1xcZCspPyklXFxzKiIsVHg9L14jKFswLTlhLWZdezMsOH0pJC8sUHg9bmV3IFJlZ0V4cChgXnJnYlxcKCR7WWN9LCR7WWN9LCR7WWN9XFwpJGApLEN4PW5ldyBSZWdFeHAoYF5yZ2JcXCgke2NvfSwke2NvfSwke2NvfVxcKSRgKSxMeD1uZXcgUmVnRXhwKGBecmdiYVxcKCR7WWN9LCR7WWN9LCR7WWN9LCR7cWx9XFwpJGApLFJ4PW5ldyBSZWdFeHAoYF5yZ2JhXFwoJHtjb30sJHtjb30sJHtjb30sJHtxbH1cXCkkYCksTng9bmV3IFJlZ0V4cChgXmhzbFxcKCR7cWx9LCR7Y299LCR7Y299XFwpJGApLEl4PW5ldyBSZWdFeHAoYF5oc2xhXFwoJHtxbH0sJHtjb30sJHtjb30sJHtxbH1cXCkkYCksT2c9e2FsaWNlYmx1ZToxNTc5MjM4MyxhbnRpcXVld2hpdGU6MTY0NDQzNzUsYXF1YTo2NTUzNSxhcXVhbWFyaW5lOjgzODg1NjQsYXp1cmU6MTU3OTQxNzUsYmVpZ2U6MTYxMTkyNjAsYmlzcXVlOjE2NzcwMjQ0LGJsYWNrOjAsYmxhbmNoZWRhbG1vbmQ6MTY3NzIwNDUsYmx1ZToyNTUsYmx1ZXZpb2xldDo5MDU1MjAyLGJyb3duOjEwODI0MjM0LGJ1cmx5d29vZDoxNDU5NjIzMSxjYWRldGJsdWU6NjI2NjUyOCxjaGFydHJldXNlOjgzODgzNTIsY2hvY29sYXRlOjEzNzg5NDcwLGNvcmFsOjE2NzQ0MjcyLGNvcm5mbG93ZXJibHVlOjY1OTE5ODEsY29ybnNpbGs6MTY3NzUzODgsY3JpbXNvbjoxNDQyMzEwMCxjeWFuOjY1NTM1LGRhcmtibHVlOjEzOSxkYXJrY3lhbjozNTcyMyxkYXJrZ29sZGVucm9kOjEyMDkyOTM5LGRhcmtncmF5OjExMTE5MDE3LGRhcmtncmVlbjoyNTYwMCxkYXJrZ3JleToxMTExOTAxNyxkYXJra2hha2k6MTI0MzMyNTksZGFya21hZ2VudGE6OTEwOTY0MyxkYXJrb2xpdmVncmVlbjo1NTk3OTk5LGRhcmtvcmFuZ2U6MTY3NDc1MjAsZGFya29yY2hpZDoxMDA0MDAxMixkYXJrcmVkOjkxMDk1MDQsZGFya3NhbG1vbjoxNTMwODQxMCxkYXJrc2VhZ3JlZW46OTQxOTkxOSxkYXJrc2xhdGVibHVlOjQ3MzQzNDcsZGFya3NsYXRlZ3JheTozMTAwNDk1LGRhcmtzbGF0ZWdyZXk6MzEwMDQ5NSxkYXJrdHVycXVvaXNlOjUyOTQ1LGRhcmt2aW9sZXQ6OTY5OTUzOSxkZWVwcGluazoxNjcxNjk0NyxkZWVwc2t5Ymx1ZTo0OTE1MSxkaW1ncmF5OjY5MDgyNjUsZGltZ3JleTo2OTA4MjY1LGRvZGdlcmJsdWU6MjAwMzE5OSxmaXJlYnJpY2s6MTE2NzQxNDYsZmxvcmFsd2hpdGU6MTY3NzU5MjAsZm9yZXN0Z3JlZW46MjI2Mzg0MixmdWNoc2lhOjE2NzExOTM1LGdhaW5zYm9ybzoxNDQ3NDQ2MCxnaG9zdHdoaXRlOjE2MzE2NjcxLGdvbGQ6MTY3NjY3MjAsZ29sZGVucm9kOjE0MzI5MTIwLGdyYXk6ODQyMTUwNCxncmVlbjozMjc2OCxncmVlbnllbGxvdzoxMTQwMzA1NSxncmV5Ojg0MjE1MDQsaG9uZXlkZXc6MTU3OTQxNjAsaG90cGluazoxNjczODc0MCxpbmRpYW5yZWQ6MTM0NTg1MjQsaW5kaWdvOjQ5MTUzMzAsaXZvcnk6MTY3NzcyMDAsa2hha2k6MTU3ODc2NjAsbGF2ZW5kZXI6MTUxMzI0MTAsbGF2ZW5kZXJibHVzaDoxNjc3MzM2NSxsYXduZ3JlZW46ODE5MDk3NixsZW1vbmNoaWZmb246MTY3NzU4ODUsbGlnaHRibHVlOjExMzkzMjU0LGxpZ2h0Y29yYWw6MTU3NjE1MzYsbGlnaHRjeWFuOjE0NzQ1NTk5LGxpZ2h0Z29sZGVucm9keWVsbG93OjE2NDQ4MjEwLGxpZ2h0Z3JheToxMzg4MjMyMyxsaWdodGdyZWVuOjk0OTgyNTYsbGlnaHRncmV5OjEzODgyMzIzLGxpZ2h0cGluazoxNjc1ODQ2NSxsaWdodHNhbG1vbjoxNjc1Mjc2MixsaWdodHNlYWdyZWVuOjIxNDI4OTAsbGlnaHRza3libHVlOjg5MDAzNDYsbGlnaHRzbGF0ZWdyYXk6NzgzMzc1MyxsaWdodHNsYXRlZ3JleTo3ODMzNzUzLGxpZ2h0c3RlZWxibHVlOjExNTg0NzM0LGxpZ2h0eWVsbG93OjE2Nzc3MTg0LGxpbWU6NjUyODAsbGltZWdyZWVuOjMzMjkzMzAsbGluZW46MTY0NDU2NzAsbWFnZW50YToxNjcxMTkzNSxtYXJvb246ODM4ODYwOCxtZWRpdW1hcXVhbWFyaW5lOjY3MzczMjIsbWVkaXVtYmx1ZToyMDUsbWVkaXVtb3JjaGlkOjEyMjExNjY3LG1lZGl1bXB1cnBsZTo5NjYyNjgzLG1lZGl1bXNlYWdyZWVuOjM5NzgwOTcsbWVkaXVtc2xhdGVibHVlOjgwODc3OTAsbWVkaXVtc3ByaW5nZ3JlZW46NjQxNTQsbWVkaXVtdHVycXVvaXNlOjQ3NzIzMDAsbWVkaXVtdmlvbGV0cmVkOjEzMDQ3MTczLG1pZG5pZ2h0Ymx1ZToxNjQ0OTEyLG1pbnRjcmVhbToxNjEyMTg1MCxtaXN0eXJvc2U6MTY3NzAyNzMsbW9jY2FzaW46MTY3NzAyMjksbmF2YWpvd2hpdGU6MTY3Njg2ODUsbmF2eToxMjgsb2xkbGFjZToxNjY0MzU1OCxvbGl2ZTo4NDIxMzc2LG9saXZlZHJhYjo3MDQ4NzM5LG9yYW5nZToxNjc1MzkyMCxvcmFuZ2VyZWQ6MTY3MjkzNDQsb3JjaGlkOjE0MzE1NzM0LHBhbGVnb2xkZW5yb2Q6MTU2NTcxMzAscGFsZWdyZWVuOjEwMDI1ODgwLHBhbGV0dXJxdW9pc2U6MTE1Mjk5NjYscGFsZXZpb2xldHJlZDoxNDM4MTIwMyxwYXBheWF3aGlwOjE2NzczMDc3LHBlYWNocHVmZjoxNjc2NzY3MyxwZXJ1OjEzNDY4OTkxLHBpbms6MTY3NjEwMzUscGx1bToxNDUyNDYzNyxwb3dkZXJibHVlOjExNTkxOTEwLHB1cnBsZTo4Mzg4NzM2LHJlYmVjY2FwdXJwbGU6NjY5Nzg4MSxyZWQ6MTY3MTE2ODAscm9zeWJyb3duOjEyMzU3NTE5LHJveWFsYmx1ZTo0Mjg2OTQ1LHNhZGRsZWJyb3duOjkxMjcxODcsc2FsbW9uOjE2NDE2ODgyLHNhbmR5YnJvd246MTYwMzI4NjQsc2VhZ3JlZW46MzA1MDMyNyxzZWFzaGVsbDoxNjc3NDYzOCxzaWVubmE6MTA1MDY3OTcsc2lsdmVyOjEyNjMyMjU2LHNreWJsdWU6ODkwMDMzMSxzbGF0ZWJsdWU6Njk3MDA2MSxzbGF0ZWdyYXk6NzM3Mjk0NCxzbGF0ZWdyZXk6NzM3Mjk0NCxzbm93OjE2Nzc1OTMwLHNwcmluZ2dyZWVuOjY1NDA3LHN0ZWVsYmx1ZTo0NjIwOTgwLHRhbjoxMzgwODc4MCx0ZWFsOjMyODk2LHRoaXN0bGU6MTQyMDQ4ODgsdG9tYXRvOjE2NzM3MDk1LHR1cnF1b2lzZTo0MjUxODU2LHZpb2xldDoxNTYzMTA4Nix3aGVhdDoxNjExMzMzMSx3aGl0ZToxNjc3NzIxNSx3aGl0ZXNtb2tlOjE2MTE5Mjg1LHllbGxvdzoxNjc3Njk2MCx5ZWxsb3dncmVlbjoxMDE0NTA3NH07R2goWGwsS2wse2NvcHkodCl7cmV0dXJuIE9iamVjdC5hc3NpZ24obmV3IHRoaXMuY29uc3RydWN0b3IsdGhpcyx0KX0sZGlzcGxheWFibGUoKXtyZXR1cm4gdGhpcy5yZ2IoKS5kaXNwbGF5YWJsZSgpfSxoZXg6U2csZm9ybWF0SGV4OlNnLGZvcm1hdEhleDg6RHgsZm9ybWF0SHNsOmp4LGZvcm1hdFJnYjpQZix0b1N0cmluZzpQZn0pO2Z1bmN0aW9uIFNnKCl7cmV0dXJuIHRoaXMucmdiKCkuZm9ybWF0SGV4KCl9ZnVuY3Rpb24gRHgoKXtyZXR1cm4gdGhpcy5yZ2IoKS5mb3JtYXRIZXg4KCl9ZnVuY3Rpb24gangoKXtyZXR1cm4gVGcodGhpcykuZm9ybWF0SHNsKCl9ZnVuY3Rpb24gUGYoKXtyZXR1cm4gdGhpcy5yZ2IoKS5mb3JtYXRSZ2IoKX1mdW5jdGlvbiBLbCh0KXt2YXIgZSxuO3JldHVybiB0PSh0KyIiKS50cmltKCkudG9Mb3dlckNhc2UoKSwoZT1UeC5leGVjKHQpKT8obj1lWzFdLmxlbmd0aCxlPXBhcnNlSW50KGVbMV0sMTYpLG49PT02P0VnKGUpOm49PT0zP25ldyBVaShlPj44JjE1fGU+PjQmMjQwLGU+PjQmMTV8ZSYyNDAsKGUmMTUpPDw0fGUmMTUsMSk6bj09PTg/Q2YoZT4+MjQmMjU1LGU+PjE2JjI1NSxlPj44JjI1NSwoZSYyNTUpLzI1NSk6bj09PTQ/Q2YoZT4+MTImMTV8ZT4+OCYyNDAsZT4+OCYxNXxlPj40JjI0MCxlPj40JjE1fGUmMjQwLCgoZSYxNSk8PDR8ZSYxNSkvMjU1KTpudWxsKTooZT1QeC5leGVjKHQpKT9uZXcgVWkoZVsxXSxlWzJdLGVbM10sMSk6KGU9Q3guZXhlYyh0KSk/bmV3IFVpKGVbMV0qMjU1LzEwMCxlWzJdKjI1NS8xMDAsZVszXSoyNTUvMTAwLDEpOihlPUx4LmV4ZWModCkpP0NmKGVbMV0sZVsyXSxlWzNdLGVbNF0pOihlPVJ4LmV4ZWModCkpP0NmKGVbMV0qMjU1LzEwMCxlWzJdKjI1NS8xMDAsZVszXSoyNTUvMTAwLGVbNF0pOihlPU54LmV4ZWModCkpP0FnKGVbMV0sZVsyXS8xMDAsZVszXS8xMDAsMSk6KGU9SXguZXhlYyh0KSk/QWcoZVsxXSxlWzJdLzEwMCxlWzNdLzEwMCxlWzRdKTpPZy5oYXNPd25Qcm9wZXJ0eSh0KT9FZyhPZ1t0XSk6dD09PSJ0cmFuc3BhcmVudCI/bmV3IFVpKE5hTixOYU4sTmFOLDApOm51bGx9ZnVuY3Rpb24gRWcodCl7cmV0dXJuIG5ldyBVaSh0Pj4xNiYyNTUsdD4+OCYyNTUsdCYyNTUsMSl9ZnVuY3Rpb24gQ2YodCxlLG4scil7cmV0dXJuIHI8PTAmJih0PWU9bj1OYU4pLG5ldyBVaSh0LGUsbixyKX1mdW5jdGlvbiBGeCh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIFhsfHwodD1LbCh0KSksdD8odD10LnJnYigpLG5ldyBVaSh0LnIsdC5nLHQuYix0Lm9wYWNpdHkpKTpuZXcgVWl9ZnVuY3Rpb24gQngodCxlLG4scil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg9PT0xP0Z4KHQpOm5ldyBVaSh0LGUsbixyPT1udWxsPzE6cil9ZnVuY3Rpb24gVWkodCxlLG4scil7dGhpcy5yPSt0LHRoaXMuZz0rZSx0aGlzLmI9K24sdGhpcy5vcGFjaXR5PStyfUdoKFVpLEJ4LHdnKFhsLHticmlnaHRlcih0KXtyZXR1cm4gdD10PT1udWxsP1RmOk1hdGgucG93KFRmLHQpLG5ldyBVaSh0aGlzLnIqdCx0aGlzLmcqdCx0aGlzLmIqdCx0aGlzLm9wYWNpdHkpfSxkYXJrZXIodCl7cmV0dXJuIHQ9dD09bnVsbD9VbDpNYXRoLnBvdyhVbCx0KSxuZXcgVWkodGhpcy5yKnQsdGhpcy5nKnQsdGhpcy5iKnQsdGhpcy5vcGFjaXR5KX0scmdiKCl7cmV0dXJuIHRoaXN9LGNsYW1wKCl7cmV0dXJuIG5ldyBVaShWcyh0aGlzLnIpLFZzKHRoaXMuZyksVnModGhpcy5iKSxRbCh0aGlzLm9wYWNpdHkpKX0sZGlzcGxheWFibGUoKXtyZXR1cm4tLjU8PXRoaXMuciYmdGhpcy5yPDI1NS41JiYtLjU8PXRoaXMuZyYmdGhpcy5nPDI1NS41JiYtLjU8PXRoaXMuYiYmdGhpcy5iPDI1NS41JiYwPD10aGlzLm9wYWNpdHkmJnRoaXMub3BhY2l0eTw9MX0saGV4Ok1nLGZvcm1hdEhleDpNZyxmb3JtYXRIZXg4Onp4LGZvcm1hdFJnYjprZyx0b1N0cmluZzprZ30pKTtmdW5jdGlvbiBNZygpe3JldHVybmAjJHtsbyh0aGlzLnIpfSR7bG8odGhpcy5nKX0ke2xvKHRoaXMuYil9YH1mdW5jdGlvbiB6eCgpe3JldHVybmAjJHtsbyh0aGlzLnIpfSR7bG8odGhpcy5nKX0ke2xvKHRoaXMuYil9JHtsbygoaXNOYU4odGhpcy5vcGFjaXR5KT8xOnRoaXMub3BhY2l0eSkqMjU1KX1gfWZ1bmN0aW9uIGtnKCl7Y29uc3QgdD1RbCh0aGlzLm9wYWNpdHkpO3JldHVybmAke3Q9PT0xPyJyZ2IoIjoicmdiYSgifSR7VnModGhpcy5yKX0sICR7VnModGhpcy5nKX0sICR7VnModGhpcy5iKX0ke3Q9PT0xPyIpIjpgLCAke3R9KWB9YH1mdW5jdGlvbiBRbCh0KXtyZXR1cm4gaXNOYU4odCk/MTpNYXRoLm1heCgwLE1hdGgubWluKDEsdCkpfWZ1bmN0aW9uIFZzKHQpe3JldHVybiBNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHQpfHwwKSl9ZnVuY3Rpb24gbG8odCl7cmV0dXJuIHQ9VnModCksKHQ8MTY/IjAiOiIiKSt0LnRvU3RyaW5nKDE2KX1mdW5jdGlvbiBBZyh0LGUsbixyKXtyZXR1cm4gcjw9MD90PWU9bj1OYU46bjw9MHx8bj49MT90PWU9TmFOOmU8PTAmJih0PU5hTiksbmV3IGphKHQsZSxuLHIpfWZ1bmN0aW9uIFRnKHQpe2lmKHQgaW5zdGFuY2VvZiBqYSlyZXR1cm4gbmV3IGphKHQuaCx0LnMsdC5sLHQub3BhY2l0eSk7aWYodCBpbnN0YW5jZW9mIFhsfHwodD1LbCh0KSksIXQpcmV0dXJuIG5ldyBqYTtpZih0IGluc3RhbmNlb2YgamEpcmV0dXJuIHQ7dD10LnJnYigpO3ZhciBlPXQuci8yNTUsbj10LmcvMjU1LHI9dC5iLzI1NSxpPU1hdGgubWluKGUsbixyKSxhPU1hdGgubWF4KGUsbixyKSxvPU5hTixzPWEtaSxjPShhK2kpLzI7cmV0dXJuIHM/KGU9PT1hP289KG4tcikvcysobjxyKSo2Om49PT1hP289KHItZSkvcysyOm89KGUtbikvcys0LHMvPWM8LjU/YStpOjItYS1pLG8qPTYwKTpzPWM+MCYmYzwxPzA6byxuZXcgamEobyxzLGMsdC5vcGFjaXR5KX1mdW5jdGlvbiBXeCh0LGUsbixyKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD09PTE/VGcodCk6bmV3IGphKHQsZSxuLHI9PW51bGw/MTpyKX1mdW5jdGlvbiBqYSh0LGUsbixyKXt0aGlzLmg9K3QsdGhpcy5zPStlLHRoaXMubD0rbix0aGlzLm9wYWNpdHk9K3J9R2goamEsV3gsd2coWGwse2JyaWdodGVyKHQpe3JldHVybiB0PXQ9PW51bGw/VGY6TWF0aC5wb3coVGYsdCksbmV3IGphKHRoaXMuaCx0aGlzLnMsdGhpcy5sKnQsdGhpcy5vcGFjaXR5KX0sZGFya2VyKHQpe3JldHVybiB0PXQ9PW51bGw/VWw6TWF0aC5wb3coVWwsdCksbmV3IGphKHRoaXMuaCx0aGlzLnMsdGhpcy5sKnQsdGhpcy5vcGFjaXR5KX0scmdiKCl7dmFyIHQ9dGhpcy5oJTM2MCsodGhpcy5oPDApKjM2MCxlPWlzTmFOKHQpfHxpc05hTih0aGlzLnMpPzA6dGhpcy5zLG49dGhpcy5sLHI9bisobjwuNT9uOjEtbikqZSxpPTIqbi1yO3JldHVybiBuZXcgVWkoJGgodD49MjQwP3QtMjQwOnQrMTIwLGksciksJGgodCxpLHIpLCRoKHQ8MTIwP3QrMjQwOnQtMTIwLGksciksdGhpcy5vcGFjaXR5KX0sY2xhbXAoKXtyZXR1cm4gbmV3IGphKFBnKHRoaXMuaCksTGYodGhpcy5zKSxMZih0aGlzLmwpLFFsKHRoaXMub3BhY2l0eSkpfSxkaXNwbGF5YWJsZSgpe3JldHVybigwPD10aGlzLnMmJnRoaXMuczw9MXx8aXNOYU4odGhpcy5zKSkmJjA8PXRoaXMubCYmdGhpcy5sPD0xJiYwPD10aGlzLm9wYWNpdHkmJnRoaXMub3BhY2l0eTw9MX0sZm9ybWF0SHNsKCl7Y29uc3QgdD1RbCh0aGlzLm9wYWNpdHkpO3JldHVybmAke3Q9PT0xPyJoc2woIjoiaHNsYSgifSR7UGcodGhpcy5oKX0sICR7TGYodGhpcy5zKSoxMDB9JSwgJHtMZih0aGlzLmwpKjEwMH0lJHt0PT09MT8iKSI6YCwgJHt0fSlgfWB9fSkpO2Z1bmN0aW9uIFBnKHQpe3JldHVybiB0PSh0fHwwKSUzNjAsdDwwP3QrMzYwOnR9ZnVuY3Rpb24gTGYodCl7cmV0dXJuIE1hdGgubWF4KDAsTWF0aC5taW4oMSx0fHwwKSl9ZnVuY3Rpb24gJGgodCxlLG4pe3JldHVybih0PDYwP2UrKG4tZSkqdC82MDp0PDE4MD9uOnQ8MjQwP2UrKG4tZSkqKDI0MC10KS82MDplKSoyNTV9ZnVuY3Rpb24gSXIodCxlKXtpZih0eXBlb2YgdCE9ImZ1bmN0aW9uInx8ZSE9bnVsbCYmdHlwZW9mIGUhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgYSBmdW5jdGlvbiIpO3ZhciBuPWZ1bmN0aW9uKCl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGgsYT1uZXcgQXJyYXkoaSksbz0wO288aTtvKyspYVtvXT1hcmd1bWVudHNbb107dmFyIHM9ZT9lLmFwcGx5KHRoaXMsYSk6YVswXSxjPW4uY2FjaGU7aWYoYy5oYXMocykpcmV0dXJuIGMuZ2V0KHMpO3ZhciBsPXQuYXBwbHkodGhpcyxhKTtyZXR1cm4gbi5jYWNoZT1jLnNldChzLGwpfHxjLGx9O3JldHVybiBuLmNhY2hlPW5ldyhJci5DYWNoZXx8TWFwKSxJci5jYWNoZUxpc3QucHVzaChuLmNhY2hlKSxufUlyLkNhY2hlPU1hcCxJci5jYWNoZUxpc3Q9W10sSXIuY2xlYXJDYWNoZT1mdW5jdGlvbigpe0lyLmNhY2hlTGlzdC5mb3JFYWNoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmNsZWFyKCl9KX07dmFyIFp0PWZ1bmN0aW9uKHQpe3JldHVybiB0W3Qua1Vua25vd249MF09ImtVbmtub3duIix0W3Qua051bWJlcj0xXT0ia051bWJlciIsdFt0LmtQZXJjZW50YWdlPTJdPSJrUGVyY2VudGFnZSIsdFt0LmtFbXM9M109ImtFbXMiLHRbdC5rUGl4ZWxzPTRdPSJrUGl4ZWxzIix0W3Qua1JlbXM9NV09ImtSZW1zIix0W3Qua0RlZ3JlZXM9Nl09ImtEZWdyZWVzIix0W3Qua1JhZGlhbnM9N109ImtSYWRpYW5zIix0W3Qua0dyYWRpYW5zPThdPSJrR3JhZGlhbnMiLHRbdC5rVHVybnM9OV09ImtUdXJucyIsdFt0LmtNaWxsaXNlY29uZHM9MTBdPSJrTWlsbGlzZWNvbmRzIix0W3Qua1NlY29uZHM9MTFdPSJrU2Vjb25kcyIsdFt0LmtJbnRlZ2VyPTEyXT0ia0ludGVnZXIiLHR9KHt9KSxGYT1mdW5jdGlvbih0KXtyZXR1cm4gdFt0LmtVTnVtYmVyPTBdPSJrVU51bWJlciIsdFt0LmtVUGVyY2VudD0xXT0ia1VQZXJjZW50Iix0W3Qua1VMZW5ndGg9Ml09ImtVTGVuZ3RoIix0W3Qua1VBbmdsZT0zXT0ia1VBbmdsZSIsdFt0LmtVVGltZT00XT0ia1VUaW1lIix0W3Qua1VPdGhlcj01XT0ia1VPdGhlciIsdH0oe30pLEd4PWZ1bmN0aW9uKHQpe3JldHVybiB0W3Qua1llcz0wXT0ia1llcyIsdFt0LmtObz0xXT0ia05vIix0fSh7fSksJHg9ZnVuY3Rpb24odCl7cmV0dXJuIHRbdC5rWWVzPTBdPSJrWWVzIix0W3Qua05vPTFdPSJrTm8iLHR9KHt9KSxaeD1be25hbWU6ImVtIix1bml0X3R5cGU6WnQua0Vtc30se25hbWU6InB4Iix1bml0X3R5cGU6WnQua1BpeGVsc30se25hbWU6ImRlZyIsdW5pdF90eXBlOlp0LmtEZWdyZWVzfSx7bmFtZToicmFkIix1bml0X3R5cGU6WnQua1JhZGlhbnN9LHtuYW1lOiJncmFkIix1bml0X3R5cGU6WnQua0dyYWRpYW5zfSx7bmFtZToibXMiLHVuaXRfdHlwZTpadC5rTWlsbGlzZWNvbmRzfSx7bmFtZToicyIsdW5pdF90eXBlOlp0LmtTZWNvbmRzfSx7bmFtZToicmVtIix1bml0X3R5cGU6WnQua1JlbXN9LHtuYW1lOiJ0dXJuIix1bml0X3R5cGU6WnQua1R1cm5zfV0sSGM9ZnVuY3Rpb24odCl7cmV0dXJuIHRbdC5rVW5rbm93blR5cGU9MF09ImtVbmtub3duVHlwZSIsdFt0LmtVbnBhcnNlZFR5cGU9MV09ImtVbnBhcnNlZFR5cGUiLHRbdC5rS2V5d29yZFR5cGU9Ml09ImtLZXl3b3JkVHlwZSIsdFt0LmtVbml0VHlwZT0zXT0ia1VuaXRUeXBlIix0W3Qua1N1bVR5cGU9NF09ImtTdW1UeXBlIix0W3Qua1Byb2R1Y3RUeXBlPTVdPSJrUHJvZHVjdFR5cGUiLHRbdC5rTmVnYXRlVHlwZT02XT0ia05lZ2F0ZVR5cGUiLHRbdC5rSW52ZXJ0VHlwZT03XT0ia0ludmVydFR5cGUiLHRbdC5rTWluVHlwZT04XT0ia01pblR5cGUiLHRbdC5rTWF4VHlwZT05XT0ia01heFR5cGUiLHRbdC5rQ2xhbXBUeXBlPTEwXT0ia0NsYW1wVHlwZSIsdFt0LmtUcmFuc2Zvcm1UeXBlPTExXT0ia1RyYW5zZm9ybVR5cGUiLHRbdC5rUG9zaXRpb25UeXBlPTEyXT0ia1Bvc2l0aW9uVHlwZSIsdFt0LmtVUkxJbWFnZVR5cGU9MTNdPSJrVVJMSW1hZ2VUeXBlIix0W3Qua0NvbG9yVHlwZT0xNF09ImtDb2xvclR5cGUiLHRbdC5rVW5zdXBwb3J0ZWRDb2xvclR5cGU9MTVdPSJrVW5zdXBwb3J0ZWRDb2xvclR5cGUiLHR9KHt9KSxZeD1mdW5jdGlvbihlKXtyZXR1cm4gWnguZmluZChmdW5jdGlvbihuKXtyZXR1cm4gbi5uYW1lPT09ZX0pLnVuaXRfdHlwZX0sSHg9ZnVuY3Rpb24oZSl7cmV0dXJuIGU/ZT09PSJudW1iZXIiP1p0LmtOdW1iZXI6ZT09PSJwZXJjZW50Inx8ZT09PSIlIj9adC5rUGVyY2VudGFnZTpZeChlKTpadC5rVW5rbm93bn0sQ2c9ZnVuY3Rpb24oZSl7c3dpdGNoKGUpe2Nhc2UgWnQua051bWJlcjpjYXNlIFp0LmtJbnRlZ2VyOnJldHVybiBGYS5rVU51bWJlcjtjYXNlIFp0LmtQZXJjZW50YWdlOnJldHVybiBGYS5rVVBlcmNlbnQ7Y2FzZSBadC5rUGl4ZWxzOnJldHVybiBGYS5rVUxlbmd0aDtjYXNlIFp0LmtNaWxsaXNlY29uZHM6Y2FzZSBadC5rU2Vjb25kczpyZXR1cm4gRmEua1VUaW1lO2Nhc2UgWnQua0RlZ3JlZXM6Y2FzZSBadC5rUmFkaWFuczpjYXNlIFp0LmtHcmFkaWFuczpjYXNlIFp0LmtUdXJuczpyZXR1cm4gRmEua1VBbmdsZTtkZWZhdWx0OnJldHVybiBGYS5rVU90aGVyfX0sTGc9ZnVuY3Rpb24oZSl7c3dpdGNoKGUpe2Nhc2UgRmEua1VOdW1iZXI6cmV0dXJuIFp0LmtOdW1iZXI7Y2FzZSBGYS5rVUxlbmd0aDpyZXR1cm4gWnQua1BpeGVscztjYXNlIEZhLmtVUGVyY2VudDpyZXR1cm4gWnQua1BlcmNlbnRhZ2U7Y2FzZSBGYS5rVVRpbWU6cmV0dXJuIFp0LmtTZWNvbmRzO2Nhc2UgRmEua1VBbmdsZTpyZXR1cm4gWnQua0RlZ3JlZXM7ZGVmYXVsdDpyZXR1cm4gWnQua1Vua25vd259fSxSZz1mdW5jdGlvbihlKXt2YXIgbj0xO3N3aXRjaChlKXtjYXNlIFp0LmtQaXhlbHM6Y2FzZSBadC5rRGVncmVlczpjYXNlIFp0LmtTZWNvbmRzOmJyZWFrO2Nhc2UgWnQua01pbGxpc2Vjb25kczpuPS4wMDE7YnJlYWs7Y2FzZSBadC5rUmFkaWFuczpuPTE4MC9NYXRoLlBJO2JyZWFrO2Nhc2UgWnQua0dyYWRpYW5zOm49Ljk7YnJlYWs7Y2FzZSBadC5rVHVybnM6bj0zNjA7YnJlYWt9cmV0dXJuIG59LFpoPWZ1bmN0aW9uKGUpe3N3aXRjaChlKXtjYXNlIFp0LmtOdW1iZXI6Y2FzZSBadC5rSW50ZWdlcjpyZXR1cm4iIjtjYXNlIFp0LmtQZXJjZW50YWdlOnJldHVybiIlIjtjYXNlIFp0LmtFbXM6cmV0dXJuImVtIjtjYXNlIFp0LmtSZW1zOnJldHVybiJyZW0iO2Nhc2UgWnQua1BpeGVsczpyZXR1cm4icHgiO2Nhc2UgWnQua0RlZ3JlZXM6cmV0dXJuImRlZyI7Y2FzZSBadC5rUmFkaWFuczpyZXR1cm4icmFkIjtjYXNlIFp0LmtHcmFkaWFuczpyZXR1cm4iZ3JhZCI7Y2FzZSBadC5rTWlsbGlzZWNvbmRzOnJldHVybiJtcyI7Y2FzZSBadC5rU2Vjb25kczpyZXR1cm4icyI7Y2FzZSBadC5rVHVybnM6cmV0dXJuInR1cm4ifXJldHVybiIifSxSZj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXsoMCx4dC5aKSh0aGlzLHQpfXJldHVybigwLE90LlopKHQsW3trZXk6InRvU3RyaW5nIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmJ1aWxkQ1NTVGV4dChHeC5rTm8sJHgua05vLCIiKX19LHtrZXk6ImlzTnVtZXJpY1ZhbHVlIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFR5cGUoKT49SGMua1VuaXRUeXBlJiZ0aGlzLmdldFR5cGUoKTw9SGMua0NsYW1wVHlwZX19XSxbe2tleToiaXNBbmdsZSIsdmFsdWU6ZnVuY3Rpb24obil7cmV0dXJuIG49PT1adC5rRGVncmVlc3x8bj09PVp0LmtSYWRpYW5zfHxuPT09WnQua0dyYWRpYW5zfHxuPT09WnQua1R1cm5zfX0se2tleToiaXNMZW5ndGgiLHZhbHVlOmZ1bmN0aW9uKG4pe3JldHVybiBuPj1adC5rRW1zJiZuPFp0LmtEZWdyZWVzfX0se2tleToiaXNSZWxhdGl2ZVVuaXQiLHZhbHVlOmZ1bmN0aW9uKG4pe3JldHVybiBuPT09WnQua1BlcmNlbnRhZ2V8fG49PT1adC5rRW1zfHxuPT09WnQua1JlbXN9fSx7a2V5OiJpc1RpbWUiLHZhbHVlOmZ1bmN0aW9uKG4pe3JldHVybiBuPT09WnQua1NlY29uZHN8fG49PT1adC5rTWlsbGlzZWNvbmRzfX1dKX0oKSxWeD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKG4pe3ZhciByO3JldHVybigwLHh0LlopKHRoaXMsZSkscj0oMCxEZS5aKSh0aGlzLGUpLHIuY29sb3JTcGFjZT1uLHJ9cmV0dXJuKDAsTWUuWikoZSx0KSwoMCxPdC5aKShlLFt7a2V5OiJnZXRUeXBlIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBIYy5rQ29sb3JUeXBlfX0se2tleToidG8iLHZhbHVlOmZ1bmN0aW9uKHIpe3JldHVybiB0aGlzfX1dKX0oUmYpLEJhPWZ1bmN0aW9uKHQpe3JldHVybiB0W3QuQ29uc3RhbnQ9MF09IkNvbnN0YW50Iix0W3QuTGluZWFyR3JhZGllbnQ9MV09IkxpbmVhckdyYWRpZW50Iix0W3QuUmFkaWFsR3JhZGllbnQ9Ml09IlJhZGlhbEdyYWRpZW50Iix0fSh7fSksTmY9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShuLHIpe3ZhciBpO3JldHVybigwLHh0LlopKHRoaXMsZSksaT0oMCxEZS5aKSh0aGlzLGUpLGkudHlwZT1uLGkudmFsdWU9cixpfXJldHVybigwLE1lLlopKGUsdCksKDAsT3QuWikoZSxbe2tleToiY2xvbmUiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBlKHRoaXMudHlwZSx0aGlzLnZhbHVlKX19LHtrZXk6ImJ1aWxkQ1NTVGV4dCIsdmFsdWU6ZnVuY3Rpb24ocixpLGEpe3JldHVybiBhfX0se2tleToiZ2V0VHlwZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gSGMua0NvbG9yVHlwZX19XSl9KFJmKSxrYT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKG4pe3ZhciByO3JldHVybigwLHh0LlopKHRoaXMsZSkscj0oMCxEZS5aKSh0aGlzLGUpLHIudmFsdWU9bixyfXJldHVybigwLE1lLlopKGUsdCksKDAsT3QuWikoZSxbe2tleToiY2xvbmUiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBlKHRoaXMudmFsdWUpfX0se2tleToiZ2V0VHlwZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gSGMua0tleXdvcmRUeXBlfX0se2tleToiYnVpbGRDU1NUZXh0Iix2YWx1ZTpmdW5jdGlvbihyLGksYSl7cmV0dXJuIGErdGhpcy52YWx1ZX19XSl9KFJmKSxYeD1mdW5jdGlvbihlKXt2YXIgbj1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06IiIscj0iIjtyZXR1cm4gTnVtYmVyLmlzRmluaXRlKGUpP3I9Ik5hTiI6ZT4wP3I9ImluZmluaXR5IjpyPSItaW5maW5pdHkiLHIrPW59LFloPWZ1bmN0aW9uKGUpe3JldHVybiBMZyhDZyhlKSl9LFJuPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUobil7dmFyIHIsaT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06WnQua051bWJlcjsoMCx4dC5aKSh0aGlzLGUpLHI9KDAsRGUuWikodGhpcyxlKTt2YXIgYTtyZXR1cm4gdHlwZW9mIGk9PSJzdHJpbmciP2E9SHgoaSk6YT1pLHIudW5pdD1hLHIudmFsdWU9bixyfXJldHVybigwLE1lLlopKGUsdCksKDAsT3QuWikoZSxbe2tleToiY2xvbmUiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBlKHRoaXMudmFsdWUsdGhpcy51bml0KX19LHtrZXk6ImVxdWFscyIsdmFsdWU6ZnVuY3Rpb24ocil7dmFyIGk9cjtyZXR1cm4gdGhpcy52YWx1ZT09PWkudmFsdWUmJnRoaXMudW5pdD09PWkudW5pdH19LHtrZXk6ImdldFR5cGUiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIEhjLmtVbml0VHlwZX19LHtrZXk6ImNvbnZlcnRUbyIsdmFsdWU6ZnVuY3Rpb24ocil7aWYodGhpcy51bml0PT09cilyZXR1cm4gbmV3IGUodGhpcy52YWx1ZSx0aGlzLnVuaXQpO3ZhciBpPVloKHRoaXMudW5pdCk7aWYoaSE9PVloKHIpfHxpPT09WnQua1Vua25vd24pcmV0dXJuIG51bGw7dmFyIGE9UmcodGhpcy51bml0KS9SZyhyKTtyZXR1cm4gbmV3IGUodGhpcy52YWx1ZSphLHIpfX0se2tleToiYnVpbGRDU1NUZXh0Iix2YWx1ZTpmdW5jdGlvbihyLGksYSl7dmFyIG87c3dpdGNoKHRoaXMudW5pdCl7Y2FzZSBadC5rVW5rbm93bjpicmVhaztjYXNlIFp0LmtJbnRlZ2VyOm89TnVtYmVyKHRoaXMudmFsdWUpLnRvRml4ZWQoMCk7YnJlYWs7Y2FzZSBadC5rTnVtYmVyOmNhc2UgWnQua1BlcmNlbnRhZ2U6Y2FzZSBadC5rRW1zOmNhc2UgWnQua1JlbXM6Y2FzZSBadC5rUGl4ZWxzOmNhc2UgWnQua0RlZ3JlZXM6Y2FzZSBadC5rUmFkaWFuczpjYXNlIFp0LmtHcmFkaWFuczpjYXNlIFp0LmtNaWxsaXNlY29uZHM6Y2FzZSBadC5rU2Vjb25kczpjYXNlIFp0LmtUdXJuczp7dmFyIHM9LTk5OTk5OSxjPTk5OTk5OSxsPXRoaXMudmFsdWUsdT1aaCh0aGlzLnVuaXQpO2lmKGw8c3x8bD5jKXt2YXIgZj1aaCh0aGlzLnVuaXQpOyFOdW1iZXIuaXNGaW5pdGUobCl8fE51bWJlci5pc05hTihsKT9vPVh4KGwsZik6bz1sKyhmfHwiIil9ZWxzZSBvPSIiLmNvbmNhdChsKS5jb25jYXQodSl9fXJldHVybiBhKz1vLGF9fV0pfShSZiksemE9bmV3IFJuKDAsInB4Iik7bmV3IFJuKDEsInB4Iik7dmFyIFhzPW5ldyBSbigwLCJkZWciKSxIaD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKG4scixpKXt2YXIgYSxvPWFyZ3VtZW50cy5sZW5ndGg+MyYmYXJndW1lbnRzWzNdIT09dm9pZCAwP2FyZ3VtZW50c1szXToxLHM9YXJndW1lbnRzLmxlbmd0aD40JiZhcmd1bWVudHNbNF0hPT12b2lkIDA/YXJndW1lbnRzWzRdOiExO3JldHVybigwLHh0LlopKHRoaXMsZSksYT0oMCxEZS5aKSh0aGlzLGUsWyJyZ2IiXSksYS5yPW4sYS5nPXIsYS5iPWksYS5hbHBoYT1vLGEuaXNOb25lPXMsYX1yZXR1cm4oMCxNZS5aKShlLHQpLCgwLE90LlopKGUsW3trZXk6ImNsb25lIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBuZXcgZSh0aGlzLnIsdGhpcy5nLHRoaXMuYix0aGlzLmFscGhhKX19LHtrZXk6ImJ1aWxkQ1NTVGV4dCIsdmFsdWU6ZnVuY3Rpb24ocixpLGEpe3JldHVybiIiLmNvbmNhdChhLCJyZ2JhKCIpLmNvbmNhdCh0aGlzLnIsIiwiKS5jb25jYXQodGhpcy5nLCIsIikuY29uY2F0KHRoaXMuYiwiLCIpLmNvbmNhdCh0aGlzLmFscGhhLCIpIil9fV0pfShWeCksTmc9bmV3IGthKCJ1bnNldCIpLFV4PW5ldyBrYSgiaW5pdGlhbCIpLHF4PW5ldyBrYSgiaW5oZXJpdCIpLFZjPXsiIjpOZyx1bnNldDpOZyxpbml0aWFsOlV4LGluaGVyaXQ6cXh9LEt4PWZ1bmN0aW9uKGUpe3JldHVybiBWY1tlXXx8KFZjW2VdPW5ldyBrYShlKSksVmNbZV19LFZoPW5ldyBIaCgwLDAsMCwwLCEwKSxYaD1uZXcgSGgoMCwwLDAsMCksVWg9SXIoZnVuY3Rpb24odCxlLG4scil7cmV0dXJuIG5ldyBIaCh0LGUsbixyKX0sZnVuY3Rpb24odCxlLG4scil7cmV0dXJuInJnYmEoIi5jb25jYXQodCwiLCIpLmNvbmNhdChlLCIsIikuY29uY2F0KG4sIiwiKS5jb25jYXQociwiKSIpfSksVW49ZnVuY3Rpb24oZSl7dmFyIG49YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOlp0LmtOdW1iZXI7cmV0dXJuIG5ldyBSbihlLG4pfTtuZXcgUm4oNTAsIiUiKTtmdW5jdGlvbiBJZyh0KXt2YXIgZT10LnR5cGUsbj10LnZhbHVlO3JldHVybiBlPT09ImhleCI/IiMiLmNvbmNhdChuKTplPT09ImxpdGVyYWwiP246ZT09PSJyZ2IiPyJyZ2IoIi5jb25jYXQobi5qb2luKCIsIiksIikiKToicmdiYSgiLmNvbmNhdChuLmpvaW4oIiwiKSwiKSIpfXZhciBEZz1mdW5jdGlvbigpe3ZhciB0PXtsaW5lYXJHcmFkaWVudDovXihsaW5lYXJcLWdyYWRpZW50KS9pLHJlcGVhdGluZ0xpbmVhckdyYWRpZW50Oi9eKHJlcGVhdGluZ1wtbGluZWFyXC1ncmFkaWVudCkvaSxyYWRpYWxHcmFkaWVudDovXihyYWRpYWxcLWdyYWRpZW50KS9pLHJlcGVhdGluZ1JhZGlhbEdyYWRpZW50Oi9eKHJlcGVhdGluZ1wtcmFkaWFsXC1ncmFkaWVudCkvaSxjb25pY0dyYWRpZW50Oi9eKGNvbmljXC1ncmFkaWVudCkvaSxzaWRlT3JDb3JuZXI6L150byAobGVmdCAodG9wfGJvdHRvbSl8cmlnaHQgKHRvcHxib3R0b20pfHRvcCAobGVmdHxyaWdodCl8Ym90dG9tIChsZWZ0fHJpZ2h0KXxsZWZ0fHJpZ2h0fHRvcHxib3R0b20pL2ksZXh0ZW50S2V5d29yZHM6L14oY2xvc2VzdFwtc2lkZXxjbG9zZXN0XC1jb3JuZXJ8ZmFydGhlc3RcLXNpZGV8ZmFydGhlc3RcLWNvcm5lcnxjb250YWlufGNvdmVyKS8scG9zaXRpb25LZXl3b3JkczovXihsZWZ0fGNlbnRlcnxyaWdodHx0b3B8Ym90dG9tKS9pLHBpeGVsVmFsdWU6L14oLT8oKFswLTldKlwuWzAtOV0rKXwoWzAtOV0rXC4/KSkpcHgvLHBlcmNlbnRhZ2VWYWx1ZTovXigtPygoWzAtOV0qXC5bMC05XSspfChbMC05XStcLj8pKSlcJS8sZW1WYWx1ZTovXigtPygoWzAtOV0qXC5bMC05XSspfChbMC05XStcLj8pKSllbS8sYW5nbGVWYWx1ZTovXigtPygoWzAtOV0qXC5bMC05XSspfChbMC05XStcLj8pKSlkZWcvLHN0YXJ0Q2FsbDovXlwoLyxlbmRDYWxsOi9eXCkvLGNvbW1hOi9eLC8saGV4Q29sb3I6L15cIyhbMC05YS1mQS1GXSspLyxsaXRlcmFsQ29sb3I6L14oW2EtekEtWl0rKS8scmdiQ29sb3I6L15yZ2IvaSxyZ2JhQ29sb3I6L15yZ2JhL2ksbnVtYmVyOi9eKChbMC05XSpcLlswLTldKyl8KFswLTldK1wuPykpL30sZT0iIjtmdW5jdGlvbiBuKEcpe3Rocm93IG5ldyBFcnJvcigiIi5jb25jYXQoZSwiOiAiKS5jb25jYXQoRykpfWZ1bmN0aW9uIHIoKXt2YXIgRz1pKCk7cmV0dXJuIGUubGVuZ3RoPjAmJm4oIkludmFsaWQgaW5wdXQgbm90IEVPRiIpLEd9ZnVuY3Rpb24gaSgpe3JldHVybiBfKGEpfWZ1bmN0aW9uIGEoKXtyZXR1cm4gbygibGluZWFyLWdyYWRpZW50Iix0LmxpbmVhckdyYWRpZW50LGMpfHxvKCJyZXBlYXRpbmctbGluZWFyLWdyYWRpZW50Iix0LnJlcGVhdGluZ0xpbmVhckdyYWRpZW50LGMpfHxvKCJyYWRpYWwtZ3JhZGllbnQiLHQucmFkaWFsR3JhZGllbnQsZil8fG8oInJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQiLHQucmVwZWF0aW5nUmFkaWFsR3JhZGllbnQsZil8fG8oImNvbmljLWdyYWRpZW50Iix0LmNvbmljR3JhZGllbnQsZil9ZnVuY3Rpb24gbyhHLEYsVyl7cmV0dXJuIHMoRixmdW5jdGlvbihYKXt2YXIgUT1XKCk7cmV0dXJuIFEmJihJKHQuY29tbWEpfHxuKCJNaXNzaW5nIGNvbW1hIGJlZm9yZSBjb2xvciBzdG9wcyIpKSx7dHlwZTpHLG9yaWVudGF0aW9uOlEsY29sb3JTdG9wczpfKHcpfX0pfWZ1bmN0aW9uIHMoRyxGKXt2YXIgVz1JKEcpO2lmKFcpe0kodC5zdGFydENhbGwpfHxuKCJNaXNzaW5nICgiKTt2YXIgWD1GKFcpO3JldHVybiBJKHQuZW5kQ2FsbCl8fG4oIk1pc3NpbmcgKSIpLFh9fWZ1bmN0aW9uIGMoKXtyZXR1cm4gbCgpfHx1KCl9ZnVuY3Rpb24gbCgpe3JldHVybiBSKCJkaXJlY3Rpb25hbCIsdC5zaWRlT3JDb3JuZXIsMSl9ZnVuY3Rpb24gdSgpe3JldHVybiBSKCJhbmd1bGFyIix0LmFuZ2xlVmFsdWUsMSl9ZnVuY3Rpb24gZigpe3ZhciBHLEY9ZCgpLFc7cmV0dXJuIEYmJihHPVtdLEcucHVzaChGKSxXPWUsSSh0LmNvbW1hKSYmKEY9ZCgpLEY/Ry5wdXNoKEYpOmU9VykpLEd9ZnVuY3Rpb24gZCgpe3ZhciBHPWgoKXx8digpO2lmKEcpRy5hdD15KCk7ZWxzZXt2YXIgRj1nKCk7aWYoRil7Rz1GO3ZhciBXPXkoKTtXJiYoRy5hdD1XKX1lbHNle3ZhciBYPWIoKTtYJiYoRz17dHlwZToiZGVmYXVsdC1yYWRpYWwiLGF0Olh9KX19cmV0dXJuIEd9ZnVuY3Rpb24gaCgpe3ZhciBHPVIoInNoYXBlIiwvXihjaXJjbGUpL2ksMCk7cmV0dXJuIEcmJihHLnN0eWxlPUwoKXx8ZygpKSxHfWZ1bmN0aW9uIHYoKXt2YXIgRz1SKCJzaGFwZSIsL14oZWxsaXBzZSkvaSwwKTtyZXR1cm4gRyYmKEcuc3R5bGU9QygpfHxnKCkpLEd9ZnVuY3Rpb24gZygpe3JldHVybiBSKCJleHRlbnQta2V5d29yZCIsdC5leHRlbnRLZXl3b3JkcywxKX1mdW5jdGlvbiB5KCl7aWYoUigicG9zaXRpb24iLC9eYXQvLDApKXt2YXIgRz1iKCk7cmV0dXJuIEd8fG4oIk1pc3NpbmcgcG9zaXRpb25pbmcgdmFsdWUiKSxHfX1mdW5jdGlvbiBiKCl7dmFyIEc9eCgpO2lmKEcueHx8Ry55KXJldHVybnt0eXBlOiJwb3NpdGlvbiIsdmFsdWU6R319ZnVuY3Rpb24geCgpe3JldHVybnt4OkMoKSx5OkMoKX19ZnVuY3Rpb24gXyhHKXt2YXIgRj1HKCksVz1bXTtpZihGKWZvcihXLnB1c2goRik7SSh0LmNvbW1hKTspRj1HKCksRj9XLnB1c2goRik6bigiT25lIGV4dHJhIGNvbW1hIik7cmV0dXJuIFd9ZnVuY3Rpb24gdygpe3ZhciBHPU8oKTtyZXR1cm4gR3x8bigiRXhwZWN0ZWQgY29sb3IgZGVmaW5pdGlvbiIpLEcubGVuZ3RoPUMoKSxHfWZ1bmN0aW9uIE8oKXtyZXR1cm4gTSgpfHxBKCl8fGsoKXx8RSgpfWZ1bmN0aW9uIEUoKXtyZXR1cm4gUigibGl0ZXJhbCIsdC5saXRlcmFsQ29sb3IsMCl9ZnVuY3Rpb24gTSgpe3JldHVybiBSKCJoZXgiLHQuaGV4Q29sb3IsMSl9ZnVuY3Rpb24gaygpe3JldHVybiBzKHQucmdiQ29sb3IsZnVuY3Rpb24oKXtyZXR1cm57dHlwZToicmdiIix2YWx1ZTpfKFApfX0pfWZ1bmN0aW9uIEEoKXtyZXR1cm4gcyh0LnJnYmFDb2xvcixmdW5jdGlvbigpe3JldHVybnt0eXBlOiJyZ2JhIix2YWx1ZTpfKFApfX0pfWZ1bmN0aW9uIFAoKXtyZXR1cm4gSSh0Lm51bWJlcilbMV19ZnVuY3Rpb24gQygpe3JldHVybiBSKCIlIix0LnBlcmNlbnRhZ2VWYWx1ZSwxKXx8TigpfHxMKCl9ZnVuY3Rpb24gTigpe3JldHVybiBSKCJwb3NpdGlvbi1rZXl3b3JkIix0LnBvc2l0aW9uS2V5d29yZHMsMSl9ZnVuY3Rpb24gTCgpe3JldHVybiBSKCJweCIsdC5waXhlbFZhbHVlLDEpfHxSKCJlbSIsdC5lbVZhbHVlLDEpfWZ1bmN0aW9uIFIoRyxGLFcpe3ZhciBYPUkoRik7aWYoWClyZXR1cm57dHlwZTpHLHZhbHVlOlhbV119fWZ1bmN0aW9uIEkoRyl7dmFyIEY9L15bXG5cclx0XHNdKy8uZXhlYyhlKTtGJiZEKEZbMF0ubGVuZ3RoKTt2YXIgVz1HLmV4ZWMoZSk7cmV0dXJuIFcmJkQoV1swXS5sZW5ndGgpLFd9ZnVuY3Rpb24gRChHKXtlPWUuc3Vic3RyaW5nKEcpfXJldHVybiBmdW5jdGlvbihHKXtyZXR1cm4gZT1HLHIoKX19KCk7ZnVuY3Rpb24gamcodCxlLG4scil7dmFyIGk9Q24oci52YWx1ZSksYT0wLG89MCxzPWErZS8yLGM9bytuLzIsbD1NYXRoLmFicyhlKk1hdGguY29zKGkpKStNYXRoLmFicyhuKk1hdGguc2luKGkpKSx1PXRbMF0rcy1NYXRoLmNvcyhpKSpsLzIsZj10WzFdK2MtTWF0aC5zaW4oaSkqbC8yLGQ9dFswXStzK01hdGguY29zKGkpKmwvMixoPXRbMV0rYytNYXRoLnNpbihpKSpsLzI7cmV0dXJue3gxOnUseTE6Zix4MjpkLHkyOmh9fWZ1bmN0aW9uIFF4KHQsZSxuLHIsaSxhKXt2YXIgbz1yLnZhbHVlLHM9aS52YWx1ZTtyLnVuaXQ9PT1adC5rUGVyY2VudGFnZSYmKG89ci52YWx1ZS8xMDAqZSksaS51bml0PT09WnQua1BlcmNlbnRhZ2UmJihzPWkudmFsdWUvMTAwKm4pO3ZhciBjPU1hdGgubWF4KFppKFswLDBdLFtvLHNdKSxaaShbMCxuXSxbbyxzXSksWmkoW2Usbl0sW28sc10pLFppKFtlLDBdLFtvLHNdKSk7cmV0dXJuIGEmJihhIGluc3RhbmNlb2YgUm4/Yz1hLnZhbHVlOmEgaW5zdGFuY2VvZiBrYSYmKGEudmFsdWU9PT0iY2xvc2VzdC1zaWRlIj9jPU1hdGgubWluKG8sZS1vLHMsbi1zKTphLnZhbHVlPT09ImZhcnRoZXN0LXNpZGUiP2M9TWF0aC5tYXgobyxlLW8scyxuLXMpOmEudmFsdWU9PT0iY2xvc2VzdC1jb3JuZXIiJiYoYz1NYXRoLm1pbihaaShbMCwwXSxbbyxzXSksWmkoWzAsbl0sW28sc10pLFppKFtlLG5dLFtvLHNdKSxaaShbZSwwXSxbbyxzXSkpKSkpLHt4Om8rdFswXSx5OnMrdFsxXSxyOmN9fXZhciBKeD0vXmxccypcKFxzKihbXGQuXSspXHMqXClccyooLiopL2ksdDI9L15yXHMqXChccyooW1xkLl0rKVxzKixccyooW1xkLl0rKVxzKixccyooW1xkLl0rKVxzKlwpXHMqKC4qKS9pLElmPS9ecFxzKlwoXHMqKFtheHluXSlccypcKVxzKiguKikvaSxKbD0vW1xkLl0rOigjW15cc10rfFteXCldK1wpKS9naTtmdW5jdGlvbiBlMih0KXt2YXIgZSxuPXQubGVuZ3RoO2lmKHRbbi0xXS5sZW5ndGg9KGU9dFtuLTFdLmxlbmd0aCkhPT1udWxsJiZlIT09dm9pZCAwP2U6e3R5cGU6IiUiLHZhbHVlOiIxMDAifSxuPjEpe3ZhciByO3RbMF0ubGVuZ3RoPShyPXRbMF0ubGVuZ3RoKSE9PW51bGwmJnIhPT12b2lkIDA/cjp7dHlwZToiJSIsdmFsdWU6IjAifX1mb3IodmFyIGk9MCxhPU51bWJlcih0WzBdLmxlbmd0aC52YWx1ZSksbz0xO288bjtvKyspe3ZhciBzLGM9KHM9dFtvXS5sZW5ndGgpPT09bnVsbHx8cz09PXZvaWQgMD92b2lkIDA6cy52YWx1ZTtpZighZ2UoYykmJiFnZShhKSl7Zm9yKHZhciBsPTE7bDxvLWk7bCsrKXRbaStsXS5sZW5ndGg9e3R5cGU6IiUiLHZhbHVlOiIiLmNvbmNhdChhKyhOdW1iZXIoYyktYSkqbC8oby1pKSl9O2k9byxhPU51bWJlcihjKX19fXZhciBuMj17bGVmdDoxODAsdG9wOi05MCxib3R0b206OTAscmlnaHQ6MCwibGVmdCB0b3AiOjIyNSwidG9wIGxlZnQiOjIyNSwibGVmdCBib3R0b20iOjEzNSwiYm90dG9tIGxlZnQiOjEzNSwicmlnaHQgdG9wIjotNDUsInRvcCByaWdodCI6LTQ1LCJyaWdodCBib3R0b20iOjQ1LCJib3R0b20gcmlnaHQiOjQ1fSxxaD1JcihmdW5jdGlvbih0KXt2YXIgZTtyZXR1cm4gdC50eXBlPT09ImFuZ3VsYXIiP2U9TnVtYmVyKHQudmFsdWUpOmU9bjJbdC52YWx1ZV18fDAsVW4oZSwiZGVnIil9KSxGZz1JcihmdW5jdGlvbih0KXt2YXIgZT01MCxuPTUwLHI9IiUiLGk9IiUiO2lmKCh0PT1udWxsP3ZvaWQgMDp0LnR5cGUpPT09InBvc2l0aW9uIil7dmFyIGE9dC52YWx1ZSxvPWEueCxzPWEueTsobz09bnVsbD92b2lkIDA6by50eXBlKT09PSJwb3NpdGlvbi1rZXl3b3JkIiYmKG8udmFsdWU9PT0ibGVmdCI/ZT0wOm8udmFsdWU9PT0iY2VudGVyIj9lPTUwOm8udmFsdWU9PT0icmlnaHQiP2U9MTAwOm8udmFsdWU9PT0idG9wIj9uPTA6by52YWx1ZT09PSJib3R0b20iJiYobj0xMDApKSwocz09bnVsbD92b2lkIDA6cy50eXBlKT09PSJwb3NpdGlvbi1rZXl3b3JkIiYmKHMudmFsdWU9PT0ibGVmdCI/ZT0wOnMudmFsdWU9PT0iY2VudGVyIj9uPTUwOnMudmFsdWU9PT0icmlnaHQiP2U9MTAwOnMudmFsdWU9PT0idG9wIj9uPTA6cy52YWx1ZT09PSJib3R0b20iJiYobj0xMDApKSwoKG89PW51bGw/dm9pZCAwOm8udHlwZSk9PT0icHgifHwobz09bnVsbD92b2lkIDA6by50eXBlKT09PSIlInx8KG89PW51bGw/dm9pZCAwOm8udHlwZSk9PT0iZW0iKSYmKHI9bz09bnVsbD92b2lkIDA6by50eXBlLGU9TnVtYmVyKG8udmFsdWUpKSwoKHM9PW51bGw/dm9pZCAwOnMudHlwZSk9PT0icHgifHwocz09bnVsbD92b2lkIDA6cy50eXBlKT09PSIlInx8KHM9PW51bGw/dm9pZCAwOnMudHlwZSk9PT0iZW0iKSYmKGk9cz09bnVsbD92b2lkIDA6cy50eXBlLG49TnVtYmVyKHMudmFsdWUpKX1yZXR1cm57Y3g6VW4oZSxyKSxjeTpVbihuLGkpfX0pLHIyPUlyKGZ1bmN0aW9uKHQpe2lmKHQuaW5kZXhPZigibGluZWFyIik+LTF8fHQuaW5kZXhPZigicmFkaWFsIik+LTEpe3ZhciBlPURnKHQpO3JldHVybiBlLm1hcChmdW5jdGlvbihzKXt2YXIgYz1zLnR5cGUsbD1zLm9yaWVudGF0aW9uLHU9cy5jb2xvclN0b3BzO2UyKHUpO3ZhciBmPXUubWFwKGZ1bmN0aW9uKF8pe3JldHVybntvZmZzZXQ6VW4oTnVtYmVyKF8ubGVuZ3RoLnZhbHVlKSwiJSIpLGNvbG9yOklnKF8pfX0pO2lmKGM9PT0ibGluZWFyLWdyYWRpZW50IilyZXR1cm4gbmV3IE5mKEJhLkxpbmVhckdyYWRpZW50LHthbmdsZTpsP3FoKGwpOlhzLHN0ZXBzOmZ9KTtpZihjPT09InJhZGlhbC1ncmFkaWVudCImJihsfHwobD1be3R5cGU6InNoYXBlIix2YWx1ZToiY2lyY2xlIn1dKSxsWzBdLnR5cGU9PT0ic2hhcGUiJiZsWzBdLnZhbHVlPT09ImNpcmNsZSIpKXt2YXIgZD1GZyhsWzBdLmF0KSxoPWQuY3gsdj1kLmN5LGc7aWYobFswXS5zdHlsZSl7dmFyIHk9bFswXS5zdHlsZSxiPXkudHlwZSx4PXkudmFsdWU7Yj09PSJleHRlbnQta2V5d29yZCI/Zz1LeCh4KTpnPVVuKHgsYil9cmV0dXJuIG5ldyBOZihCYS5SYWRpYWxHcmFkaWVudCx7Y3g6aCxjeTp2LHNpemU6ZyxzdGVwczpmfSl9fSl9dmFyIG49dFswXTtpZih0WzFdPT09IigifHx0WzJdPT09IigiKXtpZihuPT09ImwiKXt2YXIgcj1KeC5leGVjKHQpO2lmKHIpe3ZhciBpLGE9KChpPXJbMl0ubWF0Y2goSmwpKT09PW51bGx8fGk9PT12b2lkIDA/dm9pZCAwOmkubWFwKGZ1bmN0aW9uKHMpe3JldHVybiBzLnNwbGl0KCI6Iil9KSl8fFtdO3JldHVybltuZXcgTmYoQmEuTGluZWFyR3JhZGllbnQse2FuZ2xlOlVuKHBhcnNlRmxvYXQoclsxXSksImRlZyIpLHN0ZXBzOmEubWFwKGZ1bmN0aW9uKHMpe3ZhciBjPSgwLFRlLlopKHMsMiksbD1jWzBdLHU9Y1sxXTtyZXR1cm57b2Zmc2V0OlVuKE51bWJlcihsKSoxMDAsIiUiKSxjb2xvcjp1fX0pfSldfX1lbHNlIGlmKG49PT0iciIpe3ZhciBvPWkyKHQpO2lmKG8paWYoaXIobykpdD1vO2Vsc2UgcmV0dXJuW25ldyBOZihCYS5SYWRpYWxHcmFkaWVudCxvKV19ZWxzZSBpZihuPT09InAiKXJldHVybiBhMih0KX19KTtmdW5jdGlvbiBpMih0KXt2YXIgZT10Mi5leGVjKHQpO2lmKGUpe3ZhciBuLHI9KChuPWVbNF0ubWF0Y2goSmwpKT09PW51bGx8fG49PT12b2lkIDA/dm9pZCAwOm4ubWFwKGZ1bmN0aW9uKGkpe3JldHVybiBpLnNwbGl0KCI6Iil9KSl8fFtdO3JldHVybntjeDpVbig1MCwiJSIpLGN5OlVuKDUwLCIlIiksc3RlcHM6ci5tYXAoZnVuY3Rpb24oaSl7dmFyIGE9KDAsVGUuWikoaSwyKSxvPWFbMF0scz1hWzFdO3JldHVybntvZmZzZXQ6VW4oTnVtYmVyKG8pKjEwMCwiJSIpLGNvbG9yOnN9fSl9fXJldHVybiBudWxsfWZ1bmN0aW9uIGEyKHQpe3ZhciBlPUlmLmV4ZWModCk7aWYoZSl7dmFyIG49ZVsxXSxyPWVbMl07c3dpdGNoKG4pe2Nhc2UiYSI6bj0icmVwZWF0IjticmVhaztjYXNlIngiOm49InJlcGVhdC14IjticmVhaztjYXNlInkiOm49InJlcGVhdC15IjticmVhaztjYXNlIm4iOm49Im5vLXJlcGVhdCI7YnJlYWs7ZGVmYXVsdDpuPSJuby1yZXBlYXQifXJldHVybntpbWFnZTpyLHJlcGV0aXRpb246bn19cmV0dXJuIG51bGx9ZnVuY3Rpb24gdWsodCl7cmV0dXJuISF0LnR5cGUmJiEhdC52YWx1ZX1mdW5jdGlvbiBVcyh0KXtyZXR1cm4gdCYmISF0LmltYWdlfWZ1bmN0aW9uIERmKHQpe3JldHVybiB0JiYhZ2UodC5yKSYmIWdlKHQuZykmJiFnZSh0LmIpfXZhciBvcz1JcihmdW5jdGlvbih0KXtpZihVcyh0KSlyZXR1cm4oMCxFZS5aKSh7cmVwZXRpdGlvbjoicmVwZWF0In0sdCk7aWYoZ2UodCkmJih0PSIiKSx0PT09InRyYW5zcGFyZW50IilyZXR1cm4gWGg7aWYodD09PSJjdXJyZW50Q29sb3IiKXQ9ImJsYWNrIjtlbHNlIGlmKHQ9PT0ibm9uZSIpcmV0dXJuIFZoO3ZhciBlPXIyKHQpO2lmKGUpcmV0dXJuIGU7dmFyIG49S2wodCkscj1bMCwwLDAsMF07cmV0dXJuIG4hPT1udWxsJiYoclswXT1uLnJ8fDAsclsxXT1uLmd8fDAsclsyXT1uLmJ8fDAsclszXT1uLm9wYWNpdHkpLFVoLmFwcGx5KHZvaWQgMCxyKX0pO2Z1bmN0aW9uIG8yKHQsZSl7aWYoISghRGYodCl8fCFEZihlKSkpcmV0dXJuW1tOdW1iZXIodC5yKSxOdW1iZXIodC5nKSxOdW1iZXIodC5iKSxOdW1iZXIodC5hbHBoYSldLFtOdW1iZXIoZS5yKSxOdW1iZXIoZS5nKSxOdW1iZXIoZS5iKSxOdW1iZXIoZS5hbHBoYSldLGZ1bmN0aW9uKG4pe3ZhciByPW4uc2xpY2UoKTtpZihyWzNdKWZvcih2YXIgaT0wO2k8MztpKyspcltpXT1NYXRoLnJvdW5kKG1uKHJbaV0sMCwyNTUpKTtyZXR1cm4gclszXT1tbihyWzNdLDAsMSksInJnYmEoIi5jb25jYXQoci5qb2luKCIsIiksIikiKX1dfWZ1bmN0aW9uIHR1KHQsZSl7aWYoZ2UoZSkpcmV0dXJuIFVuKDAsInB4Iik7aWYoZT0iIi5jb25jYXQoZSkudHJpbSgpLnRvTG93ZXJDYXNlKCksaXNGaW5pdGUoTnVtYmVyKGUpKSl7aWYoInB4Ii5zZWFyY2godCk+PTApcmV0dXJuIFVuKE51bWJlcihlKSwicHgiKTtpZigiZGVnIi5zZWFyY2godCk+PTApcmV0dXJuIFVuKE51bWJlcihlKSwiZGVnIil9dmFyIG49W107ZT1lLnJlcGxhY2UodCxmdW5jdGlvbihpKXtyZXR1cm4gbi5wdXNoKGkpLCJVIi5jb25jYXQoaSl9KTt2YXIgcj0iVSgiLmNvbmNhdCh0LnNvdXJjZSwiKSIpO3JldHVybiBuLm1hcChmdW5jdGlvbihpKXtyZXR1cm4gVW4oTnVtYmVyKGUucmVwbGFjZShuZXcgUmVnRXhwKCJVIi5jb25jYXQoaSksImciKSwiIikucmVwbGFjZShuZXcgUmVnRXhwKHIsImciKSwiKjAiKSksaSl9KVswXX12YXIgQmc9ZnVuY3Rpb24oZSl7cmV0dXJuIHR1KG5ldyBSZWdFeHAoInB4IiwiZyIpLGUpfSxzMj1JcihCZyksYzI9ZnVuY3Rpb24oZSl7cmV0dXJuIHR1KG5ldyBSZWdFeHAoIiUiLCJnIiksZSl9O0lyKGMyKTt2YXIgQWE9ZnVuY3Rpb24oZSl7cmV0dXJuIFZuKGUpfHxpc0Zpbml0ZShOdW1iZXIoZSkpP1VuKE51bWJlcihlKXx8MCwicHgiKTp0dShuZXcgUmVnRXhwKCJweHwlfGVtfHJlbSIsImciKSxlKX0sS2g9SXIoQWEpLHpnPWZ1bmN0aW9uKGUpe3JldHVybiB0dShuZXcgUmVnRXhwKCJkZWd8cmFkfGdyYWR8dHVybiIsImciKSxlKX0scXM9SXIoemcpO2Z1bmN0aW9uIFdlKHQsZSxuLHIpe3ZhciBpPWFyZ3VtZW50cy5sZW5ndGg+NCYmYXJndW1lbnRzWzRdIT09dm9pZCAwP2FyZ3VtZW50c1s0XTowLGE9IiIsbz10LnZhbHVlfHwwLHM9ZS52YWx1ZXx8MCxjPVloKHQudW5pdCksbD10LmNvbnZlcnRUbyhjKSx1PWUuY29udmVydFRvKGMpO3JldHVybiBsJiZ1PyhvPWwudmFsdWUscz11LnZhbHVlLGE9WmgodC51bml0KSk6KFJuLmlzTGVuZ3RoKHQudW5pdCl8fFJuLmlzTGVuZ3RoKGUudW5pdCkpJiYobz1ibih0LGksbikscz1ibihlLGksbiksYT0icHgiKSxbbyxzLGZ1bmN0aW9uKGYpe3JldHVybiByJiYoZj1NYXRoLm1heChmLDApKSxmK2F9XX1mdW5jdGlvbiBxaSh0KXt2YXIgZT0wO3JldHVybiB0LnVuaXQ9PT1adC5rRGVncmVlcz9lPXQudmFsdWU6dC51bml0PT09WnQua1JhZGlhbnM/ZT1TYShOdW1iZXIodC52YWx1ZSkpOnQudW5pdD09PVp0LmtUdXJucz9lPXd4KE51bWJlcih0LnZhbHVlKSk6dC52YWx1ZSYmKGU9dC52YWx1ZSksZX1mdW5jdGlvbiBDaSh0LGUpe3ZhciBuO3JldHVybiBBcnJheS5pc0FycmF5KHQpP249dC5tYXAoZnVuY3Rpb24ocil7cmV0dXJuIE51bWJlcihyKX0pOmlyKHQpP249dC5zcGxpdCgiICIpLm1hcChmdW5jdGlvbihyKXtyZXR1cm4gTnVtYmVyKHIpfSk6Vm4odCkmJihuPVt0XSksZT09PTI/bi5sZW5ndGg9PT0xP1tuWzBdLG5bMF1dOltuWzBdLG5bMV1dOmU9PT00P24ubGVuZ3RoPT09MT9bblswXSxuWzBdLG5bMF0sblswXV06bi5sZW5ndGg9PT0yP1tuWzBdLG5bMV0sblswXSxuWzFdXTpuLmxlbmd0aD09PTM/W25bMF0sblsxXSxuWzJdLG5bMV1dOltuWzBdLG5bMV0sblsyXSxuWzNdXTplPT09ImV2ZW4iJiZuLmxlbmd0aCUyPT09MT9bXS5jb25jYXQoKDAsbG4uWikobiksKDAsbG4uWikobikpOm59ZnVuY3Rpb24gYm4odCxlLG4pe3ZhciByPWFyZ3VtZW50cy5sZW5ndGg+MyYmYXJndW1lbnRzWzNdIT09dm9pZCAwP2FyZ3VtZW50c1szXTohMTtpZih0LnVuaXQ9PT1adC5rUGl4ZWxzKXJldHVybiBOdW1iZXIodC52YWx1ZSk7aWYodC51bml0PT09WnQua1BlcmNlbnRhZ2UmJm4pe3ZhciBpPW4ubm9kZU5hbWU9PT1kdC5HUk9VUD9uLmdldExvY2FsQm91bmRzKCk6bi5nZXRHZW9tZXRyeUJvdW5kcygpO3JldHVybihyP2kubWluW2VdOjApK3QudmFsdWUvMTAwKmkuaGFsZkV4dGVudHNbZV0qMn1yZXR1cm4gMH12YXIgbDI9ZnVuY3Rpb24oZSl7cmV0dXJuIHR1KC9kZWd8cmFkfGdyYWR8dHVybnxweHwlL2csZSl9LHNzPVsiYmx1ciIsImJyaWdodG5lc3MiLCJkcm9wLXNoYWRvdyIsImNvbnRyYXN0IiwiZ3JheXNjYWxlIiwic2VwaWEiLCJzYXR1cmF0ZSIsImh1ZS1yb3RhdGUiLCJpbnZlcnQiXTtmdW5jdGlvbiB1Migpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dm9pZCAwP2FyZ3VtZW50c1swXToiIjtpZih0PXQudG9Mb3dlckNhc2UoKS50cmltKCksdD09PSJub25lIilyZXR1cm5bXTtmb3IodmFyIGU9L1xzKihbXHctXSspXCgoW14pXSopXCkvZyxuPVtdLHIsaT0wO3I9ZS5leGVjKHQpOyl7aWYoci5pbmRleCE9PWkpcmV0dXJuW107aWYoaT1yLmluZGV4K3JbMF0ubGVuZ3RoLHNzLmluZGV4T2YoclsxXSk+LTEmJm4ucHVzaCh7bmFtZTpyWzFdLHBhcmFtczpyWzJdLnNwbGl0KCIgIikubWFwKGZ1bmN0aW9uKGEpe3JldHVybiBsMihhKXx8b3MoYSl9KX0pLGUubGFzdEluZGV4PT09dC5sZW5ndGgpcmV0dXJuIG59cmV0dXJuW119ZnVuY3Rpb24gV2codCl7cmV0dXJuIHQudG9TdHJpbmcoKX12YXIgR2c9ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlPT0ibnVtYmVyIj9VbihlKTovXlxzKlstK10/KFxkKlwuKT9cZCtccyokLy50ZXN0KGUpP1VuKE51bWJlcihlKSk6VW4oMCl9LFFoPUlyKEdnKTtJcihmdW5jdGlvbih0KXtyZXR1cm4gaXIodCk/dC5zcGxpdCgiICIpLm1hcChRaCk6dC5tYXAoUWgpfSk7ZnVuY3Rpb24gSmgodCxlKXtyZXR1cm5bdCxlLFdnXX1mdW5jdGlvbiBldSh0LGUpe3JldHVybiBmdW5jdGlvbihuLHIpe3JldHVybltuLHIsZnVuY3Rpb24oaSl7cmV0dXJuIFdnKG1uKGksdCxlKSl9XX19ZnVuY3Rpb24gJGcodCxlKXtpZih0Lmxlbmd0aD09PWUubGVuZ3RoKXJldHVyblt0LGUsZnVuY3Rpb24obil7cmV0dXJuIG59XX1mdW5jdGlvbiBXYSh0KXtyZXR1cm4gdC5wYXJzZWRTdHlsZS5kLnRvdGFsTGVuZ3RoPT09MCYmKHQucGFyc2VkU3R5bGUuZC50b3RhbExlbmd0aD10eCh0LnBhcnNlZFN0eWxlLmQuYWJzb2x1dGVQYXRoKSksdC5wYXJzZWRTdHlsZS5kLnRvdGFsTGVuZ3RofWZ1bmN0aW9uIFpnKHQpe3JldHVybiB0LnBhcnNlZFN0eWxlLnBvaW50cy50b3RhbExlbmd0aD09PTAmJih0LnBhcnNlZFN0eWxlLnBvaW50cy50b3RhbExlbmd0aD1HYyh0LnBhcnNlZFN0eWxlLnBvaW50cy5wb2ludHMpKSx0LnBhcnNlZFN0eWxlLnBvaW50cy50b3RhbExlbmd0aH1mdW5jdGlvbiBqZih0KXtmb3IodmFyIGU9MDtlPHQubGVuZ3RoO2UrKyl7dmFyIG49dFtlLTFdLHI9dFtlXSxpPXJbMF07aWYoaT09PSJNIiYmbil7dmFyIGE9blswXSxvPVtyWzFdLHJbMl1dLHM9dm9pZCAwO2E9PT0iTCJ8fGE9PT0iTSI/cz1bblsxXSxuWzJdXTooYT09PSJDInx8YT09PSJBInx8YT09PSJRIikmJihzPVtuW24ubGVuZ3RoLTJdLG5bbi5sZW5ndGgtMV1dKSxzJiZudShvLHMpJiYodC5zcGxpY2UoZSwxKSxlLS0pfX19ZnVuY3Rpb24gbXIodCl7Zm9yKHZhciBlPSExLG49dC5sZW5ndGgscj0wO3I8bjtyKyspe3ZhciBpPXRbcl0sYT1pWzBdO2lmKGE9PT0iQyJ8fGE9PT0iQSJ8fGE9PT0iUSIpe2U9ITA7YnJlYWt9fXJldHVybiBlfWZ1bmN0aW9uIF9yKHQpe2Zvcih2YXIgZT1bXSxuPVtdLHI9W10saT0wO2k8dC5sZW5ndGg7aSsrKXt2YXIgYT10W2ldLG89YVswXTtvPT09Ik0iPyhyLmxlbmd0aCYmKG4ucHVzaChyKSxyPVtdKSxyLnB1c2goW2FbMV0sYVsyXV0pKTpvPT09IloiP3IubGVuZ3RoJiYoZS5wdXNoKHIpLHI9W10pOnIucHVzaChbYVsxXSxhWzJdXSl9cmV0dXJuIHIubGVuZ3RoPjAmJm4ucHVzaChyKSx7cG9seWdvbnM6ZSxwb2x5bGluZXM6bn19ZnVuY3Rpb24gbnUodCxlKXtyZXR1cm4gdFswXT09PWVbMF0mJnRbMV09PT1lWzFdfWZ1bmN0aW9uIGYyKHQsZSl7Zm9yKHZhciBuPVtdLHI9W10saT1bXSxhPTA7YTx0Lmxlbmd0aDthKyspe3ZhciBvPXRbYV0scz1vLmN1cnJlbnRQb2ludCxjPW8ucGFyYW1zLGw9by5wcmVQb2ludCx1PXZvaWQgMDtzd2l0Y2goby5jb21tYW5kKXtjYXNlIlEiOnU9dngobFswXSxsWzFdLGNbMV0sY1syXSxjWzNdLGNbNF0pO2JyZWFrO2Nhc2UiQyI6dT1JbyhsWzBdLGxbMV0sY1sxXSxjWzJdLGNbM10sY1s0XSxjWzVdLGNbNl0pO2JyZWFrO2Nhc2UiQSI6dmFyIGY9by5hcmNQYXJhbXM7dT1XYyhmLmN4LGYuY3ksZi5yeCxmLnJ5LGYueFJvdGF0aW9uLGYuc3RhcnRBbmdsZSxmLmVuZEFuZ2xlKTticmVhaztkZWZhdWx0Om4ucHVzaChzWzBdKSxyLnB1c2goc1sxXSk7YnJlYWt9dSYmKG8uYm94PXUsbi5wdXNoKHUueCx1LngrdS53aWR0aCksci5wdXNoKHUueSx1LnkrdS5oZWlnaHQpKSxlJiYoby5jb21tYW5kPT09IkwifHxvLmNvbW1hbmQ9PT0iTSIpJiZvLnByZVBvaW50JiZvLm5leHRQb2ludCYmaS5wdXNoKG8pfW49bi5maWx0ZXIoZnVuY3Rpb24odyl7cmV0dXJuIU51bWJlci5pc05hTih3KSYmdyE9PTEvMCYmdyE9PS0xLzB9KSxyPXIuZmlsdGVyKGZ1bmN0aW9uKHcpe3JldHVybiFOdW1iZXIuaXNOYU4odykmJnchPT0xLzAmJnchPT0tMS8wfSk7dmFyIGQ9b2YobiksaD1vZihyKSx2PUJjKG4pLGc9QmMocik7aWYoaS5sZW5ndGg9PT0wKXJldHVybnt4OmQseTpoLHdpZHRoOnYtZCxoZWlnaHQ6Zy1ofTtmb3IodmFyIHk9MDt5PGkubGVuZ3RoO3krKyl7dmFyIGI9aVt5XSx4PWIuY3VycmVudFBvaW50LF89dm9pZCAwO3hbMF09PT1kPyhfPUZmKGIsZSksZC09Xy54RXh0cmEpOnhbMF09PT12JiYoXz1GZihiLGUpLHYrPV8ueEV4dHJhKSx4WzFdPT09aD8oXz1GZihiLGUpLGgtPV8ueUV4dHJhKTp4WzFdPT09ZyYmKF89RmYoYixlKSxnKz1fLnlFeHRyYSl9cmV0dXJue3g6ZCx5Omgsd2lkdGg6di1kLGhlaWdodDpnLWh9fWZ1bmN0aW9uIEZmKHQsZSl7dmFyIG49dC5wcmVQb2ludCxyPXQuY3VycmVudFBvaW50LGk9dC5uZXh0UG9pbnQsYT1NYXRoLnBvdyhyWzBdLW5bMF0sMikrTWF0aC5wb3coclsxXS1uWzFdLDIpLG89TWF0aC5wb3coclswXS1pWzBdLDIpK01hdGgucG93KHJbMV0taVsxXSwyKSxzPU1hdGgucG93KG5bMF0taVswXSwyKStNYXRoLnBvdyhuWzFdLWlbMV0sMiksYz1NYXRoLmFjb3MoKGErby1zKS8oMipNYXRoLnNxcnQoYSkqTWF0aC5zcXJ0KG8pKSk7aWYoIWN8fE1hdGguc2luKGMpPT09MHx8JHMoYywwKSlyZXR1cm57eEV4dHJhOjAseUV4dHJhOjB9O3ZhciBsPU1hdGguYWJzKE1hdGguYXRhbjIoaVsxXS1yWzFdLGlbMF0tclswXSkpLHU9TWF0aC5hYnMoTWF0aC5hdGFuMihpWzBdLXJbMF0saVsxXS1yWzFdKSk7bD1sPk1hdGguUEkvMj9NYXRoLlBJLWw6bCx1PXU+TWF0aC5QSS8yP01hdGguUEktdTp1O3ZhciBmPXt4RXh0cmE6TWF0aC5jb3MoYy8yLWwpKihlLzIqKDEvTWF0aC5zaW4oYy8yKSkpLWUvMnx8MCx5RXh0cmE6TWF0aC5jb3ModS1jLzIpKihlLzIqKDEvTWF0aC5zaW4oYy8yKSkpLWUvMnx8MH07cmV0dXJuIGZ9ZnVuY3Rpb24gWWcodCxlKXtyZXR1cm5bZVswXSsoZVswXS10WzBdKSxlWzFdKyhlWzFdLXRbMV0pXX12YXIgSGc9ZnVuY3Rpb24oZSxuKXt2YXIgcj1lLngqbi54K2UueSpuLnksaT1NYXRoLnNxcnQoKE1hdGgucG93KGUueCwyKStNYXRoLnBvdyhlLnksMikpKihNYXRoLnBvdyhuLngsMikrTWF0aC5wb3cobi55LDIpKSksYT1lLngqbi55LWUueSpuLng8MD8tMToxLG89YSpNYXRoLmFjb3Moci9pKTtyZXR1cm4gb30sVmc9ZnVuY3Rpb24oZSxuLHIsaSxhLG8scyxjKXtuPU1hdGguYWJzKG4pLHI9TWF0aC5hYnMociksaT1zZihpLDM2MCk7dmFyIGw9Q24oaSk7aWYoZS54PT09cy54JiZlLnk9PT1zLnkpcmV0dXJue3g6ZS54LHk6ZS55LGVsbGlwdGljYWxBcmNBbmdsZTowfTtpZihuPT09MHx8cj09PTApcmV0dXJue3g6MCx5OjAsZWxsaXB0aWNhbEFyY0FuZ2xlOjB9O3ZhciB1PShlLngtcy54KS8yLGY9KGUueS1zLnkpLzIsZD17eDpNYXRoLmNvcyhsKSp1K01hdGguc2luKGwpKmYseTotTWF0aC5zaW4obCkqdStNYXRoLmNvcyhsKSpmfSxoPU1hdGgucG93KGQueCwyKS9NYXRoLnBvdyhuLDIpK01hdGgucG93KGQueSwyKS9NYXRoLnBvdyhyLDIpO2g+MSYmKG4qPU1hdGguc3FydChoKSxyKj1NYXRoLnNxcnQoaCkpO3ZhciB2PU1hdGgucG93KG4sMikqTWF0aC5wb3cociwyKS1NYXRoLnBvdyhuLDIpKk1hdGgucG93KGQueSwyKS1NYXRoLnBvdyhyLDIpKk1hdGgucG93KGQueCwyKSxnPU1hdGgucG93KG4sMikqTWF0aC5wb3coZC55LDIpK01hdGgucG93KHIsMikqTWF0aC5wb3coZC54LDIpLHk9di9nO3k9eTwwPzA6eTt2YXIgYj0oYSE9PW8/MTotMSkqTWF0aC5zcXJ0KHkpLHg9e3g6YioobipkLnkvcikseTpiKigtKHIqZC54KS9uKX0sXz17eDpNYXRoLmNvcyhsKSp4LngtTWF0aC5zaW4obCkqeC55KyhlLngrcy54KS8yLHk6TWF0aC5zaW4obCkqeC54K01hdGguY29zKGwpKngueSsoZS55K3MueSkvMn0sdz17eDooZC54LXgueCkvbix5OihkLnkteC55KS9yfSxPPUhnKHt4OjEseTowfSx3KSxFPXt4OigtZC54LXgueCkvbix5OigtZC55LXgueSkvcn0sTT1IZyh3LEUpOyFvJiZNPjA/TS09MipNYXRoLlBJOm8mJk08MCYmKE0rPTIqTWF0aC5QSSksTSU9MipNYXRoLlBJO3ZhciBrPU8rTSpjLEE9bipNYXRoLmNvcyhrKSxQPXIqTWF0aC5zaW4oayksQz17eDpNYXRoLmNvcyhsKSpBLU1hdGguc2luKGwpKlArXy54LHk6TWF0aC5zaW4obCkqQStNYXRoLmNvcyhsKSpQK18ueSxlbGxpcHRpY2FsQXJjU3RhcnRBbmdsZTpPLGVsbGlwdGljYWxBcmNFbmRBbmdsZTpPK00sZWxsaXB0aWNhbEFyY0FuZ2xlOmssZWxsaXB0aWNhbEFyY0NlbnRlcjpfLHJlc3VsdGFudFJ4Om4scmVzdWx0YW50Unk6cn07cmV0dXJuIEN9O2Z1bmN0aW9uIGQyKHQpe2Zvcih2YXIgZT1bXSxuPW51bGwscj1udWxsLGk9bnVsbCxhPTAsbz10Lmxlbmd0aCxzPTA7czxvO3MrKyl7dmFyIGM9dFtzXTtyPXRbcysxXTt2YXIgbD1jWzBdLHU9e2NvbW1hbmQ6bCxwcmVQb2ludDpuLHBhcmFtczpjLHN0YXJ0VGFuZ2VudDpudWxsLGVuZFRhbmdlbnQ6bnVsbCxjdXJyZW50UG9pbnQ6bnVsbCxuZXh0UG9pbnQ6bnVsbCxhcmNQYXJhbXM6bnVsbCxib3g6bnVsbCxjdWJpY1BhcmFtczpudWxsfTtzd2l0Y2gobCl7Y2FzZSJNIjppPVtjWzFdLGNbMl1dLGE9czticmVhaztjYXNlIkEiOnZhciBmPVVnKG4sYyk7dS5hcmNQYXJhbXM9ZjticmVha31pZihsPT09IloiKW49aSxyPXRbYSsxXTtlbHNle3ZhciBkPWMubGVuZ3RoO249W2NbZC0yXSxjW2QtMV1dfXImJnJbMF09PT0iWiImJihyPXRbYV0sZVthXSYmKGVbYV0ucHJlUG9pbnQ9bikpLHUuY3VycmVudFBvaW50PW4sZVthXSYmbnUobixlW2FdLmN1cnJlbnRQb2ludCkmJihlW2FdLnByZVBvaW50PXUucHJlUG9pbnQpO3ZhciBoPXI/W3Jbci5sZW5ndGgtMl0scltyLmxlbmd0aC0xXV06bnVsbDt1Lm5leHRQb2ludD1oO3ZhciB2PXUucHJlUG9pbnQ7aWYoWyJMIiwiSCIsIlYiXS5pbmNsdWRlcyhsKSl1LnN0YXJ0VGFuZ2VudD1bdlswXS1uWzBdLHZbMV0tblsxXV0sdS5lbmRUYW5nZW50PVtuWzBdLXZbMF0sblsxXS12WzFdXTtlbHNlIGlmKGw9PT0iUSIpe3ZhciBnPVtjWzFdLGNbMl1dO3Uuc3RhcnRUYW5nZW50PVt2WzBdLWdbMF0sdlsxXS1nWzFdXSx1LmVuZFRhbmdlbnQ9W25bMF0tZ1swXSxuWzFdLWdbMV1dfWVsc2UgaWYobD09PSJUIil7dmFyIHk9ZVtzLTFdLGI9WWcoeS5jdXJyZW50UG9pbnQsdik7eS5jb21tYW5kPT09IlEiPyh1LmNvbW1hbmQ9IlEiLHUuc3RhcnRUYW5nZW50PVt2WzBdLWJbMF0sdlsxXS1iWzFdXSx1LmVuZFRhbmdlbnQ9W25bMF0tYlswXSxuWzFdLWJbMV1dKToodS5jb21tYW5kPSJUTCIsdS5zdGFydFRhbmdlbnQ9W3ZbMF0tblswXSx2WzFdLW5bMV1dLHUuZW5kVGFuZ2VudD1bblswXS12WzBdLG5bMV0tdlsxXV0pfWVsc2UgaWYobD09PSJDIil7dmFyIHg9W2NbMV0sY1syXV0sXz1bY1szXSxjWzRdXTt1LnN0YXJ0VGFuZ2VudD1bdlswXS14WzBdLHZbMV0teFsxXV0sdS5lbmRUYW5nZW50PVtuWzBdLV9bMF0sblsxXS1fWzFdXSx1LnN0YXJ0VGFuZ2VudFswXT09PTAmJnUuc3RhcnRUYW5nZW50WzFdPT09MCYmKHUuc3RhcnRUYW5nZW50PVt4WzBdLV9bMF0seFsxXS1fWzFdXSksdS5lbmRUYW5nZW50WzBdPT09MCYmdS5lbmRUYW5nZW50WzFdPT09MCYmKHUuZW5kVGFuZ2VudD1bX1swXS14WzBdLF9bMV0teFsxXV0pfWVsc2UgaWYobD09PSJTIil7dmFyIHc9ZVtzLTFdLE89WWcody5jdXJyZW50UG9pbnQsdiksRT1bY1sxXSxjWzJdXTt3LmNvbW1hbmQ9PT0iQyI/KHUuY29tbWFuZD0iQyIsdS5zdGFydFRhbmdlbnQ9W3ZbMF0tT1swXSx2WzFdLU9bMV1dLHUuZW5kVGFuZ2VudD1bblswXS1FWzBdLG5bMV0tRVsxXV0pOih1LmNvbW1hbmQ9IlNRIix1LnN0YXJ0VGFuZ2VudD1bdlswXS1FWzBdLHZbMV0tRVsxXV0sdS5lbmRUYW5nZW50PVtuWzBdLUVbMF0sblsxXS1FWzFdXSl9ZWxzZSBpZihsPT09IkEiKXt2YXIgTT10cCh1LDApLGs9TS54LEE9TS55LFA9dHAodSwxLCExKSxDPVAueCxOPVAueTt1LnN0YXJ0VGFuZ2VudD1bayxBXSx1LmVuZFRhbmdlbnQ9W0MsTl19ZS5wdXNoKHUpfXJldHVybiBlfWZ1bmN0aW9uIHRwKHQsZSl7dmFyIG49YXJndW1lbnRzLmxlbmd0aD4yJiZhcmd1bWVudHNbMl0hPT12b2lkIDA/YXJndW1lbnRzWzJdOiEwLHI9dC5hcmNQYXJhbXMsaT1yLnJ4LGE9aT09PXZvaWQgMD8wOmksbz1yLnJ5LHM9bz09PXZvaWQgMD8wOm8sYz1yLnhSb3RhdGlvbixsPXIuYXJjRmxhZyx1PXIuc3dlZXBGbGFnLGY9Vmcoe3g6dC5wcmVQb2ludFswXSx5OnQucHJlUG9pbnRbMV19LGEscyxjLCEhbCwhIXUse3g6dC5jdXJyZW50UG9pbnRbMF0seTp0LmN1cnJlbnRQb2ludFsxXX0sZSksZD1WZyh7eDp0LnByZVBvaW50WzBdLHk6dC5wcmVQb2ludFsxXX0sYSxzLGMsISFsLCEhdSx7eDp0LmN1cnJlbnRQb2ludFswXSx5OnQuY3VycmVudFBvaW50WzFdfSxuP2UrLjAwNTplLS4wMDUpLGg9ZC54LWYueCx2PWQueS1mLnksZz1NYXRoLnNxcnQoaCpoK3Yqdik7cmV0dXJue3g6LWgvZyx5Oi12L2d9fWZ1bmN0aW9uIGNzKHQpe3JldHVybiBNYXRoLnNxcnQodFswXSp0WzBdK3RbMV0qdFsxXSl9ZnVuY3Rpb24gcnUodCxlKXtyZXR1cm4gY3ModCkqY3MoZSk/KHRbMF0qZVswXSt0WzFdKmVbMV0pLyhjcyh0KSpjcyhlKSk6MX1mdW5jdGlvbiBYZyh0LGUpe3JldHVybih0WzBdKmVbMV08dFsxXSplWzBdPy0xOjEpKk1hdGguYWNvcyhydSh0LGUpKX1mdW5jdGlvbiBVZyh0LGUpe3ZhciBuPWVbMV0scj1lWzJdLGk9c2YoQ24oZVszXSksTWF0aC5QSSoyKSxhPWVbNF0sbz1lWzVdLHM9dFswXSxjPXRbMV0sbD1lWzZdLHU9ZVs3XSxmPU1hdGguY29zKGkpKihzLWwpLzIrTWF0aC5zaW4oaSkqKGMtdSkvMixkPS0xKk1hdGguc2luKGkpKihzLWwpLzIrTWF0aC5jb3MoaSkqKGMtdSkvMixoPWYqZi8obipuKStkKmQvKHIqcik7aD4xJiYobio9TWF0aC5zcXJ0KGgpLHIqPU1hdGguc3FydChoKSk7dmFyIHY9bipuKihkKmQpK3IqciooZipmKSxnPXY/TWF0aC5zcXJ0KChuKm4qKHIqciktdikvdik6MTthPT09byYmKGcqPS0xKSxpc05hTihnKSYmKGc9MCk7dmFyIHk9cj9nKm4qZC9yOjAsYj1uP2cqLXIqZi9uOjAseD0ocytsKS8yK01hdGguY29zKGkpKnktTWF0aC5zaW4oaSkqYixfPShjK3UpLzIrTWF0aC5zaW4oaSkqeStNYXRoLmNvcyhpKSpiLHc9WyhmLXkpL24sKGQtYikvcl0sTz1bKC0xKmYteSkvbiwoLTEqZC1iKS9yXSxFPVhnKFsxLDBdLHcpLE09WGcodyxPKTtyZXR1cm4gcnUodyxPKTw9LTEmJihNPU1hdGguUEkpLHJ1KHcsTyk+PTEmJihNPTApLG89PT0wJiZNPjAmJihNLT0yKk1hdGguUEkpLG89PT0xJiZNPDAmJihNKz0yKk1hdGguUEkpLHtjeDp4LGN5Ol8scng6bnUodCxbbCx1XSk/MDpuLHJ5Om51KHQsW2wsdV0pPzA6cixzdGFydEFuZ2xlOkUsZW5kQW5nbGU6RStNLHhSb3RhdGlvbjppLGFyY0ZsYWc6YSxzd2VlcEZsYWc6b319ZnVuY3Rpb24gQmYodCxlLG4pe3JldHVybiB0LnJlZHVjZShmdW5jdGlvbihyLGkpe3ZhciBhPSIiO2lmKGlbMF09PT0iTSJ8fGlbMF09PT0iTCIpe3ZhciBvPXNuKGlbMV0saVsyXSwwKTtuJiZlcihvLG8sbiksYT0iIi5jb25jYXQoaVswXSkuY29uY2F0KG9bMF0sIiwiKS5jb25jYXQob1sxXSl9ZWxzZSBpZihpWzBdPT09IloiKWE9aVswXTtlbHNlIGlmKGlbMF09PT0iQyIpe3ZhciBzPXNuKGlbMV0saVsyXSwwKSxjPXNuKGlbM10saVs0XSwwKSxsPXNuKGlbNV0saVs2XSwwKTtuJiYoZXIocyxzLG4pLGVyKGMsYyxuKSxlcihsLGwsbikpLGE9IiIuY29uY2F0KGlbMF0pLmNvbmNhdChzWzBdLCIsIikuY29uY2F0KHNbMV0sIiwiKS5jb25jYXQoY1swXSwiLCIpLmNvbmNhdChjWzFdLCIsIikuY29uY2F0KGxbMF0sIiwiKS5jb25jYXQobFsxXSl9ZWxzZSBpZihpWzBdPT09IkEiKXt2YXIgdT1zbihpWzZdLGlbN10sMCk7biYmZXIodSx1LG4pLGE9IiIuY29uY2F0KGlbMF0pLmNvbmNhdChpWzFdLCIsIikuY29uY2F0KGlbMl0sIiwiKS5jb25jYXQoaVszXSwiLCIpLmNvbmNhdChpWzRdLCIsIikuY29uY2F0KGlbNV0sIiwiKS5jb25jYXQodVswXSwiLCIpLmNvbmNhdCh1WzFdKX1lbHNlIGlmKGlbMF09PT0iUSIpe3ZhciBmPXNuKGlbMV0saVsyXSwwKSxkPXNuKGlbM10saVs0XSwwKTtuJiYoZXIoZixmLG4pLGVyKGQsZCxuKSksYT0iIi5jb25jYXQoaVswXSkuY29uY2F0KGlbMV0sIiwiKS5jb25jYXQoaVsyXSwiLCIpLmNvbmNhdChpWzNdLCIsIikuY29uY2F0KGlbNF0sIn0iKX1yZXR1cm4gcis9YX0sIiIpfWZ1bmN0aW9uIGRhKHQsZSxuLHIpe3JldHVybltbIk0iLHQsZV0sWyJMIixuLHJdXX1mdW5jdGlvbiBLcyh0LGUsbixyKXt2YXIgaT0oLTErTWF0aC5zcXJ0KDIpKS8zKjQsYT10Kmksbz1lKmkscz1uLXQsYz1uK3QsbD1yLWUsdT1yK2U7cmV0dXJuW1siTSIscyxyXSxbIkMiLHMsci1vLG4tYSxsLG4sbF0sWyJDIixuK2EsbCxjLHItbyxjLHJdLFsiQyIsYyxyK28sbithLHUsbix1XSxbIkMiLG4tYSx1LHMscitvLHMscl0sWyJaIl1dfWZ1bmN0aW9uIGgyKHQsZSl7dmFyIG49dC5tYXAoZnVuY3Rpb24ocixpKXtyZXR1cm5baT09PTA/Ik0iOiJMIixyWzBdLHJbMV1dfSk7cmV0dXJuIGUmJm4ucHVzaChbIloiXSksbn1mdW5jdGlvbiBwMih0LGUsbixyLGkpe2lmKGkpe3ZhciBhPSgwLFRlLlopKGksNCksbz1hWzBdLHM9YVsxXSxjPWFbMl0sbD1hWzNdLHU9dD4wPzE6LTEsZj1lPjA/MTotMSxkPXUrZiE9PTA/MTowO3JldHVybltbIk0iLHUqbytuLHJdLFsiTCIsdC11KnMrbixyXSxzP1siQSIscyxzLDAsMCxkLHQrbixmKnMrcl06bnVsbCxbIkwiLHQrbixlLWYqYytyXSxjP1siQSIsYyxjLDAsMCxkLHQrbi11KmMsZStyXTpudWxsLFsiTCIsbit1KmwsZStyXSxsP1siQSIsbCxsLDAsMCxkLG4sZStyLWYqbF06bnVsbCxbIkwiLG4sZipvK3JdLG8/WyJBIixvLG8sMCwwLGQsdSpvK24scl06bnVsbCxbIloiXV0uZmlsdGVyKGZ1bmN0aW9uKGgpe3JldHVybiBofSl9cmV0dXJuW1siTSIsbixyXSxbIkwiLG4rdCxyXSxbIkwiLG4rdCxyK2VdLFsiTCIsbixyK2VdLFsiWiJdXX1mdW5jdGlvbiBxZyh0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06dC5nZXRMb2NhbFRyYW5zZm9ybSgpLG49W107c3dpdGNoKHQubm9kZU5hbWUpe2Nhc2UgZHQuTElORTp2YXIgcj10LnBhcnNlZFN0eWxlLGk9ci54MSxhPWk9PT12b2lkIDA/MDppLG89ci55MSxzPW89PT12b2lkIDA/MDpvLGM9ci54MixsPWM9PT12b2lkIDA/MDpjLHU9ci55MixmPXU9PT12b2lkIDA/MDp1O249ZGEoYSxzLGwsZik7YnJlYWs7Y2FzZSBkdC5DSVJDTEU6e3ZhciBkPXQucGFyc2VkU3R5bGUsaD1kLnIsdj1oPT09dm9pZCAwPzA6aCxnPWQuY3gseT1nPT09dm9pZCAwPzA6ZyxiPWQuY3kseD1iPT09dm9pZCAwPzA6YjtuPUtzKHYsdix5LHgpO2JyZWFrfWNhc2UgZHQuRUxMSVBTRTp7dmFyIF89dC5wYXJzZWRTdHlsZSx3PV8ucngsTz13PT09dm9pZCAwPzA6dyxFPV8ucnksTT1FPT09dm9pZCAwPzA6RSxrPV8uY3gsQT1rPT09dm9pZCAwPzA6ayxQPV8uY3ksQz1QPT09dm9pZCAwPzA6UDtuPUtzKE8sTSxBLEMpO2JyZWFrfWNhc2UgZHQuUE9MWUxJTkU6Y2FzZSBkdC5QT0xZR09OOnZhciBOPXQucGFyc2VkU3R5bGUucG9pbnRzO249aDIoTi5wb2ludHMsdC5ub2RlTmFtZT09PWR0LlBPTFlHT04pO2JyZWFrO2Nhc2UgZHQuUkVDVDp2YXIgTD10LnBhcnNlZFN0eWxlLFI9TC53aWR0aCxJPVI9PT12b2lkIDA/MDpSLEQ9TC5oZWlnaHQsRz1EPT09dm9pZCAwPzA6RCxGPUwueCxXPUY9PT12b2lkIDA/MDpGLFg9TC55LFE9WD09PXZvaWQgMD8wOlgsdHQ9TC5yYWRpdXMsbnQ9dHQmJnR0LnNvbWUoZnVuY3Rpb24obHQpe3JldHVybiBsdCE9PTB9KTtuPXAyKEksRyxXLFEsbnQmJnR0Lm1hcChmdW5jdGlvbihsdCl7cmV0dXJuIG1uKGx0LDAsTWF0aC5taW4oTWF0aC5hYnMoSSkvMixNYXRoLmFicyhHKS8yKSl9KSk7YnJlYWs7Y2FzZSBkdC5QQVRIOnZhciBodD10LnBhcnNlZFN0eWxlLmQuYWJzb2x1dGVQYXRoO249KDAsbG4uWikoaHQpO2JyZWFrfWlmKG4ubGVuZ3RoKXJldHVybiBCZihuLHQsZSl9ZnVuY3Rpb24gZmsodCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOjAsbj1hcmd1bWVudHMubGVuZ3RoPjImJmFyZ3VtZW50c1syXSE9PXZvaWQgMD9hcmd1bWVudHNbMl06MCxyPWFyZ3VtZW50cy5sZW5ndGg+MyYmYXJndW1lbnRzWzNdIT09dm9pZCAwP2FyZ3VtZW50c1szXTowLGk9YXJndW1lbnRzLmxlbmd0aD40JiZhcmd1bWVudHNbNF0hPT12b2lkIDA/YXJndW1lbnRzWzRdOjAsYT10Lm1hcChmdW5jdGlvbihvLHMpe3ZhciBjPW9bMF0sbD10W3MrMV0sdT1zPT09MCYmKGUhPT0wfHxuIT09MCksZj0ocz09PXQubGVuZ3RoLTF8fGwmJihsWzBdPT09Ik0ifHxsWzBdPT09IloiKSkmJnIhPT0wJiZpIT09MCxkPXU/W2Usbl06WzAsMF0saD1fc2xpY2VkVG9BcnJheShkLDIpLHY9aFswXSxnPWhbMV0seT1mP1tyLGldOlswLDBdLGI9X3NsaWNlZFRvQXJyYXkoeSwyKSx4PWJbMF0sXz1iWzFdO3N3aXRjaChjKXtjYXNlIk0iOnJldHVybiJNICIuY29uY2F0KG9bMV0rdiwiLCIpLmNvbmNhdChvWzJdK2cpO2Nhc2UiTCI6cmV0dXJuIkwgIi5jb25jYXQob1sxXSt4LCIsIikuY29uY2F0KG9bMl0rXyk7Y2FzZSJRIjpyZXR1cm4iUSAiLmNvbmNhdChvWzFdLCIgIikuY29uY2F0KG9bMl0sIiwiKS5jb25jYXQob1szXSt4LCIgIikuY29uY2F0KG9bNF0rXyk7Y2FzZSJDIjpyZXR1cm4iQyAiLmNvbmNhdChvWzFdLCIgIikuY29uY2F0KG9bMl0sIiwiKS5jb25jYXQob1szXSwiICIpLmNvbmNhdChvWzRdLCIsIikuY29uY2F0KG9bNV0reCwiICIpLmNvbmNhdChvWzZdK18pO2Nhc2UiQSI6cmV0dXJuIkEgIi5jb25jYXQob1sxXSwiICIpLmNvbmNhdChvWzJdLCIgIikuY29uY2F0KG9bM10sIiAiKS5jb25jYXQob1s0XSwiICIpLmNvbmNhdChvWzVdLCIgIikuY29uY2F0KG9bNl0sIiAiKS5jb25jYXQob1s3XSkuY29uY2F0KGY/IiBMICIuY29uY2F0KG9bNl0rciwiLCIpLmNvbmNhdChvWzddK2kpOiIiKTtjYXNlIloiOnJldHVybiJaIjtkZWZhdWx0OnJldHVybiBudWxsfX0pLmZpbHRlcihmdW5jdGlvbihvKXtyZXR1cm4gbyE9PW51bGx9KS5qb2luKCIgIik7cmV0dXJufmEuaW5kZXhPZigiTmFOIik/IiI6YX12YXIgS2c9ZnVuY3Rpb24oZSl7aWYoZT09PSIifHxBcnJheS5pc0FycmF5KGUpJiZlLmxlbmd0aD09PTApcmV0dXJue2Fic29sdXRlUGF0aDpbXSxoYXNBcmM6ITEsc2VnbWVudHM6W10scG9seWdvbnM6W10scG9seWxpbmVzOltdLGN1cnZlOm51bGwsdG90YWxMZW5ndGg6MCxyZWN0Ont4OjAseTowLHdpZHRoOjAsaGVpZ2h0OjB9fTt2YXIgbjt0cnl7bj1qbChlKX1jYXRjaChoKXtuPWpsKCIiKSxjb25zb2xlLmVycm9yKCJbZ106IEludmFsaWQgU1ZHIFBhdGggZGVmaW5pdGlvbjogIi5jb25jYXQoZSkpfWpmKG4pO3ZhciByPW1yKG4pLGk9X3IobiksYT1pLnBvbHlnb25zLG89aS5wb2x5bGluZXMscz1kMihuKSxjPWYyKHMsMCksbD1jLngsdT1jLnksZj1jLndpZHRoLGQ9Yy5oZWlnaHQ7cmV0dXJue2Fic29sdXRlUGF0aDpuLGhhc0FyYzpyLHNlZ21lbnRzOnMscG9seWdvbnM6YSxwb2x5bGluZXM6byx0b3RhbExlbmd0aDowLHJlY3Q6e3g6TnVtYmVyLmlzRmluaXRlKGwpP2w6MCx5Ok51bWJlci5pc0Zpbml0ZSh1KT91OjAsd2lkdGg6TnVtYmVyLmlzRmluaXRlKGYpP2Y6MCxoZWlnaHQ6TnVtYmVyLmlzRmluaXRlKGQpP2Q6MH19fSxRZz1JcihLZyk7ZnVuY3Rpb24gdW8odCl7cmV0dXJuIGlyKHQpP1FnKHQpOktnKHQpfWZ1bmN0aW9uIFZlKHQsZSxuKXt2YXIgcj10LmN1cnZlLGk9ZS5jdXJ2ZTsoIXJ8fHIubGVuZ3RoPT09MCkmJihyPVlpKHQuYWJzb2x1dGVQYXRoLCExKSx0LmN1cnZlPXIpLCghaXx8aS5sZW5ndGg9PT0wKSYmKGk9WWkoZS5hYnNvbHV0ZVBhdGgsITEpLGUuY3VydmU9aSk7dmFyIGE9W3IsaV07ci5sZW5ndGghPT1pLmxlbmd0aCYmKGE9bGYocixpKSk7dmFyIG89SGkoYVswXSkhPT1IaShhWzFdKT9ucyhhWzBdKTpBaChhWzBdKTtyZXR1cm5bbyx1ZihhWzFdLG8pLGZ1bmN0aW9uKHMpe3JldHVybiBzfV19ZnVuY3Rpb24gSmcodCxlKXt2YXIgbjtyZXR1cm4gaXIodCk/bj10LnNwbGl0KCIgIikubWFwKGZ1bmN0aW9uKHIpe3ZhciBpPXIuc3BsaXQoIiwiKSxhPSgwLFRlLlopKGksMiksbz1hWzBdLHM9YVsxXTtyZXR1cm5bTnVtYmVyKG8pLE51bWJlcihzKV19KTpuPXQse3BvaW50czpuLHRvdGFsTGVuZ3RoOjAsc2VnbWVudHM6W119fWZ1bmN0aW9uIFRhKHQsZSl7cmV0dXJuW3QucG9pbnRzLGUucG9pbnRzLGZ1bmN0aW9uKG4pe3JldHVybiBufV19dmFyIHVyPW51bGwsWGM9L1xzKihcdyspXCgoW14pXSopXCkvZztmdW5jdGlvbiBHZSh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIG49MDtyZXR1cm4gdC5tYXAoZnVuY3Rpb24ocil7cmV0dXJuIHI9PT11cj9lW24rK106cn0pfX1mdW5jdGlvbiBRcyh0KXtyZXR1cm4gdH12YXIgVWM9e21hdHJpeDpbIk5OTk5OTiIsW3VyLHVyLDAsMCx1cix1ciwwLDAsMCwwLDEsMCx1cix1ciwwLDFdLFFzXSxtYXRyaXgzZDpbIk5OTk5OTk5OTk5OTk5OTk4iLFFzXSxyb3RhdGU6WyJBIl0scm90YXRlWDpbIkEiXSxyb3RhdGVZOlsiQSJdLHJvdGF0ZVo6WyJBIl0scm90YXRlM2Q6WyJOTk5BIl0scGVyc3BlY3RpdmU6WyJMIl0sc2NhbGU6WyJObiIsR2UoW3VyLHVyLG5ldyBSbigxKV0pLFFzXSxzY2FsZVg6WyJOIixHZShbdXIsbmV3IFJuKDEpLG5ldyBSbigxKV0pLEdlKFt1cixuZXcgUm4oMSldKV0sc2NhbGVZOlsiTiIsR2UoW25ldyBSbigxKSx1cixuZXcgUm4oMSldKSxHZShbbmV3IFJuKDEpLHVyXSldLHNjYWxlWjpbIk4iLEdlKFtuZXcgUm4oMSksbmV3IFJuKDEpLHVyXSldLHNjYWxlM2Q6WyJOTk4iLFFzXSxza2V3OlsiQWEiLG51bGwsUXNdLHNrZXdYOlsiQSIsbnVsbCxHZShbdXIsWHNdKV0sc2tld1k6WyJBIixudWxsLEdlKFtYcyx1cl0pXSx0cmFuc2xhdGU6WyJUdCIsR2UoW3VyLHVyLHphXSksUXNdLHRyYW5zbGF0ZVg6WyJUIixHZShbdXIsemEsemFdKSxHZShbdXIsemFdKV0sdHJhbnNsYXRlWTpbIlQiLEdlKFt6YSx1cix6YV0pLEdlKFt6YSx1cl0pXSx0cmFuc2xhdGVaOlsiTCIsR2UoW3phLHphLHVyXSldLHRyYW5zbGF0ZTNkOlsiVFRMIixRc119O2Z1bmN0aW9uIGl1KHQpe2Zvcih2YXIgZT1bXSxuPXQubGVuZ3RoLHI9MDtyPG47cisrKXt2YXIgaT10W3JdLGE9aVswXSxvPWkuc2xpY2UoMSk7YT09PSJ0cmFuc2xhdGUifHxhPT09InNrZXciP28ubGVuZ3RoPT09MSYmby5wdXNoKDApOmE9PT0ic2NhbGUiJiZvLmxlbmd0aD09PTEmJm8ucHVzaChvWzBdKTt2YXIgcz1VY1thXTtpZighcylyZXR1cm5bXTt2YXIgYz1vLm1hcChmdW5jdGlvbihsKXtyZXR1cm4gVW4obCl9KTtlLnB1c2goe3Q6YSxkOmN9KX1yZXR1cm4gZX1mdW5jdGlvbiB0eSh0KXtpZihBcnJheS5pc0FycmF5KHQpKXJldHVybiBpdSh0KTtpZih0PSh0fHwibm9uZSIpLnRyaW0oKSx0PT09Im5vbmUiKXJldHVybltdO3ZhciBlPVtdLG4scj0wO2ZvcihYYy5sYXN0SW5kZXg9MDtuPVhjLmV4ZWModCk7KXtpZihuLmluZGV4IT09cilyZXR1cm5bXTtyPW4uaW5kZXgrblswXS5sZW5ndGg7dmFyIGk9blsxXSxhPVVjW2ldO2lmKCFhKXJldHVybltdO3ZhciBvPW5bMl0uc3BsaXQoIiwiKSxzPWFbMF07aWYocy5sZW5ndGg8by5sZW5ndGgpcmV0dXJuW107Zm9yKHZhciBjPVtdLGw9MDtsPHMubGVuZ3RoO2wrKyl7dmFyIHU9b1tsXSxmPXNbbF0sZD12b2lkIDA7aWYodT9kPXtBOmZ1bmN0aW9uKHYpe3JldHVybiB2LnRyaW0oKT09PSIwIj9Yczpxcyh2KX0sTjpRaCxUOktoLEw6czJ9W2YudG9VcHBlckNhc2UoKV0odSk6ZD17YTpYcyxuOmNbMF0sdDp6YX1bZl0sZD09PXZvaWQgMClyZXR1cm5bXTtjLnB1c2goZCl9aWYoZS5wdXNoKHt0OmksZDpjfSksWGMubGFzdEluZGV4PT09dC5sZW5ndGgpcmV0dXJuIGV9cmV0dXJuW119ZnVuY3Rpb24gdjIodCl7aWYoQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gaXUodCk7aWYodD0odHx8Im5vbmUiKS50cmltKCksdD09PSJub25lIilyZXR1cm5bXTt2YXIgZT1bXSxuLHI9MDtmb3IoWGMubGFzdEluZGV4PTA7bj1YYy5leGVjKHQpOyl7aWYobi5pbmRleCE9PXIpcmV0dXJuW107cj1uLmluZGV4K25bMF0ubGVuZ3RoO3ZhciBpPW5bMV0sYT1VY1tpXTtpZighYSlyZXR1cm5bXTt2YXIgbz1uWzJdLnNwbGl0KCIsIikscz1hWzBdO2lmKHMubGVuZ3RoPG8ubGVuZ3RoKXJldHVybltdO2Zvcih2YXIgYz1bXSxsPTA7bDxzLmxlbmd0aDtsKyspe3ZhciB1PW9bbF0sZj1zW2xdLGQ9dm9pZCAwO2lmKHU/ZD17QTpmdW5jdGlvbih2KXtyZXR1cm4gdi50cmltKCk9PT0iMCI/WHM6emcodil9LE46R2csVDpBYSxMOkJnfVtmLnRvVXBwZXJDYXNlKCldKHUpOmQ9e2E6WHMsbjpjWzBdLHQ6emF9W2ZdLGQ9PT12b2lkIDApcmV0dXJuW107Yy5wdXNoKGQpfWlmKGUucHVzaCh7dDppLGQ6Y30pLFhjLmxhc3RJbmRleD09PXQubGVuZ3RoKXJldHVybiBlfXJldHVybltdfWZ1bmN0aW9uIGcyKHQpe3ZhciBlLG4scixpO3N3aXRjaCh0LnQpe2Nhc2Uicm90YXRlWCI6cmV0dXJuIGk9Q24ocWkodC5kWzBdKSksWzEsMCwwLDAsMCxNYXRoLmNvcyhpKSxNYXRoLnNpbihpKSwwLDAsLU1hdGguc2luKGkpLE1hdGguY29zKGkpLDAsMCwwLDAsMV07Y2FzZSJyb3RhdGVZIjpyZXR1cm4gaT1DbihxaSh0LmRbMF0pKSxbTWF0aC5jb3MoaSksMCwtTWF0aC5zaW4oaSksMCwwLDEsMCwwLE1hdGguc2luKGkpLDAsTWF0aC5jb3MoaSksMCwwLDAsMCwxXTtjYXNlInJvdGF0ZSI6Y2FzZSJyb3RhdGVaIjpyZXR1cm4gaT1DbihxaSh0LmRbMF0pKSxbTWF0aC5jb3MoaSksTWF0aC5zaW4oaSksMCwwLC1NYXRoLnNpbihpKSxNYXRoLmNvcyhpKSwwLDAsMCwwLDEsMCwwLDAsMCwxXTtjYXNlInJvdGF0ZTNkIjplPXQuZFswXS52YWx1ZSxuPXQuZFsxXS52YWx1ZSxyPXQuZFsyXS52YWx1ZSxpPUNuKHFpKHQuZFszXSkpO3ZhciBhPWUqZStuKm4rcipyO2lmKGE9PT0wKWU9MSxuPTAscj0wO2Vsc2UgaWYoYSE9PTEpe3ZhciBvPU1hdGguc3FydChhKTtlLz1vLG4vPW8sci89b312YXIgcz1NYXRoLnNpbihpLzIpLGM9cypNYXRoLmNvcyhpLzIpLGw9cypzO3JldHVyblsxLTIqKG4qbityKnIpKmwsMiooZSpuKmwrcipjKSwyKihlKnIqbC1uKmMpLDAsMiooZSpuKmwtcipjKSwxLTIqKGUqZStyKnIpKmwsMioobipyKmwrZSpjKSwwLDIqKGUqcipsK24qYyksMioobipyKmwtZSpjKSwxLTIqKGUqZStuKm4pKmwsMCwwLDAsMCwxXTtjYXNlInNjYWxlIjpyZXR1cm5bdC5kWzBdLnZhbHVlLDAsMCwwLDAsdC5kWzFdLnZhbHVlLDAsMCwwLDAsMSwwLDAsMCwwLDFdO2Nhc2Uic2NhbGVYIjpyZXR1cm5bdC5kWzBdLnZhbHVlLDAsMCwwLDAsMSwwLDAsMCwwLDEsMCwwLDAsMCwxXTtjYXNlInNjYWxlWSI6cmV0dXJuWzEsMCwwLDAsMCx0LmRbMF0udmFsdWUsMCwwLDAsMCwxLDAsMCwwLDAsMV07Y2FzZSJzY2FsZVoiOnJldHVyblsxLDAsMCwwLDAsMSwwLDAsMCwwLHQuZFswXS52YWx1ZSwwLDAsMCwwLDFdO2Nhc2Uic2NhbGUzZCI6cmV0dXJuW3QuZFswXS52YWx1ZSwwLDAsMCwwLHQuZFsxXS52YWx1ZSwwLDAsMCwwLHQuZFsyXS52YWx1ZSwwLDAsMCwwLDFdO2Nhc2Uic2tldyI6dmFyIHU9Q24ocWkodC5kWzBdKSksZj1DbihxaSh0LmRbMV0pKTtyZXR1cm5bMSxNYXRoLnRhbihmKSwwLDAsTWF0aC50YW4odSksMSwwLDAsMCwwLDEsMCwwLDAsMCwxXTtjYXNlInNrZXdYIjpyZXR1cm4gaT1DbihxaSh0LmRbMF0pKSxbMSwwLDAsMCxNYXRoLnRhbihpKSwxLDAsMCwwLDAsMSwwLDAsMCwwLDFdO2Nhc2Uic2tld1kiOnJldHVybiBpPUNuKHFpKHQuZFswXSkpLFsxLE1hdGgudGFuKGkpLDAsMCwwLDEsMCwwLDAsMCwxLDAsMCwwLDAsMV07Y2FzZSJ0cmFuc2xhdGUiOnJldHVybiBlPWJuKHQuZFswXSwwLG51bGwpfHwwLG49Ym4odC5kWzFdLDAsbnVsbCl8fDAsWzEsMCwwLDAsMCwxLDAsMCwwLDAsMSwwLGUsbiwwLDFdO2Nhc2UidHJhbnNsYXRlWCI6cmV0dXJuIGU9Ym4odC5kWzBdLDAsbnVsbCl8fDAsWzEsMCwwLDAsMCwxLDAsMCwwLDAsMSwwLGUsMCwwLDFdO2Nhc2UidHJhbnNsYXRlWSI6cmV0dXJuIG49Ym4odC5kWzBdLDAsbnVsbCl8fDAsWzEsMCwwLDAsMCwxLDAsMCwwLDAsMSwwLDAsbiwwLDFdO2Nhc2UidHJhbnNsYXRlWiI6cmV0dXJuIHI9Ym4odC5kWzBdLDAsbnVsbCl8fDAsWzEsMCwwLDAsMCwxLDAsMCwwLDAsMSwwLDAsMCxyLDFdO2Nhc2UidHJhbnNsYXRlM2QiOnJldHVybiBlPWJuKHQuZFswXSwwLG51bGwpfHwwLG49Ym4odC5kWzFdLDAsbnVsbCl8fDAscj1ibih0LmRbMl0sMCxudWxsKXx8MCxbMSwwLDAsMCwwLDEsMCwwLDAsMCwxLDAsZSxuLHIsMV07Y2FzZSJwZXJzcGVjdGl2ZSI6dmFyIGQ9Ym4odC5kWzBdLDAsbnVsbCl8fDAsaD1kPy0xL2Q6MDtyZXR1cm5bMSwwLDAsMCwwLDEsMCwwLDAsMCwxLGgsMCwwLDAsMV07Y2FzZSJtYXRyaXgiOnJldHVyblt0LmRbMF0udmFsdWUsdC5kWzFdLnZhbHVlLDAsMCx0LmRbMl0udmFsdWUsdC5kWzNdLnZhbHVlLDAsMCwwLDAsMSwwLHQuZFs0XS52YWx1ZSx0LmRbNV0udmFsdWUsMCwxXTtjYXNlIm1hdHJpeDNkIjpyZXR1cm4gdC5kLm1hcChmdW5jdGlvbih2KXtyZXR1cm4gdi52YWx1ZX0pfX1mdW5jdGlvbiB5Mih0LGUpe3JldHVyblt0WzBdKmVbMF0rdFs0XSplWzFdK3RbOF0qZVsyXSt0WzEyXSplWzNdLHRbMV0qZVswXSt0WzVdKmVbMV0rdFs5XSplWzJdK3RbMTNdKmVbM10sdFsyXSplWzBdK3RbNl0qZVsxXSt0WzEwXSplWzJdK3RbMTRdKmVbM10sdFszXSplWzBdK3RbN10qZVsxXSt0WzExXSplWzJdK3RbMTVdKmVbM10sdFswXSplWzRdK3RbNF0qZVs1XSt0WzhdKmVbNl0rdFsxMl0qZVs3XSx0WzFdKmVbNF0rdFs1XSplWzVdK3RbOV0qZVs2XSt0WzEzXSplWzddLHRbMl0qZVs0XSt0WzZdKmVbNV0rdFsxMF0qZVs2XSt0WzE0XSplWzddLHRbM10qZVs0XSt0WzddKmVbNV0rdFsxMV0qZVs2XSt0WzE1XSplWzddLHRbMF0qZVs4XSt0WzRdKmVbOV0rdFs4XSplWzEwXSt0WzEyXSplWzExXSx0WzFdKmVbOF0rdFs1XSplWzldK3RbOV0qZVsxMF0rdFsxM10qZVsxMV0sdFsyXSplWzhdK3RbNl0qZVs5XSt0WzEwXSplWzEwXSt0WzE0XSplWzExXSx0WzNdKmVbOF0rdFs3XSplWzldK3RbMTFdKmVbMTBdK3RbMTVdKmVbMTFdLHRbMF0qZVsxMl0rdFs0XSplWzEzXSt0WzhdKmVbMTRdK3RbMTJdKmVbMTVdLHRbMV0qZVsxMl0rdFs1XSplWzEzXSt0WzldKmVbMTRdK3RbMTNdKmVbMTVdLHRbMl0qZVsxMl0rdFs2XSplWzEzXSt0WzEwXSplWzE0XSt0WzE0XSplWzE1XSx0WzNdKmVbMTJdK3RbN10qZVsxM10rdFsxMV0qZVsxNF0rdFsxNV0qZVsxNV1dfWZ1bmN0aW9uIG0yKHQpe3JldHVybiB0Lmxlbmd0aD09PTA/WzEsMCwwLDAsMCwxLDAsMCwwLDAsMSwwLDAsMCwwLDFdOnQubWFwKGcyKS5yZWR1Y2UoeTIpfWZ1bmN0aW9uIGV5KHQpe3ZhciBlPVswLDAsMF0sbj1bMSwxLDFdLHI9WzAsMCwwXSxpPVswLDAsMCwxXSxhPVswLDAsMCwxXTtyZXR1cm4gRXgobTIodCksZSxuLHIsaSxhKSxbW2UsbixyLGEsaV1dfXZhciBiMj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQocixpKXtmb3IodmFyIGE9W1swLDAsMCwwXSxbMCwwLDAsMF0sWzAsMCwwLDBdLFswLDAsMCwwXV0sbz0wO288NDtvKyspZm9yKHZhciBzPTA7czw0O3MrKylmb3IodmFyIGM9MDtjPDQ7YysrKWFbb11bc10rPWlbb11bY10qcltjXVtzXTtyZXR1cm4gYX1mdW5jdGlvbiBlKHIpe3JldHVybiByWzBdWzJdPT09MCYmclswXVszXT09PTAmJnJbMV1bMl09PT0wJiZyWzFdWzNdPT09MCYmclsyXVswXT09PTAmJnJbMl1bMV09PT0wJiZyWzJdWzJdPT09MSYmclsyXVszXT09PTAmJnJbM11bMl09PT0wJiZyWzNdWzNdPT09MX1mdW5jdGlvbiBuKHIsaSxhLG8scyl7Zm9yKHZhciBjPVtbMSwwLDAsMF0sWzAsMSwwLDBdLFswLDAsMSwwXSxbMCwwLDAsMV1dLGw9MDtsPDQ7bCsrKWNbbF1bM109c1tsXTtmb3IodmFyIHU9MDt1PDM7dSsrKWZvcih2YXIgZj0wO2Y8MztmKyspY1szXVt1XSs9cltmXSpjW2ZdW3VdO3ZhciBkPW9bMF0saD1vWzFdLHY9b1syXSxnPW9bM10seT1bWzEsMCwwLDBdLFswLDEsMCwwXSxbMCwwLDEsMF0sWzAsMCwwLDFdXTt5WzBdWzBdPTEtMiooaCpoK3YqdikseVswXVsxXT0yKihkKmgtdipnKSx5WzBdWzJdPTIqKGQqditoKmcpLHlbMV1bMF09MiooZCpoK3YqZykseVsxXVsxXT0xLTIqKGQqZCt2KnYpLHlbMV1bMl09MiooaCp2LWQqZykseVsyXVswXT0yKihkKnYtaCpnKSx5WzJdWzFdPTIqKGgqditkKmcpLHlbMl1bMl09MS0yKihkKmQraCpoKSxjPXQoYyx5KTt2YXIgYj1bWzEsMCwwLDBdLFswLDEsMCwwXSxbMCwwLDEsMF0sWzAsMCwwLDFdXTthWzJdJiYoYlsyXVsxXT1hWzJdLGM9dChjLGIpKSxhWzFdJiYoYlsyXVsxXT0wLGJbMl1bMF09YVswXSxjPXQoYyxiKSksYVswXSYmKGJbMl1bMF09MCxiWzFdWzBdPWFbMF0sYz10KGMsYikpO2Zvcih2YXIgeD0wO3g8Mzt4KyspZm9yKHZhciBfPTA7XzwzO18rKyljW3hdW19dKj1pW3hdO3JldHVybiBlKGMpP1tjWzBdWzBdLGNbMF1bMV0sY1sxXVswXSxjWzFdWzFdLGNbM11bMF0sY1szXVsxXV06Y1swXS5jb25jYXQoY1sxXSxjWzJdLGNbM10pfXJldHVybiBufSgpO2Z1bmN0aW9uIHgyKHQpe3JldHVybiB0LnRvRml4ZWQoNikucmVwbGFjZSgiLjAwMDAwMCIsIiIpfWZ1bmN0aW9uIGVwKHQsZSl7dmFyIG4scjtyZXR1cm4gdC5kZWNvbXBvc2l0aW9uUGFpciE9PWUmJih0LmRlY29tcG9zaXRpb25QYWlyPWUsbj1leSh0KSksZS5kZWNvbXBvc2l0aW9uUGFpciE9PXQmJihlLmRlY29tcG9zaXRpb25QYWlyPXQscj1leShlKSksblswXT09PW51bGx8fHJbMF09PT1udWxsP1tbITFdLFshMF0sZnVuY3Rpb24oaSl7cmV0dXJuIGk/ZVswXS5kOnRbMF0uZH1dOihuWzBdLnB1c2goMCksclswXS5wdXNoKDEpLFtuLHIsZnVuY3Rpb24oaSl7dmFyIGE9dzIoblswXVszXSxyWzBdWzNdLGlbNV0pLG89YjIoaVswXSxpWzFdLGlbMl0sYSxpWzRdKSxzPW8ubWFwKHgyKS5qb2luKCIsIik7cmV0dXJuIHN9XSl9ZnVuY3Rpb24gXzIodCxlKXtmb3IodmFyIG49MCxyPTA7cjx0Lmxlbmd0aDtyKyspbis9dFtyXSplW3JdO3JldHVybiBufWZ1bmN0aW9uIHcyKHQsZSxuKXt2YXIgcj1fMih0LGUpO3I9bW4ociwtMSwxKTt2YXIgaT1bXTtpZihyPT09MSlpPXQ7ZWxzZSBmb3IodmFyIGE9TWF0aC5hY29zKHIpLG89TWF0aC5zaW4obiphKSoxL01hdGguc3FydCgxLXIqcikscz0wO3M8NDtzKyspaS5wdXNoKHRbc10qKE1hdGguY29zKG4qYSktcipvKStlW3NdKm8pO3JldHVybiBpfWZ1bmN0aW9uIG5wKHQpe3JldHVybiB0LnJlcGxhY2UoL1tYWV0vLCIiKX1mdW5jdGlvbiBycCh0KXtyZXR1cm4gdC5yZXBsYWNlKC8oWHxZfFp8M2QpPyQvLCIzZCIpfXZhciBpcD1mdW5jdGlvbihlLG4pe3JldHVybiBlPT09InBlcnNwZWN0aXZlIiYmbj09PSJwZXJzcGVjdGl2ZSJ8fChlPT09Im1hdHJpeCJ8fGU9PT0ibWF0cml4M2QiKSYmKG49PT0ibWF0cml4Inx8bj09PSJtYXRyaXgzZCIpfTtmdW5jdGlvbiBPMih0LGUsbil7dmFyIHI9ITE7aWYoIXQubGVuZ3RofHwhZS5sZW5ndGgpe3QubGVuZ3RofHwocj0hMCx0PWUsZT1bXSk7Zm9yKHZhciBpPWZ1bmN0aW9uKCl7dmFyIEM9dFthXSxOPUMudCxMPUMuZCxSPU4uc3Vic3RyaW5nKDAsNSk9PT0ic2NhbGUiPzE6MDtlLnB1c2goe3Q6TixkOkwubWFwKGZ1bmN0aW9uKEkpe3JldHVybiB0eXBlb2YgST09Im51bWJlciI/VW4oUik6VW4oUixJLnVuaXQpfSl9KX0sYT0wO2E8dC5sZW5ndGg7YSsrKWkoKX12YXIgbz1bXSxzPVtdLGM9W107aWYodC5sZW5ndGghPT1lLmxlbmd0aCl7dmFyIGw9ZXAodCxlKTtvPVtsWzBdXSxzPVtsWzFdXSxjPVtbIm1hdHJpeCIsW2xbMl1dXV19ZWxzZSBmb3IodmFyIHU9MDt1PHQubGVuZ3RoO3UrKyl7dmFyIGY9dFt1XS50LGQ9ZVt1XS50LGg9dFt1XS5kLHY9ZVt1XS5kLGc9VWNbZl0seT1VY1tkXSxiPXZvaWQgMDtpZihpcChmLGQpKXt2YXIgeD1lcChbdFt1XV0sW2VbdV1dKTtvLnB1c2goeFswXSkscy5wdXNoKHhbMV0pLGMucHVzaChbIm1hdHJpeCIsW3hbMl1dXSk7Y29udGludWV9ZWxzZSBpZihmPT09ZCliPWY7ZWxzZSBpZihnWzJdJiZ5WzJdJiZucChmKT09PW5wKGQpKWI9bnAoZiksaD1nWzJdKGgpLHY9eVsyXSh2KTtlbHNlIGlmKGdbMV0mJnlbMV0mJnJwKGYpPT09cnAoZCkpYj1ycChmKSxoPWdbMV0oaCksdj15WzFdKHYpO2Vsc2V7dmFyIF89ZXAodCxlKTtvPVtfWzBdXSxzPVtfWzFdXSxjPVtbIm1hdHJpeCIsW19bMl1dXV07YnJlYWt9Zm9yKHZhciB3PVtdLE89W10sRT1bXSxNPTA7TTxoLmxlbmd0aDtNKyspe3ZhciBrPVdlKGhbTV0sdltNXSxuLCExLE0pO3dbTV09a1swXSxPW01dPWtbMV0sRS5wdXNoKGtbMl0pfW8ucHVzaCh3KSxzLnB1c2goTyksYy5wdXNoKFtiLEVdKX1pZihyKXt2YXIgQT1vO289cyxzPUF9cmV0dXJuW28scyxmdW5jdGlvbihQKXtyZXR1cm4gUC5tYXAoZnVuY3Rpb24oQyxOKXt2YXIgTD1DLm1hcChmdW5jdGlvbihSLEkpe3JldHVybiBjW05dWzFdW0ldKFIpfSkuam9pbigiLCIpO3JldHVybiBjW05dWzBdPT09Im1hdHJpeCImJkwuc3BsaXQoIiwiKS5sZW5ndGg9PT0xNiYmKGNbTl1bMF09Im1hdHJpeDNkIiksY1tOXVswXT09PSJtYXRyaXgzZCImJkwuc3BsaXQoIiwiKS5sZW5ndGg9PT02JiYoY1tOXVswXT0ibWF0cml4IiksIiIuY29uY2F0KGNbTl1bMF0sIigiKS5jb25jYXQoTCwiKSIpfSkuam9pbigiICIpfV19dmFyIGFwPUlyKGZ1bmN0aW9uKHQpe2lmKGlyKHQpKXtpZih0PT09InRleHQtYW5jaG9yIilyZXR1cm5bVW4oMCwicHgiKSxVbigwLCJweCIpXTt2YXIgZT10LnNwbGl0KCIgIik7cmV0dXJuIGUubGVuZ3RoPT09MSYmKGVbMF09PT0idG9wInx8ZVswXT09PSJib3R0b20iPyhlWzFdPWVbMF0sZVswXT0iY2VudGVyIik6ZVsxXT0iY2VudGVyIiksZS5sZW5ndGghPT0yP251bGw6W0toKG55KGVbMF0pKSxLaChueShlWzFdKSldfXJldHVybltVbih0WzBdfHwwLCJweCIpLFVuKHRbMV18fDAsInB4IildfSk7ZnVuY3Rpb24gbnkodCl7cmV0dXJuIHQ9PT0iY2VudGVyIj8iNTAlIjp0PT09ImxlZnQifHx0PT09InRvcCI/IjAlIjp0PT09InJpZ2h0Inx8dD09PSJib3R0b20iPyIxMDAlIjp0fXZhciBvcD1be246ImRpc3BsYXkiLGs6WyJub25lIl19LHtuOiJvcGFjaXR5IixpbnQ6ITAsaW5oOiEwLGQ6IjEiLHN5bnRheDp6dC5PUEFDSVRZX1ZBTFVFfSx7bjoiZmlsbE9wYWNpdHkiLGludDohMCxpbmg6ITAsZDoiMSIsc3ludGF4Onp0Lk9QQUNJVFlfVkFMVUV9LHtuOiJzdHJva2VPcGFjaXR5IixpbnQ6ITAsaW5oOiEwLGQ6IjEiLHN5bnRheDp6dC5PUEFDSVRZX1ZBTFVFfSx7bjoiZmlsbCIsaW50OiEwLGs6WyJub25lIl0sZDoibm9uZSIsc3ludGF4Onp0LlBBSU5UfSx7bjoiZmlsbFJ1bGUiLGs6WyJub256ZXJvIiwiZXZlbm9kZCJdLGQ6Im5vbnplcm8ifSx7bjoic3Ryb2tlIixpbnQ6ITAsazpbIm5vbmUiXSxkOiJub25lIixzeW50YXg6enQuUEFJTlQsbDohMH0se246InNoYWRvd1R5cGUiLGs6WyJpbm5lciIsIm91dGVyIiwiYm90aCJdLGQ6Im91dGVyIixsOiEwfSx7bjoic2hhZG93Q29sb3IiLGludDohMCxzeW50YXg6enQuQ09MT1J9LHtuOiJzaGFkb3dPZmZzZXRYIixpbnQ6ITAsbDohMCxkOiIwIixzeW50YXg6enQuTEVOR1RIX1BFUkNFTlRBR0V9LHtuOiJzaGFkb3dPZmZzZXRZIixpbnQ6ITAsbDohMCxkOiIwIixzeW50YXg6enQuTEVOR1RIX1BFUkNFTlRBR0V9LHtuOiJzaGFkb3dCbHVyIixpbnQ6ITAsbDohMCxkOiIwIixzeW50YXg6enQuU0hBRE9XX0JMVVJ9LHtuOiJsaW5lV2lkdGgiLGludDohMCxpbmg6ITAsZDoiMSIsbDohMCxhOlsic3Ryb2tlV2lkdGgiXSxzeW50YXg6enQuTEVOR1RIX1BFUkNFTlRBR0V9LHtuOiJpbmNyZWFzZWRMaW5lV2lkdGhGb3JIaXRUZXN0aW5nIixpbmg6ITAsZDoiMCIsbDohMCxzeW50YXg6enQuTEVOR1RIX1BFUkNFTlRBR0V9LHtuOiJsaW5lSm9pbiIsaW5oOiEwLGw6ITAsYTpbInN0cm9rZUxpbmVqb2luIl0sazpbIm1pdGVyIiwiYmV2ZWwiLCJyb3VuZCJdLGQ6Im1pdGVyIn0se246ImxpbmVDYXAiLGluaDohMCxsOiEwLGE6WyJzdHJva2VMaW5lY2FwIl0sazpbImJ1dHQiLCJyb3VuZCIsInNxdWFyZSJdLGQ6ImJ1dHQifSx7bjoibGluZURhc2giLGludDohMCxpbmg6ITAsazpbIm5vbmUiXSxhOlsic3Ryb2tlRGFzaGFycmF5Il0sc3ludGF4Onp0LkxFTkdUSF9QRVJDRU5UQUdFXzEyfSx7bjoibGluZURhc2hPZmZzZXQiLGludDohMCxpbmg6ITAsZDoiMCIsYTpbInN0cm9rZURhc2hvZmZzZXQiXSxzeW50YXg6enQuTEVOR1RIX1BFUkNFTlRBR0V9LHtuOiJvZmZzZXRQYXRoIixzeW50YXg6enQuREVGSU5FRF9QQVRIfSx7bjoib2Zmc2V0RGlzdGFuY2UiLGludDohMCxzeW50YXg6enQuT0ZGU0VUX0RJU1RBTkNFfSx7bjoiZHgiLGludDohMCxsOiEwLGQ6IjAiLHN5bnRheDp6dC5MRU5HVEhfUEVSQ0VOVEFHRX0se246ImR5IixpbnQ6ITAsbDohMCxkOiIwIixzeW50YXg6enQuTEVOR1RIX1BFUkNFTlRBR0V9LHtuOiJ6SW5kZXgiLGluZDohMCxpbnQ6ITAsZDoiMCIsazpbImF1dG8iXSxzeW50YXg6enQuWl9JTkRFWH0se246InZpc2liaWxpdHkiLGs6WyJ2aXNpYmxlIiwiaGlkZGVuIl0saW5kOiEwLGluaDohMCxpbnQ6ITAsZDoidmlzaWJsZSJ9LHtuOiJwb2ludGVyRXZlbnRzIixpbmg6ITAsazpbIm5vbmUiLCJhdXRvIiwic3Ryb2tlIiwiZmlsbCIsInBhaW50ZWQiLCJ2aXNpYmxlIiwidmlzaWJsZXN0cm9rZSIsInZpc2libGVmaWxsIiwidmlzaWJsZXBhaW50ZWQiLCJhbGwiXSxkOiJhdXRvIn0se246ImZpbHRlciIsaW5kOiEwLGw6ITAsazpbIm5vbmUiXSxkOiJub25lIixzeW50YXg6enQuRklMVEVSfSx7bjoiY2xpcFBhdGgiLHN5bnRheDp6dC5ERUZJTkVEX1BBVEh9LHtuOiJ0ZXh0UGF0aCIsc3ludGF4Onp0LkRFRklORURfUEFUSH0se246InRleHRQYXRoU2lkZSIsazpbImxlZnQiLCJyaWdodCJdLGQ6ImxlZnQifSx7bjoidGV4dFBhdGhTdGFydE9mZnNldCIsbDohMCxkOiIwIixzeW50YXg6enQuTEVOR1RIX1BFUkNFTlRBR0V9LHtuOiJ0cmFuc2Zvcm0iLHA6MTAwLGludDohMCxrOlsibm9uZSJdLGQ6Im5vbmUiLHN5bnRheDp6dC5UUkFOU0ZPUk19LHtuOiJ0cmFuc2Zvcm1PcmlnaW4iLHA6MTAwLGQ6IjAgMCIsbDohMCxzeW50YXg6enQuVFJBTlNGT1JNX09SSUdJTn0se246ImN4IixpbnQ6ITAsbDohMCxkOiIwIixzeW50YXg6enQuQ09PUkRJTkFURX0se246ImN5IixpbnQ6ITAsbDohMCxkOiIwIixzeW50YXg6enQuQ09PUkRJTkFURX0se246ImN6IixpbnQ6ITAsbDohMCxkOiIwIixzeW50YXg6enQuQ09PUkRJTkFURX0se246InIiLGludDohMCxsOiEwLGQ6IjAiLHN5bnRheDp6dC5MRU5HVEhfUEVSQ0VOVEFHRX0se246InJ4IixpbnQ6ITAsbDohMCxkOiIwIixzeW50YXg6enQuTEVOR1RIX1BFUkNFTlRBR0V9LHtuOiJyeSIsaW50OiEwLGw6ITAsZDoiMCIsc3ludGF4Onp0LkxFTkdUSF9QRVJDRU5UQUdFfSx7bjoieCIsaW50OiEwLGw6ITAsZDoiMCIsc3ludGF4Onp0LkNPT1JESU5BVEV9LHtuOiJ5IixpbnQ6ITAsbDohMCxkOiIwIixzeW50YXg6enQuQ09PUkRJTkFURX0se246InoiLGludDohMCxsOiEwLGQ6IjAiLHN5bnRheDp6dC5DT09SRElOQVRFfSx7bjoid2lkdGgiLGludDohMCxsOiEwLGs6WyJhdXRvIiwiZml0LWNvbnRlbnQiLCJtaW4tY29udGVudCIsIm1heC1jb250ZW50Il0sZDoiMCIsc3ludGF4Onp0LkxFTkdUSF9QRVJDRU5UQUdFfSx7bjoiaGVpZ2h0IixpbnQ6ITAsbDohMCxrOlsiYXV0byIsImZpdC1jb250ZW50IiwibWluLWNvbnRlbnQiLCJtYXgtY29udGVudCJdLGQ6IjAiLHN5bnRheDp6dC5MRU5HVEhfUEVSQ0VOVEFHRX0se246InJhZGl1cyIsaW50OiEwLGw6ITAsZDoiMCIsc3ludGF4Onp0LkxFTkdUSF9QRVJDRU5UQUdFXzE0fSx7bjoieDEiLGludDohMCxsOiEwLHN5bnRheDp6dC5DT09SRElOQVRFfSx7bjoieTEiLGludDohMCxsOiEwLHN5bnRheDp6dC5DT09SRElOQVRFfSx7bjoiejEiLGludDohMCxsOiEwLHN5bnRheDp6dC5DT09SRElOQVRFfSx7bjoieDIiLGludDohMCxsOiEwLHN5bnRheDp6dC5DT09SRElOQVRFfSx7bjoieTIiLGludDohMCxsOiEwLHN5bnRheDp6dC5DT09SRElOQVRFfSx7bjoiejIiLGludDohMCxsOiEwLHN5bnRheDp6dC5DT09SRElOQVRFfSx7bjoiZCIsaW50OiEwLGw6ITAsZDoiIixzeW50YXg6enQuUEFUSCxwOjUwfSx7bjoicG9pbnRzIixpbnQ6ITAsbDohMCxzeW50YXg6enQuTElTVF9PRl9QT0lOVFMscDo1MH0se246InRleHQiLGw6ITAsZDoiIixzeW50YXg6enQuVEVYVCxwOjUwfSx7bjoidGV4dFRyYW5zZm9ybSIsbDohMCxpbmg6ITAsazpbImNhcGl0YWxpemUiLCJ1cHBlcmNhc2UiLCJsb3dlcmNhc2UiLCJub25lIl0sZDoibm9uZSIsc3ludGF4Onp0LlRFWFRfVFJBTlNGT1JNLHA6NTF9LHtuOiJmb250IixsOiEwfSx7bjoiZm9udFNpemUiLGludDohMCxpbmg6ITAsZDoiMTZweCIsbDohMCxzeW50YXg6enQuTEVOR1RIX1BFUkNFTlRBR0V9LHtuOiJmb250RmFtaWx5IixsOiEwLGluaDohMCxkOiJzYW5zLXNlcmlmIn0se246ImZvbnRTdHlsZSIsbDohMCxpbmg6ITAsazpbIm5vcm1hbCIsIml0YWxpYyIsIm9ibGlxdWUiXSxkOiJub3JtYWwifSx7bjoiZm9udFdlaWdodCIsbDohMCxpbmg6ITAsazpbIm5vcm1hbCIsImJvbGQiLCJib2xkZXIiLCJsaWdodGVyIl0sZDoibm9ybWFsIn0se246ImZvbnRWYXJpYW50IixsOiEwLGluaDohMCxrOlsibm9ybWFsIiwic21hbGwtY2FwcyJdLGQ6Im5vcm1hbCJ9LHtuOiJsaW5lSGVpZ2h0IixsOiEwLHN5bnRheDp6dC5MRU5HVEgsaW50OiEwLGQ6IjAifSx7bjoibGV0dGVyU3BhY2luZyIsbDohMCxzeW50YXg6enQuTEVOR1RILGludDohMCxkOiIwIn0se246Im1pdGVyTGltaXQiLGw6ITAsc3ludGF4Onp0Lk5VTUJFUixkOmZ1bmN0aW9uKGUpe3JldHVybiBlPT09ZHQuUEFUSHx8ZT09PWR0LlBPTFlHT058fGU9PT1kdC5QT0xZTElORT8iNCI6IjEwIn19LHtuOiJ3b3JkV3JhcCIsbDohMH0se246IndvcmRXcmFwV2lkdGgiLGw6ITB9LHtuOiJtYXhMaW5lcyIsbDohMH0se246InRleHRPdmVyZmxvdyIsbDohMCxkOiJjbGlwIn0se246ImxlYWRpbmciLGw6ITB9LHtuOiJ0ZXh0QmFzZWxpbmUiLGw6ITAsaW5oOiEwLGs6WyJ0b3AiLCJoYW5naW5nIiwibWlkZGxlIiwiYWxwaGFiZXRpYyIsImlkZW9ncmFwaGljIiwiYm90dG9tIl0sZDoiYWxwaGFiZXRpYyJ9LHtuOiJ0ZXh0QWxpZ24iLGw6ITAsaW5oOiEwLGs6WyJzdGFydCIsImNlbnRlciIsIm1pZGRsZSIsImVuZCIsImxlZnQiLCJyaWdodCJdLGQ6InN0YXJ0In0se246Im1hcmtlclN0YXJ0IixzeW50YXg6enQuTUFSS0VSfSx7bjoibWFya2VyRW5kIixzeW50YXg6enQuTUFSS0VSfSx7bjoibWFya2VyTWlkIixzeW50YXg6enQuTUFSS0VSfSx7bjoibWFya2VyU3RhcnRPZmZzZXQiLHN5bnRheDp6dC5MRU5HVEgsbDohMCxpbnQ6ITAsZDoiMCJ9LHtuOiJtYXJrZXJFbmRPZmZzZXQiLHN5bnRheDp6dC5MRU5HVEgsbDohMCxpbnQ6ITAsZDoiMCJ9XSxTMj1uZXcgU2V0KG9wLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4hIXQubH0pLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5ufSkpLFlyPXt9LEtpPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlKXt2YXIgbj10aGlzOygwLHh0LlopKHRoaXMsdCksdGhpcy5ydW50aW1lPWUsb3AuZm9yRWFjaChmdW5jdGlvbihyKXtuLnJlZ2lzdGVyTWV0YWRhdGEocil9KX1yZXR1cm4oMCxPdC5aKSh0LFt7a2V5OiJyZWdpc3Rlck1ldGFkYXRhIix2YWx1ZTpmdW5jdGlvbihuKXtbbi5uXS5jb25jYXQoKDAsbG4uWikobi5hfHxbXSkpLmZvckVhY2goZnVuY3Rpb24ocil7WXJbcl09bn0pfX0se2tleToiZ2V0UHJvcGVydHlTeW50YXgiLHZhbHVlOmZ1bmN0aW9uKG4pe3JldHVybiB0aGlzLnJ1bnRpbWUuQ1NTUHJvcGVydHlTeW50YXhGYWN0b3J5W25dfX0se2tleToicHJvY2Vzc1Byb3BlcnRpZXMiLHZhbHVlOmZ1bmN0aW9uKG4scil7dmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yJiZhcmd1bWVudHNbMl0hPT12b2lkIDA/YXJndW1lbnRzWzJdOntza2lwVXBkYXRlQXR0cmlidXRlOiExLHNraXBQYXJzZTohMSxmb3JjZVVwZGF0ZUdlb21ldHJ5OiExLHVzZWRBdHRyaWJ1dGVzOltdLG1lbW9pemU6ITB9O09iamVjdC5hc3NpZ24obi5hdHRyaWJ1dGVzLHIpO3ZhciBhPW4ucGFyc2VkU3R5bGUuY2xpcFBhdGgsbz1uLnBhcnNlZFN0eWxlLm9mZnNldFBhdGg7RTIobixyKTt2YXIgcz0hIWkuZm9yY2VVcGRhdGVHZW9tZXRyeTtpZighcyl7Zm9yKHZhciBjIGluIHIpaWYoUzIuaGFzKGMpKXtzPSEwO2JyZWFrfX12YXIgbD1yeShuKTtsLmhhcygiZmlsbCIpJiZyLmZpbGwmJihuLnBhcnNlZFN0eWxlLmZpbGw9b3Moci5maWxsKSksbC5oYXMoInN0cm9rZSIpJiZyLnN0cm9rZSYmKG4ucGFyc2VkU3R5bGUuc3Ryb2tlPW9zKHIuc3Ryb2tlKSksbC5oYXMoInNoYWRvd0NvbG9yIikmJnIuc2hhZG93Q29sb3ImJihuLnBhcnNlZFN0eWxlLnNoYWRvd0NvbG9yPW9zKHIuc2hhZG93Q29sb3IpKSxsLmhhcygiZmlsdGVyIikmJnIuZmlsdGVyJiYobi5wYXJzZWRTdHlsZS5maWx0ZXI9dTIoci5maWx0ZXIpKSxsLmhhcygicmFkaXVzIikmJiFnZShyLnJhZGl1cykmJihuLnBhcnNlZFN0eWxlLnJhZGl1cz1DaShyLnJhZGl1cyw0KSksbC5oYXMoImxpbmVEYXNoIikmJiFnZShyLmxpbmVEYXNoKSYmKG4ucGFyc2VkU3R5bGUubGluZURhc2g9Q2koci5saW5lRGFzaCwiZXZlbiIpKSxsLmhhcygicG9pbnRzIikmJnIucG9pbnRzJiYobi5wYXJzZWRTdHlsZS5wb2ludHM9Smcoci5wb2ludHMpKSxsLmhhcygiZCIpJiZyLmQ9PT0iIiYmKG4ucGFyc2VkU3R5bGUuZD0oMCxFZS5aKSh7fSxBZikpLGwuaGFzKCJkIikmJnIuZCYmKG4ucGFyc2VkU3R5bGUuZD11byhyLmQpKSxsLmhhcygidGV4dFRyYW5zZm9ybSIpJiZyLnRleHRUcmFuc2Zvcm0mJnRoaXMucnVudGltZS5DU1NQcm9wZXJ0eVN5bnRheEZhY3RvcnlbenQuVEVYVF9UUkFOU0ZPUk1dLmNhbGN1bGF0b3IobnVsbCxudWxsLHt2YWx1ZTpyLnRleHRUcmFuc2Zvcm19LG4sbnVsbCksbC5oYXMoImNsaXBQYXRoIikmJiFFbihyLmNsaXBQYXRoKSYmdGhpcy5ydW50aW1lLkNTU1Byb3BlcnR5U3ludGF4RmFjdG9yeVt6dC5ERUZJTkVEX1BBVEhdLmNhbGN1bGF0b3IoImNsaXBQYXRoIixhLHIuY2xpcFBhdGgsbix0aGlzLnJ1bnRpbWUpLGwuaGFzKCJvZmZzZXRQYXRoIikmJnIub2Zmc2V0UGF0aCYmdGhpcy5ydW50aW1lLkNTU1Byb3BlcnR5U3ludGF4RmFjdG9yeVt6dC5ERUZJTkVEX1BBVEhdLmNhbGN1bGF0b3IoIm9mZnNldFBhdGgiLG8sci5vZmZzZXRQYXRoLG4sdGhpcy5ydW50aW1lKSxsLmhhcygidHJhbnNmb3JtIikmJnIudHJhbnNmb3JtJiYobi5wYXJzZWRTdHlsZS50cmFuc2Zvcm09dHkoci50cmFuc2Zvcm0pKSxsLmhhcygidHJhbnNmb3JtT3JpZ2luIikmJnIudHJhbnNmb3JtT3JpZ2luJiYobi5wYXJzZWRTdHlsZS50cmFuc2Zvcm1PcmlnaW49YXAoci50cmFuc2Zvcm1PcmlnaW4pKSxsLmhhcygibWFya2VyU3RhcnQiKSYmci5tYXJrZXJTdGFydCYmKG4ucGFyc2VkU3R5bGUubWFya2VyU3RhcnQ9dGhpcy5ydW50aW1lLkNTU1Byb3BlcnR5U3ludGF4RmFjdG9yeVt6dC5NQVJLRVJdLmNhbGN1bGF0b3IobnVsbCxyLm1hcmtlclN0YXJ0LHIubWFya2VyU3RhcnQsbnVsbCxudWxsKSksbC5oYXMoIm1hcmtlckVuZCIpJiZyLm1hcmtlckVuZCYmKG4ucGFyc2VkU3R5bGUubWFya2VyRW5kPXRoaXMucnVudGltZS5DU1NQcm9wZXJ0eVN5bnRheEZhY3RvcnlbenQuTUFSS0VSXS5jYWxjdWxhdG9yKG51bGwsci5tYXJrZXJFbmQsci5tYXJrZXJFbmQsbnVsbCxudWxsKSksbC5oYXMoIm1hcmtlck1pZCIpJiZyLm1hcmtlck1pZCYmKG4ucGFyc2VkU3R5bGUubWFya2VyTWlkPXRoaXMucnVudGltZS5DU1NQcm9wZXJ0eVN5bnRheEZhY3RvcnlbenQuTUFSS0VSXS5jYWxjdWxhdG9yKCIiLHIubWFya2VyTWlkLHIubWFya2VyTWlkLG51bGwsbnVsbCkpLGwuaGFzKCJ6SW5kZXgiKSYmIWdlKHIuekluZGV4KSYmdGhpcy5ydW50aW1lLkNTU1Byb3BlcnR5U3ludGF4RmFjdG9yeVt6dC5aX0lOREVYXS5wb3N0UHJvY2Vzc29yKG4pLGwuaGFzKCJvZmZzZXREaXN0YW5jZSIpJiYhZ2Uoci5vZmZzZXREaXN0YW5jZSkmJnRoaXMucnVudGltZS5DU1NQcm9wZXJ0eVN5bnRheEZhY3RvcnlbenQuT0ZGU0VUX0RJU1RBTkNFXS5wb3N0UHJvY2Vzc29yKG4pLGwuaGFzKCJ0cmFuc2Zvcm0iKSYmci50cmFuc2Zvcm0mJnRoaXMucnVudGltZS5DU1NQcm9wZXJ0eVN5bnRheEZhY3RvcnlbenQuVFJBTlNGT1JNXS5wb3N0UHJvY2Vzc29yKG4pLGwuaGFzKCJ0cmFuc2Zvcm1PcmlnaW4iKSYmci50cmFuc2Zvcm1PcmlnaW4mJnRoaXMucnVudGltZS5DU1NQcm9wZXJ0eVN5bnRheEZhY3RvcnlbenQuVFJBTlNGT1JNX09SSUdJTl0ucG9zdFByb2Nlc3NvcihuKSxzJiYobi5nZW9tZXRyeS5kaXJ0eT0hMCxuLnJlbmRlcmFibGUuYm91bmRzRGlydHk9ITAsbi5yZW5kZXJhYmxlLnJlbmRlckJvdW5kc0RpcnR5PSEwLGkuZm9yY2VVcGRhdGVHZW9tZXRyeXx8dGhpcy5ydW50aW1lLnNjZW5lR3JhcGhTZXJ2aWNlLmRpcnRpZnlUb1Jvb3QobikpfX0se2tleToidXBkYXRlR2VvbWV0cnkiLHZhbHVlOmZ1bmN0aW9uKG4pe3ZhciByPW4ubm9kZU5hbWUsaT10aGlzLnJ1bnRpbWUuZ2VvbWV0cnlVcGRhdGVyRmFjdG9yeVtyXTtpZihpKXt2YXIgYT1uLmdlb21ldHJ5O2EuY29udGVudEJvdW5kc3x8KGEuY29udGVudEJvdW5kcz1uZXcgeHIpLGEucmVuZGVyQm91bmRzfHwoYS5yZW5kZXJCb3VuZHM9bmV3IHhyKTt2YXIgbz1uLnBhcnNlZFN0eWxlLHM9aS51cGRhdGUobyxuKSxjPXMuY3gsbD1jPT09dm9pZCAwPzA6Yyx1PXMuY3ksZj11PT09dm9pZCAwPzA6dSxkPXMuY3osaD1kPT09dm9pZCAwPzA6ZCx2PXMuaHdpZHRoLGc9dj09PXZvaWQgMD8wOnYseT1zLmhoZWlnaHQsYj15PT09dm9pZCAwPzA6eSx4PXMuaGRlcHRoLF89eD09PXZvaWQgMD8wOngsdz1bTWF0aC5hYnMoZyksTWF0aC5hYnMoYiksX10sTz1vLnN0cm9rZSxFPW8ubGluZVdpZHRoLE09RT09PXZvaWQgMD8xOkUsaz1vLmluY3JlYXNlZExpbmVXaWR0aEZvckhpdFRlc3RpbmcsQT1rPT09dm9pZCAwPzA6ayxQPW8uc2hhZG93VHlwZSxDPVA9PT12b2lkIDA/Im91dGVyIjpQLE49by5zaGFkb3dDb2xvcixMPW8uZmlsdGVyLFI9TD09PXZvaWQgMD9bXTpMLEk9by50cmFuc2Zvcm1PcmlnaW4sRD1bbCxmLGhdO2EuY29udGVudEJvdW5kcy51cGRhdGUoRCx3KTt2YXIgRz1yPT09ZHQuUE9MWUxJTkV8fHI9PT1kdC5QT0xZR09OfHxyPT09ZHQuUEFUSD9NYXRoLlNRUlQyOi41LEY9TyYmIU8uaXNOb25lO2lmKEYpe3ZhciBXPSgoTXx8MCkrKEF8fDApKSpHO3dbMF0rPVcsd1sxXSs9V31pZihhLnJlbmRlckJvdW5kcy51cGRhdGUoRCx3KSxOJiZDJiZDIT09ImlubmVyIil7dmFyIFg9YS5yZW5kZXJCb3VuZHMsUT1YLm1pbix0dD1YLm1heCxudD1vLnNoYWRvd0JsdXIsaHQ9by5zaGFkb3dPZmZzZXRYLGx0PW8uc2hhZG93T2Zmc2V0WSx3dD1udHx8MCx5dD1odHx8MCxndD1sdHx8MCxCdD1RWzBdLXd0K3l0LEx0PXR0WzBdK3d0K3l0LEl0PVFbMV0td3QrZ3QsanQ9dHRbMV0rd3QrZ3Q7UVswXT1NYXRoLm1pbihRWzBdLEJ0KSx0dFswXT1NYXRoLm1heCh0dFswXSxMdCksUVsxXT1NYXRoLm1pbihRWzFdLEl0KSx0dFsxXT1NYXRoLm1heCh0dFsxXSxqdCksYS5yZW5kZXJCb3VuZHMuc2V0TWluTWF4KFEsdHQpfVIuZm9yRWFjaChmdW5jdGlvbihiZSl7dmFyIE5lPWJlLm5hbWUsUG49YmUucGFyYW1zO2lmKE5lPT09ImJsdXIiKXt2YXIgcXI9UG5bMF0udmFsdWU7YS5yZW5kZXJCb3VuZHMudXBkYXRlKGEucmVuZGVyQm91bmRzLmNlbnRlcixOYShhLnJlbmRlckJvdW5kcy5oYWxmRXh0ZW50cyxhLnJlbmRlckJvdW5kcy5oYWxmRXh0ZW50cyxbcXIscXIsMF0pKX1lbHNlIGlmKE5lPT09ImRyb3Atc2hhZG93Iil7dmFyIGZpPVBuWzBdLnZhbHVlLHlyPVBuWzFdLnZhbHVlLG9pPVBuWzJdLnZhbHVlLEtyPWEucmVuZGVyQm91bmRzLHNpPUtyLm1pbixLbj1Lci5tYXgsUXI9c2lbMF0tb2krZmksRGk9S25bMF0rb2krZmksY2k9c2lbMV0tb2kreXIsY2U9S25bMV0rb2kreXI7c2lbMF09TWF0aC5taW4oc2lbMF0sUXIpLEtuWzBdPU1hdGgubWF4KEtuWzBdLERpKSxzaVsxXT1NYXRoLm1pbihzaVsxXSxjaSksS25bMV09TWF0aC5tYXgoS25bMV0sY2UpLGEucmVuZGVyQm91bmRzLnNldE1pbk1heChzaSxLbil9fSksbi5nZW9tZXRyeS5kaXJ0eT0hMTt2YXIgUXQ9ZzwwLHVlPWI8MCx5ZT0oUXQ/LTE6MSkqKEk/Ym4oSVswXSwwLG4sITApOjApLEtlPSh1ZT8tMToxKSooST9ibihJWzFdLDEsbiwhMCk6MCk7KHllfHxLZSkmJm4uc2V0T3JpZ2luKHllLEtlKX19fSx7a2V5OiJ1cGRhdGVTaXplQXR0ZW51YXRpb24iLHZhbHVlOmZ1bmN0aW9uKG4scil7bi5zdHlsZS5pc1NpemVBdHRlbnVhdGlvbj8obi5zdHlsZS5yYXdMaW5lV2lkdGh8fChuLnN0eWxlLnJhd0xpbmVXaWR0aD1uLnN0eWxlLmxpbmVXaWR0aCksbi5zdHlsZS5saW5lV2lkdGg9KG4uc3R5bGUucmF3TGluZVdpZHRofHwxKS9yLG4ubm9kZU5hbWU9PT1kdC5DSVJDTEUmJihuLnN0eWxlLnJhd1J8fChuLnN0eWxlLnJhd1I9bi5zdHlsZS5yKSxuLnN0eWxlLnI9KG4uc3R5bGUucmF3Unx8MSkvcikpOihuLnN0eWxlLnJhd0xpbmVXaWR0aCYmKG4uc3R5bGUubGluZVdpZHRoPW4uc3R5bGUucmF3TGluZVdpZHRoLGRlbGV0ZSBuLnN0eWxlLnJhd0xpbmVXaWR0aCksbi5ub2RlTmFtZT09PWR0LkNJUkNMRSYmbi5zdHlsZS5yYXdSJiYobi5zdHlsZS5yPW4uc3R5bGUucmF3UixkZWxldGUgbi5zdHlsZS5yYXdSKSl9fV0pfSgpO2Z1bmN0aW9uIEUyKHQsZSl7dmFyIG49cnkodCk7Zm9yKHZhciByIGluIGUpbi5oYXMocikmJih0LnBhcnNlZFN0eWxlW3JdPWVbcl0pfWZ1bmN0aW9uIHJ5KHQpe3JldHVybiB0LmNvbnN0cnVjdG9yLlBBUlNFRF9TVFlMRV9MSVNUfXZhciBNMj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXsoMCx4dC5aKSh0aGlzLHQpLHRoaXMubWl4ZXI9Smh9cmV0dXJuKDAsT3QuWikodCxbe2tleToiY2FsY3VsYXRvciIsdmFsdWU6ZnVuY3Rpb24obixyLGksYSl7cmV0dXJuIHFpKGkpfX1dKX0oKSxpeT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXsoMCx4dC5aKSh0aGlzLHQpfXJldHVybigwLE90LlopKHQsW3trZXk6ImNhbGN1bGF0b3IiLHZhbHVlOmZ1bmN0aW9uKG4scixpLGEsbyl7cmV0dXJuIGkgaW5zdGFuY2VvZiBrYSYmKGk9bnVsbCksby5zY2VuZUdyYXBoU2VydmljZS51cGRhdGVEaXNwbGF5T2JqZWN0RGVwZW5kZW5jeShuLHIsaSxhKSxuPT09ImNsaXBQYXRoIiYmYS5mb3JFYWNoKGZ1bmN0aW9uKHMpe3MuY2hpbGROb2Rlcy5sZW5ndGg9PT0wJiZvLnNjZW5lR3JhcGhTZXJ2aWNlLmRpcnRpZnlUb1Jvb3Qocyl9KSxpfX1dKX0oKSxrMj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXsoMCx4dC5aKSh0aGlzLHQpLHRoaXMucGFyc2VyPW9zLHRoaXMubWl4ZXI9bzJ9cmV0dXJuKDAsT3QuWikodCxbe2tleToiY2FsY3VsYXRvciIsdmFsdWU6ZnVuY3Rpb24obixyLGksYSl7cmV0dXJuIGkgaW5zdGFuY2VvZiBrYT9pLnZhbHVlPT09Im5vbmUiP1ZoOlhoOml9fV0pfSgpLEEyPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpeygwLHh0LlopKHRoaXMsdCl9cmV0dXJuKDAsT3QuWikodCxbe2tleToiY2FsY3VsYXRvciIsdmFsdWU6ZnVuY3Rpb24obixyLGkpe3JldHVybiBpIGluc3RhbmNlb2Yga2E/W106aX19XSl9KCk7ZnVuY3Rpb24gYXkodCl7dmFyIGU9dC5wYXJzZWRTdHlsZSxuPWUuZm9udFNpemU7cmV0dXJuIGdlKG4pP251bGw6bn12YXIgemY9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7KDAseHQuWikodGhpcyx0KSx0aGlzLm1peGVyPUpofXJldHVybigwLE90LlopKHQsW3trZXk6ImNhbGN1bGF0b3IiLHZhbHVlOmZ1bmN0aW9uKG4scixpLGEsbyl7aWYoVm4oaSkpcmV0dXJuIGk7aWYoUm4uaXNSZWxhdGl2ZVVuaXQoaS51bml0KSl7aWYoaS51bml0PT09WnQua1BlcmNlbnRhZ2UpcmV0dXJuIDA7aWYoaS51bml0PT09WnQua0Vtcyl7aWYoYS5wYXJlbnROb2RlKXt2YXIgcz1heShhLnBhcmVudE5vZGUpO2lmKHMpcmV0dXJuIHMqPWkudmFsdWUsc31yZXR1cm4gMH1pZihpLnVuaXQ9PT1adC5rUmVtcyl7dmFyIGM7aWYoYSE9bnVsbCYmKGM9YS5vd25lckRvY3VtZW50KSE9PW51bGwmJmMhPT12b2lkIDAmJmMuZG9jdW1lbnRFbGVtZW50KXt2YXIgbD1heShhLm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KTtpZihsKXJldHVybiBsKj1pLnZhbHVlLGx9cmV0dXJuIDB9fWVsc2UgcmV0dXJuIGkudmFsdWV9fV0pfSgpLFQyPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpeygwLHh0LlopKHRoaXMsdCksdGhpcy5taXhlcj0kZ31yZXR1cm4oMCxPdC5aKSh0LFt7a2V5OiJjYWxjdWxhdG9yIix2YWx1ZTpmdW5jdGlvbihuLHIsaSl7cmV0dXJuIGkubWFwKGZ1bmN0aW9uKGEpe3JldHVybiBhLnZhbHVlfSl9fV0pfSgpLFAyPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpeygwLHh0LlopKHRoaXMsdCksdGhpcy5taXhlcj0kZ31yZXR1cm4oMCxPdC5aKSh0LFt7a2V5OiJjYWxjdWxhdG9yIix2YWx1ZTpmdW5jdGlvbihuLHIsaSl7cmV0dXJuIGkubWFwKGZ1bmN0aW9uKGEpe3JldHVybiBhLnZhbHVlfSl9fV0pfSgpLEMyPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpeygwLHh0LlopKHRoaXMsdCl9cmV0dXJuKDAsT3QuWikodCxbe2tleToiY2FsY3VsYXRvciIsdmFsdWU6ZnVuY3Rpb24obixyLGksYSl7dmFyIG87aSBpbnN0YW5jZW9mIGthJiYoaT1udWxsKTt2YXIgcz0obz1pKT09PW51bGx8fG89PT12b2lkIDA/dm9pZCAwOm8uY2xvbmVOb2RlKCEwKTtyZXR1cm4gcyYmKHMuc3R5bGUuaXNNYXJrZXI9ITApLHN9fV0pfSgpLG95PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpeygwLHh0LlopKHRoaXMsdCksdGhpcy5taXhlcj1KaH1yZXR1cm4oMCxPdC5aKSh0LFt7a2V5OiJjYWxjdWxhdG9yIix2YWx1ZTpmdW5jdGlvbihuLHIsaSl7cmV0dXJuIGkudmFsdWV9fV0pfSgpLHN5PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpeygwLHh0LlopKHRoaXMsdCksdGhpcy5taXhlcj1ldSgwLDEpfXJldHVybigwLE90LlopKHQsW3trZXk6ImNhbGN1bGF0b3IiLHZhbHVlOmZ1bmN0aW9uKG4scixpKXtyZXR1cm4gaS52YWx1ZX19LHtrZXk6InBvc3RQcm9jZXNzb3IiLHZhbHVlOmZ1bmN0aW9uKG4pe3ZhciByPW4ucGFyc2VkU3R5bGUsaT1yLm9mZnNldFBhdGgsYT1yLm9mZnNldERpc3RhbmNlO2lmKGkpe3ZhciBvPWkubm9kZU5hbWU7aWYobz09PWR0LkxJTkV8fG89PT1kdC5QQVRIfHxvPT09ZHQuUE9MWUxJTkUpe3ZhciBzPWkuZ2V0UG9pbnQoYSk7cyYmbi5zZXRMb2NhbFBvc2l0aW9uKHMueCxzLnkpfX19fV0pfSgpLEwyPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpeygwLHh0LlopKHRoaXMsdCksdGhpcy5taXhlcj1ldSgwLDEpfXJldHVybigwLE90LlopKHQsW3trZXk6ImNhbGN1bGF0b3IiLHZhbHVlOmZ1bmN0aW9uKG4scixpKXtyZXR1cm4gaS52YWx1ZX19XSl9KCksUjI9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7KDAseHQuWikodGhpcyx0KSx0aGlzLnBhcnNlcj11byx0aGlzLm1peGVyPVZlfXJldHVybigwLE90LlopKHQsW3trZXk6ImNhbGN1bGF0b3IiLHZhbHVlOmZ1bmN0aW9uKG4scixpKXtyZXR1cm4gaSBpbnN0YW5jZW9mIGthJiZpLnZhbHVlPT09InVuc2V0Ij97YWJzb2x1dGVQYXRoOltdLGhhc0FyYzohMSxzZWdtZW50czpbXSxwb2x5Z29uczpbXSxwb2x5bGluZXM6W10sY3VydmU6bnVsbCx0b3RhbExlbmd0aDowLHJlY3Q6bmV3IEZvKDAsMCwwLDApfTppfX1dKX0oKSxOMj0oMCxPdC5aKShmdW5jdGlvbiB0KCl7KDAseHQuWikodGhpcyx0KSx0aGlzLm1peGVyPVRhfSksSTI9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBuOygwLHh0LlopKHRoaXMsZSk7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGgsaT1uZXcgQXJyYXkociksYT0wO2E8cjthKyspaVthXT1hcmd1bWVudHNbYV07cmV0dXJuIG49KDAsRGUuWikodGhpcyxlLFtdLmNvbmNhdChpKSksbi5taXhlcj1ldSgwLDEvMCksbn1yZXR1cm4oMCxNZS5aKShlLHQpLCgwLE90LlopKGUpfSh6ZikscWM9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7KDAseHQuWikodGhpcyx0KX1yZXR1cm4oMCxPdC5aKSh0LFt7a2V5OiJjYWxjdWxhdG9yIix2YWx1ZTpmdW5jdGlvbihuLHIsaSxhKXtyZXR1cm4gaSBpbnN0YW5jZW9mIGthP2kudmFsdWU9PT0idW5zZXQiPyIiOmkudmFsdWU6IiIuY29uY2F0KGkpfX0se2tleToicG9zdFByb2Nlc3NvciIsdmFsdWU6ZnVuY3Rpb24obil7bi5ub2RlVmFsdWU9IiIuY29uY2F0KG4ucGFyc2VkU3R5bGUudGV4dCl8fCIifX1dKX0oKSxEMj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXsoMCx4dC5aKSh0aGlzLHQpfXJldHVybigwLE90LlopKHQsW3trZXk6ImNhbGN1bGF0b3IiLHZhbHVlOmZ1bmN0aW9uKG4scixpLGEpe3ZhciBvPWEuZ2V0QXR0cmlidXRlKCJ0ZXh0Iik7aWYobyl7dmFyIHM9bztpLnZhbHVlPT09ImNhcGl0YWxpemUiP3M9by5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStvLnNsaWNlKDEpOmkudmFsdWU9PT0ibG93ZXJjYXNlIj9zPW8udG9Mb3dlckNhc2UoKTppLnZhbHVlPT09InVwcGVyY2FzZSImJihzPW8udG9VcHBlckNhc2UoKSksYS5wYXJzZWRTdHlsZS50ZXh0PXN9cmV0dXJuIGkudmFsdWV9fV0pfSgpLGRrPWZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXMoZSkuZmlsdGVyKGZ1bmN0aW9uKG4pe3ZhciByPV9zbGljZWRUb0FycmF5KG4sMiksaT1yWzFdO3JldHVybiBpIT09dm9pZCAwfSkpfSxzcD1uZXcgV2Vha01hcDtmdW5jdGlvbiBqMih0LGUsbil7aWYodCl7dmFyIHI9dHlwZW9mIHQ9PSJzdHJpbmciP2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKHQpOnQ7c3AuaGFzKHIpJiZzcC5nZXQocikuZGVzdHJveShuKSxzcC5zZXQocixlKX19dmFyIGNwPXR5cGVvZiB3aW5kb3chPSJ1bmRlZmluZWQiJiZ0eXBlb2Ygd2luZG93LmRvY3VtZW50IT0idW5kZWZpbmVkIjtmdW5jdGlvbiBjeSh0KXtyZXR1cm4hIXQuZ2V0QXR0cmlidXRlfWZ1bmN0aW9uIGx5KHQsZSl7Zm9yKHZhciBuPTAscj10Lmxlbmd0aDtuPHI7KXt2YXIgaT1uK3I+Pj4xO3V5KHRbaV0sZSk8MD9uPWkrMTpyPWl9cmV0dXJuIG59ZnVuY3Rpb24gdXkodCxlKXt2YXIgbj1OdW1iZXIodC5wYXJzZWRTdHlsZS56SW5kZXh8fDApLHI9TnVtYmVyKGUucGFyc2VkU3R5bGUuekluZGV4fHwwKTtpZihuPT09cil7dmFyIGk9dC5wYXJlbnROb2RlO2lmKGkpe3ZhciBhPWkuY2hpbGROb2Rlc3x8W107cmV0dXJuIGEuaW5kZXhPZih0KS1hLmluZGV4T2YoZSl9fXJldHVybiBuLXJ9ZnVuY3Rpb24gZnkodCl7dmFyIGU9dDtkb3t2YXIgbixyPShuPWUucGFyc2VkU3R5bGUpPT09bnVsbHx8bj09PXZvaWQgMD92b2lkIDA6bi5jbGlwUGF0aDtpZihyKXJldHVybiBlO2U9ZS5wYXJlbnRFbGVtZW50fXdoaWxlKGUhPT1udWxsKTtyZXR1cm4gbnVsbH12YXIgZHk9InB4IjtmdW5jdGlvbiBGMih0LGUsbil7Y3AmJnQuc3R5bGUmJih0LnN0eWxlLndpZHRoPWUrZHksdC5zdHlsZS5oZWlnaHQ9bitkeSl9ZnVuY3Rpb24gaHkodCxlKXtpZihjcClyZXR1cm4gZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZSh0LG51bGwpLmdldFByb3BlcnR5VmFsdWUoZSl9ZnVuY3Rpb24gQjIodCl7dmFyIGU9aHkodCwid2lkdGgiKTtyZXR1cm4gZT09PSJhdXRvIj90Lm9mZnNldFdpZHRoOnBhcnNlRmxvYXQoZSl9ZnVuY3Rpb24gejIodCl7dmFyIGU9aHkodCwiaGVpZ2h0Iik7cmV0dXJuIGU9PT0iYXV0byI/dC5vZmZzZXRIZWlnaHQ6cGFyc2VGbG9hdChlKX12YXIgVzI9MSxHMj17dG91Y2hzdGFydDoicG9pbnRlcmRvd24iLHRvdWNoZW5kOiJwb2ludGVydXAiLHRvdWNoZW5kb3V0c2lkZToicG9pbnRlcnVwb3V0c2lkZSIsdG91Y2htb3ZlOiJwb2ludGVybW92ZSIsdG91Y2hjYW5jZWw6InBvaW50ZXJjYW5jZWwifSxscD10eXBlb2YgcGVyZm9ybWFuY2U9PSJvYmplY3QiJiZwZXJmb3JtYW5jZS5ub3c/cGVyZm9ybWFuY2U6RGF0ZTtmdW5jdGlvbiBXZih0KXtyZXR1cm4gdC5ub2RlTmFtZT09PWR0LkZSQUdNRU5UPyEwOnQuZ2V0Um9vdE5vZGUoKS5ub2RlTmFtZT09PWR0LkZSQUdNRU5UfWZ1bmN0aW9uIEpzKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT12b2lkIDA/YXJndW1lbnRzWzBdOiJhdXRvIixlPWFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLG49YXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDAscj0hMSxpPSExLGE9ISFlJiYhZS5pc05vbmUsbz0hIW4mJiFuLmlzTm9uZTtyZXR1cm4gdD09PSJ2aXNpYmxlcGFpbnRlZCJ8fHQ9PT0icGFpbnRlZCJ8fHQ9PT0iYXV0byI/KHI9YSxpPW8pOnQ9PT0idmlzaWJsZWZpbGwifHx0PT09ImZpbGwiP3I9ITA6dD09PSJ2aXNpYmxlc3Ryb2tlInx8dD09PSJzdHJva2UiP2k9ITA6KHQ9PT0idmlzaWJsZSJ8fHQ9PT0iYWxsIikmJihyPSEwLGk9ITApLFtyLGldfXZhciAkMj0xLFoyPWZ1bmN0aW9uKCl7cmV0dXJuICQyKyt9LGZvPXR5cGVvZiBzZWxmPT0ib2JqZWN0IiYmc2VsZi5zZWxmPT09c2VsZj9zZWxmOnR5cGVvZiBwdC5nPT0ib2JqZWN0IiYmcHQuZy5nbG9iYWw9PT1wdC5nP3B0Lmc6e30sWTI9RGF0ZS5ub3coKSxIMj1mdW5jdGlvbigpe3JldHVybiBmby5wZXJmb3JtYW5jZSYmdHlwZW9mIGZvLnBlcmZvcm1hbmNlLm5vdz09ImZ1bmN0aW9uIj9mby5wZXJmb3JtYW5jZS5ub3coKTpEYXRlLm5vdygpLVkyfSxhdT17fSxweT1EYXRlLm5vdygpLFYyPWZ1bmN0aW9uKGUpe2lmKHR5cGVvZiBlIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIiIuY29uY2F0KGUsIiBpcyBub3QgYSBmdW5jdGlvbiIpKTt2YXIgbj1EYXRlLm5vdygpLHI9bi1weSxpPXI+MTY/MDoxNi1yLGE9WjIoKTtyZXR1cm4gYXVbYV09ZSxPYmplY3Qua2V5cyhhdSkubGVuZ3RoPjF8fHNldFRpbWVvdXQoZnVuY3Rpb24oKXtweT1uO3ZhciBvPWF1O2F1PXt9LE9iamVjdC5rZXlzKG8pLmZvckVhY2goZnVuY3Rpb24ocyl7cmV0dXJuIG9bc10oSDIoKSl9KX0saSksYX0sWDI9ZnVuY3Rpb24oZSl7ZGVsZXRlIGF1W2VdfSxVMj1bIiIsIndlYmtpdCIsIm1veiIsIm1zIiwibyJdLHZ5PWZ1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZSE9InN0cmluZyI/VjI6ZT09PSIiP2ZvLnJlcXVlc3RBbmltYXRpb25GcmFtZTpmb1siIi5jb25jYXQoZSwiUmVxdWVzdEFuaW1hdGlvbkZyYW1lIildfSxxMj1mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGUhPSJzdHJpbmciP1gyOmU9PT0iIj9mby5jYW5jZWxBbmltYXRpb25GcmFtZTpmb1siIi5jb25jYXQoZSwiQ2FuY2VsQW5pbWF0aW9uRnJhbWUiKV18fGZvWyIiLmNvbmNhdChlLCJDYW5jZWxSZXF1ZXN0QW5pbWF0aW9uRnJhbWUiKV19LEsyPWZ1bmN0aW9uKGUsbil7Zm9yKHZhciByPTA7ZVtyXSE9PXZvaWQgMDspe2lmKG4oZVtyXSkpcmV0dXJuIGVbcl07cis9MX19LEdmPUsyKFUyLGZ1bmN0aW9uKHQpe3JldHVybiEhdnkodCl9KSwkZj12eShHZiksdXA9cTIoR2YpO2ZvLnJlcXVlc3RBbmltYXRpb25GcmFtZT0kZixmby5jYW5jZWxBbmltYXRpb25GcmFtZT11cDt2YXIgUTI9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7KDAseHQuWikodGhpcyx0KSx0aGlzLmNhbGxiYWNrcz1bXX1yZXR1cm4oMCxPdC5aKSh0LFt7a2V5OiJnZXRDYWxsYmFja3NOdW0iLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2FsbGJhY2tzLmxlbmd0aH19LHtrZXk6InRhcFByb21pc2UiLHZhbHVlOmZ1bmN0aW9uKG4scil7dGhpcy5jYWxsYmFja3MucHVzaChyKX19LHtrZXk6InByb21pc2UiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciBuPWFyZ3VtZW50cy5sZW5ndGgscj1uZXcgQXJyYXkobiksaT0wO2k8bjtpKyspcltpXT1hcmd1bWVudHNbaV07cmV0dXJuIFByb21pc2UuYWxsKHRoaXMuY2FsbGJhY2tzLm1hcChmdW5jdGlvbihhKXtyZXR1cm4gYS5hcHBseSh2b2lkIDAscil9KSl9fV0pfSgpLEoyPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpeygwLHh0LlopKHRoaXMsdCksdGhpcy5jYWxsYmFja3M9W119cmV0dXJuKDAsT3QuWikodCxbe2tleToidGFwUHJvbWlzZSIsdmFsdWU6ZnVuY3Rpb24obixyKXt0aGlzLmNhbGxiYWNrcy5wdXNoKHIpfX0se2tleToicHJvbWlzZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT0oMCxvby5aKSgoMCxNbi5aKSgpLm1hcmsoZnVuY3Rpb24gcigpe3ZhciBpLGEsbyxzLGM9YXJndW1lbnRzO3JldHVybigwLE1uLlopKCkud3JhcChmdW5jdGlvbih1KXtmb3IoOzspc3dpdGNoKHUucHJldj11Lm5leHQpe2Nhc2UgMDppZighdGhpcy5jYWxsYmFja3MubGVuZ3RoKXt1Lm5leHQ9MTQ7YnJlYWt9cmV0dXJuIHUubmV4dD0zLChpPXRoaXMuY2FsbGJhY2tzKVswXS5hcHBseShpLGMpO2Nhc2UgMzphPXUuc2VudCxvPTA7Y2FzZSA1OmlmKCEobzx0aGlzLmNhbGxiYWNrcy5sZW5ndGgtMSkpe3UubmV4dD0xMzticmVha31yZXR1cm4gcz10aGlzLmNhbGxiYWNrc1tvXSx1Lm5leHQ9OSxzKGEpO2Nhc2UgOTphPXUuc2VudDtjYXNlIDEwOm8rKyx1Lm5leHQ9NTticmVhaztjYXNlIDEzOnJldHVybiB1LmFicnVwdCgicmV0dXJuIixhKTtjYXNlIDE0OnJldHVybiB1LmFicnVwdCgicmV0dXJuIixudWxsKTtjYXNlIDE1OmNhc2UiZW5kIjpyZXR1cm4gdS5zdG9wKCl9fSxyLHRoaXMpfSkpO2Z1bmN0aW9uIG4oKXtyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIG59KCl9XSl9KCksTGk9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7KDAseHQuWikodGhpcyx0KSx0aGlzLmNhbGxiYWNrcz1bXX1yZXR1cm4oMCxPdC5aKSh0LFt7a2V5OiJ0YXAiLHZhbHVlOmZ1bmN0aW9uKG4scil7dGhpcy5jYWxsYmFja3MucHVzaChyKX19LHtrZXk6ImNhbGwiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciBuPWFyZ3VtZW50cy5sZW5ndGgscj1uZXcgQXJyYXkobiksaT0wO2k8bjtpKyspcltpXT1hcmd1bWVudHNbaV07dmFyIGE9YXJndW1lbnRzO3RoaXMuY2FsbGJhY2tzLmZvckVhY2goZnVuY3Rpb24obyl7by5hcHBseSh2b2lkIDAsYSl9KX19XSl9KCksb3U9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7KDAseHQuWikodGhpcyx0KSx0aGlzLmNhbGxiYWNrcz1bXX1yZXR1cm4oMCxPdC5aKSh0LFt7a2V5OiJ0YXAiLHZhbHVlOmZ1bmN0aW9uKG4scil7dGhpcy5jYWxsYmFja3MucHVzaChyKX19LHtrZXk6ImNhbGwiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciBuPWFyZ3VtZW50cy5sZW5ndGgscj1uZXcgQXJyYXkobiksaT0wO2k8bjtpKyspcltpXT1hcmd1bWVudHNbaV07aWYodGhpcy5jYWxsYmFja3MubGVuZ3RoKXtmb3IodmFyIGE9YXJndW1lbnRzLG89dGhpcy5jYWxsYmFja3NbMF0uYXBwbHkodm9pZCAwLGEpLHM9MDtzPHRoaXMuY2FsbGJhY2tzLmxlbmd0aC0xO3MrKyl7dmFyIGM9dGhpcy5jYWxsYmFja3Nbc107bz1jKG8pfXJldHVybiBvfXJldHVybiBudWxsfX1dKX0oKSx0Xz1bInNlcmlmIiwic2Fucy1zZXJpZiIsIm1vbm9zcGFjZSIsImN1cnNpdmUiLCJmYW50YXN5Iiwic3lzdGVtLXVpIl0sZV89LyhbXCJcJ10pW15cJ1wiXStcMS87ZnVuY3Rpb24gbl8odCl7Zm9yKHZhciBlPXQuZm9udFNpemUsbj1lPT09dm9pZCAwPzE2OmUscj10LmZvbnRGYW1pbHksaT1yPT09dm9pZCAwPyJzYW5zLXNlcmlmIjpyLGE9dC5mb250U3R5bGUsbz1hPT09dm9pZCAwPyJub3JtYWwiOmEscz10LmZvbnRWYXJpYW50LGM9cz09PXZvaWQgMD8ibm9ybWFsIjpzLGw9dC5mb250V2VpZ2h0LHU9bD09PXZvaWQgMD8ibm9ybWFsIjpsLGY9Vm4obikmJiIiLmNvbmNhdChuLCJweCIpfHwiMTZweCIsZD1pLnNwbGl0KCIsIiksaD1kLmxlbmd0aC0xO2g+PTA7aC0tKXt2YXIgdj1kW2hdLnRyaW0oKTshZV8udGVzdCh2KSYmdF8uaW5kZXhPZih2KTwwJiYodj0nIicuY29uY2F0KHYsJyInKSksZFtoXT12fXJldHVybiIiLmNvbmNhdChvLCIgIikuY29uY2F0KGMsIiAiKS5jb25jYXQodSwiICIpLmNvbmNhdChmLCIgIikuY29uY2F0KGQuam9pbigiLCIpKX1mdW5jdGlvbiB5aSh0LGUsbil7cmV0dXJuIGxyKHQpLHRbNF09TWF0aC50YW4oZSksdFsxXT1NYXRoLnRhbihuKSx0fXZhciBicj1XbigpLHJfPVduKCksaV89e3NjYWxlOmZ1bmN0aW9uKGUpe0lzKGJyLFtlWzBdLnZhbHVlLGVbMV0udmFsdWUsMV0pfSxzY2FsZVg6ZnVuY3Rpb24oZSl7SXMoYnIsW2VbMF0udmFsdWUsMSwxXSl9LHNjYWxlWTpmdW5jdGlvbihlKXtJcyhicixbMSxlWzBdLnZhbHVlLDFdKX0sc2NhbGVaOmZ1bmN0aW9uKGUpe0lzKGJyLFsxLDEsZVswXS52YWx1ZV0pfSxzY2FsZTNkOmZ1bmN0aW9uKGUpe0lzKGJyLFtlWzBdLnZhbHVlLGVbMV0udmFsdWUsZVsyXS52YWx1ZV0pfSx0cmFuc2xhdGU6ZnVuY3Rpb24oZSl7THIoYnIsW2VbMF0udmFsdWUsZVsxXS52YWx1ZSwwXSl9LHRyYW5zbGF0ZVg6ZnVuY3Rpb24oZSl7THIoYnIsW2VbMF0udmFsdWUsMCwwXSl9LHRyYW5zbGF0ZVk6ZnVuY3Rpb24oZSl7THIoYnIsWzAsZVswXS52YWx1ZSwwXSl9LHRyYW5zbGF0ZVo6ZnVuY3Rpb24oZSl7THIoYnIsWzAsMCxlWzBdLnZhbHVlXSl9LHRyYW5zbGF0ZTNkOmZ1bmN0aW9uKGUpe0xyKGJyLFtlWzBdLnZhbHVlLGVbMV0udmFsdWUsZVsyXS52YWx1ZV0pfSxyb3RhdGU6ZnVuY3Rpb24oZSl7UWEoYnIsQ24ocWkoZVswXSkpKX0scm90YXRlWDpmdW5jdGlvbihlKXtndihicixDbihxaShlWzBdKSkpfSxyb3RhdGVZOmZ1bmN0aW9uKGUpe1FkKGJyLENuKHFpKGVbMF0pKSl9LHJvdGF0ZVo6ZnVuY3Rpb24oZSl7UWEoYnIsQ24ocWkoZVswXSkpKX0scm90YXRlM2Q6ZnVuY3Rpb24oZSl7dWEoYnIsQ24ocWkoZVszXSkpLFtlWzBdLnZhbHVlLGVbMV0udmFsdWUsZVsyXS52YWx1ZV0pfSxza2V3OmZ1bmN0aW9uKGUpe3lpKGJyLENuKGVbMF0udmFsdWUpLENuKGVbMV0udmFsdWUpKX0sc2tld1g6ZnVuY3Rpb24oZSl7eWkoYnIsQ24oZVswXS52YWx1ZSksMCl9LHNrZXdZOmZ1bmN0aW9uKGUpe3lpKGJyLDAsQ24oZVswXS52YWx1ZSkpfSxtYXRyaXg6ZnVuY3Rpb24oZSl7VmQoYnIsZVswXS52YWx1ZSxlWzFdLnZhbHVlLDAsMCxlWzJdLnZhbHVlLGVbM10udmFsdWUsMCwwLDAsMCwxLDAsZVs0XS52YWx1ZSxlWzVdLnZhbHVlLDAsMSl9LG1hdHJpeDNkOmZ1bmN0aW9uKGUpe1ZkLmFwcGx5KG9lLFticl0uY29uY2F0KCgwLGxuLlopKGUubWFwKGZ1bmN0aW9uKG4pe3JldHVybiBuLnZhbHVlfSkpKSl9fSxhXz1zbigxLDEsMSksb189bWUoKSxaZj17dHJhbnNsYXRlOmZ1bmN0aW9uKGUsbil7Q3Quc2NlbmVHcmFwaFNlcnZpY2Uuc2V0TG9jYWxTY2FsZShlLGFfLCExKSxDdC5zY2VuZUdyYXBoU2VydmljZS5zZXRMb2NhbEV1bGVyQW5nbGVzKGUsb18sdm9pZCAwLHZvaWQgMCwhMSksQ3Quc2NlbmVHcmFwaFNlcnZpY2Uuc2V0TG9jYWxQb3NpdGlvbihlLFtuWzBdLnZhbHVlLG5bMV0udmFsdWUsMF0sITEpLEN0LnNjZW5lR3JhcGhTZXJ2aWNlLmRpcnRpZnlMb2NhbChlLGUudHJhbnNmb3JtYWJsZSl9fTtmdW5jdGlvbiBneSh0LGUpe2lmKHQubGVuZ3RoKXtpZih0Lmxlbmd0aD09PTEmJlpmW3RbMF0udF0pe1pmW3RbMF0udF0oZSx0WzBdLmQpO3JldHVybn1mb3IodmFyIG49bHIocl8pLHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIGk9dFtyXSxhPWkudCxvPWkuZCxzPWlfW2FdO3MmJihzKG8pLExjKG4sbixicikpfWUuc2V0TG9jYWxUcmFuc2Zvcm0obil9ZWxzZSBlLnJlc2V0TG9jYWxUcmFuc2Zvcm0oKTtyZXR1cm4gZS5nZXRMb2NhbFRyYW5zZm9ybSgpfXZhciBmcD1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXsoMCx4dC5aKSh0aGlzLHQpLHRoaXMucGFyc2VyPXYyLHRoaXMubWl4ZXI9TzJ9cmV0dXJuKDAsT3QuWikodCxbe2tleToiY2FsY3VsYXRvciIsdmFsdWU6ZnVuY3Rpb24obixyLGksYSl7cmV0dXJuIGkgaW5zdGFuY2VvZiBrYT9bXTppfX0se2tleToicG9zdFByb2Nlc3NvciIsdmFsdWU6ZnVuY3Rpb24obil7Z3kobi5wYXJzZWRTdHlsZS50cmFuc2Zvcm0sbil9fV0pfSgpLHNfPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpeygwLHh0LlopKHRoaXMsdCl9cmV0dXJuKDAsT3QuWikodCxbe2tleToicG9zdFByb2Nlc3NvciIsdmFsdWU6ZnVuY3Rpb24obil7dmFyIHI9bi5wYXJzZWRTdHlsZS50cmFuc2Zvcm1PcmlnaW47clswXS51bml0PT09WnQua1BpeGVscyYmclsxXS51bml0PT09WnQua1BpeGVscz9uLnNldE9yaWdpbihyWzBdLnZhbHVlLHJbMV0udmFsdWUpOm4uZ2V0R2VvbWV0cnlCb3VuZHMoKX19XSl9KCksY189ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7KDAseHQuWikodGhpcyx0KX1yZXR1cm4oMCxPdC5aKSh0LFt7a2V5OiJjYWxjdWxhdG9yIix2YWx1ZTpmdW5jdGlvbihuLHIsaSxhKXtyZXR1cm4gaS52YWx1ZX19LHtrZXk6InBvc3RQcm9jZXNzb3IiLHZhbHVlOmZ1bmN0aW9uKG4pe2lmKG4ucGFyZW50Tm9kZSl7dmFyIHI9bi5wYXJlbnROb2RlLGk9ci5yZW5kZXJhYmxlLGE9ci5zb3J0YWJsZTtpJiYoaS5kaXJ0eT0hMCksYSYmKGEuZGlydHk9ITAsYS5kaXJ0eVJlYXNvbj1rZi5aX0lOREVYX0NIQU5HRUQpfX19XSl9KCksbF89ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7KDAseHQuWikodGhpcyx0KX1yZXR1cm4oMCxPdC5aKSh0LFt7a2V5OiJ1cGRhdGUiLHZhbHVlOmZ1bmN0aW9uKG4scil7dmFyIGk9bi5jeCxhPWk9PT12b2lkIDA/MDppLG89bi5jeSxzPW89PT12b2lkIDA/MDpvLGM9bi5yLGw9Yz09PXZvaWQgMD8wOmM7cmV0dXJue2N4OmEsY3k6cyxod2lkdGg6bCxoaGVpZ2h0Omx9fX1dKX0oKSx1Xz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXsoMCx4dC5aKSh0aGlzLHQpfXJldHVybigwLE90LlopKHQsW3trZXk6InVwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24obixyKXt2YXIgaT1uLmN4LGE9aT09PXZvaWQgMD8wOmksbz1uLmN5LHM9bz09PXZvaWQgMD8wOm8sYz1uLnJ4LGw9Yz09PXZvaWQgMD8wOmMsdT1uLnJ5LGY9dT09PXZvaWQgMD8wOnU7cmV0dXJue2N4OmEsY3k6cyxod2lkdGg6bCxoaGVpZ2h0OmZ9fX1dKX0oKSx5eT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXsoMCx4dC5aKSh0aGlzLHQpfXJldHVybigwLE90LlopKHQsW3trZXk6InVwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24obil7dmFyIHI9bi54MSxpPW4ueTEsYT1uLngyLG89bi55MixzPU1hdGgubWluKHIsYSksYz1NYXRoLm1heChyLGEpLGw9TWF0aC5taW4oaSxvKSx1PU1hdGgubWF4KGksbyksZj1jLXMsZD11LWwsaD1mLzIsdj1kLzI7cmV0dXJue2N4OnMraCxjeTpsK3YsaHdpZHRoOmgsaGhlaWdodDp2fX19XSl9KCksZl89ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7KDAseHQuWikodGhpcyx0KX1yZXR1cm4oMCxPdC5aKSh0LFt7a2V5OiJ1cGRhdGUiLHZhbHVlOmZ1bmN0aW9uKG4pe3ZhciByPW4uZCxpPXIucmVjdCxhPWkueCxvPWkueSxzPWkud2lkdGgsYz1pLmhlaWdodCxsPXMvMix1PWMvMjtyZXR1cm57Y3g6YStsLGN5Om8rdSxod2lkdGg6bCxoaGVpZ2h0OnV9fX1dKX0oKSxkXz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXsoMCx4dC5aKSh0aGlzLHQpfXJldHVybigwLE90LlopKHQsW3trZXk6InVwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24obil7aWYobi5wb2ludHMmJk5yKG4ucG9pbnRzLnBvaW50cykpe3ZhciByPW4ucG9pbnRzLnBvaW50cyxpPU1hdGgubWluLmFwcGx5KE1hdGgsKDAsbG4uWikoci5tYXAoZnVuY3Rpb24oZCl7cmV0dXJuIGRbMF19KSkpLGE9TWF0aC5tYXguYXBwbHkoTWF0aCwoMCxsbi5aKShyLm1hcChmdW5jdGlvbihkKXtyZXR1cm4gZFswXX0pKSksbz1NYXRoLm1pbi5hcHBseShNYXRoLCgwLGxuLlopKHIubWFwKGZ1bmN0aW9uKGQpe3JldHVybiBkWzFdfSkpKSxzPU1hdGgubWF4LmFwcGx5KE1hdGgsKDAsbG4uWikoci5tYXAoZnVuY3Rpb24oZCl7cmV0dXJuIGRbMV19KSkpLGM9YS1pLGw9cy1vLHU9Yy8yLGY9bC8yO3JldHVybntjeDppK3UsY3k6bytmLGh3aWR0aDp1LGhoZWlnaHQ6Zn19cmV0dXJue2N4OjAsY3k6MCxod2lkdGg6MCxoaGVpZ2h0OjB9fX1dKX0oKSxoXz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXsoMCx4dC5aKSh0aGlzLHQpfXJldHVybigwLE90LlopKHQsW3trZXk6InVwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24obixyKXt2YXIgaT1uLngsYT1pPT09dm9pZCAwPzA6aSxvPW4ueSxzPW89PT12b2lkIDA/MDpvLGM9bi5zcmMsbD1uLndpZHRoLHU9bD09PXZvaWQgMD8wOmwsZj1uLmhlaWdodCxkPWY9PT12b2lkIDA/MDpmLGg9dSx2PWQ7cmV0dXJuIGMmJiFpcihjKSYmKGh8fChoPWMud2lkdGgsbi53aWR0aD1oKSx2fHwodj1jLmhlaWdodCxuLmhlaWdodD12KSkse2N4OmEraC8yLGN5OnMrdi8yLGh3aWR0aDpoLzIsaGhlaWdodDp2LzJ9fX1dKX0oKSxkcD1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7KDAseHQuWikodGhpcyx0KSx0aGlzLmdsb2JhbFJ1bnRpbWU9ZX1yZXR1cm4oMCxPdC5aKSh0LFt7a2V5OiJpc1JlYWR5VG9NZWFzdXJlIix2YWx1ZTpmdW5jdGlvbihuLHIpe3ZhciBpPW4udGV4dDtyZXR1cm4gaX19LHtrZXk6InVwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24obixyKXt2YXIgaSxhPW4udGV4dCxvPW4udGV4dEFsaWduLHM9bz09PXZvaWQgMD8ic3RhcnQiOm8sYz1uLmxpbmVXaWR0aCxsPWM9PT12b2lkIDA/MTpjLHU9bi50ZXh0QmFzZWxpbmUsZj11PT09dm9pZCAwPyJhbHBoYWJldGljIjp1LGQ9bi5keCxoPWQ9PT12b2lkIDA/MDpkLHY9bi5keSxnPXY9PT12b2lkIDA/MDp2LHk9bi54LGI9eT09PXZvaWQgMD8wOnkseD1uLnksXz14PT09dm9pZCAwPzA6eDtpZighdGhpcy5pc1JlYWR5VG9NZWFzdXJlKG4scikpcmV0dXJuIG4ubWV0cmljcz17Zm9udDoiIix3aWR0aDowLGhlaWdodDowLGxpbmVzOltdLGxpbmVXaWR0aHM6W10sbGluZUhlaWdodDowLG1heExpbmVXaWR0aDowLGZvbnRQcm9wZXJ0aWVzOnthc2NlbnQ6MCxkZXNjZW50OjAsZm9udFNpemU6MH0sbGluZU1ldHJpY3M6W119LHtod2lkdGg6MCxoaGVpZ2h0OjAsY3g6MCxjeTowfTt2YXIgdz0ocj09bnVsbHx8KGk9ci5vd25lckRvY3VtZW50KT09PW51bGx8fGk9PT12b2lkIDB8fChpPWkuZGVmYXVsdFZpZXcpPT09bnVsbHx8aT09PXZvaWQgMD92b2lkIDA6aS5nZXRDb25maWcoKSl8fHt9LE89dy5vZmZzY3JlZW5DYW52YXMsRT10aGlzLmdsb2JhbFJ1bnRpbWUudGV4dFNlcnZpY2UubWVhc3VyZVRleHQoYSxuLE8pO24ubWV0cmljcz1FO3ZhciBNPUUud2lkdGgsaz1FLmhlaWdodCxBPU0vMixQPWsvMixDPWIrQTtzPT09ImNlbnRlciJ8fHM9PT0ibWlkZGxlIj9DKz1sLzItQToocz09PSJyaWdodCJ8fHM9PT0iZW5kIikmJihDKz1sLUEqMik7dmFyIE49Xy1QO3JldHVybiBmPT09Im1pZGRsZSI/Tis9UDpmPT09InRvcCJ8fGY9PT0iaGFuZ2luZyI/Tis9UCoyOmY9PT0iYWxwaGFiZXRpYyJ8fChmPT09ImJvdHRvbSJ8fGY9PT0iaWRlb2dyYXBoaWMiKSYmKE4rPTApLGgmJihDKz1oKSxnJiYoTis9Zykse2N4OkMsY3k6Tixod2lkdGg6QSxoaGVpZ2h0OlB9fX1dKX0oKSxocD1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXsoMCx4dC5aKSh0aGlzLHQpfXJldHVybigwLE90LlopKHQsW3trZXk6InVwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24obixyKXtyZXR1cm57Y3g6MCxjeTowLGh3aWR0aDowLGhoZWlnaHQ6MH19fV0pfSgpLHBfPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpeygwLHh0LlopKHRoaXMsdCl9cmV0dXJuKDAsT3QuWikodCxbe2tleToidXBkYXRlIix2YWx1ZTpmdW5jdGlvbihuLHIpe3ZhciBpPW4ueCxhPWk9PT12b2lkIDA/MDppLG89bi55LHM9bz09PXZvaWQgMD8wOm8sYz1uLndpZHRoLGw9Yz09PXZvaWQgMD8wOmMsdT1uLmhlaWdodCxmPXU9PT12b2lkIDA/MDp1O3JldHVybntjeDphK2wvMixjeTpzK2YvMixod2lkdGg6bC8yLGhoZWlnaHQ6Zi8yfX19XSl9KCk7ZnVuY3Rpb24gaGsodCl7cmV0dXJuISF0LnR5cGV9dmFyIFlmPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlKXsoMCx4dC5aKSh0aGlzLHQpLHRoaXMuZXZlbnRQaGFzZT10LnByb3RvdHlwZS5OT05FLHRoaXMuYnViYmxlcz0hMCx0aGlzLmNhbmNlbEJ1YmJsZT0hMCx0aGlzLmNhbmNlbGFibGU9ITEsdGhpcy5kZWZhdWx0UHJldmVudGVkPSExLHRoaXMucHJvcGFnYXRpb25TdG9wcGVkPSExLHRoaXMucHJvcGFnYXRpb25JbW1lZGlhdGVseVN0b3BwZWQ9ITEsdGhpcy5sYXllcj1uZXcgaWksdGhpcy5wYWdlPW5ldyBpaSx0aGlzLmNhbnZhcz1uZXcgaWksdGhpcy52aWV3cG9ydD1uZXcgaWksdGhpcy5jb21wb3NlZD0hMSx0aGlzLk5PTkU9MCx0aGlzLkNBUFRVUklOR19QSEFTRT0xLHRoaXMuQVRfVEFSR0VUPTIsdGhpcy5CVUJCTElOR19QSEFTRT0zLHRoaXMubWFuYWdlcj1lfXJldHVybigwLE90LlopKHQsW3trZXk6Im5hbWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnR5cGV9fSx7a2V5OiJsYXllclgiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmxheWVyLnh9fSx7a2V5OiJsYXllclkiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmxheWVyLnl9fSx7a2V5OiJwYWdlWCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucGFnZS54fX0se2tleToicGFnZVkiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBhZ2UueX19LHtrZXk6IngiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNhbnZhcy54fX0se2tleToieSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2FudmFzLnl9fSx7a2V5OiJjYW52YXNYIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jYW52YXMueH19LHtrZXk6ImNhbnZhc1kiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNhbnZhcy55fX0se2tleToidmlld3BvcnRYIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52aWV3cG9ydC54fX0se2tleToidmlld3BvcnRZIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52aWV3cG9ydC55fX0se2tleToiY29tcG9zZWRQYXRoIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hbmFnZXImJighdGhpcy5wYXRofHx0aGlzLnBhdGhbMF0hPT10aGlzLnRhcmdldCkmJih0aGlzLnBhdGg9dGhpcy50YXJnZXQ/dGhpcy5tYW5hZ2VyLnByb3BhZ2F0aW9uUGF0aCh0aGlzLnRhcmdldCk6W10pLHRoaXMucGF0aH19LHtrZXk6InByb3BhZ2F0aW9uUGF0aCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29tcG9zZWRQYXRoKCl9fSx7a2V5OiJwcmV2ZW50RGVmYXVsdCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLm5hdGl2ZUV2ZW50IGluc3RhbmNlb2YgRXZlbnQmJnRoaXMubmF0aXZlRXZlbnQuY2FuY2VsYWJsZSYmdGhpcy5uYXRpdmVFdmVudC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZGVmYXVsdFByZXZlbnRlZD0hMH19LHtrZXk6InN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnByb3BhZ2F0aW9uSW1tZWRpYXRlbHlTdG9wcGVkPSEwfX0se2tleToic3RvcFByb3BhZ2F0aW9uIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMucHJvcGFnYXRpb25TdG9wcGVkPSEwfX0se2tleToiaW5pdEV2ZW50Iix2YWx1ZTpmdW5jdGlvbigpe319LHtrZXk6ImluaXRVSUV2ZW50Iix2YWx1ZTpmdW5jdGlvbigpe319LHtrZXk6ImNsb25lIix2YWx1ZTpmdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcihrbil9fV0pfSgpLG15PWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt2YXIgbjsoMCx4dC5aKSh0aGlzLGUpO2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoLGk9bmV3IEFycmF5KHIpLGE9MDthPHI7YSsrKWlbYV09YXJndW1lbnRzW2FdO3JldHVybiBuPSgwLERlLlopKHRoaXMsZSxbXS5jb25jYXQoaSkpLG4uY2xpZW50PW5ldyBpaSxuLm1vdmVtZW50PW5ldyBpaSxuLm9mZnNldD1uZXcgaWksbi5nbG9iYWw9bmV3IGlpLG4uc2NyZWVuPW5ldyBpaSxufXJldHVybigwLE1lLlopKGUsdCksKDAsT3QuWikoZSxbe2tleToiY2xpZW50WCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xpZW50Lnh9fSx7a2V5OiJjbGllbnRZIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbGllbnQueX19LHtrZXk6Im1vdmVtZW50WCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubW92ZW1lbnQueH19LHtrZXk6Im1vdmVtZW50WSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubW92ZW1lbnQueX19LHtrZXk6Im9mZnNldFgiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm9mZnNldC54fX0se2tleToib2Zmc2V0WSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub2Zmc2V0Lnl9fSx7a2V5OiJnbG9iYWxYIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nbG9iYWwueH19LHtrZXk6Imdsb2JhbFkiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdsb2JhbC55fX0se2tleToic2NyZWVuWCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2NyZWVuLnh9fSx7a2V5OiJzY3JlZW5ZIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zY3JlZW4ueX19LHtrZXk6ImdldE1vZGlmaWVyU3RhdGUiLHZhbHVlOmZ1bmN0aW9uKHIpe3JldHVybiJnZXRNb2RpZmllclN0YXRlImluIHRoaXMubmF0aXZlRXZlbnQmJnRoaXMubmF0aXZlRXZlbnQuZ2V0TW9kaWZpZXJTdGF0ZShyKX19LHtrZXk6ImluaXRNb3VzZUV2ZW50Iix2YWx1ZTpmdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcihrbil9fV0pfShZZikscHA9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBuOygwLHh0LlopKHRoaXMsZSk7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGgsaT1uZXcgQXJyYXkociksYT0wO2E8cjthKyspaVthXT1hcmd1bWVudHNbYV07cmV0dXJuIG49KDAsRGUuWikodGhpcyxlLFtdLmNvbmNhdChpKSksbi53aWR0aD0wLG4uaGVpZ2h0PTAsbi5pc1ByaW1hcnk9ITEsbn1yZXR1cm4oMCxNZS5aKShlLHQpLCgwLE90LlopKGUsW3trZXk6ImdldENvYWxlc2NlZEV2ZW50cyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50eXBlPT09InBvaW50ZXJtb3ZlInx8dGhpcy50eXBlPT09Im1vdXNlbW92ZSJ8fHRoaXMudHlwZT09PSJ0b3VjaG1vdmUiP1t0aGlzXTpbXX19LHtrZXk6ImdldFByZWRpY3RlZEV2ZW50cyIsdmFsdWU6ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoImdldFByZWRpY3RlZEV2ZW50cyBpcyBub3Qgc3VwcG9ydGVkISIpfX0se2tleToiY2xvbmUiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFuYWdlci5jbG9uZVBvaW50ZXJFdmVudCh0aGlzKX19XSl9KG15KSx2cD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuKDAseHQuWikodGhpcyxlKSwoMCxEZS5aKSh0aGlzLGUsYXJndW1lbnRzKX1yZXR1cm4oMCxNZS5aKShlLHQpLCgwLE90LlopKGUsW3trZXk6ImNsb25lIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hbmFnZXIuY2xvbmVXaGVlbEV2ZW50KHRoaXMpfX1dKX0obXkpLE5uPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUobixyKXt2YXIgaTtyZXR1cm4oMCx4dC5aKSh0aGlzLGUpLGk9KDAsRGUuWikodGhpcyxlLFtudWxsXSksaS50eXBlPW4saS5kZXRhaWw9cixPYmplY3QuYXNzaWduKGksciksaX1yZXR1cm4oMCxNZS5aKShlLHQpLCgwLE90LlopKGUpfShZZiksYnk9bmV3IFdlYWtNYXAseHk9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7KDAseHQuWikodGhpcyx0KSx0aGlzLmVtaXR0ZXI9bmV3IExvfXJldHVybigwLE90LlopKHQsW3trZXk6Im9uIix2YWx1ZTpmdW5jdGlvbihuLHIsaSl7cmV0dXJuIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihuLHIsaSksdGhpc319LHtrZXk6ImFkZEV2ZW50TGlzdGVuZXIiLHZhbHVlOmZ1bmN0aW9uKG4scixpKXt2YXIgYT0hMSxvPSExO2lmKFF2KGkpKWE9aTtlbHNlIGlmKGkpe3ZhciBzPWkuY2FwdHVyZTthPXM9PT12b2lkIDA/ITE6czt2YXIgYz1pLm9uY2U7bz1jPT09dm9pZCAwPyExOmN9YSYmKG4rPSJjYXB0dXJlIikscj1YbihyKT9yOnIuaGFuZGxlRXZlbnQ7dmFyIGw9WG4ocik/dm9pZCAwOnI7cmV0dXJuIG8/dGhpcy5lbWl0dGVyLm9uY2UobixyLGwpOnRoaXMuZW1pdHRlci5vbihuLHIsbCksdGhpc319LHtrZXk6Im9mZiIsdmFsdWU6ZnVuY3Rpb24obixyLGkpe3JldHVybiBuP3RoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihuLHIsaSk6dGhpcy5yZW1vdmVBbGxFdmVudExpc3RlbmVycygpLHRoaXN9fSx7a2V5OiJyZW1vdmVBbGxFdmVudExpc3RlbmVycyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgbjsobj10aGlzLmVtaXR0ZXIpPT09bnVsbHx8bj09PXZvaWQgMHx8bi5yZW1vdmVBbGxMaXN0ZW5lcnMoKX19LHtrZXk6InJlbW92ZUV2ZW50TGlzdGVuZXIiLHZhbHVlOmZ1bmN0aW9uKG4scixpKXt2YXIgYTtpZighdGhpcy5lbWl0dGVyKXJldHVybiB0aGlzO3ZhciBvPVF2KGkpP2k6aT09bnVsbD92b2lkIDA6aS5jYXB0dXJlO28mJihuKz0iY2FwdHVyZSIpLHI9WG4ocik/cjooYT1yKT09PW51bGx8fGE9PT12b2lkIDA/dm9pZCAwOmEuaGFuZGxlRXZlbnQ7dmFyIHM9WG4ocik/dm9pZCAwOnI7cmV0dXJuIHRoaXMuZW1pdHRlci5vZmYobixyLHMpLHRoaXN9fSx7a2V5OiJlbWl0Iix2YWx1ZTpmdW5jdGlvbihuLHIpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgTm4obixyKSl9fSx7a2V5OiJkaXNwYXRjaEV2ZW50Iix2YWx1ZTpmdW5jdGlvbihuKXt2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06ITEsaT1ieS5nZXQodGhpcyk7aWYoIWkpe3ZhciBhO3RoaXMuZG9jdW1lbnQ/aT10aGlzOnRoaXMuZGVmYXVsdFZpZXc/aT10aGlzLmRlZmF1bHRWaWV3Omk9KGE9dGhpcy5vd25lckRvY3VtZW50KT09PW51bGx8fGE9PT12b2lkIDA/dm9pZCAwOmEuZGVmYXVsdFZpZXcsaSYmYnkuc2V0KHRoaXMsaSl9aWYoaSl7aWYobi5tYW5hZ2VyPWkuZ2V0RXZlbnRTZXJ2aWNlKCksIW4ubWFuYWdlcilyZXR1cm4hMTtuLmRlZmF1bHRQcmV2ZW50ZWQ9ITEsbi5wYXRoP24ucGF0aC5sZW5ndGg9MDpuLnBhZ2U9W10scnx8KG4udGFyZ2V0PXRoaXMpLG4ubWFuYWdlci5kaXNwYXRjaEV2ZW50KG4sbi50eXBlLHIpfWVsc2UgdGhpcy5lbWl0dGVyLmVtaXQobi50eXBlLG4pO3JldHVybiFuLmRlZmF1bHRQcmV2ZW50ZWR9fV0pfSgpLGZyPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt2YXIgbjsoMCx4dC5aKSh0aGlzLGUpO2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoLGk9bmV3IEFycmF5KHIpLGE9MDthPHI7YSsrKWlbYV09YXJndW1lbnRzW2FdO3JldHVybiBuPSgwLERlLlopKHRoaXMsZSxbXS5jb25jYXQoaSkpLG4uc2hhZG93PSExLG4ub3duZXJEb2N1bWVudD1udWxsLG4uaXNDb25uZWN0ZWQ9ITEsbi5iYXNlVVJJPSIiLG4uY2hpbGROb2Rlcz1bXSxuLm5vZGVUeXBlPTAsbi5ub2RlTmFtZT0iIixuLm5vZGVWYWx1ZT1udWxsLG4ucGFyZW50Tm9kZT1udWxsLG59cmV0dXJuKDAsTWUuWikoZSx0KSwoMCxPdC5aKShlLFt7a2V5OiJ0ZXh0Q29udGVudCIsZ2V0OmZ1bmN0aW9uKCl7dmFyIHI9IiI7dGhpcy5ub2RlTmFtZT09PWR0LlRFWFQmJihyKz10aGlzLnN0eWxlLnRleHQpO3ZhciBpPSgwLFlzLlopKHRoaXMuY2hpbGROb2RlcyksYTt0cnl7Zm9yKGkucygpOyEoYT1pLm4oKSkuZG9uZTspe3ZhciBvPWEudmFsdWU7by5ub2RlTmFtZT09PWR0LlRFWFQ/cis9by5ub2RlVmFsdWU6cis9by50ZXh0Q29udGVudH19Y2F0Y2gocyl7aS5lKHMpfWZpbmFsbHl7aS5mKCl9cmV0dXJuIHJ9LHNldDpmdW5jdGlvbihyKXt2YXIgaT10aGlzO3RoaXMuY2hpbGROb2Rlcy5zbGljZSgpLmZvckVhY2goZnVuY3Rpb24oYSl7aS5yZW1vdmVDaGlsZChhKX0pLHRoaXMubm9kZU5hbWU9PT1kdC5URVhUJiYodGhpcy5zdHlsZS50ZXh0PSIiLmNvbmNhdChyKSl9fSx7a2V5OiJnZXRSb290Tm9kZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXZvaWQgMD9hcmd1bWVudHNbMF06e307cmV0dXJuIHRoaXMucGFyZW50Tm9kZT90aGlzLnBhcmVudE5vZGUuZ2V0Um9vdE5vZGUocik6ci5jb21wb3NlZCYmdGhpcy5ob3N0P3RoaXMuaG9zdC5nZXRSb290Tm9kZShyKTp0aGlzfX0se2tleToiaGFzQ2hpbGROb2RlcyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jaGlsZE5vZGVzLmxlbmd0aD4wfX0se2tleToiaXNEZWZhdWx0TmFtZXNwYWNlIix2YWx1ZTpmdW5jdGlvbihyKXt0aHJvdyBuZXcgRXJyb3Ioa24pfX0se2tleToibG9va3VwTmFtZXNwYWNlVVJJIix2YWx1ZTpmdW5jdGlvbihyKXt0aHJvdyBuZXcgRXJyb3Ioa24pfX0se2tleToibG9va3VwUHJlZml4Iix2YWx1ZTpmdW5jdGlvbihyKXt0aHJvdyBuZXcgRXJyb3Ioa24pfX0se2tleToibm9ybWFsaXplIix2YWx1ZTpmdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcihrbil9fSx7a2V5OiJpc0VxdWFsTm9kZSIsdmFsdWU6ZnVuY3Rpb24ocil7cmV0dXJuIHRoaXM9PT1yfX0se2tleToiaXNTYW1lTm9kZSIsdmFsdWU6ZnVuY3Rpb24ocil7cmV0dXJuIHRoaXMuaXNFcXVhbE5vZGUocil9fSx7a2V5OiJwYXJlbnQiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBhcmVudE5vZGV9fSx7a2V5OiJwYXJlbnRFbGVtZW50IixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH19LHtrZXk6Im5leHRTaWJsaW5nIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH19LHtrZXk6InByZXZpb3VzU2libGluZyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9fSx7a2V5OiJmaXJzdENoaWxkIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jaGlsZE5vZGVzLmxlbmd0aD4wP3RoaXMuY2hpbGROb2Rlc1swXTpudWxsfX0se2tleToibGFzdENoaWxkIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jaGlsZE5vZGVzLmxlbmd0aD4wP3RoaXMuY2hpbGROb2Rlc1t0aGlzLmNoaWxkTm9kZXMubGVuZ3RoLTFdOm51bGx9fSx7a2V5OiJjb21wYXJlRG9jdW1lbnRQb3NpdGlvbiIsdmFsdWU6ZnVuY3Rpb24ocil7aWYocj09PXRoaXMpcmV0dXJuIDA7Zm9yKHZhciBpPXIsYT10aGlzLG89W2ldLHM9W2FdOyhjPWkucGFyZW50Tm9kZSkhPT1udWxsJiZjIT09dm9pZCAwP2M6YS5wYXJlbnROb2RlOyl7dmFyIGM7aT1pLnBhcmVudE5vZGU/KG8ucHVzaChpLnBhcmVudE5vZGUpLGkucGFyZW50Tm9kZSk6aSxhPWEucGFyZW50Tm9kZT8ocy5wdXNoKGEucGFyZW50Tm9kZSksYS5wYXJlbnROb2RlKTphfWlmKGkhPT1hKXJldHVybiBlLkRPQ1VNRU5UX1BPU0lUSU9OX0RJU0NPTk5FQ1RFRHxlLkRPQ1VNRU5UX1BPU0lUSU9OX0lNUExFTUVOVEFUSU9OX1NQRUNJRklDfGUuRE9DVU1FTlRfUE9TSVRJT05fUFJFQ0VESU5HO3ZhciBsPW8ubGVuZ3RoPnMubGVuZ3RoP286cyx1PWw9PT1vP3M6bztpZihsW2wubGVuZ3RoLXUubGVuZ3RoXT09PXVbMF0pcmV0dXJuIGw9PT1vP2UuRE9DVU1FTlRfUE9TSVRJT05fQ09OVEFJTkVEX0JZfGUuRE9DVU1FTlRfUE9TSVRJT05fRk9MTE9XSU5HOmUuRE9DVU1FTlRfUE9TSVRJT05fQ09OVEFJTlN8ZS5ET0NVTUVOVF9QT1NJVElPTl9QUkVDRURJTkc7Zm9yKHZhciBmPWwubGVuZ3RoLXUubGVuZ3RoLGQ9dS5sZW5ndGgtMTtkPj0wO2QtLSl7dmFyIGg9dVtkXSx2PWxbZitkXTtpZih2IT09aCl7dmFyIGc9aC5wYXJlbnROb2RlLmNoaWxkTm9kZXM7cmV0dXJuIGcuaW5kZXhPZihoKTxnLmluZGV4T2Yodik/dT09PW8/ZS5ET0NVTUVOVF9QT1NJVElPTl9QUkVDRURJTkc6ZS5ET0NVTUVOVF9QT1NJVElPTl9GT0xMT1dJTkc6bD09PW8/ZS5ET0NVTUVOVF9QT1NJVElPTl9QUkVDRURJTkc6ZS5ET0NVTUVOVF9QT1NJVElPTl9GT0xMT1dJTkd9fXJldHVybiBlLkRPQ1VNRU5UX1BPU0lUSU9OX0ZPTExPV0lOR319LHtrZXk6ImNvbnRhaW4iLHZhbHVlOmZ1bmN0aW9uKHIpe3JldHVybiB0aGlzLmNvbnRhaW5zKHIpfX0se2tleToiY29udGFpbnMiLHZhbHVlOmZ1bmN0aW9uKHIpe2Zvcih2YXIgaT1yO2kmJnRoaXMhPT1pOylpPWkucGFyZW50Tm9kZTtyZXR1cm4hIWl9fSx7a2V5OiJnZXRBbmNlc3RvciIsdmFsdWU6ZnVuY3Rpb24ocil7Zm9yKHZhciBpPXRoaXM7cj4wJiZpOylpPWkucGFyZW50Tm9kZSxyLS07cmV0dXJuIGl9fSx7a2V5OiJmb3JFYWNoIix2YWx1ZTpmdW5jdGlvbihyKXtmb3IodmFyIGk9W3RoaXNdO2kubGVuZ3RoPjA7KXt2YXIgYT1pLnBvcCgpLG89cihhKTtpZihvPT09ITEpYnJlYWs7Zm9yKHZhciBzPWEuY2hpbGROb2Rlcy5sZW5ndGgtMTtzPj0wO3MtLSlpLnB1c2goYS5jaGlsZE5vZGVzW3NdKX19fV0sW3trZXk6ImlzTm9kZSIsdmFsdWU6ZnVuY3Rpb24ocil7cmV0dXJuISFyLmNoaWxkTm9kZXN9fV0pfSh4eSk7ZnIuRE9DVU1FTlRfUE9TSVRJT05fRElTQ09OTkVDVEVEPTEsZnIuRE9DVU1FTlRfUE9TSVRJT05fUFJFQ0VESU5HPTIsZnIuRE9DVU1FTlRfUE9TSVRJT05fRk9MTE9XSU5HPTQsZnIuRE9DVU1FTlRfUE9TSVRJT05fQ09OVEFJTlM9OCxmci5ET0NVTUVOVF9QT1NJVElPTl9DT05UQUlORURfQlk9MTYsZnIuRE9DVU1FTlRfUE9TSVRJT05fSU1QTEVNRU5UQVRJT05fU1BFQ0lGSUM9MzI7dmFyIHZfPTIwNDgsZ189ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUsbil7dmFyIHI9dGhpczsoMCx4dC5aKSh0aGlzLHQpLHRoaXMubmF0aXZlSFRNTE1hcD1uZXcgV2Vha01hcCx0aGlzLmN1cnNvcj0iZGVmYXVsdCIsdGhpcy5tYXBwaW5nVGFibGU9e30sdGhpcy5tYXBwaW5nU3RhdGU9e3RyYWNraW5nRGF0YTp7fX0sdGhpcy5ldmVudFBvb2w9bmV3IE1hcCx0aGlzLnRtcE1hdHJpeD1XbigpLHRoaXMudG1wVmVjMz1tZSgpLHRoaXMub25Qb2ludGVyRG93bj1mdW5jdGlvbihpKXt2YXIgYT1yLmNyZWF0ZVBvaW50ZXJFdmVudChpKTtpZihyLmRpc3BhdGNoRXZlbnQoYSwicG9pbnRlcmRvd24iKSxhLnBvaW50ZXJUeXBlPT09InRvdWNoIilyLmRpc3BhdGNoRXZlbnQoYSwidG91Y2hzdGFydCIpO2Vsc2UgaWYoYS5wb2ludGVyVHlwZT09PSJtb3VzZSJ8fGEucG9pbnRlclR5cGU9PT0icGVuIil7dmFyIG89YS5idXR0b249PT0yO3IuZGlzcGF0Y2hFdmVudChhLG8/InJpZ2h0ZG93biI6Im1vdXNlZG93biIpfXZhciBzPXIudHJhY2tpbmdEYXRhKGkucG9pbnRlcklkKTtzLnByZXNzVGFyZ2V0c0J5QnV0dG9uW2kuYnV0dG9uXT1hLmNvbXBvc2VkUGF0aCgpLHIuZnJlZUV2ZW50KGEpfSx0aGlzLm9uUG9pbnRlclVwPWZ1bmN0aW9uKGkpe3ZhciBhPWxwLm5vdygpLG89ci5jcmVhdGVQb2ludGVyRXZlbnQoaSx2b2lkIDAsdm9pZCAwLHIuY29udGV4dC5jb25maWcuYWx3YXlzVHJpZ2dlclBvaW50ZXJFdmVudE9uQ2FudmFzP3Iucm9vdFRhcmdldDp2b2lkIDApO2lmKHIuZGlzcGF0Y2hFdmVudChvLCJwb2ludGVydXAiKSxvLnBvaW50ZXJUeXBlPT09InRvdWNoIilyLmRpc3BhdGNoRXZlbnQobywidG91Y2hlbmQiKTtlbHNlIGlmKG8ucG9pbnRlclR5cGU9PT0ibW91c2UifHxvLnBvaW50ZXJUeXBlPT09InBlbiIpe3ZhciBzPW8uYnV0dG9uPT09MjtyLmRpc3BhdGNoRXZlbnQobyxzPyJyaWdodHVwIjoibW91c2V1cCIpfXZhciBjPXIudHJhY2tpbmdEYXRhKGkucG9pbnRlcklkKSxsPXIuZmluZE1vdW50ZWRUYXJnZXQoYy5wcmVzc1RhcmdldHNCeUJ1dHRvbltpLmJ1dHRvbl0pLHU9bDtpZihsJiYhby5jb21wb3NlZFBhdGgoKS5pbmNsdWRlcyhsKSl7Zm9yKHZhciBmPWw7ZiYmIW8uY29tcG9zZWRQYXRoKCkuaW5jbHVkZXMoZik7KXtpZihvLmN1cnJlbnRUYXJnZXQ9ZixyLm5vdGlmeVRhcmdldChvLCJwb2ludGVydXBvdXRzaWRlIiksby5wb2ludGVyVHlwZT09PSJ0b3VjaCIpci5ub3RpZnlUYXJnZXQobywidG91Y2hlbmRvdXRzaWRlIik7ZWxzZSBpZihvLnBvaW50ZXJUeXBlPT09Im1vdXNlInx8by5wb2ludGVyVHlwZT09PSJwZW4iKXt2YXIgZD1vLmJ1dHRvbj09PTI7ci5ub3RpZnlUYXJnZXQobyxkPyJyaWdodHVwb3V0c2lkZSI6Im1vdXNldXBvdXRzaWRlIil9ZnIuaXNOb2RlKGYpJiYoZj1mLnBhcmVudE5vZGUpfWRlbGV0ZSBjLnByZXNzVGFyZ2V0c0J5QnV0dG9uW2kuYnV0dG9uXSx1PWZ9aWYodSl7dmFyIGgsdj1yLmNsb25lUG9pbnRlckV2ZW50KG8sImNsaWNrIik7di50YXJnZXQ9dSx2LnBhdGg9W10sYy5jbGlja3NCeUJ1dHRvbltpLmJ1dHRvbl18fChjLmNsaWNrc0J5QnV0dG9uW2kuYnV0dG9uXT17Y2xpY2tDb3VudDowLHRhcmdldDp2LnRhcmdldCx0aW1lU3RhbXA6YX0pO3ZhciBnPXIuY29udGV4dC5yZW5kZXJpbmdDb250ZXh0LnJvb3Qub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldyx5PWMuY2xpY2tzQnlCdXR0b25baS5idXR0b25dO3kudGFyZ2V0PT09di50YXJnZXQmJmEteS50aW1lU3RhbXA8Zy5nZXRDb25maWcoKS5kYmxDbGlja1NwZWVkPysreS5jbGlja0NvdW50OnkuY2xpY2tDb3VudD0xLHkudGFyZ2V0PXYudGFyZ2V0LHkudGltZVN0YW1wPWEsdi5kZXRhaWw9eS5jbGlja0NvdW50LChoPW8uZGV0YWlsKSE9PW51bGwmJmghPT12b2lkIDAmJmgucHJldmVudENsaWNrfHwoIXIuY29udGV4dC5jb25maWcudXNlTmF0aXZlQ2xpY2tFdmVudCYmKHYucG9pbnRlclR5cGU9PT0ibW91c2UifHx2LnBvaW50ZXJUeXBlPT09InRvdWNoIikmJnIuZGlzcGF0Y2hFdmVudCh2LCJjbGljayIpLHIuZGlzcGF0Y2hFdmVudCh2LCJwb2ludGVydGFwIikpLHIuZnJlZUV2ZW50KHYpfXIuZnJlZUV2ZW50KG8pfSx0aGlzLm9uUG9pbnRlck1vdmU9ZnVuY3Rpb24oaSl7dmFyIGE9ci5jcmVhdGVQb2ludGVyRXZlbnQoaSx2b2lkIDAsdm9pZCAwLHIuY29udGV4dC5jb25maWcuYWx3YXlzVHJpZ2dlclBvaW50ZXJFdmVudE9uQ2FudmFzP3Iucm9vdFRhcmdldDp2b2lkIDApLG89YS5wb2ludGVyVHlwZT09PSJtb3VzZSJ8fGEucG9pbnRlclR5cGU9PT0icGVuIixzPXIudHJhY2tpbmdEYXRhKGkucG9pbnRlcklkKSxjPXIuZmluZE1vdW50ZWRUYXJnZXQocy5vdmVyVGFyZ2V0cyk7aWYocy5vdmVyVGFyZ2V0cyYmYyE9PWEudGFyZ2V0KXt2YXIgbD1pLnR5cGU9PT0ibW91c2Vtb3ZlIj8ibW91c2VvdXQiOiJwb2ludGVyb3V0Iix1PXIuY3JlYXRlUG9pbnRlckV2ZW50KGksbCxjfHx2b2lkIDApO2lmKHIuZGlzcGF0Y2hFdmVudCh1LCJwb2ludGVyb3V0IiksbyYmci5kaXNwYXRjaEV2ZW50KHUsIm1vdXNlb3V0IiksIWEuY29tcG9zZWRQYXRoKCkuaW5jbHVkZXMoYykpe3ZhciBmPXIuY3JlYXRlUG9pbnRlckV2ZW50KGksInBvaW50ZXJsZWF2ZSIsY3x8dm9pZCAwKTtmb3IoZi5ldmVudFBoYXNlPWYuQVRfVEFSR0VUO2YudGFyZ2V0JiYhYS5jb21wb3NlZFBhdGgoKS5pbmNsdWRlcyhmLnRhcmdldCk7KWYuY3VycmVudFRhcmdldD1mLnRhcmdldCxyLm5vdGlmeVRhcmdldChmKSxvJiZyLm5vdGlmeVRhcmdldChmLCJtb3VzZWxlYXZlIiksZnIuaXNOb2RlKGYudGFyZ2V0KSYmKGYudGFyZ2V0PWYudGFyZ2V0LnBhcmVudE5vZGUpO3IuZnJlZUV2ZW50KGYpfXIuZnJlZUV2ZW50KHUpfWlmKGMhPT1hLnRhcmdldCl7dmFyIGQ9aS50eXBlPT09Im1vdXNlbW92ZSI/Im1vdXNlb3ZlciI6InBvaW50ZXJvdmVyIixoPXIuY2xvbmVQb2ludGVyRXZlbnQoYSxkKTtyLmRpc3BhdGNoRXZlbnQoaCwicG9pbnRlcm92ZXIiKSxvJiZyLmRpc3BhdGNoRXZlbnQoaCwibW91c2VvdmVyIik7Zm9yKHZhciB2PWMmJmZyLmlzTm9kZShjKSYmYy5wYXJlbnROb2RlO3YmJnYhPT0oZnIuaXNOb2RlKHIucm9vdFRhcmdldCkmJnIucm9vdFRhcmdldC5wYXJlbnROb2RlKSYmdiE9PWEudGFyZ2V0Oyl2PXYucGFyZW50Tm9kZTt2YXIgZz0hdnx8dj09PShmci5pc05vZGUoci5yb290VGFyZ2V0KSYmci5yb290VGFyZ2V0LnBhcmVudE5vZGUpO2lmKGcpe3ZhciB5PXIuY2xvbmVQb2ludGVyRXZlbnQoYSwicG9pbnRlcmVudGVyIik7Zm9yKHkuZXZlbnRQaGFzZT15LkFUX1RBUkdFVDt5LnRhcmdldCYmeS50YXJnZXQhPT1jJiZ5LnRhcmdldCE9PShmci5pc05vZGUoci5yb290VGFyZ2V0KSYmci5yb290VGFyZ2V0LnBhcmVudE5vZGUpOyl5LmN1cnJlbnRUYXJnZXQ9eS50YXJnZXQsci5ub3RpZnlUYXJnZXQoeSksbyYmci5ub3RpZnlUYXJnZXQoeSwibW91c2VlbnRlciIpLGZyLmlzTm9kZSh5LnRhcmdldCkmJih5LnRhcmdldD15LnRhcmdldC5wYXJlbnROb2RlKTtyLmZyZWVFdmVudCh5KX1yLmZyZWVFdmVudChoKX1yLmRpc3BhdGNoRXZlbnQoYSwicG9pbnRlcm1vdmUiKSxhLnBvaW50ZXJUeXBlPT09InRvdWNoIiYmci5kaXNwYXRjaEV2ZW50KGEsInRvdWNobW92ZSIpLG8mJihyLmRpc3BhdGNoRXZlbnQoYSwibW91c2Vtb3ZlIiksci5jdXJzb3I9ci5nZXRDdXJzb3IoYS50YXJnZXQpKSxzLm92ZXJUYXJnZXRzPWEuY29tcG9zZWRQYXRoKCksci5mcmVlRXZlbnQoYSl9LHRoaXMub25Qb2ludGVyT3V0PWZ1bmN0aW9uKGkpe3ZhciBhPXIudHJhY2tpbmdEYXRhKGkucG9pbnRlcklkKTtpZihhLm92ZXJUYXJnZXRzKXt2YXIgbz1pLnBvaW50ZXJUeXBlPT09Im1vdXNlInx8aS5wb2ludGVyVHlwZT09PSJwZW4iLHM9ci5maW5kTW91bnRlZFRhcmdldChhLm92ZXJUYXJnZXRzKSxjPXIuY3JlYXRlUG9pbnRlckV2ZW50KGksInBvaW50ZXJvdXQiLHN8fHZvaWQgMCk7ci5kaXNwYXRjaEV2ZW50KGMpLG8mJnIuZGlzcGF0Y2hFdmVudChjLCJtb3VzZW91dCIpO3ZhciBsPXIuY3JlYXRlUG9pbnRlckV2ZW50KGksInBvaW50ZXJsZWF2ZSIsc3x8dm9pZCAwKTtmb3IobC5ldmVudFBoYXNlPWwuQVRfVEFSR0VUO2wudGFyZ2V0JiZsLnRhcmdldCE9PShmci5pc05vZGUoci5yb290VGFyZ2V0KSYmci5yb290VGFyZ2V0LnBhcmVudE5vZGUpOylsLmN1cnJlbnRUYXJnZXQ9bC50YXJnZXQsci5ub3RpZnlUYXJnZXQobCksbyYmci5ub3RpZnlUYXJnZXQobCwibW91c2VsZWF2ZSIpLGZyLmlzTm9kZShsLnRhcmdldCkmJihsLnRhcmdldD1sLnRhcmdldC5wYXJlbnROb2RlKTthLm92ZXJUYXJnZXRzPW51bGwsci5mcmVlRXZlbnQoYyksci5mcmVlRXZlbnQobCl9ci5jdXJzb3I9bnVsbH0sdGhpcy5vblBvaW50ZXJPdmVyPWZ1bmN0aW9uKGkpe3ZhciBhPXIudHJhY2tpbmdEYXRhKGkucG9pbnRlcklkKSxvPXIuY3JlYXRlUG9pbnRlckV2ZW50KGkpLHM9by5wb2ludGVyVHlwZT09PSJtb3VzZSJ8fG8ucG9pbnRlclR5cGU9PT0icGVuIjtyLmRpc3BhdGNoRXZlbnQobywicG9pbnRlcm92ZXIiKSxzJiZyLmRpc3BhdGNoRXZlbnQobywibW91c2VvdmVyIiksby5wb2ludGVyVHlwZT09PSJtb3VzZSImJihyLmN1cnNvcj1yLmdldEN1cnNvcihvLnRhcmdldCkpO3ZhciBjPXIuY2xvbmVQb2ludGVyRXZlbnQobywicG9pbnRlcmVudGVyIik7Zm9yKGMuZXZlbnRQaGFzZT1jLkFUX1RBUkdFVDtjLnRhcmdldCYmYy50YXJnZXQhPT0oZnIuaXNOb2RlKHIucm9vdFRhcmdldCkmJnIucm9vdFRhcmdldC5wYXJlbnROb2RlKTspYy5jdXJyZW50VGFyZ2V0PWMudGFyZ2V0LHIubm90aWZ5VGFyZ2V0KGMpLHMmJnIubm90aWZ5VGFyZ2V0KGMsIm1vdXNlZW50ZXIiKSxmci5pc05vZGUoYy50YXJnZXQpJiYoYy50YXJnZXQ9Yy50YXJnZXQucGFyZW50Tm9kZSk7YS5vdmVyVGFyZ2V0cz1vLmNvbXBvc2VkUGF0aCgpLHIuZnJlZUV2ZW50KG8pLHIuZnJlZUV2ZW50KGMpfSx0aGlzLm9uUG9pbnRlclVwT3V0c2lkZT1mdW5jdGlvbihpKXt2YXIgYT1yLnRyYWNraW5nRGF0YShpLnBvaW50ZXJJZCksbz1yLmZpbmRNb3VudGVkVGFyZ2V0KGEucHJlc3NUYXJnZXRzQnlCdXR0b25baS5idXR0b25dKSxzPXIuY3JlYXRlUG9pbnRlckV2ZW50KGkpO2lmKG8pe2Zvcih2YXIgYz1vO2M7KXMuY3VycmVudFRhcmdldD1jLHIubm90aWZ5VGFyZ2V0KHMsInBvaW50ZXJ1cG91dHNpZGUiKSxzLnBvaW50ZXJUeXBlPT09InRvdWNoInx8KHMucG9pbnRlclR5cGU9PT0ibW91c2UifHxzLnBvaW50ZXJUeXBlPT09InBlbiIpJiZyLm5vdGlmeVRhcmdldChzLHMuYnV0dG9uPT09Mj8icmlnaHR1cG91dHNpZGUiOiJtb3VzZXVwb3V0c2lkZSIpLGZyLmlzTm9kZShjKSYmKGM9Yy5wYXJlbnROb2RlKTtkZWxldGUgYS5wcmVzc1RhcmdldHNCeUJ1dHRvbltpLmJ1dHRvbl19ci5mcmVlRXZlbnQocyl9LHRoaXMub25XaGVlbD1mdW5jdGlvbihpKXt2YXIgYT1yLmNyZWF0ZVdoZWVsRXZlbnQoaSk7ci5kaXNwYXRjaEV2ZW50KGEpLHIuZnJlZUV2ZW50KGEpfSx0aGlzLm9uQ2xpY2s9ZnVuY3Rpb24oaSl7aWYoci5jb250ZXh0LmNvbmZpZy51c2VOYXRpdmVDbGlja0V2ZW50KXt2YXIgYT1yLmNyZWF0ZVBvaW50ZXJFdmVudChpKTtyLmRpc3BhdGNoRXZlbnQoYSksci5mcmVlRXZlbnQoYSl9fSx0aGlzLm9uUG9pbnRlckNhbmNlbD1mdW5jdGlvbihpKXt2YXIgYT1yLmNyZWF0ZVBvaW50ZXJFdmVudChpLHZvaWQgMCx2b2lkIDAsci5jb250ZXh0LmNvbmZpZy5hbHdheXNUcmlnZ2VyUG9pbnRlckV2ZW50T25DYW52YXM/ci5yb290VGFyZ2V0OnZvaWQgMCk7ci5kaXNwYXRjaEV2ZW50KGEpLHIuZnJlZUV2ZW50KGEpfSx0aGlzLmdsb2JhbFJ1bnRpbWU9ZSx0aGlzLmNvbnRleHQ9bn1yZXR1cm4oMCxPdC5aKSh0LFt7a2V5OiJpbml0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMucm9vdFRhcmdldD10aGlzLmNvbnRleHQucmVuZGVyaW5nQ29udGV4dC5yb290LnBhcmVudE5vZGUsdGhpcy5hZGRFdmVudE1hcHBpbmcoInBvaW50ZXJkb3duIix0aGlzLm9uUG9pbnRlckRvd24pLHRoaXMuYWRkRXZlbnRNYXBwaW5nKCJwb2ludGVydXAiLHRoaXMub25Qb2ludGVyVXApLHRoaXMuYWRkRXZlbnRNYXBwaW5nKCJwb2ludGVybW92ZSIsdGhpcy5vblBvaW50ZXJNb3ZlKSx0aGlzLmFkZEV2ZW50TWFwcGluZygicG9pbnRlcm91dCIsdGhpcy5vblBvaW50ZXJPdXQpLHRoaXMuYWRkRXZlbnRNYXBwaW5nKCJwb2ludGVybGVhdmUiLHRoaXMub25Qb2ludGVyT3V0KSx0aGlzLmFkZEV2ZW50TWFwcGluZygicG9pbnRlcmNhbmNlbCIsdGhpcy5vblBvaW50ZXJDYW5jZWwpLHRoaXMuYWRkRXZlbnRNYXBwaW5nKCJwb2ludGVyb3ZlciIsdGhpcy5vblBvaW50ZXJPdmVyKSx0aGlzLmFkZEV2ZW50TWFwcGluZygicG9pbnRlcnVwb3V0c2lkZSIsdGhpcy5vblBvaW50ZXJVcE91dHNpZGUpLHRoaXMuYWRkRXZlbnRNYXBwaW5nKCJ3aGVlbCIsdGhpcy5vbldoZWVsKSx0aGlzLmFkZEV2ZW50TWFwcGluZygiY2xpY2siLHRoaXMub25DbGljayl9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMubWFwcGluZ1RhYmxlPXt9LHRoaXMubWFwcGluZ1N0YXRlPXt9LHRoaXMuZXZlbnRQb29sLmNsZWFyKCl9fSx7a2V5OiJnZXRTY2FsZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgbj10aGlzLmNvbnRleHQuY29udGV4dFNlcnZpY2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscj0xLGk9MSxhPXRoaXMuY29udGV4dC5jb250ZXh0U2VydmljZS5nZXREb21FbGVtZW50KCk7aWYoYSYmbil7dmFyIG89YS5vZmZzZXRXaWR0aCxzPWEub2Zmc2V0SGVpZ2h0O28mJnMmJihyPW4ud2lkdGgvbyxpPW4uaGVpZ2h0L3MpfXJldHVybntzY2FsZVg6cixzY2FsZVk6aSxiYm94Om59fX0se2tleToiY2xpZW50MlZpZXdwb3J0Iix2YWx1ZTpmdW5jdGlvbihuKXt2YXIgcj10aGlzLmdldFNjYWxlKCksaT1yLnNjYWxlWCxhPXIuc2NhbGVZLG89ci5iYm94O3JldHVybiBuZXcgaWkoKG4ueC0oKG89PW51bGw/dm9pZCAwOm8ubGVmdCl8fDApKS9pLChuLnktKChvPT1udWxsP3ZvaWQgMDpvLnRvcCl8fDApKS9hKX19LHtrZXk6InZpZXdwb3J0MkNsaWVudCIsdmFsdWU6ZnVuY3Rpb24obil7dmFyIHI9dGhpcy5nZXRTY2FsZSgpLGk9ci5zY2FsZVgsYT1yLnNjYWxlWSxvPXIuYmJveDtyZXR1cm4gbmV3IGlpKChuLngrKChvPT1udWxsP3ZvaWQgMDpvLmxlZnQpfHwwKSkqaSwobi55Kygobz09bnVsbD92b2lkIDA6by50b3ApfHwwKSkqYSl9fSx7a2V5OiJ2aWV3cG9ydDJDYW52YXMiLHZhbHVlOmZ1bmN0aW9uKG4pe3ZhciByPW4ueCxpPW4ueSxhPXRoaXMucm9vdFRhcmdldC5kZWZhdWx0VmlldyxvPWEuZ2V0Q2FtZXJhKCkscz10aGlzLmNvbnRleHQuY29uZmlnLGM9cy53aWR0aCxsPXMuaGVpZ2h0LHU9by5nZXRQZXJzcGVjdGl2ZUludmVyc2UoKSxmPW8uZ2V0V29ybGRUcmFuc2Zvcm0oKSxkPUduKHRoaXMudG1wTWF0cml4LGYsdSksaD1Hcih0aGlzLnRtcFZlYzMsci9jKjItMSwoMS1pL2wpKjItMSwwKTtyZXR1cm4gZXIoaCxoLGQpLG5ldyBpaShoWzBdLGhbMV0pfX0se2tleToiY2FudmFzMlZpZXdwb3J0Iix2YWx1ZTpmdW5jdGlvbihuKXt2YXIgcj10aGlzLnJvb3RUYXJnZXQuZGVmYXVsdFZpZXcsaT1yLmdldENhbWVyYSgpLGE9aS5nZXRQZXJzcGVjdGl2ZSgpLG89aS5nZXRWaWV3VHJhbnNmb3JtKCkscz1Hbih0aGlzLnRtcE1hdHJpeCxhLG8pLGM9R3IodGhpcy50bXBWZWMzLG4ueCxuLnksMCk7ZXIodGhpcy50bXBWZWMzLHRoaXMudG1wVmVjMyxzKTt2YXIgbD10aGlzLmNvbnRleHQuY29uZmlnLHU9bC53aWR0aCxmPWwuaGVpZ2h0O3JldHVybiBuZXcgaWkoKGNbMF0rMSkvMip1LCgxLShjWzFdKzEpLzIpKmYpfX0se2tleToic2V0UGlja0hhbmRsZXIiLHZhbHVlOmZ1bmN0aW9uKG4pe3RoaXMucGlja0hhbmRsZXI9bn19LHtrZXk6ImFkZEV2ZW50TWFwcGluZyIsdmFsdWU6ZnVuY3Rpb24obixyKXt0aGlzLm1hcHBpbmdUYWJsZVtuXXx8KHRoaXMubWFwcGluZ1RhYmxlW25dPVtdKSx0aGlzLm1hcHBpbmdUYWJsZVtuXS5wdXNoKHtmbjpyLHByaW9yaXR5OjB9KSx0aGlzLm1hcHBpbmdUYWJsZVtuXS5zb3J0KGZ1bmN0aW9uKGksYSl7cmV0dXJuIGkucHJpb3JpdHktYS5wcmlvcml0eX0pfX0se2tleToibWFwRXZlbnQiLHZhbHVlOmZ1bmN0aW9uKG4pe2lmKHRoaXMucm9vdFRhcmdldCl7dmFyIHI9dGhpcy5tYXBwaW5nVGFibGVbbi50eXBlXTtpZihyKWZvcih2YXIgaT0wLGE9ci5sZW5ndGg7aTxhO2krKylyW2ldLmZuKG4pO2Vsc2UgY29uc29sZS53YXJuKCJbRXZlbnRTZXJ2aWNlXTogRXZlbnQgbWFwcGluZyBub3QgZGVmaW5lZCBmb3IgIi5jb25jYXQobi50eXBlKSl9fX0se2tleToiZGlzcGF0Y2hFdmVudCIsdmFsdWU6ZnVuY3Rpb24obixyLGkpe2lmKCFpKW4ucHJvcGFnYXRpb25TdG9wcGVkPSExLG4ucHJvcGFnYXRpb25JbW1lZGlhdGVseVN0b3BwZWQ9ITEsdGhpcy5wcm9wYWdhdGUobixyKTtlbHNle24uZXZlbnRQaGFzZT1uLkFUX1RBUkdFVDt2YXIgYT10aGlzLnJvb3RUYXJnZXQuZGVmYXVsdFZpZXd8fG51bGw7bi5jdXJyZW50VGFyZ2V0PWEsdGhpcy5ub3RpZnlMaXN0ZW5lcnMobixyKX19fSx7a2V5OiJwcm9wYWdhdGUiLHZhbHVlOmZ1bmN0aW9uKG4scil7aWYobi50YXJnZXQpe3ZhciBpPW4uY29tcG9zZWRQYXRoKCk7bi5ldmVudFBoYXNlPW4uQ0FQVFVSSU5HX1BIQVNFO2Zvcih2YXIgYT1pLmxlbmd0aC0xO2E+PTE7YS0tKWlmKG4uY3VycmVudFRhcmdldD1pW2FdLHRoaXMubm90aWZ5VGFyZ2V0KG4sciksbi5wcm9wYWdhdGlvblN0b3BwZWR8fG4ucHJvcGFnYXRpb25JbW1lZGlhdGVseVN0b3BwZWQpcmV0dXJuO2lmKG4uZXZlbnRQaGFzZT1uLkFUX1RBUkdFVCxuLmN1cnJlbnRUYXJnZXQ9bi50YXJnZXQsdGhpcy5ub3RpZnlUYXJnZXQobixyKSwhKG4ucHJvcGFnYXRpb25TdG9wcGVkfHxuLnByb3BhZ2F0aW9uSW1tZWRpYXRlbHlTdG9wcGVkKSl7dmFyIG89aS5pbmRleE9mKG4uY3VycmVudFRhcmdldCk7bi5ldmVudFBoYXNlPW4uQlVCQkxJTkdfUEhBU0U7Zm9yKHZhciBzPW8rMTtzPGkubGVuZ3RoO3MrKylpZihuLmN1cnJlbnRUYXJnZXQ9aVtzXSx0aGlzLm5vdGlmeVRhcmdldChuLHIpLG4ucHJvcGFnYXRpb25TdG9wcGVkfHxuLnByb3BhZ2F0aW9uSW1tZWRpYXRlbHlTdG9wcGVkKXJldHVybn19fX0se2tleToicHJvcGFnYXRpb25QYXRoIix2YWx1ZTpmdW5jdGlvbihuKXt2YXIgcj1bbl0saT10aGlzLnJvb3RUYXJnZXQuZGVmYXVsdFZpZXd8fG51bGw7aWYoaSYmaT09PW4pcmV0dXJuIHIudW5zaGlmdChpLmRvY3VtZW50KSxyO2Zvcih2YXIgYT0wO2E8dl8mJm4hPT10aGlzLnJvb3RUYXJnZXQ7YSsrKWZyLmlzTm9kZShuKSYmbi5wYXJlbnROb2RlJiYoci5wdXNoKG4ucGFyZW50Tm9kZSksbj1uLnBhcmVudE5vZGUpO3JldHVybiBpJiZyLnB1c2goaSkscn19LHtrZXk6ImhpdFRlc3QiLHZhbHVlOmZ1bmN0aW9uKG4pe3ZhciByPW4udmlld3BvcnRYLGk9bi52aWV3cG9ydFksYT10aGlzLmNvbnRleHQuY29uZmlnLG89YS53aWR0aCxzPWEuaGVpZ2h0LGM9YS5kaXNhYmxlSGl0VGVzdGluZztyZXR1cm4gcjwwfHxpPDB8fHI+b3x8aT5zP251bGw6IWMmJnRoaXMucGlja0hhbmRsZXIobil8fHRoaXMucm9vdFRhcmdldHx8bnVsbH19LHtrZXk6ImlzTmF0aXZlRXZlbnRGcm9tQ2FudmFzIix2YWx1ZTpmdW5jdGlvbihuLHIpe3ZhciBpLGE9cj09bnVsbD92b2lkIDA6ci50YXJnZXQ7aWYoKGk9YSkhPT1udWxsJiZpIT09dm9pZCAwJiZpLnNoYWRvd1Jvb3QmJihhPXIuY29tcG9zZWRQYXRoKClbMF0pLGEpe2lmKGE9PT1uKXJldHVybiEwO2lmKG4mJm4uY29udGFpbnMpcmV0dXJuIG4uY29udGFpbnMoYSl9cmV0dXJuIHIhPW51bGwmJnIuY29tcG9zZWRQYXRoP3IuY29tcG9zZWRQYXRoKCkuaW5kZXhPZihuKT4tMTohMX19LHtrZXk6ImdldEV4aXN0ZWRIVE1MIix2YWx1ZTpmdW5jdGlvbihuKXtpZihuLm5hdGl2ZUV2ZW50LmNvbXBvc2VkUGF0aClmb3IodmFyIHI9MCxpPW4ubmF0aXZlRXZlbnQuY29tcG9zZWRQYXRoKCk7cjxpLmxlbmd0aDtyKyspe3ZhciBhPWlbcl0sbz10aGlzLm5hdGl2ZUhUTUxNYXAuZ2V0KGEpO2lmKG8pcmV0dXJuIG99cmV0dXJuIG51bGx9fSx7a2V5OiJwaWNrVGFyZ2V0Iix2YWx1ZTpmdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5oaXRUZXN0KHtjbGllbnRYOm4uY2xpZW50WCxjbGllbnRZOm4uY2xpZW50WSx2aWV3cG9ydFg6bi52aWV3cG9ydFgsdmlld3BvcnRZOm4udmlld3BvcnRZLHg6bi5jYW52YXNYLHk6bi5jYW52YXNZfSl9fSx7a2V5OiJjcmVhdGVQb2ludGVyRXZlbnQiLHZhbHVlOmZ1bmN0aW9uKG4scixpLGEpe3ZhciBvPXRoaXMuYWxsb2NhdGVFdmVudChwcCk7dGhpcy5jb3B5UG9pbnRlckRhdGEobixvKSx0aGlzLmNvcHlNb3VzZURhdGEobixvKSx0aGlzLmNvcHlEYXRhKG4sbyksby5uYXRpdmVFdmVudD1uLm5hdGl2ZUV2ZW50LG8ub3JpZ2luYWxFdmVudD1uO3ZhciBzPXRoaXMuZ2V0RXhpc3RlZEhUTUwobyksYz10aGlzLmNvbnRleHQuY29udGV4dFNlcnZpY2UuZ2V0RG9tRWxlbWVudCgpO3JldHVybiBvLnRhcmdldD1pIT1udWxsP2k6c3x8dGhpcy5pc05hdGl2ZUV2ZW50RnJvbUNhbnZhcyhjLG8ubmF0aXZlRXZlbnQpJiZ0aGlzLnBpY2tUYXJnZXQobyl8fGEsdHlwZW9mIHI9PSJzdHJpbmciJiYoby50eXBlPXIpLG99fSx7a2V5OiJjcmVhdGVXaGVlbEV2ZW50Iix2YWx1ZTpmdW5jdGlvbihuKXt2YXIgcj10aGlzLmFsbG9jYXRlRXZlbnQodnApO3RoaXMuY29weVdoZWVsRGF0YShuLHIpLHRoaXMuY29weU1vdXNlRGF0YShuLHIpLHRoaXMuY29weURhdGEobixyKSxyLm5hdGl2ZUV2ZW50PW4ubmF0aXZlRXZlbnQsci5vcmlnaW5hbEV2ZW50PW47dmFyIGk9dGhpcy5nZXRFeGlzdGVkSFRNTChyKSxhPXRoaXMuY29udGV4dC5jb250ZXh0U2VydmljZS5nZXREb21FbGVtZW50KCk7cmV0dXJuIHIudGFyZ2V0PWl8fHRoaXMuaXNOYXRpdmVFdmVudEZyb21DYW52YXMoYSxyLm5hdGl2ZUV2ZW50KSYmdGhpcy5waWNrVGFyZ2V0KHIpLHJ9fSx7a2V5OiJ0cmFja2luZ0RhdGEiLHZhbHVlOmZ1bmN0aW9uKG4pe3JldHVybiB0aGlzLm1hcHBpbmdTdGF0ZS50cmFja2luZ0RhdGFbbl18fCh0aGlzLm1hcHBpbmdTdGF0ZS50cmFja2luZ0RhdGFbbl09e3ByZXNzVGFyZ2V0c0J5QnV0dG9uOnt9LGNsaWNrc0J5QnV0dG9uOnt9LG92ZXJUYXJnZXQ6bnVsbH0pLHRoaXMubWFwcGluZ1N0YXRlLnRyYWNraW5nRGF0YVtuXX19LHtrZXk6ImNsb25lV2hlZWxFdmVudCIsdmFsdWU6ZnVuY3Rpb24obil7dmFyIHI9dGhpcy5hbGxvY2F0ZUV2ZW50KHZwKTtyZXR1cm4gci5uYXRpdmVFdmVudD1uLm5hdGl2ZUV2ZW50LHIub3JpZ2luYWxFdmVudD1uLm9yaWdpbmFsRXZlbnQsdGhpcy5jb3B5V2hlZWxEYXRhKG4sciksdGhpcy5jb3B5TW91c2VEYXRhKG4sciksdGhpcy5jb3B5RGF0YShuLHIpLHIudGFyZ2V0PW4udGFyZ2V0LHIucGF0aD1uLmNvbXBvc2VkUGF0aCgpLnNsaWNlKCksci50eXBlPW4udHlwZSxyfX0se2tleToiY2xvbmVQb2ludGVyRXZlbnQiLHZhbHVlOmZ1bmN0aW9uKG4scil7dmFyIGk9dGhpcy5hbGxvY2F0ZUV2ZW50KHBwKTtyZXR1cm4gaS5uYXRpdmVFdmVudD1uLm5hdGl2ZUV2ZW50LGkub3JpZ2luYWxFdmVudD1uLm9yaWdpbmFsRXZlbnQsdGhpcy5jb3B5UG9pbnRlckRhdGEobixpKSx0aGlzLmNvcHlNb3VzZURhdGEobixpKSx0aGlzLmNvcHlEYXRhKG4saSksaS50YXJnZXQ9bi50YXJnZXQsaS5wYXRoPW4uY29tcG9zZWRQYXRoKCkuc2xpY2UoKSxpLnR5cGU9ciE9bnVsbD9yOmkudHlwZSxpfX0se2tleToiY29weVBvaW50ZXJEYXRhIix2YWx1ZTpmdW5jdGlvbihuLHIpe3IucG9pbnRlcklkPW4ucG9pbnRlcklkLHIud2lkdGg9bi53aWR0aCxyLmhlaWdodD1uLmhlaWdodCxyLmlzUHJpbWFyeT1uLmlzUHJpbWFyeSxyLnBvaW50ZXJUeXBlPW4ucG9pbnRlclR5cGUsci5wcmVzc3VyZT1uLnByZXNzdXJlLHIudGFuZ2VudGlhbFByZXNzdXJlPW4udGFuZ2VudGlhbFByZXNzdXJlLHIudGlsdFg9bi50aWx0WCxyLnRpbHRZPW4udGlsdFksci50d2lzdD1uLnR3aXN0fX0se2tleToiY29weU1vdXNlRGF0YSIsdmFsdWU6ZnVuY3Rpb24obixyKXtyLmFsdEtleT1uLmFsdEtleSxyLmJ1dHRvbj1uLmJ1dHRvbixyLmJ1dHRvbnM9bi5idXR0b25zLHIuY3RybEtleT1uLmN0cmxLZXksci5tZXRhS2V5PW4ubWV0YUtleSxyLnNoaWZ0S2V5PW4uc2hpZnRLZXksci5jbGllbnQuY29weUZyb20obi5jbGllbnQpLHIubW92ZW1lbnQuY29weUZyb20obi5tb3ZlbWVudCksci5jYW52YXMuY29weUZyb20obi5jYW52YXMpLHIuc2NyZWVuLmNvcHlGcm9tKG4uc2NyZWVuKSxyLmdsb2JhbC5jb3B5RnJvbShuLmdsb2JhbCksci5vZmZzZXQuY29weUZyb20obi5vZmZzZXQpfX0se2tleToiY29weVdoZWVsRGF0YSIsdmFsdWU6ZnVuY3Rpb24obixyKXtyLmRlbHRhTW9kZT1uLmRlbHRhTW9kZSxyLmRlbHRhWD1uLmRlbHRhWCxyLmRlbHRhWT1uLmRlbHRhWSxyLmRlbHRhWj1uLmRlbHRhWn19LHtrZXk6ImNvcHlEYXRhIix2YWx1ZTpmdW5jdGlvbihuLHIpe3IuaXNUcnVzdGVkPW4uaXNUcnVzdGVkLHIudGltZVN0YW1wPWxwLm5vdygpLHIudHlwZT1uLnR5cGUsci5kZXRhaWw9bi5kZXRhaWwsci52aWV3PW4udmlldyxyLnBhZ2UuY29weUZyb20obi5wYWdlKSxyLnZpZXdwb3J0LmNvcHlGcm9tKG4udmlld3BvcnQpfX0se2tleToiYWxsb2NhdGVFdmVudCIsdmFsdWU6ZnVuY3Rpb24obil7dGhpcy5ldmVudFBvb2wuaGFzKG4pfHx0aGlzLmV2ZW50UG9vbC5zZXQobixbXSk7dmFyIHI9dGhpcy5ldmVudFBvb2wuZ2V0KG4pLnBvcCgpfHxuZXcgbih0aGlzKTtyZXR1cm4gci5ldmVudFBoYXNlPXIuTk9ORSxyLmN1cnJlbnRUYXJnZXQ9bnVsbCxyLnBhdGg9W10sci50YXJnZXQ9bnVsbCxyfX0se2tleToiZnJlZUV2ZW50Iix2YWx1ZTpmdW5jdGlvbihuKXtpZihuLm1hbmFnZXIhPT10aGlzKXRocm93IG5ldyBFcnJvcigiSXQgaXMgaWxsZWdhbCB0byBmcmVlIGFuIGV2ZW50IG5vdCBtYW5hZ2VkIGJ5IHRoaXMgRXZlbnRCb3VuZGFyeSEiKTt2YXIgcj1uLmNvbnN0cnVjdG9yO3RoaXMuZXZlbnRQb29sLmhhcyhyKXx8dGhpcy5ldmVudFBvb2wuc2V0KHIsW10pLHRoaXMuZXZlbnRQb29sLmdldChyKS5wdXNoKG4pfX0se2tleToibm90aWZ5VGFyZ2V0Iix2YWx1ZTpmdW5jdGlvbihuLHIpe3I9ciE9bnVsbD9yOm4udHlwZTt2YXIgaT1uLmV2ZW50UGhhc2U9PT1uLkNBUFRVUklOR19QSEFTRXx8bi5ldmVudFBoYXNlPT09bi5BVF9UQVJHRVQ/IiIuY29uY2F0KHIsImNhcHR1cmUiKTpyO3RoaXMubm90aWZ5TGlzdGVuZXJzKG4saSksbi5ldmVudFBoYXNlPT09bi5BVF9UQVJHRVQmJnRoaXMubm90aWZ5TGlzdGVuZXJzKG4scil9fSx7a2V5OiJub3RpZnlMaXN0ZW5lcnMiLHZhbHVlOmZ1bmN0aW9uKG4scil7dmFyIGk9bi5jdXJyZW50VGFyZ2V0LmVtaXR0ZXIsYT1pLl9ldmVudHNbcl07aWYoYSlpZigiZm4iaW4gYSlhLm9uY2UmJmkucmVtb3ZlTGlzdGVuZXIocixhLmZuLHZvaWQgMCwhMCksYS5mbi5jYWxsKG4uY3VycmVudFRhcmdldHx8YS5jb250ZXh0LG4pO2Vsc2UgZm9yKHZhciBvPTA7bzxhLmxlbmd0aCYmIW4ucHJvcGFnYXRpb25JbW1lZGlhdGVseVN0b3BwZWQ7bysrKWFbb10ub25jZSYmaS5yZW1vdmVMaXN0ZW5lcihyLGFbb10uZm4sdm9pZCAwLCEwKSxhW29dLmZuLmNhbGwobi5jdXJyZW50VGFyZ2V0fHxhW29dLmNvbnRleHQsbil9fSx7a2V5OiJmaW5kTW91bnRlZFRhcmdldCIsdmFsdWU6ZnVuY3Rpb24obil7aWYoIW4pcmV0dXJuIG51bGw7Zm9yKHZhciByPW5bbi5sZW5ndGgtMV0saT1uLmxlbmd0aC0yO2k+PTA7aS0tKXt2YXIgYT1uW2ldO2lmKGE9PT10aGlzLnJvb3RUYXJnZXR8fGZyLmlzTm9kZShhKSYmYS5wYXJlbnROb2RlPT09cilyPW5baV07ZWxzZSBicmVha31yZXR1cm4gcn19LHtrZXk6ImdldEN1cnNvciIsdmFsdWU6ZnVuY3Rpb24obil7Zm9yKHZhciByPW47cjspe3ZhciBpPWN5KHIpJiZyLmdldEF0dHJpYnV0ZSgiY3Vyc29yIik7aWYoaSlyZXR1cm4gaTtyPWZyLmlzTm9kZShyKSYmci5wYXJlbnROb2RlfX19XSl9KCksZ3A9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7KDAseHQuWikodGhpcyx0KX1yZXR1cm4oMCxPdC5aKSh0LFt7a2V5OiJnZXRPckNyZWF0ZUNhbnZhcyIsdmFsdWU6ZnVuY3Rpb24obixyKXtpZih0aGlzLmNhbnZhcylyZXR1cm4gdGhpcy5jYW52YXM7aWYobnx8Q3Qub2Zmc2NyZWVuQ2FudmFzKXRoaXMuY2FudmFzPW58fEN0Lm9mZnNjcmVlbkNhbnZhcyx0aGlzLmNvbnRleHQ9dGhpcy5jYW52YXMuZ2V0Q29udGV4dCgiMmQiLCgwLEVlLlopKHt3aWxsUmVhZEZyZXF1ZW50bHk6ITB9LHIpKTtlbHNlIHRyeXt0aGlzLmNhbnZhcz1uZXcgd2luZG93Lk9mZnNjcmVlbkNhbnZhcygwLDApLHRoaXMuY29udGV4dD10aGlzLmNhbnZhcy5nZXRDb250ZXh0KCIyZCIsKDAsRWUuWikoe3dpbGxSZWFkRnJlcXVlbnRseTohMH0scikpLCghdGhpcy5jb250ZXh0fHwhdGhpcy5jb250ZXh0Lm1lYXN1cmVUZXh0KSYmKHRoaXMuY2FudmFzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLHRoaXMuY29udGV4dD10aGlzLmNhbnZhcy5nZXRDb250ZXh0KCIyZCIpKX1jYXRjaChpKXt0aGlzLmNhbnZhcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSx0aGlzLmNvbnRleHQ9dGhpcy5jYW52YXMuZ2V0Q29udGV4dCgiMmQiLCgwLEVlLlopKHt3aWxsUmVhZEZyZXF1ZW50bHk6ITB9LHIpKX1yZXR1cm4gdGhpcy5jYW52YXMud2lkdGg9MTAsdGhpcy5jYW52YXMuaGVpZ2h0PTEwLHRoaXMuY2FudmFzfX0se2tleToiZ2V0T3JDcmVhdGVDb250ZXh0Iix2YWx1ZTpmdW5jdGlvbihuLHIpe3JldHVybiB0aGlzLmNvbnRleHQ/dGhpcy5jb250ZXh0Oih0aGlzLmdldE9yQ3JlYXRlQ2FudmFzKG4sciksdGhpcy5jb250ZXh0KX19XSxbe2tleToiY3JlYXRlQ2FudmFzIix2YWx1ZTpmdW5jdGlvbigpe3RyeXtyZXR1cm4gbmV3IHdpbmRvdy5PZmZzY3JlZW5DYW52YXMoMCwwKX1jYXRjaChuKXt9dHJ5e3JldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKX1jYXRjaChuKXt9cmV0dXJuIG51bGx9fV0pfSgpLEtjPWZ1bmN0aW9uKHQpe3JldHVybiB0W3QuQ0FNRVJBX0NIQU5HRUQ9MF09IkNBTUVSQV9DSEFOR0VEIix0W3QuRElTUExBWV9PQkpFQ1RfQ0hBTkdFRD0xXT0iRElTUExBWV9PQkpFQ1RfQ0hBTkdFRCIsdFt0Lk5PTkU9Ml09Ik5PTkUiLHR9KHt9KSx5Xz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSxuKXsoMCx4dC5aKSh0aGlzLHQpLHRoaXMuaW5pdGVkPSExLHRoaXMuc3RhdHM9e3RvdGFsOjAscmVuZGVyZWQ6MH0sdGhpcy56SW5kZXhDb3VudGVyPTAsdGhpcy5ob29rcz17aW5pdDpuZXcgTGksaW5pdEFzeW5jOm5ldyBRMixkaXJ0eWNoZWNrOm5ldyBvdSxjdWxsOm5ldyBvdSxiZWdpbkZyYW1lOm5ldyBMaSxiZWZvcmVSZW5kZXI6bmV3IExpLHJlbmRlcjpuZXcgTGksYWZ0ZXJSZW5kZXI6bmV3IExpLGVuZEZyYW1lOm5ldyBMaSxkZXN0cm95Om5ldyBMaSxwaWNrOm5ldyBKMixwaWNrU3luYzpuZXcgb3UscG9pbnRlckRvd246bmV3IExpLHBvaW50ZXJVcDpuZXcgTGkscG9pbnRlck1vdmU6bmV3IExpLHBvaW50ZXJPdXQ6bmV3IExpLHBvaW50ZXJPdmVyOm5ldyBMaSxwb2ludGVyV2hlZWw6bmV3IExpLHBvaW50ZXJDYW5jZWw6bmV3IExpLGNsaWNrOm5ldyBMaX0sdGhpcy5nbG9iYWxSdW50aW1lPWUsdGhpcy5jb250ZXh0PW59cmV0dXJuKDAsT3QuWikodCxbe2tleToiaW5pdCIsdmFsdWU6ZnVuY3Rpb24obil7dmFyIHI9dGhpcyxpPSgwLEVlLlopKCgwLEVlLlopKHt9LHRoaXMuZ2xvYmFsUnVudGltZSksdGhpcy5jb250ZXh0KTt0aGlzLmNvbnRleHQucmVuZGVyaW5nUGx1Z2lucy5mb3JFYWNoKGZ1bmN0aW9uKGEpe2EuYXBwbHkoaSxyLmdsb2JhbFJ1bnRpbWUpfSksdGhpcy5ob29rcy5pbml0LmNhbGwoKSx0aGlzLmhvb2tzLmluaXRBc3luYy5nZXRDYWxsYmFja3NOdW0oKT09PTA/KHRoaXMuaW5pdGVkPSEwLG4oKSk6dGhpcy5ob29rcy5pbml0QXN5bmMucHJvbWlzZSgpLnRoZW4oZnVuY3Rpb24oKXtyLmluaXRlZD0hMCxuKCl9KS5jYXRjaChmdW5jdGlvbihhKXt9KX19LHtrZXk6ImdldFN0YXRzIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnN0YXRzfX0se2tleToiZGlzYWJsZURpcnR5UmVjdGFuZ2xlUmVuZGVyaW5nIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBuPXRoaXMuY29udGV4dC5jb25maWcucmVuZGVyZXIscj1uLmdldENvbmZpZygpLGk9ci5lbmFibGVEaXJ0eVJlY3RhbmdsZVJlbmRlcmluZztyZXR1cm4haXx8dGhpcy5jb250ZXh0LnJlbmRlcmluZ0NvbnRleHQucmVuZGVyUmVhc29ucy5oYXMoS2MuQ0FNRVJBX0NIQU5HRUQpfX0se2tleToicmVuZGVyIix2YWx1ZTpmdW5jdGlvbihuLHIsaSl7dmFyIGE9dGhpczt0aGlzLnN0YXRzLnRvdGFsPTAsdGhpcy5zdGF0cy5yZW5kZXJlZD0wLHRoaXMuekluZGV4Q291bnRlcj0wO3ZhciBvPXRoaXMuY29udGV4dC5yZW5kZXJpbmdDb250ZXh0O2lmKHRoaXMuZ2xvYmFsUnVudGltZS5zY2VuZUdyYXBoU2VydmljZS5zeW5jSGllcmFyY2h5KG8ucm9vdCksdGhpcy5nbG9iYWxSdW50aW1lLnNjZW5lR3JhcGhTZXJ2aWNlLnRyaWdnZXJQZW5kaW5nRXZlbnRzKCksby5yZW5kZXJSZWFzb25zLnNpemUmJnRoaXMuaW5pdGVkKXtvLmRpcnR5UmVjdGFuZ2xlUmVuZGVyaW5nRGlzYWJsZWQ9dGhpcy5kaXNhYmxlRGlydHlSZWN0YW5nbGVSZW5kZXJpbmcoKTt2YXIgcz1vLnJlbmRlclJlYXNvbnMuc2l6ZT09PTEmJm8ucmVuZGVyUmVhc29ucy5oYXMoS2MuQ0FNRVJBX0NIQU5HRUQpLGM9IW4uZGlzYWJsZVJlbmRlckhvb2tzfHwhKG4uZGlzYWJsZVJlbmRlckhvb2tzJiZzKTtjJiZ0aGlzLnJlbmRlckRpc3BsYXlPYmplY3Qoby5yb290LG4sbyksdGhpcy5ob29rcy5iZWdpbkZyYW1lLmNhbGwociksYyYmby5yZW5kZXJMaXN0Q3VycmVudEZyYW1lLmZvckVhY2goZnVuY3Rpb24obCl7YS5ob29rcy5iZWZvcmVSZW5kZXIuY2FsbChsKSxhLmhvb2tzLnJlbmRlci5jYWxsKGwpLGEuaG9va3MuYWZ0ZXJSZW5kZXIuY2FsbChsKX0pLHRoaXMuaG9va3MuZW5kRnJhbWUuY2FsbChyKSxvLnJlbmRlckxpc3RDdXJyZW50RnJhbWU9W10sby5yZW5kZXJSZWFzb25zLmNsZWFyKCksaSgpfX19LHtrZXk6InJlbmRlckRpc3BsYXlPYmplY3QiLHZhbHVlOmZ1bmN0aW9uKG4scixpKXt2YXIgYT10aGlzLG89ci5yZW5kZXJlci5nZXRDb25maWcoKSxzPW8uZW5hYmxlRGlydHlDaGVjayxjPW8uZW5hYmxlQ3VsbGluZztmdW5jdGlvbiBsKHYpe3ZhciBnPXYucmVuZGVyYWJsZSx5PXYuc29ydGFibGUsYj1zP2cuZGlydHl8fGkuZGlydHlSZWN0YW5nbGVSZW5kZXJpbmdEaXNhYmxlZD92Om51bGw6djtpZihiKXt2YXIgeD1jP2EuaG9va3MuY3VsbC5jYWxsKGIsYS5jb250ZXh0LmNhbWVyYSk6Yjt4JiYoYS5zdGF0cy5yZW5kZXJlZCs9MSxpLnJlbmRlckxpc3RDdXJyZW50RnJhbWUucHVzaCh4KSl9Zy5kaXJ0eT0hMSx5LnJlbmRlck9yZGVyPWEuekluZGV4Q291bnRlcixhLnpJbmRleENvdW50ZXIrPTEsYS5zdGF0cy50b3RhbCs9MSx5LmRpcnR5JiYoYS5zb3J0KHYseSkseS5kaXJ0eT0hMSx5LmRpcnR5Q2hpbGRyZW49W10seS5kaXJ0eVJlYXNvbj12b2lkIDApfWZvcih2YXIgdT1bbl07dS5sZW5ndGg+MDspe3ZhciBmPXUucG9wKCk7bChmKTtmb3IodmFyIGQ9Zi5zb3J0YWJsZS5zb3J0ZWR8fGYuY2hpbGROb2RlcyxoPWQubGVuZ3RoLTE7aD49MDtoLS0pdS5wdXNoKGRbaF0pfX19LHtrZXk6InNvcnQiLHZhbHVlOmZ1bmN0aW9uKG4scil7ci5zb3J0ZWQmJnIuZGlydHlSZWFzb24hPT1rZi5aX0lOREVYX0NIQU5HRUQ/ci5kaXJ0eUNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24oaSl7dmFyIGE9bi5jaGlsZE5vZGVzLmluZGV4T2YoaSk7aWYoYT09PS0xKXt2YXIgbz1yLnNvcnRlZC5pbmRleE9mKGkpO28+PTAmJnIuc29ydGVkLnNwbGljZShvLDEpfWVsc2UgaWYoci5zb3J0ZWQubGVuZ3RoPT09MClyLnNvcnRlZC5wdXNoKGkpO2Vsc2V7dmFyIHM9bHkoci5zb3J0ZWQsaSk7ci5zb3J0ZWQuc3BsaWNlKHMsMCxpKX19KTpyLnNvcnRlZD1uLmNoaWxkTm9kZXMuc2xpY2UoKS5zb3J0KHV5KX19LHtrZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5pbml0ZWQ9ITEsdGhpcy5ob29rcy5kZXN0cm95LmNhbGwoKSx0aGlzLmdsb2JhbFJ1bnRpbWUuc2NlbmVHcmFwaFNlcnZpY2UuY2xlYXJQZW5kaW5nRXZlbnRzKCl9fSx7a2V5OiJkaXJ0aWZ5Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuY29udGV4dC5yZW5kZXJpbmdDb250ZXh0LnJlbmRlclJlYXNvbnMuYWRkKEtjLkRJU1BMQVlfT0JKRUNUX0NIQU5HRUQpfX1dKX0oKSxtXz0vXFtccyooLiopPSguKilccypcXS8sYl89ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7KDAseHQuWikodGhpcyx0KX1yZXR1cm4oMCxPdC5aKSh0LFt7a2V5OiJzZWxlY3RPbmUiLHZhbHVlOmZ1bmN0aW9uKG4scil7dmFyIGk9dGhpcztpZihuLnN0YXJ0c1dpdGgoIi4iKSlyZXR1cm4gci5maW5kKGZ1bmN0aW9uKGMpe3JldHVybigoYz09bnVsbD92b2lkIDA6Yy5jbGFzc0xpc3QpfHxbXSkuaW5kZXhPZihpLmdldElkT3JDbGFzc25hbWUobikpPi0xfSk7aWYobi5zdGFydHNXaXRoKCIjIikpcmV0dXJuIHIuZmluZChmdW5jdGlvbihjKXtyZXR1cm4gYy5pZD09PWkuZ2V0SWRPckNsYXNzbmFtZShuKX0pO2lmKG4uc3RhcnRzV2l0aCgiWyIpKXt2YXIgYT10aGlzLmdldEF0dHJpYnV0ZShuKSxvPWEubmFtZSxzPWEudmFsdWU7cmV0dXJuIG8/ci5maW5kKGZ1bmN0aW9uKGMpe3JldHVybiByIT09YyYmKG89PT0ibmFtZSI/Yy5uYW1lPT09czppLmF0dHJpYnV0ZVRvU3RyaW5nKGMsbyk9PT1zKX0pOm51bGx9cmV0dXJuIHIuZmluZChmdW5jdGlvbihjKXtyZXR1cm4gciE9PWMmJmMubm9kZU5hbWU9PT1ufSl9fSx7a2V5OiJzZWxlY3RBbGwiLHZhbHVlOmZ1bmN0aW9uKG4scil7dmFyIGk9dGhpcztpZihuLnN0YXJ0c1dpdGgoIi4iKSlyZXR1cm4gci5maW5kQWxsKGZ1bmN0aW9uKGMpe3JldHVybiByIT09YyYmKChjPT1udWxsP3ZvaWQgMDpjLmNsYXNzTGlzdCl8fFtdKS5pbmRleE9mKGkuZ2V0SWRPckNsYXNzbmFtZShuKSk+LTF9KTtpZihuLnN0YXJ0c1dpdGgoIiMiKSlyZXR1cm4gci5maW5kQWxsKGZ1bmN0aW9uKGMpe3JldHVybiByIT09YyYmYy5pZD09PWkuZ2V0SWRPckNsYXNzbmFtZShuKX0pO2lmKG4uc3RhcnRzV2l0aCgiWyIpKXt2YXIgYT10aGlzLmdldEF0dHJpYnV0ZShuKSxvPWEubmFtZSxzPWEudmFsdWU7cmV0dXJuIG8/ci5maW5kQWxsKGZ1bmN0aW9uKGMpe3JldHVybiByIT09YyYmKG89PT0ibmFtZSI/Yy5uYW1lPT09czppLmF0dHJpYnV0ZVRvU3RyaW5nKGMsbyk9PT1zKX0pOltdfXJldHVybiByLmZpbmRBbGwoZnVuY3Rpb24oYyl7cmV0dXJuIHIhPT1jJiZjLm5vZGVOYW1lPT09bn0pfX0se2tleToiaXMiLHZhbHVlOmZ1bmN0aW9uKG4scil7aWYobi5zdGFydHNXaXRoKCIuIikpcmV0dXJuIHIuY2xhc3NOYW1lPT09dGhpcy5nZXRJZE9yQ2xhc3NuYW1lKG4pO2lmKG4uc3RhcnRzV2l0aCgiIyIpKXJldHVybiByLmlkPT09dGhpcy5nZXRJZE9yQ2xhc3NuYW1lKG4pO2lmKG4uc3RhcnRzV2l0aCgiWyIpKXt2YXIgaT10aGlzLmdldEF0dHJpYnV0ZShuKSxhPWkubmFtZSxvPWkudmFsdWU7cmV0dXJuIGE9PT0ibmFtZSI/ci5uYW1lPT09bzp0aGlzLmF0dHJpYnV0ZVRvU3RyaW5nKHIsYSk9PT1vfXJldHVybiByLm5vZGVOYW1lPT09bn19LHtrZXk6ImdldElkT3JDbGFzc25hbWUiLHZhbHVlOmZ1bmN0aW9uKG4pe3JldHVybiBuLnN1YnN0cmluZygxKX19LHtrZXk6ImdldEF0dHJpYnV0ZSIsdmFsdWU6ZnVuY3Rpb24obil7dmFyIHI9bi5tYXRjaChtXyksaT0iIixhPSIiO3JldHVybiByJiZyLmxlbmd0aD4yJiYoaT1yWzFdLnJlcGxhY2UoLyIvZywiIiksYT1yWzJdLnJlcGxhY2UoLyIvZywiIikpLHtuYW1lOmksdmFsdWU6YX19fSx7a2V5OiJhdHRyaWJ1dGVUb1N0cmluZyIsdmFsdWU6ZnVuY3Rpb24obixyKXtpZighbi5nZXRBdHRyaWJ1dGUpcmV0dXJuIiI7dmFyIGk9bi5nZXRBdHRyaWJ1dGUocik7cmV0dXJuIGdlKGkpPyIiOmkudG9TdHJpbmc/aS50b1N0cmluZygpOiIifX1dKX0oKSwkZT1mdW5jdGlvbih0KXtyZXR1cm4gdC5BVFRSX01PRElGSUVEPSJET01BdHRyTW9kaWZpZWQiLHQuSU5TRVJURUQ9IkRPTU5vZGVJbnNlcnRlZCIsdC5NT1VOVEVEPSJET01Ob2RlSW5zZXJ0ZWRJbnRvRG9jdW1lbnQiLHQuUkVNT1ZFRD0icmVtb3ZlZCIsdC5VTk1PVU5URUQ9IkRPTU5vZGVSZW1vdmVkRnJvbURvY3VtZW50Iix0LlJFUEFSRU5UPSJyZXBhcmVudCIsdC5ERVNUUk9ZPSJkZXN0cm95Iix0LkJPVU5EU19DSEFOR0VEPSJib3VuZHMtY2hhbmdlZCIsdC5DVUxMRUQ9ImN1bGxlZCIsdH0oe30pLGhvPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUobixyLGksYSxvLHMsYyxsKXt2YXIgdTtyZXR1cm4oMCx4dC5aKSh0aGlzLGUpLHU9KDAsRGUuWikodGhpcyxlLFtudWxsXSksdS5yZWxhdGVkTm9kZT1yLHUucHJldlZhbHVlPWksdS5uZXdWYWx1ZT1hLHUuYXR0ck5hbWU9byx1LmF0dHJDaGFuZ2U9cyx1LnByZXZQYXJzZWRWYWx1ZT1jLHUubmV3UGFyc2VkVmFsdWU9bCx1LnR5cGU9bix1fXJldHVybigwLE1lLlopKGUsdCksKDAsT3QuWikoZSl9KFlmKTtoby5BRERJVElPTj0yLGhvLk1PRElGSUNBVElPTj0xLGhvLlJFTU9WQUw9MztmdW5jdGlvbiBfeSh0KXt2YXIgZT10LnJlbmRlcmFibGU7ZSYmKGUucmVuZGVyQm91bmRzRGlydHk9ITAsZS5ib3VuZHNEaXJ0eT0hMCl9dmFyIHhfPW5ldyBobygkZS5SRVBBUkVOVCxudWxsLCIiLCIiLCIiLDAsIiIsIiIpLHA9cmkoKSxtPW1lKCksUz1zbigxLDEsMSksVD1XbigpLEI9cmkoKSxZPW1lKCkscT1XbigpLGV0PWplKCksc3Q9bWUoKSxFdD1qZSgpLE10PW1lKCksUHQ9bWUoKSxWdD1tZSgpLGRlPVduKCksa2U9amUoKSxYZT1qZSgpLHdlPWplKCksdG49e2FmZmVjdENoaWxkcmVuOiEwfSxkbj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7KDAseHQuWikodGhpcyx0KSx0aGlzLnBlbmRpbmdFdmVudHM9bmV3IE1hcCx0aGlzLmJvdW5kc0NoYW5nZWRFdmVudD1uZXcgTm4oJGUuQk9VTkRTX0NIQU5HRUQpLHRoaXMuZGlzcGxheU9iamVjdERlcGVuZGVuY3lNYXA9bmV3IFdlYWtNYXAsdGhpcy5ydW50aW1lPWV9cmV0dXJuKDAsT3QuWikodCxbe2tleToibWF0Y2hlcyIsdmFsdWU6ZnVuY3Rpb24obixyKXtyZXR1cm4gdGhpcy5ydW50aW1lLnNjZW5lR3JhcGhTZWxlY3Rvci5pcyhuLHIpfX0se2tleToicXVlcnlTZWxlY3RvciIsdmFsdWU6ZnVuY3Rpb24obixyKXtyZXR1cm4gdGhpcy5ydW50aW1lLnNjZW5lR3JhcGhTZWxlY3Rvci5zZWxlY3RPbmUobixyKX19LHtrZXk6InF1ZXJ5U2VsZWN0b3JBbGwiLHZhbHVlOmZ1bmN0aW9uKG4scil7cmV0dXJuIHRoaXMucnVudGltZS5zY2VuZUdyYXBoU2VsZWN0b3Iuc2VsZWN0QWxsKG4scil9fSx7a2V5OiJhdHRhY2giLHZhbHVlOmZ1bmN0aW9uKG4scixpKXt2YXIgYSxvPSExO24ucGFyZW50Tm9kZSYmKG89bi5wYXJlbnROb2RlIT09cix0aGlzLmRldGFjaChuKSk7dmFyIHM9bi5ub2RlTmFtZT09PWR0LkZSQUdNRU5ULGM9V2Yocik7bi5wYXJlbnROb2RlPXI7dmFyIGw9cz9uLmNoaWxkTm9kZXM6W25dO1ZuKGkpP2wuZm9yRWFjaChmdW5jdGlvbihoKXtyLmNoaWxkTm9kZXMuc3BsaWNlKGksMCxoKSxoLnBhcmVudE5vZGU9cn0pOmwuZm9yRWFjaChmdW5jdGlvbihoKXtyLmNoaWxkTm9kZXMucHVzaChoKSxoLnBhcmVudE5vZGU9cn0pO3ZhciB1PXIsZj11LnNvcnRhYmxlO2lmKChmIT1udWxsJiYoYT1mLnNvcnRlZCkhPT1udWxsJiZhIT09dm9pZCAwJiZhLmxlbmd0aHx8bi5wYXJzZWRTdHlsZS56SW5kZXgpJiYoZi5kaXJ0eUNoaWxkcmVuLmluZGV4T2Yobik9PT0tMSYmZi5kaXJ0eUNoaWxkcmVuLnB1c2gobiksZi5kaXJ0eT0hMCxmLmRpcnR5UmVhc29uPWtmLkFEREVEKSwhYyl7aWYocyl0aGlzLmRpcnRpZnlGcmFnbWVudChuKTtlbHNle3ZhciBkPW4udHJhbnNmb3JtYWJsZTtkJiZ0aGlzLmRpcnRpZnlXb3JsZChuLGQpfW8mJm4uZGlzcGF0Y2hFdmVudCh4Xyl9fX0se2tleToiZGV0YWNoIix2YWx1ZTpmdW5jdGlvbihuKXtpZihuLnBhcmVudE5vZGUpe3ZhciByLGksYT1uLnRyYW5zZm9ybWFibGUsbz1uLnBhcmVudE5vZGUscz1vLnNvcnRhYmxlOyhzIT1udWxsJiYocj1zLnNvcnRlZCkhPT1udWxsJiZyIT09dm9pZCAwJiZyLmxlbmd0aHx8KGk9bi5zdHlsZSkhPT1udWxsJiZpIT09dm9pZCAwJiZpLnpJbmRleCkmJihzLmRpcnR5Q2hpbGRyZW4uaW5kZXhPZihuKT09PS0xJiZzLmRpcnR5Q2hpbGRyZW4ucHVzaChuKSxzLmRpcnR5PSEwLHMuZGlydHlSZWFzb249a2YuUkVNT1ZFRCk7dmFyIGM9bi5wYXJlbnROb2RlLmNoaWxkTm9kZXMuaW5kZXhPZihuKTtjPi0xJiZuLnBhcmVudE5vZGUuY2hpbGROb2Rlcy5zcGxpY2UoYywxKSxhJiZ0aGlzLmRpcnRpZnlXb3JsZChuLGEpLG4ucGFyZW50Tm9kZT1udWxsfX19LHtrZXk6ImdldE9yaWdpbiIsdmFsdWU6ZnVuY3Rpb24obil7cmV0dXJuIG4uZ2V0R2VvbWV0cnlCb3VuZHMoKSxuLnRyYW5zZm9ybWFibGUub3JpZ2lufX0se2tleToic2V0T3JpZ2luIix2YWx1ZTpmdW5jdGlvbihuLHIpe3ZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MiYmYXJndW1lbnRzWzJdIT09dm9pZCAwP2FyZ3VtZW50c1syXTowLGE9YXJndW1lbnRzLmxlbmd0aD4zJiZhcmd1bWVudHNbM10hPT12b2lkIDA/YXJndW1lbnRzWzNdOjA7dHlwZW9mIHI9PSJudW1iZXIiJiYocj1bcixpLGFdKTt2YXIgbz1uLnRyYW5zZm9ybWFibGU7aWYoIShyWzBdPT09by5vcmlnaW5bMF0mJnJbMV09PT1vLm9yaWdpblsxXSYmclsyXT09PW8ub3JpZ2luWzJdKSl7dmFyIHM9by5vcmlnaW47c1swXT1yWzBdLHNbMV09clsxXSxzWzJdPXJbMl18fDAsdGhpcy5kaXJ0aWZ5TG9jYWwobixvKX19fSx7a2V5OiJyb3RhdGUiLHZhbHVlOmZ1bmN0aW9uKG4scil7dmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yJiZhcmd1bWVudHNbMl0hPT12b2lkIDA/YXJndW1lbnRzWzJdOjAsYT1hcmd1bWVudHMubGVuZ3RoPjMmJmFyZ3VtZW50c1szXSE9PXZvaWQgMD9hcmd1bWVudHNbM106MDt0eXBlb2Ygcj09Im51bWJlciImJihyPXNuKHIsaSxhKSk7dmFyIG89bi50cmFuc2Zvcm1hYmxlO2lmKG4ucGFyZW50Tm9kZT09PW51bGx8fCFuLnBhcmVudE5vZGUudHJhbnNmb3JtYWJsZSl0aGlzLnJvdGF0ZUxvY2FsKG4scik7ZWxzZXt2YXIgcz1ldDtGcyhzLHJbMF0sclsxXSxyWzJdKTt2YXIgYz10aGlzLmdldFJvdGF0aW9uKG4pLGw9dGhpcy5nZXRSb3RhdGlvbihuLnBhcmVudE5vZGUpO1BsKHdlLGwpLHBoKHdlLHdlKSxLbyhzLHdlLHMpLEtvKG8ubG9jYWxSb3RhdGlvbixzLGMpLE5jKG8ubG9jYWxSb3RhdGlvbixvLmxvY2FsUm90YXRpb24pLHRoaXMuZGlydGlmeUxvY2FsKG4sbyl9fX0se2tleToicm90YXRlTG9jYWwiLHZhbHVlOmZ1bmN0aW9uKG4scil7dmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yJiZhcmd1bWVudHNbMl0hPT12b2lkIDA/YXJndW1lbnRzWzJdOjAsYT1hcmd1bWVudHMubGVuZ3RoPjMmJmFyZ3VtZW50c1szXSE9PXZvaWQgMD9hcmd1bWVudHNbM106MDt0eXBlb2Ygcj09Im51bWJlciImJihyPXNuKHIsaSxhKSk7dmFyIG89bi50cmFuc2Zvcm1hYmxlO0ZzKFhlLHJbMF0sclsxXSxyWzJdKSxSYyhvLmxvY2FsUm90YXRpb24sby5sb2NhbFJvdGF0aW9uLFhlKSx0aGlzLmRpcnRpZnlMb2NhbChuLG8pfX0se2tleToic2V0RXVsZXJBbmdsZXMiLHZhbHVlOmZ1bmN0aW9uKG4scil7dmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yJiZhcmd1bWVudHNbMl0hPT12b2lkIDA/YXJndW1lbnRzWzJdOjAsYT1hcmd1bWVudHMubGVuZ3RoPjMmJmFyZ3VtZW50c1szXSE9PXZvaWQgMD9hcmd1bWVudHNbM106MDt0eXBlb2Ygcj09Im51bWJlciImJihyPXNuKHIsaSxhKSk7dmFyIG89bi50cmFuc2Zvcm1hYmxlO2lmKG4ucGFyZW50Tm9kZT09PW51bGx8fCFuLnBhcmVudE5vZGUudHJhbnNmb3JtYWJsZSl0aGlzLnNldExvY2FsRXVsZXJBbmdsZXMobixyKTtlbHNle0ZzKG8ubG9jYWxSb3RhdGlvbixyWzBdLHJbMV0sclsyXSk7dmFyIHM9dGhpcy5nZXRSb3RhdGlvbihuLnBhcmVudE5vZGUpO1BsKGtlLHBoKGV0LHMpKSxSYyhvLmxvY2FsUm90YXRpb24sby5sb2NhbFJvdGF0aW9uLGtlKSx0aGlzLmRpcnRpZnlMb2NhbChuLG8pfX19LHtrZXk6InNldExvY2FsRXVsZXJBbmdsZXMiLHZhbHVlOmZ1bmN0aW9uKG4scil7dmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yJiZhcmd1bWVudHNbMl0hPT12b2lkIDA/YXJndW1lbnRzWzJdOjAsYT1hcmd1bWVudHMubGVuZ3RoPjMmJmFyZ3VtZW50c1szXSE9PXZvaWQgMD9hcmd1bWVudHNbM106MCxvPWFyZ3VtZW50cy5sZW5ndGg+NCYmYXJndW1lbnRzWzRdIT09dm9pZCAwP2FyZ3VtZW50c1s0XTohMDt0eXBlb2Ygcj09Im51bWJlciImJihyPXNuKHIsaSxhKSk7dmFyIHM9bi50cmFuc2Zvcm1hYmxlO0ZzKHMubG9jYWxSb3RhdGlvbixyWzBdLHJbMV0sclsyXSksbyYmdGhpcy5kaXJ0aWZ5TG9jYWwobixzKX19LHtrZXk6InRyYW5zbGF0ZUxvY2FsIix2YWx1ZTpmdW5jdGlvbihuLHIpe3ZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MiYmYXJndW1lbnRzWzJdIT09dm9pZCAwP2FyZ3VtZW50c1syXTowLGE9YXJndW1lbnRzLmxlbmd0aD4zJiZhcmd1bWVudHNbM10hPT12b2lkIDA/YXJndW1lbnRzWzNdOjA7dHlwZW9mIHI9PSJudW1iZXIiJiYocj1zbihyLGksYSkpO3ZhciBvPW4udHJhbnNmb3JtYWJsZTtLKHIsbSl8fChwaShyLHIsby5sb2NhbFJvdGF0aW9uKSxOYShvLmxvY2FsUG9zaXRpb24sby5sb2NhbFBvc2l0aW9uLHIpLHRoaXMuZGlydGlmeUxvY2FsKG4sbykpfX0se2tleToic2V0UG9zaXRpb24iLHZhbHVlOmZ1bmN0aW9uKG4scil7dmFyIGksYT1uLnRyYW5zZm9ybWFibGU7aWYoVnRbMF09clswXSxWdFsxXT1yWzFdLFZ0WzJdPShpPXJbMl0pIT09bnVsbCYmaSE9PXZvaWQgMD9pOjAsIUsodGhpcy5nZXRQb3NpdGlvbihuKSxWdCkpe2lmKGNhKGEucG9zaXRpb24sVnQpLG4ucGFyZW50Tm9kZT09PW51bGx8fCFuLnBhcmVudE5vZGUudHJhbnNmb3JtYWJsZSljYShhLmxvY2FsUG9zaXRpb24sVnQpO2Vsc2V7dmFyIG89bi5wYXJlbnROb2RlLnRyYW5zZm9ybWFibGU7VGMoZGUsby53b3JsZFRyYW5zZm9ybSksJGkoZGUsZGUpLGVyKGEubG9jYWxQb3NpdGlvbixWdCxkZSl9dGhpcy5kaXJ0aWZ5TG9jYWwobixhKX19fSx7a2V5OiJzZXRMb2NhbFBvc2l0aW9uIix2YWx1ZTpmdW5jdGlvbihuLHIpe3ZhciBpLGE9YXJndW1lbnRzLmxlbmd0aD4yJiZhcmd1bWVudHNbMl0hPT12b2lkIDA/YXJndW1lbnRzWzJdOiEwLG89bi50cmFuc2Zvcm1hYmxlO1B0WzBdPXJbMF0sUHRbMV09clsxXSxQdFsyXT0oaT1yWzJdKSE9PW51bGwmJmkhPT12b2lkIDA/aTowLCFLKG8ubG9jYWxQb3NpdGlvbixQdCkmJihjYShvLmxvY2FsUG9zaXRpb24sUHQpLGEmJnRoaXMuZGlydGlmeUxvY2FsKG4sbykpfX0se2tleToic2NhbGVMb2NhbCIsdmFsdWU6ZnVuY3Rpb24obixyKXt2YXIgaSxhPW4udHJhbnNmb3JtYWJsZTtCZChhLmxvY2FsU2NhbGUsYS5sb2NhbFNjYWxlLEdyKFksclswXSxyWzFdLChpPXJbMl0pIT09bnVsbCYmaSE9PXZvaWQgMD9pOjEpKSx0aGlzLmRpcnRpZnlMb2NhbChuLGEpfX0se2tleToic2V0TG9jYWxTY2FsZSIsdmFsdWU6ZnVuY3Rpb24obixyKXt2YXIgaSxhPWFyZ3VtZW50cy5sZW5ndGg+MiYmYXJndW1lbnRzWzJdIT09dm9pZCAwP2FyZ3VtZW50c1syXTohMCxvPW4udHJhbnNmb3JtYWJsZTtHcihZLHJbMF0sclsxXSwoaT1yWzJdKSE9PW51bGwmJmkhPT12b2lkIDA/aTpvLmxvY2FsU2NhbGVbMl0pLCFLKFksby5sb2NhbFNjYWxlKSYmKGNhKG8ubG9jYWxTY2FsZSxZKSxhJiZ0aGlzLmRpcnRpZnlMb2NhbChuLG8pKX19LHtrZXk6InRyYW5zbGF0ZSIsdmFsdWU6ZnVuY3Rpb24obixyKXt2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjImJmFyZ3VtZW50c1syXSE9PXZvaWQgMD9hcmd1bWVudHNbMl06MCxhPWFyZ3VtZW50cy5sZW5ndGg+MyYmYXJndW1lbnRzWzNdIT09dm9pZCAwP2FyZ3VtZW50c1szXTowO3R5cGVvZiByPT0ibnVtYmVyIiYmKHI9R3IoWSxyLGksYSkpLCFLKHIsbSkmJihOYShZLHRoaXMuZ2V0UG9zaXRpb24obiksciksdGhpcy5zZXRQb3NpdGlvbihuLFkpKX19LHtrZXk6InNldFJvdGF0aW9uIix2YWx1ZTpmdW5jdGlvbihuLHIsaSxhLG8pe3ZhciBzPW4udHJhbnNmb3JtYWJsZTtpZih0eXBlb2Ygcj09Im51bWJlciImJihyPU12KHIsaSxhLG8pKSxuLnBhcmVudE5vZGU9PT1udWxsfHwhbi5wYXJlbnROb2RlLnRyYW5zZm9ybWFibGUpdGhpcy5zZXRMb2NhbFJvdGF0aW9uKG4scik7ZWxzZXt2YXIgYz10aGlzLmdldFJvdGF0aW9uKG4ucGFyZW50Tm9kZSk7UGwoZXQsYykscGgoZXQsZXQpLEtvKHMubG9jYWxSb3RhdGlvbixldCxyKSxOYyhzLmxvY2FsUm90YXRpb24scy5sb2NhbFJvdGF0aW9uKSx0aGlzLmRpcnRpZnlMb2NhbChuLHMpfX19LHtrZXk6InNldExvY2FsUm90YXRpb24iLHZhbHVlOmZ1bmN0aW9uKG4scixpLGEsbyl7dmFyIHM9YXJndW1lbnRzLmxlbmd0aD41JiZhcmd1bWVudHNbNV0hPT12b2lkIDA/YXJndW1lbnRzWzVdOiEwO3R5cGVvZiByPT0ibnVtYmVyIiYmKHI9Q2woZXQscixpLGEsbykpO3ZhciBjPW4udHJhbnNmb3JtYWJsZTtQbChjLmxvY2FsUm90YXRpb24scikscyYmdGhpcy5kaXJ0aWZ5TG9jYWwobixjKX19LHtrZXk6InNldExvY2FsU2tldyIsdmFsdWU6ZnVuY3Rpb24obixyLGkpe3ZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MyYmYXJndW1lbnRzWzNdIT09dm9pZCAwP2FyZ3VtZW50c1szXTohMDt0eXBlb2Ygcj09Im51bWJlciImJihyPU5iKEIscixpKSk7dmFyIG89bi50cmFuc2Zvcm1hYmxlO2t2KG8ubG9jYWxTa2V3LHIpLGEmJnRoaXMuZGlydGlmeUxvY2FsKG4sbyl9fSx7a2V5OiJkaXJ0aWZ5TG9jYWwiLHZhbHVlOmZ1bmN0aW9uKG4scil7V2Yobil8fHIubG9jYWxEaXJ0eUZsYWd8fChyLmxvY2FsRGlydHlGbGFnPSEwLHIuZGlydHlGbGFnfHx0aGlzLmRpcnRpZnlXb3JsZChuLHIpKX19LHtrZXk6ImRpcnRpZnlXb3JsZCIsdmFsdWU6ZnVuY3Rpb24obixyKXtyLmRpcnR5RmxhZ3x8dGhpcy51bmZyZWV6ZVBhcmVudFRvUm9vdChuKSx0aGlzLmRpcnRpZnlXb3JsZEludGVybmFsKG4sciksdGhpcy5kaXJ0aWZ5VG9Sb290KG4sITApfX0se2tleToiZGlydGlmeUZyYWdtZW50Iix2YWx1ZTpmdW5jdGlvbihuKXt2YXIgcj1uLnRyYW5zZm9ybWFibGU7ciYmKHIuZnJvemVuPSExLHIuZGlydHlGbGFnPSEwLHIubG9jYWxEaXJ0eUZsYWc9ITApO3ZhciBpPW4ucmVuZGVyYWJsZTtpJiYoaS5yZW5kZXJCb3VuZHNEaXJ0eT0hMCxpLmJvdW5kc0RpcnR5PSEwLGkuZGlydHk9ITApO2Zvcih2YXIgYT1uLmNoaWxkTm9kZXMubGVuZ3RoLG89MDtvPGE7bysrKXRoaXMuZGlydGlmeUZyYWdtZW50KG4uY2hpbGROb2Rlc1tvXSk7bi5ub2RlTmFtZT09PWR0LkZSQUdNRU5UJiZ0aGlzLnBlbmRpbmdFdmVudHMuc2V0KG4sITEpfX0se2tleToidHJpZ2dlclBlbmRpbmdFdmVudHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIG49dGhpcyxyPW5ldyBTZXQsaT1mdW5jdGlvbihvLHMpeyFvLmlzQ29ubmVjdGVkfHxyLmhhcyhvKXx8by5ub2RlTmFtZT09PWR0LkZSQUdNRU5UfHwobi5ib3VuZHNDaGFuZ2VkRXZlbnQuZGV0YWlsPXMsbi5ib3VuZHNDaGFuZ2VkRXZlbnQudGFyZ2V0PW8sby5pc011dGF0aW9uT2JzZXJ2ZWQ/by5kaXNwYXRjaEV2ZW50KG4uYm91bmRzQ2hhbmdlZEV2ZW50KTpvLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcuZGlzcGF0Y2hFdmVudChuLmJvdW5kc0NoYW5nZWRFdmVudCwhMCksci5hZGQobykpfTt0aGlzLnBlbmRpbmdFdmVudHMuZm9yRWFjaChmdW5jdGlvbihhLG8pe28ubm9kZU5hbWUhPT1kdC5GUkFHTUVOVCYmKHRuLmFmZmVjdENoaWxkcmVuPWEsYT9vLmZvckVhY2goZnVuY3Rpb24ocyl7aShzLHRuKX0pOmkobyx0bikpfSksci5jbGVhcigpLHRoaXMuY2xlYXJQZW5kaW5nRXZlbnRzKCl9fSx7a2V5OiJjbGVhclBlbmRpbmdFdmVudHMiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5wZW5kaW5nRXZlbnRzLmNsZWFyKCl9fSx7a2V5OiJkaXJ0aWZ5VG9Sb290Iix2YWx1ZTpmdW5jdGlvbihuKXt2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06ITEsaT1uO2ZvcihpLnJlbmRlcmFibGUmJihpLnJlbmRlcmFibGUuZGlydHk9ITApO2k7KV95KGkpLGk9aS5wYXJlbnROb2RlO3ImJm4uZm9yRWFjaChmdW5jdGlvbihhKXtfeShhKX0pLHRoaXMuaW5mb3JtRGVwZW5kZW50RGlzcGxheU9iamVjdHMobiksdGhpcy5wZW5kaW5nRXZlbnRzLnNldChuLHIpfX0se2tleToidXBkYXRlRGlzcGxheU9iamVjdERlcGVuZGVuY3kiLHZhbHVlOmZ1bmN0aW9uKG4scixpLGEpe2lmKHImJnIhPT1pKXt2YXIgbz10aGlzLmRpc3BsYXlPYmplY3REZXBlbmRlbmN5TWFwLmdldChyKTtpZihvJiZvW25dKXt2YXIgcz1vW25dLmluZGV4T2YoYSk7b1tuXS5zcGxpY2UocywxKX19aWYoaSl7dmFyIGM9dGhpcy5kaXNwbGF5T2JqZWN0RGVwZW5kZW5jeU1hcC5nZXQoaSk7Y3x8KHRoaXMuZGlzcGxheU9iamVjdERlcGVuZGVuY3lNYXAuc2V0KGkse30pLGM9dGhpcy5kaXNwbGF5T2JqZWN0RGVwZW5kZW5jeU1hcC5nZXQoaSkpLGNbbl18fChjW25dPVtdKSxjW25dLnB1c2goYSl9fX0se2tleToiaW5mb3JtRGVwZW5kZW50RGlzcGxheU9iamVjdHMiLHZhbHVlOmZ1bmN0aW9uKG4pe3ZhciByPXRoaXMsaT10aGlzLmRpc3BsYXlPYmplY3REZXBlbmRlbmN5TWFwLmdldChuKTtpJiZPYmplY3Qua2V5cyhpKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe2lbYV0uZm9yRWFjaChmdW5jdGlvbihvKXtyLmRpcnRpZnlUb1Jvb3QobywhMCksby5kaXNwYXRjaEV2ZW50KG5ldyBobygkZS5BVFRSX01PRElGSUVELG8scixyLGEsaG8uTU9ESUZJQ0FUSU9OLHIscikpLG8uaXNDdXN0b21FbGVtZW50JiZvLmlzQ29ubmVjdGVkJiZvLmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayYmby5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2soYSxyLHIpfSl9KX19LHtrZXk6ImdldFBvc2l0aW9uIix2YWx1ZTpmdW5jdGlvbihuKXt2YXIgcj1uLnRyYW5zZm9ybWFibGU7cmV0dXJuICRuKHIucG9zaXRpb24sdGhpcy5nZXRXb3JsZFRyYW5zZm9ybShuLHIpKX19LHtrZXk6ImdldFJvdGF0aW9uIix2YWx1ZTpmdW5jdGlvbihuKXt2YXIgcj1uLnRyYW5zZm9ybWFibGU7cmV0dXJuIFBjKHIucm90YXRpb24sdGhpcy5nZXRXb3JsZFRyYW5zZm9ybShuLHIpKX19LHtrZXk6ImdldFNjYWxlIix2YWx1ZTpmdW5jdGlvbihuKXt2YXIgcj1uLnRyYW5zZm9ybWFibGU7cmV0dXJuIGZhKHIuc2NhbGluZyx0aGlzLmdldFdvcmxkVHJhbnNmb3JtKG4scikpfX0se2tleToiZ2V0V29ybGRUcmFuc2Zvcm0iLHZhbHVlOmZ1bmN0aW9uKG4pe3ZhciByPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTpuLnRyYW5zZm9ybWFibGU7cmV0dXJuIXIubG9jYWxEaXJ0eUZsYWcmJiFyLmRpcnR5RmxhZ3x8KG4ucGFyZW50Tm9kZSYmbi5wYXJlbnROb2RlLnRyYW5zZm9ybWFibGUmJnRoaXMuZ2V0V29ybGRUcmFuc2Zvcm0obi5wYXJlbnROb2RlKSx0aGlzLnN5bmMobixyKSksci53b3JsZFRyYW5zZm9ybX19LHtrZXk6ImdldExvY2FsUG9zaXRpb24iLHZhbHVlOmZ1bmN0aW9uKG4pe3JldHVybiBuLnRyYW5zZm9ybWFibGUubG9jYWxQb3NpdGlvbn19LHtrZXk6ImdldExvY2FsUm90YXRpb24iLHZhbHVlOmZ1bmN0aW9uKG4pe3JldHVybiBuLnRyYW5zZm9ybWFibGUubG9jYWxSb3RhdGlvbn19LHtrZXk6ImdldExvY2FsU2NhbGUiLHZhbHVlOmZ1bmN0aW9uKG4pe3JldHVybiBuLnRyYW5zZm9ybWFibGUubG9jYWxTY2FsZX19LHtrZXk6ImdldExvY2FsU2tldyIsdmFsdWU6ZnVuY3Rpb24obil7cmV0dXJuIG4udHJhbnNmb3JtYWJsZS5sb2NhbFNrZXd9fSx7a2V5OiJjYWxjTG9jYWxUcmFuc2Zvcm0iLHZhbHVlOmZ1bmN0aW9uKG4pe3ZhciByPW4ubG9jYWxTa2V3WzBdIT09MHx8bi5sb2NhbFNrZXdbMV0hPT0wO2lmKHIpe0RzKG4ubG9jYWxUcmFuc2Zvcm0sbi5sb2NhbFJvdGF0aW9uLG4ubG9jYWxQb3NpdGlvbixzbigxLDEsMSksbi5vcmlnaW4pLChuLmxvY2FsU2tld1swXSE9PTB8fG4ubG9jYWxTa2V3WzFdIT09MCkmJihscihxKSxxWzRdPU1hdGgudGFuKG4ubG9jYWxTa2V3WzBdKSxxWzFdPU1hdGgudGFuKG4ubG9jYWxTa2V3WzFdKSxHbihuLmxvY2FsVHJhbnNmb3JtLG4ubG9jYWxUcmFuc2Zvcm0scSkpO3ZhciBpPURzKHEsQ2woZXQsMCwwLDAsMSksR3IoWSwxLDEsMSksbi5sb2NhbFNjYWxlLG4ub3JpZ2luKTtHbihuLmxvY2FsVHJhbnNmb3JtLG4ubG9jYWxUcmFuc2Zvcm0saSl9ZWxzZXt2YXIgYT1uLmxvY2FsVHJhbnNmb3JtLG89bi5sb2NhbFBvc2l0aW9uLHM9bi5sb2NhbFJvdGF0aW9uLGM9bi5sb2NhbFNjYWxlLGw9bi5vcmlnaW4sdT1vWzBdIT09MHx8b1sxXSE9PTB8fG9bMl0hPT0wLGY9c1szXSE9PTF8fHNbMF0hPT0wfHxzWzFdIT09MHx8c1syXSE9PTAsZD1jWzBdIT09MXx8Y1sxXSE9PTF8fGNbMl0hPT0xLGg9bFswXSE9PTB8fGxbMV0hPT0wfHxsWzJdIT09MDshZiYmIWQmJiFoP3U/THIoYSxvKTpscihhKTpEcyhhLHMsbyxjLGwpfX19LHtrZXk6ImdldExvY2FsVHJhbnNmb3JtIix2YWx1ZTpmdW5jdGlvbihuKXt2YXIgcj1uLnRyYW5zZm9ybWFibGU7cmV0dXJuIHIubG9jYWxEaXJ0eUZsYWcmJih0aGlzLmNhbGNMb2NhbFRyYW5zZm9ybShyKSxyLmxvY2FsRGlydHlGbGFnPSExKSxyLmxvY2FsVHJhbnNmb3JtfX0se2tleToic2V0TG9jYWxUcmFuc2Zvcm0iLHZhbHVlOmZ1bmN0aW9uKG4scil7dmFyIGk9JG4oc3QsciksYT1QYyhFdCxyKSxvPWZhKE10LHIpO3RoaXMuc2V0TG9jYWxTY2FsZShuLG8sITEpLHRoaXMuc2V0TG9jYWxQb3NpdGlvbihuLGksITEpLHRoaXMuc2V0TG9jYWxSb3RhdGlvbihuLGEsdm9pZCAwLHZvaWQgMCx2b2lkIDAsITEpLHRoaXMuZGlydGlmeUxvY2FsKG4sbi50cmFuc2Zvcm1hYmxlKX19LHtrZXk6InJlc2V0TG9jYWxUcmFuc2Zvcm0iLHZhbHVlOmZ1bmN0aW9uKG4pe3RoaXMuc2V0TG9jYWxTY2FsZShuLFMsITEpLHRoaXMuc2V0TG9jYWxQb3NpdGlvbihuLG0sITEpLHRoaXMuc2V0TG9jYWxFdWxlckFuZ2xlcyhuLG0sdm9pZCAwLHZvaWQgMCwhMSksdGhpcy5zZXRMb2NhbFNrZXcobixwLHZvaWQgMCwhMSksdGhpcy5kaXJ0aWZ5TG9jYWwobixuLnRyYW5zZm9ybWFibGUpfX0se2tleToiZ2V0VHJhbnNmb3JtZWRHZW9tZXRyeUJvdW5kcyIsdmFsdWU6ZnVuY3Rpb24obil7dmFyIHI9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOiExLGk9YXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDAsYT10aGlzLmdldEdlb21ldHJ5Qm91bmRzKG4scik7aWYoIXhyLmlzRW1wdHkoYSkpe3ZhciBvPWl8fG5ldyB4cjtyZXR1cm4gby5zZXRGcm9tVHJhbnNmb3JtZWRBQUJCKGEsdGhpcy5nZXRXb3JsZFRyYW5zZm9ybShuKSksb31yZXR1cm4gbnVsbH19LHtrZXk6ImdldEdlb21ldHJ5Qm91bmRzIix2YWx1ZTpmdW5jdGlvbihuKXt2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06ITEsaT1uLGE9aS5nZW9tZXRyeTthLmRpcnR5JiZDdC5zdHlsZVZhbHVlUmVnaXN0cnkudXBkYXRlR2VvbWV0cnkobik7dmFyIG89cj9hLnJlbmRlckJvdW5kczphLmNvbnRlbnRCb3VuZHN8fG51bGw7cmV0dXJuIG98fG5ldyB4cn19LHtrZXk6ImdldEJvdW5kcyIsdmFsdWU6ZnVuY3Rpb24obil7dmFyIHI9dGhpcyxpPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTohMSxhPW4sbz1hLnJlbmRlcmFibGU7aWYoIW8uYm91bmRzRGlydHkmJiFpJiZvLmJvdW5kcylyZXR1cm4gby5ib3VuZHM7aWYoIW8ucmVuZGVyQm91bmRzRGlydHkmJmkmJm8ucmVuZGVyQm91bmRzKXJldHVybiBvLnJlbmRlckJvdW5kczt2YXIgcz1pP28ucmVuZGVyQm91bmRzOm8uYm91bmRzLGM9dGhpcy5nZXRUcmFuc2Zvcm1lZEdlb21ldHJ5Qm91bmRzKG4saSxzKSxsPW4uY2hpbGROb2RlcztpZihsLmZvckVhY2goZnVuY3Rpb24oZCl7dmFyIGg9ci5nZXRCb3VuZHMoZCxpKTtoJiYoYz9jLmFkZChoKTooYz1zfHxuZXcgeHIsYy51cGRhdGUoaC5jZW50ZXIsaC5oYWxmRXh0ZW50cykpKX0pLGN8fChjPW5ldyB4ciksaSl7dmFyIHU9Znkobik7aWYodSl7dmFyIGY9dS5wYXJzZWRTdHlsZS5jbGlwUGF0aC5nZXRCb3VuZHMoaSk7Yz9mJiYoYz1mLmludGVyc2VjdGlvbihjKSk6Yy51cGRhdGUoZi5jZW50ZXIsZi5oYWxmRXh0ZW50cyl9fXJldHVybiBpPyhvLnJlbmRlckJvdW5kcz1jLG8ucmVuZGVyQm91bmRzRGlydHk9ITEpOihvLmJvdW5kcz1jLG8uYm91bmRzRGlydHk9ITEpLGN9fSx7a2V5OiJnZXRMb2NhbEJvdW5kcyIsdmFsdWU6ZnVuY3Rpb24obil7aWYobi5wYXJlbnROb2RlKXt2YXIgcj1UO24ucGFyZW50Tm9kZS50cmFuc2Zvcm1hYmxlJiYocj0kaShxLHRoaXMuZ2V0V29ybGRUcmFuc2Zvcm0obi5wYXJlbnROb2RlKSkpO3ZhciBpPXRoaXMuZ2V0Qm91bmRzKG4pO2lmKCF4ci5pc0VtcHR5KGkpKXt2YXIgYT1uZXcgeHI7cmV0dXJuIGEuc2V0RnJvbVRyYW5zZm9ybWVkQUFCQihpLHIpLGF9fXJldHVybiB0aGlzLmdldEJvdW5kcyhuKX19LHtrZXk6ImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsdmFsdWU6ZnVuY3Rpb24obil7dmFyIHIsaSxhPXRoaXMuZ2V0R2VvbWV0cnlCb3VuZHMobik7eHIuaXNFbXB0eShhKXx8KGk9bmV3IHhyLGkuc2V0RnJvbVRyYW5zZm9ybWVkQUFCQihhLHRoaXMuZ2V0V29ybGRUcmFuc2Zvcm0obikpKTt2YXIgbz0ocj1uLm93bmVyRG9jdW1lbnQpPT09bnVsbHx8cj09PXZvaWQgMHx8KHI9ci5kZWZhdWx0Vmlldyk9PT1udWxsfHxyPT09dm9pZCAwP3ZvaWQgMDpyLmdldENvbnRleHRTZXJ2aWNlKCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoaSl7dmFyIHM9aS5nZXRNaW4oKSxjPSgwLFRlLlopKHMsMiksbD1jWzBdLHU9Y1sxXSxmPWkuZ2V0TWF4KCksZD0oMCxUZS5aKShmLDIpLGg9ZFswXSx2PWRbMV07cmV0dXJuIG5ldyBGbyhsKygobz09bnVsbD92b2lkIDA6by5sZWZ0KXx8MCksdSsoKG89PW51bGw/dm9pZCAwOm8udG9wKXx8MCksaC1sLHYtdSl9cmV0dXJuIG5ldyBGbygobz09bnVsbD92b2lkIDA6by5sZWZ0KXx8MCwobz09bnVsbD92b2lkIDA6by50b3ApfHwwLDAsMCl9fSx7a2V5OiJkaXJ0aWZ5V29ybGRJbnRlcm5hbCIsdmFsdWU6ZnVuY3Rpb24obixyKXt2YXIgaT10aGlzO2lmKCFyLmRpcnR5RmxhZyl7ci5kaXJ0eUZsYWc9ITAsci5mcm96ZW49ITEsbi5jaGlsZE5vZGVzLmZvckVhY2goZnVuY3Rpb24ocyl7dmFyIGM9cy50cmFuc2Zvcm1hYmxlO2MuZGlydHlGbGFnfHxpLmRpcnRpZnlXb3JsZEludGVybmFsKHMsYyl9KTt2YXIgYT1uLG89YS5yZW5kZXJhYmxlO28mJihvLnJlbmRlckJvdW5kc0RpcnR5PSEwLG8uYm91bmRzRGlydHk9ITAsby5kaXJ0eT0hMCl9fX0se2tleToic3luY0hpZXJhcmNoeSIsdmFsdWU6ZnVuY3Rpb24obil7dmFyIHI9bi50cmFuc2Zvcm1hYmxlO2lmKCFyLmZyb3plbil7ci5mcm96ZW49ITAsKHIubG9jYWxEaXJ0eUZsYWd8fHIuZGlydHlGbGFnKSYmdGhpcy5zeW5jKG4scik7Zm9yKHZhciBpPW4uY2hpbGROb2RlcyxhPTA7YTxpLmxlbmd0aDthKyspdGhpcy5zeW5jSGllcmFyY2h5KGlbYV0pfX19LHtrZXk6InN5bmMiLHZhbHVlOmZ1bmN0aW9uKG4scil7aWYoci5sb2NhbERpcnR5RmxhZyYmKHRoaXMuY2FsY0xvY2FsVHJhbnNmb3JtKHIpLHIubG9jYWxEaXJ0eUZsYWc9ITEpLHIuZGlydHlGbGFnKXt2YXIgaT1uLnBhcmVudE5vZGUsYT1pJiZpLnRyYW5zZm9ybWFibGU7aT09PW51bGx8fCFhP1RjKHIud29ybGRUcmFuc2Zvcm0sci5sb2NhbFRyYW5zZm9ybSk6R24oci53b3JsZFRyYW5zZm9ybSxhLndvcmxkVHJhbnNmb3JtLHIubG9jYWxUcmFuc2Zvcm0pLHIuZGlydHlGbGFnPSExfX19LHtrZXk6InVuZnJlZXplUGFyZW50VG9Sb290Iix2YWx1ZTpmdW5jdGlvbihuKXtmb3IodmFyIHI9bi5wYXJlbnROb2RlO3I7KXt2YXIgaT1yLnRyYW5zZm9ybWFibGU7aSYmKGkuZnJvemVuPSExKSxyPXIucGFyZW50Tm9kZX19fV0pfSgpLEhyPXtNZXRyaWNzU3RyaW5nOiJ8XHhDOXFceEM1IixCYXNlbGluZVN5bWJvbDoiTSIsQmFzZWxpbmVNdWx0aXBsaWVyOjEuNCxIZWlnaHRNdWx0aXBsaWVyOjIsTmV3bGluZXM6WzEwLDEzXSxCcmVha2luZ1NwYWNlczpbOSwzMiw4MTkyLDgxOTMsODE5NCw4MTk1LDgxOTYsODE5Nyw4MTk4LDgyMDAsODIwMSw4MjAyLDgyODcsMTIyODhdfSxtaT0vW2EtekEtWjAtOVx1MDBDMC1cdTAwRDZcdTAwRDgtXHUwMGY2XHUwMGY4LVx1MDBmZiEiIyQlJicoKSorLC0uLzo7XS8saGE9L1shJSksLjo7P1xdfcKiwrDCtyciIuKAoOKAoeKAuuKEg+KItuOAgeOAguOAg+OAhuOAleOAl+OAnu+5mu+5nO+8ge+8gu+8he+8h++8ie+8jO+8ju+8mu+8m++8n++8ge+8ve+9ne+9nl0vLFNyPS9bJCjCo8KlwrcnIuOAiOOAiuOAjOOAjuOAkOOAlOOAluOAne+5me+5m++8hO+8iO+8ju+8u++9m++/oe+/pV0vLEdhPS9bISksLjo7P1xdfcKiwrfigJPigJQnIuKAoiLjgIHjgILjgIbjgJ7jgJXjgInjgIvjgI3vuLDvuLHvuLLvuLPvuZDvuZHvuZLvuZPvuZTvuZXvuZbvuZjvuZrvuZzvvIHvvInvvIzvvI7vvJrvvJvvvJ/vuLbvuLjvuLrvuLzvuL7vuYDvuYLvuZfvvL3vvZzvvZ3vvaRdLyxCbz0vWyhbe8KjwqUnIuKAteOAiOOAiuOAjOOAjuOAlOOAne+4tO+5me+5m++8iO+9m++4te+4t++4ue+4u++4ve+4v++5ge+5g++5j10vLHd5PS9bKVxd772d44CV44CJ44CL44CN44CP44CR44CZ44CX44CfJyLvvaDCu+ODveODvuODvOOCoeOCo+OCpeOCp+OCqeODg+ODo+ODpeODp+ODruODteODtuOBgeOBg+OBheOBh+OBieOBo+OCg+OCheOCh+OCjuOCleOCluOHsOOHseOHsuOHs+OHtOOHteOHtuOHt+OHuOOHueOHuuOHu+OHvOOHveOHvuOHv+OAheOAu+KAkOOCoOKAk+OAnD8h4oC84oGH4oGI4oGJ44O744CBOjss44CCLl0vLHY4PS9bKFvvvZvjgJTjgIjjgIrjgIzjgI7jgJDjgJjjgJbjgJ0nIu+9n8Kr4oCULi4u4oCl44Cz44C044C1XS8sZzg9L1shJSksLjo7P1xdfcKiwrAnIuKAoOKAoeKEg+OAhuOAiOOAiuOAjOOAjuOAle+8ge+8he+8ie+8jO+8ju+8mu+8m++8n++8ve+9nV0vLHk4PS9bJChbe8KjwqUnIuOAheOAh+OAieOAi+OAjeOAlO+8hO+8iO+8u++9m++9oO+/pe+/piNdLyxtOD1uZXcgUmVnRXhwKCIiLmNvbmNhdChoYS5zb3VyY2UsInwiKS5jb25jYXQoR2Euc291cmNlLCJ8IikuY29uY2F0KHd5LnNvdXJjZSwifCIpLmNvbmNhdChnOC5zb3VyY2UpKSxiOD1uZXcgUmVnRXhwKCIiLmNvbmNhdChTci5zb3VyY2UsInwiKS5jb25jYXQoQm8uc291cmNlLCJ8IikuY29uY2F0KHY4LnNvdXJjZSwifCIpLmNvbmNhdCh5OC5zb3VyY2UpKSx4OD1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7dmFyIG49dGhpczsoMCx4dC5aKSh0aGlzLHQpLHRoaXMuZm9udE1ldHJpY3NDYWNoZT17fSx0aGlzLnNob3VsZEJyZWFrQnlLaW5zb2t1U2hvcnVpPWZ1bmN0aW9uKHIsaSl7cmV0dXJuIG4uaXNCcmVha2luZ1NwYWNlKGkpPyExOiEhKHImJihiOC5leGVjKGkpfHxtOC5leGVjKHIpKSl9LHRoaXMudHJpbUJ5S2luc29rdVNob3J1aT1mdW5jdGlvbihyKXt2YXIgaT0oMCxsbi5aKShyKSxhPWlbaS5sZW5ndGgtMl07aWYoIWEpcmV0dXJuIHI7dmFyIG89YVthLmxlbmd0aC0xXTtyZXR1cm4gaVtpLmxlbmd0aC0yXT1hLnNsaWNlKDAsLTEpLGlbaS5sZW5ndGgtMV09bytpW2kubGVuZ3RoLTFdLGl9LHRoaXMucnVudGltZT1lfXJldHVybigwLE90LlopKHQsW3trZXk6Im1lYXN1cmVGb250Iix2YWx1ZTpmdW5jdGlvbihuLHIpe2lmKHRoaXMuZm9udE1ldHJpY3NDYWNoZVtuXSlyZXR1cm4gdGhpcy5mb250TWV0cmljc0NhY2hlW25dO3ZhciBpPXthc2NlbnQ6MCxkZXNjZW50OjAsZm9udFNpemU6MH0sYT10aGlzLnJ1bnRpbWUub2Zmc2NyZWVuQ2FudmFzQ3JlYXRvci5nZXRPckNyZWF0ZUNhbnZhcyhyKSxvPXRoaXMucnVudGltZS5vZmZzY3JlZW5DYW52YXNDcmVhdG9yLmdldE9yQ3JlYXRlQ29udGV4dChyLHt3aWxsUmVhZEZyZXF1ZW50bHk6ITB9KTtvLmZvbnQ9bjt2YXIgcz1Ici5NZXRyaWNzU3RyaW5nK0hyLkJhc2VsaW5lU3ltYm9sLGM9TWF0aC5jZWlsKG8ubWVhc3VyZVRleHQocykud2lkdGgpLGw9TWF0aC5jZWlsKG8ubWVhc3VyZVRleHQoSHIuQmFzZWxpbmVTeW1ib2wpLndpZHRoKSx1PUhyLkhlaWdodE11bHRpcGxpZXIqbDtsPWwqSHIuQmFzZWxpbmVNdWx0aXBsaWVyfDAsYS53aWR0aD1jLGEuaGVpZ2h0PXUsby5maWxsU3R5bGU9IiNmMDAiLG8uZmlsbFJlY3QoMCwwLGMsdSksby5mb250PW4sby50ZXh0QmFzZWxpbmU9ImFscGhhYmV0aWMiLG8uZmlsbFN0eWxlPSIjMDAwIixvLmZpbGxUZXh0KHMsMCxsKTt2YXIgZj1vLmdldEltYWdlRGF0YSgwLDAsY3x8MSx1fHwxKS5kYXRhLGQ9Zi5sZW5ndGgsaD1jKjQsdj0wLGc9MCx5PSExO2Zvcih2PTA7djxsOysrdil7Zm9yKHZhciBiPTA7YjxoO2IrPTQpaWYoZltnK2JdIT09MjU1KXt5PSEwO2JyZWFrfWlmKCF5KWcrPWg7ZWxzZSBicmVha31mb3IoaS5hc2NlbnQ9bC12LGc9ZC1oLHk9ITEsdj11O3Y+bDstLXYpe2Zvcih2YXIgeD0wO3g8aDt4Kz00KWlmKGZbZyt4XSE9PTI1NSl7eT0hMDticmVha31pZigheSlnLT1oO2Vsc2UgYnJlYWt9cmV0dXJuIGkuZGVzY2VudD12LWwsaS5mb250U2l6ZT1pLmFzY2VudCtpLmRlc2NlbnQsdGhpcy5mb250TWV0cmljc0NhY2hlW25dPWksaX19LHtrZXk6Im1lYXN1cmVUZXh0Iix2YWx1ZTpmdW5jdGlvbihuLHIsaSl7dmFyIGE9ci5mb250U2l6ZSxvPWE9PT12b2lkIDA/MTY6YSxzPXIud29yZFdyYXAsYz1zPT09dm9pZCAwPyExOnMsbD1yLmxpbmVIZWlnaHQsdT1yLmxpbmVXaWR0aCxmPXU9PT12b2lkIDA/MTp1LGQ9ci50ZXh0QmFzZWxpbmUsaD1kPT09dm9pZCAwPyJhbHBoYWJldGljIjpkLHY9ci50ZXh0QWxpZ24sZz12PT09dm9pZCAwPyJzdGFydCI6dix5PXIubGV0dGVyU3BhY2luZyxiPXk9PT12b2lkIDA/MDp5LHg9ci50ZXh0UGF0aDtyLnRleHRQYXRoU2lkZSxyLnRleHRQYXRoU3RhcnRPZmZzZXQ7dmFyIF89ci5sZWFkaW5nLHc9Xz09PXZvaWQgMD8wOl8sTz1uXyhyKSxFPXRoaXMubWVhc3VyZUZvbnQoTyxpKTtFLmZvbnRTaXplPT09MCYmKEUuZm9udFNpemU9byxFLmFzY2VudD1vKTt2YXIgTT10aGlzLnJ1bnRpbWUub2Zmc2NyZWVuQ2FudmFzQ3JlYXRvci5nZXRPckNyZWF0ZUNvbnRleHQoaSk7TS5mb250PU8sci5pc092ZXJmbG93aW5nPSExO3ZhciBrPWM/dGhpcy53b3JkV3JhcChuLHIsaSk6bixBPWsuc3BsaXQoLyg/OlxyXG58XHJ8XG4pLyksUD1uZXcgQXJyYXkoQS5sZW5ndGgpLEM9MDtpZih4KXt4LmdldFRvdGFsTGVuZ3RoKCk7Zm9yKHZhciBOPTA7TjxBLmxlbmd0aDtOKyspTS5tZWFzdXJlVGV4dChBW05dKS53aWR0aCsoQVtOXS5sZW5ndGgtMSkqYn1lbHNle2Zvcih2YXIgTD0wO0w8QS5sZW5ndGg7TCsrKXt2YXIgUj1NLm1lYXN1cmVUZXh0KEFbTF0pLndpZHRoKyhBW0xdLmxlbmd0aC0xKSpiO1BbTF09UixDPU1hdGgubWF4KEMsUil9dmFyIEk9QytmLEQ9bHx8RS5mb250U2l6ZStmLEc9TWF0aC5tYXgoRCxFLmZvbnRTaXplK2YpKyhBLmxlbmd0aC0xKSooRCt3KTtEKz13O3ZhciBGPTA7cmV0dXJuIGg9PT0ibWlkZGxlIj9GPS1HLzI6aD09PSJib3R0b20ifHxoPT09ImFscGhhYmV0aWMifHxoPT09ImlkZW9ncmFwaGljIj9GPS1HOihoPT09InRvcCJ8fGg9PT0iaGFuZ2luZyIpJiYoRj0wKSx7Zm9udDpPLHdpZHRoOkksaGVpZ2h0OkcsbGluZXM6QSxsaW5lV2lkdGhzOlAsbGluZUhlaWdodDpELG1heExpbmVXaWR0aDpDLGZvbnRQcm9wZXJ0aWVzOkUsbGluZU1ldHJpY3M6UC5tYXAoZnVuY3Rpb24oVyxYKXt2YXIgUT0wO3JldHVybiBnPT09ImNlbnRlciJ8fGc9PT0ibWlkZGxlIj9RLT1XLzI6KGc9PT0icmlnaHQifHxnPT09ImVuZCIpJiYoUS09VyksbmV3IEZvKFEtZi8yLEYrWCpELFcrZixEKX0pfX19fSx7a2V5OiJ3b3JkV3JhcCIsdmFsdWU6ZnVuY3Rpb24obixyLGkpe3ZhciBhPXRoaXMsbz10aGlzLHM9ci53b3JkV3JhcFdpZHRoLGM9cz09PXZvaWQgMD8wOnMsbD1yLmxldHRlclNwYWNpbmcsdT1sPT09dm9pZCAwPzA6bCxmPXIubWF4TGluZXMsZD1mPT09dm9pZCAwPzEvMDpmLGg9ci50ZXh0T3ZlcmZsb3csdj10aGlzLnJ1bnRpbWUub2Zmc2NyZWVuQ2FudmFzQ3JlYXRvci5nZXRPckNyZWF0ZUNvbnRleHQoaSksZz1jK3UseT0iIjtoPT09ImVsbGlwc2lzIj95PSIuLi4iOmgmJmghPT0iY2xpcCImJih5PWgpO3ZhciBiPUFycmF5LmZyb20obikseD1bXSxfPTAsdz0wLE89MCxFPXt9LE09ZnVuY3Rpb24oRil7cmV0dXJuIGEuZ2V0RnJvbUNhY2hlKEYsdSxFLHYpfSxrPU0oeSk7ZnVuY3Rpb24gQShHLEYsVyxYKXtmb3IoO00oRyk8WCYmRjxiLmxlbmd0aC0xJiYhby5pc05ld2xpbmUoYltGKzFdKTspRis9MSxHKz1iW0ZdO2Zvcig7TShHKT5YJiZGPlc7KUYtPTEsRz1HLnNsaWNlKDAsLTEpO3JldHVybntsaW5lVHh0OkcsdHh0TGFzdENoYXJJbmRleDpGfX1mdW5jdGlvbiBQKEcsRil7aWYoIShrPD0wfHxrPmcpKXtpZigheFtHXSl7eFtHXT15O3JldHVybn12YXIgVz1BKHhbR10sRixPKzEsZy1rKTt4W0ddPVcubGluZVR4dCt5fX1mb3IodmFyIEM9MDtDPGIubGVuZ3RoO0MrKyl7dmFyIE49YltDXSxMPWJbQy0xXSxSPWJbQysxXSxJPU0oTik7aWYodGhpcy5pc05ld2xpbmUoTikpe2lmKF8rMT49ZCl7ci5pc092ZXJmbG93aW5nPSEwLEM8Yi5sZW5ndGgtMSYmUChfLEMtMSk7YnJlYWt9Tz1DLTEsXys9MSx3PTAseFtfXT0iIjtjb250aW51ZX1pZih3PjAmJncrST5nKXt2YXIgRD1BKHhbX10sQy0xLE8rMSxnKTtpZihELnR4dExhc3RDaGFySW5kZXghPT1DLTEpe2lmKHhbX109RC5saW5lVHh0LEQudHh0TGFzdENoYXJJbmRleD09PWIubGVuZ3RoLTEpYnJlYWs7Qz1ELnR4dExhc3RDaGFySW5kZXgrMSxOPWJbQ10sTD1iW0MtMV0sUj1iW0MrMV0sST1NKE4pfWlmKF8rMT49ZCl7ci5pc092ZXJmbG93aW5nPSEwLFAoXyxDLTEpO2JyZWFrfWlmKE89Qy0xLF8rPTEsdz0wLHhbX109IiIsdGhpcy5pc0JyZWFraW5nU3BhY2UoTikpY29udGludWU7dGhpcy5jYW5CcmVha0luTGFzdENoYXIoTil8fCh4PXRoaXMudHJpbVRvQnJlYWthYmxlKHgpLHc9dGhpcy5zdW1UZXh0V2lkdGhCeUNhY2hlKHhbX118fCIiLE0pKSx0aGlzLnNob3VsZEJyZWFrQnlLaW5zb2t1U2hvcnVpKE4sUikmJih4PXRoaXMudHJpbUJ5S2luc29rdVNob3J1aSh4KSx3Kz1NKEx8fCIiKSl9dys9SSx4W19dPSh4W19dfHwiIikrTn1yZXR1cm4geC5qb2luKGAKK2ApfX0se2tleToiaXNCcmVha2luZ1NwYWNlIix2YWx1ZTpmdW5jdGlvbihuKXtyZXR1cm4gdHlwZW9mIG4hPSJzdHJpbmciPyExOkhyLkJyZWFraW5nU3BhY2VzLmluZGV4T2Yobi5jaGFyQ29kZUF0KDApKT49MH19LHtrZXk6ImlzTmV3bGluZSIsdmFsdWU6ZnVuY3Rpb24obil7cmV0dXJuIHR5cGVvZiBuIT0ic3RyaW5nIj8hMTpIci5OZXdsaW5lcy5pbmRleE9mKG4uY2hhckNvZGVBdCgwKSk+PTB9fSx7a2V5OiJ0cmltVG9CcmVha2FibGUiLHZhbHVlOmZ1bmN0aW9uKG4pe3ZhciByPSgwLGxuLlopKG4pLGk9cltyLmxlbmd0aC0yXSxhPXRoaXMuZmluZEJyZWFrYWJsZUluZGV4KGkpO2lmKGE9PT0tMXx8IWkpcmV0dXJuIHI7dmFyIG89aS5zbGljZShhLGErMSkscz10aGlzLmlzQnJlYWtpbmdTcGFjZShvKSxjPWErMSxsPWErKHM/MDoxKTtyZXR1cm4gcltyLmxlbmd0aC0xXSs9aS5zbGljZShjLGkubGVuZ3RoKSxyW3IubGVuZ3RoLTJdPWkuc2xpY2UoMCxsKSxyfX0se2tleToiY2FuQnJlYWtJbkxhc3RDaGFyIix2YWx1ZTpmdW5jdGlvbihuKXtyZXR1cm4hKG4mJm1pLnRlc3QobikpfX0se2tleToic3VtVGV4dFdpZHRoQnlDYWNoZSIsdmFsdWU6ZnVuY3Rpb24obixyKXtyZXR1cm4gbi5zcGxpdCgiIikucmVkdWNlKGZ1bmN0aW9uKGksYSl7cmV0dXJuIGkrcihhKX0sMCl9fSx7a2V5OiJmaW5kQnJlYWthYmxlSW5kZXgiLHZhbHVlOmZ1bmN0aW9uKG4pe2Zvcih2YXIgcj1uLmxlbmd0aC0xO3I+PTA7ci0tKWlmKCFtaS50ZXN0KG5bcl0pKXJldHVybiByO3JldHVybi0xfX0se2tleToiZ2V0RnJvbUNhY2hlIix2YWx1ZTpmdW5jdGlvbihuLHIsaSxhKXt2YXIgbz1pW25dO2lmKHR5cGVvZiBvIT0ibnVtYmVyIil7dmFyIHM9bi5sZW5ndGgqcixjPWEubWVhc3VyZVRleHQobik7bz1jLndpZHRoK3MsaVtuXT1vfXJldHVybiBvfX1dKX0oKSxDdD17fSxfOD1mdW5jdGlvbih0KXt2YXIgZT1uZXcgaF8sbj1uZXcgZF87cmV0dXJuIHQ9e30sKDAsS3QuWikoKDAsS3QuWikoKDAsS3QuWikoKDAsS3QuWikoKDAsS3QuWikoKDAsS3QuWikoKDAsS3QuWikoKDAsS3QuWikoKDAsS3QuWikoKDAsS3QuWikodCxkdC5GUkFHTUVOVCxudWxsKSxkdC5DSVJDTEUsbmV3IGxfKSxkdC5FTExJUFNFLG5ldyB1XyksZHQuUkVDVCxlKSxkdC5JTUFHRSxlKSxkdC5HUk9VUCxuZXcgaHApLGR0LkxJTkUsbmV3IHl5KSxkdC5URVhULG5ldyBkcChDdCkpLGR0LlBPTFlMSU5FLG4pLGR0LlBPTFlHT04sbiksKDAsS3QuWikoKDAsS3QuWikoKDAsS3QuWikodCxkdC5QQVRILG5ldyBmXyksZHQuSFRNTCxuZXcgcF8pLGR0Lk1FU0gsbnVsbCl9KCksdzg9ZnVuY3Rpb24odCl7dmFyIGU9bmV3IGsyLG49bmV3IHpmO3JldHVybiB0PXt9LCgwLEt0LlopKCgwLEt0LlopKCgwLEt0LlopKCgwLEt0LlopKCgwLEt0LlopKCgwLEt0LlopKCgwLEt0LlopKCgwLEt0LlopKCgwLEt0LlopKCgwLEt0LlopKHQsenQuUEVSQ0VOVEFHRSxudWxsKSx6dC5OVU1CRVIsbmV3IG95KSx6dC5BTkdMRSxuZXcgTTIpLHp0LkRFRklORURfUEFUSCxuZXcgaXkpLHp0LlBBSU5ULGUpLHp0LkNPTE9SLGUpLHp0LkZJTFRFUixuZXcgQTIpLHp0LkxFTkdUSCxuKSx6dC5MRU5HVEhfUEVSQ0VOVEFHRSxuKSx6dC5MRU5HVEhfUEVSQ0VOVEFHRV8xMixuZXcgVDIpLCgwLEt0LlopKCgwLEt0LlopKCgwLEt0LlopKCgwLEt0LlopKCgwLEt0LlopKCgwLEt0LlopKCgwLEt0LlopKCgwLEt0LlopKCgwLEt0LlopKCgwLEt0LlopKHQsenQuTEVOR1RIX1BFUkNFTlRBR0VfMTQsbmV3IFAyKSx6dC5DT09SRElOQVRFLG5ldyB6ZiksenQuT0ZGU0VUX0RJU1RBTkNFLG5ldyBzeSksenQuT1BBQ0lUWV9WQUxVRSxuZXcgTDIpLHp0LlBBVEgsbmV3IFIyKSx6dC5MSVNUX09GX1BPSU5UUyxuZXcgTjIpLHp0LlNIQURPV19CTFVSLG5ldyBJMiksenQuVEVYVCxuZXcgcWMpLHp0LlRFWFRfVFJBTlNGT1JNLG5ldyBEMiksenQuVFJBTlNGT1JNLG5ldyBmcCksKDAsS3QuWikoKDAsS3QuWikoKDAsS3QuWikodCx6dC5UUkFOU0ZPUk1fT1JJR0lOLG5ldyBzXyksenQuWl9JTkRFWCxuZXcgY18pLHp0Lk1BUktFUixuZXcgQzIpfSgpLE84PWZ1bmN0aW9uKCl7cmV0dXJuIHR5cGVvZiBnbG9iYWxUaGlzIT0idW5kZWZpbmVkIj9nbG9iYWxUaGlzOnR5cGVvZiBzZWxmIT0idW5kZWZpbmVkIj9zZWxmOnR5cGVvZiB3aW5kb3chPSJ1bmRlZmluZWQiP3dpbmRvdzp0eXBlb2YgcHQuZyE9InVuZGVmaW5lZCI/cHQuZzp7fX07Q3QuQ2FtZXJhQ29udHJpYnV0aW9uPV9nLEN0LkFuaW1hdGlvblRpbWVsaW5lPW51bGwsQ3QuRWFzaW5nRnVuY3Rpb249bnVsbCxDdC5vZmZzY3JlZW5DYW52YXNDcmVhdG9yPW5ldyBncCxDdC5zY2VuZUdyYXBoU2VsZWN0b3I9bmV3IGJfLEN0LnNjZW5lR3JhcGhTZXJ2aWNlPW5ldyBkbihDdCksQ3QudGV4dFNlcnZpY2U9bmV3IHg4KEN0KSxDdC5nZW9tZXRyeVVwZGF0ZXJGYWN0b3J5PV84LEN0LkNTU1Byb3BlcnR5U3ludGF4RmFjdG9yeT13OCxDdC5zdHlsZVZhbHVlUmVnaXN0cnk9bmV3IEtpKEN0KSxDdC5sYXlvdXRSZWdpc3RyeT1udWxsLEN0Lmdsb2JhbFRoaXM9TzgoKSxDdC5lbmFibGVTdHlsZVN5bnRheD0hMCxDdC5lbmFibGVTaXplQXR0ZW51YXRpb249ITE7dmFyIHBrPTA7ZnVuY3Rpb24gTWF0KCl7cGs9MH12YXIgX189bmV3IGhvKCRlLklOU0VSVEVELG51bGwsIiIsIiIsIiIsMCwiIiwiIiksd189bmV3IGhvKCRlLlJFTU9WRUQsbnVsbCwiIiwiIiwiIiwwLCIiLCIiKSx2az1uZXcgTm4oJGUuREVTVFJPWSksUzg9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBuOygwLHh0LlopKHRoaXMsZSk7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGgsaT1uZXcgQXJyYXkociksYT0wO2E8cjthKyspaVthXT1hcmd1bWVudHNbYV07cmV0dXJuIG49KDAsRGUuWikodGhpcyxlLFtdLmNvbmNhdChpKSksbi5lbnRpdHk9cGsrKyxuLnJlbmRlcmFibGU9e2JvdW5kczp2b2lkIDAsYm91bmRzRGlydHk6ITAscmVuZGVyQm91bmRzOnZvaWQgMCxyZW5kZXJCb3VuZHNEaXJ0eTohMCxkaXJ0eVJlbmRlckJvdW5kczp2b2lkIDAsZGlydHk6ITF9LG4uY3VsbGFibGU9e3N0cmF0ZWd5OkF4LlN0YW5kYXJkLHZpc2liaWxpdHlQbGFuZU1hc2s6LTEsdmlzaWJsZTohMCxlbmFibGU6ITB9LG4udHJhbnNmb3JtYWJsZT17ZGlydHlGbGFnOiExLGxvY2FsRGlydHlGbGFnOiExLGZyb3plbjohMSxsb2NhbFBvc2l0aW9uOlswLDAsMF0sbG9jYWxSb3RhdGlvbjpbMCwwLDAsMV0sbG9jYWxTY2FsZTpbMSwxLDFdLGxvY2FsVHJhbnNmb3JtOlsxLDAsMCwwLDAsMSwwLDAsMCwwLDEsMCwwLDAsMCwxXSxsb2NhbFNrZXc6WzAsMF0scG9zaXRpb246WzAsMCwwXSxyb3RhdGlvbjpbMCwwLDAsMV0sc2NhbGluZzpbMSwxLDFdLHdvcmxkVHJhbnNmb3JtOlsxLDAsMCwwLDAsMSwwLDAsMCwwLDEsMCwwLDAsMCwxXSxvcmlnaW46WzAsMCwwXX0sbi5zb3J0YWJsZT17ZGlydHk6ITEsc29ydGVkOnZvaWQgMCxyZW5kZXJPcmRlcjowLGRpcnR5Q2hpbGRyZW46W10sZGlydHlSZWFzb246dm9pZCAwfSxuLmdlb21ldHJ5PXtjb250ZW50Qm91bmRzOnZvaWQgMCxyZW5kZXJCb3VuZHM6dm9pZCAwLGRpcnR5OiEwfSxuLnJCdXNoTm9kZT17YWFiYjp2b2lkIDB9LG4ubmFtZXNwYWNlVVJJPSJnIixuLnNjcm9sbExlZnQ9MCxuLnNjcm9sbFRvcD0wLG4uY2xpZW50VG9wPTAsbi5jbGllbnRMZWZ0PTAsbi5kZXN0cm95ZWQ9ITEsbi5zdHlsZT17fSxuLmNvbXB1dGVkU3R5bGU9e30sbi5wYXJzZWRTdHlsZT17fSxuLmF0dHJpYnV0ZXM9e30sbn1yZXR1cm4oMCxNZS5aKShlLHQpLCgwLE90LlopKGUsW3trZXk6ImNsYXNzTmFtZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIn0sc2V0OmZ1bmN0aW9uKHIpe3RoaXMuc2V0QXR0cmlidXRlKCJjbGFzcyIscil9fSx7a2V5OiJjbGFzc0xpc3QiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNsYXNzTmFtZS5zcGxpdCgiICIpLmZpbHRlcihmdW5jdGlvbihyKXtyZXR1cm4gciE9PSIifSl9fSx7a2V5OiJ0YWdOYW1lIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2RlTmFtZX19LHtrZXk6ImNoaWxkcmVuIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jaGlsZE5vZGVzfX0se2tleToiY2hpbGRFbGVtZW50Q291bnQiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNoaWxkTm9kZXMubGVuZ3RofX0se2tleToiZmlyc3RFbGVtZW50Q2hpbGQiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmZpcnN0Q2hpbGR9fSx7a2V5OiJsYXN0RWxlbWVudENoaWxkIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYXN0Q2hpbGR9fSx7a2V5OiJwYXJlbnRFbGVtZW50IixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wYXJlbnROb2RlfX0se2tleToibmV4dFNpYmxpbmciLGdldDpmdW5jdGlvbigpe2lmKHRoaXMucGFyZW50Tm9kZSl7dmFyIHI9dGhpcy5wYXJlbnROb2RlLmNoaWxkTm9kZXMuaW5kZXhPZih0aGlzKTtyZXR1cm4gdGhpcy5wYXJlbnROb2RlLmNoaWxkTm9kZXNbcisxXXx8bnVsbH1yZXR1cm4gbnVsbH19LHtrZXk6InByZXZpb3VzU2libGluZyIsZ2V0OmZ1bmN0aW9uKCl7aWYodGhpcy5wYXJlbnROb2RlKXt2YXIgcj10aGlzLnBhcmVudE5vZGUuY2hpbGROb2Rlcy5pbmRleE9mKHRoaXMpO3JldHVybiB0aGlzLnBhcmVudE5vZGUuY2hpbGROb2Rlc1tyLTFdfHxudWxsfXJldHVybiBudWxsfX0se2tleToiY2xvbmVOb2RlIix2YWx1ZTpmdW5jdGlvbihyKXt0aHJvdyBuZXcgRXJyb3Ioa24pfX0se2tleToiYXBwZW5kQ2hpbGQiLHZhbHVlOmZ1bmN0aW9uKHIsaSl7dmFyIGE7aWYoci5kZXN0cm95ZWQpdGhyb3cgbmV3IEVycm9yKEhzKTtyZXR1cm4gQ3Quc2NlbmVHcmFwaFNlcnZpY2UuYXR0YWNoKHIsdGhpcyxpKSwoYT10aGlzLm93bmVyRG9jdW1lbnQpIT09bnVsbCYmYSE9PXZvaWQgMCYmYS5kZWZhdWx0VmlldyYmKCFXZih0aGlzKSYmci5ub2RlTmFtZT09PWR0LkZSQUdNRU5UP3RoaXMub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldy5tb3VudEZyYWdtZW50KHIpOnRoaXMub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldy5tb3VudENoaWxkcmVuKHIpKSx0aGlzLmlzTXV0YXRpb25PYnNlcnZlZCYmKF9fLnJlbGF0ZWROb2RlPXRoaXMsci5kaXNwYXRjaEV2ZW50KF9fKSkscn19LHtrZXk6Imluc2VydEJlZm9yZSIsdmFsdWU6ZnVuY3Rpb24ocixpKXtpZighaSl0aGlzLmFwcGVuZENoaWxkKHIpO2Vsc2V7ci5wYXJlbnRFbGVtZW50JiZyLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQocik7dmFyIGE9dGhpcy5jaGlsZE5vZGVzLmluZGV4T2YoaSk7YT09PS0xP3RoaXMuYXBwZW5kQ2hpbGQocik6dGhpcy5hcHBlbmRDaGlsZChyLGEpfXJldHVybiByfX0se2tleToicmVwbGFjZUNoaWxkIix2YWx1ZTpmdW5jdGlvbihyLGkpe3ZhciBhPXRoaXMuY2hpbGROb2Rlcy5pbmRleE9mKGkpO3JldHVybiB0aGlzLnJlbW92ZUNoaWxkKGkpLHRoaXMuYXBwZW5kQ2hpbGQocixhKSxpfX0se2tleToicmVtb3ZlQ2hpbGQiLHZhbHVlOmZ1bmN0aW9uKHIpe3ZhciBpO3JldHVybiB3Xy5yZWxhdGVkTm9kZT10aGlzLHIuZGlzcGF0Y2hFdmVudCh3XyksKGk9ci5vd25lckRvY3VtZW50KSE9PW51bGwmJmkhPT12b2lkIDAmJmkuZGVmYXVsdFZpZXcmJnIub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldy51bm1vdW50Q2hpbGRyZW4ociksQ3Quc2NlbmVHcmFwaFNlcnZpY2UuZGV0YWNoKHIpLHJ9fSx7a2V5OiJyZW1vdmVDaGlsZHJlbiIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFyIHI9dGhpcy5jaGlsZE5vZGVzLmxlbmd0aC0xO3I+PTA7ci0tKXt2YXIgaT10aGlzLmNoaWxkTm9kZXNbcl07dGhpcy5yZW1vdmVDaGlsZChpKX19fSx7a2V5OiJkZXN0cm95Q2hpbGRyZW4iLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciByPXRoaXMuY2hpbGROb2Rlcy5sZW5ndGgtMTtyPj0wO3ItLSl7dmFyIGk9dGhpcy5jaGlsZE5vZGVzW3JdO2kuY2hpbGROb2Rlcy5sZW5ndGg+MCYmaS5kZXN0cm95Q2hpbGRyZW4oKSxpLmRlc3Ryb3koKX19fSx7a2V5OiJtYXRjaGVzIix2YWx1ZTpmdW5jdGlvbihyKXtyZXR1cm4gQ3Quc2NlbmVHcmFwaFNlcnZpY2UubWF0Y2hlcyhyLHRoaXMpfX0se2tleToiZ2V0RWxlbWVudEJ5SWQiLHZhbHVlOmZ1bmN0aW9uKHIpe3JldHVybiBDdC5zY2VuZUdyYXBoU2VydmljZS5xdWVyeVNlbGVjdG9yKCIjIi5jb25jYXQociksdGhpcyl9fSx7a2V5OiJnZXRFbGVtZW50c0J5TmFtZSIsdmFsdWU6ZnVuY3Rpb24ocil7cmV0dXJuIEN0LnNjZW5lR3JhcGhTZXJ2aWNlLnF1ZXJ5U2VsZWN0b3JBbGwoJ1tuYW1lPSInLmNvbmNhdChyLCciXScpLHRoaXMpfX0se2tleToiZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSIsdmFsdWU6ZnVuY3Rpb24ocil7cmV0dXJuIEN0LnNjZW5lR3JhcGhTZXJ2aWNlLnF1ZXJ5U2VsZWN0b3JBbGwoIi4iLmNvbmNhdChyKSx0aGlzKX19LHtrZXk6ImdldEVsZW1lbnRzQnlUYWdOYW1lIix2YWx1ZTpmdW5jdGlvbihyKXtyZXR1cm4gQ3Quc2NlbmVHcmFwaFNlcnZpY2UucXVlcnlTZWxlY3RvckFsbChyLHRoaXMpfX0se2tleToicXVlcnlTZWxlY3RvciIsdmFsdWU6ZnVuY3Rpb24ocil7cmV0dXJuIEN0LnNjZW5lR3JhcGhTZXJ2aWNlLnF1ZXJ5U2VsZWN0b3Iocix0aGlzKX19LHtrZXk6InF1ZXJ5U2VsZWN0b3JBbGwiLHZhbHVlOmZ1bmN0aW9uKHIpe3JldHVybiBDdC5zY2VuZUdyYXBoU2VydmljZS5xdWVyeVNlbGVjdG9yQWxsKHIsdGhpcyl9fSx7a2V5OiJjbG9zZXN0Iix2YWx1ZTpmdW5jdGlvbihyKXt2YXIgaT10aGlzO2Rve2lmKEN0LnNjZW5lR3JhcGhTZXJ2aWNlLm1hdGNoZXMocixpKSlyZXR1cm4gaTtpPWkucGFyZW50RWxlbWVudH13aGlsZShpIT09bnVsbCk7cmV0dXJuIG51bGx9fSx7a2V5OiJmaW5kIix2YWx1ZTpmdW5jdGlvbihyKXt2YXIgaT10aGlzLGE9bnVsbDtyZXR1cm4gdGhpcy5mb3JFYWNoKGZ1bmN0aW9uKG8pe3JldHVybiBvIT09aSYmcihvKT8oYT1vLCExKTohMH0pLGF9fSx7a2V5OiJmaW5kQWxsIix2YWx1ZTpmdW5jdGlvbihyKXt2YXIgaT10aGlzLGE9W107cmV0dXJuIHRoaXMuZm9yRWFjaChmdW5jdGlvbihvKXtvIT09aSYmcihvKSYmYS5wdXNoKG8pfSksYX19LHtrZXk6ImFmdGVyIix2YWx1ZTpmdW5jdGlvbigpe3ZhciByPXRoaXM7aWYodGhpcy5wYXJlbnROb2RlKXtmb3IodmFyIGk9dGhpcy5wYXJlbnROb2RlLmNoaWxkTm9kZXMuaW5kZXhPZih0aGlzKSxhPWFyZ3VtZW50cy5sZW5ndGgsbz1uZXcgQXJyYXkoYSkscz0wO3M8YTtzKyspb1tzXT1hcmd1bWVudHNbc107by5mb3JFYWNoKGZ1bmN0aW9uKGMsbCl7dmFyIHU7cmV0dXJuKHU9ci5wYXJlbnROb2RlKT09PW51bGx8fHU9PT12b2lkIDA/dm9pZCAwOnUuYXBwZW5kQ2hpbGQoYyxpK2wrMSl9KX19fSx7a2V5OiJiZWZvcmUiLHZhbHVlOmZ1bmN0aW9uKCl7aWYodGhpcy5wYXJlbnROb2RlKXtmb3IodmFyIHIsaT10aGlzLnBhcmVudE5vZGUuY2hpbGROb2Rlcy5pbmRleE9mKHRoaXMpLGE9YXJndW1lbnRzLmxlbmd0aCxvPW5ldyBBcnJheShhKSxzPTA7czxhO3MrKylvW3NdPWFyZ3VtZW50c1tzXTt2YXIgYz1vWzBdLGw9by5zbGljZSgxKTt0aGlzLnBhcmVudE5vZGUuYXBwZW5kQ2hpbGQoYyxpKSwocj1jKS5hZnRlci5hcHBseShyLCgwLGxuLlopKGwpKX19fSx7a2V5OiJyZXBsYWNlV2l0aCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmFmdGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLnJlbW92ZSgpfX0se2tleToiYXBwZW5kIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgcj10aGlzLGk9YXJndW1lbnRzLmxlbmd0aCxhPW5ldyBBcnJheShpKSxvPTA7bzxpO28rKylhW29dPWFyZ3VtZW50c1tvXTthLmZvckVhY2goZnVuY3Rpb24ocyl7cmV0dXJuIHIuYXBwZW5kQ2hpbGQocyl9KX19LHtrZXk6InByZXBlbmQiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciByPXRoaXMsaT1hcmd1bWVudHMubGVuZ3RoLGE9bmV3IEFycmF5KGkpLG89MDtvPGk7bysrKWFbb109YXJndW1lbnRzW29dO2EuZm9yRWFjaChmdW5jdGlvbihzLGMpe3JldHVybiByLmFwcGVuZENoaWxkKHMsYyl9KX19LHtrZXk6InJlcGxhY2VDaGlsZHJlbiIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IoO3RoaXMuY2hpbGROb2Rlcy5sZW5ndGgmJnRoaXMuZmlyc3RDaGlsZDspdGhpcy5yZW1vdmVDaGlsZCh0aGlzLmZpcnN0Q2hpbGQpO3RoaXMuYXBwZW5kLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19LHtrZXk6InJlbW92ZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wYXJlbnROb2RlP3RoaXMucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzKTp0aGlzfX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmRlc3Ryb3lDaGlsZHJlbigpLHRoaXMuZGlzcGF0Y2hFdmVudCh2ayksdGhpcy5yZW1vdmUoKSx0aGlzLmVtaXR0ZXIucmVtb3ZlQWxsTGlzdGVuZXJzKCksdGhpcy5kZXN0cm95ZWQ9ITB9fSx7a2V5OiJnZXRHZW9tZXRyeUJvdW5kcyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gQ3Quc2NlbmVHcmFwaFNlcnZpY2UuZ2V0R2VvbWV0cnlCb3VuZHModGhpcyl9fSx7a2V5OiJnZXRSZW5kZXJCb3VuZHMiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIEN0LnNjZW5lR3JhcGhTZXJ2aWNlLmdldEJvdW5kcyh0aGlzLCEwKX19LHtrZXk6ImdldEJvdW5kcyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gQ3Quc2NlbmVHcmFwaFNlcnZpY2UuZ2V0Qm91bmRzKHRoaXMpfX0se2tleToiZ2V0TG9jYWxCb3VuZHMiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIEN0LnNjZW5lR3JhcGhTZXJ2aWNlLmdldExvY2FsQm91bmRzKHRoaXMpfX0se2tleToiZ2V0Qm91bmRpbmdDbGllbnRSZWN0Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBDdC5zY2VuZUdyYXBoU2VydmljZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QodGhpcyl9fSx7a2V5OiJnZXRDbGllbnRSZWN0cyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm5bdGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKV19fSx7a2V5OiJjb21wdXRlZFN0eWxlTWFwIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBuZXcgTWFwKE9iamVjdC5lbnRyaWVzKHRoaXMuY29tcHV0ZWRTdHlsZSkpfX0se2tleToiZ2V0QXR0cmlidXRlTmFtZXMiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuYXR0cmlidXRlcyl9fSx7a2V5OiJnZXRBdHRyaWJ1dGUiLHZhbHVlOmZ1bmN0aW9uKHIpe2lmKHR5cGVvZiByIT0ic3ltYm9sIil7dmFyIGk9dGhpcy5hdHRyaWJ1dGVzW3JdO3JldHVybiBpfX19LHtrZXk6Imhhc0F0dHJpYnV0ZSIsdmFsdWU6ZnVuY3Rpb24ocil7cmV0dXJuIHRoaXMuZ2V0QXR0cmlidXRlTmFtZXMoKS5pbmNsdWRlcyhyKX19LHtrZXk6Imhhc0F0dHJpYnV0ZXMiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLmdldEF0dHJpYnV0ZU5hbWVzKCkubGVuZ3RofX0se2tleToicmVtb3ZlQXR0cmlidXRlIix2YWx1ZTpmdW5jdGlvbihyKXt0aGlzLnNldEF0dHJpYnV0ZShyLG51bGwpLGRlbGV0ZSB0aGlzLmF0dHJpYnV0ZXNbcl19fSx7a2V5OiJzZXRBdHRyaWJ1dGUiLHZhbHVlOmZ1bmN0aW9uKHIsaSxhLG8pe3RoaXMuYXR0cmlidXRlc1tyXT1pfX0se2tleToiZ2V0QXR0cmlidXRlTlMiLHZhbHVlOmZ1bmN0aW9uKHIsaSl7dGhyb3cgbmV3IEVycm9yKGtuKX19LHtrZXk6ImdldEF0dHJpYnV0ZU5vZGUiLHZhbHVlOmZ1bmN0aW9uKHIpe3Rocm93IG5ldyBFcnJvcihrbil9fSx7a2V5OiJnZXRBdHRyaWJ1dGVOb2RlTlMiLHZhbHVlOmZ1bmN0aW9uKHIsaSl7dGhyb3cgbmV3IEVycm9yKGtuKX19LHtrZXk6Imhhc0F0dHJpYnV0ZU5TIix2YWx1ZTpmdW5jdGlvbihyLGkpe3Rocm93IG5ldyBFcnJvcihrbil9fSx7a2V5OiJyZW1vdmVBdHRyaWJ1dGVOUyIsdmFsdWU6ZnVuY3Rpb24ocixpKXt0aHJvdyBuZXcgRXJyb3Ioa24pfX0se2tleToicmVtb3ZlQXR0cmlidXRlTm9kZSIsdmFsdWU6ZnVuY3Rpb24ocil7dGhyb3cgbmV3IEVycm9yKGtuKX19LHtrZXk6InNldEF0dHJpYnV0ZU5TIix2YWx1ZTpmdW5jdGlvbihyLGksYSl7dGhyb3cgbmV3IEVycm9yKGtuKX19LHtrZXk6InNldEF0dHJpYnV0ZU5vZGUiLHZhbHVlOmZ1bmN0aW9uKHIpe3Rocm93IG5ldyBFcnJvcihrbil9fSx7a2V5OiJzZXRBdHRyaWJ1dGVOb2RlTlMiLHZhbHVlOmZ1bmN0aW9uKHIpe3Rocm93IG5ldyBFcnJvcihrbil9fSx7a2V5OiJ0b2dnbGVBdHRyaWJ1dGUiLHZhbHVlOmZ1bmN0aW9uKHIsaSl7dGhyb3cgbmV3IEVycm9yKGtuKX19XSl9KGZyKTtmdW5jdGlvbiB4bih0KXtyZXR1cm4hISh0IT1udWxsJiZ0Lm5vZGVOYW1lKX12YXIgRTg9Q3QuZ2xvYmFsVGhpcy5Qcm94eT9DdC5nbG9iYWxUaGlzLlByb3h5OmZ1bmN0aW9uKCl7fSxscz1uZXcgaG8oJGUuQVRUUl9NT0RJRklFRCxudWxsLG51bGwsbnVsbCxudWxsLGhvLk1PRElGSUNBVElPTixudWxsLG51bGwpLHlwPW1lKCksTTg9amUoKSxvcj1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKG4pe3ZhciByO3JldHVybigwLHh0LlopKHRoaXMsZSkscj0oMCxEZS5aKSh0aGlzLGUpLHIuaXNDdXN0b21FbGVtZW50PSExLHIuaXNNdXRhdGlvbk9ic2VydmVkPSExLHIuYWN0aXZlQW5pbWF0aW9ucz1bXSxyLmNvbmZpZz1uLHIuaWQ9bi5pZHx8IiIsci5uYW1lPW4ubmFtZXx8IiIsKG4uY2xhc3NOYW1lfHxuLmNsYXNzKSYmKHIuY2xhc3NOYW1lPW4uY2xhc3NOYW1lfHxuLmNsYXNzKSxyLm5vZGVOYW1lPW4udHlwZXx8ZHQuR1JPVVAsbi5pbml0aWFsUGFyc2VkU3R5bGUmJk9iamVjdC5hc3NpZ24oci5wYXJzZWRTdHlsZSxuLmluaXRpYWxQYXJzZWRTdHlsZSksci5pbml0QXR0cmlidXRlcyhuLnN0eWxlKSxDdC5lbmFibGVTdHlsZVN5bnRheCYmKHIuc3R5bGU9bmV3IEU4KHtzZXRQcm9wZXJ0eTpmdW5jdGlvbihhLG8pe3Iuc2V0QXR0cmlidXRlKGEsbyl9LGdldFByb3BlcnR5VmFsdWU6ZnVuY3Rpb24oYSl7cmV0dXJuIHIuZ2V0QXR0cmlidXRlKGEpfSxyZW1vdmVQcm9wZXJ0eTpmdW5jdGlvbihhKXtyLnJlbW92ZUF0dHJpYnV0ZShhKX0saXRlbTpmdW5jdGlvbigpe3JldHVybiIifX0se2dldDpmdW5jdGlvbihhLG8pe3JldHVybiBhW29dIT09dm9pZCAwP2Fbb106ci5nZXRBdHRyaWJ1dGUobyl9LHNldDpmdW5jdGlvbihhLG8scyl7cmV0dXJuIHIuc2V0QXR0cmlidXRlKG8scyksITB9fSkpLHJ9cmV0dXJuKDAsTWUuWikoZSx0KSwoMCxPdC5aKShlLFt7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe0NoKGUsImRlc3Ryb3kiLHRoaXMsMykoW10pLHRoaXMuZ2V0QW5pbWF0aW9ucygpLmZvckVhY2goZnVuY3Rpb24ocil7ci5jYW5jZWwoKX0pfX0se2tleToiY2xvbmVOb2RlIix2YWx1ZTpmdW5jdGlvbihyLGkpe3ZhciBhPSgwLEVlLlopKHt9LHRoaXMuYXR0cmlidXRlcyk7Zm9yKHZhciBvIGluIGEpe3ZhciBzPWFbb107eG4ocykmJm8hPT0iY2xpcFBhdGgiJiZvIT09Im9mZnNldFBhdGgiJiZvIT09InRleHRQYXRoIiYmKGFbb109cy5jbG9uZU5vZGUocikpLGkmJihhW29dPWkobyxzKSl9dmFyIGM9bmV3IHRoaXMuY29uc3RydWN0b3IoKDAsRWUuWikoKDAsRWUuWikoe30sdGhpcy5jb25maWcpLHt9LHtzdHlsZTphfSkpO3JldHVybiBjLnNldExvY2FsVHJhbnNmb3JtKHRoaXMuZ2V0TG9jYWxUcmFuc2Zvcm0oKSksciYmdGhpcy5jaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uKGwpe2lmKCFsLnN0eWxlLmlzTWFya2VyKXt2YXIgdT1sLmNsb25lTm9kZShyKTtjLmFwcGVuZENoaWxkKHUpfX0pLGN9fSx7a2V5OiJpbml0QXR0cmlidXRlcyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXZvaWQgMD9hcmd1bWVudHNbMF06e30saT17Zm9yY2VVcGRhdGVHZW9tZXRyeTohMH07Q3Quc3R5bGVWYWx1ZVJlZ2lzdHJ5LnByb2Nlc3NQcm9wZXJ0aWVzKHRoaXMscixpKSx0aGlzLnJlbmRlcmFibGUuZGlydHk9ITB9fSx7a2V5OiJzZXRBdHRyaWJ1dGUiLHZhbHVlOmZ1bmN0aW9uKHIsaSl7dmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yJiZhcmd1bWVudHNbMl0hPT12b2lkIDA/YXJndW1lbnRzWzJdOiExLG89YXJndW1lbnRzLmxlbmd0aD4zJiZhcmd1bWVudHNbM10hPT12b2lkIDA/YXJndW1lbnRzWzNdOiEwO0VuKGkpfHwoYXx8aSE9PXRoaXMuYXR0cmlidXRlc1tyXSkmJih0aGlzLmludGVybmFsU2V0QXR0cmlidXRlKHIsaSx7bWVtb2l6ZTpvfSksQ2goZSwic2V0QXR0cmlidXRlIix0aGlzLDMpKFtyLGldKSl9fSx7a2V5OiJpbnRlcm5hbFNldEF0dHJpYnV0ZSIsdmFsdWU6ZnVuY3Rpb24ocixpKXt2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjImJmFyZ3VtZW50c1syXSE9PXZvaWQgMD9hcmd1bWVudHNbMl06e30sbz10aGlzLnJlbmRlcmFibGUscz10aGlzLmF0dHJpYnV0ZXNbcl0sYz10aGlzLnBhcnNlZFN0eWxlW3JdO0N0LnN0eWxlVmFsdWVSZWdpc3RyeS5wcm9jZXNzUHJvcGVydGllcyh0aGlzLCgwLEt0LlopKHt9LHIsaSksYSksby5kaXJ0eT0hMDt2YXIgbD10aGlzLnBhcnNlZFN0eWxlW3JdO2lmKHRoaXMuaXNDb25uZWN0ZWQmJihscy5yZWxhdGVkTm9kZT10aGlzLGxzLnByZXZWYWx1ZT1zLGxzLm5ld1ZhbHVlPWksbHMuYXR0ck5hbWU9cixscy5wcmV2UGFyc2VkVmFsdWU9Yyxscy5uZXdQYXJzZWRWYWx1ZT1sLHRoaXMuaXNNdXRhdGlvbk9ic2VydmVkP3RoaXMuZGlzcGF0Y2hFdmVudChscyk6KGxzLnRhcmdldD10aGlzLHRoaXMub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldy5kaXNwYXRjaEV2ZW50KGxzLCEwKSkpLHRoaXMuaXNDdXN0b21FbGVtZW50JiZ0aGlzLmlzQ29ubmVjdGVkfHwhdGhpcy5pc0N1c3RvbUVsZW1lbnQpe3ZhciB1LGY7KHU9KGY9dGhpcykuYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKT09PW51bGx8fHU9PT12b2lkIDB8fHUuY2FsbChmLHIscyxpLGMsbCl9fX0se2tleToiZ2V0QkJveCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgcj10aGlzLmdldEJvdW5kcygpLGk9ci5nZXRNaW4oKSxhPSgwLFRlLlopKGksMiksbz1hWzBdLHM9YVsxXSxjPXIuZ2V0TWF4KCksbD0oMCxUZS5aKShjLDIpLHU9bFswXSxmPWxbMV07cmV0dXJuIG5ldyBGbyhvLHMsdS1vLGYtcyl9fSx7a2V5OiJzZXRPcmlnaW4iLHZhbHVlOmZ1bmN0aW9uKHIpe3ZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTowLGE9YXJndW1lbnRzLmxlbmd0aD4yJiZhcmd1bWVudHNbMl0hPT12b2lkIDA/YXJndW1lbnRzWzJdOjA7cmV0dXJuIEN0LnNjZW5lR3JhcGhTZXJ2aWNlLnNldE9yaWdpbih0aGlzLFBpKHIsaSxhLCExKSksdGhpc319LHtrZXk6ImdldE9yaWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gQ3Quc2NlbmVHcmFwaFNlcnZpY2UuZ2V0T3JpZ2luKHRoaXMpfX0se2tleToic2V0UG9zaXRpb24iLHZhbHVlOmZ1bmN0aW9uKHIpe3ZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTowLGE9YXJndW1lbnRzLmxlbmd0aD4yJiZhcmd1bWVudHNbMl0hPT12b2lkIDA/YXJndW1lbnRzWzJdOjA7cmV0dXJuIEN0LnNjZW5lR3JhcGhTZXJ2aWNlLnNldFBvc2l0aW9uKHRoaXMsUGkocixpLGEsITEpKSx0aGlzfX0se2tleToic2V0TG9jYWxQb3NpdGlvbiIsdmFsdWU6ZnVuY3Rpb24ocil7dmFyIGk9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOjAsYT1hcmd1bWVudHMubGVuZ3RoPjImJmFyZ3VtZW50c1syXSE9PXZvaWQgMD9hcmd1bWVudHNbMl06MDtyZXR1cm4gQ3Quc2NlbmVHcmFwaFNlcnZpY2Uuc2V0TG9jYWxQb3NpdGlvbih0aGlzLFBpKHIsaSxhLCExKSksdGhpc319LHtrZXk6InRyYW5zbGF0ZSIsdmFsdWU6ZnVuY3Rpb24ocil7dmFyIGk9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOjAsYT1hcmd1bWVudHMubGVuZ3RoPjImJmFyZ3VtZW50c1syXSE9PXZvaWQgMD9hcmd1bWVudHNbMl06MDtyZXR1cm4gQ3Quc2NlbmVHcmFwaFNlcnZpY2UudHJhbnNsYXRlKHRoaXMsUGkocixpLGEsITEpKSx0aGlzfX0se2tleToidHJhbnNsYXRlTG9jYWwiLHZhbHVlOmZ1bmN0aW9uKHIpe3ZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTowLGE9YXJndW1lbnRzLmxlbmd0aD4yJiZhcmd1bWVudHNbMl0hPT12b2lkIDA/YXJndW1lbnRzWzJdOjA7cmV0dXJuIEN0LnNjZW5lR3JhcGhTZXJ2aWNlLnRyYW5zbGF0ZUxvY2FsKHRoaXMsUGkocixpLGEsITEpKSx0aGlzfX0se2tleToiZ2V0UG9zaXRpb24iLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIEN0LnNjZW5lR3JhcGhTZXJ2aWNlLmdldFBvc2l0aW9uKHRoaXMpfX0se2tleToiZ2V0TG9jYWxQb3NpdGlvbiIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gQ3Quc2NlbmVHcmFwaFNlcnZpY2UuZ2V0TG9jYWxQb3NpdGlvbih0aGlzKX19LHtrZXk6InNjYWxlIix2YWx1ZTpmdW5jdGlvbihyLGksYSl7cmV0dXJuIHRoaXMuc2NhbGVMb2NhbChyLGksYSl9fSx7a2V5OiJzY2FsZUxvY2FsIix2YWx1ZTpmdW5jdGlvbihyLGksYSl7cmV0dXJuIHR5cGVvZiByPT0ibnVtYmVyIiYmKGk9aXx8cixhPWF8fHIscj1QaShyLGksYSwhMSkpLEN0LnNjZW5lR3JhcGhTZXJ2aWNlLnNjYWxlTG9jYWwodGhpcyxyKSx0aGlzfX0se2tleToic2V0TG9jYWxTY2FsZSIsdmFsdWU6ZnVuY3Rpb24ocixpLGEpe3JldHVybiB0eXBlb2Ygcj09Im51bWJlciImJihpPWl8fHIsYT1hfHxyLHI9UGkocixpLGEsITEpKSxDdC5zY2VuZUdyYXBoU2VydmljZS5zZXRMb2NhbFNjYWxlKHRoaXMsciksdGhpc319LHtrZXk6ImdldExvY2FsU2NhbGUiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIEN0LnNjZW5lR3JhcGhTZXJ2aWNlLmdldExvY2FsU2NhbGUodGhpcyl9fSx7a2V5OiJnZXRTY2FsZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gQ3Quc2NlbmVHcmFwaFNlcnZpY2UuZ2V0U2NhbGUodGhpcyl9fSx7a2V5OiJnZXRFdWxlckFuZ2xlcyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgcj1NZih5cCxDdC5zY2VuZUdyYXBoU2VydmljZS5nZXRXb3JsZFRyYW5zZm9ybSh0aGlzKSksaT0oMCxUZS5aKShyLDMpLGE9aVsyXTtyZXR1cm4gU2EoYSl9fSx7a2V5OiJnZXRMb2NhbEV1bGVyQW5nbGVzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciByPU1mKHlwLEN0LnNjZW5lR3JhcGhTZXJ2aWNlLmdldExvY2FsUm90YXRpb24odGhpcykpLGk9KDAsVGUuWikociwzKSxhPWlbMl07cmV0dXJuIFNhKGEpfX0se2tleToic2V0RXVsZXJBbmdsZXMiLHZhbHVlOmZ1bmN0aW9uKHIpe3JldHVybiBDdC5zY2VuZUdyYXBoU2VydmljZS5zZXRFdWxlckFuZ2xlcyh0aGlzLDAsMCxyKSx0aGlzfX0se2tleToic2V0TG9jYWxFdWxlckFuZ2xlcyIsdmFsdWU6ZnVuY3Rpb24ocil7cmV0dXJuIEN0LnNjZW5lR3JhcGhTZXJ2aWNlLnNldExvY2FsRXVsZXJBbmdsZXModGhpcywwLDAsciksdGhpc319LHtrZXk6InJvdGF0ZUxvY2FsIix2YWx1ZTpmdW5jdGlvbihyLGksYSl7cmV0dXJuIGdlKGkpJiZnZShhKT9DdC5zY2VuZUdyYXBoU2VydmljZS5yb3RhdGVMb2NhbCh0aGlzLDAsMCxyKTpDdC5zY2VuZUdyYXBoU2VydmljZS5yb3RhdGVMb2NhbCh0aGlzLHIsaSxhKSx0aGlzfX0se2tleToicm90YXRlIix2YWx1ZTpmdW5jdGlvbihyLGksYSl7cmV0dXJuIGdlKGkpJiZnZShhKT9DdC5zY2VuZUdyYXBoU2VydmljZS5yb3RhdGUodGhpcywwLDAscik6Q3Quc2NlbmVHcmFwaFNlcnZpY2Uucm90YXRlKHRoaXMscixpLGEpLHRoaXN9fSx7a2V5OiJzZXRSb3RhdGlvbiIsdmFsdWU6ZnVuY3Rpb24ocixpLGEsbyl7cmV0dXJuIEN0LnNjZW5lR3JhcGhTZXJ2aWNlLnNldFJvdGF0aW9uKHRoaXMscixpLGEsbyksdGhpc319LHtrZXk6InNldExvY2FsUm90YXRpb24iLHZhbHVlOmZ1bmN0aW9uKHIsaSxhLG8pe3JldHVybiBDdC5zY2VuZUdyYXBoU2VydmljZS5zZXRMb2NhbFJvdGF0aW9uKHRoaXMscixpLGEsbyksdGhpc319LHtrZXk6InNldExvY2FsU2tldyIsdmFsdWU6ZnVuY3Rpb24ocixpKXtyZXR1cm4gQ3Quc2NlbmVHcmFwaFNlcnZpY2Uuc2V0TG9jYWxTa2V3KHRoaXMscixpKSx0aGlzfX0se2tleToiZ2V0Um90YXRpb24iLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIEN0LnNjZW5lR3JhcGhTZXJ2aWNlLmdldFJvdGF0aW9uKHRoaXMpfX0se2tleToiZ2V0TG9jYWxSb3RhdGlvbiIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gQ3Quc2NlbmVHcmFwaFNlcnZpY2UuZ2V0TG9jYWxSb3RhdGlvbih0aGlzKX19LHtrZXk6ImdldExvY2FsU2tldyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gQ3Quc2NlbmVHcmFwaFNlcnZpY2UuZ2V0TG9jYWxTa2V3KHRoaXMpfX0se2tleToiZ2V0TG9jYWxUcmFuc2Zvcm0iLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIEN0LnNjZW5lR3JhcGhTZXJ2aWNlLmdldExvY2FsVHJhbnNmb3JtKHRoaXMpfX0se2tleToiZ2V0V29ybGRUcmFuc2Zvcm0iLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIEN0LnNjZW5lR3JhcGhTZXJ2aWNlLmdldFdvcmxkVHJhbnNmb3JtKHRoaXMpfX0se2tleToic2V0TG9jYWxUcmFuc2Zvcm0iLHZhbHVlOmZ1bmN0aW9uKHIpe3JldHVybiBDdC5zY2VuZUdyYXBoU2VydmljZS5zZXRMb2NhbFRyYW5zZm9ybSh0aGlzLHIpLHRoaXN9fSx7a2V5OiJyZXNldExvY2FsVHJhbnNmb3JtIix2YWx1ZTpmdW5jdGlvbigpe0N0LnNjZW5lR3JhcGhTZXJ2aWNlLnJlc2V0TG9jYWxUcmFuc2Zvcm0odGhpcyl9fSx7a2V5OiJnZXRBbmltYXRpb25zIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmFjdGl2ZUFuaW1hdGlvbnN9fSx7a2V5OiJhbmltYXRlIix2YWx1ZTpmdW5jdGlvbihyLGkpe3ZhciBhLG89KGE9dGhpcy5vd25lckRvY3VtZW50KT09PW51bGx8fGE9PT12b2lkIDA/dm9pZCAwOmEudGltZWxpbmU7cmV0dXJuIG8/by5wbGF5KHRoaXMscixpKTpudWxsfX0se2tleToiaXNWaXNpYmxlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciByO3JldHVybigocj10aGlzLnBhcnNlZFN0eWxlKT09PW51bGx8fHI9PT12b2lkIDA/dm9pZCAwOnIudmlzaWJpbGl0eSkhPT0iaGlkZGVuIn19LHtrZXk6ImludGVyYWN0aXZlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc0ludGVyYWN0aXZlKCl9LHNldDpmdW5jdGlvbihyKXt0aGlzLnN0eWxlLnBvaW50ZXJFdmVudHM9cj8iYXV0byI6Im5vbmUifX0se2tleToiaXNJbnRlcmFjdGl2ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgcjtyZXR1cm4oKHI9dGhpcy5wYXJzZWRTdHlsZSk9PT1udWxsfHxyPT09dm9pZCAwP3ZvaWQgMDpyLnBvaW50ZXJFdmVudHMpIT09Im5vbmUifX0se2tleToiaXNDdWxsZWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuISEodGhpcy5jdWxsYWJsZSYmdGhpcy5jdWxsYWJsZS5lbmFibGUmJiF0aGlzLmN1bGxhYmxlLnZpc2libGUpfX0se2tleToidG9Gcm9udCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wYXJlbnROb2RlJiYodGhpcy5zdHlsZS56SW5kZXg9TWF0aC5tYXguYXBwbHkoTWF0aCwoMCxsbi5aKSh0aGlzLnBhcmVudE5vZGUuY2hpbGRyZW4ubWFwKGZ1bmN0aW9uKHIpe3JldHVybiBOdW1iZXIoci5zdHlsZS56SW5kZXgpfSkpKSsxKSx0aGlzfX0se2tleToidG9CYWNrIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBhcmVudE5vZGUmJih0aGlzLnN0eWxlLnpJbmRleD1NYXRoLm1pbi5hcHBseShNYXRoLCgwLGxuLlopKHRoaXMucGFyZW50Tm9kZS5jaGlsZHJlbi5tYXAoZnVuY3Rpb24ocil7cmV0dXJuIE51bWJlcihyLnN0eWxlLnpJbmRleCl9KSkpLTEpLHRoaXN9fSx7a2V5OiJnZXRDb25maWciLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29uZmlnfX0se2tleToiYXR0ciIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFyIHI9dGhpcyxpPWFyZ3VtZW50cy5sZW5ndGgsYT1uZXcgQXJyYXkoaSksbz0wO288aTtvKyspYVtvXT1hcmd1bWVudHNbb107dmFyIHM9YVswXSxjPWFbMV07cmV0dXJuIHM/emwocyk/KE9iamVjdC5rZXlzKHMpLmZvckVhY2goZnVuY3Rpb24obCl7ci5zZXRBdHRyaWJ1dGUobCxzW2xdKX0pLHRoaXMpOmEubGVuZ3RoPT09Mj8odGhpcy5zZXRBdHRyaWJ1dGUocyxjKSx0aGlzKTp0aGlzLmF0dHJpYnV0ZXNbc106dGhpcy5hdHRyaWJ1dGVzfX0se2tleToiZ2V0TWF0cml4Iix2YWx1ZTpmdW5jdGlvbihyKXt2YXIgaT1yfHx0aGlzLmdldFdvcmxkVHJhbnNmb3JtKCksYT0kbih5cCxpKSxvPSgwLFRlLlopKGEsMikscz1vWzBdLGM9b1sxXSxsPWZhKHlwLGkpLHU9KDAsVGUuWikobCwyKSxmPXVbMF0sZD11WzFdLGg9UGMoTTgsaSksdj1NZih5cCxoKSxnPSgwLFRlLlopKHYsMykseT1nWzBdLGI9Z1syXTtyZXR1cm4geWcoeXx8YixzLGMsZixkKX19LHtrZXk6ImdldExvY2FsTWF0cml4Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldE1hdHJpeCh0aGlzLmdldExvY2FsVHJhbnNmb3JtKCkpfX0se2tleToic2V0TWF0cml4Iix2YWx1ZTpmdW5jdGlvbihyKXt2YXIgaT1tZyhyKSxhPSgwLFRlLlopKGksNSksbz1hWzBdLHM9YVsxXSxjPWFbMl0sbD1hWzNdLHU9YVs0XTt0aGlzLnNldEV1bGVyQW5nbGVzKHUpLnNldFBvc2l0aW9uKG8scykuc2V0TG9jYWxTY2FsZShjLGwpfX0se2tleToic2V0TG9jYWxNYXRyaXgiLHZhbHVlOmZ1bmN0aW9uKHIpe3ZhciBpPW1nKHIpLGE9KDAsVGUuWikoaSw1KSxvPWFbMF0scz1hWzFdLGM9YVsyXSxsPWFbM10sdT1hWzRdO3RoaXMuc2V0TG9jYWxFdWxlckFuZ2xlcyh1KS5zZXRMb2NhbFBvc2l0aW9uKG8scykuc2V0TG9jYWxTY2FsZShjLGwpfX0se2tleToic2hvdyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmZvckVhY2goZnVuY3Rpb24ocil7ci5zdHlsZS52aXNpYmlsaXR5PSJ2aXNpYmxlIn0pfX0se2tleToiaGlkZSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmZvckVhY2goZnVuY3Rpb24ocil7ci5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4ifSl9fSx7a2V5OiJnZXRDb3VudCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jaGlsZEVsZW1lbnRDb3VudH19LHtrZXk6ImdldFBhcmVudCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wYXJlbnRFbGVtZW50fX0se2tleToiZ2V0Q2hpbGRyZW4iLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2hpbGRyZW59fSx7a2V5OiJnZXRGaXJzdCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maXJzdEVsZW1lbnRDaGlsZH19LHtrZXk6ImdldExhc3QiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGFzdEVsZW1lbnRDaGlsZH19LHtrZXk6ImdldENoaWxkQnlJbmRleCIsdmFsdWU6ZnVuY3Rpb24ocil7cmV0dXJuIHRoaXMuY2hpbGRyZW5bcl18fG51bGx9fSx7a2V5OiJhZGQiLHZhbHVlOmZ1bmN0aW9uKHIsaSl7cmV0dXJuIHRoaXMuYXBwZW5kQ2hpbGQocixpKX19LHtrZXk6InNldCIsdmFsdWU6ZnVuY3Rpb24ocixpKXt0aGlzLmNvbmZpZ1tyXT1pfX0se2tleToiZ2V0Iix2YWx1ZTpmdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5jb25maWdbcl19fSx7a2V5OiJtb3ZlVG8iLHZhbHVlOmZ1bmN0aW9uKHIpe3ZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTowLGE9YXJndW1lbnRzLmxlbmd0aD4yJiZhcmd1bWVudHNbMl0hPT12b2lkIDA/YXJndW1lbnRzWzJdOjA7cmV0dXJuIHRoaXMuc2V0UG9zaXRpb24ocixpLGEpLHRoaXN9fSx7a2V5OiJtb3ZlIix2YWx1ZTpmdW5jdGlvbihyKXt2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06MCxhPWFyZ3VtZW50cy5sZW5ndGg+MiYmYXJndW1lbnRzWzJdIT09dm9pZCAwP2FyZ3VtZW50c1syXTowO3JldHVybiB0aGlzLnNldFBvc2l0aW9uKHIsaSxhKSx0aGlzfX0se2tleToic2V0WkluZGV4Iix2YWx1ZTpmdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5zdHlsZS56SW5kZXg9cix0aGlzfX1dKX0oUzgpO29yLlBBUlNFRF9TVFlMRV9MSVNUPW5ldyBTZXQoWyJjbGFzcyIsImNsYXNzTmFtZSIsImNsaXBQYXRoIiwiY3Vyc29yIiwiZGlzcGxheSIsImRyYWdnYWJsZSIsImRyb3BwYWJsZSIsImZpbGwiLCJmaWxsT3BhY2l0eSIsImZpbGxSdWxlIiwiZmlsdGVyIiwiaW5jcmVhc2VkTGluZVdpZHRoRm9ySGl0VGVzdGluZyIsImxpbmVDYXAiLCJsaW5lRGFzaCIsImxpbmVEYXNoT2Zmc2V0IiwibGluZUpvaW4iLCJsaW5lV2lkdGgiLCJtaXRlckxpbWl0IiwiaGl0QXJlYSIsIm9mZnNldERpc3RhbmNlIiwib2Zmc2V0UGF0aCIsIm9mZnNldFgiLCJvZmZzZXRZIiwib3BhY2l0eSIsInBvaW50ZXJFdmVudHMiLCJzaGFkb3dDb2xvciIsInNoYWRvd1R5cGUiLCJzaGFkb3dCbHVyIiwic2hhZG93T2Zmc2V0WCIsInNoYWRvd09mZnNldFkiLCJzdHJva2UiLCJzdHJva2VPcGFjaXR5Iiwic3Ryb2tlV2lkdGgiLCJzdHJva2VMaW5lY2FwIiwic3Ryb2tlTGluZUpvaW4iLCJzdHJva2VEYXNoYXJyYXkiLCJzdHJva2VEYXNob2Zmc2V0IiwidHJhbnNmb3JtIiwidHJhbnNmb3JtT3JpZ2luIiwidGV4dFRyYW5zZm9ybSIsInZpc2liaWxpdHkiLCJ6SW5kZXgiXSk7dmFyIHRjPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt2YXIgbj1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXZvaWQgMD9hcmd1bWVudHNbMF06e307cmV0dXJuKDAseHQuWikodGhpcyxlKSwoMCxEZS5aKSh0aGlzLGUsWygwLEVlLlopKHt0eXBlOmR0LkNJUkNMRX0sbildKX1yZXR1cm4oMCxNZS5aKShlLHQpLCgwLE90LlopKGUpfShvcik7dGMuUEFSU0VEX1NUWUxFX0xJU1Q9bmV3IFNldChbXS5jb25jYXQoKDAsbG4uWikob3IuUEFSU0VEX1NUWUxFX0xJU1QpLFsiY3giLCJjeSIsImN6IiwiciIsImlzQmlsbGJvYXJkIiwiaXNTaXplQXR0ZW51YXRpb24iXSkpO3ZhciBrOD1bInN0eWxlIl0sbXA9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBuLHI9YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT12b2lkIDA/YXJndW1lbnRzWzBdOnt9LGk9ci5zdHlsZSxhPSgwLGpvLlopKHIsazgpO3JldHVybigwLHh0LlopKHRoaXMsZSksbj0oMCxEZS5aKSh0aGlzLGUsWygwLEVlLlopKHtzdHlsZTppfSxhKV0pLG4uaXNDdXN0b21FbGVtZW50PSEwLG59cmV0dXJuKDAsTWUuWikoZSx0KSwoMCxPdC5aKShlKX0ob3IpO21wLlBBUlNFRF9TVFlMRV9MSVNUPW5ldyBTZXQoWyJjbGFzcyIsImNsYXNzTmFtZSIsImNsaXBQYXRoIiwiY3Vyc29yIiwiZHJhZ2dhYmxlIiwiZHJvcHBhYmxlIiwib3BhY2l0eSIsInBvaW50ZXJFdmVudHMiLCJ0cmFuc2Zvcm0iLCJ0cmFuc2Zvcm1PcmlnaW4iLCJ6SW5kZXgiLCJ2aXNpYmlsaXR5Il0pO3ZhciBPeT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dmFyIG49YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT12b2lkIDA/YXJndW1lbnRzWzBdOnt9O3JldHVybigwLHh0LlopKHRoaXMsZSksKDAsRGUuWikodGhpcyxlLFsoMCxFZS5aKSh7dHlwZTpkdC5FTExJUFNFfSxuKV0pfXJldHVybigwLE1lLlopKGUsdCksKDAsT3QuWikoZSl9KG9yKTtPeS5QQVJTRURfU1RZTEVfTElTVD1uZXcgU2V0KFtdLmNvbmNhdCgoMCxsbi5aKShvci5QQVJTRURfU1RZTEVfTElTVCksWyJjeCIsImN5IiwiY3oiLCJyeCIsInJ5IiwiaXNCaWxsYm9hcmQiLCJpc1NpemVBdHRlbnVhdGlvbiJdKSk7dmFyIEE4PWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4oMCx4dC5aKSh0aGlzLGUpLCgwLERlLlopKHRoaXMsZSxbe3R5cGU6ZHQuRlJBR01FTlR9XSl9cmV0dXJuKDAsTWUuWikoZSx0KSwoMCxPdC5aKShlKX0ob3IpO0E4LlBBUlNFRF9TVFlMRV9MSVNUPW5ldyBTZXQoWyJjbGFzcyIsImNsYXNzTmFtZSJdKTt2YXIgdWk9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBuPWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dm9pZCAwP2FyZ3VtZW50c1swXTp7fTtyZXR1cm4oMCx4dC5aKSh0aGlzLGUpLCgwLERlLlopKHRoaXMsZSxbKDAsRWUuWikoe3R5cGU6ZHQuR1JPVVB9LG4pXSl9cmV0dXJuKDAsTWUuWikoZSx0KSwoMCxPdC5aKShlKX0ob3IpO3VpLlBBUlNFRF9TVFlMRV9MSVNUPW5ldyBTZXQoWyJjbGFzcyIsImNsYXNzTmFtZSIsImNsaXBQYXRoIiwiY3Vyc29yIiwiZHJhZ2dhYmxlIiwiZHJvcHBhYmxlIiwib3BhY2l0eSIsInBvaW50ZXJFdmVudHMiLCJ0cmFuc2Zvcm0iLCJ0cmFuc2Zvcm1PcmlnaW4iLCJ6SW5kZXgiLCJ2aXNpYmlsaXR5Il0pO3ZhciBUOD1bInN0eWxlIl0sYnA9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBuLHI9YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT12b2lkIDA/YXJndW1lbnRzWzBdOnt9LGk9ci5zdHlsZSxhPSgwLGpvLlopKHIsVDgpO3JldHVybigwLHh0LlopKHRoaXMsZSksbj0oMCxEZS5aKSh0aGlzLGUsWygwLEVlLlopKHt0eXBlOmR0LkhUTUwsc3R5bGU6aX0sYSldKSxuLmN1bGxhYmxlLmVuYWJsZT0hMSxufXJldHVybigwLE1lLlopKGUsdCksKDAsT3QuWikoZSxbe2tleToiZ2V0RG9tRWxlbWVudCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wYXJzZWRTdHlsZS4kZWx9fSx7a2V5OiJnZXRDbGllbnRSZWN0cyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm5bdGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKV19fSx7a2V5OiJnZXRMb2NhbEJvdW5kcyIsdmFsdWU6ZnVuY3Rpb24oKXtpZih0aGlzLnBhcmVudE5vZGUpe3ZhciByPSRpKFduKCksdGhpcy5wYXJlbnROb2RlLmdldFdvcmxkVHJhbnNmb3JtKCkpLGk9dGhpcy5nZXRCb3VuZHMoKTtpZigheHIuaXNFbXB0eShpKSl7dmFyIGE9bmV3IHhyO3JldHVybiBhLnNldEZyb21UcmFuc2Zvcm1lZEFBQkIoaSxyKSxhfX1yZXR1cm4gdGhpcy5nZXRCb3VuZHMoKX19XSl9KG9yKTticC5QQVJTRURfU1RZTEVfTElTVD1uZXcgU2V0KFtdLmNvbmNhdCgoMCxsbi5aKShvci5QQVJTRURfU1RZTEVfTElTVCksWyJ4IiwieSIsIiRlbCIsImlubmVySFRNTCIsIndpZHRoIiwiaGVpZ2h0Il0pKTt2YXIgU3k9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBuPWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dm9pZCAwP2FyZ3VtZW50c1swXTp7fTtyZXR1cm4oMCx4dC5aKSh0aGlzLGUpLCgwLERlLlopKHRoaXMsZSxbKDAsRWUuWikoe3R5cGU6ZHQuSU1BR0V9LG4pXSl9cmV0dXJuKDAsTWUuWikoZSx0KSwoMCxPdC5aKShlKX0ob3IpO1N5LlBBUlNFRF9TVFlMRV9MSVNUPW5ldyBTZXQoW10uY29uY2F0KCgwLGxuLlopKG9yLlBBUlNFRF9TVFlMRV9MSVNUKSxbIngiLCJ5IiwieiIsInNyYyIsIndpZHRoIiwiaGVpZ2h0IiwiaXNCaWxsYm9hcmQiLCJiaWxsYm9hcmRSb3RhdGlvbiIsImlzU2l6ZUF0dGVudWF0aW9uIiwia2VlcEFzcGVjdFJhdGlvIl0pKTt2YXIgUDg9WyJzdHlsZSJdLHN1PWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt2YXIgbixyPWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dm9pZCAwP2FyZ3VtZW50c1swXTp7fSxpPXIuc3R5bGUsYT0oMCxqby5aKShyLFA4KTsoMCx4dC5aKSh0aGlzLGUpLG49KDAsRGUuWikodGhpcyxlLFsoMCxFZS5aKSh7dHlwZTpkdC5MSU5FLHN0eWxlOigwLEVlLlopKHt4MTowLHkxOjAseDI6MCx5MjowLHoxOjAsejI6MH0saSl9LGEpXSksbi5tYXJrZXJTdGFydEFuZ2xlPTAsbi5tYXJrZXJFbmRBbmdsZT0wO3ZhciBvPW4ucGFyc2VkU3R5bGUscz1vLm1hcmtlclN0YXJ0LGM9by5tYXJrZXJFbmQ7cmV0dXJuIHMmJnhuKHMpJiYobi5tYXJrZXJTdGFydEFuZ2xlPXMuZ2V0TG9jYWxFdWxlckFuZ2xlcygpLG4uYXBwZW5kQ2hpbGQocykpLGMmJnhuKGMpJiYobi5tYXJrZXJFbmRBbmdsZT1jLmdldExvY2FsRXVsZXJBbmdsZXMoKSxuLmFwcGVuZENoaWxkKGMpKSxuLnRyYW5zZm9ybU1hcmtlcighMCksbi50cmFuc2Zvcm1NYXJrZXIoITEpLG59cmV0dXJuKDAsTWUuWikoZSx0KSwoMCxPdC5aKShlLFt7a2V5OiJhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2siLHZhbHVlOmZ1bmN0aW9uKHIsaSxhLG8scyl7cj09PSJ4MSJ8fHI9PT0ieTEifHxyPT09IngyInx8cj09PSJ5MiJ8fHI9PT0ibWFya2VyU3RhcnRPZmZzZXQifHxyPT09Im1hcmtlckVuZE9mZnNldCI/KHRoaXMudHJhbnNmb3JtTWFya2VyKCEwKSx0aGlzLnRyYW5zZm9ybU1hcmtlcighMSkpOnI9PT0ibWFya2VyU3RhcnQiPyhvJiZ4bihvKSYmKHRoaXMubWFya2VyU3RhcnRBbmdsZT0wLG8ucmVtb3ZlKCkpLHMmJnhuKHMpJiYodGhpcy5tYXJrZXJTdGFydEFuZ2xlPXMuZ2V0TG9jYWxFdWxlckFuZ2xlcygpLHRoaXMuYXBwZW5kQ2hpbGQocyksdGhpcy50cmFuc2Zvcm1NYXJrZXIoITApKSk6cj09PSJtYXJrZXJFbmQiJiYobyYmeG4obykmJih0aGlzLm1hcmtlckVuZEFuZ2xlPTAsby5yZW1vdmUoKSkscyYmeG4ocykmJih0aGlzLm1hcmtlckVuZEFuZ2xlPXMuZ2V0TG9jYWxFdWxlckFuZ2xlcygpLHRoaXMuYXBwZW5kQ2hpbGQocyksdGhpcy50cmFuc2Zvcm1NYXJrZXIoITEpKSl9fSx7a2V5OiJ0cmFuc2Zvcm1NYXJrZXIiLHZhbHVlOmZ1bmN0aW9uKHIpe3ZhciBpPXRoaXMucGFyc2VkU3R5bGUsYT1pLm1hcmtlclN0YXJ0LG89aS5tYXJrZXJFbmQscz1pLm1hcmtlclN0YXJ0T2Zmc2V0LGM9aS5tYXJrZXJFbmRPZmZzZXQsbD1pLngxLHU9aS54MixmPWkueTEsZD1pLnkyLGg9cj9hOm87aWYoISghaHx8IXhuKGgpKSl7dmFyIHY9MCxnLHksYix4LF8sdztyPyhiPWwseD1mLGc9dS1sLHk9ZC1mLF89c3x8MCx3PXRoaXMubWFya2VyU3RhcnRBbmdsZSk6KGI9dSx4PWQsZz1sLXUseT1mLWQsXz1jfHwwLHc9dGhpcy5tYXJrZXJFbmRBbmdsZSksdj1NYXRoLmF0YW4yKHksZyksaC5zZXRMb2NhbEV1bGVyQW5nbGVzKHYqMTgwL01hdGguUEkrdyksaC5zZXRMb2NhbFBvc2l0aW9uKGIrTWF0aC5jb3ModikqXyx4K01hdGguc2luKHYpKl8pfX19LHtrZXk6ImdldFBvaW50Iix2YWx1ZTpmdW5jdGlvbihyKXt2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06ITEsYT10aGlzLnBhcnNlZFN0eWxlLG89YS54MSxzPWEueTEsYz1hLngyLGw9YS55Mix1PU9hKG8scyxjLGwsciksZj11LngsZD11LnksaD1lcihtZSgpLHNuKGYsZCwwKSxpP3RoaXMuZ2V0V29ybGRUcmFuc2Zvcm0oKTp0aGlzLmdldExvY2FsVHJhbnNmb3JtKCkpO3JldHVybiBuZXcgaWkoaFswXSxoWzFdKX19LHtrZXk6ImdldFBvaW50QXRMZW5ndGgiLHZhbHVlOmZ1bmN0aW9uKHIpe3ZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTohMTtyZXR1cm4gdGhpcy5nZXRQb2ludChyL3RoaXMuZ2V0VG90YWxMZW5ndGgoKSxpKX19LHtrZXk6ImdldFRvdGFsTGVuZ3RoIix2YWx1ZTpmdW5jdGlvbigpe3ZhciByPXRoaXMucGFyc2VkU3R5bGUsaT1yLngxLGE9ci55MSxvPXIueDIscz1yLnkyO3JldHVybiBXbChpLGEsbyxzKX19XSl9KG9yKTtzdS5QQVJTRURfU1RZTEVfTElTVD1uZXcgU2V0KFtdLmNvbmNhdCgoMCxsbi5aKShvci5QQVJTRURfU1RZTEVfTElTVCksWyJ4MSIsInkxIiwieDIiLCJ5MiIsInoxIiwiejIiLCJpc0JpbGxib2FyZCIsImlzU2l6ZUF0dGVudWF0aW9uIiwibWFya2VyU3RhcnQiLCJtYXJrZXJFbmQiLCJtYXJrZXJTdGFydE9mZnNldCIsIm1hcmtlckVuZE9mZnNldCJdKSk7dmFyIEM4PVsic3R5bGUiXSxRaT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dmFyIG4scj1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXZvaWQgMD9hcmd1bWVudHNbMF06e30saT1yLnN0eWxlLGE9KDAsam8uWikocixDOCk7KDAseHQuWikodGhpcyxlKSxuPSgwLERlLlopKHRoaXMsZSxbKDAsRWUuWikoe3R5cGU6ZHQuUEFUSCxzdHlsZTppLGluaXRpYWxQYXJzZWRTdHlsZTp7bWl0ZXJMaW1pdDo0LGQ6KDAsRWUuWikoe30sQWYpfX0sYSldKSxuLm1hcmtlclN0YXJ0QW5nbGU9MCxuLm1hcmtlckVuZEFuZ2xlPTAsbi5tYXJrZXJNaWRMaXN0PVtdO3ZhciBvPW4ucGFyc2VkU3R5bGUscz1vLm1hcmtlclN0YXJ0LGM9by5tYXJrZXJFbmQsbD1vLm1hcmtlck1pZDtyZXR1cm4gcyYmeG4ocykmJihuLm1hcmtlclN0YXJ0QW5nbGU9cy5nZXRMb2NhbEV1bGVyQW5nbGVzKCksbi5hcHBlbmRDaGlsZChzKSksbCYmeG4obCkmJm4ucGxhY2VNYXJrZXJNaWQobCksYyYmeG4oYykmJihuLm1hcmtlckVuZEFuZ2xlPWMuZ2V0TG9jYWxFdWxlckFuZ2xlcygpLG4uYXBwZW5kQ2hpbGQoYykpLG4udHJhbnNmb3JtTWFya2VyKCEwKSxuLnRyYW5zZm9ybU1hcmtlcighMSksbn1yZXR1cm4oMCxNZS5aKShlLHQpLCgwLE90LlopKGUsW3trZXk6ImF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayIsdmFsdWU6ZnVuY3Rpb24ocixpLGEsbyxzKXtyPT09ImQiPyh0aGlzLnRyYW5zZm9ybU1hcmtlcighMCksdGhpcy50cmFuc2Zvcm1NYXJrZXIoITEpLHRoaXMucGxhY2VNYXJrZXJNaWQodGhpcy5wYXJzZWRTdHlsZS5tYXJrZXJNaWQpKTpyPT09Im1hcmtlclN0YXJ0T2Zmc2V0Inx8cj09PSJtYXJrZXJFbmRPZmZzZXQiPyh0aGlzLnRyYW5zZm9ybU1hcmtlcighMCksdGhpcy50cmFuc2Zvcm1NYXJrZXIoITEpKTpyPT09Im1hcmtlclN0YXJ0Ij8obyYmeG4obykmJih0aGlzLm1hcmtlclN0YXJ0QW5nbGU9MCxvLnJlbW92ZSgpKSxzJiZ4bihzKSYmKHRoaXMubWFya2VyU3RhcnRBbmdsZT1zLmdldExvY2FsRXVsZXJBbmdsZXMoKSx0aGlzLmFwcGVuZENoaWxkKHMpLHRoaXMudHJhbnNmb3JtTWFya2VyKCEwKSkpOnI9PT0ibWFya2VyRW5kIj8obyYmeG4obykmJih0aGlzLm1hcmtlckVuZEFuZ2xlPTAsby5yZW1vdmUoKSkscyYmeG4ocykmJih0aGlzLm1hcmtlckVuZEFuZ2xlPXMuZ2V0TG9jYWxFdWxlckFuZ2xlcygpLHRoaXMuYXBwZW5kQ2hpbGQocyksdGhpcy50cmFuc2Zvcm1NYXJrZXIoITEpKSk6cj09PSJtYXJrZXJNaWQiJiZ0aGlzLnBsYWNlTWFya2VyTWlkKHMpfX0se2tleToidHJhbnNmb3JtTWFya2VyIix2YWx1ZTpmdW5jdGlvbihyKXt2YXIgaT10aGlzLnBhcnNlZFN0eWxlLGE9aS5tYXJrZXJTdGFydCxvPWkubWFya2VyRW5kLHM9aS5tYXJrZXJTdGFydE9mZnNldCxjPWkubWFya2VyRW5kT2Zmc2V0LGw9cj9hOm87aWYoISghbHx8IXhuKGwpKSl7dmFyIHU9MCxmLGQsaCx2LGcseTtpZihyKXt2YXIgYj10aGlzLmdldFN0YXJ0VGFuZ2VudCgpLHg9KDAsVGUuWikoYiwyKSxfPXhbMF0sdz14WzFdO2g9d1swXSx2PXdbMV0sZj1fWzBdLXdbMF0sZD1fWzFdLXdbMV0sZz1zfHwwLHk9dGhpcy5tYXJrZXJTdGFydEFuZ2xlfWVsc2V7dmFyIE89dGhpcy5nZXRFbmRUYW5nZW50KCksRT0oMCxUZS5aKShPLDIpLE09RVswXSxrPUVbMV07aD1rWzBdLHY9a1sxXSxmPU1bMF0ta1swXSxkPU1bMV0ta1sxXSxnPWN8fDAseT10aGlzLm1hcmtlckVuZEFuZ2xlfXU9TWF0aC5hdGFuMihkLGYpLGwuc2V0TG9jYWxFdWxlckFuZ2xlcyh1KjE4MC9NYXRoLlBJK3kpLGwuc2V0TG9jYWxQb3NpdGlvbihoK01hdGguY29zKHUpKmcsditNYXRoLnNpbih1KSpnKX19fSx7a2V5OiJwbGFjZU1hcmtlck1pZCIsdmFsdWU6ZnVuY3Rpb24ocil7dmFyIGk9dGhpcy5wYXJzZWRTdHlsZS5kLnNlZ21lbnRzO2lmKHRoaXMubWFya2VyTWlkTGlzdC5mb3JFYWNoKGZ1bmN0aW9uKHUpe3UucmVtb3ZlKCl9KSxyJiZ4bihyKSlmb3IodmFyIGE9MTthPGkubGVuZ3RoLTE7YSsrKXt2YXIgbz0oMCxUZS5aKShpW2FdLmN1cnJlbnRQb2ludCwyKSxzPW9bMF0sYz1vWzFdLGw9YT09PTE/cjpyLmNsb25lTm9kZSghMCk7dGhpcy5tYXJrZXJNaWRMaXN0LnB1c2gobCksdGhpcy5hcHBlbmRDaGlsZChsKSxsLnNldExvY2FsUG9zaXRpb24ocyxjKX19fSx7a2V5OiJnZXRUb3RhbExlbmd0aCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gV2EodGhpcyl9fSx7a2V5OiJnZXRQb2ludEF0TGVuZ3RoIix2YWx1ZTpmdW5jdGlvbihyKXt2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06ITEsYT10aGlzLnBhcnNlZFN0eWxlLmQuYWJzb2x1dGVQYXRoLG89SnYoYSxyKSxzPW8ueCxjPW8ueSxsPWVyKG1lKCksc24ocyxjLDApLGk/dGhpcy5nZXRXb3JsZFRyYW5zZm9ybSgpOnRoaXMuZ2V0TG9jYWxUcmFuc2Zvcm0oKSk7cmV0dXJuIG5ldyBpaShsWzBdLGxbMV0pfX0se2tleToiZ2V0UG9pbnQiLHZhbHVlOmZ1bmN0aW9uKHIpe3ZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTohMTtyZXR1cm4gdGhpcy5nZXRQb2ludEF0TGVuZ3RoKHIqV2EodGhpcyksaSl9fSx7a2V5OiJnZXRTdGFydFRhbmdlbnQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHI9dGhpcy5wYXJzZWRTdHlsZS5kLnNlZ21lbnRzLGk9W107aWYoci5sZW5ndGg+MSl7dmFyIGE9clswXS5jdXJyZW50UG9pbnQsbz1yWzFdLmN1cnJlbnRQb2ludCxzPXJbMV0uc3RhcnRUYW5nZW50O2k9W10scz8oaS5wdXNoKFthWzBdLXNbMF0sYVsxXS1zWzFdXSksaS5wdXNoKFthWzBdLGFbMV1dKSk6KGkucHVzaChbb1swXSxvWzFdXSksaS5wdXNoKFthWzBdLGFbMV1dKSl9cmV0dXJuIGl9fSx7a2V5OiJnZXRFbmRUYW5nZW50Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciByPXRoaXMucGFyc2VkU3R5bGUuZC5zZWdtZW50cyxpPXIubGVuZ3RoLGE9W107aWYoaT4xKXt2YXIgbz1yW2ktMl0uY3VycmVudFBvaW50LHM9cltpLTFdLmN1cnJlbnRQb2ludCxjPXJbaS0xXS5lbmRUYW5nZW50O2E9W10sYz8oYS5wdXNoKFtzWzBdLWNbMF0sc1sxXS1jWzFdXSksYS5wdXNoKFtzWzBdLHNbMV1dKSk6KGEucHVzaChbb1swXSxvWzFdXSksYS5wdXNoKFtzWzBdLHNbMV1dKSl9cmV0dXJuIGF9fV0pfShvcik7UWkuUEFSU0VEX1NUWUxFX0xJU1Q9bmV3IFNldChbXS5jb25jYXQoKDAsbG4uWikob3IuUEFSU0VEX1NUWUxFX0xJU1QpLFsiZCIsIm1hcmtlclN0YXJ0IiwibWFya2VyTWlkIiwibWFya2VyRW5kIiwibWFya2VyU3RhcnRPZmZzZXQiLCJtYXJrZXJFbmRPZmZzZXQiLCJpc0JpbGxib2FyZCIsImlzU2l6ZUF0dGVudWF0aW9uIl0pKTt2YXIgTDg9WyJzdHlsZSJdLGN1PWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt2YXIgbixyPWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dm9pZCAwP2FyZ3VtZW50c1swXTp7fSxpPXIuc3R5bGUsYT0oMCxqby5aKShyLEw4KTsoMCx4dC5aKSh0aGlzLGUpLG49KDAsRGUuWikodGhpcyxlLFsoMCxFZS5aKSh7dHlwZTpkdC5QT0xZR09OLHN0eWxlOmksaW5pdGlhbFBhcnNlZFN0eWxlOntwb2ludHM6e3BvaW50czpbXSx0b3RhbExlbmd0aDowLHNlZ21lbnRzOltdfSxtaXRlckxpbWl0OjQsaXNDbG9zZWQ6ITB9fSxhKV0pLG4ubWFya2VyU3RhcnRBbmdsZT0wLG4ubWFya2VyRW5kQW5nbGU9MCxuLm1hcmtlck1pZExpc3Q9W107dmFyIG89bi5wYXJzZWRTdHlsZSxzPW8ubWFya2VyU3RhcnQsYz1vLm1hcmtlckVuZCxsPW8ubWFya2VyTWlkO3JldHVybiBzJiZ4bihzKSYmKG4ubWFya2VyU3RhcnRBbmdsZT1zLmdldExvY2FsRXVsZXJBbmdsZXMoKSxuLmFwcGVuZENoaWxkKHMpKSxsJiZ4bihsKSYmbi5wbGFjZU1hcmtlck1pZChsKSxjJiZ4bihjKSYmKG4ubWFya2VyRW5kQW5nbGU9Yy5nZXRMb2NhbEV1bGVyQW5nbGVzKCksbi5hcHBlbmRDaGlsZChjKSksbi50cmFuc2Zvcm1NYXJrZXIoITApLG4udHJhbnNmb3JtTWFya2VyKCExKSxufXJldHVybigwLE1lLlopKGUsdCksKDAsT3QuWikoZSxbe2tleToiYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrIix2YWx1ZTpmdW5jdGlvbihyLGksYSxvLHMpe3I9PT0icG9pbnRzIj8odGhpcy50cmFuc2Zvcm1NYXJrZXIoITApLHRoaXMudHJhbnNmb3JtTWFya2VyKCExKSx0aGlzLnBsYWNlTWFya2VyTWlkKHRoaXMucGFyc2VkU3R5bGUubWFya2VyTWlkKSk6cj09PSJtYXJrZXJTdGFydE9mZnNldCJ8fHI9PT0ibWFya2VyRW5kT2Zmc2V0Ij8odGhpcy50cmFuc2Zvcm1NYXJrZXIoITApLHRoaXMudHJhbnNmb3JtTWFya2VyKCExKSk6cj09PSJtYXJrZXJTdGFydCI/KG8mJnhuKG8pJiYodGhpcy5tYXJrZXJTdGFydEFuZ2xlPTAsby5yZW1vdmUoKSkscyYmeG4ocykmJih0aGlzLm1hcmtlclN0YXJ0QW5nbGU9cy5nZXRMb2NhbEV1bGVyQW5nbGVzKCksdGhpcy5hcHBlbmRDaGlsZChzKSx0aGlzLnRyYW5zZm9ybU1hcmtlcighMCkpKTpyPT09Im1hcmtlckVuZCI/KG8mJnhuKG8pJiYodGhpcy5tYXJrZXJFbmRBbmdsZT0wLG8ucmVtb3ZlKCkpLHMmJnhuKHMpJiYodGhpcy5tYXJrZXJFbmRBbmdsZT1zLmdldExvY2FsRXVsZXJBbmdsZXMoKSx0aGlzLmFwcGVuZENoaWxkKHMpLHRoaXMudHJhbnNmb3JtTWFya2VyKCExKSkpOnI9PT0ibWFya2VyTWlkIiYmdGhpcy5wbGFjZU1hcmtlck1pZChzKX19LHtrZXk6InRyYW5zZm9ybU1hcmtlciIsdmFsdWU6ZnVuY3Rpb24ocil7dmFyIGk9dGhpcy5wYXJzZWRTdHlsZSxhPWkubWFya2VyU3RhcnQsbz1pLm1hcmtlckVuZCxzPWkubWFya2VyU3RhcnRPZmZzZXQsYz1pLm1hcmtlckVuZE9mZnNldCxsPWkucG9pbnRzLHU9bHx8e30sZj11LnBvaW50cyxkPXI/YTpvO2lmKCEoIWR8fCF4bihkKXx8IWYpKXt2YXIgaD0wLHYsZyx5LGIseCxfO2lmKHk9ZlswXVswXSxiPWZbMF1bMV0scil2PWZbMV1bMF0tZlswXVswXSxnPWZbMV1bMV0tZlswXVsxXSx4PXN8fDAsXz10aGlzLm1hcmtlclN0YXJ0QW5nbGU7ZWxzZXt2YXIgdz1mLmxlbmd0aDt0aGlzLnBhcnNlZFN0eWxlLmlzQ2xvc2VkPyh2PWZbdy0xXVswXS1mWzBdWzBdLGc9Zlt3LTFdWzFdLWZbMF1bMV0pOih5PWZbdy0xXVswXSxiPWZbdy0xXVsxXSx2PWZbdy0yXVswXS1mW3ctMV1bMF0sZz1mW3ctMl1bMV0tZlt3LTFdWzFdKSx4PWN8fDAsXz10aGlzLm1hcmtlckVuZEFuZ2xlfWg9TWF0aC5hdGFuMihnLHYpLGQuc2V0TG9jYWxFdWxlckFuZ2xlcyhoKjE4MC9NYXRoLlBJK18pLGQuc2V0TG9jYWxQb3NpdGlvbih5K01hdGguY29zKGgpKngsYitNYXRoLnNpbihoKSp4KX19fSx7a2V5OiJwbGFjZU1hcmtlck1pZCIsdmFsdWU6ZnVuY3Rpb24ocil7dmFyIGk9dGhpcy5wYXJzZWRTdHlsZS5wb2ludHMsYT1pfHx7fSxvPWEucG9pbnRzO2lmKHRoaXMubWFya2VyTWlkTGlzdC5mb3JFYWNoKGZ1bmN0aW9uKGYpe2YucmVtb3ZlKCl9KSx0aGlzLm1hcmtlck1pZExpc3Q9W10sciYmeG4ocikmJm8pZm9yKHZhciBzPTE7czwodGhpcy5wYXJzZWRTdHlsZS5pc0Nsb3NlZD9vLmxlbmd0aDpvLmxlbmd0aC0xKTtzKyspe3ZhciBjPW9bc11bMF0sbD1vW3NdWzFdLHU9cz09PTE/cjpyLmNsb25lTm9kZSghMCk7dGhpcy5tYXJrZXJNaWRMaXN0LnB1c2godSksdGhpcy5hcHBlbmRDaGlsZCh1KSx1LnNldExvY2FsUG9zaXRpb24oYyxsKX19fV0pfShvcik7Y3UuUEFSU0VEX1NUWUxFX0xJU1Q9bmV3IFNldChbXS5jb25jYXQoKDAsbG4uWikob3IuUEFSU0VEX1NUWUxFX0xJU1QpLFsicG9pbnRzIiwibWFya2VyU3RhcnQiLCJtYXJrZXJNaWQiLCJtYXJrZXJFbmQiLCJtYXJrZXJTdGFydE9mZnNldCIsIm1hcmtlckVuZE9mZnNldCIsImlzQ2xvc2VkIiwiaXNCaWxsYm9hcmQiLCJpc1NpemVBdHRlbnVhdGlvbiJdKSk7dmFyIFI4PVsic3R5bGUiXSxFeT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dmFyIG49YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT12b2lkIDA/YXJndW1lbnRzWzBdOnt9LHI9bi5zdHlsZSxpPSgwLGpvLlopKG4sUjgpO3JldHVybigwLHh0LlopKHRoaXMsZSksKDAsRGUuWikodGhpcyxlLFsoMCxFZS5aKSh7dHlwZTpkdC5QT0xZTElORSxzdHlsZTpyLGluaXRpYWxQYXJzZWRTdHlsZTp7cG9pbnRzOntwb2ludHM6W10sdG90YWxMZW5ndGg6MCxzZWdtZW50czpbXX0sbWl0ZXJMaW1pdDo0LGlzQ2xvc2VkOiExfX0saSldKX1yZXR1cm4oMCxNZS5aKShlLHQpLCgwLE90LlopKGUsW3trZXk6ImdldFRvdGFsTGVuZ3RoIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBaZyh0aGlzKX19LHtrZXk6ImdldFBvaW50QXRMZW5ndGgiLHZhbHVlOmZ1bmN0aW9uKHIpe3ZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTohMTtyZXR1cm4gdGhpcy5nZXRQb2ludChyL3RoaXMuZ2V0VG90YWxMZW5ndGgoKSxpKX19LHtrZXk6ImdldFBvaW50Iix2YWx1ZTpmdW5jdGlvbihyKXt2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06ITEsYT10aGlzLnBhcnNlZFN0eWxlLnBvaW50cy5wb2ludHM7aWYodGhpcy5wYXJzZWRTdHlsZS5wb2ludHMuc2VnbWVudHMubGVuZ3RoPT09MCl7dmFyIG89W10scz0wLGMsbCx1PXRoaXMuZ2V0VG90YWxMZW5ndGgoKTthLmZvckVhY2goZnVuY3Rpb24oYix4KXthW3grMV0mJihjPVswLDBdLGNbMF09cy91LGw9V2woYlswXSxiWzFdLGFbeCsxXVswXSxhW3grMV1bMV0pLHMrPWwsY1sxXT1zL3Usby5wdXNoKGMpKX0pLHRoaXMucGFyc2VkU3R5bGUucG9pbnRzLnNlZ21lbnRzPW99dmFyIGY9MCxkPTA7dGhpcy5wYXJzZWRTdHlsZS5wb2ludHMuc2VnbWVudHMuZm9yRWFjaChmdW5jdGlvbihiLHgpe3I+PWJbMF0mJnI8PWJbMV0mJihmPShyLWJbMF0pLyhiWzFdLWJbMF0pLGQ9eCl9KTt2YXIgaD1PYShhW2RdWzBdLGFbZF1bMV0sYVtkKzFdWzBdLGFbZCsxXVsxXSxmKSx2PWgueCxnPWgueSx5PWVyKG1lKCksc24odixnLDApLGk/dGhpcy5nZXRXb3JsZFRyYW5zZm9ybSgpOnRoaXMuZ2V0TG9jYWxUcmFuc2Zvcm0oKSk7cmV0dXJuIG5ldyBpaSh5WzBdLHlbMV0pfX0se2tleToiZ2V0U3RhcnRUYW5nZW50Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciByPXRoaXMucGFyc2VkU3R5bGUucG9pbnRzLnBvaW50cyxpPVtdO3JldHVybiBpLnB1c2goW3JbMV1bMF0sclsxXVsxXV0pLGkucHVzaChbclswXVswXSxyWzBdWzFdXSksaX19LHtrZXk6ImdldEVuZFRhbmdlbnQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHI9dGhpcy5wYXJzZWRTdHlsZS5wb2ludHMucG9pbnRzLGk9ci5sZW5ndGgtMSxhPVtdO3JldHVybiBhLnB1c2goW3JbaS0xXVswXSxyW2ktMV1bMV1dKSxhLnB1c2goW3JbaV1bMF0scltpXVsxXV0pLGF9fV0pfShjdSk7RXkuUEFSU0VEX1NUWUxFX0xJU1Q9bmV3IFNldChbXS5jb25jYXQoKDAsbG4uWikoY3UuUEFSU0VEX1NUWUxFX0xJU1QpLFsicG9pbnRzIiwibWFya2VyU3RhcnQiLCJtYXJrZXJNaWQiLCJtYXJrZXJFbmQiLCJtYXJrZXJTdGFydE9mZnNldCIsIm1hcmtlckVuZE9mZnNldCIsImlzQmlsbGJvYXJkIl0pKTt2YXIgUWM9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBuPWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dm9pZCAwP2FyZ3VtZW50c1swXTp7fTtyZXR1cm4oMCx4dC5aKSh0aGlzLGUpLCgwLERlLlopKHRoaXMsZSxbKDAsRWUuWikoe3R5cGU6ZHQuUkVDVH0sbildKX1yZXR1cm4oMCxNZS5aKShlLHQpLCgwLE90LlopKGUpfShvcik7UWMuUEFSU0VEX1NUWUxFX0xJU1Q9bmV3IFNldChbXS5jb25jYXQoKDAsbG4uWikob3IuUEFSU0VEX1NUWUxFX0xJU1QpLFsieCIsInkiLCJ6Iiwid2lkdGgiLCJoZWlnaHQiLCJpc0JpbGxib2FyZCIsImlzU2l6ZUF0dGVudWF0aW9uIiwicmFkaXVzIl0pKTt2YXIgTjg9WyJzdHlsZSJdLHBvPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt2YXIgbj1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXZvaWQgMD9hcmd1bWVudHNbMF06e30scj1uLnN0eWxlLGk9KDAsam8uWikobixOOCk7cmV0dXJuKDAseHQuWikodGhpcyxlKSwoMCxEZS5aKSh0aGlzLGUsWygwLEVlLlopKHt0eXBlOmR0LlRFWFQsc3R5bGU6KDAsRWUuWikoe2ZpbGw6ImJsYWNrIn0scil9LGkpXSl9cmV0dXJuKDAsTWUuWikoZSx0KSwoMCxPdC5aKShlLFt7a2V5OiJnZXRDb21wdXRlZFRleHRMZW5ndGgiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHI7cmV0dXJuIHRoaXMuZ2V0R2VvbWV0cnlCb3VuZHMoKSwoKHI9dGhpcy5wYXJzZWRTdHlsZS5tZXRyaWNzKT09PW51bGx8fHI9PT12b2lkIDA/dm9pZCAwOnIubWF4TGluZVdpZHRoKXx8MH19LHtrZXk6ImdldExpbmVCb3VuZGluZ1JlY3RzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciByO3JldHVybiB0aGlzLmdldEdlb21ldHJ5Qm91bmRzKCksKChyPXRoaXMucGFyc2VkU3R5bGUubWV0cmljcyk9PT1udWxsfHxyPT09dm9pZCAwP3ZvaWQgMDpyLmxpbmVNZXRyaWNzKXx8W119fSx7a2V5OiJpc092ZXJmbG93aW5nIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldEdlb21ldHJ5Qm91bmRzKCksISF0aGlzLnBhcnNlZFN0eWxlLmlzT3ZlcmZsb3dpbmd9fV0pfShvcik7cG8uUEFSU0VEX1NUWUxFX0xJU1Q9bmV3IFNldChbXS5jb25jYXQoKDAsbG4uWikob3IuUEFSU0VEX1NUWUxFX0xJU1QpLFsieCIsInkiLCJ6IiwiaXNCaWxsYm9hcmQiLCJiaWxsYm9hcmRSb3RhdGlvbiIsImlzU2l6ZUF0dGVudWF0aW9uIiwidGV4dCIsInRleHRBbGlnbiIsInRleHRCYXNlbGluZSIsImZvbnRTdHlsZSIsImZvbnRTaXplIiwiZm9udEZhbWlseSIsImZvbnRXZWlnaHQiLCJmb250VmFyaWFudCIsImxpbmVIZWlnaHQiLCJsZXR0ZXJTcGFjaW5nIiwibGVhZGluZyIsIndvcmRXcmFwIiwid29yZFdyYXBXaWR0aCIsIm1heExpbmVzIiwidGV4dE92ZXJmbG93IiwiaXNPdmVyZmxvd2luZyIsInRleHRQYXRoIiwidGV4dERlY29yYXRpb25MaW5lIiwidGV4dERlY29yYXRpb25Db2xvciIsInRleHREZWNvcmF0aW9uU3R5bGUiLCJ0ZXh0UGF0aFNpZGUiLCJ0ZXh0UGF0aFN0YXJ0T2Zmc2V0IiwibWV0cmljcyIsImR4IiwiZHkiXSkpO3ZhciBJOD1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXsoMCx4dC5aKSh0aGlzLHQpLHRoaXMucmVnaXN0cnk9e30sdGhpcy5kZWZpbmUoZHQuQ0lSQ0xFLHRjKSx0aGlzLmRlZmluZShkdC5FTExJUFNFLE95KSx0aGlzLmRlZmluZShkdC5SRUNULFFjKSx0aGlzLmRlZmluZShkdC5JTUFHRSxTeSksdGhpcy5kZWZpbmUoZHQuTElORSxzdSksdGhpcy5kZWZpbmUoZHQuR1JPVVAsdWkpLHRoaXMuZGVmaW5lKGR0LlBBVEgsUWkpLHRoaXMuZGVmaW5lKGR0LlBPTFlHT04sY3UpLHRoaXMuZGVmaW5lKGR0LlBPTFlMSU5FLEV5KSx0aGlzLmRlZmluZShkdC5URVhULHBvKSx0aGlzLmRlZmluZShkdC5IVE1MLGJwKX1yZXR1cm4oMCxPdC5aKSh0LFt7a2V5OiJkZWZpbmUiLHZhbHVlOmZ1bmN0aW9uKG4scil7dGhpcy5yZWdpc3RyeVtuXT1yfX0se2tleToiZ2V0Iix2YWx1ZTpmdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5yZWdpc3RyeVtuXX19XSl9KCksZ2s9e251bWJlcjpmdW5jdGlvbihlKXtyZXR1cm4gbmV3IFJuKGUpfSxwZXJjZW50OmZ1bmN0aW9uKGUpe3JldHVybiBuZXcgUm4oZSwiJSIpfSxweDpmdW5jdGlvbihlKXtyZXR1cm4gbmV3IFJuKGUsInB4Iil9LGVtOmZ1bmN0aW9uKGUpe3JldHVybiBuZXcgUm4oZSwiZW0iKX0scmVtOmZ1bmN0aW9uKGUpe3JldHVybiBuZXcgUm4oZSwicmVtIil9LGRlZzpmdW5jdGlvbihlKXtyZXR1cm4gbmV3IFJuKGUsImRlZyIpfSxncmFkOmZ1bmN0aW9uKGUpe3JldHVybiBuZXcgUm4oZSwiZ3JhZCIpfSxyYWQ6ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBSbihlLCJyYWQiKX0sdHVybjpmdW5jdGlvbihlKXtyZXR1cm4gbmV3IFJuKGUsInR1cm4iKX0sczpmdW5jdGlvbihlKXtyZXR1cm4gbmV3IFJuKGUsInMiKX0sbXM6ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBSbihlLCJtcyIpfSxyZWdpc3RlclByb3BlcnR5OmZ1bmN0aW9uKGUpe3ZhciBuPWUubmFtZSxyPWUuaW5oZXJpdHMsaT1lLmludGVycG9sYWJsZSxhPWUuaW5pdGlhbFZhbHVlLG89ZS5zeW50YXg7Q3Quc3R5bGVWYWx1ZVJlZ2lzdHJ5LnJlZ2lzdGVyTWV0YWRhdGEoe24saW5oOnIsaW50OmksZDphLHN5bnRheDpvfSl9LHJlZ2lzdGVyTGF5b3V0OmZ1bmN0aW9uKGUsbil7Q3QubGF5b3V0UmVnaXN0cnkucmVnaXN0ZXJMYXlvdXQoZSxuKX19LEQ4PWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt2YXIgbjsoMCx4dC5aKSh0aGlzLGUpLG49KDAsRGUuWikodGhpcyxlKSxuLmRlZmF1bHRWaWV3PW51bGwsbi5vd25lckRvY3VtZW50PW51bGwsbi5ub2RlTmFtZT0iZG9jdW1lbnQiO3RyeXtuLnRpbWVsaW5lPW5ldyBDdC5BbmltYXRpb25UaW1lbGluZShuKX1jYXRjaChpKXt9dmFyIHI9e307cmV0dXJuIG9wLmZvckVhY2goZnVuY3Rpb24oaSl7dmFyIGE9aS5uLG89aS5pbmgscz1pLmQ7byYmcyYmKHJbYV09WG4ocyk/cyhkdC5HUk9VUCk6cyl9KSxuLmRvY3VtZW50RWxlbWVudD1uZXcgdWkoe2lkOiJnLXJvb3QiLHN0eWxlOnJ9KSxuLmRvY3VtZW50RWxlbWVudC5vd25lckRvY3VtZW50PW4sbi5kb2N1bWVudEVsZW1lbnQucGFyZW50Tm9kZT1uLG4uY2hpbGROb2Rlcz1bbi5kb2N1bWVudEVsZW1lbnRdLG59cmV0dXJuKDAsTWUuWikoZSx0KSwoMCxPdC5aKShlLFt7a2V5OiJjaGlsZHJlbiIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2hpbGROb2Rlc319LHtrZXk6ImNoaWxkRWxlbWVudENvdW50IixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jaGlsZE5vZGVzLmxlbmd0aH19LHtrZXk6ImZpcnN0RWxlbWVudENoaWxkIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maXJzdENoaWxkfX0se2tleToibGFzdEVsZW1lbnRDaGlsZCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGFzdENoaWxkfX0se2tleToiY3JlYXRlRWxlbWVudCIsdmFsdWU6ZnVuY3Rpb24ocixpKXtpZihyPT09InN2ZyIpcmV0dXJuIHRoaXMuZG9jdW1lbnRFbGVtZW50O3ZhciBhPXRoaXMuZGVmYXVsdFZpZXcuY3VzdG9tRWxlbWVudHMuZ2V0KHIpO2F8fChjb25zb2xlLndhcm4oIlVuc3VwcG9ydGVkIHRhZ05hbWU6ICIsciksYT1yPT09InRzcGFuIj9wbzp1aSk7dmFyIG89bmV3IGEoaSk7cmV0dXJuIG8ub3duZXJEb2N1bWVudD10aGlzLG99fSx7a2V5OiJjcmVhdGVFbGVtZW50TlMiLHZhbHVlOmZ1bmN0aW9uKHIsaSxhKXtyZXR1cm4gdGhpcy5jcmVhdGVFbGVtZW50KGksYSl9fSx7a2V5OiJjbG9uZU5vZGUiLHZhbHVlOmZ1bmN0aW9uKHIpe3Rocm93IG5ldyBFcnJvcihrbil9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3RyeXt0aGlzLmRvY3VtZW50RWxlbWVudC5kZXN0cm95Q2hpbGRyZW4oKSx0aGlzLnRpbWVsaW5lLmRlc3Ryb3koKX1jYXRjaChyKXt9fX0se2tleToiZWxlbWVudHNGcm9tQkJveCIsdmFsdWU6ZnVuY3Rpb24ocixpLGEsbyl7dmFyIHM9dGhpcy5kZWZhdWx0Vmlldy5jb250ZXh0LnJCdXNoUm9vdCxjPXMuc2VhcmNoKHttaW5YOnIsbWluWTppLG1heFg6YSxtYXhZOm99KSxsPVtdO3JldHVybiBjLmZvckVhY2goZnVuY3Rpb24odSl7dmFyIGY9dS5kaXNwbGF5T2JqZWN0LGQ9Zi5wYXJzZWRTdHlsZS5wb2ludGVyRXZlbnRzLGg9ZD09PXZvaWQgMD8iYXV0byI6ZCx2PVsiYXV0byIsInZpc2libGVwYWludGVkIiwidmlzaWJsZWZpbGwiLCJ2aXNpYmxlc3Ryb2tlIiwidmlzaWJsZSJdLmluY2x1ZGVzKGgpOyghdnx8diYmZi5pc1Zpc2libGUoKSkmJiFmLmlzQ3VsbGVkKCkmJmYuaXNJbnRlcmFjdGl2ZSgpJiZsLnB1c2goZil9KSxsLnNvcnQoZnVuY3Rpb24odSxmKXtyZXR1cm4gZi5zb3J0YWJsZS5yZW5kZXJPcmRlci11LnNvcnRhYmxlLnJlbmRlck9yZGVyfSksbH19LHtrZXk6ImVsZW1lbnRGcm9tUG9pbnRTeW5jIix2YWx1ZTpmdW5jdGlvbihyLGkpe3ZhciBhPXRoaXMuZGVmYXVsdFZpZXcuY2FudmFzMlZpZXdwb3J0KHt4OnIseTppfSksbz1hLngscz1hLnksYz10aGlzLmRlZmF1bHRWaWV3LmdldENvbmZpZygpLGw9Yy53aWR0aCx1PWMuaGVpZ2h0O2lmKG88MHx8czwwfHxvPmx8fHM+dSlyZXR1cm4gbnVsbDt2YXIgZj10aGlzLmRlZmF1bHRWaWV3LnZpZXdwb3J0MkNsaWVudCh7eDpvLHk6c30pLGQ9Zi54LGg9Zi55LHY9dGhpcy5kZWZhdWx0Vmlldy5nZXRSZW5kZXJpbmdTZXJ2aWNlKCkuaG9va3MucGlja1N5bmMuY2FsbCh7dG9wbW9zdDohMCxwb3NpdGlvbjp7eDpyLHk6aSx2aWV3cG9ydFg6byx2aWV3cG9ydFk6cyxjbGllbnRYOmQsY2xpZW50WTpofSxwaWNrZWQ6W119KSxnPXYucGlja2VkO3JldHVybiBnJiZnWzBdfHx0aGlzLmRvY3VtZW50RWxlbWVudH19LHtrZXk6ImVsZW1lbnRGcm9tUG9pbnQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIG49KDAsb28uWikoKDAsTW4uWikoKS5tYXJrKGZ1bmN0aW9uIGkoYSxvKXt2YXIgcyxjLGwsdSxmLGQsaCx2LGcseSxiO3JldHVybigwLE1uLlopKCkud3JhcChmdW5jdGlvbihfKXtmb3IoOzspc3dpdGNoKF8ucHJldj1fLm5leHQpe2Nhc2UgMDppZihzPXRoaXMuZGVmYXVsdFZpZXcuY2FudmFzMlZpZXdwb3J0KHt4OmEseTpvfSksYz1zLngsbD1zLnksdT10aGlzLmRlZmF1bHRWaWV3LmdldENvbmZpZygpLGY9dS53aWR0aCxkPXUuaGVpZ2h0LCEoYzwwfHxsPDB8fGM+Znx8bD5kKSl7Xy5uZXh0PTQ7YnJlYWt9cmV0dXJuIF8uYWJydXB0KCJyZXR1cm4iLG51bGwpO2Nhc2UgNDpyZXR1cm4gaD10aGlzLmRlZmF1bHRWaWV3LnZpZXdwb3J0MkNsaWVudCh7eDpjLHk6bH0pLHY9aC54LGc9aC55LF8ubmV4dD03LHRoaXMuZGVmYXVsdFZpZXcuZ2V0UmVuZGVyaW5nU2VydmljZSgpLmhvb2tzLnBpY2sucHJvbWlzZSh7dG9wbW9zdDohMCxwb3NpdGlvbjp7eDphLHk6byx2aWV3cG9ydFg6Yyx2aWV3cG9ydFk6bCxjbGllbnRYOnYsY2xpZW50WTpnfSxwaWNrZWQ6W119KTtjYXNlIDc6cmV0dXJuIHk9Xy5zZW50LGI9eS5waWNrZWQsXy5hYnJ1cHQoInJldHVybiIsYiYmYlswXXx8dGhpcy5kb2N1bWVudEVsZW1lbnQpO2Nhc2UgMTA6Y2FzZSJlbmQiOnJldHVybiBfLnN0b3AoKX19LGksdGhpcyl9KSk7ZnVuY3Rpb24gcihpLGEpe3JldHVybiBuLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gcn0oKX0se2tleToiZWxlbWVudHNGcm9tUG9pbnRTeW5jIix2YWx1ZTpmdW5jdGlvbihyLGkpe3ZhciBhPXRoaXMuZGVmYXVsdFZpZXcuY2FudmFzMlZpZXdwb3J0KHt4OnIseTppfSksbz1hLngscz1hLnksYz10aGlzLmRlZmF1bHRWaWV3LmdldENvbmZpZygpLGw9Yy53aWR0aCx1PWMuaGVpZ2h0O2lmKG88MHx8czwwfHxvPmx8fHM+dSlyZXR1cm5bXTt2YXIgZj10aGlzLmRlZmF1bHRWaWV3LnZpZXdwb3J0MkNsaWVudCh7eDpvLHk6c30pLGQ9Zi54LGg9Zi55LHY9dGhpcy5kZWZhdWx0Vmlldy5nZXRSZW5kZXJpbmdTZXJ2aWNlKCkuaG9va3MucGlja1N5bmMuY2FsbCh7dG9wbW9zdDohMSxwb3NpdGlvbjp7eDpyLHk6aSx2aWV3cG9ydFg6byx2aWV3cG9ydFk6cyxjbGllbnRYOmQsY2xpZW50WTpofSxwaWNrZWQ6W119KSxnPXYucGlja2VkO3JldHVybiBnW2cubGVuZ3RoLTFdIT09dGhpcy5kb2N1bWVudEVsZW1lbnQmJmcucHVzaCh0aGlzLmRvY3VtZW50RWxlbWVudCksZ319LHtrZXk6ImVsZW1lbnRzRnJvbVBvaW50Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBuPSgwLG9vLlopKCgwLE1uLlopKCkubWFyayhmdW5jdGlvbiBpKGEsbyl7dmFyIHMsYyxsLHUsZixkLGgsdixnLHksYjtyZXR1cm4oMCxNbi5aKSgpLndyYXAoZnVuY3Rpb24oXyl7Zm9yKDs7KXN3aXRjaChfLnByZXY9Xy5uZXh0KXtjYXNlIDA6aWYocz10aGlzLmRlZmF1bHRWaWV3LmNhbnZhczJWaWV3cG9ydCh7eDphLHk6b30pLGM9cy54LGw9cy55LHU9dGhpcy5kZWZhdWx0Vmlldy5nZXRDb25maWcoKSxmPXUud2lkdGgsZD11LmhlaWdodCwhKGM8MHx8bDwwfHxjPmZ8fGw+ZCkpe18ubmV4dD00O2JyZWFrfXJldHVybiBfLmFicnVwdCgicmV0dXJuIixbXSk7Y2FzZSA0OnJldHVybiBoPXRoaXMuZGVmYXVsdFZpZXcudmlld3BvcnQyQ2xpZW50KHt4OmMseTpsfSksdj1oLngsZz1oLnksXy5uZXh0PTcsdGhpcy5kZWZhdWx0Vmlldy5nZXRSZW5kZXJpbmdTZXJ2aWNlKCkuaG9va3MucGljay5wcm9taXNlKHt0b3Btb3N0OiExLHBvc2l0aW9uOnt4OmEseTpvLHZpZXdwb3J0WDpjLHZpZXdwb3J0WTpsLGNsaWVudFg6dixjbGllbnRZOmd9LHBpY2tlZDpbXX0pO2Nhc2UgNzpyZXR1cm4geT1fLnNlbnQsYj15LnBpY2tlZCxiW2IubGVuZ3RoLTFdIT09dGhpcy5kb2N1bWVudEVsZW1lbnQmJmIucHVzaCh0aGlzLmRvY3VtZW50RWxlbWVudCksXy5hYnJ1cHQoInJldHVybiIsYik7Y2FzZSAxMTpjYXNlImVuZCI6cmV0dXJuIF8uc3RvcCgpfX0saSx0aGlzKX0pKTtmdW5jdGlvbiByKGksYSl7cmV0dXJuIG4uYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiByfSgpfSx7a2V5OiJhcHBlbmRDaGlsZCIsdmFsdWU6ZnVuY3Rpb24ocixpKXt0aHJvdyBuZXcgRXJyb3IoVGkpfX0se2tleToiaW5zZXJ0QmVmb3JlIix2YWx1ZTpmdW5jdGlvbihyLGkpe3Rocm93IG5ldyBFcnJvcihUaSl9fSx7a2V5OiJyZW1vdmVDaGlsZCIsdmFsdWU6ZnVuY3Rpb24ocixpKXt0aHJvdyBuZXcgRXJyb3IoVGkpfX0se2tleToicmVwbGFjZUNoaWxkIix2YWx1ZTpmdW5jdGlvbihyLGksYSl7dGhyb3cgbmV3IEVycm9yKFRpKX19LHtrZXk6ImFwcGVuZCIsdmFsdWU6ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoVGkpfX0se2tleToicHJlcGVuZCIsdmFsdWU6ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoVGkpfX0se2tleToiZ2V0RWxlbWVudEJ5SWQiLHZhbHVlOmZ1bmN0aW9uKHIpe3JldHVybiB0aGlzLmRvY3VtZW50RWxlbWVudC5nZXRFbGVtZW50QnlJZChyKX19LHtrZXk6ImdldEVsZW1lbnRzQnlOYW1lIix2YWx1ZTpmdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5kb2N1bWVudEVsZW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUocil9fSx7a2V5OiJnZXRFbGVtZW50c0J5VGFnTmFtZSIsdmFsdWU6ZnVuY3Rpb24ocil7cmV0dXJuIHRoaXMuZG9jdW1lbnRFbGVtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKHIpfX0se2tleToiZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSIsdmFsdWU6ZnVuY3Rpb24ocil7cmV0dXJuIHRoaXMuZG9jdW1lbnRFbGVtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUocil9fSx7a2V5OiJxdWVyeVNlbGVjdG9yIix2YWx1ZTpmdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5kb2N1bWVudEVsZW1lbnQucXVlcnlTZWxlY3RvcihyKX19LHtrZXk6InF1ZXJ5U2VsZWN0b3JBbGwiLHZhbHVlOmZ1bmN0aW9uKHIpe3JldHVybiB0aGlzLmRvY3VtZW50RWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKHIpfX0se2tleToiZmluZCIsdmFsdWU6ZnVuY3Rpb24ocil7cmV0dXJuIHRoaXMuZG9jdW1lbnRFbGVtZW50LmZpbmQocil9fSx7a2V5OiJmaW5kQWxsIix2YWx1ZTpmdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5kb2N1bWVudEVsZW1lbnQuZmluZEFsbChyKX19XSl9KGZyKSx5az1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7KDAseHQuWikodGhpcyx0KSx0aGlzLnN0cmF0ZWdpZXM9ZX1yZXR1cm4oMCxPdC5aKSh0LFt7a2V5OiJhcHBseSIsdmFsdWU6ZnVuY3Rpb24obil7dmFyIHI9bi5jYW1lcmEsaT1uLnJlbmRlcmluZ1NlcnZpY2UsYT1uLnJlbmRlcmluZ0NvbnRleHQsbz10aGlzLnN0cmF0ZWdpZXM7aS5ob29rcy5jdWxsLnRhcCh0LnRhZyxmdW5jdGlvbihzKXtpZihzKXt2YXIgYz1zLmN1bGxhYmxlO3JldHVybiBvLmxlbmd0aD09PTA/Yy52aXNpYmxlPWEudW5jdWxsZWRFbnRpdGllcy5pbmRleE9mKHMuZW50aXR5KT4tMTpjLnZpc2libGU9by5ldmVyeShmdW5jdGlvbihsKXtyZXR1cm4gbC5pc1Zpc2libGUocixzKX0pLCFzLmlzQ3VsbGVkKCkmJnMuaXNWaXNpYmxlKCk/czoocy5kaXNwYXRjaEV2ZW50KG5ldyBObigkZS5DVUxMRUQpKSxudWxsKX1yZXR1cm4gc30pLGkuaG9va3MuYWZ0ZXJSZW5kZXIudGFwKHQudGFnLGZ1bmN0aW9uKHMpe3MuY3VsbGFibGUudmlzaWJpbGl0eVBsYW5lTWFzaz0tMX0pfX1dKX0oKTt5ay50YWc9IkN1bGxpbmciO3ZhciBtaz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt2YXIgZT10aGlzOygwLHh0LlopKHRoaXMsdCksdGhpcy5hdXRvUHJldmVudERlZmF1bHQ9ITEsdGhpcy5yb290UG9pbnRlckV2ZW50PW5ldyBwcChudWxsKSx0aGlzLnJvb3RXaGVlbEV2ZW50PW5ldyB2cChudWxsKSx0aGlzLm9uUG9pbnRlck1vdmU9ZnVuY3Rpb24obil7dmFyIHIsaT0ocj1lLmNvbnRleHQucmVuZGVyaW5nQ29udGV4dC5yb290KT09PW51bGx8fHI9PT12b2lkIDB8fChyPXIub3duZXJEb2N1bWVudCk9PT1udWxsfHxyPT09dm9pZCAwP3ZvaWQgMDpyLmRlZmF1bHRWaWV3O2lmKCEoaS5zdXBwb3J0c1RvdWNoRXZlbnRzJiZuLnBvaW50ZXJUeXBlPT09InRvdWNoIikpe3ZhciBhPWUubm9ybWFsaXplVG9Qb2ludGVyRXZlbnQobixpKSxvPSgwLFlzLlopKGEpLHM7dHJ5e2ZvcihvLnMoKTshKHM9by5uKCkpLmRvbmU7KXt2YXIgYz1zLnZhbHVlLGw9ZS5ib290c3RyYXBFdmVudChlLnJvb3RQb2ludGVyRXZlbnQsYyxpLG4pO2UuY29udGV4dC5ldmVudFNlcnZpY2UubWFwRXZlbnQobCl9fWNhdGNoKHUpe28uZSh1KX1maW5hbGx5e28uZigpfWUuc2V0Q3Vyc29yKGUuY29udGV4dC5ldmVudFNlcnZpY2UuY3Vyc29yKX19LHRoaXMub25DbGljaz1mdW5jdGlvbihuKXt2YXIgcixpPShyPWUuY29udGV4dC5yZW5kZXJpbmdDb250ZXh0LnJvb3QpPT09bnVsbHx8cj09PXZvaWQgMHx8KHI9ci5vd25lckRvY3VtZW50KT09PW51bGx8fHI9PT12b2lkIDA/dm9pZCAwOnIuZGVmYXVsdFZpZXcsYT1lLm5vcm1hbGl6ZVRvUG9pbnRlckV2ZW50KG4saSksbz0oMCxZcy5aKShhKSxzO3RyeXtmb3Ioby5zKCk7IShzPW8ubigpKS5kb25lOyl7dmFyIGM9cy52YWx1ZSxsPWUuYm9vdHN0cmFwRXZlbnQoZS5yb290UG9pbnRlckV2ZW50LGMsaSxuKTtlLmNvbnRleHQuZXZlbnRTZXJ2aWNlLm1hcEV2ZW50KGwpfX1jYXRjaCh1KXtvLmUodSl9ZmluYWxseXtvLmYoKX1lLnNldEN1cnNvcihlLmNvbnRleHQuZXZlbnRTZXJ2aWNlLmN1cnNvcil9fXJldHVybigwLE90LlopKHQsW3trZXk6ImFwcGx5Iix2YWx1ZTpmdW5jdGlvbihuKXt2YXIgcj10aGlzO3RoaXMuY29udGV4dD1uO3ZhciBpPW4ucmVuZGVyaW5nU2VydmljZSxhPXRoaXMuY29udGV4dC5yZW5kZXJpbmdDb250ZXh0LnJvb3Qub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldzt0aGlzLmNvbnRleHQuZXZlbnRTZXJ2aWNlLnNldFBpY2tIYW5kbGVyKGZ1bmN0aW9uKG8pe3ZhciBzPXIuY29udGV4dC5yZW5kZXJpbmdTZXJ2aWNlLmhvb2tzLnBpY2tTeW5jLmNhbGwoe3Bvc2l0aW9uOm8scGlja2VkOltdLHRvcG1vc3Q6ITB9KSxjPXMucGlja2VkO3JldHVybiBjWzBdfHxudWxsfSksaS5ob29rcy5wb2ludGVyV2hlZWwudGFwKHQudGFnLGZ1bmN0aW9uKG8pe3ZhciBzPXIubm9ybWFsaXplV2hlZWxFdmVudChvKTtyLmNvbnRleHQuZXZlbnRTZXJ2aWNlLm1hcEV2ZW50KHMpfSksaS5ob29rcy5wb2ludGVyRG93bi50YXAodC50YWcsZnVuY3Rpb24obyl7aWYoIShhLnN1cHBvcnRzVG91Y2hFdmVudHMmJm8ucG9pbnRlclR5cGU9PT0idG91Y2giKSl7dmFyIHM9ci5ub3JtYWxpemVUb1BvaW50ZXJFdmVudChvLGEpO2lmKHIuYXV0b1ByZXZlbnREZWZhdWx0JiZzWzBdLmlzTm9ybWFsaXplZCl7dmFyIGM9by5jYW5jZWxhYmxlfHwhKCJjYW5jZWxhYmxlImluIG8pO2MmJm8ucHJldmVudERlZmF1bHQoKX12YXIgbD0oMCxZcy5aKShzKSx1O3RyeXtmb3IobC5zKCk7ISh1PWwubigpKS5kb25lOyl7dmFyIGY9dS52YWx1ZSxkPXIuYm9vdHN0cmFwRXZlbnQoci5yb290UG9pbnRlckV2ZW50LGYsYSxvKTtyLmNvbnRleHQuZXZlbnRTZXJ2aWNlLm1hcEV2ZW50KGQpfX1jYXRjaChoKXtsLmUoaCl9ZmluYWxseXtsLmYoKX1yLnNldEN1cnNvcihyLmNvbnRleHQuZXZlbnRTZXJ2aWNlLmN1cnNvcil9fSksaS5ob29rcy5wb2ludGVyVXAudGFwKHQudGFnLGZ1bmN0aW9uKG8pe2lmKCEoYS5zdXBwb3J0c1RvdWNoRXZlbnRzJiZvLnBvaW50ZXJUeXBlPT09InRvdWNoIikpe3ZhciBzPXIuY29udGV4dC5jb250ZXh0U2VydmljZS5nZXREb21FbGVtZW50KCksYz1yLmNvbnRleHQuZXZlbnRTZXJ2aWNlLmlzTmF0aXZlRXZlbnRGcm9tQ2FudmFzKHMsbyksbD1jPyIiOiJvdXRzaWRlIix1PXIubm9ybWFsaXplVG9Qb2ludGVyRXZlbnQobyxhKSxmPSgwLFlzLlopKHUpLGQ7dHJ5e2ZvcihmLnMoKTshKGQ9Zi5uKCkpLmRvbmU7KXt2YXIgaD1kLnZhbHVlLHY9ci5ib290c3RyYXBFdmVudChyLnJvb3RQb2ludGVyRXZlbnQsaCxhLG8pO3YudHlwZSs9bCxyLmNvbnRleHQuZXZlbnRTZXJ2aWNlLm1hcEV2ZW50KHYpfX1jYXRjaChnKXtmLmUoZyl9ZmluYWxseXtmLmYoKX1yLnNldEN1cnNvcihyLmNvbnRleHQuZXZlbnRTZXJ2aWNlLmN1cnNvcil9fSksaS5ob29rcy5wb2ludGVyTW92ZS50YXAodC50YWcsdGhpcy5vblBvaW50ZXJNb3ZlKSxpLmhvb2tzLnBvaW50ZXJPdmVyLnRhcCh0LnRhZyx0aGlzLm9uUG9pbnRlck1vdmUpLGkuaG9va3MucG9pbnRlck91dC50YXAodC50YWcsdGhpcy5vblBvaW50ZXJNb3ZlKSxpLmhvb2tzLmNsaWNrLnRhcCh0LnRhZyx0aGlzLm9uQ2xpY2spLGkuaG9va3MucG9pbnRlckNhbmNlbC50YXAodC50YWcsZnVuY3Rpb24obyl7dmFyIHM9ci5ub3JtYWxpemVUb1BvaW50ZXJFdmVudChvLGEpLGM9KDAsWXMuWikocyksbDt0cnl7Zm9yKGMucygpOyEobD1jLm4oKSkuZG9uZTspe3ZhciB1PWwudmFsdWUsZj1yLmJvb3RzdHJhcEV2ZW50KHIucm9vdFBvaW50ZXJFdmVudCx1LGEsbyk7ci5jb250ZXh0LmV2ZW50U2VydmljZS5tYXBFdmVudChmKX19Y2F0Y2goZCl7Yy5lKGQpfWZpbmFsbHl7Yy5mKCl9ci5zZXRDdXJzb3Ioci5jb250ZXh0LmV2ZW50U2VydmljZS5jdXJzb3IpfSl9fSx7a2V5OiJib290c3RyYXBFdmVudCIsdmFsdWU6ZnVuY3Rpb24obixyLGksYSl7bi52aWV3PWksbi5vcmlnaW5hbEV2ZW50PW51bGwsbi5uYXRpdmVFdmVudD1hLG4ucG9pbnRlcklkPXIucG9pbnRlcklkLG4ud2lkdGg9ci53aWR0aCxuLmhlaWdodD1yLmhlaWdodCxuLmlzUHJpbWFyeT1yLmlzUHJpbWFyeSxuLnBvaW50ZXJUeXBlPXIucG9pbnRlclR5cGUsbi5wcmVzc3VyZT1yLnByZXNzdXJlLG4udGFuZ2VudGlhbFByZXNzdXJlPXIudGFuZ2VudGlhbFByZXNzdXJlLG4udGlsdFg9ci50aWx0WCxuLnRpbHRZPXIudGlsdFksbi50d2lzdD1yLnR3aXN0LHRoaXMudHJhbnNmZXJNb3VzZURhdGEobixyKTt2YXIgbz10aGlzLmNvbnRleHQuZXZlbnRTZXJ2aWNlLmNsaWVudDJWaWV3cG9ydCh7eDpyLmNsaWVudFgseTpyLmNsaWVudFl9KSxzPW8ueCxjPW8ueTtuLnZpZXdwb3J0Lng9cyxuLnZpZXdwb3J0Lnk9Yzt2YXIgbD10aGlzLmNvbnRleHQuZXZlbnRTZXJ2aWNlLnZpZXdwb3J0MkNhbnZhcyhuLnZpZXdwb3J0KSx1PWwueCxmPWwueTtyZXR1cm4gbi5jYW52YXMueD11LG4uY2FudmFzLnk9ZixuLmdsb2JhbC5jb3B5RnJvbShuLmNhbnZhcyksbi5vZmZzZXQuY29weUZyb20obi5jYW52YXMpLG4uaXNUcnVzdGVkPWEuaXNUcnVzdGVkLG4udHlwZT09PSJwb2ludGVybGVhdmUiJiYobi50eXBlPSJwb2ludGVyb3V0Iiksbi50eXBlLnN0YXJ0c1dpdGgoIm1vdXNlIikmJihuLnR5cGU9bi50eXBlLnJlcGxhY2UoIm1vdXNlIiwicG9pbnRlciIpKSxuLnR5cGUuc3RhcnRzV2l0aCgidG91Y2giKSYmKG4udHlwZT1HMltuLnR5cGVdfHxuLnR5cGUpLG59fSx7a2V5OiJub3JtYWxpemVXaGVlbEV2ZW50Iix2YWx1ZTpmdW5jdGlvbihuKXt2YXIgcj10aGlzLnJvb3RXaGVlbEV2ZW50O3RoaXMudHJhbnNmZXJNb3VzZURhdGEocixuKSxyLmRlbHRhTW9kZT1uLmRlbHRhTW9kZSxyLmRlbHRhWD1uLmRlbHRhWCxyLmRlbHRhWT1uLmRlbHRhWSxyLmRlbHRhWj1uLmRlbHRhWjt2YXIgaT10aGlzLmNvbnRleHQuZXZlbnRTZXJ2aWNlLmNsaWVudDJWaWV3cG9ydCh7eDpuLmNsaWVudFgseTpuLmNsaWVudFl9KSxhPWkueCxvPWkueTtyLnZpZXdwb3J0Lng9YSxyLnZpZXdwb3J0Lnk9bzt2YXIgcz10aGlzLmNvbnRleHQuZXZlbnRTZXJ2aWNlLnZpZXdwb3J0MkNhbnZhcyhyLnZpZXdwb3J0KSxjPXMueCxsPXMueTtyZXR1cm4gci5jYW52YXMueD1jLHIuY2FudmFzLnk9bCxyLmdsb2JhbC5jb3B5RnJvbShyLmNhbnZhcyksci5vZmZzZXQuY29weUZyb20oci5jYW52YXMpLHIubmF0aXZlRXZlbnQ9bixyLnR5cGU9bi50eXBlLHJ9fSx7a2V5OiJ0cmFuc2Zlck1vdXNlRGF0YSIsdmFsdWU6ZnVuY3Rpb24obixyKXtuLmlzVHJ1c3RlZD1yLmlzVHJ1c3RlZCxuLnNyY0VsZW1lbnQ9ci5zcmNFbGVtZW50LG4udGltZVN0YW1wPWxwLm5vdygpLG4udHlwZT1yLnR5cGUsbi5hbHRLZXk9ci5hbHRLZXksbi5tZXRhS2V5PXIubWV0YUtleSxuLnNoaWZ0S2V5PXIuc2hpZnRLZXksbi5jdHJsS2V5PXIuY3RybEtleSxuLmJ1dHRvbj1yLmJ1dHRvbixuLmJ1dHRvbnM9ci5idXR0b25zLG4uY2xpZW50Lng9ci5jbGllbnRYLG4uY2xpZW50Lnk9ci5jbGllbnRZLG4ubW92ZW1lbnQueD1yLm1vdmVtZW50WCxuLm1vdmVtZW50Lnk9ci5tb3ZlbWVudFksbi5wYWdlLng9ci5wYWdlWCxuLnBhZ2UueT1yLnBhZ2VZLG4uc2NyZWVuLng9ci5zY3JlZW5YLG4uc2NyZWVuLnk9ci5zY3JlZW5ZLG4ucmVsYXRlZFRhcmdldD1udWxsfX0se2tleToic2V0Q3Vyc29yIix2YWx1ZTpmdW5jdGlvbihuKXt0aGlzLmNvbnRleHQuY29udGV4dFNlcnZpY2UuYXBwbHlDdXJzb3JTdHlsZShufHx0aGlzLmNvbnRleHQuY29uZmlnLmN1cnNvcnx8ImRlZmF1bHQiKX19LHtrZXk6Im5vcm1hbGl6ZVRvUG9pbnRlckV2ZW50Iix2YWx1ZTpmdW5jdGlvbihuLHIpe3ZhciBpPVtdO2lmKHIuaXNUb3VjaEV2ZW50KG4pKWZvcih2YXIgYT0wO2E8bi5jaGFuZ2VkVG91Y2hlcy5sZW5ndGg7YSsrKXt2YXIgbz1uLmNoYW5nZWRUb3VjaGVzW2FdO0VuKG8uYnV0dG9uKSYmKG8uYnV0dG9uPTApLEVuKG8uYnV0dG9ucykmJihvLmJ1dHRvbnM9MSksRW4oby5pc1ByaW1hcnkpJiYoby5pc1ByaW1hcnk9bi50b3VjaGVzLmxlbmd0aD09PTEmJm4udHlwZT09PSJ0b3VjaHN0YXJ0IiksRW4oby53aWR0aCkmJihvLndpZHRoPW8ucmFkaXVzWHx8MSksRW4oby5oZWlnaHQpJiYoby5oZWlnaHQ9by5yYWRpdXNZfHwxKSxFbihvLnRpbHRYKSYmKG8udGlsdFg9MCksRW4oby50aWx0WSkmJihvLnRpbHRZPTApLEVuKG8ucG9pbnRlclR5cGUpJiYoby5wb2ludGVyVHlwZT0idG91Y2giKSxFbihvLnBvaW50ZXJJZCkmJihvLnBvaW50ZXJJZD1vLmlkZW50aWZpZXJ8fDApLEVuKG8ucHJlc3N1cmUpJiYoby5wcmVzc3VyZT1vLmZvcmNlfHwuNSksRW4oby50d2lzdCkmJihvLnR3aXN0PTApLEVuKG8udGFuZ2VudGlhbFByZXNzdXJlKSYmKG8udGFuZ2VudGlhbFByZXNzdXJlPTApLG8uaXNOb3JtYWxpemVkPSEwLG8udHlwZT1uLnR5cGUsaS5wdXNoKG8pfWVsc2UgaWYoci5pc01vdXNlRXZlbnQobikpe3ZhciBzPW47RW4ocy5pc1ByaW1hcnkpJiYocy5pc1ByaW1hcnk9ITApLEVuKHMud2lkdGgpJiYocy53aWR0aD0xKSxFbihzLmhlaWdodCkmJihzLmhlaWdodD0xKSxFbihzLnRpbHRYKSYmKHMudGlsdFg9MCksRW4ocy50aWx0WSkmJihzLnRpbHRZPTApLEVuKHMucG9pbnRlclR5cGUpJiYocy5wb2ludGVyVHlwZT0ibW91c2UiKSxFbihzLnBvaW50ZXJJZCkmJihzLnBvaW50ZXJJZD1XMiksRW4ocy5wcmVzc3VyZSkmJihzLnByZXNzdXJlPS41KSxFbihzLnR3aXN0KSYmKHMudHdpc3Q9MCksRW4ocy50YW5nZW50aWFsUHJlc3N1cmUpJiYocy50YW5nZW50aWFsUHJlc3N1cmU9MCkscy5pc05vcm1hbGl6ZWQ9ITAsaS5wdXNoKHMpfWVsc2UgaS5wdXNoKG4pO3JldHVybiBpfX1dKX0oKTttay50YWc9IkV2ZW50Ijt2YXIgajg9W2R0LkNJUkNMRSxkdC5FTExJUFNFLGR0LklNQUdFLGR0LlJFQ1QsZHQuTElORSxkdC5QT0xZTElORSxkdC5QT0xZR09OLGR0LlRFWFQsZHQuUEFUSCxkdC5IVE1MXSxGOD1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXsoMCx4dC5aKSh0aGlzLHQpfXJldHVybigwLE90LlopKHQsW3trZXk6ImlzVmlzaWJsZSIsdmFsdWU6ZnVuY3Rpb24obixyKXt2YXIgaSxhPXIuY3VsbGFibGU7aWYoIWEuZW5hYmxlKXJldHVybiEwO3ZhciBvPXIuZ2V0UmVuZGVyQm91bmRzKCk7aWYoeHIuaXNFbXB0eShvKSlyZXR1cm4hMTt2YXIgcz1uLmdldEZydXN0dW0oKSxjPShpPXIucGFyZW50Tm9kZSk9PT1udWxsfHxpPT09dm9pZCAwfHwoaT1pLmN1bGxhYmxlKT09PW51bGx8fGk9PT12b2lkIDA/dm9pZCAwOmkudmlzaWJpbGl0eVBsYW5lTWFzaztyZXR1cm4gYS52aXNpYmlsaXR5UGxhbmVNYXNrPXRoaXMuY29tcHV0ZVZpc2liaWxpdHlXaXRoUGxhbmVNYXNrKHIsbyxjfHxhcy5JTkRFVEVSTUlOQVRFLHMucGxhbmVzKSxhLnZpc2libGU9YS52aXNpYmlsaXR5UGxhbmVNYXNrIT09YXMuT1VUU0lERSxhLnZpc2libGV9fSx7a2V5OiJjb21wdXRlVmlzaWJpbGl0eVdpdGhQbGFuZU1hc2siLHZhbHVlOmZ1bmN0aW9uKG4scixpLGEpe2lmKGk9PT1hcy5PVVRTSURFfHxpPT09YXMuSU5TSURFKXJldHVybiBpO2Zvcih2YXIgbz1hcy5JTlNJREUscz1qOC5pbmRleE9mKG4ubm9kZU5hbWUpPi0xLGM9MCxsPWEubGVuZ3RoO2M8bDsrK2Mpe3ZhciB1PTE8PGM7aWYoaSZ1JiYhKHMmJihjPT09NHx8Yz09PTUpKSl7dmFyIGY9YVtjXSxkPWYubm9ybWFsLGg9Zi5kaXN0YW5jZTtpZihsYShkLHIuZ2V0UG9zaXRpdmVGYXJQb2ludChhW2NdKSkraDwwKXJldHVybiBhcy5PVVRTSURFO2xhKGQsci5nZXROZWdhdGl2ZUZhclBvaW50KGFbY10pKStoPDAmJihvfD11KX19cmV0dXJuIG99fV0pfSgpLGJrPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpeygwLHh0LlopKHRoaXMsdCksdGhpcy5zeW5jVGFza3M9bmV3IE1hcCx0aGlzLmlzRmlyc3RUaW1lUmVuZGVyaW5nPSEwLHRoaXMuc3luY2luZz0hMSx0aGlzLmlzRmlyc3RUaW1lUmVuZGVyaW5nRmluaXNoZWQ9ITF9cmV0dXJuKDAsT3QuWikodCxbe2tleToiYXBwbHkiLHZhbHVlOmZ1bmN0aW9uKG4pe3ZhciByPXRoaXMsaSxhPW4ucmVuZGVyaW5nU2VydmljZSxvPW4ucmVuZGVyaW5nQ29udGV4dCxzPW4uckJ1c2hSb290LGM9by5yb290Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXc7dGhpcy5yQnVzaD1zO3ZhciBsPWZ1bmN0aW9uKGcpe3ZhciB5PWcudGFyZ2V0O3kucmVuZGVyYWJsZS5kaXJ0eT0hMCxhLmRpcnRpZnkoKX0sdT1mdW5jdGlvbihnKXtyLnN5bmNUYXNrcy5zZXQoZy50YXJnZXQsZy5kZXRhaWwuYWZmZWN0Q2hpbGRyZW4pLGEuZGlydGlmeSgpfSxmPWZ1bmN0aW9uKGcpe3ZhciB5PWcudGFyZ2V0O0N0LmVuYWJsZVNpemVBdHRlbnVhdGlvbiYmQ3Quc3R5bGVWYWx1ZVJlZ2lzdHJ5LnVwZGF0ZVNpemVBdHRlbnVhdGlvbih5LGMuZ2V0Q2FtZXJhKCkuZ2V0Wm9vbSgpKX0sZD1mdW5jdGlvbihnKXt2YXIgeT1nLnRhcmdldCxiPXkuckJ1c2hOb2RlO2IuYWFiYiYmci5yQnVzaC5yZW1vdmUoYi5hYWJiKSxyLnN5bmNUYXNrcy5kZWxldGUoeSksQ3Quc2NlbmVHcmFwaFNlcnZpY2UuZGlydGlmeVRvUm9vdCh5KSxhLmRpcnRpZnkoKX07YS5ob29rcy5pbml0LnRhcCh0LnRhZyxmdW5jdGlvbigpe2MuYWRkRXZlbnRMaXN0ZW5lcigkZS5NT1VOVEVELGYpLGMuYWRkRXZlbnRMaXN0ZW5lcigkZS5VTk1PVU5URUQsZCksYy5hZGRFdmVudExpc3RlbmVyKCRlLkFUVFJfTU9ESUZJRUQsbCksYy5hZGRFdmVudExpc3RlbmVyKCRlLkJPVU5EU19DSEFOR0VELHUpfSksYS5ob29rcy5kZXN0cm95LnRhcCh0LnRhZyxmdW5jdGlvbigpe2MucmVtb3ZlRXZlbnRMaXN0ZW5lcigkZS5NT1VOVEVELGYpLGMucmVtb3ZlRXZlbnRMaXN0ZW5lcigkZS5VTk1PVU5URUQsZCksYy5yZW1vdmVFdmVudExpc3RlbmVyKCRlLkFUVFJfTU9ESUZJRUQsbCksYy5yZW1vdmVFdmVudExpc3RlbmVyKCRlLkJPVU5EU19DSEFOR0VELHUpLHIuc3luY1Rhc2tzLmNsZWFyKCl9KTt2YXIgaD0oaT1DdC5nbG9iYWxUaGlzLnJlcXVlc3RJZGxlQ2FsbGJhY2spIT09bnVsbCYmaSE9PXZvaWQgMD9pOiRmLmJpbmQoQ3QuZ2xvYmFsVGhpcyk7YS5ob29rcy5lbmRGcmFtZS50YXAodC50YWcsZnVuY3Rpb24oKXtyLmlzRmlyc3RUaW1lUmVuZGVyaW5nPyhyLmlzRmlyc3RUaW1lUmVuZGVyaW5nPSExLHIuc3luY2luZz0hMCxoKGZ1bmN0aW9uKCl7ci5zeW5jUlRyZWUoITApLHIuaXNGaXJzdFRpbWVSZW5kZXJpbmdGaW5pc2hlZD0hMH0pKTpyLnN5bmNSVHJlZSgpfSl9fSx7a2V5OiJzeW5jTm9kZSIsdmFsdWU6ZnVuY3Rpb24obil7dmFyIHI9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOiExO2lmKG4uaXNDb25uZWN0ZWQpe3ZhciBpPW4uckJ1c2hOb2RlO2kuYWFiYiYmdGhpcy5yQnVzaC5yZW1vdmUoaS5hYWJiKTt2YXIgYT1uLmdldFJlbmRlckJvdW5kcygpO2lmKGEpe3ZhciBvPW4ucmVuZGVyYWJsZTtyJiYoby5kaXJ0eVJlbmRlckJvdW5kc3x8KG8uZGlydHlSZW5kZXJCb3VuZHM9bmV3IHhyKSxvLmRpcnR5UmVuZGVyQm91bmRzLnVwZGF0ZShhLmNlbnRlcixhLmhhbGZFeHRlbnRzKSk7dmFyIHM9YS5nZXRNaW4oKSxjPSgwLFRlLlopKHMsMiksbD1jWzBdLHU9Y1sxXSxmPWEuZ2V0TWF4KCksZD0oMCxUZS5aKShmLDIpLGg9ZFswXSx2PWRbMV07aS5hYWJifHwoaS5hYWJiPXt9KSxpLmFhYmIuZGlzcGxheU9iamVjdD1uLGkuYWFiYi5taW5YPWwsaS5hYWJiLm1pblk9dSxpLmFhYmIubWF4WD1oLGkuYWFiYi5tYXhZPXZ9aWYoaS5hYWJiJiYhaXNOYU4oaS5hYWJiLm1heFgpJiYhaXNOYU4oaS5hYWJiLm1heFgpJiYhaXNOYU4oaS5hYWJiLm1pblgpJiYhaXNOYU4oaS5hYWJiLm1pblkpKXJldHVybiBpLmFhYmJ9fX0se2tleToic3luY1JUcmVlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBuPXRoaXMscj1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXZvaWQgMD9hcmd1bWVudHNbMF06ITE7aWYoISghciYmKHRoaXMuc3luY2luZ3x8dGhpcy5zeW5jVGFza3Muc2l6ZT09PTApKSl7dGhpcy5zeW5jaW5nPSEwO3ZhciBpPVtdLGE9bmV3IFNldCxvPWZ1bmN0aW9uKGMpe2lmKCFhLmhhcyhjKSYmYy5yZW5kZXJhYmxlKXt2YXIgbD1uLnN5bmNOb2RlKGMscik7bCYmKGkucHVzaChsKSxhLmFkZChjKSl9fTt0aGlzLnN5bmNUYXNrcy5mb3JFYWNoKGZ1bmN0aW9uKHMsYyl7cyYmYy5mb3JFYWNoKG8pO2Zvcih2YXIgbD1jO2w7KW8obCksbD1sLnBhcmVudEVsZW1lbnR9KSx0aGlzLnJCdXNoLmxvYWQoaSksaS5sZW5ndGg9MCx0aGlzLnN5bmNpbmc9ITF9fX1dKX0oKTtiay50YWc9IlByZXBhcmUiO2Z1bmN0aW9uIGthdCh0KXtyZXR1cm4hIXQuZG9jdW1lbnR9dmFyIHZvPWZ1bmN0aW9uKHQpe3JldHVybiB0LlJFQURZPSJyZWFkeSIsdC5CRUZPUkVfUkVOREVSPSJiZWZvcmVyZW5kZXIiLHQuUkVSRU5ERVI9InJlcmVuZGVyIix0LkFGVEVSX1JFTkRFUj0iYWZ0ZXJyZW5kZXIiLHQuQkVGT1JFX0RFU1RST1k9ImJlZm9yZWRlc3Ryb3kiLHQuQUZURVJfREVTVFJPWT0iYWZ0ZXJkZXN0cm95Iix0LlJFU0laRT0icmVzaXplIix0LkRJUlRZX1JFQ1RBTkdMRT0iZGlydHlyZWN0YW5nbGUiLHQuUkVOREVSRVJfQ0hBTkdFRD0icmVuZGVyZXJjaGFuZ2VkIix0fSh7fSkseGs9NTAwLEI4PS4xLHo4PTFlMyxNeT1uZXcgTm4oJGUuTU9VTlRFRCksa3k9bmV3IE5uKCRlLlVOTU9VTlRFRCksT189bmV3IE5uKHZvLkJFRk9SRV9SRU5ERVIpLF9rPW5ldyBObih2by5SRVJFTkRFUiksU189bmV3IE5uKHZvLkFGVEVSX1JFTkRFUiksd2s9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShuKXt2YXIgcjsoMCx4dC5aKSh0aGlzLGUpLHI9KDAsRGUuWikodGhpcyxlKSxyLkVsZW1lbnQ9b3Isci5pbml0ZWQ9ITEsci5jb250ZXh0PXt9O3ZhciBpPW4uY29udGFpbmVyLGE9bi5jYW52YXMsbz1uLnJlbmRlcmVyLHM9bi53aWR0aCxjPW4uaGVpZ2h0LGw9bi5iYWNrZ3JvdW5kLHU9bi5jdXJzb3IsZj1uLnN1cHBvcnRzTXV0aXBsZUNhbnZhc2VzSW5PbmVDb250YWluZXIsZD1uLmNsZWFuVXBPbkRlc3Ryb3ksaD1kPT09dm9pZCAwPyEwOmQsdj1uLm9mZnNjcmVlbkNhbnZhcyxnPW4uZGV2aWNlUGl4ZWxSYXRpbyx5PW4ucmVxdWVzdEFuaW1hdGlvbkZyYW1lLGI9bi5jYW5jZWxBbmltYXRpb25GcmFtZSx4PW4uY3JlYXRlSW1hZ2UsXz1uLnN1cHBvcnRzVG91Y2hFdmVudHMsdz1uLnN1cHBvcnRzUG9pbnRlckV2ZW50cyxPPW4uaXNUb3VjaEV2ZW50LEU9bi5pc01vdXNlRXZlbnQsTT1uLmRibENsaWNrU3BlZWQsaz1zLEE9YyxQPWd8fGNwJiZ3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb3x8MTtyZXR1cm4gUD1QPj0xP01hdGguY2VpbChQKToxLGEmJihrPXN8fEIyKGEpfHxhLndpZHRoL1AsQT1jfHx6MihhKXx8YS5oZWlnaHQvUCksci5jdXN0b21FbGVtZW50cz1uZXcgSTgsci5kZXZpY2VQaXhlbFJhdGlvPVAsci5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU9eSE9bnVsbD95OiRmLmJpbmQoQ3QuZ2xvYmFsVGhpcyksci5jYW5jZWxBbmltYXRpb25GcmFtZT1iIT1udWxsP2I6dXAuYmluZChDdC5nbG9iYWxUaGlzKSxyLnN1cHBvcnRzVG91Y2hFdmVudHM9XyE9bnVsbD9fOiJvbnRvdWNoc3RhcnQiaW4gQ3QuZ2xvYmFsVGhpcyxyLnN1cHBvcnRzUG9pbnRlckV2ZW50cz13IT1udWxsP3c6ISFDdC5nbG9iYWxUaGlzLlBvaW50ZXJFdmVudCxyLmlzVG91Y2hFdmVudD1PIT1udWxsP086ZnVuY3Rpb24oQyl7cmV0dXJuIHIuc3VwcG9ydHNUb3VjaEV2ZW50cyYmQyBpbnN0YW5jZW9mIEN0Lmdsb2JhbFRoaXMuVG91Y2hFdmVudH0sci5pc01vdXNlRXZlbnQ9RSE9bnVsbD9FOmZ1bmN0aW9uKEMpe3JldHVybiFDdC5nbG9iYWxUaGlzLk1vdXNlRXZlbnR8fEMgaW5zdGFuY2VvZiBDdC5nbG9iYWxUaGlzLk1vdXNlRXZlbnQmJighci5zdXBwb3J0c1BvaW50ZXJFdmVudHN8fCEoQyBpbnN0YW5jZW9mIEN0Lmdsb2JhbFRoaXMuUG9pbnRlckV2ZW50KSl9LHYmJihDdC5vZmZzY3JlZW5DYW52YXM9diksci5kb2N1bWVudD1uZXcgRDgsci5kb2N1bWVudC5kZWZhdWx0Vmlldz1yLGZ8fGoyKGkscixoKSxyLmluaXRSZW5kZXJpbmdDb250ZXh0KCgwLEVlLlopKCgwLEVlLlopKHt9LG4pLHt9LHt3aWR0aDprLGhlaWdodDpBLGJhY2tncm91bmQ6bCE9bnVsbD9sOiJ0cmFuc3BhcmVudCIsY3Vyc29yOnUhPW51bGw/dToiZGVmYXVsdCIsY2xlYW5VcE9uRGVzdHJveTpoLGRldmljZVBpeGVsUmF0aW86UCxyZXF1ZXN0QW5pbWF0aW9uRnJhbWU6ci5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUsY2FuY2VsQW5pbWF0aW9uRnJhbWU6ci5jYW5jZWxBbmltYXRpb25GcmFtZSxzdXBwb3J0c1RvdWNoRXZlbnRzOnIuc3VwcG9ydHNUb3VjaEV2ZW50cyxzdXBwb3J0c1BvaW50ZXJFdmVudHM6ci5zdXBwb3J0c1BvaW50ZXJFdmVudHMsaXNUb3VjaEV2ZW50OnIuaXNUb3VjaEV2ZW50LGlzTW91c2VFdmVudDpyLmlzTW91c2VFdmVudCxkYmxDbGlja1NwZWVkOk0hPW51bGw/TToyMDAsY3JlYXRlSW1hZ2U6eCE9bnVsbD94OmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB3aW5kb3cuSW1hZ2V9fSkpLHIuaW5pdERlZmF1bHRDYW1lcmEoayxBLG8uY2xpcFNwYWNlTmVhclopLHIuaW5pdFJlbmRlcmVyKG8sITApLHJ9cmV0dXJuKDAsTWUuWikoZSx0KSwoMCxPdC5aKShlLFt7a2V5OiJpbml0UmVuZGVyaW5nQ29udGV4dCIsdmFsdWU6ZnVuY3Rpb24ocil7dGhpcy5jb250ZXh0LmNvbmZpZz1yLHRoaXMuY29udGV4dC5yZW5kZXJpbmdDb250ZXh0PXtyb290OnRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LHJlbmRlckxpc3RDdXJyZW50RnJhbWU6W10sdW5jdWxsZWRFbnRpdGllczpbXSxyZW5kZXJSZWFzb25zOm5ldyBTZXQsZm9yY2U6ITEsZGlydHk6ITF9fX0se2tleToiaW5pdERlZmF1bHRDYW1lcmEiLHZhbHVlOmZ1bmN0aW9uKHIsaSxhKXt2YXIgbz10aGlzLHM9bmV3IEN0LkNhbWVyYUNvbnRyaWJ1dGlvbjtzLmNsaXBTcGFjZU5lYXJaPWEscy5zZXRUeXBlKExuLkVYUExPUklORyx6aC5ERUZBVUxUKS5zZXRQb3NpdGlvbihyLzIsaS8yLHhrKS5zZXRGb2NhbFBvaW50KHIvMixpLzIsMCkuc2V0T3J0aG9ncmFwaGljKHIvLTIsci8yLGkvMixpLy0yLEI4LHo4KSxzLmNhbnZhcz10aGlzLHMuZXZlbnRFbWl0dGVyLm9uKFdoLlVQREFURUQsZnVuY3Rpb24oKXtvLmNvbnRleHQucmVuZGVyaW5nQ29udGV4dC5yZW5kZXJSZWFzb25zLmFkZChLYy5DQU1FUkFfQ0hBTkdFRCksQ3QuZW5hYmxlU2l6ZUF0dGVudWF0aW9uJiZvLmdldENvbmZpZygpLnJlbmRlcmVyLmdldENvbmZpZygpLmVuYWJsZVNpemVBdHRlbnVhdGlvbiYmby51cGRhdGVTaXplQXR0ZW51YXRpb24oKX0pLHRoaXMuY29udGV4dC5jYW1lcmE9c319LHtrZXk6InVwZGF0ZVNpemVBdHRlbnVhdGlvbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgcj10aGlzLmdldENhbWVyYSgpLmdldFpvb20oKTt0aGlzLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5mb3JFYWNoKGZ1bmN0aW9uKGkpe0N0LnN0eWxlVmFsdWVSZWdpc3RyeS51cGRhdGVTaXplQXR0ZW51YXRpb24oaSxyKX0pfX0se2tleToiZ2V0Q29uZmlnIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbnRleHQuY29uZmlnfX0se2tleToiZ2V0Um9vdCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnR9fSx7a2V5OiJnZXRDYW1lcmEiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29udGV4dC5jYW1lcmF9fSx7a2V5OiJnZXRDb250ZXh0U2VydmljZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb250ZXh0LmNvbnRleHRTZXJ2aWNlfX0se2tleToiZ2V0RXZlbnRTZXJ2aWNlIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbnRleHQuZXZlbnRTZXJ2aWNlfX0se2tleToiZ2V0UmVuZGVyaW5nU2VydmljZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb250ZXh0LnJlbmRlcmluZ1NlcnZpY2V9fSx7a2V5OiJnZXRSZW5kZXJpbmdDb250ZXh0Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbnRleHQucmVuZGVyaW5nQ29udGV4dH19LHtrZXk6ImdldFN0YXRzIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFJlbmRlcmluZ1NlcnZpY2UoKS5nZXRTdGF0cygpfX0se2tleToicmVhZHkiLGdldDpmdW5jdGlvbigpe3ZhciByPXRoaXM7cmV0dXJuIHRoaXMucmVhZHlQcm9taXNlfHwodGhpcy5yZWFkeVByb21pc2U9bmV3IFByb21pc2UoZnVuY3Rpb24oaSl7ci5yZXNvbHZlUmVhZHlQcm9taXNlPWZ1bmN0aW9uKCl7aShyKX19KSx0aGlzLmluaXRlZCYmdGhpcy5yZXNvbHZlUmVhZHlQcm9taXNlKCkpLHRoaXMucmVhZHlQcm9taXNlfX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXZvaWQgMD9hcmd1bWVudHNbMF06ITAsaT1hcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMDtJci5jbGVhckNhY2hlKCksaXx8dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBObih2by5CRUZPUkVfREVTVFJPWSkpLHRoaXMuZnJhbWVJZCYmdGhpcy5jYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLmZyYW1lSWQpO3ZhciBhPXRoaXMuZ2V0Um9vdCgpO3ImJih0aGlzLnVubW91bnRDaGlsZHJlbihhKSx0aGlzLmRvY3VtZW50LmRlc3Ryb3koKSx0aGlzLmdldEV2ZW50U2VydmljZSgpLmRlc3Ryb3koKSksdGhpcy5nZXRSZW5kZXJpbmdTZXJ2aWNlKCkuZGVzdHJveSgpLHRoaXMuZ2V0Q29udGV4dFNlcnZpY2UoKS5kZXN0cm95KCksdGhpcy5jb250ZXh0LnJCdXNoUm9vdCYmdGhpcy5jb250ZXh0LnJCdXNoUm9vdC5jbGVhcigpLGl8fHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgTm4odm8uQUZURVJfREVTVFJPWSkpO3ZhciBvPWZ1bmN0aW9uKGMpe2MuY3VycmVudFRhcmdldD1udWxsLGMubWFuYWdlcj1udWxsLGMudGFyZ2V0PW51bGwsYy5yZWxhdGVkTm9kZT1udWxsfTtvKE15KSxvKGt5KSxvKE9fKSxvKF9rKSxvKFNfKSxvKGxzKSxvKF9fKSxvKHdfKSxvKHZrKX19LHtrZXk6ImNoYW5nZVNpemUiLHZhbHVlOmZ1bmN0aW9uKHIsaSl7dGhpcy5yZXNpemUocixpKX19LHtrZXk6InJlc2l6ZSIsdmFsdWU6ZnVuY3Rpb24ocixpKXt2YXIgYT10aGlzLmNvbnRleHQuY29uZmlnO2Eud2lkdGg9cixhLmhlaWdodD1pLHRoaXMuZ2V0Q29udGV4dFNlcnZpY2UoKS5yZXNpemUocixpKTt2YXIgbz10aGlzLmNvbnRleHQuY2FtZXJhLHM9by5nZXRQcm9qZWN0aW9uTW9kZSgpO28uc2V0UG9zaXRpb24oci8yLGkvMix4aykuc2V0Rm9jYWxQb2ludChyLzIsaS8yLDApLHM9PT1NYS5PUlRIT0dSQVBISUM/by5zZXRPcnRob2dyYXBoaWMoci8tMixyLzIsaS8yLGkvLTIsby5nZXROZWFyKCksby5nZXRGYXIoKSk6by5zZXRBc3BlY3Qoci9pKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IE5uKHZvLlJFU0laRSx7d2lkdGg6cixoZWlnaHQ6aX0pKX19LHtrZXk6ImFwcGVuZENoaWxkIix2YWx1ZTpmdW5jdGlvbihyLGkpe3JldHVybiB0aGlzLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5hcHBlbmRDaGlsZChyLGkpfX0se2tleToiaW5zZXJ0QmVmb3JlIix2YWx1ZTpmdW5jdGlvbihyLGkpe3JldHVybiB0aGlzLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5pbnNlcnRCZWZvcmUocixpKX19LHtrZXk6InJlbW92ZUNoaWxkIix2YWx1ZTpmdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQucmVtb3ZlQ2hpbGQocil9fSx7a2V5OiJyZW1vdmVDaGlsZHJlbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5yZW1vdmVDaGlsZHJlbigpfX0se2tleToiZGVzdHJveUNoaWxkcmVuIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmRlc3Ryb3lDaGlsZHJlbigpfX0se2tleToicmVuZGVyIix2YWx1ZTpmdW5jdGlvbihyKXt2YXIgaT10aGlzO3ImJihPXy5kZXRhaWw9cixTXy5kZXRhaWw9ciksdGhpcy5kaXNwYXRjaEV2ZW50KE9fKTt2YXIgYT10aGlzLmdldFJlbmRlcmluZ1NlcnZpY2UoKTthLnJlbmRlcih0aGlzLmdldENvbmZpZygpLHIsZnVuY3Rpb24oKXtpLmRpc3BhdGNoRXZlbnQoX2spfSksdGhpcy5kaXNwYXRjaEV2ZW50KFNfKX19LHtrZXk6InJ1biIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgcj10aGlzLGk9ZnVuY3Rpb24obyxzKXtyLnJlbmRlcihzKSxyLmZyYW1lSWQ9ci5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoaSl9O2koKX19LHtrZXk6ImluaXRSZW5kZXJlciIsdmFsdWU6ZnVuY3Rpb24ocil7dmFyIGk9dGhpcyxhPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTohMTtpZighcil0aHJvdyBuZXcgRXJyb3IoIlJlbmRlcmVyIGlzIHJlcXVpcmVkLiIpO3RoaXMuaW5pdGVkPSExLHRoaXMucmVhZHlQcm9taXNlPXZvaWQgMCx0aGlzLmNvbnRleHQuckJ1c2hSb290PW5ldyAkbCx0aGlzLmNvbnRleHQucmVuZGVyaW5nUGx1Z2lucz1bXSx0aGlzLmNvbnRleHQucmVuZGVyaW5nUGx1Z2lucy5wdXNoKG5ldyBtayxuZXcgYmssbmV3IHlrKFtuZXcgRjhdKSksdGhpcy5sb2FkUmVuZGVyZXJDb250YWluZXJNb2R1bGUociksdGhpcy5jb250ZXh0LmNvbnRleHRTZXJ2aWNlPW5ldyB0aGlzLmNvbnRleHQuQ29udGV4dFNlcnZpY2UoKDAsRWUuWikoKDAsRWUuWikoe30sQ3QpLHRoaXMuY29udGV4dCkpLHRoaXMuY29udGV4dC5yZW5kZXJpbmdTZXJ2aWNlPW5ldyB5XyhDdCx0aGlzLmNvbnRleHQpLHRoaXMuY29udGV4dC5ldmVudFNlcnZpY2U9bmV3IGdfKEN0LHRoaXMuY29udGV4dCksdGhpcy5jb250ZXh0LmV2ZW50U2VydmljZS5pbml0KCksdGhpcy5jb250ZXh0LmNvbnRleHRTZXJ2aWNlLmluaXQ/KHRoaXMuY29udGV4dC5jb250ZXh0U2VydmljZS5pbml0KCksdGhpcy5pbml0UmVuZGVyaW5nU2VydmljZShyLGEsITApKTp0aGlzLmNvbnRleHQuY29udGV4dFNlcnZpY2UuaW5pdEFzeW5jKCkudGhlbihmdW5jdGlvbigpe2kuaW5pdFJlbmRlcmluZ1NlcnZpY2UocixhKX0pLmNhdGNoKGZ1bmN0aW9uKG8pe2NvbnNvbGUuZXJyb3Iobyl9KX19LHtrZXk6ImluaXRSZW5kZXJpbmdTZXJ2aWNlIix2YWx1ZTpmdW5jdGlvbihyKXt2YXIgaT10aGlzLGE9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOiExLG89YXJndW1lbnRzLmxlbmd0aD4yJiZhcmd1bWVudHNbMl0hPT12b2lkIDA/YXJndW1lbnRzWzJdOiExO3RoaXMuY29udGV4dC5yZW5kZXJpbmdTZXJ2aWNlLmluaXQoZnVuY3Rpb24oKXtpLmluaXRlZD0hMCxhP28/aS5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtpLmRpc3BhdGNoRXZlbnQobmV3IE5uKHZvLlJFQURZKSl9KTppLmRpc3BhdGNoRXZlbnQobmV3IE5uKHZvLlJFQURZKSk6aS5kaXNwYXRjaEV2ZW50KG5ldyBObih2by5SRU5ERVJFUl9DSEFOR0VEKSksaS5yZWFkeVByb21pc2UmJmkucmVzb2x2ZVJlYWR5UHJvbWlzZSgpLGF8fGkuZ2V0Um9vdCgpLmZvckVhY2goZnVuY3Rpb24ocyl7dmFyIGM9cyxsPWMucmVuZGVyYWJsZTtsJiYobC5yZW5kZXJCb3VuZHNEaXJ0eT0hMCxsLmJvdW5kc0RpcnR5PSEwLGwuZGlydHk9ITApfSksaS5tb3VudENoaWxkcmVuKGkuZ2V0Um9vdCgpKSxyLmdldENvbmZpZygpLmVuYWJsZUF1dG9SZW5kZXJpbmcmJmkucnVuKCl9KX19LHtrZXk6ImxvYWRSZW5kZXJlckNvbnRhaW5lck1vZHVsZSIsdmFsdWU6ZnVuY3Rpb24ocil7dmFyIGk9dGhpcyxhPXIuZ2V0UGx1Z2lucygpO2EuZm9yRWFjaChmdW5jdGlvbihvKXtvLmNvbnRleHQ9aS5jb250ZXh0LG8uaW5pdChDdCl9KX19LHtrZXk6InNldFJlbmRlcmVyIix2YWx1ZTpmdW5jdGlvbihyKXt2YXIgaT10aGlzLmdldENvbmZpZygpO2lmKGkucmVuZGVyZXIhPT1yKXt2YXIgYT1pLnJlbmRlcmVyO2kucmVuZGVyZXI9cix0aGlzLmRlc3Ryb3koITEsITApLCgwLGxuLlopKChhPT1udWxsP3ZvaWQgMDphLmdldFBsdWdpbnMoKSl8fFtdKS5yZXZlcnNlKCkuZm9yRWFjaChmdW5jdGlvbihvKXtvLmRlc3Ryb3koQ3QpfSksdGhpcy5pbml0UmVuZGVyZXIocil9fX0se2tleToic2V0Q3Vyc29yIix2YWx1ZTpmdW5jdGlvbihyKXt2YXIgaT10aGlzLmdldENvbmZpZygpO2kuY3Vyc29yPXIsdGhpcy5nZXRDb250ZXh0U2VydmljZSgpLmFwcGx5Q3Vyc29yU3R5bGUocil9fSx7a2V5OiJ1bm1vdW50Q2hpbGRyZW4iLHZhbHVlOmZ1bmN0aW9uKHIpe3ZhciBpPXRoaXM7ci5jaGlsZE5vZGVzLmZvckVhY2goZnVuY3Rpb24oYSl7aS51bm1vdW50Q2hpbGRyZW4oYSl9KSx0aGlzLmluaXRlZCYmKHIuaXNNdXRhdGlvbk9ic2VydmVkP3IuZGlzcGF0Y2hFdmVudChreSk6KGt5LnRhcmdldD1yLHRoaXMuZGlzcGF0Y2hFdmVudChreSwhMCkpLHIhPT10aGlzLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmKHIub3duZXJEb2N1bWVudD1udWxsKSxyLmlzQ29ubmVjdGVkPSExKSxyLmlzQ3VzdG9tRWxlbWVudCYmci5kaXNjb25uZWN0ZWRDYWxsYmFjayYmci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpfX0se2tleToibW91bnRDaGlsZHJlbiIsdmFsdWU6ZnVuY3Rpb24ocil7dmFyIGk9dGhpcyxhPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTpXZihyKTt0aGlzLmluaXRlZD9yLmlzQ29ubmVjdGVkfHwoci5vd25lckRvY3VtZW50PXRoaXMuZG9jdW1lbnQsci5pc0Nvbm5lY3RlZD0hMCxhfHwoci5pc011dGF0aW9uT2JzZXJ2ZWQ/ci5kaXNwYXRjaEV2ZW50KE15KTooTXkudGFyZ2V0PXIsdGhpcy5kaXNwYXRjaEV2ZW50KE15LCEwKSkpKTpjb25zb2xlLndhcm4oIltnXTogWW91IGFyZSB0cnlpbmcgdG8gY2FsbCBgY2FudmFzLmFwcGVuZENoaWxkYCBiZWZvcmUgY2FudmFzJyBpbml0aWFsaXphdGlvbiBmaW5pc2hlZC4gWW91IGNhbiBlaXRoZXIgYXdhaXQgYGNhbnZhcy5yZWFkeWAgb3IgbGlzdGVuIHRvIGBDYW52YXNFdmVudC5SRUFEWWAgbWFudWFsbHkuIiwiYXBwZW5kZWQgY2hpbGQ6ICIsci5ub2RlTmFtZSksci5jaGlsZE5vZGVzLmZvckVhY2goZnVuY3Rpb24obyl7aS5tb3VudENoaWxkcmVuKG8sYSl9KSxyLmlzQ3VzdG9tRWxlbWVudCYmci5jb25uZWN0ZWRDYWxsYmFjayYmci5jb25uZWN0ZWRDYWxsYmFjaygpfX0se2tleToibW91bnRGcmFnbWVudCIsdmFsdWU6ZnVuY3Rpb24ocil7dGhpcy5tb3VudENoaWxkcmVuKHIsITEpfX0se2tleToiY2xpZW50MlZpZXdwb3J0Iix2YWx1ZTpmdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5nZXRFdmVudFNlcnZpY2UoKS5jbGllbnQyVmlld3BvcnQocil9fSx7a2V5OiJ2aWV3cG9ydDJDbGllbnQiLHZhbHVlOmZ1bmN0aW9uKHIpe3JldHVybiB0aGlzLmdldEV2ZW50U2VydmljZSgpLnZpZXdwb3J0MkNsaWVudChyKX19LHtrZXk6InZpZXdwb3J0MkNhbnZhcyIsdmFsdWU6ZnVuY3Rpb24ocil7cmV0dXJuIHRoaXMuZ2V0RXZlbnRTZXJ2aWNlKCkudmlld3BvcnQyQ2FudmFzKHIpfX0se2tleToiY2FudmFzMlZpZXdwb3J0Iix2YWx1ZTpmdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5nZXRFdmVudFNlcnZpY2UoKS5jYW52YXMyVmlld3BvcnQocil9fSx7a2V5OiJnZXRQb2ludEJ5Q2xpZW50Iix2YWx1ZTpmdW5jdGlvbihyLGkpe3JldHVybiB0aGlzLmNsaWVudDJWaWV3cG9ydCh7eDpyLHk6aX0pfX0se2tleToiZ2V0Q2xpZW50QnlQb2ludCIsdmFsdWU6ZnVuY3Rpb24ocixpKXtyZXR1cm4gdGhpcy52aWV3cG9ydDJDbGllbnQoe3g6cix5Oml9KX19XSl9KHh5KTt2YXIgVzg9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBuOygwLHh0LlopKHRoaXMsZSk7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGgsaT1uZXcgQXJyYXkociksYT0wO2E8cjthKyspaVthXT1hcmd1bWVudHNbYV07cmV0dXJuIG49KDAsRGUuWikodGhpcyxlLFtdLmNvbmNhdChpKSksbi5sYW5kbWFya3M9W10sbn1yZXR1cm4oMCxNZS5aKShlLHQpLCgwLE90LlopKGUsW3trZXk6InJvdGF0ZSIsdmFsdWU6ZnVuY3Rpb24ocixpLGEpe2lmKHRoaXMucmVsRWxldmF0aW9uPVpjKGkpLHRoaXMucmVsQXppbXV0aD1aYyhyKSx0aGlzLnJlbFJvbGw9WmMoYSksdGhpcy5lbGV2YXRpb24rPXRoaXMucmVsRWxldmF0aW9uLHRoaXMuYXppbXV0aCs9dGhpcy5yZWxBemltdXRoLHRoaXMucm9sbCs9dGhpcy5yZWxSb2xsLHRoaXMudHlwZT09PUxuLkVYUExPUklORyl7dmFyIG89cW8oamUoKSxbMSwwLDBdLENuKCh0aGlzLnJvdGF0ZVdvcmxkPzE6LTEpKnRoaXMucmVsRWxldmF0aW9uKSkscz1xbyhqZSgpLFswLDEsMF0sQ24oKHRoaXMucm90YXRlV29ybGQ/MTotMSkqdGhpcy5yZWxBemltdXRoKSksYz1xbyhqZSgpLFswLDAsMV0sQ24odGhpcy5yZWxSb2xsKSksbD1LbyhqZSgpLHMsbyk7bD1LbyhqZSgpLGwsYyk7dmFyIHU9dGgoV24oKSxsKTtOcyh0aGlzLm1hdHJpeCx0aGlzLm1hdHJpeCxbMCwwLC10aGlzLmRpc3RhbmNlXSksR24odGhpcy5tYXRyaXgsdGhpcy5tYXRyaXgsdSksTnModGhpcy5tYXRyaXgsdGhpcy5tYXRyaXgsWzAsMCx0aGlzLmRpc3RhbmNlXSl9ZWxzZXtpZihNYXRoLmFicyh0aGlzLmVsZXZhdGlvbik+OTApcmV0dXJuIHRoaXM7dGhpcy5jb21wdXRlTWF0cml4KCl9cmV0dXJuIHRoaXMuX2dldEF4ZXMoKSx0aGlzLnR5cGU9PT1Mbi5PUkJJVElOR3x8dGhpcy50eXBlPT09TG4uRVhQTE9SSU5HP3RoaXMuX2dldFBvc2l0aW9uKCk6dGhpcy50eXBlPT09TG4uVFJBQ0tJTkcmJnRoaXMuX2dldEZvY2FsUG9pbnQoKSx0aGlzLl91cGRhdGUoKSx0aGlzfX0se2tleToicGFuIix2YWx1ZTpmdW5jdGlvbihyLGkpe3ZhciBhPVBpKHIsaSwwKSxvPXdpKHRoaXMucG9zaXRpb24pO3JldHVybiBOYShvLG8sVW8obWUoKSx0aGlzLnJpZ2h0LGFbMF0pKSxOYShvLG8sVW8obWUoKSx0aGlzLnVwLGFbMV0pKSx0aGlzLl9zZXRQb3NpdGlvbihvKSx0aGlzLnRyaWdnZXJVcGRhdGUoKSx0aGlzfX0se2tleToiZG9sbHkiLHZhbHVlOmZ1bmN0aW9uKHIpe3ZhciBpPXRoaXMuZm9yd2FyZCxhPXdpKHRoaXMucG9zaXRpb24pLG89cip0aGlzLmRvbGx5aW5nU3RlcCxzPXRoaXMuZGlzdGFuY2Urcip0aGlzLmRvbGx5aW5nU3RlcDtyZXR1cm4gbz1NYXRoLm1heChNYXRoLm1pbihzLHRoaXMubWF4RGlzdGFuY2UpLHRoaXMubWluRGlzdGFuY2UpLXRoaXMuZGlzdGFuY2UsYVswXSs9byppWzBdLGFbMV0rPW8qaVsxXSxhWzJdKz1vKmlbMl0sdGhpcy5fc2V0UG9zaXRpb24oYSksdGhpcy50eXBlPT09TG4uT1JCSVRJTkd8fHRoaXMudHlwZT09PUxuLkVYUExPUklORz90aGlzLl9nZXREaXN0YW5jZSgpOnRoaXMudHlwZT09PUxuLlRSQUNLSU5HJiZOYSh0aGlzLmZvY2FsUG9pbnQsYSx0aGlzLmRpc3RhbmNlVmVjdG9yKSx0aGlzLnRyaWdnZXJVcGRhdGUoKSx0aGlzfX0se2tleToiY2FuY2VsTGFuZG1hcmtBbmltYXRpb24iLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5sYW5kbWFya0FuaW1hdGlvbklEIT09dm9pZCAwJiZ0aGlzLmNhbnZhcy5jYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLmxhbmRtYXJrQW5pbWF0aW9uSUQpfX0se2tleToiY3JlYXRlTGFuZG1hcmsiLHZhbHVlOmZ1bmN0aW9uKHIpe3ZhciBpLGEsbyxzLGM9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOnt9LGw9Yy5wb3NpdGlvbix1PWw9PT12b2lkIDA/dGhpcy5wb3NpdGlvbjpsLGY9Yy5mb2NhbFBvaW50LGQ9Zj09PXZvaWQgMD90aGlzLmZvY2FsUG9pbnQ6ZixoPWMucm9sbCx2PWMuem9vbSxnPW5ldyBDdC5DYW1lcmFDb250cmlidXRpb247Zy5zZXRUeXBlKHRoaXMudHlwZSx2b2lkIDApLGcuc2V0UG9zaXRpb24odVswXSwoaT11WzFdKSE9PW51bGwmJmkhPT12b2lkIDA/aTp0aGlzLnBvc2l0aW9uWzFdLChhPXVbMl0pIT09bnVsbCYmYSE9PXZvaWQgMD9hOnRoaXMucG9zaXRpb25bMl0pLGcuc2V0Rm9jYWxQb2ludChkWzBdLChvPWRbMV0pIT09bnVsbCYmbyE9PXZvaWQgMD9vOnRoaXMuZm9jYWxQb2ludFsxXSwocz1kWzJdKSE9PW51bGwmJnMhPT12b2lkIDA/czp0aGlzLmZvY2FsUG9pbnRbMl0pLGcuc2V0Um9sbChoIT1udWxsP2g6dGhpcy5yb2xsKSxnLnNldFpvb20odiE9bnVsbD92OnRoaXMuem9vbSk7dmFyIHk9e25hbWU6cixtYXRyaXg6ZHYoZy5nZXRXb3JsZFRyYW5zZm9ybSgpKSxyaWdodDp3aShnLnJpZ2h0KSx1cDp3aShnLnVwKSxmb3J3YXJkOndpKGcuZm9yd2FyZCkscG9zaXRpb246d2koZy5nZXRQb3NpdGlvbigpKSxmb2NhbFBvaW50OndpKGcuZ2V0Rm9jYWxQb2ludCgpKSxkaXN0YW5jZVZlY3Rvcjp3aShnLmdldERpc3RhbmNlVmVjdG9yKCkpLGRpc3RhbmNlOmcuZ2V0RGlzdGFuY2UoKSxkb2xseWluZ1N0ZXA6Zy5nZXREb2xseWluZ1N0ZXAoKSxhemltdXRoOmcuZ2V0QXppbXV0aCgpLGVsZXZhdGlvbjpnLmdldEVsZXZhdGlvbigpLHJvbGw6Zy5nZXRSb2xsKCkscmVsQXppbXV0aDpnLnJlbEF6aW11dGgscmVsRWxldmF0aW9uOmcucmVsRWxldmF0aW9uLHJlbFJvbGw6Zy5yZWxSb2xsLHpvb206Zy5nZXRab29tKCl9O3JldHVybiB0aGlzLmxhbmRtYXJrcy5wdXNoKHkpLHl9fSx7a2V5OiJnb3RvTGFuZG1hcmsiLHZhbHVlOmZ1bmN0aW9uKHIpe3ZhciBpPXRoaXMsYT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06e30sbz1pcihyKT90aGlzLmxhbmRtYXJrcy5maW5kKGZ1bmN0aW9uKEMpe3JldHVybiBDLm5hbWU9PT1yfSk6cjtpZihvKXt2YXIgcz1WbihhKT97ZHVyYXRpb246YX06YSxjPXMuZWFzaW5nLGw9Yz09PXZvaWQgMD8ibGluZWFyIjpjLHU9cy5kdXJhdGlvbixmPXU9PT12b2lkIDA/MTAwOnUsZD1zLmVhc2luZ0Z1bmN0aW9uLGg9ZD09PXZvaWQgMD92b2lkIDA6ZCx2PXMub25maW5pc2gsZz12PT09dm9pZCAwP3ZvaWQgMDp2LHk9cy5vbmZyYW1lLGI9eT09PXZvaWQgMD92b2lkIDA6eSx4PS4wMTt0aGlzLmNhbmNlbExhbmRtYXJrQW5pbWF0aW9uKCk7dmFyIF89by5wb3NpdGlvbix3PW8uZm9jYWxQb2ludCxPPW8uem9vbSxFPW8ucm9sbCxNPWh8fEN0LkVhc2luZ0Z1bmN0aW9uKGwpLGssQT1mdW5jdGlvbigpe2kuc2V0Rm9jYWxQb2ludCh3KSxpLnNldFBvc2l0aW9uKF8pLGkuc2V0Um9sbChFKSxpLnNldFpvb20oTyksaS5jb21wdXRlTWF0cml4KCksaS50cmlnZ2VyVXBkYXRlKCksZz09bnVsbHx8ZygpfTtpZihmPT09MClyZXR1cm4gQSgpO3ZhciBQPWZ1bmN0aW9uKE4pe2s9PT12b2lkIDAmJihrPU4pO3ZhciBMPU4taztpZihMPj1mKXtBKCk7cmV0dXJufXZhciBSPU0oTC9mKSxJPW1lKCksRD1tZSgpLEc9MSxGPTA7RWwoSSxpLmZvY2FsUG9pbnQsdyxSKSxFbChELGkucG9zaXRpb24sXyxSKSxGPWkucm9sbCooMS1SKStFKlIsRz1pLnpvb20qKDEtUikrTypSLGkuc2V0Rm9jYWxQb2ludChJKSxpLnNldFBvc2l0aW9uKEQpLGkuc2V0Um9sbChGKSxpLnNldFpvb20oRyk7dmFyIFc9RHQoSSx3KStEdChELF8pO2lmKFc8PXgmJk89PT12b2lkIDAmJkU9PT12b2lkIDApcmV0dXJuIEEoKTtpLmNvbXB1dGVNYXRyaXgoKSxpLnRyaWdnZXJVcGRhdGUoKSxMPGYmJihiPT1udWxsfHxiKFIpLGkubGFuZG1hcmtBbmltYXRpb25JRD1pLmNhbnZhcy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoUCkpfTt0aGlzLmNhbnZhcy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoUCl9fX1dKX0oX2cpO0N0LkNhbWVyYUNvbnRyaWJ1dGlvbj1XODt2YXIgT2s9bnVsbCxBYXQ9MCxTaz1uZXcgV2Vha01hcCxUYXQ9bnVsbCxQYXQ9bnVsbCxBeSxlYztmdW5jdGlvbiBDYXQodCxlKXtyZXR1cm4gQXk9bmV3IE9rKHQsZSl9ZnVuY3Rpb24gTGF0KHQpe3JldHVybiBlY3x8KGVjPU9rLmNvcHkoQXkpLGVjLm9sZFZhbHVlPXQsZWMpfWZ1bmN0aW9uIFJhdCgpe0F5PWVjPXZvaWQgMH1mdW5jdGlvbiBHOCh0KXtyZXR1cm4gdD09PWVjfHx0PT09QXl9ZnVuY3Rpb24gTmF0KHQsZSl7cmV0dXJuIHQ9PT1lP3Q6ZWMmJkc4KHQpP2VjOm51bGx9ZnVuY3Rpb24gJDgodCl7dC5ub2Rlcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciBuPVNrLmdldChlKTtuJiZuLmZvckVhY2goZnVuY3Rpb24ocil7ci5vYnNlcnZlcj09PXQmJnIucmVtb3ZlVHJhbnNpZW50T2JzZXJ2ZXJzKCl9KX0pfWZ1bmN0aW9uIElhdCh0LGUpe2Zvcih2YXIgbj10O247bj1uLnBhcmVudE5vZGUpe3ZhciByPVNrLmdldChuKTtpZihyKWZvcih2YXIgaT0wO2k8ci5sZW5ndGg7aSsrKXt2YXIgYT1yW2ldLG89YS5vcHRpb25zO2lmKCEobiE9PXQmJiFvLnN1YnRyZWUpKXt2YXIgcz1lKG8pO3MmJmEuZW5xdWV1ZShzKX19fX12YXIgRV89ITEsTV89bnVsbDtmdW5jdGlvbiBEYXQodCl7TV8ucHVzaCh0KSxFX3x8KEVfPSEwLHR5cGVvZiBydW50aW1lLmdsb2JhbFRoaXMhPSJ1bmRlZmluZWQiP3J1bnRpbWUuZ2xvYmFsVGhpcy5zZXRUaW1lb3V0KGtfKTprXygpKX1mdW5jdGlvbiBrXygpe0VfPSExO3ZhciB0PU1fO01fPVtdLHQuc29ydChmdW5jdGlvbihuLHIpe3JldHVybiBuLnVpZC1yLnVpZH0pO3ZhciBlPSExO3QuZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgcj1uLnRha2VSZWNvcmRzKCk7JDgobiksci5sZW5ndGgmJihuLmNhbGxiYWNrKHIsbiksZT0hMCl9KSxlJiZrXygpfXZhciBBXz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKG4scixpLGEpe3ZhciBvO3JldHVybigwLHh0LlopKHRoaXMsZSksbz0oMCxEZS5aKSh0aGlzLGUsW25dKSxvLmN1cnJlbnRUaW1lPWksby50aW1lbGluZVRpbWU9YSxvLnRhcmdldD1yLG8udHlwZT0iZmluaXNoIixvLmJ1YmJsZXM9ITEsby5jdXJyZW50VGFyZ2V0PXIsby5kZWZhdWx0UHJldmVudGVkPSExLG8uZXZlbnRQaGFzZT1vLkFUX1RBUkdFVCxvLnRpbWVTdGFtcD1EYXRlLm5vdygpLG8uY3VycmVudFRpbWU9aSxvLnRpbWVsaW5lVGltZT1hLG99cmV0dXJuKDAsTWUuWikoZSx0KSwoMCxPdC5aKShlKX0oWWYpLFo4PTAsWTg9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUsbil7dmFyIHI7KDAseHQuWikodGhpcyx0KSx0aGlzLmN1cnJlbnRUaW1lUGVuZGluZz0hMSx0aGlzLl9pZGxlPSEwLHRoaXMuX3BhdXNlZD0hMSx0aGlzLl9maW5pc2hlZEZsYWc9ITAsdGhpcy5fY3VycmVudFRpbWU9MCx0aGlzLl9wbGF5YmFja1JhdGU9MSx0aGlzLl9pblRpbWVsaW5lPSEwLHRoaXMuZWZmZWN0PWUsZS5hbmltYXRpb249dGhpcyx0aGlzLnRpbWVsaW5lPW4sdGhpcy5pZD0iIi5jb25jYXQoWjgrKyksdGhpcy5faW5FZmZlY3Q9ISF0aGlzLmVmZmVjdC51cGRhdGUoMCksdGhpcy5fdG90YWxEdXJhdGlvbj1OdW1iZXIoKHI9dGhpcy5lZmZlY3QpPT09bnVsbHx8cj09PXZvaWQgMD92b2lkIDA6ci5nZXRDb21wdXRlZFRpbWluZygpLmVuZFRpbWUpLHRoaXMuX2hvbGRUaW1lPTAsdGhpcy5fcGF1c2VkPSExLHRoaXMub2xkUGxheVN0YXRlPSJpZGxlIix0aGlzLnVwZGF0ZVByb21pc2VzKCl9cmV0dXJuKDAsT3QuWikodCxbe2tleToicGVuZGluZyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0YXJ0VGltZT09PW51bGwmJiF0aGlzLl9wYXVzZWQmJnRoaXMucGxheWJhY2tSYXRlIT09MHx8dGhpcy5jdXJyZW50VGltZVBlbmRpbmd9fSx7a2V5OiJwbGF5U3RhdGUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9pZGxlPyJpZGxlIjp0aGlzLl9pc0ZpbmlzaGVkPyJmaW5pc2hlZCI6dGhpcy5fcGF1c2VkPyJwYXVzZWQiOiJydW5uaW5nIn19LHtrZXk6InJlYWR5IixnZXQ6ZnVuY3Rpb24oKXt2YXIgbj10aGlzO3JldHVybiB0aGlzLnJlYWR5UHJvbWlzZXx8KHRoaXMudGltZWxpbmUuYW5pbWF0aW9uc1dpdGhQcm9taXNlcy5pbmRleE9mKHRoaXMpPT09LTEmJnRoaXMudGltZWxpbmUuYW5pbWF0aW9uc1dpdGhQcm9taXNlcy5wdXNoKHRoaXMpLHRoaXMucmVhZHlQcm9taXNlPW5ldyBQcm9taXNlKGZ1bmN0aW9uKHIsaSl7bi5yZXNvbHZlUmVhZHlQcm9taXNlPWZ1bmN0aW9uKCl7cihuKX0sbi5yZWplY3RSZWFkeVByb21pc2U9ZnVuY3Rpb24oKXtpKG5ldyBFcnJvcil9fSksdGhpcy5wZW5kaW5nfHx0aGlzLnJlc29sdmVSZWFkeVByb21pc2UoKSksdGhpcy5yZWFkeVByb21pc2V9fSx7a2V5OiJmaW5pc2hlZCIsZ2V0OmZ1bmN0aW9uKCl7dmFyIG49dGhpcztyZXR1cm4gdGhpcy5maW5pc2hlZFByb21pc2V8fCh0aGlzLnRpbWVsaW5lLmFuaW1hdGlvbnNXaXRoUHJvbWlzZXMuaW5kZXhPZih0aGlzKT09PS0xJiZ0aGlzLnRpbWVsaW5lLmFuaW1hdGlvbnNXaXRoUHJvbWlzZXMucHVzaCh0aGlzKSx0aGlzLmZpbmlzaGVkUHJvbWlzZT1uZXcgUHJvbWlzZShmdW5jdGlvbihyLGkpe24ucmVzb2x2ZUZpbmlzaGVkUHJvbWlzZT1mdW5jdGlvbigpe3Iobil9LG4ucmVqZWN0RmluaXNoZWRQcm9taXNlPWZ1bmN0aW9uKCl7aShuZXcgRXJyb3IpfX0pLHRoaXMucGxheVN0YXRlPT09ImZpbmlzaGVkIiYmdGhpcy5yZXNvbHZlRmluaXNoZWRQcm9taXNlKCkpLHRoaXMuZmluaXNoZWRQcm9taXNlfX0se2tleToiY3VycmVudFRpbWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnVwZGF0ZVByb21pc2VzKCksdGhpcy5faWRsZXx8dGhpcy5jdXJyZW50VGltZVBlbmRpbmc/bnVsbDp0aGlzLl9jdXJyZW50VGltZX0sc2V0OmZ1bmN0aW9uKG4pe2lmKG49TnVtYmVyKG4pLCFpc05hTihuKSl7aWYodGhpcy50aW1lbGluZS5yZXN0YXJ0KCksIXRoaXMuX3BhdXNlZCYmdGhpcy5fc3RhcnRUaW1lIT09bnVsbCl7dmFyIHI7dGhpcy5fc3RhcnRUaW1lPU51bWJlcigocj10aGlzLnRpbWVsaW5lKT09PW51bGx8fHI9PT12b2lkIDA/dm9pZCAwOnIuY3VycmVudFRpbWUpLW4vdGhpcy5wbGF5YmFja1JhdGV9dGhpcy5jdXJyZW50VGltZVBlbmRpbmc9ITEsdGhpcy5fY3VycmVudFRpbWUhPT1uJiYodGhpcy5faWRsZSYmKHRoaXMuX2lkbGU9ITEsdGhpcy5fcGF1c2VkPSEwKSx0aGlzLnRpY2tDdXJyZW50VGltZShuLCEwKSx0aGlzLnRpbWVsaW5lLmFwcGx5RGlydGllZEFuaW1hdGlvbih0aGlzKSl9fX0se2tleToic3RhcnRUaW1lIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RhcnRUaW1lfSxzZXQ6ZnVuY3Rpb24obil7aWYobiE9PW51bGwpe2lmKHRoaXMudXBkYXRlUHJvbWlzZXMoKSxuPU51bWJlcihuKSxpc05hTihuKXx8dGhpcy5fcGF1c2VkfHx0aGlzLl9pZGxlKXJldHVybjt0aGlzLl9zdGFydFRpbWU9bix0aGlzLnRpY2tDdXJyZW50VGltZSgoTnVtYmVyKHRoaXMudGltZWxpbmUuY3VycmVudFRpbWUpLXRoaXMuX3N0YXJ0VGltZSkqdGhpcy5wbGF5YmFja1JhdGUpLHRoaXMudGltZWxpbmUuYXBwbHlEaXJ0aWVkQW5pbWF0aW9uKHRoaXMpLHRoaXMudXBkYXRlUHJvbWlzZXMoKX19fSx7a2V5OiJwbGF5YmFja1JhdGUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9wbGF5YmFja1JhdGV9LHNldDpmdW5jdGlvbihuKXtpZihuIT09dGhpcy5fcGxheWJhY2tSYXRlKXt0aGlzLnVwZGF0ZVByb21pc2VzKCk7dmFyIHI9dGhpcy5jdXJyZW50VGltZTt0aGlzLl9wbGF5YmFja1JhdGU9bix0aGlzLnN0YXJ0VGltZT1udWxsLHRoaXMucGxheVN0YXRlIT09InBhdXNlZCImJnRoaXMucGxheVN0YXRlIT09ImlkbGUiJiYodGhpcy5fZmluaXNoZWRGbGFnPSExLHRoaXMuX2lkbGU9ITEsdGhpcy5lbnN1cmVBbGl2ZSgpLHRoaXMudGltZWxpbmUuYXBwbHlEaXJ0aWVkQW5pbWF0aW9uKHRoaXMpKSxyIT09bnVsbCYmKHRoaXMuY3VycmVudFRpbWU9ciksdGhpcy51cGRhdGVQcm9taXNlcygpfX19LHtrZXk6Il9pc0ZpbmlzaGVkIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5faWRsZSYmKHRoaXMuX3BsYXliYWNrUmF0ZT4wJiZOdW1iZXIodGhpcy5fY3VycmVudFRpbWUpPj10aGlzLl90b3RhbER1cmF0aW9ufHx0aGlzLl9wbGF5YmFja1JhdGU8MCYmTnVtYmVyKHRoaXMuX2N1cnJlbnRUaW1lKTw9MCl9fSx7a2V5OiJ0b3RhbER1cmF0aW9uIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdG90YWxEdXJhdGlvbn19LHtrZXk6Il9uZWVkc1RpY2siLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBlbmRpbmd8fHRoaXMucGxheVN0YXRlPT09InJ1bm5pbmcifHwhdGhpcy5fZmluaXNoZWRGbGFnfX0se2tleToidXBkYXRlUHJvbWlzZXMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIG49dGhpcy5vbGRQbGF5U3RhdGUscj10aGlzLnBlbmRpbmc/InBlbmRpbmciOnRoaXMucGxheVN0YXRlO3JldHVybiB0aGlzLnJlYWR5UHJvbWlzZSYmciE9PW4mJihyPT09ImlkbGUiPyh0aGlzLnJlamVjdFJlYWR5UHJvbWlzZSgpLHRoaXMucmVhZHlQcm9taXNlPXZvaWQgMCk6bj09PSJwZW5kaW5nIj90aGlzLnJlc29sdmVSZWFkeVByb21pc2UoKTpyPT09InBlbmRpbmciJiYodGhpcy5yZWFkeVByb21pc2U9dm9pZCAwKSksdGhpcy5maW5pc2hlZFByb21pc2UmJnIhPT1uJiYocj09PSJpZGxlIj8odGhpcy5yZWplY3RGaW5pc2hlZFByb21pc2UoKSx0aGlzLmZpbmlzaGVkUHJvbWlzZT12b2lkIDApOnI9PT0iZmluaXNoZWQiP3RoaXMucmVzb2x2ZUZpbmlzaGVkUHJvbWlzZSgpOm49PT0iZmluaXNoZWQiJiYodGhpcy5maW5pc2hlZFByb21pc2U9dm9pZCAwKSksdGhpcy5vbGRQbGF5U3RhdGU9cix0aGlzLnJlYWR5UHJvbWlzZXx8dGhpcy5maW5pc2hlZFByb21pc2V9fSx7a2V5OiJwbGF5Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMudXBkYXRlUHJvbWlzZXMoKSx0aGlzLl9wYXVzZWQ9ITEsKHRoaXMuX2lzRmluaXNoZWR8fHRoaXMuX2lkbGUpJiYodGhpcy5yZXdpbmQoKSx0aGlzLl9zdGFydFRpbWU9bnVsbCksdGhpcy5fZmluaXNoZWRGbGFnPSExLHRoaXMuX2lkbGU9ITEsdGhpcy5lbnN1cmVBbGl2ZSgpLHRoaXMudGltZWxpbmUuYXBwbHlEaXJ0aWVkQW5pbWF0aW9uKHRoaXMpLHRoaXMudGltZWxpbmUuYW5pbWF0aW9ucy5pbmRleE9mKHRoaXMpPT09LTEmJnRoaXMudGltZWxpbmUuYW5pbWF0aW9ucy5wdXNoKHRoaXMpLHRoaXMudXBkYXRlUHJvbWlzZXMoKX19LHtrZXk6InBhdXNlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMudXBkYXRlUHJvbWlzZXMoKSx0aGlzLmN1cnJlbnRUaW1lJiYodGhpcy5faG9sZFRpbWU9dGhpcy5jdXJyZW50VGltZSksIXRoaXMuX2lzRmluaXNoZWQmJiF0aGlzLl9wYXVzZWQmJiF0aGlzLl9pZGxlP3RoaXMuY3VycmVudFRpbWVQZW5kaW5nPSEwOnRoaXMuX2lkbGUmJih0aGlzLnJld2luZCgpLHRoaXMuX2lkbGU9ITEpLHRoaXMuX3N0YXJ0VGltZT1udWxsLHRoaXMuX3BhdXNlZD0hMCx0aGlzLnVwZGF0ZVByb21pc2VzKCl9fSx7a2V5OiJmaW5pc2giLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy51cGRhdGVQcm9taXNlcygpLCF0aGlzLl9pZGxlJiYodGhpcy5jdXJyZW50VGltZT10aGlzLl9wbGF5YmFja1JhdGU+MD90aGlzLl90b3RhbER1cmF0aW9uOjAsdGhpcy5fc3RhcnRUaW1lPXRoaXMuX3RvdGFsRHVyYXRpb24tdGhpcy5jdXJyZW50VGltZSx0aGlzLmN1cnJlbnRUaW1lUGVuZGluZz0hMSx0aGlzLnRpbWVsaW5lLmFwcGx5RGlydGllZEFuaW1hdGlvbih0aGlzKSx0aGlzLnVwZGF0ZVByb21pc2VzKCkpfX0se2tleToiY2FuY2VsIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBuPXRoaXM7aWYodGhpcy51cGRhdGVQcm9taXNlcygpLCEhdGhpcy5faW5FZmZlY3QmJih0aGlzLl9pbkVmZmVjdD0hMSx0aGlzLl9pZGxlPSEwLHRoaXMuX3BhdXNlZD0hMSx0aGlzLl9maW5pc2hlZEZsYWc9ITAsdGhpcy5fY3VycmVudFRpbWU9MCx0aGlzLl9zdGFydFRpbWU9bnVsbCx0aGlzLmVmZmVjdC51cGRhdGUobnVsbCksdGhpcy50aW1lbGluZS5hcHBseURpcnRpZWRBbmltYXRpb24odGhpcyksdGhpcy51cGRhdGVQcm9taXNlcygpLHRoaXMub25jYW5jZWwpKXt2YXIgcj1uZXcgQV8obnVsbCx0aGlzLHRoaXMuY3VycmVudFRpbWUsbnVsbCk7c2V0VGltZW91dChmdW5jdGlvbigpe24ub25jYW5jZWwocil9KX19fSx7a2V5OiJyZXZlcnNlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMudXBkYXRlUHJvbWlzZXMoKTt2YXIgbj10aGlzLmN1cnJlbnRUaW1lO3RoaXMucGxheWJhY2tSYXRlKj0tMSx0aGlzLnBsYXkoKSxuIT09bnVsbCYmKHRoaXMuY3VycmVudFRpbWU9biksdGhpcy51cGRhdGVQcm9taXNlcygpfX0se2tleToidXBkYXRlUGxheWJhY2tSYXRlIix2YWx1ZTpmdW5jdGlvbihuKXt0aGlzLnBsYXliYWNrUmF0ZT1ufX0se2tleToidGFyZ2V0QW5pbWF0aW9ucyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgbixyPShuPXRoaXMuZWZmZWN0KT09PW51bGx8fG49PT12b2lkIDA/dm9pZCAwOm4udGFyZ2V0O3JldHVybiByLmdldEFuaW1hdGlvbnMoKX19LHtrZXk6Im1hcmtUYXJnZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIG49dGhpcy50YXJnZXRBbmltYXRpb25zKCk7bi5pbmRleE9mKHRoaXMpPT09LTEmJm4ucHVzaCh0aGlzKX19LHtrZXk6InVubWFya1RhcmdldCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgbj10aGlzLnRhcmdldEFuaW1hdGlvbnMoKSxyPW4uaW5kZXhPZih0aGlzKTtyIT09LTEmJm4uc3BsaWNlKHIsMSl9fSx7a2V5OiJ0aWNrIix2YWx1ZTpmdW5jdGlvbihuLHIpeyF0aGlzLl9pZGxlJiYhdGhpcy5fcGF1c2VkJiYodGhpcy5fc3RhcnRUaW1lPT09bnVsbD9yJiYodGhpcy5zdGFydFRpbWU9bi10aGlzLl9jdXJyZW50VGltZS90aGlzLnBsYXliYWNrUmF0ZSk6dGhpcy5faXNGaW5pc2hlZHx8dGhpcy50aWNrQ3VycmVudFRpbWUoKG4tdGhpcy5fc3RhcnRUaW1lKSp0aGlzLnBsYXliYWNrUmF0ZSkpLHImJih0aGlzLmN1cnJlbnRUaW1lUGVuZGluZz0hMSx0aGlzLmZpcmVFdmVudHMobikpfX0se2tleToicmV3aW5kIix2YWx1ZTpmdW5jdGlvbigpe2lmKHRoaXMucGxheWJhY2tSYXRlPj0wKXRoaXMuY3VycmVudFRpbWU9MDtlbHNlIGlmKHRoaXMuX3RvdGFsRHVyYXRpb248MS8wKXRoaXMuY3VycmVudFRpbWU9dGhpcy5fdG90YWxEdXJhdGlvbjtlbHNlIHRocm93IG5ldyBFcnJvcigiVW5hYmxlIHRvIHJld2luZCBuZWdhdGl2ZSBwbGF5YmFjayByYXRlIGFuaW1hdGlvbiB3aXRoIGluZmluaXRlIGR1cmF0aW9uIil9fSx7a2V5OiJwZXJzaXN0Iix2YWx1ZTpmdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcihrbil9fSx7a2V5OiJhZGRFdmVudExpc3RlbmVyIix2YWx1ZTpmdW5jdGlvbihuLHIsaSl7dGhyb3cgbmV3IEVycm9yKGtuKX19LHtrZXk6InJlbW92ZUV2ZW50TGlzdGVuZXIiLHZhbHVlOmZ1bmN0aW9uKG4scixpKXt0aHJvdyBuZXcgRXJyb3Ioa24pfX0se2tleToiZGlzcGF0Y2hFdmVudCIsdmFsdWU6ZnVuY3Rpb24obil7dGhyb3cgbmV3IEVycm9yKGtuKX19LHtrZXk6ImNvbW1pdFN0eWxlcyIsdmFsdWU6ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3Ioa24pfX0se2tleToiZW5zdXJlQWxpdmUiLHZhbHVlOmZ1bmN0aW9uKCl7aWYodGhpcy5wbGF5YmFja1JhdGU8MCYmdGhpcy5jdXJyZW50VGltZT09PTApe3ZhciBuO3RoaXMuX2luRWZmZWN0PSEhKChuPXRoaXMuZWZmZWN0KSE9PW51bGwmJm4hPT12b2lkIDAmJm4udXBkYXRlKC0xKSl9ZWxzZXt2YXIgcjt0aGlzLl9pbkVmZmVjdD0hISgocj10aGlzLmVmZmVjdCkhPT1udWxsJiZyIT09dm9pZCAwJiZyLnVwZGF0ZSh0aGlzLmN1cnJlbnRUaW1lKSl9IXRoaXMuX2luVGltZWxpbmUmJih0aGlzLl9pbkVmZmVjdHx8IXRoaXMuX2ZpbmlzaGVkRmxhZykmJih0aGlzLl9pblRpbWVsaW5lPSEwLHRoaXMudGltZWxpbmUuYW5pbWF0aW9ucy5wdXNoKHRoaXMpKX19LHtrZXk6InRpY2tDdXJyZW50VGltZSIsdmFsdWU6ZnVuY3Rpb24obixyKXtuIT09dGhpcy5fY3VycmVudFRpbWUmJih0aGlzLl9jdXJyZW50VGltZT1uLHRoaXMuX2lzRmluaXNoZWQmJiFyJiYodGhpcy5fY3VycmVudFRpbWU9dGhpcy5fcGxheWJhY2tSYXRlPjA/dGhpcy5fdG90YWxEdXJhdGlvbjowKSx0aGlzLmVuc3VyZUFsaXZlKCkpfX0se2tleToiZmlyZUV2ZW50cyIsdmFsdWU6ZnVuY3Rpb24obil7dmFyIHI9dGhpcztpZih0aGlzLl9pc0ZpbmlzaGVkKXtpZighdGhpcy5fZmluaXNoZWRGbGFnKXtpZih0aGlzLm9uZmluaXNoKXt2YXIgaT1uZXcgQV8obnVsbCx0aGlzLHRoaXMuY3VycmVudFRpbWUsbik7c2V0VGltZW91dChmdW5jdGlvbigpe3Iub25maW5pc2gmJnIub25maW5pc2goaSl9KX10aGlzLl9maW5pc2hlZEZsYWc9ITB9fWVsc2V7aWYodGhpcy5vbmZyYW1lJiZ0aGlzLnBsYXlTdGF0ZT09PSJydW5uaW5nIil7dmFyIGE9bmV3IEFfKG51bGwsdGhpcyx0aGlzLmN1cnJlbnRUaW1lLG4pO3RoaXMub25mcmFtZShhKX10aGlzLl9maW5pc2hlZEZsYWc9ITF9fX1dKX0oKSxIOD00LFY4PS4wMDEsWDg9MWUtNyxVOD0xMCx4cD0xMSxUeT0xLyh4cC0xKSxxOD10eXBlb2YgRmxvYXQzMkFycmF5PT0iZnVuY3Rpb24iLEVrPWZ1bmN0aW9uKGUsbil7cmV0dXJuIDEtMypuKzMqZX0sTWs9ZnVuY3Rpb24oZSxuKXtyZXR1cm4gMypuLTYqZX0sa2s9ZnVuY3Rpb24oZSl7cmV0dXJuIDMqZX0sUHk9ZnVuY3Rpb24oZSxuLHIpe3JldHVybigoRWsobixyKSplK01rKG4scikpKmUra2sobikpKmV9LEFrPWZ1bmN0aW9uKGUsbixyKXtyZXR1cm4gMypFayhuLHIpKmUqZSsyKk1rKG4scikqZStrayhuKX0sSzg9ZnVuY3Rpb24oZSxuLHIsaSxhKXt2YXIgbyxzLGM9MDtkbyBzPW4rKHItbikvMixvPVB5KHMsaSxhKS1lLG8+MD9yPXM6bj1zO3doaWxlKE1hdGguYWJzKG8pPlg4JiYrK2M8VTgpO3JldHVybiBzfSxROD1mdW5jdGlvbihlLG4scixpKXtmb3IodmFyIGE9MDthPEg4OysrYSl7dmFyIG89QWsobixyLGkpO2lmKG89PT0wKXJldHVybiBuO3ZhciBzPVB5KG4scixpKS1lO24tPXMvb31yZXR1cm4gbn0sVF89ZnVuY3Rpb24oZSxuLHIsaSl7aWYoIShlPj0wJiZlPD0xJiZyPj0wJiZyPD0xKSl0aHJvdyBuZXcgRXJyb3IoImJlemllciB4IHZhbHVlcyBtdXN0IGJlIGluIFswLCAxXSByYW5nZSIpO2lmKGU9PT1uJiZyPT09aSlyZXR1cm4gZnVuY3Rpb24oYyl7cmV0dXJuIGN9O2Zvcih2YXIgYT1xOD9uZXcgRmxvYXQzMkFycmF5KHhwKTpuZXcgQXJyYXkoeHApLG89MDtvPHhwOysrbylhW29dPVB5KG8qVHksZSxyKTt2YXIgcz1mdW5jdGlvbihsKXtmb3IodmFyIHU9MCxmPTEsZD14cC0xO2YhPT1kJiZhW2ZdPD1sOysrZil1Kz1UeTstLWY7dmFyIGg9KGwtYVtmXSkvKGFbZisxXS1hW2ZdKSx2PXUraCpUeSxnPUFrKHYsZSxyKTtyZXR1cm4gZz49Vjg/UTgobCx2LGUscik6Zz09PTA/djpLOChsLHUsdStUeSxlLHIpfTtyZXR1cm4gZnVuY3Rpb24oYyl7cmV0dXJuIGM9PT0wfHxjPT09MT9jOlB5KHMoYyksbixpKX19LEo4PWZ1bmN0aW9uKGUpe3JldHVybiBlPWUucmVwbGFjZSgvKFtBLVpdKS9nLGZ1bmN0aW9uKG4pe3JldHVybiItIi5jb25jYXQobi50b0xvd2VyQ2FzZSgpKX0pLGUuY2hhckF0KDApPT09Ii0iP2Uuc3Vic3RyaW5nKDEpOmV9LEN5PWZ1bmN0aW9uKGUpe3JldHVybiBNYXRoLnBvdyhlLDIpfSxMeT1mdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5wb3coZSwzKX0sUnk9ZnVuY3Rpb24oZSl7cmV0dXJuIE1hdGgucG93KGUsNCl9LE55PWZ1bmN0aW9uKGUpe3JldHVybiBNYXRoLnBvdyhlLDUpfSxJeT1mdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5wb3coZSw2KX0sRHk9ZnVuY3Rpb24oZSl7cmV0dXJuIDEtTWF0aC5jb3MoZSpNYXRoLlBJLzIpfSxqeT1mdW5jdGlvbihlKXtyZXR1cm4gMS1NYXRoLnNxcnQoMS1lKmUpfSxGeT1mdW5jdGlvbihlKXtyZXR1cm4gZSplKigzKmUtMil9LEJ5PWZ1bmN0aW9uKGUpe2Zvcih2YXIgbixyPTQ7ZTwoKG49TWF0aC5wb3coMiwtLXIpKS0xKS8xMTspO3JldHVybiAxL01hdGgucG93KDQsMy1yKS03LjU2MjUqTWF0aC5wb3coKG4qMy0yKS8yMi1lLDIpfSx6eT1mdW5jdGlvbihlKXt2YXIgbj1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06W10scj0oMCxUZS5aKShuLDIpLGk9clswXSxhPWk9PT12b2lkIDA/MTppLG89clsxXSxzPW89PT12b2lkIDA/LjU6byxjPW1uKE51bWJlcihhKSwxLDEwKSxsPW1uKE51bWJlcihzKSwuMSwyKTtyZXR1cm4gZT09PTB8fGU9PT0xP2U6LWMqTWF0aC5wb3coMiwxMCooZS0xKSkqTWF0aC5zaW4oKGUtMS1sLyhNYXRoLlBJKjIpKk1hdGguYXNpbigxL2MpKSooTWF0aC5QSSoyKS9sKX0sX3A9ZnVuY3Rpb24oZSl7dmFyIG49YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOltdLHI9YXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDAsaT0oMCxUZS5aKShuLDQpLGE9aVswXSxvPWE9PT12b2lkIDA/MTphLHM9aVsxXSxjPXM9PT12b2lkIDA/MTAwOnMsbD1pWzJdLHU9bD09PXZvaWQgMD8xMDpsLGY9aVszXSxkPWY9PT12b2lkIDA/MDpmO289bW4obywuMSwxZTMpLGM9bW4oYywuMSwxZTMpLHU9bW4odSwuMSwxZTMpLGQ9bW4oZCwuMSwxZTMpO3ZhciBoPU1hdGguc3FydChjL28pLHY9dS8oMipNYXRoLnNxcnQoYypvKSksZz12PDE/aCpNYXRoLnNxcnQoMS12KnYpOjAseT0xLGI9djwxPyh2KmgrLWQpL2c6LWQraCx4PXI/ciplLzFlMzplO3JldHVybiB2PDE/eD1NYXRoLmV4cCgteCp2KmgpKih5Kk1hdGguY29zKGcqeCkrYipNYXRoLnNpbihnKngpKTp4PSh5K2IqeCkqTWF0aC5leHAoLXgqaCksZT09PTB8fGU9PT0xP2U6MS14fSxQXz1mdW5jdGlvbihlKXt2YXIgbj1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06W10scj1uLGk9KDAsVGUuWikociwyKSxhPWlbMF0sbz1hPT09dm9pZCAwPzEwOmEscz1pWzFdLGM9cz09PSJzdGFydCI/TWF0aC5jZWlsOk1hdGguZmxvb3I7cmV0dXJuIGMobW4oZSwwLDEpKm8pL299LFRrPWZ1bmN0aW9uKGUpe3ZhciBuPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTpbXSxyPSgwLFRlLlopKG4sNCksaT1yWzBdLGE9clsxXSxvPXJbMl0scz1yWzNdO3JldHVybiBUXyhpLGEsbyxzKShlKX0sV3k9VF8oLjQyLDAsMSwxKSxnbz1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24obil7dmFyIHI9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOltdLGk9YXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDA7cmV0dXJuIDEtZSgxLW4scixpKX19LHlvPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbihuKXt2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06W10saT1hcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMDtyZXR1cm4gbjwuNT9lKG4qMixyLGkpLzI6MS1lKG4qLTIrMixyLGkpLzJ9fSxtbz1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24obil7dmFyIHI9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOltdLGk9YXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDA7cmV0dXJuIG48LjU/KDEtZSgxLW4qMixyLGkpKS8yOihlKG4qMi0xLHIsaSkrMSkvMn19LFBrPXtzdGVwczpQXywic3RlcC1zdGFydCI6ZnVuY3Rpb24oZSl7cmV0dXJuIFBfKGUsWzEsInN0YXJ0Il0pfSwic3RlcC1lbmQiOmZ1bmN0aW9uKGUpe3JldHVybiBQXyhlLFsxLCJlbmQiXSl9LGxpbmVhcjpmdW5jdGlvbihlKXtyZXR1cm4gZX0sImN1YmljLWJlemllciI6VGssZWFzZTpmdW5jdGlvbihlKXtyZXR1cm4gVGsoZSxbLjI1LC4xLC4yNSwxXSl9LGluOld5LG91dDpnbyhXeSksImluLW91dCI6eW8oV3kpLCJvdXQtaW4iOm1vKFd5KSwiaW4tcXVhZCI6Q3ksIm91dC1xdWFkIjpnbyhDeSksImluLW91dC1xdWFkIjp5byhDeSksIm91dC1pbi1xdWFkIjptbyhDeSksImluLWN1YmljIjpMeSwib3V0LWN1YmljIjpnbyhMeSksImluLW91dC1jdWJpYyI6eW8oTHkpLCJvdXQtaW4tY3ViaWMiOm1vKEx5KSwiaW4tcXVhcnQiOlJ5LCJvdXQtcXVhcnQiOmdvKFJ5KSwiaW4tb3V0LXF1YXJ0Ijp5byhSeSksIm91dC1pbi1xdWFydCI6bW8oUnkpLCJpbi1xdWludCI6TnksIm91dC1xdWludCI6Z28oTnkpLCJpbi1vdXQtcXVpbnQiOnlvKE55KSwib3V0LWluLXF1aW50IjptbyhOeSksImluLWV4cG8iOkl5LCJvdXQtZXhwbyI6Z28oSXkpLCJpbi1vdXQtZXhwbyI6eW8oSXkpLCJvdXQtaW4tZXhwbyI6bW8oSXkpLCJpbi1zaW5lIjpEeSwib3V0LXNpbmUiOmdvKER5KSwiaW4tb3V0LXNpbmUiOnlvKER5KSwib3V0LWluLXNpbmUiOm1vKER5KSwiaW4tY2lyYyI6anksIm91dC1jaXJjIjpnbyhqeSksImluLW91dC1jaXJjIjp5byhqeSksIm91dC1pbi1jaXJjIjptbyhqeSksImluLWJhY2siOkZ5LCJvdXQtYmFjayI6Z28oRnkpLCJpbi1vdXQtYmFjayI6eW8oRnkpLCJvdXQtaW4tYmFjayI6bW8oRnkpLCJpbi1ib3VuY2UiOkJ5LCJvdXQtYm91bmNlIjpnbyhCeSksImluLW91dC1ib3VuY2UiOnlvKEJ5KSwib3V0LWluLWJvdW5jZSI6bW8oQnkpLCJpbi1lbGFzdGljIjp6eSwib3V0LWVsYXN0aWMiOmdvKHp5KSwiaW4tb3V0LWVsYXN0aWMiOnlvKHp5KSwib3V0LWluLWVsYXN0aWMiOm1vKHp5KSxzcHJpbmc6X3AsInNwcmluZy1pbiI6X3AsInNwcmluZy1vdXQiOmdvKF9wKSwic3ByaW5nLWluLW91dCI6eW8oX3ApLCJzcHJpbmctb3V0LWluIjptbyhfcCl9LHRqPWZ1bmN0aW9uKGUpe3JldHVybiBKOChlKS5yZXBsYWNlKC9eZWFzZS0vLCIiKS5yZXBsYWNlKC8oXCh8XHMpLisvLCIiKS50b0xvd2VyQ2FzZSgpLnRyaW0oKX0sZWo9ZnVuY3Rpb24oZSl7cmV0dXJuIFBrW3RqKGUpXXx8UGsubGluZWFyfSxuaj1mdW5jdGlvbihlKXtyZXR1cm4gZX0scmo9MSxpaj0uNSxDaz0wO2Z1bmN0aW9uIExrKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe2lmKG4+PTEpcmV0dXJuIDE7dmFyIHI9MS90O3JldHVybiBuKz1lKnIsbi1uJXJ9fXZhciBHeT0iXFxzKigtP1xcZCtcXC4/XFxkKnwtP1xcLlxcZCspXFxzKiIsYWo9bmV3IFJlZ0V4cCgiY3ViaWMtYmV6aWVyXFwoIi5jb25jYXQoR3ksIiwiKS5jb25jYXQoR3ksIiwiKS5jb25jYXQoR3ksIiwiKS5jb25jYXQoR3ksIlxcKSIpKSxvaj0vc3RlcHNcKFxzKihcZCspXHMqXCkvLHNqPS9zdGVwc1woXHMqKFxkKylccyosXHMqKHN0YXJ0fG1pZGRsZXxlbmQpXHMqXCkvO2Z1bmN0aW9uIENfKHQpe3ZhciBlPWFqLmV4ZWModCk7aWYoZSlyZXR1cm4gVF8uYXBwbHkodm9pZCAwLCgwLGxuLlopKGUuc2xpY2UoMSkubWFwKE51bWJlcikpKTt2YXIgbj1vai5leGVjKHQpO2lmKG4pcmV0dXJuIExrKE51bWJlcihuWzFdKSxDayk7dmFyIHI9c2ouZXhlYyh0KTtyZXR1cm4gcj9MayhOdW1iZXIoclsxXSkse3N0YXJ0OnJqLG1pZGRsZTppaixlbmQ6Q2t9W3JbMl1dKTplaih0KX1mdW5jdGlvbiBjaih0KXtyZXR1cm4gTWF0aC5hYnMobGoodCkvKHQucGxheWJhY2tSYXRlfHwxKSl9ZnVuY3Rpb24gbGoodCl7dmFyIGU7cmV0dXJuIHQuZHVyYXRpb249PT0wfHx0Lml0ZXJhdGlvbnM9PT0wPzA6KHQuZHVyYXRpb249PT0iYXV0byI/MDpOdW1iZXIodC5kdXJhdGlvbikpKigoZT10Lml0ZXJhdGlvbnMpIT09bnVsbCYmZSE9PXZvaWQgMD9lOjEpfXZhciBSaz0wLExfPTEsJHk9MixOaz0zO2Z1bmN0aW9uIHVqKHQsZSxuKXtpZihlPT09bnVsbClyZXR1cm4gUms7dmFyIHI9bi5lbmRUaW1lO3JldHVybiBlPE1hdGgubWluKG4uZGVsYXkscik/TF86ZT49TWF0aC5taW4obi5kZWxheSt0K24uZW5kRGVsYXkscik/JHk6Tmt9ZnVuY3Rpb24gZmoodCxlLG4scixpKXtzd2l0Y2gocil7Y2FzZSBMXzpyZXR1cm4gZT09PSJiYWNrd2FyZHMifHxlPT09ImJvdGgiPzA6bnVsbDtjYXNlIE5rOnJldHVybiBuLWk7Y2FzZSAkeTpyZXR1cm4gZT09PSJmb3J3YXJkcyJ8fGU9PT0iYm90aCI/dDpudWxsO2Nhc2UgUms6cmV0dXJuIG51bGx9fWZ1bmN0aW9uIGRqKHQsZSxuLHIsaSl7dmFyIGE9aTtyZXR1cm4gdD09PTA/ZSE9PUxfJiYoYSs9bik6YSs9ci90LGF9ZnVuY3Rpb24gaGoodCxlLG4scixpLGEpe3ZhciBvPXQ9PT0xLzA/ZSUxOnQlMTtyZXR1cm4gbz09PTAmJm49PT0keSYmciE9PTAmJihpIT09MHx8YT09PTApJiYobz0xKSxvfWZ1bmN0aW9uIHBqKHQsZSxuLHIpe3JldHVybiB0PT09JHkmJmU9PT0xLzA/MS8wOm49PT0xP01hdGguZmxvb3IociktMTpNYXRoLmZsb29yKHIpfWZ1bmN0aW9uIHZqKHQsZSxuKXt2YXIgcj10O2lmKHQhPT0ibm9ybWFsIiYmdCE9PSJyZXZlcnNlIil7dmFyIGk9ZTt0PT09ImFsdGVybmF0ZS1yZXZlcnNlIiYmKGkrPTEpLHI9Im5vcm1hbCIsaSE9PTEvMCYmaSUyIT09MCYmKHI9InJldmVyc2UiKX1yZXR1cm4gcj09PSJub3JtYWwiP246MS1ufWZ1bmN0aW9uIGdqKHQsZSxuKXt2YXIgcj11aih0LGUsbiksaT1maih0LG4uZmlsbCxlLHIsbi5kZWxheSk7aWYoaT09PW51bGwpcmV0dXJuIG51bGw7dmFyIGE9bi5kdXJhdGlvbj09PSJhdXRvIj8wOm4uZHVyYXRpb24sbz1kaihhLHIsbi5pdGVyYXRpb25zLGksbi5pdGVyYXRpb25TdGFydCkscz1oaihvLG4uaXRlcmF0aW9uU3RhcnQscixuLml0ZXJhdGlvbnMsaSxhKSxjPXBqKHIsbi5pdGVyYXRpb25zLHMsbyksbD12aihuLmRpcmVjdGlvbixjLHMpO3JldHVybiBuLmN1cnJlbnRJdGVyYXRpb249YyxuLnByb2dyZXNzPWwsbi5lYXNpbmdGdW5jdGlvbihsKX1mdW5jdGlvbiB5aih0LGUsbil7dmFyIHI9bWoodCxlKSxpPWJqKHIsbik7cmV0dXJuIGZ1bmN0aW9uKGEsbyl7aWYobyE9PW51bGwpaS5maWx0ZXIoZnVuY3Rpb24oYyl7cmV0dXJuIG8+PWMuYXBwbHlGcm9tJiZvPGMuYXBwbHlUb30pLmZvckVhY2goZnVuY3Rpb24oYyl7dmFyIGw9by1jLnN0YXJ0T2Zmc2V0LHU9Yy5lbmRPZmZzZXQtYy5zdGFydE9mZnNldCxmPXU9PT0wPzA6bC91O2Euc2V0QXR0cmlidXRlKGMucHJvcGVydHksYy5pbnRlcnBvbGF0aW9uKGYpLCExLCExKX0pO2Vsc2UgZm9yKHZhciBzIGluIHIpSWsocykmJmEuc2V0QXR0cmlidXRlKHMsbnVsbCl9fWZ1bmN0aW9uIElrKHQpe3JldHVybiB0IT09Im9mZnNldCImJnQhPT0iZWFzaW5nIiYmdCE9PSJjb21wb3NpdGUiJiZ0IT09ImNvbXB1dGVkT2Zmc2V0In1mdW5jdGlvbiBtaih0LGUpe2Zvcih2YXIgbj17fSxyPTA7cjx0Lmxlbmd0aDtyKyspZm9yKHZhciBpIGluIHRbcl0paWYoSWsoaSkpe3ZhciBhPXtvZmZzZXQ6dFtyXS5vZmZzZXQsY29tcHV0ZWRPZmZzZXQ6dFtyXS5jb21wdXRlZE9mZnNldCxlYXNpbmc6dFtyXS5lYXNpbmcsZWFzaW5nRnVuY3Rpb246Q18odFtyXS5lYXNpbmcpfHxlLmVhc2luZ0Z1bmN0aW9uLHZhbHVlOnRbcl1baV19O25baV09bltpXXx8W10sbltpXS5wdXNoKGEpfXJldHVybiBufWZ1bmN0aW9uIGJqKHQsZSl7dmFyIG49W107Zm9yKHZhciByIGluIHQpZm9yKHZhciBpPXRbcl0sYT0wO2E8aS5sZW5ndGgtMTthKyspe3ZhciBvPWEscz1hKzEsYz1pW29dLmNvbXB1dGVkT2Zmc2V0LGw9aVtzXS5jb21wdXRlZE9mZnNldCx1PWMsZj1sO2E9PT0wJiYodT0tMS8wLGw9PT0wJiYocz1vKSksYT09PWkubGVuZ3RoLTImJihmPTEvMCxjPT09MSYmKG89cykpLG4ucHVzaCh7YXBwbHlGcm9tOnUsYXBwbHlUbzpmLHN0YXJ0T2Zmc2V0Omlbb10uY29tcHV0ZWRPZmZzZXQsZW5kT2Zmc2V0Omlbc10uY29tcHV0ZWRPZmZzZXQsZWFzaW5nRnVuY3Rpb246aVtvXS5lYXNpbmdGdW5jdGlvbixwcm9wZXJ0eTpyLGludGVycG9sYXRpb246eGoocixpW29dLnZhbHVlLGlbc10udmFsdWUsZSl9KX1yZXR1cm4gbi5zb3J0KGZ1bmN0aW9uKGQsaCl7cmV0dXJuIGQuc3RhcnRPZmZzZXQtaC5zdGFydE9mZnNldH0pLG59dmFyIERrPWZ1bmN0aW9uKGUsbixyKXtyZXR1cm4gZnVuY3Rpb24oaSl7dmFyIGE9amsoZSxuLGkpO3JldHVybiBWbihhKT9hOnIoYSl9fTtmdW5jdGlvbiB4aih0LGUsbixyKXt2YXIgaT1Zclt0XTtpZihpJiZpLnN5bnRheCYmaS5pbnQpe3ZhciBhPUN0LnN0eWxlVmFsdWVSZWdpc3RyeS5nZXRQcm9wZXJ0eVN5bnRheChpLnN5bnRheCk7aWYoYSl7dmFyIG89YS5wYXJzZXIscz1vP28oZSxyKTplLGM9bz9vKG4scik6bixsPWEubWl4ZXIocyxjLHIpO2lmKGwpe3ZhciB1PURrLmFwcGx5KHZvaWQgMCwoMCxsbi5aKShsKSk7cmV0dXJuIGZ1bmN0aW9uKGYpe3JldHVybiBmPT09MD9lOmY9PT0xP246dShmKX19fX1yZXR1cm4gRGsoITEsITAsZnVuY3Rpb24oZil7cmV0dXJuIGY/bjplfSl9ZnVuY3Rpb24gamsodCxlLG4pe2lmKHR5cGVvZiB0PT0ibnVtYmVyIiYmdHlwZW9mIGU9PSJudW1iZXIiKXJldHVybiB0KigxLW4pK2UqbjtpZih0eXBlb2YgdD09ImJvb2xlYW4iJiZ0eXBlb2YgZT09ImJvb2xlYW4ifHx0eXBlb2YgdD09InN0cmluZyImJnR5cGVvZiBlPT0ic3RyaW5nIilyZXR1cm4gbjwuNT90OmU7aWYoQXJyYXkuaXNBcnJheSh0KSYmQXJyYXkuaXNBcnJheShlKSl7Zm9yKHZhciByPXQubGVuZ3RoLGk9ZS5sZW5ndGgsYT1NYXRoLm1heChyLGkpLG89W10scz0wO3M8YTtzKyspby5wdXNoKGprKHRbczxyP3M6ci0xXSxlW3M8aT9zOmktMV0sbikpO3JldHVybiBvfXRocm93IG5ldyBFcnJvcigiTWlzbWF0Y2hlZCBpbnRlcnBvbGF0aW9uIGFyZ3VtZW50cyAiLmNvbmNhdCh0LCI6IikuY29uY2F0KGUpKX12YXIgX2o9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7KDAseHQuWikodGhpcyx0KSx0aGlzLmRlbGF5PTAsdGhpcy5kaXJlY3Rpb249Im5vcm1hbCIsdGhpcy5kdXJhdGlvbj0iYXV0byIsdGhpcy5fZWFzaW5nPSJsaW5lYXIiLHRoaXMuZWFzaW5nRnVuY3Rpb249bmosdGhpcy5lbmREZWxheT0wLHRoaXMuZmlsbD0iYXV0byIsdGhpcy5pdGVyYXRpb25TdGFydD0wLHRoaXMuaXRlcmF0aW9ucz0xLHRoaXMuY3VycmVudEl0ZXJhdGlvbj1udWxsLHRoaXMucHJvZ3Jlc3M9bnVsbH1yZXR1cm4oMCxPdC5aKSh0LFt7a2V5OiJlYXNpbmciLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9lYXNpbmd9LHNldDpmdW5jdGlvbihuKXt0aGlzLmVhc2luZ0Z1bmN0aW9uPUNfKG4pLHRoaXMuX2Vhc2luZz1ufX1dKX0oKTtmdW5jdGlvbiB3aih0KXt2YXIgZT1bXTtmb3IodmFyIG4gaW4gdClpZighKG4gaW5bImVhc2luZyIsIm9mZnNldCIsImNvbXBvc2l0ZSJdKSl7dmFyIHI9dFtuXTtBcnJheS5pc0FycmF5KHIpfHwocj1bcl0pO2Zvcih2YXIgaT1yLmxlbmd0aCxhPTA7YTxpO2ErKyl7aWYoIWVbYV0pe3ZhciBvPXt9OyJvZmZzZXQiaW4gdCYmKG8ub2Zmc2V0PU51bWJlcih0Lm9mZnNldCkpLCJlYXNpbmciaW4gdCYmKG8uZWFzaW5nPXQuZWFzaW5nKSwiY29tcG9zaXRlImluIHQmJihvLmNvbXBvc2l0ZT10LmNvbXBvc2l0ZSksZVthXT1vfXJbYV0hPT12b2lkIDAmJnJbYV0hPT1udWxsJiYoZVthXVtuXT1yW2FdKX19cmV0dXJuIGUuc29ydChmdW5jdGlvbihzLGMpe3JldHVybihzLmNvbXB1dGVkT2Zmc2V0fHwwKS0oYy5jb21wdXRlZE9mZnNldHx8MCl9KSxlfWZ1bmN0aW9uIEZrKHQsZSl7aWYodD09PW51bGwpcmV0dXJuW107QXJyYXkuaXNBcnJheSh0KXx8KHQ9d2oodCkpO2Zvcih2YXIgbj10Lm1hcChmdW5jdGlvbihjKXt2YXIgbD17fTtlIT1udWxsJiZlLmNvbXBvc2l0ZSYmKGwuY29tcG9zaXRlPSJhdXRvIik7Zm9yKHZhciB1IGluIGMpe3ZhciBmPWNbdV07aWYodT09PSJvZmZzZXQiKXtpZihmIT09bnVsbCl7aWYoZj1OdW1iZXIoZiksIWlzRmluaXRlKGYpKXRocm93IG5ldyBFcnJvcigiS2V5ZnJhbWUgb2Zmc2V0cyBtdXN0IGJlIG51bWJlcnMuIik7aWYoZjwwfHxmPjEpdGhyb3cgbmV3IEVycm9yKCJLZXlmcmFtZSBvZmZzZXRzIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAxLiIpO2wuY29tcHV0ZWRPZmZzZXQ9Zn19ZWxzZSBpZih1PT09ImNvbXBvc2l0ZSImJlsicmVwbGFjZSIsImFkZCIsImFjY3VtdWxhdGUiLCJhdXRvIl0uaW5kZXhPZihmKT09PS0xKXRocm93IG5ldyBFcnJvcigiIi5jb25jYXQoZiwiIGNvbXBvc2l0aW5nIGlzIG5vdCBzdXBwb3J0ZWQiKSk7bFt1XT1mfXJldHVybiBsLm9mZnNldD09PXZvaWQgMCYmKGwub2Zmc2V0PW51bGwpLGwuZWFzaW5nPT09dm9pZCAwJiYobC5lYXNpbmc9KGU9PW51bGw/dm9pZCAwOmUuZWFzaW5nKXx8ImxpbmVhciIpLGwuY29tcG9zaXRlPT09dm9pZCAwJiYobC5jb21wb3NpdGU9ImF1dG8iKSxsfSkscj0hMCxpPS0xLzAsYT0wO2E8bi5sZW5ndGg7YSsrKXt2YXIgbz1uW2FdLm9mZnNldDtpZihnZShvKSlyPSExO2Vsc2V7aWYobzxpKXRocm93IG5ldyBUeXBlRXJyb3IoIktleWZyYW1lcyBhcmUgbm90IGxvb3NlbHkgc29ydGVkIGJ5IG9mZnNldC4gU29ydCBvciBzcGVjaWZ5IG9mZnNldHMuIik7aT1vfX1uPW4uZmlsdGVyKGZ1bmN0aW9uKGMpe3JldHVybiBOdW1iZXIoYy5vZmZzZXQpPj0wJiZOdW1iZXIoYy5vZmZzZXQpPD0xfSk7ZnVuY3Rpb24gcygpe3ZhciBjLGw9bix1PWwubGVuZ3RoO2lmKG5bdS0xXS5jb21wdXRlZE9mZnNldD1OdW1iZXIoKGM9blt1LTFdLm9mZnNldCkhPT1udWxsJiZjIT09dm9pZCAwP2M6MSksdT4xKXt2YXIgZjtuWzBdLmNvbXB1dGVkT2Zmc2V0PU51bWJlcigoZj1uWzBdLm9mZnNldCkhPT1udWxsJiZmIT09dm9pZCAwP2Y6MCl9Zm9yKHZhciBkPTAsaD1OdW1iZXIoblswXS5jb21wdXRlZE9mZnNldCksdj0xO3Y8dTt2Kyspe3ZhciBnPW5bdl0uY29tcHV0ZWRPZmZzZXQ7aWYoIWdlKGcpJiYhZ2UoaCkpe2Zvcih2YXIgeT0xO3k8di1kO3krKyluW2QreV0uY29tcHV0ZWRPZmZzZXQ9aCsoTnVtYmVyKGcpLWgpKnkvKHYtZCk7ZD12LGg9TnVtYmVyKGcpfX19cmV0dXJuIHJ8fHMoKSxufXZhciBPaj0iYmFja3dhcmRzfGZvcndhcmRzfGJvdGh8bm9uZSIuc3BsaXQoInwiKSxTaj0icmV2ZXJzZXxhbHRlcm5hdGV8YWx0ZXJuYXRlLXJldmVyc2UiLnNwbGl0KCJ8Iik7ZnVuY3Rpb24gRWoodCxlKXt2YXIgbj1uZXcgX2o7cmV0dXJuIGUmJihuLmZpbGw9ImJvdGgiLG4uZHVyYXRpb249ImF1dG8iKSx0eXBlb2YgdD09Im51bWJlciImJiFpc05hTih0KT9uLmR1cmF0aW9uPXQ6dCE9PXZvaWQgMCYmT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihyKXtpZih0W3JdIT09dm9pZCAwJiZ0W3JdIT09bnVsbCYmdFtyXSE9PSJhdXRvIil7aWYoKHR5cGVvZiBuW3JdPT0ibnVtYmVyInx8cj09PSJkdXJhdGlvbiIpJiYodHlwZW9mIHRbcl0hPSJudW1iZXIifHxpc05hTih0W3JdKSl8fHI9PT0iZmlsbCImJk9qLmluZGV4T2YodFtyXSk9PT0tMXx8cj09PSJkaXJlY3Rpb24iJiZTai5pbmRleE9mKHRbcl0pPT09LTEpcmV0dXJuO25bcl09dFtyXX19KSxufWZ1bmN0aW9uIE1qKHQsZSl7cmV0dXJuIHQ9a2oodCE9bnVsbD90OntkdXJhdGlvbjoiYXV0byJ9KSxFaih0LGUpfWZ1bmN0aW9uIGtqKHQpe3JldHVybiB0eXBlb2YgdD09Im51bWJlciImJihpc05hTih0KT90PXtkdXJhdGlvbjoiYXV0byJ9OnQ9e2R1cmF0aW9uOnR9KSx0fXZhciBBaj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSxuLHIpe3ZhciBpPXRoaXM7KDAseHQuWikodGhpcyx0KSx0aGlzLmNvbXBvc2l0ZT0icmVwbGFjZSIsdGhpcy5pdGVyYXRpb25Db21wb3NpdGU9InJlcGxhY2UiLHRoaXMudGFyZ2V0PWUsdGhpcy50aW1pbmc9TWoociwhMSksdGhpcy50aW1pbmcuZWZmZWN0PXRoaXMsdGhpcy50aW1pbmcuYWN0aXZlRHVyYXRpb249Y2oodGhpcy50aW1pbmcpLHRoaXMudGltaW5nLmVuZFRpbWU9TWF0aC5tYXgoMCx0aGlzLnRpbWluZy5kZWxheSt0aGlzLnRpbWluZy5hY3RpdmVEdXJhdGlvbit0aGlzLnRpbWluZy5lbmREZWxheSksdGhpcy5ub3JtYWxpemVkS2V5ZnJhbWVzPUZrKG4sdGhpcy50aW1pbmcpLHRoaXMuaW50ZXJwb2xhdGlvbnM9eWoodGhpcy5ub3JtYWxpemVkS2V5ZnJhbWVzLHRoaXMudGltaW5nLHRoaXMudGFyZ2V0KTt2YXIgYT1DdC5nbG9iYWxUaGlzLlByb3h5O3RoaXMuY29tcHV0ZWRUaW1pbmc9YT9uZXcgYSh0aGlzLnRpbWluZyx7Z2V0OmZ1bmN0aW9uKHMsYyl7cmV0dXJuIGM9PT0iZHVyYXRpb24iP3MuZHVyYXRpb249PT0iYXV0byI/MDpzLmR1cmF0aW9uOmM9PT0iZmlsbCI/cy5maWxsPT09ImF1dG8iPyJub25lIjpzLmZpbGw6Yz09PSJsb2NhbFRpbWUiP2kuYW5pbWF0aW9uJiZpLmFuaW1hdGlvbi5jdXJyZW50VGltZXx8bnVsbDpjPT09ImN1cnJlbnRJdGVyYXRpb24iPyFpLmFuaW1hdGlvbnx8aS5hbmltYXRpb24ucGxheVN0YXRlIT09InJ1bm5pbmciP251bGw6cy5jdXJyZW50SXRlcmF0aW9ufHwwOmM9PT0icHJvZ3Jlc3MiPyFpLmFuaW1hdGlvbnx8aS5hbmltYXRpb24ucGxheVN0YXRlIT09InJ1bm5pbmciP251bGw6cy5wcm9ncmVzc3x8MDpzW2NdfSxzZXQ6ZnVuY3Rpb24oKXtyZXR1cm4hMH19KTp0aGlzLnRpbWluZ31yZXR1cm4oMCxPdC5aKSh0LFt7a2V5OiJhcHBseUludGVycG9sYXRpb25zIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuaW50ZXJwb2xhdGlvbnModGhpcy50YXJnZXQsTnVtYmVyKHRoaXMudGltZUZyYWN0aW9uKSl9fSx7a2V5OiJ1cGRhdGUiLHZhbHVlOmZ1bmN0aW9uKG4pe3JldHVybiBuPT09bnVsbD8hMToodGhpcy50aW1lRnJhY3Rpb249Z2oodGhpcy50aW1pbmcuYWN0aXZlRHVyYXRpb24sbix0aGlzLnRpbWluZyksdGhpcy50aW1lRnJhY3Rpb24hPT1udWxsKX19LHtrZXk6ImdldEtleWZyYW1lcyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub3JtYWxpemVkS2V5ZnJhbWVzfX0se2tleToic2V0S2V5ZnJhbWVzIix2YWx1ZTpmdW5jdGlvbihuKXt0aGlzLm5vcm1hbGl6ZWRLZXlmcmFtZXM9Rmsobil9fSx7a2V5OiJnZXRDb21wdXRlZFRpbWluZyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb21wdXRlZFRpbWluZ319LHtrZXk6ImdldFRpbWluZyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50aW1pbmd9fSx7a2V5OiJ1cGRhdGVUaW1pbmciLHZhbHVlOmZ1bmN0aW9uKG4pe3ZhciByPXRoaXM7T2JqZWN0LmtleXMobnx8e30pLmZvckVhY2goZnVuY3Rpb24oaSl7ci50aW1pbmdbaV09bltpXX0pfX1dKX0oKTtmdW5jdGlvbiBCayh0LGUpe3JldHVybiBOdW1iZXIodC5pZCktTnVtYmVyKGUuaWQpfXZhciBUaj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7dmFyIG49dGhpczsoMCx4dC5aKSh0aGlzLHQpLHRoaXMuYW5pbWF0aW9ucz1bXSx0aGlzLnRpY2tpbmc9ITEsdGhpcy50aW1lbGluZVRpY2tpbmc9ITEsdGhpcy5oYXNSZXN0YXJ0ZWRUaGlzRnJhbWU9ITEsdGhpcy5hbmltYXRpb25zV2l0aFByb21pc2VzPVtdLHRoaXMuaW5UaWNrPSExLHRoaXMucGVuZGluZ0VmZmVjdHM9W10sdGhpcy5jdXJyZW50VGltZT1udWxsLHRoaXMucmFmSWQ9MCx0aGlzLnJhZkNhbGxiYWNrcz1bXSx0aGlzLndlYkFuaW1hdGlvbnNOZXh0VGljaz1mdW5jdGlvbihyKXtuLmN1cnJlbnRUaW1lPXIsbi5kaXNjYXJkQW5pbWF0aW9ucygpLG4uYW5pbWF0aW9ucy5sZW5ndGg9PT0wP24udGltZWxpbmVUaWNraW5nPSExOm4ucmVxdWVzdEFuaW1hdGlvbkZyYW1lKG4ud2ViQW5pbWF0aW9uc05leHRUaWNrKX0sdGhpcy5wcm9jZXNzUmFmQ2FsbGJhY2tzPWZ1bmN0aW9uKHIpe3ZhciBpPW4ucmFmQ2FsbGJhY2tzO24ucmFmQ2FsbGJhY2tzPVtdLHI8TnVtYmVyKG4uY3VycmVudFRpbWUpJiYocj1OdW1iZXIobi5jdXJyZW50VGltZSkpLG4uYW5pbWF0aW9ucy5zb3J0KEJrKSxuLmFuaW1hdGlvbnM9bi50aWNrKHIsITAsbi5hbmltYXRpb25zKVswXSxpLmZvckVhY2goZnVuY3Rpb24oYSl7YVsxXShyKX0pLG4uYXBwbHlQZW5kaW5nRWZmZWN0cygpfSx0aGlzLmRvY3VtZW50PWV9cmV0dXJuKDAsT3QuWikodCxbe2tleToiZ2V0QW5pbWF0aW9ucyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kaXNjYXJkQW5pbWF0aW9ucygpLHRoaXMuYW5pbWF0aW9ucy5zbGljZSgpfX0se2tleToiaXNUaWNraW5nIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmluVGlja319LHtrZXk6InBsYXkiLHZhbHVlOmZ1bmN0aW9uKG4scixpKXt2YXIgYT1uZXcgQWoobixyLGkpLG89bmV3IFk4KGEsdGhpcyk7cmV0dXJuIHRoaXMuYW5pbWF0aW9ucy5wdXNoKG8pLHRoaXMucmVzdGFydFdlYkFuaW1hdGlvbnNOZXh0VGljaygpLG8udXBkYXRlUHJvbWlzZXMoKSxvLnBsYXkoKSxvLnVwZGF0ZVByb21pc2VzKCksb319LHtrZXk6ImFwcGx5RGlydGllZEFuaW1hdGlvbiIsdmFsdWU6ZnVuY3Rpb24obil7dmFyIHI9dGhpcztpZighdGhpcy5pblRpY2spe24ubWFya1RhcmdldCgpO3ZhciBpPW4udGFyZ2V0QW5pbWF0aW9ucygpO2kuc29ydChCayk7dmFyIGE9dGhpcy50aWNrKE51bWJlcih0aGlzLmN1cnJlbnRUaW1lKSwhMSxpLnNsaWNlKCkpWzFdO2EuZm9yRWFjaChmdW5jdGlvbihvKXt2YXIgcz1yLmFuaW1hdGlvbnMuaW5kZXhPZihvKTtzIT09LTEmJnIuYW5pbWF0aW9ucy5zcGxpY2UocywxKX0pLHRoaXMuYXBwbHlQZW5kaW5nRWZmZWN0cygpfX19LHtrZXk6InJlc3RhcnQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGlja2luZ3x8KHRoaXMudGlja2luZz0hMCx0aGlzLnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe30pLHRoaXMuaGFzUmVzdGFydGVkVGhpc0ZyYW1lPSEwKSx0aGlzLmhhc1Jlc3RhcnRlZFRoaXNGcmFtZX19LHtrZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5kb2N1bWVudC5kZWZhdWx0Vmlldy5jYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLmZyYW1lSWQpfX0se2tleToiYXBwbHlQZW5kaW5nRWZmZWN0cyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnBlbmRpbmdFZmZlY3RzLmZvckVhY2goZnVuY3Rpb24obil7bj09bnVsbHx8bi5hcHBseUludGVycG9sYXRpb25zKCl9KSx0aGlzLnBlbmRpbmdFZmZlY3RzPVtdfX0se2tleToidXBkYXRlQW5pbWF0aW9uc1Byb21pc2VzIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuYW5pbWF0aW9uc1dpdGhQcm9taXNlcz10aGlzLmFuaW1hdGlvbnNXaXRoUHJvbWlzZXMuZmlsdGVyKGZ1bmN0aW9uKG4pe3JldHVybiBuLnVwZGF0ZVByb21pc2VzKCl9KX19LHtrZXk6ImRpc2NhcmRBbmltYXRpb25zIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMudXBkYXRlQW5pbWF0aW9uc1Byb21pc2VzKCksdGhpcy5hbmltYXRpb25zPXRoaXMuYW5pbWF0aW9ucy5maWx0ZXIoZnVuY3Rpb24obil7cmV0dXJuIG4ucGxheVN0YXRlIT09ImZpbmlzaGVkIiYmbi5wbGF5U3RhdGUhPT0iaWRsZSJ9KX19LHtrZXk6InJlc3RhcnRXZWJBbmltYXRpb25zTmV4dFRpY2siLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy50aW1lbGluZVRpY2tpbmd8fCh0aGlzLnRpbWVsaW5lVGlja2luZz0hMCx0aGlzLnJlcXVlc3RBbmltYXRpb25GcmFtZSh0aGlzLndlYkFuaW1hdGlvbnNOZXh0VGljaykpfX0se2tleToickFGIix2YWx1ZTpmdW5jdGlvbihuKXt2YXIgcj10aGlzLnJhZklkKys7cmV0dXJuIHRoaXMucmFmQ2FsbGJhY2tzLmxlbmd0aD09PTAmJih0aGlzLmZyYW1lSWQ9dGhpcy5kb2N1bWVudC5kZWZhdWx0Vmlldy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGhpcy5wcm9jZXNzUmFmQ2FsbGJhY2tzKSksdGhpcy5yYWZDYWxsYmFja3MucHVzaChbcixuXSkscn19LHtrZXk6InJlcXVlc3RBbmltYXRpb25GcmFtZSIsdmFsdWU6ZnVuY3Rpb24obil7dmFyIHI9dGhpcztyZXR1cm4gdGhpcy5yQUYoZnVuY3Rpb24oaSl7ci51cGRhdGVBbmltYXRpb25zUHJvbWlzZXMoKSxuKGkpLHIudXBkYXRlQW5pbWF0aW9uc1Byb21pc2VzKCl9KX19LHtrZXk6InRpY2siLHZhbHVlOmZ1bmN0aW9uKG4scixpKXt2YXIgYT10aGlzLG8sczt0aGlzLmluVGljaz0hMCx0aGlzLmhhc1Jlc3RhcnRlZFRoaXNGcmFtZT0hMSx0aGlzLmN1cnJlbnRUaW1lPW4sdGhpcy50aWNraW5nPSExO3ZhciBjPVtdLGw9W10sdT1bXSxmPVtdO3JldHVybiBpLmZvckVhY2goZnVuY3Rpb24oZCl7ZC50aWNrKG4sciksZC5faW5FZmZlY3Q/KGwucHVzaChkLmVmZmVjdCksZC5tYXJrVGFyZ2V0KCkpOihjLnB1c2goZC5lZmZlY3QpLGQudW5tYXJrVGFyZ2V0KCkpLGQuX25lZWRzVGljayYmKGEudGlja2luZz0hMCk7dmFyIGg9ZC5faW5FZmZlY3R8fGQuX25lZWRzVGljaztkLl9pblRpbWVsaW5lPWgsaD91LnB1c2goZCk6Zi5wdXNoKGQpfSksKG89dGhpcy5wZW5kaW5nRWZmZWN0cykucHVzaC5hcHBseShvLGMpLChzPXRoaXMucGVuZGluZ0VmZmVjdHMpLnB1c2guYXBwbHkocyxsKSx0aGlzLnRpY2tpbmcmJnRoaXMucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7fSksdGhpcy5pblRpY2s9ITEsW3UsZl19fV0pfSgpO0N0LkVhc2luZ0Z1bmN0aW9uPUNfLEN0LkFuaW1hdGlvblRpbWVsaW5lPVRqO3ZhciBQaj1mdW5jdGlvbih0LGUpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiZlLmluZGV4T2Yocik8MCYmKG5bcl09dFtyXSk7aWYodCE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBpPTAscj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2k8ci5sZW5ndGg7aSsrKWUuaW5kZXhPZihyW2ldKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodCxyW2ldKSYmKG5bcltpXV09dFtyW2ldXSk7cmV0dXJuIG59O2NvbnN0IFJfPSh0LGUsbik9PltbIk0iLHQtbixlXSxbIkEiLG4sbiwwLDEsMCx0K24sZV0sWyJBIixuLG4sMCwxLDAsdC1uLGVdLFsiWiJdXTtSXy5zdHlsZT1bImZpbGwiXTtjb25zdCB6az1SXy5iaW5kKHZvaWQgMCk7emsuc3R5bGU9WyJzdHJva2UiLCJsaW5lV2lkdGgiXTtjb25zdCBaeT0odCxlLG4pPT5bWyJNIix0LW4sZS1uXSxbIkwiLHQrbixlLW5dLFsiTCIsdCtuLGUrbl0sWyJMIix0LW4sZStuXSxbIloiXV07Wnkuc3R5bGU9WyJmaWxsIl07Y29uc3QgV2s9WnkuYmluZCh2b2lkIDApO1drLnN0eWxlPVsiZmlsbCJdO2NvbnN0IEdrPVp5LmJpbmQodm9pZCAwKTtHay5zdHlsZT1bInN0cm9rZSIsImxpbmVXaWR0aCJdO2NvbnN0IE5fPSh0LGUsbik9Pntjb25zdCByPW4qLjYxODtyZXR1cm5bWyJNIix0LXIsZV0sWyJMIix0LGUtbl0sWyJMIix0K3IsZV0sWyJMIix0LGUrbl0sWyJaIl1dfTtOXy5zdHlsZT1bImZpbGwiXTtjb25zdCAkaz1OXy5iaW5kKHZvaWQgMCk7JGsuc3R5bGU9WyJzdHJva2UiLCJsaW5lV2lkdGgiXTtjb25zdCBJXz0odCxlLG4pPT57Y29uc3Qgcj1uKk1hdGguc2luKC4zMzMzMzMzMzMzMzMzMzMzKk1hdGguUEkpO3JldHVybltbIk0iLHQtbixlK3JdLFsiTCIsdCxlLXJdLFsiTCIsdCtuLGUrcl0sWyJaIl1dfTtJXy5zdHlsZT1bImZpbGwiXTtjb25zdCBaaz1JXy5iaW5kKHZvaWQgMCk7Wmsuc3R5bGU9WyJzdHJva2UiLCJsaW5lV2lkdGgiXTtjb25zdCBEXz0odCxlLG4pPT57Y29uc3Qgcj1uKk1hdGguc2luKC4zMzMzMzMzMzMzMzMzMzMzKk1hdGguUEkpO3JldHVybltbIk0iLHQtbixlLXJdLFsiTCIsdCtuLGUtcl0sWyJMIix0LGUrcl0sWyJaIl1dfTtEXy5zdHlsZT1bImZpbGwiXTtjb25zdCBZaz1EXy5iaW5kKHZvaWQgMCk7WWsuc3R5bGU9WyJzdHJva2UiLCJsaW5lV2lkdGgiXTtjb25zdCBqXz0odCxlLG4pPT57Y29uc3Qgcj1uLzIqTWF0aC5zcXJ0KDMpO3JldHVybltbIk0iLHQsZS1uXSxbIkwiLHQrcixlLW4vMl0sWyJMIix0K3IsZStuLzJdLFsiTCIsdCxlK25dLFsiTCIsdC1yLGUrbi8yXSxbIkwiLHQtcixlLW4vMl0sWyJaIl1dfTtqXy5zdHlsZT1bImZpbGwiXTtjb25zdCBIaz1qXy5iaW5kKHZvaWQgMCk7SGsuc3R5bGU9WyJzdHJva2UiLCJsaW5lV2lkdGgiXTtjb25zdCBGXz0odCxlLG4pPT57Y29uc3Qgcj1uLTEuNTtyZXR1cm5bWyJNIix0LW4sZS1yXSxbIkwiLHQrbixlK3JdLFsiTCIsdCtuLGUtcl0sWyJMIix0LW4sZStyXSxbIloiXV19O0ZfLnN0eWxlPVsiZmlsbCJdO2NvbnN0IFZrPUZfLmJpbmQodm9pZCAwKTtWay5zdHlsZT1bInN0cm9rZSIsImxpbmVXaWR0aCJdO2NvbnN0IFhrPSh0LGUsbik9PltbIk0iLHQsZStuXSxbIkwiLHQsZS1uXV07WGsuc3R5bGU9WyJzdHJva2UiLCJsaW5lV2lkdGgiXTtjb25zdCBVaz0odCxlLG4pPT5bWyJNIix0LW4sZS1uXSxbIkwiLHQrbixlK25dLFsiTSIsdCtuLGUtbl0sWyJMIix0LW4sZStuXV07VWsuc3R5bGU9WyJzdHJva2UiLCJsaW5lV2lkdGgiXTtjb25zdCBxaz0odCxlLG4pPT5bWyJNIix0LW4vMixlLW5dLFsiTCIsdCtuLzIsZS1uXSxbIk0iLHQsZS1uXSxbIkwiLHQsZStuXSxbIk0iLHQtbi8yLGUrbl0sWyJMIix0K24vMixlK25dXTtxay5zdHlsZT1bInN0cm9rZSIsImxpbmVXaWR0aCJdO2NvbnN0IEtrPSh0LGUsbik9PltbIk0iLHQtbixlXSxbIkwiLHQrbixlXSxbIk0iLHQsZS1uXSxbIkwiLHQsZStuXV07S2suc3R5bGU9WyJzdHJva2UiLCJsaW5lV2lkdGgiXTtjb25zdCBRaz0odCxlLG4pPT5bWyJNIix0LW4sZV0sWyJMIix0K24sZV1dO1FrLnN0eWxlPVsic3Ryb2tlIiwibGluZVdpZHRoIl07Y29uc3QgQl89KHQsZSxuKT0+W1siTSIsdC1uLGVdLFsiTCIsdCtuLGVdXTtCXy5zdHlsZT1bInN0cm9rZSIsImxpbmVXaWR0aCJdO2NvbnN0IEprPUJfLmJpbmQodm9pZCAwKTtKay5zdHlsZT1bInN0cm9rZSIsImxpbmVXaWR0aCJdO2NvbnN0IHRBPSh0LGUsbik9PltbIk0iLHQtbixlXSxbIkEiLG4vMixuLzIsMCwxLDEsdCxlXSxbIkEiLG4vMixuLzIsMCwxLDAsdCtuLGVdXTt0QS5zdHlsZT1bInN0cm9rZSIsImxpbmVXaWR0aCJdO2NvbnN0IGVBPSh0LGUsbik9PltbIk0iLHQtbi0xLGUtMi41XSxbIkwiLHQsZS0yLjVdLFsiTCIsdCxlKzIuNV0sWyJMIix0K24rMSxlKzIuNV1dO2VBLnN0eWxlPVsic3Ryb2tlIiwibGluZVdpZHRoIl07Y29uc3QgbkE9KHQsZSxuKT0+W1siTSIsdC1uLTEsZSsyLjVdLFsiTCIsdCxlKzIuNV0sWyJMIix0LGUtMi41XSxbIkwiLHQrbisxLGUtMi41XV07bkEuc3R5bGU9WyJzdHJva2UiLCJsaW5lV2lkdGgiXTtjb25zdCByQT0odCxlLG4pPT5bWyJNIix0LShuKzEpLGUrMi41XSxbIkwiLHQtbi8yLGUrMi41XSxbIkwiLHQtbi8yLGUtMi41XSxbIkwiLHQrbi8yLGUtMi41XSxbIkwiLHQrbi8yLGUrMi41XSxbIkwiLHQrbisxLGUrMi41XV07ckEuc3R5bGU9WyJzdHJva2UiLCJsaW5lV2lkdGgiXTtjb25zdCBpQT0odCxlLG4pPT5bWyJNIix0LTUsZSsyLjVdLFsiTCIsdC01LGVdLFsiTCIsdCxlXSxbIkwiLHQsZS0zXSxbIkwiLHQsZSszXSxbIkwiLHQrNi41LGUrM11dO2lBLnN0eWxlPVsic3Ryb2tlIiwibGluZVdpZHRoIl07Y29uc3QgSGY9bmV3IE1hcChbWyJib3d0aWUiLEZfXSxbImNyb3NzIixVa10sWyJkYXNoIixKa10sWyJkaWFtb25kIixOX10sWyJkb3QiLEJfXSxbImhleGFnb24iLGpfXSxbImhvbGxvd0Jvd3RpZSIsVmtdLFsiaG9sbG93RGlhbW9uZCIsJGtdLFsiaG9sbG93SGV4YWdvbiIsSGtdLFsiaG9sbG93UG9pbnQiLHprXSxbImhvbGxvd1NxdWFyZSIsR2tdLFsiaG9sbG93VHJpYW5nbGUiLFprXSxbImhvbGxvd1RyaWFuZ2xlRG93biIsWWtdLFsiaHYiLGVBXSxbImh2aCIsckFdLFsiaHlwaGVuIixRa10sWyJsaW5lIixYa10sWyJwbHVzIixLa10sWyJwb2ludCIsUl9dLFsicmVjdCIsV2tdLFsic21vb3RoIix0QV0sWyJzcXVhcmUiLFp5XSxbInRpY2siLHFrXSxbInRyaWFuZ2xlRG93biIsRF9dLFsidHJpYW5nbGUiLElfXSxbInZoIixuQV0sWyJ2aHYiLGlBXV0pO2Z1bmN0aW9uIENqKHQsZSl7dmFye2Q6bixmaWxsOnIsbGluZVdpZHRoOmkscGF0aDphLHN0cm9rZTpvLGNvbG9yOnN9PWUsYz1QaihlLFsiZCIsImZpbGwiLCJsaW5lV2lkdGgiLCJwYXRoIiwic3Ryb2tlIiwiY29sb3IiXSk7Y29uc3QgbD1IZi5nZXQodCl8fEhmLmdldCgicG9pbnQiKTtyZXR1cm4oLi4udSk9Pm5ldyBRaSh7c3R5bGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGMpLHtkOmwoLi4udSksc3Ryb2tlOmwuc3R5bGUuaW5jbHVkZXMoInN0cm9rZSIpP3N8fG86IiIsZmlsbDpsLnN0eWxlLmluY2x1ZGVzKCJmaWxsIik/c3x8cjoiIixsaW5lV2lkdGg6bC5zdHlsZS5pbmNsdWRlcygibGluZVdpZHRoIik/aXx8aXx8MjowfSl9KX1mdW5jdGlvbiBMaih0LGUpe0hmLnNldCh0LGUpfWZ1bmN0aW9uIGphdCh0KXtIZi5kZWxldGUodCl9Y29uc3QgYUE9e307ZnVuY3Rpb24gb0EodCxlKXt0LnN0YXJ0c1dpdGgoInN5bWJvbC4iKT9Maih0LnNwbGl0KCIuIikucG9wKCksZSk6T2JqZWN0LmFzc2lnbihhQSx7W3RdOmV9KX1mdW5jdGlvbiBSaih0LGUpe3ZhciBuPWUuY3gscj1uPT09dm9pZCAwPzA6bixpPWUuY3ksYT1pPT09dm9pZCAwPzA6aSxvPWUucjt0LmFyYyhyLGEsbywwLE1hdGguUEkqMiwhMSl9ZnVuY3Rpb24gTmoodCxlKXt2YXIgbj1lLmN4LHI9bj09PXZvaWQgMD8wOm4saT1lLmN5LGE9aT09PXZvaWQgMD8wOmksbz1lLnJ4LHM9ZS5yeTtpZih0LmVsbGlwc2UpdC5lbGxpcHNlKHIsYSxvLHMsMCwwLE1hdGguUEkqMiwhMSk7ZWxzZXt2YXIgYz1vPnM/bzpzLGw9bz5zPzE6by9zLHU9bz5zP3MvbzoxO3Quc2F2ZSgpLHQuc2NhbGUobCx1KSx0LmFyYyhyLGEsYywwLE1hdGguUEkqMil9fWZ1bmN0aW9uIElqKHQsZSl7dmFyIG49ZS54MSxyPWUueTEsaT1lLngyLGE9ZS55MixvPWUubWFya2VyU3RhcnQscz1lLm1hcmtlckVuZCxjPWUubWFya2VyU3RhcnRPZmZzZXQsbD1lLm1hcmtlckVuZE9mZnNldCx1PTAsZj0wLGQ9MCxoPTAsdj0wLGcseTtvJiZ4bihvKSYmYyYmKGc9aS1uLHk9YS1yLHY9TWF0aC5hdGFuMih5LGcpLHU9TWF0aC5jb3ModikqKGN8fDApLGY9TWF0aC5zaW4odikqKGN8fDApKSxzJiZ4bihzKSYmbCYmKGc9bi1pLHk9ci1hLHY9TWF0aC5hdGFuMih5LGcpLGQ9TWF0aC5jb3ModikqKGx8fDApLGg9TWF0aC5zaW4odikqKGx8fDApKSx0Lm1vdmVUbyhuK3UscitmKSx0LmxpbmVUbyhpK2QsYStoKX1mdW5jdGlvbiBEaih0LGUpe3ZhciBuPWUubWFya2VyU3RhcnQscj1lLm1hcmtlckVuZCxpPWUubWFya2VyU3RhcnRPZmZzZXQsYT1lLm1hcmtlckVuZE9mZnNldCxvPWUuZCxzPW8uYWJzb2x1dGVQYXRoLGM9by5zZWdtZW50cyxsPTAsdT0wLGY9MCxkPTAsaD0wLHYsZztpZihuJiZ4bihuKSYmaSl7dmFyIHk9bi5wYXJlbnROb2RlLmdldFN0YXJ0VGFuZ2VudCgpLGI9KDAsVGUuWikoeSwyKSx4PWJbMF0sXz1iWzFdO3Y9eFswXS1fWzBdLGc9eFsxXS1fWzFdLGg9TWF0aC5hdGFuMihnLHYpLGw9TWF0aC5jb3MoaCkqKGl8fDApLHU9TWF0aC5zaW4oaCkqKGl8fDApfWlmKHImJnhuKHIpJiZhKXt2YXIgdz1yLnBhcmVudE5vZGUuZ2V0RW5kVGFuZ2VudCgpLE89KDAsVGUuWikodywyKSxFPU9bMF0sTT1PWzFdO3Y9RVswXS1NWzBdLGc9RVsxXS1NWzFdLGg9TWF0aC5hdGFuMihnLHYpLGY9TWF0aC5jb3MoaCkqKGF8fDApLGQ9TWF0aC5zaW4oaCkqKGF8fDApfWZvcih2YXIgaz0wO2s8cy5sZW5ndGg7aysrKXt2YXIgQT1zW2tdLFA9QVswXSxDPXNbaysxXSxOPWs9PT0wJiYobCE9PTB8fHUhPT0wKSxMPShrPT09cy5sZW5ndGgtMXx8QyYmKENbMF09PT0iTSJ8fENbMF09PT0iWiIpKSYmZiE9PTAmJmQhPT0wLFI9Tj9bbCx1XTpbMCwwXSxJPSgwLFRlLlopKFIsMiksRD1JWzBdLEc9SVsxXSxGPUw/W2YsZF06WzAsMF0sVz0oMCxUZS5aKShGLDIpLFg9V1swXSxRPVdbMV07c3dpdGNoKFApe2Nhc2UiTSI6dC5tb3ZlVG8oQVsxXStELEFbMl0rRyk7YnJlYWs7Y2FzZSJMIjp0LmxpbmVUbyhBWzFdK1gsQVsyXStRKTticmVhaztjYXNlIlEiOnQucXVhZHJhdGljQ3VydmVUbyhBWzFdLEFbMl0sQVszXStYLEFbNF0rUSk7YnJlYWs7Y2FzZSJDIjp0LmJlemllckN1cnZlVG8oQVsxXSxBWzJdLEFbM10sQVs0XSxBWzVdK1gsQVs2XStRKTticmVhaztjYXNlIkEiOnt2YXIgdHQ9Y1trXS5hcmNQYXJhbXMsbnQ9dHQuY3gsaHQ9dHQuY3ksbHQ9dHQucngsd3Q9dHQucnkseXQ9dHQuc3RhcnRBbmdsZSxndD10dC5lbmRBbmdsZSxCdD10dC54Um90YXRpb24sTHQ9dHQuc3dlZXBGbGFnO2lmKHQuZWxsaXBzZSl0LmVsbGlwc2UobnQsaHQsbHQsd3QsQnQseXQsZ3QsISEoMS1MdCkpO2Vsc2V7dmFyIEl0PWx0Pnd0P2x0Ond0LGp0PWx0Pnd0PzE6bHQvd3QsUXQ9bHQ+d3Q/d3QvbHQ6MTt0LnRyYW5zbGF0ZShudCxodCksdC5yb3RhdGUoQnQpLHQuc2NhbGUoanQsUXQpLHQuYXJjKDAsMCxJdCx5dCxndCwhISgxLUx0KSksdC5zY2FsZSgxL2p0LDEvUXQpLHQucm90YXRlKC1CdCksdC50cmFuc2xhdGUoLW50LC1odCl9TCYmdC5saW5lVG8oQVs2XStmLEFbN10rZCk7YnJlYWt9Y2FzZSJaIjp0LmNsb3NlUGF0aCgpO2JyZWFrfX19ZnVuY3Rpb24gamoodCxlKXt2YXIgbj1lLm1hcmtlclN0YXJ0LHI9ZS5tYXJrZXJFbmQsaT1lLm1hcmtlclN0YXJ0T2Zmc2V0LGE9ZS5tYXJrZXJFbmRPZmZzZXQsbz1lLnBvaW50cy5wb2ludHMscz1vLmxlbmd0aCxjPW9bMF1bMF0sbD1vWzBdWzFdLHU9b1tzLTFdWzBdLGY9b1tzLTFdWzFdLGQ9MCxoPTAsdj0wLGc9MCx5PTAsYix4O24mJnhuKG4pJiZpJiYoYj1vWzFdWzBdLW9bMF1bMF0seD1vWzFdWzFdLW9bMF1bMV0seT1NYXRoLmF0YW4yKHgsYiksZD1NYXRoLmNvcyh5KSooaXx8MCksaD1NYXRoLnNpbih5KSooaXx8MCkpLHImJnhuKHIpJiZhJiYoYj1vW3MtMV1bMF0tb1swXVswXSx4PW9bcy0xXVsxXS1vWzBdWzFdLHk9TWF0aC5hdGFuMih4LGIpLHY9TWF0aC5jb3MoeSkqKGF8fDApLGc9TWF0aC5zaW4oeSkqKGF8fDApKSx0Lm1vdmVUbyhjKyhkfHx2KSxsKyhofHxnKSk7Zm9yKHZhciBfPTE7XzxzLTE7XysrKXt2YXIgdz1vW19dO3QubGluZVRvKHdbMF0sd1sxXSl9dC5saW5lVG8odSxmKX1mdW5jdGlvbiBGaih0LGUpe3ZhciBuPWUubWFya2VyU3RhcnQscj1lLm1hcmtlckVuZCxpPWUubWFya2VyU3RhcnRPZmZzZXQsYT1lLm1hcmtlckVuZE9mZnNldCxvPWUucG9pbnRzLnBvaW50cyxzPW8ubGVuZ3RoLGM9b1swXVswXSxsPW9bMF1bMV0sdT1vW3MtMV1bMF0sZj1vW3MtMV1bMV0sZD0wLGg9MCx2PTAsZz0wLHk9MCxiLHg7biYmeG4obikmJmkmJihiPW9bMV1bMF0tb1swXVswXSx4PW9bMV1bMV0tb1swXVsxXSx5PU1hdGguYXRhbjIoeCxiKSxkPU1hdGguY29zKHkpKihpfHwwKSxoPU1hdGguc2luKHkpKihpfHwwKSksciYmeG4ocikmJmEmJihiPW9bcy0yXVswXS1vW3MtMV1bMF0seD1vW3MtMl1bMV0tb1tzLTFdWzFdLHk9TWF0aC5hdGFuMih4LGIpLHY9TWF0aC5jb3MoeSkqKGF8fDApLGc9TWF0aC5zaW4oeSkqKGF8fDApKSx0Lm1vdmVUbyhjK2QsbCtoKTtmb3IodmFyIF89MTtfPHMtMTtfKyspe3ZhciB3PW9bX107dC5saW5lVG8od1swXSx3WzFdKX10LmxpbmVUbyh1K3YsZitnKX1mdW5jdGlvbiBCaih0LGUpe3ZhciBuPWUueCxyPW49PT12b2lkIDA/MDpuLGk9ZS55LGE9aT09PXZvaWQgMD8wOmksbz1lLnJhZGl1cyxzPWUud2lkdGgsYz1lLmhlaWdodCxsPXMsdT1jLGY9byYmby5zb21lKGZ1bmN0aW9uKE8pe3JldHVybiBPIT09MH0pO2lmKCFmKXQucmVjdChyLGEsbCx1KTtlbHNle3ZhciBkPXM+MD8xOi0xLGg9Yz4wPzE6LTEsdj1kK2g9PT0wLGc9by5tYXAoZnVuY3Rpb24oTyl7cmV0dXJuIG1uKE8sMCxNYXRoLm1pbihNYXRoLmFicyhsKS8yLE1hdGguYWJzKHUpLzIpKX0pLHk9KDAsVGUuWikoZyw0KSxiPXlbMF0seD15WzFdLF89eVsyXSx3PXlbM107dC5tb3ZlVG8oZCpiK3IsYSksdC5saW5lVG8obC1kKngrcixhKSx4IT09MCYmdC5hcmMobC1kKngrcixoKngrYSx4LC1oKk1hdGguUEkvMixkPjA/MDpNYXRoLlBJLHYpLHQubGluZVRvKGwrcix1LWgqXythKSxfIT09MCYmdC5hcmMobC1kKl8rcix1LWgqXythLF8sZD4wPzA6TWF0aC5QSSxoPjA/TWF0aC5QSS8yOjEuNSpNYXRoLlBJLHYpLHQubGluZVRvKGQqdytyLHUrYSksdyE9PTAmJnQuYXJjKGQqdytyLHUtaCp3K2EsdyxoPjA/TWF0aC5QSS8yOi1NYXRoLlBJLzIsZD4wP01hdGguUEk6MCx2KSx0LmxpbmVUbyhyLGgqYithKSxiIT09MCYmdC5hcmMoZCpiK3IsaCpiK2EsYixkPjA/TWF0aC5QSTowLGg+MD9NYXRoLlBJKjEuNTpNYXRoLlBJLzIsdil9fXZhciB6aj1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dmFyIG47KDAseHQuWikodGhpcyxlKTtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aCxpPW5ldyBBcnJheShyKSxhPTA7YTxyO2ErKylpW2FdPWFyZ3VtZW50c1thXTtyZXR1cm4gbj0oMCxEZS5aKSh0aGlzLGUsW10uY29uY2F0KGkpKSxuLm5hbWU9ImNhbnZhcy1wYXRoLWdlbmVyYXRvciIsbn1yZXR1cm4oMCxNZS5aKShlLHQpLCgwLE90LlopKGUsW3trZXk6ImluaXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHIsaT0ocj17fSwoMCxLdC5aKSgoMCxLdC5aKSgoMCxLdC5aKSgoMCxLdC5aKSgoMCxLdC5aKSgoMCxLdC5aKSgoMCxLdC5aKSgoMCxLdC5aKSgoMCxLdC5aKSgoMCxLdC5aKShyLGR0LkNJUkNMRSxSaiksZHQuRUxMSVBTRSxOaiksZHQuUkVDVCxCaiksZHQuTElORSxJaiksZHQuUE9MWUxJTkUsRmopLGR0LlBPTFlHT04samopLGR0LlBBVEgsRGopLGR0LlRFWFQsdm9pZCAwKSxkdC5HUk9VUCx2b2lkIDApLGR0LklNQUdFLHZvaWQgMCksKDAsS3QuWikoKDAsS3QuWikoKDAsS3QuWikocixkdC5IVE1MLHZvaWQgMCksZHQuTUVTSCx2b2lkIDApLGR0LkZSQUdNRU5ULHZvaWQgMCkpO3RoaXMuY29udGV4dC5wYXRoR2VuZXJhdG9yRmFjdG9yeT1pfX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXtkZWxldGUgdGhpcy5jb250ZXh0LnBhdGhHZW5lcmF0b3JGYWN0b3J5fX1dKX0oaXMpO3ZhciBXaj1tZSgpLEdqPW1lKCksJGo9bWUoKSxaaj1XbigpLHNBPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3ZhciBlPXRoaXM7KDAseHQuWikodGhpcyx0KSx0aGlzLmlzSGl0PWZ1bmN0aW9uKG4scixpLGEpe3ZhciBvPWUuY29udGV4dC5wb2ludEluUGF0aFBpY2tlckZhY3Rvcnlbbi5ub2RlTmFtZV07aWYobyl7dmFyIHM9JGkoWmosaSksYz1lcihHaixHcigkaixyWzBdLHJbMV0sMCkscyk7aWYobyhuLG5ldyBpaShjWzBdLGNbMV0pLGEsZS5pc1BvaW50SW5QYXRoLGUuY29udGV4dCxlLnJ1bnRpbWUpKXJldHVybiEwfXJldHVybiExfSx0aGlzLmlzUG9pbnRJblBhdGg9ZnVuY3Rpb24obixyKXt2YXIgaT1lLnJ1bnRpbWUub2Zmc2NyZWVuQ2FudmFzQ3JlYXRvci5nZXRPckNyZWF0ZUNvbnRleHQoZS5jb250ZXh0LmNvbmZpZy5vZmZzY3JlZW5DYW52YXMpLGE9ZS5jb250ZXh0LnBhdGhHZW5lcmF0b3JGYWN0b3J5W24ubm9kZU5hbWVdO3JldHVybiBhJiYoaS5iZWdpblBhdGgoKSxhKGksbi5wYXJzZWRTdHlsZSksaS5jbG9zZVBhdGgoKSksaS5pc1BvaW50SW5QYXRoKHIueCxyLnkpfX1yZXR1cm4oMCxPdC5aKSh0LFt7a2V5OiJhcHBseSIsdmFsdWU6ZnVuY3Rpb24obixyKXt2YXIgaSxhPXRoaXMsbz1uLnJlbmRlcmluZ1NlcnZpY2Uscz1uLnJlbmRlcmluZ0NvbnRleHQ7dGhpcy5jb250ZXh0PW4sdGhpcy5ydW50aW1lPXI7dmFyIGM9KGk9cy5yb290KT09PW51bGx8fGk9PT12b2lkIDA/dm9pZCAwOmkub3duZXJEb2N1bWVudDtvLmhvb2tzLnBpY2sudGFwUHJvbWlzZSh0LnRhZyxmdW5jdGlvbigpe3ZhciBsPSgwLG9vLlopKCgwLE1uLlopKCkubWFyayhmdW5jdGlvbiB1KGYpe3JldHVybigwLE1uLlopKCkud3JhcChmdW5jdGlvbihoKXtmb3IoOzspc3dpdGNoKGgucHJldj1oLm5leHQpe2Nhc2UgMDpyZXR1cm4gaC5hYnJ1cHQoInJldHVybiIsYS5waWNrKGMsZikpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGguc3RvcCgpfX0sdSl9KSk7cmV0dXJuIGZ1bmN0aW9uKHUpe3JldHVybiBsLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCkpLG8uaG9va3MucGlja1N5bmMudGFwKHQudGFnLGZ1bmN0aW9uKGwpe3JldHVybiBhLnBpY2soYyxsKX0pfX0se2tleToicGljayIsdmFsdWU6ZnVuY3Rpb24obixyKXt2YXIgaT1yLnRvcG1vc3QsYT1yLnBvc2l0aW9uLG89YS54LHM9YS55LGM9R3IoV2osbyxzLDApLGw9bi5lbGVtZW50c0Zyb21CQm94KGNbMF0sY1sxXSxjWzBdLGNbMV0pLHU9W10sZj0oMCxZcy5aKShsKSxkO3RyeXtmb3IoZi5zKCk7IShkPWYubigpKS5kb25lOyl7dmFyIGg9ZC52YWx1ZSx2PWguZ2V0V29ybGRUcmFuc2Zvcm0oKSxnPXRoaXMuaXNIaXQoaCxjLHYsITEpO2lmKGcpe3ZhciB5PWZ5KGgpO2lmKHkpe3ZhciBiPXkucGFyc2VkU3R5bGUuY2xpcFBhdGgseD10aGlzLmlzSGl0KGIsYyxiLmdldFdvcmxkVHJhbnNmb3JtKCksITApO2lmKHgpe2lmKGkpcmV0dXJuIHIucGlja2VkPVtoXSxyO3UucHVzaChoKX19ZWxzZXtpZihpKXJldHVybiByLnBpY2tlZD1baF0scjt1LnB1c2goaCl9fX19Y2F0Y2goXyl7Zi5lKF8pfWZpbmFsbHl7Zi5mKCl9cmV0dXJuIHIucGlja2VkPXUscn19XSl9KCk7c0EudGFnPSJDYW52YXNQaWNrZXIiO2Z1bmN0aW9uIFlqKHQsZSxuKXt2YXIgcj10LnBhcnNlZFN0eWxlLGk9ci5jeCxhPWk9PT12b2lkIDA/MDppLG89ci5jeSxzPW89PT12b2lkIDA/MDpvLGM9ci5yLGw9ci5maWxsLHU9ci5zdHJva2UsZj1yLmxpbmVXaWR0aCxkPWY9PT12b2lkIDA/MTpmLGg9ci5pbmNyZWFzZWRMaW5lV2lkdGhGb3JIaXRUZXN0aW5nLHY9aD09PXZvaWQgMD8wOmgsZz1yLnBvaW50ZXJFdmVudHMseT1nPT09dm9pZCAwPyJhdXRvIjpnLGI9KGQrdikvMix4PWxpKGEscyxlLngsZS55KSxfPUpzKHksbCx1KSx3PSgwLFRlLlopKF8sMiksTz13WzBdLEU9d1sxXTtyZXR1cm4gTyYmRXx8bj94PD1jK2I6Tz94PD1jOkU/eD49Yy1iJiZ4PD1jK2I6ITF9ZnVuY3Rpb24gWXkodCxlLG4scil7cmV0dXJuIHQvKG4qbikrZS8ocipyKX1mdW5jdGlvbiBIaih0LGUsbil7dmFyIHI9dC5wYXJzZWRTdHlsZSxpPXIuY3gsYT1pPT09dm9pZCAwPzA6aSxvPXIuY3kscz1vPT09dm9pZCAwPzA6byxjPXIucngsbD1yLnJ5LHU9ci5maWxsLGY9ci5zdHJva2UsZD1yLmxpbmVXaWR0aCxoPWQ9PT12b2lkIDA/MTpkLHY9ci5pbmNyZWFzZWRMaW5lV2lkdGhGb3JIaXRUZXN0aW5nLGc9dj09PXZvaWQgMD8wOnYseT1yLnBvaW50ZXJFdmVudHMsYj15PT09dm9pZCAwPyJhdXRvIjp5LHg9ZS54LF89ZS55LHc9SnMoYix1LGYpLE89KDAsVGUuWikodywyKSxFPU9bMF0sTT1PWzFdLGs9KGgrZykvMixBPSh4LWEpKih4LWEpLFA9KF8tcykqKF8tcyk7cmV0dXJuIEUmJk18fG4/WXkoQSxQLGMrayxsK2spPD0xOkU/WXkoQSxQLGMsbCk8PTE6TT9ZeShBLFAsYy1rLGwtayk+PTEmJll5KEEsUCxjK2ssbCtrKTw9MTohMX1mdW5jdGlvbiBsdSh0LGUsbixyLGksYSl7cmV0dXJuIGk+PXQmJmk8PXQrbiYmYT49ZSYmYTw9ZStyfWZ1bmN0aW9uIFZqKHQsZSxuLHIsaSxhLG8pe3ZhciBzPWkvMjtyZXR1cm4gbHUodC1zLGUtcyxuLGksYSxvKXx8bHUodCtuLXMsZS1zLGkscixhLG8pfHxsdSh0K3MsZStyLXMsbixpLGEsbyl8fGx1KHQtcyxlK3MsaSxyLGEsbyl9ZnVuY3Rpb24gSHkodCxlLG4scixpLGEsbyxzKXt2YXIgYz0oTWF0aC5hdGFuMihzLWUsby10KStNYXRoLlBJKjIpJShNYXRoLlBJKjIpLGw9e3g6dCtuKk1hdGguY29zKGMpLHk6ZStuKk1hdGguc2luKGMpfTtyZXR1cm4gbGkobC54LGwueSxvLHMpPD1hLzJ9ZnVuY3Rpb24gSmModCxlLG4scixpLGEsbyl7dmFyIHM9TWF0aC5taW4odCxuKSxjPU1hdGgubWF4KHQsbiksbD1NYXRoLm1pbihlLHIpLHU9TWF0aC5tYXgoZSxyKSxmPWkvMjtyZXR1cm4gYT49cy1mJiZhPD1jK2YmJm8+PWwtZiYmbzw9dStmP2FnKHQsZSxuLHIsYSxvKTw9aS8yOiExfWZ1bmN0aW9uIGNBKHQsZSxuLHIsaSl7dmFyIGE9dC5sZW5ndGg7aWYoYTwyKXJldHVybiExO2Zvcih2YXIgbz0wO288YS0xO28rKyl7dmFyIHM9dFtvXVswXSxjPXRbb11bMV0sbD10W28rMV1bMF0sdT10W28rMV1bMV07aWYoSmMocyxjLGwsdSxlLG4scikpcmV0dXJuITB9aWYoaSl7dmFyIGY9dFswXSxkPXRbYS0xXTtpZihKYyhmWzBdLGZbMV0sZFswXSxkWzFdLGUsbixyKSlyZXR1cm4hMH1yZXR1cm4hMX12YXIgWGo9MWUtNjtmdW5jdGlvbiB6Xyh0KXtyZXR1cm4gTWF0aC5hYnModCk8WGo/MDp0PDA/LTE6MX1mdW5jdGlvbiBVaih0LGUsbil7cmV0dXJuKG5bMF0tdFswXSkqKGVbMV0tdFsxXSk9PT0oZVswXS10WzBdKSooblsxXS10WzFdKSYmTWF0aC5taW4odFswXSxlWzBdKTw9blswXSYmblswXTw9TWF0aC5tYXgodFswXSxlWzBdKSYmTWF0aC5taW4odFsxXSxlWzFdKTw9blsxXSYmblsxXTw9TWF0aC5tYXgodFsxXSxlWzFdKX1mdW5jdGlvbiBsQSh0LGUsbil7dmFyIHI9ITEsaT10Lmxlbmd0aDtpZihpPD0yKXJldHVybiExO2Zvcih2YXIgYT0wO2E8aTthKyspe3ZhciBvPXRbYV0scz10WyhhKzEpJWldO2lmKFVqKG8scyxbZSxuXSkpcmV0dXJuITA7el8ob1sxXS1uKT4wIT16XyhzWzFdLW4pPjAmJnpfKGUtKG4tb1sxXSkqKG9bMF0tc1swXSkvKG9bMV0tc1sxXSktb1swXSk8MCYmKHI9IXIpfXJldHVybiByfWZ1bmN0aW9uIHVBKHQsZSxuKXtmb3IodmFyIHI9ITEsaT0wO2k8dC5sZW5ndGg7aSsrKXt2YXIgYT10W2ldO2lmKHI9bEEoYSxlLG4pLHIpYnJlYWt9cmV0dXJuIHJ9ZnVuY3Rpb24gcWoodCxlLG4pe3ZhciByPXQucGFyc2VkU3R5bGUsaT1yLngxLGE9ci55MSxvPXIueDIscz1yLnkyLGM9ci5saW5lV2lkdGgsbD1jPT09dm9pZCAwPzE6Yyx1PXIuaW5jcmVhc2VkTGluZVdpZHRoRm9ySGl0VGVzdGluZyxmPXU9PT12b2lkIDA/MDp1LGQ9ci5wb2ludGVyRXZlbnRzLGg9ZD09PXZvaWQgMD8iYXV0byI6ZCx2PXIuZmlsbCxnPXIuc3Ryb2tlLHk9SnMoaCx2LGcpLGI9KDAsVGUuWikoeSwyKSx4PWJbMV07cmV0dXJuIXgmJiFufHwhbD8hMTpKYyhpLGEsbyxzLGwrZixlLngsZS55KX1mdW5jdGlvbiBLaih0LGUsbixyLGkpe2Zvcih2YXIgYT0hMSxvPWUvMixzPTA7czx0Lmxlbmd0aDtzKyspe3ZhciBjPXRbc10sbD1jLmN1cnJlbnRQb2ludCx1PWMucGFyYW1zLGY9Yy5wcmVQb2ludCxkPWMuYm94O2lmKCEoZCYmIWx1KGQueC1vLGQueS1vLGQud2lkdGgrZSxkLmhlaWdodCtlLG4scikpKXN3aXRjaChjLmNvbW1hbmQpe2Nhc2UiTCI6Y2FzZSJaIjppZihhPUpjKGZbMF0sZlsxXSxsWzBdLGxbMV0sZSxuLHIpLGEpcmV0dXJuITA7YnJlYWs7Y2FzZSJRIjp2YXIgaD1EbyhmWzBdLGZbMV0sdVsxXSx1WzJdLHVbM10sdVs0XSxuLHIpO2lmKGE9aDw9ZS8yLGEpcmV0dXJuITA7YnJlYWs7Y2FzZSJDIjp2YXIgdj1zZyhmWzBdLGZbMV0sdVsxXSx1WzJdLHVbM10sdVs0XSx1WzVdLHVbNl0sbixyLGkpO2lmKGE9djw9ZS8yLGEpcmV0dXJuITA7YnJlYWs7Y2FzZSJBIjpjLmN1YmljUGFyYW1zfHwoYy5jdWJpY1BhcmFtcz1acyhmWzBdLGZbMV0sdVsxXSx1WzJdLHVbM10sdVs0XSx1WzVdLHVbNl0sdVs3XSx2b2lkIDApKTtmb3IodmFyIGc9Yy5jdWJpY1BhcmFtcyx5PWYsYj0wO2I8Zy5sZW5ndGg7Yis9Nil7dmFyIHg9c2coeVswXSx5WzFdLGdbYl0sZ1tiKzFdLGdbYisyXSxnW2IrM10sZ1tiKzRdLGdbYis1XSxuLHIsaSk7aWYoeT1bZ1tiKzRdLGdbYis1XV0sYT14PD1lLzIsYSlyZXR1cm4hMH1icmVha319cmV0dXJuIGF9ZnVuY3Rpb24gUWoodCxlLG4scixpLGEpe3ZhciBvPXQucGFyc2VkU3R5bGUscz1vLmxpbmVXaWR0aCxjPXM9PT12b2lkIDA/MTpzLGw9by5pbmNyZWFzZWRMaW5lV2lkdGhGb3JIaXRUZXN0aW5nLHU9bD09PXZvaWQgMD8wOmwsZj1vLnN0cm9rZSxkPW8uZmlsbCxoPW8uZCx2PW8ucG9pbnRlckV2ZW50cyxnPXY9PT12b2lkIDA/ImF1dG8iOnYseT1oLnNlZ21lbnRzLGI9aC5oYXNBcmMseD1oLnBvbHlsaW5lcyxfPWgucG9seWdvbnMsdz1KcyhnLChfPT1udWxsP3ZvaWQgMDpfLmxlbmd0aCkmJmQsZiksTz0oMCxUZS5aKSh3LDIpLEU9T1swXSxNPU9bMV0saz1XYSh0KSxBPSExO3JldHVybiBFfHxuPyhiP0E9cih0LGUpOkE9dUEoXyxlLngsZS55KXx8dUEoeCxlLngsZS55KSxBKTooKE18fG4pJiYoQT1Laih5LGMrdSxlLngsZS55LGspKSxBKX1mdW5jdGlvbiBKaih0LGUsbil7dmFyIHI9dC5wYXJzZWRTdHlsZSxpPXIuc3Ryb2tlLGE9ci5maWxsLG89ci5saW5lV2lkdGgscz1vPT09dm9pZCAwPzE6byxjPXIuaW5jcmVhc2VkTGluZVdpZHRoRm9ySGl0VGVzdGluZyxsPWM9PT12b2lkIDA/MDpjLHU9ci5wb2ludHMsZj1yLnBvaW50ZXJFdmVudHMsZD1mPT09dm9pZCAwPyJhdXRvIjpmLGg9SnMoZCxhLGkpLHY9KDAsVGUuWikoaCwyKSxnPXZbMF0seT12WzFdLGI9ITE7cmV0dXJuKHl8fG4pJiYoYj1jQSh1LnBvaW50cyxzK2wsZS54LGUueSwhMCkpLCFiJiYoZ3x8bikmJihiPWxBKHUucG9pbnRzLGUueCxlLnkpKSxifWZ1bmN0aW9uIHRGKHQsZSxuKXt2YXIgcj10LnBhcnNlZFN0eWxlLGk9ci5saW5lV2lkdGgsYT1pPT09dm9pZCAwPzE6aSxvPXIuaW5jcmVhc2VkTGluZVdpZHRoRm9ySGl0VGVzdGluZyxzPW89PT12b2lkIDA/MDpvLGM9ci5wb2ludHMsbD1yLnBvaW50ZXJFdmVudHMsdT1sPT09dm9pZCAwPyJhdXRvIjpsLGY9ci5maWxsLGQ9ci5zdHJva2UsaD1Kcyh1LGYsZCksdj0oMCxUZS5aKShoLDIpLGc9dlsxXTtyZXR1cm4hZyYmIW58fCFhPyExOmNBKGMucG9pbnRzLGErcyxlLngsZS55LCExKX1mdW5jdGlvbiBlRih0LGUsbixyLGkpe3ZhciBhPXQucGFyc2VkU3R5bGUsbz1hLnJhZGl1cyxzPWEuZmlsbCxjPWEuc3Ryb2tlLGw9YS5saW5lV2lkdGgsdT1sPT09dm9pZCAwPzE6bCxmPWEuaW5jcmVhc2VkTGluZVdpZHRoRm9ySGl0VGVzdGluZyxkPWY9PT12b2lkIDA/MDpmLGg9YS54LHY9aD09PXZvaWQgMD8wOmgsZz1hLnkseT1nPT09dm9pZCAwPzA6ZyxiPWEud2lkdGgseD1hLmhlaWdodCxfPWEucG9pbnRlckV2ZW50cyx3PV89PT12b2lkIDA/ImF1dG8iOl8sTz1Kcyh3LHMsYyksRT0oMCxUZS5aKShPLDIpLE09RVswXSxrPUVbMV0sQT1vJiZvLnNvbWUoZnVuY3Rpb24oTCl7cmV0dXJuIEwhPT0wfSksUD11K2Q7aWYoQSl7dmFyIE49ITE7cmV0dXJuKGt8fG4pJiYoTj1uRih2LHksYix4LG8ubWFwKGZ1bmN0aW9uKEwpe3JldHVybiBtbihMLDAsTWF0aC5taW4oTWF0aC5hYnMoYikvMixNYXRoLmFicyh4KS8yKSl9KSxQLGUueCxlLnkpKSwhTiYmKE18fG4pJiYoTj1yKHQsZSkpLE59ZWxzZXt2YXIgQz1QLzI7aWYoTSYma3x8bilyZXR1cm4gbHUodi1DLHktQyxiK0MseCtDLGUueCxlLnkpO2lmKE0pcmV0dXJuIGx1KHYseSxiLHgsZS54LGUueSk7aWYoaylyZXR1cm4gVmoodix5LGIseCxQLGUueCxlLnkpfXJldHVybiExfWZ1bmN0aW9uIG5GKHQsZSxuLHIsaSxhLG8scyl7dmFyIGM9KDAsVGUuWikoaSw0KSxsPWNbMF0sdT1jWzFdLGY9Y1syXSxkPWNbM107cmV0dXJuIEpjKHQrbCxlLHQrbi11LGUsYSxvLHMpfHxKYyh0K24sZSt1LHQrbixlK3ItZixhLG8scyl8fEpjKHQrbi1mLGUrcix0K2QsZStyLGEsbyxzKXx8SmModCxlK3ItZCx0LGUrbCxhLG8scyl8fEh5KHQrbi11LGUrdSx1LDEuNSpNYXRoLlBJLDIqTWF0aC5QSSxhLG8scyl8fEh5KHQrbi1mLGUrci1mLGYsMCwuNSpNYXRoLlBJLGEsbyxzKXx8SHkodCtkLGUrci1kLGQsLjUqTWF0aC5QSSxNYXRoLlBJLGEsbyxzKXx8SHkodCtsLGUrbCxsLE1hdGguUEksMS41Kk1hdGguUEksYSxvLHMpfWZ1bmN0aW9uIHJGKHQsZSxuLHIsaSxhKXt2YXIgbz10LnBhcnNlZFN0eWxlLHM9by5wb2ludGVyRXZlbnRzLGM9cz09PXZvaWQgMD8iYXV0byI6cyxsPW8ueCx1PWw9PT12b2lkIDA/MDpsLGY9by55LGQ9Zj09PXZvaWQgMD8wOmYsaD1vLndpZHRoLHY9by5oZWlnaHQ7aWYoYz09PSJub24tdHJhbnNwYXJlbnQtcGl4ZWwiKXt2YXIgZz1pLmNvbmZpZy5vZmZzY3JlZW5DYW52YXMseT1hLm9mZnNjcmVlbkNhbnZhc0NyZWF0b3IuZ2V0T3JDcmVhdGVDYW52YXMoZyksYj1hLm9mZnNjcmVlbkNhbnZhc0NyZWF0b3IuZ2V0T3JDcmVhdGVDb250ZXh0KGcse3dpbGxSZWFkRnJlcXVlbnRseTohMH0pO3kud2lkdGg9aCx5LmhlaWdodD12LGkuZGVmYXVsdFN0eWxlUmVuZGVyZXJGYWN0b3J5W2R0LklNQUdFXS5yZW5kZXIoYiwoMCxFZS5aKSgoMCxFZS5aKSh7fSx0LnBhcnNlZFN0eWxlKSx7fSx7eDowLHk6MH0pLHQsdm9pZCAwLHZvaWQgMCx2b2lkIDApO3ZhciB4PWIuZ2V0SW1hZ2VEYXRhKGUueC11LGUueS1kLDEsMSkuZGF0YTtyZXR1cm4geC5ldmVyeShmdW5jdGlvbihfKXtyZXR1cm4gXyE9PTB9KX1yZXR1cm4hMH1mdW5jdGlvbiBpRih0LGUsbixyKXt2YXIgaT10LmdldEdlb21ldHJ5Qm91bmRzKCk7cmV0dXJuIGUueD49aS5taW5bMF0mJmUueT49aS5taW5bMV0mJmUueDw9aS5tYXhbMF0mJmUueTw9aS5tYXhbMV19dmFyIGFGPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt2YXIgbjsoMCx4dC5aKSh0aGlzLGUpO2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoLGk9bmV3IEFycmF5KHIpLGE9MDthPHI7YSsrKWlbYV09YXJndW1lbnRzW2FdO3JldHVybiBuPSgwLERlLlopKHRoaXMsZSxbXS5jb25jYXQoaSkpLG4ubmFtZT0iY2FudmFzLXBpY2tlciIsbn1yZXR1cm4oMCxNZS5aKShlLHQpLCgwLE90LlopKGUsW3trZXk6ImluaXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHIsaT0ocj17fSwoMCxLdC5aKSgoMCxLdC5aKSgoMCxLdC5aKSgoMCxLdC5aKSgoMCxLdC5aKSgoMCxLdC5aKSgoMCxLdC5aKSgoMCxLdC5aKSgoMCxLdC5aKSgoMCxLdC5aKShyLGR0LkNJUkNMRSxZaiksZHQuRUxMSVBTRSxIaiksZHQuUkVDVCxlRiksZHQuTElORSxxaiksZHQuUE9MWUxJTkUsdEYpLGR0LlBPTFlHT04sSmopLGR0LlBBVEgsUWopLGR0LlRFWFQsaUYpLGR0LkdST1VQLG51bGwpLGR0LklNQUdFLHJGKSwoMCxLdC5aKSgoMCxLdC5aKShyLGR0LkhUTUwsbnVsbCksZHQuTUVTSCxudWxsKSk7dGhpcy5jb250ZXh0LnBvaW50SW5QYXRoUGlja2VyRmFjdG9yeT1pLHRoaXMuYWRkUmVuZGVyaW5nUGx1Z2luKG5ldyBzQSl9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe2RlbGV0ZSB0aGlzLmNvbnRleHQucG9pbnRJblBhdGhQaWNrZXJGYWN0b3J5LHRoaXMucmVtb3ZlQWxsUmVuZGVyaW5nUGx1Z2lucygpfX1dKX0oaXMpO2Z1bmN0aW9uIHVzKHQsZSl7aWYoIXt9Lmhhc093blByb3BlcnR5LmNhbGwodCxlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJhdHRlbXB0ZWQgdG8gdXNlIHByaXZhdGUgZmllbGQgb24gbm9uLWluc3RhbmNlIik7cmV0dXJuIHR9dmFyIG9GPTA7ZnVuY3Rpb24gc0YodCl7cmV0dXJuIl9fcHJpdmF0ZV8iK29GKysrIl8iK3R9dmFyIGNGPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpeygwLHh0LlopKHRoaXMsdCksdGhpcy5jYWNoZVN0b3JlPW5ldyBNYXB9cmV0dXJuKDAsT3QuWikodCxbe2tleToib25SZWZBZGRlZCIsdmFsdWU6ZnVuY3Rpb24obil7fX0se2tleToiaGFzIix2YWx1ZTpmdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5jYWNoZVN0b3JlLmhhcyhuKX19LHtrZXk6InB1dCIsdmFsdWU6ZnVuY3Rpb24obixyLGkpe3JldHVybiB0aGlzLmNhY2hlU3RvcmUuaGFzKG4pPyExOih0aGlzLmNhY2hlU3RvcmUuc2V0KG4se3ZhbHVlOnIsY291bnRlcjpuZXcgU2V0KFtpXSl9KSx0aGlzLm9uUmVmQWRkZWQoaSksITApfX0se2tleToiZ2V0Iix2YWx1ZTpmdW5jdGlvbihuLHIpe3ZhciBpPXRoaXMuY2FjaGVTdG9yZS5nZXQobik7cmV0dXJuIGk/KGkuY291bnRlci5oYXMocil8fChpLmNvdW50ZXIuYWRkKHIpLHRoaXMub25SZWZBZGRlZChyKSksaS52YWx1ZSk6bnVsbH19LHtrZXk6InVwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24obixyLGkpe3ZhciBhPXRoaXMuY2FjaGVTdG9yZS5nZXQobik7cmV0dXJuIGE/KGEudmFsdWU9KDAsRWUuWikoKDAsRWUuWikoe30sYS52YWx1ZSksciksYS5jb3VudGVyLmhhcyhpKXx8KGEuY291bnRlci5hZGQoaSksdGhpcy5vblJlZkFkZGVkKGkpKSwhMCk6ITF9fSx7a2V5OiJyZWxlYXNlIix2YWx1ZTpmdW5jdGlvbihuLHIpe3ZhciBpPXRoaXMuY2FjaGVTdG9yZS5nZXQobik7cmV0dXJuIGk/KGkuY291bnRlci5kZWxldGUociksaS5jb3VudGVyLnNpemU8PTAmJnRoaXMuY2FjaGVTdG9yZS5kZWxldGUobiksITApOiExfX0se2tleToicmVsZWFzZVJlZiIsdmFsdWU6ZnVuY3Rpb24obil7dmFyIHI9dGhpcztBcnJheS5mcm9tKHRoaXMuY2FjaGVTdG9yZS5rZXlzKCkpLmZvckVhY2goZnVuY3Rpb24oaSl7ci5yZWxlYXNlKGksbil9KX19LHtrZXk6ImdldFNpemUiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2FjaGVTdG9yZS5zaXplfX0se2tleToiY2xlYXIiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5jYWNoZVN0b3JlLmNsZWFyKCl9fV0pfSgpLFdfPVtdLEdfPVtdLCRfPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpeygwLHh0LlopKHRoaXMsdCl9cmV0dXJuKDAsT3QuWikodCxudWxsLFt7a2V5OiJzdG9wIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBuPWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dm9pZCAwP2FyZ3VtZW50c1swXTp0LmFwaTt0LnJhZklkJiYobi5jYW5jZWxBbmltYXRpb25GcmFtZSh0LnJhZklkKSx0LnJhZklkPW51bGwpfX0se2tleToiZXhlY3V0ZVRhc2siLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIG49YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT12b2lkIDA/YXJndW1lbnRzWzBdOnQuYXBpO1dfLmxlbmd0aDw9MCYmR18ubGVuZ3RoPD0wfHwoR18uZm9yRWFjaChmdW5jdGlvbihyKXtyZXR1cm4gcigpfSksR189V18uc3BsaWNlKDAsdC5UQVNLX05VTV9QRVJfRlJBTUUpLHQucmFmSWQ9bi5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXt0LmV4ZWN1dGVUYXNrKG4pfSkpfX0se2tleToic2xpY2VJbWFnZSIsdmFsdWU6ZnVuY3Rpb24obixyLGksYSl7Zm9yKHZhciBvPWFyZ3VtZW50cy5sZW5ndGg+NCYmYXJndW1lbnRzWzRdIT09dm9pZCAwP2FyZ3VtZW50c1s0XTowLHM9YXJndW1lbnRzLmxlbmd0aD41JiZhcmd1bWVudHNbNV0hPT12b2lkIDA/YXJndW1lbnRzWzVdOnQuYXBpLGM9bi5uYXR1cmFsV2lkdGh8fG4ud2lkdGgsbD1uLm5hdHVyYWxIZWlnaHR8fG4uaGVpZ2h0LHU9ci1vLGY9aS1vLGQ9TWF0aC5jZWlsKGMvdSksaD1NYXRoLmNlaWwobC9mKSx2PXt0aWxlU2l6ZTpbcixpXSxncmlkU2l6ZTpbaCxkXSx0aWxlczpBcnJheShoKS5maWxsKG51bGwpLm1hcChmdW5jdGlvbigpe3JldHVybiBBcnJheShkKS5maWxsKG51bGwpfSl9LGc9ZnVuY3Rpb24oeCl7Zm9yKHZhciBfPWZ1bmN0aW9uKEUpe1dfLnB1c2goZnVuY3Rpb24oKXt2YXIgTT1FKnUsaz14KmYsQT1bTWF0aC5taW4ocixjLU0pLE1hdGgubWluKGksbC1rKV0sUD1BWzBdLEM9QVsxXSxOPXMuY3JlYXRlQ2FudmFzKCk7Ti53aWR0aD1yLE4uaGVpZ2h0PWk7dmFyIEw9Ti5nZXRDb250ZXh0KCIyZCIpO0wuZHJhd0ltYWdlKG4sTSxrLFAsQywwLDAsUCxDKSx2LnRpbGVzW3hdW0VdPXt4Ok0seTprLHRpbGVYOkUsdGlsZVk6eCxkYXRhOk59LGEoKX0pfSx3PTA7dzxkO3crKylfKHcpfSx5PTA7eTxoO3krKylnKHkpO3JldHVybiB0LnN0b3AoKSx0LmV4ZWN1dGVUYXNrKCksdn19XSl9KCk7JF8uVEFTS19OVU1fUEVSX0ZSQU1FPTEwO3ZhciAkYT1uZXcgY0Y7JGEub25SZWZBZGRlZD1mdW5jdGlvbihlKXt2YXIgbj10aGlzO2UuYWRkRXZlbnRMaXN0ZW5lcigkZS5ERVNUUk9ZLGZ1bmN0aW9uKCl7bi5yZWxlYXNlUmVmKGUpfSx7b25jZTohMH0pfTt2YXIgWl89ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUsbil7KDAseHQuWikodGhpcyx0KSx0aGlzLmdyYWRpZW50Q2FjaGU9e30sdGhpcy5wYXR0ZXJuQ2FjaGU9e30sdGhpcy5jb250ZXh0PWUsdGhpcy5ydW50aW1lPW59cmV0dXJuKDAsT3QuWikodCxbe2tleToiZ2V0SW1hZ2VTeW5jIix2YWx1ZTpmdW5jdGlvbihuLHIsaSl7dmFyIGE9aXIobik/bjpuLnNyYztpZigkYS5oYXMoYSkpe3ZhciBvPSRhLmdldChhLHIpO2lmKG8uaW1nLmNvbXBsZXRlKXJldHVybiBpPT1udWxsfHxpKG8pLG99cmV0dXJuIHRoaXMuZ2V0T3JDcmVhdGVJbWFnZShuLHIpLnRoZW4oZnVuY3Rpb24ocyl7aT09bnVsbHx8aShzKX0pLmNhdGNoKGZ1bmN0aW9uKHMpe2NvbnNvbGUuZXJyb3Iocyl9KSxudWxsfX0se2tleToiZ2V0T3JDcmVhdGVJbWFnZSIsdmFsdWU6ZnVuY3Rpb24obixyKXt2YXIgaT10aGlzLGE9aXIobik/bjpuLnNyYztpZighaXIobikmJiEkYS5oYXMoYSkpe3ZhciBvPXtpbWc6bixzaXplOltuLm5hdHVyYWxXaWR0aHx8bi53aWR0aCxuLm5hdHVyYWxIZWlnaHR8fG4uaGVpZ2h0XSx0aWxlU2l6ZTpWeShuKX07JGEucHV0KGEsbyxyKX1pZigkYS5oYXMoYSkpe3ZhciBzPSRhLmdldChhLHIpO3JldHVybiBzLmltZy5jb21wbGV0ZT9Qcm9taXNlLnJlc29sdmUocyk6bmV3IFByb21pc2UoZnVuY3Rpb24oYyxsKXtzLmltZy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixmdW5jdGlvbigpe3Muc2l6ZT1bcy5pbWcubmF0dXJhbFdpZHRofHxzLmltZy53aWR0aCxzLmltZy5uYXR1cmFsSGVpZ2h0fHxzLmltZy5oZWlnaHRdLHMudGlsZVNpemU9Vnkocy5pbWcpLGMocyl9KSxzLmltZy5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsZnVuY3Rpb24odSl7bCh1KX0pfSl9cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGMsbCl7dmFyIHU9aS5jb250ZXh0LmNvbmZpZy5jcmVhdGVJbWFnZSgpO2lmKHUpe3ZhciBmPXtpbWc6dSxzaXplOlswLDBdLHRpbGVTaXplOlZ5KHUpfTskYS5wdXQoYSxmLHIpLHUub25sb2FkPWZ1bmN0aW9uKCl7Zi5zaXplPVt1Lm5hdHVyYWxXaWR0aHx8dS53aWR0aCx1Lm5hdHVyYWxIZWlnaHR8fHUuaGVpZ2h0XSxmLnRpbGVTaXplPVZ5KGYuaW1nKSxjKGYpfSx1Lm9uZXJyb3I9ZnVuY3Rpb24oZCl7bChkKX0sdS5jcm9zc09yaWdpbj0iQW5vbnltb3VzIix1LnNyYz1hfX0pfX0se2tleToiY3JlYXRlRG93blNhbXBsZWRJbWFnZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT0oMCxvby5aKSgoMCxNbi5aKSgpLm1hcmsoZnVuY3Rpb24gcihpLGEpe3ZhciBvLHMsYyxsLHUsZixkLGgsdixnLHksYix4LF87cmV0dXJuKDAsTW4uWikoKS53cmFwKGZ1bmN0aW9uKE8pe2Zvcig7Oylzd2l0Y2goTy5wcmV2PU8ubmV4dCl7Y2FzZSAwOnJldHVybiBPLm5leHQ9Mix0aGlzLmdldE9yQ3JlYXRlSW1hZ2UoaSxhKTtjYXNlIDI6aWYobz1PLnNlbnQsdHlwZW9mIG8uZG93blNhbXBsaW5nUmF0ZT09InVuZGVmaW5lZCIpe08ubmV4dD01O2JyZWFrfXJldHVybiBPLmFicnVwdCgicmV0dXJuIixvKTtjYXNlIDU6aWYocz10aGlzLmNvbnRleHQuY29uZmlnLmVuYWJsZUxhcmdlSW1hZ2VPcHRpbWl6YXRpb24sYz10eXBlb2Ygcz09ImJvb2xlYW4iP3t9OnMsbD1jLm1heERvd25TYW1wbGVkSW1hZ2VTaXplLHU9bD09PXZvaWQgMD8yMDQ4OmwsZj1jLmRvd25TYW1wbGluZ1JhdGVUaHJlc2hvbGQsZD1mPT09dm9pZCAwPy41OmYsaD10aGlzLnJ1bnRpbWUuZ2xvYmFsVGhpcy5jcmVhdGVJbWFnZUJpdG1hcCx2PSgwLFRlLlopKG8uc2l6ZSwyKSxnPXZbMF0seT12WzFdLGI9by5pbWcseD1NYXRoLm1pbigodSt1KS8oZyt5KSxNYXRoLm1heCguMDEsTWF0aC5taW4oZCwuNSkpKSxfPSgwLEVlLlopKCgwLEVlLlopKHt9LG8pLHt9LHtkb3duU2FtcGxpbmdSYXRlOnh9KSwkYS51cGRhdGUoby5pbWcuc3JjLF8sYSksIWgpe08ubmV4dD0yNTticmVha31yZXR1cm4gTy5wcmV2PTE0LE8ubmV4dD0xNyxoKG8uaW1nLHtyZXNpemVXaWR0aDpnKngscmVzaXplSGVpZ2h0OnkqeH0pO2Nhc2UgMTc6Yj1PLnNlbnQsTy5uZXh0PTIzO2JyZWFrO2Nhc2UgMjA6Ty5wcmV2PTIwLE8udDA9Ty5jYXRjaCgxNCkseD0xO2Nhc2UgMjM6Ty5uZXh0PTI2O2JyZWFrO2Nhc2UgMjU6eD0xO2Nhc2UgMjY6cmV0dXJuIF89KDAsRWUuWikoKDAsRWUuWikoe30sdGhpcy5nZXRJbWFnZVN5bmMoaSxhKSkse30se2Rvd25TYW1wbGVkOmIsZG93blNhbXBsaW5nUmF0ZTp4fSksJGEudXBkYXRlKG8uaW1nLnNyYyxfLGEpLE8uYWJydXB0KCJyZXR1cm4iLF8pO2Nhc2UgMjk6Y2FzZSJlbmQiOnJldHVybiBPLnN0b3AoKX19LHIsdGhpcyxbWzE0LDIwXV0pfSkpO2Z1bmN0aW9uIG4ocixpKXtyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIG59KCl9LHtrZXk6ImNyZWF0ZUltYWdlVGlsZXMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9KDAsb28uWikoKDAsTW4uWikoKS5tYXJrKGZ1bmN0aW9uIHIoaSxhLG8scyl7dmFyIGMsbCx1LGYsZDtyZXR1cm4oMCxNbi5aKSgpLndyYXAoZnVuY3Rpb24odil7Zm9yKDs7KXN3aXRjaCh2LnByZXY9di5uZXh0KXtjYXNlIDA6cmV0dXJuIHYubmV4dD0yLHRoaXMuZ2V0T3JDcmVhdGVJbWFnZShpLHMpO2Nhc2UgMjpyZXR1cm4gYz12LnNlbnQsbD1zLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcsdT1sLnJlcXVlc3RBbmltYXRpb25GcmFtZSxmPWwuY2FuY2VsQW5pbWF0aW9uRnJhbWUsJF8uYXBpPXtyZXF1ZXN0QW5pbWF0aW9uRnJhbWU6dSxjYW5jZWxBbmltYXRpb25GcmFtZTpmLGNyZWF0ZUNhbnZhczpmdW5jdGlvbigpe3JldHVybiBncC5jcmVhdGVDYW52YXMoKX19LGQ9KDAsRWUuWikoKDAsRWUuWikoe30sYyksJF8uc2xpY2VJbWFnZShjLmltZyxjLnRpbGVTaXplWzBdLGMudGlsZVNpemVbMF0sbykpLCRhLnVwZGF0ZShjLmltZy5zcmMsZCxzKSx2LmFicnVwdCgicmV0dXJuIixkKTtjYXNlIDg6Y2FzZSJlbmQiOnJldHVybiB2LnN0b3AoKX19LHIsdGhpcyl9KSk7ZnVuY3Rpb24gbihyLGksYSxvKXtyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIG59KCl9LHtrZXk6InJlbGVhc2VJbWFnZSIsdmFsdWU6ZnVuY3Rpb24obixyKXskYS5yZWxlYXNlKGlyKG4pP246bi5zcmMscil9fSx7a2V5OiJyZWxlYXNlSW1hZ2VSZWYiLHZhbHVlOmZ1bmN0aW9uKG4peyRhLnJlbGVhc2VSZWYobil9fSx7a2V5OiJnZXRPckNyZWF0ZVBhdHRlcm5TeW5jIix2YWx1ZTpmdW5jdGlvbihuLHIsaSxhLG8scyxjKXt2YXIgbD10aGlzLmdlbmVyYXRlUGF0dGVybktleShyKTtpZihsJiZ0aGlzLnBhdHRlcm5DYWNoZVtsXSlyZXR1cm4gdGhpcy5wYXR0ZXJuQ2FjaGVbbF07dmFyIHU9ci5pbWFnZSxmPXIucmVwZXRpdGlvbixkPXIudHJhbnNmb3JtLGgsdj0hMTtpZihpcih1KSl7dmFyIGc9dGhpcy5nZXRJbWFnZVN5bmModSxuLGMpO2g9Zz09bnVsbD92b2lkIDA6Zy5pbWd9ZWxzZSBhPyhoPWEsdj0hMCk6aD11O3ZhciB5PWgmJmkuY3JlYXRlUGF0dGVybihoLGYpO2lmKHkpe3ZhciBiO2Q/Yj1neSh0eShkKSxuZXcgb3Ioe30pKTpiPWxyKFduKCkpLHYmJlVkKGIsYixbMS9vLDEvbywxXSkseS5zZXRUcmFuc2Zvcm0oe2E6YlswXSxiOmJbMV0sYzpiWzRdLGQ6Yls1XSxlOmJbMTJdK3NbMF0sZjpiWzEzXStzWzFdfSl9cmV0dXJuIGwmJnkmJih0aGlzLnBhdHRlcm5DYWNoZVtsXT15KSx5fX0se2tleToiZ2V0T3JDcmVhdGVHcmFkaWVudCIsdmFsdWU6ZnVuY3Rpb24obixyKXt2YXIgaT10aGlzLmdlbmVyYXRlR3JhZGllbnRLZXkobiksYT1uLnR5cGUsbz1uLnN0ZXBzLHM9bi5taW4sYz1uLndpZHRoLGw9bi5oZWlnaHQsdT1uLmFuZ2xlLGY9bi5jeCxkPW4uY3ksaD1uLnNpemU7aWYodGhpcy5ncmFkaWVudENhY2hlW2ldKXJldHVybiB0aGlzLmdyYWRpZW50Q2FjaGVbaV07dmFyIHY9bnVsbDtpZihhPT09QmEuTGluZWFyR3JhZGllbnQpe3ZhciBnPWpnKHMsYyxsLHUpLHk9Zy54MSxiPWcueTEseD1nLngyLF89Zy55Mjt2PXIuY3JlYXRlTGluZWFyR3JhZGllbnQoeSxiLHgsXyl9ZWxzZSBpZihhPT09QmEuUmFkaWFsR3JhZGllbnQpe3ZhciB3PVF4KHMsYyxsLGYsZCxoKSxPPXcueCxFPXcueSxNPXcucjt2PXIuY3JlYXRlUmFkaWFsR3JhZGllbnQoTyxFLDAsTyxFLE0pfXJldHVybiB2JiYoby5mb3JFYWNoKGZ1bmN0aW9uKGspe3ZhciBBPWsub2Zmc2V0LFA9ay5jb2xvcjtpZihBLnVuaXQ9PT1adC5rUGVyY2VudGFnZSl7dmFyIEM7KEM9dik9PT1udWxsfHxDPT09dm9pZCAwfHxDLmFkZENvbG9yU3RvcChBLnZhbHVlLzEwMCxQLnRvU3RyaW5nKCkpfX0pLHRoaXMuZ3JhZGllbnRDYWNoZVtpXT12KSx0aGlzLmdyYWRpZW50Q2FjaGVbaV19fSx7a2V5OiJnZW5lcmF0ZUdyYWRpZW50S2V5Iix2YWx1ZTpmdW5jdGlvbihuKXt2YXIgcj1uLnR5cGUsaT1uLm1pbixhPW4ud2lkdGgsbz1uLmhlaWdodCxzPW4uc3RlcHMsYz1uLmFuZ2xlLGw9bi5jeCx1PW4uY3ksZj1uLnNpemU7cmV0dXJuImdyYWRpZW50LSIuY29uY2F0KHIsIi0iKS5jb25jYXQoKGM9PW51bGw/dm9pZCAwOmMudG9TdHJpbmcoKSl8fDAsIi0iKS5jb25jYXQoKGw9PW51bGw/dm9pZCAwOmwudG9TdHJpbmcoKSl8fDAsIi0iKS5jb25jYXQoKHU9PW51bGw/dm9pZCAwOnUudG9TdHJpbmcoKSl8fDAsIi0iKS5jb25jYXQoKGY9PW51bGw/dm9pZCAwOmYudG9TdHJpbmcoKSl8fDAsIi0iKS5jb25jYXQoaVswXSwiLSIpLmNvbmNhdChpWzFdLCItIikuY29uY2F0KGEsIi0iKS5jb25jYXQobywiLSIpLmNvbmNhdChzLm1hcChmdW5jdGlvbihkKXt2YXIgaD1kLm9mZnNldCx2PWQuY29sb3I7cmV0dXJuIiIuY29uY2F0KGgpLmNvbmNhdCh2KX0pLmpvaW4oIi0iKSl9fSx7a2V5OiJnZW5lcmF0ZVBhdHRlcm5LZXkiLHZhbHVlOmZ1bmN0aW9uKG4pe3ZhciByPW4uaW1hZ2UsaT1uLnJlcGV0aXRpb247aWYoaXIocikpcmV0dXJuInBhdHRlcm4tIi5jb25jYXQociwiLSIpLmNvbmNhdChpKTtpZihyLm5vZGVOYW1lPT09InJlY3QiKXJldHVybiJwYXR0ZXJuLSIuY29uY2F0KHIuZW50aXR5LCItIikuY29uY2F0KGkpfX1dKX0oKTtaXy5pc1N1cHBvcnRUaWxlPSEhZ3AuY3JlYXRlQ2FudmFzKCk7ZnVuY3Rpb24gVnkodCl7aWYoIXQuY29tcGxldGUpcmV0dXJuWzAsMF07dmFyIGU9dC5uYXR1cmFsV2lkdGh8fHQud2lkdGgsbj10Lm5hdHVyYWxIZWlnaHR8fHQuaGVpZ2h0LHI9MjU2O3JldHVyblsyNTYsNTEyXS5mb3JFYWNoKGZ1bmN0aW9uKGkpe3ZhciBhPU1hdGguY2VpbChuL2kpLG89TWF0aC5jZWlsKGUvaSk7YSpvPDFlMyYmKHI9aSl9KSxbcixyXX12YXIgZkE9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7KDAseHQuWikodGhpcyx0KX1yZXR1cm4oMCxPdC5aKSh0LFt7a2V5OiJhcHBseSIsdmFsdWU6ZnVuY3Rpb24obil7dmFyIHI9bi5yZW5kZXJpbmdTZXJ2aWNlLGk9bi5yZW5kZXJpbmdDb250ZXh0LGE9bi5pbWFnZVBvb2wsbz1pLnJvb3Qub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldyxzPWZ1bmN0aW9uKGYsZCxoKXt2YXIgdj1mLnBhcnNlZFN0eWxlLGc9di53aWR0aCx5PXYuaGVpZ2h0O2cmJiF5P2Yuc2V0QXR0cmlidXRlKCJoZWlnaHQiLGgvZCpnKTohZyYmeSYmZi5zZXRBdHRyaWJ1dGUoIndpZHRoIixkL2gqeSl9LGM9ZnVuY3Rpb24oZil7dmFyIGQ9Zi50YXJnZXQsaD1kLm5vZGVOYW1lLHY9ZC5hdHRyaWJ1dGVzO2lmKGg9PT1kdC5JTUFHRSl7dmFyIGc9di5zcmMseT12LmtlZXBBc3BlY3RSYXRpbzthLmdldEltYWdlU3luYyhnLGQsZnVuY3Rpb24oYil7dmFyIHg9Yi5pbWcsXz14LndpZHRoLHc9eC5oZWlnaHQ7eSYmcyhkLF8sdyksZC5yZW5kZXJhYmxlLmRpcnR5PSEwLHIuZGlydGlmeSgpfSl9fSxsPWZ1bmN0aW9uKGYpe3ZhciBkPWYudGFyZ2V0LGg9Zi5hdHRyTmFtZSx2PWYucHJldlZhbHVlLGc9Zi5uZXdWYWx1ZTtkLm5vZGVOYW1lIT09ZHQuSU1BR0V8fGghPT0ic3JjInx8KHYhPT1nJiZhLnJlbGVhc2VJbWFnZSh2LGQpLGlyKGcpJiZhLmdldE9yQ3JlYXRlSW1hZ2UoZyxkKS50aGVuKGZ1bmN0aW9uKHkpe3ZhciBiPXkuaW1nLHg9Yi53aWR0aCxfPWIuaGVpZ2h0O2QuYXR0cmlidXRlcy5rZWVwQXNwZWN0UmF0aW8mJnMoZCx4LF8pLGQucmVuZGVyYWJsZS5kaXJ0eT0hMCxyLmRpcnRpZnkoKX0pLmNhdGNoKGZ1bmN0aW9uKCl7fSkpfTtyLmhvb2tzLmluaXQudGFwKHQudGFnLGZ1bmN0aW9uKCl7by5hZGRFdmVudExpc3RlbmVyKCRlLk1PVU5URUQsYyksby5hZGRFdmVudExpc3RlbmVyKCRlLkFUVFJfTU9ESUZJRUQsbCl9KSxyLmhvb2tzLmRlc3Ryb3kudGFwKHQudGFnLGZ1bmN0aW9uKCl7by5yZW1vdmVFdmVudExpc3RlbmVyKCRlLk1PVU5URUQsYyksby5yZW1vdmVFdmVudExpc3RlbmVyKCRlLkFUVFJfTU9ESUZJRUQsbCl9KX19XSl9KCk7ZkEudGFnPSJMb2FkSW1hZ2UiO3ZhciBsRj1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dmFyIG47KDAseHQuWikodGhpcyxlKTtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aCxpPW5ldyBBcnJheShyKSxhPTA7YTxyO2ErKylpW2FdPWFyZ3VtZW50c1thXTtyZXR1cm4gbj0oMCxEZS5aKSh0aGlzLGUsW10uY29uY2F0KGkpKSxuLm5hbWU9ImltYWdlLWxvYWRlciIsbn1yZXR1cm4oMCxNZS5aKShlLHQpLCgwLE90LlopKGUsW3trZXk6ImluaXQiLHZhbHVlOmZ1bmN0aW9uKHIpe3RoaXMuY29udGV4dC5pbWFnZVBvb2w9bmV3IFpfKHRoaXMuY29udGV4dCxyKSx0aGlzLmFkZFJlbmRlcmluZ1BsdWdpbihuZXcgZkEpfX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUFsbFJlbmRlcmluZ1BsdWdpbnMoKX19XSl9KGlzKTt2YXIgVnI9c0YoInJlbmRlclN0YXRlIiksZEE9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpeygwLHh0LlopKHRoaXMsdCksdGhpcy5yZW1vdmVkUkJ1c2hOb2RlQUFCQnM9W10sdGhpcy5yZW5kZXJRdWV1ZT1bXSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxWcix7d3JpdGFibGU6ITAsdmFsdWU6e3Jlc3RvcmVTdGFjazpbXSxwcmV2T2JqZWN0Om51bGwsY3VycmVudENvbnRleHQ6bmV3IE1hcH19KSx0aGlzLmNsZWFyRnVsbFNjcmVlbkxhc3RGcmFtZT0hMSx0aGlzLmNsZWFyRnVsbFNjcmVlbj0hMSx0aGlzLnZwTWF0cml4PVduKCksdGhpcy5kcHJNYXRyaXg9V24oKSx0aGlzLnRtcE1hdDQ9V24oKSx0aGlzLnZlYzNhPW1lKCksdGhpcy52ZWMzYj1tZSgpLHRoaXMudmVjM2M9bWUoKSx0aGlzLnZlYzNkPW1lKCksdGhpcy5jYW52YXNSZW5kZXJlclBsdWdpbk9wdGlvbnM9ZX1yZXR1cm4oMCxPdC5aKSh0LFt7a2V5OiJhcHBseSIsdmFsdWU6ZnVuY3Rpb24obixyKXt2YXIgaT10aGlzO3RoaXMuY29udGV4dD1uO3ZhciBhPXRoaXMuY29udGV4dCxvPWEuY29uZmlnLHM9YS5jYW1lcmEsYz1hLnJlbmRlcmluZ1NlcnZpY2UsbD1hLnJlbmRlcmluZ0NvbnRleHQsdT1hLnJCdXNoUm9vdCxmPWEucGF0aEdlbmVyYXRvckZhY3RvcnksZD1vLnJlbmRlcmVyLmdldENvbmZpZygpLmVuYWJsZVJlbmRlcmluZ09wdGltaXphdGlvbjtvLnJlbmRlcmVyLmdldENvbmZpZygpLmVuYWJsZURpcnR5Q2hlY2s9ITEsby5yZW5kZXJlci5nZXRDb25maWcoKS5lbmFibGVEaXJ0eVJlY3RhbmdsZVJlbmRlcmluZz0hMSx0aGlzLnJCdXNoPXUsdGhpcy5wYXRoR2VuZXJhdG9yRmFjdG9yeT1mO3ZhciBoPW4uY29udGV4dFNlcnZpY2Usdj1sLnJvb3Qub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldyxnPWZ1bmN0aW9uKF8pe3ZhciB3PV8udGFyZ2V0LE89dy5yQnVzaE5vZGU7Ty5hYWJiJiZpLnJlbW92ZWRSQnVzaE5vZGVBQUJCcy5wdXNoKE8uYWFiYil9LHk9ZnVuY3Rpb24oXyl7dmFyIHc9Xy50YXJnZXQsTz13LnJCdXNoTm9kZTtPLmFhYmImJmkucmVtb3ZlZFJCdXNoTm9kZUFBQkJzLnB1c2goTy5hYWJiKX07Yy5ob29rcy5pbml0LnRhcCh0LnRhZyxmdW5jdGlvbigpe3YuYWRkRXZlbnRMaXN0ZW5lcigkZS5VTk1PVU5URUQsZyksdi5hZGRFdmVudExpc3RlbmVyKCRlLkNVTExFRCx5KTt2YXIgeD1oLmdldERQUigpLF89by53aWR0aCx3PW8uaGVpZ2h0LE89aC5nZXRDb250ZXh0KCk7aS5jbGVhclJlY3QoTywwLDAsXyp4LHcqeCxvLmJhY2tncm91bmQpfSksYy5ob29rcy5kZXN0cm95LnRhcCh0LnRhZyxmdW5jdGlvbigpe3YucmVtb3ZlRXZlbnRMaXN0ZW5lcigkZS5VTk1PVU5URUQsZyksdi5yZW1vdmVFdmVudExpc3RlbmVyKCRlLkNVTExFRCx5KSxpLnJlbmRlclF1ZXVlPVtdLGkucmVtb3ZlZFJCdXNoTm9kZUFBQkJzPVtdLHVzKGksVnIpW1ZyXT17cmVzdG9yZVN0YWNrOltdLHByZXZPYmplY3Q6bnVsbCxjdXJyZW50Q29udGV4dDpudWxsfX0pLGMuaG9va3MuYmVnaW5GcmFtZS50YXAodC50YWcsZnVuY3Rpb24oKXt2YXIgeCxfPWguZ2V0Q29udGV4dCgpLHc9aC5nZXREUFIoKSxPPW8ud2lkdGgsRT1vLmhlaWdodCxNPWkuY2FudmFzUmVuZGVyZXJQbHVnaW5PcHRpb25zLGs9TS5kaXJ0eU9iamVjdE51bVRocmVzaG9sZCxBPU0uZGlydHlPYmplY3RSYXRpb1RocmVzaG9sZCxQPWMuZ2V0U3RhdHMoKSxDPVAudG90YWwsTj1QLnJlbmRlcmVkLEw9Ti9DO2kuY2xlYXJGdWxsU2NyZWVuPWkuY2xlYXJGdWxsU2NyZWVuTGFzdEZyYW1lfHwhKCh4PXYuY29udGV4dC5yZW5kZXJpbmdQbHVnaW5zWzFdKSE9PW51bGwmJnghPT12b2lkIDAmJnguaXNGaXJzdFRpbWVSZW5kZXJpbmdGaW5pc2hlZCl8fGMuZGlzYWJsZURpcnR5UmVjdGFuZ2xlUmVuZGVyaW5nKCl8fE4+ayYmTD5BLF8mJih0eXBlb2YgXy5yZXNldFRyYW5zZm9ybT09ImZ1bmN0aW9uIj9fLnJlc2V0VHJhbnNmb3JtKCk6Xy5zZXRUcmFuc2Zvcm0oMSwwLDAsMSwwLDApLGkuY2xlYXJGdWxsU2NyZWVuJiZpLmNsZWFyUmVjdChfLDAsMCxPKncsRSp3LG8uYmFja2dyb3VuZCkpfSk7dmFyIGI9ZnVuY3Rpb24oXyx3KXtmb3IodmFyIE89W19dO08ubGVuZ3RoPjA7KXt2YXIgRT1PLnBvcCgpO0UuaXNWaXNpYmxlKCkmJiFFLmlzQ3VsbGVkKCkmJihkP2kucmVuZGVyRGlzcGxheU9iamVjdE9wdGltaXplZChFLHcsaS5jb250ZXh0LHVzKGksVnIpW1ZyXSxyKTppLnJlbmRlckRpc3BsYXlPYmplY3QoRSx3LGkuY29udGV4dCx1cyhpLFZyKVtWcl0scikpO2Zvcih2YXIgTT1FLnNvcnRhYmxlLnNvcnRlZHx8RS5jaGlsZE5vZGVzLGs9TS5sZW5ndGgtMTtrPj0wO2stLSlPLnB1c2goTVtrXSl9fTtjLmhvb2tzLmVuZEZyYW1lLnRhcCh0LnRhZyxmdW5jdGlvbigpe2lmKGwucm9vdC5jaGlsZE5vZGVzLmxlbmd0aD09PTApe2kuY2xlYXJGdWxsU2NyZWVuTGFzdEZyYW1lPSEwO3JldHVybn1kPW8ucmVuZGVyZXIuZ2V0Q29uZmlnKCkuZW5hYmxlUmVuZGVyaW5nT3B0aW1pemF0aW9uLHVzKGksVnIpW1ZyXT17cmVzdG9yZVN0YWNrOltdLHByZXZPYmplY3Q6bnVsbCxjdXJyZW50Q29udGV4dDp1cyhpLFZyKVtWcl0uY3VycmVudENvbnRleHR9LHVzKGksVnIpW1ZyXS5jdXJyZW50Q29udGV4dC5jbGVhcigpLGkuY2xlYXJGdWxsU2NyZWVuTGFzdEZyYW1lPSExO3ZhciB4PWguZ2V0Q29udGV4dCgpLF89aC5nZXREUFIoKTtpZihJcyhpLmRwck1hdHJpeCxbXyxfLDFdKSxHbihpLnZwTWF0cml4LGkuZHByTWF0cml4LHMuZ2V0T3J0aG9NYXRyaXgoKSksaS5jbGVhckZ1bGxTY3JlZW4pZD8oeC5zYXZlKCksYihsLnJvb3QseCkseC5yZXN0b3JlKCkpOmIobC5yb290LHgpLGkucmVtb3ZlZFJCdXNoTm9kZUFBQkJzPVtdO2Vsc2V7dmFyIHc9aS5zYWZlTWVyZ2VBQUJCLmFwcGx5KGksW2kubWVyZ2VEaXJ0eUFBQkJzKGkucmVuZGVyUXVldWUpXS5jb25jYXQoKDAsbG4uWikoaS5yZW1vdmVkUkJ1c2hOb2RlQUFCQnMubWFwKGZ1bmN0aW9uKGx0KXt2YXIgd3Q9bHQubWluWCx5dD1sdC5taW5ZLGd0PWx0Lm1heFgsQnQ9bHQubWF4WSxMdD1uZXcgeHI7cmV0dXJuIEx0LnNldE1pbk1heChbd3QseXQsMF0sW2d0LEJ0LDBdKSxMdH0pKSkpO2lmKGkucmVtb3ZlZFJCdXNoTm9kZUFBQkJzPVtdLHhyLmlzRW1wdHkodykpe2kucmVuZGVyUXVldWU9W107cmV0dXJufXZhciBPPWkuY29udmVydEFBQkIyUmVjdCh3KSxFPU8ueCxNPU8ueSxrPU8ud2lkdGgsQT1PLmhlaWdodCxQPWVyKGkudmVjM2EsW0UsTSwwXSxpLnZwTWF0cml4KSxDPWVyKGkudmVjM2IsW0UrayxNLDBdLGkudnBNYXRyaXgpLE49ZXIoaS52ZWMzYyxbRSxNK0EsMF0saS52cE1hdHJpeCksTD1lcihpLnZlYzNkLFtFK2ssTStBLDBdLGkudnBNYXRyaXgpLFI9TWF0aC5taW4oUFswXSxDWzBdLExbMF0sTlswXSksST1NYXRoLm1pbihQWzFdLENbMV0sTFsxXSxOWzFdKSxEPU1hdGgubWF4KFBbMF0sQ1swXSxMWzBdLE5bMF0pLEc9TWF0aC5tYXgoUFsxXSxDWzFdLExbMV0sTlsxXSksRj1NYXRoLmZsb29yKFIpLFc9TWF0aC5mbG9vcihJKSxYPU1hdGguY2VpbChELVIpLFE9TWF0aC5jZWlsKEctSSk7eC5zYXZlKCksaS5jbGVhclJlY3QoeCxGLFcsWCxRLG8uYmFja2dyb3VuZCkseC5iZWdpblBhdGgoKSx4LnJlY3QoRixXLFgsUSkseC5jbGlwKCkseC5zZXRUcmFuc2Zvcm0oaS52cE1hdHJpeFswXSxpLnZwTWF0cml4WzFdLGkudnBNYXRyaXhbNF0saS52cE1hdHJpeFs1XSxpLnZwTWF0cml4WzEyXSxpLnZwTWF0cml4WzEzXSk7dmFyIHR0PW8ucmVuZGVyZXIuZ2V0Q29uZmlnKCksbnQ9dHQuZW5hYmxlRGlydHlSZWN0YW5nbGVSZW5kZXJpbmdEZWJ1ZztudCYmdi5kaXNwYXRjaEV2ZW50KG5ldyBObih2by5ESVJUWV9SRUNUQU5HTEUse2RpcnR5UmVjdDp7eDpGLHk6Vyx3aWR0aDpYLGhlaWdodDpRfX0pKTt2YXIgaHQ9aS5zZWFyY2hEaXJ0eU9iamVjdHModyk7aHQuc29ydChmdW5jdGlvbihsdCx3dCl7cmV0dXJuIGx0LnNvcnRhYmxlLnJlbmRlck9yZGVyLXd0LnNvcnRhYmxlLnJlbmRlck9yZGVyfSkuZm9yRWFjaChmdW5jdGlvbihsdCl7bHQmJmx0LmlzVmlzaWJsZSgpJiYhbHQuaXNDdWxsZWQoKSYmaS5yZW5kZXJEaXNwbGF5T2JqZWN0KGx0LHgsaS5jb250ZXh0LHVzKGksVnIpW1ZyXSxyKX0pLHgucmVzdG9yZSgpLGkucmVuZGVyUXVldWUuZm9yRWFjaChmdW5jdGlvbihsdCl7aS5zYXZlRGlydHlBQUJCKGx0KX0pLGkucmVuZGVyUXVldWU9W119dXMoaSxWcilbVnJdLnJlc3RvcmVTdGFjay5mb3JFYWNoKGZ1bmN0aW9uKCl7eC5yZXN0b3JlKCl9KSx1cyhpLFZyKVtWcl0ucmVzdG9yZVN0YWNrPVtdfSksYy5ob29rcy5yZW5kZXIudGFwKHQudGFnLGZ1bmN0aW9uKHgpe2kuY2xlYXJGdWxsU2NyZWVufHxpLnJlbmRlclF1ZXVlLnB1c2goeCl9KX19LHtrZXk6ImNsZWFyUmVjdCIsdmFsdWU6ZnVuY3Rpb24obixyLGksYSxvLHMpe24uY2xlYXJSZWN0KHIsaSxhLG8pLHMmJihuLmZpbGxTdHlsZT1zLG4uZmlsbFJlY3QocixpLGEsbykpfX0se2tleToicmVuZGVyRGlzcGxheU9iamVjdE9wdGltaXplZCIsdmFsdWU6ZnVuY3Rpb24obixyLGksYSxvKXt2YXIgcz1uLm5vZGVOYW1lLGM9ITEsbD0hMSx1PXRoaXMuY29udGV4dC5zdHlsZVJlbmRlcmVyRmFjdG9yeVtzXSxmPXRoaXMucGF0aEdlbmVyYXRvckZhY3Rvcnlbc10sZD1uLnBhcnNlZFN0eWxlLmNsaXBQYXRoO2lmKGQpe2M9IWEucHJldk9iamVjdHx8IWtpKGQuZ2V0V29ybGRUcmFuc2Zvcm0oKSxhLnByZXZPYmplY3QuZ2V0V29ybGRUcmFuc2Zvcm0oKSksYyYmKHRoaXMuYXBwbHlXb3JsZFRyYW5zZm9ybShyLGQpLGEucHJldk9iamVjdD1udWxsKTt2YXIgaD10aGlzLnBhdGhHZW5lcmF0b3JGYWN0b3J5W2Qubm9kZU5hbWVdO2gmJihyLnNhdmUoKSxsPSEwLHIuYmVnaW5QYXRoKCksaChyLGQucGFyc2VkU3R5bGUpLHIuY2xvc2VQYXRoKCksci5jbGlwKCkpfWlmKHUpe2M9IWEucHJldk9iamVjdHx8IWtpKG4uZ2V0V29ybGRUcmFuc2Zvcm0oKSxhLnByZXZPYmplY3QuZ2V0V29ybGRUcmFuc2Zvcm0oKSksYyYmdGhpcy5hcHBseVdvcmxkVHJhbnNmb3JtKHIsbik7dmFyIHY9IWEucHJldk9iamVjdDtpZighdil7dmFyIGc9YS5wcmV2T2JqZWN0Lm5vZGVOYW1lO3M9PT1kdC5URVhUP3Y9ZyE9PWR0LlRFWFQ6cz09PWR0LklNQUdFP3Y9ZyE9PWR0LklNQUdFOnY9Zz09PWR0LlRFWFR8fGc9PT1kdC5JTUFHRX11LmFwcGx5U3R5bGVUb0NvbnRleHQocixuLHYsYSksYS5wcmV2T2JqZWN0PW59ZiYmKHIuYmVnaW5QYXRoKCksZihyLG4ucGFyc2VkU3R5bGUpLHMhPT1kdC5MSU5FJiZzIT09ZHQuUEFUSCYmcyE9PWR0LlBPTFlMSU5FJiZyLmNsb3NlUGF0aCgpKSx1JiZ1LmRyYXdUb0NvbnRleHQocixuLHVzKHRoaXMsVnIpW1ZyXSx0aGlzLG8pLGwmJnIucmVzdG9yZSgpLG4ucmVuZGVyYWJsZS5kaXJ0eT0hMX19LHtrZXk6InJlbmRlckRpc3BsYXlPYmplY3QiLHZhbHVlOmZ1bmN0aW9uKG4scixpLGEsbyl7dmFyIHM9bi5ub2RlTmFtZSxjPWEucmVzdG9yZVN0YWNrW2EucmVzdG9yZVN0YWNrLmxlbmd0aC0xXTtjJiYhKG4uY29tcGFyZURvY3VtZW50UG9zaXRpb24oYykmZnIuRE9DVU1FTlRfUE9TSVRJT05fQ09OVEFJTlMpJiYoci5yZXN0b3JlKCksYS5yZXN0b3JlU3RhY2sucG9wKCkpO3ZhciBsPXRoaXMuY29udGV4dC5zdHlsZVJlbmRlcmVyRmFjdG9yeVtzXSx1PXRoaXMucGF0aEdlbmVyYXRvckZhY3Rvcnlbc10sZj1uLnBhcnNlZFN0eWxlLmNsaXBQYXRoO2lmKGYpe3RoaXMuYXBwbHlXb3JsZFRyYW5zZm9ybShyLGYpO3ZhciBkPXRoaXMucGF0aEdlbmVyYXRvckZhY3RvcnlbZi5ub2RlTmFtZV07ZCYmKHIuc2F2ZSgpLGEucmVzdG9yZVN0YWNrLnB1c2gobiksci5iZWdpblBhdGgoKSxkKHIsZi5wYXJzZWRTdHlsZSksci5jbG9zZVBhdGgoKSxyLmNsaXAoKSl9bCYmKHRoaXMuYXBwbHlXb3JsZFRyYW5zZm9ybShyLG4pLHIuc2F2ZSgpLHRoaXMuYXBwbHlBdHRyaWJ1dGVzVG9Db250ZXh0KHIsbikpLHUmJihyLmJlZ2luUGF0aCgpLHUocixuLnBhcnNlZFN0eWxlKSxzIT09ZHQuTElORSYmcyE9PWR0LlBBVEgmJnMhPT1kdC5QT0xZTElORSYmci5jbG9zZVBhdGgoKSksbCYmKGwucmVuZGVyKHIsbi5wYXJzZWRTdHlsZSxuLGksdGhpcyxvKSxyLnJlc3RvcmUoKSksbi5yZW5kZXJhYmxlLmRpcnR5PSExfX0se2tleToiYXBwbHlBdHRyaWJ1dGVzVG9Db250ZXh0Iix2YWx1ZTpmdW5jdGlvbihuLHIpe3ZhciBpPXIucGFyc2VkU3R5bGUsYT1pLnN0cm9rZSxvPWkuZmlsbCxzPWkub3BhY2l0eSxjPWkubGluZURhc2gsbD1pLmxpbmVEYXNoT2Zmc2V0O2MmJm4uc2V0TGluZURhc2goYyksZ2UobCl8fChuLmxpbmVEYXNoT2Zmc2V0PWwpLGdlKHMpfHwobi5nbG9iYWxBbHBoYSo9cyksIWdlKGEpJiYhQXJyYXkuaXNBcnJheShhKSYmIWEuaXNOb25lJiYobi5zdHJva2VTdHlsZT1yLmF0dHJpYnV0ZXMuc3Ryb2tlKSwhZ2UobykmJiFBcnJheS5pc0FycmF5KG8pJiYhby5pc05vbmUmJihuLmZpbGxTdHlsZT1yLmF0dHJpYnV0ZXMuZmlsbCl9fSx7a2V5OiJjb252ZXJ0QUFCQjJSZWN0Iix2YWx1ZTpmdW5jdGlvbihuKXt2YXIgcj1uLmdldE1pbigpLGk9bi5nZXRNYXgoKSxhPU1hdGguZmxvb3IoclswXSksbz1NYXRoLmZsb29yKHJbMV0pLHM9TWF0aC5jZWlsKGlbMF0pLGM9TWF0aC5jZWlsKGlbMV0pLGw9cy1hLHU9Yy1vO3JldHVybnt4OmEseTpvLHdpZHRoOmwsaGVpZ2h0OnV9fX0se2tleToibWVyZ2VEaXJ0eUFBQkJzIix2YWx1ZTpmdW5jdGlvbihuKXt2YXIgcj1uZXcgeHI7cmV0dXJuIG4uZm9yRWFjaChmdW5jdGlvbihpKXt2YXIgYT1pLmdldFJlbmRlckJvdW5kcygpO3IuYWRkKGEpO3ZhciBvPWkucmVuZGVyYWJsZS5kaXJ0eVJlbmRlckJvdW5kcztvJiZyLmFkZChvKX0pLHJ9fSx7a2V5OiJzZWFyY2hEaXJ0eU9iamVjdHMiLHZhbHVlOmZ1bmN0aW9uKG4pe3ZhciByPW4uZ2V0TWluKCksaT0oMCxUZS5aKShyLDIpLGE9aVswXSxvPWlbMV0scz1uLmdldE1heCgpLGM9KDAsVGUuWikocywyKSxsPWNbMF0sdT1jWzFdLGY9dGhpcy5yQnVzaC5zZWFyY2goe21pblg6YSxtaW5ZOm8sbWF4WDpsLG1heFk6dX0pO3JldHVybiBmLm1hcChmdW5jdGlvbihkKXt2YXIgaD1kLmRpc3BsYXlPYmplY3Q7cmV0dXJuIGh9KX19LHtrZXk6InNhdmVEaXJ0eUFBQkIiLHZhbHVlOmZ1bmN0aW9uKG4pe3ZhciByPW4ucmVuZGVyYWJsZTtyLmRpcnR5UmVuZGVyQm91bmRzfHwoci5kaXJ0eVJlbmRlckJvdW5kcz1uZXcgeHIpO3ZhciBpPW4uZ2V0UmVuZGVyQm91bmRzKCk7aSYmci5kaXJ0eVJlbmRlckJvdW5kcy51cGRhdGUoaS5jZW50ZXIsaS5oYWxmRXh0ZW50cyl9fSx7a2V5OiJhcHBseVdvcmxkVHJhbnNmb3JtIix2YWx1ZTpmdW5jdGlvbihuLHIsaSl7aT8oVGModGhpcy50bXBNYXQ0LHIuZ2V0TG9jYWxUcmFuc2Zvcm0oKSksR24odGhpcy50bXBNYXQ0LGksdGhpcy50bXBNYXQ0KSxHbih0aGlzLnRtcE1hdDQsdGhpcy52cE1hdHJpeCx0aGlzLnRtcE1hdDQpKTooVGModGhpcy50bXBNYXQ0LHIuZ2V0V29ybGRUcmFuc2Zvcm0oKSksR24odGhpcy50bXBNYXQ0LHRoaXMudnBNYXRyaXgsdGhpcy50bXBNYXQ0KSksbi5zZXRUcmFuc2Zvcm0odGhpcy50bXBNYXQ0WzBdLHRoaXMudG1wTWF0NFsxXSx0aGlzLnRtcE1hdDRbNF0sdGhpcy50bXBNYXQ0WzVdLHRoaXMudG1wTWF0NFsxMl0sdGhpcy50bXBNYXQ0WzEzXSl9fSx7a2V5OiJzYWZlTWVyZ2VBQUJCIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgbj1uZXcgeHIscj1hcmd1bWVudHMubGVuZ3RoLGk9bmV3IEFycmF5KHIpLGE9MDthPHI7YSsrKWlbYV09YXJndW1lbnRzW2FdO3JldHVybiBpLmZvckVhY2goZnVuY3Rpb24obyl7bi5hZGQobyl9KSxufX1dKX0oKTtkQS50YWc9IkNhbnZhc1JlbmRlcmVyIjtmdW5jdGlvbiBYeSh0LGUsbixyLGksYSxvKXt2YXIgcyxjO2lmKHQuaW1hZ2Uubm9kZU5hbWU9PT0icmVjdCIpe3ZhciBsPXQuaW1hZ2UucGFyc2VkU3R5bGUsdT1sLndpZHRoLGY9bC5oZWlnaHQ7Yz1yLmNvbnRleHRTZXJ2aWNlLmdldERQUigpO3ZhciBkPXIuY29uZmlnLm9mZnNjcmVlbkNhbnZhcztzPWEub2Zmc2NyZWVuQ2FudmFzQ3JlYXRvci5nZXRPckNyZWF0ZUNhbnZhcyhkKSxzLndpZHRoPXUqYyxzLmhlaWdodD1mKmM7dmFyIGg9YS5vZmZzY3JlZW5DYW52YXNDcmVhdG9yLmdldE9yQ3JlYXRlQ29udGV4dChkKSx2PXtyZXN0b3JlU3RhY2s6W10scHJldk9iamVjdDpudWxsLGN1cnJlbnRDb250ZXh0Om5ldyBNYXB9O3QuaW1hZ2UuZm9yRWFjaChmdW5jdGlvbih5KXtpLnJlbmRlckRpc3BsYXlPYmplY3QoeSxoLHIsdixhKX0pLHYucmVzdG9yZVN0YWNrLmZvckVhY2goZnVuY3Rpb24oKXtoLnJlc3RvcmUoKX0pfXZhciBnPW8uZ2V0T3JDcmVhdGVQYXR0ZXJuU3luYyhlLHQsbixzLGMsZS5nZXRHZW9tZXRyeUJvdW5kcygpLm1pbixmdW5jdGlvbigpe2UucmVuZGVyYWJsZS5kaXJ0eT0hMCxyLnJlbmRlcmluZ1NlcnZpY2UuZGlydGlmeSgpfSk7cmV0dXJuIGd9ZnVuY3Rpb24gVXkodCxlLG4scil7dmFyIGk7aWYodC50eXBlPT09QmEuTGluZWFyR3JhZGllbnR8fHQudHlwZT09PUJhLlJhZGlhbEdyYWRpZW50KXt2YXIgYT1lLmdldEdlb21ldHJ5Qm91bmRzKCksbz1hJiZhLmhhbGZFeHRlbnRzWzBdKjJ8fDEscz1hJiZhLmhhbGZFeHRlbnRzWzFdKjJ8fDEsYz1hJiZhLm1pbnx8WzAsMF07aT1yLmdldE9yQ3JlYXRlR3JhZGllbnQoKDAsRWUuWikoKDAsRWUuWikoe3R5cGU6dC50eXBlfSx0LnZhbHVlKSx7fSx7bWluOmMsd2lkdGg6byxoZWlnaHQ6c30pLG4pfXJldHVybiBpfXZhciBxeT1bInNoYWRvd0JsdXIiLCJzaGFkb3dPZmZzZXRYIiwic2hhZG93T2Zmc2V0WSJdLGhBPVsibGluZUNhcCIsImxpbmVKb2luIiwibWl0ZXJMaW1pdCJdLGFpPXtnbG9iYWxBbHBoYToxLHNoYWRvd0JsdXI6MCxzaGFkb3dPZmZzZXRYOjAsc2hhZG93T2Zmc2V0WTowLHNoYWRvd0NvbG9yOiIjMDAwIixmaWx0ZXI6Im5vbmUiLGdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbjoic291cmNlLW92ZXIiLHN0cm9rZVN0eWxlOiIjMDAwIixzdHJva2VPcGFjaXR5OjEsbGluZVdpZHRoOjEsbGluZURhc2g6W10sbGluZURhc2hPZmZzZXQ6MCxsaW5lQ2FwOiJidXR0IixsaW5lSm9pbjoibWl0ZXIiLG1pdGVyTGltaXQ6MTAsZmlsbFN0eWxlOiIjMDAwIixmaWxsT3BhY2l0eToxfSxwQT17fTtmdW5jdGlvbiBFcih0LGUsbixyKXt2YXIgaT1yLmhhcyhlKT9yLmdldChlKTphaVtlXTtyZXR1cm4gaSE9PW4mJihlPT09ImxpbmVEYXNoIj90LnNldExpbmVEYXNoKG4pOnRbZV09bixyLnNldChlLG4pKSxpfXZhciB1Rj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7KDAseHQuWikodGhpcyx0KSx0aGlzLmltYWdlUG9vbD1lfXJldHVybigwLE90LlopKHQsW3trZXk6ImFwcGx5QXR0cmlidXRlc1RvQ29udGV4dCIsdmFsdWU6ZnVuY3Rpb24obixyKXt9fSx7a2V5OiJyZW5kZXIiLHZhbHVlOmZ1bmN0aW9uKG4scixpLGEsbyxzKXt9fSx7a2V5OiJhcHBseUNvbW1vblN0eWxlVG9Db250ZXh0Iix2YWx1ZTpmdW5jdGlvbihuLHIsaSxhKXt2YXIgbz1pP3BBOmEucHJldk9iamVjdC5wYXJzZWRTdHlsZSxzPXIucGFyc2VkU3R5bGU7KGl8fHMub3BhY2l0eSE9PW8ub3BhY2l0eSkmJkVyKG4sImdsb2JhbEFscGhhIixnZShzLm9wYWNpdHkpP2FpLmdsb2JhbEFscGhhOnMub3BhY2l0eSxhLmN1cnJlbnRDb250ZXh0KSwoaXx8cy5ibGVuZCE9PW8uYmxlbmQpJiZFcihuLCJnbG9iYWxDb21wb3NpdGVPcGVyYXRpb24iLGdlKHMuYmxlbmQpP2FpLmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbjpzLmJsZW5kLGEuY3VycmVudENvbnRleHQpfX0se2tleToiYXBwbHlTdHJva2VGaWxsU3R5bGVUb0NvbnRleHQiLHZhbHVlOmZ1bmN0aW9uKG4scixpLGEpe3ZhciBvPWk/cEE6YS5wcmV2T2JqZWN0LnBhcnNlZFN0eWxlLHM9ci5wYXJzZWRTdHlsZSxjPXMubGluZVdpZHRoLGw9Yz09PXZvaWQgMD9haS5saW5lV2lkdGg6Yyx1PXMuZmlsbCYmIXMuZmlsbC5pc05vbmUsZj1zLnN0cm9rZSYmIXMuc3Ryb2tlLmlzTm9uZSYmbD4wO2lmKGYpe2lmKGl8fHIuYXR0cmlidXRlcy5zdHJva2UhPT1hLnByZXZPYmplY3QuYXR0cmlidXRlcy5zdHJva2Upe3ZhciBkPSFnZShzLnN0cm9rZSkmJiFBcnJheS5pc0FycmF5KHMuc3Ryb2tlKSYmIXMuc3Ryb2tlLmlzTm9uZT9yLmF0dHJpYnV0ZXMuc3Ryb2tlOmFpLnN0cm9rZVN0eWxlO0VyKG4sInN0cm9rZVN0eWxlIixkLGEuY3VycmVudENvbnRleHQpfShpfHxzLmxpbmVXaWR0aCE9PW8ubGluZVdpZHRoKSYmRXIobiwibGluZVdpZHRoIixnZShzLmxpbmVXaWR0aCk/YWkubGluZVdpZHRoOnMubGluZVdpZHRoLGEuY3VycmVudENvbnRleHQpLChpfHxzLmxpbmVEYXNoIT09by5saW5lRGFzaCkmJkVyKG4sImxpbmVEYXNoIixzLmxpbmVEYXNofHxhaS5saW5lRGFzaCxhLmN1cnJlbnRDb250ZXh0KSwoaXx8cy5saW5lRGFzaE9mZnNldCE9PW8ubGluZURhc2hPZmZzZXQpJiZFcihuLCJsaW5lRGFzaE9mZnNldCIsZ2Uocy5saW5lRGFzaE9mZnNldCk/YWkubGluZURhc2hPZmZzZXQ6cy5saW5lRGFzaE9mZnNldCxhLmN1cnJlbnRDb250ZXh0KTtmb3IodmFyIGg9MDtoPGhBLmxlbmd0aDtoKyspe3ZhciB2PWhBW2hdOyhpfHxzW3ZdIT09b1t2XSkmJkVyKG4sdixnZShzW3ZdKT9haVt2XTpzW3ZdLGEuY3VycmVudENvbnRleHQpfX1pZih1JiYoaXx8ci5hdHRyaWJ1dGVzLmZpbGwhPT1hLnByZXZPYmplY3QuYXR0cmlidXRlcy5maWxsKSl7dmFyIGc9IWdlKHMuZmlsbCkmJiFBcnJheS5pc0FycmF5KHMuZmlsbCkmJiFzLmZpbGwuaXNOb25lP3IuYXR0cmlidXRlcy5maWxsOmFpLmZpbGxTdHlsZTtFcihuLCJmaWxsU3R5bGUiLGcsYS5jdXJyZW50Q29udGV4dCl9fX0se2tleToiYXBwbHlTdHlsZVRvQ29udGV4dCIsdmFsdWU6ZnVuY3Rpb24obixyLGksYSl7dmFyIG89ci5ub2RlTmFtZTt0aGlzLmFwcGx5Q29tbW9uU3R5bGVUb0NvbnRleHQobixyLGksYSksbz09PWR0LklNQUdFfHx0aGlzLmFwcGx5U3Ryb2tlRmlsbFN0eWxlVG9Db250ZXh0KG4scixpLGEpfX0se2tleToiYXBwbHlTaGFkb3dBbmRGaWx0ZXJTdHlsZVRvQ29udGV4dCIsdmFsdWU6ZnVuY3Rpb24obixyLGksYSl7dmFyIG89ci5wYXJzZWRTdHlsZTtpZihpKXtFcihuLCJzaGFkb3dDb2xvciIsby5zaGFkb3dDb2xvci50b1N0cmluZygpLGEuY3VycmVudENvbnRleHQpO2Zvcih2YXIgcz0wO3M8cXkubGVuZ3RoO3MrKyl7dmFyIGM9cXlbc107RXIobixjLG9bY118fGFpW2NdLGEuY3VycmVudENvbnRleHQpfX1vLmZpbHRlciYmby5maWx0ZXIubGVuZ3RoJiZFcihuLCJmaWx0ZXIiLHIuYXR0cmlidXRlcy5maWx0ZXIsYS5jdXJyZW50Q29udGV4dCl9fSx7a2V5OiJjbGVhclNoYWRvd0FuZEZpbHRlclN0eWxlRm9yQ29udGV4dCIsdmFsdWU6ZnVuY3Rpb24obixyLGksYSl7dmFyIG89YXJndW1lbnRzLmxlbmd0aD40JiZhcmd1bWVudHNbNF0hPT12b2lkIDA/YXJndW1lbnRzWzRdOiExO2lmKHIpe0VyKG4sInNoYWRvd0NvbG9yIixhaS5zaGFkb3dDb2xvcixhLmN1cnJlbnRDb250ZXh0KTtmb3IodmFyIHM9MDtzPHF5Lmxlbmd0aDtzKyspe3ZhciBjPXF5W3NdO0VyKG4sYyxhaVtjXSxhLmN1cnJlbnRDb250ZXh0KX19aWYoaSlpZihyJiZvKXt2YXIgbD1uLmZpbHRlcjshZ2UobCkmJmwuaW5kZXhPZigiZHJvcC1zaGFkb3ciKT4tMSYmRXIobiwiZmlsdGVyIixsLnJlcGxhY2UoL2Ryb3Atc2hhZG93XChbXildKlwpLywiIikudHJpbSgpfHxhaS5maWx0ZXIsYS5jdXJyZW50Q29udGV4dCl9ZWxzZSBFcihuLCJmaWx0ZXIiLGFpLmZpbHRlcixhLmN1cnJlbnRDb250ZXh0KX19LHtrZXk6ImZpbGxUb0NvbnRleHQiLHZhbHVlOmZ1bmN0aW9uKG4scixpLGEsbyl7dmFyIHM9dGhpcyxjPXIucGFyc2VkU3R5bGUsbD1jLmZpbGwsdT1jLmZpbGxSdWxlLGY9bnVsbDtpZihBcnJheS5pc0FycmF5KGwpJiZsLmxlbmd0aD4wKWwuZm9yRWFjaChmdW5jdGlvbihoKXt2YXIgdj1FcihuLCJmaWxsU3R5bGUiLFV5KGgscixuLHMuaW1hZ2VQb29sKSxpLmN1cnJlbnRDb250ZXh0KTtmPWYhPW51bGw/Zjp2LHU/bi5maWxsKHUpOm4uZmlsbCgpfSk7ZWxzZXtpZihVcyhsKSl7dmFyIGQ9WHkobCxyLG4sci5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LmNvbnRleHQsYSxvLHRoaXMuaW1hZ2VQb29sKTtkJiYobi5maWxsU3R5bGU9ZCxmPSEwKX11P24uZmlsbCh1KTpuLmZpbGwoKX1mIT09bnVsbCYmRXIobiwiZmlsbFN0eWxlIixmLGkuY3VycmVudENvbnRleHQpfX0se2tleToic3Ryb2tlVG9Db250ZXh0Iix2YWx1ZTpmdW5jdGlvbihuLHIsaSxhLG8pe3ZhciBzPXRoaXMsYz1yLnBhcnNlZFN0eWxlLnN0cm9rZSxsPW51bGw7aWYoQXJyYXkuaXNBcnJheShjKSYmYy5sZW5ndGg+MCljLmZvckVhY2goZnVuY3Rpb24oZCl7dmFyIGg9RXIobiwic3Ryb2tlU3R5bGUiLFV5KGQscixuLHMuaW1hZ2VQb29sKSxpLmN1cnJlbnRDb250ZXh0KTtsPWwhPW51bGw/bDpoLG4uc3Ryb2tlKCl9KTtlbHNle2lmKFVzKGMpKXt2YXIgdT1YeShjLHIsbixyLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcuY29udGV4dCxhLG8sdGhpcy5pbWFnZVBvb2wpO2lmKHUpe3ZhciBmPUVyKG4sInN0cm9rZVN0eWxlIix1LGkuY3VycmVudENvbnRleHQpO2w9bCE9bnVsbD9sOmZ9fW4uc3Ryb2tlKCl9bCE9PW51bGwmJkVyKG4sInN0cm9rZVN0eWxlIixsLGkuY3VycmVudENvbnRleHQpfX0se2tleToiZHJhd1RvQ29udGV4dCIsdmFsdWU6ZnVuY3Rpb24obixyLGksYSxvKXt2YXIgcyxjPXIubm9kZU5hbWUsbD1yLnBhcnNlZFN0eWxlLHU9bC5vcGFjaXR5LGY9dT09PXZvaWQgMD9haS5nbG9iYWxBbHBoYTp1LGQ9bC5maWxsT3BhY2l0eSxoPWQ9PT12b2lkIDA/YWkuZmlsbE9wYWNpdHk6ZCx2PWwuc3Ryb2tlT3BhY2l0eSxnPXY9PT12b2lkIDA/YWkuc3Ryb2tlT3BhY2l0eTp2LHk9bC5saW5lV2lkdGgsYj15PT09dm9pZCAwP2FpLmxpbmVXaWR0aDp5LHg9bC5maWxsJiYhbC5maWxsLmlzTm9uZSxfPWwuc3Ryb2tlJiYhbC5zdHJva2UuaXNOb25lJiZiPjA7aWYoISgheCYmIV8pKXt2YXIgdz0hZ2UobC5zaGFkb3dDb2xvcikmJmwuc2hhZG93Qmx1cj4wLE89bC5zaGFkb3dUeXBlPT09ImlubmVyIixFPSgocz1sLmZpbGwpPT09bnVsbHx8cz09PXZvaWQgMD92b2lkIDA6cy5hbHBoYSk9PT0wLE09ISEobC5maWx0ZXImJmwuZmlsdGVyLmxlbmd0aCksaz13JiZfJiYoYz09PWR0LlBBVEh8fGM9PT1kdC5MSU5FfHxjPT09ZHQuUE9MWUxJTkV8fEV8fE8pLEE9bnVsbDtpZih4KXtrfHx0aGlzLmFwcGx5U2hhZG93QW5kRmlsdGVyU3R5bGVUb0NvbnRleHQobixyLHcsaSk7dmFyIFA9ZipoO0E9RXIobiwiZ2xvYmFsQWxwaGEiLFAsaS5jdXJyZW50Q29udGV4dCksdGhpcy5maWxsVG9Db250ZXh0KG4scixpLGEsbyksa3x8dGhpcy5jbGVhclNoYWRvd0FuZEZpbHRlclN0eWxlRm9yQ29udGV4dChuLHcsTSxpKX1pZihfKXt2YXIgQz0hMSxOPWYqZyxMPUVyKG4sImdsb2JhbEFscGhhIixOLGkuY3VycmVudENvbnRleHQpO2lmKEE9eD9BOkwsayYmKHRoaXMuYXBwbHlTaGFkb3dBbmRGaWx0ZXJTdHlsZVRvQ29udGV4dChuLHIsdyxpKSxDPSEwLE8pKXt2YXIgUj1uLmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbjtuLmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbj0ic291cmNlLWF0b3AiLHRoaXMuc3Ryb2tlVG9Db250ZXh0KG4scixpLGEsbyksbi5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb249Uix0aGlzLmNsZWFyU2hhZG93QW5kRmlsdGVyU3R5bGVGb3JDb250ZXh0KG4sdyxNLGksITApfXRoaXMuc3Ryb2tlVG9Db250ZXh0KG4scixpLGEsbyksQyYmdGhpcy5jbGVhclNoYWRvd0FuZEZpbHRlclN0eWxlRm9yQ29udGV4dChuLHcsTSxpKX1BIT09bnVsbCYmRXIobiwiZ2xvYmFsQWxwaGEiLEEsaS5jdXJyZW50Q29udGV4dCl9fX1dKX0oKSxZXz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuKDAseHQuWikodGhpcyxlKSwoMCxEZS5aKSh0aGlzLGUsYXJndW1lbnRzKX1yZXR1cm4oMCxNZS5aKShlLHQpLCgwLE90LlopKGUsW3trZXk6InJlbmRlciIsdmFsdWU6ZnVuY3Rpb24ocixpLGEsbyxzLGMpe3ZhciBsPWkuZmlsbCx1PWkuZmlsbFJ1bGUsZj1pLm9wYWNpdHksZD1mPT09dm9pZCAwPzE6ZixoPWkuZmlsbE9wYWNpdHksdj1oPT09dm9pZCAwPzE6aCxnPWkuc3Ryb2tlLHk9aS5zdHJva2VPcGFjaXR5LGI9eT09PXZvaWQgMD8xOnkseD1pLmxpbmVXaWR0aCxfPXg9PT12b2lkIDA/MTp4LHc9aS5saW5lQ2FwLE89aS5saW5lSm9pbixFPWkuc2hhZG93VHlwZSxNPWkuc2hhZG93Q29sb3Isaz1pLnNoYWRvd0JsdXIsQT1pLmZpbHRlcixQPWkubWl0ZXJMaW1pdCxDPWwmJiFsLmlzTm9uZSxOPWcmJiFnLmlzTm9uZSYmXz4wLEw9KGw9PW51bGw/dm9pZCAwOmwuYWxwaGEpPT09MCxSPSEhKEEmJkEubGVuZ3RoKSxJPSFnZShNKSYmaz4wLEQ9YS5ub2RlTmFtZSxHPUU9PT0iaW5uZXIiLEY9TiYmSSYmKEQ9PT1kdC5QQVRIfHxEPT09ZHQuTElORXx8RD09PWR0LlBPTFlMSU5FfHxMfHxHKTtDJiYoci5nbG9iYWxBbHBoYT1kKnYsRnx8S3koYSxyLEkpLHZBKHIsYSxsLHUsbyxzLGMsdGhpcy5pbWFnZVBvb2wpLEZ8fHRoaXMuY2xlYXJTaGFkb3dBbmRGaWx0ZXIocixSLEkpKSxOJiYoci5nbG9iYWxBbHBoYT1kKmIsci5saW5lV2lkdGg9XyxnZShQKXx8KHIubWl0ZXJMaW1pdD1QKSxnZSh3KXx8KHIubGluZUNhcD13KSxnZShPKXx8KHIubGluZUpvaW49TyksRiYmKEcmJihyLmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbj0ic291cmNlLWF0b3AiKSxLeShhLHIsITApLEcmJihIXyhyLGEsZyxvLHMsYyx0aGlzLmltYWdlUG9vbCksci5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb249YWkuZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uLHRoaXMuY2xlYXJTaGFkb3dBbmRGaWx0ZXIocixSLCEwKSkpLEhfKHIsYSxnLG8scyxjLHRoaXMuaW1hZ2VQb29sKSl9fSx7a2V5OiJjbGVhclNoYWRvd0FuZEZpbHRlciIsdmFsdWU6ZnVuY3Rpb24ocixpLGEpe2lmKGEmJihyLnNoYWRvd0NvbG9yPSJ0cmFuc3BhcmVudCIsci5zaGFkb3dCbHVyPTApLGkpe3ZhciBvPXIuZmlsdGVyOyFnZShvKSYmby5pbmRleE9mKCJkcm9wLXNoYWRvdyIpPi0xJiYoci5maWx0ZXI9by5yZXBsYWNlKC9kcm9wLXNoYWRvd1woW14pXSpcKS8sIiIpLnRyaW0oKXx8Im5vbmUiKX19fV0pfSh1Rik7ZnVuY3Rpb24gS3kodCxlLG4pe3ZhciByPXQucGFyc2VkU3R5bGUsaT1yLmZpbHRlcixhPXIuc2hhZG93Q29sb3Isbz1yLnNoYWRvd0JsdXIscz1yLnNoYWRvd09mZnNldFgsYz1yLnNoYWRvd09mZnNldFk7aSYmaS5sZW5ndGgmJihlLmZpbHRlcj10LnN0eWxlLmZpbHRlciksbiYmKGUuc2hhZG93Q29sb3I9YS50b1N0cmluZygpLGUuc2hhZG93Qmx1cj1vfHwwLGUuc2hhZG93T2Zmc2V0WD1zfHwwLGUuc2hhZG93T2Zmc2V0WT1jfHwwKX1mdW5jdGlvbiB2QSh0LGUsbixyLGksYSxvLHMpe3ZhciBjPWFyZ3VtZW50cy5sZW5ndGg+OCYmYXJndW1lbnRzWzhdIT09dm9pZCAwP2FyZ3VtZW50c1s4XTohMTtBcnJheS5pc0FycmF5KG4pP24uZm9yRWFjaChmdW5jdGlvbihsKXt0LmZpbGxTdHlsZT1VeShsLGUsdCxzKSxjfHwocj90LmZpbGwocik6dC5maWxsKCkpfSk6KFVzKG4pJiYodC5maWxsU3R5bGU9WHkobixlLHQsaSxhLG8scykpLGN8fChyP3QuZmlsbChyKTp0LmZpbGwoKSkpfWZ1bmN0aW9uIEhfKHQsZSxuLHIsaSxhLG8pe3ZhciBzPWFyZ3VtZW50cy5sZW5ndGg+NyYmYXJndW1lbnRzWzddIT09dm9pZCAwP2FyZ3VtZW50c1s3XTohMTtBcnJheS5pc0FycmF5KG4pP24uZm9yRWFjaChmdW5jdGlvbihjKXt0LnN0cm9rZVN0eWxlPVV5KGMsZSx0LG8pLHN8fHQuc3Ryb2tlKCl9KTooVXMobikmJih0LnN0cm9rZVN0eWxlPVh5KG4sZSx0LHIsaSxhLG8pKSxzfHx0LnN0cm9rZSgpKX1mdW5jdGlvbiBmRih0LGUpe3ZhciBuPSgwLFRlLlopKHQsNCkscj1uWzBdLGk9blsxXSxhPW5bMl0sbz1uWzNdLHM9KDAsVGUuWikoZSw0KSxjPXNbMF0sbD1zWzFdLHU9c1syXSxmPXNbM10sZD1NYXRoLm1heChyLGMpLGg9TWF0aC5tYXgoaSxsKSx2PU1hdGgubWluKHIrYSxjK3UpLGc9TWF0aC5taW4oaStvLGwrZik7cmV0dXJuIHY8PWR8fGc8PWg/bnVsbDpbZCxoLHYtZCxnLWhdfWZ1bmN0aW9uIGRGKHQsZSl7dmFyIG49ZXIobWUoKSxbdFswXSx0WzFdLDBdLGUpLHI9ZXIobWUoKSxbdFswXSt0WzJdLHRbMV0sMF0sZSksaT1lcihtZSgpLFt0WzBdLHRbMV0rdFszXSwwXSxlKSxhPWVyKG1lKCksW3RbMF0rdFsyXSx0WzFdK3RbM10sMF0sZSk7cmV0dXJuW01hdGgubWluKG5bMF0sclswXSxpWzBdLGFbMF0pLE1hdGgubWluKG5bMV0sclsxXSxpWzFdLGFbMV0pLE1hdGgubWF4KG5bMF0sclswXSxpWzBdLGFbMF0pLU1hdGgubWluKG5bMF0sclswXSxpWzBdLGFbMF0pLE1hdGgubWF4KG5bMV0sclsxXSxpWzFdLGFbMV0pLU1hdGgubWluKG5bMV0sclsxXSxpWzFdLGFbMV0pXX12YXIgaEY9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybigwLHh0LlopKHRoaXMsZSksKDAsRGUuWikodGhpcyxlLGFyZ3VtZW50cyl9cmV0dXJuKDAsTWUuWikoZSx0KSwoMCxPdC5aKShlLFt7a2V5OiJyZW5kZXJEb3duU2FtcGxlZCIsdmFsdWU6ZnVuY3Rpb24ocixpLGEsbyl7dmFyIHM9by5zcmMsYz1vLmltYWdlQ2FjaGU7aWYoIWMuZG93blNhbXBsZWQpe3RoaXMuaW1hZ2VQb29sLmNyZWF0ZURvd25TYW1wbGVkSW1hZ2UocyxhKS50aGVuKGZ1bmN0aW9uKCl7YS5vd25lckRvY3VtZW50JiYoYS5yZW5kZXJhYmxlLmRpcnR5PSEwLGEub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldy5jb250ZXh0LnJlbmRlcmluZ1NlcnZpY2UuZGlydGlmeSgpKX0pLmNhdGNoKGZ1bmN0aW9uKGwpe2NvbnNvbGUuZXJyb3IobCl9KTtyZXR1cm59ci5kcmF3SW1hZ2UoYy5kb3duU2FtcGxlZCxNYXRoLmZsb29yKG8uZHJhd1JlY3RbMF0pLE1hdGguZmxvb3Ioby5kcmF3UmVjdFsxXSksTWF0aC5jZWlsKG8uZHJhd1JlY3RbMl0pLE1hdGguY2VpbChvLmRyYXdSZWN0WzNdKSl9fSx7a2V5OiJyZW5kZXJUaWxlIix2YWx1ZTpmdW5jdGlvbihyLGksYSxvKXt2YXIgcz1vLnNyYyxjPW8uaW1hZ2VDYWNoZSxsPW8uaW1hZ2VSZWN0LHU9by5kcmF3UmVjdCxmPWMuc2l6ZSxkPXIuZ2V0VHJhbnNmb3JtKCksaD1kLmEsdj1kLmIsZz1kLmMseT1kLmQsYj1kLmUseD1kLmY7aWYoci5yZXNldFRyYW5zZm9ybSgpLCEoYyE9bnVsbCYmYy5ncmlkU2l6ZSkpe3RoaXMuaW1hZ2VQb29sLmNyZWF0ZUltYWdlVGlsZXMocyxbXSxmdW5jdGlvbigpe2Eub3duZXJEb2N1bWVudCYmKGEucmVuZGVyYWJsZS5kaXJ0eT0hMCxhLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcuY29udGV4dC5yZW5kZXJpbmdTZXJ2aWNlLmRpcnRpZnkoKSl9LGEpLmNhdGNoKGZ1bmN0aW9uKEkpe2NvbnNvbGUuZXJyb3IoSSl9KTtyZXR1cm59Zm9yKHZhciBfPVtmWzBdL2xbMl0sZlsxXS9sWzNdXSx3PVtjLnRpbGVTaXplWzBdL19bMF0sYy50aWxlU2l6ZVsxXS9fWzFdXSxPPVtNYXRoLmZsb29yKCh1WzBdLWxbMF0pL3dbMF0pLE1hdGguY2VpbCgodVswXSt1WzJdLWxbMF0pL3dbMF0pXSxFPU9bMF0sTT1PWzFdLGs9W01hdGguZmxvb3IoKHVbMV0tbFsxXSkvd1sxXSksTWF0aC5jZWlsKCh1WzFdK3VbM10tbFsxXSkvd1sxXSldLEE9a1swXSxQPWtbMV0sQz1BO0M8PVA7QysrKWZvcih2YXIgTj1FO048PU07TisrKXt2YXIgTD1jLnRpbGVzW0NdW05dO2lmKEwpe3ZhciBSPVtNYXRoLmZsb29yKGxbMF0rTC50aWxlWCp3WzBdKSxNYXRoLmZsb29yKGxbMV0rTC50aWxlWSp3WzFdKSxNYXRoLmNlaWwod1swXSksTWF0aC5jZWlsKHdbMV0pXTtyLmRyYXdJbWFnZShMLmRhdGEsUlswXSxSWzFdLFJbMl0sUlszXSl9fXIuc2V0VHJhbnNmb3JtKGgsdixnLHksYix4KX19LHtrZXk6InJlbmRlciIsdmFsdWU6ZnVuY3Rpb24ocixpLGEpe3ZhciBvPWkueCxzPW89PT12b2lkIDA/MDpvLGM9aS55LGw9Yz09PXZvaWQgMD8wOmMsdT1pLndpZHRoLGY9aS5oZWlnaHQsZD1pLnNyYyxoPWkuc2hhZG93Q29sb3Isdj1pLnNoYWRvd0JsdXIsZz10aGlzLmltYWdlUG9vbC5nZXRJbWFnZVN5bmMoZCxhKSx5PWc9PW51bGw/dm9pZCAwOmcuaW1nLGI9dSx4PWY7aWYoeSl7Ynx8KGI9eS53aWR0aCkseHx8KHg9eS5oZWlnaHQpO3ZhciBfPSFnZShoKSYmdj4wO0t5KGEscixfKTt0cnl7dmFyIHc9YS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbnRleHRTZXJ2aWNlKCkuZ2V0RG9tRWxlbWVudCgpLE89dy53aWR0aCxFPXcuaGVpZ2h0LE09ci5nZXRUcmFuc2Zvcm0oKSxrPU0uYSxBPU0uYixQPU0uYyxDPU0uZCxOPU0uZSxMPU0uZixSPUhkKGssUCwwLDAsQSxDLDAsMCwwLDAsMSwwLE4sTCwwLDEpLEk9ZEYoW3MsbCxiLHhdLFIpLEQ9ZkYoWzAsMCxPLEVdLEkpO2lmKCFEKXJldHVybjtpZighYS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbmZpZygpLmVuYWJsZUxhcmdlSW1hZ2VPcHRpbWl6YXRpb24pe2UucmVuZGVyRnVsbChyLGksYSx7aW1hZ2U6eSxkcmF3UmVjdDpbcyxsLGIseF19KTtyZXR1cm59dmFyIEc9SVsyXS9nLnNpemVbMF07aWYoRzwoZy5kb3duU2FtcGxpbmdSYXRlfHwuNSkpe3RoaXMucmVuZGVyRG93blNhbXBsZWQocixpLGEse3NyYzpkLGltYWdlQ2FjaGU6ZyxkcmF3UmVjdDpbcyxsLGIseF19KTtyZXR1cm59aWYoIVpfLmlzU3VwcG9ydFRpbGUpe2UucmVuZGVyRnVsbChyLGksYSx7aW1hZ2U6eSxkcmF3UmVjdDpbcyxsLGIseF19KTtyZXR1cm59dGhpcy5yZW5kZXJUaWxlKHIsaSxhLHtzcmM6ZCxpbWFnZUNhY2hlOmcsaW1hZ2VSZWN0OkksZHJhd1JlY3Q6RH0pfWNhdGNoKEYpe319fX0se2tleToiZHJhd1RvQ29udGV4dCIsdmFsdWU6ZnVuY3Rpb24ocixpLGEsbyxzKXt0aGlzLnJlbmRlcihyLGkucGFyc2VkU3R5bGUsaSl9fV0sW3trZXk6InJlbmRlckZ1bGwiLHZhbHVlOmZ1bmN0aW9uKHIsaSxhLG8pe3IuZHJhd0ltYWdlKG8uaW1hZ2UsTWF0aC5mbG9vcihvLmRyYXdSZWN0WzBdKSxNYXRoLmZsb29yKG8uZHJhd1JlY3RbMV0pLE1hdGguY2VpbChvLmRyYXdSZWN0WzJdKSxNYXRoLmNlaWwoby5kcmF3UmVjdFszXSkpfX1dKX0oWV8pLHBGPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4oMCx4dC5aKSh0aGlzLGUpLCgwLERlLlopKHRoaXMsZSxhcmd1bWVudHMpfXJldHVybigwLE1lLlopKGUsdCksKDAsT3QuWikoZSxbe2tleToicmVuZGVyIix2YWx1ZTpmdW5jdGlvbihyLGksYSxvLHMsYyl7YS5nZXRCb3VuZHMoKTt2YXIgbD1pLmxpbmVXaWR0aCx1PWw9PT12b2lkIDA/MTpsLGY9aS50ZXh0QWxpZ24sZD1mPT09dm9pZCAwPyJzdGFydCI6ZixoPWkudGV4dEJhc2VsaW5lLHY9aD09PXZvaWQgMD8iYWxwaGFiZXRpYyI6aCxnPWkubGluZUpvaW4seT1nPT09dm9pZCAwPyJtaXRlciI6ZyxiPWkubWl0ZXJMaW1pdCx4PWI9PT12b2lkIDA/MTA6YixfPWkubGV0dGVyU3BhY2luZyx3PV89PT12b2lkIDA/MDpfLE89aS5zdHJva2UsRT1pLmZpbGwsTT1pLmZpbGxSdWxlLGs9aS5maWxsT3BhY2l0eSxBPWs9PT12b2lkIDA/MTprLFA9aS5zdHJva2VPcGFjaXR5LEM9UD09PXZvaWQgMD8xOlAsTj1pLm9wYWNpdHksTD1OPT09dm9pZCAwPzE6TixSPWkubWV0cmljcyxJPWkueCxEPUk9PT12b2lkIDA/MDpJLEc9aS55LEY9Rz09PXZvaWQgMD8wOkcsVz1pLmR4LFg9aS5keSxRPWkuc2hhZG93Q29sb3IsdHQ9aS5zaGFkb3dCbHVyLG50PVIuZm9udCxodD1SLmxpbmVzLGx0PVIuaGVpZ2h0LHd0PVIubGluZUhlaWdodCx5dD1SLmxpbmVNZXRyaWNzO3IuZm9udD1udCxyLmxpbmVXaWR0aD11LHIudGV4dEFsaWduPWQ9PT0ibWlkZGxlIj8iY2VudGVyIjpkO3ZhciBndD12O2d0PT09ImFscGhhYmV0aWMiJiYoZ3Q9ImJvdHRvbSIpLHIubGluZUpvaW49eSxnZSh4KXx8KHIubWl0ZXJMaW1pdD14KTt2YXIgQnQ9Rjt2PT09Im1pZGRsZSI/QnQrPS1sdC8yLXd0LzI6dj09PSJib3R0b20ifHx2PT09ImFscGhhYmV0aWMifHx2PT09ImlkZW9ncmFwaGljIj9CdCs9LWx0Oih2PT09InRvcCJ8fHY9PT0iaGFuZ2luZyIpJiYoQnQrPS13dCk7dmFyIEx0PUQrKFd8fDApO0J0Kz1YfHwwLGh0Lmxlbmd0aD09PTEmJihndD09PSJib3R0b20iPyhndD0ibWlkZGxlIixCdC09LjUqbHQpOmd0PT09InRvcCImJihndD0ibWlkZGxlIixCdCs9LjUqbHQpKSxyLnRleHRCYXNlbGluZT1ndDt2YXIgSXQ9IWdlKFEpJiZ0dD4wO0t5KGEscixJdCk7Zm9yKHZhciBqdD0wO2p0PGh0Lmxlbmd0aDtqdCsrKXt2YXIgUXQ9dS8yK0x0O0J0Kz13dCwhZ2UoTykmJiFPLmlzTm9uZSYmdSYmdGhpcy5kcmF3TGV0dGVyU3BhY2luZyhyLGEsaHRbanRdLHl0W2p0XSxkLFF0LEJ0LHcsRSxNLEEsTyxDLEwsITAsbyxzLGMpLGdlKEUpfHx0aGlzLmRyYXdMZXR0ZXJTcGFjaW5nKHIsYSxodFtqdF0seXRbanRdLGQsUXQsQnQsdyxFLE0sQSxPLEMsTCwhMSxvLHMsYyl9fX0se2tleToiZHJhd0xldHRlclNwYWNpbmciLHZhbHVlOmZ1bmN0aW9uKHIsaSxhLG8scyxjLGwsdSxmLGQsaCx2LGcseSxiLHgsXyx3KXtpZih1PT09MCl7Yj90aGlzLnN0cm9rZVRleHQocixpLGEsYyxsLHYsZyx4LF8sdyk6dGhpcy5maWxsVGV4dChyLGksYSxjLGwsZixkLGgseSx4LF8sdyk7cmV0dXJufXZhciBPPXIudGV4dEFsaWduO3IudGV4dEFsaWduPSJsZWZ0Ijt2YXIgRT1jO3M9PT0iY2VudGVyInx8cz09PSJtaWRkbGUiP0U9Yy1vLndpZHRoLzI6KHM9PT0icmlnaHQifHxzPT09ImVuZCIpJiYoRT1jLW8ud2lkdGgpO2Zvcih2YXIgTT1BcnJheS5mcm9tKGEpLGs9ci5tZWFzdXJlVGV4dChhKS53aWR0aCxBPTAsUD0wO1A8TS5sZW5ndGg7KytQKXt2YXIgQz1NW1BdO2I/dGhpcy5zdHJva2VUZXh0KHIsaSxDLEUsbCx2LGcseCxfLHcpOnRoaXMuZmlsbFRleHQocixpLEMsRSxsLGYsZCxoLHkseCxfLHcpLEE9ci5tZWFzdXJlVGV4dChhLnN1YnN0cmluZyhQKzEpKS53aWR0aCxFKz1rLUErdSxrPUF9ci50ZXh0QWxpZ249T319LHtrZXk6ImZpbGxUZXh0Iix2YWx1ZTpmdW5jdGlvbihyLGksYSxvLHMsYyxsLHUsZixkLGgsdil7dkEocixpLGMsbCxkLGgsdix0aGlzLmltYWdlUG9vbCwhMCk7dmFyIGcseT0hZ2UodSkmJnUhPT0xO3kmJihnPXIuZ2xvYmFsQWxwaGEsci5nbG9iYWxBbHBoYT11KmYpLHIuZmlsbFRleHQoYSxvLHMpLHkmJihyLmdsb2JhbEFscGhhPWcpfX0se2tleToic3Ryb2tlVGV4dCIsdmFsdWU6ZnVuY3Rpb24ocixpLGEsbyxzLGMsbCx1LGYsZCl7SF8ocixpLGMsdSxmLGQsdGhpcy5pbWFnZVBvb2wsITApO3ZhciBoLHY9IWdlKGwpJiZsIT09MTt2JiYoaD1yLmdsb2JhbEFscGhhLHIuZ2xvYmFsQWxwaGE9bCksci5zdHJva2VUZXh0KGEsbyxzKSx2JiYoci5nbG9iYWxBbHBoYT1oKX19LHtrZXk6ImRyYXdUb0NvbnRleHQiLHZhbHVlOmZ1bmN0aW9uKHIsaSxhLG8scyl7dGhpcy5yZW5kZXIocixpLnBhcnNlZFN0eWxlLGksaS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LmNvbnRleHQsbyxzKX19XSl9KFlfKSx2Rj1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dmFyIG4scj1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXZvaWQgMD9hcmd1bWVudHNbMF06e307cmV0dXJuKDAseHQuWikodGhpcyxlKSxuPSgwLERlLlopKHRoaXMsZSksbi5uYW1lPSJjYW52YXMtcmVuZGVyZXIiLG4ub3B0aW9ucz1yLG59cmV0dXJuKDAsTWUuWikoZSx0KSwoMCxPdC5aKShlLFt7a2V5OiJpbml0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciByLGk9KDAsRWUuWikoe2RpcnR5T2JqZWN0TnVtVGhyZXNob2xkOjUwMCxkaXJ0eU9iamVjdFJhdGlvVGhyZXNob2xkOi44fSx0aGlzLm9wdGlvbnMpLGE9dGhpcy5jb250ZXh0LmltYWdlUG9vbCxvPW5ldyBZXyhhKSxzPShyPXt9LCgwLEt0LlopKCgwLEt0LlopKCgwLEt0LlopKCgwLEt0LlopKCgwLEt0LlopKCgwLEt0LlopKCgwLEt0LlopKCgwLEt0LlopKCgwLEt0LlopKCgwLEt0LlopKHIsZHQuQ0lSQ0xFLG8pLGR0LkVMTElQU0UsbyksZHQuUkVDVCxvKSxkdC5JTUFHRSxuZXcgaEYoYSkpLGR0LlRFWFQsbmV3IHBGKGEpKSxkdC5MSU5FLG8pLGR0LlBPTFlMSU5FLG8pLGR0LlBPTFlHT04sbyksZHQuUEFUSCxvKSxkdC5HUk9VUCx2b2lkIDApLCgwLEt0LlopKCgwLEt0LlopKCgwLEt0LlopKHIsZHQuSFRNTCx2b2lkIDApLGR0Lk1FU0gsdm9pZCAwKSxkdC5GUkFHTUVOVCx2b2lkIDApKTt0aGlzLmNvbnRleHQuZGVmYXVsdFN0eWxlUmVuZGVyZXJGYWN0b3J5PXMsdGhpcy5jb250ZXh0LnN0eWxlUmVuZGVyZXJGYWN0b3J5PXMsdGhpcy5hZGRSZW5kZXJpbmdQbHVnaW4obmV3IGRBKGkpKX19LHtrZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBbGxSZW5kZXJpbmdQbHVnaW5zKCksZGVsZXRlIHRoaXMuY29udGV4dC5kZWZhdWx0U3R5bGVSZW5kZXJlckZhY3RvcnksZGVsZXRlIHRoaXMuY29udGV4dC5zdHlsZVJlbmRlcmVyRmFjdG9yeX19XSl9KGlzKTt2YXIgZ0E9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7KDAseHQuWikodGhpcyx0KX1yZXR1cm4oMCxPdC5aKSh0LFt7a2V5OiJhcHBseSIsdmFsdWU6ZnVuY3Rpb24obixyKXt2YXIgaT10aGlzLGE9bi5yZW5kZXJpbmdTZXJ2aWNlLG89bi5yZW5kZXJpbmdDb250ZXh0LHM9bi5jb25maWc7dGhpcy5jb250ZXh0PW47dmFyIGM9by5yb290Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcsbD1mdW5jdGlvbihrKXthLmhvb2tzLnBvaW50ZXJNb3ZlLmNhbGwoayl9LHU9ZnVuY3Rpb24oayl7YS5ob29rcy5wb2ludGVyVXAuY2FsbChrKX0sZj1mdW5jdGlvbihrKXthLmhvb2tzLnBvaW50ZXJEb3duLmNhbGwoayl9LGQ9ZnVuY3Rpb24oayl7YS5ob29rcy5wb2ludGVyT3Zlci5jYWxsKGspfSxoPWZ1bmN0aW9uKGspe2EuaG9va3MucG9pbnRlck91dC5jYWxsKGspfSx2PWZ1bmN0aW9uKGspe2EuaG9va3MucG9pbnRlckNhbmNlbC5jYWxsKGspfSxnPWZ1bmN0aW9uKGspe2EuaG9va3MucG9pbnRlcldoZWVsLmNhbGwoayl9LHk9ZnVuY3Rpb24oayl7YS5ob29rcy5jbGljay5jYWxsKGspfSxiPWZ1bmN0aW9uKGspe3IuZ2xvYmFsVGhpcy5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsbCwhMCksay5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsZiwhMCksay5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybGVhdmUiLGgsITApLGsuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcm92ZXIiLGQsITApLHIuZ2xvYmFsVGhpcy5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLHUsITApLHIuZ2xvYmFsVGhpcy5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyY2FuY2VsIix2LCEwKX0seD1mdW5jdGlvbihrKXtrLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLGYsITApLGsuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLHUsITApLGsuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixsLCEwKSxrLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoY2FuY2VsIix2LCEwKX0sXz1mdW5jdGlvbihrKXtyLmdsb2JhbFRoaXMuZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIixsLCEwKSxrLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsZiwhMCksay5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW91dCIsaCwhMCksay5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW92ZXIiLGQsITApLHIuZ2xvYmFsVGhpcy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIix1LCEwKX0sdz1mdW5jdGlvbihrKXtyLmdsb2JhbFRoaXMuZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLGwsITApLGsucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcmRvd24iLGYsITApLGsucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcmxlYXZlIixoLCEwKSxrLnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJvdmVyIixkLCEwKSxyLmdsb2JhbFRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIix1LCEwKSxyLmdsb2JhbFRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcmNhbmNlbCIsdiwhMCl9LE89ZnVuY3Rpb24oayl7ay5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixmLCEwKSxrLnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIix1LCEwKSxrLnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsbCwhMCksay5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaGNhbmNlbCIsdiwhMCl9LEU9ZnVuY3Rpb24oayl7ci5nbG9iYWxUaGlzLmRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsbCwhMCksay5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLGYsITApLGsucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2VvdXQiLGgsITApLGsucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2VvdmVyIixkLCEwKSxyLmdsb2JhbFRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdSwhMCl9O2EuaG9va3MuaW5pdC50YXAodC50YWcsZnVuY3Rpb24oKXt2YXIgTT1pLmNvbnRleHQuY29udGV4dFNlcnZpY2UuZ2V0RG9tRWxlbWVudCgpO3IuZ2xvYmFsVGhpcy5uYXZpZ2F0b3IubXNQb2ludGVyRW5hYmxlZD8oTS5zdHlsZS5tc0NvbnRlbnRab29taW5nPSJub25lIixNLnN0eWxlLm1zVG91Y2hBY3Rpb249Im5vbmUiKTpjLnN1cHBvcnRzUG9pbnRlckV2ZW50cyYmKE0uc3R5bGUudG91Y2hBY3Rpb249Im5vbmUiKSxjLnN1cHBvcnRzUG9pbnRlckV2ZW50cz9iKE0pOl8oTSksYy5zdXBwb3J0c1RvdWNoRXZlbnRzJiZ4KE0pLHMudXNlTmF0aXZlQ2xpY2tFdmVudCYmTS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIseSwhMCksTS5hZGRFdmVudExpc3RlbmVyKCJ3aGVlbCIsZyx7cGFzc2l2ZTohMCxjYXB0dXJlOiEwfSl9KSxhLmhvb2tzLmRlc3Ryb3kudGFwKHQudGFnLGZ1bmN0aW9uKCl7dmFyIE09aS5jb250ZXh0LmNvbnRleHRTZXJ2aWNlLmdldERvbUVsZW1lbnQoKTtyLmdsb2JhbFRoaXMubmF2aWdhdG9yLm1zUG9pbnRlckVuYWJsZWQ/KE0uc3R5bGUubXNDb250ZW50Wm9vbWluZz0iIixNLnN0eWxlLm1zVG91Y2hBY3Rpb249IiIpOmMuc3VwcG9ydHNQb2ludGVyRXZlbnRzJiYoTS5zdHlsZS50b3VjaEFjdGlvbj0iIiksYy5zdXBwb3J0c1BvaW50ZXJFdmVudHM/dyhNKTpFKE0pLGMuc3VwcG9ydHNUb3VjaEV2ZW50cyYmTyhNKSxzLnVzZU5hdGl2ZUNsaWNrRXZlbnQmJk0ucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHksITApLE0ucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2hlZWwiLGcsITApfSl9fV0pfSgpO2dBLnRhZz0iRE9NSW50ZXJhY3Rpb24iO3ZhciBnRj1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dmFyIG47KDAseHQuWikodGhpcyxlKTtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aCxpPW5ldyBBcnJheShyKSxhPTA7YTxyO2ErKylpW2FdPWFyZ3VtZW50c1thXTtyZXR1cm4gbj0oMCxEZS5aKSh0aGlzLGUsW10uY29uY2F0KGkpKSxuLm5hbWU9ImRvbS1pbnRlcmFjdGlvbiIsbn1yZXR1cm4oMCxNZS5aKShlLHQpLCgwLE90LlopKGUsW3trZXk6ImluaXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5hZGRSZW5kZXJpbmdQbHVnaW4obmV3IGdBKX19LHtrZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBbGxSZW5kZXJpbmdQbHVnaW5zKCl9fV0pfShpcyk7dmFyIHlGPSJnLWNhbnZhcy1jYW1lcmEiLHlBPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpeygwLHh0LlopKHRoaXMsdCksdGhpcy5kaXNwbGF5T2JqZWN0SFRNTEVsZW1lbnRNYXA9bmV3IFdlYWtNYXB9cmV0dXJuKDAsT3QuWikodCxbe2tleToiam9pblRyYW5zZm9ybU1hdHJpeCIsdmFsdWU6ZnVuY3Rpb24obil7dmFyIHI9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOlswLDAsMF07cmV0dXJuIm1hdHJpeCgiLmNvbmNhdChbblswXSxuWzFdLG5bNF0sbls1XSxuWzEyXStyWzBdLG5bMTNdK3JbMV1dLmpvaW4oIiwiKSwiKSIpfX0se2tleToiYXBwbHkiLHZhbHVlOmZ1bmN0aW9uKG4scil7dmFyIGk9dGhpcyxhPW4uY2FtZXJhLG89bi5yZW5kZXJpbmdDb250ZXh0LHM9bi5yZW5kZXJpbmdTZXJ2aWNlO3RoaXMuY29udGV4dD1uO3ZhciBjPW8ucm9vdC5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LGw9Yy5jb250ZXh0LmV2ZW50U2VydmljZS5uYXRpdmVIVE1MTWFwLHU9ZnVuY3Rpb24oYix4KXt4LnN0eWxlLnRyYW5zZm9ybT1pLmpvaW5UcmFuc2Zvcm1NYXRyaXgoYi5nZXRXb3JsZFRyYW5zZm9ybSgpLGIuZ2V0T3JpZ2luKCkpfSxmPWZ1bmN0aW9uKGIpe3ZhciB4PWIudGFyZ2V0O2lmKHgubm9kZU5hbWU9PT1kdC5IVE1MKXtpLiRjYW1lcmF8fChpLiRjYW1lcmE9aS5jcmVhdGVDYW1lcmEoYSkpO3ZhciBfPWkuZ2V0T3JDcmVhdGVFbCh4KTtpLiRjYW1lcmEuYXBwZW5kQ2hpbGQoXyksT2JqZWN0LmtleXMoeC5hdHRyaWJ1dGVzKS5mb3JFYWNoKGZ1bmN0aW9uKHcpe2kudXBkYXRlQXR0cmlidXRlKHcseCl9KSx1KHgsXyksbC5zZXQoXyx4KX19LGQ9ZnVuY3Rpb24oYil7dmFyIHg9Yi50YXJnZXQ7aWYoeC5ub2RlTmFtZT09PWR0LkhUTUwmJmkuJGNhbWVyYSl7dmFyIF89aS5nZXRPckNyZWF0ZUVsKHgpO18mJihfLnJlbW92ZSgpLGwuZGVsZXRlKF8pKX19LGg9ZnVuY3Rpb24oYil7dmFyIHg9Yi50YXJnZXQ7aWYoeC5ub2RlTmFtZT09PWR0LkhUTUwpe3ZhciBfPWIuYXR0ck5hbWU7aS51cGRhdGVBdHRyaWJ1dGUoXyx4KX19LHY9ZnVuY3Rpb24oYil7dmFyIHg9Yi50YXJnZXQsXz14Lm5vZGVOYW1lPT09ZHQuRlJBR01FTlQ/eC5jaGlsZE5vZGVzOlt4XTtfLmZvckVhY2goZnVuY3Rpb24odyl7aWYody5ub2RlTmFtZT09PWR0LkhUTUwpe3ZhciBPPWkuZ2V0T3JDcmVhdGVFbCh3KTt1KHcsTyl9fSl9LGc9ZnVuY3Rpb24oKXtpZihpLiRjYW1lcmEpe3ZhciBiPWkuY29udGV4dC5jb25maWcseD1iLndpZHRoLF89Yi5oZWlnaHQ7aS4kY2FtZXJhLnBhcmVudEVsZW1lbnQuc3R5bGUud2lkdGg9IiIuY29uY2F0KHh8fDAsInB4IiksaS4kY2FtZXJhLnBhcmVudEVsZW1lbnQuc3R5bGUuaGVpZ2h0PSIiLmNvbmNhdChffHwwLCJweCIpfX07cy5ob29rcy5pbml0LnRhcCh0LnRhZyxmdW5jdGlvbigpe2MuYWRkRXZlbnRMaXN0ZW5lcih2by5SRVNJWkUsZyksYy5hZGRFdmVudExpc3RlbmVyKCRlLk1PVU5URUQsZiksYy5hZGRFdmVudExpc3RlbmVyKCRlLlVOTU9VTlRFRCxkKSxjLmFkZEV2ZW50TGlzdGVuZXIoJGUuQVRUUl9NT0RJRklFRCxoKSxjLmFkZEV2ZW50TGlzdGVuZXIoJGUuQk9VTkRTX0NIQU5HRUQsdil9KSxzLmhvb2tzLmVuZEZyYW1lLnRhcCh0LnRhZyxmdW5jdGlvbigpe2kuJGNhbWVyYSYmby5yZW5kZXJSZWFzb25zLmhhcyhLYy5DQU1FUkFfQ0hBTkdFRCkmJihpLiRjYW1lcmEuc3R5bGUudHJhbnNmb3JtPWkuam9pblRyYW5zZm9ybU1hdHJpeChhLmdldE9ydGhvTWF0cml4KCkpKX0pLHMuaG9va3MuZGVzdHJveS50YXAodC50YWcsZnVuY3Rpb24oKXtpLiRjYW1lcmEmJmkuJGNhbWVyYS5yZW1vdmUoKSxjLnJlbW92ZUV2ZW50TGlzdGVuZXIodm8uUkVTSVpFLGcpLGMucmVtb3ZlRXZlbnRMaXN0ZW5lcigkZS5NT1VOVEVELGYpLGMucmVtb3ZlRXZlbnRMaXN0ZW5lcigkZS5VTk1PVU5URUQsZCksYy5yZW1vdmVFdmVudExpc3RlbmVyKCRlLkFUVFJfTU9ESUZJRUQsaCksYy5yZW1vdmVFdmVudExpc3RlbmVyKCRlLkJPVU5EU19DSEFOR0VELHYpfSl9fSx7a2V5OiJjcmVhdGVDYW1lcmEiLHZhbHVlOmZ1bmN0aW9uKG4pe3ZhciByPXRoaXMuY29udGV4dC5jb25maWcsaT1yLmRvY3VtZW50LGE9ci53aWR0aCxvPXIuaGVpZ2h0LHM9dGhpcy5jb250ZXh0LmNvbnRleHRTZXJ2aWNlLmdldERvbUVsZW1lbnQoKSxjPXMucGFyZW50Tm9kZTtpZihjKXt2YXIgbD15Rix1PWMucXVlcnlTZWxlY3RvcigiIyIuY29uY2F0KGwpKTtpZighdSl7dmFyIGY9KGl8fGRvY3VtZW50KS5jcmVhdGVFbGVtZW50KCJkaXYiKTtmLnN0eWxlLm92ZXJmbG93PSJoaWRkZW4iLGYuc3R5bGUucG9pbnRlckV2ZW50cz0ibm9uZSIsZi5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLGYuc3R5bGUubGVmdD0iMHB4IixmLnN0eWxlLnRvcD0iMHB4IixmLnN0eWxlLndpZHRoPSIiLmNvbmNhdChhfHwwLCJweCIpLGYuc3R5bGUuaGVpZ2h0PSIiLmNvbmNhdChvfHwwLCJweCIpO3ZhciBkPShpfHxkb2N1bWVudCkuY3JlYXRlRWxlbWVudCgiZGl2Iik7dT1kLGQuaWQ9bCxkLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsZC5zdHlsZS5sZWZ0PSIiLmNvbmNhdChzLm9mZnNldExlZnR8fDAsInB4IiksZC5zdHlsZS50b3A9IiIuY29uY2F0KHMub2Zmc2V0VG9wfHwwLCJweCIpLGQuc3R5bGUudHJhbnNmb3JtT3JpZ2luPSJsZWZ0IHRvcCIsZC5zdHlsZS50cmFuc2Zvcm09dGhpcy5qb2luVHJhbnNmb3JtTWF0cml4KG4uZ2V0T3J0aG9NYXRyaXgoKSksZC5zdHlsZS5wb2ludGVyRXZlbnRzPSJub25lIixkLnN0eWxlLndpZHRoPSIxMDAlIixkLnN0eWxlLmhlaWdodD0iMTAwJSIsZi5hcHBlbmRDaGlsZChkKSxjLmFwcGVuZENoaWxkKGYpfXJldHVybiB1fXJldHVybiBudWxsfX0se2tleToiZ2V0T3JDcmVhdGVFbCIsdmFsdWU6ZnVuY3Rpb24obil7dmFyIHI9dGhpcy5jb250ZXh0LmNvbmZpZy5kb2N1bWVudCxpPXRoaXMuZGlzcGxheU9iamVjdEhUTUxFbGVtZW50TWFwLmdldChuKTtyZXR1cm4gaXx8KGk9KHJ8fGRvY3VtZW50KS5jcmVhdGVFbGVtZW50KCJkaXYiKSxuLnBhcnNlZFN0eWxlLiRlbD1pLHRoaXMuZGlzcGxheU9iamVjdEhUTUxFbGVtZW50TWFwLnNldChuLGkpLG4uaWQmJihpLmlkPW4uaWQpLG4ubmFtZSYmaS5zZXRBdHRyaWJ1dGUoIm5hbWUiLG4ubmFtZSksbi5jbGFzc05hbWUmJihpLmNsYXNzTmFtZT1uLmNsYXNzTmFtZSksaS5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLGkuc3R5bGVbIndpbGwtY2hhbmdlIl09InRyYW5zZm9ybSIsaS5zdHlsZS50cmFuc2Zvcm09dGhpcy5qb2luVHJhbnNmb3JtTWF0cml4KG4uZ2V0V29ybGRUcmFuc2Zvcm0oKSxuLmdldE9yaWdpbigpKSksaX19LHtrZXk6InVwZGF0ZUF0dHJpYnV0ZSIsdmFsdWU6ZnVuY3Rpb24obixyKXt2YXIgaT10aGlzLmdldE9yQ3JlYXRlRWwocik7c3dpdGNoKG4pe2Nhc2UiaW5uZXJIVE1MIjp2YXIgYT1yLnBhcnNlZFN0eWxlLmlubmVySFRNTDtpcihhKT9pLmlubmVySFRNTD1hOihpLmlubmVySFRNTD0iIixpLmFwcGVuZENoaWxkKGEpKTticmVhaztjYXNlIngiOmkuc3R5bGUubGVmdD0iIi5jb25jYXQoci5wYXJzZWRTdHlsZS54LCJweCIpO2JyZWFrO2Nhc2UieSI6aS5zdHlsZS50b3A9IiIuY29uY2F0KHIucGFyc2VkU3R5bGUueSwicHgiKTticmVhaztjYXNlInRyYW5zZm9ybU9yaWdpbiI6dmFyIG89ci5wYXJzZWRTdHlsZS50cmFuc2Zvcm1PcmlnaW47aS5zdHlsZVsidHJhbnNmb3JtLW9yaWdpbiJdPSIiLmNvbmNhdChvWzBdLmJ1aWxkQ1NTVGV4dChudWxsLG51bGwsIiIpLCIgIikuY29uY2F0KG9bMV0uYnVpbGRDU1NUZXh0KG51bGwsbnVsbCwiIikpO2JyZWFrO2Nhc2Uid2lkdGgiOnZhciBzPXIucGFyc2VkU3R5bGUud2lkdGg7aS5zdHlsZS53aWR0aD1WbihzKT8iIi5jb25jYXQocywicHgiKTpzLnRvU3RyaW5nKCk7YnJlYWs7Y2FzZSJoZWlnaHQiOnZhciBjPXIucGFyc2VkU3R5bGUuaGVpZ2h0O2kuc3R5bGUuaGVpZ2h0PVZuKGMpPyIiLmNvbmNhdChjLCJweCIpOmMudG9TdHJpbmcoKTticmVhaztjYXNlInpJbmRleCI6dmFyIGw9ci5wYXJzZWRTdHlsZS56SW5kZXg7aS5zdHlsZVsiei1pbmRleCJdPSIiLmNvbmNhdChsKTticmVhaztjYXNlInZpc2liaWxpdHkiOnZhciB1PXIucGFyc2VkU3R5bGUudmlzaWJpbGl0eTtpLnN0eWxlLnZpc2liaWxpdHk9dTticmVhaztjYXNlInBvaW50ZXJFdmVudHMiOnZhciBmPXIucGFyc2VkU3R5bGUucG9pbnRlckV2ZW50cyxkPWY9PT12b2lkIDA/ImF1dG8iOmY7aS5zdHlsZS5wb2ludGVyRXZlbnRzPWQ7YnJlYWs7Y2FzZSJvcGFjaXR5Ijp2YXIgaD1yLnBhcnNlZFN0eWxlLm9wYWNpdHk7aS5zdHlsZS5vcGFjaXR5PSIiLmNvbmNhdChoKTticmVhaztjYXNlImZpbGwiOnZhciB2PXIucGFyc2VkU3R5bGUuZmlsbCxnPSIiO0RmKHYpP3YuaXNOb25lP2c9InRyYW5zcGFyZW50IjpnPXIuZ2V0QXR0cmlidXRlKCJmaWxsIik6QXJyYXkuaXNBcnJheSh2KT9nPXIuZ2V0QXR0cmlidXRlKCJmaWxsIik6VXModiksaS5zdHlsZS5iYWNrZ3JvdW5kPWc7YnJlYWs7Y2FzZSJzdHJva2UiOnZhciB5PXIucGFyc2VkU3R5bGUuc3Ryb2tlLGI9IiI7RGYoeSk/eS5pc05vbmU/Yj0idHJhbnNwYXJlbnQiOmI9ci5nZXRBdHRyaWJ1dGUoInN0cm9rZSIpOkFycmF5LmlzQXJyYXkoeSk/Yj1yLmdldEF0dHJpYnV0ZSgic3Ryb2tlIik6VXMoeSksaS5zdHlsZVsiYm9yZGVyLWNvbG9yIl09YixpLnN0eWxlWyJib3JkZXItc3R5bGUiXT0ic29saWQiO2JyZWFrO2Nhc2UibGluZVdpZHRoIjp2YXIgeD1yLnBhcnNlZFN0eWxlLmxpbmVXaWR0aDtpLnN0eWxlWyJib3JkZXItd2lkdGgiXT0iIi5jb25jYXQoeHx8MCwicHgiKTticmVhaztjYXNlImxpbmVEYXNoIjppLnN0eWxlWyJib3JkZXItc3R5bGUiXT0iZGFzaGVkIjticmVhaztjYXNlImZpbHRlciI6dmFyIF89ci5zdHlsZS5maWx0ZXI7aS5zdHlsZS5maWx0ZXI9XzticmVhaztkZWZhdWx0OiFnZShyLnN0eWxlW25dKSYmci5zdHlsZVtuXSE9PSIiJiYoaS5zdHlsZVtuXT1yLnN0eWxlW25dKX19fV0pfSgpO3lBLnRhZz0iSFRNTFJlbmRlcmluZyI7dmFyIG1GPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt2YXIgbjsoMCx4dC5aKSh0aGlzLGUpO2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoLGk9bmV3IEFycmF5KHIpLGE9MDthPHI7YSsrKWlbYV09YXJndW1lbnRzW2FdO3JldHVybiBuPSgwLERlLlopKHRoaXMsZSxbXS5jb25jYXQoaSkpLG4ubmFtZT0iaHRtbC1yZW5kZXJlciIsbn1yZXR1cm4oMCxNZS5aKShlLHQpLCgwLE90LlopKGUsW3trZXk6ImluaXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5hZGRSZW5kZXJpbmdQbHVnaW4obmV3IHlBKX19LHtrZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBbGxSZW5kZXJpbmdQbHVnaW5zKCl9fV0pfShpcyk7dmFyIGJGPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlKXsoMCx4dC5aKSh0aGlzLHQpLHRoaXMucmVuZGVyaW5nQ29udGV4dD1lLnJlbmRlcmluZ0NvbnRleHQsdGhpcy5jYW52YXNDb25maWc9ZS5jb25maWd9cmV0dXJuKDAsT3QuWikodCxbe2tleToiaW5pdCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgbj10aGlzLmNhbnZhc0NvbmZpZyxyPW4uY29udGFpbmVyLGk9bi5jYW52YXM7aWYoaSl0aGlzLiRjYW52YXM9aSxyJiZpLnBhcmVudEVsZW1lbnQhPT1yJiZyLmFwcGVuZENoaWxkKGkpLHRoaXMuJGNvbnRhaW5lcj1pLnBhcmVudEVsZW1lbnQsdGhpcy5jYW52YXNDb25maWcuY29udGFpbmVyPXRoaXMuJGNvbnRhaW5lcjtlbHNlIGlmKHImJih0aGlzLiRjb250YWluZXI9aXIocik/ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocik6cix0aGlzLiRjb250YWluZXIpKXt2YXIgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTt0aGlzLiRjb250YWluZXIuYXBwZW5kQ2hpbGQoYSksdGhpcy4kY29udGFpbmVyLnN0eWxlLnBvc2l0aW9ufHwodGhpcy4kY29udGFpbmVyLnN0eWxlLnBvc2l0aW9uPSJyZWxhdGl2ZSIpLHRoaXMuJGNhbnZhcz1hfXRoaXMuY29udGV4dD10aGlzLiRjYW52YXMuZ2V0Q29udGV4dCgiMmQiKSx0aGlzLnJlc2l6ZSh0aGlzLmNhbnZhc0NvbmZpZy53aWR0aCx0aGlzLmNhbnZhc0NvbmZpZy5oZWlnaHQpfX0se2tleToiZ2V0Q29udGV4dCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb250ZXh0fX0se2tleToiZ2V0RG9tRWxlbWVudCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kY2FudmFzfX0se2tleToiZ2V0RFBSIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRwcn19LHtrZXk6ImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsdmFsdWU6ZnVuY3Rpb24oKXtpZih0aGlzLiRjYW52YXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KXJldHVybiB0aGlzLiRjYW52YXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCl9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuJGNvbnRhaW5lciYmdGhpcy4kY2FudmFzJiZ0aGlzLiRjYW52YXMucGFyZW50Tm9kZSYmdGhpcy4kY29udGFpbmVyLnJlbW92ZUNoaWxkKHRoaXMuJGNhbnZhcyl9fSx7a2V5OiJyZXNpemUiLHZhbHVlOmZ1bmN0aW9uKG4scil7dmFyIGk9dGhpcy5jYW52YXNDb25maWcuZGV2aWNlUGl4ZWxSYXRpbzt0aGlzLmRwcj1pLHRoaXMuJGNhbnZhcyYmKHRoaXMuJGNhbnZhcy53aWR0aD10aGlzLmRwcipuLHRoaXMuJGNhbnZhcy5oZWlnaHQ9dGhpcy5kcHIqcixGMih0aGlzLiRjYW52YXMsbixyKSksdGhpcy5yZW5kZXJpbmdDb250ZXh0LnJlbmRlclJlYXNvbnMuYWRkKEtjLkNBTUVSQV9DSEFOR0VEKX19LHtrZXk6ImFwcGx5Q3Vyc29yU3R5bGUiLHZhbHVlOmZ1bmN0aW9uKG4pe3RoaXMuJGNvbnRhaW5lciYmdGhpcy4kY29udGFpbmVyLnN0eWxlJiYodGhpcy4kY29udGFpbmVyLnN0eWxlLmN1cnNvcj1uKX19LHtrZXk6InRvRGF0YVVSTCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT0oMCxvby5aKSgoMCxNbi5aKSgpLm1hcmsoZnVuY3Rpb24gcigpe3ZhciBpLGEsbyxzPWFyZ3VtZW50cztyZXR1cm4oMCxNbi5aKSgpLndyYXAoZnVuY3Rpb24obCl7Zm9yKDs7KXN3aXRjaChsLnByZXY9bC5uZXh0KXtjYXNlIDA6cmV0dXJuIGk9cy5sZW5ndGg+MCYmc1swXSE9PXZvaWQgMD9zWzBdOnt9LGE9aS50eXBlLG89aS5lbmNvZGVyT3B0aW9ucyxsLmFicnVwdCgicmV0dXJuIix0aGlzLmNvbnRleHQuY2FudmFzLnRvRGF0YVVSTChhLG8pKTtjYXNlIDM6Y2FzZSJlbmQiOnJldHVybiBsLnN0b3AoKX19LHIsdGhpcyl9KSk7ZnVuY3Rpb24gbigpe3JldHVybiBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gbn0oKX1dKX0oKSx4Rj1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dmFyIG47KDAseHQuWikodGhpcyxlKTtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aCxpPW5ldyBBcnJheShyKSxhPTA7YTxyO2ErKylpW2FdPWFyZ3VtZW50c1thXTtyZXR1cm4gbj0oMCxEZS5aKSh0aGlzLGUsW10uY29uY2F0KGkpKSxuLm5hbWU9ImNhbnZhcy1jb250ZXh0LXJlZ2lzdGVyIixufXJldHVybigwLE1lLlopKGUsdCksKDAsT3QuWikoZSxbe2tleToiaW5pdCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmNvbnRleHQuQ29udGV4dFNlcnZpY2U9YkZ9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe2RlbGV0ZSB0aGlzLmNvbnRleHQuQ29udGV4dFNlcnZpY2V9fV0pfShpcyksbUE9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShuKXt2YXIgcjtyZXR1cm4oMCx4dC5aKSh0aGlzLGUpLHI9KDAsRGUuWikodGhpcyxlLFtuXSksci5yZWdpc3RlclBsdWdpbihuZXcgeEYpLHIucmVnaXN0ZXJQbHVnaW4obmV3IGxGKSxyLnJlZ2lzdGVyUGx1Z2luKG5ldyB6aiksci5yZWdpc3RlclBsdWdpbihuZXcgdkYpLHIucmVnaXN0ZXJQbHVnaW4obmV3IGdGKSxyLnJlZ2lzdGVyUGx1Z2luKG5ldyBhRiksci5yZWdpc3RlclBsdWdpbihuZXcgbUYpLHJ9cmV0dXJuKDAsTWUuWikoZSx0KSwoMCxPdC5aKShlKX0obXgpO3ZhciBiQT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7KDAseHQuWikodGhpcyx0KSx0aGlzLmRyYWduZHJvcFBsdWdpbk9wdGlvbnM9ZX1yZXR1cm4oMCxPdC5aKSh0LFt7a2V5OiJhcHBseSIsdmFsdWU6ZnVuY3Rpb24obil7dmFyIHI9dGhpcyxpPW4ucmVuZGVyaW5nU2VydmljZSxhPW4ucmVuZGVyaW5nQ29udGV4dCxvPWEucm9vdC5vd25lckRvY3VtZW50LHM9by5kZWZhdWx0VmlldyxjPWZ1bmN0aW9uKHUpe3ZhciBmPXUudGFyZ2V0LGQ9Zj09PW8saD1kJiZyLmRyYWduZHJvcFBsdWdpbk9wdGlvbnMuaXNEb2N1bWVudERyYWdnYWJsZT9vOmYuY2xvc2VzdCYmZi5jbG9zZXN0KCJbZHJhZ2dhYmxlPXRydWVdIik7aWYoaCl7dmFyIHY9ITEsZz11LnRpbWVTdGFtcCx5PVt1LmNsaWVudFgsdS5jbGllbnRZXSxiPW51bGwseD1bdS5jbGllbnRYLHUuY2xpZW50WV0sXz1mdW5jdGlvbigpe3ZhciBPPSgwLG9vLlopKCgwLE1uLlopKCkubWFyayhmdW5jdGlvbiBFKE0pe3ZhciBrLEEsUCxDLE4sTDtyZXR1cm4oMCxNbi5aKSgpLndyYXAoZnVuY3Rpb24oSSl7Zm9yKDs7KXN3aXRjaChJLnByZXY9SS5uZXh0KXtjYXNlIDA6aWYodil7SS5uZXh0PTg7YnJlYWt9aWYoaz1NLnRpbWVTdGFtcC1nLEE9WmkoW00uY2xpZW50WCxNLmNsaWVudFldLHkpLCEoazw9ci5kcmFnbmRyb3BQbHVnaW5PcHRpb25zLmRyYWdzdGFydFRpbWVUaHJlc2hvbGR8fEE8PXIuZHJhZ25kcm9wUGx1Z2luT3B0aW9ucy5kcmFnc3RhcnREaXN0YW5jZVRocmVzaG9sZCkpe0kubmV4dD01O2JyZWFrfXJldHVybiBJLmFicnVwdCgicmV0dXJuIik7Y2FzZSA1Ok0udHlwZT0iZHJhZ3N0YXJ0IixoLmRpc3BhdGNoRXZlbnQoTSksdj0hMDtjYXNlIDg6aWYoTS50eXBlPSJkcmFnIixNLmR4PU0uY2xpZW50WC14WzBdLE0uZHk9TS5jbGllbnRZLXhbMV0saC5kaXNwYXRjaEV2ZW50KE0pLHg9W00uY2xpZW50WCxNLmNsaWVudFldLGQpe0kubmV4dD0yMTticmVha31yZXR1cm4gUD1yLmRyYWduZHJvcFBsdWdpbk9wdGlvbnMub3ZlcmxhcD09PSJwb2ludGVyIj9bTS5jYW52YXNYLE0uY2FudmFzWV06Zi5nZXRCb3VuZHMoKS5jZW50ZXIsSS5uZXh0PTE3LG8uZWxlbWVudHNGcm9tUG9pbnQoUFswXSxQWzFdKTtjYXNlIDE3OkM9SS5zZW50LE49Q1tDLmluZGV4T2YoZikrMV0sTD0oTj09bnVsbD92b2lkIDA6Ti5jbG9zZXN0KCJbZHJvcHBhYmxlPXRydWVdIikpfHwoci5kcmFnbmRyb3BQbHVnaW5PcHRpb25zLmlzRG9jdW1lbnREcm9wcGFibGU/bzpudWxsKSxiIT09TCYmKGImJihNLnR5cGU9ImRyYWdsZWF2ZSIsTS50YXJnZXQ9YixiLmRpc3BhdGNoRXZlbnQoTSkpLEwmJihNLnR5cGU9ImRyYWdlbnRlciIsTS50YXJnZXQ9TCxMLmRpc3BhdGNoRXZlbnQoTSkpLGI9TCxiJiYoTS50eXBlPSJkcmFnb3ZlciIsTS50YXJnZXQ9YixiLmRpc3BhdGNoRXZlbnQoTSkpKTtjYXNlIDIxOmNhc2UiZW5kIjpyZXR1cm4gSS5zdG9wKCl9fSxFKX0pKTtyZXR1cm4gZnVuY3Rpb24oTSl7cmV0dXJuIE8uYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKTtzLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJtb3ZlIixfKTt2YXIgdz1mdW5jdGlvbihFKXtpZih2KXtFLmRldGFpbD17cHJldmVudENsaWNrOiEwfTt2YXIgTT1FLmNsb25lKCk7YiYmKE0udHlwZT0iZHJvcCIsTS50YXJnZXQ9YixiLmRpc3BhdGNoRXZlbnQoTSkpLE0udHlwZT0iZHJhZ2VuZCIsaC5kaXNwYXRjaEV2ZW50KE0pLHY9ITF9cy5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsXyl9O2YuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIix3LHtvbmNlOiEwfSksZi5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVydXBvdXRzaWRlIix3LHtvbmNlOiEwfSl9fTtpLmhvb2tzLmluaXQudGFwKHQudGFnLGZ1bmN0aW9uKCl7cy5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsYyl9KSxpLmhvb2tzLmRlc3Ryb3kudGFwKHQudGFnLGZ1bmN0aW9uKCl7cy5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsYyl9KX19XSl9KCk7YkEudGFnPSJEcmFnbmRyb3AiO3ZhciB4QT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dmFyIG4scj1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXZvaWQgMD9hcmd1bWVudHNbMF06e307cmV0dXJuKDAseHQuWikodGhpcyxlKSxuPSgwLERlLlopKHRoaXMsZSksbi5uYW1lPSJkcmFnbmRyb3AiLG4ub3B0aW9ucz1yLG59cmV0dXJuKDAsTWUuWikoZSx0KSwoMCxPdC5aKShlLFt7a2V5OiJpbml0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuYWRkUmVuZGVyaW5nUGx1Z2luKG5ldyBiQSgoMCxFZS5aKSh7b3ZlcmxhcDoicG9pbnRlciIsaXNEb2N1bWVudERyYWdnYWJsZTohMSxpc0RvY3VtZW50RHJvcHBhYmxlOiExLGRyYWdzdGFydERpc3RhbmNlVGhyZXNob2xkOjAsZHJhZ3N0YXJ0VGltZVRocmVzaG9sZDowfSx0aGlzLm9wdGlvbnMpKSl9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMucmVtb3ZlQWxsUmVuZGVyaW5nUGx1Z2lucygpfX0se2tleToic2V0T3B0aW9ucyIsdmFsdWU6ZnVuY3Rpb24ocil7T2JqZWN0LmFzc2lnbih0aGlzLnBsdWdpbnNbMF0uZHJhZ25kcm9wUGx1Z2luT3B0aW9ucyxyKX19XSl9KGlzKTtmdW5jdGlvbiBfRih0LGUsbil7dmFyIHI7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGk9dGhpcyxhPWFyZ3VtZW50cyxvPWZ1bmN0aW9uKCl7cj1udWxsLG58fHQuYXBwbHkoaSxhKX0scz1uJiYhcjtjbGVhclRpbWVvdXQocikscj1zZXRUaW1lb3V0KG8sZSkscyYmdC5hcHBseShpLGEpfX12YXIgX0E9X0Ysd0Y9ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0PT0ib2JqZWN0IiYmdCE9PW51bGx9LFZfPXdGLE9GPWZ1bmN0aW9uKHQpe2lmKCFWXyh0KXx8IWZmKHQsIk9iamVjdCIpKXJldHVybiExO2lmKE9iamVjdC5nZXRQcm90b3R5cGVPZih0KT09PW51bGwpcmV0dXJuITA7Zm9yKHZhciBlPXQ7T2JqZWN0LmdldFByb3RvdHlwZU9mKGUpIT09bnVsbDspZT1PYmplY3QuZ2V0UHJvdG90eXBlT2YoZSk7cmV0dXJuIE9iamVjdC5nZXRQcm90b3R5cGVPZih0KT09PWV9LG5jPU9GLFNGPTU7ZnVuY3Rpb24gRUYodCxlKXtpZihPYmplY3QuaGFzT3duKXJldHVybiBPYmplY3QuaGFzT3duKHQsZSk7aWYodD09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY29udmVydCB1bmRlZmluZWQgb3IgbnVsbCB0byBvYmplY3QiKTtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKE9iamVjdCh0KSxlKX1mdW5jdGlvbiB3QSh0LGUsbixyKXtuPW58fDAscj1yfHxTRjtmb3IodmFyIGkgaW4gZSlpZihFRihlLGkpKXt2YXIgYT1lW2ldO2EhPT1udWxsJiZuYyhhKT8obmModFtpXSl8fCh0W2ldPXt9KSxuPHI/d0EodFtpXSxhLG4rMSxyKTp0W2ldPWVbaV0pOk5yKGEpPyh0W2ldPVtdLHRbaV09dFtpXS5jb25jYXQoYSkpOmEhPT12b2lkIDAmJih0W2ldPWEpfX12YXIgTUY9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPVtdLG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKWVbbi0xXT1hcmd1bWVudHNbbl07Zm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKz0xKXdBKHQsZVtyXSk7cmV0dXJuIHR9LG10PU1GO2NsYXNzIGtGIGV4dGVuZHMgTWFwe2NvbnN0cnVjdG9yKGUsbj1FQSl7aWYoc3VwZXIoKSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyh0aGlzLHtfaW50ZXJuOnt2YWx1ZTpuZXcgTWFwfSxfa2V5Ont2YWx1ZTpufX0pLGUhPW51bGwpZm9yKGNvbnN0W3IsaV1vZiBlKXRoaXMuc2V0KHIsaSl9Z2V0KGUpe3JldHVybiBzdXBlci5nZXQoWF8odGhpcyxlKSl9aGFzKGUpe3JldHVybiBzdXBlci5oYXMoWF8odGhpcyxlKSl9c2V0KGUsbil7cmV0dXJuIHN1cGVyLnNldChPQSh0aGlzLGUpLG4pfWRlbGV0ZShlKXtyZXR1cm4gc3VwZXIuZGVsZXRlKFNBKHRoaXMsZSkpfX1jbGFzcyBGYXQgZXh0ZW5kcyBudWxse2NvbnN0cnVjdG9yKGUsbj1FQSl7aWYoc3VwZXIoKSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyh0aGlzLHtfaW50ZXJuOnt2YWx1ZTpuZXcgTWFwfSxfa2V5Ont2YWx1ZTpufX0pLGUhPW51bGwpZm9yKGNvbnN0IHIgb2YgZSl0aGlzLmFkZChyKX1oYXMoZSl7cmV0dXJuIHN1cGVyLmhhcyhYXyh0aGlzLGUpKX1hZGQoZSl7cmV0dXJuIHN1cGVyLmFkZChPQSh0aGlzLGUpKX1kZWxldGUoZSl7cmV0dXJuIHN1cGVyLmRlbGV0ZShTQSh0aGlzLGUpKX19ZnVuY3Rpb24gWF8oe19pbnRlcm46dCxfa2V5OmV9LG4pe2NvbnN0IHI9ZShuKTtyZXR1cm4gdC5oYXMocik/dC5nZXQocik6bn1mdW5jdGlvbiBPQSh7X2ludGVybjp0LF9rZXk6ZX0sbil7Y29uc3Qgcj1lKG4pO3JldHVybiB0LmhhcyhyKT90LmdldChyKToodC5zZXQocixuKSxuKX1mdW5jdGlvbiBTQSh7X2ludGVybjp0LF9rZXk6ZX0sbil7Y29uc3Qgcj1lKG4pO3JldHVybiB0LmhhcyhyKSYmKG49dC5nZXQociksdC5kZWxldGUocikpLG59ZnVuY3Rpb24gRUEodCl7cmV0dXJuIHQhPT1udWxsJiZ0eXBlb2YgdD09Im9iamVjdCI/dC52YWx1ZU9mKCk6dH1mdW5jdGlvbiB3cCh0KXtyZXR1cm4gdH1mdW5jdGlvbiBkcih0LC4uLmUpe3JldHVybiBWZih0LHdwLHdwLGUpfWZ1bmN0aW9uIFF5KHQsLi4uZSl7cmV0dXJuIFZmKHQsQXJyYXkuZnJvbSx3cCxlKX1mdW5jdGlvbiBNQSh0LGUpe2ZvcihsZXQgbj0xLHI9ZS5sZW5ndGg7bjxyOysrbil0PXQuZmxhdE1hcChpPT5pLnBvcCgpLm1hcCgoW2Esb10pPT5bLi4uaSxhLG9dKSk7cmV0dXJuIHR9ZnVuY3Rpb24gQmF0KHQsLi4uZSl7cmV0dXJuIE1BKFF5KHQsLi4uZSksZSl9ZnVuY3Rpb24gemF0KHQsZSwuLi5uKXtyZXR1cm4gTUEoSnkodCxlLC4uLm4pLG4pfWZ1bmN0aW9uIFVfKHQsZSwuLi5uKXtyZXR1cm4gVmYodCx3cCxlLG4pfWZ1bmN0aW9uIEp5KHQsZSwuLi5uKXtyZXR1cm4gVmYodCxBcnJheS5mcm9tLGUsbil9ZnVuY3Rpb24gV2F0KHQsLi4uZSl7cmV0dXJuIFZmKHQsaWRlbnRpdHksa0EsZSl9ZnVuY3Rpb24gR2F0KHQsLi4uZSl7cmV0dXJuIFZmKHQsQXJyYXkuZnJvbSxrQSxlKX1mdW5jdGlvbiBrQSh0KXtpZih0Lmxlbmd0aCE9PTEpdGhyb3cgbmV3IEVycm9yKCJkdXBsaWNhdGUga2V5Iik7cmV0dXJuIHRbMF19ZnVuY3Rpb24gVmYodCxlLG4scil7cmV0dXJuIGZ1bmN0aW9uIGkoYSxvKXtpZihvPj1yLmxlbmd0aClyZXR1cm4gbihhKTtjb25zdCBzPW5ldyBrRixjPXJbbysrXTtsZXQgbD0tMTtmb3IoY29uc3QgdSBvZiBhKXtjb25zdCBmPWModSwrK2wsYSksZD1zLmdldChmKTtkP2QucHVzaCh1KTpzLnNldChmLFt1XSl9Zm9yKGNvbnN0W3UsZl1vZiBzKXMuc2V0KHUsaShmLG8pKTtyZXR1cm4gZShzKX0odCwwKX12YXIgQUE9ZnVuY3Rpb24odCl7cmV0dXJuIGdlKHQpPyIiOnQudG9TdHJpbmcoKX0sQUY9ZnVuY3Rpb24odCl7dmFyIGU9QUEodCk7cmV0dXJuIGUuY2hhckF0KDApLnRvTG93ZXJDYXNlKCkrZS5zdWJzdHJpbmcoMSl9LFRBPUFGLFRGPWZ1bmN0aW9uKHQsZSxuLHIpe2Z1bmN0aW9uIGkoYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBuP2E6bmV3IG4oZnVuY3Rpb24obyl7byhhKX0pfXJldHVybiBuZXcobnx8KG49UHJvbWlzZSkpKGZ1bmN0aW9uKGEsbyl7ZnVuY3Rpb24gcyh1KXt0cnl7bChyLm5leHQodSkpfWNhdGNoKGYpe28oZil9fWZ1bmN0aW9uIGModSl7dHJ5e2woci50aHJvdyh1KSl9Y2F0Y2goZil7byhmKX19ZnVuY3Rpb24gbCh1KXt1LmRvbmU/YSh1LnZhbHVlKTppKHUudmFsdWUpLnRoZW4ocyxjKX1sKChyPXIuYXBwbHkodCxlfHxbXSkpLm5leHQoKSl9KX07ZnVuY3Rpb24gdXUodCl7cmV0dXJuIHR9ZnVuY3Rpb24gcV8odCl7cmV0dXJuIHQucmVkdWNlKChlLG4pPT4ociwuLi5pKT0+bihlKHIsLi4uaSksLi4uaSksdXUpfWZ1bmN0aW9uIFBGKHQpe3JldHVybiB0LnJlZHVjZSgoZSxuKT0+cj0+VEYodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2NvbnN0IGk9eWllbGQgZShyKTtyZXR1cm4gbihpKX0pLHV1KX1mdW5jdGlvbiBLXyh0KXtyZXR1cm4gdC5yZXBsYWNlKC8oIHxeKVthLXpdL2csZT0+ZS50b1VwcGVyQ2FzZSgpKX1mdW5jdGlvbiBYZih0PSIiKXt0aHJvdyBuZXcgRXJyb3IodCl9ZnVuY3Rpb24gUV8odCxlKXtjb25zdHthdHRyaWJ1dGVzOm59PWUscj1uZXcgU2V0KFsiaWQiLCJjbGFzc05hbWUiXSk7Zm9yKGNvbnN0W2ksYV1vZiBPYmplY3QuZW50cmllcyhuKSlyLmhhcyhpKXx8dC5hdHRyKGksYSl9ZnVuY3Rpb24gcW4odCl7cmV0dXJuIHQhPW51bGwmJiFOdW1iZXIuaXNOYU4odCl9ZnVuY3Rpb24gJGF0KHQsZSl7cmV0dXJuIHQrKGUtdCkqTWF0aC5yYW5kb20oKX1mdW5jdGlvbiBDRih0KXtjb25zdCBlPW5ldyBNYXA7cmV0dXJuIG49PntpZihlLmhhcyhuKSlyZXR1cm4gZS5nZXQobik7Y29uc3Qgcj10KG4pO3JldHVybiBlLnNldChuLHIpLHJ9fWZ1bmN0aW9uIExGKHQsZSl7Y29uc3R7dHJhbnNmb3JtOm59PXQuc3R5bGUsaT0oYT0+YT09PSJub25lInx8YT09PXZvaWQgMCkobik/IiI6bjt0LnN0eWxlLnRyYW5zZm9ybT1gJHtpfSAke2V9YC50cmltU3RhcnQoKX1mdW5jdGlvbiAkdCh0LGUpe3JldHVybiBQQSh0LGUpfHx7fX1mdW5jdGlvbiBQQSh0LGUpe2NvbnN0IG49T2JqZWN0LmVudHJpZXModHx8e30pLmZpbHRlcigoW3JdKT0+ci5zdGFydHNXaXRoKGUpKS5tYXAoKFtyLGldKT0+W1RBKHIucmVwbGFjZShlLCIiKS50cmltKCkpLGldKS5maWx0ZXIoKFtyXSk9PiEhcik7cmV0dXJuIG4ubGVuZ3RoPT09MD9udWxsOk9iamVjdC5mcm9tRW50cmllcyhuKX1mdW5jdGlvbiBaYXQodCxlKXtyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKHQpLm1hcCgoW24scl0pPT5bYCR7ZX0ke3VwcGVyRmlyc3Qobil9YCxyXSkpfWZ1bmN0aW9uIFJGKHQsZSl7cmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyh0KS5maWx0ZXIoKFtuXSk9PmUuZmluZChyPT5uLnN0YXJ0c1dpdGgocikpKSl9ZnVuY3Rpb24gSl8odCwuLi5lKXtyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKHQpLmZpbHRlcigoW25dKT0+ZS5ldmVyeShyPT4hbi5zdGFydHNXaXRoKHIpKSkpfWZ1bmN0aW9uIENBKHQsZSl7aWYodD09PXZvaWQgMClyZXR1cm4gbnVsbDtpZih0eXBlb2YgdD09Im51bWJlciIpcmV0dXJuIHQ7Y29uc3Qgbj0rdC5yZXBsYWNlKCIlIiwiIik7cmV0dXJuIE51bWJlci5pc05hTihuKT9udWxsOm4vMTAwKmV9ZnVuY3Rpb24gVWYodCl7cmV0dXJuIHR5cGVvZiB0PT0ib2JqZWN0IiYmISh0IGluc3RhbmNlb2YgRGF0ZSkmJnQhPT1udWxsJiYhQXJyYXkuaXNBcnJheSh0KX1mdW5jdGlvbiByYyh0KXtyZXR1cm4gdD09PW51bGx8fHQ9PT0hMX1mdW5jdGlvbiBMQSh0LGUsbj01LHI9MCl7aWYoIShyPj1uKSl7Zm9yKGNvbnN0IGkgb2YgT2JqZWN0LmtleXMoZSkpe2NvbnN0IGE9ZVtpXTshbmMoYSl8fCFuYyh0W2ldKT90W2ldPWE6TEEodFtpXSxhLG4scisxKX1yZXR1cm4gdH19ZnVuY3Rpb24gT2UodCl7cmV0dXJuIG5ldyBYcihbdF0sbnVsbCx0LHQub3duZXJEb2N1bWVudCl9Y2xhc3MgWHJ7Y29uc3RydWN0b3IoZT1udWxsLG49bnVsbCxyPW51bGwsaT1udWxsLGE9W251bGwsbnVsbCxudWxsLG51bGwsbnVsbF0sbz1bXSxzPVtdKXt0aGlzLl9lbGVtZW50cz1BcnJheS5mcm9tKGUpLHRoaXMuX2RhdGE9bix0aGlzLl9wYXJlbnQ9cix0aGlzLl9kb2N1bWVudD1pLHRoaXMuX2VudGVyPWFbMF0sdGhpcy5fdXBkYXRlPWFbMV0sdGhpcy5fZXhpdD1hWzJdLHRoaXMuX21lcmdlPWFbM10sdGhpcy5fc3BsaXQ9YVs0XSx0aGlzLl90cmFuc2l0aW9ucz1vLHRoaXMuX2ZhY2V0RWxlbWVudHM9c31zZWxlY3RBbGwoZSl7Y29uc3Qgbj10eXBlb2YgZT09InN0cmluZyI/dGhpcy5fcGFyZW50LnF1ZXJ5U2VsZWN0b3JBbGwoZSk6ZTtyZXR1cm4gbmV3IFhyKG4sbnVsbCx0aGlzLl9lbGVtZW50c1swXSx0aGlzLl9kb2N1bWVudCl9c2VsZWN0RmFjZXRBbGwoZSl7Y29uc3Qgbj10eXBlb2YgZT09InN0cmluZyI/dGhpcy5fcGFyZW50LnF1ZXJ5U2VsZWN0b3JBbGwoZSk6ZTtyZXR1cm4gbmV3IFhyKHRoaXMuX2VsZW1lbnRzLG51bGwsdGhpcy5fcGFyZW50LHRoaXMuX2RvY3VtZW50LHZvaWQgMCx2b2lkIDAsbil9c2VsZWN0KGUpe2NvbnN0IG49dHlwZW9mIGU9PSJzdHJpbmciP3RoaXMuX3BhcmVudC5xdWVyeVNlbGVjdG9yQWxsKGUpWzBdfHxudWxsOmU7cmV0dXJuIG5ldyBYcihbbl0sbnVsbCxuLHRoaXMuX2RvY3VtZW50KX1hcHBlbmQoZSl7Y29uc3Qgbj10eXBlb2YgZT09ImZ1bmN0aW9uIj9lOigpPT50aGlzLmNyZWF0ZUVsZW1lbnQoZSkscj1bXTtpZih0aGlzLl9kYXRhIT09bnVsbCl7Zm9yKGxldCBpPTA7aTx0aGlzLl9kYXRhLmxlbmd0aDtpKyspe2NvbnN0IGE9dGhpcy5fZGF0YVtpXSxbbyxzXT1BcnJheS5pc0FycmF5KGEpP2E6W2EsbnVsbF0sYz1uKG8saSk7Yy5fX2RhdGFfXz1vLHMhPT1udWxsJiYoYy5fX2Zyb21FbGVtZW50c19fPXMpLHRoaXMuX3BhcmVudC5hcHBlbmRDaGlsZChjKSxyLnB1c2goYyl9cmV0dXJuIG5ldyBYcihyLG51bGwsdGhpcy5fcGFyZW50LHRoaXMuX2RvY3VtZW50KX1lbHNle2ZvcihsZXQgaT0wO2k8dGhpcy5fZWxlbWVudHMubGVuZ3RoO2krKyl7Y29uc3QgYT10aGlzLl9lbGVtZW50c1tpXSxvPWEuX19kYXRhX18scz1uKG8saSk7YS5hcHBlbmRDaGlsZChzKSxyLnB1c2gocyl9cmV0dXJuIG5ldyBYcihyLG51bGwsclswXSx0aGlzLl9kb2N1bWVudCl9fW1heWJlQXBwZW5kKGUsbixyKXtjb25zdCBpPXRoaXMuX2VsZW1lbnRzWzBdLGE9aS5nZXRFbGVtZW50QnlJZChlKTtpZihhKXJldHVybiBuZXcgWHIoW2FdLG51bGwsdGhpcy5fcGFyZW50LHRoaXMuX2RvY3VtZW50KTtjb25zdCBvPXR5cGVvZiBuPT0ic3RyaW5nIj90aGlzLmNyZWF0ZUVsZW1lbnQobik6bigpO3JldHVybiBvLmlkPWUsciYmKG8uY2xhc3NOYW1lPXIpLGkuYXBwZW5kQ2hpbGQobyksbmV3IFhyKFtvXSxudWxsLHRoaXMuX3BhcmVudCx0aGlzLl9kb2N1bWVudCl9ZGF0YShlLG49aT0+aSxyPSgpPT5udWxsKXtjb25zdCBpPVtdLGE9W10sbz1uZXcgU2V0KHRoaXMuX2VsZW1lbnRzKSxzPVtdLGM9bmV3IFNldCxsPW5ldyBNYXAodGhpcy5fZWxlbWVudHMubWFwKChoLHYpPT5bbihoLl9fZGF0YV9fLHYpLGhdKSksdT1uZXcgTWFwKHRoaXMuX2ZhY2V0RWxlbWVudHMubWFwKChoLHYpPT5bbihoLl9fZGF0YV9fLHYpLGhdKSksZj1kcih0aGlzLl9lbGVtZW50cyxoPT5yKGguX19kYXRhX18pKTtmb3IobGV0IGg9MDtoPGUubGVuZ3RoO2grKyl7Y29uc3Qgdj1lW2hdLGc9bih2LGgpLHk9cih2LGgpO2lmKGwuaGFzKGcpKXtjb25zdCBiPWwuZ2V0KGcpO2IuX19kYXRhX189dixiLl9fZmFjZXRfXz0hMSxhLnB1c2goYiksby5kZWxldGUoYiksbC5kZWxldGUoZyl9ZWxzZSBpZih1LmhhcyhnKSl7Y29uc3QgYj11LmdldChnKTtiLl9fZGF0YV9fPXYsYi5fX2ZhY2V0X189ITAsYS5wdXNoKGIpLHUuZGVsZXRlKGcpfWVsc2UgaWYoZi5oYXMoZykpe2NvbnN0IGI9Zi5nZXQoZyk7cy5wdXNoKFt2LGJdKTtmb3IoY29uc3QgeCBvZiBiKW8uZGVsZXRlKHgpO2YuZGVsZXRlKGcpfWVsc2UgaWYobC5oYXMoeSkpe2NvbnN0IGI9bC5nZXQoeSk7Yi5fX3RvRGF0YV9fP2IuX190b0RhdGFfXy5wdXNoKHYpOmIuX190b0RhdGFfXz1bdl0sYy5hZGQoYiksby5kZWxldGUoYil9ZWxzZSBpLnB1c2godil9Y29uc3QgZD1bbmV3IFhyKFtdLGksdGhpcy5fcGFyZW50LHRoaXMuX2RvY3VtZW50KSxuZXcgWHIoYSxudWxsLHRoaXMuX3BhcmVudCx0aGlzLl9kb2N1bWVudCksbmV3IFhyKG8sbnVsbCx0aGlzLl9wYXJlbnQsdGhpcy5fZG9jdW1lbnQpLG5ldyBYcihbXSxzLHRoaXMuX3BhcmVudCx0aGlzLl9kb2N1bWVudCksbmV3IFhyKGMsbnVsbCx0aGlzLl9wYXJlbnQsdGhpcy5fZG9jdW1lbnQpXTtyZXR1cm4gbmV3IFhyKHRoaXMuX2VsZW1lbnRzLG51bGwsdGhpcy5fcGFyZW50LHRoaXMuX2RvY3VtZW50LGQpfW1lcmdlKGUpe2NvbnN0IG49Wy4uLnRoaXMuX2VsZW1lbnRzLC4uLmUuX2VsZW1lbnRzXSxyPVsuLi50aGlzLl90cmFuc2l0aW9ucywuLi5lLl90cmFuc2l0aW9uc107cmV0dXJuIG5ldyBYcihuLG51bGwsdGhpcy5fcGFyZW50LHRoaXMuX2RvY3VtZW50LHZvaWQgMCxyKX1jcmVhdGVFbGVtZW50KGUpe2lmKHRoaXMuX2RvY3VtZW50KXJldHVybiB0aGlzLl9kb2N1bWVudC5jcmVhdGVFbGVtZW50KGUse30pO2NvbnN0IG49WHIucmVnaXN0cnlbZV07cmV0dXJuIG4/bmV3IG46WGYoYFVua25vd24gbm9kZSB0eXBlOiAke2V9YCl9am9pbihlPW89Pm8sbj1vPT5vLHI9bz0+by5yZW1vdmUoKSxpPW89Pm8sYT1vPT5vLnJlbW92ZSgpKXtjb25zdCBvPWUodGhpcy5fZW50ZXIpLHM9bih0aGlzLl91cGRhdGUpLGM9cih0aGlzLl9leGl0KSxsPWkodGhpcy5fbWVyZ2UpLHU9YSh0aGlzLl9zcGxpdCk7cmV0dXJuIHMubWVyZ2UobykubWVyZ2UoYykubWVyZ2UobCkubWVyZ2UodSl9cmVtb3ZlKCl7Zm9yKGxldCBlPTA7ZTx0aGlzLl9lbGVtZW50cy5sZW5ndGg7ZSsrKXtjb25zdCBuPXRoaXMuX3RyYW5zaXRpb25zW2VdO2lmKG4pe2NvbnN0IHI9QXJyYXkuaXNBcnJheShuKT9uOltuXTtQcm9taXNlLmFsbChyLm1hcChpPT5pLmZpbmlzaGVkKSkudGhlbigoKT0+e3RoaXMuX2VsZW1lbnRzW2VdLnJlbW92ZSgpfSl9ZWxzZSB0aGlzLl9lbGVtZW50c1tlXS5yZW1vdmUoKX1yZXR1cm4gbmV3IFhyKFtdLG51bGwsdGhpcy5fcGFyZW50LHRoaXMuX2RvY3VtZW50LHZvaWQgMCx0aGlzLl90cmFuc2l0aW9ucyl9ZWFjaChlKXtmb3IobGV0IG49MDtuPHRoaXMuX2VsZW1lbnRzLmxlbmd0aDtuKyspe2NvbnN0IHI9dGhpcy5fZWxlbWVudHNbbl0saT1yLl9fZGF0YV9fO2UoaSxuLHIpfXJldHVybiB0aGlzfWF0dHIoZSxuKXtjb25zdCByPXR5cGVvZiBuIT0iZnVuY3Rpb24iPygpPT5uOm47cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihpLGEsbyl7biE9PXZvaWQgMCYmKG9bZV09cihpLGEsbykpfSl9c3R5bGUoZSxuKXtjb25zdCByPXR5cGVvZiBuIT0iZnVuY3Rpb24iPygpPT5uOm47cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihpLGEsbyl7biE9PXZvaWQgMCYmKG8uc3R5bGVbZV09cihpLGEsbykpfSl9dHJhbnNpdGlvbihlKXtjb25zdCBuPXR5cGVvZiBlIT0iZnVuY3Rpb24iPygpPT5lOmUse190cmFuc2l0aW9uczpyfT10aGlzO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oaSxhLG8pe3JbYV09bihpLGEsbyl9KX1vbihlLG4pe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24ocixpLGEpe2EuYWRkRXZlbnRMaXN0ZW5lcihlLG4pfSksdGhpc31jYWxsKGUsLi4ubil7cmV0dXJuIGUodGhpcywuLi5uKSx0aGlzfW5vZGUoKXtyZXR1cm4gdGhpcy5fZWxlbWVudHNbMF19bm9kZXMoKXtyZXR1cm4gdGhpcy5fZWxlbWVudHN9dHJhbnNpdGlvbnMoKXtyZXR1cm4gdGhpcy5fdHJhbnNpdGlvbnN9cGFyZW50KCl7cmV0dXJuIHRoaXMuX3BhcmVudH19WHIucmVnaXN0cnk9e2c6dWkscmVjdDpRYyxjaXJjbGU6dGMscGF0aDpRaSx0ZXh0OnBvLGVsbGlwc2U6T3ksaW1hZ2U6U3ksbGluZTpzdSxwb2x5Z29uOmN1LHBvbHlsaW5lOkV5LGh0bWw6YnB9O2NvbnN0IEluPXtCRUZPUkVfUkVOREVSOiJiZWZvcmVyZW5kZXIiLEFGVEVSX1JFTkRFUjoiYWZ0ZXJyZW5kZXIiLEJFRk9SRV9QQUlOVDoiYmVmb3JlcGFpbnQiLEFGVEVSX1BBSU5UOiJhZnRlcnBhaW50IixCRUZPUkVfQ0hBTkdFX0RBVEE6ImJlZm9yZWNoYW5nZWRhdGEiLEFGVEVSX0NIQU5HRV9EQVRBOiJhZnRlcmNoYW5nZWRhdGEiLEJFRk9SRV9DTEVBUjoiYmVmb3JlY2xlYXIiLEFGVEVSX0NMRUFSOiJhZnRlcmNsZWFyIixCRUZPUkVfREVTVFJPWToiYmVmb3JlZGVzdHJveSIsQUZURVJfREVTVFJPWToiYWZ0ZXJkZXN0cm95IixCRUZPUkVfQ0hBTkdFX1NJWkU6ImJlZm9yZWNoYW5nZXNpemUiLEFGVEVSX0NIQU5HRV9TSVpFOiJhZnRlcmNoYW5nZXNpemUiLFBPSU5URVJfVEFQOiJwb2ludGVydGFwIixQT0lOVEVSX0RPV046InBvaW50ZXJkb3duIixQT0lOVEVSX1VQOiJwb2ludGVydXAiLFBPSU5URVJfT1ZFUjoicG9pbnRlcm92ZXIiLFBPSU5URVJfT1VUOiJwb2ludGVyb3V0IixQT0lOVEVSX01PVkU6InBvaW50ZXJtb3ZlIixQT0lOVEVSX0VOVEVSOiJwb2ludGVyZW50ZXIiLFBPSU5URVJfTEVBVkU6InBvaW50ZXJsZWF2ZSIsUE9JTlRFUl9VUE9VVFNJREU6InBvaW50ZXJ1cG91dHNpZGUiLERSQUdfU1RBUlQ6ImRyYWdzdGFydCIsRFJBRzoiZHJhZyIsRFJBR19FTkQ6ImRyYWdlbmQiLERSQUdfRU5URVI6ImRyYWdlbnRlciIsRFJBR19MRUFWRToiZHJhZ2xlYXZlIixEUkFHX09WRVI6ImRyYWdvdmVyIixEUk9QOiJEUk9QIixDTElDSzoiY2xpY2siLERCTENMSUNLOiJkYmxjbGljayJ9O3ZhciBORj1mdW5jdGlvbih0KXt2YXIgZT1BQSh0KTtyZXR1cm4gZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStlLnN1YnN0cmluZygxKX0sdGw9TkY7ZnVuY3Rpb24gSUYodCl7cmV0dXJuIE1hdGguYWJzKHQ9TWF0aC5yb3VuZCh0KSk+PTFlMjE/dC50b0xvY2FsZVN0cmluZygiZW4iKS5yZXBsYWNlKC8sL2csIiIpOnQudG9TdHJpbmcoMTApfWZ1bmN0aW9uIHRtKHQsZSl7aWYoKG49KHQ9ZT90LnRvRXhwb25lbnRpYWwoZS0xKTp0LnRvRXhwb25lbnRpYWwoKSkuaW5kZXhPZigiZSIpKTwwKXJldHVybiBudWxsO3ZhciBuLHI9dC5zbGljZSgwLG4pO3JldHVybltyLmxlbmd0aD4xP3JbMF0rci5zbGljZSgyKTpyLCt0LnNsaWNlKG4rMSldfWZ1bmN0aW9uIERGKHQpe3JldHVybiB0PXRtKE1hdGguYWJzKHQpKSx0P3RbMV06TmFOfWZ1bmN0aW9uIGpGKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4scil7Zm9yKHZhciBpPW4ubGVuZ3RoLGE9W10sbz0wLHM9dFswXSxjPTA7aT4wJiZzPjAmJihjK3MrMT5yJiYocz1NYXRoLm1heCgxLHItYykpLGEucHVzaChuLnN1YnN0cmluZyhpLT1zLGkrcykpLCEoKGMrPXMrMSk+cikpOylzPXRbbz0obysxKSV0Lmxlbmd0aF07cmV0dXJuIGEucmV2ZXJzZSgpLmpvaW4oZSl9fWZ1bmN0aW9uIEZGKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gZS5yZXBsYWNlKC9bMC05XS9nLGZ1bmN0aW9uKG4pe3JldHVybiB0WytuXX0pfX12YXIgQkY9L14oPzooLik/KFs8Pj1eXSkpPyhbK1wtKCBdKT8oWyQjXSk/KDApPyhcZCspPygsKT8oXC5cZCspPyh+KT8oW2EteiVdKT8kL2k7ZnVuY3Rpb24gdHcodCl7aWYoIShlPUJGLmV4ZWModCkpKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBmb3JtYXQ6ICIrdCk7dmFyIGU7cmV0dXJuIG5ldyBldyh7ZmlsbDplWzFdLGFsaWduOmVbMl0sc2lnbjplWzNdLHN5bWJvbDplWzRdLHplcm86ZVs1XSx3aWR0aDplWzZdLGNvbW1hOmVbN10scHJlY2lzaW9uOmVbOF0mJmVbOF0uc2xpY2UoMSksdHJpbTplWzldLHR5cGU6ZVsxMF19KX10dy5wcm90b3R5cGU9ZXcucHJvdG90eXBlO2Z1bmN0aW9uIGV3KHQpe3RoaXMuZmlsbD10LmZpbGw9PT12b2lkIDA/IiAiOnQuZmlsbCsiIix0aGlzLmFsaWduPXQuYWxpZ249PT12b2lkIDA/Ij4iOnQuYWxpZ24rIiIsdGhpcy5zaWduPXQuc2lnbj09PXZvaWQgMD8iLSI6dC5zaWduKyIiLHRoaXMuc3ltYm9sPXQuc3ltYm9sPT09dm9pZCAwPyIiOnQuc3ltYm9sKyIiLHRoaXMuemVybz0hIXQuemVybyx0aGlzLndpZHRoPXQud2lkdGg9PT12b2lkIDA/dm9pZCAwOit0LndpZHRoLHRoaXMuY29tbWE9ISF0LmNvbW1hLHRoaXMucHJlY2lzaW9uPXQucHJlY2lzaW9uPT09dm9pZCAwP3ZvaWQgMDordC5wcmVjaXNpb24sdGhpcy50cmltPSEhdC50cmltLHRoaXMudHlwZT10LnR5cGU9PT12b2lkIDA/IiI6dC50eXBlKyIifWV3LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmZpbGwrdGhpcy5hbGlnbit0aGlzLnNpZ24rdGhpcy5zeW1ib2wrKHRoaXMuemVybz8iMCI6IiIpKyh0aGlzLndpZHRoPT09dm9pZCAwPyIiOk1hdGgubWF4KDEsdGhpcy53aWR0aHwwKSkrKHRoaXMuY29tbWE/IiwiOiIiKSsodGhpcy5wcmVjaXNpb249PT12b2lkIDA/IiI6Ii4iK01hdGgubWF4KDAsdGhpcy5wcmVjaXNpb258MCkpKyh0aGlzLnRyaW0/In4iOiIiKSt0aGlzLnR5cGV9O2Z1bmN0aW9uIHpGKHQpe3Q6Zm9yKHZhciBlPXQubGVuZ3RoLG49MSxyPS0xLGk7bjxlOysrbilzd2l0Y2godFtuXSl7Y2FzZSIuIjpyPWk9bjticmVhaztjYXNlIjAiOnI9PT0wJiYocj1uKSxpPW47YnJlYWs7ZGVmYXVsdDppZighK3Rbbl0pYnJlYWsgdDtyPjAmJihyPTApO2JyZWFrfXJldHVybiByPjA/dC5zbGljZSgwLHIpK3Quc2xpY2UoaSsxKTp0fXZhciBSQTtmdW5jdGlvbiBXRih0LGUpe3ZhciBuPXRtKHQsZSk7aWYoIW4pcmV0dXJuIHQrIiI7dmFyIHI9blswXSxpPW5bMV0sYT1pLShSQT1NYXRoLm1heCgtOCxNYXRoLm1pbig4LE1hdGguZmxvb3IoaS8zKSkpKjMpKzEsbz1yLmxlbmd0aDtyZXR1cm4gYT09PW8/cjphPm8/cituZXcgQXJyYXkoYS1vKzEpLmpvaW4oIjAiKTphPjA/ci5zbGljZSgwLGEpKyIuIityLnNsaWNlKGEpOiIwLiIrbmV3IEFycmF5KDEtYSkuam9pbigiMCIpK3RtKHQsTWF0aC5tYXgoMCxlK2EtMSkpWzBdfWZ1bmN0aW9uIE5BKHQsZSl7dmFyIG49dG0odCxlKTtpZighbilyZXR1cm4gdCsiIjt2YXIgcj1uWzBdLGk9blsxXTtyZXR1cm4gaTwwPyIwLiIrbmV3IEFycmF5KC1pKS5qb2luKCIwIikrcjpyLmxlbmd0aD5pKzE/ci5zbGljZSgwLGkrMSkrIi4iK3Iuc2xpY2UoaSsxKTpyK25ldyBBcnJheShpLXIubGVuZ3RoKzIpLmpvaW4oIjAiKX12YXIgSUE9eyIlIjoodCxlKT0+KHQqMTAwKS50b0ZpeGVkKGUpLGI6dD0+TWF0aC5yb3VuZCh0KS50b1N0cmluZygyKSxjOnQ9PnQrIiIsZDpJRixlOih0LGUpPT50LnRvRXhwb25lbnRpYWwoZSksZjoodCxlKT0+dC50b0ZpeGVkKGUpLGc6KHQsZSk9PnQudG9QcmVjaXNpb24oZSksbzp0PT5NYXRoLnJvdW5kKHQpLnRvU3RyaW5nKDgpLHA6KHQsZSk9Pk5BKHQqMTAwLGUpLHI6TkEsczpXRixYOnQ9Pk1hdGgucm91bmQodCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCkseDp0PT5NYXRoLnJvdW5kKHQpLnRvU3RyaW5nKDE2KX07ZnVuY3Rpb24gREEodCl7cmV0dXJuIHR9dmFyIGpBPUFycmF5LnByb3RvdHlwZS5tYXAsRkE9WyJ5IiwieiIsImEiLCJmIiwicCIsIm4iLCJceEI1IiwibSIsIiIsImsiLCJNIiwiRyIsIlQiLCJQIiwiRSIsIloiLCJZIl07ZnVuY3Rpb24gR0YodCl7dmFyIGU9dC5ncm91cGluZz09PXZvaWQgMHx8dC50aG91c2FuZHM9PT12b2lkIDA/REE6akYoakEuY2FsbCh0Lmdyb3VwaW5nLE51bWJlciksdC50aG91c2FuZHMrIiIpLG49dC5jdXJyZW5jeT09PXZvaWQgMD8iIjp0LmN1cnJlbmN5WzBdKyIiLHI9dC5jdXJyZW5jeT09PXZvaWQgMD8iIjp0LmN1cnJlbmN5WzFdKyIiLGk9dC5kZWNpbWFsPT09dm9pZCAwPyIuIjp0LmRlY2ltYWwrIiIsYT10Lm51bWVyYWxzPT09dm9pZCAwP0RBOkZGKGpBLmNhbGwodC5udW1lcmFscyxTdHJpbmcpKSxvPXQucGVyY2VudD09PXZvaWQgMD8iJSI6dC5wZXJjZW50KyIiLHM9dC5taW51cz09PXZvaWQgMD8iXHUyMjEyIjp0Lm1pbnVzKyIiLGM9dC5uYW49PT12b2lkIDA/Ik5hTiI6dC5uYW4rIiI7ZnVuY3Rpb24gbChmKXtmPXR3KGYpO3ZhciBkPWYuZmlsbCxoPWYuYWxpZ24sdj1mLnNpZ24sZz1mLnN5bWJvbCx5PWYuemVybyxiPWYud2lkdGgseD1mLmNvbW1hLF89Zi5wcmVjaXNpb24sdz1mLnRyaW0sTz1mLnR5cGU7Tz09PSJuIj8oeD0hMCxPPSJnIik6SUFbT118fChfPT09dm9pZCAwJiYoXz0xMiksdz0hMCxPPSJnIiksKHl8fGQ9PT0iMCImJmg9PT0iPSIpJiYoeT0hMCxkPSIwIixoPSI9Iik7dmFyIEU9Zz09PSIkIj9uOmc9PT0iIyImJi9bYm94WF0vLnRlc3QoTyk/IjAiK08udG9Mb3dlckNhc2UoKToiIixNPWc9PT0iJCI/cjovWyVwXS8udGVzdChPKT9vOiIiLGs9SUFbT10sQT0vW2RlZmdwcnMlXS8udGVzdChPKTtfPV89PT12b2lkIDA/NjovW2dwcnNdLy50ZXN0KE8pP01hdGgubWF4KDEsTWF0aC5taW4oMjEsXykpOk1hdGgubWF4KDAsTWF0aC5taW4oMjAsXykpO2Z1bmN0aW9uIFAoQyl7dmFyIE49RSxMPU0sUixJLEQ7aWYoTz09PSJjIilMPWsoQykrTCxDPSIiO2Vsc2V7Qz0rQzt2YXIgRz1DPDB8fDEvQzwwO2lmKEM9aXNOYU4oQyk/YzprKE1hdGguYWJzKEMpLF8pLHcmJihDPXpGKEMpKSxHJiYrQz09MCYmdiE9PSIrIiYmKEc9ITEpLE49KEc/dj09PSIoIj92OnM6dj09PSItInx8dj09PSIoIj8iIjp2KStOLEw9KE89PT0icyI/RkFbOCtSQS8zXToiIikrTCsoRyYmdj09PSIoIj8iKSI6IiIpLEEpe2ZvcihSPS0xLEk9Qy5sZW5ndGg7KytSPEk7KWlmKEQ9Qy5jaGFyQ29kZUF0KFIpLDQ4PkR8fEQ+NTcpe0w9KEQ9PT00Nj9pK0Muc2xpY2UoUisxKTpDLnNsaWNlKFIpKStMLEM9Qy5zbGljZSgwLFIpO2JyZWFrfX19eCYmIXkmJihDPWUoQywxLzApKTt2YXIgRj1OLmxlbmd0aCtDLmxlbmd0aCtMLmxlbmd0aCxXPUY8Yj9uZXcgQXJyYXkoYi1GKzEpLmpvaW4oZCk6IiI7c3dpdGNoKHgmJnkmJihDPWUoVytDLFcubGVuZ3RoP2ItTC5sZW5ndGg6MS8wKSxXPSIiKSxoKXtjYXNlIjwiOkM9TitDK0wrVzticmVhaztjYXNlIj0iOkM9TitXK0MrTDticmVhaztjYXNlIl4iOkM9Vy5zbGljZSgwLEY9Vy5sZW5ndGg+PjEpK04rQytMK1cuc2xpY2UoRik7YnJlYWs7ZGVmYXVsdDpDPVcrTitDK0w7YnJlYWt9cmV0dXJuIGEoQyl9cmV0dXJuIFAudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gZisiIn0sUH1mdW5jdGlvbiB1KGYsZCl7dmFyIGg9bCgoZj10dyhmKSxmLnR5cGU9ImYiLGYpKSx2PU1hdGgubWF4KC04LE1hdGgubWluKDgsTWF0aC5mbG9vcihERihkKS8zKSkpKjMsZz1NYXRoLnBvdygxMCwtdikseT1GQVs4K3YvM107cmV0dXJuIGZ1bmN0aW9uKGIpe3JldHVybiBoKGcqYikreX19cmV0dXJue2Zvcm1hdDpsLGZvcm1hdFByZWZpeDp1fX12YXIgZW0sZWwsJEY7WkYoe3Rob3VzYW5kczoiLCIsZ3JvdXBpbmc6WzNdLGN1cnJlbmN5OlsiJCIsIiJdfSk7ZnVuY3Rpb24gWkYodCl7cmV0dXJuIGVtPUdGKHQpLGVsPWVtLmZvcm1hdCwkRj1lbS5mb3JtYXRQcmVmaXgsZW19ZnVuY3Rpb24gZnModCxlKXtyZXR1cm4gT2JqZWN0LmVudHJpZXModCkucmVkdWNlKChuLFtyLGldKT0+KG5bcl09ZShpLHIsdCksbikse30pfWZ1bmN0aW9uIGZ1KHQpe3JldHVybiB0Lm1hcCgoZSxuKT0+bil9ZnVuY3Rpb24gWWF0KHQpe2NvbnN0IGU9dC5sZW5ndGgsbj10WzBdLmxlbmd0aCxyPW5ldyBBcnJheShuKS5maWxsKDApLm1hcCgoKT0+bmV3IEFycmF5KGUpKTtmb3IobGV0IGk9MDtpPG47aSsrKWZvcihsZXQgYT0wO2E8ZTthKyspcltpXVthXT10W2FdW2ldO3JldHVybiByfWZ1bmN0aW9uIFlGKHQpe3JldHVybiB0WzBdfWZ1bmN0aW9uIEJBKHQpe3JldHVybiB0W3QubGVuZ3RoLTFdfWZ1bmN0aW9uIEhhdCh0KXtyZXR1cm4hdC5zb21lKEFycmF5LmlzQXJyYXkpfWZ1bmN0aW9uIEhGKHQpe3JldHVybiBBcnJheS5mcm9tKG5ldyBTZXQodCkpfWZ1bmN0aW9uIHpBKHQsZSl7Y29uc3Qgbj1bW10sW11dO3JldHVybiB0LmZvckVhY2gocj0+e25bZShyKT8wOjFdLnB1c2gocil9KSxufWZ1bmN0aW9uIFdBKHQsZT10Lmxlbmd0aCl7aWYoZT09PTEpcmV0dXJuIHQubWFwKHI9PltyXSk7Y29uc3Qgbj1bXTtmb3IobGV0IHI9MDtyPHQubGVuZ3RoO3IrKyl7Y29uc3QgaT10LnNsaWNlKHIrMSk7V0EoaSxlLTEpLmZvckVhY2gobz0+e24ucHVzaChbdFtyXSwuLi5vXSl9KX1yZXR1cm4gbn1mdW5jdGlvbiBWRih0KXtpZih0Lmxlbmd0aD09PTEpcmV0dXJuW3RdO2NvbnN0IGU9W107Zm9yKGxldCBuPTE7bjw9dC5sZW5ndGg7bisrKWUucHVzaCguLi5XQSh0LG4pKTtyZXR1cm4gZX12YXIgWEY9ZnVuY3Rpb24odCl7cmV0dXJuIHQhPT1udWxsJiZ0eXBlb2YgdCE9ImZ1bmN0aW9uIiYmaXNGaW5pdGUodC5sZW5ndGgpfSxxZj1YRixudz1mdW5jdGlvbih0LGUpe2lmKHQ9PT1lKXJldHVybiEwO2lmKCF0fHwhZXx8aXIodCl8fGlyKGUpKXJldHVybiExO2lmKHFmKHQpfHxxZihlKSl7aWYodC5sZW5ndGghPT1lLmxlbmd0aClyZXR1cm4hMTtmb3IodmFyIG49ITAscj0wO3I8dC5sZW5ndGgmJihuPW53KHRbcl0sZVtyXSksISFuKTtyKyspO3JldHVybiBufWlmKFZfKHQpfHxWXyhlKSl7dmFyIGk9T2JqZWN0LmtleXModCksYT1PYmplY3Qua2V5cyhlKTtpZihpLmxlbmd0aCE9PWEubGVuZ3RoKXJldHVybiExO2Zvcih2YXIgbj0hMCxyPTA7cjxpLmxlbmd0aCYmKG49bncodFtpW3JdXSxlW2lbcl1dKSwhIW4pO3IrKyk7cmV0dXJuIG59cmV0dXJuITF9LEdBPW53O2Z1bmN0aW9uIGJvKHQsZSl7bGV0IG49MDtpZihlPT09dm9pZCAwKWZvcihsZXQgciBvZiB0KShyPStyKSYmKG4rPXIpO2Vsc2V7bGV0IHI9LTE7Zm9yKGxldCBpIG9mIHQpKGk9K2UoaSwrK3IsdCkpJiYobis9aSl9cmV0dXJuIG59ZnVuY3Rpb24gRG4odCxlKXtsZXQgbjtpZihlPT09dm9pZCAwKWZvcihjb25zdCByIG9mIHQpciE9bnVsbCYmKG48cnx8bj09PXZvaWQgMCYmcj49cikmJihuPXIpO2Vsc2V7bGV0IHI9LTE7Zm9yKGxldCBpIG9mIHQpKGk9ZShpLCsrcix0KSkhPW51bGwmJihuPGl8fG49PT12b2lkIDAmJmk+PWkpJiYobj1pKX1yZXR1cm4gbn1mdW5jdGlvbiBWYXQodCl7cmV0dXJuIHQqTWF0aC5QSS8xODB9ZnVuY3Rpb24gWGF0KHQpe3JldHVybiB0KjE4MC9NYXRoLlBJfWZ1bmN0aW9uIFVGKHQsZSl7cmV0dXJuIHQ9dCUoMipNYXRoLlBJKSxlPWUlKDIqTWF0aC5QSSksdDwwJiYodD0yKk1hdGguUEkrdCksZTwwJiYoZT0yKk1hdGguUEkrZSksdD49ZSYmKGU9ZSsyKk1hdGguUEkpLHtzdGFydEFuZ2xlOnQsZW5kQW5nbGU6ZX19Y29uc3QgJEE9KHQ9e30pPT57Y29uc3QgZT17c3RhcnRBbmdsZTotTWF0aC5QSS8yLGVuZEFuZ2xlOk1hdGguUEkqMy8yLGlubmVyUmFkaXVzOjAsb3V0ZXJSYWRpdXM6MX0sbj1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZSksdCk7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxuKSxVRihuLnN0YXJ0QW5nbGUsbi5lbmRBbmdsZSkpfSxPcD10PT57Y29uc3R7c3RhcnRBbmdsZTplLGVuZEFuZ2xlOm4saW5uZXJSYWRpdXM6cixvdXRlclJhZGl1czppfT0kQSh0KTtyZXR1cm5bWyJ0cmFuc2xhdGUiLDAsLjVdLFsicmVmbGVjdC55Il0sWyJ0cmFuc2xhdGUiLDAsLS41XSxbInBvbGFyIixlLG4scixpXV19O09wLnByb3BzPXt9O2NvbnN0IFpBPSh0PXt9KT0+e2NvbnN0IGU9e3N0YXJ0QW5nbGU6LU1hdGguUEkvMixlbmRBbmdsZTpNYXRoLlBJKjMvMixpbm5lclJhZGl1czowLG91dGVyUmFkaXVzOjF9O3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZSksdCl9LHJ3PXQ9Pntjb25zdHtzdGFydEFuZ2xlOmUsZW5kQW5nbGU6bixpbm5lclJhZGl1czpyLG91dGVyUmFkaXVzOml9PVpBKHQpO3JldHVybltbInRyYW5zcG9zZSJdLFsidHJhbnNsYXRlIiwuNSwuNV0sWyJyZWZsZWN0Il0sWyJ0cmFuc2xhdGUiLC0uNSwtLjVdLC4uLk9wKHtzdGFydEFuZ2xlOmUsZW5kQW5nbGU6bixpbm5lclJhZGl1czpyLG91dGVyUmFkaXVzOml9KV19O3J3LnByb3BzPXt9O2Z1bmN0aW9uIG5tKHQsZSxuKXtyZXR1cm4gTWF0aC5tYXgoZSxNYXRoLm1pbih0LG4pKX1mdW5jdGlvbiBybSh0LGU9MTApe3JldHVybiB0eXBlb2YgdCE9Im51bWJlciJ8fE1hdGguYWJzKHQpPDFlLTE1P3Q6cGFyc2VGbG9hdCh0LnRvRml4ZWQoZSkpfWNvbnN0IHFGPVtbImxlZ2VuZENhdGVnb3J5IixbW1siY29sb3IiLCJkaXNjcmV0ZSJdLFsib3BhY2l0eSIsImRpc2NyZXRlIl0sWyJzaGFwZSIsImRpc2NyZXRlIl0sWyJzaXplIiwiY29uc3RhbnQiXV0sW1siY29sb3IiLCJkaXNjcmV0ZSJdLFsib3BhY2l0eSIsImNvbnN0YW50Il0sWyJzaGFwZSIsImRpc2NyZXRlIl0sWyJzaXplIiwiY29uc3RhbnQiXV0sW1siY29sb3IiLCJkaXNjcmV0ZSJdLFsib3BhY2l0eSIsImRpc2NyZXRlIl0sWyJzaGFwZSIsImNvbnN0YW50Il0sWyJzaXplIiwiY29uc3RhbnQiXV0sW1siY29sb3IiLCJkaXNjcmV0ZSJdLFsib3BhY2l0eSIsImNvbnN0YW50Il0sWyJzaGFwZSIsImNvbnN0YW50Il0sWyJzaXplIiwiY29uc3RhbnQiXV0sW1siY29sb3IiLCJjb25zdGFudCJdLFsib3BhY2l0eSIsImRpc2NyZXRlIl0sWyJzaGFwZSIsImRpc2NyZXRlIl0sWyJzaXplIiwiY29uc3RhbnQiXV0sW1siY29sb3IiLCJjb25zdGFudCJdLFsib3BhY2l0eSIsImNvbnN0YW50Il0sWyJzaGFwZSIsImRpc2NyZXRlIl0sWyJzaXplIiwiY29uc3RhbnQiXV0sW1siY29sb3IiLCJjb25zdGFudCJdLFsib3BhY2l0eSIsImRpc2NyZXRlIl0sWyJzaGFwZSIsImNvbnN0YW50Il0sWyJzaXplIiwiY29uc3RhbnQiXV0sW1siY29sb3IiLCJkaXNjcmV0ZSJdLFsic2hhcGUiLCJkaXNjcmV0ZSJdLFsic2l6ZSIsImNvbnN0YW50Il1dLFtbImNvbG9yIiwiZGlzY3JldGUiXSxbIm9wYWNpdHkiLCJkaXNjcmV0ZSJdLFsic2hhcGUiLCJkaXNjcmV0ZSJdXSxbWyJjb2xvciIsImRpc2NyZXRlIl0sWyJvcGFjaXR5IiwiZGlzY3JldGUiXSxbInNpemUiLCJjb25zdGFudCJdXSxbWyJjb2xvciIsImRpc2NyZXRlIl0sWyJvcGFjaXR5IiwiY29uc3RhbnQiXSxbInNoYXBlIiwiZGlzY3JldGUiXV0sW1siY29sb3IiLCJkaXNjcmV0ZSJdLFsib3BhY2l0eSIsImNvbnN0YW50Il0sWyJzaXplIiwiY29uc3RhbnQiXV0sW1siY29sb3IiLCJkaXNjcmV0ZSJdLFsic2hhcGUiLCJjb25zdGFudCJdLFsic2l6ZSIsImNvbnN0YW50Il1dLFtbImNvbG9yIiwiZGlzY3JldGUiXSxbIm9wYWNpdHkiLCJkaXNjcmV0ZSJdLFsic2hhcGUiLCJjb25zdGFudCJdXSxbWyJjb2xvciIsImRpc2NyZXRlIl0sWyJvcGFjaXR5IiwiY29uc3RhbnQiXSxbInNoYXBlIiwiY29uc3RhbnQiXV0sW1siY29sb3IiLCJjb25zdGFudCJdLFsic2hhcGUiLCJkaXNjcmV0ZSJdLFsic2l6ZSIsImNvbnN0YW50Il1dLFtbImNvbG9yIiwiY29uc3RhbnQiXSxbIm9wYWNpdHkiLCJkaXNjcmV0ZSJdLFsic2hhcGUiLCJkaXNjcmV0ZSJdXSxbWyJjb2xvciIsImNvbnN0YW50Il0sWyJvcGFjaXR5IiwiZGlzY3JldGUiXSxbInNpemUiLCJjb25zdGFudCJdXSxbWyJjb2xvciIsImNvbnN0YW50Il0sWyJvcGFjaXR5IiwiY29uc3RhbnQiXSxbInNoYXBlIiwiZGlzY3JldGUiXV0sW1siY29sb3IiLCJjb25zdGFudCJdLFsib3BhY2l0eSIsImRpc2NyZXRlIl0sWyJzaGFwZSIsImNvbnN0YW50Il1dLFtbImNvbG9yIiwiZGlzY3JldGUiXSxbInNoYXBlIiwiZGlzY3JldGUiXV0sW1siY29sb3IiLCJkaXNjcmV0ZSJdLFsic2l6ZSIsImNvbnN0YW50Il1dLFtbImNvbG9yIiwiZGlzY3JldGUiXSxbIm9wYWNpdHkiLCJkaXNjcmV0ZSJdXSxbWyJjb2xvciIsImRpc2NyZXRlIl0sWyJvcGFjaXR5IiwiY29uc3RhbnQiXV0sW1siY29sb3IiLCJkaXNjcmV0ZSJdLFsic2hhcGUiLCJjb25zdGFudCJdXSxbWyJjb2xvciIsImNvbnN0YW50Il0sWyJzaGFwZSIsImRpc2NyZXRlIl1dLFtbImNvbG9yIiwiY29uc3RhbnQiXSxbInNpemUiLCJjb25zdGFudCJdXSxbWyJjb2xvciIsImNvbnN0YW50Il0sWyJvcGFjaXR5IiwiZGlzY3JldGUiXV0sW1siY29sb3IiLCJkaXNjcmV0ZSJdXV1dLFsibGVnZW5kQ29udGludW91c1NpemUiLFtbWyJjb2xvciIsImNvbnRpbnVvdXMiXSxbIm9wYWNpdHkiLCJjb250aW51b3VzIl0sWyJzaXplIiwiY29udGludW91cyJdXSxbWyJjb2xvciIsImNvbnN0YW50Il0sWyJvcGFjaXR5IiwiY29udGludW91cyJdLFsic2l6ZSIsImNvbnRpbnVvdXMiXV0sW1siY29sb3IiLCJjb250aW51b3VzIl0sWyJzaXplIiwiY29udGludW91cyJdXSxbWyJjb2xvciIsImNvbnN0YW50Il0sWyJzaXplIiwiY29udGludW91cyJdXSxbWyJzaXplIiwiY29udGludW91cyJdLFsib3BhY2l0eSIsImNvbnRpbnVvdXMiXV0sW1sic2l6ZSIsImNvbnRpbnVvdXMiXV1dXSxbImxlZ2VuZENvbnRpbnVvdXNCbG9ja1NpemUiLFtbWyJjb2xvciIsImRpc3RyaWJ1dGlvbiJdLFsib3BhY2l0eSIsImRpc3RyaWJ1dGlvbiJdLFsic2l6ZSIsImRpc3RyaWJ1dGlvbiJdXSxbWyJjb2xvciIsImRpc3RyaWJ1dGlvbiJdLFsic2l6ZSIsImRpc3RyaWJ1dGlvbiJdXV1dLFsibGVnZW5kQ29udGludW91c0Jsb2NrIixbW1siY29sb3IiLCJkaXN0cmlidXRpb24iXSxbIm9wYWNpdHkiLCJjb250aW51b3VzIl1dLFtbImNvbG9yIiwiZGlzdHJpYnV0aW9uIl1dXV0sWyJsZWdlbmRDb250aW51b3VzIixbW1siY29sb3IiLCJjb250aW51b3VzIl0sWyJvcGFjaXR5IiwiY29udGludW91cyJdXSxbWyJjb2xvciIsImNvbnRpbnVvdXMiXV0sW1sib3BhY2l0eSIsImNvbnRpbnVvdXMiXV1dXV07dmFyIFlBPXB0KDE3ODE2KTtmdW5jdGlvbiBocih0KXtjb25zdHt0cmFuc2Zvcm1hdGlvbnM6ZX09dC5nZXRPcHRpb25zKCk7cmV0dXJuIGUubWFwKChbcl0pPT5yKS5maWx0ZXIocj0+cj09PSJ0cmFuc3Bvc2UiKS5sZW5ndGglMiE9PTB9ZnVuY3Rpb24gQm4odCl7Y29uc3R7dHJhbnNmb3JtYXRpb25zOmV9PXQuZ2V0T3B0aW9ucygpO3JldHVybiBlLnNvbWUoKFtuXSk9Pm49PT0icG9sYXIiKX1mdW5jdGlvbiBTcCh0KXtjb25zdHt0cmFuc2Zvcm1hdGlvbnM6ZX09dC5nZXRPcHRpb25zKCk7cmV0dXJuIGUuc29tZSgoW25dKT0+bj09PSJyZWZsZWN0IikmJmUuc29tZSgoW25dKT0+bi5zdGFydHNXaXRoKCJ0cmFuc3Bvc2UiKSl9ZnVuY3Rpb24gSEEodCl7Y29uc3R7dHJhbnNmb3JtYXRpb25zOmV9PXQuZ2V0T3B0aW9ucygpO3JldHVybiBlLnNvbWUoKFtuXSk9Pm49PT0iaGVsaXgiKX1mdW5jdGlvbiBFcCh0KXtjb25zdHt0cmFuc2Zvcm1hdGlvbnM6ZX09dC5nZXRPcHRpb25zKCk7cmV0dXJuIGUuc29tZSgoW25dKT0+bj09PSJwYXJhbGxlbCIpfWZ1bmN0aW9uIFZBKHQpe2NvbnN0e3RyYW5zZm9ybWF0aW9uczplfT10LmdldE9wdGlvbnMoKTtyZXR1cm4gZS5zb21lKChbbl0pPT5uPT09ImZpc2hleWUiKX1mdW5jdGlvbiBLRih0KXtyZXR1cm4gRXAodCkmJkJuKHQpfWZ1bmN0aW9uIEtmKHQpe3JldHVybiBIQSh0KXx8Qm4odCl9ZnVuY3Rpb24gWEEodCl7cmV0dXJuIEJuKHQpJiZocih0KX1mdW5jdGlvbiBVYXQodCl7cmV0dXJuIEJuKHQpfHxFcCh0KXx8U3AodCl8fFhBKHQpfWZ1bmN0aW9uIFFGKHQpe2lmKEtmKHQpKXtjb25zdFtlLG5dPXQuZ2V0U2l6ZSgpLHI9dC5nZXRPcHRpb25zKCkudHJhbnNmb3JtYXRpb25zLmZpbmQoaT0+aVswXT09PSJwb2xhciIpO2lmKHIpcmV0dXJuIE1hdGgubWF4KGUsbikvMipyWzRdfXJldHVybiAwfWZ1bmN0aW9uIGltKHQpe2NvbnN0e3RyYW5zZm9ybWF0aW9uczplfT10LmdldE9wdGlvbnMoKSxbLCwsbixyXT1lLmZpbmQoaT0+aVswXT09PSJwb2xhciIpO3JldHVyblsrbiwrcl19ZnVuY3Rpb24gaXcodCxlPSEwKXtjb25zdHt0cmFuc2Zvcm1hdGlvbnM6bn09dC5nZXRPcHRpb25zKCksWyxyLGldPW4uZmluZChhPT5hWzBdPT09InBvbGFyIik7cmV0dXJuIGU/WytyKjE4MC9NYXRoLlBJLCtpKjE4MC9NYXRoLlBJXTpbcixpXX1mdW5jdGlvbiBKRih0LGUpe2NvbnN0e3RyYW5zZm9ybWF0aW9uczpufT10LmdldE9wdGlvbnMoKSxbLC4uLnJdPW4uZmluZChpPT5pWzBdPT09ZSk7cmV0dXJuIHJ9ZnVuY3Rpb24gVUEodCxlKXtlKHQpLHQuY2hpbGRyZW4mJnQuY2hpbGRyZW4uZm9yRWFjaChmdW5jdGlvbihuKXtuJiZVQShuLGUpfSl9ZnVuY3Rpb24gTXAodCl7YW0odCwhMCl9ZnVuY3Rpb24gbmwodCl7YW0odCwhMSl9ZnVuY3Rpb24gYW0odCxlKXt2YXIgbj1lPyJ2aXNpYmxlIjoiaGlkZGVuIjtVQSh0LGZ1bmN0aW9uKHIpe3IuYXR0cigidmlzaWJpbGl0eSIsbil9KX1mdW5jdGlvbiB0OSh0KXtyZXR1cm4gdHlwZW9mIHQ9PSJib29sZWFuIj8hMToiZW50ZXIiaW4gdCYmInVwZGF0ZSJpbiB0JiYiZXhpdCJpbiB0fWZ1bmN0aW9uIHFBKHQpe2lmKCF0KXJldHVybntlbnRlcjohMSx1cGRhdGU6ITEsZXhpdDohMX07dmFyIGU9WyJlbnRlciIsInVwZGF0ZSIsImV4aXQiXSxuPU9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyh0KS5maWx0ZXIoZnVuY3Rpb24ocil7dmFyIGk9VihyLDEpLGE9aVswXTtyZXR1cm4hZS5pbmNsdWRlcyhhKX0pKTtyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKGUubWFwKGZ1bmN0aW9uKHIpe3JldHVybiB0OSh0KT90W3JdPT09ITE/W3IsITFdOltyLEF0KEF0KHt9LHRbcl0pLG4pXTpbcixuXX0pKX1mdW5jdGlvbiBRZih0LGUpe3Q/dC5maW5pc2hlZC50aGVuKGUpOmUoKX1mdW5jdGlvbiBlOSh0LGUpe3QubGVuZ3RoPT09MD9lKCk6UHJvbWlzZS5hbGwodC5tYXAoZnVuY3Rpb24obil7cmV0dXJuIG49PW51bGw/dm9pZCAwOm4uZmluaXNoZWR9KSkudGhlbihlKX1mdW5jdGlvbiBLQSh0LGUpeyJ1cGRhdGUiaW4gdD90LnVwZGF0ZShlKTp0LmF0dHIoZSl9ZnVuY3Rpb24gUUEodCxlLG4pe2lmKGUubGVuZ3RoPT09MClyZXR1cm4gbnVsbDtpZighbil7dmFyIHI9ZS5zbGljZSgtMSlbMF07cmV0dXJuIEtBKHQse3N0eWxlOnJ9KSxudWxsfXJldHVybiB0LmFuaW1hdGUoZSxuKX1mdW5jdGlvbiBuOSh0LGUpe3JldHVybiEodC5ub2RlTmFtZSE9PSJ0ZXh0Inx8ZS5ub2RlTmFtZSE9PSJ0ZXh0Inx8dC5hdHRyaWJ1dGVzLnRleHQhPT1lLmF0dHJpYnV0ZXMudGV4dCl9ZnVuY3Rpb24gcjkodCxlLG4scil7aWYocj09PXZvaWQgMCYmKHI9ImRlc3Ryb3kiKSxuOSh0LGUpKXJldHVybiB0LnJlbW92ZSgpLFtudWxsXTt2YXIgaT1mdW5jdGlvbigpe3I9PT0iZGVzdHJveSI/dC5kZXN0cm95KCk6cj09PSJoaWRlIiYmbmwodCksZS5pc1Zpc2libGUoKSYmTXAoZSl9O2lmKCFuKXJldHVybiBpKCksW251bGxdO3ZhciBhPW4uZHVyYXRpb24sbz1hPT09dm9pZCAwPzA6YSxzPW4uZGVsYXksYz1zPT09dm9pZCAwPzA6cyxsPU1hdGguY2VpbCgrby8yKSx1PStvLzQsZj1WKHQuZ2V0R2VvbWV0cnlCb3VuZHMoKS5jZW50ZXIsMiksZD1mWzBdLGg9ZlsxXSx2PVYoZS5nZXRHZW9tZXRyeUJvdW5kcygpLmNlbnRlciwyKSxnPXZbMF0seT12WzFdLGI9VihbKGQrZykvMi1kLChoK3kpLzItaF0sMikseD1iWzBdLF89YlsxXSx3PXQuc3R5bGUub3BhY2l0eSxPPXc9PT12b2lkIDA/MTp3LEU9ZS5zdHlsZS5vcGFjaXR5LE09RT09PXZvaWQgMD8xOkUsaz10LnN0eWxlLnRyYW5zZm9ybXx8IiIsQT1lLnN0eWxlLnRyYW5zZm9ybXx8IiIsUD10LmFuaW1hdGUoW3tvcGFjaXR5Ok8sdHJhbnNmb3JtOiJ0cmFuc2xhdGUoMCwgMCkgIi5jb25jYXQoayl9LHtvcGFjaXR5OjAsdHJhbnNmb3JtOiJ0cmFuc2xhdGUoIi5jb25jYXQoeCwiLCAiKS5jb25jYXQoXywiKSAiKS5jb25jYXQoayl9XSxBdChBdCh7ZmlsbDoiYm90aCJ9LG4pLHtkdXJhdGlvbjpjK2wrdX0pKSxDPWUuYW5pbWF0ZShbe29wYWNpdHk6MCx0cmFuc2Zvcm06InRyYW5zbGF0ZSgiLmNvbmNhdCgteCwiLCAiKS5jb25jYXQoLV8sIikgIikuY29uY2F0KEEpLG9mZnNldDouMDF9LHtvcGFjaXR5Ok0sdHJhbnNmb3JtOiJ0cmFuc2xhdGUoMCwgMCkgIi5jb25jYXQoQSl9XSxBdChBdCh7ZmlsbDoiYm90aCJ9LG4pLHtkdXJhdGlvbjpsK3UsZGVsYXk6YytsLXV9KSk7cmV0dXJuIFFmKEMsaSksW1AsQ119ZnVuY3Rpb24gem8odCxlLG4pe3ZhciByPXt9LGk9e307cmV0dXJuIE9iamVjdC5lbnRyaWVzKGUpLmZvckVhY2goZnVuY3Rpb24oYSl7dmFyIG89VihhLDIpLHM9b1swXSxjPW9bMV07aWYoIWdlKGMpKXt2YXIgbD10LnN0eWxlW3NdfHx0LnBhcnNlZFN0eWxlW3NdfHwwO2whPT1jJiYocltzXT1sLGlbc109Yyl9fSksbj9RQSh0LFtyLGldLEF0KHtmaWxsOiJib3RoIn0sbikpOihLQSh0LGkpLG51bGwpfXZhciBpOT01LEpBPWZ1bmN0aW9uKHQsZSxuLHIpe249PT12b2lkIDAmJihuPTApLHI9PT12b2lkIDAmJihyPWk5KSxPYmplY3QuZW50cmllcyhlKS5mb3JFYWNoKGZ1bmN0aW9uKGkpe3ZhciBhPVYoaSwyKSxvPWFbMF0scz1hWzFdLGM9dDtPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxvKSYmKHM/bmMocyk/KG5jKHRbb10pfHwoY1tvXT17fSksbjxyP0pBKHRbb10scyxuKzEscik6Y1tvXT1lW29dKTpOcihzKT8oY1tvXT1bXSxjW29dPWNbb10uY29uY2F0KHMpKTpjW29dPXM6Y1tvXT1zKX0pfSxpYz1mdW5jdGlvbih0KXtmb3IodmFyIGU9W10sbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspZVtuLTFdPWFyZ3VtZW50c1tuXTtmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrPTEpSkEodCxlW3JdKTtyZXR1cm4gdH0sYTk9ZnVuY3Rpb24odCl7YXIoZSx0KTtmdW5jdGlvbiBlKCl7Zm9yKHZhciBuPVtdLHI9MDtyPGFyZ3VtZW50cy5sZW5ndGg7cisrKW5bcl09YXJndW1lbnRzW3JdO3ZhciBpPXQuYXBwbHkodGhpcyx0ZShbXSxWKG4pLCExKSl8fHRoaXM7cmV0dXJuIGkuaXNNdXRhdGlvbk9ic2VydmVkPSEwLGkuYWRkRXZlbnRMaXN0ZW5lcigkZS5JTlNFUlRFRCxmdW5jdGlvbigpe25sKGkpfSksaX1yZXR1cm4gZX0odWkpO2Z1bmN0aW9uIHRUKHQpe3ZhciBlPXQuYXBwZW5kQ2hpbGQobmV3IGE5KHtjbGFzczoib2Zmc2NyZWVuIn0pKTtyZXR1cm4gbmwoZSksZX1mdW5jdGlvbiBvOSh0KXtmb3IodmFyIGU9dDtlOyl7aWYoZS5jbGFzc05hbWU9PT0ib2Zmc2NyZWVuIilyZXR1cm4hMDtlPWUucGFyZW50fXJldHVybiExfWZ1bmN0aW9uIHM5KCl7YW0odGhpcyx0aGlzLmF0dHJpYnV0ZXMudmlzaWJpbGl0eSE9PSJoaWRkZW4iKX12YXIgYmk9ZnVuY3Rpb24odCl7YXIoZSx0KTtmdW5jdGlvbiBlKG4scil7cj09PXZvaWQgMCYmKHI9e30pO3ZhciBpPXQuY2FsbCh0aGlzLGljKHt9LHtzdHlsZTpyfSxuKSl8fHRoaXM7cmV0dXJuIGkuaW5pdGlhbGl6ZWQ9ITEsaS5fZGVmYXVsdE9wdGlvbnM9cixpfXJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsIm9mZnNjcmVlbkdyb3VwIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX29mZnNjcmVlbnx8KHRoaXMuX29mZnNjcmVlbj10VCh0aGlzKSksdGhpcy5fb2Zmc2NyZWVufSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwiZGVmYXVsdE9wdGlvbnMiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGVmYXVsdE9wdGlvbnN9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksZS5wcm90b3R5cGUuY29ubmVjdGVkQ2FsbGJhY2s9ZnVuY3Rpb24oKXt0aGlzLnJlbmRlcih0aGlzLmF0dHJpYnV0ZXMsdGhpcyksdGhpcy5iaW5kRXZlbnRzKHRoaXMuYXR0cmlidXRlcyx0aGlzKSx0aGlzLmluaXRpYWxpemVkPSEwfSxlLnByb3RvdHlwZS5kaXNjb25uZWN0ZWRDYWxsYmFjaz1mdW5jdGlvbigpe3ZhciBuOyhuPXRoaXMuX29mZnNjcmVlbik9PT1udWxsfHxuPT09dm9pZCAwfHxuLmRlc3Ryb3koKX0sZS5wcm90b3R5cGUuYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrPWZ1bmN0aW9uKG4pe249PT0idmlzaWJpbGl0eSImJnM5LmNhbGwodGhpcyl9LGUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihuLHIpe3ZhciBpO3JldHVybiB0aGlzLmF0dHIoaWMoe30sdGhpcy5hdHRyaWJ1dGVzLG58fHt9KSksKGk9dGhpcy5yZW5kZXIpPT09bnVsbHx8aT09PXZvaWQgMD92b2lkIDA6aS5jYWxsKHRoaXMsdGhpcy5hdHRyaWJ1dGVzLHRoaXMscil9LGUucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVDaGlsZHJlbigpfSxlLnByb3RvdHlwZS5iaW5kRXZlbnRzPWZ1bmN0aW9uKG4scil7fSxlLnByb3RvdHlwZS5nZXRTdWJTaGFwZVN0eWxlPWZ1bmN0aW9uKG4pe3ZhciByPW4ueCxpPW4ueSxhPW4udHJhbnNmb3JtLG89bi50cmFuc2Zvcm1PcmlnaW4scz1uLmNsYXNzLGM9bi5jbGFzc05hbWUsbD1uLnpJbmRleCx1PSRyKG4sWyJ4IiwieSIsInRyYW5zZm9ybSIsInRyYW5zZm9ybU9yaWdpbiIsImNsYXNzIiwiY2xhc3NOYW1lIiwiekluZGV4Il0pO3JldHVybiB1fSxlfShtcCk7ZnVuY3Rpb24gUGEodCxlLG4scixpKXtyZXR1cm4gcj09PXZvaWQgMCYmKHI9ITApLGk9PT12b2lkIDAmJihpPWZ1bmN0aW9uKGEpe2Eubm9kZSgpLnJlbW92ZUNoaWxkcmVuKCl9KSx0P24oZSk6KHImJmkoZSksbnVsbCl9ZnVuY3Rpb24gYzkodCxlKXtpZih0Lmxlbmd0aDw9ZSlyZXR1cm4gdDtmb3IodmFyIG49TWF0aC5mbG9vcih0Lmxlbmd0aC9lKSxyPVtdLGk9MDtpPHQubGVuZ3RoO2krPW4pci5wdXNoKHRbaV0pO3JldHVybiByfXZhciBhdz1mdW5jdGlvbih0KXthcihlLHQpO2Z1bmN0aW9uIGUobil7bj09PXZvaWQgMCYmKG49e30pO3ZhciByPW4uc3R5bGUsaT0kcihuLFsic3R5bGUiXSk7cmV0dXJuIHQuY2FsbCh0aGlzLEF0KHtzdHlsZTpBdCh7dGV4dDoiIixmaWxsOiJibGFjayIsZm9udEZhbWlseToic2Fucy1zZXJpZiIsZm9udFNpemU6MTYsZm9udFN0eWxlOiJub3JtYWwiLGZvbnRWYXJpYW50OiJub3JtYWwiLGZvbnRXZWlnaHQ6Im5vcm1hbCIsbGluZVdpZHRoOjEsdGV4dEFsaWduOiJzdGFydCIsdGV4dEJhc2VsaW5lOiJtaWRkbGUifSxyKX0saSkpfHx0aGlzfXJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsIm9mZnNjcmVlbkdyb3VwIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX29mZnNjcmVlbnx8KHRoaXMuX29mZnNjcmVlbj10VCh0aGlzKSksdGhpcy5fb2Zmc2NyZWVufSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLmRpc2Nvbm5lY3RlZENhbGxiYWNrPWZ1bmN0aW9uKCl7dmFyIG47KG49dGhpcy5fb2Zmc2NyZWVuKT09PW51bGx8fG49PT12b2lkIDB8fG4uZGVzdHJveSgpfSxlfShwbyk7ZnVuY3Rpb24gbDkodCxlKXt2YXIgbj1uZXcgTWFwO3JldHVybiB0LmZvckVhY2goZnVuY3Rpb24ocil7dmFyIGk9ZShyKTtuLmhhcyhpKXx8bi5zZXQoaSxbXSksbi5nZXQoaSkucHVzaChyKX0pLG59ZnVuY3Rpb24gdTkodCl7dGhyb3cgbmV3IEVycm9yKHQpfXZhciBmOT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoaSxhLG8scyxjLGwsdSl7aT09PXZvaWQgMCYmKGk9bnVsbCksYT09PXZvaWQgMCYmKGE9bnVsbCksbz09PXZvaWQgMCYmKG89bnVsbCkscz09PXZvaWQgMCYmKHM9bnVsbCksYz09PXZvaWQgMCYmKGM9W251bGwsbnVsbCxudWxsLG51bGwsbnVsbF0pLGw9PT12b2lkIDAmJihsPVtdKSx1PT09dm9pZCAwJiYodT1bXSksZS5hZGQodGhpcyksdGhpcy5fZWxlbWVudHM9QXJyYXkuZnJvbShpKSx0aGlzLl9kYXRhPWEsdGhpcy5fcGFyZW50PW8sdGhpcy5fZG9jdW1lbnQ9cyx0aGlzLl9lbnRlcj1jWzBdLHRoaXMuX3VwZGF0ZT1jWzFdLHRoaXMuX2V4aXQ9Y1syXSx0aGlzLl9tZXJnZT1jWzNdLHRoaXMuX3NwbGl0PWNbNF0sdGhpcy5fdHJhbnNpdGlvbnM9bCx0aGlzLl9mYWNldEVsZW1lbnRzPXV9dC5wcm90b3R5cGUuc2VsZWN0QWxsPWZ1bmN0aW9uKGkpe3ZhciBhPXR5cGVvZiBpPT0ic3RyaW5nIj90aGlzLl9wYXJlbnQucXVlcnlTZWxlY3RvckFsbChpKTppO3JldHVybiBuZXcgbihhLG51bGwsdGhpcy5fZWxlbWVudHNbMF0sdGhpcy5fZG9jdW1lbnQpfSx0LnByb3RvdHlwZS5zZWxlY3RGYWNldEFsbD1mdW5jdGlvbihpKXt2YXIgYT10eXBlb2YgaT09InN0cmluZyI/dGhpcy5fcGFyZW50LnF1ZXJ5U2VsZWN0b3JBbGwoaSk6aTtyZXR1cm4gbmV3IG4odGhpcy5fZWxlbWVudHMsbnVsbCx0aGlzLl9wYXJlbnQsdGhpcy5fZG9jdW1lbnQsdm9pZCAwLHZvaWQgMCxhKX0sdC5wcm90b3R5cGUuc2VsZWN0PWZ1bmN0aW9uKGkpe3ZhciBhPXR5cGVvZiBpPT0ic3RyaW5nIj90aGlzLl9wYXJlbnQucXVlcnlTZWxlY3RvckFsbChpKVswXXx8bnVsbDppO3JldHVybiBuZXcgbihbYV0sbnVsbCxhLHRoaXMuX2RvY3VtZW50KX0sdC5wcm90b3R5cGUuYXBwZW5kPWZ1bmN0aW9uKGkpe3ZhciBhPXRoaXMsbz10eXBlb2YgaT09ImZ1bmN0aW9uIj9pOmZ1bmN0aW9uKCl7cmV0dXJuIGEuY3JlYXRlRWxlbWVudChpKX0scz1bXTtpZih0aGlzLl9kYXRhIT09bnVsbCl7Zm9yKHZhciBjPTA7Yzx0aGlzLl9kYXRhLmxlbmd0aDtjKyspe3ZhciBsPXRoaXMuX2RhdGFbY10sdT1WKEFycmF5LmlzQXJyYXkobCk/bDpbbCxudWxsXSwyKSxmPXVbMF0sZD11WzFdLGg9byhmLGMpO2guX19kYXRhX189ZixkIT09bnVsbCYmKGguX19mcm9tRWxlbWVudHNfXz1kKSx0aGlzLl9wYXJlbnQuYXBwZW5kQ2hpbGQoaCkscy5wdXNoKGgpfXJldHVybiBuZXcgbihzLG51bGwsdGhpcy5fcGFyZW50LHRoaXMuX2RvY3VtZW50KX1mb3IodmFyIGM9MDtjPHRoaXMuX2VsZW1lbnRzLmxlbmd0aDtjKyspe3ZhciB2PXRoaXMuX2VsZW1lbnRzW2NdLGY9di5fX2RhdGFfXyxoPW8oZixjKTt2LmFwcGVuZENoaWxkKGgpLHMucHVzaChoKX1yZXR1cm4gbmV3IG4ocyxudWxsLHNbMF0sdGhpcy5fZG9jdW1lbnQpfSx0LnByb3RvdHlwZS5tYXliZUFwcGVuZD1mdW5jdGlvbihpLGEpe3ZhciBvPVJyKHRoaXMsZSwibSIscikuY2FsbCh0aGlzLGlbMF09PT0iIyI/aToiIyIuY29uY2F0KGkpLGEpO3JldHVybiBvLmF0dHIoImlkIixpKSxvfSx0LnByb3RvdHlwZS5tYXliZUFwcGVuZEJ5Q2xhc3NOYW1lPWZ1bmN0aW9uKGksYSl7dmFyIG89aS50b1N0cmluZygpLHM9UnIodGhpcyxlLCJtIixyKS5jYWxsKHRoaXMsb1swXT09PSIuIj9vOiIuIi5jb25jYXQobyksYSk7cmV0dXJuIHMuYXR0cigiY2xhc3NOYW1lIixvKSxzfSx0LnByb3RvdHlwZS5tYXliZUFwcGVuZEJ5TmFtZT1mdW5jdGlvbihpLGEpe3ZhciBvPVJyKHRoaXMsZSwibSIscikuY2FsbCh0aGlzLCdbbmFtZT0iJy5jb25jYXQoaSwnIl0nKSxhKTtyZXR1cm4gby5hdHRyKCJuYW1lIixpKSxvfSx0LnByb3RvdHlwZS5kYXRhPWZ1bmN0aW9uKGksYSxvKXt2YXIgcyxjO2E9PT12b2lkIDAmJihhPWZ1bmN0aW9uKFApe3JldHVybiBQfSksbz09PXZvaWQgMCYmKG89ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0pO2Zvcih2YXIgbD1bXSx1PVtdLGY9bmV3IFNldCh0aGlzLl9lbGVtZW50cyksZD1bXSxoPW5ldyBTZXQsdj1uZXcgTWFwKHRoaXMuX2VsZW1lbnRzLm1hcChmdW5jdGlvbihQLEMpe3JldHVyblthKFAuX19kYXRhX18sQyksUF19KSksZz1uZXcgTWFwKHRoaXMuX2ZhY2V0RWxlbWVudHMubWFwKGZ1bmN0aW9uKFAsQyl7cmV0dXJuW2EoUC5fX2RhdGFfXyxDKSxQXX0pKSx5PWw5KHRoaXMuX2VsZW1lbnRzLGZ1bmN0aW9uKFApe3JldHVybiBvKFAuX19kYXRhX18pfSksYj0wO2I8aS5sZW5ndGg7YisrKXt2YXIgeD1pW2JdLF89YSh4LGIpLHc9byh4LGIpO2lmKHYuaGFzKF8pKXt2YXIgTz12LmdldChfKTtPLl9fZGF0YV9fPXgsTy5fX2ZhY2V0X189ITEsdS5wdXNoKE8pLGYuZGVsZXRlKE8pLHYuZGVsZXRlKF8pfWVsc2UgaWYoZy5oYXMoXykpe3ZhciBPPWcuZ2V0KF8pO08uX19kYXRhX189eCxPLl9fZmFjZXRfXz0hMCx1LnB1c2goTyksZy5kZWxldGUoXyl9ZWxzZSBpZih5LmhhcyhfKSl7dmFyIEU9eS5nZXQoXyk7ZC5wdXNoKFt4LEVdKTt0cnl7Zm9yKHZhciBNPShzPXZvaWQgMCxnaShFKSksaz1NLm5leHQoKTshay5kb25lO2s9TS5uZXh0KCkpe3ZhciBPPWsudmFsdWU7Zi5kZWxldGUoTyl9fWNhdGNoKFApe3M9e2Vycm9yOlB9fWZpbmFsbHl7dHJ5e2smJiFrLmRvbmUmJihjPU0ucmV0dXJuKSYmYy5jYWxsKE0pfWZpbmFsbHl7aWYocyl0aHJvdyBzLmVycm9yfX15LmRlbGV0ZShfKX1lbHNlIGlmKHYuaGFzKHcpKXt2YXIgTz12LmdldCh3KTtPLl9fdG9EYXRhX18/Ty5fX3RvRGF0YV9fLnB1c2goeCk6Ty5fX3RvRGF0YV9fPVt4XSxoLmFkZChPKSxmLmRlbGV0ZShPKX1lbHNlIGwucHVzaCh4KX12YXIgQT1bbmV3IG4oW10sbCx0aGlzLl9wYXJlbnQsdGhpcy5fZG9jdW1lbnQpLG5ldyBuKHUsbnVsbCx0aGlzLl9wYXJlbnQsdGhpcy5fZG9jdW1lbnQpLG5ldyBuKGYsbnVsbCx0aGlzLl9wYXJlbnQsdGhpcy5fZG9jdW1lbnQpLG5ldyBuKFtdLGQsdGhpcy5fcGFyZW50LHRoaXMuX2RvY3VtZW50KSxuZXcgbihoLG51bGwsdGhpcy5fcGFyZW50LHRoaXMuX2RvY3VtZW50KV07cmV0dXJuIG5ldyBuKHRoaXMuX2VsZW1lbnRzLG51bGwsdGhpcy5fcGFyZW50LHRoaXMuX2RvY3VtZW50LEEpfSx0LnByb3RvdHlwZS5tZXJnZT1mdW5jdGlvbihpKXt2YXIgYT10ZSh0ZShbXSxWKHRoaXMuX2VsZW1lbnRzKSwhMSksVihpLl9lbGVtZW50cyksITEpLG89dGUodGUoW10sVih0aGlzLl90cmFuc2l0aW9ucyksITEpLFYoaS5fdHJhbnNpdGlvbnMpLCExKTtyZXR1cm4gbmV3IG4oYSxudWxsLHRoaXMuX3BhcmVudCx0aGlzLl9kb2N1bWVudCx2b2lkIDAsbyl9LHQucHJvdG90eXBlLmNyZWF0ZUVsZW1lbnQ9ZnVuY3Rpb24oaSl7aWYodGhpcy5fZG9jdW1lbnQpcmV0dXJuIHRoaXMuX2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoaSx7fSk7dmFyIGE9bi5yZWdpc3RyeVtpXTtyZXR1cm4gYT9uZXcgYTp1OSgiVW5rbm93biBub2RlIHR5cGU6ICIuY29uY2F0KGkpKX0sdC5wcm90b3R5cGUuam9pbj1mdW5jdGlvbihpLGEsbyxzLGMpe2k9PT12b2lkIDAmJihpPWZ1bmN0aW9uKHYpe3JldHVybiB2fSksYT09PXZvaWQgMCYmKGE9ZnVuY3Rpb24odil7cmV0dXJuIHZ9KSxvPT09dm9pZCAwJiYobz1mdW5jdGlvbih2KXtyZXR1cm4gdi5yZW1vdmUoKX0pLHM9PT12b2lkIDAmJihzPWZ1bmN0aW9uKHYpe3JldHVybiB2fSksYz09PXZvaWQgMCYmKGM9ZnVuY3Rpb24odil7cmV0dXJuIHYucmVtb3ZlKCl9KTt2YXIgbD1pKHRoaXMuX2VudGVyKSx1PWEodGhpcy5fdXBkYXRlKSxmPW8odGhpcy5fZXhpdCksZD1zKHRoaXMuX21lcmdlKSxoPWModGhpcy5fc3BsaXQpO3JldHVybiB1Lm1lcmdlKGwpLm1lcmdlKGYpLm1lcmdlKGQpLm1lcmdlKGgpfSx0LnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24oKXtmb3IodmFyIGk9ZnVuY3Rpb24ocyl7dmFyIGM9YS5fZWxlbWVudHNbc10sbD1hLl90cmFuc2l0aW9uc1tzXTtsP2wudGhlbihmdW5jdGlvbigpe3JldHVybiBjLnJlbW92ZSgpfSk6Yy5yZW1vdmUoKX0sYT10aGlzLG89MDtvPHRoaXMuX2VsZW1lbnRzLmxlbmd0aDtvKyspaShvKTtyZXR1cm4gbmV3IG4oW10sbnVsbCx0aGlzLl9wYXJlbnQsdGhpcy5fZG9jdW1lbnQsdm9pZCAwLHRoaXMuX3RyYW5zaXRpb25zKX0sdC5wcm90b3R5cGUuZWFjaD1mdW5jdGlvbihpKXtmb3IodmFyIGE9MDthPHRoaXMuX2VsZW1lbnRzLmxlbmd0aDthKyspe3ZhciBvPXRoaXMuX2VsZW1lbnRzW2FdLHM9by5fX2RhdGFfXztpLmNhbGwobyxzLGEpfXJldHVybiB0aGlzfSx0LnByb3RvdHlwZS5hdHRyPWZ1bmN0aW9uKGksYSl7dmFyIG89dHlwZW9mIGEhPSJmdW5jdGlvbiI/ZnVuY3Rpb24oKXtyZXR1cm4gYX06YTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKHMsYyl7YSE9PXZvaWQgMCYmKHRoaXNbaV09by5jYWxsKHRoaXMscyxjKSl9KX0sdC5wcm90b3R5cGUuc3R5bGU9ZnVuY3Rpb24oaSxhLG8pe289PT12b2lkIDAmJihvPSEwKTt2YXIgcz10eXBlb2YgYSE9ImZ1bmN0aW9uInx8IW8/ZnVuY3Rpb24oKXtyZXR1cm4gYX06YTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGMsbCl7YSE9PXZvaWQgMCYmKHRoaXMuc3R5bGVbaV09cy5jYWxsKHRoaXMsYyxsKSl9KX0sdC5wcm90b3R5cGUuc3R5bGVzPWZ1bmN0aW9uKGksYSl7cmV0dXJuIGk9PT12b2lkIDAmJihpPXt9KSxhPT09dm9pZCAwJiYoYT0hMCksdGhpcy5lYWNoKGZ1bmN0aW9uKG8scyl7dmFyIGM9dGhpcztPYmplY3QuZW50cmllcyhpKS5mb3JFYWNoKGZ1bmN0aW9uKGwpe3ZhciB1PVYobCwyKSxmPXVbMF0sZD11WzFdLGg9dHlwZW9mIGQhPSJmdW5jdGlvbiJ8fCFhP2Z1bmN0aW9uKCl7cmV0dXJuIGR9OmQ7ZCE9PXZvaWQgMCYmYy5hdHRyKGYsaC5jYWxsKGMsbyxzKSl9KX0pfSx0LnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oaSxhKXthPT09dm9pZCAwJiYoYT0hMCk7dmFyIG89dHlwZW9mIGkhPSJmdW5jdGlvbiJ8fCFhP2Z1bmN0aW9uKCl7cmV0dXJuIGl9Omk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihzLGMpe2kmJnRoaXMudXBkYXRlJiZ0aGlzLnVwZGF0ZShvLmNhbGwodGhpcyxzLGMpKX0pfSx0LnByb3RvdHlwZS5tYXliZVVwZGF0ZT1mdW5jdGlvbihpLGEpe2E9PT12b2lkIDAmJihhPSEwKTt2YXIgbz10eXBlb2YgaSE9ImZ1bmN0aW9uInx8IWE/ZnVuY3Rpb24oKXtyZXR1cm4gaX06aTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKHMsYyl7aSYmdGhpcy51cGRhdGUmJnRoaXMudXBkYXRlKG8uY2FsbCh0aGlzLHMsYykpfSl9LHQucHJvdG90eXBlLnRyYW5zaXRpb249ZnVuY3Rpb24oaSl7dmFyIGE9dGhpcy5fdHJhbnNpdGlvbnM7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihvLHMpe2Fbc109aS5jYWxsKHRoaXMsbyxzKX0pfSx0LnByb3RvdHlwZS5vbj1mdW5jdGlvbihpLGEpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt0aGlzLmFkZEV2ZW50TGlzdGVuZXIoaSxhKX0pLHRoaXN9LHQucHJvdG90eXBlLmNhbGw9ZnVuY3Rpb24oaSl7Zm9yKHZhciBhPVtdLG89MTtvPGFyZ3VtZW50cy5sZW5ndGg7bysrKWFbby0xXT1hcmd1bWVudHNbb107cmV0dXJuIGkuY2FsbC5hcHBseShpLHRlKFt0aGlzLl9wYXJlbnQsdGhpc10sVihhKSwhMSkpLHRoaXN9LHQucHJvdG90eXBlLm5vZGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZWxlbWVudHNbMF19LHQucHJvdG90eXBlLm5vZGVzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2VsZW1lbnRzfSx0LnByb3RvdHlwZS50cmFuc2l0aW9ucz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl90cmFuc2l0aW9ucy5maWx0ZXIoZnVuY3Rpb24oaSl7cmV0dXJuISFpfSl9LHQucHJvdG90eXBlLnBhcmVudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9wYXJlbnR9O3ZhciBlLG4scjtyZXR1cm4gbj10LGU9bmV3IFdlYWtTZXQscj1mdW5jdGlvbihhLG8pe3ZhciBzPXRoaXMuX2VsZW1lbnRzWzBdLGM9cy5xdWVyeVNlbGVjdG9yKGEpO2lmKGMpcmV0dXJuIG5ldyBuKFtjXSxudWxsLHRoaXMuX3BhcmVudCx0aGlzLl9kb2N1bWVudCk7dmFyIGw9dHlwZW9mIG89PSJzdHJpbmciP3RoaXMuY3JlYXRlRWxlbWVudChvKTpvKCk7cmV0dXJuIHMuYXBwZW5kQ2hpbGQobCksbmV3IG4oW2xdLG51bGwsdGhpcy5fcGFyZW50LHRoaXMuX2RvY3VtZW50KX0sdC5yZWdpc3RyeT17Zzp1aSxyZWN0OlFjLGNpcmNsZTp0YyxwYXRoOlFpLHRleHQ6YXcsZWxsaXBzZTpPeSxpbWFnZTpTeSxsaW5lOnN1LHBvbHlnb246Y3UscG9seWxpbmU6RXksaHRtbDpicH0sdH0oKTtmdW5jdGlvbiBGZSh0KXtyZXR1cm4gbmV3IGY5KFt0XSxudWxsLHQsdC5vd25lckRvY3VtZW50KX1mdW5jdGlvbiBkOSh0LGUsbil7cmV0dXJuIHQucXVlcnlTZWxlY3RvcihlKT9GZSh0KS5zZWxlY3QoZSk6RmUodCkuYXBwZW5kKG4pfXZhciB4bz1mdW5jdGlvbih0LGUpe3ZhciBuPWZ1bmN0aW9uKGkpe3JldHVybiIiLmNvbmNhdChlLCItIikuY29uY2F0KGkpfSxyPU9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyh0KS5tYXAoZnVuY3Rpb24oaSl7dmFyIGE9VihpLDIpLG89YVswXSxzPWFbMV0sYz1uKHMpO3JldHVybltvLHtuYW1lOmMsY2xhc3M6Ii4iLmNvbmNhdChjKSxpZDoiIyIuY29uY2F0KGMpLHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIGN9fV19KSk7cmV0dXJuIE9iamVjdC5hc3NpZ24ocix7cHJlZml4Om59KSxyfSxvdz17ZGF0YTpbXSxhbmltYXRlOntlbnRlcjohMSx1cGRhdGU6e2R1cmF0aW9uOjEwMCxlYXNpbmc6ImVhc2UtaW4tb3V0LXNpbmUiLGZpbGw6ImJvdGgifSxleGl0OntkdXJhdGlvbjoxMDAsZmlsbDoiYm90aCJ9fSxzaG93QXJyb3c6ITAsc2hvd0dyaWQ6ITAsc2hvd0xhYmVsOiEwLHNob3dMaW5lOiEwLHNob3dUaWNrOiEwLHNob3dUaXRsZTohMCxzaG93VHJ1bmM6ITEsZGF0YVRocmVzaG9sZDoxMDAsbGluZUxpbmVXaWR0aDoxLGxpbmVTdHJva2U6ImJsYWNrIixjcm9zc1BhZGRpbmc6MTAsdGl0bGVGaWxsOiJibGFjayIsdGl0bGVGb250U2l6ZToxMix0aXRsZVBvc2l0aW9uOiJsYiIsdGl0bGVTcGFjaW5nOjAsdGl0bGVUZXh0QWxpZ246ImNlbnRlciIsdGl0bGVUZXh0QmFzZWxpbmU6Im1pZGRsZSIsbGluZUFycm93OmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBRaSh7c3R5bGU6e2Q6W1siTSIsMTAsMTBdLFsiTCIsLTEwLDBdLFsiTCIsMTAsLTEwXSxbIkwiLDAsMF0sWyJMIiwxMCwxMF0sWyJaIl1dLGZpbGw6ImJsYWNrIix0cmFuc2Zvcm1PcmlnaW46ImNlbnRlciJ9fSl9LGxhYmVsQWxpZ246InBhcmFsbGVsIixsYWJlbERpcmVjdGlvbjoicG9zaXRpdmUiLGxhYmVsRm9udFNpemU6MTIsbGFiZWxTcGFjaW5nOjAsZ3JpZENvbm5lY3Q6ImxpbmUiLGdyaWRDb250cm9sQW5nbGVzOltdLGdyaWREaXJlY3Rpb246InBvc2l0aXZlIixncmlkTGVuZ3RoOjAsZ3JpZFR5cGU6InNlZ21lbnQiLGxpbmVBcnJvd09mZnNldDoxNSxsaW5lQXJyb3dTaXplOjEwLHRpY2tEaXJlY3Rpb246InBvc2l0aXZlIix0aWNrTGVuZ3RoOjUsdGlja0xpbmVXaWR0aDoxLHRpY2tTdHJva2U6ImJsYWNrIixsYWJlbE92ZXJsYXA6W119LHFhdD1tdCh7fSxvdyx7c3R5bGU6e3R5cGU6ImFyYyJ9fSksS2F0PW10KHt9LG93LHtzdHlsZTp7fX0pLHpuPXhvKHttYWluR3JvdXA6Im1haW4tZ3JvdXAiLGdyaWRHcm91cDoiZ3JpZC1ncm91cCIsZ3JpZDoiZ3JpZCIsbGluZUdyb3VwOiJsaW5lLWdyb3VwIixsaW5lOiJsaW5lIix0aWNrR3JvdXA6InRpY2stZ3JvdXAiLHRpY2s6InRpY2siLHRpY2tJdGVtOiJ0aWNrLWl0ZW0iLGxhYmVsR3JvdXA6ImxhYmVsLWdyb3VwIixsYWJlbDoibGFiZWwiLGxhYmVsSXRlbToibGFiZWwtaXRlbSIsdGl0bGVHcm91cDoidGl0bGUtZ3JvdXAiLHRpdGxlOiJ0aXRsZSIsbGluZUZpcnN0OiJsaW5lLWZpcnN0IixsaW5lU2Vjb25kOiJsaW5lLXNlY29uZCJ9LCJheGlzIik7ZnVuY3Rpb24gYWModCxlKXtyZXR1cm5bdFswXSplLHRbMV0qZV19ZnVuY3Rpb24ga3AodCxlKXtyZXR1cm5bdFswXStlWzBdLHRbMV0rZVsxXV19ZnVuY3Rpb24gc3codCxlKXtyZXR1cm5bdFswXS1lWzBdLHRbMV0tZVsxXV19ZnVuY3Rpb24gZHUodCxlKXtyZXR1cm5bTWF0aC5taW4odFswXSxlWzBdKSxNYXRoLm1pbih0WzFdLGVbMV0pXX1mdW5jdGlvbiBodSh0LGUpe3JldHVybltNYXRoLm1heCh0WzBdLGVbMF0pLE1hdGgubWF4KHRbMV0sZVsxXSldfWZ1bmN0aW9uIEFwKHQsZSl7cmV0dXJuIE1hdGguc3FydChNYXRoLnBvdyh0WzBdLWVbMF0sMikrTWF0aC5wb3codFsxXS1lWzFdLDIpKX1mdW5jdGlvbiBlVCh0KXtpZih0WzBdPT09MCYmdFsxXT09PTApcmV0dXJuWzAsMF07dmFyIGU9TWF0aC5zcXJ0KE1hdGgucG93KHRbMF0sMikrTWF0aC5wb3codFsxXSwyKSk7cmV0dXJuW3RbMF0vZSx0WzFdL2VdfWZ1bmN0aW9uIFFhdCh0LGUsbil7dmFyIHI9X19yZWFkKHQsMiksaT1yWzBdLGE9clsxXSxvPV9fcmVhZChlLDIpLHM9b1swXSxjPW9bMV0sbD1pLXMsdT1hLWMsZj1NYXRoLnNpbihuKSxkPU1hdGguY29zKG4pO3JldHVybltsKmQtdSpmK3MsbCpmK3UqZCtjXX1mdW5jdGlvbiBoOSh0LGUpe3JldHVybiBlP1t0WzFdLC10WzBdXTpbLXRbMV0sdFswXV19ZnVuY3Rpb24gSmYodCl7cmV0dXJuIHQqTWF0aC5QSS8xODB9ZnVuY3Rpb24gblQodCl7cmV0dXJuIE51bWJlcigodCoxODAvTWF0aC5QSSkudG9QcmVjaXNpb24oNSkpfWZ1bmN0aW9uIGN3KHQpe3JldHVybiB0LnRvU3RyaW5nKCkuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrdC50b1N0cmluZygpLnNsaWNlKDEpfWZ1bmN0aW9uIHA5KHQpe3JldHVybiB0LnRvU3RyaW5nKCkuY2hhckF0KDApLnRvTG93ZXJDYXNlKCkrdC50b1N0cmluZygpLnNsaWNlKDEpfWZ1bmN0aW9uIHY5KHQsZSl7cmV0dXJuIiIuY29uY2F0KGUpLmNvbmNhdChjdyh0KSl9ZnVuY3Rpb24gclQodCxlLG4pe3ZhciByO249PT12b2lkIDAmJihuPSEwKTt2YXIgaT1lfHwoKHI9dC5tYXRjaCgvXihbYS16XVthLXowLTldKykvKSk9PT1udWxsfHxyPT09dm9pZCAwP3ZvaWQgMDpyWzBdKXx8IiIsYT10LnJlcGxhY2UobmV3IFJlZ0V4cCgiXigiLmNvbmNhdChpLCIpIikpLCIiKTtyZXR1cm4gbj9wOShhKTphfWZ1bmN0aW9uIGc5KHQsZSl7T2JqZWN0LmVudHJpZXMoZSkuZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgcj1WKG4sMiksaT1yWzBdLGE9clsxXTt0ZShbdF0sVih0LnF1ZXJ5U2VsZWN0b3JBbGwoaSkpLCExKS5maWx0ZXIoZnVuY3Rpb24obyl7cmV0dXJuIG8ubWF0Y2hlcyhpKX0pLmZvckVhY2goZnVuY3Rpb24obyl7aWYobyl7dmFyIHM9bztzLnN0eWxlLmNzc1RleHQrPU9iamVjdC5lbnRyaWVzKGEpLnJlZHVjZShmdW5jdGlvbihjLGwpe3JldHVybiIiLmNvbmNhdChjKS5jb25jYXQobC5qb2luKCI6IiksIjsiKX0sIiIpfX0pfSl9dmFyIG9tPWZ1bmN0aW9uKHQsZSl7aWYoISh0IT1udWxsJiZ0LnN0YXJ0c1dpdGgoZSkpKXJldHVybiExO3ZhciBuPXRbZS5sZW5ndGhdO3JldHVybiBuPj0iQSImJm48PSJaIn07ZnVuY3Rpb24gZW4odCxlLG4pe249PT12b2lkIDAmJihuPSExKTt2YXIgcj17fTtyZXR1cm4gT2JqZWN0LmVudHJpZXModCkuZm9yRWFjaChmdW5jdGlvbihpKXt2YXIgYT1WKGksMiksbz1hWzBdLHM9YVsxXTtpZighKG89PT0iY2xhc3NOYW1lInx8bz09PSJjbGFzcyIpKXtpZihvbShvLCJzaG93IikmJm9tKHJUKG8sInNob3ciKSxlKSE9PW4pbz09PXY5KGUsInNob3ciKT9yW29dPXM6cltvLnJlcGxhY2UobmV3IFJlZ0V4cChjdyhlKSksIiIpXT1zO2Vsc2UgaWYoIW9tKG8sInNob3ciKSYmb20obyxlKSE9PW4pe3ZhciBjPXJUKG8sZSk7Yz09PSJmaWx0ZXIiJiZ0eXBlb2Ygcz09ImZ1bmN0aW9uInx8KHJbY109cyl9fX0pLHJ9ZnVuY3Rpb24gZHModCxlKXtyZXR1cm4gT2JqZWN0LmVudHJpZXModCkucmVkdWNlKGZ1bmN0aW9uKG4scil7dmFyIGk9VihyLDIpLGE9aVswXSxvPWlbMV07cmV0dXJuIGEuc3RhcnRzV2l0aCgic2hvdyIpP25bInNob3ciLmNvbmNhdChlKS5jb25jYXQoYS5zbGljZSg0KSldPW86blsiIi5jb25jYXQoZSkuY29uY2F0KGN3KGEpKV09byxufSx7fSl9ZnVuY3Rpb24gb2ModCxlKXtlPT09dm9pZCAwJiYoZT1bIngiLCJ5IiwiY2xhc3MiLCJjbGFzc05hbWUiXSk7dmFyIG49WyJ0cmFuc2Zvcm0iLCJ0cmFuc2Zvcm1PcmlnaW4iLCJhbmNob3IiLCJ2aXNpYmlsaXR5IiwicG9pbnRlckV2ZW50cyIsInpJbmRleCIsImN1cnNvciIsImNsaXBQYXRoIiwiY2xpcFBhdGhUYXJnZXRzIiwib2Zmc2V0UGF0aCIsIm9mZnNldFBhdGhUYXJnZXRzIiwib2Zmc2V0RGlzdGFuY2UiLCJkcmFnZ2FibGUiLCJkcm9wcGFibGUiXSxyPXt9LGk9e307cmV0dXJuIE9iamVjdC5lbnRyaWVzKHQpLmZvckVhY2goZnVuY3Rpb24oYSl7dmFyIG89VihhLDIpLHM9b1swXSxjPW9bMV07ZS5pbmNsdWRlcyhzKXx8KG4uaW5kZXhPZihzKSE9PS0xP2lbc109YzpyW3NdPWMpfSksW3IsaV19ZnVuY3Rpb24gX28odCxlKXtyZXR1cm4gWG4odCk/dC5hcHBseSh2b2lkIDAsdGUoW10sVihlKSwhMSkpOnR9ZnVuY3Rpb24gc20odCxlKXtyZXR1cm4gdC5zdHlsZS5vcGFjaXR5fHwodC5zdHlsZS5vcGFjaXR5PTEpLHpvKHQse29wYWNpdHk6MH0sZSl9dmFyIHk5PVsiJGVsIiwiY3giLCJjeSIsImQiLCJkeCIsImR5IiwiZmlsbCIsImZpbGxPcGFjaXR5IiwiZmlsdGVyIiwiZm9udEZhbWlseSIsImZvbnRTaXplIiwiZm9udFN0eWxlIiwiZm9udFZhcmlhbnQiLCJmb250V2VpZ2h0IiwiaGVpZ2h0IiwiaW1nIiwiaW5jcmVhc2VkTGluZVdpZHRoRm9ySGl0VGVzdGluZyIsImlubmVySFRNTCIsImlzQmlsbGJvYXJkIiwiYmlsbGJvYXJkUm90YXRpb24iLCJpc1NpemVBdHRlbnVhdGlvbiIsImlzQ2xvc2VkIiwiaXNPdmVyZmxvd2luZyIsImxlYWRpbmciLCJsZXR0ZXJTcGFjaW5nIiwibGluZURhc2giLCJsaW5lSGVpZ2h0IiwibGluZVdpZHRoIiwibWFya2VyRW5kIiwibWFya2VyRW5kT2Zmc2V0IiwibWFya2VyTWlkIiwibWFya2VyU3RhcnQiLCJtYXJrZXJTdGFydE9mZnNldCIsIm1heExpbmVzIiwibWV0cmljcyIsIm1pdGVyTGltaXQiLCJvZmZzZXRYIiwib2Zmc2V0WSIsIm9wYWNpdHkiLCJwYXRoIiwicG9pbnRzIiwiciIsInJhZGl1cyIsInJ4IiwicnkiLCJzaGFkb3dDb2xvciIsInNyYyIsInN0cm9rZSIsInN0cm9rZU9wYWNpdHkiLCJ0ZXh0IiwidGV4dEFsaWduIiwidGV4dEJhc2VsaW5lIiwidGV4dERlY29yYXRpb25Db2xvciIsInRleHREZWNvcmF0aW9uTGluZSIsInRleHREZWNvcmF0aW9uU3R5bGUiLCJ0ZXh0T3ZlcmZsb3ciLCJ0ZXh0UGF0aCIsInRleHRQYXRoU2lkZSIsInRleHRQYXRoU3RhcnRPZmZzZXQiLCJ0cmFuc2Zvcm0iLCJ0cmFuc2Zvcm1PcmlnaW4iLCJ2aXNpYmlsaXR5Iiwid2lkdGgiLCJ3b3JkV3JhcCIsIndvcmRXcmFwV2lkdGgiLCJ4IiwieDEiLCJ4MiIsInkiLCJ5MSIsInkyIiwiejEiLCJ6MiIsInpJbmRleCJdO2Z1bmN0aW9uIG05KHQpe3JldHVybiB5OS5pbmNsdWRlcyh0KX1mdW5jdGlvbiBpVCh0KXt2YXIgZT17fTtmb3IodmFyIG4gaW4gdCltOShuKSYmKGVbbl09dFtuXSk7cmV0dXJuIGV9dmFyIHRkPXhvKHtsaW5lR3JvdXA6ImxpbmUtZ3JvdXAiLGxpbmU6ImxpbmUiLHJlZ2lvbkdyb3VwOiJyZWdpb24tZ3JvdXAiLHJlZ2lvbjoicmVnaW9uIn0sImdyaWQiKTtmdW5jdGlvbiBhVCh0KXtyZXR1cm4gdC5yZWR1Y2UoZnVuY3Rpb24oZSxuLHIpe3JldHVybiBlLnB1c2godGUoW3I9PT0wPyJNIjoiTCJdLFYobiksITEpKSxlfSxbXSl9ZnVuY3Rpb24gYjkodCxlLG4pe3ZhciByPWUuY29ubmVjdCxpPXI9PT12b2lkIDA/ImxpbmUiOnIsYT1lLmNlbnRlcjtpZihpPT09ImxpbmUiKXJldHVybiBhVCh0KTtpZighYSlyZXR1cm5bXTt2YXIgbz1BcCh0WzBdLGEpLHM9bj8wOjE7cmV0dXJuIHQucmVkdWNlKGZ1bmN0aW9uKGMsbCx1KXtyZXR1cm4gdT09PTA/Yy5wdXNoKHRlKFsiTSJdLFYobCksITEpKTpjLnB1c2godGUoWyJBIixvLG8sMCwwLHNdLFYobCksITEpKSxjfSxbXSl9ZnVuY3Rpb24gbHcodCxlLG4pe3JldHVybiBlLnR5cGU9PT0ic3Vycm91bmQiP2I5KHQsZSxuKTphVCh0KX1mdW5jdGlvbiB4OSh0LGUsbil7dmFyIHI9bi50eXBlLGk9bi5jb25uZWN0LGE9bi5jZW50ZXIsbz1uLmNsb3NlZCxzPW8/W1siWiJdXTpbXSxjPVYoW2x3KHQsbiksbHcoZS5zbGljZSgpLnJldmVyc2UoKSxuLCEwKV0sMiksbD1jWzBdLHU9Y1sxXSxmPVYoW3RbMF0sZS5zbGljZSgtMSlbMF1dLDIpLGQ9ZlswXSxoPWZbMV0sdj1mdW5jdGlvbih4LF8pe3JldHVybltsLHgsdSxfLHNdLmZsYXQoKX07aWYoaT09PSJsaW5lInx8cj09PSJzdXJyb3VuZCIpcmV0dXJuIHYoW3RlKFsiTCJdLFYoaCksITEpXSxbdGUoWyJMIl0sVihkKSwhMSldKTtpZighYSl0aHJvdyBuZXcgRXJyb3IoIkFyYyBncmlkIG5lZWQgdG8gc3BlY2lmaWVkIGNlbnRlciIpO3ZhciBnPVYoW0FwKGgsYSksQXAoZCxhKV0sMikseT1nWzBdLGI9Z1sxXTtyZXR1cm4gdihbdGUoWyJBIix5LHksMCwwLDFdLFYoaCksITEpLHRlKFsiTCJdLFYoaCksITEpXSxbdGUoWyJBIixiLGIsMCwwLDBdLFYoZCksITEpLHRlKFsiTCJdLFYoZCksITEpXSl9ZnVuY3Rpb24gXzkodCxlLG4scil7dmFyIGk9bi5hbmltYXRlLGE9bi5pc0JpbGxib2FyZCxvPWUubWFwKGZ1bmN0aW9uKHMsYyl7cmV0dXJue2lkOnMuaWR8fCJncmlkLWxpbmUtIi5jb25jYXQoYyksZDpsdyhzLnBvaW50cyxuKX19KTtyZXR1cm4gdC5zZWxlY3RBbGwodGQubGluZS5jbGFzcykuZGF0YShvLGZ1bmN0aW9uKHMpe3JldHVybiBzLmlkfSkuam9pbihmdW5jdGlvbihzKXtyZXR1cm4gcy5hcHBlbmQoInBhdGgiKS5lYWNoKGZ1bmN0aW9uKGMsbCl7dmFyIHU9X28oaVQoQXQoe2Q6Yy5kfSxyKSksW2MsbCxvXSk7dGhpcy5hdHRyKEF0KHtjbGFzczp0ZC5saW5lLm5hbWUsc3Ryb2tlOiIjRDlEOUQ5IixsaW5lV2lkdGg6MSxsaW5lRGFzaDpbNCw0XSxpc0JpbGxib2FyZDphfSx1KSl9KX0sZnVuY3Rpb24ocyl7cmV0dXJuIHMudHJhbnNpdGlvbihmdW5jdGlvbihjLGwpe3ZhciB1PV9vKGlUKEF0KHtkOmMuZH0scikpLFtjLGwsb10pO3JldHVybiB6byh0aGlzLHUsaS51cGRhdGUpfSl9LGZ1bmN0aW9uKHMpe3JldHVybiBzLnRyYW5zaXRpb24oZnVuY3Rpb24oKXt2YXIgYz10aGlzLGw9c20odGhpcyxpLmV4aXQpO3JldHVybiBRZihsLGZ1bmN0aW9uKCl7cmV0dXJuIGMucmVtb3ZlKCl9KSxsfSl9KS50cmFuc2l0aW9ucygpfWZ1bmN0aW9uIHc5KHQsZSxuKXt2YXIgcj1uLmFuaW1hdGUsaT1uLmNvbm5lY3QsYT1uLmFyZWFGaWxsO2lmKGUubGVuZ3RoPDJ8fCFhfHwhaSlyZXR1cm5bXTtmb3IodmFyIG89QXJyYXkuaXNBcnJheShhKT9hOlthLCJ0cmFuc3BhcmVudCJdLHM9ZnVuY3Rpb24odil7cmV0dXJuIG9bdiVvLmxlbmd0aF19LGM9W10sbD0wO2w8ZS5sZW5ndGgtMTtsKyspe3ZhciB1PVYoW2VbbF0ucG9pbnRzLGVbbCsxXS5wb2ludHNdLDIpLGY9dVswXSxkPXVbMV0saD14OShmLGQsbik7Yy5wdXNoKHtkOmgsZmlsbDpzKGwpfSl9cmV0dXJuIHQuc2VsZWN0QWxsKHRkLnJlZ2lvbi5jbGFzcykuZGF0YShjLGZ1bmN0aW9uKHYsZyl7cmV0dXJuIGd9KS5qb2luKGZ1bmN0aW9uKHYpe3JldHVybiB2LmFwcGVuZCgicGF0aCIpLmVhY2goZnVuY3Rpb24oZyx5KXt2YXIgYj1fbyhnLFtnLHksY10pO3RoaXMuYXR0cihiKX0pLmF0dHIoImNsYXNzTmFtZSIsdGQucmVnaW9uLm5hbWUpfSxmdW5jdGlvbih2KXtyZXR1cm4gdi50cmFuc2l0aW9uKGZ1bmN0aW9uKGcseSl7dmFyIGI9X28oZyxbZyx5LGNdKTtyZXR1cm4gem8odGhpcyxiLHIudXBkYXRlKX0pfSxmdW5jdGlvbih2KXtyZXR1cm4gdi50cmFuc2l0aW9uKGZ1bmN0aW9uKCl7dmFyIGc9dGhpcyx5PXNtKHRoaXMsci5leGl0KTtyZXR1cm4gUWYoeSxmdW5jdGlvbigpe3JldHVybiBnLnJlbW92ZSgpfSkseX0pfSkudHJhbnNpdGlvbnMoKX1mdW5jdGlvbiBPOSh0KXt2YXIgZT10LmRhdGEsbj1lPT09dm9pZCAwP1tdOmUscj10LmNsb3NlZDtyZXR1cm4gcj9uLm1hcChmdW5jdGlvbihpKXt2YXIgYT1pLnBvaW50cyxvPVYoYSwxKSxzPW9bMF07cmV0dXJuIEF0KEF0KHt9LGkpLHtwb2ludHM6dGUodGUoW10sVihhKSwhMSksW3NdLCExKX0pfSk6bn12YXIgUzk9ZnVuY3Rpb24odCl7YXIoZSx0KTtmdW5jdGlvbiBlKCl7cmV0dXJuIHQhPT1udWxsJiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gZS5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKG4scil7dmFyIGk9bi50eXBlLGE9bi5jZW50ZXIsbz1uLmFyZWFGaWxsLHM9bi5jbG9zZWQsYz0kcihuLFsidHlwZSIsImNlbnRlciIsImFyZWFGaWxsIiwiY2xvc2VkIl0pLGw9TzkobiksdT1GZShyKS5tYXliZUFwcGVuZEJ5Q2xhc3NOYW1lKHRkLmxpbmVHcm91cCwiZyIpLGY9RmUocikubWF5YmVBcHBlbmRCeUNsYXNzTmFtZSh0ZC5yZWdpb25Hcm91cCwiZyIpLGQ9XzkodSxsLG4sYyksaD13OShmLGwsbik7cmV0dXJuIHRlKHRlKFtdLFYoZCksITEpLFYoaCksITEpfSxlfShiaSksdm49ZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgcj0wLGk9aXIoZSk/ZS5zcGxpdCgiLiIpOmU7dCYmcjxpLmxlbmd0aDspdD10W2lbcisrXV07cmV0dXJuIHQ9PT12b2lkIDB8fHI8aS5sZW5ndGg/bjp0fSxFOT1mdW5jdGlvbih0LGUpe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gdCooMS1uKStlKm59fTtmdW5jdGlvbiBNOSh0LGUpe3ZhciBuPWU/ZS5sZW5ndGg6MCxyPXQ/TWF0aC5taW4obix0Lmxlbmd0aCk6MDtyZXR1cm4gZnVuY3Rpb24oaSl7dmFyIGE9bmV3IEFycmF5KHIpLG89bmV3IEFycmF5KG4pLHM9MDtmb3Iocz0wO3M8cjsrK3MpYVtzXT11dyh0W3NdLGVbc10pO2Zvcig7czxuOysrcylvW3NdPWVbc107Zm9yKHM9MDtzPHI7KytzKW9bc109YVtzXShpKTtyZXR1cm4gb319ZnVuY3Rpb24gazkodCxlKXt0PT09dm9pZCAwJiYodD17fSksZT09PXZvaWQgMCYmKGU9e30pO3ZhciBuPXt9LHI9e307cmV0dXJuIE9iamVjdC5lbnRyaWVzKGUpLmZvckVhY2goZnVuY3Rpb24oaSl7dmFyIGE9VihpLDIpLG89YVswXSxzPWFbMV07byBpbiB0P25bb109dXcodFtvXSxzKTpyW29dPXN9KSxmdW5jdGlvbihpKXtyZXR1cm4gT2JqZWN0LmVudHJpZXMobikuZm9yRWFjaChmdW5jdGlvbihhKXt2YXIgbz1WKGEsMikscz1vWzBdLGM9b1sxXTtyZXR1cm4gcltzXT1jKGkpfSkscn19ZnVuY3Rpb24gdXcodCxlKXtyZXR1cm4gdHlwZW9mIHQ9PSJudW1iZXIiJiZ0eXBlb2YgZT09Im51bWJlciI/RTkodCxlKTpBcnJheS5pc0FycmF5KHQpJiZBcnJheS5pc0FycmF5KGUpP005KHQsZSk6dHlwZW9mIHQ9PSJvYmplY3QiJiZ0eXBlb2YgZT09Im9iamVjdCI/azkodCxlKTpmdW5jdGlvbihuKXtyZXR1cm4gdH19ZnVuY3Rpb24gQTkodCxlLG4scil7aWYoIXIpcmV0dXJuIHQuYXR0cigiX19rZXlmcmFtZV9kYXRhX18iLG4pLG51bGw7dmFyIGk9ci5kdXJhdGlvbixhPWk9PT12b2lkIDA/MDppLG89dXcoZSxuKSxzPU1hdGguY2VpbCgrYS8xNiksYz1uZXcgQXJyYXkocykuZmlsbCgwKS5tYXAoZnVuY3Rpb24obCx1LGYpe3JldHVybntfX2tleWZyYW1lX2RhdGFfXzpvKHUvKGYubGVuZ3RoLTEpKX19KTtyZXR1cm4gdC5hbmltYXRlKGMsQXQoe2ZpbGw6ImJvdGgifSxyKSl9ZnVuY3Rpb24gcHUodCl7cmV0dXJuIHR5cGVvZiB0PT0iZnVuY3Rpb24iP3QoKTppcih0KXx8Vm4odCk/bmV3IGF3KHtzdHlsZTp7dGV4dDpTdHJpbmcodCl9fSk6dH1mdW5jdGlvbiBmdyh0LGUsbil7bj09PXZvaWQgMCYmKG49ITEpO3ZhciByPXQuZ2V0QkJveCgpLGk9ci53aWR0aCxhPXIuaGVpZ2h0LG89ZS9NYXRoLm1heChpLGEpO3JldHVybiBuJiYodC5zdHlsZS50cmFuc2Zvcm09InNjYWxlKCIuY29uY2F0KG8sIikiKSksb31mdW5jdGlvbiBvVCh0LGUpe3ZhciBuPXt9LHI9QXJyYXkuaXNBcnJheShlKT9lOltlXTtmb3IodmFyIGkgaW4gdClyLmluY2x1ZGVzKGkpfHwobltpXT10W2ldKTtyZXR1cm4gbn1mdW5jdGlvbiBzVCh0LGUpe3JldHVybiBPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXModCkubWFwKGZ1bmN0aW9uKG4pe3ZhciByPVYobiwyKSxpPXJbMF0sYT1yWzFdO3JldHVybltpLF9vKGEsZSldfSkpfWZ1bmN0aW9uIEphdCh0KXtpZih0LnR5cGU9PT0ibGluZWFyIil7dmFyIGU9dC5zdGFydFBvcyxuPXQuZW5kUG9zO3JldHVybiBfX3NwcmVhZEFycmF5KF9fc3ByZWFkQXJyYXkoW10sX19yZWFkKGUpLCExKSxfX3JlYWQobiksITEpfXZhciByPXQuc3RhcnRBbmdsZSxpPXQuZW5kQW5nbGUsYT10LmNlbnRlcixvPXQucmFkaXVzO3JldHVybiBfX3NwcmVhZEFycmF5KF9fc3ByZWFkQXJyYXkoW3IsaV0sX19yZWFkKGEpLCExKSxbb10sITEpfWZ1bmN0aW9uIGR3KHQsZSl7cmV0dXJuIGUmJlhuKGUpP3QuZmlsdGVyKGUpOnR9ZnVuY3Rpb24gY1QodCxlKXt2YXIgbj1lLnN0YXJ0QW5nbGUscj1lLmVuZEFuZ2xlO3JldHVybihyLW4pKnQrbn1mdW5jdGlvbiBjbSh0LGUpe2lmKGUudHlwZT09PSJsaW5lYXIiKXt2YXIgbj1WKGUuc3RhcnRQb3MsMikscj1uWzBdLGk9blsxXSxhPVYoZS5lbmRQb3MsMiksbz1hWzBdLHM9YVsxXSxjPVYoW28tcixzLWldLDIpLGw9Y1swXSx1PWNbMV07cmV0dXJuIGVUKFtsLHVdKX12YXIgZj1KZihjVCh0LGUpKTtyZXR1cm5bLU1hdGguc2luKGYpLE1hdGguY29zKGYpXX1mdW5jdGlvbiBodyh0LGUsbil7dmFyIHI9Y20odCxuKTtyZXR1cm4gaDkocixlIT09InBvc2l0aXZlIil9ZnVuY3Rpb24gVHAodCxlKXtyZXR1cm4gaHcodCxlLmxhYmVsRGlyZWN0aW9uLGUpfWZ1bmN0aW9uIFQ5KHQsZSl7dmFyIG49VihlLnN0YXJ0UG9zLDIpLHI9blswXSxpPW5bMV0sYT1WKGUuZW5kUG9zLDIpLG89YVswXSxzPWFbMV0sYz1WKFtvLXIscy1pXSwyKSxsPWNbMF0sdT1jWzFdO3JldHVybltyK2wqdCxpK3UqdF19ZnVuY3Rpb24gUDkodCxlKXt2YXIgbj1lLnJhZGl1cyxyPVYoZS5jZW50ZXIsMiksaT1yWzBdLGE9clsxXSxvPUpmKGNUKHQsZSkpO3JldHVybltpK24qTWF0aC5jb3MobyksYStuKk1hdGguc2luKG8pXX1mdW5jdGlvbiBsbSh0LGUpe3JldHVybiBlLnR5cGU9PT0ibGluZWFyIj9UOSh0LGUpOlA5KHQsZSl9ZnVuY3Rpb24gbFQodCl7cmV0dXJuIGNtKDAsdClbMV09PT0wfWZ1bmN0aW9uIHVUKHQpe3JldHVybiBjbSgwLHQpWzBdPT09MH1mdW5jdGlvbiBmVCh0LGUpe3JldHVybiBlLXQ9PT0zNjB9ZnVuY3Rpb24gZFQodCxlLG4scixpKXt2YXIgYT1lLXQsbz1WKFtpLGldLDIpLHM9b1swXSxjPW9bMV0sbD1WKFtKZih0KSxKZihlKV0sMiksdT1sWzBdLGY9bFsxXSxkPWZ1bmN0aW9uKFApe3JldHVybltuK2kqTWF0aC5jb3MoUCkscitpKk1hdGguc2luKFApXX0saD1WKGQodSksMiksdj1oWzBdLGc9aFsxXSx5PVYoZChmKSwyKSxiPXlbMF0seD15WzFdO2lmKGZUKHQsZSkpe3ZhciBfPShmK3UpLzIsdz1WKGQoXyksMiksTz13WzBdLEU9d1sxXTtyZXR1cm5bWyJNIix2LGddLFsiQSIscyxjLDAsMSwwLE8sRV0sWyJBIixzLGMsMCwxLDAsYix4XV19dmFyIE09YT4xODA/MTowLGs9dD5lPzA6MSxBPSExO3JldHVybiBBPyJNIi5jb25jYXQobiwiLCIpLmNvbmNhdChyLCIsTCIpLmNvbmNhdCh2LCIsIikuY29uY2F0KGcsIixBIikuY29uY2F0KHMsIiwiKS5jb25jYXQoYywiLDAsIikuY29uY2F0KE0sIiwiKS5jb25jYXQoaywiLCIpLmNvbmNhdChiLCIsIikuY29uY2F0KHgsIixMIikuY29uY2F0KG4sIiwiKS5jb25jYXQocik6Ik0iLmNvbmNhdCh2LCIsIikuY29uY2F0KGcsIixBIikuY29uY2F0KHMsIiwiKS5jb25jYXQoYywiLDAsIikuY29uY2F0KE0sIiwiKS5jb25jYXQoaywiLCIpLmNvbmNhdChiLCIsIikuY29uY2F0KHgpfWZ1bmN0aW9uIEM5KHQpe3ZhciBlPXQuYXR0cmlidXRlcyxuPWUuc3RhcnRBbmdsZSxyPWUuZW5kQW5nbGUsaT1lLmNlbnRlcixhPWUucmFkaXVzO3JldHVybiB0ZSh0ZShbbixyXSxWKGkpLCExKSxbYV0sITEpfWZ1bmN0aW9uIEw5KHQsZSxuLHIpe3ZhciBpPWUuc3RhcnRBbmdsZSxhPWUuZW5kQW5nbGUsbz1lLmNlbnRlcixzPWUucmFkaXVzO3JldHVybiB0LnNlbGVjdEFsbCh6bi5saW5lLmNsYXNzKS5kYXRhKFt7ZDpkVC5hcHBseSh2b2lkIDAsdGUodGUoW2ksYV0sVihvKSwhMSksW3NdLCExKSl9XSxmdW5jdGlvbihjLGwpe3JldHVybiBsfSkuam9pbihmdW5jdGlvbihjKXtyZXR1cm4gYy5hcHBlbmQoInBhdGgiKS5hdHRyKCJjbGFzc05hbWUiLHpuLmxpbmUubmFtZSkuc3R5bGVzKGUpLnN0eWxlcyh7ZDpmdW5jdGlvbihsKXtyZXR1cm4gbC5kfX0pfSxmdW5jdGlvbihjKXtyZXR1cm4gYy50cmFuc2l0aW9uKGZ1bmN0aW9uKCl7dmFyIGw9dGhpcyx1PUE5KHRoaXMsQzkodGhpcyksdGUodGUoW2ksYV0sVihvKSwhMSksW3NdLCExKSxyLnVwZGF0ZSk7aWYodSl7dmFyIGY9ZnVuY3Rpb24oKXt2YXIgZD12bihsLmF0dHJpYnV0ZXMsIl9fa2V5ZnJhbWVfZGF0YV9fIik7bC5zdHlsZS5kPWRULmFwcGx5KHZvaWQgMCx0ZShbXSxWKGQpLCExKSl9O3Uub25mcmFtZT1mLHUub25maW5pc2g9Zn1yZXR1cm4gdX0pLnN0eWxlcyhlKX0sZnVuY3Rpb24oYyl7cmV0dXJuIGMucmVtb3ZlKCl9KS5zdHlsZXMobikudHJhbnNpdGlvbnMoKX1mdW5jdGlvbiBSOSh0LGUpe3ZhciBuPWUudHJ1bmNSYW5nZSxyPWUudHJ1bmNTaGFwZSxpPWUubGluZUV4dGVuc2lvbn1mdW5jdGlvbiBOOSh0LGUsbil7bj09PXZvaWQgMCYmKG49WzAsMF0pO3ZhciByPVYoW3QsZSxuXSwzKSxpPVYoclswXSwyKSxhPWlbMF0sbz1pWzFdLHM9VihyWzFdLDIpLGM9c1swXSxsPXNbMV0sdT1WKHJbMl0sMiksZj11WzBdLGQ9dVsxXSxoPVYoW2MtYSxsLW9dLDIpLHY9aFswXSxnPWhbMV0seT1NYXRoLnNxcnQoTWF0aC5wb3codiwyKStNYXRoLnBvdyhnLDIpKSxiPVYoWy1mL3ksZC95XSwyKSx4PWJbMF0sXz1iWzFdO3JldHVyblt4KnYseCpnLF8qdixfKmddfWZ1bmN0aW9uIGhUKHQpe3ZhciBlPVYodCwyKSxuPVYoZVswXSwyKSxyPW5bMF0saT1uWzFdLGE9VihlWzFdLDIpLG89YVswXSxzPWFbMV07cmV0dXJue3gxOnIseTE6aSx4MjpvLHkyOnN9fWZ1bmN0aW9uIEk5KHQsZSxuLHIpe3ZhciBpPWUuc2hvd1RydW5jLGE9ZS5zdGFydFBvcyxvPWUuZW5kUG9zLHM9ZS50cnVuY1JhbmdlLGM9ZS5saW5lRXh0ZW5zaW9uLGw9VihbYSxvXSwyKSx1PVYobFswXSwyKSxmPXVbMF0sZD11WzFdLGg9VihsWzFdLDIpLHY9aFswXSxnPWhbMV0seT1WKGM/TjkoYSxvLGMpOm5ldyBBcnJheSg0KS5maWxsKDApLDQpLGI9eVswXSx4PXlbMV0sXz15WzJdLHc9eVszXSxPPWZ1bmN0aW9uKEYpe3JldHVybiB0LnNlbGVjdEFsbCh6bi5saW5lLmNsYXNzKS5kYXRhKEYsZnVuY3Rpb24oVyxYKXtyZXR1cm4gWH0pLmpvaW4oZnVuY3Rpb24oVyl7cmV0dXJuIFcuYXBwZW5kKCJsaW5lIikuYXR0cigiY2xhc3NOYW1lIixmdW5jdGlvbihYKXtyZXR1cm4iIi5jb25jYXQoem4ubGluZS5uYW1lLCIgIikuY29uY2F0KFguY2xhc3NOYW1lKX0pLnN0eWxlcyhuKS50cmFuc2l0aW9uKGZ1bmN0aW9uKFgpe3JldHVybiB6byh0aGlzLGhUKFgubGluZSksITEpfSl9LGZ1bmN0aW9uKFcpe3JldHVybiBXLnN0eWxlcyhuKS50cmFuc2l0aW9uKGZ1bmN0aW9uKFgpe3ZhciBRPVgubGluZTtyZXR1cm4gem8odGhpcyxoVChRKSxyLnVwZGF0ZSl9KX0sZnVuY3Rpb24oVyl7cmV0dXJuIFcucmVtb3ZlKCl9KS50cmFuc2l0aW9ucygpfTtpZighaXx8IXMpcmV0dXJuIE8oW3tsaW5lOltbZitiLGQreF0sW3YrXyxnK3ddXSxjbGFzc05hbWU6em4ubGluZS5uYW1lfV0pO3ZhciBFPVYocywyKSxNPUVbMF0saz1FWzFdLEE9di1mLFA9Zy1kLEM9VihbZitBKk0sZCtQKk1dLDIpLE49Q1swXSxMPUNbMV0sUj1WKFtmK0EqayxkK1Aqa10sMiksST1SWzBdLEQ9UlsxXSxHPU8oW3tsaW5lOltbZitiLGQreF0sW04sTF1dLGNsYXNzTmFtZTp6bi5saW5lRmlyc3QubmFtZX0se2xpbmU6W1tJLERdLFt2K18sZyt3XV0sY2xhc3NOYW1lOnpuLmxpbmVTZWNvbmQubmFtZX1dKTtyZXR1cm4gUjkodCxlKSxHfWZ1bmN0aW9uIEQ5KHQsZSxuLHIpe3ZhciBpPW4uc2hvd0Fycm93LGE9bi5zaG93VHJ1bmMsbz1uLmxpbmVBcnJvdyxzPW4ubGluZUFycm93T2Zmc2V0LGM9bi5saW5lQXJyb3dTaXplLGw7aWYoZT09PSJhcmMiP2w9dC5zZWxlY3Qoem4ubGluZS5jbGFzcyk6YT9sPXQuc2VsZWN0KHpuLmxpbmVTZWNvbmQuY2xhc3MpOmw9dC5zZWxlY3Qoem4ubGluZS5jbGFzcyksIWl8fCFvfHxuLnR5cGU9PT0iYXJjIiYmZlQobi5zdGFydEFuZ2xlLG4uZW5kQW5nbGUpKXt2YXIgdT1sLm5vZGUoKTt1JiYodS5zdHlsZS5tYXJrZXJFbmQ9dm9pZCAwKTtyZXR1cm59dmFyIGY9cHUobyk7Zi5hdHRyKHIpLGZ3KGYsYywhMCksbC5zdHlsZSgibWFya2VyRW5kIixmKS5zdHlsZSgibWFya2VyRW5kT2Zmc2V0Iiwtcyl9ZnVuY3Rpb24gajkodCxlLG4pe3ZhciByPWUudHlwZSxpLGE9ZW4oZSwibGluZSIpO3JldHVybiByPT09ImxpbmVhciI/aT1JOSh0LGUsb1QoYSwiYXJyb3ciKSxuKTppPUw5KHQsZSxvVChhLCJhcnJvdyIpLG4pLEQ5KHQscixlLGEpLGl9ZnVuY3Rpb24gRjkodCxlKXtyZXR1cm4gaHcodCxlLmdyaWREaXJlY3Rpb24sZSl9ZnVuY3Rpb24gcFQodCl7dmFyIGU9dC50eXBlLG49dC5ncmlkQ2VudGVyO3JldHVybiBlPT09ImxpbmVhciI/bjpufHx0LmNlbnRlcn1mdW5jdGlvbiBCOSh0LGUpe3ZhciBuPWUuZ3JpZExlbmd0aDtyZXR1cm4gdC5tYXAoZnVuY3Rpb24ocixpKXt2YXIgYT1yLnZhbHVlLG89VihsbShhLGUpLDIpLHM9b1swXSxjPW9bMV0sbD1WKGFjKEY5KGEsZSksbiksMiksdT1sWzBdLGY9bFsxXTtyZXR1cm57aWQ6aSxwb2ludHM6W1tzLGNdLFtzK3UsYytmXV19fSl9ZnVuY3Rpb24gejkodCxlKXt2YXIgbj1lLmdyaWRDb250cm9sQW5nbGVzLHI9cFQoZSk7aWYoIXIpdGhyb3cgbmV3IEVycm9yKCJncmlkIGNlbnRlciBpcyBub3QgcHJvdmlkZSIpO2lmKHQubGVuZ3RoPDIpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGdyaWQgZGF0YSIpO2lmKCFufHxuLmxlbmd0aD09PTApdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGdyaWRDb250cm9sQW5nbGVzIik7dmFyIGk9VihyLDIpLGE9aVswXSxvPWlbMV07cmV0dXJuIHQubWFwKGZ1bmN0aW9uKHMsYyl7dmFyIGw9cy52YWx1ZSx1PVYobG0obCxlKSwyKSxmPXVbMF0sZD11WzFdLGg9VihbZi1hLGQtb10sMiksdj1oWzBdLGc9aFsxXSx5PVtdO3JldHVybiBuLmZvckVhY2goZnVuY3Rpb24oYil7dmFyIHg9SmYoYiksXz1WKFtNYXRoLmNvcyh4KSxNYXRoLnNpbih4KV0sMiksdz1fWzBdLE89X1sxXSxFPXYqdy1nKk8rYSxNPXYqTytnKncrbzt5LnB1c2goW0UsTV0pfSkse3BvaW50czp5LGlkOmN9fSl9ZnVuY3Rpb24gVzkodCxlLG4scil7dmFyIGk9ZW4obiwiZ3JpZCIpLGE9aS50eXBlLG89aS5hcmVhRmlsbCxzPXBUKG4pLGM9ZHcoZSxuLmdyaWRGaWx0ZXIpLGw9YT09PSJzZWdtZW50Ij9COShjLG4pOno5KGMsbiksdT1BdChBdCh7fSxpKSx7Y2VudGVyOnMsYXJlYUZpbGw6WG4obyk/Yy5tYXAoZnVuY3Rpb24oZixkKXtyZXR1cm4gX28obyxbZixkLGNdKX0pOm8sYW5pbWF0ZTpyLGRhdGE6bH0pO3JldHVybiB0LnNlbGVjdEFsbCh6bi5ncmlkLmNsYXNzKS5kYXRhKFsxXSkuam9pbihmdW5jdGlvbihmKXtyZXR1cm4gZi5hcHBlbmQoZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFM5KHtzdHlsZTp1fSl9KS5hdHRyKCJjbGFzc05hbWUiLHpuLmdyaWQubmFtZSl9LGZ1bmN0aW9uKGYpe3JldHVybiBmLnRyYW5zaXRpb24oZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy51cGRhdGUodSl9KX0sZnVuY3Rpb24oZil7cmV0dXJuIGYucmVtb3ZlKCl9KS50cmFuc2l0aW9ucygpfWZ1bmN0aW9uIFJpKHQsZSxuLHIsaSl7cmV0dXJuIHI9PT12b2lkIDAmJihyPSEwKSxpPT09dm9pZCAwJiYoaT0hMSksciYmdD09PWV8fGkmJnQ9PT1uPyEwOnQ+ZSYmdDxufWZ1bmN0aW9uIEc5KHQpe3ZhciBlLG4scixpPXR8fDE7ZnVuY3Rpb24gYShzLGMpeysrZT5pJiYocj1uLG8oMSksKytlKSxuW3NdPWN9ZnVuY3Rpb24gbyhzKXtlPTAsbj1PYmplY3QuY3JlYXRlKG51bGwpLHN8fChyPU9iamVjdC5jcmVhdGUobnVsbCkpfXJldHVybiBvKCkse2NsZWFyOm8saGFzOmZ1bmN0aW9uKHMpe3JldHVybiBuW3NdIT09dm9pZCAwfHxyW3NdIT09dm9pZCAwfSxnZXQ6ZnVuY3Rpb24ocyl7dmFyIGM9bltzXTtpZihjIT09dm9pZCAwKXJldHVybiBjO2lmKChjPXJbc10pIT09dm9pZCAwKXJldHVybiBhKHMsYyksY30sc2V0OmZ1bmN0aW9uKHMsYyl7bltzXSE9PXZvaWQgMD9uW3NdPWM6YShzLGMpfX19dmFyIHB3PW5ldyBNYXA7ZnVuY3Rpb24gJDkodCxlLG4pe249PT12b2lkIDAmJihuPTEyOCk7dmFyIHI9ZnVuY3Rpb24oKXtmb3IodmFyIGk9W10sYT0wO2E8YXJndW1lbnRzLmxlbmd0aDthKyspaVthXT1hcmd1bWVudHNbYV07dmFyIG89ZT9lLmFwcGx5KHRoaXMsaSk6aVswXTtwdy5oYXModCl8fHB3LnNldCh0LEc5KG4pKTt2YXIgcz1wdy5nZXQodCk7aWYocy5oYXMobykpcmV0dXJuIHMuZ2V0KG8pO3ZhciBjPXQuYXBwbHkodGhpcyxpKTtyZXR1cm4gcy5zZXQobyxjKSxjfTtyZXR1cm4gcn12YXIgdW0sdnc7ZnVuY3Rpb24gdG90KHQpe3Z3PXR9dmFyIFo5PSQ5KGZ1bmN0aW9uKHQsZSl7dmFyIG49ZS5mb250U2l6ZSxyPWUuZm9udEZhbWlseSxpPWUuZm9udFdlaWdodCxhPWUuZm9udFN0eWxlLG89ZS5mb250VmFyaWFudDtyZXR1cm4gdnc/dncodCxuKToodW18fCh1bT1DdC5vZmZzY3JlZW5DYW52YXNDcmVhdG9yLmdldE9yQ3JlYXRlQ29udGV4dCh2b2lkIDApKSx1bS5mb250PVthLG8saSwiIi5jb25jYXQobiwicHgiKSxyXS5qb2luKCIgIiksdW0ubWVhc3VyZVRleHQodCkud2lkdGgpfSxmdW5jdGlvbih0LGUpe3JldHVyblt0LE9iamVjdC52YWx1ZXMoZXx8dlQodCkpLmpvaW4oKV0uam9pbigiIil9LDQwOTYpLHZUPWZ1bmN0aW9uKHQpe3ZhciBlPXQuc3R5bGUuZm9udEZhbWlseXx8InNhbnMtc2VyaWYiLG49dC5zdHlsZS5mb250V2VpZ2h0fHwibm9ybWFsIixyPXQuc3R5bGUuZm9udFN0eWxlfHwibm9ybWFsIixpPXQuc3R5bGUuZm9udFZhcmlhbnQsYT10LnN0eWxlLmZvbnRTaXplO3JldHVybiBhPXR5cGVvZiBhPT0ib2JqZWN0Ij9hLnZhbHVlOmEse2ZvbnRTaXplOmEsZm9udEZhbWlseTplLGZvbnRXZWlnaHQ6bixmb250U3R5bGU6cixmb250VmFyaWFudDppfX07ZnVuY3Rpb24gZ1QodCl7cmV0dXJuIHQubm9kZU5hbWU9PT0idGV4dCI/dDp0Lm5vZGVOYW1lPT09ImciJiZ0LmNoaWxkcmVuLmxlbmd0aD09PTEmJnQuY2hpbGRyZW5bMF0ubm9kZU5hbWU9PT0idGV4dCI/dC5jaGlsZHJlblswXTpudWxsfWZ1bmN0aW9uIHlUKHQsZSl7dmFyIG49Z1QodCk7biYmbi5hdHRyKGUpfWZ1bmN0aW9uIGd3KHQsZSxuKXtuPT09dm9pZCAwJiYobj0iLi4uIikseVQodCx7d29yZFdyYXA6ITAsd29yZFdyYXBXaWR0aDplLG1heExpbmVzOjEsdGV4dE92ZXJmbG93Om59KX1mdW5jdGlvbiBZOSh0LGUsbixyKXtuPT09dm9pZCAwJiYobj0yKSxyPT09dm9pZCAwJiYocj0idG9wIikseVQodCx7d29yZFdyYXA6ITAsd29yZFdyYXBXaWR0aDplLG1heExpbmVzOm4sdGV4dEJhc2VsaW5lOnJ9KX1mdW5jdGlvbiBIOSh0LGUsbil7dmFyIHI9dC5nZXRCQm94KCksaT1yLndpZHRoLGE9ci5oZWlnaHQsbz1WKFtlLG5dLm1hcChmdW5jdGlvbihsLHUpe3ZhciBmO3JldHVybiBsLmluY2x1ZGVzKCIlIik/cGFyc2VGbG9hdCgoKGY9bC5tYXRjaCgvWystXT8oWzAtOV0qWy5dKT9bMC05XSsvKSk9PT1udWxsfHxmPT09dm9pZCAwP3ZvaWQgMDpmWzBdKXx8IjAiKS8xMDAqKHU9PT0wP2k6YSk6bH0pLDIpLHM9b1swXSxjPW9bMV07cmV0dXJuW3MsY119ZnVuY3Rpb24gbVQodCxlKXtpZihlKXRyeXt2YXIgbj0vdHJhbnNsYXRlXCgoWystXSpbXGRdK1slXSopLFsgXSooWystXSpbXGRdK1slXSopXCkvZyxyPWUucmVwbGFjZShuLGZ1bmN0aW9uKGksYSxvKXtyZXR1cm4idHJhbnNsYXRlKCIuY29uY2F0KEg5KHQsYSxvKSwiKSIpfSk7dC5hdHRyKCJ0cmFuc2Zvcm0iLHIpfWNhdGNoKGkpe319dmFyIGJUPWZ1bmN0aW9uKHQpe3JldHVybiB0IT09dm9pZCAwJiZ0IT1udWxsJiYhTnVtYmVyLmlzTmFOKHQpfTtmdW5jdGlvbiBOaSh0KXtpZihWbih0KSlyZXR1cm5bdCx0LHQsdF07aWYoTnIodCkpe3ZhciBlPXQubGVuZ3RoO2lmKGU9PT0xKXJldHVyblt0WzBdLHRbMF0sdFswXSx0WzBdXTtpZihlPT09MilyZXR1cm5bdFswXSx0WzFdLHRbMF0sdFsxXV07aWYoZT09PTMpcmV0dXJuW3RbMF0sdFsxXSx0WzJdLHRbMV1dO2lmKGU9PT00KXJldHVybiB0fXJldHVyblswLDAsMCwwXX12YXIgeXc9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUsbixyLGkpe3RoaXMuc2V0KGUsbixyLGkpfXJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImxlZnQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy54MX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsInRvcCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnkxfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwicmlnaHQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy54Mn0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImJvdHRvbSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnkyfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwid2lkdGgiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kZWZpbmVkKCJ4MiIpJiZ0aGlzLmRlZmluZWQoIngxIik/dGhpcy54Mi10aGlzLngxOnZvaWQgMH0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImhlaWdodCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRlZmluZWQoInkyIikmJnRoaXMuZGVmaW5lZCgieTEiKT90aGlzLnkyLXRoaXMueTE6dm9pZCAwfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLHQucHJvdG90eXBlLnJvdGF0ZWRQb2ludHM9ZnVuY3Rpb24oZSxuLHIpe3ZhciBpPXRoaXMsYT1pLngxLG89aS55MSxzPWkueDIsYz1pLnkyLGw9TWF0aC5jb3MoZSksdT1NYXRoLnNpbihlKSxmPW4tbipsK3IqdSxkPXItbip1LXIqbCxoPVtbbCphLXUqYytmLHUqYStsKmMrZF0sW2wqcy11KmMrZix1KnMrbCpjK2RdLFtsKmEtdSpvK2YsdSphK2wqbytkXSxbbCpzLXUqbytmLHUqcytsKm8rZF1dO3JldHVybiBofSx0LnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oZSxuLHIsaSl7cmV0dXJuIHI8ZT8odGhpcy54Mj1lLHRoaXMueDE9cik6KHRoaXMueDE9ZSx0aGlzLngyPXIpLGk8bj8odGhpcy55Mj1uLHRoaXMueTE9aSk6KHRoaXMueTE9bix0aGlzLnkyPWkpLHRoaXN9LHQucHJvdG90eXBlLmRlZmluZWQ9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXNbZV0hPT1OdW1iZXIuTUFYX1ZBTFVFJiZ0aGlzW2VdIT09LU51bWJlci5NQVhfVkFMVUV9LHR9KCk7ZnVuY3Rpb24gZm0odCxlKXt2YXIgbj10LmdldEV1bGVyQW5nbGVzKCl8fDA7dC5zZXRFdWxlckFuZ2xlcygwKTt2YXIgcj10LmdldEJvdW5kcygpLGk9VihyLm1pbiwyKSxhPWlbMF0sbz1pWzFdLHM9VihyLm1heCwyKSxjPXNbMF0sbD1zWzFdLHU9dC5nZXRCQm94KCksZj11LndpZHRoLGQ9dS5oZWlnaHQsaD1kLHY9MCxnPTAseT1hLGI9byx4PWdUKHQpO2lmKHgpe2gtPTEuNTt2YXIgXz14LnN0eWxlLnRleHRBbGlnbix3PXguc3R5bGUudGV4dEJhc2VsaW5lO189PT0iY2VudGVyIj95PShhK2MpLzI6KF89PT0icmlnaHQifHxfPT09ImVuZCIpJiYoeT1jKSx3PT09Im1pZGRsZSI/Yj0obytsKS8yOnc9PT0iYm90dG9tIiYmKGI9bCl9dmFyIE89VihOaShlKSw0KSxFPU9bMF0sTT1FPT09dm9pZCAwPzA6RSxrPU9bMV0sQT1rPT09dm9pZCAwPzA6ayxQPU9bMl0sQz1QPT09dm9pZCAwP006UCxOPU9bM10sTD1OPT09dm9pZCAwP0E6TixSPW5ldyB5dygodis9YSktTCwoZys9byktTSx2K2YrQSxnK2grQyk7cmV0dXJuIHQuc2V0RXVsZXJBbmdsZXMobiksUi5yb3RhdGVkUG9pbnRzKEpmKG4pLHksYil9ZnVuY3Rpb24gUHAodCxlKXtyZXR1cm4gZVswXTw9TWF0aC5tYXgodFswXVswXSx0WzFdWzBdKSYmZVswXTw9TWF0aC5taW4odFswXVswXSx0WzFdWzBdKSYmZVsxXTw9TWF0aC5tYXgodFswXVsxXSx0WzFdWzFdKSYmZVsxXTw9TWF0aC5taW4odFswXVsxXSx0WzFdWzFdKX1mdW5jdGlvbiBDcCh0LGUsbil7dmFyIHI9KGVbMV0tdFsxXSkqKG5bMF0tZVswXSktKGVbMF0tdFswXSkqKG5bMV0tZVsxXSk7cmV0dXJuIHI9PT0wPzA6cjwwPzI6MX1mdW5jdGlvbiBWOSh0LGUpe3ZhciBuPUNwKHRbMF0sdFsxXSxlWzBdKSxyPUNwKHRbMF0sdFsxXSxlWzFdKSxpPUNwKGVbMF0sZVsxXSx0WzBdKSxhPUNwKGVbMF0sZVsxXSx0WzFdKTtyZXR1cm4hIShuIT09ciYmaSE9PWF8fG49PT0wJiZQcCh0LGVbMF0pfHxyPT09MCYmUHAodCxlWzFdKXx8aT09PTAmJlBwKGUsdFswXSl8fGE9PT0wJiZQcChlLHRbMV0pKX1mdW5jdGlvbiBYOSh0LGUpe3ZhciBuPXQubGVuZ3RoO2lmKG48MylyZXR1cm4hMTt2YXIgcj1bZSxbOTk5OSxlWzFdXV0saT0wLGE9MDtkb3t2YXIgbz1bdFthXSx0WyhhKzEpJW5dXTtpZihWOShvLHIpKXtpZihDcChvWzBdLGUsb1sxXSk9PT0wKXJldHVybiBQcChvLGUpO2krK31hPShhKzEpJW59d2hpbGUoYSE9PTApO3JldHVybiEhKGkmMSl9ZnVuY3Rpb24gVTkodCxlKXtyZXR1cm4gZS5ldmVyeShmdW5jdGlvbihuKXtyZXR1cm4gWDkodCxuKX0pfWZ1bmN0aW9uIHE5KHQsZSxuKXt2YXIgcj10LngxLGk9dC54MixhPXQueTEsbz10LnkyLHM9W1tyLGFdLFtpLGFdLFtpLG9dLFtyLG9dXSxjPWZtKGUsbik7cmV0dXJuIFU5KHMsYyl9ZnVuY3Rpb24geFQodCxlKXt2YXIgbj1WKHQsNCkscj1uWzBdLGk9blsxXSxhPW5bMl0sbz1uWzNdLHM9VihlLDQpLGM9c1swXSxsPXNbMV0sdT1zWzJdLGY9c1szXSxkPWEtcixoPW8taSx2PXUtYyxnPWYtbCx5PWQqZy12Kmg7aWYoeT09PTApcmV0dXJuITE7dmFyIGI9eT4wLHg9ci1jLF89aS1sLHc9ZCpfLWgqeDtpZih3PDA9PT1iKXJldHVybiExO3ZhciBPPXYqXy1nKng7cmV0dXJuIShPPDA9PT1ifHx3Pnk9PT1ifHxPPnk9PT1iKX1mdW5jdGlvbiBfVCh0LGUpe3ZhciBuPVtbdFswXSx0WzFdLHRbMl0sdFszXV0sW3RbMl0sdFszXSx0WzRdLHRbNV1dLFt0WzRdLHRbNV0sdFs2XSx0WzddXSxbdFs2XSx0WzddLHRbMF0sdFsxXV1dO3JldHVybiBuLnNvbWUoZnVuY3Rpb24ocil7cmV0dXJuIHhUKGUscil9KX12YXIgZW90PXtsaW5lVG9MaW5lOnhULGludGVyc2VjdEJveExpbmU6X1QsZ2V0Qm91bmRzOmZtfTtmdW5jdGlvbiBLOSh0LGUsbil7dmFyIHIsaSxhPWZtKHQsbikuZmxhdCgxKSxvPWZtKGUsbikuZmxhdCgxKSxzPVtbYVswXSxhWzFdLGFbMl0sYVszXV0sW2FbMF0sYVsxXSxhWzRdLGFbNV1dLFthWzRdLGFbNV0sYVs2XSxhWzddXSxbYVsyXSxhWzNdLGFbNl0sYVs3XV1dO3RyeXtmb3IodmFyIGM9Z2kocyksbD1jLm5leHQoKTshbC5kb25lO2w9Yy5uZXh0KCkpe3ZhciB1PWwudmFsdWU7aWYoX1Qobyx1KSlyZXR1cm4hMH19Y2F0Y2goZil7cj17ZXJyb3I6Zn19ZmluYWxseXt0cnl7bCYmIWwuZG9uZSYmKGk9Yy5yZXR1cm4pJiZpLmNhbGwoYyl9ZmluYWxseXtpZihyKXRocm93IHIuZXJyb3J9fXJldHVybiExfWZ1bmN0aW9uIFE5KHQsZSl7dmFyIG49dC50eXBlLHI9dC5sYWJlbERpcmVjdGlvbixpPXQuY3Jvc3NTaXplO2lmKCFpKXJldHVybiExO2lmKG49PT0iYXJjIil7dmFyIGE9dC5jZW50ZXIsbz10LnJhZGl1cyxzPVYoYSwyKSxjPXNbMF0sbD1zWzFdLHU9cj09PSJuZWdhdGl2ZSI/MDppLGY9LW8tdSxkPW8rdSxoPVYoTmkoZSksNCksdj1oWzBdLGc9aFsxXSx5PWhbMl0sYj1oWzNdO3JldHVybiBuZXcgeXcoYytmLWIsbCtmLXYsYytkK2csbCtkK3kpfXZhciB4PVYodC5zdGFydFBvcywyKSxfPXhbMF0sdz14WzFdLE89Vih0LmVuZFBvcywyKSxFPU9bMF0sTT1PWzFdLGs9Vih1VCh0KT9bLWUsMCxlLDBdOlswLGUsMCwtZV0sNCksQT1rWzBdLFA9a1sxXSxDPWtbMl0sTj1rWzNdLEw9VHAoMCx0KSxSPWFjKEwsaSksST1uZXcgeXcoXyx3LEUsTSk7cmV0dXJuIEkueDErPU4sSS55MSs9QSxJLngyKz1QK1JbMF0sSS55Mis9QytSWzFdLEl9ZnVuY3Rpb24gZG0odCxlLG4pe3ZhciByLGksYT1lLmNyb3NzUGFkZGluZyxvPW5ldyBTZXQscz1udWxsLGM9UTkoZSxhKSxsPWZ1bmN0aW9uKHYpe3JldHVybiBjP3E5KGMsdik6ITB9LHU9ZnVuY3Rpb24odixnKXtyZXR1cm4hdnx8IXYuZmlyc3RDaGlsZD8hMDohSzkodi5maXJzdENoaWxkLGcuZmlyc3RDaGlsZCxOaShuKSl9O3RyeXtmb3IodmFyIGY9Z2kodCksZD1mLm5leHQoKTshZC5kb25lO2Q9Zi5uZXh0KCkpe3ZhciBoPWQudmFsdWU7bChoKT8hc3x8dShzLGgpP3M9aDooby5hZGQocyksby5hZGQoaCkpOm8uYWRkKGgpfX1jYXRjaCh2KXtyPXtlcnJvcjp2fX1maW5hbGx5e3RyeXtkJiYhZC5kb25lJiYoaT1mLnJldHVybikmJmkuY2FsbChmKX1maW5hbGx5e2lmKHIpdGhyb3cgci5lcnJvcn19cmV0dXJuIEFycmF5LmZyb20obyl9ZnVuY3Rpb24gbXcodCxlKXtyZXR1cm4gZT09PXZvaWQgMCYmKGU9e30pLGdlKHQpPzA6dHlwZW9mIHQ9PSJudW1iZXIiP3Q6TWF0aC5mbG9vcihaOSh0LGUpKX1mdW5jdGlvbiBKOSh0LGUsbixyKXtpZighKHQubGVuZ3RoPD0xKSl7dmFyIGk9ZS5zdWZmaXgsYT1pPT09dm9pZCAwPyIuLi4iOmksbz1lLm1pbkxlbmd0aCxzPWUubWF4TGVuZ3RoLGM9cz09PXZvaWQgMD8xLzA6cyxsPWUuc3RlcCx1PWw9PT12b2lkIDA/IiAiOmwsZj1lLm1hcmdpbixkPWY9PT12b2lkIDA/WzAsMCwwLDBdOmYsaD12VChyLmdldFRleHRTaGFwZSh0WzBdKSksdj1tdyh1LGgpLGc9bz9tdyhvLGgpOnYseT1tdyhjLGgpOyhnZSh5KXx8eT09PTEvMCkmJih5PU1hdGgubWF4LmFwcGx5KG51bGwsdC5tYXAoZnVuY3Rpb24oUil7cmV0dXJuIFIuZ2V0QkJveCgpLndpZHRofSkpKTtmb3IodmFyIGI9dC5zbGljZSgpLHg9VihkLDQpLF89eFswXSx3PV89PT12b2lkIDA/MDpfLE89eFsxXSxFPU89PT12b2lkIDA/MDpPLE09eFsyXSxrPU09PT12b2lkIDA/dzpNLEE9eFszXSxQPUE9PT12b2lkIDA/RTpBLEM9ZnVuY3Rpb24oUil7aWYoYi5mb3JFYWNoKGZ1bmN0aW9uKEkpe3IuZWxsaXBzaXMoci5nZXRUZXh0U2hhcGUoSSksUixhKX0pLGI9ZG0odCxuLGQpLGIubGVuZ3RoPDEpcmV0dXJue3ZhbHVlOnZvaWQgMH19LE49eTtOPmcrdjtOLT12KXt2YXIgTD1DKE4pO2lmKHR5cGVvZiBMPT0ib2JqZWN0IilyZXR1cm4gTC52YWx1ZX19fWZ1bmN0aW9uIG5vdCh0KXt2YXIgZT10JiZ0LmdldFJlbmRlckJvdW5kcygpO2lmKCFlKXJldHVybnt3aWR0aDowLGhlaWdodDowfTt2YXIgbj1lLmdldE1heCgpLHI9ZS5nZXRNaW4oKTtyZXR1cm57d2lkdGg6blswXS1yWzBdLGhlaWdodDpuWzFdLXJbMV19fWZ1bmN0aW9uIHdUKHQpe3ZhciBlPXQuZ2V0TG9jYWxCb3VuZHMoKSxuPWUubWluLHI9ZS5tYXgsaT1WKFtuLHJdLDIpLGE9VihpWzBdLDIpLG89YVswXSxzPWFbMV0sYz1WKGlbMV0sMiksbD1jWzBdLHU9Y1sxXTtyZXR1cm57eDpvLHk6cyx3aWR0aDpsLW8saGVpZ2h0OnUtcyxsZWZ0Om8sYm90dG9tOnUsdG9wOnMscmlnaHQ6bH19ZnVuY3Rpb24gcm90KHQsZSl7dmFyIG49c2VsZWN0KHQpLmFwcGVuZCgidGV4dCIpLm5vZGUoKTtyZXR1cm4gbi5hdHRyKF9fYXNzaWduKF9fYXNzaWduKHt9LGUpLHt2aXNpYmlsaXR5OiJoaWRkZW4ifSkpLG59ZnVuY3Rpb24gdEIodCxlKXt2YXIgbj1WKHQsMikscj1uWzBdLGk9blsxXSxhPVYoZSwyKSxvPWFbMF0scz1hWzFdO3JldHVybiByIT09byYmaT09PXN9ZnVuY3Rpb24gaW90KHQsZSl7dmFyIG49X19yZWFkKHQsMikscj1uWzBdLGk9blsxXSxhPV9fcmVhZChlLDIpLG89YVswXSxzPWFbMV07cmV0dXJuIHI9PT1vJiZpIT09c31mdW5jdGlvbiBlQih0LGUpe3ZhciBuLHIsaT1lLmF0dHJpYnV0ZXM7dHJ5e2Zvcih2YXIgYT1naShPYmplY3QuZW50cmllcyhpKSksbz1hLm5leHQoKTshby5kb25lO289YS5uZXh0KCkpe3ZhciBzPVYoby52YWx1ZSwyKSxjPXNbMF0sbD1zWzFdO2MhPT0iaWQiJiZjIT09ImNsYXNzTmFtZSImJnQuYXR0cihjLGwpfX1jYXRjaCh1KXtuPXtlcnJvcjp1fX1maW5hbGx5e3RyeXtvJiYhby5kb25lJiYocj1hLnJldHVybikmJnIuY2FsbChhKX1maW5hbGx5e2lmKG4pdGhyb3cgbi5lcnJvcn19fXZhciBuQj17cGFyaXR5OmZ1bmN0aW9uKHQsZSl7dmFyIG49ZS5zZXEscj1uPT09dm9pZCAwPzI6bjtyZXR1cm4gdC5maWx0ZXIoZnVuY3Rpb24oaSxhKXtyZXR1cm4gYSVyPyhubChpKSwhMSk6ITB9KX19LHJCPWZ1bmN0aW9uKHQpe3JldHVybiB0LmZpbHRlcihiVCl9O2Z1bmN0aW9uIGlCKHQsZSxuLHIpe3ZhciBpPXQubGVuZ3RoLGE9ZS5rZWVwSGVhZGVyLG89ZS5rZWVwVGFpbDtpZighKGk8PTF8fGk9PT0yJiZhJiZvKSl7dmFyIHM9bkIucGFyaXR5LGM9ZnVuY3Rpb24oXyl7cmV0dXJuIF8uZm9yRWFjaChyLnNob3cpLF99LGw9Mix1PXQuc2xpY2UoKSxmPXQuc2xpY2UoKSxkPU1hdGgubWluLmFwcGx5KE1hdGgsdGUoWzFdLFYodC5tYXAoZnVuY3Rpb24oXyl7cmV0dXJuIF8uZ2V0QkJveCgpLndpZHRofSkpLCExKSk7aWYobi50eXBlPT09ImxpbmVhciImJihsVChuKXx8dVQobikpKXt2YXIgaD13VCh0WzBdKS5sZWZ0LHY9d1QodFtpLTFdKS5yaWdodCxnPU1hdGguYWJzKHYtaCl8fDE7bD1NYXRoLm1heChNYXRoLmZsb29yKGkqZC9nKSxsKX12YXIgeSxiO2ZvcihhJiYoeT11LnNwbGljZSgwLDEpWzBdKSxvJiYoYj11LnNwbGljZSgtMSwxKVswXSx1LnJldmVyc2UoKSksYyh1KTtsPHQubGVuZ3RoJiZkbShyQihiP3RlKHRlKFtiXSxWKGYpLCExKSxbeV0sITEpOnRlKFt5XSxWKGYpLCExKSksbixlPT1udWxsP3ZvaWQgMDplLm1hcmdpbikubGVuZ3RoOyl7aWYoYiYmIXkmJmwlMj09PTApe3ZhciB4PXUuc3BsaWNlKDAsMSk7eC5mb3JFYWNoKHIuaGlkZSl9ZWxzZSBpZihiJiZ5KXt2YXIgeD11LnNwbGljZSgwLDEpO3guZm9yRWFjaChyLmhpZGUpfWY9cyhjKHUpLHtzZXE6bH0pLGwrK319fWZ1bmN0aW9uIGFCKHQsZSxuLHIpe3ZhciBpLGEsbz1lLm9wdGlvbmFsQW5nbGVzLHM9bz09PXZvaWQgMD9bMCw0NSw5MF06byxjPWUubWFyZ2luLGw9ZS5yZWNvdmVyV2hlbkZhaWxlZCx1PWw9PT12b2lkIDA/ITA6bCxmPXQubWFwKGZ1bmN0aW9uKGIpe3JldHVybiBiLmdldExvY2FsRXVsZXJBbmdsZXMoKX0pLGQ9ZnVuY3Rpb24oKXtyZXR1cm4gZG0odCxuLGMpLmxlbmd0aDwxfSxoPWZ1bmN0aW9uKGIpe3JldHVybiB0LmZvckVhY2goZnVuY3Rpb24oeCxfKXt2YXIgdz1BcnJheS5pc0FycmF5KGIpP2JbX106YjtyLnJvdGF0ZSh4LCt3KX0pfTt0cnl7Zm9yKHZhciB2PWdpKHMpLGc9di5uZXh0KCk7IWcuZG9uZTtnPXYubmV4dCgpKXt2YXIgeT1nLnZhbHVlO2lmKGgoeSksZCgpKXJldHVybn19Y2F0Y2goYil7aT17ZXJyb3I6Yn19ZmluYWxseXt0cnl7ZyYmIWcuZG9uZSYmKGE9di5yZXR1cm4pJiZhLmNhbGwodil9ZmluYWxseXtpZihpKXRocm93IGkuZXJyb3J9fXUmJmgoZil9ZnVuY3Rpb24gb0IodCl7dmFyIGU9dC50eXBlLG49dC5sYWJlbERpcmVjdGlvbjtyZXR1cm4gZT09PSJsaW5lYXIiJiZsVCh0KT9uPT09Im5lZ2F0aXZlIj8iYm90dG9tIjoidG9wIjoibWlkZGxlIn1mdW5jdGlvbiBzQih0LGUsbixyKXt2YXIgaT1lLndvcmRXcmFwV2lkdGgsYT1pPT09dm9pZCAwPzUwOmksbz1lLm1heExpbmVzLHM9bz09PXZvaWQgMD8zOm8sYz1lLnJlY292ZXJXaGVuRmFpbGVkLGw9Yz09PXZvaWQgMD8hMDpjLHU9ZS5tYXJnaW4sZj11PT09dm9pZCAwP1swLDAsMCwwXTp1LGQ9dC5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHguYXR0cigibWF4TGluZXMiKXx8MX0pLGg9TWF0aC5taW4uYXBwbHkoTWF0aCx0ZShbXSxWKGQpLCExKSksdj1mdW5jdGlvbigpe3JldHVybiBkbSh0LG4sZikubGVuZ3RoPDF9LGc9b0IobikseT1mdW5jdGlvbih4KXtyZXR1cm4gdC5mb3JFYWNoKGZ1bmN0aW9uKF8sdyl7dmFyIE89QXJyYXkuaXNBcnJheSh4KT94W3ddOng7ci53cmFwKF8sYSxPLGcpfSl9O2lmKCEoaD5zKSl7Zm9yKHZhciBiPWg7Yjw9cztiKyspaWYoeShiKSx2KCkpcmV0dXJuO2wmJnkoZCl9fXZhciBjQj1uZXcgTWFwKFtbImhpZGUiLGlCXSxbInJvdGF0ZSIsYUJdLFsiZWxsaXBzaXMiLEo5XSxbIndyYXAiLHNCXV0pO2Z1bmN0aW9uIGxCKHQsZSxuKXtyZXR1cm4gZS5sYWJlbE92ZXJsYXAubGVuZ3RoPDE/ITE6bj09PSJoaWRlIj8hbzkodFswXSk6bj09PSJyb3RhdGUiPyF0LnNvbWUoZnVuY3Rpb24ocil7dmFyIGk7cmV0dXJuISEoISgoaT1yLmF0dHIoInRyYW5zZm9ybSIpKT09PW51bGx8fGk9PT12b2lkIDApJiZpLmluY2x1ZGVzKCJyb3RhdGUiKSl9KTpuPT09ImVsbGlwc2lzInx8bj09PSJ3cmFwIj90LmZpbHRlcihmdW5jdGlvbihyKXtyZXR1cm4gci5xdWVyeVNlbGVjdG9yKCJ0ZXh0Iil9KS5sZW5ndGg+MTohMH1mdW5jdGlvbiB1Qih0LGUsbil7dmFyIHI9ZS5sYWJlbE92ZXJsYXAsaT1yPT09dm9pZCAwP1tdOnI7aS5sZW5ndGgmJmkuZm9yRWFjaChmdW5jdGlvbihhKXt2YXIgbz1hLnR5cGUscz1jQi5nZXQobyk7bEIodCxlLG8pJiYocz09bnVsbHx8cyh0LGEsZSxuKSl9KX1mdW5jdGlvbiBmQigpe2Zvcih2YXIgdD1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl0W2VdPWFyZ3VtZW50c1tlXTt2YXIgbj1mdW5jdGlvbihyKXtyZXR1cm4gcj09PSJwb3NpdGl2ZSI/LTE6MX07cmV0dXJuIHQucmVkdWNlKGZ1bmN0aW9uKHIsaSl7cmV0dXJuIHIqbihpKX0sMSl9ZnVuY3Rpb24gT1QodCl7Zm9yKHZhciBlPXQ7ZTwwOyllKz0zNjA7cmV0dXJuIE1hdGgucm91bmQoZSUzNjApfWZ1bmN0aW9uIGJ3KHQsZSl7dmFyIG49Vih0LDIpLHI9blswXSxpPW5bMV0sYT1WKGUsMiksbz1hWzBdLHM9YVsxXSxjPVYoW3IqbytpKnMscipzLWkqb10sMiksbD1jWzBdLHU9Y1sxXTtyZXR1cm4gTWF0aC5hdGFuMih1LGwpfWZ1bmN0aW9uIGRCKHQpe3ZhciBlPSh0KzM2MCklMTgwO3JldHVybiBSaShlLC05MCw5MCl8fChlKz0xODApLGV9ZnVuY3Rpb24gaEIodCxlLG4pe3ZhciByLGk9bi5sYWJlbEFsaWduLGE9KHI9ZS5zdHlsZS50cmFuc2Zvcm0pPT09bnVsbHx8cj09PXZvaWQgMD92b2lkIDA6ci5pbmNsdWRlcygicm90YXRlIik7aWYoYSlyZXR1cm4gZS5nZXRMb2NhbEV1bGVyQW5nbGVzKCk7dmFyIG89MCxzPVRwKHQudmFsdWUsbiksYz1jbSh0LnZhbHVlLG4pO3JldHVybiBpPT09Imhvcml6b250YWwiPzA6KGk9PT0icGVycGVuZGljdWxhciI/bz1idyhbMSwwXSxzKTpvPWJ3KFtjWzBdPDA/LTE6MSwwXSxjKSxkQihuVChvKSkpfWZ1bmN0aW9uIFNUKHQsZSxuKXt2YXIgcj1uLnR5cGUsaT1uLmxhYmVsQWxpZ24sYT1UcCh0LG4pLG89T1QoZSkscz1PVChuVChidyhbMSwwXSxhKSkpLGM9ImNlbnRlciIsbD0ibWlkZGxlIjtyZXR1cm4gcj09PSJsaW5lYXIiP1s5MCwyNzBdLmluY2x1ZGVzKHMpJiZvPT09MD8oYz0iY2VudGVyIixsPWFbMV09PT0xPyJ0b3AiOiJib3R0b20iKTohKHMlMTgwKSYmWzkwLDI3MF0uaW5jbHVkZXMobyk/Yz0iY2VudGVyIjpzPT09MD8oUmkobywwLDkwLCExLCEwKXx8UmkobywwLDkwKXx8UmkobywyNzAsMzYwKSkmJihjPSJzdGFydCIpOnM9PT05MD9SaShvLDAsOTAsITEsITApP2M9InN0YXJ0IjooUmkobyw5MCwxODApfHxSaShvLDI3MCwzNjApKSYmKGM9ImVuZCIpOnM9PT0yNzA/UmkobywwLDkwLCExLCEwKT9jPSJlbmQiOihSaShvLDkwLDE4MCl8fFJpKG8sMjcwLDM2MCkpJiYoYz0ic3RhcnQiKTpzPT09MTgwJiYobz09PTkwP2M9InN0YXJ0IjooUmkobywwLDkwKXx8UmkobywyNzAsMzYwKSkmJihjPSJlbmQiKSk6aT09PSJwYXJhbGxlbCI/UmkocywwLDE4MCwhMCk/bD0idG9wIjpsPSJib3R0b20iOmk9PT0iaG9yaXpvbnRhbCI/Umkocyw5MCwyNzAsITEpP2M9ImVuZCI6KFJpKHMsMjcwLDM2MCwhMSl8fFJpKHMsMCw5MCkpJiYoYz0ic3RhcnQiKTppPT09InBlcnBlbmRpY3VsYXIiJiYoUmkocyw5MCwyNzApP2M9ImVuZCI6Yz0ic3RhcnQiKSx7dGV4dEFsaWduOmMsdGV4dEJhc2VsaW5lOmx9fWZ1bmN0aW9uIHBCKHQsZSxuKXtlLnNldExvY2FsRXVsZXJBbmdsZXModCk7dmFyIHI9ZS5fX2RhdGFfXy52YWx1ZSxpPVNUKHIsdCxuKSxhPWUucXVlcnlTZWxlY3Rvcih6bi5sYWJlbEl0ZW0uY2xhc3MpO2EmJk1UKGEsaSl9ZnVuY3Rpb24gRVQodCxlLG4pe3ZhciByPW4uc2hvd1RpY2ssaT1uLnRpY2tMZW5ndGgsYT1uLnRpY2tEaXJlY3Rpb24sbz1uLmxhYmVsRGlyZWN0aW9uLHM9bi5sYWJlbFNwYWNpbmcsYz1lLmluZGV4T2YodCksbD1fbyhzLFt0LGMsZV0pLHU9VihbVHAodC52YWx1ZSxuKSxmQihvLGEpXSwyKSxmPXVbMF0sZD11WzFdLGg9ZD09PTE/X28ocj9pOjAsW3QsYyxlXSk6MCx2PVYoa3AoYWMoZixsK2gpLGxtKHQudmFsdWUsbikpLDIpLGc9dlswXSx5PXZbMV07cmV0dXJue3g6Zyx5fX1mdW5jdGlvbiB2Qih0LGUsbixyKXt2YXIgaT1yLmxhYmVsRm9ybWF0dGVyLGE9WG4oaSk/ZnVuY3Rpb24oKXtyZXR1cm4gcHUoX28oaSxbdCxlLG4sVHAodC52YWx1ZSxyKV0pKX06ZnVuY3Rpb24oKXtyZXR1cm4gcHUodC5sYWJlbHx8IiIpfTtyZXR1cm4gYX1mdW5jdGlvbiBNVCh0LGUpe3Qubm9kZU5hbWU9PT0idGV4dCImJnQuYXR0cihlKX1mdW5jdGlvbiBrVCh0KXt1Qih0aGlzLm5vZGUoKS5jaGlsZE5vZGVzLHQse2hpZGU6bmwsc2hvdzpNcCxyb3RhdGU6ZnVuY3Rpb24oZSxuKXtwQigrbixlLHQpfSxlbGxpcHNpczpmdW5jdGlvbihlLG4scil7ZSYmZ3coZSxufHwxLzAscil9LHdyYXA6ZnVuY3Rpb24oZSxuLHIpe2UmJlk5KGUsbixyKX0sZ2V0VGV4dFNoYXBlOmZ1bmN0aW9uKGUpe3JldHVybiBlLnF1ZXJ5U2VsZWN0b3IoInRleHQiKX19KX1mdW5jdGlvbiBBVCh0LGUsbixyLGkpe3ZhciBhPW4uaW5kZXhPZihlKSxvPUZlKHQpLmFwcGVuZCh2QihlLGEsbixpKSkuYXR0cigiY2xhc3NOYW1lIix6bi5sYWJlbEl0ZW0ubmFtZSkubm9kZSgpLHM9VihvYyhzVChyLFtlLGEsbl0pKSwyKSxjPXNbMF0sbD1zWzFdLHU9bC50cmFuc2Zvcm0sZj0kcihsLFsidHJhbnNmb3JtIl0pO21UKG8sdSk7dmFyIGQ9aEIoZSxvLGkpO3JldHVybiBvLmdldExvY2FsRXVsZXJBbmdsZXMoKXx8by5zZXRMb2NhbEV1bGVyQW5nbGVzKGQpLE1UKG8sQXQoQXQoe30sU1QoZS52YWx1ZSxkLGkpKSxjKSksdC5hdHRyKGYpLG99ZnVuY3Rpb24gZ0IodCxlLG4scil7dmFyIGk9ZHcoZSxuLmxhYmVsRmlsdGVyKSxhPWVuKG4sImxhYmVsIik7cmV0dXJuIHQuc2VsZWN0QWxsKHpuLmxhYmVsLmNsYXNzKS5kYXRhKGksZnVuY3Rpb24obyxzKXtyZXR1cm4gc30pLmpvaW4oZnVuY3Rpb24obyl7cmV0dXJuIG8uYXBwZW5kKCJnIikuYXR0cigiY2xhc3NOYW1lIix6bi5sYWJlbC5uYW1lKS50cmFuc2l0aW9uKGZ1bmN0aW9uKHMpe0FUKHRoaXMscyxlLGEsbik7dmFyIGM9RVQocyxlLG4pLGw9Yy54LHU9Yy55O3JldHVybiB0aGlzLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlKCIuY29uY2F0KGwsIiwgIikuY29uY2F0KHUsIikiKSxudWxsfSkuY2FsbChmdW5jdGlvbigpe2tULmNhbGwodCxuKX0pfSxmdW5jdGlvbihvKXtyZXR1cm4gby50cmFuc2l0aW9uKGZ1bmN0aW9uKHMpe3ZhciBjPXRoaXMucXVlcnlTZWxlY3Rvcih6bi5sYWJlbEl0ZW0uY2xhc3MpLGw9QVQodGhpcyxzLGUsYSxuKSx1PXI5KGMsbCxyLnVwZGF0ZSksZj1FVChzLGUsbiksZD1mLngsaD1mLnksdj16byh0aGlzLHt0cmFuc2Zvcm06InRyYW5zbGF0ZSgiLmNvbmNhdChkLCIsICIpLmNvbmNhdChoLCIpIil9LHIudXBkYXRlKTtyZXR1cm4gdGUodGUoW10sVih1KSwhMSksW3ZdLCExKX0pLmNhbGwoZnVuY3Rpb24ocyl7dmFyIGM9dm4ocywiX3RyYW5zaXRpb25zIikuZmxhdCgpLmZpbHRlcihiVCk7ZTkoYyxmdW5jdGlvbigpe2tULmNhbGwodCxuKX0pfSl9LGZ1bmN0aW9uKG8pe3JldHVybiBvLnRyYW5zaXRpb24oZnVuY3Rpb24oKXt2YXIgcz10aGlzLGM9c20odGhpcy5jaGlsZE5vZGVzWzBdLHIuZXhpdCk7cmV0dXJuIFFmKGMsZnVuY3Rpb24oKXtyZXR1cm4gRmUocykucmVtb3ZlKCl9KSxjfSl9KS50cmFuc2l0aW9ucygpfWZ1bmN0aW9uIFRUKHQsZSl7cmV0dXJuIGh3KHQsZS50aWNrRGlyZWN0aW9uLGUpfWZ1bmN0aW9uIHlCKHQsZSl7dmFyIG49Vih0LDIpLHI9blswXSxpPW5bMV07cmV0dXJuW1swLDBdLFtyKmUsaSplXV19ZnVuY3Rpb24gbUIodCxlLG4scixpKXt2YXIgYT1pLnRpY2tMZW5ndGgsbz1WKHlCKHIsX28oYSxbdCxlLG5dKSksMikscz1WKG9bMF0sMiksYz1zWzBdLGw9c1sxXSx1PVYob1sxXSwyKSxmPXVbMF0sZD11WzFdO3JldHVybnt4MTpjLHgyOmYseTE6bCx5MjpkfX1mdW5jdGlvbiBiQih0LGUsbixyLGkpe3ZhciBhPWkudGlja0Zvcm1hdHRlcixvPVRUKGUudmFsdWUsaSkscz0ibGluZSI7cmV0dXJuIFhuKGEpJiYocz1mdW5jdGlvbigpe3JldHVybiBfbyhhLFtlLG4scixvXSl9KSx0LmFwcGVuZChzKS5hdHRyKCJjbGFzc05hbWUiLHpuLnRpY2tJdGVtLm5hbWUpfWZ1bmN0aW9uIHhCKHQsZSxuLHIsaSxhLG8pe3ZhciBzPVRUKHQudmFsdWUsYSksYz1tQih0LGUsbixzLGEpLGw9Yy54MSx1PWMueDIsZj1jLnkxLGQ9Yy55MixoPVYob2Moc1QobyxbdCxlLG4sc10pKSwyKSx2PWhbMF0sZz1oWzFdO3Iubm9kZSgpLm5vZGVOYW1lPT09ImxpbmUiJiZyLnN0eWxlcyhBdCh7eDE6bCx4Mjp1LHkxOmYseTI6ZH0sdikpLGkuYXR0cihnKSxyLnN0eWxlcyh2KX1mdW5jdGlvbiBQVCh0LGUsbixyLGksYSl7dmFyIG89YkIoRmUodGhpcyksdCxlLG4scik7eEIodCxlLG4sbyx0aGlzLHIsaSk7dmFyIHM9VihsbSh0LnZhbHVlLHIpLDIpLGM9c1swXSxsPXNbMV07cmV0dXJuIHpvKHRoaXMse3RyYW5zZm9ybToidHJhbnNsYXRlKCIuY29uY2F0KGMsIiwgIikuY29uY2F0KGwsIikiKX0sYSl9ZnVuY3Rpb24gX0IodCxlLG4scil7dmFyIGk9ZHcoZSxuLnRpY2tGaWx0ZXIpLGE9ZW4obiwidGljayIpO3JldHVybiB0LnNlbGVjdEFsbCh6bi50aWNrLmNsYXNzKS5kYXRhKGksZnVuY3Rpb24obyl7cmV0dXJuIG8uaWR8fG8ubGFiZWx9KS5qb2luKGZ1bmN0aW9uKG8pe3JldHVybiBvLmFwcGVuZCgiZyIpLmF0dHIoImNsYXNzTmFtZSIsem4udGljay5uYW1lKS50cmFuc2l0aW9uKGZ1bmN0aW9uKHMsYyl7cmV0dXJuIFBULmNhbGwodGhpcyxzLGMsaSxuLGEsITEpfSl9LGZ1bmN0aW9uKG8pe3JldHVybiBvLnRyYW5zaXRpb24oZnVuY3Rpb24ocyxjKXtyZXR1cm4gdGhpcy5yZW1vdmVDaGlsZHJlbigpLFBULmNhbGwodGhpcyxzLGMsaSxuLGEsci51cGRhdGUpfSl9LGZ1bmN0aW9uKG8pe3JldHVybiBvLnRyYW5zaXRpb24oZnVuY3Rpb24oKXt2YXIgcz10aGlzLGM9c20odGhpcy5jaGlsZE5vZGVzWzBdLHIuZXhpdCk7cmV0dXJuIFFmKGMsZnVuY3Rpb24oKXtyZXR1cm4gcy5yZW1vdmUoKX0pLGN9KX0pLnRyYW5zaXRpb25zKCl9dmFyIHByPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlLG4scixpKXtlPT09dm9pZCAwJiYoZT0wKSxuPT09dm9pZCAwJiYobj0wKSxyPT09dm9pZCAwJiYocj0wKSxpPT09dm9pZCAwJiYoaT0wKSx0aGlzLng9MCx0aGlzLnk9MCx0aGlzLndpZHRoPTAsdGhpcy5oZWlnaHQ9MCx0aGlzLng9ZSx0aGlzLnk9bix0aGlzLndpZHRoPXIsdGhpcy5oZWlnaHQ9aX1yZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJib3R0b20iLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy55K3RoaXMuaGVpZ2h0fSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwibGVmdCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnh9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJyaWdodCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLngrdGhpcy53aWR0aH0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsInRvcCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksdC5mcm9tUmVjdD1mdW5jdGlvbihlKXtyZXR1cm4gbmV3IHQoZS54LGUueSxlLndpZHRoLGUuaGVpZ2h0KX0sdC5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJue3g6dGhpcy54LHk6dGhpcy55LHdpZHRoOnRoaXMud2lkdGgsaGVpZ2h0OnRoaXMuaGVpZ2h0LHRvcDp0aGlzLnRvcCxyaWdodDp0aGlzLnJpZ2h0LGJvdHRvbTp0aGlzLmJvdHRvbSxsZWZ0OnRoaXMubGVmdH19LHQucHJvdG90eXBlLmlzUG9pbnRJbj1mdW5jdGlvbihlLG4pe3JldHVybiBlPj10aGlzLmxlZnQmJmU8PXRoaXMucmlnaHQmJm4+PXRoaXMudG9wJiZuPD10aGlzLmJvdHRvbX0sdH0oKTtmdW5jdGlvbiBhb3QodCl7dmFyIGU9dC5nZXRSZW5kZXJCb3VuZHMoKSxuPV9fcmVhZChlLm1pbiwyKSxyPW5bMF0saT1uWzFdLGE9X19yZWFkKGUubWF4LDIpLG89YVswXSxzPWFbMV0sYz1vLXIsbD1zLWk7cmV0dXJuIG5ldyBwcihyLGksYyxsKX12YXIgQ1Q9eG8oe3RleHQ6InRleHQifSwidGl0bGUiKTtmdW5jdGlvbiBobSh0KXtyZXR1cm4vXFMrLVxTKy9nLnRlc3QodCk/dC5zcGxpdCgiLSIpLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZVswXX0pOnQubGVuZ3RoPjI/W3RbMF1dOnQuc3BsaXQoIiIpfWZ1bmN0aW9uIHdCKHQsZSl7dmFyIG49dC5hdHRyaWJ1dGVzLHI9bi5wb3NpdGlvbixpPW4uc3BhY2luZyxhPW4uaW5zZXQsbz1uLnRleHQscz10LmdldEJCb3goKSxjPWUuZ2V0QkJveCgpLGw9aG0ociksdT1WKE5pKG8/aTowKSw0KSxmPXVbMF0sZD11WzFdLGg9dVsyXSx2PXVbM10sZz1WKE5pKGEpLDQpLHk9Z1swXSxiPWdbMV0seD1nWzJdLF89Z1szXSx3PVYoW3YrZCxmK2hdLDIpLE89d1swXSxFPXdbMV0sTT1WKFtfK2IseSt4XSwyKSxrPU1bMF0sQT1NWzFdO2lmKGxbMF09PT0ibCIpcmV0dXJuIG5ldyBwcihzLngscy55LGMud2lkdGgrcy53aWR0aCtPK2ssTWF0aC5tYXgoYy5oZWlnaHQrQSxzLmhlaWdodCkpO2lmKGxbMF09PT0idCIpcmV0dXJuIG5ldyBwcihzLngscy55LE1hdGgubWF4KGMud2lkdGgrayxzLndpZHRoKSxjLmhlaWdodCtzLmhlaWdodCtFK0EpO3ZhciBQPVYoW2UuYXR0cmlidXRlcy53aWR0aHx8Yy53aWR0aCxlLmF0dHJpYnV0ZXMuaGVpZ2h0fHxjLmhlaWdodF0sMiksQz1QWzBdLE49UFsxXTtyZXR1cm4gbmV3IHByKGMueCxjLnksQytzLndpZHRoK08rayxOK3MuaGVpZ2h0K0UrQSl9ZnVuY3Rpb24gT0IodCxlKXt2YXIgbj1PYmplY3QuZW50cmllcyhlKS5yZWR1Y2UoZnVuY3Rpb24ocixpKXt2YXIgYT1WKGksMiksbz1hWzBdLHM9YVsxXSxjPXQubm9kZSgpLmF0dHIobyk7cmV0dXJuIGN8fChyW29dPXMpLHJ9LHt9KTt0LnN0eWxlcyhuKX1mdW5jdGlvbiBTQih0KXt2YXIgZSxuLHIsaSxhPXQsbz1hLndpZHRoLHM9YS5oZWlnaHQsYz1hLnBvc2l0aW9uLGw9VihbK28vMiwrcy8yXSwyKSx1PWxbMF0sZj1sWzFdLGQ9VihbK3UsK2YsImNlbnRlciIsIm1pZGRsZSJdLDQpLGg9ZFswXSx2PWRbMV0sZz1kWzJdLHk9ZFszXSxiPWhtKGMpO3JldHVybiBiLmluY2x1ZGVzKCJsIikmJihlPVYoWzAsInN0YXJ0Il0sMiksaD1lWzBdLGc9ZVsxXSksYi5pbmNsdWRlcygiciIpJiYobj1WKFsrbywiZW5kIl0sMiksaD1uWzBdLGc9blsxXSksYi5pbmNsdWRlcygidCIpJiYocj1WKFswLCJ0b3AiXSwyKSx2PXJbMF0seT1yWzFdKSxiLmluY2x1ZGVzKCJiIikmJihpPVYoWytzLCJib3R0b20iXSwyKSx2PWlbMF0seT1pWzFdKSx7eDpoLHk6dix0ZXh0QWxpZ246Zyx0ZXh0QmFzZWxpbmU6eX19dmFyIExUPWZ1bmN0aW9uKHQpe2FyKGUsdCk7ZnVuY3Rpb24gZShuKXtyZXR1cm4gdC5jYWxsKHRoaXMsbix7dGV4dDoiIix3aWR0aDowLGhlaWdodDowLGZpbGw6IiM0YTUwNWEiLGZvbnRXZWlnaHQ6ImJvbGQiLGZvbnRTaXplOjEyLGZvbnRGYW1pbHk6InNhbnMtc2VyaWYiLGluc2V0OjAsc3BhY2luZzowLHBvc2l0aW9uOiJ0b3AtbGVmdCJ9KXx8dGhpc31yZXR1cm4gZS5wcm90b3R5cGUuZ2V0QXZhaWxhYmxlU3BhY2U9ZnVuY3Rpb24oKXt2YXIgbj10aGlzLHI9dGhpcy5hdHRyaWJ1dGVzLGk9ci53aWR0aCxhPXIuaGVpZ2h0LG89ci5wb3NpdGlvbixzPXIuc3BhY2luZyxjPXIuaW5zZXQsbD1uLnF1ZXJ5U2VsZWN0b3IoQ1QudGV4dC5jbGFzcyk7aWYoIWwpcmV0dXJuIG5ldyBwcigwLDAsK2ksK2EpO3ZhciB1PWwuZ2V0QkJveCgpLGY9dS53aWR0aCxkPXUuaGVpZ2h0LGg9VihOaShzKSw0KSx2PWhbMF0sZz1oWzFdLHk9aFsyXSxiPWhbM10seD1WKFswLDAsK2ksK2FdLDQpLF89eFswXSx3PXhbMV0sTz14WzJdLEU9eFszXSxNPWhtKG8pO2lmKE0uaW5jbHVkZXMoImkiKSlyZXR1cm4gbmV3IHByKF8sdyxPLEUpO00uZm9yRWFjaChmdW5jdGlvbihELEcpe3ZhciBGLFcsWCxRO0Q9PT0idCImJihGPVYoRz09PTA/W2QreSwrYS1kLXldOlswLCthXSwyKSx3PUZbMF0sRT1GWzFdKSxEPT09InIiJiYoVz1WKFsraS1mLWJdLDEpLE89V1swXSksRD09PSJiIiYmKFg9VihbK2EtZC12XSwxKSxFPVhbMF0pLEQ9PT0ibCImJihRPVYoRz09PTA/W2YrZywraS1mLWddOlswLCtpXSwyKSxfPVFbMF0sTz1RWzFdKX0pO3ZhciBrPVYoTmkoYyksNCksQT1rWzBdLFA9a1sxXSxDPWtbMl0sTj1rWzNdLEw9VihbTitQLEErQ10sMiksUj1MWzBdLEk9TFsxXTtyZXR1cm4gbmV3IHByKF8rTix3K0EsTy1SLEUtSSl9LGUucHJvdG90eXBlLmdldEJCb3g9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50aXRsZT90aGlzLnRpdGxlLmdldEJCb3goKTpuZXcgcHIoMCwwLDAsMCl9LGUucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbihuLHIpe3ZhciBpPXRoaXMsYT1uLndpZHRoLG89bi5oZWlnaHQscz1uLnBvc2l0aW9uLGM9bi5zcGFjaW5nLGw9JHIobixbIndpZHRoIiwiaGVpZ2h0IiwicG9zaXRpb24iLCJzcGFjaW5nIl0pLHU9VihvYyhsKSwxKSxmPXVbMF0sZD1TQihuKSxoPWQueCx2PWQueSxnPWQudGV4dEFsaWduLHk9ZC50ZXh0QmFzZWxpbmU7UGEoISFsLnRleHQsRmUociksZnVuY3Rpb24oYil7aS50aXRsZT1iLm1heWJlQXBwZW5kQnlDbGFzc05hbWUoQ1QudGV4dCwidGV4dCIpLnN0eWxlcyhmKS5jYWxsKE9CLHt4OmgseTp2LHRleHRBbGlnbjpnLHRleHRCYXNlbGluZTp5fSkubm9kZSgpfSl9LGV9KGJpKTtmdW5jdGlvbiBFQih0LGUsbil7dmFyIHI9bi50aXRsZVBvc2l0aW9uLGk9cj09PXZvaWQgMD8ibGIiOnIsYT1uLnRpdGxlU3BhY2luZyxvPWhtKGkpLHM9dC5ub2RlKCkuZ2V0TG9jYWxCb3VuZHMoKSxjPVYocy5taW4sMiksbD1jWzBdLHU9Y1sxXSxmPVYocy5oYWxmRXh0ZW50cywyKSxkPWZbMF0saD1mWzFdLHY9VihlLm5vZGUoKS5nZXRMb2NhbEJvdW5kcygpLmhhbGZFeHRlbnRzLDIpLGc9dlswXSx5PXZbMV0sYj1WKFtsK2QsdStoXSwyKSx4PWJbMF0sXz1iWzFdLHc9VihOaShhKSw0KSxPPXdbMF0sRT13WzFdLE09d1syXSxrPXdbM107aWYoWyJzdGFydCIsImVuZCJdLmluY2x1ZGVzKGkpJiZuLnR5cGU9PT0ibGluZWFyIil7dmFyIEE9bi5zdGFydFBvcyxQPW4uZW5kUG9zLEM9VihpPT09InN0YXJ0Ij9bQSxQXTpbUCxBXSwyKSxOPUNbMF0sTD1DWzFdLFI9ZVQoWy1MWzBdK05bMF0sLUxbMV0rTlsxXV0pLEk9VihhYyhSLE8pLDIpLEQ9SVswXSxHPUlbMV07cmV0dXJue3g6TlswXStELHk6TlsxXStHfX1yZXR1cm4gby5pbmNsdWRlcygidCIpJiYoXy09aCt5K08pLG8uaW5jbHVkZXMoInIiKSYmKHgrPWQrZytFKSxvLmluY2x1ZGVzKCJsIikmJih4LT1kK2crayksby5pbmNsdWRlcygiYiIpJiYoXys9aCt5K00pLHt4LHk6X319ZnVuY3Rpb24gTUIodCxlLG4pe3ZhciByPXQuZ2V0R2VvbWV0cnlCb3VuZHMoKS5oYWxmRXh0ZW50cyxpPXJbMV0qMjtpZihlPT09InZlcnRpY2FsIil7aWYobj09PSJsZWZ0IilyZXR1cm4icm90YXRlKC05MCkgdHJhbnNsYXRlKDAsICIuY29uY2F0KGkvMiwiKSIpO2lmKG49PT0icmlnaHQiKXJldHVybiJyb3RhdGUoLTkwKSB0cmFuc2xhdGUoMCwgLSIuY29uY2F0KGkvMiwiKSIpfXJldHVybiIifWZ1bmN0aW9uIFJUKHQsZSxuLHIsaSl7dmFyIGE9ZW4ociwidGl0bGUiKSxvPVYob2MoYSksMikscz1vWzBdLGM9b1sxXSxsPWMudHJhbnNmb3JtLHU9Yy50cmFuc2Zvcm1PcmlnaW4sZj0kcihjLFsidHJhbnNmb3JtIiwidHJhbnNmb3JtT3JpZ2luIl0pO2Uuc3R5bGVzKGYpO3ZhciBkPWx8fE1CKHQubm9kZSgpLHMuZGlyZWN0aW9uLHMucG9zaXRpb24pO3Quc3R5bGVzKEF0KEF0KHt9LHMpLHt0cmFuc2Zvcm1PcmlnaW46dX0pKSxtVCh0Lm5vZGUoKSxkKTt2YXIgaD1FQihGZShuLl9vZmZzY3JlZW58fG4ucXVlcnlTZWxlY3Rvcih6bi5tYWluR3JvdXAuY2xhc3MpKSxlLHIpLHY9aC54LGc9aC55LHk9em8oZS5ub2RlKCkse3RyYW5zZm9ybToidHJhbnNsYXRlKCIuY29uY2F0KHYsIiwgIikuY29uY2F0KGcsIikiKX0saSk7cmV0dXJuIHl9ZnVuY3Rpb24ga0IodCxlLG4scil7dmFyIGk9bi50aXRsZVRleHQ7cmV0dXJuIHQuc2VsZWN0QWxsKHpuLnRpdGxlLmNsYXNzKS5kYXRhKFt7dGl0bGU6aX1dLmZpbHRlcihmdW5jdGlvbihhKXtyZXR1cm4hIWEudGl0bGV9KSxmdW5jdGlvbihhLG8pe3JldHVybiBhLnRpdGxlfSkuam9pbihmdW5jdGlvbihhKXtyZXR1cm4gYS5hcHBlbmQoZnVuY3Rpb24oKXtyZXR1cm4gcHUoaSl9KS5hdHRyKCJjbGFzc05hbWUiLHpuLnRpdGxlLm5hbWUpLnRyYW5zaXRpb24oZnVuY3Rpb24oKXtyZXR1cm4gUlQoRmUodGhpcyksdCxlLG4sci5lbnRlcil9KX0sZnVuY3Rpb24oYSl7cmV0dXJuIGEudHJhbnNpdGlvbihmdW5jdGlvbigpe3JldHVybiBSVChGZSh0aGlzKSx0LGUsbixyLnVwZGF0ZSl9KX0sZnVuY3Rpb24oYSl7cmV0dXJuIGEucmVtb3ZlKCl9KS50cmFuc2l0aW9ucygpfWZ1bmN0aW9uIE5UKHQsZSxuLHIpe3ZhciBpPXQuc2hvd0xpbmUsYT10LnNob3dUaWNrLG89dC5zaG93TGFiZWwscz1lLm1heWJlQXBwZW5kQnlDbGFzc05hbWUoem4ubGluZUdyb3VwLCJnIiksYz1QYShpLHMsZnVuY3Rpb24oaCl7cmV0dXJuIGo5KGgsdCxyKX0pfHxbXSxsPWUubWF5YmVBcHBlbmRCeUNsYXNzTmFtZSh6bi50aWNrR3JvdXAsImciKSx1PVBhKGEsbCxmdW5jdGlvbihoKXtyZXR1cm4gX0IoaCxuLHQscil9KXx8W10sZj1lLm1heWJlQXBwZW5kQnlDbGFzc05hbWUoem4ubGFiZWxHcm91cCwiZyIpLGQ9UGEobyxmLGZ1bmN0aW9uKGgpe3JldHVybiBnQihoLG4sdCxyKX0pfHxbXTtyZXR1cm4gdGUodGUodGUoW10sVihjKSwhMSksVih1KSwhMSksVihkKSwhMSkuZmlsdGVyKGZ1bmN0aW9uKGgpe3JldHVybiEhaH0pfXZhciB4dz1mdW5jdGlvbih0KXthcihlLHQpO2Z1bmN0aW9uIGUobil7cmV0dXJuIHQuY2FsbCh0aGlzLG4sb3cpfHx0aGlzfXJldHVybiBlLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24obixyLGkpe3ZhciBhPXRoaXMsbz1uLnRpdGxlVGV4dCxzPW4uZGF0YSxjPW4uYW5pbWF0ZSxsPW4uc2hvd1RpdGxlLHU9bi5zaG93R3JpZCxmPW4uZGF0YVRocmVzaG9sZCxkPW4udHJ1bmNSYW5nZSxoPWM5KHMsZikuZmlsdGVyKGZ1bmN0aW9uKE8pe3ZhciBFPU8udmFsdWU7cmV0dXJuIShkJiZFPmRbMF0mJkU8ZFsxXSl9KSx2PXFBKGk9PT12b2lkIDA/YzppKSxnPUZlKHIpLm1heWJlQXBwZW5kQnlDbGFzc05hbWUoem4uZ3JpZEdyb3VwLCJnIikseT1QYSh1LGcsZnVuY3Rpb24oTyl7cmV0dXJuIFc5KE8saCxuLHYpfSl8fFtdLGI9RmUocikubWF5YmVBcHBlbmRCeUNsYXNzTmFtZSh6bi5tYWluR3JvdXAsImciKTtvJiYoIXRoaXMuaW5pdGlhbGl6ZWQmJnYuZW50ZXJ8fHRoaXMuaW5pdGlhbGl6ZWQmJnYudXBkYXRlKSYmTlQobixGZSh0aGlzLm9mZnNjcmVlbkdyb3VwKSxoLHFBKCExKSk7dmFyIHg9TlQobixGZShiLm5vZGUoKSksaCx2KSxfPUZlKHIpLm1heWJlQXBwZW5kQnlDbGFzc05hbWUoem4udGl0bGVHcm91cCwiZyIpLHc9UGEobCxfLGZ1bmN0aW9uKE8pe3JldHVybiBrQihPLGEsbix2KX0pfHxbXTtyZXR1cm4gdGUodGUodGUoW10sVih5KSwhMSksVih4KSwhMSksVih3KSwhMSkuZmxhdCgpLmZpbHRlcihmdW5jdGlvbihPKXtyZXR1cm4hIU99KX0sZX0oYmkpLHZ1PWZ1bmN0aW9uKHQpe3JldHVybiB0fTtjbGFzcyBMcHtjb25zdHJ1Y3RvcihlKXt0aGlzLm9wdGlvbnM9bXQoe30sdGhpcy5nZXREZWZhdWx0T3B0aW9ucygpKSx0aGlzLnVwZGF0ZShlKX1nZXRPcHRpb25zKCl7cmV0dXJuIHRoaXMub3B0aW9uc311cGRhdGUoZT17fSl7dGhpcy5vcHRpb25zPW10KHt9LHRoaXMub3B0aW9ucyxlKSx0aGlzLnJlc2NhbGUoZSl9cmVzY2FsZShlKXt9fWZ1bmN0aW9uIHBtKHQsZSl7cmV0dXJuIGUtdD9uPT4obi10KS8oZS10KTpuPT4uNX1mdW5jdGlvbiBlZCh0LC4uLmUpe3JldHVybiBlLnJlZHVjZSgobixyKT0+aT0+bihyKGkpKSx0KX1mdW5jdGlvbiBfdyh0LGUsbixyLGkpe2xldCBhPW58fDAsbz1yfHx0Lmxlbmd0aDtjb25zdCBzPWl8fChjPT5jKTtmb3IoO2E8bzspe2NvbnN0IGM9TWF0aC5mbG9vcigoYStvKS8yKTtzKHRbY10pPmU/bz1jOmE9YysxfXJldHVybiBhfXZhciBBQj1wdCgxOTgxOCksVEI9cHQubihBQik7ZnVuY3Rpb24gd3codCxlLG4pe2xldCByPW47cmV0dXJuIHI8MCYmKHIrPTEpLHI+MSYmKHItPTEpLHI8MS82P3QrKGUtdCkqNipyOnI8MS8yP2U6cjwyLzM/dCsoZS10KSooMi8zLXIpKjY6dH1mdW5jdGlvbiBQQih0KXtjb25zdCBlPXRbMF0vMzYwLG49dFsxXS8xMDAscj10WzJdLzEwMCxpPXRbM107aWYobj09PTApcmV0dXJuW3IqMjU1LHIqMjU1LHIqMjU1LGldO2NvbnN0IGE9cjwuNT9yKigxK24pOnIrbi1yKm4sbz0yKnItYSxzPXd3KG8sYSxlKzEvMyksYz13dyhvLGEsZSksbD13dyhvLGEsZS0xLzMpO3JldHVybltzKjI1NSxjKjI1NSxsKjI1NSxpXX1mdW5jdGlvbiBJVCh0KXtjb25zdCBlPVRCKCkuZ2V0KHQpO2lmKCFlKXJldHVybiBudWxsO2NvbnN0e21vZGVsOm4sdmFsdWU6cn09ZTtyZXR1cm4gbj09PSJyZ2IiP3I6bj09PSJoc2wiP1BCKHIpOm51bGx9Y29uc3QgbmQ9KHQsZSk9Pm49PnQqKDEtbikrZSpuLENCPSh0LGUpPT57Y29uc3Qgbj1JVCh0KSxyPUlUKGUpO3JldHVybiBuPT09bnVsbHx8cj09PW51bGw/bj8oKT0+dDooKT0+ZTppPT57Y29uc3QgYT1uZXcgQXJyYXkoNCk7Zm9yKGxldCB1PTA7dTw0O3UrPTEpe2NvbnN0IGY9blt1XSxkPXJbdV07YVt1XT1mKigxLWkpK2QqaX1jb25zdFtvLHMsYyxsXT1hO3JldHVybmByZ2JhKCR7TWF0aC5yb3VuZChvKX0sICR7TWF0aC5yb3VuZChzKX0sICR7TWF0aC5yb3VuZChjKX0sICR7bH0pYH19LFJwPSh0LGUpPT50eXBlb2YgdD09Im51bWJlciImJnR5cGVvZiBlPT0ibnVtYmVyIj9uZCh0LGUpOnR5cGVvZiB0PT0ic3RyaW5nIiYmdHlwZW9mIGU9PSJzdHJpbmciP0NCKHQsZSk6KCk9PnQsTEI9KHQsZSk9Pntjb25zdCBuPW5kKHQsZSk7cmV0dXJuIHI9Pk1hdGgucm91bmQobihyKSl9O2Z1bmN0aW9uIFJCKHQpe3JldHVybiB0PT09bnVsbH1mdW5jdGlvbiB2bSh0KXtyZXR1cm4hRW4odCkmJiFSQih0KSYmIU51bWJlci5pc05hTih0KX1jb25zdCBPdz1NYXRoLnNxcnQoNTApLFN3PU1hdGguc3FydCgxMCksRXc9TWF0aC5zcXJ0KDIpO2Z1bmN0aW9uIGdtKHQsZSxuKXtjb25zdCByPShlLXQpL01hdGgubWF4KDAsbiksaT1NYXRoLmZsb29yKE1hdGgubG9nKHIpL01hdGguTE4xMCksYT1yL3RpKDEwLGkpO3JldHVybiBpPj0wPyhhPj1Pdz8xMDphPj1Tdz81OmE+PUV3PzI6MSkqdGkoMTAsaSk6LXRpKDEwLC1pKS8oYT49T3c/MTA6YT49U3c/NTphPj1Fdz8yOjEpfWZ1bmN0aW9uIERUKHQsZSxuKXtjb25zdCByPU1hdGguYWJzKGUtdCkvTWF0aC5tYXgoMCxuKTtsZXQgaT10aSgxMCxNYXRoLmZsb29yKE1hdGgubG9nKHIpL01hdGguTE4xMCkpO2NvbnN0IGE9ci9pO3JldHVybiBhPj1Pdz9pKj0xMDphPj1Tdz9pKj01OmE+PUV3JiYoaSo9MiksZTx0Py1pOml9Y29uc3QgalQ9KHQsZSxuPTUpPT57Y29uc3Qgcj1bdCxlXTtsZXQgaT0wLGE9ci5sZW5ndGgtMSxvPXJbaV0scz1yW2FdLGM7cmV0dXJuIHM8byYmKFtvLHNdPVtzLG9dLFtpLGFdPVthLGldKSxjPWdtKG8scyxuKSxjPjA/KG89TWF0aC5mbG9vcihvL2MpKmMscz1NYXRoLmNlaWwocy9jKSpjLGM9Z20obyxzLG4pKTpjPDAmJihvPU1hdGguY2VpbChvKmMpL2Mscz1NYXRoLmZsb29yKHMqYykvYyxjPWdtKG8scyxuKSksYz4wPyhyW2ldPU1hdGguZmxvb3Ioby9jKSpjLHJbYV09TWF0aC5jZWlsKHMvYykqYyk6YzwwJiYocltpXT1NYXRoLmNlaWwobypjKS9jLHJbYV09TWF0aC5mbG9vcihzKmMpL2MpLHJ9O2Z1bmN0aW9uIE5CKHQsZSl7Y29uc3Qgbj1lPHQ/ZTp0LHI9dD5lP3Q6ZTtyZXR1cm4gaT0+TWF0aC5taW4oTWF0aC5tYXgobixpKSxyKX1jb25zdCBJQj0odCxlLG4pPT57Y29uc3RbcixpXT10LFthLG9dPWU7bGV0IHMsYztyZXR1cm4gcjxpPyhzPXBtKHIsaSksYz1uKGEsbykpOihzPXBtKGksciksYz1uKG8sYSkpLGVkKGMscyl9LERCPSh0LGUsbik9Pntjb25zdCByPU1hdGgubWluKHQubGVuZ3RoLGUubGVuZ3RoKS0xLGk9bmV3IEFycmF5KHIpLGE9bmV3IEFycmF5KHIpLG89dFswXT50W3JdLHM9bz9bLi4udF0ucmV2ZXJzZSgpOnQsYz1vP1suLi5lXS5yZXZlcnNlKCk6ZTtmb3IobGV0IGw9MDtsPHI7bCs9MSlpW2xdPXBtKHNbbF0sc1tsKzFdKSxhW2xdPW4oY1tsXSxjW2wrMV0pO3JldHVybiBsPT57Y29uc3QgdT1fdyh0LGwsMSxyKS0xLGY9aVt1XSxkPWFbdV07cmV0dXJuIGVkKGQsZikobCl9fSxGVD0odCxlLG4scik9PihNYXRoLm1pbih0Lmxlbmd0aCxlLmxlbmd0aCk+Mj9EQjpJQikodCxlLHI/TEI6bik7Y2xhc3MgeW0gZXh0ZW5kcyBMcHtnZXREZWZhdWx0T3B0aW9ucygpe3JldHVybntkb21haW46WzAsMV0scmFuZ2U6WzAsMV0sbmljZTohMSxjbGFtcDohMSxyb3VuZDohMSxpbnRlcnBvbGF0ZTpuZCx0aWNrQ291bnQ6NX19bWFwKGUpe3JldHVybiB2bShlKT90aGlzLm91dHB1dChlKTp0aGlzLm9wdGlvbnMudW5rbm93bn1pbnZlcnQoZSl7cmV0dXJuIHZtKGUpP3RoaXMuaW5wdXQoZSk6dGhpcy5vcHRpb25zLnVua25vd259bmljZSgpe2lmKCF0aGlzLm9wdGlvbnMubmljZSlyZXR1cm47Y29uc3RbZSxuLHIsLi4uaV09dGhpcy5nZXRUaWNrTWV0aG9kT3B0aW9ucygpO3RoaXMub3B0aW9ucy5kb21haW49dGhpcy5jaG9vc2VOaWNlKCkoZSxuLHIsLi4uaSl9Z2V0VGlja3MoKXtjb25zdHt0aWNrTWV0aG9kOmV9PXRoaXMub3B0aW9ucyxbbixyLGksLi4uYV09dGhpcy5nZXRUaWNrTWV0aG9kT3B0aW9ucygpO3JldHVybiBlKG4scixpLC4uLmEpfWdldFRpY2tNZXRob2RPcHRpb25zKCl7Y29uc3R7ZG9tYWluOmUsdGlja0NvdW50Om59PXRoaXMub3B0aW9ucyxyPWVbMF0saT1lW2UubGVuZ3RoLTFdO3JldHVybltyLGksbl19Y2hvb3NlTmljZSgpe3JldHVybiBqVH1yZXNjYWxlKCl7dGhpcy5uaWNlKCk7Y29uc3RbZSxuXT10aGlzLmNob29zZVRyYW5zZm9ybXMoKTt0aGlzLmNvbXBvc2VPdXRwdXQoZSx0aGlzLmNob29zZUNsYW1wKGUpKSx0aGlzLmNvbXBvc2VJbnB1dChlLG4sdGhpcy5jaG9vc2VDbGFtcChuKSl9Y2hvb3NlQ2xhbXAoZSl7Y29uc3R7Y2xhbXA6bixyYW5nZTpyfT10aGlzLm9wdGlvbnMsaT10aGlzLm9wdGlvbnMuZG9tYWluLm1hcChlKSxhPU1hdGgubWluKGkubGVuZ3RoLHIubGVuZ3RoKTtyZXR1cm4gbj9OQihpWzBdLGlbYS0xXSk6dnV9Y29tcG9zZU91dHB1dChlLG4pe2NvbnN0e2RvbWFpbjpyLHJhbmdlOmkscm91bmQ6YSxpbnRlcnBvbGF0ZTpvfT10aGlzLm9wdGlvbnMscz1GVChyLm1hcChlKSxpLG8sYSk7dGhpcy5vdXRwdXQ9ZWQocyxuLGUpfWNvbXBvc2VJbnB1dChlLG4scil7Y29uc3R7ZG9tYWluOmkscmFuZ2U6YX09dGhpcy5vcHRpb25zLG89RlQoYSxpLm1hcChlKSxuZCk7dGhpcy5pbnB1dD1lZChuLHIsbyl9fWNvbnN0IGd1PSh0LGUsbik9PntsZXQgcixpLGE9dCxvPWU7aWYoYT09PW8mJm4+MClyZXR1cm5bYV07bGV0IHM9Z20oYSxvLG4pO2lmKHM9PT0wfHwhTnVtYmVyLmlzRmluaXRlKHMpKXJldHVybltdO2lmKHM+MCl7YT1NYXRoLmNlaWwoYS9zKSxvPU1hdGguZmxvb3Ioby9zKSxpPW5ldyBBcnJheShyPU1hdGguY2VpbChvLWErMSkpO2ZvcihsZXQgYz0wO2M8cjtjKz0xKWlbY109KGErYykqc31lbHNle3M9LXMsYT1NYXRoLmNlaWwoYSpzKSxvPU1hdGguZmxvb3IobypzKSxpPW5ldyBBcnJheShyPU1hdGguY2VpbChvLWErMSkpO2ZvcihsZXQgYz0wO2M8cjtjKz0xKWlbY109KGErYykvc31yZXR1cm4gaX07Y2xhc3MgSmkgZXh0ZW5kcyB5bXtnZXREZWZhdWx0T3B0aW9ucygpe3JldHVybntkb21haW46WzAsMV0scmFuZ2U6WzAsMV0sdW5rbm93bjp2b2lkIDAsbmljZTohMSxjbGFtcDohMSxyb3VuZDohMSxpbnRlcnBvbGF0ZTpScCx0aWNrTWV0aG9kOmd1LHRpY2tDb3VudDo1fX1jaG9vc2VUcmFuc2Zvcm1zKCl7cmV0dXJuW3Z1LHZ1XX1jbG9uZSgpe3JldHVybiBuZXcgSmkodGhpcy5vcHRpb25zKX19ZnVuY3Rpb24gakIodCxlKXtpZih0KXt2YXIgbjtpZihOcih0KSlmb3IodmFyIHI9MCxpPXQubGVuZ3RoO3I8aSYmKG49ZSh0W3JdLHIpLG4hPT0hMSk7cisrKTtlbHNlIGlmKHpsKHQpKXtmb3IodmFyIGEgaW4gdClpZih0Lmhhc093blByb3BlcnR5KGEpJiYobj1lKHRbYV0sYSksbj09PSExKSlicmVha319fXZhciBNdz1qQixGQj1mdW5jdGlvbih0LGUsbil7aWYoIU5yKHQpJiYhbmModCkpcmV0dXJuIHQ7dmFyIHI9bjtyZXR1cm4gTXcodCxmdW5jdGlvbihpLGEpe3I9ZShyLGksYSl9KSxyfSxCVD1GQixrdz1mdW5jdGlvbih0LGUpe3JldHVybiBCVCh0LGZ1bmN0aW9uKG4scixpKXtyZXR1cm4gZS5pbmNsdWRlcyhpKXx8KG5baV09ciksbn0se30pfTtmdW5jdGlvbiBzYyh0LGUpe2xldCBuLHI7aWYoZT09PXZvaWQgMClmb3IoY29uc3QgaSBvZiB0KWkhPW51bGwmJihuPT09dm9pZCAwP2k+PWkmJihuPXI9aSk6KG4+aSYmKG49aSkscjxpJiYocj1pKSkpO2Vsc2V7bGV0IGk9LTE7Zm9yKGxldCBhIG9mIHQpKGE9ZShhLCsraSx0KSkhPW51bGwmJihuPT09dm9pZCAwP2E+PWEmJihuPXI9YSk6KG4+YSYmKG49YSkscjxhJiYocj1hKSkpfXJldHVybltuLHJdfWZ1bmN0aW9uIHpUKHQpe2Zvcih2YXIgZT0xLzAsbj0xLzAscj0tMS8wLGk9LTEvMCxhPTA7YTx0Lmxlbmd0aDthKyspe3ZhciBvPXRbYV0scz1vLngsYz1vLnksbD1vLndpZHRoLHU9by5oZWlnaHQsZj1WKFtzK2wsYyt1XSwyKSxkPWZbMF0saD1mWzFdO3M8ZSYmKGU9cyksYzxuJiYobj1jKSxkPnImJihyPWQpLGg+aSYmKGk9aCl9cmV0dXJuIG5ldyBwcihlLG4sci1lLGktbil9dmFyIEJCPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj10LndpZHRoLGk9dC5oZWlnaHQsYT1uLmZsZXhEaXJlY3Rpb24sbz1hPT09dm9pZCAwPyJyb3ciOmEscz1uLmZsZXhXcmFwLGM9cz09PXZvaWQgMD8ibm93cmFwIjpzLGw9bi5qdXN0aWZ5Q29udGVudCx1PWw9PT12b2lkIDA/ImZsZXgtc3RhcnQiOmwsZj1uLmFsaWduQ29udGVudCxkPWY9PT12b2lkIDA/ImZsZXgtc3RhcnQiOmYsaD1uLmFsaWduSXRlbXMsdj1oPT09dm9pZCAwPyJmbGV4LXN0YXJ0IjpoLGc9bz09PSJyb3ciLHk9bz09PSJyb3cifHxvPT09ImNvbHVtbiIsYj1nP3k/WzEsMF06Wy0xLDBdOnk/WzAsMV06WzAsLTFdLHg9VihbMCwwXSwyKSxfPXhbMF0sdz14WzFdLE89ZS5tYXAoZnVuY3Rpb24oTCl7dmFyIFIsST1MLndpZHRoLEQ9TC5oZWlnaHQsRz1WKFtfLHddLDIpLEY9R1swXSxXPUdbMV07cmV0dXJuIFI9VihbXytJKmJbMF0sdytEKmJbMV1dLDIpLF89UlswXSx3PVJbMV0sbmV3IHByKEYsVyxJLEQpfSksRT16VChPKSxNPXsiZmxleC1zdGFydCI6MCwiZmxleC1lbmQiOmc/ci1FLndpZHRoOmktRS5oZWlnaHQsY2VudGVyOmc/KHItRS53aWR0aCkvMjooaS1FLmhlaWdodCkvMn0saz1PLm1hcChmdW5jdGlvbihMKXt2YXIgUj1MLngsST1MLnksRD1wci5mcm9tUmVjdChMKTtyZXR1cm4gRC54PWc/UitNW3VdOlIsRC55PWc/STpJK01bdV0sRH0pLEE9elQoayksUD1mdW5jdGlvbihMKXt2YXIgUj1WKGc/WyJoZWlnaHQiLGldOlsid2lkdGgiLHJdLDIpLEk9UlswXSxEPVJbMV07c3dpdGNoKHYpe2Nhc2UiZmxleC1zdGFydCI6cmV0dXJuIDA7Y2FzZSJmbGV4LWVuZCI6cmV0dXJuIEQtTFtJXTtjYXNlImNlbnRlciI6cmV0dXJuIEQvMi1MW0ldLzI7ZGVmYXVsdDpyZXR1cm4gMH19LEM9ay5tYXAoZnVuY3Rpb24oTCl7dmFyIFI9TC54LEk9TC55LEQ9cHIuZnJvbVJlY3QoTCk7cmV0dXJuIEQueD1nP1I6UitQKEQpLEQueT1nP0krUChEKTpJLER9KSxOPUMubWFwKGZ1bmN0aW9uKEwpe3ZhciBSLEksRD1wci5mcm9tUmVjdChMKTtyZXR1cm4gRC54Kz0oUj10LngpIT09bnVsbCYmUiE9PXZvaWQgMD9SOjAsRC55Kz0oST10LnkpIT09bnVsbCYmSSE9PXZvaWQgMD9JOjAsRH0pO3JldHVybiBOfSx6Qj1mdW5jdGlvbih0LGUsbil7cmV0dXJuW119LFdCPWZ1bmN0aW9uKHQsZSxuKXtpZihlLmxlbmd0aD09PTApcmV0dXJuW107dmFyIHI9e2ZsZXg6QkIsZ3JpZDp6Qn0saT1uLmRpc3BsYXkgaW4gcj9yW24uZGlzcGxheV06bnVsbDtyZXR1cm4oaT09bnVsbD92b2lkIDA6aS5jYWxsKG51bGwsdCxlLG4pKXx8W119LEdCPWZ1bmN0aW9uKHQpe2FyKGUsdCk7ZnVuY3Rpb24gZShuKXt2YXIgcj10LmNhbGwodGhpcyxuKXx8dGhpcztyLmxheW91dEV2ZW50cz1bJGUuQk9VTkRTX0NIQU5HRUQsJGUuSU5TRVJURUQsJGUuUkVNT1ZFRF0sci4kbWFyZ2luPU5pKDApLHIuJHBhZGRpbmc9TmkoMCk7dmFyIGk9bi5zdHlsZXx8e30sYT1pLm1hcmdpbixvPWE9PT12b2lkIDA/MDphLHM9aS5wYWRkaW5nLGM9cz09PXZvaWQgMD8wOnM7cmV0dXJuIHIubWFyZ2luPW8sci5wYWRkaW5nPWMsci5pc011dGF0aW9uT2JzZXJ2ZWQ9ITAsci5iaW5kRXZlbnRzKCkscn1yZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJtYXJnaW4iLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kbWFyZ2lufSxzZXQ6ZnVuY3Rpb24obil7dGhpcy4kbWFyZ2luPU5pKG4pfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwicGFkZGluZyIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLiRwYWRkaW5nfSxzZXQ6ZnVuY3Rpb24obil7dGhpcy4kcGFkZGluZz1OaShuKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS5nZXRCQm94PWZ1bmN0aW9uKCl7dmFyIG49dGhpcy5hdHRyaWJ1dGVzLHI9bi54LGk9cj09PXZvaWQgMD8wOnIsYT1uLnksbz1hPT09dm9pZCAwPzA6YSxzPW4ud2lkdGgsYz1uLmhlaWdodCxsPVYodGhpcy4kbWFyZ2luLDQpLHU9bFswXSxmPWxbMV0sZD1sWzJdLGg9bFszXTtyZXR1cm4gbmV3IHByKGktaCxvLXUscytoK2YsYyt1K2QpfSxlLnByb3RvdHlwZS5hcHBlbmRDaGlsZD1mdW5jdGlvbihuLHIpe3JldHVybiBuLmlzTXV0YXRpb25PYnNlcnZlZD0hMCx0LnByb3RvdHlwZS5hcHBlbmRDaGlsZC5jYWxsKHRoaXMsbixyKSxufSxlLnByb3RvdHlwZS5nZXRBdmFpbGFibGVTcGFjZT1mdW5jdGlvbigpe3ZhciBuPXRoaXMuYXR0cmlidXRlcyxyPW4ud2lkdGgsaT1uLmhlaWdodCxhPVYodGhpcy4kcGFkZGluZyw0KSxvPWFbMF0scz1hWzFdLGM9YVsyXSxsPWFbM10sdT1WKHRoaXMuJG1hcmdpbiw0KSxmPXVbMF0sZD11WzNdO3JldHVybiBuZXcgcHIobCtkLG8rZixyLWwtcyxpLW8tYyl9LGUucHJvdG90eXBlLmxheW91dD1mdW5jdGlvbigpe2lmKCEoIXRoaXMuYXR0cmlidXRlcy5kaXNwbGF5fHwhdGhpcy5pc0Nvbm5lY3RlZCkmJiF0aGlzLmNoaWxkcmVuLnNvbWUoZnVuY3Rpb24obyl7cmV0dXJuIW8uaXNDb25uZWN0ZWR9KSl0cnl7dmFyIG49dGhpcy5hdHRyaWJ1dGVzLHI9bi54LGk9bi55O3RoaXMuc3R5bGUudHJhbnNmb3JtPSJ0cmFuc2xhdGUoIi5jb25jYXQociwiLCAiKS5jb25jYXQoaSwiKSIpO3ZhciBhPVdCKHRoaXMuZ2V0QXZhaWxhYmxlU3BhY2UoKSx0aGlzLmNoaWxkcmVuLm1hcChmdW5jdGlvbihvKXtyZXR1cm4gby5nZXRCQm94KCl9KSx0aGlzLmF0dHJpYnV0ZXMpO3RoaXMuY2hpbGRyZW4uZm9yRWFjaChmdW5jdGlvbihvLHMpe3ZhciBjPWFbc10sbD1jLngsdT1jLnk7by5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZSgiLmNvbmNhdChsLCIsICIpLmNvbmNhdCh1LCIpIil9KX1jYXRjaChvKXt9fSxlLnByb3RvdHlwZS5iaW5kRXZlbnRzPWZ1bmN0aW9uKCl7dmFyIG49dGhpczt0aGlzLmxheW91dEV2ZW50cy5mb3JFYWNoKGZ1bmN0aW9uKHIpe24uYWRkRXZlbnRMaXN0ZW5lcihyLGZ1bmN0aW9uKGkpe2kudGFyZ2V0JiYoaS50YXJnZXQuaXNNdXRhdGlvbk9ic2VydmVkPSEwLG4ubGF5b3V0KCkpfSl9KX0sZS5wcm90b3R5cGUuYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrPWZ1bmN0aW9uKG4scixpKXtuPT09Im1hcmdpbiI/dGhpcy5tYXJnaW49aTpuPT09InBhZGRpbmciJiYodGhpcy5wYWRkaW5nPWkpLHRoaXMubGF5b3V0KCl9LGV9KHVpKSwkQj1mdW5jdGlvbih0LGUpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiZlLmluZGV4T2Yocik8MCYmKG5bcl09dFtyXSk7aWYodCE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBpPTAscj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2k8ci5sZW5ndGg7aSsrKWUuaW5kZXhPZihyW2ldKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodCxyW2ldKSYmKG5bcltpXV09dFtyW2ldXSk7cmV0dXJuIG59O2Z1bmN0aW9uIFpCKHQpe3JldHVybiBjbGFzcyBleHRlbmRzIG1we2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpLHRoaXMuZGVzY3JpcHRvcj10fWNvbm5lY3RlZENhbGxiYWNrKCl7dmFyIGUsbjsobj0oZT10aGlzLmRlc2NyaXB0b3IpLnJlbmRlcik9PT1udWxsfHxuPT09dm9pZCAwfHxuLmNhbGwoZSx0aGlzLmF0dHJpYnV0ZXMsdGhpcyl9dXBkYXRlKGU9e30pe3ZhciBuLHI7dGhpcy5hdHRyKG10KHt9LHRoaXMuYXR0cmlidXRlcyxlKSksKHI9KG49dGhpcy5kZXNjcmlwdG9yKS5yZW5kZXIpPT09bnVsbHx8cj09PXZvaWQgMHx8ci5jYWxsKG4sdGhpcy5hdHRyaWJ1dGVzLHRoaXMpfX19ZnVuY3Rpb24gV1QodCxlLG4pe3JldHVybiB0LnF1ZXJ5U2VsZWN0b3IoZSk/T2UodCkuc2VsZWN0KGUpOk9lKHQpLmFwcGVuZChuKX1mdW5jdGlvbiBtbSh0KXtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KT90LmpvaW4oIiwgIik6YCR7dHx8IiJ9YH1mdW5jdGlvbiBHVCh0LGUpe2NvbnN0IG49e2Rpc3BsYXk6ImZsZXgiLGZsZXhEaXJlY3Rpb246InJvdyIsanVzdGlmeUNvbnRlbnQ6ImZsZXgtc3RhcnQiLGFsaWduSXRlbXM6ImNlbnRlciJ9O2xldHtmbGV4RGlyZWN0aW9uOnIsanVzdGlmeUNvbnRlbnQ6aSxhbGlnbkl0ZW1zOmF9PW47Y29uc3Qgbz17dG9wOlsicm93IiwiZmxleC1zdGFydCIsImNlbnRlciJdLGJvdHRvbTpbInJvdyIsImZsZXgtc3RhcnQiLCJjZW50ZXIiXSxsZWZ0OlsiY29sdW1uIiwiZmxleC1zdGFydCIsImNlbnRlciJdLHJpZ2h0OlsiY29sdW1uIiwiZmxleC1zdGFydCIsImNlbnRlciJdLGNlbnRlcjpbImNvbHVtbiIsImNlbnRlciIsImNlbnRlciJdfTtyZXR1cm4gdCBpbiBvJiYoW3IsaSxhXT1vW3RdKSxPYmplY3QuYXNzaWduKHtkaXNwbGF5OiJmbGV4IixmbGV4RGlyZWN0aW9uOnIsanVzdGlmeUNvbnRlbnQ6aSxhbGlnbkl0ZW1zOmF9LGUpfWNsYXNzICRUIGV4dGVuZHMgR0J7Z2V0IGNoaWxkKCl7dmFyIGU7cmV0dXJuKGU9dGhpcy5jaGlsZHJlbik9PT1udWxsfHxlPT09dm9pZCAwP3ZvaWQgMDplWzBdfXVwZGF0ZShlKXt2YXIgbjt0aGlzLmF0dHIoZSk7Y29uc3R7c3ViT3B0aW9uczpyfT1lOyhuPXRoaXMuY2hpbGQpPT09bnVsbHx8bj09PXZvaWQgMHx8bi51cGRhdGUocil9fWNsYXNzIFlCIGV4dGVuZHMgJFR7dXBkYXRlKGUpe3ZhciBuO2NvbnN0e3N1Yk9wdGlvbnM6cn09ZTt0aGlzLmF0dHIoZSksKG49dGhpcy5jaGlsZCk9PT1udWxsfHxuPT09dm9pZCAwfHxuLnVwZGF0ZShyKX19ZnVuY3Rpb24gaHModCxlKXt2YXIgbjtyZXR1cm4obj10LmZpbHRlcihyPT5yLmdldE9wdGlvbnMoKS5uYW1lPT09ZSkpPT09bnVsbHx8bj09PXZvaWQgMD92b2lkIDA6blswXX1mdW5jdGlvbiBIQih0KXtyZXR1cm4gdD09PSJob3Jpem9udGFsInx8dD09PTB9ZnVuY3Rpb24gVkIodCl7cmV0dXJuIHQ9PT0idmVydGljYWwifHx0PT09LU1hdGguUEkvMn1mdW5jdGlvbiBaVCh0LGUsbil7Y29uc3R7YmJveDpyfT10LHtwb3NpdGlvbjppPSJ0b3AiLHNpemU6YSxsZW5ndGg6b309ZSxzPVsidG9wIiwiYm90dG9tIiwiY2VudGVyIl0uaW5jbHVkZXMoaSksW2MsbF09cz9bci5oZWlnaHQsci53aWR0aF06W3Iud2lkdGgsci5oZWlnaHRdLHtkZWZhdWx0U2l6ZTp1LGRlZmF1bHRMZW5ndGg6Zn09bi5wcm9wcyxkPWF8fHV8fGMsaD1vfHxmfHxsLHY9cz8iaG9yaXpvbnRhbCI6InZlcnRpY2FsIixbZyx5XT1zP1toLGRdOltkLGhdO3JldHVybntvcmllbnRhdGlvbjp2LHdpZHRoOmcsaGVpZ2h0Onksc2l6ZTpkLGxlbmd0aDpofX1mdW5jdGlvbiBYQih0KXtyZXR1cm4gdC5maW5kKGU9PmUuZ2V0T3B0aW9ucygpLmRvbWFpbi5sZW5ndGg+MCkuZ2V0T3B0aW9ucygpLmRvbWFpbn1mdW5jdGlvbiBibSh0KXtjb25zdCBlPVsiYXJyb3ciLCJjcm9zc2hhaXJzIiwiZ3JpZCIsImhhbmRsZSIsImhhbmRsZUxhYmVsIiwiaW5kaWNhdG9yIiwibGFiZWwiLCJsaW5lIiwidGljayIsInRpcCIsInRpdGxlIiwidHJ1bmMiXSx7c3R5bGU6bn09dCxyPSRCKHQsWyJzdHlsZSJdKSxpPXt9O3JldHVybiBPYmplY3QuZW50cmllcyhyKS5mb3JFYWNoKChbYSxvXSk9PntlLmluY2x1ZGVzKGEpP2lbYHNob3cke3RsKGEpfWBdPW86aVthXT1vfSksT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGkpLG4pfXZhciBZVD1mdW5jdGlvbih0LGUpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiZlLmluZGV4T2Yocik8MCYmKG5bcl09dFtyXSk7aWYodCE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBpPTAscj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2k8ci5sZW5ndGg7aSsrKWUuaW5kZXhPZihyW2ldKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodCxyW2ldKSYmKG5bcltpXV09dFtyW2ldXSk7cmV0dXJuIG59O2Z1bmN0aW9uIEhUKHQsZSl7Y29uc3R7ZXVsZXJBbmdsZXM6bixvcmlnaW46cn09ZTtyJiZ0LnNldE9yaWdpbihyKSxuJiZ0LnJvdGF0ZShuWzBdLG5bMV0sblsyXSl9ZnVuY3Rpb24gVlQodCl7Y29uc3R7aW5uZXJXaWR0aDplLGlubmVySGVpZ2h0Om4sZGVwdGg6cn09dC5nZXRPcHRpb25zKCk7cmV0dXJuW2UsbixyXX1mdW5jdGlvbiBVQih0LGUpe2NvbnN0e3dpZHRoOm4saGVpZ2h0OnJ9PWUuZ2V0T3B0aW9ucygpO3JldHVybiBpPT57aWYoIVZBKGUpKXJldHVybiBpO2NvbnN0IGE9dD09PSJib3R0b20iP1tpLDFdOlswLGldLG89ZS5tYXAoYSk7aWYodD09PSJib3R0b20iKXtjb25zdCBzPW9bMF07cmV0dXJuIG5ldyBKaSh7ZG9tYWluOlswLG5dLHJhbmdlOlswLDFdfSkubWFwKHMpfWVsc2UgaWYodD09PSJsZWZ0Iil7Y29uc3Qgcz1vWzFdO3JldHVybiBuZXcgSmkoe2RvbWFpbjpbMCxyXSxyYW5nZTpbMCwxXX0pLm1hcChzKX1yZXR1cm4gaX19ZnVuY3Rpb24gcUIodCxlLG4pe2lmKHQuZ2V0VGlja3MpcmV0dXJuIHQuZ2V0VGlja3MoKTtpZighbilyZXR1cm4gZTtjb25zdFtyLGldPXNjKGUsbz0+K28pLHt0aWNrQ291bnQ6YX09dC5nZXRPcHRpb25zKCk7cmV0dXJuIG4ocixpLGEpfWZ1bmN0aW9uIEtCKHQsZSl7aWYoQm4oZSkpcmV0dXJuIGg9Pmg7Y29uc3Qgbj1lLmdldE9wdGlvbnMoKSx7aW5uZXJXaWR0aDpyLGlubmVySGVpZ2h0OmksaW5zZXRUb3A6YSxpbnNldEJvdHRvbTpvLGluc2V0TGVmdDpzLGluc2V0UmlnaHQ6Y309bixbbCx1LGZdPXQ9PT0ibGVmdCJ8fHQ9PT0icmlnaHQiP1thLG8saV06W3MsYyxyXSxkPW5ldyBKaSh7ZG9tYWluOlswLDFdLHJhbmdlOltsL2YsMS11L2ZdfSk7cmV0dXJuIGg9PmQubWFwKGgpfWZ1bmN0aW9uIFhUKHQsZSxuLHIsaSxhLG8scyl7dmFyIGM7KG4hPT12b2lkIDB8fGEhPT12b2lkIDApJiZ0LnVwZGF0ZShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbiYme3RpY2tDb3VudDpufSksYSYme3RpY2tNZXRob2Q6YX0pKTtjb25zdCBsPXFCKHQsZSxhKSx1PWk/bC5maWx0ZXIoaSk6bCxmPWI9PmIgaW5zdGFuY2VvZiBEYXRlP1N0cmluZyhiKTp0eXBlb2YgYj09Im9iamVjdCImJmI/YjpTdHJpbmcoYiksZD1yfHwoKGM9dC5nZXRGb3JtYXR0ZXIpPT09bnVsbHx8Yz09PXZvaWQgMD92b2lkIDA6Yy5jYWxsKHQpKXx8ZixoPUtCKG8scyksdj1VQihvLHMpLGc9Yj0+WyJ0b3AiLCJib3R0b20iLCJjZW50ZXIiLCJvdXRlciJdLmluY2x1ZGVzKGIpLHk9Yj0+WyJsZWZ0IiwicmlnaHQiXS5pbmNsdWRlcyhiKTtyZXR1cm4gQm4ocyl8fGhyKHMpP3UubWFwKChiLHgsXyk9Pnt2YXIgdyxPO2NvbnN0IEU9KCh3PXQuZ2V0QmFuZFdpZHRoKT09PW51bGx8fHc9PT12b2lkIDA/dm9pZCAwOncuY2FsbCh0LGIpKS8yfHwwLE09aCh0Lm1hcChiKStFKTtyZXR1cm57dmFsdWU6U3AocykmJm89PT0iY2VudGVyInx8aHIocykmJigoTz10LmdldFRpY2tzKT09PW51bGx8fE89PT12b2lkIDA/dm9pZCAwOk8uY2FsbCh0KSkmJmcobyl8fGhyKHMpJiZ5KG8pPzEtTTpNLGxhYmVsOmYoZChybShiKSx4LF8pKSxpZDpTdHJpbmcoeCl9fSk6dS5tYXAoKGIseCxfKT0+e3ZhciB3O2NvbnN0IE89KCh3PXQuZ2V0QmFuZFdpZHRoKT09PW51bGx8fHc9PT12b2lkIDA/dm9pZCAwOncuY2FsbCh0LGIpKS8yfHwwLEU9dihoKHQubWFwKGIpK08pKTtyZXR1cm57dmFsdWU6eShvKT8xLUU6RSxsYWJlbDpmKGQocm0oYikseCxfKSksaWQ6U3RyaW5nKHgpfX0pfWZ1bmN0aW9uIFFCKHQsZSxuPSJ4eSIpe2NvbnN0W3IsaSxhXT1WVChlKTtyZXR1cm4gbj09PSJ4eSI/dC5pbmNsdWRlcygiYm90dG9tIil8fHQuaW5jbHVkZXMoInRvcCIpP2k6cjpuPT09Inh6Ij90LmluY2x1ZGVzKCJib3R0b20iKXx8dC5pbmNsdWRlcygidG9wIik/YTpyOnQuaW5jbHVkZXMoImJvdHRvbSIpfHx0LmluY2x1ZGVzKCJ0b3AiKT9pOmF9ZnVuY3Rpb24gSkIodD1bXSxlKXtpZih0Lmxlbmd0aD4wKXJldHVybiB0O2NvbnN0e2xhYmVsQXV0b1JvdGF0ZTpuLGxhYmVsQXV0b0hpZGU6cixsYWJlbEF1dG9FbGxpcHNpczppLGxhYmVsQXV0b1dyYXA6YX09ZSxvPVtdLHM9KGMsbCk9PntsJiZvLnB1c2goT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGMpLGwpKX07cmV0dXJuIHMoe3R5cGU6InJvdGF0ZSIsb3B0aW9uYWxBbmdsZXM6WzAsMTUsMzAsNDUsNjAsOTBdfSxuKSxzKHt0eXBlOiJlbGxpcHNpcyIsbWluTGVuZ3RoOjIwfSxpKSxzKHt0eXBlOiJoaWRlIn0scikscyh7dHlwZToid3JhcCIsd29yZFdyYXBXaWR0aDoxMDAsbWF4TGluZXM6MyxyZWNvdmVyeVdoZW5GYWlsOiEwfSxhKSxvfWZ1bmN0aW9uIHQ3KHQsZSxuLHIsaSl7Y29uc3R7eDphLHk6byx3aWR0aDpzLGhlaWdodDpjfT1lLGw9W2Ercy8yLG8rYy8yXSx1PU1hdGgubWluKHMsYykvMixbZixkXT1pdyhpKSxbaCx2XT1WVChpKSxnPU1hdGgubWluKGgsdikvMix5PXtjZW50ZXI6bCxyYWRpdXM6dSxzdGFydEFuZ2xlOmYsZW5kQW5nbGU6ZCxncmlkTGVuZ3RoOihyLW4pKmd9O2lmKHQ9PT0iaW5uZXIiKXtjb25zdHtpbnNldExlZnQ6YixpbnNldFRvcDp4fT1pLmdldE9wdGlvbnMoKTtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHkpLHtjZW50ZXI6W2xbMF0tYixsWzFdLXhdLGxhYmVsQWxpZ246InBlcnBlbmRpY3VsYXIiLGxhYmVsRGlyZWN0aW9uOiJwb3NpdGl2ZSIsdGlja0RpcmVjdGlvbjoicG9zaXRpdmUiLGdyaWREaXJlY3Rpb246Im5lZ2F0aXZlIn0pfXJldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30seSkse2xhYmVsQWxpZ246InBhcmFsbGVsIixsYWJlbERpcmVjdGlvbjoibmVnYXRpdmUiLHRpY2tEaXJlY3Rpb246Im5lZ2F0aXZlIixncmlkRGlyZWN0aW9uOiJwb3NpdGl2ZSJ9KX1mdW5jdGlvbiBlNyh0LGUsbil7cmV0dXJuIFhBKGUpfHxFcChlKT8hMTp0PT09dm9pZCAwPyEhbi5nZXRUaWNrczp0fWZ1bmN0aW9uIG43KHQpe2NvbnN0e2RlcHRoOmV9PXQuZ2V0T3B0aW9ucygpO3JldHVybiBlP3t0aWNrSXNCaWxsYm9hcmQ6ITAsbGluZUlzQmlsbGJvYXJkOiEwLGxhYmVsSXNCaWxsYm9hcmQ6ITAsdGl0bGVJc0JpbGxib2FyZDohMCxncmlkSXNCaWxsYm9hcmQ6ITB9Ont9fWZ1bmN0aW9uIHI3KHQsZSxuLHIsaSl7Y29uc3R7eDphLHk6byx3aWR0aDpzLGhlaWdodDpjfT1uO2lmKHQ9PT0iYm90dG9tIilyZXR1cm57c3RhcnRQb3M6W2Esb10sZW5kUG9zOlthK3Msb119O2lmKHQ9PT0ibGVmdCIpcmV0dXJue3N0YXJ0UG9zOlthK3MsbytjXSxlbmRQb3M6W2ErcyxvXX07aWYodD09PSJyaWdodCIpcmV0dXJue3N0YXJ0UG9zOlthLG8rY10sZW5kUG9zOlthLG9dfTtpZih0PT09InRvcCIpcmV0dXJue3N0YXJ0UG9zOlthLG8rY10sZW5kUG9zOlthK3MsbytjXX07aWYodD09PSJjZW50ZXIiKXtpZihlPT09InZlcnRpY2FsIilyZXR1cm57c3RhcnRQb3M6W2Esb10sZW5kUG9zOlthLG8rY119O2lmKGU9PT0iaG9yaXpvbnRhbCIpcmV0dXJue3N0YXJ0UG9zOlthLG9dLGVuZFBvczpbYStzLG9dfTtpZih0eXBlb2YgZT09Im51bWJlciIpe2NvbnN0W2wsdV09ci5nZXRDZW50ZXIoKSxbZixkXT1pbShyKSxbaCx2XT1pdyhyKSxnPU1hdGgubWluKHMsYykvMix7aW5zZXRMZWZ0OnksaW5zZXRUb3A6Yn09ci5nZXRPcHRpb25zKCkseD1mKmcsXz1kKmcsW3csT109W2wrYS15LHUrby1iXSxbRSxNXT1bTWF0aC5jb3MoZSksTWF0aC5zaW4oZSldLGs9W3crXypFLE8rXypNXSxBPVt3K3gqRSxPK3gqTV0sUD0oKT0+e2NvbnN0e2RvbWFpbjpOfT1pLmdldE9wdGlvbnMoKTtyZXR1cm4gTi5sZW5ndGh9LEM9Qm4ocikmJmk/UCgpOjM7cmV0dXJue3N0YXJ0UG9zOmssZW5kUG9zOkEsZ3JpZENsb3NlZDpNYXRoLmFicyh2LWgtMzYwKTwxZS02LGdyaWRDZW50ZXI6W3csT10sZ3JpZENvbnRyb2xBbmdsZXM6bmV3IEFycmF5KEMpLmZpbGwoMCkubWFwKChOLEwsUik9Pih2LWgpL0MqTCl9fX1yZXR1cm57fX1jb25zdCBpNz10PT57Y29uc3R7b3JkZXI6ZSxzaXplOm4scG9zaXRpb246cixvcmllbnRhdGlvbjppLGxhYmVsRm9ybWF0dGVyOmEsdGlja0ZpbHRlcjpvLHRpY2tDb3VudDpzLHRpY2tNZXRob2Q6YyxpbXBvcnRhbnQ6bD17fSxzdHlsZTp1PXt9LGluZGV4QkJveDpmLHRpdGxlOmQsZ3JpZDpoPSExfT10LHY9WVQodCxbIm9yZGVyIiwic2l6ZSIsInBvc2l0aW9uIiwib3JpZW50YXRpb24iLCJsYWJlbEZvcm1hdHRlciIsInRpY2tGaWx0ZXIiLCJ0aWNrQ291bnQiLCJ0aWNrTWV0aG9kIiwiaW1wb3J0YW50Iiwic3R5bGUiLCJpbmRleEJCb3giLCJ0aXRsZSIsImdyaWQiXSk7cmV0dXJuKHtzY2FsZXM6W2ddLHZhbHVlOnksY29vcmRpbmF0ZTpiLHRoZW1lOnh9KT0+e2NvbnN0e2Jib3g6X309eSx7ZG9tYWluOnd9PWcuZ2V0T3B0aW9ucygpLE89WFQoZyx3LHMsYSxvLGMscixiKSxFPWY/Ty5tYXAoKEwsUik9Pntjb25zdCBJPWYuZ2V0KFIpO3JldHVybiFJfHxJWzBdIT09TC5sYWJlbD9MOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxMKSx7YmJveDpJWzFdfSl9KTpPLFtNLGtdPWltKGIpLEE9dDcocixfLE0sayxiKSx7YXhpczpQLGF4aXNBcmM6Qz17fX09eCxOPWJtKG10KHt9LFAsQyxBLE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7dHlwZToiYXJjIixkYXRhOkUsdGl0bGVUZXh0Om1tKGQpLGdyaWQ6aH0sdiksbCkpKTtyZXR1cm4gbmV3IHh3KHtzdHlsZTprdyhOLFsidHJhbnNmb3JtIl0pfSl9fTtmdW5jdGlvbiBhNyh0LGUsbixyLGksYSl7Y29uc3Qgbz1uLmF4aXMscz1bInRvcCIsInJpZ2h0IiwiYm90dG9tIiwibGVmdCJdLmluY2x1ZGVzKGkpP25bYGF4aXMke0tfKGkpfWBdOm4uYXhpc0xpbmVhcixjPXQuZ2V0T3B0aW9ucygpLm5hbWUsbD1uW2BheGlzJHt0bChjKX1gXXx8e307cmV0dXJuIE9iamVjdC5hc3NpZ24oe30sbyxzLGwpfWZ1bmN0aW9uIG83KHQsZSxuLHIsaSxhKXtjb25zdCBvPWE3KHQsZSxuLHIsaSxhKTtyZXR1cm4gaT09PSJjZW50ZXIiP09iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbykse2xhYmVsRGlyZWN0aW9uOnI9PT0icmlnaHQiPyJuZWdhdGl2ZSI6InBvc2l0aXZlIn0pLHI9PT0iY2VudGVyIj97bGFiZWxUcmFuc2Zvcm06InRyYW5zbGF0ZSg1MCUsMCkifTpudWxsKSx7dGlja0RpcmVjdGlvbjpyPT09InJpZ2h0Ij8ibmVnYXRpdmUiOiJwb3NpdGl2ZSIsbGFiZWxTcGFjaW5nOnI9PT0iY2VudGVyIj8wOjQsdGl0bGVTcGFjaW5nOlZCKGEpPzEwOjAsdGljazpyPT09ImNlbnRlciI/ITE6dm9pZCAwfSk6b31jb25zdCBzNz10PT57Y29uc3R7ZGlyZWN0aW9uOmU9ImxlZnQiLGltcG9ydGFudDpuPXt9LGxhYmVsRm9ybWF0dGVyOnIsb3JkZXI6aSxvcmllbnRhdGlvbjphLGFjdHVhbFBvc2l0aW9uOm8scG9zaXRpb246cyxzaXplOmMsc3R5bGU6bD17fSx0aXRsZTp1LHRpY2tDb3VudDpmLHRpY2tGaWx0ZXI6ZCx0aWNrTWV0aG9kOmgsdHJhbnNmb3JtOnYsaW5kZXhCQm94Omd9PXQseT1ZVCh0LFsiZGlyZWN0aW9uIiwiaW1wb3J0YW50IiwibGFiZWxGb3JtYXR0ZXIiLCJvcmRlciIsIm9yaWVudGF0aW9uIiwiYWN0dWFsUG9zaXRpb24iLCJwb3NpdGlvbiIsInNpemUiLCJzdHlsZSIsInRpdGxlIiwidGlja0NvdW50IiwidGlja0ZpbHRlciIsInRpY2tNZXRob2QiLCJ0cmFuc2Zvcm0iLCJpbmRleEJCb3giXSk7cmV0dXJuKHtzY2FsZXM6Yix2YWx1ZTp4LGNvb3JkaW5hdGU6Xyx0aGVtZTp3fSk9Pntjb25zdHtiYm94Ok99PXgsW0VdPWIse2RvbWFpbjpNLHhTY2FsZTprfT1FLmdldE9wdGlvbnMoKSxBPW83KEUsXyx3LGUscyxhKSxQPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LEEpLGwpLHkpLEM9UUIob3x8cyxfLHQucGxhbmUpLE49cjcocyxhLE8sXyxrKSxMPW43KF8pLFI9WFQoRSxNLGYscixkLGgscyxfKSxJPWc/Ui5tYXAoKEYsVyk9Pntjb25zdCBYPWcuZ2V0KFcpO3JldHVybiFYfHxYWzBdIT09Ri5sYWJlbD9GOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxGKSx7YmJveDpYWzFdfSl9KTpSLEQ9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sUCkse3R5cGU6ImxpbmVhciIsZGF0YTpJLGNyb3NzU2l6ZTpjLHRpdGxlVGV4dDptbSh1KSxsYWJlbE92ZXJsYXA6SkIodixQKSxncmlkOmU3KFAuZ3JpZCxfLEUpLGdyaWRMZW5ndGg6QyxsaW5lOiEwLGluZGV4QkJveDpnfSksUC5saW5lP251bGw6e2xpbmVPcGFjaXR5OjB9KSxOKSxMKSxuKTtyZXR1cm4gRC5sYWJlbE92ZXJsYXAuZmluZChGPT5GLnR5cGU9PT0iaGlkZSIpJiYoRC5jcm9zc1NpemU9ITEpLG5ldyB4dyh7Y2xhc3NOYW1lOiJheGlzIixzdHlsZTpibShEKX0pfX0sVVQ9dD0+ZT0+e2NvbnN0e2xhYmVsRm9ybWF0dGVyOm4sbGFiZWxGaWx0ZXI6cj0oKT0+ITB9PWU7cmV0dXJuIGk9Pnt2YXIgYTtjb25zdHtzY2FsZXM6W29dfT1pLHM9KChhPW8uZ2V0VGlja3MpPT09bnVsbHx8YT09PXZvaWQgMD92b2lkIDA6YS5jYWxsKG8pKXx8by5nZXRPcHRpb25zKCkuZG9tYWluLGM9dHlwZW9mIG49PSJzdHJpbmciP2VsKG4pOm4sbD0oZixkLGgpPT5yKHNbZF0sZCxzKSx1PU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxlKSx7bGFiZWxGb3JtYXR0ZXI6YyxsYWJlbEZpbHRlcjpsLHNjYWxlOm99KTtyZXR1cm4gdCh1KShpKX19LHJsPVVUKHM3KSxxVD1VVChpNyk7cmwucHJvcHM9e2RlZmF1bHRQb3NpdGlvbjoiY2VudGVyIixkZWZhdWx0U2l6ZTo0NSxkZWZhdWx0T3JkZXI6MCxkZWZhdWx0Q3Jvc3NQYWRkaW5nOlsxMiwxMl0sZGVmYXVsdFBhZGRpbmc6WzEyLDEyXX0scVQucHJvcHM9e2RlZmF1bHRQb3NpdGlvbjoib3V0ZXIiLGRlZmF1bHRPcmllbnRhdGlvbjoidmVydGljYWwiLGRlZmF1bHRTaXplOjQ1LGRlZmF1bHRPcmRlcjowLGRlZmF1bHRDcm9zc1BhZGRpbmc6WzEyLDEyXSxkZWZhdWx0UGFkZGluZzpbMTIsMTJdfTt2YXIgYzc9ZnVuY3Rpb24odCxlKXt2YXIgbj17fTtmb3IodmFyIHIgaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKSYmZS5pbmRleE9mKHIpPDAmJihuW3JdPXRbcl0pO2lmKHQhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgaT0wLHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTtpPHIubGVuZ3RoO2krKyllLmluZGV4T2YocltpXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHQscltpXSkmJihuW3JbaV1dPXRbcltpXV0pO3JldHVybiBufTtmdW5jdGlvbiBsNyh0KXtjb25zdCBlPXQlKE1hdGguUEkqMik7cmV0dXJuIGU9PT1NYXRoLlBJLzI/e3RpdGxlVHJhbnNmb3JtOiJ0cmFuc2xhdGUoMCwgNTAlKSJ9OmU+LU1hdGguUEkvMiYmZTxNYXRoLlBJLzI/e3RpdGxlVHJhbnNmb3JtOiJ0cmFuc2xhdGUoNTAlLCAwKSJ9OmU+TWF0aC5QSS8yJiZlPE1hdGguUEkqMy8yP3t0aXRsZVRyYW5zZm9ybToidHJhbnNsYXRlKC01MCUsIDApIn06e319ZnVuY3Rpb24gdTcodCxlLG4scil7Y29uc3R7cmFkYXI6aX09dCxbYV09cixvPWEuZ2V0T3B0aW9ucygpLm5hbWUsW3MsY109aXcobikse2F4aXNSYWRhcjpsPXt9fT1lO3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbCkse2dyaWQ6bz09PSJwb3NpdGlvbiIsZ3JpZENvbm5lY3Q6ImxpbmUiLGdyaWRDb250cm9sQW5nbGVzOm5ldyBBcnJheShpLmNvdW50KS5maWxsKDApLm1hcCgodSxmKT0+KGMtcykvaS5jb3VudCpmKX0pfWNvbnN0IEtUPXQ9Pntjb25zdHtpbXBvcnRhbnQ6ZT17fX09dCxuPWM3KHQsWyJpbXBvcnRhbnQiXSk7cmV0dXJuIHI9Pntjb25zdHt0aGVtZTppLGNvb3JkaW5hdGU6YSxzY2FsZXM6b309cjtyZXR1cm4gcmwoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbiksbDcodC5vcmllbnRhdGlvbikpLHtpbXBvcnRhbnQ6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHU3KHQsaSxhLG8pKSxlKX0pKShyKX19O0tULnByb3BzPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxybC5wcm9wcykse2RlZmF1bHRQb3NpdGlvbjoiY2VudGVyIn0pO2Z1bmN0aW9uIHhtKHQsZSl7cmV0dXJuK3QudG9QcmVjaXNpb24oZSl9ZnVuY3Rpb24gb290KHQpe3JldHVybiB0LnRvTG9jYWxlU3RyaW5nKCl9ZnVuY3Rpb24gc290KHQpe3JldHVybiB0LnRvRXhwb25lbnRpYWwoKX1mdW5jdGlvbiBjb3QodCxlKXtyZXR1cm4gZT09PXZvaWQgMCYmKGU9MCksTWF0aC5hYnModCk8MWUzP1N0cmluZyh0KToiIi5jb25jYXQoeG0odC8xZTMsZSkudG9Mb2NhbGVTdHJpbmcoKSwiSyIpfXZhciBsb3Q9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0PDAmJk51bWJlci5pc0Zpbml0ZSh0KT9lOm59LHVvdD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHQ+MCYmTnVtYmVyLmlzRmluaXRlKHQpP2U6bn0sZm90PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQqZX0sZG90PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQvMisoZXx8MCkvMn07ZnVuY3Rpb24gX20odCl7dmFyIGU9dC5jYW52YXMsbj10LnRvdWNoZXMscj10Lm9mZnNldFgsaT10Lm9mZnNldFk7aWYoZSl7dmFyIGE9ZS54LG89ZS55O3JldHVyblthLG9dfWlmKG4pe3ZhciBzPW5bMF0sYz1zLmNsaWVudFgsbD1zLmNsaWVudFk7cmV0dXJuW2MsbF19cmV0dXJuIHImJmk/W3IsaV06WzAsMF19dmFyIGY3PXtiYWNrZ3JvdW5kRmlsbDoiIzI2MjYyNiIsYmFja2dyb3VuZExpbmVDYXA6InJvdW5kIixiYWNrZ3JvdW5kTGluZVdpZHRoOjEsYmFja2dyb3VuZFN0cm9rZToiIzMzMyIsYmFja2dyb3VuZFpJbmRleDotMSxmb3JtYXR0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQudG9TdHJpbmcoKX0sbGFiZWxGaWxsOiIjZmZmIixsYWJlbEZvbnRTaXplOjEyLGxhYmVsVGV4dEJhc2VsaW5lOiJtaWRkbGUiLHBhZGRpbmc6WzIsNF0scG9zaXRpb246InJpZ2h0IixyYWRpdXM6MCx6SW5kZXg6OTk5fSxBdz14byh7YmFja2dyb3VuZDoiYmFja2dyb3VuZCIsbGFiZWxHcm91cDoibGFiZWwtZ3JvdXAiLGxhYmVsOiJsYWJlbCJ9LCJpbmRpY2F0b3IiKSxkNz1mdW5jdGlvbih0KXthcihlLHQpO2Z1bmN0aW9uIGUobil7dmFyIHI9dC5jYWxsKHRoaXMsbixmNyl8fHRoaXM7cmV0dXJuIHIucG9pbnQ9WzAsMF0sci5ncm91cD1yLmFwcGVuZENoaWxkKG5ldyB1aSh7fSkpLHIuaXNNdXRhdGlvbk9ic2VydmVkPSEwLHJ9cmV0dXJuIGUucHJvdG90eXBlLnJlbmRlckJhY2tncm91bmQ9ZnVuY3Rpb24oKXtpZih0aGlzLmxhYmVsKXt2YXIgbj10aGlzLmF0dHJpYnV0ZXMscj1uLnBvc2l0aW9uLGk9bi5wYWRkaW5nLGE9VihOaShpKSw0KSxvPWFbMF0scz1hWzFdLGM9YVsyXSxsPWFbM10sdT10aGlzLmxhYmVsLm5vZGUoKS5nZXRMb2NhbEJvdW5kcygpLGY9dS5taW4sZD11Lm1heCxoPW5ldyBwcihmWzBdLWwsZlsxXS1vLGRbMF0rcy1mWzBdK2wsZFsxXStjLWZbMV0rbyksdj10aGlzLmdldFBhdGgocixoKSxnPWVuKHRoaXMuYXR0cmlidXRlcywiYmFja2dyb3VuZCIpO3RoaXMuYmFja2dyb3VuZD1GZSh0aGlzLmdyb3VwKS5tYXliZUFwcGVuZEJ5Q2xhc3NOYW1lKEF3LmJhY2tncm91bmQsInBhdGgiKS5zdHlsZXMoQXQoQXQoe30sZykse2Q6dn0pKSx0aGlzLmdyb3VwLmFwcGVuZENoaWxkKHRoaXMubGFiZWwubm9kZSgpKX19LGUucHJvdG90eXBlLnJlbmRlckxhYmVsPWZ1bmN0aW9uKCl7dmFyIG49dGhpcy5hdHRyaWJ1dGVzLHI9bi5mb3JtYXR0ZXIsaT1uLmxhYmVsVGV4dCxhPWVuKHRoaXMuYXR0cmlidXRlcywibGFiZWwiKSxvPVYob2MoYSksMikscz1vWzBdLGM9b1sxXSxsPXMudGV4dCx1PSRyKHMsWyJ0ZXh0Il0pO2lmKHRoaXMubGFiZWw9RmUodGhpcy5ncm91cCkubWF5YmVBcHBlbmRCeUNsYXNzTmFtZShBdy5sYWJlbEdyb3VwLCJnIikuc3R5bGVzKGMpLCEhaSl7dmFyIGY9dGhpcy5sYWJlbC5tYXliZUFwcGVuZEJ5Q2xhc3NOYW1lKEF3LmxhYmVsLGZ1bmN0aW9uKCl7cmV0dXJuIHB1KHIoaSkpfSkuc3R5bGUoInRleHQiLHIoaSkudG9TdHJpbmcoKSk7Zi5zZWxlY3RBbGwoInRleHQiKS5zdHlsZXModSl9fSxlLnByb3RvdHlwZS5hZGp1c3RMYXlvdXQ9ZnVuY3Rpb24oKXt2YXIgbj1WKHRoaXMucG9pbnQsMikscj1uWzBdLGk9blsxXSxhPXRoaXMuYXR0cmlidXRlcyxvPWEueCxzPWEueTt0aGlzLmdyb3VwLmF0dHIoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgiLmNvbmNhdChvLXIsIiwgIikuY29uY2F0KHMtaSwiKSIpKX0sZS5wcm90b3R5cGUuZ2V0UGF0aD1mdW5jdGlvbihuLHIpe3ZhciBpPXRoaXMuYXR0cmlidXRlcy5yYWRpdXMsYT1yLngsbz1yLnkscz1yLndpZHRoLGM9ci5oZWlnaHQsbD1bWyJNIixhK2ksb10sWyJMIixhK3MtaSxvXSxbIkEiLGksaSwwLDAsMSxhK3MsbytpXSxbIkwiLGErcyxvK2MtaV0sWyJBIixpLGksMCwwLDEsYStzLWksbytjXSxbIkwiLGEraSxvK2NdLFsiQSIsaSxpLDAsMCwxLGEsbytjLWldLFsiTCIsYSxvK2ldLFsiQSIsaSxpLDAsMCwxLGEraSxvXSxbIloiXV0sdT17dG9wOjQscmlnaHQ6Nixib3R0b206MCxsZWZ0OjJ9LGY9dVtuXSxkPXRoaXMuY3JlYXRlQ29ybmVyKFtsW2ZdLnNsaWNlKC0yKSxsW2YrMV0uc2xpY2UoLTIpXSk7cmV0dXJuIGwuc3BsaWNlLmFwcGx5KGwsdGUoW2YrMSwxXSxWKGQpLCExKSksbFswXVswXT0iTSIsbH0sZS5wcm90b3R5cGUuY3JlYXRlQ29ybmVyPWZ1bmN0aW9uKG4scil7cj09PXZvaWQgMCYmKHI9MTApO3ZhciBpPS44LGE9dEIuYXBwbHkodm9pZCAwLHRlKFtdLFYobiksITEpKSxvPVYobiwyKSxzPVYob1swXSwyKSxjPXNbMF0sbD1zWzFdLHU9VihvWzFdLDIpLGY9dVswXSxkPXVbMV0saD1WKGE/W2YtYyxbYyxmXV06W2QtbCxbbCxkXV0sMiksdj1oWzBdLGc9VihoWzFdLDIpLHk9Z1swXSxiPWdbMV0seD12LzIsXz12L01hdGguYWJzKHYpLHc9cipfLE89dy8yLEU9dypNYXRoLnNxcnQoMykvMippLE09VihbeSx5K3gtTyx5K3gseSt4K08sYl0sNSksaz1NWzBdLEE9TVsxXSxQPU1bMl0sQz1NWzNdLE49TVs0XTtyZXR1cm4gYT8odGhpcy5wb2ludD1bUCxsLUVdLFtbIkwiLGssbF0sWyJMIixBLGxdLFsiTCIsUCxsLUVdLFsiTCIsQyxsXSxbIkwiLE4sbF1dKToodGhpcy5wb2ludD1bYytFLFBdLFtbIkwiLGMsa10sWyJMIixjLEFdLFsiTCIsYytFLFBdLFsiTCIsYyxDXSxbIkwiLGMsTl1dKX0sZS5wcm90b3R5cGUuYXBwbHlWaXNpYmlsaXR5PWZ1bmN0aW9uKCl7dmFyIG49dGhpcy5hdHRyaWJ1dGVzLnZpc2liaWxpdHk7bj09PSJoaWRkZW4iP25sKHRoaXMpOk1wKHRoaXMpfSxlLnByb3RvdHlwZS5iaW5kRXZlbnRzPWZ1bmN0aW9uKCl7dGhpcy5sYWJlbC5vbigkZS5CT1VORFNfQ0hBTkdFRCx0aGlzLnJlbmRlckJhY2tncm91bmQpfSxlLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXt0aGlzLnJlbmRlckxhYmVsKCksdGhpcy5yZW5kZXJCYWNrZ3JvdW5kKCksdGhpcy5hZGp1c3RMYXlvdXQoKSx0aGlzLmFwcGx5VmlzaWJpbGl0eSgpfSxlfShiaSksUVQ9e2ZpbGw6IiNmZmYiLGxpbmVXaWR0aDoxLHJhZGl1czoyLHNpemU6MTAsc3Ryb2tlOiIjYmZiZmJmIixzdHJva2VPcGFjaXR5OjEsekluZGV4OjB9LEpUPXtmaWxsOiIjMDAwIixmaWxsT3BhY2l0eTouNDUsZm9udFNpemU6MTIsdGV4dEFsaWduOiJjZW50ZXIiLHRleHRCYXNlbGluZToibWlkZGxlIix6SW5kZXg6MX0sdFA9e3g6MCx5OjAsb3JpZW50YXRpb246Imhvcml6b250YWwiLHNob3dMYWJlbDohMCx0eXBlOiJzdGFydCJ9LHBzPXhvKHtmb3JlZ3JvdW5kOiJmb3JlZ3JvdW5kIixoYW5kbGU6ImhhbmRsZSIsc2VsZWN0aW9uOiJzZWxlY3Rpb24iLHNwYXJrbGluZToic3BhcmtsaW5lIixzcGFya2xpbmVHcm91cDoic3BhcmtsaW5lLWdyb3VwIix0cmFjazoidHJhY2siLGJydXNoQXJlYToiYnJ1c2gtYXJlYSJ9LCJzbGlkZXIiKSxpbD14byh7bGFiZWxHcm91cDoibGFiZWwtZ3JvdXAiLGxhYmVsOiJsYWJlbCIsaWNvbkdyb3VwOiJpY29uLWdyb3VwIixpY29uOiJpY29uIixpY29uUmVjdDoiaWNvbi1yZWN0IixpY29uTGluZToiaWNvbi1saW5lIn0sImhhbmRsZSIpLGg3PWZ1bmN0aW9uKHQpe2FyKGUsdCk7ZnVuY3Rpb24gZSgpe3JldHVybiB0IT09bnVsbCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIGUucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbihuLHIpe3ZhciBpPW4ueCxhPW4ueSxvPW4uc2l6ZSxzPW89PT12b2lkIDA/MTA6byxjPW4ucmFkaXVzLGw9Yz09PXZvaWQgMD9zLzQ6Yyx1PW4ub3JpZW50YXRpb24sZj0kcihuLFsieCIsInkiLCJzaXplIiwicmFkaXVzIiwib3JpZW50YXRpb24iXSksZD1zLGg9ZCoyLjQsdj1GZShyKS5tYXliZUFwcGVuZEJ5Q2xhc3NOYW1lKGlsLmljb25SZWN0LCJyZWN0Iikuc3R5bGVzKEF0KEF0KHt9LGYpLHt3aWR0aDpkLGhlaWdodDpoLHJhZGl1czpsLHg6aS1kLzIseTphLWgvMix0cmFuc2Zvcm1PcmlnaW46ImNlbnRlciJ9KSksZz1pKzEvMypkLWQvMix5PWkrMi8zKmQtZC8yLGI9YSsxLzQqaC1oLzIseD1hKzMvNCpoLWgvMjt2Lm1heWJlQXBwZW5kQnlDbGFzc05hbWUoIiIuY29uY2F0KGlsLmljb25MaW5lLCItMSIpLCJsaW5lIikuc3R5bGVzKEF0KHt4MTpnLHgyOmcseTE6Yix5Mjp4fSxmKSksdi5tYXliZUFwcGVuZEJ5Q2xhc3NOYW1lKCIiLmNvbmNhdChpbC5pY29uTGluZSwiLTIiKSwibGluZSIpLnN0eWxlcyhBdCh7eDE6eSx4Mjp5LHkxOmIseTI6eH0sZikpLHU9PT0idmVydGljYWwiJiYodi5ub2RlKCkuc3R5bGUudHJhbnNmb3JtPSJyb3RhdGUoOTApIil9LGV9KGJpKSxlUD1mdW5jdGlvbih0KXthcihlLHQpO2Z1bmN0aW9uIGUobil7cmV0dXJuIHQuY2FsbCh0aGlzLG4sdFApfHx0aGlzfXJldHVybiBlLnByb3RvdHlwZS5yZW5kZXJMYWJlbD1mdW5jdGlvbihuKXt2YXIgcj10aGlzLGk9dGhpcy5hdHRyaWJ1dGVzLGE9aS54LG89aS55LHM9aS5zaG93TGFiZWwsYz1lbih0aGlzLmF0dHJpYnV0ZXMsImxhYmVsIiksbD1jLngsdT1sPT09dm9pZCAwPzA6bCxmPWMueSxkPWY9PT12b2lkIDA/MDpmLGg9Yy50cmFuc2Zvcm0sdj1jLnRyYW5zZm9ybU9yaWdpbixnPSRyKGMsWyJ4IiwieSIsInRyYW5zZm9ybSIsInRyYW5zZm9ybU9yaWdpbiJdKSx5PVYob2MoZyxbXSksMiksYj15WzBdLHg9eVsxXSxfPUZlKG4pLm1heWJlQXBwZW5kQnlDbGFzc05hbWUoaWwubGFiZWxHcm91cCwiZyIpLnN0eWxlcyh4KSx3PUF0KEF0KHt9LEpUKSxiKSxPPXcudGV4dCxFPSRyKHcsWyJ0ZXh0Il0pO1BhKCEhcyxfLGZ1bmN0aW9uKE0pe3IubGFiZWw9TS5tYXliZUFwcGVuZEJ5Q2xhc3NOYW1lKGlsLmxhYmVsLCJ0ZXh0Iikuc3R5bGVzKEF0KEF0KHt9LEUpLHt4OmErdSx5Om8rZCx0cmFuc2Zvcm06aCx0cmFuc2Zvcm1PcmlnaW46dix0ZXh0OiIiLmNvbmNhdChPKX0pKSxyLmxhYmVsLm9uKCJtb3VzZWRvd24iLGZ1bmN0aW9uKGspe2suc3RvcFByb3BhZ2F0aW9uKCl9KSxyLmxhYmVsLm9uKCJ0b3VjaHN0YXJ0IixmdW5jdGlvbihrKXtrLnN0b3BQcm9wYWdhdGlvbigpfSl9KX0sZS5wcm90b3R5cGUucmVuZGVySWNvbj1mdW5jdGlvbihuKXt2YXIgcj10aGlzLmF0dHJpYnV0ZXMsaT1yLngsYT1yLnksbz1yLm9yaWVudGF0aW9uLHM9ci50eXBlLGM9QXQoQXQoe3g6aSx5OmEsb3JpZW50YXRpb246b30sUVQpLGVuKHRoaXMuYXR0cmlidXRlcywiaWNvbiIpKSxsPXRoaXMuYXR0cmlidXRlcy5pY29uU2hhcGUsdT1sPT09dm9pZCAwP2Z1bmN0aW9uKCl7cmV0dXJuIG5ldyBoNyh7c3R5bGU6Y30pfTpsLGY9RmUobikubWF5YmVBcHBlbmRCeUNsYXNzTmFtZShpbC5pY29uR3JvdXAsImciKTtmLnNlbGVjdEFsbChpbC5pY29uLmNsYXNzKS5kYXRhKFt1XSkuam9pbihmdW5jdGlvbihkKXtyZXR1cm4gZC5hcHBlbmQodHlwZW9mIHU9PSJzdHJpbmciP3U6ZnVuY3Rpb24oKXtyZXR1cm4gdShzKX0pLmF0dHIoImNsYXNzTmFtZSIsaWwuaWNvbi5uYW1lKX0sZnVuY3Rpb24oZCl7cmV0dXJuIGQudXBkYXRlKGMpfSxmdW5jdGlvbihkKXtyZXR1cm4gZC5yZW1vdmUoKX0pfSxlLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24obixyKXt0aGlzLnJlbmRlckljb24ociksdGhpcy5yZW5kZXJMYWJlbChyKX0sZX0oYmkpLG5QPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm5bWyJNIix0LW4sZV0sWyJBIixuLG4sMCwxLDAsdCtuLGVdLFsiQSIsbixuLDAsMSwwLHQtbixlXSxbIloiXV19LHA3PW5QLHY3PWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm5bWyJNIix0LW4sZS1uXSxbIkwiLHQrbixlLW5dLFsiTCIsdCtuLGUrbl0sWyJMIix0LW4sZStuXSxbIloiXV19LGc3PWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm5bWyJNIix0LW4sZV0sWyJMIix0LGUtbl0sWyJMIix0K24sZV0sWyJMIix0LGUrbl0sWyJaIl1dfSx5Nz1mdW5jdGlvbih0LGUsbil7dmFyIHI9bipNYXRoLnNpbiguMzMzMzMzMzMzMzMzMzMzMypNYXRoLlBJKTtyZXR1cm5bWyJNIix0LW4sZStyXSxbIkwiLHQsZS1yXSxbIkwiLHQrbixlK3JdLFsiWiJdXX0sbTc9ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4qTWF0aC5zaW4oLjMzMzMzMzMzMzMzMzMzMzMqTWF0aC5QSSk7cmV0dXJuW1siTSIsdC1uLGUtcl0sWyJMIix0K24sZS1yXSxbIkwiLHQsZStyXSxbIloiXV19LGI3PWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uLzIqTWF0aC5zcXJ0KDMpO3JldHVybltbIk0iLHQsZS1uXSxbIkwiLHQrcixlLW4vMl0sWyJMIix0K3IsZStuLzJdLFsiTCIsdCxlK25dLFsiTCIsdC1yLGUrbi8yXSxbIkwiLHQtcixlLW4vMl0sWyJaIl1dfSx4Nz1mdW5jdGlvbih0LGUsbil7dmFyIHI9bi0xLjU7cmV0dXJuW1siTSIsdC1uLGUtcl0sWyJMIix0K24sZStyXSxbIkwiLHQrbixlLXJdLFsiTCIsdC1uLGUrcl0sWyJaIl1dfSxyUD1mdW5jdGlvbih0LGUsbil7cmV0dXJuW1siTSIsdCxlK25dLFsiTCIsdCxlLW5dXX0sXzc9ZnVuY3Rpb24odCxlLG4pe3JldHVybltbIk0iLHQtbixlLW5dLFsiTCIsdCtuLGUrbl0sWyJNIix0K24sZS1uXSxbIkwiLHQtbixlK25dXX0sdzc9ZnVuY3Rpb24odCxlLG4pe3JldHVybltbIk0iLHQtbi8yLGUtbl0sWyJMIix0K24vMixlLW5dLFsiTSIsdCxlLW5dLFsiTCIsdCxlK25dLFsiTSIsdC1uLzIsZStuXSxbIkwiLHQrbi8yLGUrbl1dfSxPNz1mdW5jdGlvbih0LGUsbil7cmV0dXJuW1siTSIsdC1uLGVdLFsiTCIsdCtuLGVdLFsiTSIsdCxlLW5dLFsiTCIsdCxlK25dXX0sUzc9ZnVuY3Rpb24odCxlLG4pe3JldHVybltbIk0iLHQtbixlXSxbIkwiLHQrbixlXV19LGlQPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm5bWyJNIix0LW4sZV0sWyJMIix0K24sZV1dfSxFNz1pUCxNNz1mdW5jdGlvbih0LGUsbil7cmV0dXJuW1siTSIsdC1uLGVdLFsiQSIsbi8yLG4vMiwwLDEsMSx0LGVdLFsiQSIsbi8yLG4vMiwwLDEsMCx0K24sZV1dfSxrNz1mdW5jdGlvbih0LGUsbil7cmV0dXJuW1siTSIsdC1uLTEsZS0yLjVdLFsiTCIsdCxlLTIuNV0sWyJMIix0LGUrMi41XSxbIkwiLHQrbisxLGUrMi41XV19LEE3PWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm5bWyJNIix0LW4tMSxlKzIuNV0sWyJMIix0LGUrMi41XSxbIkwiLHQsZS0yLjVdLFsiTCIsdCtuKzEsZS0yLjVdXX0sVDc9ZnVuY3Rpb24odCxlLG4pe3JldHVybltbIk0iLHQtKG4rMSksZSsyLjVdLFsiTCIsdC1uLzIsZSsyLjVdLFsiTCIsdC1uLzIsZS0yLjVdLFsiTCIsdCtuLzIsZS0yLjVdLFsiTCIsdCtuLzIsZSsyLjVdLFsiTCIsdCtuKzEsZSsyLjVdXX07ZnVuY3Rpb24gUDcodCxlKXtyZXR1cm5bWyJNIix0LTUsZSsyLjVdLFsiTCIsdC01LGVdLFsiTCIsdCxlXSxbIkwiLHQsZS0zXSxbIkwiLHQsZSszXSxbIkwiLHQrNi41LGUrM11dfXZhciBDNz1mdW5jdGlvbih0LGUsbil7cmV0dXJuW1siTSIsdC1uLGUtbl0sWyJMIix0K24sZV0sWyJMIix0LW4sZStuXSxbIloiXV19O2Z1bmN0aW9uIEw3KHQpe3ZhciBlPSJkZWZhdWx0IjtpZih6bCh0KSYmdCBpbnN0YW5jZW9mIEltYWdlKWU9ImltYWdlIjtlbHNlIGlmKFhuKHQpKWU9InN5bWJvbCI7ZWxzZSBpZihpcih0KSl7dmFyIG49bmV3IFJlZ0V4cCgiZGF0YTooaW1hZ2V8dGV4dCkiKTt0Lm1hdGNoKG4pP2U9ImJhc2U2NCI6L14oaHR0cHM/OlwvXC8oKFthLXpBLVowLTldKy0/KStbYS16QS1aMC05XStcLikrW2EtekEtWl0rKSg6XGQrKT8oXC8uKik/KFw/LiopPygjLiopPyQvLnRlc3QodCk/ZT0idXJsIjplPSJzeW1ib2wifXJldHVybiBlfWZ1bmN0aW9uIFI3KHQpe3ZhciBlPUw3KHQpO3JldHVyblsiYmFzZTY0IiwidXJsIiwiaW1hZ2UiXS5pbmNsdWRlcyhlKT8iaW1hZ2UiOnQmJmU9PT0ic3ltYm9sIj8icGF0aCI6bnVsbH12YXIgQW49ZnVuY3Rpb24odCl7YXIoZSx0KTtmdW5jdGlvbiBlKCl7cmV0dXJuIHQhPT1udWxsJiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gZS5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKG4scil7dmFyIGk9bi54LGE9aT09PXZvaWQgMD8wOmksbz1uLnkscz1vPT09dm9pZCAwPzA6byxjPXRoaXMuZ2V0U3ViU2hhcGVTdHlsZShuKSxsPWMuc3ltYm9sLHU9Yy5zaXplLGY9dT09PXZvaWQgMD8xNjp1LGQ9JHIoYyxbInN5bWJvbCIsInNpemUiXSksaD1SNyhsKTtQYSghIWgsRmUociksZnVuY3Rpb24odil7di5tYXliZUFwcGVuZEJ5Q2xhc3NOYW1lKCJtYXJrZXIiLGgpLmF0dHIoImNsYXNzTmFtZSIsIm1hcmtlciAiLmNvbmNhdChoLCItbWFya2VyIikpLmNhbGwoZnVuY3Rpb24oZyl7aWYoaD09PSJpbWFnZSIpe3ZhciB5PWYqMjtnLnN0eWxlcyh7aW1nOmwsd2lkdGg6eSxoZWlnaHQ6eSx4OmEtZix5OnMtZn0pfWVsc2V7dmFyIHk9Zi8yLGI9WG4obCk/bDplLmdldFN5bWJvbChsKTtnLnN0eWxlcyhBdCh7ZDpiPT1udWxsP3ZvaWQgMDpiKGEscyx5KX0sZCkpfX0pfSl9LGUuTUFSS0VSX1NZTUJPTF9NQVA9bmV3IE1hcCxlLnJlZ2lzdGVyU3ltYm9sPWZ1bmN0aW9uKG4scil7ZS5NQVJLRVJfU1lNQk9MX01BUC5zZXQobixyKX0sZS5nZXRTeW1ib2w9ZnVuY3Rpb24obil7cmV0dXJuIGUuTUFSS0VSX1NZTUJPTF9NQVAuZ2V0KG4pfSxlLmdldFN5bWJvbHM9ZnVuY3Rpb24oKXtyZXR1cm4gQXJyYXkuZnJvbShlLk1BUktFUl9TWU1CT0xfTUFQLmtleXMoKSl9LGV9KGJpKTtBbi5yZWdpc3RlclN5bWJvbCgiY3Jvc3MiLF83KSxBbi5yZWdpc3RlclN5bWJvbCgiaHlwaGVuIixTNyksQW4ucmVnaXN0ZXJTeW1ib2woImxpbmUiLHJQKSxBbi5yZWdpc3RlclN5bWJvbCgicGx1cyIsTzcpLEFuLnJlZ2lzdGVyU3ltYm9sKCJ0aWNrIix3NyksQW4ucmVnaXN0ZXJTeW1ib2woImNpcmNsZSIsblApLEFuLnJlZ2lzdGVyU3ltYm9sKCJwb2ludCIscDcpLEFuLnJlZ2lzdGVyU3ltYm9sKCJib3d0aWUiLHg3KSxBbi5yZWdpc3RlclN5bWJvbCgiaGV4YWdvbiIsYjcpLEFuLnJlZ2lzdGVyU3ltYm9sKCJzcXVhcmUiLHY3KSxBbi5yZWdpc3RlclN5bWJvbCgiZGlhbW9uZCIsZzcpLEFuLnJlZ2lzdGVyU3ltYm9sKCJ0cmlhbmdsZSIseTcpLEFuLnJlZ2lzdGVyU3ltYm9sKCJ0cmlhbmdsZS1kb3duIixtNyksQW4ucmVnaXN0ZXJTeW1ib2woImxpbmUiLHJQKSxBbi5yZWdpc3RlclN5bWJvbCgiZG90IixpUCksQW4ucmVnaXN0ZXJTeW1ib2woImRhc2giLEU3KSxBbi5yZWdpc3RlclN5bWJvbCgic21vb3RoIixNNyksQW4ucmVnaXN0ZXJTeW1ib2woImh2IixrNyksQW4ucmVnaXN0ZXJTeW1ib2woInZoIixBNyksQW4ucmVnaXN0ZXJTeW1ib2woImh2aCIsVDcpLEFuLnJlZ2lzdGVyU3ltYm9sKCJ2aHYiLFA3KTtmdW5jdGlvbiBONyh0LGUsbil7dmFyIHI9TWF0aC5yb3VuZCgodC1uKS9lKTtyZXR1cm4gbityKmV9ZnVuY3Rpb24gSTcodCxlLG4pe3ZhciByPTEuNCxpPXIqbjtyZXR1cm5bWyJNIix0LW4sZS1pXSxbIkwiLHQrbixlLWldLFsiTCIsdCtuLGUraV0sWyJMIix0LW4sZStpXSxbIloiXV19dmFyIGFQPTEuNCxvUD0uNDtmdW5jdGlvbiBENyh0LGUsbil7dmFyIHI9bixpPXIqYVAsYT1yLzIsbz1yLzYscz10K2kqb1A7cmV0dXJuW1siTSIsdCxlXSxbIkwiLHMsZSthXSxbIkwiLHQraSxlK2FdLFsiTCIsdCtpLGUtYV0sWyJMIixzLGUtYV0sWyJaIl0sWyJNIixzLGUrb10sWyJMIix0K2ktMixlK29dLFsiTSIscyxlLW9dLFsiTCIsdCtpLTIsZS1vXV19ZnVuY3Rpb24gajcodCxlLG4pe3ZhciByPW4saT1yKmFQLGE9ci8yLG89ci82LHM9ZStpKm9QO3JldHVybltbIk0iLHQsZV0sWyJMIix0LWEsc10sWyJMIix0LWEsZStpXSxbIkwiLHQrYSxlK2ldLFsiTCIsdCthLHNdLFsiWiJdLFsiTSIsdC1vLHNdLFsiTCIsdC1vLGUraS0yXSxbIk0iLHQrbyxzXSxbIkwiLHQrbyxlK2ktMl1dfUFuLnJlZ2lzdGVyU3ltYm9sKCJoaWRkZW5IYW5kbGUiLEk3KSxBbi5yZWdpc3RlclN5bWJvbCgidmVydGljYWxIYW5kbGUiLEQ3KSxBbi5yZWdpc3RlclN5bWJvbCgiaG9yaXpvbnRhbEhhbmRsZSIsajcpO3ZhciBob3Q9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0PT09dm9pZCAwJiYodD0iaG9yaXpvbnRhbCIpLHQ9PT0iaG9yaXpvbnRhbCI/ZTpufTtmdW5jdGlvbiBGNyh0LGUsbixyKXt2YXIgaTtyPT09dm9pZCAwJiYocj00KTt2YXIgYT1WKHQsMiksbz1hWzBdLHM9YVsxXSxjPVYoZSwyKSxsPWNbMF0sdT1jWzFdLGY9VihuLDIpLGQ9ZlswXSxoPWZbMV0sdj1WKFtsLHVdLDIpLGc9dlswXSx5PXZbMV0sYj15LWc7cmV0dXJuIGc+eSYmKGk9VihbeSxnXSwyKSxnPWlbMF0seT1pWzFdKSxiPnMtbz9bbyxzXTpnPG8/ZD09PW8mJmg9PT15P1tvLHldOltvLGIrb106eT5zP2g9PT1zJiZkPT09Zz9bZyxzXTpbcy1iLHNdOltnLHldfWZ1bmN0aW9uIHZzKHQsZSxuKXtyZXR1cm4gdD09PXZvaWQgMCYmKHQ9Imhvcml6b250YWwiKSx0PT09Imhvcml6b250YWwiP2U6bn12YXIgTnA9eG8oe21hcmtlckdyb3VwOiJtYXJrZXItZ3JvdXAiLG1hcmtlcjoibWFya2VyIixsYWJlbEdyb3VwOiJsYWJlbC1ncm91cCIsbGFiZWw6ImxhYmVsIn0sImhhbmRsZSIpLHNQPXtzaG93TGFiZWw6ITAsZm9ybWF0dGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0LnRvU3RyaW5nKCl9LG1hcmtlclNpemU6MjUsbWFya2VyU3Ryb2tlOiIjYzVjNWM1IixtYXJrZXJGaWxsOiIjZmZmIixtYXJrZXJMaW5lV2lkdGg6MSxsYWJlbEZvbnRTaXplOjEyLGxhYmVsRmlsbDoiI2M1YzVjNSIsbGFiZWxUZXh0OiIiLG9yaWVudGF0aW9uOiJ2ZXJ0aWNhbCIsc3BhY2luZzowfSxCNz1mdW5jdGlvbih0KXthcihlLHQpO2Z1bmN0aW9uIGUobil7cmV0dXJuIHQuY2FsbCh0aGlzLG4sc1ApfHx0aGlzfXJldHVybiBlLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24obixyKXt2YXIgaT1GZShyKS5tYXliZUFwcGVuZEJ5Q2xhc3NOYW1lKE5wLm1hcmtlckdyb3VwLCJnIik7dGhpcy5yZW5kZXJNYXJrZXIoaSk7dmFyIGE9RmUocikubWF5YmVBcHBlbmRCeUNsYXNzTmFtZShOcC5sYWJlbEdyb3VwLCJnIik7dGhpcy5yZW5kZXJMYWJlbChhKX0sZS5wcm90b3R5cGUucmVuZGVyTWFya2VyPWZ1bmN0aW9uKG4pe3ZhciByPXRoaXMsaT10aGlzLmF0dHJpYnV0ZXMsYT1pLm9yaWVudGF0aW9uLG89aS5tYXJrZXJTeW1ib2wscz1vPT09dm9pZCAwP3ZzKGEsImhvcml6b250YWxIYW5kbGUiLCJ2ZXJ0aWNhbEhhbmRsZSIpOm87UGEoISFzLG4sZnVuY3Rpb24oYyl7dmFyIGw9ZW4oci5hdHRyaWJ1dGVzLCJtYXJrZXIiKSx1PUF0KHtzeW1ib2w6c30sbCk7ci5tYXJrZXI9Yy5tYXliZUFwcGVuZEJ5Q2xhc3NOYW1lKE5wLm1hcmtlcixmdW5jdGlvbigpe3JldHVybiBuZXcgQW4oe3N0eWxlOnV9KX0pLnVwZGF0ZSh1KX0pfSxlLnByb3RvdHlwZS5yZW5kZXJMYWJlbD1mdW5jdGlvbihuKXt2YXIgcj10aGlzLGk9dGhpcy5hdHRyaWJ1dGVzLGE9aS5zaG93TGFiZWwsbz1pLm9yaWVudGF0aW9uLHM9aS5zcGFjaW5nLGM9cz09PXZvaWQgMD8wOnMsbD1pLmZvcm1hdHRlcjtQYShhLG4sZnVuY3Rpb24odSl7dmFyIGYsZD1lbihyLmF0dHJpYnV0ZXMsImxhYmVsIiksaD1kLnRleHQsdj0kcihkLFsidGV4dCJdKSxnPSgoZj11LnNlbGVjdChOcC5tYXJrZXIuY2xhc3MpKT09PW51bGx8fGY9PT12b2lkIDA/dm9pZCAwOmYubm9kZSgpLmdldEJCb3goKSl8fHt9LHk9Zy53aWR0aCxiPXk9PT12b2lkIDA/MDp5LHg9Zy5oZWlnaHQsXz14PT09dm9pZCAwPzA6eCx3PVYodnMobyxbMCxfK2MsImNlbnRlciIsInRvcCJdLFtiK2MsMCwic3RhcnQiLCJtaWRkbGUiXSksNCksTz13WzBdLEU9d1sxXSxNPXdbMl0saz13WzNdO3UubWF5YmVBcHBlbmRCeUNsYXNzTmFtZShOcC5sYWJlbCwidGV4dCIpLnN0eWxlcyhBdChBdCh7fSx2KSx7eDpPLHk6RSx0ZXh0OmwoaCkudG9TdHJpbmcoKSx0ZXh0QWxpZ246TSx0ZXh0QmFzZWxpbmU6a30pKX0pfSxlfShiaSksY1A9e3Nob3dUaXRsZTohMCxwYWRkaW5nOjAsb3JpZW50YXRpb246Imhvcml6b250YWwiLGJhY2tncm91bmRGaWxsOiJ0cmFuc3BhcmVudCIsdGl0bGVUZXh0OiIiLHRpdGxlU3BhY2luZzo0LHRpdGxlUG9zaXRpb246InRvcC1sZWZ0Iix0aXRsZUZpbGw6IiMyQzM1NDIiLHRpdGxlRm9udFdlaWdodDoiYm9sZCIsdGl0bGVGb250RmFtaWx5OiJzYW5zLXNlcmlmIix0aXRsZUZvbnRTaXplOjEyfSx6Nz1pYyh7fSxjUCx7fSksVzc9aWMoe30sY1AsZHMoc1AsImhhbmRsZSIpLHtjb2xvcjpbIiNkMGUzZmEiLCIjYWNjN2Y2IiwiIzhkYWFmMiIsIiM2ZDhlZWEiLCIjNGQ3M2NkIiwiIzMyNWJiMSIsIiM1YTNlNzUiLCIjOGMzYzc5IiwiI2UyMzQ1NSIsIiNlNzY1NWIiXSxpbmRpY2F0b3JCYWNrZ3JvdW5kRmlsbDoiIzI2MjYyNiIsaW5kaWNhdG9yTGFiZWxGaWxsOiJ3aGl0ZSIsaW5kaWNhdG9yTGFiZWxGb250U2l6ZToxMixpbmRpY2F0b3JWaXNpYmlsaXR5OiJoaWRkZW4iLGxhYmVsQWxpZ246InZhbHVlIixsYWJlbERpcmVjdGlvbjoicG9zaXRpdmUiLGxhYmVsU3BhY2luZzo1LHNob3dIYW5kbGU6ITAsc2hvd0luZGljYXRvcjohMCxzaG93TGFiZWw6ITAsc2xpZGFibGU6ITAsdGl0bGVUZXh0OiIiLHR5cGU6ImNvbnRpbnVvdXMifSksRzc9LjAxLHBvdD0uNSxJaT14byh7dGl0bGU6InRpdGxlIix0aXRsZUdyb3VwOiJ0aXRsZS1ncm91cCIsaXRlbXM6Iml0ZW1zIixpdGVtc0dyb3VwOiJpdGVtcy1ncm91cCIsY29udGVudEdyb3VwOiJjb250ZW50LWdyb3VwIixyaWJib25Hcm91cDoicmliYm9uLWdyb3VwIixyaWJib246InJpYmJvbiIsaGFuZGxlc0dyb3VwOiJoYW5kbGVzLWdyb3VwIixoYW5kbGU6ImhhbmRsZSIsc3RhcnRIYW5kbGU6InN0YXJ0LWhhbmRsZSIsZW5kSGFuZGxlOiJlbmQtaGFuZGxlIixsYWJlbEdyb3VwOiJsYWJlbC1ncm91cCIsbGFiZWw6ImxhYmVsIixpbmRpY2F0b3I6ImluZGljYXRvciJ9LCJsZWdlbmQiKTtmdW5jdGlvbiAkNyh0LGUpe2Zvcih2YXIgbj0xO248dC5sZW5ndGg7bis9MSl7dmFyIHI9dFtuLTFdLGk9dFtuXTtpZihlPj1yJiZlPD1pKXJldHVybltyLGldfXJldHVybltlLGVdfWZ1bmN0aW9uIFo3KHQsZSxuKXt2YXIgcj1BcnJheS5mcm9tKGUpLGk9dC5sZW5ndGg7cmV0dXJuIG5ldyBBcnJheShpKS5maWxsKDApLnJlZHVjZShmdW5jdGlvbihhLG8scyl7dmFyIGM9cltzJXIubGVuZ3RoXTtyZXR1cm4gYSs9IiAiLmNvbmNhdCh0W3NdLCI6IikuY29uY2F0KGMpLmNvbmNhdChzPGktMT8iICIuY29uY2F0KHRbcysxXSwiOiIpLmNvbmNhdChjKToiIil9LCJsKCIuY29uY2F0KG49PT0iaG9yaXpvbnRhbCI/IjAiOiIyNzAiLCIpIikpfWZ1bmN0aW9uIGxQKHQsZSl7dmFyIG49VigkNyh0LGUpLDIpLHI9blswXSxpPW5bMV07cmV0dXJue3RpY2s6ZT4ocitpKS8yP2k6cixyYW5nZTpbcixpXX19dmFyIElwPXhvKHt0cmFja0dyb3VwOiJiYWNrZ3JvdW5kLWdyb3VwIix0cmFjazoiYmFja2dyb3VuZCIsc2VsZWN0aW9uR3JvdXA6InJpYmJvbi1ncm91cCIsc2VsZWN0aW9uOiJyaWJib24iLGNsaXBQYXRoOiJjbGlwLXBhdGgifSwicmliYm9uIik7ZnVuY3Rpb24gdVAodCl7dmFyIGU9dC5vcmllbnRhdGlvbixuPXQuc2l6ZSxyPXQubGVuZ3RoO3JldHVybiB2cyhlLFtyLG5dLFtuLHJdKX1mdW5jdGlvbiBmUCh0KXt2YXIgZT10LnR5cGUsbj1WKHVQKHQpLDIpLHI9blswXSxpPW5bMV07cmV0dXJuIGU9PT0ic2l6ZSI/W1siTSIsMCxpXSxbIkwiLDArciwwXSxbIkwiLDArcixpXSxbIloiXV06W1siTSIsMCxpXSxbIkwiLDAsMF0sWyJMIiwwK3IsMF0sWyJMIiwwK3IsaV0sWyJaIl1dfWZ1bmN0aW9uIFk3KHQpe3JldHVybiBmUCh0KX1mdW5jdGlvbiBINyh0KXt2YXIgZT10Lm9yaWVudGF0aW9uLG49dC5jb2xvcixyPXQuYmxvY2ssaT10LnBhcnRpdGlvbixhO2lmKFhuKG4pKXt2YXIgbz0yMDthPW5ldyBBcnJheShvKS5maWxsKDApLm1hcChmdW5jdGlvbihsLHUsZil7cmV0dXJuIG4odS8oZi5sZW5ndGgtMSkpfSl9ZWxzZSBhPW47dmFyIHM9YS5sZW5ndGgsYz1hLm1hcChmdW5jdGlvbihsKXtyZXR1cm4gb3MobCkudG9TdHJpbmcoKX0pO3JldHVybiBzP3M9PT0xP2NbMF06cj9aNyhpLGMsZSk6Yy5yZWR1Y2UoZnVuY3Rpb24obCx1LGYpe3JldHVybiBsKz0iICIuY29uY2F0KGYvKHMtMSksIjoiKS5jb25jYXQodSl9LCJsKCIuY29uY2F0KHZzKGUsIjAiLCIyNzAiKSwiKSIpKToiIn1mdW5jdGlvbiBWNyh0KXt2YXIgZT10Lm9yaWVudGF0aW9uLG49dC5yYW5nZTtpZighbilyZXR1cm5bXTt2YXIgcj1WKHVQKHQpLDIpLGk9clswXSxhPXJbMV0sbz1WKG4sMikscz1vWzBdLGM9b1sxXSxsPXZzKGUscyppLDApLHU9dnMoZSwwLHMqYSksZj12cyhlLGMqaSxpKSxkPXZzKGUsYSxjKmEpO3JldHVybltbIk0iLGwsdV0sWyJMIixsLGRdLFsiTCIsZixkXSxbIkwiLGYsdV0sWyJaIl1dfWZ1bmN0aW9uIFg3KHQsZSl7dmFyIG49ZW4oZSwidHJhY2siKTt0Lm1heWJlQXBwZW5kQnlDbGFzc05hbWUoSXAudHJhY2ssInBhdGgiKS5zdHlsZXMoQXQoe2Q6ZlAoZSl9LG4pKX1mdW5jdGlvbiBVNyh0LGUpe3ZhciBuPWVuKGUsInNlbGVjdGlvbiIpLHI9SDcoZSksaT10Lm1heWJlQXBwZW5kQnlDbGFzc05hbWUoSXAuc2VsZWN0aW9uLCJwYXRoIikuc3R5bGVzKEF0KHtkOlk3KGUpLGZpbGw6cn0sbikpLGE9aS5tYXliZUFwcGVuZEJ5Q2xhc3NOYW1lKElwLmNsaXBQYXRoLCJwYXRoIikuc3R5bGVzKHtkOlY3KGUpfSkubm9kZSgpO2kuc3R5bGUoImNsaXBQYXRoIixhKX12YXIgcTc9ZnVuY3Rpb24odCl7YXIoZSx0KTtmdW5jdGlvbiBlKG4pe3JldHVybiB0LmNhbGwodGhpcyxuLHt0eXBlOiJjb2xvciIsb3JpZW50YXRpb246Imhvcml6b250YWwiLHNpemU6MzAscmFuZ2U6WzAsMV0sbGVuZ3RoOjIwMCxibG9jazohMSxwYXJ0aXRpb246W10sY29sb3I6WyIjZmZmIiwiIzAwMCJdLHRyYWNrRmlsbDoiI2U1ZTVlNSJ9KXx8dGhpc31yZXR1cm4gZS5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKG4scil7dmFyIGk9RmUocikubWF5YmVBcHBlbmRCeUNsYXNzTmFtZShJcC50cmFja0dyb3VwLCJnIik7WDcoaSxuKTt2YXIgYT1GZShyKS5tYXliZUFwcGVuZEJ5Q2xhc3NOYW1lKElwLnNlbGVjdGlvbkdyb3VwLCJnIik7VTcoYSxuKX0sZX0oYmkpO2Z1bmN0aW9uIEs3KHQpe3JldHVybnttaW46TWF0aC5taW4uYXBwbHkoTWF0aCx0ZShbXSxWKHQubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLnZhbHVlfSkpLCExKSksbWF4Ok1hdGgubWF4LmFwcGx5KE1hdGgsdGUoW10sVih0Lm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZS52YWx1ZX0pKSwhMSkpfX12YXIgUTc9ZnVuY3Rpb24odCl7YXIoZSx0KTtmdW5jdGlvbiBlKG4pe3ZhciByPXQuY2FsbCh0aGlzLG4sVzcpfHx0aGlzO3JldHVybiByLmV2ZW50VG9PZmZzZXRTY2FsZT1uZXcgSmkoe30pLHIuaW5uZXJSaWJib25TY2FsZT1uZXcgSmkoe30pLHIuY2FjaGVMYWJlbEJCb3g9bnVsbCxyLmNhY2hlSGFuZGxlQkJveD1udWxsLHIub25Ib3ZlcmluZz1mdW5jdGlvbihpKXt2YXIgYT1yLmF0dHJpYnV0ZXMsbz1hLmRhdGEscz1hLmJsb2NrO2kuc3RvcFByb3BhZ2F0aW9uKCk7dmFyIGM9ci5nZXRWYWx1ZUJ5Q2FudmFzUG9pbnQoaSk7aWYocyl7dmFyIGw9bFAoby5tYXAoZnVuY3Rpb24oZCl7dmFyIGg9ZC52YWx1ZTtyZXR1cm4gaH0pLGMpLnJhbmdlLHU9ci5nZXRSZWFsU2VsZWN0aW9uKGwpO3Iuc2hvd0luZGljYXRvcigobFswXStsWzFdKS8yLCIiLmNvbmNhdCh1WzBdLCItIikuY29uY2F0KHVbMV0pKSxyLmRpc3BhdGNoSW5kaWNhdGVkKGMsbCl9ZWxzZXt2YXIgZj1yLmdldFRpY2tWYWx1ZShjKTtyLnNob3dJbmRpY2F0b3IoZiwiIi5jb25jYXQoci5nZXRSZWFsVmFsdWUoZikpKSxyLmRpc3BhdGNoSW5kaWNhdGVkKGYpfX0sci5vbkRyYWdTdGFydD1mdW5jdGlvbihpKXtyZXR1cm4gZnVuY3Rpb24oYSl7YS5zdG9wUHJvcGFnYXRpb24oKSxyLmF0dHJpYnV0ZXMuc2xpZGFibGUmJihyLnRhcmdldD1pLHIucHJldlZhbHVlPXIuZ2V0VGlja1ZhbHVlKHIuZ2V0VmFsdWVCeUNhbnZhc1BvaW50KGEpKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHIub25EcmFnZ2luZyksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixyLm9uRHJhZ2dpbmcpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLHIub25EcmFnRW5kKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIixyLm9uRHJhZ0VuZCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsci5vbkRyYWdFbmQpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIixyLm9uRHJhZ0VuZCkpfX0sci5vbkRyYWdnaW5nPWZ1bmN0aW9uKGkpe3ZhciBhPXIudGFyZ2V0O3IudXBkYXRlTW91c2UoKTt2YXIgbz1WKHIuc2VsZWN0aW9uLDIpLHM9b1swXSxjPW9bMV0sbD1yLmdldFRpY2tWYWx1ZShyLmdldFZhbHVlQnlDYW52YXNQb2ludChpKSksdT1sLXIucHJldlZhbHVlO2E9PT0ic3RhcnQiP3MhPT1sJiZyLnVwZGF0ZVNlbGVjdGlvbihsLGMpOmE9PT0iZW5kIj9jIT09bCYmci51cGRhdGVTZWxlY3Rpb24ocyxsKTphPT09InJpYmJvbiImJnUhPT0wJiYoci5wcmV2VmFsdWU9bCxyLnVwZGF0ZVNlbGVjdGlvbih1LHUsITApKX0sci5vbkRyYWdFbmQ9ZnVuY3Rpb24oKXtyLnN0eWxlLmN1cnNvcj0icG9pbnRlciIsZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIixyLm9uRHJhZ2dpbmcpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsci5vbkRyYWdnaW5nKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIixyLm9uRHJhZ0VuZCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLHIub25EcmFnRW5kKX0scn1yZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJoYW5kbGVPZmZzZXRSYXRpbyIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlmSG9yaXpvbnRhbCguNSwuNSl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksZS5wcm90b3R5cGUuZ2V0QkJveD1mdW5jdGlvbigpe3ZhciBuPXRoaXMuYXR0cmlidXRlcyxyPW4ud2lkdGgsaT1uLmhlaWdodDtyZXR1cm4gbmV3IHByKDAsMCxyLGkpfSxlLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24obixyKXt2YXIgaT10aGlzLGE9bi5zaG93TGFiZWw7dGhpcy5yZW5kZXJUaXRsZShGZShyKSk7dmFyIG89dGhpcy5hdmFpbGFibGVTcGFjZSxzPW8ueCxjPW8ueSxsPUZlKHIpLm1heWJlQXBwZW5kQnlDbGFzc05hbWUoSWkuY29udGVudEdyb3VwLCJnIikuc3R5bGVzKHt0cmFuc2Zvcm06InRyYW5zbGF0ZSgiLmNvbmNhdChzLCIsICIpLmNvbmNhdChjLCIpIil9KSx1PWwubWF5YmVBcHBlbmRCeUNsYXNzTmFtZShJaS5sYWJlbEdyb3VwLCJnIikuc3R5bGVzKHt6SW5kZXg6MX0pO1BhKCEhYSx1LGZ1bmN0aW9uKGQpe2kucmVuZGVyTGFiZWwoZCl9KTt2YXIgZj1sLm1heWJlQXBwZW5kQnlDbGFzc05hbWUoSWkucmliYm9uR3JvdXAsImciKS5zdHlsZXMoe3pJbmRleDowfSk7dGhpcy5oYW5kbGVzR3JvdXA9bC5tYXliZUFwcGVuZEJ5Q2xhc3NOYW1lKElpLmhhbmRsZXNHcm91cCwiZyIpLnN0eWxlcyh7ekluZGV4OjJ9KSx0aGlzLnJlbmRlckhhbmRsZXMoKSx0aGlzLnJlbmRlclJpYmJvbihmKSx0aGlzLnJlbmRlckluZGljYXRvcihsKSx0aGlzLmFkanVzdExhYmVsKCksdGhpcy5hZGp1c3RIYW5kbGVzKCl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwicmFuZ2UiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgbj10aGlzLmF0dHJpYnV0ZXMscj1uLmRhdGEsaT1uLmRvbWFpbjtyZXR1cm4gaT97bWluOmlbMF0sbWF4OmlbMV19Oks3KHIpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwicmliYm9uU2NhbGUiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgbj10aGlzLnJhbmdlLHI9bi5taW4saT1uLm1heDtyZXR1cm4gdGhpcy5pbm5lclJpYmJvblNjYWxlLnVwZGF0ZSh7ZG9tYWluOltyLGldLHJhbmdlOlswLDFdfSksdGhpcy5pbm5lclJpYmJvblNjYWxlfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwicmliYm9uUmFuZ2UiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgbj1WKHRoaXMuc2VsZWN0aW9uLDIpLHI9blswXSxpPW5bMV0sYT10aGlzLnJpYmJvblNjYWxlO3JldHVyblthLm1hcChyKSxhLm1hcChpKV19LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJzZWxlY3Rpb24iLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgbj10aGlzLnJhbmdlLHI9bi5taW4saT1uLm1heCxhPXRoaXMuYXR0cmlidXRlcy5kZWZhdWx0VmFsdWUsbz1hPT09dm9pZCAwP1tyLGldOmEscz1WKG8sMiksYz1zWzBdLGw9c1sxXTtyZXR1cm5bYyxsXX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS5pZkhvcml6b250YWw9ZnVuY3Rpb24obixyKXtyZXR1cm4gdnModGhpcy5hdHRyaWJ1dGVzLm9yaWVudGF0aW9uLHR5cGVvZiBuPT0iZnVuY3Rpb24iP24oKTpuLHR5cGVvZiByPT0iZnVuY3Rpb24iP3IoKTpyKX0sZS5wcm90b3R5cGUucmVuZGVyVGl0bGU9ZnVuY3Rpb24obil7dmFyIHI9dGhpcy5hdHRyaWJ1dGVzLGk9ci5zaG93VGl0bGUsYT1yLnRpdGxlVGV4dCxvPXIud2lkdGgscz1yLmhlaWdodCxjPWVuKHRoaXMuYXR0cmlidXRlcywidGl0bGUiKSxsPUF0KEF0KHt9LGMpLHt3aWR0aDpvLGhlaWdodDpzLHRleHQ6YX0pLHU9dGhpcztuLnNlbGVjdEFsbChJaS50aXRsZS5jbGFzcykuZGF0YShpP1thXTpbXSkuam9pbihmdW5jdGlvbihmKXtyZXR1cm4gZi5hcHBlbmQoZnVuY3Rpb24oKXtyZXR1cm4gbmV3IExUKHtzdHlsZTpsfSl9KS5hdHRyKCJjbGFzc05hbWUiLElpLnRpdGxlLm5hbWUpLmVhY2goZnVuY3Rpb24oKXt1LnRpdGxlPXRoaXN9KX0sZnVuY3Rpb24oZil7cmV0dXJuIGYudXBkYXRlKGwpfSxmdW5jdGlvbihmKXtyZXR1cm4gZi5lYWNoKGZ1bmN0aW9uKCl7dS50aXRsZT12b2lkIDB9KS5yZW1vdmUoKX0pfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsImF2YWlsYWJsZVNwYWNlIix7Z2V0OmZ1bmN0aW9uKCl7aWYodGhpcy50aXRsZSlyZXR1cm4gdGhpcy50aXRsZS5nZXRBdmFpbGFibGVTcGFjZSgpO3ZhciBuPXRoaXMuYXR0cmlidXRlcyxyPW4ud2lkdGgsaT1uLmhlaWdodDtyZXR1cm4gbmV3IHByKDAsMCxyLGkpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwibGFiZWxGaXhlZFNwYWNpbmciLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgbj10aGlzLmF0dHJpYnV0ZXMuc2hvd1RpY2s7cmV0dXJuIG4/NTowfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwibGFiZWxQb3NpdGlvbiIse2dldDpmdW5jdGlvbigpe3ZhciBuPXRoaXMuYXR0cmlidXRlcyxyPW4ub3JpZW50YXRpb24saT1uLmxhYmVsRGlyZWN0aW9uLGE9e3ZlcnRpY2FsOntwb3NpdGl2ZToicmlnaHQiLG5lZ2F0aXZlOiJsZWZ0In0saG9yaXpvbnRhbDp7cG9zaXRpdmU6ImJvdHRvbSIsbmVnYXRpdmU6InRvcCJ9fTtyZXR1cm4gYVtyXVtpXX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsImxhYmVsQkJveCIse2dldDpmdW5jdGlvbigpe3ZhciBuLHI9dGhpcy5hdHRyaWJ1dGVzLnNob3dMYWJlbDtpZighcilyZXR1cm4gbmV3IHByKDAsMCwwLDApO2lmKHRoaXMuY2FjaGVMYWJlbEJCb3gpcmV0dXJuIHRoaXMuY2FjaGVMYWJlbEJCb3g7dmFyIGk9KChuPXRoaXMubGFiZWwucXVlcnlTZWxlY3Rvcih6bi5sYWJlbEdyb3VwLmNsYXNzKSk9PT1udWxsfHxuPT09dm9pZCAwP3ZvaWQgMDpuLmNoaWxkcmVuLnNsaWNlKC0xKVswXSkuZ2V0QkJveCgpLGE9aS53aWR0aCxvPWkuaGVpZ2h0O3JldHVybiB0aGlzLmNhY2hlTGFiZWxCQm94PW5ldyBwcigwLDAsYSxvKSx0aGlzLmNhY2hlTGFiZWxCQm94fSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwibGFiZWxTaGFwZSIse2dldDpmdW5jdGlvbigpe3ZhciBuPXRoaXMuYXR0cmlidXRlcyxyPW4uc2hvd0xhYmVsLGk9bi5sYWJlbFNwYWNpbmcsYT1pPT09dm9pZCAwPzA6aTtpZighcilyZXR1cm57d2lkdGg6MCxoZWlnaHQ6MCxzaXplOjAsbGVuZ3RoOjB9O3ZhciBvPXRoaXMubGFiZWxCQm94LHM9by53aWR0aCxjPW8uaGVpZ2h0LGw9dGhpcy5pZkhvcml6b250YWwoYyxzKSthK3RoaXMubGFiZWxGaXhlZFNwYWNpbmcsdT10aGlzLmlmSG9yaXpvbnRhbChzLGMpO3JldHVybnt3aWR0aDpzLGhlaWdodDpjLHNpemU6bCxsZW5ndGg6dX19LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJyaWJib25CQm94Iix7Z2V0OmZ1bmN0aW9uKCl7dmFyIG49dGhpcy5hdHRyaWJ1dGVzLHI9bi5zaG93SGFuZGxlLGk9bi5yaWJib25TaXplLGE9dGhpcy5hdmFpbGFibGVTcGFjZSxvPWEud2lkdGgscz1hLmhlaWdodCxjPXRoaXMubGFiZWxTaGFwZSxsPWMuc2l6ZSx1PWMubGVuZ3RoLGY9Vih0aGlzLmlmSG9yaXpvbnRhbChbcyxvXSxbbyxzXSksMiksZD1mWzBdLGg9ZlsxXSx2PXI/dGhpcy5oYW5kbGVTaGFwZTp7c2l6ZTowLGxlbmd0aDowfSxnPXYuc2l6ZSx5PXYubGVuZ3RoLGI9dGhpcy5oYW5kbGVPZmZzZXRSYXRpbyx4PTAsXz10aGlzLmxhYmVsUG9zaXRpb247aT94PWk6WyJib3R0b20iLCJyaWdodCJdLmluY2x1ZGVzKF8pP3g9TWF0aC5taW4oZC1sLChkLWcpL2IpOmQqKDEtYik+Zz94PU1hdGgubWF4KGQtbCwwKTp4PU1hdGgubWF4KChkLWwtZykvYiwwKTt2YXIgdz1NYXRoLm1heCh5LHUpLE89aC13LEU9Vih0aGlzLmlmSG9yaXpvbnRhbChbTyx4XSxbeCxPXSksMiksTT1FWzBdLGs9RVsxXSxBPVsidG9wIiwibGVmdCJdLmluY2x1ZGVzKF8pP2w6MCxQPVYodGhpcy5pZkhvcml6b250YWwoW3cvMixBXSxbQSx3LzJdKSwyKSxDPVBbMF0sTj1QWzFdO3JldHVybiBuZXcgcHIoQyxOLE0sayl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJyaWJib25TaGFwZSIse2dldDpmdW5jdGlvbigpe3ZhciBuPXRoaXMucmliYm9uQkJveCxyPW4ud2lkdGgsaT1uLmhlaWdodDtyZXR1cm4gdGhpcy5pZkhvcml6b250YWwoe3NpemU6aSxsZW5ndGg6cn0se3NpemU6cixsZW5ndGg6aX0pfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLnJlbmRlclJpYmJvbj1mdW5jdGlvbihuKXt2YXIgcj10aGlzLmF0dHJpYnV0ZXMsaT1yLmRhdGEsYT1yLnR5cGUsbz1yLm9yaWVudGF0aW9uLHM9ci5jb2xvcixjPXIuYmxvY2ssbD1lbih0aGlzLmF0dHJpYnV0ZXMsInJpYmJvbiIpLHU9dGhpcy5yYW5nZSxmPXUubWluLGQ9dS5tYXgsaD10aGlzLnJpYmJvbkJCb3gsdj1oLngsZz1oLnkseT10aGlzLnJpYmJvblNoYXBlLGI9eS5sZW5ndGgseD15LnNpemUsXz1pYyh7dHJhbnNmb3JtOiJ0cmFuc2xhdGUoIi5jb25jYXQodiwiLCAiKS5jb25jYXQoZywiKSIpLGxlbmd0aDpiLHNpemU6eCx0eXBlOmEsb3JpZW50YXRpb246byxjb2xvcjpzLGJsb2NrOmMscGFydGl0aW9uOmkubWFwKGZ1bmN0aW9uKHcpe3JldHVybih3LnZhbHVlLWYpLyhkLWYpfSkscmFuZ2U6dGhpcy5yaWJib25SYW5nZX0sbCk7dGhpcy5yaWJib249bi5tYXliZUFwcGVuZEJ5Q2xhc3NOYW1lKElpLnJpYmJvbixmdW5jdGlvbigpe3JldHVybiBuZXcgcTcoe3N0eWxlOl99KX0pLnVwZGF0ZShfKX0sZS5wcm90b3R5cGUuZ2V0SGFuZGxlQ2xhc3NOYW1lPWZ1bmN0aW9uKG4pe3JldHVybiIiLmNvbmNhdChJaS5wcmVmaXgoIiIuY29uY2F0KG4sIi1oYW5kbGUiKSkpfSxlLnByb3RvdHlwZS5yZW5kZXJIYW5kbGVzPWZ1bmN0aW9uKCl7dmFyIG49dGhpcy5hdHRyaWJ1dGVzLHI9bi5zaG93SGFuZGxlLGk9bi5vcmllbnRhdGlvbixhPWVuKHRoaXMuYXR0cmlidXRlcywiaGFuZGxlIiksbz1WKHRoaXMuc2VsZWN0aW9uLDIpLHM9b1swXSxjPW9bMV0sbD1BdChBdCh7fSxhKSx7b3JpZW50YXRpb246aX0pLHU9YS5zaGFwZSxmPXU9PT12b2lkIDA/InNsaWRlciI6dSxkPWY9PT0iYmFzaWMiP0I3OmVQLGg9dGhpczt0aGlzLmhhbmRsZXNHcm91cC5zZWxlY3RBbGwoSWkuaGFuZGxlLmNsYXNzKS5kYXRhKHI/W3t2YWx1ZTpzLHR5cGU6InN0YXJ0In0se3ZhbHVlOmMsdHlwZToiZW5kIn1dOltdLGZ1bmN0aW9uKHYpe3JldHVybiB2LnR5cGV9KS5qb2luKGZ1bmN0aW9uKHYpe3JldHVybiB2LmFwcGVuZChmdW5jdGlvbigpe3JldHVybiBuZXcgZCh7c3R5bGU6bH0pfSkuYXR0cigiY2xhc3NOYW1lIixmdW5jdGlvbihnKXt2YXIgeT1nLnR5cGU7cmV0dXJuIiIuY29uY2F0KElpLmhhbmRsZSwiICIpLmNvbmNhdChoLmdldEhhbmRsZUNsYXNzTmFtZSh5KSl9KS5lYWNoKGZ1bmN0aW9uKGcpe3ZhciB5PWcudHlwZSxiPWcudmFsdWU7dGhpcy51cGRhdGUoe2xhYmVsVGV4dDpifSk7dmFyIHg9IiIuY29uY2F0KHksIkhhbmRsZSIpO2hbeF09dGhpcyx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIixoLm9uRHJhZ1N0YXJ0KHkpKX0pfSxmdW5jdGlvbih2KXtyZXR1cm4gdi51cGRhdGUobCkuZWFjaChmdW5jdGlvbihnKXt2YXIgeT1nLnZhbHVlO3RoaXMudXBkYXRlKHtsYWJlbFRleHQ6eX0pfSl9LGZ1bmN0aW9uKHYpe3JldHVybiB2LmVhY2goZnVuY3Rpb24oZyl7dmFyIHk9Zy50eXBlLGI9IiIuY29uY2F0KHksIkhhbmRsZSIpO2hbYl09dm9pZCAwfSkucmVtb3ZlKCl9KX0sZS5wcm90b3R5cGUuYWRqdXN0SGFuZGxlcz1mdW5jdGlvbigpe3ZhciBuPVYodGhpcy5zZWxlY3Rpb24sMikscj1uWzBdLGk9blsxXTt0aGlzLnNldEhhbmRsZVBvc2l0aW9uKCJzdGFydCIsciksdGhpcy5zZXRIYW5kbGVQb3NpdGlvbigiZW5kIixpKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJoYW5kbGVCQm94Iix7Z2V0OmZ1bmN0aW9uKCl7aWYodGhpcy5jYWNoZUhhbmRsZUJCb3gpcmV0dXJuIHRoaXMuY2FjaGVIYW5kbGVCQm94O2lmKCF0aGlzLmF0dHJpYnV0ZXMuc2hvd0hhbmRsZSlyZXR1cm4gbmV3IHByKDAsMCwwLDApO3ZhciBuPXRoaXMuc3RhcnRIYW5kbGUuZ2V0QkJveCgpLHI9bi53aWR0aCxpPW4uaGVpZ2h0LGE9dGhpcy5lbmRIYW5kbGUuZ2V0QkJveCgpLG89YS53aWR0aCxzPWEuaGVpZ2h0LGM9VihbTWF0aC5tYXgocixvKSxNYXRoLm1heChpLHMpXSwyKSxsPWNbMF0sdT1jWzFdO3JldHVybiB0aGlzLmNhY2hlSGFuZGxlQkJveD1uZXcgcHIoMCwwLGwsdSksdGhpcy5jYWNoZUhhbmRsZUJCb3h9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJoYW5kbGVTaGFwZSIse2dldDpmdW5jdGlvbigpe3ZhciBuPXRoaXMuaGFuZGxlQkJveCxyPW4ud2lkdGgsaT1uLmhlaWdodCxhPVYodGhpcy5pZkhvcml6b250YWwoW2kscl0sW3IsaV0pLDIpLG89YVswXSxzPWFbMV07cmV0dXJue3dpZHRoOnIsaGVpZ2h0Omksc2l6ZTpvLGxlbmd0aDpzfX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS5zZXRIYW5kbGVQb3NpdGlvbj1mdW5jdGlvbihuLHIpe3ZhciBpPXRoaXMuYXR0cmlidXRlcy5oYW5kbGVGb3JtYXR0ZXIsYT10aGlzLnJpYmJvbkJCb3gsbz1hLngscz1hLnksYz10aGlzLnJpYmJvblNoYXBlLnNpemUsbD10aGlzLmdldE9mZnNldChyKSx1PVYodGhpcy5pZkhvcml6b250YWwoW28rbCxzK2MqdGhpcy5oYW5kbGVPZmZzZXRSYXRpb10sW28rYyp0aGlzLmhhbmRsZU9mZnNldFJhdGlvLHMrbF0pLDIpLGY9dVswXSxkPXVbMV0saD10aGlzLmhhbmRsZXNHcm91cC5zZWxlY3QoIi4iLmNvbmNhdCh0aGlzLmdldEhhbmRsZUNsYXNzTmFtZShuKSkpLm5vZGUoKTtoPT1udWxsfHxoLnVwZGF0ZSh7dHJhbnNmb3JtOiJ0cmFuc2xhdGUoIi5jb25jYXQoZiwiLCAiKS5jb25jYXQoZCwiKSIpLGZvcm1hdHRlcjppfSl9LGUucHJvdG90eXBlLnJlbmRlckluZGljYXRvcj1mdW5jdGlvbihuKXt2YXIgcj1lbih0aGlzLmF0dHJpYnV0ZXMsImluZGljYXRvciIpO3RoaXMuaW5kaWNhdG9yPW4ubWF5YmVBcHBlbmRCeUNsYXNzTmFtZShJaS5pbmRpY2F0b3IsZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGQ3KHt9KX0pLnVwZGF0ZShyKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJsYWJlbERhdGEiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgbj10aGlzLHI9dGhpcy5hdHRyaWJ1dGVzLmRhdGE7cmV0dXJuIHIucmVkdWNlKGZ1bmN0aW9uKGksYSxvLHMpe3ZhciBjLGwsdT0oYz1hPT1udWxsP3ZvaWQgMDphLmlkKSE9PW51bGwmJmMhPT12b2lkIDA/YzpvLnRvU3RyaW5nKCk7aWYoaS5wdXNoKEF0KEF0KHt9LGEpLHtpZDp1LGluZGV4Om8sdHlwZToidmFsdWUiLGxhYmVsOihsPWE9PW51bGw/dm9pZCAwOmEubGFiZWwpIT09bnVsbCYmbCE9PXZvaWQgMD9sOmEudmFsdWUudG9TdHJpbmcoKSx2YWx1ZTpuLnJpYmJvblNjYWxlLm1hcChhLnZhbHVlKX0pKSxvPHMubGVuZ3RoLTEpe3ZhciBmPXNbbysxXSxkPVYoW2EudmFsdWUsZi52YWx1ZV0sMiksaD1kWzBdLHY9ZFsxXSxnPShoK3YpLzI7aS5wdXNoKEF0KEF0KHt9LGEpLHtpZDp1LGluZGV4Om8sdHlwZToicmFuZ2UiLHJhbmdlOltoLHZdLGxhYmVsOltoLHZdLmpvaW4oIn4iKSx2YWx1ZTpuLnJpYmJvblNjYWxlLm1hcChnKX0pKX1yZXR1cm4gaX0sW10pfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwibGFiZWxTdHlsZSIse2dldDpmdW5jdGlvbigpe3ZhciBuPVYoWyJjZW50ZXIiLCJtaWRkbGUiXSwyKSxyPW5bMF0saT1uWzFdLGE9dGhpcy5sYWJlbFBvc2l0aW9uO3JldHVybiBhPT09InRvcCI/aT0iYm90dG9tIjphPT09ImJvdHRvbSI/aT0idG9wIjphPT09ImxlZnQiP3I9ImVuZCI6YT09PSJyaWdodCImJihyPSJzdGFydCIpLHtsYWJlbFRleHRBbGlnbjpyLGxhYmVsVGV4dEJhc2VsaW5lOml9fSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLnJlbmRlckxhYmVsPWZ1bmN0aW9uKG4pe3ZhciByPXRoaXMuYXR0cmlidXRlcyxpPXIuc2hvd1RpY2ssYT1pPT09dm9pZCAwPyExOmksbz1yLmxhYmVsRmlsdGVyLHM9ci5sYWJlbEZvcm1hdHRlcixjPWVuKHRoaXMuYXR0cmlidXRlcywidGljayIpLGw9ZW4odGhpcy5hdHRyaWJ1dGVzLCJsYWJlbCIpLHU9bC5hbGlnbixmPWljKEF0KHtzaG93TGluZTohMSxzaG93R3JpZDohMSxzaG93VGljazphLHR5cGU6ImxpbmVhciIsc3RhcnRQb3M6WzAsMF0sZW5kUG9zOlswLDBdLHRpY2tEaXJlY3Rpb246Im5lZ2F0aXZlIixsYWJlbFRyYW5zZm9ybToicm90YXRlKDApIn0sdGhpcy5sYWJlbFN0eWxlKSxkcyhjLCJ0aWNrIiksZHMobCwibGFiZWwiKSx7ZGF0YTp0aGlzLmxhYmVsRGF0YX0pLGQ9e3RpY2tGaWx0ZXI6ZnVuY3Rpb24odixnLHkpe3JldHVybih2PT1udWxsP3ZvaWQgMDp2LnR5cGUpIT09InZhbHVlIj8hMTpvP28odix2LmluZGV4LHkuZmlsdGVyKGZ1bmN0aW9uKGIpe3JldHVybiBiLnR5cGUhPT0idmFsdWUifSkpOiEwfSxsYWJlbEZpbHRlcjpmdW5jdGlvbih2LGcseSl7cmV0dXJuKHY9PW51bGw/dm9pZCAwOnYudHlwZSkhPT11PyExOm8/byh2LHYuaW5kZXgseS5maWx0ZXIoZnVuY3Rpb24oYil7cmV0dXJuIGIudHlwZT09PXV9KSk6ITB9LGxhYmVsRm9ybWF0dGVyOnN9LGg9QXQoQXQoQXQoe30sZiksZCkse2xhYmVsT3ZlcmxhcDpbe3R5cGU6ImhpZGUifV19KTt0aGlzLmxhYmVsPW4ubWF5YmVBcHBlbmRCeUNsYXNzTmFtZShJaS5sYWJlbCxmdW5jdGlvbigpe3JldHVybiBuZXcgeHcoe3N0eWxlOmh9KX0pLm5vZGUoKSx0aGlzLmxhYmVsLnVwZGF0ZShoLCExKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJsYWJlbEF4aXNTdHlsZSIse2dldDpmdW5jdGlvbigpe3ZhciBuPXRoaXMuYXR0cmlidXRlcyxyPW4uc2hvd1RpY2ssaT1uLmxhYmVsRGlyZWN0aW9uLGE9bi5sYWJlbFNwYWNpbmcsbz1uLnRpY2tMZW5ndGgscz10aGlzLnJpYmJvblNoYXBlLnNpemUsYz10aGlzLmxhYmVsUG9zaXRpb24sbD10aGlzLmxhYmVsRml4ZWRTcGFjaW5nLHU9VihbMCwwLDBdLDMpLGY9dVswXSxkPXVbMV0saD11WzJdLHY9byE9bnVsbD9vOnM7cmV0dXJuIHI/KGg9dixkPWwsaT09PSJwb3NpdGl2ZSI/Yz09PSJyaWdodCI/KGY9dixoPXYpOmM9PT0iYm90dG9tIiYmKGY9aCk6aT09PSJuZWdhdGl2ZSImJihjPT09InRvcCJ8fGM9PT0ibGVmdCIpJiYoZj1zKSk6aT09PSJwb3NpdGl2ZSI/Yz09PSJyaWdodCI/ZD12OmM9PT0iYm90dG9tIiYmKGY9cytsLGQ9YSk6aT09PSJuZWdhdGl2ZSImJihjPT09ImxlZnQifHxjPT09InRvcCIpJiYoZD1hKSx7b2Zmc2V0OmYsc3BhY2luZzpkLHRpY2tMZW5ndGg6aH19LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksZS5wcm90b3R5cGUuYWRqdXN0TGFiZWw9ZnVuY3Rpb24oKXt2YXIgbj10aGlzLmF0dHJpYnV0ZXMuc2hvd0xhYmVsO2lmKG4pe3ZhciByPXRoaXMucmliYm9uQkJveCxpPXIueCxhPXIueSxvPXIud2lkdGgscz1yLmhlaWdodCxjPXRoaXMubGFiZWxBeGlzU3R5bGUsbD1jLm9mZnNldCx1PWMuc3BhY2luZyxmPWMudGlja0xlbmd0aCxkPVYodGhpcy5pZkhvcml6b250YWwoW1tpLGErbF0sW2krbyxhK2xdXSxbW2krbCxhK3NdLFtpK2wsYV1dKSwyKSxoPWRbMF0sdj1kWzFdO3RoaXMubGFiZWwudXBkYXRlKHtzdGFydFBvczpoLGVuZFBvczp2LHRpY2tMZW5ndGg6ZixsYWJlbFNwYWNpbmc6dX0sITEpfX0sZS5wcm90b3R5cGUuYmluZEV2ZW50cz1mdW5jdGlvbigpe3RoaXMuc3R5bGUuY3Vyc29yPSJwb2ludGVyIix0aGlzLnJpYmJvbi5vbigicG9pbnRlcmRvd24iLHRoaXMub25EcmFnU3RhcnQoInJpYmJvbiIpKSx0aGlzLnJpYmJvbi5vbigicG9pbnRlcm1vdmUiLHRoaXMub25Ib3ZlcmluZyksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyb3V0Iix0aGlzLmhpZGVJbmRpY2F0b3IpfSxlLnByb3RvdHlwZS5zaG93SW5kaWNhdG9yPWZ1bmN0aW9uKG4scil7cj09PXZvaWQgMCYmKHI9IiIuY29uY2F0KG4pKTt2YXIgaT10aGlzLmF0dHJpYnV0ZXMuc2hvd0luZGljYXRvcjtpZighaXx8dHlwZW9mIG4hPSJudW1iZXIiKXt0aGlzLmhpZGVJbmRpY2F0b3IoKTtyZXR1cm59dmFyIGE9dGhpcy5yYW5nZSxvPWEubWluLHM9YS5tYXgsYz10aGlzLnJpYmJvbkJCb3gsbD1jLngsdT1jLnksZj1tbihuLG8scyksZD10aGlzLmdldE9mZnNldChmKSxoPXRoaXMuaWZIb3Jpem9udGFsKFtkK2wsdV0sW2wsZCt1XSk7dGhpcy5pbmRpY2F0b3IudXBkYXRlKHt4OmhbMF0seTpoWzFdLHBvc2l0aW9uOnRoaXMuaWZIb3Jpem9udGFsKCJ0b3AiLCJsZWZ0IiksbGFiZWxUZXh0OnJ9KSxNcCh0aGlzLmluZGljYXRvci5ub2RlKCkpfSxlLnByb3RvdHlwZS5oaWRlSW5kaWNhdG9yPWZ1bmN0aW9uKCl7bmwodGhpcy5pbmRpY2F0b3Iubm9kZSgpKX0sZS5wcm90b3R5cGUudXBkYXRlTW91c2U9ZnVuY3Rpb24oKXt0aGlzLmF0dHJpYnV0ZXMuc2xpZGFibGUmJih0aGlzLnN0eWxlLmN1cnNvcj0iZ3JhYmJpbmciKX0sZS5wcm90b3R5cGUuc2V0U2VsZWN0aW9uPWZ1bmN0aW9uKG4scil7dGhpcy51cGRhdGVTZWxlY3Rpb24obixyKX0sZS5wcm90b3R5cGUudXBkYXRlU2VsZWN0aW9uPWZ1bmN0aW9uKG4scixpKXt2YXIgYTtpPT09dm9pZCAwJiYoaT0hMSk7dmFyIG89Vih0aGlzLnNlbGVjdGlvbiwyKSxzPW9bMF0sYz1vWzFdLGw9VihbbixyXSwyKSx1PWxbMF0sZj1sWzFdO2kmJih1Kz1zLGYrPWMpO3ZhciBkPXRoaXMucmFuZ2UsaD1kLm1pbix2PWQubWF4O2E9VihGNyhbaCx2XSxbdSxmXSx0aGlzLnNlbGVjdGlvbiksMiksdT1hWzBdLGY9YVsxXSx0aGlzLnVwZGF0ZSh7ZGVmYXVsdFZhbHVlOlt1LGZdfSksdGhpcy5kaXNwYXRjaFNlbGVjdGlvbigpfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsInN0ZXAiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgbj10aGlzLmF0dHJpYnV0ZXMuc3RlcCxyPW49PT12b2lkIDA/MTpuLGk9dGhpcy5yYW5nZSxhPWkubWluLG89aS5tYXg7cmV0dXJuIEVuKHIpP3htKChvLWEpKkc3LDApOnJ9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksZS5wcm90b3R5cGUuZ2V0VGlja1ZhbHVlPWZ1bmN0aW9uKG4pe3ZhciByPXRoaXMuYXR0cmlidXRlcyxpPXIuZGF0YSxhPXIuYmxvY2ssbz10aGlzLnJhbmdlLm1pbjtyZXR1cm4gYT9sUChpLm1hcChmdW5jdGlvbihzKXt2YXIgYz1zLnZhbHVlO3JldHVybiBjfSksbikudGljazpONyhuLHRoaXMuc3RlcCxvKX0sZS5wcm90b3R5cGUuZ2V0VmFsdWVCeUNhbnZhc1BvaW50PWZ1bmN0aW9uKG4pe3ZhciByPXRoaXMucmFuZ2UsaT1yLm1pbixhPXIubWF4LG89Vih0aGlzLnJpYmJvbi5ub2RlKCkuZ2V0UG9zaXRpb24oKSwyKSxzPW9bMF0sYz1vWzFdLGw9dGhpcy5pZkhvcml6b250YWwocyxjKSx1PXRoaXMuaWZIb3Jpem9udGFsLmFwcGx5KHRoaXMsdGUoW10sVihfbShuKSksITEpKSxmPXUtbCxkPW1uKHRoaXMuZ2V0T2Zmc2V0KGYsITApLGksYSk7cmV0dXJuIGR9LGUucHJvdG90eXBlLmdldE9mZnNldD1mdW5jdGlvbihuLHIpe3I9PT12b2lkIDAmJihyPSExKTt2YXIgaT10aGlzLnJhbmdlLGE9aS5taW4sbz1pLm1heCxzPXRoaXMucmliYm9uU2hhcGUubGVuZ3RoLGM9dGhpcy5ldmVudFRvT2Zmc2V0U2NhbGU7cmV0dXJuIGMudXBkYXRlKHtkb21haW46W2Esb10scmFuZ2U6WzAsc119KSxyP2MuaW52ZXJ0KG4pOmMubWFwKG4pfSxlLnByb3RvdHlwZS5nZXRSZWFsU2VsZWN0aW9uPWZ1bmN0aW9uKG4pe3ZhciByPXRoaXMucmFuZ2UubWF4LGk9VihuLDIpLGE9aVswXSxvPWlbMV07cmV0dXJuIHRoaXMuaWZIb3Jpem9udGFsKFthLG9dLFtyLW8sci1hXSl9LGUucHJvdG90eXBlLmdldFJlYWxWYWx1ZT1mdW5jdGlvbihuKXt2YXIgcj10aGlzLnJhbmdlLm1heDtyZXR1cm4gdGhpcy5pZkhvcml6b250YWwobixyLW4pfSxlLnByb3RvdHlwZS5kaXNwYXRjaFNlbGVjdGlvbj1mdW5jdGlvbigpe3ZhciBuPXRoaXMuZ2V0UmVhbFNlbGVjdGlvbih0aGlzLnNlbGVjdGlvbikscj1uZXcgTm4oInZhbHVlY2hhbmdlIix7ZGV0YWlsOnt2YWx1ZTpufX0pO3RoaXMuZGlzcGF0Y2hFdmVudChyKX0sZS5wcm90b3R5cGUuZGlzcGF0Y2hJbmRpY2F0ZWQ9ZnVuY3Rpb24obixyKXt2YXIgaT10aGlzLGE9dGhpcy5yYW5nZS5tYXgsbz10aGlzLmlmSG9yaXpvbnRhbChmdW5jdGlvbigpe3JldHVybnt2YWx1ZTpuLHJhbmdlOnJ9fSxmdW5jdGlvbigpe3JldHVybnt2YWx1ZTphLW4scmFuZ2U6cj9pLmdldFJlYWxTZWxlY3Rpb24ocik6dm9pZCAwfX0pLHM9bmV3IE5uKCJpbmRpY2F0ZSIse2RldGFpbDpvfSk7dGhpcy5kaXNwYXRjaEV2ZW50KHMpfSxlfShiaSk7Y2xhc3MgRHAgZXh0ZW5kcyBMcHtnZXREZWZhdWx0T3B0aW9ucygpe3JldHVybntyYW5nZTpbMF0sZG9tYWluOlswLDFdLHVua25vd246dm9pZCAwLHRpY2tDb3VudDo1LHRpY2tNZXRob2Q6Z3V9fW1hcChlKXtjb25zdFtuXT10aGlzLm9wdGlvbnMucmFuZ2U7cmV0dXJuIG4hPT12b2lkIDA/bjp0aGlzLm9wdGlvbnMudW5rbm93bn1pbnZlcnQoZSl7Y29uc3Rbbl09dGhpcy5vcHRpb25zLnJhbmdlO3JldHVybiBlPT09biYmbiE9PXZvaWQgMD90aGlzLm9wdGlvbnMuZG9tYWluOltdfWdldFRpY2tzKCl7Y29uc3R7dGlja01ldGhvZDplLGRvbWFpbjpuLHRpY2tDb3VudDpyfT10aGlzLm9wdGlvbnMsW2ksYV09bjtyZXR1cm4hVm4oaSl8fCFWbihhKT9bXTplKGksYSxyKX1jbG9uZSgpe3JldHVybiBuZXcgRHAodGhpcy5vcHRpb25zKX19Y2xhc3MgcmQgZXh0ZW5kcyBMcHtnZXREZWZhdWx0T3B0aW9ucygpe3JldHVybntkb21haW46Wy41XSxyYW5nZTpbMCwxXX19Y29uc3RydWN0b3IoZSl7c3VwZXIoZSl9bWFwKGUpe2lmKCF2bShlKSlyZXR1cm4gdGhpcy5vcHRpb25zLnVua25vd247Y29uc3Qgbj1fdyh0aGlzLnRocmVzaG9sZHMsZSwwLHRoaXMubik7cmV0dXJuIHRoaXMub3B0aW9ucy5yYW5nZVtuXX1pbnZlcnQoZSl7Y29uc3R7cmFuZ2U6bn09dGhpcy5vcHRpb25zLHI9bi5pbmRleE9mKGUpLGk9dGhpcy50aHJlc2hvbGRzO3JldHVybltpW3ItMV0saVtyXV19Y2xvbmUoKXtyZXR1cm4gbmV3IHJkKHRoaXMub3B0aW9ucyl9cmVzY2FsZSgpe2NvbnN0e2RvbWFpbjplLHJhbmdlOm59PXRoaXMub3B0aW9uczt0aGlzLm49TWF0aC5taW4oZS5sZW5ndGgsbi5sZW5ndGgtMSksdGhpcy50aHJlc2hvbGRzPWV9fWZ1bmN0aW9uIGpwKHQpe3JldHVybiBnZSh0KT8wOnFmKHQpP3QubGVuZ3RoOk9iamVjdC5rZXlzKHQpLmxlbmd0aH12YXIgSjc9ZnVuY3Rpb24odCxlKXtpZighcWYodCkpcmV0dXJuLTE7dmFyIG49QXJyYXkucHJvdG90eXBlLmluZGV4T2Y7aWYobilyZXR1cm4gbi5jYWxsKHQsZSk7Zm9yKHZhciByPS0xLGk9MDtpPHQubGVuZ3RoO2krKylpZih0W2ldPT09ZSl7cj1pO2JyZWFrfXJldHVybiByfSxkUD1KNztmdW5jdGlvbiBGcCh0KXtyZXR1cm4gTWF0aC5hYnModCk8MWUtMTQ/dDpwYXJzZUZsb2F0KHQudG9GaXhlZCgxNCkpfWNvbnN0IHR6PVsxLDUsMiwyLjUsNCwzXSx2b3Q9bnVsbCxoUD1OdW1iZXIuRVBTSUxPTioxMDA7ZnVuY3Rpb24gZXoodCxlKXtyZXR1cm4odCVlK2UpJWV9ZnVuY3Rpb24gbnoodCl7cmV0dXJuIE1hdGgucm91bmQodCoxZTEyKS8xZTEyfWZ1bmN0aW9uIHJ6KHQsZSxuLHIsaSxhKXtjb25zdCBvPWpwKGUpLHM9ZFAoZSx0KTtsZXQgYz0wO2NvbnN0IGw9ZXoocixhKTtyZXR1cm4obDxoUHx8YS1sPGhQKSYmcjw9MCYmaT49MCYmKGM9MSksMS1zLyhvLTEpLW4rY31mdW5jdGlvbiBpeih0LGUsbil7Y29uc3Qgcj1qcChlKTtyZXR1cm4gMS1kUChlLHQpLyhyLTEpLW4rMX1mdW5jdGlvbiBheih0LGUsbixyLGksYSl7Y29uc3Qgbz0odC0xKS8oYS1pKSxzPShlLTEpLyhNYXRoLm1heChhLHIpLU1hdGgubWluKG4saSkpO3JldHVybiAyLU1hdGgubWF4KG8vcyxzL28pfWZ1bmN0aW9uIG96KHQsZSl7cmV0dXJuIHQ+PWU/Mi0odC0xKS8oZS0xKToxfWZ1bmN0aW9uIHN6KHQsZSxuLHIpe2NvbnN0IGk9ZS10O3JldHVybiAxLS41Kih0aShlLXIsMikrdGkodC1uLDIpKS90aSguMSppLDIpfWZ1bmN0aW9uIGN6KHQsZSxuKXtjb25zdCByPWUtdDtpZihuPnIpe2NvbnN0IGk9KG4tcikvMjtyZXR1cm4gMS10aShpLDIpL3RpKC4xKnIsMil9cmV0dXJuIDF9ZnVuY3Rpb24gbHooKXtyZXR1cm4gMX1jb25zdCBUdz0odCxlLG49NSxyPSEwLGk9dHosYT1bLjI1LC4yLC41LC4wNV0pPT57Y29uc3Qgbz1uPDA/MDpNYXRoLnJvdW5kKG4pO2lmKE51bWJlci5pc05hTih0KXx8TnVtYmVyLmlzTmFOKGUpfHx0eXBlb2YgdCE9Im51bWJlciJ8fHR5cGVvZiBlIT0ibnVtYmVyInx8IW8pcmV0dXJuW107aWYoZS10PDFlLTE1fHxvPT09MSlyZXR1cm5bdF07Y29uc3Qgcz17c2NvcmU6LTIsbG1pbjowLGxtYXg6MCxsc3RlcDowfTtsZXQgYz0xO2Zvcig7YzwxLzA7KXtmb3IobGV0IHY9MDt2PGkubGVuZ3RoO3YrPTEpe2NvbnN0IGc9aVt2XSx5PWl6KGcsaSxjKTtpZihhWzBdKnkrYVsxXSthWzJdK2FbM108cy5zY29yZSl7Yz0xLzA7YnJlYWt9bGV0IGI9Mjtmb3IoO2I8MS8wOyl7Y29uc3QgeD1veihiLG8pO2lmKGFbMF0qeSthWzFdK2FbMl0qeCthWzNdPHMuc2NvcmUpYnJlYWs7Y29uc3QgXz0oZS10KS8oYisxKS9jL2c7bGV0IHc9TWF0aC5jZWlsKE1hdGgubG9nMTAoXykpO2Zvcig7dzwxLzA7KXtjb25zdCBPPWMqZyp0aSgxMCx3KSxFPWN6KHQsZSxPKihiLTEpKTtpZihhWzBdKnkrYVsxXSpFK2FbMl0qeCthWzNdPHMuc2NvcmUpYnJlYWs7Y29uc3QgTT1NYXRoLmZsb29yKGUvTykqYy0oYi0xKSpjLGs9TWF0aC5jZWlsKHQvTykqYztpZihNPD1rKXtjb25zdCBBPWstTTtmb3IobGV0IFA9MDtQPD1BO1ArPTEpe2NvbnN0IE49KE0rUCkqKE8vYyksTD1OK08qKGItMSksUj1PLEk9cnooZyxpLGMsTixMLFIpLEQ9c3oodCxlLE4sTCksRz1heihiLG8sdCxlLE4sTCksRj1seigpLFc9YVswXSpJK2FbMV0qRCthWzJdKkcrYVszXSpGO1c+cy5zY29yZSYmKCFyfHxOPD10JiZMPj1lKSYmKHMubG1pbj1OLHMubG1heD1MLHMubHN0ZXA9UixzLnNjb3JlPVcpfX13Kz0xfWIrPTF9fWMrPTF9Y29uc3QgbD1GcChzLmxtYXgpLHU9RnAocy5sbWluKSxmPUZwKHMubHN0ZXApLGQ9TWF0aC5mbG9vcihueigobC11KS9mKSkrMSxoPW5ldyBBcnJheShkKTtoWzBdPUZwKHUpO2ZvcihsZXQgdj0xO3Y8ZDt2Kz0xKWhbdl09RnAoaFt2LTFdK2YpO3JldHVybiBofTtjbGFzcyB3bSBleHRlbmRzIHJke2dldERlZmF1bHRPcHRpb25zKCl7cmV0dXJue2RvbWFpbjpbMCwxXSxyYW5nZTpbLjVdLG5pY2U6ITEsdGlja0NvdW50OjUsdGlja01ldGhvZDpUd319Y29uc3RydWN0b3IoZSl7c3VwZXIoZSl9bmljZSgpe2NvbnN0e25pY2U6ZX09dGhpcy5vcHRpb25zO2lmKGUpe2NvbnN0W24scixpXT10aGlzLmdldFRpY2tNZXRob2RPcHRpb25zKCk7dGhpcy5vcHRpb25zLmRvbWFpbj1qVChuLHIsaSl9fWdldFRpY2tzKCl7Y29uc3R7dGlja01ldGhvZDplfT10aGlzLm9wdGlvbnMsW24scixpXT10aGlzLmdldFRpY2tNZXRob2RPcHRpb25zKCk7cmV0dXJuIGUobixyLGkpfWdldFRpY2tNZXRob2RPcHRpb25zKCl7Y29uc3R7ZG9tYWluOmUsdGlja0NvdW50Om59PXRoaXMub3B0aW9ucyxyPWVbMF0saT1lW2UubGVuZ3RoLTFdO3JldHVybltyLGksbl19cmVzY2FsZSgpe3RoaXMubmljZSgpO2NvbnN0e3JhbmdlOmUsZG9tYWluOm59PXRoaXMub3B0aW9ucyxbcixpXT1uO3RoaXMubj1lLmxlbmd0aC0xLHRoaXMudGhyZXNob2xkcz1uZXcgQXJyYXkodGhpcy5uKTtmb3IobGV0IGE9MDthPHRoaXMubjthKz0xKXRoaXMudGhyZXNob2xkc1thXT0oKGErMSkqaS0oYS10aGlzLm4pKnIpLyh0aGlzLm4rMSl9aW52ZXJ0KGUpe2NvbnN0W24scl09c3VwZXIuaW52ZXJ0KGUpLFtpLGFdPXRoaXMub3B0aW9ucy5kb21haW47cmV0dXJuIG49PT12b2lkIDAmJnI9PT12b2lkIDA/W24scl06W258fGkscnx8YV19Z2V0VGhyZXNob2xkcygpe3JldHVybiB0aGlzLnRocmVzaG9sZHN9Y2xvbmUoKXtyZXR1cm4gbmV3IHdtKHRoaXMub3B0aW9ucyl9fWZ1bmN0aW9uIHV6KHQsZSl7Y29uc3Qgbj10Lmxlbmd0aDtpZighbilyZXR1cm47aWYobjwyKXJldHVybiB0W24tMV07Y29uc3Qgcj0obi0xKSplLGk9TWF0aC5mbG9vcihyKSxhPXRbaV0sbz10W2krMV07cmV0dXJuIGErKG8tYSkqKHItaSl9ZnVuY3Rpb24gZnoodCxlLG49ITEpe2NvbnN0IHI9dDtufHxyLnNvcnQoKGEsbyk9PmEtbyk7Y29uc3QgaT1bXTtmb3IobGV0IGE9MTthPGU7YSs9MSlpLnB1c2godXoocixhL2UpKTtyZXR1cm4gaX1jbGFzcyBPbSBleHRlbmRzIHJke2dldERlZmF1bHRPcHRpb25zKCl7cmV0dXJue2RvbWFpbjpbXSxyYW5nZTpbXSx0aWNrQ291bnQ6NSx1bmtub3duOnZvaWQgMCx0aWNrTWV0aG9kOlR3fX1jb25zdHJ1Y3RvcihlKXtzdXBlcihlKX1yZXNjYWxlKCl7Y29uc3R7ZG9tYWluOmUscmFuZ2U6bn09dGhpcy5vcHRpb25zO3RoaXMubj1uLmxlbmd0aC0xLHRoaXMudGhyZXNob2xkcz1meihlLHRoaXMubisxLCExKX1pbnZlcnQoZSl7Y29uc3RbbixyXT1zdXBlci5pbnZlcnQoZSkse2RvbWFpbjppfT10aGlzLm9wdGlvbnMsYT1pWzBdLG89aVtpLmxlbmd0aC0xXTtyZXR1cm4gbj09PXZvaWQgMCYmcj09PXZvaWQgMD9bbixyXTpbbnx8YSxyfHxvXX1nZXRUaHJlc2hvbGRzKCl7cmV0dXJuIHRoaXMudGhyZXNob2xkc31jbG9uZSgpe3JldHVybiBuZXcgT20odGhpcy5vcHRpb25zKX1nZXRUaWNrcygpe2NvbnN0e3RpY2tDb3VudDplLGRvbWFpbjpuLHRpY2tNZXRob2Q6cn09dGhpcy5vcHRpb25zLGk9bi5sZW5ndGgtMSxhPW5bMF0sbz1uW2ldO3JldHVybiByKGEsbyxlKX19dmFyIGR6PWZ1bmN0aW9uKHQsZSl7dmFyIG49e307Zm9yKHZhciByIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscikmJmUuaW5kZXhPZihyKTwwJiYobltyXT10W3JdKTtpZih0IT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIGk9MCxyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCk7aTxyLmxlbmd0aDtpKyspZS5pbmRleE9mKHJbaV0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh0LHJbaV0pJiYobltyW2ldXT10W3JbaV1dKTtyZXR1cm4gbn07ZnVuY3Rpb24gaHoodCxlLG4pe3JldHVybiB0LnNpemU9ZSxIQihuKT90LmhlaWdodD1lOnQud2lkdGg9ZSx0fWZ1bmN0aW9uIHB6KHQsZSxuKXtjb25zdHtzaXplOnJ9PWUsaT1aVCh0LGUsbik7cmV0dXJuIGh6KGkscixpLm9yaWVudGF0aW9uKX1mdW5jdGlvbiB2eih0KXtyZXR1cm4gZT0+KHt2YWx1ZTplL3QsbGFiZWw6U3RyaW5nKGUpfSl9ZnVuY3Rpb24gZ3oodCxlLG4scixpKXtjb25zdCBhPWUudGhyZXNob2xkcyxvPXZ6KHIpO3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2NvbG9yOmksZGF0YTpbbiwuLi5hLHJdLm1hcChvKX0pfWZ1bmN0aW9uIHl6KHQsZSxuKXtjb25zdCBpPVstMS8wLC4uLmUudGhyZXNob2xkcywxLzBdLm1hcCgoYSxvKT0+KHt2YWx1ZTpvLGxhYmVsOmF9KSk7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7ZGF0YTppLGNvbG9yOm4sbGFiZWxGaWx0ZXI6KGEsbyk9Pm8+MCYmbzxpLmxlbmd0aC0xfSl9ZnVuY3Rpb24gUHcodCl7Y29uc3R7ZG9tYWluOmV9PXQuZ2V0T3B0aW9ucygpLFtuLHJdPVtlWzBdLEJBKGUpXTtyZXR1cm5bbixyXX1mdW5jdGlvbiBteih0LGUpe2NvbnN0IG49dC5nZXRPcHRpb25zKCkscj10LmNsb25lKCk7cmV0dXJuIHIudXBkYXRlKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxuKSx7cmFuZ2U6W29zKGUpLnRvU3RyaW5nKCldfSkpLHJ9ZnVuY3Rpb24gYnoodCxlLG4scixpLGEpe2NvbnN0e2xlbmd0aDpvfT10LHM9bnx8cixjPWkuY29sb3I/YS5sZWdlbmRDb250aW51b3VzLnJpYmJvbkZpbGx8fCJibGFjayI6YS5jb2xvcixsPWV8fG16KHMsYyksW3UsZl09UHcobCksW2QsaF09UHcoW2UsbixyXS5maWx0ZXIodj0+diE9PXZvaWQgMCkuZmluZCh2PT4hKHYgaW5zdGFuY2VvZiBEcCkpKTtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtkb21haW46W2QsaF0sZGF0YTpsLmdldFRpY2tzKCkubWFwKHY9Pih7dmFsdWU6dn0pKSxjb2xvcjpuZXcgQXJyYXkoTWF0aC5mbG9vcihvKSkuZmlsbCgwKS5tYXAoKHYsZyk9Pntjb25zdCB5PShmLXUpLyhvLTEpKmcrdSxiPWwubWFwKHkpfHxjLHg9cj9yLm1hcCh5KToxO3JldHVybiBiLnJlcGxhY2UoL3JnYlthXSpcKChbXGRdezEsM30pICosICooW1xkXXsxLDN9KSAqLCAqKFtcZF17MSwzfSlbXFNcc10qXCkvLChfLHcsTyxFKT0+YHJnYmEoJHt3fSwgJHtPfSwgJHtFfSwgJHt4fSlgKX0pfSl9ZnVuY3Rpb24geHoodCxlLG4scixpLGEpe2NvbnN0IG89aHModCwiY29sb3IiKSxzPXB6KG4scixpKTtpZihvIGluc3RhbmNlb2YgcmQpe2NvbnN0e3JhbmdlOnV9PW8uZ2V0T3B0aW9ucygpLFtmLGRdPVB3KG8pO3JldHVybiBvIGluc3RhbmNlb2Ygd218fG8gaW5zdGFuY2VvZiBPbT9neihzLG8sZixkLHUpOnl6KHMsbyx1KX1jb25zdCBjPWhzKHQsInNpemUiKSxsPWhzKHQsIm9wYWNpdHkiKTtyZXR1cm4gYnoocyxvLGMsbCxlLGEpfWNvbnN0IGFsPXQ9Pntjb25zdHtsYWJlbEZvcm1hdHRlcjplLGxheW91dDpuLG9yZGVyOnIsb3JpZW50YXRpb246aSxwb3NpdGlvbjphLHNpemU6byx0aXRsZTpzLHN0eWxlOmMsY3Jvc3NQYWRkaW5nOmwscGFkZGluZzp1fT10LGY9ZHoodCxbImxhYmVsRm9ybWF0dGVyIiwibGF5b3V0Iiwib3JkZXIiLCJvcmllbnRhdGlvbiIsInBvc2l0aW9uIiwic2l6ZSIsInRpdGxlIiwic3R5bGUiLCJjcm9zc1BhZGRpbmciLCJwYWRkaW5nIl0pO3JldHVybih7c2NhbGVzOmQsdmFsdWU6aCx0aGVtZTp2LHNjYWxlOmd9KT0+e2NvbnN0e2Jib3g6eX09aCx7eDpiLHk6eCx3aWR0aDpfLGhlaWdodDp3fT15LE89R1QoYSxuKSx7bGVnZW5kQ29udGludW91czpFPXt9fT12LE09Ym0oT2JqZWN0LmFzc2lnbih7fSxFLE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7dGl0bGVUZXh0Om1tKHMpLGxhYmVsQWxpZ246InZhbHVlIixsYWJlbEZvcm1hdHRlcjp0eXBlb2YgZT09InN0cmluZyI/QT0+ZWwoZSkoQS5sYWJlbCk6ZX0seHooZCxnLGgsdCxhbCx2KSksYyksZikpLGs9bmV3ICRUKHtzdHlsZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe3g6Yix5Ongsd2lkdGg6XyxoZWlnaHQ6d30sTykse3N1Yk9wdGlvbnM6TX0pfSk7cmV0dXJuIGsuYXBwZW5kQ2hpbGQobmV3IFE3KHtjbGFzc05hbWU6ImxlZ2VuZC1jb250aW51b3VzIixzdHlsZTpNfSkpLGt9fTthbC5wcm9wcz17ZGVmYXVsdFBvc2l0aW9uOiJ0b3AiLGRlZmF1bHRPcmllbnRhdGlvbjoidmVydGljYWwiLGRlZmF1bHRPcmRlcjoxLGRlZmF1bHRTaXplOjYwLGRlZmF1bHRMZW5ndGg6MjAwLGRlZmF1bHRMZWdlbmRTaXplOjYwLGRlZmF1bHRQYWRkaW5nOlsyMCwxMF0sZGVmYXVsdENyb3NzUGFkZGluZzpbMTIsMTJdfTtjb25zdCBwUD10PT4oLi4uZSk9PmFsKE9iamVjdC5hc3NpZ24oe30se2Jsb2NrOiEwfSx0KSkoLi4uZSk7cFAucHJvcHM9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGFsLnByb3BzKSx7ZGVmYXVsdFBvc2l0aW9uOiJ0b3AiLGRlZmF1bHRPcmllbnRhdGlvbjoiaG9yaXpvbnRhbCJ9KTtjb25zdCBDdz10PT5lPT57Y29uc3R7c2NhbGVzOm59PWUscj1ocyhuLCJzaXplIik7cmV0dXJuIGFsKE9iamVjdC5hc3NpZ24oe30se3R5cGU6InNpemUiLGRhdGE6ci5nZXRUaWNrcygpLm1hcCgoaSxhKT0+KHt2YWx1ZTppLGxhYmVsOlN0cmluZyhpKX0pKX0sdCkpKGUpfTtDdy5wcm9wcz1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sYWwucHJvcHMpLHtkZWZhdWx0UG9zaXRpb246InRvcCIsZGVmYXVsdE9yaWVudGF0aW9uOiJob3Jpem9udGFsIn0pO2NvbnN0IHZQPXQ9PkN3KE9iamVjdC5hc3NpZ24oe30se2Jsb2NrOiEwfSx0KSk7dlAucHJvcHM9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGFsLnByb3BzKSx7ZGVmYXVsdFBvc2l0aW9uOiJ0b3AiLGRlZmF1bHRPcmllbnRhdGlvbjoiaG9yaXpvbnRhbCJ9KTt2YXIgX3o9ZnVuY3Rpb24odCxlKXt2YXIgbj17fTtmb3IodmFyIHIgaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKSYmZS5pbmRleE9mKHIpPDAmJihuW3JdPXRbcl0pO2lmKHQhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgaT0wLHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTtpPHIubGVuZ3RoO2krKyllLmluZGV4T2YocltpXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHQscltpXSkmJihuW3JbaV1dPXRbcltpXV0pO3JldHVybiBufTtjb25zdCBnUD0oe3N0YXRpYzp0PSExfT17fSk9PmU9Pntjb25zdHt3aWR0aDpuLGhlaWdodDpyLGRlcHRoOmkscGFkZGluZ0xlZnQ6YSxwYWRkaW5nUmlnaHQ6byxwYWRkaW5nVG9wOnMscGFkZGluZ0JvdHRvbTpjLHBhZGRpbmc6bCxpbnNldDp1LGluc2V0TGVmdDpmLGluc2V0VG9wOmQsaW5zZXRSaWdodDpoLGluc2V0Qm90dG9tOnYsbWFyZ2luOmcsbWFyZ2luTGVmdDp5LG1hcmdpbkJvdHRvbTpiLG1hcmdpblRvcDp4LG1hcmdpblJpZ2h0Ol8sZGF0YTp3LGNvb3JkaW5hdGU6Tyx0aGVtZTpFLGNvbXBvbmVudDpNLGludGVyYWN0aW9uOmsseDpBLHk6UCx6OkMsa2V5Ok4sZnJhbWU6TCxsYWJlbFRyYW5zZm9ybTpSLHBhcmVudEtleTpJLGNsaXA6RCx2aWV3U3R5bGU6Ryx0aXRsZTpGfT1lLFc9X3ooZSxbIndpZHRoIiwiaGVpZ2h0IiwiZGVwdGgiLCJwYWRkaW5nTGVmdCIsInBhZGRpbmdSaWdodCIsInBhZGRpbmdUb3AiLCJwYWRkaW5nQm90dG9tIiwicGFkZGluZyIsImluc2V0IiwiaW5zZXRMZWZ0IiwiaW5zZXRUb3AiLCJpbnNldFJpZ2h0IiwiaW5zZXRCb3R0b20iLCJtYXJnaW4iLCJtYXJnaW5MZWZ0IiwibWFyZ2luQm90dG9tIiwibWFyZ2luVG9wIiwibWFyZ2luUmlnaHQiLCJkYXRhIiwiY29vcmRpbmF0ZSIsInRoZW1lIiwiY29tcG9uZW50IiwiaW50ZXJhY3Rpb24iLCJ4IiwieSIsInoiLCJrZXkiLCJmcmFtZSIsImxhYmVsVHJhbnNmb3JtIiwicGFyZW50S2V5IiwiY2xpcCIsInZpZXdTdHlsZSIsInRpdGxlIl0pO3JldHVybltPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe3R5cGU6InN0YW5kYXJkVmlldyIseDpBLHk6UCx6OkMsa2V5Ok4sd2lkdGg6bixoZWlnaHQ6cixkZXB0aDppLHBhZGRpbmc6bCxwYWRkaW5nTGVmdDphLHBhZGRpbmdSaWdodDpvLHBhZGRpbmdUb3A6cyxpbnNldDp1LGluc2V0TGVmdDpmLGluc2V0VG9wOmQsaW5zZXRSaWdodDpoLGluc2V0Qm90dG9tOnYscGFkZGluZ0JvdHRvbTpjLHRoZW1lOkUsY29vcmRpbmF0ZTpPLGNvbXBvbmVudDpNLGludGVyYWN0aW9uOmssZnJhbWU6TCxsYWJlbFRyYW5zZm9ybTpSLG1hcmdpbjpnLG1hcmdpbkxlZnQ6eSxtYXJnaW5Cb3R0b206YixtYXJnaW5Ub3A6eCxtYXJnaW5SaWdodDpfLHBhcmVudEtleTpJLGNsaXA6RCxzdHlsZTpHfSwhdCYme3RpdGxlOkZ9KSx7bWFya3M6W09iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LFcpLHtrZXk6YCR7Tn0tMGAsZGF0YTp3fSksdCYme3RpdGxlOkZ9KV19KV19O2dQLnByb3BzPXt9O3ZhciB3ej1mdW5jdGlvbih0LGUpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiZlLmluZGV4T2Yocik8MCYmKG5bcl09dFtyXSk7aWYodCE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBpPTAscj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2k8ci5sZW5ndGg7aSsrKWUuaW5kZXhPZihyW2ldKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodCxyW2ldKSYmKG5bcltpXV09dFtyW2ldXSk7cmV0dXJuIG59O2Z1bmN0aW9uIEJwKHQpe3JldHVybihlLC4uLm4pPT5tdCh7fSx0KGUsLi4ubiksZSl9ZnVuY3Rpb24geXUodCl7cmV0dXJuKGUsLi4ubik9Pm10KHt9LGUsdChlLC4uLm4pKX1mdW5jdGlvbiBPeih0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIERhdGU/ITE6dHlwZW9mIHQ9PSJvYmplY3QifWZ1bmN0aW9uIEx3KHQsZSl7aWYoIXQpcmV0dXJuIGU7aWYoQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gdDtpZihPeih0KSl7Y29uc3R7dmFsdWU6bj1lfT10LHI9d3oodCxbInZhbHVlIl0pO3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30scikse3ZhbHVlOm59KX1yZXR1cm4gdH12YXIgUnc9ZnVuY3Rpb24odCxlKXt2YXIgbj17fTtmb3IodmFyIHIgaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKSYmZS5pbmRleE9mKHIpPDAmJihuW3JdPXRbcl0pO2lmKHQhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgaT0wLHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTtpPHIubGVuZ3RoO2krKyllLmluZGV4T2YocltpXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHQscltpXSkmJihuW3JbaV1dPXRbcltpXV0pO3JldHVybiBufTtjb25zdCB5UD0oKT0+dD0+e2NvbnN0e2NoaWxkcmVuOmV9PXQsbj1Sdyh0LFsiY2hpbGRyZW4iXSk7aWYoIUFycmF5LmlzQXJyYXkoZSkpcmV0dXJuW107Y29uc3R7ZGF0YTpyLHNjYWxlOmk9e30sYXhpczphPXt9LGxlZ2VuZDpvPXt9LGVuY29kZTpzPXt9LHRyYW5zZm9ybTpjPVtdfT1uLGw9UncobixbImRhdGEiLCJzY2FsZSIsImF4aXMiLCJsZWdlbmQiLCJlbmNvZGUiLCJ0cmFuc2Zvcm0iXSksdT1lLm1hcChmPT57dmFye2RhdGE6ZCxzY2FsZTpoPXt9LGF4aXM6dj17fSxsZWdlbmQ6Zz17fSxlbmNvZGU6eT17fSx0cmFuc2Zvcm06Yj1bXX09Zix4PVJ3KGYsWyJkYXRhIiwic2NhbGUiLCJheGlzIiwibGVnZW5kIiwiZW5jb2RlIiwidHJhbnNmb3JtIl0pO3JldHVybiBPYmplY3QuYXNzaWduKHtkYXRhOkx3KGQsciksc2NhbGU6bXQoe30saSxoKSxlbmNvZGU6bXQoe30scyx5KSx0cmFuc2Zvcm06Wy4uLmMsLi4uYl0sYXhpczp2JiZhP210KHt9LGEsdik6ITEsbGVnZW5kOmcmJm8/bXQoe30sbyxnKTohMX0seCl9KTtyZXR1cm5bT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGwpLHttYXJrczp1LHR5cGU6InN0YW5kYXJkVmlldyJ9KV19O3lQLnByb3BzPXt9O2Z1bmN0aW9uIE1yKFt0LGVdLFtuLHJdKXtyZXR1cm5bdC1uLGUtcl19ZnVuY3Rpb24gU20oW3QsZV0sW24scl0pe3JldHVyblt0K24sZStyXX1mdW5jdGlvbiB3cihbdCxlXSxbbixyXSl7cmV0dXJuIE1hdGguc3FydChNYXRoLnBvdyh0LW4sMikrTWF0aC5wb3coZS1yLDIpKX1mdW5jdGlvbiB3byhbdCxlXSl7cmV0dXJuIE1hdGguYXRhbjIoZSx0KX1mdW5jdGlvbiBpZChbdCxlXSl7cmV0dXJuIHdvKFt0LGVdKStNYXRoLlBJLzJ9ZnVuY3Rpb24gbVAodCxlKXtjb25zdCBuPXdvKHQpLHI9d28oZSk7cmV0dXJuIG48cj9yLW46TWF0aC5QSSoyLShuLXIpfWZ1bmN0aW9uIE53KHQpe2xldCBlPTEvMCxuPS0xLzAscj0xLzAsaT0tMS8wO2Zvcihjb25zdFtzLGNdb2YgdCllPU1hdGgubWluKHMsZSksbj1NYXRoLm1heChzLG4pLHI9TWF0aC5taW4oYyxyKSxpPU1hdGgubWF4KGMsaSk7Y29uc3QgYT1uLWUsbz1pLXI7cmV0dXJuW2UscixhLG9dfWZ1bmN0aW9uIGJQKFt0LGVdLFtuLHJdKXtyZXR1cm5bKHQrbikvMiwoZStyKS8yXX1mdW5jdGlvbiBsZSh0LGUpe2Zvcihjb25zdFtuLHJdb2YgT2JqZWN0LmVudHJpZXMoZSkpdC5zdHlsZShuLHIpfWZ1bmN0aW9uIFN6KHQsZSl7cmV0dXJuIGUuZm9yRWFjaCgobixyKT0+cj09PTA/dC5tb3ZlVG8oblswXSxuWzFdKTp0LmxpbmVUbyhuWzBdLG5bMV0pKSx0LmNsb3NlUGF0aCgpLHR9ZnVuY3Rpb24gRXoodCxlLG4pe2NvbnN0e2Fycm93U2l6ZTpyfT1uLGk9dHlwZW9mIHI9PSJzdHJpbmciPytwYXJzZUZsb2F0KHIpLzEwMCp3cih0LGUpOnIsYT1NYXRoLlBJLzYsbz1NYXRoLmF0YW4yKGVbMV0tdFsxXSxlWzBdLXRbMF0pLHM9TWF0aC5QSS8yLW8tYSxjPVtlWzBdLWkqTWF0aC5zaW4ocyksZVsxXS1pKk1hdGguY29zKHMpXSxsPW8tYSx1PVtlWzBdLWkqTWF0aC5jb3MobCksZVsxXS1pKk1hdGguc2luKGwpXTtyZXR1cm5bYyx1XX1mdW5jdGlvbiB6cCh0LGUsbixyLGkpe2NvbnN0IGE9d28oTXIocixlKSkrTWF0aC5QSSxvPXdvKE1yKHIsbikpK01hdGguUEk7cmV0dXJuIHQuYXJjKHJbMF0sclsxXSxpLGEsbyxvLWE8MCksdH1mdW5jdGlvbiB4UCh0LGUsbixyPSJ5IixpPSJiZXR3ZWVuIixhPSExKXtjb25zdCBvPSh5LGIpPT55PT09InkifHx5PT09ITA/Yj8xODA6OTA6Yj85MDowLHM9cj09PSJ5Inx8cj09PSEwP246ZSxjPW8ocixhKSxsPWZ1KHMpLFt1LGZdPXNjKGwseT0+c1t5XSksZD1uZXcgSmkoe2RvbWFpbjpbdSxmXSxyYW5nZTpbMCwxMDBdfSksaD15PT5WbihzW3ldKSYmIU51bWJlci5pc05hTihzW3ldKT9kLm1hcChzW3ldKTowLHY9e2JldHdlZW46eT0+YCR7dFt5XX0gJHtoKHkpfSVgLHN0YXJ0Onk9Pnk9PT0wP2Ake3RbeV19ICR7aCh5KX0lYDpgJHt0W3ktMV19ICR7aCh5KX0lLCAke3RbeV19ICR7aCh5KX0lYCxlbmQ6eT0+eT09PXQubGVuZ3RoLTE/YCR7dFt5XX0gJHtoKHkpfSVgOmAke3RbeV19ICR7aCh5KX0lLCAke3RbeSsxXX0gJHtoKHkpfSVgfSxnPWwuc29ydCgoeSxiKT0+aCh5KS1oKGIpKS5tYXAodltpXXx8di5iZXR3ZWVuKS5qb2luKCIsIik7cmV0dXJuYGxpbmVhci1ncmFkaWVudCgke2N9ZGVnLCAke2d9KWB9ZnVuY3Rpb24gRW0odCl7Y29uc3RbZSxuLHIsaV09dDtyZXR1cm5baSxlLG4scl19ZnVuY3Rpb24gbXUodCxlLG4pe2NvbnN0W3IsaSwsYV09aHIodCk/RW0oZSk6ZSxbbyxzXT1uLGM9dC5nZXRDZW50ZXIoKSxsPWlkKE1yKHIsYykpLHU9aWQoTXIoaSxjKSksZj11PT09bCYmbyE9PXM/dStNYXRoLlBJKjI6dTtyZXR1cm57c3RhcnRBbmdsZTpsLGVuZEFuZ2xlOmYtbD49MD9mOk1hdGguUEkqMitmLGlubmVyUmFkaXVzOndyKGEsYyksb3V0ZXJSYWRpdXM6d3IocixjKX19ZnVuY3Rpb24gZ290KHQpe2NvbnN0IGU9ImNvbm5lY3QiO3JldHVybiBPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXModCkuZmlsdGVyKChbbl0pPT5uLnN0YXJ0c1dpdGgoZSkpLm1hcCgoW24scl0pPT5bbG93ZXJGaXJzdChuLnJlcGxhY2UoZSwiIikudHJpbSgpKSxyXSkuZmlsdGVyKChbbl0pPT5uIT09dm9pZCAwKSl9ZnVuY3Rpb24gSXcodCl7Y29uc3R7Y29sb3JBdHRyaWJ1dGU6ZSxvcGFjaXR5QXR0cmlidXRlOm49ZX09dDtyZXR1cm5gJHtufU9wYWNpdHlgfWZ1bmN0aW9uIF9QKHQsZSl7aWYoIUJuKHQpKXJldHVybiIiO2NvbnN0IG49dC5nZXRDZW50ZXIoKSx7dHJhbnNmb3JtOnJ9PWU7cmV0dXJuYHRyYW5zbGF0ZSgke25bMF19LCAke25bMV19KSAke3J8fCIifWB9ZnVuY3Rpb24gRHcodCl7aWYodC5sZW5ndGg9PT0xKXJldHVybiB0WzBdO2NvbnN0W1tlLG4scj0wXSxbaSxhLG89MF1dPXQ7cmV0dXJuWyhlK2kpLzIsKG4rYSkvMiwocitvKS8yXX1mdW5jdGlvbiB3UCh0KXtyZXR1cm4gdC5yZXBsYWNlKC8tKFx3KS9nLGZ1bmN0aW9uKGUsbil7cmV0dXJuIG4udG9VcHBlckNhc2UoKX0pfWZ1bmN0aW9uIE16KHQpe3JldHVybiB0LnJlcGxhY2UoLyhbQS1aXSkvZywiLSQxIikudG9Mb3dlckNhc2UoKX12YXIgeW90PUFycmF5LnByb3RvdHlwZS5zbGljZTtmdW5jdGlvbiBPUCh0KXtyZXR1cm4gdHlwZW9mIHQ9PSJvYmplY3QiJiYibGVuZ3RoImluIHQ/dDpBcnJheS5mcm9tKHQpfWZ1bmN0aW9uIHZyKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBTUCh0KXt0aGlzLl9jb250ZXh0PXR9U1AucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpeyh0aGlzLl9saW5lfHx0aGlzLl9saW5lIT09MCYmdGhpcy5fcG9pbnQ9PT0xKSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPTEtdGhpcy5fbGluZX0scG9pbnQ6ZnVuY3Rpb24odCxlKXtzd2l0Y2godD0rdCxlPStlLHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHQsZSk6dGhpcy5fY29udGV4dC5tb3ZlVG8odCxlKTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9MjtkZWZhdWx0OnRoaXMuX2NvbnRleHQubGluZVRvKHQsZSk7YnJlYWt9fX07ZnVuY3Rpb24gV3AodCl7cmV0dXJuIG5ldyBTUCh0KX1jb25zdCBqdz1NYXRoLlBJLEZ3PTIqancsYnU9MWUtNixrej1Gdy1idTtmdW5jdGlvbiBFUCh0KXt0aGlzLl8rPXRbMF07Zm9yKGxldCBlPTEsbj10Lmxlbmd0aDtlPG47KytlKXRoaXMuXys9YXJndW1lbnRzW2VdK3RbZV19ZnVuY3Rpb24gQXoodCl7bGV0IGU9TWF0aC5mbG9vcih0KTtpZighKGU+PTApKXRocm93IG5ldyBFcnJvcihgaW52YWxpZCBkaWdpdHM6ICR7dH1gKTtpZihlPjE1KXJldHVybiBFUDtjb25zdCBuPXRpKDEwLGUpO3JldHVybiBmdW5jdGlvbihyKXt0aGlzLl8rPXJbMF07Zm9yKGxldCBpPTEsYT1yLmxlbmd0aDtpPGE7KytpKXRoaXMuXys9TWF0aC5yb3VuZChhcmd1bWVudHNbaV0qbikvbityW2ldfX1jbGFzcyBNbXtjb25zdHJ1Y3RvcihlKXt0aGlzLl94MD10aGlzLl95MD10aGlzLl94MT10aGlzLl95MT1udWxsLHRoaXMuXz0iIix0aGlzLl9hcHBlbmQ9ZT09bnVsbD9FUDpBeihlKX1tb3ZlVG8oZSxuKXt0aGlzLl9hcHBlbmRgTSR7dGhpcy5feDA9dGhpcy5feDE9K2V9LCR7dGhpcy5feTA9dGhpcy5feTE9K259YH1jbG9zZVBhdGgoKXt0aGlzLl94MSE9PW51bGwmJih0aGlzLl94MT10aGlzLl94MCx0aGlzLl95MT10aGlzLl95MCx0aGlzLl9hcHBlbmRgWmApfWxpbmVUbyhlLG4pe3RoaXMuX2FwcGVuZGBMJHt0aGlzLl94MT0rZX0sJHt0aGlzLl95MT0rbn1gfXF1YWRyYXRpY0N1cnZlVG8oZSxuLHIsaSl7dGhpcy5fYXBwZW5kYFEkeytlfSwkeytufSwke3RoaXMuX3gxPStyfSwke3RoaXMuX3kxPStpfWB9YmV6aWVyQ3VydmVUbyhlLG4scixpLGEsbyl7dGhpcy5fYXBwZW5kYEMkeytlfSwkeytufSwkeytyfSwkeytpfSwke3RoaXMuX3gxPSthfSwke3RoaXMuX3kxPStvfWB9YXJjVG8oZSxuLHIsaSxhKXtpZihlPStlLG49K24scj0rcixpPStpLGE9K2EsYTwwKXRocm93IG5ldyBFcnJvcihgbmVnYXRpdmUgcmFkaXVzOiAke2F9YCk7bGV0IG89dGhpcy5feDEscz10aGlzLl95MSxjPXItZSxsPWktbix1PW8tZSxmPXMtbixkPXUqdStmKmY7aWYodGhpcy5feDE9PT1udWxsKXRoaXMuX2FwcGVuZGBNJHt0aGlzLl94MT1lfSwke3RoaXMuX3kxPW59YDtlbHNlIGlmKGQ+YnUpaWYoIShNYXRoLmFicyhmKmMtbCp1KT5idSl8fCFhKXRoaXMuX2FwcGVuZGBMJHt0aGlzLl94MT1lfSwke3RoaXMuX3kxPW59YDtlbHNle2xldCBoPXItbyx2PWktcyxnPWMqYytsKmwseT1oKmgrdip2LGI9TWF0aC5zcXJ0KGcpLHg9TWF0aC5zcXJ0KGQpLF89YSpNYXRoLnRhbigoanctTWF0aC5hY29zKChnK2QteSkvKDIqYip4KSkpLzIpLHc9Xy94LE89Xy9iO01hdGguYWJzKHctMSk+YnUmJnRoaXMuX2FwcGVuZGBMJHtlK3cqdX0sJHtuK3cqZn1gLHRoaXMuX2FwcGVuZGBBJHthfSwke2F9LDAsMCwkeysoZipoPnUqdil9LCR7dGhpcy5feDE9ZStPKmN9LCR7dGhpcy5feTE9bitPKmx9YH19YXJjKGUsbixyLGksYSxvKXtpZihlPStlLG49K24scj0rcixvPSEhbyxyPDApdGhyb3cgbmV3IEVycm9yKGBuZWdhdGl2ZSByYWRpdXM6ICR7cn1gKTtsZXQgcz1yKk1hdGguY29zKGkpLGM9cipNYXRoLnNpbihpKSxsPWUrcyx1PW4rYyxmPTFebyxkPW8/aS1hOmEtaTt0aGlzLl94MT09PW51bGw/dGhpcy5fYXBwZW5kYE0ke2x9LCR7dX1gOihNYXRoLmFicyh0aGlzLl94MS1sKT5idXx8TWF0aC5hYnModGhpcy5feTEtdSk+YnUpJiZ0aGlzLl9hcHBlbmRgTCR7bH0sJHt1fWAsciYmKGQ8MCYmKGQ9ZCVGdytGdyksZD5rej90aGlzLl9hcHBlbmRgQSR7cn0sJHtyfSwwLDEsJHtmfSwke2Utc30sJHtuLWN9QSR7cn0sJHtyfSwwLDEsJHtmfSwke3RoaXMuX3gxPWx9LCR7dGhpcy5feTE9dX1gOmQ+YnUmJnRoaXMuX2FwcGVuZGBBJHtyfSwke3J9LDAsJHsrKGQ+PWp3KX0sJHtmfSwke3RoaXMuX3gxPWUrcipNYXRoLmNvcyhhKX0sJHt0aGlzLl95MT1uK3IqTWF0aC5zaW4oYSl9YCl9cmVjdChlLG4scixpKXt0aGlzLl9hcHBlbmRgTSR7dGhpcy5feDA9dGhpcy5feDE9K2V9LCR7dGhpcy5feTA9dGhpcy5feTE9K259aCR7cj0rcn12JHsraX1oJHstcn1aYH10b1N0cmluZygpe3JldHVybiB0aGlzLl99fWZ1bmN0aW9uIE9vKCl7cmV0dXJuIG5ldyBNbX1Pby5wcm90b3R5cGU9TW0ucHJvdG90eXBlO2Z1bmN0aW9uIG1vdCh0PTMpe3JldHVybiBuZXcgTW0oK3QpfWZ1bmN0aW9uIEJ3KHQpe2xldCBlPTM7cmV0dXJuIHQuZGlnaXRzPWZ1bmN0aW9uKG4pe2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiBlO2lmKG49PW51bGwpZT1udWxsO2Vsc2V7Y29uc3Qgcj1NYXRoLmZsb29yKG4pO2lmKCEocj49MCkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoYGludmFsaWQgZGlnaXRzOiAke259YCk7ZT1yfXJldHVybiB0fSwoKT0+bmV3IE1tKGUpfWZ1bmN0aW9uIE1QKHQpe3JldHVybiB0WzBdfWZ1bmN0aW9uIGtQKHQpe3JldHVybiB0WzFdfWZ1bmN0aW9uIHh1KHQsZSl7dmFyIG49dnIoITApLHI9bnVsbCxpPVdwLGE9bnVsbCxvPUJ3KHMpO3Q9dHlwZW9mIHQ9PSJmdW5jdGlvbiI/dDp0PT09dm9pZCAwP01QOnZyKHQpLGU9dHlwZW9mIGU9PSJmdW5jdGlvbiI/ZTplPT09dm9pZCAwP2tQOnZyKGUpO2Z1bmN0aW9uIHMoYyl7dmFyIGwsdT0oYz1PUChjKSkubGVuZ3RoLGYsZD0hMSxoO2ZvcihyPT1udWxsJiYoYT1pKGg9bygpKSksbD0wO2w8PXU7KytsKSEobDx1JiZuKGY9Y1tsXSxsLGMpKT09PWQmJigoZD0hZCk/YS5saW5lU3RhcnQoKTphLmxpbmVFbmQoKSksZCYmYS5wb2ludCgrdChmLGwsYyksK2UoZixsLGMpKTtpZihoKXJldHVybiBhPW51bGwsaCsiInx8bnVsbH1yZXR1cm4gcy54PWZ1bmN0aW9uKGMpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PXR5cGVvZiBjPT0iZnVuY3Rpb24iP2M6dnIoK2MpLHMpOnR9LHMueT1mdW5jdGlvbihjKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT10eXBlb2YgYz09ImZ1bmN0aW9uIj9jOnZyKCtjKSxzKTplfSxzLmRlZmluZWQ9ZnVuY3Rpb24oYyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49dHlwZW9mIGM9PSJmdW5jdGlvbiI/Yzp2cighIWMpLHMpOm59LHMuY3VydmU9ZnVuY3Rpb24oYyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9YyxyIT1udWxsJiYoYT1pKHIpKSxzKTppfSxzLmNvbnRleHQ9ZnVuY3Rpb24oYyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGM9PW51bGw/cj1hPW51bGw6YT1pKHI9Yykscyk6cn0sc31mdW5jdGlvbiBhZCh0KXtjb25zdCBlPXR5cGVvZiB0PT0iZnVuY3Rpb24iP3Q6dC5yZW5kZXI7cmV0dXJuIGNsYXNzIGV4dGVuZHMgbXB7Y29ubmVjdGVkQ2FsbGJhY2soKXt0aGlzLmRyYXcoKX1hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2soKXt0aGlzLmRyYXcoKX1kcmF3KCl7ZSh0aGlzKX19fXZhciB6dz1mdW5jdGlvbih0LGUpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiZlLmluZGV4T2Yocik8MCYmKG5bcl09dFtyXSk7aWYodCE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBpPTAscj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2k8ci5sZW5ndGg7aSsrKWUuaW5kZXhPZihyW2ldKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodCxyW2ldKSYmKG5bcltpXV09dFtyW2ldXSk7cmV0dXJuIG59O2Z1bmN0aW9uIFR6KHQpe2NvbnN0e21pbjpbZSxuXSxtYXg6W3IsaV19PXQuZ2V0TG9jYWxCb3VuZHMoKTtsZXQgYT0wLG89MDtyZXR1cm4gZT4wJiYoYT1lKSxyPDAmJihhPXIpLG4+MCYmKG89biksaTwwJiYobz1pKSxbYSxvXX1mdW5jdGlvbiBQeih0LGU9W10pe2NvbnN0W249MCxyPTAsaT1uLGE9cl09ZSxvPXQucGFyZW50Tm9kZSxzPW8uZ2V0RXVsZXJBbmdsZXMoKTtvLnNldEV1bGVyQW5nbGVzKDApO2NvbnN0e21pbjpjLGhhbGZFeHRlbnRzOmx9PXQuZ2V0TG9jYWxCb3VuZHMoKSxbdSxmXT1jLFtkLGhdPWw7cmV0dXJuIG8uc2V0RXVsZXJBbmdsZXMocykse3g6dS1hLHk6Zi1uLHdpZHRoOmQqMithK3IsaGVpZ2h0OmgqMituK2l9fWNvbnN0IGJvdD0odCxlLG4pPT57Y29uc3Qgcj1kaXN0KHQsZSksaT1kaXN0KGUsbiksYT1kaXN0KG4sdCk7cmV0dXJuKE1hdGgucG93KHIsMikrTWF0aC5wb3coaSwyKS1NYXRoLnBvdyhhLDIpKS8oMipyKmkpfTtmdW5jdGlvbiBDeih0LGUsbixyLGk9ITAsYT0hMCl7Y29uc3Qgbz1mPT54dSgpKGYpO2lmKCFlWzBdJiYhZVsxXSlyZXR1cm4gbyhbVHoodCksZV0pO2lmKCFuLmxlbmd0aClyZXR1cm4gbyhbWzAsMF0sZV0pO2NvbnN0W3MsY109bixsPVsuLi5jXSx1PVsuLi5zXTtpZihjWzBdIT09c1swXSl7Y29uc3QgZj1pPy00OjQ7bFsxXT1jWzFdLGEmJiFpJiYobFswXT1NYXRoLm1heChzWzBdLGNbMF0tZiksY1sxXTxzWzFdP3VbMV09bFsxXToodVsxXT1zWzFdLHVbMF09TWF0aC5tYXgodVswXSxsWzBdLWYpKSksIWEmJiFpJiYobFswXT1NYXRoLm1heChzWzBdLGNbMF0tZiksY1sxXT5zWzFdP3VbMV09bFsxXToodVsxXT1zWzFdLHVbMF09TWF0aC5tYXgodVswXSxsWzBdLWYpKSksIWEmJmkmJihsWzBdPU1hdGgubWluKHNbMF0sY1swXS1mKSxjWzFdPnNbMV0/dVsxXT1sWzFdOih1WzFdPXNbMV0sdVswXT1NYXRoLm1pbih1WzBdLGxbMF0tZikpKSxhJiZpJiYobFswXT1NYXRoLm1pbihzWzBdLGNbMF0tZiksY1sxXTxzWzFdP3VbMV09bFsxXToodVsxXT1zWzFdLHVbMF09TWF0aC5taW4odVswXSxsWzBdLWYpKSl9cmV0dXJuIG8oW2MsbCx1LHMsZV0pfWNvbnN0IEFQPWFkKHQ9Pntjb25zdCBlPXQuYXR0cmlidXRlcyx7Y2xhc3NOYW1lOm4sY2xhc3M6cix0cmFuc2Zvcm06aSxyb3RhdGU6YSxsYWJlbFRyYW5zZm9ybTpvLGxhYmVsVHJhbnNmb3JtT3JpZ2luOnMseDpjLHk6bCx4MDp1PWMseTA6Zj1sLHRleHQ6ZCxiYWNrZ3JvdW5kOmgsY29ubmVjdG9yOnYsc3RhcnRNYXJrZXI6ZyxlbmRNYXJrZXI6eSxjb29yZENlbnRlcjpiLGlubmVySFRNTDp4fT1lLF89encoZSxbImNsYXNzTmFtZSIsImNsYXNzIiwidHJhbnNmb3JtIiwicm90YXRlIiwibGFiZWxUcmFuc2Zvcm0iLCJsYWJlbFRyYW5zZm9ybU9yaWdpbiIsIngiLCJ5IiwieDAiLCJ5MCIsInRleHQiLCJiYWNrZ3JvdW5kIiwiY29ubmVjdG9yIiwic3RhcnRNYXJrZXIiLCJlbmRNYXJrZXIiLCJjb29yZENlbnRlciIsImlubmVySFRNTCJdKTtpZih0LnN0eWxlLnRyYW5zZm9ybT1gdHJhbnNsYXRlKCR7Y30sICR7bH0pYCxbYyxsLHUsZl0uc29tZShGPT4hVm4oRikpKXt0LmNoaWxkcmVuLmZvckVhY2goRj0+Ri5yZW1vdmUoKSk7cmV0dXJufWNvbnN0IHc9JHQoXywiYmFja2dyb3VuZCIpLHtwYWRkaW5nOk99PXcsRT16dyh3LFsicGFkZGluZyJdKSxNPSR0KF8sImNvbm5lY3RvciIpLHtwb2ludHM6az1bXX09TSxBPXp3KE0sWyJwb2ludHMiXSk7bGV0IFA7eD9QPU9lKHQpLm1heWJlQXBwZW5kKCJodG1sIiwiaHRtbCIsbikuc3R5bGUoInpJbmRleCIsMCkuc3R5bGUoImlubmVySFRNTCIseCkuY2FsbChsZSxPYmplY3QuYXNzaWduKHt0cmFuc2Zvcm06byx0cmFuc2Zvcm1PcmlnaW46c30sXykpLm5vZGUoKTpQPU9lKHQpLm1heWJlQXBwZW5kKCJ0ZXh0IiwidGV4dCIpLnN0eWxlKCJ6SW5kZXgiLDApLnN0eWxlKCJ0ZXh0IixkKS5jYWxsKGxlLE9iamVjdC5hc3NpZ24oe3RleHRCYXNlbGluZToibWlkZGxlIix0cmFuc2Zvcm06byx0cmFuc2Zvcm1PcmlnaW46c30sXykpLm5vZGUoKTtjb25zdCBDPU9lKHQpLm1heWJlQXBwZW5kKCJiYWNrZ3JvdW5kIiwicmVjdCIpLnN0eWxlKCJ6SW5kZXgiLC0xKS5jYWxsKGxlLFB6KFAsTykpLmNhbGwobGUsaD9FOnt9KS5ub2RlKCksTj0rdTxiWzBdLEw9K2Y8YlsxXSxSPVsrdS0rYywrZi0rbF0sST1DeihDLFIsayxiLE4sTCksRD1nJiZuZXcgQW4oe2lkOiJzdGFydE1hcmtlciIsc3R5bGU6T2JqZWN0LmFzc2lnbih7eDowLHk6MH0sJHQoXywic3RhcnRNYXJrZXIiKSl9KSxHPXkmJm5ldyBBbih7aWQ6ImVuZE1hcmtlciIsc3R5bGU6T2JqZWN0LmFzc2lnbih7eDowLHk6MH0sJHQoXywiZW5kTWFya2VyIikpfSk7T2UodCkubWF5YmVBcHBlbmQoImNvbm5lY3RvciIsInBhdGgiKS5zdHlsZSgiekluZGV4IiwwKS5zdHlsZSgiZCIsSSkuc3R5bGUoIm1hcmtlclN0YXJ0IixEKS5zdHlsZSgibWFya2VyRW5kIixHKS5jYWxsKGxlLHY/QTp7fSl9KTtmdW5jdGlvbiBvZCh0LGUpe2xldCBuLHI9LTEsaT0tMTtpZihlPT09dm9pZCAwKWZvcihjb25zdCBhIG9mIHQpKytpLGEhPW51bGwmJihuPGF8fG49PT12b2lkIDAmJmE+PWEpJiYobj1hLHI9aSk7ZWxzZSBmb3IobGV0IGEgb2YgdCkoYT1lKGEsKytpLHQpKSE9bnVsbCYmKG48YXx8bj09PXZvaWQgMCYmYT49YSkmJihuPWEscj1pKTtyZXR1cm4gcn1mdW5jdGlvbiBMeih0LGUsbixyKXtjb25zdCBpPWUubGVuZ3RoLzIsYT1lLnNsaWNlKDAsaSksbz1lLnNsaWNlKGkpO2xldCBzPW9kKGEsKGgsdik9Pk1hdGguYWJzKGhbMV0tb1t2XVsxXSkpO3M9TWF0aC5tYXgoTWF0aC5taW4ocyxpLTIpLDEpO2NvbnN0IGM9aD0+W2FbaF1bMF0sKGFbaF1bMV0rb1toXVsxXSkvMl0sbD1jKHMpLHU9YyhzLTEpLGY9YyhzKzEpLGQ9d28oTXIoZix1KSkvTWF0aC5QSSoxODA7cmV0dXJue3g6bFswXSx5OmxbMV0sdHJhbnNmb3JtOmByb3RhdGUoJHtkfSlgLHRleHRBbGlnbjoiY2VudGVyIix0ZXh0QmFzZWxpbmU6Im1pZGRsZSJ9fWZ1bmN0aW9uIFRQKHQsZSxuLHIpe2NvbnN0e2JvdW5kczppfT1uLFtbYSxvXSxbcyxjXV09aSxsPXMtYSx1PWMtbyxmPWQ9Pntjb25zdHt4OmgseTp2fT1kLGc9Q0Eobi54LGwpLHk9Q0Eobi55LHUpO3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZCkse3g6KGd8fGgpK2EseTooeXx8dikrb30pfTtyZXR1cm4gZih0PT09ImxlZnQiP3t4OjAseTp1LzIsdGV4dEFsaWduOiJzdGFydCIsdGV4dEJhc2VsaW5lOiJtaWRkbGUifTp0PT09InJpZ2h0Ij97eDpsLHk6dS8yLHRleHRBbGlnbjoiZW5kIix0ZXh0QmFzZWxpbmU6Im1pZGRsZSJ9OnQ9PT0idG9wIj97eDpsLzIseTowLHRleHRBbGlnbjoiY2VudGVyIix0ZXh0QmFzZWxpbmU6InRvcCJ9OnQ9PT0iYm90dG9tIj97eDpsLzIseTp1LHRleHRBbGlnbjoiY2VudGVyIix0ZXh0QmFzZWxpbmU6ImJvdHRvbSJ9OnQ9PT0idG9wLWxlZnQiP3t4OjAseTowLHRleHRBbGlnbjoic3RhcnQiLHRleHRCYXNlbGluZToidG9wIn06dD09PSJ0b3AtcmlnaHQiP3t4OmwseTowLHRleHRBbGlnbjoiZW5kIix0ZXh0QmFzZWxpbmU6InRvcCJ9OnQ9PT0iYm90dG9tLWxlZnQiP3t4OjAseTp1LHRleHRBbGlnbjoic3RhcnQiLHRleHRCYXNlbGluZToiYm90dG9tIn06dD09PSJib3R0b20tcmlnaHQiP3t4OmwseTp1LHRleHRBbGlnbjoiZW5kIix0ZXh0QmFzZWxpbmU6ImJvdHRvbSJ9Ont4OmwvMix5OnUvMix0ZXh0QWxpZ246ImNlbnRlciIsdGV4dEJhc2VsaW5lOiJtaWRkbGUifSl9ZnVuY3Rpb24gUFAodCxlLG4scil7Y29uc3R7eTppLHkxOmEsYXV0b1JvdGF0ZTpvLHJvdGF0ZVRvQWxpZ25BcmM6c309bixjPXIuZ2V0Q2VudGVyKCksbD1tdShyLGUsW2ksYV0pLHtpbm5lclJhZGl1czp1LG91dGVyUmFkaXVzOmYsc3RhcnRBbmdsZTpkLGVuZEFuZ2xlOmh9PWwsdj10PT09Imluc2lkZSI/KGQraCkvMjpoLGc9V3codixvLHMpLHk9KCgpPT57Y29uc3RbYix4XT1lLF89dSsoZi11KSouNSxbdyxPXT10PT09Imluc2lkZSI/R3AoYyx2LF8pOmJQKGIseCk7cmV0dXJue3g6dyx5Ok99fSkoKTtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHkpLHt0ZXh0QWxpZ246dD09PSJpbnNpZGUiPyJjZW50ZXIiOiJzdGFydCIsdGV4dEJhc2VsaW5lOiJtaWRkbGUiLHJvdGF0ZTpnfSl9ZnVuY3Rpb24gR3AodCxlLG4pe3JldHVyblt0WzBdK01hdGguc2luKGUpKm4sdFsxXS1NYXRoLmNvcyhlKSpuXX1mdW5jdGlvbiBXdyh0LGUsbil7aWYoIWUpcmV0dXJuIDA7Y29uc3Qgcj1uPzA6TWF0aC5zaW4odCk8MD85MDotOTA7cmV0dXJuIHQvTWF0aC5QSSoxODArcn1mdW5jdGlvbiBSeih0LGUsbixyKXtjb25zdHt5OmkseTE6YSxhdXRvUm90YXRlOm8scm90YXRlVG9BbGlnbkFyYzpzLHJhZGl1czpjPS41LG9mZnNldDpsPTB9PW4sdT1tdShyLGUsW2ksYV0pLHtzdGFydEFuZ2xlOmYsZW5kQW5nbGU6ZH09dSxoPXIuZ2V0Q2VudGVyKCksdj0oZitkKS8yLHk9e3RleHRBbGlnbjoiY2VudGVyIix0ZXh0QmFzZWxpbmU6Im1pZGRsZSIscm90YXRlOld3KHYsbyxzKX0se2lubmVyUmFkaXVzOmIsb3V0ZXJSYWRpdXM6eH09dSx3PWIrKHgtYikqYytsLFtPLEVdPUdwKGgsdix3KTtyZXR1cm4gT2JqZWN0LmFzc2lnbih7eDpPLHk6RX0seSl9ZnVuY3Rpb24gQ1AodCl7cmV0dXJuIHQ9PT12b2lkIDA/bnVsbDp0fWZ1bmN0aW9uIExQKHQsZSxuLHIpe2NvbnN0e2JvdW5kczppfT1uLFthXT1pO3JldHVybnt4OkNQKGFbMF0pLHk6Q1AoYVsxXSl9fWZ1bmN0aW9uIGNjKHQsZSxuLHIpe2NvbnN0e2JvdW5kczppfT1uO3JldHVybiBpLmxlbmd0aD09PTE/TFAodCxlLG4scik6KFNwKHIpP1BQOktmKHIpP1J6OlRQKSh0LGUsbixyKX1mdW5jdGlvbiBOeih0LGUsbixyLGkpe2NvbnN0W2Esb109R3AodCxlLG4pLFtzLGNdPUdwKHQsZSxyKSxsPU1hdGguc2luKGUpPjA/MTotMTtyZXR1cm5bW2Esb10sW3MsY10sW3MrbCppLGNdXX1mdW5jdGlvbiBSUCh0LGUsbil7Y29uc3Qgcj1tdShuLHQsW2UueSxlLnkxXSkse2lubmVyUmFkaXVzOmksb3V0ZXJSYWRpdXM6YX09cjtyZXR1cm4gaSsoYS1pKX1mdW5jdGlvbiBOUCh0LGUsbil7Y29uc3Qgcj1tdShuLHQsW2UueSxlLnkxXSkse3N0YXJ0QW5nbGU6aSxlbmRBbmdsZTphfT1yO3JldHVybihpK2EpLzJ9ZnVuY3Rpb24gR3codCxlLG4scil7Y29uc3R7YXV0b1JvdGF0ZTppLHJvdGF0ZVRvQWxpZ25BcmM6YSxvZmZzZXQ6bz0wLGNvbm5lY3RvcjpzPSEwLGNvbm5lY3Rvckxlbmd0aDpjPW8sY29ubmVjdG9yTGVuZ3RoMjpsPTAsY29ubmVjdG9yRGlzdGFuY2U6dT0wfT1uLGY9ci5nZXRDZW50ZXIoKSxkPU5QKGUsbixyKSxoPU1hdGguc2luKGQpPjA/MTotMSx2PVd3KGQsaSxhKSxnPXt0ZXh0QWxpZ246aD4wfHxTcChyKT8ic3RhcnQiOiJlbmQiLHRleHRCYXNlbGluZToibWlkZGxlIixyb3RhdGU6dn0seT1SUChlLG4sciksYj15KyhzP2M6byksW1t4LF9dLFt3LE9dLFtFLE1dXT1OeihmLGQseSxiLHM/bDowKSxrPXM/K3UqaDowLEE9RStrLFA9TSxDPXtjb25uZWN0b3I6cyxjb25uZWN0b3JQb2ludHM6W1t3LUEsTy1QXSxbRS1BLE0tUF1dfTtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt4MDp4LHkwOl8seDpFK2sseTpNfSxnKSxDKX1mdW5jdGlvbiBJeih0LGUsbixyKXtjb25zdHtib3VuZHM6aX09bjtyZXR1cm4gaS5sZW5ndGg9PT0xP0xQKHQsZSxuLHIpOihTcChyKT9QUDpLZihyKT9HdzpUUCkodCxlLG4scil9ZnVuY3Rpb24ga3IodCxlKXtyZXR1cm4gdD09bnVsbHx8ZT09bnVsbD9OYU46dDxlPy0xOnQ+ZT8xOnQ+PWU/MDpOYU59ZnVuY3Rpb24gRHoodCxlKXtyZXR1cm4gQXJyYXkuZnJvbShlLG49PnRbbl0pfWZ1bmN0aW9uIFdvKHQsLi4uZSl7aWYodHlwZW9mIHRbU3ltYm9sLml0ZXJhdG9yXSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJ2YWx1ZXMgaXMgbm90IGl0ZXJhYmxlIik7dD1BcnJheS5mcm9tKHQpO2xldFtuXT1lO2lmKG4mJm4ubGVuZ3RoIT09Mnx8ZS5sZW5ndGg+MSl7Y29uc3Qgcj1VaW50MzJBcnJheS5mcm9tKHQsKGksYSk9PmEpO3JldHVybiBlLmxlbmd0aD4xPyhlPWUubWFwKGk9PnQubWFwKGkpKSxyLnNvcnQoKGksYSk9Pntmb3IoY29uc3QgbyBvZiBlKXtjb25zdCBzPSRwKG9baV0sb1thXSk7aWYocylyZXR1cm4gc319KSk6KG49dC5tYXAobiksci5zb3J0KChpLGEpPT4kcChuW2ldLG5bYV0pKSksRHoodCxyKX1yZXR1cm4gdC5zb3J0KElQKG4pKX1mdW5jdGlvbiBJUCh0PWtyKXtpZih0PT09a3IpcmV0dXJuICRwO2lmKHR5cGVvZiB0IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoImNvbXBhcmUgaXMgbm90IGEgZnVuY3Rpb24iKTtyZXR1cm4oZSxuKT0+e2NvbnN0IHI9dChlLG4pO3JldHVybiByfHxyPT09MD9yOih0KG4sbik9PT0wKS0odChlLGUpPT09MCl9fWZ1bmN0aW9uICRwKHQsZSl7cmV0dXJuKHQ9PW51bGx8fCEodD49dCkpLShlPT1udWxsfHwhKGU+PWUpKXx8KHQ8ZT8tMTp0PmU/MTowKX1mdW5jdGlvbiBEUCh0LGU9e30pe2NvbnN0e2xhYmVsSGVpZ2h0Om49MTQsaGVpZ2h0OnJ9PWUsaT1Xbyh0LGw9PmwueSksYT1pLmxlbmd0aCxvPW5ldyBBcnJheShhKTtmb3IobGV0IGw9MDtsPGE7bCsrKXtjb25zdCB1PWlbbF0se3k6Zn09dTtvW2xdPXt5OmYseTE6ZituLGxhYmVsczpbZl19fWxldCBzPSEwO2Zvcig7czspe3M9ITE7Zm9yKGxldCBsPW8ubGVuZ3RoLTE7bD4wO2wtLSl7Y29uc3QgdT1vW2xdLGY9b1tsLTFdO2lmKGYueTE+dS55KXtzPSEwLGYubGFiZWxzLnB1c2goLi4udS5sYWJlbHMpLG8uc3BsaWNlKGwsMSksZi55MSs9dS55MS11Lnk7Y29uc3QgZD1mLnkxLWYueTtmLnkxPU1hdGgubWF4KE1hdGgubWluKGYueTEsciksZCksZi55PWYueTEtZH19fWxldCBjPTA7Zm9yKGNvbnN0IGwgb2Ygbyl7Y29uc3R7eTp1LGxhYmVsczpmfT1sO2xldCBkPXUtbjtmb3IoY29uc3QgaCBvZiBmKXtjb25zdCB2PWlbYysrXSx5PWQrbi1oO3YuY29ubmVjdG9yUG9pbnRzWzBdWzFdLT15LHYueT1kK24sZCs9bn19fWZ1bmN0aW9uIGpQKHQsZSl7Y29uc3Qgbj1Xbyh0LHM9PnMueSkse2hlaWdodDpyLGxhYmVsSGVpZ2h0Omk9MTR9PWUsYT1NYXRoLmNlaWwoci9pKTtpZihuLmxlbmd0aDw9YSlyZXR1cm4gRFAobixlKTtjb25zdCBvPVtdO2ZvcihsZXQgcz0wO3M8bi5sZW5ndGg7cysrKXM8bi5sZW5ndGgtYT8obltzXS5vcGFjaXR5PTAsbltzXS5jb25uZWN0b3I9ITEpOm8ucHVzaChuW3NdKTtEUChvLGUpfXZhciBqej1mdW5jdGlvbih0LGUpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiZlLmluZGV4T2Yocik8MCYmKG5bcl09dFtyXSk7aWYodCE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBpPTAscj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2k8ci5sZW5ndGg7aSsrKWUuaW5kZXhPZihyW2ldKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodCxyW2ldKSYmKG5bcltpXV09dFtyW2ldXSk7cmV0dXJuIG59O2NvbnN0IGttPW5ldyBXZWFrTWFwO2Z1bmN0aW9uIEZ6KHQsZSxuKXtjb25zdHtjb25uZWN0b3JMZW5ndGg6cixjb25uZWN0b3JMZW5ndGgyOmksY29ubmVjdG9yRGlzdGFuY2U6YX09ZSxvPWp6KEd3KCJvdXRzaWRlIix0LGUsbiksW10pLHM9bi5nZXRDZW50ZXIoKSxjPVJQKHQsZSxuKSxsPU5QKHQsZSxuKSx1PWMrcitpLGY9TWF0aC5zaW4obCk+MD8xOi0xLGQ9c1swXSsodSsgK2EpKmYse3g6aH09byx2PWQtaDtyZXR1cm4gby54Kz12LG8uY29ubmVjdG9yUG9pbnRzWzBdWzBdLT12LG99ZnVuY3Rpb24gQnoodCxlLG4scixpLGEpe2lmKCFLZihyKSlyZXR1cm57fTtpZihrbS5oYXMoZSkpcmV0dXJuIGttLmdldChlKTtjb25zdCBvPWEubWFwKGQ9PkZ6KGQsbixyKSkse3dpZHRoOnMsaGVpZ2h0OmN9PXIuZ2V0T3B0aW9ucygpLGw9by5maWx0ZXIoZD0+ZC54PHMvMiksdT1vLmZpbHRlcihkPT5kLng+PXMvMiksZj1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30saSkse2hlaWdodDpjfSk7cmV0dXJuIGpQKGwsZiksalAodSxmKSxvLmZvckVhY2goKGQsaCk9PmttLnNldChhW2hdLGQpKSxrbS5nZXQoZSl9dmFyIHp6PWZ1bmN0aW9uKHQsZSl7dmFyIG49e307Zm9yKHZhciByIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscikmJmUuaW5kZXhPZihyKTwwJiYobltyXT10W3JdKTtpZih0IT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIGk9MCxyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCk7aTxyLmxlbmd0aDtpKyspZS5pbmRleE9mKHJbaV0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh0LHJbaV0pJiYobltyW2ldXT10W3JbaV1dKTtyZXR1cm4gbn07ZnVuY3Rpb24gV3oodCxlLG4scil7aWYoIUtmKHIpKXJldHVybnt9O2NvbnN0e2Nvbm5lY3Rvckxlbmd0aDppLGNvbm5lY3Rvckxlbmd0aDI6YSxjb25uZWN0b3JEaXN0YW5jZTpvfT1uLHM9enooR3coIm91dHNpZGUiLGUsbixyKSxbXSkse3gwOmMseTA6bH09cyx1PXIuZ2V0Q2VudGVyKCksZD1RRihyKStpLGg9aWQoW2MtdVswXSxsLXVbMV1dKSx2PU1hdGguc2luKGgpPjA/MTotMSxbZyx5XT1HcCh1LGgsZCk7cmV0dXJuIHMueD1nKyhhK28pKnYscy55PXksc312YXIgRlA9ZnVuY3Rpb24odCxlKXt2YXIgbj17fTtmb3IodmFyIHIgaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKSYmZS5pbmRleE9mKHIpPDAmJihuW3JdPXRbcl0pO2lmKHQhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgaT0wLHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTtpPHIubGVuZ3RoO2krKyllLmluZGV4T2YocltpXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHQscltpXSkmJihuW3JbaV1dPXRbcltpXV0pO3JldHVybiBufTtmdW5jdGlvbiBHeih0LGUpe3JldHVybiB0IT09dm9pZCAwP3Q6S2YoZSk/Imluc2lkZSI6aHIoZSk/InJpZ2h0IjoidG9wIn1mdW5jdGlvbiAkeih0LGUsbixyLGksYSl7Y29uc3R7cG9zaXRpb246b309ZSx7cmVuZGVyOnN9PWksYz1HeihvLG4pLHU9cltzPyJodG1sTGFiZWwiOmM9PT0iaW5zaWRlIj8iaW5uZXJMYWJlbCI6ImxhYmVsIl0sZj1PYmplY3QuYXNzaWduKHt9LHUsZSksZD0kW3dQKGMpXTtpZighZCl0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gcG9zaXRpb246ICR7Y31gKTtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHUpLGQoYyx0LGYsbixpLGEpKX1jb25zdCBCUD0odCxlKT0+e2NvbnN0e2Nvb3JkaW5hdGU6bix0aGVtZTpyfT1lLHtyZW5kZXI6aX09dDtyZXR1cm4oYSxvLHMsYyk9Pntjb25zdHt0ZXh0OmwseDp1LHk6Zix0cmFuc2Zvcm06ZD0iIix0cmFuc2Zvcm1PcmlnaW46aCxjbGFzc05hbWU6dj0iIn09byxnPUZQKG8sWyJ0ZXh0IiwieCIsInkiLCJ0cmFuc2Zvcm0iLCJ0cmFuc2Zvcm1PcmlnaW4iLCJjbGFzc05hbWUiXSkseT0keihhLG8sbixyLHQsYykse3JvdGF0ZTpiPTAsdHJhbnNmb3JtOng9IiJ9PXksXz1GUCh5LFsicm90YXRlIiwidHJhbnNmb3JtIl0pO3JldHVybiBPZShuZXcgQVApLmNhbGwobGUsXykuc3R5bGUoInRleHQiLGAke2x9YCkuc3R5bGUoImNsYXNzTmFtZSIsYCR7dn0gZzItbGFiZWxgKS5zdHlsZSgiaW5uZXJIVE1MIixpP2kobCxvLmRhdHVtLG8uaW5kZXgpOnZvaWQgMCkuc3R5bGUoImxhYmVsVHJhbnNmb3JtIixgJHt4fSByb3RhdGUoJHsrYn0pICR7ZH1gLnRyaW0oKSkuc3R5bGUoImxhYmVsVHJhbnNmb3JtT3JpZ2luIixoKS5zdHlsZSgiY29vcmRDZW50ZXIiLG4uZ2V0Q2VudGVyKCkpLmNhbGwobGUsZykubm9kZSgpfX07QlAucHJvcHM9e2RlZmF1bHRNYXJrZXI6InBvaW50In07dmFyIFp6PWZ1bmN0aW9uKHQsZSl7aWYoIXFmKHQpKXJldHVybiB0O2Zvcih2YXIgbj1bXSxyPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBpPXRbcl07ZShpLHIpJiZuLnB1c2goaSl9cmV0dXJuIG59LHpQPVp6O2Z1bmN0aW9uIFl6KHQsZSl7cmV0dXJuIHQ9PW51bGx8fGU9PW51bGw/TmFOOmU8dD8tMTplPnQ/MTplPj10PzA6TmFOfWZ1bmN0aW9uIG9sKHQpe2xldCBlLG4scjt0Lmxlbmd0aCE9PTI/KGU9a3Isbj0ocyxjKT0+a3IodChzKSxjKSxyPShzLGMpPT50KHMpLWMpOihlPXQ9PT1rcnx8dD09PVl6P3Q6SHosbj10LHI9dCk7ZnVuY3Rpb24gaShzLGMsbD0wLHU9cy5sZW5ndGgpe2lmKGw8dSl7aWYoZShjLGMpIT09MClyZXR1cm4gdTtkb3tjb25zdCBmPWwrdT4+PjE7bihzW2ZdLGMpPDA/bD1mKzE6dT1mfXdoaWxlKGw8dSl9cmV0dXJuIGx9ZnVuY3Rpb24gYShzLGMsbD0wLHU9cy5sZW5ndGgpe2lmKGw8dSl7aWYoZShjLGMpIT09MClyZXR1cm4gdTtkb3tjb25zdCBmPWwrdT4+PjE7bihzW2ZdLGMpPD0wP2w9ZisxOnU9Zn13aGlsZShsPHUpfXJldHVybiBsfWZ1bmN0aW9uIG8ocyxjLGw9MCx1PXMubGVuZ3RoKXtjb25zdCBmPWkocyxjLGwsdS0xKTtyZXR1cm4gZj5sJiZyKHNbZi0xXSxjKT4tcihzW2ZdLGMpP2YtMTpmfXJldHVybntsZWZ0OmksY2VudGVyOm8scmlnaHQ6YX19ZnVuY3Rpb24gSHooKXtyZXR1cm4gMH1mdW5jdGlvbiAkdyh0KXtyZXR1cm4gdD09PW51bGw/TmFOOit0fWZ1bmN0aW9uKlZ6KHQsZSl7aWYoZT09PXZvaWQgMClmb3IobGV0IG4gb2YgdCluIT1udWxsJiYobj0rbik+PW4mJih5aWVsZCBuKTtlbHNle2xldCBuPS0xO2ZvcihsZXQgciBvZiB0KShyPWUociwrK24sdCkpIT1udWxsJiYocj0rcik+PXImJih5aWVsZCByKX19Y29uc3QgV1A9b2woa3IpLFh6PVdQLnJpZ2h0LFV6PVdQLmxlZnQscXo9b2woJHcpLmNlbnRlcjt2YXIgS3o9WHo7ZnVuY3Rpb24gUXoodCxlLG4pe3JldHVybiBNYXRoLm1pbihuLE1hdGgubWF4KGUsdCkpfWZ1bmN0aW9uIFpwKHQpe3JldHVybiEhdC5nZXRCYW5kV2lkdGh9ZnVuY3Rpb24gc2QodCxlLG4pe2lmKCFacCh0KSlyZXR1cm4gdC5pbnZlcnQoZSk7Y29uc3R7YWRqdXN0ZWRSYW5nZTpyfT10LHtkb21haW46aX09dC5nZXRPcHRpb25zKCksYT1uPy0xOjAsbz10LmdldFN0ZXAoKSxzPW4/cjpyLm1hcCh1PT51K28pLGM9VXoocyxlKSxsPVF6KGMrYSwwLGkubGVuZ3RoLTEpO3JldHVybiBpW2xdfWZ1bmN0aW9uIHNsKHQsZSxuKXtpZighZSlyZXR1cm4gdC5nZXRPcHRpb25zKCkuZG9tYWluO2lmKCFacCh0KSl7Y29uc3QgYz1XbyhlKTtpZighbilyZXR1cm4gYztjb25zdFtsXT1jLHtyYW5nZTp1fT10LmdldE9wdGlvbnMoKSxbZixkXT11LGg9Zj5kPy0xOjEsdj10LmludmVydCh0Lm1hcChsKStoKm4pO3JldHVybltsLHZdfWNvbnN0e2RvbWFpbjpyfT10LmdldE9wdGlvbnMoKSxpPWVbMF0sYT1yLmluZGV4T2YoaSk7aWYobil7Y29uc3QgYz1hK01hdGgucm91bmQoci5sZW5ndGgqbik7cmV0dXJuIHIuc2xpY2UoYSxjKX1jb25zdCBvPWVbZS5sZW5ndGgtMV0scz1yLmluZGV4T2Yobyk7cmV0dXJuIHIuc2xpY2UoYSxzKzEpfWZ1bmN0aW9uIEFtKHQsZSxuLHIsaSxhKXtjb25zdHt4Om8seTpzfT1pLGM9KGgsdik9Pntjb25zdFtnLHldPWEuaW52ZXJ0KGgpO3JldHVybltzZChvLGcsdiksc2Qocyx5LHYpXX0sbD1jKFt0LGVdLCEwKSx1PWMoW24scl0sITEpLGY9c2wobyxbbFswXSx1WzBdXSksZD1zbChzLFtsWzFdLHVbMV1dKTtyZXR1cm5bZixkXX1mdW5jdGlvbiBUbSh0LGUpe2NvbnN0W24scl09dCxpPWE9PmEuZ2V0U3RlcD9hLmdldFN0ZXAoKTowO3JldHVybltlLm1hcChuKSxlLm1hcChyKStpKGUpXX1mdW5jdGlvbiBKeih0LGUsbil7Y29uc3R7eDpyLHk6aX09ZSxbYSxvXT10LHM9VG0oYSxyKSxjPVRtKG8saSksbD1bc1swXSxjWzBdXSx1PVtzWzFdLGNbMV1dLFtmLGRdPW4ubWFwKGwpLFtoLHZdPW4ubWFwKHUpO3JldHVybltmLGQsaCx2XX1jb25zdCBHUD1NYXRoLmFicyx0YT1NYXRoLmF0YW4yLF91PU1hdGguY29zLHRXPU1hdGgubWF4LFp3PU1hdGgubWluLGdzPU1hdGguc2luLGNkPU1hdGguc3FydCxlYT0xZS0xMixZcD1NYXRoLlBJLFBtPVlwLzIsZVc9MipZcDtmdW5jdGlvbiBuVyh0KXtyZXR1cm4gdD4xPzA6dDwtMT9ZcDpNYXRoLmFjb3ModCl9ZnVuY3Rpb24gJFAodCl7cmV0dXJuIHQ+PTE/UG06dDw9LTE/LVBtOk1hdGguYXNpbih0KX1mdW5jdGlvbiByVyh0KXtyZXR1cm4gdC5pbm5lclJhZGl1c31mdW5jdGlvbiBpVyh0KXtyZXR1cm4gdC5vdXRlclJhZGl1c31mdW5jdGlvbiBhVyh0KXtyZXR1cm4gdC5zdGFydEFuZ2xlfWZ1bmN0aW9uIG9XKHQpe3JldHVybiB0LmVuZEFuZ2xlfWZ1bmN0aW9uIHNXKHQpe3JldHVybiB0JiZ0LnBhZEFuZ2xlfWZ1bmN0aW9uIGNXKHQsZSxuLHIsaSxhLG8scyl7dmFyIGM9bi10LGw9ci1lLHU9by1pLGY9cy1hLGQ9ZipjLXUqbDtpZighKGQqZDxlYSkpcmV0dXJuIGQ9KHUqKGUtYSktZioodC1pKSkvZCxbdCtkKmMsZStkKmxdfWZ1bmN0aW9uIENtKHQsZSxuLHIsaSxhLG8pe3ZhciBzPXQtbixjPWUtcixsPShvP2E6LWEpL2NkKHMqcytjKmMpLHU9bCpjLGY9LWwqcyxkPXQrdSxoPWUrZix2PW4rdSxnPXIrZix5PShkK3YpLzIsYj0oaCtnKS8yLHg9di1kLF89Zy1oLHc9eCp4K18qXyxPPWktYSxFPWQqZy12KmgsTT0oXzwwPy0xOjEpKmNkKHRXKDAsTypPKnctRSpFKSksaz0oRSpfLXgqTSkvdyxBPSgtRSp4LV8qTSkvdyxQPShFKl8reCpNKS93LEM9KC1FKngrXypNKS93LE49ay15LEw9QS1iLFI9UC15LEk9Qy1iO3JldHVybiBOKk4rTCpMPlIqUitJKkkmJihrPVAsQT1DKSx7Y3g6ayxjeTpBLHgwMTotdSx5MDE6LWYseDExOmsqKGkvTy0xKSx5MTE6QSooaS9PLTEpfX1mdW5jdGlvbiBMbSgpe3ZhciB0PXJXLGU9aVcsbj12cigwKSxyPW51bGwsaT1hVyxhPW9XLG89c1cscz1udWxsLGM9QncobCk7ZnVuY3Rpb24gbCgpe3ZhciB1LGYsZD0rdC5hcHBseSh0aGlzLGFyZ3VtZW50cyksaD0rZS5hcHBseSh0aGlzLGFyZ3VtZW50cyksdj1pLmFwcGx5KHRoaXMsYXJndW1lbnRzKS1QbSxnPWEuYXBwbHkodGhpcyxhcmd1bWVudHMpLVBtLHk9R1AoZy12KSxiPWc+djtpZihzfHwocz11PWMoKSksaDxkJiYoZj1oLGg9ZCxkPWYpLCEoaD5lYSkpcy5tb3ZlVG8oMCwwKTtlbHNlIGlmKHk+ZVctZWEpcy5tb3ZlVG8oaCpfdSh2KSxoKmdzKHYpKSxzLmFyYygwLDAsaCx2LGcsIWIpLGQ+ZWEmJihzLm1vdmVUbyhkKl91KGcpLGQqZ3MoZykpLHMuYXJjKDAsMCxkLGcsdixiKSk7ZWxzZXt2YXIgeD12LF89Zyx3PXYsTz1nLEU9eSxNPXksaz1vLmFwcGx5KHRoaXMsYXJndW1lbnRzKS8yLEE9az5lYSYmKHI/K3IuYXBwbHkodGhpcyxhcmd1bWVudHMpOmNkKGQqZCtoKmgpKSxQPVp3KEdQKGgtZCkvMiwrbi5hcHBseSh0aGlzLGFyZ3VtZW50cykpLEM9UCxOPVAsTCxSO2lmKEE+ZWEpe3ZhciBJPSRQKEEvZCpncyhrKSksRD0kUChBL2gqZ3MoaykpOyhFLT1JKjIpPmVhPyhJKj1iPzE6LTEsdys9SSxPLT1JKTooRT0wLHc9Tz0oditnKS8yKSwoTS09RCoyKT5lYT8oRCo9Yj8xOi0xLHgrPUQsXy09RCk6KE09MCx4PV89KHYrZykvMil9dmFyIEc9aCpfdSh4KSxGPWgqZ3MoeCksVz1kKl91KE8pLFg9ZCpncyhPKTtpZihQPmVhKXt2YXIgUT1oKl91KF8pLHR0PWgqZ3MoXyksbnQ9ZCpfdSh3KSxodD1kKmdzKHcpLGx0O2lmKHk8WXApaWYobHQ9Y1coRyxGLG50LGh0LFEsdHQsVyxYKSl7dmFyIHd0PUctbHRbMF0seXQ9Ri1sdFsxXSxndD1RLWx0WzBdLEJ0PXR0LWx0WzFdLEx0PTEvZ3MoblcoKHd0Kmd0K3l0KkJ0KS8oY2Qod3Qqd3QreXQqeXQpKmNkKGd0Kmd0K0J0KkJ0KSkpLzIpLEl0PWNkKGx0WzBdKmx0WzBdK2x0WzFdKmx0WzFdKTtDPVp3KFAsKGQtSXQpLyhMdC0xKSksTj1adyhQLChoLUl0KS8oTHQrMSkpfWVsc2UgQz1OPTB9TT5lYT9OPmVhPyhMPUNtKG50LGh0LEcsRixoLE4sYiksUj1DbShRLHR0LFcsWCxoLE4sYikscy5tb3ZlVG8oTC5jeCtMLngwMSxMLmN5K0wueTAxKSxOPFA/cy5hcmMoTC5jeCxMLmN5LE4sdGEoTC55MDEsTC54MDEpLHRhKFIueTAxLFIueDAxKSwhYik6KHMuYXJjKEwuY3gsTC5jeSxOLHRhKEwueTAxLEwueDAxKSx0YShMLnkxMSxMLngxMSksIWIpLHMuYXJjKDAsMCxoLHRhKEwuY3krTC55MTEsTC5jeCtMLngxMSksdGEoUi5jeStSLnkxMSxSLmN4K1IueDExKSwhYikscy5hcmMoUi5jeCxSLmN5LE4sdGEoUi55MTEsUi54MTEpLHRhKFIueTAxLFIueDAxKSwhYikpKToocy5tb3ZlVG8oRyxGKSxzLmFyYygwLDAsaCx4LF8sIWIpKTpzLm1vdmVUbyhHLEYpLCEoZD5lYSl8fCEoRT5lYSk/cy5saW5lVG8oVyxYKTpDPmVhPyhMPUNtKFcsWCxRLHR0LGQsLUMsYiksUj1DbShHLEYsbnQsaHQsZCwtQyxiKSxzLmxpbmVUbyhMLmN4K0wueDAxLEwuY3krTC55MDEpLEM8UD9zLmFyYyhMLmN4LEwuY3ksQyx0YShMLnkwMSxMLngwMSksdGEoUi55MDEsUi54MDEpLCFiKToocy5hcmMoTC5jeCxMLmN5LEMsdGEoTC55MDEsTC54MDEpLHRhKEwueTExLEwueDExKSwhYikscy5hcmMoMCwwLGQsdGEoTC5jeStMLnkxMSxMLmN4K0wueDExKSx0YShSLmN5K1IueTExLFIuY3grUi54MTEpLGIpLHMuYXJjKFIuY3gsUi5jeSxDLHRhKFIueTExLFIueDExKSx0YShSLnkwMSxSLngwMSksIWIpKSk6cy5hcmMoMCwwLGQsTyx3LGIpfWlmKHMuY2xvc2VQYXRoKCksdSlyZXR1cm4gcz1udWxsLHUrIiJ8fG51bGx9cmV0dXJuIGwuY2VudHJvaWQ9ZnVuY3Rpb24oKXt2YXIgdT0oK3QuYXBwbHkodGhpcyxhcmd1bWVudHMpKyArZS5hcHBseSh0aGlzLGFyZ3VtZW50cykpLzIsZj0oK2kuYXBwbHkodGhpcyxhcmd1bWVudHMpKyArYS5hcHBseSh0aGlzLGFyZ3VtZW50cykpLzItWXAvMjtyZXR1cm5bX3UoZikqdSxncyhmKSp1XX0sbC5pbm5lclJhZGl1cz1mdW5jdGlvbih1KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD10eXBlb2YgdT09ImZ1bmN0aW9uIj91OnZyKCt1KSxsKTp0fSxsLm91dGVyUmFkaXVzPWZ1bmN0aW9uKHUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPXR5cGVvZiB1PT0iZnVuY3Rpb24iP3U6dnIoK3UpLGwpOmV9LGwuY29ybmVyUmFkaXVzPWZ1bmN0aW9uKHUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPXR5cGVvZiB1PT0iZnVuY3Rpb24iP3U6dnIoK3UpLGwpOm59LGwucGFkUmFkaXVzPWZ1bmN0aW9uKHUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPXU9PW51bGw/bnVsbDp0eXBlb2YgdT09ImZ1bmN0aW9uIj91OnZyKCt1KSxsKTpyfSxsLnN0YXJ0QW5nbGU9ZnVuY3Rpb24odSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9dHlwZW9mIHU9PSJmdW5jdGlvbiI/dTp2cigrdSksbCk6aX0sbC5lbmRBbmdsZT1mdW5jdGlvbih1KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT10eXBlb2YgdT09ImZ1bmN0aW9uIj91OnZyKCt1KSxsKTphfSxsLnBhZEFuZ2xlPWZ1bmN0aW9uKHUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPXR5cGVvZiB1PT0iZnVuY3Rpb24iP3U6dnIoK3UpLGwpOm99LGwuY29udGV4dD1mdW5jdGlvbih1KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz11PT1udWxsP251bGw6dSxsKTpzfSxsfXZhciBSbT1mdW5jdGlvbih0LGUpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiZlLmluZGV4T2Yocik8MCYmKG5bcl09dFtyXSk7aWYodCE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBpPTAscj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2k8ci5sZW5ndGg7aSsrKWUuaW5kZXhPZihyW2ldKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodCxyW2ldKSYmKG5bcltpXV09dFtyW2ldXSk7cmV0dXJuIG59O2Z1bmN0aW9uIFpQKHQsZSxuLHIsaT17fSl7Y29uc3R7aW5zZXQ6YT0wLHJhZGl1czpvPTAsaW5zZXRMZWZ0OnM9YSxpbnNldFRvcDpjPWEsaW5zZXRSaWdodDpsPWEsaW5zZXRCb3R0b206dT1hLHJhZGl1c0JvdHRvbUxlZnQ6Zj1vLHJhZGl1c0JvdHRvbVJpZ2h0OmQ9byxyYWRpdXNUb3BMZWZ0Omg9byxyYWRpdXNUb3BSaWdodDp2PW8sbWluV2lkdGg6Zz0tMS8wLG1heFdpZHRoOnk9MS8wLG1pbkhlaWdodDpiPS0xLzB9PWkseD1SbShpLFsiaW5zZXQiLCJyYWRpdXMiLCJpbnNldExlZnQiLCJpbnNldFRvcCIsImluc2V0UmlnaHQiLCJpbnNldEJvdHRvbSIsInJhZGl1c0JvdHRvbUxlZnQiLCJyYWRpdXNCb3R0b21SaWdodCIsInJhZGl1c1RvcExlZnQiLCJyYWRpdXNUb3BSaWdodCIsIm1pbldpZHRoIiwibWF4V2lkdGgiLCJtaW5IZWlnaHQiXSk7aWYoIUJuKHIpJiYhSEEocikpe2NvbnN0IGs9ISFocihyKSxbQSwsUF09az9FbShlKTplLFtDLE5dPUEsW0wsUl09TXIoUCxBKSxJPUw+MD9DOkMrTCxEPVI+MD9OOk4rUixHPU1hdGguYWJzKEwpLEY9TWF0aC5hYnMoUiksVz1JK3MsWD1EK2MsUT1HLShzK2wpLHR0PUYtKGMrdSksbnQ9az9ubShRLGIsMS8wKTpubShRLGcseSksaHQ9az9ubSh0dCxnLHkpOm5tKHR0LGIsMS8wKSxsdD1rP1c6Vy0obnQtUSkvMix3dD1rP1gtKGh0LXR0KS8yOlgtKGh0LXR0KTtyZXR1cm4gT2UodC5jcmVhdGVFbGVtZW50KCJyZWN0Iix7fSkpLnN0eWxlKCJ4IixsdCkuc3R5bGUoInkiLHd0KS5zdHlsZSgid2lkdGgiLG50KS5zdHlsZSgiaGVpZ2h0IixodCkuc3R5bGUoInJhZGl1cyIsW2gsdixkLGZdKS5jYWxsKGxlLHgpLm5vZGUoKX1jb25zdHt5Ol8seTE6d309bixPPXIuZ2V0Q2VudGVyKCksRT1tdShyLGUsW18sd10pLE09TG0oKS5jb3JuZXJSYWRpdXMobykucGFkQW5nbGUoYSpNYXRoLlBJLzE4MCk7cmV0dXJuIE9lKHQuY3JlYXRlRWxlbWVudCgicGF0aCIse30pKS5zdHlsZSgiZCIsTShFKSkuc3R5bGUoInRyYW5zZm9ybSIsYHRyYW5zbGF0ZSgke09bMF19LCAke09bMV19KWApLnN0eWxlKCJyYWRpdXMiLG8pLnN0eWxlKCJpbnNldCIsYSkuY2FsbChsZSx4KS5ub2RlKCl9Y29uc3QgSHA9KHQsZSk9Pntjb25zdHtjb2xvckF0dHJpYnV0ZTpuLG9wYWNpdHlBdHRyaWJ1dGU6cj0iZmlsbCIsZmlyc3Q6aT0hMCxsYXN0OmE9ITB9PXQsbz1SbSh0LFsiY29sb3JBdHRyaWJ1dGUiLCJvcGFjaXR5QXR0cmlidXRlIiwiZmlyc3QiLCJsYXN0Il0pLHtjb29yZGluYXRlOnMsZG9jdW1lbnQ6Y309ZTtyZXR1cm4obCx1LGYpPT57Y29uc3R7Y29sb3I6ZCxyYWRpdXM6aD0wfT1mLHY9Um0oZixbImNvbG9yIiwicmFkaXVzIl0pLGc9di5saW5lV2lkdGh8fDEse3N0cm9rZTp5LHJhZGl1czpiPWgscmFkaXVzVG9wTGVmdDp4PWIscmFkaXVzVG9wUmlnaHQ6Xz1iLHJhZGl1c0JvdHRvbVJpZ2h0Onc9YixyYWRpdXNCb3R0b21MZWZ0Ok89Yixpbm5lclJhZGl1czpFPTAsaW5uZXJSYWRpdXNUb3BMZWZ0Ok09RSxpbm5lclJhZGl1c1RvcFJpZ2h0Oms9RSxpbm5lclJhZGl1c0JvdHRvbVJpZ2h0OkE9RSxpbm5lclJhZGl1c0JvdHRvbUxlZnQ6UD1FLGxpbmVXaWR0aDpDPW49PT0ic3Ryb2tlInx8eT9nOjAsaW5zZXQ6Tj0wLGluc2V0TGVmdDpMPU4saW5zZXRSaWdodDpSPU4saW5zZXRCb3R0b206ST1OLGluc2V0VG9wOkQ9TixtaW5XaWR0aDpHLG1heFdpZHRoOkYsbWluSGVpZ2h0Old9PW8sWD1SbShvLFsic3Ryb2tlIiwicmFkaXVzIiwicmFkaXVzVG9wTGVmdCIsInJhZGl1c1RvcFJpZ2h0IiwicmFkaXVzQm90dG9tUmlnaHQiLCJyYWRpdXNCb3R0b21MZWZ0IiwiaW5uZXJSYWRpdXMiLCJpbm5lclJhZGl1c1RvcExlZnQiLCJpbm5lclJhZGl1c1RvcFJpZ2h0IiwiaW5uZXJSYWRpdXNCb3R0b21SaWdodCIsImlubmVyUmFkaXVzQm90dG9tTGVmdCIsImxpbmVXaWR0aCIsImluc2V0IiwiaW5zZXRMZWZ0IiwiaW5zZXRSaWdodCIsImluc2V0Qm90dG9tIiwiaW5zZXRUb3AiLCJtaW5XaWR0aCIsIm1heFdpZHRoIiwibWluSGVpZ2h0Il0pLHtjb2xvcjpRPWQsb3BhY2l0eTp0dH09dSxudD1baT94Ok0saT9fOmssYT93OkEsYT9POlBdLGh0PVsicmFkaXVzVG9wTGVmdCIsInJhZGl1c1RvcFJpZ2h0IiwicmFkaXVzQm90dG9tUmlnaHQiLCJyYWRpdXNCb3R0b21MZWZ0Il07aHIocykmJmh0LnB1c2goaHQuc2hpZnQoKSk7Y29uc3QgbHQ9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHtyYWRpdXM6Yn0sT2JqZWN0LmZyb21FbnRyaWVzKGh0Lm1hcCgod3QseXQpPT5bd3QsbnRbeXRdXSkpKSx7aW5zZXQ6TixpbnNldExlZnQ6TCxpbnNldFJpZ2h0OlIsaW5zZXRCb3R0b206SSxpbnNldFRvcDpELG1pbldpZHRoOkcsbWF4V2lkdGg6RixtaW5IZWlnaHQ6V30pO3JldHVybiBPZShaUChjLGwsdSxzLGx0KSkuY2FsbChsZSx2KS5zdHlsZSgiZmlsbCIsInRyYW5zcGFyZW50Iikuc3R5bGUobixRKS5zdHlsZShJdyh0KSx0dCkuc3R5bGUoImxpbmVXaWR0aCIsQykuc3R5bGUoInN0cm9rZSIseT09PXZvaWQgMD9ROnkpLmNhbGwobGUsWCkubm9kZSgpfX07SHAucHJvcHM9e2RlZmF1bHRFbnRlckFuaW1hdGlvbjoic2NhbGVJblkiLGRlZmF1bHRVcGRhdGVBbmltYXRpb246Im1vcnBoaW5nIixkZWZhdWx0RXhpdEFuaW1hdGlvbjoiZmFkZU91dCJ9O2NvbnN0IGxXPXt2aXNpYmlsaXR5OiJ2aXNpYmxlIixvcGFjaXR5OjEsZmlsbE9wYWNpdHk6MSxzdHJva2VPcGFjaXR5OjF9O2Z1bmN0aW9uIHVXKHQsZSl7dmFyIG47cmV0dXJuKG49dC5zdHlsZVtlXSkhPT1udWxsJiZuIT09dm9pZCAwP246bFdbZV19ZnVuY3Rpb24gWXcodCxlLG4scil7dC5zdHlsZVtlXT1uLHImJnQuY2hpbGRyZW4uZm9yRWFjaChpPT5ZdyhpLGUsbixyKSl9ZnVuY3Rpb24gSHcodCl7WXcodCwidmlzaWJpbGl0eSIsImhpZGRlbiIsITApfWZ1bmN0aW9uIE5tKHQpe1l3KHQsInZpc2liaWxpdHkiLCJ2aXNpYmxlIiwhMCl9dmFyIFZwPWZ1bmN0aW9uKHQsZSl7dmFyIG49e307Zm9yKHZhciByIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscikmJmUuaW5kZXhPZihyKTwwJiYobltyXT10W3JdKTtpZih0IT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIGk9MCxyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCk7aTxyLmxlbmd0aDtpKyspZS5pbmRleE9mKHJbaV0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh0LHJbaV0pJiYobltyW2ldXT10W3JbaV1dKTtyZXR1cm4gbn07ZnVuY3Rpb24gY2wodCl7cmV0dXJuIE9lKHQpLnNlbGVjdEFsbChgLiR7bWF9YCkubm9kZXMoKS5maWx0ZXIoZT0+IWUuX19yZW1vdmVkX18pfWZ1bmN0aW9uIFlQKHQsZSl7cmV0dXJuIFZ3KHQsZSkuZmxhdE1hcCgoe2NvbnRhaW5lcjpufSk9PmNsKG4pKX1mdW5jdGlvbiBWdyh0LGUpe3JldHVybiBlLmZpbHRlcihuPT5uIT09dCYmbi5vcHRpb25zLnBhcmVudEtleT09PXQub3B0aW9ucy5rZXkpfWZ1bmN0aW9uIHlzKHQpe3JldHVybiBPZSh0KS5zZWxlY3QoYC4ke2JhfWApLm5vZGUoKX1mdW5jdGlvbiBIUCh0KXtpZih0LnRhZ05hbWU9PT0iZyIpcmV0dXJuIHQuZ2V0UmVuZGVyQm91bmRzKCk7Y29uc3QgZT10LmdldEdlb21ldHJ5Qm91bmRzKCksbj1uZXcgeHI7cmV0dXJuIG4uc2V0RnJvbVRyYW5zZm9ybWVkQUFCQihlLHQuZ2V0V29ybGRUcmFuc2Zvcm0oKSksbn1mdW5jdGlvbiBYcCh0LGUpe2NvbnN0e29mZnNldFg6bixvZmZzZXRZOnJ9PWUsaT1IUCh0KSx7bWluOlthLG9dLG1heDpbcyxjXX09aSxsPW48YXx8bj5zLHU9cjxvfHxyPmM7cmV0dXJuIGx8fHU/bnVsbDpbbi1hLHItb119ZnVuY3Rpb24gWHcodCxlKXtjb25zdHtvZmZzZXRYOm4sb2Zmc2V0WTpyfT1lLFtpLGEsbyxzXT1mVyh0KTtyZXR1cm5bTWF0aC5taW4obyxNYXRoLm1heChpLG4pKS1pLE1hdGgubWluKHMsTWF0aC5tYXgoYSxyKSktYV19ZnVuY3Rpb24gZlcodCl7Y29uc3QgZT10LmdldFJlbmRlckJvdW5kcygpLHttaW46W24scl0sbWF4OltpLGFdfT1lO3JldHVybltuLHIsaSxhXX1mdW5jdGlvbiBWUCh0KXtyZXR1cm4gZT0+ZS5fX2RhdGFfXy5jb2xvcn1mdW5jdGlvbiBVdyh0KXtyZXR1cm4gZT0+ZS5fX2RhdGFfXy54fWZ1bmN0aW9uIHd1KHQpe2NvbnN0IGU9QXJyYXkuaXNBcnJheSh0KT90Olt0XSxuPW5ldyBNYXAoZS5mbGF0TWFwKHI9PkFycmF5LmZyb20oci5tYXJrU3RhdGUua2V5cygpKS5tYXAoYT0+W0ltKHIua2V5LGEua2V5KSxhLmRhdGFdKSkpO3JldHVybiByPT57Y29uc3R7aW5kZXg6aSxtYXJrS2V5OmEsdmlld0tleTpvfT1yLl9fZGF0YV9fO3JldHVybiBuLmdldChJbShvLGEpKVtpXX19ZnVuY3Rpb24gbGModCxlPShyLGkpPT5yLG49KHIsaSxhKT0+ci5zZXRBdHRyaWJ1dGUoaSxhKSl7Y29uc3Qgcj0iX19zdGF0ZXNfXyIsaT0iX19vcmRpbmFsX18iLGE9dT0+e2NvbnN0e1tyXTpmPVtdLFtpXTpkPXt9fT11LGg9Zi5yZWR1Y2UoKHYsZyk9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx2KSx0W2ddKSxkKTtpZihPYmplY3Qua2V5cyhoKS5sZW5ndGghPT0wKXtmb3IoY29uc3RbdixnXW9mIE9iamVjdC5lbnRyaWVzKGgpKXtjb25zdCB5PXVXKHUsdiksYj1lKGcsdSk7bih1LHYsYiksdiBpbiBkfHwoZFt2XT15KX11W2ldPWR9fSxvPXU9Pnt1W3JdfHwodVtyXT1bXSl9O3JldHVybntzZXRTdGF0ZToodSwuLi5mKT0+e28odSksdVtyXT1bLi4uZl0sYSh1KX0scmVtb3ZlU3RhdGU6KHUsLi4uZik9PntvKHUpO2Zvcihjb25zdCBkIG9mIGYpe2NvbnN0IGg9dVtyXS5pbmRleE9mKGQpO2ghPT0tMSYmdVtyXS5zcGxpY2UoaCwxKX1hKHUpfSxoYXNTdGF0ZToodSxmKT0+KG8odSksdVtyXS5pbmRleE9mKGYpIT09LTEpfX1mdW5jdGlvbiBkVyh0KXtyZXR1cm4gdD09PXZvaWQgMD8hMDp0eXBlb2YgdCE9Im9iamVjdCI/ITE6T2JqZWN0LmtleXModCkubGVuZ3RoPT09MH1mdW5jdGlvbiBJbSh0LGUpe3JldHVybmAke3R9LCR7ZX1gfWZ1bmN0aW9uIGxkKHQsZSl7Y29uc3Qgcj0oQXJyYXkuaXNBcnJheSh0KT90Olt0XSkuZmxhdE1hcChhPT5hLm1hcmtzLm1hcChvPT5bSW0oYS5rZXksby5rZXkpLG8uc3RhdGVdKSksaT17fTtmb3IoY29uc3QgYSBvZiBlKXtjb25zdFtvLHNdPUFycmF5LmlzQXJyYXkoYSk/YTpbYSx7fV07aVtvXT1yLnJlZHVjZSgoYyxsKT0+e2NvbnN0W3UsZj17fV09bCxkPWRXKGZbb10pP3M6ZltvXTtmb3IoY29uc3RbaCx2XW9mIE9iamVjdC5lbnRyaWVzKGQpKXtjb25zdCBnPWNbaF0seT0oYix4LF8sdyk9Pntjb25zdCBPPUltKHcuX19kYXRhX18udmlld0tleSx3Ll9fZGF0YV9fLm1hcmtLZXkpO3JldHVybiB1IT09Tz9nPT1udWxsP3ZvaWQgMDpnKGIseCxfLHcpOnR5cGVvZiB2IT0iZnVuY3Rpb24iP3Y6dihiLHgsXyx3KX07Y1toXT15fXJldHVybiBjfSx7fSl9cmV0dXJuIGl9ZnVuY3Rpb24gVXAodCxlKXtjb25zdCBuPW5ldyBNYXAodC5tYXAoKGksYSk9PltpLGFdKSkscj1lP3QubWFwKGUpOnQ7cmV0dXJuKGksYSk9PntpZih0eXBlb2YgaSE9ImZ1bmN0aW9uIilyZXR1cm4gaTtjb25zdCBvPW4uZ2V0KGEpLHM9ZT9lKGEpOmE7cmV0dXJuIGkocyxvLHIsYSl9fWZ1bmN0aW9uIFhQKHQpe3ZhcntsaW5rOmU9ITEsdmFsdWVvZjpuPSh1LGYpPT51LGNvb3JkaW5hdGU6cn09dCxpPVZwKHQsWyJsaW5rIiwidmFsdWVvZiIsImNvb3JkaW5hdGUiXSk7Y29uc3QgYT0iZWxlbWVudC1saW5rIjtpZighZSlyZXR1cm5bKCk9Pnt9LCgpPT57fV07Y29uc3Qgbz11PT51Ll9fZGF0YV9fLnBvaW50cyxzPSh1LGYpPT57Y29uc3RbLGQsaF09dSxbdiwsLGddPWY7cmV0dXJuW2QsdixnLGhdfTtyZXR1cm5bdT0+e3ZhciBmO2lmKHUubGVuZ3RoPD0xKXJldHVybjtjb25zdCBkPVdvKHUsKGgsdik9Pntjb25zdHt4Omd9PWguX19kYXRhX18se3g6eX09di5fX2RhdGFfXztyZXR1cm4gZy15fSk7Zm9yKGxldCBoPTE7aDxkLmxlbmd0aDtoKyspe2NvbnN0IHY9T28oKSxnPWRbaC0xXSx5PWRbaF0sW2IseCxfLHddPXMobyhnKSxvKHkpKTt2Lm1vdmVUbyguLi5iKSx2LmxpbmVUbyguLi54KSx2LmxpbmVUbyguLi5fKSx2LmxpbmVUbyguLi53KSx2LmNsb3NlUGF0aCgpO2NvbnN0IE89ZnMoaSxBPT5uKEEsZykpLHtmaWxsOkU9Zy5nZXRBdHRyaWJ1dGUoImZpbGwiKX09TyxNPVZwKE8sWyJmaWxsIl0pLGs9bmV3IFFpKHtjbGFzc05hbWU6YSxzdHlsZTpPYmplY3QuYXNzaWduKHtkOnYudG9TdHJpbmcoKSxmaWxsOkUsekluZGV4Oi0yfSxNKX0pOyhmPWcubGluayk9PT1udWxsfHxmPT09dm9pZCAwfHxmLnJlbW92ZSgpLGcucGFyZW50Tm9kZS5hcHBlbmRDaGlsZChrKSxnLmxpbms9a319LHU9Pnt2YXIgZjsoZj11LmxpbmspPT09bnVsbHx8Zj09PXZvaWQgMHx8Zi5yZW1vdmUoKSx1Lmxpbms9bnVsbH1dfWZ1bmN0aW9uIFVQKHQsZSxuKXtjb25zdCByPWk9Pntjb25zdHt0cmFuc2Zvcm06YX09dC5zdHlsZTtyZXR1cm4gYT9gJHthfSAke2l9YDppfTtpZihCbihuKSl7Y29uc3R7cG9pbnRzOml9PXQuX19kYXRhX18sW2Esb109aHIobik/RW0oaSk6aSxzPW4uZ2V0Q2VudGVyKCksYz1NcihhLHMpLGw9TXIobyxzKSx1PXdvKGMpLGY9bVAoYyxsKSxkPXUrZi8yLGg9ZSpNYXRoLmNvcyhkKSx2PWUqTWF0aC5zaW4oZCk7cmV0dXJuIHIoYHRyYW5zbGF0ZSgke2h9LCAke3Z9KWApfXJldHVybiBocihuKT9yKGB0cmFuc2xhdGUoJHtlfSwgMClgKTpyKGB0cmFuc2xhdGUoMCwgJHstZX0pYCl9ZnVuY3Rpb24gcVAodCl7dmFye2RvY3VtZW50OmUsYmFja2dyb3VuZDpuLHNjYWxlOnIsY29vcmRpbmF0ZTppLHZhbHVlb2Y6YX09dCxvPVZwKHQsWyJkb2N1bWVudCIsImJhY2tncm91bmQiLCJzY2FsZSIsImNvb3JkaW5hdGUiLCJ2YWx1ZW9mIl0pO2NvbnN0IHM9ImVsZW1lbnQtYmFja2dyb3VuZCI7aWYoIW4pcmV0dXJuWygpPT57fSwoKT0+e31dO2NvbnN0IGM9KGIseCxfKT0+e2NvbnN0IHc9Yi5pbnZlcnQoeCksTz14K2IuZ2V0QmFuZFdpZHRoKHcpLzIsRT1iLmdldFN0ZXAodykvMixNPUUqXztyZXR1cm5bTy1FK00sTytFLU1dfSxsPShiLHgpPT57Y29uc3R7eDpffT1yO2lmKCFacChfKSlyZXR1cm5bMCwxXTtjb25zdHtfX2RhdGFfXzp3fT1iLHt4Ok99PXcsW0UsTV09YyhfLE8seCk7cmV0dXJuW0UsTV19LHU9KGIseCk9Pntjb25zdHt5Ol99PXI7aWYoIVpwKF8pKXJldHVyblswLDFdO2NvbnN0e19fZGF0YV9fOnd9PWIse3k6T309dyxbRSxNXT1jKF8sTyx4KTtyZXR1cm5bRSxNXX0sZj0oYix4KT0+e2NvbnN0e3BhZGRpbmc6X309eCxbdyxPXT1sKGIsXyksW0UsTV09dShiLF8pLGs9W1t3LEVdLFtPLEVdLFtPLE1dLFt3LE1dXS5tYXAoTj0+aS5tYXAoTikpLHtfX2RhdGFfXzpBfT1iLHt5OlAseTE6Q309QTtyZXR1cm4gWlAoZSxrLHt5OlAseTE6Q30saSx4KX0sZD0oYix4KT0+e2NvbnN0e3RyYW5zZm9ybTpfPSJzY2FsZSgxLjIsIDEuMikiLHRyYW5zZm9ybU9yaWdpbjp3PSJjZW50ZXIgY2VudGVyIixzdHJva2U6Tz0iIn09eCxFPVZwKHgsWyJ0cmFuc2Zvcm0iLCJ0cmFuc2Zvcm1PcmlnaW4iLCJzdHJva2UiXSksTT1PYmplY3QuYXNzaWduKHt0cmFuc2Zvcm06Xyx0cmFuc2Zvcm1PcmlnaW46dyxzdHJva2U6T30sRSksaz1iLmNsb25lTm9kZSghMCk7Zm9yKGNvbnN0W0EsUF1vZiBPYmplY3QuZW50cmllcyhNKSlrLnN0eWxlW0FdPVA7cmV0dXJuIGt9LGg9KCk9Pntjb25zdHt4OmIseTp4fT1yO3JldHVybltiLHhdLnNvbWUoWnApfTtyZXR1cm5bYj0+e2IuYmFja2dyb3VuZCYmYi5iYWNrZ3JvdW5kLnJlbW92ZSgpO2NvbnN0IHg9ZnMobyxOPT5hKE4sYikpLHtmaWxsOl89IiNDQ0Q2RUMiLGZpbGxPcGFjaXR5Onc9LjMsekluZGV4Ok89LTIscGFkZGluZzpFPS4wMDEsbGluZVdpZHRoOk09MH09eCxrPVZwKHgsWyJmaWxsIiwiZmlsbE9wYWNpdHkiLCJ6SW5kZXgiLCJwYWRkaW5nIiwibGluZVdpZHRoIl0pLEE9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGspLHtmaWxsOl8sZmlsbE9wYWNpdHk6dyx6SW5kZXg6TyxwYWRkaW5nOkUsbGluZVdpZHRoOk19KSxDPShoKCk/ZjpkKShiLEEpO0MuY2xhc3NOYW1lPXMsYi5wYXJlbnROb2RlLnBhcmVudE5vZGUuYXBwZW5kQ2hpbGQoQyksYi5iYWNrZ3JvdW5kPUN9LGI9Pnt2YXIgeDsoeD1iLmJhY2tncm91bmQpPT09bnVsbHx8eD09PXZvaWQgMHx8eC5yZW1vdmUoKSxiLmJhY2tncm91bmQ9bnVsbH0sYj0+Yi5jbGFzc05hbWU9PT1zXX1mdW5jdGlvbiBsbCh0LGUpe2NvbnN0IHI9dC5nZXRSb290Tm9kZSgpLmRlZmF1bHRWaWV3LmdldENvbnRleHRTZXJ2aWNlKCkuZ2V0RG9tRWxlbWVudCgpO3IhPW51bGwmJnIuc3R5bGUmJih0LmN1cnNvcj1yLnN0eWxlLmN1cnNvcixyLnN0eWxlLmN1cnNvcj1lKX1mdW5jdGlvbiBoVyh0KXtsbCh0LHQuY3Vyc29yKX1mdW5jdGlvbiBxdyh0LGUsbil7cmV0dXJuIHQuZmluZChyPT5PYmplY3QuZW50cmllcyhlKS5ldmVyeSgoW2ksYV0pPT5uKHIpW2ldPT09YSkpfWZ1bmN0aW9uIERtKHQsZSl7cmV0dXJuIE1hdGguc3FydChNYXRoLnBvdyh0WzBdLWVbMF0sMikrTWF0aC5wb3codFsxXS1lWzFdLDIpKX1mdW5jdGlvbiBxcCh0LGU9ITEpe2NvbnN0IG49elAodCxyPT4hIXIpLm1hcCgocixpKT0+W2k9PT0wPyJNIjoiTCIsLi4ucl0pO3JldHVybiBlJiZuLnB1c2goWyJaIl0pLG59ZnVuY3Rpb24gS1AodCl7cmV0dXJuIHQucXVlcnlTZWxlY3RvckFsbCgiLmVsZW1lbnQiKX1mdW5jdGlvbiBwVyh0LGUsbj0wKXtjb25zdCByPVtbIk0iLC4uLmVbMV1dXSxpPURtKHQsZVsxXSksYT1EbSh0LGVbMF0pO3JldHVybiBpPT09MD9yLnB1c2goWyJMIiwuLi5lWzNdXSxbIkEiLGEsYSwwLG4sMSwuLi5lWzBdXSxbIloiXSk6ci5wdXNoKFsiQSIsaSxpLDAsbiwwLC4uLmVbMl1dLFsiTCIsLi4uZVszXV0sWyJBIixhLGEsMCxuLDEsLi4uZVswXV0sWyJaIl0pLHJ9ZnVuY3Rpb24gam0odCxlKXtpZihlKHQpKXJldHVybiB0O2xldCBuPXQucGFyZW50O2Zvcig7biYmIWUobik7KW49bi5wYXJlbnQ7cmV0dXJuIG59ZnVuY3Rpb24gUVAodCxlKXtjb25zdHtfX2RhdGFfXzpufT10LHttYXJrS2V5OnIsaW5kZXg6aSxzZXJpZXNJbmRleDphfT1uLHttYXJrU3RhdGU6b309ZSxzPUFycmF5LmZyb20oby5rZXlzKCkpLmZpbmQoYz0+Yy5rZXk9PT1yKTtpZihzKXJldHVybiBhP2EubWFwKGM9PnMuZGF0YVtjXSk6cy5kYXRhW2ldfWZ1bmN0aW9uIHZXKHQpe3JldHVybiBqbSh0LGU9PmUuY2xhc3NOYW1lPT09ImNvbXBvbmVudCIpfWZ1bmN0aW9uIGdXKHQpe3JldHVybiBqbSh0LGU9PmUuY2xhc3NOYW1lPT09ImVsZW1lbnQiKX1mdW5jdGlvbiB5Vyh0KXtyZXR1cm4gam0odCxlPT5lLmNsYXNzTmFtZT09PSJsYWJlbCIpfWZ1bmN0aW9uIHhpKHQsZSxuLHI9aT0+ITApe3JldHVybiBpPT57aWYoIXIoaSkpcmV0dXJuO24uZW1pdChgcGxvdDoke3R9YCxpKTtjb25zdHt0YXJnZXQ6YX09aTtpZighYSlyZXR1cm47Y29uc3R7Y2xhc3NOYW1lOm99PWE7aWYobz09PSJwbG90IilyZXR1cm47Y29uc3Qgcz1nVyhhKSxjPXZXKGEpLGw9eVcoYSksdT1zfHxjfHxsO2lmKCF1KXJldHVybjtjb25zdHtjbGFzc05hbWU6ZixtYXJrVHlwZTpkfT11LGg9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGkpLHtuYXRpdmVFdmVudDohMH0pO2Y9PT0iZWxlbWVudCI/KGguZGF0YT17ZGF0YTpRUCh1LGUpfSxuLmVtaXQoYGVsZW1lbnQ6JHt0fWAsaCksbi5lbWl0KGAke2R9OiR7dH1gLGgpKTpmPT09ImxhYmVsIj8oaC5kYXRhPXtkYXRhOnUuYXR0cmlidXRlcy5kYXR1bX0sbi5lbWl0KGBsYWJlbDoke3R9YCxoKSxuLmVtaXQoYCR7b306JHt0fWAsaCkpOihuLmVtaXQoYGNvbXBvbmVudDoke3R9YCxoKSxuLmVtaXQoYCR7b306JHt0fWAsaCkpfX1mdW5jdGlvbiBKUCgpe3JldHVybih0LGUsbik9Pntjb25zdHtjb250YWluZXI6cix2aWV3Oml9PXQsYT14aShJbi5DTElDSyxpLG4sTT0+TS5kZXRhaWw9PT0xKSxvPXhpKEluLkRCTENMSUNLLGksbixNPT5NLmRldGFpbD09PTIpLHM9eGkoSW4uUE9JTlRFUl9UQVAsaSxuKSxjPXhpKEluLlBPSU5URVJfRE9XTixpLG4pLGw9eGkoSW4uUE9JTlRFUl9VUCxpLG4pLHU9eGkoSW4uUE9JTlRFUl9PVkVSLGksbiksZj14aShJbi5QT0lOVEVSX09VVCxpLG4pLGQ9eGkoSW4uUE9JTlRFUl9NT1ZFLGksbiksaD14aShJbi5QT0lOVEVSX0VOVEVSLGksbiksdj14aShJbi5QT0lOVEVSX0xFQVZFLGksbiksZz14aShJbi5QT0lOVEVSX1VQT1VUU0lERSxpLG4pLHk9eGkoSW4uRFJBR19TVEFSVCxpLG4pLGI9eGkoSW4uRFJBRyxpLG4pLHg9eGkoSW4uRFJBR19FTkQsaSxuKSxfPXhpKEluLkRSQUdfRU5URVIsaSxuKSx3PXhpKEluLkRSQUdfTEVBVkUsaSxuKSxPPXhpKEluLkRSQUdfT1ZFUixpLG4pLEU9eGkoSW4uRFJPUCxpLG4pO3JldHVybiByLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixhKSxyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixvKSxyLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJ0YXAiLHMpLHIuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmRvd24iLGMpLHIuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIixsKSxyLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJvdmVyIix1KSxyLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJvdXQiLGYpLHIuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLGQpLHIuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmVudGVyIixoKSxyLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJsZWF2ZSIsdiksci5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVydXBvdXRzaWRlIixnKSxyLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdzdGFydCIseSksci5hZGRFdmVudExpc3RlbmVyKCJkcmFnIixiKSxyLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdlbmQiLHgpLHIuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2VudGVyIixfKSxyLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdsZWF2ZSIsdyksci5hZGRFdmVudExpc3RlbmVyKCJkcmFnb3ZlciIsTyksci5hZGRFdmVudExpc3RlbmVyKCJkcm9wIixFKSwoKT0+e3IucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLGEpLHIucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLG8pLHIucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcnRhcCIscyksci5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsYyksci5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLGwpLHIucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcm92ZXIiLHUpLHIucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcm91dCIsZiksci5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsZCksci5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVyZW50ZXIiLGgpLHIucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcmxlYXZlIix2KSxyLnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cG91dHNpZGUiLGcpLHIucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZHJhZ3N0YXJ0Iix5KSxyLnJlbW92ZUV2ZW50TGlzdGVuZXIoImRyYWciLGIpLHIucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZHJhZ2VuZCIseCksci5yZW1vdmVFdmVudExpc3RlbmVyKCJkcmFnZW50ZXIiLF8pLHIucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZHJhZ2xlYXZlIix3KSxyLnJlbW92ZUV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIixPKSxyLnJlbW92ZUV2ZW50TGlzdGVuZXIoImRyb3AiLEUpfX19SlAucHJvcHM9e3JlYXBwbHlXaGVuVXBkYXRlOiEwfTtmdW5jdGlvbiBtVygpe3JldHVybnsiY29tcG9uZW50LmF4aXNSYWRhciI6S1QsImNvbXBvbmVudC5heGlzTGluZWFyIjpybCwiY29tcG9uZW50LmF4aXNBcmMiOnFULCJjb21wb25lbnQubGVnZW5kQ29udGludW91c0Jsb2NrIjpwUCwiY29tcG9uZW50LmxlZ2VuZENvbnRpbnVvdXNCbG9ja1NpemUiOnZQLCJjb21wb25lbnQubGVnZW5kQ29udGludW91c1NpemUiOkN3LCJpbnRlcmFjdGlvbi5ldmVudCI6SlAsImNvbXBvc2l0aW9uLm1hcmsiOmdQLCJjb21wb3NpdGlvbi52aWV3Ijp5UCwic2hhcGUubGFiZWwubGFiZWwiOkJQfX12YXIgYlc9ZnVuY3Rpb24odCxlKXt2YXIgbj17fTtmb3IodmFyIHIgaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKSYmZS5pbmRleE9mKHIpPDAmJihuW3JdPXRbcl0pO2lmKHQhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgaT0wLHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTtpPHIubGVuZ3RoO2krKyllLmluZGV4T2YocltpXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHQscltpXSkmJihuW3JbaV1dPXRbcltpXV0pO3JldHVybiBufTtmdW5jdGlvbiBncih0LGUpe2NvbnN0IG49T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG1XKCkpLGUpLHI9YT0+e2lmKHR5cGVvZiBhIT0ic3RyaW5nIilyZXR1cm4gYTtjb25zdCBvPWAke3R9LiR7YX1gO3JldHVybiBuW29dfHxYZihgVW5rbm93biBDb21wb25lbnQ6ICR7b31gKX07cmV0dXJuWyhhLG8pPT57Y29uc3R7dHlwZTpzfT1hLGM9YlcoYSxbInR5cGUiXSk7c3x8WGYoIlBsb3QgdHlwZSBpcyByZXF1aXJlZCEiKTtjb25zdCBsPXIocyk7cmV0dXJuIGw9PW51bGw/dm9pZCAwOmwoYyxvKX0scl19ZnVuY3Rpb24gdDModCl7Y29uc3R7Y2FudmFzOmUsZ3JvdXA6bn09dDtyZXR1cm4oZT09bnVsbD92b2lkIDA6ZS5kb2N1bWVudCl8fChuPT1udWxsP3ZvaWQgMDpuLm93bmVyRG9jdW1lbnQpfHxYZigiQ2Fubm90IGZpbmQgbGlicmFyeSBkb2N1bWVudCIpfXZhciBlMz1mdW5jdGlvbih0LGUpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiZlLmluZGV4T2Yocik8MCYmKG5bcl09dFtyXSk7aWYodCE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBpPTAscj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2k8ci5sZW5ndGg7aSsrKWUuaW5kZXhPZihyW2ldKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodCxyW2ldKSYmKG5bcltpXV09dFtyW2ldXSk7cmV0dXJuIG59O2Z1bmN0aW9uIHhXKHQsZSxuKXtjb25zdFtyXT1ncigiY29vcmRpbmF0ZSIsbikse2lubmVySGVpZ2h0OmksaW5uZXJXaWR0aDphLGluc2V0TGVmdDpvLGluc2V0VG9wOnMsaW5zZXRSaWdodDpjLGluc2V0Qm90dG9tOmx9PXQse2Nvb3JkaW5hdGVzOnU9W119PWUsZj1NVyh1KSxkPWZbMF0udHlwZT09PSJjYXJ0ZXNpYW4zRCIsaD1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3g6byx5OnMsd2lkdGg6YS1vLWMsaGVpZ2h0OmktbC1zLHRyYW5zZm9ybWF0aW9uczpmLmZsYXRNYXAocil9KTtyZXR1cm4gZD9uZXcgWUEuQ29vcmRpbmF0ZTNEKGgpOm5ldyBZQS5Db29yZGluYXRlKGgpfWZ1bmN0aW9uIG4zKHQsZSl7Y29uc3R7Y29vcmRpbmF0ZTpuPXt9LGNvb3JkaW5hdGVzOnJ9PXQsaT1lMyh0LFsiY29vcmRpbmF0ZSIsImNvb3JkaW5hdGVzIl0pO2lmKHIpcmV0dXJuIHQ7Y29uc3R7dHlwZTphLHRyYW5zZm9ybTpvPVtdfT1uLHM9ZTMobixbInR5cGUiLCJ0cmFuc2Zvcm0iXSk7aWYoIWEpcmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxpKSx7Y29vcmRpbmF0ZXM6b30pO2NvbnN0WyxjXT1ncigiY29vcmRpbmF0ZSIsZSkse3RyYW5zZm9ybTpsPSExfT1jKGEpLnByb3BzfHx7fTtpZihsKXRocm93IG5ldyBFcnJvcihgVW5rbm93biBjb29yZGluYXRlOiAke2F9LmApO3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30saSkse2Nvb3JkaW5hdGVzOltPYmplY3QuYXNzaWduKHt0eXBlOmF9LHMpLC4uLm9dfSl9ZnVuY3Rpb24gR28odCxlKXtyZXR1cm4gdC5maWx0ZXIobj0+bi50eXBlPT09ZSl9ZnVuY3Rpb24gT3UodCl7cmV0dXJuIEdvKHQsInBvbGFyIikubGVuZ3RoPjB9ZnVuY3Rpb24gX1codCl7cmV0dXJuIEdvKHQsImhlbGl4IikubGVuZ3RoPjB9ZnVuY3Rpb24gdWQodCl7cmV0dXJuIEdvKHQsInRyYW5zcG9zZSIpLmxlbmd0aCUyPT09MX1mdW5jdGlvbiB3Vyh0KXtyZXR1cm4gR28odCwicGFyYWxsZWwiKS5sZW5ndGg+MH1mdW5jdGlvbiByMyh0KXtyZXR1cm4gR28odCwidGhldGEiKS5sZW5ndGg+MH1mdW5jdGlvbiBPVyh0KXtyZXR1cm4gR28odCwicmVmbGVjdCIpLmxlbmd0aD4wfWZ1bmN0aW9uIEtwKHQpe3JldHVybiBHbyh0LCJyYWRpYWwiKS5sZW5ndGg+MH1mdW5jdGlvbiBTVyh0KXtyZXR1cm4gR28odCwicmFkYXIiKS5sZW5ndGg+MH1mdW5jdGlvbiBFVyh0KXtyZXR1cm4gR28odCwicmVmbGVjdFkiKS5sZW5ndGg+MH1mdW5jdGlvbiBNVyh0KXtyZXR1cm4gdC5maW5kKGU9PmUudHlwZT09PSJjYXJ0ZXNpYW4ifHxlLnR5cGU9PT0iY2FydGVzaWFuM0QiKT90OlsuLi50LHt0eXBlOiJjYXJ0ZXNpYW4ifV19ZnVuY3Rpb24gcWUodCl7Zm9yKHZhciBlPXQubGVuZ3RoLzZ8MCxuPW5ldyBBcnJheShlKSxyPTA7cjxlOyluW3JdPSIjIit0LnNsaWNlKHIqNiwrK3IqNik7cmV0dXJuIG59dmFyIGtXPXFlKCIxZjc3YjRmZjdmMGUyY2EwMmNkNjI3Mjg5NDY3YmQ4YzU2NGJlMzc3YzI3ZjdmN2ZiY2JkMjIxN2JlY2YiKSxBVz1xZSgiN2ZjOTdmYmVhZWQ0ZmRjMDg2ZmZmZjk5Mzg2Y2IwZjAwMjdmYmY1YjE3NjY2NjY2IiksVFc9cWUoIjFiOWU3N2Q5NWYwMjc1NzBiM2U3Mjk4YTY2YTYxZWU2YWIwMmE2NzYxZDY2NjY2NiIpLFBXPXFlKCI0MjY5ZDBlZmIxMThmZjcyNWM2Y2M1YjAzY2E5NTFmZjhhYjdhNDYzZjI5N2JiZjU5YzZiNGU5NDk4YTAiKSxDVz1xZSgiYTZjZWUzMWY3OGI0YjJkZjhhMzNhMDJjZmI5YTk5ZTMxYTFjZmRiZjZmZmY3ZjAwY2FiMmQ2NmEzZDlhZmZmZjk5YjE1OTI4IiksTFc9cWUoImZiYjRhZWIzY2RlM2NjZWJjNWRlY2JlNGZlZDlhNmZmZmZjY2U1ZDhiZGZkZGFlY2YyZjJmMiIpLFJXPXFlKCJiM2UyY2RmZGNkYWNjYmQ1ZThmNGNhZTRlNmY1YzlmZmYyYWVmMWUyY2NjY2NjY2MiKSxOVz1xZSgiZTQxYTFjMzc3ZWI4NGRhZjRhOTg0ZWEzZmY3ZjAwZmZmZjMzYTY1NjI4Zjc4MWJmOTk5OTk5IiksSVc9cWUoIjY2YzJhNWZjOGQ2MjhkYTBjYmU3OGFjM2E2ZDg1NGZmZDkyZmU1YzQ5NGIzYjNiMyIpLERXPXFlKCI4ZGQzYzdmZmZmYjNiZWJhZGFmYjgwNzI4MGIxZDNmZGI0NjJiM2RlNjlmY2NkZTVkOWQ5ZDliYzgwYmRjY2ViYzVmZmVkNmYiKSxqVz1xZSgiNGU3OWE3ZjI4ZTJjZTE1NzU5NzZiN2IyNTlhMTRmZWRjOTQ5YWY3YWExZmY5ZGE3OWM3NTVmYmFiMGFiIik7ZnVuY3Rpb24gRm0odCxlLG4pe3QucHJvdG90eXBlPWUucHJvdG90eXBlPW4sbi5jb25zdHJ1Y3Rvcj10fWZ1bmN0aW9uIEt3KHQsZSl7dmFyIG49T2JqZWN0LmNyZWF0ZSh0LnByb3RvdHlwZSk7Zm9yKHZhciByIGluIGUpbltyXT1lW3JdO3JldHVybiBufWZ1bmN0aW9uIGZkKCl7fXZhciBTdT0uNyxkZD0xL1N1LGhkPSJcXHMqKFsrLV0/XFxkKylcXHMqIixRcD0iXFxzKihbKy1dPyg/OlxcZCpcXC4pP1xcZCsoPzpbZUVdWystXT9cXGQrKT8pXFxzKiIsbXM9IlxccyooWystXT8oPzpcXGQqXFwuKT9cXGQrKD86W2VFXVsrLV0/XFxkKyk/KSVcXHMqIixGVz0vXiMoWzAtOWEtZl17Myw4fSkkLyxCVz1uZXcgUmVnRXhwKCJecmdiXFwoIi5jb25jYXQoaGQsIiwiKS5jb25jYXQoaGQsIiwiKS5jb25jYXQoaGQsIlxcKSQiKSkselc9bmV3IFJlZ0V4cCgiXnJnYlxcKCIuY29uY2F0KG1zLCIsIikuY29uY2F0KG1zLCIsIikuY29uY2F0KG1zLCJcXCkkIikpLFdXPW5ldyBSZWdFeHAoIl5yZ2JhXFwoIi5jb25jYXQoaGQsIiwiKS5jb25jYXQoaGQsIiwiKS5jb25jYXQoaGQsIiwiKS5jb25jYXQoUXAsIlxcKSQiKSksR1c9bmV3IFJlZ0V4cCgiXnJnYmFcXCgiLmNvbmNhdChtcywiLCIpLmNvbmNhdChtcywiLCIpLmNvbmNhdChtcywiLCIpLmNvbmNhdChRcCwiXFwpJCIpKSwkVz1uZXcgUmVnRXhwKCJeaHNsXFwoIi5jb25jYXQoUXAsIiwiKS5jb25jYXQobXMsIiwiKS5jb25jYXQobXMsIlxcKSQiKSksWlc9bmV3IFJlZ0V4cCgiXmhzbGFcXCgiLmNvbmNhdChRcCwiLCIpLmNvbmNhdChtcywiLCIpLmNvbmNhdChtcywiLCIpLmNvbmNhdChRcCwiXFwpJCIpKSxpMz17YWxpY2VibHVlOjE1NzkyMzgzLGFudGlxdWV3aGl0ZToxNjQ0NDM3NSxhcXVhOjY1NTM1LGFxdWFtYXJpbmU6ODM4ODU2NCxhenVyZToxNTc5NDE3NSxiZWlnZToxNjExOTI2MCxiaXNxdWU6MTY3NzAyNDQsYmxhY2s6MCxibGFuY2hlZGFsbW9uZDoxNjc3MjA0NSxibHVlOjI1NSxibHVldmlvbGV0OjkwNTUyMDIsYnJvd246MTA4MjQyMzQsYnVybHl3b29kOjE0NTk2MjMxLGNhZGV0Ymx1ZTo2MjY2NTI4LGNoYXJ0cmV1c2U6ODM4ODM1MixjaG9jb2xhdGU6MTM3ODk0NzAsY29yYWw6MTY3NDQyNzIsY29ybmZsb3dlcmJsdWU6NjU5MTk4MSxjb3Juc2lsazoxNjc3NTM4OCxjcmltc29uOjE0NDIzMTAwLGN5YW46NjU1MzUsZGFya2JsdWU6MTM5LGRhcmtjeWFuOjM1NzIzLGRhcmtnb2xkZW5yb2Q6MTIwOTI5MzksZGFya2dyYXk6MTExMTkwMTcsZGFya2dyZWVuOjI1NjAwLGRhcmtncmV5OjExMTE5MDE3LGRhcmtraGFraToxMjQzMzI1OSxkYXJrbWFnZW50YTo5MTA5NjQzLGRhcmtvbGl2ZWdyZWVuOjU1OTc5OTksZGFya29yYW5nZToxNjc0NzUyMCxkYXJrb3JjaGlkOjEwMDQwMDEyLGRhcmtyZWQ6OTEwOTUwNCxkYXJrc2FsbW9uOjE1MzA4NDEwLGRhcmtzZWFncmVlbjo5NDE5OTE5LGRhcmtzbGF0ZWJsdWU6NDczNDM0NyxkYXJrc2xhdGVncmF5OjMxMDA0OTUsZGFya3NsYXRlZ3JleTozMTAwNDk1LGRhcmt0dXJxdW9pc2U6NTI5NDUsZGFya3Zpb2xldDo5Njk5NTM5LGRlZXBwaW5rOjE2NzE2OTQ3LGRlZXBza3libHVlOjQ5MTUxLGRpbWdyYXk6NjkwODI2NSxkaW1ncmV5OjY5MDgyNjUsZG9kZ2VyYmx1ZToyMDAzMTk5LGZpcmVicmljazoxMTY3NDE0NixmbG9yYWx3aGl0ZToxNjc3NTkyMCxmb3Jlc3RncmVlbjoyMjYzODQyLGZ1Y2hzaWE6MTY3MTE5MzUsZ2FpbnNib3JvOjE0NDc0NDYwLGdob3N0d2hpdGU6MTYzMTY2NzEsZ29sZDoxNjc2NjcyMCxnb2xkZW5yb2Q6MTQzMjkxMjAsZ3JheTo4NDIxNTA0LGdyZWVuOjMyNzY4LGdyZWVueWVsbG93OjExNDAzMDU1LGdyZXk6ODQyMTUwNCxob25leWRldzoxNTc5NDE2MCxob3RwaW5rOjE2NzM4NzQwLGluZGlhbnJlZDoxMzQ1ODUyNCxpbmRpZ286NDkxNTMzMCxpdm9yeToxNjc3NzIwMCxraGFraToxNTc4NzY2MCxsYXZlbmRlcjoxNTEzMjQxMCxsYXZlbmRlcmJsdXNoOjE2NzczMzY1LGxhd25ncmVlbjo4MTkwOTc2LGxlbW9uY2hpZmZvbjoxNjc3NTg4NSxsaWdodGJsdWU6MTEzOTMyNTQsbGlnaHRjb3JhbDoxNTc2MTUzNixsaWdodGN5YW46MTQ3NDU1OTksbGlnaHRnb2xkZW5yb2R5ZWxsb3c6MTY0NDgyMTAsbGlnaHRncmF5OjEzODgyMzIzLGxpZ2h0Z3JlZW46OTQ5ODI1NixsaWdodGdyZXk6MTM4ODIzMjMsbGlnaHRwaW5rOjE2NzU4NDY1LGxpZ2h0c2FsbW9uOjE2NzUyNzYyLGxpZ2h0c2VhZ3JlZW46MjE0Mjg5MCxsaWdodHNreWJsdWU6ODkwMDM0NixsaWdodHNsYXRlZ3JheTo3ODMzNzUzLGxpZ2h0c2xhdGVncmV5Ojc4MzM3NTMsbGlnaHRzdGVlbGJsdWU6MTE1ODQ3MzQsbGlnaHR5ZWxsb3c6MTY3NzcxODQsbGltZTo2NTI4MCxsaW1lZ3JlZW46MzMyOTMzMCxsaW5lbjoxNjQ0NTY3MCxtYWdlbnRhOjE2NzExOTM1LG1hcm9vbjo4Mzg4NjA4LG1lZGl1bWFxdWFtYXJpbmU6NjczNzMyMixtZWRpdW1ibHVlOjIwNSxtZWRpdW1vcmNoaWQ6MTIyMTE2NjcsbWVkaXVtcHVycGxlOjk2NjI2ODMsbWVkaXVtc2VhZ3JlZW46Mzk3ODA5NyxtZWRpdW1zbGF0ZWJsdWU6ODA4Nzc5MCxtZWRpdW1zcHJpbmdncmVlbjo2NDE1NCxtZWRpdW10dXJxdW9pc2U6NDc3MjMwMCxtZWRpdW12aW9sZXRyZWQ6MTMwNDcxNzMsbWlkbmlnaHRibHVlOjE2NDQ5MTIsbWludGNyZWFtOjE2MTIxODUwLG1pc3R5cm9zZToxNjc3MDI3Myxtb2NjYXNpbjoxNjc3MDIyOSxuYXZham93aGl0ZToxNjc2ODY4NSxuYXZ5OjEyOCxvbGRsYWNlOjE2NjQzNTU4LG9saXZlOjg0MjEzNzYsb2xpdmVkcmFiOjcwNDg3Mzksb3JhbmdlOjE2NzUzOTIwLG9yYW5nZXJlZDoxNjcyOTM0NCxvcmNoaWQ6MTQzMTU3MzQscGFsZWdvbGRlbnJvZDoxNTY1NzEzMCxwYWxlZ3JlZW46MTAwMjU4ODAscGFsZXR1cnF1b2lzZToxMTUyOTk2NixwYWxldmlvbGV0cmVkOjE0MzgxMjAzLHBhcGF5YXdoaXA6MTY3NzMwNzcscGVhY2hwdWZmOjE2NzY3NjczLHBlcnU6MTM0Njg5OTEscGluazoxNjc2MTAzNSxwbHVtOjE0NTI0NjM3LHBvd2RlcmJsdWU6MTE1OTE5MTAscHVycGxlOjgzODg3MzYscmViZWNjYXB1cnBsZTo2Njk3ODgxLHJlZDoxNjcxMTY4MCxyb3N5YnJvd246MTIzNTc1MTkscm95YWxibHVlOjQyODY5NDUsc2FkZGxlYnJvd246OTEyNzE4NyxzYWxtb246MTY0MTY4ODIsc2FuZHlicm93bjoxNjAzMjg2NCxzZWFncmVlbjozMDUwMzI3LHNlYXNoZWxsOjE2Nzc0NjM4LHNpZW5uYToxMDUwNjc5NyxzaWx2ZXI6MTI2MzIyNTYsc2t5Ymx1ZTo4OTAwMzMxLHNsYXRlYmx1ZTo2OTcwMDYxLHNsYXRlZ3JheTo3MzcyOTQ0LHNsYXRlZ3JleTo3MzcyOTQ0LHNub3c6MTY3NzU5MzAsc3ByaW5nZ3JlZW46NjU0MDcsc3RlZWxibHVlOjQ2MjA5ODAsdGFuOjEzODA4NzgwLHRlYWw6MzI4OTYsdGhpc3RsZToxNDIwNDg4OCx0b21hdG86MTY3MzcwOTUsdHVycXVvaXNlOjQyNTE4NTYsdmlvbGV0OjE1NjMxMDg2LHdoZWF0OjE2MTEzMzMxLHdoaXRlOjE2Nzc3MjE1LHdoaXRlc21va2U6MTYxMTkyODUseWVsbG93OjE2Nzc2OTYwLHllbGxvd2dyZWVuOjEwMTQ1MDc0fTtGbShmZCxRdyx7Y29weTpmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmFzc2lnbihuZXcgdGhpcy5jb25zdHJ1Y3Rvcix0aGlzLGUpfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJnYigpLmRpc3BsYXlhYmxlKCl9LGhleDphMyxmb3JtYXRIZXg6YTMsZm9ybWF0SGV4ODpZVyxmb3JtYXRIc2w6SFcsZm9ybWF0UmdiOm8zLHRvU3RyaW5nOm8zfSk7ZnVuY3Rpb24gYTMoKXtyZXR1cm4gdGhpcy5yZ2IoKS5mb3JtYXRIZXgoKX1mdW5jdGlvbiBZVygpe3JldHVybiB0aGlzLnJnYigpLmZvcm1hdEhleDgoKX1mdW5jdGlvbiBIVygpe3JldHVybiBkMyh0aGlzKS5mb3JtYXRIc2woKX1mdW5jdGlvbiBvMygpe3JldHVybiB0aGlzLnJnYigpLmZvcm1hdFJnYigpfWZ1bmN0aW9uIFF3KHQpe3ZhciBlLG47cmV0dXJuIHQ9KHQrIiIpLnRyaW0oKS50b0xvd2VyQ2FzZSgpLChlPUZXLmV4ZWModCkpPyhuPWVbMV0ubGVuZ3RoLGU9cGFyc2VJbnQoZVsxXSwxNiksbj09PTY/czMoZSk6bj09PTM/bmV3IG5hKGU+PjgmMTV8ZT4+NCYyNDAsZT4+NCYxNXxlJjI0MCwoZSYxNSk8PDR8ZSYxNSwxKTpuPT09OD9CbShlPj4yNCYyNTUsZT4+MTYmMjU1LGU+PjgmMjU1LChlJjI1NSkvMjU1KTpuPT09ND9CbShlPj4xMiYxNXxlPj44JjI0MCxlPj44JjE1fGU+PjQmMjQwLGU+PjQmMTV8ZSYyNDAsKChlJjE1KTw8NHxlJjE1KS8yNTUpOm51bGwpOihlPUJXLmV4ZWModCkpP25ldyBuYShlWzFdLGVbMl0sZVszXSwxKTooZT16Vy5leGVjKHQpKT9uZXcgbmEoZVsxXSoyNTUvMTAwLGVbMl0qMjU1LzEwMCxlWzNdKjI1NS8xMDAsMSk6KGU9V1cuZXhlYyh0KSk/Qm0oZVsxXSxlWzJdLGVbM10sZVs0XSk6KGU9R1cuZXhlYyh0KSk/Qm0oZVsxXSoyNTUvMTAwLGVbMl0qMjU1LzEwMCxlWzNdKjI1NS8xMDAsZVs0XSk6KGU9JFcuZXhlYyh0KSk/ZjMoZVsxXSxlWzJdLzEwMCxlWzNdLzEwMCwxKTooZT1aVy5leGVjKHQpKT9mMyhlWzFdLGVbMl0vMTAwLGVbM10vMTAwLGVbNF0pOmkzLmhhc093blByb3BlcnR5KHQpP3MzKGkzW3RdKTp0PT09InRyYW5zcGFyZW50Ij9uZXcgbmEoTmFOLE5hTixOYU4sMCk6bnVsbH1mdW5jdGlvbiBzMyh0KXtyZXR1cm4gbmV3IG5hKHQ+PjE2JjI1NSx0Pj44JjI1NSx0JjI1NSwxKX1mdW5jdGlvbiBCbSh0LGUsbixyKXtyZXR1cm4gcjw9MCYmKHQ9ZT1uPU5hTiksbmV3IG5hKHQsZSxuLHIpfWZ1bmN0aW9uIGMzKHQpe3JldHVybiB0IGluc3RhbmNlb2YgZmR8fCh0PVF3KHQpKSx0Pyh0PXQucmdiKCksbmV3IG5hKHQucix0LmcsdC5iLHQub3BhY2l0eSkpOm5ldyBuYX1mdW5jdGlvbiBKcCh0LGUsbixyKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD09PTE/YzModCk6bmV3IG5hKHQsZSxuLHI9PW51bGw/MTpyKX1mdW5jdGlvbiBuYSh0LGUsbixyKXt0aGlzLnI9K3QsdGhpcy5nPStlLHRoaXMuYj0rbix0aGlzLm9wYWNpdHk9K3J9Rm0obmEsSnAsS3coZmQse2JyaWdodGVyOmZ1bmN0aW9uKGUpe3JldHVybiBlPWU9PW51bGw/ZGQ6TWF0aC5wb3coZGQsZSksbmV3IG5hKHRoaXMuciplLHRoaXMuZyplLHRoaXMuYiplLHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbihlKXtyZXR1cm4gZT1lPT1udWxsP1N1Ok1hdGgucG93KFN1LGUpLG5ldyBuYSh0aGlzLnIqZSx0aGlzLmcqZSx0aGlzLmIqZSx0aGlzLm9wYWNpdHkpfSxyZ2I6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sY2xhbXA6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IG5hKEV1KHRoaXMuciksRXUodGhpcy5nKSxFdSh0aGlzLmIpLHptKHRoaXMub3BhY2l0eSkpfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybi0uNTw9dGhpcy5yJiZ0aGlzLnI8MjU1LjUmJi0uNTw9dGhpcy5nJiZ0aGlzLmc8MjU1LjUmJi0uNTw9dGhpcy5iJiZ0aGlzLmI8MjU1LjUmJjA8PXRoaXMub3BhY2l0eSYmdGhpcy5vcGFjaXR5PD0xfSxoZXg6bDMsZm9ybWF0SGV4OmwzLGZvcm1hdEhleDg6VlcsZm9ybWF0UmdiOnUzLHRvU3RyaW5nOnUzfSkpO2Z1bmN0aW9uIGwzKCl7cmV0dXJuIiMiLmNvbmNhdChNdSh0aGlzLnIpKS5jb25jYXQoTXUodGhpcy5nKSkuY29uY2F0KE11KHRoaXMuYikpfWZ1bmN0aW9uIFZXKCl7cmV0dXJuIiMiLmNvbmNhdChNdSh0aGlzLnIpKS5jb25jYXQoTXUodGhpcy5nKSkuY29uY2F0KE11KHRoaXMuYikpLmNvbmNhdChNdSgoaXNOYU4odGhpcy5vcGFjaXR5KT8xOnRoaXMub3BhY2l0eSkqMjU1KSl9ZnVuY3Rpb24gdTMoKXt2YXIgdD16bSh0aGlzLm9wYWNpdHkpO3JldHVybiIiLmNvbmNhdCh0PT09MT8icmdiKCI6InJnYmEoIikuY29uY2F0KEV1KHRoaXMuciksIiwgIikuY29uY2F0KEV1KHRoaXMuZyksIiwgIikuY29uY2F0KEV1KHRoaXMuYikpLmNvbmNhdCh0PT09MT8iKSI6IiwgIi5jb25jYXQodCwiKSIpKX1mdW5jdGlvbiB6bSh0KXtyZXR1cm4gaXNOYU4odCk/MTpNYXRoLm1heCgwLE1hdGgubWluKDEsdCkpfWZ1bmN0aW9uIEV1KHQpe3JldHVybiBNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHQpfHwwKSl9ZnVuY3Rpb24gTXUodCl7cmV0dXJuIHQ9RXUodCksKHQ8MTY/IjAiOiIiKSt0LnRvU3RyaW5nKDE2KX1mdW5jdGlvbiBmMyh0LGUsbixyKXtyZXR1cm4gcjw9MD90PWU9bj1OYU46bjw9MHx8bj49MT90PWU9TmFOOmU8PTAmJih0PU5hTiksbmV3ICRvKHQsZSxuLHIpfWZ1bmN0aW9uIGQzKHQpe2lmKHQgaW5zdGFuY2VvZiAkbylyZXR1cm4gbmV3ICRvKHQuaCx0LnMsdC5sLHQub3BhY2l0eSk7aWYodCBpbnN0YW5jZW9mIGZkfHwodD1Rdyh0KSksIXQpcmV0dXJuIG5ldyAkbztpZih0IGluc3RhbmNlb2YgJG8pcmV0dXJuIHQ7dD10LnJnYigpO3ZhciBlPXQuci8yNTUsbj10LmcvMjU1LHI9dC5iLzI1NSxpPU1hdGgubWluKGUsbixyKSxhPU1hdGgubWF4KGUsbixyKSxvPU5hTixzPWEtaSxjPShhK2kpLzI7cmV0dXJuIHM/KGU9PT1hP289KG4tcikvcysobjxyKSo2Om49PT1hP289KHItZSkvcysyOm89KGUtbikvcys0LHMvPWM8LjU/YStpOjItYS1pLG8qPTYwKTpzPWM+MCYmYzwxPzA6byxuZXcgJG8obyxzLGMsdC5vcGFjaXR5KX1mdW5jdGlvbiBYVyh0LGUsbixyKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD09PTE/ZDModCk6bmV3ICRvKHQsZSxuLHI9PW51bGw/MTpyKX1mdW5jdGlvbiAkbyh0LGUsbixyKXt0aGlzLmg9K3QsdGhpcy5zPStlLHRoaXMubD0rbix0aGlzLm9wYWNpdHk9K3J9Rm0oJG8sWFcsS3coZmQse2JyaWdodGVyOmZ1bmN0aW9uKGUpe3JldHVybiBlPWU9PW51bGw/ZGQ6TWF0aC5wb3coZGQsZSksbmV3ICRvKHRoaXMuaCx0aGlzLnMsdGhpcy5sKmUsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKGUpe3JldHVybiBlPWU9PW51bGw/U3U6TWF0aC5wb3coU3UsZSksbmV3ICRvKHRoaXMuaCx0aGlzLnMsdGhpcy5sKmUsdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5oJTM2MCsodGhpcy5oPDApKjM2MCxuPWlzTmFOKGUpfHxpc05hTih0aGlzLnMpPzA6dGhpcy5zLHI9dGhpcy5sLGk9cisocjwuNT9yOjEtcikqbixhPTIqci1pO3JldHVybiBuZXcgbmEoSncoZT49MjQwP2UtMjQwOmUrMTIwLGEsaSksSncoZSxhLGkpLEp3KGU8MTIwP2UrMjQwOmUtMTIwLGEsaSksdGhpcy5vcGFjaXR5KX0sY2xhbXA6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3ICRvKGgzKHRoaXMuaCksV20odGhpcy5zKSxXbSh0aGlzLmwpLHptKHRoaXMub3BhY2l0eSkpfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybigwPD10aGlzLnMmJnRoaXMuczw9MXx8aXNOYU4odGhpcy5zKSkmJjA8PXRoaXMubCYmdGhpcy5sPD0xJiYwPD10aGlzLm9wYWNpdHkmJnRoaXMub3BhY2l0eTw9MX0sZm9ybWF0SHNsOmZ1bmN0aW9uKCl7dmFyIGU9em0odGhpcy5vcGFjaXR5KTtyZXR1cm4iIi5jb25jYXQoZT09PTE/ImhzbCgiOiJoc2xhKCIpLmNvbmNhdChoMyh0aGlzLmgpLCIsICIpLmNvbmNhdChXbSh0aGlzLnMpKjEwMCwiJSwgIikuY29uY2F0KFdtKHRoaXMubCkqMTAwLCIlIikuY29uY2F0KGU9PT0xPyIpIjoiLCAiLmNvbmNhdChlLCIpIikpfX0pKTtmdW5jdGlvbiBoMyh0KXtyZXR1cm4gdD0odHx8MCklMzYwLHQ8MD90KzM2MDp0fWZ1bmN0aW9uIFdtKHQpe3JldHVybiBNYXRoLm1heCgwLE1hdGgubWluKDEsdHx8MCkpfWZ1bmN0aW9uIEp3KHQsZSxuKXtyZXR1cm4odDw2MD9lKyhuLWUpKnQvNjA6dDwxODA/bjp0PDI0MD9lKyhuLWUpKigyNDAtdCkvNjA6ZSkqMjU1fWZ1bmN0aW9uIHAzKHQsZSxuLHIsaSl7dmFyIGE9dCp0LG89YSp0O3JldHVybigoMS0zKnQrMyphLW8pKmUrKDQtNiphKzMqbykqbisoMSszKnQrMyphLTMqbykqcitvKmkpLzZ9ZnVuY3Rpb24gVVcodCl7dmFyIGU9dC5sZW5ndGgtMTtyZXR1cm4gZnVuY3Rpb24obil7dmFyIHI9bjw9MD9uPTA6bj49MT8obj0xLGUtMSk6TWF0aC5mbG9vcihuKmUpLGk9dFtyXSxhPXRbcisxXSxvPXI+MD90W3ItMV06MippLWEscz1yPGUtMT90W3IrMl06MiphLWk7cmV0dXJuIHAzKChuLXIvZSkqZSxvLGksYSxzKX19ZnVuY3Rpb24gcVcodCl7dmFyIGU9dC5sZW5ndGg7cmV0dXJuIGZ1bmN0aW9uKG4pe3ZhciByPU1hdGguZmxvb3IoKChuJT0xKTwwPysrbjpuKSplKSxpPXRbKHIrZS0xKSVlXSxhPXRbciVlXSxvPXRbKHIrMSklZV0scz10WyhyKzIpJWVdO3JldHVybiBwMygobi1yL2UpKmUsaSxhLG8scyl9fXZhciB0Tz1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19O2Z1bmN0aW9uIHYzKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiB0K24qZX19ZnVuY3Rpb24gS1codCxlLG4pe3JldHVybiB0PU1hdGgucG93KHQsbiksZT1NYXRoLnBvdyhlLG4pLXQsbj0xL24sZnVuY3Rpb24ocil7cmV0dXJuIE1hdGgucG93KHQrciplLG4pfX1mdW5jdGlvbiBRVyh0LGUpe3ZhciBuPWUtdDtyZXR1cm4gbj92Myh0LG4+MTgwfHxuPC0xODA/bi0zNjAqTWF0aC5yb3VuZChuLzM2MCk6bik6dE8oaXNOYU4odCk/ZTp0KX1mdW5jdGlvbiBKVyh0KXtyZXR1cm4odD0rdCk9PTE/cGQ6ZnVuY3Rpb24oZSxuKXtyZXR1cm4gbi1lP0tXKGUsbix0KTp0Tyhpc05hTihlKT9uOmUpfX1mdW5jdGlvbiBwZCh0LGUpe3ZhciBuPWUtdDtyZXR1cm4gbj92Myh0LG4pOnRPKGlzTmFOKHQpP2U6dCl9dmFyIHhvdD1mdW5jdGlvbiB0KGUpe3ZhciBuPUpXKGUpO2Z1bmN0aW9uIHIoaSxhKXt2YXIgbz1uKChpPUpwKGkpKS5yLChhPUpwKGEpKS5yKSxzPW4oaS5nLGEuZyksYz1uKGkuYixhLmIpLGw9cGQoaS5vcGFjaXR5LGEub3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9uKHUpe3JldHVybiBpLnI9byh1KSxpLmc9cyh1KSxpLmI9Yyh1KSxpLm9wYWNpdHk9bCh1KSxpKyIifX1yZXR1cm4gci5nYW1tYT10LHJ9KDEpO2Z1bmN0aW9uIGczKHQpe3JldHVybiBmdW5jdGlvbihlKXt2YXIgbj1lLmxlbmd0aCxyPW5ldyBBcnJheShuKSxpPW5ldyBBcnJheShuKSxhPW5ldyBBcnJheShuKSxvLHM7Zm9yKG89MDtvPG47KytvKXM9SnAoZVtvXSkscltvXT1zLnJ8fDAsaVtvXT1zLmd8fDAsYVtvXT1zLmJ8fDA7cmV0dXJuIHI9dChyKSxpPXQoaSksYT10KGEpLHMub3BhY2l0eT0xLGZ1bmN0aW9uKGMpe3JldHVybiBzLnI9cihjKSxzLmc9aShjKSxzLmI9YShjKSxzKyIifX19dmFyIHRHPWczKFVXKSxfb3Q9ZzMocVcpLHNyPXQ9PnRHKHRbdC5sZW5ndGgtMV0pLHkzPW5ldyBBcnJheSgzKS5jb25jYXQoImQ4YjM2NWY1ZjVmNTVhYjRhYyIsImE2NjExYWRmYzI3ZDgwY2RjMTAxODU3MSIsImE2NjExYWRmYzI3ZGY1ZjVmNTgwY2RjMTAxODU3MSIsIjhjNTEwYWQ4YjM2NWY2ZThjM2M3ZWFlNTVhYjRhYzAxNjY1ZSIsIjhjNTEwYWQ4YjM2NWY2ZThjM2Y1ZjVmNWM3ZWFlNTVhYjRhYzAxNjY1ZSIsIjhjNTEwYWJmODEyZGRmYzI3ZGY2ZThjM2M3ZWFlNTgwY2RjMTM1OTc4ZjAxNjY1ZSIsIjhjNTEwYWJmODEyZGRmYzI3ZGY2ZThjM2Y1ZjVmNWM3ZWFlNTgwY2RjMTM1OTc4ZjAxNjY1ZSIsIjU0MzAwNThjNTEwYWJmODEyZGRmYzI3ZGY2ZThjM2M3ZWFlNTgwY2RjMTM1OTc4ZjAxNjY1ZTAwM2MzMCIsIjU0MzAwNThjNTEwYWJmODEyZGRmYzI3ZGY2ZThjM2Y1ZjVmNWM3ZWFlNTgwY2RjMTM1OTc4ZjAxNjY1ZTAwM2MzMCIpLm1hcChxZSksZUc9c3IoeTMpLG0zPW5ldyBBcnJheSgzKS5jb25jYXQoImFmOGRjM2Y3ZjdmNzdmYmY3YiIsIjdiMzI5NGMyYTVjZmE2ZGJhMDAwODgzNyIsIjdiMzI5NGMyYTVjZmY3ZjdmN2E2ZGJhMDAwODgzNyIsIjc2MmE4M2FmOGRjM2U3ZDRlOGQ5ZjBkMzdmYmY3YjFiNzgzNyIsIjc2MmE4M2FmOGRjM2U3ZDRlOGY3ZjdmN2Q5ZjBkMzdmYmY3YjFiNzgzNyIsIjc2MmE4Mzk5NzBhYmMyYTVjZmU3ZDRlOGQ5ZjBkM2E2ZGJhMDVhYWU2MTFiNzgzNyIsIjc2MmE4Mzk5NzBhYmMyYTVjZmU3ZDRlOGY3ZjdmN2Q5ZjBkM2E2ZGJhMDVhYWU2MTFiNzgzNyIsIjQwMDA0Yjc2MmE4Mzk5NzBhYmMyYTVjZmU3ZDRlOGQ5ZjBkM2E2ZGJhMDVhYWU2MTFiNzgzNzAwNDQxYiIsIjQwMDA0Yjc2MmE4Mzk5NzBhYmMyYTVjZmU3ZDRlOGY3ZjdmN2Q5ZjBkM2E2ZGJhMDVhYWU2MTFiNzgzNzAwNDQxYiIpLm1hcChxZSksbkc9c3IobTMpLGIzPW5ldyBBcnJheSgzKS5jb25jYXQoImU5YTNjOWY3ZjdmN2ExZDc2YSIsImQwMWM4YmYxYjZkYWI4ZTE4NjRkYWMyNiIsImQwMWM4YmYxYjZkYWY3ZjdmN2I4ZTE4NjRkYWMyNiIsImM1MWI3ZGU5YTNjOWZkZTBlZmU2ZjVkMGExZDc2YTRkOTIyMSIsImM1MWI3ZGU5YTNjOWZkZTBlZmY3ZjdmN2U2ZjVkMGExZDc2YTRkOTIyMSIsImM1MWI3ZGRlNzdhZWYxYjZkYWZkZTBlZmU2ZjVkMGI4ZTE4NjdmYmM0MTRkOTIyMSIsImM1MWI3ZGRlNzdhZWYxYjZkYWZkZTBlZmY3ZjdmN2U2ZjVkMGI4ZTE4NjdmYmM0MTRkOTIyMSIsIjhlMDE1MmM1MWI3ZGRlNzdhZWYxYjZkYWZkZTBlZmU2ZjVkMGI4ZTE4NjdmYmM0MTRkOTIyMTI3NjQxOSIsIjhlMDE1MmM1MWI3ZGRlNzdhZWYxYjZkYWZkZTBlZmY3ZjdmN2U2ZjVkMGI4ZTE4NjdmYmM0MTRkOTIyMTI3NjQxOSIpLm1hcChxZSksckc9c3IoYjMpLHgzPW5ldyBBcnJheSgzKS5jb25jYXQoIjk5OGVjM2Y3ZjdmN2YxYTM0MCIsIjVlM2M5OWIyYWJkMmZkYjg2M2U2NjEwMSIsIjVlM2M5OWIyYWJkMmY3ZjdmN2ZkYjg2M2U2NjEwMSIsIjU0Mjc4ODk5OGVjM2Q4ZGFlYmZlZTBiNmYxYTM0MGIzNTgwNiIsIjU0Mjc4ODk5OGVjM2Q4ZGFlYmY3ZjdmN2ZlZTBiNmYxYTM0MGIzNTgwNiIsIjU0Mjc4ODgwNzNhY2IyYWJkMmQ4ZGFlYmZlZTBiNmZkYjg2M2UwODIxNGIzNTgwNiIsIjU0Mjc4ODgwNzNhY2IyYWJkMmQ4ZGFlYmY3ZjdmN2ZlZTBiNmZkYjg2M2UwODIxNGIzNTgwNiIsIjJkMDA0YjU0Mjc4ODgwNzNhY2IyYWJkMmQ4ZGFlYmZlZTBiNmZkYjg2M2UwODIxNGIzNTgwNjdmM2IwOCIsIjJkMDA0YjU0Mjc4ODgwNzNhY2IyYWJkMmQ4ZGFlYmY3ZjdmN2ZlZTBiNmZkYjg2M2UwODIxNGIzNTgwNjdmM2IwOCIpLm1hcChxZSksaUc9c3IoeDMpLF8zPW5ldyBBcnJheSgzKS5jb25jYXQoImVmOGE2MmY3ZjdmNzY3YTljZiIsImNhMDAyMGY0YTU4MjkyYzVkZTA1NzFiMCIsImNhMDAyMGY0YTU4MmY3ZjdmNzkyYzVkZTA1NzFiMCIsImIyMTgyYmVmOGE2MmZkZGJjN2QxZTVmMDY3YTljZjIxNjZhYyIsImIyMTgyYmVmOGE2MmZkZGJjN2Y3ZjdmN2QxZTVmMDY3YTljZjIxNjZhYyIsImIyMTgyYmQ2NjA0ZGY0YTU4MmZkZGJjN2QxZTVmMDkyYzVkZTQzOTNjMzIxNjZhYyIsImIyMTgyYmQ2NjA0ZGY0YTU4MmZkZGJjN2Y3ZjdmN2QxZTVmMDkyYzVkZTQzOTNjMzIxNjZhYyIsIjY3MDAxZmIyMTgyYmQ2NjA0ZGY0YTU4MmZkZGJjN2QxZTVmMDkyYzVkZTQzOTNjMzIxNjZhYzA1MzA2MSIsIjY3MDAxZmIyMTgyYmQ2NjA0ZGY0YTU4MmZkZGJjN2Y3ZjdmN2QxZTVmMDkyYzVkZTQzOTNjMzIxNjZhYzA1MzA2MSIpLm1hcChxZSksYUc9c3IoXzMpLHczPW5ldyBBcnJheSgzKS5jb25jYXQoImVmOGE2MmZmZmZmZjk5OTk5OSIsImNhMDAyMGY0YTU4MmJhYmFiYTQwNDA0MCIsImNhMDAyMGY0YTU4MmZmZmZmZmJhYmFiYTQwNDA0MCIsImIyMTgyYmVmOGE2MmZkZGJjN2UwZTBlMDk5OTk5OTRkNGQ0ZCIsImIyMTgyYmVmOGE2MmZkZGJjN2ZmZmZmZmUwZTBlMDk5OTk5OTRkNGQ0ZCIsImIyMTgyYmQ2NjA0ZGY0YTU4MmZkZGJjN2UwZTBlMGJhYmFiYTg3ODc4NzRkNGQ0ZCIsImIyMTgyYmQ2NjA0ZGY0YTU4MmZkZGJjN2ZmZmZmZmUwZTBlMGJhYmFiYTg3ODc4NzRkNGQ0ZCIsIjY3MDAxZmIyMTgyYmQ2NjA0ZGY0YTU4MmZkZGJjN2UwZTBlMGJhYmFiYTg3ODc4NzRkNGQ0ZDFhMWExYSIsIjY3MDAxZmIyMTgyYmQ2NjA0ZGY0YTU4MmZkZGJjN2ZmZmZmZmUwZTBlMGJhYmFiYTg3ODc4NzRkNGQ0ZDFhMWExYSIpLm1hcChxZSksb0c9c3IodzMpLE8zPW5ldyBBcnJheSgzKS5jb25jYXQoImZjOGQ1OWZmZmZiZjkxYmZkYiIsImQ3MTkxY2ZkYWU2MWFiZDllOTJjN2JiNiIsImQ3MTkxY2ZkYWU2MWZmZmZiZmFiZDllOTJjN2JiNiIsImQ3MzAyN2ZjOGQ1OWZlZTA5MGUwZjNmODkxYmZkYjQ1NzViNCIsImQ3MzAyN2ZjOGQ1OWZlZTA5MGZmZmZiZmUwZjNmODkxYmZkYjQ1NzViNCIsImQ3MzAyN2Y0NmQ0M2ZkYWU2MWZlZTA5MGUwZjNmOGFiZDllOTc0YWRkMTQ1NzViNCIsImQ3MzAyN2Y0NmQ0M2ZkYWU2MWZlZTA5MGZmZmZiZmUwZjNmOGFiZDllOTc0YWRkMTQ1NzViNCIsImE1MDAyNmQ3MzAyN2Y0NmQ0M2ZkYWU2MWZlZTA5MGUwZjNmOGFiZDllOTc0YWRkMTQ1NzViNDMxMzY5NSIsImE1MDAyNmQ3MzAyN2Y0NmQ0M2ZkYWU2MWZlZTA5MGZmZmZiZmUwZjNmOGFiZDllOTc0YWRkMTQ1NzViNDMxMzY5NSIpLm1hcChxZSksc0c9c3IoTzMpLFMzPW5ldyBBcnJheSgzKS5jb25jYXQoImZjOGQ1OWZmZmZiZjkxY2Y2MCIsImQ3MTkxY2ZkYWU2MWE2ZDk2YTFhOTY0MSIsImQ3MTkxY2ZkYWU2MWZmZmZiZmE2ZDk2YTFhOTY0MSIsImQ3MzAyN2ZjOGQ1OWZlZTA4YmQ5ZWY4YjkxY2Y2MDFhOTg1MCIsImQ3MzAyN2ZjOGQ1OWZlZTA4YmZmZmZiZmQ5ZWY4YjkxY2Y2MDFhOTg1MCIsImQ3MzAyN2Y0NmQ0M2ZkYWU2MWZlZTA4YmQ5ZWY4YmE2ZDk2YTY2YmQ2MzFhOTg1MCIsImQ3MzAyN2Y0NmQ0M2ZkYWU2MWZlZTA4YmZmZmZiZmQ5ZWY4YmE2ZDk2YTY2YmQ2MzFhOTg1MCIsImE1MDAyNmQ3MzAyN2Y0NmQ0M2ZkYWU2MWZlZTA4YmQ5ZWY4YmE2ZDk2YTY2YmQ2MzFhOTg1MDAwNjgzNyIsImE1MDAyNmQ3MzAyN2Y0NmQ0M2ZkYWU2MWZlZTA4YmZmZmZiZmQ5ZWY4YmE2ZDk2YTY2YmQ2MzFhOTg1MDAwNjgzNyIpLm1hcChxZSksY0c9c3IoUzMpLEUzPW5ldyBBcnJheSgzKS5jb25jYXQoImZjOGQ1OWZmZmZiZjk5ZDU5NCIsImQ3MTkxY2ZkYWU2MWFiZGRhNDJiODNiYSIsImQ3MTkxY2ZkYWU2MWZmZmZiZmFiZGRhNDJiODNiYSIsImQ1M2U0ZmZjOGQ1OWZlZTA4YmU2ZjU5ODk5ZDU5NDMyODhiZCIsImQ1M2U0ZmZjOGQ1OWZlZTA4YmZmZmZiZmU2ZjU5ODk5ZDU5NDMyODhiZCIsImQ1M2U0ZmY0NmQ0M2ZkYWU2MWZlZTA4YmU2ZjU5OGFiZGRhNDY2YzJhNTMyODhiZCIsImQ1M2U0ZmY0NmQ0M2ZkYWU2MWZlZTA4YmZmZmZiZmU2ZjU5OGFiZGRhNDY2YzJhNTMyODhiZCIsIjllMDE0MmQ1M2U0ZmY0NmQ0M2ZkYWU2MWZlZTA4YmU2ZjU5OGFiZGRhNDY2YzJhNTMyODhiZDVlNGZhMiIsIjllMDE0MmQ1M2U0ZmY0NmQ0M2ZkYWU2MWZlZTA4YmZmZmZiZmU2ZjU5OGFiZGRhNDY2YzJhNTMyODhiZDVlNGZhMiIpLm1hcChxZSksbEc9c3IoRTMpLE0zPW5ldyBBcnJheSgzKS5jb25jYXQoImU1ZjVmOTk5ZDhjOTJjYTI1ZiIsImVkZjhmYmIyZTJlMjY2YzJhNDIzOGI0NSIsImVkZjhmYmIyZTJlMjY2YzJhNDJjYTI1ZjAwNmQyYyIsImVkZjhmYmNjZWNlNjk5ZDhjOTY2YzJhNDJjYTI1ZjAwNmQyYyIsImVkZjhmYmNjZWNlNjk5ZDhjOTY2YzJhNDQxYWU3NjIzOGI0NTAwNTgyNCIsImY3ZmNmZGU1ZjVmOWNjZWNlNjk5ZDhjOTY2YzJhNDQxYWU3NjIzOGI0NTAwNTgyNCIsImY3ZmNmZGU1ZjVmOWNjZWNlNjk5ZDhjOTY2YzJhNDQxYWU3NjIzOGI0NTAwNmQyYzAwNDQxYiIpLm1hcChxZSksdUc9c3IoTTMpLGszPW5ldyBBcnJheSgzKS5jb25jYXQoImUwZWNmNDllYmNkYTg4NTZhNyIsImVkZjhmYmIzY2RlMzhjOTZjNjg4NDE5ZCIsImVkZjhmYmIzY2RlMzhjOTZjNjg4NTZhNzgxMGY3YyIsImVkZjhmYmJmZDNlNjllYmNkYThjOTZjNjg4NTZhNzgxMGY3YyIsImVkZjhmYmJmZDNlNjllYmNkYThjOTZjNjhjNmJiMTg4NDE5ZDZlMDE2YiIsImY3ZmNmZGUwZWNmNGJmZDNlNjllYmNkYThjOTZjNjhjNmJiMTg4NDE5ZDZlMDE2YiIsImY3ZmNmZGUwZWNmNGJmZDNlNjllYmNkYThjOTZjNjhjNmJiMTg4NDE5ZDgxMGY3YzRkMDA0YiIpLm1hcChxZSksZkc9c3IoazMpLEEzPW5ldyBBcnJheSgzKS5jb25jYXQoImUwZjNkYmE4ZGRiNTQzYTJjYSIsImYwZjllOGJhZTRiYzdiY2NjNDJiOGNiZSIsImYwZjllOGJhZTRiYzdiY2NjNDQzYTJjYTA4NjhhYyIsImYwZjllOGNjZWJjNWE4ZGRiNTdiY2NjNDQzYTJjYTA4NjhhYyIsImYwZjllOGNjZWJjNWE4ZGRiNTdiY2NjNDRlYjNkMzJiOGNiZTA4NTg5ZSIsImY3ZmNmMGUwZjNkYmNjZWJjNWE4ZGRiNTdiY2NjNDRlYjNkMzJiOGNiZTA4NTg5ZSIsImY3ZmNmMGUwZjNkYmNjZWJjNWE4ZGRiNTdiY2NjNDRlYjNkMzJiOGNiZTA4NjhhYzA4NDA4MSIpLm1hcChxZSksZEc9c3IoQTMpLFQzPW5ldyBBcnJheSgzKS5jb25jYXQoImZlZThjOGZkYmI4NGUzNGEzMyIsImZlZjBkOWZkY2M4YWZjOGQ1OWQ3MzAxZiIsImZlZjBkOWZkY2M4YWZjOGQ1OWUzNGEzM2IzMDAwMCIsImZlZjBkOWZkZDQ5ZWZkYmI4NGZjOGQ1OWUzNGEzM2IzMDAwMCIsImZlZjBkOWZkZDQ5ZWZkYmI4NGZjOGQ1OWVmNjU0OGQ3MzAxZjk5MDAwMCIsImZmZjdlY2ZlZThjOGZkZDQ5ZWZkYmI4NGZjOGQ1OWVmNjU0OGQ3MzAxZjk5MDAwMCIsImZmZjdlY2ZlZThjOGZkZDQ5ZWZkYmI4NGZjOGQ1OWVmNjU0OGQ3MzAxZmIzMDAwMDdmMDAwMCIpLm1hcChxZSksaEc9c3IoVDMpLFAzPW5ldyBBcnJheSgzKS5jb25jYXQoImVjZTJmMGE2YmRkYjFjOTA5OSIsImY2ZWZmN2JkYzllMTY3YTljZjAyODE4YSIsImY2ZWZmN2JkYzllMTY3YTljZjFjOTA5OTAxNmM1OSIsImY2ZWZmN2QwZDFlNmE2YmRkYjY3YTljZjFjOTA5OTAxNmM1OSIsImY2ZWZmN2QwZDFlNmE2YmRkYjY3YTljZjM2OTBjMDAyODE4YTAxNjQ1MCIsImZmZjdmYmVjZTJmMGQwZDFlNmE2YmRkYjY3YTljZjM2OTBjMDAyODE4YTAxNjQ1MCIsImZmZjdmYmVjZTJmMGQwZDFlNmE2YmRkYjY3YTljZjM2OTBjMDAyODE4YTAxNmM1OTAxNDYzNiIpLm1hcChxZSkscEc9c3IoUDMpLEMzPW5ldyBBcnJheSgzKS5jb25jYXQoImVjZTdmMmE2YmRkYjJiOGNiZSIsImYxZWVmNmJkYzllMTc0YTljZjA1NzBiMCIsImYxZWVmNmJkYzllMTc0YTljZjJiOGNiZTA0NWE4ZCIsImYxZWVmNmQwZDFlNmE2YmRkYjc0YTljZjJiOGNiZTA0NWE4ZCIsImYxZWVmNmQwZDFlNmE2YmRkYjc0YTljZjM2OTBjMDA1NzBiMDAzNGU3YiIsImZmZjdmYmVjZTdmMmQwZDFlNmE2YmRkYjc0YTljZjM2OTBjMDA1NzBiMDAzNGU3YiIsImZmZjdmYmVjZTdmMmQwZDFlNmE2YmRkYjc0YTljZjM2OTBjMDA1NzBiMDA0NWE4ZDAyMzg1OCIpLm1hcChxZSksdkc9c3IoQzMpLEwzPW5ldyBBcnJheSgzKS5jb25jYXQoImU3ZTFlZmM5OTRjN2RkMWM3NyIsImYxZWVmNmQ3YjVkOGRmNjViMGNlMTI1NiIsImYxZWVmNmQ3YjVkOGRmNjViMGRkMWM3Nzk4MDA0MyIsImYxZWVmNmQ0YjlkYWM5OTRjN2RmNjViMGRkMWM3Nzk4MDA0MyIsImYxZWVmNmQ0YjlkYWM5OTRjN2RmNjViMGU3Mjk4YWNlMTI1NjkxMDAzZiIsImY3ZjRmOWU3ZTFlZmQ0YjlkYWM5OTRjN2RmNjViMGU3Mjk4YWNlMTI1NjkxMDAzZiIsImY3ZjRmOWU3ZTFlZmQ0YjlkYWM5OTRjN2RmNjViMGU3Mjk4YWNlMTI1Njk4MDA0MzY3MDAxZiIpLm1hcChxZSksZ0c9c3IoTDMpLFIzPW5ldyBBcnJheSgzKS5jb25jYXQoImZkZTBkZGZhOWZiNWM1MWI4YSIsImZlZWJlMmZiYjRiOWY3NjhhMWFlMDE3ZSIsImZlZWJlMmZiYjRiOWY3NjhhMWM1MWI4YTdhMDE3NyIsImZlZWJlMmZjYzVjMGZhOWZiNWY3NjhhMWM1MWI4YTdhMDE3NyIsImZlZWJlMmZjYzVjMGZhOWZiNWY3NjhhMWRkMzQ5N2FlMDE3ZTdhMDE3NyIsImZmZjdmM2ZkZTBkZGZjYzVjMGZhOWZiNWY3NjhhMWRkMzQ5N2FlMDE3ZTdhMDE3NyIsImZmZjdmM2ZkZTBkZGZjYzVjMGZhOWZiNWY3NjhhMWRkMzQ5N2FlMDE3ZTdhMDE3NzQ5MDA2YSIpLm1hcChxZSkseUc9c3IoUjMpLE4zPW5ldyBBcnJheSgzKS5jb25jYXQoImVkZjhiMTdmY2RiYjJjN2ZiOCIsImZmZmZjY2ExZGFiNDQxYjZjNDIyNWVhOCIsImZmZmZjY2ExZGFiNDQxYjZjNDJjN2ZiODI1MzQ5NCIsImZmZmZjY2M3ZTliNDdmY2RiYjQxYjZjNDJjN2ZiODI1MzQ5NCIsImZmZmZjY2M3ZTliNDdmY2RiYjQxYjZjNDFkOTFjMDIyNWVhODBjMmM4NCIsImZmZmZkOWVkZjhiMWM3ZTliNDdmY2RiYjQxYjZjNDFkOTFjMDIyNWVhODBjMmM4NCIsImZmZmZkOWVkZjhiMWM3ZTliNDdmY2RiYjQxYjZjNDFkOTFjMDIyNWVhODI1MzQ5NDA4MWQ1OCIpLm1hcChxZSksbUc9c3IoTjMpLEkzPW5ldyBBcnJheSgzKS5jb25jYXQoImY3ZmNiOWFkZGQ4ZTMxYTM1NCIsImZmZmZjY2MyZTY5OTc4YzY3OTIzODQ0MyIsImZmZmZjY2MyZTY5OTc4YzY3OTMxYTM1NDAwNjgzNyIsImZmZmZjY2Q5ZjBhM2FkZGQ4ZTc4YzY3OTMxYTM1NDAwNjgzNyIsImZmZmZjY2Q5ZjBhM2FkZGQ4ZTc4YzY3OTQxYWI1ZDIzODQ0MzAwNWEzMiIsImZmZmZlNWY3ZmNiOWQ5ZjBhM2FkZGQ4ZTc4YzY3OTQxYWI1ZDIzODQ0MzAwNWEzMiIsImZmZmZlNWY3ZmNiOWQ5ZjBhM2FkZGQ4ZTc4YzY3OTQxYWI1ZDIzODQ0MzAwNjgzNzAwNDUyOSIpLm1hcChxZSksYkc9c3IoSTMpLEQzPW5ldyBBcnJheSgzKS5jb25jYXQoImZmZjdiY2ZlYzQ0ZmQ5NWYwZSIsImZmZmZkNGZlZDk4ZWZlOTkyOWNjNGMwMiIsImZmZmZkNGZlZDk4ZWZlOTkyOWQ5NWYwZTk5MzQwNCIsImZmZmZkNGZlZTM5MWZlYzQ0ZmZlOTkyOWQ5NWYwZTk5MzQwNCIsImZmZmZkNGZlZTM5MWZlYzQ0ZmZlOTkyOWVjNzAxNGNjNGMwMjhjMmQwNCIsImZmZmZlNWZmZjdiY2ZlZTM5MWZlYzQ0ZmZlOTkyOWVjNzAxNGNjNGMwMjhjMmQwNCIsImZmZmZlNWZmZjdiY2ZlZTM5MWZlYzQ0ZmZlOTkyOWVjNzAxNGNjNGMwMjk5MzQwNDY2MjUwNiIpLm1hcChxZSkseEc9c3IoRDMpLGozPW5ldyBBcnJheSgzKS5jb25jYXQoImZmZWRhMGZlYjI0Y2YwM2IyMCIsImZmZmZiMmZlY2M1Y2ZkOGQzY2UzMWExYyIsImZmZmZiMmZlY2M1Y2ZkOGQzY2YwM2IyMGJkMDAyNiIsImZmZmZiMmZlZDk3NmZlYjI0Y2ZkOGQzY2YwM2IyMGJkMDAyNiIsImZmZmZiMmZlZDk3NmZlYjI0Y2ZkOGQzY2ZjNGUyYWUzMWExY2IxMDAyNiIsImZmZmZjY2ZmZWRhMGZlZDk3NmZlYjI0Y2ZkOGQzY2ZjNGUyYWUzMWExY2IxMDAyNiIsImZmZmZjY2ZmZWRhMGZlZDk3NmZlYjI0Y2ZkOGQzY2ZjNGUyYWUzMWExY2JkMDAyNjgwMDAyNiIpLm1hcChxZSksX0c9c3IoajMpLEYzPW5ldyBBcnJheSgzKS5jb25jYXQoImRlZWJmNzllY2FlMTMxODJiZCIsImVmZjNmZmJkZDdlNzZiYWVkNjIxNzFiNSIsImVmZjNmZmJkZDdlNzZiYWVkNjMxODJiZDA4NTE5YyIsImVmZjNmZmM2ZGJlZjllY2FlMTZiYWVkNjMxODJiZDA4NTE5YyIsImVmZjNmZmM2ZGJlZjllY2FlMTZiYWVkNjQyOTJjNjIxNzFiNTA4NDU5NCIsImY3ZmJmZmRlZWJmN2M2ZGJlZjllY2FlMTZiYWVkNjQyOTJjNjIxNzFiNTA4NDU5NCIsImY3ZmJmZmRlZWJmN2M2ZGJlZjllY2FlMTZiYWVkNjQyOTJjNjIxNzFiNTA4NTE5YzA4MzA2YiIpLm1hcChxZSksd0c9c3IoRjMpLEIzPW5ldyBBcnJheSgzKS5jb25jYXQoImU1ZjVlMGExZDk5YjMxYTM1NCIsImVkZjhlOWJhZTRiMzc0YzQ3NjIzOGI0NSIsImVkZjhlOWJhZTRiMzc0YzQ3NjMxYTM1NDAwNmQyYyIsImVkZjhlOWM3ZTljMGExZDk5Yjc0YzQ3NjMxYTM1NDAwNmQyYyIsImVkZjhlOWM3ZTljMGExZDk5Yjc0YzQ3NjQxYWI1ZDIzOGI0NTAwNWEzMiIsImY3ZmNmNWU1ZjVlMGM3ZTljMGExZDk5Yjc0YzQ3NjQxYWI1ZDIzOGI0NTAwNWEzMiIsImY3ZmNmNWU1ZjVlMGM3ZTljMGExZDk5Yjc0YzQ3NjQxYWI1ZDIzOGI0NTAwNmQyYzAwNDQxYiIpLm1hcChxZSksT0c9c3IoQjMpLHozPW5ldyBBcnJheSgzKS5jb25jYXQoImYwZjBmMGJkYmRiZDYzNjM2MyIsImY3ZjdmN2NjY2NjYzk2OTY5NjUyNTI1MiIsImY3ZjdmN2NjY2NjYzk2OTY5NjYzNjM2MzI1MjUyNSIsImY3ZjdmN2Q5ZDlkOWJkYmRiZDk2OTY5NjYzNjM2MzI1MjUyNSIsImY3ZjdmN2Q5ZDlkOWJkYmRiZDk2OTY5NjczNzM3MzUyNTI1MjI1MjUyNSIsImZmZmZmZmYwZjBmMGQ5ZDlkOWJkYmRiZDk2OTY5NjczNzM3MzUyNTI1MjI1MjUyNSIsImZmZmZmZmYwZjBmMGQ5ZDlkOWJkYmRiZDk2OTY5NjczNzM3MzUyNTI1MjI1MjUyNTAwMDAwMCIpLm1hcChxZSksU0c9c3IoejMpLFczPW5ldyBBcnJheSgzKS5jb25jYXQoImVmZWRmNWJjYmRkYzc1NmJiMSIsImYyZjBmN2NiYzllMjllOWFjODZhNTFhMyIsImYyZjBmN2NiYzllMjllOWFjODc1NmJiMTU0Mjc4ZiIsImYyZjBmN2RhZGFlYmJjYmRkYzllOWFjODc1NmJiMTU0Mjc4ZiIsImYyZjBmN2RhZGFlYmJjYmRkYzllOWFjODgwN2RiYTZhNTFhMzRhMTQ4NiIsImZjZmJmZGVmZWRmNWRhZGFlYmJjYmRkYzllOWFjODgwN2RiYTZhNTFhMzRhMTQ4NiIsImZjZmJmZGVmZWRmNWRhZGFlYmJjYmRkYzllOWFjODgwN2RiYTZhNTFhMzU0Mjc4ZjNmMDA3ZCIpLm1hcChxZSksRUc9c3IoVzMpLEczPW5ldyBBcnJheSgzKS5jb25jYXQoImZlZTBkMmZjOTI3MmRlMmQyNiIsImZlZTVkOWZjYWU5MWZiNmE0YWNiMTgxZCIsImZlZTVkOWZjYWU5MWZiNmE0YWRlMmQyNmE1MGYxNSIsImZlZTVkOWZjYmJhMWZjOTI3MmZiNmE0YWRlMmQyNmE1MGYxNSIsImZlZTVkOWZjYmJhMWZjOTI3MmZiNmE0YWVmM2IyY2NiMTgxZDk5MDAwZCIsImZmZjVmMGZlZTBkMmZjYmJhMWZjOTI3MmZiNmE0YWVmM2IyY2NiMTgxZDk5MDAwZCIsImZmZjVmMGZlZTBkMmZjYmJhMWZjOTI3MmZiNmE0YWVmM2IyY2NiMTgxZGE1MGYxNTY3MDAwZCIpLm1hcChxZSksTUc9c3IoRzMpLCQzPW5ldyBBcnJheSgzKS5jb25jYXQoImZlZTZjZWZkYWU2YmU2NTUwZCIsImZlZWRkZWZkYmU4NWZkOGQzY2Q5NDcwMSIsImZlZWRkZWZkYmU4NWZkOGQzY2U2NTUwZGE2MzYwMyIsImZlZWRkZWZkZDBhMmZkYWU2YmZkOGQzY2U2NTUwZGE2MzYwMyIsImZlZWRkZWZkZDBhMmZkYWU2YmZkOGQzY2YxNjkxM2Q5NDgwMThjMmQwNCIsImZmZjVlYmZlZTZjZWZkZDBhMmZkYWU2YmZkOGQzY2YxNjkxM2Q5NDgwMThjMmQwNCIsImZmZjVlYmZlZTZjZWZkZDBhMmZkYWU2YmZkOGQzY2YxNjkxM2Q5NDgwMWE2MzYwMzdmMjcwNCIpLm1hcChxZSksa0c9c3IoJDMpO2Z1bmN0aW9uIEFHKHQpe3JldHVybiB0PU1hdGgubWF4KDAsTWF0aC5taW4oMSx0KSksInJnYigiK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQoLTQuNTQtdCooMzUuMzQtdCooMjM4MS43My10Kig2NDAyLjctdCooNzAyNC43Mi10KjI3MTAuNTcpKSkpKSkpKyIsICIrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCgzMi40OSt0KigxNzAuNzMrdCooNTIuODItdCooMTMxLjQ2LXQqKDE3Ni41OC10KjY3LjM3KSkpKSkpKSsiLCAiK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQoODEuMjQrdCooNDQyLjM2LXQqKDI0ODIuNDMtdCooNjE2Ny4yNC10Kig2NjE0Ljk0LXQqMjQ3NS42NykpKSkpKSkrIikifXZhciBURz1NYXRoLlBJLzE4MCxQRz0xODAvTWF0aC5QSSxaMz0tLjE0ODYxLGVPPTEuNzgyNzcsbk89LS4yOTIyNyxHbT0tLjkwNjQ5LHQwPTEuOTcyOTQsWTM9dDAqR20sSDM9dDAqZU8sVjM9ZU8qbk8tR20qWjM7ZnVuY3Rpb24gQ0codCl7aWYodCBpbnN0YW5jZW9mIGt1KXJldHVybiBuZXcga3UodC5oLHQucyx0LmwsdC5vcGFjaXR5KTt0IGluc3RhbmNlb2YgbmF8fCh0PWMzKHQpKTt2YXIgZT10LnIvMjU1LG49dC5nLzI1NSxyPXQuYi8yNTUsaT0oVjMqcitZMyplLUgzKm4pLyhWMytZMy1IMyksYT1yLWksbz0odDAqKG4taSktbk8qYSkvR20scz1NYXRoLnNxcnQobypvK2EqYSkvKHQwKmkqKDEtaSkpLGM9cz9NYXRoLmF0YW4yKG8sYSkqUEctMTIwOk5hTjtyZXR1cm4gbmV3IGt1KGM8MD9jKzM2MDpjLHMsaSx0Lm9wYWNpdHkpfWZ1bmN0aW9uIGJzKHQsZSxuLHIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPT09MT9DRyh0KTpuZXcga3UodCxlLG4scj09bnVsbD8xOnIpfWZ1bmN0aW9uIGt1KHQsZSxuLHIpe3RoaXMuaD0rdCx0aGlzLnM9K2UsdGhpcy5sPStuLHRoaXMub3BhY2l0eT0rcn1GbShrdSxicyxLdyhmZCx7YnJpZ2h0ZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGU9ZT09bnVsbD9kZDpNYXRoLnBvdyhkZCxlKSxuZXcga3UodGhpcy5oLHRoaXMucyx0aGlzLmwqZSx0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGU9ZT09bnVsbD9TdTpNYXRoLnBvdyhTdSxlKSxuZXcga3UodGhpcy5oLHRoaXMucyx0aGlzLmwqZSx0aGlzLm9wYWNpdHkpfSxyZ2I6ZnVuY3Rpb24oKXt2YXIgZT1pc05hTih0aGlzLmgpPzA6KHRoaXMuaCsxMjApKlRHLG49K3RoaXMubCxyPWlzTmFOKHRoaXMucyk/MDp0aGlzLnMqbiooMS1uKSxpPU1hdGguY29zKGUpLGE9TWF0aC5zaW4oZSk7cmV0dXJuIG5ldyBuYSgyNTUqKG4rciooWjMqaStlTyphKSksMjU1KihuK3IqKG5PKmkrR20qYSkpLDI1NSoobityKih0MCppKSksdGhpcy5vcGFjaXR5KX19KSk7ZnVuY3Rpb24gWDModCl7cmV0dXJuIGZ1bmN0aW9uIGUobil7bj0rbjtmdW5jdGlvbiByKGksYSl7dmFyIG89dCgoaT1icyhpKSkuaCwoYT1icyhhKSkuaCkscz1wZChpLnMsYS5zKSxjPXBkKGkubCxhLmwpLGw9cGQoaS5vcGFjaXR5LGEub3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9uKHUpe3JldHVybiBpLmg9byh1KSxpLnM9cyh1KSxpLmw9YyhNYXRoLnBvdyh1LG4pKSxpLm9wYWNpdHk9bCh1KSxpKyIifX1yZXR1cm4gci5nYW1tYT1lLHJ9KDEpfXZhciB3b3Q9WDMoUVcpLHJPPVgzKHBkKSxMRz1yTyhicygzMDAsLjUsMCksYnMoLTI0MCwuNSwxKSksUkc9ck8oYnMoLTEwMCwuNzUsLjM1KSxicyg4MCwxLjUsLjgpKSxORz1yTyhicygyNjAsLjc1LC4zNSksYnMoODAsMS41LC44KSksJG09YnMoKTtmdW5jdGlvbiBJRyh0KXsodDwwfHx0PjEpJiYodC09TWF0aC5mbG9vcih0KSk7dmFyIGU9TWF0aC5hYnModC0uNSk7cmV0dXJuICRtLmg9MzYwKnQtMTAwLCRtLnM9MS41LTEuNSplLCRtLmw9LjgtLjkqZSwkbSsiIn12YXIgWm09SnAoKSxERz1NYXRoLlBJLzMsakc9TWF0aC5QSSoyLzM7ZnVuY3Rpb24gRkcodCl7dmFyIGU7cmV0dXJuIHQ9KC41LXQpKk1hdGguUEksWm0ucj0yNTUqKGU9TWF0aC5zaW4odCkpKmUsWm0uZz0yNTUqKGU9TWF0aC5zaW4odCtERykpKmUsWm0uYj0yNTUqKGU9TWF0aC5zaW4odCtqRykpKmUsWm0rIiJ9ZnVuY3Rpb24gQkcodCl7cmV0dXJuIHQ9TWF0aC5tYXgoMCxNYXRoLm1pbigxLHQpKSwicmdiKCIrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCgzNC42MSt0KigxMTcyLjMzLXQqKDEwNzkzLjU2LXQqKDMzMzAwLjEyLXQqKDM4Mzk0LjQ5LXQqMTQ4MjUuMDUpKSkpKSkpKyIsICIrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCgyMy4zMSt0Kig1NTcuMzMrdCooMTIyNS4zMy10KigzNTc0Ljk2LXQqKDEwNzMuNzcrdCo3MDcuNTYpKSkpKSkpKyIsICIrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCgyNy4yK3QqKDMyMTEuMS10KigxNTMyNy45Ny10KigyNzgxNC10KigyMjU2OS4xOC10KjY4MzguNjYpKSkpKSkpKyIpIn1mdW5jdGlvbiBZbSh0KXt2YXIgZT10Lmxlbmd0aDtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIHRbTWF0aC5tYXgoMCxNYXRoLm1pbihlLTEsTWF0aC5mbG9vcihuKmUpKSldfX12YXIgekc9WW0ocWUoIjQ0MDE1NDQ0MDI1NjQ1MDQ1NzQ1MDU1OTQ2MDc1YTQ2MDg1YzQ2MGE1ZDQ2MGI1ZTQ3MGQ2MDQ3MGU2MTQ3MTA2MzQ3MTE2NDQ3MTM2NTQ4MTQ2NzQ4MTY2ODQ4MTc2OTQ4MTg2YTQ4MWE2YzQ4MWI2ZDQ4MWM2ZTQ4MWQ2ZjQ4MWY3MDQ4MjA3MTQ4MjE3MzQ4MjM3NDQ4MjQ3NTQ4MjU3NjQ4MjY3NzQ4Mjg3ODQ4Mjk3OTQ3MmE3YTQ3MmM3YTQ3MmQ3YjQ3MmU3YzQ3MmY3ZDQ2MzA3ZTQ2MzI3ZTQ2MzM3ZjQ2MzQ4MDQ1MzU4MTQ1Mzc4MTQ1Mzg4MjQ0Mzk4MzQ0M2E4MzQ0M2I4NDQzM2Q4NDQzM2U4NTQyM2Y4NTQyNDA4NjQyNDE4NjQxNDI4NzQxNDQ4NzQwNDU4ODQwNDY4ODNmNDc4ODNmNDg4OTNlNDk4OTNlNGE4OTNlNGM4YTNkNGQ4YTNkNGU4YTNjNGY4YTNjNTA4YjNiNTE4YjNiNTI4YjNhNTM4YjNhNTQ4YzM5NTU4YzM5NTY4YzM4NTg4YzM4NTk4YzM3NWE4YzM3NWI4ZDM2NWM4ZDM2NWQ4ZDM1NWU4ZDM1NWY4ZDM0NjA4ZDM0NjE4ZDMzNjI4ZDMzNjM4ZDMyNjQ4ZTMyNjU4ZTMxNjY4ZTMxNjc4ZTMxNjg4ZTMwNjk4ZTMwNmE4ZTJmNmI4ZTJmNmM4ZTJlNmQ4ZTJlNmU4ZTJlNmY4ZTJkNzA4ZTJkNzE4ZTJjNzE4ZTJjNzI4ZTJjNzM4ZTJiNzQ4ZTJiNzU4ZTJhNzY4ZTJhNzc4ZTJhNzg4ZTI5Nzk4ZTI5N2E4ZTI5N2I4ZTI4N2M4ZTI4N2Q4ZTI3N2U4ZTI3N2Y4ZTI3ODA4ZTI2ODE4ZTI2ODI4ZTI2ODI4ZTI1ODM4ZTI1ODQ4ZTI1ODU4ZTI0ODY4ZTI0ODc4ZTIzODg4ZTIzODk4ZTIzOGE4ZDIyOGI4ZDIyOGM4ZDIyOGQ4ZDIxOGU4ZDIxOGY4ZDIxOTA4ZDIxOTE4YzIwOTI4YzIwOTI4YzIwOTM4YzFmOTQ4YzFmOTU4YjFmOTY4YjFmOTc4YjFmOTg4YjFmOTk4YTFmOWE4YTFlOWI4YTFlOWM4OTFlOWQ4OTFmOWU4OTFmOWY4ODFmYTA4ODFmYTE4ODFmYTE4NzFmYTI4NzIwYTM4NjIwYTQ4NjIxYTU4NTIxYTY4NTIyYTc4NTIyYTg4NDIzYTk4MzI0YWE4MzI1YWI4MjI1YWM4MjI2YWQ4MTI3YWQ4MTI4YWU4MDI5YWY3ZjJhYjA3ZjJjYjE3ZTJkYjI3ZDJlYjM3YzJmYjQ3YzMxYjU3YjMyYjY3YTM0YjY3OTM1Yjc3OTM3Yjg3ODM4Yjk3NzNhYmE3NjNiYmI3NTNkYmM3NDNmYmM3MzQwYmQ3MjQyYmU3MTQ0YmY3MDQ2YzA2ZjQ4YzE2ZTRhYzE2ZDRjYzI2YzRlYzM2YjUwYzQ2YTUyYzU2OTU0YzU2ODU2YzY2NzU4Yzc2NTVhYzg2NDVjYzg2MzVlYzk2MjYwY2E2MDYzY2I1ZjY1Y2I1ZTY3Y2M1YzY5Y2Q1YjZjY2Q1YTZlY2U1ODcwY2Y1NzczZDA1Njc1ZDA1NDc3ZDE1MzdhZDE1MTdjZDI1MDdmZDM0ZTgxZDM0ZDg0ZDQ0Yjg2ZDU0OTg5ZDU0ODhiZDY0NjhlZDY0NTkwZDc0MzkzZDc0MTk1ZDg0MDk4ZDgzZTliZDkzYzlkZDkzYmEwZGEzOWEyZGEzN2E1ZGIzNmE4ZGIzNGFhZGMzMmFkZGMzMGIwZGQyZmIyZGQyZGI1ZGUyYmI4ZGUyOWJhZGUyOGJkZGYyNmMwZGYyNWMyZGYyM2M1ZTAyMWM4ZTAyMGNhZTExZmNkZTExZGQwZTExY2QyZTIxYmQ1ZTIxYWQ4ZTIxOWRhZTMxOWRkZTMxOGRmZTMxOGUyZTQxOGU1ZTQxOWU3ZTQxOWVhZTUxYWVjZTUxYmVmZTUxY2YxZTUxZGY0ZTYxZWY2ZTYyMGY4ZTYyMWZiZTcyM2ZkZTcyNSIpKSxXRz1ZbShxZSgiMDAwMDA0MDEwMDA1MDEwMTA2MDEwMTA4MDIwMTA5MDIwMjBiMDIwMjBkMDMwMzBmMDMwMzEyMDQwNDE0MDUwNDE2MDYwNTE4MDYwNTFhMDcwNjFjMDgwNzFlMDkwNzIwMGEwODIyMGIwOTI0MGMwOTI2MGQwYTI5MGUwYjJiMTAwYjJkMTEwYzJmMTIwZDMxMTMwZDM0MTQwZTM2MTUwZTM4MTYwZjNiMTgwZjNkMTkxMDNmMWExMDQyMWMxMDQ0MWQxMTQ3MWUxMTQ5MjAxMTRiMjExMTRlMjIxMTUwMjQxMjUzMjUxMjU1MjcxMjU4MjkxMTVhMmExMTVjMmMxMTVmMmQxMTYxMmYxMTYzMzExMTY1MzMxMDY3MzQxMDY5MzYxMDZiMzgxMDZjMzkwZjZlM2IwZjcwM2QwZjcxM2YwZjcyNDAwZjc0NDIwZjc1NDQwZjc2NDUxMDc3NDcxMDc4NDkxMDc4NGExMDc5NGMxMTdhNGUxMTdiNGYxMjdiNTExMjdjNTIxMzdjNTQxMzdkNTYxNDdkNTcxNTdlNTkxNTdlNWExNjdlNWMxNjdmNWQxNzdmNWYxODdmNjAxODgwNjIxOTgwNjQxYTgwNjUxYTgwNjcxYjgwNjgxYzgxNmExYzgxNmIxZDgxNmQxZDgxNmUxZTgxNzAxZjgxNzIxZjgxNzMyMDgxNzUyMTgxNzYyMTgxNzgyMjgxNzkyMjgyN2IyMzgyN2MyMzgyN2UyNDgyODAyNTgyODEyNTgxODMyNjgxODQyNjgxODYyNzgxODgyNzgxODkyODgxOGIyOTgxOGMyOTgxOGUyYTgxOTAyYTgxOTEyYjgxOTMyYjgwOTQyYzgwOTYyYzgwOTgyZDgwOTkyZDgwOWIyZTdmOWMyZTdmOWUyZjdmYTAyZjdmYTEzMDdlYTMzMDdlYTUzMTdlYTYzMTdkYTgzMjdkYWEzMzdkYWIzMzdjYWQzNDdjYWUzNDdiYjAzNTdiYjIzNTdiYjMzNjdhYjUzNjdhYjczNzc5YjgzNzc5YmEzODc4YmMzOTc4YmQzOTc3YmYzYTc3YzAzYTc2YzIzYjc1YzQzYzc1YzUzYzc0YzczZDczYzgzZTczY2EzZTcyY2MzZjcxY2Q0MDcxY2Y0MDcwZDA0MTZmZDI0MjZmZDM0MzZlZDU0NDZkZDY0NTZjZDg0NTZjZDk0NjZiZGI0NzZhZGM0ODY5ZGU0OTY4ZGY0YTY4ZTA0YzY3ZTI0ZDY2ZTM0ZTY1ZTQ0ZjY0ZTU1MDY0ZTc1MjYzZTg1MzYyZTk1NDYyZWE1NjYxZWI1NzYwZWM1ODYwZWQ1YTVmZWU1YjVlZWY1ZDVlZjA1ZjVlZjE2MDVkZjI2MjVkZjI2NDVjZjM2NTVjZjQ2NzVjZjQ2OTVjZjU2YjVjZjY2YzVjZjY2ZTVjZjc3MDVjZjc3MjVjZjg3NDVjZjg3NjVjZjk3ODVkZjk3OTVkZjk3YjVkZmE3ZDVlZmE3ZjVlZmE4MTVmZmI4MzVmZmI4NTYwZmI4NzYxZmM4OTYxZmM4YTYyZmM4YzYzZmM4ZTY0ZmM5MDY1ZmQ5MjY2ZmQ5NDY3ZmQ5NjY4ZmQ5ODY5ZmQ5YTZhZmQ5YjZiZmU5ZDZjZmU5ZjZkZmVhMTZlZmVhMzZmZmVhNTcxZmVhNzcyZmVhOTczZmVhYTc0ZmVhYzc2ZmVhZTc3ZmViMDc4ZmViMjdhZmViNDdiZmViNjdjZmViNzdlZmViOTdmZmViYjgxZmViZDgyZmViZjg0ZmVjMTg1ZmVjMjg3ZmVjNDg4ZmVjNjhhZmVjODhjZmVjYThkZmVjYzhmZmVjZDkwZmVjZjkyZmVkMTk0ZmVkMzk1ZmVkNTk3ZmVkNzk5ZmVkODlhZmRkYTljZmRkYzllZmRkZWEwZmRlMGExZmRlMmEzZmRlM2E1ZmRlNWE3ZmRlN2E5ZmRlOWFhZmRlYmFjZmNlY2FlZmNlZWIwZmNmMGIyZmNmMmI0ZmNmNGI2ZmNmNmI4ZmNmN2I5ZmNmOWJiZmNmYmJkZmNmZGJmIikpLEdHPVltKHFlKCIwMDAwMDQwMTAwMDUwMTAxMDYwMTAxMDgwMjAxMGEwMjAyMGMwMjAyMGUwMzAyMTAwNDAzMTIwNDAzMTQwNTA0MTcwNjA0MTkwNzA1MWIwODA1MWQwOTA2MWYwYTA3MjIwYjA3MjQwYzA4MjYwZDA4MjkwZTA5MmIxMDA5MmQxMTBhMzAxMjBhMzIxNDBiMzQxNTBiMzcxNjBiMzkxODBjM2MxOTBjM2UxYjBjNDExYzBjNDMxZTBjNDUxZjBjNDgyMTBjNGEyMzBjNGMyNDBjNGYyNjBjNTEyODBiNTMyOTBiNTUyYjBiNTcyZDBiNTkyZjBhNWIzMTBhNWMzMjBhNWUzNDBhNWYzNjA5NjEzODA5NjIzOTA5NjMzYjA5NjQzZDA5NjUzZTA5NjY0MDBhNjc0MjBhNjg0NDBhNjg0NTBhNjk0NzBiNmE0OTBiNmE0YTBjNmI0YzBjNmI0ZDBkNmM0ZjBkNmM1MTBlNmM1MjBlNmQ1NDBmNmQ1NTBmNmQ1NzEwNmU1OTEwNmU1YTExNmU1YzEyNmU1ZDEyNmU1ZjEzNmU2MTEzNmU2MjE0NmU2NDE1NmU2NTE1NmU2NzE2NmU2OTE2NmU2YTE3NmU2YzE4NmU2ZDE4NmU2ZjE5NmU3MTE5NmU3MjFhNmU3NDFhNmU3NTFiNmU3NzFjNmQ3ODFjNmQ3YTFkNmQ3YzFkNmQ3ZDFlNmQ3ZjFlNmM4MDFmNmM4MjIwNmM4NDIwNmI4NTIxNmI4NzIxNmI4ODIyNmE4YTIyNmE4YzIzNjk4ZDIzNjk4ZjI0Njk5MDI1Njg5MjI1Njg5MzI2Njc5NTI2Njc5NzI3NjY5ODI3NjY5YTI4NjU5YjI5NjQ5ZDI5NjQ5ZjJhNjNhMDJhNjNhMjJiNjJhMzJjNjFhNTJjNjBhNjJkNjBhODJlNWZhOTJlNWVhYjJmNWVhZDMwNWRhZTMwNWNiMDMxNWJiMTMyNWFiMzMyNWFiNDMzNTliNjM0NThiNzM1NTdiOTM1NTZiYTM2NTViYzM3NTRiZDM4NTNiZjM5NTJjMDNhNTFjMTNhNTBjMzNiNGZjNDNjNGVjNjNkNGRjNzNlNGNjODNmNGJjYTQwNGFjYjQxNDljYzQyNDhjZTQzNDdjZjQ0NDZkMDQ1NDVkMjQ2NDRkMzQ3NDNkNDQ4NDJkNTRhNDFkNzRiM2ZkODRjM2VkOTRkM2RkYTRlM2NkYjUwM2JkZDUxM2FkZTUyMzhkZjUzMzdlMDU1MzZlMTU2MzVlMjU3MzRlMzU5MzNlNDVhMzFlNTVjMzBlNjVkMmZlNzVlMmVlODYwMmRlOTYxMmJlYTYzMmFlYjY0MjllYjY2MjhlYzY3MjZlZDY5MjVlZTZhMjRlZjZjMjNlZjZlMjFmMDZmMjBmMTcxMWZmMTczMWRmMjc0MWNmMzc2MWJmMzc4MTlmNDc5MThmNTdiMTdmNTdkMTVmNjdlMTRmNjgwMTNmNzgyMTJmNzg0MTBmODg1MGZmODg3MGVmODg5MGNmOThiMGJmOThjMGFmOThlMDlmYTkwMDhmYTkyMDdmYTk0MDdmYjk2MDZmYjk3MDZmYjk5MDZmYjliMDZmYjlkMDdmYzlmMDdmY2ExMDhmY2EzMDlmY2E1MGFmY2E2MGNmY2E4MGRmY2FhMGZmY2FjMTFmY2FlMTJmY2IwMTRmY2IyMTZmY2I0MThmYmI2MWFmYmI4MWRmYmJhMWZmYmJjMjFmYmJlMjNmYWMwMjZmYWMyMjhmYWM0MmFmYWM2MmRmOWM3MmZmOWM5MzJmOWNiMzVmOGNkMzdmOGNmM2FmN2QxM2RmN2QzNDBmNmQ1NDNmNmQ3NDZmNWQ5NDlmNWRiNGNmNGRkNGZmNGRmNTNmNGUxNTZmM2UzNWFmM2U1NWRmMmU2NjFmMmU4NjVmMmVhNjlmMWVjNmRmMWVkNzFmMWVmNzVmMWYxNzlmMmYyN2RmMmY0ODJmM2Y1ODZmM2Y2OGFmNGY4OGVmNWY5OTJmNmZhOTZmOGZiOWFmOWZjOWRmYWZkYTFmY2ZmYTQiKSksJEc9WW0ocWUoIjBkMDg4NzEwMDc4ODEzMDc4OTE2MDc4YTE5MDY4YzFiMDY4ZDFkMDY4ZTIwMDY4ZjIyMDY5MDI0MDY5MTI2MDU5MTI4MDU5MjJhMDU5MzJjMDU5NDJlMDU5NTJmMDU5NjMxMDU5NzMzMDU5NzM1MDQ5ODM3MDQ5OTM4MDQ5YTNhMDQ5YTNjMDQ5YjNlMDQ5YzNmMDQ5YzQxMDQ5ZDQzMDM5ZTQ0MDM5ZTQ2MDM5ZjQ4MDM5ZjQ5MDNhMDRiMDNhMTRjMDJhMTRlMDJhMjUwMDJhMjUxMDJhMzUzMDJhMzU1MDJhNDU2MDFhNDU4MDFhNDU5MDFhNTViMDFhNTVjMDFhNjVlMDFhNjYwMDFhNjYxMDBhNzYzMDBhNzY0MDBhNzY2MDBhNzY3MDBhODY5MDBhODZhMDBhODZjMDBhODZlMDBhODZmMDBhODcxMDBhODcyMDFhODc0MDFhODc1MDFhODc3MDFhODc4MDFhODdhMDJhODdiMDJhODdkMDNhODdlMDNhODgwMDRhODgxMDRhNzgzMDVhNzg0MDVhNzg2MDZhNjg3MDdhNjg4MDhhNjhhMDlhNThiMGFhNThkMGJhNThlMGNhNDhmMGRhNDkxMGVhMzkyMGZhMzk0MTBhMjk1MTFhMTk2MTNhMTk4MTRhMDk5MTU5ZjlhMTY5ZjljMTc5ZTlkMTg5ZDllMTk5ZGEwMWE5Y2ExMWI5YmEyMWQ5YWEzMWU5YWE1MWY5OWE2MjA5OGE3MjE5N2E4MjI5NmFhMjM5NWFiMjQ5NGFjMjY5NGFkMjc5M2FlMjg5MmIwMjk5MWIxMmE5MGIyMmI4ZmIzMmM4ZWI0MmU4ZGI1MmY4Y2I2MzA4YmI3MzE4YWI4MzI4OWJhMzM4OGJiMzQ4OGJjMzU4N2JkMzc4NmJlMzg4NWJmMzk4NGMwM2E4M2MxM2I4MmMyM2M4MWMzM2Q4MGM0M2U3ZmM1NDA3ZWM2NDE3ZGM3NDI3Y2M4NDM3YmM5NDQ3YWNhNDU3YWNiNDY3OWNjNDc3OGNjNDk3N2NkNGE3NmNlNGI3NWNmNGM3NGQwNGQ3M2QxNGU3MmQyNGY3MWQzNTE3MWQ0NTI3MGQ1NTM2ZmQ1NTQ2ZWQ2NTU2ZGQ3NTY2Y2Q4NTc2YmQ5NTg2YWRhNWE2YWRhNWI2OWRiNWM2OGRjNWQ2N2RkNWU2NmRlNWY2NWRlNjE2NGRmNjI2M2UwNjM2M2UxNjQ2MmUyNjU2MWUyNjY2MGUzNjg1ZmU0Njk1ZWU1NmE1ZGU1NmI1ZGU2NmM1Y2U3NmU1YmU3NmY1YWU4NzA1OWU5NzE1OGU5NzI1N2VhNzQ1N2ViNzU1NmViNzY1NWVjNzc1NGVkNzk1M2VkN2E1MmVlN2I1MWVmN2M1MWVmN2U1MGYwN2Y0ZmYwODA0ZWYxODE0ZGYxODM0Y2YyODQ0YmYzODU0YmYzODc0YWY0ODg0OWY0ODk0OGY1OGI0N2Y1OGM0NmY2OGQ0NWY2OGY0NGY3OTA0NGY3OTE0M2Y3OTM0MmY4OTQ0MWY4OTU0MGY5OTczZmY5OTgzZWY5OWEzZWZhOWIzZGZhOWMzY2ZhOWUzYmZiOWYzYWZiYTEzOWZiYTIzOGZjYTMzOGZjYTUzN2ZjYTYzNmZjYTgzNWZjYTkzNGZkYWIzM2ZkYWMzM2ZkYWUzMmZkYWYzMWZkYjEzMGZkYjIyZmZkYjQyZmZkYjUyZWZlYjcyZGZlYjgyY2ZlYmEyY2ZlYmIyYmZlYmQyYWZlYmUyYWZlYzAyOWZkYzIyOWZkYzMyOGZkYzUyN2ZkYzYyN2ZkYzgyN2ZkY2EyNmZkY2IyNmZjY2QyNWZjY2UyNWZjZDAyNWZjZDIyNWZiZDMyNGZiZDUyNGZiZDcyNGZhZDgyNGZhZGEyNGY5ZGMyNGY5ZGQyNWY4ZGYyNWY4ZTEyNWY3ZTIyNWY3ZTQyNWY2ZTYyNmY2ZTgyNmY1ZTkyNmY1ZWIyN2Y0ZWQyN2YzZWUyN2YzZjAyN2YyZjIyN2YxZjQyNmYxZjUyNWYwZjcyNGYwZjkyMSIpKTtmdW5jdGlvbiBaRyh0LGUsbixyLGksYSl7Y29uc3R7Z3VpZGU6bz17fX09bixzPXQkKHQsZSxuKTtpZih0eXBlb2YgcyE9InN0cmluZyIpcmV0dXJuIG47Y29uc3QgYz1lJChzLHQsZSxuKSxsPUtHKHMsYyxuKTtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbiksciQocyx0LGUsbixyKSkse2RvbWFpbjpsLHJhbmdlOm4kKHMsdCxlLG4sbCxpLGEpLGV4cGVjdGVkRG9tYWluOmMsZ3VpZGU6byxuYW1lOnQsdHlwZTpzfSl9ZnVuY3Rpb24gWUcodCxlKXtjb25zdCBuPXt9O2Zvcihjb25zdCByIG9mIHQpe2NvbnN0e3ZhbHVlczppLG5hbWU6YX09cixvPWVbYV07Zm9yKGNvbnN0IHMgb2YgaSl7Y29uc3R7bmFtZTpjLHZhbHVlOmx9PXM7bltjXT1sLm1hcCh1PT5vLm1hcCh1KSl9fXJldHVybiBufWZ1bmN0aW9uIEhHKHQsZSl7Y29uc3Qgbj1BcnJheS5mcm9tKHQudmFsdWVzKCkpLmZsYXRNYXAoaT0+aS5jaGFubmVscyk7SnkobixpPT5pLm1hcChhPT5lLmdldChhLnNjYWxlLnVpZCkpLGk9PmkubmFtZSkuZmlsdGVyKChbLGldKT0+aS5zb21lKGE9PnR5cGVvZiBhLmdldE9wdGlvbnMoKS5ncm91cFRyYW5zZm9ybT09ImZ1bmN0aW9uIikmJmkuZXZlcnkoYT0+YS5nZXRUaWNrcykpLm1hcChpPT5pWzFdKS5mb3JFYWNoKGk9Pntjb25zdCBhPWkubWFwKG89Pm8uZ2V0T3B0aW9ucygpLmdyb3VwVHJhbnNmb3JtKVswXTthKGkpfSl9ZnVuY3Rpb24gVkcodCxlKXt2YXIgbjtjb25zdHtjb21wb25lbnRzOnI9W119PWUsaT1bInNjYWxlIiwiZW5jb2RlIiwiYXhpcyIsImxlZ2VuZCIsImRhdGEiLCJ0cmFuc2Zvcm0iXSxhPUFycmF5LmZyb20obmV3IFNldCh0LmZsYXRNYXAocz0+cy5jaGFubmVscy5tYXAoYz0+Yy5zY2FsZSkpKSksbz1uZXcgTWFwKGEubWFwKHM9PltzLm5hbWUsc10pKTtmb3IoY29uc3QgcyBvZiByKXtjb25zdCBjPXFHKHMpO2Zvcihjb25zdCBsIG9mIGMpe2NvbnN0IHU9by5nZXQobCksZj0oKG49cy5zY2FsZSk9PT1udWxsfHxuPT09dm9pZCAwP3ZvaWQgMDpuW2xdKXx8e30se2luZGVwZW5kZW50OmQ9ITF9PWY7aWYodSYmIWQpe2NvbnN0e2d1aWRlOmh9PXUsdj10eXBlb2YgaD09ImJvb2xlYW4iP3t9Omg7dS5ndWlkZT1tdCh7fSx2LHMpLE9iamVjdC5hc3NpZ24odSxmKX1lbHNle2NvbnN0IGg9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGYpLHtleHBlY3RlZERvbWFpbjpmLmRvbWFpbixuYW1lOmwsZ3VpZGU6a3cocyxpKX0pO2EucHVzaChoKX19fXJldHVybiBhfWZ1bmN0aW9uIFhHKHQpe2lmKCF0fHwhQXJyYXkuaXNBcnJheSh0KSlyZXR1cm5bdXUsdXVdO2xldCBlLG47cmV0dXJuW2E9Pnt2YXIgbztlPWEubWFwLmJpbmQoYSksbj0obz1hLmludmVydCk9PT1udWxsfHxvPT09dm9pZCAwP3ZvaWQgMDpvLmJpbmQoYSk7Y29uc3Qgcz10LmZpbHRlcigoW2RdKT0+dHlwZW9mIGQ9PSJmdW5jdGlvbiIpLGM9dC5maWx0ZXIoKFtkXSk9PnR5cGVvZiBkIT0iZnVuY3Rpb24iKSxsPW5ldyBNYXAoYyk7aWYoYS5tYXA9ZD0+e2Zvcihjb25zdFtoLHZdb2YgcylpZihoKGQpKXJldHVybiB2O3JldHVybiBsLmhhcyhkKT9sLmdldChkKTplKGQpfSwhbilyZXR1cm4gYTtjb25zdCB1PW5ldyBNYXAoYy5tYXAoKFtkLGhdKT0+W2gsZF0pKSxmPW5ldyBNYXAocy5tYXAoKFtkLGhdKT0+W2gsZF0pKTtyZXR1cm4gYS5pbnZlcnQ9ZD0+Zi5oYXMoZCk/ZDp1LmhhcyhkKT91LmdldChkKTpuKGQpLGF9LGE9PihlIT09bnVsbCYmKGEubWFwPWUpLG4hPT1udWxsJiYoYS5pbnZlcnQ9biksYSldfWZ1bmN0aW9uIFUzKHQsZSl7Y29uc3Qgbj1PYmplY3Qua2V5cyh0KTtmb3IoY29uc3QgciBvZiBPYmplY3QudmFsdWVzKGUpKXtjb25zdHtuYW1lOml9PXIuZ2V0T3B0aW9ucygpO2lmKCEoaSBpbiB0KSl0W2ldPXI7ZWxzZXtjb25zdCBhPW4uZmlsdGVyKGM9PmMuc3RhcnRzV2l0aChpKSkubWFwKGM9PisoYy5yZXBsYWNlKGksIiIpfHwwKSksbz1EbihhKSsxLHM9YCR7aX0ke299YDt0W3NdPXIsci5nZXRPcHRpb25zKCkua2V5PXN9fXJldHVybiB0fWZ1bmN0aW9uIHEzKHQsZSl7Y29uc3Rbbl09Z3IoInNjYWxlIixlKSx7cmVsYXRpb25zOnJ9PXQsW2ldPVhHKHIpLGE9bih0KTtyZXR1cm4gaShhKX1mdW5jdGlvbiBVRyh0KXtjb25zdCBlPXQuZmxhdE1hcChuPT5BcnJheS5mcm9tKG4udmFsdWVzKCkpKS5mbGF0TWFwKG49Pm4uY2hhbm5lbHMubWFwKHI9PnIuc2NhbGUpKTtLMyhlLCJ4IiksSzMoZSwieSIpfWZ1bmN0aW9uIHFHKHQpe2NvbnN0e2NoYW5uZWxzOmU9W10sdHlwZTpuLHNjYWxlOnI9e319PXQsaT1bInNoYXBlIiwiY29sb3IiLCJvcGFjaXR5Iiwic2l6ZSJdO3JldHVybiBlLmxlbmd0aCE9PTA/ZTpuPT09ImF4aXNYIj9bIngiXTpuPT09ImF4aXNZIj9bInkiXTpuPT09ImxlZ2VuZHMiP09iamVjdC5rZXlzKHIpLmZpbHRlcihhPT5pLmluY2x1ZGVzKGEpKTpbXX1mdW5jdGlvbiBLMyh0LGUpe2NvbnN0IG49dC5maWx0ZXIoKHtuYW1lOmEsZmFjZXQ6bz0hMH0pPT5vJiZhPT09ZSkscj1uLmZsYXRNYXAoYT0+YS5kb21haW4pLGk9bi5ldmVyeShRMyk/c2Mocik6bi5ldmVyeShKMyk/QXJyYXkuZnJvbShuZXcgU2V0KHIpKTpudWxsO2lmKGkhPT1udWxsKWZvcihjb25zdCBhIG9mIG4pYS5kb21haW49aX1mdW5jdGlvbiBLRyh0LGUsbil7Y29uc3R7cmF0aW86cn09bjtyZXR1cm4gcj09bnVsbD9lOlEzKHt0eXBlOnR9KT9RRyhlLHIsdCk6SjMoe3R5cGU6dH0pP0pHKGUscik6ZX1mdW5jdGlvbiBRRyh0LGUsbil7Y29uc3Qgcj10Lm1hcChOdW1iZXIpLGk9bmV3IEppKHtkb21haW46cixyYW5nZTpbclswXSxyWzBdKyhyW3IubGVuZ3RoLTFdLXJbMF0pKmVdfSk7cmV0dXJuIG49PT0idGltZSI/dC5tYXAoYT0+bmV3IERhdGUoaS5tYXAoYSkpKTp0Lm1hcChhPT5pLm1hcChhKSl9ZnVuY3Rpb24gSkcodCxlKXtjb25zdCBuPU1hdGgucm91bmQodC5sZW5ndGgqZSk7cmV0dXJuIHQuc2xpY2UoMCxuKX1mdW5jdGlvbiBRMyh0KXtjb25zdHt0eXBlOmV9PXQ7cmV0dXJuIHR5cGVvZiBlIT0ic3RyaW5nIj8hMTpbImxpbmVhciIsImxvZyIsInBvdyIsInRpbWUiXS5pbmNsdWRlcyhlKX1mdW5jdGlvbiBKMyh0KXtjb25zdHt0eXBlOmV9PXQ7cmV0dXJuIHR5cGVvZiBlIT0ic3RyaW5nIj8hMTpbImJhbmQiLCJwb2ludCIsIm9yZGluYWwiXS5pbmNsdWRlcyhlKX1mdW5jdGlvbiB0JCh0LGUsbil7Y29uc3R7dHlwZTpyLGRvbWFpbjppLHJhbmdlOmEscXVhbnRpdGF0aXZlOm8sb3JkaW5hbDpzfT1uO3JldHVybiByIT09dm9pZCAwP3I6diQoZSk/ImlkZW50aXR5Ijp0eXBlb2YgYT09InN0cmluZyI/ImxpbmVhciI6KGl8fGF8fFtdKS5sZW5ndGg+Mj9pTyh0LHMpOmkhPT12b2lkIDA/ckMoW2ldKT9pTyh0LHMpOmlDKGUpPyJ0aW1lIjplQyh0LGEsbyk6ckMoZSk/aU8odCxzKTppQyhlKT8idGltZSI6ZUModCxhLG8pfWZ1bmN0aW9uIGUkKHQsZSxuLHIpe2NvbnN0e2RvbWFpbjppfT1yO2lmKGkhPT12b2lkIDApcmV0dXJuIGk7c3dpdGNoKHQpe2Nhc2UibGluZWFyIjpjYXNlInRpbWUiOmNhc2UibG9nIjpjYXNlInBvdyI6Y2FzZSJzcXJ0IjpjYXNlInF1YW50aXplIjpjYXNlInRocmVzaG9sZCI6cmV0dXJuIG5DKHUkKG4scikscik7Y2FzZSJiYW5kIjpjYXNlIm9yZGluYWwiOmNhc2UicG9pbnQiOnJldHVybiBmJChuKTtjYXNlInF1YW50aWxlIjpyZXR1cm4gZCQobik7Y2FzZSJzZXF1ZW50aWFsIjpyZXR1cm4gbkMoaCQobikscik7ZGVmYXVsdDpyZXR1cm5bXX19ZnVuY3Rpb24gbiQodCxlLG4scixpLGEsbyl7Y29uc3R7cmFuZ2U6c309cjtpZih0eXBlb2Ygcz09InN0cmluZyIpcmV0dXJuIGkkKHMpO2lmKHMhPT12b2lkIDApcmV0dXJuIHM7Y29uc3R7cmFuZ2VNaW46YyxyYW5nZU1heDpsfT1yO3N3aXRjaCh0KXtjYXNlImxpbmVhciI6Y2FzZSJ0aW1lIjpjYXNlImxvZyI6Y2FzZSJwb3ciOmNhc2Uic3FydCI6e2NvbnN0IHU9dEMobixyLGksYSxvKSxbZixkXT1wJChlLHUpO3JldHVybltjIT1udWxsP2M6ZixsIT1udWxsP2w6ZF19Y2FzZSJiYW5kIjpjYXNlInBvaW50Ijp7Y29uc3QgdT1lPT09InNpemUiPzU6MCxmPWU9PT0ic2l6ZSI/MTA6MTtyZXR1cm5bYyE9bnVsbD9jOnUsbCE9bnVsbD9sOmZdfWNhc2Uib3JkaW5hbCI6cmV0dXJuIHRDKG4scixpLGEsbyk7Y2FzZSJzZXF1ZW50aWFsIjpyZXR1cm47Y2FzZSJjb25zdGFudCI6cmV0dXJuW25bMF1bMF1dO2RlZmF1bHQ6cmV0dXJuW119fWZ1bmN0aW9uIHIkKHQsZSxuLHIsaSl7c3dpdGNoKHQpe2Nhc2UibGluZWFyIjpjYXNlInRpbWUiOmNhc2UibG9nIjpjYXNlInBvdyI6Y2FzZSJzcXJ0IjpyZXR1cm4gcyQoaSxyKTtjYXNlImJhbmQiOmNhc2UicG9pbnQiOnJldHVybiBjJCh0LGUsaSxyKTtjYXNlInNlcXVlbnRpYWwiOnJldHVybiBvJChyKTtkZWZhdWx0OnJldHVybiByfX1mdW5jdGlvbiB0Qyh0LGUsbixyLGkpe2NvbnN0W2FdPWdyKCJwYWxldHRlIixpKSx7Y2F0ZWdvcnkxMDpvLGNhdGVnb3J5MjA6c309cixjPUhGKG4pLmxlbmd0aDw9by5sZW5ndGg/bzpzLHtwYWxldHRlOmw9YyxvZmZzZXQ6dX09ZTtpZihBcnJheS5pc0FycmF5KGwpKXJldHVybiBsO3RyeXtyZXR1cm4gYSh7dHlwZTpsfSl9Y2F0Y2goZil7Y29uc3QgZD1hJChsLG4sdSk7aWYoZClyZXR1cm4gZDt0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gQ29tcG9uZW50OiAke2x9IGApfX1mdW5jdGlvbiBpJCh0KXtyZXR1cm4gdC5zcGxpdCgiLSIpfWZ1bmN0aW9uIGEkKHQsZSxuPXI9PnIpe2lmKCF0KXJldHVybiBudWxsO2NvbnN0IHI9dGwodCksaT1mZVtgc2NoZW1lJHtyfWBdLGE9ZmVbYGludGVycG9sYXRlJHtyfWBdO2lmKCFpJiYhYSlyZXR1cm4gbnVsbDtpZihpKXtpZighaS5zb21lKEFycmF5LmlzQXJyYXkpKXJldHVybiBpO2NvbnN0IG89aVtlLmxlbmd0aF07aWYobylyZXR1cm4gb31yZXR1cm4gZS5tYXAoKG8scyk9PmEobihzL2UubGVuZ3RoKSkpfWZ1bmN0aW9uIG8kKHQpe2NvbnN0e3BhbGV0dGU6ZT0ieWxHbkJ1IixvZmZzZXQ6bn09dCxyPXRsKGUpLGk9ZmVbYGludGVycG9sYXRlJHtyfWBdO2lmKCFpKXRocm93IG5ldyBFcnJvcihgVW5rbm93biBwYWxldHRlOiAke3J9YCk7cmV0dXJue2ludGVycG9sYXRvcjpuP2E9PmkobihhKSk6aX19ZnVuY3Rpb24gcyQodCxlKXtjb25zdHtpbnRlcnBvbGF0ZTpuPVJwLG5pY2U6cj0hMSx0aWNrQ291bnQ6aT01fT1lO3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZSkse2ludGVycG9sYXRlOm4sbmljZTpyLHRpY2tDb3VudDppfSl9ZnVuY3Rpb24gYyQodCxlLG4scil7aWYoci5wYWRkaW5nIT09dm9pZCAwfHxyLnBhZGRpbmdJbm5lciE9PXZvaWQgMHx8ci5wYWRkaW5nT3V0ZXIhPT12b2lkIDApcmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxyKSx7dW5rbm93bjpOYU59KTtjb25zdCBpPWwkKHQsZSxuKSx7cGFkZGluZ0lubmVyOmE9aSxwYWRkaW5nT3V0ZXI6bz1pfT1yO3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30scikse3BhZGRpbmdJbm5lcjphLHBhZGRpbmdPdXRlcjpvLHBhZGRpbmc6aSx1bmtub3duOk5hTn0pfWZ1bmN0aW9uIGwkKHQsZSxuKXtyZXR1cm4gZT09PSJlbnRlckRlbGF5Inx8ZT09PSJlbnRlckR1cmF0aW9uInx8ZT09PSJzaXplIj8wOnQ9PT0iYmFuZCI/cjMobik/MDouMTp0PT09InBvaW50Ij8uNTowfWZ1bmN0aW9uIGlPKHQsZSl7cmV0dXJuIGV8fChnJCh0KT8icG9pbnQiOiJvcmRpbmFsIil9ZnVuY3Rpb24gZUModCxlLG4pe3JldHVybiBufHwodCE9PSJjb2xvciJ8fGU/ImxpbmVhciI6InNlcXVlbnRpYWwiKX1mdW5jdGlvbiBuQyh0LGUpe2lmKHQubGVuZ3RoPT09MClyZXR1cm4gdDtjb25zdHtkb21haW5NaW46bixkb21haW5NYXg6cn09ZSxbaSxhXT10O3JldHVybltuIT1udWxsP246aSxyIT1udWxsP3I6YV19ZnVuY3Rpb24gdSQodCxlKXtjb25zdHt6ZXJvOm49ITF9PWU7bGV0IHI9MS8wLGk9LTEvMDtmb3IoY29uc3QgYSBvZiB0KWZvcihjb25zdCBvIG9mIGEpcW4obykmJihyPU1hdGgubWluKHIsK28pLGk9TWF0aC5tYXgoaSwrbykpO3JldHVybiByPT09MS8wP1tdOm4/W01hdGgubWluKDAsciksaV06W3IsaV19ZnVuY3Rpb24gZiQodCl7cmV0dXJuIEFycmF5LmZyb20obmV3IFNldCh0LmZsYXQoKSkpfWZ1bmN0aW9uIGQkKHQpe3JldHVybiB0LmZsYXQoKS5zb3J0KCl9ZnVuY3Rpb24gaCQodCl7bGV0IGU9MS8wLG49LTEvMDtmb3IoY29uc3QgciBvZiB0KWZvcihjb25zdCBpIG9mIHIpcW4oaSkmJihlPU1hdGgubWluKGUsK2kpLG49TWF0aC5tYXgobiwraSkpO3JldHVybiBlPT09MS8wP1tdOltlPDA/LW46ZSxuXX1mdW5jdGlvbiBwJCh0LGUpe3JldHVybiB0PT09ImVudGVyRGVsYXkiP1swLDFlM106dD09ImVudGVyRHVyYXRpb24iP1szMDAsMWUzXTp0LnN0YXJ0c1dpdGgoInkiKXx8dC5zdGFydHNXaXRoKCJwb3NpdGlvbiIpP1sxLDBdOnQ9PT0iY29sb3IiP1tZRihlKSxCQShlKV06dD09PSJvcGFjaXR5Ij9bMCwxXTp0PT09InNpemUiP1sxLDEwXTpbMCwxXX1mdW5jdGlvbiByQyh0KXtyZXR1cm4gYU8odCxlPT57Y29uc3Qgbj10eXBlb2YgZTtyZXR1cm4gbj09PSJzdHJpbmcifHxuPT09ImJvb2xlYW4ifSl9ZnVuY3Rpb24gaUModCl7cmV0dXJuIGFPKHQsZT0+ZSBpbnN0YW5jZW9mIERhdGUpfWZ1bmN0aW9uIHYkKHQpe3JldHVybiBhTyh0LFVmKX1mdW5jdGlvbiBhTyh0LGUpe2Zvcihjb25zdCBuIG9mIHQpaWYobi5zb21lKGUpKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIGckKHQpe3JldHVybiB0LnN0YXJ0c1dpdGgoIngiKXx8dC5zdGFydHNXaXRoKCJ5Iil8fHQuc3RhcnRzV2l0aCgicG9zaXRpb24iKXx8dC5zdGFydHNXaXRoKCJzaXplIil9ZnVuY3Rpb24geSQodCl7cmV0dXJuIHQuc3RhcnRzV2l0aCgieCIpfHx0LnN0YXJ0c1dpdGgoInkiKXx8dC5zdGFydHNXaXRoKCJwb3NpdGlvbiIpfHx0PT09ImVudGVyRGVsYXkifHx0PT09ImVudGVyRHVyYXRpb24ifHx0PT09InVwZGF0ZURlbGF5Inx8dD09PSJ1cGRhdGVEdXJhdGlvbiJ8fHQ9PT0iZXhpdERlbGF5Inx8dD09PSJleGl0RHVyYXRpb24ifWZ1bmN0aW9uIG0kKHQpe2lmKCF0fHwhdC50eXBlKXJldHVybiExO2lmKHR5cGVvZiB0LnR5cGU9PSJmdW5jdGlvbiIpcmV0dXJuITA7Y29uc3R7dHlwZTplLGRvbWFpbjpuLHJhbmdlOnIsaW50ZXJwb2xhdG9yOml9PXQsYT1uJiZuLmxlbmd0aD4wLG89ciYmci5sZW5ndGg+MDtyZXR1cm4hIShbImxpbmVhciIsInNxcnQiLCJsb2ciLCJ0aW1lIiwicG93IiwidGhyZXNob2xkIiwicXVhbnRpemUiLCJxdWFudGlsZSIsIm9yZGluYWwiLCJiYW5kIiwicG9pbnQiXS5pbmNsdWRlcyhlKSYmYSYmb3x8WyJzZXF1ZW50aWFsIl0uaW5jbHVkZXMoZSkmJmEmJihvfHxpKXx8WyJjb25zdGFudCIsImlkZW50aXR5Il0uaW5jbHVkZXMoZSkmJm8pfWNvbnN0IGIkPXtsaW5lYXI6ImxpbmVhciIsaWRlbnRpdHk6ImlkZW50aXR5Iixsb2c6ImxvZyIscG93OiJwb3ciLHNxcnQ6InNxcnQiLHNlcXVlbnRpYWw6InNlcXVlbnRpYWwifSx4JD17dGhyZXNob2xkOiJ0aHJlc2hvbGQiLHF1YW50aXplOiJxdWFudGl6ZSIscXVhbnRpbGU6InF1YW50aWxlIn0sXyQ9e29yZGluYWw6Im9yZGluYWwiLGJhbmQ6ImJhbmQiLHBvaW50OiJwb2ludCJ9LHckPXtjb25zdGFudDoiY29uc3RhbnQifTt2YXIgdWw9ZnVuY3Rpb24odCxlKXt2YXIgbj17fTtmb3IodmFyIHIgaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKSYmZS5pbmRleE9mKHIpPDAmJihuW3JdPXRbcl0pO2lmKHQhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgaT0wLHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTtpPHIubGVuZ3RoO2krKyllLmluZGV4T2YocltpXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHQscltpXSkmJihuW3JbaV1dPXRbcltpXV0pO3JldHVybiBufTtmdW5jdGlvbiBPJCh0LGUsbil7Y29uc3R7Y29vcmRpbmF0ZXM6cj1bXSx0aXRsZTppfT1lLFssYV09Z3IoImNvbXBvbmVudCIsbiksbz10LmZpbHRlcigoe2d1aWRlOnV9KT0+dSE9PW51bGwpLHM9W10sYz1SJChlLHQsbik7aWYocy5wdXNoKC4uLmMpLGkpe2NvbnN0e3Byb3BzOnV9PWEoInRpdGxlIikse2RlZmF1bHRQb3NpdGlvbjpmLGRlZmF1bHRPcmllbnRhdGlvbjpkLGRlZmF1bHRPcmRlcjpoLGRlZmF1bHRTaXplOnYsZGVmYXVsdENyb3NzUGFkZGluZzpnfT11LHk9dHlwZW9mIGk9PSJzdHJpbmciP3t0aXRsZTppfTppO3MucHVzaChPYmplY3QuYXNzaWduKHt0eXBlOiJ0aXRsZSIscG9zaXRpb246ZixvcmllbnRhdGlvbjpkLG9yZGVyOmgsY3Jvc3NQYWRkaW5nOmdbMF0sZGVmYXVsdFNpemU6dn0seSkpfXJldHVybiBBJChvLHIpLmZvckVhY2goKFt1LGZdKT0+e2NvbnN0e3Byb3BzOmR9PWEodSkse2RlZmF1bHRQb3NpdGlvbjpoLGRlZmF1bHRQbGFuZTp2PSJ4eSIsZGVmYXVsdE9yaWVudGF0aW9uOmcsZGVmYXVsdFNpemU6eSxkZWZhdWx0T3JkZXI6YixkZWZhdWx0TGVuZ3RoOngsZGVmYXVsdFBhZGRpbmc6Xz1bMCwwXSxkZWZhdWx0Q3Jvc3NQYWRkaW5nOnc9WzAsMF19PWQsTz1tdCh7fSwuLi5mKSx7Z3VpZGU6RSxmaWVsZDpNfT1PLGs9QXJyYXkuaXNBcnJheShFKT9FOltFXTtmb3IoY29uc3QgQSBvZiBrKXtjb25zdFtQLENdPUMkKHUsaCxnLEEsZixvLHIpO2lmKCFQJiYhQyljb250aW51ZTtjb25zdCBOPVA9PT0ibGVmdCJ8fFA9PT0icmlnaHQiLEw9Tj9fWzFdOl9bMF0sUj1OP3dbMV06d1swXSx7c2l6ZTpJLG9yZGVyOkQ9YixsZW5ndGg6Rz14LHBhZGRpbmc6Rj1MLGNyb3NzUGFkZGluZzpXPVJ9PUE7cy5wdXNoKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7dGl0bGU6TX0sQSkse2RlZmF1bHRTaXplOnksbGVuZ3RoOkcscG9zaXRpb246UCxwbGFuZTp2LG9yaWVudGF0aW9uOkMscGFkZGluZzpGLG9yZGVyOkQsY3Jvc3NQYWRkaW5nOlcsc2l6ZTpJLHR5cGU6dSxzY2FsZXM6Zn0pKX19KSxzfWZ1bmN0aW9uIGFDKHQsZSxuLHIsaSl7Y29uc3RbYV09Z3IoImNvbXBvbmVudCIscikse3NjYWxlSW5zdGFuY2VzOm8sc2NhbGU6cyxiYm94OmN9PXQsbD11bCh0LFsic2NhbGVJbnN0YW5jZXMiLCJzY2FsZSIsImJib3giXSksdT17YmJveDpjLGxpYnJhcnk6cn07cmV0dXJuIGEobCkoe2Nvb3JkaW5hdGU6ZSxsaWJyYXJ5OnIsbWFya1N0YXRlOmksc2NhbGVzOm8sdGhlbWU6bix2YWx1ZTp1LHNjYWxlOnN9KX1mdW5jdGlvbiBTJCh0KXtyZXR1cm4gdC5tYXAoZT0+e2NvbnN0IG49bXQoZSxlLnN0eWxlKTtyZXR1cm4gZGVsZXRlIG4uc3R5bGUsbn0pfWZ1bmN0aW9uIE9vdCh0KXtyZXR1cm4gdC5mbGF0TWFwKGU9PmUudHlwZT09Imdyb3VwIj9lLmNoaWxkcmVuOmUpfWZ1bmN0aW9uIG9DKHQsZSl7Y29uc3Qgbj1bImxlZnQiLCJyaWdodCIsImJvdHRvbSIsInRvcCJdO3JldHVybiBReSh0LCh7dHlwZTphLHBvc2l0aW9uOm8sZ3JvdXA6c30pPT5uLmluY2x1ZGVzKG8pP3M9PT12b2lkIDA/YS5zdGFydHNXaXRoKCJsZWdlbmQiKT9gbGVnZW5kLSR7b31gOlN5bWJvbCgiaW5kZXBlbmRlbnQiKTpzPT09ImluZGVwZW5kZW50Ij9TeW1ib2woImluZGVwZW5kZW50Iik6czpTeW1ib2woImluZGVwZW5kZW50IikpLmZsYXRNYXAoKFssYV0pPT57aWYoYS5sZW5ndGg9PT0xKXJldHVybiBhWzBdO2lmKGUhPT12b2lkIDApe2NvbnN0IHU9YS5maWx0ZXIoZz0+Zy5sZW5ndGghPT12b2lkIDApLm1hcChnPT5nLmxlbmd0aCksZj1ibyh1KTtpZihmPmUpcmV0dXJuIGEuZm9yRWFjaChnPT5nLmdyb3VwPVN5bWJvbCgiaW5kZXBlbmRlbnQiKSksYTtjb25zdCBkPWUtZixoPWEubGVuZ3RoLXUubGVuZ3RoLHY9ZC9oO2EuZm9yRWFjaChnPT57Zy5sZW5ndGg9PT12b2lkIDAmJihnLmxlbmd0aD12KX0pfWNvbnN0IG89RG4oYSx1PT51LnNpemUpLHM9RG4oYSx1PT51Lm9yZGVyKSxjPURuKGEsdT0+dS5jcm9zc1BhZGRpbmcpLGw9YVswXS5wb3NpdGlvbjtyZXR1cm57dHlwZToiZ3JvdXAiLHNpemU6byxvcmRlcjpzLHBvc2l0aW9uOmwsY2hpbGRyZW46YSxjcm9zc1BhZGRpbmc6Y319KX1mdW5jdGlvbiBFJCh0LGUpe2NvbnN0IG49WyJzaGFwZSIsInNpemUiLCJjb2xvciIsIm9wYWNpdHkiXSxyPShkLGgpPT5kPT09ImNvbnN0YW50IiYmaD09PSJzaXplIixpPXQuZmlsdGVyKCh7dHlwZTpkLG5hbWU6aH0pPT50eXBlb2YgZD09InN0cmluZyImJm4uaW5jbHVkZXMoaCkmJiFyKGQsaCkpLGE9aS5maWx0ZXIoKHt0eXBlOmR9KT0+ZD09PSJjb25zdGFudCIpLG89aS5maWx0ZXIoKHt0eXBlOmR9KT0+ZCE9PSJjb25zdGFudCIpLGM9UXkobyxkPT5kLmZpZWxkP2QuZmllbGQ6U3ltYm9sKCJpbmRlcGVuZGVudCIpKS5tYXAoKFtkLGhdKT0+W2QsWy4uLmgsLi4uYV1dKS5maWx0ZXIoKFssZF0pPT5kLnNvbWUoaD0+aC50eXBlIT09ImNvbnN0YW50IikpLGw9bmV3IE1hcChjKTtpZihsLnNpemU9PT0wKXJldHVybltdO2NvbnN0IHU9ZD0+ZC5zb3J0KChbaF0sW3ZdKT0+aC5sb2NhbGVDb21wYXJlKHYpKTtyZXR1cm4gQXJyYXkuZnJvbShsKS5tYXAoKFssZF0pPT57Y29uc3Qgdj1WRihkKS5zb3J0KChnLHkpPT55Lmxlbmd0aC1nLmxlbmd0aCkubWFwKGc9Pih7Y29tYmluYXRpb246ZyxvcHRpb246Zy5tYXAoeT0+W3kubmFtZSxNJCh5KV0pfSkpO2Zvcihjb25zdHtvcHRpb246Zyxjb21iaW5hdGlvbjp5fW9mIHYpaWYoIWcuZXZlcnkoYj0+YlsxXT09PSJjb25zdGFudCIpJiZnLmV2ZXJ5KGI9PmJbMV09PT0iZGlzY3JldGUifHxiWzFdPT09ImNvbnN0YW50IikpcmV0dXJuWyJsZWdlbmRDYXRlZ29yeSIseV07Zm9yKGNvbnN0W2cseV1vZiBxRilmb3IoY29uc3R7b3B0aW9uOmIsY29tYmluYXRpb246eH1vZiB2KWlmKHkuc29tZShfPT5HQSh1KF8pLHUoYikpKSlyZXR1cm5bZyx4XTtyZXR1cm4gbnVsbH0pLmZpbHRlcihxbil9ZnVuY3Rpb24gTSQodCl7Y29uc3R7dHlwZTplfT10O3JldHVybiB0eXBlb2YgZSE9InN0cmluZyI/bnVsbDplIGluIGIkPyJjb250aW51b3VzIjplIGluIF8kPyJkaXNjcmV0ZSI6ZSBpbiB4JD8iZGlzdHJpYnV0aW9uIjplIGluIHckPyJjb25zdGFudCI6bnVsbH1mdW5jdGlvbiBrJCh0LGUpe3JldHVybiB0Lm1hcChuPT57Y29uc3R7bmFtZTpyfT1uO2lmKF9XKGUpfHxyMyhlKXx8dWQoZSkmJihPdShlKXx8S3AoZSkpKXJldHVybiBudWxsO2lmKHIuc3RhcnRzV2l0aCgieCIpKXJldHVybiBPdShlKT9bImF4aXNBcmMiLFtuXV06S3AoZSk/WyJheGlzTGluZWFyIixbbl1dOlt1ZChlKT8iYXhpc1kiOiJheGlzWCIsW25dXTtpZihyLnN0YXJ0c1dpdGgoInkiKSlyZXR1cm4gT3UoZSk/WyJheGlzTGluZWFyIixbbl1dOktwKGUpP1siYXhpc0FyYyIsW25dXTpbdWQoZSk/ImF4aXNYIjoiYXhpc1kiLFtuXV07aWYoci5zdGFydHNXaXRoKCJ6IikpcmV0dXJuWyJheGlzWiIsW25dXTtpZihyLnN0YXJ0c1dpdGgoInBvc2l0aW9uIikpe2lmKFNXKGUpKXJldHVyblsiYXhpc1JhZGFyIixbbl1dO2lmKCFPdShlKSlyZXR1cm5bImF4aXNZIixbbl1dfXJldHVybiBudWxsfSkuZmlsdGVyKHFuKX1mdW5jdGlvbiBBJCh0LGUpe2NvbnN0IG49dC5maWx0ZXIocj0+bSQocikpO3JldHVyblsuLi5FJChuLGUpLC4uLmskKG4sZSldfWZ1bmN0aW9uIG9PKHQpe2NvbnN0IGU9R28odCwicG9sYXIiKTtpZihlLmxlbmd0aCl7Y29uc3Qgcj1lW2UubGVuZ3RoLTFdLHtzdGFydEFuZ2xlOmksZW5kQW5nbGU6YX09JEEocik7cmV0dXJuW2ksYV19Y29uc3Qgbj1Hbyh0LCJyYWRpYWwiKTtpZihuLmxlbmd0aCl7Y29uc3Qgcj1uW24ubGVuZ3RoLTFdLHtzdGFydEFuZ2xlOmksZW5kQW5nbGU6YX09WkEocik7cmV0dXJuW2ksYV19cmV0dXJuWy1NYXRoLlBJLzIsTWF0aC5QSS8yKjNdfWZ1bmN0aW9uIFQkKHQpe2NvbnN0IGU9L3Bvc2l0aW9uKFxkKikvZy5leGVjKHQpO3JldHVybiBlPytlWzFdOm51bGx9ZnVuY3Rpb24gUCQodCxlLG4scixpKXtjb25zdHtuYW1lOmF9PW5bMF07aWYodD09PSJheGlzUmFkYXIiKXtjb25zdCBvPXIuZmlsdGVyKGY9PmYubmFtZS5zdGFydHNXaXRoKCJwb3NpdGlvbiIpKSxzPVQkKGEpO2lmKGE9PT1vLnNsaWNlKC0xKVswXS5uYW1lfHxzPT09bnVsbClyZXR1cm5bbnVsbCxudWxsXTtjb25zdFtjLGxdPW9PKGkpO3JldHVyblsiY2VudGVyIiwobC1jKS8oby5sZW5ndGgtMSkqcytjXX1pZih0PT09ImF4aXNZIiYmd1coaSkpcmV0dXJuIHVkKGkpP1siY2VudGVyIiwiaG9yaXpvbnRhbCJdOlsiY2VudGVyIiwidmVydGljYWwiXTtpZih0PT09ImF4aXNMaW5lYXIiKXtjb25zdFtvXT1vTyhpKTtyZXR1cm5bImNlbnRlciIsb119cmV0dXJuIHQ9PT0iYXhpc0FyYyI/ZVswXT09PSJpbm5lciI/WyJpbm5lciIsbnVsbF06WyJvdXRlciIsbnVsbF06T3UoaSk/WyJjZW50ZXIiLG51bGxdOktwKGkpP1siY2VudGVyIixudWxsXTp0PT09ImF4aXNYIiYmT1coaSl8fHQ9PT0iYXhpc1giJiZFVyhpKT9bInRvcCIsbnVsbF06ZX1mdW5jdGlvbiBDJCh0LGUsbixyLGksYSxvKXtjb25zdFtzXT1vTyhvKSxjPVtyLnBvc2l0aW9ufHxlLHMhPW51bGw/czpuXTtyZXR1cm4gdHlwZW9mIHQ9PSJzdHJpbmciJiZ0LnN0YXJ0c1dpdGgoImF4aXMiKT9QJCh0LGMsaSxhLG8pOnR5cGVvZiB0PT0ic3RyaW5nIiYmdC5zdGFydHNXaXRoKCJsZWdlbmQiKSYmT3UobykmJnIucG9zaXRpb249PT0iY2VudGVyIj9bImNlbnRlciIsInZlcnRpY2FsIl06Y31mdW5jdGlvbiBMJCh0LGUsbj1bXSl7cmV0dXJuIHQ9PT0ieCI/dWQobik/YCR7ZX1ZYDpgJHtlfVhgOnQ9PT0ieSI/dWQobik/YCR7ZX1YYDpgJHtlfVlgOm51bGx9ZnVuY3Rpb24gUiQodCxlLG4pe2NvbnN0WyxyXT1ncigiY29tcG9uZW50IixuKSx7Y29vcmRpbmF0ZXM6aX09dDtmdW5jdGlvbiBhKG8scyxjLGwpe2NvbnN0IHU9TCQocyxvLGkpO2lmKCFsfHwhdSlyZXR1cm47Y29uc3R7cHJvcHM6Zn09cih1KSx7ZGVmYXVsdFBvc2l0aW9uOmQsZGVmYXVsdFNpemU6aCxkZWZhdWx0T3JkZXI6dixkZWZhdWx0Q3Jvc3NQYWRkaW5nOltnXX09ZjtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHtwb3NpdGlvbjpkLGRlZmF1bHRTaXplOmgsb3JkZXI6dix0eXBlOnUsY3Jvc3NQYWRkaW5nOmd9LGwpLHtzY2FsZXM6W2NdfSl9cmV0dXJuIGUuZmlsdGVyKG89Pm8uc2xpZGVyfHxvLnNjcm9sbGJhcikuZmxhdE1hcChvPT57Y29uc3R7c2xpZGVyOnMsc2Nyb2xsYmFyOmMsbmFtZTpsfT1vO3JldHVyblthKCJzbGlkZXIiLGwsbyxzKSxhKCJzY3JvbGxiYXIiLGwsbyxjKV19KS5maWx0ZXIobz0+ISFvKX1mdW5jdGlvbiBzQyh0LGUsbixyLGksYSl7Y29uc3R7dHlwZTpvfT10O2lmKCFbImxlZnQiLCJyaWdodCIsImJvdHRvbSIsInRvcCJdLmluY2x1ZGVzKHIpfHx0eXBlb2YgbyE9InN0cmluZyIpcmV0dXJuO2NvbnN0IGM9bztyZXR1cm4oYy5zdGFydHNXaXRoKCJheGlzIik/RiQ6Yy5zdGFydHNXaXRoKCJncm91cCIpP04kOmMuc3RhcnRzV2l0aCgibGVnZW5kQ29udGludW91cyIpP0IkOmM9PT0ibGVnZW5kQ2F0ZWdvcnkiP3okOmMuc3RhcnRzV2l0aCgic2xpZGVyIik/aiQ6Yz09PSJ0aXRsZSI/RCQ6Yy5zdGFydHNXaXRoKCJzY3JvbGxiYXIiKT9JJDooKT0+e30pKHQsZSxuLHIsaSxhKX1mdW5jdGlvbiBOJCh0LGUsbixyLGksYSl7Y29uc3R7Y2hpbGRyZW46b309dCxzPURuKG8sbD0+bC5jcm9zc1BhZGRpbmcpO28uZm9yRWFjaChsPT5sLmNyb3NzUGFkZGluZz1zKSxvLmZvckVhY2gobD0+c0MobCxlLG4scixpLGEpKTtjb25zdCBjPURuKG8sbD0+bC5zaXplKTt0LnNpemU9YyxvLmZvckVhY2gobD0+bC5zaXplPWMpfWZ1bmN0aW9uIEkkKHQsZSxuLHIsaSxhKXtjb25zdHt0cmFja1NpemU6bz02fT1tdCh7fSxpLnNjcm9sbGJhcix0KTt0LnNpemU9b31mdW5jdGlvbiBEJCh0LGUsbixyLGksYSl7Y29uc3Qgbz1tdCh7fSxpLnRpdGxlLHQpLHt0aXRsZTpzLHN1YnRpdGxlOmMsc3BhY2luZzpsPTB9PW8sdT11bChvLFsidGl0bGUiLCJzdWJ0aXRsZSIsInNwYWNpbmciXSk7aWYocyl7Y29uc3QgZj0kdCh1LCJ0aXRsZSIpLGQ9VW0ocyxmKTt0LnNpemU9ZC5oZWlnaHR9aWYoYyl7Y29uc3QgZj0kdCh1LCJzdWJ0aXRsZSIpLGQ9VW0oYyxmKTt0LnNpemUrPWwrZC5oZWlnaHR9fWZ1bmN0aW9uIGokKHQsZSxuLHIsaSxhKXtjb25zdCBvPSgpPT57Y29uc3R7c2xpZGVyOnV9PWk7cmV0dXJuIG10KHt9LHUsdCl9LHt0cmFja1NpemU6cyxoYW5kbGVJY29uU2l6ZTpjfT1vKCksbD1NYXRoLm1heChzLGMqMi40KTt0LnNpemU9bH1mdW5jdGlvbiBGJCh0LGUsbixyLGksYSl7dmFyIG87dC50cmFuc2Zvcm09dC50cmFuc2Zvcm18fFt7dHlwZToiaGlkZSJ9XTtjb25zdCBzPXI9PT0ibGVmdCJ8fHI9PT0icmlnaHQiLGM9Y0ModCxyLGkpLHt0aWNrTGVuZ3RoOmw9MCxsYWJlbFNwYWNpbmc6dT0wLHRpdGxlU3BhY2luZzpmPTAsbGFiZWxBdXRvUm90YXRlOmR9PWMsaD11bChjLFsidGlja0xlbmd0aCIsImxhYmVsU3BhY2luZyIsInRpdGxlU3BhY2luZyIsImxhYmVsQXV0b1JvdGF0ZSJdKSx2PUhtKHQsYSksZz1WbShoLHYpLHk9bCt1O2lmKGcmJmcubGVuZ3RoKXtjb25zdCB4PURuKGcsdz0+dy53aWR0aCksXz1EbihnLHc9PncuaGVpZ2h0KTtpZihzKXQuc2l6ZT14K3k7ZWxzZXtjb25zdHt0aWNrRmlsdGVyOncsbGFiZWxUcmFuc2Zvcm06T309dDskJCh2LGcsZSxuLHcpJiYhTyYmZCE9PSExJiZkIT09bnVsbD8odC5sYWJlbFRyYW5zZm9ybT0icm90YXRlKDkwKSIsdC5zaXplPXgreSk6KHQubGFiZWxUcmFuc2Zvcm09KG89dC5sYWJlbFRyYW5zZm9ybSkhPT1udWxsJiZvIT09dm9pZCAwP286InJvdGF0ZSgwKSIsdC5zaXplPV8reSl9fWVsc2UgdC5zaXplPWw7Y29uc3QgYj1YbShoKTtiJiYocz90LnNpemUrPWYrYi53aWR0aDp0LnNpemUrPWYrYi5oZWlnaHQpfWZ1bmN0aW9uIEIkKHQsZSxuLHIsaSxhKXtjb25zdCBzPSgoKT0+e2NvbnN0e2xlZ2VuZENvbnRpbnVvdXM6d309aTtyZXR1cm4gbXQoe30sdyx0KX0pKCkse2xhYmVsU3BhY2luZzpjPTAsdGl0bGVTcGFjaW5nOmw9MH09cyx1PXVsKHMsWyJsYWJlbFNwYWNpbmciLCJ0aXRsZVNwYWNpbmciXSksZj1yPT09ImxlZnQifHxyPT09InJpZ2h0IixkPSR0KHUsInJpYmJvbiIpLHtzaXplOmh9PWQsdj0kdCh1LCJoYW5kbGVJY29uIikse3NpemU6Z309dix5PU1hdGgubWF4KGgsZyoyLjQpO3Quc2l6ZT15O2NvbnN0IGI9SG0odCxhKSx4PVZtKHUsYik7aWYoeCl7Y29uc3Qgdz1mPyJ3aWR0aCI6ImhlaWdodCIsTz1Ebih4LEU9PkVbd10pO3Quc2l6ZSs9TytjfWNvbnN0IF89WG0odSk7XyYmKGY/dC5zaXplPU1hdGgubWF4KHQuc2l6ZSxfLndpZHRoKTp0LnNpemUrPWwrXy5oZWlnaHQpfWZ1bmN0aW9uIHokKHQsZSxuLHIsaSxhKXtjb25zdCBzPSgoKT0+e2NvbnN0e2xlZ2VuZENhdGVnb3J5OlJ9PWkse3RpdGxlOkl9PXQsW0QsR109QXJyYXkuaXNBcnJheShJKT9bSSx2b2lkIDBdOlt2b2lkIDAsSV07cmV0dXJuIG10KHt0aXRsZTpEfSxSLE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7dGl0bGU6R30pKX0pKCkse2l0ZW1TcGFjaW5nOmMsaXRlbU1hcmtlclNpemU6bCx0aXRsZVNwYWNpbmc6dSxyb3dQYWRkaW5nOmYsY29sUGFkZGluZzpkLG1heENvbHM6aD0xLzAsbWF4Um93czp2PTEvMH09cyxnPXVsKHMsWyJpdGVtU3BhY2luZyIsIml0ZW1NYXJrZXJTaXplIiwidGl0bGVTcGFjaW5nIiwicm93UGFkZGluZyIsImNvbFBhZGRpbmciLCJtYXhDb2xzIiwibWF4Um93cyJdKSx7Y29sczp5LGxlbmd0aDpifT10LHg9Uj0+TWF0aC5taW4oUix2KSxfPVI9Pk1hdGgubWluKFIsaCksdz1yPT09ImxlZnQifHxyPT09InJpZ2h0IixPPWI9PT12b2lkIDA/ZSsodz8wOm5bMF0rblsxXSk6YixFPVhtKGcpLE09SG0odCxhKSxrPVZtKGcsTSwiaXRlbUxhYmVsIiksQT1NYXRoLm1heChrWzBdLmhlaWdodCxsKStmLFA9KFIsST0wKT0+bCtSK2NbMF0rSTt3PygoKT0+e2xldCBSPS0xLzAsST0wLEQ9MSxHPTAsRj0tMS8wLFc9LTEvMDtjb25zdCBYPUU/RS5oZWlnaHQ6MCxRPU8tWDtmb3IoY29uc3R7d2lkdGg6dHR9b2Ygayl7Y29uc3QgbnQ9UCh0dCxkKTtSPU1hdGgubWF4KFIsbnQpLEkrQT5RPyhEKyssRj1NYXRoLm1heChGLEcpLFc9TWF0aC5tYXgoVyxJKSxHPTEsST1BKTooSSs9QSxHKyspfUQ8PTEmJihGPUcsVz1JKSx0LnNpemU9UipfKEQpLHQubGVuZ3RoPVcrWCxtdCh0LHtjb2xzOl8oRCksZ3JpZFJvdzpGfSl9KSgpOnR5cGVvZiB5PT0ibnVtYmVyIj8oKCk9Pntjb25zdCBSPU1hdGguY2VpbChrLmxlbmd0aC95KSxJPURuKGssRD0+UChELndpZHRoKSkqeTt0LnNpemU9QSp4KFIpLWYsdC5sZW5ndGg9TWF0aC5taW4oSSxPKX0pKCk6KCgpPT57bGV0IFI9MSxJPTAsRD0tMS8wO2Zvcihjb25zdHt3aWR0aDpHfW9mIGspe2NvbnN0IEY9UChHLGQpO0krRj5PPyhEPU1hdGgubWF4KEQsSSksST1GLFIrKyk6SSs9Rn1SPT09MSYmKEQ9SSksdC5zaXplPUEqeChSKS1mLHQubGVuZ3RoPUR9KSgpLEUmJih3P3Quc2l6ZT1NYXRoLm1heCh0LnNpemUsRS53aWR0aCk6dC5zaXplKz11K0UuaGVpZ2h0KX1mdW5jdGlvbiBIbSh0LGUpe2NvbnN0W25dPWdyKCJzY2FsZSIsZSkse3NjYWxlczpyLHRpY2tDb3VudDppLHRpY2tNZXRob2Q6YX09dCxvPXIuZmluZChzPT5zLnR5cGUhPT0iY29uc3RhbnQiJiZzLnR5cGUhPT0iaWRlbnRpdHkiKTtyZXR1cm4gaSE9PXZvaWQgMCYmKG8udGlja0NvdW50PWkpLGEhPT12b2lkIDAmJihvLnRpY2tNZXRob2Q9YSksbihvKX1mdW5jdGlvbiBWbSh0LGUsbj0ibGFiZWwiKXtjb25zdHtsYWJlbEZvcm1hdHRlcjpyLHRpY2tGaWx0ZXI6aSxsYWJlbDphPSEwfT10LG89dWwodCxbImxhYmVsRm9ybWF0dGVyIiwidGlja0ZpbHRlciIsImxhYmVsIl0pO2lmKCFhKXJldHVybiBudWxsO2NvbnN0IHM9VyQoZSxyLGkpLGM9JHQobyxuKSxsPXMubWFwKChkLGgpPT5PYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXMoYykubWFwKChbdixnXSk9Plt2LHR5cGVvZiBnPT0iZnVuY3Rpb24iP2coZCxoKTpnXSkpKSx1PXMubWFwKChkLGgpPT57Y29uc3Qgdj1sW2hdO3JldHVybiBVbShkLHYpfSk7aWYoIWwuc29tZShkPT5kLnRyYW5zZm9ybSkpe2NvbnN0IGQ9cy5tYXAoKGgsdik9PnYpO3QuaW5kZXhCQm94PW5ldyBNYXAoZC5tYXAoaD0+W2gsW3NbaF0sdVtoXV1dKSl9cmV0dXJuIHV9ZnVuY3Rpb24gWG0odCl7Y29uc3QgZT1sPT5sPT09ITF8fGw9PT1udWxsLHt0aXRsZTpufT10LHI9dWwodCxbInRpdGxlIl0pO2lmKGUobil8fG49PT12b2lkIDApcmV0dXJuIG51bGw7Y29uc3QgaT0kdChyLCJ0aXRsZSIpLHtkaXJlY3Rpb246YSx0cmFuc2Zvcm06b309aSxzPUFycmF5LmlzQXJyYXkobik/bi5qb2luKCIsIik6bjtyZXR1cm4gdHlwZW9mIHMhPSJzdHJpbmciP251bGw6VW0ocyxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30saSkse3RyYW5zZm9ybTpvfHwoYT09PSJ2ZXJ0aWNhbCI/InJvdGF0ZSgtOTApIjoiIil9KSl9ZnVuY3Rpb24gY0ModCxlLG4pe2NvbnN0e3RpdGxlOnJ9PXQsW2ksYV09QXJyYXkuaXNBcnJheShyKT9bcix2b2lkIDBdOlt2b2lkIDAscl0se2F4aXM6byxbYGF4aXMke0tfKGUpfWBdOnN9PW47cmV0dXJuIG10KHt0aXRsZTppfSxvLHMsT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHt0aXRsZTphfSkpfWZ1bmN0aW9uIGxDKHQsZSl7Y29uc3Qgbj10LmdldFRpY2tzP3QuZ2V0VGlja3MoKTp0LmdldE9wdGlvbnMoKS5kb21haW47cmV0dXJuIGU/bi5maWx0ZXIoZSk6bn1mdW5jdGlvbiBXJCh0LGUsbil7Y29uc3QgaT1sQyh0LG4pLm1hcChvPT50eXBlb2Ygbz09Im51bWJlciI/cm0obyk6byksYT1lP3R5cGVvZiBlPT0ic3RyaW5nIj9lbChlKTplOnQuZ2V0Rm9ybWF0dGVyP3QuZ2V0Rm9ybWF0dGVyKCk6bz0+YCR7b31gO3JldHVybiBpLm1hcChhKX1mdW5jdGlvbiBHJCh0LGUpe3JldHVybiB0LmdldEJhbmRXaWR0aD90LmdldEJhbmRXaWR0aChlKS8yOjB9ZnVuY3Rpb24gJCQodCxlLG4scixpKXtpZihibyhlLGg9Pmgud2lkdGgpPm4pcmV0dXJuITA7Y29uc3Qgbz10LmNsb25lKCk7by51cGRhdGUoe3JhbmdlOlswLG5dfSk7Y29uc3Qgcz1sQyh0LGkpLGM9cy5tYXAoaD0+by5tYXAoaCkrRyQobyxoKSksbD1zLm1hcCgoaCx2KT0+diksdT0tclswXSxmPW4rclsxXSxkPShoLHYpPT57Y29uc3R7d2lkdGg6Z309djtyZXR1cm5baC1nLzIsaCtnLzJdfTtmb3IobGV0IGg9MDtoPGwubGVuZ3RoO2grKyl7Y29uc3Qgdj1jW2hdLFtnLHldPWQodixlW2hdKTtpZihnPHV8fHk+ZilyZXR1cm4hMDtjb25zdCBiPWNbaCsxXTtpZihiKXtjb25zdFt4XT1kKGIsZVtoKzFdKTtpZih5PngpcmV0dXJuITB9fXJldHVybiExfWZ1bmN0aW9uIFVtKHQsZSl7Y29uc3Qgbj1aJCh0KSx7ZmlsdGVyOnJ9PWUsaT11bChlLFsiZmlsdGVyIl0pO3JldHVybiBuLmF0dHIoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGkpLHt2aXNpYmlsaXR5OiJub25lIn0pKSxuLmdldEJCb3goKX1mdW5jdGlvbiBaJCh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIG9yP3Q6bmV3IHBvKHtzdHlsZTp7dGV4dDpgJHt0fWB9fSl9ZnVuY3Rpb24gWmEodCxlKXtsZXQgbjtpZihlPT09dm9pZCAwKWZvcihjb25zdCByIG9mIHQpciE9bnVsbCYmKG4+cnx8bj09PXZvaWQgMCYmcj49cikmJihuPXIpO2Vsc2V7bGV0IHI9LTE7Zm9yKGxldCBpIG9mIHQpKGk9ZShpLCsrcix0KSkhPW51bGwmJihuPml8fG49PT12b2lkIDAmJmk+PWkpJiYobj1pKX1yZXR1cm4gbn1mdW5jdGlvbiBZJCh0KXtjb25zdCBlPXQuZmluZCgoe3R5cGU6aX0pPT5pPT09ImF4aXNYIiksbj10LmZpbmQoKHt0eXBlOml9KT0+aT09PSJheGlzWSIpLHI9dC5maW5kKCh7dHlwZTppfSk9Pmk9PT0iYXhpc1oiKTtlJiZuJiZyJiYoZS5wbGFuZT0ieHkiLG4ucGxhbmU9Inh5IixyLnBsYW5lPSJ5eiIsci5vcmlnaW49W2UuYmJveC54LGUuYmJveC55LDBdLHIuZXVsZXJBbmdsZXM9WzAsLTkwLDBdLHIuYmJveC54PWUuYmJveC54LHIuYmJveC55PWUuYmJveC55LHQucHVzaChPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZSkse3BsYW5lOiJ4eiIsc2hvd0xhYmVsOiExLHNob3dUaXRsZTohMSxvcmlnaW46W2UuYmJveC54LGUuYmJveC55LDBdLGV1bGVyQW5nbGVzOlstOTAsMCwwXX0pKSx0LnB1c2goT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG4pLHtwbGFuZToieXoiLHNob3dMYWJlbDohMSxzaG93VGl0bGU6ITEsb3JpZ2luOltuLmJib3gueCtuLmJib3gud2lkdGgsbi5iYm94LnksMF0sZXVsZXJBbmdsZXM6WzAsLTkwLDBdfSkpLHQucHVzaChPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30scikse3BsYW5lOiJ4eiIsYWN0dWFsUG9zaXRpb246ImxlZnQiLHNob3dMYWJlbDohMSxzaG93VGl0bGU6ITEsZXVsZXJBbmdsZXM6WzkwLC05MCwwXX0pKSl9ZnVuY3Rpb24gSCQodCxlLG4scil7dmFyIGksYTtjb25zdHt3aWR0aDpvLGhlaWdodDpzLGRlcHRoOmMseDpsPTAseTp1PTAsejpmPTAsaW5zZXQ6ZD0oaT1uLmluc2V0KSE9PW51bGwmJmkhPT12b2lkIDA/aTowLGluc2V0TGVmdDpoPWQsaW5zZXRUb3A6dj1kLGluc2V0Qm90dG9tOmc9ZCxpbnNldFJpZ2h0Onk9ZCxtYXJnaW46Yj0oYT1uLm1hcmdpbikhPT1udWxsJiZhIT09dm9pZCAwP2E6MCxtYXJnaW5MZWZ0Ong9YixtYXJnaW5Cb3R0b206Xz1iLG1hcmdpblRvcDp3PWIsbWFyZ2luUmlnaHQ6Tz1iLHBhZGRpbmc6RT1uLnBhZGRpbmcscGFkZGluZ0JvdHRvbTpNPUUscGFkZGluZ0xlZnQ6az1FLHBhZGRpbmdSaWdodDpBPUUscGFkZGluZ1RvcDpQPUV9PVgkKHQsZSxuLHIpLEM9MS80LE49KEx0LEl0LGp0LFF0LHVlKT0+e2NvbnN0e21hcmtzOnllfT1lO2lmKHllLmxlbmd0aD09PTApcmV0dXJuW1F0LHVlXTtpZihMdC1RdC11ZS1MdCpDPjApcmV0dXJuW1F0LHVlXTtjb25zdCBOZT1MdCooMS1DKTtyZXR1cm5bSXQ9PT0iYXV0byI/TmUqUXQvKFF0K3VlKTpRdCxqdD09PSJhdXRvIj9OZSp1ZS8oUXQrdWUpOnVlXX0sTD1MdD0+THQ9PT0iYXV0byI/MjA6THQhPW51bGw/THQ6MjAsUj1MKFApLEk9TChNKSxEPXVDKHQscy1SLUksW1IrdyxJK19dLFsibGVmdCIsInJpZ2h0Il0sZSxuLHIpLHtwYWRkaW5nTGVmdDpHLHBhZGRpbmdSaWdodDpGfT1ELFc9by14LU8sW1gsUV09TihXLGssQSxHLEYpLHR0PVctWC1RLG50PXVDKHQsdHQsW1greCxRK09dLFsiYm90dG9tIiwidG9wIl0sZSxuLHIpLHtwYWRkaW5nVG9wOmh0LHBhZGRpbmdCb3R0b206bHR9PW50LHd0PXMtXy13LFt5dCxndF09Tih3dCxNLFAsbHQsaHQpLEJ0PXd0LXl0LWd0O3JldHVybnt3aWR0aDpvLGhlaWdodDpzLGRlcHRoOmMsaW5zZXRMZWZ0OmgsaW5zZXRUb3A6dixpbnNldEJvdHRvbTpnLGluc2V0UmlnaHQ6eSxpbm5lcldpZHRoOnR0LGlubmVySGVpZ2h0OkJ0LHBhZGRpbmdMZWZ0OlgscGFkZGluZ1JpZ2h0OlEscGFkZGluZ1RvcDpndCxwYWRkaW5nQm90dG9tOnl0LG1hcmdpbkxlZnQ6eCxtYXJnaW5Cb3R0b206XyxtYXJnaW5Ub3A6dyxtYXJnaW5SaWdodDpPLHg6bCx5OnUsejpmfX1mdW5jdGlvbiBWJCh0KXtjb25zdHtoZWlnaHQ6ZSx3aWR0aDpuLHBhZGRpbmc6cj0wLHBhZGRpbmdMZWZ0Omk9cixwYWRkaW5nUmlnaHQ6YT1yLHBhZGRpbmdUb3A6bz1yLHBhZGRpbmdCb3R0b206cz1yLG1hcmdpbjpjPTE2LG1hcmdpbkxlZnQ6bD1jLG1hcmdpblJpZ2h0OnU9YyxtYXJnaW5Ub3A6Zj1jLG1hcmdpbkJvdHRvbTpkPWMsaW5zZXQ6aD0wLGluc2V0TGVmdDp2PWgsaW5zZXRSaWdodDpnPWgsaW5zZXRUb3A6eT1oLGluc2V0Qm90dG9tOmI9aH09dCx4PU89Pk89PT0iYXV0byI/MjA6TyxfPW4teChpKS14KGEpLWwtdS12LWcsdz1lLXgobykteChzKS1mLWQteS1iO3JldHVybnt3aWR0aDpfLGhlaWdodDp3fX1mdW5jdGlvbiBYJCh0LGUsbixyKXtjb25zdHtjb29yZGluYXRlczppfT1lO2lmKCFPdShpKSYmIUtwKGkpKXJldHVybiBlO2NvbnN0IGE9dC5maWx0ZXIoYj0+dHlwZW9mIGIudHlwZT09InN0cmluZyImJmIudHlwZS5zdGFydHNXaXRoKCJheGlzIikpO2lmKGEubGVuZ3RoPT09MClyZXR1cm4gZTtjb25zdCBvPWEubWFwKGI9Pntjb25zdCB4PWIudHlwZT09PSJheGlzQXJjIj8iYXJjIjoibGluZWFyIjtyZXR1cm4gY0MoYix4LG4pfSkscz1EbihvLGI9Pnt2YXIgeDtyZXR1cm4oeD1iLmxhYmVsU3BhY2luZykhPT1udWxsJiZ4IT09dm9pZCAwP3g6MH0pLGM9YS5mbGF0TWFwKChiLHgpPT57Y29uc3QgXz1vW3hdLHc9SG0oYixyKTtyZXR1cm4gVm0oXyx3KX0pLmZpbHRlcihxbiksbD1EbihjLGI9PmIuaGVpZ2h0KStzLHU9YS5mbGF0TWFwKChiLHgpPT57Y29uc3QgXz1vW3hdO3JldHVybiBYbShfKX0pLmZpbHRlcihiPT5iIT09bnVsbCksZj11Lmxlbmd0aD09PTA/MDpEbih1LGI9PmIuaGVpZ2h0KSx7aW5zZXQ6ZD1sLGluc2V0TGVmdDpoPWQsaW5zZXRCb3R0b206dj1kLGluc2V0VG9wOmc9ZCtmLGluc2V0UmlnaHQ6eT1kfT1lO3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZSkse2luc2V0TGVmdDpoLGluc2V0Qm90dG9tOnYsaW5zZXRUb3A6ZyxpbnNldFJpZ2h0Onl9KX1mdW5jdGlvbiB1Qyh0LGUsbixyLGksYSxvKXtjb25zdCBzPWRyKHQsdj0+di5wb3NpdGlvbikse3BhZGRpbmc6Yz1hLnBhZGRpbmcscGFkZGluZ0xlZnQ6bD1jLHBhZGRpbmdSaWdodDp1PWMscGFkZGluZ0JvdHRvbTpmPWMscGFkZGluZ1RvcDpkPWN9PWksaD17cGFkZGluZ0JvdHRvbTpmLHBhZGRpbmdMZWZ0OmwscGFkZGluZ1RvcDpkLHBhZGRpbmdSaWdodDp1fTtmb3IoY29uc3QgdiBvZiByKXtjb25zdCBnPWBwYWRkaW5nJHtLXyh3UCh2KSl9YCx5PXMuZ2V0KHYpfHxbXSxiPWhbZ10seD1BPT57QS5zaXplPT09dm9pZCAwJiYoQS5zaXplPUEuZGVmYXVsdFNpemUpfSxfPUE9PntBLnR5cGU9PT0iZ3JvdXAiPyhBLmNoaWxkcmVuLmZvckVhY2goeCksQS5zaXplPURuKEEuY2hpbGRyZW4sUD0+UC5zaXplKSk6QS5zaXplPUEuZGVmYXVsdFNpemV9LHc9QT0+e0Euc2l6ZXx8KGIhPT0iYXV0byI/XyhBKTooc0MoQSxlLG4sdixhLG8pLHgoQSkpKX0sTz1BPT57QS50eXBlLnN0YXJ0c1dpdGgoImF4aXMiKSYmQS5sYWJlbEF1dG9IaWRlPT09dm9pZCAwJiYoQS5sYWJlbEF1dG9IaWRlPSEwKX0sRT12PT09ImJvdHRvbSJ8fHY9PT0idG9wIixNPVphKHksQT0+QS5vcmRlciksaz15LmZpbHRlcihBPT5BLnR5cGUuc3RhcnRzV2l0aCgiYXhpcyIpJiZBLm9yZGVyPT1NKTtpZihrLmxlbmd0aCYmKGtbMF0uY3Jvc3NQYWRkaW5nPTApLHR5cGVvZiBiPT0ibnVtYmVyIil5LmZvckVhY2goeCkseS5mb3JFYWNoKE8pO2Vsc2UgaWYoeS5sZW5ndGg9PT0wKWhbZ109MDtlbHNle2NvbnN0IEE9RT9lK25bMF0rblsxXTplLFA9b0MoeSxBKTtQLmZvckVhY2godyk7Y29uc3QgQz1QLnJlZHVjZSgoTix7c2l6ZTpMLGNyb3NzUGFkZGluZzpSPTEyfSk9Pk4rTCtSLDApO2hbZ109Q319cmV0dXJuIGh9ZnVuY3Rpb24gVSQodCxlLG4pe2NvbnN0IHI9ZHIodCxFPT5gJHtFLnBsYW5lfHwieHkifS0ke0UucG9zaXRpb259YCkse3BhZGRpbmdMZWZ0OmkscGFkZGluZ1JpZ2h0OmEscGFkZGluZ1RvcDpvLHBhZGRpbmdCb3R0b206cyxtYXJnaW5MZWZ0OmMsbWFyZ2luVG9wOmwsbWFyZ2luQm90dG9tOnUsbWFyZ2luUmlnaHQ6Zixpbm5lckhlaWdodDpkLGlubmVyV2lkdGg6aCxpbnNldEJvdHRvbTp2LGluc2V0TGVmdDpnLGluc2V0UmlnaHQ6eSxpbnNldFRvcDpiLGhlaWdodDp4LHdpZHRoOl8sZGVwdGg6d309bixPPXt4eTpzTyh7d2lkdGg6XyxoZWlnaHQ6eCxwYWRkaW5nTGVmdDppLHBhZGRpbmdSaWdodDphLHBhZGRpbmdUb3A6byxwYWRkaW5nQm90dG9tOnMsbWFyZ2luTGVmdDpjLG1hcmdpblRvcDpsLG1hcmdpbkJvdHRvbTp1LG1hcmdpblJpZ2h0OmYsaW5uZXJIZWlnaHQ6ZCxpbm5lcldpZHRoOmgsaW5zZXRCb3R0b206dixpbnNldExlZnQ6ZyxpbnNldFJpZ2h0OnksaW5zZXRUb3A6Yn0pLHl6OnNPKHt3aWR0aDp3LGhlaWdodDp4LHBhZGRpbmdMZWZ0OjAscGFkZGluZ1JpZ2h0OjAscGFkZGluZ1RvcDowLHBhZGRpbmdCb3R0b206MCxtYXJnaW5MZWZ0OjAsbWFyZ2luVG9wOjAsbWFyZ2luQm90dG9tOjAsbWFyZ2luUmlnaHQ6MCxpbm5lcldpZHRoOncsaW5uZXJIZWlnaHQ6eCxpbnNldEJvdHRvbTowLGluc2V0TGVmdDowLGluc2V0UmlnaHQ6MCxpbnNldFRvcDowfSkseHo6c08oe3dpZHRoOl8saGVpZ2h0OncscGFkZGluZ0xlZnQ6MCxwYWRkaW5nUmlnaHQ6MCxwYWRkaW5nVG9wOjAscGFkZGluZ0JvdHRvbTowLG1hcmdpbkxlZnQ6MCxtYXJnaW5Ub3A6MCxtYXJnaW5Cb3R0b206MCxtYXJnaW5SaWdodDowLGlubmVyV2lkdGg6Xyxpbm5lckhlaWdodDp3LGluc2V0Qm90dG9tOjAsaW5zZXRMZWZ0OjAsaW5zZXRSaWdodDowLGluc2V0VG9wOjB9KX07Zm9yKGNvbnN0W0UsTV1vZiByLmVudHJpZXMoKSl7Y29uc3RbayxBXT1FLnNwbGl0KCItIiksUD1PW2tdW0FdLFtDLE5dPXpBKE0sTD0+dHlwZW9mIEwudHlwZSE9InN0cmluZyI/ITE6ISEoQT09PSJjZW50ZXIifHxMLnR5cGUuc3RhcnRzV2l0aCgiYXhpcyIpJiZbImlubmVyIiwib3V0ZXIiXS5pbmNsdWRlcyhBKSkpO0MubGVuZ3RoJiZxJChDLGUsUCxBKSxOLmxlbmd0aCYmYVooTSxlLFApfX1mdW5jdGlvbiBzTyh7d2lkdGg6dCxoZWlnaHQ6ZSxwYWRkaW5nTGVmdDpuLHBhZGRpbmdSaWdodDpyLHBhZGRpbmdUb3A6aSxwYWRkaW5nQm90dG9tOmEsbWFyZ2luTGVmdDpvLG1hcmdpblRvcDpzLG1hcmdpbkJvdHRvbTpjLG1hcmdpblJpZ2h0OmwsaW5uZXJIZWlnaHQ6dSxpbm5lcldpZHRoOmYsaW5zZXRCb3R0b206ZCxpbnNldExlZnQ6aCxpbnNldFJpZ2h0OnYsaW5zZXRUb3A6Z30pe2NvbnN0IHk9bitvLGI9aStzLHg9citsLF89YStjLHc9dC1vLWwsTz1beStoLGIrZyxmLWgtdix1LWctZCwiY2VudGVyIixudWxsLG51bGxdO3JldHVybnt0b3A6W3ksMCxmLGIsInZlcnRpY2FsIiwhMCxrcixvLHddLHJpZ2h0Olt0LXgsYix4LHUsImhvcml6b250YWwiLCExLGtyXSxib3R0b206W3ksZS1fLGYsXywidmVydGljYWwiLCExLGtyLG8sd10sbGVmdDpbMCxiLHksdSwiaG9yaXpvbnRhbCIsITAsa3JdLCJ0b3AtbGVmdCI6W3ksMCxmLGIsInZlcnRpY2FsIiwhMCxrcl0sInRvcC1yaWdodCI6W3ksMCxmLGIsInZlcnRpY2FsIiwhMCxrcl0sImJvdHRvbS1sZWZ0IjpbeSxlLV8sZixfLCJ2ZXJ0aWNhbCIsITEsa3JdLCJib3R0b20tcmlnaHQiOlt5LGUtXyxmLF8sInZlcnRpY2FsIiwhMSxrcl0sY2VudGVyOk8saW5uZXI6TyxvdXRlcjpPfX1mdW5jdGlvbiBxJCh0LGUsbixyKXtjb25zdFtpLGFdPXpBKHQsbz0+ISEodHlwZW9mIG8udHlwZT09InN0cmluZyImJm8udHlwZS5zdGFydHNXaXRoKCJheGlzIikpKTtLJChpLGUsbixyKSxvWihhLGUsbil9ZnVuY3Rpb24gSyQodCxlLG4scil7cj09PSJjZW50ZXIiP0tGKGUpP2laKHQsZSxuLHIpOkJuKGUpP3RaKHQsZSxuKTpFcChlKSYmZVoodCxlLG4sdFswXS5vcmllbnRhdGlvbik6cj09PSJpbm5lciI/USQodCxlLG4pOnI9PT0ib3V0ZXIiJiZKJCh0LGUsbil9ZnVuY3Rpb24gUSQodCxlLG4pe2NvbnN0W3IsaSwsYV09bixbbyxzXT1lLmdldENlbnRlcigpLFtjXT1pbShlKSxsPWEvMix1PWMqbCxmPW8tdSxkPXMtdTtmb3IobGV0IGg9MDtoPHQubGVuZ3RoO2grKyl7Y29uc3Qgdj10W2hdO3YuYmJveD17eDpyK2YseTppK2Qsd2lkdGg6dSoyLGhlaWdodDp1KjJ9fX1mdW5jdGlvbiBKJCh0LGUsbil7Y29uc3RbcixpLGEsb109bjtmb3IoY29uc3QgcyBvZiB0KXMuYmJveD17eDpyLHk6aSx3aWR0aDphLGhlaWdodDpvfX1mdW5jdGlvbiB0Wih0LGUsbil7Y29uc3RbcixpLGEsb109bjtmb3IoY29uc3QgcyBvZiB0KXMuYmJveD17eDpyLHk6aSx3aWR0aDphLGhlaWdodDpvfX1mdW5jdGlvbiBlWih0LGUsbixyKXtyPT09Imhvcml6b250YWwiP3JaKHQsZSxuKTpyPT09InZlcnRpY2FsIiYmbloodCxlLG4pfWZ1bmN0aW9uIG5aKHQsZSxuKXtjb25zdFtyLGksLGFdPW4sbz1uZXcgQXJyYXkodC5sZW5ndGgpLmZpbGwoMCksYz1lLm1hcChvKS5maWx0ZXIoKGwsdSk9PnUlMj09PTApLm1hcChsPT5sK3IpO2ZvcihsZXQgbD0wO2w8dC5sZW5ndGg7bCsrKXtjb25zdCB1PXRbbF0sZj1jW2xdLGQ9Y1tsKzFdLWY7dS5iYm94PXt4OmYseTppLHdpZHRoOmQsaGVpZ2h0OmF9fX1mdW5jdGlvbiByWih0LGUsbil7Y29uc3RbcixpLGFdPW4sbz1uZXcgQXJyYXkodC5sZW5ndGgpLmZpbGwoMCksYz1lLm1hcChvKS5maWx0ZXIoKGwsdSk9PnUlMj09PTEpLm1hcChsPT5sK2kpO2ZvcihsZXQgbD0wO2w8dC5sZW5ndGg7bCsrKXtjb25zdCB1PXRbbF0sZj1jW2xdLGQ9Y1tsKzFdLWY7dS5iYm94PXt4OnIseTpmLHdpZHRoOmEsaGVpZ2h0OmR9fX1mdW5jdGlvbiBpWih0LGUsbixyKXtjb25zdFtpLGEsbyxzXT1uO2Zvcihjb25zdCBjIG9mIHQpYy5iYm94PXt4OmkseTphLHdpZHRoOm8saGVpZ2h0OnN9LGMucmFkYXI9e2luZGV4OnQuaW5kZXhPZihjKSxjb3VudDp0Lmxlbmd0aH19ZnVuY3Rpb24gYVoodCxlLG4pe2NvbnN0W3IsaSxhLG8scyxjLGwsdSxmXT1uLFtkLGgsdixnLHksYix4LF9dPXM9PT0idmVydGljYWwiP1sieSIsaSwieCIsciwiaGVpZ2h0IixvLCJ3aWR0aCIsYV06WyJ4IixyLCJ5IixpLCJ3aWR0aCIsYSwiaGVpZ2h0IixvXTt0LnNvcnQoKEEsUCk9Pmw9PW51bGw/dm9pZCAwOmwoQS5vcmRlcixQLm9yZGVyKSk7Y29uc3Qgdz1BPT5BPT09InRpdGxlInx8QT09PSJncm91cCJ8fEEuc3RhcnRzV2l0aCgibGVnZW5kIiksTz0oQSxQLEMpPT5DPT09dm9pZCAwP1A6dyhBKT9DOlAsRT0oQSxQLEMpPT5DPT09dm9pZCAwP1A6dyhBKT9DOlAsTT1jP2grYjpoO2ZvcihsZXQgQT0wLFA9TTtBPHQubGVuZ3RoO0ErKyl7Y29uc3QgQz10W0FdLHtjcm9zc1BhZGRpbmc6Tj0wLHR5cGU6TH09Qyx7c2l6ZTpSfT1DO0MuYmJveD17W2RdOmM/UC1SLU46UCtOLFt2XTpFKEwsZyx1KSxbeV06UixbeF06TyhMLF8sZil9LFArPShSK04pKihjPy0xOjEpfWNvbnN0IGs9dC5maWx0ZXIoQT0+QS50eXBlPT09Imdyb3VwIik7Zm9yKGNvbnN0IEEgb2Ygayl7Y29uc3R7YmJveDpQLGNoaWxkcmVuOkN9PUEsTj1QW3hdLEw9Ti9DLmxlbmd0aCxSPUMucmVkdWNlKChXLFgpPT57dmFyIFE7Y29uc3QgdHQ9KFE9WC5sYXlvdXQpPT09bnVsbHx8UT09PXZvaWQgMD92b2lkIDA6US5qdXN0aWZ5Q29udGVudDtyZXR1cm4gdHR8fFd9LCJmbGV4LXN0YXJ0IiksST1DLm1hcCgoVyxYKT0+e2NvbnN0e2xlbmd0aDpRPUwscGFkZGluZzp0dD0wfT1XO3JldHVybiBRKyhYPT09Qy5sZW5ndGgtMT8wOnR0KX0pLEQ9Ym8oSSksRz1OLUQsRj1SPT09ImZsZXgtc3RhcnQiPzA6Uj09PSJjZW50ZXIiP0cvMjpHO2ZvcihsZXQgVz0wLFg9UFt2XStGO1c8Qy5sZW5ndGg7VysrKXtjb25zdCBRPUNbV10se3BhZGRpbmc6dHQ9MH09USxudD1XPT09Qy5sZW5ndGgtMT8wOnR0O1EuYmJveD17W3ldOlBbeV0sW2RdOlBbZF0sW3ZdOlgsW3hdOklbV10tbnR9LG10KFEse2xheW91dDp7anVzdGlmeUNvbnRlbnQ6Un19KSxYKz1JW1ddfX19ZnVuY3Rpb24gb1oodCxlLG4pe2lmKHQubGVuZ3RoPT09MClyZXR1cm47Y29uc3RbcixpLGEsb109bixbc109aW0oZSksYz1vLzIqcy9NYXRoLnNxcnQoMiksbD1yK2EvMix1PWkrby8yO2ZvcihsZXQgZj0wO2Y8dC5sZW5ndGg7ZisrKXtjb25zdCBkPXRbZl07ZC5iYm94PXt4OmwtYyx5OnUtYyx3aWR0aDpjKjIsaGVpZ2h0OmMqMn19fWZ1bmN0aW9uIHhzKHQsZSxuPXt9LHI9ITEpe2lmKHJjKHQpfHxBcnJheS5pc0FycmF5KHQpJiZyKXJldHVybiB0O2NvbnN0IGk9JHQodCxlKTtyZXR1cm4gbXQobixpKX1mdW5jdGlvbiBxbSh0LGU9e30pe3JldHVybiByYyh0KXx8QXJyYXkuaXNBcnJheSh0KXx8IWZDKHQpP3Q6bXQoZSx0KX1mdW5jdGlvbiBmQyh0KXtpZihPYmplY3Qua2V5cyh0KS5sZW5ndGg9PT0wKXJldHVybiEwO2NvbnN0e3RpdGxlOmUsaXRlbXM6bn09dDtyZXR1cm4gZSE9PXZvaWQgMHx8biE9PXZvaWQgMH1mdW5jdGlvbiBfcyh0LGUpe3JldHVybiB0eXBlb2YgdD09Im9iamVjdCI/JHQodCxlKTp0fXZhciBzWj1mdW5jdGlvbih0LGUsbixyKXtmdW5jdGlvbiBpKGEpe3JldHVybiBhIGluc3RhbmNlb2Ygbj9hOm5ldyBuKGZ1bmN0aW9uKG8pe28oYSl9KX1yZXR1cm4gbmV3KG58fChuPVByb21pc2UpKShmdW5jdGlvbihhLG8pe2Z1bmN0aW9uIHModSl7dHJ5e2woci5uZXh0KHUpKX1jYXRjaChmKXtvKGYpfX1mdW5jdGlvbiBjKHUpe3RyeXtsKHIudGhyb3codSkpfWNhdGNoKGYpe28oZil9fWZ1bmN0aW9uIGwodSl7dS5kb25lP2EodS52YWx1ZSk6aSh1LnZhbHVlKS50aGVuKHMsYyl9bCgocj1yLmFwcGx5KHQsZXx8W10pKS5uZXh0KCkpfSl9LHZkPWZ1bmN0aW9uKHQsZSl7dmFyIG49e307Zm9yKHZhciByIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscikmJmUuaW5kZXhPZihyKTwwJiYobltyXT10W3JdKTtpZih0IT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIGk9MCxyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCk7aTxyLmxlbmd0aDtpKyspZS5pbmRleE9mKHJbaV0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh0LHJbaV0pJiYobltyW2ldXT10W3JbaV1dKTtyZXR1cm4gbn07ZnVuY3Rpb24gY1oodCxlLG4pe2NvbnN0e2VuY29kZTpyPXt9LHNjYWxlOmk9e30sdHJhbnNmb3JtOmE9W119PWUsbz12ZChlLFsiZW5jb2RlIiwic2NhbGUiLCJ0cmFuc2Zvcm0iXSk7cmV0dXJuW3QsT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG8pLHtlbmNvZGU6cixzY2FsZTppLHRyYW5zZm9ybTphfSldfWZ1bmN0aW9uIGRDKHQsZSxuKXtyZXR1cm4gc1oodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2NvbnN0e2xpYnJhcnk6cn09bix7ZGF0YTppfT1lLFthXT1ncigiZGF0YSIsciksbz1fWihpKSx7dHJhbnNmb3JtOnM9W119PW8sdT1bdmQobyxbInRyYW5zZm9ybSJdKSwuLi5zXS5tYXAoaD0+YShoLG4pKSxmPXlpZWxkIFBGKHUpKGkpLGQ9aSYmIUFycmF5LmlzQXJyYXkoaSkmJiFBcnJheS5pc0FycmF5KGYpP3t2YWx1ZTpmfTpmO3JldHVybltBcnJheS5pc0FycmF5KGYpP2Z1KGYpOltdLE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxlKSx7ZGF0YTpkfSldfSl9ZnVuY3Rpb24gbFoodCxlLG4pe2NvbnN0e2VuY29kZTpyfT1lO2lmKCFyKXJldHVyblt0LGVdO2NvbnN0IGk9e307Zm9yKGNvbnN0W2Esb11vZiBPYmplY3QuZW50cmllcyhyKSlpZihBcnJheS5pc0FycmF5KG8pKWZvcihsZXQgcz0wO3M8by5sZW5ndGg7cysrKXtjb25zdCBjPWAke2F9JHtzPT09MD8iIjpzfWA7aVtjXT1vW3NdfWVsc2UgaVthXT1vO3JldHVyblt0LE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxlKSx7ZW5jb2RlOml9KV19ZnVuY3Rpb24gdVoodCxlLG4pe2NvbnN0e2VuY29kZTpyLGRhdGE6aX09ZTtpZighcilyZXR1cm5bdCxlXTtjb25zdCBhPWZzKHIsbz0+bVoobyk/bzp7dHlwZTpiWihpLG8pLHZhbHVlOm99KTtyZXR1cm5bdCxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZSkse2VuY29kZTphfSldfWZ1bmN0aW9uIGZaKHQsZSxuKXtjb25zdHtlbmNvZGU6cn09ZTtpZighcilyZXR1cm5bdCxlXTtjb25zdCBpPWZzKHIsKGEsbyk9Pntjb25zdHt0eXBlOnN9PWE7cmV0dXJuIHMhPT0iY29uc3RhbnQifHx5JChvKT9hOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxhKSx7Y29uc3RhbnQ6ITB9KX0pO3JldHVyblt0LE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxlKSx7ZW5jb2RlOml9KV19ZnVuY3Rpb24gZFoodCxlLG4pe2NvbnN0e2VuY29kZTpyLGRhdGE6aX09ZTtpZighcilyZXR1cm5bdCxlXTtjb25zdHtsaWJyYXJ5OmF9PW4sbz1TWihhKSxzPWZzKHIsYz0+byhpLGMpKTtyZXR1cm5bdCxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZSkse2VuY29kZTpzfSldfWZ1bmN0aW9uIGhaKHQsZSxuKXtjb25zdHt0b29sdGlwOnI9e319PWU7cmV0dXJuIHJjKHIpP1t0LGVdOkFycmF5LmlzQXJyYXkocik/W3QsT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGUpLHt0b29sdGlwOntpdGVtczpyfX0pXTpVZihyKSYmZkMocik/W3QsT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGUpLHt0b29sdGlwOnJ9KV06W3QsT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGUpLHt0b29sdGlwOntpdGVtczpbcl19fSldfWZ1bmN0aW9uIHBaKHQsZSxuKXtjb25zdHtkYXRhOnIsZW5jb2RlOmksdG9vbHRpcDphPXt9fT1lO2lmKHJjKGEpKXJldHVyblt0LGVdO2NvbnN0IG89Zj0+e2lmKCFmKXJldHVybiBmO2lmKHR5cGVvZiBmPT0ic3RyaW5nIilyZXR1cm4gdC5tYXAoZD0+KHtuYW1lOmYsdmFsdWU6cltkXVtmXX0pKTtpZihVZihmKSl7Y29uc3R7ZmllbGQ6ZCxjaGFubmVsOmgsY29sb3I6dixuYW1lOmc9ZCx2YWx1ZUZvcm1hdHRlcjp5PUU9PkV9PWYsYj10eXBlb2YgeT09InN0cmluZyI/ZWwoeSk6eSx4PWgmJmlbaF0sXz14JiZpW2hdLmZpZWxkLHc9Z3x8X3x8aCxPPVtdO2Zvcihjb25zdCBFIG9mIHQpe2NvbnN0IE09ZD9yW0VdW2RdOng/aVtoXS52YWx1ZVtFXTpudWxsO09bRV09e25hbWU6dyxjb2xvcjp2LHZhbHVlOmIoTSl9fXJldHVybiBPfWlmKHR5cGVvZiBmPT0iZnVuY3Rpb24iKXtjb25zdCBkPVtdO2Zvcihjb25zdCBoIG9mIHQpe2NvbnN0IHY9ZihyW2hdLGgscixpKTtVZih2KT9kW2hdPXY6ZFtoXT17dmFsdWU6dn19cmV0dXJuIGR9cmV0dXJuIGZ9LHt0aXRsZTpzLGl0ZW1zOmM9W119PWEsbD12ZChhLFsidGl0bGUiLCJpdGVtcyJdKSx1PU9iamVjdC5hc3NpZ24oe3RpdGxlOm8ocyksaXRlbXM6QXJyYXkuaXNBcnJheShjKT9jLm1hcChvKTpbXX0sbCk7cmV0dXJuW3QsT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGUpLHt0b29sdGlwOnV9KV19ZnVuY3Rpb24gdloodCxlLG4pe2NvbnN0e2VuY29kZTpyfT1lLGk9dmQoZSxbImVuY29kZSJdKTtpZighcilyZXR1cm5bdCxlXTtjb25zdCBhPU9iamVjdC5lbnRyaWVzKHIpLG89YS5maWx0ZXIoKFssY10pPT57Y29uc3R7dmFsdWU6bH09YztyZXR1cm4gQXJyYXkuaXNBcnJheShsWzBdKX0pLmZsYXRNYXAoKFtjLGxdKT0+e2NvbnN0IHU9W1tjLG5ldyBBcnJheSh0Lmxlbmd0aCkuZmlsbCh2b2lkIDApXV0se3ZhbHVlOmZ9PWwsZD12ZChsLFsidmFsdWUiXSk7Zm9yKGxldCBoPTA7aDxmLmxlbmd0aDtoKyspe2NvbnN0IHY9ZltoXTtpZihBcnJheS5pc0FycmF5KHYpKWZvcihsZXQgZz0wO2c8di5sZW5ndGg7ZysrKXtjb25zdCB5PXVbZ118fFtgJHtjfSR7Z31gLG5ldyBBcnJheSh0KS5maWxsKHZvaWQgMCldO3lbMV1baF09dltnXSx1W2ddPXl9fXJldHVybiB1Lm1hcCgoW2gsdl0pPT5baCxPYmplY3QuYXNzaWduKHt0eXBlOiJjb2x1bW4iLHZhbHVlOnZ9LGQpXSl9KSxzPU9iamVjdC5mcm9tRW50cmllcyhbLi4uYSwuLi5vXSk7cmV0dXJuW3QsT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGkpLHtlbmNvZGU6c30pXX1mdW5jdGlvbiBnWih0LGUsbil7Y29uc3R7YXhpczpyPXt9LGxlZ2VuZDppPXt9LHNsaWRlcjphPXt9LHNjcm9sbGJhcjpvPXt9fT1lLHM9KGwsdSk9PntpZih0eXBlb2YgbD09ImJvb2xlYW4iKXJldHVybiBsP3t9Om51bGw7Y29uc3QgZj1sW3VdO3JldHVybiBmPT09dm9pZCAwfHxmP2Y6bnVsbH0sYz10eXBlb2Ygcj09Im9iamVjdCI/QXJyYXkuZnJvbShuZXcgU2V0KFsieCIsInkiLCJ6IiwuLi5PYmplY3Qua2V5cyhyKV0pKTpbIngiLCJ5IiwieiJdO3JldHVybiBtdChlLHtzY2FsZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sT2JqZWN0LmZyb21FbnRyaWVzKGMubWFwKGw9Pntjb25zdCB1PXMobyxsKTtyZXR1cm5bbCxPYmplY3QuYXNzaWduKHtndWlkZTpzKHIsbCksc2xpZGVyOnMoYSxsKSxzY3JvbGxiYXI6dX0sdSYme3JhdGlvOnUucmF0aW89PT12b2lkIDA/LjU6dS5yYXRpb30pXX0pKSkse2NvbG9yOntndWlkZTpzKGksImNvbG9yIil9LHNpemU6e2d1aWRlOnMoaSwic2l6ZSIpfSxzaGFwZTp7Z3VpZGU6cyhpLCJzaGFwZSIpfSxvcGFjaXR5OntndWlkZTpzKGksIm9wYWNpdHkiKX19KX0pLFt0LGVdfWZ1bmN0aW9uIHlaKHQsZSxuKXtjb25zdHthbmltYXRlOnJ9PWU7cmV0dXJuIHJ8fHI9PT12b2lkIDA/W3QsZV06KG10KGUse2FuaW1hdGU6e2VudGVyOnt0eXBlOm51bGx9LGV4aXQ6e3R5cGU6bnVsbH0sdXBkYXRlOnt0eXBlOm51bGx9fX0pLFt0LGVdKX1mdW5jdGlvbiBtWih0KXtpZih0eXBlb2YgdCE9Im9iamVjdCJ8fHQgaW5zdGFuY2VvZiBEYXRlfHx0PT09bnVsbClyZXR1cm4hMTtjb25zdHt0eXBlOmV9PXQ7cmV0dXJuIHFuKGUpfWZ1bmN0aW9uIGJaKHQsZSl7cmV0dXJuIHR5cGVvZiBlPT0iZnVuY3Rpb24iPyJ0cmFuc2Zvcm0iOnR5cGVvZiBlPT0ic3RyaW5nIiYmeFoodCxlKT8iZmllbGQiOiJjb25zdGFudCJ9ZnVuY3Rpb24geFoodCxlKXtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KT90LnNvbWUobj0+bltlXSE9PXZvaWQgMCk6ITF9ZnVuY3Rpb24gX1oodCl7aWYoVm4odCkpcmV0dXJue3R5cGU6ImlubGluZSIsdmFsdWU6dH07aWYoIXQpcmV0dXJue3R5cGU6ImlubGluZSIsdmFsdWU6bnVsbH07aWYoQXJyYXkuaXNBcnJheSh0KSlyZXR1cm57dHlwZToiaW5saW5lIix2YWx1ZTp0fTtjb25zdHt0eXBlOmU9ImlubGluZSJ9PXQsbj12ZCh0LFsidHlwZSJdKTtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG4pLHt0eXBlOmV9KX12YXIgaEM9ZnVuY3Rpb24odCxlLG4scil7ZnVuY3Rpb24gaShhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIG4/YTpuZXcgbihmdW5jdGlvbihvKXtvKGEpfSl9cmV0dXJuIG5ldyhufHwobj1Qcm9taXNlKSkoZnVuY3Rpb24oYSxvKXtmdW5jdGlvbiBzKHUpe3RyeXtsKHIubmV4dCh1KSl9Y2F0Y2goZil7byhmKX19ZnVuY3Rpb24gYyh1KXt0cnl7bChyLnRocm93KHUpKX1jYXRjaChmKXtvKGYpfX1mdW5jdGlvbiBsKHUpe3UuZG9uZT9hKHUudmFsdWUpOmkodS52YWx1ZSkudGhlbihzLGMpfWwoKHI9ci5hcHBseSh0LGV8fFtdKSkubmV4dCgpKX0pfSx3Wj1mdW5jdGlvbih0LGUpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiZlLmluZGV4T2Yocik8MCYmKG5bcl09dFtyXSk7aWYodCE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBpPTAscj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2k8ci5sZW5ndGg7aSsrKWUuaW5kZXhPZihyW2ldKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodCxyW2ldKSYmKG5bcltpXV09dFtyW2ldXSk7cmV0dXJuIG59O2Z1bmN0aW9uIE9aKHQsZSxuKXtyZXR1cm4gaEModGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2NvbnN0W3IsaV09eWllbGQgRVoodCxlLG4pLHtlbmNvZGU6YSxzY2FsZTpvLGRhdGE6cyx0b29sdGlwOmN9PWk7aWYoQXJyYXkuaXNBcnJheShzKT09PSExKXJldHVybiBudWxsO2NvbnN0e2NoYW5uZWxzOmx9PWUsdT1KeShPYmplY3QuZW50cmllcyhhKS5maWx0ZXIoKFssZF0pPT5xbihkKSksZD0+ZC5tYXAoKFtoLHZdKT0+T2JqZWN0LmFzc2lnbih7bmFtZTpofSx2KSksKFtkXSk9Pnt2YXIgaDtjb25zdCB2PShoPS8oW15cZF0rKVxkKiQvLmV4ZWMoZCkpPT09bnVsbHx8aD09PXZvaWQgMD92b2lkIDA6aFsxXSxnPWwuZmluZCh5PT55Lm5hbWU9PT12KTtyZXR1cm4gZyE9bnVsbCYmZy5pbmRlcGVuZGVudD9kOnZ9KSxmPWwuZmlsdGVyKGQ9Pntjb25zdHtuYW1lOmgscmVxdWlyZWQ6dn09ZDtpZih1LmZpbmQoKFtnXSk9Pmc9PT1oKSlyZXR1cm4hMDtpZih2KXRocm93IG5ldyBFcnJvcihgTWlzc2luZyBlbmNvZGluZyBmb3IgY2hhbm5lbDogJHtofS5gKTtyZXR1cm4hMX0pLmZsYXRNYXAoZD0+e2NvbnN0e25hbWU6aCxzY2FsZTp2LHNjYWxlS2V5OmcscmFuZ2U6eSxxdWFudGl0YXRpdmU6YixvcmRpbmFsOnh9PWQ7cmV0dXJuIHUuZmlsdGVyKChbd10pPT53LnN0YXJ0c1dpdGgoaCkpLm1hcCgoW3csT10sRSk9Pntjb25zdCBNPU8uc29tZShEPT5ELnZpc3VhbCksaz1PLnNvbWUoRD0+RC5jb25zdGFudCksQT1vW3ddfHx7fSx7aW5kZXBlbmRlbnQ6UD0hMSxrZXk6Qz1nfHx3LHR5cGU6Tj1rPyJjb25zdGFudCI6TT8iaWRlbnRpdHkiOnZ9PUEsTD13WihBLFsiaW5kZXBlbmRlbnQiLCJrZXkiLCJ0eXBlIl0pLFI9Tj09PSJjb25zdGFudCIsST1SP3ZvaWQgMDp5O3JldHVybntuYW1lOncsdmFsdWVzOk8sc2NhbGVLZXk6UHx8Uj9TeW1ib2woImluZGVwZW5kZW50Iik6QyxzY2FsZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe3R5cGU6TixyYW5nZTpJfSxMKSx7cXVhbnRpdGF0aXZlOmIsb3JkaW5hbDp4fSl9fSl9KTtyZXR1cm5baSxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZSkse2luZGV4OnIsY2hhbm5lbHM6Zix0b29sdGlwOmN9KV19KX1mdW5jdGlvbiBTWih0KXtjb25zdFtlXT1ncigiZW5jb2RlIix0KTtyZXR1cm4obixyKT0+cj09PXZvaWQgMHx8bj09PXZvaWQgMD9udWxsOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxyKSx7dHlwZToiY29sdW1uIix2YWx1ZTplKHIpKG4pLGZpZWxkOk1aKHIpfSl9ZnVuY3Rpb24gRVoodCxlLG4pe3JldHVybiBoQyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7Y29uc3R7bGlicmFyeTpyfT1uLFtpXT1ncigidHJhbnNmb3JtIixyKSx7cHJlSW5mZXJlbmNlOmE9W10scG9zdEluZmVyZW5jZTpvPVtdfT1lLHt0cmFuc2Zvcm06cz1bXX09dCxjPVtjWixkQyxsWix1WixmWixkWix2Wix5WixnWixoWiwuLi5hLm1hcChpKSwuLi5zLm1hcChpKSwuLi5vLm1hcChpKSxwWl07bGV0IGw9W10sdT10O2Zvcihjb25zdCBmIG9mIGMpW2wsdV09eWllbGQgZihsLHUsbik7cmV0dXJuW2wsdV19KX1mdW5jdGlvbiBNWih0KXtjb25zdHt0eXBlOmUsdmFsdWU6bn09dDtyZXR1cm4gZT09PSJmaWVsZCImJnR5cGVvZiBuPT0ic3RyaW5nIj9uOm51bGx9dmFyIHVjPWZ1bmN0aW9uKHQsZSxuLHIpe2Z1bmN0aW9uIGkoYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBuP2E6bmV3IG4oZnVuY3Rpb24obyl7byhhKX0pfXJldHVybiBuZXcobnx8KG49UHJvbWlzZSkpKGZ1bmN0aW9uKGEsbyl7ZnVuY3Rpb24gcyh1KXt0cnl7bChyLm5leHQodSkpfWNhdGNoKGYpe28oZil9fWZ1bmN0aW9uIGModSl7dHJ5e2woci50aHJvdyh1KSl9Y2F0Y2goZil7byhmKX19ZnVuY3Rpb24gbCh1KXt1LmRvbmU/YSh1LnZhbHVlKTppKHUudmFsdWUpLnRoZW4ocyxjKX1sKChyPXIuYXBwbHkodCxlfHxbXSkpLm5leHQoKSl9KX0sZmw9ZnVuY3Rpb24odCxlKXt2YXIgbj17fTtmb3IodmFyIHIgaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKSYmZS5pbmRleE9mKHIpPDAmJihuW3JdPXRbcl0pO2lmKHQhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgaT0wLHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTtpPHIubGVuZ3RoO2krKyllLmluZGV4T2YocltpXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHQscltpXSkmJihuW3JbaV1dPXRbcltpXV0pO3JldHVybiBufTtmdW5jdGlvbiBjTyh0LGUsbil7dmFyIHI7cmV0dXJuIHVjKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtjb25zdHtsaWJyYXJ5Oml9PW4sW2FdPWdyKCJjb21wb3NpdGlvbiIsaSksW29dPWdyKCJpbnRlcmFjdGlvbiIsaSkscz1uZXcgU2V0KE9iamVjdC5rZXlzKGkpLm1hcChMPT57dmFyIFI7cmV0dXJuKFI9L21hcmtcLiguKikvLmV4ZWMoTCkpPT09bnVsbHx8Uj09PXZvaWQgMD92b2lkIDA6UlsxXX0pLmZpbHRlcihxbikpLGM9bmV3IFNldChPYmplY3Qua2V5cyhpKS5tYXAoTD0+e3ZhciBSO3JldHVybihSPS9jb21wb25lbnRcLiguKikvLmV4ZWMoTCkpPT09bnVsbHx8Uj09PXZvaWQgMD92b2lkIDA6UlsxXX0pLmZpbHRlcihxbikpLGw9TD0+e2NvbnN0e3R5cGU6Un09TDtpZih0eXBlb2YgUj09ImZ1bmN0aW9uIil7Y29uc3R7cHJvcHM6ST17fX09Uix7Y29tcG9zaXRlOkQ9ITB9PUk7aWYoRClyZXR1cm4ibWFyayJ9cmV0dXJuIHR5cGVvZiBSIT0ic3RyaW5nIj9SOnMuaGFzKFIpfHxjLmhhcyhSKT8ibWFyayI6Un0sdT1MPT5sKEwpPT09Im1hcmsiLGY9TD0+bChMKT09PSJzdGFuZGFyZFZpZXciLGQ9TD0+e2NvbnN0e3R5cGU6Un09TDtyZXR1cm4gdHlwZW9mIFIhPSJzdHJpbmciPyExOiEhYy5oYXMoUil9LGg9TD0+e2lmKGYoTCkpcmV0dXJuW0xdO2NvbnN0IFI9bChMKTtyZXR1cm4gYSh7dHlwZTpSLHN0YXRpYzpkKEwpfSkoTCl9LHY9W10sZz1uZXcgTWFwLHk9bmV3IE1hcCxiPVt0XSx4PVtdO2Zvcig7Yi5sZW5ndGg7KXtjb25zdCBMPWIuc2hpZnQoKTtpZihmKEwpKXtjb25zdCBSPXkuZ2V0KEwpLFtJLERdPVI/eUMoUixMLGkpOnlpZWxkIHZDKEwsbik7Zy5zZXQoSSxMKSx2LnB1c2goSSk7Y29uc3QgRz1ELmZsYXRNYXAoaCkubWFwKEY9Pm4zKEYsaSkpO2lmKGIucHVzaCguLi5HKSxHLmV2ZXJ5KGYpKXtjb25zdCBGPXlpZWxkIFByb21pc2UuYWxsKEcubWFwKFc9PmdDKFcsbikpKTtVRyhGKTtmb3IobGV0IFc9MDtXPEcubGVuZ3RoO1crKyl7Y29uc3QgWD1HW1ddLFE9RltXXTt5LnNldChYLFEpfX19ZWxzZXtjb25zdCBSPXUoTCk/TDp5aWVsZCBfQyhMLG4pLEk9aChSKTtBcnJheS5pc0FycmF5KEkpP2IucHVzaCguLi5JKTp0eXBlb2YgST09ImZ1bmN0aW9uIiYmeC5wdXNoKEkoKSl9fW4uZW1pdHRlci5lbWl0KEluLkJFRk9SRV9QQUlOVCk7Y29uc3QgXz1uZXcgTWFwLHc9bmV3IE1hcCxPPVtdO2Uuc2VsZWN0QWxsKHdzKF9pKSkuZGF0YSh2LEw9Pkwua2V5KS5qb2luKEw9PkwuYXBwZW5kKCJnIikuYXR0cigiY2xhc3NOYW1lIixfaSkuYXR0cigiaWQiLFI9PlIua2V5KS5jYWxsKHBDKS5lYWNoKGZ1bmN0aW9uKFIsSSxEKXt1TyhSLE9lKEQpLE8sbiksXy5zZXQoUixEKX0pLEw9PkwuY2FsbChwQykuZWFjaChmdW5jdGlvbihSLEksRCl7dU8oUixPZShEKSxPLG4pLHcuc2V0KFIsRCl9KSxMPT5MLmVhY2goZnVuY3Rpb24oUixJLEQpe2NvbnN0IEc9RC5uYW1lSW50ZXJhY3Rpb24udmFsdWVzKCk7Zm9yKGNvbnN0IEYgb2YgRylGLmRlc3Ryb3koKX0pLnJlbW92ZSgpKTtjb25zdCBFPShMLFIsSSk9PkFycmF5LmZyb20oTC5lbnRyaWVzKCkpLm1hcCgoW0QsR10pPT57Y29uc3QgRj1JfHxuZXcgTWFwLFc9KHR0LG50PWh0PT5odCk9PkYuc2V0KHR0LG50KSxYPWcuZ2V0KEQpLFE9QVooT2UoRyksWCxuKTtyZXR1cm57dmlldzpELGNvbnRhaW5lcjpHLG9wdGlvbnM6WCxzZXRTdGF0ZTpXLHVwZGF0ZToodHQsbnQpPT51Yyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7Y29uc3QgbHQ9cV8oQXJyYXkuZnJvbShGLnZhbHVlcygpKSkoWCk7cmV0dXJuIHlpZWxkIFEobHQsdHQsKCk9PntOcihudCkmJlIoTCxudCxGKX0pfSl9fSksTT0oTD13LFIsSSk9Pnt2YXIgRDtjb25zdCBHPUUoTCxNLEkpO2Zvcihjb25zdCBGIG9mIEcpe2NvbnN0e29wdGlvbnM6Vyxjb250YWluZXI6WH09RixRPVgubmFtZUludGVyYWN0aW9uO2xldCB0dD1LbShXKTtSJiYodHQ9dHQuZmlsdGVyKG50PT5SLmluY2x1ZGVzKG50WzBdKSkpO2Zvcihjb25zdCBudCBvZiB0dCl7Y29uc3RbaHQsbHRdPW50LHd0PVEuZ2V0KGh0KTtpZih3dCYmKChEPXd0LmRlc3Ryb3kpPT09bnVsbHx8RD09PXZvaWQgMHx8RC5jYWxsKHd0KSksbHQpe2NvbnN0IGd0PWxPKEYudmlldyxodCxsdCxvKShGLEcsbi5lbWl0dGVyKTtRLnNldChodCx7ZGVzdHJveTpndH0pfX19fSxrPUUoXyxNKTtmb3IoY29uc3QgTCBvZiBrKXtjb25zdHtvcHRpb25zOlJ9PUwsST1uZXcgTWFwO0wuY29udGFpbmVyLm5hbWVJbnRlcmFjdGlvbj1JO2Zvcihjb25zdCBEIG9mIEttKFIpKXtjb25zdFtHLEZdPUQ7aWYoRil7Y29uc3QgWD1sTyhMLnZpZXcsRyxGLG8pKEwsayxuLmVtaXR0ZXIpO0kuc2V0KEcse2Rlc3Ryb3k6WH0pfX19TSgpO2NvbnN0e3dpZHRoOkEsaGVpZ2h0OlB9PXQsQz1bXTtmb3IoY29uc3QgTCBvZiB4KXtjb25zdCBSPW5ldyBQcm9taXNlKEk9PnVjKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtmb3IoY29uc3QgRCBvZiBMKXtjb25zdCBHPU9iamVjdC5hc3NpZ24oe3dpZHRoOkEsaGVpZ2h0OlB9LEQpO3lpZWxkIGNPKEcsZSxuKX1JKCl9KSk7Qy5wdXNoKFIpfW4udmlld3M9diwocj1uLmFuaW1hdGlvbnMpPT09bnVsbHx8cj09PXZvaWQgMHx8ci5mb3JFYWNoKEw9Pkw9PW51bGw/dm9pZCAwOkwuY2FuY2VsKCkpLG4uYW5pbWF0aW9ucz1PLG4uZW1pdHRlci5lbWl0KEluLkFGVEVSX1BBSU5UKTtjb25zdCBOPU8uZmlsdGVyKHFuKS5tYXAoJFopLm1hcChMPT5MLmZpbmlzaGVkKTtyZXR1cm4gUHJvbWlzZS5hbGwoWy4uLk4sLi4uQ10pfSl9ZnVuY3Rpb24gcEModCl7dC5zdHlsZSgidHJhbnNmb3JtIixlPT5gdHJhbnNsYXRlKCR7ZS5sYXlvdXQueH0sICR7ZS5sYXlvdXQueX0pYCl9ZnVuY3Rpb24ga1oodCl7Y29uc3RbLGVdPWdyKCJpbnRlcmFjdGlvbiIsdCk7cmV0dXJuIG49Pntjb25zdFtyLGldPW47dHJ5e3JldHVybltyLGUocildfWNhdGNoKGEpe3JldHVybltyLGkudHlwZV19fX1mdW5jdGlvbiBBWih0LGUsbil7Y29uc3R7bGlicmFyeTpyfT1uLGk9a1oociksYT1jPT5jWzFdJiZjWzFdLnByb3BzJiZjWzFdLnByb3BzLnJlYXBwbHlXaGVuVXBkYXRlLHM9S20oZSkubWFwKGkpLmZpbHRlcihhKS5tYXAoYz0+Y1swXSk7cmV0dXJuKGMsbCx1KT0+dWModGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2NvbnN0IGY9W10sW2QsaF09eWllbGQgdkMoYyxuKTt1TyhkLHQsZixuKTtmb3IoY29uc3QgdiBvZiBzLmZpbHRlcihnPT5nIT09bCkpVFoodix0LGMsZCxuKTtmb3IoY29uc3QgdiBvZiBoKWNPKHYsdCxuKTtyZXR1cm4gdSgpLHtvcHRpb25zOmMsdmlldzpkfX0pfWZ1bmN0aW9uIFRaKHQsZSxuLHIsaSl7dmFyIGE7Y29uc3R7bGlicmFyeTpvfT1pLFtzXT1ncigiaW50ZXJhY3Rpb24iLG8pLGw9ZS5ub2RlKCkubmFtZUludGVyYWN0aW9uLHU9S20obikuZmluZCgoW2ddKT0+Zz09PXQpLGY9bC5nZXQodCk7aWYoIWZ8fCgoYT1mLmRlc3Ryb3kpPT09bnVsbHx8YT09PXZvaWQgMHx8YS5jYWxsKGYpLCF1WzFdKSlyZXR1cm47Y29uc3QgZD1sTyhyLHQsdVsxXSxzKSxoPXtvcHRpb25zOm4sdmlldzpyLGNvbnRhaW5lcjplLm5vZGUoKSx1cGRhdGU6Zz0+UHJvbWlzZS5yZXNvbHZlKGcpfSx2PWQoaCxbXSxpLmVtaXR0ZXIpO2wuc2V0KHQse2Rlc3Ryb3k6dn0pfWZ1bmN0aW9uIHZDKHQsZSl7cmV0dXJuIHVjKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtjb25zdHtsaWJyYXJ5Om59PWUscj15aWVsZCBDWih0LGUpLGk9UFoocik7dC5pbnRlcmFjdGlvbj1pLmludGVyYWN0aW9uLHQuY29vcmRpbmF0ZT1pLmNvb3JkaW5hdGUsdC5tYXJrcz1bLi4uaS5tYXJrcywuLi5pLmNvbXBvbmVudHNdO2NvbnN0IGE9bjMoaSxuKSxvPXlpZWxkIGdDKGEsZSk7cmV0dXJuIHlDKG8sYSxuKX0pfWZ1bmN0aW9uIFBaKHQpe2NvbnN0e2Nvb3JkaW5hdGU6ZT17fSxpbnRlcmFjdGlvbjpuPXt9LHN0eWxlOnI9e30sbWFya3M6aX09dCxhPWZsKHQsWyJjb29yZGluYXRlIiwiaW50ZXJhY3Rpb24iLCJzdHlsZSIsIm1hcmtzIl0pLG89aS5tYXAoZD0+ZC5jb29yZGluYXRlfHx7fSkscz1pLm1hcChkPT5kLmludGVyYWN0aW9ufHx7fSksYz1pLm1hcChkPT5kLnZpZXdTdHlsZXx8e30pLGw9Wy4uLm8sZV0ucmVkdWNlUmlnaHQoKGQsaCk9Pm10KGQsaCkse30pLHU9W24sLi4uc10ucmVkdWNlKChkLGgpPT5tdChkLGgpLHt9KSxmPVsuLi5jLHJdLnJlZHVjZSgoZCxoKT0+bXQoZCxoKSx7fSk7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxhKSx7bWFya3M6aSxjb29yZGluYXRlOmwsaW50ZXJhY3Rpb246dSxzdHlsZTpmfSl9ZnVuY3Rpb24gQ1oodCxlKXtyZXR1cm4gdWModGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2NvbnN0e2xpYnJhcnk6bn09ZSxbcixpXT1ncigibWFyayIsbiksYT1uZXcgU2V0KE9iamVjdC5rZXlzKG4pLm1hcChoPT57dmFyIHY7cmV0dXJuKHY9L2NvbXBvbmVudFwuKC4qKS8uZXhlYyhoKSk9PT1udWxsfHx2PT09dm9pZCAwP3ZvaWQgMDp2WzFdfSkuZmlsdGVyKHFuKSkse21hcmtzOm99PXQscz1bXSxjPVtdLGw9Wy4uLm9dLHt3aWR0aDp1LGhlaWdodDpmfT1WJCh0KSxkPXtvcHRpb25zOnQsd2lkdGg6dSxoZWlnaHQ6Zn07Zm9yKDtsLmxlbmd0aDspe2NvbnN0W2hdPWwuc3BsaWNlKDAsMSksdj15aWVsZCBfQyhoLGUpLHt0eXBlOmc9WGYoIkcyTWFyayB0eXBlIGlzIHJlcXVpcmVkLiIpLGtleTp5fT12O2lmKGEuaGFzKGcpKWMucHVzaCh2KTtlbHNle2NvbnN0e3Byb3BzOmI9e319PWkoZykse2NvbXBvc2l0ZTp4PSEwfT1iO2lmKCF4KXMucHVzaCh2KTtlbHNle2NvbnN0e2RhdGE6X309dix3PU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx2KSx7ZGF0YTpfJiYoQXJyYXkuaXNBcnJheShfKT9fOl8udmFsdWUpfSksTz15aWVsZCByKHcsZCksRT1BcnJheS5pc0FycmF5KE8pP086W09dO2wudW5zaGlmdCguLi5FLm1hcCgoTSxrKT0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LE0pLHtrZXk6YCR7eX0tJHtrfWB9KSkpfX19cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7bWFya3M6cyxjb21wb25lbnRzOmN9KX0pfWZ1bmN0aW9uIGdDKHQsZSl7cmV0dXJuIHVjKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtjb25zdHtsaWJyYXJ5Om59PWUsW3JdPWdyKCJ0aGVtZSIsbiksWyxpXT1ncigibWFyayIsbikse3RoZW1lOmEsbWFya3M6byxjb29yZGluYXRlczpzPVtdfT10LGM9cih4QyhhKSksbD1uZXcgTWFwO2Zvcihjb25zdCBmIG9mIG8pe2NvbnN0e3R5cGU6ZH09Zix7cHJvcHM6aD17fX09aShkKSx2PXlpZWxkIE9aKGYsaCxlKTtpZih2KXtjb25zdFtnLHldPXY7bC5zZXQoZyx5KX19Y29uc3QgdT1kcihBcnJheS5mcm9tKGwudmFsdWVzKCkpLmZsYXRNYXAoZj0+Zi5jaGFubmVscyksKHtzY2FsZUtleTpmfSk9PmYpO2Zvcihjb25zdCBmIG9mIHUudmFsdWVzKCkpe2NvbnN0IGQ9Zi5yZWR1Y2UoKHcse3NjYWxlOk99KT0+bXQodyxPKSx7fSkse3NjYWxlS2V5Omh9PWZbMF0se3ZhbHVlczp2fT1mWzBdLGc9QXJyYXkuZnJvbShuZXcgU2V0KHYubWFwKHc9PncuZmllbGQpLmZpbHRlcihxbikpKSx5PW10KHtndWlkZTp7dGl0bGU6Zy5sZW5ndGg9PT0wP3ZvaWQgMDpnfSxmaWVsZDpnWzBdfSxkKSx7bmFtZTpifT1mWzBdLHg9Zi5mbGF0TWFwKCh7dmFsdWVzOnd9KT0+dy5tYXAoTz0+Ty52YWx1ZSkpLF89T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LFpHKGIseCx5LHMsYyxuKSkse3VpZDpTeW1ib2woInNjYWxlIiksa2V5Omh9KTtmLmZvckVhY2godz0+dy5zY2FsZT1fKX1yZXR1cm4gbH0pfWZ1bmN0aW9uIGxPKHQsZSxuLHIpe2NvbnN0IGk9dC50aGVtZSxhPXR5cGVvZiBlPT0ic3RyaW5nIj9pW2VdfHx7fTp7fTtyZXR1cm4gcihtdChhLE9iamVjdC5hc3NpZ24oe3R5cGU6ZX0sbikpKX1mdW5jdGlvbiB5Qyh0LGUsbil7dmFyIHI7Y29uc3RbaV09Z3IoIm1hcmsiLG4pLFthXT1ncigidGhlbWUiLG4pLFtvXT1ncigibGFiZWxUcmFuc2Zvcm0iLG4pLHtrZXk6cyxmcmFtZTpjPSExLHRoZW1lOmwsY2xpcDp1LHN0eWxlOmY9e30sbGFiZWxUcmFuc2Zvcm06ZD1bXX09ZSxoPWEoeEMobCkpLHY9QXJyYXkuZnJvbSh0LnZhbHVlcygpKSxnPVZHKHYsZSkseT1TJChPJChWWihBcnJheS5mcm9tKGcpLHYsdCksZSxuKSksYj1IJCh5LGUsaCxuKSx4PXhXKGIsZSxuKSxfPWM/bXQoe21haW5MaW5lV2lkdGg6MSxtYWluU3Ryb2tlOiIjMDAwIn0sZik6ZjtVJChvQyh5KSx4LGIpLFkkKHkpO2NvbnN0IHc9bmV3IE1hcChBcnJheS5mcm9tKHQudmFsdWVzKCkpLmZsYXRNYXAoaz0+e2NvbnN0e2NoYW5uZWxzOkF9PWs7cmV0dXJuIEEubWFwKCh7c2NhbGU6UH0pPT5bUC51aWQscTMoUCxuKV0pfSkpO0hHKHQsdyk7Y29uc3QgTz17fTtmb3IoY29uc3QgayBvZiB5KXtjb25zdHtzY2FsZXM6QT1bXX09ayxQPVtdO2Zvcihjb25zdCBDIG9mIEEpe2NvbnN0e25hbWU6Tix1aWQ6TH09QyxSPShyPXcuZ2V0KEwpKSE9PW51bGwmJnIhPT12b2lkIDA/cjpxMyhDLG4pO1AucHVzaChSKSxOPT09InkiJiZSLnVwZGF0ZShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sUi5nZXRPcHRpb25zKCkpLHt4U2NhbGU6Ty54fSkpLFUzKE8se1tOXTpSfSl9ay5zY2FsZUluc3RhbmNlcz1QfWNvbnN0IEU9W107Zm9yKGNvbnN0W2ssQV1vZiB0LmVudHJpZXMoKSl7Y29uc3R7Y2hpbGRyZW46UCxkYXRhRG9tYWluOkMsbW9kaWZpZXI6TixrZXk6TH09ayx7aW5kZXg6UixjaGFubmVsczpJLHRvb2x0aXA6RH09QSxHPU9iamVjdC5mcm9tRW50cmllcyhJLm1hcCgoe25hbWU6THQsc2NhbGU6SXR9KT0+W0x0LEl0XSkpLEY9ZnMoRywoe3VpZDpMdH0pPT53LmdldChMdCkpO1UzKE8sRik7Y29uc3QgVz1ZRyhJLEYpLFg9aShrKSxbUSx0dCxudF09TlooWChSLEYsVyx4KSksaHQ9Q3x8US5sZW5ndGgsbHQ9Tj9OKHR0LGh0LGIpOltdLHd0PUx0PT57dmFyIEl0LGp0O3JldHVybihqdD0oSXQ9RC50aXRsZSk9PT1udWxsfHxJdD09PXZvaWQgMD92b2lkIDA6SXRbTHRdKT09PW51bGx8fGp0PT09dm9pZCAwP3ZvaWQgMDpqdC52YWx1ZX0seXQ9THQ9PkQuaXRlbXMubWFwKEl0PT5JdFtMdF0pLGd0PVEubWFwKChMdCxJdCk9Pntjb25zdCBqdD1PYmplY3QuYXNzaWduKHtwb2ludHM6dHRbSXRdLHRyYW5zZm9ybTpsdFtJdF0saW5kZXg6THQsbWFya0tleTpMLHZpZXdLZXk6c30sRCYme3RpdGxlOnd0KEx0KSxpdGVtczp5dChMdCl9KTtmb3IoY29uc3RbUXQsdWVdb2YgT2JqZWN0LmVudHJpZXMoVykpanRbUXRdPXVlW0x0XSxudCYmKGp0W2BzZXJpZXMke3RsKFF0KX1gXT1udFtJdF0ubWFwKHllPT51ZVt5ZV0pKTtyZXR1cm4gbnQmJihqdC5zZXJpZXNJbmRleD1udFtJdF0pLG50JiZEJiYoanQuc2VyaWVzSXRlbXM9bnRbSXRdLm1hcChRdD0+eXQoUXQpKSxqdC5zZXJpZXNUaXRsZT1udFtJdF0ubWFwKFF0PT53dChRdCkpKSxqdH0pO0EuZGF0YT1ndCxBLmluZGV4PVE7Y29uc3QgQnQ9UD09bnVsbD92b2lkIDA6UChndCxGLGIpO0UucHVzaCguLi5CdHx8W10pfXJldHVyblt7bGF5b3V0OmIsdGhlbWU6aCxjb29yZGluYXRlOngsbWFya1N0YXRlOnQsa2V5OnMsY2xpcDp1LHNjYWxlOk8sc3R5bGU6Xyxjb21wb25lbnRzOnksbGFiZWxUcmFuc2Zvcm06cV8oZC5tYXAobykpfSxFXX1mdW5jdGlvbiB1Tyh0LGUsbixyKXtyZXR1cm4gdWModGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2NvbnN0e2xpYnJhcnk6aX09cix7Y29tcG9uZW50czphLHRoZW1lOm8sbGF5b3V0OnMsbWFya1N0YXRlOmMsY29vcmRpbmF0ZTpsLGtleTp1LHN0eWxlOmYsY2xpcDpkLHNjYWxlOmh9PXQse3g6dix5Omcsd2lkdGg6eSxoZWlnaHQ6Yn09cyx4PWZsKHMsWyJ4IiwieSIsIndpZHRoIiwiaGVpZ2h0Il0pLF89WyJ2aWV3IiwicGxvdCIsIm1haW4iLCJjb250ZW50Il0sdz1fLm1hcCgoRixXKT0+VyksTz1bImEiLCJtYXJnaW4iLCJwYWRkaW5nIiwiaW5zZXQiXSxFPV8ubWFwKEY9PlBBKE9iamVjdC5hc3NpZ24oe30sby52aWV3LGYpLEYpKSxNPU8ubWFwKEY9PiR0KHgsRikpLGs9Rj0+Ri5zdHlsZSgieCIsVz0+TFtXXS54KS5zdHlsZSgieSIsVz0+TFtXXS55KS5zdHlsZSgid2lkdGgiLFc9PkxbV10ud2lkdGgpLnN0eWxlKCJoZWlnaHQiLFc9PkxbV10uaGVpZ2h0KS5lYWNoKGZ1bmN0aW9uKFcsWCxRKXtYWihPZShRKSxFW1ddKX0pO2xldCBBPTAsUD0wLEM9eSxOPWI7Y29uc3QgTD13Lm1hcChGPT57Y29uc3QgVz1NW0ZdLHtsZWZ0Olg9MCx0b3A6UT0wLGJvdHRvbTp0dD0wLHJpZ2h0Om50PTB9PVc7cmV0dXJuIEErPVgsUCs9USxDLT1YK250LE4tPVErdHQse3g6QSx5OlAsd2lkdGg6QyxoZWlnaHQ6Tn19KTtlLnNlbGVjdEFsbCh3cyhiYykpLmRhdGEody5maWx0ZXIoRj0+cW4oRVtGXSkpLEY9Pl9bRl0pLmpvaW4oRj0+Ri5hcHBlbmQoInJlY3QiKS5hdHRyKCJjbGFzc05hbWUiLGJjKS5zdHlsZSgiekluZGV4IiwtMikuY2FsbChrKSxGPT5GLmNhbGwoayksRj0+Ri5yZW1vdmUoKSk7Y29uc3QgUj1GWihjKSxJPVI/e2R1cmF0aW9uOlJbMV19OiExO2Zvcihjb25zdFssRl1vZiBReShhLFc9PmAke1cudHlwZX0tJHtXLnBvc2l0aW9ufWApKUYuZm9yRWFjaCgoVyxYKT0+Vy5pbmRleD1YKTtjb25zdCBEPWUuc2VsZWN0QWxsKHdzKEd1KSkuZGF0YShhLEY9PmAke0YudHlwZX0tJHtGLnBvc2l0aW9ufS0ke0YuaW5kZXh9YCkuam9pbihGPT5GLmFwcGVuZCgiZyIpLnN0eWxlKCJ6SW5kZXgiLCh7ekluZGV4Old9KT0+V3x8LTEpLmF0dHIoImNsYXNzTmFtZSIsR3UpLmFwcGVuZChXPT5hQyhtdCh7YW5pbWF0ZTpJLHNjYWxlOmh9LFcpLGwsbyxpLGMpKSxGPT5GLnRyYW5zaXRpb24oZnVuY3Rpb24oVyxYLFEpe2NvbnN0e3ByZXNlcnZlOnR0PSExfT1XO2lmKHR0KXJldHVybjtjb25zdCBudD1hQyhtdCh7YW5pbWF0ZTpJLHNjYWxlOmh9LFcpLGwsbyxpLGMpLHthdHRyaWJ1dGVzOmh0fT1udCxbbHRdPVEuY2hpbGROb2RlcztyZXR1cm4gbHQudXBkYXRlKGh0LCExKX0pKS50cmFuc2l0aW9ucygpO24ucHVzaCguLi5ELmZsYXQoKS5maWx0ZXIocW4pKTtjb25zdCBHPWUuc2VsZWN0QWxsKHdzKGJhKSkuZGF0YShbc10sKCk9PnUpLmpvaW4oRj0+Ri5hcHBlbmQoInJlY3QiKS5zdHlsZSgiekluZGV4IiwwKS5zdHlsZSgiZmlsbCIsInRyYW5zcGFyZW50IikuYXR0cigiY2xhc3NOYW1lIixiYSkuY2FsbCh3QykuY2FsbChTQyxBcnJheS5mcm9tKGMua2V5cygpKSkuY2FsbChFQyxkKSxGPT5GLmNhbGwoU0MsQXJyYXkuZnJvbShjLmtleXMoKSkpLmNhbGwoVz0+Uj9IWihXLFIpOndDKFcpKS5jYWxsKEVDLGQpKS50cmFuc2l0aW9ucygpO24ucHVzaCguLi5HLmZsYXQoKSk7Zm9yKGNvbnN0W0YsV11vZiBjLmVudHJpZXMoKSl7Y29uc3R7ZGF0YTpYfT1XLHtrZXk6USxjbGFzczp0dCx0eXBlOm50fT1GLGh0PWUuc2VsZWN0KGAjJHtRfWApLGx0PVdaKEYsVyx0LHIpLHd0PUdaKEYsVyx0LGkpLHl0PVpaKEYsVyx0LGkpLGd0PVlaKEYsVyx0LGkpLEJ0PUJaKGUsaHQsdHQsImVsZW1lbnQiKSxMdD1odC5zZWxlY3RBbGwod3MobWEpKS5zZWxlY3RGYWNldEFsbChCdCkuZGF0YShYLEl0PT5JdC5rZXksSXQ9Pkl0Lmdyb3VwS2V5KS5qb2luKEl0PT5JdC5hcHBlbmQobHQpLmF0dHIoImNsYXNzTmFtZSIsbWEpLmF0dHIoIm1hcmtUeXBlIixudCkudHJhbnNpdGlvbihmdW5jdGlvbihqdCxRdCx1ZSl7cmV0dXJuIHd0KGp0LFt1ZV0pfSksSXQ9Pkl0LmNhbGwoanQ9Pntjb25zdCBRdD1qdC5wYXJlbnQoKSx1ZT1DRih5ZT0+e2NvbnN0W0tlLGJlXT15ZS5nZXRCb3VuZHMoKS5taW47cmV0dXJuW0tlLGJlXX0pO2p0LnRyYW5zaXRpb24oZnVuY3Rpb24oeWUsS2UsYmUpe3paKGJlLFF0LHVlKTtjb25zdCBOZT1sdCh5ZSxLZSksUG49eXQoeWUsW2JlXSxbTmVdKTtyZXR1cm4gUG4hPT1udWxsfHwoYmUubm9kZU5hbWU9PT1OZS5ub2RlTmFtZSYmTmUubm9kZU5hbWUhPT0iZyI/UV8oYmUsTmUpOihiZS5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZChOZSxiZSksTmUuY2xhc3NOYW1lPW1hLE5lLm1hcmtUeXBlPW50LE5lLl9fZGF0YV9fPWJlLl9fZGF0YV9fKSksUG59KS5hdHRyKCJtYXJrVHlwZSIsbnQpLmF0dHIoImNsYXNzTmFtZSIsbWEpfSksSXQ9Pkl0LmVhY2goZnVuY3Rpb24oanQsUXQsdWUpe3VlLl9fcmVtb3ZlZF9fPSEwfSkudHJhbnNpdGlvbihmdW5jdGlvbihqdCxRdCx1ZSl7cmV0dXJuIGd0KGp0LFt1ZV0pfSkucmVtb3ZlKCksSXQ9Pkl0LmFwcGVuZChsdCkuYXR0cigiY2xhc3NOYW1lIixtYSkuYXR0cigibWFya1R5cGUiLG50KS50cmFuc2l0aW9uKGZ1bmN0aW9uKGp0LFF0LHVlKXtjb25zdHtfX2Zyb21FbGVtZW50c19fOnllfT11ZSxLZT15dChqdCx5ZSxbdWVdKTtyZXR1cm4gbmV3IFhyKHllLG51bGwsdWUucGFyZW50Tm9kZSkudHJhbnNpdGlvbihLZSkucmVtb3ZlKCksS2V9KSxJdD0+SXQudHJhbnNpdGlvbihmdW5jdGlvbihqdCxRdCx1ZSl7Y29uc3QgS2U9bmV3IFhyKFtdLHVlLl9fdG9EYXRhX18sdWUucGFyZW50Tm9kZSkuYXBwZW5kKGx0KS5hdHRyKCJjbGFzc05hbWUiLG1hKS5hdHRyKCJtYXJrVHlwZSIsbnQpLm5vZGVzKCk7cmV0dXJuIHl0KGp0LFt1ZV0sS2UpfSkucmVtb3ZlKCkpLnRyYW5zaXRpb25zKCk7bi5wdXNoKC4uLkx0LmZsYXQoKSl9TFoodCxlLG4saSxyKX0pfWZ1bmN0aW9uIExaKHQsZSxuLHIsaSl7Y29uc3RbYV09Z3IoImxhYmVsVHJhbnNmb3JtIixyKSx7bWFya1N0YXRlOm8sbGFiZWxUcmFuc2Zvcm06c309dCxjPWUuc2VsZWN0KHdzKHppKSkubm9kZSgpLGw9bmV3IE1hcCx1PW5ldyBNYXAsZj1BcnJheS5mcm9tKG8uZW50cmllcygpKS5mbGF0TWFwKChbYix4XSk9Pntjb25zdHtsYWJlbHM6Xz1bXSxrZXk6d309YixPPWpaKGIseCx0LHIsaSksRT1lLnNlbGVjdChgIyR7d31gKS5zZWxlY3RBbGwod3MobWEpKS5ub2RlcygpLmZpbHRlcihNPT4hTS5fX3JlbW92ZWRfXyk7cmV0dXJuIF8uZmxhdE1hcCgoTSxrKT0+e2NvbnN0e3RyYW5zZm9ybTpBPVtdfT1NLFA9ZmwoTSxbInRyYW5zZm9ybSJdKTtyZXR1cm4gRS5mbGF0TWFwKEM9Pntjb25zdCBOPVJaKFAsayxDKTtyZXR1cm4gTi5mb3JFYWNoKEw9PntsLnNldChMLFI9Pk8oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LFIpLHtlbGVtZW50OkN9KSkpLHUuc2V0KEwsTSl9KSxOfSl9KX0pLGQ9T2UoYykuc2VsZWN0QWxsKHdzKFdpKSkuZGF0YShmLGI9PmIua2V5KS5qb2luKGI9PmIuYXBwZW5kKHg9PmwuZ2V0KHgpKHgpKS5hdHRyKCJjbGFzc05hbWUiLFdpKSxiPT5iLmVhY2goZnVuY3Rpb24oeCxfLHcpe2NvbnN0IEU9bC5nZXQoeCkoeCk7UV8odyxFKX0pLGI9PmIucmVtb3ZlKCkpLm5vZGVzKCksaD1kcihkLGI9PnUuZ2V0KGIuX19kYXRhX18pKSx7Y29vcmRpbmF0ZTp2LGxheW91dDpnfT10LHk9e2NhbnZhczppLmNhbnZhcyxjb29yZGluYXRlOnYsbGF5b3V0Omd9O2Zvcihjb25zdFtiLHhdb2YgaCl7Y29uc3R7dHJhbnNmb3JtOl89W119PWI7cV8oXy5tYXAoYSkpKHgseSl9cyYmcyhkLHkpfWZ1bmN0aW9uIFJaKHQsZSxuKXtjb25zdHtzZXJpZXNJbmRleDpyLHNlcmllc0tleTppLHBvaW50czphLGtleTpvLGluZGV4OnN9PW4uX19kYXRhX18sYz1EWihuKTtpZighcilyZXR1cm5bT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtrZXk6YCR7b30tJHtlfWAsYm91bmRzOmMsaW5kZXg6cyxwb2ludHM6YSxkZXBlbmRlbnRFbGVtZW50Om59KV07Y29uc3QgbD1JWih0KSx1PXIubWFwKChmLGQpPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2tleTpgJHtpW2RdfS0ke2V9YCxib3VuZHM6W2FbZF1dLGluZGV4OmYscG9pbnRzOmEsZGVwZW5kZW50RWxlbWVudDpufSkpO3JldHVybiBsP2wodSk6dX1mdW5jdGlvbiBOWihbdCxlLG5dKXtpZihuKXJldHVyblt0LGUsbl07Y29uc3Qgcj1bXSxpPVtdO2ZvcihsZXQgYT0wO2E8dC5sZW5ndGg7YSsrKXtjb25zdCBvPXRbYV0scz1lW2FdO3MuZXZlcnkoKFtjLGxdKT0+cW4oYykmJnFuKGwpKSYmKHIucHVzaChvKSxpLnB1c2gocykpfXJldHVybltyLGldfWZ1bmN0aW9uIElaKHQpe2NvbnN0e3NlbGVjdG9yOmV9PXQ7aWYoIWUpcmV0dXJuIG51bGw7aWYodHlwZW9mIGU9PSJmdW5jdGlvbiIpcmV0dXJuIGU7aWYoZT09PSJmaXJzdCIpcmV0dXJuIG49PltuWzBdXTtpZihlPT09Imxhc3QiKXJldHVybiBuPT5bbltuLmxlbmd0aC0xXV07dGhyb3cgbmV3IEVycm9yKGBVbmtub3duIHNlbGVjdG9yOiAke2V9YCl9ZnVuY3Rpb24gRFoodCl7Y29uc3QgZT10LmNsb25lTm9kZSgpLG49dC5nZXRBbmltYXRpb25zKCk7ZS5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iLG4uZm9yRWFjaChvPT57Y29uc3Qgcz1vLmVmZmVjdC5nZXRLZXlmcmFtZXMoKTtlLmF0dHIoc1tzLmxlbmd0aC0xXSl9KSx0LnBhcmVudE5vZGUuYXBwZW5kQ2hpbGQoZSk7Y29uc3Qgcj1lLmdldExvY2FsQm91bmRzKCk7ZS5kZXN0cm95KCk7Y29uc3R7bWluOmksbWF4OmF9PXI7cmV0dXJuW2ksYV19ZnVuY3Rpb24galoodCxlLG4scixpKXtjb25zdFthXT1ncigic2hhcGUiLHIpLHtkYXRhOm8sZW5jb2RlOnN9PXQse2RhdGE6YyxkZWZhdWx0TGFiZWxTaGFwZTpsfT1lLHU9Yy5tYXAoZz0+Zy5wb2ludHMpLGY9ZnMocyxnPT5nLnZhbHVlKSx7dGhlbWU6ZCxjb29yZGluYXRlOmh9PW4sdj1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30saSkse2RvY3VtZW50OnQzKGkpLHRoZW1lOmQsY29vcmRpbmF0ZTpofSk7cmV0dXJuIGc9Pntjb25zdHtpbmRleDp5LHBvaW50czpifT1nLHg9b1t5XSx7Zm9ybWF0dGVyOl89Vz0+YCR7V31gLHRyYW5zZm9ybTp3LHN0eWxlOk8scmVuZGVyOkUsc2VsZWN0b3I6TSxlbGVtZW50Omt9PWcsQT1mbChnLFsiZm9ybWF0dGVyIiwidHJhbnNmb3JtIiwic3R5bGUiLCJyZW5kZXIiLCJzZWxlY3RvciIsImVsZW1lbnQiXSksUD1mcyhPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sQSksTyksVz0+bUMoVyx4LHksbyx7Y2hhbm5lbDpmLGVsZW1lbnQ6a30pKSx7c2hhcGU6Qz1sLHRleHQ6Tn09UCxMPWZsKFAsWyJzaGFwZSIsInRleHQiXSksUj10eXBlb2YgXz09InN0cmluZyI/ZWwoXyk6XyxJPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxMKSx7dGV4dDpSKE4seCx5LG8pLGRhdHVtOnh9KSxEPU9iamVjdC5hc3NpZ24oe3R5cGU6YGxhYmVsLiR7Q31gLHJlbmRlcjpFfSxMKSxHPWEoRCx2KSxGPWJDKGQsImxhYmVsIixDLCJsYWJlbCIpO3JldHVybiBHKGIsSSxGLHUpfX1mdW5jdGlvbiBtQyh0LGUsbixyLGkpe3JldHVybiB0eXBlb2YgdD09ImZ1bmN0aW9uIj90KGUsbixyLGkpOnR5cGVvZiB0IT0ic3RyaW5nIj90OlVmKGUpJiZlW3RdIT09dm9pZCAwP2VbdF06dH1mdW5jdGlvbiBGWih0KXtsZXQgZT0tMS8wLG49MS8wO2Zvcihjb25zdFtyLGldb2YgdCl7Y29uc3R7YW5pbWF0ZTphPXt9fT1yLHtkYXRhOm99PWkse2VudGVyOnM9e30sdXBkYXRlOmM9e30sZXhpdDpsPXt9fT1hLHt0eXBlOnUsZHVyYXRpb246Zj0zMDAsZGVsYXk6ZD0wfT1jLHt0eXBlOmgsZHVyYXRpb246dj0zMDAsZGVsYXk6Zz0wfT1zLHt0eXBlOnksZHVyYXRpb246Yj0zMDAsZGVsYXk6eD0wfT1sO2Zvcihjb25zdCBfIG9mIG8pe2NvbnN0e3VwZGF0ZVR5cGU6dz11LHVwZGF0ZUR1cmF0aW9uOk89Zix1cGRhdGVEZWxheTpFPWQsZW50ZXJUeXBlOk09aCxlbnRlckR1cmF0aW9uOms9dixlbnRlckRlbGF5OkE9ZyxleGl0RHVyYXRpb246UD1iLGV4aXREZWxheTpDPXgsZXhpdFR5cGU6Tj15fT1fOyh3PT09dm9pZCAwfHx3KSYmKGU9TWF0aC5tYXgoZSxPK0UpLG49TWF0aC5taW4obixFKSksKE49PT12b2lkIDB8fE4pJiYoZT1NYXRoLm1heChlLFArQyksbj1NYXRoLm1pbihuLEMpKSwoTT09PXZvaWQgMHx8TSkmJihlPU1hdGgubWF4KGUsaytBKSxuPU1hdGgubWluKG4sQSkpfX1yZXR1cm4gZT09PS0xLzA/bnVsbDpbbixlLW5dfWZ1bmN0aW9uIEJaKHQsZSxuLHIpe3JldHVybiB0Lm5vZGUoKS5wYXJlbnRFbGVtZW50LmZpbmRBbGwoYT0+YS5zdHlsZS5mYWNldCE9PXZvaWQgMCYmYS5zdHlsZS5mYWNldD09PW4mJmEhPT1lLm5vZGUoKSkuZmxhdE1hcChhPT5hLmdldEVsZW1lbnRzQnlDbGFzc05hbWUocikpfWZ1bmN0aW9uIHpaKHQsZSxuKXtpZighdC5fX2ZhY2V0X18pcmV0dXJuO2NvbnN0IHI9dC5wYXJlbnROb2RlLnBhcmVudE5vZGUsaT1lLnBhcmVudE5vZGUsW2Esb109bihyKSxbcyxjXT1uKGkpLGw9YHRyYW5zbGF0ZSgke2Etc30sICR7by1jfSlgO0xGKHQsbCksZS5hcHBlbmQodCl9ZnVuY3Rpb24gV1oodCxlLG4scil7Y29uc3R7bGlicmFyeTppfT1yLFthXT1ncigic2hhcGUiLGkpLHtkYXRhOm8sZW5jb2RlOnN9PXQse2RlZmF1bHRTaGFwZTpjLGRhdGE6bCxzaGFwZTp1fT1lLGY9ZnMocyx4PT54LnZhbHVlKSxkPWwubWFwKHg9PngucG9pbnRzKSx7dGhlbWU6aCxjb29yZGluYXRlOnZ9PW4se3R5cGU6ZyxzdHlsZTp5PXt9fT10LGI9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHIpLHtkb2N1bWVudDp0MyhyKSxjb29yZGluYXRlOnYsdGhlbWU6aH0pO3JldHVybiB4PT57Y29uc3R7c2hhcGU6Xz1jfT15LHtzaGFwZTp3PV8scG9pbnRzOk8sc2VyaWVzSW5kZXg6RSxpbmRleDpNfT14LGs9ZmwoeCxbInNoYXBlIiwicG9pbnRzIiwic2VyaWVzSW5kZXgiLCJpbmRleCJdKSxBPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxrKSx7aW5kZXg6TX0pLFA9RT9FLm1hcChJPT5vW0ldKTpvW01dLEM9RXx8TSxOPWZzKHksST0+bUMoSSxQLEMsbyx7Y2hhbm5lbDpmfSkpLEw9dVt3XT91W3ddKE4sYik6YShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sTikse3R5cGU6T0ModCx3KX0pLGIpLFI9YkMoaCxnLHcsYyk7cmV0dXJuIEwoTyxBLFIsZCl9fWZ1bmN0aW9uIGJDKHQsZSxuLHIpe2lmKHR5cGVvZiBlIT0ic3RyaW5nIilyZXR1cm47Y29uc3R7Y29sb3I6aX09dCxhPXRbZV18fHt9LG89YVtuXXx8YVtyXTtyZXR1cm4gT2JqZWN0LmFzc2lnbih7Y29sb3I6aX0sbyl9ZnVuY3Rpb24gZk8odCxlLG4scixpKXt2YXIgYSxvO2NvbnN0WyxzXT1ncigic2hhcGUiLGkpLFtjXT1ncigiYW5pbWF0aW9uIixpKSx7ZGVmYXVsdFNoYXBlOmwsc2hhcGU6dX09bix7dGhlbWU6Zixjb29yZGluYXRlOmR9PXIsdj1gZGVmYXVsdCR7dGwodCl9QW5pbWF0aW9uYCx7W3ZdOmd9PSgoYT11W2xdKT09PW51bGx8fGE9PT12b2lkIDA/dm9pZCAwOmEucHJvcHMpfHxzKE9DKGUsbCkpLnByb3BzLHtbdF06eT17fX09ZixiPSgobz1lLmFuaW1hdGUpPT09bnVsbHx8bz09PXZvaWQgMD92b2lkIDA6b1t0XSl8fHt9LHg9e2Nvb3JkaW5hdGU6ZH07cmV0dXJuKF8sdyxPKT0+e2NvbnN0e1tgJHt0fVR5cGVgXTpFLFtgJHt0fURlbGF5YF06TSxbYCR7dH1EdXJhdGlvbmBdOmssW2Ake3R9RWFzaW5nYF06QX09XyxQPU9iamVjdC5hc3NpZ24oe3R5cGU6RXx8Z30sYik7aWYoIVAudHlwZSlyZXR1cm4gbnVsbDtjb25zdCBMPWMoUCx4KSh3LE8sbXQoeSx7ZGVsYXk6TSxkdXJhdGlvbjprLGVhc2luZzpBfSkpO3JldHVybiBBcnJheS5pc0FycmF5KEwpP0w6W0xdfX1mdW5jdGlvbiBHWih0LGUsbixyKXtyZXR1cm4gZk8oImVudGVyIix0LGUsbixyKX1mdW5jdGlvbiAkWih0KXtyZXR1cm4gdC5maW5pc2hlZC50aGVuKCgpPT57dC5jYW5jZWwoKX0pLHR9ZnVuY3Rpb24gWloodCxlLG4scil7cmV0dXJuIGZPKCJ1cGRhdGUiLHQsZSxuLHIpfWZ1bmN0aW9uIFlaKHQsZSxuLHIpe3JldHVybiBmTygiZXhpdCIsdCxlLG4scil9ZnVuY3Rpb24geEModD17fSl7aWYodHlwZW9mIHQ9PSJzdHJpbmciKXJldHVybnt0eXBlOnR9O2NvbnN0e3R5cGU6ZT0ibGlnaHQifT10LG49ZmwodCxbInR5cGUiXSk7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxuKSx7dHlwZTplfSl9ZnVuY3Rpb24gS20odCl7Y29uc3QgZT17ZXZlbnQ6ITAsdG9vbHRpcDohMCxzbGlkZXJGaWx0ZXI6ITAsbGVnZW5kRmlsdGVyOiEwLHNjcm9sbGJhckZpbHRlcjohMH0se2ludGVyYWN0aW9uOm49e319PXQ7cmV0dXJuIE9iamVjdC5lbnRyaWVzKG10KGUsbikpLnJldmVyc2UoKX1mdW5jdGlvbiBfQyh0LGUpe3JldHVybiB1Yyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7Y29uc3R7ZGF0YTpufT10LHI9ZmwodCxbImRhdGEiXSk7aWYobj09bnVsbClyZXR1cm4gdDtjb25zdFsse2RhdGE6aX1dPXlpZWxkIGRDKFtdLHtkYXRhOm59LGUpO3JldHVybiBPYmplY3QuYXNzaWduKHtkYXRhOml9LHIpfSl9ZnVuY3Rpb24gd0ModCl7dC5zdHlsZSgidHJhbnNmb3JtIixlPT5gdHJhbnNsYXRlKCR7ZS5wYWRkaW5nTGVmdCtlLm1hcmdpbkxlZnR9LCAke2UucGFkZGluZ1RvcCtlLm1hcmdpblRvcH0pYCkuc3R5bGUoIndpZHRoIixlPT5lLmlubmVyV2lkdGgpLnN0eWxlKCJoZWlnaHQiLGU9PmUuaW5uZXJIZWlnaHQpfWZ1bmN0aW9uIEhaKHQsZSl7Y29uc3RbbixyXT1lO3QudHJhbnNpdGlvbihmdW5jdGlvbihpLGEsbyl7Y29uc3R7dHJhbnNmb3JtOnMsd2lkdGg6YyxoZWlnaHQ6bH09by5zdHlsZSx7cGFkZGluZ0xlZnQ6dSxwYWRkaW5nVG9wOmYsaW5uZXJXaWR0aDpkLGlubmVySGVpZ2h0OmgsbWFyZ2luTGVmdDp2LG1hcmdpblRvcDpnfT1pLHk9W3t0cmFuc2Zvcm06cyx3aWR0aDpjLGhlaWdodDpsfSx7dHJhbnNmb3JtOmB0cmFuc2xhdGUoJHt1K3Z9LCAke2YrZ30pYCx3aWR0aDpkLGhlaWdodDpofV07cmV0dXJuIG8uYW5pbWF0ZSh5LHtkZWxheTpuLGR1cmF0aW9uOnIsZmlsbDoiYm90aCJ9KX0pfWZ1bmN0aW9uIE9DKHQsZSl7Y29uc3R7dHlwZTpufT10O3JldHVybiB0eXBlb2YgZT09InN0cmluZyI/YCR7bn0uJHtlfWA6ZX1mdW5jdGlvbiBTQyh0LGUpe2NvbnN0IG49YT0+YS5jbGFzcyE9PXZvaWQgMD9gJHthLmNsYXNzfWA6IiI7dC5ub2RlcygpLmxlbmd0aD09PTB8fCh0LnNlbGVjdEFsbCh3cyhYbykpLmRhdGEoZSxhPT5hLmtleSkuam9pbihhPT5hLmFwcGVuZCgiZyIpLmF0dHIoImNsYXNzTmFtZSIsWG8pLmF0dHIoImlkIixvPT5vLmtleSkuc3R5bGUoImZhY2V0IixuKS5zdHlsZSgiZmlsbCIsInRyYW5zcGFyZW50Iikuc3R5bGUoInpJbmRleCIsbz0+e3ZhciBzO3JldHVybihzPW8uekluZGV4KSE9PW51bGwmJnMhPT12b2lkIDA/czowfSksYT0+YS5zdHlsZSgiZmFjZXQiLG4pLnN0eWxlKCJmaWxsIiwidHJhbnNwYXJlbnQiKS5zdHlsZSgiekluZGV4IixvPT57dmFyIHM7cmV0dXJuKHM9by56SW5kZXgpIT09bnVsbCYmcyE9PXZvaWQgMD9zOjB9KSxhPT5hLnJlbW92ZSgpKSx0LnNlbGVjdCh3cyh6aSkpLm5vZGUoKSl8fHQuYXBwZW5kKCJnIikuYXR0cigiY2xhc3NOYW1lIix6aSkuc3R5bGUoInpJbmRleCIsMCl9ZnVuY3Rpb24gd3MoLi4udCl7cmV0dXJuIHQubWFwKGU9PmAuJHtlfWApLmpvaW4oIiIpfWZ1bmN0aW9uIEVDKHQsZSl7dC5ub2RlKCkmJnQuc3R5bGUoImNsaXBQYXRoIixuPT57aWYoIWUpcmV0dXJuIG51bGw7Y29uc3R7cGFkZGluZ1RvcDpyLHBhZGRpbmdMZWZ0OmksbWFyZ2luTGVmdDphLG1hcmdpblRvcDpvLGlubmVyV2lkdGg6cyxpbm5lckhlaWdodDpjfT1uO3JldHVybiBuZXcgUWMoe3N0eWxlOnt4OmkrYSx5OnIrbyx3aWR0aDpzLGhlaWdodDpjfX0pfSl9ZnVuY3Rpb24gVloodCxlLG4pe3ZhciByO2Zvcihjb25zdFtsXW9mIG4uZW50cmllcygpKWlmKGwudHlwZT09PSJjZWxsIilyZXR1cm4gdC5maWx0ZXIodT0+dS5uYW1lIT09InNoYXBlIik7aWYoZS5sZW5ndGghPT0xfHx0LnNvbWUobD0+bC5uYW1lPT09InNoYXBlIikpcmV0dXJuIHQ7Y29uc3R7ZGVmYXVsdFNoYXBlOml9PWVbMF07aWYoIVsicG9pbnQiLCJsaW5lIiwicmVjdCIsImhvbGxvdyJdLmluY2x1ZGVzKGkpKXJldHVybiB0O2NvbnN0IG89e3BvaW50OiJwb2ludCIsbGluZToiaHlwaGVuIixyZWN0OiJzcXVhcmUiLGhvbGxvdzoiaG9sbG93In0sYz17ZmllbGQ6KChyPXQuZmluZChsPT5sLm5hbWU9PT0iY29sb3IiKSk9PT1udWxsfHxyPT09dm9pZCAwP3ZvaWQgMDpyLmZpZWxkKXx8bnVsbCxuYW1lOiJzaGFwZSIsdHlwZToiY29uc3RhbnQiLGRvbWFpbjpbXSxyYW5nZTpbb1tpXV19O3JldHVyblsuLi50LGNdfWZ1bmN0aW9uIFhaKHQsZSl7Zm9yKGNvbnN0W24scl1vZiBPYmplY3QuZW50cmllcyhlKSl0LnN0eWxlKG4scil9ZnVuY3Rpb24gVVooLi4udCl7cmV0dXJuIGU9PnQucmVkdWNlKChuLHIpPT5yKG4pLGUpfWZ1bmN0aW9uIHFaKHQpe2NvbnN0e3N0eWxlOmUsc2NhbGU6bix0eXBlOnJ9PXQsaT17fSxhPXZuKGUsImNvbHVtbldpZHRoUmF0aW8iKTtyZXR1cm4gYSYmcj09PSJpbnRlcnZhbCImJihpLng9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG49PW51bGw/dm9pZCAwOm4ueCkse3BhZGRpbmc6MS1hfSkpLE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7c2NhbGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG4pLGkpfSl9ZnVuY3Rpb24gTUModCl7Y29uc3QgZT1LWih0KTtyZXR1cm4gZS5jaGlsZHJlbiYmQXJyYXkuaXNBcnJheShlLmNoaWxkcmVuKSYmKGUuY2hpbGRyZW49ZS5jaGlsZHJlbi5tYXAobj0+TUMobikpKSxlfWZ1bmN0aW9uIEtaKHQpe3JldHVybiBVWihxWikodCl9ZnVuY3Rpb24ga0ModCl7Y29uc3QgZT1tdCh7fSx0KSxuPW5ldyBNYXAoW1tlLG51bGxdXSkscj1uZXcgTWFwKFtbbnVsbCwtMV1dKSxpPVtlXTtmb3IoO2kubGVuZ3RoOyl7Y29uc3QgYT1pLnNoaWZ0KCk7aWYoYS5rZXk9PT12b2lkIDApe2NvbnN0IHM9bi5nZXQoYSksYz1yLmdldChhKSxsPXM9PT1udWxsPyIwIjpgJHtzLmtleX0tJHtjfWA7YS5rZXk9bH1jb25zdHtjaGlsZHJlbjpvPVtdfT1hO2lmKEFycmF5LmlzQXJyYXkobykpZm9yKGxldCBzPTA7czxvLmxlbmd0aDtzKyspe2NvbnN0IGM9bXQoe30sb1tzXSk7b1tzXT1jLG4uc2V0KGMsYSksci5zZXQoYyxzKSxpLnB1c2goYyl9fXJldHVybiBlfWZ1bmN0aW9uIFFaKHQsZSl7Y29uc3Qgbj1uZXcgbUE7cmV0dXJuIG4ucmVnaXN0ZXJQbHVnaW4obmV3IHhBKSxuZXcgd2soe3dpZHRoOnQsaGVpZ2h0OmUsY29udGFpbmVyOmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHJlbmRlcmVyOm59KX1mdW5jdGlvbiBKWih0LGU9e30sbj0oKT0+e30scj1pPT57dGhyb3cgaX0pe2NvbnN0e3dpZHRoOmk9NjQwLGhlaWdodDphPTQ4MCxkZXB0aDpvPTB9PXQscz1NQyh0KSxjPWtDKHMpLHtjYW52YXM6bD1RWihpLGEpLGVtaXR0ZXI6dT1uZXcgVHMsbGlicmFyeTpmfT1lO2UuY2FudmFzPWwsZS5lbWl0dGVyPXU7Y29uc3R7d2lkdGg6ZCxoZWlnaHQ6aH09bC5nZXRDb25maWcoKTsoZCE9PWl8fGghPT1hKSYmbC5yZXNpemUoaSxhKSx1LmVtaXQoSW4uQkVGT1JFX1JFTkRFUik7Y29uc3Qgdj1PZShsLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudCk7cmV0dXJuIGwucmVhZHkudGhlbigoKT0+Y08oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGMpLHt3aWR0aDppLGhlaWdodDphLGRlcHRoOm99KSx2LGUpKS50aGVuKCgpPT57aWYobyl7Y29uc3RbZyx5XT1sLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5nZXRQb3NpdGlvbigpO2wuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNldFBvc2l0aW9uKGcseSwtby8yKX1sLnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e2wucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dS5lbWl0KEluLkFGVEVSX1JFTkRFUiksbj09bnVsbHx8bigpfSl9KX0pLmNhdGNoKGc9PntyPT1udWxsfHxyKGcpfSksZVkobC5nZXRDb25maWcoKS5jb250YWluZXIpfWZ1bmN0aW9uIFNvdCh0LGU9e30sbj0oKT0+e30scj1pPT57dGhyb3cgaX0pe3ZhciBpO2NvbnN0e3dpZHRoOmE9NjQwLGhlaWdodDpvPTQ4MH09dCxzPWtDKHQpLHtncm91cDpjPW5ldyBHcm91cCxlbWl0dGVyOmw9bmV3IEV2ZW50RW1pdHRlcixsaWJyYXJ5OnV9PWU7YyE9bnVsbCYmYy5wYXJlbnRFbGVtZW50fHxlcnJvcigicmVuZGVyVG9Nb3VudGVkRWxlbWVudCBjYW4ndCByZW5kZXIgY2hhcnQgdG8gdW5tb3VudGVkIGdyb3VwLiIpO2NvbnN0IGY9c2VsZWN0KGMpO3JldHVybiBlLmdyb3VwPWMsZS5lbWl0dGVyPWwsZS5jYW52YXM9ZS5jYW52YXN8fCgoaT1jPT1udWxsP3ZvaWQgMDpjLm93bmVyRG9jdW1lbnQpPT09bnVsbHx8aT09PXZvaWQgMD92b2lkIDA6aS5kZWZhdWx0VmlldyksbC5lbWl0KENoYXJ0RXZlbnQuQkVGT1JFX1JFTkRFUikscGxvdChPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30scykse3dpZHRoOmEsaGVpZ2h0Om99KSxmLGUpLnRoZW4oKCk9Pnt2YXIgZDsoZD1lLmNhbnZhcyk9PT1udWxsfHxkPT09dm9pZCAwfHxkLnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e2wuZW1pdChDaGFydEV2ZW50LkFGVEVSX1JFTkRFUiksbj09bnVsbHx8bigpfSl9KS5jYXRjaChkPT57cj09bnVsbHx8cihkKX0pLGN9ZnVuY3Rpb24gQUModCxlPXt9LG49ITEpe2NvbnN0e2NhbnZhczpyLGVtaXR0ZXI6aX09ZTtyJiYodFkociksbj9yLmRlc3Ryb3koKTpyLmRlc3Ryb3lDaGlsZHJlbigpKSxpLm9mZigpfWZ1bmN0aW9uIHRZKHQpe2NvbnN0IGU9dC5nZXRSb290KCkucXVlcnlTZWxlY3RvckFsbChgLiR7X2l9YCk7ZT09bnVsbHx8ZS5mb3JFYWNoKG49Pntjb25zdHtuYW1lSW50ZXJhY3Rpb246cj1uZXcgTWFwfT1uOyhyPT1udWxsP3ZvaWQgMDpyLnNpemUpPjAmJkFycmF5LmZyb20ocj09bnVsbD92b2lkIDA6ci52YWx1ZXMoKSkuZm9yRWFjaChpPT57aT09bnVsbHx8aS5kZXN0cm95KCl9KX0pfWZ1bmN0aW9uIGVZKHQpe3JldHVybiB0eXBlb2YgdD09InN0cmluZyI/ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodCk6dH1jb25zdCBnZD10PT50P3BhcnNlSW50KHQpOjA7ZnVuY3Rpb24gblkodCl7Y29uc3QgZT1nZXRDb21wdXRlZFN0eWxlKHQpLG49dC5jbGllbnRXaWR0aHx8Z2QoZS53aWR0aCkscj10LmNsaWVudEhlaWdodHx8Z2QoZS5oZWlnaHQpLGk9Z2QoZS5wYWRkaW5nTGVmdCkrZ2QoZS5wYWRkaW5nUmlnaHQpLGE9Z2QoZS5wYWRkaW5nVG9wKStnZChlLnBhZGRpbmdCb3R0b20pO3JldHVybnt3aWR0aDpuLWksaGVpZ2h0OnItYX19ZnVuY3Rpb24gRW90KHQpe2NvbnN0e2hlaWdodDplLHdpZHRoOm4scGFkZGluZzpyPTAscGFkZGluZ0xlZnQ6aT1yLHBhZGRpbmdSaWdodDphPXIscGFkZGluZ1RvcDpvPXIscGFkZGluZ0JvdHRvbTpzPXIsbWFyZ2luOmM9MCxtYXJnaW5MZWZ0Omw9YyxtYXJnaW5SaWdodDp1PWMsbWFyZ2luVG9wOmY9YyxtYXJnaW5Cb3R0b206ZD1jLGluc2V0Omg9MCxpbnNldExlZnQ6dj1oLGluc2V0UmlnaHQ6Zz1oLGluc2V0VG9wOnk9aCxpbnNldEJvdHRvbTpiPWh9PXQseD1PPT5PPT09ImF1dG8iPzIwOk8sXz1uLXgoaSkteChhKS1sLXUtdi1nLHc9ZS14KG8pLXgocyktZi1kLXktYjtyZXR1cm57d2lkdGg6XyxoZWlnaHQ6d319ZnVuY3Rpb24gZE8odCxlKXtjb25zdCBuPVt0XTtmb3IoO24ubGVuZ3RoOyl7Y29uc3Qgcj1uLnNoaWZ0KCk7ZSYmZShyKTtjb25zdCBpPXIuY2hpbGRyZW58fFtdO2Zvcihjb25zdCBhIG9mIGkpbi5wdXNoKGEpfX1jbGFzcyBoT3tjb25zdHJ1Y3RvcihlPXt9LG4pe3RoaXMucGFyZW50Tm9kZT1udWxsLHRoaXMuY2hpbGRyZW49W10sdGhpcy5pbmRleD0wLHRoaXMudHlwZT1uLHRoaXMudmFsdWU9ZX1tYXAoZT1uPT5uKXtjb25zdCBuPWUodGhpcy52YWx1ZSk7cmV0dXJuIHRoaXMudmFsdWU9bix0aGlzfWF0dHIoZSxuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD09PTE/dGhpcy52YWx1ZVtlXTp0aGlzLm1hcChyPT4ocltlXT1uLHIpKX1hcHBlbmQoZSl7Y29uc3Qgbj1uZXcgZSh7fSk7cmV0dXJuIG4uY2hpbGRyZW49W10sdGhpcy5wdXNoKG4pLG59cHVzaChlKXtyZXR1cm4gZS5wYXJlbnROb2RlPXRoaXMsZS5pbmRleD10aGlzLmNoaWxkcmVuLmxlbmd0aCx0aGlzLmNoaWxkcmVuLnB1c2goZSksdGhpc31yZW1vdmUoKXtjb25zdCBlPXRoaXMucGFyZW50Tm9kZTtpZihlKXtjb25zdHtjaGlsZHJlbjpufT1lLHI9bi5maW5kSW5kZXgoaT0+aT09PXRoaXMpO24uc3BsaWNlKHIsMSl9cmV0dXJuIHRoaXN9Z2V0Tm9kZUJ5S2V5KGUpe2xldCBuPW51bGw7cmV0dXJuIGRPKHRoaXMsaT0+e2U9PT1pLmF0dHIoImtleSIpJiYobj1pKX0pLG59Z2V0Tm9kZXNCeVR5cGUoZSl7Y29uc3Qgbj1bXTtyZXR1cm4gZE8odGhpcyxpPT57ZT09PWkudHlwZSYmbi5wdXNoKGkpfSksbn1nZXROb2RlQnlUeXBlKGUpe2xldCBuPW51bGw7cmV0dXJuIGRPKHRoaXMscj0+e258fGU9PT1yLnR5cGUmJihuPXIpfSksbn1jYWxsKGUsLi4ubil7cmV0dXJuIGUodGhpcy5tYXAoKSwuLi5uKSx0aGlzfWdldFJvb3QoKXtsZXQgZT10aGlzO2Zvcig7ZSYmZS5wYXJlbnROb2RlOyllPWUucGFyZW50Tm9kZTtyZXR1cm4gZX19dmFyIFRDPWZ1bmN0aW9uKHQsZSl7dmFyIG49e307Zm9yKHZhciByIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscikmJmUuaW5kZXhPZihyKTwwJiYobltyXT10W3JdKTtpZih0IT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIGk9MCxyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCk7aTxyLmxlbmd0aDtpKyspZS5pbmRleE9mKHJbaV0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh0LHJbaV0pJiYobltyW2ldXT10W3JbaV1dKTtyZXR1cm4gbn07Y29uc3QgcE89WyJ3aWR0aCIsImhlaWdodCIsImRlcHRoIiwicGFkZGluZyIsInBhZGRpbmdMZWZ0IiwicGFkZGluZ1JpZ2h0IiwicGFkZGluZ0JvdHRvbSIsInBhZGRpbmdUb3AiLCJpbnNldCIsImluc2V0TGVmdCIsImluc2V0UmlnaHQiLCJpbnNldFRvcCIsImluc2V0Qm90dG9tIiwibWFyZ2luIiwibWFyZ2luTGVmdCIsIm1hcmdpblJpZ2h0IiwibWFyZ2luVG9wIiwibWFyZ2luQm90dG9tIiwiYXV0b0ZpdCIsInRoZW1lIiwidGl0bGUiLCJpbnRlcmFjdGlvbiJdLFBDPSJfX3JlbW92ZV9fIixDQz0iX19jYWxsYmFja19fIixMQz0xLFJDPTE7ZnVuY3Rpb24gclkodCl7aWYodD09PXZvaWQgMCl7Y29uc3QgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gZVtQQ109ITAsZX1yZXR1cm4gdHlwZW9mIHQ9PSJzdHJpbmciP2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKHQpOnR9ZnVuY3Rpb24gaVkodCl7Y29uc3QgZT10LnBhcmVudE5vZGU7ZSYmZS5yZW1vdmVDaGlsZCh0KX1mdW5jdGlvbiBhWSh0KXtpZih0LnR5cGUhPT1udWxsKXJldHVybiB0O2NvbnN0IGU9dC5jaGlsZHJlblt0LmNoaWxkcmVuLmxlbmd0aC0xXTtmb3IoY29uc3QgbiBvZiBwTyllLmF0dHIobix0LmF0dHIobikpO3JldHVybiBlfWZ1bmN0aW9uIE5DKHQpe3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC52YWx1ZSkse3R5cGU6dC50eXBlfSl9ZnVuY3Rpb24gdk8odCxlKXtjb25zdHt3aWR0aDpuLGhlaWdodDpyLGF1dG9GaXQ6aSxkZXB0aDphPTB9PXQ7bGV0IG89NjQwLHM9NDgwO2lmKGkpe2NvbnN0e3dpZHRoOmMsaGVpZ2h0Omx9PW5ZKGUpO289Y3x8byxzPWx8fHN9cmV0dXJuIG89bnx8byxzPXJ8fHMse3dpZHRoOk1hdGgubWF4KFZuKG8pP286TEMsTEMpLGhlaWdodDpNYXRoLm1heChWbihzKT9zOlJDLFJDKSxkZXB0aDphfX1mdW5jdGlvbiBvWSh0KXtjb25zdCBlPWFZKHQpLG49W2VdLHI9bmV3IE1hcDtmb3Ioci5zZXQoZSxOQyhlKSk7bi5sZW5ndGg7KXtjb25zdCBpPW4ucG9wKCksYT1yLmdldChpKSx7Y2hpbGRyZW46bz1bXX09aTtmb3IoY29uc3QgcyBvZiBvKWlmKHMudHlwZT09PUNDKWEuY2hpbGRyZW49cy52YWx1ZTtlbHNle2NvbnN0IGM9TkMocykse2NoaWxkcmVuOmw9W119PWE7bC5wdXNoKGMpLG4ucHVzaChzKSxyLnNldChzLGMpLGEuY2hpbGRyZW49bH19cmV0dXJuIHIuZ2V0KGUpfWZ1bmN0aW9uIHNZKHQsZSl7cmV0dXJuIHR5cGVvZiB0PT0iZnVuY3Rpb24iPyEwOm5ldyBTZXQoT2JqZWN0LmtleXMoZSkpLmhhcyh0KX1mdW5jdGlvbiBjWSh0LGUpe3JldHVybiB0eXBlb2YgdCE9ImZ1bmN0aW9uIiYmbmV3IFNldChPYmplY3Qua2V5cyhlKSkuaGFzKHQpfWZ1bmN0aW9uIGxZKHQsZSxuLHIsaSl7Y29uc3R7dHlwZTphfT10LHt0eXBlOm89bnx8YX09ZTtpZihjWShvLGkpKXtmb3IoY29uc3QgcyBvZiBwTyl0LmF0dHIocykhPT12b2lkIDAmJmVbc109PT12b2lkIDAmJihlW3NdPXQuYXR0cihzKSk7cmV0dXJuIGV9aWYoc1kobyxyKSl7Y29uc3Qgcz17dHlwZToidmlldyJ9LGM9T2JqZWN0LmFzc2lnbih7fSxlKTtmb3IoY29uc3QgbCBvZiBwTyljW2xdIT09dm9pZCAwJiYoc1tsXT1jW2xdLGRlbGV0ZSBjW2xdKTtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHMpLHtjaGlsZHJlbjpbY119KX1yZXR1cm4gZX1mdW5jdGlvbiB1WSh0LGUsbil7aWYodHlwZW9mIHQ9PSJmdW5jdGlvbiIpcmV0dXJuIGUubWFyaztjb25zdCBpPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxlKSxuKVt0XTtpZighaSl0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gbWFyazogJHt0fS5gKTtyZXR1cm4gaX1mdW5jdGlvbiBmWSh0LGUsbil7aWYodHlwZW9mIHQ9PSJmdW5jdGlvbiIpe2NvbnN0IGM9bmV3IGhPO3JldHVybiBjLnZhbHVlPXQsYy50eXBlPUNDLGN9Y29uc3R7dHlwZTpyLGNoaWxkcmVuOml9PXQsYT1UQyh0LFsidHlwZSIsImNoaWxkcmVuIl0pLG89dVkocixlLG4pLHM9bmV3IG87cmV0dXJuIHMudmFsdWU9YSxzLnR5cGU9cixzfWZ1bmN0aW9uIGRZKHQsZSl7Y29uc3R7dHlwZTpuLGNoaWxkcmVuOnJ9PWUsaT1UQyhlLFsidHlwZSIsImNoaWxkcmVuIl0pO3QudHlwZT09PW58fG49PT12b2lkIDA/TEEodC52YWx1ZSxpKTp0eXBlb2Ygbj09InN0cmluZyImJih0LnR5cGU9bix0LnZhbHVlPWkpfWZ1bmN0aW9uIGhZKHQsZSxuLHIpe2lmKCF0KXJldHVybjtjb25zdCBpPVtbdCxlXV07Zm9yKDtpLmxlbmd0aDspe2NvbnN0W2Esb109aS5zaGlmdCgpLHM9ZlkobyxuLHIpO0FycmF5LmlzQXJyYXkoYS5jaGlsZHJlbikmJmEucHVzaChzKTtjb25zdHtjaGlsZHJlbjpjfT1vO2lmKEFycmF5LmlzQXJyYXkoYykpZm9yKGNvbnN0IGwgb2YgYylpLnB1c2goW3MsbF0pO2Vsc2UgdHlwZW9mIGM9PSJmdW5jdGlvbiImJmkucHVzaChbcyxjXSl9fWZ1bmN0aW9uIHBZKHQsZSxuLHIsaSl7Y29uc3QgYT1sWSh0LGUsbixyLGkpLG89W1tudWxsLHQsYV1dO2Zvcig7by5sZW5ndGg7KXtjb25zdFtzLGMsbF09by5zaGlmdCgpO2lmKCFjKWhZKHMsbCxyLGkpO2Vsc2UgaWYoIWwpYy5yZW1vdmUoKTtlbHNle2RZKGMsbCk7Y29uc3R7Y2hpbGRyZW46dX09bCx7Y2hpbGRyZW46Zn09YztpZihBcnJheS5pc0FycmF5KHUpJiZBcnJheS5pc0FycmF5KGYpKXtjb25zdCBkPU1hdGgubWF4KHUubGVuZ3RoLGYubGVuZ3RoKTtmb3IobGV0IGg9MDtoPGQ7aCsrKXtjb25zdCB2PXVbaF0sZz1mW2hdO28ucHVzaChbYyxnLHZdKX19ZWxzZSB0eXBlb2YgdT09ImZ1bmN0aW9uIiYmby5wdXNoKFtjLG51bGwsdV0pfX19ZnVuY3Rpb24gdlkoKXtsZXQgdCxlO3JldHVybltuZXcgUHJvbWlzZSgocixpKT0+e2U9cix0PWl9KSxlLHRdfWZ1bmN0aW9uIGdZKHQsZSx7a2V5Om49ZX0pe3QucHJvdG90eXBlW2VdPWZ1bmN0aW9uKHIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPT09MD90aGlzLmF0dHIobik6dGhpcy5hdHRyKG4scil9fWZ1bmN0aW9uIHlZKHQsZSx7a2V5Om49ZX0pe3QucHJvdG90eXBlW2VdPWZ1bmN0aW9uKHIpe2lmKGFyZ3VtZW50cy5sZW5ndGg9PT0wKXJldHVybiB0aGlzLmF0dHIobik7aWYoQXJyYXkuaXNBcnJheShyKSlyZXR1cm4gdGhpcy5hdHRyKG4scik7Y29uc3QgaT1bLi4udGhpcy5hdHRyKG4pfHxbXSxyXTtyZXR1cm4gdGhpcy5hdHRyKG4saSl9fWZ1bmN0aW9uIG1ZKHQsZSx7a2V5Om49ZX0pe3QucHJvdG90eXBlW2VdPWZ1bmN0aW9uKHIsaSl7aWYoYXJndW1lbnRzLmxlbmd0aD09PTApcmV0dXJuIHRoaXMuYXR0cihuKTtpZihhcmd1bWVudHMubGVuZ3RoPT09MSYmdHlwZW9mIHIhPSJzdHJpbmciKXJldHVybiB0aGlzLmF0dHIobixyKTtjb25zdCBhPXRoaXMuYXR0cihuKXx8e307cmV0dXJuIGFbcl09YXJndW1lbnRzLmxlbmd0aD09PTE/ITA6aSx0aGlzLmF0dHIobixhKX19ZnVuY3Rpb24gYlkodCxlLG4pe3QucHJvdG90eXBlW2VdPWZ1bmN0aW9uKHIpe2lmKGFyZ3VtZW50cy5sZW5ndGg9PT0wKXJldHVybiB0aGlzLmF0dHIoZSk7aWYoQXJyYXkuaXNBcnJheShyKSlyZXR1cm4gdGhpcy5hdHRyKGUse2l0ZW1zOnJ9KTtpZihVZihyKSYmKHIudGl0bGUhPT12b2lkIDB8fHIuaXRlbXMhPT12b2lkIDApKXJldHVybiB0aGlzLmF0dHIoZSxyKTtpZihyPT09bnVsbHx8cj09PSExKXJldHVybiB0aGlzLmF0dHIoZSxyKTtjb25zdCBpPXRoaXMuYXR0cihlKXx8e30se2l0ZW1zOmE9W119PWk7cmV0dXJuIGEucHVzaChyKSxpLml0ZW1zPWEsdGhpcy5hdHRyKGUsaSl9fWZ1bmN0aW9uIHhZKHQsZSx7Y3RvcjpufSl7dC5wcm90b3R5cGVbZV09ZnVuY3Rpb24ocil7Y29uc3QgaT10aGlzLmFwcGVuZChuKTtyZXR1cm4gZT09PSJtYXJrIiYmKGkudHlwZT1yKSxpfX1mdW5jdGlvbiBfWSh0LGUse2N0b3I6bn0pe3QucHJvdG90eXBlW2VdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudHlwZT1udWxsLHRoaXMuYXBwZW5kKG4pfX1mdW5jdGlvbiBRbSh0KXtyZXR1cm4gZT0+e2Zvcihjb25zdFtuLHJdb2YgT2JqZWN0LmVudHJpZXModCkpe2NvbnN0e3R5cGU6aX09cjtpPT09InZhbHVlIj9nWShlLG4scik6aT09PSJhcnJheSI/eVkoZSxuLHIpOmk9PT0ib2JqZWN0Ij9tWShlLG4scik6aT09PSJub2RlIj94WShlLG4scik6aT09PSJjb250YWluZXIiP19ZKGUsbixyKTppPT09Im1peCImJmJZKGUsbixyKX1yZXR1cm4gZX19ZnVuY3Rpb24gSUModCl7cmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyh0KS5tYXAoKFtlLG5dKT0+W2Use3R5cGU6Im5vZGUiLGN0b3I6bn1dKSl9Y29uc3QgREM9e2VuY29kZTp7dHlwZToib2JqZWN0In0sc2NhbGU6e3R5cGU6Im9iamVjdCJ9LGRhdGE6e3R5cGU6InZhbHVlIn0sdHJhbnNmb3JtOnt0eXBlOiJhcnJheSJ9LHN0eWxlOnt0eXBlOiJvYmplY3QifSxhbmltYXRlOnt0eXBlOiJvYmplY3QifSxjb29yZGluYXRlOnt0eXBlOiJvYmplY3QifSxpbnRlcmFjdGlvbjp7dHlwZToib2JqZWN0In0sbGFiZWw6e3R5cGU6ImFycmF5IixrZXk6ImxhYmVscyJ9LGF4aXM6e3R5cGU6Im9iamVjdCJ9LGxlZ2VuZDp7dHlwZToib2JqZWN0In0sc2xpZGVyOnt0eXBlOiJvYmplY3QifSxzY3JvbGxiYXI6e3R5cGU6Im9iamVjdCJ9LHN0YXRlOnt0eXBlOiJvYmplY3QifSxsYXlvdXQ6e3R5cGU6Im9iamVjdCJ9LHRoZW1lOnt0eXBlOiJvYmplY3QifSx0aXRsZTp7dHlwZToidmFsdWUifX0sd1k9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LERDKSx7dG9vbHRpcDp7dHlwZToibWl4In0sdmlld1N0eWxlOnt0eXBlOiJvYmplY3QifX0pLE9ZPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxEQykse2xhYmVsVHJhbnNmb3JtOnt0eXBlOiJhcnJheSJ9fSk7dmFyIFNZPWZ1bmN0aW9uKHQsZSxuLHIpe3ZhciBpPWFyZ3VtZW50cy5sZW5ndGgsYT1pPDM/ZTpyPT09bnVsbD9yPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSxuKTpyLG87aWYodHlwZW9mIFJlZmxlY3Q9PSJvYmplY3QiJiZ0eXBlb2YgUmVmbGVjdC5kZWNvcmF0ZT09ImZ1bmN0aW9uIilhPVJlZmxlY3QuZGVjb3JhdGUodCxlLG4scik7ZWxzZSBmb3IodmFyIHM9dC5sZW5ndGgtMTtzPj0wO3MtLSkobz10W3NdKSYmKGE9KGk8Mz9vKGEpOmk+Mz9vKGUsbixhKTpvKGUsbikpfHxhKTtyZXR1cm4gaT4zJiZhJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLGEpLGF9O2xldCBKbT1jbGFzcyBleHRlbmRzIGhPe2NoYW5nZURhdGEoZSl7dmFyIG47Y29uc3Qgcj10aGlzLmdldFJvb3QoKTtpZihyKXJldHVybiB0aGlzLmF0dHIoImRhdGEiLGUpLCEoKG49dGhpcy5jaGlsZHJlbik9PT1udWxsfHxuPT09dm9pZCAwKSYmbi5sZW5ndGgmJnRoaXMuY2hpbGRyZW4uZm9yRWFjaChpPT57aS5hdHRyKCJkYXRhIixlKX0pLHI9PW51bGw/dm9pZCAwOnIucmVuZGVyKCl9Z2V0Vmlldygpe2NvbnN0IGU9dGhpcy5nZXRSb290KCkse3ZpZXdzOm59PWUuZ2V0Q29udGV4dCgpO2lmKG4hPW51bGwmJm4ubGVuZ3RoKXJldHVybiBuLmZpbmQocj0+ci5rZXk9PT10aGlzLl9rZXkpfWdldFNjYWxlKCl7dmFyIGU7cmV0dXJuKGU9dGhpcy5nZXRWaWV3KCkpPT09bnVsbHx8ZT09PXZvaWQgMD92b2lkIDA6ZS5zY2FsZX1nZXRTY2FsZUJ5Q2hhbm5lbChlKXtjb25zdCBuPXRoaXMuZ2V0U2NhbGUoKTtpZihuKXJldHVybiBuW2VdfWdldENvb3JkaW5hdGUoKXt2YXIgZTtyZXR1cm4oZT10aGlzLmdldFZpZXcoKSk9PT1udWxsfHxlPT09dm9pZCAwP3ZvaWQgMDplLmNvb3JkaW5hdGV9Z2V0VGhlbWUoKXt2YXIgZTtyZXR1cm4oZT10aGlzLmdldFZpZXcoKSk9PT1udWxsfHxlPT09dm9pZCAwP3ZvaWQgMDplLnRoZW1lfWdldEdyb3VwKCl7Y29uc3QgZT10aGlzLl9rZXk7cmV0dXJuIGU/dGhpcy5nZXRSb290KCkuZ2V0Q29udGV4dCgpLmNhbnZhcy5nZXRSb290KCkuZ2V0RWxlbWVudEJ5SWQoZSk6dm9pZCAwfXNob3coKXtjb25zdCBlPXRoaXMuZ2V0R3JvdXAoKTtlJiYhZS5pc1Zpc2libGUoKSYmTm0oZSl9aGlkZSgpe2NvbnN0IGU9dGhpcy5nZXRHcm91cCgpO2UmJmUuaXNWaXNpYmxlKCkmJkh3KGUpfX07Sm09U1koW1FtKE9ZKV0sSm0pO3ZhciBFWT1mdW5jdGlvbih0LGUsbixyKXt2YXIgaT1hcmd1bWVudHMubGVuZ3RoLGE9aTwzP2U6cj09PW51bGw/cj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsbik6cixvO2lmKHR5cGVvZiBSZWZsZWN0PT0ib2JqZWN0IiYmdHlwZW9mIFJlZmxlY3QuZGVjb3JhdGU9PSJmdW5jdGlvbiIpYT1SZWZsZWN0LmRlY29yYXRlKHQsZSxuLHIpO2Vsc2UgZm9yKHZhciBzPXQubGVuZ3RoLTE7cz49MDtzLS0pKG89dFtzXSkmJihhPShpPDM/byhhKTppPjM/byhlLG4sYSk6byhlLG4pKXx8YSk7cmV0dXJuIGk+MyYmYSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsbixhKSxhfTtsZXQgZ089Y2xhc3MgZXh0ZW5kcyBoT3tjaGFuZ2VEYXRhKGUpe2NvbnN0IG49dGhpcy5nZXRSb290KCk7aWYobilyZXR1cm4gdGhpcy5hdHRyKCJkYXRhIixlKSxuPT1udWxsP3ZvaWQgMDpuLnJlbmRlcigpfWdldE1hcmsoKXt2YXIgZTtjb25zdCBuPShlPXRoaXMuZ2V0Um9vdCgpKT09PW51bGx8fGU9PT12b2lkIDA/dm9pZCAwOmUuZ2V0VmlldygpO2lmKCFuKXJldHVybjtjb25zdHttYXJrU3RhdGU6cn09bixpPUFycmF5LmZyb20oci5rZXlzKCkpLmZpbmQoYT0+YS5rZXk9PT10aGlzLmF0dHIoImtleSIpKTtyZXR1cm4gci5nZXQoaSl9Z2V0U2NhbGUoKXt2YXIgZTtjb25zdCBuPShlPXRoaXMuZ2V0Um9vdCgpKT09PW51bGx8fGU9PT12b2lkIDA/dm9pZCAwOmUuZ2V0VmlldygpO2lmKG4pcmV0dXJuIG49PW51bGw/dm9pZCAwOm4uc2NhbGV9Z2V0U2NhbGVCeUNoYW5uZWwoZSl7dmFyIG4scjtjb25zdCBpPShuPXRoaXMuZ2V0Um9vdCgpKT09PW51bGx8fG49PT12b2lkIDA/dm9pZCAwOm4uZ2V0VmlldygpO2lmKGkpcmV0dXJuKHI9aT09bnVsbD92b2lkIDA6aS5zY2FsZSk9PT1udWxsfHxyPT09dm9pZCAwP3ZvaWQgMDpyW2VdfWdldEdyb3VwKCl7Y29uc3QgZT10aGlzLmF0dHIoImtleSIpO3JldHVybiBlP3RoaXMuZ2V0Um9vdCgpLmdldENvbnRleHQoKS5jYW52YXMuZ2V0Um9vdCgpLmdldEVsZW1lbnRCeUlkKGUpOnZvaWQgMH19O2dPPUVZKFtRbSh3WSldLGdPKTt2YXIgTVk9ZnVuY3Rpb24odCxlLG4scil7dmFyIGk9YXJndW1lbnRzLmxlbmd0aCxhPWk8Mz9lOnI9PT1udWxsP3I9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLG4pOnIsbztpZih0eXBlb2YgUmVmbGVjdD09Im9iamVjdCImJnR5cGVvZiBSZWZsZWN0LmRlY29yYXRlPT0iZnVuY3Rpb24iKWE9UmVmbGVjdC5kZWNvcmF0ZSh0LGUsbixyKTtlbHNlIGZvcih2YXIgcz10Lmxlbmd0aC0xO3M+PTA7cy0tKShvPXRbc10pJiYoYT0oaTwzP28oYSk6aT4zP28oZSxuLGEpOm8oZSxuKSl8fGEpO3JldHVybiBpPjMmJmEmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG4sYSksYX0sa1k9ZnVuY3Rpb24odCxlKXt2YXIgbj17fTtmb3IodmFyIHIgaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKSYmZS5pbmRleE9mKHIpPDAmJihuW3JdPXRbcl0pO2lmKHQhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgaT0wLHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTtpPHIubGVuZ3RoO2krKyllLmluZGV4T2YocltpXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHQscltpXSkmJihuW3JbaV1dPXRbcltpXV0pO3JldHVybiBufTtjb25zdCBBWT0iRzJfQ0hBUlRfS0VZIjtjbGFzcyBUWSBleHRlbmRzIEpte2NvbnN0cnVjdG9yKGUpe2NvbnN0e2NvbnRhaW5lcjpuLGNhbnZhczpyLHJlbmRlcmVyOmkscGx1Z2luczphLGxpYjpvLGNyZWF0ZUNhbnZhczpzfT1lLGM9a1koZSxbImNvbnRhaW5lciIsImNhbnZhcyIsInJlbmRlcmVyIiwicGx1Z2lucyIsImxpYiIsImNyZWF0ZUNhbnZhcyJdKTtzdXBlcihjLCJ2aWV3IiksdGhpcy5faGFzQmluZEF1dG9GaXQ9ITEsdGhpcy5fcmVuZGVyaW5nPSExLHRoaXMuX3RyYWlsaW5nPSExLHRoaXMuX3RyYWlsaW5nUmVzb2x2ZT1udWxsLHRoaXMuX3RyYWlsaW5nUmVqZWN0PW51bGwsdGhpcy5fcHJldmlvdXNEZWZpbmVkVHlwZT1udWxsLHRoaXMuX29uUmVzaXplPV9BKCgpPT57dGhpcy5mb3JjZUZpdCgpfSwzMDApLHRoaXMuX3JlbmRlcmVyPWl8fG5ldyBtQSx0aGlzLl9wbHVnaW5zPWF8fFtdLHRoaXMuX2NvbnRhaW5lcj1yWShuKSx0aGlzLl9lbWl0dGVyPW5ldyBUcyx0aGlzLl9jb250ZXh0PXtsaWJyYXJ5Ok9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxvKSxhQSksZW1pdHRlcjp0aGlzLl9lbWl0dGVyLGNhbnZhczpyLGNyZWF0ZUNhbnZhczpzfSx0aGlzLl9jcmVhdGUoKX1yZW5kZXIoKXtpZih0aGlzLl9yZW5kZXJpbmcpcmV0dXJuIHRoaXMuX2FkZFRvVHJhaWxpbmcoKTt0aGlzLl9jb250ZXh0LmNhbnZhc3x8dGhpcy5fY3JlYXRlQ2FudmFzKCksdGhpcy5fYmluZEF1dG9GaXQoKSx0aGlzLl9yZW5kZXJpbmc9ITA7Y29uc3QgZT1uZXcgUHJvbWlzZSgoYSxvKT0+SloodGhpcy5fY29tcHV0ZWRPcHRpb25zKCksdGhpcy5fY29udGV4dCx0aGlzLl9jcmVhdGVSZXNvbHZlKGEpLHRoaXMuX2NyZWF0ZVJlamVjdChvKSkpLFtuLHIsaV09dlkoKTtyZXR1cm4gZS50aGVuKHIpLmNhdGNoKGkpLnRoZW4oKCk9PnRoaXMuX3JlbmRlclRyYWlsaW5nKCkpLG59b3B0aW9ucyhlKXtpZihhcmd1bWVudHMubGVuZ3RoPT09MClyZXR1cm4gb1kodGhpcyk7Y29uc3R7dHlwZTpufT1lO3JldHVybiBuJiYodGhpcy5fcHJldmlvdXNEZWZpbmVkVHlwZT1uKSxwWSh0aGlzLGUsdGhpcy5fcHJldmlvdXNEZWZpbmVkVHlwZSx0aGlzLl9tYXJrcyx0aGlzLl9jb21wb3NpdGlvbnMpLHRoaXN9Z2V0Q29udGFpbmVyKCl7cmV0dXJuIHRoaXMuX2NvbnRhaW5lcn1nZXRDb250ZXh0KCl7cmV0dXJuIHRoaXMuX2NvbnRleHR9b24oZSxuLHIpe3JldHVybiB0aGlzLl9lbWl0dGVyLm9uKGUsbixyKSx0aGlzfW9uY2UoZSxuKXtyZXR1cm4gdGhpcy5fZW1pdHRlci5vbmNlKGUsbiksdGhpc31lbWl0KGUsLi4ubil7cmV0dXJuIHRoaXMuX2VtaXR0ZXIuZW1pdChlLC4uLm4pLHRoaXN9b2ZmKGUsbil7cmV0dXJuIHRoaXMuX2VtaXR0ZXIub2ZmKGUsbiksdGhpc31jbGVhcigpe2NvbnN0IGU9dGhpcy5vcHRpb25zKCk7dGhpcy5lbWl0KEluLkJFRk9SRV9DTEVBUiksdGhpcy5fcmVzZXQoKSxBQyhlLHRoaXMuX2NvbnRleHQsITEpLHRoaXMuZW1pdChJbi5BRlRFUl9DTEVBUil9ZGVzdHJveSgpe2NvbnN0IGU9dGhpcy5vcHRpb25zKCk7dGhpcy5lbWl0KEluLkJFRk9SRV9ERVNUUk9ZKSx0aGlzLl91bmJpbmRBdXRvRml0KCksdGhpcy5fcmVzZXQoKSxBQyhlLHRoaXMuX2NvbnRleHQsITApLHRoaXMuX2NvbnRhaW5lcltQQ10mJmlZKHRoaXMuX2NvbnRhaW5lciksdGhpcy5lbWl0KEluLkFGVEVSX0RFU1RST1kpfWZvcmNlRml0KCl7dGhpcy5vcHRpb25zLmF1dG9GaXQ9ITA7Y29uc3R7d2lkdGg6ZSxoZWlnaHQ6bn09dk8odGhpcy5vcHRpb25zKCksdGhpcy5fY29udGFpbmVyKTtpZihlPT09dGhpcy5fd2lkdGgmJm49PT10aGlzLl9oZWlnaHQpcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzKTt0aGlzLmVtaXQoSW4uQkVGT1JFX0NIQU5HRV9TSVpFKTtjb25zdCByPXRoaXMucmVuZGVyKCk7cmV0dXJuIHIudGhlbigoKT0+e3RoaXMuZW1pdChJbi5BRlRFUl9DSEFOR0VfU0laRSl9KSxyfWNoYW5nZVNpemUoZSxuKXtpZihlPT09dGhpcy5fd2lkdGgmJm49PT10aGlzLl9oZWlnaHQpcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzKTt0aGlzLmVtaXQoSW4uQkVGT1JFX0NIQU5HRV9TSVpFKSx0aGlzLmF0dHIoIndpZHRoIixlKSx0aGlzLmF0dHIoImhlaWdodCIsbik7Y29uc3Qgcj10aGlzLnJlbmRlcigpO3JldHVybiByLnRoZW4oKCk9Pnt0aGlzLmVtaXQoSW4uQUZURVJfQ0hBTkdFX1NJWkUpfSkscn1fY3JlYXRlKCl7Y29uc3R7bGlicmFyeTplfT10aGlzLl9jb250ZXh0LG49YT0+YS5zdGFydHNXaXRoKCJtYXJrLiIpfHxhPT09ImNvbXBvbmVudC5heGlzWCJ8fGE9PT0iY29tcG9uZW50LmF4aXNZInx8YT09PSJjb21wb25lbnQubGVnZW5kcyIscj1bIm1hcmsubWFyayIsLi4uT2JqZWN0LmtleXMoZSkuZmlsdGVyKG4pXTt0aGlzLl9tYXJrcz17fTtmb3IoY29uc3QgYSBvZiByKXtjb25zdCBvPWEuc3BsaXQoIi4iKS5wb3AoKTtjbGFzcyBzIGV4dGVuZHMgZ097Y29uc3RydWN0b3IoKXtzdXBlcih7fSxvKX19dGhpcy5fbWFya3Nbb109cyx0aGlzW29dPWZ1bmN0aW9uKGMpe2NvbnN0IGw9dGhpcy5hcHBlbmQocyk7cmV0dXJuIG89PT0ibWFyayImJihsLnR5cGU9YyksbH19Y29uc3QgaT1bImNvbXBvc2l0aW9uLnZpZXciLC4uLk9iamVjdC5rZXlzKGUpLmZpbHRlcihhPT5hLnN0YXJ0c1dpdGgoImNvbXBvc2l0aW9uLiIpJiZhIT09ImNvbXBvc2l0aW9uLm1hcmsiKV07dGhpcy5fY29tcG9zaXRpb25zPU9iamVjdC5mcm9tRW50cmllcyhpLm1hcChhPT57Y29uc3Qgbz1hLnNwbGl0KCIuIikucG9wKCk7bGV0IHM9Y2xhc3MgZXh0ZW5kcyBKbXtjb25zdHJ1Y3Rvcigpe3N1cGVyKHt9LG8pfX07cmV0dXJuIHM9TVkoW1FtKElDKHRoaXMuX21hcmtzKSldLHMpLFtvLHNdfSkpO2Zvcihjb25zdCBhIG9mIE9iamVjdC52YWx1ZXModGhpcy5fY29tcG9zaXRpb25zKSlRbShJQyh0aGlzLl9jb21wb3NpdGlvbnMpKShhKTtmb3IoY29uc3QgYSBvZiBpKXtjb25zdCBvPWEuc3BsaXQoIi4iKS5wb3AoKTt0aGlzW29dPWZ1bmN0aW9uKCl7Y29uc3Qgcz10aGlzLl9jb21wb3NpdGlvbnNbb107cmV0dXJuIHRoaXMudHlwZT1udWxsLHRoaXMuYXBwZW5kKHMpfX19X3Jlc2V0KCl7Y29uc3QgZT1bInRoZW1lIiwidHlwZSIsIndpZHRoIiwiaGVpZ2h0IiwiYXV0b0ZpdCJdO3RoaXMudHlwZT0idmlldyIsdGhpcy52YWx1ZT1PYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXModGhpcy52YWx1ZSkuZmlsdGVyKChbbl0pPT5uLnN0YXJ0c1dpdGgoIm1hcmdpbiIpfHxuLnN0YXJ0c1dpdGgoInBhZGRpbmciKXx8bi5zdGFydHNXaXRoKCJpbnNldCIpfHxlLmluY2x1ZGVzKG4pKSksdGhpcy5jaGlsZHJlbj1bXX1fcmVuZGVyVHJhaWxpbmcoKXt0aGlzLl90cmFpbGluZyYmKHRoaXMuX3RyYWlsaW5nPSExLHRoaXMucmVuZGVyKCkudGhlbigoKT0+e2NvbnN0IGU9dGhpcy5fdHJhaWxpbmdSZXNvbHZlLmJpbmQodGhpcyk7dGhpcy5fdHJhaWxpbmdSZXNvbHZlPW51bGwsZSh0aGlzKX0pLmNhdGNoKGU9Pntjb25zdCBuPXRoaXMuX3RyYWlsaW5nUmVqZWN0LmJpbmQodGhpcyk7dGhpcy5fdHJhaWxpbmdSZWplY3Q9bnVsbCxuKGUpfSkpfV9jcmVhdGVSZXNvbHZlKGUpe3JldHVybigpPT57dGhpcy5fcmVuZGVyaW5nPSExLGUodGhpcyl9fV9jcmVhdGVSZWplY3QoZSl7cmV0dXJuIG49Pnt0aGlzLl9yZW5kZXJpbmc9ITEsZShuKX19X2NvbXB1dGVkT3B0aW9ucygpe2NvbnN0IGU9dGhpcy5vcHRpb25zKCkse2tleTpuPUFZfT1lLHt3aWR0aDpyLGhlaWdodDppLGRlcHRoOmF9PXZPKGUsdGhpcy5fY29udGFpbmVyKTtyZXR1cm4gdGhpcy5fd2lkdGg9cix0aGlzLl9oZWlnaHQ9aSx0aGlzLl9rZXk9bixPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe2tleTp0aGlzLl9rZXl9LGUpLHt3aWR0aDpyLGhlaWdodDppLGRlcHRoOmF9KX1fY3JlYXRlQ2FudmFzKCl7Y29uc3R7d2lkdGg6ZSxoZWlnaHQ6bn09dk8odGhpcy5vcHRpb25zKCksdGhpcy5fY29udGFpbmVyKTt0aGlzLl9wbHVnaW5zLnB1c2gobmV3IHhBKSx0aGlzLl9wbHVnaW5zLmZvckVhY2gocj0+dGhpcy5fcmVuZGVyZXIucmVnaXN0ZXJQbHVnaW4ocikpLHRoaXMuX2NvbnRleHQuY2FudmFzPW5ldyB3ayh7Y29udGFpbmVyOnRoaXMuX2NvbnRhaW5lcix3aWR0aDplLGhlaWdodDpuLHJlbmRlcmVyOnRoaXMuX3JlbmRlcmVyfSl9X2FkZFRvVHJhaWxpbmcoKXt2YXIgZTtyZXR1cm4oZT10aGlzLl90cmFpbGluZ1Jlc29sdmUpPT09bnVsbHx8ZT09PXZvaWQgMHx8ZS5jYWxsKHRoaXMsdGhpcyksdGhpcy5fdHJhaWxpbmc9ITAsbmV3IFByb21pc2UoKHIsaSk9Pnt0aGlzLl90cmFpbGluZ1Jlc29sdmU9cix0aGlzLl90cmFpbGluZ1JlamVjdD1pfSl9X2JpbmRBdXRvRml0KCl7Y29uc3QgZT10aGlzLm9wdGlvbnMoKSx7YXV0b0ZpdDpufT1lO2lmKHRoaXMuX2hhc0JpbmRBdXRvRml0KXtufHx0aGlzLl91bmJpbmRBdXRvRml0KCk7cmV0dXJufW4mJih0aGlzLl9oYXNCaW5kQXV0b0ZpdD0hMCx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLl9vblJlc2l6ZSkpfV91bmJpbmRBdXRvRml0KCl7dGhpcy5faGFzQmluZEF1dG9GaXQmJih0aGlzLl9oYXNCaW5kQXV0b0ZpdD0hMSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLl9vblJlc2l6ZSkpfX1mdW5jdGlvbiBQWSh0LGUpe2NsYXNzIG4gZXh0ZW5kcyB0e2NvbnN0cnVjdG9yKGkpe3N1cGVyKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxpKSx7bGliOmV9KSl9fXJldHVybiBufXZhciBDWT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LHlPPWZ1bmN0aW9uKHQsZSl7aWYodD09PW51bGx8fCFuYyh0KSlyZXR1cm57fTt2YXIgbj17fTtyZXR1cm4gTXcoZSxmdW5jdGlvbihyKXtDWS5jYWxsKHQscikmJihuW3JdPXRbcl0pfSksbn07ZnVuY3Rpb24gakModCl7dC54MD1NYXRoLnJvdW5kKHQueDApLHQueTA9TWF0aC5yb3VuZCh0LnkwKSx0LngxPU1hdGgucm91bmQodC54MSksdC55MT1NYXRoLnJvdW5kKHQueTEpfWZ1bmN0aW9uIGUwKHQsZSxuLHIsaSl7Zm9yKHZhciBhPXQuY2hpbGRyZW4sbyxzPS0xLGM9YS5sZW5ndGgsbD10LnZhbHVlJiYoci1lKS90LnZhbHVlOysrczxjOylvPWFbc10sby55MD1uLG8ueTE9aSxvLngwPWUsby54MT1lKz1vLnZhbHVlKmx9ZnVuY3Rpb24gTFkoKXt2YXIgdD0xLGU9MSxuPTAscj0hMTtmdW5jdGlvbiBpKG8pe3ZhciBzPW8uaGVpZ2h0KzE7cmV0dXJuIG8ueDA9by55MD1uLG8ueDE9dCxvLnkxPWUvcyxvLmVhY2hCZWZvcmUoYShlLHMpKSxyJiZvLmVhY2hCZWZvcmUoakMpLG99ZnVuY3Rpb24gYShvLHMpe3JldHVybiBmdW5jdGlvbihjKXtjLmNoaWxkcmVuJiZlMChjLGMueDAsbyooYy5kZXB0aCsxKS9zLGMueDEsbyooYy5kZXB0aCsyKS9zKTt2YXIgbD1jLngwLHU9Yy55MCxmPWMueDEtbixkPWMueTEtbjtmPGwmJihsPWY9KGwrZikvMiksZDx1JiYodT1kPSh1K2QpLzIpLGMueDA9bCxjLnkwPXUsYy54MT1mLGMueTE9ZH19cmV0dXJuIGkucm91bmQ9ZnVuY3Rpb24obyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9ISFvLGkpOnJ9LGkuc2l6ZT1mdW5jdGlvbihvKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0rb1swXSxlPStvWzFdLGkpOlt0LGVdfSxpLnBhZGRpbmc9ZnVuY3Rpb24obyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49K28saSk6bn0saX12YXIgUlk9cHQoOTc4Myk7ZnVuY3Rpb24gTlkodCl7dmFyIGU9MCxuPXQuY2hpbGRyZW4scj1uJiZuLmxlbmd0aDtpZighcillPTE7ZWxzZSBmb3IoOy0tcj49MDspZSs9bltyXS52YWx1ZTt0LnZhbHVlPWV9ZnVuY3Rpb24gSVkoKXtyZXR1cm4gdGhpcy5lYWNoQWZ0ZXIoTlkpfXZhciBtTz1wdCg2NDU5OSk7ZnVuY3Rpb24gRFkodCxlKXt2YXIgbj0tMSxyPW1PKHRoaXMpLGk7dHJ5e2ZvcihyLnMoKTshKGk9ci5uKCkpLmRvbmU7KXt2YXIgYT1pLnZhbHVlO3QuY2FsbChlLGEsKytuLHRoaXMpfX1jYXRjaChvKXtyLmUobyl9ZmluYWxseXtyLmYoKX1yZXR1cm4gdGhpc31mdW5jdGlvbiBqWSh0LGUpe2Zvcih2YXIgbj10aGlzLHI9W25dLGksYSxvPS0xO249ci5wb3AoKTspaWYodC5jYWxsKGUsbiwrK28sdGhpcyksaT1uLmNoaWxkcmVuKWZvcihhPWkubGVuZ3RoLTE7YT49MDstLWEpci5wdXNoKGlbYV0pO3JldHVybiB0aGlzfWZ1bmN0aW9uIEZZKHQsZSl7Zm9yKHZhciBuPXRoaXMscj1bbl0saT1bXSxhLG8scyxjPS0xO249ci5wb3AoKTspaWYoaS5wdXNoKG4pLGE9bi5jaGlsZHJlbilmb3Iobz0wLHM9YS5sZW5ndGg7bzxzOysrbylyLnB1c2goYVtvXSk7Zm9yKDtuPWkucG9wKCk7KXQuY2FsbChlLG4sKytjLHRoaXMpO3JldHVybiB0aGlzfWZ1bmN0aW9uIEJZKHQsZSl7dmFyIG49LTEscj1tTyh0aGlzKSxpO3RyeXtmb3Ioci5zKCk7IShpPXIubigpKS5kb25lOyl7dmFyIGE9aS52YWx1ZTtpZih0LmNhbGwoZSxhLCsrbix0aGlzKSlyZXR1cm4gYX19Y2F0Y2gobyl7ci5lKG8pfWZpbmFsbHl7ci5mKCl9fWZ1bmN0aW9uIHpZKHQpe3JldHVybiB0aGlzLmVhY2hBZnRlcihmdW5jdGlvbihlKXtmb3IodmFyIG49K3QoZS5kYXRhKXx8MCxyPWUuY2hpbGRyZW4saT1yJiZyLmxlbmd0aDstLWk+PTA7KW4rPXJbaV0udmFsdWU7ZS52YWx1ZT1ufSl9ZnVuY3Rpb24gV1kodCl7cmV0dXJuIHRoaXMuZWFjaEJlZm9yZShmdW5jdGlvbihlKXtlLmNoaWxkcmVuJiZlLmNoaWxkcmVuLnNvcnQodCl9KX1mdW5jdGlvbiBHWSh0KXtmb3IodmFyIGU9dGhpcyxuPSRZKGUsdCkscj1bZV07ZSE9PW47KWU9ZS5wYXJlbnQsci5wdXNoKGUpO2Zvcih2YXIgaT1yLmxlbmd0aDt0IT09bjspci5zcGxpY2UoaSwwLHQpLHQ9dC5wYXJlbnQ7cmV0dXJuIHJ9ZnVuY3Rpb24gJFkodCxlKXtpZih0PT09ZSlyZXR1cm4gdDt2YXIgbj10LmFuY2VzdG9ycygpLHI9ZS5hbmNlc3RvcnMoKSxpPW51bGw7Zm9yKHQ9bi5wb3AoKSxlPXIucG9wKCk7dD09PWU7KWk9dCx0PW4ucG9wKCksZT1yLnBvcCgpO3JldHVybiBpfWZ1bmN0aW9uIFpZKCl7Zm9yKHZhciB0PXRoaXMsZT1bdF07dD10LnBhcmVudDspZS5wdXNoKHQpO3JldHVybiBlfWZ1bmN0aW9uIFlZKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcyl9ZnVuY3Rpb24gSFkoKXt2YXIgdD1bXTtyZXR1cm4gdGhpcy5lYWNoQmVmb3JlKGZ1bmN0aW9uKGUpe2UuY2hpbGRyZW58fHQucHVzaChlKX0pLHR9ZnVuY3Rpb24gVlkoKXt2YXIgdD10aGlzLGU9W107cmV0dXJuIHQuZWFjaChmdW5jdGlvbihuKXtuIT09dCYmZS5wdXNoKHtzb3VyY2U6bi5wYXJlbnQsdGFyZ2V0Om59KX0pLGV9dmFyIEZDPXB0KDE1MDA5KSxYWT1GQygpLm1hcmsoQkMpO2Z1bmN0aW9uIEJDKCl7dmFyIHQsZSxuLHIsaSxhO3JldHVybiBGQygpLndyYXAoZnVuY3Rpb24ocyl7Zm9yKDs7KXN3aXRjaChzLnByZXY9cy5uZXh0KXtjYXNlIDA6dD10aGlzLG49W3RdO2Nhc2UgMTplPW4ucmV2ZXJzZSgpLG49W107Y2FzZSAyOmlmKCEodD1lLnBvcCgpKSl7cy5uZXh0PTg7YnJlYWt9cmV0dXJuIHMubmV4dD01LHQ7Y2FzZSA1OmlmKHI9dC5jaGlsZHJlbilmb3IoaT0wLGE9ci5sZW5ndGg7aTxhOysraSluLnB1c2gocltpXSk7cy5uZXh0PTI7YnJlYWs7Y2FzZSA4OmlmKG4ubGVuZ3RoKXtzLm5leHQ9MTticmVha31jYXNlIDk6Y2FzZSJlbmQiOnJldHVybiBzLnN0b3AoKX19LFhZLHRoaXMpfWZ1bmN0aW9uIHlkKHQsZSl7dCBpbnN0YW5jZW9mIE1hcD8odD1bdm9pZCAwLHRdLGU9PT12b2lkIDAmJihlPUtZKSk6ZT09PXZvaWQgMCYmKGU9cVkpO2Zvcih2YXIgbj1uZXcgbWQodCkscixpPVtuXSxhLG8scyxjO3I9aS5wb3AoKTspaWYoKG89ZShyLmRhdGEpKSYmKGM9KG89QXJyYXkuZnJvbShvKSkubGVuZ3RoKSlmb3Ioci5jaGlsZHJlbj1vLHM9Yy0xO3M+PTA7LS1zKWkucHVzaChhPW9bc109bmV3IG1kKG9bc10pKSxhLnBhcmVudD1yLGEuZGVwdGg9ci5kZXB0aCsxO3JldHVybiBuLmVhY2hCZWZvcmUoekMpfWZ1bmN0aW9uIFVZKCl7cmV0dXJuIHlkKHRoaXMpLmVhY2hCZWZvcmUoUVkpfWZ1bmN0aW9uIHFZKHQpe3JldHVybiB0LmNoaWxkcmVufWZ1bmN0aW9uIEtZKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpP3RbMV06bnVsbH1mdW5jdGlvbiBRWSh0KXt0LmRhdGEudmFsdWUhPT12b2lkIDAmJih0LnZhbHVlPXQuZGF0YS52YWx1ZSksdC5kYXRhPXQuZGF0YS5kYXRhfWZ1bmN0aW9uIHpDKHQpe3ZhciBlPTA7ZG8gdC5oZWlnaHQ9ZTt3aGlsZSgodD10LnBhcmVudCkmJnQuaGVpZ2h0PCsrZSl9ZnVuY3Rpb24gbWQodCl7dGhpcy5kYXRhPXQsdGhpcy5kZXB0aD10aGlzLmhlaWdodD0wLHRoaXMucGFyZW50PW51bGx9bWQucHJvdG90eXBlPXlkLnByb3RvdHlwZT1SWSh7Y29uc3RydWN0b3I6bWQsY291bnQ6SVksZWFjaDpEWSxlYWNoQWZ0ZXI6RlksZWFjaEJlZm9yZTpqWSxmaW5kOkJZLHN1bTp6WSxzb3J0OldZLHBhdGg6R1ksYW5jZXN0b3JzOlpZLGRlc2NlbmRhbnRzOllZLGxlYXZlczpIWSxsaW5rczpWWSxjb3B5OlVZfSxTeW1ib2wuaXRlcmF0b3IsQkMpO2Z1bmN0aW9uIGJPKHQsZSl7Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmbiE9PSJjb25zdHJ1Y3RvciImJmVbbl0hPT12b2lkIDAmJih0W25dPWVbbl0pfWZ1bmN0aW9uIEpZKHQsZSxuLHIpe3JldHVybiBlJiZiTyh0LGUpLG4mJmJPKHQsbiksciYmYk8odCxyKSx0fWNvbnN0IHRIPXtmaWVsZDoidmFsdWUiLHNpemU6WzEsMV0scm91bmQ6ITEscGFkZGluZzowLHNvcnQ6KHQsZSk9PmUudmFsdWUtdC52YWx1ZSxhczpbIngiLCJ5Il0saWdub3JlUGFyZW50VmFsdWU6ITB9LGVIPSJub2RlSW5kZXgiLG4wPSJjaGlsZE5vZGVDb3VudCIsbkg9Im5vZGVBbmNlc3RvciIseE89IkludmFsaWQgZmllbGQ6IGl0IG11c3QgYmUgYSBzdHJpbmchIjtmdW5jdGlvbiBySCh0LGUpe2NvbnN0e2ZpZWxkOm4sZmllbGRzOnJ9PXQ7aWYoaXIobikpcmV0dXJuIG47aWYoTnIobikpcmV0dXJuIGNvbnNvbGUud2Fybih4TyksblswXTtpZihjb25zb2xlLndhcm4oYCR7eE99IHdpbGwgdHJ5IHRvIGdldCBmaWVsZHMgaW5zdGVhZC5gKSxpcihyKSlyZXR1cm4gcjtpZihOcihyKSYmci5sZW5ndGgpcmV0dXJuIHJbMF07aWYoZSlyZXR1cm4gZTt0aHJvdyBuZXcgVHlwZUVycm9yKHhPKX1mdW5jdGlvbiBpSCh0KXtjb25zdCBlPVtdO2lmKHQmJnQuZWFjaCl7bGV0IG4scjt0LmVhY2goaT0+e3ZhciBhLG87aS5wYXJlbnQhPT1uPyhuPWkucGFyZW50LHI9MCk6cis9MTtjb25zdCBzPXpQKCgoKGE9aS5hbmNlc3RvcnMpPT09bnVsbHx8YT09PXZvaWQgMD92b2lkIDA6YS5jYWxsKGkpKXx8W10pLm1hcChjPT5lLmZpbmQobD0+bC5uYW1lPT09Yy5uYW1lKXx8YyksKHtkZXB0aDpjfSk9PmM+MCYmYzxpLmRlcHRoKTtpW25IXT1zLGlbbjBdPSgobz1pLmNoaWxkcmVuKT09PW51bGx8fG89PT12b2lkIDA/dm9pZCAwOm8ubGVuZ3RoKXx8MCxpW2VIXT1yLGUucHVzaChpKX0pfWVsc2UgdCYmdC5lYWNoTm9kZSYmdC5lYWNoTm9kZShuPT57ZS5wdXNoKG4pfSk7cmV0dXJuIGV9ZnVuY3Rpb24gYUgodCxlKXtlPUpZKHt9LHRILGUpO2NvbnN0IG49ZS5hcztpZighTnIobil8fG4ubGVuZ3RoIT09Mil0aHJvdyBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIGFzOiBpdCBtdXN0IGJlIGFuIGFycmF5IHdpdGggMiBzdHJpbmdzIChlLmcuIFsgIngiLCAieSIgXSkhJyk7bGV0IHI7dHJ5e3I9ckgoZSl9Y2F0Y2goYyl7Y29uc29sZS53YXJuKGMpfWNvbnN0IGE9KGM9PkxZKCkuc2l6ZShlLnNpemUpLnJvdW5kKGUucm91bmQpLnBhZGRpbmcoZS5wYWRkaW5nKSh5ZChjKS5zdW0obD0+anAobC5jaGlsZHJlbik/ZS5pZ25vcmVQYXJlbnRWYWx1ZT8wOmxbcl0tQlQobC5jaGlsZHJlbiwodSxmKT0+dStmW3JdLDApOmxbcl0pLnNvcnQoZS5zb3J0KSkpKHQpLG89blswXSxzPW5bMV07cmV0dXJuIGEuZWFjaChjPT57dmFyIGwsdTtjW29dPVtjLngwLGMueDEsYy54MSxjLngwXSxjW3NdPVtjLnkxLGMueTEsYy55MCxjLnkwXSxjLm5hbWU9Yy5uYW1lfHwoKGw9Yy5kYXRhKT09PW51bGx8fGw9PT12b2lkIDA/dm9pZCAwOmwubmFtZSl8fCgodT1jLmRhdGEpPT09bnVsbHx8dT09PXZvaWQgMD92b2lkIDA6dS5sYWJlbCksYy5kYXRhLm5hbWU9Yy5uYW1lLFsieDAiLCJ4MSIsInkwIiwieTEiXS5mb3JFYWNoKGY9PntuLmluZGV4T2YoZik9PT0tMSYmZGVsZXRlIGNbZl19KX0pLGlIKGEpfXZhciBvSD1mdW5jdGlvbih0LGUpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiZlLmluZGV4T2Yocik8MCYmKG5bcl09dFtyXSk7aWYodCE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBpPTAscj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2k8ci5sZW5ndGg7aSsrKWUuaW5kZXhPZihyW2ldKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodCxyW2ldKSYmKG5bcltpXV09dFtyW2ldXSk7cmV0dXJuIG59O2NvbnN0IGJkPSJzdW5idXJzdCIsX089Im1hcmtUeXBlIixNb3Q9InZhbHVlIixXQz0icGF0aCIsdDE9ImFuY2VzdG9yLW5vZGUiO2Z1bmN0aW9uIHNIKHQpe2NvbnN0e2RhdGE6ZSxlbmNvZGU6bn09dCx7Y29sb3I6cix2YWx1ZTppfT1uLG89YUgoZSx7ZmllbGQ6aSx0eXBlOiJoaWVyYXJjaHkucGFydGl0aW9uIixhczpbIngiLCJ5Il19KSxzPVtdO3JldHVybiBvLmZvckVhY2goYz0+e3ZhciBsLHUsZixkO2lmKGMuZGVwdGg9PT0wKXJldHVybiBudWxsO2xldCBoPWMuZGF0YS5uYW1lO2NvbnN0IHY9W2hdO2xldCBnPU9iamVjdC5hc3NpZ24oe30sYyk7Zm9yKDtnLmRlcHRoPjE7KWg9YCR7KGw9Zy5wYXJlbnQuZGF0YSk9PT1udWxsfHxsPT09dm9pZCAwP3ZvaWQgMDpsLm5hbWV9IC8gJHtofWAsdi51bnNoaWZ0KCh1PWcucGFyZW50LmRhdGEpPT09bnVsbHx8dT09PXZvaWQgMD92b2lkIDA6dS5uYW1lKSxnPWcucGFyZW50O2NvbnN0IHk9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30seU8oYy5kYXRhLFtpXSkpLHtbV0NdOmgsW3QxXTpnLmRhdGEubmFtZX0pLGMpO3ImJnIhPT10MSYmKHlbcl09Yy5kYXRhW3JdfHwoKGQ9KGY9Yy5wYXJlbnQpPT09bnVsbHx8Zj09PXZvaWQgMD92b2lkIDA6Zi5kYXRhKT09PW51bGx8fGQ9PT12b2lkIDA/dm9pZCAwOmRbcl0pKSxzLnB1c2goeSl9KSxzLm1hcChjPT57Y29uc3QgbD1jLnguc2xpY2UoMCwyKSx1PVtjLnlbMl0sYy55WzBdXTtyZXR1cm4gbFswXT09PWxbMV0mJih1WzBdPXVbMV09KGMueVsyXStjLnlbMF0pLzIpLE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxjKSx7eDpsLHk6dSxmaWxsT3BhY2l0eTpNYXRoLnBvdyguODUsYy5kZXB0aCl9KX0pfWNvbnN0IEdDPXtpZDpiZCxlbmNvZGU6e3g6IngiLHk6InkiLGtleTpXQyxjb2xvcjp0MSx2YWx1ZToidmFsdWUifSxheGlzOnt4OiExLHk6ITF9LHN0eWxlOntbX09dOmJkLHN0cm9rZToiI2ZmZiIsbGluZVdpZHRoOi41LGZpbGxPcGFjaXR5OiJmaWxsT3BhY2l0eSIsW24wXTpuMCxkZXB0aDoiZGVwdGgifSxzdGF0ZTp7YWN0aXZlOnt6SW5kZXg6MixzdHJva2U6IiMwMDAifSxpbmFjdGl2ZTp7ekluZGV4OjEsc3Ryb2tlOiIjZmZmIn19LGxlZ2VuZDohMSxpbnRlcmFjdGlvbjp7ZHJpbGxEb3duOiEwfSxjb29yZGluYXRlOnt0eXBlOiJwb2xhciIsaW5uZXJSYWRpdXM6LjJ9fSwkQz10PT57Y29uc3R7ZW5jb2RlOmUsZGF0YTpuPVtdLGxlZ2VuZDpyfT10LGk9b0godCxbImVuY29kZSIsImRhdGEiLCJsZWdlbmQiXSksYT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30saS5jb29yZGluYXRlKSx7aW5uZXJSYWRpdXM6TWF0aC5tYXgodm4oaSxbImNvb3JkaW5hdGUiLCJpbm5lclJhZGl1cyJdLC4yKSwxZS01KX0pLG89T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LEdDLmVuY29kZSksZSkse3ZhbHVlOnN9PW8sYz1zSCh7ZW5jb2RlOm8sZGF0YTpufSk7cmV0dXJuIGNvbnNvbGUubG9nKGMsInJlY3REYXRhIiksW210KHt9LEdDLE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7dHlwZToicmVjdCIsZGF0YTpjLGVuY29kZTpvLHRvb2x0aXA6e3RpdGxlOiJwYXRoIixpdGVtczpbbD0+KHtuYW1lOnMsdmFsdWU6bFtzXX0pXX19LGkpLHtjb29yZGluYXRlOmF9KSldfTskQy5wcm9wcz17fTt2YXIgY0g9T2JqZWN0LmtleXM/ZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5rZXlzKHQpfTpmdW5jdGlvbih0KXt2YXIgZT1bXTtyZXR1cm4gTXcodCxmdW5jdGlvbihuLHIpe1huKHQpJiZyPT09InByb3RvdHlwZSJ8fGUucHVzaChyKX0pLGV9LHdPPWNILGxIPWZ1bmN0aW9uKHQsZSxuLHIpe2Z1bmN0aW9uIGkoYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBuP2E6bmV3IG4oZnVuY3Rpb24obyl7byhhKX0pfXJldHVybiBuZXcobnx8KG49UHJvbWlzZSkpKGZ1bmN0aW9uKGEsbyl7ZnVuY3Rpb24gcyh1KXt0cnl7bChyLm5leHQodSkpfWNhdGNoKGYpe28oZil9fWZ1bmN0aW9uIGModSl7dHJ5e2woci50aHJvdyh1KSl9Y2F0Y2goZil7byhmKX19ZnVuY3Rpb24gbCh1KXt1LmRvbmU/YSh1LnZhbHVlKTppKHUudmFsdWUpLnRoZW4ocyxjKX1sKChyPXIuYXBwbHkodCxlfHxbXSkpLm5leHQoKSl9KX07Y29uc3QgdUg9dD0+dC5xdWVyeVNlbGVjdG9yQWxsKCIuZWxlbWVudCIpLmZpbHRlcihlPT52bihlLFsic3R5bGUiLF9PXSk9PT1iZCk7ZnVuY3Rpb24gZkgodCl7cmV0dXJuIE9lKHQpLnNlbGVjdChgLiR7YmF9YCkubm9kZSgpfWNvbnN0IGRIPXtyb290VGV4dDoicm9vdCIsc3R5bGU6e2ZpbGw6InJnYmEoMCwgMCwgMCwgMC44NSkiLGZvbnRTaXplOjEyLHk6MX0sYWN0aXZlOntmaWxsOiJyZ2JhKDAsIDAsIDAsIDAuNSkifX07ZnVuY3Rpb24gaEgodD17fSl7Y29uc3R7YnJlYWRDcnVtYjplPXt9LGlzRml4ZWRDb2xvcjpuPSExfT10LHI9bXQoe30sZEgsZSk7cmV0dXJuIGk9Pntjb25zdHt1cGRhdGU6YSxzZXRTdGF0ZTpvLGNvbnRhaW5lcjpzLHZpZXc6YyxvcHRpb25zOmx9PWksdT1zLm93bmVyRG9jdW1lbnQsZj1mSChzKSxkPWwubWFya3MuZmluZCgoe2lkOl99KT0+Xz09PWJkKSx7c3RhdGU6aH09ZCx2PXUuY3JlYXRlRWxlbWVudCgiZyIpO2YuYXBwZW5kQ2hpbGQodik7Y29uc3QgZz0oXyx3KT0+bEgodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2lmKHYucmVtb3ZlQ2hpbGRyZW4oKSxfKXtjb25zdCBPPXUuY3JlYXRlRWxlbWVudCgidGV4dCIse3N0eWxlOk9iamVjdC5hc3NpZ24oe3g6MCx0ZXh0OnIucm9vdFRleHQsZGVwdGg6MH0sci5zdHlsZSl9KTt2LmFwcGVuZENoaWxkKE8pO2xldCBFPSIiO2NvbnN0IE09Xz09bnVsbD92b2lkIDA6Xy5zcGxpdCgiIC8gIik7bGV0IGs9ci5zdHlsZS55LEE9di5nZXRCQm94KCkud2lkdGg7Y29uc3QgUD1mLmdldEJCb3goKS53aWR0aCxDPU0ubWFwKChOLEwpPT57Y29uc3QgUj11LmNyZWF0ZUVsZW1lbnQoInRleHQiLHtzdHlsZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe3g6QSx0ZXh0OiIgLyAifSxyLnN0eWxlKSx7eTprfSl9KTt2LmFwcGVuZENoaWxkKFIpLEErPVIuZ2V0QkJveCgpLndpZHRoLEU9YCR7RX0ke059IC8gYDtjb25zdCBJPXUuY3JlYXRlRWxlbWVudCgidGV4dCIse25hbWU6RS5yZXBsYWNlKC9cc1wvXHMkLywiIiksc3R5bGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt0ZXh0Ok4seDpBLGRlcHRoOkwrMX0sci5zdHlsZSkse3k6a30pfSk7cmV0dXJuIHYuYXBwZW5kQ2hpbGQoSSksQSs9SS5nZXRCQm94KCkud2lkdGgsQT5QJiYoaz12LmdldEJCb3goKS5oZWlnaHQsQT0wLFIuYXR0cih7eDpBLHk6a30pLEErPVIuZ2V0QkJveCgpLndpZHRoLEkuYXR0cih7eDpBLHk6a30pLEErPUkuZ2V0QkJveCgpLndpZHRoKSxJfSk7W08sLi4uQ10uZm9yRWFjaCgoTixMKT0+e2lmKEw9PT1DLmxlbmd0aClyZXR1cm47Y29uc3QgUj1PYmplY3QuYXNzaWduKHt9LE4uYXR0cmlidXRlcyk7Ti5hdHRyKCJjdXJzb3IiLCJwb2ludGVyIiksTi5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIiwoKT0+e04uYXR0cihyLmFjdGl2ZSl9KSxOLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLCgpPT57Ti5hdHRyKFIpfSksTi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntnKE4ubmFtZSx2bihOLFsic3R5bGUiLCJkZXB0aCJdKSl9KX0pfW8oImRyaWxsRG93biIsTz0+e2NvbnN0e21hcmtzOkV9PU8sTT1FLm1hcChrPT57aWYoay5pZCE9PWJkJiZrLnR5cGUhPT0icmVjdCIpcmV0dXJuIGs7Y29uc3R7ZGF0YTpBfT1rLFA9T2JqZWN0LmZyb21FbnRyaWVzKFsiY29sb3IiXS5tYXAoTj0+W04se2RvbWFpbjpjLnNjYWxlW05dLmdldE9wdGlvbnMoKS5kb21haW59XSkpLEM9QS5maWx0ZXIoTj0+e2NvbnN0IEw9Ti5wYXRoO3JldHVybiBufHwoTlt0MV09TC5zcGxpdCgiIC8gIilbd10pLF8/bmV3IFJlZ0V4cChgXiR7X30uK2ApLnRlc3QoTCk6ITB9KTtyZXR1cm4gbXQoe30sayxuP3tkYXRhOkMsc2NhbGU6UH06e2RhdGE6Q30pfSk7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxPKSx7bWFya3M6TX0pfSkseWllbGQgYSgpfSkseT1fPT57Y29uc3Qgdz1fLnRhcmdldDtpZih2bih3LFsic3R5bGUiLF9PXSkhPT1iZHx8dm4odyxbIm1hcmtUeXBlIl0pIT09InJlY3QifHwhdm4odyxbInN0eWxlIixuMF0pKXJldHVybjtjb25zdCBPPXZuKHcsWyJfX2RhdGFfXyIsImtleSJdKSxFPXZuKHcsWyJzdHlsZSIsImRlcHRoIl0pO3cuc3R5bGUuY3Vyc29yPSJwb2ludGVyIixnKE8sRSl9O2YuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHkpO2NvbnN0IGI9d08oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGguYWN0aXZlKSxoLmluYWN0aXZlKSkseD0oKT0+e3VIKGYpLmZvckVhY2godz0+e2NvbnN0IE89dm4odyxbInN0eWxlIixuMF0pO2lmKHZuKHcsWyJzdHlsZSIsImN1cnNvciJdKSE9PSJwb2ludGVyIiYmTyl7dy5zdHlsZS5jdXJzb3I9InBvaW50ZXIiO2NvbnN0IE09eU8ody5hdHRyaWJ1dGVzLGIpO3cuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VlbnRlciIsKCk9Pnt3LmF0dHIoaC5hY3RpdmUpfSksdy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIiwoKT0+e3cuYXR0cihtdChNLGguaW5hY3RpdmUpKX0pfX0pfTtyZXR1cm4gZi5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHgpLCgpPT57di5yZW1vdmUoKSxmLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIix5KSxmLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIseCl9fX1mdW5jdGlvbiBwSCgpe3JldHVybnsiaW50ZXJhY3Rpb24uZHJpbGxEb3duIjpoSCwibWFyay5zdW5idXJzdCI6JEN9fWNvbnN0IFpDPSgpPT5bWyJjYXJ0ZXNpYW4iXV07WkMucHJvcHM9e307Y29uc3QgT089KCk9PltbInRyYW5zcG9zZSJdLFsidHJhbnNsYXRlIiwuNSwuNV0sWyJyZWZsZWN0LngiXSxbInRyYW5zbGF0ZSIsLS41LC0uNV1dO09PLnByb3BzPXt0cmFuc2Zvcm06ITB9O2NvbnN0IHZIPSh0PXt9KT0+e2NvbnN0IGU9e3N0YXJ0QW5nbGU6LU1hdGguUEkvMixlbmRBbmdsZTpNYXRoLlBJKjMvMixpbm5lclJhZGl1czowLG91dGVyUmFkaXVzOjF9O3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZSksdCl9LFlDPXQ9Pntjb25zdHtzdGFydEFuZ2xlOmUsZW5kQW5nbGU6bixpbm5lclJhZGl1czpyLG91dGVyUmFkaXVzOml9PXZIKHQpO3JldHVyblsuLi5PTygpLC4uLk9wKHtzdGFydEFuZ2xlOmUsZW5kQW5nbGU6bixpbm5lclJhZGl1czpyLG91dGVyUmFkaXVzOml9KV19O1lDLnByb3BzPXt9O2NvbnN0IFNPPSgpPT5bWyJwYXJhbGxlbCIsMCwxLDAsMV1dO1NPLnByb3BzPXt9O2NvbnN0IEhDPSh7Zm9jdXNYOnQ9MCxmb2N1c1k6ZT0wLGRpc3RvcnRpb25YOm49MixkaXN0b3J0aW9uWTpyPTIsdmlzdWFsOmk9ITF9KT0+W1siZmlzaGV5ZSIsdCxlLG4scixpXV07SEMucHJvcHM9e3RyYW5zZm9ybTohMH07Y29uc3QgVkM9dD0+e2NvbnN0e3N0YXJ0QW5nbGU6ZT0tTWF0aC5QSS8yLGVuZEFuZ2xlOm49TWF0aC5QSSozLzIsaW5uZXJSYWRpdXM6cj0wLG91dGVyUmFkaXVzOmk9MX09dDtyZXR1cm5bLi4uU08oKSwuLi5PcCh7c3RhcnRBbmdsZTplLGVuZEFuZ2xlOm4saW5uZXJSYWRpdXM6cixvdXRlclJhZGl1czppfSldfTtWQy5wcm9wcz17fTtjb25zdCBYQz0oe3N0YXJ0QW5nbGU6dD0wLGVuZEFuZ2xlOmU9TWF0aC5QSSo2LGlubmVyUmFkaXVzOm49MCxvdXRlclJhZGl1czpyPTF9KT0+W1sidHJhbnNsYXRlIiwuNSwuNV0sWyJyZWZsZWN0LnkiXSxbInRyYW5zbGF0ZSIsLS41LC0uNV0sWyJoZWxpeCIsdCxlLG4scl1dO1hDLnByb3BzPXt9O2NvbnN0IFVDPSh7dmFsdWU6dH0pPT5lPT5lLm1hcCgoKT0+dCk7VUMucHJvcHM9e307Y29uc3QgcUM9KHt2YWx1ZTp0fSk9PmU9PmUubWFwKG49Pm5bdF0pO3FDLnByb3BzPXt9O2NvbnN0IEtDPSh7dmFsdWU6dH0pPT5lPT5lLm1hcCh0KTtLQy5wcm9wcz17fTtjb25zdCBRQz0oe3ZhbHVlOnR9KT0+KCk9PnQ7UUMucHJvcHM9e307ZnVuY3Rpb24gWm4odCxlKXtpZih0IT09bnVsbClyZXR1cm57dHlwZToiY29sdW1uIix2YWx1ZTp0LGZpZWxkOmV9fWZ1bmN0aW9uIHIwKHQsZSl7Y29uc3Qgbj1abih0LGUpO3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbikse2luZmVycmVkOiEwfSl9ZnVuY3Rpb24gZTEodCxlKXtpZih0IT09bnVsbClyZXR1cm57dHlwZToiY29sdW1uIix2YWx1ZTp0LGZpZWxkOmUsdmlzdWFsOiEwfX1mdW5jdGlvbiBnSCh0LGUpe2NvbnN0IG49Wm4odCxlKTtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG4pLHtjb25zdGFudDohMX0pfWZ1bmN0aW9uIGRsKHQsZSl7Y29uc3Qgbj1bXTtmb3IoY29uc3QgciBvZiB0KW5bcl09ZTtyZXR1cm4gbn1mdW5jdGlvbiBobih0LGUpe2NvbnN0IG49dFtlXTtpZighbilyZXR1cm5bbnVsbCxudWxsXTtjb25zdHt2YWx1ZTpyLGZpZWxkOmk9bnVsbH09bjtyZXR1cm5bcixpXX1mdW5jdGlvbiBpMCh0LC4uLmUpe2Zvcihjb25zdCBuIG9mIGUpaWYodHlwZW9mIG49PSJzdHJpbmciKXtjb25zdFtyLGldPWhuKHQsbik7aWYociE9PW51bGwpcmV0dXJuW3IsaV19ZWxzZSByZXR1cm5bbixudWxsXTtyZXR1cm5bbnVsbCxudWxsXX1mdW5jdGlvbiBhMCh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIERhdGU/ITE6dHlwZW9mIHQ9PSJvYmplY3QifWNvbnN0IG8wPSgpPT4odCxlKT0+e2NvbnN0e2VuY29kZTpufT1lLHt5MTpyfT1uO3JldHVybiByIT09dm9pZCAwP1t0LGVdOlt0LG10KHt9LGUse2VuY29kZTp7eTE6cjAoZGwodCwwKSl9fSldfTtvMC5wcm9wcz17fTtjb25zdCBBdT0oKT0+KHQsZSk9Pntjb25zdHtlbmNvZGU6bn09ZSx7eDpyfT1uO3JldHVybiByIT09dm9pZCAwP1t0LGVdOlt0LG10KHt9LGUse2VuY29kZTp7eDpyMChkbCh0LDApKX0sc2NhbGU6e3g6e2d1aWRlOm51bGx9fX0pXX07QXUucHJvcHM9e307Y29uc3QgVHU9KHQsZSk9PkhwKE9iamVjdC5hc3NpZ24oe2NvbG9yQXR0cmlidXRlOiJmaWxsIn0sdCksZSk7VHUucHJvcHM9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LEhwLnByb3BzKSx7ZGVmYXVsdE1hcmtlcjoic3F1YXJlIn0pO2NvbnN0IG4xPSh0LGUpPT5IcChPYmplY3QuYXNzaWduKHtjb2xvckF0dHJpYnV0ZToic3Ryb2tlIn0sdCksZSk7bjEucHJvcHM9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LEhwLnByb3BzKSx7ZGVmYXVsdE1hcmtlcjoiaG9sbG93U3F1YXJlIn0pO2Z1bmN0aW9uIHhkKCl7fWZ1bmN0aW9uIEpDKHQpe3RoaXMuX2NvbnRleHQ9dH1KQy5wcm90b3R5cGU9e2FyZWFTdGFydDp4ZCxhcmVhRW5kOnhkLGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9wb2ludCYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKX0scG9pbnQ6ZnVuY3Rpb24odCxlKXt0PSt0LGU9K2UsdGhpcy5fcG9pbnQ/dGhpcy5fY29udGV4dC5saW5lVG8odCxlKToodGhpcy5fcG9pbnQ9MSx0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LGUpKX19O2Z1bmN0aW9uIEVPKHQpe3JldHVybiBuZXcgSkModCl9dmFyIHQ1PWZ1bmN0aW9uKHQsZSl7dmFyIG49e307Zm9yKHZhciByIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscikmJmUuaW5kZXhPZihyKTwwJiYobltyXT10W3JdKTtpZih0IT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIGk9MCxyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCk7aTxyLmxlbmd0aDtpKyspZS5pbmRleE9mKHJbaV0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh0LHJbaV0pJiYobltyW2ldXT10W3JbaV1dKTtyZXR1cm4gbn07ZnVuY3Rpb24geUgodCxlLG4pe2NvbnN0W3IsaSxhLG9dPXQ7aWYoaHIobikpe2NvbnN0IGw9W2U/ZVswXVswXTppWzBdLGlbMV1dLHU9W2U/ZVszXVswXTphWzBdLGFbMV1dO3JldHVybltyLGwsdSxvXX1jb25zdCBzPVtpWzBdLGU/ZVswXVsxXTppWzFdXSxjPVthWzBdLGU/ZVszXVsxXTphWzFdXTtyZXR1cm5bcixzLGMsb119Y29uc3QgTU89KHQsZSk9Pntjb25zdHthZGp1c3RQb2ludHM6bj15SH09dCxyPXQ1KHQsWyJhZGp1c3RQb2ludHMiXSkse2Nvb3JkaW5hdGU6aSxkb2N1bWVudDphfT1lO3JldHVybihvLHMsYyxsKT0+e2NvbnN0e2luZGV4OnV9PXMse2NvbG9yOmZ9PWMsZD10NShjLFsiY29sb3IiXSksaD1sW3UrMV0sdj1uKG8saCxpKSxnPSEhaHIoaSksW3ksYix4LF9dPWc/RW0odik6dix7Y29sb3I6dz1mLG9wYWNpdHk6T309cyxFPXh1KCkuY3VydmUoRU8pKFt5LGIseCxfXSk7cmV0dXJuIE9lKGEuY3JlYXRlRWxlbWVudCgicGF0aCIse30pKS5jYWxsKGxlLGQpLnN0eWxlKCJkIixFKS5zdHlsZSgiZmlsbCIsdykuc3R5bGUoImZpbGxPcGFjaXR5IixPKS5jYWxsKGxlLHIpLm5vZGUoKX19O01PLnByb3BzPXtkZWZhdWx0TWFya2VyOiJzcXVhcmUifTtmdW5jdGlvbiBtSCh0LGUsbil7Y29uc3RbcixpLGEsb109dDtpZihocihuKSl7Y29uc3QgbD1bZT9lWzBdWzBdOihpWzBdK2FbMF0pLzIsaVsxXV0sdT1bZT9lWzNdWzBdOihpWzBdK2FbMF0pLzIsYVsxXV07cmV0dXJuW3IsbCx1LG9dfWNvbnN0IHM9W2lbMF0sZT9lWzBdWzFdOihpWzFdK2FbMV0pLzJdLGM9W2FbMF0sZT9lWzNdWzFdOihpWzFdK2FbMV0pLzJdO3JldHVybltyLHMsYyxvXX1jb25zdCBlNT0odCxlKT0+TU8oT2JqZWN0LmFzc2lnbih7YWRqdXN0UG9pbnRzOm1IfSx0KSxlKTtlNS5wcm9wcz17ZGVmYXVsdE1hcmtlcjoic3F1YXJlIn07ZnVuY3Rpb24gczAodCl7cmV0dXJuIE1hdGguYWJzKHQpPjEwP1N0cmluZyh0KTp0LnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfWZ1bmN0aW9uIGJIKHQpe2NvbnN0IGU9dC5nZXRGdWxsWWVhcigpLG49czAodC5nZXRNb250aCgpKzEpLHI9czAodC5nZXREYXRlKCkpLGk9YCR7ZX0tJHtufS0ke3J9YCxhPXQuZ2V0SG91cnMoKSxvPXQuZ2V0TWludXRlcygpLHM9dC5nZXRTZWNvbmRzKCk7cmV0dXJuIGF8fG98fHM/YCR7aX0gJHtzMChhKX06JHtzMChvKX06JHtzMChzKX1gOml9Y29uc3QgcjE9KHQ9e30pPT57Y29uc3R7Y2hhbm5lbDplPSJ4In09dDtyZXR1cm4obixyKT0+e2NvbnN0e2VuY29kZTppfT1yLHt0b29sdGlwOmF9PXI7aWYocmMoYSkpcmV0dXJuW24scl07Y29uc3R7dGl0bGU6b309YTtpZihvIT09dm9pZCAwKXJldHVybltuLHJdO2NvbnN0IHM9T2JqZWN0LmtleXMoaSkuZmlsdGVyKGw9Pmwuc3RhcnRzV2l0aChlKSkuZmlsdGVyKGw9PiFpW2xdLmluZmVycmVkKS5tYXAobD0+aG4oaSxsKSkuZmlsdGVyKChbbF0pPT5sKS5tYXAobD0+bFswXSk7aWYocy5sZW5ndGg9PT0wKXJldHVybltuLHJdO2NvbnN0IGM9W107Zm9yKGNvbnN0IGwgb2YgbiljW2xdPXt2YWx1ZTpzLm1hcCh1PT51W2xdaW5zdGFuY2VvZiBEYXRlP2JIKHVbbF0pOnVbbF0pLmpvaW4oIiwgIil9O3JldHVybltuLG10KHt9LHIse3Rvb2x0aXA6e3RpdGxlOmN9fSldfX07cjEucHJvcHM9e307Y29uc3QgaTE9dD0+e2NvbnN0e2NoYW5uZWw6ZX09dDtyZXR1cm4obixyKT0+e2NvbnN0e2VuY29kZTppLHRvb2x0aXA6YX09cjtpZihyYyhhKSlyZXR1cm5bbixyXTtjb25zdHtpdGVtczpvPVtdfT1hO2lmKCFvfHxvLmxlbmd0aD4wKXJldHVybltuLHJdO2NvbnN0IGM9KEFycmF5LmlzQXJyYXkoZSk/ZTpbZV0pLmZsYXRNYXAobD0+T2JqZWN0LmtleXMoaSkuZmlsdGVyKHU9PnUuc3RhcnRzV2l0aChsKSkubWFwKHU9Pntjb25zdHtmaWVsZDpmLHZhbHVlOmQsaW5mZXJyZWQ6aD0hMSxhZ2dyZWdhdGU6dn09aVt1XTtyZXR1cm4gaD9udWxsOnYmJmQ/e2NoYW5uZWw6dX06Zj97ZmllbGQ6Zn06ZD97Y2hhbm5lbDp1fTpudWxsfSkuZmlsdGVyKHU9PnUhPT1udWxsKSk7cmV0dXJuW24sbXQoe30scix7dG9vbHRpcDp7aXRlbXM6Y319KV19fTtpMS5wcm9wcz17fTt2YXIgeEg9ZnVuY3Rpb24odCxlKXt2YXIgbj17fTtmb3IodmFyIHIgaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKSYmZS5pbmRleE9mKHIpPDAmJihuW3JdPXRbcl0pO2lmKHQhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgaT0wLHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTtpPHIubGVuZ3RoO2krKyllLmluZGV4T2YocltpXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHQscltpXSkmJihuW3JbaV1dPXRbcltpXV0pO3JldHVybiBufTtjb25zdCBuNT0oKT0+KHQsZSk9Pntjb25zdHtlbmNvZGU6bn09ZSx7a2V5OnJ9PW4saT14SChuLFsia2V5Il0pO2lmKHIhPT12b2lkIDApcmV0dXJuW3QsZV07Y29uc3QgYT1PYmplY3QudmFsdWVzKGkpLm1hcCgoe3ZhbHVlOnN9KT0+cyksbz10Lm1hcChzPT5hLmZpbHRlcihBcnJheS5pc0FycmF5KS5tYXAoYz0+Y1tzXSkuam9pbigiLSIpKTtyZXR1cm5bdCxtdCh7fSxlLHtlbmNvZGU6e2tleTpabihvKX19KV19O241LnByb3BzPXt9O2Z1bmN0aW9uIHI1KHQ9e30pe2NvbnN0e3NoYXBlczplfT10O3JldHVyblt7bmFtZToiY29sb3IifSx7bmFtZToib3BhY2l0eSJ9LHtuYW1lOiJzaGFwZSIscmFuZ2U6ZX0se25hbWU6ImVudGVyVHlwZSJ9LHtuYW1lOiJlbnRlckRlbGF5IixzY2FsZUtleToiZW50ZXIifSx7bmFtZToiZW50ZXJEdXJhdGlvbiIsc2NhbGVLZXk6ImVudGVyIn0se25hbWU6ImVudGVyRWFzaW5nIn0se25hbWU6ImtleSIsc2NhbGU6ImlkZW50aXR5In0se25hbWU6Imdyb3VwS2V5IixzY2FsZToiaWRlbnRpdHkifSx7bmFtZToibGFiZWwiLHNjYWxlOiJpZGVudGl0eSJ9XX1mdW5jdGlvbiBwYSh0PXt9KXtyZXR1cm5bLi4ucjUodCkse25hbWU6InRpdGxlIixzY2FsZToiaWRlbnRpdHkifV19ZnVuY3Rpb24ga290KCl7cmV0dXJuW3t0eXBlOk1heWJlVGl0bGUsY2hhbm5lbDoiY29sb3IifSx7dHlwZTpNYXliZVRvb2x0aXAsY2hhbm5lbDpbIngiLCJ5IiwieiJdfV19ZnVuY3Rpb24gaGwoKXtyZXR1cm5be3R5cGU6cjEsY2hhbm5lbDoiY29sb3IifSx7dHlwZTppMSxjaGFubmVsOlsieCIsInkiXX1dfWZ1bmN0aW9uIF9kKCl7cmV0dXJuW3t0eXBlOnIxLGNoYW5uZWw6IngifSx7dHlwZTppMSxjaGFubmVsOlsieSJdfV19ZnVuY3Rpb24gX0goKXtyZXR1cm5be3R5cGU6cjEsY2hhbm5lbDoiY29sb3IifSx7dHlwZTppMSxjaGFubmVsOlsicG9zaXRpb24iXX1dfWZ1bmN0aW9uIHdkKHQ9e30pe3JldHVybiByNSh0KX1mdW5jdGlvbiBEcigpe3JldHVyblt7dHlwZTpuNX1dfWZ1bmN0aW9uIFVyKCl7cmV0dXJuW119ZnVuY3Rpb24ga08odCxlKXtyZXR1cm4gdC5nZXRCYW5kV2lkdGgodC5pbnZlcnQoZSkpfWZ1bmN0aW9uIFB1KHQsZSxuPXt9KXtjb25zdHt4OnIseTppLHNlcmllczphfT1lLHt4Om8seTpzLHNlcmllczpjfT10LHtzdHlsZTp7YmFuZE9mZnNldDpsPWM/MDouNSxiYW5kT2Zmc2V0WDp1PWwsYmFuZE9mZnNldFk6Zj1sfT17fX09bixkPSEhKG8hPW51bGwmJm8uZ2V0QmFuZFdpZHRoKSxoPSEhKHMhPW51bGwmJnMuZ2V0QmFuZFdpZHRoKSx2PSEhKGMhPW51bGwmJmMuZ2V0QmFuZFdpZHRoKTtyZXR1cm4hZCYmIWg/Zz0+ZzooZyx5KT0+e2NvbnN0IGI9ZD9rTyhvLHJbeV0pOjAseD1oP2tPKHMsaVt5XSk6MCx3PXYmJmE/KGtPKGMsYVt5XSkvMisgK2FbeV0pKmI6MCxbTyxFXT1nO3JldHVybltPK3UqYit3LEUrZip4XX19ZnVuY3Rpb24gYTEodCl7cmV0dXJuIHBhcnNlRmxvYXQodCkvMTAwfWZ1bmN0aW9uIEFPKHQsZSxuLHIpe2NvbnN0e3g6aSx5OmF9PW4se2lubmVyV2lkdGg6byxpbm5lckhlaWdodDpzfT1yLmdldE9wdGlvbnMoKSxjPUFycmF5LmZyb20odCxsPT57Y29uc3QgdT1pW2xdLGY9YVtsXSxkPXR5cGVvZiB1PT0ic3RyaW5nIj9hMSh1KSpvOit1LGg9dHlwZW9mIGY9PSJzdHJpbmciP2ExKGYpKnM6K2Y7cmV0dXJuW1tkLGhdXX0pO3JldHVyblt0LGNdfWZ1bmN0aW9uIE9zKHQpe3JldHVybiB0eXBlb2YgdD09ImZ1bmN0aW9uIj90OmU9PmVbdF19ZnVuY3Rpb24gVE8odCxlKXtyZXR1cm4gQXJyYXkuZnJvbSh0LE9zKGUpKX1mdW5jdGlvbiBQTyh0LGUpe2NvbnN0e3NvdXJjZTpuPXU9PnUuc291cmNlLHRhcmdldDpyPXU9PnUudGFyZ2V0LHZhbHVlOmk9dT0+dS52YWx1ZX09ZSx7bGlua3M6YSxub2RlczpvfT10LHM9VE8oYSxuKSxjPVRPKGEsciksbD1UTyhhLGkpO3JldHVybntsaW5rczphLm1hcCgodSxmKT0+KHt0YXJnZXQ6Y1tmXSxzb3VyY2U6c1tmXSx2YWx1ZTpsW2ZdfSkpLG5vZGVzOm98fEFycmF5LmZyb20obmV3IFNldChbLi4ucywuLi5jXSksdT0+KHtrZXk6dX0pKX19ZnVuY3Rpb24gaTUodCxlKXtyZXR1cm4gdC5nZXRCYW5kV2lkdGgodC5pbnZlcnQoZSkpfWNvbnN0IGE1PXtyZWN0OlR1LGhvbGxvdzpuMSxmdW5uZWw6TU8scHlyYW1pZDplNX0sbzU9KCk9Pih0LGUsbixyKT0+e2NvbnN0e3g6aSx5OmEseTE6byxzZXJpZXM6cyxzaXplOmN9PW4sbD1lLngsdT1lLnNlcmllcyxbZl09ci5nZXRTaXplKCksZD1jP2MubWFwKGc9PitnL2YpOm51bGwsaD1jPyhnLHksYik9Pntjb25zdCB4PWcreS8yLF89ZFtiXTtyZXR1cm5beC1fLzIseCtfLzJdfTooZyx5LGIpPT5bZyxnK3ldLHY9QXJyYXkuZnJvbSh0LGc9Pntjb25zdCB5PWk1KGwsaVtnXSksYj11P2k1KHUscz09bnVsbD92b2lkIDA6c1tnXSk6MSx4PXkqYixfPSgrKHM9PW51bGw/dm9pZCAwOnNbZ10pfHwwKSp5LHc9K2lbZ10rXyxbTyxFXT1oKHcseCxnKSxNPSthW2ddLGs9K29bZ107cmV0dXJuW1tPLE1dLFtFLE1dLFtFLGtdLFtPLGtdXS5tYXAoTD0+ci5tYXAoTCkpfSk7cmV0dXJuW3Qsdl19O281LnByb3BzPXtkZWZhdWx0U2hhcGU6InJlY3QiLGRlZmF1bHRMYWJlbFNoYXBlOiJsYWJlbCIsY29tcG9zaXRlOiExLHNoYXBlOmE1LGNoYW5uZWxzOlsuLi5wYSh7c2hhcGVzOk9iamVjdC5rZXlzKGE1KX0pLHtuYW1lOiJ4IixzY2FsZToiYmFuZCIscmVxdWlyZWQ6ITB9LHtuYW1lOiJ5IixyZXF1aXJlZDohMH0se25hbWU6InNlcmllcyIsc2NhbGU6ImJhbmQifSx7bmFtZToic2l6ZSJ9XSxwcmVJbmZlcmVuY2U6Wy4uLkRyKCkse3R5cGU6bzB9LHt0eXBlOkF1fV0scG9zdEluZmVyZW5jZTpbLi4uVXIoKSwuLi5fZCgpXSxpbnRlcmFjdGlvbjp7c2hhcmVUb29sdGlwOiEwfX07Y29uc3QgczU9e3JlY3Q6VHUsaG9sbG93Om4xfSxjNT0oKT0+KHQsZSxuLHIpPT57Y29uc3R7eDppLHgxOmEseTpvLHkxOnN9PW4sYz1BcnJheS5mcm9tKHQsbD0+e2NvbnN0IHU9WytpW2xdLCtvW2xdXSxmPVsrYVtsXSwrb1tsXV0sZD1bK2FbbF0sK3NbbF1dLGg9WytpW2xdLCtzW2xdXTtyZXR1cm5bdSxmLGQsaF0ubWFwKHY9PnIubWFwKHYpKX0pO3JldHVyblt0LGNdfTtjNS5wcm9wcz17ZGVmYXVsdFNoYXBlOiJyZWN0IixkZWZhdWx0TGFiZWxTaGFwZToibGFiZWwiLGNvbXBvc2l0ZTohMSxzaGFwZTpzNSxjaGFubmVsczpbLi4ucGEoe3NoYXBlczpPYmplY3Qua2V5cyhzNSl9KSx7bmFtZToieCIscmVxdWlyZWQ6ITB9LHtuYW1lOiJ5IixyZXF1aXJlZDohMH1dLHByZUluZmVyZW5jZTpbLi4uRHIoKSx7dHlwZTpvMH1dLHBvc3RJbmZlcmVuY2U6Wy4uLlVyKCksLi4uX2QoKV0saW50ZXJhY3Rpb246e3NoYXJlVG9vbHRpcDohMH19O3ZhciBsNT1DTyhXcCk7ZnVuY3Rpb24gdTUodCl7dGhpcy5fY3VydmU9dH11NS5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2N1cnZlLmFyZWFTdGFydCgpfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fY3VydmUuYXJlYUVuZCgpfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9jdXJ2ZS5saW5lU3RhcnQoKX0sbGluZUVuZDpmdW5jdGlvbigpe3RoaXMuX2N1cnZlLmxpbmVFbmQoKX0scG9pbnQ6ZnVuY3Rpb24odCxlKXt0aGlzLl9jdXJ2ZS5wb2ludChlKk1hdGguc2luKHQpLGUqLU1hdGguY29zKHQpKX19O2Z1bmN0aW9uIENPKHQpe2Z1bmN0aW9uIGUobil7cmV0dXJuIG5ldyB1NSh0KG4pKX1yZXR1cm4gZS5fY3VydmU9dCxlfWZ1bmN0aW9uIGMwKHQpe3ZhciBlPXQuY3VydmU7cmV0dXJuIHQuYW5nbGU9dC54LGRlbGV0ZSB0LngsdC5yYWRpdXM9dC55LGRlbGV0ZSB0LnksdC5jdXJ2ZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9lKENPKG4pKTplKCkuX2N1cnZlfSx0fWZ1bmN0aW9uIHdIKCl7cmV0dXJuIGMwKHh1KCkuY3VydmUobDUpKX12YXIgZjU9ZnVuY3Rpb24odCxlKXt2YXIgbj17fTtmb3IodmFyIHIgaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKSYmZS5pbmRleE9mKHIpPDAmJihuW3JdPXRbcl0pO2lmKHQhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgaT0wLHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTtpPHIubGVuZ3RoO2krKyllLmluZGV4T2YocltpXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHQscltpXSkmJihuW3JbaV1dPXRbcltpXV0pO3JldHVybiBufTtjb25zdCBPSD1hZCh0PT57Y29uc3R7ZDE6ZSxkMjpuLHN0eWxlMTpyLHN0eWxlMjppfT10LmF0dHJpYnV0ZXMsYT10Lm93bmVyRG9jdW1lbnQ7T2UodCkubWF5YmVBcHBlbmQoImxpbmUiLCgpPT5hLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHt9KSkuc3R5bGUoImQiLGUpLmNhbGwobGUsciksT2UodCkubWF5YmVBcHBlbmQoImxpbmUxIiwoKT0+YS5jcmVhdGVFbGVtZW50KCJwYXRoIix7fSkpLnN0eWxlKCJkIixuKS5jYWxsKGxlLGkpfSk7ZnVuY3Rpb24gU0godCxlKXtjb25zdCBuPVtdLHI9W107bGV0IGk9ITEsYT1udWxsO2Zvcihjb25zdCBvIG9mIHQpIWUob1swXSl8fCFlKG9bMV0pP2k9ITA6KG4ucHVzaChvKSxpJiYoaT0hMSxyLnB1c2goW2Esb10pKSxhPW8pO3JldHVybltuLHJdfWNvbnN0IFNvPSh0LGUpPT57Y29uc3R7Y3VydmU6bixncmFkaWVudDpyPSExLGdyYWRpZW50Q29sb3I6aT0iYmV0d2VlbiIsZGVmaW5lZDphPXU9PiFOdW1iZXIuaXNOYU4odSkmJnUhPT12b2lkIDAmJnUhPT1udWxsLGNvbm5lY3Q6bz0hMX09dCxzPWY1KHQsWyJjdXJ2ZSIsImdyYWRpZW50IiwiZ3JhZGllbnRDb2xvciIsImRlZmluZWQiLCJjb25uZWN0Il0pLHtjb29yZGluYXRlOmMsZG9jdW1lbnQ6bH09ZTtyZXR1cm4odSxmLGQpPT57Y29uc3R7Y29sb3I6aCxsaW5lV2lkdGg6dn09ZCxnPWY1KGQsWyJjb2xvciIsImxpbmVXaWR0aCJdKSx7Y29sb3I6eT1oLHNpemU6Yj12LHNlcmllc0NvbG9yOngsc2VyaWVzWDpfLHNlcmllc1k6d309ZixPPV9QKGMsZiksRT1ocihjKSxNPXImJng/eFAoeCxfLHcscixpLEUpOnksaz1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZyksTSYme3N0cm9rZTpNfSksYiYme2xpbmVXaWR0aDpifSksTyYme3RyYW5zZm9ybTpPfSkscyk7bGV0IEE7aWYoQm4oYykpe2NvbnN0IEk9Yy5nZXRDZW50ZXIoKTtBPUQ9PndIKCkuYW5nbGUoKEcsRik9PmlkKE1yKERbRl0sSSkpKS5yYWRpdXMoKEcsRik9PndyKERbRl0sSSkpLmRlZmluZWQoKFtHLEZdKT0+YShHKSYmYShGKSkuY3VydmUobikoRCl9ZWxzZSBBPXh1KCkueChJPT5JWzBdKS55KEk9PklbMV0pLmRlZmluZWQoKFtJLERdKT0+YShJKSYmYShEKSkuY3VydmUobik7Y29uc3RbUCxDXT1TSCh1LGEpLE49JHQoaywiY29ubmVjdCIpLEw9ISFDLmxlbmd0aDtpZighTHx8byYmIU9iamVjdC5rZXlzKE4pLmxlbmd0aClyZXR1cm4gT2UobC5jcmVhdGVFbGVtZW50KCJwYXRoIix7fSkpLnN0eWxlKCJkIixBKFApfHxbXSkuY2FsbChsZSxrKS5ub2RlKCk7aWYoTCYmIW8pcmV0dXJuIE9lKGwuY3JlYXRlRWxlbWVudCgicGF0aCIse30pKS5zdHlsZSgiZCIsQSh1KSkuY2FsbChsZSxrKS5ub2RlKCk7Y29uc3QgUj1JPT5JLm1hcChBKS5qb2luKCIsIik7cmV0dXJuIE9lKG5ldyBPSCkuc3R5bGUoInN0eWxlMSIsT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGspLE4pKS5zdHlsZSgic3R5bGUyIixrKS5zdHlsZSgiZDEiLFIoQykpLnN0eWxlKCJkMiIsQSh1KSkubm9kZSgpfX07U28ucHJvcHM9e2RlZmF1bHRNYXJrZXI6InNtb290aCIsZGVmYXVsdEVudGVyQW5pbWF0aW9uOiJmYWRlSW4iLGRlZmF1bHRVcGRhdGVBbmltYXRpb246Im1vcnBoaW5nIixkZWZhdWx0RXhpdEFuaW1hdGlvbjoiZmFkZU91dCJ9O2NvbnN0IGQ1PSh0LGUpPT57Y29uc3R7Y29vcmRpbmF0ZTpufT1lO3JldHVybiguLi5yKT0+e2NvbnN0IGk9Qm4obik/RU86V3A7cmV0dXJuIFNvKE9iamVjdC5hc3NpZ24oe2N1cnZlOml9LHQpLGUpKC4uLnIpfX07ZDUucHJvcHM9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LFNvLnByb3BzKSx7ZGVmYXVsdE1hcmtlcjoibGluZSJ9KTtmdW5jdGlvbiBMTyh0LGUsbil7dC5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKHQuX3gxK3QuX2sqKHQuX3gyLXQuX3gwKSx0Ll95MSt0Ll9rKih0Ll95Mi10Ll95MCksdC5feDIrdC5fayoodC5feDEtZSksdC5feTIrdC5fayoodC5feTEtbiksdC5feDIsdC5feTIpfWZ1bmN0aW9uIFJPKHQsZSl7dGhpcy5fY29udGV4dD10LHRoaXMuX2s9KDEtZSkvNn1STy5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAyOnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gyLHRoaXMuX3kyKTticmVhaztjYXNlIDM6TE8odGhpcyx0aGlzLl94MSx0aGlzLl95MSk7YnJlYWt9KHRoaXMuX2xpbmV8fHRoaXMuX2xpbmUhPT0wJiZ0aGlzLl9wb2ludD09PTEpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbih0LGUpe3N3aXRjaCh0PSt0LGU9K2UsdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odCxlKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LGUpO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yLHRoaXMuX3gxPXQsdGhpcy5feTE9ZTticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9MztkZWZhdWx0OkxPKHRoaXMsdCxlKTticmVha310aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10aGlzLl94Mix0aGlzLl94Mj10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPXRoaXMuX3kyLHRoaXMuX3kyPWV9fTt2YXIgQW90PWZ1bmN0aW9uIHQoZSl7ZnVuY3Rpb24gbihyKXtyZXR1cm4gbmV3IFJPKHIsZSl9cmV0dXJuIG4udGVuc2lvbj1mdW5jdGlvbihyKXtyZXR1cm4gdCgrcil9LG59KDApO2Z1bmN0aW9uIE5PKHQsZSl7dGhpcy5fY29udGV4dD10LHRoaXMuX2s9KDEtZSkvNn1OTy5wcm90b3R5cGU9e2FyZWFTdGFydDp4ZCxhcmVhRW5kOnhkLGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3gyPXRoaXMuX3gzPXRoaXMuX3g0PXRoaXMuX3g1PXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3kyPXRoaXMuX3kzPXRoaXMuX3k0PXRoaXMuX3k1PU5hTix0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDE6e3RoaXMuX2NvbnRleHQubW92ZVRvKHRoaXMuX3gzLHRoaXMuX3kzKSx0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpO2JyZWFrfWNhc2UgMjp7dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDMsdGhpcy5feTMpLHRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCk7YnJlYWt9Y2FzZSAzOnt0aGlzLnBvaW50KHRoaXMuX3gzLHRoaXMuX3kzKSx0aGlzLnBvaW50KHRoaXMuX3g0LHRoaXMuX3k0KSx0aGlzLnBvaW50KHRoaXMuX3g1LHRoaXMuX3k1KTticmVha319fSxwb2ludDpmdW5jdGlvbih0LGUpe3N3aXRjaCh0PSt0LGU9K2UsdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX3gzPXQsdGhpcy5feTM9ZTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9Mix0aGlzLl9jb250ZXh0Lm1vdmVUbyh0aGlzLl94ND10LHRoaXMuX3k0PWUpO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLHRoaXMuX3g1PXQsdGhpcy5feTU9ZTticmVhaztkZWZhdWx0OkxPKHRoaXMsdCxlKTticmVha310aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10aGlzLl94Mix0aGlzLl94Mj10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPXRoaXMuX3kyLHRoaXMuX3kyPWV9fTt2YXIgVG90PWZ1bmN0aW9uIHQoZSl7ZnVuY3Rpb24gbihyKXtyZXR1cm4gbmV3IE5PKHIsZSl9cmV0dXJuIG4udGVuc2lvbj1mdW5jdGlvbihyKXtyZXR1cm4gdCgrcil9LG59KDApO2Z1bmN0aW9uIGg1KHQsZSxuKXt2YXIgcj10Ll94MSxpPXQuX3kxLGE9dC5feDIsbz10Ll95MjtpZih0Ll9sMDFfYT5lYSl7dmFyIHM9Mip0Ll9sMDFfMmErMyp0Ll9sMDFfYSp0Ll9sMTJfYSt0Ll9sMTJfMmEsYz0zKnQuX2wwMV9hKih0Ll9sMDFfYSt0Ll9sMTJfYSk7cj0ocipzLXQuX3gwKnQuX2wxMl8yYSt0Ll94Mip0Ll9sMDFfMmEpL2MsaT0oaSpzLXQuX3kwKnQuX2wxMl8yYSt0Ll95Mip0Ll9sMDFfMmEpL2N9aWYodC5fbDIzX2E+ZWEpe3ZhciBsPTIqdC5fbDIzXzJhKzMqdC5fbDIzX2EqdC5fbDEyX2ErdC5fbDEyXzJhLHU9Myp0Ll9sMjNfYSoodC5fbDIzX2ErdC5fbDEyX2EpO2E9KGEqbCt0Ll94MSp0Ll9sMjNfMmEtZSp0Ll9sMTJfMmEpL3Usbz0obypsK3QuX3kxKnQuX2wyM18yYS1uKnQuX2wxMl8yYSkvdX10Ll9jb250ZXh0LmJlemllckN1cnZlVG8ocixpLGEsbyx0Ll94Mix0Ll95Mil9ZnVuY3Rpb24gcDUodCxlKXt0aGlzLl9jb250ZXh0PXQsdGhpcy5fYWxwaGE9ZX1wNS5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj1OYU4sdGhpcy5fbDAxX2E9dGhpcy5fbDEyX2E9dGhpcy5fbDIzX2E9dGhpcy5fbDAxXzJhPXRoaXMuX2wxMl8yYT10aGlzLl9sMjNfMmE9dGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAyOnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gyLHRoaXMuX3kyKTticmVhaztjYXNlIDM6dGhpcy5wb2ludCh0aGlzLl94Mix0aGlzLl95Mik7YnJlYWt9KHRoaXMuX2xpbmV8fHRoaXMuX2xpbmUhPT0wJiZ0aGlzLl9wb2ludD09PTEpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbih0LGUpe2lmKHQ9K3QsZT0rZSx0aGlzLl9wb2ludCl7dmFyIG49dGhpcy5feDItdCxyPXRoaXMuX3kyLWU7dGhpcy5fbDIzX2E9TWF0aC5zcXJ0KHRoaXMuX2wyM18yYT1NYXRoLnBvdyhuKm4rcipyLHRoaXMuX2FscGhhKSl9c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHQsZSk6dGhpcy5fY29udGV4dC5tb3ZlVG8odCxlKTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9MjticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9MztkZWZhdWx0Omg1KHRoaXMsdCxlKTticmVha310aGlzLl9sMDFfYT10aGlzLl9sMTJfYSx0aGlzLl9sMTJfYT10aGlzLl9sMjNfYSx0aGlzLl9sMDFfMmE9dGhpcy5fbDEyXzJhLHRoaXMuX2wxMl8yYT10aGlzLl9sMjNfMmEsdGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dGhpcy5feDIsdGhpcy5feDI9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT10aGlzLl95Mix0aGlzLl95Mj1lfX07dmFyIFBvdD1mdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4ocil7cmV0dXJuIGU/bmV3IHA1KHIsZSk6bmV3IFJPKHIsMCl9cmV0dXJuIG4uYWxwaGE9ZnVuY3Rpb24ocil7cmV0dXJuIHQoK3IpfSxufSguNSk7ZnVuY3Rpb24gdjUodCxlKXt0aGlzLl9jb250ZXh0PXQsdGhpcy5fYWxwaGE9ZX12NS5wcm90b3R5cGU9e2FyZWFTdGFydDp4ZCxhcmVhRW5kOnhkLGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3gyPXRoaXMuX3gzPXRoaXMuX3g0PXRoaXMuX3g1PXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3kyPXRoaXMuX3kzPXRoaXMuX3k0PXRoaXMuX3k1PU5hTix0aGlzLl9sMDFfYT10aGlzLl9sMTJfYT10aGlzLl9sMjNfYT10aGlzLl9sMDFfMmE9dGhpcy5fbDEyXzJhPXRoaXMuX2wyM18yYT10aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDE6e3RoaXMuX2NvbnRleHQubW92ZVRvKHRoaXMuX3gzLHRoaXMuX3kzKSx0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpO2JyZWFrfWNhc2UgMjp7dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDMsdGhpcy5feTMpLHRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCk7YnJlYWt9Y2FzZSAzOnt0aGlzLnBvaW50KHRoaXMuX3gzLHRoaXMuX3kzKSx0aGlzLnBvaW50KHRoaXMuX3g0LHRoaXMuX3k0KSx0aGlzLnBvaW50KHRoaXMuX3g1LHRoaXMuX3k1KTticmVha319fSxwb2ludDpmdW5jdGlvbih0LGUpe2lmKHQ9K3QsZT0rZSx0aGlzLl9wb2ludCl7dmFyIG49dGhpcy5feDItdCxyPXRoaXMuX3kyLWU7dGhpcy5fbDIzX2E9TWF0aC5zcXJ0KHRoaXMuX2wyM18yYT1NYXRoLnBvdyhuKm4rcipyLHRoaXMuX2FscGhhKSl9c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl94Mz10LHRoaXMuX3kzPWU7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTIsdGhpcy5fY29udGV4dC5tb3ZlVG8odGhpcy5feDQ9dCx0aGlzLl95ND1lKTticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9Myx0aGlzLl94NT10LHRoaXMuX3k1PWU7YnJlYWs7ZGVmYXVsdDpoNSh0aGlzLHQsZSk7YnJlYWt9dGhpcy5fbDAxX2E9dGhpcy5fbDEyX2EsdGhpcy5fbDEyX2E9dGhpcy5fbDIzX2EsdGhpcy5fbDAxXzJhPXRoaXMuX2wxMl8yYSx0aGlzLl9sMTJfMmE9dGhpcy5fbDIzXzJhLHRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPXRoaXMuX3gyLHRoaXMuX3gyPXQsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9dGhpcy5feTIsdGhpcy5feTI9ZX19O3ZhciBnNT1mdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4ocil7cmV0dXJuIGU/bmV3IHY1KHIsZSk6bmV3IE5PKHIsMCl9cmV0dXJuIG4uYWxwaGE9ZnVuY3Rpb24ocil7cmV0dXJuIHQoK3IpfSxufSguNSk7ZnVuY3Rpb24geTUodCl7cmV0dXJuIHQ8MD8tMToxfWZ1bmN0aW9uIG01KHQsZSxuKXt2YXIgcj10Ll94MS10Ll94MCxpPWUtdC5feDEsYT0odC5feTEtdC5feTApLyhyfHxpPDAmJi0wKSxvPShuLXQuX3kxKS8oaXx8cjwwJiYtMCkscz0oYSppK28qcikvKHIraSk7cmV0dXJuKHk1KGEpK3k1KG8pKSpNYXRoLm1pbihNYXRoLmFicyhhKSxNYXRoLmFicyhvKSwuNSpNYXRoLmFicyhzKSl8fDB9ZnVuY3Rpb24gYjUodCxlKXt2YXIgbj10Ll94MS10Ll94MDtyZXR1cm4gbj8oMyoodC5feTEtdC5feTApL24tZSkvMjplfWZ1bmN0aW9uIElPKHQsZSxuKXt2YXIgcj10Ll94MCxpPXQuX3kwLGE9dC5feDEsbz10Ll95MSxzPShhLXIpLzM7dC5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKHIrcyxpK3MqZSxhLXMsby1zKm4sYSxvKX1mdW5jdGlvbiBvMSh0KXt0aGlzLl9jb250ZXh0PXR9bzEucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feTA9dGhpcy5feTE9dGhpcy5fdDA9TmFOLHRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMjp0aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94MSx0aGlzLl95MSk7YnJlYWs7Y2FzZSAzOklPKHRoaXMsdGhpcy5fdDAsYjUodGhpcyx0aGlzLl90MCkpO2JyZWFrfSh0aGlzLl9saW5lfHx0aGlzLl9saW5lIT09MCYmdGhpcy5fcG9pbnQ9PT0xKSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPTEtdGhpcy5fbGluZX0scG9pbnQ6ZnVuY3Rpb24odCxlKXt2YXIgbj1OYU47aWYodD0rdCxlPStlLCEodD09PXRoaXMuX3gxJiZlPT09dGhpcy5feTEpKXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odCxlKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LGUpO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLElPKHRoaXMsYjUodGhpcyxuPW01KHRoaXMsdCxlKSksbik7YnJlYWs7ZGVmYXVsdDpJTyh0aGlzLHRoaXMuX3QwLG49bTUodGhpcyx0LGUpKTticmVha310aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPWUsdGhpcy5fdDA9bn19fTtmdW5jdGlvbiB4NSh0KXt0aGlzLl9jb250ZXh0PW5ldyBfNSh0KX0oeDUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUobzEucHJvdG90eXBlKSkucG9pbnQ9ZnVuY3Rpb24odCxlKXtvMS5wcm90b3R5cGUucG9pbnQuY2FsbCh0aGlzLGUsdCl9O2Z1bmN0aW9uIF81KHQpe3RoaXMuX2NvbnRleHQ9dH1fNS5wcm90b3R5cGU9e21vdmVUbzpmdW5jdGlvbih0LGUpe3RoaXMuX2NvbnRleHQubW92ZVRvKGUsdCl9LGNsb3NlUGF0aDpmdW5jdGlvbigpe3RoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCl9LGxpbmVUbzpmdW5jdGlvbih0LGUpe3RoaXMuX2NvbnRleHQubGluZVRvKGUsdCl9LGJlemllckN1cnZlVG86ZnVuY3Rpb24odCxlLG4scixpLGEpe3RoaXMuX2NvbnRleHQuYmV6aWVyQ3VydmVUbyhlLHQscixuLGEsaSl9fTtmdW5jdGlvbiB3NSh0KXtyZXR1cm4gbmV3IG8xKHQpfWZ1bmN0aW9uIE81KHQpe3JldHVybiBuZXcgeDUodCl9dmFyIEVIPWZ1bmN0aW9uKHQsZSl7dmFyIG49e307Zm9yKHZhciByIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscikmJmUuaW5kZXhPZihyKTwwJiYobltyXT10W3JdKTtpZih0IT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIGk9MCxyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCk7aTxyLmxlbmd0aDtpKyspZS5pbmRleE9mKHJbaV0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh0LHJbaV0pJiYobltyW2ldXT10W3JbaV1dKTtyZXR1cm4gbn07Y29uc3QgUzU9KHQsZSk9Pntjb25zdCBuPUVIKHQsW10pLHtjb29yZGluYXRlOnJ9PWU7cmV0dXJuKC4uLmkpPT57Y29uc3QgYT1CbihyKT9nNTpocihyKT9PNTp3NTtyZXR1cm4gU28oT2JqZWN0LmFzc2lnbih7Y3VydmU6YX0sbiksZSkoLi4uaSl9fTtTNS5wcm9wcz1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sU28ucHJvcHMpLHtkZWZhdWx0TWFya2VyOiJzbW9vdGgifSk7ZnVuY3Rpb24gczEodCxlKXt0aGlzLl9jb250ZXh0PXQsdGhpcy5fdD1lfXMxLnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3g9dGhpcy5feT1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpezA8dGhpcy5fdCYmdGhpcy5fdDwxJiZ0aGlzLl9wb2ludD09PTImJnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gsdGhpcy5feSksKHRoaXMuX2xpbmV8fHRoaXMuX2xpbmUhPT0wJiZ0aGlzLl9wb2ludD09PTEpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU+PTAmJih0aGlzLl90PTEtdGhpcy5fdCx0aGlzLl9saW5lPTEtdGhpcy5fbGluZSl9LHBvaW50OmZ1bmN0aW9uKHQsZSl7c3dpdGNoKHQ9K3QsZT0rZSx0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTEsdGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyh0LGUpOnRoaXMuX2NvbnRleHQubW92ZVRvKHQsZSk7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTI7ZGVmYXVsdDp7aWYodGhpcy5fdDw9MCl0aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94LGUpLHRoaXMuX2NvbnRleHQubGluZVRvKHQsZSk7ZWxzZXt2YXIgbj10aGlzLl94KigxLXRoaXMuX3QpK3QqdGhpcy5fdDt0aGlzLl9jb250ZXh0LmxpbmVUbyhuLHRoaXMuX3kpLHRoaXMuX2NvbnRleHQubGluZVRvKG4sZSl9YnJlYWt9fXRoaXMuX3g9dCx0aGlzLl95PWV9fTtmdW5jdGlvbiBFNSh0KXtyZXR1cm4gbmV3IHMxKHQsLjUpfWZ1bmN0aW9uIE01KHQpe3JldHVybiBuZXcgczEodCwwKX1mdW5jdGlvbiBrNSh0KXtyZXR1cm4gbmV3IHMxKHQsMSl9Y29uc3QgQTU9KHQsZSk9PlNvKE9iamVjdC5hc3NpZ24oe2N1cnZlOms1fSx0KSxlKTtBNS5wcm9wcz1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sU28ucHJvcHMpLHtkZWZhdWx0TWFya2VyOiJodiJ9KTtjb25zdCBUNT0odCxlKT0+U28oT2JqZWN0LmFzc2lnbih7Y3VydmU6TTV9LHQpLGUpO1Q1LnByb3BzPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxTby5wcm9wcykse2RlZmF1bHRNYXJrZXI6InZoIn0pO2NvbnN0IFA1PSh0LGUpPT5TbyhPYmplY3QuYXNzaWduKHtjdXJ2ZTpFNX0sdCksZSk7UDUucHJvcHM9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LFNvLnByb3BzKSx7ZGVmYXVsdE1hcmtlcjoiaHZoIn0pO3ZhciBNSD1mdW5jdGlvbih0LGUpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiZlLmluZGV4T2Yocik8MCYmKG5bcl09dFtyXSk7aWYodCE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBpPTAscj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2k8ci5sZW5ndGg7aSsrKWUuaW5kZXhPZihyW2ldKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodCxyW2ldKSYmKG5bcltpXV09dFtyW2ldXSk7cmV0dXJuIG59O2Z1bmN0aW9uIGtIKHQsZSxuLHIsaSl7Y29uc3QgYT1NcihuLGUpLG89d28oYSkscz1vK01hdGguUEkvMixjPVtyLzIqTWF0aC5jb3Mocyksci8yKk1hdGguc2luKHMpXSxsPVtpLzIqTWF0aC5jb3MocyksaS8yKk1hdGguc2luKHMpXSx1PVtpLzIqTWF0aC5jb3MobyksaS8yKk1hdGguc2luKG8pXSxmPVtyLzIqTWF0aC5jb3Mobyksci8yKk1hdGguc2luKG8pXSxkPVNtKGUsYyksaD1TbShuLGwpLHY9U20oaCx1KSxnPVNtKG4sdSkseT1NcihnLGwpLGI9TXIobixsKSx4PU1yKGUsYyksXz1Ncih4LGYpLHc9TXIoZSxmKSxPPU1yKGQsZik7dC5tb3ZlVG8oLi4uZCksdC5saW5lVG8oLi4uaCksdC5hcmNUbyguLi52LC4uLmcsaS8yKSx0LmFyY1RvKC4uLnksLi4uYixpLzIpLHQubGluZVRvKC4uLngpLHQuYXJjVG8oLi4uXywuLi53LHIvMiksdC5hcmNUbyguLi5PLC4uLmQsci8yKSx0LmNsb3NlUGF0aCgpfWNvbnN0IEM1PSh0LGUpPT57Y29uc3R7ZG9jdW1lbnQ6bn09ZTtyZXR1cm4ocixpLGEpPT57Y29uc3R7c2VyaWVzU2l6ZTpvLGNvbG9yOnN9PWkse2NvbG9yOmN9PWEsbD1NSChhLFsiY29sb3IiXSksdT1PbygpO2ZvcihsZXQgZj0wO2Y8ci5sZW5ndGgtMTtmKyspe2NvbnN0IGQ9cltmXSxoPXJbZisxXSx2PW9bZl0sZz1vW2YrMV07Wy4uLmQsLi4uaF0uZXZlcnkocW4pJiZrSCh1LGQsaCx2LGcpfXJldHVybiBPZShuLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHt9KSkuY2FsbChsZSxsKS5zdHlsZSgiZmlsbCIsc3x8Yykuc3R5bGUoImQiLHUudG9TdHJpbmcoKSkuY2FsbChsZSx0KS5ub2RlKCl9fTtDNS5wcm9wcz1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sU28ucHJvcHMpLHtkZWZhdWx0TWFya2VyOiJsaW5lIn0pO2NvbnN0IEw1PSgpPT4odCxlKT0+e2NvbnN0e3N0eWxlOm49e30sZW5jb2RlOnJ9PWUse3NlcmllczppfT1yLHtncmFkaWVudDphfT1uO3JldHVybiFhfHxpP1t0LGVdOlt0LG10KHt9LGUse2VuY29kZTp7c2VyaWVzOmUxKGRsKHQsdm9pZCAwKSl9fSldfTtMNS5wcm9wcz17fTtjb25zdCBETz0oKT0+KHQsZSk9Pntjb25zdHtlbmNvZGU6bn09ZSx7c2VyaWVzOnIsY29sb3I6aX09bjtpZihyIT09dm9pZCAwfHxpPT09dm9pZCAwKXJldHVyblt0LGVdO2NvbnN0W2Esb109aG4obiwiY29sb3IiKTtyZXR1cm5bdCxtdCh7fSxlLHtlbmNvZGU6e3NlcmllczpabihhLG8pfX0pXX07RE8ucHJvcHM9e307Y29uc3QgUjU9e2xpbmU6ZDUsc21vb3RoOlM1LGh2OkE1LHZoOlQ1LGh2aDpQNSx0cmFpbDpDNX0sQUg9KHQsZSxuLHIpPT57dmFyIGksYTtjb25zdHtzZXJpZXM6byx4OnMseTpjfT1uLHt4OmwseTp1fT1lO2lmKHM9PT12b2lkIDB8fGM9PT12b2lkIDApdGhyb3cgbmV3IEVycm9yKCJNaXNzaW5nIGVuY29kZSBmb3IgeCBvciB5IGNoYW5uZWwuIik7Y29uc3QgZj1vP0FycmF5LmZyb20oZHIodCx5PT5vW3ldKS52YWx1ZXMoKSk6W3RdLGQ9Zi5tYXAoeT0+eVswXSkuZmlsdGVyKHk9PnkhPT12b2lkIDApLGg9KCgoaT1sPT1udWxsP3ZvaWQgMDpsLmdldEJhbmRXaWR0aCk9PT1udWxsfHxpPT09dm9pZCAwP3ZvaWQgMDppLmNhbGwobCkpfHwwKS8yLHY9KCgoYT11PT1udWxsP3ZvaWQgMDp1LmdldEJhbmRXaWR0aCk9PT1udWxsfHxhPT09dm9pZCAwP3ZvaWQgMDphLmNhbGwodSkpfHwwKS8yLGc9QXJyYXkuZnJvbShmLHk9PnkubWFwKGI9PnIubWFwKFsrc1tiXStoLCtjW2JdK3ZdKSkpO3JldHVybltkLGcsZl19LFRIPSh0LGUsbixyKT0+e2NvbnN0IGk9T2JqZWN0LmVudHJpZXMobikuZmlsdGVyKChbb10pPT5vLnN0YXJ0c1dpdGgoInBvc2l0aW9uIikpLm1hcCgoWyxvXSk9Pm8pO2lmKGkubGVuZ3RoPT09MCl0aHJvdyBuZXcgRXJyb3IoIk1pc3NpbmcgZW5jb2RlIGZvciBwb3NpdGlvbiBjaGFubmVsLiIpO2NvbnN0IGE9QXJyYXkuZnJvbSh0LG89Pntjb25zdCBzPWkubWFwKHU9Pit1W29dKSxjPXIubWFwKHMpLGw9W107Zm9yKGxldCB1PTA7dTxjLmxlbmd0aDt1Kz0yKWwucHVzaChbY1t1XSxjW3UrMV1dKTtyZXR1cm4gbH0pO3JldHVyblt0LGFdfSxONT0oKT0+KHQsZSxuLHIpPT4oRXAocik/VEg6QUgpKHQsZSxuLHIpO041LnByb3BzPXtkZWZhdWx0U2hhcGU6ImxpbmUiLGRlZmF1bHRMYWJlbFNoYXBlOiJsYWJlbCIsY29tcG9zaXRlOiExLHNoYXBlOlI1LGNoYW5uZWxzOlsuLi5wYSh7c2hhcGVzOk9iamVjdC5rZXlzKFI1KX0pLHtuYW1lOiJ4In0se25hbWU6InkifSx7bmFtZToicG9zaXRpb24iLGluZGVwZW5kZW50OiEwfSx7bmFtZToic2l6ZSJ9LHtuYW1lOiJzZXJpZXMiLHNjYWxlOiJiYW5kIn1dLHByZUluZmVyZW5jZTpbLi4uRHIoKSx7dHlwZTpMNX0se3R5cGU6RE99XSxwb3N0SW5mZXJlbmNlOlsuLi5VcigpLC4uLl9kKCksLi4uX0goKV0saW50ZXJhY3Rpb246e3NoYXJlVG9vbHRpcDohMCxzZXJpZXNUb29sdGlwOiEwLGNyb3NzaGFpcnM6ITB9fTt2YXIgUEg9ZnVuY3Rpb24odCxlKXt2YXIgbj17fTtmb3IodmFyIHIgaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKSYmZS5pbmRleE9mKHIpPDAmJihuW3JdPXRbcl0pO2lmKHQhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgaT0wLHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTtpPHIubGVuZ3RoO2krKyllLmluZGV4T2YocltpXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHQscltpXSkmJihuW3JbaV1dPXRbcltpXV0pO3JldHVybiBufTtmdW5jdGlvbiBJNSh0LGUsbixyKXtpZihlLmxlbmd0aD09PTEpcmV0dXJuO2NvbnN0e3NpemU6aX09bjtpZih0PT09ImZpeGVkIilyZXR1cm4gaTtpZih0PT09Im5vcm1hbCJ8fFZBKHIpKXtjb25zdFtbYSxvXSxbcyxjXV09ZSxsPU1hdGguYWJzKChzLWEpLzIpLHU9TWF0aC5hYnMoKGMtbykvMik7cmV0dXJuIE1hdGgubWF4KDAsKGwrdSkvMil9cmV0dXJuIGl9Y29uc3Qgb249KHQsZSk9Pntjb25zdHtjb2xvckF0dHJpYnV0ZTpuLHN5bWJvbDpyLG1vZGU6aT0iYXV0byJ9PXQsYT1QSCh0LFsiY29sb3JBdHRyaWJ1dGUiLCJzeW1ib2wiLCJtb2RlIl0pLG89SGYuZ2V0KHIpfHxIZi5nZXQoInBvaW50Iikse2Nvb3JkaW5hdGU6cyxkb2N1bWVudDpjfT1lO3JldHVybihsLHUsZik9Pntjb25zdHtsaW5lV2lkdGg6ZCxjb2xvcjpofT1mLHY9YS5zdHJva2U/ZHx8MTpkLHtjb2xvcjpnPWgsdHJhbnNmb3JtOnksb3BhY2l0eTpifT11LFt4LF9dPUR3KGwpLE89STUoaSxsLHUscyl8fGEucnx8Zi5yO3JldHVybiBPZShjLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHt9KSkuY2FsbChsZSxmKS5zdHlsZSgiZmlsbCIsInRyYW5zcGFyZW50Iikuc3R5bGUoImQiLG8oeCxfLE8pKS5zdHlsZSgibGluZVdpZHRoIix2KS5zdHlsZSgidHJhbnNmb3JtIix5KS5zdHlsZSgidHJhbnNmb3JtT3JpZ2luIixgJHt4LU99ICR7Xy1PfWApLnN0eWxlKCJzdHJva2UiLGcpLnN0eWxlKEl3KHQpLGIpLnN0eWxlKG4sZykuY2FsbChsZSxhKS5ub2RlKCl9fTtvbi5wcm9wcz17ZGVmYXVsdEVudGVyQW5pbWF0aW9uOiJmYWRlSW4iLGRlZmF1bHRVcGRhdGVBbmltYXRpb246Im1vcnBoaW5nIixkZWZhdWx0RXhpdEFuaW1hdGlvbjoiZmFkZU91dCJ9O2NvbnN0IEQ1PSh0LGUpPT5vbihPYmplY3QuYXNzaWduKHtjb2xvckF0dHJpYnV0ZToic3Ryb2tlIixzeW1ib2w6InBvaW50In0sdCksZSk7RDUucHJvcHM9T2JqZWN0LmFzc2lnbih7ZGVmYXVsdE1hcmtlcjoiaG9sbG93UG9pbnQifSxvbi5wcm9wcyk7Y29uc3QgajU9KHQsZSk9Pm9uKE9iamVjdC5hc3NpZ24oe2NvbG9yQXR0cmlidXRlOiJzdHJva2UiLHN5bWJvbDoiZGlhbW9uZCJ9LHQpLGUpO2o1LnByb3BzPU9iamVjdC5hc3NpZ24oe2RlZmF1bHRNYXJrZXI6ImhvbGxvd0RpYW1vbmQifSxvbi5wcm9wcyk7Y29uc3QgRjU9KHQsZSk9Pm9uKE9iamVjdC5hc3NpZ24oe2NvbG9yQXR0cmlidXRlOiJzdHJva2UiLHN5bWJvbDoiaGV4YWdvbiJ9LHQpLGUpO0Y1LnByb3BzPU9iamVjdC5hc3NpZ24oe2RlZmF1bHRNYXJrZXI6ImhvbGxvd0hleGFnb24ifSxvbi5wcm9wcyk7Y29uc3QgQjU9KHQsZSk9Pm9uKE9iamVjdC5hc3NpZ24oe2NvbG9yQXR0cmlidXRlOiJzdHJva2UiLHN5bWJvbDoic3F1YXJlIn0sdCksZSk7QjUucHJvcHM9T2JqZWN0LmFzc2lnbih7ZGVmYXVsdE1hcmtlcjoiaG9sbG93U3F1YXJlIn0sb24ucHJvcHMpO2NvbnN0IHo1PSh0LGUpPT5vbihPYmplY3QuYXNzaWduKHtjb2xvckF0dHJpYnV0ZToic3Ryb2tlIixzeW1ib2w6InRyaWFuZ2xlLWRvd24ifSx0KSxlKTt6NS5wcm9wcz1PYmplY3QuYXNzaWduKHtkZWZhdWx0TWFya2VyOiJob2xsb3dUcmlhbmdsZURvd24ifSxvbi5wcm9wcyk7Y29uc3QgVzU9KHQsZSk9Pm9uKE9iamVjdC5hc3NpZ24oe2NvbG9yQXR0cmlidXRlOiJzdHJva2UiLHN5bWJvbDoidHJpYW5nbGUifSx0KSxlKTtXNS5wcm9wcz1PYmplY3QuYXNzaWduKHtkZWZhdWx0TWFya2VyOiJob2xsb3dUcmlhbmdsZSJ9LG9uLnByb3BzKTtjb25zdCBHNT0odCxlKT0+b24oT2JqZWN0LmFzc2lnbih7Y29sb3JBdHRyaWJ1dGU6InN0cm9rZSIsc3ltYm9sOiJib3d0aWUifSx0KSxlKTtHNS5wcm9wcz1PYmplY3QuYXNzaWduKHtkZWZhdWx0TWFya2VyOiJob2xsb3dCb3d0aWUifSxvbi5wcm9wcyk7dmFyIENIPWZ1bmN0aW9uKHQsZSl7dmFyIG49e307Zm9yKHZhciByIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscikmJmUuaW5kZXhPZihyKTwwJiYobltyXT10W3JdKTtpZih0IT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIGk9MCxyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCk7aTxyLmxlbmd0aDtpKyspZS5pbmRleE9mKHJbaV0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh0LHJbaV0pJiYobltyW2ldXT10W3JbaV1dKTtyZXR1cm4gbn07Y29uc3QgJDU9KHQsZSk9Pntjb25zdHtjb2xvckF0dHJpYnV0ZTpuLG1vZGU6cj0iYXV0byJ9PXQsaT1DSCh0LFsiY29sb3JBdHRyaWJ1dGUiLCJtb2RlIl0pLHtjb29yZGluYXRlOmEsZG9jdW1lbnQ6b309ZTtyZXR1cm4ocyxjLGwpPT57Y29uc3R7bGluZVdpZHRoOnUsY29sb3I6Zn09bCxkPWkuc3Ryb2tlP3V8fDE6dSx7Y29sb3I6aD1mLHRyYW5zZm9ybTp2LG9wYWNpdHk6Z309YyxbeSxiXT1EdyhzKSxfPUk1KHIscyxjLGEpfHxpLnJ8fGwucjtyZXR1cm4gT2Uoby5jcmVhdGVFbGVtZW50KCJjaXJjbGUiLHt9KSkuY2FsbChsZSxsKS5zdHlsZSgiZmlsbCIsInRyYW5zcGFyZW50Iikuc3R5bGUoImN4Iix5KS5zdHlsZSgiY3kiLGIpLnN0eWxlKCJyIixfKS5zdHlsZSgibGluZVdpZHRoIixkKS5zdHlsZSgidHJhbnNmb3JtIix2KS5zdHlsZSgidHJhbnNmb3JtT3JpZ2luIixgJHt5fSAke2J9YCkuc3R5bGUoInN0cm9rZSIsaCkuc3R5bGUoSXcodCksZykuc3R5bGUobixoKS5jYWxsKGxlLGkpLm5vZGUoKX19LGpPPSh0LGUpPT4kNShPYmplY3QuYXNzaWduKHtjb2xvckF0dHJpYnV0ZToiZmlsbCJ9LHQpLGUpO2pPLnByb3BzPXtkZWZhdWx0TWFya2VyOiJjaXJjbGUiLGRlZmF1bHRFbnRlckFuaW1hdGlvbjoiZmFkZUluIixkZWZhdWx0RXhpdEFuaW1hdGlvbjoiZmFkZU91dCJ9O2NvbnN0IFo1PSh0LGUpPT4kNShPYmplY3QuYXNzaWduKHtjb2xvckF0dHJpYnV0ZToic3Ryb2tlIn0sdCksZSk7WjUucHJvcHM9T2JqZWN0LmFzc2lnbih7ZGVmYXVsdE1hcmtlcjoiaG9sbG93UG9pbnQifSxqTy5wcm9wcyk7Y29uc3QgWTU9KHQsZSk9Pm9uKE9iamVjdC5hc3NpZ24oe2NvbG9yQXR0cmlidXRlOiJmaWxsIixzeW1ib2w6InBvaW50In0sdCksZSk7WTUucHJvcHM9T2JqZWN0LmFzc2lnbih7ZGVmYXVsdE1hcmtlcjoicG9pbnQifSxvbi5wcm9wcyk7Y29uc3QgSDU9KHQsZSk9Pm9uKE9iamVjdC5hc3NpZ24oe2NvbG9yQXR0cmlidXRlOiJzdHJva2UiLHN5bWJvbDoicGx1cyJ9LHQpLGUpO0g1LnByb3BzPU9iamVjdC5hc3NpZ24oe2RlZmF1bHRNYXJrZXI6InBsdXMifSxvbi5wcm9wcyk7Y29uc3QgVjU9KHQsZSk9Pm9uKE9iamVjdC5hc3NpZ24oe2NvbG9yQXR0cmlidXRlOiJmaWxsIixzeW1ib2w6ImRpYW1vbmQifSx0KSxlKTtWNS5wcm9wcz1PYmplY3QuYXNzaWduKHtkZWZhdWx0TWFya2VyOiJkaWFtb25kIn0sb24ucHJvcHMpO2NvbnN0IFg1PSh0LGUpPT5vbihPYmplY3QuYXNzaWduKHtjb2xvckF0dHJpYnV0ZToiZmlsbCIsc3ltYm9sOiJzcXVhcmUifSx0KSxlKTtYNS5wcm9wcz1PYmplY3QuYXNzaWduKHtkZWZhdWx0TWFya2VyOiJzcXVhcmUifSxvbi5wcm9wcyk7Y29uc3QgVTU9KHQsZSk9Pm9uKE9iamVjdC5hc3NpZ24oe2NvbG9yQXR0cmlidXRlOiJmaWxsIixzeW1ib2w6InRyaWFuZ2xlIn0sdCksZSk7VTUucHJvcHM9T2JqZWN0LmFzc2lnbih7ZGVmYXVsdE1hcmtlcjoidHJpYW5nbGUifSxvbi5wcm9wcyk7Y29uc3QgcTU9KHQsZSk9Pm9uKE9iamVjdC5hc3NpZ24oe2NvbG9yQXR0cmlidXRlOiJmaWxsIixzeW1ib2w6ImhleGFnb24ifSx0KSxlKTtxNS5wcm9wcz1PYmplY3QuYXNzaWduKHtkZWZhdWx0TWFya2VyOiJoZXhhZ29uIn0sb24ucHJvcHMpO2NvbnN0IEs1PSh0LGUpPT5vbihPYmplY3QuYXNzaWduKHtjb2xvckF0dHJpYnV0ZToic3Ryb2tlIixzeW1ib2w6ImNyb3NzIn0sdCksZSk7SzUucHJvcHM9T2JqZWN0LmFzc2lnbih7ZGVmYXVsdE1hcmtlcjoiY3Jvc3MifSxvbi5wcm9wcyk7Y29uc3QgUTU9KHQsZSk9Pm9uKE9iamVjdC5hc3NpZ24oe2NvbG9yQXR0cmlidXRlOiJmaWxsIixzeW1ib2w6ImJvd3RpZSJ9LHQpLGUpO1E1LnByb3BzPU9iamVjdC5hc3NpZ24oe2RlZmF1bHRNYXJrZXI6ImJvd3RpZSJ9LG9uLnByb3BzKTtjb25zdCBKNT0odCxlKT0+b24oT2JqZWN0LmFzc2lnbih7Y29sb3JBdHRyaWJ1dGU6InN0cm9rZSIsc3ltYm9sOiJoeXBoZW4ifSx0KSxlKTtKNS5wcm9wcz1PYmplY3QuYXNzaWduKHtkZWZhdWx0TWFya2VyOiJoeXBoZW4ifSxvbi5wcm9wcyk7Y29uc3QgdEw9KHQsZSk9Pm9uKE9iamVjdC5hc3NpZ24oe2NvbG9yQXR0cmlidXRlOiJzdHJva2UiLHN5bWJvbDoibGluZSJ9LHQpLGUpO3RMLnByb3BzPU9iamVjdC5hc3NpZ24oe2RlZmF1bHRNYXJrZXI6ImxpbmUifSxvbi5wcm9wcyk7Y29uc3QgZUw9KHQsZSk9Pm9uKE9iamVjdC5hc3NpZ24oe2NvbG9yQXR0cmlidXRlOiJzdHJva2UiLHN5bWJvbDoidGljayJ9LHQpLGUpO2VMLnByb3BzPU9iamVjdC5hc3NpZ24oe2RlZmF1bHRNYXJrZXI6InRpY2sifSxvbi5wcm9wcyk7Y29uc3Qgbkw9KHQsZSk9Pm9uKE9iamVjdC5hc3NpZ24oe2NvbG9yQXR0cmlidXRlOiJmaWxsIixzeW1ib2w6InRyaWFuZ2xlLWRvd24ifSx0KSxlKTtuTC5wcm9wcz1PYmplY3QuYXNzaWduKHtkZWZhdWx0TWFya2VyOiJ0cmlhbmdsZURvd24ifSxvbi5wcm9wcyk7Y29uc3QgYzE9KCk9Pih0LGUpPT57Y29uc3R7ZW5jb2RlOm59PWUse3k6cn09bjtyZXR1cm4gciE9PXZvaWQgMD9bdCxlXTpbdCxtdCh7fSxlLHtlbmNvZGU6e3k6cjAoZGwodCwwKSl9LHNjYWxlOnt5OntndWlkZTpudWxsfX19KV19O2MxLnByb3BzPXt9O2NvbnN0IHJMPSgpPT4odCxlKT0+e2NvbnN0e2VuY29kZTpufT1lLHtzaXplOnJ9PW47cmV0dXJuIHIhPT12b2lkIDA/W3QsZV06W3QsbXQoe30sZSx7ZW5jb2RlOntzaXplOmUxKGRsKHQsMykpfX0pXX07ckwucHJvcHM9e307Y29uc3QgaUw9e2hvbGxvdzpENSxob2xsb3dEaWFtb25kOmo1LGhvbGxvd0hleGFnb246RjUsaG9sbG93U3F1YXJlOkI1LGhvbGxvd1RyaWFuZ2xlRG93bjp6NSxob2xsb3dUcmlhbmdsZTpXNSxob2xsb3dCb3d0aWU6RzUsaG9sbG93Q2lyY2xlOlo1LHBvaW50Olk1LHBsdXM6SDUsZGlhbW9uZDpWNSxzcXVhcmU6WDUsdHJpYW5nbGU6VTUsaGV4YWdvbjpxNSxjcm9zczpLNSxib3d0aWU6UTUsaHlwaGVuOko1LGxpbmU6dEwsdGljazplTCx0cmlhbmdsZURvd246bkwsY2lyY2xlOmpPfSxhTD10PT4oZSxuLHIsaSk9Pntjb25zdHt4OmEseTpvLHgxOnMseTE6YyxzaXplOmwsZHg6dSxkeTpmfT1yLFtkLGhdPWkuZ2V0U2l6ZSgpLHY9UHUobixyLHQpLGc9Yj0+e2NvbnN0IHg9KygodT09bnVsbD92b2lkIDA6dVtiXSl8fDApLF89KygoZj09bnVsbD92b2lkIDA6ZltiXSl8fDApLHc9cz8oK2FbYl0rICtzW2JdKS8yOithW2JdLE89Yz8oK29bYl0rICtjW2JdKS8yOitvW2JdLEU9dyt4LE09TytfO3JldHVybltFLE1dfSx5PWw/QXJyYXkuZnJvbShlLGI9Pntjb25zdFt4LF9dPWcoYiksdz0rbFtiXSxPPXcvZCxFPXcvaCxNPVt4LU8sXy1FXSxrPVt4K08sXytFXTtyZXR1cm5baS5tYXAodihNLGIpKSxpLm1hcCh2KGssYikpXX0pOkFycmF5LmZyb20oZSxiPT5baS5tYXAodihnKGIpLGIpKV0pO3JldHVybltlLHldfTthTC5wcm9wcz17ZGVmYXVsdFNoYXBlOiJob2xsb3ciLGRlZmF1bHRMYWJlbFNoYXBlOiJsYWJlbCIsY29tcG9zaXRlOiExLHNoYXBlOmlMLGNoYW5uZWxzOlsuLi5wYSh7c2hhcGVzOk9iamVjdC5rZXlzKGlMKX0pLHtuYW1lOiJ4IixyZXF1aXJlZDohMH0se25hbWU6InkiLHJlcXVpcmVkOiEwfSx7bmFtZToic2VyaWVzIixzY2FsZToiYmFuZCJ9LHtuYW1lOiJzaXplIixxdWFudGl0YXRpdmU6InNxcnQifSx7bmFtZToiZHgiLHNjYWxlOiJpZGVudGl0eSJ9LHtuYW1lOiJkeSIsc2NhbGU6ImlkZW50aXR5In1dLHByZUluZmVyZW5jZTpbLi4uRHIoKSx7dHlwZTpBdX0se3R5cGU6YzF9XSxwb3N0SW5mZXJlbmNlOlsuLi5VcigpLHt0eXBlOnJMfSwuLi5obCgpXX07Y29uc3Qgb0w9KHQsZSk9Pntjb25zdHtjb29yZGluYXRlOm59PWU7cmV0dXJuKHIsaSxhKT0+e2NvbnN0e2NvbG9yOm8sdGV4dDpzPSIiLGZvbnRTaXplOmMscm90YXRlOmw9MCx0cmFuc2Zvcm06dT0iIn09aSxmPXt0ZXh0OlN0cmluZyhzKSxzdHJva2U6byxmaWxsOm8sZm9udFNpemU6Y30sW1tkLGhdXT1yO3JldHVybiBPZShuZXcgQVApLnN0eWxlKCJ4IixkKS5zdHlsZSgieSIsaCkuY2FsbChsZSxhKS5zdHlsZSgidHJhbnNmb3JtIixgJHt1fXJvdGF0ZSgkeytsfSlgKS5zdHlsZSgiY29vcmRDZW50ZXIiLG4uZ2V0Q2VudGVyKCkpLmNhbGwobGUsZikuY2FsbChsZSx0KS5ub2RlKCl9fTtvTC5wcm9wcz17ZGVmYXVsdE1hcmtlcjoicG9pbnQiLGRlZmF1bHRFbnRlckFuaW1hdGlvbjoiZmFkZUluIixkZWZhdWx0VXBkYXRlQW5pbWF0aW9uOiJtb3JwaGluZyIsZGVmYXVsdEV4aXRBbmltYXRpb246ImZhZGVPdXQifTt2YXIgRk89ZnVuY3Rpb24odCxlKXt2YXIgbj17fTtmb3IodmFyIHIgaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKSYmZS5pbmRleE9mKHIpPDAmJihuW3JdPXRbcl0pO2lmKHQhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgaT0wLHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTtpPHIubGVuZ3RoO2krKyllLmluZGV4T2YocltpXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHQscltpXSkmJihuW3JbaV1dPXRbcltpXV0pO3JldHVybiBufTtmdW5jdGlvbiBMSCh0KXtjb25zdCBlPXQvTWF0aC5zcXJ0KDIpLG49dCpNYXRoLnNxcnQoMiksW3IsaV09Wy1lLGUtbl0sW2Esb109WzAsMF0sW3MsY109W2UsZS1uXTtyZXR1cm5bWyJNIixyLGldLFsiQSIsdCx0LDAsMSwxLHMsY10sWyJMIixhLG9dLFsiWiJdXX1mdW5jdGlvbiBSSCh0KXtjb25zdHttaW46ZSxtYXg6bn09dC5nZXRMb2NhbEJvdW5kcygpO3JldHVyblsoZVswXStuWzBdKSouNSwoZVsxXStuWzFdKSouNV19Y29uc3QgTkg9YWQodD0+e2NvbnN0IGU9dC5hdHRyaWJ1dGVzLHtjbGFzczpuLHg6cix5OmksdHJhbnNmb3JtOmF9PWUsbz1GTyhlLFsiY2xhc3MiLCJ4IiwieSIsInRyYW5zZm9ybSJdKSxzPSR0KG8sIm1hcmtlciIpLHtzaXplOmM9MjR9PXMsbD0oKT0+TEgoYy8yKSx1PU9lKHQpLm1heWJlQXBwZW5kKCJtYXJrZXIiLCgpPT5uZXcgQW4oe30pKS5jYWxsKGg9Pmgubm9kZSgpLnVwZGF0ZShPYmplY3QuYXNzaWduKHtzeW1ib2w6bH0scykpKS5ub2RlKCksW2YsZF09UkgodSk7T2UodCkubWF5YmVBcHBlbmQoInRleHQiLCJ0ZXh0Iikuc3R5bGUoIngiLGYpLnN0eWxlKCJ5IixkKS5jYWxsKGxlLG8pfSksc0w9KHQsZSk9Pntjb25zdCBuPUZPKHQsW10pO3JldHVybihyLGksYSk9Pntjb25zdHtjb2xvcjpvfT1hLHM9Rk8oYSxbImNvbG9yIl0pLHtjb2xvcjpjPW8sdGV4dDpsPSIifT1pLHU9e3RleHQ6U3RyaW5nKGwpLHN0cm9rZTpjLGZpbGw6Y30sW1tmLGRdXT1yO3JldHVybiBPZShuZXcgTkgpLmNhbGwobGUscykuc3R5bGUoInRyYW5zZm9ybSIsYHRyYW5zbGF0ZSgke2Z9LCR7ZH0pYCkuY2FsbChsZSx1KS5jYWxsKGxlLG4pLm5vZGUoKX19O3NMLnByb3BzPXtkZWZhdWx0TWFya2VyOiJwb2ludCIsZGVmYXVsdEVudGVyQW5pbWF0aW9uOiJmYWRlSW4iLGRlZmF1bHRVcGRhdGVBbmltYXRpb246Im1vcnBoaW5nIixkZWZhdWx0RXhpdEFuaW1hdGlvbjoiZmFkZU91dCJ9O2NvbnN0IGNMPSh0LGUpPT57Y29uc3R7Y29vcmRpbmF0ZTpufT1lO3JldHVybihyLGksYSk9Pntjb25zdHtjb2xvcjpvLHRleHQ6cz0iIixmb250U2l6ZTpjLHJvdGF0ZTpsPTAsdHJhbnNmb3JtOnU9IiJ9PWksZj17dGV4dDpTdHJpbmcocyksc3Ryb2tlOm8sZmlsbDpvLGZvbnRTaXplOmMsdGV4dEFsaWduOiJjZW50ZXIiLHRleHRCYXNlbGluZToibWlkZGxlIn0sW1tkLGhdXT1yO3JldHVybiBPZShuZXcgcG8pLnN0eWxlKCJ4IixkKS5zdHlsZSgieSIsaCkuY2FsbChsZSxhKS5zdHlsZSgidHJhbnNmb3JtT3JpZ2luIiwiY2VudGVyIGNlbnRlciIpLnN0eWxlKCJ0cmFuc2Zvcm0iLGAke3V9cm90YXRlKCR7bH1kZWcpYCkuc3R5bGUoImNvb3JkQ2VudGVyIixuLmdldENlbnRlcigpKS5jYWxsKGxlLGYpLmNhbGwobGUsdCkubm9kZSgpfX07Y0wucHJvcHM9e2RlZmF1bHRNYXJrZXI6InBvaW50IixkZWZhdWx0RW50ZXJBbmltYXRpb246ImZhZGVJbiIsZGVmYXVsdFVwZGF0ZUFuaW1hdGlvbjoibW9ycGhpbmciLGRlZmF1bHRFeGl0QW5pbWF0aW9uOiJmYWRlT3V0In07Y29uc3QgbDE9KCk9Pih0LGUpPT57Y29uc3R7ZGF0YTpufT1lO2lmKCFBcnJheS5pc0FycmF5KG4pfHxuLnNvbWUoYTApKXJldHVyblt0LGVdO2NvbnN0IHI9QXJyYXkuaXNBcnJheShuWzBdKT9uOltuXSxpPXIubWFwKG89Pm9bMF0pLGE9ci5tYXAobz0+b1sxXSk7cmV0dXJuW3QsbXQoe30sZSx7ZW5jb2RlOnt4OlpuKGkpLHk6Wm4oYSl9fSldfTtsMS5wcm9wcz17fTt2YXIgbEw9ZnVuY3Rpb24odCxlKXt2YXIgbj17fTtmb3IodmFyIHIgaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKSYmZS5pbmRleE9mKHIpPDAmJihuW3JdPXRbcl0pO2lmKHQhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgaT0wLHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTtpPHIubGVuZ3RoO2krKyllLmluZGV4T2YocltpXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHQscltpXSkmJihuW3JbaV1dPXRbcltpXV0pO3JldHVybiBufTtjb25zdCB1MT0oKT0+KHQsZSk9Pntjb25zdHtkYXRhOm4sc3R5bGU6cj17fX09ZSxpPWxMKGUsWyJkYXRhIiwic3R5bGUiXSkse3g6YSx5Om99PXIscz1sTChyLFsieCIsInkiXSk7aWYoYT09bnVsbHx8bz09bnVsbClyZXR1cm5bdCxlXTtjb25zdCBjPWF8fDAsbD1vfHwwO3JldHVybltbMF0sbXQoe30saSx7ZGF0YTpbMF0sY2FydGVzaWFuOiEwLGVuY29kZTp7eDpabihbY10pLHk6Wm4oW2xdKX0sc2NhbGU6e3g6e3R5cGU6ImlkZW50aXR5IixpbmRlcGVuZGVudDohMCxndWlkZTpudWxsfSx5Ont0eXBlOiJpZGVudGl0eSIsaW5kZXBlbmRlbnQ6ITAsZ3VpZGU6bnVsbH19LHN0eWxlOnN9KV19O3UxLnByb3BzPXt9O2NvbnN0IHVMPXt0ZXh0Om9MLGJhZGdlOnNMLHRhZzpjTH0sZkw9dD0+e2NvbnN0e2NhcnRlc2lhbjplPSExfT10O3JldHVybiBlP0FPOihuLHIsaSxhKT0+e2NvbnN0e3g6byx5OnN9PWksYz1QdShyLGksdCksbD1BcnJheS5mcm9tKG4sdT0+e2NvbnN0IGY9WytvW3VdLCtzW3VdXTtyZXR1cm5bYS5tYXAoYyhmLHUpKV19KTtyZXR1cm5bbixsXX19O2ZMLnByb3BzPXtkZWZhdWx0U2hhcGU6InRleHQiLGRlZmF1bHRMYWJlbFNoYXBlOiJsYWJlbCIsY29tcG9zaXRlOiExLHNoYXBlOnVMLGNoYW5uZWxzOlsuLi5wYSh7c2hhcGVzOk9iamVjdC5rZXlzKHVMKX0pLHtuYW1lOiJ4IixyZXF1aXJlZDohMH0se25hbWU6InkiLHJlcXVpcmVkOiEwfSx7bmFtZToidGV4dCIsc2NhbGU6ImlkZW50aXR5In0se25hbWU6ImZvbnRTaXplIixzY2FsZToiaWRlbnRpdHkifSx7bmFtZToicm90YXRlIixzY2FsZToiaWRlbnRpdHkifV0scHJlSW5mZXJlbmNlOlsuLi5EcigpLHt0eXBlOmwxfSx7dHlwZTp1MX1dLHBvc3RJbmZlcmVuY2U6Wy4uLlVyKCksLi4uaGwoKV19O2NvbnN0IEJPPSgpPT4odCxlKT0+W3QsbXQoe3NjYWxlOnt4OntwYWRkaW5nOjB9LHk6e3BhZGRpbmc6MH19fSxlKV07Qk8ucHJvcHM9e307Y29uc3QgZEw9e2NlbGw6VHUsaG9sbG93Om4xfSxoTD0oKT0+KHQsZSxuLHIpPT57Y29uc3R7eDppLHk6YX09bixvPWUueCxzPWUueSxjPUFycmF5LmZyb20odCxsPT57Y29uc3QgdT1vLmdldEJhbmRXaWR0aChvLmludmVydCgraVtsXSkpLGY9cy5nZXRCYW5kV2lkdGgocy5pbnZlcnQoK2FbbF0pKSxkPStpW2xdLGg9K2FbbF0sdj1bZCxoXSxnPVtkK3UsaF0seT1bZCt1LGgrZl0sYj1bZCxoK2ZdO3JldHVyblt2LGcseSxiXS5tYXAoeD0+ci5tYXAoeCkpfSk7cmV0dXJuW3QsY119O2hMLnByb3BzPXtkZWZhdWx0U2hhcGU6ImNlbGwiLGRlZmF1bHRMYWJlbFNoYXBlOiJsYWJlbCIsc2hhcGU6ZEwsY29tcG9zaXRlOiExLGNoYW5uZWxzOlsuLi5wYSh7c2hhcGVzOk9iamVjdC5rZXlzKGRMKX0pLHtuYW1lOiJ4IixyZXF1aXJlZDohMCxzY2FsZToiYmFuZCJ9LHtuYW1lOiJ5IixyZXF1aXJlZDohMCxzY2FsZToiYmFuZCJ9XSxwcmVJbmZlcmVuY2U6Wy4uLkRyKCkse3R5cGU6QXV9LHt0eXBlOmMxfSx7dHlwZTpCT31dLHBvc3RJbmZlcmVuY2U6Wy4uLlVyKCksLi4uaGwoKV19O2Z1bmN0aW9uIHpPKHQsZSxuKXt2YXIgcj1udWxsLGk9dnIoITApLGE9bnVsbCxvPVdwLHM9bnVsbCxjPUJ3KGwpO3Q9dHlwZW9mIHQ9PSJmdW5jdGlvbiI/dDp0PT09dm9pZCAwP01QOnZyKCt0KSxlPXR5cGVvZiBlPT0iZnVuY3Rpb24iP2U6dnIoZT09PXZvaWQgMD8wOitlKSxuPXR5cGVvZiBuPT0iZnVuY3Rpb24iP246bj09PXZvaWQgMD9rUDp2cigrbik7ZnVuY3Rpb24gbChmKXt2YXIgZCxoLHYsZz0oZj1PUChmKSkubGVuZ3RoLHksYj0hMSx4LF89bmV3IEFycmF5KGcpLHc9bmV3IEFycmF5KGcpO2ZvcihhPT1udWxsJiYocz1vKHg9YygpKSksZD0wO2Q8PWc7KytkKXtpZighKGQ8ZyYmaSh5PWZbZF0sZCxmKSk9PT1iKWlmKGI9IWIpaD1kLHMuYXJlYVN0YXJ0KCkscy5saW5lU3RhcnQoKTtlbHNle2ZvcihzLmxpbmVFbmQoKSxzLmxpbmVTdGFydCgpLHY9ZC0xO3Y+PWg7LS12KXMucG9pbnQoX1t2XSx3W3ZdKTtzLmxpbmVFbmQoKSxzLmFyZWFFbmQoKX1iJiYoX1tkXT0rdCh5LGQsZiksd1tkXT0rZSh5LGQsZikscy5wb2ludChyPytyKHksZCxmKTpfW2RdLG4/K24oeSxkLGYpOndbZF0pKX1pZih4KXJldHVybiBzPW51bGwseCsiInx8bnVsbH1mdW5jdGlvbiB1KCl7cmV0dXJuIHh1KCkuZGVmaW5lZChpKS5jdXJ2ZShvKS5jb250ZXh0KGEpfXJldHVybiBsLng9ZnVuY3Rpb24oZil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9dHlwZW9mIGY9PSJmdW5jdGlvbiI/Zjp2cigrZikscj1udWxsLGwpOnR9LGwueDA9ZnVuY3Rpb24oZil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9dHlwZW9mIGY9PSJmdW5jdGlvbiI/Zjp2cigrZiksbCk6dH0sbC54MT1mdW5jdGlvbihmKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1mPT1udWxsP251bGw6dHlwZW9mIGY9PSJmdW5jdGlvbiI/Zjp2cigrZiksbCk6cn0sbC55PWZ1bmN0aW9uKGYpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPXR5cGVvZiBmPT0iZnVuY3Rpb24iP2Y6dnIoK2YpLG49bnVsbCxsKTplfSxsLnkwPWZ1bmN0aW9uKGYpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPXR5cGVvZiBmPT0iZnVuY3Rpb24iP2Y6dnIoK2YpLGwpOmV9LGwueTE9ZnVuY3Rpb24oZil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49Zj09bnVsbD9udWxsOnR5cGVvZiBmPT0iZnVuY3Rpb24iP2Y6dnIoK2YpLGwpOm59LGwubGluZVgwPWwubGluZVkwPWZ1bmN0aW9uKCl7cmV0dXJuIHUoKS54KHQpLnkoZSl9LGwubGluZVkxPWZ1bmN0aW9uKCl7cmV0dXJuIHUoKS54KHQpLnkobil9LGwubGluZVgxPWZ1bmN0aW9uKCl7cmV0dXJuIHUoKS54KHIpLnkoZSl9LGwuZGVmaW5lZD1mdW5jdGlvbihmKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT10eXBlb2YgZj09ImZ1bmN0aW9uIj9mOnZyKCEhZiksbCk6aX0sbC5jdXJ2ZT1mdW5jdGlvbihmKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz1mLGEhPW51bGwmJihzPW8oYSkpLGwpOm99LGwuY29udGV4dD1mdW5jdGlvbihmKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj09bnVsbD9hPXM9bnVsbDpzPW8oYT1mKSxsKTphfSxsfWZ1bmN0aW9uIElIKCl7dmFyIHQ9ek8oKS5jdXJ2ZShsNSksZT10LmN1cnZlLG49dC5saW5lWDAscj10LmxpbmVYMSxpPXQubGluZVkwLGE9dC5saW5lWTE7cmV0dXJuIHQuYW5nbGU9dC54LGRlbGV0ZSB0LngsdC5zdGFydEFuZ2xlPXQueDAsZGVsZXRlIHQueDAsdC5lbmRBbmdsZT10LngxLGRlbGV0ZSB0LngxLHQucmFkaXVzPXQueSxkZWxldGUgdC55LHQuaW5uZXJSYWRpdXM9dC55MCxkZWxldGUgdC55MCx0Lm91dGVyUmFkaXVzPXQueTEsZGVsZXRlIHQueTEsdC5saW5lU3RhcnRBbmdsZT1mdW5jdGlvbigpe3JldHVybiBjMChuKCkpfSxkZWxldGUgdC5saW5lWDAsdC5saW5lRW5kQW5nbGU9ZnVuY3Rpb24oKXtyZXR1cm4gYzAocigpKX0sZGVsZXRlIHQubGluZVgxLHQubGluZUlubmVyUmFkaXVzPWZ1bmN0aW9uKCl7cmV0dXJuIGMwKGkoKSl9LGRlbGV0ZSB0LmxpbmVZMCx0LmxpbmVPdXRlclJhZGl1cz1mdW5jdGlvbigpe3JldHVybiBjMChhKCkpfSxkZWxldGUgdC5saW5lWTEsdC5jdXJ2ZT1mdW5jdGlvbihvKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9lKENPKG8pKTplKCkuX2N1cnZlfSx0fXZhciBESD1mdW5jdGlvbih0LGUpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiZlLmluZGV4T2Yocik8MCYmKG5bcl09dFtyXSk7aWYodCE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBpPTAscj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2k8ci5sZW5ndGg7aSsrKWUuaW5kZXhPZihyW2ldKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodCxyW2ldKSYmKG5bcltpXV09dFtyW2ldXSk7cmV0dXJuIG59O2Z1bmN0aW9uIGpIKHQsZSl7Y29uc3Qgbj1bXSxyPVtdLGk9W107bGV0IGE9ITEsbz1udWxsO2NvbnN0IHM9dC5sZW5ndGgvMjtmb3IobGV0IGM9MDtjPHM7YysrKXtjb25zdCBsPXRbY10sdT10W2Mrc107aWYoWy4uLmwsLi4udV0uc29tZShmPT4hZShmKSkpYT0hMDtlbHNle2lmKG4ucHVzaChsKSxyLnB1c2godSksYSYmbyl7YT0hMTtjb25zdFtmLGRdPW87aS5wdXNoKFtmLGwsZCx1XSl9bz1bbCx1XX19cmV0dXJuW24uY29uY2F0KHIpLGldfWNvbnN0IHBMPWFkKHQ9Pntjb25zdHthcmVhUGF0aDplLGNvbm5lY3RQYXRoOm4sYXJlYVN0eWxlOnIsY29ubmVjdFN0eWxlOml9PXQuYXR0cmlidXRlcyxhPXQub3duZXJEb2N1bWVudDtPZSh0KS5tYXliZUFwcGVuZCgiY29ubmVjdC1wYXRoIiwoKT0+YS5jcmVhdGVFbGVtZW50KCJwYXRoIix7fSkpLnN0eWxlKCJkIixuKS5jYWxsKGxlLGkpLE9lKHQpLm1heWJlQXBwZW5kKCJhcmVhLXBhdGgiLCgpPT5hLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHt9KSkuc3R5bGUoImQiLGUpLmNhbGwobGUscil9KSxabz0odCxlKT0+e2NvbnN0e2N1cnZlOm4sZ3JhZGllbnQ6cj0hMSxkZWZpbmVkOmk9bD0+IU51bWJlci5pc05hTihsKSYmbCE9PXZvaWQgMCYmbCE9PW51bGwsY29ubmVjdDphPSExfT10LG89REgodCxbImN1cnZlIiwiZ3JhZGllbnQiLCJkZWZpbmVkIiwiY29ubmVjdCJdKSx7Y29vcmRpbmF0ZTpzLGRvY3VtZW50OmN9PWU7cmV0dXJuKGwsdSxmKT0+e2NvbnN0e2NvbG9yOmR9PWYse2NvbG9yOmg9ZCxzZXJpZXNDb2xvcjp2LHNlcmllc1g6ZyxzZXJpZXNZOnl9PXUsYj1ocihzKSx4PV9QKHMsdSksXz1yJiZ2P3hQKHYsZyx5LHIsdm9pZCAwLGIpOmgsdz1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGYpLHtzdHJva2U6XyxmaWxsOl99KSx4JiZ7dHJhbnNmb3JtOnh9KSxvKSxbTyxFXT1qSChsLGkpLE09JHQodywiY29ubmVjdCIpLGs9ISFFLmxlbmd0aCxBPVA9Pk9lKGMuY3JlYXRlRWxlbWVudCgicGF0aCIse30pKS5zdHlsZSgiZCIsUHx8IiIpLmNhbGwobGUsdykubm9kZSgpO2lmKEJuKHMpKXtjb25zdCBQPUM9Pntjb25zdCBOPXMuZ2V0Q2VudGVyKCksTD1DLnNsaWNlKDAsQy5sZW5ndGgvMiksUj1DLnNsaWNlKEMubGVuZ3RoLzIpO3JldHVybiBJSCgpLmFuZ2xlKChJLEQpPT5pZChNcihMW0RdLE4pKSkub3V0ZXJSYWRpdXMoKEksRCk9PndyKExbRF0sTikpLmlubmVyUmFkaXVzKChJLEQpPT53cihSW0RdLE4pKS5kZWZpbmVkKChJLEQpPT5bLi4uTFtEXSwuLi5SW0RdXS5ldmVyeShpKSkuY3VydmUobikoUil9O3JldHVybiFrfHxhJiYhT2JqZWN0LmtleXMoTSkubGVuZ3RoP0EoUChPKSk6ayYmIWE/QShQKGwpKTpPZShuZXcgcEwpLnN0eWxlKCJhcmVhU3R5bGUiLHcpLnN0eWxlKCJjb25uZWN0U3R5bGUiLE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxNKSxvKSkuc3R5bGUoImFyZWFQYXRoIixQKGwpKS5zdHlsZSgiY29ubmVjdFBhdGgiLEUubWFwKFApLmpvaW4oIiIpKS5ub2RlKCl9ZWxzZXtjb25zdCBQPUM9Pntjb25zdCBOPUMuc2xpY2UoMCxDLmxlbmd0aC8yKSxMPUMuc2xpY2UoQy5sZW5ndGgvMik7cmV0dXJuIGI/ek8oKS55KChSLEkpPT5OW0ldWzFdKS54MSgoUixJKT0+TltJXVswXSkueDAoKFIsSSk9PkxbSV1bMF0pLmRlZmluZWQoKFIsSSk9PlsuLi5OW0ldLC4uLkxbSV1dLmV2ZXJ5KGkpKS5jdXJ2ZShuKShOKTp6TygpLngoKFIsSSk9Pk5bSV1bMF0pLnkxKChSLEkpPT5OW0ldWzFdKS55MCgoUixJKT0+TFtJXVsxXSkuZGVmaW5lZCgoUixJKT0+Wy4uLk5bSV0sLi4uTFtJXV0uZXZlcnkoaSkpLmN1cnZlKG4pKE4pfTtyZXR1cm4ha3x8YSYmIU9iamVjdC5rZXlzKE0pLmxlbmd0aD9BKFAoTykpOmsmJiFhP0EoUChsKSk6T2UobmV3IHBMKS5zdHlsZSgiYXJlYVN0eWxlIix3KS5zdHlsZSgiY29ubmVjdFN0eWxlIixPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sTSksbykpLnN0eWxlKCJhcmVhUGF0aCIsUChsKSkuc3R5bGUoImNvbm5lY3RQYXRoIixFLm1hcChQKS5qb2luKCIiKSkubm9kZSgpfX19O1pvLnByb3BzPXtkZWZhdWx0TWFya2VyOiJzbW9vdGgiLGRlZmF1bHRFbnRlckFuaW1hdGlvbjoiZmFkZUluIixkZWZhdWx0VXBkYXRlQW5pbWF0aW9uOiJtb3JwaGluZyIsZGVmYXVsdEV4aXRBbmltYXRpb246ImZhZGVPdXQifTtjb25zdCB2TD0odCxlKT0+e2NvbnN0e2Nvb3JkaW5hdGU6bn09ZTtyZXR1cm4oLi4ucik9Pntjb25zdCBpPUJuKG4pP0VPOldwO3JldHVybiBabyhPYmplY3QuYXNzaWduKHtjdXJ2ZTppfSx0KSxlKSguLi5yKX19O3ZMLnByb3BzPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxaby5wcm9wcykse2RlZmF1bHRNYXJrZXI6InNxdWFyZSJ9KTt2YXIgRkg9ZnVuY3Rpb24odCxlKXt2YXIgbj17fTtmb3IodmFyIHIgaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKSYmZS5pbmRleE9mKHIpPDAmJihuW3JdPXRbcl0pO2lmKHQhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgaT0wLHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTtpPHIubGVuZ3RoO2krKyllLmluZGV4T2YocltpXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHQscltpXSkmJihuW3JbaV1dPXRbcltpXV0pO3JldHVybiBufTtjb25zdCBnTD0odCxlKT0+e2NvbnN0IG49RkgodCxbXSkse2Nvb3JkaW5hdGU6cn09ZTtyZXR1cm4oLi4uaSk9Pntjb25zdCBhPUJuKHIpP2c1OmhyKHIpP081Onc1O3JldHVybiBabyhPYmplY3QuYXNzaWduKHtjdXJ2ZTphfSxuKSxlKSguLi5pKX19O2dMLnByb3BzPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxaby5wcm9wcykse2RlZmF1bHRNYXJrZXI6InNtb290aCJ9KTtjb25zdCB5TD0odCxlKT0+KC4uLm4pPT5abyhPYmplY3QuYXNzaWduKHtjdXJ2ZTpFNX0sdCksZSkoLi4ubik7eUwucHJvcHM9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LFpvLnByb3BzKSx7ZGVmYXVsdE1hcmtlcjoiaHZoIn0pO2NvbnN0IG1MPSh0LGUpPT4oLi4ubik9PlpvKE9iamVjdC5hc3NpZ24oe2N1cnZlOk01fSx0KSxlKSguLi5uKTttTC5wcm9wcz1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sWm8ucHJvcHMpLHtkZWZhdWx0TWFya2VyOiJ2aCJ9KTtjb25zdCBiTD0odCxlKT0+KC4uLm4pPT5abyhPYmplY3QuYXNzaWduKHtjdXJ2ZTprNX0sdCksZSkoLi4ubik7YkwucHJvcHM9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LFpvLnByb3BzKSx7ZGVmYXVsdE1hcmtlcjoiaHYifSk7Y29uc3QgeEw9e2FyZWE6dkwsc21vb3RoOmdMLGh2aDp5TCx2aDptTCxodjpiTH0sX0w9KCk9Pih0LGUsbixyKT0+e3ZhciBpLGE7Y29uc3R7eDpvLHk6cyx5MTpjLHNlcmllczpsfT1uLHt4OnUseTpmfT1lLGQ9bD9BcnJheS5mcm9tKGRyKHQsYj0+bFtiXSkudmFsdWVzKCkpOlt0XSxoPWQubWFwKGI9PmJbMF0pLmZpbHRlcihiPT5iIT09dm9pZCAwKSx2PSgoKGk9dT09bnVsbD92b2lkIDA6dS5nZXRCYW5kV2lkdGgpPT09bnVsbHx8aT09PXZvaWQgMD92b2lkIDA6aS5jYWxsKHUpKXx8MCkvMixnPSgoKGE9Zj09bnVsbD92b2lkIDA6Zi5nZXRCYW5kV2lkdGgpPT09bnVsbHx8YT09PXZvaWQgMD92b2lkIDA6YS5jYWxsKGYpKXx8MCkvMix5PUFycmF5LmZyb20oZCxiPT57Y29uc3QgeD1iLmxlbmd0aCxfPW5ldyBBcnJheSh4KjIpO2ZvcihsZXQgdz0wO3c8Yi5sZW5ndGg7dysrKXtjb25zdCBPPWJbd107X1t3XT1yLm1hcChbK29bT10rdiwrc1tPXStnXSksX1t4K3ddPXIubWFwKFsrb1tPXSt2LCtjW09dK2ddKX1yZXR1cm4gX30pO3JldHVybltoLHksZF19O19MLnByb3BzPXtkZWZhdWx0U2hhcGU6ImFyZWEiLGRlZmF1bHRMYWJlbFNoYXBlOiJsYWJlbCIsY29tcG9zaXRlOiExLHNoYXBlOnhMLGNoYW5uZWxzOlsuLi5wYSh7c2hhcGVzOk9iamVjdC5rZXlzKHhMKX0pLHtuYW1lOiJ4IixyZXF1aXJlZDohMH0se25hbWU6InkiLHJlcXVpcmVkOiEwfSx7bmFtZToic2l6ZSJ9LHtuYW1lOiJzZXJpZXMiLHNjYWxlOiJiYW5kIn1dLHByZUluZmVyZW5jZTpbLi4uRHIoKSx7dHlwZTpET30se3R5cGU6bzB9LHt0eXBlOkJPfV0scG9zdEluZmVyZW5jZTpbLi4uVXIoKSwuLi5fZCgpXSxpbnRlcmFjdGlvbjp7c2hhcmVUb29sdGlwOiEwLHNlcmllc1Rvb2x0aXA6ITAsY3Jvc3NoYWlyczohMH19O2NvbnN0IHdMPSgpPT4odCxlKT0+e2NvbnN0e2VuY29kZTpufT1lLHt5MTpyfT1uO2lmKHIpcmV0dXJuW3QsZV07Y29uc3RbaV09aG4obiwieSIpO3JldHVyblt0LG10KHt9LGUse2VuY29kZTp7eTE6Wm4oWy4uLmldKX19KV19O3dMLnByb3BzPXt9O2NvbnN0IE9MPSgpPT4odCxlKT0+e2NvbnN0e2VuY29kZTpufT1lLHt4MTpyfT1uO2lmKHIpcmV0dXJuW3QsZV07Y29uc3RbaV09aG4obiwieCIpO3JldHVyblt0LG10KHt9LGUse2VuY29kZTp7eDE6Wm4oWy4uLmldKX19KV19O09MLnByb3BzPXt9O3ZhciBTTD1mdW5jdGlvbih0LGUpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiZlLmluZGV4T2Yocik8MCYmKG5bcl09dFtyXSk7aWYodCE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBpPTAscj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2k8ci5sZW5ndGg7aSsrKWUuaW5kZXhPZihyW2ldKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodCxyW2ldKSYmKG5bcltpXV09dFtyW2ldXSk7cmV0dXJuIG59O2NvbnN0IFdPPSh0LGUpPT57Y29uc3R7YXJyb3c6bj0hMCxhcnJvd1NpemU6cj0iNDAlIn09dCxpPVNMKHQsWyJhcnJvdyIsImFycm93U2l6ZSJdKSx7ZG9jdW1lbnQ6YX09ZTtyZXR1cm4obyxzLGMpPT57Y29uc3R7ZGVmYXVsdENvbG9yOmx9PWMsdT1TTChjLFsiZGVmYXVsdENvbG9yIl0pLHtjb2xvcjpmPWwsdHJhbnNmb3JtOmR9PXMsW2gsdl09byxnPU9vKCk7aWYoZy5tb3ZlVG8oLi4uaCksZy5saW5lVG8oLi4udiksbil7Y29uc3RbeSxiXT1FeihoLHYse2Fycm93U2l6ZTpyfSk7Zy5tb3ZlVG8oLi4ueSksZy5saW5lVG8oLi4udiksZy5saW5lVG8oLi4uYil9cmV0dXJuIE9lKGEuY3JlYXRlRWxlbWVudCgicGF0aCIse30pKS5jYWxsKGxlLHUpLnN0eWxlKCJkIixnLnRvU3RyaW5nKCkpLnN0eWxlKCJzdHJva2UiLGYpLnN0eWxlKCJ0cmFuc2Zvcm0iLGQpLmNhbGwobGUsaSkubm9kZSgpfX07V08ucHJvcHM9e2RlZmF1bHRNYXJrZXI6ImxpbmUiLGRlZmF1bHRFbnRlckFuaW1hdGlvbjoiZmFkZUluIixkZWZhdWx0VXBkYXRlQW5pbWF0aW9uOiJtb3JwaGluZyIsZGVmYXVsdEV4aXRBbmltYXRpb246ImZhZGVPdXQifTtjb25zdCBFTD0odCxlKT0+e2NvbnN0e2Fycm93Om49ITF9PXQ7cmV0dXJuKC4uLnIpPT5XTyhPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2Fycm93Om59KSxlKSguLi5yKX07RUwucHJvcHM9e2RlZmF1bHRNYXJrZXI6ImxpbmUiLGRlZmF1bHRFbnRlckFuaW1hdGlvbjoiZmFkZUluIixkZWZhdWx0VXBkYXRlQW5pbWF0aW9uOiJtb3JwaGluZyIsZGVmYXVsdEV4aXRBbmltYXRpb246ImZhZGVPdXQifTt2YXIgTUw9ZnVuY3Rpb24odCxlKXt2YXIgbj17fTtmb3IodmFyIHIgaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKSYmZS5pbmRleE9mKHIpPDAmJihuW3JdPXRbcl0pO2lmKHQhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgaT0wLHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTtpPHIubGVuZ3RoO2krKyllLmluZGV4T2YocltpXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHQscltpXSkmJihuW3JbaV1dPXRbcltpXV0pO3JldHVybiBufTtjb25zdCBrTD0odCxlKT0+e2NvbnN0IG49TUwodCxbXSkse2Nvb3JkaW5hdGU6cixkb2N1bWVudDppfT1lO3JldHVybihhLG8scyk9Pntjb25zdHtjb2xvcjpjfT1zLGw9TUwocyxbImNvbG9yIl0pLHtjb2xvcjp1PWMsdHJhbnNmb3JtOmZ9PW8sW2QsaF09YSx2PU9vKCk7aWYodi5tb3ZlVG8oZFswXSxkWzFdKSxCbihyKSl7Y29uc3QgZz1yLmdldENlbnRlcigpO3YucXVhZHJhdGljQ3VydmVUbyhnWzBdLGdbMV0saFswXSxoWzFdKX1lbHNle2NvbnN0IGc9YlAoZCxoKSx5PXdyKGQsaCkvMjt6cCh2LGQsaCxnLHkpfXJldHVybiBPZShpLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHt9KSkuY2FsbChsZSxsKS5zdHlsZSgiZCIsdi50b1N0cmluZygpKS5zdHlsZSgic3Ryb2tlIix1KS5zdHlsZSgidHJhbnNmb3JtIixmKS5jYWxsKGxlLG4pLm5vZGUoKX19O2tMLnByb3BzPXtkZWZhdWx0TWFya2VyOiJzbW9vdGgiLGRlZmF1bHRFbnRlckFuaW1hdGlvbjoiZmFkZUluIixkZWZhdWx0VXBkYXRlQW5pbWF0aW9uOiJtb3JwaGluZyIsZGVmYXVsdEV4aXRBbmltYXRpb246ImZhZGVPdXQifTt2YXIgQUw9ZnVuY3Rpb24odCxlKXt2YXIgbj17fTtmb3IodmFyIHIgaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKSYmZS5pbmRleE9mKHIpPDAmJihuW3JdPXRbcl0pO2lmKHQhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgaT0wLHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTtpPHIubGVuZ3RoO2krKyllLmluZGV4T2YocltpXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHQscltpXSkmJihuW3JbaV1dPXRbcltpXV0pO3JldHVybiBufTtjb25zdCBUTD0odCxlKT0+e2NvbnN0IG49QUwodCxbXSkse2RvY3VtZW50OnJ9PWU7cmV0dXJuKGksYSxvKT0+e2NvbnN0e2NvbG9yOnN9PW8sYz1BTChvLFsiY29sb3IiXSkse2NvbG9yOmw9cyx0cmFuc2Zvcm06dX09YSxbZixkXT1pLGg9T28oKTtyZXR1cm4gaC5tb3ZlVG8oZlswXSxmWzFdKSxoLmJlemllckN1cnZlVG8oZlswXS8yK2RbMF0vMixmWzFdLGZbMF0vMitkWzBdLzIsZFsxXSxkWzBdLGRbMV0pLE9lKHIuY3JlYXRlRWxlbWVudCgicGF0aCIse30pKS5jYWxsKGxlLGMpLnN0eWxlKCJkIixoLnRvU3RyaW5nKCkpLnN0eWxlKCJzdHJva2UiLGwpLnN0eWxlKCJ0cmFuc2Zvcm0iLHUpLmNhbGwobGUsbikubm9kZSgpfX07VEwucHJvcHM9e2RlZmF1bHRNYXJrZXI6InNtb290aCIsZGVmYXVsdEVudGVyQW5pbWF0aW9uOiJmYWRlSW4iLGRlZmF1bHRVcGRhdGVBbmltYXRpb246Im1vcnBoaW5nIixkZWZhdWx0RXhpdEFuaW1hdGlvbjoiZmFkZU91dCJ9O3ZhciBQTD1mdW5jdGlvbih0LGUpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiZlLmluZGV4T2Yocik8MCYmKG5bcl09dFtyXSk7aWYodCE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBpPTAscj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2k8ci5sZW5ndGg7aSsrKWUuaW5kZXhPZihyW2ldKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodCxyW2ldKSYmKG5bcltpXV09dFtyW2ldXSk7cmV0dXJuIG59O2Z1bmN0aW9uIEJIKHQsZSxuLHIpe2NvbnN0IGk9T28oKTtpZihCbihuKSl7Y29uc3QgYT1uLmdldENlbnRlcigpLG89d3IodCxhKSxjPSh3cihlLGEpLW8pKnIrbztyZXR1cm4gaS5tb3ZlVG8odFswXSx0WzFdKSx6cChpLHQsZSxhLGMpLGkubGluZVRvKGVbMF0sZVsxXSksaX1yZXR1cm4gaHIobik/KGkubW92ZVRvKHRbMF0sdFsxXSksaS5saW5lVG8odFswXSsoZVswXS10WzBdKSpyLHRbMV0pLGkubGluZVRvKHRbMF0rKGVbMF0tdFswXSkqcixlWzFdKSxpLmxpbmVUbyhlWzBdLGVbMV0pLGkpOihpLm1vdmVUbyh0WzBdLHRbMV0pLGkubGluZVRvKHRbMF0sdFsxXSsoZVsxXS10WzFdKSpyKSxpLmxpbmVUbyhlWzBdLHRbMV0rKGVbMV0tdFsxXSkqciksaS5saW5lVG8oZVswXSxlWzFdKSxpKX1jb25zdCBDTD0odCxlKT0+e2NvbnN0e2Nvcm5lclJhdGlvOm49MS8zfT10LHI9UEwodCxbImNvcm5lclJhdGlvIl0pLHtjb29yZGluYXRlOmksZG9jdW1lbnQ6YX09ZTtyZXR1cm4obyxzLGMpPT57Y29uc3R7ZGVmYXVsdENvbG9yOmx9PWMsdT1QTChjLFsiZGVmYXVsdENvbG9yIl0pLHtjb2xvcjpmPWwsdHJhbnNmb3JtOmR9PXMsW2gsdl09byxnPUJIKGgsdixpLG4pO3JldHVybiBPZShhLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHt9KSkuY2FsbChsZSx1KS5zdHlsZSgiZCIsZy50b1N0cmluZygpKS5zdHlsZSgic3Ryb2tlIixmKS5zdHlsZSgidHJhbnNmb3JtIixkKS5jYWxsKGxlLHIpLm5vZGUoKX19O0NMLnByb3BzPXtkZWZhdWx0TWFya2VyOiJ2aHYiLGRlZmF1bHRFbnRlckFuaW1hdGlvbjoiZmFkZUluIixkZWZhdWx0VXBkYXRlQW5pbWF0aW9uOiJtb3JwaGluZyIsZGVmYXVsdEV4aXRBbmltYXRpb246ImZhZGVPdXQifTtjb25zdCBMTD17bGluazpFTCxhcmM6a0wsc21vb3RoOlRMLHZodjpDTH0sR089dD0+KGUsbixyLGkpPT57Y29uc3R7eDphLHk6byx4MTpzPWEseTE6Yz1vfT1yLGw9UHUobixyLHQpLHU9ZS5tYXAoZj0+W2kubWFwKGwoWythW2ZdLCtvW2ZdXSxmKSksaS5tYXAobChbK3NbZl0sK2NbZl1dLGYpKV0pO3JldHVybltlLHVdfTtHTy5wcm9wcz17ZGVmYXVsdFNoYXBlOiJsaW5rIixkZWZhdWx0TGFiZWxTaGFwZToibGFiZWwiLGNvbXBvc2l0ZTohMSxzaGFwZTpMTCxjaGFubmVsczpbLi4ucGEoe3NoYXBlczpPYmplY3Qua2V5cyhMTCl9KSx7bmFtZToieCIscmVxdWlyZWQ6ITB9LHtuYW1lOiJ5IixyZXF1aXJlZDohMH1dLHByZUluZmVyZW5jZTpbLi4uRHIoKSx7dHlwZTp3TH0se3R5cGU6T0x9XSxwb3N0SW5mZXJlbmNlOlsuLi5VcigpLC4uLmhsKCldfTt2YXIgekg9ZnVuY3Rpb24odCxlKXt2YXIgbj17fTtmb3IodmFyIHIgaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKSYmZS5pbmRleE9mKHIpPDAmJihuW3JdPXRbcl0pO2lmKHQhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgaT0wLHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTtpPHIubGVuZ3RoO2krKyllLmluZGV4T2YocltpXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHQscltpXSkmJihuW3JbaV1dPXRbcltpXV0pO3JldHVybiBufTtjb25zdCBSTD0odCxlKT0+e2NvbnN0e2Nvb3JkaW5hdGU6bixkb2N1bWVudDpyfT1lO3JldHVybihpLGEsbyk9Pntjb25zdHtjb2xvcjpzfT1vLGM9ekgobyxbImNvbG9yIl0pLHtjb2xvcjpsPXMsc3JjOnU9IiIsc2l6ZTpmPTMyLHRyYW5zZm9ybTpkPSIifT1hO2xldHt3aWR0aDpoPWYsaGVpZ2h0OnY9Zn09dDtjb25zdFtbZyx5XV09aSxbYix4XT1uLmdldFNpemUoKTtoPXR5cGVvZiBoPT0ic3RyaW5nIj9hMShoKSpiOmgsdj10eXBlb2Ygdj09InN0cmluZyI/YTEodikqeDp2O2NvbnN0IF89Zy1OdW1iZXIoaCkvMix3PXktTnVtYmVyKHYpLzI7cmV0dXJuIE9lKHIuY3JlYXRlRWxlbWVudCgiaW1hZ2UiLHt9KSkuY2FsbChsZSxjKS5zdHlsZSgieCIsXykuc3R5bGUoInkiLHcpLnN0eWxlKCJzcmMiLHUpLnN0eWxlKCJzdHJva2UiLGwpLnN0eWxlKCJ0cmFuc2Zvcm0iLGQpLmNhbGwobGUsdCkuc3R5bGUoIndpZHRoIixoKS5zdHlsZSgiaGVpZ2h0Iix2KS5ub2RlKCl9fTtSTC5wcm9wcz17ZGVmYXVsdEVudGVyQW5pbWF0aW9uOiJmYWRlSW4iLGRlZmF1bHRVcGRhdGVBbmltYXRpb246Im1vcnBoaW5nIixkZWZhdWx0RXhpdEFuaW1hdGlvbjoiZmFkZU91dCJ9O2NvbnN0IE5MPXtpbWFnZTpSTH0sSUw9dD0+e2NvbnN0e2NhcnRlc2lhbjplfT10O3JldHVybiBlP0FPOihuLHIsaSxhKT0+e2NvbnN0e3g6byx5OnN9PWksYz1QdShyLGksdCksbD1BcnJheS5mcm9tKG4sdT0+e2NvbnN0IGY9WytvW3VdLCtzW3VdXTtyZXR1cm5bYS5tYXAoYyhmLHUpKV19KTtyZXR1cm5bbixsXX19O0lMLnByb3BzPXtkZWZhdWx0U2hhcGU6ImltYWdlIixkZWZhdWx0TGFiZWxTaGFwZToibGFiZWwiLGNvbXBvc2l0ZTohMSxzaGFwZTpOTCxjaGFubmVsczpbLi4ucGEoe3NoYXBlczpPYmplY3Qua2V5cyhOTCl9KSx7bmFtZToieCIscmVxdWlyZWQ6ITB9LHtuYW1lOiJ5IixyZXF1aXJlZDohMH0se25hbWU6InNyYyIsc2NhbGU6ImlkZW50aXR5In0se25hbWU6InNpemUifV0scHJlSW5mZXJlbmNlOlsuLi5EcigpLHt0eXBlOmwxfSx7dHlwZTp1MX1dLHBvc3RJbmZlcmVuY2U6Wy4uLlVyKCksLi4uaGwoKV19O3ZhciBXSD1mdW5jdGlvbih0LGUpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiZlLmluZGV4T2Yocik8MCYmKG5bcl09dFtyXSk7aWYodCE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBpPTAscj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2k8ci5sZW5ndGg7aSsrKWUuaW5kZXhPZihyW2ldKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodCxyW2ldKSYmKG5bcltpXV09dFtyW2ldXSk7cmV0dXJuIG59O2Z1bmN0aW9uIEdIKHQsZSl7Y29uc3Qgbj1PbygpO2lmKEJuKGUpKXtjb25zdCByPWUuZ2V0Q2VudGVyKCksaT1bLi4udCx0WzBdXSxhPWkubWFwKG89PndyKG8scikpO3JldHVybiBpLmZvckVhY2goKG8scyk9PntpZihzPT09MCl7bi5tb3ZlVG8ob1swXSxvWzFdKTtyZXR1cm59Y29uc3QgYz1hW3NdLGw9dFtzLTFdLHU9YVtzLTFdO3UhPT12b2lkIDAmJk1hdGguYWJzKGMtdSk8MWUtMTA/enAobixsLG8scixjKTpuLmxpbmVUbyhvWzBdLG9bMV0pfSksbi5jbG9zZVBhdGgoKSxufXJldHVybiBTeihuLHQpfWNvbnN0IERMPSh0LGUpPT57Y29uc3R7Y29vcmRpbmF0ZTpuLGRvY3VtZW50OnJ9PWU7cmV0dXJuKGksYSxvKT0+e2NvbnN0e2NvbG9yOnN9PW8sYz1XSChvLFsiY29sb3IiXSkse2NvbG9yOmw9cyx0cmFuc2Zvcm06dX09YSxmPUdIKGksbik7cmV0dXJuIE9lKHIuY3JlYXRlRWxlbWVudCgicGF0aCIse30pKS5jYWxsKGxlLGMpLnN0eWxlKCJkIixmLnRvU3RyaW5nKCkpLnN0eWxlKCJzdHJva2UiLGwpLnN0eWxlKCJmaWxsIixsKS5zdHlsZSgidHJhbnNmb3JtIix1KS5jYWxsKGxlLHQpLm5vZGUoKX19O0RMLnByb3BzPXtkZWZhdWx0TWFya2VyOiJzcXVhcmUiLGRlZmF1bHRFbnRlckFuaW1hdGlvbjoiZmFkZUluIixkZWZhdWx0VXBkYXRlQW5pbWF0aW9uOiJtb3JwaGluZyIsZGVmYXVsdEV4aXRBbmltYXRpb246ImZhZGVPdXQifTt2YXIgakw9ZnVuY3Rpb24odCxlKXt2YXIgbj17fTtmb3IodmFyIHIgaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKSYmZS5pbmRleE9mKHIpPDAmJihuW3JdPXRbcl0pO2lmKHQhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgaT0wLHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTtpPHIubGVuZ3RoO2krKyllLmluZGV4T2YocltpXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHQscltpXSkmJihuW3JbaV1dPXRbcltpXV0pO3JldHVybiBufTtmdW5jdGlvbiAkSCh0LGUpe2NvbnN0W24scixpLGFdPXQsbz1PbygpO2lmKEJuKGUpKXtjb25zdCBzPWUuZ2V0Q2VudGVyKCksYz13cihzLG4pO3JldHVybiBvLm1vdmVUbyhuWzBdLG5bMV0pLG8ucXVhZHJhdGljQ3VydmVUbyhzWzBdLHNbMV0saVswXSxpWzFdKSx6cChvLGksYSxzLGMpLG8ucXVhZHJhdGljQ3VydmVUbyhzWzBdLHNbMV0sclswXSxyWzFdKSx6cChvLHIsbixzLGMpLG8uY2xvc2VQYXRoKCksb31yZXR1cm4gby5tb3ZlVG8oblswXSxuWzFdKSxvLmJlemllckN1cnZlVG8oblswXS8yK2lbMF0vMixuWzFdLG5bMF0vMitpWzBdLzIsaVsxXSxpWzBdLGlbMV0pLG8ubGluZVRvKGFbMF0sYVsxXSksby5iZXppZXJDdXJ2ZVRvKGFbMF0vMityWzBdLzIsYVsxXSxhWzBdLzIrclswXS8yLHJbMV0sclswXSxyWzFdKSxvLmxpbmVUbyhuWzBdLG5bMV0pLG8uY2xvc2VQYXRoKCksb31jb25zdCBGTD0odCxlKT0+e2NvbnN0IG49akwodCxbXSkse2Nvb3JkaW5hdGU6cixkb2N1bWVudDppfT1lO3JldHVybihhLG8scyk9Pntjb25zdHtjb2xvcjpjfT1zLGw9akwocyxbImNvbG9yIl0pLHtjb2xvcjp1PWMsdHJhbnNmb3JtOmZ9PW8sZD0kSChhLHIpO3JldHVybiBPZShpLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHt9KSkuY2FsbChsZSxsKS5zdHlsZSgiZCIsZC50b1N0cmluZygpKS5zdHlsZSgiZmlsbCIsdXx8Yykuc3R5bGUoInN0cm9rZSIsdXx8Yykuc3R5bGUoInRyYW5zZm9ybSIsZikuY2FsbChsZSxuKS5ub2RlKCl9fTtGTC5wcm9wcz17ZGVmYXVsdE1hcmtlcjoic3F1YXJlIixkZWZhdWx0RW50ZXJBbmltYXRpb246ImZhZGVJbiIsZGVmYXVsdFVwZGF0ZUFuaW1hdGlvbjoibW9ycGhpbmciLGRlZmF1bHRFeGl0QW5pbWF0aW9uOiJmYWRlT3V0In07Y29uc3QgQkw9e3BvbHlnb246REwscmliYm9uOkZMfSx6TD0oKT0+KHQsZSxuLHIpPT57Y29uc3QgaT1PYmplY3QuZW50cmllcyhuKS5maWx0ZXIoKFtzXSk9PnMuc3RhcnRzV2l0aCgieCIpKS5tYXAoKFssc10pPT5zKSxhPU9iamVjdC5lbnRyaWVzKG4pLmZpbHRlcigoW3NdKT0+cy5zdGFydHNXaXRoKCJ5IikpLm1hcCgoWyxzXSk9PnMpLG89dC5tYXAocz0+e2NvbnN0IGM9W107Zm9yKGxldCBsPTA7bDxpLmxlbmd0aDtsKyspe2NvbnN0IHU9aVtsXVtzXTtpZih1PT09dm9pZCAwKWJyZWFrO2NvbnN0IGY9YVtsXVtzXTtjLnB1c2goci5tYXAoWyt1LCtmXSkpfXJldHVybiBjfSk7cmV0dXJuW3Qsb119O3pMLnByb3BzPXtkZWZhdWx0U2hhcGU6InBvbHlnb24iLGRlZmF1bHRMYWJlbFNoYXBlOiJsYWJlbCIsY29tcG9zaXRlOiExLHNoYXBlOkJMLGNoYW5uZWxzOlsuLi5wYSh7c2hhcGVzOk9iamVjdC5rZXlzKEJMKX0pLHtuYW1lOiJ4IixyZXF1aXJlZDohMH0se25hbWU6InkiLHJlcXVpcmVkOiEwfV0scHJlSW5mZXJlbmNlOlsuLi5EcigpXSxwb3N0SW5mZXJlbmNlOlsuLi5VcigpLC4uLmhsKCldfTt2YXIgWkg9ZnVuY3Rpb24odCxlKXt2YXIgbj17fTtmb3IodmFyIHIgaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKSYmZS5pbmRleE9mKHIpPDAmJihuW3JdPXRbcl0pO2lmKHQhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgaT0wLHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTtpPHIubGVuZ3RoO2krKyllLmluZGV4T2YocltpXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHQscltpXSkmJihuW3JbaV1dPXRbcltpXV0pO3JldHVybiBufTtmdW5jdGlvbiBZSCh0LGUpe2NvbnN0IG49T28oKTtpZighQm4oZSkpbi5tb3ZlVG8oLi4udFswXSksbi5saW5lVG8oLi4udFsxXSksbi5tb3ZlVG8oLi4udFsyXSksbi5saW5lVG8oLi4udFszXSksbi5tb3ZlVG8oLi4udFs0XSksbi5saW5lVG8oLi4udFs1XSksbi5saW5lVG8oLi4udFs2XSksbi5saW5lVG8oLi4udFs3XSksbi5jbG9zZVBhdGgoKSxuLm1vdmVUbyguLi50WzhdKSxuLmxpbmVUbyguLi50WzldKSxuLm1vdmVUbyguLi50WzEwXSksbi5saW5lVG8oLi4udFsxMV0pLG4ubW92ZVRvKC4uLnRbMTJdKSxuLmxpbmVUbyguLi50WzEzXSk7ZWxzZXtjb25zdCByPWUuZ2V0Q2VudGVyKCksW2ksYV09cixvPXdvKE1yKHRbMF0scikpLHM9d28oTXIodFsxXSxyKSksYz13cihyLHRbMl0pLGw9d3Iocix0WzNdKSx1PXdyKHIsdFs4XSksZj13cihyLHRbMTBdKSxkPXdyKHIsdFsxMV0pO24ubW92ZVRvKC4uLnRbMF0pLG4uYXJjKGksYSxjLG8scyksbi5hcmMoaSxhLGMscyxvLCEwKSxuLm1vdmVUbyguLi50WzJdKSxuLmxpbmVUbyguLi50WzNdKSxuLm1vdmVUbyguLi50WzRdKSxuLmFyYyhpLGEsbCxvLHMpLG4ubGluZVRvKC4uLnRbNl0pLG4uYXJjKGksYSxmLHMsbywhMCksbi5jbG9zZVBhdGgoKSxuLm1vdmVUbyguLi50WzhdKSxuLmFyYyhpLGEsdSxvLHMpLG4uYXJjKGksYSx1LHMsbywhMCksbi5tb3ZlVG8oLi4udFsxMF0pLG4ubGluZVRvKC4uLnRbMTFdKSxuLm1vdmVUbyguLi50WzEyXSksbi5hcmMoaSxhLGQsbyxzKSxuLmFyYyhpLGEsZCxzLG8sITApfXJldHVybiBufWNvbnN0IFdMPSh0LGUpPT57Y29uc3R7Y29vcmRpbmF0ZTpuLGRvY3VtZW50OnJ9PWU7cmV0dXJuKGksYSxvKT0+e2NvbnN0e2NvbG9yOnMsdHJhbnNmb3JtOmN9PWEse2NvbG9yOmwsZmlsbDp1PWwsc3Ryb2tlOmY9bH09byxkPVpIKG8sWyJjb2xvciIsImZpbGwiLCJzdHJva2UiXSksaD1ZSChpLG4pO3JldHVybiBPZShyLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHt9KSkuY2FsbChsZSxkKS5zdHlsZSgiZCIsaC50b1N0cmluZygpKS5zdHlsZSgic3Ryb2tlIixmKS5zdHlsZSgiZmlsbCIsc3x8dSkuc3R5bGUoInRyYW5zZm9ybSIsYykuY2FsbChsZSx0KS5ub2RlKCl9fTtXTC5wcm9wcz17ZGVmYXVsdE1hcmtlcjoicG9pbnQiLGRlZmF1bHRFbnRlckFuaW1hdGlvbjoiZmFkZUluIixkZWZhdWx0VXBkYXRlQW5pbWF0aW9uOiJtb3JwaGluZyIsZGVmYXVsdEV4aXRBbmltYXRpb246ImZhZGVPdXQifTt2YXIgSEg9ZnVuY3Rpb24odCxlKXt2YXIgbj17fTtmb3IodmFyIHIgaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKSYmZS5pbmRleE9mKHIpPDAmJihuW3JdPXRbcl0pO2lmKHQhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgaT0wLHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTtpPHIubGVuZ3RoO2krKyllLmluZGV4T2YocltpXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHQscltpXSkmJihuW3JbaV1dPXRbcltpXV0pO3JldHVybiBufTtmdW5jdGlvbiBWSCh0LGUsbj00KXtjb25zdCByPU9vKCk7aWYoIUJuKGUpKXJldHVybiByLm1vdmVUbyguLi50WzJdKSxyLmxpbmVUbyguLi50WzNdKSxyLmxpbmVUbyh0WzNdWzBdLW4sdFszXVsxXSksci5saW5lVG8odFsxMF1bMF0tbix0WzEwXVsxXSksci5saW5lVG8odFsxMF1bMF0rbix0WzEwXVsxXSksci5saW5lVG8odFszXVswXStuLHRbM11bMV0pLHIubGluZVRvKC4uLnRbM10pLHIuY2xvc2VQYXRoKCksci5tb3ZlVG8oLi4udFsxMF0pLHIubGluZVRvKC4uLnRbMTFdKSxyLm1vdmVUbyh0WzNdWzBdK24vMix0WzhdWzFdKSxyLmFyYyh0WzNdWzBdLHRbOF1bMV0sbi8yLDAsTWF0aC5QSSoyKSxyLmNsb3NlUGF0aCgpLHI7Y29uc3QgaT1lLmdldENlbnRlcigpLFthLG9dPWkscz13cihpLHRbM10pLGM9d3IoaSx0WzhdKSxsPXdyKGksdFsxMF0pLHU9d28oTXIodFsyXSxpKSksZj1NYXRoLmFzaW4obi9jKSxkPXUtZixoPXUrZjtyLm1vdmVUbyguLi50WzJdKSxyLmxpbmVUbyguLi50WzNdKSxyLm1vdmVUbyhNYXRoLmNvcyhkKSpzK2EsTWF0aC5zaW4oZCkqcytvKSxyLmFyYyhhLG8scyxkLGgpLHIubGluZVRvKE1hdGguY29zKGgpKmwrYSxNYXRoLnNpbihoKSpsK28pLHIuYXJjKGEsbyxsLGgsZCwhMCksci5saW5lVG8oTWF0aC5jb3MoZCkqcythLE1hdGguc2luKGQpKnMrbyksci5jbG9zZVBhdGgoKSxyLm1vdmVUbyguLi50WzEwXSksci5saW5lVG8oLi4udFsxMV0pO2NvbnN0IHY9KGQraCkvMjtyZXR1cm4gci5tb3ZlVG8oTWF0aC5jb3ModikqKGMrbi8yKSthLE1hdGguc2luKHYpKihjK24vMikrbyksci5hcmMoTWF0aC5jb3ModikqYythLE1hdGguc2luKHYpKmMrbyxuLzIsdixNYXRoLlBJKjIrdiksci5jbG9zZVBhdGgoKSxyfWNvbnN0IEdMPSh0LGUpPT57Y29uc3R7Y29vcmRpbmF0ZTpuLGRvY3VtZW50OnJ9PWU7cmV0dXJuKGksYSxvKT0+e2NvbnN0e2NvbG9yOnMsdHJhbnNmb3JtOmN9PWEsbD00LHtjb2xvcjp1LGZpbGw6Zj11LHN0cm9rZTpkPXV9PW8saD1ISChvLFsiY29sb3IiLCJmaWxsIiwic3Ryb2tlIl0pLHY9VkgoaSxuLGwpO3JldHVybiBPZShyLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHt9KSkuY2FsbChsZSxoKS5zdHlsZSgiZCIsdi50b1N0cmluZygpKS5zdHlsZSgic3Ryb2tlIixkKS5zdHlsZSgiZmlsbCIsc3x8Zikuc3R5bGUoInRyYW5zZm9ybSIsYykuY2FsbChsZSx0KS5ub2RlKCl9fTtHTC5wcm9wcz17ZGVmYXVsdE1hcmtlcjoicG9pbnQiLGRlZmF1bHRFbnRlckFuaW1hdGlvbjoiZmFkZUluIixkZWZhdWx0VXBkYXRlQW5pbWF0aW9uOiJtb3JwaGluZyIsZGVmYXVsdEV4aXRBbmltYXRpb246ImZhZGVPdXQifTtjb25zdCAkTD17Ym94OldMLHZpb2xpbjpHTH0sWkw9KCk9Pih0LGUsbixyKT0+e2NvbnN0e3g6aSx5OmEseTE6byx5MjpzLHkzOmMseTQ6bCxzZXJpZXM6dX09bixmPWUueCxkPWUuc2VyaWVzLGg9QXJyYXkuZnJvbSh0LHY9Pntjb25zdCBnPWYuZ2V0QmFuZFdpZHRoKGYuaW52ZXJ0KCtpW3ZdKSkseT1kP2QuZ2V0QmFuZFdpZHRoKGQuaW52ZXJ0KCsodT09bnVsbD92b2lkIDA6dVt2XSkpKToxLGI9Zyp5LHg9KCsodT09bnVsbD92b2lkIDA6dVt2XSl8fDApKmcsXz0raVt2XSt4K2IvMixbdyxPLEUsTSxrXT1bK2Fbdl0sK29bdl0sK3Nbdl0sK2Nbdl0sK2xbdl1dO3JldHVybltbXy1iLzIsa10sW18rYi8yLGtdLFtfLGtdLFtfLE1dLFtfLWIvMixNXSxbXytiLzIsTV0sW18rYi8yLE9dLFtfLWIvMixPXSxbXy1iLzIsRV0sW18rYi8yLEVdLFtfLE9dLFtfLHddLFtfLWIvMix3XSxbXytiLzIsd11dLm1hcChQPT5yLm1hcChQKSl9KTtyZXR1cm5bdCxoXX07WkwucHJvcHM9e2RlZmF1bHRTaGFwZToiYm94IixkZWZhdWx0TGFiZWxTaGFwZToibGFiZWwiLGNvbXBvc2l0ZTohMSxzaGFwZTokTCxjaGFubmVsczpbLi4ucGEoe3NoYXBlczpPYmplY3Qua2V5cygkTCl9KSx7bmFtZToieCIsc2NhbGU6ImJhbmQiLHJlcXVpcmVkOiEwfSx7bmFtZToieSIscmVxdWlyZWQ6ITB9LHtuYW1lOiJzZXJpZXMiLHNjYWxlOiJiYW5kIn1dLHByZUluZmVyZW5jZTpbLi4uRHIoKSx7dHlwZTpBdX1dLHBvc3RJbmZlcmVuY2U6Wy4uLlVyKCksLi4uX2QoKV0saW50ZXJhY3Rpb246e3NoYXJlVG9vbHRpcDohMH19O2NvbnN0IFlMPXt2ZWN0b3I6V099LEhMPSgpPT4odCxlLG4scik9Pntjb25zdHt4OmkseTphLHNpemU6byxyb3RhdGU6c309bixbYyxsXT1yLmdldFNpemUoKSx1PXQubWFwKGY9Pntjb25zdCBkPStzW2ZdLzE4MCpNYXRoLlBJLGg9K29bZl0sdj1oL2MsZz1oL2wseT12Kk1hdGguY29zKGQpLGI9LWcqTWF0aC5zaW4oZCk7cmV0dXJuW3IubWFwKFsraVtmXS15LzIsK2FbZl0tYi8yXSksci5tYXAoWytpW2ZdK3kvMiwrYVtmXStiLzJdKV19KTtyZXR1cm5bdCx1XX07SEwucHJvcHM9e2RlZmF1bHRTaGFwZToidmVjdG9yIixkZWZhdWx0TGFiZWxTaGFwZToibGFiZWwiLGNvbXBvc2l0ZTohMSxzaGFwZTpZTCxjaGFubmVsczpbLi4ucGEoe3NoYXBlczpPYmplY3Qua2V5cyhZTCl9KSx7bmFtZToieCIscmVxdWlyZWQ6ITB9LHtuYW1lOiJ5IixyZXF1aXJlZDohMH0se25hbWU6InJvdGF0ZSIscmVxdWlyZWQ6ITAsc2NhbGU6ImlkZW50aXR5In0se25hbWU6InNpemUiLHJlcXVpcmVkOiEwfV0scHJlSW5mZXJlbmNlOlsuLi5EcigpXSxwb3N0SW5mZXJlbmNlOlsuLi5VcigpLC4uLmhsKCldfTt2YXIgVkw9ZnVuY3Rpb24odCxlKXt2YXIgbj17fTtmb3IodmFyIHIgaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKSYmZS5pbmRleE9mKHIpPDAmJihuW3JdPXRbcl0pO2lmKHQhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgaT0wLHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTtpPHIubGVuZ3RoO2krKyllLmluZGV4T2YocltpXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHQscltpXSkmJihuW3JbaV1dPXRbcltpXV0pO3JldHVybiBufTtmdW5jdGlvbiBYSCh0LGUsbil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudCgicGF0aCIse3N0eWxlOk9iamVjdC5hc3NpZ24oe2Q6YE0gJHtlfSwke2V9IEwgLSR7ZX0sMCBMICR7ZX0sLSR7ZX0gTCAwLDAgWmAsdHJhbnNmb3JtT3JpZ2luOiJjZW50ZXIifSxuKX0pfWZ1bmN0aW9uIFVIKHQsZSl7aWYoIUJuKGUpKXJldHVybiB4dSgpLngocj0+clswXSkueShyPT5yWzFdKSh0KTtjb25zdCBuPWUuZ2V0Q2VudGVyKCk7cmV0dXJuIExtKCkoe3N0YXJ0QW5nbGU6MCxlbmRBbmdsZTpNYXRoLlBJKjIsb3V0ZXJSYWRpdXM6d3IodFswXSxuKSxpbm5lclJhZGl1czp3cih0WzFdLG4pfSl9ZnVuY3Rpb24gcUgodCxlKXtpZighQm4odCkpcmV0dXJuIGU7Y29uc3RbbixyXT10LmdldENlbnRlcigpO3JldHVybmB0cmFuc2xhdGUoJHtufSwgJHtyfSkgJHtlfHwiIn1gfWNvbnN0ICRPPSh0LGUpPT57Y29uc3R7YXJyb3c6bixhcnJvd1NpemU6cj00fT10LGk9VkwodCxbImFycm93IiwiYXJyb3dTaXplIl0pLHtjb29yZGluYXRlOmEsZG9jdW1lbnQ6b309ZTtyZXR1cm4ocyxjLGwpPT57Y29uc3R7Y29sb3I6dSxsaW5lV2lkdGg6Zn09bCxkPVZMKGwsWyJjb2xvciIsImxpbmVXaWR0aCJdKSx7Y29sb3I6aD11LHNpemU6dj1mfT1jLGc9bj9YSChvLHIsT2JqZWN0LmFzc2lnbih7ZmlsbDppLnN0cm9rZXx8aCxzdHJva2U6aS5zdHJva2V8fGh9LCR0KGksImFycm93IikpKTpudWxsLHk9VUgocyxhKSxiPXFIKGEsYy50cmFuc2Zvcm0pO3JldHVybiBPZShvLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHt9KSkuY2FsbChsZSxkKS5zdHlsZSgiZCIseSkuc3R5bGUoInN0cm9rZSIsaCkuc3R5bGUoImxpbmVXaWR0aCIsdikuc3R5bGUoInRyYW5zZm9ybSIsYikuc3R5bGUoIm1hcmtlckVuZCIsZykuY2FsbChsZSxpKS5ub2RlKCl9fTskTy5wcm9wcz17ZGVmYXVsdE1hcmtlcjoibGluZSIsZGVmYXVsdEVudGVyQW5pbWF0aW9uOiJmYWRlSW4iLGRlZmF1bHRVcGRhdGVBbmltYXRpb246Im1vcnBoaW5nIixkZWZhdWx0RXhpdEFuaW1hdGlvbjoiZmFkZU91dCJ9O2NvbnN0IFhMPSgpPT4odCxlKT0+e2NvbnN0e2RhdGE6bn09ZTtyZXR1cm4hQXJyYXkuaXNBcnJheShuKXx8bi5zb21lKGEwKT9bdCxlXTpbdCxtdCh7fSxlLHtlbmNvZGU6e3g6Wm4obil9fSldfTtYTC5wcm9wcz17fTtjb25zdCBVTD17bGluZTokT30scUw9dD0+KGUsbixyLGkpPT57Y29uc3R7eDphfT1yLG89UHUobixyLG10KHtzdHlsZTp7YmFuZE9mZnNldDowfX0sdCkpLHM9QXJyYXkuZnJvbShlLGM9Pntjb25zdCBsPVthW2NdLDFdLHU9W2FbY10sMF07cmV0dXJuW2wsdV0ubWFwKGY9PmkubWFwKG8oZixjKSkpfSk7cmV0dXJuW2Usc119O3FMLnByb3BzPXtkZWZhdWx0U2hhcGU6ImxpbmUiLGRlZmF1bHRMYWJlbFNoYXBlOiJsYWJlbCIsY29tcG9zaXRlOiExLHNoYXBlOlVMLGNoYW5uZWxzOlsuLi53ZCh7c2hhcGVzOk9iamVjdC5rZXlzKFVMKX0pLHtuYW1lOiJ4IixyZXF1aXJlZDohMH1dLHByZUluZmVyZW5jZTpbLi4uRHIoKSx7dHlwZTpYTH1dLHBvc3RJbmZlcmVuY2U6Wy4uLlVyKCldfTtjb25zdCBLTD0oKT0+KHQsZSk9Pntjb25zdHtkYXRhOm59PWU7cmV0dXJuIUFycmF5LmlzQXJyYXkobil8fG4uc29tZShhMCk/W3QsZV06W3QsbXQoe30sZSx7ZW5jb2RlOnt5OlpuKG4pfX0pXX07S0wucHJvcHM9e307Y29uc3QgUUw9e2xpbmU6JE99LEpMPXQ9PihlLG4scixpKT0+e2NvbnN0e3k6YX09cixvPVB1KG4scixtdCh7c3R5bGU6e2JhbmRPZmZzZXQ6MH19LHQpKSxzPUFycmF5LmZyb20oZSxjPT57Y29uc3QgbD1bMCxhW2NdXSx1PVsxLGFbY11dO3JldHVybltsLHVdLm1hcChmPT5pLm1hcChvKGYsYykpKX0pO3JldHVybltlLHNdfTtKTC5wcm9wcz17ZGVmYXVsdFNoYXBlOiJsaW5lIixkZWZhdWx0TGFiZWxTaGFwZToibGFiZWwiLGNvbXBvc2l0ZTohMSxzaGFwZTpRTCxjaGFubmVsczpbLi4ud2Qoe3NoYXBlczpPYmplY3Qua2V5cyhRTCl9KSx7bmFtZToieSIscmVxdWlyZWQ6ITB9XSxwcmVJbmZlcmVuY2U6Wy4uLkRyKCkse3R5cGU6S0x9XSxwb3N0SW5mZXJlbmNlOlsuLi5VcigpXX07dmFyIHRSPWZ1bmN0aW9uKHQsZSl7dmFyIG49e307Zm9yKHZhciByIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscikmJmUuaW5kZXhPZihyKTwwJiYobltyXT10W3JdKTtpZih0IT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIGk9MCxyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCk7aTxyLmxlbmd0aDtpKyspZS5pbmRleE9mKHJbaV0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh0LHJbaV0pJiYobltyW2ldXT10W3JbaV1dKTtyZXR1cm4gbn07ZnVuY3Rpb24gS0godCxlLG4pe3JldHVybltbIk0iLHQsZV0sWyJMIix0KzIqbixlLW5dLFsiTCIsdCsyKm4sZStuXSxbIloiXV19ZnVuY3Rpb24gUUgodCl7cmV0dXJuIHh1KCkueChlPT5lWzBdKS55KGU9PmVbMV0pKHQpfWZ1bmN0aW9uIEpIKHQsZSxuLHIsaT0wKXtjb25zdFtbYSxvXSxbcyxjXV09ZTtpZihocih0KSl7Y29uc3QgZD1hK24saD1zK3Isdj1kK2k7cmV0dXJuW1tkLG9dLFt2LG9dLFt2LGNdLFtoLGNdXX1jb25zdCBsPW8tbix1PWMtcixmPWwtaTtyZXR1cm5bW2EsbF0sW2EsZl0sW3MsZl0sW3MsdV1dfWNvbnN0IGVSPSh0LGUpPT57Y29uc3R7b2Zmc2V0Om49MCxvZmZzZXQxOnI9bixvZmZzZXQyOmk9bixjb25uZWN0TGVuZ3RoMTphLGVuZE1hcmtlcjpvPSEwfT10LHM9dFIodCxbIm9mZnNldCIsIm9mZnNldDEiLCJvZmZzZXQyIiwiY29ubmVjdExlbmd0aDEiLCJlbmRNYXJrZXIiXSkse2Nvb3JkaW5hdGU6Y309ZTtyZXR1cm4obCx1LGYpPT57Y29uc3R7Y29sb3I6ZCxjb25uZWN0TGVuZ3RoMTpofT1mLHY9dFIoZixbImNvbG9yIiwiY29ubmVjdExlbmd0aDEiXSkse2NvbG9yOmcsdHJhbnNmb3JtOnl9PXUsYj1KSChjLGwscixpLGEhPW51bGw/YTpoKSx4PSR0KE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxzKSxmKSwiZW5kTWFya2VyIik7cmV0dXJuIE9lKG5ldyBRaSkuY2FsbChsZSx2KS5zdHlsZSgiZCIsUUgoYikpLnN0eWxlKCJzdHJva2UiLGd8fGQpLnN0eWxlKCJ0cmFuc2Zvcm0iLHkpLnN0eWxlKCJtYXJrZXJFbmQiLG8/bmV3IEFuKHtjbGFzc05hbWU6Im1hcmtlciIsc3R5bGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHgpLHtzeW1ib2w6S0h9KX0pOm51bGwpLmNhbGwobGUscykubm9kZSgpfX07ZVIucHJvcHM9e2RlZmF1bHRNYXJrZXI6ImxpbmUiLGRlZmF1bHRFbnRlckFuaW1hdGlvbjoiZmFkZUluIixkZWZhdWx0VXBkYXRlQW5pbWF0aW9uOiJtb3JwaGluZyIsZGVmYXVsdEV4aXRBbmltYXRpb246ImZhZGVPdXQifTtjb25zdCBuUj17Y29ubmVjdG9yOmVSfSxyUj0oLi4udCk9PkdPKC4uLnQpO3JSLnByb3BzPXtkZWZhdWx0U2hhcGU6ImNvbm5lY3RvciIsZGVmYXVsdExhYmVsU2hhcGU6ImxhYmVsIixjb21wb3NpdGU6ITEsc2hhcGU6blIsY2hhbm5lbHM6Wy4uLndkKHtzaGFwZXM6T2JqZWN0LmtleXMoblIpfSkse25hbWU6IngiLHJlcXVpcmVkOiEwfSx7bmFtZToieSIscmVxdWlyZWQ6ITB9XSxwcmVJbmZlcmVuY2U6Wy4uLkRyKCldLHBvc3RJbmZlcmVuY2U6Wy4uLlVyKCldfTtmdW5jdGlvbiBpUih0LGUsbixyKXtpZihlKXJldHVybigpPT5bMCwxXTtjb25zdHtbdF06aSxbYCR7dH0xYF06YX09bjtyZXR1cm4gbz0+e3ZhciBzO2NvbnN0IGM9KChzPXIuZ2V0QmFuZFdpZHRoKT09PW51bGx8fHM9PT12b2lkIDA/dm9pZCAwOnMuY2FsbChyLHIuaW52ZXJ0KCthW29dKSkpfHwwO3JldHVybltpW29dLGFbb10rY119fWZ1bmN0aW9uIFpPKHQ9e30pe2NvbnN0e2V4dGVuZFg6ZT0hMSxleHRlbmRZOm49ITF9PXQ7cmV0dXJuKHIsaSxhLG8pPT57Y29uc3Qgcz1pUigieCIsZSxhLGkueCksYz1pUigieSIsbixhLGkueSksbD1BcnJheS5mcm9tKHIsdT0+e2NvbnN0W2YsZF09cyh1KSxbaCx2XT1jKHUpO3JldHVybltbZixoXSxbZCxoXSxbZCx2XSxbZix2XV0ubWFwKF89Pm8ubWFwKF8pKX0pO3JldHVybltyLGxdfX1jb25zdCBhUj17cmFuZ2U6VHV9LG9SPSgpPT5aTygpO29SLnByb3BzPXtkZWZhdWx0U2hhcGU6InJhbmdlIixkZWZhdWx0TGFiZWxTaGFwZToibGFiZWwiLGNvbXBvc2l0ZTohMSxzaGFwZTphUixjaGFubmVsczpbLi4ud2Qoe3NoYXBlczpPYmplY3Qua2V5cyhhUil9KSx7bmFtZToieCIscmVxdWlyZWQ6ITB9LHtuYW1lOiJ5IixyZXF1aXJlZDohMH1dLHByZUluZmVyZW5jZTpbLi4uRHIoKV0scG9zdEluZmVyZW5jZTpbLi4uVXIoKV19O2NvbnN0IHNSPSgpPT4odCxlKT0+e2NvbnN0e2RhdGE6bn09ZTtpZihBcnJheS5pc0FycmF5KG4pJiYobi5ldmVyeShBcnJheS5pc0FycmF5KXx8IW4uc29tZShhMCkpKXtjb25zdCByPShpLGEpPT5BcnJheS5pc0FycmF5KGlbMF0pP2kubWFwKG89Pm9bYV0pOltpW2FdXTtyZXR1cm5bdCxtdCh7fSxlLHtlbmNvZGU6e3g6Wm4ocihuLDApKSx4MTpabihyKG4sMSkpfX0pXX1yZXR1cm5bdCxlXX07c1IucHJvcHM9e307Y29uc3QgY1I9e3JhbmdlOlR1fSxsUj0oKT0+Wk8oe2V4dGVuZFk6ITB9KTtsUi5wcm9wcz17ZGVmYXVsdFNoYXBlOiJyYW5nZSIsZGVmYXVsdExhYmVsU2hhcGU6ImxhYmVsIixjb21wb3NpdGU6ITEsc2hhcGU6Y1IsY2hhbm5lbHM6Wy4uLndkKHtzaGFwZXM6T2JqZWN0LmtleXMoY1IpfSkse25hbWU6IngiLHJlcXVpcmVkOiEwfV0scHJlSW5mZXJlbmNlOlsuLi5EcigpLHt0eXBlOnNSfV0scG9zdEluZmVyZW5jZTpbLi4uVXIoKV19O2NvbnN0IHVSPSgpPT4odCxlKT0+e2NvbnN0e2RhdGE6bn09ZTtpZihBcnJheS5pc0FycmF5KG4pJiYobi5ldmVyeShBcnJheS5pc0FycmF5KXx8IW4uc29tZShhMCkpKXtjb25zdCByPShpLGEpPT5BcnJheS5pc0FycmF5KGlbMF0pP2kubWFwKG89Pm9bYV0pOltpW2FdXTtyZXR1cm5bdCxtdCh7fSxlLHtlbmNvZGU6e3k6Wm4ocihuLDApKSx5MTpabihyKG4sMSkpfX0pXX1yZXR1cm5bdCxlXX07dVIucHJvcHM9e307Y29uc3QgZlI9e3JhbmdlOlR1fSxkUj0oKT0+Wk8oe2V4dGVuZFg6ITB9KTtkUi5wcm9wcz17ZGVmYXVsdFNoYXBlOiJyYW5nZSIsZGVmYXVsdExhYmVsU2hhcGU6ImxhYmVsIixjb21wb3NpdGU6ITEsc2hhcGU6ZlIsY2hhbm5lbHM6Wy4uLndkKHtzaGFwZXM6T2JqZWN0LmtleXMoZlIpfSkse25hbWU6InkiLHJlcXVpcmVkOiEwfV0scHJlSW5mZXJlbmNlOlsuLi5EcigpLHt0eXBlOnVSfV0scG9zdEluZmVyZW5jZTpbLi4uVXIoKV19O3ZhciBoUj1mdW5jdGlvbih0LGUpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiZlLmluZGV4T2Yocik8MCYmKG5bcl09dFtyXSk7aWYodCE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBpPTAscj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2k8ci5sZW5ndGg7aSsrKWUuaW5kZXhPZihyW2ldKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodCxyW2ldKSYmKG5bcltpXV09dFtyW2ldXSk7cmV0dXJuIG59O2NvbnN0IFlPPSh0LGUpPT57Y29uc3R7YXJyb3c6bixjb2xvckF0dHJpYnV0ZTpyfT10LGk9aFIodCxbImFycm93IiwiY29sb3JBdHRyaWJ1dGUiXSkse2Nvb3JkaW5hdGU6YSxkb2N1bWVudDpvfT1lO3JldHVybihzLGMsbCk9Pntjb25zdHtjb2xvcjp1LHN0cm9rZTpmfT1sLGQ9aFIobCxbImNvbG9yIiwic3Ryb2tlIl0pLHtkOmgsY29sb3I6dj11fT1jLFtnLHldPWEuZ2V0U2l6ZSgpO3JldHVybiBPZShvLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHt9KSkuY2FsbChsZSxkKS5zdHlsZSgiZCIsdHlwZW9mIGg9PSJmdW5jdGlvbiI/aCh7d2lkdGg6ZyxoZWlnaHQ6eX0pOmgpLnN0eWxlKHIsdikuY2FsbChsZSxpKS5ub2RlKCl9fTtZTy5wcm9wcz17ZGVmYXVsdEVudGVyQW5pbWF0aW9uOiJmYWRlSW4iLGRlZmF1bHRVcGRhdGVBbmltYXRpb246Im1vcnBoaW5nIixkZWZhdWx0RXhpdEFuaW1hdGlvbjoiZmFkZU91dCJ9O2NvbnN0IHBSPSh0LGUpPT5ZTyhPYmplY3QuYXNzaWduKHtjb2xvckF0dHJpYnV0ZToiZmlsbCJ9LHQpLGUpO3BSLnByb3BzPXtkZWZhdWx0TWFya2VyOiJodmgiLGRlZmF1bHRFbnRlckFuaW1hdGlvbjoiZmFkZUluIixkZWZhdWx0VXBkYXRlQW5pbWF0aW9uOiJtb3JwaGluZyIsZGVmYXVsdEV4aXRBbmltYXRpb246ImZhZGVPdXQifTtjb25zdCB2Uj0odCxlKT0+WU8oT2JqZWN0LmFzc2lnbih7ZmlsbDoibm9uZSIsY29sb3JBdHRyaWJ1dGU6InN0cm9rZSJ9LHQpLGUpO3ZSLnByb3BzPXtkZWZhdWx0TWFya2VyOiJodmgiLGRlZmF1bHRFbnRlckFuaW1hdGlvbjoiZmFkZUluIixkZWZhdWx0VXBkYXRlQW5pbWF0aW9uOiJtb3JwaGluZyIsZGVmYXVsdEV4aXRBbmltYXRpb246ImZhZGVPdXQifTtjb25zdCBnUj17cGF0aDpwUixob2xsb3c6dlJ9LHlSPXQ9PihlLG4scixpKT0+W2UsZS5tYXAoKCk9PltbMCwwXV0pXTt5Ui5wcm9wcz17ZGVmYXVsdFNoYXBlOiJwYXRoIixkZWZhdWx0TGFiZWxTaGFwZToibGFiZWwiLHNoYXBlOmdSLGNvbXBvc2l0ZTohMSxjaGFubmVsczpbLi4ucGEoe3NoYXBlczpPYmplY3Qua2V5cyhnUil9KSx7bmFtZToiZCIsc2NhbGU6ImlkZW50aXR5In1dLHByZUluZmVyZW5jZTpbLi4uRHIoKV0scG9zdEluZmVyZW5jZTpbLi4uVXIoKV19O3ZhciB0Vj1mdW5jdGlvbih0LGUpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiZlLmluZGV4T2Yocik8MCYmKG5bcl09dFtyXSk7aWYodCE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBpPTAscj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2k8ci5sZW5ndGg7aSsrKWUuaW5kZXhPZihyW2ldKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodCxyW2ldKSYmKG5bcltpXV09dFtyW2ldXSk7cmV0dXJuIG59O2NvbnN0IG1SPSh0LGUpPT57Y29uc3R7cmVuZGVyOm59PXQscj10Vih0LFsicmVuZGVyIl0pO3JldHVybiBpPT57Y29uc3RbW2Esb11dPWk7cmV0dXJuIG4oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHIpLHt4OmEseTpvfSksZSl9fTttUi5wcm9wcz17ZGVmYXVsdE1hcmtlcjoicG9pbnQiLGRlZmF1bHRFbnRlckFuaW1hdGlvbjoiZmFkZUluIixkZWZhdWx0VXBkYXRlQW5pbWF0aW9uOiJtb3JwaGluZyIsZGVmYXVsdEV4aXRBbmltYXRpb246ImZhZGVPdXQifTtjb25zdCBiUj0oKT0+KHQsZSk9Pntjb25zdHtzdHlsZTpuPXt9fT1lO3JldHVyblt0LG10KHt9LGUse3N0eWxlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxuKSxPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXMobikuZmlsdGVyKChbLHJdKT0+dHlwZW9mIHI9PSJmdW5jdGlvbiIpLm1hcCgoW3IsaV0pPT5bciwoKT0+aV0pKSl9KV19O2JSLnByb3BzPXt9O2NvbnN0IGVWPXtzaGFwZTptUn0seFI9dD0+e2NvbnN0e2NhcnRlc2lhbjplfT10O3JldHVybiBlP0FPOihuLHIsaSxhKT0+e2NvbnN0e3g6byx5OnN9PWksYz1QdShyLGksdCksbD1BcnJheS5mcm9tKG4sdT0+e2NvbnN0IGY9WytvW3VdLCtzW3VdXTtyZXR1cm5bYS5tYXAoYyhmLHUpKV19KTtyZXR1cm5bbixsXX19O3hSLnByb3BzPXtkZWZhdWx0U2hhcGU6InNoYXBlIixkZWZhdWx0TGFiZWxTaGFwZToibGFiZWwiLGNvbXBvc2l0ZTohMSxzaGFwZTplVixjaGFubmVsczpbe25hbWU6IngiLHJlcXVpcmVkOiEwfSx7bmFtZToieSIscmVxdWlyZWQ6ITB9XSxwcmVJbmZlcmVuY2U6Wy4uLkRyKCkse3R5cGU6bDF9LHt0eXBlOnUxfSx7dHlwZTpiUn1dfTt2YXIgblY9ZnVuY3Rpb24odCxlKXt2YXIgbj17fTtmb3IodmFyIHIgaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKSYmZS5pbmRleE9mKHIpPDAmJihuW3JdPXRbcl0pO2lmKHQhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgaT0wLHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTtpPHIubGVuZ3RoO2krKyllLmluZGV4T2YocltpXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHQscltpXSkmJihuW3JbaV1dPXRbcltpXV0pO3JldHVybiBufTtjb25zdCBfUj0odCxlKT0+e2NvbnN0e2RvY3VtZW50Om59PWU7cmV0dXJuKHIsaSxhKT0+e2NvbnN0e3RyYW5zZm9ybTpvfT1pLHtjb2xvcjpzfT1hLGM9blYoYSxbImNvbG9yIl0pLHtjb2xvcjpsPXN9PWksW3UsLi4uZl09cixkPU9vKCk7cmV0dXJuIGQubW92ZVRvKC4uLnUpLGYuZm9yRWFjaCgoW2gsdl0pPT57ZC5saW5lVG8oaCx2KX0pLGQuY2xvc2VQYXRoKCksT2Uobi5jcmVhdGVFbGVtZW50KCJwYXRoIix7fSkpLmNhbGwobGUsYykuc3R5bGUoImQiLGQudG9TdHJpbmcoKSkuc3R5bGUoInN0cm9rZSIsbHx8cykuc3R5bGUoImZpbGwiLGx8fHMpLnN0eWxlKCJmaWxsT3BhY2l0eSIsLjQpLnN0eWxlKCJ0cmFuc2Zvcm0iLG8pLmNhbGwobGUsdCkubm9kZSgpfX07X1IucHJvcHM9e2RlZmF1bHRNYXJrZXI6InNxdWFyZSIsZGVmYXVsdEVudGVyQW5pbWF0aW9uOiJmYWRlSW4iLGRlZmF1bHRVcGRhdGVBbmltYXRpb246Im1vcnBoaW5nIixkZWZhdWx0RXhpdEFuaW1hdGlvbjoiZmFkZU91dCJ9O2NvbnN0IHdSPXtkZW5zaXR5Ol9SfSxPUj0oKT0+KHQsZSxuLHIpPT57Y29uc3R7eDppLHNlcmllczphfT1uLG89T2JqZWN0LmVudHJpZXMobikuZmlsdGVyKChbZl0pPT5mLnN0YXJ0c1dpdGgoInkiKSkubWFwKChbLGZdKT0+Zikscz1PYmplY3QuZW50cmllcyhuKS5maWx0ZXIoKFtmXSk9PmYuc3RhcnRzV2l0aCgic2l6ZSIpKS5tYXAoKFssZl0pPT5mKTtpZihpPT09dm9pZCAwfHxvPT09dm9pZCAwfHxzPT09dm9pZCAwKXRocm93IG5ldyBFcnJvcigiTWlzc2luZyBlbmNvZGUgZm9yIHggb3IgeSBvciBzaXplIGNoYW5uZWwuIik7Y29uc3QgYz1lLngsbD1lLnNlcmllcyx1PUFycmF5LmZyb20odCxmPT57Y29uc3QgZD1jLmdldEJhbmRXaWR0aChjLmludmVydCgraVtmXSkpLGg9bD9sLmdldEJhbmRXaWR0aChsLmludmVydCgrKGE9PW51bGw/dm9pZCAwOmFbZl0pKSk6MSx2PWQqaCxnPSgrKGE9PW51bGw/dm9pZCAwOmFbZl0pfHwwKSpkLHk9K2lbZl0rZyt2LzI7cmV0dXJuWy4uLm8ubWFwKCh4LF8pPT5beSsgK3NbX11bZl0vdC5sZW5ndGgsK29bX11bZl1dKSwuLi5vLm1hcCgoeCxfKT0+W3ktK3NbX11bZl0vdC5sZW5ndGgsK29bX11bZl1dKS5yZXZlcnNlKCldLm1hcCh4PT5yLm1hcCh4KSl9KTtyZXR1cm5bdCx1XX07T1IucHJvcHM9e2RlZmF1bHRTaGFwZToiZGVuc2l0eSIsZGVmYXVsdExhYmVsU2hhcGU6ImxhYmVsIixjb21wb3NpdGU6ITEsc2hhcGU6d1IsY2hhbm5lbHM6Wy4uLnBhKHtzaGFwZXM6T2JqZWN0LmtleXMod1IpfSkse25hbWU6IngiLHNjYWxlOiJiYW5kIixyZXF1aXJlZDohMH0se25hbWU6InkiLHJlcXVpcmVkOiEwfSx7bmFtZToic2l6ZSIscmVxdWlyZWQ6ITB9LHtuYW1lOiJzZXJpZXMiLHNjYWxlOiJiYW5kIn0se25hbWU6InNpemUiLHJlcXVpcmVkOiEwLHNjYWxlOiJpZGVudGl0eSJ9XSxwcmVJbmZlcmVuY2U6Wy4uLkRyKCkse3R5cGU6bzB9LHt0eXBlOkF1fV0scG9zdEluZmVyZW5jZTpbLi4uVXIoKSwuLi5fZCgpXSxpbnRlcmFjdGlvbjp7c2hhcmVUb29sdGlwOiEwfX07ZnVuY3Rpb24gU1IodCl7dmFyIGUsbixyLGk9dHx8MTtmdW5jdGlvbiBhKHMsYyl7KytlPmkmJihyPW4sbygxKSwrK2UpLG5bc109Y31mdW5jdGlvbiBvKHMpe2U9MCxuPU9iamVjdC5jcmVhdGUobnVsbCksc3x8KHI9T2JqZWN0LmNyZWF0ZShudWxsKSl9cmV0dXJuIG8oKSx7Y2xlYXI6byxoYXM6ZnVuY3Rpb24ocyl7cmV0dXJuIG5bc10hPT12b2lkIDB8fHJbc10hPT12b2lkIDB9LGdldDpmdW5jdGlvbihzKXt2YXIgYz1uW3NdO2lmKGMhPT12b2lkIDApcmV0dXJuIGM7aWYoKGM9cltzXSkhPT12b2lkIDApcmV0dXJuIGEocyxjKSxjfSxzZXQ6ZnVuY3Rpb24ocyxjKXtuW3NdIT09dm9pZCAwP25bc109YzphKHMsYyl9fX1jb25zdCBDb3Q9U1IoMyk7ZnVuY3Rpb24gclYodCxlPSguLi5yKT0+YCR7clswXX1gLG49MTYpe2NvbnN0IHI9U1Iobik7cmV0dXJuKC4uLmkpPT57Y29uc3QgYT1lKC4uLmkpO2xldCBvPXIuZ2V0KGEpO3JldHVybiByLmhhcyhhKT9yLmdldChhKToobz10KC4uLmkpLHIuc2V0KGEsbyksbyl9fWZ1bmN0aW9uIGlWKHQpe3JldHVybiB0eXBlb2YgdD09InN0cmluZyI/dC5zcGxpdCgiICIpLm1hcChlPT57Y29uc3RbbixyXT1lLnNwbGl0KCI6Iik7cmV0dXJuWytuLHJdfSk6dH1mdW5jdGlvbiBmMSh0LGUsbil7Y29uc3Qgcj10P3QoKTpkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTtyZXR1cm4gci53aWR0aD1lLHIuaGVpZ2h0PW4scn1jb25zdCBhVj1yVigodCxlLG4pPT57Y29uc3Qgcj1mMShuLHQqMix0KjIpLGk9ci5nZXRDb250ZXh0KCIyZCIpLGE9dCxvPXQ7aWYoZT09PTEpaS5iZWdpblBhdGgoKSxpLmFyYyhhLG8sdCwwLDIqTWF0aC5QSSwhMSksaS5maWxsU3R5bGU9InJnYmEoMCwwLDAsMSkiLGkuZmlsbCgpO2Vsc2V7Y29uc3Qgcz1pLmNyZWF0ZVJhZGlhbEdyYWRpZW50KGEsbyx0KmUsYSxvLHQpO3MuYWRkQ29sb3JTdG9wKDAsInJnYmEoMCwwLDAsMSkiKSxzLmFkZENvbG9yU3RvcCgxLCJyZ2JhKDAsMCwwLDApIiksaS5maWxsU3R5bGU9cyxpLmZpbGxSZWN0KDAsMCwyKnQsMip0KX1yZXR1cm4gcn0sdD0+YCR7dH1gKTtmdW5jdGlvbiBvVih0LGUpe2NvbnN0IHI9ZjEoZSwyNTYsMSkuZ2V0Q29udGV4dCgiMmQiKSxpPXIuY3JlYXRlTGluZWFyR3JhZGllbnQoMCwwLDI1NiwxKTtyZXR1cm4gaVYodCkuZm9yRWFjaCgoW2Esb10pPT57aS5hZGRDb2xvclN0b3AoYSxvKX0pLHIuZmlsbFN0eWxlPWksci5maWxsUmVjdCgwLDAsMjU2LDEpLHIuZ2V0SW1hZ2VEYXRhKDAsMCwyNTYsMSkuZGF0YX1mdW5jdGlvbiBzVih0LGUsbixyLGksYSl7Y29uc3R7Ymx1cjpvfT1pO2xldCBzPXIubGVuZ3RoO2Zvcig7cy0tOyl7Y29uc3R7eDpjLHk6bCx2YWx1ZTp1LHJhZGl1czpmfT1yW3NdLGQ9TWF0aC5taW4odSxuKSxoPWMtZix2PWwtZixnPWFWKGYsMS1vLGEpLHk9KGQtZSkvKG4tZSk7dC5nbG9iYWxBbHBoYT1NYXRoLm1heCh5LC4wMDEpLHQuZHJhd0ltYWdlKGcsaCx2KX1yZXR1cm4gdH1mdW5jdGlvbiBjVih0LGUsbixyLGkpe2NvbnN0e21pbk9wYWNpdHk6YSxvcGFjaXR5Om8sbWF4T3BhY2l0eTpzLHVzZUdyYWRpZW50T3BhY2l0eTpjfT1pLGw9MCx1PTAsZj1lLGQ9bixoPXQuZ2V0SW1hZ2VEYXRhKGwsdSxmLGQpLHY9aC5kYXRhLGc9di5sZW5ndGg7Zm9yKGxldCB5PTM7eTxnO3krPTQpe2NvbnN0IGI9dlt5XSx4PWIqNDtpZigheCljb250aW51ZTtjb25zdCBfPW98fE1hdGgubWF4KDAsTWF0aC5taW4ocyxNYXRoLm1heChhLGIpKSk7dlt5LTNdPXJbeF0sdlt5LTJdPXJbeCsxXSx2W3ktMV09clt4KzJdLHZbeV09Yz9yW3grM106X31yZXR1cm4gaH1mdW5jdGlvbiBsVih0LGUsbixyLGksYSxvKXtjb25zdCBzPU9iamVjdC5hc3NpZ24oe2JsdXI6Ljg1LG1pbk9wYWNpdHk6MCxvcGFjaXR5Oi42LG1heE9wYWNpdHk6MSxncmFkaWVudDpbWy4yNSwicmdiKDAsMCwyNTUpIl0sWy41NSwicmdiKDAsMjU1LDApIl0sWy44NSwieWVsbG93Il0sWzEsInJnYigyNTUsMCwwKSJdXX0sYSk7cy5taW5PcGFjaXR5Kj0yNTUscy5vcGFjaXR5Kj0yNTUscy5tYXhPcGFjaXR5Kj0yNTU7Y29uc3QgbD1mMShvLHQsZSkuZ2V0Q29udGV4dCgiMmQiKSx1PW9WKHMuZ3JhZGllbnQsbyk7bC5jbGVhclJlY3QoMCwwLHQsZSksc1YobCxuLHIsaSxzLG8pO2NvbnN0IGY9Y1YobCx0LGUsdSxzKSxoPWYxKG8sdCxlKS5nZXRDb250ZXh0KCIyZCIpO3JldHVybiBoLnB1dEltYWdlRGF0YShmLDAsMCksaH12YXIgdVY9ZnVuY3Rpb24odCxlKXt2YXIgbj17fTtmb3IodmFyIHIgaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKSYmZS5pbmRleE9mKHIpPDAmJihuW3JdPXRbcl0pO2lmKHQhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgaT0wLHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTtpPHIubGVuZ3RoO2krKyllLmluZGV4T2YocltpXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHQscltpXSkmJihuW3JbaV1dPXRbcltpXV0pO3JldHVybiBufTtmdW5jdGlvbiBmVih0LGUpe3JldHVybiBPYmplY3Qua2V5cyh0KS5yZWR1Y2UoKG4scik9Pntjb25zdCBpPXRbcl07cmV0dXJuIGUoaSxyKXx8KG5bcl09aSksbn0se30pfWNvbnN0IEVSPSh0LGUpPT57Y29uc3R7Z3JhZGllbnQ6bixvcGFjaXR5OnIsbWF4T3BhY2l0eTppLG1pbk9wYWNpdHk6YSxibHVyOm8sdXNlR3JhZGllbnRPcGFjaXR5OnN9PXQsYz11Vih0LFsiZ3JhZGllbnQiLCJvcGFjaXR5IiwibWF4T3BhY2l0eSIsIm1pbk9wYWNpdHkiLCJibHVyIiwidXNlR3JhZGllbnRPcGFjaXR5Il0pLHtjb29yZGluYXRlOmwsY3JlYXRlQ2FudmFzOnUsZG9jdW1lbnQ6Zn09ZTtyZXR1cm4oZCxoLHYpPT57Y29uc3R7dHJhbnNmb3JtOmd9PWgsW3ksYl09bC5nZXRTaXplKCkseD1kLm1hcChNPT4oe3g6TVswXSx5Ok1bMV0sdmFsdWU6TVsyXSxyYWRpdXM6TVszXX0pKSxfPVphKGQsTT0+TVsyXSksdz1EbihkLE09Pk1bMl0pLEU9eSYmYj9sVih5LGIsXyx3LHgsZlYoe2dyYWRpZW50Om4sb3BhY2l0eTpyLG1pbk9wYWNpdHk6YSxtYXhPcGFjaXR5OmksYmx1cjpvLHVzZUdyYWRpZW50T3BhY2l0eTpzfSxNPT5NPT09dm9pZCAwKSx1KTp7Y2FudmFzOm51bGx9O3JldHVybiBPZShmLmNyZWF0ZUVsZW1lbnQoImltYWdlIix7fSkpLmNhbGwobGUsdikuc3R5bGUoIngiLDApLnN0eWxlKCJ5IiwwKS5zdHlsZSgid2lkdGgiLHkpLnN0eWxlKCJoZWlnaHQiLGIpLnN0eWxlKCJzcmMiLEUuY2FudmFzLnRvRGF0YVVSTCgpKS5zdHlsZSgidHJhbnNmb3JtIixnKS5jYWxsKGxlLGMpLm5vZGUoKX19O0VSLnByb3BzPXtkZWZhdWx0TWFya2VyOiJwb2ludCIsZGVmYXVsdEVudGVyQW5pbWF0aW9uOiJmYWRlSW4iLGRlZmF1bHRVcGRhdGVBbmltYXRpb246Im1vcnBoaW5nIixkZWZhdWx0RXhpdEFuaW1hdGlvbjoiZmFkZU91dCJ9O2NvbnN0IE1SPXtoZWF0bWFwOkVSfSxrUj10PT4oZSxuLHIsaSk9Pntjb25zdHt4OmEseTpvLHNpemU6cyxjb2xvcjpjfT1yLGw9QXJyYXkuZnJvbShlLHU9Pntjb25zdCBmPXM/K3NbdV06NDA7cmV0dXJuWy4uLmkubWFwKFsrYVt1XSwrb1t1XV0pLGNbdV0sZl19KTtyZXR1cm5bWzBdLFtsXV19O2tSLnByb3BzPXtkZWZhdWx0U2hhcGU6ImhlYXRtYXAiLGRlZmF1bHRMYWJlbFNoYXBlOiJsYWJlbCIsY29tcG9zaXRlOiExLHNoYXBlOk1SLGNoYW5uZWxzOlsuLi5wYSh7c2hhcGVzOk9iamVjdC5rZXlzKE1SKX0pLHtuYW1lOiJ4IixyZXF1aXJlZDohMH0se25hbWU6InkiLHJlcXVpcmVkOiEwfSx7bmFtZToiY29sb3IiLHNjYWxlOiJpZGVudGl0eSIscmVxdWlyZWQ6ITB9LHtuYW1lOiJzaXplIn1dLHByZUluZmVyZW5jZTpbLi4uRHIoKSx7dHlwZTpBdX0se3R5cGU6YzF9XSxwb3N0SW5mZXJlbmNlOlsuLi5VcigpLC4uLmhsKCldfTt2YXIgZFY9ZnVuY3Rpb24odCxlLG4scil7ZnVuY3Rpb24gaShhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIG4/YTpuZXcgbihmdW5jdGlvbihvKXtvKGEpfSl9cmV0dXJuIG5ldyhufHwobj1Qcm9taXNlKSkoZnVuY3Rpb24oYSxvKXtmdW5jdGlvbiBzKHUpe3RyeXtsKHIubmV4dCh1KSl9Y2F0Y2goZil7byhmKX19ZnVuY3Rpb24gYyh1KXt0cnl7bChyLnRocm93KHUpKX1jYXRjaChmKXtvKGYpfX1mdW5jdGlvbiBsKHUpe3UuZG9uZT9hKHUudmFsdWUpOmkodS52YWx1ZSkudGhlbihzLGMpfWwoKHI9ci5hcHBseSh0LGV8fFtdKSkubmV4dCgpKX0pfSxoVj1mdW5jdGlvbih0LGUpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiZlLmluZGV4T2Yocik8MCYmKG5bcl09dFtyXSk7aWYodCE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBpPTAscj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2k8ci5sZW5ndGg7aSsrKWUuaW5kZXhPZihyW2ldKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodCxyW2ldKSYmKG5bcltpXV09dFtyW2ldXSk7cmV0dXJuIG59O2Z1bmN0aW9uIHBWKHQsZSl7Y29uc3R7dGV4dDpuPSJ0ZXh0Iix2YWx1ZTpyPSJ2YWx1ZSJ9PWU7cmV0dXJuIHQubWFwKGk9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxpKSx7dGV4dDppW25dLHZhbHVlOmlbcl19KSl9Y29uc3QgdlY9KCk9Pih7YXhpczohMSx0eXBlOiJ0ZXh0IixlbmNvZGU6e3g6IngiLHk6InkiLHRleHQ6InRleHQiLHJvdGF0ZToicm90YXRlIixmb250U2l6ZToic2l6ZSIsc2hhcGU6InRhZyJ9LHNjYWxlOnt4OntyYW5nZTpbMCwxXX0seTp7cmFuZ2U6WzAsMV19fSxzdHlsZTp7Zm9udEZhbWlseTp0PT50LmZvbnRGYW1pbHl9fSksSE89KHQsZSk9PmRWKHZvaWQgMCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2NvbnN0e3dpZHRoOm4saGVpZ2h0OnJ9PWUse2RhdGE6aSxlbmNvZGU6YT17fSxzY2FsZTpvLHN0eWxlOnM9e30sbGF5b3V0OmM9e319PXQsbD1oVih0LFsiZGF0YSIsImVuY29kZSIsInNjYWxlIiwic3R5bGUiLCJsYXlvdXQiXSksdT1wVihpLGEpO3JldHVybiBtdCh7fSx2VigpLE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7ZGF0YTp7dmFsdWU6dSx0cmFuc2Zvcm06W09iamVjdC5hc3NpZ24oe3R5cGU6IndvcmRDbG91ZCIsc2l6ZTpbbixyXX0sYyldfSxlbmNvZGU6YSxzY2FsZTpvLHN0eWxlOnN9LGwpLHtheGlzOiExfSkpfSk7SE8ucHJvcHM9e307Y29uc3QgQVI9KCk9PlsiIzVCOEZGOSIsIiM1QUQ4QTYiLCIjNUQ3MDkyIiwiI0Y2QkQxNiIsIiM2RjVFRjkiLCIjNkRDOEVDIiwiIzk0NUZCOSIsIiNGRjk4NDUiLCIjMUU5NDkzIiwiI0ZGOTlDMyJdO0FSLnByb3BzPXt9O2NvbnN0IFRSPSgpPT5bIiM1QjhGRjkiLCIjQ0REREZEIiwiIzVBRDhBNiIsIiNDREYzRTQiLCIjNUQ3MDkyIiwiI0NFRDRERSIsIiNGNkJEMTYiLCIjRkNFQkI5IiwiIzZGNUVGOSIsIiNEM0NFRkQiLCIjNkRDOEVDIiwiI0QzRUVGOSIsIiM5NDVGQjkiLCIjREVDRkVBIiwiI0ZGOTg0NSIsIiNGRkUwQzciLCIjMUU5NDkzIiwiI0JCREVERSIsIiNGRjk5QzMiLCIjRkZFMEVEIl07VFIucHJvcHM9e307Y29uc3QgUFI9dD0+bmV3IEppKHQpO1BSLnByb3BzPXt9O2NvbnN0IGQxPVN5bWJvbCgiZGVmYXVsdFVua25vd24iKTtmdW5jdGlvbiBDUih0LGUsbil7Zm9yKGxldCByPTA7cjxlLmxlbmd0aDtyKz0xKXQuaGFzKGVbcl0pfHx0LnNldChuKGVbcl0pLHIpfWZ1bmN0aW9uIExSKHQpe2NvbnN0e3ZhbHVlOmUsZnJvbTpuLHRvOnIsbWFwcGVyOmksbm90Rm91bmRSZXR1cm46YX09dDtsZXQgbz1pLmdldChlKTtpZihvPT09dm9pZCAwKXtpZihhIT09ZDEpcmV0dXJuIGE7bz1uLnB1c2goZSktMSxpLnNldChlLG8pfXJldHVybiByW28lci5sZW5ndGhdfWZ1bmN0aW9uIFJSKHQpe3JldHVybiB0IGluc3RhbmNlb2YgRGF0ZT9lPT5gJHtlfWA6dHlwZW9mIHQ9PSJvYmplY3QiP2U9PkpTT04uc3RyaW5naWZ5KGUpOmU9PmV9Y2xhc3MgaDEgZXh0ZW5kcyBMcHtnZXREZWZhdWx0T3B0aW9ucygpe3JldHVybntkb21haW46W10scmFuZ2U6W10sdW5rbm93bjpkMX19Y29uc3RydWN0b3IoZSl7c3VwZXIoZSl9bWFwKGUpe3JldHVybiB0aGlzLmRvbWFpbkluZGV4TWFwLnNpemU9PT0wJiZDUih0aGlzLmRvbWFpbkluZGV4TWFwLHRoaXMuZ2V0RG9tYWluKCksdGhpcy5kb21haW5LZXkpLExSKHt2YWx1ZTp0aGlzLmRvbWFpbktleShlKSxtYXBwZXI6dGhpcy5kb21haW5JbmRleE1hcCxmcm9tOnRoaXMuZ2V0RG9tYWluKCksdG86dGhpcy5nZXRSYW5nZSgpLG5vdEZvdW5kUmV0dXJuOnRoaXMub3B0aW9ucy51bmtub3dufSl9aW52ZXJ0KGUpe3JldHVybiB0aGlzLnJhbmdlSW5kZXhNYXAuc2l6ZT09PTAmJkNSKHRoaXMucmFuZ2VJbmRleE1hcCx0aGlzLmdldFJhbmdlKCksdGhpcy5yYW5nZUtleSksTFIoe3ZhbHVlOnRoaXMucmFuZ2VLZXkoZSksbWFwcGVyOnRoaXMucmFuZ2VJbmRleE1hcCxmcm9tOnRoaXMuZ2V0UmFuZ2UoKSx0bzp0aGlzLmdldERvbWFpbigpLG5vdEZvdW5kUmV0dXJuOnRoaXMub3B0aW9ucy51bmtub3dufSl9cmVzY2FsZShlKXtjb25zdFtuXT10aGlzLm9wdGlvbnMuZG9tYWluLFtyXT10aGlzLm9wdGlvbnMucmFuZ2U7aWYodGhpcy5kb21haW5LZXk9UlIobiksdGhpcy5yYW5nZUtleT1SUihyKSwhdGhpcy5yYW5nZUluZGV4TWFwKXt0aGlzLnJhbmdlSW5kZXhNYXA9bmV3IE1hcCx0aGlzLmRvbWFpbkluZGV4TWFwPW5ldyBNYXA7cmV0dXJufSghZXx8ZS5yYW5nZSkmJnRoaXMucmFuZ2VJbmRleE1hcC5jbGVhcigpLCghZXx8ZS5kb21haW58fGUuY29tcGFyZSkmJih0aGlzLmRvbWFpbkluZGV4TWFwLmNsZWFyKCksdGhpcy5zb3J0ZWREb21haW49dm9pZCAwKX1jbG9uZSgpe3JldHVybiBuZXcgaDEodGhpcy5vcHRpb25zKX1nZXRSYW5nZSgpe3JldHVybiB0aGlzLm9wdGlvbnMucmFuZ2V9Z2V0RG9tYWluKCl7aWYodGhpcy5zb3J0ZWREb21haW4pcmV0dXJuIHRoaXMuc29ydGVkRG9tYWluO2NvbnN0e2RvbWFpbjplLGNvbXBhcmU6bn09dGhpcy5vcHRpb25zO3JldHVybiB0aGlzLnNvcnRlZERvbWFpbj1uP1suLi5lXS5zb3J0KG4pOmUsdGhpcy5zb3J0ZWREb21haW59fWNvbnN0IE5SPXQ9Pm5ldyBoMSh0KTtOUi5wcm9wcz17fTtmdW5jdGlvbiBJUih7bWFwOnQsaW5pdEtleTplfSxuKXtjb25zdCByPWUobik7cmV0dXJuIHQuaGFzKHIpP3QuZ2V0KHIpOm59ZnVuY3Rpb24gZ1Yoe21hcDp0LGluaXRLZXk6ZX0sbil7Y29uc3Qgcj1lKG4pO3JldHVybiB0LmhhcyhyKT90LmdldChyKToodC5zZXQocixuKSxuKX1mdW5jdGlvbiB5Vih7bWFwOnQsaW5pdEtleTplfSxuKXtjb25zdCByPWUobik7cmV0dXJuIHQuaGFzKHIpJiYobj10LmdldChyKSx0LmRlbGV0ZShyKSksbn1mdW5jdGlvbiBtVih0KXtyZXR1cm4gdHlwZW9mIHQ9PSJvYmplY3QiP3QudmFsdWVPZigpOnR9Y2xhc3MgRFIgZXh0ZW5kcyBNYXB7Y29uc3RydWN0b3IoZSl7aWYoc3VwZXIoKSx0aGlzLm1hcD1uZXcgTWFwLHRoaXMuaW5pdEtleT1tVixlIT09bnVsbClmb3IoY29uc3RbbixyXW9mIGUpdGhpcy5zZXQobixyKX1nZXQoZSl7cmV0dXJuIHN1cGVyLmdldChJUih7bWFwOnRoaXMubWFwLGluaXRLZXk6dGhpcy5pbml0S2V5fSxlKSl9aGFzKGUpe3JldHVybiBzdXBlci5oYXMoSVIoe21hcDp0aGlzLm1hcCxpbml0S2V5OnRoaXMuaW5pdEtleX0sZSkpfXNldChlLG4pe3JldHVybiBzdXBlci5zZXQoZ1Yoe21hcDp0aGlzLm1hcCxpbml0S2V5OnRoaXMuaW5pdEtleX0sZSksbil9ZGVsZXRlKGUpe3JldHVybiBzdXBlci5kZWxldGUoeVYoe21hcDp0aGlzLm1hcCxpbml0S2V5OnRoaXMuaW5pdEtleX0sZSkpfX1mdW5jdGlvbiBiVih0KXtjb25zdCBlPU1hdGgubWluKC4uLnQpO3JldHVybiB0Lm1hcChuPT5uL2UpfWZ1bmN0aW9uIHhWKHQsZSl7Y29uc3Qgbj10Lmxlbmd0aCxyPWUtbjtyZXR1cm4gcj4wP1suLi50LC4uLm5ldyBBcnJheShyKS5maWxsKDEpXTpyPDA/dC5zbGljZSgwLGUpOnR9ZnVuY3Rpb24gX1YodCl7cmV0dXJuIE1hdGgucm91bmQodCoxZTEyKS8xZTEyfWZ1bmN0aW9uIHdWKHQpe2NvbnN0e2RvbWFpbjplLHJhbmdlOm4scGFkZGluZ091dGVyOnIscGFkZGluZ0lubmVyOmksZmxleDphLHJvdW5kOm8sYWxpZ246c309dCxjPWUubGVuZ3RoLGw9eFYoYSxjKSxbdSxmXT1uLGQ9Zi11LGg9Mi9jKnIrMS0xL2MqaSx2PWQvaCxnPXYqaS9jLHk9di1jKmcsYj1iVihsKSx4PWIucmVkdWNlKChOLEwpPT5OK0wpLF89eS94LHc9bmV3IERSKGUubWFwKChOLEwpPT57Y29uc3QgUj1iW0xdKl87cmV0dXJuW04sbz9NYXRoLmZsb29yKFIpOlJdfSkpLE89bmV3IERSKGUubWFwKChOLEwpPT57Y29uc3QgST1iW0xdKl8rZztyZXR1cm5bTixvP01hdGguZmxvb3IoSSk6SV19KSksRT1BcnJheS5mcm9tKE8udmFsdWVzKCkpLnJlZHVjZSgoTixMKT0+TitMKSxrPShkLShFLUUvYyppKSkqcyxBPXUraztsZXQgUD1vP01hdGgucm91bmQoQSk6QTtjb25zdCBDPW5ldyBBcnJheShjKTtmb3IobGV0IE49MDtOPGM7Tis9MSl7Q1tOXT1fVihQKTtjb25zdCBMPWVbTl07UCs9Ty5nZXQoTCl9cmV0dXJue3ZhbHVlQmFuZFdpZHRoOncsdmFsdWVTdGVwOk8sYWRqdXN0ZWRSYW5nZTpDfX1mdW5jdGlvbiBPVih0KXt2YXIgZTtjb25zdHtkb21haW46bn09dCxyPW4ubGVuZ3RoO2lmKHI9PT0wKXJldHVybnt2YWx1ZUJhbmRXaWR0aDp2b2lkIDAsdmFsdWVTdGVwOnZvaWQgMCxhZGp1c3RlZFJhbmdlOltdfTtpZighISghKChlPXQuZmxleCk9PT1udWxsfHxlPT09dm9pZCAwKSYmZS5sZW5ndGgpKXJldHVybiB3Vih0KTtjb25zdHtyYW5nZTphLHBhZGRpbmdPdXRlcjpvLHBhZGRpbmdJbm5lcjpzLHJvdW5kOmMsYWxpZ246bH09dDtsZXQgdSxmLGQ9YVswXTtjb25zdCB2PWFbMV0tZCxnPW8qMix5PXItczt1PXYvTWF0aC5tYXgoMSxnK3kpLGMmJih1PU1hdGguZmxvb3IodSkpLGQrPSh2LXUqKHItcykpKmwsZj11KigxLXMpLGMmJihkPU1hdGgucm91bmQoZCksZj1NYXRoLnJvdW5kKGYpKTtjb25zdCBiPW5ldyBBcnJheShyKS5maWxsKDApLm1hcCgoeCxfKT0+ZCtfKnUpO3JldHVybnt2YWx1ZVN0ZXA6dSx2YWx1ZUJhbmRXaWR0aDpmLGFkanVzdGVkUmFuZ2U6Yn19Y2xhc3MgcGwgZXh0ZW5kcyBoMXtnZXREZWZhdWx0T3B0aW9ucygpe3JldHVybntkb21haW46W10scmFuZ2U6WzAsMV0sYWxpZ246LjUscm91bmQ6ITEscGFkZGluZ0lubmVyOjAscGFkZGluZ091dGVyOjAscGFkZGluZzowLHVua25vd246ZDEsZmxleDpbXX19Y29uc3RydWN0b3IoZSl7c3VwZXIoZSl9Y2xvbmUoKXtyZXR1cm4gbmV3IHBsKHRoaXMub3B0aW9ucyl9Z2V0U3RlcChlKXtyZXR1cm4gdGhpcy52YWx1ZVN0ZXA9PT12b2lkIDA/MTp0eXBlb2YgdGhpcy52YWx1ZVN0ZXA9PSJudW1iZXIiP3RoaXMudmFsdWVTdGVwOmU9PT12b2lkIDA/QXJyYXkuZnJvbSh0aGlzLnZhbHVlU3RlcC52YWx1ZXMoKSlbMF06dGhpcy52YWx1ZVN0ZXAuZ2V0KGUpfWdldEJhbmRXaWR0aChlKXtyZXR1cm4gdGhpcy52YWx1ZUJhbmRXaWR0aD09PXZvaWQgMD8xOnR5cGVvZiB0aGlzLnZhbHVlQmFuZFdpZHRoPT0ibnVtYmVyIj90aGlzLnZhbHVlQmFuZFdpZHRoOmU9PT12b2lkIDA/QXJyYXkuZnJvbSh0aGlzLnZhbHVlQmFuZFdpZHRoLnZhbHVlcygpKVswXTp0aGlzLnZhbHVlQmFuZFdpZHRoLmdldChlKX1nZXRSYW5nZSgpe3JldHVybiB0aGlzLmFkanVzdGVkUmFuZ2V9Z2V0UGFkZGluZ0lubmVyKCl7Y29uc3R7cGFkZGluZzplLHBhZGRpbmdJbm5lcjpufT10aGlzLm9wdGlvbnM7cmV0dXJuIGU+MD9lOm59Z2V0UGFkZGluZ091dGVyKCl7Y29uc3R7cGFkZGluZzplLHBhZGRpbmdPdXRlcjpufT10aGlzLm9wdGlvbnM7cmV0dXJuIGU+MD9lOm59cmVzY2FsZSgpe3N1cGVyLnJlc2NhbGUoKTtjb25zdHthbGlnbjplLGRvbWFpbjpuLHJhbmdlOnIscm91bmQ6aSxmbGV4OmF9PXRoaXMub3B0aW9ucyx7YWRqdXN0ZWRSYW5nZTpvLHZhbHVlQmFuZFdpZHRoOnMsdmFsdWVTdGVwOmN9PU9WKHthbGlnbjplLHJhbmdlOnIscm91bmQ6aSxmbGV4OmEscGFkZGluZ0lubmVyOnRoaXMuZ2V0UGFkZGluZ0lubmVyKCkscGFkZGluZ091dGVyOnRoaXMuZ2V0UGFkZGluZ091dGVyKCksZG9tYWluOm59KTt0aGlzLnZhbHVlU3RlcD1jLHRoaXMudmFsdWVCYW5kV2lkdGg9cyx0aGlzLmFkanVzdGVkUmFuZ2U9b319Y29uc3QgalI9dD0+bmV3IHBsKHQpO2pSLnByb3BzPXt9O2NsYXNzIHAxIGV4dGVuZHMgTHB7Z2V0RGVmYXVsdE9wdGlvbnMoKXtyZXR1cm57ZG9tYWluOlswLDFdLHJhbmdlOlswLDFdLHRpY2tDb3VudDo1LHVua25vd246dm9pZCAwLHRpY2tNZXRob2Q6VHd9fW1hcChlKXtyZXR1cm4gdm0oZSk/ZTp0aGlzLm9wdGlvbnMudW5rbm93bn1pbnZlcnQoZSl7cmV0dXJuIHRoaXMubWFwKGUpfWNsb25lKCl7cmV0dXJuIG5ldyBwMSh0aGlzLm9wdGlvbnMpfWdldFRpY2tzKCl7Y29uc3R7ZG9tYWluOmUsdGlja0NvdW50Om4sdGlja01ldGhvZDpyfT10aGlzLm9wdGlvbnMsW2ksYV09ZTtyZXR1cm4hVm4oaSl8fCFWbihhKT9bXTpyKGksYSxuKX19Y29uc3QgRlI9dD0+bmV3IHAxKHQpO0ZSLnByb3BzPXt9O2NsYXNzIFZPIGV4dGVuZHMgcGx7Z2V0RGVmYXVsdE9wdGlvbnMoKXtyZXR1cm57ZG9tYWluOltdLHJhbmdlOlswLDFdLGFsaWduOi41LHJvdW5kOiExLHBhZGRpbmc6MCx1bmtub3duOmQxLHBhZGRpbmdJbm5lcjoxLHBhZGRpbmdPdXRlcjowfX1jb25zdHJ1Y3RvcihlKXtzdXBlcihlKX1nZXRQYWRkaW5nSW5uZXIoKXtyZXR1cm4gMX1jbG9uZSgpe3JldHVybiBuZXcgVk8odGhpcy5vcHRpb25zKX11cGRhdGUoZSl7c3VwZXIudXBkYXRlKGUpfWdldFBhZGRpbmdPdXRlcigpe3JldHVybiB0aGlzLm9wdGlvbnMucGFkZGluZ319Y29uc3QgQlI9dD0+bmV3IFZPKHQpO0JSLnByb3BzPXt9O3ZhciB6Uj0vZHsxLDR9fE17MSw0fXxZWSg/OllZKT98U3sxLDN9fERvfFpafFp8KFtIaE1zRG1dKVwxP3xbYUFdfCJbXiJdKiJ8J1teJ10qJy9nLHZsPSJcXGRcXGQ/IixnbD0iXFxkXFxkIixTVj0iXFxkezN9IixFVj0iXFxkezR9IixsMD0iW15cXHNdKyIsV1I9L1xbKFteXSo/KVxdL2dtO2Z1bmN0aW9uIEdSKHQsZSl7Zm9yKHZhciBuPVtdLHI9MCxpPXQubGVuZ3RoO3I8aTtyKyspbi5wdXNoKHRbcl0uc3Vic3RyKDAsZSkpO3JldHVybiBufXZhciAkUj1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSxuKXt2YXIgcj1uW3RdLm1hcChmdW5jdGlvbihhKXtyZXR1cm4gYS50b0xvd2VyQ2FzZSgpfSksaT1yLmluZGV4T2YoZS50b0xvd2VyQ2FzZSgpKTtyZXR1cm4gaT4tMT9pOm51bGx9fTtmdW5jdGlvbiBDdSh0KXtmb3IodmFyIGU9W10sbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspZVtuLTFdPWFyZ3VtZW50c1tuXTtmb3IodmFyIHI9MCxpPWU7cjxpLmxlbmd0aDtyKyspe3ZhciBhPWlbcl07Zm9yKHZhciBvIGluIGEpdFtvXT1hW29dfXJldHVybiB0fXZhciBaUj1bIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il0sWVI9WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdLE1WPUdSKFlSLDMpLGtWPUdSKFpSLDMpLEhSPXtkYXlOYW1lc1Nob3J0OmtWLGRheU5hbWVzOlpSLG1vbnRoTmFtZXNTaG9ydDpNVixtb250aE5hbWVzOllSLGFtUG06WyJhbSIsInBtIl0sRG9GbjpmdW5jdGlvbih0KXtyZXR1cm4gdCtbInRoIiwic3QiLCJuZCIsInJkIl1bdCUxMD4zPzA6KHQtdCUxMCE9PTEwPzE6MCkqdCUxMF19fSx2MT1DdSh7fSxIUiksQVY9ZnVuY3Rpb24odCl7cmV0dXJuIHYxPUN1KHYxLHQpfSxWUj1mdW5jdGlvbih0KXtyZXR1cm4gdC5yZXBsYWNlKC9bfFxceygpW14kKyo/Li1dL2csIlxcJCYiKX0sQ2E9ZnVuY3Rpb24odCxlKXtmb3IoZT09PXZvaWQgMCYmKGU9MiksdD1TdHJpbmcodCk7dC5sZW5ndGg8ZTspdD0iMCIrdDtyZXR1cm4gdH0sVFY9e0Q6ZnVuY3Rpb24odCl7cmV0dXJuIFN0cmluZyh0LmdldERhdGUoKSl9LEREOmZ1bmN0aW9uKHQpe3JldHVybiBDYSh0LmdldERhdGUoKSl9LERvOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuRG9Gbih0LmdldERhdGUoKSl9LGQ6ZnVuY3Rpb24odCl7cmV0dXJuIFN0cmluZyh0LmdldERheSgpKX0sZGQ6ZnVuY3Rpb24odCl7cmV0dXJuIENhKHQuZ2V0RGF5KCkpfSxkZGQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5kYXlOYW1lc1Nob3J0W3QuZ2V0RGF5KCldfSxkZGRkOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuZGF5TmFtZXNbdC5nZXREYXkoKV19LE06ZnVuY3Rpb24odCl7cmV0dXJuIFN0cmluZyh0LmdldE1vbnRoKCkrMSl9LE1NOmZ1bmN0aW9uKHQpe3JldHVybiBDYSh0LmdldE1vbnRoKCkrMSl9LE1NTTpmdW5jdGlvbih0LGUpe3JldHVybiBlLm1vbnRoTmFtZXNTaG9ydFt0LmdldE1vbnRoKCldfSxNTU1NOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUubW9udGhOYW1lc1t0LmdldE1vbnRoKCldfSxZWTpmdW5jdGlvbih0KXtyZXR1cm4gQ2EoU3RyaW5nKHQuZ2V0RnVsbFllYXIoKSksNCkuc3Vic3RyKDIpfSxZWVlZOmZ1bmN0aW9uKHQpe3JldHVybiBDYSh0LmdldEZ1bGxZZWFyKCksNCl9LGg6ZnVuY3Rpb24odCl7cmV0dXJuIFN0cmluZyh0LmdldEhvdXJzKCklMTJ8fDEyKX0saGg6ZnVuY3Rpb24odCl7cmV0dXJuIENhKHQuZ2V0SG91cnMoKSUxMnx8MTIpfSxIOmZ1bmN0aW9uKHQpe3JldHVybiBTdHJpbmcodC5nZXRIb3VycygpKX0sSEg6ZnVuY3Rpb24odCl7cmV0dXJuIENhKHQuZ2V0SG91cnMoKSl9LG06ZnVuY3Rpb24odCl7cmV0dXJuIFN0cmluZyh0LmdldE1pbnV0ZXMoKSl9LG1tOmZ1bmN0aW9uKHQpe3JldHVybiBDYSh0LmdldE1pbnV0ZXMoKSl9LHM6ZnVuY3Rpb24odCl7cmV0dXJuIFN0cmluZyh0LmdldFNlY29uZHMoKSl9LHNzOmZ1bmN0aW9uKHQpe3JldHVybiBDYSh0LmdldFNlY29uZHMoKSl9LFM6ZnVuY3Rpb24odCl7cmV0dXJuIFN0cmluZyhNYXRoLnJvdW5kKHQuZ2V0TWlsbGlzZWNvbmRzKCkvMTAwKSl9LFNTOmZ1bmN0aW9uKHQpe3JldHVybiBDYShNYXRoLnJvdW5kKHQuZ2V0TWlsbGlzZWNvbmRzKCkvMTApLDIpfSxTU1M6ZnVuY3Rpb24odCl7cmV0dXJuIENhKHQuZ2V0TWlsbGlzZWNvbmRzKCksMyl9LGE6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5nZXRIb3VycygpPDEyP2UuYW1QbVswXTplLmFtUG1bMV19LEE6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5nZXRIb3VycygpPDEyP2UuYW1QbVswXS50b1VwcGVyQ2FzZSgpOmUuYW1QbVsxXS50b1VwcGVyQ2FzZSgpfSxaWjpmdW5jdGlvbih0KXt2YXIgZT10LmdldFRpbWV6b25lT2Zmc2V0KCk7cmV0dXJuKGU+MD8iLSI6IisiKStDYShNYXRoLmZsb29yKE1hdGguYWJzKGUpLzYwKSoxMDArTWF0aC5hYnMoZSklNjAsNCl9LFo6ZnVuY3Rpb24odCl7dmFyIGU9dC5nZXRUaW1lem9uZU9mZnNldCgpO3JldHVybihlPjA/Ii0iOiIrIikrQ2EoTWF0aC5mbG9vcihNYXRoLmFicyhlKS82MCksMikrIjoiK0NhKE1hdGguYWJzKGUpJTYwLDIpfX0sWFI9ZnVuY3Rpb24odCl7cmV0dXJuK3QtMX0sVVI9W251bGwsdmxdLHFSPVtudWxsLGwwXSxLUj1bImlzUG0iLGwwLGZ1bmN0aW9uKHQsZSl7dmFyIG49dC50b0xvd2VyQ2FzZSgpO3JldHVybiBuPT09ZS5hbVBtWzBdPzA6bj09PWUuYW1QbVsxXT8xOm51bGx9XSxRUj1bInRpbWV6b25lT2Zmc2V0IiwiW15cXHNdKj9bXFwrXFwtXVxcZFxcZDo/XFxkXFxkfFteXFxzXSo/Wj8iLGZ1bmN0aW9uKHQpe3ZhciBlPSh0KyIiKS5tYXRjaCgvKFsrLV18XGRcZCkvZ2kpO2lmKGUpe3ZhciBuPStlWzFdKjYwK3BhcnNlSW50KGVbMl0sMTApO3JldHVybiBlWzBdPT09IisiP246LW59cmV0dXJuIDB9XSxQVj17RDpbImRheSIsdmxdLEREOlsiZGF5IixnbF0sRG86WyJkYXkiLHZsK2wwLGZ1bmN0aW9uKHQpe3JldHVybiBwYXJzZUludCh0LDEwKX1dLE06WyJtb250aCIsdmwsWFJdLE1NOlsibW9udGgiLGdsLFhSXSxZWTpbInllYXIiLGdsLGZ1bmN0aW9uKHQpe3ZhciBlPW5ldyBEYXRlLG49KygiIitlLmdldEZ1bGxZZWFyKCkpLnN1YnN0cigwLDIpO3JldHVybisoIiIrKCt0PjY4P24tMTpuKSt0KX1dLGg6WyJob3VyIix2bCx2b2lkIDAsImlzUG0iXSxoaDpbImhvdXIiLGdsLHZvaWQgMCwiaXNQbSJdLEg6WyJob3VyIix2bF0sSEg6WyJob3VyIixnbF0sbTpbIm1pbnV0ZSIsdmxdLG1tOlsibWludXRlIixnbF0sczpbInNlY29uZCIsdmxdLHNzOlsic2Vjb25kIixnbF0sWVlZWTpbInllYXIiLEVWXSxTOlsibWlsbGlzZWNvbmQiLCJcXGQiLGZ1bmN0aW9uKHQpe3JldHVybit0KjEwMH1dLFNTOlsibWlsbGlzZWNvbmQiLGdsLGZ1bmN0aW9uKHQpe3JldHVybit0KjEwfV0sU1NTOlsibWlsbGlzZWNvbmQiLFNWXSxkOlVSLGRkOlVSLGRkZDpxUixkZGRkOnFSLE1NTTpbIm1vbnRoIixsMCwkUigibW9udGhOYW1lc1Nob3J0IildLE1NTU06WyJtb250aCIsbDAsJFIoIm1vbnRoTmFtZXMiKV0sYTpLUixBOktSLFpaOlFSLFo6UVJ9LGcxPXtkZWZhdWx0OiJkZGQgTU1NIEREIFlZWVkgSEg6bW06c3MiLHNob3J0RGF0ZToiTS9EL1lZIixtZWRpdW1EYXRlOiJNTU0gRCwgWVlZWSIsbG9uZ0RhdGU6Ik1NTU0gRCwgWVlZWSIsZnVsbERhdGU6ImRkZGQsIE1NTU0gRCwgWVlZWSIsaXNvRGF0ZToiWVlZWS1NTS1ERCIsaXNvRGF0ZVRpbWU6IllZWVktTU0tRERUSEg6bW06c3NaIixzaG9ydFRpbWU6IkhIOm1tIixtZWRpdW1UaW1lOiJISDptbTpzcyIsbG9uZ1RpbWU6IkhIOm1tOnNzLlNTUyJ9LENWPWZ1bmN0aW9uKHQpe3JldHVybiBDdShnMSx0KX0sSlI9ZnVuY3Rpb24odCxlLG4pe2lmKGU9PT12b2lkIDAmJihlPWcxLmRlZmF1bHQpLG49PT12b2lkIDAmJihuPXt9KSx0eXBlb2YgdD09Im51bWJlciImJih0PW5ldyBEYXRlKHQpKSxPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCkhPT0iW29iamVjdCBEYXRlXSJ8fGlzTmFOKHQuZ2V0VGltZSgpKSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgRGF0ZSBwYXNzIHRvIGZvcm1hdCIpO2U9ZzFbZV18fGU7dmFyIHI9W107ZT1lLnJlcGxhY2UoV1IsZnVuY3Rpb24oYSxvKXtyZXR1cm4gci5wdXNoKG8pLCJAQEAifSk7dmFyIGk9Q3UoQ3Uoe30sdjEpLG4pO3JldHVybiBlPWUucmVwbGFjZSh6UixmdW5jdGlvbihhKXtyZXR1cm4gVFZbYV0odCxpKX0pLGUucmVwbGFjZSgvQEBAL2csZnVuY3Rpb24oKXtyZXR1cm4gci5zaGlmdCgpfSl9O2Z1bmN0aW9uIExWKHQsZSxuKXtpZihuPT09dm9pZCAwJiYobj17fSksdHlwZW9mIGUhPSJzdHJpbmciKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBmb3JtYXQgaW4gZmVjaGEgcGFyc2UiKTtpZihlPWcxW2VdfHxlLHQubGVuZ3RoPjFlMylyZXR1cm4gbnVsbDt2YXIgcj1uZXcgRGF0ZSxpPXt5ZWFyOnIuZ2V0RnVsbFllYXIoKSxtb250aDowLGRheToxLGhvdXI6MCxtaW51dGU6MCxzZWNvbmQ6MCxtaWxsaXNlY29uZDowLGlzUG06bnVsbCx0aW1lem9uZU9mZnNldDpudWxsfSxhPVtdLG89W10scz1lLnJlcGxhY2UoV1IsZnVuY3Rpb24odyxPKXtyZXR1cm4gby5wdXNoKFZSKE8pKSwiQEBAIn0pLGM9e30sbD17fTtzPVZSKHMpLnJlcGxhY2UoelIsZnVuY3Rpb24odyl7dmFyIE89UFZbd10sRT1PWzBdLE09T1sxXSxrPU9bM107aWYoY1tFXSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgZm9ybWF0LiAiK0UrIiBzcGVjaWZpZWQgdHdpY2UgaW4gZm9ybWF0Iik7cmV0dXJuIGNbRV09ITAsayYmKGxba109ITApLGEucHVzaChPKSwiKCIrTSsiKSJ9KSxPYmplY3Qua2V5cyhsKS5mb3JFYWNoKGZ1bmN0aW9uKHcpe2lmKCFjW3ddKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBmb3JtYXQuICIrdysiIGlzIHJlcXVpcmVkIGluIHNwZWNpZmllZCBmb3JtYXQiKX0pLHM9cy5yZXBsYWNlKC9AQEAvZyxmdW5jdGlvbigpe3JldHVybiBvLnNoaWZ0KCl9KTt2YXIgdT10Lm1hdGNoKG5ldyBSZWdFeHAocywiaSIpKTtpZighdSlyZXR1cm4gbnVsbDtmb3IodmFyIGY9Q3UoQ3Uoe30sdjEpLG4pLGQ9MTtkPHUubGVuZ3RoO2QrKyl7dmFyIGg9YVtkLTFdLHY9aFswXSxnPWhbMl0seT1nP2codVtkXSxmKTordVtkXTtpZih5PT1udWxsKXJldHVybiBudWxsO2lbdl09eX1pLmlzUG09PT0xJiZpLmhvdXIhPW51bGwmJitpLmhvdXIhPTEyP2kuaG91cj0raS5ob3VyKzEyOmkuaXNQbT09PTAmJitpLmhvdXI9PTEyJiYoaS5ob3VyPTApO3ZhciBiO2lmKGkudGltZXpvbmVPZmZzZXQ9PW51bGwpe2I9bmV3IERhdGUoaS55ZWFyLGkubW9udGgsaS5kYXksaS5ob3VyLGkubWludXRlLGkuc2Vjb25kLGkubWlsbGlzZWNvbmQpO2Zvcih2YXIgeD1bWyJtb250aCIsImdldE1vbnRoIl0sWyJkYXkiLCJnZXREYXRlIl0sWyJob3VyIiwiZ2V0SG91cnMiXSxbIm1pbnV0ZSIsImdldE1pbnV0ZXMiXSxbInNlY29uZCIsImdldFNlY29uZHMiXV0sZD0wLF89eC5sZW5ndGg7ZDxfO2QrKylpZihjW3hbZF1bMF1dJiZpW3hbZF1bMF1dIT09Ylt4W2RdWzFdXSgpKXJldHVybiBudWxsfWVsc2UgaWYoYj1uZXcgRGF0ZShEYXRlLlVUQyhpLnllYXIsaS5tb250aCxpLmRheSxpLmhvdXIsaS5taW51dGUtaS50aW1lem9uZU9mZnNldCxpLnNlY29uZCxpLm1pbGxpc2Vjb25kKSksaS5tb250aD4xMXx8aS5tb250aDwwfHxpLmRheT4zMXx8aS5kYXk8MXx8aS5ob3VyPjIzfHxpLmhvdXI8MHx8aS5taW51dGU+NTl8fGkubWludXRlPDB8fGkuc2Vjb25kPjU5fHxpLnNlY29uZDwwKXJldHVybiBudWxsO3JldHVybiBifXZhciBMb3Q9e2Zvcm1hdDpKUixwYXJzZTpMVixkZWZhdWx0STE4bjpIUixzZXRHbG9iYWxEYXRlSTE4bjpBVixzZXRHbG9iYWxEYXRlTWFza3M6Q1Z9LFJvdD1udWxsO2NvbnN0IHUwPTFlMyxmMD11MCo2MCxkMD1mMCo2MCxMdT1kMCoyNCxoMD1MdSo3LHROPUx1KjMwLGVOPUx1KjM2NTtmdW5jdGlvbiByYSh0LGUsbixyKXtjb25zdCBpPShsLHUpPT57Y29uc3QgZj1oPT5yKGgpJXU9PT0wO2xldCBkPXU7Zm9yKDtkJiYhZihsKTspbihsLC0xKSxkLT0xO3JldHVybiBsfSxhPShsLHUpPT57dSYmaShsLHUpLGUobCl9LG89KGwsdSk9Pntjb25zdCBmPW5ldyBEYXRlKCtsKTtyZXR1cm4gYShmLHUpLGZ9LHM9KGwsdSk9Pntjb25zdCBmPW5ldyBEYXRlKCtsLTEpO3JldHVybiBhKGYsdSksbihmLHUpLGEoZiksZn07cmV0dXJue2NlaWw6cyxmbG9vcjpvLHJhbmdlOihsLHUsZixkKT0+e2NvbnN0IGg9W10sdj1NYXRoLmZsb29yKGYpLGc9ZD9zKGwsZik6cyhsKTtmb3IobGV0IHk9Zzt5PHU7bih5LHYpLGEoeSkpaC5wdXNoKG5ldyBEYXRlKCt5KSk7cmV0dXJuIGh9LGR1cmF0aW9uOnR9fWNvbnN0IFJWPXJhKDEsdD0+dCwodCxlPTEpPT57dC5zZXRUaW1lKCt0K2UpfSx0PT50LmdldFRpbWUoKSksTlY9cmEodTAsdD0+e3Quc2V0TWlsbGlzZWNvbmRzKDApfSwodCxlPTEpPT57dC5zZXRUaW1lKCt0K3UwKmUpfSx0PT50LmdldFNlY29uZHMoKSksSVY9cmEoZjAsdD0+e3Quc2V0U2Vjb25kcygwLDApfSwodCxlPTEpPT57dC5zZXRUaW1lKCt0K2YwKmUpfSx0PT50LmdldE1pbnV0ZXMoKSksRFY9cmEoZDAsdD0+e3Quc2V0TWludXRlcygwLDAsMCl9LCh0LGU9MSk9Pnt0LnNldFRpbWUoK3QrZDAqZSl9LHQ9PnQuZ2V0SG91cnMoKSksalY9cmEoTHUsdD0+e3Quc2V0SG91cnMoMCwwLDAsMCl9LCh0LGU9MSk9Pnt0LnNldFRpbWUoK3QrTHUqZSl9LHQ9PnQuZ2V0RGF0ZSgpLTEpLG5OPXJhKHROLHQ9Pnt0LnNldERhdGUoMSksdC5zZXRIb3VycygwLDAsMCwwKX0sKHQsZT0xKT0+e2NvbnN0IG49dC5nZXRNb250aCgpO3Quc2V0TW9udGgobitlKX0sdD0+dC5nZXRNb250aCgpKSxGVj1yYShoMCx0PT57dC5zZXREYXRlKHQuZ2V0RGF0ZSgpLXQuZ2V0RGF5KCklNyksdC5zZXRIb3VycygwLDAsMCwwKX0sKHQsZT0xKT0+e3Quc2V0RGF0ZSh0LmdldERhdGUoKSs3KmUpfSx0PT57Y29uc3QgZT1uTi5mbG9vcih0KSxuPW5ldyBEYXRlKCt0KTtyZXR1cm4gTWF0aC5mbG9vcigoK24tK2UpL2gwKX0pLEJWPXJhKGVOLHQ9Pnt0LnNldE1vbnRoKDAsMSksdC5zZXRIb3VycygwLDAsMCwwKX0sKHQsZT0xKT0+e2NvbnN0IG49dC5nZXRGdWxsWWVhcigpO3Quc2V0RnVsbFllYXIobitlKX0sdD0+dC5nZXRGdWxsWWVhcigpKSxyTj17bWlsbGlzZWNvbmQ6UlYsc2Vjb25kOk5WLG1pbnV0ZTpJVixob3VyOkRWLGRheTpqVix3ZWVrOkZWLG1vbnRoOm5OLHllYXI6QlZ9LHpWPXJhKDEsdD0+dCwodCxlPTEpPT57dC5zZXRUaW1lKCt0K2UpfSx0PT50LmdldFRpbWUoKSksV1Y9cmEodTAsdD0+e3Quc2V0VVRDTWlsbGlzZWNvbmRzKDApfSwodCxlPTEpPT57dC5zZXRUaW1lKCt0K3UwKmUpfSx0PT50LmdldFVUQ1NlY29uZHMoKSksR1Y9cmEoZjAsdD0+e3Quc2V0VVRDU2Vjb25kcygwLDApfSwodCxlPTEpPT57dC5zZXRUaW1lKCt0K2YwKmUpfSx0PT50LmdldFVUQ01pbnV0ZXMoKSksJFY9cmEoZDAsdD0+e3Quc2V0VVRDTWludXRlcygwLDAsMCl9LCh0LGU9MSk9Pnt0LnNldFRpbWUoK3QrZDAqZSl9LHQ9PnQuZ2V0VVRDSG91cnMoKSksWlY9cmEoTHUsdD0+e3Quc2V0VVRDSG91cnMoMCwwLDAsMCl9LCh0LGU9MSk9Pnt0LnNldFRpbWUoK3QrTHUqZSl9LHQ9PnQuZ2V0VVRDRGF0ZSgpLTEpLGlOPXJhKHROLHQ9Pnt0LnNldFVUQ0RhdGUoMSksdC5zZXRVVENIb3VycygwLDAsMCwwKX0sKHQsZT0xKT0+e2NvbnN0IG49dC5nZXRVVENNb250aCgpO3Quc2V0VVRDTW9udGgobitlKX0sdD0+dC5nZXRVVENNb250aCgpKSxZVj1yYShoMCx0PT57dC5zZXRVVENEYXRlKHQuZ2V0VVRDRGF0ZSgpLSh0LmdldFVUQ0RheSgpKzcpJTcpLHQuc2V0VVRDSG91cnMoMCwwLDAsMCl9LCh0LGU9MSk9Pnt0LnNldFRpbWUoK3QraDAqZSl9LHQ9Pntjb25zdCBlPWlOLmZsb29yKHQpLG49bmV3IERhdGUoK3QpO3JldHVybiBNYXRoLmZsb29yKCgrbi0rZSkvaDApfSksSFY9cmEoZU4sdD0+e3Quc2V0VVRDTW9udGgoMCwxKSx0LnNldFVUQ0hvdXJzKDAsMCwwLDApfSwodCxlPTEpPT57Y29uc3Qgbj10LmdldFVUQ0Z1bGxZZWFyKCk7dC5zZXRVVENGdWxsWWVhcihuK2UpfSx0PT50LmdldFVUQ0Z1bGxZZWFyKCkpLGFOPXttaWxsaXNlY29uZDp6VixzZWNvbmQ6V1YsbWludXRlOkdWLGhvdXI6JFYsZGF5OlpWLHdlZWs6WVYsbW9udGg6aU4seWVhcjpIVn07ZnVuY3Rpb24gVlYodCl7Y29uc3QgZT10P2FOOnJOLHt5ZWFyOm4sbW9udGg6cix3ZWVrOmksZGF5OmEsaG91cjpvLG1pbnV0ZTpzLHNlY29uZDpjLG1pbGxpc2Vjb25kOmx9PWU7cmV0dXJue3RpY2tJbnRlcnZhbHM6W1tjLDFdLFtjLDVdLFtjLDE1XSxbYywzMF0sW3MsMV0sW3MsNV0sW3MsMTVdLFtzLDMwXSxbbywxXSxbbywzXSxbbyw2XSxbbywxMl0sW2EsMV0sW2EsMl0sW2ksMV0sW3IsMV0sW3IsM10sW24sMV1dLHllYXI6bixtaWxsaXNlY29uZDpsfX1mdW5jdGlvbiBvTih0LGUsbixyLGkpe2NvbnN0IGE9K3Qsbz0rZSx7dGlja0ludGVydmFsczpzLHllYXI6YyxtaWxsaXNlY29uZDpsfT1WVihpKSx1PShbeSxiXSk9PnkuZHVyYXRpb24qYixmPXI/KG8tYSkvcjpufHw1LGQ9cnx8KG8tYSkvZixoPXMubGVuZ3RoLHY9X3cocyxkLDAsaCx1KTtsZXQgZztpZih2PT09aCl7Y29uc3QgeT1EVChhL2MuZHVyYXRpb24sby9jLmR1cmF0aW9uLGYpO2c9W2MseV19ZWxzZSBpZih2KXtjb25zdCB5PWQvdShzW3YtMV0pPHUoc1t2XSkvZCxbYix4XT15P3Nbdi0xXTpzW3ZdLF89cj9NYXRoLmNlaWwoci9iLmR1cmF0aW9uKTp4O2c9W2IsX119ZWxzZXtjb25zdCB5PU1hdGgubWF4KERUKGEsbyxmKSwxKTtnPVtsLHldfXJldHVybiBnfWNvbnN0IFhWPSh0LGUsbixyLGkpPT57Y29uc3QgYT10PmUsbz1hP2U6dCxzPWE/dDplLFtjLGxdPW9OKG8scyxuLHIsaSksdT1jLnJhbmdlKG8sbmV3IERhdGUoK3MrMSksbCwhMCk7cmV0dXJuIGE/dS5yZXZlcnNlKCk6dX0sVVY9KHQsZSxuLHIsaSk9Pntjb25zdCBhPXQ+ZSxvPWE/ZTp0LHM9YT90OmUsW2MsbF09b04obyxzLG4scixpKSx1PVtjLmZsb29yKG8sbCksYy5jZWlsKHMsbCldO3JldHVybiBhP3UucmV2ZXJzZSgpOnV9O2Z1bmN0aW9uIHFWKHQsZSl7Y29uc3R7c2Vjb25kOm4sbWludXRlOnIsaG91cjppLGRheTphLHdlZWs6byxtb250aDpzLHllYXI6Y309ZTtyZXR1cm4gbi5mbG9vcih0KTx0PyIuU1NTIjpyLmZsb29yKHQpPHQ/IjpzcyI6aS5mbG9vcih0KTx0PyJoaDptbSI6YS5mbG9vcih0KTx0PyJoaCBBIjpzLmZsb29yKHQpPHQ/by5mbG9vcih0KTx0PyJNTU0gREQiOiJkZGQgREQiOmMuZmxvb3IodCk8dD8iTU1NTSI6IllZWVkifWZ1bmN0aW9uIEtWKHQpe2NvbnN0IGU9dC5nZXRUaW1lem9uZU9mZnNldCgpLG49bmV3IERhdGUodCk7cmV0dXJuIG4uc2V0TWludXRlcyhuLmdldE1pbnV0ZXMoKStlLG4uZ2V0U2Vjb25kcygpLG4uZ2V0TWlsbGlzZWNvbmRzKCkpLG59Y2xhc3MgWE8gZXh0ZW5kcyB5bXtnZXREZWZhdWx0T3B0aW9ucygpe3JldHVybntkb21haW46W25ldyBEYXRlKDJlMywwLDEpLG5ldyBEYXRlKDJlMywwLDIpXSxyYW5nZTpbMCwxXSxuaWNlOiExLHRpY2tDb3VudDo1LHRpY2tJbnRlcnZhbDp2b2lkIDAsdW5rbm93bjp2b2lkIDAsY2xhbXA6ITEsdGlja01ldGhvZDpYVixpbnRlcnBvbGF0ZTpuZCxtYXNrOnZvaWQgMCx1dGM6ITF9fWNob29zZVRyYW5zZm9ybXMoKXtyZXR1cm5bcj0+K3Iscj0+bmV3IERhdGUocildfWNob29zZU5pY2UoKXtyZXR1cm4gVVZ9Z2V0VGlja01ldGhvZE9wdGlvbnMoKXtjb25zdHtkb21haW46ZSx0aWNrQ291bnQ6bix0aWNrSW50ZXJ2YWw6cix1dGM6aX09dGhpcy5vcHRpb25zLGE9ZVswXSxvPWVbZS5sZW5ndGgtMV07cmV0dXJuW2EsbyxuLHIsaV19Z2V0Rm9ybWF0dGVyKCl7Y29uc3R7bWFzazplLHV0YzpufT10aGlzLm9wdGlvbnMscj1uP2FOOnJOLGk9bj9LVjp2dTtyZXR1cm4gYT0+SlIoaShhKSxlfHxxVihhLHIpKX1jbG9uZSgpe3JldHVybiBuZXcgWE8odGhpcy5vcHRpb25zKX19Y29uc3Qgc049dD0+bmV3IFhPKHQpO3NOLnByb3BzPXt9O2NvbnN0IGNOPXQ9PmU9Pi10KC1lKSxVTz0odCxlKT0+e2NvbnN0IG49TWF0aC5sb2codCkscj10PT09TWF0aC5FP01hdGgubG9nOnQ9PT0xMD9NYXRoLmxvZzEwOnQ9PT0yP01hdGgubG9nMjppPT5NYXRoLmxvZyhpKS9uO3JldHVybiBlP2NOKHIpOnJ9LHFPPSh0LGUpPT57Y29uc3Qgbj10PT09TWF0aC5FP01hdGguZXhwOnI9PnRpKHQscik7cmV0dXJuIGU/Y04obik6bn0sUVY9KHQsZSxuLHI9MTApPT57Y29uc3QgaT10PDAsYT1xTyhyLGkpLG89VU8ocixpKSxzPWU8dCxjPXM/ZTp0LGw9cz90OmU7bGV0IHU9byhjKSxmPW8obCksZD1bXTtpZighKHIlMSkmJmYtdTxuKXtpZih1PU1hdGguZmxvb3IodSksZj1NYXRoLmNlaWwoZiksaSlmb3IoO3U8PWY7dSs9MSl7Y29uc3QgaD1hKHUpO2ZvcihsZXQgdj1yLTE7dj49MTt2LT0xKXtjb25zdCBnPWgqdjtpZihnPmwpYnJlYWs7Zz49YyYmZC5wdXNoKGcpfX1lbHNlIGZvcig7dTw9Zjt1Kz0xKXtjb25zdCBoPWEodSk7Zm9yKGxldCB2PTE7djxyO3YrPTEpe2NvbnN0IGc9aCp2O2lmKGc+bClicmVhaztnPj1jJiZkLnB1c2goZyl9fWQubGVuZ3RoKjI8biYmKGQ9Z3UoYyxsLG4pKX1lbHNle2NvbnN0IGg9bj09PS0xP2YtdTpNYXRoLm1pbihmLXUsbik7ZD1ndSh1LGYsaCkubWFwKGEpfXJldHVybiBzP2QucmV2ZXJzZSgpOmR9LEpWPSh0LGUsbixyKT0+e2NvbnN0IGk9dDwwLGE9VU8ocixpKSxvPXFPKHIsaSkscz10PmUsYz1zP2U6dCxsPXM/dDplLHU9W28oTWF0aC5mbG9vcihhKGMpKSksbyhNYXRoLmNlaWwoYShsKSkpXTtyZXR1cm4gcz91LnJldmVyc2UoKTp1fTtjbGFzcyBLTyBleHRlbmRzIHlte2dldERlZmF1bHRPcHRpb25zKCl7cmV0dXJue2RvbWFpbjpbMSwxMF0scmFuZ2U6WzAsMV0sYmFzZToxMCxpbnRlcnBvbGF0ZTpScCx0aWNrTWV0aG9kOlFWLHRpY2tDb3VudDo1fX1jaG9vc2VOaWNlKCl7cmV0dXJuIEpWfWdldFRpY2tNZXRob2RPcHRpb25zKCl7Y29uc3R7ZG9tYWluOmUsdGlja0NvdW50Om4sYmFzZTpyfT10aGlzLm9wdGlvbnMsaT1lWzBdLGE9ZVtlLmxlbmd0aC0xXTtyZXR1cm5baSxhLG4scl19Y2hvb3NlVHJhbnNmb3Jtcygpe2NvbnN0e2Jhc2U6ZSxkb21haW46bn09dGhpcy5vcHRpb25zLHI9blswXTwwO3JldHVybltVTyhlLHIpLHFPKGUscildfWNsb25lKCl7cmV0dXJuIG5ldyBLTyh0aGlzLm9wdGlvbnMpfX1jb25zdCBsTj10PT5uZXcgS08odCk7bE4ucHJvcHM9e307Y29uc3QgdFg9dD0+ZT0+ZTwwPy10aSgtZSx0KTp0aShlLHQpLGVYPXQ9PmU9PmU8MD8tdGkoLWUsMS90KTp0aShlLDEvdCksblg9dD0+dDwwPy1NYXRoLnNxcnQoLXQpOk1hdGguc3FydCh0KTtjbGFzcyB5MSBleHRlbmRzIHlte2dldERlZmF1bHRPcHRpb25zKCl7cmV0dXJue2RvbWFpbjpbMCwxXSxyYW5nZTpbMCwxXSxuaWNlOiExLGNsYW1wOiExLHJvdW5kOiExLGV4cG9uZW50OjIsaW50ZXJwb2xhdGU6UnAsdGlja01ldGhvZDpndSx0aWNrQ291bnQ6NX19Y29uc3RydWN0b3IoZSl7c3VwZXIoZSl9Y2hvb3NlVHJhbnNmb3Jtcygpe2NvbnN0e2V4cG9uZW50OmV9PXRoaXMub3B0aW9ucztpZihlPT09MSlyZXR1cm5bdnUsdnVdO2NvbnN0IG49ZT09PS41P25YOnRYKGUpLHI9ZVgoZSk7cmV0dXJuW24scl19Y2xvbmUoKXtyZXR1cm4gbmV3IHkxKHRoaXMub3B0aW9ucyl9fWNvbnN0IHVOPXQ9Pm5ldyB5MSh0KTt1Ti5wcm9wcz17fTtjbGFzcyBRTyBleHRlbmRzIHkxe2dldERlZmF1bHRPcHRpb25zKCl7cmV0dXJue2RvbWFpbjpbMCwxXSxyYW5nZTpbMCwxXSxuaWNlOiExLGNsYW1wOiExLHJvdW5kOiExLGludGVycG9sYXRlOlJwLHRpY2tNZXRob2Q6Z3UsdGlja0NvdW50OjUsZXhwb25lbnQ6LjV9fWNvbnN0cnVjdG9yKGUpe3N1cGVyKGUpfXVwZGF0ZShlKXtzdXBlci51cGRhdGUoZSl9Y2xvbmUoKXtyZXR1cm4gbmV3IFFPKHRoaXMub3B0aW9ucyl9fWNvbnN0IGZOPXQ9Pm5ldyBRTyh0KTtmTi5wcm9wcz17fTtjb25zdCBkTj10PT5uZXcgcmQodCk7ZE4ucHJvcHM9e307Y29uc3QgaE49dD0+bmV3IE9tKHQpO2hOLnByb3BzPXt9O2NvbnN0IHBOPXQ9Pm5ldyB3bSh0KTtwTi5wcm9wcz17fTtjb25zdCByWD10PT5lPT57Y29uc3Qgbj10KGUpO3JldHVybiBWbihuKT9NYXRoLnJvdW5kKG4pOm59O2Z1bmN0aW9uIGlYKHQsZSl7cmV0dXJuIG49PntuLnByb3RvdHlwZS5yZXNjYWxlPWZ1bmN0aW9uKCl7dGhpcy5pbml0UmFuZ2UoKSx0aGlzLm5pY2UoKTtjb25zdFtyXT10aGlzLmNob29zZVRyYW5zZm9ybXMoKTt0aGlzLmNvbXBvc2VPdXRwdXQocix0aGlzLmNob29zZUNsYW1wKHIpKX0sbi5wcm90b3R5cGUuaW5pdFJhbmdlPWZ1bmN0aW9uKCl7Y29uc3R7aW50ZXJwb2xhdG9yOnJ9PXRoaXMub3B0aW9uczt0aGlzLm9wdGlvbnMucmFuZ2U9dChyKX0sbi5wcm90b3R5cGUuY29tcG9zZU91dHB1dD1mdW5jdGlvbihyLGkpe2NvbnN0e2RvbWFpbjphLGludGVycG9sYXRvcjpvLHJvdW5kOnN9PXRoaXMuZ2V0T3B0aW9ucygpLGM9ZShhLm1hcChyKSksbD1zP3JYKG8pOm87dGhpcy5vdXRwdXQ9ZWQobCxjLGkscil9LG4ucHJvdG90eXBlLmludmVydD12b2lkIDB9fXZhciBhWD1mdW5jdGlvbih0LGUsbixyKXt2YXIgaT1hcmd1bWVudHMubGVuZ3RoLGE9aTwzP2U6cj09PW51bGw/cj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsbik6cixvO2lmKHR5cGVvZiBSZWZsZWN0PT0ib2JqZWN0IiYmdHlwZW9mIFJlZmxlY3QuZGVjb3JhdGU9PSJmdW5jdGlvbiIpYT1SZWZsZWN0LmRlY29yYXRlKHQsZSxuLHIpO2Vsc2UgZm9yKHZhciBzPXQubGVuZ3RoLTE7cz49MDtzLS0pKG89dFtzXSkmJihhPShpPDM/byhhKTppPjM/byhlLG4sYSk6byhlLG4pKXx8YSk7cmV0dXJuIGk+MyYmYSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsbixhKSxhfSxKTztmdW5jdGlvbiBvWCh0KXtyZXR1cm5bdCgwKSx0KDEpXX1jb25zdCBzWD10PT57Y29uc3RbZSxuXT10O3JldHVybiBlZChuZCgwLDEpLHBtKGUsbikpfTtsZXQgdFM9Sk89Y2xhc3MgZXh0ZW5kcyBKaXtnZXREZWZhdWx0T3B0aW9ucygpe3JldHVybntkb21haW46WzAsMV0sdW5rbm93bjp2b2lkIDAsbmljZTohMSxjbGFtcDohMSxyb3VuZDohMSxpbnRlcnBvbGF0b3I6dnUsdGlja01ldGhvZDpndSx0aWNrQ291bnQ6NX19Y29uc3RydWN0b3IoZSl7c3VwZXIoZSl9Y2xvbmUoKXtyZXR1cm4gbmV3IEpPKHRoaXMub3B0aW9ucyl9fTt0Uz1KTz1hWChbaVgob1gsc1gpXSx0Uyk7Y29uc3Qgdk49dD0+bmV3IHRTKHQpO3ZOLnByb3BzPXt9O2NvbnN0IGdOPXQ9Pm5ldyBEcCh0KTtnTi5wcm9wcz17fTtmdW5jdGlvbiBlUyh7Y29sb3JEZWZhdWx0OnQsY29sb3JCbGFjazplLGNvbG9yV2hpdGU6bixjb2xvclN0cm9rZTpyLGNvbG9yQmFja2dyb3VuZDppLHBhZGRpbmcxOmEscGFkZGluZzI6byxwYWRkaW5nMzpzLGFscGhhOTA6YyxhbHBoYTY1OmwsYWxwaGE0NTp1LGFscGhhMjU6ZixhbHBoYTEwOmQsY2F0ZWdvcnkxMDpoLGNhdGVnb3J5MjA6dixzaXplRGVmYXVsdDpnPTEscGFkZGluZzp5PSJhdXRvIixtYXJnaW46Yj0xNn0pe3JldHVybntwYWRkaW5nOnksbWFyZ2luOmIsc2l6ZTpnLGNvbG9yOnQsY2F0ZWdvcnkxMDpoLGNhdGVnb3J5MjA6dixlbnRlcjp7ZHVyYXRpb246MzAwLGZpbGw6ImJvdGgiLGRlbGF5OjB9LHVwZGF0ZTp7ZHVyYXRpb246MzAwLGZpbGw6ImJvdGgiLGRlbGF5OjB9LGV4aXQ6e2R1cmF0aW9uOjMwMCxmaWxsOiJib3RoIixkZWxheTowfSx2aWV3Ont2aWV3RmlsbDppLHBsb3RGaWxsOiJ0cmFuc3BhcmVudCIsbWFpbkZpbGw6InRyYW5zcGFyZW50Iixjb250ZW50RmlsbDoidHJhbnNwYXJlbnQifSxsaW5lOntsaW5lOntmaWxsOiIiLHN0cm9rZU9wYWNpdHk6MSxsaW5lV2lkdGg6MSxsaW5lQ2FwOiJyb3VuZCJ9fSxwb2ludDp7cG9pbnQ6e3I6MyxmaWxsT3BhY2l0eTouOTUsbGluZVdpZHRoOjB9LGhvbGxvdzp7cjozLHN0cm9rZU9wYWNpdHk6Ljk1LGxpbmVXaWR0aDoxfSxwbHVzOntyOjMsc3Ryb2tlT3BhY2l0eTouOTUsbGluZVdpZHRoOjN9LGRpYW1vbmQ6e3I6MyxzdHJva2VPcGFjaXR5Oi45NSxsaW5lV2lkdGg6MX19LGludGVydmFsOntyZWN0OntmaWxsT3BhY2l0eTouOTV9LGhvbGxvdzp7ZmlsbDoiIixzdHJva2VPcGFjaXR5OjEsbGluZVdpZHRoOjJ9fSxhcmVhOnthcmVhOntmaWxsT3BhY2l0eTouODUsbGluZVdpZHRoOjB9fSxwb2x5Z29uOntwb2x5Z29uOntmaWxsT3BhY2l0eTouOTV9fSxjZWxsOntjZWxsOntmaWxsT3BhY2l0eTouOTV9LGhvbGxvdzp7ZmlsbDoiIixzdHJva2VPcGFjaXR5OjEsbGluZVdpZHRoOjJ9fSxyZWN0OntyZWN0OntmaWxsT3BhY2l0eTouOTV9LGhvbGxvdzp7ZmlsbDoiIixzdHJva2VPcGFjaXR5OjEsbGluZVdpZHRoOjJ9fSxsaW5rOntsaW5rOntmaWxsOiIiLHN0cm9rZU9wYWNpdHk6MX19LHZlY3Rvcjp7dmVjdG9yOntmaWxsT3BhY2l0eToxfX0sYm94Ontib3g6e2ZpbGxPcGFjaXR5Oi45NSxzdHJva2U6ZSxsaW5lV2lkdGg6MX19LHRleHQ6e3RleHQ6e2ZpbGw6IiMxRDIxMjkiLGZvbnRTaXplOjEyLGxpbmVXaWR0aDowLGNvbm5lY3RvclN0cm9rZTpyLGNvbm5lY3RvclN0cm9rZU9wYWNpdHk6LjQ1LGNvbm5lY3RvckxpbmVXaWR0aDoxLGJhY2tncm91bmRGaWxsOnIsYmFja2dyb3VuZEZpbGxPcGFjaXR5Oi4xNSxiYWNrZ3JvdW5kUGFkZGluZzpbMiw0XSxzdGFydE1hcmtlclN5bWJvbDoiY2lyY2xlIixzdGFydE1hcmtlclNpemU6NCxlbmRNYXJrZXJTeW1ib2w6ImNpcmNsZSIsZW5kTWFya2VyU2l6ZTo0fSxiYWRnZTp7ZmlsbDoiIzFEMjEyOSIsZmlsbE9wYWNpdHk6LjY1LGxpbmVXaWR0aDowLGZvbnRTaXplOjEwLHRleHRBbGlnbjoiY2VudGVyIix0ZXh0QmFzZWxpbmU6Im1pZGRsZSIsbWFya2VyRmlsbDpyLG1hcmtlckZpbGxPcGFjaXR5Oi4yNSxtYXJrZXJTdHJva2VPcGFjaXR5OjB9fSxsaW5lWDp7bGluZTp7c3Ryb2tlOnIsc3Ryb2tlT3BhY2l0eTouNDUsbGluZVdpZHRoOjF9fSxsaW5lWTp7bGluZTp7c3Ryb2tlOnIsc3Ryb2tlT3BhY2l0eTouNDUsbGluZVdpZHRoOjF9fSxyYW5nZVg6e3JhbmdlOntmaWxsOnIsZmlsbE9wYWNpdHk6LjE1LGxpbmVXaWR0aDowfX0scmFuZ2VZOntyYW5nZTp7ZmlsbDpyLGZpbGxPcGFjaXR5Oi4xNSxsaW5lV2lkdGg6MH19LGNvbm5lY3Rvcjp7Y29ubmVjdG9yOntzdHJva2U6cixzdHJva2VPcGFjaXR5Oi40NSxsaW5lV2lkdGg6MSxjb25uZWN0TGVuZ3RoMToxMixlbmRNYXJrZXI6ITAsZW5kTWFya2VyU2l6ZTo2LGVuZE1hcmtlckZpbGw6cixlbmRNYXJrZXJGaWxsT3BhY2l0eTouOTV9fSxheGlzOnthcnJvdzohMSxncmlkTGluZURhc2g6WzMsNF0sZ3JpZExpbmVXaWR0aDouNSxncmlkU3Ryb2tlOmUsZ3JpZFN0cm9rZU9wYWNpdHk6ZCxsYWJlbEFsaWduOiJob3Jpem9udGFsIixsYWJlbEZpbGw6ZSxsYWJlbE9wYWNpdHk6dSxsYWJlbEZvbnRTaXplOjEyLGxhYmVsRm9udFdlaWdodDoibm9ybWFsIixsYWJlbFNwYWNpbmc6YSxsaW5lOiExLGxpbmVMaW5lV2lkdGg6LjUsbGluZVN0cm9rZTplLGxpbmVTdHJva2VPcGFjaXR5OnUsdGlja0xlbmd0aDo0LHRpY2tMaW5lV2lkdGg6MSx0aWNrU3Ryb2tlOmUsdGlja09wYWNpdHk6dSx0aXRsZUZpbGw6ZSx0aXRsZU9wYWNpdHk6Yyx0aXRsZUZvbnRTaXplOjEyLHRpdGxlRm9udFdlaWdodDoibm9ybWFsIix0aXRsZVNwYWNpbmc6MTIsdGl0bGVUcmFuc2Zvcm1PcmlnaW46ImNlbnRlciIsbGluZUFycm93T2Zmc2V0OjYsbGluZUFycm93U2l6ZTo2fSxheGlzVG9wOntncmlkRGlyZWN0aW9uOiJwb3NpdGl2ZSIsbGFiZWxEaXJlY3Rpb246Im5lZ2F0aXZlIix0aWNrRGlyZWN0aW9uOiJuZWdhdGl2ZSIsdGl0bGVQb3NpdGlvbjoidG9wIix0aXRsZVNwYWNpbmc6MTIsbGFiZWxTcGFjaW5nOjQsdGl0bGVUZXh0QmFzZWxpbmU6Im1pZGRsZSJ9LGF4aXNCb3R0b206e2dyaWREaXJlY3Rpb246Im5lZ2F0aXZlIixsYWJlbERpcmVjdGlvbjoicG9zaXRpdmUiLHRpY2tEaXJlY3Rpb246InBvc2l0aXZlIix0aXRsZVBvc2l0aW9uOiJib3R0b20iLHRpdGxlU3BhY2luZzoxMixsYWJlbFNwYWNpbmc6NCx0aXRsZVRleHRCYXNlbGluZToiYm90dG9tIix0aXRsZVRyYW5zZm9ybToidHJhbnNsYXRlKDAsIDgpIn0sYXhpc0xlZnQ6e2dyaWREaXJlY3Rpb246InBvc2l0aXZlIixsYWJlbERpcmVjdGlvbjoibmVnYXRpdmUiLGxhYmVsU3BhY2luZzo0LHRpY2tEaXJlY3Rpb246Im5lZ2F0aXZlIix0aXRsZVBvc2l0aW9uOiJsZWZ0Iix0aXRsZVNwYWNpbmc6MTIsdGl0bGVUZXh0QmFzZWxpbmU6Im1pZGRsZSIsdGl0bGVEaXJlY3Rpb246InZlcnRpY2FsIix0aXRsZVRyYW5zZm9ybToicm90YXRlKC05MCkgdHJhbnNsYXRlKDAsIC04KSIsdGl0bGVUcmFuc2Zvcm1PcmlnaW46ImNlbnRlciJ9LGF4aXNSaWdodDp7Z3JpZERpcmVjdGlvbjoibmVnYXRpdmUiLGxhYmVsRGlyZWN0aW9uOiJwb3NpdGl2ZSIsbGFiZWxTcGFjaW5nOjQsdGlja0RpcmVjdGlvbjoicG9zaXRpdmUiLHRpdGxlUG9zaXRpb246InJpZ2h0Iix0aXRsZVNwYWNpbmc6MTIsdGl0bGVUZXh0QmFzZWxpbmU6InRvcCIsdGl0bGVEaXJlY3Rpb246InZlcnRpY2FsIix0aXRsZVRyYW5zZm9ybU9yaWdpbjoiY2VudGVyIn0sYXhpc0xpbmVhcjp7Z2lyZENsb3NlZDohMCxncmlkQ29ubmVjdDoiYXJjIixncmlkRGlyZWN0aW9uOiJuZWdhdGl2ZSIsZ3JpZFR5cGU6InN1cnJvdW5kIix0aXRsZVBvc2l0aW9uOiJ0b3AiLHRpdGxlU3BhY2luZzowfSxheGlzQXJjOnt0aXRsZTohMSx0aXRsZVBvc2l0aW9uOiJpbm5lciIsbGluZTohMSx0aWNrOiEwLGxhYmVsU3BhY2luZzo0fSxheGlzUmFkYXI6e2dpcmRDbG9zZWQ6ITAsZ3JpZFN0cm9rZU9wYWNpdHk6LjMsZ3JpZFR5cGU6InN1cnJvdW5kIixsYWJlbDohMSx0aWNrOiExLHRpdGxlUG9zaXRpb246InN0YXJ0In0sbGVnZW5kQ2F0ZWdvcnk6e2JhY2tncm91bmRGaWxsOiJ0cmFuc3BhcmVudCIsaXRlbUJhY2tncm91bmRGaWxsOiJ0cmFuc3BhcmVudCIsaXRlbUxhYmVsRmlsbDplLGl0ZW1MYWJlbEZpbGxPcGFjaXR5OmMsaXRlbUxhYmVsRm9udFNpemU6MTIsaXRlbUxhYmVsRm9udFdlaWdodDoibm9ybWFsIixpdGVtTWFya2VyRmlsbE9wYWNpdHk6MSxpdGVtTWFya2VyU2l6ZTo4LGl0ZW1TcGFjaW5nOlthLGFdLGl0ZW1WYWx1ZUZpbGw6ZSxpdGVtVmFsdWVGaWxsT3BhY2l0eTouNjUsaXRlbVZhbHVlRm9udFNpemU6MTIsaXRlbVZhbHVlRm9udFdlaWdodDoibm9ybWFsIixuYXZCdXR0b25GaWxsOmUsbmF2QnV0dG9uRmlsbE9wYWNpdHk6LjY1LG5hdlBhZ2VOdW1GaWxsOmUsbmF2UGFnZU51bUZpbGxPcGFjaXR5Oi40NSxuYXZQYWdlTnVtRm9udFNpemU6MTIscGFkZGluZzo4LHRpdGxlOiExLHRpdGxlRmlsbDplLHRpdGxlRmlsbE9wYWNpdHk6LjY1LHRpdGxlRm9udFNpemU6MTIsdGl0bGVGb250V2VpZ2h0OiJub3JtYWwiLHRpdGxlU3BhY2luZzo0LHRpY2tTdHJva2U6ZSx0aWNrU3Ryb2tlT3BhY2l0eTouMjUscm93UGFkZGluZzphLGNvbFBhZGRpbmc6byxtYXhSb3dzOjMsbWF4Q29sczozfSxsZWdlbmRDb250aW51b3VzOntoYW5kbGVIZWlnaHQ6MTIsaGFuZGxlTGFiZWxGaWxsOmUsaGFuZGxlTGFiZWxGaWxsT3BhY2l0eTp1LGhhbmRsZUxhYmVsRm9udFNpemU6MTIsaGFuZGxlTGFiZWxGb250V2VpZ2h0OiJub3JtYWwiLGhhbmRsZU1hcmtlckZpbGw6ZSxoYW5kbGVNYXJrZXJGaWxsT3BhY2l0eTouNixoYW5kbGVNYXJrZXJMaW5lV2lkdGg6MSxoYW5kbGVNYXJrZXJTdHJva2U6ZSxoYW5kbGVNYXJrZXJTdHJva2VPcGFjaXR5Oi4yNSxoYW5kbGVXaWR0aDoxMCxsYWJlbEZpbGw6ZSxsYWJlbEZpbGxPcGFjaXR5OnUsbGFiZWxGb250U2l6ZToxMixsYWJlbEZvbnRXZWlnaHQ6Im5vcm1hbCIsbGFiZWxTcGFjaW5nOjMsdGljazohMCx0aWNrTGVuZ3RoOjEyLHJpYmJvblNpemU6MTIscmliYm9uRmlsbDoiI2FhYSIsaGFuZGxlOiEwLGhhbmRsZUxhYmVsOiExLGhhbmRsZVNoYXBlOiJzbGlkZXIiLGhhbmRsZUljb25TaXplOjEyLzEuOCxpbmRpY2F0b3I6ITEsdGl0bGVGb250U2l6ZToxMix0aXRsZVNwYWNpbmc6NCx0aXRsZUZvbnRXZWlnaHQ6Im5vcm1hbCIsdGl0bGVGaWxsT3BhY2l0eTpjLHRpY2tTdHJva2U6ZSx0aWNrU3Ryb2tlT3BhY2l0eTp1fSxsYWJlbDp7ZmlsbDplLGZpbGxPcGFjaXR5Oi42NSxmb250U2l6ZToxMixmb250V2VpZ2h0OiJub3JtYWwiLHN0cm9rZTp2b2lkIDAsb2Zmc2V0OjEyLGNvbm5lY3RvclN0cm9rZTplLGNvbm5lY3RvclN0cm9rZU9wYWNpdHk6LjQ1LGNvbm5lY3RvckxpbmVXaWR0aDoxLGNvbm5lY3Rvckxlbmd0aDoxMixjb25uZWN0b3JMZW5ndGgyOjgsY29ubmVjdG9yRGlzdGFuY2U6NH0saW5uZXJMYWJlbDp7ZmlsbDpuLGZvbnRTaXplOjEyLGZpbGxPcGFjaXR5Oi44NSxmb250V2VpZ2h0OiJub3JtYWwiLHN0cm9rZTp2b2lkIDAsb2Zmc2V0OjB9LGh0bWxMYWJlbDp7Zm9udFNpemU6MTIsb3BhY2l0eTouNjUsY29sb3I6ZSxmb250V2VpZ2h0OiJub3JtYWwifSxzbGlkZXI6e3RyYWNrU2l6ZToxNix0cmFja0ZpbGw6cix0cmFja0ZpbGxPcGFjaXR5OjEsc2VsZWN0aW9uRmlsbDp0LHNlbGVjdGlvbkZpbGxPcGFjaXR5Oi4xNSxoYW5kbGVJY29uU2l6ZToxMCxoYW5kbGVJY29uRmlsbDoiI2Y3ZjdmNyIsaGFuZGxlSWNvbkZpbGxPcGFjaXR5OjEsaGFuZGxlSWNvblN0cm9rZTplLGhhbmRsZUljb25TdHJva2VPcGFjaXR5Oi4yNSxoYW5kbGVJY29uTGluZVdpZHRoOjEsaGFuZGxlSWNvblJhZGl1czoyLGhhbmRsZUxhYmVsRmlsbDplLGhhbmRsZUxhYmVsRmlsbE9wYWNpdHk6LjQ1LGhhbmRsZUxhYmVsRm9udFNpemU6MTIsaGFuZGxlTGFiZWxGb250V2VpZ2h0OiJub3JtYWwifSxzY3JvbGxiYXI6e3BhZGRpbmc6WzAsMCwwLDBdLHRyYWNrU2l6ZTo2LGlzUm91bmQ6ITAsc2xpZGFibGU6ITAsc2Nyb2xsYWJsZTohMCx0cmFja0ZpbGw6IiNlNWU1ZTUiLHRyYWNrRmlsbE9wYWNpdHk6MCx0aHVtYkZpbGw6IiMwMDAiLHRodW1iRmlsbE9wYWNpdHk6LjE1LHRodW1iSGlnaGxpZ2h0ZWRGaWxsT3BhY2l0eTouMn0sdGl0bGU6e3NwYWNpbmc6OCx0aXRsZUZpbGw6ZSx0aXRsZUZpbGxPcGFjaXR5OmMsdGl0bGVGb250U2l6ZToxNix0aXRsZUZvbnRXZWlnaHQ6ImJvbGQiLHRpdGxlVGV4dEJhc2VsaW5lOiJ0b3AiLHN1YnRpdGxlRmlsbDplLHN1YnRpdGxlRmlsbE9wYWNpdHk6bCxzdWJ0aXRsZUZvbnRTaXplOjEyLHN1YnRpdGxlRm9udFdlaWdodDoibm9ybWFsIixzdWJ0aXRsZVRleHRCYXNlbGluZToidG9wIn0sdG9vbHRpcDp7Y3NzOnsiLmcyLXRvb2x0aXAiOnsiZm9udC1mYW1pbHkiOiJzYW5zLXNlcmlmIn19fX19Y29uc3QgY1g9ZVMoe2NvbG9yQmxhY2s6IiMxRDIxMjkiLGNvbG9yV2hpdGU6IiNmZmZmZmYiLGNvbG9yU3Ryb2tlOiIjNDE2MTgwIixjb2xvckRlZmF1bHQ6IiMxNzgzRkYiLGNvbG9yQmFja2dyb3VuZDoidHJhbnNwYXJlbnQiLGNhdGVnb3J5MTA6WyIjMTc4M0ZGIiwiIzAwQzlDOSIsIiNGMDg4NEQiLCIjRDU4MEZGIiwiIzc4NjNGRiIsIiM2MEM0MkQiLCIjQkQ4RjI0IiwiI0ZGODBDQSIsIiMyNDkxQjMiLCIjMTdDNzZGIl0sY2F0ZWdvcnkyMDpbIiMxNzgzRkYiLCIjMDBDOUM5IiwiI0YwODg0RCIsIiNENTgwRkYiLCIjNzg2M0ZGIiwiIzYwQzQyRCIsIiNCRDhGMjQiLCIjRkY4MENBIiwiIzI0OTFCMyIsIiMxN0M3NkYiLCIjQUFCQTAxIiwiI0JDN0NGQyIsIiMyMzdDQkMiLCIjMkRFMzc5IiwiI0NFODAzMiIsIiNGRjdBRjQiLCIjNTQ1RkQzIiwiI0FGRTQxMCIsIiNEOEM2MDgiLCIjRkZBMUUwIl0scGFkZGluZzE6OCxwYWRkaW5nMjoxMixwYWRkaW5nMzoyMCxhbHBoYTkwOi45LGFscGhhNjU6LjY1LGFscGhhNDU6LjQ1LGFscGhhMjU6LjI1LGFscGhhMTA6LjF9KSxuUz10PT5tdCh7fSxjWCx0KTtuUy5wcm9wcz17fTtjb25zdCB5Tj10PT5tdCh7fSxuUygpLHtjYXRlZ29yeTEwOiJjYXRlZ29yeTEwIixjYXRlZ29yeTIwOiJjYXRlZ29yeTIwIn0sdCk7eU4ucHJvcHM9e307Y29uc3QgbFg9ZVMoe2NvbG9yQmxhY2s6IiNmZmYiLGNvbG9yV2hpdGU6IiMwMDAiLGNvbG9yU3Ryb2tlOiIjNDE2MTgwIixjb2xvckRlZmF1bHQ6IiMxNzgzRkYiLGNvbG9yQmFja2dyb3VuZDoidHJhbnNwYXJlbnQiLGNhdGVnb3J5MTA6WyIjMTc4M0ZGIiwiIzAwQzlDOSIsIiNGMDg4NEQiLCIjRDU4MEZGIiwiIzc4NjNGRiIsIiM2MEM0MkQiLCIjQkQ4RjI0IiwiI0ZGODBDQSIsIiMyNDkxQjMiLCIjMTdDNzZGIl0sY2F0ZWdvcnkyMDpbIiMxNzgzRkYiLCIjMDBDOUM5IiwiI0YwODg0RCIsIiNENTgwRkYiLCIjNzg2M0ZGIiwiIzYwQzQyRCIsIiNCRDhGMjQiLCIjRkY4MENBIiwiIzI0OTFCMyIsIiMxN0M3NkYiLCIjQUFCQTAxIiwiI0JDN0NGQyIsIiMyMzdDQkMiLCIjMkRFMzc5IiwiI0NFODAzMiIsIiNGRjdBRjQiLCIjNTQ1RkQzIiwiI0FGRTQxMCIsIiNEOEM2MDgiLCIjRkZBMUUwIl0scGFkZGluZzE6OCxwYWRkaW5nMjoxMixwYWRkaW5nMzoyMCxhbHBoYTkwOi45LGFscGhhNjU6LjY1LGFscGhhNDU6LjQ1LGFscGhhMjU6LjI1LGFscGhhMTA6LjI1fSksbU49dD0+bXQoe30sbFgse3Rvb2x0aXA6e2Nyb3NzaGFpcnNTdHJva2U6IiNmZmYiLGNyb3NzaGFpcnNMaW5lV2lkdGg6MSxjcm9zc2hhaXJzU3Ryb2tlT3BhY2l0eTouMjUsY3NzOnsiLmcyLXRvb2x0aXAiOntiYWNrZ3JvdW5kOiIjMWYxZjFmIixvcGFjaXR5Oi45NX0sIi5nMi10b29sdGlwLXRpdGxlIjp7Y29sb3I6IiNBNkE2QTYifSwiLmcyLXRvb2x0aXAtbGlzdC1pdGVtLW5hbWUtbGFiZWwiOntjb2xvcjoiI0E2QTZBNiJ9LCIuZzItdG9vbHRpcC1saXN0LWl0ZW0tdmFsdWUiOntjb2xvcjoiI0E2QTZBNiJ9fX19LHQpLGJOPXQ9Pk9iamVjdC5hc3NpZ24oe30sbU4oKSx7Y2F0ZWdvcnkxMDoiY2F0ZWdvcnkxMCIsY2F0ZWdvcnkyMDoiY2F0ZWdvcnkyMCJ9LHQpO2JOLnByb3BzPXt9O2NvbnN0IHVYPWVTKHtjb2xvckJsYWNrOiIjMDAwIixjb2xvcldoaXRlOiIjZmZmIixjb2xvclN0cm9rZToiIzg4OCIsY29sb3JEZWZhdWx0OiIjNGU3OWE3Iixjb2xvckJhY2tncm91bmQ6InRyYW5zcGFyZW50IixjYXRlZ29yeTEwOlsiIzRlNzlhNyIsIiNmMjhlMmMiLCIjZTE1NzU5IiwiIzc2YjdiMiIsIiM1OWExNGYiLCIjZWRjOTQ5IiwiI2FmN2FhMSIsIiNmZjlkYTciLCIjOWM3NTVmIiwiI2JhYjBhYiJdLGNhdGVnb3J5MjA6WyIjNGU3OWE3IiwiI2YyOGUyYyIsIiNlMTU3NTkiLCIjNzZiN2IyIiwiIzU5YTE0ZiIsIiNlZGM5NDkiLCIjYWY3YWExIiwiI2ZmOWRhNyIsIiM5Yzc1NWYiLCIjYmFiMGFiIl0scGFkZGluZzE6OCxwYWRkaW5nMjoxMixwYWRkaW5nMzoyMCxhbHBoYTkwOi45LGFscGhhNjU6LjY1LGFscGhhNDU6LjQ1LGFscGhhMjU6LjI1LGFscGhhMTA6LjF9KSx4Tj10PT5tdCh7fSx1WCx7dGV4dDp7dGV4dDp7Zm9udFNpemU6MTB9fSxheGlzOntncmlkTGluZURhc2g6WzAsMF0sZ3JpZExpbmVXaWR0aDoxLGdyaWRTdHJva2U6IiNkZGQiLGdyaWRTdHJva2VPcGFjaXR5OjEsbGFiZWxPcGFjaXR5OjEsbGFiZWxTdHJva2VPcGFjaXR5OjEsbGFiZWxGb250U2l6ZToxMCxsaW5lOiEwLGxpbmVMaW5lV2lkdGg6MSxsaW5lU3Ryb2tlOiIjODg4IixsaW5lU3Ryb2tlT3BhY2l0eToxLHRpY2tMZW5ndGg6NSx0aWNrU3Ryb2tlT3BhY2l0eToxLHRpdGxlT3BhY2l0eToxLHRpdGxlU3Ryb2tlT3BhY2l0eToxLHRpdGxlRmlsbE9wYWNpdHk6MSx0aXRsZUZvbnRTaXplOjExLHRpdGxlRm9udFdlaWdodDoiYm9sZCJ9LGF4aXNMZWZ0OntncmlkRmlsdGVyOihlLG4pPT5uIT09MH0sYXhpc1JpZ2h0OntncmlkRmlsdGVyOihlLG4pPT5uIT09MH0sbGVnZW5kQ2F0ZWdvcnk6e2l0ZW1MYWJlbEZpbGxPcGFjaXR5OjEsaXRlbUxhYmVsRm9udFNpemU6MTAsaXRlbVZhbHVlRmlsbE9wYWNpdHk6MSxpdGVtVmFsdWVGb250U2l6ZToxMCx0aXRsZUZpbGxPcGFjaXR5OjEsdGl0bGVGb250U2l6ZToxMSx0aXRsZUZvbnRXZWlnaHQ6ImJvbGQifSxsZWdlbmRDb250aW51b3VzOntoYW5kbGVMYWJlbEZvbnRTaXplOjEwLGxhYmVsRmlsbE9wYWNpdHk6LjQ1LGxhYmVsRm9udFNpemU6MTB9LGxhYmVsOntmb250U2l6ZToxMH0saW5uZXJMYWJlbDp7Zm9udFNpemU6MTB9LGh0bWxMYWJlbDp7Zm9udFNpemU6MTB9LHNsaWRlcjp7aGFuZGxlTGFiZWxGb250U2l6ZToxMCx0cmFja0ZpbGxPcGFjaXR5Oi4wNX19LHQpO3hOLnByb3BzPXt9O2NvbnN0IF9OPXQ9PiguLi5lKT0+e2NvbnN0IG49cmwoT2JqZWN0LmFzc2lnbih7fSx7Y3Jvc3NQYWRkaW5nOjUwfSx0KSkoLi4uZSk7cmV0dXJuIEhUKG4sdCksbn07X04ucHJvcHM9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHJsLnByb3BzKSx7ZGVmYXVsdFBvc2l0aW9uOiJib3R0b20ifSk7ZnVuY3Rpb24gam90KCl7fWNvbnN0IHdOPXQ9PiguLi5lKT0+e2NvbnN0IG49cmwoT2JqZWN0LmFzc2lnbih7fSx7Y3Jvc3NQYWRkaW5nOjEwfSx0KSkoLi4uZSk7cmV0dXJuIEhUKG4sdCksbn07d04ucHJvcHM9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHJsLnByb3BzKSx7ZGVmYXVsdFBvc2l0aW9uOiJsZWZ0In0pO3ZhciByUz1mdW5jdGlvbigpe30sZlg9ZnVuY3Rpb24odCxlLG4pe3ZhciByPXQsaT1pcihlKT9lLnNwbGl0KCIuIik6ZTtyZXR1cm4gaS5mb3JFYWNoKGZ1bmN0aW9uKGEsbyl7bzxpLmxlbmd0aC0xPyh6bChyW2FdKXx8KHJbYV09Vm4oaVtvKzFdKT9bXTp7fSkscj1yW2FdKTpyW2FdPW59KSx0fTtmdW5jdGlvbiBkWCh0LGUpe3JldHVybiB0LnJlZHVjZShmdW5jdGlvbihuLHIpe3JldHVybihuW3JbZV1dPW5bcltlXV18fFtdKS5wdXNoKHIpLG59LHt9KX1mdW5jdGlvbiBoWCh0KXt2YXIgZTtyZXR1cm4oKGU9dFswXSk9PT1udWxsfHxlPT09dm9pZCAwP3ZvaWQgMDplLm1hcChmdW5jdGlvbihuLHIpe3JldHVybiB0Lm1hcChmdW5jdGlvbihpKXtyZXR1cm4gaVtyXX0pfSkpfHxbXX12YXIgRW89eG8oe3ByZXZCdG5Hcm91cDoicHJldi1idG4tZ3JvdXAiLHByZXZCdG46InByZXYtYnRuIixuZXh0QnRuR3JvdXA6Im5leHQtYnRuLWdyb3VwIixuZXh0QnRuOiJuZXh0LWJ0biIscGFnZUluZm9Hcm91cDoicGFnZS1pbmZvLWdyb3VwIixwYWdlSW5mbzoicGFnZS1pbmZvIixwbGF5V2luZG93OiJwbGF5LXdpbmRvdyIsY29udGVudEdyb3VwOiJjb250ZW50LWdyb3VwIixjb250cm9sbGVyOiJjb250cm9sbGVyIixjbGlwUGF0aDoiY2xpcC1wYXRoIn0sIm5hdmlnYXRvciIpLHBYPWZ1bmN0aW9uKHQpe2FyKGUsdCk7ZnVuY3Rpb24gZShuKXt2YXIgcj10LmNhbGwodGhpcyxuLHt4OjAseTowLGFuaW1hdGU6e2Vhc2luZzoibGluZWFyIixkdXJhdGlvbjoyMDAsZmlsbDoiYm90aCJ9LGJ1dHRvbkN1cnNvcjoicG9pbnRlciIsYnV0dG9uRmlsbDoiYmxhY2siLGJ1dHRvbkQ6QzcoMCwwLDYpLGJ1dHRvblNpemU6MTIsY29udHJvbGxlclBhZGRpbmc6NSxjb250cm9sbGVyU3BhY2luZzo1LGZvcm1hdHRlcjpmdW5jdGlvbihpLGEpe3JldHVybiIiLmNvbmNhdChpLCIvIikuY29uY2F0KGEpfSxkZWZhdWx0UGFnZTowLGxvb3A6ITEsb3JpZW50YXRpb246Imhvcml6b250YWwiLHBhZ2VOdW1GaWxsOiJibGFjayIscGFnZU51bUZvbnRTaXplOjEyLHBhZ2VOdW1UZXh0QWxpZ246InN0YXJ0IixwYWdlTnVtVGV4dEJhc2VsaW5lOiJtaWRkbGUifSl8fHRoaXM7cmV0dXJuIHIucGxheVN0YXRlPSJpZGxlIixyLmNvbnRlbnRHcm91cD1yLmFwcGVuZENoaWxkKG5ldyB1aSh7Y2xhc3M6RW8uY29udGVudEdyb3VwLm5hbWV9KSksci5wbGF5V2luZG93PXIuY29udGVudEdyb3VwLmFwcGVuZENoaWxkKG5ldyB1aSh7Y2xhc3M6RW8ucGxheVdpbmRvdy5uYW1lfSkpLHIuaW5uZXJDdXJyUGFnZT1yLmRlZmF1bHRQYWdlLHJ9cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwiZGVmYXVsdFBhZ2UiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgbj10aGlzLmF0dHJpYnV0ZXMuZGVmYXVsdFBhZ2U7cmV0dXJuIG1uKG4sMCxNYXRoLm1heCh0aGlzLnBhZ2VWaWV3cy5sZW5ndGgtMSwwKSl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJwYWdlVmlld3MiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wbGF5V2luZG93LmNoaWxkcmVufSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwiY29udHJvbGxlclNoYXBlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG90YWxQYWdlcz4xP3t3aWR0aDo1NSxoZWlnaHQ6MH06e3dpZHRoOjAsaGVpZ2h0OjB9fSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwicGFnZVNoYXBlIix7Z2V0OmZ1bmN0aW9uKCl7dmFyIG49dGhpcy5wYWdlVmlld3Mscj1WKGhYKG4ubWFwKGZ1bmN0aW9uKGYpe3ZhciBkPWYuZ2V0QkJveCgpLGg9ZC53aWR0aCx2PWQuaGVpZ2h0O3JldHVybltoLHZdfSkpLm1hcChmdW5jdGlvbihmKXtyZXR1cm4gTWF0aC5tYXguYXBwbHkoTWF0aCx0ZShbXSxWKGYpLCExKSl9KSwyKSxpPXJbMF0sYT1yWzFdLG89dGhpcy5hdHRyaWJ1dGVzLHM9by5wYWdlV2lkdGgsYz1zPT09dm9pZCAwP2k6cyxsPW8ucGFnZUhlaWdodCx1PWw9PT12b2lkIDA/YTpsO3JldHVybntwYWdlV2lkdGg6YyxwYWdlSGVpZ2h0OnV9fSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLmdldENvbnRhaW5lcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnBsYXlXaW5kb3d9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwidG90YWxQYWdlcyIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBhZ2VWaWV3cy5sZW5ndGh9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJjdXJyUGFnZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlubmVyQ3VyclBhZ2V9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksZS5wcm90b3R5cGUuZ2V0QkJveD1mdW5jdGlvbigpe3ZhciBuPXQucHJvdG90eXBlLmdldEJCb3guY2FsbCh0aGlzKSxyPW4ueCxpPW4ueSxhPXRoaXMuY29udHJvbGxlclNoYXBlLG89dGhpcy5wYWdlU2hhcGUscz1vLnBhZ2VXaWR0aCxjPW8ucGFnZUhlaWdodDtyZXR1cm4gbmV3IHByKHIsaSxzK2Eud2lkdGgsYyl9LGUucHJvdG90eXBlLmdvVG89ZnVuY3Rpb24obil7dmFyIHI9dGhpcyxpPXRoaXMuYXR0cmlidXRlcy5hbmltYXRlLGE9dGhpcyxvPWEuY3VyclBhZ2Uscz1hLnBsYXlTdGF0ZSxjPWEucGxheVdpbmRvdyxsPWEucGFnZVZpZXdzO2lmKHMhPT0iaWRsZSJ8fG48MHx8bC5sZW5ndGg8PTB8fG4+PWwubGVuZ3RoKXJldHVybiBudWxsO2xbb10uc2V0TG9jYWxQb3NpdGlvbigwLDApLHRoaXMucHJlcGFyZUZvbGxvd2luZ1BhZ2Uobik7dmFyIHU9Vih0aGlzLmdldEZvbGxvd2luZ1BhZ2VEaWZmKG4pLDIpLGY9dVswXSxkPXVbMV07dGhpcy5wbGF5U3RhdGU9InJ1bm5pbmciO3ZhciBoPVFBKGMsW3t0cmFuc2Zvcm06InRyYW5zbGF0ZSgwLCAwKSJ9LHt0cmFuc2Zvcm06InRyYW5zbGF0ZSgiLmNvbmNhdCgtZiwiLCAiKS5jb25jYXQoLWQsIikiKX1dLGkpO3JldHVybiBRZihoLGZ1bmN0aW9uKCl7ci5pbm5lckN1cnJQYWdlPW4sci5wbGF5U3RhdGU9ImlkbGUiLHIuc2V0VmlzaWJsZVBhZ2VzKFtuXSksci51cGRhdGVQYWdlSW5mbygpfSksaH0sZS5wcm90b3R5cGUucHJldj1mdW5jdGlvbigpe3ZhciBuPXRoaXMuYXR0cmlidXRlcy5sb29wLHI9dGhpcy5wYWdlVmlld3MubGVuZ3RoLGk9dGhpcy5jdXJyUGFnZTtpZighbiYmaTw9MClyZXR1cm4gbnVsbDt2YXIgYT1uPyhpLTErciklcjptbihpLTEsMCxyKTtyZXR1cm4gdGhpcy5nb1RvKGEpfSxlLnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKCl7dmFyIG49dGhpcy5hdHRyaWJ1dGVzLmxvb3Ascj10aGlzLnBhZ2VWaWV3cy5sZW5ndGgsaT10aGlzLmN1cnJQYWdlO2lmKCFuJiZpPj1yLTEpcmV0dXJuIG51bGw7dmFyIGE9bj8oaSsxKSVyOm1uKGkrMSwwLHIpO3JldHVybiB0aGlzLmdvVG8oYSl9LGUucHJvdG90eXBlLnJlbmRlckNsaXBQYXRoPWZ1bmN0aW9uKG4pe3ZhciByPXRoaXMucGFnZVNoYXBlLGk9ci5wYWdlV2lkdGgsYT1yLnBhZ2VIZWlnaHQ7aWYoIWl8fCFhKXt0aGlzLmNvbnRlbnRHcm91cC5zdHlsZS5jbGlwUGF0aD12b2lkIDA7cmV0dXJufXRoaXMuY2xpcFBhdGg9bi5tYXliZUFwcGVuZEJ5Q2xhc3NOYW1lKEVvLmNsaXBQYXRoLCJyZWN0Iikuc3R5bGVzKHt3aWR0aDppLGhlaWdodDphfSksdGhpcy5jb250ZW50R3JvdXAuYXR0cigiY2xpcFBhdGgiLHRoaXMuY2xpcFBhdGgubm9kZSgpKX0sZS5wcm90b3R5cGUuc2V0VmlzaWJsZVBhZ2VzPWZ1bmN0aW9uKG4pe3RoaXMucGxheVdpbmRvdy5jaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uKHIsaSl7bi5pbmNsdWRlcyhpKT9NcChyKTpubChyKX0pfSxlLnByb3RvdHlwZS5hZGp1c3RDb250cm9sbGVyTGF5b3V0PWZ1bmN0aW9uKCl7dmFyIG49dGhpcyxyPW4ucHJldkJ0bkdyb3VwLGk9bi5uZXh0QnRuR3JvdXAsYT1uLnBhZ2VJbmZvR3JvdXAsbz10aGlzLmF0dHJpYnV0ZXMscz1vLm9yaWVudGF0aW9uLGM9by5jb250cm9sbGVyUGFkZGluZyxsPWEuZ2V0QkJveCgpLHU9bC53aWR0aCxmPWwuaGVpZ2h0LGQ9VihzPT09Imhvcml6b250YWwiP1stMTgwLDBdOlstOTAsOTBdLDIpLGg9ZFswXSx2PWRbMV07ci5zZXRMb2NhbEV1bGVyQW5nbGVzKGgpLGkuc2V0TG9jYWxFdWxlckFuZ2xlcyh2KTt2YXIgZz1yLmdldEJCb3goKSx5PWcud2lkdGgsYj1nLmhlaWdodCx4PWkuZ2V0QkJveCgpLF89eC53aWR0aCx3PXguaGVpZ2h0LE89TWF0aC5tYXgoeSx1LF8pLEU9cz09PSJob3Jpem9udGFsIj97b2Zmc2V0OltbMCwwXSxbeS8yK2MsMF0sW3krdStjKjIsMF1dLHRleHRBbGlnbjoic3RhcnQifTp7b2Zmc2V0OltbTy8yLC1iLWNdLFtPLzIsMF0sW08vMix3K2NdXSx0ZXh0QWxpZ246ImNlbnRlciJ9LE09VihFLm9mZnNldCwzKSxrPVYoTVswXSwyKSxBPWtbMF0sUD1rWzFdLEM9VihNWzFdLDIpLE49Q1swXSxMPUNbMV0sUj1WKE1bMl0sMiksST1SWzBdLEQ9UlsxXSxHPUUudGV4dEFsaWduLEY9YS5xdWVyeVNlbGVjdG9yKCJ0ZXh0Iik7RiYmKEYuc3R5bGUudGV4dEFsaWduPUcpLHIuc2V0TG9jYWxQb3NpdGlvbihBLFApLGEuc2V0TG9jYWxQb3NpdGlvbihOLEwpLGkuc2V0TG9jYWxQb3NpdGlvbihJLEQpfSxlLnByb3RvdHlwZS51cGRhdGVQYWdlSW5mbz1mdW5jdGlvbigpe3ZhciBuLHI9dGhpcyxpPXIuY3VyclBhZ2UsYT1yLnBhZ2VWaWV3cyxvPXIuYXR0cmlidXRlcy5mb3JtYXR0ZXI7YS5sZW5ndGg8Mnx8KChuPXRoaXMucGFnZUluZm9Hcm91cC5xdWVyeVNlbGVjdG9yKEVvLnBhZ2VJbmZvLmNsYXNzKSk9PT1udWxsfHxuPT09dm9pZCAwfHxuLmF0dHIoInRleHQiLG8oaSsxLGEubGVuZ3RoKSksdGhpcy5hZGp1c3RDb250cm9sbGVyTGF5b3V0KCkpfSxlLnByb3RvdHlwZS5nZXRGb2xsb3dpbmdQYWdlRGlmZj1mdW5jdGlvbihuKXt2YXIgcj10aGlzLmN1cnJQYWdlO2lmKHI9PT1uKXJldHVyblswLDBdO3ZhciBpPXRoaXMuYXR0cmlidXRlcy5vcmllbnRhdGlvbixhPXRoaXMucGFnZVNoYXBlLG89YS5wYWdlV2lkdGgscz1hLnBhZ2VIZWlnaHQsYz1uPHI/LTE6MTtyZXR1cm4gaT09PSJob3Jpem9udGFsIj9bYypvLDBdOlswLGMqc119LGUucHJvdG90eXBlLnByZXBhcmVGb2xsb3dpbmdQYWdlPWZ1bmN0aW9uKG4pe3ZhciByPXRoaXMsaT1yLmN1cnJQYWdlLGE9ci5wYWdlVmlld3M7aWYodGhpcy5zZXRWaXNpYmxlUGFnZXMoW24saV0pLG4hPT1pKXt2YXIgbz1WKHRoaXMuZ2V0Rm9sbG93aW5nUGFnZURpZmYobiksMikscz1vWzBdLGM9b1sxXTthW25dLnNldExvY2FsUG9zaXRpb24ocyxjKX19LGUucHJvdG90eXBlLnJlbmRlckNvbnRyb2xsZXI9ZnVuY3Rpb24obil7dmFyIHI9dGhpcyxpPXRoaXMuYXR0cmlidXRlcy5jb250cm9sbGVyU3BhY2luZyxhPXRoaXMucGFnZVNoYXBlLG89YS5wYWdlV2lkdGgscz1hLnBhZ2VIZWlnaHQsYz10aGlzLnBhZ2VWaWV3cy5sZW5ndGg+PTIsbD1uLm1heWJlQXBwZW5kQnlDbGFzc05hbWUoRW8uY29udHJvbGxlciwiZyIpO2lmKGFtKGwubm9kZSgpLGMpLCEhYyl7dmFyIHU9ZW4odGhpcy5hdHRyaWJ1dGVzLCJidXR0b24iKSxmPWVuKHRoaXMuYXR0cmlidXRlcywicGFnZU51bSIpLGQ9VihvYyh1KSwyKSxoPWRbMF0sdj1kWzFdLGc9aC5zaXplLHk9JHIoaCxbInNpemUiXSksYj0hbC5zZWxlY3QoRW8ucHJldkJ0bkdyb3VwLmNsYXNzKS5ub2RlKCkseD1sLm1heWJlQXBwZW5kQnlDbGFzc05hbWUoRW8ucHJldkJ0bkdyb3VwLCJnIikuc3R5bGVzKHYpO3RoaXMucHJldkJ0bkdyb3VwPXgubm9kZSgpO3ZhciBfPXgubWF5YmVBcHBlbmRCeUNsYXNzTmFtZShFby5wcmV2QnRuLCJwYXRoIiksdz1sLm1heWJlQXBwZW5kQnlDbGFzc05hbWUoRW8ubmV4dEJ0bkdyb3VwLCJnIikuc3R5bGVzKHYpO3RoaXMubmV4dEJ0bkdyb3VwPXcubm9kZSgpO3ZhciBPPXcubWF5YmVBcHBlbmRCeUNsYXNzTmFtZShFby5uZXh0QnRuLCJwYXRoIik7W18sT10uZm9yRWFjaChmdW5jdGlvbihNKXtNLnN0eWxlcyhBdChBdCh7fSx5KSx7dHJhbnNmb3JtT3JpZ2luOiJjZW50ZXIifSkpLGZ3KE0ubm9kZSgpLGcsITApfSk7dmFyIEU9bC5tYXliZUFwcGVuZEJ5Q2xhc3NOYW1lKEVvLnBhZ2VJbmZvR3JvdXAsImciKTt0aGlzLnBhZ2VJbmZvR3JvdXA9RS5ub2RlKCksRS5tYXliZUFwcGVuZEJ5Q2xhc3NOYW1lKEVvLnBhZ2VJbmZvLCJ0ZXh0Iikuc3R5bGVzKGYpLHRoaXMudXBkYXRlUGFnZUluZm8oKSxsLm5vZGUoKS5zZXRMb2NhbFBvc2l0aW9uKG8raSxzLzIpLGImJih0aGlzLnByZXZCdG5Hcm91cC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtyLnByZXYoKX0pLHRoaXMubmV4dEJ0bkdyb3VwLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3IubmV4dCgpfSkpfX0sZS5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKG4scil7dmFyIGk9bi54LGE9aT09PXZvaWQgMD8wOmksbz1uLnkscz1vPT09dm9pZCAwPzA6bzt0aGlzLmF0dHIoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgiLmNvbmNhdChhLCIsICIpLmNvbmNhdChzLCIpIikpO3ZhciBjPUZlKHIpO3RoaXMucmVuZGVyQ2xpcFBhdGgoYyksdGhpcy5yZW5kZXJDb250cm9sbGVyKGMpLHRoaXMuc2V0VmlzaWJsZVBhZ2VzKFt0aGlzLmRlZmF1bHRQYWdlXSksdGhpcy5nb1RvKHRoaXMuZGVmYXVsdFBhZ2UpfSxlLnByb3RvdHlwZS5iaW5kRXZlbnRzPWZ1bmN0aW9uKCl7dmFyIG49dGhpcyxyPV9BKGZ1bmN0aW9uKCl7cmV0dXJuIG4ucmVuZGVyKG4uYXR0cmlidXRlcyxuKX0sNTApO3RoaXMucGxheVdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCRlLklOU0VSVEVELHIpLHRoaXMucGxheVdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCRlLlJFTU9WRUQscil9LGV9KGJpKSxZYT14byh7bGF5b3V0OiJmbGV4IixtYXJrZXJHcm91cDoibWFya2VyLWdyb3VwIixtYXJrZXI6Im1hcmtlciIsbGFiZWxHcm91cDoibGFiZWwtZ3JvdXAiLGxhYmVsOiJsYWJlbCIsdmFsdWVHcm91cDoidmFsdWUtZ3JvdXAiLHZhbHVlOiJ2YWx1ZSIsYmFja2dyb3VuZEdyb3VwOiJiYWNrZ3JvdW5kLWdyb3VwIixiYWNrZ3JvdW5kOiJiYWNrZ3JvdW5kIn0sImxlZ2VuZC1jYXRlZ29yeS1pdGVtIik7ZnVuY3Rpb24gdlgodCl7dmFyIGU9dC5xdWVyeVNlbGVjdG9yKFlhLm1hcmtlci5jbGFzcyk7cmV0dXJuIGU/ZS5zdHlsZTp7fX12YXIgZ1g9ZnVuY3Rpb24odCl7YXIoZSx0KTtmdW5jdGlvbiBlKG4pe3JldHVybiB0LmNhbGwodGhpcyxuLHtzcGFuOlsxLDFdLG1hcmtlcjpmdW5jdGlvbigpe3JldHVybiBuZXcgdGMoe3N0eWxlOntyOjZ9fSl9LG1hcmtlclNpemU6MTAsbGFiZWxGaWxsOiIjNjQ2NDY0Iix2YWx1ZUZpbGw6IiM2NDY0NjQiLGxhYmVsRm9udFNpemU6MTIsdmFsdWVGb250U2l6ZToxMixsYWJlbFRleHRCYXNlbGluZToibWlkZGxlIix2YWx1ZVRleHRCYXNlbGluZToibWlkZGxlIn0pfHx0aGlzfXJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsInNob3dWYWx1ZSIse2dldDpmdW5jdGlvbigpe3ZhciBuPXRoaXMuYXR0cmlidXRlcy52YWx1ZVRleHQ7cmV0dXJuIG4/dHlwZW9mIG49PSJzdHJpbmcifHx0eXBlb2Ygbj09Im51bWJlciI/biE9PSIiOnR5cGVvZiBuPT0iZnVuY3Rpb24iPyEwOm4uYXR0cigidGV4dCIpIT09IiI6ITF9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJhY3R1YWxTcGFjZSIse2dldDpmdW5jdGlvbigpe3ZhciBuPXRoaXMubGFiZWxHcm91cCxyPXRoaXMudmFsdWVHcm91cCxpPXRoaXMuYXR0cmlidXRlcy5tYXJrZXJTaXplLGE9bi5ub2RlKCkuZ2V0QkJveCgpLG89YS53aWR0aCxzPWEuaGVpZ2h0LGM9ci5ub2RlKCkuZ2V0QkJveCgpLGw9Yy53aWR0aCx1PWMuaGVpZ2h0O3JldHVybnttYXJrZXJXaWR0aDppLGxhYmVsV2lkdGg6byx2YWx1ZVdpZHRoOmwsaGVpZ2h0Ok1hdGgubWF4KGkscyx1KX19LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJzcGFuIix7Z2V0OmZ1bmN0aW9uKCl7dmFyIG49dGhpcy5hdHRyaWJ1dGVzLnNwYW47aWYoIW4pcmV0dXJuWzEsMV07dmFyIHI9VihOaShuKSwyKSxpPXJbMF0sYT1yWzFdLG89dGhpcy5zaG93VmFsdWU/YTowLHM9aStvO3JldHVybltpL3Msby9zXX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsInNoYXBlIix7Z2V0OmZ1bmN0aW9uKCl7dmFyIG4scj10aGlzLmF0dHJpYnV0ZXMsaT1yLm1hcmtlclNpemUsYT1yLndpZHRoLG89dGhpcy5hY3R1YWxTcGFjZSxzPW8ubWFya2VyV2lkdGgsYz1vLmhlaWdodCxsPXRoaXMuYWN0dWFsU3BhY2UsdT1sLmxhYmVsV2lkdGgsZj1sLnZhbHVlV2lkdGgsZD1WKHRoaXMuc3BhY2luZywyKSxoPWRbMF0sdj1kWzFdO2lmKGEpe3ZhciBnPWEtaS1oLXYseT1WKHRoaXMuc3BhbiwyKSxiPXlbMF0seD15WzFdO249VihbYipnLHgqZ10sMiksdT1uWzBdLGY9blsxXX12YXIgXz1zK3UrZitoK3Y7cmV0dXJue3dpZHRoOl8saGVpZ2h0OmMsbWFya2VyV2lkdGg6cyxsYWJlbFdpZHRoOnUsdmFsdWVXaWR0aDpmfX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsInNwYWNpbmciLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgbj10aGlzLmF0dHJpYnV0ZXMuc3BhY2luZztpZighbilyZXR1cm5bMCwwXTt2YXIgcj1WKE5pKG4pLDIpLGk9clswXSxhPXJbMV07cmV0dXJuIHRoaXMuc2hvd1ZhbHVlP1tpLGFdOltpLDBdfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwibGF5b3V0Iix7Z2V0OmZ1bmN0aW9uKCl7dmFyIG49dGhpcy5zaGFwZSxyPW4ubWFya2VyV2lkdGgsaT1uLmxhYmVsV2lkdGgsYT1uLnZhbHVlV2lkdGgsbz1uLndpZHRoLHM9bi5oZWlnaHQsYz1WKHRoaXMuc3BhY2luZywyKSxsPWNbMF0sdT1jWzFdO3JldHVybntoZWlnaHQ6cyx3aWR0aDpvLG1hcmtlcldpZHRoOnIsbGFiZWxXaWR0aDppLHZhbHVlV2lkdGg6YSxwb3NpdGlvbjpbci8yLHIrbCxyK2krbCt1XX19LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJzY2FsZVNpemUiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgbj12WCh0aGlzLm1hcmtlckdyb3VwLm5vZGUoKSkscj10aGlzLmF0dHJpYnV0ZXMsaT1yLm1hcmtlclNpemUsYT1yLm1hcmtlclN0cm9rZVdpZHRoLG89YT09PXZvaWQgMD9uLnN0cm9rZVdpZHRoOmEscz1yLm1hcmtlckxpbmVXaWR0aCxjPXM9PT12b2lkIDA/bi5saW5lV2lkdGg6cyxsPXIubWFya2VyU3Ryb2tlLHU9bD09PXZvaWQgMD9uLnN0cm9rZTpsLGY9KyhvfHxjfHwodT8xOjApKSpNYXRoLnNxcnQoMiksZD10aGlzLm1hcmtlckdyb3VwLm5vZGUoKS5nZXRCQm94KCksaD1kLndpZHRoLHY9ZC5oZWlnaHQ7cmV0dXJuKDEtZi9NYXRoLm1heChoLHYpKSppfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLnJlbmRlck1hcmtlcj1mdW5jdGlvbihuKXt2YXIgcj10aGlzLGk9dGhpcy5hdHRyaWJ1dGVzLm1hcmtlcixhPWVuKHRoaXMuYXR0cmlidXRlcywibWFya2VyIik7dGhpcy5tYXJrZXJHcm91cD1uLm1heWJlQXBwZW5kQnlDbGFzc05hbWUoWWEubWFya2VyR3JvdXAsImciKS5zdHlsZSgiekluZGV4IiwwKSxQYSghIWksdGhpcy5tYXJrZXJHcm91cCxmdW5jdGlvbigpe3ZhciBvLHM9ci5tYXJrZXJHcm91cC5ub2RlKCksYz0obz1zLmNoaWxkTm9kZXMpPT09bnVsbHx8bz09PXZvaWQgMD92b2lkIDA6b1swXSxsPXR5cGVvZiBpPT0ic3RyaW5nIj9uZXcgQW4oe3N0eWxlOntzeW1ib2w6aX0sY2xhc3NOYW1lOllhLm1hcmtlci5uYW1lfSk6aSgpO2M/bC5ub2RlTmFtZT09PWMubm9kZU5hbWU/YyBpbnN0YW5jZW9mIEFuP2MudXBkYXRlKEF0KEF0KHt9LGEpLHtzeW1ib2w6aX0pKTooZUIoYyxsKSxGZShjKS5zdHlsZXMoYSkpOihjLnJlbW92ZSgpLEZlKGwpLmF0dHIoImNsYXNzTmFtZSIsWWEubWFya2VyLm5hbWUpLnN0eWxlcyhhKSxzLmFwcGVuZENoaWxkKGwpKToobCBpbnN0YW5jZW9mIEFufHxGZShsKS5hdHRyKCJjbGFzc05hbWUiLFlhLm1hcmtlci5uYW1lKS5zdHlsZXMoYSkscy5hcHBlbmRDaGlsZChsKSksci5tYXJrZXJHcm91cC5ub2RlKCkuc2NhbGUoMS9yLm1hcmtlckdyb3VwLm5vZGUoKS5nZXRTY2FsZSgpWzBdKTt2YXIgdT1mdyhyLm1hcmtlckdyb3VwLm5vZGUoKSxyLnNjYWxlU2l6ZSwhMCk7ci5tYXJrZXJHcm91cC5ub2RlKCkuc3R5bGUuX3RyYW5zZm9ybT0ic2NhbGUoIi5jb25jYXQodSwiKSIpfSl9LGUucHJvdG90eXBlLnJlbmRlckxhYmVsPWZ1bmN0aW9uKG4pe3ZhciByPWVuKHRoaXMuYXR0cmlidXRlcywibGFiZWwiKSxpPXIudGV4dCxhPSRyKHIsWyJ0ZXh0Il0pO3RoaXMubGFiZWxHcm91cD1uLm1heWJlQXBwZW5kQnlDbGFzc05hbWUoWWEubGFiZWxHcm91cCwiZyIpLnN0eWxlKCJ6SW5kZXgiLDApLHRoaXMubGFiZWxHcm91cC5tYXliZUFwcGVuZEJ5Q2xhc3NOYW1lKFlhLmxhYmVsLGZ1bmN0aW9uKCl7cmV0dXJuIHB1KGkpfSkuc3R5bGVzKGEpfSxlLnByb3RvdHlwZS5yZW5kZXJWYWx1ZT1mdW5jdGlvbihuKXt2YXIgcj10aGlzLGk9ZW4odGhpcy5hdHRyaWJ1dGVzLCJ2YWx1ZSIpLGE9aS50ZXh0LG89JHIoaSxbInRleHQiXSk7dGhpcy52YWx1ZUdyb3VwPW4ubWF5YmVBcHBlbmRCeUNsYXNzTmFtZShZYS52YWx1ZUdyb3VwLCJnIikuc3R5bGUoInpJbmRleCIsMCksUGEodGhpcy5zaG93VmFsdWUsdGhpcy52YWx1ZUdyb3VwLGZ1bmN0aW9uKCl7ci52YWx1ZUdyb3VwLm1heWJlQXBwZW5kQnlDbGFzc05hbWUoWWEudmFsdWUsZnVuY3Rpb24oKXtyZXR1cm4gcHUoYSl9KS5zdHlsZXMobyl9KX0sZS5wcm90b3R5cGUucmVuZGVyQmFja2dyb3VuZD1mdW5jdGlvbihuKXt2YXIgcj10aGlzLnNoYXBlLGk9ci53aWR0aCxhPXIuaGVpZ2h0LG89ZW4odGhpcy5hdHRyaWJ1dGVzLCJiYWNrZ3JvdW5kIik7dGhpcy5iYWNrZ3JvdW5kPW4ubWF5YmVBcHBlbmRCeUNsYXNzTmFtZShZYS5iYWNrZ3JvdW5kR3JvdXAsImciKS5zdHlsZSgiekluZGV4IiwtMSksdGhpcy5iYWNrZ3JvdW5kLm1heWJlQXBwZW5kQnlDbGFzc05hbWUoWWEuYmFja2dyb3VuZCwicmVjdCIpLnN0eWxlcyhBdCh7d2lkdGg6aSxoZWlnaHQ6YX0sbykpfSxlLnByb3RvdHlwZS5hZGp1c3RMYXlvdXQ9ZnVuY3Rpb24oKXt2YXIgbj10aGlzLmxheW91dCxyPW4ubGFiZWxXaWR0aCxpPW4udmFsdWVXaWR0aCxhPW4uaGVpZ2h0LG89VihuLnBvc2l0aW9uLDMpLHM9b1swXSxjPW9bMV0sbD1vWzJdLHU9YS8yO3RoaXMubWFya2VyR3JvdXAuc3R5bGVzKHt0cmFuc2Zvcm06InRyYW5zbGF0ZSgiLmNvbmNhdChzLCIsICIpLmNvbmNhdCh1LCIpIikuY29uY2F0KHRoaXMubWFya2VyR3JvdXAubm9kZSgpLnN0eWxlLl90cmFuc2Zvcm0pfSksdGhpcy5sYWJlbEdyb3VwLnN0eWxlcyh7dHJhbnNmb3JtOiJ0cmFuc2xhdGUoIi5jb25jYXQoYywiLCAiKS5jb25jYXQodSwiKSIpfSksZ3codGhpcy5sYWJlbEdyb3VwLnNlbGVjdChZYS5sYWJlbC5jbGFzcykubm9kZSgpLE1hdGguY2VpbChyKSksdGhpcy5zaG93VmFsdWUmJih0aGlzLnZhbHVlR3JvdXAuc3R5bGVzKHt0cmFuc2Zvcm06InRyYW5zbGF0ZSgiLmNvbmNhdChsLCIsICIpLmNvbmNhdCh1LCIpIil9KSxndyh0aGlzLnZhbHVlR3JvdXAuc2VsZWN0KFlhLnZhbHVlLmNsYXNzKS5ub2RlKCksTWF0aC5jZWlsKGkpKSl9LGUucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbihuLHIpe3ZhciBpPUZlKHIpLGE9bi54LG89YT09PXZvaWQgMD8wOmEscz1uLnksYz1zPT09dm9pZCAwPzA6cztpLnN0eWxlcyh7dHJhbnNmb3JtOiJ0cmFuc2xhdGUoIi5jb25jYXQobywiLCAiKS5jb25jYXQoYywiKSIpfSksdGhpcy5yZW5kZXJNYXJrZXIoaSksdGhpcy5yZW5kZXJMYWJlbChpKSx0aGlzLnJlbmRlclZhbHVlKGkpLHRoaXMucmVuZGVyQmFja2dyb3VuZChpKSx0aGlzLmFkanVzdExheW91dCgpfSxlfShiaSksUnU9eG8oe3BhZ2U6Iml0ZW0tcGFnZSIsbmF2aWdhdG9yOiJuYXZpZ2F0b3IiLGl0ZW06Iml0ZW0ifSwiaXRlbXMiKSxPTj1mdW5jdGlvbih0LGUsbil7cmV0dXJuIG49PT12b2lkIDAmJihuPSEwKSx0P2UodCk6bn0seVg9ZnVuY3Rpb24odCl7YXIoZSx0KTtmdW5jdGlvbiBlKG4pe3ZhciByPXQuY2FsbCh0aGlzLG4se2RhdGE6W10sZ3JpZFJvdzoxLzAsZ3JpZENvbDp2b2lkIDAscGFkZGluZzowLHdpZHRoOjFlMyxoZWlnaHQ6MTAwLHJvd1BhZGRpbmc6MCxjb2xQYWRkaW5nOjAsbGF5b3V0OiJmbGV4IixvcmllbnRhdGlvbjoiaG9yaXpvbnRhbCIsY2xpY2s6clMsbW91c2VlbnRlcjpyUyxtb3VzZWxlYXZlOnJTfSl8fHRoaXM7cmV0dXJuIHIubmF2aWdhdG9yU2hhcGU9WzAsMF0scn1yZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJwYWdlVmlld3MiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5uYXZpZ2F0b3IuZ2V0Q29udGFpbmVyKCl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJncmlkIix7Z2V0OmZ1bmN0aW9uKCl7dmFyIG49dGhpcy5hdHRyaWJ1dGVzLHI9bi5ncmlkUm93LGk9bi5ncmlkQ29sLGE9bi5kYXRhO2lmKCFyJiYhaSl0aHJvdyBuZXcgRXJyb3IoImdyaWRSb3cgYW5kIGdyaWRDb2wgY2FuIG5vdCBiZSBzZXQgbnVsbCBhdCB0aGUgc2FtZSB0aW1lIik7cmV0dXJuIHImJmk/W3IsaV06cj9bcixhLmxlbmd0aF06W2EubGVuZ3RoLGldfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwicmVuZGVyRGF0YSIse2dldDpmdW5jdGlvbigpe3ZhciBuPXRoaXMuYXR0cmlidXRlcyxyPW4uZGF0YSxpPW4ubGF5b3V0LGE9ZW4odGhpcy5hdHRyaWJ1dGVzLCJpdGVtIiksbz1yLm1hcChmdW5jdGlvbihzLGMpe3ZhciBsPXMuaWQsdT1sPT09dm9pZCAwP2M6bCxmPXMubGFiZWwsZD1zLnZhbHVlO3JldHVybntpZDoiIi5jb25jYXQodSksaW5kZXg6YyxzdHlsZTpBdCh7bGF5b3V0OmksbGFiZWxUZXh0OmYsdmFsdWVUZXh0OmR9LE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyhhKS5tYXAoZnVuY3Rpb24oaCl7dmFyIHY9VihoLDIpLGc9dlswXSx5PXZbMV07cmV0dXJuW2csX28oeSxbcyxjLHJdKV19KSkpfX0pO3JldHVybiBvfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLmdldEdyaWRMYXlvdXQ9ZnVuY3Rpb24oKXt2YXIgbj10aGlzLHI9dGhpcy5hdHRyaWJ1dGVzLGk9ci5vcmllbnRhdGlvbixhPXIud2lkdGgsbz1yLnJvd1BhZGRpbmcscz1yLmNvbFBhZGRpbmcsYz1WKHRoaXMubmF2aWdhdG9yU2hhcGUsMSksbD1jWzBdLHU9Vih0aGlzLmdyaWQsMiksZj11WzBdLGQ9dVsxXSxoPWQqZix2PTA7cmV0dXJuIHRoaXMucGFnZVZpZXdzLmNoaWxkcmVuLm1hcChmdW5jdGlvbihnLHkpe3ZhciBiLHgsXz1NYXRoLmZsb29yKHkvaCksdz15JWgsTz1uLmlmSG9yaXpvbnRhbChkLGYpLEU9W01hdGguZmxvb3Iody9PKSx3JU9dO2k9PT0idmVydGljYWwiJiZFLnJldmVyc2UoKTt2YXIgTT1WKEUsMiksaz1NWzBdLEE9TVsxXSxQPShhLWwtKGQtMSkqcykvZCxDPWcuZ2V0QkJveCgpLmhlaWdodCxOPVYoWzAsMF0sMiksTD1OWzBdLFI9TlsxXTtyZXR1cm4gaT09PSJob3Jpem9udGFsIj8oYj1WKFt2LGsqKEMrbyldLDIpLEw9YlswXSxSPWJbMV0sdj1BPT09ZC0xPzA6ditQK3MpOih4PVYoW0EqKFArcyksdl0sMiksTD14WzBdLFI9eFsxXSx2PWs9PT1mLTE/MDp2K0Mrbykse3BhZ2U6XyxpbmRleDp5LHJvdzprLGNvbDpBLHBhZ2VJbmRleDp3LHdpZHRoOlAsaGVpZ2h0OkMseDpMLHk6Un19KX0sZS5wcm90b3R5cGUuZ2V0RmxleExheW91dD1mdW5jdGlvbigpe3ZhciBuPXRoaXMuYXR0cmlidXRlcyxyPW4ud2lkdGgsaT1uLmhlaWdodCxhPW4ucm93UGFkZGluZyxvPW4uY29sUGFkZGluZyxzPVYodGhpcy5uYXZpZ2F0b3JTaGFwZSwxKSxjPXNbMF0sbD1WKHRoaXMuZ3JpZCwyKSx1PWxbMF0sZj1sWzFdLGQ9Vihbci1jLGldLDIpLGg9ZFswXSx2PWRbMV0sZz1WKFswLDAsMCwwLDAsMCwwLDBdLDgpLHk9Z1swXSxiPWdbMV0seD1nWzJdLF89Z1szXSx3PWdbNF0sTz1nWzVdLEU9Z1s2XSxNPWdbN107cmV0dXJuIHRoaXMucGFnZVZpZXdzLmNoaWxkcmVuLm1hcChmdW5jdGlvbihrLEEpe3ZhciBQLEMsTixMLFI9ay5nZXRCQm94KCksST1SLndpZHRoLEQ9Ui5oZWlnaHQsRz1FPT09MD8wOm8sRj1FK0crSTtpZihGPD1oJiZPTih3LGZ1bmN0aW9uKFgpe3JldHVybiBYPGZ9KSlyZXR1cm4gUD1WKFtFK0csTSxGXSwzKSx5PVBbMF0sYj1QWzFdLEU9UFsyXSx7d2lkdGg6SSxoZWlnaHQ6RCx4OnkseTpiLHBhZ2U6eCxpbmRleDpBLHBhZ2VJbmRleDpfKysscm93Ok8sY29sOncrK307Qz1WKFtPKzEsMCwwLE0rRCthXSw0KSxPPUNbMF0sdz1DWzFdLEU9Q1syXSxNPUNbM107dmFyIFc9TStEO3JldHVybiBXPD12JiZPTihPLGZ1bmN0aW9uKFgpe3JldHVybiBYPHV9KT8oTj1WKFtFLE0sSV0sMykseT1OWzBdLGI9TlsxXSxFPU5bMl0se3dpZHRoOkksaGVpZ2h0OkQseDp5LHk6YixwYWdlOngsaW5kZXg6QSxwYWdlSW5kZXg6XysrLHJvdzpPLGNvbDp3Kyt9KTooTD1WKFswLDAsSSwwLHgrMSwwLDAsMF0sOCkseT1MWzBdLGI9TFsxXSxFPUxbMl0sTT1MWzNdLHg9TFs0XSxfPUxbNV0sTz1MWzZdLHc9TFs3XSx7d2lkdGg6SSxoZWlnaHQ6RCx4OnkseTpiLHBhZ2U6eCxpbmRleDpBLHBhZ2VJbmRleDpfKysscm93Ok8sY29sOncrK30pfSl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwiaXRlbXNMYXlvdXQiLHtnZXQ6ZnVuY3Rpb24oKXt0aGlzLm5hdmlnYXRvclNoYXBlPVswLDBdO3ZhciBuPXRoaXMuYXR0cmlidXRlcy5sYXlvdXQ9PT0iZ3JpZCI/dGhpcy5nZXRHcmlkTGF5b3V0OnRoaXMuZ2V0RmxleExheW91dCxyPW4uY2FsbCh0aGlzKTtyZXR1cm4gci5zbGljZSgtMSlbMF0ucGFnZT4wPyh0aGlzLm5hdmlnYXRvclNoYXBlPVs1NSwwXSxuLmNhbGwodGhpcykpOnJ9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksZS5wcm90b3R5cGUuaWZIb3Jpem9udGFsPWZ1bmN0aW9uKG4scil7dmFyIGk9dGhpcy5hdHRyaWJ1dGVzLm9yaWVudGF0aW9uO3JldHVybiB2cyhpLG4scil9LGUucHJvdG90eXBlLmZsYXR0ZW5QYWdlPWZ1bmN0aW9uKG4pe24ucXVlcnlTZWxlY3RvckFsbChSdS5pdGVtLmNsYXNzKS5mb3JFYWNoKGZ1bmN0aW9uKHIpe24uYXBwZW5kQ2hpbGQocil9KSxuLnF1ZXJ5U2VsZWN0b3JBbGwoUnUucGFnZS5jbGFzcykuZm9yRWFjaChmdW5jdGlvbihyKXt2YXIgaT1uLnJlbW92ZUNoaWxkKHIpO2kuZGVzdHJveSgpfSl9LGUucHJvdG90eXBlLnJlbmRlckl0ZW1zPWZ1bmN0aW9uKG4pe3ZhciByPXRoaXMuYXR0cmlidXRlcyxpPXIuY2xpY2ssYT1yLm1vdXNlZW50ZXIsbz1yLm1vdXNlbGVhdmU7dGhpcy5mbGF0dGVuUGFnZShuKTt2YXIgcz10aGlzLmRpc3BhdGNoQ3VzdG9tRXZlbnQuYmluZCh0aGlzKTtGZShuKS5zZWxlY3RBbGwoUnUuaXRlbS5jbGFzcykuZGF0YSh0aGlzLnJlbmRlckRhdGEsZnVuY3Rpb24oYyl7cmV0dXJuIGMuaWR9KS5qb2luKGZ1bmN0aW9uKGMpe3JldHVybiBjLmFwcGVuZChmdW5jdGlvbihsKXt2YXIgdT1sLnN0eWxlO3JldHVybiBuZXcgZ1goe3N0eWxlOnV9KX0pLmF0dHIoImNsYXNzTmFtZSIsUnUuaXRlbS5uYW1lKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7aT09bnVsbHx8aSh0aGlzKSxzKCJpdGVtQ2xpY2siLHtpdGVtOnRoaXN9KX0pLm9uKCJwb2ludGVyZW50ZXIiLGZ1bmN0aW9uKCl7YT09bnVsbHx8YSh0aGlzKSxzKCJpdGVtTW91c2VlbnRlciIse2l0ZW06dGhpc30pfSkub24oInBvaW50ZXJsZWF2ZSIsZnVuY3Rpb24oKXtvPT1udWxsfHxvKHRoaXMpLHMoIml0ZW1Nb3VzZWxlYXZlIix7aXRlbTp0aGlzfSl9KX0sZnVuY3Rpb24oYyl7cmV0dXJuIGMuZWFjaChmdW5jdGlvbihsKXt2YXIgdT1sLnN0eWxlO3RoaXMudXBkYXRlKHUpfSl9LGZ1bmN0aW9uKGMpe3JldHVybiBjLnJlbW92ZSgpfSl9LGUucHJvdG90eXBlLnJlbGF5b3V0TmF2aWdhdG9yPWZ1bmN0aW9uKCl7dmFyIG4scj10aGlzLmF0dHJpYnV0ZXMsaT1yLmxheW91dCxhPXIud2lkdGgsbz0oKG49dGhpcy5wYWdlVmlld3MuY2hpbGRyZW5bMF0pPT09bnVsbHx8bj09PXZvaWQgMD92b2lkIDA6bi5nZXRCQm94KCkuaGVpZ2h0KXx8MCxzPVYodGhpcy5uYXZpZ2F0b3JTaGFwZSwyKSxjPXNbMF0sbD1zWzFdO3RoaXMubmF2aWdhdG9yLnVwZGF0ZShpPT09ImdyaWQiP3twYWdlV2lkdGg6YS1jLHBhZ2VIZWlnaHQ6by1sfTp7fSl9LGUucHJvdG90eXBlLmFkanVzdExheW91dD1mdW5jdGlvbigpe3ZhciBuPXRoaXMscj1PYmplY3QuZW50cmllcyhkWCh0aGlzLml0ZW1zTGF5b3V0LCJwYWdlIikpLm1hcChmdW5jdGlvbihhKXt2YXIgbz1WKGEsMikscz1vWzBdLGM9b1sxXTtyZXR1cm57cGFnZTpzLGxheW91dHM6Y319KSxpPXRlKFtdLFYodGhpcy5uYXZpZ2F0b3IuZ2V0Q29udGFpbmVyKCkuY2hpbGRyZW4pLCExKTtyLmZvckVhY2goZnVuY3Rpb24oYSl7dmFyIG89YS5sYXlvdXRzLHM9bi5wYWdlVmlld3MuYXBwZW5kQ2hpbGQobmV3IHVpKHtjbGFzc05hbWU6UnUucGFnZS5uYW1lfSkpO28uZm9yRWFjaChmdW5jdGlvbihjKXt2YXIgbD1jLngsdT1jLnksZj1jLmluZGV4LGQ9Yy53aWR0aCxoPWMuaGVpZ2h0LHY9aVtmXTtzLmFwcGVuZENoaWxkKHYpLGZYKHYsIl9fbGF5b3V0X18iLGMpLHYudXBkYXRlKHt4OmwseTp1LHdpZHRoOmQsaGVpZ2h0Omh9KX0pfSksdGhpcy5yZWxheW91dE5hdmlnYXRvcigpfSxlLnByb3RvdHlwZS5yZW5kZXJOYXZpZ2F0b3I9ZnVuY3Rpb24obil7dmFyIHI9dGhpcy5hdHRyaWJ1dGVzLm9yaWVudGF0aW9uLGk9ZW4odGhpcy5hdHRyaWJ1dGVzLCJuYXYiKSxhPWljKHtvcmllbnRhdGlvbjpyfSxpKSxvPXRoaXM7cmV0dXJuIG4uc2VsZWN0QWxsKFJ1Lm5hdmlnYXRvci5jbGFzcykuZGF0YShbIm5hdiJdKS5qb2luKGZ1bmN0aW9uKHMpe3JldHVybiBzLmFwcGVuZChmdW5jdGlvbigpe3JldHVybiBuZXcgcFgoe3N0eWxlOmF9KX0pLmF0dHIoImNsYXNzTmFtZSIsUnUubmF2aWdhdG9yLm5hbWUpLmVhY2goZnVuY3Rpb24oKXtvLm5hdmlnYXRvcj10aGlzfSl9LGZ1bmN0aW9uKHMpe3JldHVybiBzLmVhY2goZnVuY3Rpb24oKXt0aGlzLnVwZGF0ZShhKX0pfSxmdW5jdGlvbihzKXtyZXR1cm4gcy5yZW1vdmUoKX0pLHRoaXMubmF2aWdhdG9yfSxlLnByb3RvdHlwZS5nZXRCQm94PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmF2aWdhdG9yLmdldEJCb3goKX0sZS5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKG4scil7dmFyIGk9dGhpcy5hdHRyaWJ1dGVzLmRhdGE7aWYoISghaXx8aS5sZW5ndGg9PT0wKSl7dmFyIGE9dGhpcy5yZW5kZXJOYXZpZ2F0b3IoRmUocikpO3RoaXMucmVuZGVySXRlbXMoYS5nZXRDb250YWluZXIoKSksdGhpcy5hZGp1c3RMYXlvdXQoKX19LGUucHJvdG90eXBlLmRpc3BhdGNoQ3VzdG9tRXZlbnQ9ZnVuY3Rpb24obixyKXt2YXIgaT1uZXcgTm4obix7ZGV0YWlsOnJ9KTt0aGlzLmRpc3BhdGNoRXZlbnQoaSl9LGV9KGJpKSxtWD1mdW5jdGlvbih0KXthcihlLHQpO2Z1bmN0aW9uIGUobil7cmV0dXJuIHQuY2FsbCh0aGlzLG4sejcpfHx0aGlzfXJldHVybiBlLnByb3RvdHlwZS5yZW5kZXJUaXRsZT1mdW5jdGlvbihuLHIsaSl7dmFyIGE9dGhpcy5hdHRyaWJ1dGVzLG89YS5zaG93VGl0bGUscz1hLnRpdGxlVGV4dCxjPWVuKHRoaXMuYXR0cmlidXRlcywidGl0bGUiKSxsPVYob2MoYyksMiksdT1sWzBdLGY9bFsxXTt0aGlzLnRpdGxlR3JvdXA9bi5tYXliZUFwcGVuZEJ5Q2xhc3NOYW1lKElpLnRpdGxlR3JvdXAsImciKS5zdHlsZXMoZik7dmFyIGQ9QXQoQXQoe3dpZHRoOnIsaGVpZ2h0Oml9LHUpLHt0ZXh0Om8/czoiIn0pO3RoaXMudGl0bGU9dGhpcy50aXRsZUdyb3VwLm1heWJlQXBwZW5kQnlDbGFzc05hbWUoSWkudGl0bGUsZnVuY3Rpb24oKXtyZXR1cm4gbmV3IExUKHtzdHlsZTpkfSl9KS51cGRhdGUoZCl9LGUucHJvdG90eXBlLnJlbmRlckl0ZW1zPWZ1bmN0aW9uKG4scil7dmFyIGk9ci54LGE9ci55LG89ci53aWR0aCxzPXIuaGVpZ2h0LGM9ZW4odGhpcy5hdHRyaWJ1dGVzLCJ0aXRsZSIsITApLGw9VihvYyhjKSwyKSx1PWxbMF0sZj1sWzFdLGQ9QXQoQXQoe30sdSkse3dpZHRoOm8saGVpZ2h0OnMseDowLHk6MH0pO3RoaXMuaXRlbXNHcm91cD1uLm1heWJlQXBwZW5kQnlDbGFzc05hbWUoSWkuaXRlbXNHcm91cCwiZyIpLnN0eWxlcyhBdChBdCh7fSxmKSx7dHJhbnNmb3JtOiJ0cmFuc2xhdGUoIi5jb25jYXQoaSwiLCAiKS5jb25jYXQoYSwiKSIpfSkpO3ZhciBoPXRoaXM7dGhpcy5pdGVtc0dyb3VwLnNlbGVjdEFsbChJaS5pdGVtcy5jbGFzcykuZGF0YShbIml0ZW1zIl0pLmpvaW4oZnVuY3Rpb24odil7cmV0dXJuIHYuYXBwZW5kKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB5WCh7c3R5bGU6ZH0pfSkuYXR0cigiY2xhc3NOYW1lIixJaS5pdGVtcy5uYW1lKS5lYWNoKGZ1bmN0aW9uKCl7aC5pdGVtcz1GZSh0aGlzKX0pfSxmdW5jdGlvbih2KXtyZXR1cm4gdi51cGRhdGUoZCl9LGZ1bmN0aW9uKHYpe3JldHVybiB2LnJlbW92ZSgpfSl9LGUucHJvdG90eXBlLmFkanVzdExheW91dD1mdW5jdGlvbigpe3ZhciBuPXRoaXMuYXR0cmlidXRlcy5zaG93VGl0bGU7aWYobil7dmFyIHI9dGhpcy50aXRsZS5ub2RlKCkuZ2V0QXZhaWxhYmxlU3BhY2UoKSxpPXIueCxhPXIueTt0aGlzLml0ZW1zR3JvdXAubm9kZSgpLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlKCIuY29uY2F0KGksIiwgIikuY29uY2F0KGEsIikiKX19LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwiYXZhaWxhYmxlU3BhY2UiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgbj10aGlzLmF0dHJpYnV0ZXMscj1uLnNob3dUaXRsZSxpPW4ud2lkdGgsYT1uLmhlaWdodDtyZXR1cm4gcj90aGlzLnRpdGxlLm5vZGUoKS5nZXRBdmFpbGFibGVTcGFjZSgpOm5ldyBwcigwLDAsaSxhKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS5nZXRCQm94PWZ1bmN0aW9uKCl7dmFyIG4scixpPShuPXRoaXMudGl0bGUpPT09bnVsbHx8bj09PXZvaWQgMD92b2lkIDA6bi5ub2RlKCksYT0ocj10aGlzLml0ZW1zKT09PW51bGx8fHI9PT12b2lkIDA/dm9pZCAwOnIubm9kZSgpO3JldHVybiFpfHwhYT90LnByb3RvdHlwZS5nZXRCQm94LmNhbGwodGhpcyk6d0IoaSxhKX0sZS5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKG4scil7dmFyIGk9dGhpcy5hdHRyaWJ1dGVzLGE9aS53aWR0aCxvPWkuaGVpZ2h0LHM9aS54LGM9cz09PXZvaWQgMD8wOnMsbD1pLnksdT1sPT09dm9pZCAwPzA6bCxmPUZlKHIpO3Iuc3R5bGUudHJhbnNmb3JtPSJ0cmFuc2xhdGUoIi5jb25jYXQoYywiLCAiKS5jb25jYXQodSwiKSIpLHRoaXMucmVuZGVyVGl0bGUoZixhLG8pLHRoaXMucmVuZGVySXRlbXMoZix0aGlzLmF2YWlsYWJsZVNwYWNlKSx0aGlzLmFkanVzdExheW91dCgpfSxlfShiaSk7ZnVuY3Rpb24gcDAodCl7aWYocWYodCkpe3ZhciBlPXQ7cmV0dXJuIGVbZS5sZW5ndGgtMV19fXZhciBiWD1mdW5jdGlvbih0LGUpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiZlLmluZGV4T2Yocik8MCYmKG5bcl09dFtyXSk7aWYodCE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBpPTAscj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2k8ci5sZW5ndGg7aSsrKWUuaW5kZXhPZihyW2ldKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodCxyW2ldKSYmKG5bcltpXV09dFtyW2ldXSk7cmV0dXJuIG59O2Z1bmN0aW9uIHhYKHQsZSl7Y29uc3Qgbj1ocyh0LCJzaGFwZSIpLHI9aHModCwiY29sb3IiKSxpPW4/bi5jbG9uZSgpOm51bGwsYT1bXTtmb3IoY29uc3RbcyxjXW9mIGUpe2NvbnN0IGw9cy50eXBlLGY9KChyPT1udWxsP3ZvaWQgMDpyLmdldE9wdGlvbnMoKS5kb21haW4ubGVuZ3RoKT4wP3I9PW51bGw/dm9pZCAwOnIuZ2V0T3B0aW9ucygpLmRvbWFpbjpjLmRhdGEpLm1hcCgoZCxoKT0+e3ZhciB2O3JldHVybiBpP2kubWFwKGR8fCJwb2ludCIpOigodj1zPT1udWxsP3ZvaWQgMDpzLnN0eWxlKT09PW51bGx8fHY9PT12b2lkIDA/dm9pZCAwOnYuc2hhcGUpfHxjLmRlZmF1bHRTaGFwZXx8InBvaW50In0pO3R5cGVvZiBsPT0ic3RyaW5nIiYmYS5wdXNoKFtsLGZdKX1pZihhLmxlbmd0aD09PTApcmV0dXJuWyJwb2ludCIsWyJwb2ludCJdXTtpZihhLmxlbmd0aD09PTF8fCFuKXJldHVybiBhWzBdO2NvbnN0e3JhbmdlOm99PW4uZ2V0T3B0aW9ucygpO3JldHVybiBhLm1hcCgoW3MsY10pPT57bGV0IGw9MDtmb3IobGV0IHU9MDt1PGEubGVuZ3RoO3UrKyl7Y29uc3QgZj1vW3Ulby5sZW5ndGhdO2NbdV09PT1mJiZsKyt9cmV0dXJuW2wvYy5sZW5ndGgsW3MsY11dfSkuc29ydCgocyxjKT0+Y1swXS1zWzBdKVswXVsxXX1mdW5jdGlvbiBfWCh0LGUpe2NvbnN0e3NjYWxlczpuLGxpYnJhcnk6cixtYXJrU3RhdGU6aX09ZSxbYSxvXT14WChuLGkpLHtpdGVtTWFya2VyOnMsaXRlbU1hcmtlclNpemU6Y309dCxsPShkLGgpPT57dmFyIHYsZyx5O2NvbnN0IGI9KCh5PShnPSh2PXJbYG1hcmsuJHthfWBdKT09PW51bGx8fHY9PT12b2lkIDA/dm9pZCAwOnYucHJvcHMpPT09bnVsbHx8Zz09PXZvaWQgMD92b2lkIDA6Zy5zaGFwZVtkXSk9PT1udWxsfHx5PT09dm9pZCAwP3ZvaWQgMDp5LnByb3BzLmRlZmF1bHRNYXJrZXIpfHxwMChkLnNwbGl0KCIuIikpLHg9dHlwZW9mIGM9PSJmdW5jdGlvbiI/YyhoKTpjO3JldHVybigpPT5DaihiLHtjb2xvcjpoLmNvbG9yfSkoMCwwLHgpfSx1PWQ9PmAke29bZF19YDtyZXR1cm4gaHMobiwic2hhcGUiKSYmIXM/KGQsaCk9PmwodShoKSxkKTp0eXBlb2Ygcz09ImZ1bmN0aW9uIj8oZCxoKT0+e2NvbnN0IHY9cyhkLmlkLGgpO3JldHVybiB0eXBlb2Ygdj09InN0cmluZyI/bCh2LGQpOnZ9OihkLGgpPT5sKHN8fHUoaCksZCl9ZnVuY3Rpb24gd1godCl7Y29uc3QgZT1ocyh0LCJvcGFjaXR5Iik7aWYoZSl7Y29uc3R7cmFuZ2U6bn09ZS5nZXRPcHRpb25zKCk7cmV0dXJuKHIsaSk9Pm5baV19fWZ1bmN0aW9uIE9YKHQsZSl7Y29uc3Qgbj1ocyh0LCJzaXplIik7cmV0dXJuIG4gaW5zdGFuY2VvZiBwMT9uLm1hcChOYU4pKjI6ZX1mdW5jdGlvbiBTWCh0LGUpe2NvbnN0e2xhYmVsRm9ybWF0dGVyOm49ZD0+YCR7ZH1gfT10LHtzY2FsZXM6cix0aGVtZTppfT1lLGE9aS5sZWdlbmRDYXRlZ29yeS5pdGVtTWFya2VyU2l6ZSxvPU9YKHIsYSkscz17aXRlbU1hcmtlcjpfWChPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2l0ZW1NYXJrZXJTaXplOm99KSxlKSxpdGVtTWFya2VyU2l6ZTpvLGl0ZW1NYXJrZXJPcGFjaXR5OndYKHIpfSxjPXR5cGVvZiBuPT0ic3RyaW5nIj9lbChuKTpuLGw9aHMociwiY29sb3IiKSx1PVhCKHIpLGY9bD9kPT5sLm1hcChkKTooKT0+ZS50aGVtZS5jb2xvcjtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHMpLHtkYXRhOnUubWFwKGQ9Pih7aWQ6ZCxsYWJlbDpjKGQpLGNvbG9yOmYoZCl9KSl9KX1mdW5jdGlvbiBFWCh0LGUsbil7Y29uc3R7cG9zaXRpb246cn09ZTtpZihyPT09ImNlbnRlciIpe2NvbnN0e2Jib3g6b309dCx7d2lkdGg6cyxoZWlnaHQ6Y309bztyZXR1cm57d2lkdGg6cyxoZWlnaHQ6Y319Y29uc3R7d2lkdGg6aSxoZWlnaHQ6YX09WlQodCxlLG4pO3JldHVybnt3aWR0aDppLGhlaWdodDphfX1jb25zdCBpUz10PT57Y29uc3R7bGFiZWxGb3JtYXR0ZXI6ZSxsYXlvdXQ6bixvcmRlcjpyLG9yaWVudGF0aW9uOmkscG9zaXRpb246YSxzaXplOm8sdGl0bGU6cyxjb2xzOmMsaXRlbU1hcmtlcjpsfT10LHU9YlgodCxbImxhYmVsRm9ybWF0dGVyIiwibGF5b3V0Iiwib3JkZXIiLCJvcmllbnRhdGlvbiIsInBvc2l0aW9uIiwic2l6ZSIsInRpdGxlIiwiY29scyIsIml0ZW1NYXJrZXIiXSkse2dyaWRSb3c6Zn09dTtyZXR1cm4gZD0+e2NvbnN0e3ZhbHVlOmgsdGhlbWU6dn09ZCx7YmJveDpnfT1oLHt3aWR0aDp5LGhlaWdodDpifT1FWChoLHQsaVMpLHg9R1QoYSxuKSxfPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe29yaWVudGF0aW9uOlsicmlnaHQiLCJsZWZ0IiwiY2VudGVyIl0uaW5jbHVkZXMoYSk/InZlcnRpY2FsIjoiaG9yaXpvbnRhbCIsd2lkdGg6eSxoZWlnaHQ6YixsYXlvdXQ6YyE9PXZvaWQgMD8iZ3JpZCI6ImZsZXgifSxjIT09dm9pZCAwJiZ7Z3JpZENvbDpjfSksZiE9PXZvaWQgMCYme2dyaWRSb3c6Zn0pLHt0aXRsZVRleHQ6bW0ocyl9KSxTWCh0LGQpKSx7bGVnZW5kQ2F0ZWdvcnk6dz17fX09dixPPWJtKE9iamVjdC5hc3NpZ24oe30sdyxfLHUpKSxFPW5ldyBZQih7c3R5bGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt4OmcueCx5OmcueSx3aWR0aDpnLndpZHRoLGhlaWdodDpnLmhlaWdodH0seCkse3N1Yk9wdGlvbnM6T30pfSk7cmV0dXJuIEUuYXBwZW5kQ2hpbGQobmV3IG1YKHtjbGFzc05hbWU6ImxlZ2VuZC1jYXRlZ29yeSIsc3R5bGU6T30pKSxFfX07aVMucHJvcHM9e2RlZmF1bHRQb3NpdGlvbjoidG9wIixkZWZhdWx0T3JkZXI6MSxkZWZhdWx0U2l6ZTo0MCxkZWZhdWx0Q3Jvc3NQYWRkaW5nOlsxMiwxMl0sZGVmYXVsdFBhZGRpbmc6WzEyLDEyXX07Y29uc3QgU049dD0+KCk9Pm5ldyB1aTtTTi5wcm9wcz17fTt2YXIgTVg9ZnVuY3Rpb24odCxlKXt2YXIgbj17fTtmb3IodmFyIHIgaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKSYmZS5pbmRleE9mKHIpPDAmJihuW3JdPXRbcl0pO2lmKHQhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgaT0wLHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTtpPHIubGVuZ3RoO2krKyllLmluZGV4T2YocltpXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHQscltpXSkmJihuW3JbaV1dPXRbcltpXV0pO3JldHVybiBufTtmdW5jdGlvbiBFTih0LGUsbixyKXtzd2l0Y2gocil7Y2FzZSJjZW50ZXIiOnJldHVybnt4OnQrbi8yLHk6ZSx0ZXh0QWxpZ246Im1pZGRsZSJ9O2Nhc2UicmlnaHQiOnJldHVybnt4OnQrbix5OmUsdGV4dEFsaWduOiJyaWdodCJ9O2RlZmF1bHQ6cmV0dXJue3g6dCx5OmUsdGV4dEFsaWduOiJsZWZ0In19fWNvbnN0IGtYPVpCKHtyZW5kZXIodCxlKXtjb25zdHt3aWR0aDpuLHRpdGxlOnIsc3VidGl0bGU6aSxzcGFjaW5nOmE9MixhbGlnbjpvPSJsZWZ0Iix4OnMseTpjfT10LGw9TVgodCxbIndpZHRoIiwidGl0bGUiLCJzdWJ0aXRsZSIsInNwYWNpbmciLCJhbGlnbiIsIngiLCJ5Il0pO2Uuc3R5bGUudHJhbnNmb3JtPWB0cmFuc2xhdGUoJHtzfSwgJHtjfSlgO2NvbnN0IHU9JHQobCwidGl0bGUiKSxmPSR0KGwsInN1YnRpdGxlIiksaD1XVChlLCIudGl0bGUiLCJ0ZXh0IikuYXR0cigiY2xhc3NOYW1lIiwidGl0bGUiKS5jYWxsKGxlLE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LEVOKDAsMCxuLG8pKSx7Zm9udFNpemU6MTQsdGV4dEJhc2VsaW5lOiJ0b3AiLHRleHQ6cn0pLHUpKS5ub2RlKCkuZ2V0TG9jYWxCb3VuZHMoKTtXVChlLCIuc3ViLXRpdGxlIiwidGV4dCIpLmF0dHIoImNsYXNzTmFtZSIsInN1Yi10aXRsZSIpLmNhbGwodj0+e2lmKCFpKXJldHVybiB2Lm5vZGUoKS5yZW1vdmUoKTt2Lm5vZGUoKS5hdHRyKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LEVOKDAsaC5tYXhbMV0rYSxuLG8pKSx7Zm9udFNpemU6MTIsdGV4dEJhc2VsaW5lOiJ0b3AiLHRleHQ6aX0pLGYpKX0pfX0pLE1OPXQ9Pih7dmFsdWU6ZSx0aGVtZTpufSk9Pntjb25zdHt4OnIseTppLHdpZHRoOmEsaGVpZ2h0Om99PWUuYmJveDtyZXR1cm4gbmV3IGtYKHtzdHlsZTptdCh7fSxuLnRpdGxlLE9iamVjdC5hc3NpZ24oe3g6cix5Omksd2lkdGg6YSxoZWlnaHQ6b30sdCkpfSl9O01OLnByb3BzPXtkZWZhdWx0UG9zaXRpb246InRvcCIsZGVmYXVsdE9yZGVyOjIsZGVmYXVsdFNpemU6MzYsZGVmYXVsdENyb3NzUGFkZGluZzpbMjAsMjBdLGRlZmF1bHRQYWRkaW5nOlsxMiwxMl19O3ZhciBhUz1mdW5jdGlvbih0KXtpZih0eXBlb2YgdCE9Im9iamVjdCJ8fHQ9PT1udWxsKXJldHVybiB0O3ZhciBlO2lmKE5yKHQpKXtlPVtdO2Zvcih2YXIgbj0wLHI9dC5sZW5ndGg7bjxyO24rKyl0eXBlb2YgdFtuXT09Im9iamVjdCImJnRbbl0hPW51bGw/ZVtuXT1hUyh0W25dKTplW25dPXRbbl19ZWxzZXtlPXt9O2Zvcih2YXIgaSBpbiB0KXR5cGVvZiB0W2ldPT0ib2JqZWN0IiYmdFtpXSE9bnVsbD9lW2ldPWFTKHRbaV0pOmVbaV09dFtpXX1yZXR1cm4gZX0sb1M9YVMsQVg9ZnVuY3Rpb24odCl7YXIoZSx0KTtmdW5jdGlvbiBlKG4pe3ZhciByPXRoaXMsaT1uLnN0eWxlLGE9JHIobixbInN0eWxlIl0pO3JldHVybiByPXQuY2FsbCh0aGlzLG10KHt9LHt0eXBlOiJjb2x1bW4ifSxBdCh7c3R5bGU6aX0sYSkpKXx8dGhpcyxyLmNvbHVtbnNHcm91cD1uZXcgdWkoe25hbWU6ImNvbHVtbnMifSksci5hcHBlbmRDaGlsZChyLmNvbHVtbnNHcm91cCksci5yZW5kZXIoKSxyfXJldHVybiBlLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXt2YXIgbj10aGlzLmF0dHJpYnV0ZXMscj1uLmNvbHVtbnMsaT1uLngsYT1uLnk7dGhpcy5jb2x1bW5zR3JvdXAuc3R5bGUudHJhbnNmb3JtPSJ0cmFuc2xhdGUoIi5jb25jYXQoaSwiLCAiKS5jb25jYXQoYSwiKSIpLEZlKHRoaXMuY29sdW1uc0dyb3VwKS5zZWxlY3RBbGwoIi5jb2x1bW4iKS5kYXRhKHIuZmxhdCgpKS5qb2luKGZ1bmN0aW9uKG8pe3JldHVybiBvLmFwcGVuZCgicmVjdCIpLmF0dHIoImNsYXNzTmFtZSIsImNvbHVtbiIpLmVhY2goZnVuY3Rpb24ocyl7dGhpcy5hdHRyKHMpfSl9LGZ1bmN0aW9uKG8pe3JldHVybiBvLmVhY2goZnVuY3Rpb24ocyl7dGhpcy5hdHRyKHMpfSl9LGZ1bmN0aW9uKG8pe3JldHVybiBvLnJlbW92ZSgpfSl9LGUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihuKXt0aGlzLmF0dHIoaWMoe30sdGhpcy5hdHRyaWJ1dGVzLG4pKSx0aGlzLnJlbmRlcigpfSxlLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMucmVtb3ZlQ2hpbGRyZW4oKX0sZX0ob3IpLFRYPWZ1bmN0aW9uKHQpe2FyKGUsdCk7ZnVuY3Rpb24gZShuKXt2YXIgcj10aGlzLGk9bi5zdHlsZSxhPSRyKG4sWyJzdHlsZSJdKTtyZXR1cm4gcj10LmNhbGwodGhpcyxtdCh7fSx7dHlwZToibGluZXMifSxBdCh7c3R5bGU6aX0sYSkpKXx8dGhpcyxyLmxpbmVzR3JvdXA9ci5hcHBlbmRDaGlsZChuZXcgdWkpLHIuYXJlYXNHcm91cD1yLmFwcGVuZENoaWxkKG5ldyB1aSksci5yZW5kZXIoKSxyfXJldHVybiBlLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXt2YXIgbj10aGlzLmF0dHJpYnV0ZXMscj1uLmxpbmVzLGk9bi5hcmVhcyxhPW4ueCxvPW4ueTt0aGlzLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlKCIuY29uY2F0KGEsIiwgIikuY29uY2F0KG8sIikiKSxyJiZ0aGlzLnJlbmRlckxpbmVzKHIpLGkmJnRoaXMucmVuZGVyQXJlYXMoaSl9LGUucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5saW5lc0dyb3VwLnJlbW92ZUNoaWxkcmVuKCksdGhpcy5hcmVhc0dyb3VwLnJlbW92ZUNoaWxkcmVuKCl9LGUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihuKXt0aGlzLmF0dHIoaWMoe30sdGhpcy5hdHRyaWJ1dGVzLG4pKSx0aGlzLnJlbmRlcigpfSxlLnByb3RvdHlwZS5yZW5kZXJMaW5lcz1mdW5jdGlvbihuKXtGZSh0aGlzLmxpbmVzR3JvdXApLnNlbGVjdEFsbCgiLmxpbmUiKS5kYXRhKG4pLmpvaW4oZnVuY3Rpb24ocil7cmV0dXJuIHIuYXBwZW5kKCJwYXRoIikuYXR0cigiY2xhc3NOYW1lIiwibGluZSIpLmVhY2goZnVuY3Rpb24oaSl7dGhpcy5hdHRyKGkpfSl9LGZ1bmN0aW9uKHIpe3JldHVybiByLmVhY2goZnVuY3Rpb24oaSl7dGhpcy5hdHRyKGkpfSl9LGZ1bmN0aW9uKHIpe3JldHVybiByLnJlbW92ZSgpfSl9LGUucHJvdG90eXBlLnJlbmRlckFyZWFzPWZ1bmN0aW9uKG4pe0ZlKHRoaXMubGluZXNHcm91cCkuc2VsZWN0QWxsKCIuYXJlYSIpLmRhdGEobikuam9pbihmdW5jdGlvbihyKXtyZXR1cm4gci5hcHBlbmQoInBhdGgiKS5hdHRyKCJjbGFzc05hbWUiLCJhcmVhIikuZWFjaChmdW5jdGlvbihpKXt0aGlzLmF0dHIoaSl9KX0sZnVuY3Rpb24ocil7cmV0dXJuIHIuZWFjaChmdW5jdGlvbihpKXt0aGlzLnN0eWxlKGkpfSl9LGZ1bmN0aW9uKHIpe3JldHVybiByLnJlbW92ZSgpfSl9LGV9KG9yKTtmdW5jdGlvbiBQWCh0LGUsbixyKXt2YXIgaSxhPVtdLG89ISFyLHMsYyxsPVsxLzAsMS8wXSx1PVstMS8wLC0xLzBdLGYsZCxoO2lmKG8pe2k9VihyLDIpLGw9aVswXSx1PWlbMV07Zm9yKHZhciB2PTAsZz10Lmxlbmd0aDt2PGc7dis9MSl7dmFyIHk9dFt2XTtsPWR1KGwseSksdT1odSh1LHkpfX1mb3IodmFyIHY9MCxiPXQubGVuZ3RoO3Y8Yjt2Kz0xKXt2YXIgeT10W3ZdO2lmKHY9PT0wJiYhbiloPXk7ZWxzZSBpZih2PT09Yi0xJiYhbilkPXksYS5wdXNoKGgpLGEucHVzaChkKTtlbHNle3ZhciB4PVt2P3YtMTpiLTEsdi0xXVtuPzA6MV07cz10W3hdLGM9dFtuPyh2KzEpJWI6disxXTt2YXIgXz1bMCwwXTtfPXN3KGMscyksXz1hYyhfLGUpO3ZhciB3PUFwKHkscyksTz1BcCh5LGMpLEU9dytPO0UhPT0wJiYody89RSxPLz1FKTt2YXIgTT1hYyhfLC13KSxrPWFjKF8sTyk7ZD1rcCh5LE0pLGY9a3AoeSxrKSxmPWR1KGYsaHUoYyx5KSksZj1odShmLGR1KGMseSkpLE09c3coZix5KSxNPWFjKE0sLXcvTyksZD1rcCh5LE0pLGQ9ZHUoZCxodShzLHkpKSxkPWh1KGQsZHUocyx5KSksaz1zdyh5LGQpLGs9YWMoayxPL3cpLGY9a3AoeSxrKSxvJiYoZD1odShkLGwpLGQ9ZHUoZCx1KSxmPWh1KGYsbCksZj1kdShmLHUpKSxhLnB1c2goaCksYS5wdXNoKGQpLGg9Zn19cmV0dXJuIG4mJmEucHVzaChhLnNoaWZ0KCkpLGF9ZnVuY3Rpb24gQ1godCxlLG4pe3ZhciByO2U9PT12b2lkIDAmJihlPSExKSxuPT09dm9pZCAwJiYobj1bWzAsMF0sWzEsMV1dKTtmb3IodmFyIGk9ISFlLGE9W10sbz0wLHM9dC5sZW5ndGg7bzxzO28rPTIpYS5wdXNoKFt0W29dLHRbbysxXV0pO2Zvcih2YXIgYz1QWChhLC40LGksbiksbD1hLmxlbmd0aCx1PVtdLGYsZCxoLG89MDtvPGwtMTtvKz0xKWY9Y1tvKjJdLGQ9Y1tvKjIrMV0saD1hW28rMV0sdS5wdXNoKFsiQyIsZlswXSxmWzFdLGRbMF0sZFsxXSxoWzBdLGhbMV1dKTtyZXR1cm4gaSYmKGY9Y1tsXSxkPWNbbCsxXSxyPVYoYSwxKSxoPXJbMF0sdS5wdXNoKFsiQyIsZlswXSxmWzFdLGRbMF0sZFsxXSxoWzBdLGhbMV1dKSksdX1mdW5jdGlvbiBMWCh0LGUpe3ZhciBuLHI9ZS54LGk9ZS55LGE9VihpLmdldE9wdGlvbnMoKS5yYW5nZXx8WzAsMF0sMiksbz1hWzBdLHM9YVsxXTtyZXR1cm4gcz5vJiYobj1WKFtvLHNdLDIpLHM9blswXSxvPW5bMV0pLHQubWFwKGZ1bmN0aW9uKGMpe3ZhciBsPWMubWFwKGZ1bmN0aW9uKHUsZil7cmV0dXJuW3IubWFwKGYpLG1uKGkubWFwKHUpLHMsbyldfSk7cmV0dXJuIGx9KX1mdW5jdGlvbiB2MCh0LGUpe2U9PT12b2lkIDAmJihlPSExKTt2YXIgbj1lP3QubGVuZ3RoLTE6MCxyPXQubWFwKGZ1bmN0aW9uKGksYSl7cmV0dXJuIHRlKFthPT09bj8iTSI6IkwiXSxWKGkpLCExKX0pO3JldHVybiBlP3IucmV2ZXJzZSgpOnJ9ZnVuY3Rpb24gbTEodCxlKXtpZihlPT09dm9pZCAwJiYoZT0hMSksdC5sZW5ndGg8PTIpcmV0dXJuIHYwKHQpO2Zvcih2YXIgbj1bXSxyPXQubGVuZ3RoLGk9MDtpPHI7aSs9MSl7dmFyIGE9ZT90W3ItaS0xXTp0W2ldO0dBKGEsbi5zbGljZSgtMikpfHxuLnB1c2guYXBwbHkobix0ZShbXSxWKGEpLCExKSl9dmFyIG89Q1gobiwhMSk7cmV0dXJuIGU/by51bnNoaWZ0KHRlKFsiTSJdLFYodFtyLTFdKSwhMSkpOm8udW5zaGlmdCh0ZShbIk0iXSxWKHRbMF0pLCExKSksb31mdW5jdGlvbiBzUyh0LGUsbil7dmFyIHI9b1ModCk7cmV0dXJuIHIucHVzaChbIkwiLGUsbl0sWyJMIiwwLG5dLFsiWiJdKSxyfWZ1bmN0aW9uIFJYKHQsZSxuLHIpe3JldHVybiB0Lm1hcChmdW5jdGlvbihpKXtyZXR1cm4gc1MoZT9tMShpKTp2MChpKSxuLHIpfSl9ZnVuY3Rpb24gTlgodCxlLG4pe2Zvcih2YXIgcj1bXSxpPXQubGVuZ3RoLTE7aT49MDtpLT0xKXt2YXIgYT10W2ldLG89djAoYSkscz12b2lkIDA7aWYoaT09PTApcz1zUyhvLGUsbik7ZWxzZXt2YXIgYz10W2ktMV0sbD12MChjLCEwKTtsWzBdWzBdPSJMIixzPXRlKHRlKHRlKFtdLFYobyksITEpLFYobCksITEpLFtbIloiXV0sITEpfXIucHVzaChzKX1yZXR1cm4gcn1mdW5jdGlvbiBJWCh0LGUsbil7Zm9yKHZhciByPVtdLGk9dC5sZW5ndGgtMTtpPj0wO2ktPTEpe3ZhciBhPXRbaV0sbz1tMShhKSxzPXZvaWQgMDtpZihpPT09MClzPXNTKG8sZSxuKTtlbHNle3ZhciBjPXRbaS0xXSxsPW0xKGMsITApLHU9YVswXTtsWzBdWzBdPSJMIixzPXRlKHRlKHRlKFtdLFYobyksITEpLFYobCksITEpLFt0ZShbIk0iXSxWKHUpLCExKSxbIloiXV0sITEpfXIucHVzaChzKX1yZXR1cm4gcn12YXIgRFg9ZnVuY3Rpb24odCxlKXtpZihOcih0KSl7Zm9yKHZhciBuLHI9MS8wLGk9MDtpPHQubGVuZ3RoO2krKyl7dmFyIGE9dFtpXSxvPVhuKGUpP2UoYSk6YVtlXTtvPHImJihuPWEscj1vKX1yZXR1cm4gbn19LGpYPWZ1bmN0aW9uKHQsZSl7aWYoTnIodCkpe2Zvcih2YXIgbixyPS0xLzAsaT0wO2k8dC5sZW5ndGg7aSsrKXt2YXIgYT10W2ldLG89WG4oZSk/ZShhKTphW2VdO28+ciYmKG49YSxyPW8pfXJldHVybiBufX07ZnVuY3Rpb24ga04odCl7cmV0dXJuIHQubGVuZ3RoPT09MD9bMCwwXTpbb2YoRFgodCxmdW5jdGlvbihlKXtyZXR1cm4gb2YoZSl8fDB9KSksQmMoalgodCxmdW5jdGlvbihlKXtyZXR1cm4gQmMoZSl8fDB9KSldfWZ1bmN0aW9uIEFOKHQpe2Zvcih2YXIgZT1vUyh0KSxuPWVbMF0ubGVuZ3RoLHI9VihbQXJyYXkobikuZmlsbCgwKSxBcnJheShuKS5maWxsKDApXSwyKSxpPXJbMF0sYT1yWzFdLG89MDtvPGUubGVuZ3RoO28rPTEpZm9yKHZhciBzPWVbb10sYz0wO2M8bjtjKz0xKXNbY10+PTA/KHNbY10rPWlbY10saVtjXT1zW2NdKTooc1tjXSs9YVtjXSxhW2NdPXNbY10pO3JldHVybiBlfXZhciBGWD1mdW5jdGlvbih0KXthcihlLHQpO2Z1bmN0aW9uIGUobil7cmV0dXJuIHQuY2FsbCh0aGlzLG4se3R5cGU6ImxpbmUiLHg6MCx5OjAsd2lkdGg6MjAwLGhlaWdodDoyMCxpc1N0YWNrOiExLGNvbG9yOlsiIzgzZGFhZCIsIiNlZGJmNDUiLCIjZDJjZWY5IiwiI2UyOTBiMyIsIiM2ZjYzZjQiXSxzbW9vdGg6ITAsbGluZUxpbmVXaWR0aDoxLGFyZWFPcGFjaXR5OjAsaXNHcm91cDohMSxjb2x1bW5MaW5lV2lkdGg6MSxjb2x1bW5TdHJva2U6IiNmZmYiLHNjYWxlOjEsc3BhY2luZzowfSl8fHRoaXN9cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwicmF3RGF0YSIse2dldDpmdW5jdGlvbigpe3ZhciBuPXRoaXMuYXR0cmlidXRlcy5kYXRhO2lmKCFufHwobj09bnVsbD92b2lkIDA6bi5sZW5ndGgpPT09MClyZXR1cm5bW11dO3ZhciByPW9TKG4pO3JldHVybiBWbihyWzBdKT9bcl06cn0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsImRhdGEiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hdHRyaWJ1dGVzLmlzU3RhY2s/QU4odGhpcy5yYXdEYXRhKTp0aGlzLnJhd0RhdGF9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJzY2FsZXMiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jcmVhdGVTY2FsZXModGhpcy5kYXRhKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsImJhc2VsaW5lIix7Z2V0OmZ1bmN0aW9uKCl7dmFyIG49dGhpcy5zY2FsZXMueSxyPVYobi5nZXRPcHRpb25zKCkuZG9tYWlufHxbMCwwXSwyKSxpPXJbMF0sYT1yWzFdO3JldHVybiBhPDA/bi5tYXAoYSk6bi5tYXAoaTwwPzA6aSl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJjb250YWluZXJTaGFwZSIse2dldDpmdW5jdGlvbigpe3ZhciBuPXRoaXMuYXR0cmlidXRlcyxyPW4ud2lkdGgsaT1uLmhlaWdodDtyZXR1cm57d2lkdGg6cixoZWlnaHQ6aX19LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJsaW5lc1N0eWxlIix7Z2V0OmZ1bmN0aW9uKCl7dmFyIG49dGhpcyxyPXRoaXMuYXR0cmlidXRlcyxpPXIudHlwZSxhPXIuaXNTdGFjayxvPXIuc21vb3RoO2lmKGkhPT0ibGluZSIpdGhyb3cgbmV3IEVycm9yKCJsaW5lc1N0eWxlIGNhbiBvbmx5IGJlIHVzZWQgaW4gbGluZSB0eXBlIik7dmFyIHM9ZW4odGhpcy5hdHRyaWJ1dGVzLCJhcmVhIiksYz1lbih0aGlzLmF0dHJpYnV0ZXMsImxpbmUiKSxsPXRoaXMuY29udGFpbmVyU2hhcGUud2lkdGgsdT10aGlzLmRhdGE7aWYodVswXS5sZW5ndGg9PT0wKXJldHVybntsaW5lczpbXSxhcmVhczpbXX07dmFyIGY9dGhpcy5zY2FsZXMsZD1mLngsaD1mLnksdj1MWCh1LHt0eXBlOiJsaW5lIix4OmQseTpofSksZz1bXTtpZihzKXt2YXIgeT10aGlzLmJhc2VsaW5lO2E/Zz1vP0lYKHYsbCx5KTpOWCh2LGwseSk6Zz1SWCh2LG8sbCx5KX1yZXR1cm57bGluZXM6di5tYXAoZnVuY3Rpb24oYix4KXtyZXR1cm4gQXQoe3N0cm9rZTpuLmdldENvbG9yKHgpLGQ6bz9tMShiKTp2MChiKX0sYyl9KSxhcmVhczpnLm1hcChmdW5jdGlvbihiLHgpe3JldHVybiBBdCh7ZDpiLGZpbGw6bi5nZXRDb2xvcih4KX0scyl9KX19LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJjb2x1bW5zU3R5bGUiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgbj10aGlzLHI9ZW4odGhpcy5hdHRyaWJ1dGVzLCJjb2x1bW4iKSxpPXRoaXMuYXR0cmlidXRlcyxhPWkuaXNTdGFjayxvPWkudHlwZSxzPWkuc2NhbGU7aWYobyE9PSJjb2x1bW4iKXRocm93IG5ldyBFcnJvcigiY29sdW1uc1N0eWxlIGNhbiBvbmx5IGJlIHVzZWQgaW4gY29sdW1uIHR5cGUiKTt2YXIgYz10aGlzLmNvbnRhaW5lclNoYXBlLmhlaWdodCxsPXRoaXMucmF3RGF0YTtpZighbClyZXR1cm57Y29sdW1uczpbXX07YSYmKGw9QU4obCkpO3ZhciB1PXRoaXMuY3JlYXRlU2NhbGVzKGwpLGY9dS54LGQ9dS55LGg9VihrTihsKSwyKSx2PWhbMF0sZz1oWzFdLHk9bmV3IEppKHtkb21haW46WzAsZy0odj4wPzA6dildLHJhbmdlOlswLGMqc119KSxiPWYuZ2V0QmFuZFdpZHRoKCkseD10aGlzLnJhd0RhdGE7cmV0dXJue2NvbHVtbnM6bC5tYXAoZnVuY3Rpb24oXyx3KXtyZXR1cm4gXy5tYXAoZnVuY3Rpb24oTyxFKXt2YXIgTT1iL2wubGVuZ3RoLGs9ZnVuY3Rpb24oKXtyZXR1cm57eDpmLm1hcChFKStNKncseTpPPj0wP2QubWFwKE8pOmQubWFwKDApLHdpZHRoOk0saGVpZ2h0OnkubWFwKE1hdGguYWJzKE8pKX19LEE9ZnVuY3Rpb24oKXtyZXR1cm57eDpmLm1hcChFKSx5OmQubWFwKE8pLHdpZHRoOmIsaGVpZ2h0OnkubWFwKHhbd11bRV0pfX07cmV0dXJuIEF0KEF0KHtmaWxsOm4uZ2V0Q29sb3Iodyl9LHIpLGE/QSgpOmsoKSl9KX0pfX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24obixyKXtkOShyLCIuY29udGFpbmVyIiwicmVjdCIpLmF0dHIoImNsYXNzTmFtZSIsImNvbnRhaW5lciIpLm5vZGUoKTt2YXIgaT1uLnR5cGUsYT1uLngsbz1uLnkscz0ic3BhcmsiLmNvbmNhdChpKSxjPUF0KHt4OmEseTpvfSxpPT09ImxpbmUiP3RoaXMubGluZXNTdHlsZTp0aGlzLmNvbHVtbnNTdHlsZSk7RmUocikuc2VsZWN0QWxsKCIuc3BhcmsiKS5kYXRhKFtpXSkuam9pbihmdW5jdGlvbihsKXtyZXR1cm4gbC5hcHBlbmQoZnVuY3Rpb24odSl7cmV0dXJuIHU9PT0ibGluZSI/bmV3IFRYKHtjbGFzc05hbWU6cyxzdHlsZTpjfSk6bmV3IEFYKHtjbGFzc05hbWU6cyxzdHlsZTpjfSl9KS5hdHRyKCJjbGFzc05hbWUiLCJzcGFyayAiLmNvbmNhdChzKSl9LGZ1bmN0aW9uKGwpe3JldHVybiBsLnVwZGF0ZShjKX0sZnVuY3Rpb24obCl7cmV0dXJuIGwucmVtb3ZlKCl9KX0sZS5wcm90b3R5cGUuZ2V0Q29sb3I9ZnVuY3Rpb24obil7dmFyIHI9dGhpcy5hdHRyaWJ1dGVzLmNvbG9yO3JldHVybiBOcihyKT9yW24lci5sZW5ndGhdOlhuKHIpP3IuY2FsbChudWxsLG4pOnJ9LGUucHJvdG90eXBlLmNyZWF0ZVNjYWxlcz1mdW5jdGlvbihuKXt2YXIgcixpLGE9dGhpcy5hdHRyaWJ1dGVzLG89YS50eXBlLHM9YS5zY2FsZSxjPWEucmFuZ2UsbD1jPT09dm9pZCAwP1tdOmMsdT1hLnNwYWNpbmcsZj10aGlzLmNvbnRhaW5lclNoYXBlLGQ9Zi53aWR0aCxoPWYuaGVpZ2h0LHY9VihrTihuKSwyKSxnPXZbMF0seT12WzFdLGI9bmV3IEppKHtkb21haW46WyhyPWxbMF0pIT09bnVsbCYmciE9PXZvaWQgMD9yOmcsKGk9bFsxXSkhPT1udWxsJiZpIT09dm9pZCAwP2k6eV0scmFuZ2U6W2gsaCooMS1zKV19KTtyZXR1cm4gbz09PSJsaW5lIj97dHlwZTpvLHg6bmV3IEppKHtkb21haW46WzAsblswXS5sZW5ndGgtMV0scmFuZ2U6WzAsZF19KSx5OmJ9Ont0eXBlOm8seDpuZXcgcGwoe2RvbWFpbjpuWzBdLm1hcChmdW5jdGlvbih4LF8pe3JldHVybiBffSkscmFuZ2U6WzAsZF0scGFkZGluZ0lubmVyOnUscGFkZGluZ091dGVyOnUvMixhbGlnbjouNX0pLHk6Yn19LGUudGFnPSJzcGFya2xpbmUiLGV9KGJpKSxUTj1mdW5jdGlvbih0KXthcihlLHQpO2Z1bmN0aW9uIGUobil7dmFyIHI9dC5jYWxsKHRoaXMsbixBdChBdChBdCh7eDowLHk6MCxhbmltYXRlOntkdXJhdGlvbjoxMDAsZmlsbDoiYm90aCJ9LGJydXNoYWJsZTohMCxmb3JtYXR0ZXI6ZnVuY3Rpb24oaSl7cmV0dXJuIGkudG9TdHJpbmcoKX0saGFuZGxlU3BhY2luZzoyLG9yaWVudGF0aW9uOiJob3Jpem9udGFsIixwYWRkaW5nOjAsYXV0b0ZpdExhYmVsOiEwLHNjcm9sbGFibGU6ITAsc2VsZWN0aW9uRmlsbDoiIzVCOEZGOSIsc2VsZWN0aW9uRmlsbE9wYWNpdHk6LjQ1LHNlbGVjdGlvblpJbmRleDoyLHNob3dIYW5kbGU6ITAsc2hvd0xhYmVsOiEwLHNsaWRhYmxlOiEwLHRyYWNrRmlsbDoiIzQxNjE4MCIsdHJhY2tMZW5ndGg6MjAwLHRyYWNrT3BhY2l0eTouMDUsdHJhY2tTaXplOjIwLHRyYWNrWkluZGV4Oi0xLHZhbHVlczpbMCwxXSx0eXBlOiJyYW5nZSIsc2VsZWN0aW9uVHlwZToic2VsZWN0IixoYW5kbGVJY29uT2Zmc2V0OjB9LGRzKHRQLCJoYW5kbGUiKSksZHMoUVQsImhhbmRsZUljb24iKSksZHMoSlQsImhhbmRsZUxhYmVsIikpKXx8dGhpcztyZXR1cm4gci5yYW5nZT1bMCwxXSxyLm9uRHJhZ1N0YXJ0PWZ1bmN0aW9uKGkpe3JldHVybiBmdW5jdGlvbihhKXthLnN0b3BQcm9wYWdhdGlvbigpLHIudGFyZ2V0PWksci5wcmV2UG9zPXIuZ2V0T3JpZW50VmFsKF9tKGEpKTt2YXIgbz1yLmF2YWlsYWJsZVNwYWNlLHM9by54LGM9by55LGw9ci5nZXRCQm94KCksdT1sLngsZj1sLnk7ci5zZWxlY3Rpb25TdGFydFBvcz1yLmdldFJhdGlvKHIucHJldlBvcy1yLmdldE9yaWVudFZhbChbcyxjXSktci5nZXRPcmllbnRWYWwoWyt1LCtmXSkpLHIuc2VsZWN0aW9uV2lkdGg9MCxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsci5vbkRyYWdnaW5nKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLHIub25EcmFnRW5kKX19LHIub25EcmFnZ2luZz1mdW5jdGlvbihpKXt2YXIgYT1yLmF0dHJpYnV0ZXMsbz1hLnNsaWRhYmxlLHM9YS5icnVzaGFibGUsYz1hLnR5cGU7aS5zdG9wUHJvcGFnYXRpb24oKTt2YXIgbD1yLmdldE9yaWVudFZhbChfbShpKSksdT1sLXIucHJldlBvcztpZih1KXt2YXIgZj1yLmdldFJhdGlvKHUpO3N3aXRjaChyLnRhcmdldCl7Y2FzZSJzdGFydCI6byYmci5zZXRWYWx1ZXNPZmZzZXQoZik7YnJlYWs7Y2FzZSJlbmQiOm8mJnIuc2V0VmFsdWVzT2Zmc2V0KDAsZik7YnJlYWs7Y2FzZSJzZWxlY3Rpb24iOm8mJnIuc2V0VmFsdWVzT2Zmc2V0KGYsZik7YnJlYWs7Y2FzZSJ0cmFjayI6aWYoIXMpcmV0dXJuO3Iuc2VsZWN0aW9uV2lkdGgrPWYsYz09PSJyYW5nZSI/ci5pbm5lclNldFZhbHVlcyhbci5zZWxlY3Rpb25TdGFydFBvcyxyLnNlbGVjdGlvblN0YXJ0UG9zK3Iuc2VsZWN0aW9uV2lkdGhdLnNvcnQoKSwhMCk6ci5pbm5lclNldFZhbHVlcyhbMCxyLnNlbGVjdGlvblN0YXJ0UG9zK3Iuc2VsZWN0aW9uV2lkdGhdLCEwKTticmVhaztkZWZhdWx0OmJyZWFrfXIucHJldlBvcz1sfX0sci5vbkRyYWdFbmQ9ZnVuY3Rpb24oKXtkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsci5vbkRyYWdnaW5nKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsci5vbkRyYWdnaW5nKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLHIub25EcmFnRW5kKSxyLnRhcmdldD0iIixyLnVwZGF0ZUhhbmRsZXNQb3NpdGlvbighMSl9LHIub25WYWx1ZUNoYW5nZT1mdW5jdGlvbihpKXt2YXIgYT1yLmF0dHJpYnV0ZXMsbz1hLm9uQ2hhbmdlLHM9YS50eXBlLGM9cz09PSJyYW5nZSI/aTppWzFdLGw9cz09PSJyYW5nZSI/ci5nZXRWYWx1ZXMoKTpyLmdldFZhbHVlcygpWzFdLHU9bmV3IE5uKCJ2YWx1ZWNoYW5nZSIse2RldGFpbDp7b2xkVmFsdWU6Yyx2YWx1ZTpsfX0pO3IuZGlzcGF0Y2hFdmVudCh1KSxvPT1udWxsfHxvKGwpfSxyLnNlbGVjdGlvblN0YXJ0UG9zPTAsci5zZWxlY3Rpb25XaWR0aD0wLHIucHJldlBvcz0wLHIudGFyZ2V0PSIiLHJ9cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwidmFsdWVzIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYXR0cmlidXRlcy52YWx1ZXN9LHNldDpmdW5jdGlvbihuKXt0aGlzLmF0dHJpYnV0ZXMudmFsdWVzPXRoaXMuY2xhbXBWYWx1ZXMobil9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJzcGFya2xpbmVTdHlsZSIse2dldDpmdW5jdGlvbigpe3ZhciBuPXRoaXMuYXR0cmlidXRlcy5vcmllbnRhdGlvbjtpZihuIT09Imhvcml6b250YWwiKXJldHVybiBudWxsO3ZhciByPWVuKHRoaXMuYXR0cmlidXRlcywic3BhcmtsaW5lIik7cmV0dXJuIEF0KEF0KHt6SW5kZXg6MH0sdGhpcy5hdmFpbGFibGVTcGFjZSkscil9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJzaGFwZSIse2dldDpmdW5jdGlvbigpe3ZhciBuPXRoaXMuYXR0cmlidXRlcyxyPW4udHJhY2tMZW5ndGgsaT1uLnRyYWNrU2l6ZSxhPVYodGhpcy5nZXRPcmllbnRWYWwoW1tyLGldLFtpLHJdXSksMiksbz1hWzBdLHM9YVsxXTtyZXR1cm57d2lkdGg6byxoZWlnaHQ6c319LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJhdmFpbGFibGVTcGFjZSIse2dldDpmdW5jdGlvbigpe3ZhciBuPXRoaXMuYXR0cmlidXRlcyxyPW4ueCxpPW4ueSxhPW4ucGFkZGluZyxvPVYoTmkoYSksNCkscz1vWzBdLGM9b1sxXSxsPW9bMl0sdT1vWzNdLGY9dGhpcy5zaGFwZSxkPWYud2lkdGgsaD1mLmhlaWdodDtyZXR1cm57eDp1LHk6cyx3aWR0aDpkLSh1K2MpLGhlaWdodDpoLShzK2wpfX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS5nZXRWYWx1ZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZXN9LGUucHJvdG90eXBlLnNldFZhbHVlcz1mdW5jdGlvbihuLHIpe249PT12b2lkIDAmJihuPVswLDBdKSxyPT09dm9pZCAwJiYocj0hMSksdGhpcy5hdHRyaWJ1dGVzLnZhbHVlcz1uO3ZhciBpPXI9PT0hMT8hMTp0aGlzLmF0dHJpYnV0ZXMuYW5pbWF0ZTt0aGlzLnVwZGF0ZVNlbGVjdGlvbkFyZWEoaSksdGhpcy51cGRhdGVIYW5kbGVzUG9zaXRpb24oaSl9LGUucHJvdG90eXBlLnVwZGF0ZVNlbGVjdGlvbkFyZWE9ZnVuY3Rpb24obil7dmFyIHI9dGhpcy5jYWxjU2VsZWN0aW9uQXJlYSgpO3RoaXMuZm9yZWdyb3VuZEdyb3VwLnNlbGVjdEFsbChwcy5zZWxlY3Rpb24uY2xhc3MpLmVhY2goZnVuY3Rpb24oaSxhKXt6byh0aGlzLHJbYV0sbil9KX0sZS5wcm90b3R5cGUudXBkYXRlSGFuZGxlc1Bvc2l0aW9uPWZ1bmN0aW9uKG4pe3RoaXMuYXR0cmlidXRlcy5zaG93SGFuZGxlJiYodGhpcy5zdGFydEhhbmRsZSYmem8odGhpcy5zdGFydEhhbmRsZSx0aGlzLmdldEhhbmRsZVN0eWxlKCJzdGFydCIpLG4pLHRoaXMuZW5kSGFuZGxlJiZ6byh0aGlzLmVuZEhhbmRsZSx0aGlzLmdldEhhbmRsZVN0eWxlKCJlbmQiKSxuKSl9LGUucHJvdG90eXBlLmlubmVyU2V0VmFsdWVzPWZ1bmN0aW9uKG4scil7bj09PXZvaWQgMCYmKG49WzAsMF0pLHI9PT12b2lkIDAmJihyPSExKTt2YXIgaT10aGlzLnZhbHVlcyxhPXRoaXMuY2xhbXBWYWx1ZXMobik7dGhpcy5hdHRyaWJ1dGVzLnZhbHVlcz1hLHRoaXMuc2V0VmFsdWVzKGEpLHImJnRoaXMub25WYWx1ZUNoYW5nZShpKX0sZS5wcm90b3R5cGUucmVuZGVyVHJhY2s9ZnVuY3Rpb24obil7dmFyIHI9dGhpcy5hdHRyaWJ1dGVzLGk9ci54LGE9ci55LG89ZW4odGhpcy5hdHRyaWJ1dGVzLCJ0cmFjayIpO3RoaXMudHJhY2tTaGFwZT1GZShuKS5tYXliZUFwcGVuZEJ5Q2xhc3NOYW1lKHBzLnRyYWNrLCJyZWN0Iikuc3R5bGVzKEF0KEF0KHt4OmkseTphfSx0aGlzLnNoYXBlKSxvKSl9LGUucHJvdG90eXBlLnJlbmRlckJydXNoQXJlYT1mdW5jdGlvbihuKXt2YXIgcj10aGlzLmF0dHJpYnV0ZXMsaT1yLngsYT1yLnksbz1yLmJydXNoYWJsZTt0aGlzLmJydXNoQXJlYT1GZShuKS5tYXliZUFwcGVuZEJ5Q2xhc3NOYW1lKHBzLmJydXNoQXJlYSwicmVjdCIpLnN0eWxlcyhBdCh7eDppLHk6YSxmaWxsOiJ0cmFuc3BhcmVudCIsY3Vyc29yOm8/ImNyb3NzaGFpciI6ImRlZmF1bHQifSx0aGlzLnNoYXBlKSl9LGUucHJvdG90eXBlLnJlbmRlclNwYXJrbGluZT1mdW5jdGlvbihuKXt2YXIgcj10aGlzLGk9dGhpcy5hdHRyaWJ1dGVzLGE9aS54LG89aS55LHM9aS5vcmllbnRhdGlvbixjPUZlKG4pLm1heWJlQXBwZW5kQnlDbGFzc05hbWUocHMuc3BhcmtsaW5lR3JvdXAsImciKTtQYShzPT09Imhvcml6b250YWwiLGMsZnVuY3Rpb24obCl7dmFyIHU9QXQoQXQoe30sci5zcGFya2xpbmVTdHlsZSkse3g6YSx5Om99KTtsLm1heWJlQXBwZW5kQnlDbGFzc05hbWUocHMuc3BhcmtsaW5lLGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBGWCh7c3R5bGU6dX0pfSkudXBkYXRlKHUpfSl9LGUucHJvdG90eXBlLnJlbmRlckhhbmRsZXM9ZnVuY3Rpb24oKXt2YXIgbj10aGlzLHIsaT10aGlzLmF0dHJpYnV0ZXMsYT1pLnNob3dIYW5kbGUsbz1pLnR5cGUscz1vPT09InJhbmdlIj9bInN0YXJ0IiwiZW5kIl06WyJlbmQiXSxjPWE/czpbXSxsPXRoaXM7KHI9dGhpcy5mb3JlZ3JvdW5kR3JvdXApPT09bnVsbHx8cj09PXZvaWQgMHx8ci5zZWxlY3RBbGwocHMuaGFuZGxlLmNsYXNzKS5kYXRhKGMubWFwKGZ1bmN0aW9uKHUpe3JldHVybnt0eXBlOnV9fSksZnVuY3Rpb24odSl7cmV0dXJuIHUudHlwZX0pLmpvaW4oZnVuY3Rpb24odSl7cmV0dXJuIHUuYXBwZW5kKGZ1bmN0aW9uKGYpe3ZhciBkPWYudHlwZTtyZXR1cm4gbmV3IGVQKHtzdHlsZTpuLmdldEhhbmRsZVN0eWxlKGQpfSl9KS5lYWNoKGZ1bmN0aW9uKGYpe3ZhciBkPWYudHlwZTt0aGlzLmF0dHIoImNsYXNzIiwiIi5jb25jYXQocHMuaGFuZGxlLm5hbWUsIiAiKS5jb25jYXQoZCwiLWhhbmRsZSIpKTt2YXIgaD0iIi5jb25jYXQoZCwiSGFuZGxlIik7bFtoXT10aGlzLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmRvd24iLGwub25EcmFnU3RhcnQoZCkpfSl9LGZ1bmN0aW9uKHUpe3JldHVybiB1LmVhY2goZnVuY3Rpb24oZil7dmFyIGQ9Zi50eXBlO3RoaXMudXBkYXRlKGwuZ2V0SGFuZGxlU3R5bGUoZCkpfSl9LGZ1bmN0aW9uKHUpe3JldHVybiB1LmVhY2goZnVuY3Rpb24oZil7dmFyIGQ9Zi50eXBlLGg9IiIuY29uY2F0KGQsIkhhbmRsZSIpO2xbaF09dm9pZCAwfSkucmVtb3ZlKCl9KX0sZS5wcm90b3R5cGUucmVuZGVyU2VsZWN0aW9uPWZ1bmN0aW9uKG4pe3ZhciByPXRoaXMuYXR0cmlidXRlcyxpPXIueCxhPXIueSxvPXIudHlwZSxzPXIuc2VsZWN0aW9uVHlwZTt0aGlzLmZvcmVncm91bmRHcm91cD1GZShuKS5tYXliZUFwcGVuZEJ5Q2xhc3NOYW1lKHBzLmZvcmVncm91bmQsImciKTt2YXIgYz1lbih0aGlzLmF0dHJpYnV0ZXMsInNlbGVjdGlvbiIpLGw9ZnVuY3Rpb24oZil7cmV0dXJuIGYuc3R5bGUoInZpc2liaWxpdHkiLGZ1bmN0aW9uKGQpe3JldHVybiBkLnNob3c/InZpc2libGUiOiJoaWRkZW4ifSkuc3R5bGUoImN1cnNvciIsZnVuY3Rpb24oZCl7cmV0dXJuIHM9PT0ic2VsZWN0Ij8iZ3JhYiI6cz09PSJpbnZlcnQiPyJjcm9zc2hhaXIiOiJkZWZhdWx0In0pLnN0eWxlcyhBdChBdCh7fSxjKSx7dHJhbnNmb3JtOiJ0cmFuc2xhdGUoIi5jb25jYXQoaSwiLCAiKS5jb25jYXQoYSwiKSIpfSkpfSx1PXRoaXM7dGhpcy5mb3JlZ3JvdW5kR3JvdXAuc2VsZWN0QWxsKHBzLnNlbGVjdGlvbi5jbGFzcykuZGF0YShvPT09InZhbHVlIj9bXTp0aGlzLmNhbGNTZWxlY3Rpb25BcmVhKCkubWFwKGZ1bmN0aW9uKGYsZCl7cmV0dXJue3N0eWxlOkF0KHt9LGYpLGluZGV4OmQsc2hvdzpzPT09InNlbGVjdCI/ZD09PTE6ZCE9PTF9fSksZnVuY3Rpb24oZil7cmV0dXJuIGYuaW5kZXh9KS5qb2luKGZ1bmN0aW9uKGYpe3JldHVybiBmLmFwcGVuZCgicmVjdCIpLmF0dHIoImNsYXNzTmFtZSIscHMuc2VsZWN0aW9uLm5hbWUpLmNhbGwobCkuZWFjaChmdW5jdGlvbihkLGgpe3ZhciB2PXRoaXM7aD09PTE/KHUuc2VsZWN0aW9uU2hhcGU9RmUodGhpcyksdGhpcy5vbigicG9pbnRlcmRvd24iLGZ1bmN0aW9uKGcpe3YuYXR0cigiY3Vyc29yIiwiZ3JhYmJpbmciKSx1Lm9uRHJhZ1N0YXJ0KCJzZWxlY3Rpb24iKShnKX0pLHUuZGlzcGF0Y2hDdXN0b21FdmVudCh0aGlzLCJwb2ludGVyZW50ZXIiLCJzZWxlY3Rpb25Nb3VzZWVudGVyIiksdS5kaXNwYXRjaEN1c3RvbUV2ZW50KHRoaXMsInBvaW50ZXJsZWF2ZSIsInNlbGVjdGlvbk1vdXNlbGVhdmUiKSx1LmRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywiY2xpY2siLCJzZWxlY3Rpb25DbGljayIpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmRvd24iLGZ1bmN0aW9uKCl7di5hdHRyKCJjdXJzb3IiLCJncmFiYmluZyIpfSksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLGZ1bmN0aW9uKCl7di5hdHRyKCJjdXJzb3IiLCJwb2ludGVyIil9KSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJvdmVyIixmdW5jdGlvbigpe3YuYXR0cigiY3Vyc29yIiwicG9pbnRlciIpfSkpOnRoaXMub24oInBvaW50ZXJkb3duIix1Lm9uRHJhZ1N0YXJ0KCJ0cmFjayIpKX0pfSxmdW5jdGlvbihmKXtyZXR1cm4gZi5jYWxsKGwpfSxmdW5jdGlvbihmKXtyZXR1cm4gZi5yZW1vdmUoKX0pLHRoaXMudXBkYXRlU2VsZWN0aW9uQXJlYSghMSksdGhpcy5yZW5kZXJIYW5kbGVzKCl9LGUucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbihuLHIpe3RoaXMucmVuZGVyVHJhY2sociksdGhpcy5yZW5kZXJTcGFya2xpbmUociksdGhpcy5yZW5kZXJCcnVzaEFyZWEociksdGhpcy5yZW5kZXJTZWxlY3Rpb24ocil9LGUucHJvdG90eXBlLmNsYW1wVmFsdWVzPWZ1bmN0aW9uKG4scil7dmFyIGk7cj09PXZvaWQgMCYmKHI9NCk7dmFyIGE9Vih0aGlzLnJhbmdlLDIpLG89YVswXSxzPWFbMV0sYz1WKHRoaXMuZ2V0VmFsdWVzKCkubWFwKGZ1bmN0aW9uKHkpe3JldHVybiB4bSh5LHIpfSksMiksbD1jWzBdLHU9Y1sxXSxmPUFycmF5LmlzQXJyYXkobik/bjpbbCxuIT1udWxsP246dV0sZD1WKChmfHxbbCx1XSkubWFwKGZ1bmN0aW9uKHkpe3JldHVybiB4bSh5LHIpfSksMiksaD1kWzBdLHY9ZFsxXTtpZih0aGlzLmF0dHJpYnV0ZXMudHlwZT09PSJ2YWx1ZSIpcmV0dXJuWzAsbW4odixvLHMpXTtoPnYmJihpPVYoW3YsaF0sMiksaD1pWzBdLHY9aVsxXSk7dmFyIGc9di1oO3JldHVybiBnPnMtbz9bbyxzXTpoPG8/bD09PW8mJnU9PT12P1tvLHZdOltvLGcrb106dj5zP3U9PT1zJiZsPT09aD9baCxzXTpbcy1nLHNdOltoLHZdfSxlLnByb3RvdHlwZS5jYWxjU2VsZWN0aW9uQXJlYT1mdW5jdGlvbihuKXt2YXIgcj1WKHRoaXMuY2xhbXBWYWx1ZXMobiksMiksaT1yWzBdLGE9clsxXSxvPXRoaXMuYXZhaWxhYmxlU3BhY2Uscz1vLngsYz1vLnksbD1vLndpZHRoLHU9by5oZWlnaHQ7cmV0dXJuIHRoaXMuZ2V0T3JpZW50VmFsKFtbe3k6YyxoZWlnaHQ6dSx4OnMsd2lkdGg6aSpsfSx7eTpjLGhlaWdodDp1LHg6aSpsK3Msd2lkdGg6KGEtaSkqbH0se3k6YyxoZWlnaHQ6dSx4OmEqbCx3aWR0aDooMS1hKSpsfV0sW3t4OnMsd2lkdGg6bCx5OmMsaGVpZ2h0OmkqdX0se3g6cyx3aWR0aDpsLHk6aSp1K2MsaGVpZ2h0OihhLWkpKnV9LHt4OnMsd2lkdGg6bCx5OmEqdSxoZWlnaHQ6KDEtYSkqdX1dXSl9LGUucHJvdG90eXBlLmNhbGNIYW5kbGVQb3NpdGlvbj1mdW5jdGlvbihuKXt2YXIgcj10aGlzLmF0dHJpYnV0ZXMuaGFuZGxlSWNvbk9mZnNldCxpPXRoaXMuYXZhaWxhYmxlU3BhY2UsYT1pLngsbz1pLnkscz1pLndpZHRoLGM9aS5oZWlnaHQsbD1WKHRoaXMuY2xhbXBWYWx1ZXMoKSwyKSx1PWxbMF0sZj1sWzFdLGQ9bj09PSJzdGFydCI/LXI6cixoPShuPT09InN0YXJ0Ij91OmYpKnRoaXMuZ2V0T3JpZW50VmFsKFtzLGNdKStkO3JldHVybnt4OmErdGhpcy5nZXRPcmllbnRWYWwoW2gscy8yXSkseTpvK3RoaXMuZ2V0T3JpZW50VmFsKFtjLzIsaF0pfX0sZS5wcm90b3R5cGUuaW5mZXJUZXh0U3R5bGU9ZnVuY3Rpb24obil7dmFyIHI9dGhpcy5hdHRyaWJ1dGVzLm9yaWVudGF0aW9uO3JldHVybiByPT09Imhvcml6b250YWwiP3t9Om49PT0ic3RhcnQiP3t0cmFuc2Zvcm1PcmlnaW46ImxlZnQgY2VudGVyIix0cmFuc2Zvcm06InJvdGF0ZSg5MCkiLHRleHRBbGlnbjoic3RhcnQifTpuPT09ImVuZCI/e3RyYW5zZm9ybU9yaWdpbjoicmlnaHQgY2VudGVyIix0cmFuc2Zvcm06InJvdGF0ZSg5MCkiLHRleHRBbGlnbjoiZW5kIn06e319LGUucHJvdG90eXBlLmNhbGNIYW5kbGVUZXh0PWZ1bmN0aW9uKG4pe3ZhciByLGk9dGhpcy5hdHRyaWJ1dGVzLGE9aS50eXBlLG89aS5vcmllbnRhdGlvbixzPWkuZm9ybWF0dGVyLGM9aS5hdXRvRml0TGFiZWwsbD1lbih0aGlzLmF0dHJpYnV0ZXMsImhhbmRsZSIpLHU9ZW4obCwibGFiZWwiKSxmPWwuc3BhY2luZyxkPXRoaXMuZ2V0SGFuZGxlU2l6ZSgpLGg9dGhpcy5jbGFtcFZhbHVlcygpLHY9bj09PSJzdGFydCI/aFswXTpoWzFdLGc9cyh2KSx5PW5ldyBhdyh7c3R5bGU6QXQoQXQoQXQoe30sdSksdGhpcy5pbmZlclRleHRTdHlsZShuKSkse3RleHQ6Z30pfSksYj15LmdldEJCb3goKSx4PWIud2lkdGgsXz1iLmhlaWdodDtpZih5LmRlc3Ryb3koKSwhYyl7aWYoYT09PSJ2YWx1ZSIpcmV0dXJue3RleHQ6Zyx4OjAseTotXy1mfTt2YXIgdz1mK2QrKG89PT0iaG9yaXpvbnRhbCI/eC8yOjApO3JldHVybiByPXt0ZXh0Omd9LHJbbz09PSJob3Jpem9udGFsIj8ieCI6InkiXT1uPT09InN0YXJ0Ij8tdzp3LHJ9dmFyIE89MCxFPTAsTT10aGlzLmF2YWlsYWJsZVNwYWNlLGs9TS53aWR0aCxBPU0uaGVpZ2h0LFA9dGhpcy5jYWxjU2VsZWN0aW9uQXJlYSgpWzFdLEM9UC54LE49UC55LEw9UC53aWR0aCxSPVAuaGVpZ2h0LEk9ZitkO2lmKG89PT0iaG9yaXpvbnRhbCIpe3ZhciBEPUkreC8yO2lmKG49PT0ic3RhcnQiKXt2YXIgRz1DLUkteDtPPUc+MD8tRDpEfWVsc2V7dmFyIEY9ay1DLUwtST54O089Rj9EOi1EfX1lbHNle3ZhciBXPUksWD1fK0k7bj09PSJzdGFydCI/RT1OLWQ+Xz8tWDpXOkU9QS0oTitSKS1kPl8/WDotV31yZXR1cm57eDpPLHk6RSx0ZXh0Omd9fSxlLnByb3RvdHlwZS5nZXRIYW5kbGVMYWJlbFN0eWxlPWZ1bmN0aW9uKG4pe3ZhciByPWVuKHRoaXMuYXR0cmlidXRlcywiaGFuZGxlTGFiZWwiKTtyZXR1cm4gQXQoQXQoQXQoe30sciksdGhpcy5jYWxjSGFuZGxlVGV4dChuKSksdGhpcy5pbmZlclRleHRTdHlsZShuKSl9LGUucHJvdG90eXBlLmdldEhhbmRsZUljb25TdHlsZT1mdW5jdGlvbigpe3ZhciBuPXRoaXMuYXR0cmlidXRlcy5oYW5kbGVJY29uU2hhcGUscj1lbih0aGlzLmF0dHJpYnV0ZXMsImhhbmRsZUljb24iKSxpPXRoaXMuZ2V0T3JpZW50VmFsKFsiZXctcmVzaXplIiwibnMtcmVzaXplIl0pLGE9dGhpcy5nZXRIYW5kbGVTaXplKCk7cmV0dXJuIEF0KHtjdXJzb3I6aSxzaGFwZTpuLHNpemU6YX0scil9LGUucHJvdG90eXBlLmdldEhhbmRsZVN0eWxlPWZ1bmN0aW9uKG4pe3ZhciByPXRoaXMuYXR0cmlidXRlcyxpPXIueCxhPXIueSxvPXIuc2hvd0xhYmVsLHM9ci5zaG93TGFiZWxPbkludGVyYWN0aW9uLGM9ci5vcmllbnRhdGlvbixsPXRoaXMuY2FsY0hhbmRsZVBvc2l0aW9uKG4pLHU9bC54LGY9bC55LGQ9dGhpcy5jYWxjSGFuZGxlVGV4dChuKSxoPW87cmV0dXJuIW8mJnMmJih0aGlzLnRhcmdldD9oPSEwOmg9ITEpLEF0KEF0KEF0KHt9LGRzKHRoaXMuZ2V0SGFuZGxlSWNvblN0eWxlKCksImljb24iKSksZHMoQXQoQXQoe30sdGhpcy5nZXRIYW5kbGVMYWJlbFN0eWxlKG4pKSxkKSwibGFiZWwiKSkse3RyYW5zZm9ybToidHJhbnNsYXRlKCIuY29uY2F0KHUraSwiLCAiKS5jb25jYXQoZithLCIpIiksb3JpZW50YXRpb246YyxzaG93TGFiZWw6aCx0eXBlOm4sekluZGV4OjN9KX0sZS5wcm90b3R5cGUuZ2V0SGFuZGxlU2l6ZT1mdW5jdGlvbigpe3ZhciBuPXRoaXMuYXR0cmlidXRlcyxyPW4uaGFuZGxlSWNvblNpemUsaT1uLndpZHRoLGE9bi5oZWlnaHQ7cmV0dXJuIHJ8fE1hdGguZmxvb3IoKHRoaXMuZ2V0T3JpZW50VmFsKFsrYSwraV0pKzQpLzIuNCl9LGUucHJvdG90eXBlLmdldE9yaWVudFZhbD1mdW5jdGlvbihuKXt2YXIgcj1WKG4sMiksaT1yWzBdLGE9clsxXSxvPXRoaXMuYXR0cmlidXRlcy5vcmllbnRhdGlvbjtyZXR1cm4gbz09PSJob3Jpem9udGFsIj9pOmF9LGUucHJvdG90eXBlLnNldFZhbHVlc09mZnNldD1mdW5jdGlvbihuLHIsaSl7cj09PXZvaWQgMCYmKHI9MCksaT09PXZvaWQgMCYmKGk9ITEpO3ZhciBhPXRoaXMuYXR0cmlidXRlcy50eXBlLG89Vih0aGlzLmdldFZhbHVlcygpLDIpLHM9b1swXSxjPW9bMV0sbD1hPT09InJhbmdlIj9uOjAsdT1bcytsLGMrcl0uc29ydCgpO2k/dGhpcy5zZXRWYWx1ZXModSk6dGhpcy5pbm5lclNldFZhbHVlcyh1LCEwKX0sZS5wcm90b3R5cGUuZ2V0UmF0aW89ZnVuY3Rpb24obil7dmFyIHI9dGhpcy5hdmFpbGFibGVTcGFjZSxpPXIud2lkdGgsYT1yLmhlaWdodDtyZXR1cm4gbi90aGlzLmdldE9yaWVudFZhbChbaSxhXSl9LGUucHJvdG90eXBlLmRpc3BhdGNoQ3VzdG9tRXZlbnQ9ZnVuY3Rpb24obixyLGkpe3ZhciBhPXRoaXM7bi5vbihyLGZ1bmN0aW9uKG8pe28uc3RvcFByb3BhZ2F0aW9uKCksYS5kaXNwYXRjaEV2ZW50KG5ldyBObihpLHtkZXRhaWw6b30pKX0pfSxlLnByb3RvdHlwZS5iaW5kRXZlbnRzPWZ1bmN0aW9uKCl7dGhpcy5hZGRFdmVudExpc3RlbmVyKCJ3aGVlbCIsdGhpcy5vblNjcm9sbCk7dmFyIG49dGhpcy5icnVzaEFyZWE7dGhpcy5kaXNwYXRjaEN1c3RvbUV2ZW50KG4sImNsaWNrIiwidHJhY2tDbGljayIpLHRoaXMuZGlzcGF0Y2hDdXN0b21FdmVudChuLCJwb2ludGVyZW50ZXIiLCJ0cmFja01vdXNlZW50ZXIiKSx0aGlzLmRpc3BhdGNoQ3VzdG9tRXZlbnQobiwicG9pbnRlcmxlYXZlIiwidHJhY2tNb3VzZWxlYXZlIiksbi5vbigicG9pbnRlcmRvd24iLHRoaXMub25EcmFnU3RhcnQoInRyYWNrIikpfSxlLnByb3RvdHlwZS5vblNjcm9sbD1mdW5jdGlvbihuKXt2YXIgcj10aGlzLmF0dHJpYnV0ZXMuc2Nyb2xsYWJsZTtpZihyKXt2YXIgaT1uLmRlbHRhWCxhPW4uZGVsdGFZLG89YXx8aSxzPXRoaXMuZ2V0UmF0aW8obyk7dGhpcy5zZXRWYWx1ZXNPZmZzZXQocyxzLCEwKX19LGUudGFnPSJzbGlkZXIiLGV9KGJpKSxCWD1mdW5jdGlvbih0LGUpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiZlLmluZGV4T2Yocik8MCYmKG5bcl09dFtyXSk7aWYodCE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBpPTAscj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2k8ci5sZW5ndGg7aSsrKWUuaW5kZXhPZihyW2ldKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodCxyW2ldKSYmKG5bcltpXV09dFtyW2ldXSk7cmV0dXJuIG59O2Z1bmN0aW9uIHpYKHQsZSxuKXtjb25zdHt4OnIseTppLHdpZHRoOmEsaGVpZ2h0Om99PXQ7aWYoZT09PSJsZWZ0IilyZXR1cm5bcithLW4saV07aWYoZT09PSJyaWdodCIpcmV0dXJuW3IsaV07aWYoZT09PSJib3R0b20iKXJldHVybltyLGldO2lmKGU9PT0idG9wIilyZXR1cm5bcixpK28tbl19Y29uc3QgZzA9dD0+e2NvbnN0e29yaWVudGF0aW9uOmUsbGFiZWxGb3JtYXR0ZXI6bixzaXplOnIsc3R5bGU6aT17fSxwb3NpdGlvbjphfT10LG89QlgodCxbIm9yaWVudGF0aW9uIiwibGFiZWxGb3JtYXR0ZXIiLCJzaXplIiwic3R5bGUiLCJwb3NpdGlvbiJdKTtyZXR1cm4gcz0+e3ZhciBjO2NvbnN0e3NjYWxlczpbbF0sdmFsdWU6dSx0aGVtZTpmLGNvb3JkaW5hdGU6ZH09cyx7YmJveDpofT11LHt3aWR0aDp2LGhlaWdodDpnfT1oLHtzbGlkZXI6eT17fX09ZixiPSgoYz1sLmdldEZvcm1hdHRlcik9PT1udWxsfHxjPT09dm9pZCAwP3ZvaWQgMDpjLmNhbGwobCkpfHwoaz0+aysiIikseD10eXBlb2Ygbj09InN0cmluZyI/ZWwobik6bixfPWU9PT0iaG9yaXpvbnRhbCIsdz1ocihkKSYmXyx7dHJhY2tTaXplOk89eS50cmFja1NpemV9PWksW0UsTV09elgoaCxhLE8pO3JldHVybiBuZXcgVE4oe2NsYXNzTmFtZToic2xpZGVyIixzdHlsZTpPYmplY3QuYXNzaWduKHt9LHksT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt4OkUseTpNLHRyYWNrTGVuZ3RoOl8/djpnLG9yaWVudGF0aW9uOmUsZm9ybWF0dGVyOms9Pntjb25zdCBBPXh8fGIsUD13PzEtazprLEM9c2QobCxQLCEwKTtyZXR1cm4gQShDKX0sc3BhcmtsaW5lRGF0YTpHWCh0LHMpfSxpKSxvKSl9KX19O2Z1bmN0aW9uIFdYKHQsZSl7Y29uc3Rbbl09QXJyYXkuZnJvbSh0LmVudHJpZXMoKSkuZmlsdGVyKChbaV0pPT5pLnR5cGU9PT0ibGluZSJ8fGkudHlwZT09PSJhcmVhIikuZmlsdGVyKChbaV0pPT5pLnNsaWRlcikubWFwKChbaV0pPT57Y29uc3R7ZW5jb2RlOmEsc2xpZGVyOm99PWk7aWYobyE9bnVsbCYmby54KXtjb25zdCBzPWM9Pntjb25zdCBsPWFbY107cmV0dXJuW2MsbD9sLnZhbHVlOnZvaWQgMF19O3JldHVybiBPYmplY3QuZnJvbUVudHJpZXMoZS5tYXAocykpfX0pO2lmKCEobiE9bnVsbCYmbi5zZXJpZXMpKXJldHVybiBuPT1udWxsP3ZvaWQgMDpuLnk7Y29uc3Qgcj1uLnNlcmllcy5yZWR1Y2UoKGksYSxvKT0+KGlbYV09aVthXXx8W10saVthXS5wdXNoKG4ueVtvXSksaSkse30pO3JldHVybiBPYmplY3QudmFsdWVzKHIpfWZ1bmN0aW9uIEdYKHQsZSl7Y29uc3R7bWFya1N0YXRlOm59PWU7cmV0dXJuIE5yKHQuc3BhcmtsaW5lRGF0YSk/dC5zcGFya2xpbmVEYXRhOldYKG4sWyJ5Iiwic2VyaWVzIl0pfWcwLnByb3BzPXtkZWZhdWx0UG9zaXRpb246ImJvdHRvbSIsZGVmYXVsdFNpemU6MjQsZGVmYXVsdE9yZGVyOjEsZGVmYXVsdENyb3NzUGFkZGluZzpbMTIsMTJdLGRlZmF1bHRQYWRkaW5nOlsxMiwxMl19O2NvbnN0IFBOPXQ9PmcwKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7b3JpZW50YXRpb246Imhvcml6b250YWwifSkpO1BOLnByb3BzPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxnMC5wcm9wcykse2RlZmF1bHRQb3NpdGlvbjoiYm90dG9tIn0pO2NvbnN0IENOPXQ9PmcwKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7b3JpZW50YXRpb246InZlcnRpY2FsIn0pKTtDTi5wcm9wcz1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZzAucHJvcHMpLHtkZWZhdWx0UG9zaXRpb246ImxlZnQifSk7dmFyICRYPWZ1bmN0aW9uKHQpe2FyKGUsdCk7ZnVuY3Rpb24gZShuKXt2YXIgcj10LmNhbGwodGhpcyxuLHt4OjAseTowLGlzUm91bmQ6ITAsb3JpZW50YXRpb246InZlcnRpY2FsIixwYWRkaW5nOlsyLDIsMiwyXSxzY3JvbGxhYmxlOiEwLHNsaWRhYmxlOiEwLHRodW1iQ3Vyc29yOiJkZWZhdWx0Iix0cmFja1NpemU6MTAsdmFsdWU6MH0pfHx0aGlzO3JldHVybiByLnJhbmdlPVswLDFdLHIub25WYWx1ZUNoYW5nZT1mdW5jdGlvbihpKXt2YXIgYT1yLmF0dHJpYnV0ZXMudmFsdWU7aWYoaSE9PWEpe3ZhciBvPXtkZXRhaWw6e29sZFZhbHVlOmksdmFsdWU6YX19O3IuZGlzcGF0Y2hFdmVudChuZXcgTm4oInNjcm9sbCIsbykpLHIuZGlzcGF0Y2hFdmVudChuZXcgTm4oInZhbHVlY2hhbmdlIixvKSl9fSxyLm9uVHJhY2tDbGljaz1mdW5jdGlvbihpKXt2YXIgYT1yLmF0dHJpYnV0ZXMuc2xpZGFibGU7aWYoYSl7dmFyIG89VihyLmdldExvY2FsUG9zaXRpb24oKSwyKSxzPW9bMF0sYz1vWzFdLGw9VihyLnBhZGRpbmcsNCksdT1sWzBdLGY9bFszXSxkPXIuZ2V0T3JpZW50VmFsKFtzK2YsYyt1XSksaD1yLmdldE9yaWVudFZhbChfbShpKSksdj0oaC1kKS9yLnRyYWNrTGVuZ3RoO3Iuc2V0VmFsdWUodiwhMCl9fSxyLm9uVGh1bWJNb3VzZWVudGVyPWZ1bmN0aW9uKGkpe3IuZGlzcGF0Y2hFdmVudChuZXcgTm4oInRodW1iTW91c2VlbnRlciIse2RldGFpbDppLmRldGFpbH0pKX0sci5vblRyYWNrTW91c2VlbnRlcj1mdW5jdGlvbihpKXtyLmRpc3BhdGNoRXZlbnQobmV3IE5uKCJ0cmFja01vdXNlZW50ZXIiLHtkZXRhaWw6aS5kZXRhaWx9KSl9LHIub25UaHVtYk1vdXNlbGVhdmU9ZnVuY3Rpb24oaSl7ci5kaXNwYXRjaEV2ZW50KG5ldyBObigidGh1bWJNb3VzZWxlYXZlIix7ZGV0YWlsOmkuZGV0YWlsfSkpfSxyLm9uVHJhY2tNb3VzZWxlYXZlPWZ1bmN0aW9uKGkpe3IuZGlzcGF0Y2hFdmVudChuZXcgTm4oInRyYWNrTW91c2VsZWF2ZSIse2RldGFpbDppLmRldGFpbH0pKX0scn1yZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJwYWRkaW5nIix7Z2V0OmZ1bmN0aW9uKCl7dmFyIG49dGhpcy5hdHRyaWJ1dGVzLnBhZGRpbmc7cmV0dXJuIE5pKG4pfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwidmFsdWUiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgbj10aGlzLmF0dHJpYnV0ZXMudmFsdWUscj1WKHRoaXMucmFuZ2UsMiksaT1yWzBdLGE9clsxXTtyZXR1cm4gbW4obixpLGEpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwidHJhY2tMZW5ndGgiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgbj10aGlzLmF0dHJpYnV0ZXMscj1uLnZpZXdwb3J0TGVuZ3RoLGk9bi50cmFja0xlbmd0aCxhPWk9PT12b2lkIDA/cjppO3JldHVybiBhfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwiYXZhaWxhYmxlU3BhY2UiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgbj10aGlzLmF0dHJpYnV0ZXMudHJhY2tTaXplLHI9dGhpcy50cmFja0xlbmd0aCxpPVYodGhpcy5wYWRkaW5nLDQpLGE9aVswXSxvPWlbMV0scz1pWzJdLGM9aVszXSxsPVYodGhpcy5nZXRPcmllbnRWYWwoW1tyLG5dLFtuLHJdXSksMiksdT1sWzBdLGY9bFsxXTtyZXR1cm57eDpjLHk6YSx3aWR0aDordS0oYytvKSxoZWlnaHQ6K2YtKGErcyl9fSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwidHJhY2tSYWRpdXMiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgbj10aGlzLmF0dHJpYnV0ZXMscj1uLmlzUm91bmQsaT1uLnRyYWNrU2l6ZTtyZXR1cm4gcj9pLzI6MH0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsInRodW1iUmFkaXVzIix7Z2V0OmZ1bmN0aW9uKCl7dmFyIG49dGhpcy5hdHRyaWJ1dGVzLHI9bi5pc1JvdW5kLGk9bi50aHVtYlJhZGl1cztpZighcilyZXR1cm4gMDt2YXIgYT10aGlzLmF2YWlsYWJsZVNwYWNlLG89YS53aWR0aCxzPWEuaGVpZ2h0O3JldHVybiBpfHx0aGlzLmdldE9yaWVudFZhbChbcyxvXSkvMn0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS5nZXRWYWx1ZXM9ZnVuY3Rpb24obil7bj09PXZvaWQgMCYmKG49dGhpcy52YWx1ZSk7dmFyIHI9dGhpcy5hdHRyaWJ1dGVzLGk9ci52aWV3cG9ydExlbmd0aCxhPXIuY29udGVudExlbmd0aCxvPWkvYSxzPVYodGhpcy5yYW5nZSwyKSxjPXNbMF0sbD1zWzFdLHU9bioobC1jLW8pO3JldHVyblt1LHUrb119LGUucHJvdG90eXBlLmdldFZhbHVlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWV9LGUucHJvdG90eXBlLnJlbmRlclNsaWRlcj1mdW5jdGlvbihuKXt2YXIgcj10aGlzLmF0dHJpYnV0ZXMsaT1yLngsYT1yLnksbz1yLm9yaWVudGF0aW9uLHM9ci50cmFja1NpemUsYz1yLnBhZGRpbmcsbD1yLnNsaWRhYmxlLHU9ZW4odGhpcy5hdHRyaWJ1dGVzLCJ0cmFjayIpLGY9ZW4odGhpcy5hdHRyaWJ1dGVzLCJ0aHVtYiIpLGQ9QXQoQXQoe3g6aSx5OmEsYnJ1c2hhYmxlOiExLG9yaWVudGF0aW9uOm8scGFkZGluZzpjLHNlbGVjdGlvblJhZGl1czp0aGlzLnRodW1iUmFkaXVzLHNob3dIYW5kbGU6ITEsc2xpZGFibGU6bCx0cmFja0xlbmd0aDp0aGlzLnRyYWNrTGVuZ3RoLHRyYWNrUmFkaXVzOnRoaXMudHJhY2tSYWRpdXMsdHJhY2tTaXplOnMsdmFsdWVzOnRoaXMuZ2V0VmFsdWVzKCl9LGRzKHUsInRyYWNrIikpLGRzKGYsInNlbGVjdGlvbiIpKTt0aGlzLnNsaWRlcj1GZShuKS5tYXliZUFwcGVuZEJ5Q2xhc3NOYW1lKCJzY3JvbGxiYXIiLGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBUTih7c3R5bGU6ZH0pfSkudXBkYXRlKGQpLm5vZGUoKX0sZS5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKG4scil7dGhpcy5yZW5kZXJTbGlkZXIocil9LGUucHJvdG90eXBlLnNldFZhbHVlPWZ1bmN0aW9uKG4scil7cj09PXZvaWQgMCYmKHI9ITEpO3ZhciBpPXRoaXMuYXR0cmlidXRlcy52YWx1ZSxhPVYodGhpcy5yYW5nZSwyKSxvPWFbMF0scz1hWzFdO3RoaXMuc2xpZGVyLnNldFZhbHVlcyh0aGlzLmdldFZhbHVlcyhtbihuLG8scykpLHIpLHRoaXMub25WYWx1ZUNoYW5nZShpKX0sZS5wcm90b3R5cGUuYmluZEV2ZW50cz1mdW5jdGlvbigpe3ZhciBuPXRoaXM7dGhpcy5zbGlkZXIuYWRkRXZlbnRMaXN0ZW5lcigidHJhY2tDbGljayIsZnVuY3Rpb24ocil7ci5zdG9wUHJvcGFnYXRpb24oKSxuLm9uVHJhY2tDbGljayhyLmRldGFpbCl9KSx0aGlzLm9uSG92ZXIoKX0sZS5wcm90b3R5cGUuZ2V0T3JpZW50VmFsPWZ1bmN0aW9uKG4pe3ZhciByPXRoaXMuYXR0cmlidXRlcy5vcmllbnRhdGlvbjtyZXR1cm4gcj09PSJob3Jpem9udGFsIj9uWzBdOm5bMV19LGUucHJvdG90eXBlLm9uSG92ZXI9ZnVuY3Rpb24oKXt0aGlzLnNsaWRlci5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3Rpb25Nb3VzZWVudGVyIix0aGlzLm9uVGh1bWJNb3VzZWVudGVyKSx0aGlzLnNsaWRlci5hZGRFdmVudExpc3RlbmVyKCJ0cmFja01vdXNlZW50ZXIiLHRoaXMub25UcmFja01vdXNlZW50ZXIpLHRoaXMuc2xpZGVyLmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbk1vdXNlbGVhdmUiLHRoaXMub25UaHVtYk1vdXNlbGVhdmUpLHRoaXMuc2xpZGVyLmFkZEV2ZW50TGlzdGVuZXIoInRyYWNrTW91c2VsZWF2ZSIsdGhpcy5vblRyYWNrTW91c2VsZWF2ZSl9LGUudGFnPSJzY3JvbGxiYXIiLGV9KGJpKSxaWD1mdW5jdGlvbih0LGUpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiZlLmluZGV4T2Yocik8MCYmKG5bcl09dFtyXSk7aWYodCE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBpPTAscj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2k8ci5sZW5ndGg7aSsrKWUuaW5kZXhPZihyW2ldKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodCxyW2ldKSYmKG5bcltpXV09dFtyW2ldXSk7cmV0dXJuIG59O2NvbnN0IHkwPXQ9Pntjb25zdHtvcmllbnRhdGlvbjplLGxhYmVsRm9ybWF0dGVyOm4sc3R5bGU6cn09dCxpPVpYKHQsWyJvcmllbnRhdGlvbiIsImxhYmVsRm9ybWF0dGVyIiwic3R5bGUiXSk7cmV0dXJuKHtzY2FsZXM6W2FdLHZhbHVlOm8sdGhlbWU6c30pPT57Y29uc3R7YmJveDpjfT1vLHt4OmwseTp1LHdpZHRoOmYsaGVpZ2h0OmR9PWMse3Njcm9sbGJhcjpoPXt9fT1zLHtyYXRpbzp2LHJhbmdlOmd9PWEuZ2V0T3B0aW9ucygpLHk9ZT09PSJob3Jpem9udGFsIj9mOmQsYj15L3YsW3gsX109Zyx3PV8+eD8wOjE7cmV0dXJuIG5ldyAkWCh7Y2xhc3NOYW1lOiJnMi1zY3JvbGxiYXIiLHN0eWxlOk9iamVjdC5hc3NpZ24oe30saCxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHIpLHt4OmwseTp1LHRyYWNrTGVuZ3RoOnksdmFsdWU6d30pLGkpLHtvcmllbnRhdGlvbjplLGNvbnRlbnRMZW5ndGg6Yix2aWV3cG9ydExlbmd0aDp5fSkpfSl9fTt5MC5wcm9wcz17ZGVmYXVsdFBvc2l0aW9uOiJib3R0b20iLGRlZmF1bHRTaXplOjI0LGRlZmF1bHRPcmRlcjoxLGRlZmF1bHRDcm9zc1BhZGRpbmc6WzEyLDEyXSxkZWZhdWx0UGFkZGluZzpbMTIsMTJdfTtjb25zdCBMTj10PT55MChPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse29yaWVudGF0aW9uOiJob3Jpem9udGFsIn0pKTtMTi5wcm9wcz1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30seTAucHJvcHMpLHtkZWZhdWx0UG9zaXRpb246ImJvdHRvbSJ9KTtjb25zdCBSTj10PT55MChPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse29yaWVudGF0aW9uOiJ2ZXJ0aWNhbCJ9KSk7Uk4ucHJvcHM9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHkwLnByb3BzKSx7ZGVmYXVsdFBvc2l0aW9uOiJsZWZ0In0pO2NvbnN0IGNTPSh0LGUpPT57Y29uc3R7Y29vcmRpbmF0ZTpyfT1lO3JldHVybihpLGEsbyk9Pntjb25zdFtzXT1pLHt0cmFuc2Zvcm06Yz0iIixmaWxsT3BhY2l0eTpsPTEsc3Ryb2tlT3BhY2l0eTp1PTEsb3BhY2l0eTpmPTF9PXMuc3R5bGUsW2QsaF09aHIocik/WyJsZWZ0IGJvdHRvbSIsYHNjYWxlKDEsICR7MWUtNH0pYF06WyJsZWZ0IHRvcCIsYHNjYWxlKCR7MWUtNH0sIDEpYF0sdj1be3RyYW5zZm9ybTpgJHtjfSAke2h9YC50cmltU3RhcnQoKSx0cmFuc2Zvcm1PcmlnaW46ZCxmaWxsT3BhY2l0eTowLHN0cm9rZU9wYWNpdHk6MCxvcGFjaXR5OjB9LHt0cmFuc2Zvcm06YCR7Y30gJHtofWAudHJpbVN0YXJ0KCksdHJhbnNmb3JtT3JpZ2luOmQsZmlsbE9wYWNpdHk6bCxzdHJva2VPcGFjaXR5OnUsb3BhY2l0eTpmLG9mZnNldDouMDF9LHt0cmFuc2Zvcm06YCR7Y30gc2NhbGUoMSwgMSlgLnRyaW1TdGFydCgpLHRyYW5zZm9ybU9yaWdpbjpkLGZpbGxPcGFjaXR5Omwsc3Ryb2tlT3BhY2l0eTp1LG9wYWNpdHk6Zn1dO3JldHVybiBzLmFuaW1hdGUodixPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbyksdCkpfX0sWVg9KHQsZSk9Pntjb25zdHtjb29yZGluYXRlOnJ9PWU7cmV0dXJuKGksYSxvKT0+e2NvbnN0W3NdPWkse3RyYW5zZm9ybTpjPSIiLGZpbGxPcGFjaXR5Omw9MSxzdHJva2VPcGFjaXR5OnU9MSxvcGFjaXR5OmY9MX09cy5zdHlsZSxbZCxoXT1ocihyKT9bImxlZnQgYm90dG9tIixgc2NhbGUoMSwgJHsxZS00fSlgXTpbImxlZnQgdG9wIixgc2NhbGUoJHsxZS00fSwgMSlgXSx2PVt7dHJhbnNmb3JtOmAke2N9IHNjYWxlKDEsIDEpYC50cmltU3RhcnQoKSx0cmFuc2Zvcm1PcmlnaW46ZH0se3RyYW5zZm9ybTpgJHtjfSAke2h9YC50cmltU3RhcnQoKSx0cmFuc2Zvcm1PcmlnaW46ZCxmaWxsT3BhY2l0eTpsLHN0cm9rZU9wYWNpdHk6dSxvcGFjaXR5OmYsb2Zmc2V0Oi45OX0se3RyYW5zZm9ybTpgJHtjfSAke2h9YC50cmltU3RhcnQoKSx0cmFuc2Zvcm1PcmlnaW46ZCxmaWxsT3BhY2l0eTowLHN0cm9rZU9wYWNpdHk6MCxvcGFjaXR5OjB9XTtyZXR1cm4gcy5hbmltYXRlKHYsT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG8pLHQpKX19LE5OPSh0LGUpPT57Y29uc3R7Y29vcmRpbmF0ZTpyfT1lO3JldHVybiBnay5yZWdpc3RlclByb3BlcnR5KHtuYW1lOiJzY2FsZUluWVJhZGl1cyIsaW5oZXJpdHM6ITEsaW5pdGlhbFZhbHVlOiIiLGludGVycG9sYWJsZTohMCxzeW50YXg6enQuTlVNQkVSfSksKGksYSxvKT0+e2NvbnN0W3NdPWksYz11PT57Y29uc3R7X19kYXRhX186ZixzdHlsZTpkfT11LHtyYWRpdXM6aD0wLGluc2V0OnY9MCxmaWxsT3BhY2l0eTpnPTEsc3Ryb2tlT3BhY2l0eTp5PTEsb3BhY2l0eTpiPTF9PWQse3BvaW50czp4LHk6Xyx5MTp3fT1mLE89bXUocix4LFtfLHddKSx7aW5uZXJSYWRpdXM6RSxvdXRlclJhZGl1czpNfT1PLGs9TG0oKS5jb3JuZXJSYWRpdXMoaCkucGFkQW5nbGUodipNYXRoLlBJLzE4MCksQT1uZXcgUWkoe30pLFA9TD0+KEEuYXR0cih7ZDprKEwpfSkscWcoQSkpLEM9W3tzY2FsZUluWVJhZGl1czpFKzFlLTQsZmlsbE9wYWNpdHk6MCxzdHJva2VPcGFjaXR5OjAsb3BhY2l0eTowfSx7c2NhbGVJbllSYWRpdXM6RSsxZS00LGZpbGxPcGFjaXR5Omcsc3Ryb2tlT3BhY2l0eTp5LG9wYWNpdHk6YixvZmZzZXQ6LjAxfSx7c2NhbGVJbllSYWRpdXM6TSxmaWxsT3BhY2l0eTpnLHN0cm9rZU9wYWNpdHk6eSxvcGFjaXR5OmJ9XSxOPXUuYW5pbWF0ZShDLE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxvKSx0KSk7cmV0dXJuIE4ub25mcmFtZT1mdW5jdGlvbigpe3Uuc3R5bGUuZD1QKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxPKSx7b3V0ZXJSYWRpdXM6TnVtYmVyKHUuc3R5bGUuc2NhbGVJbllSYWRpdXMpfSkpfSxOLm9uZmluaXNoPWZ1bmN0aW9uKCl7dS5zdHlsZS5kPVAoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LE8pLHtvdXRlclJhZGl1czpNfSkpfSxOfSxsPXU9Pntjb25zdHtzdHlsZTpmfT11LHt0cmFuc2Zvcm06ZD0iIixmaWxsT3BhY2l0eTpoPTEsc3Ryb2tlT3BhY2l0eTp2PTEsb3BhY2l0eTpnPTF9PWYsW3ksYl09aHIocik/WyJsZWZ0IHRvcCIsYHNjYWxlKCR7MWUtNH0sIDEpYF06WyJsZWZ0IGJvdHRvbSIsYHNjYWxlKDEsICR7MWUtNH0pYF0seD1be3RyYW5zZm9ybTpgJHtkfSAke2J9YC50cmltU3RhcnQoKSx0cmFuc2Zvcm1PcmlnaW46eSxmaWxsT3BhY2l0eTowLHN0cm9rZU9wYWNpdHk6MCxvcGFjaXR5OjB9LHt0cmFuc2Zvcm06YCR7ZH0gJHtifWAudHJpbVN0YXJ0KCksdHJhbnNmb3JtT3JpZ2luOnksZmlsbE9wYWNpdHk6aCxzdHJva2VPcGFjaXR5OnYsb3BhY2l0eTpnLG9mZnNldDouMDF9LHt0cmFuc2Zvcm06YCR7ZH0gc2NhbGUoMSwgMSlgLnRyaW1TdGFydCgpLHRyYW5zZm9ybU9yaWdpbjp5LGZpbGxPcGFjaXR5Omgsc3Ryb2tlT3BhY2l0eTp2LG9wYWNpdHk6Z31dO3JldHVybiB1LmFuaW1hdGUoeCxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbyksdCkpfTtyZXR1cm4gQm4ocik/YyhzKTpsKHMpfX0sSFg9KHQsZSk9Pntjb25zdHtjb29yZGluYXRlOnJ9PWU7cmV0dXJuKGksYSxvKT0+e2NvbnN0W3NdPWkse3RyYW5zZm9ybTpjPSIiLGZpbGxPcGFjaXR5Omw9MSxzdHJva2VPcGFjaXR5OnU9MSxvcGFjaXR5OmY9MX09cy5zdHlsZSxbZCxoXT1ocihyKT9bImxlZnQgdG9wIixgc2NhbGUoJHsxZS00fSwgMSlgXTpbImxlZnQgYm90dG9tIixgc2NhbGUoMSwgJHsxZS00fSlgXSx2PVt7dHJhbnNmb3JtOmAke2N9IHNjYWxlKDEsIDEpYC50cmltU3RhcnQoKSx0cmFuc2Zvcm1PcmlnaW46ZH0se3RyYW5zZm9ybTpgJHtjfSAke2h9YC50cmltU3RhcnQoKSx0cmFuc2Zvcm1PcmlnaW46ZCxmaWxsT3BhY2l0eTpsLHN0cm9rZU9wYWNpdHk6dSxvcGFjaXR5OmYsb2Zmc2V0Oi45OX0se3RyYW5zZm9ybTpgJHtjfSAke2h9YC50cmltU3RhcnQoKSx0cmFuc2Zvcm1PcmlnaW46ZCxmaWxsT3BhY2l0eTowLHN0cm9rZU9wYWNpdHk6MCxvcGFjaXR5OjB9XTtyZXR1cm4gcy5hbmltYXRlKHYsT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG8pLHQpKX19LElOPSh0LGUpPT57Z2sucmVnaXN0ZXJQcm9wZXJ0eSh7bmFtZToid2F2ZUluQXJjQW5nbGUiLGluaGVyaXRzOiExLGluaXRpYWxWYWx1ZToiIixpbnRlcnBvbGFibGU6ITAsc3ludGF4Onp0Lk5VTUJFUn0pO2NvbnN0e2Nvb3JkaW5hdGU6cn09ZTtyZXR1cm4oaSxhLG8pPT57Y29uc3Rbc109aTtpZighQm4ocikpcmV0dXJuIGNTKHQsZSkoaSxhLG8pO2NvbnN0e19fZGF0YV9fOmMsc3R5bGU6bH09cyx7cmFkaXVzOnU9MCxpbnNldDpmPTAsZmlsbE9wYWNpdHk6ZD0xLHN0cm9rZU9wYWNpdHk6aD0xLG9wYWNpdHk6dj0xfT1sLHtwb2ludHM6Zyx5LHkxOmJ9PWMseD1MbSgpLmNvcm5lclJhZGl1cyh1KS5wYWRBbmdsZShmKk1hdGguUEkvMTgwKSxfPW11KHIsZyxbeSxiXSkse3N0YXJ0QW5nbGU6dyxlbmRBbmdsZTpPfT1fLEU9W3t3YXZlSW5BcmNBbmdsZTp3KzFlLTQsZmlsbE9wYWNpdHk6MCxzdHJva2VPcGFjaXR5OjAsb3BhY2l0eTowfSx7d2F2ZUluQXJjQW5nbGU6dysxZS00LGZpbGxPcGFjaXR5OmQsc3Ryb2tlT3BhY2l0eTpoLG9wYWNpdHk6dixvZmZzZXQ6LjAxfSx7d2F2ZUluQXJjQW5nbGU6TyxmaWxsT3BhY2l0eTpkLHN0cm9rZU9wYWNpdHk6aCxvcGFjaXR5OnZ9XSxNPXMuYW5pbWF0ZShFLE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxvKSx0KSk7cmV0dXJuIE0ub25mcmFtZT1mdW5jdGlvbigpe3Muc3R5bGUuZD14KE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxfKSx7ZW5kQW5nbGU6TnVtYmVyKHMuc3R5bGUud2F2ZUluQXJjQW5nbGUpfSkpfSxNLm9uZmluaXNoPWZ1bmN0aW9uKCl7cy5zdHlsZS5kPXgoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LF8pLHtlbmRBbmdsZTpPfSkpfSxNfX07SU4ucHJvcHM9e307Y29uc3QgRE49dD0+KGUsbixyKT0+e2NvbnN0W2ldPWUse2ZpbGxPcGFjaXR5OmE9MSxzdHJva2VPcGFjaXR5Om89MSxvcGFjaXR5OnM9MX09aS5zdHlsZSxjPVt7ZmlsbE9wYWNpdHk6MCxzdHJva2VPcGFjaXR5OjAsb3BhY2l0eTowfSx7ZmlsbE9wYWNpdHk6YSxzdHJva2VPcGFjaXR5Om8sb3BhY2l0eTpzfV07cmV0dXJuIGkuYW5pbWF0ZShjLE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxyKSx0KSl9O0ROLnByb3BzPXt9O2NvbnN0IGpOPXQ9PihlLG4scik9Pntjb25zdFtpXT1lLHtmaWxsT3BhY2l0eTphPTEsc3Ryb2tlT3BhY2l0eTpvPTEsb3BhY2l0eTpzPTF9PWkuc3R5bGUsYz1be2ZpbGxPcGFjaXR5OmEsc3Ryb2tlT3BhY2l0eTpvLG9wYWNpdHk6c30se2ZpbGxPcGFjaXR5OjAsc3Ryb2tlT3BhY2l0eTowLG9wYWNpdHk6MH1dO3JldHVybiBpLmFuaW1hdGUoYyxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sciksdCkpfTtqTi5wcm9wcz17fTtjb25zdCBWWD10PT4obixyLGkpPT57Y29uc3RbYV09bix7dHJhbnNmb3JtOm89IiIsZmlsbE9wYWNpdHk6cz0xLHN0cm9rZU9wYWNpdHk6Yz0xLG9wYWNpdHk6bD0xfT1hLnN0eWxlLHU9ImNlbnRlciBjZW50ZXIiLGY9W3t0cmFuc2Zvcm06YCR7b30gc2NhbGUoJHsxZS00fSlgLnRyaW1TdGFydCgpLHRyYW5zZm9ybU9yaWdpbjp1LGZpbGxPcGFjaXR5OjAsc3Ryb2tlT3BhY2l0eTowLG9wYWNpdHk6MH0se3RyYW5zZm9ybTpgJHtvfSBzY2FsZSgkezFlLTR9KWAudHJpbVN0YXJ0KCksdHJhbnNmb3JtT3JpZ2luOnUsZmlsbE9wYWNpdHk6cyxzdHJva2VPcGFjaXR5OmMsb3BhY2l0eTpsLG9mZnNldDouMDF9LHt0cmFuc2Zvcm06YCR7b30gc2NhbGUoMSlgLnRyaW1TdGFydCgpLHRyYW5zZm9ybU9yaWdpbjp1LGZpbGxPcGFjaXR5OnMsc3Ryb2tlT3BhY2l0eTpjLG9wYWNpdHk6bH1dO3JldHVybiBhLmFuaW1hdGUoZixPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30saSksdCkpfSxYWD10PT4obixyLGkpPT57Y29uc3RbYV09bix7dHJhbnNmb3JtOm89IiIsZmlsbE9wYWNpdHk6cz0xLHN0cm9rZU9wYWNpdHk6Yz0xLG9wYWNpdHk6bD0xfT1hLnN0eWxlLHU9ImNlbnRlciBjZW50ZXIiLGY9W3t0cmFuc2Zvcm06YCR7b30gc2NhbGUoMSlgLnRyaW1TdGFydCgpLHRyYW5zZm9ybU9yaWdpbjp1fSx7dHJhbnNmb3JtOmAke299IHNjYWxlKCR7MWUtNH0pYC50cmltU3RhcnQoKSx0cmFuc2Zvcm1PcmlnaW46dSxmaWxsT3BhY2l0eTpzLHN0cm9rZU9wYWNpdHk6YyxvcGFjaXR5Omwsb2Zmc2V0Oi45OX0se3RyYW5zZm9ybTpgJHtvfSBzY2FsZSgkezFlLTR9KWAudHJpbVN0YXJ0KCksdHJhbnNmb3JtT3JpZ2luOnUsZmlsbE9wYWNpdHk6MCxzdHJva2VPcGFjaXR5OjAsb3BhY2l0eTowfV07cmV0dXJuIGEuYW5pbWF0ZShmLE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxpKSx0KSl9LEZOPXQ9PihlLG4scik9Pnt2YXIgaSxhO2NvbnN0W29dPWUscz0oKGE9KGk9bykuZ2V0VG90YWxMZW5ndGgpPT09bnVsbHx8YT09PXZvaWQgMD92b2lkIDA6YS5jYWxsKGkpKXx8MCxjPVt7bGluZURhc2g6WzAsc119LHtsaW5lRGFzaDpbcywwXX1dO3JldHVybiBvLmFuaW1hdGUoYyxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sciksdCkpfTtGTi5wcm9wcz17fTtjb25zdCBVWD17b3BhY2l0eToxLHN0cm9rZU9wYWNpdHk6MSxmaWxsT3BhY2l0eToxLGxpbmVXaWR0aDowLHg6MCx5OjAsY3g6MCxjeTowLHI6MCxyeDowLHJ5OjAsd2lkdGg6MCxoZWlnaHQ6MH0scVg9e1tkdC5DSVJDTEVdOlsiY3giLCJjeSIsInIiXSxbZHQuRUxMSVBTRV06WyJjeCIsImN5IiwicngiLCJyeSJdLFtkdC5SRUNUXTpbIngiLCJ5Iiwid2lkdGgiLCJoZWlnaHQiXSxbZHQuSU1BR0VdOlsieCIsInkiLCJ3aWR0aCIsImhlaWdodCJdLFtkdC5MSU5FXTpbIngxIiwieTEiLCJ4MiIsInkyIl0sW2R0LlBPTFlMSU5FXTpbInBvaW50cyJdLFtkdC5QT0xZR09OXTpbInBvaW50cyJdfTtmdW5jdGlvbiBPZCh0LGUsbj0hMSl7Y29uc3Qgcj17fTtmb3IoY29uc3QgaSBvZiBlKXtjb25zdCBhPXQuc3R5bGVbaV07YT9yW2ldPWE6biYmKHJbaV09VVhbaV0pfXJldHVybiByfWNvbnN0IG0wPVsiZmlsbCIsInN0cm9rZSIsImZpbGxPcGFjaXR5Iiwic3Ryb2tlT3BhY2l0eSIsIm9wYWNpdHkiLCJsaW5lV2lkdGgiXTtmdW5jdGlvbiBsUyh0KXtjb25zdHttaW46ZSxtYXg6bn09dC5nZXRMb2NhbEJvdW5kcygpLFtyLGldPWUsW2Esb109bixzPW8taSxjPWEtcjtyZXR1cm5bcixpLGMsc119ZnVuY3Rpb24gS1godCl7Y29uc3RbZSxuLHIsaV09dDtyZXR1cm5gCisgICAgTSAke2V9ICR7bn0KKyAgICBMICR7ZStyfSAke259CisgICAgTCAke2Urcn0gJHtuK2l9CisgICAgTCAke2V9ICR7bitpfQorICAgIFoKKyAgYH1mdW5jdGlvbiBRWCh0LGUpe2NvbnN0W24scixpLGFdPWxTKHQpLG89YS9pLHM9TWF0aC5jZWlsKE1hdGguc3FydChlL28pKSxjPU1hdGguY2VpbChlL3MpLGw9W10sdT1hL2M7bGV0IGY9MCxkPWU7Zm9yKDtkPjA7KXtjb25zdCBoPU1hdGgubWluKGQscyksdj1pL2g7Zm9yKGxldCBnPTA7ZzxoO2crKyl7Y29uc3QgeT1uK2cqdixiPXIrZip1O2wucHVzaChLWChbeSxiLHYsdV0pKX1kLT1oLGYrPTF9cmV0dXJuIGx9ZnVuY3Rpb24gSlgodD0icGFjayIpe3JldHVybiB0eXBlb2YgdD09ImZ1bmN0aW9uIj90OlFYfWZ1bmN0aW9uIHRVKHQsZSxuKXtsZXR7dHJhbnNmb3JtOnJ9PXQuc3R5bGU7Y29uc3R7dHJhbnNmb3JtOml9PWUuc3R5bGU7Qk4oZSx0KTtsZXQgYT1tMDtpZih0Lm5vZGVOYW1lPT09ZHQuR1JPVVApe2NvbnN0W2MsbCx1LGZdPWxTKHQpLFtkLGgsdixnXT1sUyhlKSx5PWMtZCxiPWwtaCx4PXUvdixfPWYvZztyPWB0cmFuc2xhdGUoJHt5fSwgJHtifSkgc2NhbGUoJHt4fSwgJHtffSlgfWVsc2UgYT1hLmNvbmNhdChxWFt0Lm5vZGVOYW1lXXx8W10pO2NvbnN0IG89W09iamVjdC5hc3NpZ24oe3RyYW5zZm9ybTpyIT1udWxsP3I6Im5vbmUifSxPZCh0LGEsITApKSxPYmplY3QuYXNzaWduKHt0cmFuc2Zvcm06aSE9bnVsbD9pOiJub25lIn0sT2QoZSxhLCEwKSldO3JldHVybiBlLmFuaW1hdGUobyxuKX1mdW5jdGlvbiBCTih0LGUpe3QuX19kYXRhX189ZS5fX2RhdGFfXyx0LmNsYXNzTmFtZT1lLmNsYXNzTmFtZSx0Lm1hcmtUeXBlPWUubWFya1R5cGUsZS5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZCh0LGUpfWZ1bmN0aW9uIGVVKHQsZSl7Y29uc3R7bm9kZU5hbWU6bn09dDtpZihuPT09InBhdGgiKXJldHVybiB0O2NvbnN0IHI9bmV3IFFpKHtzdHlsZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sT2QodCxtMCkpLHtkOmV9KX0pO3JldHVybiBCTihyLHQpLHJ9ZnVuY3Rpb24gek4odCxlKXtjb25zdCBuPXQuaW5kZXhPZihlKSxyPXQubGFzdEluZGV4T2YoZSk7cmV0dXJuIG49PT1yfWZ1bmN0aW9uIG5VKHQpe3JldHVybiF6Tih0LCJtIil8fCF6Tih0LCJNIil9ZnVuY3Rpb24gV04odCl7Y29uc3QgZT1xZyh0KTtpZihlJiYhblUoZSkpcmV0dXJuIGV9ZnVuY3Rpb24gR04odCl7Y29uc3R7bm9kZU5hbWU6ZX09dDtpZihlPT09InBhdGgiKXtjb25zdCBuPXZuKHQsImF0dHJpYnV0ZXMiKTtyZXR1cm4gbi5tYXJrZXJFbmR8fG4ubWFya2VyU3RhcnR9cmV0dXJuITF9ZnVuY3Rpb24gdVModCxlLG4scil7Y29uc3R7bm9kZU5hbWU6aX09ZSx7bm9kZU5hbWU6YX09bixvPVdOKGUpLHM9V04obiksYz1pPT09YSYmaSE9PSJwYXRoIixsPW89PT12b2lkIDB8fHM9PT12b2lkIDAsdT1HTihlKXx8R04obik7aWYoY3x8bHx8dSlyZXR1cm4gdFUoZSxuLHIpO2NvbnN0IGY9ZVUodCxvKSxkPVtPYmplY3QuYXNzaWduKHt9LE9kKGUsbTApKSxPYmplY3QuYXNzaWduKHt9LE9kKG4sbTApKV07aWYobyE9PXMpe2RbMF0uZD1vLGRbMV0uZD1zO2NvbnN0IGg9Zi5hbmltYXRlKGQscik7cmV0dXJuIGgub25maW5pc2g9KCk9Pntjb25zdCB2PWYuc3R5bGUuZDtRXyhmLG4pLGYuc3R5bGUuZD12LGYuc3R5bGUudHJhbnNmb3JtPSJub25lIn0sZi5zdHlsZS50cmFuc2Zvcm09Im5vbmUiLGh9cmV0dXJuIG51bGx9ZnVuY3Rpb24gclUodCxlLG4scil7dC5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iO2NvbnN0IGk9cih0LGUubGVuZ3RoKTtyZXR1cm4gZS5tYXAoKGEsbyk9Pntjb25zdCBzPW5ldyBRaSh7c3R5bGU6T2JqZWN0LmFzc2lnbih7ZDppW29dfSxPZCh0LG0wKSl9KTtyZXR1cm4gdVMoYSxzLGEsbil9KX1mdW5jdGlvbiBpVSh0LGUsbixyKXtjb25zdCBpPXIoZSx0Lmxlbmd0aCkse2ZpbGxPcGFjaXR5OmE9MSxzdHJva2VPcGFjaXR5Om89MSxvcGFjaXR5OnM9MX09ZS5zdHlsZSxjPVt7ZmlsbE9wYWNpdHk6MCxzdHJva2VPcGFjaXR5OjAsb3BhY2l0eTowfSx7ZmlsbE9wYWNpdHk6MCxzdHJva2VPcGFjaXR5OjAsb3BhY2l0eTowLG9mZnNldDouOTl9LHtmaWxsT3BhY2l0eTphLHN0cm9rZU9wYWNpdHk6byxvcGFjaXR5OnN9XSxsPWUuYW5pbWF0ZShjLG4pO3JldHVyblsuLi50Lm1hcCgoZixkKT0+e2NvbnN0IGg9bmV3IFFpKHtzdHlsZTp7ZDppW2RdLGZpbGw6ZS5zdHlsZS5maWxsfX0pO3JldHVybiB1UyhmLGYsaCxuKX0pLGxdfWNvbnN0ICROPXQ9PihlLG4scik9Pntjb25zdCBpPUpYKHQuc3BsaXQpLGE9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHIpLHQpLHtsZW5ndGg6b309ZSx7bGVuZ3RoOnN9PW47aWYobz09PTEmJnM9PT0xfHxvPjEmJnM+MSl7Y29uc3RbY109ZSxbbF09bjtyZXR1cm4gdVMoYyxjLGwsYSl9aWYobz09PTEmJnM+MSl7Y29uc3RbY109ZTtyZXR1cm4gclUoYyxuLGEsaSl9aWYobz4xJiZzPT09MSl7Y29uc3RbY109bjtyZXR1cm4gaVUoZSxjLGEsaSl9cmV0dXJuIG51bGx9OyROLnByb3BzPXt9O2NvbnN0IFpOPSh0LGUpPT4obixyLGkpPT57Y29uc3RbYV09bix7bWluOltvLHNdLGhhbGZFeHRlbnRzOmN9PWEuZ2V0TG9jYWxCb3VuZHMoKSxsPWNbMF0qMix1PWNbMV0qMixmPW5ldyBRaSh7c3R5bGU6e2Q6YE0ke299LCR7c31MJHtvK2x9LCR7c31MJHtvK2x9LCR7cyt1fUwke299LCR7cyt1fVpgfX0pO3JldHVybiBhLmFwcGVuZENoaWxkKGYpLGEuc3R5bGUuY2xpcFBhdGg9ZixjUyh0LGUpKFtmXSxyLGkpfTtaTi5wcm9wcz17fTtjb25zdCBZTj0odCxlKT0+KG4scixpKT0+e2NvbnN0W2FdPW4se21pbjpbbyxzXSxoYWxmRXh0ZW50czpjfT1hLmdldExvY2FsQm91bmRzKCksbD1jWzBdKjIsdT1jWzFdKjIsZj1uZXcgUWkoe3N0eWxlOntkOmBNJHtvfSwke3N9TCR7bytsfSwke3N9TCR7bytsfSwke3MrdX1MJHtvfSwke3MrdX1aYH19KTtyZXR1cm4gYS5hcHBlbmRDaGlsZChmKSxhLnN0eWxlLmNsaXBQYXRoPWYsTk4odCxlKShbZl0scixpKX07WU4ucHJvcHM9e307dmFyIGFVPWZ1bmN0aW9uKHQsZSl7dmFyIG49e307Zm9yKHZhciByIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscikmJmUuaW5kZXhPZihyKTwwJiYobltyXT10W3JdKTtpZih0IT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIGk9MCxyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCk7aTxyLmxlbmd0aDtpKyspZS5pbmRleE9mKHJbaV0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh0LHJbaV0pJiYobltyW2ldXT10W3JbaV1dKTtyZXR1cm4gbn07ZnVuY3Rpb24gb1UodCx7ZWxlbWVudHM6ZSxkYXR1bTpuLGdyb3VwS2V5OnI9Zj0+ZixsaW5rOmk9ITEsYmFja2dyb3VuZDphPSExLGRlbGF5Om89NjAsc2NhbGU6cyxjb29yZGluYXRlOmMsZW1pdHRlcjpsLHN0YXRlOnU9e319KXt2YXIgZjtjb25zdCBkPWUodCksaD1uZXcgU2V0KGQpLHY9ZHIoZCxyKSxnPVVwKGQsbiksW3ksYl09WFAoT2JqZWN0LmFzc2lnbih7ZWxlbWVudHM6ZCx2YWx1ZW9mOmcsbGluazppLGNvb3JkaW5hdGU6Y30sJHQodS5hY3RpdmUsImxpbmsiKSkpLFt4LF8sd109cVAoT2JqZWN0LmFzc2lnbih7ZG9jdW1lbnQ6dC5vd25lckRvY3VtZW50LHNjYWxlOnMsY29vcmRpbmF0ZTpjLGJhY2tncm91bmQ6YSx2YWx1ZW9mOmd9LCR0KHUuYWN0aXZlLCJiYWNrZ3JvdW5kIikpKSxPPW10KHUse2FjdGl2ZTpPYmplY3QuYXNzaWduKHt9LCgoZj11LmFjdGl2ZSk9PT1udWxsfHxmPT09dm9pZCAwP3ZvaWQgMDpmLm9mZnNldCkmJnt0cmFuc2Zvcm06KC4uLkcpPT57Y29uc3QgRj11LmFjdGl2ZS5vZmZzZXQoLi4uRyksWyxXXT1HO3JldHVybiBVUChkW1ddLEYsYyl9fSl9KSx7c2V0U3RhdGU6RSxyZW1vdmVTdGF0ZTpNLGhhc1N0YXRlOmt9PWxjKE8sZyk7bGV0IEE7Y29uc3QgUD1HPT57Y29uc3R7dGFyZ2V0OkYsbmF0aXZlRXZlbnQ6Vz0hMH09RztpZighaC5oYXMoRikpcmV0dXJuO0EmJmNsZWFyVGltZW91dChBKTtjb25zdCBYPXIoRiksUT12LmdldChYKSx0dD1uZXcgU2V0KFEpO2Zvcihjb25zdCBudCBvZiBkKXR0LmhhcyhudCk/ayhudCwiYWN0aXZlIil8fEUobnQsImFjdGl2ZSIpOihFKG50LCJpbmFjdGl2ZSIpLGIobnQpKSxudCE9PUYmJl8obnQpO3goRikseShRKSxXJiZsLmVtaXQoImVsZW1lbnQ6aGlnaGxpZ2h0Iix7bmF0aXZlRXZlbnQ6VyxkYXRhOntkYXRhOm4oRiksZ3JvdXA6US5tYXAobil9fSl9LEM9KCk9PntBJiZjbGVhclRpbWVvdXQoQSksQT1zZXRUaW1lb3V0KCgpPT57TigpLEE9bnVsbH0sbyl9LE49KEc9ITApPT57Zm9yKGNvbnN0IEYgb2YgZClNKEYsImFjdGl2ZSIsImluYWN0aXZlIiksXyhGKSxiKEYpO0cmJmwuZW1pdCgiZWxlbWVudDp1bmhpZ2hsaWdodCIse25hdGl2ZUV2ZW50Okd9KX0sTD1HPT57Y29uc3R7dGFyZ2V0OkZ9PUc7YSYmIXcoRil8fCFhJiYhaC5oYXMoRil8fChvPjA/QygpOk4oKSl9LFI9KCk9PntOKCl9O3QuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcm92ZXIiLFApLHQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcm91dCIsTCksdC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybGVhdmUiLFIpO2NvbnN0IEk9Rz0+e2NvbnN0e25hdGl2ZUV2ZW50OkZ9PUc7Rnx8TighMSl9LEQ9Rz0+e2NvbnN0e25hdGl2ZUV2ZW50OkZ9PUc7aWYoRilyZXR1cm47Y29uc3R7ZGF0YTpXfT1HLmRhdGEsWD1xdyhkLFcsbik7WCYmUCh7dGFyZ2V0OlgsbmF0aXZlRXZlbnQ6ITF9KX07cmV0dXJuIGwub24oImVsZW1lbnQ6aGlnaGxpZ2h0IixEKSxsLm9uKCJlbGVtZW50OnVuaGlnaGxpZ2h0IixJKSwoKT0+e3QucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcm92ZXIiLFApLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcm91dCIsTCksdC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVybGVhdmUiLFIpLGwub2ZmKCJlbGVtZW50OmhpZ2hsaWdodCIsRCksbC5vZmYoImVsZW1lbnQ6dW5oaWdobGlnaHQiLEkpO2Zvcihjb25zdCBHIG9mIGQpXyhHKSxiKEcpfX1mdW5jdGlvbiBiMSh0KXt2YXJ7ZGVsYXk6ZSxjcmVhdGVHcm91cDpuLGJhY2tncm91bmQ6cj0hMSxsaW5rOmk9ITF9PXQsYT1hVSh0LFsiZGVsYXkiLCJjcmVhdGVHcm91cCIsImJhY2tncm91bmQiLCJsaW5rIl0pO3JldHVybihvLHMsYyk9Pntjb25zdHtjb250YWluZXI6bCx2aWV3OnUsb3B0aW9uczpmfT1vLHtzY2FsZTpkLGNvb3JkaW5hdGU6aH09dSx2PXlzKGwpO3JldHVybiBvVSh2LE9iamVjdC5hc3NpZ24oe2VsZW1lbnRzOmNsLGRhdHVtOnd1KHUpLGdyb3VwS2V5Om4/bih1KTp2b2lkIDAsY29vcmRpbmF0ZTpoLHNjYWxlOmQsc3RhdGU6bGQoZixbWyJhY3RpdmUiLHI/e306e2xpbmVXaWR0aDoiMSIsc3Ryb2tlOiIjMDAwIn1dLCJpbmFjdGl2ZSJdKSxiYWNrZ3JvdW5kOnIsbGluazppLGRlbGF5OmUsZW1pdHRlcjpjfSxhKSl9fWIxLnByb3BzPXtyZWFwcGx5V2hlblVwZGF0ZTohMH07ZnVuY3Rpb24gSE4odCl7cmV0dXJuIGIxKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7Y3JlYXRlR3JvdXA6VXd9KSl9SE4ucHJvcHM9e3JlYXBwbHlXaGVuVXBkYXRlOiEwfTtmdW5jdGlvbiBWTih0KXtyZXR1cm4gYjEoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtjcmVhdGVHcm91cDpWUH0pKX1WTi5wcm9wcz17cmVhcHBseVdoZW5VcGRhdGU6ITB9O3ZhciBzVT1mdW5jdGlvbih0LGUpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiZlLmluZGV4T2Yocik8MCYmKG5bcl09dFtyXSk7aWYodCE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBpPTAscj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2k8ci5sZW5ndGg7aSsrKWUuaW5kZXhPZihyW2ldKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodCxyW2ldKSYmKG5bcltpXV09dFtyW2ldXSk7cmV0dXJuIG59O2Z1bmN0aW9uIGNVKHQse2VsZW1lbnRzOmUsZGF0dW06bixncm91cEtleTpyPWY9PmYsbGluazppPSExLHNpbmdsZTphPSExLGNvb3JkaW5hdGU6byxiYWNrZ3JvdW5kOnM9ITEsc2NhbGU6YyxlbWl0dGVyOmwsc3RhdGU6dT17fX0pe3ZhciBmO2NvbnN0IGQ9ZSh0KSxoPW5ldyBTZXQoZCksdj1kcihkLHIpLGc9VXAoZCxuKSxbeSxiXT1YUChPYmplY3QuYXNzaWduKHtsaW5rOmksZWxlbWVudHM6ZCx2YWx1ZW9mOmcsY29vcmRpbmF0ZTpvfSwkdCh1LnNlbGVjdGVkLCJsaW5rIikpKSxbeCxfXT1xUChPYmplY3QuYXNzaWduKHtkb2N1bWVudDp0Lm93bmVyRG9jdW1lbnQsYmFja2dyb3VuZDpzLGNvb3JkaW5hdGU6byxzY2FsZTpjLHZhbHVlb2Y6Z30sJHQodS5zZWxlY3RlZCwiYmFja2dyb3VuZCIpKSksdz1tdCh1LHtzZWxlY3RlZDpPYmplY3QuYXNzaWduKHt9LCgoZj11LnNlbGVjdGVkKT09PW51bGx8fGY9PT12b2lkIDA/dm9pZCAwOmYub2Zmc2V0KSYme3RyYW5zZm9ybTooLi4uUik9Pntjb25zdCBJPXUuc2VsZWN0ZWQub2Zmc2V0KC4uLlIpLFssRF09UjtyZXR1cm4gVVAoZFtEXSxJLG8pfX0pfSkse3NldFN0YXRlOk8scmVtb3ZlU3RhdGU6RSxoYXNTdGF0ZTpNfT1sYyh3LGcpLGs9KFI9ITApPT57Zm9yKGNvbnN0IEkgb2YgZClFKEksInNlbGVjdGVkIiwidW5zZWxlY3RlZCIpLGIoSSksXyhJKTtSJiZsLmVtaXQoImVsZW1lbnQ6dW5zZWxlY3QiLHtuYXRpdmVFdmVudDohMH0pfSxBPShSLEksRD0hMCk9PntpZihNKEksInNlbGVjdGVkIikpaygpO2Vsc2V7Y29uc3QgRz1yKEkpLEY9di5nZXQoRyksVz1uZXcgU2V0KEYpO2Zvcihjb25zdCBYIG9mIGQpVy5oYXMoWCk/TyhYLCJzZWxlY3RlZCIpOihPKFgsInVuc2VsZWN0ZWQiKSxiKFgpKSxYIT09SSYmXyhYKTtpZih5KEYpLHgoSSksIUQpcmV0dXJuO2wuZW1pdCgiZWxlbWVudDpzZWxlY3QiLE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxSKSx7bmF0aXZlRXZlbnQ6RCxkYXRhOntkYXRhOltuKEkpLC4uLkYubWFwKG4pXX19KSl9fSxQPShSLEksRD0hMCk9Pntjb25zdCBHPXIoSSksRj12LmdldChHKSxXPW5ldyBTZXQoRik7aWYoTShJLCJzZWxlY3RlZCIpKXtpZighZC5zb21lKFE9PiFXLmhhcyhRKSYmTShRLCJzZWxlY3RlZCIpKSlyZXR1cm4gaygpO2Zvcihjb25zdCBRIG9mIEYpTyhRLCJ1bnNlbGVjdGVkIiksYihRKSxfKFEpfWVsc2V7Y29uc3QgWD1GLnNvbWUoUT0+TShRLCJzZWxlY3RlZCIpKTtmb3IoY29uc3QgUSBvZiBkKVcuaGFzKFEpP08oUSwic2VsZWN0ZWQiKTpNKFEsInNlbGVjdGVkIil8fE8oUSwidW5zZWxlY3RlZCIpOyFYJiZpJiZ5KEYpLHgoSSl9RCYmbC5lbWl0KCJlbGVtZW50OnNlbGVjdCIsT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LFIpLHtuYXRpdmVFdmVudDpELGRhdGE6e2RhdGE6ZC5maWx0ZXIoWD0+TShYLCJzZWxlY3RlZCIpKS5tYXAobil9fSkpfSxDPVI9Pntjb25zdHt0YXJnZXQ6SSxuYXRpdmVFdmVudDpEPSEwfT1SO3JldHVybiBoLmhhcyhJKT9hP0EoUixJLEQpOlAoUixJLEQpOmsoKX07dC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsQyk7Y29uc3QgTj1SPT57Y29uc3R7bmF0aXZlRXZlbnQ6SSxkYXRhOkR9PVI7aWYoSSlyZXR1cm47Y29uc3QgRz1hP0QuZGF0YS5zbGljZSgwLDEpOkQuZGF0YTtmb3IoY29uc3QgRiBvZiBHKXtjb25zdCBXPXF3KGQsRixuKTtDKHt0YXJnZXQ6VyxuYXRpdmVFdmVudDohMX0pfX0sTD0oKT0+e2soITEpfTtyZXR1cm4gbC5vbigiZWxlbWVudDpzZWxlY3QiLE4pLGwub24oImVsZW1lbnQ6dW5zZWxlY3QiLEwpLCgpPT57Zm9yKGNvbnN0IFIgb2YgZCliKFIpO3QucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLEMpLGwub2ZmKCJlbGVtZW50OnNlbGVjdCIsTiksbC5vZmYoImVsZW1lbnQ6dW5zZWxlY3QiLEwpfX1mdW5jdGlvbiB4MSh0KXt2YXJ7Y3JlYXRlR3JvdXA6ZSxiYWNrZ3JvdW5kOm49ITEsbGluazpyPSExfT10LGk9c1UodCxbImNyZWF0ZUdyb3VwIiwiYmFja2dyb3VuZCIsImxpbmsiXSk7cmV0dXJuKGEsbyxzKT0+e2NvbnN0e2NvbnRhaW5lcjpjLHZpZXc6bCxvcHRpb25zOnV9PWEse2Nvb3JkaW5hdGU6ZixzY2FsZTpkfT1sLGg9eXMoYyk7cmV0dXJuIGNVKGgsT2JqZWN0LmFzc2lnbih7ZWxlbWVudHM6Y2wsZGF0dW06d3UobCksZ3JvdXBLZXk6ZT9lKGwpOnZvaWQgMCxjb29yZGluYXRlOmYsc2NhbGU6ZCxzdGF0ZTpsZCh1LFtbInNlbGVjdGVkIixuP3t9OntsaW5lV2lkdGg6IjEiLHN0cm9rZToiIzAwMCJ9XSwidW5zZWxlY3RlZCJdKSxiYWNrZ3JvdW5kOm4sbGluazpyLGVtaXR0ZXI6c30saSkpfX14MS5wcm9wcz17cmVhcHBseVdoZW5VcGRhdGU6ITB9O2Z1bmN0aW9uIFhOKHQpe3JldHVybiB4MShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2NyZWF0ZUdyb3VwOlV3fSkpfVhOLnByb3BzPXtyZWFwcGx5V2hlblVwZGF0ZTohMH07ZnVuY3Rpb24gVU4odCl7cmV0dXJuIHgxKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7Y3JlYXRlR3JvdXA6VlB9KSl9VU4ucHJvcHM9e3JlYXBwbHlXaGVuVXBkYXRlOiEwfTt2YXIgTnU9ZnVuY3Rpb24odCxlLG4pe3ZhciByLGksYSxvLHM9MDtufHwobj17fSk7dmFyIGM9ZnVuY3Rpb24oKXtzPW4ubGVhZGluZz09PSExPzA6RGF0ZS5ub3coKSxyPW51bGwsbz10LmFwcGx5KGksYSkscnx8KGk9YT1udWxsKX0sbD1mdW5jdGlvbigpe3ZhciB1PURhdGUubm93KCk7IXMmJm4ubGVhZGluZz09PSExJiYocz11KTt2YXIgZj1lLSh1LXMpO3JldHVybiBpPXRoaXMsYT1hcmd1bWVudHMsZjw9MHx8Zj5lPyhyJiYoY2xlYXJUaW1lb3V0KHIpLHI9bnVsbCkscz11LG89dC5hcHBseShpLGEpLHJ8fChpPWE9bnVsbCkpOiFyJiZuLnRyYWlsaW5nIT09ITEmJihyPXNldFRpbWVvdXQoYyxmKSksb307cmV0dXJuIGwuY2FuY2VsPWZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHIpLHM9MCxyPWk9YT1udWxsfSxsfTtmdW5jdGlvbiBsVSh0KXtjb25zdHtjb29yZGluYXRlOmU9e319PXQse3RyYW5zZm9ybTpuPVtdfT1lLHI9bi5maW5kKGE9PmEudHlwZT09PSJmaXNoZXllIik7aWYocilyZXR1cm4gcjtjb25zdCBpPXt0eXBlOiJmaXNoZXllIn07cmV0dXJuIG4ucHVzaChpKSxlLnRyYW5zZm9ybT1uLHQuY29vcmRpbmF0ZT1lLGl9ZnVuY3Rpb24gdVUoe3dhaXQ6dD0zMCxsZWFkaW5nOmUsdHJhaWxpbmc6bj0hMX0pe3JldHVybiByPT57Y29uc3R7b3B0aW9uczppLHVwZGF0ZTphLHNldFN0YXRlOm8sY29udGFpbmVyOnN9PXIsYz15cyhzKSxsPU51KHU9Pntjb25zdCBmPVhwKGMsdSk7aWYoIWYpe28oImZpc2hleWUiKSxhKCk7cmV0dXJufW8oImZpc2hleWUiLGQ9Pntjb25zdCBoPW10KHt9LGQse2ludGVyYWN0aW9uOnt0b29sdGlwOntwcmVzZXJ2ZTohMH19fSk7Zm9yKGNvbnN0IGIgb2YgaC5tYXJrcyliLmFuaW1hdGU9ITE7Y29uc3RbdixnXT1mLHk9bFUoaCk7cmV0dXJuIHkuZm9jdXNYPXYseS5mb2N1c1k9Zyx5LnZpc3VhbD0hMCxofSksYSgpfSx0LHtsZWFkaW5nOmUsdHJhaWxpbmc6bn0pO3JldHVybiBjLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJlbnRlciIsbCksYy5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsbCksYy5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybGVhdmUiLGwpLCgpPT57Yy5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVyZW50ZXIiLGwpLGMucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLGwpLGMucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcmxlYXZlIixsKX19fXZhciBmVT1mdW5jdGlvbih0LGUsbixyKXtmdW5jdGlvbiBpKGEpe3JldHVybiBhIGluc3RhbmNlb2Ygbj9hOm5ldyBuKGZ1bmN0aW9uKG8pe28oYSl9KX1yZXR1cm4gbmV3KG58fChuPVByb21pc2UpKShmdW5jdGlvbihhLG8pe2Z1bmN0aW9uIHModSl7dHJ5e2woci5uZXh0KHUpKX1jYXRjaChmKXtvKGYpfX1mdW5jdGlvbiBjKHUpe3RyeXtsKHIudGhyb3codSkpfWNhdGNoKGYpe28oZil9fWZ1bmN0aW9uIGwodSl7dS5kb25lP2EodS52YWx1ZSk6aSh1LnZhbHVlKS50aGVuKHMsYyl9bCgocj1yLmFwcGx5KHQsZXx8W10pKS5uZXh0KCkpfSl9LGRVPWZ1bmN0aW9uKHQsZSl7dmFyIG49e307Zm9yKHZhciByIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscikmJmUuaW5kZXhPZihyKTwwJiYobltyXT10W3JdKTtpZih0IT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIGk9MCxyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCk7aTxyLmxlbmd0aDtpKyspZS5pbmRleE9mKHJbaV0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh0LHJbaV0pJiYobltyW2ldXT10W3JbaV1dKTtyZXR1cm4gbn07ZnVuY3Rpb24gaFUodCl7Y29uc3R7dHJhbnNmb3JtOmU9W119PXQsbj1lLmZpbmQoaT0+aS50eXBlPT09Im5vcm1hbGl6ZVkiKTtpZihuKXJldHVybiBuO2NvbnN0IHI9e3R5cGU6Im5vcm1hbGl6ZVkifTtyZXR1cm4gZS5wdXNoKHIpLHQudHJhbnNmb3JtPWUscn1mdW5jdGlvbiBwVSh0LGUsbil7Y29uc3Rbcl09QXJyYXkuZnJvbSh0LmVudHJpZXMoKSkuZmlsdGVyKChbaV0pPT5pLnR5cGU9PT1lKS5tYXAoKFtpXSk9Pntjb25zdHtlbmNvZGU6YX09aSxvPXM9Pntjb25zdCBjPWFbc107cmV0dXJuW3MsYz9jLnZhbHVlOnZvaWQgMF19O3JldHVybiBPYmplY3QuZnJvbUVudHJpZXMobi5tYXAobykpfSk7cmV0dXJuIHJ9ZnVuY3Rpb24gcU4odCl7dmFye3dhaXQ6ZT0yMCxsZWFkaW5nOm4sdHJhaWxpbmc6cj0hMSxsYWJlbEZvcm1hdHRlcjppPW89PmAke299YH09dCxhPWRVKHQsWyJ3YWl0IiwibGVhZGluZyIsInRyYWlsaW5nIiwibGFiZWxGb3JtYXR0ZXIiXSk7cmV0dXJuIG89Pntjb25zdHt2aWV3OnMsY29udGFpbmVyOmMsdXBkYXRlOmwsc2V0U3RhdGU6dX09byx7bWFya1N0YXRlOmYsc2NhbGU6ZCxjb29yZGluYXRlOmh9PXMsdj1wVShmLCJsaW5lIixbIngiLCJ5Iiwic2VyaWVzIl0pO2lmKCF2KXJldHVybjtjb25zdHt5OmcseDp5LHNlcmllczpiPVtdfT12LHg9Zy5tYXAoKEcsRik9PkYpLF89V28oeC5tYXAoRz0+eVtHXSkpLHc9eXMoYyksTz1jLmdldEVsZW1lbnRzQnlDbGFzc05hbWUobWEpLEU9Yy5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFdpKSxrPWRyKEUsRz0+Ry5fX2RhdGFfXy5rZXkuc3BsaXQoIi0iKVswXSksQT1uZXcgc3Uoe3N0eWxlOk9iamVjdC5hc3NpZ24oe3gxOjAseTE6MCx4MjowLHkyOncuZ2V0QXR0cmlidXRlKCJoZWlnaHQiKSxzdHJva2U6ImJsYWNrIixsaW5lV2lkdGg6MX0sJHQoYSwicnVsZSIpKX0pLFA9bmV3IHBvKHtzdHlsZTpPYmplY3QuYXNzaWduKHt4OjAseTp3LmdldEF0dHJpYnV0ZSgiaGVpZ2h0IiksdGV4dDoiIixmb250U2l6ZToxMH0sJHQoYSwibGFiZWwiKSl9KTtBLmFwcGVuZChQKSx3LmFwcGVuZENoaWxkKEEpO2NvbnN0IEM9KEcsRixXKT0+e2NvbnN0W1hdPUcuaW52ZXJ0KFcpLFE9Ri5pbnZlcnQoWCk7cmV0dXJuIF9bcXooXyxRKV19LE49KEcsRik9PntBLnNldEF0dHJpYnV0ZSgieDEiLEdbMF0pLEEuc2V0QXR0cmlidXRlKCJ4MiIsR1swXSksUC5zZXRBdHRyaWJ1dGUoInRleHQiLGkoRikpfTtsZXQgTDtjb25zdCBSPUc9PmZVKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtjb25zdHt4OkZ9PWQsVz1DKGgsRixHKTtOKEcsVyksdSgiY2hhcnRJbmRleCIsUT0+e2NvbnN0IHR0PW10KHt9LFEpLG50PXR0Lm1hcmtzLmZpbmQoZ3Q9Pmd0LnR5cGU9PT0ibGluZSIpLGx0PURuKFVfKHgsZ3Q9PkRuKGd0LEJ0PT4rZ1tCdF0pL1phKGd0LEJ0PT4rZ1tCdF0pLGd0PT5iW2d0XSkudmFsdWVzKCkpLHd0PVsxL2x0LGx0XTttdChudCx7c2NhbGU6e3k6e2RvbWFpbjp3dH19fSk7Y29uc3QgeXQ9aFUobnQpO3l0Lmdyb3VwQnk9ImNvbG9yIix5dC5iYXNpcz0oZ3QsQnQpPT57Y29uc3QgTHQ9Z3Rbb2woSXQ9PnlbK0l0XSkuY2VudGVyKGd0LFcpXTtyZXR1cm4gQnRbTHRdfTtmb3IoY29uc3QgZ3Qgb2YgdHQubWFya3MpZ3QuYW5pbWF0ZT0hMTtyZXR1cm4gdHR9KSxMPSh5aWVsZCBsKCJjaGFydEluZGV4IikpLnZpZXd9KSxJPUc9Pntjb25zdHtzY2FsZTpGLGNvb3JkaW5hdGU6V309TCx7eDpYLHk6UX09Rix0dD1DKFcsWCxHKTtOKEcsdHQpO2Zvcihjb25zdCBudCBvZiBPKXtjb25zdHtzZXJpZXNJbmRleDpodCxrZXk6bHR9PW50Ll9fZGF0YV9fLHd0PWh0W29sKFF0PT55WytRdF0pLmNlbnRlcihodCx0dCldLHl0PVswLFEubWFwKDEpXSxndD1bMCxRLm1hcChnW3d0XS9nW2h0WzBdXSldLFssQnRdPVcubWFwKHl0KSxbLEx0XT1XLm1hcChndCksSXQ9QnQtTHQ7bnQuc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLGB0cmFuc2xhdGUoMCwgJHtJdH0pYCk7Y29uc3QganQ9ay5nZXQobHQpfHxbXTtmb3IoY29uc3QgUXQgb2YganQpUXQuc2V0QXR0cmlidXRlKCJkeSIsSXQpfX0sRD1OdShHPT57Y29uc3QgRj1YcCh3LEcpO0YmJkkoRil9LGUse2xlYWRpbmc6bix0cmFpbGluZzpyfSk7cmV0dXJuIFIoWzAsMF0pLHcuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmVudGVyIixEKSx3LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJtb3ZlIixEKSx3LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJsZWF2ZSIsRCksKCk9PntBLnJlbW92ZSgpLHcucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcmVudGVyIixEKSx3LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJtb3ZlIixEKSx3LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJsZWF2ZSIsRCl9fX1xTi5wcm9wcz17cmVhcHBseVdoZW5VcGRhdGU6ITB9O2Z1bmN0aW9uIGIwKHQsZSl7bGV0IG4scj0tMSxpPS0xO2lmKGU9PT12b2lkIDApZm9yKGNvbnN0IGEgb2YgdCkrK2ksYSE9bnVsbCYmKG4+YXx8bj09PXZvaWQgMCYmYT49YSkmJihuPWEscj1pKTtlbHNlIGZvcihsZXQgYSBvZiB0KShhPWUoYSwrK2ksdCkpIT1udWxsJiYobj5hfHxuPT09dm9pZCAwJiZhPj1hKSYmKG49YSxyPWkpO3JldHVybiByfWZ1bmN0aW9uIHgwKHQsZSl7bGV0IG49MCxyPTA7aWYoZT09PXZvaWQgMClmb3IobGV0IGkgb2YgdClpIT1udWxsJiYoaT0raSk+PWkmJigrK24scis9aSk7ZWxzZXtsZXQgaT0tMTtmb3IobGV0IGEgb2YgdCkoYT1lKGEsKytpLHQpKSE9bnVsbCYmKGE9K2EpPj1hJiYoKytuLHIrPWEpfWlmKG4pcmV0dXJuIHIvbn1mdW5jdGlvbiBLTih0KXt2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtlLmlubmVySFRNTD10O3ZhciBuPWUuY2hpbGROb2Rlc1swXTtyZXR1cm4gbiYmZS5jb250YWlucyhuKSYmZS5yZW1vdmVDaGlsZChuKSxufWZ1bmN0aW9uIHZVKHQsZSl7cmV0dXJuIXR8fCFlP3Q6dC5yZXBsYWNlKC9cXD9ceyhbXnt9XSspXH0vZyxmdW5jdGlvbihuLHIpe3JldHVybiBuLmNoYXJBdCgwKT09PSJcXCI/bi5zbGljZSgxKTplW3JdPT09dm9pZCAwPyIiOmVbcl19KX12YXIgZ1U9dlUsUU49ZnVuY3Rpb24odCxlKXtpZihlPT1udWxsKXt0LmlubmVySFRNTD0iIjtyZXR1cm59dC5yZXBsYWNlQ2hpbGRyZW4/QXJyYXkuaXNBcnJheShlKT90LnJlcGxhY2VDaGlsZHJlbi5hcHBseSh0LHRlKFtdLFYoZSksITEpKTp0LnJlcGxhY2VDaGlsZHJlbihlKToodC5pbm5lckhUTUw9IiIsQXJyYXkuaXNBcnJheShlKT9lLmZvckVhY2goZnVuY3Rpb24obil7cmV0dXJuIHQuYXBwZW5kQ2hpbGQobil9KTp0LmFwcGVuZENoaWxkKGUpKX07ZnVuY3Rpb24gZlModCl7cmV0dXJuIHQ9PT12b2lkIDAmJih0PSIiKSx7Q09OVEFJTkVSOiIiLmNvbmNhdCh0LCJ0b29sdGlwIiksVElUTEU6IiIuY29uY2F0KHQsInRvb2x0aXAtdGl0bGUiKSxMSVNUOiIiLmNvbmNhdCh0LCJ0b29sdGlwLWxpc3QiKSxMSVNUX0lURU06IiIuY29uY2F0KHQsInRvb2x0aXAtbGlzdC1pdGVtIiksTkFNRToiIi5jb25jYXQodCwidG9vbHRpcC1saXN0LWl0ZW0tbmFtZSIpLE1BUktFUjoiIi5jb25jYXQodCwidG9vbHRpcC1saXN0LWl0ZW0tbWFya2VyIiksTkFNRV9MQUJFTDoiIi5jb25jYXQodCwidG9vbHRpcC1saXN0LWl0ZW0tbmFtZS1sYWJlbCIpLFZBTFVFOiIiLmNvbmNhdCh0LCJ0b29sdGlwLWxpc3QtaXRlbS12YWx1ZSIpLENST1NTSEFJUl9YOiIiLmNvbmNhdCh0LCJ0b29sdGlwLWNyb3NzaGFpci14IiksQ1JPU1NIQUlSX1k6IiIuY29uY2F0KHQsInRvb2x0aXAtY3Jvc3NoYWlyLXkiKX19dmFyIEpOPXtvdmVyZmxvdzoiaGlkZGVuIiwid2hpdGUtc3BhY2UiOiJub3dyYXAiLCJ0ZXh0LW92ZXJmbG93IjoiZWxsaXBzaXMifTtmdW5jdGlvbiB5VSh0KXt2YXIgZTt0PT09dm9pZCAwJiYodD0iIik7dmFyIG49ZlModCk7cmV0dXJuIGU9e30sZVsiLiIuY29uY2F0KG4uQ09OVEFJTkVSKV09e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdmlzaWJpbGl0eToidmlzaWJsZSIsInotaW5kZXgiOjgsdHJhbnNpdGlvbjoidmlzaWJpbGl0eSAwLjJzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKSwgbGVmdCAwLjRzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKSwgdG9wIDAuNHMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpIiwiYmFja2dyb3VuZC1jb2xvciI6InJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NikiLCJib3gtc2hhZG93IjoiMCA2cHggMTJweCAwIHJnYmEoMCwgMCwgMCwgMC4xMikiLCJib3JkZXItcmFkaXVzIjoiNHB4Iixjb2xvcjoicmdiYSgwLCAwLCAwLCAwLjY1KSIsImZvbnQtc2l6ZSI6IjEycHgiLCJsaW5lLWhlaWdodCI6IjIwcHgiLHBhZGRpbmc6IjEycHgiLCJtaW4td2lkdGgiOiIxMjBweCIsIm1heC13aWR0aCI6IjM2MHB4IiwiZm9udC1mYW1pbHkiOiJSb2JvdG8tUmVndWxhciJ9LGVbIi4iLmNvbmNhdChuLlRJVExFKV09e2NvbG9yOiJyZ2JhKDAsIDAsIDAsIDAuNDUpIn0sZVsiLiIuY29uY2F0KG4uTElTVCldPXttYXJnaW46IjBweCIsImxpc3Qtc3R5bGUtdHlwZSI6Im5vbmUiLHBhZGRpbmc6IjBweCJ9LGVbIi4iLmNvbmNhdChuLkxJU1RfSVRFTSldPXsibGlzdC1zdHlsZS10eXBlIjoibm9uZSIsZGlzcGxheToiZmxleCIsImxpbmUtaGVpZ2h0IjoiMmVtIiwiYWxpZ24taXRlbXMiOiJjZW50ZXIiLCJqdXN0aWZ5LWNvbnRlbnQiOiJzcGFjZS1iZXR3ZWVuIiwid2hpdGUtc3BhY2UiOiJub3dyYXAifSxlWyIuIi5jb25jYXQobi5NQVJLRVIpXT17d2lkdGg6IjhweCIsaGVpZ2h0OiI4cHgiLCJib3JkZXItcmFkaXVzIjoiNTAlIixkaXNwbGF5OiJpbmxpbmUtYmxvY2siLCJtYXJnaW4tcmlnaHQiOiI0cHgifSxlWyIuIi5jb25jYXQobi5OQU1FKV09e2Rpc3BsYXk6ImZsZXgiLCJhbGlnbi1pdGVtcyI6ImNlbnRlciIsIm1heC13aWR0aCI6IjIxNnB4In0sZVsiLiIuY29uY2F0KG4uTkFNRV9MQUJFTCldPUF0KHtmbGV4OjF9LEpOKSxlWyIuIi5jb25jYXQobi5WQUxVRSldPUF0KHtkaXNwbGF5OiJpbmxpbmUtYmxvY2siLGZsb2F0OiJyaWdodCIsZmxleDoxLCJ0ZXh0LWFsaWduIjoicmlnaHQiLCJtaW4td2lkdGgiOiIyOHB4IiwibWFyZ2luLWxlZnQiOiIzMHB4Iixjb2xvcjoicmdiYSgwLCAwLCAwLCAwLjg1KSJ9LEpOKSxlWyIuIi5jb25jYXQobi5DUk9TU0hBSVJfWCldPXtwb3NpdGlvbjoiYWJzb2x1dGUiLHdpZHRoOiIxcHgiLCJiYWNrZ3JvdW5kLWNvbG9yIjoicmdiYSgwLCAwLCAwLCAwLjI1KSJ9LGVbIi4iLmNvbmNhdChuLkNST1NTSEFJUl9ZKV09e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsaGVpZ2h0OiIxcHgiLCJiYWNrZ3JvdW5kLWNvbG9yIjoicmdiYSgwLCAwLCAwLCAwLjI1KSJ9LGV9dmFyIG1VPWZ1bmN0aW9uKHQpe2FyKGUsdCk7ZnVuY3Rpb24gZShuKXt2YXIgcj10aGlzLGksYSxvPShhPShpPW4uc3R5bGUpPT09bnVsbHx8aT09PXZvaWQgMD92b2lkIDA6aS50ZW1wbGF0ZSk9PT1udWxsfHxhPT09dm9pZCAwP3ZvaWQgMDphLnByZWZpeENscyxzPWZTKG8pO3JldHVybiByPXQuY2FsbCh0aGlzLG4se2RhdGE6W10seDowLHk6MCx2aXNpYmlsaXR5OiJ2aXNpYmxlIix0aXRsZToiIixwb3NpdGlvbjoiYm90dG9tLXJpZ2h0IixvZmZzZXQ6WzUsNV0sZW50ZXJhYmxlOiExLGNvbnRhaW5lcjp7eDowLHk6MH0sYm91bmRpbmc6bnVsbCx0ZW1wbGF0ZTp7cHJlZml4Q2xzOiIiLGNvbnRhaW5lcjonPGRpdiBjbGFzcz0iJy5jb25jYXQocy5DT05UQUlORVIsJyI+PC9kaXY+JyksdGl0bGU6JzxkaXYgY2xhc3M9IicuY29uY2F0KHMuVElUTEUsJyI+PC9kaXY+JyksaXRlbTonPGxpIGNsYXNzPSInLmNvbmNhdChzLkxJU1RfSVRFTSxgIiBkYXRhLWluZGV4PXtpbmRleH0+CisgICAgICAgIDxzcGFuIGNsYXNzPSJgKS5jb25jYXQocy5OQU1FLGAiPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJgKS5jb25jYXQocy5NQVJLRVIsYCIgc3R5bGU9ImJhY2tncm91bmQ6e2NvbG9yfSI+PC9zcGFuPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJgKS5jb25jYXQocy5OQU1FX0xBQkVMLGAiIHRpdGxlPSJ7bmFtZX0iPntuYW1lfTwvc3Bhbj4KKyAgICAgICAgPC9zcGFuPgorICAgICAgICA8c3BhbiBjbGFzcz0iYCkuY29uY2F0KHMuVkFMVUUsYCIgdGl0bGU9Int2YWx1ZX0iPnt2YWx1ZX08L3NwYW4+CisgICAgICA8L2xpPmApfSxzdHlsZTp5VShvKX0pfHx0aGlzLHIudGltZXN0YW1wPS0xLHIucHJldkN1c3RvbUNvbnRlbnRLZXk9ci5hdHRyaWJ1dGVzLmNvbnRlbnRLZXksci5pbml0U2hhcGUoKSxyLnJlbmRlcihyLmF0dHJpYnV0ZXMscikscn1yZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJIVE1MVG9vbHRpcEVsZW1lbnQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbGVtZW50fSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLmdldENvbnRhaW5lcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmVsZW1lbnR9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwiZWxlbWVudFNpemUiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgbj10aGlzLmVsZW1lbnQub2Zmc2V0V2lkdGgscj10aGlzLmVsZW1lbnQub2Zmc2V0SGVpZ2h0O3JldHVybnt3aWR0aDpuLGhlaWdodDpyfX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsIkhUTUxUb29sdGlwSXRlbXNFbGVtZW50cyIse2dldDpmdW5jdGlvbigpe3ZhciBuPXRoaXMuYXR0cmlidXRlcyxyPW4uZGF0YSxpPW4udGVtcGxhdGU7cmV0dXJuIHIubWFwKGZ1bmN0aW9uKGEsbyl7dmFyIHM9YS5uYW1lLGM9cz09PXZvaWQgMD8iIjpzLGw9YS5jb2xvcix1PWw9PT12b2lkIDA/ImJsYWNrIjpsLGY9YS5pbmRleCxkPSRyKGEsWyJuYW1lIiwiY29sb3IiLCJpbmRleCJdKSxoPUF0KHtuYW1lOmMsY29sb3I6dSxpbmRleDpmIT1udWxsP2Y6b30sZCk7cmV0dXJuIEtOKGdVKGkuaXRlbSxoKSl9KX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24obixyKXt0aGlzLnJlbmRlckhUTUxUb29sdGlwRWxlbWVudCgpLHRoaXMudXBkYXRlUG9zaXRpb24oKX0sZS5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3ZhciBuOyhuPXRoaXMuZWxlbWVudCk9PT1udWxsfHxuPT09dm9pZCAwfHxuLnJlbW92ZSgpLHQucHJvdG90eXBlLmRlc3Ryb3kuY2FsbCh0aGlzKX0sZS5wcm90b3R5cGUuc2hvdz1mdW5jdGlvbihuLHIpe3ZhciBpPXRoaXM7aWYobiE9PXZvaWQgMCYmciE9PXZvaWQgMCl7dmFyIGE9dGhpcy5lbGVtZW50LnN0eWxlLnZpc2liaWxpdHk9PT0iaGlkZGVuIixvPWZ1bmN0aW9uKCl7aS5hdHRyaWJ1dGVzLng9biE9bnVsbD9uOmkuYXR0cmlidXRlcy54LGkuYXR0cmlidXRlcy55PXIhPW51bGw/cjppLmF0dHJpYnV0ZXMueSxpLnVwZGF0ZVBvc2l0aW9uKCl9O2E/dGhpcy5jbG9zZVRyYW5zaXRpb24obyk6bygpfXRoaXMuZWxlbWVudC5zdHlsZS52aXNpYmlsaXR5PSJ2aXNpYmxlIn0sZS5wcm90b3R5cGUuaGlkZT1mdW5jdGlvbihuLHIpe249PT12b2lkIDAmJihuPTApLHI9PT12b2lkIDAmJihyPTApO3ZhciBpPXRoaXMuYXR0cmlidXRlcy5lbnRlcmFibGU7aSYmdGhpcy5pc0N1cnNvckVudGVyZWQobixyKXx8KHRoaXMuZWxlbWVudC5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iKX0sZS5wcm90b3R5cGUuaW5pdFNoYXBlPWZ1bmN0aW9uKCl7dmFyIG49dGhpcy5hdHRyaWJ1dGVzLnRlbXBsYXRlO3RoaXMuZWxlbWVudD1LTihuLmNvbnRhaW5lciksdGhpcy5pZCYmdGhpcy5lbGVtZW50LnNldEF0dHJpYnV0ZSgiaWQiLHRoaXMuaWQpfSxlLnByb3RvdHlwZS5yZW5kZXJDdXN0b21Db250ZW50PWZ1bmN0aW9uKCl7aWYoISh0aGlzLnByZXZDdXN0b21Db250ZW50S2V5IT09dm9pZCAwJiZ0aGlzLnByZXZDdXN0b21Db250ZW50S2V5PT09dGhpcy5hdHRyaWJ1dGVzLmNvbnRlbnRLZXkpKXt0aGlzLnByZXZDdXN0b21Db250ZW50S2V5PXRoaXMuYXR0cmlidXRlcy5jb250ZW50S2V5O3ZhciBuPXRoaXMuYXR0cmlidXRlcy5jb250ZW50O24mJih0eXBlb2Ygbj09InN0cmluZyI/dGhpcy5lbGVtZW50LmlubmVySFRNTD1uOlFOKHRoaXMuZWxlbWVudCxuKSl9fSxlLnByb3RvdHlwZS5yZW5kZXJIVE1MVG9vbHRpcEVsZW1lbnQ9ZnVuY3Rpb24oKXt2YXIgbixyLGk9dGhpcy5hdHRyaWJ1dGVzLGE9aS50ZW1wbGF0ZSxvPWkudGl0bGUscz1pLmVudGVyYWJsZSxjPWkuc3R5bGUsbD1pLmNvbnRlbnQsdT1mUyhhLnByZWZpeENscyksZj10aGlzLmVsZW1lbnQ7aWYodGhpcy5lbGVtZW50LnN0eWxlLnBvaW50ZXJFdmVudHM9cz8iYXV0byI6Im5vbmUiLGwpdGhpcy5yZW5kZXJDdXN0b21Db250ZW50KCk7ZWxzZXtvPyhmLmlubmVySFRNTD1hLnRpdGxlLGYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSh1LlRJVExFKVswXS5pbm5lckhUTUw9byk6KHI9KG49Zi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKHUuVElUTEUpKT09PW51bGx8fG49PT12b2lkIDA/dm9pZCAwOm5bMF0pPT09bnVsbHx8cj09PXZvaWQgMHx8ci5yZW1vdmUoKTt2YXIgZD10aGlzLkhUTUxUb29sdGlwSXRlbXNFbGVtZW50cyxoPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInVsIik7aC5jbGFzc05hbWU9dS5MSVNULFFOKGgsZCk7dmFyIHY9dGhpcy5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoIi4iLmNvbmNhdCh1LkxJU1QpKTt2P3YucmVwbGFjZVdpdGgoaCk6Zi5hcHBlbmRDaGlsZChoKX1nOShmLGMpfSxlLnByb3RvdHlwZS5nZXRSZWxhdGl2ZU9mZnNldEZyb21DdXJzb3I9ZnVuY3Rpb24obil7dmFyIHI9dGhpcy5hdHRyaWJ1dGVzLGk9ci5wb3NpdGlvbixhPXIub2Zmc2V0LG89bnx8aSxzPW8uc3BsaXQoIi0iKSxjPXtsZWZ0OlstMSwwXSxyaWdodDpbMSwwXSx0b3A6WzAsLTFdLGJvdHRvbTpbMCwxXX0sbD10aGlzLmVsZW1lbnRTaXplLHU9bC53aWR0aCxmPWwuaGVpZ2h0LGQ9Wy11LzIsLWYvMl07cmV0dXJuIHMuZm9yRWFjaChmdW5jdGlvbihoKXt2YXIgdj1WKGQsMiksZz12WzBdLHk9dlsxXSxiPVYoY1toXSwyKSx4PWJbMF0sXz1iWzFdO2Q9W2crKHUvMithWzBdKSp4LHkrKGYvMithWzFdKSpfXX0pLGR9LGUucHJvdG90eXBlLnNldE9mZnNldFBvc2l0aW9uPWZ1bmN0aW9uKG4pe3ZhciByPVYobiwyKSxpPXJbMF0sYT1yWzFdLG89dGhpcy5hdHRyaWJ1dGVzLHM9by54LGM9cz09PXZvaWQgMD8wOnMsbD1vLnksdT1sPT09dm9pZCAwPzA6bCxmPW8uY29udGFpbmVyLGQ9Zi54LGg9Zi55O3RoaXMuZWxlbWVudC5zdHlsZS5sZWZ0PSIiLmNvbmNhdCgrYytkK2ksInB4IiksdGhpcy5lbGVtZW50LnN0eWxlLnRvcD0iIi5jb25jYXQoK3UraCthLCJweCIpfSxlLnByb3RvdHlwZS51cGRhdGVQb3NpdGlvbj1mdW5jdGlvbigpe3ZhciBuPXRoaXMuYXR0cmlidXRlcy5zaG93RGVsYXkscj1uPT09dm9pZCAwPzYwOm4saT1EYXRlLm5vdygpO3RoaXMudGltZXN0YW1wPjAmJmktdGhpcy50aW1lc3RhbXA8cnx8KHRoaXMudGltZXN0YW1wPWksdGhpcy5zZXRPZmZzZXRQb3NpdGlvbih0aGlzLmF1dG9Qb3NpdGlvbih0aGlzLmdldFJlbGF0aXZlT2Zmc2V0RnJvbUN1cnNvcigpKSkpfSxlLnByb3RvdHlwZS5hdXRvUG9zaXRpb249ZnVuY3Rpb24obil7dmFyIHI9VihuLDIpLGk9clswXSxhPXJbMV0sbz10aGlzLmF0dHJpYnV0ZXMscz1vLngsYz1vLnksbD1vLmJvdW5kaW5nLHU9by5wb3NpdGlvbjtpZighbClyZXR1cm5baSxhXTt2YXIgZj10aGlzLmVsZW1lbnQsZD1mLm9mZnNldFdpZHRoLGg9Zi5vZmZzZXRIZWlnaHQsdj1WKFsrcytpLCtjK2FdLDIpLGc9dlswXSx5PXZbMV0sYj17bGVmdDoicmlnaHQiLHJpZ2h0OiJsZWZ0Iix0b3A6ImJvdHRvbSIsYm90dG9tOiJ0b3AifSx4PWwueCxfPWwueSx3PWwud2lkdGgsTz1sLmhlaWdodCxFPXtsZWZ0Omc8eCxyaWdodDpnK2Q+eCt3LHRvcDp5PF8sYm90dG9tOnkraD5fK099LE09W107dS5zcGxpdCgiLSIpLmZvckVhY2goZnVuY3Rpb24oQSl7RVtBXT9NLnB1c2goYltBXSk6TS5wdXNoKEEpfSk7dmFyIGs9TS5qb2luKCItIik7cmV0dXJuIHRoaXMuZ2V0UmVsYXRpdmVPZmZzZXRGcm9tQ3Vyc29yKGspfSxlLnByb3RvdHlwZS5pc0N1cnNvckVudGVyZWQ9ZnVuY3Rpb24obixyKXtpZih0aGlzLmVsZW1lbnQpe3ZhciBpPXRoaXMuZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxhPWkueCxvPWkueSxzPWkud2lkdGgsYz1pLmhlaWdodDtyZXR1cm4gbmV3IHByKGEsbyxzLGMpLmlzUG9pbnRJbihuLHIpfXJldHVybiExfSxlLnByb3RvdHlwZS5jbG9zZVRyYW5zaXRpb249ZnVuY3Rpb24obil7dmFyIHI9dGhpcyxpPXRoaXMuZWxlbWVudC5zdHlsZS50cmFuc2l0aW9uO3RoaXMuZWxlbWVudC5zdHlsZS50cmFuc2l0aW9uPSJub25lIixuKCksc2V0VGltZW91dChmdW5jdGlvbigpe3IuZWxlbWVudC5zdHlsZS50cmFuc2l0aW9uPWl9LDEwKX0sZS50YWc9InRvb2x0aXAiLGV9KGJpKSxJdT1mdW5jdGlvbih0LGUpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiZlLmluZGV4T2Yocik8MCYmKG5bcl09dFtyXSk7aWYodCE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBpPTAscj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2k8ci5sZW5ndGg7aSsrKWUuaW5kZXhPZihyW2ldKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodCxyW2ldKSYmKG5bcltpXV09dFtyW2ldXSk7cmV0dXJuIG59O2Z1bmN0aW9uIF8xKHQsZSl7cmV0dXJuIGU/dHlwZW9mIGU9PSJzdHJpbmciP2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoZSk6ZTp0Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29udGV4dFNlcnZpY2UoKS5nZXREb21FbGVtZW50KCkucGFyZW50RWxlbWVudH1mdW5jdGlvbiBiVSh0KXtjb25zdCBlPXQuZ2V0UmVuZGVyQm91bmRzKCkse21pbjpbbixyXSxtYXg6W2ksYV19PWU7cmV0dXJue3g6bix5OnIsd2lkdGg6aS1uLGhlaWdodDphLXJ9fWZ1bmN0aW9uIHhVKHQsZSl7Y29uc3Qgbj10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHI9ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm57eDpuLngtci54LHk6bi55LXIueX19ZnVuY3Rpb24gX1UodCxlLG4scixpLGEsbyxzPXt9LGM9WzEwLDEwXSl7Y29uc3QgbD17Ii5nMi10b29sdGlwIjp7fSwiLmcyLXRvb2x0aXAtdGl0bGUiOntvdmVyZmxvdzoiaGlkZGVuIiwid2hpdGUtc3BhY2UiOiJub3dyYXAiLCJ0ZXh0LW92ZXJmbG93IjoiZWxsaXBzaXMifX0sdT1uZXcgbVUoe2NsYXNzTmFtZToidG9vbHRpcCIsc3R5bGU6e3g6ZSx5Om4sY29udGFpbmVyOm8sZGF0YTpbXSxib3VuZGluZzphLHBvc2l0aW9uOnIsZW50ZXJhYmxlOmksdGl0bGU6IiIsb2Zmc2V0OmMsdGVtcGxhdGU6e3ByZWZpeENsczoiZzItIn0sc3R5bGU6bXQobCxzKX19KTtyZXR1cm4gdC5hcHBlbmRDaGlsZCh1LkhUTUxUb29sdGlwRWxlbWVudCksdX1mdW5jdGlvbiB0NCh7cm9vdDp0LGRhdGE6ZSx4Om4seTpyLHJlbmRlcjppLGV2ZW50OmEsc2luZ2xlOm8scG9zaXRpb246cz0icmlnaHQtYm90dG9tIixlbnRlcmFibGU6Yz0hMSxjc3M6bCxtb3VudDp1LGJvdW5kaW5nOmYsb2Zmc2V0OmR9KXtjb25zdCBoPV8xKHQsdSksdj1fMSh0KSxnPW8/djp0LHk9Znx8YlUodCksYj14VSh2LGgpLHt0b29sdGlwRWxlbWVudDp4PV9VKGgsbixyLHMsYyx5LGIsbCxkKX09Zyx7aXRlbXM6Xyx0aXRsZTp3PSIifT1lO3gudXBkYXRlKE9iamVjdC5hc3NpZ24oe3g6bix5OnIsZGF0YTpfLHRpdGxlOncscG9zaXRpb246cyxlbnRlcmFibGU6Yyxjb250YWluZXI6Yn0saSE9PXZvaWQgMCYme2NvbnRlbnQ6aShhLHtpdGVtczpfLHRpdGxlOnd9KX0pKSxnLnRvb2x0aXBFbGVtZW50PXh9ZnVuY3Rpb24geWwoe3Jvb3Q6dCxzaW5nbGU6ZSxlbWl0dGVyOm4sbmF0aXZlRXZlbnQ6cj0hMCxldmVudDppPW51bGx9KXtyJiZuLmVtaXQoInRvb2x0aXA6aGlkZSIse25hdGl2ZUV2ZW50OnJ9KTtjb25zdCBhPV8xKHQpLG89ZT9hOnQse3Rvb2x0aXBFbGVtZW50OnN9PW87cyYmcy5oaWRlKGk9PW51bGw/dm9pZCAwOmkuY2xpZW50WCxpPT1udWxsP3ZvaWQgMDppLmNsaWVudFkpLGE0KHQpLG80KHQpLHM0KHQpfWZ1bmN0aW9uIGRTKHtyb290OnQsc2luZ2xlOmV9KXtjb25zdCBuPV8xKHQpLHI9ZT9uOnQ7aWYoIXIpcmV0dXJuO2NvbnN0e3Rvb2x0aXBFbGVtZW50Oml9PXI7aSYmKGkuZGVzdHJveSgpLHIudG9vbHRpcEVsZW1lbnQ9dm9pZCAwKSxhNCh0KSxvNCh0KSxzNCh0KX1mdW5jdGlvbiBlNCh0KXtjb25zdHt2YWx1ZTplfT10O3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3ZhbHVlOmU9PT12b2lkIDA/InVuZGVmaW5lZCI6ZX0pfWZ1bmN0aW9uIHdVKHQpe2NvbnN0e19fZGF0YV9fOmV9PXQse3RpdGxlOm4saXRlbXM6cj1bXX09ZSxpPXIuZmlsdGVyKHFuKS5tYXAoYT0+e3Zhcntjb2xvcjpvPW40KHQpfT1hLHM9SXUoYSxbImNvbG9yIl0pO3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30scykse2NvbG9yOm99KX0pLm1hcChlNCk7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxuJiZ7dGl0bGU6bn0pLHtpdGVtczppfSl9ZnVuY3Rpb24gT1UodCxlKXtjb25zdHtjb2xvcjpuLHNlcmllczpyLGZhY2V0Omk9ITF9PXQse2NvbG9yOmEsc2VyaWVzOm99PWUscz1jPT5jJiZjLmludmVydCYmIShjIGluc3RhbmNlb2YgcGwpJiYhKGMgaW5zdGFuY2VvZiBEcCk7aWYocyhyKSlyZXR1cm4gci5jbG9uZSgpLmludmVydChvKTtpZihvJiZyIGluc3RhbmNlb2YgcGwmJnIuaW52ZXJ0KG8pIT09YSYmIWkpcmV0dXJuIHIuaW52ZXJ0KG8pO2lmKHMobikpe2NvbnN0IGM9bi5pbnZlcnQoYSk7cmV0dXJuIEFycmF5LmlzQXJyYXkoYyk/bnVsbDpjfXJldHVybiBudWxsfWZ1bmN0aW9uIG40KHQpe2NvbnN0IGU9dC5nZXRBdHRyaWJ1dGUoImZpbGwiKSxuPXQuZ2V0QXR0cmlidXRlKCJzdHJva2UiKSx7X19kYXRhX186cn09dCx7Y29sb3I6aT1lJiZlIT09InRyYW5zcGFyZW50Ij9lOm59PXI7cmV0dXJuIGl9ZnVuY3Rpb24gcjQodCxlPW49Pm4pe2NvbnN0IG49bmV3IE1hcCh0Lm1hcChyPT5bZShyKSxyXSkpO3JldHVybiBBcnJheS5mcm9tKG4udmFsdWVzKCkpfWZ1bmN0aW9uIGk0KHQsZSxuLHI9dC5tYXAoYT0+YS5fX2RhdGFfXyksaT17fSl7Y29uc3QgYT1jPT5jIGluc3RhbmNlb2YgRGF0ZT8rYzpjLG89cjQoci5tYXAoYz0+Yy50aXRsZSksYSkuZmlsdGVyKHFuKSxzPXIuZmxhdE1hcCgoYyxsKT0+e2NvbnN0IHU9dFtsXSx7aXRlbXM6Zj1bXSx0aXRsZTpkfT1jLGg9Zi5maWx0ZXIocW4pLHY9biE9PXZvaWQgMD9uOmYubGVuZ3RoPD0xO3JldHVybiBoLm1hcChnPT57dmFye2NvbG9yOnk9bjQodSl8fGkuY29sb3IsbmFtZTpifT1nLHg9SXUoZyxbImNvbG9yIiwibmFtZSJdKTtjb25zdCBfPU9VKGUsYyksdz12P198fGI6Ynx8XztyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHgpLHtjb2xvcjp5LG5hbWU6d3x8ZH0pfSl9KS5tYXAoZTQpO3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sby5sZW5ndGg+MCYme3RpdGxlOm8uam9pbigiLCIpfSkse2l0ZW1zOnI0KHMsYz0+YCgke2EoYy5uYW1lKX0sICR7YShjLnZhbHVlKX0sICR7YShjLmNvbG9yKX0pYCl9KX1mdW5jdGlvbiBTVSh0LGUsbixyKXt2YXJ7cGxvdFdpZHRoOmkscGxvdEhlaWdodDphLG1haW5XaWR0aDpvLG1haW5IZWlnaHQ6cyxzdGFydFg6YyxzdGFydFk6bCx0cmFuc3Bvc2VkOnUscG9sYXI6ZixpbnNldExlZnQ6ZCxpbnNldFRvcDpofT1yLHY9SXUocixbInBsb3RXaWR0aCIsInBsb3RIZWlnaHQiLCJtYWluV2lkdGgiLCJtYWluSGVpZ2h0Iiwic3RhcnRYIiwic3RhcnRZIiwidHJhbnNwb3NlZCIsInBvbGFyIiwiaW5zZXRMZWZ0IiwiaW5zZXRUb3AiXSk7Y29uc3QgZz1PYmplY3QuYXNzaWduKHtsaW5lV2lkdGg6MSxzdHJva2U6IiMxYjFlMjMiLHN0cm9rZU9wYWNpdHk6LjV9LHYpLHk9KEUsTSxrKT0+e2NvbnN0IEE9bmV3IHRjKHtzdHlsZTpPYmplY3QuYXNzaWduKHtjeDpFLGN5Ok0scjprfSxnKX0pO3JldHVybiB0LmFwcGVuZENoaWxkKEEpLEF9LGI9KEUsTSxrLEEpPT57Y29uc3QgUD1uZXcgc3Uoe3N0eWxlOk9iamVjdC5hc3NpZ24oe3gxOkUseDI6TSx5MTprLHkyOkF9LGcpfSk7cmV0dXJuIHQuYXBwZW5kQ2hpbGQoUCksUH0sXz0oKEUsTSk9PntpZihNLmxlbmd0aD09PTEpcmV0dXJuIE1bMF07Y29uc3Qgaz1NLm1hcChQPT53cihQLEUpKSxBPWIwKGssUD0+UCk7cmV0dXJuIE1bQV19KShuLGUpLHc9KCk9PnU/W2MrX1swXSxjK19bMF0sbCxsK2FdOltjLGMraSxfWzFdK2wsX1sxXStsXSxPPSgpPT57Y29uc3QgRT1jK2Qrby8yLE09bCtoK3MvMixrPXdyKFtFLE1dLF8pO3JldHVybltFLE0sa119O2lmKGYpe2NvbnN0W0UsTSxrXT1PKCksQT10LnJ1bGVYfHx5KEUsTSxrKTtBLnN0eWxlLmN4PUUsQS5zdHlsZS5jeT1NLEEuc3R5bGUucj1rLHQucnVsZVg9QX1lbHNle2NvbnN0W0UsTSxrLEFdPXcoKSxQPXQucnVsZVh8fGIoRSxNLGssQSk7UC5zdHlsZS54MT1FLFAuc3R5bGUueDI9TSxQLnN0eWxlLnkxPWssUC5zdHlsZS55Mj1BLHQucnVsZVg9UH19ZnVuY3Rpb24gRVUodCxlLG4pe3ZhcntwbG90V2lkdGg6cixwbG90SGVpZ2h0OmksbWFpbldpZHRoOmEsbWFpbkhlaWdodDpvLHN0YXJ0WDpzLHN0YXJ0WTpjLHRyYW5zcG9zZWQ6bCxwb2xhcjp1LGluc2V0TGVmdDpmLGluc2V0VG9wOmR9PW4saD1JdShuLFsicGxvdFdpZHRoIiwicGxvdEhlaWdodCIsIm1haW5XaWR0aCIsIm1haW5IZWlnaHQiLCJzdGFydFgiLCJzdGFydFkiLCJ0cmFuc3Bvc2VkIiwicG9sYXIiLCJpbnNldExlZnQiLCJpbnNldFRvcCJdKTtjb25zdCB2PU9iamVjdC5hc3NpZ24oe2xpbmVXaWR0aDoxLHN0cm9rZToiIzFiMWUyMyIsc3Ryb2tlT3BhY2l0eTouNX0saCksZz1lLm1hcChBPT5BWzFdKSx5PWUubWFwKEE9PkFbMF0pLGI9eDAoZykseD14MCh5KSxfPSgpPT57aWYodSl7Y29uc3QgQT1NYXRoLm1pbihhLG8pLzIsUD1zK2YrYS8yLEM9YytkK28vMixOPXdvKE1yKFt4LGJdLFtQLENdKSksTD1QK0EqTWF0aC5jb3MoTiksUj1DK0EqTWF0aC5zaW4oTik7cmV0dXJuW1AsTCxDLFJdfXJldHVybiBsP1tzLHMrcixiK2MsYitjXTpbeCtzLHgrcyxjLGMraV19LFt3LE8sRSxNXT1fKCksaz0oKT0+e2NvbnN0IEE9bmV3IHN1KHtzdHlsZTpPYmplY3QuYXNzaWduKHt4MTp3LHgyOk8seTE6RSx5MjpNfSx2KX0pO3JldHVybiB0LmFwcGVuZENoaWxkKEEpLEF9O2lmKHkubGVuZ3RoPjApe2NvbnN0IEE9dC5ydWxlWXx8aygpO0Euc3R5bGUueDE9dyxBLnN0eWxlLngyPU8sQS5zdHlsZS55MT1FLEEuc3R5bGUueTI9TSx0LnJ1bGVZPUF9fWZ1bmN0aW9uIGE0KHQpe3QucnVsZVkmJih0LnJ1bGVZLnJlbW92ZSgpLHQucnVsZVk9dm9pZCAwKX1mdW5jdGlvbiBvNCh0KXt0LnJ1bGVYJiYodC5ydWxlWC5yZW1vdmUoKSx0LnJ1bGVYPXZvaWQgMCl9ZnVuY3Rpb24gTVUodCx7ZGF0YTplLHN0eWxlOm4sdGhlbWU6cn0pe3QubWFya2VycyYmdC5tYXJrZXJzLmZvckVhY2gobz0+by5yZW1vdmUoKSk7Y29uc3R7dHlwZTppPSIifT1uLGE9ZS5maWx0ZXIobz0+e2NvbnN0W3t4OnMseTpjfV09bztyZXR1cm4gcW4ocykmJnFuKGMpfSkubWFwKG89Pntjb25zdFt7Y29sb3I6cyxlbGVtZW50OmN9LGxdPW8sdT1zfHxjLnN0eWxlLmZpbGx8fGMuc3R5bGUuc3Ryb2tlfHxyLmNvbG9yLGY9aT09PSJob2xsb3ciPyJ0cmFuc3BhcmVudCI6dSxkPWk9PT0iaG9sbG93Ij91OiIjZmZmIjtyZXR1cm4gbmV3IHRjKHtjbGFzc05hbWU6ImcyLXRvb2x0aXAtbWFya2VyIixzdHlsZTpPYmplY3QuYXNzaWduKHtjeDpsWzBdLGN5OmxbMV0sZmlsbDpmLHI6NCxzdHJva2U6ZCxsaW5lV2lkdGg6Mn0sbil9KX0pO2Zvcihjb25zdCBvIG9mIGEpdC5hcHBlbmRDaGlsZChvKTt0Lm1hcmtlcnM9YX1mdW5jdGlvbiBzNCh0KXt0Lm1hcmtlcnMmJih0Lm1hcmtlcnMuZm9yRWFjaChlPT5lLnJlbW92ZSgpKSx0Lm1hcmtlcnM9W10pfWZ1bmN0aW9uIGM0KHQsZSl7cmV0dXJuIEFycmF5LmZyb20odC52YWx1ZXMoKSkuc29tZShuPT57dmFyIHI7cmV0dXJuKHI9bi5pbnRlcmFjdGlvbik9PT1udWxsfHxyPT09dm9pZCAwP3ZvaWQgMDpyW2VdfSl9ZnVuY3Rpb24gZmModCxlKXtyZXR1cm4gdD09PXZvaWQgMD9lOnR9ZnVuY3Rpb24gbDQodCl7Y29uc3R7dGl0bGU6ZSxpdGVtczpufT10O3JldHVybiBuLmxlbmd0aD09PTAmJmU9PT12b2lkIDB9ZnVuY3Rpb24ga1UodCl7cmV0dXJuIEFycmF5LmZyb20odC52YWx1ZXMoKSkuc29tZShlPT57dmFyIG47cmV0dXJuKChuPWUuaW50ZXJhY3Rpb24pPT09bnVsbHx8bj09PXZvaWQgMD92b2lkIDA6bi5zZXJpZXNUb29sdGlwKSYmZS50b29sdGlwfSl9ZnVuY3Rpb24gdTQodCxlKXt2YXJ7ZWxlbWVudHM6bixzb3J0OnIsZmlsdGVyOmksc2NhbGU6YSxjb29yZGluYXRlOm8sY3Jvc3NoYWlyczpzLGNyb3NzaGFpcnNYOmMsY3Jvc3NoYWlyc1k6bCxyZW5kZXI6dSxncm91cE5hbWU6ZixlbWl0dGVyOmQsd2FpdDpoPTUwLGxlYWRpbmc6dj0hMCx0cmFpbGluZzpnPSExLHN0YXJ0WDp5PTAsc3RhcnRZOmI9MCxib2R5Ong9ITAsc2luZ2xlOl89ITAscG9zaXRpb246dyxlbnRlcmFibGU6Tyxtb3VudDpFLGJvdW5kaW5nOk0sdGhlbWU6ayxvZmZzZXQ6QSxkaXNhYmxlTmF0aXZlOlA9ITEsbWFya2VyOkM9ITAscHJlc2VydmU6Tj0hMSxzdHlsZTpMPXt9LGNzczpSPXt9fT1lLEk9SXUoZSxbImVsZW1lbnRzIiwic29ydCIsImZpbHRlciIsInNjYWxlIiwiY29vcmRpbmF0ZSIsImNyb3NzaGFpcnMiLCJjcm9zc2hhaXJzWCIsImNyb3NzaGFpcnNZIiwicmVuZGVyIiwiZ3JvdXBOYW1lIiwiZW1pdHRlciIsIndhaXQiLCJsZWFkaW5nIiwidHJhaWxpbmciLCJzdGFydFgiLCJzdGFydFkiLCJib2R5Iiwic2luZ2xlIiwicG9zaXRpb24iLCJlbnRlcmFibGUiLCJtb3VudCIsImJvdW5kaW5nIiwidGhlbWUiLCJvZmZzZXQiLCJkaXNhYmxlTmF0aXZlIiwibWFya2VyIiwicHJlc2VydmUiLCJzdHlsZSIsImNzcyJdKTtjb25zdCBEPW4odCksRz1ocihvKSxGPUJuKG8pLFc9bXQoTCxJKSx7aW5uZXJXaWR0aDpYLGlubmVySGVpZ2h0OlEsd2lkdGg6dHQsaGVpZ2h0Om50LGluc2V0TGVmdDpodCxpbnNldFRvcDpsdH09by5nZXRPcHRpb25zKCksd3Q9W10seXQ9W107Zm9yKGNvbnN0IGNlIG9mIEQpe2NvbnN0e19fZGF0YV9fOkllfT1jZSx7c2VyaWVzWDpRZSx0aXRsZTpubixpdGVtczpRbn09SWU7UWU/d3QucHVzaChjZSk6KG5ufHxRbikmJnl0LnB1c2goY2UpfWNvbnN0IGd0PWNlPT5jZS5tYXJrVHlwZT09PSJpbnRlcnZhbCIsQnQ9eXQubGVuZ3RoJiZ5dC5ldmVyeShndCkmJiFCbihvKSxMdD1jZT0+Y2UuX19kYXRhX18ueCxqdD0hIWEueC5nZXRCYW5kV2lkdGgmJnl0Lmxlbmd0aD4wO3d0LnNvcnQoKGNlLEllKT0+e2NvbnN0IFFlPUc/MDoxLG5uPVFuPT5Rbi5nZXRCb3VuZHMoKS5taW5bUWVdO3JldHVybiBHP25uKEllKS1ubihjZSk6bm4oY2UpLW5uKEllKX0pO2NvbnN0IFF0PWNlPT57Y29uc3QgSWU9Rz8xOjAse21pbjpRZSxtYXg6bm59PWNlLmdldExvY2FsQm91bmRzKCk7cmV0dXJuIFdvKFtRZVtJZV0sbm5bSWVdXSl9O0J0P0Quc29ydCgoY2UsSWUpPT5MdChjZSktTHQoSWUpKTp5dC5zb3J0KChjZSxJZSk9Pntjb25zdFtRZSxubl09UXQoY2UpLFtRbixGcl09UXQoSWUpLEJyPShRZStubikvMixqaT0oUW4rRnIpLzI7cmV0dXJuIEc/amktQnI6QnItaml9KTtjb25zdCB1ZT1uZXcgTWFwKHd0Lm1hcChjZT0+e2NvbnN0e19fZGF0YV9fOkllfT1jZSx7c2VyaWVzWDpRZX09SWUsbm49UWUubWFwKChGcixCcik9PkJyKSxRbj1XbyhubixGcj0+UWVbK0ZyXSk7cmV0dXJuW2NlLFtRbixRZV1dfSkpLHt4OnllfT1hLEtlPXllIT1udWxsJiZ5ZS5nZXRCYW5kV2lkdGg/eWUuZ2V0QmFuZFdpZHRoKCkvMjowLGJlPWNlPT57Y29uc3RbSWVdPW8uaW52ZXJ0KGNlKTtyZXR1cm4gSWUtS2V9LE5lPShjZSxJZSxRZSxubik9Pntjb25zdHtfeDpRbn09Y2UsRnI9UW4hPT12b2lkIDA/eWUubWFwKFFuKTpiZShJZSksQnI9bm4uZmlsdGVyKHFuKSxbamksQ29dPVdvKFtCclswXSxCcltCci5sZW5ndGgtMV1dKSxWbz1qaT09PUNvO2lmKCFqdCYmKEZyPGppfHxGcj5DbykmJiFWbylyZXR1cm4gbnVsbDtjb25zdCBqZD1vbChtYz0+bm5bK21jXSkuY2VudGVyLHR2PWpkKFFlLEZyKTtyZXR1cm4gUWVbdHZdfSxQbj1CdD8oY2UsSWUpPT57Y29uc3QgUWU9b2woTHQpLmNlbnRlcixubj1RZShJZSxiZShjZSkpLFFuPUllW25uXTtyZXR1cm4gZHIoSWUsTHQpLmdldChMdChRbikpfTooY2UsSWUpPT57Y29uc3Qgbm49Y2VbRz8xOjBdLFFuPUllLmZpbHRlcihqaT0+e2NvbnN0W0NvLFZvXT1RdChqaSk7cmV0dXJuIG5uPj1DbyYmbm48PVZvfSk7aWYoIWp0fHxRbi5sZW5ndGg+MClyZXR1cm4gUW47Y29uc3QgRnI9b2woamk9Pntjb25zdFtDbyxWb109UXQoamkpO3JldHVybihDbytWbykvMn0pLmNlbnRlcixCcj1GcihJZSxubik7cmV0dXJuW0llW0JyXV0uZmlsdGVyKHFuKX0scXI9KGNlLEllKT0+e2NvbnN0e19fZGF0YV9fOlFlfT1jZTtyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKFFlKS5maWx0ZXIoKFtubl0pPT5ubi5zdGFydHNXaXRoKCJzZXJpZXMiKSYmbm4hPT0ic2VyaWVzIikubWFwKChbbm4sUW5dKT0+e2NvbnN0IEZyPVFuW0llXTtyZXR1cm5bVEEobm4ucmVwbGFjZSgic2VyaWVzIiwiIikpLEZyXX0pKX0sZmk9TnUoY2U9Pnt2YXIgSWU7Y29uc3QgUWU9WHAodCxjZSk7aWYoIVFlKXJldHVybjtjb25zdCBubj1IUCh0KSxRbj1ubi5taW5bMF0sRnI9bm4ubWluWzFdLEJyPVtRZVswXS15LFFlWzFdLWJdO2lmKCFCcilyZXR1cm47Y29uc3Qgamk9UG4oQnIseXQpLENvPVtdLFZvPVtdO2Zvcihjb25zdCBKciBvZiB3dCl7Y29uc3RbZXYsbk1dPXVlLmdldChKciksbnY9TmUoY2UsQnIsZXYsbk0pO2lmKG52IT09bnVsbCl7Q28ucHVzaChKcik7Y29uc3QgYmI9cXIoSnIsbnYpLHt4Ol9hdCx5OndhdH09YmIsT2F0PW8ubWFwKFsoX2F0fHwwKStLZSx3YXR8fDBdKTtWby5wdXNoKFtPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sYmIpLHtlbGVtZW50OkpyfSksT2F0XSl9fWNvbnN0IGpkPUFycmF5LmZyb20obmV3IFNldChWby5tYXAoSnI9PkpyWzBdLngpKSksdHY9amRbYjAoamQsSnI9Pk1hdGguYWJzKEpyLWJlKEJyKSkpXSxtYz1Wby5maWx0ZXIoSnI9PkpyWzBdLng9PT10diksdE09Wy4uLm1jLm1hcChKcj0+SnJbMF0pLC4uLmppLm1hcChKcj0+SnIuX19kYXRhX18pXSxtYj1bLi4uQ28sLi4uamldLEZkPWk0KG1iLGEsZix0TSxrKTtpZihyJiZGZC5pdGVtcy5zb3J0KChKcixldik9PnIoSnIpLXIoZXYpKSxpJiYoRmQuaXRlbXM9RmQuaXRlbXMuZmlsdGVyKGkpKSxtYi5sZW5ndGg9PT0wfHxsNChGZCkpe3lyKGNlKTtyZXR1cm59aWYoeCYmdDQoe3Jvb3Q6dCxkYXRhOkZkLHg6UWVbMF0rUW4seTpRZVsxXStGcixyZW5kZXI6dSxldmVudDpjZSxzaW5nbGU6Xyxwb3NpdGlvbjp3LGVudGVyYWJsZTpPLG1vdW50OkUsYm91bmRpbmc6TSxjc3M6UixvZmZzZXQ6QX0pLHN8fGN8fGwpe2NvbnN0IEpyPSR0KFcsImNyb3NzaGFpcnMiKSxldj1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sSnIpLCR0KFcsImNyb3NzaGFpcnNYIikpLG5NPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxKciksJHQoVywiY3Jvc3NoYWlyc1kiKSksbnY9bWMubWFwKGJiPT5iYlsxXSk7YyYmU1UodCxudixRZSxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZXYpLHtwbG90V2lkdGg6WCxwbG90SGVpZ2h0OlEsbWFpbldpZHRoOnR0LG1haW5IZWlnaHQ6bnQsaW5zZXRMZWZ0Omh0LGluc2V0VG9wOmx0LHN0YXJ0WDp5LHN0YXJ0WTpiLHRyYW5zcG9zZWQ6Ryxwb2xhcjpGfSkpLGwmJkVVKHQsbnYsT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG5NKSx7cGxvdFdpZHRoOlgscGxvdEhlaWdodDpRLG1haW5XaWR0aDp0dCxtYWluSGVpZ2h0Om50LGluc2V0TGVmdDpodCxpbnNldFRvcDpsdCxzdGFydFg6eSxzdGFydFk6Yix0cmFuc3Bvc2VkOkcscG9sYXI6Rn0pKX1pZihDKXtjb25zdCBKcj0kdChXLCJtYXJrZXIiKTtNVSh0LHtkYXRhOm1jLHN0eWxlOkpyLHRoZW1lOmt9KX1jb25zdCBlTT0oSWU9bWNbMF0pPT09bnVsbHx8SWU9PT12b2lkIDA/dm9pZCAwOkllWzBdLngseGF0PWVNIT1udWxsP2VNOmJlKEJyKTtkLmVtaXQoInRvb2x0aXA6c2hvdyIsT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGNlKSx7bmF0aXZlRXZlbnQ6ITAsZGF0YTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sRmQpLHtkYXRhOnt4OnNkKGEueCx4YXQsITApfX0pfSkpfSxoLHtsZWFkaW5nOnYsdHJhaWxpbmc6Z30pLHlyPWNlPT57eWwoe3Jvb3Q6dCxzaW5nbGU6XyxlbWl0dGVyOmQsZXZlbnQ6Y2V9KX0sb2k9KCk9PntkUyh7cm9vdDp0LHNpbmdsZTpffSl9LEtyPWNlPT57dmFyIEllLHtuYXRpdmVFdmVudDpRZSxkYXRhOm5uLG9mZnNldFg6UW4sb2Zmc2V0WTpGcn09Y2UsQnI9SXUoY2UsWyJuYXRpdmVFdmVudCIsImRhdGEiLCJvZmZzZXRYIiwib2Zmc2V0WSJdKTtpZihRZSlyZXR1cm47Y29uc3Qgamk9KEllPW5uPT1udWxsP3ZvaWQgMDpubi5kYXRhKT09PW51bGx8fEllPT09dm9pZCAwP3ZvaWQgMDpJZS54LFZvPWEueC5tYXAoamkpLFtqZCx0dl09by5tYXAoW1ZvLC41XSksbWM9dC5nZXRSZW5kZXJCb3VuZHMoKSx0TT1tYy5taW5bMF0sbWI9bWMubWluWzFdO2ZpKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxCcikse29mZnNldFg6UW4hPT12b2lkIDA/UW46dE0ramQsb2Zmc2V0WTpGciE9PXZvaWQgMD9GcjptYit0dixfeDpqaX0pKX0sc2k9KCk9Pnt5bCh7cm9vdDp0LHNpbmdsZTpfLGVtaXR0ZXI6ZCxuYXRpdmVFdmVudDohMX0pfSxLbj0oKT0+e2NpKCksb2koKX0sUXI9KCk9PntEaSgpfSxEaT0oKT0+e1B8fCh0LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJlbnRlciIsZmkpLHQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLGZpKSx0LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJsZWF2ZSIsY2U9PntYcCh0LGNlKXx8eXIoY2UpfSkpfSxjaT0oKT0+e1B8fCh0LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJlbnRlciIsZmkpLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLGZpKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJsZWF2ZSIseXIpKX07cmV0dXJuIERpKCksZC5vbigidG9vbHRpcDpzaG93IixLciksZC5vbigidG9vbHRpcDpoaWRlIixzaSksZC5vbigidG9vbHRpcDpkaXNhYmxlIixLbiksZC5vbigidG9vbHRpcDplbmFibGUiLFFyKSwoKT0+e2NpKCksZC5vZmYoInRvb2x0aXA6c2hvdyIsS3IpLGQub2ZmKCJ0b29sdGlwOmhpZGUiLHNpKSxkLm9mZigidG9vbHRpcDpkaXNhYmxlIixLbiksZC5vZmYoInRvb2x0aXA6ZW5hYmxlIixRciksTj95bCh7cm9vdDp0LHNpbmdsZTpfLGVtaXR0ZXI6ZCxuYXRpdmVFdmVudDohMX0pOm9pKCl9fWZ1bmN0aW9uIEFVKHQse2VsZW1lbnRzOmUsY29vcmRpbmF0ZTpuLHNjYWxlOnIscmVuZGVyOmksZ3JvdXBOYW1lOmEsc29ydDpvLGZpbHRlcjpzLGVtaXR0ZXI6Yyx3YWl0Omw9NTAsbGVhZGluZzp1PSEwLHRyYWlsaW5nOmY9ITEsZ3JvdXBLZXk6ZD1DPT5DLHNpbmdsZTpoPSEwLHBvc2l0aW9uOnYsZW50ZXJhYmxlOmcsZGF0dW06eSx2aWV3OmIsbW91bnQ6eCxib3VuZGluZzpfLHRoZW1lOncsb2Zmc2V0Ok8sc2hhcmVkOkU9ITEsYm9keTpNPSEwLGRpc2FibGVOYXRpdmU6az0hMSxwcmVzZXJ2ZTpBPSExLGNzczpQPXt9fSl7dmFyIEMsTjtjb25zdCBMPWUodCksUj1kcihMLGQpLEk9SXQ9Pkl0Lm1hcmtUeXBlPT09ImludGVydmFsIixEPUwuZXZlcnkoSSkmJiFCbihuKSxHPXIueCxGPXIuc2VyaWVzLFc9KE49KEM9Rz09bnVsbD92b2lkIDA6Ry5nZXRCYW5kV2lkdGgpPT09bnVsbHx8Qz09PXZvaWQgMD92b2lkIDA6Qy5jYWxsKEcpKSE9PW51bGwmJk4hPT12b2lkIDA/TjowLFg9Rj9JdD0+e2NvbnN0IGp0PU1hdGgucm91bmQoMS9GLnZhbHVlQmFuZFdpZHRoKTtyZXR1cm4gSXQuX19kYXRhX18ueCtJdC5fX2RhdGFfXy5zZXJpZXMqVytXLyhqdCoyKX06SXQ9Pkl0Ll9fZGF0YV9fLngrVy8yO0QmJkwuc29ydCgoSXQsanQpPT5YKEl0KS1YKGp0KSk7Y29uc3QgUT1JdD0+e2NvbnN0e3RhcmdldDpqdH09SXQ7cmV0dXJuIGptKGp0LFF0PT5RdC5jbGFzc0xpc3Q/UXQuY2xhc3NMaXN0LmluY2x1ZGVzKCJlbGVtZW50Iik6ITEpfSx0dD1EP0l0PT57Y29uc3QganQ9WHAodCxJdCk7aWYoIWp0KXJldHVybjtjb25zdFtRdF09bi5pbnZlcnQoanQpLHVlPW9sKFgpLmNlbnRlcix5ZT11ZShMLFF0KSxLZT1MW3llXTtyZXR1cm4hRSYmTC5maW5kKE5lPT5OZSE9PUtlJiZYKE5lKT09PVgoS2UpKT9RKEl0KTpLZX06USxudD1OdShJdD0+e2NvbnN0IGp0PXR0KEl0KTtpZighanQpe3lsKHtyb290OnQsc2luZ2xlOmgsZW1pdHRlcjpjLGV2ZW50Okl0fSk7cmV0dXJufWNvbnN0IFF0PWQoanQpLHVlPVIuZ2V0KFF0KTtpZighdWUpcmV0dXJuO2NvbnN0IHllPXVlLmxlbmd0aD09PTEmJiFFP3dVKHVlWzBdKTppNCh1ZSxyLGEsdm9pZCAwLHcpO2lmKG8mJnllLml0ZW1zLnNvcnQoKE5lLFBuKT0+byhOZSktbyhQbikpLHMmJih5ZS5pdGVtcz15ZS5pdGVtcy5maWx0ZXIocykpLGw0KHllKSl7eWwoe3Jvb3Q6dCxzaW5nbGU6aCxlbWl0dGVyOmMsZXZlbnQ6SXR9KTtyZXR1cm59Y29uc3R7b2Zmc2V0WDpLZSxvZmZzZXRZOmJlfT1JdDtNJiZ0NCh7cm9vdDp0LGRhdGE6eWUseDpLZSx5OmJlLHJlbmRlcjppLGV2ZW50Okl0LHNpbmdsZTpoLHBvc2l0aW9uOnYsZW50ZXJhYmxlOmcsbW91bnQ6eCxib3VuZGluZzpfLGNzczpQLG9mZnNldDpPfSksYy5lbWl0KCJ0b29sdGlwOnNob3ciLE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxJdCkse25hdGl2ZUV2ZW50OiEwLGRhdGE6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHllKSx7ZGF0YTpRUChqdCxiKX0pfSkpfSxsLHtsZWFkaW5nOnUsdHJhaWxpbmc6Zn0pLGh0PUl0PT57eWwoe3Jvb3Q6dCxzaW5nbGU6aCxlbWl0dGVyOmMsZXZlbnQ6SXR9KX0sbHQ9KCk9PntrfHwodC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsbnQpLHQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmxlYXZlIixodCkpfSx3dD0oKT0+e2t8fCh0LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJtb3ZlIixudCksdC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVybGVhdmUiLGh0KSl9LHl0PSh7bmF0aXZlRXZlbnQ6SXQsb2Zmc2V0WDpqdCxvZmZzZXRZOlF0LGRhdGE6dWV9KT0+e2lmKEl0KXJldHVybjtjb25zdHtkYXRhOnllfT11ZSxLZT1xdyhMLHllLHkpO2lmKCFLZSlyZXR1cm47Y29uc3QgYmU9S2UuZ2V0QkJveCgpLHt4Ok5lLHk6UG4sd2lkdGg6cXIsaGVpZ2h0OmZpfT1iZSx5cj10LmdldEJCb3goKTtudCh7dGFyZ2V0OktlLG9mZnNldFg6anQhPT12b2lkIDA/anQreXIueDpOZStxci8yLG9mZnNldFk6UXQhPT12b2lkIDA/UXQreXIueTpQbitmaS8yfSl9LGd0PSh7bmF0aXZlRXZlbnQ6SXR9PXt9KT0+e0l0fHx5bCh7cm9vdDp0LHNpbmdsZTpoLGVtaXR0ZXI6YyxuYXRpdmVFdmVudDohMX0pfSxCdD0oKT0+e3d0KCksZFMoe3Jvb3Q6dCxzaW5nbGU6aH0pfSxMdD0oKT0+e2x0KCl9O3JldHVybiBjLm9uKCJ0b29sdGlwOnNob3ciLHl0KSxjLm9uKCJ0b29sdGlwOmhpZGUiLGd0KSxjLm9uKCJ0b29sdGlwOmVuYWJsZSIsTHQpLGMub24oInRvb2x0aXA6ZGlzYWJsZSIsQnQpLGx0KCksKCk9Pnt3dCgpLGMub2ZmKCJ0b29sdGlwOnNob3ciLHl0KSxjLm9mZigidG9vbHRpcDpoaWRlIixndCksQT95bCh7cm9vdDp0LHNpbmdsZTpoLGVtaXR0ZXI6YyxuYXRpdmVFdmVudDohMX0pOmRTKHtyb290OnQsc2luZ2xlOmh9KX19ZnVuY3Rpb24gZjQodCl7Y29uc3R7c2hhcmVkOmUsY3Jvc3NoYWlyczpuLGNyb3NzaGFpcnNYOnIsY3Jvc3NoYWlyc1k6aSxzZXJpZXM6YSxuYW1lOm8saXRlbTpzPSgpPT4oe30pLGZhY2V0OmM9ITF9PXQsbD1JdSh0LFsic2hhcmVkIiwiY3Jvc3NoYWlycyIsImNyb3NzaGFpcnNYIiwiY3Jvc3NoYWlyc1kiLCJzZXJpZXMiLCJuYW1lIiwiaXRlbSIsImZhY2V0Il0pO3JldHVybih1LGYsZCk9Pntjb25zdHtjb250YWluZXI6aCx2aWV3OnZ9PXUse3NjYWxlOmcsbWFya1N0YXRlOnksY29vcmRpbmF0ZTpiLHRoZW1lOnh9PXYsXz1jNCh5LCJzZXJpZXNUb29sdGlwIiksdz1jNCh5LCJjcm9zc2hhaXJzIiksTz15cyhoKSxFPWZjKGEsXyksTT1mYyhuLHcpO2lmKEUmJmtVKHkpJiYhYylyZXR1cm4gdTQoTyxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbCkse3RoZW1lOngsZWxlbWVudHM6Y2wsc2NhbGU6Zyxjb29yZGluYXRlOmIsY3Jvc3NoYWlyczpNLGNyb3NzaGFpcnNYOmZjKGZjKHIsbiksITEpLGNyb3NzaGFpcnNZOmZjKGksTSksaXRlbTpzLGVtaXR0ZXI6ZH0pKTtpZihFJiZjKXtjb25zdCBrPWYuZmlsdGVyKFI9PlIhPT11JiZSLm9wdGlvbnMucGFyZW50S2V5PT09dS5vcHRpb25zLmtleSksQT1ZUCh1LGYpLFA9a1swXS52aWV3LnNjYWxlLEM9Ty5nZXRCb3VuZHMoKSxOPUMubWluWzBdLEw9Qy5taW5bMV07cmV0dXJuIE9iamVjdC5hc3NpZ24oUCx7ZmFjZXQ6ITB9KSx1NChPLnBhcmVudE5vZGUucGFyZW50Tm9kZSxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbCkse3RoZW1lOngsZWxlbWVudHM6KCk9PkEsc2NhbGU6UCxjb29yZGluYXRlOmIsY3Jvc3NoYWlyczpmYyhuLHcpLGNyb3NzaGFpcnNYOmZjKGZjKHIsbiksITEpLGNyb3NzaGFpcnNZOmZjKGksTSksaXRlbTpzLHN0YXJ0WDpOLHN0YXJ0WTpMLGVtaXR0ZXI6ZH0pKX1yZXR1cm4gQVUoTyxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbCkse2RhdHVtOnd1KHYpLGVsZW1lbnRzOmNsLHNjYWxlOmcsY29vcmRpbmF0ZTpiLGdyb3VwS2V5OmU/VXcodik6dm9pZCAwLGl0ZW06cyxlbWl0dGVyOmQsdmlldzp2LHRoZW1lOngsc2hhcmVkOmV9KSl9fWY0LnByb3BzPXtyZWFwcGx5V2hlblVwZGF0ZTohMH07dmFyIHcxPWZ1bmN0aW9uKHQsZSxuLHIpe2Z1bmN0aW9uIGkoYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBuP2E6bmV3IG4oZnVuY3Rpb24obyl7byhhKX0pfXJldHVybiBuZXcobnx8KG49UHJvbWlzZSkpKGZ1bmN0aW9uKGEsbyl7ZnVuY3Rpb24gcyh1KXt0cnl7bChyLm5leHQodSkpfWNhdGNoKGYpe28oZil9fWZ1bmN0aW9uIGModSl7dHJ5e2woci50aHJvdyh1KSl9Y2F0Y2goZil7byhmKX19ZnVuY3Rpb24gbCh1KXt1LmRvbmU/YSh1LnZhbHVlKTppKHUudmFsdWUpLnRoZW4ocyxjKX1sKChyPXIuYXBwbHkodCxlfHxbXSkpLm5leHQoKSl9KX07Y29uc3QgZDQ9ImxlZ2VuZC1jYXRlZ29yeSIsVFU9ImxlZ2VuZC1jb250aW51b3VzIixQVT0iaXRlbXMtaXRlbSIsQ1U9ImxlZ2VuZC1jYXRlZ29yeS1pdGVtLW1hcmtlciIsTFU9ImxlZ2VuZC1jYXRlZ29yeS1pdGVtLWxhYmVsIjtmdW5jdGlvbiBoNCh0KXtyZXR1cm4gdC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKENVKVswXX1mdW5jdGlvbiBwNCh0KXtyZXR1cm4gdC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKExVKVswXX1mdW5jdGlvbiB2NCh0KXtyZXR1cm4gdC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFBVKX1mdW5jdGlvbiBoUyh0KXtyZXR1cm4gdC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGQ0KX1mdW5jdGlvbiBnNCh0KXtyZXR1cm4gdC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFRVKX1mdW5jdGlvbiBSVSh0LGUpe1suLi5oUyh0KSwuLi5nNCh0KV0uZm9yRWFjaChyPT57ZShyLGk9PmkpfSl9ZnVuY3Rpb24gcFModCl7bGV0IGU9dC5wYXJlbnROb2RlO2Zvcig7ZSYmIWUuX19kYXRhX187KWU9ZS5wYXJlbnROb2RlO3JldHVybiBlLl9fZGF0YV9ffWZ1bmN0aW9uIEZvdCh0KXtsZXQgZT10O2Zvcig7ZSYmIWUuYXR0cigiY2xhc3MiKS5zdGFydHNXaXRoKCJsZWdlbmQiKTspZT1lLmNoaWxkcmVuWzBdO3JldHVybiBlLmF0dHJpYnV0ZXN9ZnVuY3Rpb24gTlUodCx7bGVnZW5kczplLG1hcmtlcjpuLGxhYmVsOnIsZGF0dW06aSxmaWx0ZXI6YSxlbWl0dGVyOm8sY2hhbm5lbDpzLHN0YXRlOmM9e319KXtjb25zdCBsPW5ldyBNYXAsdT1uZXcgTWFwLGY9bmV3IE1hcCx7dW5zZWxlY3RlZDpkPXttYXJrZXJTdHJva2U6IiNhYWEiLG1hcmtlckZpbGw6IiNhYWEiLGxhYmVsRmlsbDoiI2FhYSJ9fT1jLGg9e3Vuc2VsZWN0ZWQ6JHQoZCwibWFya2VyIil9LHY9e3Vuc2VsZWN0ZWQ6JHQoZCwibGFiZWwiKX0se3NldFN0YXRlOmcscmVtb3ZlU3RhdGU6eX09bGMoaCx2b2lkIDApLHtzZXRTdGF0ZTpiLHJlbW92ZVN0YXRlOnh9PWxjKHYsdm9pZCAwKSxfPUFycmF5LmZyb20oZSh0KSk7bGV0IHc9Xy5tYXAoaSk7Y29uc3QgTz0oKT0+e2Zvcihjb25zdCBrIG9mIF8pe2NvbnN0IEE9aShrKSxQPW4oayksQz1yKGspO3cuaW5jbHVkZXMoQSk/KHkoUCwidW5zZWxlY3RlZCIpLHgoQywidW5zZWxlY3RlZCIpKTooZyhQLCJ1bnNlbGVjdGVkIiksYihDLCJ1bnNlbGVjdGVkIikpfX07Zm9yKGNvbnN0IGsgb2YgXyl7Y29uc3QgQT0oKT0+e2xsKHQsInBvaW50ZXIiKX0sUD0oKT0+e2hXKHQpfSxDPU49PncxKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtjb25zdCBMPWkoayksUj13LmluZGV4T2YoTCk7Uj09PS0xP3cucHVzaChMKTp3LnNwbGljZShSLDEpLHlpZWxkIGEodyksTygpO2NvbnN0e25hdGl2ZUV2ZW50Okk9ITB9PU47SSYmKHcubGVuZ3RoPT09Xy5sZW5ndGg/by5lbWl0KCJsZWdlbmQ6cmVzZXQiLHtuYXRpdmVFdmVudDpJfSk6by5lbWl0KCJsZWdlbmQ6ZmlsdGVyIixPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sTikse25hdGl2ZUV2ZW50OkksZGF0YTp7Y2hhbm5lbDpzLHZhbHVlczp3fX0pKSl9KTtrLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixDKSxrLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJlbnRlciIsQSksay5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyb3V0IixQKSxsLnNldChrLEMpLHUuc2V0KGssQSksZi5zZXQoayxQKX1jb25zdCBFPWs9PncxKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtjb25zdHtuYXRpdmVFdmVudDpBfT1rO2lmKEEpcmV0dXJuO2NvbnN0e2RhdGE6UH09ayx7Y2hhbm5lbDpDLHZhbHVlczpOfT1QO0M9PT1zJiYodz1OLHlpZWxkIGEodyksTygpKX0pLE09az0+dzEodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2NvbnN0e25hdGl2ZUV2ZW50OkF9PWs7QXx8KHc9Xy5tYXAoaSkseWllbGQgYSh3KSxPKCkpfSk7cmV0dXJuIG8ub24oImxlZ2VuZDpmaWx0ZXIiLEUpLG8ub24oImxlZ2VuZDpyZXNldCIsTSksKCk9Pntmb3IoY29uc3QgayBvZiBfKWsucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLGwuZ2V0KGspKSxrLnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJlbnRlciIsdS5nZXQoaykpLGsucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcm91dCIsZi5nZXQoaykpLG8ub2ZmKCJsZWdlbmQ6ZmlsdGVyIixFKSxvLm9mZigibGVnZW5kOnJlc2V0IixNKX19ZnVuY3Rpb24gSVUodCx7bGVnZW5kOmUsZmlsdGVyOm4sZW1pdHRlcjpyLGNoYW5uZWw6aX0pe2NvbnN0IGE9KHtkZXRhaWw6e3ZhbHVlOm99fSk9PntuKG8pLHIuZW1pdCh7bmF0aXZlRXZlbnQ6ITAsZGF0YTp7Y2hhbm5lbDppLHZhbHVlczpvfX0pfTtyZXR1cm4gZS5hZGRFdmVudExpc3RlbmVyKCJ2YWx1ZWNoYW5nZSIsYSksKCk9PntlLnJlbW92ZUV2ZW50TGlzdGVuZXIoInZhbHVlY2hhbmdlIixhKX19ZnVuY3Rpb24geTQodCx7bGVnZW5kOmUsY2hhbm5lbDpuLHZhbHVlOnIsb3JkaW5hbDppLGNoYW5uZWxzOmEsYWxsQ2hhbm5lbHM6byxmYWNldDpzPSExfSl7cmV0dXJuIHcxKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtjb25zdHt2aWV3OmMsdXBkYXRlOmwsc2V0U3RhdGU6dX09dDt1KGUsZj0+e2NvbnN0e21hcmtzOmR9PWYsaD1kLm1hcCh2PT57aWYodi50eXBlPT09ImxlZ2VuZHMiKXJldHVybiB2O2NvbnN0e3RyYW5zZm9ybTpnPVtdLGRhdGE6eT1bXX09dixiPWcuZmluZEluZGV4KCh7dHlwZTp3fSk9Pncuc3RhcnRzV2l0aCgiZ3JvdXAiKXx8dy5zdGFydHNXaXRoKCJiaW4iKSkseD1bLi4uZ107eS5sZW5ndGgmJnguc3BsaWNlKGIrMSwwLHt0eXBlOiJmaWx0ZXIiLFtuXTp7dmFsdWU6cixvcmRpbmFsOml9fSk7Y29uc3QgXz1PYmplY3QuZnJvbUVudHJpZXMoYS5tYXAodz0+W3cse2RvbWFpbjpjLnNjYWxlW3ddLmdldE9wdGlvbnMoKS5kb21haW59XSkpO3JldHVybiBtdCh7fSx2LE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7dHJhbnNmb3JtOngsc2NhbGU6X30sIWkmJnthbmltYXRlOiExfSkse2xlZ2VuZDpzPyExOk9iamVjdC5mcm9tRW50cmllcyhvLm1hcCh3PT5bdyx7cHJlc2VydmU6ITB9XSkpfSkpfSk7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxmKSx7bWFya3M6aH0pfSkseWllbGQgbCgpfSl9ZnVuY3Rpb24gRFUodCxlKXtmb3IoY29uc3QgbiBvZiB0KXk0KG4sT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGUpLHtmYWNldDohMH0pKX1mdW5jdGlvbiBqVSgpe3JldHVybih0LGUsbik9Pntjb25zdHtjb250YWluZXI6cn09dCxpPWUuZmlsdGVyKGY9PmYhPT10KSxhPWkubGVuZ3RoPjAsbz1mPT5wUyhmKS5zY2FsZXMubWFwKGQ9PmQubmFtZSkscz1bLi4uaFMociksLi4uZzQocildLGM9cy5mbGF0TWFwKG8pLGw9YT9OdShEVSw1MCx7dHJhaWxpbmc6ITB9KTpOdSh5NCw1MCx7dHJhaWxpbmc6ITB9KSx1PXMubWFwKGY9Pntjb25zdHtuYW1lOmQsZG9tYWluOmh9PXBTKGYpLnNjYWxlc1swXSx2PW8oZiksZz17bGVnZW5kOmYsY2hhbm5lbDpkLGNoYW5uZWxzOnYsYWxsQ2hhbm5lbHM6Y307cmV0dXJuIGYuY2xhc3NOYW1lPT09ZDQ/TlUocix7bGVnZW5kczp2NCxtYXJrZXI6aDQsbGFiZWw6cDQsZGF0dW06eT0+e2NvbnN0e19fZGF0YV9fOmJ9PXkse2luZGV4Onh9PWI7cmV0dXJuIGhbeF19LGZpbHRlcjp5PT57Y29uc3QgYj1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZykse3ZhbHVlOnksb3JkaW5hbDohMH0pO2woYT9pOnQsYil9LHN0YXRlOmYuYXR0cmlidXRlcy5zdGF0ZSxjaGFubmVsOmQsZW1pdHRlcjpufSk6SVUocix7bGVnZW5kOmYsZmlsdGVyOnk9Pntjb25zdCBiPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxnKSx7dmFsdWU6eSxvcmRpbmFsOiExfSk7bChhP2k6dCxiKX0sZW1pdHRlcjpuLGNoYW5uZWw6ZH0pfSk7cmV0dXJuKCk9Pnt1LmZvckVhY2goZj0+ZigpKX19fWZ1bmN0aW9uIEZVKCl7cmV0dXJuKHQsZSxuKT0+e2NvbnN0e2NvbnRhaW5lcjpyLHZpZXc6aSxvcHRpb25zOmF9PXQsbz1oUyhyKSxzPWNsKHIpLGM9aD0+cFMoaCkuc2NhbGVzWzBdLm5hbWUsbD1oPT57Y29uc3R7c2NhbGU6e1toXTp2fX09aTtyZXR1cm4gdn0sdT1sZChhLFsiYWN0aXZlIiwiaW5hY3RpdmUiXSksZj1VcChzLHd1KGkpKSxkPVtdO2Zvcihjb25zdCBoIG9mIG8pe2NvbnN0IHY9WD0+e2NvbnN0e2RhdGE6UX09aC5hdHRyaWJ1dGVzLHtfX2RhdGFfXzp0dH09WCx7aW5kZXg6bnR9PXR0O3JldHVybiBRW250XS5sYWJlbH0sZz1jKGgpLHk9djQoaCksYj1sKGcpLHg9ZHIocyxYPT5iLmludmVydChYLl9fZGF0YV9fW2ddKSkse3N0YXRlOl89e319PWguYXR0cmlidXRlcyx7aW5hY3RpdmU6dz17fX09Xyx7c2V0U3RhdGU6TyxyZW1vdmVTdGF0ZTpFfT1sYyh1LGYpLE09e2luYWN0aXZlOiR0KHcsIm1hcmtlciIpfSxrPXtpbmFjdGl2ZTokdCh3LCJsYWJlbCIpfSx7c2V0U3RhdGU6QSxyZW1vdmVTdGF0ZTpQfT1sYyhNKSx7c2V0U3RhdGU6QyxyZW1vdmVTdGF0ZTpOfT1sYyhrKSxMPVg9Pntmb3IoY29uc3QgUSBvZiB5KXtjb25zdCB0dD1oNChRKSxudD1wNChRKTtRPT09WHx8WD09PW51bGw/KFAodHQsImluYWN0aXZlIiksTihudCwiaW5hY3RpdmUiKSk6KEEodHQsImluYWN0aXZlIiksQyhudCwiaW5hY3RpdmUiKSl9fSxSPShYLFEpPT57Y29uc3QgdHQ9dihRKSxudD1uZXcgU2V0KHguZ2V0KHR0KSk7Zm9yKGNvbnN0IGx0IG9mIHMpbnQuaGFzKGx0KT9PKGx0LCJhY3RpdmUiKTpPKGx0LCJpbmFjdGl2ZSIpO0woUSk7Y29uc3R7bmF0aXZlRXZlbnQ6aHQ9ITB9PVg7aHQmJm4uZW1pdCgibGVnZW5kOmhpZ2hsaWdodCIsT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LFgpLHtuYXRpdmVFdmVudDpodCxkYXRhOntjaGFubmVsOmcsdmFsdWU6dHR9fSkpfSxJPW5ldyBNYXA7Zm9yKGNvbnN0IFggb2YgeSl7Y29uc3QgUT10dD0+e1IodHQsWCl9O1guYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcm92ZXIiLFEpLEkuc2V0KFgsUSl9Y29uc3QgRD1YPT57Zm9yKGNvbnN0IHR0IG9mIHMpRSh0dCwiaW5hY3RpdmUiLCJhY3RpdmUiKTtMKG51bGwpO2NvbnN0e25hdGl2ZUV2ZW50OlE9ITB9PVg7USYmbi5lbWl0KCJsZWdlbmQ6dW5oaWdobGlnaHQiLHtuYXRpdmVFdmVudDpRfSl9LEc9WD0+e2NvbnN0e25hdGl2ZUV2ZW50OlEsZGF0YTp0dH09WDtpZihRKXJldHVybjtjb25zdHtjaGFubmVsOm50LHZhbHVlOmh0fT10dDtpZihudCE9PWcpcmV0dXJuO2NvbnN0IGx0PXkuZmluZCh3dD0+dih3dCk9PT1odCk7bHQmJlIoe25hdGl2ZUV2ZW50OiExfSxsdCl9LEY9WD0+e2NvbnN0e25hdGl2ZUV2ZW50OlF9PVg7UXx8RCh7bmF0aXZlRXZlbnQ6ITF9KX07aC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybGVhdmUiLEQpLG4ub24oImxlZ2VuZDpoaWdobGlnaHQiLEcpLG4ub24oImxlZ2VuZDp1bmhpZ2hsaWdodCIsRik7Y29uc3QgVz0oKT0+e2gucmVtb3ZlRXZlbnRMaXN0ZW5lcihEKSxuLm9mZigibGVnZW5kOmhpZ2hsaWdodCIsRyksbi5vZmYoImxlZ2VuZDp1bmhpZ2hsaWdodCIsRik7Zm9yKGNvbnN0W1gsUV1vZiBJKVgucmVtb3ZlRXZlbnRMaXN0ZW5lcihRKX07ZC5wdXNoKFcpfXJldHVybigpPT5kLmZvckVhY2goaD0+aCgpKX19dmFyIE1vPWZ1bmN0aW9uKHQsZSl7dmFyIG49e307Zm9yKHZhciByIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscikmJmUuaW5kZXhPZihyKTwwJiYobltyXT10W3JdKTtpZih0IT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIGk9MCxyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCk7aTxyLmxlbmd0aDtpKyspZS5pbmRleE9mKHJbaV0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh0LHJbaV0pJiYobltyW2ldXT10W3JbaV1dKTtyZXR1cm4gbn07ZnVuY3Rpb24gQlUodCxlKXtjb25zdFtuLHIsaSxhXT10LFtvLHMsYyxsXT1lO3JldHVybiEobz5pfHxjPG58fHM+YXx8bDxyKX1mdW5jdGlvbiB6VSh0LGUsbixyLGkpe2NvbnN0W2EsbyxzLGNdPWk7cmV0dXJuW01hdGgubWF4KGEsTWF0aC5taW4odCxuKSksTWF0aC5tYXgobyxNYXRoLm1pbihlLHIpKSxNYXRoLm1pbihzLE1hdGgubWF4KHQsbikpLE1hdGgubWluKGMsTWF0aC5tYXgoZSxyKSldfWZ1bmN0aW9uIFdVKHQpe2NvbnN0e3dpZHRoOmUsaGVpZ2h0Om59PXQuZ2V0QkJveCgpO3JldHVyblswLDAsZSxuXX1mdW5jdGlvbiBkYyh0LGUpe2Zvcihjb25zdFtuLHJdb2YgT2JqZWN0LmVudHJpZXMoZSkpdC5zdHlsZShuLHIpfWNvbnN0IG00PWFkKHQ9Pntjb25zdCBlPXQuYXR0cmlidXRlcyx7eDpuLHk6cix3aWR0aDppLGhlaWdodDphLGNsYXNzOm8scmVuZGVyczpzPXt9LGhhbmRsZVNpemU6Yz0xMCxkb2N1bWVudDpsfT1lLHU9TW8oZSxbIngiLCJ5Iiwid2lkdGgiLCJoZWlnaHQiLCJjbGFzcyIsInJlbmRlcnMiLCJoYW5kbGVTaXplIiwiZG9jdW1lbnQiXSk7aWYoIWx8fGk9PT12b2lkIDB8fGE9PT12b2lkIDB8fG49PT12b2lkIDB8fHI9PT12b2lkIDApcmV0dXJuO2NvbnN0IGY9Yy8yLGQ9KGh0LGx0LHd0KT0+e2h0LmhhbmRsZXx8KGh0LmhhbmRsZT13dC5jcmVhdGVFbGVtZW50KCJyZWN0IiksaHQuYXBwZW5kKGh0LmhhbmRsZSkpO2NvbnN0e2hhbmRsZTp5dH09aHQ7cmV0dXJuIHl0LmF0dHIobHQpLHl0fSxoPSR0KEpfKHUsImhhbmRsZU5XIiwiaGFuZGxlTkUiKSwiaGFuZGxlTiIpLHtyZW5kZXI6dj1kfT1oLGc9TW8oaCxbInJlbmRlciJdKSx5PSR0KHUsImhhbmRsZUUiKSx7cmVuZGVyOmI9ZH09eSx4PU1vKHksWyJyZW5kZXIiXSksXz0kdChKXyh1LCJoYW5kbGVTRSIsImhhbmRsZVNXIiksImhhbmRsZVMiKSx7cmVuZGVyOnc9ZH09XyxPPU1vKF8sWyJyZW5kZXIiXSksRT0kdCh1LCJoYW5kbGVXIikse3JlbmRlcjpNPWR9PUUsaz1NbyhFLFsicmVuZGVyIl0pLEE9JHQodSwiaGFuZGxlTlciKSx7cmVuZGVyOlA9ZH09QSxDPU1vKEEsWyJyZW5kZXIiXSksTj0kdCh1LCJoYW5kbGVORSIpLHtyZW5kZXI6TD1kfT1OLFI9TW8oTixbInJlbmRlciJdKSxJPSR0KHUsImhhbmRsZVNFIikse3JlbmRlcjpEPWR9PUksRz1NbyhJLFsicmVuZGVyIl0pLEY9JHQodSwiaGFuZGxlU1ciKSx7cmVuZGVyOlc9ZH09RixYPU1vKEYsWyJyZW5kZXIiXSksUT0oaHQsbHQpPT57Y29uc3R7aWQ6d3R9PWh0LHl0PWx0KGh0LGh0LmF0dHJpYnV0ZXMsbCk7eXQuaWQ9d3QseXQuc3R5bGUuZHJhZ2dhYmxlPSEwfSx0dD1odD0+KCk9Pntjb25zdCBsdD1hZCh3dD0+USh3dCxodCkpO3JldHVybiBuZXcgbHQoe30pfSxudD1PZSh0KS5hdHRyKCJjbGFzc05hbWUiLG8pLnN0eWxlKCJ0cmFuc2Zvcm0iLGB0cmFuc2xhdGUoJHtufSwgJHtyfSlgKS5zdHlsZSgiZHJhZ2dhYmxlIiwhMCk7bnQubWF5YmVBcHBlbmQoInNlbGVjdGlvbiIsInJlY3QiKS5zdHlsZSgiZHJhZ2dhYmxlIiwhMCkuc3R5bGUoImZpbGwiLCJ0cmFuc3BhcmVudCIpLmNhbGwoZGMsT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt3aWR0aDppLGhlaWdodDphfSxKXyh1LCJoYW5kbGUiKSkse3RyYW5zZm9ybTp2b2lkIDB9KSksbnQubWF5YmVBcHBlbmQoImhhbmRsZS1uIix0dCh2KSkuc3R5bGUoIngiLGYpLnN0eWxlKCJ5IiwtZikuc3R5bGUoIndpZHRoIixpLWMpLnN0eWxlKCJoZWlnaHQiLGMpLnN0eWxlKCJmaWxsIiwidHJhbnNwYXJlbnQiKS5jYWxsKGRjLGcpLG50Lm1heWJlQXBwZW5kKCJoYW5kbGUtZSIsdHQoYikpLnN0eWxlKCJ4IixpLWYpLnN0eWxlKCJ5IixmKS5zdHlsZSgid2lkdGgiLGMpLnN0eWxlKCJoZWlnaHQiLGEtYykuc3R5bGUoImZpbGwiLCJ0cmFuc3BhcmVudCIpLmNhbGwoZGMseCksbnQubWF5YmVBcHBlbmQoImhhbmRsZS1zIix0dCh3KSkuc3R5bGUoIngiLGYpLnN0eWxlKCJ5IixhLWYpLnN0eWxlKCJ3aWR0aCIsaS1jKS5zdHlsZSgiaGVpZ2h0IixjKS5zdHlsZSgiZmlsbCIsInRyYW5zcGFyZW50IikuY2FsbChkYyxPKSxudC5tYXliZUFwcGVuZCgiaGFuZGxlLXciLHR0KE0pKS5zdHlsZSgieCIsLWYpLnN0eWxlKCJ5IixmKS5zdHlsZSgid2lkdGgiLGMpLnN0eWxlKCJoZWlnaHQiLGEtYykuc3R5bGUoImZpbGwiLCJ0cmFuc3BhcmVudCIpLmNhbGwoZGMsayksbnQubWF5YmVBcHBlbmQoImhhbmRsZS1udyIsdHQoUCkpLnN0eWxlKCJ4IiwtZikuc3R5bGUoInkiLC1mKS5zdHlsZSgid2lkdGgiLGMpLnN0eWxlKCJoZWlnaHQiLGMpLnN0eWxlKCJmaWxsIiwidHJhbnNwYXJlbnQiKS5jYWxsKGRjLEMpLG50Lm1heWJlQXBwZW5kKCJoYW5kbGUtbmUiLHR0KEwpKS5zdHlsZSgieCIsaS1mKS5zdHlsZSgieSIsLWYpLnN0eWxlKCJ3aWR0aCIsYykuc3R5bGUoImhlaWdodCIsYykuc3R5bGUoImZpbGwiLCJ0cmFuc3BhcmVudCIpLmNhbGwoZGMsUiksbnQubWF5YmVBcHBlbmQoImhhbmRsZS1zZSIsdHQoRCkpLnN0eWxlKCJ4IixpLWYpLnN0eWxlKCJ5IixhLWYpLnN0eWxlKCJ3aWR0aCIsYykuc3R5bGUoImhlaWdodCIsYykuc3R5bGUoImZpbGwiLCJ0cmFuc3BhcmVudCIpLmNhbGwoZGMsRyksbnQubWF5YmVBcHBlbmQoImhhbmRsZS1zdyIsdHQoVykpLnN0eWxlKCJ4IiwtZikuc3R5bGUoInkiLGEtZikuc3R5bGUoIndpZHRoIixjKS5zdHlsZSgiaGVpZ2h0IixjKS5zdHlsZSgiZmlsbCIsInRyYW5zcGFyZW50IikuY2FsbChkYyxYKX0pO2Z1bmN0aW9uIHZTKHQsZSl7dmFye2JydXNoZWQ6bj0oKT0+e30sYnJ1c2hlbmRlZDpyPSgpPT57fSxicnVzaGNyZWF0ZWQ6aT0oKT0+e30sYnJ1c2hzdGFydGVkOmE9KCk9Pnt9LGJydXNodXBkYXRlZDpvPSgpPT57fSxleHRlbnQ6cz1XVSh0KSxicnVzaFJlZ2lvbjpjPSh5dCxndCxCdCxMdCxJdCk9Plt5dCxndCxCdCxMdF0scmV2ZXJzZTpsPSExLGZpbGw6dT0iIzc3NyIsZmlsbE9wYWNpdHk6Zj0iMC4zIixzdHJva2U6ZD0iI2ZmZiIsc2VsZWN0ZWRIYW5kbGVzOmg9WyJoYW5kbGUtbiIsImhhbmRsZS1lIiwiaGFuZGxlLXMiLCJoYW5kbGUtdyIsImhhbmRsZS1udyIsImhhbmRsZS1uZSIsImhhbmRsZS1zZSIsImhhbmRsZS1zdyJdfT1lLHY9TW8oZSxbImJydXNoZWQiLCJicnVzaGVuZGVkIiwiYnJ1c2hjcmVhdGVkIiwiYnJ1c2hzdGFydGVkIiwiYnJ1c2h1cGRhdGVkIiwiZXh0ZW50IiwiYnJ1c2hSZWdpb24iLCJyZXZlcnNlIiwiZmlsbCIsImZpbGxPcGFjaXR5Iiwic3Ryb2tlIiwic2VsZWN0ZWRIYW5kbGVzIl0pO2xldCBnPW51bGwseT1udWxsLGI9bnVsbCx4PW51bGwsXz1udWxsLHc9ITE7Y29uc3RbTyxFLE0sa109cztsbCh0LCJjcm9zc2hhaXIiKSx0LnN0eWxlLmRyYWdnYWJsZT0hMDtjb25zdCBBPSh5dCxndCxCdCk9PntpZihhKEJ0KSx4JiZ4LnJlbW92ZSgpLF8mJl8ucmVtb3ZlKCksZz1beXQsZ3RdLGwpcmV0dXJuIFAoKTtDKCl9LFA9KCk9PntfPW5ldyBRaSh7c3R5bGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHYpLHtmaWxsOnUsZmlsbE9wYWNpdHk6ZixzdHJva2U6ZCxwb2ludGVyRXZlbnRzOiJub25lIn0pfSkseD1uZXcgbTQoe3N0eWxlOnt4OjAseTowLHdpZHRoOjAsaGVpZ2h0OjAsZHJhZ2dhYmxlOiEwLGRvY3VtZW50OnQub3duZXJEb2N1bWVudH0sY2xhc3NOYW1lOiJtYXNrIn0pLHQuYXBwZW5kQ2hpbGQoXyksdC5hcHBlbmRDaGlsZCh4KX0sQz0oKT0+e3g9bmV3IG00KHtzdHlsZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe2RvY3VtZW50OnQub3duZXJEb2N1bWVudCx4OjAseTowfSx2KSx7ZmlsbDp1LGZpbGxPcGFjaXR5OmYsc3Ryb2tlOmQsZHJhZ2dhYmxlOiEwfSksY2xhc3NOYW1lOiJtYXNrIn0pLHQuYXBwZW5kQ2hpbGQoeCl9LE49KHl0PSEwKT0+e3gmJngucmVtb3ZlKCksXyYmXy5yZW1vdmUoKSxnPW51bGwseT1udWxsLGI9bnVsbCx3PSExLHg9bnVsbCxfPW51bGwscih5dCl9LEw9KHl0LGd0LEJ0PSEwKT0+e2NvbnN0W0x0LEl0LGp0LFF0XT16VSh5dFswXSx5dFsxXSxndFswXSxndFsxXSxzKSxbdWUseWUsS2UsYmVdPWMoTHQsSXQsanQsUXQscyk7cmV0dXJuIGw/SSh1ZSx5ZSxLZSxiZSk6Uih1ZSx5ZSxLZSxiZSksbih1ZSx5ZSxLZSxiZSxCdCksW3VlLHllLEtlLGJlXX0sUj0oeXQsZ3QsQnQsTHQpPT57eC5zdHlsZS54PXl0LHguc3R5bGUueT1ndCx4LnN0eWxlLndpZHRoPUJ0LXl0LHguc3R5bGUuaGVpZ2h0PUx0LWd0fSxJPSh5dCxndCxCdCxMdCk9PntfLnN0eWxlLmQ9YAorICAgICAgTSR7T30sJHtFfUwke019LCR7RX1MJHtNfSwke2t9TCR7T30sJHtrfVoKKyAgICAgIE0ke3l0fSwke2d0fUwke3l0fSwke0x0fUwke0J0fSwke0x0fUwke0J0fSwke2d0fVoKKyAgICBgLHguc3R5bGUueD15dCx4LnN0eWxlLnk9Z3QseC5zdHlsZS53aWR0aD1CdC15dCx4LnN0eWxlLmhlaWdodD1MdC1ndH0sRD15dD0+e2NvbnN0IGd0PSh5ZSxLZSxiZSxOZSxQbik9PnllK0tlPE5lP05lLUtlOnllK2JlPlBuP1BuLWJlOnllLEJ0PXl0WzBdLWJbMF0sTHQ9eXRbMV0tYlsxXSxJdD1ndChCdCxnWzBdLHlbMF0sTyxNKSxqdD1ndChMdCxnWzFdLHlbMV0sRSxrKSxRdD1bZ1swXStJdCxnWzFdK2p0XSx1ZT1beVswXStJdCx5WzFdK2p0XTtMKFF0LHVlKX0sRz17ImhhbmRsZS1uIjp7dmVjdG9yOlswLDEsMCwwXSxjdXJzb3I6Im5zLXJlc2l6ZSJ9LCJoYW5kbGUtZSI6e3ZlY3RvcjpbMCwwLDEsMF0sY3Vyc29yOiJldy1yZXNpemUifSwiaGFuZGxlLXMiOnt2ZWN0b3I6WzAsMCwwLDFdLGN1cnNvcjoibnMtcmVzaXplIn0sImhhbmRsZS13Ijp7dmVjdG9yOlsxLDAsMCwwXSxjdXJzb3I6ImV3LXJlc2l6ZSJ9LCJoYW5kbGUtbnciOnt2ZWN0b3I6WzEsMSwwLDBdLGN1cnNvcjoibndzZS1yZXNpemUifSwiaGFuZGxlLW5lIjp7dmVjdG9yOlswLDEsMSwwXSxjdXJzb3I6Im5lc3ctcmVzaXplIn0sImhhbmRsZS1zZSI6e3ZlY3RvcjpbMCwwLDEsMV0sY3Vyc29yOiJud3NlLXJlc2l6ZSJ9LCJoYW5kbGUtc3ciOnt2ZWN0b3I6WzEsMCwwLDFdLGN1cnNvcjoibmVzdy1yZXNpemUifX0sRj15dD0+WCh5dCl8fFcoeXQpLFc9eXQ9Pntjb25zdHtpZDpndH09eXQ7cmV0dXJuIGguaW5kZXhPZihndCk9PT0tMT8hMTpuZXcgU2V0KE9iamVjdC5rZXlzKEcpKS5oYXMoZ3QpfSxYPXl0PT55dD09PXguZ2V0RWxlbWVudEJ5SWQoInNlbGVjdGlvbiIpLFE9eXQ9Pntjb25zdHt0YXJnZXQ6Z3R9PXl0LFtCdCxMdF09WHcodCx5dCk7aWYoIXh8fCFGKGd0KSl7QShCdCxMdCx5dCksdz0hMDtyZXR1cm59RihndCkmJihiPVtCdCxMdF0pfSx0dD15dD0+e2NvbnN0e3RhcmdldDpndH09eXQsQnQ9WHcodCx5dCk7aWYoIWcpcmV0dXJuO2lmKCFiKXJldHVybiBMKGcsQnQpO2lmKFgoZ3QpKXJldHVybiBEKEJ0KTtjb25zdFtMdCxJdF09W0J0WzBdLWJbMF0sQnRbMV0tYlsxXV0se2lkOmp0fT1ndDtpZihHW2p0XSl7Y29uc3RbUXQsdWUseWUsS2VdPUdbanRdLnZlY3RvcjtyZXR1cm4gTChbZ1swXStMdCpRdCxnWzFdK0l0KnVlXSxbeVswXStMdCp5ZSx5WzFdK0l0KktlXSl9fSxudD15dD0+e2lmKGIpe2I9bnVsbDtjb25zdHt4Omp0LHk6UXQsd2lkdGg6dWUsaGVpZ2h0OnllfT14LnN0eWxlO2c9W2p0LFF0XSx5PVtqdCt1ZSxRdCt5ZV0sbyhqdCxRdCxqdCt1ZSxRdCt5ZSx5dCk7cmV0dXJufXk9WHcodCx5dCk7Y29uc3RbZ3QsQnQsTHQsSXRdPUwoZyx5KTt3PSExLGkoZ3QsQnQsTHQsSXQseXQpfSxodD15dD0+e2NvbnN0e3RhcmdldDpndH09eXQ7eCYmIUYoZ3QpJiZOKCl9LGx0PXl0PT57Y29uc3R7dGFyZ2V0Omd0fT15dDsheHx8IUYoZ3QpfHx3P2xsKHQsImNyb3NzaGFpciIpOlgoZ3QpP2xsKHQsIm1vdmUiKTpXKGd0KSYmbGwodCxHW2d0LmlkXS5jdXJzb3IpfSx3dD0oKT0+e2xsKHQsImRlZmF1bHQiKX07cmV0dXJuIHQuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ3N0YXJ0IixRKSx0LmFkZEV2ZW50TGlzdGVuZXIoImRyYWciLHR0KSx0LmFkZEV2ZW50TGlzdGVuZXIoImRyYWdlbmQiLG50KSx0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixodCksdC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsbHQpLHQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmxlYXZlIix3dCkse21hc2s6eCxtb3ZlKHl0LGd0LEJ0LEx0LEl0PSEwKXt4fHxBKHl0LGd0LHt9KSxnPVt5dCxndF0seT1bQnQsTHRdLEwoW3l0LGd0XSxbQnQsTHRdLEl0KX0scmVtb3ZlKHl0PSEwKXt4JiZOKHl0KX0sZGVzdHJveSgpe3gmJk4oITEpLGxsKHQsImRlZmF1bHQiKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImRyYWdzdGFydCIsUSksdC5yZW1vdmVFdmVudExpc3RlbmVyKCJkcmFnIix0dCksdC5yZW1vdmVFdmVudExpc3RlbmVyKCJkcmFnZW5kIixudCksdC5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsaHQpLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLGx0KSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJsZWF2ZSIsd3QpfX19ZnVuY3Rpb24gZ1ModCxlLG4pe3JldHVybiBlLmZpbHRlcihyPT57aWYocj09PXQpcmV0dXJuITE7Y29uc3R7aW50ZXJhY3Rpb246aT17fX09ci5vcHRpb25zO3JldHVybiBPYmplY3QudmFsdWVzKGkpLmZpbmQoYT0+YS5icnVzaEtleT09PW4pfSl9ZnVuY3Rpb24gR1UodCxlLG4pe3JldHVybiBnUyh0LGUsbikubWFwKHI9PnlzKHIuY29udGFpbmVyKSl9ZnVuY3Rpb24gJFUodCxlLG4pe3JldHVybiBnUyh0LGUsbikubWFwKHI9PnIub3B0aW9ucyl9ZnVuY3Rpb24gYjQodCxlKXt2YXJ7ZWxlbWVudHM6bixzZWxlY3RlZEhhbmRsZXM6cixzaWJsaW5nczppPXR0PT5bXSxkYXR1bTphLGJydXNoUmVnaW9uOm8sZXh0ZW50OnMscmV2ZXJzZTpjLHNjYWxlOmwsY29vcmRpbmF0ZTp1LHNlcmllczpmPSExLGtleTpkPXR0PT50dCxiYm94T2Y6aD10dD0+e2NvbnN0e3g6bnQseTpodCx3aWR0aDpsdCxoZWlnaHQ6d3R9PXR0LnN0eWxlO3JldHVybnt4Om50LHk6aHQsd2lkdGg6bHQsaGVpZ2h0Ond0fX0sc3RhdGU6dj17fSxlbWl0dGVyOmd9PWUseT1NbyhlLFsiZWxlbWVudHMiLCJzZWxlY3RlZEhhbmRsZXMiLCJzaWJsaW5ncyIsImRhdHVtIiwiYnJ1c2hSZWdpb24iLCJleHRlbnQiLCJyZXZlcnNlIiwic2NhbGUiLCJjb29yZGluYXRlIiwic2VyaWVzIiwia2V5IiwiYmJveE9mIiwic3RhdGUiLCJlbWl0dGVyIl0pO2NvbnN0IGI9bih0KSx4PWkodCksXz14LmZsYXRNYXAobiksdz1VcChiLGEpLE89JHQoeSwibWFzayIpLHtzZXRTdGF0ZTpFLHJlbW92ZVN0YXRlOk19PWxjKHYsdyksaz1uZXcgTWFwLHt3aWR0aDpBLGhlaWdodDpQLHg6Qz0wLHk6Tj0wfT1oKHQpLEw9c3x8WzAsMCxBLFBdLFI9KCk9Pntmb3IoY29uc3QgdHQgb2ZbLi4uYiwuLi5fXSlNKHR0LCJhY3RpdmUiLCJpbmFjdGl2ZSIpfSxJPSh0dCxudCxodCxsdCk9Pnt2YXIgd3Q7Zm9yKGNvbnN0IGd0IG9mIHgpKHd0PWd0LmJydXNoKT09PW51bGx8fHd0PT09dm9pZCAwfHx3dC5yZW1vdmUoKTtjb25zdCB5dD1uZXcgU2V0O2Zvcihjb25zdCBndCBvZiBiKXtjb25zdHttaW46QnQsbWF4Okx0fT1ndC5nZXRMb2NhbEJvdW5kcygpLFtJdCxqdF09QnQsW1F0LHVlXT1MdDtCVShbSXQsanQsUXQsdWVdLFt0dCxudCxodCxsdF0pPyhFKGd0LCJhY3RpdmUiKSx5dC5hZGQoZChndCkpKTpFKGd0LCJpbmFjdGl2ZSIpfWZvcihjb25zdCBndCBvZiBfKXl0LmhhcyhkKGd0KSk/RShndCwiYWN0aXZlIik6RShndCwiaW5hY3RpdmUiKX0sRD0oKT0+e2Zvcihjb25zdCB0dCBvZiBiKU0odHQsImluYWN0aXZlIik7Zm9yKGNvbnN0IHR0IG9mIGsudmFsdWVzKCkpdHQucmVtb3ZlKCk7ay5jbGVhcigpfSxHPSh0dCxudCxodCxsdCk9Pntjb25zdCB3dD1ndD0+e2NvbnN0IEJ0PWd0LmNsb25lTm9kZSgpO3JldHVybiBCdC5fX2RhdGFfXz1ndC5fX2RhdGFfXyxndC5wYXJlbnROb2RlLmFwcGVuZENoaWxkKEJ0KSxrLnNldChndCxCdCksQnR9LHl0PW5ldyBRYyh7c3R5bGU6e3g6dHQrQyx5Om50K04sd2lkdGg6aHQtdHQsaGVpZ2h0Omx0LW50fX0pO3QuYXBwZW5kQ2hpbGQoeXQpO2Zvcihjb25zdCBndCBvZiBiKXtjb25zdCBCdD1rLmdldChndCl8fHd0KGd0KTtCdC5zdHlsZS5jbGlwUGF0aD15dCxFKGd0LCJpbmFjdGl2ZSIpLEUoQnQsImFjdGl2ZSIpfX0sRj12Uyh0LE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxPKSx7ZXh0ZW50OkwsYnJ1c2hSZWdpb246byxyZXZlcnNlOmMsc2VsZWN0ZWRIYW5kbGVzOnIsYnJ1c2hlbmRlZDp0dD0+e2NvbnN0IG50PWY/RDpSO3R0JiZnLmVtaXQoImJydXNoOnJlbW92ZSIse25hdGl2ZUV2ZW50OiEwfSksbnQoKX0sYnJ1c2hlZDoodHQsbnQsaHQsbHQsd3QpPT57Y29uc3QgeXQ9QW0odHQsbnQsaHQsbHQsbCx1KTt3dCYmZy5lbWl0KCJicnVzaDpoaWdobGlnaHQiLHtuYXRpdmVFdmVudDohMCxkYXRhOntzZWxlY3Rpb246eXR9fSksKGY/RzpJKSh0dCxudCxodCxsdCl9LGJydXNoY3JlYXRlZDoodHQsbnQsaHQsbHQsd3QpPT57Y29uc3QgeXQ9QW0odHQsbnQsaHQsbHQsbCx1KTtnLmVtaXQoImJydXNoOmVuZCIsT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHd0KSx7bmF0aXZlRXZlbnQ6ITAsZGF0YTp7c2VsZWN0aW9uOnl0fX0pKX0sYnJ1c2h1cGRhdGVkOih0dCxudCxodCxsdCx3dCk9Pntjb25zdCB5dD1BbSh0dCxudCxodCxsdCxsLHUpO2cuZW1pdCgiYnJ1c2g6ZW5kIixPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sd3QpLHtuYXRpdmVFdmVudDohMCxkYXRhOntzZWxlY3Rpb246eXR9fSkpfSxicnVzaHN0YXJ0ZWQ6dHQ9PntnLmVtaXQoImJydXNoOnN0YXJ0Iix0dCl9fSkpLFc9KHtuYXRpdmVFdmVudDp0dCxkYXRhOm50fSk9PntpZih0dClyZXR1cm47Y29uc3R7c2VsZWN0aW9uOmh0fT1udCxbbHQsd3QseXQsZ3RdPUp6KGh0LGwsdSk7Ri5tb3ZlKGx0LHd0LHl0LGd0LCExKX07Zy5vbigiYnJ1c2g6aGlnaGxpZ2h0IixXKTtjb25zdCBYPSh7bmF0aXZlRXZlbnQ6dHR9PXt9KT0+e3R0fHxGLnJlbW92ZSghMSl9O2cub24oImJydXNoOnJlbW92ZSIsWCk7Y29uc3QgUT1GLmRlc3Ryb3kuYmluZChGKTtyZXR1cm4gRi5kZXN0cm95PSgpPT57Zy5vZmYoImJydXNoOmhpZ2hsaWdodCIsVyksZy5vZmYoImJydXNoOnJlbW92ZSIsWCksUSgpfSxGfWZ1bmN0aW9uIHlTKHQpe3ZhcntmYWNldDplLGJydXNoS2V5Om59PXQscj1Nbyh0LFsiZmFjZXQiLCJicnVzaEtleSJdKTtyZXR1cm4oaSxhLG8pPT57Y29uc3R7Y29udGFpbmVyOnMsdmlldzpjLG9wdGlvbnM6bH09aSx1PXlzKHMpLGY9e21hc2tGaWxsOiIjNzc3IixtYXNrRmlsbE9wYWNpdHk6IjAuMyIsbWFza1N0cm9rZToiI2ZmZiIscmV2ZXJzZTohMX0sZD1bImFjdGl2ZSIsWyJpbmFjdGl2ZSIse29wYWNpdHk6LjV9XV0se3NjYWxlOmgsY29vcmRpbmF0ZTp2fT1jO2lmKGUpe2NvbnN0IHk9dS5nZXRCb3VuZHMoKSxiPXkubWluWzBdLHg9eS5taW5bMV0sXz15Lm1heFswXSx3PXkubWF4WzFdO3JldHVybiBiNCh1LnBhcmVudE5vZGUucGFyZW50Tm9kZSxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe2VsZW1lbnRzOigpPT5ZUChpLGEpLGRhdHVtOnd1KFZ3KGksYSkubWFwKE89Pk8udmlldykpLGJydXNoUmVnaW9uOihPLEUsTSxrKT0+W08sRSxNLGtdLGV4dGVudDpbYix4LF8sd10sc3RhdGU6bGQoVncoaSxhKS5tYXAoTz0+Ty5vcHRpb25zKSxkKSxlbWl0dGVyOm8sc2NhbGU6aCxjb29yZGluYXRlOnYsc2VsZWN0ZWRIYW5kbGVzOnZvaWQgMH0sZikscikpfWNvbnN0IGc9YjQodSxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe2VsZW1lbnRzOmNsLGtleTp5PT55Ll9fZGF0YV9fLmtleSxzaWJsaW5nczooKT0+R1UoaSxhLG4pLGRhdHVtOnd1KFtjLC4uLmdTKGksYSxuKS5tYXAoeT0+eS52aWV3KV0pLGJydXNoUmVnaW9uOih5LGIseCxfKT0+W3ksYix4LF9dLGV4dGVudDp2b2lkIDAsc3RhdGU6bGQoW2wsLi4uJFUoaSxhLG4pXSxkKSxlbWl0dGVyOm8sc2NhbGU6aCxjb29yZGluYXRlOnYsc2VsZWN0ZWRIYW5kbGVzOnZvaWQgMH0sZikscikpO3JldHVybiB1LmJydXNoPWcsKCk9PmcuZGVzdHJveSgpfX1mdW5jdGlvbiBtUyh0LGUsbixyLGkpe2NvbnN0WyxhLCxvXT1pO3JldHVyblt0LGEsbixvXX1mdW5jdGlvbiBaVSh0KXtyZXR1cm4geVMoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHticnVzaFJlZ2lvbjptUyxzZWxlY3RlZEhhbmRsZXM6WyJoYW5kbGUtZSIsImhhbmRsZS13Il19KSl9ZnVuY3Rpb24gYlModCxlLG4scixpKXtjb25zdFthLCxvXT1pO3JldHVyblthLGUsbyxyXX1mdW5jdGlvbiBZVSh0KXtyZXR1cm4geVMoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHticnVzaFJlZ2lvbjpiUyxzZWxlY3RlZEhhbmRsZXM6WyJoYW5kbGUtbiIsImhhbmRsZS1zIl19KSl9dmFyIHhTPWZ1bmN0aW9uKHQsZSl7dmFyIG49e307Zm9yKHZhciByIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscikmJmUuaW5kZXhPZihyKTwwJiYobltyXT10W3JdKTtpZih0IT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIGk9MCxyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCk7aTxyLmxlbmd0aDtpKyspZS5pbmRleE9mKHJbaV0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh0LHJbaV0pJiYobltyW2ldXT10W3JbaV1dKTtyZXR1cm4gbn07Y29uc3QgSFU9ImF4aXMiLFZVPSJheGlzLWxpbmUiLFhVPSJheGlzLW1haW4tZ3JvdXAiLHg0PSJheGlzLWhvdC1hcmVhIjtmdW5jdGlvbiBVVSh0KXtyZXR1cm4gdC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKEhVKX1mdW5jdGlvbiBfNCh0KXtyZXR1cm4gdC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFZVKVswXX1mdW5jdGlvbiBxVSh0KXtyZXR1cm4gdC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFhVKVswXX1mdW5jdGlvbiB3NCh0KXtyZXR1cm4gcVUodCkuZ2V0TG9jYWxCb3VuZHMoKX1mdW5jdGlvbiBLVSh0LGUpe3Zhcntjcm9zczpuLG9mZnNldFg6cixvZmZzZXRZOml9PWUsYT14UyhlLFsiY3Jvc3MiLCJvZmZzZXRYIiwib2Zmc2V0WSJdKTtjb25zdCBvPXc0KHQpLHM9XzQodCksW2NdPXMuZ2V0TG9jYWxCb3VuZHMoKS5taW4sW2wsdV09by5taW4sW2YsZF09by5tYXgsaD0oZi1sKSoyO3JldHVybnticnVzaFJlZ2lvbjpiUyxob3Rab25lOm5ldyBRYyh7Y2xhc3NOYW1lOng0LHN0eWxlOk9iamVjdC5hc3NpZ24oe3dpZHRoOm4/aC8yOmgsdHJhbnNmb3JtOmB0cmFuc2xhdGUoJHsobj9sOmMtaC8yKS50b0ZpeGVkKDIpfSwgJHt1fSlgLGhlaWdodDpkLXV9LGEpfSksZXh0ZW50Om4/KHYsZyx5LGIpPT5bLTEvMCxnLDEvMCxiXToodixnLHksYik9PltNYXRoLmZsb29yKGwtciksZyxNYXRoLmNlaWwoZi1yKSxiXX19ZnVuY3Rpb24gUVUodCxlKXt2YXJ7b2Zmc2V0WTpuLG9mZnNldFg6cixjcm9zczppPSExfT1lLGE9eFMoZSxbIm9mZnNldFkiLCJvZmZzZXRYIiwiY3Jvc3MiXSk7Y29uc3Qgbz13NCh0KSxzPV80KHQpLFssY109cy5nZXRMb2NhbEJvdW5kcygpLm1pbixbbCx1XT1vLm1pbixbZixkXT1vLm1heCxoPWQtdTtyZXR1cm57YnJ1c2hSZWdpb246bVMsaG90Wm9uZTpuZXcgUWMoe2NsYXNzTmFtZTp4NCxzdHlsZTpPYmplY3QuYXNzaWduKHt3aWR0aDpmLWwsaGVpZ2h0Omk/aDpoKjIsdHJhbnNmb3JtOmB0cmFuc2xhdGUoJHtsfSwgJHtpP3U6Yy1ofSlgfSxhKX0pLGV4dGVudDppPyh2LGcseSxiKT0+W3YsLTEvMCx5LDEvMF06KHYsZyx5LGIpPT5bdixNYXRoLmZsb29yKHUtbikseSxNYXRoLmNlaWwoZC1uKV19fWZ1bmN0aW9uIEpVKHQsZSl7dmFye2F4ZXM6bixlbGVtZW50czpyLHBvaW50czppLGhvcml6b250YWw6YSxkYXR1bTpvLG9mZnNldFk6cyxvZmZzZXRYOmMscmV2ZXJzZTpsPSExLHN0YXRlOnU9e30sZW1pdHRlcjpmLGNvb3JkaW5hdGU6ZH09ZSxoPXhTKGUsWyJheGVzIiwiZWxlbWVudHMiLCJwb2ludHMiLCJob3Jpem9udGFsIiwiZGF0dW0iLCJvZmZzZXRZIiwib2Zmc2V0WCIsInJldmVyc2UiLCJzdGF0ZSIsImVtaXR0ZXIiLCJjb29yZGluYXRlIl0pO2NvbnN0IHY9cih0KSxnPW4odCkseT1VcCh2LG8pLHtzZXRTdGF0ZTpiLHJlbW92ZVN0YXRlOnh9PWxjKHUseSksXz1uZXcgTWFwLHc9JHQoaCwibWFzayIpLE89Vz0+QXJyYXkuZnJvbShfLnZhbHVlcygpKS5ldmVyeSgoW1gsUSx0dCxudF0pPT5XLnNvbWUoKFtodCxsdF0pPT5odD49WCYmaHQ8PXR0JiZsdD49USYmbHQ8PW50KSksRT1nLm1hcChXPT5XLmF0dHJpYnV0ZXMuc2NhbGUpLE09Vz0+Vy5sZW5ndGg+Mj9bV1swXSxXW1cubGVuZ3RoLTFdXTpXLGs9bmV3IE1hcCxBPSgpPT57ay5jbGVhcigpO2ZvcihsZXQgVz0wO1c8Zy5sZW5ndGg7VysrKXtjb25zdCBYPUVbV10se2RvbWFpbjpRfT1YLmdldE9wdGlvbnMoKTtrLnNldChXLE0oUSkpfX07QSgpO2NvbnN0IFA9KFcsWCk9Pntjb25zdCBRPVtdO2Zvcihjb25zdCBudCBvZiB2KXtjb25zdCBodD1pKG50KTtPKGh0KT8oYihudCwiYWN0aXZlIiksUS5wdXNoKG50KSk6YihudCwiaW5hY3RpdmUiKX1pZihrLnNldChXLE4oUSxXKSksIVgpcmV0dXJuO2NvbnN0IHR0PSgpPT57aWYoIUwpcmV0dXJuIEFycmF5LmZyb20oay52YWx1ZXMoKSk7Y29uc3QgbnQ9W107Zm9yKGNvbnN0W2h0LGx0XW9mIGspe2NvbnN0IHd0PUVbaHRdLHtuYW1lOnl0fT13dC5nZXRPcHRpb25zKCk7eXQ9PT0ieCI/bnRbMF09bHQ6bnRbMV09bHR9cmV0dXJuIG50fTtmLmVtaXQoImJydXNoQXhpczpoaWdobGlnaHQiLHtuYXRpdmVFdmVudDohMCxkYXRhOntzZWxlY3Rpb246dHQoKX19KX0sQz1XPT57Zm9yKGNvbnN0IFggb2Ygdil4KFgsImFjdGl2ZSIsImluYWN0aXZlIik7QSgpLFcmJmYuZW1pdCgiYnJ1c2hBeGlzOnJlbW92ZSIse25hdGl2ZUV2ZW50OiEwfSl9LE49KFcsWCk9Pntjb25zdCBRPUVbWF0se25hbWU6dHR9PVEuZ2V0T3B0aW9ucygpLG50PVcubWFwKGh0PT57Y29uc3QgbHQ9aHQuX19kYXRhX187cmV0dXJuIFEuaW52ZXJ0KGx0W3R0XSl9KTtyZXR1cm4gTShzbChRLG50KSl9LEw9Zy5zb21lKGEpJiZnLnNvbWUoVz0+IWEoVykpLFI9W107Zm9yKGxldCBXPTA7VzxnLmxlbmd0aDtXKyspe2NvbnN0IFg9Z1tXXSxRPWEoWCk/UVU6S1Use2hvdFpvbmU6dHQsYnJ1c2hSZWdpb246bnQsZXh0ZW50Omh0fT1RKFgse29mZnNldFk6cyxvZmZzZXRYOmMsY3Jvc3M6TCx6SW5kZXg6OTk5LGZpbGw6InRyYW5zcGFyZW50In0pO1gucGFyZW50Tm9kZS5hcHBlbmRDaGlsZCh0dCk7Y29uc3QgbHQ9dlModHQsT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHcpLHtyZXZlcnNlOmwsYnJ1c2hSZWdpb246bnQsYnJ1c2hlbmRlZCh3dCl7Xy5kZWxldGUoWCksQXJyYXkuZnJvbShfLmVudHJpZXMoKSkubGVuZ3RoPT09MD9DKHd0KTpQKFcsd3QpfSxicnVzaGVkKHd0LHl0LGd0LEJ0LEx0KXtfLnNldChYLGh0KHd0LHl0LGd0LEJ0KSksUChXLEx0KX19KSk7Ui5wdXNoKGx0KX1jb25zdCBJPShXPXt9KT0+e2NvbnN0e25hdGl2ZUV2ZW50Olh9PVc7WHx8Ui5mb3JFYWNoKFE9PlEucmVtb3ZlKCExKSl9LEQ9KFcsWCxRKT0+e2NvbnN0W3R0LG50XT1XLGh0PXl0PT55dC5nZXRTdGVwP3l0LmdldFN0ZXAoKTowLGx0PUcodHQsWCxRKSx3dD1HKG50LFgsUSkraHQoWCk7cmV0dXJuIGEoUSk/W2x0LC0xLzAsd3QsMS8wXTpbLTEvMCxsdCwxLzAsd3RdfSxHPShXLFgsUSk9Pntjb25zdHtoZWlnaHQ6dHQsd2lkdGg6bnR9PWQuZ2V0T3B0aW9ucygpLGh0PVguY2xvbmUoKTtyZXR1cm4gYShRKT9odC51cGRhdGUoe3JhbmdlOlswLG50XX0pOmh0LnVwZGF0ZSh7cmFuZ2U6W3R0LDBdfSksaHQubWFwKFcpfSxGPVc9Pntjb25zdHtuYXRpdmVFdmVudDpYfT1XO2lmKFgpcmV0dXJuO2NvbnN0e3NlbGVjdGlvbjpRfT1XLmRhdGE7Zm9yKGxldCB0dD0wO3R0PFIubGVuZ3RoO3R0Kyspe2NvbnN0IG50PVFbdHRdLGh0PVJbdHRdLGx0PWdbdHRdO2lmKG50KXtjb25zdCB3dD1FW3R0XTtodC5tb3ZlKC4uLkQobnQsd3QsbHQpLCExKX1lbHNlIGh0LnJlbW92ZSghMSl9fTtyZXR1cm4gZi5vbigiYnJ1c2hBeGlzOnJlbW92ZSIsSSksZi5vbigiYnJ1c2hBeGlzOmhpZ2hsaWdodCIsRiksKCk9PntSLmZvckVhY2goVz0+Vy5kZXN0cm95KCkpLGYub2ZmKCJicnVzaEF4aXM6cmVtb3ZlIixJKSxmLm9mZigiYnJ1c2hBeGlzOmhpZ2hsaWdodCIsRil9fWZ1bmN0aW9uIHRxKHQpe3JldHVybihlLG4scik9Pntjb25zdHtjb250YWluZXI6aSx2aWV3OmEsb3B0aW9uczpvfT1lLHM9eXMoaSkse3g6Yyx5Omx9PXMuZ2V0QkJveCgpLHtjb29yZGluYXRlOnV9PWE7cmV0dXJuIEpVKGksT2JqZWN0LmFzc2lnbih7ZWxlbWVudHM6Y2wsYXhlczpVVSxvZmZzZXRZOmwsb2Zmc2V0WDpjLHBvaW50czpmPT5mLl9fZGF0YV9fLnBvaW50cyxob3Jpem9udGFsOmY9Pntjb25zdHtzdGFydFBvczpbZCxoXSxlbmRQb3M6W3YsZ119PWYuYXR0cmlidXRlcztyZXR1cm4gZCE9PXYmJmg9PT1nfSxkYXR1bTp3dShhKSxzdGF0ZTpsZChvLFsiYWN0aXZlIixbImluYWN0aXZlIix7b3BhY2l0eTouNX1dXSksY29vcmRpbmF0ZTp1LGVtaXR0ZXI6cn0sdCkpfX12YXIgZXE9ZnVuY3Rpb24odCxlLG4scil7ZnVuY3Rpb24gaShhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIG4/YTpuZXcgbihmdW5jdGlvbihvKXtvKGEpfSl9cmV0dXJuIG5ldyhufHwobj1Qcm9taXNlKSkoZnVuY3Rpb24oYSxvKXtmdW5jdGlvbiBzKHUpe3RyeXtsKHIubmV4dCh1KSl9Y2F0Y2goZil7byhmKX19ZnVuY3Rpb24gYyh1KXt0cnl7bChyLnRocm93KHUpKX1jYXRjaChmKXtvKGYpfX1mdW5jdGlvbiBsKHUpe3UuZG9uZT9hKHUudmFsdWUpOmkodS52YWx1ZSkudGhlbihzLGMpfWwoKHI9ci5hcHBseSh0LGV8fFtdKSkubmV4dCgpKX0pfSxPND1mdW5jdGlvbih0LGUpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiZlLmluZGV4T2Yocik8MCYmKG5bcl09dFtyXSk7aWYodCE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBpPTAscj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2k8ci5sZW5ndGg7aSsrKWUuaW5kZXhPZihyW2ldKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodCxyW2ldKSYmKG5bcltpXV09dFtyW2ldXSk7cmV0dXJuIG59O2Z1bmN0aW9uIG5xKHQ9MzAwKXtsZXQgZT1udWxsO3JldHVybiBuPT57Y29uc3R7dGltZVN0YW1wOnJ9PW47cmV0dXJuIGUhPT1udWxsJiZyLWU8dD8oZT1yLCEwKTooZT1yLCExKX19ZnVuY3Rpb24gcnEodCxlKXt2YXJ7ZmlsdGVyOm4scmVzZXQ6cixicnVzaFJlZ2lvbjppLGV4dGVudDphLHJldmVyc2U6byxlbWl0dGVyOnMsc2NhbGU6Yyxjb29yZGluYXRlOmwsc2VsZWN0aW9uOnUsc2VyaWVzOmY9ITF9PWUsZD1PNChlLFsiZmlsdGVyIiwicmVzZXQiLCJicnVzaFJlZ2lvbiIsImV4dGVudCIsInJldmVyc2UiLCJlbWl0dGVyIiwic2NhbGUiLCJjb29yZGluYXRlIiwic2VsZWN0aW9uIiwic2VyaWVzIl0pO2NvbnN0IGg9JHQoZCwibWFzayIpLHt3aWR0aDp2LGhlaWdodDpnfT10LmdldEJCb3goKSx5PWF8fFswLDAsdixnXSxiPW5xKCkseD12Uyh0LE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxoKSx7ZXh0ZW50OnksYnJ1c2hSZWdpb246aSxyZXZlcnNlOm8sYnJ1c2hjcmVhdGVkOl99KSk7dC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdyk7ZnVuY3Rpb24gXyhFLE0sayxBLFApe1AubmF0aXZlRXZlbnQ9ITAsbih1KEUsTSxrLEEpLFApLHgucmVtb3ZlKCl9ZnVuY3Rpb24gdyhFKXtiKEUpJiYoRS5uYXRpdmVFdmVudD0hMCxyKEUpKX1jb25zdCBPPSh7bmF0aXZlRXZlbnQ6RSxkYXRhOk19KT0+e2lmKEUpcmV0dXJuO2NvbnN0e3NlbGVjdGlvbjprfT1NO24oayx7bmF0aXZlRXZlbnQ6ITF9KX07cmV0dXJuIHMub24oImJydXNoOmZpbHRlciIsTyksKCk9Pnt4LmRlc3Ryb3koKSxzLm9mZigiYnJ1c2g6ZmlsdGVyIixPKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIix3KX19ZnVuY3Rpb24gX1ModCl7dmFye2hpZGVYOmU9ITAsaGlkZVk6bj0hMH09dCxyPU80KHQsWyJoaWRlWCIsImhpZGVZIl0pO3JldHVybihpLGEsbyk9Pntjb25zdHtjb250YWluZXI6cyx2aWV3OmMsb3B0aW9uczpsLHVwZGF0ZTp1LHNldFN0YXRlOmZ9PWksZD15cyhzKSxoPXttYXNrRmlsbDoiIzc3NyIsbWFza0ZpbGxPcGFjaXR5OiIwLjMiLG1hc2tTdHJva2U6IiNmZmYiLHVuaGlnaGxpZ2h0ZWRPcGFjaXR5Oi41LHJldmVyc2U6ITF9O2xldCB2PSExLGc9ITEseT1jO2NvbnN0e3NjYWxlOmIsY29vcmRpbmF0ZTp4fT1jO3JldHVybiBycShkLE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7YnJ1c2hSZWdpb246KF8sdyxPLEUpPT5bXyx3LE8sRV0sc2VsZWN0aW9uOihfLHcsTyxFKT0+e2NvbnN0e3NjYWxlOk0sY29vcmRpbmF0ZTprfT15O3JldHVybiBBbShfLHcsTyxFLE0sayl9LGZpbHRlcjooXyx3KT0+ZXEodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2lmKGcpcmV0dXJuO2c9ITA7Y29uc3RbTyxFXT1fO2YoImJydXNoRmlsdGVyIixrPT57Y29uc3R7bWFya3M6QX09ayxQPUEubWFwKEM9Pm10KHtheGlzOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxlJiZ7eDp7dHJhbnNmb3JtOlt7dHlwZToiaGlkZSJ9XX19KSxuJiZ7eTp7dHJhbnNmb3JtOlt7dHlwZToiaGlkZSJ9XX19KX0sQyx7c2NhbGU6e3g6e2RvbWFpbjpPLG5pY2U6ITF9LHk6e2RvbWFpbjpFLG5pY2U6ITF9fX0pKTtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGwpLHttYXJrczpQLGNsaXA6ITB9KX0pLG8uZW1pdCgiYnJ1c2g6ZmlsdGVyIixPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdykse2RhdGE6e3NlbGVjdGlvbjpbTyxFXX19KSkseT0oeWllbGQgdSgpKS52aWV3LGc9ITEsdj0hMH0pLHJlc2V0Ol89PntpZihnfHwhdilyZXR1cm47Y29uc3R7c2NhbGU6d309Yyx7eDpPLHk6RX09dyxNPU8uZ2V0T3B0aW9ucygpLmRvbWFpbixrPUUuZ2V0T3B0aW9ucygpLmRvbWFpbjtvLmVtaXQoImJydXNoOmZpbHRlciIsT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LF8pLHtkYXRhOntzZWxlY3Rpb246W00sa119fSkpLHY9ITEseT1jLGYoImJydXNoRmlsdGVyIiksdSgpfSxleHRlbnQ6dm9pZCAwLGVtaXR0ZXI6byxzY2FsZTpiLGNvb3JkaW5hdGU6eH0saCkscikpfX1mdW5jdGlvbiBpcSh0KXtyZXR1cm4gX1MoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHtoaWRlWDohMH0sdCkse2JydXNoUmVnaW9uOm1TfSkpfWZ1bmN0aW9uIGFxKHQpe3JldHVybiBfUyhPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe2hpZGVZOiEwfSx0KSx7YnJ1c2hSZWdpb246YlN9KSl9dmFyIG9xPWZ1bmN0aW9uKHQsZSxuLHIpe2Z1bmN0aW9uIGkoYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBuP2E6bmV3IG4oZnVuY3Rpb24obyl7byhhKX0pfXJldHVybiBuZXcobnx8KG49UHJvbWlzZSkpKGZ1bmN0aW9uKGEsbyl7ZnVuY3Rpb24gcyh1KXt0cnl7bChyLm5leHQodSkpfWNhdGNoKGYpe28oZil9fWZ1bmN0aW9uIGModSl7dHJ5e2woci50aHJvdyh1KSl9Y2F0Y2goZil7byhmKX19ZnVuY3Rpb24gbCh1KXt1LmRvbmU/YSh1LnZhbHVlKTppKHUudmFsdWUpLnRoZW4ocyxjKX1sKChyPXIuYXBwbHkodCxlfHxbXSkpLm5leHQoKSl9KX07Y29uc3Qgc3E9InNsaWRlciI7ZnVuY3Rpb24gY3EodCxlLG4scj0hMSxpPSJ4IixhPSJ5Iil7Y29uc3R7bWFya3M6b309dCxzPW8ubWFwKGM9Pnt2YXIgbCx1O3JldHVybiBtdCh7YXhpczp7eDp7dHJhbnNmb3JtOlt7dHlwZToiaGlkZSJ9XX0seTp7dHJhbnNmb3JtOlt7dHlwZToiaGlkZSJ9XX19fSxjLHtzY2FsZTplLFtuXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sKChsPWNbbl0pPT09bnVsbHx8bD09PXZvaWQgMD92b2lkIDA6bFtpXSkmJntbaV06T2JqZWN0LmFzc2lnbih7cHJlc2VydmU6ITB9LHImJntyYXRpbzpudWxsfSl9KSwoKHU9Y1tuXSk9PT1udWxsfHx1PT09dm9pZCAwP3ZvaWQgMDp1W2FdKSYme1thXTp7cHJlc2VydmU6ITB9fSksYW5pbWF0ZTohMX0pfSk7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7bWFya3M6cyxjbGlwOiEwLGFuaW1hdGU6ITF9KX1mdW5jdGlvbiBscSh0LGUsbil7Y29uc3RbcixpXT10LGE9bj9jPT4xLWM6Yz0+YyxvPXNkKGUsYShyKSwhMCkscz1zZChlLGEoaSksITEpO3JldHVybiBzbChlLFtvLHNdKX1mdW5jdGlvbiBPMSh0KXtyZXR1cm5bdFswXSx0W3QubGVuZ3RoLTFdXX1mdW5jdGlvbiBTNCh7aW5pdERvbWFpbjp0PXt9LGNsYXNzTmFtZTplPXNxLHByZWZpeDpuPSJzbGlkZXIiLHNldFZhbHVlOnI9KGwsdSk9Pmwuc2V0VmFsdWVzKHUpLGhhc1N0YXRlOmk9ITEsd2FpdDphPTUwLGxlYWRpbmc6bz0hMCx0cmFpbGluZzpzPSExLGdldEluaXRWYWx1ZXM6Yz1sPT57dmFyIHU7Y29uc3QgZj0odT1sPT1udWxsP3ZvaWQgMDpsLmF0dHJpYnV0ZXMpPT09bnVsbHx8dT09PXZvaWQgMD92b2lkIDA6dS52YWx1ZXM7aWYoZlswXSE9PTB8fGZbMV0hPT0xKXJldHVybiBmfX0pe3JldHVybihsLHUsZik9Pntjb25zdHtjb250YWluZXI6ZCx2aWV3OmgsdXBkYXRlOnYsc2V0U3RhdGU6Z309bCx5PWQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShlKTtpZigheS5sZW5ndGgpcmV0dXJuKCk9Pnt9O2xldCBiPSExO2NvbnN0e3NjYWxlOngsY29vcmRpbmF0ZTpfLGxheW91dDp3fT1oLHtwYWRkaW5nTGVmdDpPLHBhZGRpbmdUb3A6RSxwYWRkaW5nQm90dG9tOk0scGFkZGluZ1JpZ2h0Omt9PXcse3g6QSx5OlB9PXgsQz1ocihfKSxOPUQ9Pntjb25zdCBHPUQ9PT0idmVydGljYWwiPyJ5IjoieCIsRj1EPT09InZlcnRpY2FsIj8ieCI6InkiO3JldHVybiBDP1tGLEddOltHLEZdfSxMPW5ldyBNYXAsUj1uZXcgU2V0LEk9e3g6dC54fHxBLmdldE9wdGlvbnMoKS5kb21haW4seTp0Lnl8fFAuZ2V0T3B0aW9ucygpLmRvbWFpbn07Zm9yKGNvbnN0IEQgb2YgeSl7Y29uc3R7b3JpZW50YXRpb246R309RC5hdHRyaWJ1dGVzLFtGLFddPU4oRyksWD1gJHtufSR7dGwoRil9OmZpbHRlcmAsUT1GPT09IngiLHtyYXRpbzp0dH09QS5nZXRPcHRpb25zKCkse3JhdGlvOm50fT1QLmdldE9wdGlvbnMoKSxodD1ndD0+e2lmKGd0LmRhdGEpe2NvbnN0e3NlbGVjdGlvbjpRdH09Z3QuZGF0YSxbdWU9TzEoSS54KSx5ZT1PMShJLnkpXT1RdDtyZXR1cm4gUT9bc2woQSx1ZSx0dCksc2woUCx5ZSxudCldOltzbChQLHllLG50KSxzbChBLHVlLHR0KV19Y29uc3R7dmFsdWU6QnR9PWd0LmRldGFpbCxMdD14W0ZdLEl0PWxxKEJ0LEx0LEMmJkc9PT0iaG9yaXpvbnRhbCIpLGp0PUlbV107cmV0dXJuW0l0LGp0XX0sbHQ9TnUoZ3Q9Pm9xKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtjb25zdHtpbml0VmFsdWU6QnQ9ITF9PWd0O2lmKGImJiFCdClyZXR1cm47Yj0hMDtjb25zdHtuYXRpdmVFdmVudDpMdD0hMH09Z3QsW0l0LGp0XT1odChndCk7aWYoSVtGXT1JdCxJW1ddPWp0LEx0KXtjb25zdCBRdD1RP0l0Omp0LHVlPVE/anQ6SXQ7Zi5lbWl0KFgsT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGd0KSx7bmF0aXZlRXZlbnQ6THQsZGF0YTp7c2VsZWN0aW9uOltPMShRdCksTzEodWUpXX19KSl9ZyhELFF0PT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sY3EoUXQse1tGXTp7ZG9tYWluOkl0LG5pY2U6ITF9fSxuLGksRixXKSkse3BhZGRpbmdMZWZ0Ok8scGFkZGluZ1RvcDpFLHBhZGRpbmdCb3R0b206TSxwYWRkaW5nUmlnaHQ6a30pKSx5aWVsZCB2KCksYj0hMX0pLGEse2xlYWRpbmc6byx0cmFpbGluZzpzfSksd3Q9Z3Q9Pntjb25zdHtuYXRpdmVFdmVudDpCdH09Z3Q7aWYoQnQpcmV0dXJuO2NvbnN0e2RhdGE6THR9PWd0LHtzZWxlY3Rpb246SXR9PUx0LFtqdCxRdF09SXQ7RC5kaXNwYXRjaEV2ZW50KG5ldyBObigidmFsdWVjaGFuZ2UiLHtkYXRhOkx0LG5hdGl2ZUV2ZW50OiExfSkpO2NvbnN0IHVlPVE/VG0oanQsQSk6VG0oUXQsUCk7cihELHVlKX07Zi5vbihYLHd0KSxELmFkZEV2ZW50TGlzdGVuZXIoInZhbHVlY2hhbmdlIixsdCksTC5zZXQoRCxsdCksUi5hZGQoW1gsd3RdKTtjb25zdCB5dD1jKEQpO3l0JiZELmRpc3BhdGNoRXZlbnQobmV3IE5uKCJ2YWx1ZWNoYW5nZSIse2RldGFpbDp7dmFsdWU6eXR9LG5hdGl2ZUV2ZW50OiExLGluaXRWYWx1ZTohMH0pKX1yZXR1cm4oKT0+e2Zvcihjb25zdFtELEddb2YgTClELnJlbW92ZUV2ZW50TGlzdGVuZXIoInZhbHVlY2hhbmdlIixHKTtmb3IoY29uc3RbRCxHXW9mIFIpZi5vZmYoRCxHKX19fWNvbnN0IEU0PSJnMi1zY3JvbGxiYXIiO2Z1bmN0aW9uIHVxKHQ9e30pe3JldHVybihlLG4scik9Pntjb25zdHt2aWV3OmksY29udGFpbmVyOmF9PWU7aWYoIWEuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShFNCkubGVuZ3RoKXJldHVybigpPT57fTtjb25zdHtzY2FsZTpzfT1pLHt4OmMseTpsfT1zLHU9e3g6Wy4uLmMuZ2V0T3B0aW9ucygpLmRvbWFpbl0seTpbLi4ubC5nZXRPcHRpb25zKCkuZG9tYWluXX07cmV0dXJuIGMudXBkYXRlKHtkb21haW46Yy5nZXRPcHRpb25zKCkuZXhwZWN0ZWREb21haW59KSxsLnVwZGF0ZSh7ZG9tYWluOmwuZ2V0T3B0aW9ucygpLmV4cGVjdGVkRG9tYWlufSksUzQoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtpbml0RG9tYWluOnUsY2xhc3NOYW1lOkU0LHByZWZpeDoic2Nyb2xsYmFyIixoYXNTdGF0ZTohMCxzZXRWYWx1ZTooZCxoKT0+ZC5zZXRWYWx1ZShoWzBdKSxnZXRJbml0VmFsdWVzOmQ9Pntjb25zdCBoPWQuc2xpZGVyLmF0dHJpYnV0ZXMudmFsdWVzO2lmKGhbMF0hPT0wKXJldHVybiBofX0pKShlLG4scil9fXZhciBmcT1mdW5jdGlvbih0LGUpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiZlLmluZGV4T2Yocik8MCYmKG5bcl09dFtyXSk7aWYodCE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBpPTAscj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2k8ci5sZW5ndGg7aSsrKWUuaW5kZXhPZihyW2ldKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodCxyW2ldKSYmKG5bcltpXV09dFtyW2ldXSk7cmV0dXJuIG59O2Z1bmN0aW9uIGRxKHQsZSxuKXtyZXR1cm5gPCR7dH0gc3R5bGU9IiR7T2JqZWN0LmVudHJpZXMobikubWFwKChbcixpXSk9PmAke016KHIpfToke2l9YCkuam9pbigiOyIpfSI+JHtlfTwvJHt0fT5gfWNvbnN0IGhxPXtiYWNrZ3JvdW5kQ29sb3I6InJnYmEoMCwwLDAsMC43NSkiLGNvbG9yOiIjZmZmIix3aWR0aDoibWF4LWNvbnRlbnQiLHBhZGRpbmc6IjFweCA0cHgiLGZvbnRTaXplOiIxMnB4Iixib3JkZXJSYWRpdXM6IjIuNXB4Iixib3hTaGFkb3c6IjAgM3B4IDZweCAtNHB4IHJnYmEoMCwwLDAsMC4xMiksIDAgNnB4IDE2cHggMCByZ2JhKDAsMCwwLDAuMDgpLCAwIDlweCAyOHB4IDhweCByZ2JhKDAsMCwwLDAuMDUpIn07ZnVuY3Rpb24gTTQodCl7cmV0dXJuIHQubm9kZU5hbWUhPT0idGV4dCI/ITE6ISF0LmlzT3ZlcmZsb3dpbmcoKX1mdW5jdGlvbiBrNCh0KXt2YXJ7b2Zmc2V0WDplPTgsb2Zmc2V0WTpuPTh9PXQscj1mcSh0LFsib2Zmc2V0WCIsIm9mZnNldFkiXSk7cmV0dXJuIGk9Pntjb25zdHtjb250YWluZXI6YX09aSxbbyxzXT1hLmdldEJvdW5kcygpLm1pbixjPSR0KHIsInRpcCIpLGw9bmV3IFNldCx1PWQ9Pntjb25zdHt0YXJnZXQ6aH09ZDtpZighTTQoaCkpe2Quc3RvcFByb3BhZ2F0aW9uKCk7cmV0dXJufWNvbnN0e29mZnNldFg6dixvZmZzZXRZOmd9PWQseT12K2UtbyxiPWcrbi1zO2lmKGgudGlwKXtoLnRpcC5zdHlsZS54PXksaC50aXAuc3R5bGUueT1iO3JldHVybn1jb25zdHt0ZXh0Onh9PWguc3R5bGUsXz1uZXcgYnAoe2NsYXNzTmFtZToicG9wdGlwIixzdHlsZTp7aW5uZXJIVE1MOmRxKCJkaXYiLHgsT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGhxKSxjKSkseDp5LHk6Yn19KTthLmFwcGVuZENoaWxkKF8pLGgudGlwPV8sbC5hZGQoXyl9LGY9ZD0+e2NvbnN0e3RhcmdldDpofT1kO2lmKCFNNChoKSl7ZC5zdG9wUHJvcGFnYXRpb24oKTtyZXR1cm59aC50aXAmJihoLnRpcC5yZW1vdmUoKSxoLnRpcD1udWxsLGwuZGVsZXRlKGgudGlwKSl9O3JldHVybiBhLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJvdmVyIix1KSxhLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJvdXQiLGYpLCgpPT57YS5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVyb3ZlciIsdSksYS5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVyb3V0IixmKSxsLmZvckVhY2goZD0+ZC5yZW1vdmUoKSl9fX1rNC5wcm9wcz17cmVhcHBseVdoZW5VcGRhdGU6ITB9O2Z1bmN0aW9uIHBxKHQsZSl7dmFyIG49d08oZSkscj1uLmxlbmd0aDtpZihnZSh0KSlyZXR1cm4hcjtmb3IodmFyIGk9MDtpPHI7aSs9MSl7dmFyIGE9bltpXTtpZihlW2FdIT09dFthXXx8IShhIGluIHQpKXJldHVybiExfXJldHVybiEwfXZhciB2cT1wcTtmdW5jdGlvbiBncSh0LGUpe2lmKCFOcih0KSlyZXR1cm4gbnVsbDt2YXIgbjtpZihYbihlKSYmKG49ZSksbmMoZSkmJihuPWZ1bmN0aW9uKGkpe3JldHVybiB2cShpLGUpfSksbil7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKz0xKWlmKG4odFtyXSkpcmV0dXJuIHRbcl19cmV0dXJuIG51bGx9dmFyIFNkPWdxO2Z1bmN0aW9uIFMxKHQpe3JldHVybiB0PT1udWxsP251bGw6QTQodCl9ZnVuY3Rpb24gQTQodCl7aWYodHlwZW9mIHQhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IEVycm9yO3JldHVybiB0fXZhciB5cT17ZGVwdGg6LTF9LFQ0PXt9LHdTPXt9O2Z1bmN0aW9uIG1xKHQpe3JldHVybiB0LmlkfWZ1bmN0aW9uIGJxKHQpe3JldHVybiB0LnBhcmVudElkfWZ1bmN0aW9uIE9TKCl7dmFyIHQ9bXEsZT1icSxuO2Z1bmN0aW9uIHIoaSl7dmFyIGE9QXJyYXkuZnJvbShpKSxvPXQscz1lLGMsbCx1LGYsZCxoLHYsZyx5PW5ldyBNYXA7aWYobiE9bnVsbCl7dmFyIGI9YS5tYXAoZnVuY3Rpb24oayxBKXtyZXR1cm4geHEobihrLEEsaSkpfSkseD1iLm1hcChQNCksXz1uZXcgU2V0KGIpLmFkZCgiIiksdz1tTyh4KSxPO3RyeXtmb3Iody5zKCk7IShPPXcubigpKS5kb25lOyl7dmFyIEU9Ty52YWx1ZTtfLmhhcyhFKXx8KF8uYWRkKEUpLGIucHVzaChFKSx4LnB1c2goUDQoRSkpLGEucHVzaCh3UykpfX1jYXRjaChrKXt3LmUoayl9ZmluYWxseXt3LmYoKX1vPWZ1bmN0aW9uKEEsUCl7cmV0dXJuIGJbUF19LHM9ZnVuY3Rpb24oQSxQKXtyZXR1cm4geFtQXX19Zm9yKHU9MCxjPWEubGVuZ3RoO3U8YzsrK3UpbD1hW3VdLGg9YVt1XT1uZXcgbWQobCksKHY9byhsLHUsaSkpIT1udWxsJiYodis9IiIpJiYoZz1oLmlkPXYseS5zZXQoZyx5LmhhcyhnKT9UNDpoKSksKHY9cyhsLHUsaSkpIT1udWxsJiYodis9IiIpJiYoaC5wYXJlbnQ9dik7Zm9yKHU9MDt1PGM7Kyt1KWlmKGg9YVt1XSx2PWgucGFyZW50KXtpZihkPXkuZ2V0KHYpLCFkKXRocm93IG5ldyBFcnJvcigibWlzc2luZzogIit2KTtpZihkPT09VDQpdGhyb3cgbmV3IEVycm9yKCJhbWJpZ3VvdXM6ICIrdik7ZC5jaGlsZHJlbj9kLmNoaWxkcmVuLnB1c2goaCk6ZC5jaGlsZHJlbj1baF0saC5wYXJlbnQ9ZH1lbHNle2lmKGYpdGhyb3cgbmV3IEVycm9yKCJtdWx0aXBsZSByb290cyIpO2Y9aH1pZighZil0aHJvdyBuZXcgRXJyb3IoIm5vIHJvb3QiKTtpZihuIT1udWxsKXtmb3IoO2YuZGF0YT09PXdTJiZmLmNoaWxkcmVuLmxlbmd0aD09PTE7KWY9Zi5jaGlsZHJlblswXSwtLWM7Zm9yKHZhciBNPWEubGVuZ3RoLTE7TT49MCYmKGg9YVtNXSxoLmRhdGE9PT13Uyk7LS1NKWguZGF0YT1udWxsfWlmKGYucGFyZW50PXlxLGYuZWFjaEJlZm9yZShmdW5jdGlvbihrKXtrLmRlcHRoPWsucGFyZW50LmRlcHRoKzEsLS1jfSkuZWFjaEJlZm9yZSh6QyksZi5wYXJlbnQ9bnVsbCxjPjApdGhyb3cgbmV3IEVycm9yKCJjeWNsZSIpO3JldHVybiBmfXJldHVybiByLmlkPWZ1bmN0aW9uKGkpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PVMxKGkpLHIpOnR9LHIucGFyZW50SWQ9ZnVuY3Rpb24oaSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9UzEoaSkscik6ZX0sci5wYXRoPWZ1bmN0aW9uKGkpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPVMxKGkpLHIpOm59LHJ9ZnVuY3Rpb24geHEodCl7dD0iIi5jb25jYXQodCk7dmFyIGU9dC5sZW5ndGg7cmV0dXJuIFNTKHQsZS0xKSYmIVNTKHQsZS0yKSYmKHQ9dC5zbGljZSgwLC0xKSksdFswXT09PSIvIj90OiIvIi5jb25jYXQodCl9ZnVuY3Rpb24gUDQodCl7dmFyIGU9dC5sZW5ndGg7aWYoZTwyKXJldHVybiIiO2Zvcig7LS1lPjEmJiFTUyh0LGUpOyk7cmV0dXJuIHQuc2xpY2UoMCxlKX1mdW5jdGlvbiBTUyh0LGUpe2lmKHRbZV09PT0iLyIpe2Zvcih2YXIgbj0wO2U+MCYmdFstLWVdPT09IlxcIjspKytuO2lmKCEobiYxKSlyZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiBfcSh0LGUsbixyLGkpe3ZhciBhPXQuY2hpbGRyZW4sbyxzPWEubGVuZ3RoLGMsbD1uZXcgQXJyYXkocysxKTtmb3IobFswXT1jPW89MDtvPHM7KytvKWxbbysxXT1jKz1hW29dLnZhbHVlO3UoMCxzLHQudmFsdWUsZSxuLHIsaSk7ZnVuY3Rpb24gdShmLGQsaCx2LGcseSxiKXtpZihmPj1kLTEpe3ZhciB4PWFbZl07eC54MD12LHgueTA9Zyx4LngxPXkseC55MT1iO3JldHVybn1mb3IodmFyIF89bFtmXSx3PWgvMitfLE89ZisxLEU9ZC0xO088RTspe3ZhciBNPU8rRT4+PjE7bFtNXTx3P089TSsxOkU9TX13LWxbTy0xXTxsW09dLXcmJmYrMTxPJiYtLU87dmFyIGs9bFtPXS1fLEE9aC1rO2lmKHktdj5iLWcpe3ZhciBQPWg/KHYqQSt5KmspL2g6eTt1KGYsTyxrLHYsZyxQLGIpLHUoTyxkLEEsUCxnLHksYil9ZWxzZXt2YXIgQz1oPyhnKkErYiprKS9oOmI7dShmLE8sayx2LGcseSxDKSx1KE8sZCxBLHYsQyx5LGIpfX19ZnVuY3Rpb24gRTEodCxlLG4scixpKXtmb3IodmFyIGE9dC5jaGlsZHJlbixvLHM9LTEsYz1hLmxlbmd0aCxsPXQudmFsdWUmJihpLW4pL3QudmFsdWU7KytzPGM7KW89YVtzXSxvLngwPWUsby54MT1yLG8ueTA9bixvLnkxPW4rPW8udmFsdWUqbH1mdW5jdGlvbiB3cSh0LGUsbixyLGkpeyh0LmRlcHRoJjE/RTE6ZTApKHQsZSxuLHIsaSl9dmFyIEM0PSgxK01hdGguc3FydCg1KSkvMjtmdW5jdGlvbiBMNCh0LGUsbixyLGksYSl7Zm9yKHZhciBvPVtdLHM9ZS5jaGlsZHJlbixjLGwsdT0wLGY9MCxkPXMubGVuZ3RoLGgsdixnPWUudmFsdWUseSxiLHgsXyx3LE8sRTt1PGQ7KXtoPWktbix2PWEtcjtkbyB5PXNbZisrXS52YWx1ZTt3aGlsZSgheSYmZjxkKTtmb3IoYj14PXksTz1NYXRoLm1heCh2L2gsaC92KS8oZyp0KSxFPXkqeSpPLHc9TWF0aC5tYXgoeC9FLEUvYik7ZjxkOysrZil7aWYoeSs9bD1zW2ZdLnZhbHVlLGw8YiYmKGI9bCksbD54JiYoeD1sKSxFPXkqeSpPLF89TWF0aC5tYXgoeC9FLEUvYiksXz53KXt5LT1sO2JyZWFrfXc9X31vLnB1c2goYz17dmFsdWU6eSxkaWNlOmg8dixjaGlsZHJlbjpzLnNsaWNlKHUsZil9KSxjLmRpY2U/ZTAoYyxuLHIsaSxnP3IrPXYqeS9nOmEpOkUxKGMsbixyLGc/bis9aCp5L2c6aSxhKSxnLT15LHU9Zn1yZXR1cm4gb312YXIgUjQ9ZnVuY3Rpb24gdChlKXtmdW5jdGlvbiBuKHIsaSxhLG8scyl7TDQoZSxyLGksYSxvLHMpfXJldHVybiBuLnJhdGlvPWZ1bmN0aW9uKHIpe3JldHVybiB0KChyPStyKT4xP3I6MSl9LG59KEM0KSxPcT1mdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4ocixpLGEsbyxzKXtpZigoYz1yLl9zcXVhcmlmeSkmJmMucmF0aW89PT1lKWZvcih2YXIgYyxsLHUsZixkPS0xLGgsdj1jLmxlbmd0aCxnPXIudmFsdWU7KytkPHY7KXtmb3IobD1jW2RdLHU9bC5jaGlsZHJlbixmPWwudmFsdWU9MCxoPXUubGVuZ3RoO2Y8aDsrK2YpbC52YWx1ZSs9dVtmXS52YWx1ZTtsLmRpY2U/ZTAobCxpLGEsbyxnP2ErPShzLWEpKmwudmFsdWUvZzpzKTpFMShsLGksYSxnP2krPShvLWkpKmwudmFsdWUvZzpvLHMpLGctPWwudmFsdWV9ZWxzZSByLl9zcXVhcmlmeT1jPUw0KGUscixpLGEsbyxzKSxjLnJhdGlvPWV9cmV0dXJuIG4ucmF0aW89ZnVuY3Rpb24ocil7cmV0dXJuIHQoKHI9K3IpPjE/cjoxKX0sbn0oQzQpO2Z1bmN0aW9uIER1KCl7cmV0dXJuIDB9ZnVuY3Rpb24gRWQodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIFNxKCl7dmFyIHQ9UjQsZT0hMSxuPTEscj0xLGk9WzBdLGE9RHUsbz1EdSxzPUR1LGM9RHUsbD1EdTtmdW5jdGlvbiB1KGQpe3JldHVybiBkLngwPWQueTA9MCxkLngxPW4sZC55MT1yLGQuZWFjaEJlZm9yZShmKSxpPVswXSxlJiZkLmVhY2hCZWZvcmUoakMpLGR9ZnVuY3Rpb24gZihkKXt2YXIgaD1pW2QuZGVwdGhdLHY9ZC54MCtoLGc9ZC55MCtoLHk9ZC54MS1oLGI9ZC55MS1oO3k8diYmKHY9eT0odit5KS8yKSxiPGcmJihnPWI9KGcrYikvMiksZC54MD12LGQueTA9ZyxkLngxPXksZC55MT1iLGQuY2hpbGRyZW4mJihoPWlbZC5kZXB0aCsxXT1hKGQpLzIsdis9bChkKS1oLGcrPW8oZCktaCx5LT1zKGQpLWgsYi09YyhkKS1oLHk8diYmKHY9eT0odit5KS8yKSxiPGcmJihnPWI9KGcrYikvMiksdChkLHYsZyx5LGIpKX1yZXR1cm4gdS5yb3VuZD1mdW5jdGlvbihkKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT0hIWQsdSk6ZX0sdS5zaXplPWZ1bmN0aW9uKGQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPStkWzBdLHI9K2RbMV0sdSk6W24scl19LHUudGlsZT1mdW5jdGlvbihkKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1BNChkKSx1KTp0fSx1LnBhZGRpbmc9ZnVuY3Rpb24oZCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dS5wYWRkaW5nSW5uZXIoZCkucGFkZGluZ091dGVyKGQpOnUucGFkZGluZ0lubmVyKCl9LHUucGFkZGluZ0lubmVyPWZ1bmN0aW9uKGQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPXR5cGVvZiBkPT0iZnVuY3Rpb24iP2Q6RWQoK2QpLHUpOmF9LHUucGFkZGluZ091dGVyPWZ1bmN0aW9uKGQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3UucGFkZGluZ1RvcChkKS5wYWRkaW5nUmlnaHQoZCkucGFkZGluZ0JvdHRvbShkKS5wYWRkaW5nTGVmdChkKTp1LnBhZGRpbmdUb3AoKX0sdS5wYWRkaW5nVG9wPWZ1bmN0aW9uKGQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPXR5cGVvZiBkPT0iZnVuY3Rpb24iP2Q6RWQoK2QpLHUpOm99LHUucGFkZGluZ1JpZ2h0PWZ1bmN0aW9uKGQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPXR5cGVvZiBkPT0iZnVuY3Rpb24iP2Q6RWQoK2QpLHUpOnN9LHUucGFkZGluZ0JvdHRvbT1mdW5jdGlvbihkKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYz10eXBlb2YgZD09ImZ1bmN0aW9uIj9kOkVkKCtkKSx1KTpjfSx1LnBhZGRpbmdMZWZ0PWZ1bmN0aW9uKGQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhsPXR5cGVvZiBkPT0iZnVuY3Rpb24iP2Q6RWQoK2QpLHUpOmx9LHV9ZnVuY3Rpb24gRXEodCxlKXtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KT90eXBlb2YgZT09ImZ1bmN0aW9uIj9PUygpLnBhdGgoZSkodCk6T1MoKSh0KTp5ZCh0KX1mdW5jdGlvbiBONCh0LGU9W3QuZGF0YS5uYW1lXSl7dC5pZD10LmlkfHx0LmRhdGEubmFtZSx0LnBhdGg9ZSx0LmNoaWxkcmVuJiZ0LmNoaWxkcmVuLmZvckVhY2gobj0+e24uaWQ9YCR7dC5pZH0vJHtuLmRhdGEubmFtZX1gLG4ucGF0aD1bLi4uZSxuLmRhdGEubmFtZV0sTjQobixuLnBhdGgpfSl9ZnVuY3Rpb24gSTQodCl7Y29uc3QgZT12bih0LFsiZGF0YSIsIm5hbWUiXSk7ZS5yZXBsYWNlQWxsJiYodC5wYXRoPWUucmVwbGFjZUFsbCgiLiIsIi8iKS5zcGxpdCgiLyIpKSx0LmNoaWxkcmVuJiZ0LmNoaWxkcmVuLmZvckVhY2gobj0+e0k0KG4pfSl9ZnVuY3Rpb24gTXEodCxlKXtjb25zdCBuPXt0cmVlbWFwQmluYXJ5Ol9xLHRyZWVtYXBEaWNlOmUwLHRyZWVtYXBTbGljZTpFMSx0cmVlbWFwU2xpY2VEaWNlOndxLHRyZWVtYXBTcXVhcmlmeTpSNCx0cmVlbWFwUmVzcXVhcmlmeTpPcX0scj10PT09InRyZWVtYXBTcXVhcmlmeSI/blt0XS5yYXRpbyhlKTpuW3RdO2lmKCFyKXRocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgdGlsZSBtZXRob2QhIik7cmV0dXJuIHJ9ZnVuY3Rpb24gRDQodCxlLG4pe2NvbnN0e3ZhbHVlOnJ9PW4saT1NcShlLnRpbGUsZS5yYXRpbyksYT1FcSh0LGUucGF0aCk7TnIodCk/STQoYSk6TjQoYSkscj9hLnN1bShjPT5lLmlnbm9yZVBhcmVudFZhbHVlJiZjLmNoaWxkcmVuPzA6T3MocikoYykpLnNvcnQoZS5zb3J0KTphLmNvdW50KCksU3EoKS50aWxlKGkpLnNpemUoZS5zaXplKS5yb3VuZChlLnJvdW5kKS5wYWRkaW5nSW5uZXIoZS5wYWRkaW5nSW5uZXIpLnBhZGRpbmdPdXRlcihlLnBhZGRpbmdPdXRlcikucGFkZGluZ1RvcChlLnBhZGRpbmdUb3ApLnBhZGRpbmdSaWdodChlLnBhZGRpbmdSaWdodCkucGFkZGluZ0JvdHRvbShlLnBhZGRpbmdCb3R0b20pLnBhZGRpbmdMZWZ0KGUucGFkZGluZ0xlZnQpKGEpO2NvbnN0IG89YS5kZXNjZW5kYW50cygpLm1hcChjPT5PYmplY3QuYXNzaWduKGMse2lkOmMuaWQucmVwbGFjZSgvXlwvLywiIikseDpbYy54MCxjLngxXSx5OltjLnkwLGMueTFdfSkpO3JldHVybltvLmZpbHRlcih0eXBlb2YgZS5sYXllcj09ImZ1bmN0aW9uIj9lLmxheWVyOmM9PmMuaGVpZ2h0PT09ZS5sYXllciksb119dmFyIGtxPWZ1bmN0aW9uKHQsZSxuLHIpe2Z1bmN0aW9uIGkoYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBuP2E6bmV3IG4oZnVuY3Rpb24obyl7byhhKX0pfXJldHVybiBuZXcobnx8KG49UHJvbWlzZSkpKGZ1bmN0aW9uKGEsbyl7ZnVuY3Rpb24gcyh1KXt0cnl7bChyLm5leHQodSkpfWNhdGNoKGYpe28oZil9fWZ1bmN0aW9uIGModSl7dHJ5e2woci50aHJvdyh1KSl9Y2F0Y2goZil7byhmKX19ZnVuY3Rpb24gbCh1KXt1LmRvbmU/YSh1LnZhbHVlKTppKHUudmFsdWUpLnRoZW4ocyxjKX1sKChyPXIuYXBwbHkodCxlfHxbXSkpLm5leHQoKSl9KX0sQXE9ZnVuY3Rpb24odCxlKXt2YXIgbj17fTtmb3IodmFyIHIgaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKSYmZS5pbmRleE9mKHIpPDAmJihuW3JdPXRbcl0pO2lmKHQhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgaT0wLHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTtpPHIubGVuZ3RoO2krKyllLmluZGV4T2YocltpXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHQscltpXSkmJihuW3JbaV1dPXRbcltpXV0pO3JldHVybiBufTtmdW5jdGlvbiBUcSh0KXtyZXR1cm4gT2UodCkuc2VsZWN0KGAuJHtiYX1gKS5ub2RlKCl9Y29uc3QgUHE9e2JyZWFkQ3J1bWJGaWxsOiJyZ2JhKDAsIDAsIDAsIDAuODUpIixicmVhZENydW1iRm9udFNpemU6MTIsYnJlYWRDcnVtYlk6MTIsYWN0aXZlRmlsbDoicmdiYSgwLCAwLCAwLCAwLjUpIn07ZnVuY3Rpb24gQ3EodD17fSl7Y29uc3R7b3JpZ2luRGF0YTplPVtdLGxheW91dDpufT10LHI9QXEodCxbIm9yaWdpbkRhdGEiLCJsYXlvdXQiXSksaT1tdCh7fSxQcSxyKSxhPSR0KGksImJyZWFkQ3J1bWIiKSxvPSR0KGksImFjdGl2ZSIpO3JldHVybiBzPT57Y29uc3R7dXBkYXRlOmMsc2V0U3RhdGU6bCxjb250YWluZXI6dSxvcHRpb25zOmZ9PXMsZD1UcSh1KSxoPWYubWFya3NbMF0se3N0YXRlOnZ9PWgsZz1uZXcgdWk7ZC5hcHBlbmRDaGlsZChnKTtjb25zdCB5PSh3LE8pPT5rcSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7aWYoZy5yZW1vdmVDaGlsZHJlbigpLE8pe2xldCBFPSIiLE09YS55LGs9MDtjb25zdCBBPVtdLFA9ZC5nZXRCQm94KCkud2lkdGgsQz13Lm1hcCgoTixMKT0+e0U9YCR7RX0ke059L2AsQS5wdXNoKE4pO2NvbnN0IFI9bmV3IHBvKHtuYW1lOkUucmVwbGFjZSgvXC8kLywiIiksc3R5bGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt0ZXh0Ok4seDprLHBhdGg6Wy4uLkFdLGRlcHRoOkx9LGEpLHt5Ok19KX0pO2cuYXBwZW5kQ2hpbGQoUiksays9Ui5nZXRCQm94KCkud2lkdGg7Y29uc3QgST1uZXcgcG8oe3N0eWxlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7eDprLHRleHQ6IiAvICJ9LGEpLHt5Ok19KX0pO3JldHVybiBnLmFwcGVuZENoaWxkKEkpLGsrPUkuZ2V0QkJveCgpLndpZHRoLGs+UCYmKE09Zy5nZXRCQm94KCkuaGVpZ2h0K2EueSxrPTAsUi5hdHRyKHt4OmsseTpNfSksays9Ui5nZXRCQm94KCkud2lkdGgsSS5hdHRyKHt4OmsseTpNfSksays9SS5nZXRCQm94KCkud2lkdGgpLEw9PT1qcCh3KS0xJiZJLnJlbW92ZSgpLFJ9KTtDLmZvckVhY2goKE4sTCk9PntpZihMPT09anAoQyktMSlyZXR1cm47Y29uc3QgUj1PYmplY3QuYXNzaWduKHt9LE4uYXR0cmlidXRlcyk7Ti5hdHRyKCJjdXJzb3IiLCJwb2ludGVyIiksTi5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIiwoKT0+e04uYXR0cihvKX0pLE4uYWRkRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsKCk9PntOLmF0dHIoUil9KSxOLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3kodm4oTixbInN0eWxlIiwicGF0aCJdKSx2bihOLFsic3R5bGUiLCJkZXB0aCJdKSl9KX0pfVJVKHUsbCksbCgidHJlZW1hcERyaWxsRG93biIsRT0+e2NvbnN0e21hcmtzOk19PUUsaz13LmpvaW4oIi8iKSxBPU0ubWFwKFA9PntpZihQLnR5cGUhPT0icmVjdCIpcmV0dXJuIFA7bGV0IEM9ZTtpZihPKXtjb25zdCBMPWUuZmlsdGVyKEY9Pntjb25zdCBXPXZuKEYsWyJpZCJdKTtyZXR1cm4gVyYmKFcubWF0Y2goYCR7a30vYCl8fGsubWF0Y2goVykpfSkubWFwKEY9Pih7dmFsdWU6Ri5oZWlnaHQ9PT0wP3ZuKEYsWyJ2YWx1ZSJdKTp2b2lkIDAsbmFtZTp2bihGLFsiaWQiXSl9KSkse3BhZGRpbmdMZWZ0OlIscGFkZGluZ0JvdHRvbTpJLHBhZGRpbmdSaWdodDpEfT1uLEc9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG4pLHtwYWRkaW5nVG9wOihuLnBhZGRpbmdUb3B8fGcuZ2V0QkJveCgpLmhlaWdodCsxMCkvKE8rMSkscGFkZGluZ0xlZnQ6Ui8oTysxKSxwYWRkaW5nQm90dG9tOkkvKE8rMSkscGFkZGluZ1JpZ2h0OkQvKE8rMSkscGF0aDpGPT5GLm5hbWUsbGF5ZXI6Rj0+Ri5kZXB0aD09PU8rMX0pO0M9RDQoTCxHLHt2YWx1ZToidmFsdWUifSlbMF19ZWxzZSBDPWUuZmlsdGVyKEw9PkwuZGVwdGg9PT0xKTtjb25zdCBOPVtdO3JldHVybiBDLmZvckVhY2goKHtwYXRoOkx9KT0+e04ucHVzaChwMChMKSl9KSxtdCh7fSxQLHtkYXRhOkMsc2NhbGU6e2NvbG9yOntkb21haW46Tn19fSl9KTtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LEUpLHttYXJrczpBfSl9KSx5aWVsZCBjKHZvaWQgMCxbImxlZ2VuZEZpbHRlciJdKX0pLGI9dz0+e2NvbnN0IE89dy50YXJnZXQ7aWYodm4oTyxbIm1hcmtUeXBlIl0pIT09InJlY3QiKXJldHVybjtjb25zdCBFPXZuKE8sWyJfX2RhdGFfXyIsImtleSJdKSxNPVNkKGUsaz0+ay5pZD09PUUpO3ZuKE0sImhlaWdodCIpJiZ5KHZuKE0sInBhdGgiKSx2bihNLCJkZXB0aCIpKX07ZC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsYik7Y29uc3QgeD13TyhPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdi5hY3RpdmUpLHYuaW5hY3RpdmUpKSxfPSgpPT57S1AoZCkuZm9yRWFjaChPPT57Y29uc3QgRT12bihPLFsic3R5bGUiLCJjdXJzb3IiXSksTT1TZChlLGs9PmsuaWQ9PT12bihPLFsiX19kYXRhX18iLCJrZXkiXSkpO2lmKEUhPT0icG9pbnRlciImJihNIT1udWxsJiZNLmhlaWdodCkpe08uc3R5bGUuY3Vyc29yPSJwb2ludGVyIjtjb25zdCBrPXlPKE8uYXR0cmlidXRlcyx4KTtPLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLCgpPT57Ty5hdHRyKHYuYWN0aXZlKX0pLE8uYWRkRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsKCk9PntPLmF0dHIobXQoayx2LmluYWN0aXZlKSl9KX19KX07cmV0dXJuIF8oKSxkLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsXyksKCk9PntnLnJlbW92ZSgpLGQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLGIpLGQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIixfKX19fXZhciBFUz1mdW5jdGlvbih0LGUsbixyKXtmdW5jdGlvbiBpKGEpe3JldHVybiBhIGluc3RhbmNlb2Ygbj9hOm5ldyBuKGZ1bmN0aW9uKG8pe28oYSl9KX1yZXR1cm4gbmV3KG58fChuPVByb21pc2UpKShmdW5jdGlvbihhLG8pe2Z1bmN0aW9uIHModSl7dHJ5e2woci5uZXh0KHUpKX1jYXRjaChmKXtvKGYpfX1mdW5jdGlvbiBjKHUpe3RyeXtsKHIudGhyb3codSkpfWNhdGNoKGYpe28oZil9fWZ1bmN0aW9uIGwodSl7dS5kb25lP2EodS52YWx1ZSk6aSh1LnZhbHVlKS50aGVuKHMsYyl9bCgocj1yLmFwcGx5KHQsZXx8W10pKS5uZXh0KCkpfSl9LExxPWZ1bmN0aW9uKHQsZSl7dmFyIG49e307Zm9yKHZhciByIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscikmJmUuaW5kZXhPZihyKTwwJiYobltyXT10W3JdKTtpZih0IT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIGk9MCxyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCk7aTxyLmxlbmd0aDtpKyspZS5pbmRleE9mKHJbaV0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh0LHJbaV0pJiYobltyW2ldXT10W3JbaV1dKTtyZXR1cm4gbn07Y29uc3QgUnE9e3BvaW50Ujo2LHBvaW50U3Ryb2tlV2lkdGg6MSxwb2ludFN0cm9rZToiIzg4OCIscG9pbnRBY3RpdmVTdHJva2U6IiNmNWY1ZjUiLHBhdGhTdHJva2U6IiM4ODgiLHBhdGhMaW5lRGFzaDpbMyw0XSxsYWJlbEZvbnRTaXplOjEyLGxhYmVsRmlsbDoiIzg4OCIsbGFiZWxTdHJva2U6IiNmZmYiLGxhYmVsTGluZVdpZHRoOjEsbGFiZWxZOi02LGxhYmVsWDoyfSxNUz0ibW92ZVBvaW50IixqND10PT57Y29uc3QgZT10LnRhcmdldCx7bWFya1R5cGU6bn09ZTtuPT09ImxpbmUiJiYoZS5hdHRyKCJfbGluZVdpZHRoIixlLmF0dHIoImxpbmVXaWR0aCIpfHwxKSxlLmF0dHIoImxpbmVXaWR0aCIsZS5hdHRyKCJfbGluZVdpZHRoIikrMykpLG49PT0iaW50ZXJ2YWwiJiYoZS5hdHRyKCJfb3BhY2l0eSIsZS5hdHRyKCJvcGFjaXR5Iil8fDEpLGUuYXR0cigib3BhY2l0eSIsLjcqZS5hdHRyKCJfb3BhY2l0eSIpKSl9LEY0PXQ9Pntjb25zdCBlPXQudGFyZ2V0LHttYXJrVHlwZTpufT1lO249PT0ibGluZSImJmUuYXR0cigibGluZVdpZHRoIixlLmF0dHIoIl9saW5lV2lkdGgiKSksbj09PSJpbnRlcnZhbCImJmUuYXR0cigib3BhY2l0eSIsZS5hdHRyKCJfb3BhY2l0eSIpKX0sTnE9KHQsZSxuKT0+ZS5tYXAocj0+WyJ4IiwiY29sb3IiXS5yZWR1Y2UoKGEsbyk9Pntjb25zdCBzPW5bb107cmV0dXJuIHMmJnJbc10hPT10W3NdPyExOmF9LCEwKT9PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sciksdCk6ciksSXE9dD0+e2NvbnN0IGU9dm4odCxbIl9fZGF0YV9fIiwieSJdKSxyPXZuKHQsWyJfX2RhdGFfXyIsInkxIl0pLWUse19fZGF0YV9fOntkYXRhOmksZW5jb2RlOmEsdHJhbnNmb3JtOm99LGNoaWxkTm9kZXM6c309dC5wYXJlbnROb2RlLGM9U2Qobywoe3R5cGU6Zn0pPT5mPT09Im5vcm1hbGl6ZVkiKSxsPXZuKGEsWyJ5IiwiZmllbGQiXSksdT1pW3MuaW5kZXhPZih0KV1bbF07cmV0dXJuKGYsZD0hMSk9PmN8fGQ/Zi8oMS1mKS8oci8oMS1yKSkqdTpmfSxEcT0odCxlKT0+e2NvbnN0IG49dm4odCxbIl9fZGF0YV9fIiwic2VyaWVzSXRlbXMiLGUsIjAiLCJ2YWx1ZSJdKSxyPXZuKHQsWyJfX2RhdGFfXyIsInNlcmllc0luZGV4IixlXSkse19fZGF0YV9fOntkYXRhOmksZW5jb2RlOmEsdHJhbnNmb3JtOm99fT10LnBhcmVudE5vZGUscz1TZChvLCh7dHlwZTp1fSk9PnU9PT0ibm9ybWFsaXplWSIpLGM9dm4oYSxbInkiLCJmaWVsZCJdKSxsPWlbcl1bY107cmV0dXJuIHU9PnM/bj09PTE/dTp1LygxLXUpLyhuLygxLW4pKSpsOnV9LEI0PSh0LGUsbik9Pnt0LmZvckVhY2goKHIsaSk9PntyLmF0dHIoInN0cm9rZSIsZVsxXT09PWk/bi5hY3RpdmVTdHJva2U6bi5zdHJva2UpfSl9LHo0PSh0LGUsbixyKT0+e2NvbnN0IGk9bmV3IFFpKHtzdHlsZTpufSksYT1uZXcgcG8oe3N0eWxlOnJ9KTtyZXR1cm4gZS5hcHBlbmRDaGlsZChhKSx0LmFwcGVuZENoaWxkKGkpLFtpLGFdfSxXND0odCxlKT0+e2lmKCF2bih0LFsib3B0aW9ucyIsInJhbmdlIiwiaW5kZXhPZiJdKSlyZXR1cm47Y29uc3Qgcj10Lm9wdGlvbnMucmFuZ2UuaW5kZXhPZihlKTtyZXR1cm4gdC5zb3J0ZWREb21haW5bcl19LGtTPSh0LGUsbik9Pntjb25zdCByPURtKHQsZSksYT1EbSh0LG4pL3Isbz10WzBdKyhlWzBdLXRbMF0pKmEscz10WzFdKyhlWzFdLXRbMV0pKmE7cmV0dXJuW28sc119O2Z1bmN0aW9uIGpxKHQ9e30pe2NvbnN0e3NlbGVjdGlvbjplPVtdLHByZWNpc2lvbjpuPTJ9PXQscj1McSh0LFsic2VsZWN0aW9uIiwicHJlY2lzaW9uIl0pLGk9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LFJxKSxyfHx7fSksYT0kdChpLCJwYXRoIiksbz0kdChpLCJsYWJlbCIpLHM9JHQoaSwicG9pbnQiKTtyZXR1cm4oYyxsLHUpPT57Y29uc3R7dXBkYXRlOmYsc2V0U3RhdGU6ZCxjb250YWluZXI6aCx2aWV3OnYsb3B0aW9uczp7bWFya3M6Zyxjb29yZGluYXRlOnl9fT1jLGI9eXMoaCk7bGV0IHg9S1AoYiksXyx3PWU7Y29uc3R7dHJhbnNmb3JtOk89W10sdHlwZTpFfT15LE09ISFTZChPLCh7dHlwZTpGfSk9PkY9PT0idHJhbnNwb3NlIiksaz1FPT09InBvbGFyIixBPUU9PT0idGhldGEiLFA9ISFTZCh4LCh7bWFya1R5cGU6Rn0pPT5GPT09ImFyZWEiKTtQJiYoeD14LmZpbHRlcigoe21hcmtUeXBlOkZ9KT0+Rj09PSJhcmVhIikpO2NvbnN0IEM9bmV3IHVpKHtzdHlsZTp7ekluZGV4OjJ9fSk7Yi5hcHBlbmRDaGlsZChDKTtjb25zdCBOPSgpPT57dS5lbWl0KCJlbGVtZW50LXBvaW50OnNlbGVjdCIse25hdGl2ZUV2ZW50OiEwLGRhdGE6e3NlbGVjdGlvbjp3fX0pfSxMPShGLFcpPT57dS5lbWl0KCJlbGVtZW50LXBvaW50Om1vdmVkIix7bmF0aXZlRXZlbnQ6ITAsZGF0YTp7Y2hhbmdlRGF0YTpGLGRhdGE6V319KX0sUj1GPT57Y29uc3QgVz1GLnRhcmdldDt3PVtXLnBhcmVudE5vZGUuY2hpbGROb2Rlcy5pbmRleE9mKFcpXSxOKCksRChXKX0sST1GPT57Y29uc3R7ZGF0YTp7c2VsZWN0aW9uOld9LG5hdGl2ZUV2ZW50Olh9PUY7aWYoWClyZXR1cm47dz1XO2NvbnN0IFE9dm4oeCxbdz09bnVsbD92b2lkIDA6d1swXV0pO1EmJkQoUSl9LEQ9Rj0+e2NvbnN0e2F0dHJpYnV0ZXM6VyxtYXJrVHlwZTpYLF9fZGF0YV9fOlF9PUYse3N0cm9rZTp0dH09Vyx7cG9pbnRzOm50LHNlcmllc1RpdGxlOmh0LGNvbG9yOmx0LHRpdGxlOnd0LHNlcmllc1g6eXQseTE6Z3R9PVE7aWYoTSYmWCE9PSJpbnRlcnZhbCIpcmV0dXJuO2NvbnN0e3NjYWxlOkJ0LGNvb3JkaW5hdGU6THR9PShfPT1udWxsP3ZvaWQgMDpfLnZpZXcpfHx2LHtjb2xvcjpJdCx5Omp0LHg6UXR9PUJ0LHVlPUx0LmdldENlbnRlcigpO0MucmVtb3ZlQ2hpbGRyZW4oKTtsZXQgeWU7Y29uc3QgS2U9KGJlLE5lLFBuLHFyKT0+RVModGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3JldHVybiBkKCJlbGVtZW50UG9pbnRNb3ZlIixmaT0+e3ZhciB5cjtjb25zdCBvaT0oKCh5cj1fPT1udWxsP3ZvaWQgMDpfLm9wdGlvbnMpPT09bnVsbHx8eXI9PT12b2lkIDA/dm9pZCAwOnlyLm1hcmtzKXx8ZykubWFwKEtyPT57aWYoIXFyLmluY2x1ZGVzKEtyLnR5cGUpKXJldHVybiBLcjtjb25zdHtkYXRhOnNpLGVuY29kZTpLbn09S3IsRGk9T2JqZWN0LmtleXMoS24pLnJlZHVjZSgoY2UsSWUpPT57Y29uc3QgUWU9S25bSWVdO3JldHVybiBJZT09PSJ4IiYmKGNlW1FlXT1iZSksSWU9PT0ieSImJihjZVtRZV09TmUpLEllPT09ImNvbG9yIiYmKGNlW1FlXT1QbiksY2V9LHt9KSxjaT1OcShEaSxzaSxLbik7cmV0dXJuIEwoRGksY2kpLG10KHt9LEtyLHtkYXRhOmNpLGFuaW1hdGU6ITF9KX0pO3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZmkpLHttYXJrczpvaX0pfSkseWllbGQgZigiZWxlbWVudFBvaW50TW92ZSIpfSk7aWYoWyJsaW5lIiwiYXJlYSJdLmluY2x1ZGVzKFgpKW50LmZvckVhY2goKGJlLE5lKT0+e2NvbnN0IFBuPVF0LmludmVydCh5dFtOZV0pO2lmKCFQbilyZXR1cm47Y29uc3QgcXI9bmV3IHRjKHtuYW1lOk1TLHN0eWxlOk9iamVjdC5hc3NpZ24oe2N4OmJlWzBdLGN5OmJlWzFdLGZpbGw6dHR9LHMpfSksZmk9RHEoRixOZSk7cXIuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIix5cj0+e2NvbnN0IG9pPUx0Lm91dHB1dChbeXRbTmVdLDBdKSxLcj1odD09bnVsbD92b2lkIDA6aHQubGVuZ3RoO2guYXR0cigiY3Vyc29yIiwibW92ZSIpLHdbMV0hPT1OZSYmKHdbMV09TmUsTigpKSxCNChDLmNoaWxkTm9kZXMsdyxzKTtjb25zdFtzaSxLbl09ejQoQyxxcixhLG8pLFFyPWNpPT57Y29uc3QgY2U9YmVbMV0rY2kuY2xpZW50WS15ZVsxXTtpZihQKWlmKGspe2NvbnN0IEllPWJlWzBdK2NpLmNsaWVudFgteWVbMF0sW1FlLG5uXT1rUyh1ZSxvaSxbSWUsY2VdKSxbLFFuXT1MdC5vdXRwdXQoWzEsanQub3V0cHV0KDApXSksWyxGcl09THQuaW52ZXJ0KFtRZSxRbi0obnRbTmUrS3JdWzFdLW5uKV0pLEJyPShOZSsxKSVLcixqaT0oTmUtMStLciklS3IsQ289cXAoW250W2ppXSxbUWUsbm5dLGh0W0JyXSYmbnRbQnJdXSk7S24uYXR0cigidGV4dCIsZmkoanQuaW52ZXJ0KEZyKSkudG9GaXhlZChuKSksc2kuYXR0cigiZCIsQ28pLHFyLmF0dHIoImN4IixRZSkscXIuYXR0cigiY3kiLG5uKX1lbHNle2NvbnN0WyxJZV09THQub3V0cHV0KFsxLGp0Lm91dHB1dCgwKV0pLFssUWVdPUx0LmludmVydChbYmVbMF0sSWUtKG50W05lK0tyXVsxXS1jZSldKSxubj1xcChbbnRbTmUtMV0sW2JlWzBdLGNlXSxodFtOZSsxXSYmbnRbTmUrMV1dKTtLbi5hdHRyKCJ0ZXh0IixmaShqdC5pbnZlcnQoUWUpKS50b0ZpeGVkKG4pKSxzaS5hdHRyKCJkIixubikscXIuYXR0cigiY3kiLGNlKX1lbHNle2NvbnN0WyxJZV09THQuaW52ZXJ0KFtiZVswXSxjZV0pLFFlPXFwKFtudFtOZS0xXSxbYmVbMF0sY2VdLG50W05lKzFdXSk7S24uYXR0cigidGV4dCIsanQuaW52ZXJ0KEllKS50b0ZpeGVkKG4pKSxzaS5hdHRyKCJkIixRZSkscXIuYXR0cigiY3kiLGNlKX19O3llPVt5ci5jbGllbnRYLHlyLmNsaWVudFldLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLFFyKTtjb25zdCBEaT0oKT0+RVModGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2lmKGguYXR0cigiY3Vyc29yIiwiZGVmYXVsdCIpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLFFyKSxoLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLERpKSxFbihLbi5hdHRyKCJ0ZXh0IikpKXJldHVybjtjb25zdCBjaT1OdW1iZXIoS24uYXR0cigidGV4dCIpKSxjZT1XNChJdCxsdCk7Xz15aWVsZCBLZShQbixjaSxjZSxbImxpbmUiLCJhcmVhIl0pLEtuLnJlbW92ZSgpLHNpLnJlbW92ZSgpLEQoRil9KTtoLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLERpKX0pLEMuYXBwZW5kQ2hpbGQocXIpfSksQjQoQy5jaGlsZE5vZGVzLHcscyk7ZWxzZSBpZihYPT09ImludGVydmFsIil7bGV0IGJlPVsobnRbMF1bMF0rbnRbMV1bMF0pLzIsbnRbMF1bMV1dO00/YmU9W250WzBdWzBdLChudFswXVsxXStudFsxXVsxXSkvMl06QSYmKGJlPW50WzBdKTtjb25zdCBOZT1JcShGKSxQbj1uZXcgdGMoe25hbWU6TVMsc3R5bGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHtjeDpiZVswXSxjeTpiZVsxXSxmaWxsOnR0fSxzKSx7c3Ryb2tlOnMuYWN0aXZlU3Ryb2tlfSl9KTtQbi5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLHFyPT57aC5hdHRyKCJjdXJzb3IiLCJtb3ZlIik7Y29uc3QgZmk9VzQoSXQsbHQpLFt5cixvaV09ejQoQyxQbixhLG8pLEtyPUtuPT57aWYoTSl7Y29uc3QgUXI9YmVbMF0rS24uY2xpZW50WC15ZVswXSxbRGldPUx0Lm91dHB1dChbanQub3V0cHV0KDApLGp0Lm91dHB1dCgwKV0pLFssY2ldPUx0LmludmVydChbRGkrKFFyLW50WzJdWzBdKSxiZVsxXV0pLGNlPXFwKFtbUXIsbnRbMF1bMV1dLFtRcixudFsxXVsxXV0sbnRbMl0sbnRbM11dLCEwKTtvaS5hdHRyKCJ0ZXh0IixOZShqdC5pbnZlcnQoY2kpKS50b0ZpeGVkKG4pKSx5ci5hdHRyKCJkIixjZSksUG4uYXR0cigiY3giLFFyKX1lbHNlIGlmKEEpe2NvbnN0IFFyPWJlWzFdK0tuLmNsaWVudFkteWVbMV0sRGk9YmVbMF0rS24uY2xpZW50WC15ZVswXSxbY2ksY2VdPWtTKHVlLFtEaSxRcl0sYmUpLFtJZSxRZV09a1ModWUsW0RpLFFyXSxudFsxXSksbm49THQuaW52ZXJ0KFtjaSxjZV0pWzFdLFFuPWd0LW5uO2lmKFFuPDApcmV0dXJuO2NvbnN0IEZyPXBXKHVlLFtbY2ksY2VdLFtJZSxRZV0sbnRbMl0sbnRbM11dLFFuPi41PzE6MCk7b2kuYXR0cigidGV4dCIsTmUoUW4sITApLnRvRml4ZWQobikpLHlyLmF0dHIoImQiLEZyKSxQbi5hdHRyKCJjeCIsY2kpLFBuLmF0dHIoImN5IixjZSl9ZWxzZXtjb25zdCBRcj1iZVsxXStLbi5jbGllbnRZLXllWzFdLFssRGldPUx0Lm91dHB1dChbMSxqdC5vdXRwdXQoMCldKSxbLGNpXT1MdC5pbnZlcnQoW2JlWzBdLERpLShudFsyXVsxXS1RcildKSxjZT1xcChbW250WzBdWzBdLFFyXSxbbnRbMV1bMF0sUXJdLG50WzJdLG50WzNdXSwhMCk7b2kuYXR0cigidGV4dCIsTmUoanQuaW52ZXJ0KGNpKSkudG9GaXhlZChuKSkseXIuYXR0cigiZCIsY2UpLFBuLmF0dHIoImN5IixRcil9fTt5ZT1bcXIuY2xpZW50WCxxci5jbGllbnRZXSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIixLcik7Y29uc3Qgc2k9KCk9PkVTKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtpZihoLmF0dHIoImN1cnNvciIsImRlZmF1bHQiKSxoLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHNpKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIixLciksRW4ob2kuYXR0cigidGV4dCIpKSlyZXR1cm47Y29uc3QgS249TnVtYmVyKG9pLmF0dHIoInRleHQiKSk7Xz15aWVsZCBLZSh3dCxLbixmaSxbWF0pLG9pLnJlbW92ZSgpLHlyLnJlbW92ZSgpLEQoRil9KTtoLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHNpKX0pLEMuYXBwZW5kQ2hpbGQoUG4pfX07eC5mb3JFYWNoKChGLFcpPT57d1swXT09PVcmJkQoRiksRi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsUiksRi5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIixqNCksRi5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIixGNCl9KTtjb25zdCBHPUY9Pntjb25zdCBXPUY9PW51bGw/dm9pZCAwOkYudGFyZ2V0OyghV3x8Vy5uYW1lIT09TVMmJiF4LmluY2x1ZGVzKFcpKSYmKHc9W10sTigpLEMucmVtb3ZlQ2hpbGRyZW4oKSl9O3JldHVybiB1Lm9uKCJlbGVtZW50LXBvaW50OnNlbGVjdCIsSSksdS5vbigiZWxlbWVudC1wb2ludDp1bnNlbGVjdCIsRyksaC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLEcpLCgpPT57Qy5yZW1vdmUoKSx1Lm9mZigiZWxlbWVudC1wb2ludDpzZWxlY3QiLEkpLHUub2ZmKCJlbGVtZW50LXBvaW50OnVuc2VsZWN0IixHKSxoLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsRykseC5mb3JFYWNoKEY9PntGLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIixSKSxGLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLGo0KSxGLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLEY0KX0pfX19dmFyIEZxPWZ1bmN0aW9uKHQsZSl7dmFyIG49e307Zm9yKHZhciByIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscikmJmUuaW5kZXhPZihyKTwwJiYobltyXT10W3JdKTtpZih0IT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIGk9MCxyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCk7aTxyLmxlbmd0aDtpKyspZS5pbmRleE9mKHJbaV0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh0LHJbaV0pJiYobltyW2ldXT10W3JbaV1dKTtyZXR1cm4gbn07Y29uc3QgRzQ9KCk9PnQ9Pntjb25zdHtjaGlsZHJlbjplfT10O2lmKCFBcnJheS5pc0FycmF5KGUpKXJldHVybltdO2NvbnN0e3g6bj0wLHk6cj0wLHdpZHRoOmksaGVpZ2h0OmEsZGF0YTpvfT10O3JldHVybiBlLm1hcChzPT57dmFye2RhdGE6Yyx4OmwseTp1LHdpZHRoOmYsaGVpZ2h0OmR9PXMsaD1GcShzLFsiZGF0YSIsIngiLCJ5Iiwid2lkdGgiLCJoZWlnaHQiXSk7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxoKSx7ZGF0YTpMdyhjLG8pLHg6bCE9bnVsbD9sOm4seTp1IT1udWxsP3U6cix3aWR0aDpmIT1udWxsP2Y6aSxoZWlnaHQ6ZCE9bnVsbD9kOmF9KX0pfTtHNC5wcm9wcz17fTt2YXIgQnE9ZnVuY3Rpb24odCxlKXt2YXIgbj17fTtmb3IodmFyIHIgaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKSYmZS5pbmRleE9mKHIpPDAmJihuW3JdPXRbcl0pO2lmKHQhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgaT0wLHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTtpPHIubGVuZ3RoO2krKyllLmluZGV4T2YocltpXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHQscltpXSkmJihuW3JbaV1dPXRbcltpXV0pO3JldHVybiBufTtjb25zdCAkND0oKT0+dD0+e2NvbnN0e2NoaWxkcmVuOmV9PXQ7aWYoIUFycmF5LmlzQXJyYXkoZSkpcmV0dXJuW107Y29uc3R7ZGlyZWN0aW9uOm49InJvdyIscmF0aW86cj1lLm1hcCgoKT0+MSkscGFkZGluZzppPTAsZGF0YTphfT10LFtvLHMsYyxsXT1uPT09ImNvbCI/WyJ5IiwiaGVpZ2h0Iiwid2lkdGgiLCJ4Il06WyJ4Iiwid2lkdGgiLCJoZWlnaHQiLCJ5Il0sdT1yLnJlZHVjZSgoZyx5KT0+Zyt5KSxmPXRbc10taSooZS5sZW5ndGgtMSksZD1yLm1hcChnPT5mKihnL3UpKSxoPVtdO2xldCB2PXRbb118fDA7Zm9yKGxldCBnPTA7ZzxkLmxlbmd0aDtnKz0xKXtjb25zdCB5PWVbZ10se2RhdGE6Yn09eSx4PUJxKHksWyJkYXRhIl0pLF89THcoYixhKTtoLnB1c2goT2JqZWN0LmFzc2lnbih7W29dOnYsW3NdOmRbZ10sW2xdOnRbbF18fDAsW2NdOnRbY10sZGF0YTpffSx4KSksdis9ZFtnXStpfXJldHVybiBofTskNC5wcm9wcz17fTtjbGFzcyBfMHtjb25zdHJ1Y3RvcihlKXt0aGlzLiR2YWx1ZT1lfXN0YXRpYyBvZihlKXtyZXR1cm4gbmV3IF8wKGUpfWNhbGwoZSwuLi5uKXtyZXR1cm4gdGhpcy4kdmFsdWU9ZSh0aGlzLiR2YWx1ZSwuLi5uKSx0aGlzfXZhbHVlKCl7cmV0dXJuIHRoaXMuJHZhbHVlfX12YXIgenE9ZnVuY3Rpb24odCxlKXt2YXIgbj17fTtmb3IodmFyIHIgaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKSYmZS5pbmRleE9mKHIpPDAmJihuW3JdPXRbcl0pO2lmKHQhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgaT0wLHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTtpPHIubGVuZ3RoO2krKyllLmluZGV4T2YocltpXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHQscltpXSkmJihuW3JbaV1dPXRbcltpXV0pO3JldHVybiBufTtjb25zdCBXcT1CcCh0PT57Y29uc3R7ZW5jb2RlOmUsZGF0YTpuLHNjYWxlOnIsc2hhcmVTaXplOmk9ITF9PXQse3g6YSx5Om99PWUscz0oYyxsKT0+e3ZhciB1O2lmKGM9PT12b2lkIDB8fCFpKXJldHVybnt9O2NvbnN0IGY9ZHIobix2PT52W2NdKSxkPSgodT1yPT1udWxsP3ZvaWQgMDpyW2xdKT09PW51bGx8fHU9PT12b2lkIDA/dm9pZCAwOnUuZG9tYWluKXx8QXJyYXkuZnJvbShmLmtleXMoKSksaD1kLm1hcCh2PT5mLmhhcyh2KT9mLmdldCh2KS5sZW5ndGg6MSk7cmV0dXJue2RvbWFpbjpkLGZsZXg6aH19O3JldHVybntzY2FsZTp7eDpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe3BhZGRpbmdPdXRlcjowLHBhZGRpbmdJbm5lcjouMSxndWlkZTphPT09dm9pZCAwP251bGw6e3Bvc2l0aW9uOiJ0b3AifX0sYT09PXZvaWQgMCYme3BhZGRpbmdJbm5lcjowfSkscyhhLCJ4IikpLHk6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHtyYW5nZTpbMCwxXSxwYWRkaW5nT3V0ZXI6MCxwYWRkaW5nSW5uZXI6LjEsZ3VpZGU6bz09PXZvaWQgMD9udWxsOntwb3NpdGlvbjoicmlnaHQifX0sbz09PXZvaWQgMCYme3BhZGRpbmdJbm5lcjowfSkscyhvLCJ5IikpfX19KSxBUz15dSh0PT57Y29uc3R7ZGF0YTplLHNjYWxlOm4sbGVnZW5kOnJ9PXQsaT1bdF07bGV0IGEsbyxzO2Zvcig7aS5sZW5ndGg7KXtjb25zdCBkPWkuc2hpZnQoKSx7Y2hpbGRyZW46aCxlbmNvZGU6dj17fSxzY2FsZTpnPXt9LGxlZ2VuZDp5PXt9fT1kLHtjb2xvcjpifT12LHtjb2xvcjp4fT1nLHtjb2xvcjpffT15O2IhPT12b2lkIDAmJihhPWIpLHghPT12b2lkIDAmJihvPXgpLF8hPT12b2lkIDAmJihzPV8pLEFycmF5LmlzQXJyYXkoaCkmJmkucHVzaCguLi5oKX1jb25zdCBjPSgpPT57dmFyIGQ7Y29uc3QgaD0oZD1uPT1udWxsP3ZvaWQgMDpuLmNvbG9yKT09PW51bGx8fGQ9PT12b2lkIDA/dm9pZCAwOmQuZG9tYWluO2lmKGghPT12b2lkIDApcmV0dXJuW2hdO2lmKGE9PT12b2lkIDApcmV0dXJuW3ZvaWQgMF07Y29uc3Qgdj10eXBlb2YgYT09ImZ1bmN0aW9uIj9hOnk9PnlbYV0sZz1lLm1hcCh2KTtyZXR1cm4gZy5zb21lKHk9PnR5cGVvZiB5PT0ibnVtYmVyIik/W3NjKGcpXTpbQXJyYXkuZnJvbShuZXcgU2V0KGcpKSwib3JkaW5hbCJdfSxsPXR5cGVvZiBhPT0ic3RyaW5nIj9hOiIiLFt1LGZdPWMoKTtyZXR1cm4gT2JqZWN0LmFzc2lnbih7ZW5jb2RlOntjb2xvcjp7dHlwZToiY29sdW1uIix2YWx1ZTp1IT1udWxsP3U6W119fSxzY2FsZTp7Y29sb3I6bXQoe30sbyx7ZG9tYWluOnUsdHlwZTpmfSl9fSxyPT09dm9pZCAwJiZ7bGVnZW5kOntjb2xvcjptdCh7dGl0bGU6bH0scyl9fSl9KSxUUz1CcCgoKT0+KHthbmltYXRlOntlbnRlclR5cGU6ImZhZGVJbiJ9fSkpLFBTPXl1KCgpPT4oe2ZyYW1lOiExLGVuY29kZTp7c2hhcGU6ImhvbGxvdyJ9LHN0eWxlOntsaW5lV2lkdGg6MH19KSksQ1M9eXUoKCk9Pih7dHlwZToiY2VsbCJ9KSksWjQ9eXUodD0+e2NvbnN0e2RhdGE6ZX09dDtyZXR1cm57ZGF0YTp7dHlwZToiaW5saW5lIix2YWx1ZTplLHRyYW5zZm9ybTpbe3R5cGU6ImN1c3RvbSIsY2FsbGJhY2s6KCk9Pntjb25zdHtkYXRhOnIsZW5jb2RlOml9PXQse3g6YSx5Om99PWkscz1hP0FycmF5LmZyb20obmV3IFNldChyLm1hcCh1PT51W2FdKSkpOltdLGM9bz9BcnJheS5mcm9tKG5ldyBTZXQoci5tYXAodT0+dVtvXSkpKTpbXTtyZXR1cm4oKCk9PntpZihzLmxlbmd0aCYmYy5sZW5ndGgpe2NvbnN0IHU9W107Zm9yKGNvbnN0IGYgb2Ygcylmb3IoY29uc3QgZCBvZiBjKXUucHVzaCh7W2FdOmYsW29dOmR9KTtyZXR1cm4gdX1pZihzLmxlbmd0aClyZXR1cm4gcy5tYXAodT0+KHtbYV06dX0pKTtpZihjLmxlbmd0aClyZXR1cm4gYy5tYXAodT0+KHtbb106dX0pKX0pKCl9fV19fX0pLFk0PXl1KCh0LGU9R3Esbj0kcSxyPVpxLGk9e30pPT57Y29uc3R7ZGF0YTphLGVuY29kZTpvLGNoaWxkcmVuOnMsc2NhbGU6Yyx4Omw9MCx5OnU9MCxzaGFyZURhdGE6Zj0hMSxrZXk6ZH09dCx7dmFsdWU6aH09YSx7eDp2LHk6Z309byx7Y29sb3I6eX09Yyx7ZG9tYWluOmJ9PXk7cmV0dXJue2NoaWxkcmVuOihfLHcsTyk9Pntjb25zdHt4OkUseTpNfT13LHtwYWRkaW5nTGVmdDprLHBhZGRpbmdUb3A6QSxtYXJnaW5MZWZ0OlAsbWFyZ2luVG9wOkN9PU8se2RvbWFpbjpOfT1FLmdldE9wdGlvbnMoKSx7ZG9tYWluOkx9PU0uZ2V0T3B0aW9ucygpLFI9ZnUoXyksST1fLm1hcChlKSxEPV8ubWFwKCh7eDp0dCx5Om50fSk9PltFLmludmVydCh0dCksTS5pbnZlcnQobnQpXSksRj1ELm1hcCgoW3R0LG50XSk9Pmh0PT57Y29uc3R7W3ZdOmx0LFtnXTp3dH09aHQ7cmV0dXJuKHYhPT12b2lkIDA/bHQ9PT10dDohMCkmJihnIT09dm9pZCAwP3d0PT09bnQ6ITApfSkubWFwKHR0PT5oLmZpbHRlcih0dCkpLFc9Zj9EbihGLHR0PT50dC5sZW5ndGgpOnZvaWQgMCxYPUQubWFwKChbdHQsbnRdKT0+KHtjb2x1bW5GaWVsZDp2LGNvbHVtbkluZGV4Ok4uaW5kZXhPZih0dCksY29sdW1uVmFsdWU6dHQsY29sdW1uVmFsdWVzTGVuZ3RoOk4ubGVuZ3RoLHJvd0ZpZWxkOmcscm93SW5kZXg6TC5pbmRleE9mKG50KSxyb3dWYWx1ZTpudCxyb3dWYWx1ZXNMZW5ndGg6TC5sZW5ndGh9KSksUT1YLm1hcCh0dD0+QXJyYXkuaXNBcnJheShzKT9zOltzKHR0KV0uZmxhdCgxKSk7cmV0dXJuIFIuZmxhdE1hcCh0dD0+e2NvbnN0W250LGh0LGx0LHd0XT1JW3R0XSx5dD1YW3R0XSxndD1GW3R0XTtyZXR1cm4gUVt0dF0ubWFwKEx0PT57dmFyIEl0LGp0LHtzY2FsZTpRdCxrZXk6dWUsZmFjZXQ6eWU9ITAsYXhpczpLZT17fSxsZWdlbmQ6YmU9e319PUx0LE5lPXpxKEx0LFsic2NhbGUiLCJrZXkiLCJmYWNldCIsImF4aXMiLCJsZWdlbmQiXSk7Y29uc3QgUG49KChJdD1RdD09bnVsbD92b2lkIDA6UXQueSk9PT1udWxsfHxJdD09PXZvaWQgMD92b2lkIDA6SXQuZ3VpZGUpfHxLZS55LHFyPSgoanQ9UXQ9PW51bGw/dm9pZCAwOlF0LngpPT09bnVsbHx8anQ9PT12b2lkIDA/dm9pZCAwOmp0Lmd1aWRlKXx8S2UueCxmaT17eDp7dGlja0NvdW50OnY/NTp2b2lkIDB9LHk6e3RpY2tDb3VudDpnPzU6dm9pZCAwfX0seXI9eWU/Z3Q6Z3QubGVuZ3RoPT09MD9bXTpoLG9pPXtjb2xvcjp7ZG9tYWluOmJ9fSxLcj17eDpINChxcixuKSh5dCx5cikseTpINChQbixyKSh5dCx5cil9O3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe2tleTpgJHt1ZX0tJHt0dH1gLGRhdGE6eXIsbWFyZ2luOjAseDpudCtrK2wrUCx5Omh0K0ErdStDLHBhcmVudEtleTpkLHdpZHRoOmx0LGhlaWdodDp3dCxwYWRkaW5nTGVmdDowLHBhZGRpbmdSaWdodDowLHBhZGRpbmdUb3A6MCxwYWRkaW5nQm90dG9tOjAsZnJhbWU6ISF5ci5sZW5ndGgsZGF0YURvbWFpbjpXLHNjYWxlOm10KGZpLFF0LG9pKSxheGlzOm10KHt9LEtlLEtyKSxsZWdlbmQ6ITF9LE5lKSxpKX0pfSl9fX0pO2Z1bmN0aW9uIEdxKHQpe2NvbnN0e3BvaW50czplfT10O3JldHVybiBOdyhlKX1mdW5jdGlvbiBNMSh0LGUpe3JldHVybiBlLmxlbmd0aD9tdCh7dGl0bGU6ITEsdGljazpudWxsLGxhYmVsOm51bGx9LHQpOm10KHt0aXRsZTohMSx0aWNrOm51bGwsbGFiZWw6bnVsbCxncmlkOm51bGx9LHQpfWZ1bmN0aW9uICRxKHQpe3JldHVybihlLG4pPT57Y29uc3R7cm93SW5kZXg6cixyb3dWYWx1ZXNMZW5ndGg6aSxjb2x1bW5JbmRleDphLGNvbHVtblZhbHVlc0xlbmd0aDpvfT1lO2lmKHIhPT1pLTEpcmV0dXJuIE0xKHQsbik7Y29uc3Qgcz1hIT09by0xPyExOnZvaWQgMCxjPW4ubGVuZ3RoP3ZvaWQgMDpudWxsO3JldHVybiBtdCh7dGl0bGU6cyxncmlkOmN9LHQpfX1mdW5jdGlvbiBacSh0KXtyZXR1cm4oZSxuKT0+e2NvbnN0e3Jvd0luZGV4OnIsY29sdW1uSW5kZXg6aX09ZTtpZihpIT09MClyZXR1cm4gTTEodCxuKTtjb25zdCBhPXIhPT0wPyExOnZvaWQgMCxvPW4ubGVuZ3RoP3ZvaWQgMDpudWxsO3JldHVybiBtdCh7dGl0bGU6YSxncmlkOm99LHQpfX1mdW5jdGlvbiBINCh0LGUpe3JldHVybiB0eXBlb2YgdD09ImZ1bmN0aW9uIj90OnQ9PT1udWxsfHx0PT09ITE/KCk9Pm51bGw6ZSh0KX1jb25zdCBWND0oKT0+dD0+W18wLm9mKHQpLmNhbGwoQ1MpLmNhbGwoQVMpLmNhbGwoVFMpLmNhbGwoV3EpLmNhbGwoUFMpLmNhbGwoWjQpLmNhbGwoWTQpLnZhbHVlKCldO1Y0LnByb3BzPXt9O3ZhciBMUz1mdW5jdGlvbih0LGUpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiZlLmluZGV4T2Yocik8MCYmKG5bcl09dFtyXSk7aWYodCE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBpPTAscj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2k8ci5sZW5ndGg7aSsrKWUuaW5kZXhPZihyW2ldKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodCxyW2ldKSYmKG5bcltpXV09dFtyW2ldXSk7cmV0dXJuIG59O2NvbnN0IFlxPUJwKHQ9Pih7c2NhbGU6e3g6e2d1aWRlOm51bGwscGFkZGluZ091dGVyOjAscGFkZGluZ0lubmVyOi4xfSx5OntndWlkZTpudWxsLHJhbmdlOlswLDFdLHBhZGRpbmdPdXRlcjowLHBhZGRpbmdJbm5lcjouMX19fSkpLEhxPXl1KHQ9Pntjb25zdHtkYXRhOmUsY2hpbGRyZW46bix4OnI9MCx5Omk9MCxrZXk6YX09dDtyZXR1cm57Y2hpbGRyZW46KHMsYyxsKT0+e2NvbnN0e3g6dSx5OmZ9PWMse3BhZGRpbmdMZWZ0OmQscGFkZGluZ1RvcDpoLG1hcmdpbkxlZnQ6dixtYXJnaW5Ub3A6Z309bCx7ZG9tYWluOnl9PXUuZ2V0T3B0aW9ucygpLHtkb21haW46Yn09Zi5nZXRPcHRpb25zKCkseD1mdShzKSxfPXMubWFwKCh7cG9pbnRzOk19KT0+TncoTSkpLHc9cy5tYXAoKHt4Ok0seTprfSk9Plt1LmludmVydChNKSxmLmludmVydChrKV0pLE89dy5tYXAoKFtNLGtdKT0+KHtjb2x1bW5GaWVsZDpNLGNvbHVtbkluZGV4OnkuaW5kZXhPZihNKSxjb2x1bW5WYWx1ZTpNLGNvbHVtblZhbHVlc0xlbmd0aDp5Lmxlbmd0aCxyb3dGaWVsZDprLHJvd0luZGV4OmIuaW5kZXhPZihrKSxyb3dWYWx1ZTprLHJvd1ZhbHVlc0xlbmd0aDpiLmxlbmd0aH0pKSxFPU8ubWFwKE09PkFycmF5LmlzQXJyYXkobik/bjpbbihNKV0uZmxhdCgxKSk7cmV0dXJuIHguZmxhdE1hcChNPT57Y29uc3RbayxBLFAsQ109X1tNXSxbTixMXT13W01dLFI9T1tNXTtyZXR1cm4gRVtNXS5tYXAoRD0+e3ZhciBHLEY7Y29uc3R7c2NhbGU6VyxrZXk6WCxlbmNvZGU6USxheGlzOnR0LGludGVyYWN0aW9uOm50fT1ELGh0PUxTKEQsWyJzY2FsZSIsImtleSIsImVuY29kZSIsImF4aXMiLCJpbnRlcmFjdGlvbiJdKSxsdD0oRz1XPT1udWxsP3ZvaWQgMDpXLnkpPT09bnVsbHx8Rz09PXZvaWQgMD92b2lkIDA6Ry5ndWlkZSx3dD0oRj1XPT1udWxsP3ZvaWQgMDpXLngpPT09bnVsbHx8Rj09PXZvaWQgMD92b2lkIDA6Ri5ndWlkZSx5dD17eDp7ZmFjZXQ6ITF9LHk6e2ZhY2V0OiExfX0sZ3Q9e3g6WHEod3QpKFIsZSkseTpVcShsdCkoUixlKX0sQnQ9e3g6e3RpY2tDb3VudDo1fSx5Ont0aWNrQ291bnQ6NX19O3JldHVybiBPYmplY3QuYXNzaWduKHtkYXRhOmUscGFyZW50S2V5OmEsa2V5OmAke1h9LSR7TX1gLHg6aytkK3Irdix5OkEraCtpK2csd2lkdGg6UCxoZWlnaHQ6QyxtYXJnaW46MCxwYWRkaW5nTGVmdDowLHBhZGRpbmdSaWdodDowLHBhZGRpbmdUb3A6MCxwYWRkaW5nQm90dG9tOjAsZnJhbWU6ITAsc2NhbGU6bXQoeXQsVyksYXhpczptdChCdCx0dCxndCksbGVnZW5kOiExLGVuY29kZTptdCh7fSxRLHt4Ok4seTpMfSksaW50ZXJhY3Rpb246bXQoe30sbnQse2xlZ2VuZEZpbHRlcjohMX0pfSxodCl9KX0pfX19KSxWcT15dSh0PT57Y29uc3R7ZW5jb2RlOmV9PXQsbj1MUyh0LFsiZW5jb2RlIl0pLHtwb3NpdGlvbjpyPVtdLHg6aT1yLHk6YT1bLi4ucl0ucmV2ZXJzZSgpfT1lLG89TFMoZSxbInBvc2l0aW9uIiwieCIsInkiXSkscz1bXTtmb3IoY29uc3QgYyBvZltpXS5mbGF0KDEpKWZvcihjb25zdCBsIG9mW2FdLmZsYXQoMSkpcy5wdXNoKHskeDpjLCR5Omx9KTtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG4pLHtkYXRhOnMsZW5jb2RlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxvKSx7eDoiJHgiLHk6IiR5In0pLHNjYWxlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxbaV0uZmxhdCgxKS5sZW5ndGg9PT0xJiZ7eDp7cGFkZGluZ0lubmVyOjB9fSksW2FdLmZsYXQoMSkubGVuZ3RoPT09MSYme3k6e3BhZGRpbmdJbm5lcjowfX0pfSl9KTtmdW5jdGlvbiBYcSh0KXtyZXR1cm4gdHlwZW9mIHQ9PSJmdW5jdGlvbiI/dDp0PT09bnVsbD8oKT0+bnVsbDooZSxuKT0+e2NvbnN0e3Jvd0luZGV4OnIscm93VmFsdWVzTGVuZ3RoOml9PWU7aWYociE9PWktMSlyZXR1cm4gTTEodCxuKX19ZnVuY3Rpb24gVXEodCl7cmV0dXJuIHR5cGVvZiB0PT0iZnVuY3Rpb24iP3Q6dD09PW51bGw/KCk9Pm51bGw6KGUsbik9Pntjb25zdHtjb2x1bW5JbmRleDpyfT1lO2lmKHIhPT0wKXJldHVybiBNMSh0LG4pfX1jb25zdCBxcT0oKT0+dD0+W18wLm9mKHQpLmNhbGwoQ1MpLmNhbGwoQVMpLmNhbGwoSHEpLmNhbGwoVnEpLmNhbGwoVFMpLmNhbGwoUFMpLmNhbGwoWXEpLnZhbHVlKCldO3ZhciBLcT1mdW5jdGlvbih0LGUpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiZlLmluZGV4T2Yocik8MCYmKG5bcl09dFtyXSk7aWYodCE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBpPTAscj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2k8ci5sZW5ndGg7aSsrKWUuaW5kZXhPZihyW2ldKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodCxyW2ldKSYmKG5bcltpXV09dFtyW2ldXSk7cmV0dXJuIG59O2NvbnN0IFFxPUJwKHQ9Pih7c2NhbGU6e3g6e2d1aWRlOnt0eXBlOiJheGlzQXJjIn0scGFkZGluZ091dGVyOjAscGFkZGluZ0lubmVyOi4xfSx5OntndWlkZTpudWxsLHJhbmdlOlswLDFdLHBhZGRpbmdPdXRlcjowLHBhZGRpbmdJbm5lcjouMX19fSkpLEpxPUJwKHQ9Pih7Y29vcmRpbmF0ZTp7dHlwZToicG9sYXIifX0pKSx0Sz10PT57Y29uc3R7ZW5jb2RlOmV9PXQsbj1LcSh0LFsiZW5jb2RlIl0pLHtwb3NpdGlvbjpyfT1lO3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbikse2VuY29kZTp7eDpyfX0pfTtmdW5jdGlvbiBYNCh0KXtyZXR1cm4gZT0+bnVsbH1mdW5jdGlvbiBlSyh0KXtjb25zdHtwb2ludHM6ZX09dCxbbixyLGksYV09ZSxvPXdyKG4sYSkscz1NcihuLGEpLGM9TXIocixpKSxsPW1QKHMsYyksdT0xL01hdGguc2luKGwvMiksZj1vLygxK3UpLGQ9ZipNYXRoLnNxcnQoMiksW2gsdl09aSx5PWlkKHMpK2wvMixiPWYqdSx4PWgrYipNYXRoLnNpbih5KSxfPXYtYipNYXRoLmNvcyh5KTtyZXR1cm5beC1kLzIsXy1kLzIsZCxkXX1jb25zdCBuSz0oKT0+dD0+W18wLm9mKHQpLmNhbGwoQ1MpLmNhbGwodEspLmNhbGwoQVMpLmNhbGwoSnEpLmNhbGwoWjQpLmNhbGwoWTQsZUssWDQsWDQse2ZyYW1lOiExfSkuY2FsbChUUykuY2FsbChQUykuY2FsbChRcSkudmFsdWUoKV07ZnVuY3Rpb24gcksodCxlLG4pe2NvbnN0IGk9bixhPVswLGldLG89Wy1pKzEsMV07aWYodD09PSJub3JtYWwiKXJldHVybiBhO2lmKHQ9PT0icmV2ZXJzZSIpcmV0dXJuIG87aWYodD09PSJhbHRlcm5hdGUiKXJldHVybiBlJTI9PT0wP2E6bztpZih0PT09InJldmVyc2UtYWx0ZXJuYXRlIilyZXR1cm4gZSUyPT09MD9vOmF9ZnVuY3Rpb24gaUsodCxlLG4pe2NvbnN0IHI9W3RdO2Zvcig7ci5sZW5ndGg7KXtjb25zdCBpPXIucG9wKCk7aS5hbmltYXRlPW10KHtlbnRlcjp7ZHVyYXRpb246ZX0sdXBkYXRlOntkdXJhdGlvbjplLGVhc2luZzpuLHR5cGU6Im1vcnBoaW5nIixmaWxsOiJib3RoIn0sZXhpdDp7dHlwZToiZmFkZU91dCIsZHVyYXRpb246ZX19LGkuYW5pbWF0ZXx8e30pO2NvbnN0e2NoaWxkcmVuOmF9PWk7QXJyYXkuaXNBcnJheShhKSYmci5wdXNoKC4uLmEpfXJldHVybiB0fWNvbnN0IFU0PSgpPT50PT57Y29uc3R7Y2hpbGRyZW46ZT1bXSxkdXJhdGlvbjpuPTFlMyxpdGVyYXRpb25Db3VudDpyPTEsZGlyZWN0aW9uOmk9Im5vcm1hbCIsZWFzaW5nOmE9ImVhc2UtaW4tb3V0LXNpbmUifT10LG89ZS5sZW5ndGg7aWYoIUFycmF5LmlzQXJyYXkoZSl8fG89PT0wKXJldHVybltdO2NvbnN0e2tleTpzfT1lWzBdLGM9ZS5tYXAobD0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGwpLHtrZXk6c30pKS5tYXAobD0+aUsobCxuLGEpKTtyZXR1cm4gZnVuY3Rpb24qKCl7bGV0IGw9MCx1O2Zvcig7cj09PSJpbmZpbml0ZSJ8fGw8cjspe2NvbnN0W2YsZF09cksoaSxsLG8pO2ZvcihsZXQgaD1mO2g8ZDtoKz0xKXtjb25zdCB2PU1hdGguYWJzKGgpO3UhPT12JiYoeWllbGQgY1t2XSksdT12fWwrK319fTtVNC5wcm9wcz17fTtmdW5jdGlvbiBtbCh0LGUsbil7Y29uc3R7ZW5jb2RlOnJ9PW47aWYodD09PW51bGwpcmV0dXJuW2VdO2NvbnN0IGk9YUsodCkubWFwKG89Pnt2YXIgcztyZXR1cm5bbywocz1obihyLG8pKT09PW51bGx8fHM9PT12b2lkIDA/dm9pZCAwOnNbMF1dfSkuZmlsdGVyKChbLG9dKT0+cW4obykpLGE9bz0+aS5tYXAoKFssc10pPT5zW29dKS5qb2luKCItIik7cmV0dXJuIEFycmF5LmZyb20oZHIoZSxhKS52YWx1ZXMoKSl9ZnVuY3Rpb24gcTQodCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCk/Y0sodCk6dHlwZW9mIHQ9PSJmdW5jdGlvbiI/c0sodCk6dD09PSJzZXJpZXMiP29LOnQ9PT0idmFsdWUiP2xLOnQ9PT0ic3VtIj91Szp0PT09Im1heEluZGV4Ij9mSzpudWxsfWZ1bmN0aW9uIEs0KHQsZSl7Zm9yKGNvbnN0IG4gb2YgdCluLnNvcnQoZSl9ZnVuY3Rpb24gUTQodCxlKXtyZXR1cm4oZT09bnVsbD92b2lkIDA6ZS5kb21haW4pfHxBcnJheS5mcm9tKG5ldyBTZXQodCkpfWZ1bmN0aW9uIGFLKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpP3Q6W3RdfWZ1bmN0aW9uIG9LKHQsZSxuKXtyZXR1cm4gdzAocj0+bltyXSl9ZnVuY3Rpb24gc0sodCl7cmV0dXJuKGUsbixyKT0+dzAoaT0+dChlW2ldKSl9ZnVuY3Rpb24gY0sodCl7cmV0dXJuKGUsbixyKT0+KGksYSk9PnQucmVkdWNlKChvLHMpPT5vIT09MD9vOmtyKGVbaV1bc10sZVthXVtzXSksMCl9ZnVuY3Rpb24gbEsodCxlLG4pe3JldHVybiB3MChyPT5lW3JdKX1mdW5jdGlvbiB1Syh0LGUsbil7Y29uc3Qgcj1mdSh0KSxpPUFycmF5LmZyb20oZHIocixvPT5uWytvXSkuZW50cmllcygpKSxhPW5ldyBNYXAoaS5tYXAoKFtvLHNdKT0+W28scy5yZWR1Y2UoKGMsbCk9PmMrICtlW2xdKV0pKTtyZXR1cm4gdzAobz0+YS5nZXQobltvXSkpfWZ1bmN0aW9uIGZLKHQsZSxuKXtjb25zdCByPWZ1KHQpLGk9QXJyYXkuZnJvbShkcihyLG89Pm5bK29dKS5lbnRyaWVzKCkpLGE9bmV3IE1hcChpLm1hcCgoW28sc10pPT5bbyxvZChzLGM9PmVbY10pXSkpO3JldHVybiB3MChvPT5hLmdldChuW29dKSl9ZnVuY3Rpb24gdzAodCl7cmV0dXJuKGUsbik9PmtyKHQoZSksdChuKSl9Y29uc3QgSjQ9KHQ9e30pPT57Y29uc3R7Z3JvdXBCeTplPSJ4IixvcmRlckJ5Om49bnVsbCxyZXZlcnNlOnI9ITEseTppPSJ5Iix5MTphPSJ5MSIsc2VyaWVzOm89ITB9PXQ7cmV0dXJuKHMsYyk9Pnt2YXIgbDtjb25zdHtkYXRhOnUsZW5jb2RlOmYsc3R5bGU6ZD17fX09YyxbaCx2XT1obihmLCJ5IiksW2cseV09aG4oZiwieTEiKSxbYl09bz9pMChmLCJzZXJpZXMiLCJjb2xvciIpOmhuKGYsImNvbG9yIikseD1tbChlLHMsYyksdz0oKGw9cTQobikpIT09bnVsbCYmbCE9PXZvaWQgMD9sOigpPT5udWxsKSh1LGgsYik7dyYmSzQoeCx3KTtjb25zdCBPPW5ldyBBcnJheShzLmxlbmd0aCksRT1uZXcgQXJyYXkocy5sZW5ndGgpLE09bmV3IEFycmF5KHMubGVuZ3RoKSxrPVtdLEE9W107Zm9yKGNvbnN0IEkgb2YgeCl7ciYmSS5yZXZlcnNlKCk7Y29uc3QgRD1nPytnW0lbMF1dOjAsRz1bXSxGPVtdO2Zvcihjb25zdCBsdCBvZiBJKXtjb25zdCB3dD1NW2x0XT0raFtsdF0tRDt3dDwwP0YucHVzaChsdCk6d3Q+PTAmJkcucHVzaChsdCl9Y29uc3QgVz1HLmxlbmd0aD4wP0c6RixYPUYubGVuZ3RoPjA/RjpHO2xldCBRPUcubGVuZ3RoLTEsdHQ9MDtmb3IoO1E+MCYmaFtXW1FdXT09PTA7KVEtLTtmb3IoO3R0PFgubGVuZ3RoLTEmJmhbWFt0dF1dPT09MDspdHQrKztrLnB1c2goV1tRXSksQS5wdXNoKFhbdHRdKTtsZXQgbnQ9RDtmb3IoY29uc3QgbHQgb2YgRi5yZXZlcnNlKCkpe2NvbnN0IHd0PU1bbHRdO250PU9bbHRdPShFW2x0XT1udCkrd3R9bGV0IGh0PUQ7Zm9yKGNvbnN0IGx0IG9mIEcpe2NvbnN0IHd0PU1bbHRdO3d0PjA/aHQ9T1tsdF09KEVbbHRdPWh0KSt3dDpPW2x0XT1FW2x0XT1odH19Y29uc3QgUD1uZXcgU2V0KGspLEM9bmV3IFNldChBKSxOPWk9PT0ieSI/TzpFLEw9YT09PSJ5Ij9POkU7bGV0IFI7cmV0dXJuIGMudHlwZT09PSJwb2ludCI/Uj17eTA6cjAoaCx2KSx5OlpuKE4sdil9OlI9e3kwOnIwKGgsdikseTpabihOLHYpLHkxOlpuKEwseSl9LFtzLG10KHt9LGMse2VuY29kZTpPYmplY3QuYXNzaWduKHt9LFIpLHN0eWxlOk9iamVjdC5hc3NpZ24oe2ZpcnN0OihJLEQpPT5QLmhhcyhEKSxsYXN0OihJLEQpPT5DLmhhcyhEKX0sZCl9KV19fTtKNC5wcm9wcz17fTtmdW5jdGlvbiB0SSh0LGUpe2xldCBuPTA7aWYoZT09PXZvaWQgMClmb3IobGV0IHIgb2YgdClyIT1udWxsJiYocj0rcik+PXImJisrbjtlbHNle2xldCByPS0xO2ZvcihsZXQgaSBvZiB0KShpPWUoaSwrK3IsdCkpIT1udWxsJiYoaT0raSk+PWkmJisrbn1yZXR1cm4gbn1mdW5jdGlvbiBkSyh0LGUpe2xldCBuPTAscixpPTAsYT0wO2lmKGU9PT12b2lkIDApZm9yKGxldCBvIG9mIHQpbyE9bnVsbCYmKG89K28pPj1vJiYocj1vLWksaSs9ci8rK24sYSs9ciooby1pKSk7ZWxzZXtsZXQgbz0tMTtmb3IobGV0IHMgb2YgdCkocz1lKHMsKytvLHQpKSE9bnVsbCYmKHM9K3MpPj1zJiYocj1zLWksaSs9ci8rK24sYSs9cioocy1pKSl9aWYobj4xKXJldHVybiBhLyhuLTEpfWZ1bmN0aW9uIGVJKHQsZSl7Y29uc3Qgbj1kSyh0LGUpO3JldHVybiBuJiZNYXRoLnNxcnQobil9ZnVuY3Rpb24gaEsodCxlLG4pe2NvbnN0IHI9dEkodCksaT1lSSh0KTtyZXR1cm4gciYmaT9NYXRoLmNlaWwoKG4tZSkqTWF0aC5jYnJ0KHIpLygzLjQ5KmkpKToxfXZhciBuST1BcnJheS5wcm90b3R5cGUscEs9bkkuc2xpY2UsQm90PW5JLm1hcDtmdW5jdGlvbiBSUyh0KXtyZXR1cm4oKT0+dH1jb25zdCB2Sz1NYXRoLnNxcnQoNTApLGdLPU1hdGguc3FydCgxMCkseUs9TWF0aC5zcXJ0KDIpO2Z1bmN0aW9uIGsxKHQsZSxuKXtjb25zdCByPShlLXQpL01hdGgubWF4KDAsbiksaT1NYXRoLmZsb29yKE1hdGgubG9nMTAocikpLGE9ci9NYXRoLnBvdygxMCxpKSxvPWE+PXZLPzEwOmE+PWdLPzU6YT49eUs/MjoxO2xldCBzLGMsbDtyZXR1cm4gaTwwPyhsPU1hdGgucG93KDEwLC1pKS9vLHM9TWF0aC5yb3VuZCh0KmwpLGM9TWF0aC5yb3VuZChlKmwpLHMvbDx0JiYrK3MsYy9sPmUmJi0tYyxsPS1sKToobD1NYXRoLnBvdygxMCxpKSpvLHM9TWF0aC5yb3VuZCh0L2wpLGM9TWF0aC5yb3VuZChlL2wpLHMqbDx0JiYrK3MsYypsPmUmJi0tYyksYzxzJiYuNTw9biYmbjwyP2sxKHQsZSxuKjIpOltzLGMsbF19ZnVuY3Rpb24gbUsodCxlLG4pe2lmKGU9K2UsdD0rdCxuPStuLCEobj4wKSlyZXR1cm5bXTtpZih0PT09ZSlyZXR1cm5bdF07Y29uc3Qgcj1lPHQsW2ksYSxvXT1yP2sxKGUsdCxuKTprMSh0LGUsbik7aWYoIShhPj1pKSlyZXR1cm5bXTtjb25zdCBzPWEtaSsxLGM9bmV3IEFycmF5KHMpO2lmKHIpaWYobzwwKWZvcihsZXQgbD0wO2w8czsrK2wpY1tsXT0oYS1sKS8tbztlbHNlIGZvcihsZXQgbD0wO2w8czsrK2wpY1tsXT0oYS1sKSpvO2Vsc2UgaWYobzwwKWZvcihsZXQgbD0wO2w8czsrK2wpY1tsXT0oaStsKS8tbztlbHNlIGZvcihsZXQgbD0wO2w8czsrK2wpY1tsXT0oaStsKSpvO3JldHVybiBjfWZ1bmN0aW9uIE8wKHQsZSxuKXtyZXR1cm4gZT0rZSx0PSt0LG49K24sazEodCxlLG4pWzJdfWZ1bmN0aW9uIHpvdCh0LGUsbil7ZT0rZSx0PSt0LG49K247Y29uc3Qgcj1lPHQsaT1yP08wKGUsdCxuKTpPMCh0LGUsbik7cmV0dXJuKHI/LTE6MSkqKGk8MD8xLy1pOmkpfWZ1bmN0aW9uIGJLKHQsZSxuKXtsZXQgcjtmb3IoOzspe2NvbnN0IGk9TzAodCxlLG4pO2lmKGk9PT1yfHxpPT09MHx8IWlzRmluaXRlKGkpKXJldHVyblt0LGVdO2k+MD8odD1NYXRoLmZsb29yKHQvaSkqaSxlPU1hdGguY2VpbChlL2kpKmkpOmk8MCYmKHQ9TWF0aC5jZWlsKHQqaSkvaSxlPU1hdGguZmxvb3IoZSppKS9pKSxyPWl9fWZ1bmN0aW9uIHhLKHQpe3JldHVybiBNYXRoLm1heCgxLE1hdGguY2VpbChNYXRoLmxvZyh0SSh0KSkvTWF0aC5MTjIpKzEpfWZ1bmN0aW9uIF9LKCl7dmFyIHQ9d3AsZT1zYyxuPXhLO2Z1bmN0aW9uIHIoaSl7QXJyYXkuaXNBcnJheShpKXx8KGk9QXJyYXkuZnJvbShpKSk7dmFyIGEsbz1pLmxlbmd0aCxzLGMsbD1uZXcgQXJyYXkobyk7Zm9yKGE9MDthPG87KythKWxbYV09dChpW2FdLGEsaSk7dmFyIHU9ZShsKSxmPXVbMF0sZD11WzFdLGg9bihsLGYsZCk7aWYoIUFycmF5LmlzQXJyYXkoaCkpe2NvbnN0IF89ZCx3PStoO2lmKGU9PT1zYyYmKFtmLGRdPWJLKGYsZCx3KSksaD1tSyhmLGQsdyksaFswXTw9ZiYmKGM9TzAoZixkLHcpKSxoW2gubGVuZ3RoLTFdPj1kKWlmKF8+PWQmJmU9PT1zYyl7Y29uc3QgTz1PMChmLGQsdyk7aXNGaW5pdGUoTykmJihPPjA/ZD0oTWF0aC5mbG9vcihkL08pKzEpKk86TzwwJiYoZD0oTWF0aC5jZWlsKGQqLU8pKzEpLy1PKSl9ZWxzZSBoLnBvcCgpfWZvcih2YXIgdj1oLmxlbmd0aCxnPTAseT12O2hbZ108PWY7KSsrZztmb3IoO2hbeS0xXT5kOyktLXk7KGd8fHk8dikmJihoPWguc2xpY2UoZyx5KSx2PXktZyk7dmFyIGI9bmV3IEFycmF5KHYrMSkseDtmb3IoYT0wO2E8PXY7KythKXg9YlthXT1bXSx4LngwPWE+MD9oW2EtMV06Zix4LngxPWE8dj9oW2FdOmQ7aWYoaXNGaW5pdGUoYykpe2lmKGM+MClmb3IoYT0wO2E8bzsrK2EpKHM9bFthXSkhPW51bGwmJmY8PXMmJnM8PWQmJmJbTWF0aC5taW4odixNYXRoLmZsb29yKChzLWYpL2MpKV0ucHVzaChpW2FdKTtlbHNlIGlmKGM8MCl7Zm9yKGE9MDthPG87KythKWlmKChzPWxbYV0pIT1udWxsJiZmPD1zJiZzPD1kKXtjb25zdCBfPU1hdGguZmxvb3IoKGYtcykqYyk7YltNYXRoLm1pbih2LF8rKGhbX108PXMpKV0ucHVzaChpW2FdKX19fWVsc2UgZm9yKGE9MDthPG87KythKShzPWxbYV0pIT1udWxsJiZmPD1zJiZzPD1kJiZiW0t6KGgscywwLHYpXS5wdXNoKGlbYV0pO3JldHVybiBifXJldHVybiByLnZhbHVlPWZ1bmN0aW9uKGkpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PXR5cGVvZiBpPT0iZnVuY3Rpb24iP2k6UlMoaSkscik6dH0sci5kb21haW49ZnVuY3Rpb24oaSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9dHlwZW9mIGk9PSJmdW5jdGlvbiI/aTpSUyhbaVswXSxpWzFdXSkscik6ZX0sci50aHJlc2hvbGRzPWZ1bmN0aW9uKGkpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPXR5cGVvZiBpPT0iZnVuY3Rpb24iP2k6UlMoQXJyYXkuaXNBcnJheShpKT9wSy5jYWxsKGkpOmkpLHIpOm59LHJ9ZnVuY3Rpb24gTlModCxlLG49MCxyPTEvMCxpKXtpZihlPU1hdGguZmxvb3IoZSksbj1NYXRoLmZsb29yKE1hdGgubWF4KDAsbikpLHI9TWF0aC5mbG9vcihNYXRoLm1pbih0Lmxlbmd0aC0xLHIpKSwhKG48PWUmJmU8PXIpKXJldHVybiB0O2ZvcihpPWk9PT12b2lkIDA/JHA6SVAoaSk7cj5uOyl7aWYoci1uPjYwMCl7Y29uc3QgYz1yLW4rMSxsPWUtbisxLHU9TWF0aC5sb2coYyksZj0uNSpNYXRoLmV4cCgyKnUvMyksZD0uNSpNYXRoLnNxcnQodSpmKihjLWYpL2MpKihsLWMvMjwwPy0xOjEpLGg9TWF0aC5tYXgobixNYXRoLmZsb29yKGUtbCpmL2MrZCkpLHY9TWF0aC5taW4ocixNYXRoLmZsb29yKGUrKGMtbCkqZi9jK2QpKTtOUyh0LGUsaCx2LGkpfWNvbnN0IGE9dFtlXTtsZXQgbz1uLHM9cjtmb3IoUzAodCxuLGUpLGkodFtyXSxhKT4wJiZTMCh0LG4scik7bzxzOyl7Zm9yKFMwKHQsbyxzKSwrK28sLS1zO2kodFtvXSxhKTwwOykrK287Zm9yKDtpKHRbc10sYSk+MDspLS1zfWkodFtuXSxhKT09PTA/UzAodCxuLHMpOigrK3MsUzAodCxzLHIpKSxzPD1lJiYobj1zKzEpLGU8PXMmJihyPXMtMSl9cmV0dXJuIHR9ZnVuY3Rpb24gUzAodCxlLG4pe2NvbnN0IHI9dFtlXTt0W2VdPXRbbl0sdFtuXT1yfWZ1bmN0aW9uIHdLKHQsZT1rcil7bGV0IG4scj0hMTtpZihlLmxlbmd0aD09PTEpe2xldCBpO2Zvcihjb25zdCBhIG9mIHQpe2NvbnN0IG89ZShhKTsocj9rcihvLGkpPjA6a3IobyxvKT09PTApJiYobj1hLGk9byxyPSEwKX19ZWxzZSBmb3IoY29uc3QgaSBvZiB0KShyP2UoaSxuKT4wOmUoaSxpKT09PTApJiYobj1pLHI9ITApO3JldHVybiBufWZ1bmN0aW9uIEExKHQsZSxuKXtpZih0PUZsb2F0NjRBcnJheS5mcm9tKFZ6KHQsbikpLCEoIShyPXQubGVuZ3RoKXx8aXNOYU4oZT0rZSkpKXtpZihlPD0wfHxyPDIpcmV0dXJuIFphKHQpO2lmKGU+PTEpcmV0dXJuIERuKHQpO3ZhciByLGk9KHItMSkqZSxhPU1hdGguZmxvb3IoaSksbz1EbihOUyh0LGEpLnN1YmFycmF5KDAsYSsxKSkscz1aYSh0LnN1YmFycmF5KGErMSkpO3JldHVybiBvKyhzLW8pKihpLWEpfX1mdW5jdGlvbiBXb3QodCxlLG49bnVtYmVyKXtpZighKCEocj10Lmxlbmd0aCl8fGlzTmFOKGU9K2UpKSl7aWYoZTw9MHx8cjwyKXJldHVybituKHRbMF0sMCx0KTtpZihlPj0xKXJldHVybituKHRbci0xXSxyLTEsdCk7dmFyIHIsaT0oci0xKSplLGE9TWF0aC5mbG9vcihpKSxvPStuKHRbYV0sYSx0KSxzPStuKHRbYSsxXSxhKzEsdCk7cmV0dXJuIG8rKHMtbykqKGktYSl9fWZ1bmN0aW9uIE9LKHQsZSxuPSR3KXtpZighaXNOYU4oZT0rZSkpe2lmKHI9RmxvYXQ2NEFycmF5LmZyb20odCwocyxjKT0+JHcobih0W2NdLGMsdCkpKSxlPD0wKXJldHVybiBiMChyKTtpZihlPj0xKXJldHVybiBvZChyKTt2YXIgcixpPVVpbnQzMkFycmF5LmZyb20odCwocyxjKT0+YyksYT1yLmxlbmd0aC0xLG89TWF0aC5mbG9vcihhKmUpO3JldHVybiBOUyhpLG8sMCxhLChzLGMpPT4kcChyW3NdLHJbY10pKSxvPXdLKGkuc3ViYXJyYXkoMCxvKzEpLHM9PnJbc10pLG8+PTA/bzotMX19ZnVuY3Rpb24gSVModCxlKXtyZXR1cm4gQTEodCwuNSxlKX1mdW5jdGlvbiBTSyh0LGUpe3JldHVybiBPSyh0LC41LGUpfXZhciBFSz1mdW5jdGlvbih0LGUpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiZlLmluZGV4T2Yocik8MCYmKG5bcl09dFtyXSk7aWYodCE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBpPTAscj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2k8ci5sZW5ndGg7aSsrKWUuaW5kZXhPZihyW2ldKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodCxyW2ldKSYmKG5bcltpXV09dFtyW2ldXSk7cmV0dXJuIG59O2Z1bmN0aW9uIGJsKHQpe3JldHVybiBlPT5lPT09bnVsbD90OmAke3R9IG9mICR7ZX1gfWZ1bmN0aW9uIE1LKHQpe2lmKHR5cGVvZiB0PT0iZnVuY3Rpb24iKXJldHVyblt0LG51bGxdO2NvbnN0IG49e21lYW46a0ssbWF4OlRLLGNvdW50OkNLLGZpcnN0OlJLLGxhc3Q6Tkssc3VtOkxLLG1pbjpQSyxtZWRpYW46QUt9W3RdO2lmKCFuKXRocm93IG5ldyBFcnJvcihgVW5rbm93biByZWR1Y2VyOiAke3R9LmApO3JldHVybiBuKCl9ZnVuY3Rpb24ga0soKXtjb25zdCB0PShuLHIpPT54MChuLGk9PityW2ldKSxlPWJsKCJtZWFuIik7cmV0dXJuW3QsZV19ZnVuY3Rpb24gQUsoKXtjb25zdCB0PShuLHIpPT5JUyhuLGk9PityW2ldKSxlPWJsKCJtZWRpYW4iKTtyZXR1cm5bdCxlXX1mdW5jdGlvbiBUSygpe2NvbnN0IHQ9KG4scik9PkRuKG4saT0+K3JbaV0pLGU9YmwoIm1heCIpO3JldHVyblt0LGVdfWZ1bmN0aW9uIFBLKCl7Y29uc3QgdD0obixyKT0+WmEobixpPT4rcltpXSksZT1ibCgibWluIik7cmV0dXJuW3QsZV19ZnVuY3Rpb24gQ0soKXtjb25zdCB0PShuLHIpPT5uLmxlbmd0aCxlPWJsKCJjb3VudCIpO3JldHVyblt0LGVdfWZ1bmN0aW9uIExLKCl7Y29uc3QgdD0obixyKT0+Ym8obixpPT4rcltpXSksZT1ibCgic3VtIik7cmV0dXJuW3QsZV19ZnVuY3Rpb24gUksoKXtjb25zdCB0PShuLHIpPT5yW25bMF1dLGU9YmwoImZpcnN0Iik7cmV0dXJuW3QsZV19ZnVuY3Rpb24gTksoKXtjb25zdCB0PShuLHIpPT5yW25bbi5sZW5ndGgtMV1dLGU9YmwoImxhc3QiKTtyZXR1cm5bdCxlXX1jb25zdCBEUz0odD17fSk9Pntjb25zdHtncm91cEJ5OmV9PXQsbj1FSyh0LFsiZ3JvdXBCeSJdKTtyZXR1cm4ocixpKT0+e2NvbnN0e2RhdGE6YSxlbmNvZGU6b309aSxzPWUocixpKTtpZighcylyZXR1cm5bcixpXTtjb25zdCBjPShoLHYpPT57aWYoaClyZXR1cm4gaDtjb25zdHtmcm9tOmd9PXY7aWYoIWcpcmV0dXJuIGg7Y29uc3RbLHldPWhuKG8sZyk7cmV0dXJuIHl9LGw9T2JqZWN0LmVudHJpZXMobikubWFwKChbaCx2XSk9Pntjb25zdFtnLHldPU1LKHYpLFtiLHhdPWhuKG8saCksXz1jKHgsdiksdz1zLm1hcChPPT5nKE8sYiE9bnVsbD9iOmEpKTtyZXR1cm5baCxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZ0godywoeT09bnVsbD92b2lkIDA6eShfKSl8fF8pKSx7YWdncmVnYXRlOiEwfSldfSksdT1PYmplY3Qua2V5cyhvKS5tYXAoaD0+e2NvbnN0W3YsZ109aG4obyxoKSx5PXMubWFwKGI9PnZbYlswXV0pO3JldHVybltoLFpuKHksZyldfSksZj1zLm1hcChoPT5hW2hbMF1dKTtyZXR1cm5bZnUocyksbXQoe30saSx7ZGF0YTpmLGVuY29kZTpPYmplY3QuZnJvbUVudHJpZXMoWy4uLnUsLi4ubF0pfSldfX07RFMucHJvcHM9e307dmFyIElLPWZ1bmN0aW9uKHQsZSl7dmFyIG49e307Zm9yKHZhciByIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscikmJmUuaW5kZXhPZihyKTwwJiYobltyXT10W3JdKTtpZih0IT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIGk9MCxyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCk7aTxyLmxlbmd0aDtpKyspZS5pbmRleE9mKHJbaV0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh0LHJbaV0pJiYobltyW2ldXT10W3JbaV1dKTtyZXR1cm4gbn07Y29uc3Qgckk9InRocmVzaG9sZHMiO2Z1bmN0aW9uIERLKHQpe2NvbnN0W2Usbl09c2ModCk7cmV0dXJuIE1hdGgubWluKDIwMCxoSyh0LGUsbikpfWNvbnN0IGpTPSh0PXt9KT0+e2NvbnN0e2dyb3VwQ2hhbm5lbHM6ZT1bImNvbG9yIl0sYmluQ2hhbm5lbHM6bj1bIngiLCJ5Il19PXQscj1JSyh0LFsiZ3JvdXBDaGFubmVscyIsImJpbkNoYW5uZWxzIl0pLGk9e30sYT0obyxzKT0+e2NvbnN0e2VuY29kZTpjfT1zLGw9bi5tYXAodj0+e2NvbnN0W2ddPWhuKGMsdik7cmV0dXJuIGd9KSx1PSR0KHIsckkpLGY9by5maWx0ZXIodj0+bC5ldmVyeShnPT5xbihnW3ZdKSkpLGQ9Wy4uLmUubWFwKHY9Pntjb25zdFtnXT1obihjLHYpO3JldHVybiBnfSkuZmlsdGVyKHFuKS5tYXAodj0+Zz0+dltnXSksLi4ubi5tYXAoKHYsZyk9Pntjb25zdCB5PWxbZ10sYj11W3ZdfHxESyh5KSx4PV9LKCkudGhyZXNob2xkcyhiKS52YWx1ZSh3PT4reVt3XSkoZiksXz1uZXcgTWFwKHguZmxhdE1hcCh3PT57Y29uc3R7eDA6Tyx4MTpFfT13LE09YCR7T30sJHtFfWA7cmV0dXJuIHcubWFwKGs9PltrLE1dKX0pKTtyZXR1cm4gaVt2XT1fLHc9Pl8uZ2V0KHcpfSldLGg9dj0+ZC5tYXAoZz0+Zyh2KSkuam9pbigiLSIpO3JldHVybiBBcnJheS5mcm9tKGRyKGYsaCkudmFsdWVzKCkpfTtyZXR1cm4gRFMoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKHIpLmZpbHRlcigoW29dKT0+IW8uc3RhcnRzV2l0aChySSkpKSksT2JqZWN0LmZyb21FbnRyaWVzKG4uZmxhdE1hcChvPT57Y29uc3Qgcz0oW2xdKT0+K2lbb10uZ2V0KGwpLnNwbGl0KCIsIilbMF0sYz0oW2xdKT0+K2lbb10uZ2V0KGwpLnNwbGl0KCIsIilbMV07cmV0dXJuIGMuZnJvbT1vLFtbbyxzXSxbYCR7b30xYCxjXV19KSkpLHtncm91cEJ5OmF9KSl9O2pTLnByb3BzPXt9O2NvbnN0IGlJPSh0PXt9KT0+e2NvbnN0e3RocmVzaG9sZHM6ZX09dDtyZXR1cm4galMoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHt0aHJlc2hvbGRzWDplLGdyb3VwQ2hhbm5lbHM6WyJjb2xvciJdLGJpbkNoYW5uZWxzOlsieCJdfSkpfTtpSS5wcm9wcz17fTt2YXIgaks9ZnVuY3Rpb24odCxlKXt2YXIgbj17fTtmb3IodmFyIHIgaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKSYmZS5pbmRleE9mKHIpPDAmJihuW3JdPXRbcl0pO2lmKHQhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgaT0wLHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTtpPHIubGVuZ3RoO2krKyllLmluZGV4T2YocltpXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHQscltpXSkmJihuW3JbaV1dPXRbcltpXV0pO3JldHVybiBufTtjb25zdCBhST0odD17fSk9Pntjb25zdHtncm91cEJ5OmU9IngiLHJldmVyc2U6bj0hMSxvcmRlckJ5OnIscGFkZGluZzppfT10LGE9aksodCxbImdyb3VwQnkiLCJyZXZlcnNlIiwib3JkZXJCeSIsInBhZGRpbmciXSk7cmV0dXJuKG8scyk9Pntjb25zdHtkYXRhOmMsZW5jb2RlOmwsc2NhbGU6dX09cyx7c2VyaWVzOmZ9PXUsW2RdPWhuKGwsInkiKSxbaF09aTAobCwic2VyaWVzIiwiY29sb3IiKSx2PVE0KGgsZiksZz1tdCh7fSxzLHtzY2FsZTp7c2VyaWVzOntkb21haW46dixwYWRkaW5nSW5uZXI6aX19fSkseT1tbChlLG8scyksYj1xNChyKTtpZighYilyZXR1cm5bbyxtdChnLHtlbmNvZGU6e3NlcmllczpabihoKX19KV07Y29uc3QgeD1iKGMsZCxoKTt4JiZLNCh5LHgpO2NvbnN0IF89bmV3IEFycmF5KG8ubGVuZ3RoKTtmb3IoY29uc3QgdyBvZiB5KXtuJiZ3LnJldmVyc2UoKTtmb3IobGV0IE89MDtPPHcubGVuZ3RoO08rKylfW3dbT11dPXZbT119cmV0dXJuW28sbXQoZyx7ZW5jb2RlOntzZXJpZXM6Wm4ocj9fOmgpfX0pXX19O2FJLnByb3BzPXt9O2Z1bmN0aW9uIFQxKHQsZSxuKXtpZih0PT09bnVsbClyZXR1cm5bLS41LC41XTtjb25zdCByPVE0KHQsZSksYT1uZXcgcGwoe2RvbWFpbjpyLHJhbmdlOlswLDFdLHBhZGRpbmc6bn0pLmdldEJhbmRXaWR0aCgpO3JldHVyblstYS8yLGEvMl19ZnVuY3Rpb24gUDEodCxlLG4pe3JldHVybiBlKigxLXQpK24qdH1jb25zdCBvST0odD17fSk9Pntjb25zdHtwYWRkaW5nOmU9MCxwYWRkaW5nWDpuPWUscGFkZGluZ1k6cj1lLHJhbmRvbTppPU1hdGgucmFuZG9tfT10O3JldHVybihhLG8pPT57Y29uc3R7ZW5jb2RlOnMsc2NhbGU6Y309byx7eDpsLHk6dX09YyxbZl09aG4ocywieCIpLFtkXT1obihzLCJ5IiksaD1UMShmLGwsbiksdj1UMShkLHUsciksZz1hLm1hcCgoKT0+UDEoaSgpLC4uLnYpKSx5PWEubWFwKCgpPT5QMShpKCksLi4uaCkpO3JldHVyblthLG10KHtzY2FsZTp7eDp7cGFkZGluZzouNX0seTp7cGFkZGluZzouNX19fSxvLHtlbmNvZGU6e2R5OlpuKGcpLGR4OlpuKHkpfX0pXX19O29JLnByb3BzPXt9O2NvbnN0IHNJPSh0PXt9KT0+e2NvbnN0e3BhZGRpbmc6ZT0wLHJhbmRvbTpuPU1hdGgucmFuZG9tfT10O3JldHVybihyLGkpPT57Y29uc3R7ZW5jb2RlOmEsc2NhbGU6b309aSx7eDpzfT1vLFtjXT1obihhLCJ4IiksbD1UMShjLHMsZSksdT1yLm1hcCgoKT0+UDEobigpLC4uLmwpKTtyZXR1cm5bcixtdCh7c2NhbGU6e3g6e3BhZGRpbmc6LjV9fX0saSx7ZW5jb2RlOntkeDpabih1KX19KV19fTtzSS5wcm9wcz17fTtjb25zdCBjST0odD17fSk9Pntjb25zdHtwYWRkaW5nOmU9MCxyYW5kb206bj1NYXRoLnJhbmRvbX09dDtyZXR1cm4ocixpKT0+e2NvbnN0e2VuY29kZTphLHNjYWxlOm99PWkse3k6c309byxbY109aG4oYSwieSIpLGw9VDEoYyxzLGUpLHU9ci5tYXAoKCk9PlAxKG4oKSwuLi5sKSk7cmV0dXJuW3IsbXQoe3NjYWxlOnt5OntwYWRkaW5nOi41fX19LGkse2VuY29kZTp7ZHk6Wm4odSl9fSldfX07Y0kucHJvcHM9e307dmFyIEZLPWZ1bmN0aW9uKHQsZSl7dmFyIG49e307Zm9yKHZhciByIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscikmJmUuaW5kZXhPZihyKTwwJiYobltyXT10W3JdKTtpZih0IT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIGk9MCxyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCk7aTxyLmxlbmd0aDtpKyspZS5pbmRleE9mKHJbaV0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh0LHJbaV0pJiYobltyW2ldXT10W3JbaV1dKTtyZXR1cm4gbn07Y29uc3QgbEk9KHQ9e30pPT57Y29uc3R7Z3JvdXBCeTplPSJ4In09dDtyZXR1cm4obixyKT0+e2NvbnN0e2VuY29kZTppfT1yLHt4OmF9PWksbz1GSyhpLFsieCJdKSxzPU9iamVjdC5lbnRyaWVzKG8pLmZpbHRlcigoW2RdKT0+ZC5zdGFydHNXaXRoKCJ5IikpLm1hcCgoW2RdKT0+W2QsaG4oaSxkKVswXV0pLGM9cy5tYXAoKFtkXSk9PltkLG5ldyBBcnJheShuLmxlbmd0aCldKSxsPW1sKGUsbixyKSx1PW5ldyBBcnJheShsLmxlbmd0aCk7Zm9yKGxldCBkPTA7ZDxsLmxlbmd0aDtkKyspe2NvbnN0IHY9bFtkXS5mbGF0TWFwKGI9PnMubWFwKChbLHhdKT0+K3hbYl0pKSxbZyx5XT1zYyh2KTt1W2RdPShnK3kpLzJ9Y29uc3QgZj1NYXRoLm1heCguLi51KTtmb3IobGV0IGQ9MDtkPGwubGVuZ3RoO2QrKyl7Y29uc3QgaD1mLXVbZF0sdj1sW2RdO2Zvcihjb25zdCBnIG9mIHYpZm9yKGxldCB5PTA7eTxzLmxlbmd0aDt5Kyspe2NvbnN0WyxiXT1zW3ldLFsseF09Y1t5XTt4W2ddPStiW2ddK2h9fXJldHVybltuLG10KHt9LHIse2VuY29kZTpPYmplY3QuZnJvbUVudHJpZXMoYy5tYXAoKFtkLGhdKT0+W2QsWm4oaCxobihpLGQpWzFdKV0pKX0pXX19O2xJLnByb3BzPXt9O2NvbnN0IHVJPSh0PXt9KT0+e2NvbnN0e2dyb3VwQnk6ZT0ieCIsc2VyaWVzOm49ITB9PXQ7cmV0dXJuKHIsaSk9Pntjb25zdHtlbmNvZGU6YX09aSxbb109aG4oYSwieSIpLFtzLGNdPWhuKGEsInkxIiksW2xdPW4/aTAoYSwic2VyaWVzIiwiY29sb3IiKTpobihhLCJjb2xvciIpLHU9bWwoZSxyLGkpLGY9bmV3IEFycmF5KHIubGVuZ3RoKTtmb3IoY29uc3QgZCBvZiB1KXtjb25zdCBoPWQubWFwKHY9PitvW3ZdKTtmb3IobGV0IHY9MDt2PGQubGVuZ3RoO3YrKyl7Y29uc3QgZz1kW3ZdLHk9TWF0aC5tYXgoLi4uaC5maWx0ZXIoKGIseCk9PnghPT12KSk7ZltnXT0rb1tnXT55P3k6b1tnXX19cmV0dXJuW3IsbXQoe30saSx7ZW5jb2RlOnt5MTpabihmLGMpfX0pXX19O3VJLnByb3BzPXt9O2NvbnN0IGZJPXQ9Pntjb25zdHtncm91cEJ5OmU9WyJ4Il0scmVkdWNlcjpuPShvLHMpPT5zW29bMF1dLG9yZGVyQnk6cj1udWxsLHJldmVyc2U6aT0hMSxkdXJhdGlvbjphfT10O3JldHVybihvLHMpPT57Y29uc3R7ZW5jb2RlOmN9PXMsdT0oQXJyYXkuaXNBcnJheShlKT9lOltlXSkubWFwKHk9Plt5LGhuKGMseSlbMF1dKTtpZih1Lmxlbmd0aD09PTApcmV0dXJuW28sc107bGV0IGY9W29dO2Zvcihjb25zdFsseV1vZiB1KXtjb25zdCBiPVtdO2Zvcihjb25zdCB4IG9mIGYpe2NvbnN0IF89QXJyYXkuZnJvbShkcih4LHc9Pnlbd10pLnZhbHVlcygpKTtiLnB1c2goLi4uXyl9Zj1ifWlmKHIpe2NvbnN0W3ldPWhuKGMscik7eSYmZi5zb3J0KChiLHgpPT5uKGIseSktbih4LHkpKSxpJiZmLnJldmVyc2UoKX1jb25zdCBkPShhfHwzZTMpL2YubGVuZ3RoLFtoXT1hP1tkbChvLGQpXTppMChjLCJlbnRlckR1cmF0aW9uIixkbChvLGQpKSxbdl09aTAoYywiZW50ZXJEZWxheSIsZGwobywwKSksZz1uZXcgQXJyYXkoby5sZW5ndGgpO2ZvcihsZXQgeT0wLGI9MDt5PGYubGVuZ3RoO3krKyl7Y29uc3QgeD1mW3ldLF89RG4oeCx3PT4raFt3XSk7Zm9yKGNvbnN0IHcgb2YgeClnW3ddPSt2W3ddK2I7Yis9X31yZXR1cm5bbyxtdCh7fSxzLHtlbmNvZGU6e2VudGVyRHVyYXRpb246ZTEoaCksZW50ZXJEZWxheTplMShnKX19KV19fTtmSS5wcm9wcz17fTt2YXIgQks9ZnVuY3Rpb24odCxlKXt2YXIgbj17fTtmb3IodmFyIHIgaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKSYmZS5pbmRleE9mKHIpPDAmJihuW3JdPXRbcl0pO2lmKHQhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgaT0wLHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTtpPHIubGVuZ3RoO2krKyllLmluZGV4T2YocltpXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHQscltpXSkmJihuW3JbaV1dPXRbcltpXV0pO3JldHVybiBufTtmdW5jdGlvbiB6Syh0KXtyZXR1cm4gdHlwZW9mIHQ9PSJmdW5jdGlvbiI/dDp7bWluOihuLHIpPT5aYShuLGk9PnJbK2ldKSxtYXg6KG4scik9PkRuKG4saT0+clsraV0pLGZpcnN0OihuLHIpPT5yW25bMF1dLGxhc3Q6KG4scik9PnJbbltuLmxlbmd0aC0xXV0sbWVhbjoobixyKT0+eDAobixpPT5yWytpXSksbWVkaWFuOihuLHIpPT5JUyhuLGk9PnJbK2ldKSxzdW06KG4scik9PmJvKG4saT0+clsraV0pLGRldmlhdGlvbjoobixyKT0+ZUkobixpPT5yWytpXSl9W3RdfHxEbn1jb25zdCBkST0odD17fSk9Pntjb25zdHtncm91cEJ5OmU9IngiLGJhc2lzOm49Im1heCJ9PXQ7cmV0dXJuKHIsaSk9Pntjb25zdHtlbmNvZGU6YSx0b29sdGlwOm99PWkse3g6c309YSxjPUJLKGEsWyJ4Il0pLGw9T2JqZWN0LmVudHJpZXMoYykuZmlsdGVyKChbZ10pPT5nLnN0YXJ0c1dpdGgoInkiKSkubWFwKChbZ10pPT5bZyxobihhLGcpWzBdXSksWyx1XT1sLmZpbmQoKFtnXSk9Pmc9PT0ieSIpLGY9bC5tYXAoKFtnXSk9PltnLG5ldyBBcnJheShyLmxlbmd0aCldKSxkPW1sKGUscixpKSxoPXpLKG4pO2Zvcihjb25zdCBnIG9mIGQpe2NvbnN0IHk9aChnLHUpO2Zvcihjb25zdCBiIG9mIGcpZm9yKGxldCB4PTA7eDxsLmxlbmd0aDt4Kyspe2NvbnN0WyxfXT1sW3hdLFssd109Zlt4XTt3W2JdPStfW2JdL3l9fWNvbnN0IHY9cmMobyl8fChvPT1udWxsP3ZvaWQgMDpvLml0ZW1zKSYmKG89PW51bGw/dm9pZCAwOm8uaXRlbXMubGVuZ3RoKSE9PTA7cmV0dXJuW3IsbXQoe30saSxPYmplY3QuYXNzaWduKHtlbmNvZGU6T2JqZWN0LmZyb21FbnRyaWVzKGYubWFwKChbZyx5XSk9PltnLFpuKHksaG4oYSxnKVsxXSldKSl9LCF2JiZhLnkwJiZ7dG9vbHRpcDp7aXRlbXM6W3tjaGFubmVsOiJ5MCJ9XX19KSldfX07ZEkucHJvcHM9e307ZnVuY3Rpb24gaEkodCxlKXtyZXR1cm5bdFswXV19ZnVuY3Rpb24gV0sodCxlKXtjb25zdCBuPXQubGVuZ3RoLTE7cmV0dXJuW3Rbbl1dfWZ1bmN0aW9uIEdLKHQsZSl7Y29uc3Qgbj1vZCh0LHI9PmVbcl0pO3JldHVyblt0W25dXX1mdW5jdGlvbiAkSyh0LGUpe2NvbnN0IG49YjAodCxyPT5lW3JdKTtyZXR1cm5bdFtuXV19ZnVuY3Rpb24gWksodCl7cmV0dXJuIHR5cGVvZiB0PT0iZnVuY3Rpb24iP3Q6e2ZpcnN0OmhJLGxhc3Q6V0ssbWF4OkdLLG1pbjokS31bdF18fGhJfWNvbnN0IEMxPSh0PXt9KT0+e2NvbnN0e2dyb3VwQnk6ZT0ic2VyaWVzIixjaGFubmVsOm4sc2VsZWN0b3I6cn09dDtyZXR1cm4oaSxhKT0+e2NvbnN0e2VuY29kZTpvfT1hLHM9bWwoZSxpLGEpLFtjXT1obihvLG4pLGw9Wksocik7cmV0dXJuW3MuZmxhdE1hcCh1PT5sKHUsYykpLGFdfX07QzEucHJvcHM9e307dmFyIFlLPWZ1bmN0aW9uKHQsZSl7dmFyIG49e307Zm9yKHZhciByIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscikmJmUuaW5kZXhPZihyKTwwJiYobltyXT10W3JdKTtpZih0IT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIGk9MCxyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCk7aTxyLmxlbmd0aDtpKyspZS5pbmRleE9mKHJbaV0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh0LHJbaV0pJiYobltyW2ldXT10W3JbaV1dKTtyZXR1cm4gbn07Y29uc3QgcEk9KHQ9e30pPT57Y29uc3R7c2VsZWN0b3I6ZX09dCxuPVlLKHQsWyJzZWxlY3RvciJdKTtyZXR1cm4gQzEoT2JqZWN0LmFzc2lnbih7Y2hhbm5lbDoieCIsc2VsZWN0b3I6ZX0sbikpfTtwSS5wcm9wcz17fTt2YXIgSEs9ZnVuY3Rpb24odCxlKXt2YXIgbj17fTtmb3IodmFyIHIgaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKSYmZS5pbmRleE9mKHIpPDAmJihuW3JdPXRbcl0pO2lmKHQhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgaT0wLHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTtpPHIubGVuZ3RoO2krKyllLmluZGV4T2YocltpXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHQscltpXSkmJihuW3JbaV1dPXRbcltpXV0pO3JldHVybiBufTtjb25zdCB2ST0odD17fSk9Pntjb25zdHtzZWxlY3RvcjplfT10LG49SEsodCxbInNlbGVjdG9yIl0pO3JldHVybiBDMShPYmplY3QuYXNzaWduKHtjaGFubmVsOiJ5IixzZWxlY3RvcjplfSxuKSl9O3ZJLnByb3BzPXt9O3ZhciBWSz1mdW5jdGlvbih0LGUpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiZlLmluZGV4T2Yocik8MCYmKG5bcl09dFtyXSk7aWYodCE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBpPTAscj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2k8ci5sZW5ndGg7aSsrKWUuaW5kZXhPZihyW2ldKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodCxyW2ldKSYmKG5bcltpXV09dFtyW2ldXSk7cmV0dXJuIG59O2NvbnN0IEUwPSh0PXt9KT0+e2NvbnN0e2NoYW5uZWxzOmU9WyJ4IiwieSJdfT10LG49VksodCxbImNoYW5uZWxzIl0pLHI9KGksYSk9Pm1sKGUsaSxhKTtyZXR1cm4gRFMoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG4pLHtncm91cEJ5OnJ9KSl9O0UwLnByb3BzPXt9O2NvbnN0IGdJPSh0PXt9KT0+RTAoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtjaGFubmVsczpbIngiLCJjb2xvciIsInNlcmllcyJdfSkpO2dJLnByb3BzPXt9O2NvbnN0IHlJPSh0PXt9KT0+RTAoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtjaGFubmVsczpbInkiLCJjb2xvciIsInNlcmllcyJdfSkpO3lJLnByb3BzPXt9O2NvbnN0IG1JPSh0PXt9KT0+RTAoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtjaGFubmVsczpbImNvbG9yIl19KSk7bUkucHJvcHM9e307ZnVuY3Rpb24gWEsodCxlLG4pe3JldHVybihlLmxlbmd0aCE9PTI/V28oVV8odCxlLG4pLChbcixpXSxbYSxvXSk9PmtyKGksbyl8fGtyKHIsYSkpOldvKGRyKHQsbiksKFtyLGldLFthLG9dKT0+ZShpLG8pfHxrcihyLGEpKSkubWFwKChbcl0pPT5yKX12YXIgYkk9ZnVuY3Rpb24odCxlKXt2YXIgbj17fTtmb3IodmFyIHIgaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKSYmZS5pbmRleE9mKHIpPDAmJihuW3JdPXRbcl0pO2lmKHQhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgaT0wLHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTtpPHIubGVuZ3RoO2krKyllLmluZGV4T2YocltpXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHQscltpXSkmJihuW3JbaV1dPXRbcltpXV0pO3JldHVybiBufTtmdW5jdGlvbiBVSyh0LGUsbil7Y29uc3R7Ynk6cj10LHJlZHVjZXI6aT0ibWF4In09ZSxbYV09aG4obixyKTtpZih0eXBlb2YgaT09ImZ1bmN0aW9uIilyZXR1cm4gbz0+aShvLGEpO2lmKGk9PT0ibWF4IilyZXR1cm4gbz0+RG4obyxzPT4rYVtzXSk7aWYoaT09PSJtaW4iKXJldHVybiBvPT5aYShvLHM9PithW3NdKTtpZihpPT09InN1bSIpcmV0dXJuIG89PmJvKG8scz0+K2Fbc10pO2lmKGk9PT0ibWVkaWFuIilyZXR1cm4gbz0+SVMobyxzPT4rYVtzXSk7aWYoaT09PSJtZWFuIilyZXR1cm4gbz0+eDAobyxzPT4rYVtzXSk7aWYoaT09PSJmaXJzdCIpcmV0dXJuIG89PmFbb1swXV07aWYoaT09PSJsYXN0IilyZXR1cm4gbz0+YVtvW28ubGVuZ3RoLTFdXTt0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gcmVkdWNlcjogJHtpfWApfWZ1bmN0aW9uIHFLKHQsZSxuKXtjb25zdHtyZXZlcnNlOnIsY2hhbm5lbDppfT1uLHtlbmNvZGU6YX09ZSxbb109aG4oYSxpKSxzPVdvKHQsYz0+b1tjXSk7cmV0dXJuIHImJnMucmV2ZXJzZSgpLFtzLGVdfWZ1bmN0aW9uIEtLKHQsZSxuKXtpZighQXJyYXkuaXNBcnJheShuKSlyZXR1cm4gdDtjb25zdCByPW5ldyBTZXQobik7cmV0dXJuIHQuZmlsdGVyKGk9PnIuaGFzKGVbaV0pKX1mdW5jdGlvbiBRSyh0LGUsbil7dmFyIHI7Y29uc3R7cmV2ZXJzZTppLHNsaWNlOmEsY2hhbm5lbDpvfT1uLHM9YkkobixbInJldmVyc2UiLCJzbGljZSIsImNoYW5uZWwiXSkse2VuY29kZTpjLHNjYWxlOmw9e319PWUsdT0ocj1sW29dKT09PW51bGx8fHI9PT12b2lkIDA/dm9pZCAwOnIuZG9tYWluLFtmXT1obihjLG8pLGQ9VUsobyxzLGMpLGg9S0sodCxmLHUpLHY9WEsoaCxkLGI9PmZbYl0pO2kmJnYucmV2ZXJzZSgpO2NvbnN0IGc9dHlwZW9mIGE9PSJudW1iZXIiP1swLGFdOmEseT1hP3Yuc2xpY2UoLi4uZyk6djtyZXR1cm5bdCxtdChlLHtzY2FsZTp7W29dOntkb21haW46eX19fSldfWNvbnN0IEwxPSh0PXt9KT0+e2NvbnN0e3JldmVyc2U6ZT0hMSxzbGljZTpuLGNoYW5uZWw6cixvcmRpbmFsOmk9ITB9PXQsYT1iSSh0LFsicmV2ZXJzZSIsInNsaWNlIiwiY2hhbm5lbCIsIm9yZGluYWwiXSk7cmV0dXJuKG8scyk9Pmk/UUsobyxzLE9iamVjdC5hc3NpZ24oe3JldmVyc2U6ZSxzbGljZTpuLGNoYW5uZWw6cn0sYSkpOnFLKG8scyxPYmplY3QuYXNzaWduKHtyZXZlcnNlOmUsc2xpY2U6bixjaGFubmVsOnJ9LGEpKX07TDEucHJvcHM9e307Y29uc3QgeEk9KHQ9e30pPT5MMShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2NoYW5uZWw6IngifSkpO3hJLnByb3BzPXt9O2NvbnN0IF9JPSh0PXt9KT0+TDEoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtjaGFubmVsOiJ5In0pKTtfSS5wcm9wcz17fTtjb25zdCB3ST0odD17fSk9PkwxKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7Y2hhbm5lbDoiY29sb3IifSkpO3dJLnByb3BzPXt9O2Z1bmN0aW9uIEpLKHQsZSl7cmV0dXJuIHR5cGVvZiBlPT0ic3RyaW5nIj90Lm1hcChuPT5uW2VdKTp0Lm1hcChlKX1mdW5jdGlvbiB0USh0LGUpe2lmKHR5cGVvZiB0PT0iZnVuY3Rpb24iKXJldHVybiBuPT50KG4sZSk7aWYodD09PSJzdW0iKXJldHVybiBuPT5ibyhuLHI9PitlW3JdKTt0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gcmVkdWNlcjogJHt0fWApfWNvbnN0IE9JPSh0PXt9KT0+e2NvbnN0e2ZpZWxkOmUsY2hhbm5lbDpuPSJ5IixyZWR1Y2VyOnI9InN1bSJ9PXQ7cmV0dXJuKGksYSk9Pntjb25zdHtkYXRhOm8sZW5jb2RlOnN9PWEsW2NdPWhuKHMsIngiKSxsPWU/SksobyxlKTpobihzLG4pWzBdLHU9dFEocixsKSxmPUp5KGksdSxkPT5jW2RdKS5tYXAoZD0+ZFsxXSk7cmV0dXJuW2ksbXQoe30sYSx7c2NhbGU6e3g6e2ZsZXg6Zn19fSldfX07T0kucHJvcHM9e307ZnVuY3Rpb24gZVEodCl7Y29uc3R7cGFkZGluZzplPTAsZGlyZWN0aW9uOm49ImNvbCJ9PXQ7cmV0dXJuKHIsaSxhKT0+e2NvbnN0IG89ci5sZW5ndGg7aWYobz09PTApcmV0dXJuW107Y29uc3R7aW5uZXJXaWR0aDpzLGlubmVySGVpZ2h0OmN9PWEsbD1jL3M7bGV0IHU9TWF0aC5jZWlsKE1hdGguc3FydChpL2wpKSxmPXMvdSxkPU1hdGguY2VpbChpL3UpLGg9ZCpmO2Zvcig7aD5jOyl1PXUrMSxmPXMvdSxkPU1hdGguY2VpbChpL3UpLGg9ZCpmO2NvbnN0IHY9Yy1kKmYsZz1kPD0xPzA6di8oZC0xKSxbeSxiXT1kPD0xP1socy1vKmYpLyhvLTEpLChjLWYpLzJdOlswLDBdO3JldHVybiByLm1hcCgoeCxfKT0+e2NvbnN0W3csTyxFLE1dPU53KHgpLGs9bj09PSJjb2wiP18ldTpNYXRoLmZsb29yKF8vZCksQT1uPT09ImNvbCI/TWF0aC5mbG9vcihfL3UpOl8lZCxQPWsqZixDPShkLUEtMSkqZit2LE49KGYtZSkvRSxMPShmLWUpL00sUj1QLXcreSprKzEvMiplLEk9Qy1PLWcqQS1iKzEvMiplO3JldHVybmB0cmFuc2xhdGUoJHtSfSwgJHtJfSkgc2NhbGUoJHtOfSwgJHtMfSlgfSl9fWNvbnN0IFNJPXQ9PihlLG4pPT5bZSxtdCh7fSxuLHttb2RpZmllcjplUSh0KSxheGlzOiExfSldO1NJLnByb3BzPXt9O2Z1bmN0aW9uIG5RKHQsZSxuLHIpe2NvbnN0IGk9dC5sZW5ndGg7aWYocj49aXx8cj09PTApcmV0dXJuIHQ7Y29uc3QgYT1oPT5lW3RbaF1dKjEsbz1oPT5uW3RbaF1dKjEscz1bXSxjPShpLTIpLyhyLTIpO2xldCBsPTAsdSxmLGQ7cy5wdXNoKGwpO2ZvcihsZXQgaD0wO2g8ci0yO2grKyl7bGV0IHY9MCxnPTAseT1NYXRoLmZsb29yKChoKzEpKmMpKzEsYj1NYXRoLmZsb29yKChoKzIpKmMpKzE7Yj1NYXRoLm1pbihiLGkpO2NvbnN0IHg9Yi15O2Zvcig7eTxiO3krKyl2Kz1hKHkpLGcrPW8oeSk7di89eCxnLz14O2xldCBfPU1hdGguZmxvb3IoKGgrMCkqYykrMTtjb25zdCB3PU1hdGguZmxvb3IoKGgrMSkqYykrMSxPPVthKGwpLG8obCldO2Zvcih1PWY9LTE7Xzx3O18rKylmPU1hdGguYWJzKChPWzBdLXYpKihhKF8pLU9bMV0pLShPWzBdLW8oXykpKihnLU9bMF0pKSouNSxmPnUmJih1PWYsZD1fKTtzLnB1c2goZCksbD1kfXJldHVybiBzLnB1c2goaS0xKSxzLm1hcChoPT50W2hdKX1mdW5jdGlvbiByUSh0KXtpZih0eXBlb2YgdD09ImZ1bmN0aW9uIilyZXR1cm4gdDtpZih0PT09Imx0dGIiKXJldHVybiBuUTtjb25zdCBlPXtmaXJzdDpyPT5bclswXV0sbGFzdDpyPT5bcltyLmxlbmd0aC0xXV0sbWluOihyLGksYSk9PltyW2IwKHIsbz0+YVtvXSldXSxtYXg6KHIsaSxhKT0+W3Jbb2QocixvPT5hW29dKV1dLG1lZGlhbjoocixpLGEpPT5bcltTSyhyLG89PmFbb10pXV19LG49ZVt0XXx8ZS5tZWRpYW47cmV0dXJuKHIsaSxhLG8pPT57Y29uc3Qgcz1NYXRoLm1heCgxLE1hdGguZmxvb3Ioci5sZW5ndGgvbykpO3JldHVybiBpUShyLHMpLmZsYXRNYXAobD0+bihsLGksYSkpfX1mdW5jdGlvbiBpUSh0LGUpe2NvbnN0IG49dC5sZW5ndGgscj1bXTtsZXQgaT0wO2Zvcig7aTxuOylyLnB1c2godC5zbGljZShpLGkrPWUpKTtyZXR1cm4gcn1jb25zdCBFST0odD17fSk9Pntjb25zdHtzdHJhdGVneTplPSJtZWRpYW4iLHRocmVzaG9sZHM6bj0yZTMsZ3JvdXBCeTpyPVsic2VyaWVzIiwiY29sb3IiXX09dCxpPXJRKGUpO3JldHVybihhLG8pPT57Y29uc3R7ZW5jb2RlOnN9PW8sYz1tbChyLGEsbyksW2xdPWhuKHMsIngiKSxbdV09aG4ocywieSIpO3JldHVybltjLmZsYXRNYXAoZj0+aShmLGwsdSxuKSksb119fTtFSS5wcm9wcz17fTtmdW5jdGlvbiBhUSh0KXtyZXR1cm4gdHlwZW9mIHQ9PSJvYmplY3QiP1t0LnZhbHVlLHQub3JkaW5hbF06W3QsITBdfWZ1bmN0aW9uIG9RKHQpe3ZhciBlO2NvbnN0e2VuY29kZTpufT10LHI9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtlbmNvZGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuZW5jb2RlKSx7eTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5lbmNvZGUueSkse3ZhbHVlOltdfSl9KX0pLGk9KGU9bj09bnVsbD92b2lkIDA6bi5jb2xvcik9PT1udWxsfHxlPT09dm9pZCAwP3ZvaWQgMDplLmZpZWxkO2lmKCFufHwhaSlyZXR1cm4gcjtsZXQgYTtmb3IoY29uc3RbbyxzXW9mIE9iamVjdC5lbnRyaWVzKG4pKShvPT09IngifHxvPT09InkiKSYmcy5maWVsZD09PWkmJihhPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxhKSx7W29dOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxzKSx7dmFsdWU6W119KX0pKTtyZXR1cm4gYT9PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2VuY29kZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5lbmNvZGUpLGEpfSk6cn1jb25zdCBNST0odD17fSk9PihlLG4pPT57Y29uc3R7ZW5jb2RlOnIsZGF0YTppfT1uLGE9T2JqZWN0LmVudHJpZXModCkubWFwKChbdSxmXSk9Pntjb25zdFtkXT1obihyLHUpO2lmKCFkKXJldHVybiBudWxsO2NvbnN0W2gsdj0hMF09YVEoZik7aWYodHlwZW9mIGg9PSJmdW5jdGlvbiIpcmV0dXJuIGc9PmgoZFtnXSk7aWYodil7Y29uc3QgZz1BcnJheS5pc0FycmF5KGgpP2g6W2hdO3JldHVybiBnLmxlbmd0aD09PTA/bnVsbDp5PT5nLmluY2x1ZGVzKGRbeV0pfWVsc2V7Y29uc3RbZyx5XT1oO3JldHVybiBiPT5kW2JdPj1nJiZkW2JdPD15fX0pLmZpbHRlcihxbiksbz11PT5hLmV2ZXJ5KGY9PmYodSkpLHM9ZS5maWx0ZXIobyksYz1zLm1hcCgodSxmKT0+Zik7aWYoYS5sZW5ndGg9PT0wKXtjb25zdCB1PW9RKG4pO3JldHVybltlLHVdfWNvbnN0IGw9T2JqZWN0LmVudHJpZXMocikubWFwKChbdSxmXSk9Plt1LE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxmKSx7dmFsdWU6Yy5tYXAoZD0+Zi52YWx1ZVtzW2RdXSkuZmlsdGVyKGQ9PmQhPT12b2lkIDApfSldKTtyZXR1cm5bYyxtdCh7fSxuLHtlbmNvZGU6T2JqZWN0LmZyb21FbnRyaWVzKGwpLGRhdGE6cy5tYXAodT0+aVt1XSl9KV19O01JLnByb3BzPXt9O3ZhciBrST17fSxGUz17fSxCUz0zNCxNMD0xMCx6Uz0xMztmdW5jdGlvbiBBSSh0KXtyZXR1cm4gbmV3IEZ1bmN0aW9uKCJkIiwicmV0dXJuIHsiK3QubWFwKGZ1bmN0aW9uKGUsbil7cmV0dXJuIEpTT04uc3RyaW5naWZ5KGUpKyI6IGRbIituKyddIHx8ICIiJ30pLmpvaW4oIiwiKSsifSIpfWZ1bmN0aW9uIHNRKHQsZSl7dmFyIG49QUkodCk7cmV0dXJuIGZ1bmN0aW9uKHIsaSl7cmV0dXJuIGUobihyKSxpLHQpfX1mdW5jdGlvbiBUSSh0KXt2YXIgZT1PYmplY3QuY3JlYXRlKG51bGwpLG49W107cmV0dXJuIHQuZm9yRWFjaChmdW5jdGlvbihyKXtmb3IodmFyIGkgaW4gcilpIGluIGV8fG4ucHVzaChlW2ldPWkpfSksbn1mdW5jdGlvbiBMYSh0LGUpe3ZhciBuPXQrIiIscj1uLmxlbmd0aDtyZXR1cm4gcjxlP25ldyBBcnJheShlLXIrMSkuam9pbigwKStuOm59ZnVuY3Rpb24gY1EodCl7cmV0dXJuIHQ8MD8iLSIrTGEoLXQsNik6dD45OTk5PyIrIitMYSh0LDYpOkxhKHQsNCl9ZnVuY3Rpb24gbFEodCl7dmFyIGU9dC5nZXRVVENIb3VycygpLG49dC5nZXRVVENNaW51dGVzKCkscj10LmdldFVUQ1NlY29uZHMoKSxpPXQuZ2V0VVRDTWlsbGlzZWNvbmRzKCk7cmV0dXJuIGlzTmFOKHQpPyJJbnZhbGlkIERhdGUiOmNRKHQuZ2V0VVRDRnVsbFllYXIoKSw0KSsiLSIrTGEodC5nZXRVVENNb250aCgpKzEsMikrIi0iK0xhKHQuZ2V0VVRDRGF0ZSgpLDIpKyhpPyJUIitMYShlLDIpKyI6IitMYShuLDIpKyI6IitMYShyLDIpKyIuIitMYShpLDMpKyJaIjpyPyJUIitMYShlLDIpKyI6IitMYShuLDIpKyI6IitMYShyLDIpKyJaIjpufHxlPyJUIitMYShlLDIpKyI6IitMYShuLDIpKyJaIjoiIil9ZnVuY3Rpb24gdVEodCl7dmFyIGU9bmV3IFJlZ0V4cCgnWyInK3QrYAorXHJdYCksbj10LmNoYXJDb2RlQXQoMCk7ZnVuY3Rpb24gcihmLGQpe3ZhciBoLHYsZz1pKGYsZnVuY3Rpb24oeSxiKXtpZihoKXJldHVybiBoKHksYi0xKTt2PXksaD1kP3NRKHksZCk6QUkoeSl9KTtyZXR1cm4gZy5jb2x1bW5zPXZ8fFtdLGd9ZnVuY3Rpb24gaShmLGQpe3ZhciBoPVtdLHY9Zi5sZW5ndGgsZz0wLHk9MCxiLHg9djw9MCxfPSExO2YuY2hhckNvZGVBdCh2LTEpPT09TTAmJi0tdixmLmNoYXJDb2RlQXQodi0xKT09PXpTJiYtLXY7ZnVuY3Rpb24gdygpe2lmKHgpcmV0dXJuIEZTO2lmKF8pcmV0dXJuIF89ITEsa0k7dmFyIEUsTT1nLGs7aWYoZi5jaGFyQ29kZUF0KE0pPT09QlMpe2Zvcig7ZysrPHYmJmYuY2hhckNvZGVBdChnKSE9PUJTfHxmLmNoYXJDb2RlQXQoKytnKT09PUJTOyk7cmV0dXJuKEU9Zyk+PXY/eD0hMDooaz1mLmNoYXJDb2RlQXQoZysrKSk9PT1NMD9fPSEwOms9PT16UyYmKF89ITAsZi5jaGFyQ29kZUF0KGcpPT09TTAmJisrZyksZi5zbGljZShNKzEsRS0xKS5yZXBsYWNlKC8iIi9nLCciJyl9Zm9yKDtnPHY7KXtpZigoaz1mLmNoYXJDb2RlQXQoRT1nKyspKT09PU0wKV89ITA7ZWxzZSBpZihrPT09elMpXz0hMCxmLmNoYXJDb2RlQXQoZyk9PT1NMCYmKytnO2Vsc2UgaWYoayE9PW4pY29udGludWU7cmV0dXJuIGYuc2xpY2UoTSxFKX1yZXR1cm4geD0hMCxmLnNsaWNlKE0sdil9Zm9yKDsoYj13KCkpIT09RlM7KXtmb3IodmFyIE89W107YiE9PWtJJiZiIT09RlM7KU8ucHVzaChiKSxiPXcoKTtkJiYoTz1kKE8seSsrKSk9PW51bGx8fGgucHVzaChPKX1yZXR1cm4gaH1mdW5jdGlvbiBhKGYsZCl7cmV0dXJuIGYubWFwKGZ1bmN0aW9uKGgpe3JldHVybiBkLm1hcChmdW5jdGlvbih2KXtyZXR1cm4gdShoW3ZdKX0pLmpvaW4odCl9KX1mdW5jdGlvbiBvKGYsZCl7cmV0dXJuIGQ9PW51bGwmJihkPVRJKGYpKSxbZC5tYXAodSkuam9pbih0KV0uY29uY2F0KGEoZixkKSkuam9pbihgCitgKX1mdW5jdGlvbiBzKGYsZCl7cmV0dXJuIGQ9PW51bGwmJihkPVRJKGYpKSxhKGYsZCkuam9pbihgCitgKX1mdW5jdGlvbiBjKGYpe3JldHVybiBmLm1hcChsKS5qb2luKGAKK2ApfWZ1bmN0aW9uIGwoZil7cmV0dXJuIGYubWFwKHUpLmpvaW4odCl9ZnVuY3Rpb24gdShmKXtyZXR1cm4gZj09bnVsbD8iIjpmIGluc3RhbmNlb2YgRGF0ZT9sUShmKTplLnRlc3QoZis9IiIpPyciJytmLnJlcGxhY2UoLyIvZywnIiInKSsnIic6Zn1yZXR1cm57cGFyc2U6cixwYXJzZVJvd3M6aSxmb3JtYXQ6byxmb3JtYXRCb2R5OnMsZm9ybWF0Um93czpjLGZvcm1hdFJvdzpsLGZvcm1hdFZhbHVlOnV9fWZ1bmN0aW9uIGZRKHQpe2Zvcih2YXIgZSBpbiB0KXt2YXIgbj10W2VdLnRyaW0oKSxyLGk7aWYoIW4pbj1udWxsO2Vsc2UgaWYobj09PSJ0cnVlIiluPSEwO2Vsc2UgaWYobj09PSJmYWxzZSIpbj0hMTtlbHNlIGlmKG49PT0iTmFOIiluPU5hTjtlbHNlIGlmKCFpc05hTihyPStuKSluPXI7ZWxzZSBpZihpPW4ubWF0Y2goL14oWy0rXVxkezJ9KT9cZHs0fSgtXGR7Mn0oLVxkezJ9KT8pPyhUXGR7Mn06XGR7Mn0oOlxkezJ9KFwuXGR7M30pPyk/KFp8Wy0rXVxkezJ9OlxkezJ9KT8pPyQvKSlkUSYmaVs0XSYmIWlbN10mJihuPW4ucmVwbGFjZSgvLS9nLCIvIikucmVwbGFjZSgvVC8sIiAiKSksbj1uZXcgRGF0ZShuKTtlbHNlIGNvbnRpbnVlO3RbZV09bn1yZXR1cm4gdH1jb25zdCBkUT1uZXcgRGF0ZSgiMjAxOS0wMS0wMVQwMDowMCIpLmdldEhvdXJzKCl8fG5ldyBEYXRlKCIyMDE5LTA3LTAxVDAwOjAwIikuZ2V0SG91cnMoKTt2YXIgaFE9ZnVuY3Rpb24odCxlLG4scil7ZnVuY3Rpb24gaShhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIG4/YTpuZXcgbihmdW5jdGlvbihvKXtvKGEpfSl9cmV0dXJuIG5ldyhufHwobj1Qcm9taXNlKSkoZnVuY3Rpb24oYSxvKXtmdW5jdGlvbiBzKHUpe3RyeXtsKHIubmV4dCh1KSl9Y2F0Y2goZil7byhmKX19ZnVuY3Rpb24gYyh1KXt0cnl7bChyLnRocm93KHUpKX1jYXRjaChmKXtvKGYpfX1mdW5jdGlvbiBsKHUpe3UuZG9uZT9hKHUudmFsdWUpOmkodS52YWx1ZSkudGhlbihzLGMpfWwoKHI9ci5hcHBseSh0LGV8fFtdKSkubmV4dCgpKX0pfTtjb25zdCBQST10PT57Y29uc3R7dmFsdWU6ZSxmb3JtYXQ6bj1lLnNwbGl0KCIuIikucG9wKCksZGVsaW1pdGVyOnI9IiwiLGF1dG9UeXBlOmk9ITB9PXQ7cmV0dXJuKCk9PmhRKHZvaWQgMCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2NvbnN0IGE9eWllbGQgZmV0Y2goZSk7aWYobj09PSJjc3YiKXtjb25zdCBvPXlpZWxkIGEudGV4dCgpO3JldHVybiB1UShyKS5wYXJzZShvLGk/ZlE6dXUpfWVsc2UgaWYobj09PSJqc29uIilyZXR1cm4geWllbGQgYS5qc29uKCk7dGhyb3cgbmV3IEVycm9yKGBVbmtub3duIGZvcm1hdDogJHtufS5gKX0pfTtQSS5wcm9wcz17fTtjb25zdCBDST10PT57Y29uc3R7dmFsdWU6ZX09dDtyZXR1cm4oKT0+ZX07Q0kucHJvcHM9e307ZnVuY3Rpb24gcFEodCxlKXtyZXR1cm4gdC5tYXAobj0+e2lmKEFycmF5LmlzQXJyYXkobikpe2NvbnN0W3IsaT1lXT1uO3JldHVybltyLGldfXJldHVybltuLGVdfSl9Y29uc3QgTEk9dD0+e2NvbnN0e2ZpZWxkczplPVtdfT10LG49cFEoZSwhMCk7cmV0dXJuIHI9Pntjb25zdCBpPShhLG8pPT5uLnJlZHVjZSgocyxbYyxsPSEwXSk9PnMhPT0wP3M6bD9hW2NdPG9bY10/LTE6KyhhW2NdIT09b1tjXSk6YVtjXT5vW2NdPy0xOisoYVtjXSE9PW9bY10pLDApO3JldHVyblsuLi5yXS5zb3J0KGkpfX07TEkucHJvcHM9e307ZnVuY3Rpb24gR290KHQpe3JldHVybiB0IT1udWxsJiYhTnVtYmVyLmlzTmFOKHQpfWNvbnN0IFJJPXQ9Pntjb25zdHtjYWxsYmFjazplfT10O3JldHVybiBuPT5BcnJheS5pc0FycmF5KG4pP1suLi5uXS5zb3J0KGUpOm59O1JJLnByb3BzPXt9O2Z1bmN0aW9uIHZRKHQpe3JldHVybiB0IT1udWxsJiYhTnVtYmVyLmlzTmFOKHQpfWNvbnN0IE5JPXQ9Pntjb25zdHtjYWxsYmFjazplPXZRfT10O3JldHVybiBuPT5uLmZpbHRlcihlKX07TkkucHJvcHM9e307ZnVuY3Rpb24gZ1EodCxlPVtdKXtyZXR1cm4gZS5yZWR1Y2UoKG4scik9PihyIGluIHQmJihuW3JdPXRbcl0pLG4pLHt9KX1jb25zdCBJST10PT57Y29uc3R7ZmllbGRzOmV9PXQ7cmV0dXJuIG49Pm4ubWFwKHI9PmdRKHIsZSkpfTtJSS5wcm9wcz17fTtmdW5jdGlvbiB5USh0KXtyZXR1cm4gT2JqZWN0LmtleXModCkubGVuZ3RoPT09MH1jb25zdCBEST10PT5lPT57aWYoIXR8fHlRKHQpKXJldHVybiBlO2NvbnN0IG49cj0+T2JqZWN0LmVudHJpZXMocikucmVkdWNlKChpLFthLG9dKT0+KGlbdFthXXx8YV09byxpKSx7fSk7cmV0dXJuIGUubWFwKG4pfTtESS5wcm9wcz17fTtmdW5jdGlvbiBtUSh0KXtyZXR1cm4hdHx8T2JqZWN0LmtleXModCkubGVuZ3RoPT09MH1jb25zdCBqST10PT57Y29uc3R7ZmllbGRzOmUsa2V5Om49ImtleSIsdmFsdWU6cj0idmFsdWUifT10O3JldHVybiBpPT5tUShlKT9pOmkuZmxhdE1hcChhPT5lLm1hcChvPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sYSkse1tuXTpvLFtyXTphW29dfSkpKX07akkucHJvcHM9e307Y29uc3QgRkk9dD0+e2NvbnN0e3N0YXJ0OmUsZW5kOm59PXQ7cmV0dXJuIHI9PnIuc2xpY2UoZSxuKX07RkkucHJvcHM9e307Y29uc3QgQkk9dD0+e2NvbnN0e2NhbGxiYWNrOmU9dXV9PXQ7cmV0dXJuIG49PmUobil9O0JJLnByb3BzPXt9O2NvbnN0IHpJPXQ9Pntjb25zdHtjYWxsYmFjazplPXV1fT10O3JldHVybiBuPT5BcnJheS5pc0FycmF5KG4pP24ubWFwKGUpOm59O3pJLnByb3BzPXt9O2Z1bmN0aW9uIFdJKHQpe3JldHVybiB0eXBlb2YgdD09InN0cmluZyI/ZT0+ZVt0XTp0fWNvbnN0IEdJPXQ9Pntjb25zdHtqb2luOmUsb246bixzZWxlY3Q6cj1bXSxhczppPXIsdW5rbm93bjphPU5hTn09dCxbbyxzXT1uLGM9V0kocyksbD1XSShvKSx1PVVfKGUsKFtmXSk9PmYsZj0+YyhmKSk7cmV0dXJuIGY9PmYubWFwKGQ9Pntjb25zdCBoPXUuZ2V0KGwoZCkpO3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZCksci5yZWR1Y2UoKHYsZyx5KT0+KHZbaVt5XV09aD9oW2ddOmEsdikse30pKX0pfTtHSS5wcm9wcz17fTt2YXIgYlE9cHQoNTM4NDMpLHhRPXB0Lm4oYlEpO2Z1bmN0aW9uICRvdCh0KXtyZXR1cm4gdCE9bnVsbCYmIU51bWJlci5pc05hTih0KX1jb25zdCAkST10PT57Y29uc3R7ZmllbGQ6ZSxncm91cEJ5Om4sYXM6cj1bInkiLCJzaXplIl0sbWluOmksbWF4OmEsc2l6ZTpvPTEwLHdpZHRoOnN9PXQsW2MsbF09cjtyZXR1cm4gdT0+QXJyYXkuZnJvbShkcih1LGQ9Pm4ubWFwKGg9PmRbaF0pLmpvaW4oIi0iKSkudmFsdWVzKCkpLm1hcChkPT57Y29uc3QgaD14USgpLmNyZWF0ZShkLm1hcCh5PT55W2VdKSx7bWluOmksbWF4OmEsc2l6ZTpvLHdpZHRoOnN9KSx2PWgubWFwKHk9PnkueCksZz1oLm1hcCh5PT55LnkpO3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZFswXSkse1tjXTp2LFtsXTpnfSl9KX07JEkucHJvcHM9e307Y29uc3QgWkk9KCk9PnQ9Pihjb25zb2xlLmxvZygiRzIgZGF0YSBzZWN0aW9uOiIsdCksdCk7WkkucHJvcHM9e307dmFyIF9RPWZ1bmN0aW9uKHQsZSxuLHIpe2Z1bmN0aW9uIGkoYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBuP2E6bmV3IG4oZnVuY3Rpb24obyl7byhhKX0pfXJldHVybiBuZXcobnx8KG49UHJvbWlzZSkpKGZ1bmN0aW9uKGEsbyl7ZnVuY3Rpb24gcyh1KXt0cnl7bChyLm5leHQodSkpfWNhdGNoKGYpe28oZil9fWZ1bmN0aW9uIGModSl7dHJ5e2woci50aHJvdyh1KSl9Y2F0Y2goZil7byhmKX19ZnVuY3Rpb24gbCh1KXt1LmRvbmU/YSh1LnZhbHVlKTppKHUudmFsdWUpLnRoZW4ocyxjKX1sKChyPXIuYXBwbHkodCxlfHxbXSkpLm5leHQoKSl9KX07ZnVuY3Rpb24gd1EodCxlKXtyZXR1cm57c2V0KG4scixpKXtpZihlW25dPT09dm9pZCAwKXJldHVybiB0aGlzO2NvbnN0IGE9cj9yLmNhbGwobnVsbCxlW25dKTplW25dO3JldHVybiBpP2kuY2FsbChudWxsLGEpOnR5cGVvZiB0W25dPT0iZnVuY3Rpb24iP3Rbbl0oYSk6dFtuXT1hLHRoaXN9LHNldEFzeW5jKG4scixpKXtyZXR1cm4gX1EodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2lmKGVbbl09PT12b2lkIDApcmV0dXJuIHRoaXM7Y29uc3QgYT1yP3lpZWxkIHIuY2FsbChudWxsLGVbbl0pOmVbbl07cmV0dXJuIGk/aS5jYWxsKG51bGwsYSk6dHlwZW9mIHRbbl09PSJmdW5jdGlvbiI/dFtuXShhKTp0W25dPWEsdGhpc30pfX19Y29uc3QgV1M9TWF0aC5QSS8xODAsazA9NjQsUjE9MjA0ODtmdW5jdGlvbiBPUSh0KXtyZXR1cm4gdC50ZXh0fWZ1bmN0aW9uIFNRKCl7cmV0dXJuInNlcmlmIn1mdW5jdGlvbiBZSSgpe3JldHVybiJub3JtYWwifWZ1bmN0aW9uIEVRKHQpe3JldHVybiB0LnZhbHVlfWZ1bmN0aW9uIE1RKCl7cmV0dXJufn4oTWF0aC5yYW5kb20oKSoyKSo5MH1mdW5jdGlvbiBrUSgpe3JldHVybiAxfWZ1bmN0aW9uIEFRKCl7fWZ1bmN0aW9uIFRRKHQsZSxuLHIpe2lmKGUuc3ByaXRlKXJldHVybjtjb25zdCBpPXQuY29udGV4dCxhPXQucmF0aW87aS5jbGVhclJlY3QoMCwwLChrMDw8NSkvYSxSMS9hKTtsZXQgbz0wLHM9MCxjPTA7Y29uc3QgbD1uLmxlbmd0aDtmb3IoLS1yOysrcjxsOyl7ZT1uW3JdLGkuc2F2ZSgpLGkuZm9udD1lLnN0eWxlKyIgIitlLndlaWdodCsiICIrfn4oKGUuc2l6ZSsxKS9hKSsicHggIitlLmZvbnQ7bGV0IGQ9aS5tZWFzdXJlVGV4dChlLnRleHQrIm0iKS53aWR0aCphLGg9ZS5zaXplPDwxO2lmKGUucm90YXRlKXtjb25zdCB2PU1hdGguc2luKGUucm90YXRlKldTKSxnPU1hdGguY29zKGUucm90YXRlKldTKSx5PWQqZyxiPWQqdix4PWgqZyxfPWgqdjtkPU1hdGgubWF4KE1hdGguYWJzKHkrXyksTWF0aC5hYnMoeS1fKSkrMzE+PjU8PDUsaD1+fk1hdGgubWF4KE1hdGguYWJzKGIreCksTWF0aC5hYnMoYi14KSl9ZWxzZSBkPWQrMzE+PjU8PDU7aWYoaD5jJiYoYz1oKSxvK2Q+PWswPDw1JiYobz0wLHMrPWMsYz0wKSxzK2g+PVIxKWJyZWFrO2kudHJhbnNsYXRlKChvKyhkPj4xKSkvYSwocysoaD4+MSkpL2EpLGUucm90YXRlJiZpLnJvdGF0ZShlLnJvdGF0ZSpXUyksaS5maWxsVGV4dChlLnRleHQsMCwwKSxlLnBhZGRpbmcmJihpLmxpbmVXaWR0aD0yKmUucGFkZGluZyxpLnN0cm9rZVRleHQoZS50ZXh0LDAsMCkpLGkucmVzdG9yZSgpLGUud2lkdGg9ZCxlLmhlaWdodD1oLGUueG9mZj1vLGUueW9mZj1zLGUueDE9ZD4+MSxlLnkxPWg+PjEsZS54MD0tZS54MSxlLnkwPS1lLnkxLGUuaGFzVGV4dD0hMCxvKz1kfWNvbnN0IHU9aS5nZXRJbWFnZURhdGEoMCwwLChrMDw8NSkvYSxSMS9hKS5kYXRhLGY9W107Zm9yKDstLXI+PTA7KXtpZihlPW5bcl0sIWUuaGFzVGV4dCljb250aW51ZTtjb25zdCBkPWUud2lkdGgsaD1kPj41O2xldCB2PWUueTEtZS55MDtmb3IobGV0IGI9MDtiPHYqaDtiKyspZltiXT0wO2lmKG89ZS54b2ZmLG89PW51bGwpcmV0dXJuO3M9ZS55b2ZmO2xldCBnPTAseT0tMTtmb3IobGV0IGI9MDtiPHY7YisrKXtmb3IobGV0IHg9MDt4PGQ7eCsrKXtjb25zdCBfPWgqYisoeD4+NSksdz11WyhzK2IpKihrMDw8NSkrKG8reCk8PDJdPzE8PDMxLXglMzI6MDtmW19dfD13LGd8PXd9Zz95PWI6KGUueTArKyx2LS0sYi0tLHMrKyl9ZS55MT1lLnkwK3ksZS5zcHJpdGU9Zi5zbGljZSgwLChlLnkxLWUueTApKmgpfX1mdW5jdGlvbiBQUSh0LGUsbil7bj4+PTU7Y29uc3Qgcj10LnNwcml0ZSxpPXQud2lkdGg+PjUsYT10LngtKGk8PDQpLG89YSYxMjcscz0zMi1vLGM9dC55MS10LnkwO2xldCBsPSh0LnkrdC55MCkqbisoYT4+NSksdTtmb3IobGV0IGY9MDtmPGM7ZisrKXt1PTA7Zm9yKGxldCBkPTA7ZDw9aTtkKyspaWYoKHU8PHN8KGQ8aT8odT1yW2YqaStkXSk+Pj5vOjApKSZlW2wrZF0pcmV0dXJuITA7bCs9bn1yZXR1cm4hMX1mdW5jdGlvbiBDUSh0LGUpe2NvbnN0IG49dFswXSxyPXRbMV07ZS54K2UueDA8bi54JiYobi54PWUueCtlLngwKSxlLnkrZS55MDxuLnkmJihuLnk9ZS55K2UueTApLGUueCtlLngxPnIueCYmKHIueD1lLngrZS54MSksZS55K2UueTE+ci55JiYoci55PWUueStlLnkxKX1mdW5jdGlvbiBMUSh0LGUpe3JldHVybiB0LngrdC54MT5lWzBdLngmJnQueCt0LngwPGVbMV0ueCYmdC55K3QueTE+ZVswXS55JiZ0LnkrdC55MDxlWzFdLnl9ZnVuY3Rpb24gSEkodCl7Y29uc3QgZT10WzBdL3RbMV07cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybltlKihuKj0uMSkqTWF0aC5jb3MobiksbipNYXRoLnNpbihuKV19fWZ1bmN0aW9uIFJRKHQpe2NvbnN0IG49NCp0WzBdL3RbMV07bGV0IHI9MCxpPTA7cmV0dXJuIGZ1bmN0aW9uKGEpe2NvbnN0IG89YTwwPy0xOjE7c3dpdGNoKE1hdGguc3FydCgxKzQqbyphKS1vJjMpe2Nhc2UgMDpyKz1uO2JyZWFrO2Nhc2UgMTppKz00O2JyZWFrO2Nhc2UgMjpyLT1uO2JyZWFrO2RlZmF1bHQ6aS09NDticmVha31yZXR1cm5bcixpXX19ZnVuY3Rpb24gVkkodCl7Y29uc3QgZT1bXTtsZXQgbj0tMTtmb3IoOysrbjx0OyllW25dPTA7cmV0dXJuIGV9ZnVuY3Rpb24gTlEoKXtyZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIil9ZnVuY3Rpb24gaGModCl7cmV0dXJuIHR5cGVvZiB0PT0iZnVuY3Rpb24iP3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdH19Y29uc3QgSVE9e2FyY2hpbWVkZWFuOkhJLHJlY3Rhbmd1bGFyOlJRfTtmdW5jdGlvbiBEUSgpe2xldCB0PVsyNTYsMjU2XSxlPU9RLG49U1Escj1FUSxpPVlJLGE9TVEsbz1rUSxzPUhJLGM9TWF0aC5yYW5kb20sbD1BUSx1PVtdLGY9bnVsbCxkPTEvMCxoPU5RO2NvbnN0IHY9WUksZz17fTtnLnN0YXJ0PWZ1bmN0aW9uKCl7Y29uc3RbeCxfXT10LHc9eShoKCkpLE89Zy5ib2FyZD9nLmJvYXJkOlZJKCh0WzBdPj41KSp0WzFdKSxFPXUubGVuZ3RoLE09W10saz11Lm1hcChmdW5jdGlvbihOLEwsUil7cmV0dXJuIE4udGV4dD1lLmNhbGwodGhpcyxOLEwsUiksTi5mb250PW4uY2FsbCh0aGlzLE4sTCxSKSxOLnN0eWxlPXYuY2FsbCh0aGlzLE4sTCxSKSxOLndlaWdodD1pLmNhbGwodGhpcyxOLEwsUiksTi5yb3RhdGU9YS5jYWxsKHRoaXMsTixMLFIpLE4uc2l6ZT1+fnIuY2FsbCh0aGlzLE4sTCxSKSxOLnBhZGRpbmc9by5jYWxsKHRoaXMsTixMLFIpLE59KS5zb3J0KGZ1bmN0aW9uKE4sTCl7cmV0dXJuIEwuc2l6ZS1OLnNpemV9KTtsZXQgQT0tMSxQPWcuYm9hcmQ/W3t4OjAseTowfSx7eCx5Ol99XTp2b2lkIDA7ZiYmY2xlYXJJbnRlcnZhbChmKSxmPXNldEludGVydmFsKEMsMCksQygpO2Z1bmN0aW9uIEMoKXtjb25zdCBOPURhdGUubm93KCk7Zm9yKDtEYXRlLm5vdygpLU48ZCYmKytBPEU7KXtjb25zdCBMPWtbQV07TC54PXgqKGMoKSsuNSk+PjEsTC55PV8qKGMoKSsuNSk+PjEsVFEodyxMLGssQSksTC5oYXNUZXh0JiZiKE8sTCxQKSYmKGwuY2FsbChudWxsLCJ3b3JkIix7Y2xvdWQ6Zyx3b3JkOkx9KSxNLnB1c2goTCksUD9nLmhhc0ltYWdlfHxDUShQLEwpOlA9W3t4OkwueCtMLngwLHk6TC55K0wueTB9LHt4OkwueCtMLngxLHk6TC55K0wueTF9XSxMLngtPXRbMF0+PjEsTC55LT10WzFdPj4xKX1nLl90YWdzPU0sZy5fYm91bmRzPVAsQT49RSYmKGcuc3RvcCgpLGwuY2FsbChudWxsLCJlbmQiLHtjbG91ZDpnLHdvcmRzOk0sYm91bmRzOlB9KSl9cmV0dXJuIGd9LGcuc3RvcD1mdW5jdGlvbigpe3JldHVybiBmJiYoY2xlYXJJbnRlcnZhbChmKSxmPW51bGwpLGd9O2Z1bmN0aW9uIHkoeCl7eC53aWR0aD14LmhlaWdodD0xO2NvbnN0IF89TWF0aC5zcXJ0KHguZ2V0Q29udGV4dCgiMmQiKS5nZXRJbWFnZURhdGEoMCwwLDEsMSkuZGF0YS5sZW5ndGg+PjIpO3gud2lkdGg9KGswPDw1KS9fLHguaGVpZ2h0PVIxL187Y29uc3Qgdz14LmdldENvbnRleHQoIjJkIik7cmV0dXJuIHcuZmlsbFN0eWxlPXcuc3Ryb2tlU3R5bGU9InJlZCIsdy50ZXh0QWxpZ249ImNlbnRlciIsdy50ZXh0QmFzZWxpbmU9Im1pZGRsZSIse2NvbnRleHQ6dyxyYXRpbzpffX1mdW5jdGlvbiBiKHgsXyx3KXtjb25zdCBPPV8ueCxFPV8ueSxNPU1hdGguc3FydCh0WzBdKnRbMF0rdFsxXSp0WzFdKSxrPXModCksQT1jKCk8LjU/MTotMTtsZXQgUCxDPS1BLE4sTDtmb3IoOyhQPWsoQys9QSkpJiYoTj1+flBbMF0sTD1+flBbMV0sIShNYXRoLm1pbihNYXRoLmFicyhOKSxNYXRoLmFicyhMKSk+PU0pKTspaWYoXy54PU8rTixfLnk9RStMLCEoXy54K18ueDA8MHx8Xy55K18ueTA8MHx8Xy54K18ueDE+dFswXXx8Xy55K18ueTE+dFsxXSkmJighd3x8IVBRKF8seCx0WzBdKSkmJighd3x8TFEoXyx3KSkpe2NvbnN0IFI9Xy5zcHJpdGUsST1fLndpZHRoPj41LEQ9dFswXT4+NSxHPV8ueC0oSTw8NCksRj1HJjEyNyxXPTMyLUYsWD1fLnkxLV8ueTA7bGV0IFEsdHQ9KF8ueStfLnkwKSpEKyhHPj41KTtmb3IobGV0IG50PTA7bnQ8WDtudCsrKXtRPTA7Zm9yKGxldCBodD0wO2h0PD1JO2h0KyspeFt0dCtodF18PVE8PFd8KGh0PEk/KFE9UltudCpJK2h0XSk+Pj5GOjApO3R0Kz1EfXJldHVybiBkZWxldGUgXy5zcHJpdGUsITB9cmV0dXJuITF9cmV0dXJuIGcuY3JlYXRlTWFzaz14PT57Y29uc3QgXz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSxbdyxPXT10O2lmKCF3fHwhTylyZXR1cm47Y29uc3QgRT13Pj41LE09VkkoKHc+PjUpKk8pO18ud2lkdGg9dyxfLmhlaWdodD1PO2NvbnN0IGs9Xy5nZXRDb250ZXh0KCIyZCIpO2suZHJhd0ltYWdlKHgsMCwwLHgud2lkdGgseC5oZWlnaHQsMCwwLHcsTyk7Y29uc3QgQT1rLmdldEltYWdlRGF0YSgwLDAsdyxPKS5kYXRhO2ZvcihsZXQgUD0wO1A8TztQKyspZm9yKGxldCBDPTA7Qzx3O0MrKyl7Y29uc3QgTj1FKlArKEM+PjUpLEw9UCp3K0M8PDIsST1BW0xdPj0yNTAmJkFbTCsxXT49MjUwJiZBW0wrMl0+PTI1MD8xPDwzMS1DJTMyOjA7TVtOXXw9SX1nLmJvYXJkPU0sZy5oYXNJbWFnZT0hMH0sZy50aW1lSW50ZXJ2YWw9ZnVuY3Rpb24oeCl7ZD14PT1udWxsPzEvMDp4fSxnLndvcmRzPWZ1bmN0aW9uKHgpe3U9eH0sZy5zaXplPWZ1bmN0aW9uKHg9W10pe3Q9Wyt4WzBdLCt4WzFdXX0sZy50ZXh0PWZ1bmN0aW9uKHgpe2U9aGMoeCl9LGcuZm9udD1mdW5jdGlvbih4KXtuPWhjKHgpfSxnLmZvbnRXZWlnaHQ9ZnVuY3Rpb24oeCl7aT1oYyh4KX0sZy5yb3RhdGU9ZnVuY3Rpb24oeCl7YT1oYyh4KX0sZy5jYW52YXM9ZnVuY3Rpb24oeCl7aD1oYyh4KX0sZy5zcGlyYWw9ZnVuY3Rpb24oeCl7cz1JUVt4XXx8eH0sZy5mb250U2l6ZT1mdW5jdGlvbih4KXtyPWhjKHgpfSxnLnBhZGRpbmc9ZnVuY3Rpb24oeCl7bz1oYyh4KX0sZy5yYW5kb209ZnVuY3Rpb24oeCl7Yz1oYyh4KX0sZy5vbj1mdW5jdGlvbih4KXtsPWhjKHgpfSxnfXZhciBqUT1mdW5jdGlvbih0LGUsbixyKXtmdW5jdGlvbiBpKGEpe3JldHVybiBhIGluc3RhbmNlb2Ygbj9hOm5ldyBuKGZ1bmN0aW9uKG8pe28oYSl9KX1yZXR1cm4gbmV3KG58fChuPVByb21pc2UpKShmdW5jdGlvbihhLG8pe2Z1bmN0aW9uIHModSl7dHJ5e2woci5uZXh0KHUpKX1jYXRjaChmKXtvKGYpfX1mdW5jdGlvbiBjKHUpe3RyeXtsKHIudGhyb3codSkpfWNhdGNoKGYpe28oZil9fWZ1bmN0aW9uIGwodSl7dS5kb25lP2EodS52YWx1ZSk6aSh1LnZhbHVlKS50aGVuKHMsYyl9bCgocj1yLmFwcGx5KHQsZXx8W10pKS5uZXh0KCkpfSl9LEZRPWZ1bmN0aW9uKHQsZSl7dmFyIG49e307Zm9yKHZhciByIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscikmJmUuaW5kZXhPZihyKTwwJiYobltyXT10W3JdKTtpZih0IT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIGk9MCxyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCk7aTxyLmxlbmd0aDtpKyspZS5pbmRleE9mKHJbaV0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh0LHJbaV0pJiYobltyW2ldXT10W3JbaV1dKTtyZXR1cm4gbn07Y29uc3QgQlE9e2ZvbnRTaXplOlsyMCw2MF0sZm9udDoiSW1wYWN0IixwYWRkaW5nOjIscm90YXRlOmZ1bmN0aW9uKCl7cmV0dXJuKH5+KE1hdGgucmFuZG9tKCkqNiktMykqMzB9fTtmdW5jdGlvbiB6USh0KXtyZXR1cm4gbmV3IFByb21pc2UoKGUsbik9PntpZih0IGluc3RhbmNlb2YgSFRNTEltYWdlRWxlbWVudCl7ZSh0KTtyZXR1cm59aWYodHlwZW9mIHQ9PSJzdHJpbmciKXtjb25zdCByPW5ldyBJbWFnZTtyLmNyb3NzT3JpZ2luPSJhbm9ueW1vdXMiLHIuc3JjPXQsci5vbmxvYWQ9KCk9PmUociksci5vbmVycm9yPSgpPT57Y29uc29sZS5lcnJvcihgJ2ltYWdlICR7dH0gbG9hZCBmYWlsZWQgISEhJ2ApLG4oKX07cmV0dXJufW4oKX0pfWZ1bmN0aW9uIFdRKHQsZSl7aWYodHlwZW9mIHQ9PSJmdW5jdGlvbiIpcmV0dXJuIHQ7aWYoQXJyYXkuaXNBcnJheSh0KSl7Y29uc3RbbixyXT10O2lmKCFlKXJldHVybigpPT4ocituKS8yO2NvbnN0W2ksYV09ZTtyZXR1cm4gYT09PWk/KCk9PihyK24pLzI6KHt2YWx1ZTpvfSk9PihyLW4pLyhhLWkpKihvLWkpK259cmV0dXJuKCk9PnR9Y29uc3QgWEk9KHQsZSk9Pm49PmpRKHZvaWQgMCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2NvbnN0IHI9T2JqZWN0LmFzc2lnbih7fSxCUSx0LHtjYW52YXM6ZS5jcmVhdGVDYW52YXN9KSxpPURRKCk7eWllbGQgd1EoaSxyKS5zZXQoImZvbnRTaXplIix4PT57Y29uc3QgXz1uLm1hcCh3PT53LnZhbHVlKTtyZXR1cm4gV1EoeCxbWmEoXyksRG4oXyldKX0pLnNldCgiZm9udCIpLnNldCgiZm9udFN0eWxlIikuc2V0KCJmb250V2VpZ2h0Iikuc2V0KCJwYWRkaW5nIikuc2V0KCJyb3RhdGUiKS5zZXQoInNpemUiKS5zZXQoInNwaXJhbCIpLnNldCgidGltZUludGVydmFsIikuc2V0KCJyYW5kb20iKS5zZXQoInRleHQiKS5zZXQoIm9uIikuc2V0KCJjYW52YXMiKS5zZXRBc3luYygiaW1hZ2VNYXNrIix6USxpLmNyZWF0ZU1hc2spLGkud29yZHMoWy4uLm5dKTtjb25zdCBhPWkuc3RhcnQoKSxbbyxzXT1yLnNpemUsYz1be3g6MCx5OjB9LHt4Om8seTpzfV0se19ib3VuZHM6bD1jLF90YWdzOnUsaGFzSW1hZ2U6Zn09YSxkPXUubWFwKHg9Pnt2YXJ7eDpfLHk6dyxmb250Ok99PXgsRT1GUSh4LFsieCIsInkiLCJmb250Il0pO3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sRSkse3g6XytvLzIseTp3K3MvMixmb250RmFtaWx5Ok99KX0pLFt7eDpoLHk6dn0se3g6Zyx5fV09bCxiPXt0ZXh0OiIiLHZhbHVlOjAsb3BhY2l0eTowLGZvbnRTaXplOjB9O3JldHVybiBkLnB1c2goT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGIpLHt4OmY/MDpoLHk6Zj8wOnZ9KSxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sYikse3g6Zj9vOmcseTpmP3M6eX0pKSxkfSk7WEkucHJvcHM9e307ZnVuY3Rpb24gR1EodCxlKXtpZihlPDB8fGU+MSl0aHJvdyBuZXcgRXJyb3IoImFscGhhIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAxLiIpO2lmKHQubGVuZ3RoPT09MClyZXR1cm5bXTtsZXQgbj10WzBdO2NvbnN0IHI9W107Zm9yKGNvbnN0IGkgb2YgdCl7aWYoaT09bnVsbCl7ci5wdXNoKGkpLGNvbnNvbGUud2FybigiRU1BXHVGRjFBVGhlIHZhbHVlIGlzIG51bGwgb3IgdW5kZWZpbmVkIix0KTtjb250aW51ZX1uPT1udWxsJiYobj1pKTtjb25zdCBhPW4qZSsoMS1lKSppO3IucHVzaChhKSxuPWF9cmV0dXJuIHJ9Y29uc3QgVUk9dD0+e2NvbnN0e2ZpZWxkOmU9InkiLGFscGhhOm49LjYsYXM6cj1lfT10O3JldHVybiBpPT57Y29uc3QgYT1pLm1hcChzPT5zW2VdKSxvPUdRKGEsbik7cmV0dXJuIGkubWFwKChzLGMpPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30scykse1tyXTpvW2NdfSkpfX07VUkucHJvcHM9e307Y29uc3QgcUk9LjAxO2Z1bmN0aW9uIEdTKHQpe2NvbnN0e21pbjplLG1heDpufT10O3JldHVybltbZVswXSxlWzFdXSxbblswXSxuWzFdXV19ZnVuY3Rpb24gS0kodCxlLG49cUkpe2NvbnN0W3IsaV09dCxbYSxvXT1lO3JldHVybiByPj1hWzBdLW4mJnI8PW9bMF0rbiYmaT49YVsxXS1uJiZpPD1vWzFdK259ZnVuY3Rpb24gJFEodCxlLG49cUkpe2NvbnN0W3IsaV09dDtyZXR1cm4hKEtJKHIsZSxuKSYmS0koaSxlLG4pKX1mdW5jdGlvbiBaUSh0LGUpe2NvbnN0W24scl09dCxbaSxhXT1lO3JldHVybiBuWzBdPGFbMF0mJnJbMF0+aVswXSYmblsxXTxhWzFdJiZyWzFdPmlbMV19Y29uc3QgWVE9dD0+e2NvbnN0e3ByaW9yaXR5OmV9PXQ7cmV0dXJuIG49Pntjb25zdCByPVtdO3JldHVybiBlJiZuLnNvcnQoZSksbi5mb3JFYWNoKGk9PntObShpKTtjb25zdCBhPWkuZ2V0TG9jYWxCb3VuZHMoKTtyLnNvbWUocz0+WlEoR1MoYSksR1Mocy5nZXRMb2NhbEJvdW5kcygpKSkpP0h3KGkpOnIucHVzaChpKX0pLG59fTtmdW5jdGlvbiBIUShbdCxlXSxbbixyXSl7cmV0dXJuIHI+dCYmZT5ufWZ1bmN0aW9uIE4xKCl7Y29uc3QgdD1uZXcgTWFwO3JldHVybltyPT50LmdldChyKSwocixpKT0+dC5zZXQocixpKV19ZnVuY3Rpb24gVlEodCl7Y29uc3QgZT10LmNsb25lTm9kZSghMCksbj1lLmdldEVsZW1lbnRCeUlkKCJjb25uZWN0b3IiKTtuJiZlLnJlbW92ZUNoaWxkKG4pO2NvbnN0e21pbjpyLG1heDppfT1lLmdldFJlbmRlckJvdW5kcygpO3JldHVybiBlLmRlc3Ryb3koKSx7bWluOnIsbWF4Oml9fWNvbnN0IFhRPXQ9Pntjb25zdHttYXhJdGVyYXRpb25zOmU9MTAsbWF4RXJyb3I6bj0uMSxwYWRkaW5nOnI9MX09dDtyZXR1cm4gaT0+e2NvbnN0IGE9aS5sZW5ndGg7aWYoYTw9MSlyZXR1cm4gaTtjb25zdFtvLHNdPU4xKCksW2MsbF09TjEoKSxbdSxmXT1OMSgpLFtkLGhdPU4xKCk7Zm9yKGNvbnN0IHYgb2YgaSl7Y29uc3R7bWluOmcsbWF4Onl9PVZRKHYpLFtiLHhdPWcsW18sd109eTtzKHYseCksbCh2LHgpLGYodix3LXgpLGgodixbYixfXSl9Zm9yKGxldCB2PTA7djxlO3YrKyl7aS5zb3J0KCh5LGIpPT5rcihjKHkpLGMoYikpKTtsZXQgZz0wO2ZvcihsZXQgeT0wO3k8YS0xO3krKyl7Y29uc3QgYj1pW3ldO2xldCB4PXkrMSxfO2Zvcig7KF89aVt4XSkmJiFIUShkKGIpLGQoXykpOyl4Kz0xO2lmKF8pe2NvbnN0IHc9YyhiKSxPPXUoYiksRT1jKF8pLE09RS0odytPKTtpZihNPHIpe2NvbnN0IGs9KHItTSkvMjtnPU1hdGgubWF4KGcsayksbChiLHctayksbChfLEUrayl9fX1pZihnPG4pYnJlYWt9Zm9yKGNvbnN0IHYgb2YgaSl2LnN0eWxlLnkrPWModiktbyh2KTtyZXR1cm4gaX19LFVRPSgpPT50PT4odC5mb3JFYWNoKGU9PntObShlKTtjb25zdCBuPWUuYXR0cigiYm91bmRzIikscj1lLmdldExvY2FsQm91bmRzKCk7JFEoR1MociksbikmJkh3KGUpfSksdCk7ZnVuY3Rpb24gcVEodCl7cmV0dXJuIHR5cGVvZiB0PT0ib2JqZWN0Ij90Om9zKHQpfWZ1bmN0aW9uICRTKHQpe2xldCBlPXQvMjU1O3JldHVybiBlPWU8PS4wMzkyOD9lLzEyLjkyOk1hdGgucG93KChlKy4wNTUpLzEuMDU1LDIuNCksZX1mdW5jdGlvbiBRSSh0LGUsbil7cmV0dXJuIC4yMTI2KiRTKHQpKy43MTUyKiRTKGUpKy4wNzIyKiRTKG4pfWZ1bmN0aW9uIEpJKHQsZSl7aWYoIXR8fCFlfHx0PT09ZSlyZXR1cm4gMTtjb25zdHtyOm4sZzpyLGI6aX09dCx7cjphLGc6byxiOnN9PWUsYz1RSShuLHIsaSksbD1RSShhLG8scyk7cmV0dXJuKE1hdGgubWF4KGMsbCkrLjA1KS8oTWF0aC5taW4oYyxsKSsuMDUpfWZ1bmN0aW9uIEtRKHQsZSl7Y29uc3Qgbj1vZChlLHI9PkpJKHQscVEocikpKTtyZXR1cm4gZVtuXX1jb25zdCBRUT10PT57Y29uc3R7dGhyZXNob2xkOmU9NC41LHBhbGV0dGU6bj1bIiMwMDAiLCIjZmZmIl19PXQ7cmV0dXJuIHI9PihyLmZvckVhY2goaT0+e2NvbnN0IGE9aS5hdHRyKCJkZXBlbmRlbnRFbGVtZW50IikucGFyc2VkU3R5bGUuZmlsbCxvPWkucGFyc2VkU3R5bGUuZmlsbDtKSShvLGEpPGUmJmkuYXR0cigiZmlsbCIsS1EoYSxuKSl9KSxyKX0sSlE9KHQsZSk9Pntjb25zdFtbbixyXSxbaSxhXV09ZSxbW28sc10sW2MsbF1dPXQ7bGV0IHU9MCxmPTA7cmV0dXJuIG88bj91PW4tbzpjPmkmJih1PWktYyksczxyP2Y9ci1zOmw+YSYmKGY9YS1sKSxbdSxmXX0sdEo9KCk9Pih0LHtjYW52YXM6ZSxsYXlvdXQ6bn0pPT4odC5mb3JFYWNoKHI9PntObShyKTtjb25zdHttYXg6aSxtaW46YX09ci5nZXRSZW5kZXJCb3VuZHMoKSxbbyxzXT1pLFtjLGxdPWEsdT1KUShbW2MsbF0sW28sc11dLFtbbi54LG4ueV0sW24ueCtuLndpZHRoLG4ueStuLmhlaWdodF1dKTtyLnN0eWxlLmNvbm5lY3RvciYmci5zdHlsZS5jb25uZWN0b3JQb2ludHMmJihyLnN0eWxlLmNvbm5lY3RvclBvaW50c1swXVswXS09dVswXSxyLnN0eWxlLmNvbm5lY3RvclBvaW50c1swXVsxXS09dVsxXSksci5zdHlsZS54Kz11WzBdLHIuc3R5bGUueSs9dVsxXX0pLHQpO2Z1bmN0aW9uIGVKKCl7cmV0dXJueyJkYXRhLmZldGNoIjpQSSwiZGF0YS5pbmxpbmUiOkNJLCJkYXRhLnNvcnRCeSI6TEksImRhdGEuc29ydCI6UkksImRhdGEuZmlsdGVyIjpOSSwiZGF0YS5waWNrIjpJSSwiZGF0YS5yZW5hbWUiOkRJLCJkYXRhLmZvbGQiOmpJLCJkYXRhLnNsaWNlIjpGSSwiZGF0YS5jdXN0b20iOkJJLCJkYXRhLm1hcCI6ekksImRhdGEuam9pbiI6R0ksImRhdGEua2RlIjokSSwiZGF0YS5sb2ciOlpJLCJkYXRhLndvcmRDbG91ZCI6WEksImRhdGEuZW1hIjpVSSwidHJhbnNmb3JtLnN0YWNrWSI6SjQsInRyYW5zZm9ybS5iaW5YIjppSSwidHJhbnNmb3JtLmJpbiI6alMsInRyYW5zZm9ybS5kb2RnZVgiOmFJLCJ0cmFuc2Zvcm0uaml0dGVyIjpvSSwidHJhbnNmb3JtLmppdHRlclgiOnNJLCJ0cmFuc2Zvcm0uaml0dGVyWSI6Y0ksInRyYW5zZm9ybS5zeW1tZXRyeVkiOmxJLCJ0cmFuc2Zvcm0uZGlmZlkiOnVJLCJ0cmFuc2Zvcm0uc3RhY2tFbnRlciI6ZkksInRyYW5zZm9ybS5ub3JtYWxpemVZIjpkSSwidHJhbnNmb3JtLnNlbGVjdCI6QzEsInRyYW5zZm9ybS5zZWxlY3RYIjpwSSwidHJhbnNmb3JtLnNlbGVjdFkiOnZJLCJ0cmFuc2Zvcm0uZ3JvdXBYIjpnSSwidHJhbnNmb3JtLmdyb3VwWSI6eUksInRyYW5zZm9ybS5ncm91cENvbG9yIjptSSwidHJhbnNmb3JtLmdyb3VwIjpFMCwidHJhbnNmb3JtLnNvcnRYIjp4SSwidHJhbnNmb3JtLnNvcnRZIjpfSSwidHJhbnNmb3JtLnNvcnRDb2xvciI6d0ksInRyYW5zZm9ybS5mbGV4WCI6T0ksInRyYW5zZm9ybS5wYWNrIjpTSSwidHJhbnNmb3JtLnNhbXBsZSI6RUksInRyYW5zZm9ybS5maWx0ZXIiOk1JLCJjb29yZGluYXRlLmNhcnRlc2lhbiI6WkMsImNvb3JkaW5hdGUucG9sYXIiOk9wLCJjb29yZGluYXRlLnRyYW5zcG9zZSI6T08sImNvb3JkaW5hdGUudGhldGEiOllDLCJjb29yZGluYXRlLnBhcmFsbGVsIjpTTywiY29vcmRpbmF0ZS5maXNoZXllIjpIQywiY29vcmRpbmF0ZS5yYWRpYWwiOnJ3LCJjb29yZGluYXRlLnJhZGFyIjpWQywiY29vcmRpbmF0ZS5oZWxpeCI6WEMsImVuY29kZS5jb25zdGFudCI6VUMsImVuY29kZS5maWVsZCI6cUMsImVuY29kZS50cmFuc2Zvcm0iOktDLCJlbmNvZGUuY29sdW1uIjpRQywibWFyay5pbnRlcnZhbCI6bzUsIm1hcmsucmVjdCI6YzUsIm1hcmsubGluZSI6TjUsIm1hcmsucG9pbnQiOmFMLCJtYXJrLnRleHQiOmZMLCJtYXJrLmNlbGwiOmhMLCJtYXJrLmFyZWEiOl9MLCJtYXJrLmxpbmsiOkdPLCJtYXJrLmltYWdlIjpJTCwibWFyay5wb2x5Z29uIjp6TCwibWFyay5ib3giOlpMLCJtYXJrLnZlY3RvciI6SEwsIm1hcmsubGluZVgiOnFMLCJtYXJrLmxpbmVZIjpKTCwibWFyay5jb25uZWN0b3IiOnJSLCJtYXJrLnJhbmdlIjpvUiwibWFyay5yYW5nZVgiOmxSLCJtYXJrLnJhbmdlWSI6ZFIsIm1hcmsucGF0aCI6eVIsIm1hcmsuc2hhcGUiOnhSLCJtYXJrLmRlbnNpdHkiOk9SLCJtYXJrLmhlYXRtYXAiOmtSLCJtYXJrLndvcmRDbG91ZCI6SE8sInBhbGV0dGUuY2F0ZWdvcnkxMCI6QVIsInBhbGV0dGUuY2F0ZWdvcnkyMCI6VFIsInNjYWxlLmxpbmVhciI6UFIsInNjYWxlLm9yZGluYWwiOk5SLCJzY2FsZS5iYW5kIjpqUiwic2NhbGUuaWRlbnRpdHkiOkZSLCJzY2FsZS5wb2ludCI6QlIsInNjYWxlLnRpbWUiOnNOLCJzY2FsZS5sb2ciOmxOLCJzY2FsZS5wb3ciOnVOLCJzY2FsZS5zcXJ0IjpmTiwic2NhbGUudGhyZXNob2xkIjpkTiwic2NhbGUucXVhbnRpbGUiOmhOLCJzY2FsZS5xdWFudGl6ZSI6cE4sInNjYWxlLnNlcXVlbnRpYWwiOnZOLCJzY2FsZS5jb25zdGFudCI6Z04sInRoZW1lLmNsYXNzaWMiOnlOLCJ0aGVtZS5jbGFzc2ljRGFyayI6Yk4sInRoZW1lLmFjYWRlbXkiOnhOLCJ0aGVtZS5saWdodCI6blMsInRoZW1lLmRhcmsiOm1OLCJjb21wb25lbnQuYXhpc1giOl9OLCJjb21wb25lbnQuYXhpc1kiOndOLCJjb21wb25lbnQubGVnZW5kQ2F0ZWdvcnkiOmlTLCJjb21wb25lbnQubGVnZW5kQ29udGludW91cyI6YWwsImNvbXBvbmVudC5sZWdlbmRzIjpTTiwiY29tcG9uZW50LnRpdGxlIjpNTiwiY29tcG9uZW50LnNsaWRlclgiOlBOLCJjb21wb25lbnQuc2xpZGVyWSI6Q04sImNvbXBvbmVudC5zY3JvbGxiYXJYIjpMTiwiY29tcG9uZW50LnNjcm9sbGJhclkiOlJOLCJhbmltYXRpb24uc2NhbGVJblgiOmNTLCJhbmltYXRpb24uc2NhbGVPdXRYIjpZWCwiYW5pbWF0aW9uLnNjYWxlSW5ZIjpOTiwiYW5pbWF0aW9uLnNjYWxlT3V0WSI6SFgsImFuaW1hdGlvbi53YXZlSW4iOklOLCJhbmltYXRpb24uZmFkZUluIjpETiwiYW5pbWF0aW9uLmZhZGVPdXQiOmpOLCJhbmltYXRpb24uem9vbUluIjpWWCwiYW5pbWF0aW9uLnpvb21PdXQiOlhYLCJhbmltYXRpb24ucGF0aEluIjpGTiwiYW5pbWF0aW9uLm1vcnBoaW5nIjokTiwiYW5pbWF0aW9uLmdyb3dJblgiOlpOLCJhbmltYXRpb24uZ3Jvd0luWSI6WU4sImludGVyYWN0aW9uLmVsZW1lbnRIaWdobGlnaHQiOmIxLCJpbnRlcmFjdGlvbi5lbGVtZW50SGlnaGxpZ2h0QnlYIjpITiwiaW50ZXJhY3Rpb24uZWxlbWVudEhpZ2hsaWdodEJ5Q29sb3IiOlZOLCJpbnRlcmFjdGlvbi5lbGVtZW50U2VsZWN0Ijp4MSwiaW50ZXJhY3Rpb24uZWxlbWVudFNlbGVjdEJ5WCI6WE4sImludGVyYWN0aW9uLmVsZW1lbnRTZWxlY3RCeUNvbG9yIjpVTiwiaW50ZXJhY3Rpb24uZmlzaGV5ZSI6dVUsImludGVyYWN0aW9uLmNoYXJ0SW5kZXgiOnFOLCJpbnRlcmFjdGlvbi50b29sdGlwIjpmNCwiaW50ZXJhY3Rpb24ubGVnZW5kRmlsdGVyIjpqVSwiaW50ZXJhY3Rpb24ubGVnZW5kSGlnaGxpZ2h0IjpGVSwiaW50ZXJhY3Rpb24uYnJ1c2hIaWdobGlnaHQiOnlTLCJpbnRlcmFjdGlvbi5icnVzaFhIaWdobGlnaHQiOlpVLCJpbnRlcmFjdGlvbi5icnVzaFlIaWdobGlnaHQiOllVLCJpbnRlcmFjdGlvbi5icnVzaEF4aXNIaWdobGlnaHQiOnRxLCJpbnRlcmFjdGlvbi5icnVzaEZpbHRlciI6X1MsImludGVyYWN0aW9uLmJydXNoWEZpbHRlciI6aXEsImludGVyYWN0aW9uLmJydXNoWUZpbHRlciI6YXEsImludGVyYWN0aW9uLnNsaWRlckZpbHRlciI6UzQsImludGVyYWN0aW9uLnNjcm9sbGJhckZpbHRlciI6dXEsImludGVyYWN0aW9uLnBvcHRpcCI6azQsImludGVyYWN0aW9uLnRyZWVtYXBEcmlsbERvd24iOkNxLCJpbnRlcmFjdGlvbi5lbGVtZW50UG9pbnRNb3ZlIjpqcSwiY29tcG9zaXRpb24uc3BhY2VMYXllciI6RzQsImNvbXBvc2l0aW9uLnNwYWNlRmxleCI6JDQsImNvbXBvc2l0aW9uLmZhY2V0UmVjdCI6VjQsImNvbXBvc2l0aW9uLnJlcGVhdE1hdHJpeCI6cXEsImNvbXBvc2l0aW9uLmZhY2V0Q2lyY2xlIjpuSywiY29tcG9zaXRpb24udGltaW5nS2V5ZnJhbWUiOlU0LCJsYWJlbFRyYW5zZm9ybS5vdmVybGFwSGlkZSI6WVEsImxhYmVsVHJhbnNmb3JtLm92ZXJsYXBEb2RnZVkiOlhRLCJsYWJlbFRyYW5zZm9ybS5vdmVyZmxvd0hpZGUiOlVRLCJsYWJlbFRyYW5zZm9ybS5jb250cmFzdFJldmVyc2UiOlFRLCJsYWJlbFRyYW5zZm9ybS5leGNlZWRBZGp1c3QiOnRKfX12YXIgQTA9dD0+dDtmdW5jdGlvbiBJMSh0LGUpe3QmJmVELmhhc093blByb3BlcnR5KHQudHlwZSkmJmVEW3QudHlwZV0odCxlKX12YXIgdEQ9e0ZlYXR1cmU6ZnVuY3Rpb24odCxlKXtJMSh0Lmdlb21ldHJ5LGUpfSxGZWF0dXJlQ29sbGVjdGlvbjpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10LmZlYXR1cmVzLHI9LTEsaT1uLmxlbmd0aDsrK3I8aTspSTEobltyXS5nZW9tZXRyeSxlKX19LGVEPXtTcGhlcmU6ZnVuY3Rpb24odCxlKXtlLnNwaGVyZSgpfSxQb2ludDpmdW5jdGlvbih0LGUpe3Q9dC5jb29yZGluYXRlcyxlLnBvaW50KHRbMF0sdFsxXSx0WzJdKX0sTXVsdGlQb2ludDpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10LmNvb3JkaW5hdGVzLHI9LTEsaT1uLmxlbmd0aDsrK3I8aTspdD1uW3JdLGUucG9pbnQodFswXSx0WzFdLHRbMl0pfSxMaW5lU3RyaW5nOmZ1bmN0aW9uKHQsZSl7WlModC5jb29yZGluYXRlcyxlLDApfSxNdWx0aUxpbmVTdHJpbmc6ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dC5jb29yZGluYXRlcyxyPS0xLGk9bi5sZW5ndGg7KytyPGk7KVpTKG5bcl0sZSwwKX0sUG9seWdvbjpmdW5jdGlvbih0LGUpe25EKHQuY29vcmRpbmF0ZXMsZSl9LE11bHRpUG9seWdvbjpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10LmNvb3JkaW5hdGVzLHI9LTEsaT1uLmxlbmd0aDsrK3I8aTspbkQobltyXSxlKX0sR2VvbWV0cnlDb2xsZWN0aW9uOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXQuZ2VvbWV0cmllcyxyPS0xLGk9bi5sZW5ndGg7KytyPGk7KUkxKG5bcl0sZSl9fTtmdW5jdGlvbiBaUyh0LGUsbil7dmFyIHI9LTEsaT10Lmxlbmd0aC1uLGE7Zm9yKGUubGluZVN0YXJ0KCk7KytyPGk7KWE9dFtyXSxlLnBvaW50KGFbMF0sYVsxXSxhWzJdKTtlLmxpbmVFbmQoKX1mdW5jdGlvbiBuRCh0LGUpe3ZhciBuPS0xLHI9dC5sZW5ndGg7Zm9yKGUucG9seWdvblN0YXJ0KCk7KytuPHI7KVpTKHRbbl0sZSwxKTtlLnBvbHlnb25FbmQoKX1mdW5jdGlvbiBNZCh0LGUpe3QmJnRELmhhc093blByb3BlcnR5KHQudHlwZSk/dERbdC50eXBlXSh0LGUpOkkxKHQsZSl9Y2xhc3MgcGN7Y29uc3RydWN0b3IoKXt0aGlzLl9wYXJ0aWFscz1uZXcgRmxvYXQ2NEFycmF5KDMyKSx0aGlzLl9uPTB9YWRkKGUpe2NvbnN0IG49dGhpcy5fcGFydGlhbHM7bGV0IHI9MDtmb3IobGV0IGk9MDtpPHRoaXMuX24mJmk8MzI7aSsrKXtjb25zdCBhPW5baV0sbz1lK2Escz1NYXRoLmFicyhlKTxNYXRoLmFicyhhKT9lLShvLWEpOmEtKG8tZSk7cyYmKG5bcisrXT1zKSxlPW99cmV0dXJuIG5bcl09ZSx0aGlzLl9uPXIrMSx0aGlzfXZhbHVlT2YoKXtjb25zdCBlPXRoaXMuX3BhcnRpYWxzO2xldCBuPXRoaXMuX24scixpLGEsbz0wO2lmKG4+MCl7Zm9yKG89ZVstLW5dO24+MCYmKHI9byxpPWVbLS1uXSxvPXIraSxhPWktKG8tciksIWEpOyk7bj4wJiYoYTwwJiZlW24tMV08MHx8YT4wJiZlW24tMV0+MCkmJihpPWEqMixyPW8raSxpPT1yLW8mJihvPXIpKX1yZXR1cm4gb319ZnVuY3Rpb24gWm90KHQsZSl7Y29uc3Qgbj1uZXcgcGM7aWYoZT09PXZvaWQgMClmb3IobGV0IHIgb2YgdCkocj0rcikmJm4uYWRkKHIpO2Vsc2V7bGV0IHI9LTE7Zm9yKGxldCBpIG9mIHQpKGk9K2UoaSwrK3IsdCkpJiZuLmFkZChpKX1yZXR1cm4rbn1mdW5jdGlvbiBZb3QodCxlKXtjb25zdCBuPW5ldyBwYztsZXQgcj0tMTtyZXR1cm4gRmxvYXQ2NEFycmF5LmZyb20odCxlPT09dm9pZCAwP2k9Pm4uYWRkKCtpfHwwKTppPT5uLmFkZCgrZShpLCsrcix0KXx8MCkpfXZhciBSZT0xZS02LHJEPTFlLTEyLGNuPU1hdGguUEksanI9Y24vMixpRD1jbi80LEhhPWNuKjIsaWE9MTgwL2NuLEFyPWNuLzE4MCxUbj1NYXRoLmFicyxrZD1NYXRoLmF0YW4sdmM9TWF0aC5hdGFuMixhbj1NYXRoLmNvcyxEMT1NYXRoLmNlaWwsYUQ9TWF0aC5leHAsSG90PU1hdGguZmxvb3IsVm90PU1hdGguaHlwb3QsajE9TWF0aC5sb2csWVM9TWF0aC5wb3csWmU9TWF0aC5zaW4sa289TWF0aC5zaWdufHxmdW5jdGlvbih0KXtyZXR1cm4gdD4wPzE6dDwwPy0xOjB9LFJhPU1hdGguc3FydCxIUz1NYXRoLnRhbjtmdW5jdGlvbiBvRCh0KXtyZXR1cm4gdD4xPzA6dDwtMT9jbjpNYXRoLmFjb3ModCl9ZnVuY3Rpb24gQW8odCl7cmV0dXJuIHQ+MT9qcjp0PC0xPy1qcjpNYXRoLmFzaW4odCl9ZnVuY3Rpb24gWG90KHQpe3JldHVybih0PVplKHQvMikpKnR9ZnVuY3Rpb24gVG8oKXt9dmFyIFZTPW5ldyBwYyxYUz1uZXcgcGMsc0QsY0QsVVMscVMseGw9e3BvaW50OlRvLGxpbmVTdGFydDpUbyxsaW5lRW5kOlRvLHBvbHlnb25TdGFydDpmdW5jdGlvbigpe3hsLmxpbmVTdGFydD1uSix4bC5saW5lRW5kPWlKfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7eGwubGluZVN0YXJ0PXhsLmxpbmVFbmQ9eGwucG9pbnQ9VG8sVlMuYWRkKFRuKFhTKSksWFM9bmV3IHBjfSxyZXN1bHQ6ZnVuY3Rpb24oKXt2YXIgdD1WUy8yO3JldHVybiBWUz1uZXcgcGMsdH19O2Z1bmN0aW9uIG5KKCl7eGwucG9pbnQ9ckp9ZnVuY3Rpb24gckoodCxlKXt4bC5wb2ludD1sRCxzRD1VUz10LGNEPXFTPWV9ZnVuY3Rpb24gbEQodCxlKXtYUy5hZGQocVMqdC1VUyplKSxVUz10LHFTPWV9ZnVuY3Rpb24gaUooKXtsRChzRCxjRCl9dmFyIHVEPXhsLEFkPTEvMCxGMT1BZCxUMD0tQWQsQjE9VDAsYUo9e3BvaW50Om9KLGxpbmVTdGFydDpUbyxsaW5lRW5kOlRvLHBvbHlnb25TdGFydDpUbyxwb2x5Z29uRW5kOlRvLHJlc3VsdDpmdW5jdGlvbigpe3ZhciB0PVtbQWQsRjFdLFtUMCxCMV1dO3JldHVybiBUMD1CMT0tKEYxPUFkPTEvMCksdH19O2Z1bmN0aW9uIG9KKHQsZSl7dDxBZCYmKEFkPXQpLHQ+VDAmJihUMD10KSxlPEYxJiYoRjE9ZSksZT5CMSYmKEIxPWUpfXZhciB6MT1hSixLUz0wLFFTPTAsUDA9MCxXMT0wLEcxPTAsVGQ9MCxKUz0wLHRFPTAsQzA9MCxmRCxkRCxTcyxFcyxZbz17cG9pbnQ6anUsbGluZVN0YXJ0OmhELGxpbmVFbmQ6cEQscG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7WW8ubGluZVN0YXJ0PWxKLFlvLmxpbmVFbmQ9dUp9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXtZby5wb2ludD1qdSxZby5saW5lU3RhcnQ9aEQsWW8ubGluZUVuZD1wRH0scmVzdWx0OmZ1bmN0aW9uKCl7dmFyIHQ9QzA/W0pTL0MwLHRFL0MwXTpUZD9bVzEvVGQsRzEvVGRdOlAwP1tLUy9QMCxRUy9QMF06W05hTixOYU5dO3JldHVybiBLUz1RUz1QMD1XMT1HMT1UZD1KUz10RT1DMD0wLHR9fTtmdW5jdGlvbiBqdSh0LGUpe0tTKz10LFFTKz1lLCsrUDB9ZnVuY3Rpb24gaEQoKXtZby5wb2ludD1zSn1mdW5jdGlvbiBzSih0LGUpe1lvLnBvaW50PWNKLGp1KFNzPXQsRXM9ZSl9ZnVuY3Rpb24gY0oodCxlKXt2YXIgbj10LVNzLHI9ZS1FcyxpPVJhKG4qbityKnIpO1cxKz1pKihTcyt0KS8yLEcxKz1pKihFcytlKS8yLFRkKz1pLGp1KFNzPXQsRXM9ZSl9ZnVuY3Rpb24gcEQoKXtZby5wb2ludD1qdX1mdW5jdGlvbiBsSigpe1lvLnBvaW50PWZKfWZ1bmN0aW9uIHVKKCl7dkQoZkQsZEQpfWZ1bmN0aW9uIGZKKHQsZSl7WW8ucG9pbnQ9dkQsanUoZkQ9U3M9dCxkRD1Fcz1lKX1mdW5jdGlvbiB2RCh0LGUpe3ZhciBuPXQtU3Mscj1lLUVzLGk9UmEobipuK3Iqcik7VzErPWkqKFNzK3QpLzIsRzErPWkqKEVzK2UpLzIsVGQrPWksaT1Fcyp0LVNzKmUsSlMrPWkqKFNzK3QpLHRFKz1pKihFcytlKSxDMCs9aSozLGp1KFNzPXQsRXM9ZSl9dmFyIGdEPVlvO2Z1bmN0aW9uIHlEKHQpe3RoaXMuX2NvbnRleHQ9dH15RC5wcm90b3R5cGU9e19yYWRpdXM6NC41LHBvaW50UmFkaXVzOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9yYWRpdXM9dCx0aGlzfSxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9PT0wJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX3BvaW50PU5hTn0scG9pbnQ6ZnVuY3Rpb24odCxlKXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMDp7dGhpcy5fY29udGV4dC5tb3ZlVG8odCxlKSx0aGlzLl9wb2ludD0xO2JyZWFrfWNhc2UgMTp7dGhpcy5fY29udGV4dC5saW5lVG8odCxlKTticmVha31kZWZhdWx0Ont0aGlzLl9jb250ZXh0Lm1vdmVUbyh0K3RoaXMuX3JhZGl1cyxlKSx0aGlzLl9jb250ZXh0LmFyYyh0LGUsdGhpcy5fcmFkaXVzLDAsSGEpO2JyZWFrfX19LHJlc3VsdDpUb307dmFyIGVFPW5ldyBwYyxuRSxtRCxiRCxMMCxSMCwkMT17cG9pbnQ6VG8sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7JDEucG9pbnQ9ZEp9LGxpbmVFbmQ6ZnVuY3Rpb24oKXtuRSYmeEQobUQsYkQpLCQxLnBvaW50PVRvfSxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtuRT0hMH0scG9seWdvbkVuZDpmdW5jdGlvbigpe25FPW51bGx9LHJlc3VsdDpmdW5jdGlvbigpe3ZhciB0PStlRTtyZXR1cm4gZUU9bmV3IHBjLHR9fTtmdW5jdGlvbiBkSih0LGUpeyQxLnBvaW50PXhELG1EPUwwPXQsYkQ9UjA9ZX1mdW5jdGlvbiB4RCh0LGUpe0wwLT10LFIwLT1lLGVFLmFkZChSYShMMCpMMCtSMCpSMCkpLEwwPXQsUjA9ZX12YXIgX0Q9JDE7bGV0IHdELFoxLE9ELFNEO2NsYXNzIEVEe2NvbnN0cnVjdG9yKGUpe3RoaXMuX2FwcGVuZD1lPT1udWxsP01EOmhKKGUpLHRoaXMuX3JhZGl1cz00LjUsdGhpcy5fPSIifXBvaW50UmFkaXVzKGUpe3JldHVybiB0aGlzLl9yYWRpdXM9K2UsdGhpc31wb2x5Z29uU3RhcnQoKXt0aGlzLl9saW5lPTB9cG9seWdvbkVuZCgpe3RoaXMuX2xpbmU9TmFOfWxpbmVTdGFydCgpe3RoaXMuX3BvaW50PTB9bGluZUVuZCgpe3RoaXMuX2xpbmU9PT0wJiYodGhpcy5fKz0iWiIpLHRoaXMuX3BvaW50PU5hTn1wb2ludChlLG4pe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAwOnt0aGlzLl9hcHBlbmRgTSR7ZX0sJHtufWAsdGhpcy5fcG9pbnQ9MTticmVha31jYXNlIDE6e3RoaXMuX2FwcGVuZGBMJHtlfSwke259YDticmVha31kZWZhdWx0OntpZih0aGlzLl9hcHBlbmRgTSR7ZX0sJHtufWAsdGhpcy5fcmFkaXVzIT09T0R8fHRoaXMuX2FwcGVuZCE9PVoxKXtjb25zdCByPXRoaXMuX3JhZGl1cyxpPXRoaXMuXzt0aGlzLl89IiIsdGhpcy5fYXBwZW5kYG0wLCR7cn1hJHtyfSwke3J9IDAgMSwxIDAsJHstMipyfWEke3J9LCR7cn0gMCAxLDEgMCwkezIqcn16YCxPRD1yLFoxPXRoaXMuX2FwcGVuZCxTRD10aGlzLl8sdGhpcy5fPWl9dGhpcy5fKz1TRDticmVha319fXJlc3VsdCgpe2NvbnN0IGU9dGhpcy5fO3JldHVybiB0aGlzLl89IiIsZS5sZW5ndGg/ZTpudWxsfX1mdW5jdGlvbiBNRCh0KXtsZXQgZT0xO3RoaXMuXys9dFswXTtmb3IoY29uc3Qgbj10Lmxlbmd0aDtlPG47KytlKXRoaXMuXys9YXJndW1lbnRzW2VdK3RbZV19ZnVuY3Rpb24gaEoodCl7Y29uc3QgZT1NYXRoLmZsb29yKHQpO2lmKCEoZT49MCkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoYGludmFsaWQgZGlnaXRzOiAke3R9YCk7aWYoZT4xNSlyZXR1cm4gTUQ7aWYoZSE9PXdEKXtjb25zdCBuPXRpKDEwLGUpO3dEPWUsWjE9ZnVuY3Rpb24oaSl7bGV0IGE9MTt0aGlzLl8rPWlbMF07Zm9yKGNvbnN0IG89aS5sZW5ndGg7YTxvOysrYSl0aGlzLl8rPU1hdGgucm91bmQoYXJndW1lbnRzW2FdKm4pL24raVthXX19cmV0dXJuIFoxfWZ1bmN0aW9uIGtEKHQsZSl7bGV0IG49MyxyPTQuNSxpLGE7ZnVuY3Rpb24gbyhzKXtyZXR1cm4gcyYmKHR5cGVvZiByPT0iZnVuY3Rpb24iJiZhLnBvaW50UmFkaXVzKCtyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSksTWQocyxpKGEpKSksYS5yZXN1bHQoKX1yZXR1cm4gby5hcmVhPWZ1bmN0aW9uKHMpe3JldHVybiBNZChzLGkodUQpKSx1RC5yZXN1bHQoKX0sby5tZWFzdXJlPWZ1bmN0aW9uKHMpe3JldHVybiBNZChzLGkoX0QpKSxfRC5yZXN1bHQoKX0sby5ib3VuZHM9ZnVuY3Rpb24ocyl7cmV0dXJuIE1kKHMsaSh6MSkpLHoxLnJlc3VsdCgpfSxvLmNlbnRyb2lkPWZ1bmN0aW9uKHMpe3JldHVybiBNZChzLGkoZ0QpKSxnRC5yZXN1bHQoKX0sby5wcm9qZWN0aW9uPWZ1bmN0aW9uKHMpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPXM9PW51bGw/KHQ9bnVsbCxBMCk6KHQ9cykuc3RyZWFtLG8pOnR9LG8uY29udGV4dD1mdW5jdGlvbihzKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT1zPT1udWxsPyhlPW51bGwsbmV3IEVEKG4pKTpuZXcgeUQoZT1zKSx0eXBlb2YgciE9ImZ1bmN0aW9uIiYmYS5wb2ludFJhZGl1cyhyKSxvKTplfSxvLnBvaW50UmFkaXVzPWZ1bmN0aW9uKHMpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPXR5cGVvZiBzPT0iZnVuY3Rpb24iP3M6KGEucG9pbnRSYWRpdXMoK3MpLCtzKSxvKTpyfSxvLmRpZ2l0cz1mdW5jdGlvbihzKXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gbjtpZihzPT1udWxsKW49bnVsbDtlbHNle2NvbnN0IGM9TWF0aC5mbG9vcihzKTtpZighKGM+PTApKXRocm93IG5ldyBSYW5nZUVycm9yKGBpbnZhbGlkIGRpZ2l0czogJHtzfWApO249Y31yZXR1cm4gZT09PW51bGwmJihhPW5ldyBFRChuKSksb30sby5wcm9qZWN0aW9uKHQpLmRpZ2l0cyhuKS5jb250ZXh0KGUpfWZ1bmN0aW9uIFBkKHQsZSxuKXt0PSt0LGU9K2Usbj0oaT1hcmd1bWVudHMubGVuZ3RoKTwyPyhlPXQsdD0wLDEpOmk8Mz8xOituO2Zvcih2YXIgcj0tMSxpPU1hdGgubWF4KDAsTWF0aC5jZWlsKChlLXQpL24pKXwwLGE9bmV3IEFycmF5KGkpOysrcjxpOylhW3JdPXQrcipuO3JldHVybiBhfWZ1bmN0aW9uIEFEKHQsZSxuKXt2YXIgcj1QZCh0LGUtUmUsbikuY29uY2F0KGUpO3JldHVybiBmdW5jdGlvbihpKXtyZXR1cm4gci5tYXAoZnVuY3Rpb24oYSl7cmV0dXJuW2ksYV19KX19ZnVuY3Rpb24gVEQodCxlLG4pe3ZhciByPVBkKHQsZS1SZSxuKS5jb25jYXQoZSk7cmV0dXJuIGZ1bmN0aW9uKGkpe3JldHVybiByLm1hcChmdW5jdGlvbihhKXtyZXR1cm5bYSxpXX0pfX1mdW5jdGlvbiBwSigpe3ZhciB0LGUsbixyLGksYSxvLHMsYz0xMCxsPWMsdT05MCxmPTM2MCxkLGgsdixnLHk9Mi41O2Z1bmN0aW9uIGIoKXtyZXR1cm57dHlwZToiTXVsdGlMaW5lU3RyaW5nIixjb29yZGluYXRlczp4KCl9fWZ1bmN0aW9uIHgoKXtyZXR1cm4gUGQoRDEoci91KSp1LG4sdSkubWFwKHYpLmNvbmNhdChQZChEMShzL2YpKmYsbyxmKS5tYXAoZykpLmNvbmNhdChQZChEMShlL2MpKmMsdCxjKS5maWx0ZXIoZnVuY3Rpb24oXyl7cmV0dXJuIFRuKF8ldSk+UmV9KS5tYXAoZCkpLmNvbmNhdChQZChEMShhL2wpKmwsaSxsKS5maWx0ZXIoZnVuY3Rpb24oXyl7cmV0dXJuIFRuKF8lZik+UmV9KS5tYXAoaCkpfXJldHVybiBiLmxpbmVzPWZ1bmN0aW9uKCl7cmV0dXJuIHgoKS5tYXAoZnVuY3Rpb24oXyl7cmV0dXJue3R5cGU6IkxpbmVTdHJpbmciLGNvb3JkaW5hdGVzOl99fSl9LGIub3V0bGluZT1mdW5jdGlvbigpe3JldHVybnt0eXBlOiJQb2x5Z29uIixjb29yZGluYXRlczpbdihyKS5jb25jYXQoZyhvKS5zbGljZSgxKSx2KG4pLnJldmVyc2UoKS5zbGljZSgxKSxnKHMpLnJldmVyc2UoKS5zbGljZSgxKSldfX0sYi5leHRlbnQ9ZnVuY3Rpb24oXyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/Yi5leHRlbnRNYWpvcihfKS5leHRlbnRNaW5vcihfKTpiLmV4dGVudE1pbm9yKCl9LGIuZXh0ZW50TWFqb3I9ZnVuY3Rpb24oXyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9K19bMF1bMF0sbj0rX1sxXVswXSxzPStfWzBdWzFdLG89K19bMV1bMV0scj5uJiYoXz1yLHI9bixuPV8pLHM+byYmKF89cyxzPW8sbz1fKSxiLnByZWNpc2lvbih5KSk6W1tyLHNdLFtuLG9dXX0sYi5leHRlbnRNaW5vcj1mdW5jdGlvbihfKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT0rX1swXVswXSx0PStfWzFdWzBdLGE9K19bMF1bMV0saT0rX1sxXVsxXSxlPnQmJihfPWUsZT10LHQ9XyksYT5pJiYoXz1hLGE9aSxpPV8pLGIucHJlY2lzaW9uKHkpKTpbW2UsYV0sW3QsaV1dfSxiLnN0ZXA9ZnVuY3Rpb24oXyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/Yi5zdGVwTWFqb3IoXykuc3RlcE1pbm9yKF8pOmIuc3RlcE1pbm9yKCl9LGIuc3RlcE1ham9yPWZ1bmN0aW9uKF8pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PStfWzBdLGY9K19bMV0sYik6W3UsZl19LGIuc3RlcE1pbm9yPWZ1bmN0aW9uKF8pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjPStfWzBdLGw9K19bMV0sYik6W2MsbF19LGIucHJlY2lzaW9uPWZ1bmN0aW9uKF8pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh5PStfLGQ9QUQoYSxpLDkwKSxoPVREKGUsdCx5KSx2PUFEKHMsbyw5MCksZz1URChyLG4seSksYik6eX0sYi5leHRlbnRNYWpvcihbWy0xODAsLTkwK1JlXSxbMTgwLDkwLVJlXV0pLmV4dGVudE1pbm9yKFtbLTE4MCwtODAtUmVdLFsxODAsODArUmVdXSl9ZnVuY3Rpb24gdkooKXtyZXR1cm4gcEooKSgpfWZ1bmN0aW9uIFBEKCl7dmFyIHQ9W10sZTtyZXR1cm57cG9pbnQ6ZnVuY3Rpb24obixyLGkpe2UucHVzaChbbixyLGldKX0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dC5wdXNoKGU9W10pfSxsaW5lRW5kOlRvLHJlam9pbjpmdW5jdGlvbigpe3QubGVuZ3RoPjEmJnQucHVzaCh0LnBvcCgpLmNvbmNhdCh0LnNoaWZ0KCkpKX0scmVzdWx0OmZ1bmN0aW9uKCl7dmFyIG49dDtyZXR1cm4gdD1bXSxlPW51bGwsbn19fWZ1bmN0aW9uIFkxKHQsZSl7cmV0dXJuIFRuKHRbMF0tZVswXSk8UmUmJlRuKHRbMV0tZVsxXSk8UmV9ZnVuY3Rpb24gSDEodCxlLG4scil7dGhpcy54PXQsdGhpcy56PWUsdGhpcy5vPW4sdGhpcy5lPXIsdGhpcy52PSExLHRoaXMubj10aGlzLnA9bnVsbH1mdW5jdGlvbiBDRCh0LGUsbixyLGkpe3ZhciBhPVtdLG89W10scyxjO2lmKHQuZm9yRWFjaChmdW5jdGlvbih2KXtpZighKChnPXYubGVuZ3RoLTEpPD0wKSl7dmFyIGcseT12WzBdLGI9dltnXSx4O2lmKFkxKHksYikpe2lmKCF5WzJdJiYhYlsyXSl7Zm9yKGkubGluZVN0YXJ0KCkscz0wO3M8ZzsrK3MpaS5wb2ludCgoeT12W3NdKVswXSx5WzFdKTtpLmxpbmVFbmQoKTtyZXR1cm59YlswXSs9MipSZX1hLnB1c2goeD1uZXcgSDEoeSx2LG51bGwsITApKSxvLnB1c2goeC5vPW5ldyBIMSh5LG51bGwseCwhMSkpLGEucHVzaCh4PW5ldyBIMShiLHYsbnVsbCwhMSkpLG8ucHVzaCh4Lm89bmV3IEgxKGIsbnVsbCx4LCEwKSl9fSksISFhLmxlbmd0aCl7Zm9yKG8uc29ydChlKSxMRChhKSxMRChvKSxzPTAsYz1vLmxlbmd0aDtzPGM7KytzKW9bc10uZT1uPSFuO2Zvcih2YXIgbD1hWzBdLHUsZjs7KXtmb3IodmFyIGQ9bCxoPSEwO2QudjspaWYoKGQ9ZC5uKT09PWwpcmV0dXJuO3U9ZC56LGkubGluZVN0YXJ0KCk7ZG97aWYoZC52PWQuby52PSEwLGQuZSl7aWYoaClmb3Iocz0wLGM9dS5sZW5ndGg7czxjOysrcylpLnBvaW50KChmPXVbc10pWzBdLGZbMV0pO2Vsc2UgcihkLngsZC5uLngsMSxpKTtkPWQubn1lbHNle2lmKGgpZm9yKHU9ZC5wLnoscz11Lmxlbmd0aC0xO3M+PTA7LS1zKWkucG9pbnQoKGY9dVtzXSlbMF0sZlsxXSk7ZWxzZSByKGQueCxkLnAueCwtMSxpKTtkPWQucH1kPWQubyx1PWQueixoPSFofXdoaWxlKCFkLnYpO2kubGluZUVuZCgpfX19ZnVuY3Rpb24gTEQodCl7aWYoZT10Lmxlbmd0aCl7Zm9yKHZhciBlLG49MCxyPXRbMF0saTsrK248ZTspci5uPWk9dFtuXSxpLnA9cixyPWk7ci5uPWk9dFswXSxpLnA9cn19ZnVuY3Rpb24gckUodCl7cmV0dXJuW3ZjKHRbMV0sdFswXSksQW8odFsyXSldfWZ1bmN0aW9uIENkKHQpe3ZhciBlPXRbMF0sbj10WzFdLHI9YW4obik7cmV0dXJuW3IqYW4oZSkscipaZShlKSxaZShuKV19ZnVuY3Rpb24gVjEodCxlKXtyZXR1cm4gdFswXSplWzBdK3RbMV0qZVsxXSt0WzJdKmVbMl19ZnVuY3Rpb24gWDEodCxlKXtyZXR1cm5bdFsxXSplWzJdLXRbMl0qZVsxXSx0WzJdKmVbMF0tdFswXSplWzJdLHRbMF0qZVsxXS10WzFdKmVbMF1dfWZ1bmN0aW9uIGlFKHQsZSl7dFswXSs9ZVswXSx0WzFdKz1lWzFdLHRbMl0rPWVbMl19ZnVuY3Rpb24gVTEodCxlKXtyZXR1cm5bdFswXSplLHRbMV0qZSx0WzJdKmVdfWZ1bmN0aW9uIGFFKHQpe3ZhciBlPVJhKHRbMF0qdFswXSt0WzFdKnRbMV0rdFsyXSp0WzJdKTt0WzBdLz1lLHRbMV0vPWUsdFsyXS89ZX1mdW5jdGlvbiBvRSh0KXtyZXR1cm4gVG4odFswXSk8PWNuP3RbMF06a28odFswXSkqKChUbih0WzBdKStjbiklSGEtY24pfWZ1bmN0aW9uIGdKKHQsZSl7dmFyIG49b0UoZSkscj1lWzFdLGk9WmUociksYT1bWmUobiksLWFuKG4pLDBdLG89MCxzPTAsYz1uZXcgcGM7aT09PTE/cj1qcitSZTppPT09LTEmJihyPS1qci1SZSk7Zm9yKHZhciBsPTAsdT10Lmxlbmd0aDtsPHU7KytsKWlmKGQ9KGY9dFtsXSkubGVuZ3RoKWZvcih2YXIgZixkLGg9ZltkLTFdLHY9b0UoaCksZz1oWzFdLzIraUQseT1aZShnKSxiPWFuKGcpLHg9MDt4PGQ7Kyt4LHY9dyx5PUUsYj1NLGg9Xyl7dmFyIF89Zlt4XSx3PW9FKF8pLE89X1sxXS8yK2lELEU9WmUoTyksTT1hbihPKSxrPXctdixBPWs+PTA/MTotMSxQPUEqayxDPVA+Y24sTj15KkU7aWYoYy5hZGQodmMoTipBKlplKFApLGIqTStOKmFuKFApKSksbys9Qz9rK0EqSGE6ayxDXnY+PW5edz49bil7dmFyIEw9WDEoQ2QoaCksQ2QoXykpO2FFKEwpO3ZhciBSPVgxKGEsTCk7YUUoUik7dmFyIEk9KENeaz49MD8tMToxKSpBbyhSWzJdKTsocj5JfHxyPT09SSYmKExbMF18fExbMV0pKSYmKHMrPUNeaz49MD8xOi0xKX19cmV0dXJuKG88LVJlfHxvPFJlJiZjPC1yRClecyYxfWZ1bmN0aW9uKnlKKHQpe2Zvcihjb25zdCBlIG9mIHQpeWllbGQqcDgoZSl9ZnVuY3Rpb24gUkQodCl7cmV0dXJuIEFycmF5LmZyb20oeUoodCkpfWZ1bmN0aW9uIE5EKHQsZSxuLHIpe3JldHVybiBmdW5jdGlvbihpKXt2YXIgYT1lKGkpLG89UEQoKSxzPWUobyksYz0hMSxsLHUsZixkPXtwb2ludDpoLGxpbmVTdGFydDpnLGxpbmVFbmQ6eSxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtkLnBvaW50PWIsZC5saW5lU3RhcnQ9eCxkLmxpbmVFbmQ9Xyx1PVtdLGw9W119LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXtkLnBvaW50PWgsZC5saW5lU3RhcnQ9ZyxkLmxpbmVFbmQ9eSx1PVJEKHUpO3ZhciB3PWdKKGwscik7dS5sZW5ndGg/KGN8fChpLnBvbHlnb25TdGFydCgpLGM9ITApLENEKHUsYkosdyxuLGkpKTp3JiYoY3x8KGkucG9seWdvblN0YXJ0KCksYz0hMCksaS5saW5lU3RhcnQoKSxuKG51bGwsbnVsbCwxLGkpLGkubGluZUVuZCgpKSxjJiYoaS5wb2x5Z29uRW5kKCksYz0hMSksdT1sPW51bGx9LHNwaGVyZTpmdW5jdGlvbigpe2kucG9seWdvblN0YXJ0KCksaS5saW5lU3RhcnQoKSxuKG51bGwsbnVsbCwxLGkpLGkubGluZUVuZCgpLGkucG9seWdvbkVuZCgpfX07ZnVuY3Rpb24gaCh3LE8pe3QodyxPKSYmaS5wb2ludCh3LE8pfWZ1bmN0aW9uIHYodyxPKXthLnBvaW50KHcsTyl9ZnVuY3Rpb24gZygpe2QucG9pbnQ9dixhLmxpbmVTdGFydCgpfWZ1bmN0aW9uIHkoKXtkLnBvaW50PWgsYS5saW5lRW5kKCl9ZnVuY3Rpb24gYih3LE8pe2YucHVzaChbdyxPXSkscy5wb2ludCh3LE8pfWZ1bmN0aW9uIHgoKXtzLmxpbmVTdGFydCgpLGY9W119ZnVuY3Rpb24gXygpe2IoZlswXVswXSxmWzBdWzFdKSxzLmxpbmVFbmQoKTt2YXIgdz1zLmNsZWFuKCksTz1vLnJlc3VsdCgpLEUsTT1PLmxlbmd0aCxrLEEsUDtpZihmLnBvcCgpLGwucHVzaChmKSxmPW51bGwsISFNKXtpZih3JjEpe2lmKEE9T1swXSwoaz1BLmxlbmd0aC0xKT4wKXtmb3IoY3x8KGkucG9seWdvblN0YXJ0KCksYz0hMCksaS5saW5lU3RhcnQoKSxFPTA7RTxrOysrRSlpLnBvaW50KChQPUFbRV0pWzBdLFBbMV0pO2kubGluZUVuZCgpfXJldHVybn1NPjEmJncmMiYmTy5wdXNoKE8ucG9wKCkuY29uY2F0KE8uc2hpZnQoKSkpLHUucHVzaChPLmZpbHRlcihtSikpfX1yZXR1cm4gZH19ZnVuY3Rpb24gbUoodCl7cmV0dXJuIHQubGVuZ3RoPjF9ZnVuY3Rpb24gYkoodCxlKXtyZXR1cm4oKHQ9dC54KVswXTwwP3RbMV0tanItUmU6anItdFsxXSktKChlPWUueClbMF08MD9lWzFdLWpyLVJlOmpyLWVbMV0pfXZhciBJRD1ORChmdW5jdGlvbigpe3JldHVybiEwfSx4Six3SixbLWNuLC1qcl0pO2Z1bmN0aW9uIHhKKHQpe3ZhciBlPU5hTixuPU5hTixyPU5hTixpO3JldHVybntsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0LmxpbmVTdGFydCgpLGk9MX0scG9pbnQ6ZnVuY3Rpb24oYSxvKXt2YXIgcz1hPjA/Y246LWNuLGM9VG4oYS1lKTtUbihjLWNuKTxSZT8odC5wb2ludChlLG49KG4rbykvMj4wP2pyOi1qciksdC5wb2ludChyLG4pLHQubGluZUVuZCgpLHQubGluZVN0YXJ0KCksdC5wb2ludChzLG4pLHQucG9pbnQoYSxuKSxpPTApOnIhPT1zJiZjPj1jbiYmKFRuKGUtcik8UmUmJihlLT1yKlJlKSxUbihhLXMpPFJlJiYoYS09cypSZSksbj1fSihlLG4sYSxvKSx0LnBvaW50KHIsbiksdC5saW5lRW5kKCksdC5saW5lU3RhcnQoKSx0LnBvaW50KHMsbiksaT0wKSx0LnBvaW50KGU9YSxuPW8pLHI9c30sbGluZUVuZDpmdW5jdGlvbigpe3QubGluZUVuZCgpLGU9bj1OYU59LGNsZWFuOmZ1bmN0aW9uKCl7cmV0dXJuIDItaX19fWZ1bmN0aW9uIF9KKHQsZSxuLHIpe3ZhciBpLGEsbz1aZSh0LW4pO3JldHVybiBUbihvKT5SZT9rZCgoWmUoZSkqKGE9YW4ocikpKlplKG4pLVplKHIpKihpPWFuKGUpKSpaZSh0KSkvKGkqYSpvKSk6KGUrcikvMn1mdW5jdGlvbiB3Sih0LGUsbixyKXt2YXIgaTtpZih0PT1udWxsKWk9bipqcixyLnBvaW50KC1jbixpKSxyLnBvaW50KDAsaSksci5wb2ludChjbixpKSxyLnBvaW50KGNuLDApLHIucG9pbnQoY24sLWkpLHIucG9pbnQoMCwtaSksci5wb2ludCgtY24sLWkpLHIucG9pbnQoLWNuLDApLHIucG9pbnQoLWNuLGkpO2Vsc2UgaWYoVG4odFswXS1lWzBdKT5SZSl7dmFyIGE9dFswXTxlWzBdP2NuOi1jbjtpPW4qYS8yLHIucG9pbnQoLWEsaSksci5wb2ludCgwLGkpLHIucG9pbnQoYSxpKX1lbHNlIHIucG9pbnQoZVswXSxlWzFdKX1mdW5jdGlvbiBERCh0LGUsbixyLGksYSl7aWYobil7dmFyIG89YW4oZSkscz1aZShlKSxjPXIqbjtpPT1udWxsPyhpPWUrcipIYSxhPWUtYy8yKTooaT1qRChvLGkpLGE9akQobyxhKSwocj4wP2k8YTppPmEpJiYoaSs9cipIYSkpO2Zvcih2YXIgbCx1PWk7cj4wP3U+YTp1PGE7dS09YylsPXJFKFtvLC1zKmFuKHUpLC1zKlplKHUpXSksdC5wb2ludChsWzBdLGxbMV0pfX1mdW5jdGlvbiBqRCh0LGUpe2U9Q2QoZSksZVswXS09dCxhRShlKTt2YXIgbj1vRCgtZVsxXSk7cmV0dXJuKCgtZVsyXTwwPy1uOm4pK0hhLVJlKSVIYX1mdW5jdGlvbiBVb3QoKXt2YXIgdD1jb25zdGFudChbMCwwXSksZT1jb25zdGFudCg5MCksbj1jb25zdGFudCgyKSxyLGksYT17cG9pbnQ6b307ZnVuY3Rpb24gbyhjLGwpe3IucHVzaChjPWkoYyxsKSksY1swXSo9ZGVncmVlcyxjWzFdKj1kZWdyZWVzfWZ1bmN0aW9uIHMoKXt2YXIgYz10LmFwcGx5KHRoaXMsYXJndW1lbnRzKSxsPWUuYXBwbHkodGhpcyxhcmd1bWVudHMpKnJhZGlhbnMsdT1uLmFwcGx5KHRoaXMsYXJndW1lbnRzKSpyYWRpYW5zO3JldHVybiByPVtdLGk9cm90YXRlUmFkaWFucygtY1swXSpyYWRpYW5zLC1jWzFdKnJhZGlhbnMsMCkuaW52ZXJ0LEREKGEsbCx1LDEpLGM9e3R5cGU6IlBvbHlnb24iLGNvb3JkaW5hdGVzOltyXX0scj1pPW51bGwsY31yZXR1cm4gcy5jZW50ZXI9ZnVuY3Rpb24oYyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9dHlwZW9mIGM9PSJmdW5jdGlvbiI/Yzpjb25zdGFudChbK2NbMF0sK2NbMV1dKSxzKTp0fSxzLnJhZGl1cz1mdW5jdGlvbihjKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT10eXBlb2YgYz09ImZ1bmN0aW9uIj9jOmNvbnN0YW50KCtjKSxzKTplfSxzLnByZWNpc2lvbj1mdW5jdGlvbihjKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj10eXBlb2YgYz09ImZ1bmN0aW9uIj9jOmNvbnN0YW50KCtjKSxzKTpufSxzfWZ1bmN0aW9uIE9KKHQpe3ZhciBlPWFuKHQpLG49MipBcixyPWU+MCxpPVRuKGUpPlJlO2Z1bmN0aW9uIGEodSxmLGQsaCl7REQoaCx0LG4sZCx1LGYpfWZ1bmN0aW9uIG8odSxmKXtyZXR1cm4gYW4odSkqYW4oZik+ZX1mdW5jdGlvbiBzKHUpe3ZhciBmLGQsaCx2LGc7cmV0dXJue2xpbmVTdGFydDpmdW5jdGlvbigpe3Y9aD0hMSxnPTF9LHBvaW50OmZ1bmN0aW9uKHksYil7dmFyIHg9W3ksYl0sXyx3PW8oeSxiKSxPPXI/dz8wOmwoeSxiKTp3P2woeSsoeTwwP2NuOi1jbiksYik6MDtpZighZiYmKHY9aD13KSYmdS5saW5lU3RhcnQoKSx3IT09aCYmKF89YyhmLHgpLCghX3x8WTEoZixfKXx8WTEoeCxfKSkmJih4WzJdPTEpKSx3IT09aClnPTAsdz8odS5saW5lU3RhcnQoKSxfPWMoeCxmKSx1LnBvaW50KF9bMF0sX1sxXSkpOihfPWMoZix4KSx1LnBvaW50KF9bMF0sX1sxXSwyKSx1LmxpbmVFbmQoKSksZj1fO2Vsc2UgaWYoaSYmZiYmcl53KXt2YXIgRTshKE8mZCkmJihFPWMoeCxmLCEwKSkmJihnPTAscj8odS5saW5lU3RhcnQoKSx1LnBvaW50KEVbMF1bMF0sRVswXVsxXSksdS5wb2ludChFWzFdWzBdLEVbMV1bMV0pLHUubGluZUVuZCgpKToodS5wb2ludChFWzFdWzBdLEVbMV1bMV0pLHUubGluZUVuZCgpLHUubGluZVN0YXJ0KCksdS5wb2ludChFWzBdWzBdLEVbMF1bMV0sMykpKX13JiYoIWZ8fCFZMShmLHgpKSYmdS5wb2ludCh4WzBdLHhbMV0pLGY9eCxoPXcsZD1PfSxsaW5lRW5kOmZ1bmN0aW9uKCl7aCYmdS5saW5lRW5kKCksZj1udWxsfSxjbGVhbjpmdW5jdGlvbigpe3JldHVybiBnfCh2JiZoKTw8MX19fWZ1bmN0aW9uIGModSxmLGQpe3ZhciBoPUNkKHUpLHY9Q2QoZiksZz1bMSwwLDBdLHk9WDEoaCx2KSxiPVYxKHkseSkseD15WzBdLF89Yi14Kng7aWYoIV8pcmV0dXJuIWQmJnU7dmFyIHc9ZSpiL18sTz0tZSp4L18sRT1YMShnLHkpLE09VTEoZyx3KSxrPVUxKHksTyk7aUUoTSxrKTt2YXIgQT1FLFA9VjEoTSxBKSxDPVYxKEEsQSksTj1QKlAtQyooVjEoTSxNKS0xKTtpZighKE48MCkpe3ZhciBMPVJhKE4pLFI9VTEoQSwoLVAtTCkvQyk7aWYoaUUoUixNKSxSPXJFKFIpLCFkKXJldHVybiBSO3ZhciBJPXVbMF0sRD1mWzBdLEc9dVsxXSxGPWZbMV0sVztEPEkmJihXPUksST1ELEQ9Vyk7dmFyIFg9RC1JLFE9VG4oWC1jbik8UmUsdHQ9UXx8WDxSZTtpZighUSYmRjxHJiYoVz1HLEc9RixGPVcpLHR0P1E/RytGPjBeUlsxXTwoVG4oUlswXS1JKTxSZT9HOkYpOkc8PVJbMV0mJlJbMV08PUY6WD5jbl4oSTw9UlswXSYmUlswXTw9RCkpe3ZhciBudD1VMShBLCgtUCtMKS9DKTtyZXR1cm4gaUUobnQsTSksW1IsckUobnQpXX19fWZ1bmN0aW9uIGwodSxmKXt2YXIgZD1yP3Q6Y24tdCxoPTA7cmV0dXJuIHU8LWQ/aHw9MTp1PmQmJihofD0yKSxmPC1kP2h8PTQ6Zj5kJiYoaHw9OCksaH1yZXR1cm4gTkQobyxzLGEscj9bMCwtdF06Wy1jbix0LWNuXSl9ZnVuY3Rpb24gU0oodCxlLG4scixpLGEpe3ZhciBvPXRbMF0scz10WzFdLGM9ZVswXSxsPWVbMV0sdT0wLGY9MSxkPWMtbyxoPWwtcyx2O2lmKHY9bi1vLCEoIWQmJnY+MCkpe2lmKHYvPWQsZDwwKXtpZih2PHUpcmV0dXJuO3Y8ZiYmKGY9dil9ZWxzZSBpZihkPjApe2lmKHY+ZilyZXR1cm47dj51JiYodT12KX1pZih2PWktbywhKCFkJiZ2PDApKXtpZih2Lz1kLGQ8MCl7aWYodj5mKXJldHVybjt2PnUmJih1PXYpfWVsc2UgaWYoZD4wKXtpZih2PHUpcmV0dXJuO3Y8ZiYmKGY9dil9aWYodj1yLXMsISghaCYmdj4wKSl7aWYodi89aCxoPDApe2lmKHY8dSlyZXR1cm47djxmJiYoZj12KX1lbHNlIGlmKGg+MCl7aWYodj5mKXJldHVybjt2PnUmJih1PXYpfWlmKHY9YS1zLCEoIWgmJnY8MCkpe2lmKHYvPWgsaDwwKXtpZih2PmYpcmV0dXJuO3Y+dSYmKHU9dil9ZWxzZSBpZihoPjApe2lmKHY8dSlyZXR1cm47djxmJiYoZj12KX1yZXR1cm4gdT4wJiYodFswXT1vK3UqZCx0WzFdPXMrdSpoKSxmPDEmJihlWzBdPW8rZipkLGVbMV09cytmKmgpLCEwfX19fX12YXIgTjA9MWU5LHExPS1OMDtmdW5jdGlvbiBGRCh0LGUsbixyKXtmdW5jdGlvbiBpKGwsdSl7cmV0dXJuIHQ8PWwmJmw8PW4mJmU8PXUmJnU8PXJ9ZnVuY3Rpb24gYShsLHUsZixkKXt2YXIgaD0wLHY9MDtpZihsPT1udWxsfHwoaD1vKGwsZikpIT09KHY9byh1LGYpKXx8YyhsLHUpPDBeZj4wKWRvIGQucG9pbnQoaD09PTB8fGg9PT0zP3Q6bixoPjE/cjplKTt3aGlsZSgoaD0oaCtmKzQpJTQpIT09dik7ZWxzZSBkLnBvaW50KHVbMF0sdVsxXSl9ZnVuY3Rpb24gbyhsLHUpe3JldHVybiBUbihsWzBdLXQpPFJlP3U+MD8wOjM6VG4obFswXS1uKTxSZT91PjA/MjoxOlRuKGxbMV0tZSk8UmU/dT4wPzE6MDp1PjA/MzoyfWZ1bmN0aW9uIHMobCx1KXtyZXR1cm4gYyhsLngsdS54KX1mdW5jdGlvbiBjKGwsdSl7dmFyIGY9byhsLDEpLGQ9byh1LDEpO3JldHVybiBmIT09ZD9mLWQ6Zj09PTA/dVsxXS1sWzFdOmY9PT0xP2xbMF0tdVswXTpmPT09Mj9sWzFdLXVbMV06dVswXS1sWzBdfXJldHVybiBmdW5jdGlvbihsKXt2YXIgdT1sLGY9UEQoKSxkLGgsdixnLHksYix4LF8sdyxPLEUsTT17cG9pbnQ6ayxsaW5lU3RhcnQ6TixsaW5lRW5kOkwscG9seWdvblN0YXJ0OlAscG9seWdvbkVuZDpDfTtmdW5jdGlvbiBrKEksRCl7aShJLEQpJiZ1LnBvaW50KEksRCl9ZnVuY3Rpb24gQSgpe2Zvcih2YXIgST0wLEQ9MCxHPWgubGVuZ3RoO0Q8RzsrK0QpZm9yKHZhciBGPWhbRF0sVz0xLFg9Ri5sZW5ndGgsUT1GWzBdLHR0LG50LGh0PVFbMF0sbHQ9UVsxXTtXPFg7KytXKXR0PWh0LG50PWx0LFE9RltXXSxodD1RWzBdLGx0PVFbMV0sbnQ8PXI/bHQ+ciYmKGh0LXR0KSooci1udCk+KGx0LW50KSoodC10dCkmJisrSTpsdDw9ciYmKGh0LXR0KSooci1udCk8KGx0LW50KSoodC10dCkmJi0tSTtyZXR1cm4gSX1mdW5jdGlvbiBQKCl7dT1mLGQ9W10saD1bXSxFPSEwfWZ1bmN0aW9uIEMoKXt2YXIgST1BKCksRD1FJiZJLEc9KGQ9UkQoZCkpLmxlbmd0aDsoRHx8RykmJihsLnBvbHlnb25TdGFydCgpLEQmJihsLmxpbmVTdGFydCgpLGEobnVsbCxudWxsLDEsbCksbC5saW5lRW5kKCkpLEcmJkNEKGQscyxJLGEsbCksbC5wb2x5Z29uRW5kKCkpLHU9bCxkPWg9dj1udWxsfWZ1bmN0aW9uIE4oKXtNLnBvaW50PVIsaCYmaC5wdXNoKHY9W10pLE89ITAsdz0hMSx4PV89TmFOfWZ1bmN0aW9uIEwoKXtkJiYoUihnLHkpLGImJncmJmYucmVqb2luKCksZC5wdXNoKGYucmVzdWx0KCkpKSxNLnBvaW50PWssdyYmdS5saW5lRW5kKCl9ZnVuY3Rpb24gUihJLEQpe3ZhciBHPWkoSSxEKTtpZihoJiZ2LnB1c2goW0ksRF0pLE8pZz1JLHk9RCxiPUcsTz0hMSxHJiYodS5saW5lU3RhcnQoKSx1LnBvaW50KEksRCkpO2Vsc2UgaWYoRyYmdyl1LnBvaW50KEksRCk7ZWxzZXt2YXIgRj1beD1NYXRoLm1heChxMSxNYXRoLm1pbihOMCx4KSksXz1NYXRoLm1heChxMSxNYXRoLm1pbihOMCxfKSldLFc9W0k9TWF0aC5tYXgocTEsTWF0aC5taW4oTjAsSSkpLEQ9TWF0aC5tYXgocTEsTWF0aC5taW4oTjAsRCkpXTtTSihGLFcsdCxlLG4scik/KHd8fCh1LmxpbmVTdGFydCgpLHUucG9pbnQoRlswXSxGWzFdKSksdS5wb2ludChXWzBdLFdbMV0pLEd8fHUubGluZUVuZCgpLEU9ITEpOkcmJih1LmxpbmVTdGFydCgpLHUucG9pbnQoSSxEKSxFPSExKX14PUksXz1ELHc9R31yZXR1cm4gTX19ZnVuY3Rpb24gc0UodCxlKXtmdW5jdGlvbiBuKHIsaSl7cmV0dXJuIHI9dChyLGkpLGUoclswXSxyWzFdKX1yZXR1cm4gdC5pbnZlcnQmJmUuaW52ZXJ0JiYobi5pbnZlcnQ9ZnVuY3Rpb24ocixpKXtyZXR1cm4gcj1lLmludmVydChyLGkpLHImJnQuaW52ZXJ0KHJbMF0sclsxXSl9KSxufWZ1bmN0aW9uIGNFKHQsZSl7cmV0dXJuIFRuKHQpPmNuJiYodC09TWF0aC5yb3VuZCh0L0hhKSpIYSksW3QsZV19Y0UuaW52ZXJ0PWNFO2Z1bmN0aW9uIEJEKHQsZSxuKXtyZXR1cm4odCU9SGEpP2V8fG4/c0UoV0QodCksR0QoZSxuKSk6V0QodCk6ZXx8bj9HRChlLG4pOmNFfWZ1bmN0aW9uIHpEKHQpe3JldHVybiBmdW5jdGlvbihlLG4pe3JldHVybiBlKz10LFRuKGUpPmNuJiYoZS09TWF0aC5yb3VuZChlL0hhKSpIYSksW2Usbl19fWZ1bmN0aW9uIFdEKHQpe3ZhciBlPXpEKHQpO3JldHVybiBlLmludmVydD16RCgtdCksZX1mdW5jdGlvbiBHRCh0LGUpe3ZhciBuPWFuKHQpLHI9WmUodCksaT1hbihlKSxhPVplKGUpO2Z1bmN0aW9uIG8ocyxjKXt2YXIgbD1hbihjKSx1PWFuKHMpKmwsZj1aZShzKSpsLGQ9WmUoYyksaD1kKm4rdSpyO3JldHVyblt2YyhmKmktaCphLHUqbi1kKnIpLEFvKGgqaStmKmEpXX1yZXR1cm4gby5pbnZlcnQ9ZnVuY3Rpb24ocyxjKXt2YXIgbD1hbihjKSx1PWFuKHMpKmwsZj1aZShzKSpsLGQ9WmUoYyksaD1kKmktZiphO3JldHVyblt2YyhmKmkrZCphLHUqbitoKnIpLEFvKGgqbi11KnIpXX0sb31mdW5jdGlvbiBFSih0KXt0PUJEKHRbMF0qQXIsdFsxXSpBcix0Lmxlbmd0aD4yP3RbMl0qQXI6MCk7ZnVuY3Rpb24gZShuKXtyZXR1cm4gbj10KG5bMF0qQXIsblsxXSpBciksblswXSo9aWEsblsxXSo9aWEsbn1yZXR1cm4gZS5pbnZlcnQ9ZnVuY3Rpb24obil7cmV0dXJuIG49dC5pbnZlcnQoblswXSpBcixuWzFdKkFyKSxuWzBdKj1pYSxuWzFdKj1pYSxufSxlfWZ1bmN0aW9uIHFvdCh0KXtyZXR1cm57c3RyZWFtOkkwKHQpfX1mdW5jdGlvbiBJMCh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIG49bmV3IGxFO2Zvcih2YXIgciBpbiB0KW5bcl09dFtyXTtyZXR1cm4gbi5zdHJlYW09ZSxufX1mdW5jdGlvbiBsRSgpe31sRS5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmxFLHBvaW50OmZ1bmN0aW9uKHQsZSl7dGhpcy5zdHJlYW0ucG9pbnQodCxlKX0sc3BoZXJlOmZ1bmN0aW9uKCl7dGhpcy5zdHJlYW0uc3BoZXJlKCl9LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuc3RyZWFtLmxpbmVTdGFydCgpfSxsaW5lRW5kOmZ1bmN0aW9uKCl7dGhpcy5zdHJlYW0ubGluZUVuZCgpfSxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLnN0cmVhbS5wb2x5Z29uU3RhcnQoKX0scG9seWdvbkVuZDpmdW5jdGlvbigpe3RoaXMuc3RyZWFtLnBvbHlnb25FbmQoKX19O2Z1bmN0aW9uIHVFKHQsZSxuKXt2YXIgcj10LmNsaXBFeHRlbnQmJnQuY2xpcEV4dGVudCgpO3JldHVybiB0LnNjYWxlKDE1MCkudHJhbnNsYXRlKFswLDBdKSxyIT1udWxsJiZ0LmNsaXBFeHRlbnQobnVsbCksTWQobix0LnN0cmVhbSh6MSkpLGUoejEucmVzdWx0KCkpLHIhPW51bGwmJnQuY2xpcEV4dGVudChyKSx0fWZ1bmN0aW9uIEsxKHQsZSxuKXtyZXR1cm4gdUUodCxmdW5jdGlvbihyKXt2YXIgaT1lWzFdWzBdLWVbMF1bMF0sYT1lWzFdWzFdLWVbMF1bMV0sbz1NYXRoLm1pbihpLyhyWzFdWzBdLXJbMF1bMF0pLGEvKHJbMV1bMV0tclswXVsxXSkpLHM9K2VbMF1bMF0rKGktbyooclsxXVswXStyWzBdWzBdKSkvMixjPStlWzBdWzFdKyhhLW8qKHJbMV1bMV0rclswXVsxXSkpLzI7dC5zY2FsZSgxNTAqbykudHJhbnNsYXRlKFtzLGNdKX0sbil9ZnVuY3Rpb24gZkUodCxlLG4pe3JldHVybiBLMSh0LFtbMCwwXSxlXSxuKX1mdW5jdGlvbiBkRSh0LGUsbil7cmV0dXJuIHVFKHQsZnVuY3Rpb24ocil7dmFyIGk9K2UsYT1pLyhyWzFdWzBdLXJbMF1bMF0pLG89KGktYSooclsxXVswXStyWzBdWzBdKSkvMixzPS1hKnJbMF1bMV07dC5zY2FsZSgxNTAqYSkudHJhbnNsYXRlKFtvLHNdKX0sbil9ZnVuY3Rpb24gaEUodCxlLG4pe3JldHVybiB1RSh0LGZ1bmN0aW9uKHIpe3ZhciBpPStlLGE9aS8oclsxXVsxXS1yWzBdWzFdKSxvPS1hKnJbMF1bMF0scz0oaS1hKihyWzFdWzFdK3JbMF1bMV0pKS8yO3Quc2NhbGUoMTUwKmEpLnRyYW5zbGF0ZShbbyxzXSl9LG4pfXZhciAkRD0xNixNSj1hbigzMCpBcik7ZnVuY3Rpb24gWkQodCxlKXtyZXR1cm4rZT9BSih0LGUpOmtKKHQpfWZ1bmN0aW9uIGtKKHQpe3JldHVybiBJMCh7cG9pbnQ6ZnVuY3Rpb24oZSxuKXtlPXQoZSxuKSx0aGlzLnN0cmVhbS5wb2ludChlWzBdLGVbMV0pfX0pfWZ1bmN0aW9uIEFKKHQsZSl7ZnVuY3Rpb24gbihyLGksYSxvLHMsYyxsLHUsZixkLGgsdixnLHkpe3ZhciBiPWwtcix4PXUtaSxfPWIqYit4Kng7aWYoXz40KmUmJmctLSl7dmFyIHc9bytkLE89cytoLEU9Yyt2LE09UmEodyp3K08qTytFKkUpLGs9QW8oRS89TSksQT1UbihUbihFKS0xKTxSZXx8VG4oYS1mKTxSZT8oYStmKS8yOnZjKE8sdyksUD10KEEsayksQz1QWzBdLE49UFsxXSxMPUMtcixSPU4taSxJPXgqTC1iKlI7KEkqSS9fPmV8fFRuKChiKkwreCpSKS9fLS41KT4uM3x8bypkK3MqaCtjKnY8TUopJiYobihyLGksYSxvLHMsYyxDLE4sQSx3Lz1NLE8vPU0sRSxnLHkpLHkucG9pbnQoQyxOKSxuKEMsTixBLHcsTyxFLGwsdSxmLGQsaCx2LGcseSkpfX1yZXR1cm4gZnVuY3Rpb24ocil7dmFyIGksYSxvLHMsYyxsLHUsZixkLGgsdixnLHk9e3BvaW50OmIsbGluZVN0YXJ0OngsbGluZUVuZDp3LHBvbHlnb25TdGFydDpmdW5jdGlvbigpe3IucG9seWdvblN0YXJ0KCkseS5saW5lU3RhcnQ9T30scG9seWdvbkVuZDpmdW5jdGlvbigpe3IucG9seWdvbkVuZCgpLHkubGluZVN0YXJ0PXh9fTtmdW5jdGlvbiBiKGssQSl7az10KGssQSksci5wb2ludChrWzBdLGtbMV0pfWZ1bmN0aW9uIHgoKXtmPU5hTix5LnBvaW50PV8sci5saW5lU3RhcnQoKX1mdW5jdGlvbiBfKGssQSl7dmFyIFA9Q2QoW2ssQV0pLEM9dChrLEEpO24oZixkLHUsaCx2LGcsZj1DWzBdLGQ9Q1sxXSx1PWssaD1QWzBdLHY9UFsxXSxnPVBbMl0sJEQsciksci5wb2ludChmLGQpfWZ1bmN0aW9uIHcoKXt5LnBvaW50PWIsci5saW5lRW5kKCl9ZnVuY3Rpb24gTygpe3goKSx5LnBvaW50PUUseS5saW5lRW5kPU19ZnVuY3Rpb24gRShrLEEpe18oaT1rLEEpLGE9ZixvPWQscz1oLGM9dixsPWcseS5wb2ludD1ffWZ1bmN0aW9uIE0oKXtuKGYsZCx1LGgsdixnLGEsbyxpLHMsYyxsLCRELHIpLHkubGluZUVuZD13LHcoKX1yZXR1cm4geX19dmFyIFRKPUkwKHtwb2ludDpmdW5jdGlvbih0LGUpe3RoaXMuc3RyZWFtLnBvaW50KHQqQXIsZSpBcil9fSk7ZnVuY3Rpb24gUEoodCl7cmV0dXJuIEkwKHtwb2ludDpmdW5jdGlvbihlLG4pe3ZhciByPXQoZSxuKTtyZXR1cm4gdGhpcy5zdHJlYW0ucG9pbnQoclswXSxyWzFdKX19KX1mdW5jdGlvbiBDSih0LGUsbixyLGkpe2Z1bmN0aW9uIGEobyxzKXtyZXR1cm4gbyo9cixzKj1pLFtlK3QqbyxuLXQqc119cmV0dXJuIGEuaW52ZXJ0PWZ1bmN0aW9uKG8scyl7cmV0dXJuWyhvLWUpL3Qqciwobi1zKS90KmldfSxhfWZ1bmN0aW9uIFlEKHQsZSxuLHIsaSxhKXtpZighYSlyZXR1cm4gQ0oodCxlLG4scixpKTt2YXIgbz1hbihhKSxzPVplKGEpLGM9byp0LGw9cyp0LHU9by90LGY9cy90LGQ9KHMqbi1vKmUpL3QsaD0ocyplK28qbikvdDtmdW5jdGlvbiB2KGcseSl7cmV0dXJuIGcqPXIseSo9aSxbYypnLWwqeStlLG4tbCpnLWMqeV19cmV0dXJuIHYuaW52ZXJ0PWZ1bmN0aW9uKGcseSl7cmV0dXJuW3IqKHUqZy1mKnkrZCksaSooaC1mKmctdSp5KV19LHZ9ZnVuY3Rpb24gTXModCl7cmV0dXJuIHBFKGZ1bmN0aW9uKCl7cmV0dXJuIHR9KSgpfWZ1bmN0aW9uIHBFKHQpe3ZhciBlLG49MTUwLHI9NDgwLGk9MjUwLGE9MCxvPTAscz0wLGM9MCxsPTAsdSxmPTAsZD0xLGg9MSx2PW51bGwsZz1JRCx5PW51bGwsYix4LF8sdz1BMCxPPS41LEUsTSxrLEEsUDtmdW5jdGlvbiBDKEkpe3JldHVybiBrKElbMF0qQXIsSVsxXSpBcil9ZnVuY3Rpb24gTihJKXtyZXR1cm4gST1rLmludmVydChJWzBdLElbMV0pLEkmJltJWzBdKmlhLElbMV0qaWFdfUMuc3RyZWFtPWZ1bmN0aW9uKEkpe3JldHVybiBBJiZQPT09ST9BOkE9VEooUEoodSkoZyhFKHcoUD1JKSkpKSl9LEMucHJlY2xpcD1mdW5jdGlvbihJKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZz1JLHY9dm9pZCAwLFIoKSk6Z30sQy5wb3N0Y2xpcD1mdW5jdGlvbihJKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odz1JLHk9Yj14PV89bnVsbCxSKCkpOnd9LEMuY2xpcEFuZ2xlPWZ1bmN0aW9uKEkpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhnPStJP09KKHY9SSpBcik6KHY9bnVsbCxJRCksUigpKTp2KmlhfSxDLmNsaXBFeHRlbnQ9ZnVuY3Rpb24oSSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHc9ST09bnVsbD8oeT1iPXg9Xz1udWxsLEEwKTpGRCh5PStJWzBdWzBdLGI9K0lbMF1bMV0seD0rSVsxXVswXSxfPStJWzFdWzFdKSxSKCkpOnk9PW51bGw/bnVsbDpbW3ksYl0sW3gsX11dfSxDLnNjYWxlPWZ1bmN0aW9uKEkpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPStJLEwoKSk6bn0sQy50cmFuc2xhdGU9ZnVuY3Rpb24oSSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9K0lbMF0saT0rSVsxXSxMKCkpOltyLGldfSxDLmNlbnRlcj1mdW5jdGlvbihJKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT1JWzBdJTM2MCpBcixvPUlbMV0lMzYwKkFyLEwoKSk6W2EqaWEsbyppYV19LEMucm90YXRlPWZ1bmN0aW9uKEkpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPUlbMF0lMzYwKkFyLGM9SVsxXSUzNjAqQXIsbD1JLmxlbmd0aD4yP0lbMl0lMzYwKkFyOjAsTCgpKTpbcyppYSxjKmlhLGwqaWFdfSxDLmFuZ2xlPWZ1bmN0aW9uKEkpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhmPUklMzYwKkFyLEwoKSk6ZippYX0sQy5yZWZsZWN0WD1mdW5jdGlvbihJKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZD1JPy0xOjEsTCgpKTpkPDB9LEMucmVmbGVjdFk9ZnVuY3Rpb24oSSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGg9ST8tMToxLEwoKSk6aDwwfSxDLnByZWNpc2lvbj1mdW5jdGlvbihJKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oRT1aRChNLE89SSpJKSxSKCkpOlJhKE8pfSxDLmZpdEV4dGVudD1mdW5jdGlvbihJLEQpe3JldHVybiBLMShDLEksRCl9LEMuZml0U2l6ZT1mdW5jdGlvbihJLEQpe3JldHVybiBmRShDLEksRCl9LEMuZml0V2lkdGg9ZnVuY3Rpb24oSSxEKXtyZXR1cm4gZEUoQyxJLEQpfSxDLmZpdEhlaWdodD1mdW5jdGlvbihJLEQpe3JldHVybiBoRShDLEksRCl9O2Z1bmN0aW9uIEwoKXt2YXIgST1ZRChuLDAsMCxkLGgsZikuYXBwbHkobnVsbCxlKGEsbykpLEQ9WUQobixyLUlbMF0saS1JWzFdLGQsaCxmKTtyZXR1cm4gdT1CRChzLGMsbCksTT1zRShlLEQpLGs9c0UodSxNKSxFPVpEKE0sTyksUigpfWZ1bmN0aW9uIFIoKXtyZXR1cm4gQT1QPW51bGwsQ31yZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZT10LmFwcGx5KHRoaXMsYXJndW1lbnRzKSxDLmludmVydD1lLmludmVydCYmTixMKCl9fWZ1bmN0aW9uIHZFKHQpe3ZhciBlPTAsbj1jbi8zLHI9cEUodCksaT1yKGUsbik7cmV0dXJuIGkucGFyYWxsZWxzPWZ1bmN0aW9uKGEpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3IoZT1hWzBdKkFyLG49YVsxXSpBcik6W2UqaWEsbippYV19LGl9ZnVuY3Rpb24gTEoodCl7dmFyIGU9YW4odCk7ZnVuY3Rpb24gbihyLGkpe3JldHVybltyKmUsWmUoaSkvZV19cmV0dXJuIG4uaW52ZXJ0PWZ1bmN0aW9uKHIsaSl7cmV0dXJuW3IvZSxBbyhpKmUpXX0sbn1mdW5jdGlvbiBIRCh0LGUpe3ZhciBuPVplKHQpLHI9KG4rWmUoZSkpLzI7aWYoVG4ocik8UmUpcmV0dXJuIExKKHQpO3ZhciBpPTErbiooMipyLW4pLGE9UmEoaSkvcjtmdW5jdGlvbiBvKHMsYyl7dmFyIGw9UmEoaS0yKnIqWmUoYykpL3I7cmV0dXJuW2wqWmUocyo9ciksYS1sKmFuKHMpXX1yZXR1cm4gby5pbnZlcnQ9ZnVuY3Rpb24ocyxjKXt2YXIgbD1hLWMsdT12YyhzLFRuKGwpKSprbyhsKTtyZXR1cm4gbCpyPDAmJih1LT1jbiprbyhzKSprbyhsKSksW3UvcixBbygoaS0ocypzK2wqbCkqcipyKS8oMipyKSldfSxvfWZ1bmN0aW9uIFExKCl7cmV0dXJuIHZFKEhEKS5zY2FsZSgxNTUuNDI0KS5jZW50ZXIoWzAsMzMuNjQ0Ml0pfWZ1bmN0aW9uIFZEKCl7cmV0dXJuIFExKCkucGFyYWxsZWxzKFsyOS41LDQ1LjVdKS5zY2FsZSgxMDcwKS50cmFuc2xhdGUoWzQ4MCwyNTBdKS5yb3RhdGUoWzk2LDBdKS5jZW50ZXIoWy0uNiwzOC43XSl9ZnVuY3Rpb24gUkoodCl7dmFyIGU9dC5sZW5ndGg7cmV0dXJue3BvaW50OmZ1bmN0aW9uKG4scil7Zm9yKHZhciBpPS0xOysraTxlOyl0W2ldLnBvaW50KG4scil9LHNwaGVyZTpmdW5jdGlvbigpe2Zvcih2YXIgbj0tMTsrK248ZTspdFtuXS5zcGhlcmUoKX0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7Zm9yKHZhciBuPS0xOysrbjxlOyl0W25dLmxpbmVTdGFydCgpfSxsaW5lRW5kOmZ1bmN0aW9uKCl7Zm9yKHZhciBuPS0xOysrbjxlOyl0W25dLmxpbmVFbmQoKX0scG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7Zm9yKHZhciBuPS0xOysrbjxlOyl0W25dLnBvbHlnb25TdGFydCgpfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7Zm9yKHZhciBuPS0xOysrbjxlOyl0W25dLnBvbHlnb25FbmQoKX19fWZ1bmN0aW9uIE5KKCl7dmFyIHQsZSxuPVZEKCkscixpPVExKCkucm90YXRlKFsxNTQsMF0pLmNlbnRlcihbLTIsNTguNV0pLnBhcmFsbGVscyhbNTUsNjVdKSxhLG89UTEoKS5yb3RhdGUoWzE1NywwXSkuY2VudGVyKFstMywxOS45XSkucGFyYWxsZWxzKFs4LDE4XSkscyxjLGw9e3BvaW50OmZ1bmN0aW9uKGQsaCl7Yz1bZCxoXX19O2Z1bmN0aW9uIHUoZCl7dmFyIGg9ZFswXSx2PWRbMV07cmV0dXJuIGM9bnVsbCxyLnBvaW50KGgsdiksY3x8KGEucG9pbnQoaCx2KSxjKXx8KHMucG9pbnQoaCx2KSxjKX11LmludmVydD1mdW5jdGlvbihkKXt2YXIgaD1uLnNjYWxlKCksdj1uLnRyYW5zbGF0ZSgpLGc9KGRbMF0tdlswXSkvaCx5PShkWzFdLXZbMV0pL2g7cmV0dXJuKHk+PS4xMiYmeTwuMjM0JiZnPj0tLjQyNSYmZzwtLjIxND9pOnk+PS4xNjYmJnk8LjIzNCYmZz49LS4yMTQmJmc8LS4xMTU/bzpuKS5pbnZlcnQoZCl9LHUuc3RyZWFtPWZ1bmN0aW9uKGQpe3JldHVybiB0JiZlPT09ZD90OnQ9UkooW24uc3RyZWFtKGU9ZCksaS5zdHJlYW0oZCksby5zdHJlYW0oZCldKX0sdS5wcmVjaXNpb249ZnVuY3Rpb24oZCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG4ucHJlY2lzaW9uKGQpLGkucHJlY2lzaW9uKGQpLG8ucHJlY2lzaW9uKGQpLGYoKSk6bi5wcmVjaXNpb24oKX0sdS5zY2FsZT1mdW5jdGlvbihkKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obi5zY2FsZShkKSxpLnNjYWxlKGQqLjM1KSxvLnNjYWxlKGQpLHUudHJhbnNsYXRlKG4udHJhbnNsYXRlKCkpKTpuLnNjYWxlKCl9LHUudHJhbnNsYXRlPWZ1bmN0aW9uKGQpe2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiBuLnRyYW5zbGF0ZSgpO3ZhciBoPW4uc2NhbGUoKSx2PStkWzBdLGc9K2RbMV07cmV0dXJuIHI9bi50cmFuc2xhdGUoZCkuY2xpcEV4dGVudChbW3YtLjQ1NSpoLGctLjIzOCpoXSxbdisuNDU1KmgsZysuMjM4KmhdXSkuc3RyZWFtKGwpLGE9aS50cmFuc2xhdGUoW3YtLjMwNypoLGcrLjIwMSpoXSkuY2xpcEV4dGVudChbW3YtLjQyNSpoK1JlLGcrLjEyKmgrUmVdLFt2LS4yMTQqaC1SZSxnKy4yMzQqaC1SZV1dKS5zdHJlYW0obCkscz1vLnRyYW5zbGF0ZShbdi0uMjA1KmgsZysuMjEyKmhdKS5jbGlwRXh0ZW50KFtbdi0uMjE0KmgrUmUsZysuMTY2KmgrUmVdLFt2LS4xMTUqaC1SZSxnKy4yMzQqaC1SZV1dKS5zdHJlYW0obCksZigpfSx1LmZpdEV4dGVudD1mdW5jdGlvbihkLGgpe3JldHVybiBLMSh1LGQsaCl9LHUuZml0U2l6ZT1mdW5jdGlvbihkLGgpe3JldHVybiBmRSh1LGQsaCl9LHUuZml0V2lkdGg9ZnVuY3Rpb24oZCxoKXtyZXR1cm4gZEUodSxkLGgpfSx1LmZpdEhlaWdodD1mdW5jdGlvbihkLGgpe3JldHVybiBoRSh1LGQsaCl9O2Z1bmN0aW9uIGYoKXtyZXR1cm4gdD1lPW51bGwsdX1yZXR1cm4gdS5zY2FsZSgxMDcwKX1mdW5jdGlvbiBYRCh0KXtyZXR1cm4gZnVuY3Rpb24oZSxuKXt2YXIgcj1hbihlKSxpPWFuKG4pLGE9dChyKmkpO3JldHVybiBhPT09MS8wP1syLDBdOlthKmkqWmUoZSksYSpaZShuKV19fWZ1bmN0aW9uIEQwKHQpe3JldHVybiBmdW5jdGlvbihlLG4pe3ZhciByPVJhKGUqZStuKm4pLGk9dChyKSxhPVplKGkpLG89YW4oaSk7cmV0dXJuW3ZjKGUqYSxyKm8pLEFvKHImJm4qYS9yKV19fXZhciBnRT1YRChmdW5jdGlvbih0KXtyZXR1cm4gUmEoMi8oMSt0KSl9KTtnRS5pbnZlcnQ9RDAoZnVuY3Rpb24odCl7cmV0dXJuIDIqQW8odC8yKX0pO2Z1bmN0aW9uIElKKCl7cmV0dXJuIE1zKGdFKS5zY2FsZSgxMjQuNzUpLmNsaXBBbmdsZSgxODAtLjAwMSl9dmFyIHlFPVhEKGZ1bmN0aW9uKHQpe3JldHVybih0PW9EKHQpKSYmdC9aZSh0KX0pO3lFLmludmVydD1EMChmdW5jdGlvbih0KXtyZXR1cm4gdH0pO2Z1bmN0aW9uIERKKCl7cmV0dXJuIE1zKHlFKS5zY2FsZSg3OS40MTg4KS5jbGlwQW5nbGUoMTgwLS4wMDEpfWZ1bmN0aW9uIGowKHQsZSl7cmV0dXJuW3QsajEoSFMoKGpyK2UpLzIpKV19ajAuaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuW3QsMiprZChhRChlKSktanJdfTtmdW5jdGlvbiBqSigpe3JldHVybiBVRChqMCkuc2NhbGUoOTYxL0hhKX1mdW5jdGlvbiBVRCh0KXt2YXIgZT1Ncyh0KSxuPWUuY2VudGVyLHI9ZS5zY2FsZSxpPWUudHJhbnNsYXRlLGE9ZS5jbGlwRXh0ZW50LG89bnVsbCxzLGMsbDtlLnNjYWxlPWZ1bmN0aW9uKGYpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyKGYpLHUoKSk6cigpfSxlLnRyYW5zbGF0ZT1mdW5jdGlvbihmKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaShmKSx1KCkpOmkoKX0sZS5jZW50ZXI9ZnVuY3Rpb24oZil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG4oZiksdSgpKTpuKCl9LGUuY2xpcEV4dGVudD1mdW5jdGlvbihmKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj09bnVsbD9vPXM9Yz1sPW51bGw6KG89K2ZbMF1bMF0scz0rZlswXVsxXSxjPStmWzFdWzBdLGw9K2ZbMV1bMV0pLHUoKSk6bz09bnVsbD9udWxsOltbbyxzXSxbYyxsXV19O2Z1bmN0aW9uIHUoKXt2YXIgZj1jbipyKCksZD1lKEVKKGUucm90YXRlKCkpLmludmVydChbMCwwXSkpO3JldHVybiBhKG89PW51bGw/W1tkWzBdLWYsZFsxXS1mXSxbZFswXStmLGRbMV0rZl1dOnQ9PT1qMD9bW01hdGgubWF4KGRbMF0tZixvKSxzXSxbTWF0aC5taW4oZFswXStmLGMpLGxdXTpbW28sTWF0aC5tYXgoZFsxXS1mLHMpXSxbYyxNYXRoLm1pbihkWzFdK2YsbCldXSl9cmV0dXJuIHUoKX1mdW5jdGlvbiBKMSh0KXtyZXR1cm4gSFMoKGpyK3QpLzIpfWZ1bmN0aW9uIHFEKHQsZSl7dmFyIG49YW4odCkscj10PT09ZT9aZSh0KTpqMShuL2FuKGUpKS9qMShKMShlKS9KMSh0KSksaT1uKllTKEoxKHQpLHIpL3I7aWYoIXIpcmV0dXJuIGowO2Z1bmN0aW9uIGEobyxzKXtpPjA/czwtanIrUmUmJihzPS1qcitSZSk6cz5qci1SZSYmKHM9anItUmUpO3ZhciBjPWkvWVMoSjEocykscik7cmV0dXJuW2MqWmUocipvKSxpLWMqYW4ocipvKV19cmV0dXJuIGEuaW52ZXJ0PWZ1bmN0aW9uKG8scyl7dmFyIGM9aS1zLGw9a28ocikqUmEobypvK2MqYyksdT12YyhvLFRuKGMpKSprbyhjKTtyZXR1cm4gYypyPDAmJih1LT1jbiprbyhvKSprbyhjKSksW3UvciwyKmtkKFlTKGkvbCwxL3IpKS1qcl19LGF9ZnVuY3Rpb24gRkooKXtyZXR1cm4gdkUocUQpLnNjYWxlKDEwOS41KS5wYXJhbGxlbHMoWzMwLDMwXSl9ZnVuY3Rpb24gRjAodCxlKXtyZXR1cm5bdCxlXX1GMC5pbnZlcnQ9RjA7ZnVuY3Rpb24gQkooKXtyZXR1cm4gTXMoRjApLnNjYWxlKDE1Mi42Myl9ZnVuY3Rpb24gS0QodCxlKXt2YXIgbj1hbih0KSxyPXQ9PT1lP1plKHQpOihuLWFuKGUpKS8oZS10KSxpPW4vcit0O2lmKFRuKHIpPFJlKXJldHVybiBGMDtmdW5jdGlvbiBhKG8scyl7dmFyIGM9aS1zLGw9cipvO3JldHVybltjKlplKGwpLGktYyphbihsKV19cmV0dXJuIGEuaW52ZXJ0PWZ1bmN0aW9uKG8scyl7dmFyIGM9aS1zLGw9dmMobyxUbihjKSkqa28oYyk7cmV0dXJuIGMqcjwwJiYobC09Y24qa28obykqa28oYykpLFtsL3IsaS1rbyhyKSpSYShvKm8rYypjKV19LGF9ZnVuY3Rpb24gekooKXtyZXR1cm4gdkUoS0QpLnNjYWxlKDEzMS4xNTQpLmNlbnRlcihbMCwxMy45Mzg5XSl9dmFyIEIwPTEuMzQwMjY0LHowPS0uMDgxMTA2LFcwPTg5M2UtNixHMD0uMDAzNzk2LHRiPVJhKDMpLzIsV0o9MTI7ZnVuY3Rpb24gbUUodCxlKXt2YXIgbj1Bbyh0YipaZShlKSkscj1uKm4saT1yKnIqcjtyZXR1cm5bdCphbihuKS8odGIqKEIwKzMqejAqcitpKig3KlcwKzkqRzAqcikpKSxuKihCMCt6MCpyK2kqKFcwK0cwKnIpKV19bUUuaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPWUscj1uKm4saT1yKnIqcixhPTAsbyxzLGM7YTxXSiYmKHM9biooQjArejAqcitpKihXMCtHMCpyKSktZSxjPUIwKzMqejAqcitpKig3KlcwKzkqRzAqciksbi09bz1zL2Mscj1uKm4saT1yKnIqciwhKFRuKG8pPHJEKSk7KythKTtyZXR1cm5bdGIqdCooQjArMyp6MCpyK2kqKDcqVzArOSpHMCpyKSkvYW4obiksQW8oWmUobikvdGIpXX07ZnVuY3Rpb24gR0ooKXtyZXR1cm4gTXMobUUpLnNjYWxlKDE3Ny4xNTgpfWZ1bmN0aW9uIGJFKHQsZSl7dmFyIG49YW4oZSkscj1hbih0KSpuO3JldHVybltuKlplKHQpL3IsWmUoZSkvcl19YkUuaW52ZXJ0PUQwKGtkKTtmdW5jdGlvbiAkSigpe3JldHVybiBNcyhiRSkuc2NhbGUoMTQ0LjA0OSkuY2xpcEFuZ2xlKDYwKX1mdW5jdGlvbiBaSigpe3ZhciB0PTEsZT0wLG49MCxyPTEsaT0xLGE9MCxvLHMsYz1udWxsLGwsdSxmLGQ9MSxoPTEsdj1JMCh7cG9pbnQ6ZnVuY3Rpb24odyxPKXt2YXIgRT1fKFt3LE9dKTt0aGlzLnN0cmVhbS5wb2ludChFWzBdLEVbMV0pfX0pLGc9QTAseSxiO2Z1bmN0aW9uIHgoKXtyZXR1cm4gZD10KnIsaD10KmkseT1iPW51bGwsX31mdW5jdGlvbiBfKHcpe3ZhciBPPXdbMF0qZCxFPXdbMV0qaDtpZihhKXt2YXIgTT1FKm8tTypzO089TypvK0UqcyxFPU19cmV0dXJuW08rZSxFK25dfXJldHVybiBfLmludmVydD1mdW5jdGlvbih3KXt2YXIgTz13WzBdLWUsRT13WzFdLW47aWYoYSl7dmFyIE09RSpvK08qcztPPU8qby1FKnMsRT1NfXJldHVybltPL2QsRS9oXX0sXy5zdHJlYW09ZnVuY3Rpb24odyl7cmV0dXJuIHkmJmI9PT13P3k6eT12KGcoYj13KSl9LF8ucG9zdGNsaXA9ZnVuY3Rpb24odyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGc9dyxjPWw9dT1mPW51bGwseCgpKTpnfSxfLmNsaXBFeHRlbnQ9ZnVuY3Rpb24odyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGc9dz09bnVsbD8oYz1sPXU9Zj1udWxsLEEwKTpGRChjPSt3WzBdWzBdLGw9K3dbMF1bMV0sdT0rd1sxXVswXSxmPSt3WzFdWzFdKSx4KCkpOmM9PW51bGw/bnVsbDpbW2MsbF0sW3UsZl1dfSxfLnNjYWxlPWZ1bmN0aW9uKHcpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PSt3LHgoKSk6dH0sXy50cmFuc2xhdGU9ZnVuY3Rpb24odyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9K3dbMF0sbj0rd1sxXSx4KCkpOltlLG5dfSxfLmFuZ2xlPWZ1bmN0aW9uKHcpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPXclMzYwKkFyLHM9WmUoYSksbz1hbihhKSx4KCkpOmEqaWF9LF8ucmVmbGVjdFg9ZnVuY3Rpb24odyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9dz8tMToxLHgoKSk6cjwwfSxfLnJlZmxlY3RZPWZ1bmN0aW9uKHcpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPXc/LTE6MSx4KCkpOmk8MH0sXy5maXRFeHRlbnQ9ZnVuY3Rpb24odyxPKXtyZXR1cm4gSzEoXyx3LE8pfSxfLmZpdFNpemU9ZnVuY3Rpb24odyxPKXtyZXR1cm4gZkUoXyx3LE8pfSxfLmZpdFdpZHRoPWZ1bmN0aW9uKHcsTyl7cmV0dXJuIGRFKF8sdyxPKX0sXy5maXRIZWlnaHQ9ZnVuY3Rpb24odyxPKXtyZXR1cm4gaEUoXyx3LE8pfSxffWZ1bmN0aW9uIHhFKHQsZSl7dmFyIG49ZSplLHI9bipuO3JldHVyblt0KiguODcwNy0uMTMxOTc5Km4rciooLS4wMTM3OTErciooLjAwMzk3MSpuLS4wMDE1MjkqcikpKSxlKigxLjAwNzIyNituKiguMDE1MDg1K3IqKC0uMDQ0NDc1Ky4wMjg4NzQqbi0uMDA1OTE2KnIpKSldfXhFLmludmVydD1mdW5jdGlvbih0LGUpe3ZhciBuPWUscj0yNSxpO2Rve3ZhciBhPW4qbixvPWEqYTtuLT1pPShuKigxLjAwNzIyNithKiguMDE1MDg1K28qKC0uMDQ0NDc1Ky4wMjg4NzQqYS0uMDA1OTE2Km8pKSktZSkvKDEuMDA3MjI2K2EqKC4wMTUwODUqMytvKigtLjA0NDQ3NSo3Ky4wMjg4NzQqOSphLS4wMDU5MTYqMTEqbykpKX13aGlsZShUbihpKT5SZSYmLS1yPjApO3JldHVyblt0LyguODcwNysoYT1uKm4pKigtLjEzMTk3OSthKigtLjAxMzc5MSthKmEqYSooLjAwMzk3MS0uMDAxNTI5KmEpKSkpLG5dfTtmdW5jdGlvbiBZSigpe3JldHVybiBNcyh4RSkuc2NhbGUoMTc1LjI5NSl9ZnVuY3Rpb24gX0UodCxlKXtyZXR1cm5bYW4oZSkqWmUodCksWmUoZSldfV9FLmludmVydD1EMChBbyk7ZnVuY3Rpb24gSEooKXtyZXR1cm4gTXMoX0UpLnNjYWxlKDI0OS41KS5jbGlwQW5nbGUoOTArUmUpfWZ1bmN0aW9uIHdFKHQsZSl7dmFyIG49YW4oZSkscj0xK2FuKHQpKm47cmV0dXJuW24qWmUodCkvcixaZShlKS9yXX13RS5pbnZlcnQ9RDAoZnVuY3Rpb24odCl7cmV0dXJuIDIqa2QodCl9KTtmdW5jdGlvbiBWSigpe3JldHVybiBNcyh3RSkuc2NhbGUoMjUwKS5jbGlwQW5nbGUoMTQyKX1mdW5jdGlvbiBPRSh0LGUpe3JldHVybltqMShIUygoanIrZSkvMikpLC10XX1PRS5pbnZlcnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm5bLWUsMiprZChhRCh0KSktanJdfTtmdW5jdGlvbiBYSigpe3ZhciB0PVVEKE9FKSxlPXQuY2VudGVyLG49dC5yb3RhdGU7cmV0dXJuIHQuY2VudGVyPWZ1bmN0aW9uKHIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP2UoWy1yWzFdLHJbMF1dKToocj1lKCksW3JbMV0sLXJbMF1dKX0sdC5yb3RhdGU9ZnVuY3Rpb24ocil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/bihbclswXSxyWzFdLHIubGVuZ3RoPjI/clsyXSs5MDo5MF0pOihyPW4oKSxbclswXSxyWzFdLHJbMl0tOTBdKX0sbihbMCwwLDkwXSkuc2NhbGUoMTU5LjE1NSl9dmFyIFVKPWZ1bmN0aW9uKHQsZSl7dmFyIG49e307Zm9yKHZhciByIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscikmJmUuaW5kZXhPZihyKTwwJiYobltyXT10W3JdKTtpZih0IT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIGk9MCxyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCk7aTxyLmxlbmd0aDtpKyspZS5pbmRleE9mKHJbaV0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh0LHJbaV0pJiYobltyW2ldXT10W3JbaV1dKTtyZXR1cm4gbn07ZnVuY3Rpb24gcUoodCl7aWYodHlwZW9mIHQ9PSJmdW5jdGlvbiIpcmV0dXJuIHQ7Y29uc3QgZT1gZ2VvJHt0bCh0KX1gLG49WWVbZV07aWYoIW4pdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIGNvb3JkaW5hdGU6ICR7dH1gKTtyZXR1cm4gbn1mdW5jdGlvbiBLSih0KXtyZXR1cm57dHlwZToiRmVhdHVyZUNvbGxlY3Rpb24iLGZlYXR1cmVzOnQuZmxhdE1hcChlPT5RSihlKS5mZWF0dXJlcyl9fWZ1bmN0aW9uIFFKKHQpe2NvbnN0IGU9e1BvaW50OiJnZW9tZXRyeSIsTXVsdGlQb2ludDoiZ2VvbWV0cnkiLExpbmVTdHJpbmc6Imdlb21ldHJ5IixNdWx0aUxpbmVTdHJpbmc6Imdlb21ldHJ5IixQb2x5Z29uOiJnZW9tZXRyeSIsTXVsdGlQb2x5Z29uOiJnZW9tZXRyeSIsR2VvbWV0cnlDb2xsZWN0aW9uOiJnZW9tZXRyeSIsRmVhdHVyZToiZmVhdHVyZSIsRmVhdHVyZUNvbGxlY3Rpb246ImZlYXR1cmVDb2xsZWN0aW9uIn07aWYoIXR8fCF0LnR5cGUpcmV0dXJuIG51bGw7Y29uc3Qgbj1lW3QudHlwZV07aWYoIW4pcmV0dXJuIG51bGw7aWYobj09PSJnZW9tZXRyeSIpcmV0dXJue3R5cGU6IkZlYXR1cmVDb2xsZWN0aW9uIixmZWF0dXJlczpbe3R5cGU6IkZlYXR1cmUiLHByb3BlcnRpZXM6e30sZ2VvbWV0cnk6dH1dfTtpZihuPT09ImZlYXR1cmUiKXJldHVybnt0eXBlOiJGZWF0dXJlQ29sbGVjdGlvbiIsZmVhdHVyZXM6W3RdfTtpZihuPT09ImZlYXR1cmVDb2xsZWN0aW9uIilyZXR1cm4gdH1mdW5jdGlvbiBKSih0LGUpe3ZhciBuO2Zvcihjb25zdFtyLGldb2YgT2JqZWN0LmVudHJpZXMoZSkpKG49dFtyXSk9PT1udWxsfHxuPT09dm9pZCAwfHxuLmNhbGwodCxpKX1mdW5jdGlvbiB0dHQodCxlLG4scil7Y29uc3QgaT0oKT0+e2NvbnN0IHM9ZS5maWx0ZXIoUUQpO3JldHVybiBzLmZpbmQobD0+bC5zcGhlcmUpP3t0eXBlOiJTcGhlcmUifTpLSihzLmZpbHRlcihsPT4hbC5zcGhlcmUpLmZsYXRNYXAobD0+bC5kYXRhLnZhbHVlKSl9LHtvdXRsaW5lOmE9aSgpfT1yLHtzaXplOm89ImZpdEV4dGVudCJ9PXI7aWYobz09PSJmaXRFeHRlbnQiKXJldHVybiBldHQodCxhLG4pO2lmKG89PT0iZml0V2lkdGgiKXJldHVybiBudHQodCxhLG4pfWZ1bmN0aW9uIGV0dCh0LGUsbil7Y29uc3R7eDpyLHk6aSx3aWR0aDphLGhlaWdodDpvfT1uO3QuZml0RXh0ZW50KFtbcixpXSxbYSxvXV0sZSl9ZnVuY3Rpb24gbnR0KHQsZSxuKXtjb25zdHt3aWR0aDpyLGhlaWdodDppfT1uLFtbYSxvXSxbcyxjXV09a0QodC5maXRXaWR0aChyLGUpKS5ib3VuZHMoZSksbD1NYXRoLmNlaWwoYy1vKSx1PU1hdGgubWluKE1hdGguY2VpbChzLWEpLGwpLGY9dC5zY2FsZSgpKih1LTEpL3UsW2QsaF09dC50cmFuc2xhdGUoKSx2PWgrKGktbCkvMjt0LnNjYWxlKGYpLnRyYW5zbGF0ZShbZCx2XSkucHJlY2lzaW9uKC4yKX1mdW5jdGlvbiBydHQodCl7Y29uc3R7ZGF0YTplfT10O2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7ZGF0YTp7dmFsdWU6ZX19KTtjb25zdHt0eXBlOm59PWU7cmV0dXJuIG49PT0iZ3JhdGljdWxlMTAiP09iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7ZGF0YTp7dmFsdWU6W3ZKKCldfX0pOm49PT0ic3BoZXJlIj9PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3NwaGVyZTohMCxkYXRhOnt2YWx1ZTpbe3R5cGU6IlNwaGVyZSJ9XX19KTp0fWZ1bmN0aW9uIFFEKHQpe3JldHVybiB0LnR5cGU9PT0iZ2VvUGF0aCJ9Y29uc3QgSkQ9KCk9PnQ9Pntjb25zdHtjaGlsZHJlbjplLGNvb3JkaW5hdGU6bj17fX09dDtpZighQXJyYXkuaXNBcnJheShlKSlyZXR1cm5bXTtjb25zdHt0eXBlOnI9ImVxdWFsRWFydGgifT1uLGk9VUoobixbInR5cGUiXSksYT1xSihyKSxvPWUubWFwKHJ0dCk7bGV0IHM7ZnVuY3Rpb24gYygpe3JldHVybltbImN1c3RvbSIsKGYsZCxoLHYpPT57Y29uc3QgZz1hKCk7dHR0KGcsbyx7eDpmLHk6ZCx3aWR0aDpoLGhlaWdodDp2fSxpKSxKSihnLGkpLHM9a0QoZyk7Y29uc3QgYj1uZXcgSmkoe2RvbWFpbjpbZixmK2hdfSkseD1uZXcgSmkoe2RvbWFpbjpbZCxkK3ZdfSksXz1PPT57Y29uc3QgRT1nKE8pO2lmKCFFKXJldHVybltudWxsLG51bGxdO2NvbnN0W00sa109RTtyZXR1cm5bYi5tYXAoTSkseC5tYXAoayldfSx3PU89PntpZighTylyZXR1cm4gbnVsbDtjb25zdFtFLE1dPU8saz1bYi5pbnZlcnQoRSkseC5pbnZlcnQoTSldO3JldHVybiBnLmludmVydChrKX07cmV0dXJue3RyYW5zZm9ybTpPPT5fKE8pLHVudHJhbnNmb3JtOk89PncoTyl9fV1dfWZ1bmN0aW9uIGwoZil7Y29uc3R7c3R5bGU6ZCx0b29sdGlwOmg9e319PWY7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxmKSx7dHlwZToicGF0aCIsdG9vbHRpcDpxbShoLHt0aXRsZToiaWQiLGl0ZW1zOlt7Y2hhbm5lbDoiY29sb3IifV19KSxzdHlsZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZCkse2Q6dj0+cyh2KXx8W119KX0pfWNvbnN0IHU9Zj0+UUQoZik/bChmKTpmO3JldHVybltPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3R5cGU6InZpZXciLHNjYWxlOnt4Ont0eXBlOiJpZGVudGl0eSJ9LHk6e3R5cGU6ImlkZW50aXR5In19LGF4aXM6ITEsY29vcmRpbmF0ZTp7dHlwZTpjfSxjaGlsZHJlbjpvLmZsYXRNYXAodSl9KV19O0pELnByb3BzPXt9O3ZhciBpdHQ9ZnVuY3Rpb24odCxlKXt2YXIgbj17fTtmb3IodmFyIHIgaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKSYmZS5pbmRleE9mKHIpPDAmJihuW3JdPXRbcl0pO2lmKHQhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgaT0wLHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTtpPHIubGVuZ3RoO2krKyllLmluZGV4T2YocltpXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHQscltpXSkmJihuW3JbaV1dPXRbcltpXV0pO3JldHVybiBufTtjb25zdCB0Nj0oKT0+dD0+e2NvbnN0e3R5cGU6ZSxkYXRhOm4sc2NhbGU6cixlbmNvZGU6aSxzdHlsZTphLGFuaW1hdGU6byxrZXk6cyxzdGF0ZTpjfT10LGw9aXR0KHQsWyJ0eXBlIiwiZGF0YSIsInNjYWxlIiwiZW5jb2RlIiwic3R5bGUiLCJhbmltYXRlIiwia2V5Iiwic3RhdGUiXSk7cmV0dXJuW09iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7dHlwZToiZ2VvVmlldyJ9LGwpLHtjaGlsZHJlbjpbe3R5cGU6Imdlb1BhdGgiLGtleTpgJHtzfS0wYCxkYXRhOnt2YWx1ZTpufSxzY2FsZTpyLGVuY29kZTppLHN0eWxlOmEsYW5pbWF0ZTpvLHN0YXRlOmN9XX0pXX07dDYucHJvcHM9e307ZnVuY3Rpb24gYXR0KCl7cmV0dXJueyJjb21wb3NpdGlvbi5nZW9WaWV3IjpKRCwiY29tcG9zaXRpb24uZ2VvUGF0aCI6dDZ9fWZ1bmN0aW9uIG90dCh0KXtjb25zdCBlPSt0aGlzLl94LmNhbGwobnVsbCx0KSxuPSt0aGlzLl95LmNhbGwobnVsbCx0KTtyZXR1cm4gZTYodGhpcy5jb3ZlcihlLG4pLGUsbix0KX1mdW5jdGlvbiBlNih0LGUsbixyKXtpZihpc05hTihlKXx8aXNOYU4obikpcmV0dXJuIHQ7dmFyIGksYT10Ll9yb290LG89e2RhdGE6cn0scz10Ll94MCxjPXQuX3kwLGw9dC5feDEsdT10Ll95MSxmLGQsaCx2LGcseSxiLHg7aWYoIWEpcmV0dXJuIHQuX3Jvb3Q9byx0O2Zvcig7YS5sZW5ndGg7KWlmKChnPWU+PShmPShzK2wpLzIpKT9zPWY6bD1mLCh5PW4+PShkPShjK3UpLzIpKT9jPWQ6dT1kLGk9YSwhKGE9YVtiPXk8PDF8Z10pKXJldHVybiBpW2JdPW8sdDtpZihoPSt0Ll94LmNhbGwobnVsbCxhLmRhdGEpLHY9K3QuX3kuY2FsbChudWxsLGEuZGF0YSksZT09PWgmJm49PT12KXJldHVybiBvLm5leHQ9YSxpP2lbYl09bzp0Ll9yb290PW8sdDtkbyBpPWk/aVtiXT1uZXcgQXJyYXkoNCk6dC5fcm9vdD1uZXcgQXJyYXkoNCksKGc9ZT49KGY9KHMrbCkvMikpP3M9ZjpsPWYsKHk9bj49KGQ9KGMrdSkvMikpP2M9ZDp1PWQ7d2hpbGUoKGI9eTw8MXxnKT09PSh4PSh2Pj1kKTw8MXxoPj1mKSk7cmV0dXJuIGlbeF09YSxpW2JdPW8sdH1mdW5jdGlvbiBzdHQodCl7dmFyIGUsbixyPXQubGVuZ3RoLGksYSxvPW5ldyBBcnJheShyKSxzPW5ldyBBcnJheShyKSxjPTEvMCxsPTEvMCx1PS0xLzAsZj0tMS8wO2ZvcihuPTA7bjxyOysrbilpc05hTihpPSt0aGlzLl94LmNhbGwobnVsbCxlPXRbbl0pKXx8aXNOYU4oYT0rdGhpcy5feS5jYWxsKG51bGwsZSkpfHwob1tuXT1pLHNbbl09YSxpPGMmJihjPWkpLGk+dSYmKHU9aSksYTxsJiYobD1hKSxhPmYmJihmPWEpKTtpZihjPnV8fGw+ZilyZXR1cm4gdGhpcztmb3IodGhpcy5jb3ZlcihjLGwpLmNvdmVyKHUsZiksbj0wO248cjsrK24pZTYodGhpcyxvW25dLHNbbl0sdFtuXSk7cmV0dXJuIHRoaXN9ZnVuY3Rpb24gY3R0KHQsZSl7aWYoaXNOYU4odD0rdCl8fGlzTmFOKGU9K2UpKXJldHVybiB0aGlzO3ZhciBuPXRoaXMuX3gwLHI9dGhpcy5feTAsaT10aGlzLl94MSxhPXRoaXMuX3kxO2lmKGlzTmFOKG4pKWk9KG49TWF0aC5mbG9vcih0KSkrMSxhPShyPU1hdGguZmxvb3IoZSkpKzE7ZWxzZXtmb3IodmFyIG89aS1ufHwxLHM9dGhpcy5fcm9vdCxjLGw7bj50fHx0Pj1pfHxyPmV8fGU+PWE7KXN3aXRjaChsPShlPHIpPDwxfHQ8bixjPW5ldyBBcnJheSg0KSxjW2xdPXMscz1jLG8qPTIsbCl7Y2FzZSAwOmk9bitvLGE9citvO2JyZWFrO2Nhc2UgMTpuPWktbyxhPXIrbzticmVhaztjYXNlIDI6aT1uK28scj1hLW87YnJlYWs7Y2FzZSAzOm49aS1vLHI9YS1vO2JyZWFrfXRoaXMuX3Jvb3QmJnRoaXMuX3Jvb3QubGVuZ3RoJiYodGhpcy5fcm9vdD1zKX1yZXR1cm4gdGhpcy5feDA9bix0aGlzLl95MD1yLHRoaXMuX3gxPWksdGhpcy5feTE9YSx0aGlzfWZ1bmN0aW9uIGx0dCgpe3ZhciB0PVtdO3JldHVybiB0aGlzLnZpc2l0KGZ1bmN0aW9uKGUpe2lmKCFlLmxlbmd0aClkbyB0LnB1c2goZS5kYXRhKTt3aGlsZShlPWUubmV4dCl9KSx0fWZ1bmN0aW9uIHV0dCh0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmNvdmVyKCt0WzBdWzBdLCt0WzBdWzFdKS5jb3ZlcigrdFsxXVswXSwrdFsxXVsxXSk6aXNOYU4odGhpcy5feDApP3ZvaWQgMDpbW3RoaXMuX3gwLHRoaXMuX3kwXSxbdGhpcy5feDEsdGhpcy5feTFdXX1mdW5jdGlvbiB2YSh0LGUsbixyLGkpe3RoaXMubm9kZT10LHRoaXMueDA9ZSx0aGlzLnkwPW4sdGhpcy54MT1yLHRoaXMueTE9aX1mdW5jdGlvbiBmdHQodCxlLG4pe3ZhciByLGk9dGhpcy5feDAsYT10aGlzLl95MCxvLHMsYyxsLHU9dGhpcy5feDEsZj10aGlzLl95MSxkPVtdLGg9dGhpcy5fcm9vdCx2LGc7Zm9yKGgmJmQucHVzaChuZXcgdmEoaCxpLGEsdSxmKSksbj09bnVsbD9uPTEvMDooaT10LW4sYT1lLW4sdT10K24sZj1lK24sbio9bik7dj1kLnBvcCgpOylpZighKCEoaD12Lm5vZGUpfHwobz12LngwKT51fHwocz12LnkwKT5mfHwoYz12LngxKTxpfHwobD12LnkxKTxhKSlpZihoLmxlbmd0aCl7dmFyIHk9KG8rYykvMixiPShzK2wpLzI7ZC5wdXNoKG5ldyB2YShoWzNdLHksYixjLGwpLG5ldyB2YShoWzJdLG8sYix5LGwpLG5ldyB2YShoWzFdLHkscyxjLGIpLG5ldyB2YShoWzBdLG8scyx5LGIpKSwoZz0oZT49Yik8PDF8dD49eSkmJih2PWRbZC5sZW5ndGgtMV0sZFtkLmxlbmd0aC0xXT1kW2QubGVuZ3RoLTEtZ10sZFtkLmxlbmd0aC0xLWddPXYpfWVsc2V7dmFyIHg9dC0rdGhpcy5feC5jYWxsKG51bGwsaC5kYXRhKSxfPWUtK3RoaXMuX3kuY2FsbChudWxsLGguZGF0YSksdz14KngrXypfO2lmKHc8bil7dmFyIE89TWF0aC5zcXJ0KG49dyk7aT10LU8sYT1lLU8sdT10K08sZj1lK08scj1oLmRhdGF9fXJldHVybiByfWZ1bmN0aW9uIGR0dCh0KXtpZihpc05hTih1PSt0aGlzLl94LmNhbGwobnVsbCx0KSl8fGlzTmFOKGY9K3RoaXMuX3kuY2FsbChudWxsLHQpKSlyZXR1cm4gdGhpczt2YXIgZSxuPXRoaXMuX3Jvb3QscixpLGEsbz10aGlzLl94MCxzPXRoaXMuX3kwLGM9dGhpcy5feDEsbD10aGlzLl95MSx1LGYsZCxoLHYsZyx5LGI7aWYoIW4pcmV0dXJuIHRoaXM7aWYobi5sZW5ndGgpZm9yKDs7KXtpZigodj11Pj0oZD0obytjKS8yKSk/bz1kOmM9ZCwoZz1mPj0oaD0ocytsKS8yKSk/cz1oOmw9aCxlPW4sIShuPW5beT1nPDwxfHZdKSlyZXR1cm4gdGhpcztpZighbi5sZW5ndGgpYnJlYWs7KGVbeSsxJjNdfHxlW3krMiYzXXx8ZVt5KzMmM10pJiYocj1lLGI9eSl9Zm9yKDtuLmRhdGEhPT10OylpZihpPW4sIShuPW4ubmV4dCkpcmV0dXJuIHRoaXM7cmV0dXJuKGE9bi5uZXh0KSYmZGVsZXRlIG4ubmV4dCxpPyhhP2kubmV4dD1hOmRlbGV0ZSBpLm5leHQsdGhpcyk6ZT8oYT9lW3ldPWE6ZGVsZXRlIGVbeV0sKG49ZVswXXx8ZVsxXXx8ZVsyXXx8ZVszXSkmJm49PT0oZVszXXx8ZVsyXXx8ZVsxXXx8ZVswXSkmJiFuLmxlbmd0aCYmKHI/cltiXT1uOnRoaXMuX3Jvb3Q9biksdGhpcyk6KHRoaXMuX3Jvb3Q9YSx0aGlzKX1mdW5jdGlvbiBodHQodCl7Zm9yKHZhciBlPTAsbj10Lmxlbmd0aDtlPG47KytlKXRoaXMucmVtb3ZlKHRbZV0pO3JldHVybiB0aGlzfWZ1bmN0aW9uIHB0dCgpe3JldHVybiB0aGlzLl9yb290fWZ1bmN0aW9uIHZ0dCgpe3ZhciB0PTA7cmV0dXJuIHRoaXMudmlzaXQoZnVuY3Rpb24oZSl7aWYoIWUubGVuZ3RoKWRvKyt0O3doaWxlKGU9ZS5uZXh0KX0pLHR9ZnVuY3Rpb24gZ3R0KHQpe3ZhciBlPVtdLG4scj10aGlzLl9yb290LGksYSxvLHMsYztmb3IociYmZS5wdXNoKG5ldyB2YShyLHRoaXMuX3gwLHRoaXMuX3kwLHRoaXMuX3gxLHRoaXMuX3kxKSk7bj1lLnBvcCgpOylpZighdChyPW4ubm9kZSxhPW4ueDAsbz1uLnkwLHM9bi54MSxjPW4ueTEpJiZyLmxlbmd0aCl7dmFyIGw9KGErcykvMix1PShvK2MpLzI7KGk9clszXSkmJmUucHVzaChuZXcgdmEoaSxsLHUscyxjKSksKGk9clsyXSkmJmUucHVzaChuZXcgdmEoaSxhLHUsbCxjKSksKGk9clsxXSkmJmUucHVzaChuZXcgdmEoaSxsLG8scyx1KSksKGk9clswXSkmJmUucHVzaChuZXcgdmEoaSxhLG8sbCx1KSl9cmV0dXJuIHRoaXN9ZnVuY3Rpb24geXR0KHQpe3ZhciBlPVtdLG49W10scjtmb3IodGhpcy5fcm9vdCYmZS5wdXNoKG5ldyB2YSh0aGlzLl9yb290LHRoaXMuX3gwLHRoaXMuX3kwLHRoaXMuX3gxLHRoaXMuX3kxKSk7cj1lLnBvcCgpOyl7dmFyIGk9ci5ub2RlO2lmKGkubGVuZ3RoKXt2YXIgYSxvPXIueDAscz1yLnkwLGM9ci54MSxsPXIueTEsdT0obytjKS8yLGY9KHMrbCkvMjsoYT1pWzBdKSYmZS5wdXNoKG5ldyB2YShhLG8scyx1LGYpKSwoYT1pWzFdKSYmZS5wdXNoKG5ldyB2YShhLHUscyxjLGYpKSwoYT1pWzJdKSYmZS5wdXNoKG5ldyB2YShhLG8sZix1LGwpKSwoYT1pWzNdKSYmZS5wdXNoKG5ldyB2YShhLHUsZixjLGwpKX1uLnB1c2gocil9Zm9yKDtyPW4ucG9wKCk7KXQoci5ub2RlLHIueDAsci55MCxyLngxLHIueTEpO3JldHVybiB0aGlzfWZ1bmN0aW9uIG10dCh0KXtyZXR1cm4gdFswXX1mdW5jdGlvbiBidHQodCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHRoaXMuX3g9dCx0aGlzKTp0aGlzLl94fWZ1bmN0aW9uIHh0dCh0KXtyZXR1cm4gdFsxXX1mdW5jdGlvbiBfdHQodCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHRoaXMuX3k9dCx0aGlzKTp0aGlzLl95fWZ1bmN0aW9uIG42KHQsZSxuKXt2YXIgcj1uZXcgU0UoZT09bnVsbD9tdHQ6ZSxuPT1udWxsP3h0dDpuLE5hTixOYU4sTmFOLE5hTik7cmV0dXJuIHQ9PW51bGw/cjpyLmFkZEFsbCh0KX1mdW5jdGlvbiBTRSh0LGUsbixyLGksYSl7dGhpcy5feD10LHRoaXMuX3k9ZSx0aGlzLl94MD1uLHRoaXMuX3kwPXIsdGhpcy5feDE9aSx0aGlzLl95MT1hLHRoaXMuX3Jvb3Q9dm9pZCAwfWZ1bmN0aW9uIHI2KHQpe2Zvcih2YXIgZT17ZGF0YTp0LmRhdGF9LG49ZTt0PXQubmV4dDspbj1uLm5leHQ9e2RhdGE6dC5kYXRhfTtyZXR1cm4gZX12YXIgZ2E9bjYucHJvdG90eXBlPVNFLnByb3RvdHlwZTtnYS5jb3B5PWZ1bmN0aW9uKCl7dmFyIHQ9bmV3IFNFKHRoaXMuX3gsdGhpcy5feSx0aGlzLl94MCx0aGlzLl95MCx0aGlzLl94MSx0aGlzLl95MSksZT10aGlzLl9yb290LG4scjtpZighZSlyZXR1cm4gdDtpZighZS5sZW5ndGgpcmV0dXJuIHQuX3Jvb3Q9cjYoZSksdDtmb3Iobj1be3NvdXJjZTplLHRhcmdldDp0Ll9yb290PW5ldyBBcnJheSg0KX1dO2U9bi5wb3AoKTspZm9yKHZhciBpPTA7aTw0OysraSkocj1lLnNvdXJjZVtpXSkmJihyLmxlbmd0aD9uLnB1c2goe3NvdXJjZTpyLHRhcmdldDplLnRhcmdldFtpXT1uZXcgQXJyYXkoNCl9KTplLnRhcmdldFtpXT1yNihyKSk7cmV0dXJuIHR9LGdhLmFkZD1vdHQsZ2EuYWRkQWxsPXN0dCxnYS5jb3Zlcj1jdHQsZ2EuZGF0YT1sdHQsZ2EuZXh0ZW50PXV0dCxnYS5maW5kPWZ0dCxnYS5yZW1vdmU9ZHR0LGdhLnJlbW92ZUFsbD1odHQsZ2Eucm9vdD1wdHQsZ2Euc2l6ZT12dHQsZ2EudmlzaXQ9Z3R0LGdhLnZpc2l0QWZ0ZXI9eXR0LGdhLng9YnR0LGdhLnk9X3R0O2Z1bmN0aW9uIFZhKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBMZCh0KXtyZXR1cm4odCgpLS41KSoxZS02fXZhciB3dHQ9e3ZhbHVlOmZ1bmN0aW9uKCl7fX07ZnVuY3Rpb24gaTYoKXtmb3IodmFyIHQ9MCxlPWFyZ3VtZW50cy5sZW5ndGgsbj17fSxyO3Q8ZTsrK3Qpe2lmKCEocj1hcmd1bWVudHNbdF0rIiIpfHxyIGluIG58fC9bXHMuXS8udGVzdChyKSl0aHJvdyBuZXcgRXJyb3IoImlsbGVnYWwgdHlwZTogIityKTtuW3JdPVtdfXJldHVybiBuZXcgZWIobil9ZnVuY3Rpb24gZWIodCl7dGhpcy5fPXR9ZnVuY3Rpb24gT3R0KHQsZSl7cmV0dXJuIHQudHJpbSgpLnNwbGl0KC9efFxzKy8pLm1hcChmdW5jdGlvbihuKXt2YXIgcj0iIixpPW4uaW5kZXhPZigiLiIpO2lmKGk+PTAmJihyPW4uc2xpY2UoaSsxKSxuPW4uc2xpY2UoMCxpKSksbiYmIWUuaGFzT3duUHJvcGVydHkobikpdGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIHR5cGU6ICIrbik7cmV0dXJue3R5cGU6bixuYW1lOnJ9fSl9ZWIucHJvdG90eXBlPWk2LnByb3RvdHlwZT17Y29uc3RydWN0b3I6ZWIsb246ZnVuY3Rpb24oZSxuKXt2YXIgcj10aGlzLl8saT1PdHQoZSsiIixyKSxhLG89LTEscz1pLmxlbmd0aDtpZihhcmd1bWVudHMubGVuZ3RoPDIpe2Zvcig7KytvPHM7KWlmKChhPShlPWlbb10pLnR5cGUpJiYoYT1TdHQoclthXSxlLm5hbWUpKSlyZXR1cm4gYTtyZXR1cm59aWYobiE9bnVsbCYmdHlwZW9mIG4hPSJmdW5jdGlvbiIpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIGNhbGxiYWNrOiAiK24pO2Zvcig7KytvPHM7KWlmKGE9KGU9aVtvXSkudHlwZSlyW2FdPWE2KHJbYV0sZS5uYW1lLG4pO2Vsc2UgaWYobj09bnVsbClmb3IoYSBpbiByKXJbYV09YTYoclthXSxlLm5hbWUsbnVsbCk7cmV0dXJuIHRoaXN9LGNvcHk6ZnVuY3Rpb24oKXt2YXIgZT17fSxuPXRoaXMuXztmb3IodmFyIHIgaW4gbillW3JdPW5bcl0uc2xpY2UoKTtyZXR1cm4gbmV3IGViKGUpfSxjYWxsOmZ1bmN0aW9uKGUsbil7aWYoKGE9YXJndW1lbnRzLmxlbmd0aC0yKT4wKWZvcih2YXIgcj1uZXcgQXJyYXkoYSksaT0wLGEsbztpPGE7KytpKXJbaV09YXJndW1lbnRzW2krMl07aWYoIXRoaXMuXy5oYXNPd25Qcm9wZXJ0eShlKSl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gdHlwZTogIitlKTtmb3Iobz10aGlzLl9bZV0saT0wLGE9by5sZW5ndGg7aTxhOysraSlvW2ldLnZhbHVlLmFwcGx5KG4scil9LGFwcGx5OmZ1bmN0aW9uKGUsbixyKXtpZighdGhpcy5fLmhhc093blByb3BlcnR5KGUpKXRocm93IG5ldyBFcnJvcigidW5rbm93biB0eXBlOiAiK2UpO2Zvcih2YXIgaT10aGlzLl9bZV0sYT0wLG89aS5sZW5ndGg7YTxvOysrYSlpW2FdLnZhbHVlLmFwcGx5KG4scil9fTtmdW5jdGlvbiBTdHQodCxlKXtmb3IodmFyIG49MCxyPXQubGVuZ3RoLGk7bjxyOysrbilpZigoaT10W25dKS5uYW1lPT09ZSlyZXR1cm4gaS52YWx1ZX1mdW5jdGlvbiBhNih0LGUsbil7Zm9yKHZhciByPTAsaT10Lmxlbmd0aDtyPGk7KytyKWlmKHRbcl0ubmFtZT09PWUpe3Rbcl09d3R0LHQ9dC5zbGljZSgwLHIpLmNvbmNhdCh0LnNsaWNlKHIrMSkpO2JyZWFrfXJldHVybiBuIT1udWxsJiZ0LnB1c2goe25hbWU6ZSx2YWx1ZTpufSksdH12YXIgRXR0PWk2LFJkPTAsJDA9MCxaMD0wLG82PTFlMyxuYixZMCxyYj0wLEZ1PTAsaWI9MCxIMD10eXBlb2YgcGVyZm9ybWFuY2U9PSJvYmplY3QiJiZwZXJmb3JtYW5jZS5ub3c/cGVyZm9ybWFuY2U6RGF0ZSxzNj10eXBlb2Ygd2luZG93PT0ib2JqZWN0IiYmd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZT93aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lLmJpbmQod2luZG93KTpmdW5jdGlvbih0KXtzZXRUaW1lb3V0KHQsMTcpfTtmdW5jdGlvbiBjNigpe3JldHVybiBGdXx8KHM2KE10dCksRnU9SDAubm93KCkraWIpfWZ1bmN0aW9uIE10dCgpe0Z1PTB9ZnVuY3Rpb24gRUUoKXt0aGlzLl9jYWxsPXRoaXMuX3RpbWU9dGhpcy5fbmV4dD1udWxsfUVFLnByb3RvdHlwZT1sNi5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOkVFLHJlc3RhcnQ6ZnVuY3Rpb24odCxlLG4pe2lmKHR5cGVvZiB0IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoImNhbGxiYWNrIGlzIG5vdCBhIGZ1bmN0aW9uIik7bj0obj09bnVsbD9jNigpOituKSsoZT09bnVsbD8wOitlKSwhdGhpcy5fbmV4dCYmWTAhPT10aGlzJiYoWTA/WTAuX25leHQ9dGhpczpuYj10aGlzLFkwPXRoaXMpLHRoaXMuX2NhbGw9dCx0aGlzLl90aW1lPW4sTUUoKX0sc3RvcDpmdW5jdGlvbigpe3RoaXMuX2NhbGwmJih0aGlzLl9jYWxsPW51bGwsdGhpcy5fdGltZT0xLzAsTUUoKSl9fTtmdW5jdGlvbiBsNih0LGUsbil7dmFyIHI9bmV3IEVFO3JldHVybiByLnJlc3RhcnQodCxlLG4pLHJ9ZnVuY3Rpb24ga3R0KCl7YzYoKSwrK1JkO2Zvcih2YXIgdD1uYixlO3Q7KShlPUZ1LXQuX3RpbWUpPj0wJiZ0Ll9jYWxsLmNhbGwodm9pZCAwLGUpLHQ9dC5fbmV4dDstLVJkfWZ1bmN0aW9uIHU2KCl7RnU9KHJiPUgwLm5vdygpKStpYixSZD0kMD0wO3RyeXtrdHQoKX1maW5hbGx5e1JkPTAsVHR0KCksRnU9MH19ZnVuY3Rpb24gQXR0KCl7dmFyIHQ9SDAubm93KCksZT10LXJiO2U+bzYmJihpYi09ZSxyYj10KX1mdW5jdGlvbiBUdHQoKXtmb3IodmFyIHQsZT1uYixuLHI9MS8wO2U7KWUuX2NhbGw/KHI+ZS5fdGltZSYmKHI9ZS5fdGltZSksdD1lLGU9ZS5fbmV4dCk6KG49ZS5fbmV4dCxlLl9uZXh0PW51bGwsZT10P3QuX25leHQ9bjpuYj1uKTtZMD10LE1FKHIpfWZ1bmN0aW9uIE1FKHQpe2lmKCFSZCl7JDAmJigkMD1jbGVhclRpbWVvdXQoJDApKTt2YXIgZT10LUZ1O2U+MjQ/KHQ8MS8wJiYoJDA9c2V0VGltZW91dCh1Nix0LUgwLm5vdygpLWliKSksWjAmJihaMD1jbGVhckludGVydmFsKFowKSkpOihaMHx8KHJiPUgwLm5vdygpLFowPXNldEludGVydmFsKEF0dCxvNikpLFJkPTEsczYodTYpKX19Y29uc3QgUHR0PTE2NjQ1MjUsQ3R0PTEwMTM5MDQyMjMsZjY9NDI5NDk2NzI5NjtmdW5jdGlvbiBMdHQoKXtsZXQgdD0xO3JldHVybigpPT4odD0oUHR0KnQrQ3R0KSVmNikvZjZ9ZnVuY3Rpb24gUnR0KHQpe3JldHVybiB0Lnh9ZnVuY3Rpb24gTnR0KHQpe3JldHVybiB0Lnl9dmFyIEl0dD0xMCxEdHQ9TWF0aC5QSSooMy1NYXRoLnNxcnQoNSkpO2Z1bmN0aW9uIGp0dCh0KXt2YXIgZSxuPTEscj0uMDAxLGk9MS1NYXRoLnBvdyhyLDEvMzAwKSxhPTAsbz0uNixzPW5ldyBNYXAsYz1sNihmKSxsPUV0dCgidGljayIsImVuZCIpLHU9THR0KCk7dD09bnVsbCYmKHQ9W10pO2Z1bmN0aW9uIGYoKXtkKCksbC5jYWxsKCJ0aWNrIixlKSxuPHImJihjLnN0b3AoKSxsLmNhbGwoImVuZCIsZSkpfWZ1bmN0aW9uIGQoZyl7dmFyIHksYj10Lmxlbmd0aCx4O2c9PT12b2lkIDAmJihnPTEpO2Zvcih2YXIgXz0wO188ZzsrK18pZm9yKG4rPShhLW4pKmkscy5mb3JFYWNoKGZ1bmN0aW9uKHcpe3cobil9KSx5PTA7eTxiOysreSl4PXRbeV0seC5meD09bnVsbD94LngrPXgudngqPW86KHgueD14LmZ4LHgudng9MCkseC5meT09bnVsbD94LnkrPXgudnkqPW86KHgueT14LmZ5LHgudnk9MCk7cmV0dXJuIGV9ZnVuY3Rpb24gaCgpe2Zvcih2YXIgZz0wLHk9dC5sZW5ndGgsYjtnPHk7KytnKXtpZihiPXRbZ10sYi5pbmRleD1nLGIuZnghPW51bGwmJihiLng9Yi5meCksYi5meSE9bnVsbCYmKGIueT1iLmZ5KSxpc05hTihiLngpfHxpc05hTihiLnkpKXt2YXIgeD1JdHQqTWF0aC5zcXJ0KC41K2cpLF89ZypEdHQ7Yi54PXgqTWF0aC5jb3MoXyksYi55PXgqTWF0aC5zaW4oXyl9KGlzTmFOKGIudngpfHxpc05hTihiLnZ5KSkmJihiLnZ4PWIudnk9MCl9fWZ1bmN0aW9uIHYoZyl7cmV0dXJuIGcuaW5pdGlhbGl6ZSYmZy5pbml0aWFsaXplKHQsdSksZ31yZXR1cm4gaCgpLGU9e3RpY2s6ZCxyZXN0YXJ0OmZ1bmN0aW9uKCl7cmV0dXJuIGMucmVzdGFydChmKSxlfSxzdG9wOmZ1bmN0aW9uKCl7cmV0dXJuIGMuc3RvcCgpLGV9LG5vZGVzOmZ1bmN0aW9uKGcpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PWcsaCgpLHMuZm9yRWFjaCh2KSxlKTp0fSxhbHBoYTpmdW5jdGlvbihnKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0rZyxlKTpufSxhbHBoYU1pbjpmdW5jdGlvbihnKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0rZyxlKTpyfSxhbHBoYURlY2F5OmZ1bmN0aW9uKGcpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPStnLGUpOitpfSxhbHBoYVRhcmdldDpmdW5jdGlvbihnKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT0rZyxlKTphfSx2ZWxvY2l0eURlY2F5OmZ1bmN0aW9uKGcpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPTEtZyxlKToxLW99LHJhbmRvbVNvdXJjZTpmdW5jdGlvbihnKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odT1nLHMuZm9yRWFjaCh2KSxlKTp1fSxmb3JjZTpmdW5jdGlvbihnLHkpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjE/KHk9PW51bGw/cy5kZWxldGUoZyk6cy5zZXQoZyx2KHkpKSxlKTpzLmdldChnKX0sZmluZDpmdW5jdGlvbihnLHksYil7dmFyIHg9MCxfPXQubGVuZ3RoLHcsTyxFLE0saztmb3IoYj09bnVsbD9iPTEvMDpiKj1iLHg9MDt4PF87Kyt4KU09dFt4XSx3PWctTS54LE89eS1NLnksRT13KncrTypPLEU8YiYmKGs9TSxiPUUpO3JldHVybiBrfSxvbjpmdW5jdGlvbihnLHkpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjE/KGwub24oZyx5KSxlKTpsLm9uKGcpfX19ZnVuY3Rpb24gRnR0KCl7dmFyIHQsZSxuLHIsaT1WYSgtMzApLGEsbz0xLHM9MS8wLGM9LjgxO2Z1bmN0aW9uIGwoaCl7dmFyIHYsZz10Lmxlbmd0aCx5PW42KHQsUnR0LE50dCkudmlzaXRBZnRlcihmKTtmb3Iocj1oLHY9MDt2PGc7Kyt2KWU9dFt2XSx5LnZpc2l0KGQpfWZ1bmN0aW9uIHUoKXtpZih0KXt2YXIgaCx2PXQubGVuZ3RoLGc7Zm9yKGE9bmV3IEFycmF5KHYpLGg9MDtoPHY7KytoKWc9dFtoXSxhW2cuaW5kZXhdPStpKGcsaCx0KX19ZnVuY3Rpb24gZihoKXt2YXIgdj0wLGcseSxiPTAseCxfLHc7aWYoaC5sZW5ndGgpe2Zvcih4PV89dz0wO3c8NDsrK3cpKGc9aFt3XSkmJih5PU1hdGguYWJzKGcudmFsdWUpKSYmKHYrPWcudmFsdWUsYis9eSx4Kz15KmcueCxfKz15KmcueSk7aC54PXgvYixoLnk9Xy9ifWVsc2V7Zz1oLGcueD1nLmRhdGEueCxnLnk9Zy5kYXRhLnk7ZG8gdis9YVtnLmRhdGEuaW5kZXhdO3doaWxlKGc9Zy5uZXh0KX1oLnZhbHVlPXZ9ZnVuY3Rpb24gZChoLHYsZyx5KXtpZighaC52YWx1ZSlyZXR1cm4hMDt2YXIgYj1oLngtZS54LHg9aC55LWUueSxfPXktdix3PWIqYit4Kng7aWYoXypfL2M8dylyZXR1cm4gdzxzJiYoYj09PTAmJihiPUxkKG4pLHcrPWIqYikseD09PTAmJih4PUxkKG4pLHcrPXgqeCksdzxvJiYodz1NYXRoLnNxcnQobyp3KSksZS52eCs9YipoLnZhbHVlKnIvdyxlLnZ5Kz14KmgudmFsdWUqci93KSwhMDtpZihoLmxlbmd0aHx8dz49cylyZXR1cm47KGguZGF0YSE9PWV8fGgubmV4dCkmJihiPT09MCYmKGI9TGQobiksdys9YipiKSx4PT09MCYmKHg9TGQobiksdys9eCp4KSx3PG8mJih3PU1hdGguc3FydChvKncpKSk7ZG8gaC5kYXRhIT09ZSYmKF89YVtoLmRhdGEuaW5kZXhdKnIvdyxlLnZ4Kz1iKl8sZS52eSs9eCpfKTt3aGlsZShoPWgubmV4dCl9cmV0dXJuIGwuaW5pdGlhbGl6ZT1mdW5jdGlvbihoLHYpe3Q9aCxuPXYsdSgpfSxsLnN0cmVuZ3RoPWZ1bmN0aW9uKGgpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPXR5cGVvZiBoPT0iZnVuY3Rpb24iP2g6VmEoK2gpLHUoKSxsKTppfSxsLmRpc3RhbmNlTWluPWZ1bmN0aW9uKGgpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPWgqaCxsKTpNYXRoLnNxcnQobyl9LGwuZGlzdGFuY2VNYXg9ZnVuY3Rpb24oaCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9aCpoLGwpOk1hdGguc3FydChzKX0sbC50aGV0YT1mdW5jdGlvbihoKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYz1oKmgsbCk6TWF0aC5zcXJ0KGMpfSxsfWZ1bmN0aW9uIEJ0dCh0KXtyZXR1cm4gdC5pbmRleH1mdW5jdGlvbiBkNih0LGUpe3ZhciBuPXQuZ2V0KGUpO2lmKCFuKXRocm93IG5ldyBFcnJvcigibm9kZSBub3QgZm91bmQ6ICIrZSk7cmV0dXJuIG59ZnVuY3Rpb24genR0KHQpe3ZhciBlPUJ0dCxuPWYscixpPVZhKDMwKSxhLG8scyxjLGwsdT0xO3Q9PW51bGwmJih0PVtdKTtmdW5jdGlvbiBmKHkpe3JldHVybiAxL01hdGgubWluKHNbeS5zb3VyY2UuaW5kZXhdLHNbeS50YXJnZXQuaW5kZXhdKX1mdW5jdGlvbiBkKHkpe2Zvcih2YXIgYj0wLHg9dC5sZW5ndGg7Yjx1OysrYilmb3IodmFyIF89MCx3LE8sRSxNLGssQSxQO188eDsrK18pdz10W19dLE89dy5zb3VyY2UsRT13LnRhcmdldCxNPUUueCtFLnZ4LU8ueC1PLnZ4fHxMZChsKSxrPUUueStFLnZ5LU8ueS1PLnZ5fHxMZChsKSxBPU1hdGguc3FydChNKk0rayprKSxBPShBLWFbX10pL0EqeSpyW19dLE0qPUEsayo9QSxFLnZ4LT1NKihQPWNbX10pLEUudnktPWsqUCxPLnZ4Kz1NKihQPTEtUCksTy52eSs9aypQfWZ1bmN0aW9uIGgoKXtpZihvKXt2YXIgeSxiPW8ubGVuZ3RoLHg9dC5sZW5ndGgsXz1uZXcgTWFwKG8ubWFwKChPLEUpPT5bZShPLEUsbyksT10pKSx3O2Zvcih5PTAscz1uZXcgQXJyYXkoYik7eTx4OysreSl3PXRbeV0sdy5pbmRleD15LHR5cGVvZiB3LnNvdXJjZSE9Im9iamVjdCImJih3LnNvdXJjZT1kNihfLHcuc291cmNlKSksdHlwZW9mIHcudGFyZ2V0IT0ib2JqZWN0IiYmKHcudGFyZ2V0PWQ2KF8sdy50YXJnZXQpKSxzW3cuc291cmNlLmluZGV4XT0oc1t3LnNvdXJjZS5pbmRleF18fDApKzEsc1t3LnRhcmdldC5pbmRleF09KHNbdy50YXJnZXQuaW5kZXhdfHwwKSsxO2Zvcih5PTAsYz1uZXcgQXJyYXkoeCk7eTx4OysreSl3PXRbeV0sY1t5XT1zW3cuc291cmNlLmluZGV4XS8oc1t3LnNvdXJjZS5pbmRleF0rc1t3LnRhcmdldC5pbmRleF0pO3I9bmV3IEFycmF5KHgpLHYoKSxhPW5ldyBBcnJheSh4KSxnKCl9fWZ1bmN0aW9uIHYoKXtpZihvKWZvcih2YXIgeT0wLGI9dC5sZW5ndGg7eTxiOysreSlyW3ldPStuKHRbeV0seSx0KX1mdW5jdGlvbiBnKCl7aWYobylmb3IodmFyIHk9MCxiPXQubGVuZ3RoO3k8YjsrK3kpYVt5XT0raSh0W3ldLHksdCl9cmV0dXJuIGQuaW5pdGlhbGl6ZT1mdW5jdGlvbih5LGIpe289eSxsPWIsaCgpfSxkLmxpbmtzPWZ1bmN0aW9uKHkpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PXksaCgpLGQpOnR9LGQuaWQ9ZnVuY3Rpb24oeSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9eSxkKTplfSxkLml0ZXJhdGlvbnM9ZnVuY3Rpb24oeSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9K3ksZCk6dX0sZC5zdHJlbmd0aD1mdW5jdGlvbih5KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj10eXBlb2YgeT09ImZ1bmN0aW9uIj95OlZhKCt5KSx2KCksZCk6bn0sZC5kaXN0YW5jZT1mdW5jdGlvbih5KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT10eXBlb2YgeT09ImZ1bmN0aW9uIj95OlZhKCt5KSxnKCksZCk6aX0sZH1mdW5jdGlvbiBXdHQodCxlKXt2YXIgbixyPTE7dD09bnVsbCYmKHQ9MCksZT09bnVsbCYmKGU9MCk7ZnVuY3Rpb24gaSgpe3ZhciBhLG89bi5sZW5ndGgscyxjPTAsbD0wO2ZvcihhPTA7YTxvOysrYSlzPW5bYV0sYys9cy54LGwrPXMueTtmb3IoYz0oYy9vLXQpKnIsbD0obC9vLWUpKnIsYT0wO2E8bzsrK2Epcz1uW2FdLHMueC09YyxzLnktPWx9cmV0dXJuIGkuaW5pdGlhbGl6ZT1mdW5jdGlvbihhKXtuPWF9LGkueD1mdW5jdGlvbihhKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0rYSxpKTp0fSxpLnk9ZnVuY3Rpb24oYSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9K2EsaSk6ZX0saS5zdHJlbmd0aD1mdW5jdGlvbihhKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0rYSxpKTpyfSxpfWZ1bmN0aW9uIEd0dCh0KXt2YXIgZT1WYSguMSksbixyLGk7dHlwZW9mIHQhPSJmdW5jdGlvbiImJih0PVZhKHQ9PW51bGw/MDordCkpO2Z1bmN0aW9uIGEocyl7Zm9yKHZhciBjPTAsbD1uLmxlbmd0aCx1O2M8bDsrK2MpdT1uW2NdLHUudngrPShpW2NdLXUueCkqcltjXSpzfWZ1bmN0aW9uIG8oKXtpZihuKXt2YXIgcyxjPW4ubGVuZ3RoO2ZvcihyPW5ldyBBcnJheShjKSxpPW5ldyBBcnJheShjKSxzPTA7czxjOysrcylyW3NdPWlzTmFOKGlbc109K3QobltzXSxzLG4pKT8wOitlKG5bc10scyxuKX19cmV0dXJuIGEuaW5pdGlhbGl6ZT1mdW5jdGlvbihzKXtuPXMsbygpfSxhLnN0cmVuZ3RoPWZ1bmN0aW9uKHMpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPXR5cGVvZiBzPT0iZnVuY3Rpb24iP3M6VmEoK3MpLG8oKSxhKTplfSxhLng9ZnVuY3Rpb24ocyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9dHlwZW9mIHM9PSJmdW5jdGlvbiI/czpWYSgrcyksbygpLGEpOnR9LGF9ZnVuY3Rpb24gJHR0KHQpe3ZhciBlPVZhKC4xKSxuLHIsaTt0eXBlb2YgdCE9ImZ1bmN0aW9uIiYmKHQ9VmEodD09bnVsbD8wOit0KSk7ZnVuY3Rpb24gYShzKXtmb3IodmFyIGM9MCxsPW4ubGVuZ3RoLHU7YzxsOysrYyl1PW5bY10sdS52eSs9KGlbY10tdS55KSpyW2NdKnN9ZnVuY3Rpb24gbygpe2lmKG4pe3ZhciBzLGM9bi5sZW5ndGg7Zm9yKHI9bmV3IEFycmF5KGMpLGk9bmV3IEFycmF5KGMpLHM9MDtzPGM7KytzKXJbc109aXNOYU4oaVtzXT0rdChuW3NdLHMsbikpPzA6K2UobltzXSxzLG4pfX1yZXR1cm4gYS5pbml0aWFsaXplPWZ1bmN0aW9uKHMpe249cyxvKCl9LGEuc3RyZW5ndGg9ZnVuY3Rpb24ocyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9dHlwZW9mIHM9PSJmdW5jdGlvbiI/czpWYSgrcyksbygpLGEpOmV9LGEueT1mdW5jdGlvbihzKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD10eXBlb2Ygcz09ImZ1bmN0aW9uIj9zOlZhKCtzKSxvKCksYSk6dH0sYX12YXIgWnR0PWZ1bmN0aW9uKHQsZSl7dmFyIG49e307Zm9yKHZhciByIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscikmJmUuaW5kZXhPZihyKTwwJiYobltyXT10W3JdKTtpZih0IT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIGk9MCxyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCk7aTxyLmxlbmd0aDtpKyspZS5pbmRleE9mKHJbaV0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh0LHJbaV0pJiYobltyW2ldXT10W3JbaV1dKTtyZXR1cm4gbn07Y29uc3QgWXR0PXtqb2ludDohMH0sSHR0PXt0eXBlOiJsaW5rIixheGlzOiExLGxlZ2VuZDohMSxlbmNvZGU6e3g6W3Q9PnQuc291cmNlLngsdD0+dC50YXJnZXQueF0seTpbdD0+dC5zb3VyY2UueSx0PT50LnRhcmdldC55XX0sc3R5bGU6e3N0cm9rZToiIzk5OSIsc3Ryb2tlT3BhY2l0eTouNn19LFZ0dD17dHlwZToicG9pbnQiLGF4aXM6ITEsbGVnZW5kOiExLGVuY29kZTp7eDoieCIseToieSIsc2l6ZTo1LGNvbG9yOiJncm91cCIsc2hhcGU6InBvaW50In0sc3R5bGU6e3N0cm9rZToiI2ZmZiJ9fSxYdHQ9e3RleHQ6IiJ9O2Z1bmN0aW9uIFV0dCh0LGUsbil7Y29uc3R7bm9kZXM6cixsaW5rczppfT10LHtqb2ludDphLG5vZGVTdHJlbmd0aDpvLGxpbmtTdHJlbmd0aDpzfT1lLHtub2RlS2V5OmM9dj0+di5pZCxsaW5rS2V5Omw9dj0+di5pZH09bix1PUZ0dCgpLGY9enR0KGkpLmlkKE9zKGwpKTt0eXBlb2Ygbz09ImZ1bmN0aW9uIiYmdS5zdHJlbmd0aChvKSx0eXBlb2Ygcz09ImZ1bmN0aW9uIiYmZi5zdHJlbmd0aChzKTtjb25zdCBkPWp0dChyKS5mb3JjZSgibGluayIsZikuZm9yY2UoImNoYXJnZSIsdSk7YT9kLmZvcmNlKCJjZW50ZXIiLFd0dCgpKTpkLmZvcmNlKCJ4IixHdHQoKSkuZm9yY2UoInkiLCR0dCgpKSxkLnN0b3AoKTtjb25zdCBoPU1hdGguY2VpbChNYXRoLmxvZyhkLmFscGhhTWluKCkpL01hdGgubG9nKDEtZC5hbHBoYURlY2F5KCkpKTtmb3IobGV0IHY9MDt2PGg7disrKWQudGljaygpO3JldHVybntub2Rlc0RhdGE6cixsaW5rc0RhdGE6aX19Y29uc3QgaDY9dD0+e2NvbnN0e2RhdGE6ZSxlbmNvZGU6bj17fSxzY2FsZTpyLHN0eWxlOmk9e30sbGF5b3V0OmE9e30sbm9kZUxhYmVsczpvPVtdLGxpbmtMYWJlbHM6cz1bXSxhbmltYXRlOmM9e30sdG9vbHRpcDpsPXt9fT10LHtub2RlS2V5OnU9RT0+RS5pZCxsaW5rS2V5OmY9RT0+RS5pZH09bixkPVp0dChuLFsibm9kZUtleSIsImxpbmtLZXkiXSksaD1PYmplY3QuYXNzaWduKHtub2RlS2V5OnUsbGlua0tleTpmfSxkKSx2PSR0KGgsIm5vZGUiKSxnPSR0KGgsImxpbmsiKSx7bGlua3M6eSxub2RlczpifT1QTyhlLGgpLHtub2Rlc0RhdGE6eCxsaW5rc0RhdGE6X309VXR0KHtsaW5rczp5LG5vZGVzOmJ9LG10KHt9LFl0dCxhKSxoKSx3PXhzKGwsImxpbmsiLHtpdGVtczpbRT0+KHtuYW1lOiJzb3VyY2UiLHZhbHVlOk9zKGYpKEUuc291cmNlKX0pLEU9Pih7bmFtZToidGFyZ2V0Iix2YWx1ZTpPcyhmKShFLnRhcmdldCl9KV19KSxPPXhzKGwsIm5vZGUiLHtpdGVtczpbRT0+KHtuYW1lOiJrZXkiLHZhbHVlOk9zKHUpKEUpfSldfSwhMCk7cmV0dXJuW210KHt9LEh0dCx7ZGF0YTpfLGVuY29kZTpnLGxhYmVsczpzLHN0eWxlOiR0KGksImxpbmsiKSx0b29sdGlwOncsYW5pbWF0ZTpfcyhjLCJsaW5rIil9KSxtdCh7fSxWdHQse2RhdGE6eCxlbmNvZGU6T2JqZWN0LmFzc2lnbih7fSx2KSxzY2FsZTpyLHN0eWxlOiR0KGksIm5vZGUiKSx0b29sdGlwOk8sbGFiZWxzOltPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sWHR0KSwkdChpLCJsYWJlbCIpKSwuLi5vXSxhbmltYXRlOl9zKGMsImxpbmsiKX0pXX07aDYucHJvcHM9e307ZnVuY3Rpb24gcXR0KHQsZSl7cmV0dXJuIHQucGFyZW50PT09ZS5wYXJlbnQ/MToyfWZ1bmN0aW9uIGtFKHQpe3ZhciBlPXQuY2hpbGRyZW47cmV0dXJuIGU/ZVswXTp0LnR9ZnVuY3Rpb24gQUUodCl7dmFyIGU9dC5jaGlsZHJlbjtyZXR1cm4gZT9lW2UubGVuZ3RoLTFdOnQudH1mdW5jdGlvbiBLdHQodCxlLG4pe3ZhciByPW4vKGUuaS10LmkpO2UuYy09cixlLnMrPW4sdC5jKz1yLGUueis9bixlLm0rPW59ZnVuY3Rpb24gUXR0KHQpe2Zvcih2YXIgZT0wLG49MCxyPXQuY2hpbGRyZW4saT1yLmxlbmd0aCxhOy0taT49MDspYT1yW2ldLGEueis9ZSxhLm0rPWUsZSs9YS5zKyhuKz1hLmMpfWZ1bmN0aW9uIEp0dCh0LGUsbil7cmV0dXJuIHQuYS5wYXJlbnQ9PT1lLnBhcmVudD90LmE6bn1mdW5jdGlvbiBhYih0LGUpe3RoaXMuXz10LHRoaXMucGFyZW50PW51bGwsdGhpcy5jaGlsZHJlbj1udWxsLHRoaXMuQT1udWxsLHRoaXMuYT10aGlzLHRoaXMuej0wLHRoaXMubT0wLHRoaXMuYz0wLHRoaXMucz0wLHRoaXMudD1udWxsLHRoaXMuaT1lfWFiLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKG1kLnByb3RvdHlwZSk7ZnVuY3Rpb24gdGV0KHQpe2Zvcih2YXIgZT1uZXcgYWIodCwwKSxuLHI9W2VdLGksYSxvLHM7bj1yLnBvcCgpOylpZihhPW4uXy5jaGlsZHJlbilmb3Iobi5jaGlsZHJlbj1uZXcgQXJyYXkocz1hLmxlbmd0aCksbz1zLTE7bz49MDstLW8pci5wdXNoKGk9bi5jaGlsZHJlbltvXT1uZXcgYWIoYVtvXSxvKSksaS5wYXJlbnQ9bjtyZXR1cm4oZS5wYXJlbnQ9bmV3IGFiKG51bGwsMCkpLmNoaWxkcmVuPVtlXSxlfWZ1bmN0aW9uIGVldCgpe3ZhciB0PXF0dCxlPTEsbj0xLHI9bnVsbDtmdW5jdGlvbiBpKGwpe3ZhciB1PXRldChsKTtpZih1LmVhY2hBZnRlcihhKSx1LnBhcmVudC5tPS11LnosdS5lYWNoQmVmb3JlKG8pLHIpbC5lYWNoQmVmb3JlKGMpO2Vsc2V7dmFyIGY9bCxkPWwsaD1sO2wuZWFjaEJlZm9yZShmdW5jdGlvbih4KXt4Lng8Zi54JiYoZj14KSx4Lng+ZC54JiYoZD14KSx4LmRlcHRoPmguZGVwdGgmJihoPXgpfSk7dmFyIHY9Zj09PWQ/MTp0KGYsZCkvMixnPXYtZi54LHk9ZS8oZC54K3YrZyksYj1uLyhoLmRlcHRofHwxKTtsLmVhY2hCZWZvcmUoZnVuY3Rpb24oeCl7eC54PSh4LngrZykqeSx4Lnk9eC5kZXB0aCpifSl9cmV0dXJuIGx9ZnVuY3Rpb24gYShsKXt2YXIgdT1sLmNoaWxkcmVuLGY9bC5wYXJlbnQuY2hpbGRyZW4sZD1sLmk/ZltsLmktMV06bnVsbDtpZih1KXtRdHQobCk7dmFyIGg9KHVbMF0ueit1W3UubGVuZ3RoLTFdLnopLzI7ZD8obC56PWQueit0KGwuXyxkLl8pLGwubT1sLnotaCk6bC56PWh9ZWxzZSBkJiYobC56PWQueit0KGwuXyxkLl8pKTtsLnBhcmVudC5BPXMobCxkLGwucGFyZW50LkF8fGZbMF0pfWZ1bmN0aW9uIG8obCl7bC5fLng9bC56K2wucGFyZW50Lm0sbC5tKz1sLnBhcmVudC5tfWZ1bmN0aW9uIHMobCx1LGYpe2lmKHUpe2Zvcih2YXIgZD1sLGg9bCx2PXUsZz1kLnBhcmVudC5jaGlsZHJlblswXSx5PWQubSxiPWgubSx4PXYubSxfPWcubSx3O3Y9QUUodiksZD1rRShkKSx2JiZkOylnPWtFKGcpLGg9QUUoaCksaC5hPWwsdz12LnoreC1kLnoteSt0KHYuXyxkLl8pLHc+MCYmKEt0dChKdHQodixsLGYpLGwsdykseSs9dyxiKz13KSx4Kz12Lm0seSs9ZC5tLF8rPWcubSxiKz1oLm07diYmIUFFKGgpJiYoaC50PXYsaC5tKz14LWIpLGQmJiFrRShnKSYmKGcudD1kLGcubSs9eS1fLGY9bCl9cmV0dXJuIGZ9ZnVuY3Rpb24gYyhsKXtsLngqPWUsbC55PWwuZGVwdGgqbn1yZXR1cm4gaS5zZXBhcmF0aW9uPWZ1bmN0aW9uKGwpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PWwsaSk6dH0saS5zaXplPWZ1bmN0aW9uKGwpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPSExLGU9K2xbMF0sbj0rbFsxXSxpKTpyP251bGw6W2Usbl19LGkubm9kZVNpemU9ZnVuY3Rpb24obCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9ITAsZT0rbFswXSxuPStsWzFdLGkpOnI/W2Usbl06bnVsbH0saX1mdW5jdGlvbiBuZXQodCxlKXtyZXR1cm4gdC5wYXJlbnQ9PT1lLnBhcmVudD8xOjJ9ZnVuY3Rpb24gcmV0KHQpe3JldHVybiB0LnJlZHVjZShpZXQsMCkvdC5sZW5ndGh9ZnVuY3Rpb24gaWV0KHQsZSl7cmV0dXJuIHQrZS54fWZ1bmN0aW9uIGFldCh0KXtyZXR1cm4gMSt0LnJlZHVjZShvZXQsMCl9ZnVuY3Rpb24gb2V0KHQsZSl7cmV0dXJuIE1hdGgubWF4KHQsZS55KX1mdW5jdGlvbiBzZXQodCl7Zm9yKHZhciBlO2U9dC5jaGlsZHJlbjspdD1lWzBdO3JldHVybiB0fWZ1bmN0aW9uIGNldCh0KXtmb3IodmFyIGU7ZT10LmNoaWxkcmVuOyl0PWVbZS5sZW5ndGgtMV07cmV0dXJuIHR9ZnVuY3Rpb24gdWV0KCl7dmFyIHQ9bmV0LGU9MSxuPTEscj0hMTtmdW5jdGlvbiBpKGEpe3ZhciBvLHM9MDthLmVhY2hBZnRlcihmdW5jdGlvbihkKXt2YXIgaD1kLmNoaWxkcmVuO2g/KGQueD1yZXQoaCksZC55PWFldChoKSk6KGQueD1vP3MrPXQoZCxvKTowLGQueT0wLG89ZCl9KTt2YXIgYz1zZXQoYSksbD1jZXQoYSksdT1jLngtdChjLGwpLzIsZj1sLngrdChsLGMpLzI7cmV0dXJuIGEuZWFjaEFmdGVyKHI/ZnVuY3Rpb24oZCl7ZC54PShkLngtYS54KSplLGQueT0oYS55LWQueSkqbn06ZnVuY3Rpb24oZCl7ZC54PShkLngtdSkvKGYtdSkqZSxkLnk9KDEtKGEueT9kLnkvYS55OjEpKSpufSl9cmV0dXJuIGkuc2VwYXJhdGlvbj1mdW5jdGlvbihhKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1hLGkpOnR9LGkuc2l6ZT1mdW5jdGlvbihhKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0hMSxlPSthWzBdLG49K2FbMV0saSk6cj9udWxsOltlLG5dfSxpLm5vZGVTaXplPWZ1bmN0aW9uKGEpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPSEwLGU9K2FbMF0sbj0rYVsxXSxpKTpyP1tlLG5dOm51bGx9LGl9Y29uc3QgcDY9dD0+ZT0+bj0+e2NvbnN0e2ZpZWxkOnI9InZhbHVlIixub2RlU2l6ZTppLHNlcGFyYXRpb246YSxzb3J0Qnk6byxhczpzPVsieCIsInkiXX09ZSxbYyxsXT1zLHU9eWQobix2PT52LmNoaWxkcmVuKS5zdW0odj0+dltyXSkuc29ydChvKSxmPXQoKTtmLnNpemUoWzEsMV0pLGkmJmYubm9kZVNpemUoaSksYSYmZi5zZXBhcmF0aW9uKGEpLGYodSk7Y29uc3QgZD1bXTt1LmVhY2godj0+e3ZbY109di54LHZbbF09di55LHYubmFtZT12LmRhdGEubmFtZSxkLnB1c2godil9KTtjb25zdCBoPXUubGlua3MoKTtyZXR1cm4gaC5mb3JFYWNoKHY9Pnt2W2NdPVt2LnNvdXJjZVtjXSx2LnRhcmdldFtjXV0sdltsXT1bdi5zb3VyY2VbbF0sdi50YXJnZXRbbF1dfSkse25vZGVzOmQsZWRnZXM6aH19LHY2PXQ9PnA2KHVldCkodCk7djYucHJvcHM9e307Y29uc3QgZzY9dD0+cDYoZWV0KSh0KTtnNi5wcm9wcz17fTtjb25zdCBmZXQ9e3NvcnRCeToodCxlKT0+ZS52YWx1ZS10LnZhbHVlfSxkZXQ9e2F4aXM6ITEsbGVnZW5kOiExLHR5cGU6InBvaW50IixlbmNvZGU6e3g6IngiLHk6InkiLHNpemU6MixzaGFwZToicG9pbnQifX0saGV0PXt0eXBlOiJsaW5rIixlbmNvZGU6e3g6IngiLHk6InkiLHNoYXBlOiJzbW9vdGgifX0scGV0PXt0ZXh0OiIiLGZvbnRTaXplOjEwfSx5Nj10PT57Y29uc3R7ZGF0YTplLGVuY29kZTpuPXt9LHNjYWxlOnI9e30sc3R5bGU6aT17fSxsYXlvdXQ6YT17fSxub2RlTGFiZWxzOm89W10sbGlua0xhYmVsczpzPVtdLGFuaW1hdGU6Yz17fSx0b29sdGlwOmw9e319PXQsdT1uPT1udWxsP3ZvaWQgMDpuLnZhbHVlLHtub2RlczpmLGVkZ2VzOmR9PWc2KE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGZldCksYSkse2ZpZWxkOnV9KSkoZSksaD14cyhsLCJub2RlIix7dGl0bGU6Im5hbWUiLGl0ZW1zOlsidmFsdWUiXX0sITApLHY9eHMobCwibGluayIse3RpdGxlOiIiLGl0ZW1zOltnPT4oe25hbWU6InNvdXJjZSIsdmFsdWU6Zy5zb3VyY2UubmFtZX0pLGc9Pih7bmFtZToidGFyZ2V0Iix2YWx1ZTpnLnRhcmdldC5uYW1lfSldfSk7cmV0dXJuW210KHt9LGhldCx7ZGF0YTpkLGVuY29kZTokdChuLCJsaW5rIiksc2NhbGU6JHQociwibGluayIpLGxhYmVsczpzLHN0eWxlOk9iamVjdC5hc3NpZ24oe3N0cm9rZToiIzk5OSJ9LCR0KGksImxpbmsiKSksdG9vbHRpcDp2LGFuaW1hdGU6X3MoYywibGluayIpfSksbXQoe30sZGV0LHtkYXRhOmYsc2NhbGU6JHQociwibm9kZSIpLGVuY29kZTokdChuLCJub2RlIiksbGFiZWxzOltPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30scGV0KSwkdChpLCJsYWJlbCIpKSwuLi5vXSxzdHlsZTpPYmplY3QuYXNzaWduKHt9LCR0KGksIm5vZGUiKSksdG9vbHRpcDpoLGFuaW1hdGU6X3MoYywibm9kZSIpfSldfTt5Ni5wcm9wcz17fTt2YXIgdmV0PTE2NjQ1MjUsZ2V0PTEwMTM5MDQyMjMsbTY9NDI5NDk2NzI5NjtmdW5jdGlvbiB5ZXQoKXt2YXIgdD0xO3JldHVybiBmdW5jdGlvbigpe3JldHVybih0PSh2ZXQqdCtnZXQpJW02KS9tNn19dmFyIG1ldD1wdCg1MjY3Nyk7ZnVuY3Rpb24gYmV0KHQpe3JldHVybiBtZXQodCk9PT0ib2JqZWN0IiYmImxlbmd0aCJpbiB0P3Q6QXJyYXkuZnJvbSh0KX1mdW5jdGlvbiB4ZXQodCxlKXtmb3IodmFyIG49dC5sZW5ndGgscixpO247KWk9ZSgpKm4tLXwwLHI9dFtuXSx0W25dPXRbaV0sdFtpXT1yO3JldHVybiB0fWZ1bmN0aW9uIEtvdCh0KXtyZXR1cm4gYjYodCxsY2coKSl9ZnVuY3Rpb24gYjYodCxlKXtmb3IodmFyIG49MCxyPSh0PXhldChBcnJheS5mcm9tKHQpLGUpKS5sZW5ndGgsaT1bXSxhLG87bjxyOylhPXRbbl0sbyYmeDYobyxhKT8rK246KG89d2V0KGk9X2V0KGksYSkpLG49MCk7cmV0dXJuIG99ZnVuY3Rpb24gX2V0KHQsZSl7dmFyIG4scjtpZihURShlLHQpKXJldHVybltlXTtmb3Iobj0wO248dC5sZW5ndGg7KytuKWlmKG9iKGUsdFtuXSkmJlRFKFYwKHRbbl0sZSksdCkpcmV0dXJuW3Rbbl0sZV07Zm9yKG49MDtuPHQubGVuZ3RoLTE7KytuKWZvcihyPW4rMTtyPHQubGVuZ3RoOysrcilpZihvYihWMCh0W25dLHRbcl0pLGUpJiZvYihWMCh0W25dLGUpLHRbcl0pJiZvYihWMCh0W3JdLGUpLHRbbl0pJiZURShfNih0W25dLHRbcl0sZSksdCkpcmV0dXJuW3Rbbl0sdFtyXSxlXTt0aHJvdyBuZXcgRXJyb3J9ZnVuY3Rpb24gb2IodCxlKXt2YXIgbj10LnItZS5yLHI9ZS54LXQueCxpPWUueS10Lnk7cmV0dXJuIG48MHx8bipuPHIqcitpKml9ZnVuY3Rpb24geDYodCxlKXt2YXIgbj10LnItZS5yK01hdGgubWF4KHQucixlLnIsMSkqMWUtOSxyPWUueC10LngsaT1lLnktdC55O3JldHVybiBuPjAmJm4qbj5yKnIraSppfWZ1bmN0aW9uIFRFKHQsZSl7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDsrK24paWYoIXg2KHQsZVtuXSkpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gd2V0KHQpe3N3aXRjaCh0Lmxlbmd0aCl7Y2FzZSAxOnJldHVybiBPZXQodFswXSk7Y2FzZSAyOnJldHVybiBWMCh0WzBdLHRbMV0pO2Nhc2UgMzpyZXR1cm4gXzYodFswXSx0WzFdLHRbMl0pfX1mdW5jdGlvbiBPZXQodCl7cmV0dXJue3g6dC54LHk6dC55LHI6dC5yfX1mdW5jdGlvbiBWMCh0LGUpe3ZhciBuPXQueCxyPXQueSxpPXQucixhPWUueCxvPWUueSxzPWUucixjPWEtbixsPW8tcix1PXMtaSxmPU1hdGguc3FydChjKmMrbCpsKTtyZXR1cm57eDoobithK2MvZip1KS8yLHk6KHIrbytsL2YqdSkvMixyOihmK2krcykvMn19ZnVuY3Rpb24gXzYodCxlLG4pe3ZhciByPXQueCxpPXQueSxhPXQucixvPWUueCxzPWUueSxjPWUucixsPW4ueCx1PW4ueSxmPW4ucixkPXItbyxoPXItbCx2PWktcyxnPWktdSx5PWMtYSxiPWYtYSx4PXIqcitpKmktYSphLF89eC1vKm8tcypzK2MqYyx3PXgtbCpsLXUqdStmKmYsTz1oKnYtZCpnLEU9KHYqdy1nKl8pLyhPKjIpLXIsTT0oZyp5LXYqYikvTyxrPShoKl8tZCp3KS8oTyoyKS1pLEE9KGQqYi1oKnkpL08sUD1NKk0rQSpBLTEsQz0yKihhK0UqTStrKkEpLE49RSpFK2sqay1hKmEsTD0tKE1hdGguYWJzKFApPjFlLTY/KEMrTWF0aC5zcXJ0KEMqQy00KlAqTikpLygyKlApOk4vQyk7cmV0dXJue3g6citFK00qTCx5OmkraytBKkwscjpMfX1mdW5jdGlvbiB3Nih0LGUsbil7dmFyIHI9dC54LWUueCxpLGEsbz10LnktZS55LHMsYyxsPXIqcitvKm87bD8oYT1lLnIrbi5yLGEqPWEsYz10LnIrbi5yLGMqPWMsYT5jPyhpPShsK2MtYSkvKDIqbCkscz1NYXRoLnNxcnQoTWF0aC5tYXgoMCxjL2wtaSppKSksbi54PXQueC1pKnItcypvLG4ueT10LnktaSpvK3Mqcik6KGk9KGwrYS1jKS8oMipsKSxzPU1hdGguc3FydChNYXRoLm1heCgwLGEvbC1pKmkpKSxuLng9ZS54K2kqci1zKm8sbi55PWUueStpKm8rcypyKSk6KG4ueD1lLngrbi5yLG4ueT1lLnkpfWZ1bmN0aW9uIE82KHQsZSl7dmFyIG49dC5yK2Uuci0xZS02LHI9ZS54LXQueCxpPWUueS10Lnk7cmV0dXJuIG4+MCYmbipuPnIqcitpKml9ZnVuY3Rpb24gUzYodCl7dmFyIGU9dC5fLG49dC5uZXh0Ll8scj1lLnIrbi5yLGk9KGUueCpuLnIrbi54KmUucikvcixhPShlLnkqbi5yK24ueSplLnIpL3I7cmV0dXJuIGkqaSthKmF9ZnVuY3Rpb24gc2IodCl7dGhpcy5fPXQsdGhpcy5uZXh0PW51bGwsdGhpcy5wcmV2aW91cz1udWxsfWZ1bmN0aW9uIEU2KHQsZSl7aWYoIShhPSh0PWJldCh0KSkubGVuZ3RoKSlyZXR1cm4gMDt2YXIgbixyLGksYSxvLHMsYyxsLHUsZixkO2lmKG49dFswXSxuLng9MCxuLnk9MCwhKGE+MSkpcmV0dXJuIG4ucjtpZihyPXRbMV0sbi54PS1yLnIsci54PW4ucixyLnk9MCwhKGE+MikpcmV0dXJuIG4ucityLnI7dzYocixuLGk9dFsyXSksbj1uZXcgc2Iobikscj1uZXcgc2IociksaT1uZXcgc2IoaSksbi5uZXh0PWkucHJldmlvdXM9cixyLm5leHQ9bi5wcmV2aW91cz1pLGkubmV4dD1yLnByZXZpb3VzPW47dDpmb3IoYz0zO2M8YTsrK2Mpe3c2KG4uXyxyLl8saT10W2NdKSxpPW5ldyBzYihpKSxsPXIubmV4dCx1PW4ucHJldmlvdXMsZj1yLl8ucixkPW4uXy5yO2RvIGlmKGY8PWQpe2lmKE82KGwuXyxpLl8pKXtyPWwsbi5uZXh0PXIsci5wcmV2aW91cz1uLC0tYztjb250aW51ZSB0fWYrPWwuXy5yLGw9bC5uZXh0fWVsc2V7aWYoTzYodS5fLGkuXykpe249dSxuLm5leHQ9cixyLnByZXZpb3VzPW4sLS1jO2NvbnRpbnVlIHR9ZCs9dS5fLnIsdT11LnByZXZpb3VzfXdoaWxlKGwhPT11Lm5leHQpO2ZvcihpLnByZXZpb3VzPW4saS5uZXh0PXIsbi5uZXh0PXIucHJldmlvdXM9cj1pLG89UzYobik7KGk9aS5uZXh0KSE9PXI7KShzPVM2KGkpKTxvJiYobj1pLG89cyk7cj1uLm5leHR9Zm9yKG49W3IuX10saT1yOyhpPWkubmV4dCkhPT1yOyluLnB1c2goaS5fKTtmb3IoaT1iNihuLGUpLGM9MDtjPGE7KytjKW49dFtjXSxuLngtPWkueCxuLnktPWkueTtyZXR1cm4gaS5yfWZ1bmN0aW9uIFFvdCh0KXtyZXR1cm4gRTYodCxsY2coKSksdH1mdW5jdGlvbiBFZXQodCl7cmV0dXJuIE1hdGguc3FydCh0LnZhbHVlKX1mdW5jdGlvbiBNZXQoKXt2YXIgdD1udWxsLGU9MSxuPTEscj1EdTtmdW5jdGlvbiBpKGEpe3ZhciBvPXlldCgpO3JldHVybiBhLng9ZS8yLGEueT1uLzIsdD9hLmVhY2hCZWZvcmUoTTYodCkpLmVhY2hBZnRlcihQRShyLC41LG8pKS5lYWNoQmVmb3JlKGs2KDEpKTphLmVhY2hCZWZvcmUoTTYoRWV0KSkuZWFjaEFmdGVyKFBFKER1LDEsbykpLmVhY2hBZnRlcihQRShyLGEuci9NYXRoLm1pbihlLG4pLG8pKS5lYWNoQmVmb3JlKGs2KE1hdGgubWluKGUsbikvKDIqYS5yKSkpLGF9cmV0dXJuIGkucmFkaXVzPWZ1bmN0aW9uKGEpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PVMxKGEpLGkpOnR9LGkuc2l6ZT1mdW5jdGlvbihhKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT0rYVswXSxuPSthWzFdLGkpOltlLG5dfSxpLnBhZGRpbmc9ZnVuY3Rpb24oYSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9dHlwZW9mIGE9PSJmdW5jdGlvbiI/YTpFZCgrYSksaSk6cn0saX1mdW5jdGlvbiBNNih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7ZS5jaGlsZHJlbnx8KGUucj1NYXRoLm1heCgwLCt0KGUpfHwwKSl9fWZ1bmN0aW9uIFBFKHQsZSxuKXtyZXR1cm4gZnVuY3Rpb24ocil7aWYoaT1yLmNoaWxkcmVuKXt2YXIgaSxhLG89aS5sZW5ndGgscz10KHIpKmV8fDAsYztpZihzKWZvcihhPTA7YTxvOysrYSlpW2FdLnIrPXM7aWYoYz1FNihpLG4pLHMpZm9yKGE9MDthPG87KythKWlbYV0uci09cztyLnI9YytzfX19ZnVuY3Rpb24gazYodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciBuPWUucGFyZW50O2Uucio9dCxuJiYoZS54PW4ueCt0KmUueCxlLnk9bi55K3QqZS55KX19dmFyIGtldD1mdW5jdGlvbih0LGUpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiZlLmluZGV4T2Yocik8MCYmKG5bcl09dFtyXSk7aWYodCE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBpPTAscj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2k8ci5sZW5ndGg7aSsrKWUuaW5kZXhPZihyW2ldKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodCxyW2ldKSYmKG5bcltpXV09dFtyW2ldXSk7cmV0dXJuIG59O2NvbnN0IEFldD0odCxlKT0+KHtzaXplOlt0LGVdLHBhZGRpbmc6MCxzb3J0OihuLHIpPT5yLnZhbHVlLW4udmFsdWV9KSxUZXQ9KHQsZSxuKT0+KHt0eXBlOiJwb2ludCIsYXhpczohMSxsZWdlbmQ6ITEsc2NhbGU6e3g6e2RvbWFpbjpbMCx0XX0seTp7ZG9tYWluOlswLGVdfSxzaXplOnt0eXBlOiJpZGVudGl0eSJ9fSxlbmNvZGU6e3g6IngiLHk6InkiLHNpemU6InIiLHNoYXBlOiJwb2ludCJ9LHN0eWxlOntmaWxsOm4uY29sb3I/dm9pZCAwOnI9PnIuaGVpZ2h0PT09MD8iI2RkZCI6IiNmZmYiLHN0cm9rZTpuLmNvbG9yP3ZvaWQgMDpyPT5yLmhlaWdodD09PTA/IiI6IiMwMDAifX0pLFBldD17dGV4dDoiIixwb3NpdGlvbjoiaW5zaWRlIix0ZXh0T3ZlcmZsb3c6ImNsaXAiLHdvcmRXcmFwOiEwLG1heExpbmVzOjEsd29yZFdyYXBXaWR0aDp0PT50LnIqMn0sQ2V0PXt0aXRsZTp0PT50LmRhdGEubmFtZSxpdGVtczpbe2ZpZWxkOiJ2YWx1ZSJ9XX0sTGV0PSh0LGUsbik9Pntjb25zdHt2YWx1ZTpyfT1uLGk9TnIodCk/T1MoKS5wYXRoKGUucGF0aCkodCk6eWQodCk7cmV0dXJuIHI/aS5zdW0oYT0+T3MocikoYSkpLnNvcnQoZS5zb3J0KTppLmNvdW50KCksTWV0KCkuc2l6ZShlLnNpemUpLnBhZGRpbmcoZS5wYWRkaW5nKShpKSxpLmRlc2NlbmRhbnRzKCl9LEE2PSh0LGUpPT57Y29uc3R7d2lkdGg6bixoZWlnaHQ6cn09ZSx7ZGF0YTppLGVuY29kZTphPXt9LHNjYWxlOm89e30sc3R5bGU6cz17fSxsYXlvdXQ6Yz17fSxsYWJlbHM6bD1bXSx0b29sdGlwOnU9e319PXQsZj1rZXQodCxbImRhdGEiLCJlbmNvZGUiLCJzY2FsZSIsInN0eWxlIiwibGF5b3V0IiwibGFiZWxzIiwidG9vbHRpcCJdKSxkPVRldChuLHIsYSksaD1MZXQoaSxtdCh7fSxBZXQobixyKSxjKSxtdCh7fSxkLmVuY29kZSxhKSksdj0kdChzLCJsYWJlbCIpO3JldHVybiBtdCh7fSxkLE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7ZGF0YTpoLGVuY29kZTphLHNjYWxlOm8sc3R5bGU6cyxsYWJlbHM6W09iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxQZXQpLHYpLC4uLmxdfSxmKSx7dG9vbHRpcDpxbSh1LENldCksYXhpczohMX0pKX07QTYucHJvcHM9e307ZnVuY3Rpb24gUmV0KHQpe3JldHVybiB0LnRhcmdldC5kZXB0aH1mdW5jdGlvbiBOZXQodCl7cmV0dXJuIHQuZGVwdGh9ZnVuY3Rpb24gSWV0KHQsZSl7cmV0dXJuIGUtMS10LmhlaWdodH1mdW5jdGlvbiBjYih0LGUpe3JldHVybiB0LnNvdXJjZUxpbmtzLmxlbmd0aD90LmRlcHRoOmUtMX1mdW5jdGlvbiBEZXQodCl7cmV0dXJuIHQudGFyZ2V0TGlua3MubGVuZ3RoP3QuZGVwdGg6dC5zb3VyY2VMaW5rcy5sZW5ndGg/WmEodC5zb3VyY2VMaW5rcyxSZXQpLTE6MH1mdW5jdGlvbiBsYih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gVDYodCxlKXtyZXR1cm4gdWIodC5zb3VyY2UsZS5zb3VyY2UpfHx0LmluZGV4LWUuaW5kZXh9ZnVuY3Rpb24gUDYodCxlKXtyZXR1cm4gdWIodC50YXJnZXQsZS50YXJnZXQpfHx0LmluZGV4LWUuaW5kZXh9ZnVuY3Rpb24gdWIodCxlKXtyZXR1cm4gdC55MC1lLnkwfWZ1bmN0aW9uIENFKHQpe3JldHVybiB0LnZhbHVlfWZ1bmN0aW9uIGpldCh0KXtyZXR1cm4gdC5pbmRleH1mdW5jdGlvbiBGZXQodCl7cmV0dXJuIHQubm9kZXN9ZnVuY3Rpb24gQmV0KHQpe3JldHVybiB0LmxpbmtzfWZ1bmN0aW9uIEM2KHQsZSl7Y29uc3Qgbj10LmdldChlKTtpZighbil0aHJvdyBuZXcgRXJyb3IoIm1pc3Npbmc6ICIrZSk7cmV0dXJuIG59ZnVuY3Rpb24gTDYoe25vZGVzOnR9KXtmb3IoY29uc3QgZSBvZiB0KXtsZXQgbj1lLnkwLHI9bjtmb3IoY29uc3QgaSBvZiBlLnNvdXJjZUxpbmtzKWkueTA9bitpLndpZHRoLzIsbis9aS53aWR0aDtmb3IoY29uc3QgaSBvZiBlLnRhcmdldExpbmtzKWkueTE9citpLndpZHRoLzIscis9aS53aWR0aH19ZnVuY3Rpb24gemV0KCl7bGV0IHQ9MCxlPTAsbj0xLHI9MSxpPTI0LGE9OCxvLHM9amV0LGM9Y2IsbCx1LGYsZD1GZXQsaD1CZXQsdj02O2Z1bmN0aW9uIGcoRCl7Y29uc3QgRz17bm9kZXM6ZChEKSxsaW5rczpoKEQpfTtyZXR1cm4geShHKSxiKEcpLHgoRyksXyhHKSxFKEcpLEw2KEcpLEd9Zy51cGRhdGU9ZnVuY3Rpb24oRCl7cmV0dXJuIEw2KEQpLER9LGcubm9kZUlkPWZ1bmN0aW9uKEQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPXR5cGVvZiBEPT0iZnVuY3Rpb24iP0Q6bGIoRCksZyk6c30sZy5ub2RlQWxpZ249ZnVuY3Rpb24oRCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGM9dHlwZW9mIEQ9PSJmdW5jdGlvbiI/RDpsYihEKSxnKTpjfSxnLm5vZGVEZXB0aD1mdW5jdGlvbihEKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obD1ELGcpOmx9LGcubm9kZVNvcnQ9ZnVuY3Rpb24oRCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9RCxnKTp1fSxnLm5vZGVXaWR0aD1mdW5jdGlvbihEKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0rRCxnKTppfSxnLm5vZGVQYWRkaW5nPWZ1bmN0aW9uKEQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPW89K0QsZyk6YX0sZy5ub2Rlcz1mdW5jdGlvbihEKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZD10eXBlb2YgRD09ImZ1bmN0aW9uIj9EOmxiKEQpLGcpOmR9LGcubGlua3M9ZnVuY3Rpb24oRCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGg9dHlwZW9mIEQ9PSJmdW5jdGlvbiI/RDpsYihEKSxnKTpofSxnLmxpbmtTb3J0PWZ1bmN0aW9uKEQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhmPUQsZyk6Zn0sZy5zaXplPWZ1bmN0aW9uKEQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PWU9MCxuPStEWzBdLHI9K0RbMV0sZyk6W24tdCxyLWVdfSxnLmV4dGVudD1mdW5jdGlvbihEKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0rRFswXVswXSxuPStEWzFdWzBdLGU9K0RbMF1bMV0scj0rRFsxXVsxXSxnKTpbW3QsZV0sW24scl1dfSxnLml0ZXJhdGlvbnM9ZnVuY3Rpb24oRCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHY9K0QsZyk6dn07ZnVuY3Rpb24geSh7bm9kZXM6RCxsaW5rczpHfSl7RC5mb3JFYWNoKChXLFgpPT57Vy5pbmRleD1YLFcuc291cmNlTGlua3M9W10sVy50YXJnZXRMaW5rcz1bXX0pO2NvbnN0IEY9bmV3IE1hcChELm1hcChXPT5bcyhXKSxXXSkpO2lmKEcuZm9yRWFjaCgoVyxYKT0+e1cuaW5kZXg9WDtsZXR7c291cmNlOlEsdGFyZ2V0OnR0fT1XO3R5cGVvZiBRIT0ib2JqZWN0IiYmKFE9Vy5zb3VyY2U9QzYoRixRKSksdHlwZW9mIHR0IT0ib2JqZWN0IiYmKHR0PVcudGFyZ2V0PUM2KEYsdHQpKSxRLnNvdXJjZUxpbmtzLnB1c2goVyksdHQudGFyZ2V0TGlua3MucHVzaChXKX0pLGYhPW51bGwpZm9yKGNvbnN0e3NvdXJjZUxpbmtzOlcsdGFyZ2V0TGlua3M6WH1vZiBEKVcuc29ydChmKSxYLnNvcnQoZil9ZnVuY3Rpb24gYih7bm9kZXM6RH0pe2Zvcihjb25zdCBHIG9mIEQpRy52YWx1ZT1HLmZpeGVkVmFsdWU9PT12b2lkIDA/TWF0aC5tYXgoYm8oRy5zb3VyY2VMaW5rcyxDRSksYm8oRy50YXJnZXRMaW5rcyxDRSkpOkcuZml4ZWRWYWx1ZX1mdW5jdGlvbiB4KHtub2RlczpEfSl7Y29uc3QgRz1ELmxlbmd0aDtsZXQgRj1uZXcgU2V0KEQpLFc9bmV3IFNldCxYPTA7Zm9yKDtGLnNpemU7KXtpZihGLmZvckVhY2goUT0+e1EuZGVwdGg9WDtmb3IoY29uc3R7dGFyZ2V0OnR0fW9mIFEuc291cmNlTGlua3MpVy5hZGQodHQpfSksKytYPkcpdGhyb3cgbmV3IEVycm9yKCJjaXJjdWxhciBsaW5rIik7Rj1XLFc9bmV3IFNldH1pZihsKXtjb25zdCBRPU1hdGgubWF4KERuKEQsbnQ9Pm50LmRlcHRoKSsxLDApO2xldCB0dDtmb3IobGV0IG50PTA7bnQ8RC5sZW5ndGg7bnQrKyl0dD1EW250XSx0dC5kZXB0aD1sLmNhbGwobnVsbCx0dCxRKX19ZnVuY3Rpb24gXyh7bm9kZXM6RH0pe2NvbnN0IEc9RC5sZW5ndGg7bGV0IEY9bmV3IFNldChEKSxXPW5ldyBTZXQsWD0wO2Zvcig7Ri5zaXplOyl7aWYoRi5mb3JFYWNoKFE9PntRLmhlaWdodD1YO2Zvcihjb25zdHtzb3VyY2U6dHR9b2YgUS50YXJnZXRMaW5rcylXLmFkZCh0dCl9KSwrK1g+Ryl0aHJvdyBuZXcgRXJyb3IoImNpcmN1bGFyIGxpbmsiKTtGPVcsVz1uZXcgU2V0fX1mdW5jdGlvbiB3KHtub2RlczpEfSl7Y29uc3QgRz1NYXRoLm1heChEbihELFg9PlguZGVwdGgpKzEsMCksRj0obi10LWkpLyhHLTEpLFc9bmV3IEFycmF5KEcpLmZpbGwoMCkubWFwKCgpPT5bXSk7Zm9yKGNvbnN0IFggb2YgRCl7Y29uc3QgUT1NYXRoLm1heCgwLE1hdGgubWluKEctMSxNYXRoLmZsb29yKGMuY2FsbChudWxsLFgsRykpKSk7WC5sYXllcj1RLFgueDA9dCtRKkYsWC54MT1YLngwK2ksV1tRXT9XW1FdLnB1c2goWCk6V1tRXT1bWF19aWYodSlmb3IoY29uc3QgWCBvZiBXKVguc29ydCh1KTtyZXR1cm4gV31mdW5jdGlvbiBPKEQpe2NvbnN0IEc9WmEoRCxGPT4oci1lLShGLmxlbmd0aC0xKSpvKS9ibyhGLENFKSk7Zm9yKGNvbnN0IEYgb2YgRCl7bGV0IFc9ZTtmb3IoY29uc3QgWCBvZiBGKXtYLnkwPVcsWC55MT1XK1gudmFsdWUqRyxXPVgueTErbztmb3IoY29uc3QgUSBvZiBYLnNvdXJjZUxpbmtzKVEud2lkdGg9US52YWx1ZSpHfVc9KHItVytvKS8oRi5sZW5ndGgrMSk7Zm9yKGxldCBYPTA7WDxGLmxlbmd0aDsrK1gpe2NvbnN0IFE9RltYXTtRLnkwKz1XKihYKzEpLFEueTErPVcqKFgrMSl9TChGKX19ZnVuY3Rpb24gRShEKXtjb25zdCBHPXcoRCk7bz1NYXRoLm1pbihhLChyLWUpLyhEbihHLEY9PkYubGVuZ3RoKS0xKSksTyhHKTtmb3IobGV0IEY9MDtGPHY7KytGKXtjb25zdCBXPU1hdGgucG93KC45OSxGKSxYPU1hdGgubWF4KDEtVywoRisxKS92KTtrKEcsVyxYKSxNKEcsVyxYKX19ZnVuY3Rpb24gTShELEcsRil7Zm9yKGxldCBXPTEsWD1ELmxlbmd0aDtXPFg7KytXKXtjb25zdCBRPURbV107Zm9yKGNvbnN0IHR0IG9mIFEpe2xldCBudD0wLGh0PTA7Zm9yKGNvbnN0e3NvdXJjZTp3dCx2YWx1ZTp5dH1vZiB0dC50YXJnZXRMaW5rcyl7Y29uc3QgZ3Q9eXQqKHR0LmxheWVyLXd0LmxheWVyKTtudCs9Uih3dCx0dCkqZ3QsaHQrPWd0fWlmKCEoaHQ+MCkpY29udGludWU7Y29uc3QgbHQ9KG50L2h0LXR0LnkwKSpHO3R0LnkwKz1sdCx0dC55MSs9bHQsTih0dCl9dT09PXZvaWQgMCYmUS5zb3J0KHViKSxRLmxlbmd0aCYmQShRLEYpfX1mdW5jdGlvbiBrKEQsRyxGKXtmb3IobGV0IFc9RC5sZW5ndGgsWD1XLTI7WD49MDstLVgpe2NvbnN0IFE9RFtYXTtmb3IoY29uc3QgdHQgb2YgUSl7bGV0IG50PTAsaHQ9MDtmb3IoY29uc3R7dGFyZ2V0Ond0LHZhbHVlOnl0fW9mIHR0LnNvdXJjZUxpbmtzKXtjb25zdCBndD15dCood3QubGF5ZXItdHQubGF5ZXIpO250Kz1JKHR0LHd0KSpndCxodCs9Z3R9aWYoIShodD4wKSljb250aW51ZTtjb25zdCBsdD0obnQvaHQtdHQueTApKkc7dHQueTArPWx0LHR0LnkxKz1sdCxOKHR0KX11PT09dm9pZCAwJiZRLnNvcnQodWIpLFEubGVuZ3RoJiZBKFEsRil9fWZ1bmN0aW9uIEEoRCxHKXtjb25zdCBGPUQubGVuZ3RoPj4xLFc9RFtGXTtDKEQsVy55MC1vLEYtMSxHKSxQKEQsVy55MStvLEYrMSxHKSxDKEQscixELmxlbmd0aC0xLEcpLFAoRCxlLDAsRyl9ZnVuY3Rpb24gUChELEcsRixXKXtmb3IoO0Y8RC5sZW5ndGg7KytGKXtjb25zdCBYPURbRl0sUT0oRy1YLnkwKSpXO1E+MWUtNiYmKFgueTArPVEsWC55MSs9USksRz1YLnkxK299fWZ1bmN0aW9uIEMoRCxHLEYsVyl7Zm9yKDtGPj0wOy0tRil7Y29uc3QgWD1EW0ZdLFE9KFgueTEtRykqVztRPjFlLTYmJihYLnkwLT1RLFgueTEtPVEpLEc9WC55MC1vfX1mdW5jdGlvbiBOKHtzb3VyY2VMaW5rczpELHRhcmdldExpbmtzOkd9KXtpZihmPT09dm9pZCAwKXtmb3IoY29uc3R7c291cmNlOntzb3VyY2VMaW5rczpGfX1vZiBHKUYuc29ydChQNik7Zm9yKGNvbnN0e3RhcmdldDp7dGFyZ2V0TGlua3M6Rn19b2YgRClGLnNvcnQoVDYpfX1mdW5jdGlvbiBMKEQpe2lmKGY9PT12b2lkIDApZm9yKGNvbnN0e3NvdXJjZUxpbmtzOkcsdGFyZ2V0TGlua3M6Rn1vZiBEKUcuc29ydChQNiksRi5zb3J0KFQ2KX1mdW5jdGlvbiBSKEQsRyl7bGV0IEY9RC55MC0oRC5zb3VyY2VMaW5rcy5sZW5ndGgtMSkqby8yO2Zvcihjb25zdHt0YXJnZXQ6Vyx3aWR0aDpYfW9mIEQuc291cmNlTGlua3Mpe2lmKFc9PT1HKWJyZWFrO0YrPVgrb31mb3IoY29uc3R7c291cmNlOlcsd2lkdGg6WH1vZiBHLnRhcmdldExpbmtzKXtpZihXPT09RClicmVhaztGLT1YfXJldHVybiBGfWZ1bmN0aW9uIEkoRCxHKXtsZXQgRj1HLnkwLShHLnRhcmdldExpbmtzLmxlbmd0aC0xKSpvLzI7Zm9yKGNvbnN0e3NvdXJjZTpXLHdpZHRoOlh9b2YgRy50YXJnZXRMaW5rcyl7aWYoVz09PUQpYnJlYWs7Ris9WCtvfWZvcihjb25zdHt0YXJnZXQ6Vyx3aWR0aDpYfW9mIEQuc291cmNlTGlua3Mpe2lmKFc9PT1HKWJyZWFrO0YtPVh9cmV0dXJuIEZ9cmV0dXJuIGd9Y29uc3QgV2V0PXtub2RlQWxpZ246Imp1c3RpZnkiLG5vZGVXaWR0aDouMDA4LG5vZGVQYWRkaW5nOi4wMyxub2Rlczp0PT50Lm5vZGVzLGxpbmtzOnQ9PnQubGlua3Msbm9kZVNvcnQ6dm9pZCAwLGxpbmtTb3J0OnZvaWQgMCxpdGVyYXRpb25zOjZ9LEdldD17bGVmdDpOZXQscmlnaHQ6SWV0LGNlbnRlcjpEZXQsanVzdGlmeTpjYn07ZnVuY3Rpb24gJGV0KHQpe2NvbnN0IGU9dHlwZW9mIHQ7cmV0dXJuIGU9PT0ic3RyaW5nIj9HZXRbdF18fGNiOmU9PT0iZnVuY3Rpb24iP3Q6Y2J9Y29uc3QgUjY9dD0+ZT0+e2NvbnN0e25vZGVJZDpuLG5vZGVTb3J0OnIsbm9kZUFsaWduOmksbm9kZVdpZHRoOmEsbm9kZVBhZGRpbmc6byxub2RlRGVwdGg6cyxub2RlczpjLGxpbmtzOmwsbGlua1NvcnQ6dSxpdGVyYXRpb25zOmZ9PU9iamVjdC5hc3NpZ24oe30sV2V0LHQpLGQ9emV0KCkubm9kZVNvcnQocikubGlua1NvcnQodSkubGlua3MobCkubm9kZXMoYykubm9kZVdpZHRoKGEpLm5vZGVQYWRkaW5nKG8pLm5vZGVEZXB0aChzKS5ub2RlQWxpZ24oJGV0KGkpKS5pdGVyYXRpb25zKGYpLmV4dGVudChbWzAsMF0sWzEsMV1dKTt0eXBlb2Ygbj09ImZ1bmN0aW9uIiYmZC5ub2RlSWQobik7Y29uc3QgaD1kKGUpLHtub2Rlczp2LGxpbmtzOmd9PWgseT12Lm1hcCh4PT57Y29uc3R7eDA6Xyx4MTp3LHkwOk8seTE6RX09eDtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHgpLHt4OltfLHcsdyxfXSx5OltPLE8sRSxFXX0pfSksYj1nLm1hcCh4PT57Y29uc3R7c291cmNlOl8sdGFyZ2V0Ond9PXgsTz1fLngxLEU9dy54MCxNPXgud2lkdGgvMjtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHgpLHt4OltPLE8sRSxFXSx5Olt4LnkwK00seC55MC1NLHgueTErTSx4LnkxLU1dfSl9KTtyZXR1cm57bm9kZXM6eSxsaW5rczpifX07UjYucHJvcHM9e307dmFyIFpldD1mdW5jdGlvbih0LGUpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiZlLmluZGV4T2Yocik8MCYmKG5bcl09dFtyXSk7aWYodCE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBpPTAscj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2k8ci5sZW5ndGg7aSsrKWUuaW5kZXhPZihyW2ldKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodCxyW2ldKSYmKG5bcltpXV09dFtyW2ldXSk7cmV0dXJuIG59O2NvbnN0IFlldD17bm9kZUlkOnQ9PnQua2V5LG5vZGVXaWR0aDouMDIsbm9kZVBhZGRpbmc6LjAyfSxIZXQ9e3R5cGU6InBvbHlnb24iLGF4aXM6ITEsbGVnZW5kOiExLGVuY29kZTp7c2hhcGU6InBvbHlnb24iLHg6IngiLHk6InkifSxzY2FsZTp7eDp7dHlwZToiaWRlbnRpdHkifSx5Ont0eXBlOiJpZGVudGl0eSJ9fSxzdHlsZTp7c3Ryb2tlOiIjMDAwIn19LFZldD17dHlwZToicG9seWdvbiIsYXhpczohMSxsZWdlbmQ6ITEsZW5jb2RlOntzaGFwZToicmliYm9uIix4OiJ4Iix5OiJ5In0sc3R5bGU6e2ZpbGxPcGFjaXR5Oi41LHN0cm9rZTp2b2lkIDB9fSxYZXQ9e3RleHRBbGlnbjp0PT50LnhbMF08LjU/InN0YXJ0IjoiZW5kIixwb3NpdGlvbjp0PT50LnhbMF08LjU/InJpZ2h0IjoibGVmdCIsZm9udFNpemU6MTB9LE42PXQ9Pntjb25zdHtkYXRhOmUsZW5jb2RlOm49e30sc2NhbGU6cixzdHlsZTppPXt9LGxheW91dDphPXt9LG5vZGVMYWJlbHM6bz1bXSxsaW5rTGFiZWxzOnM9W10sYW5pbWF0ZTpjPXt9LHRvb2x0aXA6bD17fSxpbnRlcmFjdGlvbjp1fT10LHtsaW5rczpmLG5vZGVzOmR9PVBPKGUsbiksaD0kdChuLCJub2RlIiksdj0kdChuLCJsaW5rIikse2tleTpnPVA9PlAua2V5LGNvbG9yOnk9Z309aCx7bGlua3M6Yixub2Rlczp4fT1SNihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxZZXQpLHtub2RlSWQ6T3MoZyl9KSxhKSkoe2xpbmtzOmYsbm9kZXM6ZH0pLF89JHQoaSwibGFiZWwiKSx7dGV4dDp3PWcsc3BhY2luZzpPPTV9PV8sRT1aZXQoXyxbInRleHQiLCJzcGFjaW5nIl0pLE09T3MoZyksaz14cyhsLCJub2RlIix7dGl0bGU6TSxpdGVtczpbe2ZpZWxkOiJ2YWx1ZSJ9XX0sITApLEE9eHMobCwibGluayIse3RpdGxlOiIiLGl0ZW1zOltQPT4oe25hbWU6InNvdXJjZSIsdmFsdWU6TShQLnNvdXJjZSl9KSxQPT4oe25hbWU6InRhcmdldCIsdmFsdWU6TShQLnRhcmdldCl9KV19KTtyZXR1cm5bbXQoe30sSGV0LHtkYXRhOngsZW5jb2RlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxoKSx7Y29sb3I6eX0pLHNjYWxlOnIsc3R5bGU6JHQoaSwibm9kZSIpLGxhYmVsczpbT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sWGV0KSx7dGV4dDp3LGR4OlA9PlAueFswXTwuNT9POi1PfSksRSksLi4ub10sdG9vbHRpcDprLGFuaW1hdGU6X3MoYywibm9kZSIpLGF4aXM6ITEsaW50ZXJhY3Rpb246dX0pLG10KHt9LFZldCx7ZGF0YTpiLGVuY29kZTp2LGxhYmVsczpzLHN0eWxlOk9iamVjdC5hc3NpZ24oe2ZpbGw6di5jb2xvcj92b2lkIDA6IiNhYWEiLGxpbmVXaWR0aDowfSwkdChpLCJsaW5rIikpLHRvb2x0aXA6QSxhbmltYXRlOl9zKGMsImxpbmsiKSxpbnRlcmFjdGlvbjp1fSldfTtONi5wcm9wcz17fTtmdW5jdGlvbiBVZXQodCxlKXtyZXR1cm4gZS52YWx1ZS10LnZhbHVlfWZ1bmN0aW9uIHFldCh0LGUpe3JldHVybiBlLmZyZXF1ZW5jeS10LmZyZXF1ZW5jeX1mdW5jdGlvbiBLZXQodCxlKXtyZXR1cm5gJHt0LmlkfWAubG9jYWxlQ29tcGFyZShgJHtlLmlkfWApfWZ1bmN0aW9uIFFldCh0LGUpe3JldHVybmAke3QubmFtZX1gLmxvY2FsZUNvbXBhcmUoYCR7ZS5uYW1lfWApfWNvbnN0IEpldD17eTowLHRoaWNrbmVzczouMDUsd2VpZ2h0OiExLG1hcmdpblJhdGlvOi4xLGlkOnQ9PnQuaWQsc291cmNlOnQ9PnQuc291cmNlLHRhcmdldDp0PT50LnRhcmdldCxzb3VyY2VXZWlnaHQ6dD0+dC52YWx1ZXx8MSx0YXJnZXRXZWlnaHQ6dD0+dC52YWx1ZXx8MSxzb3J0Qnk6bnVsbH07ZnVuY3Rpb24gdG50KHQpe2NvbnN0e3k6ZSx0aGlja25lc3M6bix3ZWlnaHQ6cixtYXJnaW5SYXRpbzppLGlkOmEsc291cmNlOm8sdGFyZ2V0OnMsc291cmNlV2VpZ2h0OmMsdGFyZ2V0V2VpZ2h0Omwsc29ydEJ5OnV9PU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxKZXQpLHQpO2Z1bmN0aW9uIGYoeSl7Y29uc3QgYj15Lm5vZGVzLm1hcChfPT5PYmplY3QuYXNzaWduKHt9LF8pKSx4PXkuZWRnZXMubWFwKF89Pk9iamVjdC5hc3NpZ24oe30sXykpO3JldHVybiBkKGIseCksaChiLHgpLHYoYix4KSxnKGIseCkse25vZGVzOmIsZWRnZXM6eH19ZnVuY3Rpb24gZCh5LGIpe2IuZm9yRWFjaCh3PT57dy5zb3VyY2U9byh3KSx3LnRhcmdldD1zKHcpLHcuc291cmNlV2VpZ2h0PWModyksdy50YXJnZXRXZWlnaHQ9bCh3KX0pO2NvbnN0IHg9ZHIoYix3PT53LnNvdXJjZSksXz1kcihiLHc9PncudGFyZ2V0KTtyZXR1cm4geS5mb3JFYWNoKHc9Pnt3LmlkPWEodyk7Y29uc3QgTz14Lmhhcyh3LmlkKT94LmdldCh3LmlkKTpbXSxFPV8uaGFzKHcuaWQpP18uZ2V0KHcuaWQpOltdO3cuZnJlcXVlbmN5PU8ubGVuZ3RoK0UubGVuZ3RoLHcudmFsdWU9Ym8oTyxNPT5NLnNvdXJjZVdlaWdodCkrYm8oRSxNPT5NLnRhcmdldFdlaWdodCl9KSx7bm9kZXM6eSxlZGdlczpifX1mdW5jdGlvbiBoKHksYil7Y29uc3QgeD10eXBlb2YgdT09ImZ1bmN0aW9uIj91OmFlW3VdO3gmJnkuc29ydCh4KX1mdW5jdGlvbiB2KHksYil7Y29uc3QgeD15Lmxlbmd0aDtpZigheCl0aHJvdyBYZigiSW52YWxpZCBub2RlczogaXQncyBlbXB0eSEiKTtpZighcil7Y29uc3QgTz0xL3g7cmV0dXJuIHkuZm9yRWFjaCgoRSxNKT0+e0UueD0oTSsuNSkqTyxFLnk9ZX0pLHtub2Rlczp5LGVkZ2VzOmJ9fWNvbnN0IF89aS8oMip4KSx3PXkucmVkdWNlKChPLEUpPT5PKz1FLnZhbHVlLDApO3JldHVybiB5LnJlZHVjZSgoTyxFKT0+e0Uud2VpZ2h0PUUudmFsdWUvdyxFLndpZHRoPUUud2VpZ2h0KigxLWkpLEUuaGVpZ2h0PW47Y29uc3QgTT1fK08saz1NK0Uud2lkdGgsQT1lLW4vMixQPUErbjtyZXR1cm4gRS54PVtNLGssayxNXSxFLnk9W0EsQSxQLFBdLE8rRS53aWR0aCsyKl99LDApLHtub2Rlczp5LGVkZ2VzOmJ9fWZ1bmN0aW9uIGcoeSxiKXtjb25zdCB4PW5ldyBNYXAoeS5tYXAoTz0+W08uaWQsT10pKTtpZighcilyZXR1cm4gYi5mb3JFYWNoKE89Pntjb25zdCBFPW8oTyksTT1zKE8pLGs9eC5nZXQoRSksQT14LmdldChNKTtrJiZBJiYoTy54PVtrLngsQS54XSxPLnk9W2sueSxBLnldKX0pLHtub2Rlczp5LGVkZ2VzOmJ9O2IuZm9yRWFjaChPPT57Ty54PVswLDAsMCwwXSxPLnk9W2UsZSxlLGVdfSk7Y29uc3QgXz1kcihiLE89Pk8uc291cmNlKSx3PWRyKGIsTz0+Ty50YXJnZXQpO3kuZm9yRWFjaChPPT57Y29uc3R7ZWRnZXM6RSx3aWR0aDpNLHg6ayx5OkEsdmFsdWU6UCxpZDpDfT1PLE49Xy5nZXQoQyl8fFtdLEw9dy5nZXQoQyl8fFtdO2xldCBSPTA7Ti5tYXAoST0+e2NvbnN0IEQ9SS5zb3VyY2VXZWlnaHQvUCpNO0kueFswXT1rWzBdK1IsSS54WzFdPWtbMF0rUitELFIrPUR9KSxMLmZvckVhY2goST0+e2NvbnN0IEQ9SS50YXJnZXRXZWlnaHQvUCpNO0kueFszXT1rWzBdK1IsSS54WzJdPWtbMF0rUitELFIrPUR9KX0pfXJldHVybiBmfWNvbnN0IExFPXQ9PmU9PnRudCh0KShlKTtMRS5wcm9wcz17fTt2YXIgSTY9ZnVuY3Rpb24odCxlKXt2YXIgbj17fTtmb3IodmFyIHIgaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKSYmZS5pbmRleE9mKHIpPDAmJihuW3JdPXRbcl0pO2lmKHQhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgaT0wLHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTtpPHIubGVuZ3RoO2krKyllLmluZGV4T2YocltpXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHQscltpXSkmJihuW3JbaV1dPXRbcltpXV0pO3JldHVybiBufTtjb25zdCBSRT17eTowLHRoaWNrbmVzczouMDUsbWFyZ2luUmF0aW86LjEsaWQ6dD0+dC5rZXksc291cmNlOnQ9PnQuc291cmNlLHRhcmdldDp0PT50LnRhcmdldCxzb3VyY2VXZWlnaHQ6dD0+dC52YWx1ZXx8MSx0YXJnZXRXZWlnaHQ6dD0+dC52YWx1ZXx8MSxzb3J0Qnk6bnVsbH0sZW50PXt0eXBlOiJwb2x5Z29uIixheGlzOiExLGxlZ2VuZDohMSxlbmNvZGU6e3NoYXBlOiJwb2x5Z29uIix4OiJ4Iix5OiJ5In0sc2NhbGU6e3g6e3R5cGU6ImlkZW50aXR5In0seTp7dHlwZToiaWRlbnRpdHkifX0sc3R5bGU6e29wYWNpdHk6MSxmaWxsT3BhY2l0eToxLGxpbmVXaWR0aDoxfX0sbm50PXt0eXBlOiJwb2x5Z29uIixheGlzOiExLGxlZ2VuZDohMSxlbmNvZGU6e3NoYXBlOiJyaWJib24iLHg6IngiLHk6InkifSxzdHlsZTp7b3BhY2l0eTouNSxsaW5lV2lkdGg6MX19LHJudD17cG9zaXRpb246Im91dHNpZGUiLGZvbnRTaXplOjEwfSxENj0odCxlKT0+e2NvbnN0e2RhdGE6bixlbmNvZGU6cj17fSxzY2FsZTppLHN0eWxlOmE9e30sbGF5b3V0Om89e30sbm9kZUxhYmVsczpzPVtdLGxpbmtMYWJlbHM6Yz1bXSxhbmltYXRlOmw9e30sdG9vbHRpcDp1PXt9fT10LHtub2RlczpmLGxpbmtzOmR9PVBPKG4sciksaD0kdChyLCJub2RlIiksdj0kdChyLCJsaW5rIikse2tleTpnPUk9Pkkua2V5LGNvbG9yOnk9Z309aCx7bGlua0VuY29kZUNvbG9yOmI9ST0+SS5zb3VyY2V9PXYse25vZGVXaWR0aFJhdGlvOng9UkUudGhpY2tuZXNzLG5vZGVQYWRkaW5nUmF0aW86Xz1SRS5tYXJnaW5SYXRpb309byx3PUk2KG8sWyJub2RlV2lkdGhSYXRpbyIsIm5vZGVQYWRkaW5nUmF0aW8iXSkse25vZGVzOk8sZWRnZXM6RX09TEUoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxSRSkse2lkOk9zKGcpLHRoaWNrbmVzczp4LG1hcmdpblJhdGlvOl99KSx3KSx7d2VpZ2h0OiEwfSkpKHtub2RlczpmLGVkZ2VzOmR9KSxNPSR0KGEsImxhYmVsIikse3RleHQ6az1nfT1NLEE9STYoTSxbInRleHQiXSksUD14cyh1LCJub2RlIix7dGl0bGU6IiIsaXRlbXM6W0k9Pih7bmFtZTpJLmtleSx2YWx1ZTpJLnZhbHVlfSldfSwhMCksQz14cyh1LCJsaW5rIix7dGl0bGU6IiIsaXRlbXM6W0k9Pih7bmFtZTpgJHtJLnNvdXJjZX0gLT4gJHtJLnRhcmdldH1gLHZhbHVlOkkudmFsdWV9KV19KSx7aGVpZ2h0Ok4sd2lkdGg6TH09ZSxSPU1hdGgubWluKE4sTCk7cmV0dXJuW210KHt9LG5udCx7ZGF0YTpFLGVuY29kZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdikse2NvbG9yOmJ9KSxsYWJlbHM6YyxzdHlsZTpPYmplY3QuYXNzaWduKHtmaWxsOmI/dm9pZCAwOiIjYWFhIn0sJHQoYSwibGluayIpKSx0b29sdGlwOkMsYW5pbWF0ZTpfcyhsLCJsaW5rIil9KSxtdCh7fSxlbnQse2RhdGE6TyxlbmNvZGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGgpLHtjb2xvcjp5fSksc2NhbGU6aSxzdHlsZTokdChhLCJub2RlIiksY29vcmRpbmF0ZTp7dHlwZToicG9sYXIiLG91dGVyUmFkaXVzOihSLTIwKS9SLHN0YXJ0QW5nbGU6LU1hdGguUEkqMixlbmRBbmdsZTowfSxsYWJlbHM6W09iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHJudCkse3RleHQ6a30pLEEpLC4uLnNdLHRvb2x0aXA6UCxhbmltYXRlOl9zKGwsIm5vZGUiKSxheGlzOiExfSldfTtENi5wcm9wcz17fTt2YXIgaW50PWZ1bmN0aW9uKHQsZSl7dmFyIG49e307Zm9yKHZhciByIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscikmJmUuaW5kZXhPZihyKTwwJiYobltyXT10W3JdKTtpZih0IT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIGk9MCxyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCk7aTxyLmxlbmd0aDtpKyspZS5pbmRleE9mKHJbaV0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh0LHJbaV0pJiYobltyW2ldXT10W3JbaV1dKTtyZXR1cm4gbn07Y29uc3QgYW50PSh0LGUpPT4oe3RpbGU6InRyZWVtYXBTcXVhcmlmeSIscmF0aW86LjUqKDErTWF0aC5zcXJ0KDUpKSxzaXplOlt0LGVdLHJvdW5kOiExLGlnbm9yZVBhcmVudFZhbHVlOiEwLHBhZGRpbmc6MCxwYWRkaW5nSW5uZXI6MCxwYWRkaW5nT3V0ZXI6MCxwYWRkaW5nVG9wOjAscGFkZGluZ1JpZ2h0OjAscGFkZGluZ0JvdHRvbTowLHBhZGRpbmdMZWZ0OjAsc29ydDoobixyKT0+ci52YWx1ZS1uLnZhbHVlLGxheWVyOjB9KSxvbnQ9KHQsZSk9Pih7dHlwZToicmVjdCIsYXhpczohMSxlbmNvZGU6e3g6IngiLHk6InkiLGtleToiaWQiLGNvbG9yOm49Pm4ucGF0aFsxXX0sc2NhbGU6e3g6e2RvbWFpbjpbMCx0XSxyYW5nZTpbMCwxXX0seTp7ZG9tYWluOlswLGVdLHJhbmdlOlswLDFdfX0sc3R5bGU6e3N0cm9rZToiI2ZmZiJ9LHN0YXRlOnthY3RpdmU6e29wYWNpdHk6LjZ9LGluYWN0aXZlOntvcGFjaXR5OjF9fX0pLHNudD17Zm9udFNpemU6MTAsdGV4dDp0PT5wMCh0LnBhdGgpLHBvc2l0aW9uOiJpbnNpZGUiLGZpbGw6IiMwMDAiLHRleHRPdmVyZmxvdzoiY2xpcCIsd29yZFdyYXA6ITAsbWF4TGluZXM6MSx3b3JkV3JhcFdpZHRoOnQ9PnQueDEtdC54MH0sY250PXt0aXRsZTp0PT57dmFyIGUsbjtyZXR1cm4obj0oZT10LnBhdGgpPT09bnVsbHx8ZT09PXZvaWQgMD92b2lkIDA6ZS5qb2luKT09PW51bGx8fG49PT12b2lkIDA/dm9pZCAwOm4uY2FsbChlLCIuIil9LGl0ZW1zOlt7ZmllbGQ6InZhbHVlIn1dfSxsbnQ9e3RpdGxlOnQ9PnAwKHQucGF0aCksaXRlbXM6W3tmaWVsZDoidmFsdWUifV19LGo2PSh0LGUpPT57Y29uc3R7d2lkdGg6bixoZWlnaHQ6cixvcHRpb25zOml9PWUse2RhdGE6YSxlbmNvZGU6bz17fSxzY2FsZTpzLHN0eWxlOmM9e30sbGF5b3V0Omw9e30sbGFiZWxzOnU9W10sdG9vbHRpcDpmPXt9fT10LGQ9aW50KHQsWyJkYXRhIiwiZW5jb2RlIiwic2NhbGUiLCJzdHlsZSIsImxheW91dCIsImxhYmVscyIsInRvb2x0aXAiXSksaD12bihpLFsiaW50ZXJhY3Rpb24iLCJ0cmVlbWFwRHJpbGxEb3duIl0pLHY9bXQoe30sYW50KG4sciksbCx7bGF5ZXI6aD94PT54LmRlcHRoPT09MTpsLmxheWVyfSksW2cseV09RDQoYSx2LG8pLGI9JHQoYywibGFiZWwiKTtyZXR1cm4gbXQoe30sb250KG4sciksT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHtkYXRhOmcsc2NhbGU6cyxzdHlsZTpjLGxhYmVsczpbT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHNudCksYiksLi4udV19LGQpLHtlbmNvZGU6byx0b29sdGlwOnFtKGYsY250KSxheGlzOiExfSksaD97aW50ZXJhY3Rpb246T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGQuaW50ZXJhY3Rpb24pLHt0cmVlbWFwRHJpbGxEb3duOmg/T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGgpLHtvcmlnaW5EYXRhOnksbGF5b3V0OnZ9KTp2b2lkIDB9KSxlbmNvZGU6T2JqZWN0LmFzc2lnbih7Y29sb3I6eD0+cDAoeC5wYXRoKX0sbyksdG9vbHRpcDpxbShmLGxudCl9Ont9KX07ajYucHJvcHM9e307ZnVuY3Rpb24gdW50KCl7cmV0dXJueyJkYXRhLmFyYyI6TEUsImRhdGEuY2x1c3RlciI6djYsIm1hcmsuZm9yY2VHcmFwaCI6aDYsIm1hcmsudHJlZSI6eTYsIm1hcmsucGFjayI6QTYsIm1hcmsuc2Fua2V5IjpONiwibWFyay5jaG9yZCI6RDYsIm1hcmsudHJlZW1hcCI6ajZ9fXZhciBGNj1mdW5jdGlvbih0LGUpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiZlLmluZGV4T2Yocik8MCYmKG5bcl09dFtyXSk7aWYodCE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBpPTAscj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2k8ci5sZW5ndGg7aSsrKWUuaW5kZXhPZihyW2ldKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodCxyW2ldKSYmKG5bcltpXV09dFtyW2ldXSk7cmV0dXJuIG59O2Z1bmN0aW9uIGZudCh0LGUpe3JldHVybiBaYSh0LG49PmVbbl0pfWZ1bmN0aW9uIGRudCh0LGUpe3JldHVybiBEbih0LG49PmVbbl0pfWZ1bmN0aW9uIEI2KHQsZSl7Y29uc3Qgbj1ORSh0LGUpKjIuNS1JRSh0LGUpKjEuNTtyZXR1cm4gWmEodCxyPT5lW3JdPj1uP2Vbcl06TmFOKX1mdW5jdGlvbiBORSh0LGUpe3JldHVybiBBMSh0LC4yNSxuPT5lW25dKX1mdW5jdGlvbiBobnQodCxlKXtyZXR1cm4gQTEodCwuNSxuPT5lW25dKX1mdW5jdGlvbiBJRSh0LGUpe3JldHVybiBBMSh0LC43NSxuPT5lW25dKX1mdW5jdGlvbiB6Nih0LGUpe2NvbnN0IG49SUUodCxlKSoyLjUtTkUodCxlKSoxLjU7cmV0dXJuIERuKHQscj0+ZVtyXTw9bj9lW3JdOk5hTil9ZnVuY3Rpb24gcG50KCl7cmV0dXJuKHQsZSk9Pntjb25zdHtlbmNvZGU6bn09ZSx7eTpyLHg6aX09bix7dmFsdWU6YX09cix7dmFsdWU6b309aTtyZXR1cm5bQXJyYXkuZnJvbShkcih0LGw9Pm9bK2xdKS52YWx1ZXMoKSkuZmxhdE1hcChsPT57Y29uc3QgdT1CNihsLGEpLGY9ejYobCxhKTtyZXR1cm4gbC5maWx0ZXIoZD0+YVtkXTx1fHxhW2RdPmYpfSksZV19fWNvbnN0IFc2PXQ9Pntjb25zdHtkYXRhOmUsZW5jb2RlOm4sc3R5bGU6cj17fSx0b29sdGlwOmk9e30sdHJhbnNmb3JtOmEsYW5pbWF0ZTpvfT10LHM9RjYodCxbImRhdGEiLCJlbmNvZGUiLCJzdHlsZSIsInRvb2x0aXAiLCJ0cmFuc2Zvcm0iLCJhbmltYXRlIl0pLHtwb2ludDpjPSEwfT1yLGw9RjYocixbInBvaW50Il0pLHt5OnV9PW4sZj17eTp1LHkxOnUseTI6dSx5Mzp1LHk0OnV9LGQ9e3kxOk5FLHkyOmhudCx5MzpJRX0saD14cyhpLCJib3giLHtpdGVtczpbe2NoYW5uZWw6InkiLG5hbWU6Im1pbiJ9LHtjaGFubmVsOiJ5MSIsbmFtZToicTEifSx7Y2hhbm5lbDoieTIiLG5hbWU6InEyIn0se2NoYW5uZWw6InkzIixuYW1lOiJxMyJ9LHtjaGFubmVsOiJ5NCIsbmFtZToibWF4In1dfSwhMCksdj14cyhpLCJwb2ludCIse3RpdGxlOntjaGFubmVsOiJ4In0saXRlbXM6W3tuYW1lOiJvdXRsaWVyIixjaGFubmVsOiJ5In1dfSk7aWYoIWMpcmV0dXJuIE9iamVjdC5hc3NpZ24oe3R5cGU6ImJveCIsZGF0YTplLHRyYW5zZm9ybTpbT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt0eXBlOiJncm91cFgiLHk6Zm50fSxkKSx7eTQ6ZG50fSldLGVuY29kZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbiksZiksc3R5bGU6bCx0b29sdGlwOmh9LHMpO2NvbnN0IGc9JHQobCwiYm94IikseT0kdChsLCJwb2ludCIpO3JldHVybltPYmplY3QuYXNzaWduKHt0eXBlOiJib3giLGRhdGE6ZSx0cmFuc2Zvcm06W09iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7dHlwZToiZ3JvdXBYIix5OkI2fSxkKSx7eTQ6ejZ9KV0sZW5jb2RlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxuKSxmKSxzdHlsZTpnLHRvb2x0aXA6aCxhbmltYXRlOl9zKG8sImJveCIpfSxzKSx7dHlwZToicG9pbnQiLGRhdGE6ZSx0cmFuc2Zvcm06W3t0eXBlOnBudH1dLGVuY29kZTpuLHN0eWxlOk9iamVjdC5hc3NpZ24oe30seSksdG9vbHRpcDp2LGFuaW1hdGU6X3MobywicG9pbnQiKX1dfTtXNi5wcm9wcz17fTtjb25zdCBHNj0odCxlKT0+TWF0aC5zcXJ0KE1hdGgucG93KHRbMF0tZVswXSwyKStNYXRoLnBvdyh0WzFdLWVbMV0sMikpLzIsdm50PSh0LGUpPT57aWYoIWUpcmV0dXJuO2NvbnN0e2Nvb3JkaW5hdGU6bn09ZTtpZighKG4hPW51bGwmJm4uZ2V0Q2VudGVyKSlyZXR1cm47Y29uc3Qgcj1uLmdldENlbnRlcigpO3JldHVybihpLGEsbyk9Pntjb25zdHtkb2N1bWVudDpzfT1lLmNhbnZhcyx7Y29sb3I6YyxpbmRleDpsfT1hLHU9cy5jcmVhdGVFbGVtZW50KCJnIix7fSksZj1HNihpWzBdLGlbMV0pLGQ9RzYoaVswXSxyKSoyLGg9cy5jcmVhdGVFbGVtZW50KCJwYXRoIix7c3R5bGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe2Q6W1siTSIsLi4uaVswXV0sWyJBIixmLGYsMCwxLDAsLi4uaVsxXV0sWyJBIixkK2YqMixkK2YqMiwwLDAsMCwuLi5pWzJdXSxbIkEiLGYsZiwwLDEsbD09PTA/MDoxLC4uLmlbM11dLFsiQSIsZCxkLDAsMCwxLC4uLmlbMF1dLFsiWiJdXX0sbyksa3codCxbInNoYXBlIiwibGFzdCIsImZpcnN0Il0pKSx7ZmlsbDpjfHxvLmNvbG9yfSl9KTtyZXR1cm4gdS5hcHBlbmRDaGlsZChoKSx1fX07dmFyIFgwPWZ1bmN0aW9uKHQsZSl7dmFyIG49e307Zm9yKHZhciByIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscikmJmUuaW5kZXhPZihyKTwwJiYobltyXT10W3JdKTtpZih0IT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIGk9MCxyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCk7aTxyLmxlbmd0aDtpKyspZS5pbmRleE9mKHJbaV0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh0LHJbaV0pJiYobltyW2ldXT10W3JbaV1dKTtyZXR1cm4gbn07Y29uc3QgZ250PSh0LGUpPT57Y29uc3R7c2hhcGU6bixyYWRpdXM6cn09dCxpPVgwKHQsWyJzaGFwZSIsInJhZGl1cyJdKSxhPSR0KGksInBvaW50ZXIiKSxvPSR0KGksInBpbiIpLHtzaGFwZTpzfT1hLGM9WDAoYSxbInNoYXBlIl0pLHtzaGFwZTpsfT1vLHU9WDAobyxbInNoYXBlIl0pLHtjb29yZGluYXRlOmYsdGhlbWU6ZH09ZTtyZXR1cm4oaCx2KT0+e2NvbnN0IGc9aC5tYXAoUj0+Zi5pbnZlcnQoUikpLFt5LGIseF09SkYoZiwicG9sYXIiKSxfPWYuY2xvbmUoKSx7Y29sb3I6d309dixPPXJ3KHtzdGFydEFuZ2xlOnksZW5kQW5nbGU6Yixpbm5lclJhZGl1czp4LG91dGVyUmFkaXVzOnJ9KTtPLnB1c2goWyJjYXJ0ZXNpYW4iXSksXy51cGRhdGUoe3RyYW5zZm9ybWF0aW9uczpPfSk7Y29uc3QgRT1nLm1hcChSPT5fLm1hcChSKSksW00sa109RHcoRSksW0EsUF09Zi5nZXRDZW50ZXIoKSxDPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7eDE6TSx5MTprLHgyOkEseTI6UCxzdHJva2U6d30sYyksaSksTj1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe2N4OkEsY3k6UCxzdHJva2U6d30sdSksaSksTD1PZShuZXcgdWkpO3JldHVybiByYyhzKXx8KHR5cGVvZiBzPT0iZnVuY3Rpb24iP0wuYXBwZW5kKCgpPT5zKEUsdixfLGQpKTpMLmFwcGVuZCgibGluZSIpLmNhbGwobGUsQykubm9kZSgpKSxyYyhsKXx8KHR5cGVvZiBsPT0iZnVuY3Rpb24iP0wuYXBwZW5kKCgpPT5sKEUsdixfLGQpKTpMLmFwcGVuZCgiY2lyY2xlIikuY2FsbChsZSxOKS5ub2RlKCkpLEwubm9kZSgpfX0sJDY9e2Nvb3JkaW5hdGU6e3R5cGU6InJhZGlhbCIsaW5uZXJSYWRpdXM6Ljksb3V0ZXJSYWRpdXM6MSxzdGFydEFuZ2xlOi0xMS8xMCpNYXRoLlBJLGVuZEFuZ2xlOjEvMTAqTWF0aC5QSX0sYXhpczp7eDohMX0sbGVnZW5kOiExLHRvb2x0aXA6ITEsZW5jb2RlOnt4OiJ4Iix5OiJ5Iixjb2xvcjoiY29sb3IifSxzY2FsZTp7Y29sb3I6e3JhbmdlOlsiIzMwQkY3OCIsIiNEMEQwRDAiXX19fSx5bnQ9e3N0eWxlOntzaGFwZTpnbnQsbGluZVdpZHRoOjQscG9pbnRlckxpbmVDYXA6InJvdW5kIixwaW5SOjEwLHBpbkZpbGw6IiNmZmYiLHJhZGl1czouNn19LG1udD17dHlwZToidGV4dCIsc3R5bGU6e3g6IjUwJSIseToiNjAlIix0ZXh0QWxpZ246ImNlbnRlciIsdGV4dEJhc2VsaW5lOiJtaWRkbGUiLGZvbnRTaXplOjIwLGZvbnRXZWlnaHQ6ODAwLGZpbGw6IiM4ODgifSx0b29sdGlwOiExfTtmdW5jdGlvbiBibnQodCl7aWYoVm4odCkpe2NvbnN0IGU9TWF0aC5tYXgoMCxNYXRoLm1pbih0LDEpKTtyZXR1cm57cGVyY2VudDplLHRhcmdldDplLHRvdGFsOjF9fXJldHVybiB0fWZ1bmN0aW9uIHhudCh0LGUpe2NvbnN0e25hbWU6bj0ic2NvcmUiLHRhcmdldDpyLHRvdGFsOmkscGVyY2VudDphLHRocmVzaG9sZHM6bz1bXX09Ym50KHQpLHM9YXx8cixjPWE/MTppLGw9T2JqZWN0LmFzc2lnbih7eTp7ZG9tYWluOlswLGNdfX0sZSk7cmV0dXJuIG8ubGVuZ3RoP3t0YXJnZXREYXRhOlt7eDpuLHk6cyxjb2xvcjoidGFyZ2V0In1dLHRvdGFsRGF0YTpvLm1hcCgodSxmKT0+KHt4Om4seTpmPj0xP3Utb1tmLTFdOnUsY29sb3I6Zn0pKSx0YXJnZXQ6cyx0b3RhbDpjLHNjYWxlOmx9Ont0YXJnZXREYXRhOlt7eDpuLHk6cyxjb2xvcjoidGFyZ2V0In1dLHRvdGFsRGF0YTpbe3g6bix5OnMsY29sb3I6InRhcmdldCJ9LHt4Om4seTpjLXMsY29sb3I6InRvdGFsIn1dLHRhcmdldDpzLHRvdGFsOmMsc2NhbGU6bH19ZnVuY3Rpb24gX250KHQse3RhcmdldDplLHRvdGFsOm59KXtjb25zdHtjb250ZW50OnJ9PXQ7cmV0dXJuIHI/cihlLG4pOmUudG9TdHJpbmcoKX1jb25zdCBaNj10PT57Y29uc3R7ZGF0YTplPXt9LHNjYWxlOm49e30sc3R5bGU6cj17fSxhbmltYXRlOmk9e30sdHJhbnNmb3JtOmE9W119PXQsbz1YMCh0LFsiZGF0YSIsInNjYWxlIiwic3R5bGUiLCJhbmltYXRlIiwidHJhbnNmb3JtIl0pLHt0YXJnZXREYXRhOnMsdG90YWxEYXRhOmMsdGFyZ2V0OmwsdG90YWw6dSxzY2FsZTpmfT14bnQoZSxuKSxkPSR0KHIsInRleHQiKSx7dG9vbHRpcDpofT1kLHY9WDAoZCxbInRvb2x0aXAiXSksZz1SRihyLFsicG9pbnRlciIsInBpbiJdKSx5PSR0KHIsImFyYyIpLGI9eS5zaGFwZTtyZXR1cm5bbXQoe30sJDYsT2JqZWN0LmFzc2lnbih7dHlwZToiaW50ZXJ2YWwiLHRyYW5zZm9ybTpbe3R5cGU6InN0YWNrWSJ9XSxkYXRhOmMsc2NhbGU6ZixzdHlsZTpiPT09InJvdW5kIj9PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30seSkse3NoYXBlOnZudH0pOnksYW5pbWF0ZTp0eXBlb2YgaT09Im9iamVjdCI/JHQoaSwiYXJjIik6aX0sbykpLG10KHt9LCQ2LHludCxPYmplY3QuYXNzaWduKHt0eXBlOiJwb2ludCIsZGF0YTpzLHNjYWxlOmYsc3R5bGU6ZyxhbmltYXRlOnR5cGVvZiBpPT0ib2JqZWN0Ij8kdChpLCJpbmRpY2F0b3IiKTppfSxvKSksbXQoe30sbW50LHtzdHlsZTpPYmplY3QuYXNzaWduKHt0ZXh0Ol9udCh2LHt0YXJnZXQ6bCx0b3RhbDp1fSl9LHYpLHRvb2x0aXA6aCxhbmltYXRlOnR5cGVvZiBpPT0ib2JqZWN0Ij8kdChpLCJ0ZXh0Iik6aX0pXX07WjYucHJvcHM9e307Y29uc3QgWTY9NWUzO2Z1bmN0aW9uIEg2KHQsZSxuKXtyZXR1cm4gdCsoZS10KSpufWZ1bmN0aW9uIHdudCh0LGUsbixyKXtyZXR1cm4gZT09PTA/W1t0KzEvMipuL01hdGguUEkvMixyLzJdLFt0KzEvMipuL01hdGguUEkscl0sW3Qrbi80LHJdXTplPT09MT9bW3QrMS8yKm4vTWF0aC5QSS8yKihNYXRoLlBJLTIpLHJdLFt0KzEvMipuL01hdGguUEkvMiooTWF0aC5QSS0xKSxyLzJdLFt0K24vNCwwXV06ZT09PTI/W1t0KzEvMipuL01hdGguUEkvMiwtci8yXSxbdCsxLzIqbi9NYXRoLlBJLC1yXSxbdCtuLzQsLXJdXTpbW3QrMS8yKm4vTWF0aC5QSS8yKihNYXRoLlBJLTIpLC1yXSxbdCsxLzIqbi9NYXRoLlBJLzIqKE1hdGguUEktMSksLXIvMl0sW3Qrbi80LDBdXX1mdW5jdGlvbiBPbnQodCxlLG4scixpLGEsbyl7Y29uc3Qgcz1NYXRoLmNlaWwoMip0L24qNCkqNCxjPVtdO2xldCBsPXI7Zm9yKDtsPC1NYXRoLlBJKjI7KWwrPU1hdGguUEkqMjtmb3IoO2w+MDspbC09TWF0aC5QSSoyO2w9bC9NYXRoLlBJLzIqbjtjb25zdCB1PWEtdCtsLXQqMjtjLnB1c2goWyJNIix1LGVdKTtsZXQgZj0wO2ZvcihsZXQgZD0wO2Q8czsrK2Qpe2NvbnN0IGg9ZCU0LHY9d250KGQqbi80LGgsbixpKTtjLnB1c2goWyJDIix2WzBdWzBdK3UsLXZbMF1bMV0rZSx2WzFdWzBdK3UsLXZbMV1bMV0rZSx2WzJdWzBdK3UsLXZbMl1bMV0rZV0pLGQ9PT1zLTEmJihmPXZbMl1bMF0pfXJldHVybiBjLnB1c2goWyJMIixmK3Usbyt0XSksYy5wdXNoKFsiTCIsdSxvK3RdKSxjLnB1c2goWyJaIl0pLGN9ZnVuY3Rpb24gU250KHQsZSxuLHIsaSxhLG8scyxjLGwsdSl7Y29uc3R7ZmlsbDpmLGZpbGxPcGFjaXR5OmQsb3BhY2l0eTpofT1pO2ZvcihsZXQgdj0wO3Y8cjt2Kyspe2NvbnN0IGc9cjw9MT8xOnYvKHItMSkseT1PbnQocyxvK3MqbixjLDAscy80MCx0LGUpLGI9dS5jcmVhdGVFbGVtZW50KCJwYXRoIix7c3R5bGU6e2Q6eSxmaWxsOmYsb3BhY2l0eTpINiguMiwuOSxnKSpOdW1iZXIoaHx8ZCl9fSk7YS5hcHBlbmRDaGlsZChiKTt0cnl7aWYobD09PSExKXJldHVybjtjb25zdCB4PVt7dHJhbnNmb3JtOiJ0cmFuc2xhdGUoMCwgMCkifSx7dHJhbnNmb3JtOmB0cmFuc2xhdGUoJHtjKjJ9LCAwKWB9XTtiLmFuaW1hdGUoeCx7ZHVyYXRpb246SDYoLjUqWTYsWTYsZykqMixpdGVyYXRpb25zOjEvMH0pfWNhdGNoKHgpe2NvbnNvbGUud2Fybigib2ZmLXNjcmVlbiBncm91cCBhbmltYXRlIGVycm9yISIpfX19ZnVuY3Rpb24gRW50KHQsZSxuKXtyZXR1cm5gCisgICAgICBNICR7dH0gJHtlLW59IAorICAgICAgYSAke259ICR7bn0gMCAxIDAgMCAke24qMn0KKyAgICAgIGEgJHtufSAke259IDAgMSAwIDAgJHstbioyfQorICAgICAgWgorICAgIGB9ZnVuY3Rpb24gTW50KHQsZSxuKXtjb25zdCBpPW4qLjYxODtyZXR1cm5gCisgICAgICBNICR7dC1pfSAke2Utbn0KKyAgICAgIEwgJHt0K2l9ICR7ZS1ufQorICAgICAgTCAke3QraX0gJHtlK259CisgICAgICBMICR7dC1pfSAke2Urbn0KKyAgICAgIFoKKyAgICBgfWZ1bmN0aW9uIGtudCh0LGUsbil7cmV0dXJuYAorICAgICAgTSAke3R9ICR7ZS1ufQorICAgICAgTCAke3Qrbn0gJHtlfQorICAgICAgTCAke3R9ICR7ZStufQorICAgICAgTCAke3Qtbn0gJHtlfQorICAgICAgWgorICAgIGB9ZnVuY3Rpb24gQW50KHQsZSxuKXtyZXR1cm5gCisgICAgICBNICR7dH0gJHtlLW59CisgICAgICBMICR7dCtufSAke2Urbn0KKyAgICAgIEwgJHt0LW59ICR7ZStufQorICAgICAgWgorICAgIGB9ZnVuY3Rpb24gVG50KHQsZSxuKXtjb25zdCByPW4qNC8zLGk9TWF0aC5tYXgocixuKjIpLGE9ci8yLG89dCxzPWErZS1pLzIsYz1NYXRoLmFzaW4oYS8oKGktYSkqLjg1KSksbD1NYXRoLnNpbihjKSphLHU9TWF0aC5jb3MoYykqYSxmPW8tdSxkPXMrbCxoPXQsdj1zK2EvTWF0aC5zaW4oYyk7cmV0dXJuYAorICAgICAgTSAke2Z9ICR7ZH0KKyAgICAgIEEgJHthfSAke2F9IDAgMSAxICR7Zit1KjJ9ICR7ZH0KKyAgICAgIFEgJHtofSAke3Z9ICR7dH0gJHtlK2kvMn0KKyAgICAgIFEgJHtofSAke3Z9ICR7Zn0gJHtkfQorICAgICAgWiAKKyAgICBgfWNvbnN0IFY2PXtwaW46VG50LHJlY3Q6TW50LGNpcmNsZTpFbnQsZGlhbW9uZDprbnQsdHJpYW5nbGU6QW50fTt2YXIgWDY9ZnVuY3Rpb24odCxlKXt2YXIgbj17fTtmb3IodmFyIHIgaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKSYmZS5pbmRleE9mKHIpPDAmJihuW3JdPXRbcl0pO2lmKHQhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgaT0wLHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTtpPHIubGVuZ3RoO2krKyllLmluZGV4T2YocltpXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHQscltpXSkmJihuW3JbaV1dPXRbcltpXV0pO3JldHVybiBufTtjb25zdCBQbnQ9KHQ9ImNpcmNsZSIpPT5WNlt0XXx8VjYuY2lyY2xlLFU2PSh0LGUpPT57aWYoIWUpcmV0dXJuO2NvbnN0e2Nvb3JkaW5hdGU6bn09ZSx7bGlxdWlkT3B0aW9uczpyLHN0eWxlT3B0aW9uczppfT10LHtsaXF1aWRTaGFwZTphLHBlcmNlbnQ6b309cix7YmFja2dyb3VuZDpzLG91dGxpbmU6Yz17fSx3YXZlOmw9e319PWksdT1YNihpLFsiYmFja2dyb3VuZCIsIm91dGxpbmUiLCJ3YXZlIl0pLHtib3JkZXI6Zj0yLGRpc3RhbmNlOmQ9MH09YyxoPVg2KGMsWyJib3JkZXIiLCJkaXN0YW5jZSJdKSx7bGVuZ3RoOnY9MTkyLGNvdW50Omc9M309bDtyZXR1cm4oeSxiLHgpPT57Y29uc3R7ZG9jdW1lbnQ6X309ZS5jYW52YXMse2NvbG9yOncsZmlsbE9wYWNpdHk6T309eCxFPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7ZmlsbDp3fSx4KSx1KSxNPV8uY3JlYXRlRWxlbWVudCgiZyIse30pLFtrLEFdPW4uZ2V0Q2VudGVyKCksUD1uLmdldFNpemUoKSxDPU1hdGgubWluKC4uLlApLzIsTD0oWG4oYSk/YTpQbnQoYSkpKGssQSxDLC4uLlApO2lmKE9iamVjdC5rZXlzKHMpLmxlbmd0aCl7Y29uc3QgRD1fLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtzdHlsZTpPYmplY3QuYXNzaWduKHtkOkwsZmlsbDoiI2ZmZiJ9LHMpfSk7TS5hcHBlbmRDaGlsZChEKX1pZihvPjApe2NvbnN0IEQ9Xy5jcmVhdGVFbGVtZW50KCJwYXRoIix7c3R5bGU6e2Q6TH19KTtNLmFwcGVuZENoaWxkKEQpLE0uc3R5bGUuY2xpcFBhdGg9RCxTbnQoayxBLDEtbyxnLEUsTSxELmdldEJCb3goKS55LEMqMix2LCEwLF8pfWNvbnN0IFI9Xy5jcmVhdGVFbGVtZW50KCJwYXRoIix7c3R5bGU6e2Q6TCxmaWxsOiJ0cmFuc3BhcmVudCIsbGluZVdpZHRoOmYrMipkLHN0cm9rZToiI2ZmZiJ9fSksST1fLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtzdHlsZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7ZDpMLHN0cm9rZTp3LHN0cm9rZU9wYWNpdHk6TyxsaW5lV2lkdGg6Zn0sRSksaCkse2ZpbGw6InRyYW5zcGFyZW50In0pfSk7cmV0dXJuIE0uYXBwZW5kQ2hpbGQoUiksTS5hcHBlbmRDaGlsZChJKSxNfX07VTYucHJvcHM9e307dmFyIENudD1mdW5jdGlvbih0LGUpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiZlLmluZGV4T2Yocik8MCYmKG5bcl09dFtyXSk7aWYodCE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBpPTAscj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2k8ci5sZW5ndGg7aSsrKWUuaW5kZXhPZihyW2ldKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodCxyW2ldKSYmKG5bcltpXV09dFtyW2ldXSk7cmV0dXJuIG59O2NvbnN0IExudD17YXhpczp7eDohMSx5OiExfSxsZWdlbmQ6ITEsdG9vbHRpcDohMSxlbmNvZGU6e3g6InR5cGUiLHk6InBlcmNlbnQifSxzY2FsZTp7eTp7ZG9tYWluOlswLDFdfX0sc3R5bGU6e3NoYXBlOlU2fSxhbmltYXRlOntlbnRlcjp7dHlwZToiZmFkZUluIn19fSxSbnQ9e3R5cGU6InRleHQiLHN0eWxlOnt4OiI1MCUiLHk6IjUwJSIsdGV4dEFsaWduOiJjZW50ZXIiLHRleHRCYXNlbGluZToibWlkZGxlIixmb250U2l6ZToyMCxmb250V2VpZ2h0OjgwMCxmaWxsOiIjODg4In0sYW5pbWF0ZTp7ZW50ZXI6e3R5cGU6ImZhZGVJbiJ9fX0scTY9dD0+e2NvbnN0e2RhdGE6ZT17fSxzdHlsZTpuPXt9LGFuaW1hdGU6cn09dCxpPUNudCh0LFsiZGF0YSIsInN0eWxlIiwiYW5pbWF0ZSJdKSxhPU1hdGgubWF4KDAsVm4oZSk/ZTplPT1udWxsP3ZvaWQgMDplLnBlcmNlbnQpLG89W3twZXJjZW50OmEsdHlwZToibGlxdWlkIn1dLHM9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCR0KG4sInRleHQiKSksJHQobiwiY29udGVudCIpKSxjPSR0KG4sIm91dGxpbmUiKSxsPSR0KG4sIndhdmUiKSx1PSR0KG4sImJhY2tncm91bmQiKTtyZXR1cm5bbXQoe30sTG50LE9iamVjdC5hc3NpZ24oe3R5cGU6ImludGVydmFsIixkYXRhOm8sc3R5bGU6e2xpcXVpZE9wdGlvbnM6e3BlcmNlbnQ6YSxsaXF1aWRTaGFwZTpuPT1udWxsP3ZvaWQgMDpuLnNoYXBlfSxzdHlsZU9wdGlvbnM6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG4pLHtvdXRsaW5lOmMsd2F2ZTpsLGJhY2tncm91bmQ6dX0pfSxhbmltYXRlOnJ9LGkpKSxtdCh7fSxSbnQse3N0eWxlOk9iamVjdC5hc3NpZ24oe3RleHQ6YCR7cm0oYSoxMDApfSAlYH0scyksYW5pbWF0ZTpyfSldfTtxNi5wcm9wcz17fTt2YXIgZ2M9cHQoNjk5MTYpO2NvbnN0IEs2PTFlLTEwO2Z1bmN0aW9uIFE2KHQsZSl7Y29uc3Qgbj1JbnQodCkscj1uLmZpbHRlcihmdW5jdGlvbihjKXtyZXR1cm4gTm50KGMsdCl9KTtsZXQgaT0wLGE9MCxvO2NvbnN0IHM9W107aWYoci5sZW5ndGg+MSl7Y29uc3QgYz1EbnQocik7Zm9yKG89MDtvPHIubGVuZ3RoOysrbyl7Y29uc3QgdT1yW29dO3UuYW5nbGU9TWF0aC5hdGFuMih1LngtYy54LHUueS1jLnkpfXIuc29ydChmdW5jdGlvbih1LGYpe3JldHVybiBmLmFuZ2xlLXUuYW5nbGV9KTtsZXQgbD1yW3IubGVuZ3RoLTFdO2ZvcihvPTA7bzxyLmxlbmd0aDsrK28pe2NvbnN0IHU9cltvXTthKz0obC54K3UueCkqKHUueS1sLnkpO2NvbnN0IGY9e3g6KHUueCtsLngpLzIseToodS55K2wueSkvMn07bGV0IGQ9bnVsbDtmb3IobGV0IGg9MDtoPHUucGFyZW50SW5kZXgubGVuZ3RoOysraClpZihsLnBhcmVudEluZGV4LmluZGV4T2YodS5wYXJlbnRJbmRleFtoXSk+LTEpe2NvbnN0IHY9dFt1LnBhcmVudEluZGV4W2hdXSxnPU1hdGguYXRhbjIodS54LXYueCx1Lnktdi55KSx5PU1hdGguYXRhbjIobC54LXYueCxsLnktdi55KTtsZXQgYj15LWc7YjwwJiYoYis9MipNYXRoLlBJKTtjb25zdCB4PXktYi8yO2xldCBfPVUwKGYse3g6di54K3YucmFkaXVzKk1hdGguc2luKHgpLHk6di55K3YucmFkaXVzKk1hdGguY29zKHgpfSk7Xz52LnJhZGl1cyoyJiYoXz12LnJhZGl1cyoyKSwoZD09PW51bGx8fGQud2lkdGg+XykmJihkPXtjaXJjbGU6dix3aWR0aDpfLHAxOnUscDI6bH0pfWQhPT1udWxsJiYocy5wdXNoKGQpLGkrPURFKGQuY2lyY2xlLnJhZGl1cyxkLndpZHRoKSxsPXUpfX1lbHNle2xldCBjPXRbMF07Zm9yKG89MTtvPHQubGVuZ3RoOysrbyl0W29dLnJhZGl1czxjLnJhZGl1cyYmKGM9dFtvXSk7bGV0IGw9ITE7Zm9yKG89MDtvPHQubGVuZ3RoOysrbylpZihVMCh0W29dLGMpPk1hdGguYWJzKGMucmFkaXVzLXRbb10ucmFkaXVzKSl7bD0hMDticmVha31sP2k9YT0wOihpPWMucmFkaXVzKmMucmFkaXVzKk1hdGguUEkscy5wdXNoKHtjaXJjbGU6YyxwMTp7eDpjLngseTpjLnkrYy5yYWRpdXN9LHAyOnt4OmMueC1LNix5OmMueStjLnJhZGl1c30sd2lkdGg6Yy5yYWRpdXMqMn0pKX1yZXR1cm4gYS89MixlJiYoZS5hcmVhPWkrYSxlLmFyY0FyZWE9aSxlLnBvbHlnb25BcmVhPWEsZS5hcmNzPXMsZS5pbm5lclBvaW50cz1yLGUuaW50ZXJzZWN0aW9uUG9pbnRzPW4pLGkrYX1mdW5jdGlvbiBObnQodCxlKXtmb3IobGV0IG49MDtuPGUubGVuZ3RoOysrbilpZihVMCh0LGVbbl0pPmVbbl0ucmFkaXVzK0s2KXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIEludCh0KXtjb25zdCBlPVtdO2ZvcihsZXQgbj0wO248dC5sZW5ndGg7KytuKWZvcihsZXQgcj1uKzE7cjx0Lmxlbmd0aDsrK3Ipe2NvbnN0IGk9dDgodFtuXSx0W3JdKTtmb3IobGV0IGE9MDthPGkubGVuZ3RoOysrYSl7Y29uc3Qgbz1pW2FdO28ucGFyZW50SW5kZXg9W24scl0sZS5wdXNoKG8pfX1yZXR1cm4gZX1mdW5jdGlvbiBERSh0LGUpe3JldHVybiB0KnQqTWF0aC5hY29zKDEtZS90KS0odC1lKSpNYXRoLnNxcnQoZSooMip0LWUpKX1mdW5jdGlvbiBVMCh0LGUpe3JldHVybiBNYXRoLnNxcnQoKHQueC1lLngpKih0LngtZS54KSsodC55LWUueSkqKHQueS1lLnkpKX1mdW5jdGlvbiBKNih0LGUsbil7aWYobj49dCtlKXJldHVybiAwO2lmKG48PU1hdGguYWJzKHQtZSkpcmV0dXJuIE1hdGguUEkqTWF0aC5taW4odCxlKSpNYXRoLm1pbih0LGUpO2NvbnN0IHI9dC0obipuLWUqZSt0KnQpLygyKm4pLGk9ZS0obipuLXQqdCtlKmUpLygyKm4pO3JldHVybiBERSh0LHIpK0RFKGUsaSl9ZnVuY3Rpb24gdDgodCxlKXtjb25zdCBuPVUwKHQsZSkscj10LnJhZGl1cyxpPWUucmFkaXVzO2lmKG4+PXIraXx8bjw9TWF0aC5hYnMoci1pKSlyZXR1cm5bXTtjb25zdCBhPShyKnItaSppK24qbikvKDIqbiksbz1NYXRoLnNxcnQocipyLWEqYSkscz10LngrYSooZS54LXQueCkvbixjPXQueSthKihlLnktdC55KS9uLGw9LShlLnktdC55KSooby9uKSx1PS0oZS54LXQueCkqKG8vbik7cmV0dXJuW3t4OnMrbCx5OmMtdX0se3g6cy1sLHk6Yyt1fV19ZnVuY3Rpb24gRG50KHQpe2NvbnN0IGU9e3g6MCx5OjB9O2ZvcihsZXQgbj0wO248dC5sZW5ndGg7KytuKWUueCs9dFtuXS54LGUueSs9dFtuXS55O3JldHVybiBlLngvPXQubGVuZ3RoLGUueS89dC5sZW5ndGgsZX1mdW5jdGlvbiBqbnQodCxlKXtlPWV8fHt9LGUubWF4SXRlcmF0aW9ucz1lLm1heEl0ZXJhdGlvbnN8fDUwMDtjb25zdCBuPWUuaW5pdGlhbExheW91dHx8V250LHI9ZS5sb3NzRnVuY3Rpb258fEZFO3Q9Rm50KHQpO2NvbnN0IGk9bih0LGUpLGE9W10sbz1bXTtsZXQgcztmb3IocyBpbiBpKWkuaGFzT3duUHJvcGVydHkocykmJihhLnB1c2goaVtzXS54KSxhLnB1c2goaVtzXS55KSxvLnB1c2gocykpO2NvbnN0IGw9KDAsZ2MubmVsZGVyTWVhZCkoZnVuY3Rpb24odSl7Y29uc3QgZj17fTtmb3IobGV0IGQ9MDtkPG8ubGVuZ3RoOysrZCl7Y29uc3QgaD1vW2RdO2ZbaF09e3g6dVsyKmRdLHk6dVsyKmQrMV0scmFkaXVzOmlbaF0ucmFkaXVzfX1yZXR1cm4gcihmLHQpfSxhLGUpLng7Zm9yKGxldCB1PTA7dTxvLmxlbmd0aDsrK3Upcz1vW3VdLGlbc10ueD1sWzIqdV0saVtzXS55PWxbMip1KzFdO3JldHVybiBpfWNvbnN0IGU4PTFlLTEwO2Z1bmN0aW9uIGpFKHQsZSxuKXtyZXR1cm4gTWF0aC5taW4odCxlKSpNYXRoLm1pbih0LGUpKk1hdGguUEk8PW4rZTg/TWF0aC5hYnModC1lKTooMCxnYy5iaXNlY3QpKGZ1bmN0aW9uKHIpe3JldHVybiBKNih0LGUsciktbn0sMCx0K2UpfWZ1bmN0aW9uIEZudCh0KXt0PXQuc2xpY2UoKTtjb25zdCBlPVtdLG49e307bGV0IHIsaSxhLG87Zm9yKHI9MDtyPHQubGVuZ3RoOysrcil7Y29uc3Qgcz10W3JdO3Muc2V0cy5sZW5ndGg9PTE/ZS5wdXNoKHMuc2V0c1swXSk6cy5zZXRzLmxlbmd0aD09MiYmKGE9cy5zZXRzWzBdLG89cy5zZXRzWzFdLG5bW2Esb11dPSEwLG5bW28sYV1dPSEwKX1mb3IoZS5zb3J0KChzLGMpPT5zPmM/MTotMSkscj0wO3I8ZS5sZW5ndGg7KytyKWZvcihhPWVbcl0saT1yKzE7aTxlLmxlbmd0aDsrK2kpbz1lW2ldLFthLG9daW4gbnx8dC5wdXNoKHtzZXRzOlthLG9dLHNpemU6MH0pO3JldHVybiB0fWZ1bmN0aW9uIEJudCh0LGUsbil7Y29uc3Qgcj0oMCxnYy56ZXJvc00pKGUubGVuZ3RoLGUubGVuZ3RoKSxpPSgwLGdjLnplcm9zTSkoZS5sZW5ndGgsZS5sZW5ndGgpO3JldHVybiB0LmZpbHRlcihmdW5jdGlvbihhKXtyZXR1cm4gYS5zZXRzLmxlbmd0aD09Mn0pLm1hcChmdW5jdGlvbihhKXtjb25zdCBvPW5bYS5zZXRzWzBdXSxzPW5bYS5zZXRzWzFdXSxjPU1hdGguc3FydChlW29dLnNpemUvTWF0aC5QSSksbD1NYXRoLnNxcnQoZVtzXS5zaXplL01hdGguUEkpLHU9akUoYyxsLGEuc2l6ZSk7cltvXVtzXT1yW3NdW29dPXU7bGV0IGY9MDthLnNpemUrMWUtMTA+PU1hdGgubWluKGVbb10uc2l6ZSxlW3NdLnNpemUpP2Y9MTphLnNpemU8PTFlLTEwJiYoZj0tMSksaVtvXVtzXT1pW3NdW29dPWZ9KSx7ZGlzdGFuY2VzOnIsY29uc3RyYWludHM6aX19ZnVuY3Rpb24gem50KHQsZSxuLHIpe2xldCBpPTAsYTtmb3IoYT0wO2E8ZS5sZW5ndGg7KythKWVbYV09MDtmb3IoYT0wO2E8bi5sZW5ndGg7KythKXtjb25zdCBvPXRbMiphXSxzPXRbMiphKzFdO2ZvcihsZXQgYz1hKzE7YzxuLmxlbmd0aDsrK2Mpe2NvbnN0IGw9dFsyKmNdLHU9dFsyKmMrMV0sZj1uW2FdW2NdLGQ9clthXVtjXSxoPShsLW8pKihsLW8pKyh1LXMpKih1LXMpLHY9TWF0aC5zcXJ0KGgpLGc9aC1mKmY7ZD4wJiZ2PD1mfHxkPDAmJnY+PWZ8fChpKz0yKmcqZyxlWzIqYV0rPTQqZyooby1sKSxlWzIqYSsxXSs9NCpnKihzLXUpLGVbMipjXSs9NCpnKihsLW8pLGVbMipjKzFdKz00KmcqKHUtcykpfX1yZXR1cm4gaX1mdW5jdGlvbiBXbnQodCxlKXtsZXQgbj0kbnQodCxlKTtjb25zdCByPWUubG9zc0Z1bmN0aW9ufHxGRTtpZih0Lmxlbmd0aD49OCl7Y29uc3QgaT1HbnQodCxlKSxhPXIoaSx0KSxvPXIobix0KTthKzFlLTg8byYmKG49aSl9cmV0dXJuIG59ZnVuY3Rpb24gR250KHQsZSl7ZT1lfHx7fTtjb25zdCBuPWUucmVzdGFydHN8fDEwLHI9W10saT17fTtsZXQgYTtmb3IoYT0wO2E8dC5sZW5ndGg7KythKXtjb25zdCBnPXRbYV07Zy5zZXRzLmxlbmd0aD09MSYmKGlbZy5zZXRzWzBdXT1yLmxlbmd0aCxyLnB1c2goZykpfWNvbnN0IG89Qm50KHQscixpKTtsZXQgcz1vLmRpc3RhbmNlcztjb25zdCBjPW8uY29uc3RyYWludHMsbD0oMCxnYy5ub3JtMikocy5tYXAoZ2Mubm9ybTIpKS9zLmxlbmd0aDtzPXMubWFwKGZ1bmN0aW9uKGcpe3JldHVybiBnLm1hcChmdW5jdGlvbih5KXtyZXR1cm4geS9sfSl9KTtjb25zdCB1PWZ1bmN0aW9uKGcseSl7cmV0dXJuIHpudChnLHkscyxjKX07bGV0IGYsZDtmb3IoYT0wO2E8bjsrK2Epe2NvbnN0IGc9KDAsZ2MuemVyb3MpKHMubGVuZ3RoKjIpLm1hcChNYXRoLnJhbmRvbSk7ZD0oMCxnYy5jb25qdWdhdGVHcmFkaWVudCkodSxnLGUpLCghZnx8ZC5meDxmLmZ4KSYmKGY9ZCl9Y29uc3QgaD1mLngsdj17fTtmb3IoYT0wO2E8ci5sZW5ndGg7KythKXtjb25zdCBnPXJbYV07dltnLnNldHNbMF1dPXt4OmhbMiphXSpsLHk6aFsyKmErMV0qbCxyYWRpdXM6TWF0aC5zcXJ0KGcuc2l6ZS9NYXRoLlBJKX19aWYoZS5oaXN0b3J5KWZvcihhPTA7YTxlLmhpc3RvcnkubGVuZ3RoOysrYSkoMCxnYy5zY2FsZSkoZS5oaXN0b3J5W2FdLngsbCk7cmV0dXJuIHZ9ZnVuY3Rpb24gJG50KHQsZSl7Y29uc3Qgbj1lJiZlLmxvc3NGdW5jdGlvbj9lLmxvc3NGdW5jdGlvbjpGRSxyPXt9LGk9e307bGV0IGE7Zm9yKGxldCBmPTA7Zjx0Lmxlbmd0aDsrK2Ype2NvbnN0IGQ9dFtmXTtkLnNldHMubGVuZ3RoPT0xJiYoYT1kLnNldHNbMF0sclthXT17eDoxZTEwLHk6MWUxMCxyb3dpZDpPYmplY3Qua2V5cyhyKS5sZW5ndGgsc2l6ZTpkLnNpemUscmFkaXVzOk1hdGguc3FydChkLnNpemUvTWF0aC5QSSl9LGlbYV09W10pfXQ9dC5maWx0ZXIoZnVuY3Rpb24oZil7cmV0dXJuIGYuc2V0cy5sZW5ndGg9PTJ9KTtmb3IobGV0IGY9MDtmPHQubGVuZ3RoOysrZil7Y29uc3QgZD10W2ZdO2xldCBoPWQuaGFzT3duUHJvcGVydHkoIndlaWdodCIpP2Qud2VpZ2h0OjE7Y29uc3Qgdj1kLnNldHNbMF0sZz1kLnNldHNbMV07ZC5zaXplK2U4Pj1NYXRoLm1pbihyW3ZdLnNpemUscltnXS5zaXplKSYmKGg9MCksaVt2XS5wdXNoKHtzZXQ6ZyxzaXplOmQuc2l6ZSx3ZWlnaHQ6aH0pLGlbZ10ucHVzaCh7c2V0OnYsc2l6ZTpkLnNpemUsd2VpZ2h0Omh9KX1jb25zdCBvPVtdO2ZvcihhIGluIGkpaWYoaS5oYXNPd25Qcm9wZXJ0eShhKSl7bGV0IGY9MDtmb3IobGV0IGQ9MDtkPGlbYV0ubGVuZ3RoOysrZClmKz1pW2FdW2RdLnNpemUqaVthXVtkXS53ZWlnaHQ7by5wdXNoKHtzZXQ6YSxzaXplOmZ9KX1mdW5jdGlvbiBzKGYsZCl7cmV0dXJuIGQuc2l6ZS1mLnNpemV9by5zb3J0KHMpO2NvbnN0IGM9e307ZnVuY3Rpb24gbChmKXtyZXR1cm4gZi5zZXQgaW4gY31mdW5jdGlvbiB1KGYsZCl7cltkXS54PWYueCxyW2RdLnk9Zi55LGNbZF09ITB9dSh7eDowLHk6MH0sb1swXS5zZXQpO2ZvcihsZXQgZj0xO2Y8by5sZW5ndGg7KytmKXtjb25zdCBkPW9bZl0uc2V0LGg9aVtkXS5maWx0ZXIobCk7aWYoYT1yW2RdLGguc29ydChzKSxoLmxlbmd0aD09PTApdGhyb3ciRVJST1I6IG1pc3NpbmcgcGFpcndpc2Ugb3ZlcmxhcCBpbmZvcm1hdGlvbiI7Y29uc3Qgdj1bXTtmb3IobGV0IGI9MDtiPGgubGVuZ3RoOysrYil7Y29uc3QgeD1yW2hbYl0uc2V0XSxfPWpFKGEucmFkaXVzLHgucmFkaXVzLGhbYl0uc2l6ZSk7di5wdXNoKHt4OngueCtfLHk6eC55fSksdi5wdXNoKHt4OngueC1fLHk6eC55fSksdi5wdXNoKHt5OngueStfLHg6eC54fSksdi5wdXNoKHt5OngueS1fLHg6eC54fSk7Zm9yKGxldCB3PWIrMTt3PGgubGVuZ3RoOysrdyl7Y29uc3QgTz1yW2hbd10uc2V0XSxFPWpFKGEucmFkaXVzLE8ucmFkaXVzLGhbd10uc2l6ZSksTT10OCh7eDp4LngseTp4LnkscmFkaXVzOl99LHt4Ok8ueCx5Ok8ueSxyYWRpdXM6RX0pO2ZvcihsZXQgaz0wO2s8TS5sZW5ndGg7KytrKXYucHVzaChNW2tdKX19bGV0IGc9MWU1MCx5PXZbMF07Zm9yKGxldCBiPTA7Yjx2Lmxlbmd0aDsrK2Ipe3JbZF0ueD12W2JdLngscltkXS55PXZbYl0ueTtjb25zdCB4PW4ocix0KTt4PGcmJihnPXgseT12W2JdKX11KHksZCl9cmV0dXJuIHJ9ZnVuY3Rpb24gRkUodCxlKXtsZXQgbj0wO2Z1bmN0aW9uIHIoaSl7cmV0dXJuIGkubWFwKGZ1bmN0aW9uKGEpe3JldHVybiB0W2FdfSl9Zm9yKGxldCBpPTA7aTxlLmxlbmd0aDsrK2kpe2NvbnN0IGE9ZVtpXTtsZXQgbztpZihhLnNldHMubGVuZ3RoPT0xKWNvbnRpbnVlO2lmKGEuc2V0cy5sZW5ndGg9PTIpe2NvbnN0IGM9dFthLnNldHNbMF1dLGw9dFthLnNldHNbMV1dO289SjYoYy5yYWRpdXMsbC5yYWRpdXMsVTAoYyxsKSl9ZWxzZSBvPVE2KHIoYS5zZXRzKSk7Y29uc3Qgcz1hLmhhc093blByb3BlcnR5KCJ3ZWlnaHQiKT9hLndlaWdodDoxO24rPXMqKG8tYS5zaXplKSooby1hLnNpemUpfXJldHVybiBufWZ1bmN0aW9uIFpudCh0LGUsbil7bj09PW51bGw/dC5zb3J0KGZ1bmN0aW9uKGksYSl7cmV0dXJuIGEucmFkaXVzLWkucmFkaXVzfSk6dC5zb3J0KG4pO2xldCByO2lmKHQubGVuZ3RoPjApe2NvbnN0IGk9dFswXS54LGE9dFswXS55O2ZvcihyPTA7cjx0Lmxlbmd0aDsrK3IpdFtyXS54LT1pLHRbcl0ueS09YX1pZih0Lmxlbmd0aD09MiYmZGlzdGFuY2UodFswXSx0WzFdKTxNYXRoLmFicyh0WzFdLnJhZGl1cy10WzBdLnJhZGl1cykmJih0WzFdLng9dFswXS54K3RbMF0ucmFkaXVzLXRbMV0ucmFkaXVzLTFlLTEwLHRbMV0ueT10WzBdLnkpLHQubGVuZ3RoPjEpe2NvbnN0IGk9TWF0aC5hdGFuMih0WzFdLngsdFsxXS55KS1lO2xldCBhLG87Y29uc3Qgcz1NYXRoLmNvcyhpKSxjPU1hdGguc2luKGkpO2ZvcihyPTA7cjx0Lmxlbmd0aDsrK3IpYT10W3JdLngsbz10W3JdLnksdFtyXS54PXMqYS1jKm8sdFtyXS55PWMqYStzKm99aWYodC5sZW5ndGg+Mil7bGV0IGk9TWF0aC5hdGFuMih0WzJdLngsdFsyXS55KS1lO2Zvcig7aTwwOylpKz0yKk1hdGguUEk7Zm9yKDtpPjIqTWF0aC5QSTspaS09MipNYXRoLlBJO2lmKGk+TWF0aC5QSSl7Y29uc3QgYT10WzFdLnkvKDFlLTEwK3RbMV0ueCk7Zm9yKHI9MDtyPHQubGVuZ3RoOysrcil7Y29uc3Qgbz0odFtyXS54K2EqdFtyXS55KS8oMSthKmEpO3Rbcl0ueD0yKm8tdFtyXS54LHRbcl0ueT0yKm8qYS10W3JdLnl9fX19ZnVuY3Rpb24gWW50KHQpe3QubWFwKGZ1bmN0aW9uKG8pe28ucGFyZW50PW99KTtmdW5jdGlvbiBlKG8pe3JldHVybiBvLnBhcmVudCE9PW8mJihvLnBhcmVudD1lKG8ucGFyZW50KSksby5wYXJlbnR9ZnVuY3Rpb24gbihvLHMpe2NvbnN0IGM9ZShvKSxsPWUocyk7Yy5wYXJlbnQ9bH1mb3IobGV0IG89MDtvPHQubGVuZ3RoOysrbylmb3IobGV0IHM9bysxO3M8dC5sZW5ndGg7KytzKXtjb25zdCBjPXRbb10ucmFkaXVzK3Rbc10ucmFkaXVzO2Rpc3RhbmNlKHRbb10sdFtzXSkrMWUtMTA8YyYmbih0W3NdLHRbb10pfWNvbnN0IHI9e307bGV0IGk7Zm9yKGxldCBvPTA7bzx0Lmxlbmd0aDsrK28paT1lKHRbb10pLnBhcmVudC5zZXRpZCxpIGluIHJ8fChyW2ldPVtdKSxyW2ldLnB1c2godFtvXSk7dC5tYXAoZnVuY3Rpb24obyl7ZGVsZXRlIG8ucGFyZW50fSk7Y29uc3QgYT1bXTtmb3IoaSBpbiByKXIuaGFzT3duUHJvcGVydHkoaSkmJmEucHVzaChyW2ldKTtyZXR1cm4gYX1mdW5jdGlvbiBCRSh0KXtjb25zdCBlPWZ1bmN0aW9uKG4pe2NvbnN0IHI9TWF0aC5tYXguYXBwbHkobnVsbCx0Lm1hcChmdW5jdGlvbihhKXtyZXR1cm4gYVtuXSthLnJhZGl1c30pKSxpPU1hdGgubWluLmFwcGx5KG51bGwsdC5tYXAoZnVuY3Rpb24oYSl7cmV0dXJuIGFbbl0tYS5yYWRpdXN9KSk7cmV0dXJue21heDpyLG1pbjppfX07cmV0dXJue3hSYW5nZTplKCJ4IikseVJhbmdlOmUoInkiKX19ZnVuY3Rpb24gSm90KHQsZSxuKXtlPT09bnVsbCYmKGU9TWF0aC5QSS8yKTtsZXQgcj1bXSxpLGE7Zm9yKGEgaW4gdClpZih0Lmhhc093blByb3BlcnR5KGEpKXtjb25zdCBkPXRbYV07ci5wdXNoKHt4OmQueCx5OmQueSxyYWRpdXM6ZC5yYWRpdXMsc2V0aWQ6YX0pfWNvbnN0IG89WW50KHIpO2ZvcihpPTA7aTxvLmxlbmd0aDsrK2kpe1pudChvW2ldLGUsbik7Y29uc3QgZD1CRShvW2ldKTtvW2ldLnNpemU9KGQueFJhbmdlLm1heC1kLnhSYW5nZS5taW4pKihkLnlSYW5nZS5tYXgtZC55UmFuZ2UubWluKSxvW2ldLmJvdW5kcz1kfW8uc29ydChmdW5jdGlvbihkLGgpe3JldHVybiBoLnNpemUtZC5zaXplfSkscj1vWzBdO2xldCBzPXIuYm91bmRzO2NvbnN0IGM9KHMueFJhbmdlLm1heC1zLnhSYW5nZS5taW4pLzUwO2Z1bmN0aW9uIGwoZCxoLHYpe2lmKCFkKXJldHVybjtjb25zdCBnPWQuYm91bmRzO2xldCB5LGIseDtoP3k9cy54UmFuZ2UubWF4LWcueFJhbmdlLm1pbitjOih5PXMueFJhbmdlLm1heC1nLnhSYW5nZS5tYXgseD0oZy54UmFuZ2UubWF4LWcueFJhbmdlLm1pbikvMi0ocy54UmFuZ2UubWF4LXMueFJhbmdlLm1pbikvMix4PDAmJih5Kz14KSksdj9iPXMueVJhbmdlLm1heC1nLnlSYW5nZS5taW4rYzooYj1zLnlSYW5nZS5tYXgtZy55UmFuZ2UubWF4LHg9KGcueVJhbmdlLm1heC1nLnlSYW5nZS5taW4pLzItKHMueVJhbmdlLm1heC1zLnlSYW5nZS5taW4pLzIseDwwJiYoYis9eCkpO2ZvcihsZXQgXz0wO188ZC5sZW5ndGg7KytfKWRbX10ueCs9eSxkW19dLnkrPWIsci5wdXNoKGRbX10pfWxldCB1PTE7Zm9yKDt1PG8ubGVuZ3RoOylsKG9bdV0sITAsITEpLGwob1t1KzFdLCExLCEwKSxsKG9bdSsyXSwhMCwhMCksdSs9MyxzPUJFKHIpO2NvbnN0IGY9e307Zm9yKGk9MDtpPHIubGVuZ3RoOysraSlmW3JbaV0uc2V0aWRdPXJbaV07cmV0dXJuIGZ9ZnVuY3Rpb24gSG50KHQsZSxuLHIpe2NvbnN0IGk9W10sYT1bXTtmb3IoY29uc3QgZyBpbiB0KXQuaGFzT3duUHJvcGVydHkoZykmJihhLnB1c2goZyksaS5wdXNoKHRbZ10pKTtlLT0yKnIsbi09MipyO2NvbnN0IG89QkUoaSkscz1vLnhSYW5nZSxjPW8ueVJhbmdlO2lmKHMubWF4PT1zLm1pbnx8Yy5tYXg9PWMubWluKXJldHVybiBjb25zb2xlLmxvZygibm90IHNjYWxpbmcgc29sdXRpb246IHplcm8gc2l6ZSBkZXRlY3RlZCIpLHQ7Y29uc3QgbD1lLyhzLm1heC1zLm1pbiksdT1uLyhjLm1heC1jLm1pbiksZj1NYXRoLm1pbih1LGwpLGQ9KGUtKHMubWF4LXMubWluKSpmKS8yLGg9KG4tKGMubWF4LWMubWluKSpmKS8yLHY9e307Zm9yKGxldCBnPTA7ZzxpLmxlbmd0aDsrK2cpe2NvbnN0IHk9aVtnXTt2W2FbZ11dPXtyYWRpdXM6Zip5LnJhZGl1cyx4OnIrZCsoeS54LXMubWluKSpmLHk6citoKyh5LnktYy5taW4pKmZ9fXJldHVybiB2fWZ1bmN0aW9uIFZudCh0LGUsbil7Y29uc3Qgcj1bXSxpPXQtbixhPWU7cmV0dXJuIHIucHVzaCgiTSIsaSxhKSxyLnB1c2goIkEiLG4sbiwwLDEsMCxpKzIqbixhKSxyLnB1c2goIkEiLG4sbiwwLDEsMCxpLGEpLHIuam9pbigiICIpfWZ1bmN0aW9uIFhudCh0KXtjb25zdCBlPXt9O1E2KHQsZSk7Y29uc3Qgbj1lLmFyY3M7aWYobi5sZW5ndGg9PT0wKXJldHVybiJNIDAgMCI7aWYobi5sZW5ndGg9PTEpe2NvbnN0IHI9blswXS5jaXJjbGU7cmV0dXJuIFZudChyLngsci55LHIucmFkaXVzKX1lbHNle2NvbnN0IHI9W2AKK01gLG5bMF0ucDIueCxuWzBdLnAyLnldO2ZvcihsZXQgaT0wO2k8bi5sZW5ndGg7KytpKXtjb25zdCBhPW5baV0sbz1hLmNpcmNsZS5yYWRpdXMscz1hLndpZHRoPm87ci5wdXNoKGAKK0FgLG8sbywwLHM/MTowLDEsYS5wMS54LGEucDEueSl9cmV0dXJuIHIuam9pbigiICIpfX1jb25zdCBuOD10PT57Y29uc3R7c2V0czplPSJzZXRzIixzaXplOm49InNpemUiLGFzOnI9WyJrZXkiLCJwYXRoIl0scGFkZGluZzppPTB9PXQsW2Esb109cjtyZXR1cm4gcz0+e2NvbnN0IGM9cy5tYXAoZj0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGYpLHtzZXRzOmZbZV0sc2l6ZTpmW25dLFthXTpmLnNldHMuam9pbigiJiIpfSkpO2Muc29ydCgoZixkKT0+Zi5zZXRzLmxlbmd0aC1kLnNldHMubGVuZ3RoKTtjb25zdCBsPWpudChjKTtsZXQgdTtyZXR1cm4gYy5tYXAoZj0+e2NvbnN0IGQ9ZltlXSxoPSh7d2lkdGg6dixoZWlnaHQ6Z30pPT57dT11fHxIbnQobCx2LGcsaSk7Y29uc3QgeT1kLm1hcCh4PT51W3hdKTtsZXQgYj1YbnQoeSk7cmV0dXJuL1t6Wl0kLy50ZXN0KGIpfHwoYis9IiBaIiksYn07cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxmKSx7W29dOmh9KX0pfX07bjgucHJvcHM9e307ZnVuY3Rpb24gVW50KCl7cmV0dXJueyJkYXRhLnZlbm4iOm44LCJtYXJrLmJveHBsb3QiOlc2LCJtYXJrLmdhdWdlIjpaNiwibWFyay53b3JkQ2xvdWQiOkhPLCJtYXJrLmxpcXVpZCI6cTZ9fWZ1bmN0aW9uIHFudCgpe3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGF0dCgpKSx1bnQoKSksVW50KCkpLGVKKCkpfXZhciBmYj1mdW5jdGlvbigpe3JldHVybiBmYj1PYmplY3QuYXNzaWdufHxmdW5jdGlvbih0KXtmb3IodmFyIGUsbj0xLHI9YXJndW1lbnRzLmxlbmd0aDtuPHI7bisrKXtlPWFyZ3VtZW50c1tuXTtmb3IodmFyIGkgaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxpKSYmKHRbaV09ZVtpXSl9cmV0dXJuIHR9LGZiLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sS250PVBZKFRZLGZiKGZiKHt9LHFudCgpKSxwSCgpKSkscTA9ZnVuY3Rpb24oKXtyZXR1cm4gcTA9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49MSxyPWFyZ3VtZW50cy5sZW5ndGg7bjxyO24rKyl7ZT1hcmd1bWVudHNbbl07Zm9yKHZhciBpIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsaSkmJih0W2ldPWVbaV0pfXJldHVybiB0fSxxMC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LFFudD1mdW5jdGlvbih0LGUpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiZlLmluZGV4T2Yocik8MCYmKG5bcl09dFtyXSk7aWYodCE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBpPTAscj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2k8ci5sZW5ndGg7aSsrKWUuaW5kZXhPZihyW2ldKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodCxyW2ldKSYmKG5bcltpXV09dFtyW2ldXSk7cmV0dXJuIG59LEpudD1bInJlbmRlcmVyIl0scjg9WyJ3aWR0aCIsImhlaWdodCIsImF1dG9GaXQiLCJ0aGVtZSIsImluc2V0IiwiaW5zZXRMZWZ0IiwiaW5zZXRSaWdodCIsImluc2V0VG9wIiwiaW5zZXRCb3R0b20iLCJwYWRkaW5nIiwicGFkZGluZ1RvcCIsInBhZGRpbmdSaWdodCIsInBhZGRpbmdCb3R0b20iLCJwYWRkaW5nTGVmdCIsIm1hcmdpbiIsIm1hcmdpblRvcCIsIm1hcmdpblJpZ2h0IiwibWFyZ2luQm90dG9tIiwibWFyZ2luTGVmdCIsImRlcHRoIiwidGl0bGUiLCJjbGlwIiwiY2hpbGRyZW4iLCJ0eXBlIiwiZGF0YSIsImRpcmVjdGlvbiJdLHpFPSJfX3RyYW5zZm9ybV9fIix0cnQ9Il9fc2tpcERlbEN1c3RvbUtleXNfXyIsQnU9ZnVuY3Rpb24odCxlKXtyZXR1cm4oMCxydC5pc0Jvb2xlYW4pKGUpP3t0eXBlOnQsYXZhaWxhYmxlOmV9OnEwKHt0eXBlOnR9LGUpfSxXRT17eEZpZWxkOiJlbmNvZGUueCIseUZpZWxkOiJlbmNvZGUueSIsY29sb3JGaWVsZDoiZW5jb2RlLmNvbG9yIixhbmdsZUZpZWxkOiJlbmNvZGUueSIsa2V5RmllbGQ6ImVuY29kZS5rZXkiLHNpemVGaWVsZDoiZW5jb2RlLnNpemUiLHNoYXBlRmllbGQ6ImVuY29kZS5zaGFwZSIsc2VyaWVzRmllbGQ6ImVuY29kZS5zZXJpZXMiLHBvc2l0aW9uRmllbGQ6ImVuY29kZS5wb3NpdGlvbiIsdGV4dEZpZWxkOiJlbmNvZGUudGV4dCIsdmFsdWVGaWVsZDoiZW5jb2RlLnZhbHVlIixiaW5GaWVsZDoiZW5jb2RlLngiLHNyY0ZpZWxkOiJlbmNvZGUuc3JjIixsaW5rQ29sb3JGaWVsZDoiZW5jb2RlLmxpbmtDb2xvciIsZm9udFNpemVGaWVsZDoiZW5jb2RlLmZvbnRTaXplIixyYWRpdXM6ImNvb3JkaW5hdGUub3V0ZXJSYWRpdXMiLGlubmVyUmFkaXVzOiJjb29yZGluYXRlLmlubmVyUmFkaXVzIixzdGFydEFuZ2xlOiJjb29yZGluYXRlLnN0YXJ0QW5nbGUiLGVuZEFuZ2xlOiJjb29yZGluYXRlLmVuZEFuZ2xlIixmb2N1c1g6ImNvb3JkaW5hdGUuZm9jdXNYIixmb2N1c1k6ImNvb3JkaW5hdGUuZm9jdXNZIixkaXN0b3J0aW9uWDoiY29vcmRpbmF0ZS5kaXN0b3J0aW9uWCIsZGlzdG9ydGlvblk6ImNvb3JkaW5hdGUuZGlzdG9ydGlvblkiLHZpc3VhbDoiY29vcmRpbmF0ZS52aXN1YWwiLHN0YWNrOnt0YXJnZXQ6InRyYW5zZm9ybSIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIEJ1KCJzdGFja1kiLHQpfX0sbm9ybWFsaXplOnt0YXJnZXQ6InRyYW5zZm9ybSIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIEJ1KCJub3JtYWxpemVZIix0KX19LHBlcmNlbnQ6e3RhcmdldDoidHJhbnNmb3JtIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gQnUoIm5vcm1hbGl6ZVkiLHQpfX0sZ3JvdXA6e3RhcmdldDoidHJhbnNmb3JtIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gQnUoImRvZGdlWCIsdCl9fSxzb3J0Ont0YXJnZXQ6InRyYW5zZm9ybSIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIEJ1KCJzb3J0WCIsdCl9fSxzeW1tZXRyeTp7dGFyZ2V0OiJ0cmFuc2Zvcm0iLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiBCdSgic3ltbWV0cnlZIix0KX19LGRpZmY6e3RhcmdldDoidHJhbnNmb3JtIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gQnUoImRpZmZZIix0KX19LG1ldGE6e3RhcmdldDoic2NhbGUiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0fX0sbGFiZWw6e3RhcmdldDoibGFiZWxzIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdH19LHNoYXBlOiJzdHlsZS5zaGFwZSIsY29ubmVjdE51bGxzOnt0YXJnZXQ6InN0eWxlIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4oMCxydC5pc0Jvb2xlYW4pKHQpP3tjb25uZWN0OnR9OnR9fX0sR0U9WyJ4RmllbGQiLCJ5RmllbGQiLCJzZXJpZXNGaWVsZCIsImNvbG9yRmllbGQiLCJrZXlGaWVsZCIsInBvc2l0aW9uRmllbGQiLCJtZXRhIiwidG9vbHRpcCIsImFuaW1hdGUiLCJzdGFjayIsIm5vcm1hbGl6ZSIsInBlcmNlbnQiLCJncm91cCIsInNvcnQiLCJzeW1tZXRyeSIsImRpZmYiXSxkYj1be2tleToiYW5ub3RhdGlvbnMiLGV4dGVuZF9rZXlzOltdfSx7a2V5OiJsaW5lIix0eXBlOiJsaW5lIixleHRlbmRfa2V5czpHRX0se2tleToicG9pbnQiLHR5cGU6InBvaW50IixleHRlbmRfa2V5czpHRX0se2tleToiYXJlYSIsdHlwZToiYXJlYSIsZXh0ZW5kX2tleXM6R0V9XSxlcnQ9W3trZXk6InRyYW5zZm9ybSIsY2FsbGJhY2s6ZnVuY3Rpb24odCxlLG4pe3ZhciByO3RbZV09dFtlXXx8W107dmFyIGk9bi5hdmFpbGFibGUsYT1pPT09dm9pZCAwPyEwOmksbz1RbnQobixbImF2YWlsYWJsZSJdKTtpZihhKXRbZV0ucHVzaChxMCgocj17fSxyW3pFXT0hMCxyKSxvKSk7ZWxzZXt2YXIgcz10W2VdLmluZGV4T2YoZnVuY3Rpb24oYyl7cmV0dXJuIGMudHlwZT09PW4udHlwZX0pO3MhPT0tMSYmdFtlXS5zcGxpY2UocywxKX19fSx7a2V5OiJsYWJlbHMiLGNhbGxiYWNrOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcjtpZighbnx8KDAscnQuaXNBcnJheSkobikpe3RbZV09bnx8W107cmV0dXJufW4udGV4dHx8KG4udGV4dD10LnlGaWVsZCksdFtlXT10W2VdfHxbXSx0W2VdLnB1c2gocTAoKHI9e30sclt6RV09ITAsciksbikpfX1dLCRFPVt7a2V5OiJjb252ZXJzaW9uVGFnIixzaGFwZToiQ29udmVyc2lvblRhZyJ9LHtrZXk6ImF4aXNUZXh0IixzaGFwZToiQmlkaXJlY3Rpb25hbEJhckF4aXNUZXh0In1dLG5ydD1mdW5jdGlvbigpe3ZhciB0PWZ1bmN0aW9uKGUsbil7cmV0dXJuIHQ9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHIsaSl7ci5fX3Byb3RvX189aX18fGZ1bmN0aW9uKHIsaSl7Zm9yKHZhciBhIGluIGkpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGksYSkmJihyW2FdPWlbYV0pfSx0KGUsbil9O3JldHVybiBmdW5jdGlvbihlLG4pe2lmKHR5cGVvZiBuIT0iZnVuY3Rpb24iJiZuIT09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIrU3RyaW5nKG4pKyIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpO3QoZSxuKTtmdW5jdGlvbiByKCl7dGhpcy5jb25zdHJ1Y3Rvcj1lfWUucHJvdG90eXBlPW49PT1udWxsP09iamVjdC5jcmVhdGUobik6KHIucHJvdG90eXBlPW4ucHJvdG90eXBlLG5ldyByKX19KCksaGI9ZnVuY3Rpb24oKXtyZXR1cm4gaGI9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49MSxyPWFyZ3VtZW50cy5sZW5ndGg7bjxyO24rKyl7ZT1hcmd1bWVudHNbbl07Zm9yKHZhciBpIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsaSkmJih0W2ldPWVbaV0pfXJldHVybiB0fSxoYi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LHJydD1mdW5jdGlvbih0LGUpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiZlLmluZGV4T2Yocik8MCYmKG5bcl09dFtyXSk7aWYodCE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBpPTAscj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2k8ci5sZW5ndGg7aSsrKWUuaW5kZXhPZihyW2ldKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodCxyW2ldKSYmKG5bcltpXV09dFtyW2ldXSk7cmV0dXJuIG59LGlydD1mdW5jdGlvbih0KXtucnQoZSx0KTtmdW5jdGlvbiBlKG4pe249PT12b2lkIDAmJihuPXt9KTt2YXIgcj1uLnN0eWxlLGk9cnJ0KG4sWyJzdHlsZSJdKTtyZXR1cm4gdC5jYWxsKHRoaXMsaGIoe3N0eWxlOmhiKHtmaWxsOiIjZWVlIn0scil9LGkpKXx8dGhpc31yZXR1cm4gZX0oY3UpLGFydD1mdW5jdGlvbigpe3ZhciB0PWZ1bmN0aW9uKGUsbil7cmV0dXJuIHQ9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHIsaSl7ci5fX3Byb3RvX189aX18fGZ1bmN0aW9uKHIsaSl7Zm9yKHZhciBhIGluIGkpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGksYSkmJihyW2FdPWlbYV0pfSx0KGUsbil9O3JldHVybiBmdW5jdGlvbihlLG4pe2lmKHR5cGVvZiBuIT0iZnVuY3Rpb24iJiZuIT09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIrU3RyaW5nKG4pKyIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpO3QoZSxuKTtmdW5jdGlvbiByKCl7dGhpcy5jb25zdHJ1Y3Rvcj1lfWUucHJvdG90eXBlPW49PT1udWxsP09iamVjdC5jcmVhdGUobik6KHIucHJvdG90eXBlPW4ucHJvdG90eXBlLG5ldyByKX19KCkscGI9ZnVuY3Rpb24oKXtyZXR1cm4gcGI9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49MSxyPWFyZ3VtZW50cy5sZW5ndGg7bjxyO24rKyl7ZT1hcmd1bWVudHNbbl07Zm9yKHZhciBpIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsaSkmJih0W2ldPWVbaV0pfXJldHVybiB0fSxwYi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LG9ydD1mdW5jdGlvbih0LGUpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiZlLmluZGV4T2Yocik8MCYmKG5bcl09dFtyXSk7aWYodCE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBpPTAscj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2k8ci5sZW5ndGg7aSsrKWUuaW5kZXhPZihyW2ldKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodCxyW2ldKSYmKG5bcltpXV09dFtyW2ldXSk7cmV0dXJuIG59LGk4PWZ1bmN0aW9uKHQpe2FydChlLHQpO2Z1bmN0aW9uIGUobil7bj09PXZvaWQgMCYmKG49e30pO3ZhciByPW4uc3R5bGUsaT1vcnQobixbInN0eWxlIl0pO3JldHVybiB0LmNhbGwodGhpcyxwYih7c3R5bGU6cGIoe3RleHQ6IiIsZm9udFNpemU6MTIsdGV4dEJhc2VsaW5lOiJtaWRkbGUiLHRleHRBbGlnbjoiY2VudGVyIixmaWxsOiIjMDAwIixmb250U3R5bGU6Im5vcm1hbCIsZm9udFZhcmlhbnQ6Im5vcm1hbCIsZm9udFdlaWdodDoibm9ybWFsIixsaW5lV2lkdGg6MX0scil9LGkpKXx8dGhpc31yZXR1cm4gZX0ocG8pLGE4PWZ1bmN0aW9uKHQsZSxuKXtpZihufHxhcmd1bWVudHMubGVuZ3RoPT09Milmb3IodmFyIHI9MCxpPWUubGVuZ3RoLGE7cjxpO3IrKykoYXx8IShyIGluIGUpKSYmKGF8fChhPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGUsMCxyKSksYVtyXT1lW3JdKTtyZXR1cm4gdC5jb25jYXQoYXx8QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZSkpfSxzcnQ9ZnVuY3Rpb24odCxlKXtpZigoMCxydC5pc0FycmF5KShlKSlyZXR1cm4gZX0sX2w9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07cmV0dXJuIHJ0Lm1lcmdlV2l0aC5hcHBseSh2b2lkIDAsYTgoYTgoW10sdCwhMSksW3NydF0sITEpKX0sY3J0PWZ1bmN0aW9uKCl7dmFyIHQ9ZnVuY3Rpb24oZSxuKXtyZXR1cm4gdD1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24ocixpKXtyLl9fcHJvdG9fXz1pfXx8ZnVuY3Rpb24ocixpKXtmb3IodmFyIGEgaW4gaSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaSxhKSYmKHJbYV09aVthXSl9LHQoZSxuKX07cmV0dXJuIGZ1bmN0aW9uKGUsbil7aWYodHlwZW9mIG4hPSJmdW5jdGlvbiImJm4hPT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIitTdHJpbmcobikrIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7dChlLG4pO2Z1bmN0aW9uIHIoKXt0aGlzLmNvbnN0cnVjdG9yPWV9ZS5wcm90b3R5cGU9bj09PW51bGw/T2JqZWN0LmNyZWF0ZShuKTooci5wcm90b3R5cGU9bi5wcm90b3R5cGUsbmV3IHIpfX0oKSxvOD1mdW5jdGlvbih0KXtjcnQoZSx0KTtmdW5jdGlvbiBlKG4scixpKXt2YXIgYT10LmNhbGwodGhpcyx7c3R5bGU6X2woaSxyKX0pfHx0aGlzO3JldHVybiBhLmNoYXJ0PW4sYX1yZXR1cm4gZS5wcm90b3R5cGUuY29ubmVjdGVkQ2FsbGJhY2s9ZnVuY3Rpb24oKXt0aGlzLnJlbmRlcih0aGlzLmF0dHJpYnV0ZXMsdGhpcyksdGhpcy5iaW5kRXZlbnRzKHRoaXMuYXR0cmlidXRlcyx0aGlzKX0sZS5wcm90b3R5cGUuZGlzY29ubmVjdGVkQ2FsbGJhY2s9ZnVuY3Rpb24oKXt9LGUucHJvdG90eXBlLmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjaz1mdW5jdGlvbihuKXt9LGUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihuLHIpe3ZhciBpO3JldHVybiB0aGlzLmF0dHIoX2woe30sdGhpcy5hdHRyaWJ1dGVzLG58fHt9KSksKGk9dGhpcy5yZW5kZXIpPT09bnVsbHx8aT09PXZvaWQgMD92b2lkIDA6aS5jYWxsKHRoaXMsdGhpcy5hdHRyaWJ1dGVzLHRoaXMscil9LGUucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVDaGlsZHJlbigpfSxlLnByb3RvdHlwZS5nZXRFbGVtZW50c0xheW91dD1mdW5jdGlvbigpe3ZhciBuPXRoaXMuY2hhcnQuZ2V0Q29udGV4dCgpLmNhbnZhcyxyPW4uZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiZWxlbWVudCIpLGk9W107cmV0dXJuIHIuZm9yRWFjaChmdW5jdGlvbihhKXt2YXIgbz1hLmdldEJCb3goKSxzPW8ueCxjPW8ueSxsPW8ud2lkdGgsdT1vLmhlaWdodCxmPWEuX19kYXRhX187aS5wdXNoKHtiYm94Om8seDpzLHk6Yyx3aWR0aDpsLGhlaWdodDp1LGtleTpmLmtleSxkYXRhOmZ9KX0pLGl9LGUucHJvdG90eXBlLmJpbmRFdmVudHM9ZnVuY3Rpb24obixyKXt9LGV9KG1wKSxscnQ9ZnVuY3Rpb24oKXt2YXIgdD1mdW5jdGlvbihlLG4pe3JldHVybiB0PU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihyLGkpe3IuX19wcm90b19fPWl9fHxmdW5jdGlvbihyLGkpe2Zvcih2YXIgYSBpbiBpKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChpLGEpJiYoclthXT1pW2FdKX0sdChlLG4pfTtyZXR1cm4gZnVuY3Rpb24oZSxuKXtpZih0eXBlb2YgbiE9ImZ1bmN0aW9uIiYmbiE9PW51bGwpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiK1N0cmluZyhuKSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTt0KGUsbik7ZnVuY3Rpb24gcigpe3RoaXMuY29uc3RydWN0b3I9ZX1lLnByb3RvdHlwZT1uPT09bnVsbD9PYmplY3QuY3JlYXRlKG4pOihyLnByb3RvdHlwZT1uLnByb3RvdHlwZSxuZXcgcil9fSgpLHZiPWZ1bmN0aW9uKCl7cmV0dXJuIHZiPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPTEscj1hcmd1bWVudHMubGVuZ3RoO248cjtuKyspe2U9YXJndW1lbnRzW25dO2Zvcih2YXIgaSBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLGkpJiYodFtpXT1lW2ldKX1yZXR1cm4gdH0sdmIuYXBwbHkodGhpcyxhcmd1bWVudHMpfSx1cnQ9ZnVuY3Rpb24odCl7bHJ0KGUsdCk7ZnVuY3Rpb24gZShuLHIpe3JldHVybiB0LmNhbGwodGhpcyxuLHIse3R5cGU6ZS50YWd9KXx8dGhpc31yZXR1cm4gZS5wcm90b3R5cGUuZ2V0Q29udmVyc2lvblRhZ0xheW91dD1mdW5jdGlvbigpe3ZhciBuPXRoaXMuZGlyZWN0aW9uPT09InZlcnRpY2FsIixyPXRoaXMuZ2V0RWxlbWVudHNMYXlvdXQoKSxpPXJbMF0sYT1pLngsbz1pLnkscz1pLmhlaWdodCxjPWkud2lkdGgsbD1pLmRhdGEsdT1bIml0ZW1zIiwwLCJ2YWx1ZSJdLGY9KDAscnQuZ2V0KShsLHUpLGQ9bj9yWzFdLnktby1zOnJbMV0ueC1hLWMsaD1bXSx2PXRoaXMuYXR0cmlidXRlcyxnPXYuc2l6ZSx5PWc9PT12b2lkIDA/NDA6ZyxiPXYuYXJyb3dTaXplLHg9Yj09PXZvaWQgMD8yMDpiLF89di5zcGFjaW5nLHc9Xz09PXZvaWQgMD80Ol87cmV0dXJuIHIuZm9yRWFjaChmdW5jdGlvbihPLEUpe2lmKEU+MCl7dmFyIE09Ty54LGs9Ty55LEE9Ty5oZWlnaHQsUD1PLndpZHRoLEM9Ty5kYXRhLE49Ty5rZXksTD0oMCxydC5nZXQpKEMsdSksUj15LzI7aWYobil7dmFyIEk9TStQLzIsRD1rO2gucHVzaCh7cG9pbnRzOltbSStSLEQtZCt3XSxbSStSLEQteC13XSxbSSxELXddLFtJLVIsRC14LXddLFtJLVIsRC1kK3ddXSxjZW50ZXI6W0ksRC1kLzItd10sd2lkdGg6ZCx2YWx1ZTpbZixMXSxrZXk6Tn0pfWVsc2V7dmFyIEk9TSxEPWsrQS8yO2gucHVzaCh7cG9pbnRzOltbTS1kK3csRC1SXSxbTS14LXcsRC1SXSxbSS13LERdLFtNLXgtdyxEK1JdLFtNLWQrdyxEK1JdXSxjZW50ZXI6W0ktZC8yLXcsRF0sd2lkdGg6ZCx2YWx1ZTpbZixMXSxrZXk6Tn0pfWY9TH19KSxofSxlLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXt0aGlzLnNldERpcmVjdGlvbigpLHRoaXMuZHJhd0NvbnZlcnNpb25UYWcoKX0sZS5wcm90b3R5cGUuc2V0RGlyZWN0aW9uPWZ1bmN0aW9uKCl7dmFyIG49dGhpcy5jaGFydC5nZXRDb29yZGluYXRlKCkscj0oMCxydC5nZXQpKG4sIm9wdGlvbnMudHJhbnNmb3JtYXRpb25zIiksaT0iaG9yaXpvbnRhbCI7ci5mb3JFYWNoKGZ1bmN0aW9uKGEpe2EuaW5jbHVkZXMoInRyYW5zcG9zZSIpJiYoaT0idmVydGljYWwiKX0pLHRoaXMuZGlyZWN0aW9uPWl9LGUucHJvdG90eXBlLmRyYXdDb252ZXJzaW9uVGFnPWZ1bmN0aW9uKCl7dmFyIG49dGhpcyxyPXRoaXMuZ2V0Q29udmVyc2lvblRhZ0xheW91dCgpLGk9dGhpcy5hdHRyaWJ1dGVzLGE9aS5zdHlsZSxvPWkudGV4dCxzPW8uc3R5bGUsYz1vLmZvcm1hdHRlcjtyLmZvckVhY2goZnVuY3Rpb24obCl7dmFyIHU9bC5wb2ludHMsZj1sLmNlbnRlcixkPWwudmFsdWUsaD1sLmtleSx2PWRbMF0sZz1kWzFdLHk9ZlswXSxiPWZbMV0seD1uZXcgaXJ0KHtzdHlsZTp2Yih7cG9pbnRzOnUsZmlsbDoiI2VlZSJ9LGEpLGlkOiJwb2x5Z29uLSIuY29uY2F0KGgpfSksXz1uZXcgaTgoe3N0eWxlOnZiKHt4OnkseTpiLHRleHQ6KDAscnQuaXNGdW5jdGlvbikoYyk/Yyh2LGcpOihnL3YqMTAwKS50b0ZpeGVkKDIpKyIlIn0scyksaWQ6InRleHQtIi5jb25jYXQoaCl9KTtuLmFwcGVuZENoaWxkKHgpLG4uYXBwZW5kQ2hpbGQoXyl9KX0sZS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKCl7dmFyIG49dGhpcyxyPXRoaXMuZ2V0Q29udmVyc2lvblRhZ0xheW91dCgpO3IuZm9yRWFjaChmdW5jdGlvbihpKXt2YXIgYT1pLnBvaW50cyxvPWkuY2VudGVyLHM9aS5rZXksYz1vWzBdLGw9b1sxXSx1PW4uZ2V0RWxlbWVudEJ5SWQoInBvbHlnb24tIi5jb25jYXQocykpLGY9bi5nZXRFbGVtZW50QnlJZCgidGV4dC0iLmNvbmNhdChzKSk7dS5zZXRBdHRyaWJ1dGUoInBvaW50cyIsYSksZi5zZXRBdHRyaWJ1dGUoIngiLGMpLGYuc2V0QXR0cmlidXRlKCJ5IixsKX0pfSxlLnRhZz0iQ29udmVyc2lvblRhZyIsZX0obzgpLFpFPTMyLHM4PTE2LGM4PTQ4LGZydD1mdW5jdGlvbigpe3ZhciB0PWZ1bmN0aW9uKGUsbil7cmV0dXJuIHQ9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHIsaSl7ci5fX3Byb3RvX189aX18fGZ1bmN0aW9uKHIsaSl7Zm9yKHZhciBhIGluIGkpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGksYSkmJihyW2FdPWlbYV0pfSx0KGUsbil9O3JldHVybiBmdW5jdGlvbihlLG4pe2lmKHR5cGVvZiBuIT0iZnVuY3Rpb24iJiZuIT09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIrU3RyaW5nKG4pKyIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpO3QoZSxuKTtmdW5jdGlvbiByKCl7dGhpcy5jb25zdHJ1Y3Rvcj1lfWUucHJvdG90eXBlPW49PT1udWxsP09iamVjdC5jcmVhdGUobik6KHIucHJvdG90eXBlPW4ucHJvdG90eXBlLG5ldyByKX19KCksSzA9ZnVuY3Rpb24oKXtyZXR1cm4gSzA9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49MSxyPWFyZ3VtZW50cy5sZW5ndGg7bjxyO24rKyl7ZT1hcmd1bWVudHNbbl07Zm9yKHZhciBpIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsaSkmJih0W2ldPWVbaV0pfXJldHVybiB0fSxLMC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LGRydD1mdW5jdGlvbih0LGUpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiZlLmluZGV4T2Yocik8MCYmKG5bcl09dFtyXSk7aWYodCE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBpPTAscj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2k8ci5sZW5ndGg7aSsrKWUuaW5kZXhPZihyW2ldKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodCxyW2ldKSYmKG5bcltpXV09dFtyW2ldXSk7cmV0dXJuIG59LGhydD1mdW5jdGlvbih0KXtmcnQoZSx0KTtmdW5jdGlvbiBlKG4scil7cmV0dXJuIHQuY2FsbCh0aGlzLG4scix7dHlwZTplLnRhZ30pfHx0aGlzfXJldHVybiBlLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXt0aGlzLmRyYXdUZXh0KCl9LGUucHJvdG90eXBlLmdldEJpZGlyZWN0aW9uYWxCYXJBeGlzVGV4dExheW91dD1mdW5jdGlvbigpe3ZhciBuPXRoaXMuYXR0cmlidXRlcy5sYXlvdXQscj1uPT09InZlcnRpY2FsIixpPXRoaXMuZ2V0RWxlbWVudHNMYXlvdXQoKSxhPXI/KDAscnQudW5pcUJ5KShpLCJ4Iik6KDAscnQudW5pcUJ5KShpLCJ5Iiksbz1bInRpdGxlIl0scz1bXSxjPXRoaXMuY2hhcnQuZ2V0Q29udGV4dCgpLnZpZXdzLGw9KDAscnQuZ2V0KShjLFswLCJsYXlvdXQiXSksdT1sLndpZHRoLGY9bC5oZWlnaHQ7cmV0dXJuIGEuZm9yRWFjaChmdW5jdGlvbihkKXt2YXIgaD1kLngsdj1kLnksZz1kLmhlaWdodCx5PWQud2lkdGgsYj1kLmRhdGEseD1kLmtleSxfPSgwLHJ0LmdldCkoYixvKTtyP3MucHVzaCh7eDpoK3kvMix5OmYsdGV4dDpfLGtleTp4fSk6cy5wdXNoKHt4OnUseTp2K2cvMix0ZXh0Ol8sa2V5Onh9KX0pLCgwLHJ0LnVuaXFCeSkocywidGV4dCIpLmxlbmd0aCE9PXMubGVuZ3RoJiYocz1PYmplY3QudmFsdWVzKCgwLHJ0Lmdyb3VwQnkpKHMsInRleHQiKSkubWFwKGZ1bmN0aW9uKGQpe3ZhciBoLHY9ZC5yZWR1Y2UoZnVuY3Rpb24oZyx5KXtyZXR1cm4gZysocj95Lng6eS55KX0sMCk7cmV0dXJuIEswKEswKHt9LGRbMF0pLChoPXt9LGhbcj8ieCI6InkiXT12L2QubGVuZ3RoLGgpKX0pKSxzfSxlLnByb3RvdHlwZS50cmFuc2Zvcm1MYWJlbFN0eWxlPWZ1bmN0aW9uKG4pe3ZhciByPXt9LGk9L15sYWJlbFtBLVpdLztyZXR1cm4gT2JqZWN0LmtleXMobikuZm9yRWFjaChmdW5jdGlvbihhKXtpLnRlc3QoYSkmJihyW2EucmVwbGFjZSgibGFiZWwiLCIiKS5yZXBsYWNlKC9eW0EtWl0vLGZ1bmN0aW9uKG8pe3JldHVybiBvLnRvTG93ZXJDYXNlKCl9KV09blthXSl9KSxyfSxlLnByb3RvdHlwZS5kcmF3VGV4dD1mdW5jdGlvbigpe3ZhciBuPXRoaXMscj10aGlzLmdldEJpZGlyZWN0aW9uYWxCYXJBeGlzVGV4dExheW91dCgpLGk9dGhpcy5hdHRyaWJ1dGVzLGE9aS5sYXlvdXQsbz1pLmxhYmVsRm9ybWF0dGVyLHM9ZHJ0KGksWyJsYXlvdXQiLCJsYWJlbEZvcm1hdHRlciJdKTtyLmZvckVhY2goZnVuY3Rpb24oYyl7dmFyIGw9Yy54LHU9Yy55LGY9Yy50ZXh0LGQ9Yy5rZXksaD1uZXcgaTgoe3N0eWxlOkswKHt4OmwseTp1LHRleHQ6KDAscnQuaXNGdW5jdGlvbikobyk/byhmKTpmLHdvcmRXcmFwOiEwLHdvcmRXcmFwV2lkdGg6YT09PSJob3Jpem9udGFsIj9aRSoyOjEyMCxtYXhMaW5lczoyLHRleHRPdmVyZmxvdzoiZWxsaXBzaXMifSxuLnRyYW5zZm9ybUxhYmVsU3R5bGUocykpLGlkOiJ0ZXh0LSIuY29uY2F0KGQpfSk7bi5hcHBlbmRDaGlsZChoKX0pfSxlLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7dGhpcy5jbGVhcigpfSxlLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oKXt0aGlzLmRlc3Ryb3koKSx0aGlzLmRyYXdUZXh0KCl9LGUudGFnPSJCaWRpcmVjdGlvbmFsQmFyQXhpc1RleHQiLGV9KG84KSxwcnQ9e0NvbnZlcnNpb25UYWc6dXJ0LEJpZGlyZWN0aW9uYWxCYXJBeGlzVGV4dDpocnR9LHZydD1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSxuKXt0aGlzLmNvbnRhaW5lcj1uZXcgTWFwLHRoaXMuY2hhcnQ9ZSx0aGlzLmNvbmZpZz1uLHRoaXMuaW5pdCgpfXJldHVybiB0LnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKCl7dmFyIGU9dGhpczskRS5mb3JFYWNoKGZ1bmN0aW9uKG4pe3ZhciByLGk9bi5rZXksYT1uLnNoYXBlLG89ZS5jb25maWdbaV07aWYobyl7dmFyIHM9bmV3IHBydFthXShlLmNoYXJ0LG8pLGM9ZS5jaGFydC5nZXRDb250ZXh0KCkuY2FudmFzO2MuYXBwZW5kQ2hpbGQocyksZS5jb250YWluZXIuc2V0KGkscyl9ZWxzZShyPWUuY29udGFpbmVyLmdldChpKSk9PT1udWxsfHxyPT09dm9pZCAwfHxyLmNsZWFyKCl9KX0sdC5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLmNvbnRhaW5lci5zaXplJiYkRS5mb3JFYWNoKGZ1bmN0aW9uKG4pe3ZhciByPW4ua2V5LGk9ZS5jb250YWluZXIuZ2V0KHIpO2k9PW51bGx8fGkudXBkYXRlKCl9KX0sdH0oKSxncnQ9ZnVuY3Rpb24oKXt2YXIgdD1mdW5jdGlvbihlLG4pe3JldHVybiB0PU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihyLGkpe3IuX19wcm90b19fPWl9fHxmdW5jdGlvbihyLGkpe2Zvcih2YXIgYSBpbiBpKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChpLGEpJiYoclthXT1pW2FdKX0sdChlLG4pfTtyZXR1cm4gZnVuY3Rpb24oZSxuKXtpZih0eXBlb2YgbiE9ImZ1bmN0aW9uIiYmbiE9PW51bGwpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiK1N0cmluZyhuKSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTt0KGUsbik7ZnVuY3Rpb24gcigpe3RoaXMuY29uc3RydWN0b3I9ZX1lLnByb3RvdHlwZT1uPT09bnVsbD9PYmplY3QuY3JlYXRlKG4pOihyLnByb3RvdHlwZT1uLnByb3RvdHlwZSxuZXcgcil9fSgpLE5kPWZ1bmN0aW9uKCl7cmV0dXJuIE5kPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPTEscj1hcmd1bWVudHMubGVuZ3RoO248cjtuKyspe2U9YXJndW1lbnRzW25dO2Zvcih2YXIgaSBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLGkpJiYodFtpXT1lW2ldKX1yZXR1cm4gdH0sTmQuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxsOD0iZGF0YS1jaGFydC1zb3VyY2UtdHlwZSIsT249ZnVuY3Rpb24odCl7Z3J0KGUsdCk7ZnVuY3Rpb24gZShuLHIpe3ZhciBpPXQuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gaS5jb250YWluZXI9dHlwZW9mIG49PSJzdHJpbmciP2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKG4pOm4saS5vcHRpb25zPWkubWVyZ2VPcHRpb24ociksaS5jcmVhdGVHMigpLGkuYmluZEV2ZW50cygpLGl9cmV0dXJuIGUucHJvdG90eXBlLmdldENoYXJ0T3B0aW9ucz1mdW5jdGlvbigpe3JldHVybiBOZChOZCh7fSwoMCxydC5waWNrKSh0aGlzLm9wdGlvbnMsSm50KSkse2NvbnRhaW5lcjp0aGlzLmNvbnRhaW5lcn0pfSxlLnByb3RvdHlwZS5nZXRTcGVjT3B0aW9ucz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnR5cGU9PT0iYmFzZSJ8fHRoaXNbdHJ0XT9OZChOZCh7fSx0aGlzLm9wdGlvbnMpLHRoaXMuZ2V0Q2hhcnRPcHRpb25zKCkpOnRoaXMub3B0aW9uc30sZS5wcm90b3R5cGUuY3JlYXRlRzI9ZnVuY3Rpb24oKXtpZighdGhpcy5jb250YWluZXIpdGhyb3cgRXJyb3IoIlRoZSBjb250YWluZXIgaXMgbm90IGluaXRpYWxpemVkISIpO3RoaXMuY2hhcnQ9bmV3IEtudCh0aGlzLmdldENoYXJ0T3B0aW9ucygpKSx0aGlzLmNvbnRhaW5lci5zZXRBdHRyaWJ1dGUobDgsIkFudCBEZXNpZ24gQ2hhcnRzIil9LGUucHJvdG90eXBlLmJpbmRFdmVudHM9ZnVuY3Rpb24oKXt2YXIgbj10aGlzO3RoaXMuY2hhcnQmJnRoaXMuY2hhcnQub24oIioiLGZ1bmN0aW9uKHIpe3IhPW51bGwmJnIudHlwZSYmbi5lbWl0KHIudHlwZSxyKX0pfSxlLnByb3RvdHlwZS5nZXRCYXNlT3B0aW9ucz1mdW5jdGlvbigpe3JldHVybnt0eXBlOiJ2aWV3IixhdXRvRml0OiEwfX0sZS5wcm90b3R5cGUuZ2V0RGVmYXVsdE9wdGlvbnM9ZnVuY3Rpb24oKXt9LGUucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbigpe3ZhciBuPXRoaXM7dGhpcy50eXBlIT09ImJhc2UiJiZ0aGlzLmV4ZWNBZGFwdG9yKCksdGhpcy5jaGFydC5vcHRpb25zKHRoaXMuZ2V0U3BlY09wdGlvbnMoKSksdGhpcy5jaGFydC5yZW5kZXIoKS50aGVuKGZ1bmN0aW9uKCl7bi5hbm5vdGF0aW9uPW5ldyB2cnQobi5jaGFydCxuLm9wdGlvbnMpfSksdGhpcy5iaW5kU2l6ZVNlbnNvcigpfSxlLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24obil7dGhpcy5vcHRpb25zPXRoaXMubWVyZ2VPcHRpb24obil9LGUucHJvdG90eXBlLm1lcmdlT3B0aW9uPWZ1bmN0aW9uKG4pe3JldHVybiBfbCh7fSx0aGlzLmdldEJhc2VPcHRpb25zKCksdGhpcy5nZXREZWZhdWx0T3B0aW9ucygpLG4pfSxlLnByb3RvdHlwZS5jaGFuZ2VEYXRhPWZ1bmN0aW9uKG4pe3RoaXMuY2hhcnQuY2hhbmdlRGF0YShuKX0sZS5wcm90b3R5cGUuY2hhbmdlU2l6ZT1mdW5jdGlvbihuLHIpe3RoaXMuY2hhcnQuY2hhbmdlU2l6ZShuLHIpfSxlLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7dGhpcy5jaGFydC5kZXN0cm95KCksdGhpcy5vZmYoKSx0aGlzLmNvbnRhaW5lci5yZW1vdmVBdHRyaWJ1dGUobDgpfSxlLnByb3RvdHlwZS5leGVjQWRhcHRvcj1mdW5jdGlvbigpe3ZhciBuPXRoaXMuZ2V0U2NoZW1hQWRhcHRvcigpO24oe2NoYXJ0OnRoaXMuY2hhcnQsb3B0aW9uczp0aGlzLm9wdGlvbnN9KX0sZS5wcm90b3R5cGUudHJpZ2dlclJlc2l6ZT1mdW5jdGlvbigpe3RoaXMuY2hhcnQuZm9yY2VGaXQoKX0sZS5wcm90b3R5cGUuYmluZFNpemVTZW5zb3I9ZnVuY3Rpb24oKXt2YXIgbj10aGlzLHI9dGhpcy5vcHRpb25zLmF1dG9GaXQsaT1yPT09dm9pZCAwPyEwOnI7aSYmdGhpcy5jaGFydC5vbihJbi5BRlRFUl9DSEFOR0VfU0laRSxmdW5jdGlvbigpe24uYW5ub3RhdGlvbi51cGRhdGUoKX0pfSxlfShUcykseXJ0PWZ1bmN0aW9uKCl7dmFyIHQ9ZnVuY3Rpb24oZSxuKXtyZXR1cm4gdD1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24ocixpKXtyLl9fcHJvdG9fXz1pfXx8ZnVuY3Rpb24ocixpKXtmb3IodmFyIGEgaW4gaSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaSxhKSYmKHJbYV09aVthXSl9LHQoZSxuKX07cmV0dXJuIGZ1bmN0aW9uKGUsbil7aWYodHlwZW9mIG4hPSJmdW5jdGlvbiImJm4hPT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIitTdHJpbmcobikrIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7dChlLG4pO2Z1bmN0aW9uIHIoKXt0aGlzLmNvbnN0cnVjdG9yPWV9ZS5wcm90b3R5cGU9bj09PW51bGw/T2JqZWN0LmNyZWF0ZShuKTooci5wcm90b3R5cGU9bi5wcm90b3R5cGUsbmV3IHIpfX0oKSxtcnQ9ZnVuY3Rpb24odCl7eXJ0KGUsdCk7ZnVuY3Rpb24gZSgpe3ZhciBuPXQhPT1udWxsJiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpcztyZXR1cm4gbi50eXBlPSJiYXNlIixufXJldHVybiBlLmdldERlZmF1bHRPcHRpb25zPWZ1bmN0aW9uKCl7cmV0dXJue3R5cGU6InZpZXciLGNoaWxkcmVuOlt7dHlwZToibGluZSJ9XX19LGUucHJvdG90eXBlLmdldERlZmF1bHRPcHRpb25zPWZ1bmN0aW9uKCl7cmV0dXJuIGUuZ2V0RGVmYXVsdE9wdGlvbnMoKX0sZS5wcm90b3R5cGUuZ2V0U2NoZW1hQWRhcHRvcj1mdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gbn19LGV9KE9uKSxicnQ9ZnVuY3Rpb24odCl7dmFyIGU9dC5vcHRpb25zLG49ZS5jaGlsZHJlbixyPW49PT12b2lkIDA/W106bjtyZXR1cm4gci5mb3JFYWNoKGZ1bmN0aW9uKGkpe09iamVjdC5rZXlzKGkpLmZvckVhY2goZnVuY3Rpb24oYSl7KDAscnQuaXNBcnJheSkoaVthXSkmJmEhPT0iZGF0YSImJihpW2FdPWlbYV0uZmlsdGVyKGZ1bmN0aW9uKG8pe3JldHVybiFvW3pFXX0pKX0pfSksZX0sdTg9ZnVuY3Rpb24odCxlLG4pe2lmKG58fGFyZ3VtZW50cy5sZW5ndGg9PT0yKWZvcih2YXIgcj0wLGk9ZS5sZW5ndGgsYTtyPGk7cisrKShhfHwhKHIgaW4gZSkpJiYoYXx8KGE9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZSwwLHIpKSxhW3JdPWVbcl0pO3JldHVybiB0LmNvbmNhdChhfHxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChlKSl9LHhydD1mdW5jdGlvbih0KXt2YXIgZT10LmNoaWxkcmVuLG49ZT09PXZvaWQgMD9bXTplLHI9T2JqZWN0LmtleXMoV0UpLmNvbmNhdChkYi5tYXAoZnVuY3Rpb24oaSl7cmV0dXJuIGkua2V5fSkpO3JldHVybiByLmZvckVhY2goZnVuY3Rpb24oaSl7ZGVsZXRlIHRbaV19KSxuLmZvckVhY2goZnVuY3Rpb24oaSl7T2JqZWN0LmtleXMoaSkuZm9yRWFjaChmdW5jdGlvbihhKXtyLmluY2x1ZGVzKGEpJiZkZWxldGUgaVthXX0pfSksT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihpKXt1OCh1OChbXSxyOCwhMCksJEUubWFwKGZ1bmN0aW9uKGEpe3JldHVybiBhLmtleX0pLCEwKS5pbmNsdWRlcyhpKXx8ZGVsZXRlIHRbaV19KSx0fSxqbj1mdW5jdGlvbih0KXt2YXIgZT1icnQodCksbj1lLmNoaWxkcmVuLHI9bj09PXZvaWQgMD9bXTpuLGk9KDAscnQub21pdCkoZSxbXS5jb25jYXQocjgsZGIubWFwKGZ1bmN0aW9uKGwpe3JldHVybiBsLmtleX0pKSksYT1mdW5jdGlvbihsKXt2YXIgdTtyZXR1cm4odT1lcnQuZmluZChmdW5jdGlvbihmKXtyZXR1cm4gZi5rZXk9PT1sfSkpPT09bnVsbHx8dT09PXZvaWQgMD92b2lkIDA6dS5jYWxsYmFja30sbz1mdW5jdGlvbihsLHUsZil7dmFyIGQ9YSh1KTtkP2QobCx1LGYpOmxbdV09X2woe30sbFt1XSxmKX0scz1mdW5jdGlvbihsKXtPYmplY3Qua2V5cyhsKS5mb3JFYWNoKGZ1bmN0aW9uKHUpe2lmKGxbdV0pe3ZhciBmPWRiLmZpbmQoZnVuY3Rpb24odil7cmV0dXJuIHYua2V5PT09dX0pO2lmKGYpe3ZhciBkPWYudHlwZSxoPWYuZXh0ZW5kX2tleXM7ZD9yLnB1c2goYyhfbCh7fSwoMCxydC5waWNrKShsLGgpLHt0eXBlOmR9LGxbdV0pKSk6KDAscnQuaXNBcnJheSkobFt1XSkmJmxbdV0uZm9yRWFjaChmdW5jdGlvbih2KXtyLnB1c2goYyh2KSl9KX19fSl9LGM9ZnVuY3Rpb24obCl7cmV0dXJuIHMobCksT2JqZWN0LmtleXMoV0UpLmZvckVhY2goZnVuY3Rpb24odSl7dmFyIGY9V0VbdV07aWYoISgwLHJ0LmlzVW5kZWZpbmVkKShsW3VdKSlpZigoMCxydC5pc09iamVjdCkoZikpe3ZhciBkPWYudmFsdWUsaD1mLnRhcmdldCx2PWQobFt1XSk7byhsLGgsdil9ZWxzZSgwLHJ0LnNldCkobCxmLGxbdV0pfSksbH07cmV0dXJuIHIuZm9yRWFjaChmdW5jdGlvbihsKXt2YXIgdT1fbCh7fSxpLGwpO2MoX2wobCx1KSl9KSxzKGUpLHhydChlKSx0fSxZRT1mdW5jdGlvbigpe3JldHVybiBZRT1PYmplY3QuYXNzaWdufHxmdW5jdGlvbih0KXtmb3IodmFyIGUsbj0xLHI9YXJndW1lbnRzLmxlbmd0aDtuPHI7bisrKXtlPWFyZ3VtZW50c1tuXTtmb3IodmFyIGkgaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxpKSYmKHRbaV09ZVtpXSl9cmV0dXJuIHR9LFlFLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07ZnVuY3Rpb24gX3J0KHQpe3ZhciBlPXQub3B0aW9ucyxuPWUuc3RhY2sscj1lLnRvb2x0aXAsaT1lLnhGaWVsZDtpZighbilyZXR1cm4gdDt2YXIgYT1kYi5tYXAoZnVuY3Rpb24ocyl7cmV0dXJuIHMudHlwZX0pLmZpbHRlcihmdW5jdGlvbihzKXtyZXR1cm4hIXN9KSxvPSExO3JldHVybiBhLmZvckVhY2goZnVuY3Rpb24ocyl7ZVtzXSYmKG89ITAsKDAscnQuc2V0KShlLFtzLCJzdGFjayJdLFlFKHt5MToieSJ9LHR5cGVvZiBuPT0ib2JqZWN0Ij9uOnt9KSkpfSksbyYmISgwLHJ0LmlzQm9vbGVhbikocikmJiFyJiYoMCxydC5zZXQpKGUsInRvb2x0aXAiLHt0aXRsZTppLGl0ZW1zOlt7Y2hhbm5lbDoieSJ9XX0pLHR9ZnVuY3Rpb24gVHIodCl7cmV0dXJuKDAscnQuZmxvdykoX3J0KSh0KX1mdW5jdGlvbiB3cnQodCl7cmV0dXJuKDAscnQuZmxvdykoVHIsam4pKHQpfXZhciBPcnQ9ZnVuY3Rpb24oKXt2YXIgdD1mdW5jdGlvbihlLG4pe3JldHVybiB0PU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihyLGkpe3IuX19wcm90b19fPWl9fHxmdW5jdGlvbihyLGkpe2Zvcih2YXIgYSBpbiBpKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChpLGEpJiYoclthXT1pW2FdKX0sdChlLG4pfTtyZXR1cm4gZnVuY3Rpb24oZSxuKXtpZih0eXBlb2YgbiE9ImZ1bmN0aW9uIiYmbiE9PW51bGwpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiK1N0cmluZyhuKSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTt0KGUsbik7ZnVuY3Rpb24gcigpe3RoaXMuY29uc3RydWN0b3I9ZX1lLnByb3RvdHlwZT1uPT09bnVsbD9PYmplY3QuY3JlYXRlKG4pOihyLnByb3RvdHlwZT1uLnByb3RvdHlwZSxuZXcgcil9fSgpLFNydD1mdW5jdGlvbih0KXtPcnQoZSx0KTtmdW5jdGlvbiBlKCl7dmFyIG49dCE9PW51bGwmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzO3JldHVybiBuLnR5cGU9ImFyZWEiLG59cmV0dXJuIGUuZ2V0RGVmYXVsdE9wdGlvbnM9ZnVuY3Rpb24oKXtyZXR1cm57dHlwZToidmlldyIsY2hpbGRyZW46W3t0eXBlOiJhcmVhIn1dLHNjYWxlOnt5OntuaWNlOiEwfX0sYXhpczp7eTp7dGl0bGU6ITF9LHg6e3RpdGxlOiExfX0saW50ZXJhY3Rpb246e3Rvb2x0aXA6e3NoYXJlZDohMH19fX0sZS5wcm90b3R5cGUuZ2V0RGVmYXVsdE9wdGlvbnM9ZnVuY3Rpb24oKXtyZXR1cm4gZS5nZXREZWZhdWx0T3B0aW9ucygpfSxlLnByb3RvdHlwZS5nZXRTY2hlbWFBZGFwdG9yPWZ1bmN0aW9uKCl7cmV0dXJuIHdydH0sZX0oT24pLElkPWZ1bmN0aW9uKCl7cmV0dXJuIElkPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPTEscj1hcmd1bWVudHMubGVuZ3RoO248cjtuKyspe2U9YXJndW1lbnRzW25dO2Zvcih2YXIgaSBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLGkpJiYodFtpXT1lW2ldKX1yZXR1cm4gdH0sSWQuYXBwbHkodGhpcyxhcmd1bWVudHMpfTtmdW5jdGlvbiBmOCh0KXt2YXIgZT1mdW5jdGlvbihuKXt2YXIgcj1uLm9wdGlvbnM7KDAscnQuZ2V0KShyLCJjaGlsZHJlbi5sZW5ndGgiKT4xJiYoMCxydC5zZXQpKHIsImNoaWxkcmVuIixbe3R5cGU6ImludGVydmFsIn1dKTt2YXIgaT1yLnNjYWxlLGE9ci5tYXJrQmFja2dyb3VuZCxvPXIuZGF0YSxzPXIuY2hpbGRyZW4sYz1yLnlGaWVsZCxsPSgwLHJ0LmdldCkoaSwieS5kb21haW4iLFtdKTtpZihhJiZsLmxlbmd0aCYmKDAscnQuaXNBcnJheSkobykpe3ZhciB1PSJkb21haW5NYXgiLGY9by5tYXAoZnVuY3Rpb24oZCl7dmFyIGg7cmV0dXJuIElkKElkKHtvcmlnaW5EYXRhOklkKHt9LGQpfSwoMCxydC5vbWl0KShkLGMpKSwoaD17fSxoW3VdPWxbbC5sZW5ndGgtMV0saCkpfSk7cy51bnNoaWZ0KElkKHt0eXBlOiJpbnRlcnZhbCIsZGF0YTpmLHlGaWVsZDp1LHRvb2x0aXA6ITEsc3R5bGU6e2ZpbGw6IiNlZWUifSxsYWJlbDohMX0sYSkpfXJldHVybiBufTtyZXR1cm4oMCxydC5mbG93KShlLFRyLGpuKSh0KX12YXIgRXJ0PWZ1bmN0aW9uKCl7dmFyIHQ9ZnVuY3Rpb24oZSxuKXtyZXR1cm4gZnVuY3Rpb24ocil7dmFyIGk9ZS5maWxsLGE9aT09PXZvaWQgMD8iIzI4ODhGRiI6aSxvPWUuc3Ryb2tlLHM9ZS5maWxsT3BhY2l0eSxjPXM9PT12b2lkIDA/MTpzLGw9ZS5zdHJva2VPcGFjaXR5LHU9bD09PXZvaWQgMD8uMjpsLGY9ZS5waXRjaCxkPWY9PT12b2lkIDA/ODpmLGg9clswXSx2PXJbMV0sZz1yWzJdLHk9clszXSxiPSh2WzFdLWhbMV0pLzIseD1uLmRvY3VtZW50LF89eC5jcmVhdGVFbGVtZW50KCJnIix7fSksdz14LmNyZWF0ZUVsZW1lbnQoInBvbHlnb24iLHtzdHlsZTp7cG9pbnRzOltoLFtoWzBdLWQsaFsxXStiXSxbZ1swXS1kLGhbMV0rYl0seV0sZmlsbDphLGZpbGxPcGFjaXR5OmMsc3Ryb2tlOm8sc3Ryb2tlT3BhY2l0eTp1LGluc2V0OjMwfX0pLE89eC5jcmVhdGVFbGVtZW50KCJwb2x5Z29uIix7c3R5bGU6e3BvaW50czpbW2hbMF0tZCxoWzFdK2JdLHYsZyxbZ1swXS1kLGhbMV0rYl1dLGZpbGw6YSxmaWxsT3BhY2l0eTpjLHN0cm9rZTpvLHN0cm9rZU9wYWNpdHk6dX19KSxFPXguY3JlYXRlRWxlbWVudCgicG9seWdvbiIse3N0eWxlOntwb2ludHM6W2gsW2hbMF0tZCxoWzFdK2JdLHYsW2hbMF0rZCxoWzFdK2JdXSxmaWxsOmEsZmlsbE9wYWNpdHk6Yy0uMn19KTtyZXR1cm4gXy5hcHBlbmRDaGlsZCh3KSxfLmFwcGVuZENoaWxkKE8pLF8uYXBwZW5kQ2hpbGQoRSksX319O29BKCJzaGFwZS5pbnRlcnZhbC5iYXIyNUQiLHQpfSxNcnQ9ZnVuY3Rpb24oKXt2YXIgdD1mdW5jdGlvbihlLG4pe3JldHVybiB0PU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihyLGkpe3IuX19wcm90b19fPWl9fHxmdW5jdGlvbihyLGkpe2Zvcih2YXIgYSBpbiBpKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChpLGEpJiYoclthXT1pW2FdKX0sdChlLG4pfTtyZXR1cm4gZnVuY3Rpb24oZSxuKXtpZih0eXBlb2YgbiE9ImZ1bmN0aW9uIiYmbiE9PW51bGwpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiK1N0cmluZyhuKSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTt0KGUsbik7ZnVuY3Rpb24gcigpe3RoaXMuY29uc3RydWN0b3I9ZX1lLnByb3RvdHlwZT1uPT09bnVsbD9PYmplY3QuY3JlYXRlKG4pOihyLnByb3RvdHlwZT1uLnByb3RvdHlwZSxuZXcgcil9fSgpO0VydCgpO3ZhciBrcnQ9ZnVuY3Rpb24odCl7TXJ0KGUsdCk7ZnVuY3Rpb24gZSgpe3ZhciBuPXQhPT1udWxsJiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpcztyZXR1cm4gbi50eXBlPSJCYXIiLG59cmV0dXJuIGUuZ2V0RGVmYXVsdE9wdGlvbnM9ZnVuY3Rpb24oKXtyZXR1cm57dHlwZToidmlldyIsY29vcmRpbmF0ZTp7dHJhbnNmb3JtOlt7dHlwZToidHJhbnNwb3NlIn1dfSxjaGlsZHJlbjpbe3R5cGU6ImludGVydmFsIn1dLHNjYWxlOnt5OntuaWNlOiEwfX0sYXhpczp7eTp7dGl0bGU6ITF9LHg6e3RpdGxlOiExfX0saW50ZXJhY3Rpb246e3Rvb2x0aXA6e3NoYXJlZDohMH0sZWxlbWVudEhpZ2hsaWdodDp7YmFja2dyb3VuZDohMH19fX0sZS5wcm90b3R5cGUuZ2V0RGVmYXVsdE9wdGlvbnM9ZnVuY3Rpb24oKXtyZXR1cm4gZS5nZXREZWZhdWx0T3B0aW9ucygpfSxlLnByb3RvdHlwZS5nZXRTY2hlbWFBZGFwdG9yPWZ1bmN0aW9uKCl7cmV0dXJuIGY4fSxlfShPbiksQXJ0PWZ1bmN0aW9uKCl7dmFyIHQ9ZnVuY3Rpb24oZSxuKXtyZXR1cm4gZnVuY3Rpb24ocil7dmFyIGk9ZS5maWxsLGE9aT09PXZvaWQgMD8iIzI4ODhGRiI6aSxvPWUuc3Ryb2tlLHM9ZS5maWxsT3BhY2l0eSxjPXM9PT12b2lkIDA/MTpzLGw9ZS5zdHJva2VPcGFjaXR5LHU9bD09PXZvaWQgMD8uMjpsLGY9ZS5waXRjaCxkPWY9PT12b2lkIDA/ODpmLGg9clsxXVswXS1yWzBdWzBdLHY9aC8yK3JbMF1bMF0sZz1uLmRvY3VtZW50LHk9Zy5jcmVhdGVFbGVtZW50KCJnIix7fSksYj1nLmNyZWF0ZUVsZW1lbnQoInBvbHlnb24iLHtzdHlsZTp7cG9pbnRzOltbclswXVswXSxyWzBdWzFdXSxbdixyWzFdWzFdK2RdLFt2LHJbM11bMV0rZF0sW3JbM11bMF0sclszXVsxXV1dLGZpbGw6YSxmaWxsT3BhY2l0eTpjLHN0cm9rZTpvLHN0cm9rZU9wYWNpdHk6dSxpbnNldDozMH19KSx4PWcuY3JlYXRlRWxlbWVudCgicG9seWdvbiIse3N0eWxlOntwb2ludHM6W1t2LHJbMV1bMV0rZF0sW3JbMV1bMF0sclsxXVsxXV0sW3JbMl1bMF0sclsyXVsxXV0sW3YsclsyXVsxXStkXV0sZmlsbDphLGZpbGxPcGFjaXR5OmMsc3Ryb2tlOm8sc3Ryb2tlT3BhY2l0eTp1fX0pLF89Zy5jcmVhdGVFbGVtZW50KCJwb2x5Z29uIix7c3R5bGU6e3BvaW50czpbW3JbMF1bMF0sclswXVsxXV0sW3YsclsxXVsxXS1kXSxbclsxXVswXSxyWzFdWzFdXSxbdixyWzFdWzFdK2RdXSxmaWxsOmEsZmlsbE9wYWNpdHk6Yy0uMn19KTtyZXR1cm4geS5hcHBlbmRDaGlsZCh4KSx5LmFwcGVuZENoaWxkKGIpLHkuYXBwZW5kQ2hpbGQoXykseX19O29BKCJzaGFwZS5pbnRlcnZhbC5jb2x1bW4yNUQiLHQpfSxUcnQ9ZnVuY3Rpb24oKXt2YXIgdD1mdW5jdGlvbihlLG4pe3JldHVybiB0PU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihyLGkpe3IuX19wcm90b19fPWl9fHxmdW5jdGlvbihyLGkpe2Zvcih2YXIgYSBpbiBpKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChpLGEpJiYoclthXT1pW2FdKX0sdChlLG4pfTtyZXR1cm4gZnVuY3Rpb24oZSxuKXtpZih0eXBlb2YgbiE9ImZ1bmN0aW9uIiYmbiE9PW51bGwpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiK1N0cmluZyhuKSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTt0KGUsbik7ZnVuY3Rpb24gcigpe3RoaXMuY29uc3RydWN0b3I9ZX1lLnByb3RvdHlwZT1uPT09bnVsbD9PYmplY3QuY3JlYXRlKG4pOihyLnByb3RvdHlwZT1uLnByb3RvdHlwZSxuZXcgcil9fSgpO0FydCgpO3ZhciBQcnQ9ZnVuY3Rpb24odCl7VHJ0KGUsdCk7ZnVuY3Rpb24gZSgpe3ZhciBuPXQhPT1udWxsJiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpcztyZXR1cm4gbi50eXBlPSJjb2x1bW4iLG59cmV0dXJuIGUuZ2V0RGVmYXVsdE9wdGlvbnM9ZnVuY3Rpb24oKXtyZXR1cm57dHlwZToidmlldyIsc2NhbGU6e3k6e25pY2U6ITB9fSxpbnRlcmFjdGlvbjp7dG9vbHRpcDp7c2hhcmVkOiEwfSxlbGVtZW50SGlnaGxpZ2h0OntiYWNrZ3JvdW5kOiEwfX0sYXhpczp7eTp7dGl0bGU6ITF9LHg6e3RpdGxlOiExfX0sY2hpbGRyZW46W3t0eXBlOiJpbnRlcnZhbCJ9XX19LGUucHJvdG90eXBlLmdldERlZmF1bHRPcHRpb25zPWZ1bmN0aW9uKCl7cmV0dXJuIGUuZ2V0RGVmYXVsdE9wdGlvbnMoKX0sZS5wcm90b3R5cGUuZ2V0U2NoZW1hQWRhcHRvcj1mdW5jdGlvbigpe3JldHVybiBmOH0sZX0oT24pO2Z1bmN0aW9uIENydCh0KXt2YXIgZT1mdW5jdGlvbihyKXt2YXIgaT1yLm9wdGlvbnMsYT1pLmNoaWxkcmVuLG89YT09PXZvaWQgMD9bXTphLHM9aS5sZWdlbmQ7cmV0dXJuIHMmJm8uZm9yRWFjaChmdW5jdGlvbihjKXtpZighKDAscnQuZ2V0KShjLCJjb2xvckZpZWxkIikpe3ZhciBsPSgwLHJ0LmdldCkoYywieUZpZWxkIik7KDAscnQuc2V0KShjLCJjb2xvckZpZWxkIixmdW5jdGlvbigpe3JldHVybiBsfSl9fSkscn0sbj1mdW5jdGlvbihyKXt2YXIgaT1yLm9wdGlvbnMsYT1pLmFubm90YXRpb25zLG89YT09PXZvaWQgMD9bXTphLHM9aS5jaGlsZHJlbixjPXM9PT12b2lkIDA/W106cyxsPWkuc2NhbGUsdT0hMTtyZXR1cm4oMCxydC5nZXQpKGwsInkua2V5Iil8fGMuZm9yRWFjaChmdW5jdGlvbihmLGQpe2lmKCEoMCxydC5nZXQpKGYsInNjYWxlLnkua2V5Iikpe3ZhciBoPSJjaGlsZCIuY29uY2F0KGQsIlNjYWxlIik7KDAscnQuc2V0KShmLCJzY2FsZS55LmtleSIsaCk7dmFyIHY9Zi5hbm5vdGF0aW9ucyxnPXY9PT12b2lkIDA/W106djtnLmxlbmd0aD4wJiYoKDAscnQuc2V0KShmLCJzY2FsZS55LmluZGVwZW5kZW50IiwhMSksZy5mb3JFYWNoKGZ1bmN0aW9uKHkpeygwLHJ0LnNldCkoeSwic2NhbGUueS5rZXkiLGgpfSkpLCF1JiZvLmxlbmd0aD4wJiYoMCxydC5nZXQpKGYsInNjYWxlLnkuaW5kZXBlbmRlbnQiKT09PXZvaWQgMCYmKHU9ITAsKDAscnQuc2V0KShmLCJzY2FsZS55LmluZGVwZW5kZW50IiwhMSksby5mb3JFYWNoKGZ1bmN0aW9uKHkpeygwLHJ0LnNldCkoeSwic2NhbGUueS5rZXkiLGgpfSkpfX0pLHJ9O3JldHVybigwLHJ0LmZsb3cpKGUsbixUcixqbikodCl9dmFyIExydD1mdW5jdGlvbigpe3ZhciB0PWZ1bmN0aW9uKGUsbil7cmV0dXJuIHQ9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHIsaSl7ci5fX3Byb3RvX189aX18fGZ1bmN0aW9uKHIsaSl7Zm9yKHZhciBhIGluIGkpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGksYSkmJihyW2FdPWlbYV0pfSx0KGUsbil9O3JldHVybiBmdW5jdGlvbihlLG4pe2lmKHR5cGVvZiBuIT0iZnVuY3Rpb24iJiZuIT09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIrU3RyaW5nKG4pKyIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpO3QoZSxuKTtmdW5jdGlvbiByKCl7dGhpcy5jb25zdHJ1Y3Rvcj1lfWUucHJvdG90eXBlPW49PT1udWxsP09iamVjdC5jcmVhdGUobik6KHIucHJvdG90eXBlPW4ucHJvdG90eXBlLG5ldyByKX19KCksZDg9ZnVuY3Rpb24odCl7THJ0KGUsdCk7ZnVuY3Rpb24gZSgpe3ZhciBuPXQhPT1udWxsJiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpcztyZXR1cm4gbi50eXBlPSJEdWFsQXhlcyIsbn1yZXR1cm4gZS5nZXREZWZhdWx0T3B0aW9ucz1mdW5jdGlvbigpe3JldHVybnt0eXBlOiJ2aWV3IixheGlzOnt5Ont0aXRsZTohMSx0aWNrOiExfSx4Ont0aXRsZTohMX19LHNjYWxlOnt5OntpbmRlcGVuZGVudDohMCxuaWNlOiEwfX19fSxlLnByb3RvdHlwZS5nZXREZWZhdWx0T3B0aW9ucz1mdW5jdGlvbigpe3JldHVybiBlLmdldERlZmF1bHRPcHRpb25zKCl9LGUucHJvdG90eXBlLmdldFNjaGVtYUFkYXB0b3I9ZnVuY3Rpb24oKXtyZXR1cm4gQ3J0fSxlfShPbik7ZnVuY3Rpb24gUnJ0KHQpe3ZhciBlPWZ1bmN0aW9uKGEpe3ZhciBvPWEub3B0aW9ucyxzPW8ueEZpZWxkLGM9by5jb2xvckZpZWxkO3JldHVybiBjfHwoMCxydC5zZXQpKG8sImNvbG9yRmllbGQiLHMpLGF9LG49ZnVuY3Rpb24oYSl7dmFyIG89YS5vcHRpb25zLHM9by5jb21wYXJlRmllbGQsYz1vLnRyYW5zZm9ybSxsPW8uaXNUcmFuc3Bvc2VkLHU9bD09PXZvaWQgMD8hMDpsLGY9by5jb29yZGluYXRlO3JldHVybiBjfHwocz8oMCxydC5zZXQpKG8sInRyYW5zZm9ybSIsW10pOigwLHJ0LnNldCkobywidHJhbnNmb3JtIixbe3R5cGU6InN5bW1ldHJ5WSJ9XSkpLCFmJiZ1JiYoMCxydC5zZXQpKG8sImNvb3JkaW5hdGUiLHt0cmFuc2Zvcm06W3t0eXBlOiJ0cmFuc3Bvc2UifV19KSxhfSxyPWZ1bmN0aW9uKGEpe3ZhciBvPWEub3B0aW9ucyxzPW8uY29tcGFyZUZpZWxkLGM9by5zZXJpZXNGaWVsZCxsPW8uZGF0YSx1PW8uY2hpbGRyZW4sZj1vLnlGaWVsZCxkPW8uaXNUcmFuc3Bvc2VkLGg9ZD09PXZvaWQgMD8hMDpkO2lmKHN8fGMpe3ZhciB2PU9iamVjdC52YWx1ZXMoKDAscnQuZ3JvdXBCeSkobCxmdW5jdGlvbihnKXtyZXR1cm4gZ1tzfHxjXX0pKTt1WzBdLmRhdGE9dlswXSx1LnB1c2goe3R5cGU6ImludGVydmFsIixkYXRhOnZbMV0seUZpZWxkOmZ1bmN0aW9uKGcpe3JldHVybi1nW2ZdfX0pLGRlbGV0ZSBvLmNvbXBhcmVGaWVsZCxkZWxldGUgby5kYXRhfXJldHVybiBjJiYoKDAscnQuc2V0KShvLCJ0eXBlIiwic3BhY2VGbGV4IiksKDAscnQuc2V0KShvLCJyYXRpbyIsWzEsMV0pLCgwLHJ0LnNldCkobywiZGlyZWN0aW9uIixoPyJyb3ciOiJjb2wiKSxkZWxldGUgby5zZXJpZXNGaWVsZCksYX0saT1mdW5jdGlvbihhKXt2YXIgbz1hLm9wdGlvbnMscz1vLnRvb2x0aXAsYz1vLnhGaWVsZCxsPW8ueUZpZWxkO3JldHVybiBzfHwoMCxydC5zZXQpKG8sInRvb2x0aXAiLHt0aXRsZTohMSxpdGVtczpbZnVuY3Rpb24odSl7cmV0dXJue25hbWU6dVtjXSx2YWx1ZTp1W2xdfX1dfSksYX07cmV0dXJuKDAscnQuZmxvdykoZSxuLHIsaSxUcixqbikodCl9dmFyIE5ydD1mdW5jdGlvbigpe3ZhciB0PWZ1bmN0aW9uKGUsbil7cmV0dXJuIHQ9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHIsaSl7ci5fX3Byb3RvX189aX18fGZ1bmN0aW9uKHIsaSl7Zm9yKHZhciBhIGluIGkpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGksYSkmJihyW2FdPWlbYV0pfSx0KGUsbil9O3JldHVybiBmdW5jdGlvbihlLG4pe2lmKHR5cGVvZiBuIT0iZnVuY3Rpb24iJiZuIT09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIrU3RyaW5nKG4pKyIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpO3QoZSxuKTtmdW5jdGlvbiByKCl7dGhpcy5jb25zdHJ1Y3Rvcj1lfWUucHJvdG90eXBlPW49PT1udWxsP09iamVjdC5jcmVhdGUobik6KHIucHJvdG90eXBlPW4ucHJvdG90eXBlLG5ldyByKX19KCksSXJ0PWZ1bmN0aW9uKHQpe05ydChlLHQpO2Z1bmN0aW9uIGUoKXt2YXIgbj10IT09bnVsbCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXM7cmV0dXJuIG4udHlwZT0iY29sdW1uIixufXJldHVybiBlLmdldERlZmF1bHRPcHRpb25zPWZ1bmN0aW9uKCl7cmV0dXJue3R5cGU6InZpZXciLHNjYWxlOnt4OntwYWRkaW5nOjB9fSxhbmltYXRlOntlbnRlcjp7dHlwZToiZmFkZUluIn19LGF4aXM6ITEsc2hhcGVGaWVsZDoiZnVubmVsIixsYWJlbDp7cG9zaXRpb246Imluc2lkZSIsdHJhbnNmb3JtOlt7dHlwZToiY29udHJhc3RSZXZlcnNlIn1dfSxjaGlsZHJlbjpbe3R5cGU6ImludGVydmFsIn1dfX0sZS5wcm90b3R5cGUuZ2V0RGVmYXVsdE9wdGlvbnM9ZnVuY3Rpb24oKXtyZXR1cm4gZS5nZXREZWZhdWx0T3B0aW9ucygpfSxlLnByb3RvdHlwZS5nZXRTY2hlbWFBZGFwdG9yPWZ1bmN0aW9uKCl7cmV0dXJuIFJydH0sZX0oT24pO2Z1bmN0aW9uIERydCh0KXtyZXR1cm4oMCxydC5mbG93KShUcixqbikodCl9dmFyIGpydD1mdW5jdGlvbigpe3ZhciB0PWZ1bmN0aW9uKGUsbil7cmV0dXJuIHQ9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHIsaSl7ci5fX3Byb3RvX189aX18fGZ1bmN0aW9uKHIsaSl7Zm9yKHZhciBhIGluIGkpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGksYSkmJihyW2FdPWlbYV0pfSx0KGUsbil9O3JldHVybiBmdW5jdGlvbihlLG4pe2lmKHR5cGVvZiBuIT0iZnVuY3Rpb24iJiZuIT09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIrU3RyaW5nKG4pKyIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpO3QoZSxuKTtmdW5jdGlvbiByKCl7dGhpcy5jb25zdHJ1Y3Rvcj1lfWUucHJvdG90eXBlPW49PT1udWxsP09iamVjdC5jcmVhdGUobik6KHIucHJvdG90eXBlPW4ucHJvdG90eXBlLG5ldyByKX19KCksRnJ0PWZ1bmN0aW9uKHQpe2pydChlLHQpO2Z1bmN0aW9uIGUoKXt2YXIgbj10IT09bnVsbCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXM7cmV0dXJuIG4udHlwZT0ibGluZSIsbn1yZXR1cm4gZS5nZXREZWZhdWx0T3B0aW9ucz1mdW5jdGlvbigpe3JldHVybnt0eXBlOiJ2aWV3IixzY2FsZTp7eTp7bmljZTohMH19LGludGVyYWN0aW9uOnt0b29sdGlwOntzaGFyZWQ6ITB9fSxheGlzOnt5Ont0aXRsZTohMX0seDp7dGl0bGU6ITF9fSxjaGlsZHJlbjpbe3R5cGU6ImxpbmUifV19fSxlLnByb3RvdHlwZS5nZXREZWZhdWx0T3B0aW9ucz1mdW5jdGlvbigpe3JldHVybiBlLmdldERlZmF1bHRPcHRpb25zKCl9LGUucHJvdG90eXBlLmdldFNjaGVtYUFkYXB0b3I9ZnVuY3Rpb24oKXtyZXR1cm4gRHJ0fSxlfShPbik7ZnVuY3Rpb24gUTAodCl7c3dpdGNoKHR5cGVvZiB0KXtjYXNlImZ1bmN0aW9uIjpyZXR1cm4gdDtjYXNlInN0cmluZyI6cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybigwLHJ0LmdldCkoZSxbdF0pfTtkZWZhdWx0OnJldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX19dmFyIFBvPWZ1bmN0aW9uKCl7cmV0dXJuIFBvPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPTEscj1hcmd1bWVudHMubGVuZ3RoO248cjtuKyspe2U9YXJndW1lbnRzW25dO2Zvcih2YXIgaSBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLGkpJiYodFtpXT1lW2ldKX1yZXR1cm4gdH0sUG8uYXBwbHkodGhpcyxhcmd1bWVudHMpfTtmdW5jdGlvbiBCcnQodCl7dmFyIGU9ZnVuY3Rpb24obil7dmFyIHI9bi5vcHRpb25zLGk9ci5hbmdsZUZpZWxkLGE9ci5kYXRhLG89ci5sYWJlbCxzPXIudG9vbHRpcCxjPXIuY29sb3JGaWVsZCxsPVEwKGMpO2lmKCgwLHJ0LmlzQXJyYXkpKGEpJiZhLmxlbmd0aD4wKXt2YXIgdT1hLnJlZHVjZShmdW5jdGlvbihkLGgpe3JldHVybiBkK2hbaV19LDApO2lmKHU9PT0wKXt2YXIgZj1hLm1hcChmdW5jdGlvbihkKXt2YXIgaDtyZXR1cm4gUG8oUG8oe30sZCksKGg9e30saFtpXT0xLGgpKX0pOygwLHJ0LnNldCkociwiZGF0YSIsZiksbyYmKDAscnQuc2V0KShyLCJsYWJlbCIsUG8oUG8oe30sbykse2Zvcm1hdHRlcjpmdW5jdGlvbigpe3JldHVybiAwfX0pKSxzIT09ITEmJigoMCxydC5pc0Z1bmN0aW9uKShzKT8oMCxydC5zZXQpKHIsInRvb2x0aXAiLGZ1bmN0aW9uKGQsaCx2KXt2YXIgZztyZXR1cm4gcyhQbyhQbyh7fSxkKSwoZz17fSxnW2ldPTAsZykpLGgsdi5tYXAoZnVuY3Rpb24oeSl7dmFyIGI7cmV0dXJuIFBvKFBvKHt9LHkpLChiPXt9LGJbaV09MCxiKSl9KSl9KTooMCxydC5zZXQpKHIsInRvb2x0aXAiLFBvKFBvKHt9LHMpLHtpdGVtczpbZnVuY3Rpb24oZCxoLHYpe3JldHVybntuYW1lOmwoZCxoLHYpLHZhbHVlOjB9fV19KSkpfX1yZXR1cm4gbn07cmV0dXJuKDAscnQuZmxvdykoZSxqbikodCl9dmFyIHpydD1mdW5jdGlvbigpe3ZhciB0PWZ1bmN0aW9uKGUsbil7cmV0dXJuIHQ9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHIsaSl7ci5fX3Byb3RvX189aX18fGZ1bmN0aW9uKHIsaSl7Zm9yKHZhciBhIGluIGkpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGksYSkmJihyW2FdPWlbYV0pfSx0KGUsbil9O3JldHVybiBmdW5jdGlvbihlLG4pe2lmKHR5cGVvZiBuIT0iZnVuY3Rpb24iJiZuIT09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIrU3RyaW5nKG4pKyIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpO3QoZSxuKTtmdW5jdGlvbiByKCl7dGhpcy5jb25zdHJ1Y3Rvcj1lfWUucHJvdG90eXBlPW49PT1udWxsP09iamVjdC5jcmVhdGUobik6KHIucHJvdG90eXBlPW4ucHJvdG90eXBlLG5ldyByKX19KCksV3J0PWZ1bmN0aW9uKHQpe3pydChlLHQpO2Z1bmN0aW9uIGUoKXt2YXIgbj10IT09bnVsbCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXM7cmV0dXJuIG4udHlwZT0icGllIixufXJldHVybiBlLmdldERlZmF1bHRPcHRpb25zPWZ1bmN0aW9uKCl7cmV0dXJue3R5cGU6InZpZXciLGNoaWxkcmVuOlt7dHlwZToiaW50ZXJ2YWwifV0sY29vcmRpbmF0ZTp7dHlwZToidGhldGEifSx0cmFuc2Zvcm06W3t0eXBlOiJzdGFja1kiLHJldmVyc2U6ITB9XSxhbmltYXRlOntlbnRlcjp7dHlwZToid2F2ZUluIn19fX0sZS5wcm90b3R5cGUuZ2V0RGVmYXVsdE9wdGlvbnM9ZnVuY3Rpb24oKXtyZXR1cm4gZS5nZXREZWZhdWx0T3B0aW9ucygpfSxlLnByb3RvdHlwZS5nZXRTY2hlbWFBZGFwdG9yPWZ1bmN0aW9uKCl7cmV0dXJuIEJydH0sZX0oT24pO2Z1bmN0aW9uIEdydCh0KXtyZXR1cm4oMCxydC5mbG93KShUcixqbikodCl9dmFyICRydD1mdW5jdGlvbigpe3ZhciB0PWZ1bmN0aW9uKGUsbil7cmV0dXJuIHQ9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHIsaSl7ci5fX3Byb3RvX189aX18fGZ1bmN0aW9uKHIsaSl7Zm9yKHZhciBhIGluIGkpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGksYSkmJihyW2FdPWlbYV0pfSx0KGUsbil9O3JldHVybiBmdW5jdGlvbihlLG4pe2lmKHR5cGVvZiBuIT0iZnVuY3Rpb24iJiZuIT09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIrU3RyaW5nKG4pKyIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpO3QoZSxuKTtmdW5jdGlvbiByKCl7dGhpcy5jb25zdHJ1Y3Rvcj1lfWUucHJvdG90eXBlPW49PT1udWxsP09iamVjdC5jcmVhdGUobik6KHIucHJvdG90eXBlPW4ucHJvdG90eXBlLG5ldyByKX19KCksWnJ0PWZ1bmN0aW9uKHQpeyRydChlLHQpO2Z1bmN0aW9uIGUoKXt2YXIgbj10IT09bnVsbCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXM7cmV0dXJuIG4udHlwZT0ic2NhdHRlciIsbn1yZXR1cm4gZS5nZXREZWZhdWx0T3B0aW9ucz1mdW5jdGlvbigpe3JldHVybntheGlzOnt5Ont0aXRsZTohMX0seDp7dGl0bGU6ITF9fSxsZWdlbmQ6e3NpemU6ITF9LGNoaWxkcmVuOlt7dHlwZToicG9pbnQifV19fSxlLnByb3RvdHlwZS5nZXREZWZhdWx0T3B0aW9ucz1mdW5jdGlvbigpe3JldHVybiBlLmdldERlZmF1bHRPcHRpb25zKCl9LGUucHJvdG90eXBlLmdldFNjaGVtYUFkYXB0b3I9ZnVuY3Rpb24oKXtyZXR1cm4gR3J0fSxlfShPbik7ZnVuY3Rpb24gWXJ0KHQpe3ZhciBlPWZ1bmN0aW9uKG4pe3JldHVybigwLHJ0LnNldCkobiwib3B0aW9ucy5jb29yZGluYXRlIix7dHlwZTooMCxydC5nZXQpKG4sIm9wdGlvbnMuY29vcmRpbmF0ZVR5cGUiLCJwb2xhciIpfSksbn07cmV0dXJuKDAscnQuZmxvdykoZSxqbikodCl9dmFyIEhydD1mdW5jdGlvbigpe3ZhciB0PWZ1bmN0aW9uKGUsbil7cmV0dXJuIHQ9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHIsaSl7ci5fX3Byb3RvX189aX18fGZ1bmN0aW9uKHIsaSl7Zm9yKHZhciBhIGluIGkpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGksYSkmJihyW2FdPWlbYV0pfSx0KGUsbil9O3JldHVybiBmdW5jdGlvbihlLG4pe2lmKHR5cGVvZiBuIT0iZnVuY3Rpb24iJiZuIT09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIrU3RyaW5nKG4pKyIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpO3QoZSxuKTtmdW5jdGlvbiByKCl7dGhpcy5jb25zdHJ1Y3Rvcj1lfWUucHJvdG90eXBlPW49PT1udWxsP09iamVjdC5jcmVhdGUobik6KHIucHJvdG90eXBlPW4ucHJvdG90eXBlLG5ldyByKX19KCksVnJ0PWZ1bmN0aW9uKHQpe0hydChlLHQpO2Z1bmN0aW9uIGUoKXt2YXIgbj10IT09bnVsbCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXM7cmV0dXJuIG4udHlwZT0icmFkYXIiLG59cmV0dXJuIGUuZ2V0RGVmYXVsdE9wdGlvbnM9ZnVuY3Rpb24oKXtyZXR1cm57YXhpczp7eDp7Z3JpZDohMCxsaW5lOiEwfSx5Ont6SW5kZXg6MSx0aXRsZTohMSxsaW5lOiEwLG5pY2U6ITB9fSxtZXRhOnt4OntwYWRkaW5nOi41LGFsaWduOjB9fSxpbnRlcmFjdGlvbjp7dG9vbHRpcDp7c3R5bGU6e2Nyb3NzaGFpcnNMaW5lRGFzaDpbNCw0XX19fSxjaGlsZHJlbjpbe3R5cGU6ImxpbmUifV0sY29vcmRpbmF0ZVR5cGU6InBvbGFyIn19LGUucHJvdG90eXBlLmdldERlZmF1bHRPcHRpb25zPWZ1bmN0aW9uKCl7cmV0dXJuIGUuZ2V0RGVmYXVsdE9wdGlvbnMoKX0sZS5wcm90b3R5cGUuZ2V0U2NoZW1hQWRhcHRvcj1mdW5jdGlvbigpe3JldHVybiBZcnR9LGV9KE9uKSx5Yz1mdW5jdGlvbigpe3JldHVybiB5Yz1PYmplY3QuYXNzaWdufHxmdW5jdGlvbih0KXtmb3IodmFyIGUsbj0xLHI9YXJndW1lbnRzLmxlbmd0aDtuPHI7bisrKXtlPWFyZ3VtZW50c1tuXTtmb3IodmFyIGkgaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxpKSYmKHRbaV09ZVtpXSl9cmV0dXJuIHR9LHljLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sWHJ0PSJfX3N0b2NrLXJhbmdlX18iLFVydD0idHJlbmQiLHFydD0idXAiLEtydD0iZG93biI7ZnVuY3Rpb24gUXJ0KHQpe3ZhciBlPWZ1bmN0aW9uKHIpe3ZhciBpPXIub3B0aW9ucyxhPWkuZGF0YSxvPWkueUZpZWxkO3JldHVybiByLm9wdGlvbnMuZGF0YT0oMCxydC5tYXApKGEsZnVuY3Rpb24ocyl7dmFyIGM9cyYmeWMoe30scyk7aWYoQXJyYXkuaXNBcnJheShvKSYmYyl7dmFyIGw9b1swXSx1PW9bMV0sZj1vWzJdLGQ9b1szXTtjW1VydF09Y1tsXTw9Y1t1XT9xcnQ6S3J0LGNbWHJ0XT1bY1tsXSxjW3VdLGNbZl0sY1tkXV19cmV0dXJuIGN9KSxyfSxuPWZ1bmN0aW9uKHIpe3ZhciBpPXIub3B0aW9ucyxhPWkueEZpZWxkLG89aS55RmllbGQscz1pLmZhbGxpbmdGaWxsLGM9aS5yaXNpbmdGaWxsLGw9b1swXSx1PW9bMV0sZj1vWzJdLGQ9b1szXSxoPVEwKGEpO3JldHVybiByLm9wdGlvbnMuY2hpbGRyZW49KDAscnQubWFwKShyLm9wdGlvbnMuY2hpbGRyZW4sZnVuY3Rpb24odixnKXt2YXIgeT1nPT09MDtyZXR1cm4geWMoeWMoe30sdikse3Rvb2x0aXA6e3RpdGxlOmZ1bmN0aW9uKGIseCxfKXt2YXIgdz1oKGIseCxfKTtyZXR1cm4gdyBpbnN0YW5jZW9mIERhdGU/dy50b0xvY2FsZVN0cmluZygpOnd9LGl0ZW1zOlt7ZmllbGQ6Zn0se2ZpZWxkOmR9LHtmaWVsZDpsfSx7ZmllbGQ6dX1dfSxlbmNvZGU6eWMoeWMoe30sdi5lbmNvZGV8fHt9KSx7eTp5P1tmLGRdOltsLHVdLGNvbG9yOmZ1bmN0aW9uKGIpe3JldHVybiBNYXRoLnNpZ24oYlt1XS1iW2xdKX19KSxzdHlsZTp5Yyh5Yyh7fSx2LnN0eWxlfHx7fSkse2xpbmVXaWR0aDp5PzE6MTB9KX0pfSksZGVsZXRlIGkueUZpZWxkLHIub3B0aW9ucy5sZWdlbmQ9e2NvbG9yOiExfSxzJiYoMCxydC5zZXQpKHIsIm9wdGlvbnMuc2NhbGUuY29sb3IucmFuZ2VbMF0iLHMpLGMmJigwLHJ0LnNldCkociwib3B0aW9ucy5zY2FsZS5jb2xvci5yYW5nZVsyXSIsYykscn07cmV0dXJuKDAscnQuZmxvdykoZSxuLGpuKSh0KX12YXIgSnJ0PWZ1bmN0aW9uKCl7dmFyIHQ9ZnVuY3Rpb24oZSxuKXtyZXR1cm4gdD1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24ocixpKXtyLl9fcHJvdG9fXz1pfXx8ZnVuY3Rpb24ocixpKXtmb3IodmFyIGEgaW4gaSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaSxhKSYmKHJbYV09aVthXSl9LHQoZSxuKX07cmV0dXJuIGZ1bmN0aW9uKGUsbil7aWYodHlwZW9mIG4hPSJmdW5jdGlvbiImJm4hPT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIitTdHJpbmcobikrIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7dChlLG4pO2Z1bmN0aW9uIHIoKXt0aGlzLmNvbnN0cnVjdG9yPWV9ZS5wcm90b3R5cGU9bj09PW51bGw/T2JqZWN0LmNyZWF0ZShuKTooci5wcm90b3R5cGU9bi5wcm90b3R5cGUsbmV3IHIpfX0oKSx0aXQ9WyIjMjZhNjlhIiwiIzk5OTk5OSIsIiNlZjUzNTAiXSxlaXQ9ZnVuY3Rpb24odCl7SnJ0KGUsdCk7ZnVuY3Rpb24gZSgpe3ZhciBuPXQhPT1udWxsJiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpcztyZXR1cm4gbi50eXBlPSJzdG9jayIsbn1yZXR1cm4gZS5nZXREZWZhdWx0T3B0aW9ucz1mdW5jdGlvbigpe3JldHVybnt0eXBlOiJ2aWV3IixzY2FsZTp7Y29sb3I6e2RvbWFpbjpbLTEsMCwxXSxyYW5nZTp0aXR9LHk6e25pY2U6ITB9fSxjaGlsZHJlbjpbe3R5cGU6ImxpbmsifSx7dHlwZToibGluayJ9XSxheGlzOnt4Ont0aXRsZTohMSxncmlkOiExfSx5Ont0aXRsZTohMSxncmlkOiEwLGdyaWRMaW5lRGFzaDpudWxsfX0sYW5pbWF0ZTp7ZW50ZXI6e3R5cGU6InNjYWxlSW5ZIn19LGludGVyYWN0aW9uOnt0b29sdGlwOntzaGFyZWQ6ITAsbWFya2VyOiExLGdyb3VwTmFtZTohMSxjcm9zc2hhaXJzOiEwfX19fSxlLnByb3RvdHlwZS5nZXREZWZhdWx0T3B0aW9ucz1mdW5jdGlvbigpe3JldHVybiBlLmdldERlZmF1bHRPcHRpb25zKCl9LGUucHJvdG90eXBlLmdldFNjaGVtYUFkYXB0b3I9ZnVuY3Rpb24oKXtyZXR1cm4gUXJ0fSxlfShPbik7ZnVuY3Rpb24gbml0KHQpe3JldHVybigwLHJ0LmZsb3cpKFRyLGpuKSh0KX12YXIgcml0PWZ1bmN0aW9uKCl7dmFyIHQ9ZnVuY3Rpb24oZSxuKXtyZXR1cm4gdD1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24ocixpKXtyLl9fcHJvdG9fXz1pfXx8ZnVuY3Rpb24ocixpKXtmb3IodmFyIGEgaW4gaSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaSxhKSYmKHJbYV09aVthXSl9LHQoZSxuKX07cmV0dXJuIGZ1bmN0aW9uKGUsbil7aWYodHlwZW9mIG4hPSJmdW5jdGlvbiImJm4hPT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIitTdHJpbmcobikrIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7dChlLG4pO2Z1bmN0aW9uIHIoKXt0aGlzLmNvbnN0cnVjdG9yPWV9ZS5wcm90b3R5cGU9bj09PW51bGw/T2JqZWN0LmNyZWF0ZShuKTooci5wcm90b3R5cGU9bi5wcm90b3R5cGUsbmV3IHIpfX0oKSxpaXQ9ZnVuY3Rpb24odCl7cml0KGUsdCk7ZnVuY3Rpb24gZSgpe3ZhciBuPXQhPT1udWxsJiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpcztyZXR1cm4gbi50eXBlPSJUaW55TGluZSIsbn1yZXR1cm4gZS5nZXREZWZhdWx0T3B0aW9ucz1mdW5jdGlvbigpe3JldHVybnt0eXBlOiJ2aWV3IixjaGlsZHJlbjpbe3R5cGU6ImxpbmUiLGF4aXM6ITF9XSxhbmltYXRlOntlbnRlcjp7dHlwZToiZ3Jvd0luWCIsZHVyYXRpb246NTAwfX0scGFkZGluZzowLG1hcmdpbjowLHRvb2x0aXA6ITF9fSxlLnByb3RvdHlwZS5nZXREZWZhdWx0T3B0aW9ucz1mdW5jdGlvbigpe3JldHVybiBlLmdldERlZmF1bHRPcHRpb25zKCl9LGUucHJvdG90eXBlLmdldFNjaGVtYUFkYXB0b3I9ZnVuY3Rpb24oKXtyZXR1cm4gbml0fSxlfShPbik7ZnVuY3Rpb24gYWl0KHQpe3JldHVybigwLHJ0LmZsb3cpKFRyLGpuKSh0KX12YXIgb2l0PWZ1bmN0aW9uKCl7dmFyIHQ9ZnVuY3Rpb24oZSxuKXtyZXR1cm4gdD1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24ocixpKXtyLl9fcHJvdG9fXz1pfXx8ZnVuY3Rpb24ocixpKXtmb3IodmFyIGEgaW4gaSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaSxhKSYmKHJbYV09aVthXSl9LHQoZSxuKX07cmV0dXJuIGZ1bmN0aW9uKGUsbil7aWYodHlwZW9mIG4hPSJmdW5jdGlvbiImJm4hPT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIitTdHJpbmcobikrIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7dChlLG4pO2Z1bmN0aW9uIHIoKXt0aGlzLmNvbnN0cnVjdG9yPWV9ZS5wcm90b3R5cGU9bj09PW51bGw/T2JqZWN0LmNyZWF0ZShuKTooci5wcm90b3R5cGU9bi5wcm90b3R5cGUsbmV3IHIpfX0oKSxzaXQ9ZnVuY3Rpb24odCl7b2l0KGUsdCk7ZnVuY3Rpb24gZSgpe3ZhciBuPXQhPT1udWxsJiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpcztyZXR1cm4gbi50eXBlPSJUaW55QXJlYSIsbn1yZXR1cm4gZS5nZXREZWZhdWx0T3B0aW9ucz1mdW5jdGlvbigpe3JldHVybnt0eXBlOiJ2aWV3IixhbmltYXRlOntlbnRlcjp7dHlwZToiZ3Jvd0luWCIsZHVyYXRpb246NTAwfX0sY2hpbGRyZW46W3t0eXBlOiJhcmVhIixheGlzOiExfV0scGFkZGluZzowLG1hcmdpbjowLHRvb2x0aXA6ITF9fSxlLnByb3RvdHlwZS5nZXREZWZhdWx0T3B0aW9ucz1mdW5jdGlvbigpe3JldHVybiBlLmdldERlZmF1bHRPcHRpb25zKCl9LGUucHJvdG90eXBlLmdldFNjaGVtYUFkYXB0b3I9ZnVuY3Rpb24oKXtyZXR1cm4gYWl0fSxlfShPbik7ZnVuY3Rpb24gY2l0KHQpe3JldHVybigwLHJ0LmZsb3cpKFRyLGpuKSh0KX12YXIgbGl0PWZ1bmN0aW9uKCl7dmFyIHQ9ZnVuY3Rpb24oZSxuKXtyZXR1cm4gdD1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24ocixpKXtyLl9fcHJvdG9fXz1pfXx8ZnVuY3Rpb24ocixpKXtmb3IodmFyIGEgaW4gaSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaSxhKSYmKHJbYV09aVthXSl9LHQoZSxuKX07cmV0dXJuIGZ1bmN0aW9uKGUsbil7aWYodHlwZW9mIG4hPSJmdW5jdGlvbiImJm4hPT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIitTdHJpbmcobikrIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7dChlLG4pO2Z1bmN0aW9uIHIoKXt0aGlzLmNvbnN0cnVjdG9yPWV9ZS5wcm90b3R5cGU9bj09PW51bGw/T2JqZWN0LmNyZWF0ZShuKTooci5wcm90b3R5cGU9bi5wcm90b3R5cGUsbmV3IHIpfX0oKSx1aXQ9ZnVuY3Rpb24odCl7bGl0KGUsdCk7ZnVuY3Rpb24gZSgpe3ZhciBuPXQhPT1udWxsJiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpcztyZXR1cm4gbi50eXBlPSJUaW55Q29sdW1uIixufXJldHVybiBlLmdldERlZmF1bHRPcHRpb25zPWZ1bmN0aW9uKCl7cmV0dXJue3R5cGU6InZpZXciLGNoaWxkcmVuOlt7dHlwZToiaW50ZXJ2YWwiLGF4aXM6ITF9XSxwYWRkaW5nOjAsbWFyZ2luOjAsdG9vbHRpcDohMX19LGUucHJvdG90eXBlLmdldERlZmF1bHRPcHRpb25zPWZ1bmN0aW9uKCl7cmV0dXJuIGUuZ2V0RGVmYXVsdE9wdGlvbnMoKX0sZS5wcm90b3R5cGUuZ2V0U2NoZW1hQWRhcHRvcj1mdW5jdGlvbigpe3JldHVybiBjaXR9LGV9KE9uKSxIRT1mdW5jdGlvbigpe3JldHVybiBIRT1PYmplY3QuYXNzaWdufHxmdW5jdGlvbih0KXtmb3IodmFyIGUsbj0xLHI9YXJndW1lbnRzLmxlbmd0aDtuPHI7bisrKXtlPWFyZ3VtZW50c1tuXTtmb3IodmFyIGkgaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxpKSYmKHRbaV09ZVtpXSl9cmV0dXJuIHR9LEhFLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07ZnVuY3Rpb24gZml0KHQpe3ZhciBlPWZ1bmN0aW9uKG4pe3ZhciByPW4ub3B0aW9ucyxpPXIucGVyY2VudCxhPXIuY29sb3Isbz1hPT09dm9pZCAwP1tdOmE7aWYoIWkpcmV0dXJuIG47dmFyIHM9e3NjYWxlOntjb2xvcjp7cmFuZ2U6by5sZW5ndGg/bzpbXX19LGRhdGE6WzEsaV19O3JldHVybiBPYmplY3QuYXNzaWduKHIsSEUoe30scykpLG59O3JldHVybigwLHJ0LmZsb3cpKGUsVHIsam4pKHQpfXZhciBkaXQ9ZnVuY3Rpb24oKXt2YXIgdD1mdW5jdGlvbihlLG4pe3JldHVybiB0PU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihyLGkpe3IuX19wcm90b19fPWl9fHxmdW5jdGlvbihyLGkpe2Zvcih2YXIgYSBpbiBpKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChpLGEpJiYoclthXT1pW2FdKX0sdChlLG4pfTtyZXR1cm4gZnVuY3Rpb24oZSxuKXtpZih0eXBlb2YgbiE9ImZ1bmN0aW9uIiYmbiE9PW51bGwpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiK1N0cmluZyhuKSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTt0KGUsbik7ZnVuY3Rpb24gcigpe3RoaXMuY29uc3RydWN0b3I9ZX1lLnByb3RvdHlwZT1uPT09bnVsbD9PYmplY3QuY3JlYXRlKG4pOihyLnByb3RvdHlwZT1uLnByb3RvdHlwZSxuZXcgcil9fSgpLGhpdD1mdW5jdGlvbih0KXtkaXQoZSx0KTtmdW5jdGlvbiBlKCl7dmFyIG49dCE9PW51bGwmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzO3JldHVybiBuLnR5cGU9IlRpbnlQcm9ncmVzcyIsbn1yZXR1cm4gZS5nZXREZWZhdWx0T3B0aW9ucz1mdW5jdGlvbigpe3JldHVybnt0eXBlOiJ2aWV3IixkYXRhOltdLG1hcmdpbjowLHBhZGRpbmc6MCx0b29sdGlwOiExLGNoaWxkcmVuOlt7aW50ZXJhY3Rpb246e3Rvb2x0aXA6ITF9LGNvb3JkaW5hdGU6e3RyYW5zZm9ybTpbe3R5cGU6InRyYW5zcG9zZSJ9XX0sdHlwZToiaW50ZXJ2YWwiLGF4aXM6ITEsbGVnZW5kOiExLGVuY29kZTp7eTpmdW5jdGlvbihuKXtyZXR1cm4gbn0sY29sb3I6ZnVuY3Rpb24obixyKXtyZXR1cm4gcn19fV19fSxlLnByb3RvdHlwZS5nZXREZWZhdWx0T3B0aW9ucz1mdW5jdGlvbigpe3JldHVybiBlLmdldERlZmF1bHRPcHRpb25zKCl9LGUucHJvdG90eXBlLmdldFNjaGVtYUFkYXB0b3I9ZnVuY3Rpb24oKXtyZXR1cm4gZml0fSxlfShPbiksVkU9ZnVuY3Rpb24oKXtyZXR1cm4gVkU9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49MSxyPWFyZ3VtZW50cy5sZW5ndGg7bjxyO24rKyl7ZT1hcmd1bWVudHNbbl07Zm9yKHZhciBpIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsaSkmJih0W2ldPWVbaV0pfXJldHVybiB0fSxWRS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O2Z1bmN0aW9uIHBpdCh0KXt2YXIgZT1mdW5jdGlvbihyKXt2YXIgaT1yLm9wdGlvbnMsYT1pLnJhZGl1cyxvPWE9PT12b2lkIDA/Ljg6YTtyZXR1cm4oMCxydC5zZXQpKHIsIm9wdGlvbnMuY29vcmRpbmF0ZS5pbm5lclJhZGl1cyIsbykscn0sbj1mdW5jdGlvbihyKXt2YXIgaT1yLm9wdGlvbnMsYT1pLnBlcmNlbnQsbz1pLmNvbG9yLHM9bz09PXZvaWQgMD9bXTpvO2lmKCFhKXJldHVybiByO3ZhciBjPXtzY2FsZTp7Y29sb3I6e3JhbmdlOnMubGVuZ3RoP3M6W119fSxkYXRhOlsxLGFdfTtyZXR1cm4gT2JqZWN0LmFzc2lnbihpLFZFKHt9LGMpKSxyfTtyZXR1cm4oMCxydC5mbG93KShlLG4sVHIsam4pKHQpfXZhciB2aXQ9ZnVuY3Rpb24oKXt2YXIgdD1mdW5jdGlvbihlLG4pe3JldHVybiB0PU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihyLGkpe3IuX19wcm90b19fPWl9fHxmdW5jdGlvbihyLGkpe2Zvcih2YXIgYSBpbiBpKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChpLGEpJiYoclthXT1pW2FdKX0sdChlLG4pfTtyZXR1cm4gZnVuY3Rpb24oZSxuKXtpZih0eXBlb2YgbiE9ImZ1bmN0aW9uIiYmbiE9PW51bGwpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiK1N0cmluZyhuKSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTt0KGUsbik7ZnVuY3Rpb24gcigpe3RoaXMuY29uc3RydWN0b3I9ZX1lLnByb3RvdHlwZT1uPT09bnVsbD9PYmplY3QuY3JlYXRlKG4pOihyLnByb3RvdHlwZT1uLnByb3RvdHlwZSxuZXcgcil9fSgpLGdpdD1mdW5jdGlvbih0KXt2aXQoZSx0KTtmdW5jdGlvbiBlKCl7dmFyIG49dCE9PW51bGwmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzO3JldHVybiBuLnR5cGU9IlRpbnlSaW5nIixufXJldHVybiBlLmdldERlZmF1bHRPcHRpb25zPWZ1bmN0aW9uKCl7cmV0dXJue3R5cGU6InZpZXciLGRhdGE6W10sbWFyZ2luOjAscGFkZGluZzowLGNvb3JkaW5hdGU6e3R5cGU6InRoZXRhIn0sYW5pbWF0ZTp7ZW50ZXI6e3R5cGU6IndhdmVJbiJ9fSxpbnRlcmFjdGlvbjp7dG9vbHRpcDohMX0sdG9vbHRpcDohMSxjaGlsZHJlbjpbe3R5cGU6ImludGVydmFsIixheGlzOiExLGxlZ2VuZDohMSxlbmNvZGU6e3k6ZnVuY3Rpb24obil7cmV0dXJuIG59LGNvbG9yOmZ1bmN0aW9uKG4scil7cmV0dXJuIHJ9fX1dfX0sZS5wcm90b3R5cGUuZ2V0RGVmYXVsdE9wdGlvbnM9ZnVuY3Rpb24oKXtyZXR1cm4gZS5nZXREZWZhdWx0T3B0aW9ucygpfSxlLnByb3RvdHlwZS5nZXRTY2hlbWFBZGFwdG9yPWZ1bmN0aW9uKCl7cmV0dXJuIHBpdH0sZX0oT24pO2Z1bmN0aW9uIHlpdCh0KXtyZXR1cm4oMCxydC5mbG93KShqbikodCl9dmFyIG1pdD1mdW5jdGlvbigpe3ZhciB0PWZ1bmN0aW9uKGUsbil7cmV0dXJuIHQ9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHIsaSl7ci5fX3Byb3RvX189aX18fGZ1bmN0aW9uKHIsaSl7Zm9yKHZhciBhIGluIGkpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGksYSkmJihyW2FdPWlbYV0pfSx0KGUsbil9O3JldHVybiBmdW5jdGlvbihlLG4pe2lmKHR5cGVvZiBuIT0iZnVuY3Rpb24iJiZuIT09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIrU3RyaW5nKG4pKyIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpO3QoZSxuKTtmdW5jdGlvbiByKCl7dGhpcy5jb25zdHJ1Y3Rvcj1lfWUucHJvdG90eXBlPW49PT1udWxsP09iamVjdC5jcmVhdGUobik6KHIucHJvdG90eXBlPW4ucHJvdG90eXBlLG5ldyByKX19KCksYml0PWZ1bmN0aW9uKHQpe21pdChlLHQpO2Z1bmN0aW9uIGUoKXt2YXIgbj10IT09bnVsbCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXM7cmV0dXJuIG4udHlwZT0icm9zZSIsbn1yZXR1cm4gZS5nZXREZWZhdWx0T3B0aW9ucz1mdW5jdGlvbigpe3JldHVybnt0eXBlOiJ2aWV3IixjaGlsZHJlbjpbe3R5cGU6ImludGVydmFsIn1dLGNvb3JkaW5hdGU6e3R5cGU6InBvbGFyIn0sYW5pbWF0ZTp7ZW50ZXI6e3R5cGU6IndhdmVJbiJ9fX19LGUucHJvdG90eXBlLmdldERlZmF1bHRPcHRpb25zPWZ1bmN0aW9uKCl7cmV0dXJuIGUuZ2V0RGVmYXVsdE9wdGlvbnMoKX0sZS5wcm90b3R5cGUuZ2V0U2NoZW1hQWRhcHRvcj1mdW5jdGlvbigpe3JldHVybiB5aXR9LGV9KE9uKSxYRT0iX19zdGFydF9fIixEZD0iX19lbmRfXyIsVUU9Il9fd2F0ZXJmYWxsX3ZhbHVlX18iLHFFPWZ1bmN0aW9uKCl7cmV0dXJuIHFFPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPTEscj1hcmd1bWVudHMubGVuZ3RoO248cjtuKyspe2U9YXJndW1lbnRzW25dO2Zvcih2YXIgaSBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLGkpJiYodFtpXT1lW2ldKX1yZXR1cm4gdH0scUUuYXBwbHkodGhpcyxhcmd1bWVudHMpfSx4aXQ9ZnVuY3Rpb24odCxlLG4pe2lmKG58fGFyZ3VtZW50cy5sZW5ndGg9PT0yKWZvcih2YXIgcj0wLGk9ZS5sZW5ndGgsYTtyPGk7cisrKShhfHwhKHIgaW4gZSkpJiYoYXx8KGE9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZSwwLHIpKSxhW3JdPWVbcl0pO3JldHVybiB0LmNvbmNhdChhfHxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChlKSl9O2Z1bmN0aW9uIF9pdCh0KXt2YXIgZT1mdW5jdGlvbihyKXt2YXIgaT1yLm9wdGlvbnMsYT1pLmRhdGEsbz1hPT09dm9pZCAwP1tdOmEscz1pLnlGaWVsZDtyZXR1cm4gby5sZW5ndGgmJihvLnJlZHVjZShmdW5jdGlvbihjLGwsdSl7dmFyIGYsZD1RMChzKSxoPWQobCx1LG8pO2lmKHU9PT0wfHxsLmlzVG90YWwpbFtYRV09MCxsW0RkXT1oLGxbVUVdPWg7ZWxzZXt2YXIgdj0oZj1jW0RkXSkhPT1udWxsJiZmIT09dm9pZCAwP2Y6ZChjLHUsbyk7bFtYRV09dixsW0RkXT12K2gsbFtVRV09Y1tEZF19cmV0dXJuIGx9LFtdKSxPYmplY3QuYXNzaWduKGkse3lGaWVsZDpbWEUsRGRdfSkpLHJ9LG49ZnVuY3Rpb24ocil7dmFyIGk9ci5vcHRpb25zLGE9aS5kYXRhLG89YT09PXZvaWQgMD9bXTphLHM9aS54RmllbGQsYz1pLmNoaWxkcmVuLGw9aS5saW5rU3R5bGUsdT14aXQoW10sbywhMCk7cmV0dXJuIHUucmVkdWNlKGZ1bmN0aW9uKGYsZCxoKXtyZXR1cm4gaD4wJiYoZC54MT1mW3NdLGQueDI9ZFtzXSxkLnkxPWZbRGRdKSxkfSxbXSksdS5zaGlmdCgpLGMucHVzaCh7dHlwZToibGluayIseEZpZWxkOlsieDEiLCJ4MiJdLHlGaWVsZDoieTEiLHpJbmRleDotMSxkYXRhOnUsc3R5bGU6cUUoe3N0cm9rZToiIzY5NzQ3NCJ9LGwpLGxhYmVsOiExLHRvb2x0aXA6ITF9KSxyfTtyZXR1cm4oMCxydC5mbG93KShlLG4sVHIsam4pKHQpfXZhciB3aXQ9ZnVuY3Rpb24oKXt2YXIgdD1mdW5jdGlvbihlLG4pe3JldHVybiB0PU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihyLGkpe3IuX19wcm90b19fPWl9fHxmdW5jdGlvbihyLGkpe2Zvcih2YXIgYSBpbiBpKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChpLGEpJiYoclthXT1pW2FdKX0sdChlLG4pfTtyZXR1cm4gZnVuY3Rpb24oZSxuKXtpZih0eXBlb2YgbiE9ImZ1bmN0aW9uIiYmbiE9PW51bGwpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiK1N0cmluZyhuKSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTt0KGUsbik7ZnVuY3Rpb24gcigpe3RoaXMuY29uc3RydWN0b3I9ZX1lLnByb3RvdHlwZT1uPT09bnVsbD9PYmplY3QuY3JlYXRlKG4pOihyLnByb3RvdHlwZT1uLnByb3RvdHlwZSxuZXcgcil9fSgpLE9pdD1mdW5jdGlvbih0KXt3aXQoZSx0KTtmdW5jdGlvbiBlKCl7dmFyIG49dCE9PW51bGwmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzO3JldHVybiBuLnR5cGU9IndhdGVyZmFsbCIsbn1yZXR1cm4gZS5nZXREZWZhdWx0T3B0aW9ucz1mdW5jdGlvbigpe3JldHVybnt0eXBlOiJ2aWV3IixsZWdlbmQ6bnVsbCx0b29sdGlwOntmaWVsZDpVRSx2YWx1ZUZvcm1hdHRlcjoifnMiLG5hbWU6InZhbHVlIn0sYXhpczp7eTp7dGl0bGU6bnVsbCxsYWJlbEZvcm1hdHRlcjoifnMifSx4Ont0aXRsZTpudWxsfX0sY2hpbGRyZW46W3t0eXBlOiJpbnRlcnZhbCIsaW50ZXJhY3Rpb246e2VsZW1lbnRIaWdobGlnaHQ6e2JhY2tncm91bmQ6ITB9fX1dfX0sZS5wcm90b3R5cGUuZ2V0RGVmYXVsdE9wdGlvbnM9ZnVuY3Rpb24oKXtyZXR1cm4gZS5nZXREZWZhdWx0T3B0aW9ucygpfSxlLnByb3RvdHlwZS5nZXRTY2hlbWFBZGFwdG9yPWZ1bmN0aW9uKCl7cmV0dXJuIF9pdH0sZX0oT24pO2Z1bmN0aW9uIFNpdCh0KXt2YXIgZT1mdW5jdGlvbihuKXt2YXIgcj1uLm9wdGlvbnMsaT1yLmRhdGEsYT1yLmJpbk51bWJlcixvPXIuYmluV2lkdGgscz1yLmNoaWxkcmVuLGM9ci5jaGFubmVsLGw9Yz09PXZvaWQgMD8iY291bnQiOmMsdT0oMCxydC5nZXQpKHMsIlswXS50cmFuc2Zvcm1bMF0iLHt9KTtyZXR1cm4oMCxydC5pc051bWJlcikobyk/KCgwLHJ0LmFzc2lnbikodSx7dGhyZXNob2xkczooMCxydC5jZWlsKSgoMCxydC5kaXZpZGUpKGkubGVuZ3RoLG8pKSx5Omx9KSxuKTooKDAscnQuaXNOdW1iZXIpKGEpJiYoMCxydC5hc3NpZ24pKHUse3RocmVzaG9sZHM6YSx5Omx9KSxuKX07cmV0dXJuKDAscnQuZmxvdykoZSxUcixqbikodCl9dmFyIEVpdD1mdW5jdGlvbigpe3ZhciB0PWZ1bmN0aW9uKGUsbil7cmV0dXJuIHQ9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHIsaSl7ci5fX3Byb3RvX189aX18fGZ1bmN0aW9uKHIsaSl7Zm9yKHZhciBhIGluIGkpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGksYSkmJihyW2FdPWlbYV0pfSx0KGUsbil9O3JldHVybiBmdW5jdGlvbihlLG4pe2lmKHR5cGVvZiBuIT0iZnVuY3Rpb24iJiZuIT09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIrU3RyaW5nKG4pKyIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpO3QoZSxuKTtmdW5jdGlvbiByKCl7dGhpcy5jb25zdHJ1Y3Rvcj1lfWUucHJvdG90eXBlPW49PT1udWxsP09iamVjdC5jcmVhdGUobik6KHIucHJvdG90eXBlPW4ucHJvdG90eXBlLG5ldyByKX19KCksTWl0PWZ1bmN0aW9uKHQpe0VpdChlLHQpO2Z1bmN0aW9uIGUoKXt2YXIgbj10IT09bnVsbCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXM7cmV0dXJuIG4udHlwZT0iSGlzdG9ncmFtIixufXJldHVybiBlLmdldERlZmF1bHRPcHRpb25zPWZ1bmN0aW9uKCl7cmV0dXJue3R5cGU6InZpZXciLGF1dG9GaXQ6ITAsYXhpczp7eTp7dGl0bGU6ITF9LHg6e3RpdGxlOiExfX0sY2hpbGRyZW46W3t0eXBlOiJyZWN0Iix0cmFuc2Zvcm06W3t0eXBlOiJiaW5YIix5OiJjb3VudCJ9XSxpbnRlcmFjdGlvbjp7ZWxlbWVudEhpZ2hsaWdodDp7YmFja2dyb3VuZDohMH19fV19fSxlLnByb3RvdHlwZS5nZXREZWZhdWx0T3B0aW9ucz1mdW5jdGlvbigpe3JldHVybiBlLmdldERlZmF1bHRPcHRpb25zKCl9LGUucHJvdG90eXBlLmdldFNjaGVtYUFkYXB0b3I9ZnVuY3Rpb24oKXtyZXR1cm4gU2l0fSxlfShPbik7ZnVuY3Rpb24ga2l0KHQpe3ZhciBlPWZ1bmN0aW9uKHIpe3ZhciBpPXIub3B0aW9ucyxhPWkudG9vbHRpcCxvPWE9PT12b2lkIDA/e306YSxzPWkuY29sb3JGaWVsZCxjPWkuc2l6ZUZpZWxkO3JldHVybiBvJiYhby5maWVsZCYmKG8uZmllbGQ9c3x8Yykscn0sbj1mdW5jdGlvbihyKXt2YXIgaT1yLm9wdGlvbnMsYT1pLm1hcmssbz1pLmNoaWxkcmVuO3JldHVybiBhJiYob1swXS50eXBlPWEpLHJ9O3JldHVybigwLHJ0LmZsb3cpKGUsbixUcixqbikodCl9dmFyIEFpdD1mdW5jdGlvbigpe3ZhciB0PWZ1bmN0aW9uKGUsbil7cmV0dXJuIHQ9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHIsaSl7ci5fX3Byb3RvX189aX18fGZ1bmN0aW9uKHIsaSl7Zm9yKHZhciBhIGluIGkpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGksYSkmJihyW2FdPWlbYV0pfSx0KGUsbil9O3JldHVybiBmdW5jdGlvbihlLG4pe2lmKHR5cGVvZiBuIT0iZnVuY3Rpb24iJiZuIT09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIrU3RyaW5nKG4pKyIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpO3QoZSxuKTtmdW5jdGlvbiByKCl7dGhpcy5jb25zdHJ1Y3Rvcj1lfWUucHJvdG90eXBlPW49PT1udWxsP09iamVjdC5jcmVhdGUobik6KHIucHJvdG90eXBlPW4ucHJvdG90eXBlLG5ldyByKX19KCksVGl0PWZ1bmN0aW9uKHQpe0FpdChlLHQpO2Z1bmN0aW9uIGUoKXt2YXIgbj10IT09bnVsbCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXM7cmV0dXJuIG4udHlwZT0iaGVhdG1hcCIsbn1yZXR1cm4gZS5nZXREZWZhdWx0T3B0aW9ucz1mdW5jdGlvbigpe3JldHVybnt0eXBlOiJ2aWV3IixsZWdlbmQ6bnVsbCx0b29sdGlwOnt2YWx1ZUZvcm1hdHRlcjoifnMifSxheGlzOnt5Ont0aXRsZTpudWxsLGdyaWQ6ITB9LHg6e3RpdGxlOm51bGwsZ3JpZDohMH19LGNoaWxkcmVuOlt7dHlwZToicG9pbnQiLGludGVyYWN0aW9uOntlbGVtZW50SGlnaGxpZ2h0OntiYWNrZ3JvdW5kOiEwfX19XX19LGUucHJvdG90eXBlLmdldERlZmF1bHRPcHRpb25zPWZ1bmN0aW9uKCl7cmV0dXJuIGUuZ2V0RGVmYXVsdE9wdGlvbnMoKX0sZS5wcm90b3R5cGUuZ2V0U2NoZW1hQWRhcHRvcj1mdW5jdGlvbigpe3JldHVybiBraXR9LGV9KE9uKTtmdW5jdGlvbiBQaXQodCl7dmFyIGU9ZnVuY3Rpb24obil7dmFyIHI9bi5vcHRpb25zLmJveFR5cGUsaT1yPT09dm9pZCAwPyJib3giOnI7cmV0dXJuIG4ub3B0aW9ucy5jaGlsZHJlblswXS50eXBlPWksbn07cmV0dXJuKDAscnQuZmxvdykoZSxUcixqbikodCl9dmFyIENpdD1mdW5jdGlvbigpe3ZhciB0PWZ1bmN0aW9uKGUsbil7cmV0dXJuIHQ9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHIsaSl7ci5fX3Byb3RvX189aX18fGZ1bmN0aW9uKHIsaSl7Zm9yKHZhciBhIGluIGkpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGksYSkmJihyW2FdPWlbYV0pfSx0KGUsbil9O3JldHVybiBmdW5jdGlvbihlLG4pe2lmKHR5cGVvZiBuIT0iZnVuY3Rpb24iJiZuIT09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIrU3RyaW5nKG4pKyIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpO3QoZSxuKTtmdW5jdGlvbiByKCl7dGhpcy5jb25zdHJ1Y3Rvcj1lfWUucHJvdG90eXBlPW49PT1udWxsP09iamVjdC5jcmVhdGUobik6KHIucHJvdG90eXBlPW4ucHJvdG90eXBlLG5ldyByKX19KCksTGl0PWZ1bmN0aW9uKHQpe0NpdChlLHQpO2Z1bmN0aW9uIGUoKXt2YXIgbj10IT09bnVsbCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXM7cmV0dXJuIG4udHlwZT0iYm94IixufXJldHVybiBlLmdldERlZmF1bHRPcHRpb25zPWZ1bmN0aW9uKCl7cmV0dXJue3R5cGU6InZpZXciLGNoaWxkcmVuOlt7dHlwZToiYm94In1dLGF4aXM6e3k6e3RpdGxlOiExfSx4Ont0aXRsZTohMX19LHRvb2x0aXA6e2l0ZW1zOlt7bmFtZToibWluIixjaGFubmVsOiJ5In0se25hbWU6InExIixjaGFubmVsOiJ5MSJ9LHtuYW1lOiJxMiIsY2hhbm5lbDoieTIifSx7bmFtZToicTMiLGNoYW5uZWw6InkzIn0se25hbWU6Im1heCIsY2hhbm5lbDoieTQifV19fX0sZS5wcm90b3R5cGUuZ2V0RGVmYXVsdE9wdGlvbnM9ZnVuY3Rpb24oKXtyZXR1cm4gZS5nZXREZWZhdWx0T3B0aW9ucygpfSxlLnByb3RvdHlwZS5nZXRTY2hlbWFBZGFwdG9yPWZ1bmN0aW9uKCl7cmV0dXJuIFBpdH0sZX0oT24pO2Z1bmN0aW9uIFJpdCh0KXt2YXIgZT1mdW5jdGlvbihuKXt2YXIgcj1uLm9wdGlvbnMsaT1yLmRhdGEsYT1be3R5cGU6ImN1c3RvbSIsY2FsbGJhY2s6ZnVuY3Rpb24ocyl7cmV0dXJue2xpbmtzOnN9fX1dO2lmKCgwLHJ0LmlzQXJyYXkpKGkpKWkubGVuZ3RoPjA/KDAscnQuc2V0KShyLCJkYXRhIix7dmFsdWU6aSx0cmFuc2Zvcm06YX0pOmRlbGV0ZSByLmNoaWxkcmVuO2Vsc2UgaWYoKDAscnQuZ2V0KShpLCJ0eXBlIik9PT0iZmV0Y2giJiYoMCxydC5nZXQpKGksInZhbHVlIikpe3ZhciBvPSgwLHJ0LmdldCkoaSwidHJhbnNmb3JtIik7KDAscnQuaXNBcnJheSkobyk/KDAscnQuc2V0KShpLCJ0cmFuc2Zvcm0iLG8uY29uY2F0KGEpKTooMCxydC5zZXQpKGksInRyYW5zZm9ybSIsYSl9cmV0dXJuIG59O3JldHVybigwLHJ0LmZsb3cpKGUsVHIsam4pKHQpfXZhciBOaXQ9ZnVuY3Rpb24oKXt2YXIgdD1mdW5jdGlvbihlLG4pe3JldHVybiB0PU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihyLGkpe3IuX19wcm90b19fPWl9fHxmdW5jdGlvbihyLGkpe2Zvcih2YXIgYSBpbiBpKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChpLGEpJiYoclthXT1pW2FdKX0sdChlLG4pfTtyZXR1cm4gZnVuY3Rpb24oZSxuKXtpZih0eXBlb2YgbiE9ImZ1bmN0aW9uIiYmbiE9PW51bGwpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiK1N0cmluZyhuKSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTt0KGUsbik7ZnVuY3Rpb24gcigpe3RoaXMuY29uc3RydWN0b3I9ZX1lLnByb3RvdHlwZT1uPT09bnVsbD9PYmplY3QuY3JlYXRlKG4pOihyLnByb3RvdHlwZT1uLnByb3RvdHlwZSxuZXcgcil9fSgpLElpdD1mdW5jdGlvbih0KXtOaXQoZSx0KTtmdW5jdGlvbiBlKCl7dmFyIG49dCE9PW51bGwmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzO3JldHVybiBuLnR5cGU9InNhbmtleSIsbn1yZXR1cm4gZS5nZXREZWZhdWx0T3B0aW9ucz1mdW5jdGlvbigpe3JldHVybnt0eXBlOiJ2aWV3IixjaGlsZHJlbjpbe3R5cGU6InNhbmtleSJ9XX19LGUucHJvdG90eXBlLmdldERlZmF1bHRPcHRpb25zPWZ1bmN0aW9uKCl7cmV0dXJuIGUuZ2V0RGVmYXVsdE9wdGlvbnMoKX0sZS5wcm90b3R5cGUuZ2V0U2NoZW1hQWRhcHRvcj1mdW5jdGlvbigpe3JldHVybiBSaXR9LGV9KE9uKTtmdW5jdGlvbiBEaXQodCl7dmFyIGU9dC5vcHRpb25zLmxheW91dCxuPWU9PT12b2lkIDA/Imhvcml6b250YWwiOmU7cmV0dXJuIHQub3B0aW9ucy5jb29yZGluYXRlLnRyYW5zZm9ybT1uIT09Imhvcml6b250YWwiP3ZvaWQgMDpbe3R5cGU6InRyYW5zcG9zZSJ9XSx0fWZ1bmN0aW9uIGppdCh0KXtEaXQodCk7dmFyIGU9dC5vcHRpb25zLmxheW91dCxuPWU9PT12b2lkIDA/Imhvcml6b250YWwiOmU7cmV0dXJuIHQub3B0aW9ucy5jaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uKHIpe3ZhciBpOyEoKGk9cj09bnVsbD92b2lkIDA6ci5jb29yZGluYXRlKT09PW51bGx8fGk9PT12b2lkIDApJiZpLnRyYW5zZm9ybSYmKHIuY29vcmRpbmF0ZS50cmFuc2Zvcm09biE9PSJob3Jpem9udGFsIj92b2lkIDA6W3t0eXBlOiJ0cmFuc3Bvc2UifV0pfSksdH12YXIgSG89ZnVuY3Rpb24oKXtyZXR1cm4gSG89T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49MSxyPWFyZ3VtZW50cy5sZW5ndGg7bjxyO24rKyl7ZT1hcmd1bWVudHNbbl07Zm9yKHZhciBpIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsaSkmJih0W2ldPWVbaV0pfXJldHVybiB0fSxIby5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LGdiPVsiI2YwZWZmZiIsIiM1QjhGRjkiLCIjM0Q3NkREIl07ZnVuY3Rpb24gS0UodCxlLG4scil7cj09PXZvaWQgMCYmKHI9ITApO3ZhciBpPTAsYT0hMSxvPSgwLHJ0Lm1hcCkodCxmdW5jdGlvbihzKXt2YXIgYyxsLHU9KDAscnQuZ2V0KShzLFtlXSk7aWYoKDAscnQuaXNOaWwpKHUpKXJldHVybltdO2lmKCgwLHJ0LmlzU3RyaW5nKSh1KSl7dmFyIGY9TnVtYmVyKHUpO3JldHVybiBpc05hTihmKT9bXTooYz17fSxjW25dPXNbbl0sY1tlXT1mLGMpfXJldHVybigwLHJ0LmlzQXJyYXkpKHUpPyhhPSEwLGk9TWF0aC5tYXgoaSx1Lmxlbmd0aCksKDAscnQubWFwKShyP3Uuc29ydChmdW5jdGlvbihkLGgpe3JldHVybiBoLWR9KTp1LGZ1bmN0aW9uKGQsaCl7dmFyIHY7cmV0dXJuIHY9e30sdltuXT1zW25dLHZbZV09ZCx2LmluZGV4PWgsdn0pKTooaT1NYXRoLm1heCgxLGkpLGw9e30sbFtuXT1zW25dLGxbZV09dSxsKX0pLmZsYXQoKTtyZXR1cm4gYT9bby5tYXAoZnVuY3Rpb24ocyl7cmV0dXJuIEhvKHtpbmRleDowfSxzKX0pLGldOltvLGldfWZ1bmN0aW9uIFFFKHQsZSl7cmV0dXJuIG5ldyBBcnJheSh0KS5maWxsKCIiKS5tYXAoZnVuY3Rpb24obixyKXtyZXR1cm4oMCxydC5pc0FycmF5KShlKT9lW3IlZS5sZW5ndGhdOmV9KX1mdW5jdGlvbiBGaXQodCl7dmFyIGU9ZnVuY3Rpb24oaSl7dmFyIGE9aS5vcHRpb25zLG89YS5jb2xvcixzPWEucmFuZ2VGaWVsZCxjPXM9PT12b2lkIDA/InJhbmdlcyI6cyxsPWEubWVhc3VyZUZpZWxkLHU9bD09PXZvaWQgMD8ibWVhc3VyZXMiOmwsZj1hLnRhcmdldEZpZWxkLGQ9Zj09PXZvaWQgMD8idGFyZ2V0cyI6ZixoPWEueEZpZWxkLHY9aD09PXZvaWQgMD8idGl0bGUiOmgsZz1hLm1hcEZpZWxkLHk9YS5kYXRhLGI9S0UoeSxjLHYpLHg9YlswXSxfPWJbMV0sdz1LRSh5LHUsdiwhMSksTz13WzBdLEU9d1sxXSxNPUtFKHksZCx2LCExKSxrPU1bMF0sQT1NWzFdLFA9KDAscnQuZ2V0KShvLFtjXSxnYlswXSksQz0oMCxydC5nZXQpKG8sW3VdLGdiWzFdKSxOPSgwLHJ0LmdldCkobyxbZF0sZ2JbMl0pLEw9W1FFKF8sUCksUUUoRSxDKSxRRShBLE4pXS5mbGF0KCk7cmV0dXJuIGkub3B0aW9ucy5jaGlsZHJlbj0oMCxydC5tYXApKGkub3B0aW9ucy5jaGlsZHJlbixmdW5jdGlvbihSLEkpe3ZhciBEPVt4LE8sa11bSV0sRz1bYyx1LGRdW0ldO3JldHVybiBIbyhIbyh7fSxSKSx7ZGF0YTpELGVuY29kZTpIbyhIbyh7fSxSLmVuY29kZXx8e30pLHt4OnYseTpHLGNvbG9yOmZ1bmN0aW9uKEYpe3ZhciBXPUYuaW5kZXgsWD0oMCxydC5pc051bWJlcikoVyk/IiIuY29uY2F0KEcsIl8iKS5jb25jYXQoVyk6RztyZXR1cm4gZz8oMCxydC5nZXQpKGcsW0csV10sWCk6WH19KSxzdHlsZTpIbyhIbyh7fSxSLnN0eWxlfHx7fSkse3pJbmRleDpmdW5jdGlvbihGKXtyZXR1cm4tRltHXX19KSxsYWJlbHM6SSE9PTA/KDAscnQubWFwKShSLmxhYmVscyxmdW5jdGlvbihGKXtyZXR1cm4gSG8oSG8oe30sRikse3RleHQ6R30pfSk6dm9pZCAwfSl9KSxpLm9wdGlvbnMuc2NhbGUuY29sb3IucmFuZ2U9TCxpLm9wdGlvbnMubGVnZW5kLmNvbG9yLml0ZW1NYXJrZXI9ZnVuY3Rpb24oUil7cmV0dXJuIGcmJigwLHJ0LmluY2x1ZGVzKShnPT1udWxsP3ZvaWQgMDpnW2RdLFIpfHwoUj09bnVsbD92b2lkIDA6Ui5yZXBsYWNlKC9cX1xkJC8sIiIpKT09PWQ/ImxpbmUiOiJzcXVhcmUifSxpfSxuPWZ1bmN0aW9uKGkpe3ZhciBhPWkub3B0aW9ucy5sYXlvdXQsbz1hPT09dm9pZCAwPyJob3Jpem9udGFsIjphO3JldHVybiBvIT09Imhvcml6b250YWwiJiYoMCxydC5zZXQpKGksIm9wdGlvbnMuY2hpbGRyZW5bMl0uc2hhcGVGaWVsZCIsImh5cGhlbiIpLGl9LHI9ZnVuY3Rpb24oaSl7dmFyIGE9aS5vcHRpb25zLG89YS5yYW5nZSxzPW89PT12b2lkIDA/e306byxjPWEubWVhc3VyZSxsPWM9PT12b2lkIDA/e306Yyx1PWEudGFyZ2V0LGY9dT09PXZvaWQgMD97fTp1LGQ9YS5jaGlsZHJlbjtyZXR1cm4gaS5vcHRpb25zLmNoaWxkcmVuPVtzLGwsZl0ubWFwKGZ1bmN0aW9uKGgsdil7cmV0dXJuIF9sKGRbdl0saCl9KSxpfTtyZXR1cm4oMCxydC5mbG93KShlLG4scixqaXQsam4pKHQpfXZhciBCaXQ9ZnVuY3Rpb24oKXt2YXIgdD1mdW5jdGlvbihlLG4pe3JldHVybiB0PU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihyLGkpe3IuX19wcm90b19fPWl9fHxmdW5jdGlvbihyLGkpe2Zvcih2YXIgYSBpbiBpKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChpLGEpJiYoclthXT1pW2FdKX0sdChlLG4pfTtyZXR1cm4gZnVuY3Rpb24oZSxuKXtpZih0eXBlb2YgbiE9ImZ1bmN0aW9uIiYmbiE9PW51bGwpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiK1N0cmluZyhuKSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTt0KGUsbik7ZnVuY3Rpb24gcigpe3RoaXMuY29uc3RydWN0b3I9ZX1lLnByb3RvdHlwZT1uPT09bnVsbD9PYmplY3QuY3JlYXRlKG4pOihyLnByb3RvdHlwZT1uLnByb3RvdHlwZSxuZXcgcil9fSgpLHppdD1mdW5jdGlvbih0KXtCaXQoZSx0KTtmdW5jdGlvbiBlKCl7dmFyIG49dCE9PW51bGwmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzO3JldHVybiBuLnR5cGU9ImJ1bGxldCIsbn1yZXR1cm4gZS5nZXREZWZhdWx0T3B0aW9ucz1mdW5jdGlvbigpe3JldHVybnt0eXBlOiJ2aWV3IixzY2FsZTp7Y29sb3I6e3JhbmdlOmdifX0sbGVnZW5kOntjb2xvcjp7aXRlbU1hcmtlcjpmdW5jdGlvbihuKXtyZXR1cm4gbj09PSJ0YXJnZXQiPyJsaW5lIjoic3F1YXJlIn19fSxheGlzOnt5Ont0aXRsZTohMX0seDp7dGl0bGU6ITF9fSxjaGlsZHJlbjpbe3R5cGU6ImludGVydmFsIixzdHlsZTp7bWF4V2lkdGg6MzB9LGF4aXM6e3k6e2dyaWQ6ITAsZ3JpZExpbmVXaWR0aDoyfX19LHt0eXBlOiJpbnRlcnZhbCIsc3R5bGU6e21heFdpZHRoOjIwfSx0cmFuc2Zvcm06W3t0eXBlOiJzdGFja1kifV19LHt0eXBlOiJwb2ludCIsZW5jb2RlOntzaXplOjgsc2hhcGU6ImxpbmUifX1dLGludGVyYWN0aW9uOnt0b29sdGlwOntzaGFyZWQ6ITB9fSxjb29yZGluYXRlOnt0cmFuc2Zvcm06W3t0eXBlOiJ0cmFuc3Bvc2UifV19fX0sZS5wcm90b3R5cGUuZ2V0RGVmYXVsdE9wdGlvbnM9ZnVuY3Rpb24oKXtyZXR1cm4gZS5nZXREZWZhdWx0T3B0aW9ucygpfSxlLnByb3RvdHlwZS5nZXRTY2hlbWFBZGFwdG9yPWZ1bmN0aW9uKCl7cmV0dXJuIEZpdH0sZX0oT24pO2Z1bmN0aW9uIFdpdCh0KXt2YXIgZT1mdW5jdGlvbihuKXt2YXIgcj1uLm9wdGlvbnMuZGF0YTtyZXR1cm4gbi5vcHRpb25zLmRhdGE9e3ZhbHVlOnJ9LG59O3JldHVybigwLHJ0LmZsb3cpKGUsVHIsam4pKHQpfXZhciBHaXQ9ZnVuY3Rpb24oKXt2YXIgdD1mdW5jdGlvbihlLG4pe3JldHVybiB0PU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihyLGkpe3IuX19wcm90b19fPWl9fHxmdW5jdGlvbihyLGkpe2Zvcih2YXIgYSBpbiBpKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChpLGEpJiYoclthXT1pW2FdKX0sdChlLG4pfTtyZXR1cm4gZnVuY3Rpb24oZSxuKXtpZih0eXBlb2YgbiE9ImZ1bmN0aW9uIiYmbiE9PW51bGwpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiK1N0cmluZyhuKSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTt0KGUsbik7ZnVuY3Rpb24gcigpe3RoaXMuY29uc3RydWN0b3I9ZX1lLnByb3RvdHlwZT1uPT09bnVsbD9PYmplY3QuY3JlYXRlKG4pOihyLnByb3RvdHlwZT1uLnByb3RvdHlwZSxuZXcgcil9fSgpLCRpdD1mdW5jdGlvbih0KXtHaXQoZSx0KTtmdW5jdGlvbiBlKCl7dmFyIG49dCE9PW51bGwmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzO3JldHVybiBuLnR5cGU9IkdhdWdlIixufXJldHVybiBlLmdldERlZmF1bHRPcHRpb25zPWZ1bmN0aW9uKCl7cmV0dXJue3R5cGU6InZpZXciLGxlZ2VuZDohMSxjaGlsZHJlbjpbe3R5cGU6ImdhdWdlIn1dfX0sZS5wcm90b3R5cGUuZ2V0RGVmYXVsdE9wdGlvbnM9ZnVuY3Rpb24oKXtyZXR1cm4gZS5nZXREZWZhdWx0T3B0aW9ucygpfSxlLnByb3RvdHlwZS5nZXRTY2hlbWFBZGFwdG9yPWZ1bmN0aW9uKCl7cmV0dXJuIFdpdH0sZX0oT24pO2Z1bmN0aW9uIFppdCh0KXt2YXIgZT1mdW5jdGlvbihuKXt2YXIgcj1uLm9wdGlvbnMucGVyY2VudDtyZXR1cm4oMCxydC5pc051bWJlcikocikmJigoMCxydC5zZXQpKG4sIm9wdGlvbnMuZGF0YSIsciksZGVsZXRlIG4ub3B0aW9ucy5wZXJjZW50KSxufTtyZXR1cm4oMCxydC5mbG93KShlLFRyLGpuKSh0KX12YXIgWWl0PWZ1bmN0aW9uKCl7dmFyIHQ9ZnVuY3Rpb24oZSxuKXtyZXR1cm4gdD1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24ocixpKXtyLl9fcHJvdG9fXz1pfXx8ZnVuY3Rpb24ocixpKXtmb3IodmFyIGEgaW4gaSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaSxhKSYmKHJbYV09aVthXSl9LHQoZSxuKX07cmV0dXJuIGZ1bmN0aW9uKGUsbil7aWYodHlwZW9mIG4hPSJmdW5jdGlvbiImJm4hPT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIitTdHJpbmcobikrIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7dChlLG4pO2Z1bmN0aW9uIHIoKXt0aGlzLmNvbnN0cnVjdG9yPWV9ZS5wcm90b3R5cGU9bj09PW51bGw/T2JqZWN0LmNyZWF0ZShuKTooci5wcm90b3R5cGU9bi5wcm90b3R5cGUsbmV3IHIpfX0oKSxIaXQ9ZnVuY3Rpb24odCl7WWl0KGUsdCk7ZnVuY3Rpb24gZSgpe3ZhciBuPXQhPT1udWxsJiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpcztyZXR1cm4gbi50eXBlPSJMaXF1aWQiLG59cmV0dXJuIGUuZ2V0RGVmYXVsdE9wdGlvbnM9ZnVuY3Rpb24oKXtyZXR1cm57dHlwZToidmlldyIsY2hpbGRyZW46W3t0eXBlOiJsaXF1aWQifV19fSxlLnByb3RvdHlwZS5nZXREZWZhdWx0T3B0aW9ucz1mdW5jdGlvbigpe3JldHVybiBlLmdldERlZmF1bHRPcHRpb25zKCl9LGUucHJvdG90eXBlLmdldFNjaGVtYUFkYXB0b3I9ZnVuY3Rpb24oKXtyZXR1cm4gWml0fSxlfShPbik7ZnVuY3Rpb24gVml0KHQpe3JldHVybigwLHJ0LmZsb3cpKFRyLGpuKSh0KX12YXIgWGl0PWZ1bmN0aW9uKCl7dmFyIHQ9ZnVuY3Rpb24oZSxuKXtyZXR1cm4gdD1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24ocixpKXtyLl9fcHJvdG9fXz1pfXx8ZnVuY3Rpb24ocixpKXtmb3IodmFyIGEgaW4gaSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaSxhKSYmKHJbYV09aVthXSl9LHQoZSxuKX07cmV0dXJuIGZ1bmN0aW9uKGUsbil7aWYodHlwZW9mIG4hPSJmdW5jdGlvbiImJm4hPT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIitTdHJpbmcobikrIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7dChlLG4pO2Z1bmN0aW9uIHIoKXt0aGlzLmNvbnN0cnVjdG9yPWV9ZS5wcm90b3R5cGU9bj09PW51bGw/T2JqZWN0LmNyZWF0ZShuKTooci5wcm90b3R5cGU9bi5wcm90b3R5cGUsbmV3IHIpfX0oKSxVaXQ9ZnVuY3Rpb24odCl7WGl0KGUsdCk7ZnVuY3Rpb24gZSgpe3ZhciBuPXQhPT1udWxsJiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpcztyZXR1cm4gbi50eXBlPSJXb3JkQ2xvdWQiLG59cmV0dXJuIGUuZ2V0RGVmYXVsdE9wdGlvbnM9ZnVuY3Rpb24oKXtyZXR1cm57dHlwZToidmlldyIsbGVnZW5kOiExLGNoaWxkcmVuOlt7dHlwZToid29yZENsb3VkIn1dfX0sZS5wcm90b3R5cGUuZ2V0RGVmYXVsdE9wdGlvbnM9ZnVuY3Rpb24oKXtyZXR1cm4gZS5nZXREZWZhdWx0T3B0aW9ucygpfSxlLnByb3RvdHlwZS5nZXRTY2hlbWFBZGFwdG9yPWZ1bmN0aW9uKCl7cmV0dXJuIFZpdH0sZX0oT24pO2Z1bmN0aW9uIHFpdCh0KXt2YXIgZT1mdW5jdGlvbihuKXt2YXIgcj1uLm9wdGlvbnMsaT1yLmRhdGE7cmV0dXJuIGkmJigwLHJ0LnNldCkociwiZGF0YSIse3ZhbHVlOml9KSxufTtyZXR1cm4oMCxydC5mbG93KShlLFRyLGpuKSh0KX12YXIgS2l0PWZ1bmN0aW9uKCl7dmFyIHQ9ZnVuY3Rpb24oZSxuKXtyZXR1cm4gdD1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24ocixpKXtyLl9fcHJvdG9fXz1pfXx8ZnVuY3Rpb24ocixpKXtmb3IodmFyIGEgaW4gaSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaSxhKSYmKHJbYV09aVthXSl9LHQoZSxuKX07cmV0dXJuIGZ1bmN0aW9uKGUsbil7aWYodHlwZW9mIG4hPSJmdW5jdGlvbiImJm4hPT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIitTdHJpbmcobikrIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7dChlLG4pO2Z1bmN0aW9uIHIoKXt0aGlzLmNvbnN0cnVjdG9yPWV9ZS5wcm90b3R5cGU9bj09PW51bGw/T2JqZWN0LmNyZWF0ZShuKTooci5wcm90b3R5cGU9bi5wcm90b3R5cGUsbmV3IHIpfX0oKSxRaXQ9ZnVuY3Rpb24odCl7S2l0KGUsdCk7ZnVuY3Rpb24gZSgpe3ZhciBuPXQhPT1udWxsJiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpcztyZXR1cm4gbi50eXBlPSJ0cmVlbWFwIixufXJldHVybiBlLmdldERlZmF1bHRPcHRpb25zPWZ1bmN0aW9uKCl7cmV0dXJue3R5cGU6InZpZXciLGNoaWxkcmVuOlt7dHlwZToidHJlZW1hcCJ9XX19LGUucHJvdG90eXBlLmdldERlZmF1bHRPcHRpb25zPWZ1bmN0aW9uKCl7cmV0dXJuIGUuZ2V0RGVmYXVsdE9wdGlvbnMoKX0sZS5wcm90b3R5cGUuZ2V0U2NoZW1hQWRhcHRvcj1mdW5jdGlvbigpe3JldHVybiBxaXR9LGV9KE9uKSx6dT1mdW5jdGlvbigpe3JldHVybiB6dT1PYmplY3QuYXNzaWdufHxmdW5jdGlvbih0KXtmb3IodmFyIGUsbj0xLHI9YXJndW1lbnRzLmxlbmd0aDtuPHI7bisrKXtlPWFyZ3VtZW50c1tuXTtmb3IodmFyIGkgaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxpKSYmKHRbaV09ZVtpXSl9cmV0dXJuIHR9LHp1LmFwcGx5KHRoaXMsYXJndW1lbnRzKX07ZnVuY3Rpb24gSml0KHQpe3ZhciBlPWZ1bmN0aW9uKGkpe3ZhciBhPWkub3B0aW9ucyxvPWEuc3RhcnRBbmdsZSxzPWEubWF4QW5nbGUsYz1hLmNvb3JkaW5hdGUsbD0oMCxydC5pc051bWJlcikobyk/by8oMipNYXRoLlBJKSozNjA6LTkwLHU9KDAscnQuaXNOdW1iZXIpKHMpPyhOdW1iZXIocykrbCkvMTgwKk1hdGguUEk6TWF0aC5QSTtyZXR1cm4oMCxydC5zZXQpKGksWyJvcHRpb25zIiwiY29vcmRpbmF0ZSJdLHp1KHp1KHt9LGMpLHtlbmRBbmdsZTp1LHN0YXJ0QW5nbGU6byE9bnVsbD9vOi1NYXRoLlBJLzJ9KSksaX0sbj1mdW5jdGlvbihpKXt2YXIgYT1pLm9wdGlvbnMsbz1hLnRvb2x0aXAscz1hLnhGaWVsZCxjPWEueUZpZWxkLGw9UTAocyksdT1RMChjKTtyZXR1cm4gb3x8KDAscnQuc2V0KShhLCJ0b29sdGlwIix7dGl0bGU6ITEsaXRlbXM6W2Z1bmN0aW9uKGYsZCxoKXtyZXR1cm57bmFtZTpsKGYsZCxoKSx2YWx1ZTp1KGYsZCxoKX19XX0pLGl9LHI9ZnVuY3Rpb24oaSl7dmFyIGE9aS5vcHRpb25zLG89YS5tYXJrQmFja2dyb3VuZCxzPWEuY2hpbGRyZW4sYz1hLnNjYWxlLGw9YS5jb29yZGluYXRlLHU9YS54RmllbGQsZj0oMCxydC5nZXQpKGMsInkuZG9tYWluIixbXSk7cmV0dXJuIG8mJnMudW5zaGlmdCh6dSh7dHlwZToiaW50ZXJ2YWwiLHhGaWVsZDp1LHlGaWVsZDpmW2YubGVuZ3RoLTFdLGNvbG9yRmllbGQ6by5jb2xvcixzY2FsZTp7Y29sb3I6e3R5cGU6ImlkZW50aXR5In19LHN0eWxlOntmaWxsT3BhY2l0eTpvLm9wYWNpdHksZmlsbDpvLmNvbG9yP3ZvaWQgMDoiI2UwZTRlZSJ9LGNvb3JkaW5hdGU6enUoenUoe30sbCkse3N0YXJ0QW5nbGU6LU1hdGguUEkvMixlbmRBbmdsZToxLjUqTWF0aC5QSX0pLGFuaW1hdGU6ITF9LG8pKSxpfTtyZXR1cm4oMCxydC5mbG93KShlLG4scixUcixqbikodCl9dmFyIHRhdD1mdW5jdGlvbigpe3ZhciB0PWZ1bmN0aW9uKGUsbil7cmV0dXJuIHQ9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHIsaSl7ci5fX3Byb3RvX189aX18fGZ1bmN0aW9uKHIsaSl7Zm9yKHZhciBhIGluIGkpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGksYSkmJihyW2FdPWlbYV0pfSx0KGUsbil9O3JldHVybiBmdW5jdGlvbihlLG4pe2lmKHR5cGVvZiBuIT0iZnVuY3Rpb24iJiZuIT09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIrU3RyaW5nKG4pKyIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpO3QoZSxuKTtmdW5jdGlvbiByKCl7dGhpcy5jb25zdHJ1Y3Rvcj1lfWUucHJvdG90eXBlPW49PT1udWxsP09iamVjdC5jcmVhdGUobik6KHIucHJvdG90eXBlPW4ucHJvdG90eXBlLG5ldyByKX19KCksZWF0PWZ1bmN0aW9uKHQpe3RhdChlLHQpO2Z1bmN0aW9uIGUoKXt2YXIgbj10IT09bnVsbCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXM7cmV0dXJuIG4udHlwZT0icmFkaWFsIixufXJldHVybiBlLmdldERlZmF1bHRPcHRpb25zPWZ1bmN0aW9uKCl7cmV0dXJue3R5cGU6InZpZXciLGNoaWxkcmVuOlt7dHlwZToiaW50ZXJ2YWwifV0sY29vcmRpbmF0ZTp7dHlwZToicmFkaWFsIixpbm5lclJhZGl1czouMSxvdXRlclJhZGl1czoxLGVuZEFuZ2xlOk1hdGguUEl9LGFuaW1hdGU6e2VudGVyOnt0eXBlOiJ3YXZlSW4iLGR1cmF0aW9uOjgwMH19LGF4aXM6e3k6e25pY2U6ITAsbGFiZWxBdXRvSGlkZTohMCxsYWJlbEF1dG9Sb3RhdGU6ITF9LHg6e3RpdGxlOiExLG5pY2U6ITAsbGFiZWxBdXRvUm90YXRlOiExLGxhYmVsQXV0b0hpZGU6e3R5cGU6ImVxdWlkaXN0YW5jZSIsY2ZnOnttaW5HYXA6Nn19fX19fSxlLnByb3RvdHlwZS5nZXREZWZhdWx0T3B0aW9ucz1mdW5jdGlvbigpe3JldHVybiBlLmdldERlZmF1bHRPcHRpb25zKCl9LGUucHJvdG90eXBlLmdldFNjaGVtYUFkYXB0b3I9ZnVuY3Rpb24oKXtyZXR1cm4gSml0fSxlfShPbik7ZnVuY3Rpb24gbmF0KHQpe3JldHVybigwLHJ0LmZsb3cpKGpuKSh0KX12YXIgcmF0PWZ1bmN0aW9uKCl7dmFyIHQ9ZnVuY3Rpb24oZSxuKXtyZXR1cm4gdD1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24ocixpKXtyLl9fcHJvdG9fXz1pfXx8ZnVuY3Rpb24ocixpKXtmb3IodmFyIGEgaW4gaSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaSxhKSYmKHJbYV09aVthXSl9LHQoZSxuKX07cmV0dXJuIGZ1bmN0aW9uKGUsbil7aWYodHlwZW9mIG4hPSJmdW5jdGlvbiImJm4hPT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIitTdHJpbmcobikrIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7dChlLG4pO2Z1bmN0aW9uIHIoKXt0aGlzLmNvbnN0cnVjdG9yPWV9ZS5wcm90b3R5cGU9bj09PW51bGw/T2JqZWN0LmNyZWF0ZShuKTooci5wcm90b3R5cGU9bi5wcm90b3R5cGUsbmV3IHIpfX0oKSxpYXQ9ZnVuY3Rpb24odCl7cmF0KGUsdCk7ZnVuY3Rpb24gZSgpe3ZhciBuPXQhPT1udWxsJiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpcztyZXR1cm4gbi50eXBlPSJDaXJjbGVQYWNraW5nIixufXJldHVybiBlLmdldERlZmF1bHRPcHRpb25zPWZ1bmN0aW9uKCl7cmV0dXJue2xlZ2VuZDohMSx0eXBlOiJ2aWV3IixjaGlsZHJlbjpbe3R5cGU6InBhY2sifV19fSxlLnByb3RvdHlwZS5nZXREZWZhdWx0T3B0aW9ucz1mdW5jdGlvbigpe3JldHVybiBlLmdldERlZmF1bHRPcHRpb25zKCl9LGUucHJvdG90eXBlLmdldFNjaGVtYUFkYXB0b3I9ZnVuY3Rpb24oKXtyZXR1cm4gbmF0fSxlfShPbikseWI9ZnVuY3Rpb24oKXtyZXR1cm4geWI9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49MSxyPWFyZ3VtZW50cy5sZW5ndGg7bjxyO24rKyl7ZT1hcmd1bWVudHNbbl07Zm9yKHZhciBpIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsaSkmJih0W2ldPWVbaV0pfXJldHVybiB0fSx5Yi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O2Z1bmN0aW9uIGFhdCh0KXt2YXIgZT1mdW5jdGlvbihuKXt2YXIgcj1uLm9wdGlvbnMsaT1yLnhGaWVsZCxhPXIueUZpZWxkLG89ci5zZXJpZXNGaWVsZCxzPXIuY2hpbGRyZW4sYz1zPT1udWxsP3ZvaWQgMDpzLm1hcChmdW5jdGlvbihsKXtyZXR1cm4geWIoeWIoe30sbCkse3hGaWVsZDppLHlGaWVsZDphLHNlcmllc0ZpZWxkOm8sY29sb3JGaWVsZDpvLGRhdGE6bC50eXBlPT09ImRlbnNpdHkiP3t0cmFuc2Zvcm06W3t0eXBlOiJrZGUiLGZpZWxkOmEsZ3JvdXBCeTpbaSxvXX1dfTpsLmRhdGF9KX0pLmZpbHRlcihmdW5jdGlvbihsKXtyZXR1cm4gci52aW9saW5UeXBlIT09ImRlbnNpdHkifHxsLnR5cGU9PT0iZGVuc2l0eSJ9KTtyZXR1cm4oMCxydC5zZXQpKHIsImNoaWxkcmVuIixjKSxyLnZpb2xpblR5cGU9PT0icG9sYXIiJiYoMCxydC5zZXQpKHIsImNvb3JkaW5hdGUiLHt0eXBlOiJwb2xhciJ9KSwoMCxydC5zZXQpKHIsInZpb2xpblR5cGUiLHZvaWQgMCksbn07cmV0dXJuKDAscnQuZmxvdykoZSxUcixqbikodCl9dmFyIG9hdD1mdW5jdGlvbigpe3ZhciB0PWZ1bmN0aW9uKGUsbil7cmV0dXJuIHQ9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHIsaSl7ci5fX3Byb3RvX189aX18fGZ1bmN0aW9uKHIsaSl7Zm9yKHZhciBhIGluIGkpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGksYSkmJihyW2FdPWlbYV0pfSx0KGUsbil9O3JldHVybiBmdW5jdGlvbihlLG4pe2lmKHR5cGVvZiBuIT0iZnVuY3Rpb24iJiZuIT09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIrU3RyaW5nKG4pKyIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpO3QoZSxuKTtmdW5jdGlvbiByKCl7dGhpcy5jb25zdHJ1Y3Rvcj1lfWUucHJvdG90eXBlPW49PT1udWxsP09iamVjdC5jcmVhdGUobik6KHIucHJvdG90eXBlPW4ucHJvdG90eXBlLG5ldyByKX19KCksc2F0PWZ1bmN0aW9uKHQpe29hdChlLHQpO2Z1bmN0aW9uIGUoKXt2YXIgbj10IT09bnVsbCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXM7cmV0dXJuIG4udHlwZT0idmlvbGluIixufXJldHVybiBlLmdldERlZmF1bHRPcHRpb25zPWZ1bmN0aW9uKCl7cmV0dXJue3R5cGU6InZpZXciLGNoaWxkcmVuOlt7dHlwZToiZGVuc2l0eSIsc2l6ZUZpZWxkOiJzaXplIix0b29sdGlwOiExfSx7dHlwZToiYm94cGxvdCIsc2hhcGVGaWVsZDoidmlvbGluIixzdHlsZTp7b3BhY2l0eTouNSxwb2ludDohMX19XSxhbmltYXRlOntlbnRlcjp7dHlwZToiZmFkZUluIn19fX0sZS5wcm90b3R5cGUuZ2V0RGVmYXVsdE9wdGlvbnM9ZnVuY3Rpb24oKXtyZXR1cm4gZS5nZXREZWZhdWx0T3B0aW9ucygpfSxlLnByb3RvdHlwZS5nZXRTY2hlbWFBZGFwdG9yPWZ1bmN0aW9uKCl7cmV0dXJuIGFhdH0sZX0oT24pLEowPWZ1bmN0aW9uKCl7cmV0dXJuIEowPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPTEscj1hcmd1bWVudHMubGVuZ3RoO248cjtuKyspe2U9YXJndW1lbnRzW25dO2Zvcih2YXIgaSBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLGkpJiYodFtpXT1lW2ldKX1yZXR1cm4gdH0sSjAuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxjYXQ9ZnVuY3Rpb24odCxlLG4pe2lmKG58fGFyZ3VtZW50cy5sZW5ndGg9PT0yKWZvcih2YXIgcj0wLGk9ZS5sZW5ndGgsYTtyPGk7cisrKShhfHwhKHIgaW4gZSkpJiYoYXx8KGE9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZSwwLHIpKSxhW3JdPWVbcl0pO3JldHVybiB0LmNvbmNhdChhfHxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChlKSl9O2Z1bmN0aW9uIGxhdCh0KXt2YXIgZT1mdW5jdGlvbihhKXt2YXIgbz1hLm9wdGlvbnMscz1vLnlGaWVsZCxjPW8uY2hpbGRyZW47cmV0dXJuIGMuZm9yRWFjaChmdW5jdGlvbihsLHUpeygwLHJ0LnNldCkobCwieUZpZWxkIixzW3VdKX0pLGF9LG49ZnVuY3Rpb24oYSl7dmFyIG89YS5vcHRpb25zLHM9by55RmllbGQsYz1vLmNoaWxkcmVuLGw9by5kYXRhO2lmKCgwLHJ0LmlzUGxhaW5PYmplY3QpKGwpKXJldHVybiBhO3ZhciB1PSgwLHJ0LmlzQXJyYXkpKCgwLHJ0LmdldCkobCxbMF0pKT9sOltsLGxdO3JldHVybiBjLmZvckVhY2goZnVuY3Rpb24oZixkKXsoMCxydC5zZXQpKGYsImRhdGEiLGNhdChbXSx1W2RdLm1hcChmdW5jdGlvbihoKXtyZXR1cm4gSjAoe2dyb3VwS2V5OnNbZF19LGgpfSksITApKX0pLGF9LHI9ZnVuY3Rpb24oYSl7dmFyIG89YS5vcHRpb25zLHM9by55RmllbGQsYz1zWzBdLGw9c1sxXSx1PW8udG9vbHRpcDtyZXR1cm4gdXx8KDAscnQuc2V0KShvLCJ0b29sdGlwIix7aXRlbXM6W3tmaWVsZDpjLHZhbHVlOmN9LHtmaWVsZDpsLHZhbHVlOmx9XX0pLGF9LGk9ZnVuY3Rpb24oYSl7dmFyIG89YS5vcHRpb25zLHM9by5jaGlsZHJlbixjPW8ubGF5b3V0LGw9by5jb29yZGluYXRlLnRyYW5zZm9ybSx1PW8ucGFkZGluZ0JvdHRvbSxmPXU9PT12b2lkIDA/Yzg6dSxkPW8ucGFkZGluZ0xlZnQsaD1kPT09dm9pZCAwP2M4OmQsdj1vLmF4aXM7KDAscnQuc2V0KShvLCJheGlzVGV4dCIsSjAoSjAoe30sKHY9PW51bGw/dm9pZCAwOnYueCl8fHt9KSx7bGF5b3V0OmN9KSk7dmFyIGc9c1swXSx5PXNbMV07aWYoYz09PSJ2ZXJ0aWNhbCIpKDAscnQuc2V0KShvLCJkaXJlY3Rpb24iLCJjb2wiKSwoMCxydC5zZXQpKG8sInBhZGRpbmdMZWZ0IixoKSwoMCxydC5zZXQpKG8sImNvb3JkaW5hdGUudHJhbnNmb3JtIixsLmZpbHRlcihmdW5jdGlvbihPKXtyZXR1cm4gTy50eXBlIT09InRyYW5zcG9zZSJ9KSksKDAscnQuc2V0KShnLCJwYWRkaW5nQm90dG9tIixzOCksKDAscnQuc2V0KSh5LCJwYWRkaW5nVG9wIixzOCksKDAscnQuc2V0KSh5LCJheGlzIix7eDp7cG9zaXRpb246InRvcCJ9fSksKDAscnQuc2V0KSh5LCJzY2FsZSIse3k6e3JhbmdlOlswLDFdfX0pO2Vsc2V7KDAscnQuc2V0KShvLCJwYWRkaW5nQm90dG9tIixmKSwoMCxydC5zZXQpKGcsInNjYWxlIix7eTp7cmFuZ2U6WzAsMV19fSk7dmFyIGI9Zy5wYWRkaW5nUmlnaHQseD1iPT09dm9pZCAwP1pFOmIsXz15LnBhZGRpbmdMZWZ0LHc9Xz09PXZvaWQgMD9aRTpfOygwLHJ0LnNldCkoZywicGFkZGluZ1JpZ2h0Iix4KSwoMCxydC5zZXQpKGcsImF4aXMiLHt4Ontwb3NpdGlvbjoicmlnaHQifX0pLCgwLHJ0LnNldCkoeSwicGFkZGluZ0xlZnQiLHcpfXJldHVybiBhfTtyZXR1cm4oMCxydC5mbG93KShlLG4scixpLFRyLGpuKSh0KX12YXIgdWF0PWZ1bmN0aW9uKCl7dmFyIHQ9ZnVuY3Rpb24oZSxuKXtyZXR1cm4gdD1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24ocixpKXtyLl9fcHJvdG9fXz1pfXx8ZnVuY3Rpb24ocixpKXtmb3IodmFyIGEgaW4gaSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaSxhKSYmKHJbYV09aVthXSl9LHQoZSxuKX07cmV0dXJuIGZ1bmN0aW9uKGUsbil7aWYodHlwZW9mIG4hPSJmdW5jdGlvbiImJm4hPT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIitTdHJpbmcobikrIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7dChlLG4pO2Z1bmN0aW9uIHIoKXt0aGlzLmNvbnN0cnVjdG9yPWV9ZS5wcm90b3R5cGU9bj09PW51bGw/T2JqZWN0LmNyZWF0ZShuKTooci5wcm90b3R5cGU9bi5wcm90b3R5cGUsbmV3IHIpfX0oKSxmYXQ9ZnVuY3Rpb24odCl7dWF0KGUsdCk7ZnVuY3Rpb24gZSgpe3ZhciBuPXQhPT1udWxsJiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpcztyZXR1cm4gbi50eXBlPSJCaWRpcmVjdGlvbmFsQmFyIixufXJldHVybiBlLmdldERlZmF1bHRPcHRpb25zPWZ1bmN0aW9uKCl7cmV0dXJue3R5cGU6InNwYWNlRmxleCIsY29vcmRpbmF0ZTp7dHJhbnNmb3JtOlt7dHlwZToidHJhbnNwb3NlIn1dfSxzY2FsZTp7eTp7bmljZTohMH19LGRpcmVjdGlvbjoicm93IixsYXlvdXQ6Imhvcml6b250YWwiLGxlZ2VuZDohMSxheGlzOnt5Ont0aXRsZTohMX0seDp7dGl0bGU6ITEsbGFiZWw6ITF9fSxjaGlsZHJlbjpbe3R5cGU6ImludGVydmFsIn0se3R5cGU6ImludGVydmFsIn1dfX0sZS5wcm90b3R5cGUuZ2V0RGVmYXVsdE9wdGlvbnM9ZnVuY3Rpb24oKXtyZXR1cm4gZS5nZXREZWZhdWx0T3B0aW9ucygpfSxlLnByb3RvdHlwZS5nZXRTY2hlbWFBZGFwdG9yPWZ1bmN0aW9uKCl7cmV0dXJuIGxhdH0sZX0oT24pLFd1OyhmdW5jdGlvbih0KXt0LmNvbG9yPSJrZXkiLHQuZD0icGF0aCJ9KShXdXx8KFd1PXt9KSk7ZnVuY3Rpb24gZGF0KHQpe3ZhciBlPWZ1bmN0aW9uKG4pe3ZhciByPW4ub3B0aW9ucyxpPXIuZGF0YSxhPXIuc2V0c0ZpZWxkLG89ci5zaXplRmllbGQ7cmV0dXJuKDAscnQuaXNBcnJheSkoaSkmJigoMCxydC5zZXQpKHIsImRhdGEiLHt0eXBlOiJpbmxpbmUiLHZhbHVlOmksdHJhbnNmb3JtOlt7dHlwZToidmVubiIsc2V0czphLHNpemU6byxhczpbV3UuY29sb3IsV3UuZF19XX0pLCgwLHJ0LnNldCkociwiY29sb3JGaWVsZCIsYSksKDAscnQuc2V0KShyLFsiY2hpbGRyZW4iLCIwIiwiZW5jb2RlIiwiZCJdLFd1LmQpKSwoMCxydC5zZXQpKG4sIm9wdGlvbnMiLCgwLHJ0Lm9taXQpKHIsWyJzaXplRmllbGQiLCJzZXRzRmllbGQiXSkpLG59O3JldHVybigwLHJ0LmZsb3cpKGUsam4pKHQpfXZhciBoYXQ9ZnVuY3Rpb24oKXt2YXIgdD1mdW5jdGlvbihlLG4pe3JldHVybiB0PU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihyLGkpe3IuX19wcm90b19fPWl9fHxmdW5jdGlvbihyLGkpe2Zvcih2YXIgYSBpbiBpKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChpLGEpJiYoclthXT1pW2FdKX0sdChlLG4pfTtyZXR1cm4gZnVuY3Rpb24oZSxuKXtpZih0eXBlb2YgbiE9ImZ1bmN0aW9uIiYmbiE9PW51bGwpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiK1N0cmluZyhuKSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTt0KGUsbik7ZnVuY3Rpb24gcigpe3RoaXMuY29uc3RydWN0b3I9ZX1lLnByb3RvdHlwZT1uPT09bnVsbD9PYmplY3QuY3JlYXRlKG4pOihyLnByb3RvdHlwZT1uLnByb3RvdHlwZSxuZXcgcil9fSgpLHBhdD1mdW5jdGlvbih0KXtoYXQoZSx0KTtmdW5jdGlvbiBlKCl7dmFyIG49dCE9PW51bGwmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzO3JldHVybiBuLnR5cGU9InZlbm4iLG59cmV0dXJuIGUuZ2V0RGVmYXVsdE9wdGlvbnM9ZnVuY3Rpb24oKXtyZXR1cm57dHlwZToidmlldyIsY2hpbGRyZW46W3t0eXBlOiJwYXRoIn1dLGxlZ2VuZDp7Y29sb3I6e2l0ZW1NYXJrZXI6ImNpcmNsZSJ9fSxlbmNvZGU6e2NvbG9yOld1LmNvbG9yLGQ6V3UuZH19fSxlLnByb3RvdHlwZS5nZXREZWZhdWx0T3B0aW9ucz1mdW5jdGlvbigpe3JldHVybiBlLmdldERlZmF1bHRPcHRpb25zKCl9LGUucHJvdG90eXBlLmdldFNjaGVtYUFkYXB0b3I9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0fSxlfShPbik7ZnVuY3Rpb24gdmF0KHQpe3ZhciBlPWZ1bmN0aW9uKG4pe3JldHVybiBufTtyZXR1cm4oMCxydC5mbG93KShlLGpuKSh0KX12YXIgZ2F0PWZ1bmN0aW9uKCl7dmFyIHQ9ZnVuY3Rpb24oZSxuKXtyZXR1cm4gdD1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24ocixpKXtyLl9fcHJvdG9fXz1pfXx8ZnVuY3Rpb24ocixpKXtmb3IodmFyIGEgaW4gaSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaSxhKSYmKHJbYV09aVthXSl9LHQoZSxuKX07cmV0dXJuIGZ1bmN0aW9uKGUsbil7aWYodHlwZW9mIG4hPSJmdW5jdGlvbiImJm4hPT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIitTdHJpbmcobikrIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7dChlLG4pO2Z1bmN0aW9uIHIoKXt0aGlzLmNvbnN0cnVjdG9yPWV9ZS5wcm90b3R5cGU9bj09PW51bGw/T2JqZWN0LmNyZWF0ZShuKTooci5wcm90b3R5cGU9bi5wcm90b3R5cGUsbmV3IHIpfX0oKSx5YXQ9ZnVuY3Rpb24odCl7Z2F0KGUsdCk7ZnVuY3Rpb24gZSgpe3ZhciBuPXQhPT1udWxsJiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpcztyZXR1cm4gbi50eXBlPSJTdW5idXJzdCIsbn1yZXR1cm4gZS5nZXREZWZhdWx0T3B0aW9ucz1mdW5jdGlvbigpe3JldHVybnt0eXBlOiJ2aWV3IixjaGlsZHJlbjpbe3R5cGU6InN1bmJ1cnN0In1dfX0sZS5wcm90b3R5cGUuZ2V0RGVmYXVsdE9wdGlvbnM9ZnVuY3Rpb24oKXtyZXR1cm4gZS5nZXREZWZhdWx0T3B0aW9ucygpfSxlLnByb3RvdHlwZS5nZXRTY2hlbWFBZGFwdG9yPWZ1bmN0aW9uKCl7cmV0dXJuIHZhdH0sZX0oT24pLG1hdD17QmFzZTptcnQsTGluZTpGcnQsQ29sdW1uOlBydCxQaWU6V3J0LEFyZWE6U3J0LEJhcjprcnQsRHVhbEF4ZXM6ZDgsRnVubmVsOklydCxTY2F0dGVyOlpydCxSYWRhcjpWcnQsUm9zZTpiaXQsU3RvY2s6ZWl0LFRpbnlMaW5lOmlpdCxUaW55QXJlYTpzaXQsVGlueUNvbHVtbjp1aXQsVGlueVByb2dyZXNzOmhpdCxUaW55UmluZzpnaXQsV2F0ZXJmYWxsOk9pdCxIaXN0b2dyYW06TWl0LEhlYXRtYXA6VGl0LEJveDpMaXQsU2Fua2V5OklpdCxCdWxsZXQ6eml0LEdhdWdlOiRpdCxMaXF1aWQ6SGl0LFdvcmRDbG91ZDpVaXQsVHJlZW1hcDpRaXQsUmFkaWFsQmFyOmVhdCxDaXJjbGVQYWNraW5nOmlhdCxWaW9saW46c2F0LEJpZGlyZWN0aW9uYWxCYXI6ZmF0LFZlbm46cGF0LE1peDpkOCxTdW5idXJzdDp5YXR9LEpFPWZ1bmN0aW9uKCl7cmV0dXJuIEpFPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPTEscj1hcmd1bWVudHMubGVuZ3RoO248cjtuKyspe2U9YXJndW1lbnRzW25dO2Zvcih2YXIgaSBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLGkpJiYodFtpXT1lW2ldKX1yZXR1cm4gdH0sSkUuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxoOD1mdW5jdGlvbih0LGUpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiZlLmluZGV4T2Yocik8MCYmKG5bcl09dFtyXSk7aWYodCE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBpPTAscj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2k8ci5sZW5ndGg7aSsrKWUuaW5kZXhPZihyW2ldKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodCxyW2ldKSYmKG5bcltpXV09dFtyW2ldXSk7cmV0dXJuIG59LGJhdD0oMCxSdC5mb3J3YXJkUmVmKShmdW5jdGlvbih0LGUpe3ZhciBuPXQuY2hhcnRUeXBlLHI9bj09PXZvaWQgMD8iQmFzZSI6bixpPWg4KHQsWyJjaGFydFR5cGUiXSksYT1pLmNvbnRhaW5lclN0eWxlLG89YT09PXZvaWQgMD97aGVpZ2h0OiJpbmhlcml0IixmbGV4OjF9OmEscz1pLmNvbnRhaW5lckF0dHJpYnV0ZXMsYz1zPT09dm9pZCAwP3t9OnMsbD1pLmNsYXNzTmFtZSx1PWkubG9hZGluZyxmPWkubG9hZGluZ1RlbXBsYXRlLGQ9aS5lcnJvclRlbXBsYXRlLGg9aDgoaSxbImNvbnRhaW5lclN0eWxlIiwiY29udGFpbmVyQXR0cmlidXRlcyIsImNsYXNzTmFtZSIsImxvYWRpbmciLCJsb2FkaW5nVGVtcGxhdGUiLCJlcnJvclRlbXBsYXRlIl0pLHY9WGEobWF0W3JdLGgpLGc9di5jaGFydCx5PXYuY29udGFpbmVyO3JldHVybigwLFJ0LnVzZUltcGVyYXRpdmVIYW5kbGUpKGUsZnVuY3Rpb24oKXtyZXR1cm4gZy5jdXJyZW50fSksUnQuY3JlYXRlRWxlbWVudCh0cix7ZXJyb3JUZW1wbGF0ZTpkfSx1JiZSdC5jcmVhdGVFbGVtZW50KEZpLHtsb2FkaW5nVGVtcGxhdGU6Zn0pLFJ0LmNyZWF0ZUVsZW1lbnQoImRpdiIsSkUoe2NsYXNzTmFtZTpsLHN0eWxlOm8scmVmOnl9LGMpKSl9KX0sMzUwOTk6ZnVuY3Rpb24oQWUsQmUscHQpeyJ1c2Ugc3RyaWN0Ijt2YXIgb2U9cHQoNjcyOTQpLCQ9cHQoOTUzMjcpLGZlPWZ1bmN0aW9uKCl7cmV0dXJuIGZlPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKGFlKXtmb3IodmFyIFJ0LHF0PTEsWXQ9YXJndW1lbnRzLmxlbmd0aDtxdDxZdDtxdCsrKXtSdD1hcmd1bWVudHNbcXRdO2Zvcih2YXIgZnQgaW4gUnQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKFJ0LGZ0KSYmKGFlW2Z0XT1SdFtmdF0pfXJldHVybiBhZX0sZmUuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxZZT0oMCxvZS5mb3J3YXJkUmVmKShmdW5jdGlvbihhZSxSdCl7cmV0dXJuIG9lLmNyZWF0ZUVsZW1lbnQoJC5QLGZlKHt9LGFlLHtjaGFydFR5cGU6IkdhdWdlIixyZWY6UnR9KSl9KTtCZS5aPVllfSw2MzQzMDpmdW5jdGlvbihBZSxCZSxwdCl7InVzZSBzdHJpY3QiO3ZhciBvZT1wdCg2NzI5NCksJD1wdCg5NTMyNyksZmU9ZnVuY3Rpb24oKXtyZXR1cm4gZmU9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24oYWUpe2Zvcih2YXIgUnQscXQ9MSxZdD1hcmd1bWVudHMubGVuZ3RoO3F0PFl0O3F0Kyspe1J0PWFyZ3VtZW50c1txdF07Zm9yKHZhciBmdCBpbiBSdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoUnQsZnQpJiYoYWVbZnRdPVJ0W2Z0XSl9cmV0dXJuIGFlfSxmZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LFllPSgwLG9lLmZvcndhcmRSZWYpKGZ1bmN0aW9uKGFlLFJ0KXtyZXR1cm4gb2UuY3JlYXRlRWxlbWVudCgkLlAsZmUoe30sYWUse2NoYXJ0VHlwZToiUGllIixyZWY6UnR9KSl9KTtCZS5aPVllfSwxNzgxNjpmdW5jdGlvbihBZSxCZSl7KGZ1bmN0aW9uKHB0LG9lKXtvZShCZSl9KSh0aGlzLGZ1bmN0aW9uKHB0KXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gb2Uoail7dmFyIHo9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLml0ZXJhdG9yLEg9eiYmalt6XSxVPTA7aWYoSClyZXR1cm4gSC5jYWxsKGopO2lmKGomJnR5cGVvZiBqLmxlbmd0aD09Im51bWJlciIpcmV0dXJue25leHQ6ZnVuY3Rpb24oKXtyZXR1cm57dmFsdWU6KGo9aiYmVT49ai5sZW5ndGg/dm9pZCAwOmopJiZqW1UrK10sZG9uZTohan19fTt0aHJvdyBuZXcgVHlwZUVycm9yKHo/Ik9iamVjdCBpcyBub3QgaXRlcmFibGUuIjoiU3ltYm9sLml0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLiIpfWZ1bmN0aW9uICQoaix6KXt2YXIgSD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZqW1N5bWJvbC5pdGVyYXRvcl07aWYoIUgpcmV0dXJuIGo7dmFyIFUsaXQsYXQ9SC5jYWxsKGopLEs9W107dHJ5e2Zvcig7KHo9PT12b2lkIDB8fDA8ei0tKSYmIShVPWF0Lm5leHQoKSkuZG9uZTspSy5wdXNoKFUudmFsdWUpfWNhdGNoKEope2l0PXtlcnJvcjpKfX1maW5hbGx5e3RyeXtVJiYhVS5kb25lJiYoSD1hdC5yZXR1cm4pJiZILmNhbGwoYXQpfWZpbmFsbHl7aWYoaXQpdGhyb3cgaXQuZXJyb3J9fXJldHVybiBLfWZ1bmN0aW9uIGZlKGoseixIKXtpZihIfHxhcmd1bWVudHMubGVuZ3RoPT09Milmb3IodmFyIFUsaXQ9MCxhdD16Lmxlbmd0aDtpdDxhdDtpdCsrKSFVJiZpdCBpbiB6fHwoKFU9VXx8QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoeiwwLGl0KSlbaXRdPXpbaXRdKTtyZXR1cm4gai5jb25jYXQoVXx8QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoeikpfWZ1bmN0aW9uIFllKGope3JldHVybiBSdChqLCJGdW5jdGlvbiIpfXZhciBhZT17fS50b1N0cmluZyxSdD1mdW5jdGlvbihqLHope3JldHVybiBhZS5jYWxsKGopPT09IltvYmplY3QgIit6KyJdIn0scXQ9ZnVuY3Rpb24oail7cmV0dXJuIEFycmF5LmlzQXJyYXk/QXJyYXkuaXNBcnJheShqKTpSdChqLCJBcnJheSIpfSxZdD1mdW5jdGlvbihqKXtpZih0eXBlb2Yoej1qKSE9Im9iamVjdCJ8fHo9PT1udWxsfHwhUnQoaiwiT2JqZWN0IikpcmV0dXJuITE7dmFyIHo7aWYoT2JqZWN0LmdldFByb3RvdHlwZU9mKGopPT09bnVsbClyZXR1cm4hMDtmb3IodmFyIEg9ajtPYmplY3QuZ2V0UHJvdG90eXBlT2YoSCkhPT1udWxsOylIPU9iamVjdC5nZXRQcm90b3R5cGVPZihIKTtyZXR1cm4gT2JqZWN0LmdldFByb3RvdHlwZU9mKGopPT09SH0sZnQ9ZnVuY3Rpb24oail7cmV0dXJuIFJ0KGosIk51bWJlciIpfSxyZT1PYmplY3QudmFsdWVzP2Z1bmN0aW9uKGope3JldHVybiBPYmplY3QudmFsdWVzKGopfTpmdW5jdGlvbihqKXt2YXIgeixIPVtdLFU9aixpdD1mdW5jdGlvbihjdCx1dCl7WWUoaikmJnV0PT09InByb3RvdHlwZSJ8fEgucHVzaChjdCl9O2lmKFUpe2lmKHF0KFUpKWZvcih2YXIgYXQ9MCxLPVUubGVuZ3RoO2F0PEsmJml0KFVbYXRdLGF0KSE9PSExO2F0KyspO2Vsc2UgaWYoej10eXBlb2YgVSxVIT09bnVsbCYmej09Im9iamVjdCJ8fHo9PSJmdW5jdGlvbiIpe2Zvcih2YXIgSiBpbiBVKWlmKFUuaGFzT3duUHJvcGVydHkoSikmJml0KFVbSl0sSik9PT0hMSlicmVha319cmV0dXJuIEh9LFd0PTU7ZnVuY3Rpb24gZWUoail7Zm9yKHZhciB6PVtdLEg9MTtIPGFyZ3VtZW50cy5sZW5ndGg7SCsrKXpbSC0xXT1hcmd1bWVudHNbSF07Zm9yKHZhciBVPTA7VTx6Lmxlbmd0aDtVKz0xKShmdW5jdGlvbiBpdChhdCxLLEosY3Qpe2Zvcih2YXIgdXQgaW4gSj1KfHwwLGN0PWN0fHxXdCxLKXt2YXIgRHQ7Sy5oYXNPd25Qcm9wZXJ0eSh1dCkmJigoRHQ9S1t1dF0pIT09bnVsbCYmWXQoRHQpPyhZdChhdFt1dF0pfHwoYXRbdXRdPXt9KSxKPGN0P2l0KGF0W3V0XSxEdCxKKzEsY3QpOmF0W3V0XT1LW3V0XSk6cXQoRHQpPyhhdFt1dF09W10sYXRbdXRdPWF0W3V0XS5jb25jYXQoRHQpKTpEdCE9PXZvaWQgMCYmKGF0W3V0XT1EdCkpfX0pKGoseltVXSk7cmV0dXJuIGp9ZnVuY3Rpb24gWHQoail7cmV0dXJuIGp9KGZ1bmN0aW9uKGoseil7dmFyIEg7aWYoWWUoaikpcmV0dXJuKEg9ZnVuY3Rpb24oKXtmb3IodmFyIFU9W10saXQ9MDtpdDxhcmd1bWVudHMubGVuZ3RoO2l0KyspVVtpdF09YXJndW1lbnRzW2l0XTt2YXIgYXQsSz16P3ouYXBwbHkodGhpcyxVKTpVWzBdLEo9SC5jYWNoZTtyZXR1cm4gSi5oYXMoSyk/Si5nZXQoSyk6KGF0PWouYXBwbHkodGhpcyxVKSxKLnNldChLLGF0KSxhdCl9KS5jYWNoZT1uZXcgTWFwO3Rocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGEgZnVuY3Rpb24iKX0pKGZ1bmN0aW9uKGosSyl7dmFyIEg9KEs9Sz09PXZvaWQgMD97fTpLKS5mb250U2l6ZSxVPUsuZm9udEZhbWlseSxpdD1LLmZvbnRXZWlnaHQsYXQ9Sy5mb250U3R5bGUsSz1LLmZvbnRWYXJpYW50O3JldHVybihrdD1rdHx8ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIikuZ2V0Q29udGV4dCgiMmQiKSkuZm9udD1bYXQsSyxpdCxIKyJweCIsVV0uam9pbigiICIpLGt0Lm1lYXN1cmVUZXh0KFJ0KGosIlN0cmluZyIpP2o6IiIpLndpZHRofSxmdW5jdGlvbihqLHope3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgSD0wLFU9MCxpdD1hcmd1bWVudHMubGVuZ3RoO1U8aXQ7VSsrKUgrPWFyZ3VtZW50c1tVXS5sZW5ndGg7Zm9yKHZhciBhdD1BcnJheShIKSxLPTAsVT0wO1U8aXQ7VSsrKWZvcih2YXIgSj1hcmd1bWVudHNbVV0sY3Q9MCx1dD1KLmxlbmd0aDtjdDx1dDtjdCsrLEsrKylhdFtLXT1KW2N0XTtyZXR1cm4gYXR9KFtqXSxyZSh6PXo9PT12b2lkIDA/e306eikpLmpvaW4oIiIpfSk7dmFyIGt0LFN0PXR5cGVvZiBGbG9hdDMyQXJyYXkhPSJ1bmRlZmluZWQiP0Zsb2F0MzJBcnJheTpBcnJheTtmdW5jdGlvbiBidCgpe3ZhciBqPW5ldyBTdCg5KTtyZXR1cm4gU3QhPUZsb2F0MzJBcnJheSYmKGpbMV09MCxqWzJdPTAsalszXT0wLGpbNV09MCxqWzZdPTAsals3XT0wKSxqWzBdPTEsals0XT0xLGpbOF09MSxqfU1hdGguaHlwb3R8fChNYXRoLmh5cG90PWZ1bmN0aW9uKCl7Zm9yKHZhciBqPTAsej1hcmd1bWVudHMubGVuZ3RoO3otLTspais9YXJndW1lbnRzW3pdKmFyZ3VtZW50c1t6XTtyZXR1cm4gTWF0aC5zcXJ0KGopfSk7dmFyIFR0PWZ1bmN0aW9uKGosSHQsVXQpe3ZhciBVPUh0WzBdLGl0PUh0WzFdLGF0PUh0WzJdLEs9SHRbM10sSj1IdFs0XSxjdD1IdFs1XSx1dD1IdFs2XSxEdD1IdFs3XSxIdD1IdFs4XSxpZT1VdFswXSxGdD1VdFsxXSxKdD1VdFsyXSxHdD1VdFszXSxOdD1VdFs0XSxoZT1VdFs1XSxuZT1VdFs2XSxwZT1VdFs3XSxVdD1VdFs4XTtyZXR1cm4galswXT1pZSpVK0Z0KksrSnQqdXQsalsxXT1pZSppdCtGdCpKK0p0KkR0LGpbMl09aWUqYXQrRnQqY3QrSnQqSHQsalszXT1HdCpVK050KksraGUqdXQsals0XT1HdCppdCtOdCpKK2hlKkR0LGpbNV09R3QqYXQrTnQqY3QraGUqSHQsals2XT1uZSpVK3BlKksrVXQqdXQsals3XT1uZSppdCtwZSpKK1V0KkR0LGpbOF09bmUqYXQrcGUqY3QrVXQqSHQsan07ZnVuY3Rpb24geGUoKXt2YXIgaj1uZXcgU3QoMTYpO3JldHVybiBTdCE9RmxvYXQzMkFycmF5JiYoalsxXT0wLGpbMl09MCxqWzNdPTAsals0XT0wLGpbNl09MCxqWzddPTAsals4XT0wLGpbOV09MCxqWzExXT0wLGpbMTJdPTAsalsxM109MCxqWzE0XT0wKSxqWzBdPTEsals1XT0xLGpbMTBdPTEsalsxNV09MSxqfXZhciBfZT1mdW5jdGlvbihqLG5lLEgpe3ZhciBVPW5lWzBdLGl0PW5lWzFdLGF0PW5lWzJdLEs9bmVbM10sSj1uZVs0XSxjdD1uZVs1XSx1dD1uZVs2XSxEdD1uZVs3XSxIdD1uZVs4XSxpZT1uZVs5XSxGdD1uZVsxMF0sSnQ9bmVbMTFdLEd0PW5lWzEyXSxOdD1uZVsxM10saGU9bmVbMTRdLG5lPW5lWzE1XSxwZT1IWzBdLFV0PUhbMV0sdmU9SFsyXSxIZT1IWzNdO3JldHVybiBqWzBdPXBlKlUrVXQqSit2ZSpIdCtIZSpHdCxqWzFdPXBlKml0K1V0KmN0K3ZlKmllK0hlKk50LGpbMl09cGUqYXQrVXQqdXQrdmUqRnQrSGUqaGUsalszXT1wZSpLK1V0KkR0K3ZlKkp0K0hlKm5lLHBlPUhbNF0sVXQ9SFs1XSx2ZT1IWzZdLEhlPUhbN10sals0XT1wZSpVK1V0KkordmUqSHQrSGUqR3Qsals1XT1wZSppdCtVdCpjdCt2ZSppZStIZSpOdCxqWzZdPXBlKmF0K1V0KnV0K3ZlKkZ0K0hlKmhlLGpbN109cGUqSytVdCpEdCt2ZSpKdCtIZSpuZSxwZT1IWzhdLFV0PUhbOV0sdmU9SFsxMF0sSGU9SFsxMV0sals4XT1wZSpVK1V0KkordmUqSHQrSGUqR3Qsals5XT1wZSppdCtVdCpjdCt2ZSppZStIZSpOdCxqWzEwXT1wZSphdCtVdCp1dCt2ZSpGdCtIZSpoZSxqWzExXT1wZSpLK1V0KkR0K3ZlKkp0K0hlKm5lLHBlPUhbMTJdLFV0PUhbMTNdLHZlPUhbMTRdLEhlPUhbMTVdLGpbMTJdPXBlKlUrVXQqSit2ZSpIdCtIZSpHdCxqWzEzXT1wZSppdCtVdCpjdCt2ZSppZStIZSpOdCxqWzE0XT1wZSphdCtVdCp1dCt2ZSpGdCtIZSpoZSxqWzE1XT1wZSpLK1V0KkR0K3ZlKkp0K0hlKm5lLGp9O2Z1bmN0aW9uIF9uKGope2Zvcih2YXIgej1bXSxIPTE7SDxhcmd1bWVudHMubGVuZ3RoO0grKyl6W0gtMV09YXJndW1lbnRzW0hdO3JldHVybiBqP3oucmVkdWNlKGZ1bmN0aW9uKFUsaXQpe3JldHVybiBmdW5jdGlvbihhdCl7cmV0dXJuIGl0KFUoYXQpKX19LGopOlh0fWZ1bmN0aW9uIFVlKGope3JldHVybiBqIGluc3RhbmNlb2YgRmxvYXQzMkFycmF5fHxqIGluc3RhbmNlb2YgQXJyYXl9ZnVuY3Rpb24gcG4oaix6LEgpe2Zvcig7ajx6OylqKz0yKk1hdGguUEk7Zm9yKDtIPGo7KWotPTIqTWF0aC5QSTtyZXR1cm4gan1tZT1uZXcgU3QoMyksU3QhPUZsb2F0MzJBcnJheSYmKG1lWzBdPTAsbWVbMV09MCxtZVsyXT0wKSxtZT1uZXcgU3QoNCksU3QhPUZsb2F0MzJBcnJheSYmKG1lWzBdPTAsbWVbMV09MCxtZVsyXT0wLG1lWzNdPTApO2Z1bmN0aW9uIGduKEsseixILFUsaXQpe3ZhciBhdD0oSz0kKEssMikpWzBdLEs9S1sxXSxKPWJ0KCk7cmV0dXJuIGF0PVthdCxLXSwoSz1KKVswXT0xLEtbMV09MCxLWzJdPTAsS1szXT0wLEtbNF09MSxLWzVdPTAsS1s2XT1hdFswXSxLWzddPWF0WzFdLEtbOF09MSxLfWZ1bmN0aW9uIHJuKGosLi4ueil7cmV0dXJuIHoucmVkdWNlKChILFUpPT5pdD0+SChVKGl0KSksail9ZnVuY3Rpb24gWW4oaix6KXtyZXR1cm4gei1qP0g9PihILWopLyh6LWopOkg9Pi41fWNvbnN0IEpuPU1hdGguc3FydCg1MCksQ2U9TWF0aC5zcXJ0KDEwKSxTZT1NYXRoLnNxcnQoMik7ZnVuY3Rpb24genIoaix6LEgpe3JldHVybiB6PSh6LWopL01hdGgubWF4KDAsSCksaj1NYXRoLmZsb29yKE1hdGgubG9nKHopL01hdGguTE4xMCksSD16L3RpKDEwLGopLDA8PWo/KEg+PUpuPzEwOkg+PUNlPzU6SD49U2U/MjoxKSp0aSgxMCxqKTotdGkoMTAsLWopLyhIPj1Kbj8xMDpIPj1DZT81Okg+PVNlPzI6MSl9Y29uc3QgZGk9KGoseixIPTUpPT57aj1baix6XTtsZXQgVT0wLGl0PWoubGVuZ3RoLTEsYXQ9altVXSxLPWpbaXRdLEo7cmV0dXJuIEs8YXQmJihbYXQsS109W0ssYXRdLFtVLGl0XT1baXQsVV0pLDA8KEo9enIoYXQsSyxIKSk/KGF0PU1hdGguZmxvb3IoYXQvSikqSixLPU1hdGguY2VpbChLL0opKkosSj16cihhdCxLLEgpKTpKPDAmJihhdD1NYXRoLmNlaWwoYXQqSikvSixLPU1hdGguZmxvb3IoSypKKS9KLEo9enIoYXQsSyxIKSksMDxKPyhqW1VdPU1hdGguZmxvb3IoYXQvSikqSixqW2l0XT1NYXRoLmNlaWwoSy9KKSpKKTpKPDAmJihqW1VdPU1hdGguY2VpbChhdCpKKS9KLGpbaXRdPU1hdGguZmxvb3IoSypKKS9KKSxqfTtmdW5jdGlvbiBGaShqKXtyZXR1cm4gaiE9bnVsbCYmIU51bWJlci5pc05hTihqKX1mdW5jdGlvbiBoaShqLHope3JldHVybiBIPT57SC5wcm90b3R5cGUucmVzY2FsZT1mdW5jdGlvbigpe3RoaXMuaW5pdFJhbmdlKCksdGhpcy5uaWNlKCk7dmFyW1VdPXRoaXMuY2hvb3NlVHJhbnNmb3JtcygpO3RoaXMuY29tcG9zZU91dHB1dChVLHRoaXMuY2hvb3NlQ2xhbXAoVSkpfSxILnByb3RvdHlwZS5pbml0UmFuZ2U9ZnVuY3Rpb24oKXt2YXIgVT10aGlzLm9wdGlvbnMuaW50ZXJwb2xhdG9yO3RoaXMub3B0aW9ucy5yYW5nZT1qKFUpfSxILnByb3RvdHlwZS5jb21wb3NlT3V0cHV0PWZ1bmN0aW9uKFUsaXQpe3ZhciBhdCx7ZG9tYWluOkosaW50ZXJwb2xhdG9yOksscm91bmQ6Y3R9PXRoaXMuZ2V0T3B0aW9ucygpLEo9eihKLm1hcChVKSksY3Q9Y3Q/KGF0PUssdXQ9Pih1dD1hdCh1dCksZnQodXQpP01hdGgucm91bmQodXQpOnV0KSk6Szt0aGlzLm91dHB1dD1ybihjdCxKLGl0LFUpfSxILnByb3RvdHlwZS5pbnZlcnQ9dm9pZCAwfX12YXIgdHIsbWU9e2V4cG9ydHM6e319LHFhPXtleHBvcnRzOnt9fSxydD1mdW5jdGlvbihqKXtyZXR1cm4hKCFqfHx0eXBlb2Ygaj09InN0cmluZyIpJiYoaiBpbnN0YW5jZW9mIEFycmF5fHxBcnJheS5pc0FycmF5KGopfHwwPD1qLmxlbmd0aCYmKGouc3BsaWNlIGluc3RhbmNlb2YgRnVuY3Rpb258fE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaixqLmxlbmd0aC0xKSYmai5jb25zdHJ1Y3Rvci5uYW1lIT09IlN0cmluZyIpKX0sYWE9QXJyYXkucHJvdG90eXBlLmNvbmNhdCxCaT1BcnJheS5wcm90b3R5cGUuc2xpY2UsV3I9cWEuZXhwb3J0cz1mdW5jdGlvbihqKXtmb3IodmFyIHo9W10sSD0wLFU9ai5sZW5ndGg7SDxVO0grKyl7dmFyIGl0PWpbSF07cnQoaXQpP3o9YWEuY2FsbCh6LEJpLmNhbGwoaXQpKTp6LnB1c2goaXQpfXJldHVybiB6fSx5YT0oV3Iud3JhcD1mdW5jdGlvbihqKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gaihXcihhcmd1bWVudHMpKX19LHthbGljZWJsdWU6WzI0MCwyNDgsMjU1XSxhbnRpcXVld2hpdGU6WzI1MCwyMzUsMjE1XSxhcXVhOlswLDI1NSwyNTVdLGFxdWFtYXJpbmU6WzEyNywyNTUsMjEyXSxhenVyZTpbMjQwLDI1NSwyNTVdLGJlaWdlOlsyNDUsMjQ1LDIyMF0sYmlzcXVlOlsyNTUsMjI4LDE5Nl0sYmxhY2s6WzAsMCwwXSxibGFuY2hlZGFsbW9uZDpbMjU1LDIzNSwyMDVdLGJsdWU6WzAsMCwyNTVdLGJsdWV2aW9sZXQ6WzEzOCw0MywyMjZdLGJyb3duOlsxNjUsNDIsNDJdLGJ1cmx5d29vZDpbMjIyLDE4NCwxMzVdLGNhZGV0Ymx1ZTpbOTUsMTU4LDE2MF0sY2hhcnRyZXVzZTpbMTI3LDI1NSwwXSxjaG9jb2xhdGU6WzIxMCwxMDUsMzBdLGNvcmFsOlsyNTUsMTI3LDgwXSxjb3JuZmxvd2VyYmx1ZTpbMTAwLDE0OSwyMzddLGNvcm5zaWxrOlsyNTUsMjQ4LDIyMF0sY3JpbXNvbjpbMjIwLDIwLDYwXSxjeWFuOlswLDI1NSwyNTVdLGRhcmtibHVlOlswLDAsMTM5XSxkYXJrY3lhbjpbMCwxMzksMTM5XSxkYXJrZ29sZGVucm9kOlsxODQsMTM0LDExXSxkYXJrZ3JheTpbMTY5LDE2OSwxNjldLGRhcmtncmVlbjpbMCwxMDAsMF0sZGFya2dyZXk6WzE2OSwxNjksMTY5XSxkYXJra2hha2k6WzE4OSwxODMsMTA3XSxkYXJrbWFnZW50YTpbMTM5LDAsMTM5XSxkYXJrb2xpdmVncmVlbjpbODUsMTA3LDQ3XSxkYXJrb3JhbmdlOlsyNTUsMTQwLDBdLGRhcmtvcmNoaWQ6WzE1Myw1MCwyMDRdLGRhcmtyZWQ6WzEzOSwwLDBdLGRhcmtzYWxtb246WzIzMywxNTAsMTIyXSxkYXJrc2VhZ3JlZW46WzE0MywxODgsMTQzXSxkYXJrc2xhdGVibHVlOls3Miw2MSwxMzldLGRhcmtzbGF0ZWdyYXk6WzQ3LDc5LDc5XSxkYXJrc2xhdGVncmV5Ols0Nyw3OSw3OV0sZGFya3R1cnF1b2lzZTpbMCwyMDYsMjA5XSxkYXJrdmlvbGV0OlsxNDgsMCwyMTFdLGRlZXBwaW5rOlsyNTUsMjAsMTQ3XSxkZWVwc2t5Ymx1ZTpbMCwxOTEsMjU1XSxkaW1ncmF5OlsxMDUsMTA1LDEwNV0sZGltZ3JleTpbMTA1LDEwNSwxMDVdLGRvZGdlcmJsdWU6WzMwLDE0NCwyNTVdLGZpcmVicmljazpbMTc4LDM0LDM0XSxmbG9yYWx3aGl0ZTpbMjU1LDI1MCwyNDBdLGZvcmVzdGdyZWVuOlszNCwxMzksMzRdLGZ1Y2hzaWE6WzI1NSwwLDI1NV0sZ2FpbnNib3JvOlsyMjAsMjIwLDIyMF0sZ2hvc3R3aGl0ZTpbMjQ4LDI0OCwyNTVdLGdvbGQ6WzI1NSwyMTUsMF0sZ29sZGVucm9kOlsyMTgsMTY1LDMyXSxncmF5OlsxMjgsMTI4LDEyOF0sZ3JlZW46WzAsMTI4LDBdLGdyZWVueWVsbG93OlsxNzMsMjU1LDQ3XSxncmV5OlsxMjgsMTI4LDEyOF0saG9uZXlkZXc6WzI0MCwyNTUsMjQwXSxob3RwaW5rOlsyNTUsMTA1LDE4MF0saW5kaWFucmVkOlsyMDUsOTIsOTJdLGluZGlnbzpbNzUsMCwxMzBdLGl2b3J5OlsyNTUsMjU1LDI0MF0sa2hha2k6WzI0MCwyMzAsMTQwXSxsYXZlbmRlcjpbMjMwLDIzMCwyNTBdLGxhdmVuZGVyYmx1c2g6WzI1NSwyNDAsMjQ1XSxsYXduZ3JlZW46WzEyNCwyNTIsMF0sbGVtb25jaGlmZm9uOlsyNTUsMjUwLDIwNV0sbGlnaHRibHVlOlsxNzMsMjE2LDIzMF0sbGlnaHRjb3JhbDpbMjQwLDEyOCwxMjhdLGxpZ2h0Y3lhbjpbMjI0LDI1NSwyNTVdLGxpZ2h0Z29sZGVucm9keWVsbG93OlsyNTAsMjUwLDIxMF0sbGlnaHRncmF5OlsyMTEsMjExLDIxMV0sbGlnaHRncmVlbjpbMTQ0LDIzOCwxNDRdLGxpZ2h0Z3JleTpbMjExLDIxMSwyMTFdLGxpZ2h0cGluazpbMjU1LDE4MiwxOTNdLGxpZ2h0c2FsbW9uOlsyNTUsMTYwLDEyMl0sbGlnaHRzZWFncmVlbjpbMzIsMTc4LDE3MF0sbGlnaHRza3libHVlOlsxMzUsMjA2LDI1MF0sbGlnaHRzbGF0ZWdyYXk6WzExOSwxMzYsMTUzXSxsaWdodHNsYXRlZ3JleTpbMTE5LDEzNiwxNTNdLGxpZ2h0c3RlZWxibHVlOlsxNzYsMTk2LDIyMl0sbGlnaHR5ZWxsb3c6WzI1NSwyNTUsMjI0XSxsaW1lOlswLDI1NSwwXSxsaW1lZ3JlZW46WzUwLDIwNSw1MF0sbGluZW46WzI1MCwyNDAsMjMwXSxtYWdlbnRhOlsyNTUsMCwyNTVdLG1hcm9vbjpbMTI4LDAsMF0sbWVkaXVtYXF1YW1hcmluZTpbMTAyLDIwNSwxNzBdLG1lZGl1bWJsdWU6WzAsMCwyMDVdLG1lZGl1bW9yY2hpZDpbMTg2LDg1LDIxMV0sbWVkaXVtcHVycGxlOlsxNDcsMTEyLDIxOV0sbWVkaXVtc2VhZ3JlZW46WzYwLDE3OSwxMTNdLG1lZGl1bXNsYXRlYmx1ZTpbMTIzLDEwNCwyMzhdLG1lZGl1bXNwcmluZ2dyZWVuOlswLDI1MCwxNTRdLG1lZGl1bXR1cnF1b2lzZTpbNzIsMjA5LDIwNF0sbWVkaXVtdmlvbGV0cmVkOlsxOTksMjEsMTMzXSxtaWRuaWdodGJsdWU6WzI1LDI1LDExMl0sbWludGNyZWFtOlsyNDUsMjU1LDI1MF0sbWlzdHlyb3NlOlsyNTUsMjI4LDIyNV0sbW9jY2FzaW46WzI1NSwyMjgsMTgxXSxuYXZham93aGl0ZTpbMjU1LDIyMiwxNzNdLG5hdnk6WzAsMCwxMjhdLG9sZGxhY2U6WzI1MywyNDUsMjMwXSxvbGl2ZTpbMTI4LDEyOCwwXSxvbGl2ZWRyYWI6WzEwNywxNDIsMzVdLG9yYW5nZTpbMjU1LDE2NSwwXSxvcmFuZ2VyZWQ6WzI1NSw2OSwwXSxvcmNoaWQ6WzIxOCwxMTIsMjE0XSxwYWxlZ29sZGVucm9kOlsyMzgsMjMyLDE3MF0scGFsZWdyZWVuOlsxNTIsMjUxLDE1Ml0scGFsZXR1cnF1b2lzZTpbMTc1LDIzOCwyMzhdLHBhbGV2aW9sZXRyZWQ6WzIxOSwxMTIsMTQ3XSxwYXBheWF3aGlwOlsyNTUsMjM5LDIxM10scGVhY2hwdWZmOlsyNTUsMjE4LDE4NV0scGVydTpbMjA1LDEzMyw2M10scGluazpbMjU1LDE5MiwyMDNdLHBsdW06WzIyMSwxNjAsMjIxXSxwb3dkZXJibHVlOlsxNzYsMjI0LDIzMF0scHVycGxlOlsxMjgsMCwxMjhdLHJlYmVjY2FwdXJwbGU6WzEwMiw1MSwxNTNdLHJlZDpbMjU1LDAsMF0scm9zeWJyb3duOlsxODgsMTQzLDE0M10scm95YWxibHVlOls2NSwxMDUsMjI1XSxzYWRkbGVicm93bjpbMTM5LDY5LDE5XSxzYWxtb246WzI1MCwxMjgsMTE0XSxzYW5keWJyb3duOlsyNDQsMTY0LDk2XSxzZWFncmVlbjpbNDYsMTM5LDg3XSxzZWFzaGVsbDpbMjU1LDI0NSwyMzhdLHNpZW5uYTpbMTYwLDgyLDQ1XSxzaWx2ZXI6WzE5MiwxOTIsMTkyXSxza3libHVlOlsxMzUsMjA2LDIzNV0sc2xhdGVibHVlOlsxMDYsOTAsMjA1XSxzbGF0ZWdyYXk6WzExMiwxMjgsMTQ0XSxzbGF0ZWdyZXk6WzExMiwxMjgsMTQ0XSxzbm93OlsyNTUsMjUwLDI1MF0sc3ByaW5nZ3JlZW46WzAsMjU1LDEyN10sc3RlZWxibHVlOls3MCwxMzAsMTgwXSx0YW46WzIxMCwxODAsMTQwXSx0ZWFsOlswLDEyOCwxMjhdLHRoaXN0bGU6WzIxNiwxOTEsMjE2XSx0b21hdG86WzI1NSw5OSw3MV0sdHVycXVvaXNlOls2NCwyMjQsMjA4XSx2aW9sZXQ6WzIzOCwxMzAsMjM4XSx3aGVhdDpbMjQ1LDIyMiwxNzldLHdoaXRlOlsyNTUsMjU1LDI1NV0sd2hpdGVzbW9rZTpbMjQ1LDI0NSwyNDVdLHllbGxvdzpbMjU1LDI1NSwwXSx5ZWxsb3dncmVlbjpbMTU0LDIwNSw1MF19KSxvYT1xYS5leHBvcnRzLGtzPU9iamVjdC5oYXNPd25Qcm9wZXJ0eSxPcj1PYmplY3QuY3JlYXRlKG51bGwpO2Zvcih0ciBpbiB5YSlrcy5jYWxsKHlhLHRyKSYmKE9yW3lhW3RyXV09dHIpO3ZhciB5bj1tZS5leHBvcnRzPXt0bzp7fSxnZXQ6e319O2Z1bmN0aW9uIFhhKGoseixIKXtyZXR1cm4gTWF0aC5taW4oTWF0aC5tYXgoeixqKSxIKX1mdW5jdGlvbiBVYShqKXtyZXR1cm4gaj1NYXRoLnJvdW5kKGopLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpLGoubGVuZ3RoPDI/IjAiK2o6an15bi5nZXQ9ZnVuY3Rpb24oail7dmFyIHosSDtzd2l0Y2goai5zdWJzdHJpbmcoMCwzKS50b0xvd2VyQ2FzZSgpKXtjYXNlImhzbCI6ej15bi5nZXQuaHNsKGopLEg9ImhzbCI7YnJlYWs7Y2FzZSJod2IiOno9eW4uZ2V0Lmh3YihqKSxIPSJod2IiO2JyZWFrO2RlZmF1bHQ6ej15bi5nZXQucmdiKGopLEg9InJnYiJ9cmV0dXJuIHo/e21vZGVsOkgsdmFsdWU6en06bnVsbH0seW4uZ2V0LnJnYj1mdW5jdGlvbihqKXtpZighailyZXR1cm4gbnVsbDt2YXIgeixILFUsaXQ9WzAsMCwwLDFdO2lmKHo9ai5tYXRjaCgvXiMoW2EtZjAtOV17Nn0pKFthLWYwLTldezJ9KT8kL2kpKXtmb3IoVT16WzJdLHo9elsxXSxIPTA7SDwzO0grKyl7dmFyIGF0PTIqSDtpdFtIXT1wYXJzZUludCh6LnNsaWNlKGF0LDIrYXQpLDE2KX1VJiYoaXRbM109cGFyc2VJbnQoVSwxNikvMjU1KX1lbHNlIGlmKHo9ai5tYXRjaCgvXiMoW2EtZjAtOV17Myw0fSkkL2kpKXtmb3IoVT0oej16WzFdKVszXSxIPTA7SDwzO0grKylpdFtIXT1wYXJzZUludCh6W0hdK3pbSF0sMTYpO1UmJihpdFszXT1wYXJzZUludChVK1UsMTYpLzI1NSl9ZWxzZXtpZih6PWoubWF0Y2goL15yZ2JhP1woXHMqKFsrLV0/XGQrKSg/PVtccyxdKVxzKig/OixccyopPyhbKy1dP1xkKykoPz1bXHMsXSlccyooPzosXHMqKT8oWystXT9cZCspXHMqKD86Wyx8XC9dXHMqKFsrLV0/W1xkXC5dKykoJT8pXHMqKT9cKSQvKSlmb3IoSD0wO0g8MztIKyspaXRbSF09cGFyc2VJbnQoeltIKzFdLDApO2Vsc2V7aWYoISh6PWoubWF0Y2goL15yZ2JhP1woXHMqKFsrLV0/W1xkXC5dKylcJVxzKiw/XHMqKFsrLV0/W1xkXC5dKylcJVxzKiw/XHMqKFsrLV0/W1xkXC5dKylcJVxzKig/OlssfFwvXVxzKihbKy1dP1tcZFwuXSspKCU/KVxzKik/XCkkLykpKXJldHVybih6PWoubWF0Y2goL14oXHcrKSQvKSk/elsxXT09PSJ0cmFuc3BhcmVudCI/WzAsMCwwLDBdOmtzLmNhbGwoeWEselsxXSk/KChpdD15YVt6WzFdXSlbM109MSxpdCk6bnVsbDpudWxsO2ZvcihIPTA7SDwzO0grKylpdFtIXT1NYXRoLnJvdW5kKDIuNTUqcGFyc2VGbG9hdCh6W0grMV0pKX16WzRdJiYoels1XT9pdFszXT0uMDEqcGFyc2VGbG9hdCh6WzRdKTppdFszXT1wYXJzZUZsb2F0KHpbNF0pKX1mb3IoSD0wO0g8MztIKyspaXRbSF09WGEoaXRbSF0sMCwyNTUpO3JldHVybiBpdFszXT1YYShpdFszXSwwLDEpLGl0fSx5bi5nZXQuaHNsPWZ1bmN0aW9uKGope3ZhciB6O3JldHVybihqPWomJmoubWF0Y2goL15oc2xhP1woXHMqKFsrLV0/KD86XGR7MCwzfVwuKT9cZCspKD86ZGVnKT9ccyosP1xzKihbKy1dP1tcZFwuXSspJVxzKiw/XHMqKFsrLV0/W1xkXC5dKyklXHMqKD86Wyx8XC9dXHMqKFsrLV0/KD89XC5cZHxcZCkoPzowfFsxLTldXGQqKT8oPzpcLlxkKik/KD86W2VFXVsrLV0/XGQrKT8pXHMqKT9cKSQvKSk/KHo9cGFyc2VGbG9hdChqWzRdKSxbKHBhcnNlRmxvYXQoalsxXSklMzYwKzM2MCklMzYwLFhhKHBhcnNlRmxvYXQoalsyXSksMCwxMDApLFhhKHBhcnNlRmxvYXQoalszXSksMCwxMDApLFhhKGlzTmFOKHopPzE6eiwwLDEpXSk6bnVsbH0seW4uZ2V0Lmh3Yj1mdW5jdGlvbihqKXt2YXIgejtyZXR1cm4oaj1qJiZqLm1hdGNoKC9eaHdiXChccyooWystXT9cZHswLDN9KD86XC5cZCspPykoPzpkZWcpP1xzKixccyooWystXT9bXGRcLl0rKSVccyosXHMqKFsrLV0/W1xkXC5dKyklXHMqKD86LFxzKihbKy1dPyg/PVwuXGR8XGQpKD86MHxbMS05XVxkKik/KD86XC5cZCopPyg/OltlRV1bKy1dP1xkKyk/KVxzKik/XCkkLykpPyh6PXBhcnNlRmxvYXQoals0XSksWyhwYXJzZUZsb2F0KGpbMV0pJTM2MCszNjApJTM2MCxYYShwYXJzZUZsb2F0KGpbMl0pLDAsMTAwKSxYYShwYXJzZUZsb2F0KGpbM10pLDAsMTAwKSxYYShpc05hTih6KT8xOnosMCwxKV0pOm51bGx9LHluLnRvLmhleD1mdW5jdGlvbigpe3ZhciBqPW9hKGFyZ3VtZW50cyk7cmV0dXJuIiMiK1VhKGpbMF0pK1VhKGpbMV0pK1VhKGpbMl0pKyhqWzNdPDE/VWEoTWF0aC5yb3VuZCgyNTUqalszXSkpOiIiKX0seW4udG8ucmdiPWZ1bmN0aW9uKCl7dmFyIGo9b2EoYXJndW1lbnRzKTtyZXR1cm4gai5sZW5ndGg8NHx8alszXT09PTE/InJnYigiK01hdGgucm91bmQoalswXSkrIiwgIitNYXRoLnJvdW5kKGpbMV0pKyIsICIrTWF0aC5yb3VuZChqWzJdKSsiKSI6InJnYmEoIitNYXRoLnJvdW5kKGpbMF0pKyIsICIrTWF0aC5yb3VuZChqWzFdKSsiLCAiK01hdGgucm91bmQoalsyXSkrIiwgIitqWzNdKyIpIn0seW4udG8ucmdiLnBlcmNlbnQ9ZnVuY3Rpb24oKXt2YXIgaj1vYShhcmd1bWVudHMpLHo9TWF0aC5yb3VuZChqWzBdLzI1NSoxMDApLEg9TWF0aC5yb3VuZChqWzFdLzI1NSoxMDApLFU9TWF0aC5yb3VuZChqWzJdLzI1NSoxMDApO3JldHVybiBqLmxlbmd0aDw0fHxqWzNdPT09MT8icmdiKCIreisiJSwgIitIKyIlLCAiK1UrIiUpIjoicmdiYSgiK3orIiUsICIrSCsiJSwgIitVKyIlLCAiK2pbM10rIikifSx5bi50by5oc2w9ZnVuY3Rpb24oKXt2YXIgaj1vYShhcmd1bWVudHMpO3JldHVybiBqLmxlbmd0aDw0fHxqWzNdPT09MT8iaHNsKCIralswXSsiLCAiK2pbMV0rIiUsICIralsyXSsiJSkiOiJoc2xhKCIralswXSsiLCAiK2pbMV0rIiUsICIralsyXSsiJSwgIitqWzNdKyIpIn0seW4udG8uaHdiPWZ1bmN0aW9uKCl7dmFyIGo9b2EoYXJndW1lbnRzKSx6PSIiO3JldHVybiA0PD1qLmxlbmd0aCYmalszXSE9PTEmJih6PSIsICIralszXSksImh3YigiK2pbMF0rIiwgIitqWzFdKyIlLCAiK2pbMl0rIiUiK3orIikifSx5bi50by5rZXl3b3JkPWZ1bmN0aW9uKGope3JldHVybiBPcltqLnNsaWNlKDAsMyldfTt2YXIgQXM9bWUuZXhwb3J0cztmdW5jdGlvbiBUcyhqLHosSCl7bGV0IFU9SDtyZXR1cm4gVTwwJiYoVSs9MSksMTxVJiYtLVUsVTwxLzY/ais2Kih6LWopKlU6VTwuNT96OlU8Mi8zP2orKHotaikqKDIvMy1VKSo2Omp9ZnVuY3Rpb24gWG8oaXQpe3ZhciB6LEgsVSxpdD1Bcy5nZXQoaXQpO3JldHVybiBpdD8oe21vZGVsOml0LHZhbHVlOnp9PWl0LGl0PT09InJnYiI/ejppdD09PSJoc2wiPyh6PShpdD16KVswXS8zNjAsSD1pdFsxXS8xMDAsVT1pdFsyXS8xMDAsaXQ9aXRbM10sSD09MD9bMjU1KlUsMjU1KlUsMjU1KlUsaXRdOlsyNTUqVHMoSD0yKlUtKFU9VTwuNT9VKigxK0gpOlUrSC1VKkgpLFUseisxLzMpLDI1NSpUcyhILFUseiksMjU1KlRzKEgsVSx6LTEvMyksaXRdKTpudWxsKTpudWxsfWNvbnN0IHppPShqLHopPT5IPT5qKigxLUgpK3oqSCxtYT0oaix6KT0+e2lmKHR5cGVvZiBqPT0ibnVtYmVyIiYmdHlwZW9mIHo9PSJudW1iZXIiKXJldHVybiB6aShqLHopO2lmKHR5cGVvZiBqIT0ic3RyaW5nInx8dHlwZW9mIHohPSJzdHJpbmciKXJldHVybigpPT5qO3t2YXIgSD1qLFU9ejtjb25zdCBpdD1YbyhIKSxhdD1YbyhVKTtyZXR1cm4gaXQ9PT1udWxsfHxhdD09PW51bGw/aXQ/KCk9Pkg6KCk9PlU6Sz0+e3ZhciBKPW5ldyBBcnJheSg0KTtmb3IobGV0IEp0PTA7SnQ8NDtKdCs9MSl7dmFyIGN0PWl0W0p0XSx1dD1hdFtKdF07SltKdF09Y3QqKDEtSykrdXQqS312YXJbRHQsSHQsaWUsRnRdPUo7cmV0dXJuYHJnYmEoJHtNYXRoLnJvdW5kKER0KX0sICR7TWF0aC5yb3VuZChIdCl9LCAke01hdGgucm91bmQoaWUpfSwgJHtGdH0pYH19fSxfaT0oaix6KT0+e2NvbnN0IEg9emkoaix6KTtyZXR1cm4gVT0+TWF0aC5yb3VuZChIKFUpKX07ZnVuY3Rpb24gYmEoe21hcDpqLGluaXRLZXk6en0sSCl7cmV0dXJuIHo9eihIKSxqLmhhcyh6KT9qLmdldCh6KTpIfWZ1bmN0aW9uIEd1KGope3JldHVybiB0eXBlb2Ygaj09Im9iamVjdCI/ai52YWx1ZU9mKCk6an1jbGFzcyBXaSBleHRlbmRzIE1hcHtjb25zdHJ1Y3Rvcih6KXtpZihzdXBlcigpLHRoaXMubWFwPW5ldyBNYXAsdGhpcy5pbml0S2V5PUd1LHohPT1udWxsKWZvcih2YXJbSCxVXW9mIHopdGhpcy5zZXQoSCxVKX1nZXQoeil7cmV0dXJuIHN1cGVyLmdldChiYSh7bWFwOnRoaXMubWFwLGluaXRLZXk6dGhpcy5pbml0S2V5fSx6KSl9aGFzKHope3JldHVybiBzdXBlci5oYXMoYmEoe21hcDp0aGlzLm1hcCxpbml0S2V5OnRoaXMuaW5pdEtleX0seikpfXNldCh6LEgpe3JldHVybiBzdXBlci5zZXQoKFt7bWFwOnosaW5pdEtleTpVfSxpdF09W3ttYXA6dGhpcy5tYXAsaW5pdEtleTp0aGlzLmluaXRLZXl9LHpdLFU9VShpdCksei5oYXMoVSk/ei5nZXQoVSk6KHouc2V0KFUsaXQpLGl0KSksSCk7dmFyIFUsaXR9ZGVsZXRlKHope3JldHVybiBzdXBlci5kZWxldGUoKFt7bWFwOnosaW5pdEtleTpIfSxVXT1be21hcDp0aGlzLm1hcCxpbml0S2V5OnRoaXMuaW5pdEtleX0sel0sSD1IKFUpLHouaGFzKEgpJiYoVT16LmdldChIKSx6LmRlbGV0ZShIKSksVSkpO3ZhciBILFV9fWNsYXNzIGJje2NvbnN0cnVjdG9yKHope3RoaXMub3B0aW9ucz1lZSh7fSx0aGlzLmdldERlZmF1bHRPcHRpb25zKCkpLHRoaXMudXBkYXRlKHopfWdldE9wdGlvbnMoKXtyZXR1cm4gdGhpcy5vcHRpb25zfXVwZGF0ZSh6PXt9KXt0aGlzLm9wdGlvbnM9ZWUoe30sdGhpcy5vcHRpb25zLHopLHRoaXMucmVzY2FsZSh6KX1yZXNjYWxlKHope319Y29uc3Qgd2w9U3ltYm9sKCJkZWZhdWx0VW5rbm93biIpO2Z1bmN0aW9uIEVlKGoseixIKXtmb3IobGV0IFU9MDtVPHoubGVuZ3RoO1UrPTEpai5oYXMoeltVXSl8fGouc2V0KEgoeltVXSksVSl9ZnVuY3Rpb24geHQoeil7dmFye3ZhbHVlOnosZnJvbTpILHRvOlUsbWFwcGVyOml0LG5vdEZvdW5kUmV0dXJuOmF0fT16O2xldCBLPWl0LmdldCh6KTtpZihLPT09dm9pZCAwKXtpZihhdCE9PXdsKXJldHVybiBhdDtLPUgucHVzaCh6KS0xLGl0LnNldCh6LEspfXJldHVybiBVW0slVS5sZW5ndGhdfWZ1bmN0aW9uIE90KGope3JldHVybiBqIGluc3RhbmNlb2YgRGF0ZT96PT4iIit6OnR5cGVvZiBqPT0ib2JqZWN0Ij96PT5KU09OLnN0cmluZ2lmeSh6KTp6PT56fWNsYXNzIGxuIGV4dGVuZHMgYmN7Z2V0RGVmYXVsdE9wdGlvbnMoKXtyZXR1cm57ZG9tYWluOltdLHJhbmdlOltdLHVua25vd246d2x9fWNvbnN0cnVjdG9yKHope3N1cGVyKHopfW1hcCh6KXtyZXR1cm4gdGhpcy5kb21haW5JbmRleE1hcC5zaXplPT09MCYmRWUodGhpcy5kb21haW5JbmRleE1hcCx0aGlzLmdldERvbWFpbigpLHRoaXMuZG9tYWluS2V5KSx4dCh7dmFsdWU6dGhpcy5kb21haW5LZXkoeiksbWFwcGVyOnRoaXMuZG9tYWluSW5kZXhNYXAsZnJvbTp0aGlzLmdldERvbWFpbigpLHRvOnRoaXMuZ2V0UmFuZ2UoKSxub3RGb3VuZFJldHVybjp0aGlzLm9wdGlvbnMudW5rbm93bn0pfWludmVydCh6KXtyZXR1cm4gdGhpcy5yYW5nZUluZGV4TWFwLnNpemU9PT0wJiZFZSh0aGlzLnJhbmdlSW5kZXhNYXAsdGhpcy5nZXRSYW5nZSgpLHRoaXMucmFuZ2VLZXkpLHh0KHt2YWx1ZTp0aGlzLnJhbmdlS2V5KHopLG1hcHBlcjp0aGlzLnJhbmdlSW5kZXhNYXAsZnJvbTp0aGlzLmdldFJhbmdlKCksdG86dGhpcy5nZXREb21haW4oKSxub3RGb3VuZFJldHVybjp0aGlzLm9wdGlvbnMudW5rbm93bn0pfXJlc2NhbGUoeil7dmFyW0hdPXRoaXMub3B0aW9ucy5kb21haW4sW1VdPXRoaXMub3B0aW9ucy5yYW5nZTt0aGlzLmRvbWFpbktleT1PdChIKSx0aGlzLnJhbmdlS2V5PU90KFUpLHRoaXMucmFuZ2VJbmRleE1hcD8oeiYmIXoucmFuZ2V8fHRoaXMucmFuZ2VJbmRleE1hcC5jbGVhcigpLHomJiF6LmRvbWFpbiYmIXouY29tcGFyZXx8KHRoaXMuZG9tYWluSW5kZXhNYXAuY2xlYXIoKSx0aGlzLnNvcnRlZERvbWFpbj12b2lkIDApKToodGhpcy5yYW5nZUluZGV4TWFwPW5ldyBNYXAsdGhpcy5kb21haW5JbmRleE1hcD1uZXcgTWFwKX1jbG9uZSgpe3JldHVybiBuZXcgbG4odGhpcy5vcHRpb25zKX1nZXRSYW5nZSgpe3JldHVybiB0aGlzLm9wdGlvbnMucmFuZ2V9Z2V0RG9tYWluKCl7dmFyIHosSDtyZXR1cm4gdGhpcy5zb3J0ZWREb21haW58fCh7ZG9tYWluOnosY29tcGFyZTpIfT10aGlzLm9wdGlvbnMsdGhpcy5zb3J0ZWREb21haW49SD9bLi4uel0uc29ydChIKTp6KSx0aGlzLnNvcnRlZERvbWFpbn19ZnVuY3Rpb24gRGUoTnQpe2NvbnN0e2RvbWFpbjp6LHJhbmdlOkgscGFkZGluZ091dGVyOlUscGFkZGluZ0lubmVyOml0LGZsZXg6YXQscm91bmQ6SyxhbGlnbjpKfT1OdDt2YXIgY3Q9ei5sZW5ndGgsRnQ9MDwoRnQ9KE50PWN0KS0odXQ9YXQpLmxlbmd0aCk/Wy4uLnV0LC4uLm5ldyBBcnJheShGdCkuZmlsbCgxKV06RnQ8MD91dC5zbGljZSgwLE50KTp1dCxbTnQsdXRdPUgsdXQ9dXQtTnQsR3Q9dXQvKDIvY3QqVSsxLTEvY3QqaXQpO2NvbnN0IER0PUd0Kml0L2N0O0d0LT1jdCpEdDtjb25zdCBIdD1mdW5jdGlvbihVdCl7Y29uc3QgdmU9TWF0aC5taW4oLi4uVXQpO3JldHVybiBVdC5tYXAoSGU9PkhlL3ZlKX0oRnQpLGllPUd0L0h0LnJlZHVjZSgoVXQsdmUpPT5VdCt2ZSk7dmFyIEZ0PW5ldyBXaSh6Lm1hcCgoVXQsdmUpPT4odmU9SHRbdmVdKmllLFtVdCxLP01hdGguZmxvb3IodmUpOnZlXSkpKSxKdD1uZXcgV2koei5tYXAoKFV0LHZlKT0+KHZlPUh0W3ZlXSppZStEdCxbVXQsSz9NYXRoLmZsb29yKHZlKTp2ZV0pKSksR3Q9QXJyYXkuZnJvbShKdC52YWx1ZXMoKSkucmVkdWNlKChVdCx2ZSk9PlV0K3ZlKSxOdD1OdCsodXQtKEd0LUd0L2N0Kml0KSkqSjtsZXQgaGU9Sz9NYXRoLnJvdW5kKE50KTpOdDt2YXIgbmU9bmV3IEFycmF5KGN0KTtmb3IobGV0IFV0PTA7VXQ8Y3Q7VXQrPTEpe25lW1V0XT0ocGU9aGUsTWF0aC5yb3VuZCgxZTEyKnBlKS8xZTEyKTt2YXIgcGU9eltVdF07aGUrPUp0LmdldChwZSl9cmV0dXJue3ZhbHVlQmFuZFdpZHRoOkZ0LHZhbHVlU3RlcDpKdCxhZGp1c3RlZFJhbmdlOm5lfX1jbGFzcyBNZSBleHRlbmRzIGxue2dldERlZmF1bHRPcHRpb25zKCl7cmV0dXJue2RvbWFpbjpbXSxyYW5nZTpbMCwxXSxhbGlnbjouNSxyb3VuZDohMSxwYWRkaW5nSW5uZXI6MCxwYWRkaW5nT3V0ZXI6MCxwYWRkaW5nOjAsdW5rbm93bjp3bCxmbGV4OltdfX1jb25zdHJ1Y3Rvcih6KXtzdXBlcih6KX1jbG9uZSgpe3JldHVybiBuZXcgTWUodGhpcy5vcHRpb25zKX1nZXRTdGVwKHope3JldHVybiB0aGlzLnZhbHVlU3RlcD09PXZvaWQgMD8xOnR5cGVvZiB0aGlzLnZhbHVlU3RlcD09Im51bWJlciI/dGhpcy52YWx1ZVN0ZXA6ej09PXZvaWQgMD9BcnJheS5mcm9tKHRoaXMudmFsdWVTdGVwLnZhbHVlcygpKVswXTp0aGlzLnZhbHVlU3RlcC5nZXQoeil9Z2V0QmFuZFdpZHRoKHope3JldHVybiB0aGlzLnZhbHVlQmFuZFdpZHRoPT09dm9pZCAwPzE6dHlwZW9mIHRoaXMudmFsdWVCYW5kV2lkdGg9PSJudW1iZXIiP3RoaXMudmFsdWVCYW5kV2lkdGg6ej09PXZvaWQgMD9BcnJheS5mcm9tKHRoaXMudmFsdWVCYW5kV2lkdGgudmFsdWVzKCkpWzBdOnRoaXMudmFsdWVCYW5kV2lkdGguZ2V0KHopfWdldFJhbmdlKCl7cmV0dXJuIHRoaXMuYWRqdXN0ZWRSYW5nZX1nZXRQYWRkaW5nSW5uZXIoKXt2YXJ7cGFkZGluZzp6LHBhZGRpbmdJbm5lcjpIfT10aGlzLm9wdGlvbnM7cmV0dXJuIDA8ej96Okh9Z2V0UGFkZGluZ091dGVyKCl7dmFye3BhZGRpbmc6eixwYWRkaW5nT3V0ZXI6SH09dGhpcy5vcHRpb25zO3JldHVybiAwPHo/ejpIfXJlc2NhbGUoKXtzdXBlci5yZXNjYWxlKCk7dmFye2FsaWduOlUsZG9tYWluOnoscmFuZ2U6aXQscm91bmQ6YXQsZmxleDpIfT10aGlzLm9wdGlvbnMse2FkanVzdGVkUmFuZ2U6VSx2YWx1ZUJhbmRXaWR0aDppdCx2YWx1ZVN0ZXA6YXR9PWZ1bmN0aW9uKHV0KXt2YXIgSj11dC5kb21haW47aWYoKEo9Si5sZW5ndGgpPT09MClyZXR1cm57dmFsdWVCYW5kV2lkdGg6dm9pZCAwLHZhbHVlU3RlcDp2b2lkIDAsYWRqdXN0ZWRSYW5nZTpbXX07aWYoISgoY3Q9dXQuZmxleCk9PW51bGx8fCFjdC5sZW5ndGgpKXJldHVybiBEZSh1dCk7dmFye3JhbmdlOmN0LHBhZGRpbmdPdXRlcjp1dCxwYWRkaW5nSW5uZXI6RHQscm91bmQ6SHQsYWxpZ246aWV9PXV0O2xldCBGdCxKdCxHdD1jdFswXTtyZXR1cm4gY3Q9Y3RbMV0tR3QsRnQ9Y3QvTWF0aC5tYXgoMSwyKnV0KyhKLUR0KSksSHQmJihGdD1NYXRoLmZsb29yKEZ0KSksR3QrPShjdC1GdCooSi1EdCkpKmllLEp0PUZ0KigxLUR0KSxIdCYmKEd0PU1hdGgucm91bmQoR3QpLEp0PU1hdGgucm91bmQoSnQpKSx1dD1uZXcgQXJyYXkoSikuZmlsbCgwKS5tYXAoKE50LGhlKT0+R3QraGUqRnQpLHt2YWx1ZVN0ZXA6RnQsdmFsdWVCYW5kV2lkdGg6SnQsYWRqdXN0ZWRSYW5nZTp1dH19KHthbGlnbjpVLHJhbmdlOml0LHJvdW5kOmF0LGZsZXg6SCxwYWRkaW5nSW5uZXI6dGhpcy5nZXRQYWRkaW5nSW5uZXIoKSxwYWRkaW5nT3V0ZXI6dGhpcy5nZXRQYWRkaW5nT3V0ZXIoKSxkb21haW46en0pO3RoaXMudmFsdWVTdGVwPWF0LHRoaXMudmFsdWVCYW5kV2lkdGg9aXQsdGhpcy5hZGp1c3RlZFJhbmdlPVV9fWNvbnN0IFRlPShqLHosSCk9PntsZXQgVSxpdCxhdD1qLEs9ejtpZihhdD09PUsmJjA8SClyZXR1cm5bYXRdO2xldCBKPXpyKGF0LEssSCk7aWYoSj09PTB8fCFOdW1iZXIuaXNGaW5pdGUoSikpcmV0dXJuW107aWYoMDxKKXthdD1NYXRoLmNlaWwoYXQvSiksSz1NYXRoLmZsb29yKEsvSiksaXQ9bmV3IEFycmF5KFU9TWF0aC5jZWlsKEstYXQrMSkpO2ZvcihsZXQgY3Q9MDtjdDxVO2N0Kz0xKWl0W2N0XT0oYXQrY3QpKkp9ZWxzZXtKPS1KLGF0PU1hdGguY2VpbChhdCpKKSxLPU1hdGguZmxvb3IoSypKKSxpdD1uZXcgQXJyYXkoVT1NYXRoLmNlaWwoSy1hdCsxKSk7Zm9yKGxldCBjdD0wO2N0PFU7Y3QrPTEpaXRbY3RdPShhdCtjdCkvSn1yZXR1cm4gaXR9LFBzPShVLGF0LEgpPT57dmFyW1UsaXRdPVUsW2F0LEtdPWF0O2xldCBKLGN0O3JldHVybiBybihjdD1VPGl0PyhKPVluKFUsaXQpLEgoYXQsSykpOihKPVluKGl0LFUpLEgoSyxhdCkpLEopfSxMbz0oaix6LEgpPT57Y29uc3QgVT1NYXRoLm1pbihqLmxlbmd0aCx6Lmxlbmd0aCktMSxpdD1uZXcgQXJyYXkoVSksYXQ9bmV3IEFycmF5KFUpO3ZhciBLPWpbMF0+altVXSxKPUs/Wy4uLmpdLnJldmVyc2UoKTpqLGN0PUs/Wy4uLnpdLnJldmVyc2UoKTp6O2ZvcihsZXQgdXQ9MDt1dDxVO3V0Kz0xKWl0W3V0XT1ZbihKW3V0XSxKW3V0KzFdKSxhdFt1dF09SChjdFt1dF0sY3RbdXQrMV0pO3JldHVybiB1dD0+e3ZhciBEdD1mdW5jdGlvbihpZSxGdCxKdCxHdCxOdCl7bGV0IGhlPUp0fHwwLG5lPUd0fHxpZS5sZW5ndGg7Zm9yKHZhciBwZT1OdHx8KHZlPT52ZSk7aGU8bmU7KXt2YXIgVXQ9TWF0aC5mbG9vcigoaGUrbmUpLzIpO3BlKGllW1V0XSk+RnQ/bmU9VXQ6aGU9VXQrMX1yZXR1cm4gaGV9KGosdXQsMSxVKS0xLEh0PWl0W0R0XTtyZXR1cm4gcm4oYXRbRHRdLEh0KSh1dCl9fSx1bj0oaix6LEgsVSk9PigyPE1hdGgubWluKGoubGVuZ3RoLHoubGVuZ3RoKT9MbzpQcykoaix6LFU/X2k6SCk7Y2xhc3MgSG4gZXh0ZW5kcyBiY3tnZXREZWZhdWx0T3B0aW9ucygpe3JldHVybntkb21haW46WzAsMV0scmFuZ2U6WzAsMV0sbmljZTohMSxjbGFtcDohMSxyb3VuZDohMSxpbnRlcnBvbGF0ZTp6aSx0aWNrQ291bnQ6NX19bWFwKHope3JldHVybiBGaSh6KT90aGlzLm91dHB1dCh6KTp0aGlzLm9wdGlvbnMudW5rbm93bn1pbnZlcnQoeil7cmV0dXJuIEZpKHopP3RoaXMuaW5wdXQoeik6dGhpcy5vcHRpb25zLnVua25vd259bmljZSgpe3ZhciB6LEgsVSxpdDt0aGlzLm9wdGlvbnMubmljZSYmKFt6LEgsVSwuLi5pdF09dGhpcy5nZXRUaWNrTWV0aG9kT3B0aW9ucygpLHRoaXMub3B0aW9ucy5kb21haW49dGhpcy5jaG9vc2VOaWNlKCkoeixILFUsLi4uaXQpKX1nZXRUaWNrcygpe3ZhciB6PXRoaXMub3B0aW9ucy50aWNrTWV0aG9kLFtILFUsaXQsLi4uYXRdPXRoaXMuZ2V0VGlja01ldGhvZE9wdGlvbnMoKTtyZXR1cm4geihILFUsaXQsLi4uYXQpfWdldFRpY2tNZXRob2RPcHRpb25zKCl7dmFye2RvbWFpbjp6LHRpY2tDb3VudDpIfT10aGlzLm9wdGlvbnM7cmV0dXJuW3pbMF0selt6Lmxlbmd0aC0xXSxIXX1jaG9vc2VOaWNlKCl7cmV0dXJuIGRpfXJlc2NhbGUoKXt0aGlzLm5pY2UoKTt2YXJbeixIXT10aGlzLmNob29zZVRyYW5zZm9ybXMoKTt0aGlzLmNvbXBvc2VPdXRwdXQoeix0aGlzLmNob29zZUNsYW1wKHopKSx0aGlzLmNvbXBvc2VJbnB1dCh6LEgsdGhpcy5jaG9vc2VDbGFtcChIKSl9Y2hvb3NlQ2xhbXAoVSl7dmFye2NsYW1wOkgscmFuZ2U6aXR9PXRoaXMub3B0aW9ucyxVPXRoaXMub3B0aW9ucy5kb21haW4ubWFwKFUpLGl0PU1hdGgubWluKFUubGVuZ3RoLGl0Lmxlbmd0aCk7aWYoSCl7SD1VWzBdLFU9VVtpdC0xXTtjb25zdCBhdD1VPEg/VTpILEs9VTxIP0g6VTtyZXR1cm4gSj0+TWF0aC5taW4oTWF0aC5tYXgoYXQsSiksSyl9cmV0dXJuIFh0fWNvbXBvc2VPdXRwdXQoeixIKXt2YXJ7ZG9tYWluOksscmFuZ2U6VSxyb3VuZDppdCxpbnRlcnBvbGF0ZTphdH09dGhpcy5vcHRpb25zLEs9dW4oSy5tYXAoeiksVSxhdCxpdCk7dGhpcy5vdXRwdXQ9cm4oSyxILHopfWNvbXBvc2VJbnB1dCh6LEgsVSl7dmFye2RvbWFpbjppdCxyYW5nZTphdH09dGhpcy5vcHRpb25zLGF0PXVuKGF0LGl0Lm1hcCh6KSx6aSk7dGhpcy5pbnB1dD1ybihILFUsYXQpfX1jbGFzcyBQciBleHRlbmRzIEhue2dldERlZmF1bHRPcHRpb25zKCl7cmV0dXJue2RvbWFpbjpbMCwxXSxyYW5nZTpbMCwxXSx1bmtub3duOnZvaWQgMCxuaWNlOiExLGNsYW1wOiExLHJvdW5kOiExLGludGVycG9sYXRlOm1hLHRpY2tNZXRob2Q6VGUsdGlja0NvdW50OjV9fWNob29zZVRyYW5zZm9ybXMoKXtyZXR1cm5bWHQsWHRdfWNsb25lKCl7cmV0dXJuIG5ldyBQcih0aGlzLm9wdGlvbnMpfX1jbGFzcyB4YyBleHRlbmRzIE1le2dldERlZmF1bHRPcHRpb25zKCl7cmV0dXJue2RvbWFpbjpbXSxyYW5nZTpbMCwxXSxhbGlnbjouNSxyb3VuZDohMSxwYWRkaW5nOjAsdW5rbm93bjp3bCxwYWRkaW5nSW5uZXI6MSxwYWRkaW5nT3V0ZXI6MH19Y29uc3RydWN0b3Ioeil7c3VwZXIoeil9Z2V0UGFkZGluZ0lubmVyKCl7cmV0dXJuIDF9Y2xvbmUoKXtyZXR1cm4gbmV3IHhjKHRoaXMub3B0aW9ucyl9dXBkYXRlKHope3N1cGVyLnVwZGF0ZSh6KX1nZXRQYWRkaW5nT3V0ZXIoKXtyZXR1cm4gdGhpcy5vcHRpb25zLnBhZGRpbmd9fWZ1bmN0aW9uIF9jKGoseil7Zm9yKHZhciBIPVtdLFU9MCxpdD1qLmxlbmd0aDtVPGl0O1UrKylILnB1c2goaltVXS5zdWJzdHIoMCx6KSk7cmV0dXJuIEh9dmFyIHdjLHFhPVsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXSxtZT1bIkphbnVhcnkiLCJGZWJydWFyeSIsIk1hcmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwiSnVseSIsIkF1Z3VzdCIsIlNlcHRlbWJlciIsIk9jdG9iZXIiLCJOb3ZlbWJlciIsIkRlY2VtYmVyIl0sd2k9X2MobWUsMyk7KGZ1bmN0aW9uKGope2Zvcih2YXIgej1bXSxIPTE7SDxhcmd1bWVudHMubGVuZ3RoO0grKyl6W0gtMV09YXJndW1lbnRzW0hdO2Zvcih2YXIgVT0wLGl0PXo7VTxpdC5sZW5ndGg7VSsrKXt2YXIgYXQsSz1pdFtVXTtmb3IoYXQgaW4gSylqW2F0XT1LW2F0XX19KSh7fSx7ZGF5TmFtZXNTaG9ydDpfYyhxYSwzKSxkYXlOYW1lczpxYSxtb250aE5hbWVzU2hvcnQ6d2ksbW9udGhOYW1lczptZSxhbVBtOlsiYW0iLCJwbSJdLERvRm46ZnVuY3Rpb24oail7cmV0dXJuIGorWyJ0aCIsInN0IiwibmQiLCJyZCJdWzM8aiUxMD8wOihqLWolMTAhPTEwPzE6MCkqaiUxMF19fSk7dmFyIHNhO2xldCBzbj13Yz1jbGFzcyBleHRlbmRzIFBye2dldERlZmF1bHRPcHRpb25zKCl7cmV0dXJue2RvbWFpbjpbMCwxXSx1bmtub3duOnZvaWQgMCxuaWNlOiExLGNsYW1wOiExLHJvdW5kOiExLGludGVycG9sYXRvcjpYdCx0aWNrTWV0aG9kOlRlLHRpY2tDb3VudDo1fX1jb25zdHJ1Y3RvcihqKXtzdXBlcihqKX1jbG9uZSgpe3JldHVybiBuZXcgd2ModGhpcy5vcHRpb25zKX19O3NuPXdjPWZ1bmN0aW9uKGoseixILFUpe3ZhciBpdCxhdD1hcmd1bWVudHMubGVuZ3RoLEs9YXQ8Mz96OlU9PT1udWxsP1U9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih6LEgpOlU7aWYodHlwZW9mIFJlZmxlY3Q9PSJvYmplY3QiJiZ0eXBlb2YgUmVmbGVjdC5kZWNvcmF0ZT09ImZ1bmN0aW9uIilLPVJlZmxlY3QuZGVjb3JhdGUoaix6LEgsVSk7ZWxzZSBmb3IodmFyIEo9ai5sZW5ndGgtMTswPD1KO0otLSkoaXQ9altKXSkmJihLPShhdDwzP2l0KEspOjM8YXQ/aXQoeixILEspOml0KHosSCkpfHxLKTtyZXR1cm4gMzxhdCYmSyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHosSCxLKSxLfShbaGkoZnVuY3Rpb24oail7cmV0dXJuW2ooMCksaigxKV19LHo9Pnt2YXJbeixIXT16O3JldHVybiBybih6aSgwLDEpLFluKHosSCkpfSldLHNuKTtsZXQgY2E9c2E9Y2xhc3MgZXh0ZW5kcyBQcntnZXREZWZhdWx0T3B0aW9ucygpe3JldHVybntkb21haW46WzAsLjUsMV0sdW5rbm93bjp2b2lkIDAsbmljZTohMSxjbGFtcDohMSxyb3VuZDohMSxpbnRlcnBvbGF0b3I6WHQsdGlja01ldGhvZDpUZSx0aWNrQ291bnQ6NX19Y29uc3RydWN0b3Ioail7c3VwZXIoail9Y2xvbmUoKXtyZXR1cm4gbmV3IHNhKHRoaXMub3B0aW9ucyl9fTtjYT1zYT1mdW5jdGlvbihqLHosSCxVKXt2YXIgaXQsYXQ9YXJndW1lbnRzLmxlbmd0aCxLPWF0PDM/ejpVPT09bnVsbD9VPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeixIKTpVO2lmKHR5cGVvZiBSZWZsZWN0PT0ib2JqZWN0IiYmdHlwZW9mIFJlZmxlY3QuZGVjb3JhdGU9PSJmdW5jdGlvbiIpSz1SZWZsZWN0LmRlY29yYXRlKGoseixILFUpO2Vsc2UgZm9yKHZhciBKPWoubGVuZ3RoLTE7MDw9SjtKLS0pKGl0PWpbSl0pJiYoSz0oYXQ8Mz9pdChLKTozPGF0P2l0KHosSCxLKTppdCh6LEgpKXx8Syk7cmV0dXJuIDM8YXQmJksmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh6LEgsSyksS30oW2hpKGZ1bmN0aW9uKGope3JldHVybltqKDApLGooLjUpLGooMSldfSxqPT57Y29uc3RbeixILFVdPWosaXQ9cm4oemkoMCwuNSksWW4oeixIKSksYXQ9cm4oemkoLjUsMSksWW4oSCxVKSk7cmV0dXJuIEs9Pih6PlU/SzxIP2F0Oml0Oks8SD9pdDphdCkoSyl9KV0sY2EpO2Z1bmN0aW9uIEdyKGoseixILFUsaXQpe3ZhciBhdD1uZXcgUHIoe3JhbmdlOlt6LHorVV19KSxLPW5ldyBQcih7cmFuZ2U6W0gsSCtpdF19KTtyZXR1cm57dHJhbnNmb3JtOmZ1bmN0aW9uKHV0KXt2YXIgdXQ9JCh1dCwyKSxjdD11dFswXSx1dD11dFsxXTtyZXR1cm5bYXQubWFwKGN0KSxLLm1hcCh1dCldfSx1bnRyYW5zZm9ybTpmdW5jdGlvbih1dCl7dmFyIHV0PSQodXQsMiksY3Q9dXRbMF0sdXQ9dXRbMV07cmV0dXJuW2F0LmludmVydChjdCksSy5pbnZlcnQodXQpXX19fWZ1bmN0aW9uIE5hKGoseixILFUsaXQpe3JldHVybigwLCQoaiwxKVswXSkoeixILFUsaXQpfWZ1bmN0aW9uIE9sKGoseixILFUsaXQpe3JldHVybiAkKGosMSlbMF19ZnVuY3Rpb24gQmQoY3QseixILFUsaXQpe3ZhciBhdD0oY3Q9JChjdCw0KSlbMF0sSz1jdFsxXSxKPWN0WzJdLGN0PWN0WzNdLHV0PW5ldyBQcih7cmFuZ2U6W0osY3RdfSksRHQ9bmV3IFByKHtyYW5nZTpbYXQsS119KSxIdD0xPChKPWl0L1UpPzE6SixpZT0xPEo/MS9KOjE7cmV0dXJue3RyYW5zZm9ybTpmdW5jdGlvbihHdCl7dmFyIEd0PSQoR3QsMiksSnQ9R3RbMF0sR3Q9R3RbMV0sSnQ9RHQubWFwKEp0KSxHdD11dC5tYXAoR3QpO3JldHVyblsuNSooR3QqTWF0aC5jb3MoSnQpKkh0KSsuNSwuNSooR3QqTWF0aC5zaW4oSnQpKmllKSsuNV19LHVudHJhbnNmb3JtOmZ1bmN0aW9uKE50KXt2YXIgTnQ9JChOdCwyKSxKdD1OdFswXSxOdD1OdFsxXSxKdD0yKihKdC0uNSkvSHQsTnQ9MiooTnQtLjUpL2llLEd0PU1hdGguc3FydChNYXRoLnBvdyhKdCwyKStNYXRoLnBvdyhOdCwyKSksTnQ9cG4oTWF0aC5hdGFuMihOdCxKdCksYXQsSyk7cmV0dXJuW0R0LmludmVydChOdCksdXQuaW52ZXJ0KEd0KV19fX1mdW5jdGlvbiBydihqLHosSCxVLGl0KXtyZXR1cm57dHJhbnNmb3JtOmZ1bmN0aW9uKEspe3ZhciBLPSQoSywyKSxKPUtbMF07cmV0dXJuW0tbMV0sSl19LHVudHJhbnNmb3JtOmZ1bmN0aW9uKEspe3ZhciBLPSQoSywyKSxKPUtbMF07cmV0dXJuW0tbMV0sSl19fX1mdW5jdGlvbiBpdihqKXtmb3IodmFyIHo9W10sSD0xO0g8YXJndW1lbnRzLmxlbmd0aDtIKyspeltILTFdPWFyZ3VtZW50c1tIXTtyZXR1cm4gU2wuYXBwbHkodm9pZCAwLGZlKFtbLTEsLTFdXSwkKHopLCExKSl9ZnVuY3Rpb24gemQoail7Zm9yKHZhciB6PVtdLEg9MTtIPGFyZ3VtZW50cy5sZW5ndGg7SCsrKXpbSC0xXT1hcmd1bWVudHNbSF07cmV0dXJuIFNsLmFwcGx5KHZvaWQgMCxmZShbWy0xLDFdXSwkKHopLCExKSl9ZnVuY3Rpb24gV2Qoail7Zm9yKHZhciB6PVtdLEg9MTtIPGFyZ3VtZW50cy5sZW5ndGg7SCsrKXpbSC0xXT1hcmd1bWVudHNbSF07cmV0dXJuIFNsLmFwcGx5KHZvaWQgMCxmZShbWzEsLTFdXSwkKHopLCExKSl9ZnVuY3Rpb24gR2QoSyx6LEgsVSxpdCl7dmFyIGF0LEs9JChLLDEpWzBdLEo9YnQoKTtyZXR1cm4gSj1KLEs9SyxhdD1NYXRoLnNpbihLKSxLPU1hdGguY29zKEspLEpbMF09SyxKWzFdPWF0LEpbMl09MCxKWzNdPS1hdCxKWzRdPUssSls1XT0wLEpbNl09MCxKWzddPTAsSls4XT0xLEp9ZnVuY3Rpb24gYXYoaix6LEgsVSxpdCl7dmFyIGF0PShqPSQoaiw0KSlbMF0sSz1qWzFdLEo9alsyXSxjdD0oalszXS1KKS8oK0svKDIqTWF0aC5QSSkrMSksdXQ9Y3QvKDIqTWF0aC5QSSksRHQ9bmV3IFByKHtyYW5nZTpbSixKKy45OSpjdF19KSxIdD1uZXcgUHIoe3JhbmdlOlthdCxLXX0pLGllPTE8KGo9aXQvVSk/MTpqLEZ0PTE8aj8xL2o6MTtyZXR1cm57dHJhbnNmb3JtOmZ1bmN0aW9uKE50KXt2YXIgTnQ9JChOdCwyKSxHdD1OdFswXSxOdD1OdFsxXSxHdD1IdC5tYXAoR3QpLE50PUR0Lm1hcChOdCk7cmV0dXJuWy41KihNYXRoLmNvcyhHdCkqKHV0Kkd0K050KSppZSkrLjUsLjUqKE1hdGguc2luKEd0KSoodXQqR3QrTnQpKkZ0KSsuNV19LHVudHJhbnNmb3JtOmZ1bmN0aW9uKE50KXt2YXIgTnQ9JChOdCwyKSxoZT1OdFswXSxOdD1OdFsxXSxoZT0yKihoZS0uNSkvaWUsTnQ9MiooTnQtLjUpL0Z0LEd0PU1hdGguc3FydChNYXRoLnBvdyhoZSwyKStNYXRoLnBvdyhOdCwyKSksTnQ9cG4oTWF0aC5hdGFuMihOdCxoZSkrTWF0aC5mbG9vcihHdC9jdCkqTWF0aC5QSSoyLGF0LEspLGhlPUd0LXV0Kk50O3JldHVybltIdC5pbnZlcnQoTnQpLER0LmludmVydChoZSldfX19ZnVuY3Rpb24gVW8oY3QseixILFUsaXQpe3ZhciBhdD0oY3Q9JChjdCw0KSlbMF0sSz1jdFsxXSxKPWN0WzJdLGN0PWN0WzNdLHV0PW5ldyBQcih7cmFuZ2U6W0osY3RdfSk7cmV0dXJue3RyYW5zZm9ybTpmdW5jdGlvbihEdCl7Zm9yKHZhciBIdD1bXSxpZT1EdC5sZW5ndGgsRnQ9bmV3IHhjKHtkb21haW46bmV3IEFycmF5KGllKS5maWxsKDApLm1hcChmdW5jdGlvbihoZSxuZSl7cmV0dXJuIG5lfSkscmFuZ2U6W2F0LEtdfSksSnQ9MDtKdDxpZTtKdCsrKXt2YXIgTnQ9RHRbSnRdLEd0PUZ0Lm1hcChKdCksTnQ9dXQubWFwKE50KTtIdC5wdXNoKEd0LE50KX1yZXR1cm4gSHR9LHVudHJhbnNmb3JtOmZ1bmN0aW9uKER0KXtmb3IodmFyIEh0PVtdLGllPTA7aWU8RHQubGVuZ3RoO2llKz0yKXt2YXIgRnQ9RHRbaWUrMV07SHQucHVzaCh1dC5pbnZlcnQoRnQpKX1yZXR1cm4gSHR9fX12YXIgU2w9ZnVuY3Rpb24oSyx6LEgsVSxpdCl7dmFyIEs9JChLLDIpLGF0PUtbMF0sSz1LWzFdLEo9YnQoKTtyZXR1cm4gYXQ9W2F0LEtdLChLPUopWzBdPWF0WzBdLEtbMV09MCxLWzJdPTAsS1szXT0wLEtbNF09YXRbMV0sS1s1XT0wLEtbNl09MCxLWzddPTAsS1s4XT0xLEt9O2Z1bmN0aW9uIE9jKGope3JldHVybiAxL01hdGgudGFuKGopfWZ1bmN0aW9uIG92KGoseixILFUsaXQpe3ZhciBhdD1PYygkKGosMSlbMF0pO3JldHVybnt0cmFuc2Zvcm06ZnVuY3Rpb24oY3Qpe3ZhciBjdD0kKGN0LDIpLEo9Y3RbMF0sY3Q9Y3RbMV07cmV0dXJuW0orY3QqYXQsY3RdfSx1bnRyYW5zZm9ybTpmdW5jdGlvbihjdCl7dmFyIGN0PSQoY3QsMiksSj1jdFswXSxjdD1jdFsxXTtyZXR1cm5bSi1jdCphdCxjdF19fX1mdW5jdGlvbiBzdihqLHosSCxVLGl0KXt2YXIgYXQ9T2MoJChqLDEpWzBdKTtyZXR1cm57dHJhbnNmb3JtOmZ1bmN0aW9uKEope3ZhciBKPSQoSiwyKSxjdD1KWzBdO3JldHVybltjdCxKWzFdK2N0KmF0XX0sdW50cmFuc2Zvcm06ZnVuY3Rpb24oSil7dmFyIEo9JChKLDIpLGN0PUpbMF07cmV0dXJuW2N0LEpbMV0tY3QqYXRdfX19ZnVuY3Rpb24gU2Moaix6LEgsSixLKXt2YXIgYXQ9ajx6LEs9KGF0P3otSjpLLXopfHxLLUosSj1hdD8tMToxO3JldHVybiBKKksqKEgrMSkvKEgrSy8oKGoteikqSikpK3p9ZnVuY3Rpb24gRWMoaix6LEgsVSxLKXt2YXIgYXQ9ajx6LEs9KGF0P3otVTpLLXopfHxLLVU7cmV0dXJuIEsvKEsqKEgrMSkvKGoteiktSCooYXQ/LTE6MSkpK3p9ZnVuY3Rpb24geGEoaix6LEgpe3JldHVybiBIP25ldyBQcih7cmFuZ2U6WzAsMV0sZG9tYWluOlswLHpdfSkubWFwKGopOmp9ZnVuY3Rpb24gbGEoSix6LEgsVSxpdCl7dmFyIGF0PShKPSQoSiwzKSlbMF0sSz1KWzFdLEo9SlsyXSxjdD14YShhdCxVLEohPT12b2lkIDAmJkopO3JldHVybnt0cmFuc2Zvcm06ZnVuY3Rpb24oSHQpe3ZhciBIdD0kKEh0LDIpLER0PUh0WzBdLEh0PUh0WzFdO3JldHVybltTYyhEdCxjdCxLLDAsMSksSHRdfSx1bnRyYW5zZm9ybTpmdW5jdGlvbihIdCl7dmFyIEh0PSQoSHQsMiksRHQ9SHRbMF0sSHQ9SHRbMV07cmV0dXJuW0VjKER0LGN0LEssMCwxKSxIdF19fX1mdW5jdGlvbiBNYyhKLHosSCxVLGl0KXt2YXIgYXQ9KEo9JChKLDMpKVswXSxLPUpbMV0sSj1KWzJdLGN0PXhhKGF0LGl0LEohPT12b2lkIDAmJkopO3JldHVybnt0cmFuc2Zvcm06ZnVuY3Rpb24odXQpe3JldHVybiB1dD0kKHV0LDIpLFt1dFswXSxTYyh1dFsxXSxjdCxLLDAsMSldfSx1bnRyYW5zZm9ybTpmdW5jdGlvbih1dCl7cmV0dXJuIHV0PSQodXQsMiksW3V0WzBdLEVjKHV0WzFdLGN0LEssMCwxKV19fX1mdW5jdGlvbiBFbCh1dCx6LEgsVSxpdCl7dmFyIGF0PSh1dD0kKHV0LDUpKVswXSxLPXV0WzFdLEo9dXRbMl0sY3Q9dXRbM10sdXQ9dXRbNF0sRHQ9eGEoYXQsVSx1dD11dCE9PXZvaWQgMCYmdXQpLEh0PXhhKEssaXQsdXQpO3JldHVybnt0cmFuc2Zvcm06ZnVuY3Rpb24oSnQpe3ZhciBKdD0kKEp0LDIpLEZ0PUp0WzBdLEp0PUp0WzFdO3JldHVybltTYyhGdCxEdCxKLDAsMSksU2MoSnQsSHQsY3QsMCwxKV19LHVudHJhbnNmb3JtOmZ1bmN0aW9uKEp0KXt2YXIgSnQ9JChKdCwyKSxGdD1KdFswXSxKdD1KdFsxXTtyZXR1cm5bRWMoRnQsRHQsSiwwLDEpLEVjKEp0LEh0LGN0LDAsMSldfX19ZnVuY3Rpb24gJGQodXQseixILFUsaXQpe3ZhciBhdD0odXQ9JCh1dCw1KSlbMF0sSz11dFsxXSxKPXV0WzJdLGN0PXV0WzNdLHV0PSh1dD11dFs0XSkhPT12b2lkIDAmJnV0LER0PW5ldyBQcih7cmFuZ2U6WzAsVV19KSxIdD1uZXcgUHIoe3JhbmdlOlswLGl0XX0pLGllPXV0P2F0OkR0Lm1hcChhdCksRnQ9dXQ/SzpIdC5tYXAoSyk7cmV0dXJue3RyYW5zZm9ybTpmdW5jdGlvbihOdCl7dmFyIE50PSQoTnQsMiksR3Q9TnRbMF0sTnQ9TnRbMV0saGU9RHQubWFwKEd0KS1pZSxuZT1IdC5tYXAoTnQpLUZ0LHBlPU1hdGguc3FydChoZSpoZStuZSpuZSk7cmV0dXJuIEo8cGU/W0d0LE50XTooR3Q9U2MocGUsMCxjdCwwLEopLE50PU1hdGguYXRhbjIobmUsaGUpLHBlPWllK0d0Kk1hdGguY29zKE50KSxuZT1GdCtHdCpNYXRoLnNpbihOdCksW0R0LmludmVydChwZSksSHQuaW52ZXJ0KG5lKV0pfSx1bnRyYW5zZm9ybTpmdW5jdGlvbihOdCl7dmFyIE50PSQoTnQsMiksR3Q9TnRbMF0sTnQ9TnRbMV0saGU9RHQubWFwKEd0KS1pZSxuZT1IdC5tYXAoTnQpLUZ0LHBlPU1hdGguc3FydChoZSpoZStuZSpuZSk7cmV0dXJuIEo8cGU/W0d0LE50XTooR3Q9RWMocGUsMCxjdCwwLEopLE50PU1hdGguYXRhbjIobmUsaGUpLHBlPWllK0d0Kk1hdGguY29zKE50KSxuZT1GdCtHdCpNYXRoLnNpbihOdCksW0R0LmludmVydChwZSksSHQuaW52ZXJ0KG5lKV0pfX19ZnVuY3Rpb24gY3Yoaix6LEgsVSxpdCxhdCxLKXt2YXIgSj1uZXcgUHIoe3JhbmdlOlt6LHoraXRdfSksY3Q9bmV3IFByKHtyYW5nZTpbSCxIK2F0XX0pLHV0PW5ldyBQcih7cmFuZ2U6W1UsVStLXX0pO3JldHVybnt0cmFuc2Zvcm06ZnVuY3Rpb24oRnQpe3ZhciBGdD0kKEZ0LDMpLEh0PUZ0WzBdLGllPUZ0WzFdLEZ0PUZ0WzJdO3JldHVybltKLm1hcChIdCksY3QubWFwKGllKSx1dC5tYXAoRnQpXX0sdW50cmFuc2Zvcm06ZnVuY3Rpb24oRnQpe3ZhciBGdD0kKEZ0LDMpLEh0PUZ0WzBdLGllPUZ0WzFdLEZ0PUZ0WzJdO3JldHVybltKLmludmVydChIdCksY3QuaW52ZXJ0KGllKSx1dC5pbnZlcnQoRnQpXX19fWZ1bmN0aW9uIGx2KER0LHosSCxVLGl0LGF0LEspe3ZhciBKLGN0PShEdD0kKER0LDMpKVswXSx1dD1EdFsxXSxEdD1EdFsyXTtyZXR1cm4gSj14ZSgpLGN0PVtjdCx1dCxEdF0sSlswXT0xLEpbMV09MCxKWzJdPTAsSlszXT0wLEpbNF09MCxKWzVdPTEsSls2XT0wLEpbN109MCxKWzhdPTAsSls5XT0wLEpbMTBdPTEsSlsxMV09MCxKWzEyXT1jdFswXSxKWzEzXT1jdFsxXSxKWzE0XT1jdFsyXSxKWzE1XT0xLEp9ZnVuY3Rpb24gZXIoaix6LEgsVSxpdCxhdCxLKXtyZXR1cm57dHJhbnNmb3JtOmZ1bmN0aW9uKGN0KXt2YXIgY3Q9JChjdCwzKSx1dD1jdFswXTtyZXR1cm5bY3RbMV0sdXQsY3RbMl1dfSx1bnRyYW5zZm9ybTpmdW5jdGlvbihjdCl7dmFyIGN0PSQoY3QsMyksdXQ9Y3RbMF07cmV0dXJuW2N0WzFdLHV0LGN0WzJdXX19fWZ1bmN0aW9uIFpkKER0LHosSCxVLGl0LGF0LEspe3ZhciBKLGN0PShEdD0kKER0LDMpKVswXSx1dD1EdFsxXSxEdD1EdFsyXTtyZXR1cm4gSj14ZSgpLGN0PVtjdCx1dCxEdF0sSlswXT1jdFswXSxKWzFdPTAsSlsyXT0wLEpbM109MCxKWzRdPTAsSls1XT1jdFsxXSxKWzZdPTAsSls3XT0wLEpbOF09MCxKWzldPTAsSlsxMF09Y3RbMl0sSlsxMV09MCxKWzEyXT0wLEpbMTNdPTAsSlsxNF09MCxKWzE1XT0xLEp9cGkucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihqKXt0aGlzLm9wdGlvbnM9ZWUoe30sdGhpcy5vcHRpb25zLGopLHRoaXMucmVjb29yZGluYXRlKCl9LHBpLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBuZXcgcGkodGhpcy5vcHRpb25zKX0scGkucHJvdG90eXBlLmdldE9wdGlvbnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vcHRpb25zfSxwaS5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLnVwZGF0ZSh7dHJhbnNmb3JtYXRpb25zOltdfSl9LHBpLnByb3RvdHlwZS5nZXRTaXplPWZ1bmN0aW9uKCl7dmFyIGo9dGhpcy5vcHRpb25zO3JldHVybltqLndpZHRoLGouaGVpZ2h0XX0scGkucHJvdG90eXBlLmdldENlbnRlcj1mdW5jdGlvbigpe3ZhciBqPXRoaXMub3B0aW9ucyx6PWoueCxIPWoueTtyZXR1cm5bKDIqeitqLndpZHRoKS8yLCgyKkgrai5oZWlnaHQpLzJdfSxwaS5wcm90b3R5cGUudHJhbnNmb3JtPWZ1bmN0aW9uKCl7Zm9yKHZhciBqPVtdLHo9MDt6PGFyZ3VtZW50cy5sZW5ndGg7eisrKWpbel09YXJndW1lbnRzW3pdO3ZhciBIPXRoaXMub3B0aW9ucy50cmFuc2Zvcm1hdGlvbnM7cmV0dXJuIHRoaXMudXBkYXRlKHt0cmFuc2Zvcm1hdGlvbnM6ZmUoZmUoW10sJChIKSwhMSksW2ZlKFtdLCQoaiksITEpXSwhMSl9KSx0aGlzfSxwaS5wcm90b3R5cGUubWFwPWZ1bmN0aW9uKGope3JldHVybiB0aGlzLm91dHB1dChqKX0scGkucHJvdG90eXBlLmludmVydD1mdW5jdGlvbihqKXtyZXR1cm4gdGhpcy5pbnB1dChqKX0scGkucHJvdG90eXBlLnJlY29vcmRpbmF0ZT1mdW5jdGlvbigpe3RoaXMub3V0cHV0PXRoaXMuY29tcG9zZSgpLHRoaXMuaW5wdXQ9dGhpcy5jb21wb3NlKCEwKX0scGkucHJvdG90eXBlLmNvbXBvc2U9ZnVuY3Rpb24oail7ZnVuY3Rpb24geihVdCx2ZSl7dmFyIEhlO0oucHVzaCgodmU9dmU9PT12b2lkIDA/ITA6dmUpPyhIZT1VdCxmdW5jdGlvbihTaSl7Zm9yKHZhciBFaT1bXSx2aT0wO3ZpPFNpLmxlbmd0aC0xO3ZpKz0yKXt2YXIgTWk9W1NpW3ZpXSxTaVt2aSsxXV0sTWk9SGUoTWkpO0VpLnB1c2guYXBwbHkoRWksZmUoW10sJChNaSksITEpKX1yZXR1cm4gRWl9KTpVdCl9dmFyIEgsVSxpdD0oaj1qPT09dm9pZCAwPyExOmopP2ZlKFtdLCQodGhpcy5vcHRpb25zLnRyYW5zZm9ybWF0aW9ucyksITEpLnJldmVyc2UoKTp0aGlzLm9wdGlvbnMudHJhbnNmb3JtYXRpb25zLGF0PWo/ZnVuY3Rpb24oVXQpe3JldHVybiBVdC51bnRyYW5zZm9ybX06ZnVuY3Rpb24oVXQpe3JldHVybiBVdC50cmFuc2Zvcm19LEs9W10sSj1bXTt0cnl7Zm9yKHZhciBjdD1vZShpdCksdXQ9Y3QubmV4dCgpOyF1dC5kb25lO3V0PWN0Lm5leHQoKSl7dmFyIER0LEh0LGllLEZ0LEp0LEd0LE50PSQodXQudmFsdWUpLGhlPU50WzBdLG5lPU50LnNsaWNlKDEpLHBlPXRoaXMudHJhbnNmb3JtZXJzW2hlXTtwZSYmKEh0PShEdD10aGlzLm9wdGlvbnMpLngsaWU9RHQueSxGdD1EdC53aWR0aCxKdD1EdC5oZWlnaHQsVWUoR3Q9cGUoZmUoW10sJChuZSksITEpLEh0LGllLEZ0LEp0KSk/Sy5wdXNoKEd0KTooSy5sZW5ndGgmJih6KHRoaXMuY3JlYXRlTWF0cml4VHJhbnNmb3JtKEssaikpLEsuc3BsaWNlKDAsSy5sZW5ndGgpKSx6KGF0KEd0KXx8WHQsaGUhPT0icGFyYWxsZWwiKSkpfX1jYXRjaChVdCl7SD17ZXJyb3I6VXR9fWZpbmFsbHl7dHJ5e3V0JiYhdXQuZG9uZSYmKFU9Y3QucmV0dXJuKSYmVS5jYWxsKGN0KX1maW5hbGx5e2lmKEgpdGhyb3cgSC5lcnJvcn19cmV0dXJuIEsubGVuZ3RoJiZ6KHRoaXMuY3JlYXRlTWF0cml4VHJhbnNmb3JtKEssaikpLF9uLmFwcGx5KHZvaWQgMCxmZShbXSwkKEopLCExKSl9LHBpLnByb3RvdHlwZS5jcmVhdGVNYXRyaXhUcmFuc2Zvcm09ZnVuY3Rpb24oaix6KXt2YXIgSCxVLGl0LGF0LEssSixjdCx1dCxEdCxIdCxpZSxGdCxKdD1idCgpO3JldHVybiB6JiZqLnJldmVyc2UoKSxqLmZvckVhY2goZnVuY3Rpb24oR3Qpe3JldHVybiBUdChKdCxKdCxHdCl9KSx6JiYoej1qPUp0LChGdD1uZXcgU3QoOSkpWzBdPXpbMF0sRnRbMV09elsxXSxGdFsyXT16WzJdLEZ0WzNdPXpbM10sRnRbNF09els0XSxGdFs1XT16WzVdLEZ0WzZdPXpbNl0sRnRbN109els3XSxGdFs4XT16WzhdLEZ0PSh6PUZ0KVswXSxIPXpbMV0sVT16WzJdLGl0PXpbM10sYXQ9els0XSxLPXpbNV0sSj16WzZdLGN0PXpbN10sdXQ9KHo9els4XSkqYXQtSypjdCxpZT1GdCp1dCtIKihEdD0teippdCtLKkopK1UqKEh0PWN0Kml0LWF0KkopKSYmKGpbMF09dXQqKGllPTEvaWUpLGpbMV09KC16KkgrVSpjdCkqaWUsalsyXT0oSypILVUqYXQpKmllLGpbM109RHQqaWUsals0XT0oeipGdC1VKkopKmllLGpbNV09KC1LKkZ0K1UqaXQpKmllLGpbNl09SHQqaWUsals3XT0oLWN0KkZ0K0gqSikqaWUsals4XT0oYXQqRnQtSCppdCkqaWUpLGZ1bmN0aW9uKHZlKXt2YXIgTnQsaGUsbmUscGUsVXQsdmU9W3ZlWzBdLHZlWzFdLDFdO3JldHVybiBuZT1KdCxwZT0oaGU9TnQ9dmUpWzBdLFV0PWhlWzFdLGhlPWhlWzJdLE50WzBdPXBlKm5lWzBdK1V0Km5lWzNdK2hlKm5lWzZdLE50WzFdPXBlKm5lWzFdK1V0Km5lWzRdK2hlKm5lWzddLE50WzJdPXBlKm5lWzJdK1V0Km5lWzVdK2hlKm5lWzhdLFt2ZVswXSx2ZVsxXV19fSxxYT1waTtmdW5jdGlvbiBwaShqKXt0aGlzLm9wdGlvbnM9e3g6MCx5OjAsd2lkdGg6MzAwLGhlaWdodDoxNTAsdHJhbnNmb3JtYXRpb25zOltdfSx0aGlzLnRyYW5zZm9ybWVycz17Y2FydGVzaWFuOkdyLHRyYW5zbGF0ZTpnbixjdXN0b206TmEsbWF0cml4Ok9sLHBvbGFyOkJkLHRyYW5zcG9zZTpydixzY2FsZTpTbCwic2hlYXIueCI6b3YsInNoZWFyLnkiOnN2LHJlZmxlY3Q6aXYsInJlZmxlY3QueCI6emQsInJlZmxlY3QueSI6V2Qscm90YXRlOkdkLGhlbGl4OmF2LHBhcmFsbGVsOlVvLGZpc2hleWU6RWwsImZpc2hleWUueCI6bGEsImZpc2hleWUueSI6TWMsImZpc2hleWUuY2lyY3VsYXIiOiRkfSx0aGlzLnVwZGF0ZShqKX1PaS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKGope3RoaXMub3B0aW9ucz1lZSh7fSx0aGlzLm9wdGlvbnMsaiksdGhpcy5yZWNvb3JkaW5hdGUoKX0sT2kucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBPaSh0aGlzLm9wdGlvbnMpfSxPaS5wcm90b3R5cGUuZ2V0T3B0aW9ucz1mdW5jdGlvbigpe3JldHVybiB0aGlzLm9wdGlvbnN9LE9pLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMudXBkYXRlKHt0cmFuc2Zvcm1hdGlvbnM6W119KX0sT2kucHJvdG90eXBlLmdldFNpemU9ZnVuY3Rpb24oKXt2YXIgaj10aGlzLm9wdGlvbnM7cmV0dXJuW2oud2lkdGgsai5oZWlnaHQsai5kZXB0aF19LE9pLnByb3RvdHlwZS5nZXRDZW50ZXI9ZnVuY3Rpb24oKXt2YXIgaj10aGlzLm9wdGlvbnMsej1qLngsSD1qLnksVT1qLno7cmV0dXJuWygyKnorai53aWR0aCkvMiwoMipIK2ouaGVpZ2h0KS8yLCgyKlUrai5kZXB0aCkvMl19LE9pLnByb3RvdHlwZS50cmFuc2Zvcm09ZnVuY3Rpb24oKXtmb3IodmFyIGo9W10sej0wO3o8YXJndW1lbnRzLmxlbmd0aDt6Kyspalt6XT1hcmd1bWVudHNbel07dmFyIEg9dGhpcy5vcHRpb25zLnRyYW5zZm9ybWF0aW9ucztyZXR1cm4gdGhpcy51cGRhdGUoe3RyYW5zZm9ybWF0aW9uczpmZShmZShbXSwkKEgpLCExKSxbZmUoW10sJChqKSwhMSldLCExKX0pLHRoaXN9LE9pLnByb3RvdHlwZS5tYXA9ZnVuY3Rpb24oail7cmV0dXJuIHRoaXMub3V0cHV0KGopfSxPaS5wcm90b3R5cGUuaW52ZXJ0PWZ1bmN0aW9uKGope3JldHVybiB0aGlzLmlucHV0KGopfSxPaS5wcm90b3R5cGUucmVjb29yZGluYXRlPWZ1bmN0aW9uKCl7dGhpcy5vdXRwdXQ9dGhpcy5jb21wb3NlKCksdGhpcy5pbnB1dD10aGlzLmNvbXBvc2UoITApfSxPaS5wcm90b3R5cGUuY29tcG9zZT1mdW5jdGlvbihqKXtmdW5jdGlvbiB6KEhlLFNpKXt2YXIgRWk7Si5wdXNoKChTaT1TaT09PXZvaWQgMD8hMDpTaSk/KEVpPUhlLGZ1bmN0aW9uKHZpKXtmb3IodmFyIE1pPVtdLEdpPTA7R2k8dmkubGVuZ3RoLTE7R2krPTMpe3ZhciBucj1bdmlbR2ldLHZpW0dpKzFdLHZpW0dpKzJdXSxucj1FaShucik7TWkucHVzaC5hcHBseShNaSxmZShbXSwkKG5yKSwhMSkpfXJldHVybiBNaX0pOkhlKX12YXIgSCxVLGl0PShqPWo9PT12b2lkIDA/ITE6aik/ZmUoW10sJCh0aGlzLm9wdGlvbnMudHJhbnNmb3JtYXRpb25zKSwhMSkucmV2ZXJzZSgpOnRoaXMub3B0aW9ucy50cmFuc2Zvcm1hdGlvbnMsYXQ9aj9mdW5jdGlvbihIZSl7cmV0dXJuIEhlLnVudHJhbnNmb3JtfTpmdW5jdGlvbihIZSl7cmV0dXJuIEhlLnRyYW5zZm9ybX0sSz1bXSxKPVtdO3RyeXtmb3IodmFyIGN0PW9lKGl0KSx1dD1jdC5uZXh0KCk7IXV0LmRvbmU7dXQ9Y3QubmV4dCgpKXt2YXIgRHQsSHQsaWUsRnQsSnQsR3QsTnQsaGUsbmU9JCh1dC52YWx1ZSkscGU9bmVbMF0sVXQ9bmUuc2xpY2UoMSksdmU9dGhpcy50cmFuc2Zvcm1lcnNbcGVdO3ZlJiYoSHQ9KER0PXRoaXMub3B0aW9ucykueCxpZT1EdC55LEZ0PUR0LnosSnQ9RHQud2lkdGgsR3Q9RHQuaGVpZ2h0LE50PUR0LmRlcHRoLFVlKGhlPXZlKGZlKFtdLCQoVXQpLCExKSxIdCxpZSxGdCxKdCxHdCxOdCkpP0sucHVzaChoZSk6KEsubGVuZ3RoJiYoeih0aGlzLmNyZWF0ZU1hdHJpeFRyYW5zZm9ybShLLGopKSxLLnNwbGljZSgwLEsubGVuZ3RoKSkseihhdChoZSl8fFh0LCEwKSkpfX1jYXRjaChIZSl7SD17ZXJyb3I6SGV9fWZpbmFsbHl7dHJ5e3V0JiYhdXQuZG9uZSYmKFU9Y3QucmV0dXJuKSYmVS5jYWxsKGN0KX1maW5hbGx5e2lmKEgpdGhyb3cgSC5lcnJvcn19cmV0dXJuIEsubGVuZ3RoJiZ6KHRoaXMuY3JlYXRlTWF0cml4VHJhbnNmb3JtKEssaikpLF9uLmFwcGx5KHZvaWQgMCxmZShbXSwkKEopLCExKSl9LE9pLnByb3RvdHlwZS5jcmVhdGVNYXRyaXhUcmFuc2Zvcm09ZnVuY3Rpb24oaix6KXt2YXIgSCxVLGl0LGF0LEssSixjdCx1dCxEdCxIdCxpZSxGdCxKdCxHdCxOdCxoZSxuZSxwZSxVdCx2ZSxIZSxTaSxFaSx2aSxNaSxHaSxucix3bixrYz14ZSgpO3JldHVybiB6JiZqLnJldmVyc2UoKSxqLmZvckVhY2goZnVuY3Rpb24oWWQpe3JldHVybiBfZShrYyxrYyxZZCl9KSx6JiYoej1qPWtjLCh3bj1uZXcgU3QoMTYpKVswXT16WzBdLHduWzFdPXpbMV0sd25bMl09elsyXSx3blszXT16WzNdLHduWzRdPXpbNF0sd25bNV09els1XSx3bls2XT16WzZdLHduWzddPXpbN10sd25bOF09els4XSx3bls5XT16WzldLHduWzEwXT16WzEwXSx3blsxMV09elsxMV0sd25bMTJdPXpbMTJdLHduWzEzXT16WzEzXSx3blsxNF09elsxNF0sd25bMTVdPXpbMTVdLHduPSh6PXduKVswXSxIPXpbMV0sVT16WzJdLGl0PXpbM10sYXQ9els0XSxLPXpbNV0sSj16WzZdLGN0PXpbN10sdXQ9els4XSxEdD16WzldLEh0PXpbMTBdLGllPXpbMTFdLEZ0PXpbMTJdLEp0PXpbMTNdLEd0PXpbMTRdLHo9elsxNV0sbnI9KE50PXduKkstSCphdCkqKEdpPUh0KnotaWUqR3QpLShoZT13bipKLVUqYXQpKihNaT1EdCp6LWllKkp0KSsobmU9d24qY3QtaXQqYXQpKih2aT1EdCpHdC1IdCpKdCkrKHBlPUgqSi1VKkspKihFaT11dCp6LWllKkZ0KS0oVXQ9SCpjdC1pdCpLKSooU2k9dXQqR3QtSHQqRnQpKyh2ZT1VKmN0LWl0KkopKihIZT11dCpKdC1EdCpGdCkpJiYoalswXT0oSypHaS1KKk1pK2N0KnZpKSoobnI9MS9uciksalsxXT0oVSpNaS1IKkdpLWl0KnZpKSpucixqWzJdPShKdCp2ZS1HdCpVdCt6KnBlKSpucixqWzNdPShIdCpVdC1EdCp2ZS1pZSpwZSkqbnIsals0XT0oSipFaS1hdCpHaS1jdCpTaSkqbnIsals1XT0od24qR2ktVSpFaStpdCpTaSkqbnIsals2XT0oR3QqbmUtRnQqdmUteipoZSkqbnIsals3XT0odXQqdmUtSHQqbmUraWUqaGUpKm5yLGpbOF09KGF0Kk1pLUsqRWkrY3QqSGUpKm5yLGpbOV09KEgqRWktd24qTWktaXQqSGUpKm5yLGpbMTBdPShGdCpVdC1KdCpuZSt6Kk50KSpucixqWzExXT0oRHQqbmUtdXQqVXQtaWUqTnQpKm5yLGpbMTJdPShLKlNpLWF0KnZpLUoqSGUpKm5yLGpbMTNdPSh3bip2aS1IKlNpK1UqSGUpKm5yLGpbMTRdPShKdCpoZS1GdCpwZS1HdCpOdCkqbnIsalsxNV09KHV0KnBlLUR0KmhlK0h0Kk50KSpuciksZnVuY3Rpb24oS2Epe3ZhciBBYyxfYSxDcixDcyxMcyxScyxLYT1bS2FbMF0sS2FbMV0sS2FbMl0sMV07cmV0dXJuIENyPWtjLENzPShfYT1BYz1LYSlbMF0sTHM9X2FbMV0sUnM9X2FbMl0sX2E9X2FbM10sQWNbMF09Q3JbMF0qQ3MrQ3JbNF0qTHMrQ3JbOF0qUnMrQ3JbMTJdKl9hLEFjWzFdPUNyWzFdKkNzK0NyWzVdKkxzK0NyWzldKlJzK0NyWzEzXSpfYSxBY1syXT1DclsyXSpDcytDcls2XSpMcytDclsxMF0qUnMrQ3JbMTRdKl9hLEFjWzNdPUNyWzNdKkNzK0NyWzddKkxzK0NyWzExXSpScytDclsxNV0qX2EsW0thWzBdLEthWzFdLEthWzJdXX19LHdpPU9pO2Z1bmN0aW9uIE9pKGope3RoaXMub3B0aW9ucz17eDowLHk6MCx6OjAsd2lkdGg6MzAwLGhlaWdodDoxNTAsZGVwdGg6MTUwLHRyYW5zZm9ybWF0aW9uczpbXX0sdGhpcy50cmFuc2Zvcm1lcnM9e2NhcnRlc2lhbjNEOmN2LHRyYW5zbGF0ZTNEOmx2LHNjYWxlM0Q6WmQsdHJhbnNwb3NlM0Q6ZXJ9LHRoaXMudXBkYXRlKGopfXB0LkNvb3JkaW5hdGU9cWEscHQuQ29vcmRpbmF0ZTNEPXdpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9KX0sMTU3NDY6ZnVuY3Rpb24oQWUsQmUscHQpeyJ1c2Ugc3RyaWN0Ijt2YXIgb2U9cHQoMjE1ODQpO0JlLlo9b2UuWn0sNzEyMzA6ZnVuY3Rpb24oQWUsQmUscHQpeyJ1c2Ugc3RyaWN0Ijt2YXIgb2U9cHQoMTc2MjEpO0JlLlo9b2UuWn0sODg3NDpmdW5jdGlvbihBZSl7InVzZSBzdHJpY3QiO0FlLmV4cG9ydHM9e2FsaWNlYmx1ZTpbMjQwLDI0OCwyNTVdLGFudGlxdWV3aGl0ZTpbMjUwLDIzNSwyMTVdLGFxdWE6WzAsMjU1LDI1NV0sYXF1YW1hcmluZTpbMTI3LDI1NSwyMTJdLGF6dXJlOlsyNDAsMjU1LDI1NV0sYmVpZ2U6WzI0NSwyNDUsMjIwXSxiaXNxdWU6WzI1NSwyMjgsMTk2XSxibGFjazpbMCwwLDBdLGJsYW5jaGVkYWxtb25kOlsyNTUsMjM1LDIwNV0sYmx1ZTpbMCwwLDI1NV0sYmx1ZXZpb2xldDpbMTM4LDQzLDIyNl0sYnJvd246WzE2NSw0Miw0Ml0sYnVybHl3b29kOlsyMjIsMTg0LDEzNV0sY2FkZXRibHVlOls5NSwxNTgsMTYwXSxjaGFydHJldXNlOlsxMjcsMjU1LDBdLGNob2NvbGF0ZTpbMjEwLDEwNSwzMF0sY29yYWw6WzI1NSwxMjcsODBdLGNvcm5mbG93ZXJibHVlOlsxMDAsMTQ5LDIzN10sY29ybnNpbGs6WzI1NSwyNDgsMjIwXSxjcmltc29uOlsyMjAsMjAsNjBdLGN5YW46WzAsMjU1LDI1NV0sZGFya2JsdWU6WzAsMCwxMzldLGRhcmtjeWFuOlswLDEzOSwxMzldLGRhcmtnb2xkZW5yb2Q6WzE4NCwxMzQsMTFdLGRhcmtncmF5OlsxNjksMTY5LDE2OV0sZGFya2dyZWVuOlswLDEwMCwwXSxkYXJrZ3JleTpbMTY5LDE2OSwxNjldLGRhcmtraGFraTpbMTg5LDE4MywxMDddLGRhcmttYWdlbnRhOlsxMzksMCwxMzldLGRhcmtvbGl2ZWdyZWVuOls4NSwxMDcsNDddLGRhcmtvcmFuZ2U6WzI1NSwxNDAsMF0sZGFya29yY2hpZDpbMTUzLDUwLDIwNF0sZGFya3JlZDpbMTM5LDAsMF0sZGFya3NhbG1vbjpbMjMzLDE1MCwxMjJdLGRhcmtzZWFncmVlbjpbMTQzLDE4OCwxNDNdLGRhcmtzbGF0ZWJsdWU6WzcyLDYxLDEzOV0sZGFya3NsYXRlZ3JheTpbNDcsNzksNzldLGRhcmtzbGF0ZWdyZXk6WzQ3LDc5LDc5XSxkYXJrdHVycXVvaXNlOlswLDIwNiwyMDldLGRhcmt2aW9sZXQ6WzE0OCwwLDIxMV0sZGVlcHBpbms6WzI1NSwyMCwxNDddLGRlZXBza3libHVlOlswLDE5MSwyNTVdLGRpbWdyYXk6WzEwNSwxMDUsMTA1XSxkaW1ncmV5OlsxMDUsMTA1LDEwNV0sZG9kZ2VyYmx1ZTpbMzAsMTQ0LDI1NV0sZmlyZWJyaWNrOlsxNzgsMzQsMzRdLGZsb3JhbHdoaXRlOlsyNTUsMjUwLDI0MF0sZm9yZXN0Z3JlZW46WzM0LDEzOSwzNF0sZnVjaHNpYTpbMjU1LDAsMjU1XSxnYWluc2Jvcm86WzIyMCwyMjAsMjIwXSxnaG9zdHdoaXRlOlsyNDgsMjQ4LDI1NV0sZ29sZDpbMjU1LDIxNSwwXSxnb2xkZW5yb2Q6WzIxOCwxNjUsMzJdLGdyYXk6WzEyOCwxMjgsMTI4XSxncmVlbjpbMCwxMjgsMF0sZ3JlZW55ZWxsb3c6WzE3MywyNTUsNDddLGdyZXk6WzEyOCwxMjgsMTI4XSxob25leWRldzpbMjQwLDI1NSwyNDBdLGhvdHBpbms6WzI1NSwxMDUsMTgwXSxpbmRpYW5yZWQ6WzIwNSw5Miw5Ml0saW5kaWdvOls3NSwwLDEzMF0saXZvcnk6WzI1NSwyNTUsMjQwXSxraGFraTpbMjQwLDIzMCwxNDBdLGxhdmVuZGVyOlsyMzAsMjMwLDI1MF0sbGF2ZW5kZXJibHVzaDpbMjU1LDI0MCwyNDVdLGxhd25ncmVlbjpbMTI0LDI1MiwwXSxsZW1vbmNoaWZmb246WzI1NSwyNTAsMjA1XSxsaWdodGJsdWU6WzE3MywyMTYsMjMwXSxsaWdodGNvcmFsOlsyNDAsMTI4LDEyOF0sbGlnaHRjeWFuOlsyMjQsMjU1LDI1NV0sbGlnaHRnb2xkZW5yb2R5ZWxsb3c6WzI1MCwyNTAsMjEwXSxsaWdodGdyYXk6WzIxMSwyMTEsMjExXSxsaWdodGdyZWVuOlsxNDQsMjM4LDE0NF0sbGlnaHRncmV5OlsyMTEsMjExLDIxMV0sbGlnaHRwaW5rOlsyNTUsMTgyLDE5M10sbGlnaHRzYWxtb246WzI1NSwxNjAsMTIyXSxsaWdodHNlYWdyZWVuOlszMiwxNzgsMTcwXSxsaWdodHNreWJsdWU6WzEzNSwyMDYsMjUwXSxsaWdodHNsYXRlZ3JheTpbMTE5LDEzNiwxNTNdLGxpZ2h0c2xhdGVncmV5OlsxMTksMTM2LDE1M10sbGlnaHRzdGVlbGJsdWU6WzE3NiwxOTYsMjIyXSxsaWdodHllbGxvdzpbMjU1LDI1NSwyMjRdLGxpbWU6WzAsMjU1LDBdLGxpbWVncmVlbjpbNTAsMjA1LDUwXSxsaW5lbjpbMjUwLDI0MCwyMzBdLG1hZ2VudGE6WzI1NSwwLDI1NV0sbWFyb29uOlsxMjgsMCwwXSxtZWRpdW1hcXVhbWFyaW5lOlsxMDIsMjA1LDE3MF0sbWVkaXVtYmx1ZTpbMCwwLDIwNV0sbWVkaXVtb3JjaGlkOlsxODYsODUsMjExXSxtZWRpdW1wdXJwbGU6WzE0NywxMTIsMjE5XSxtZWRpdW1zZWFncmVlbjpbNjAsMTc5LDExM10sbWVkaXVtc2xhdGVibHVlOlsxMjMsMTA0LDIzOF0sbWVkaXVtc3ByaW5nZ3JlZW46WzAsMjUwLDE1NF0sbWVkaXVtdHVycXVvaXNlOls3MiwyMDksMjA0XSxtZWRpdW12aW9sZXRyZWQ6WzE5OSwyMSwxMzNdLG1pZG5pZ2h0Ymx1ZTpbMjUsMjUsMTEyXSxtaW50Y3JlYW06WzI0NSwyNTUsMjUwXSxtaXN0eXJvc2U6WzI1NSwyMjgsMjI1XSxtb2NjYXNpbjpbMjU1LDIyOCwxODFdLG5hdmFqb3doaXRlOlsyNTUsMjIyLDE3M10sbmF2eTpbMCwwLDEyOF0sb2xkbGFjZTpbMjUzLDI0NSwyMzBdLG9saXZlOlsxMjgsMTI4LDBdLG9saXZlZHJhYjpbMTA3LDE0MiwzNV0sb3JhbmdlOlsyNTUsMTY1LDBdLG9yYW5nZXJlZDpbMjU1LDY5LDBdLG9yY2hpZDpbMjE4LDExMiwyMTRdLHBhbGVnb2xkZW5yb2Q6WzIzOCwyMzIsMTcwXSxwYWxlZ3JlZW46WzE1MiwyNTEsMTUyXSxwYWxldHVycXVvaXNlOlsxNzUsMjM4LDIzOF0scGFsZXZpb2xldHJlZDpbMjE5LDExMiwxNDddLHBhcGF5YXdoaXA6WzI1NSwyMzksMjEzXSxwZWFjaHB1ZmY6WzI1NSwyMTgsMTg1XSxwZXJ1OlsyMDUsMTMzLDYzXSxwaW5rOlsyNTUsMTkyLDIwM10scGx1bTpbMjIxLDE2MCwyMjFdLHBvd2RlcmJsdWU6WzE3NiwyMjQsMjMwXSxwdXJwbGU6WzEyOCwwLDEyOF0scmViZWNjYXB1cnBsZTpbMTAyLDUxLDE1M10scmVkOlsyNTUsMCwwXSxyb3N5YnJvd246WzE4OCwxNDMsMTQzXSxyb3lhbGJsdWU6WzY1LDEwNSwyMjVdLHNhZGRsZWJyb3duOlsxMzksNjksMTldLHNhbG1vbjpbMjUwLDEyOCwxMTRdLHNhbmR5YnJvd246WzI0NCwxNjQsOTZdLHNlYWdyZWVuOls0NiwxMzksODddLHNlYXNoZWxsOlsyNTUsMjQ1LDIzOF0sc2llbm5hOlsxNjAsODIsNDVdLHNpbHZlcjpbMTkyLDE5MiwxOTJdLHNreWJsdWU6WzEzNSwyMDYsMjM1XSxzbGF0ZWJsdWU6WzEwNiw5MCwyMDVdLHNsYXRlZ3JheTpbMTEyLDEyOCwxNDRdLHNsYXRlZ3JleTpbMTEyLDEyOCwxNDRdLHNub3c6WzI1NSwyNTAsMjUwXSxzcHJpbmdncmVlbjpbMCwyNTUsMTI3XSxzdGVlbGJsdWU6WzcwLDEzMCwxODBdLHRhbjpbMjEwLDE4MCwxNDBdLHRlYWw6WzAsMTI4LDEyOF0sdGhpc3RsZTpbMjE2LDE5MSwyMTZdLHRvbWF0bzpbMjU1LDk5LDcxXSx0dXJxdW9pc2U6WzY0LDIyNCwyMDhdLHZpb2xldDpbMjM4LDEzMCwyMzhdLHdoZWF0OlsyNDUsMjIyLDE3OV0sd2hpdGU6WzI1NSwyNTUsMjU1XSx3aGl0ZXNtb2tlOlsyNDUsMjQ1LDI0NV0seWVsbG93OlsyNTUsMjU1LDBdLHllbGxvd2dyZWVuOlsxNTQsMjA1LDUwXX19LDE5ODE4OmZ1bmN0aW9uKEFlLEJlLHB0KXt2YXIgb2U9cHQoODg3NCksJD1wdCg4Njg1MSksZmU9T2JqZWN0Lmhhc093blByb3BlcnR5LFllPU9iamVjdC5jcmVhdGUobnVsbCk7Zm9yKHZhciBhZSBpbiBvZSlmZS5jYWxsKG9lLGFlKSYmKFllW29lW2FlXV09YWUpO3ZhciBSdD1BZS5leHBvcnRzPXt0bzp7fSxnZXQ6e319O1J0LmdldD1mdW5jdGlvbihmdCl7dmFyIHJlPWZ0LnN1YnN0cmluZygwLDMpLnRvTG93ZXJDYXNlKCksV3QsZWU7c3dpdGNoKHJlKXtjYXNlImhzbCI6V3Q9UnQuZ2V0LmhzbChmdCksZWU9ImhzbCI7YnJlYWs7Y2FzZSJod2IiOld0PVJ0LmdldC5od2IoZnQpLGVlPSJod2IiO2JyZWFrO2RlZmF1bHQ6V3Q9UnQuZ2V0LnJnYihmdCksZWU9InJnYiI7YnJlYWt9cmV0dXJuIFd0P3ttb2RlbDplZSx2YWx1ZTpXdH06bnVsbH0sUnQuZ2V0LnJnYj1mdW5jdGlvbihmdCl7aWYoIWZ0KXJldHVybiBudWxsO3ZhciByZT0vXiMoW2EtZjAtOV17Myw0fSkkL2ksV3Q9L14jKFthLWYwLTldezZ9KShbYS1mMC05XXsyfSk/JC9pLGVlPS9ecmdiYT9cKFxzKihbKy1dP1xkKykoPz1bXHMsXSlccyooPzosXHMqKT8oWystXT9cZCspKD89W1xzLF0pXHMqKD86LFxzKik/KFsrLV0/XGQrKVxzKig/OlssfFwvXVxzKihbKy1dP1tcZFwuXSspKCU/KVxzKik/XCkkLyxYdD0vXnJnYmE/XChccyooWystXT9bXGRcLl0rKVwlXHMqLD9ccyooWystXT9bXGRcLl0rKVwlXHMqLD9ccyooWystXT9bXGRcLl0rKVwlXHMqKD86Wyx8XC9dXHMqKFsrLV0/W1xkXC5dKykoJT8pXHMqKT9cKSQvLGt0PS9eKFx3KykkLyxTdD1bMCwwLDAsMV0sYnQsVHQseGU7aWYoYnQ9ZnQubWF0Y2goV3QpKXtmb3IoeGU9YnRbMl0sYnQ9YnRbMV0sVHQ9MDtUdDwzO1R0Kyspe3ZhciBfZT1UdCoyO1N0W1R0XT1wYXJzZUludChidC5zbGljZShfZSxfZSsyKSwxNil9eGUmJihTdFszXT1wYXJzZUludCh4ZSwxNikvMjU1KX1lbHNlIGlmKGJ0PWZ0Lm1hdGNoKHJlKSl7Zm9yKGJ0PWJ0WzFdLHhlPWJ0WzNdLFR0PTA7VHQ8MztUdCsrKVN0W1R0XT1wYXJzZUludChidFtUdF0rYnRbVHRdLDE2KTt4ZSYmKFN0WzNdPXBhcnNlSW50KHhlK3hlLDE2KS8yNTUpfWVsc2UgaWYoYnQ9ZnQubWF0Y2goZWUpKXtmb3IoVHQ9MDtUdDwzO1R0KyspU3RbVHRdPXBhcnNlSW50KGJ0W1R0KzFdLDApO2J0WzRdJiYoYnRbNV0/U3RbM109cGFyc2VGbG9hdChidFs0XSkqLjAxOlN0WzNdPXBhcnNlRmxvYXQoYnRbNF0pKX1lbHNlIGlmKGJ0PWZ0Lm1hdGNoKFh0KSl7Zm9yKFR0PTA7VHQ8MztUdCsrKVN0W1R0XT1NYXRoLnJvdW5kKHBhcnNlRmxvYXQoYnRbVHQrMV0pKjIuNTUpO2J0WzRdJiYoYnRbNV0/U3RbM109cGFyc2VGbG9hdChidFs0XSkqLjAxOlN0WzNdPXBhcnNlRmxvYXQoYnRbNF0pKX1lbHNlIHJldHVybihidD1mdC5tYXRjaChrdCkpP2J0WzFdPT09InRyYW5zcGFyZW50Ij9bMCwwLDAsMF06ZmUuY2FsbChvZSxidFsxXSk/KFN0PW9lW2J0WzFdXSxTdFszXT0xLFN0KTpudWxsOm51bGw7Zm9yKFR0PTA7VHQ8MztUdCsrKVN0W1R0XT1xdChTdFtUdF0sMCwyNTUpO3JldHVybiBTdFszXT1xdChTdFszXSwwLDEpLFN0fSxSdC5nZXQuaHNsPWZ1bmN0aW9uKGZ0KXtpZighZnQpcmV0dXJuIG51bGw7dmFyIHJlPS9eaHNsYT9cKFxzKihbKy1dPyg/OlxkezAsM31cLik/XGQrKSg/OmRlZyk/XHMqLD9ccyooWystXT9bXGRcLl0rKSVccyosP1xzKihbKy1dP1tcZFwuXSspJVxzKig/OlssfFwvXVxzKihbKy1dPyg/PVwuXGR8XGQpKD86MHxbMS05XVxkKik/KD86XC5cZCopPyg/OltlRV1bKy1dP1xkKyk/KVxzKik/XCkkLyxXdD1mdC5tYXRjaChyZSk7aWYoV3Qpe3ZhciBlZT1wYXJzZUZsb2F0KFd0WzRdKSxYdD0ocGFyc2VGbG9hdChXdFsxXSklMzYwKzM2MCklMzYwLGt0PXF0KHBhcnNlRmxvYXQoV3RbMl0pLDAsMTAwKSxTdD1xdChwYXJzZUZsb2F0KFd0WzNdKSwwLDEwMCksYnQ9cXQoaXNOYU4oZWUpPzE6ZWUsMCwxKTtyZXR1cm5bWHQsa3QsU3QsYnRdfXJldHVybiBudWxsfSxSdC5nZXQuaHdiPWZ1bmN0aW9uKGZ0KXtpZighZnQpcmV0dXJuIG51bGw7dmFyIHJlPS9eaHdiXChccyooWystXT9cZHswLDN9KD86XC5cZCspPykoPzpkZWcpP1xzKixccyooWystXT9bXGRcLl0rKSVccyosXHMqKFsrLV0/W1xkXC5dKyklXHMqKD86LFxzKihbKy1dPyg/PVwuXGR8XGQpKD86MHxbMS05XVxkKik/KD86XC5cZCopPyg/OltlRV1bKy1dP1xkKyk/KVxzKik/XCkkLyxXdD1mdC5tYXRjaChyZSk7aWYoV3Qpe3ZhciBlZT1wYXJzZUZsb2F0KFd0WzRdKSxYdD0ocGFyc2VGbG9hdChXdFsxXSklMzYwKzM2MCklMzYwLGt0PXF0KHBhcnNlRmxvYXQoV3RbMl0pLDAsMTAwKSxTdD1xdChwYXJzZUZsb2F0KFd0WzNdKSwwLDEwMCksYnQ9cXQoaXNOYU4oZWUpPzE6ZWUsMCwxKTtyZXR1cm5bWHQsa3QsU3QsYnRdfXJldHVybiBudWxsfSxSdC50by5oZXg9ZnVuY3Rpb24oKXt2YXIgZnQ9JChhcmd1bWVudHMpO3JldHVybiIjIitZdChmdFswXSkrWXQoZnRbMV0pK1l0KGZ0WzJdKSsoZnRbM108MT9ZdChNYXRoLnJvdW5kKGZ0WzNdKjI1NSkpOiIiKX0sUnQudG8ucmdiPWZ1bmN0aW9uKCl7dmFyIGZ0PSQoYXJndW1lbnRzKTtyZXR1cm4gZnQubGVuZ3RoPDR8fGZ0WzNdPT09MT8icmdiKCIrTWF0aC5yb3VuZChmdFswXSkrIiwgIitNYXRoLnJvdW5kKGZ0WzFdKSsiLCAiK01hdGgucm91bmQoZnRbMl0pKyIpIjoicmdiYSgiK01hdGgucm91bmQoZnRbMF0pKyIsICIrTWF0aC5yb3VuZChmdFsxXSkrIiwgIitNYXRoLnJvdW5kKGZ0WzJdKSsiLCAiK2Z0WzNdKyIpIn0sUnQudG8ucmdiLnBlcmNlbnQ9ZnVuY3Rpb24oKXt2YXIgZnQ9JChhcmd1bWVudHMpLHJlPU1hdGgucm91bmQoZnRbMF0vMjU1KjEwMCksV3Q9TWF0aC5yb3VuZChmdFsxXS8yNTUqMTAwKSxlZT1NYXRoLnJvdW5kKGZ0WzJdLzI1NSoxMDApO3JldHVybiBmdC5sZW5ndGg8NHx8ZnRbM109PT0xPyJyZ2IoIityZSsiJSwgIitXdCsiJSwgIitlZSsiJSkiOiJyZ2JhKCIrcmUrIiUsICIrV3QrIiUsICIrZWUrIiUsICIrZnRbM10rIikifSxSdC50by5oc2w9ZnVuY3Rpb24oKXt2YXIgZnQ9JChhcmd1bWVudHMpO3JldHVybiBmdC5sZW5ndGg8NHx8ZnRbM109PT0xPyJoc2woIitmdFswXSsiLCAiK2Z0WzFdKyIlLCAiK2Z0WzJdKyIlKSI6ImhzbGEoIitmdFswXSsiLCAiK2Z0WzFdKyIlLCAiK2Z0WzJdKyIlLCAiK2Z0WzNdKyIpIn0sUnQudG8uaHdiPWZ1bmN0aW9uKCl7dmFyIGZ0PSQoYXJndW1lbnRzKSxyZT0iIjtyZXR1cm4gZnQubGVuZ3RoPj00JiZmdFszXSE9PTEmJihyZT0iLCAiK2Z0WzNdKSwiaHdiKCIrZnRbMF0rIiwgIitmdFsxXSsiJSwgIitmdFsyXSsiJSIrcmUrIikifSxSdC50by5rZXl3b3JkPWZ1bmN0aW9uKGZ0KXtyZXR1cm4gWWVbZnQuc2xpY2UoMCwzKV19O2Z1bmN0aW9uIHF0KGZ0LHJlLFd0KXtyZXR1cm4gTWF0aC5taW4oTWF0aC5tYXgocmUsZnQpLFd0KX1mdW5jdGlvbiBZdChmdCl7dmFyIHJlPU1hdGgucm91bmQoZnQpLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpO3JldHVybiByZS5sZW5ndGg8Mj8iMCIrcmU6cmV9fSwyNjcyOTpmdW5jdGlvbihBZSl7InVzZSBzdHJpY3QiO3ZhciBCZT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LHB0PSJ+IjtmdW5jdGlvbiBvZSgpe31PYmplY3QuY3JlYXRlJiYob2UucHJvdG90eXBlPU9iamVjdC5jcmVhdGUobnVsbCksbmV3IG9lKCkuX19wcm90b19ffHwocHQ9ITEpKTtmdW5jdGlvbiAkKFJ0LHF0LFl0KXt0aGlzLmZuPVJ0LHRoaXMuY29udGV4dD1xdCx0aGlzLm9uY2U9WXR8fCExfWZ1bmN0aW9uIGZlKFJ0LHF0LFl0LGZ0LHJlKXtpZih0eXBlb2YgWXQhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiVGhlIGxpc3RlbmVyIG11c3QgYmUgYSBmdW5jdGlvbiIpO3ZhciBXdD1uZXcgJChZdCxmdHx8UnQscmUpLGVlPXB0P3B0K3F0OnF0O3JldHVybiBSdC5fZXZlbnRzW2VlXT9SdC5fZXZlbnRzW2VlXS5mbj9SdC5fZXZlbnRzW2VlXT1bUnQuX2V2ZW50c1tlZV0sV3RdOlJ0Ll9ldmVudHNbZWVdLnB1c2goV3QpOihSdC5fZXZlbnRzW2VlXT1XdCxSdC5fZXZlbnRzQ291bnQrKyksUnR9ZnVuY3Rpb24gWWUoUnQscXQpey0tUnQuX2V2ZW50c0NvdW50PT09MD9SdC5fZXZlbnRzPW5ldyBvZTpkZWxldGUgUnQuX2V2ZW50c1txdF19ZnVuY3Rpb24gYWUoKXt0aGlzLl9ldmVudHM9bmV3IG9lLHRoaXMuX2V2ZW50c0NvdW50PTB9YWUucHJvdG90eXBlLmV2ZW50TmFtZXM9ZnVuY3Rpb24oKXt2YXIgcXQ9W10sWXQsZnQ7aWYodGhpcy5fZXZlbnRzQ291bnQ9PT0wKXJldHVybiBxdDtmb3IoZnQgaW4gWXQ9dGhpcy5fZXZlbnRzKUJlLmNhbGwoWXQsZnQpJiZxdC5wdXNoKHB0P2Z0LnNsaWNlKDEpOmZ0KTtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz9xdC5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhZdCkpOnF0fSxhZS5wcm90b3R5cGUubGlzdGVuZXJzPWZ1bmN0aW9uKHF0KXt2YXIgWXQ9cHQ/cHQrcXQ6cXQsZnQ9dGhpcy5fZXZlbnRzW1l0XTtpZighZnQpcmV0dXJuW107aWYoZnQuZm4pcmV0dXJuW2Z0LmZuXTtmb3IodmFyIHJlPTAsV3Q9ZnQubGVuZ3RoLGVlPW5ldyBBcnJheShXdCk7cmU8V3Q7cmUrKyllZVtyZV09ZnRbcmVdLmZuO3JldHVybiBlZX0sYWUucHJvdG90eXBlLmxpc3RlbmVyQ291bnQ9ZnVuY3Rpb24ocXQpe3ZhciBZdD1wdD9wdCtxdDpxdCxmdD10aGlzLl9ldmVudHNbWXRdO3JldHVybiBmdD9mdC5mbj8xOmZ0Lmxlbmd0aDowfSxhZS5wcm90b3R5cGUuZW1pdD1mdW5jdGlvbihxdCxZdCxmdCxyZSxXdCxlZSl7dmFyIFh0PXB0P3B0K3F0OnF0O2lmKCF0aGlzLl9ldmVudHNbWHRdKXJldHVybiExO3ZhciBrdD10aGlzLl9ldmVudHNbWHRdLFN0PWFyZ3VtZW50cy5sZW5ndGgsYnQsVHQ7aWYoa3QuZm4pe3N3aXRjaChrdC5vbmNlJiZ0aGlzLnJlbW92ZUxpc3RlbmVyKHF0LGt0LmZuLHZvaWQgMCwhMCksU3Qpe2Nhc2UgMTpyZXR1cm4ga3QuZm4uY2FsbChrdC5jb250ZXh0KSwhMDtjYXNlIDI6cmV0dXJuIGt0LmZuLmNhbGwoa3QuY29udGV4dCxZdCksITA7Y2FzZSAzOnJldHVybiBrdC5mbi5jYWxsKGt0LmNvbnRleHQsWXQsZnQpLCEwO2Nhc2UgNDpyZXR1cm4ga3QuZm4uY2FsbChrdC5jb250ZXh0LFl0LGZ0LHJlKSwhMDtjYXNlIDU6cmV0dXJuIGt0LmZuLmNhbGwoa3QuY29udGV4dCxZdCxmdCxyZSxXdCksITA7Y2FzZSA2OnJldHVybiBrdC5mbi5jYWxsKGt0LmNvbnRleHQsWXQsZnQscmUsV3QsZWUpLCEwfWZvcihUdD0xLGJ0PW5ldyBBcnJheShTdC0xKTtUdDxTdDtUdCsrKWJ0W1R0LTFdPWFyZ3VtZW50c1tUdF07a3QuZm4uYXBwbHkoa3QuY29udGV4dCxidCl9ZWxzZXt2YXIgeGU9a3QubGVuZ3RoLF9lO2ZvcihUdD0wO1R0PHhlO1R0Kyspc3dpdGNoKGt0W1R0XS5vbmNlJiZ0aGlzLnJlbW92ZUxpc3RlbmVyKHF0LGt0W1R0XS5mbix2b2lkIDAsITApLFN0KXtjYXNlIDE6a3RbVHRdLmZuLmNhbGwoa3RbVHRdLmNvbnRleHQpO2JyZWFrO2Nhc2UgMjprdFtUdF0uZm4uY2FsbChrdFtUdF0uY29udGV4dCxZdCk7YnJlYWs7Y2FzZSAzOmt0W1R0XS5mbi5jYWxsKGt0W1R0XS5jb250ZXh0LFl0LGZ0KTticmVhaztjYXNlIDQ6a3RbVHRdLmZuLmNhbGwoa3RbVHRdLmNvbnRleHQsWXQsZnQscmUpO2JyZWFrO2RlZmF1bHQ6aWYoIWJ0KWZvcihfZT0xLGJ0PW5ldyBBcnJheShTdC0xKTtfZTxTdDtfZSsrKWJ0W19lLTFdPWFyZ3VtZW50c1tfZV07a3RbVHRdLmZuLmFwcGx5KGt0W1R0XS5jb250ZXh0LGJ0KX19cmV0dXJuITB9LGFlLnByb3RvdHlwZS5vbj1mdW5jdGlvbihxdCxZdCxmdCl7cmV0dXJuIGZlKHRoaXMscXQsWXQsZnQsITEpfSxhZS5wcm90b3R5cGUub25jZT1mdW5jdGlvbihxdCxZdCxmdCl7cmV0dXJuIGZlKHRoaXMscXQsWXQsZnQsITApfSxhZS5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXI9ZnVuY3Rpb24ocXQsWXQsZnQscmUpe3ZhciBXdD1wdD9wdCtxdDpxdDtpZighdGhpcy5fZXZlbnRzW1d0XSlyZXR1cm4gdGhpcztpZighWXQpcmV0dXJuIFllKHRoaXMsV3QpLHRoaXM7dmFyIGVlPXRoaXMuX2V2ZW50c1tXdF07aWYoZWUuZm4pZWUuZm49PT1ZdCYmKCFyZXx8ZWUub25jZSkmJighZnR8fGVlLmNvbnRleHQ9PT1mdCkmJlllKHRoaXMsV3QpO2Vsc2V7Zm9yKHZhciBYdD0wLGt0PVtdLFN0PWVlLmxlbmd0aDtYdDxTdDtYdCsrKShlZVtYdF0uZm4hPT1ZdHx8cmUmJiFlZVtYdF0ub25jZXx8ZnQmJmVlW1h0XS5jb250ZXh0IT09ZnQpJiZrdC5wdXNoKGVlW1h0XSk7a3QubGVuZ3RoP3RoaXMuX2V2ZW50c1tXdF09a3QubGVuZ3RoPT09MT9rdFswXTprdDpZZSh0aGlzLFd0KX1yZXR1cm4gdGhpc30sYWUucHJvdG90eXBlLnJlbW92ZUFsbExpc3RlbmVycz1mdW5jdGlvbihxdCl7dmFyIFl0O3JldHVybiBxdD8oWXQ9cHQ/cHQrcXQ6cXQsdGhpcy5fZXZlbnRzW1l0XSYmWWUodGhpcyxZdCkpOih0aGlzLl9ldmVudHM9bmV3IG9lLHRoaXMuX2V2ZW50c0NvdW50PTApLHRoaXN9LGFlLnByb3RvdHlwZS5vZmY9YWUucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyLGFlLnByb3RvdHlwZS5hZGRMaXN0ZW5lcj1hZS5wcm90b3R5cGUub24sYWUucHJlZml4ZWQ9cHQsYWUuRXZlbnRFbWl0dGVyPWFlLEFlLmV4cG9ydHM9YWV9LDY5OTE2OmZ1bmN0aW9uKEFlLEJlKXsoZnVuY3Rpb24ocHQsb2Upe29lKEJlKX0pKHRoaXMsZnVuY3Rpb24ocHQpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBvZShYdCxrdCxTdCxidCl7YnQ9YnR8fHt9O3ZhciBUdD1idC5tYXhJdGVyYXRpb25zfHwxMDAseGU9YnQudG9sZXJhbmNlfHwxZS0xMCxfZT1YdChrdCksX249WHQoU3QpLFVlPVN0LWt0O2lmKF9lKl9uPjApdGhyb3ciSW5pdGlhbCBiaXNlY3QgcG9pbnRzIG11c3QgaGF2ZSBvcHBvc2l0ZSBzaWducyI7aWYoX2U9PT0wKXJldHVybiBrdDtpZihfbj09PTApcmV0dXJuIFN0O2Zvcih2YXIgcG49MDtwbjxUdDsrK3BuKXtVZS89Mjt2YXIgZ249a3QrVWUscm49WHQoZ24pO2lmKHJuKl9lPj0wJiYoa3Q9Z24pLE1hdGguYWJzKFVlKTx4ZXx8cm49PT0wKXJldHVybiBnbn1yZXR1cm4ga3QrVWV9ZnVuY3Rpb24gJChYdCl7Zm9yKHZhciBrdD1uZXcgQXJyYXkoWHQpLFN0PTA7U3Q8WHQ7KytTdClrdFtTdF09MDtyZXR1cm4ga3R9ZnVuY3Rpb24gZmUoWHQsa3Qpe3JldHVybiAkKFh0KS5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gJChrdCl9KX1mdW5jdGlvbiBZZShYdCxrdCl7Zm9yKHZhciBTdD0wLGJ0PTA7YnQ8WHQubGVuZ3RoOysrYnQpU3QrPVh0W2J0XSprdFtidF07cmV0dXJuIFN0fWZ1bmN0aW9uIGFlKFh0KXtyZXR1cm4gTWF0aC5zcXJ0KFllKFh0LFh0KSl9ZnVuY3Rpb24gUnQoWHQsa3QsU3Qpe2Zvcih2YXIgYnQ9MDtidDxrdC5sZW5ndGg7KytidClYdFtidF09a3RbYnRdKlN0fWZ1bmN0aW9uIHF0KFh0LGt0LFN0LGJ0LFR0KXtmb3IodmFyIHhlPTA7eGU8WHQubGVuZ3RoOysreGUpWHRbeGVdPWt0KlN0W3hlXStidCpUdFt4ZV19ZnVuY3Rpb24gWXQoWHQsa3QsU3Qpe1N0PVN0fHx7fTt2YXIgYnQ9U3QubWF4SXRlcmF0aW9uc3x8a3QubGVuZ3RoKjIwMCxUdD1TdC5ub25aZXJvRGVsdGF8fDEuMDUseGU9U3QuemVyb0RlbHRhfHwuMDAxLF9lPVN0Lm1pbkVycm9yRGVsdGF8fDFlLTYsX249U3QubWluRXJyb3JEZWx0YXx8MWUtNSxVZT1TdC5yaG8hPT12b2lkIDA/U3QucmhvOjEscG49U3QuY2hpIT09dm9pZCAwP1N0LmNoaToyLGduPVN0LnBzaSE9PXZvaWQgMD9TdC5wc2k6LS41LHJuPVN0LnNpZ21hIT09dm9pZCAwP1N0LnNpZ21hOi41LFluLEpuPWt0Lmxlbmd0aCxDZT1uZXcgQXJyYXkoSm4rMSk7Q2VbMF09a3QsQ2VbMF0uZng9WHQoa3QpLENlWzBdLmlkPTA7Zm9yKHZhciBTZT0wO1NlPEpuOysrU2Upe3ZhciB6cj1rdC5zbGljZSgpO3pyW1NlXT16cltTZV0/enJbU2VdKlR0OnhlLENlW1NlKzFdPXpyLENlW1NlKzFdLmZ4PVh0KHpyKSxDZVtTZSsxXS5pZD1TZSsxfWZ1bmN0aW9uIGRpKE9yKXtmb3IodmFyIHluPTA7eW48T3IubGVuZ3RoO3luKyspQ2VbSm5dW3luXT1Pclt5bl07Q2VbSm5dLmZ4PU9yLmZ4fWZvcih2YXIgRmk9ZnVuY3Rpb24oT3IseW4pe3JldHVybiBPci5meC15bi5meH0saGk9a3Quc2xpY2UoKSx0cj1rdC5zbGljZSgpLHJ0PWt0LnNsaWNlKCksYWE9a3Quc2xpY2UoKSxCaT0wO0JpPGJ0OysrQmkpe2lmKENlLnNvcnQoRmkpLFN0Lmhpc3Rvcnkpe3ZhciBXcj1DZS5tYXAoZnVuY3Rpb24oT3Ipe3ZhciB5bj1Pci5zbGljZSgpO3JldHVybiB5bi5meD1Pci5meCx5bi5pZD1Pci5pZCx5bn0pO1dyLnNvcnQoZnVuY3Rpb24oT3IseW4pe3JldHVybiBPci5pZC15bi5pZH0pLFN0Lmhpc3RvcnkucHVzaCh7eDpDZVswXS5zbGljZSgpLGZ4OkNlWzBdLmZ4LHNpbXBsZXg6V3J9KX1mb3IoWW49MCxTZT0wO1NlPEpuOysrU2UpWW49TWF0aC5tYXgoWW4sTWF0aC5hYnMoQ2VbMF1bU2VdLUNlWzFdW1NlXSkpO2lmKE1hdGguYWJzKENlWzBdLmZ4LUNlW0puXS5meCk8X2UmJlluPF9uKWJyZWFrO2ZvcihTZT0wO1NlPEpuOysrU2Upe2hpW1NlXT0wO2Zvcih2YXIgeWE9MDt5YTxKbjsrK3lhKWhpW1NlXSs9Q2VbeWFdW1NlXTtoaVtTZV0vPUpufXZhciBvYT1DZVtKbl07aWYocXQodHIsMStVZSxoaSwtVWUsb2EpLHRyLmZ4PVh0KHRyKSx0ci5meDxDZVswXS5meClxdChhYSwxK3BuLGhpLC1wbixvYSksYWEuZng9WHQoYWEpLGFhLmZ4PHRyLmZ4P2RpKGFhKTpkaSh0cik7ZWxzZSBpZih0ci5meD49Q2VbSm4tMV0uZngpe3ZhciBrcz0hMTtpZih0ci5meD5vYS5meD8ocXQocnQsMStnbixoaSwtZ24sb2EpLHJ0LmZ4PVh0KHJ0KSxydC5meDxvYS5meD9kaShydCk6a3M9ITApOihxdChydCwxLWduKlVlLGhpLGduKlVlLG9hKSxydC5meD1YdChydCkscnQuZng8dHIuZng/ZGkocnQpOmtzPSEwKSxrcyl7aWYocm4+PTEpYnJlYWs7Zm9yKFNlPTE7U2U8Q2UubGVuZ3RoOysrU2UpcXQoQ2VbU2VdLDEtcm4sQ2VbMF0scm4sQ2VbU2VdKSxDZVtTZV0uZng9WHQoQ2VbU2VdKX19ZWxzZSBkaSh0cil9cmV0dXJuIENlLnNvcnQoRmkpLHtmeDpDZVswXS5meCx4OkNlWzBdfX1mdW5jdGlvbiBmdChYdCxrdCxTdCxidCxUdCx4ZSxfZSl7dmFyIF9uPVN0LmZ4LFVlPVllKFN0LmZ4cHJpbWUsa3QpLHBuPV9uLGduPV9uLHJuPVVlLFluPTA7VHQ9VHR8fDEseGU9eGV8fDFlLTYsX2U9X2V8fC4xO2Z1bmN0aW9uIEpuKFNlLHpyLGRpKXtmb3IodmFyIEZpPTA7Rmk8MTY7KytGaSlpZihUdD0oU2UrenIpLzIscXQoYnQueCwxLFN0LngsVHQsa3QpLHBuPWJ0LmZ4PVh0KGJ0LngsYnQuZnhwcmltZSkscm49WWUoYnQuZnhwcmltZSxrdCkscG4+X24reGUqVHQqVWV8fHBuPj1kaSl6cj1UdDtlbHNle2lmKE1hdGguYWJzKHJuKTw9LV9lKlVlKXJldHVybiBUdDtybiooenItU2UpPj0wJiYoenI9U2UpLFNlPVR0LGRpPXBufXJldHVybiAwfWZvcih2YXIgQ2U9MDtDZTwxMDsrK0NlKXtpZihxdChidC54LDEsU3QueCxUdCxrdCkscG49YnQuZng9WHQoYnQueCxidC5meHByaW1lKSxybj1ZZShidC5meHByaW1lLGt0KSxwbj5fbit4ZSpUdCpVZXx8Q2UmJnBuPj1nbilyZXR1cm4gSm4oWW4sVHQsZ24pO2lmKE1hdGguYWJzKHJuKTw9LV9lKlVlKXJldHVybiBUdDtpZihybj49MClyZXR1cm4gSm4oVHQsWW4scG4pO2duPXBuLFluPVR0LFR0Kj0yfXJldHVybiBUdH1mdW5jdGlvbiByZShYdCxrdCxTdCl7dmFyIGJ0PXt4Omt0LnNsaWNlKCksZng6MCxmeHByaW1lOmt0LnNsaWNlKCl9LFR0PXt4Omt0LnNsaWNlKCksZng6MCxmeHByaW1lOmt0LnNsaWNlKCl9LHhlPWt0LnNsaWNlKCksX2UsX24sVWU9MSxwbjtTdD1TdHx8e30scG49U3QubWF4SXRlcmF0aW9uc3x8a3QubGVuZ3RoKjIwLGJ0LmZ4PVh0KGJ0LngsYnQuZnhwcmltZSksX2U9YnQuZnhwcmltZS5zbGljZSgpLFJ0KF9lLGJ0LmZ4cHJpbWUsLTEpO2Zvcih2YXIgZ249MDtnbjxwbjsrK2duKXtpZihVZT1mdChYdCxfZSxidCxUdCxVZSksU3QuaGlzdG9yeSYmU3QuaGlzdG9yeS5wdXNoKHt4OmJ0Lnguc2xpY2UoKSxmeDpidC5meCxmeHByaW1lOmJ0LmZ4cHJpbWUuc2xpY2UoKSxhbHBoYTpVZX0pLCFVZSlSdChfZSxidC5meHByaW1lLC0xKTtlbHNle3F0KHhlLDEsVHQuZnhwcmltZSwtMSxidC5meHByaW1lKTt2YXIgcm49WWUoYnQuZnhwcmltZSxidC5meHByaW1lKSxZbj1NYXRoLm1heCgwLFllKHhlLFR0LmZ4cHJpbWUpL3JuKTtxdChfZSxZbixfZSwtMSxUdC5meHByaW1lKSxfbj1idCxidD1UdCxUdD1fbn1pZihhZShidC5meHByaW1lKTw9MWUtNSlicmVha31yZXR1cm4gU3QuaGlzdG9yeSYmU3QuaGlzdG9yeS5wdXNoKHt4OmJ0Lnguc2xpY2UoKSxmeDpidC5meCxmeHByaW1lOmJ0LmZ4cHJpbWUuc2xpY2UoKSxhbHBoYTpVZX0pLGJ0fWZ1bmN0aW9uIFd0KFh0LGt0LFN0KXtTdD1TdHx8e307Zm9yKHZhciBidD1TdC5tYXhJdGVyYXRpb25zfHxrdC5sZW5ndGgqMTAwLFR0PVN0LmxlYXJuUmF0ZXx8LjAwMSx4ZT17eDprdC5zbGljZSgpLGZ4OjAsZnhwcmltZTprdC5zbGljZSgpfSxfZT0wO19lPGJ0JiYoeGUuZng9WHQoeGUueCx4ZS5meHByaW1lKSxTdC5oaXN0b3J5JiZTdC5oaXN0b3J5LnB1c2goe3g6eGUueC5zbGljZSgpLGZ4OnhlLmZ4LGZ4cHJpbWU6eGUuZnhwcmltZS5zbGljZSgpfSkscXQoeGUueCwxLHhlLngsLVR0LHhlLmZ4cHJpbWUpLCEoYWUoeGUuZnhwcmltZSk8PTFlLTUpKTsrK19lKTtyZXR1cm4geGV9ZnVuY3Rpb24gZWUoWHQsa3QsU3Qpe1N0PVN0fHx7fTt2YXIgYnQ9e3g6a3Quc2xpY2UoKSxmeDowLGZ4cHJpbWU6a3Quc2xpY2UoKX0sVHQ9e3g6a3Quc2xpY2UoKSxmeDowLGZ4cHJpbWU6a3Quc2xpY2UoKX0seGU9U3QubWF4SXRlcmF0aW9uc3x8a3QubGVuZ3RoKjEwMCxfZT1TdC5sZWFyblJhdGV8fDEsX249a3Quc2xpY2UoKSxVZT1TdC5jMXx8LjAwMSxwbj1TdC5jMnx8LjEsZ24scm49W107aWYoU3QuaGlzdG9yeSl7dmFyIFluPVh0O1h0PWZ1bmN0aW9uKENlLFNlKXtyZXR1cm4gcm4ucHVzaChDZS5zbGljZSgpKSxZbihDZSxTZSl9fWJ0LmZ4PVh0KGJ0LngsYnQuZnhwcmltZSk7Zm9yKHZhciBKbj0wO0puPHhlJiYoUnQoX24sYnQuZnhwcmltZSwtMSksX2U9ZnQoWHQsX24sYnQsVHQsX2UsVWUscG4pLFN0Lmhpc3RvcnkmJihTdC5oaXN0b3J5LnB1c2goe3g6YnQueC5zbGljZSgpLGZ4OmJ0LmZ4LGZ4cHJpbWU6YnQuZnhwcmltZS5zbGljZSgpLGZ1bmN0aW9uQ2FsbHM6cm4sbGVhcm5SYXRlOl9lLGFscGhhOl9lfSkscm49W10pLGduPWJ0LGJ0PVR0LFR0PWduLCEoX2U9PT0wfHxhZShidC5meHByaW1lKTwxZS01KSk7KytKbik7cmV0dXJuIGJ0fXB0LmJpc2VjdD1vZSxwdC5uZWxkZXJNZWFkPVl0LHB0LmNvbmp1Z2F0ZUdyYWRpZW50PXJlLHB0LmdyYWRpZW50RGVzY2VudD1XdCxwdC5ncmFkaWVudERlc2NlbnRMaW5lU2VhcmNoPWVlLHB0Lnplcm9zPSQscHQuemVyb3NNPWZlLHB0Lm5vcm0yPWFlLHB0LndlaWdodGVkU3VtPXF0LHB0LnNjYWxlPVJ0fSl9LDk2NDg2OmZ1bmN0aW9uKEFlLEJlLHB0KXtBZT1wdC5ubWQoQWUpO3ZhciBvZTsoZnVuY3Rpb24oKXt2YXIgJCxmZT0iNC4xNy4yMSIsWWU9MjAwLGFlPSJVbnN1cHBvcnRlZCBjb3JlLWpzIHVzZS4gVHJ5IGh0dHBzOi8vbnBtcy5pby9zZWFyY2g/cT1wb255ZmlsbC4iLFJ0PSJFeHBlY3RlZCBhIGZ1bmN0aW9uIixxdD0iSW52YWxpZCBgdmFyaWFibGVgIG9wdGlvbiBwYXNzZWQgaW50byBgXy50ZW1wbGF0ZWAiLFl0PSJfX2xvZGFzaF9oYXNoX3VuZGVmaW5lZF9fIixmdD01MDAscmU9Il9fbG9kYXNoX3BsYWNlaG9sZGVyX18iLFd0PTEsZWU9MixYdD00LGt0PTEsU3Q9MixidD0xLFR0PTIseGU9NCxfZT04LF9uPTE2LFVlPTMyLHBuPTY0LGduPTEyOCxybj0yNTYsWW49NTEyLEpuPTMwLENlPSIuLi4iLFNlPTgwMCx6cj0xNixkaT0xLEZpPTIsaGk9Myx0cj0xLzAscnQ9OTAwNzE5OTI1NDc0MDk5MSxhYT0xNzk3NjkzMTM0ODYyMzE1N2UyOTIsQmk9TmFOLFdyPTQyOTQ5NjcyOTUseWE9V3ItMSxvYT1Xcj4+PjEsa3M9W1siYXJ5Iixnbl0sWyJiaW5kIixidF0sWyJiaW5kS2V5IixUdF0sWyJjdXJyeSIsX2VdLFsiY3VycnlSaWdodCIsX25dLFsiZmxpcCIsWW5dLFsicGFydGlhbCIsVWVdLFsicGFydGlhbFJpZ2h0Iixwbl0sWyJyZWFyZyIscm5dXSxPcj0iW29iamVjdCBBcmd1bWVudHNdIix5bj0iW29iamVjdCBBcnJheV0iLFhhPSJbb2JqZWN0IEFzeW5jRnVuY3Rpb25dIixVYT0iW29iamVjdCBCb29sZWFuXSIsQXM9IltvYmplY3QgRGF0ZV0iLFRzPSJbb2JqZWN0IERPTUV4Y2VwdGlvbl0iLFhvPSJbb2JqZWN0IEVycm9yXSIsemk9IltvYmplY3QgRnVuY3Rpb25dIixtYT0iW29iamVjdCBHZW5lcmF0b3JGdW5jdGlvbl0iLF9pPSJbb2JqZWN0IE1hcF0iLGJhPSJbb2JqZWN0IE51bWJlcl0iLEd1PSJbb2JqZWN0IE51bGxdIixXaT0iW29iamVjdCBPYmplY3RdIixiYz0iW29iamVjdCBQcm9taXNlXSIsd2w9IltvYmplY3QgUHJveHldIixFZT0iW29iamVjdCBSZWdFeHBdIix4dD0iW29iamVjdCBTZXRdIixPdD0iW29iamVjdCBTdHJpbmddIixsbj0iW29iamVjdCBTeW1ib2xdIixEZT0iW29iamVjdCBVbmRlZmluZWRdIixNZT0iW29iamVjdCBXZWFrTWFwXSIsVGU9IltvYmplY3QgV2Vha1NldF0iLFBzPSJbb2JqZWN0IEFycmF5QnVmZmVyXSIsTG89IltvYmplY3QgRGF0YVZpZXddIix1bj0iW29iamVjdCBGbG9hdDMyQXJyYXldIixIbj0iW29iamVjdCBGbG9hdDY0QXJyYXldIixQcj0iW29iamVjdCBJbnQ4QXJyYXldIix4Yz0iW29iamVjdCBJbnQxNkFycmF5XSIsX2M9IltvYmplY3QgSW50MzJBcnJheV0iLHdjPSJbb2JqZWN0IFVpbnQ4QXJyYXldIixxYT0iW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0iLG1lPSJbb2JqZWN0IFVpbnQxNkFycmF5XSIsd2k9IltvYmplY3QgVWludDMyQXJyYXldIixzYT0vXGJfX3AgXCs9ICcnOy9nLHNuPS9cYihfX3AgXCs9KSAnJyBcKy9nLGNhPS8oX19lXCguKj9cKXxcYl9fdFwpKSBcK1xuJyc7L2csR3I9LyYoPzphbXB8bHR8Z3R8cXVvdHwjMzkpOy9nLE5hPS9bJjw+IiddL2csT2w9UmVnRXhwKEdyLnNvdXJjZSksQmQ9UmVnRXhwKE5hLnNvdXJjZSkscnY9LzwlLShbXHNcU10rPyklPi9nLGl2PS88JShbXHNcU10rPyklPi9nLHpkPS88JT0oW1xzXFNdKz8pJT4vZyxXZD0vXC58XFsoPzpbXltcXV0qfChbIiddKSg/Oig/IVwxKVteXFxdfFxcLikqP1wxKVxdLyxHZD0vXlx3KiQvLGF2PS9bXi5bXF1dK3xcWyg/OigtP1xkKyg/OlwuXGQrKT8pfChbIiddKSgoPzooPyFcMilbXlxcXXxcXC4pKj8pXDIpXF18KD89KD86XC58XFtcXSkoPzpcLnxcW1xdfCQpKS9nLFVvPS9bXFxeJC4qKz8oKVtcXXt9fF0vZyxTbD1SZWdFeHAoVW8uc291cmNlKSxPYz0vXlxzKy8sb3Y9L1xzLyxzdj0vXHsoPzpcblwvXCogXFt3cmFwcGVkIHdpdGggLitcXSBcKlwvKT9cbj8vLFNjPS9ce1xuXC9cKiBcW3dyYXBwZWQgd2l0aCAoLispXF0gXCovLEVjPS8sPyAmIC8seGE9L1teXHgwMC1ceDJmXHgzYS1ceDQwXHg1Yi1ceDYwXHg3Yi1ceDdmXSsvZyxsYT0vWygpPSx7fVxbXF1cL1xzXS8sTWM9L1xcKFxcKT8vZyxFbD0vXCRceyhbXlxcfV0qKD86XFwuW15cXH1dKikqKVx9L2csJGQ9L1x3KiQvLGN2PS9eWy0rXTB4WzAtOWEtZl0rJC9pLGx2PS9eMGJbMDFdKyQvaSxlcj0vXlxbb2JqZWN0IC4rP0NvbnN0cnVjdG9yXF0kLyxaZD0vXjBvWzAtN10rJC9pLHBpPS9eKD86MHxbMS05XVxkKikkLyxPaT0vW1x4YzAtXHhkNlx4ZDgtXHhmNlx4ZjgtXHhmZlx1MDEwMC1cdTAxN2ZdL2csaj0vKCReKS8sej0vWydcblxyXHUyMDI4XHUyMDI5XFxdL2csSD0iXFx1ZDgwMC1cXHVkZmZmIixVPSJcXHUwMzAwLVxcdTAzNmYiLGl0PSJcXHVmZTIwLVxcdWZlMmYiLGF0PSJcXHUyMGQwLVxcdTIwZmYiLEs9VStpdCthdCxKPSJcXHUyNzAwLVxcdTI3YmYiLGN0PSJhLXpcXHhkZi1cXHhmNlxceGY4LVxceGZmIix1dD0iXFx4YWNcXHhiMVxceGQ3XFx4ZjciLER0PSJcXHgwMC1cXHgyZlxceDNhLVxceDQwXFx4NWItXFx4NjBcXHg3Yi1cXHhiZiIsSHQ9IlxcdTIwMDAtXFx1MjA2ZiIsaWU9IiBcXHRcXHgwYlxcZlxceGEwXFx1ZmVmZlxcblxcclxcdTIwMjhcXHUyMDI5XFx1MTY4MFxcdTE4MGVcXHUyMDAwXFx1MjAwMVxcdTIwMDJcXHUyMDAzXFx1MjAwNFxcdTIwMDVcXHUyMDA2XFx1MjAwN1xcdTIwMDhcXHUyMDA5XFx1MjAwYVxcdTIwMmZcXHUyMDVmXFx1MzAwMCIsRnQ9IkEtWlxceGMwLVxceGQ2XFx4ZDgtXFx4ZGUiLEp0PSJcXHVmZTBlXFx1ZmUwZiIsR3Q9dXQrRHQrSHQraWUsTnQ9IlsnXHUyMDE5XSIsaGU9IlsiK0grIl0iLG5lPSJbIitHdCsiXSIscGU9IlsiK0srIl0iLFV0PSJcXGQrIix2ZT0iWyIrSisiXSIsSGU9IlsiK2N0KyJdIixTaT0iW14iK0grR3QrVXQrSitjdCtGdCsiXSIsRWk9IlxcdWQ4M2NbXFx1ZGZmYi1cXHVkZmZmXSIsdmk9Iig/OiIrcGUrInwiK0VpKyIpIixNaT0iW14iK0grIl0iLEdpPSIoPzpcXHVkODNjW1xcdWRkZTYtXFx1ZGRmZl0pezJ9Iixucj0iW1xcdWQ4MDAtXFx1ZGJmZl1bXFx1ZGMwMC1cXHVkZmZmXSIsd249IlsiK0Z0KyJdIixrYz0iXFx1MjAwZCIsWWQ9Iig/OiIrSGUrInwiK1NpKyIpIixBYz0iKD86Iit3bisifCIrU2krIikiLF9hPSIoPzoiK050KyIoPzpkfGxsfG18cmV8c3x0fHZlKSk/IixDcj0iKD86IitOdCsiKD86RHxMTHxNfFJFfFN8VHxWRSkpPyIsQ3M9dmkrIj8iLExzPSJbIitKdCsiXT8iLFJzPSIoPzoiK2tjKyIoPzoiK1tNaSxHaSxucl0uam9pbigifCIpKyIpIitMcytDcysiKSoiLEthPSJcXGQqKD86MXN0fDJuZHwzcmR8KD8hWzEyM10pXFxkdGgpKD89XFxifFtBLVpfXSkiLGlNPSJcXGQqKD86MVNUfDJORHwzUkR8KD8hWzEyM10pXFxkVEgpKD89XFxifFthLXpfXSkiLHV2PUxzK0NzK1JzLGFNPSIoPzoiK1t2ZSxHaSxucl0uam9pbigifCIpKyIpIit1dixSbz0iKD86IitbTWkrcGUrIj8iLHBlLEdpLG5yLGhlXS5qb2luKCJ8IikrIikiLG9NPVJlZ0V4cChOdCwiZyIpLHNNPVJlZ0V4cChwZSwiZyIpLGZ2PVJlZ0V4cChFaSsiKD89IitFaSsiKXwiK1JvK3V2LCJnIikseGI9UmVnRXhwKFt3bisiPyIrSGUrIisiK19hKyIoPz0iK1tuZSx3biwiJCJdLmpvaW4oInwiKSsiKSIsQWMrIisiK0NyKyIoPz0iK1tuZSx3bitZZCwiJCJdLmpvaW4oInwiKSsiKSIsd24rIj8iK1lkKyIrIitfYSx3bisiKyIrQ3IsaU0sS2EsVXQsYU1dLmpvaW4oInwiKSwiZyIpLF9iPVJlZ0V4cCgiWyIra2MrSCtLK0p0KyJdIiksY009L1thLXpdW0EtWl18W0EtWl17Mn1bYS16XXxbMC05XVthLXpBLVpdfFthLXpBLVpdWzAtOV18W15hLXpBLVowLTkgXS8sbE09WyJBcnJheSIsIkJ1ZmZlciIsIkRhdGFWaWV3IiwiRGF0ZSIsIkVycm9yIiwiRmxvYXQzMkFycmF5IiwiRmxvYXQ2NEFycmF5IiwiRnVuY3Rpb24iLCJJbnQ4QXJyYXkiLCJJbnQxNkFycmF5IiwiSW50MzJBcnJheSIsIk1hcCIsIk1hdGgiLCJPYmplY3QiLCJQcm9taXNlIiwiUmVnRXhwIiwiU2V0IiwiU3RyaW5nIiwiU3ltYm9sIiwiVHlwZUVycm9yIiwiVWludDhBcnJheSIsIlVpbnQ4Q2xhbXBlZEFycmF5IiwiVWludDE2QXJyYXkiLCJVaW50MzJBcnJheSIsIldlYWtNYXAiLCJfIiwiY2xlYXJUaW1lb3V0IiwiaXNGaW5pdGUiLCJwYXJzZUludCIsInNldFRpbWVvdXQiXSx1TT0tMSxjcj17fTtjclt1bl09Y3JbSG5dPWNyW1ByXT1jclt4Y109Y3JbX2NdPWNyW3djXT1jcltxYV09Y3JbbWVdPWNyW3dpXT0hMCxjcltPcl09Y3JbeW5dPWNyW1BzXT1jcltVYV09Y3JbTG9dPWNyW0FzXT1jcltYb109Y3JbemldPWNyW19pXT1jcltiYV09Y3JbV2ldPWNyW0VlXT1jclt4dF09Y3JbT3RdPWNyW01lXT0hMTt2YXIgcnI9e307cnJbT3JdPXJyW3luXT1ycltQc109cnJbTG9dPXJyW1VhXT1ycltBc109cnJbdW5dPXJyW0huXT1ycltQcl09cnJbeGNdPXJyW19jXT1ycltfaV09cnJbYmFdPXJyW1dpXT1ycltFZV09cnJbeHRdPXJyW090XT1ycltsbl09cnJbd2NdPXJyW3FhXT1yclttZV09cnJbd2ldPSEwLHJyW1hvXT1yclt6aV09cnJbTWVdPSExO3ZhciBmTT17XHUwMEMwOiJBIixcdTAwQzE6IkEiLFx1MDBDMjoiQSIsXHUwMEMzOiJBIixcdTAwQzQ6IkEiLFx1MDBDNToiQSIsXHUwMEUwOiJhIixcdTAwRTE6ImEiLFx1MDBFMjoiYSIsXHUwMEUzOiJhIixcdTAwRTQ6ImEiLFx1MDBFNToiYSIsXHUwMEM3OiJDIixcdTAwRTc6ImMiLFx1MDBEMDoiRCIsXHUwMEYwOiJkIixcdTAwQzg6IkUiLFx1MDBDOToiRSIsXHUwMENBOiJFIixcdTAwQ0I6IkUiLFx1MDBFODoiZSIsXHUwMEU5OiJlIixcdTAwRUE6ImUiLFx1MDBFQjoiZSIsXHUwMENDOiJJIixcdTAwQ0Q6IkkiLFx1MDBDRToiSSIsXHUwMENGOiJJIixcdTAwRUM6ImkiLFx1MDBFRDoiaSIsXHUwMEVFOiJpIixcdTAwRUY6ImkiLFx1MDBEMToiTiIsXHUwMEYxOiJuIixcdTAwRDI6Ik8iLFx1MDBEMzoiTyIsXHUwMEQ0OiJPIixcdTAwRDU6Ik8iLFx1MDBENjoiTyIsXHUwMEQ4OiJPIixcdTAwRjI6Im8iLFx1MDBGMzoibyIsXHUwMEY0OiJvIixcdTAwRjU6Im8iLFx1MDBGNjoibyIsXHUwMEY4OiJvIixcdTAwRDk6IlUiLFx1MDBEQToiVSIsXHUwMERCOiJVIixcdTAwREM6IlUiLFx1MDBGOToidSIsXHUwMEZBOiJ1IixcdTAwRkI6InUiLFx1MDBGQzoidSIsXHUwMEREOiJZIixcdTAwRkQ6InkiLFx1MDBGRjoieSIsXHUwMEM2OiJBZSIsXHUwMEU2OiJhZSIsXHUwMERFOiJUaCIsXHUwMEZFOiJ0aCIsXHUwMERGOiJzcyIsXHUwMTAwOiJBIixcdTAxMDI6IkEiLFx1MDEwNDoiQSIsXHUwMTAxOiJhIixcdTAxMDM6ImEiLFx1MDEwNToiYSIsXHUwMTA2OiJDIixcdTAxMDg6IkMiLFx1MDEwQToiQyIsXHUwMTBDOiJDIixcdTAxMDc6ImMiLFx1MDEwOToiYyIsXHUwMTBCOiJjIixcdTAxMEQ6ImMiLFx1MDEwRToiRCIsXHUwMTEwOiJEIixcdTAxMEY6ImQiLFx1MDExMToiZCIsXHUwMTEyOiJFIixcdTAxMTQ6IkUiLFx1MDExNjoiRSIsXHUwMTE4OiJFIixcdTAxMUE6IkUiLFx1MDExMzoiZSIsXHUwMTE1OiJlIixcdTAxMTc6ImUiLFx1MDExOToiZSIsXHUwMTFCOiJlIixcdTAxMUM6IkciLFx1MDExRToiRyIsXHUwMTIwOiJHIixcdTAxMjI6IkciLFx1MDExRDoiZyIsXHUwMTFGOiJnIixcdTAxMjE6ImciLFx1MDEyMzoiZyIsXHUwMTI0OiJIIixcdTAxMjY6IkgiLFx1MDEyNToiaCIsXHUwMTI3OiJoIixcdTAxMjg6IkkiLFx1MDEyQToiSSIsXHUwMTJDOiJJIixcdTAxMkU6IkkiLFx1MDEzMDoiSSIsXHUwMTI5OiJpIixcdTAxMkI6ImkiLFx1MDEyRDoiaSIsXHUwMTJGOiJpIixcdTAxMzE6ImkiLFx1MDEzNDoiSiIsXHUwMTM1OiJqIixcdTAxMzY6IksiLFx1MDEzNzoiayIsXHUwMTM4OiJrIixcdTAxMzk6IkwiLFx1MDEzQjoiTCIsXHUwMTNEOiJMIixcdTAxM0Y6IkwiLFx1MDE0MToiTCIsXHUwMTNBOiJsIixcdTAxM0M6ImwiLFx1MDEzRToibCIsXHUwMTQwOiJsIixcdTAxNDI6ImwiLFx1MDE0MzoiTiIsXHUwMTQ1OiJOIixcdTAxNDc6Ik4iLFx1MDE0QToiTiIsXHUwMTQ0OiJuIixcdTAxNDY6Im4iLFx1MDE0ODoibiIsXHUwMTRCOiJuIixcdTAxNEM6Ik8iLFx1MDE0RToiTyIsXHUwMTUwOiJPIixcdTAxNEQ6Im8iLFx1MDE0RjoibyIsXHUwMTUxOiJvIixcdTAxNTQ6IlIiLFx1MDE1NjoiUiIsXHUwMTU4OiJSIixcdTAxNTU6InIiLFx1MDE1NzoiciIsXHUwMTU5OiJyIixcdTAxNUE6IlMiLFx1MDE1QzoiUyIsXHUwMTVFOiJTIixcdTAxNjA6IlMiLFx1MDE1QjoicyIsXHUwMTVEOiJzIixcdTAxNUY6InMiLFx1MDE2MToicyIsXHUwMTYyOiJUIixcdTAxNjQ6IlQiLFx1MDE2NjoiVCIsXHUwMTYzOiJ0IixcdTAxNjU6InQiLFx1MDE2NzoidCIsXHUwMTY4OiJVIixcdTAxNkE6IlUiLFx1MDE2QzoiVSIsXHUwMTZFOiJVIixcdTAxNzA6IlUiLFx1MDE3MjoiVSIsXHUwMTY5OiJ1IixcdTAxNkI6InUiLFx1MDE2RDoidSIsXHUwMTZGOiJ1IixcdTAxNzE6InUiLFx1MDE3MzoidSIsXHUwMTc0OiJXIixcdTAxNzU6InciLFx1MDE3NjoiWSIsXHUwMTc3OiJ5IixcdTAxNzg6IlkiLFx1MDE3OToiWiIsXHUwMTdCOiJaIixcdTAxN0Q6IloiLFx1MDE3QToieiIsXHUwMTdDOiJ6IixcdTAxN0U6InoiLFx1MDEzMjoiSUoiLFx1MDEzMzoiaWoiLFx1MDE1MjoiT2UiLFx1MDE1Mzoib2UiLFx1MDE0OToiJ24iLFx1MDE3RjoicyJ9LGRNPXsiJiI6IiZhbXA7IiwiPCI6IiZsdDsiLCI+IjoiJmd0OyIsJyInOiImcXVvdDsiLCInIjoiJiMzOTsifSxoTT17IiZhbXA7IjoiJiIsIiZsdDsiOiI8IiwiJmd0OyI6Ij4iLCImcXVvdDsiOiciJywiJiMzOTsiOiInIn0sV249eyJcXCI6IlxcIiwiJyI6IiciLCJcbiI6Im4iLCJcciI6InIiLCJcdTIwMjgiOiJ1MjAyOCIsIlx1MjAyOSI6InUyMDI5In0sZHY9cGFyc2VGbG9hdCxUYz1wYXJzZUludCxIZD10eXBlb2YgcHQuZz09Im9iamVjdCImJnB0LmcmJnB0LmcuT2JqZWN0PT09T2JqZWN0JiZwdC5nLFZkPXR5cGVvZiBzZWxmPT0ib2JqZWN0IiYmc2VsZiYmc2VsZi5PYmplY3Q9PT1PYmplY3QmJnNlbGYsbHI9SGR8fFZkfHxGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpLFhkPUJlJiYhQmUubm9kZVR5cGUmJkJlLCRpPVhkJiYhMCYmQWUmJiFBZS5ub2RlVHlwZSYmQWUsaHY9JGkmJiRpLmV4cG9ydHM9PT1YZCwkdT1odiYmSGQucHJvY2VzcyxHbj1mdW5jdGlvbigpe3RyeXt2YXIgb3Q9JGkmJiRpLnJlcXVpcmUmJiRpLnJlcXVpcmUoInV0aWwiKS50eXBlcztyZXR1cm4gb3R8fCR1JiYkdS5iaW5kaW5nJiYkdS5iaW5kaW5nKCJ1dGlsIil9Y2F0Y2goX3Qpe319KCksTnM9R24mJkduLmlzQXJyYXlCdWZmZXIsVWQ9R24mJkduLmlzRGF0ZSxwdj1HbiYmR24uaXNNYXAscWQ9R24mJkduLmlzUmVnRXhwLEtkPUduJiZHbi5pc1NldCx2dj1HbiYmR24uaXNUeXBlZEFycmF5O2Z1bmN0aW9uIExyKG90LF90LHZ0KXtzd2l0Y2godnQubGVuZ3RoKXtjYXNlIDA6cmV0dXJuIG90LmNhbGwoX3QpO2Nhc2UgMTpyZXR1cm4gb3QuY2FsbChfdCx2dFswXSk7Y2FzZSAyOnJldHVybiBvdC5jYWxsKF90LHZ0WzBdLHZ0WzFdKTtjYXNlIDM6cmV0dXJuIG90LmNhbGwoX3QsdnRbMF0sdnRbMV0sdnRbMl0pfXJldHVybiBvdC5hcHBseShfdCx2dCl9ZnVuY3Rpb24gSXMob3QsX3QsdnQsc2Upe2Zvcih2YXIgemU9LTEsU249b3Q9PW51bGw/MDpvdC5sZW5ndGg7Kyt6ZTxTbjspe3ZhciBlaT1vdFt6ZV07X3Qoc2UsZWksdnQoZWkpLG90KX1yZXR1cm4gc2V9ZnVuY3Rpb24gdWEob3QsX3Qpe2Zvcih2YXIgdnQ9LTEsc2U9b3Q9PW51bGw/MDpvdC5sZW5ndGg7Kyt2dDxzZSYmX3Qob3RbdnRdLHZ0LG90KSE9PSExOyk7cmV0dXJuIG90fWZ1bmN0aW9uIGd2KG90LF90KXtmb3IodmFyIHZ0PW90PT1udWxsPzA6b3QubGVuZ3RoO3Z0LS0mJl90KG90W3Z0XSx2dCxvdCkhPT0hMTspO3JldHVybiBvdH1mdW5jdGlvbiBRZChvdCxfdCl7Zm9yKHZhciB2dD0tMSxzZT1vdD09bnVsbD8wOm90Lmxlbmd0aDsrK3Z0PHNlOylpZighX3Qob3RbdnRdLHZ0LG90KSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBRYShvdCxfdCl7Zm9yKHZhciB2dD0tMSxzZT1vdD09bnVsbD8wOm90Lmxlbmd0aCx6ZT0wLFNuPVtdOysrdnQ8c2U7KXt2YXIgZWk9b3RbdnRdO190KGVpLHZ0LG90KSYmKFNuW3plKytdPWVpKX1yZXR1cm4gU259ZnVuY3Rpb24gTWwob3QsX3Qpe3ZhciB2dD1vdD09bnVsbD8wOm90Lmxlbmd0aDtyZXR1cm4hIXZ0JiZDYyhvdCxfdCwwKT4tMX1mdW5jdGlvbiBKZChvdCxfdCx2dCl7Zm9yKHZhciBzZT0tMSx6ZT1vdD09bnVsbD8wOm90Lmxlbmd0aDsrK3NlPHplOylpZih2dChfdCxvdFtzZV0pKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uICRuKG90LF90KXtmb3IodmFyIHZ0PS0xLHNlPW90PT1udWxsPzA6b3QubGVuZ3RoLHplPUFycmF5KHNlKTsrK3Z0PHNlOyl6ZVt2dF09X3Qob3RbdnRdLHZ0LG90KTtyZXR1cm4gemV9ZnVuY3Rpb24gZmEob3QsX3Qpe2Zvcih2YXIgdnQ9LTEsc2U9X3QubGVuZ3RoLHplPW90Lmxlbmd0aDsrK3Z0PHNlOylvdFt6ZSt2dF09X3RbdnRdO3JldHVybiBvdH1mdW5jdGlvbiBQYyhvdCxfdCx2dCxzZSl7dmFyIHplPS0xLFNuPW90PT1udWxsPzA6b3QubGVuZ3RoO2ZvcihzZSYmU24mJih2dD1vdFsrK3plXSk7Kyt6ZTxTbjspdnQ9X3QodnQsb3RbemVdLHplLG90KTtyZXR1cm4gdnR9ZnVuY3Rpb24gd2Iob3QsX3QsdnQsc2Upe3ZhciB6ZT1vdD09bnVsbD8wOm90Lmxlbmd0aDtmb3Ioc2UmJnplJiYodnQ9b3RbLS16ZV0pO3plLS07KXZ0PV90KHZ0LG90W3plXSx6ZSxvdCk7cmV0dXJuIHZ0fWZ1bmN0aW9uIERzKG90LF90KXtmb3IodmFyIHZ0PS0xLHNlPW90PT1udWxsPzA6b3QubGVuZ3RoOysrdnQ8c2U7KWlmKF90KG90W3Z0XSx2dCxvdCkpcmV0dXJuITA7cmV0dXJuITF9dmFyIHRoPVl1KCJsZW5ndGgiKTtmdW5jdGlvbiBPYihvdCl7cmV0dXJuIG90LnNwbGl0KCIiKX1mdW5jdGlvbiB5dihvdCl7cmV0dXJuIG90Lm1hdGNoKHhhKXx8W119ZnVuY3Rpb24gbXYob3QsX3QsdnQpe3ZhciBzZTtyZXR1cm4gdnQob3QsZnVuY3Rpb24oemUsU24sZWkpe2lmKF90KHplLFNuLGVpKSlyZXR1cm4gc2U9U24sITF9KSxzZX1mdW5jdGlvbiBadShvdCxfdCx2dCxzZSl7Zm9yKHZhciB6ZT1vdC5sZW5ndGgsU249dnQrKHNlPzE6LTEpO3NlP1NuLS06KytTbjx6ZTspaWYoX3Qob3RbU25dLFNuLG90KSlyZXR1cm4gU247cmV0dXJuLTF9ZnVuY3Rpb24gQ2Mob3QsX3QsdnQpe3JldHVybiBfdD09PV90P3hNKG90LF90LHZ0KTpadShvdCxlaCx2dCl9ZnVuY3Rpb24gYnYob3QsX3QsdnQsc2Upe2Zvcih2YXIgemU9dnQtMSxTbj1vdC5sZW5ndGg7Kyt6ZTxTbjspaWYoc2Uob3RbemVdLF90KSlyZXR1cm4gemU7cmV0dXJuLTF9ZnVuY3Rpb24gZWgob3Qpe3JldHVybiBvdCE9PW90fWZ1bmN0aW9uIG5oKG90LF90KXt2YXIgdnQ9b3Q9PW51bGw/MDpvdC5sZW5ndGg7cmV0dXJuIHZ0P2loKG90LF90KS92dDpCaX1mdW5jdGlvbiBZdShvdCl7cmV0dXJuIGZ1bmN0aW9uKF90KXtyZXR1cm4gX3Q9PW51bGw/JDpfdFtvdF19fWZ1bmN0aW9uIHJoKG90KXtyZXR1cm4gZnVuY3Rpb24oX3Qpe3JldHVybiBvdD09bnVsbD8kOm90W190XX19ZnVuY3Rpb24geHYob3QsX3QsdnQsc2UsemUpe3JldHVybiB6ZShvdCxmdW5jdGlvbihTbixlaSxqZSl7dnQ9c2U/KHNlPSExLFNuKTpfdCh2dCxTbixlaSxqZSl9KSx2dH1mdW5jdGlvbiBTYihvdCxfdCl7dmFyIHZ0PW90Lmxlbmd0aDtmb3Iob3Quc29ydChfdCk7dnQtLTspb3RbdnRdPW90W3Z0XS52YWx1ZTtyZXR1cm4gb3R9ZnVuY3Rpb24gaWgob3QsX3Qpe2Zvcih2YXIgdnQsc2U9LTEsemU9b3QubGVuZ3RoOysrc2U8emU7KXt2YXIgU249X3Qob3Rbc2VdKTtTbiE9PSQmJih2dD12dD09PSQ/U246dnQrU24pfXJldHVybiB2dH1mdW5jdGlvbiBIdShvdCxfdCl7Zm9yKHZhciB2dD0tMSxzZT1BcnJheShvdCk7Kyt2dDxvdDspc2VbdnRdPV90KHZ0KTtyZXR1cm4gc2V9ZnVuY3Rpb24gRWIob3QsX3Qpe3JldHVybiAkbihfdCxmdW5jdGlvbih2dCl7cmV0dXJuW3Z0LG90W3Z0XV19KX1mdW5jdGlvbiBfdihvdCl7cmV0dXJuIG90JiZvdC5zbGljZSgwLFRiKG90KSsxKS5yZXBsYWNlKE9jLCIiKX1mdW5jdGlvbiBraShvdCl7cmV0dXJuIGZ1bmN0aW9uKF90KXtyZXR1cm4gb3QoX3QpfX1mdW5jdGlvbiBhaChvdCxfdCl7cmV0dXJuICRuKF90LGZ1bmN0aW9uKHZ0KXtyZXR1cm4gb3RbdnRdfSl9ZnVuY3Rpb24gTGMob3QsX3Qpe3JldHVybiBvdC5oYXMoX3QpfWZ1bmN0aW9uIHd2KG90LF90KXtmb3IodmFyIHZ0PS0xLHNlPW90Lmxlbmd0aDsrK3Z0PHNlJiZDYyhfdCxvdFt2dF0sMCk+LTE7KTtyZXR1cm4gdnR9ZnVuY3Rpb24gb2gob3QsX3Qpe2Zvcih2YXIgdnQ9b3QubGVuZ3RoO3Z0LS0mJkNjKF90LG90W3Z0XSwwKT4tMTspO3JldHVybiB2dH1mdW5jdGlvbiBNYihvdCxfdCl7Zm9yKHZhciB2dD1vdC5sZW5ndGgsc2U9MDt2dC0tOylvdFt2dF09PT1fdCYmKytzZTtyZXR1cm4gc2V9dmFyIHBNPXJoKGZNKSx2TT1yaChkTSk7ZnVuY3Rpb24ga2Iob3Qpe3JldHVybiJcXCIrV25bb3RdfWZ1bmN0aW9uIGdNKG90LF90KXtyZXR1cm4gb3Q9PW51bGw/JDpvdFtfdF19ZnVuY3Rpb24ga2wob3Qpe3JldHVybiBfYi50ZXN0KG90KX1mdW5jdGlvbiB5TShvdCl7cmV0dXJuIGNNLnRlc3Qob3QpfWZ1bmN0aW9uIG1NKG90KXtmb3IodmFyIF90LHZ0PVtdOyEoX3Q9b3QubmV4dCgpKS5kb25lOyl2dC5wdXNoKF90LnZhbHVlKTtyZXR1cm4gdnR9ZnVuY3Rpb24gT3Yob3Qpe3ZhciBfdD0tMSx2dD1BcnJheShvdC5zaXplKTtyZXR1cm4gb3QuZm9yRWFjaChmdW5jdGlvbihzZSx6ZSl7dnRbKytfdF09W3plLHNlXX0pLHZ0fWZ1bmN0aW9uIEFiKG90LF90KXtyZXR1cm4gZnVuY3Rpb24odnQpe3JldHVybiBvdChfdCh2dCkpfX1mdW5jdGlvbiBqcyhvdCxfdCl7Zm9yKHZhciB2dD0tMSxzZT1vdC5sZW5ndGgsemU9MCxTbj1bXTsrK3Z0PHNlOyl7dmFyIGVpPW90W3Z0XTsoZWk9PT1fdHx8ZWk9PT1yZSkmJihvdFt2dF09cmUsU25bemUrK109dnQpfXJldHVybiBTbn1mdW5jdGlvbiBzaChvdCl7dmFyIF90PS0xLHZ0PUFycmF5KG90LnNpemUpO3JldHVybiBvdC5mb3JFYWNoKGZ1bmN0aW9uKHNlKXt2dFsrK190XT1zZX0pLHZ0fWZ1bmN0aW9uIGJNKG90KXt2YXIgX3Q9LTEsdnQ9QXJyYXkob3Quc2l6ZSk7cmV0dXJuIG90LmZvckVhY2goZnVuY3Rpb24oc2Upe3Z0WysrX3RdPVtzZSxzZV19KSx2dH1mdW5jdGlvbiB4TShvdCxfdCx2dCl7Zm9yKHZhciBzZT12dC0xLHplPW90Lmxlbmd0aDsrK3NlPHplOylpZihvdFtzZV09PT1fdClyZXR1cm4gc2U7cmV0dXJuLTF9ZnVuY3Rpb24gX00ob3QsX3QsdnQpe2Zvcih2YXIgc2U9dnQrMTtzZS0tOylpZihvdFtzZV09PT1fdClyZXR1cm4gc2U7cmV0dXJuIHNlfWZ1bmN0aW9uIEFsKG90KXtyZXR1cm4ga2wob3QpP09NKG90KTp0aChvdCl9ZnVuY3Rpb24gSmEob3Qpe3JldHVybiBrbChvdCk/U00ob3QpOk9iKG90KX1mdW5jdGlvbiBUYihvdCl7Zm9yKHZhciBfdD1vdC5sZW5ndGg7X3QtLSYmb3YudGVzdChvdC5jaGFyQXQoX3QpKTspO3JldHVybiBfdH12YXIgd009cmgoaE0pO2Z1bmN0aW9uIE9NKG90KXtmb3IodmFyIF90PWZ2Lmxhc3RJbmRleD0wO2Z2LnRlc3Qob3QpOykrK190O3JldHVybiBfdH1mdW5jdGlvbiBTTShvdCl7cmV0dXJuIG90Lm1hdGNoKGZ2KXx8W119ZnVuY3Rpb24gRU0ob3Qpe3JldHVybiBvdC5tYXRjaCh4Yil8fFtdfXZhciBNTT1mdW5jdGlvbiBvdChfdCl7X3Q9X3Q9PW51bGw/bHI6Y2guZGVmYXVsdHMobHIuT2JqZWN0KCksX3QsY2gucGljayhscixsTSkpO3ZhciB2dD1fdC5BcnJheSxzZT1fdC5EYXRlLHplPV90LkVycm9yLFNuPV90LkZ1bmN0aW9uLGVpPV90Lk1hdGgsamU9X3QuT2JqZWN0LFN2PV90LlJlZ0V4cCxxbz1fdC5TdHJpbmcsSWE9X3QuVHlwZUVycm9yLGxoPXZ0LnByb3RvdHlwZSxLbz1Tbi5wcm90b3R5cGUsVGw9amUucHJvdG90eXBlLHVoPV90WyJfX2NvcmUtanNfc2hhcmVkX18iXSxmaD1Lby50b1N0cmluZyxGbj1UbC5oYXNPd25Qcm9wZXJ0eSxQYj0wLEV2PWZ1bmN0aW9uKCl7dmFyIHA9L1teLl0rJC8uZXhlYyh1aCYmdWgua2V5cyYmdWgua2V5cy5JRV9QUk9UT3x8IiIpO3JldHVybiBwPyJTeW1ib2woc3JjKV8xLiIrcDoiIn0oKSxkaD1UbC50b1N0cmluZyxoaD1maC5jYWxsKGplKSxrTT1sci5fLHBoPVN2KCJeIitmaC5jYWxsKEZuKS5yZXBsYWNlKFVvLCJcXCQmIikucmVwbGFjZSgvaGFzT3duUHJvcGVydHl8KGZ1bmN0aW9uKS4qPyg/PVxcXCgpfCBmb3IgLis/KD89XFxcXSkvZywiJDEuKj8iKSsiJCIpLHZoPWh2P190LkJ1ZmZlcjokLFFvPV90LlN5bWJvbCxGcz1fdC5VaW50OEFycmF5LENiPXZoP3ZoLmFsbG9jVW5zYWZlOiQsZ2g9QWIoamUuZ2V0UHJvdG90eXBlT2YsamUpLE12PWplLmNyZWF0ZSxQbD1UbC5wcm9wZXJ0eUlzRW51bWVyYWJsZSxDbD1saC5zcGxpY2UsTGI9UW8/UW8uaXNDb25jYXRTcHJlYWRhYmxlOiQsUmM9UW8/UW8uaXRlcmF0b3I6JCxCcz1Rbz9Rby50b1N0cmluZ1RhZzokLFZ1PWZ1bmN0aW9uKCl7dHJ5e3ZhciBwPWFvKGplLCJkZWZpbmVQcm9wZXJ0eSIpO3JldHVybiBwKHt9LCIiLHt9KSxwfWNhdGNoKG0pe319KCksQU09X3QuY2xlYXJUaW1lb3V0IT09bHIuY2xlYXJUaW1lb3V0JiZfdC5jbGVhclRpbWVvdXQsVE09c2UmJnNlLm5vdyE9PWxyLkRhdGUubm93JiZzZS5ub3csUE09X3Quc2V0VGltZW91dCE9PWxyLnNldFRpbWVvdXQmJl90LnNldFRpbWVvdXQseWg9ZWkuY2VpbCxtaD1laS5mbG9vcixOYz1qZS5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMsQ009dmg/dmguaXNCdWZmZXI6JCxSYj1fdC5pc0Zpbml0ZSxMTT1saC5qb2luLFJNPUFiKGplLmtleXMsamUpLG5pPWVpLm1heCxyaT1laS5taW4sTk09c2Uubm93LElNPV90LnBhcnNlSW50LGt2PWVpLnJhbmRvbSxOYj1saC5yZXZlcnNlLEF2PWFvKF90LCJEYXRhVmlldyIpLFh1PWFvKF90LCJNYXAiKSxUdj1hbyhfdCwiUHJvbWlzZSIpLExsPWFvKF90LCJTZXQiKSxVdT1hbyhfdCwiV2Vha01hcCIpLHF1PWFvKGplLCJjcmVhdGUiKSxiaD1VdSYmbmV3IFV1LFJsPXt9LERNPUhzKEF2KSxqTT1IcyhYdSksRk09SHMoVHYpLEJNPUhzKExsKSx6TT1IcyhVdSkseGg9UW8/UW8ucHJvdG90eXBlOiQsS3U9eGg/eGgudmFsdWVPZjokLEliPXhoP3hoLnRvU3RyaW5nOiQ7ZnVuY3Rpb24gWihwKXtpZihfcihwKSYmIVdlKHApJiYhKHAgaW5zdGFuY2VvZiBmbikpe2lmKHAgaW5zdGFuY2VvZiBEYSlyZXR1cm4gcDtpZihGbi5jYWxsKHAsIl9fd3JhcHBlZF9fIikpcmV0dXJuIFNmKHApfXJldHVybiBuZXcgRGEocCl9dmFyIEljPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gcCgpe31yZXR1cm4gZnVuY3Rpb24obSl7aWYoIW1yKG0pKXJldHVybnt9O2lmKE12KXJldHVybiBNdihtKTtwLnByb3RvdHlwZT1tO3ZhciBTPW5ldyBwO3JldHVybiBwLnByb3RvdHlwZT0kLFN9fSgpO2Z1bmN0aW9uIFF1KCl7fWZ1bmN0aW9uIERhKHAsbSl7dGhpcy5fX3dyYXBwZWRfXz1wLHRoaXMuX19hY3Rpb25zX189W10sdGhpcy5fX2NoYWluX189ISFtLHRoaXMuX19pbmRleF9fPTAsdGhpcy5fX3ZhbHVlc19fPSR9Wi50ZW1wbGF0ZVNldHRpbmdzPXtlc2NhcGU6cnYsZXZhbHVhdGU6aXYsaW50ZXJwb2xhdGU6emQsdmFyaWFibGU6IiIsaW1wb3J0czp7XzpafX0sWi5wcm90b3R5cGU9UXUucHJvdG90eXBlLFoucHJvdG90eXBlLmNvbnN0cnVjdG9yPVosRGEucHJvdG90eXBlPUljKFF1LnByb3RvdHlwZSksRGEucHJvdG90eXBlLmNvbnN0cnVjdG9yPURhO2Z1bmN0aW9uIGZuKHApe3RoaXMuX193cmFwcGVkX189cCx0aGlzLl9fYWN0aW9uc19fPVtdLHRoaXMuX19kaXJfXz0xLHRoaXMuX19maWx0ZXJlZF9fPSExLHRoaXMuX19pdGVyYXRlZXNfXz1bXSx0aGlzLl9fdGFrZUNvdW50X189V3IsdGhpcy5fX3ZpZXdzX189W119ZnVuY3Rpb24gV00oKXt2YXIgcD1uZXcgZm4odGhpcy5fX3dyYXBwZWRfXyk7cmV0dXJuIHAuX19hY3Rpb25zX189VmkodGhpcy5fX2FjdGlvbnNfXykscC5fX2Rpcl9fPXRoaXMuX19kaXJfXyxwLl9fZmlsdGVyZWRfXz10aGlzLl9fZmlsdGVyZWRfXyxwLl9faXRlcmF0ZWVzX189VmkodGhpcy5fX2l0ZXJhdGVlc19fKSxwLl9fdGFrZUNvdW50X189dGhpcy5fX3Rha2VDb3VudF9fLHAuX192aWV3c19fPVZpKHRoaXMuX192aWV3c19fKSxwfWZ1bmN0aW9uIEdNKCl7aWYodGhpcy5fX2ZpbHRlcmVkX18pe3ZhciBwPW5ldyBmbih0aGlzKTtwLl9fZGlyX189LTEscC5fX2ZpbHRlcmVkX189ITB9ZWxzZSBwPXRoaXMuY2xvbmUoKSxwLl9fZGlyX18qPS0xO3JldHVybiBwfWZ1bmN0aW9uICRNKCl7dmFyIHA9dGhpcy5fX3dyYXBwZWRfXy52YWx1ZSgpLG09dGhpcy5fX2Rpcl9fLFM9V2UocCksVD1tPDAsQj1TP3AubGVuZ3RoOjAsWT1vaygwLEIsdGhpcy5fX3ZpZXdzX18pLHE9WS5zdGFydCxldD1ZLmVuZCxzdD1ldC1xLEV0PVQ/ZXQ6cS0xLE10PXRoaXMuX19pdGVyYXRlZXNfXyxQdD1NdC5sZW5ndGgsVnQ9MCxkZT1yaShzdCx0aGlzLl9fdGFrZUNvdW50X18pO2lmKCFTfHwhVCYmQj09c3QmJmRlPT1zdClyZXR1cm4gcXYocCx0aGlzLl9fYWN0aW9uc19fKTt2YXIga2U9W107dDpmb3IoO3N0LS0mJlZ0PGRlOyl7RXQrPW07Zm9yKHZhciBYZT0tMSx3ZT1wW0V0XTsrK1hlPFB0Oyl7dmFyIHRuPU10W1hlXSxkbj10bi5pdGVyYXRlZSxIcj10bi50eXBlLG1pPWRuKHdlKTtpZihIcj09Rmkpd2U9bWk7ZWxzZSBpZighbWkpe2lmKEhyPT1kaSljb250aW51ZSB0O2JyZWFrIHR9fWtlW1Z0KytdPXdlfXJldHVybiBrZX1mbi5wcm90b3R5cGU9SWMoUXUucHJvdG90eXBlKSxmbi5wcm90b3R5cGUuY29uc3RydWN0b3I9Zm47ZnVuY3Rpb24gRGMocCl7dmFyIG09LTEsUz1wPT1udWxsPzA6cC5sZW5ndGg7Zm9yKHRoaXMuY2xlYXIoKTsrK208Uzspe3ZhciBUPXBbbV07dGhpcy5zZXQoVFswXSxUWzFdKX19ZnVuY3Rpb24gWk0oKXt0aGlzLl9fZGF0YV9fPXF1P3F1KG51bGwpOnt9LHRoaXMuc2l6ZT0wfWZ1bmN0aW9uIFlNKHApe3ZhciBtPXRoaXMuaGFzKHApJiZkZWxldGUgdGhpcy5fX2RhdGFfX1twXTtyZXR1cm4gdGhpcy5zaXplLT1tPzE6MCxtfWZ1bmN0aW9uIEhNKHApe3ZhciBtPXRoaXMuX19kYXRhX187aWYocXUpe3ZhciBTPW1bcF07cmV0dXJuIFM9PT1ZdD8kOlN9cmV0dXJuIEZuLmNhbGwobSxwKT9tW3BdOiR9ZnVuY3Rpb24gVk0ocCl7dmFyIG09dGhpcy5fX2RhdGFfXztyZXR1cm4gcXU/bVtwXSE9PSQ6Rm4uY2FsbChtLHApfWZ1bmN0aW9uIFhNKHAsbSl7dmFyIFM9dGhpcy5fX2RhdGFfXztyZXR1cm4gdGhpcy5zaXplKz10aGlzLmhhcyhwKT8wOjEsU1twXT1xdSYmbT09PSQ/WXQ6bSx0aGlzfURjLnByb3RvdHlwZS5jbGVhcj1aTSxEYy5wcm90b3R5cGUuZGVsZXRlPVlNLERjLnByb3RvdHlwZS5nZXQ9SE0sRGMucHJvdG90eXBlLmhhcz1WTSxEYy5wcm90b3R5cGUuc2V0PVhNO2Z1bmN0aW9uIE5vKHApe3ZhciBtPS0xLFM9cD09bnVsbD8wOnAubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KyttPFM7KXt2YXIgVD1wW21dO3RoaXMuc2V0KFRbMF0sVFsxXSl9fWZ1bmN0aW9uIFVNKCl7dGhpcy5fX2RhdGFfXz1bXSx0aGlzLnNpemU9MH1mdW5jdGlvbiBxTShwKXt2YXIgbT10aGlzLl9fZGF0YV9fLFM9SnUobSxwKTtpZihTPDApcmV0dXJuITE7dmFyIFQ9bS5sZW5ndGgtMTtyZXR1cm4gUz09VD9tLnBvcCgpOkNsLmNhbGwobSxTLDEpLC0tdGhpcy5zaXplLCEwfWZ1bmN0aW9uIEtNKHApe3ZhciBtPXRoaXMuX19kYXRhX18sUz1KdShtLHApO3JldHVybiBTPDA/JDptW1NdWzFdfWZ1bmN0aW9uIFFNKHApe3JldHVybiBKdSh0aGlzLl9fZGF0YV9fLHApPi0xfWZ1bmN0aW9uIEpNKHAsbSl7dmFyIFM9dGhpcy5fX2RhdGFfXyxUPUp1KFMscCk7cmV0dXJuIFQ8MD8oKyt0aGlzLnNpemUsUy5wdXNoKFtwLG1dKSk6U1tUXVsxXT1tLHRoaXN9Tm8ucHJvdG90eXBlLmNsZWFyPVVNLE5vLnByb3RvdHlwZS5kZWxldGU9cU0sTm8ucHJvdG90eXBlLmdldD1LTSxOby5wcm90b3R5cGUuaGFzPVFNLE5vLnByb3RvdHlwZS5zZXQ9Sk07ZnVuY3Rpb24gSm8ocCl7dmFyIG09LTEsUz1wPT1udWxsPzA6cC5sZW5ndGg7Zm9yKHRoaXMuY2xlYXIoKTsrK208Uzspe3ZhciBUPXBbbV07dGhpcy5zZXQoVFswXSxUWzFdKX19ZnVuY3Rpb24gdGsoKXt0aGlzLnNpemU9MCx0aGlzLl9fZGF0YV9fPXtoYXNoOm5ldyBEYyxtYXA6bmV3KFh1fHxObyksc3RyaW5nOm5ldyBEY319ZnVuY3Rpb24gZWsocCl7dmFyIG09amgodGhpcyxwKS5kZWxldGUocCk7cmV0dXJuIHRoaXMuc2l6ZS09bT8xOjAsbX1mdW5jdGlvbiBuayhwKXtyZXR1cm4gamgodGhpcyxwKS5nZXQocCl9ZnVuY3Rpb24gVm4ocCl7cmV0dXJuIGpoKHRoaXMscCkuaGFzKHApfWZ1bmN0aW9uIFppKHAsbSl7dmFyIFM9amgodGhpcyxwKSxUPVMuc2l6ZTtyZXR1cm4gUy5zZXQocCxtKSx0aGlzLnNpemUrPVMuc2l6ZT09VD8wOjEsdGhpc31Kby5wcm90b3R5cGUuY2xlYXI9dGssSm8ucHJvdG90eXBlLmRlbGV0ZT1layxKby5wcm90b3R5cGUuZ2V0PW5rLEpvLnByb3RvdHlwZS5oYXM9Vm4sSm8ucHJvdG90eXBlLnNldD1aaTtmdW5jdGlvbiBnZShwKXt2YXIgbT0tMSxTPXA9PW51bGw/MDpwLmxlbmd0aDtmb3IodGhpcy5fX2RhdGFfXz1uZXcgSm87KyttPFM7KXRoaXMuYWRkKHBbbV0pfWZ1bmN0aW9uIGlyKHApe3JldHVybiB0aGlzLl9fZGF0YV9fLnNldChwLFl0KSx0aGlzfWZ1bmN0aW9uIERiKHApe3JldHVybiB0aGlzLl9fZGF0YV9fLmhhcyhwKX1nZS5wcm90b3R5cGUuYWRkPWdlLnByb3RvdHlwZS5wdXNoPWlyLGdlLnByb3RvdHlwZS5oYXM9RGI7ZnVuY3Rpb24gbW4ocCl7dmFyIG09dGhpcy5fX2RhdGFfXz1uZXcgTm8ocCk7dGhpcy5zaXplPW0uc2l6ZX1mdW5jdGlvbiBfaCgpe3RoaXMuX19kYXRhX189bmV3IE5vLHRoaXMuc2l6ZT0wfWZ1bmN0aW9uIGFyKHApe3ZhciBtPXRoaXMuX19kYXRhX18sUz1tLmRlbGV0ZShwKTtyZXR1cm4gdGhpcy5zaXplPW0uc2l6ZSxTfWZ1bmN0aW9uIEF0KHApe3JldHVybiB0aGlzLl9fZGF0YV9fLmdldChwKX1mdW5jdGlvbiAkcihwKXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5oYXMocCl9ZnVuY3Rpb24gamIocCxtKXt2YXIgUz10aGlzLl9fZGF0YV9fO2lmKFMgaW5zdGFuY2VvZiBObyl7dmFyIFQ9Uy5fX2RhdGFfXztpZighWHV8fFQubGVuZ3RoPFllLTEpcmV0dXJuIFQucHVzaChbcCxtXSksdGhpcy5zaXplPSsrUy5zaXplLHRoaXM7Uz10aGlzLl9fZGF0YV9fPW5ldyBKbyhUKX1yZXR1cm4gUy5zZXQocCxtKSx0aGlzLnNpemU9Uy5zaXplLHRoaXN9bW4ucHJvdG90eXBlLmNsZWFyPV9oLG1uLnByb3RvdHlwZS5kZWxldGU9YXIsbW4ucHJvdG90eXBlLmdldD1BdCxtbi5wcm90b3R5cGUuaGFzPSRyLG1uLnByb3RvdHlwZS5zZXQ9amI7ZnVuY3Rpb24gUHYocCxtKXt2YXIgUz1XZShwKSxUPSFTJiZxcyhwKSxCPSFTJiYhVCYmc3MocCksWT0hUyYmIVQmJiFCJiZLcyhwKSxxPVN8fFR8fEJ8fFksZXQ9cT9IdShwLmxlbmd0aCxxbyk6W10sc3Q9ZXQubGVuZ3RoO2Zvcih2YXIgRXQgaW4gcCkobXx8Rm4uY2FsbChwLEV0KSkmJiEocSYmKEV0PT0ibGVuZ3RoInx8QiYmKEV0PT0ib2Zmc2V0Inx8RXQ9PSJwYXJlbnQiKXx8WSYmKEV0PT0iYnVmZmVyInx8RXQ9PSJieXRlTGVuZ3RoInx8RXQ9PSJieXRlT2Zmc2V0Iil8fERvKEV0LHN0KSkpJiZldC5wdXNoKEV0KTtyZXR1cm4gZXR9ZnVuY3Rpb24gQ3YocCl7dmFyIG09cC5sZW5ndGg7cmV0dXJuIG0/cFskcygwLG0tMSldOiR9ZnVuY3Rpb24gRmIocCxtKXtyZXR1cm4gRm8oVmkocCksenMobSwwLHAubGVuZ3RoKSl9ZnVuY3Rpb24gQmIocCl7cmV0dXJuIEZvKFZpKHApKX1mdW5jdGlvbiB3aChwLG0sUyl7KFMhPT0kJiYhQWEocFttXSxTKXx8Uz09PSQmJiEobSBpbiBwKSkmJmdpKHAsbSxTKX1mdW5jdGlvbiBObChwLG0sUyl7dmFyIFQ9cFttXTsoIShGbi5jYWxsKHAsbSkmJkFhKFQsUykpfHxTPT09JCYmIShtIGluIHApKSYmZ2kocCxtLFMpfWZ1bmN0aW9uIEp1KHAsbSl7Zm9yKHZhciBTPXAubGVuZ3RoO1MtLTspaWYoQWEocFtTXVswXSxtKSlyZXR1cm4gUztyZXR1cm4tMX1mdW5jdGlvbiB6YihwLG0sUyxUKXtyZXR1cm4gdHMocCxmdW5jdGlvbihCLFkscSl7bShULEIsUyhCKSxxKX0pLFR9ZnVuY3Rpb24gdGYocCxtKXtyZXR1cm4gcCYmbm8obSxZcihtKSxwKX1mdW5jdGlvbiBXYihwLG0pe3JldHVybiBwJiZubyhtLEtpKG0pLHApfWZ1bmN0aW9uIGdpKHAsbSxTKXttPT0iX19wcm90b19fIiYmVnU/VnUocCxtLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx2YWx1ZTpTLHdyaXRhYmxlOiEwfSk6cFttXT1TfWZ1bmN0aW9uIFYocCxtKXtmb3IodmFyIFM9LTEsVD1tLmxlbmd0aCxCPXZ0KFQpLFk9cD09bnVsbDsrK1M8VDspQltTXT1ZPyQ6aXAocCxtW1NdKTtyZXR1cm4gQn1mdW5jdGlvbiB6cyhwLG0sUyl7cmV0dXJuIHA9PT1wJiYoUyE9PSQmJihwPXA8PVM/cDpTKSxtIT09JCYmKHA9cD49bT9wOm0pKSxwfWZ1bmN0aW9uIHdhKHAsbSxTLFQsQixZKXt2YXIgcSxldD1tJld0LHN0PW0mZWUsRXQ9bSZYdDtpZihTJiYocT1CP1MocCxULEIsWSk6UyhwKSkscSE9PSQpcmV0dXJuIHE7aWYoIW1yKHApKXJldHVybiBwO3ZhciBNdD1XZShwKTtpZihNdCl7aWYocT1weChwKSwhZXQpcmV0dXJuIFZpKHAscSl9ZWxzZXt2YXIgUHQ9QWkocCksVnQ9UHQ9PXppfHxQdD09bWE7aWYoc3MocCkpcmV0dXJuIEp2KHAsZXQpO2lmKFB0PT1XaXx8UHQ9PU9yfHxWdCYmIUIpe2lmKHE9c3R8fFZ0P3t9Ok9mKHApLCFldClyZXR1cm4gc3Q/c3gocCxXYihxLHApKTpveChwLHRmKHEscCkpfWVsc2V7aWYoIXJyW1B0XSlyZXR1cm4gQj9wOnt9O3E9dngocCxQdCxldCl9fVl8fChZPW5ldyBtbik7dmFyIGRlPVkuZ2V0KHApO2lmKGRlKXJldHVybiBkZTtZLnNldChwLHEpLFVnKHApP3AuZm9yRWFjaChmdW5jdGlvbih3ZSl7cS5hZGQod2Eod2UsbSxTLHdlLHAsWSkpfSk6bnUocCkmJnAuZm9yRWFjaChmdW5jdGlvbih3ZSx0bil7cS5zZXQodG4sd2Eod2UsbSxTLHRuLHAsWSkpfSk7dmFyIGtlPUV0P3N0P3hmOmJmOnN0P0tpOllyLFhlPU10PyQ6a2UocCk7cmV0dXJuIHVhKFhlfHxwLGZ1bmN0aW9uKHdlLHRuKXtYZSYmKHRuPXdlLHdlPXBbdG5dKSxObChxLHRuLHdhKHdlLG0sUyx0bixwLFkpKX0pLHF9ZnVuY3Rpb24gdGUocCl7dmFyIG09WXIocCk7cmV0dXJuIGZ1bmN0aW9uKFMpe3JldHVybiBqYyhTLHAsbSl9fWZ1bmN0aW9uIGpjKHAsbSxTKXt2YXIgVD1TLmxlbmd0aDtpZihwPT1udWxsKXJldHVybiFUO2ZvcihwPWplKHApO1QtLTspe3ZhciBCPVNbVF0sWT1tW0JdLHE9cFtCXTtpZihxPT09JCYmIShCIGluIHApfHwhWShxKSlyZXR1cm4hMX1yZXR1cm4hMH1mdW5jdGlvbiBMdihwLG0sUyl7aWYodHlwZW9mIHAhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IElhKFJ0KTtyZXR1cm4gSGwoZnVuY3Rpb24oKXtwLmFwcGx5KCQsUyl9LG0pfWZ1bmN0aW9uIElsKHAsbSxTLFQpe3ZhciBCPS0xLFk9TWwscT0hMCxldD1wLmxlbmd0aCxzdD1bXSxFdD1tLmxlbmd0aDtpZighZXQpcmV0dXJuIHN0O1MmJihtPSRuKG0sa2koUykpKSxUPyhZPUpkLHE9ITEpOm0ubGVuZ3RoPj1ZZSYmKFk9TGMscT0hMSxtPW5ldyBnZShtKSk7dDpmb3IoOysrQjxldDspe3ZhciBNdD1wW0JdLFB0PVM9PW51bGw/TXQ6UyhNdCk7aWYoTXQ9VHx8TXQhPT0wP010OjAscSYmUHQ9PT1QdCl7Zm9yKHZhciBWdD1FdDtWdC0tOylpZihtW1Z0XT09PVB0KWNvbnRpbnVlIHQ7c3QucHVzaChNdCl9ZWxzZSBZKG0sUHQsVCl8fHN0LnB1c2goTXQpfXJldHVybiBzdH12YXIgdHM9ZWcodG8pLFJ2PWVnKFNoLCEwKTtmdW5jdGlvbiBHYihwLG0pe3ZhciBTPSEwO3JldHVybiB0cyhwLGZ1bmN0aW9uKFQsQixZKXtyZXR1cm4gUz0hIW0oVCxCLFkpLFN9KSxTfWZ1bmN0aW9uIEZjKHAsbSxTKXtmb3IodmFyIFQ9LTEsQj1wLmxlbmd0aDsrK1Q8Qjspe3ZhciBZPXBbVF0scT1tKFkpO2lmKHEhPW51bGwmJihldD09PSQ/cT09PXEmJiFkYShxKTpTKHEsZXQpKSl2YXIgZXQ9cSxzdD1ZfXJldHVybiBzdH1mdW5jdGlvbiAkYihwLG0sUyxUKXt2YXIgQj1wLmxlbmd0aDtmb3IoUz1WZShTKSxTPDAmJihTPS1TPkI/MDpCK1MpLFQ9VD09PSR8fFQ+Qj9COlZlKFQpLFQ8MCYmKFQrPUIpLFQ9Uz5UPzA6SmcoVCk7UzxUOylwW1MrK109bTtyZXR1cm4gcH1mdW5jdGlvbiBOdihwLG0pe3ZhciBTPVtdO3JldHVybiB0cyhwLGZ1bmN0aW9uKFQsQixZKXttKFQsQixZKSYmUy5wdXNoKFQpfSksU31mdW5jdGlvbiBScihwLG0sUyxULEIpe3ZhciBZPS0xLHE9cC5sZW5ndGg7Zm9yKFN8fChTPWd4KSxCfHwoQj1bXSk7KytZPHE7KXt2YXIgZXQ9cFtZXTttPjAmJlMoZXQpP20+MT9ScihldCxtLTEsUyxULEIpOmZhKEIsZXQpOlR8fChCW0IubGVuZ3RoXT1ldCl9cmV0dXJuIEJ9dmFyIE9oPW5nKCksSXY9bmcoITApO2Z1bmN0aW9uIHRvKHAsbSl7cmV0dXJuIHAmJk9oKHAsbSxZcil9ZnVuY3Rpb24gU2gocCxtKXtyZXR1cm4gcCYmSXYocCxtLFlyKX1mdW5jdGlvbiBlZihwLG0pe3JldHVybiBRYShtLGZ1bmN0aW9uKFMpe3JldHVybiBXYShwW1NdKX0pfWZ1bmN0aW9uIFdzKHAsbSl7bT1ycyhtLHApO2Zvcih2YXIgUz0wLFQ9bS5sZW5ndGg7cCE9bnVsbCYmUzxUOylwPXBbVGkobVtTKytdKV07cmV0dXJuIFMmJlM9PVQ/cDokfWZ1bmN0aW9uIFpiKHAsbSxTKXt2YXIgVD1tKHApO3JldHVybiBXZShwKT9UOmZhKFQsUyhwKSl9ZnVuY3Rpb24gWnIocCl7cmV0dXJuIHA9PW51bGw/cD09PSQ/RGU6R3U6QnMmJkJzIGluIGplKHApP2FrKHApOiRjKHApfWZ1bmN0aW9uIG5mKHAsbSl7cmV0dXJuIHA+bX1mdW5jdGlvbiBEdihwLG0pe3JldHVybiBwIT1udWxsJiZGbi5jYWxsKHAsbSl9ZnVuY3Rpb24ganYocCxtKXtyZXR1cm4gcCE9bnVsbCYmbSBpbiBqZShwKX1mdW5jdGlvbiBGdihwLG0sUyl7cmV0dXJuIHA+PXJpKG0sUykmJnA8bmkobSxTKX1mdW5jdGlvbiByZihwLG0sUyl7Zm9yKHZhciBUPVM/SmQ6TWwsQj1wWzBdLmxlbmd0aCxZPXAubGVuZ3RoLHE9WSxldD12dChZKSxzdD0xLzAsRXQ9W107cS0tOyl7dmFyIE10PXBbcV07cSYmbSYmKE10PSRuKE10LGtpKG0pKSksc3Q9cmkoTXQubGVuZ3RoLHN0KSxldFtxXT0hUyYmKG18fEI+PTEyMCYmTXQubGVuZ3RoPj0xMjApP25ldyBnZShxJiZNdCk6JH1NdD1wWzBdO3ZhciBQdD0tMSxWdD1ldFswXTt0OmZvcig7KytQdDxCJiZFdC5sZW5ndGg8c3Q7KXt2YXIgZGU9TXRbUHRdLGtlPW0/bShkZSk6ZGU7aWYoZGU9U3x8ZGUhPT0wP2RlOjAsIShWdD9MYyhWdCxrZSk6VChFdCxrZSxTKSkpe2ZvcihxPVk7LS1xOyl7dmFyIFhlPWV0W3FdO2lmKCEoWGU/TGMoWGUsa2UpOlQocFtxXSxrZSxTKSkpY29udGludWUgdH1WdCYmVnQucHVzaChrZSksRXQucHVzaChkZSl9fXJldHVybiBFdH1mdW5jdGlvbiBZYihwLG0sUyxUKXtyZXR1cm4gdG8ocCxmdW5jdGlvbihCLFkscSl7bShULFMoQiksWSxxKX0pLFR9ZnVuY3Rpb24gRGwocCxtLFMpe209cnMobSxwKSxwPWhnKHAsbSk7dmFyIFQ9cD09bnVsbD9wOnBbVGkoWGkobSkpXTtyZXR1cm4gVD09bnVsbD8kOkxyKFQscCxTKX1mdW5jdGlvbiBHcyhwKXtyZXR1cm4gX3IocCkmJlpyKHApPT1Pcn1mdW5jdGlvbiBIYihwKXtyZXR1cm4gX3IocCkmJlpyKHApPT1Qc31mdW5jdGlvbiBWYihwKXtyZXR1cm4gX3IocCkmJlpyKHApPT1Bc31mdW5jdGlvbiBlcyhwLG0sUyxULEIpe3JldHVybiBwPT09bT8hMDpwPT1udWxsfHxtPT1udWxsfHwhX3IocCkmJiFfcihtKT9wIT09cCYmbSE9PW06WGIocCxtLFMsVCxlcyxCKX1mdW5jdGlvbiBYYihwLG0sUyxULEIsWSl7dmFyIHE9V2UocCksZXQ9V2UobSksc3Q9cT95bjpBaShwKSxFdD1ldD95bjpBaShtKTtzdD1zdD09T3I/V2k6c3QsRXQ9RXQ9PU9yP1dpOkV0O3ZhciBNdD1zdD09V2ksUHQ9RXQ9PVdpLFZ0PXN0PT1FdDtpZihWdCYmc3MocCkpe2lmKCFzcyhtKSlyZXR1cm4hMTtxPSEwLE10PSExfWlmKFZ0JiYhTXQpcmV0dXJuIFl8fChZPW5ldyBtbikscXx8S3MocCk/ZHgocCxtLFMsVCxCLFkpOmlrKHAsbSxzdCxTLFQsQixZKTtpZighKFMma3QpKXt2YXIgZGU9TXQmJkZuLmNhbGwocCwiX193cmFwcGVkX18iKSxrZT1QdCYmRm4uY2FsbChtLCJfX3dyYXBwZWRfXyIpO2lmKGRlfHxrZSl7dmFyIFhlPWRlP3AudmFsdWUoKTpwLHdlPWtlP20udmFsdWUoKTptO3JldHVybiBZfHwoWT1uZXcgbW4pLEIoWGUsd2UsUyxULFkpfX1yZXR1cm4gVnQ/KFl8fChZPW5ldyBtbiksY2cocCxtLFMsVCxCLFkpKTohMX1mdW5jdGlvbiBVYihwKXtyZXR1cm4gX3IocCkmJkFpKHApPT1faX1mdW5jdGlvbiBFaChwLG0sUyxUKXt2YXIgQj1TLmxlbmd0aCxZPUIscT0hVDtpZihwPT1udWxsKXJldHVybiFZO2ZvcihwPWplKHApO0ItLTspe3ZhciBldD1TW0JdO2lmKHEmJmV0WzJdP2V0WzFdIT09cFtldFswXV06IShldFswXWluIHApKXJldHVybiExfWZvcig7KytCPFk7KXtldD1TW0JdO3ZhciBzdD1ldFswXSxFdD1wW3N0XSxNdD1ldFsxXTtpZihxJiZldFsyXSl7aWYoRXQ9PT0kJiYhKHN0IGluIHApKXJldHVybiExfWVsc2V7dmFyIFB0PW5ldyBtbjtpZihUKXZhciBWdD1UKEV0LE10LHN0LHAsbSxQdCk7aWYoIShWdD09PSQ/ZXMoTXQsRXQsa3R8U3QsVCxQdCk6VnQpKXJldHVybiExfX1yZXR1cm4hMH1mdW5jdGlvbiBCdihwKXtpZighbXIocCl8fHl4KHApKXJldHVybiExO3ZhciBtPVdhKHApP3BoOmVyO3JldHVybiBtLnRlc3QoSHMocCkpfWZ1bmN0aW9uIHFiKHApe3JldHVybiBfcihwKSYmWnIocCk9PUVlfWZ1bmN0aW9uIEtiKHApe3JldHVybiBfcihwKSYmQWkocCk9PXh0fWZ1bmN0aW9uIFFiKHApe3JldHVybiBfcihwKSYmamYocC5sZW5ndGgpJiYhIWNyW1pyKHApXX1mdW5jdGlvbiBqbChwKXtyZXR1cm4gdHlwZW9mIHA9PSJmdW5jdGlvbiI/cDpwPT1udWxsP3lpOnR5cGVvZiBwPT0ib2JqZWN0Ij9XZShwKT9HdihwWzBdLHBbMV0pOld2KHApOnl5KHApfWZ1bmN0aW9uIGVvKHApe2lmKCEkbChwKSlyZXR1cm4gUk0ocCk7dmFyIG09W107Zm9yKHZhciBTIGluIGplKHApKUZuLmNhbGwocCxTKSYmUyE9ImNvbnN0cnVjdG9yIiYmbS5wdXNoKFMpO3JldHVybiBtfWZ1bmN0aW9uIE1oKHApe2lmKCFtcihwKSlyZXR1cm4gQmgocCk7dmFyIG09JGwocCksUz1bXTtmb3IodmFyIFQgaW4gcClUPT0iY29uc3RydWN0b3IiJiYobXx8IUZuLmNhbGwocCxUKSl8fFMucHVzaChUKTtyZXR1cm4gU31mdW5jdGlvbiBhZihwLG0pe3JldHVybiBwPG19ZnVuY3Rpb24genYocCxtKXt2YXIgUz0tMSxUPUNpKHApP3Z0KHAubGVuZ3RoKTpbXTtyZXR1cm4gdHMocCxmdW5jdGlvbihCLFkscSl7VFsrK1NdPW0oQixZLHEpfSksVH1mdW5jdGlvbiBXdihwKXt2YXIgbT1sZyhwKTtyZXR1cm4gbS5sZW5ndGg9PTEmJm1bMF1bMl0/WmwobVswXVswXSxtWzBdWzFdKTpmdW5jdGlvbihTKXtyZXR1cm4gUz09PXB8fEVoKFMscCxtKX19ZnVuY3Rpb24gR3YocCxtKXtyZXR1cm4gb28ocCkmJmR0KG0pP1psKFRpKHApLG0pOmZ1bmN0aW9uKFMpe3ZhciBUPWlwKFMscCk7cmV0dXJuIFQ9PT0kJiZUPT09bT9hcChTLHApOmVzKG0sVCxrdHxTdCl9fWZ1bmN0aW9uIEZsKHAsbSxTLFQsQil7cCE9PW0mJk9oKG0sZnVuY3Rpb24oWSxxKXtpZihCfHwoQj1uZXcgbW4pLG1yKFkpKUpiKHAsbSxxLFMsRmwsVCxCKTtlbHNle3ZhciBldD1UP1QoWWwocCxxKSxZLHErIiIscCxtLEIpOiQ7ZXQ9PT0kJiYoZXQ9WSksd2gocCxxLGV0KX19LEtpKX1mdW5jdGlvbiBKYihwLG0sUyxULEIsWSxxKXt2YXIgZXQ9WWwocCxTKSxzdD1ZbChtLFMpLEV0PXEuZ2V0KHN0KTtpZihFdCl7d2gocCxTLEV0KTtyZXR1cm59dmFyIE10PVk/WShldCxzdCxTKyIiLHAsbSxxKTokLFB0PU10PT09JDtpZihQdCl7dmFyIFZ0PVdlKHN0KSxkZT0hVnQmJnNzKHN0KSxrZT0hVnQmJiFkZSYmS3Moc3QpO010PXN0LFZ0fHxkZXx8a2U/V2UoZXQpP010PWV0OmJuKGV0KT9NdD1WaShldCk6ZGU/KFB0PSExLE10PUp2KHN0LCEwKSk6a2U/KFB0PSExLE10PUNoKHN0LCEwKSk6TXQ9W106Y3Moc3QpfHxxcyhzdCk/KE10PWV0LHFzKGV0KT9NdD11cihldCk6KCFtcihldCl8fFdhKGV0KSkmJihNdD1PZihzdCkpKTpQdD0hMX1QdCYmKHEuc2V0KHN0LE10KSxCKE10LHN0LFQsWSxxKSxxLmRlbGV0ZShzdCkpLHdoKHAsUyxNdCl9ZnVuY3Rpb24gJHYocCxtKXt2YXIgUz1wLmxlbmd0aDtpZihTKXJldHVybiBtKz1tPDA/UzowLERvKG0sUyk/cFttXTokfWZ1bmN0aW9uIGtoKHAsbSxTKXttLmxlbmd0aD9tPSRuKG0sZnVuY3Rpb24oWSl7cmV0dXJuIFdlKFkpP2Z1bmN0aW9uKHEpe3JldHVybiBXcyhxLFkubGVuZ3RoPT09MT9ZWzBdOlkpfTpZfSk6bT1beWldO3ZhciBUPS0xO209JG4obSxraShQZSgpKSk7dmFyIEI9enYocCxmdW5jdGlvbihZLHEsZXQpe3ZhciBzdD0kbihtLGZ1bmN0aW9uKEV0KXtyZXR1cm4gRXQoWSl9KTtyZXR1cm57Y3JpdGVyaWE6c3QsaW5kZXg6KytULHZhbHVlOll9fSk7cmV0dXJuIFNiKEIsZnVuY3Rpb24oWSxxKXtyZXR1cm4gZGYoWSxxLFMpfSl9ZnVuY3Rpb24gdHgocCxtKXtyZXR1cm4gTnIocCxtLGZ1bmN0aW9uKFMsVCl7cmV0dXJuIGFwKHAsVCl9KX1mdW5jdGlvbiBOcihwLG0sUyl7Zm9yKHZhciBUPS0xLEI9bS5sZW5ndGgsWT17fTsrK1Q8Qjspe3ZhciBxPW1bVF0sZXQ9V3MocCxxKTtTKGV0LHEpJiZacyhZLHJzKHEscCksZXQpfXJldHVybiBZfWZ1bmN0aW9uIG9mKHApe3JldHVybiBmdW5jdGlvbihtKXtyZXR1cm4gV3MobSxwKX19ZnVuY3Rpb24gQmMocCxtLFMsVCl7dmFyIEI9VD9idjpDYyxZPS0xLHE9bS5sZW5ndGgsZXQ9cDtmb3IocD09PW0mJihtPVZpKG0pKSxTJiYoZXQ9JG4ocCxraShTKSkpOysrWTxxOylmb3IodmFyIHN0PTAsRXQ9bVtZXSxNdD1TP1MoRXQpOkV0OyhzdD1CKGV0LE10LHN0LFQpKT4tMTspZXQhPT1wJiZDbC5jYWxsKGV0LHN0LDEpLENsLmNhbGwocCxzdCwxKTtyZXR1cm4gcH1mdW5jdGlvbiBadihwLG0pe2Zvcih2YXIgUz1wP20ubGVuZ3RoOjAsVD1TLTE7Uy0tOyl7dmFyIEI9bVtTXTtpZihTPT1UfHxCIT09WSl7dmFyIFk9QjtEbyhCKT9DbC5jYWxsKHAsQiwxKTpBaChwLEIpfX1yZXR1cm4gcH1mdW5jdGlvbiAkcyhwLG0pe3JldHVybiBwK21oKGt2KCkqKG0tcCsxKSl9ZnVuY3Rpb24gZXgocCxtLFMsVCl7Zm9yKHZhciBCPS0xLFk9bmkoeWgoKG0tcCkvKFN8fDEpKSwwKSxxPXZ0KFkpO1ktLTspcVtUP1k6KytCXT1wLHArPVM7cmV0dXJuIHF9ZnVuY3Rpb24gc2YocCxtKXt2YXIgUz0iIjtpZighcHx8bTwxfHxtPnJ0KXJldHVybiBTO2RvIG0lMiYmKFMrPXApLG09bWgobS8yKSxtJiYocCs9cCk7d2hpbGUobSk7cmV0dXJuIFN9ZnVuY3Rpb24gSmUocCxtKXtyZXR1cm4gYXMoZGcocCxtLHlpKSxwKyIiKX1mdW5jdGlvbiBueChwKXtyZXR1cm4gQ3YocWMocCkpfWZ1bmN0aW9uIGNmKHAsbSl7dmFyIFM9cWMocCk7cmV0dXJuIEZvKFMsenMobSwwLFMubGVuZ3RoKSl9ZnVuY3Rpb24gWnMocCxtLFMsVCl7aWYoIW1yKHApKXJldHVybiBwO209cnMobSxwKTtmb3IodmFyIEI9LTEsWT1tLmxlbmd0aCxxPVktMSxldD1wO2V0IT1udWxsJiYrK0I8WTspe3ZhciBzdD1UaShtW0JdKSxFdD1TO2lmKHN0PT09Il9fcHJvdG9fXyJ8fHN0PT09ImNvbnN0cnVjdG9yInx8c3Q9PT0icHJvdG90eXBlIilyZXR1cm4gcDtpZihCIT1xKXt2YXIgTXQ9ZXRbc3RdO0V0PVQ/VChNdCxzdCxldCk6JCxFdD09PSQmJihFdD1tcihNdCk/TXQ6RG8obVtCKzFdKT9bXTp7fSl9TmwoZXQsc3QsRXQpLGV0PWV0W3N0XX1yZXR1cm4gcH12YXIgWXY9Ymg/ZnVuY3Rpb24ocCxtKXtyZXR1cm4gYmguc2V0KHAsbSkscH06eWksSHY9VnU/ZnVuY3Rpb24ocCxtKXtyZXR1cm4gVnUocCwidG9TdHJpbmciLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMSx2YWx1ZTpvdShtKSx3cml0YWJsZTohMH0pfTp5aTtmdW5jdGlvbiByeChwKXtyZXR1cm4gRm8ocWMocCkpfWZ1bmN0aW9uIFlpKHAsbSxTKXt2YXIgVD0tMSxCPXAubGVuZ3RoO208MCYmKG09LW0+Qj8wOkIrbSksUz1TPkI/QjpTLFM8MCYmKFMrPUIpLEI9bT5TPzA6Uy1tPj4+MCxtPj4+PTA7Zm9yKHZhciBZPXZ0KEIpOysrVDxCOylZW1RdPXBbVCttXTtyZXR1cm4gWX1mdW5jdGlvbiBpeChwLG0pe3ZhciBTO3JldHVybiB0cyhwLGZ1bmN0aW9uKFQsQixZKXtyZXR1cm4gUz1tKFQsQixZKSwhU30pLCEhU31mdW5jdGlvbiBCbChwLG0sUyl7dmFyIFQ9MCxCPXA9PW51bGw/VDpwLmxlbmd0aDtpZih0eXBlb2YgbT09Im51bWJlciImJm09PT1tJiZCPD1vYSl7Zm9yKDtUPEI7KXt2YXIgWT1UK0I+Pj4xLHE9cFtZXTtxIT09bnVsbCYmIWRhKHEpJiYoUz9xPD1tOnE8bSk/VD1ZKzE6Qj1ZfXJldHVybiBCfXJldHVybiBsZihwLG0seWksUyl9ZnVuY3Rpb24gbGYocCxtLFMsVCl7dmFyIEI9MCxZPXA9PW51bGw/MDpwLmxlbmd0aDtpZihZPT09MClyZXR1cm4gMDttPVMobSk7Zm9yKHZhciBxPW0hPT1tLGV0PW09PT1udWxsLHN0PWRhKG0pLEV0PW09PT0kO0I8WTspe3ZhciBNdD1taCgoQitZKS8yKSxQdD1TKHBbTXRdKSxWdD1QdCE9PSQsZGU9UHQ9PT1udWxsLGtlPVB0PT09UHQsWGU9ZGEoUHQpO2lmKHEpdmFyIHdlPVR8fGtlO2Vsc2UgRXQ/d2U9a2UmJihUfHxWdCk6ZXQ/d2U9a2UmJlZ0JiYoVHx8IWRlKTpzdD93ZT1rZSYmVnQmJiFkZSYmKFR8fCFYZSk6ZGV8fFhlP3dlPSExOndlPVQ/UHQ8PW06UHQ8bTt3ZT9CPU10KzE6WT1NdH1yZXR1cm4gcmkoWSx5YSl9ZnVuY3Rpb24gVnYocCxtKXtmb3IodmFyIFM9LTEsVD1wLmxlbmd0aCxCPTAsWT1bXTsrK1M8VDspe3ZhciBxPXBbU10sZXQ9bT9tKHEpOnE7aWYoIVN8fCFBYShldCxzdCkpe3ZhciBzdD1ldDtZW0IrK109cT09PTA/MDpxfX1yZXR1cm4gWX1mdW5jdGlvbiBYdihwKXtyZXR1cm4gdHlwZW9mIHA9PSJudW1iZXIiP3A6ZGEocCk/Qmk6K3B9ZnVuY3Rpb24gSGkocCl7aWYodHlwZW9mIHA9PSJzdHJpbmciKXJldHVybiBwO2lmKFdlKHApKXJldHVybiAkbihwLEhpKSsiIjtpZihkYShwKSlyZXR1cm4gSWI/SWIuY2FsbChwKToiIjt2YXIgbT1wKyIiO3JldHVybiBtPT0iMCImJjEvcD09LXRyPyItMCI6bX1mdW5jdGlvbiBucyhwLG0sUyl7dmFyIFQ9LTEsQj1NbCxZPXAubGVuZ3RoLHE9ITAsZXQ9W10sc3Q9ZXQ7aWYoUylxPSExLEI9SmQ7ZWxzZSBpZihZPj1ZZSl7dmFyIEV0PW0/bnVsbDp1eChwKTtpZihFdClyZXR1cm4gc2goRXQpO3E9ITEsQj1MYyxzdD1uZXcgZ2V9ZWxzZSBzdD1tP1tdOmV0O3Q6Zm9yKDsrK1Q8WTspe3ZhciBNdD1wW1RdLFB0PW0/bShNdCk6TXQ7aWYoTXQ9U3x8TXQhPT0wP010OjAscSYmUHQ9PT1QdCl7Zm9yKHZhciBWdD1zdC5sZW5ndGg7VnQtLTspaWYoc3RbVnRdPT09UHQpY29udGludWUgdDttJiZzdC5wdXNoKFB0KSxldC5wdXNoKE10KX1lbHNlIEIoc3QsUHQsUyl8fChzdCE9PWV0JiZzdC5wdXNoKFB0KSxldC5wdXNoKE10KSl9cmV0dXJuIGV0fWZ1bmN0aW9uIEFoKHAsbSl7cmV0dXJuIG09cnMobSxwKSxwPWhnKHAsbSkscD09bnVsbHx8ZGVsZXRlIHBbVGkoWGkobSkpXX1mdW5jdGlvbiBVdihwLG0sUyxUKXtyZXR1cm4gWnMocCxtLFMoV3MocCxtKSksVCl9ZnVuY3Rpb24gdWYocCxtLFMsVCl7Zm9yKHZhciBCPXAubGVuZ3RoLFk9VD9COi0xOyhUP1ktLTorK1k8QikmJm0ocFtZXSxZLHApOyk7cmV0dXJuIFM/WWkocCxUPzA6WSxUP1krMTpCKTpZaShwLFQ/WSsxOjAsVD9COlkpfWZ1bmN0aW9uIHF2KHAsbSl7dmFyIFM9cDtyZXR1cm4gUyBpbnN0YW5jZW9mIGZuJiYoUz1TLnZhbHVlKCkpLFBjKG0sZnVuY3Rpb24oVCxCKXtyZXR1cm4gQi5mdW5jLmFwcGx5KEIudGhpc0FyZyxmYShbVF0sQi5hcmdzKSl9LFMpfWZ1bmN0aW9uIEVuKHAsbSxTKXt2YXIgVD1wLmxlbmd0aDtpZihUPDIpcmV0dXJuIFQ/bnMocFswXSk6W107Zm9yKHZhciBCPS0xLFk9dnQoVCk7KytCPFQ7KWZvcih2YXIgcT1wW0JdLGV0PS0xOysrZXQ8VDspZXQhPUImJihZW0JdPUlsKFlbQl18fHEscFtldF0sbSxTKSk7cmV0dXJuIG5zKFJyKFksMSksbSxTKX1mdW5jdGlvbiBLdihwLG0sUyl7Zm9yKHZhciBUPS0xLEI9cC5sZW5ndGgsWT1tLmxlbmd0aCxxPXt9OysrVDxCOyl7dmFyIGV0PVQ8WT9tW1RdOiQ7UyhxLHBbVF0sZXQpfXJldHVybiBxfWZ1bmN0aW9uIFRoKHApe3JldHVybiBibihwKT9wOltdfWZ1bmN0aW9uIGZmKHApe3JldHVybiB0eXBlb2YgcD09ImZ1bmN0aW9uIj9wOnlpfWZ1bmN0aW9uIHJzKHAsbSl7cmV0dXJuIFdlKHApP3A6b28ocCxtKT9bcF06a24oR2UocCkpfXZhciBRdj1KZTtmdW5jdGlvbiBYbihwLG0sUyl7dmFyIFQ9cC5sZW5ndGg7cmV0dXJuIFM9Uz09PSQ/VDpTLCFtJiZTPj1UP3A6WWkocCxtLFMpfXZhciB6bD1BTXx8ZnVuY3Rpb24ocCl7cmV0dXJuIGxyLmNsZWFyVGltZW91dChwKX07ZnVuY3Rpb24gSnYocCxtKXtpZihtKXJldHVybiBwLnNsaWNlKCk7dmFyIFM9cC5sZW5ndGgsVD1DYj9DYihTKTpuZXcgcC5jb25zdHJ1Y3RvcihTKTtyZXR1cm4gcC5jb3B5KFQpLFR9ZnVuY3Rpb24gS3QocCl7dmFyIG09bmV3IHAuY29uc3RydWN0b3IocC5ieXRlTGVuZ3RoKTtyZXR1cm4gbmV3IEZzKG0pLnNldChuZXcgRnMocCkpLG19ZnVuY3Rpb24gdGcocCxtKXt2YXIgUz1tP0t0KHAuYnVmZmVyKTpwLmJ1ZmZlcjtyZXR1cm4gbmV3IHAuY29uc3RydWN0b3IoUyxwLmJ5dGVPZmZzZXQscC5ieXRlTGVuZ3RoKX1mdW5jdGlvbiBheChwKXt2YXIgbT1uZXcgcC5jb25zdHJ1Y3RvcihwLnNvdXJjZSwkZC5leGVjKHApKTtyZXR1cm4gbS5sYXN0SW5kZXg9cC5sYXN0SW5kZXgsbX1mdW5jdGlvbiBQaChwKXtyZXR1cm4gS3U/amUoS3UuY2FsbChwKSk6e319ZnVuY3Rpb24gQ2gocCxtKXt2YXIgUz1tP0t0KHAuYnVmZmVyKTpwLmJ1ZmZlcjtyZXR1cm4gbmV3IHAuY29uc3RydWN0b3IoUyxwLmJ5dGVPZmZzZXQscC5sZW5ndGgpfWZ1bmN0aW9uIGxpKHAsbSl7aWYocCE9PW0pe3ZhciBTPXAhPT0kLFQ9cD09PW51bGwsQj1wPT09cCxZPWRhKHApLHE9bSE9PSQsZXQ9bT09PW51bGwsc3Q9bT09PW0sRXQ9ZGEobSk7aWYoIWV0JiYhRXQmJiFZJiZwPm18fFkmJnEmJnN0JiYhZXQmJiFFdHx8VCYmcSYmc3R8fCFTJiZzdHx8IUIpcmV0dXJuIDE7aWYoIVQmJiFZJiYhRXQmJnA8bXx8RXQmJlMmJkImJiFUJiYhWXx8ZXQmJlMmJkJ8fCFxJiZCfHwhc3QpcmV0dXJuLTF9cmV0dXJuIDB9ZnVuY3Rpb24gZGYocCxtLFMpe2Zvcih2YXIgVD0tMSxCPXAuY3JpdGVyaWEsWT1tLmNyaXRlcmlhLHE9Qi5sZW5ndGgsZXQ9Uy5sZW5ndGg7KytUPHE7KXt2YXIgc3Q9bGkoQltUXSxZW1RdKTtpZihzdCl7aWYoVD49ZXQpcmV0dXJuIHN0O3ZhciBFdD1TW1RdO3JldHVybiBzdCooRXQ9PSJkZXNjIj8tMToxKX19cmV0dXJuIHAuaW5kZXgtbS5pbmRleH1mdW5jdGlvbiBMaChwLG0sUyxUKXtmb3IodmFyIEI9LTEsWT1wLmxlbmd0aCxxPVMubGVuZ3RoLGV0PS0xLHN0PW0ubGVuZ3RoLEV0PW5pKFktcSwwKSxNdD12dChzdCtFdCksUHQ9IVQ7KytldDxzdDspTXRbZXRdPW1bZXRdO2Zvcig7KytCPHE7KShQdHx8QjxZKSYmKE10W1NbQl1dPXBbQl0pO2Zvcig7RXQtLTspTXRbZXQrK109cFtCKytdO3JldHVybiBNdH1mdW5jdGlvbiBSaChwLG0sUyxUKXtmb3IodmFyIEI9LTEsWT1wLmxlbmd0aCxxPS0xLGV0PVMubGVuZ3RoLHN0PS0xLEV0PW0ubGVuZ3RoLE10PW5pKFktZXQsMCksUHQ9dnQoTXQrRXQpLFZ0PSFUOysrQjxNdDspUHRbQl09cFtCXTtmb3IodmFyIGRlPUI7KytzdDxFdDspUHRbZGUrc3RdPW1bc3RdO2Zvcig7KytxPGV0OykoVnR8fEI8WSkmJihQdFtkZStTW3FdXT1wW0IrK10pO3JldHVybiBQdH1mdW5jdGlvbiBWaShwLG0pe3ZhciBTPS0xLFQ9cC5sZW5ndGg7Zm9yKG18fChtPXZ0KFQpKTsrK1M8VDspbVtTXT1wW1NdO3JldHVybiBtfWZ1bmN0aW9uIG5vKHAsbSxTLFQpe3ZhciBCPSFTO1N8fChTPXt9KTtmb3IodmFyIFk9LTEscT1tLmxlbmd0aDsrK1k8cTspe3ZhciBldD1tW1ldLHN0PVQ/VChTW2V0XSxwW2V0XSxldCxTLHApOiQ7c3Q9PT0kJiYoc3Q9cFtldF0pLEI/Z2koUyxldCxzdCk6TmwoUyxldCxzdCl9cmV0dXJuIFN9ZnVuY3Rpb24gb3gocCxtKXtyZXR1cm4gbm8ocCx1ZyhwKSxtKX1mdW5jdGlvbiBzeChwLG0pe3JldHVybiBubyhwLGh4KHApLG0pfWZ1bmN0aW9uIGhmKHAsbSl7cmV0dXJuIGZ1bmN0aW9uKFMsVCl7dmFyIEI9V2UoUyk/SXM6emIsWT1tP20oKTp7fTtyZXR1cm4gQihTLHAsUGUoVCwyKSxZKX19ZnVuY3Rpb24gemMocCl7cmV0dXJuIEplKGZ1bmN0aW9uKG0sUyl7dmFyIFQ9LTEsQj1TLmxlbmd0aCxZPUI+MT9TW0ItMV06JCxxPUI+Mj9TWzJdOiQ7Zm9yKFk9cC5sZW5ndGg+MyYmdHlwZW9mIFk9PSJmdW5jdGlvbiI/KEItLSxZKTokLHEmJk1uKFNbMF0sU1sxXSxxKSYmKFk9QjwzPyQ6WSxCPTEpLG09amUobSk7KytUPEI7KXt2YXIgZXQ9U1tUXTtldCYmcChtLGV0LFQsWSl9cmV0dXJuIG19KX1mdW5jdGlvbiBlZyhwLG0pe3JldHVybiBmdW5jdGlvbihTLFQpe2lmKFM9PW51bGwpcmV0dXJuIFM7aWYoIUNpKFMpKXJldHVybiBwKFMsVCk7Zm9yKHZhciBCPVMubGVuZ3RoLFk9bT9COi0xLHE9amUoUyk7KG0/WS0tOisrWTxCKSYmVChxW1ldLFkscSkhPT0hMTspO3JldHVybiBTfX1mdW5jdGlvbiBuZyhwKXtyZXR1cm4gZnVuY3Rpb24obSxTLFQpe2Zvcih2YXIgQj0tMSxZPWplKG0pLHE9VChtKSxldD1xLmxlbmd0aDtldC0tOyl7dmFyIHN0PXFbcD9ldDorK0JdO2lmKFMoWVtzdF0sc3QsWSk9PT0hMSlicmVha31yZXR1cm4gbX19ZnVuY3Rpb24gcmcocCxtLFMpe3ZhciBUPW0mYnQsQj1wZihwKTtmdW5jdGlvbiBZKCl7dmFyIHE9dGhpcyYmdGhpcyE9PWxyJiZ0aGlzIGluc3RhbmNlb2YgWT9COnA7cmV0dXJuIHEuYXBwbHkoVD9TOnRoaXMsYXJndW1lbnRzKX1yZXR1cm4gWX1mdW5jdGlvbiBOaChwKXtyZXR1cm4gZnVuY3Rpb24obSl7bT1HZShtKTt2YXIgUz1rbChtKT9KYShtKTokLFQ9Uz9TWzBdOm0uY2hhckF0KDApLEI9Uz9YbihTLDEpLmpvaW4oIiIpOm0uc2xpY2UoMSk7cmV0dXJuIFRbcF0oKStCfX1mdW5jdGlvbiBXYyhwKXtyZXR1cm4gZnVuY3Rpb24obSl7cmV0dXJuIFBjKCRmKGx5KG0pLnJlcGxhY2Uob00sIiIpKSxwLCIiKX19ZnVuY3Rpb24gcGYocCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG09YXJndW1lbnRzO3N3aXRjaChtLmxlbmd0aCl7Y2FzZSAwOnJldHVybiBuZXcgcDtjYXNlIDE6cmV0dXJuIG5ldyBwKG1bMF0pO2Nhc2UgMjpyZXR1cm4gbmV3IHAobVswXSxtWzFdKTtjYXNlIDM6cmV0dXJuIG5ldyBwKG1bMF0sbVsxXSxtWzJdKTtjYXNlIDQ6cmV0dXJuIG5ldyBwKG1bMF0sbVsxXSxtWzJdLG1bM10pO2Nhc2UgNTpyZXR1cm4gbmV3IHAobVswXSxtWzFdLG1bMl0sbVszXSxtWzRdKTtjYXNlIDY6cmV0dXJuIG5ldyBwKG1bMF0sbVsxXSxtWzJdLG1bM10sbVs0XSxtWzVdKTtjYXNlIDc6cmV0dXJuIG5ldyBwKG1bMF0sbVsxXSxtWzJdLG1bM10sbVs0XSxtWzVdLG1bNl0pfXZhciBTPUljKHAucHJvdG90eXBlKSxUPXAuYXBwbHkoUyxtKTtyZXR1cm4gbXIoVCk/VDpTfX1mdW5jdGlvbiByayhwLG0sUyl7dmFyIFQ9cGYocCk7ZnVuY3Rpb24gQigpe2Zvcih2YXIgWT1hcmd1bWVudHMubGVuZ3RoLHE9dnQoWSksZXQ9WSxzdD1HYyhCKTtldC0tOylxW2V0XT1hcmd1bWVudHNbZXRdO3ZhciBFdD1ZPDMmJnFbMF0hPT1zdCYmcVtZLTFdIT09c3Q/W106anMocSxzdCk7aWYoWS09RXQubGVuZ3RoLFk8UylyZXR1cm4gRGgocCxtLHZmLEIucGxhY2Vob2xkZXIsJCxxLEV0LCQsJCxTLVkpO3ZhciBNdD10aGlzJiZ0aGlzIT09bHImJnRoaXMgaW5zdGFuY2VvZiBCP1Q6cDtyZXR1cm4gTHIoTXQsdGhpcyxxKX1yZXR1cm4gQn1mdW5jdGlvbiBpZyhwKXtyZXR1cm4gZnVuY3Rpb24obSxTLFQpe3ZhciBCPWplKG0pO2lmKCFDaShtKSl7dmFyIFk9UGUoUywzKTttPVlyKG0pLFM9ZnVuY3Rpb24oZXQpe3JldHVybiBZKEJbZXRdLGV0LEIpfX12YXIgcT1wKG0sUyxUKTtyZXR1cm4gcT4tMT9CW1k/bVtxXTpxXTokfX1mdW5jdGlvbiBJaChwKXtyZXR1cm4gaW8oZnVuY3Rpb24obSl7dmFyIFM9bS5sZW5ndGgsVD1TLEI9RGEucHJvdG90eXBlLnRocnU7Zm9yKHAmJm0ucmV2ZXJzZSgpO1QtLTspe3ZhciBZPW1bVF07aWYodHlwZW9mIFkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IElhKFJ0KTtpZihCJiYhcSYmd2YoWSk9PSJ3cmFwcGVyIil2YXIgcT1uZXcgRGEoW10sITApfWZvcihUPXE/VDpTOysrVDxTOyl7WT1tW1RdO3ZhciBldD13ZihZKSxzdD1ldD09IndyYXBwZXIiP19mKFkpOiQ7c3QmJmpvKHN0WzBdKSYmc3RbMV09PShnbnxfZXxVZXxybikmJiFzdFs0XS5sZW5ndGgmJnN0WzldPT0xP3E9cVt3ZihzdFswXSldLmFwcGx5KHEsc3RbM10pOnE9WS5sZW5ndGg9PTEmJmpvKFkpP3FbZXRdKCk6cS50aHJ1KFkpfXJldHVybiBmdW5jdGlvbigpe3ZhciBFdD1hcmd1bWVudHMsTXQ9RXRbMF07aWYocSYmRXQubGVuZ3RoPT0xJiZXZShNdCkpcmV0dXJuIHEucGxhbnQoTXQpLnZhbHVlKCk7Zm9yKHZhciBQdD0wLFZ0PVM/bVtQdF0uYXBwbHkodGhpcyxFdCk6TXQ7KytQdDxTOylWdD1tW1B0XS5jYWxsKHRoaXMsVnQpO3JldHVybiBWdH19KX1mdW5jdGlvbiB2ZihwLG0sUyxULEIsWSxxLGV0LHN0LEV0KXt2YXIgTXQ9bSZnbixQdD1tJmJ0LFZ0PW0mVHQsZGU9bSYoX2V8X24pLGtlPW0mWW4sWGU9VnQ/JDpwZihwKTtmdW5jdGlvbiB3ZSgpe2Zvcih2YXIgdG49YXJndW1lbnRzLmxlbmd0aCxkbj12dCh0biksSHI9dG47SHItLTspZG5bSHJdPWFyZ3VtZW50c1tIcl07aWYoZGUpdmFyIG1pPUdjKHdlKSxoYT1NYihkbixtaSk7aWYoVCYmKGRuPUxoKGRuLFQsQixkZSkpLFkmJihkbj1SaChkbixZLHEsZGUpKSx0bi09aGEsZGUmJnRuPEV0KXt2YXIgU3I9anMoZG4sbWkpO3JldHVybiBEaChwLG0sdmYsd2UucGxhY2Vob2xkZXIsUyxkbixTcixldCxzdCxFdC10bil9dmFyIEdhPVB0P1M6dGhpcyxCbz1WdD9HYVtwXTpwO3JldHVybiB0bj1kbi5sZW5ndGgsZXQ/ZG49cGcoZG4sZXQpOmtlJiZ0bj4xJiZkbi5yZXZlcnNlKCksTXQmJnN0PHRuJiYoZG4ubGVuZ3RoPXN0KSx0aGlzJiZ0aGlzIT09bHImJnRoaXMgaW5zdGFuY2VvZiB3ZSYmKEJvPVhlfHxwZihCbykpLEJvLmFwcGx5KEdhLGRuKX1yZXR1cm4gd2V9ZnVuY3Rpb24gY3gocCxtKXtyZXR1cm4gZnVuY3Rpb24oUyxUKXtyZXR1cm4gWWIoUyxwLG0oVCkse30pfX1mdW5jdGlvbiBXbChwLG0pe3JldHVybiBmdW5jdGlvbihTLFQpe3ZhciBCO2lmKFM9PT0kJiZUPT09JClyZXR1cm4gbTtpZihTIT09JCYmKEI9UyksVCE9PSQpe2lmKEI9PT0kKXJldHVybiBUO3R5cGVvZiBTPT0ic3RyaW5nInx8dHlwZW9mIFQ9PSJzdHJpbmciPyhTPUhpKFMpLFQ9SGkoVCkpOihTPVh2KFMpLFQ9WHYoVCkpLEI9cChTLFQpfXJldHVybiBCfX1mdW5jdGlvbiBPYShwKXtyZXR1cm4gaW8oZnVuY3Rpb24obSl7cmV0dXJuIG09JG4obSxraShQZSgpKSksSmUoZnVuY3Rpb24oUyl7dmFyIFQ9dGhpcztyZXR1cm4gcChtLGZ1bmN0aW9uKEIpe3JldHVybiBMcihCLFQsUyl9KX0pfSl9ZnVuY3Rpb24gZ2YocCxtKXttPW09PT0kPyIgIjpIaShtKTt2YXIgUz1tLmxlbmd0aDtpZihTPDIpcmV0dXJuIFM/c2YobSxwKTptO3ZhciBUPXNmKG0seWgocC9BbChtKSkpO3JldHVybiBrbChtKT9YbihKYShUKSwwLHApLmpvaW4oIiIpOlQuc2xpY2UoMCxwKX1mdW5jdGlvbiBhZyhwLG0sUyxUKXt2YXIgQj1tJmJ0LFk9cGYocCk7ZnVuY3Rpb24gcSgpe2Zvcih2YXIgZXQ9LTEsc3Q9YXJndW1lbnRzLmxlbmd0aCxFdD0tMSxNdD1ULmxlbmd0aCxQdD12dChNdCtzdCksVnQ9dGhpcyYmdGhpcyE9PWxyJiZ0aGlzIGluc3RhbmNlb2YgcT9ZOnA7KytFdDxNdDspUHRbRXRdPVRbRXRdO2Zvcig7c3QtLTspUHRbRXQrK109YXJndW1lbnRzWysrZXRdO3JldHVybiBMcihWdCxCP1M6dGhpcyxQdCl9cmV0dXJuIHF9ZnVuY3Rpb24gbHgocCl7cmV0dXJuIGZ1bmN0aW9uKG0sUyxUKXtyZXR1cm4gVCYmdHlwZW9mIFQhPSJudW1iZXIiJiZNbihtLFMsVCkmJihTPVQ9JCksbT11byhtKSxTPT09JD8oUz1tLG09MCk6Uz11byhTKSxUPVQ9PT0kP208Uz8xOi0xOnVvKFQpLGV4KG0sUyxULHApfX1mdW5jdGlvbiBybyhwKXtyZXR1cm4gZnVuY3Rpb24obSxTKXtyZXR1cm4gdHlwZW9mIG09PSJzdHJpbmciJiZ0eXBlb2YgUz09InN0cmluZyJ8fChtPVRhKG0pLFM9VGEoUykpLHAobSxTKX19ZnVuY3Rpb24gRGgocCxtLFMsVCxCLFkscSxldCxzdCxFdCl7dmFyIE10PW0mX2UsUHQ9TXQ/cTokLFZ0PU10PyQ6cSxkZT1NdD9ZOiQsa2U9TXQ/JDpZO218PU10P1VlOnBuLG0mPX4oTXQ/cG46VWUpLG0meGV8fChtJj1+KGJ0fFR0KSk7dmFyIFhlPVtwLG0sQixkZSxQdCxrZSxWdCxldCxzdCxFdF0sd2U9Uy5hcHBseSgkLFhlKTtyZXR1cm4gam8ocCkmJnhyKHdlLFhlKSx3ZS5wbGFjZWhvbGRlcj1ULHZnKHdlLHAsbSl9ZnVuY3Rpb24geWYocCl7dmFyIG09ZWlbcF07cmV0dXJuIGZ1bmN0aW9uKFMsVCl7aWYoUz1UYShTKSxUPVQ9PW51bGw/MDpyaShWZShUKSwyOTIpLFQmJlJiKFMpKXt2YXIgQj0oR2UoUykrImUiKS5zcGxpdCgiZSIpLFk9bShCWzBdKyJlIisoK0JbMV0rVCkpO3JldHVybiBCPShHZShZKSsiZSIpLnNwbGl0KCJlIiksKyhCWzBdKyJlIisoK0JbMV0tVCkpfXJldHVybiBtKFMpfX12YXIgdXg9TGwmJjEvc2gobmV3IExsKFssLTBdKSlbMV09PXRyP2Z1bmN0aW9uKHApe3JldHVybiBuZXcgTGwocCl9OmZwO2Z1bmN0aW9uIG1mKHApe3JldHVybiBmdW5jdGlvbihtKXt2YXIgUz1BaShtKTtyZXR1cm4gUz09X2k/T3YobSk6Uz09eHQ/Yk0obSk6RWIobSxwKG0pKX19ZnVuY3Rpb24gSW8ocCxtLFMsVCxCLFkscSxldCl7dmFyIHN0PW0mVHQ7aWYoIXN0JiZ0eXBlb2YgcCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgSWEoUnQpO3ZhciBFdD1UP1QubGVuZ3RoOjA7aWYoRXR8fChtJj1+KFVlfHBuKSxUPUI9JCkscT1xPT09JD9xOm5pKFZlKHEpLDApLGV0PWV0PT09JD9ldDpWZShldCksRXQtPUI/Qi5sZW5ndGg6MCxtJnBuKXt2YXIgTXQ9VCxQdD1CO1Q9Qj0kfXZhciBWdD1zdD8kOl9mKHApLGRlPVtwLG0sUyxULEIsTXQsUHQsWSxxLGV0XTtpZihWdCYmbXgoZGUsVnQpLHA9ZGVbMF0sbT1kZVsxXSxTPWRlWzJdLFQ9ZGVbM10sQj1kZVs0XSxldD1kZVs5XT1kZVs5XT09PSQ/c3Q/MDpwLmxlbmd0aDpuaShkZVs5XS1FdCwwKSwhZXQmJm0mKF9lfF9uKSYmKG0mPX4oX2V8X24pKSwhbXx8bT09YnQpdmFyIGtlPXJnKHAsbSxTKTtlbHNlIG09PV9lfHxtPT1fbj9rZT1yayhwLG0sZXQpOihtPT1VZXx8bT09KGJ0fFVlKSkmJiFCLmxlbmd0aD9rZT1hZyhwLG0sUyxUKTprZT12Zi5hcHBseSgkLGRlKTt2YXIgWGU9VnQ/WXY6eHI7cmV0dXJuIHZnKFhlKGtlLGRlKSxwLG0pfWZ1bmN0aW9uIGZ4KHAsbSxTLFQpe3JldHVybiBwPT09JHx8QWEocCxUbFtTXSkmJiFGbi5jYWxsKFQsUyk/bTpwfWZ1bmN0aW9uIG9nKHAsbSxTLFQsQixZKXtyZXR1cm4gbXIocCkmJm1yKG0pJiYoWS5zZXQobSxwKSxGbChwLG0sJCxvZyxZKSxZLmRlbGV0ZShtKSkscH1mdW5jdGlvbiBzZyhwKXtyZXR1cm4gY3MocCk/JDpwfWZ1bmN0aW9uIGR4KHAsbSxTLFQsQixZKXt2YXIgcT1TJmt0LGV0PXAubGVuZ3RoLHN0PW0ubGVuZ3RoO2lmKGV0IT1zdCYmIShxJiZzdD5ldCkpcmV0dXJuITE7dmFyIEV0PVkuZ2V0KHApLE10PVkuZ2V0KG0pO2lmKEV0JiZNdClyZXR1cm4gRXQ9PW0mJk10PT1wO3ZhciBQdD0tMSxWdD0hMCxkZT1TJlN0P25ldyBnZTokO2ZvcihZLnNldChwLG0pLFkuc2V0KG0scCk7KytQdDxldDspe3ZhciBrZT1wW1B0XSxYZT1tW1B0XTtpZihUKXZhciB3ZT1xP1QoWGUsa2UsUHQsbSxwLFkpOlQoa2UsWGUsUHQscCxtLFkpO2lmKHdlIT09JCl7aWYod2UpY29udGludWU7VnQ9ITE7YnJlYWt9aWYoZGUpe2lmKCFEcyhtLGZ1bmN0aW9uKHRuLGRuKXtpZighTGMoZGUsZG4pJiYoa2U9PT10bnx8QihrZSx0bixTLFQsWSkpKXJldHVybiBkZS5wdXNoKGRuKX0pKXtWdD0hMTticmVha319ZWxzZSBpZighKGtlPT09WGV8fEIoa2UsWGUsUyxULFkpKSl7VnQ9ITE7YnJlYWt9fXJldHVybiBZLmRlbGV0ZShwKSxZLmRlbGV0ZShtKSxWdH1mdW5jdGlvbiBpayhwLG0sUyxULEIsWSxxKXtzd2l0Y2goUyl7Y2FzZSBMbzppZihwLmJ5dGVMZW5ndGghPW0uYnl0ZUxlbmd0aHx8cC5ieXRlT2Zmc2V0IT1tLmJ5dGVPZmZzZXQpcmV0dXJuITE7cD1wLmJ1ZmZlcixtPW0uYnVmZmVyO2Nhc2UgUHM6cmV0dXJuIShwLmJ5dGVMZW5ndGghPW0uYnl0ZUxlbmd0aHx8IVkobmV3IEZzKHApLG5ldyBGcyhtKSkpO2Nhc2UgVWE6Y2FzZSBBczpjYXNlIGJhOnJldHVybiBBYSgrcCwrbSk7Y2FzZSBYbzpyZXR1cm4gcC5uYW1lPT1tLm5hbWUmJnAubWVzc2FnZT09bS5tZXNzYWdlO2Nhc2UgRWU6Y2FzZSBPdDpyZXR1cm4gcD09bSsiIjtjYXNlIF9pOnZhciBldD1PdjtjYXNlIHh0OnZhciBzdD1UJmt0O2lmKGV0fHwoZXQ9c2gpLHAuc2l6ZSE9bS5zaXplJiYhc3QpcmV0dXJuITE7dmFyIEV0PXEuZ2V0KHApO2lmKEV0KXJldHVybiBFdD09bTtUfD1TdCxxLnNldChwLG0pO3ZhciBNdD1keChldChwKSxldChtKSxULEIsWSxxKTtyZXR1cm4gcS5kZWxldGUocCksTXQ7Y2FzZSBsbjppZihLdSlyZXR1cm4gS3UuY2FsbChwKT09S3UuY2FsbChtKX1yZXR1cm4hMX1mdW5jdGlvbiBjZyhwLG0sUyxULEIsWSl7dmFyIHE9UyZrdCxldD1iZihwKSxzdD1ldC5sZW5ndGgsRXQ9YmYobSksTXQ9RXQubGVuZ3RoO2lmKHN0IT1NdCYmIXEpcmV0dXJuITE7Zm9yKHZhciBQdD1zdDtQdC0tOyl7dmFyIFZ0PWV0W1B0XTtpZighKHE/VnQgaW4gbTpGbi5jYWxsKG0sVnQpKSlyZXR1cm4hMX12YXIgZGU9WS5nZXQocCksa2U9WS5nZXQobSk7aWYoZGUmJmtlKXJldHVybiBkZT09bSYma2U9PXA7dmFyIFhlPSEwO1kuc2V0KHAsbSksWS5zZXQobSxwKTtmb3IodmFyIHdlPXE7KytQdDxzdDspe1Z0PWV0W1B0XTt2YXIgdG49cFtWdF0sZG49bVtWdF07aWYoVCl2YXIgSHI9cT9UKGRuLHRuLFZ0LG0scCxZKTpUKHRuLGRuLFZ0LHAsbSxZKTtpZighKEhyPT09JD90bj09PWRufHxCKHRuLGRuLFMsVCxZKTpIcikpe1hlPSExO2JyZWFrfXdlfHwod2U9VnQ9PSJjb25zdHJ1Y3RvciIpfWlmKFhlJiYhd2Upe3ZhciBtaT1wLmNvbnN0cnVjdG9yLGhhPW0uY29uc3RydWN0b3I7bWkhPWhhJiYiY29uc3RydWN0b3IiaW4gcCYmImNvbnN0cnVjdG9yImluIG0mJiEodHlwZW9mIG1pPT0iZnVuY3Rpb24iJiZtaSBpbnN0YW5jZW9mIG1pJiZ0eXBlb2YgaGE9PSJmdW5jdGlvbiImJmhhIGluc3RhbmNlb2YgaGEpJiYoWGU9ITEpfXJldHVybiBZLmRlbGV0ZShwKSxZLmRlbGV0ZShtKSxYZX1mdW5jdGlvbiBpbyhwKXtyZXR1cm4gYXMoZGcocCwkLHlnKSxwKyIiKX1mdW5jdGlvbiBiZihwKXtyZXR1cm4gWmIocCxZcix1Zyl9ZnVuY3Rpb24geGYocCl7cmV0dXJuIFpiKHAsS2ksaHgpfXZhciBfZj1iaD9mdW5jdGlvbihwKXtyZXR1cm4gYmguZ2V0KHApfTpmcDtmdW5jdGlvbiB3ZihwKXtmb3IodmFyIG09cC5uYW1lKyIiLFM9UmxbbV0sVD1Gbi5jYWxsKFJsLG0pP1MubGVuZ3RoOjA7VC0tOyl7dmFyIEI9U1tUXSxZPUIuZnVuYztpZihZPT1udWxsfHxZPT1wKXJldHVybiBCLm5hbWV9cmV0dXJuIG19ZnVuY3Rpb24gR2MocCl7dmFyIG09Rm4uY2FsbChaLCJwbGFjZWhvbGRlciIpP1o6cDtyZXR1cm4gbS5wbGFjZWhvbGRlcn1mdW5jdGlvbiBQZSgpe3ZhciBwPVouaXRlcmF0ZWV8fGJyO3JldHVybiBwPXA9PT1icj9qbDpwLGFyZ3VtZW50cy5sZW5ndGg/cChhcmd1bWVudHNbMF0sYXJndW1lbnRzWzFdKTpwfWZ1bmN0aW9uIGpoKHAsbSl7dmFyIFM9cC5fX2RhdGFfXztyZXR1cm4gWXMobSk/U1t0eXBlb2YgbT09InN0cmluZyI/InN0cmluZyI6Imhhc2giXTpTLm1hcH1mdW5jdGlvbiBsZyhwKXtmb3IodmFyIG09WXIocCksUz1tLmxlbmd0aDtTLS07KXt2YXIgVD1tW1NdLEI9cFtUXTttW1NdPVtULEIsZHQoQildfXJldHVybiBtfWZ1bmN0aW9uIGFvKHAsbSl7dmFyIFM9Z00ocCxtKTtyZXR1cm4gQnYoUyk/UzokfWZ1bmN0aW9uIGFrKHApe3ZhciBtPUZuLmNhbGwocCxCcyksUz1wW0JzXTt0cnl7cFtCc109JDt2YXIgVD0hMH1jYXRjaChZKXt9dmFyIEI9ZGguY2FsbChwKTtyZXR1cm4gVCYmKG0/cFtCc109UzpkZWxldGUgcFtCc10pLEJ9dmFyIHVnPU5jP2Z1bmN0aW9uKHApe3JldHVybiBwPT1udWxsP1tdOihwPWplKHApLFFhKE5jKHApLGZ1bmN0aW9uKG0pe3JldHVybiBQbC5jYWxsKHAsbSl9KSl9OmRwLGh4PU5jP2Z1bmN0aW9uKHApe2Zvcih2YXIgbT1bXTtwOylmYShtLHVnKHApKSxwPWdoKHApO3JldHVybiBtfTpkcCxBaT1acjsoQXYmJkFpKG5ldyBBdihuZXcgQXJyYXlCdWZmZXIoMSkpKSE9TG98fFh1JiZBaShuZXcgWHUpIT1faXx8VHYmJkFpKFR2LnJlc29sdmUoKSkhPWJjfHxMbCYmQWkobmV3IExsKSE9eHR8fFV1JiZBaShuZXcgVXUpIT1NZSkmJihBaT1mdW5jdGlvbihwKXt2YXIgbT1acihwKSxTPW09PVdpP3AuY29uc3RydWN0b3I6JCxUPVM/SHMoUyk6IiI7aWYoVClzd2l0Y2goVCl7Y2FzZSBETTpyZXR1cm4gTG87Y2FzZSBqTTpyZXR1cm4gX2k7Y2FzZSBGTTpyZXR1cm4gYmM7Y2FzZSBCTTpyZXR1cm4geHQ7Y2FzZSB6TTpyZXR1cm4gTWV9cmV0dXJuIG19KTtmdW5jdGlvbiBvayhwLG0sUyl7Zm9yKHZhciBUPS0xLEI9Uy5sZW5ndGg7KytUPEI7KXt2YXIgWT1TW1RdLHE9WS5zaXplO3N3aXRjaChZLnR5cGUpe2Nhc2UiZHJvcCI6cCs9cTticmVhaztjYXNlImRyb3BSaWdodCI6bS09cTticmVhaztjYXNlInRha2UiOm09cmkobSxwK3EpO2JyZWFrO2Nhc2UidGFrZVJpZ2h0IjpwPW5pKHAsbS1xKTticmVha319cmV0dXJue3N0YXJ0OnAsZW5kOm19fWZ1bmN0aW9uIEdsKHApe3ZhciBtPXAubWF0Y2goU2MpO3JldHVybiBtP21bMV0uc3BsaXQoRWMpOltdfWZ1bmN0aW9uIEZoKHAsbSxTKXttPXJzKG0scCk7Zm9yKHZhciBUPS0xLEI9bS5sZW5ndGgsWT0hMTsrK1Q8Qjspe3ZhciBxPVRpKG1bVF0pO2lmKCEoWT1wIT1udWxsJiZTKHAscSkpKWJyZWFrO3A9cFtxXX1yZXR1cm4gWXx8KytUIT1CP1k6KEI9cD09bnVsbD8wOnAubGVuZ3RoLCEhQiYmamYoQikmJkRvKHEsQikmJihXZShwKXx8cXMocCkpKX1mdW5jdGlvbiBweChwKXt2YXIgbT1wLmxlbmd0aCxTPW5ldyBwLmNvbnN0cnVjdG9yKG0pO3JldHVybiBtJiZ0eXBlb2YgcFswXT09InN0cmluZyImJkZuLmNhbGwocCwiaW5kZXgiKSYmKFMuaW5kZXg9cC5pbmRleCxTLmlucHV0PXAuaW5wdXQpLFN9ZnVuY3Rpb24gT2YocCl7cmV0dXJuIHR5cGVvZiBwLmNvbnN0cnVjdG9yPT0iZnVuY3Rpb24iJiYhJGwocCk/SWMoZ2gocCkpOnt9fWZ1bmN0aW9uIHZ4KHAsbSxTKXt2YXIgVD1wLmNvbnN0cnVjdG9yO3N3aXRjaChtKXtjYXNlIFBzOnJldHVybiBLdChwKTtjYXNlIFVhOmNhc2UgQXM6cmV0dXJuIG5ldyBUKCtwKTtjYXNlIExvOnJldHVybiB0ZyhwLFMpO2Nhc2UgdW46Y2FzZSBIbjpjYXNlIFByOmNhc2UgeGM6Y2FzZSBfYzpjYXNlIHdjOmNhc2UgcWE6Y2FzZSBtZTpjYXNlIHdpOnJldHVybiBDaChwLFMpO2Nhc2UgX2k6cmV0dXJuIG5ldyBUO2Nhc2UgYmE6Y2FzZSBPdDpyZXR1cm4gbmV3IFQocCk7Y2FzZSBFZTpyZXR1cm4gYXgocCk7Y2FzZSB4dDpyZXR1cm4gbmV3IFQ7Y2FzZSBsbjpyZXR1cm4gUGgocCl9fWZ1bmN0aW9uIHNrKHAsbSl7dmFyIFM9bS5sZW5ndGg7aWYoIVMpcmV0dXJuIHA7dmFyIFQ9Uy0xO3JldHVybiBtW1RdPShTPjE/IiYgIjoiIikrbVtUXSxtPW0uam9pbihTPjI/IiwgIjoiICIpLHAucmVwbGFjZShzdixgeworLyogW3dyYXBwZWQgd2l0aCBgK20rYF0gKi8KK2ApfWZ1bmN0aW9uIGd4KHApe3JldHVybiBXZShwKXx8cXMocCl8fCEhKExiJiZwJiZwW0xiXSl9ZnVuY3Rpb24gRG8ocCxtKXt2YXIgUz10eXBlb2YgcDtyZXR1cm4gbT1tPT1udWxsP3J0Om0sISFtJiYoUz09Im51bWJlciJ8fFMhPSJzeW1ib2wiJiZwaS50ZXN0KHApKSYmcD4tMSYmcCUxPT0wJiZwPG19ZnVuY3Rpb24gTW4ocCxtLFMpe2lmKCFtcihTKSlyZXR1cm4hMTt2YXIgVD10eXBlb2YgbTtyZXR1cm4oVD09Im51bWJlciI/Q2koUykmJkRvKG0sUy5sZW5ndGgpOlQ9PSJzdHJpbmciJiZtIGluIFMpP0FhKFNbbV0scCk6ITF9ZnVuY3Rpb24gb28ocCxtKXtpZihXZShwKSlyZXR1cm4hMTt2YXIgUz10eXBlb2YgcDtyZXR1cm4gUz09Im51bWJlciJ8fFM9PSJzeW1ib2wifHxTPT0iYm9vbGVhbiJ8fHA9PW51bGx8fGRhKHApPyEwOkdkLnRlc3QocCl8fCFXZC50ZXN0KHApfHxtIT1udWxsJiZwIGluIGplKG0pfWZ1bmN0aW9uIFlzKHApe3ZhciBtPXR5cGVvZiBwO3JldHVybiBtPT0ic3RyaW5nInx8bT09Im51bWJlciJ8fG09PSJzeW1ib2wifHxtPT0iYm9vbGVhbiI/cCE9PSJfX3Byb3RvX18iOnA9PT1udWxsfWZ1bmN0aW9uIGpvKHApe3ZhciBtPXdmKHApLFM9WlttXTtpZih0eXBlb2YgUyE9ImZ1bmN0aW9uInx8IShtIGluIGZuLnByb3RvdHlwZSkpcmV0dXJuITE7aWYocD09PVMpcmV0dXJuITA7dmFyIFQ9X2YoUyk7cmV0dXJuISFUJiZwPT09VFswXX1mdW5jdGlvbiB5eChwKXtyZXR1cm4hIUV2JiZFdiBpbiBwfXZhciBmZz11aD9XYTpocDtmdW5jdGlvbiAkbChwKXt2YXIgbT1wJiZwLmNvbnN0cnVjdG9yLFM9dHlwZW9mIG09PSJmdW5jdGlvbiImJm0ucHJvdG90eXBlfHxUbDtyZXR1cm4gcD09PVN9ZnVuY3Rpb24gZHQocCl7cmV0dXJuIHA9PT1wJiYhbXIocCl9ZnVuY3Rpb24gWmwocCxtKXtyZXR1cm4gZnVuY3Rpb24oUyl7cmV0dXJuIFM9PW51bGw/ITE6U1twXT09PW0mJihtIT09JHx8cCBpbiBqZShTKSl9fWZ1bmN0aW9uIGlzKHApe3ZhciBtPUlmKHAsZnVuY3Rpb24oVCl7cmV0dXJuIFMuc2l6ZT09PWZ0JiZTLmNsZWFyKCksVH0pLFM9bS5jYWNoZTtyZXR1cm4gbX1mdW5jdGlvbiBteChwLG0pe3ZhciBTPXBbMV0sVD1tWzFdLEI9U3xULFk9QjwoYnR8VHR8Z24pLHE9VD09Z24mJlM9PV9lfHxUPT1nbiYmUz09cm4mJnBbN10ubGVuZ3RoPD1tWzhdfHxUPT0oZ258cm4pJiZtWzddLmxlbmd0aDw9bVs4XSYmUz09X2U7aWYoIShZfHxxKSlyZXR1cm4gcDtUJmJ0JiYocFsyXT1tWzJdLEJ8PVMmYnQ/MDp4ZSk7dmFyIGV0PW1bM107aWYoZXQpe3ZhciBzdD1wWzNdO3BbM109c3Q/TGgoc3QsZXQsbVs0XSk6ZXQscFs0XT1zdD9qcyhwWzNdLHJlKTptWzRdfXJldHVybiBldD1tWzVdLGV0JiYoc3Q9cFs1XSxwWzVdPXN0P1JoKHN0LGV0LG1bNl0pOmV0LHBbNl09c3Q/anMocFs1XSxyZSk6bVs2XSksZXQ9bVs3XSxldCYmKHBbN109ZXQpLFQmZ24mJihwWzhdPXBbOF09PW51bGw/bVs4XTpyaShwWzhdLG1bOF0pKSxwWzldPT1udWxsJiYocFs5XT1tWzldKSxwWzBdPW1bMF0scFsxXT1CLHB9ZnVuY3Rpb24gQmgocCl7dmFyIG09W107aWYocCE9bnVsbClmb3IodmFyIFMgaW4gamUocCkpbS5wdXNoKFMpO3JldHVybiBtfWZ1bmN0aW9uICRjKHApe3JldHVybiBkaC5jYWxsKHApfWZ1bmN0aW9uIGRnKHAsbSxTKXtyZXR1cm4gbT1uaShtPT09JD9wLmxlbmd0aC0xOm0sMCksZnVuY3Rpb24oKXtmb3IodmFyIFQ9YXJndW1lbnRzLEI9LTEsWT1uaShULmxlbmd0aC1tLDApLHE9dnQoWSk7KytCPFk7KXFbQl09VFttK0JdO0I9LTE7Zm9yKHZhciBldD12dChtKzEpOysrQjxtOylldFtCXT1UW0JdO3JldHVybiBldFttXT1TKHEpLExyKHAsdGhpcyxldCl9fWZ1bmN0aW9uIGhnKHAsbSl7cmV0dXJuIG0ubGVuZ3RoPDI/cDpXcyhwLFlpKG0sMCwtMSkpfWZ1bmN0aW9uIHBnKHAsbSl7Zm9yKHZhciBTPXAubGVuZ3RoLFQ9cmkobS5sZW5ndGgsUyksQj1WaShwKTtULS07KXt2YXIgWT1tW1RdO3BbVF09RG8oWSxTKT9CW1ldOiR9cmV0dXJuIHB9ZnVuY3Rpb24gWWwocCxtKXtpZighKG09PT0iY29uc3RydWN0b3IiJiZ0eXBlb2YgcFttXT09ImZ1bmN0aW9uIikmJm0hPSJfX3Byb3RvX18iKXJldHVybiBwW21dfXZhciB4cj1paShZdiksSGw9UE18fGZ1bmN0aW9uKHAsbSl7cmV0dXJuIGxyLnNldFRpbWVvdXQocCxtKX0sYXM9aWkoSHYpO2Z1bmN0aW9uIHZnKHAsbSxTKXt2YXIgVD1tKyIiO3JldHVybiBhcyhwLHNrKFQsWmMoR2woVCksUykpKX1mdW5jdGlvbiBpaShwKXt2YXIgbT0wLFM9MDtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgVD1OTSgpLEI9enItKFQtUyk7aWYoUz1ULEI+MCl7aWYoKyttPj1TZSlyZXR1cm4gYXJndW1lbnRzWzBdfWVsc2UgbT0wO3JldHVybiBwLmFwcGx5KCQsYXJndW1lbnRzKX19ZnVuY3Rpb24gRm8ocCxtKXt2YXIgUz0tMSxUPXAubGVuZ3RoLEI9VC0xO2ZvcihtPW09PT0kP1Q6bTsrK1M8bTspe3ZhciBZPSRzKFMsQikscT1wW1ldO3BbWV09cFtTXSxwW1NdPXF9cmV0dXJuIHAubGVuZ3RoPW0scH12YXIga249aXMoZnVuY3Rpb24ocCl7dmFyIG09W107cmV0dXJuIHAuY2hhckNvZGVBdCgwKT09PTQ2JiZtLnB1c2goIiIpLHAucmVwbGFjZShhdixmdW5jdGlvbihTLFQsQixZKXttLnB1c2goQj9ZLnJlcGxhY2UoTWMsIiQxIik6VHx8Uyl9KSxtfSk7ZnVuY3Rpb24gVGkocCl7aWYodHlwZW9mIHA9PSJzdHJpbmcifHxkYShwKSlyZXR1cm4gcDt2YXIgbT1wKyIiO3JldHVybiBtPT0iMCImJjEvcD09LXRyPyItMCI6bX1mdW5jdGlvbiBIcyhwKXtpZihwIT1udWxsKXt0cnl7cmV0dXJuIGZoLmNhbGwocCl9Y2F0Y2gobSl7fXRyeXtyZXR1cm4gcCsiIn1jYXRjaChtKXt9fXJldHVybiIifWZ1bmN0aW9uIFpjKHAsbSl7cmV0dXJuIHVhKGtzLGZ1bmN0aW9uKFMpe3ZhciBUPSJfLiIrU1swXTttJlNbMV0mJiFNbChwLFQpJiZwLnB1c2goVCl9KSxwLnNvcnQoKX1mdW5jdGlvbiBTZihwKXtpZihwIGluc3RhbmNlb2YgZm4pcmV0dXJuIHAuY2xvbmUoKTt2YXIgbT1uZXcgRGEocC5fX3dyYXBwZWRfXyxwLl9fY2hhaW5fXyk7cmV0dXJuIG0uX19hY3Rpb25zX189VmkocC5fX2FjdGlvbnNfXyksbS5fX2luZGV4X189cC5fX2luZGV4X18sbS5fX3ZhbHVlc19fPXAuX192YWx1ZXNfXyxtfWZ1bmN0aW9uIFBpKHAsbSxTKXsoUz9NbihwLG0sUyk6bT09PSQpP209MTptPW5pKFZlKG0pLDApO3ZhciBUPXA9PW51bGw/MDpwLmxlbmd0aDtpZighVHx8bTwxKXJldHVybltdO2Zvcih2YXIgQj0wLFk9MCxxPXZ0KHloKFQvbSkpO0I8VDspcVtZKytdPVlpKHAsQixCKz1tKTtyZXR1cm4gcX1mdW5jdGlvbiBieChwKXtmb3IodmFyIG09LTEsUz1wPT1udWxsPzA6cC5sZW5ndGgsVD0wLEI9W107KyttPFM7KXt2YXIgWT1wW21dO1kmJihCW1QrK109WSl9cmV0dXJuIEJ9ZnVuY3Rpb24gQ24oKXt2YXIgcD1hcmd1bWVudHMubGVuZ3RoO2lmKCFwKXJldHVybltdO2Zvcih2YXIgbT12dChwLTEpLFM9YXJndW1lbnRzWzBdLFQ9cDtULS07KW1bVC0xXT1hcmd1bWVudHNbVF07cmV0dXJuIGZhKFdlKFMpP1ZpKFMpOltTXSxScihtLDEpKX12YXIgeHg9SmUoZnVuY3Rpb24ocCxtKXtyZXR1cm4gYm4ocCk/SWwocCxScihtLDEsYm4sITApKTpbXX0pLFNhPUplKGZ1bmN0aW9uKHAsbSl7dmFyIFM9WGkobSk7cmV0dXJuIGJuKFMpJiYoUz0kKSxibihwKT9JbChwLFJyKG0sMSxibiwhMCksUGUoUywyKSk6W119KSxfeD1KZShmdW5jdGlvbihwLG0pe3ZhciBTPVhpKG0pO3JldHVybiBibihTKSYmKFM9JCksYm4ocCk/SWwocCxScihtLDEsYm4sITApLCQsUyk6W119KTtmdW5jdGlvbiBjayhwLG0sUyl7dmFyIFQ9cD09bnVsbD8wOnAubGVuZ3RoO3JldHVybiBUPyhtPVN8fG09PT0kPzE6VmUobSksWWkocCxtPDA/MDptLFQpKTpbXX1mdW5jdGlvbiBsayhwLG0sUyl7dmFyIFQ9cD09bnVsbD8wOnAubGVuZ3RoO3JldHVybiBUPyhtPVN8fG09PT0kPzE6VmUobSksbT1ULW0sWWkocCwwLG08MD8wOm0pKTpbXX1mdW5jdGlvbiB3eChwLG0pe3JldHVybiBwJiZwLmxlbmd0aD91ZihwLFBlKG0sMyksITAsITApOltdfWZ1bmN0aW9uIEVmKHAsbSl7cmV0dXJuIHAmJnAubGVuZ3RoP3VmKHAsUGUobSwzKSwhMCk6W119ZnVuY3Rpb24gT3gocCxtLFMsVCl7dmFyIEI9cD09bnVsbD8wOnAubGVuZ3RoO3JldHVybiBCPyhTJiZ0eXBlb2YgUyE9Im51bWJlciImJk1uKHAsbSxTKSYmKFM9MCxUPUIpLCRiKHAsbSxTLFQpKTpbXX1mdW5jdGlvbiBnZyhwLG0sUyl7dmFyIFQ9cD09bnVsbD8wOnAubGVuZ3RoO2lmKCFUKXJldHVybi0xO3ZhciBCPVM9PW51bGw/MDpWZShTKTtyZXR1cm4gQjwwJiYoQj1uaShUK0IsMCkpLFp1KHAsUGUobSwzKSxCKX1mdW5jdGlvbiBNZihwLG0sUyl7dmFyIFQ9cD09bnVsbD8wOnAubGVuZ3RoO2lmKCFUKXJldHVybi0xO3ZhciBCPVQtMTtyZXR1cm4gUyE9PSQmJihCPVZlKFMpLEI9UzwwP25pKFQrQiwwKTpyaShCLFQtMSkpLFp1KHAsUGUobSwzKSxCLCEwKX1mdW5jdGlvbiB5ZyhwKXt2YXIgbT1wPT1udWxsPzA6cC5sZW5ndGg7cmV0dXJuIG0/UnIocCwxKTpbXX1mdW5jdGlvbiBTeChwKXt2YXIgbT1wPT1udWxsPzA6cC5sZW5ndGg7cmV0dXJuIG0/UnIocCx0cik6W119ZnVuY3Rpb24gbWcocCxtKXt2YXIgUz1wPT1udWxsPzA6cC5sZW5ndGg7cmV0dXJuIFM/KG09bT09PSQ/MTpWZShtKSxScihwLG0pKTpbXX1mdW5jdGlvbiBzbyhwKXtmb3IodmFyIG09LTEsUz1wPT1udWxsPzA6cC5sZW5ndGgsVD17fTsrK208Uzspe3ZhciBCPXBbbV07VFtCWzBdXT1CWzFdfXJldHVybiBUfWZ1bmN0aW9uIEVhKHApe3JldHVybiBwJiZwLmxlbmd0aD9wWzBdOiR9ZnVuY3Rpb24gVmwocCxtLFMpe3ZhciBUPXA9PW51bGw/MDpwLmxlbmd0aDtpZighVClyZXR1cm4tMTt2YXIgQj1TPT1udWxsPzA6VmUoUyk7cmV0dXJuIEI8MCYmKEI9bmkoVCtCLDApKSxDYyhwLG0sQil9ZnVuY3Rpb24gTGUocCl7dmFyIG09cD09bnVsbD8wOnAubGVuZ3RoO3JldHVybiBtP1lpKHAsMCwtMSk6W119dmFyIGJnPUplKGZ1bmN0aW9uKHApe3ZhciBtPSRuKHAsVGgpO3JldHVybiBtLmxlbmd0aCYmbVswXT09PXBbMF0/cmYobSk6W119KSxFeD1KZShmdW5jdGlvbihwKXt2YXIgbT1YaShwKSxTPSRuKHAsVGgpO3JldHVybiBtPT09WGkoUyk/bT0kOlMucG9wKCksUy5sZW5ndGgmJlNbMF09PT1wWzBdP3JmKFMsUGUobSwyKSk6W119KSxNeD1KZShmdW5jdGlvbihwKXt2YXIgbT1YaShwKSxTPSRuKHAsVGgpO3JldHVybiBtPXR5cGVvZiBtPT0iZnVuY3Rpb24iP206JCxtJiZTLnBvcCgpLFMubGVuZ3RoJiZTWzBdPT09cFswXT9yZihTLCQsbSk6W119KTtmdW5jdGlvbiBreChwLG0pe3JldHVybiBwPT1udWxsPyIiOkxNLmNhbGwocCxtKX1mdW5jdGlvbiBYaShwKXt2YXIgbT1wPT1udWxsPzA6cC5sZW5ndGg7cmV0dXJuIG0/cFttLTFdOiR9ZnVuY3Rpb24gTG4ocCxtLFMpe3ZhciBUPXA9PW51bGw/MDpwLmxlbmd0aDtpZighVClyZXR1cm4tMTt2YXIgQj1UO3JldHVybiBTIT09JCYmKEI9VmUoUyksQj1CPDA/bmkoVCtCLDApOnJpKEIsVC0xKSksbT09PW0/X00ocCxtLEIpOlp1KHAsZWgsQiwhMCl9ZnVuY3Rpb24gemgocCxtKXtyZXR1cm4gcCYmcC5sZW5ndGg/JHYocCxWZShtKSk6JH12YXIgTWE9SmUoV2gpO2Z1bmN0aW9uIFdoKHAsbSl7cmV0dXJuIHAmJnAubGVuZ3RoJiZtJiZtLmxlbmd0aD9CYyhwLG0pOnB9ZnVuY3Rpb24geGcocCxtLFMpe3JldHVybiBwJiZwLmxlbmd0aCYmbSYmbS5sZW5ndGg/QmMocCxtLFBlKFMsMikpOnB9ZnVuY3Rpb24gX2cocCxtLFMpe3JldHVybiBwJiZwLmxlbmd0aCYmbSYmbS5sZW5ndGg/QmMocCxtLCQsUyk6cH12YXIgQXg9aW8oZnVuY3Rpb24ocCxtKXt2YXIgUz1wPT1udWxsPzA6cC5sZW5ndGgsVD1WKHAsbSk7cmV0dXJuIFp2KHAsJG4obSxmdW5jdGlvbihCKXtyZXR1cm4gRG8oQixTKT8rQjpCfSkuc29ydChsaSkpLFR9KTtmdW5jdGlvbiBrZihwLG0pe3ZhciBTPVtdO2lmKCEocCYmcC5sZW5ndGgpKXJldHVybiBTO3ZhciBUPS0xLEI9W10sWT1wLmxlbmd0aDtmb3IobT1QZShtLDMpOysrVDxZOyl7dmFyIHE9cFtUXTttKHEsVCxwKSYmKFMucHVzaChxKSxCLnB1c2goVCkpfXJldHVybiBadihwLEIpLFN9ZnVuY3Rpb24gQWYocCl7cmV0dXJuIHA9PW51bGw/cDpOYi5jYWxsKHApfWZ1bmN0aW9uIHp0KHAsbSxTKXt2YXIgVD1wPT1udWxsPzA6cC5sZW5ndGg7cmV0dXJuIFQ/KFMmJnR5cGVvZiBTIT0ibnVtYmVyIiYmTW4ocCxtLFMpPyhtPTAsUz1UKToobT1tPT1udWxsPzA6VmUobSksUz1TPT09JD9UOlZlKFMpKSxZaShwLG0sUykpOltdfWZ1bmN0aW9uIEdoKHAsbSl7cmV0dXJuIEJsKHAsbSl9ZnVuY3Rpb24gd2cocCxtLFMpe3JldHVybiBsZihwLG0sUGUoUywyKSl9ZnVuY3Rpb24gWGwocCxtKXt2YXIgUz1wPT1udWxsPzA6cC5sZW5ndGg7aWYoUyl7dmFyIFQ9QmwocCxtKTtpZihUPFMmJkFhKHBbVF0sbSkpcmV0dXJuIFR9cmV0dXJuLTF9ZnVuY3Rpb24gVWwocCxtKXtyZXR1cm4gQmwocCxtLCEwKX1mdW5jdGlvbiBUZihwLG0sUyl7cmV0dXJuIGxmKHAsbSxQZShTLDIpLCEwKX1mdW5jdGlvbiBZYyhwLG0pe3ZhciBTPXA9PW51bGw/MDpwLmxlbmd0aDtpZihTKXt2YXIgVD1CbChwLG0sITApLTE7aWYoQWEocFtUXSxtKSlyZXR1cm4gVH1yZXR1cm4tMX1mdW5jdGlvbiBxbChwKXtyZXR1cm4gcCYmcC5sZW5ndGg/VnYocCk6W119ZnVuY3Rpb24gY28ocCxtKXtyZXR1cm4gcCYmcC5sZW5ndGg/VnYocCxQZShtLDIpKTpbXX1mdW5jdGlvbiBUeChwKXt2YXIgbT1wPT1udWxsPzA6cC5sZW5ndGg7cmV0dXJuIG0/WWkocCwxLG0pOltdfWZ1bmN0aW9uIFB4KHAsbSxTKXtyZXR1cm4gcCYmcC5sZW5ndGg/KG09U3x8bT09PSQ/MTpWZShtKSxZaShwLDAsbTwwPzA6bSkpOltdfWZ1bmN0aW9uIEN4KHAsbSxTKXt2YXIgVD1wPT1udWxsPzA6cC5sZW5ndGg7cmV0dXJuIFQ/KG09U3x8bT09PSQ/MTpWZShtKSxtPVQtbSxZaShwLG08MD8wOm0sVCkpOltdfWZ1bmN0aW9uIEx4KHAsbSl7cmV0dXJuIHAmJnAubGVuZ3RoP3VmKHAsUGUobSwzKSwhMSwhMCk6W119ZnVuY3Rpb24gUngocCxtKXtyZXR1cm4gcCYmcC5sZW5ndGg/dWYocCxQZShtLDMpKTpbXX12YXIgTng9SmUoZnVuY3Rpb24ocCl7cmV0dXJuIG5zKFJyKHAsMSxibiwhMCkpfSksSXg9SmUoZnVuY3Rpb24ocCl7dmFyIG09WGkocCk7cmV0dXJuIGJuKG0pJiYobT0kKSxucyhScihwLDEsYm4sITApLFBlKG0sMikpfSksT2c9SmUoZnVuY3Rpb24ocCl7dmFyIG09WGkocCk7cmV0dXJuIG09dHlwZW9mIG09PSJmdW5jdGlvbiI/bTokLG5zKFJyKHAsMSxibiwhMCksJCxtKX0pO2Z1bmN0aW9uIFNnKHApe3JldHVybiBwJiZwLmxlbmd0aD9ucyhwKTpbXX1mdW5jdGlvbiBEeChwLG0pe3JldHVybiBwJiZwLmxlbmd0aD9ucyhwLFBlKG0sMikpOltdfWZ1bmN0aW9uIGp4KHAsbSl7cmV0dXJuIG09dHlwZW9mIG09PSJmdW5jdGlvbiI/bTokLHAmJnAubGVuZ3RoP25zKHAsJCxtKTpbXX1mdW5jdGlvbiBQZihwKXtpZighKHAmJnAubGVuZ3RoKSlyZXR1cm5bXTt2YXIgbT0wO3JldHVybiBwPVFhKHAsZnVuY3Rpb24oUyl7aWYoYm4oUykpcmV0dXJuIG09bmkoUy5sZW5ndGgsbSksITB9KSxIdShtLGZ1bmN0aW9uKFMpe3JldHVybiAkbihwLFl1KFMpKX0pfWZ1bmN0aW9uIEtsKHAsbSl7aWYoIShwJiZwLmxlbmd0aCkpcmV0dXJuW107dmFyIFM9UGYocCk7cmV0dXJuIG09PW51bGw/UzokbihTLGZ1bmN0aW9uKFQpe3JldHVybiBMcihtLCQsVCl9KX12YXIgRWc9SmUoZnVuY3Rpb24ocCxtKXtyZXR1cm4gYm4ocCk/SWwocCxtKTpbXX0pLENmPUplKGZ1bmN0aW9uKHApe3JldHVybiBFbihRYShwLGJuKSl9KSxGeD1KZShmdW5jdGlvbihwKXt2YXIgbT1YaShwKTtyZXR1cm4gYm4obSkmJihtPSQpLEVuKFFhKHAsYm4pLFBlKG0sMikpfSksQng9SmUoZnVuY3Rpb24ocCl7dmFyIG09WGkocCk7cmV0dXJuIG09dHlwZW9mIG09PSJmdW5jdGlvbiI/bTokLEVuKFFhKHAsYm4pLCQsbSl9KSxVaT1KZShQZik7ZnVuY3Rpb24gTWcocCxtKXtyZXR1cm4gS3YocHx8W10sbXx8W10sTmwpfWZ1bmN0aW9uIHp4KHAsbSl7cmV0dXJuIEt2KHB8fFtdLG18fFtdLFpzKX12YXIga2c9SmUoZnVuY3Rpb24ocCl7dmFyIG09cC5sZW5ndGgsUz1tPjE/cFttLTFdOiQ7cmV0dXJuIFM9dHlwZW9mIFM9PSJmdW5jdGlvbiI/KHAucG9wKCksUyk6JCxLbChwLFMpfSk7ZnVuY3Rpb24gUWwocCl7dmFyIG09WihwKTtyZXR1cm4gbS5fX2NoYWluX189ITAsbX1mdW5jdGlvbiBWcyhwLG0pe3JldHVybiBtKHApLHB9ZnVuY3Rpb24gbG8ocCxtKXtyZXR1cm4gbShwKX12YXIgQWc9aW8oZnVuY3Rpb24ocCl7dmFyIG09cC5sZW5ndGgsUz1tP3BbMF06MCxUPXRoaXMuX193cmFwcGVkX18sQj1mdW5jdGlvbihZKXtyZXR1cm4gVihZLHApfTtyZXR1cm4gbT4xfHx0aGlzLl9fYWN0aW9uc19fLmxlbmd0aHx8IShUIGluc3RhbmNlb2YgZm4pfHwhRG8oUyk/dGhpcy50aHJ1KEIpOihUPVQuc2xpY2UoUywrUysobT8xOjApKSxULl9fYWN0aW9uc19fLnB1c2goe2Z1bmM6bG8sYXJnczpbQl0sdGhpc0FyZzokfSksbmV3IERhKFQsdGhpcy5fX2NoYWluX18pLnRocnUoZnVuY3Rpb24oWSl7cmV0dXJuIG0mJiFZLmxlbmd0aCYmWS5wdXNoKCQpLFl9KSl9KTtmdW5jdGlvbiBUZygpe3JldHVybiBRbCh0aGlzKX1mdW5jdGlvbiBXeCgpe3JldHVybiBuZXcgRGEodGhpcy52YWx1ZSgpLHRoaXMuX19jaGFpbl9fKX1mdW5jdGlvbiBqYSgpe3RoaXMuX192YWx1ZXNfXz09PSQmJih0aGlzLl9fdmFsdWVzX189UWcodGhpcy52YWx1ZSgpKSk7dmFyIHA9dGhpcy5fX2luZGV4X18+PXRoaXMuX192YWx1ZXNfXy5sZW5ndGgsbT1wPyQ6dGhpcy5fX3ZhbHVlc19fW3RoaXMuX19pbmRleF9fKytdO3JldHVybntkb25lOnAsdmFsdWU6bX19ZnVuY3Rpb24gUGcoKXtyZXR1cm4gdGhpc31mdW5jdGlvbiBMZihwKXtmb3IodmFyIG0sUz10aGlzO1MgaW5zdGFuY2VvZiBRdTspe3ZhciBUPVNmKFMpO1QuX19pbmRleF9fPTAsVC5fX3ZhbHVlc19fPSQsbT9CLl9fd3JhcHBlZF9fPVQ6bT1UO3ZhciBCPVQ7Uz1TLl9fd3JhcHBlZF9ffXJldHVybiBCLl9fd3JhcHBlZF9fPXAsbX1mdW5jdGlvbiAkaCgpe3ZhciBwPXRoaXMuX193cmFwcGVkX187aWYocCBpbnN0YW5jZW9mIGZuKXt2YXIgbT1wO3JldHVybiB0aGlzLl9fYWN0aW9uc19fLmxlbmd0aCYmKG09bmV3IGZuKHRoaXMpKSxtPW0ucmV2ZXJzZSgpLG0uX19hY3Rpb25zX18ucHVzaCh7ZnVuYzpsbyxhcmdzOltBZl0sdGhpc0FyZzokfSksbmV3IERhKG0sdGhpcy5fX2NoYWluX18pfXJldHVybiB0aGlzLnRocnUoQWYpfWZ1bmN0aW9uIElyKCl7cmV0dXJuIHF2KHRoaXMuX193cmFwcGVkX18sdGhpcy5fX2FjdGlvbnNfXyl9dmFyIFp0PWhmKGZ1bmN0aW9uKHAsbSxTKXtGbi5jYWxsKHAsUyk/KytwW1NdOmdpKHAsUywxKX0pO2Z1bmN0aW9uIEZhKHAsbSxTKXt2YXIgVD1XZShwKT9RZDpHYjtyZXR1cm4gUyYmTW4ocCxtLFMpJiYobT0kKSxUKHAsUGUobSwzKSl9ZnVuY3Rpb24gR3gocCxtKXt2YXIgUz1XZShwKT9RYTpOdjtyZXR1cm4gUyhwLFBlKG0sMykpfXZhciAkeD1pZyhnZyksWng9aWcoTWYpO2Z1bmN0aW9uIEhjKHAsbSl7cmV0dXJuIFJyKEJhKHAsbSksMSl9ZnVuY3Rpb24gWXgocCxtKXtyZXR1cm4gUnIoQmEocCxtKSx0cil9ZnVuY3Rpb24gSHgocCxtLFMpe3JldHVybiBTPVM9PT0kPzE6VmUoUyksUnIoQmEocCxtKSxTKX1mdW5jdGlvbiBDZyhwLG0pe3ZhciBTPVdlKHApP3VhOnRzO3JldHVybiBTKHAsUGUobSwzKSl9ZnVuY3Rpb24gTGcocCxtKXt2YXIgUz1XZShwKT9ndjpSdjtyZXR1cm4gUyhwLFBlKG0sMykpfXZhciBSZz1oZihmdW5jdGlvbihwLG0sUyl7Rm4uY2FsbChwLFMpP3BbU10ucHVzaChtKTpnaShwLFMsW21dKX0pO2Z1bmN0aW9uIFpoKHAsbSxTLFQpe3A9Q2kocCk/cDpxYyhwKSxTPVMmJiFUP1ZlKFMpOjA7dmFyIEI9cC5sZW5ndGg7cmV0dXJuIFM8MCYmKFM9bmkoQitTLDApKSxCZihwKT9TPD1CJiZwLmluZGV4T2YobSxTKT4tMTohIUImJkNjKHAsbSxTKT4tMX12YXIgUmY9SmUoZnVuY3Rpb24ocCxtLFMpe3ZhciBUPS0xLEI9dHlwZW9mIG09PSJmdW5jdGlvbiIsWT1DaShwKT92dChwLmxlbmd0aCk6W107cmV0dXJuIHRzKHAsZnVuY3Rpb24ocSl7WVsrK1RdPUI/THIobSxxLFMpOkRsKHEsbSxTKX0pLFl9KSxWeD1oZihmdW5jdGlvbihwLG0sUyl7Z2kocCxTLG0pfSk7ZnVuY3Rpb24gQmEocCxtKXt2YXIgUz1XZShwKT8kbjp6djtyZXR1cm4gUyhwLFBlKG0sMykpfWZ1bmN0aW9uIE5mKHAsbSxTLFQpe3JldHVybiBwPT1udWxsP1tdOihXZShtKXx8KG09bT09bnVsbD9bXTpbbV0pLFM9VD8kOlMsV2UoUyl8fChTPVM9PW51bGw/W106W1NdKSxraChwLG0sUykpfXZhciBrYT1oZihmdW5jdGlvbihwLG0sUyl7cFtTPzA6MV0ucHVzaChtKX0sZnVuY3Rpb24oKXtyZXR1cm5bW10sW11dfSk7ZnVuY3Rpb24gWHgocCxtLFMpe3ZhciBUPVdlKHApP1BjOnh2LEI9YXJndW1lbnRzLmxlbmd0aDwzO3JldHVybiBUKHAsUGUobSw0KSxTLEIsdHMpfWZ1bmN0aW9uIFloKHAsbSxTKXt2YXIgVD1XZShwKT93Yjp4dixCPWFyZ3VtZW50cy5sZW5ndGg8MztyZXR1cm4gVChwLFBlKG0sNCksUyxCLFJ2KX1mdW5jdGlvbiBSbihwLG0pe3ZhciBTPVdlKHApP1FhOk52O3JldHVybiBTKHAsSmwoUGUobSwzKSkpfWZ1bmN0aW9uIHphKHApe3ZhciBtPVdlKHApP0N2Om54O3JldHVybiBtKHApfWZ1bmN0aW9uIFhzKHAsbSxTKXsoUz9NbihwLG0sUyk6bT09PSQpP209MTptPVZlKG0pO3ZhciBUPVdlKHApP0ZiOmNmO3JldHVybiBUKHAsbSl9ZnVuY3Rpb24gSGgocCl7dmFyIG09V2UocCk/QmI6cng7cmV0dXJuIG0ocCl9ZnVuY3Rpb24gTmcocCl7aWYocD09bnVsbClyZXR1cm4gMDtpZihDaShwKSlyZXR1cm4gQmYocCk/QWwocCk6cC5sZW5ndGg7dmFyIG09QWkocCk7cmV0dXJuIG09PV9pfHxtPT14dD9wLnNpemU6ZW8ocCkubGVuZ3RofWZ1bmN0aW9uIFV4KHAsbSxTKXt2YXIgVD1XZShwKT9EczppeDtyZXR1cm4gUyYmTW4ocCxtLFMpJiYobT0kKSxUKHAsUGUobSwzKSl9dmFyIHF4PUplKGZ1bmN0aW9uKHAsbSl7aWYocD09bnVsbClyZXR1cm5bXTt2YXIgUz1tLmxlbmd0aDtyZXR1cm4gUz4xJiZNbihwLG1bMF0sbVsxXSk/bT1bXTpTPjImJk1uKG1bMF0sbVsxXSxtWzJdKSYmKG09W21bMF1dKSxraChwLFJyKG0sMSksW10pfSksVmM9VE18fGZ1bmN0aW9uKCl7cmV0dXJuIGxyLkRhdGUubm93KCl9O2Z1bmN0aW9uIEt4KHAsbSl7aWYodHlwZW9mIG0hPSJmdW5jdGlvbiIpdGhyb3cgbmV3IElhKFJ0KTtyZXR1cm4gcD1WZShwKSxmdW5jdGlvbigpe2lmKC0tcDwxKXJldHVybiBtLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19ZnVuY3Rpb24gVmgocCxtLFMpe3JldHVybiBtPVM/JDptLG09cCYmbT09bnVsbD9wLmxlbmd0aDptLElvKHAsZ24sJCwkLCQsJCxtKX1mdW5jdGlvbiBYaChwLG0pe3ZhciBTO2lmKHR5cGVvZiBtIT0iZnVuY3Rpb24iKXRocm93IG5ldyBJYShSdCk7cmV0dXJuIHA9VmUocCksZnVuY3Rpb24oKXtyZXR1cm4tLXA+MCYmKFM9bS5hcHBseSh0aGlzLGFyZ3VtZW50cykpLHA8PTEmJihtPSQpLFN9fXZhciBVaD1KZShmdW5jdGlvbihwLG0sUyl7dmFyIFQ9YnQ7aWYoUy5sZW5ndGgpe3ZhciBCPWpzKFMsR2MoVWgpKTtUfD1VZX1yZXR1cm4gSW8ocCxULG0sUyxCKX0pLFVuPUplKGZ1bmN0aW9uKHAsbSxTKXt2YXIgVD1idHxUdDtpZihTLmxlbmd0aCl7dmFyIEI9anMoUyxHYyhVbikpO1R8PVVlfXJldHVybiBJbyhtLFQscCxTLEIpfSk7ZnVuY3Rpb24gSWcocCxtLFMpe209Uz8kOm07dmFyIFQ9SW8ocCxfZSwkLCQsJCwkLCQsbSk7cmV0dXJuIFQucGxhY2Vob2xkZXI9SWcucGxhY2Vob2xkZXIsVH1mdW5jdGlvbiBEZyhwLG0sUyl7bT1TPyQ6bTt2YXIgVD1JbyhwLF9uLCQsJCwkLCQsJCxtKTtyZXR1cm4gVC5wbGFjZWhvbGRlcj1EZy5wbGFjZWhvbGRlcixUfWZ1bmN0aW9uIGpnKHAsbSxTKXt2YXIgVCxCLFkscSxldCxzdCxFdD0wLE10PSExLFB0PSExLFZ0PSEwO2lmKHR5cGVvZiBwIT0iZnVuY3Rpb24iKXRocm93IG5ldyBJYShSdCk7bT1UYShtKXx8MCxtcihTKSYmKE10PSEhUy5sZWFkaW5nLFB0PSJtYXhXYWl0ImluIFMsWT1QdD9uaShUYShTLm1heFdhaXQpfHwwLG0pOlksVnQ9InRyYWlsaW5nImluIFM/ISFTLnRyYWlsaW5nOlZ0KTtmdW5jdGlvbiBkZShTcil7dmFyIEdhPVQsQm89QjtyZXR1cm4gVD1CPSQsRXQ9U3IscT1wLmFwcGx5KEJvLEdhKSxxfWZ1bmN0aW9uIGtlKFNyKXtyZXR1cm4gRXQ9U3IsZXQ9SGwodG4sbSksTXQ/ZGUoU3IpOnF9ZnVuY3Rpb24gWGUoU3Ipe3ZhciBHYT1Tci1zdCxCbz1Tci1FdCx3eT1tLUdhO3JldHVybiBQdD9yaSh3eSxZLUJvKTp3eX1mdW5jdGlvbiB3ZShTcil7dmFyIEdhPVNyLXN0LEJvPVNyLUV0O3JldHVybiBzdD09PSR8fEdhPj1tfHxHYTwwfHxQdCYmQm8+PVl9ZnVuY3Rpb24gdG4oKXt2YXIgU3I9VmMoKTtpZih3ZShTcikpcmV0dXJuIGRuKFNyKTtldD1IbCh0bixYZShTcikpfWZ1bmN0aW9uIGRuKFNyKXtyZXR1cm4gZXQ9JCxWdCYmVD9kZShTcik6KFQ9Qj0kLHEpfWZ1bmN0aW9uIEhyKCl7ZXQhPT0kJiZ6bChldCksRXQ9MCxUPXN0PUI9ZXQ9JH1mdW5jdGlvbiBtaSgpe3JldHVybiBldD09PSQ/cTpkbihWYygpKX1mdW5jdGlvbiBoYSgpe3ZhciBTcj1WYygpLEdhPXdlKFNyKTtpZihUPWFyZ3VtZW50cyxCPXRoaXMsc3Q9U3IsR2Epe2lmKGV0PT09JClyZXR1cm4ga2Uoc3QpO2lmKFB0KXJldHVybiB6bChldCksZXQ9SGwodG4sbSksZGUoc3QpfXJldHVybiBldD09PSQmJihldD1IbCh0bixtKSkscX1yZXR1cm4gaGEuY2FuY2VsPUhyLGhhLmZsdXNoPW1pLGhhfXZhciBReD1KZShmdW5jdGlvbihwLG0pe3JldHVybiBMdihwLDEsbSl9KSxKeD1KZShmdW5jdGlvbihwLG0sUyl7cmV0dXJuIEx2KHAsVGEobSl8fDAsUyl9KTtmdW5jdGlvbiB0MihwKXtyZXR1cm4gSW8ocCxZbil9ZnVuY3Rpb24gSWYocCxtKXtpZih0eXBlb2YgcCE9ImZ1bmN0aW9uInx8bSE9bnVsbCYmdHlwZW9mIG0hPSJmdW5jdGlvbiIpdGhyb3cgbmV3IElhKFJ0KTt2YXIgUz1mdW5jdGlvbigpe3ZhciBUPWFyZ3VtZW50cyxCPW0/bS5hcHBseSh0aGlzLFQpOlRbMF0sWT1TLmNhY2hlO2lmKFkuaGFzKEIpKXJldHVybiBZLmdldChCKTt2YXIgcT1wLmFwcGx5KHRoaXMsVCk7cmV0dXJuIFMuY2FjaGU9WS5zZXQoQixxKXx8WSxxfTtyZXR1cm4gUy5jYWNoZT1uZXcoSWYuQ2FjaGV8fEpvKSxTfUlmLkNhY2hlPUpvO2Z1bmN0aW9uIEpsKHApe2lmKHR5cGVvZiBwIT0iZnVuY3Rpb24iKXRocm93IG5ldyBJYShSdCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG09YXJndW1lbnRzO3N3aXRjaChtLmxlbmd0aCl7Y2FzZSAwOnJldHVybiFwLmNhbGwodGhpcyk7Y2FzZSAxOnJldHVybiFwLmNhbGwodGhpcyxtWzBdKTtjYXNlIDI6cmV0dXJuIXAuY2FsbCh0aGlzLG1bMF0sbVsxXSk7Y2FzZSAzOnJldHVybiFwLmNhbGwodGhpcyxtWzBdLG1bMV0sbVsyXSl9cmV0dXJuIXAuYXBwbHkodGhpcyxtKX19ZnVuY3Rpb24gZTIocCl7cmV0dXJuIFhoKDIscCl9dmFyIG4yPVF2KGZ1bmN0aW9uKHAsbSl7bT1tLmxlbmd0aD09MSYmV2UobVswXSk/JG4obVswXSxraShQZSgpKSk6JG4oUnIobSwxKSxraShQZSgpKSk7dmFyIFM9bS5sZW5ndGg7cmV0dXJuIEplKGZ1bmN0aW9uKFQpe2Zvcih2YXIgQj0tMSxZPXJpKFQubGVuZ3RoLFMpOysrQjxZOylUW0JdPW1bQl0uY2FsbCh0aGlzLFRbQl0pO3JldHVybiBMcihwLHRoaXMsVCl9KX0pLHFoPUplKGZ1bmN0aW9uKHAsbSl7dmFyIFM9anMobSxHYyhxaCkpO3JldHVybiBJbyhwLFVlLCQsbSxTKX0pLEZnPUplKGZ1bmN0aW9uKHAsbSl7dmFyIFM9anMobSxHYyhGZykpO3JldHVybiBJbyhwLHBuLCQsbSxTKX0pLHIyPWlvKGZ1bmN0aW9uKHAsbSl7cmV0dXJuIElvKHAscm4sJCwkLCQsbSl9KTtmdW5jdGlvbiBpMihwLG0pe2lmKHR5cGVvZiBwIT0iZnVuY3Rpb24iKXRocm93IG5ldyBJYShSdCk7cmV0dXJuIG09bT09PSQ/bTpWZShtKSxKZShwLG0pfWZ1bmN0aW9uIGEyKHAsbSl7aWYodHlwZW9mIHAhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IElhKFJ0KTtyZXR1cm4gbT1tPT1udWxsPzA6bmkoVmUobSksMCksSmUoZnVuY3Rpb24oUyl7dmFyIFQ9U1ttXSxCPVhuKFMsMCxtKTtyZXR1cm4gVCYmZmEoQixUKSxMcihwLHRoaXMsQil9KX1mdW5jdGlvbiB1ayhwLG0sUyl7dmFyIFQ9ITAsQj0hMDtpZih0eXBlb2YgcCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgSWEoUnQpO3JldHVybiBtcihTKSYmKFQ9ImxlYWRpbmciaW4gUz8hIVMubGVhZGluZzpULEI9InRyYWlsaW5nImluIFM/ISFTLnRyYWlsaW5nOkIpLGpnKHAsbSx7bGVhZGluZzpULG1heFdhaXQ6bSx0cmFpbGluZzpCfSl9ZnVuY3Rpb24gVXMocCl7cmV0dXJuIFZoKHAsMSl9ZnVuY3Rpb24gRGYocCxtKXtyZXR1cm4gcWgoZmYobSkscCl9ZnVuY3Rpb24gb3MoKXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm5bXTt2YXIgcD1hcmd1bWVudHNbMF07cmV0dXJuIFdlKHApP3A6W3BdfWZ1bmN0aW9uIG8yKHApe3JldHVybiB3YShwLFh0KX1mdW5jdGlvbiB0dShwLG0pe3JldHVybiBtPXR5cGVvZiBtPT0iZnVuY3Rpb24iP206JCx3YShwLFh0LG0pfWZ1bmN0aW9uIEJnKHApe3JldHVybiB3YShwLFd0fFh0KX1mdW5jdGlvbiBzMihwLG0pe3JldHVybiBtPXR5cGVvZiBtPT0iZnVuY3Rpb24iP206JCx3YShwLFd0fFh0LG0pfWZ1bmN0aW9uIGMyKHAsbSl7cmV0dXJuIG09PW51bGx8fGpjKHAsbSxZcihtKSl9ZnVuY3Rpb24gQWEocCxtKXtyZXR1cm4gcD09PW18fHAhPT1wJiZtIT09bX12YXIgS2g9cm8obmYpLHpnPXJvKGZ1bmN0aW9uKHAsbSl7cmV0dXJuIHA+PW19KSxxcz1HcyhmdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHN9KCkpP0dzOmZ1bmN0aW9uKHApe3JldHVybiBfcihwKSYmRm4uY2FsbChwLCJjYWxsZWUiKSYmIVBsLmNhbGwocCwiY2FsbGVlIil9LFdlPXZ0LmlzQXJyYXkscWk9TnM/a2koTnMpOkhiO2Z1bmN0aW9uIENpKHApe3JldHVybiBwIT1udWxsJiZqZihwLmxlbmd0aCkmJiFXYShwKX1mdW5jdGlvbiBibihwKXtyZXR1cm4gX3IocCkmJkNpKHApfWZ1bmN0aW9uIGwyKHApe3JldHVybiBwPT09ITB8fHA9PT0hMXx8X3IocCkmJlpyKHApPT1VYX12YXIgc3M9Q018fGhwLHUyPVVkP2tpKFVkKTpWYjtmdW5jdGlvbiBXZyhwKXtyZXR1cm4gX3IocCkmJnAubm9kZVR5cGU9PT0xJiYhY3MocCl9ZnVuY3Rpb24gR2cocCl7aWYocD09bnVsbClyZXR1cm4hMDtpZihDaShwKSYmKFdlKHApfHx0eXBlb2YgcD09InN0cmluZyJ8fHR5cGVvZiBwLnNwbGljZT09ImZ1bmN0aW9uInx8c3MocCl8fEtzKHApfHxxcyhwKSkpcmV0dXJuIXAubGVuZ3RoO3ZhciBtPUFpKHApO2lmKG09PV9pfHxtPT14dClyZXR1cm4hcC5zaXplO2lmKCRsKHApKXJldHVybiFlbyhwKS5sZW5ndGg7Zm9yKHZhciBTIGluIHApaWYoRm4uY2FsbChwLFMpKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIFFoKHAsbSl7cmV0dXJuIGVzKHAsbSl9ZnVuY3Rpb24gSmgocCxtLFMpe1M9dHlwZW9mIFM9PSJmdW5jdGlvbiI/UzokO3ZhciBUPVM/UyhwLG0pOiQ7cmV0dXJuIFQ9PT0kP2VzKHAsbSwkLFMpOiEhVH1mdW5jdGlvbiBldShwKXtpZighX3IocCkpcmV0dXJuITE7dmFyIG09WnIocCk7cmV0dXJuIG09PVhvfHxtPT1Uc3x8dHlwZW9mIHAubWVzc2FnZT09InN0cmluZyImJnR5cGVvZiBwLm5hbWU9PSJzdHJpbmciJiYhY3MocCl9ZnVuY3Rpb24gJGcocCl7cmV0dXJuIHR5cGVvZiBwPT0ibnVtYmVyIiYmUmIocCl9ZnVuY3Rpb24gV2EocCl7aWYoIW1yKHApKXJldHVybiExO3ZhciBtPVpyKHApO3JldHVybiBtPT16aXx8bT09bWF8fG09PVhhfHxtPT13bH1mdW5jdGlvbiBaZyhwKXtyZXR1cm4gdHlwZW9mIHA9PSJudW1iZXIiJiZwPT1WZShwKX1mdW5jdGlvbiBqZihwKXtyZXR1cm4gdHlwZW9mIHA9PSJudW1iZXIiJiZwPi0xJiZwJTE9PTAmJnA8PXJ0fWZ1bmN0aW9uIG1yKHApe3ZhciBtPXR5cGVvZiBwO3JldHVybiBwIT1udWxsJiYobT09Im9iamVjdCJ8fG09PSJmdW5jdGlvbiIpfWZ1bmN0aW9uIF9yKHApe3JldHVybiBwIT1udWxsJiZ0eXBlb2YgcD09Im9iamVjdCJ9dmFyIG51PXB2P2tpKHB2KTpVYjtmdW5jdGlvbiBmMihwLG0pe3JldHVybiBwPT09bXx8RWgocCxtLGxnKG0pKX1mdW5jdGlvbiBGZihwLG0sUyl7cmV0dXJuIFM9dHlwZW9mIFM9PSJmdW5jdGlvbiI/UzokLEVoKHAsbSxsZyhtKSxTKX1mdW5jdGlvbiBZZyhwKXtyZXR1cm4gdHAocCkmJnAhPStwfWZ1bmN0aW9uIEhnKHApe2lmKGZnKHApKXRocm93IG5ldyB6ZShhZSk7cmV0dXJuIEJ2KHApfWZ1bmN0aW9uIFZnKHApe3JldHVybiBwPT09bnVsbH1mdW5jdGlvbiBkMihwKXtyZXR1cm4gcD09bnVsbH1mdW5jdGlvbiB0cChwKXtyZXR1cm4gdHlwZW9mIHA9PSJudW1iZXIifHxfcihwKSYmWnIocCk9PWJhfWZ1bmN0aW9uIGNzKHApe2lmKCFfcihwKXx8WnIocCkhPVdpKXJldHVybiExO3ZhciBtPWdoKHApO2lmKG09PT1udWxsKXJldHVybiEwO3ZhciBTPUZuLmNhbGwobSwiY29uc3RydWN0b3IiKSYmbS5jb25zdHJ1Y3RvcjtyZXR1cm4gdHlwZW9mIFM9PSJmdW5jdGlvbiImJlMgaW5zdGFuY2VvZiBTJiZmaC5jYWxsKFMpPT1oaH12YXIgcnU9cWQ/a2kocWQpOnFiO2Z1bmN0aW9uIFhnKHApe3JldHVybiBaZyhwKSYmcD49LXJ0JiZwPD1ydH12YXIgVWc9S2Q/a2koS2QpOktiO2Z1bmN0aW9uIEJmKHApe3JldHVybiB0eXBlb2YgcD09InN0cmluZyJ8fCFXZShwKSYmX3IocCkmJlpyKHApPT1PdH1mdW5jdGlvbiBkYShwKXtyZXR1cm4gdHlwZW9mIHA9PSJzeW1ib2wifHxfcihwKSYmWnIocCk9PWxufXZhciBLcz12dj9raSh2dik6UWI7ZnVuY3Rpb24gaDIocCl7cmV0dXJuIHA9PT0kfWZ1bmN0aW9uIHAyKHApe3JldHVybiBfcihwKSYmQWkocCk9PU1lfWZ1bmN0aW9uIHFnKHApe3JldHVybiBfcihwKSYmWnIocCk9PVRlfXZhciBmaz1ybyhhZiksS2c9cm8oZnVuY3Rpb24ocCxtKXtyZXR1cm4gcDw9bX0pO2Z1bmN0aW9uIFFnKHApe2lmKCFwKXJldHVybltdO2lmKENpKHApKXJldHVybiBCZihwKT9KYShwKTpWaShwKTtpZihSYyYmcFtSY10pcmV0dXJuIG1NKHBbUmNdKCkpO3ZhciBtPUFpKHApLFM9bT09X2k/T3Y6bT09eHQ/c2g6cWM7cmV0dXJuIFMocCl9ZnVuY3Rpb24gdW8ocCl7aWYoIXApcmV0dXJuIHA9PT0wP3A6MDtpZihwPVRhKHApLHA9PT10cnx8cD09PS10cil7dmFyIG09cDwwPy0xOjE7cmV0dXJuIG0qYWF9cmV0dXJuIHA9PT1wP3A6MH1mdW5jdGlvbiBWZShwKXt2YXIgbT11byhwKSxTPW0lMTtyZXR1cm4gbT09PW0/Uz9tLVM6bTowfWZ1bmN0aW9uIEpnKHApe3JldHVybiBwP3pzKFZlKHApLDAsV3IpOjB9ZnVuY3Rpb24gVGEocCl7aWYodHlwZW9mIHA9PSJudW1iZXIiKXJldHVybiBwO2lmKGRhKHApKXJldHVybiBCaTtpZihtcihwKSl7dmFyIG09dHlwZW9mIHAudmFsdWVPZj09ImZ1bmN0aW9uIj9wLnZhbHVlT2YoKTpwO3A9bXIobSk/bSsiIjptfWlmKHR5cGVvZiBwIT0ic3RyaW5nIilyZXR1cm4gcD09PTA/cDorcDtwPV92KHApO3ZhciBTPWx2LnRlc3QocCk7cmV0dXJuIFN8fFpkLnRlc3QocCk/VGMocC5zbGljZSgyKSxTPzI6OCk6Y3YudGVzdChwKT9CaTorcH1mdW5jdGlvbiB1cihwKXtyZXR1cm4gbm8ocCxLaShwKSl9ZnVuY3Rpb24gWGMocCl7cmV0dXJuIHA/enMoVmUocCksLXJ0LHJ0KTpwPT09MD9wOjB9ZnVuY3Rpb24gR2UocCl7cmV0dXJuIHA9PW51bGw/IiI6SGkocCl9dmFyIFFzPXpjKGZ1bmN0aW9uKHAsbSl7aWYoJGwobSl8fENpKG0pKXtubyhtLFlyKG0pLHApO3JldHVybn1mb3IodmFyIFMgaW4gbSlGbi5jYWxsKG0sUykmJk5sKHAsUyxtW1NdKX0pLFVjPXpjKGZ1bmN0aW9uKHAsbSl7bm8obSxLaShtKSxwKX0pLGl1PXpjKGZ1bmN0aW9uKHAsbSxTLFQpe25vKG0sS2kobSkscCxUKX0pLHR5PXpjKGZ1bmN0aW9uKHAsbSxTLFQpe25vKG0sWXIobSkscCxUKX0pLHYyPWlvKFYpO2Z1bmN0aW9uIGcyKHAsbSl7dmFyIFM9SWMocCk7cmV0dXJuIG09PW51bGw/Uzp0ZihTLG0pfXZhciB5Mj1KZShmdW5jdGlvbihwLG0pe3A9amUocCk7dmFyIFM9LTEsVD1tLmxlbmd0aCxCPVQ+Mj9tWzJdOiQ7Zm9yKEImJk1uKG1bMF0sbVsxXSxCKSYmKFQ9MSk7KytTPFQ7KWZvcih2YXIgWT1tW1NdLHE9S2koWSksZXQ9LTEsc3Q9cS5sZW5ndGg7KytldDxzdDspe3ZhciBFdD1xW2V0XSxNdD1wW0V0XTsoTXQ9PT0kfHxBYShNdCxUbFtFdF0pJiYhRm4uY2FsbChwLEV0KSkmJihwW0V0XT1ZW0V0XSl9cmV0dXJuIHB9KSxtMj1KZShmdW5jdGlvbihwKXtyZXR1cm4gcC5wdXNoKCQsb2cpLExyKGl5LCQscCl9KTtmdW5jdGlvbiBleShwLG0pe3JldHVybiBtdihwLFBlKG0sMyksdG8pfWZ1bmN0aW9uIGIyKHAsbSl7cmV0dXJuIG12KHAsUGUobSwzKSxTaCl9ZnVuY3Rpb24geDIocCxtKXtyZXR1cm4gcD09bnVsbD9wOk9oKHAsUGUobSwzKSxLaSl9ZnVuY3Rpb24gZXAocCxtKXtyZXR1cm4gcD09bnVsbD9wOkl2KHAsUGUobSwzKSxLaSl9ZnVuY3Rpb24gXzIocCxtKXtyZXR1cm4gcCYmdG8ocCxQZShtLDMpKX1mdW5jdGlvbiB3MihwLG0pe3JldHVybiBwJiZTaChwLFBlKG0sMykpfWZ1bmN0aW9uIG5wKHApe3JldHVybiBwPT1udWxsP1tdOmVmKHAsWXIocCkpfWZ1bmN0aW9uIHJwKHApe3JldHVybiBwPT1udWxsP1tdOmVmKHAsS2kocCkpfWZ1bmN0aW9uIGlwKHAsbSxTKXt2YXIgVD1wPT1udWxsPyQ6V3MocCxtKTtyZXR1cm4gVD09PSQ/UzpUfWZ1bmN0aW9uIE8yKHAsbSl7cmV0dXJuIHAhPW51bGwmJkZoKHAsbSxEdil9ZnVuY3Rpb24gYXAocCxtKXtyZXR1cm4gcCE9bnVsbCYmRmgocCxtLGp2KX12YXIgbnk9Y3goZnVuY3Rpb24ocCxtLFMpe20hPW51bGwmJnR5cGVvZiBtLnRvU3RyaW5nIT0iZnVuY3Rpb24iJiYobT1kaC5jYWxsKG0pKSxwW21dPVN9LG91KHlpKSksb3A9Y3goZnVuY3Rpb24ocCxtLFMpe20hPW51bGwmJnR5cGVvZiBtLnRvU3RyaW5nIT0iZnVuY3Rpb24iJiYobT1kaC5jYWxsKG0pKSxGbi5jYWxsKHAsbSk/cFttXS5wdXNoKFMpOnBbbV09W1NdfSxQZSksUzI9SmUoRGwpO2Z1bmN0aW9uIFlyKHApe3JldHVybiBDaShwKT9QdihwKTplbyhwKX1mdW5jdGlvbiBLaShwKXtyZXR1cm4gQ2kocCk/UHYocCwhMCk6TWgocCl9ZnVuY3Rpb24gRTIocCxtKXt2YXIgUz17fTtyZXR1cm4gbT1QZShtLDMpLHRvKHAsZnVuY3Rpb24oVCxCLFkpe2dpKFMsbShULEIsWSksVCl9KSxTfWZ1bmN0aW9uIHJ5KHAsbSl7dmFyIFM9e307cmV0dXJuIG09UGUobSwzKSx0byhwLGZ1bmN0aW9uKFQsQixZKXtnaShTLEIsbShULEIsWSkpfSksU312YXIgTTI9emMoZnVuY3Rpb24ocCxtLFMpe0ZsKHAsbSxTKX0pLGl5PXpjKGZ1bmN0aW9uKHAsbSxTLFQpe0ZsKHAsbSxTLFQpfSksazI9aW8oZnVuY3Rpb24ocCxtKXt2YXIgUz17fTtpZihwPT1udWxsKXJldHVybiBTO3ZhciBUPSExO209JG4obSxmdW5jdGlvbihZKXtyZXR1cm4gWT1ycyhZLHApLFR8fChUPVkubGVuZ3RoPjEpLFl9KSxubyhwLHhmKHApLFMpLFQmJihTPXdhKFMsV3R8ZWV8WHQsc2cpKTtmb3IodmFyIEI9bS5sZW5ndGg7Qi0tOylBaChTLG1bQl0pO3JldHVybiBTfSk7ZnVuY3Rpb24gQTIocCxtKXtyZXR1cm4gemYocCxKbChQZShtKSkpfXZhciBheT1pbyhmdW5jdGlvbihwLG0pe3JldHVybiBwPT1udWxsP3t9OnR4KHAsbSl9KTtmdW5jdGlvbiB6ZihwLG0pe2lmKHA9PW51bGwpcmV0dXJue307dmFyIFM9JG4oeGYocCksZnVuY3Rpb24oVCl7cmV0dXJuW1RdfSk7cmV0dXJuIG09UGUobSksTnIocCxTLGZ1bmN0aW9uKFQsQil7cmV0dXJuIG0oVCxCWzBdKX0pfWZ1bmN0aW9uIFQyKHAsbSxTKXttPXJzKG0scCk7dmFyIFQ9LTEsQj1tLmxlbmd0aDtmb3IoQnx8KEI9MSxwPSQpOysrVDxCOyl7dmFyIFk9cD09bnVsbD8kOnBbVGkobVtUXSldO1k9PT0kJiYoVD1CLFk9UykscD1XYShZKT9ZLmNhbGwocCk6WX1yZXR1cm4gcH1mdW5jdGlvbiBQMihwLG0sUyl7cmV0dXJuIHA9PW51bGw/cDpacyhwLG0sUyl9ZnVuY3Rpb24gQzIocCxtLFMsVCl7cmV0dXJuIFQ9dHlwZW9mIFQ9PSJmdW5jdGlvbiI/VDokLHA9PW51bGw/cDpacyhwLG0sUyxUKX12YXIgb3k9bWYoWXIpLHN5PW1mKEtpKTtmdW5jdGlvbiBMMihwLG0sUyl7dmFyIFQ9V2UocCksQj1UfHxzcyhwKXx8S3MocCk7aWYobT1QZShtLDQpLFM9PW51bGwpe3ZhciBZPXAmJnAuY29uc3RydWN0b3I7Qj9TPVQ/bmV3IFk6W106bXIocCk/Uz1XYShZKT9JYyhnaChwKSk6e306Uz17fX1yZXR1cm4oQj91YTp0bykocCxmdW5jdGlvbihxLGV0LHN0KXtyZXR1cm4gbShTLHEsZXQsc3QpfSksU31mdW5jdGlvbiBSMihwLG0pe3JldHVybiBwPT1udWxsPyEwOkFoKHAsbSl9ZnVuY3Rpb24gTjIocCxtLFMpe3JldHVybiBwPT1udWxsP3A6VXYocCxtLGZmKFMpKX1mdW5jdGlvbiBJMihwLG0sUyxUKXtyZXR1cm4gVD10eXBlb2YgVD09ImZ1bmN0aW9uIj9UOiQscD09bnVsbD9wOlV2KHAsbSxmZihTKSxUKX1mdW5jdGlvbiBxYyhwKXtyZXR1cm4gcD09bnVsbD9bXTphaChwLFlyKHApKX1mdW5jdGlvbiBEMihwKXtyZXR1cm4gcD09bnVsbD9bXTphaChwLEtpKHApKX1mdW5jdGlvbiBkayhwLG0sUyl7cmV0dXJuIFM9PT0kJiYoUz1tLG09JCksUyE9PSQmJihTPVRhKFMpLFM9Uz09PVM/UzowKSxtIT09JCYmKG09VGEobSksbT1tPT09bT9tOjApLHpzKFRhKHApLG0sUyl9ZnVuY3Rpb24gc3AocCxtLFMpe3JldHVybiBtPXVvKG0pLFM9PT0kPyhTPW0sbT0wKTpTPXVvKFMpLHA9VGEocCksRnYocCxtLFMpfWZ1bmN0aW9uIGoyKHAsbSxTKXtpZihTJiZ0eXBlb2YgUyE9ImJvb2xlYW4iJiZNbihwLG0sUykmJihtPVM9JCksUz09PSQmJih0eXBlb2YgbT09ImJvb2xlYW4iPyhTPW0sbT0kKTp0eXBlb2YgcD09ImJvb2xlYW4iJiYoUz1wLHA9JCkpLHA9PT0kJiZtPT09JD8ocD0wLG09MSk6KHA9dW8ocCksbT09PSQ/KG09cCxwPTApOm09dW8obSkpLHA+bSl7dmFyIFQ9cDtwPW0sbT1UfWlmKFN8fHAlMXx8bSUxKXt2YXIgQj1rdigpO3JldHVybiByaShwK0IqKG0tcCtkdigiMWUtIisoKEIrIiIpLmxlbmd0aC0xKSkpLG0pfXJldHVybiAkcyhwLG0pfXZhciBjcD1XYyhmdW5jdGlvbihwLG0sUyl7cmV0dXJuIG09bS50b0xvd2VyQ2FzZSgpLHArKFM/Y3kobSk6bSl9KTtmdW5jdGlvbiBjeShwKXtyZXR1cm4gR2YoR2UocCkudG9Mb3dlckNhc2UoKSl9ZnVuY3Rpb24gbHkocCl7cmV0dXJuIHA9R2UocCkscCYmcC5yZXBsYWNlKE9pLHBNKS5yZXBsYWNlKHNNLCIiKX1mdW5jdGlvbiB1eShwLG0sUyl7cD1HZShwKSxtPUhpKG0pO3ZhciBUPXAubGVuZ3RoO1M9Uz09PSQ/VDp6cyhWZShTKSwwLFQpO3ZhciBCPVM7cmV0dXJuIFMtPW0ubGVuZ3RoLFM+PTAmJnAuc2xpY2UoUyxCKT09bX1mdW5jdGlvbiBmeShwKXtyZXR1cm4gcD1HZShwKSxwJiZCZC50ZXN0KHApP3AucmVwbGFjZShOYSx2TSk6cH1mdW5jdGlvbiBkeShwKXtyZXR1cm4gcD1HZShwKSxwJiZTbC50ZXN0KHApP3AucmVwbGFjZShVbywiXFwkJiIpOnB9dmFyIEYyPVdjKGZ1bmN0aW9uKHAsbSxTKXtyZXR1cm4gcCsoUz8iLSI6IiIpK20udG9Mb3dlckNhc2UoKX0pLGh5PVdjKGZ1bmN0aW9uKHAsbSxTKXtyZXR1cm4gcCsoUz8iICI6IiIpK20udG9Mb3dlckNhc2UoKX0pLEIyPU5oKCJ0b0xvd2VyQ2FzZSIpO2Z1bmN0aW9uIHoyKHAsbSxTKXtwPUdlKHApLG09VmUobSk7dmFyIFQ9bT9BbChwKTowO2lmKCFtfHxUPj1tKXJldHVybiBwO3ZhciBCPShtLVQpLzI7cmV0dXJuIGdmKG1oKEIpLFMpK3ArZ2YoeWgoQiksUyl9ZnVuY3Rpb24gVzIocCxtLFMpe3A9R2UocCksbT1WZShtKTt2YXIgVD1tP0FsKHApOjA7cmV0dXJuIG0mJlQ8bT9wK2dmKG0tVCxTKTpwfWZ1bmN0aW9uIEcyKHAsbSxTKXtwPUdlKHApLG09VmUobSk7dmFyIFQ9bT9BbChwKTowO3JldHVybiBtJiZUPG0/Z2YobS1ULFMpK3A6cH1mdW5jdGlvbiBscChwLG0sUyl7cmV0dXJuIFN8fG09PW51bGw/bT0wOm0mJihtPSttKSxJTShHZShwKS5yZXBsYWNlKE9jLCIiKSxtfHwwKX1mdW5jdGlvbiBXZihwLG0sUyl7cmV0dXJuKFM/TW4ocCxtLFMpOm09PT0kKT9tPTE6bT1WZShtKSxzZihHZShwKSxtKX1mdW5jdGlvbiBKcygpe3ZhciBwPWFyZ3VtZW50cyxtPUdlKHBbMF0pO3JldHVybiBwLmxlbmd0aDwzP206bS5yZXBsYWNlKHBbMV0scFsyXSl9dmFyICQyPVdjKGZ1bmN0aW9uKHAsbSxTKXtyZXR1cm4gcCsoUz8iXyI6IiIpK20udG9Mb3dlckNhc2UoKX0pO2Z1bmN0aW9uIFoyKHAsbSxTKXtyZXR1cm4gUyYmdHlwZW9mIFMhPSJudW1iZXIiJiZNbihwLG0sUykmJihtPVM9JCksUz1TPT09JD9XcjpTPj4+MCxTPyhwPUdlKHApLHAmJih0eXBlb2YgbT09InN0cmluZyJ8fG0hPW51bGwmJiFydShtKSkmJihtPUhpKG0pLCFtJiZrbChwKSk/WG4oSmEocCksMCxTKTpwLnNwbGl0KG0sUykpOltdfXZhciBmbz1XYyhmdW5jdGlvbihwLG0sUyl7cmV0dXJuIHArKFM/IiAiOiIiKStHZihtKX0pO2Z1bmN0aW9uIFkyKHAsbSxTKXtyZXR1cm4gcD1HZShwKSxTPVM9PW51bGw/MDp6cyhWZShTKSwwLHAubGVuZ3RoKSxtPUhpKG0pLHAuc2xpY2UoUyxTK20ubGVuZ3RoKT09bX1mdW5jdGlvbiBIMihwLG0sUyl7dmFyIFQ9Wi50ZW1wbGF0ZVNldHRpbmdzO1MmJk1uKHAsbSxTKSYmKG09JCkscD1HZShwKSxtPWl1KHt9LG0sVCxmeCk7dmFyIEI9aXUoe30sbS5pbXBvcnRzLFQuaW1wb3J0cyxmeCksWT1ZcihCKSxxPWFoKEIsWSksZXQsc3QsRXQ9MCxNdD1tLmludGVycG9sYXRlfHxqLFB0PSJfX3AgKz0gJyIsVnQ9U3YoKG0uZXNjYXBlfHxqKS5zb3VyY2UrInwiK010LnNvdXJjZSsifCIrKE10PT09emQ/RWw6aikuc291cmNlKyJ8IisobS5ldmFsdWF0ZXx8aikuc291cmNlKyJ8JCIsImciKSxkZT0iLy8jIHNvdXJjZVVSTD0iKyhGbi5jYWxsKG0sInNvdXJjZVVSTCIpPyhtLnNvdXJjZVVSTCsiIikucmVwbGFjZSgvXHMvZywiICIpOiJsb2Rhc2gudGVtcGxhdGVTb3VyY2VzWyIrICsrdU0rIl0iKStgCitgO3AucmVwbGFjZShWdCxmdW5jdGlvbih3ZSx0bixkbixIcixtaSxoYSl7cmV0dXJuIGRufHwoZG49SHIpLFB0Kz1wLnNsaWNlKEV0LGhhKS5yZXBsYWNlKHosa2IpLHRuJiYoZXQ9ITAsUHQrPWAnICsKK19fZShgK3RuK2ApICsKKydgKSxtaSYmKHN0PSEwLFB0Kz1gJzsKK2ArbWkrYDsKK19fcCArPSAnYCksZG4mJihQdCs9YCcgKworKChfX3QgPSAoYCtkbitgKSkgPT0gbnVsbCA/ICcnIDogX190KSArCisnYCksRXQ9aGErd2UubGVuZ3RoLHdlfSksUHQrPWAnOworYDt2YXIga2U9Rm4uY2FsbChtLCJ2YXJpYWJsZSIpJiZtLnZhcmlhYmxlO2lmKCFrZSlQdD1gd2l0aCAob2JqKSB7CitgK1B0K2AKK30KK2A7ZWxzZSBpZihsYS50ZXN0KGtlKSl0aHJvdyBuZXcgemUocXQpO1B0PShzdD9QdC5yZXBsYWNlKHNhLCIiKTpQdCkucmVwbGFjZShzbiwiJDEiKS5yZXBsYWNlKGNhLCIkMTsiKSxQdD0iZnVuY3Rpb24oIisoa2V8fCJvYmoiKStgKSB7CitgKyhrZT8iIjpgb2JqIHx8IChvYmogPSB7fSk7CitgKSsidmFyIF9fdCwgX19wID0gJyciKyhldD8iLCBfX2UgPSBfLmVzY2FwZSI6IiIpKyhzdD9gLCBfX2ogPSBBcnJheS5wcm90b3R5cGUuam9pbjsKK2Z1bmN0aW9uIHByaW50KCkgeyBfX3AgKz0gX19qLmNhbGwoYXJndW1lbnRzLCAnJykgfQorYDpgOworYCkrUHQrYHJldHVybiBfX3AKK31gO3ZhciBYZT11cChmdW5jdGlvbigpe3JldHVybiBTbihZLGRlKyJyZXR1cm4gIitQdCkuYXBwbHkoJCxxKX0pO2lmKFhlLnNvdXJjZT1QdCxldShYZSkpdGhyb3cgWGU7cmV0dXJuIFhlfWZ1bmN0aW9uIGF1KHApe3JldHVybiBHZShwKS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIHB5KHApe3JldHVybiBHZShwKS50b1VwcGVyQ2FzZSgpfWZ1bmN0aW9uIFYyKHAsbSxTKXtpZihwPUdlKHApLHAmJihTfHxtPT09JCkpcmV0dXJuIF92KHApO2lmKCFwfHwhKG09SGkobSkpKXJldHVybiBwO3ZhciBUPUphKHApLEI9SmEobSksWT13dihULEIpLHE9b2goVCxCKSsxO3JldHVybiBYbihULFkscSkuam9pbigiIil9ZnVuY3Rpb24gWDIocCxtLFMpe2lmKHA9R2UocCkscCYmKFN8fG09PT0kKSlyZXR1cm4gcC5zbGljZSgwLFRiKHApKzEpO2lmKCFwfHwhKG09SGkobSkpKXJldHVybiBwO3ZhciBUPUphKHApLEI9b2goVCxKYShtKSkrMTtyZXR1cm4gWG4oVCwwLEIpLmpvaW4oIiIpfWZ1bmN0aW9uIFUyKHAsbSxTKXtpZihwPUdlKHApLHAmJihTfHxtPT09JCkpcmV0dXJuIHAucmVwbGFjZShPYywiIik7aWYoIXB8fCEobT1IaShtKSkpcmV0dXJuIHA7dmFyIFQ9SmEocCksQj13dihULEphKG0pKTtyZXR1cm4gWG4oVCxCKS5qb2luKCIiKX1mdW5jdGlvbiB2eShwLG0pe3ZhciBTPUpuLFQ9Q2U7aWYobXIobSkpe3ZhciBCPSJzZXBhcmF0b3IiaW4gbT9tLnNlcGFyYXRvcjpCO1M9Imxlbmd0aCJpbiBtP1ZlKG0ubGVuZ3RoKTpTLFQ9Im9taXNzaW9uImluIG0/SGkobS5vbWlzc2lvbik6VH1wPUdlKHApO3ZhciBZPXAubGVuZ3RoO2lmKGtsKHApKXt2YXIgcT1KYShwKTtZPXEubGVuZ3RofWlmKFM+PVkpcmV0dXJuIHA7dmFyIGV0PVMtQWwoVCk7aWYoZXQ8MSlyZXR1cm4gVDt2YXIgc3Q9cT9YbihxLDAsZXQpLmpvaW4oIiIpOnAuc2xpY2UoMCxldCk7aWYoQj09PSQpcmV0dXJuIHN0K1Q7aWYocSYmKGV0Kz1zdC5sZW5ndGgtZXQpLHJ1KEIpKXtpZihwLnNsaWNlKGV0KS5zZWFyY2goQikpe3ZhciBFdCxNdD1zdDtmb3IoQi5nbG9iYWx8fChCPVN2KEIuc291cmNlLEdlKCRkLmV4ZWMoQikpKyJnIikpLEIubGFzdEluZGV4PTA7RXQ9Qi5leGVjKE10KTspdmFyIFB0PUV0LmluZGV4O3N0PXN0LnNsaWNlKDAsUHQ9PT0kP2V0OlB0KX19ZWxzZSBpZihwLmluZGV4T2YoSGkoQiksZXQpIT1ldCl7dmFyIFZ0PXN0Lmxhc3RJbmRleE9mKEIpO1Z0Pi0xJiYoc3Q9c3Quc2xpY2UoMCxWdCkpfXJldHVybiBzdCtUfWZ1bmN0aW9uIHEyKHApe3JldHVybiBwPUdlKHApLHAmJk9sLnRlc3QocCk/cC5yZXBsYWNlKEdyLHdNKTpwfXZhciBLMj1XYyhmdW5jdGlvbihwLG0sUyl7cmV0dXJuIHArKFM/IiAiOiIiKSttLnRvVXBwZXJDYXNlKCl9KSxHZj1OaCgidG9VcHBlckNhc2UiKTtmdW5jdGlvbiAkZihwLG0sUyl7cmV0dXJuIHA9R2UocCksbT1TPyQ6bSxtPT09JD95TShwKT9FTShwKTp5dihwKTpwLm1hdGNoKG0pfHxbXX12YXIgdXA9SmUoZnVuY3Rpb24ocCxtKXt0cnl7cmV0dXJuIExyKHAsJCxtKX1jYXRjaChTKXtyZXR1cm4gZXUoUyk/UzpuZXcgemUoUyl9fSksUTI9aW8oZnVuY3Rpb24ocCxtKXtyZXR1cm4gdWEobSxmdW5jdGlvbihTKXtTPVRpKFMpLGdpKHAsUyxVaChwW1NdLHApKX0pLHB9KTtmdW5jdGlvbiBKMihwKXt2YXIgbT1wPT1udWxsPzA6cC5sZW5ndGgsUz1QZSgpO3JldHVybiBwPW0/JG4ocCxmdW5jdGlvbihUKXtpZih0eXBlb2YgVFsxXSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgSWEoUnQpO3JldHVybltTKFRbMF0pLFRbMV1dfSk6W10sSmUoZnVuY3Rpb24oVCl7Zm9yKHZhciBCPS0xOysrQjxtOyl7dmFyIFk9cFtCXTtpZihMcihZWzBdLHRoaXMsVCkpcmV0dXJuIExyKFlbMV0sdGhpcyxUKX19KX1mdW5jdGlvbiBMaShwKXtyZXR1cm4gdGUod2EocCxXdCkpfWZ1bmN0aW9uIG91KHApe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBwfX1mdW5jdGlvbiB0XyhwLG0pe3JldHVybiBwPT1udWxsfHxwIT09cD9tOnB9dmFyIGVfPUloKCksbl89SWgoITApO2Z1bmN0aW9uIHlpKHApe3JldHVybiBwfWZ1bmN0aW9uIGJyKHApe3JldHVybiBqbCh0eXBlb2YgcD09ImZ1bmN0aW9uIj9wOndhKHAsV3QpKX1mdW5jdGlvbiByXyhwKXtyZXR1cm4gV3Yod2EocCxXdCkpfWZ1bmN0aW9uIGlfKHAsbSl7cmV0dXJuIEd2KHAsd2EobSxXdCkpfXZhciBhXz1KZShmdW5jdGlvbihwLG0pe3JldHVybiBmdW5jdGlvbihTKXtyZXR1cm4gRGwoUyxwLG0pfX0pLG9fPUplKGZ1bmN0aW9uKHAsbSl7cmV0dXJuIGZ1bmN0aW9uKFMpe3JldHVybiBEbChwLFMsbSl9fSk7ZnVuY3Rpb24gWmYocCxtLFMpe3ZhciBUPVlyKG0pLEI9ZWYobSxUKTtTPT1udWxsJiYhKG1yKG0pJiYoQi5sZW5ndGh8fCFULmxlbmd0aCkpJiYoUz1tLG09cCxwPXRoaXMsQj1lZihtLFlyKG0pKSk7dmFyIFk9IShtcihTKSYmImNoYWluImluIFMpfHwhIVMuY2hhaW4scT1XYShwKTtyZXR1cm4gdWEoQixmdW5jdGlvbihldCl7dmFyIHN0PW1bZXRdO3BbZXRdPXN0LHEmJihwLnByb3RvdHlwZVtldF09ZnVuY3Rpb24oKXt2YXIgRXQ9dGhpcy5fX2NoYWluX187aWYoWXx8RXQpe3ZhciBNdD1wKHRoaXMuX193cmFwcGVkX18pLFB0PU10Ll9fYWN0aW9uc19fPVZpKHRoaXMuX19hY3Rpb25zX18pO3JldHVybiBQdC5wdXNoKHtmdW5jOnN0LGFyZ3M6YXJndW1lbnRzLHRoaXNBcmc6cH0pLE10Ll9fY2hhaW5fXz1FdCxNdH1yZXR1cm4gc3QuYXBwbHkocCxmYShbdGhpcy52YWx1ZSgpXSxhcmd1bWVudHMpKX0pfSkscH1mdW5jdGlvbiBneSgpe3JldHVybiBsci5fPT09dGhpcyYmKGxyLl89a00pLHRoaXN9ZnVuY3Rpb24gZnAoKXt9ZnVuY3Rpb24gc18ocCl7cmV0dXJuIHA9VmUocCksSmUoZnVuY3Rpb24obSl7cmV0dXJuICR2KG0scCl9KX12YXIgY189T2EoJG4pLGxfPU9hKFFkKSx1Xz1PYShEcyk7ZnVuY3Rpb24geXkocCl7cmV0dXJuIG9vKHApP1l1KFRpKHApKTpvZihwKX1mdW5jdGlvbiBmXyhwKXtyZXR1cm4gZnVuY3Rpb24obSl7cmV0dXJuIHA9PW51bGw/JDpXcyhwLG0pfX12YXIgZF89bHgoKSxoXz1seCghMCk7ZnVuY3Rpb24gZHAoKXtyZXR1cm5bXX1mdW5jdGlvbiBocCgpe3JldHVybiExfWZ1bmN0aW9uIHBfKCl7cmV0dXJue319ZnVuY3Rpb24gaGsoKXtyZXR1cm4iIn1mdW5jdGlvbiBZZigpe3JldHVybiEwfWZ1bmN0aW9uIG15KHAsbSl7aWYocD1WZShwKSxwPDF8fHA+cnQpcmV0dXJuW107dmFyIFM9V3IsVD1yaShwLFdyKTttPVBlKG0pLHAtPVdyO2Zvcih2YXIgQj1IdShULG0pOysrUzxwOyltKFMpO3JldHVybiBCfWZ1bmN0aW9uIHBwKHApe3JldHVybiBXZShwKT8kbihwLFRpKTpkYShwKT9bcF06Vmkoa24oR2UocCkpKX1mdW5jdGlvbiB2cChwKXt2YXIgbT0rK1BiO3JldHVybiBHZShwKSttfXZhciBObj1XbChmdW5jdGlvbihwLG0pe3JldHVybiBwK219LDApLGJ5PXlmKCJjZWlsIikseHk9V2woZnVuY3Rpb24ocCxtKXtyZXR1cm4gcC9tfSwxKSxmcj15ZigiZmxvb3IiKTtmdW5jdGlvbiB2XyhwKXtyZXR1cm4gcCYmcC5sZW5ndGg/RmMocCx5aSxuZik6JH1mdW5jdGlvbiBnXyhwLG0pe3JldHVybiBwJiZwLmxlbmd0aD9GYyhwLFBlKG0sMiksbmYpOiR9ZnVuY3Rpb24gZ3AocCl7cmV0dXJuIG5oKHAseWkpfWZ1bmN0aW9uIEtjKHAsbSl7cmV0dXJuIG5oKHAsUGUobSwyKSl9ZnVuY3Rpb24geV8ocCl7cmV0dXJuIHAmJnAubGVuZ3RoP0ZjKHAseWksYWYpOiR9ZnVuY3Rpb24gbV8ocCxtKXtyZXR1cm4gcCYmcC5sZW5ndGg/RmMocCxQZShtLDIpLGFmKTokfXZhciBiXz1XbChmdW5jdGlvbihwLG0pe3JldHVybiBwKm19LDEpLCRlPXlmKCJyb3VuZCIpLGhvPVdsKGZ1bmN0aW9uKHAsbSl7cmV0dXJuIHAtbX0sMCk7ZnVuY3Rpb24gX3kocCl7cmV0dXJuIHAmJnAubGVuZ3RoP2loKHAseWkpOjB9ZnVuY3Rpb24geF8ocCxtKXtyZXR1cm4gcCYmcC5sZW5ndGg/aWgocCxQZShtLDIpKTowfXJldHVybiBaLmFmdGVyPUt4LFouYXJ5PVZoLFouYXNzaWduPVFzLFouYXNzaWduSW49VWMsWi5hc3NpZ25JbldpdGg9aXUsWi5hc3NpZ25XaXRoPXR5LFouYXQ9djIsWi5iZWZvcmU9WGgsWi5iaW5kPVVoLFouYmluZEFsbD1RMixaLmJpbmRLZXk9VW4sWi5jYXN0QXJyYXk9b3MsWi5jaGFpbj1RbCxaLmNodW5rPVBpLFouY29tcGFjdD1ieCxaLmNvbmNhdD1DbixaLmNvbmQ9SjIsWi5jb25mb3Jtcz1MaSxaLmNvbnN0YW50PW91LFouY291bnRCeT1adCxaLmNyZWF0ZT1nMixaLmN1cnJ5PUlnLFouY3VycnlSaWdodD1EZyxaLmRlYm91bmNlPWpnLFouZGVmYXVsdHM9eTIsWi5kZWZhdWx0c0RlZXA9bTIsWi5kZWZlcj1ReCxaLmRlbGF5PUp4LFouZGlmZmVyZW5jZT14eCxaLmRpZmZlcmVuY2VCeT1TYSxaLmRpZmZlcmVuY2VXaXRoPV94LFouZHJvcD1jayxaLmRyb3BSaWdodD1sayxaLmRyb3BSaWdodFdoaWxlPXd4LFouZHJvcFdoaWxlPUVmLFouZmlsbD1PeCxaLmZpbHRlcj1HeCxaLmZsYXRNYXA9SGMsWi5mbGF0TWFwRGVlcD1ZeCxaLmZsYXRNYXBEZXB0aD1IeCxaLmZsYXR0ZW49eWcsWi5mbGF0dGVuRGVlcD1TeCxaLmZsYXR0ZW5EZXB0aD1tZyxaLmZsaXA9dDIsWi5mbG93PWVfLFouZmxvd1JpZ2h0PW5fLFouZnJvbVBhaXJzPXNvLFouZnVuY3Rpb25zPW5wLFouZnVuY3Rpb25zSW49cnAsWi5ncm91cEJ5PVJnLFouaW5pdGlhbD1MZSxaLmludGVyc2VjdGlvbj1iZyxaLmludGVyc2VjdGlvbkJ5PUV4LFouaW50ZXJzZWN0aW9uV2l0aD1NeCxaLmludmVydD1ueSxaLmludmVydEJ5PW9wLFouaW52b2tlTWFwPVJmLFouaXRlcmF0ZWU9YnIsWi5rZXlCeT1WeCxaLmtleXM9WXIsWi5rZXlzSW49S2ksWi5tYXA9QmEsWi5tYXBLZXlzPUUyLFoubWFwVmFsdWVzPXJ5LFoubWF0Y2hlcz1yXyxaLm1hdGNoZXNQcm9wZXJ0eT1pXyxaLm1lbW9pemU9SWYsWi5tZXJnZT1NMixaLm1lcmdlV2l0aD1peSxaLm1ldGhvZD1hXyxaLm1ldGhvZE9mPW9fLFoubWl4aW49WmYsWi5uZWdhdGU9SmwsWi5udGhBcmc9c18sWi5vbWl0PWsyLFoub21pdEJ5PUEyLFoub25jZT1lMixaLm9yZGVyQnk9TmYsWi5vdmVyPWNfLFoub3ZlckFyZ3M9bjIsWi5vdmVyRXZlcnk9bF8sWi5vdmVyU29tZT11XyxaLnBhcnRpYWw9cWgsWi5wYXJ0aWFsUmlnaHQ9RmcsWi5wYXJ0aXRpb249a2EsWi5waWNrPWF5LFoucGlja0J5PXpmLFoucHJvcGVydHk9eXksWi5wcm9wZXJ0eU9mPWZfLFoucHVsbD1NYSxaLnB1bGxBbGw9V2gsWi5wdWxsQWxsQnk9eGcsWi5wdWxsQWxsV2l0aD1fZyxaLnB1bGxBdD1BeCxaLnJhbmdlPWRfLFoucmFuZ2VSaWdodD1oXyxaLnJlYXJnPXIyLFoucmVqZWN0PVJuLFoucmVtb3ZlPWtmLFoucmVzdD1pMixaLnJldmVyc2U9QWYsWi5zYW1wbGVTaXplPVhzLFouc2V0PVAyLFouc2V0V2l0aD1DMixaLnNodWZmbGU9SGgsWi5zbGljZT16dCxaLnNvcnRCeT1xeCxaLnNvcnRlZFVuaXE9cWwsWi5zb3J0ZWRVbmlxQnk9Y28sWi5zcGxpdD1aMixaLnNwcmVhZD1hMixaLnRhaWw9VHgsWi50YWtlPVB4LFoudGFrZVJpZ2h0PUN4LFoudGFrZVJpZ2h0V2hpbGU9THgsWi50YWtlV2hpbGU9UngsWi50YXA9VnMsWi50aHJvdHRsZT11ayxaLnRocnU9bG8sWi50b0FycmF5PVFnLFoudG9QYWlycz1veSxaLnRvUGFpcnNJbj1zeSxaLnRvUGF0aD1wcCxaLnRvUGxhaW5PYmplY3Q9dXIsWi50cmFuc2Zvcm09TDIsWi51bmFyeT1VcyxaLnVuaW9uPU54LFoudW5pb25CeT1JeCxaLnVuaW9uV2l0aD1PZyxaLnVuaXE9U2csWi51bmlxQnk9RHgsWi51bmlxV2l0aD1qeCxaLnVuc2V0PVIyLFoudW56aXA9UGYsWi51bnppcFdpdGg9S2wsWi51cGRhdGU9TjIsWi51cGRhdGVXaXRoPUkyLFoudmFsdWVzPXFjLFoudmFsdWVzSW49RDIsWi53aXRob3V0PUVnLFoud29yZHM9JGYsWi53cmFwPURmLFoueG9yPUNmLFoueG9yQnk9RngsWi54b3JXaXRoPUJ4LFouemlwPVVpLFouemlwT2JqZWN0PU1nLFouemlwT2JqZWN0RGVlcD16eCxaLnppcFdpdGg9a2csWi5lbnRyaWVzPW95LFouZW50cmllc0luPXN5LFouZXh0ZW5kPVVjLFouZXh0ZW5kV2l0aD1pdSxaZihaLFopLFouYWRkPU5uLFouYXR0ZW1wdD11cCxaLmNhbWVsQ2FzZT1jcCxaLmNhcGl0YWxpemU9Y3ksWi5jZWlsPWJ5LFouY2xhbXA9ZGssWi5jbG9uZT1vMixaLmNsb25lRGVlcD1CZyxaLmNsb25lRGVlcFdpdGg9czIsWi5jbG9uZVdpdGg9dHUsWi5jb25mb3Jtc1RvPWMyLFouZGVidXJyPWx5LFouZGVmYXVsdFRvPXRfLFouZGl2aWRlPXh5LFouZW5kc1dpdGg9dXksWi5lcT1BYSxaLmVzY2FwZT1meSxaLmVzY2FwZVJlZ0V4cD1keSxaLmV2ZXJ5PUZhLFouZmluZD0keCxaLmZpbmRJbmRleD1nZyxaLmZpbmRLZXk9ZXksWi5maW5kTGFzdD1aeCxaLmZpbmRMYXN0SW5kZXg9TWYsWi5maW5kTGFzdEtleT1iMixaLmZsb29yPWZyLFouZm9yRWFjaD1DZyxaLmZvckVhY2hSaWdodD1MZyxaLmZvckluPXgyLFouZm9ySW5SaWdodD1lcCxaLmZvck93bj1fMixaLmZvck93blJpZ2h0PXcyLFouZ2V0PWlwLFouZ3Q9S2gsWi5ndGU9emcsWi5oYXM9TzIsWi5oYXNJbj1hcCxaLmhlYWQ9RWEsWi5pZGVudGl0eT15aSxaLmluY2x1ZGVzPVpoLFouaW5kZXhPZj1WbCxaLmluUmFuZ2U9c3AsWi5pbnZva2U9UzIsWi5pc0FyZ3VtZW50cz1xcyxaLmlzQXJyYXk9V2UsWi5pc0FycmF5QnVmZmVyPXFpLFouaXNBcnJheUxpa2U9Q2ksWi5pc0FycmF5TGlrZU9iamVjdD1ibixaLmlzQm9vbGVhbj1sMixaLmlzQnVmZmVyPXNzLFouaXNEYXRlPXUyLFouaXNFbGVtZW50PVdnLFouaXNFbXB0eT1HZyxaLmlzRXF1YWw9UWgsWi5pc0VxdWFsV2l0aD1KaCxaLmlzRXJyb3I9ZXUsWi5pc0Zpbml0ZT0kZyxaLmlzRnVuY3Rpb249V2EsWi5pc0ludGVnZXI9WmcsWi5pc0xlbmd0aD1qZixaLmlzTWFwPW51LFouaXNNYXRjaD1mMixaLmlzTWF0Y2hXaXRoPUZmLFouaXNOYU49WWcsWi5pc05hdGl2ZT1IZyxaLmlzTmlsPWQyLFouaXNOdWxsPVZnLFouaXNOdW1iZXI9dHAsWi5pc09iamVjdD1tcixaLmlzT2JqZWN0TGlrZT1fcixaLmlzUGxhaW5PYmplY3Q9Y3MsWi5pc1JlZ0V4cD1ydSxaLmlzU2FmZUludGVnZXI9WGcsWi5pc1NldD1VZyxaLmlzU3RyaW5nPUJmLFouaXNTeW1ib2w9ZGEsWi5pc1R5cGVkQXJyYXk9S3MsWi5pc1VuZGVmaW5lZD1oMixaLmlzV2Vha01hcD1wMixaLmlzV2Vha1NldD1xZyxaLmpvaW49a3gsWi5rZWJhYkNhc2U9RjIsWi5sYXN0PVhpLFoubGFzdEluZGV4T2Y9TG4sWi5sb3dlckNhc2U9aHksWi5sb3dlckZpcnN0PUIyLFoubHQ9ZmssWi5sdGU9S2csWi5tYXg9dl8sWi5tYXhCeT1nXyxaLm1lYW49Z3AsWi5tZWFuQnk9S2MsWi5taW49eV8sWi5taW5CeT1tXyxaLnN0dWJBcnJheT1kcCxaLnN0dWJGYWxzZT1ocCxaLnN0dWJPYmplY3Q9cF8sWi5zdHViU3RyaW5nPWhrLFouc3R1YlRydWU9WWYsWi5tdWx0aXBseT1iXyxaLm50aD16aCxaLm5vQ29uZmxpY3Q9Z3ksWi5ub29wPWZwLFoubm93PVZjLFoucGFkPXoyLFoucGFkRW5kPVcyLFoucGFkU3RhcnQ9RzIsWi5wYXJzZUludD1scCxaLnJhbmRvbT1qMixaLnJlZHVjZT1YeCxaLnJlZHVjZVJpZ2h0PVloLFoucmVwZWF0PVdmLFoucmVwbGFjZT1KcyxaLnJlc3VsdD1UMixaLnJvdW5kPSRlLFoucnVuSW5Db250ZXh0PW90LFouc2FtcGxlPXphLFouc2l6ZT1OZyxaLnNuYWtlQ2FzZT0kMixaLnNvbWU9VXgsWi5zb3J0ZWRJbmRleD1HaCxaLnNvcnRlZEluZGV4Qnk9d2csWi5zb3J0ZWRJbmRleE9mPVhsLFouc29ydGVkTGFzdEluZGV4PVVsLFouc29ydGVkTGFzdEluZGV4Qnk9VGYsWi5zb3J0ZWRMYXN0SW5kZXhPZj1ZYyxaLnN0YXJ0Q2FzZT1mbyxaLnN0YXJ0c1dpdGg9WTIsWi5zdWJ0cmFjdD1obyxaLnN1bT1feSxaLnN1bUJ5PXhfLFoudGVtcGxhdGU9SDIsWi50aW1lcz1teSxaLnRvRmluaXRlPXVvLFoudG9JbnRlZ2VyPVZlLFoudG9MZW5ndGg9SmcsWi50b0xvd2VyPWF1LFoudG9OdW1iZXI9VGEsWi50b1NhZmVJbnRlZ2VyPVhjLFoudG9TdHJpbmc9R2UsWi50b1VwcGVyPXB5LFoudHJpbT1WMixaLnRyaW1FbmQ9WDIsWi50cmltU3RhcnQ9VTIsWi50cnVuY2F0ZT12eSxaLnVuZXNjYXBlPXEyLFoudW5pcXVlSWQ9dnAsWi51cHBlckNhc2U9SzIsWi51cHBlckZpcnN0PUdmLFouZWFjaD1DZyxaLmVhY2hSaWdodD1MZyxaLmZpcnN0PUVhLFpmKFosZnVuY3Rpb24oKXt2YXIgcD17fTtyZXR1cm4gdG8oWixmdW5jdGlvbihtLFMpe0ZuLmNhbGwoWi5wcm90b3R5cGUsUyl8fChwW1NdPW0pfSkscH0oKSx7Y2hhaW46ITF9KSxaLlZFUlNJT049ZmUsdWEoWyJiaW5kIiwiYmluZEtleSIsImN1cnJ5IiwiY3VycnlSaWdodCIsInBhcnRpYWwiLCJwYXJ0aWFsUmlnaHQiXSxmdW5jdGlvbihwKXtaW3BdLnBsYWNlaG9sZGVyPVp9KSx1YShbImRyb3AiLCJ0YWtlIl0sZnVuY3Rpb24ocCxtKXtmbi5wcm90b3R5cGVbcF09ZnVuY3Rpb24oUyl7Uz1TPT09JD8xOm5pKFZlKFMpLDApO3ZhciBUPXRoaXMuX19maWx0ZXJlZF9fJiYhbT9uZXcgZm4odGhpcyk6dGhpcy5jbG9uZSgpO3JldHVybiBULl9fZmlsdGVyZWRfXz9ULl9fdGFrZUNvdW50X189cmkoUyxULl9fdGFrZUNvdW50X18pOlQuX192aWV3c19fLnB1c2goe3NpemU6cmkoUyxXciksdHlwZTpwKyhULl9fZGlyX188MD8iUmlnaHQiOiIiKX0pLFR9LGZuLnByb3RvdHlwZVtwKyJSaWdodCJdPWZ1bmN0aW9uKFMpe3JldHVybiB0aGlzLnJldmVyc2UoKVtwXShTKS5yZXZlcnNlKCl9fSksdWEoWyJmaWx0ZXIiLCJtYXAiLCJ0YWtlV2hpbGUiXSxmdW5jdGlvbihwLG0pe3ZhciBTPW0rMSxUPVM9PWRpfHxTPT1oaTtmbi5wcm90b3R5cGVbcF09ZnVuY3Rpb24oQil7dmFyIFk9dGhpcy5jbG9uZSgpO3JldHVybiBZLl9faXRlcmF0ZWVzX18ucHVzaCh7aXRlcmF0ZWU6UGUoQiwzKSx0eXBlOlN9KSxZLl9fZmlsdGVyZWRfXz1ZLl9fZmlsdGVyZWRfX3x8VCxZfX0pLHVhKFsiaGVhZCIsImxhc3QiXSxmdW5jdGlvbihwLG0pe3ZhciBTPSJ0YWtlIisobT8iUmlnaHQiOiIiKTtmbi5wcm90b3R5cGVbcF09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc1tTXSgxKS52YWx1ZSgpWzBdfX0pLHVhKFsiaW5pdGlhbCIsInRhaWwiXSxmdW5jdGlvbihwLG0pe3ZhciBTPSJkcm9wIisobT8iIjoiUmlnaHQiKTtmbi5wcm90b3R5cGVbcF09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fX2ZpbHRlcmVkX18/bmV3IGZuKHRoaXMpOnRoaXNbU10oMSl9fSksZm4ucHJvdG90eXBlLmNvbXBhY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maWx0ZXIoeWkpfSxmbi5wcm90b3R5cGUuZmluZD1mdW5jdGlvbihwKXtyZXR1cm4gdGhpcy5maWx0ZXIocCkuaGVhZCgpfSxmbi5wcm90b3R5cGUuZmluZExhc3Q9ZnVuY3Rpb24ocCl7cmV0dXJuIHRoaXMucmV2ZXJzZSgpLmZpbmQocCl9LGZuLnByb3RvdHlwZS5pbnZva2VNYXA9SmUoZnVuY3Rpb24ocCxtKXtyZXR1cm4gdHlwZW9mIHA9PSJmdW5jdGlvbiI/bmV3IGZuKHRoaXMpOnRoaXMubWFwKGZ1bmN0aW9uKFMpe3JldHVybiBEbChTLHAsbSl9KX0pLGZuLnByb3RvdHlwZS5yZWplY3Q9ZnVuY3Rpb24ocCl7cmV0dXJuIHRoaXMuZmlsdGVyKEpsKFBlKHApKSl9LGZuLnByb3RvdHlwZS5zbGljZT1mdW5jdGlvbihwLG0pe3A9VmUocCk7dmFyIFM9dGhpcztyZXR1cm4gUy5fX2ZpbHRlcmVkX18mJihwPjB8fG08MCk/bmV3IGZuKFMpOihwPDA/Uz1TLnRha2VSaWdodCgtcCk6cCYmKFM9Uy5kcm9wKHApKSxtIT09JCYmKG09VmUobSksUz1tPDA/Uy5kcm9wUmlnaHQoLW0pOlMudGFrZShtLXApKSxTKX0sZm4ucHJvdG90eXBlLnRha2VSaWdodFdoaWxlPWZ1bmN0aW9uKHApe3JldHVybiB0aGlzLnJldmVyc2UoKS50YWtlV2hpbGUocCkucmV2ZXJzZSgpfSxmbi5wcm90b3R5cGUudG9BcnJheT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRha2UoV3IpfSx0byhmbi5wcm90b3R5cGUsZnVuY3Rpb24ocCxtKXt2YXIgUz0vXig/OmZpbHRlcnxmaW5kfG1hcHxyZWplY3QpfFdoaWxlJC8udGVzdChtKSxUPS9eKD86aGVhZHxsYXN0KSQvLnRlc3QobSksQj1aW1Q/InRha2UiKyhtPT0ibGFzdCI/IlJpZ2h0IjoiIik6bV0sWT1UfHwvXmZpbmQvLnRlc3QobSk7QiYmKFoucHJvdG90eXBlW21dPWZ1bmN0aW9uKCl7dmFyIHE9dGhpcy5fX3dyYXBwZWRfXyxldD1UP1sxXTphcmd1bWVudHMsc3Q9cSBpbnN0YW5jZW9mIGZuLEV0PWV0WzBdLE10PXN0fHxXZShxKSxQdD1mdW5jdGlvbih0bil7dmFyIGRuPUIuYXBwbHkoWixmYShbdG5dLGV0KSk7cmV0dXJuIFQmJlZ0P2RuWzBdOmRufTtNdCYmUyYmdHlwZW9mIEV0PT0iZnVuY3Rpb24iJiZFdC5sZW5ndGghPTEmJihzdD1NdD0hMSk7dmFyIFZ0PXRoaXMuX19jaGFpbl9fLGRlPSEhdGhpcy5fX2FjdGlvbnNfXy5sZW5ndGgsa2U9WSYmIVZ0LFhlPXN0JiYhZGU7aWYoIVkmJk10KXtxPVhlP3E6bmV3IGZuKHRoaXMpO3ZhciB3ZT1wLmFwcGx5KHEsZXQpO3JldHVybiB3ZS5fX2FjdGlvbnNfXy5wdXNoKHtmdW5jOmxvLGFyZ3M6W1B0XSx0aGlzQXJnOiR9KSxuZXcgRGEod2UsVnQpfXJldHVybiBrZSYmWGU/cC5hcHBseSh0aGlzLGV0KTood2U9dGhpcy50aHJ1KFB0KSxrZT9UP3dlLnZhbHVlKClbMF06d2UudmFsdWUoKTp3ZSl9KX0pLHVhKFsicG9wIiwicHVzaCIsInNoaWZ0Iiwic29ydCIsInNwbGljZSIsInVuc2hpZnQiXSxmdW5jdGlvbihwKXt2YXIgbT1saFtwXSxTPS9eKD86cHVzaHxzb3J0fHVuc2hpZnQpJC8udGVzdChwKT8idGFwIjoidGhydSIsVD0vXig/OnBvcHxzaGlmdCkkLy50ZXN0KHApO1oucHJvdG90eXBlW3BdPWZ1bmN0aW9uKCl7dmFyIEI9YXJndW1lbnRzO2lmKFQmJiF0aGlzLl9fY2hhaW5fXyl7dmFyIFk9dGhpcy52YWx1ZSgpO3JldHVybiBtLmFwcGx5KFdlKFkpP1k6W10sQil9cmV0dXJuIHRoaXNbU10oZnVuY3Rpb24ocSl7cmV0dXJuIG0uYXBwbHkoV2UocSk/cTpbXSxCKX0pfX0pLHRvKGZuLnByb3RvdHlwZSxmdW5jdGlvbihwLG0pe3ZhciBTPVpbbV07aWYoUyl7dmFyIFQ9Uy5uYW1lKyIiO0ZuLmNhbGwoUmwsVCl8fChSbFtUXT1bXSksUmxbVF0ucHVzaCh7bmFtZTptLGZ1bmM6U30pfX0pLFJsW3ZmKCQsVHQpLm5hbWVdPVt7bmFtZToid3JhcHBlciIsZnVuYzokfV0sZm4ucHJvdG90eXBlLmNsb25lPVdNLGZuLnByb3RvdHlwZS5yZXZlcnNlPUdNLGZuLnByb3RvdHlwZS52YWx1ZT0kTSxaLnByb3RvdHlwZS5hdD1BZyxaLnByb3RvdHlwZS5jaGFpbj1UZyxaLnByb3RvdHlwZS5jb21taXQ9V3gsWi5wcm90b3R5cGUubmV4dD1qYSxaLnByb3RvdHlwZS5wbGFudD1MZixaLnByb3RvdHlwZS5yZXZlcnNlPSRoLFoucHJvdG90eXBlLnRvSlNPTj1aLnByb3RvdHlwZS52YWx1ZU9mPVoucHJvdG90eXBlLnZhbHVlPUlyLFoucHJvdG90eXBlLmZpcnN0PVoucHJvdG90eXBlLmhlYWQsUmMmJihaLnByb3RvdHlwZVtSY109UGcpLFp9LGNoPU1NKCk7bHIuXz1jaCxvZT1mdW5jdGlvbigpe3JldHVybiBjaH0uY2FsbChCZSxwdCxCZSxBZSksb2UhPT0kJiYoQWUuZXhwb3J0cz1vZSl9KS5jYWxsKHRoaXMpfSw3MzgwNzpmdW5jdGlvbihBZSl7InVzZSBzdHJpY3QiO3ZhciBCZT1BZS5leHBvcnRzO0FlLmV4cG9ydHMuaXNOdW1iZXI9ZnVuY3Rpb24ocHQpe3JldHVybiB0eXBlb2YgcHQ9PSJudW1iZXIifSxBZS5leHBvcnRzLmZpbmRNaW49ZnVuY3Rpb24ocHQpe2lmKHB0Lmxlbmd0aD09PTApcmV0dXJuIDEvMDtmb3IodmFyIG9lPXB0WzBdLCQ9MTskPHB0Lmxlbmd0aDskKyspb2U9TWF0aC5taW4ob2UscHRbJF0pO3JldHVybiBvZX0sQWUuZXhwb3J0cy5maW5kTWF4PWZ1bmN0aW9uKHB0KXtpZihwdC5sZW5ndGg9PT0wKXJldHVybi0xLzA7Zm9yKHZhciBvZT1wdFswXSwkPTE7JDxwdC5sZW5ndGg7JCsrKW9lPU1hdGgubWF4KG9lLHB0WyRdKTtyZXR1cm4gb2V9LEFlLmV4cG9ydHMuZmluZE1pbk11bHRpPWZ1bmN0aW9uKHB0KXtmb3IodmFyIG9lPUJlLmZpbmRNaW4ocHRbMF0pLCQ9MTskPHB0Lmxlbmd0aDskKyspb2U9TWF0aC5taW4ob2UsQmUuZmluZE1pbihwdFskXSkpO3JldHVybiBvZX0sQWUuZXhwb3J0cy5maW5kTWF4TXVsdGk9ZnVuY3Rpb24ocHQpe2Zvcih2YXIgb2U9QmUuZmluZE1heChwdFswXSksJD0xOyQ8cHQubGVuZ3RoOyQrKylvZT1NYXRoLm1heChvZSxCZS5maW5kTWF4KHB0WyRdKSk7cmV0dXJuIG9lfSxBZS5leHBvcnRzLmluc2lkZT1mdW5jdGlvbihwdCxvZSwkKXtyZXR1cm4gcHQ8PSQmJiQ8PW9lfX0sNTM4NDM6ZnVuY3Rpb24oQWUsQmUscHQpeyJ1c2Ugc3RyaWN0Ijt2YXIgb2U9NTAsJD0yLGZlPU1hdGgubG9nKDIpLFllPUFlLmV4cG9ydHMsYWU9cHQoNzM4MDcpO2Z1bmN0aW9uIFJ0KFl0KXtyZXR1cm4gMS1NYXRoLmFicyhZdCl9QWUuZXhwb3J0cy5nZXRVbmlmaWVkTWluTWF4PWZ1bmN0aW9uKFl0LGZ0KXtyZXR1cm4gWWUuZ2V0VW5pZmllZE1pbk1heE11bHRpKFtZdF0sZnQpfSxBZS5leHBvcnRzLmdldFVuaWZpZWRNaW5NYXhNdWx0aT1mdW5jdGlvbihZdCxmdCl7ZnQ9ZnR8fHt9O3ZhciByZT0hMSxXdD0hMSxlZT1hZS5pc051bWJlcihmdC53aWR0aCk/ZnQud2lkdGg6JCxYdD1hZS5pc051bWJlcihmdC5zaXplKT9mdC5zaXplOm9lLGt0PWFlLmlzTnVtYmVyKGZ0Lm1pbik/ZnQubWluOihyZT0hMCxhZS5maW5kTWluTXVsdGkoWXQpKSxTdD1hZS5pc051bWJlcihmdC5tYXgpP2Z0Lm1heDooV3Q9ITAsYWUuZmluZE1heE11bHRpKFl0KSksYnQ9U3Qta3QsVHQ9YnQvKFh0LTEpO3JldHVybiByZSYmKGt0PWt0LTIqZWUqVHQpLFd0JiYoU3Q9U3QrMiplZSpUdCkse21pbjprdCxtYXg6U3R9fSxBZS5leHBvcnRzLmNyZWF0ZT1mdW5jdGlvbihZdCxmdCl7aWYoZnQ9ZnR8fHt9LCFZdHx8WXQubGVuZ3RoPT09MClyZXR1cm5bXTt2YXIgcmU9YWUuaXNOdW1iZXIoZnQuc2l6ZSk/ZnQuc2l6ZTpvZSxXdD1hZS5pc051bWJlcihmdC53aWR0aCk/ZnQud2lkdGg6JCxlZT1ZZS5nZXRVbmlmaWVkTWluTWF4KFl0LHtzaXplOnJlLHdpZHRoOld0LG1pbjpmdC5taW4sbWF4OmZ0Lm1heH0pLFh0PWVlLm1pbixrdD1lZS5tYXgsU3Q9a3QtWHQsYnQ9U3QvKHJlLTEpO2lmKFN0PT09MClyZXR1cm5be3g6WHQseToxfV07Zm9yKHZhciBUdD1bXSx4ZT0wO3hlPHJlO3hlKyspVHQucHVzaCh7eDpYdCt4ZSpidCx5OjB9KTt2YXIgX2U9ZnVuY3Rpb24oQ2Upe3JldHVybiBNYXRoLmZsb29yKChDZS1YdCkvYnQpfSxfbj1xdChSdCxXdCksVWU9X25bV3RdLHBuPV9uW1d0LTFdLV9uW1d0LTJdLGduPTA7WXQuZm9yRWFjaChmdW5jdGlvbihDZSl7dmFyIFNlPV9lKENlKTtpZighKFNlK1d0PDB8fFNlLVd0Pj1UdC5sZW5ndGgpKXt2YXIgenI9TWF0aC5tYXgoU2UtV3QsMCksZGk9U2UsRmk9TWF0aC5taW4oU2UrV3QsVHQubGVuZ3RoLTEpLGhpPXpyLShTZS1XdCksdHI9U2UrV3QtRmkscnQ9X25bLVd0LTEraGldfHwwLGFhPV9uWy1XdC0xK3RyXXx8MCxCaT1VZS8oVWUtcnQtYWEpO2hpPjAmJihnbis9QmkqKGhpLTEpKnBuKTt2YXIgV3I9TWF0aC5tYXgoMCxTZS1XdCsxKTthZS5pbnNpZGUoMCxUdC5sZW5ndGgtMSxXcikmJihUdFtXcl0ueSs9QmkqMSpwbiksYWUuaW5zaWRlKDAsVHQubGVuZ3RoLTEsZGkrMSkmJihUdFtkaSsxXS55LT1CaSoyKnBuKSxhZS5pbnNpZGUoMCxUdC5sZW5ndGgtMSxGaSsxKSYmKFR0W0ZpKzFdLnkrPUJpKjEqcG4pfX0pO3ZhciBybj1nbixZbj0wLEpuPTA7cmV0dXJuIFR0LmZvckVhY2goZnVuY3Rpb24oQ2Upe1luKz1DZS55LHJuKz1ZbixDZS55PXJuLEpuKz1ybn0pLEpuPjAmJlR0LmZvckVhY2goZnVuY3Rpb24oQ2Upe0NlLnkvPUpufSksVHR9O2Z1bmN0aW9uIHF0KFl0LGZ0KXtmb3IodmFyIHJlPXt9LFd0PTAsZWU9LWZ0O2VlPD1mdDtlZSsrKVd0Kz1ZdChlZS9mdCkscmVbZWVdPVd0O3JldHVybiByZX1BZS5leHBvcnRzLmdldEV4cGVjdGVkVmFsdWVGcm9tUGRmPWZ1bmN0aW9uKFl0KXtpZighKCFZdHx8WXQubGVuZ3RoPT09MCkpe3ZhciBmdD0wO3JldHVybiBZdC5mb3JFYWNoKGZ1bmN0aW9uKHJlKXtmdCs9cmUueCpyZS55fSksZnR9fSxBZS5leHBvcnRzLmdldFhXaXRoTGVmdFRhaWxBcmVhPWZ1bmN0aW9uKFl0LGZ0KXtpZighKCFZdHx8WXQubGVuZ3RoPT09MCkpe2Zvcih2YXIgcmU9MCxXdD0wLGVlPTA7ZWU8WXQubGVuZ3RoJiYoV3Q9ZWUscmUrPVl0W2VlXS55LCEocmU+PWZ0KSk7ZWUrKyk7cmV0dXJuIFl0W1d0XS54fX0sQWUuZXhwb3J0cy5nZXRQZXJwbGV4aXR5PWZ1bmN0aW9uKFl0KXtpZighKCFZdHx8WXQubGVuZ3RoPT09MCkpe3ZhciBmdD0wO3JldHVybiBZdC5mb3JFYWNoKGZ1bmN0aW9uKHJlKXt2YXIgV3Q9TWF0aC5sb2cocmUueSk7aXNGaW5pdGUoV3QpJiYoZnQrPXJlLnkqV3QpfSksZnQ9LWZ0L2ZlLE1hdGgucG93KDIsZnQpfX19LDg2ODUxOmZ1bmN0aW9uKEFlLEJlLHB0KXsidXNlIHN0cmljdCI7dmFyIG9lPXB0KDg5NTk0KSwkPUFycmF5LnByb3RvdHlwZS5jb25jYXQsZmU9QXJyYXkucHJvdG90eXBlLnNsaWNlLFllPUFlLmV4cG9ydHM9ZnVuY3Rpb24oUnQpe2Zvcih2YXIgcXQ9W10sWXQ9MCxmdD1SdC5sZW5ndGg7WXQ8ZnQ7WXQrKyl7dmFyIHJlPVJ0W1l0XTtvZShyZSk/cXQ9JC5jYWxsKHF0LGZlLmNhbGwocmUpKTpxdC5wdXNoKHJlKX1yZXR1cm4gcXR9O1llLndyYXA9ZnVuY3Rpb24oYWUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBhZShZZShhcmd1bWVudHMpKX19fSw4OTU5NDpmdW5jdGlvbihBZSl7QWUuZXhwb3J0cz1mdW5jdGlvbihwdCl7cmV0dXJuIXB0fHx0eXBlb2YgcHQ9PSJzdHJpbmciPyExOnB0IGluc3RhbmNlb2YgQXJyYXl8fEFycmF5LmlzQXJyYXkocHQpfHxwdC5sZW5ndGg+PTAmJihwdC5zcGxpY2UgaW5zdGFuY2VvZiBGdW5jdGlvbnx8T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwdCxwdC5sZW5ndGgtMSkmJnB0LmNvbnN0cnVjdG9yLm5hbWUhPT0iU3RyaW5nIil9fSwzNzc2MjpmdW5jdGlvbihBZSxCZSxwdCl7InVzZSBzdHJpY3QiO3B0LmQoQmUse1o6ZnVuY3Rpb24oKXtyZXR1cm4gJH19KTt2YXIgb2U9cHQoNDAxODEpO2Z1bmN0aW9uICQoZmUsWWUpe3ZhciBhZT10eXBlb2YgU3ltYm9sIT0idW5kZWZpbmVkIiYmZmVbU3ltYm9sLml0ZXJhdG9yXXx8ZmVbIkBAaXRlcmF0b3IiXTtpZighYWUpe2lmKEFycmF5LmlzQXJyYXkoZmUpfHwoYWU9KDAsb2UuWikoZmUpKXx8WWUmJmZlJiZ0eXBlb2YgZmUubGVuZ3RoPT0ibnVtYmVyIil7YWUmJihmZT1hZSk7dmFyIFJ0PTAscXQ9ZnVuY3Rpb24oKXt9O3JldHVybntzOnF0LG46ZnVuY3Rpb24oKXtyZXR1cm4gUnQ+PWZlLmxlbmd0aD97ZG9uZTohMH06e2RvbmU6ITEsdmFsdWU6ZmVbUnQrK119fSxlOmZ1bmN0aW9uKGVlKXt0aHJvdyBlZX0sZjpxdH19dGhyb3cgbmV3IFR5cGVFcnJvcihgSW52YWxpZCBhdHRlbXB0IHRvIGl0ZXJhdGUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLgorSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLmApfXZhciBZdCxmdD0hMCxyZT0hMTtyZXR1cm57czpmdW5jdGlvbigpe2FlPWFlLmNhbGwoZmUpfSxuOmZ1bmN0aW9uKCl7dmFyIGVlPWFlLm5leHQoKTtyZXR1cm4gZnQ9ZWUuZG9uZSxlZX0sZTpmdW5jdGlvbihlZSl7cmU9ITAsWXQ9ZWV9LGY6ZnVuY3Rpb24oKXt0cnl7ZnR8fGFlLnJldHVybj09bnVsbHx8YWUucmV0dXJuKCl9ZmluYWxseXtpZihyZSl0aHJvdyBZdH19fX19fV0pOworfSgpKTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzIzNjIuZDU5MjdlYjYuYXN5bmMuanMgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzIzNjIuZDU5MjdlYjYuYXN5bmMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmM4ZGJhZQotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvMjM2Mi5kNTkyN2ViNi5hc3luYy5qcwpAQCAtMCwwICsxLDcgQEAKKyJ1c2Ugc3RyaWN0Ijsoc2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Bybz1zZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvfHxbXSkucHVzaChbWzIzNjJdLHs2MzE4NTpmdW5jdGlvbihJZSxtZSxsKXtsLmQobWUse0MyOmZ1bmN0aW9uKCl7cmV0dXJuIGt9fSk7dmFyIEY9bCgxMTU2OCksWj1sKDE0NzQ3KSxRPWwoODMyNjIpLHhlPWwoODM1NTkpO2NvbnN0IERlPW89Pntjb25zdHtjaGVja2JveENsczptfT1vLFI9YCR7bX0td3JhcHBlcmA7cmV0dXJuW3tbYCR7bX0tZ3JvdXBgXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sKDAsWi5XZikobykpLHtkaXNwbGF5OiJpbmxpbmUtZmxleCIsZmxleFdyYXA6IndyYXAiLGNvbHVtbkdhcDpvLm1hcmdpblhTLFtgPiAke28uYW50Q2xzfS1yb3dgXTp7ZmxleDoxfX0pLFtSXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sKDAsWi5XZikobykpLHtkaXNwbGF5OiJpbmxpbmUtZmxleCIsYWxpZ25JdGVtczoiYmFzZWxpbmUiLGN1cnNvcjoicG9pbnRlciIsIiY6YWZ0ZXIiOntkaXNwbGF5OiJpbmxpbmUtYmxvY2siLHdpZHRoOjAsb3ZlcmZsb3c6ImhpZGRlbiIsY29udGVudDoiJ1xcYTAnIn0sW2AmICsgJHtSfWBdOnttYXJnaW5JbmxpbmVTdGFydDowfSxbYCYke1J9LWluLWZvcm0taXRlbWBdOnsnaW5wdXRbdHlwZT0iY2hlY2tib3giXSc6e3dpZHRoOjE0LGhlaWdodDoxNH19fSksW21dOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwoMCxaLldmKShvKSkse3Bvc2l0aW9uOiJyZWxhdGl2ZSIsd2hpdGVTcGFjZToibm93cmFwIixsaW5lSGVpZ2h0OjEsY3Vyc29yOiJwb2ludGVyIixib3JkZXJSYWRpdXM6by5ib3JkZXJSYWRpdXNTTSxhbGlnblNlbGY6ImNlbnRlciIsW2Ake219LWlucHV0YF06e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsaW5zZXQ6MCx6SW5kZXg6MSxjdXJzb3I6InBvaW50ZXIiLG9wYWNpdHk6MCxtYXJnaW46MCxbYCY6Zm9jdXMtdmlzaWJsZSArICR7bX0taW5uZXJgXTpPYmplY3QuYXNzaWduKHt9LCgwLFoub04pKG8pKX0sW2Ake219LWlubmVyYF06e2JveFNpemluZzoiYm9yZGVyLWJveCIsZGlzcGxheToiYmxvY2siLHdpZHRoOm8uY2hlY2tib3hTaXplLGhlaWdodDpvLmNoZWNrYm94U2l6ZSxkaXJlY3Rpb246Imx0ciIsYmFja2dyb3VuZENvbG9yOm8uY29sb3JCZ0NvbnRhaW5lcixib3JkZXI6YCR7KDAsRi5iZikoby5saW5lV2lkdGgpfSAke28ubGluZVR5cGV9ICR7by5jb2xvckJvcmRlcn1gLGJvcmRlclJhZGl1czpvLmJvcmRlclJhZGl1c1NNLGJvcmRlckNvbGxhcHNlOiJzZXBhcmF0ZSIsdHJhbnNpdGlvbjpgYWxsICR7by5tb3Rpb25EdXJhdGlvblNsb3d9YCwiJjphZnRlciI6e2JveFNpemluZzoiYm9yZGVyLWJveCIscG9zaXRpb246ImFic29sdXRlIix0b3A6IjUwJSIsaW5zZXRJbmxpbmVTdGFydDoiMjUlIixkaXNwbGF5OiJ0YWJsZSIsd2lkdGg6by5jYWxjKG8uY2hlY2tib3hTaXplKS5kaXYoMTQpLm11bCg1KS5lcXVhbCgpLGhlaWdodDpvLmNhbGMoby5jaGVja2JveFNpemUpLmRpdigxNCkubXVsKDgpLmVxdWFsKCksYm9yZGVyOmAkeygwLEYuYmYpKG8ubGluZVdpZHRoQm9sZCl9IHNvbGlkICR7by5jb2xvcldoaXRlfWAsYm9yZGVyVG9wOjAsYm9yZGVySW5saW5lU3RhcnQ6MCx0cmFuc2Zvcm06InJvdGF0ZSg0NWRlZykgc2NhbGUoMCkgdHJhbnNsYXRlKC01MCUsLTUwJSkiLG9wYWNpdHk6MCxjb250ZW50OiciIicsdHJhbnNpdGlvbjpgYWxsICR7by5tb3Rpb25EdXJhdGlvbkZhc3R9ICR7by5tb3Rpb25FYXNlSW5CYWNrfSwgb3BhY2l0eSAke28ubW90aW9uRHVyYXRpb25GYXN0fWB9fSwiJiArIHNwYW4iOntwYWRkaW5nSW5saW5lU3RhcnQ6by5wYWRkaW5nWFMscGFkZGluZ0lubGluZUVuZDpvLnBhZGRpbmdYU319KX0se1tgCisgICAgICAgICR7Un06bm90KCR7Un0tZGlzYWJsZWQpLAorICAgICAgICAke219Om5vdCgke219LWRpc2FibGVkKQorICAgICAgYF06e1tgJjpob3ZlciAke219LWlubmVyYF06e2JvcmRlckNvbG9yOm8uY29sb3JQcmltYXJ5fX0sW2Ake1J9Om5vdCgke1J9LWRpc2FibGVkKWBdOntbYCY6aG92ZXIgJHttfS1jaGVja2VkOm5vdCgke219LWRpc2FibGVkKSAke219LWlubmVyYF06e2JhY2tncm91bmRDb2xvcjpvLmNvbG9yUHJpbWFyeUhvdmVyLGJvcmRlckNvbG9yOiJ0cmFuc3BhcmVudCJ9LFtgJjpob3ZlciAke219LWNoZWNrZWQ6bm90KCR7bX0tZGlzYWJsZWQpOmFmdGVyYF06e2JvcmRlckNvbG9yOm8uY29sb3JQcmltYXJ5SG92ZXJ9fX0se1tgJHttfS1jaGVja2VkYF06e1tgJHttfS1pbm5lcmBdOntiYWNrZ3JvdW5kQ29sb3I6by5jb2xvclByaW1hcnksYm9yZGVyQ29sb3I6by5jb2xvclByaW1hcnksIiY6YWZ0ZXIiOntvcGFjaXR5OjEsdHJhbnNmb3JtOiJyb3RhdGUoNDVkZWcpIHNjYWxlKDEpIHRyYW5zbGF0ZSgtNTAlLC01MCUpIix0cmFuc2l0aW9uOmBhbGwgJHtvLm1vdGlvbkR1cmF0aW9uTWlkfSAke28ubW90aW9uRWFzZU91dEJhY2t9ICR7by5tb3Rpb25EdXJhdGlvbkZhc3R9YH19fSxbYAorICAgICAgICAke1J9LWNoZWNrZWQ6bm90KCR7Un0tZGlzYWJsZWQpLAorICAgICAgICAke219LWNoZWNrZWQ6bm90KCR7bX0tZGlzYWJsZWQpCisgICAgICBgXTp7W2AmOmhvdmVyICR7bX0taW5uZXJgXTp7YmFja2dyb3VuZENvbG9yOm8uY29sb3JQcmltYXJ5SG92ZXIsYm9yZGVyQ29sb3I6InRyYW5zcGFyZW50In19fSx7W21dOnsiJi1pbmRldGVybWluYXRlIjp7W2Ake219LWlubmVyYF06e2JhY2tncm91bmRDb2xvcjpgJHtvLmNvbG9yQmdDb250YWluZXJ9ICFpbXBvcnRhbnRgLGJvcmRlckNvbG9yOmAke28uY29sb3JCb3JkZXJ9ICFpbXBvcnRhbnRgLCImOmFmdGVyIjp7dG9wOiI1MCUiLGluc2V0SW5saW5lU3RhcnQ6IjUwJSIsd2lkdGg6by5jYWxjKG8uZm9udFNpemVMRykuZGl2KDIpLmVxdWFsKCksaGVpZ2h0Om8uY2FsYyhvLmZvbnRTaXplTEcpLmRpdigyKS5lcXVhbCgpLGJhY2tncm91bmRDb2xvcjpvLmNvbG9yUHJpbWFyeSxib3JkZXI6MCx0cmFuc2Zvcm06InRyYW5zbGF0ZSgtNTAlLCAtNTAlKSBzY2FsZSgxKSIsb3BhY2l0eToxLGNvbnRlbnQ6JyIiJ319LFtgJjpob3ZlciAke219LWlubmVyYF06e2JhY2tncm91bmRDb2xvcjpgJHtvLmNvbG9yQmdDb250YWluZXJ9ICFpbXBvcnRhbnRgLGJvcmRlckNvbG9yOmAke28uY29sb3JQcmltYXJ5fSAhaW1wb3J0YW50YH19fX0se1tgJHtSfS1kaXNhYmxlZGBdOntjdXJzb3I6Im5vdC1hbGxvd2VkIn0sW2Ake219LWRpc2FibGVkYF06e1tgJiwgJHttfS1pbnB1dGBdOntjdXJzb3I6Im5vdC1hbGxvd2VkIixwb2ludGVyRXZlbnRzOiJub25lIn0sW2Ake219LWlubmVyYF06e2JhY2tncm91bmQ6by5jb2xvckJnQ29udGFpbmVyRGlzYWJsZWQsYm9yZGVyQ29sb3I6by5jb2xvckJvcmRlciwiJjphZnRlciI6e2JvcmRlckNvbG9yOm8uY29sb3JUZXh0RGlzYWJsZWR9fSwiJjphZnRlciI6e2Rpc3BsYXk6Im5vbmUifSwiJiArIHNwYW4iOntjb2xvcjpvLmNvbG9yVGV4dERpc2FibGVkfSxbYCYke219LWluZGV0ZXJtaW5hdGUgJHttfS1pbm5lcjo6YWZ0ZXJgXTp7YmFja2dyb3VuZDpvLmNvbG9yVGV4dERpc2FibGVkfX19XX07ZnVuY3Rpb24gayhvLG0pe2NvbnN0IFI9KDAsUS5JWCkobSx7Y2hlY2tib3hDbHM6YC4ke299YCxjaGVja2JveFNpemU6bS5jb250cm9sSW50ZXJhY3RpdmVTaXplfSk7cmV0dXJuW0RlKFIpXX1tZS5aUD0oMCx4ZS5JJCkoIkNoZWNrYm94IiwobyxtKT0+e2xldHtwcmVmaXhDbHM6Un09bTtyZXR1cm5bayhSLG8pXX0pfSw0MDU2MTpmdW5jdGlvbihJZSxtZSxsKXtsLmQobWUse1pQOmZ1bmN0aW9uKCl7cmV0dXJuIGFlfSxZazpmdW5jdGlvbigpe3JldHVybiBBfSxUTTpmdW5jdGlvbigpe3JldHVybiBffX0pO3ZhciBGPWwoMTE1NjgpLFo9bCg2MzE4NSksUT1sKDE0NzQ3KSx4ZT1sKDMzNTA3KSxEZT1sKDgzMjYyKSxrPWwoODM1NTkpO2NvbnN0IG89Yz0+e2xldHt0cmVlQ2xzOnMsdHJlZU5vZGVDbHM6aCxkaXJlY3RvcnlOb2RlU2VsZWN0ZWRCZzpJLGRpcmVjdG9yeU5vZGVTZWxlY3RlZENvbG9yOlMsbW90aW9uRHVyYXRpb25NaWQ6bixib3JkZXJSYWRpdXM6dCxjb250cm9sSXRlbUJnSG92ZXI6Zn09YztyZXR1cm57W2Ake3N9JHtzfS1kaXJlY3RvcnkgJHtofWBdOntbYCR7c30tbm9kZS1jb250ZW50LXdyYXBwZXJgXTp7cG9zaXRpb246InN0YXRpYyIsW2A+ICo6bm90KCR7c30tZHJvcC1pbmRpY2F0b3IpYF06e3Bvc2l0aW9uOiJyZWxhdGl2ZSJ9LCImOmhvdmVyIjp7YmFja2dyb3VuZDoidHJhbnNwYXJlbnQifSwiJjpiZWZvcmUiOntwb3NpdGlvbjoiYWJzb2x1dGUiLGluc2V0OjAsdHJhbnNpdGlvbjpgYmFja2dyb3VuZC1jb2xvciAke259YCxjb250ZW50OiciIicsYm9yZGVyUmFkaXVzOnR9LCImOmhvdmVyOmJlZm9yZSI6e2JhY2tncm91bmQ6Zn19LFtgJHtzfS1zd2l0Y2hlciwgJHtzfS1jaGVja2JveCwgJHtzfS1kcmFnZ2FibGUtaWNvbmBdOnt6SW5kZXg6MX0sIiYtc2VsZWN0ZWQiOntbYCR7c30tc3dpdGNoZXIsICR7c30tZHJhZ2dhYmxlLWljb25gXTp7Y29sb3I6U30sW2Ake3N9LW5vZGUtY29udGVudC13cmFwcGVyYF06e2NvbG9yOlMsYmFja2dyb3VuZDoidHJhbnNwYXJlbnQiLCImOmJlZm9yZSwgJjpob3ZlcjpiZWZvcmUiOntiYWNrZ3JvdW5kOkl9fX19fX0sbT1uZXcgRi5FNCgiYW50LXRyZWUtbm9kZS1meC1kby1ub3QtdXNlIix7IjAlIjp7b3BhY2l0eTowfSwiMTAwJSI6e29wYWNpdHk6MX19KSxSPShjLHMpPT4oe1tgLiR7Y30tc3dpdGNoZXItaWNvbmBdOntkaXNwbGF5OiJpbmxpbmUtYmxvY2siLGZvbnRTaXplOjEwLHZlcnRpY2FsQWxpZ246ImJhc2VsaW5lIixzdmc6e3RyYW5zaXRpb246YHRyYW5zZm9ybSAke3MubW90aW9uRHVyYXRpb25TbG93fWB9fX0pLGc9KGMscyk9Pih7W2AuJHtjfS1kcm9wLWluZGljYXRvcmBdOntwb3NpdGlvbjoiYWJzb2x1dGUiLHpJbmRleDoxLGhlaWdodDoyLGJhY2tncm91bmRDb2xvcjpzLmNvbG9yUHJpbWFyeSxib3JkZXJSYWRpdXM6MSxwb2ludGVyRXZlbnRzOiJub25lIiwiJjphZnRlciI6e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOi0zLGluc2V0SW5saW5lU3RhcnQ6LTYsd2lkdGg6OCxoZWlnaHQ6OCxiYWNrZ3JvdW5kQ29sb3I6InRyYW5zcGFyZW50Iixib3JkZXI6YCR7KDAsRi5iZikocy5saW5lV2lkdGhCb2xkKX0gc29saWQgJHtzLmNvbG9yUHJpbWFyeX1gLGJvcmRlclJhZGl1czoiNTAlIixjb250ZW50OiciIid9fX0pLHJlPShjLHMpPT57Y29uc3R7dHJlZUNsczpoLHRyZWVOb2RlQ2xzOkksdHJlZU5vZGVQYWRkaW5nOlMsdGl0bGVIZWlnaHQ6bixpbmRlbnRTaXplOnQsbm9kZVNlbGVjdGVkQmc6Zixub2RlSG92ZXJCZzpFLGNvbG9yVGV4dFF1YXRlcm5hcnk6Syxjb250cm9sSXRlbUJnQWN0aXZlRGlzYWJsZWQ6RH09cztyZXR1cm57W2hdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwoMCxRLldmKShzKSkse2JhY2tncm91bmQ6cy5jb2xvckJnQ29udGFpbmVyLGJvcmRlclJhZGl1czpzLmJvcmRlclJhZGl1cyx0cmFuc2l0aW9uOmBiYWNrZ3JvdW5kLWNvbG9yICR7cy5tb3Rpb25EdXJhdGlvblNsb3d9YCwiJi1ydGwiOntkaXJlY3Rpb246InJ0bCJ9LFtgJiR7aH0tcnRsICR7aH0tc3dpdGNoZXJfY2xvc2UgJHtofS1zd2l0Y2hlci1pY29uIHN2Z2BdOnt0cmFuc2Zvcm06InJvdGF0ZSg5MGRlZykifSxbYCYtZm9jdXNlZDpub3QoOmhvdmVyKTpub3QoJHtofS1hY3RpdmUtZm9jdXNlZClgXTpPYmplY3QuYXNzaWduKHt9LCgwLFEub04pKHMpKSxbYCR7aH0tbGlzdC1ob2xkZXItaW5uZXJgXTp7YWxpZ25JdGVtczoiZmxleC1zdGFydCJ9LFtgJiR7aH0tYmxvY2stbm9kZWBdOntbYCR7aH0tbGlzdC1ob2xkZXItaW5uZXJgXTp7YWxpZ25JdGVtczoic3RyZXRjaCIsW2Ake2h9LW5vZGUtY29udGVudC13cmFwcGVyYF06e2ZsZXg6ImF1dG8ifSxbYCR7SX0uZHJhZ2dpbmc6YWZ0ZXJgXTp7cG9zaXRpb246ImFic29sdXRlIixpbnNldDowLGJvcmRlcjpgMXB4IHNvbGlkICR7cy5jb2xvclByaW1hcnl9YCxvcGFjaXR5OjAsYW5pbWF0aW9uTmFtZTptLGFuaW1hdGlvbkR1cmF0aW9uOnMubW90aW9uRHVyYXRpb25TbG93LGFuaW1hdGlvblBsYXlTdGF0ZToicnVubmluZyIsYW5pbWF0aW9uRmlsbE1vZGU6ImZvcndhcmRzIixjb250ZW50OiciIicscG9pbnRlckV2ZW50czoibm9uZSIsYm9yZGVyUmFkaXVzOnMuYm9yZGVyUmFkaXVzfX19LFtJXTp7ZGlzcGxheToiZmxleCIsYWxpZ25JdGVtczoiZmxleC1zdGFydCIsbWFyZ2luQm90dG9tOlMsbGluZUhlaWdodDooMCxGLmJmKShuKSxwb3NpdGlvbjoicmVsYXRpdmUiLCImOmJlZm9yZSI6e2NvbnRlbnQ6JyIiJyxwb3NpdGlvbjoiYWJzb2x1dGUiLHpJbmRleDoxLGluc2V0SW5saW5lU3RhcnQ6MCx3aWR0aDoiMTAwJSIsdG9wOiIxMDAlIixoZWlnaHQ6U30sW2AmLWRpc2FibGVkICR7aH0tbm9kZS1jb250ZW50LXdyYXBwZXJgXTp7Y29sb3I6cy5jb2xvclRleHREaXNhYmxlZCxjdXJzb3I6Im5vdC1hbGxvd2VkIiwiJjpob3ZlciI6e2JhY2tncm91bmQ6InRyYW5zcGFyZW50In19LFtgJHtofS1jaGVja2JveC1kaXNhYmxlZCArICR7aH0tbm9kZS1zZWxlY3RlZCwmJHtJfS1kaXNhYmxlZCR7SX0tc2VsZWN0ZWQgJHtofS1ub2RlLWNvbnRlbnQtd3JhcHBlcmBdOntiYWNrZ3JvdW5kQ29sb3I6RH0sW2Ake2h9LWNoZWNrYm94LWRpc2FibGVkYF06e3BvaW50ZXJFdmVudHM6InVuc2V0In0sW2AmOm5vdCgke0l9LWRpc2FibGVkKWBdOntbYCR7aH0tbm9kZS1jb250ZW50LXdyYXBwZXJgXTp7IiY6aG92ZXIiOntjb2xvcjpzLm5vZGVIb3ZlckNvbG9yfX19LFtgJi1hY3RpdmUgJHtofS1ub2RlLWNvbnRlbnQtd3JhcHBlcmBdOntiYWNrZ3JvdW5kOnMuY29udHJvbEl0ZW1CZ0hvdmVyfSxbYCY6bm90KCR7SX0tZGlzYWJsZWQpLmZpbHRlci1ub2RlICR7aH0tdGl0bGVgXTp7Y29sb3I6cy5jb2xvclByaW1hcnksZm9udFdlaWdodDo1MDB9LCImLWRyYWdnYWJsZSI6e2N1cnNvcjoiZ3JhYiIsW2Ake2h9LWRyYWdnYWJsZS1pY29uYF06e2ZsZXhTaHJpbms6MCx3aWR0aDpuLHRleHRBbGlnbjoiY2VudGVyIix2aXNpYmlsaXR5OiJ2aXNpYmxlIixjb2xvcjpLfSxbYCYke0l9LWRpc2FibGVkICR7aH0tZHJhZ2dhYmxlLWljb25gXTp7dmlzaWJpbGl0eToiaGlkZGVuIn19fSxbYCR7aH0taW5kZW50YF06e2FsaWduU2VsZjoic3RyZXRjaCIsd2hpdGVTcGFjZToibm93cmFwIix1c2VyU2VsZWN0OiJub25lIiwiJi11bml0Ijp7ZGlzcGxheToiaW5saW5lLWJsb2NrIix3aWR0aDp0fX0sW2Ake2h9LWRyYWdnYWJsZS1pY29uYF06e3Zpc2liaWxpdHk6ImhpZGRlbiJ9LFtgJHtofS1zd2l0Y2hlciwgJHtofS1jaGVja2JveGBdOnttYXJnaW5JbmxpbmVFbmQ6cy5jYWxjKHMuY2FsYyhuKS5zdWIocy5jb250cm9sSW50ZXJhY3RpdmVTaXplKSkuZGl2KDIpLmVxdWFsKCl9LFtgJHtofS1zd2l0Y2hlcmBdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxSKGMscykpLHtwb3NpdGlvbjoicmVsYXRpdmUiLGZsZXg6Im5vbmUiLGFsaWduU2VsZjoic3RyZXRjaCIsd2lkdGg6bix0ZXh0QWxpZ246ImNlbnRlciIsY3Vyc29yOiJwb2ludGVyIix1c2VyU2VsZWN0OiJub25lIix0cmFuc2l0aW9uOmBhbGwgJHtzLm1vdGlvbkR1cmF0aW9uU2xvd31gLCImLW5vb3AiOntjdXJzb3I6InVuc2V0In0sIiY6YmVmb3JlIjp7cG9pbnRlckV2ZW50czoibm9uZSIsY29udGVudDonIiInLHdpZHRoOm4saGVpZ2h0Om4scG9zaXRpb246ImFic29sdXRlIixsZWZ0Ontfc2tpcF9jaGVja186ITAsdmFsdWU6MH0sdG9wOjAsYm9yZGVyUmFkaXVzOnMuYm9yZGVyUmFkaXVzLHRyYW5zaXRpb246YGFsbCAke3MubW90aW9uRHVyYXRpb25TbG93fWB9LFtgJjpub3QoJHtofS1zd2l0Y2hlci1ub29wKTpob3ZlcjpiZWZvcmVgXTp7YmFja2dyb3VuZENvbG9yOnMuY29sb3JCZ1RleHRIb3Zlcn0sW2AmX2Nsb3NlICR7aH0tc3dpdGNoZXItaWNvbiBzdmdgXTp7dHJhbnNmb3JtOiJyb3RhdGUoLTkwZGVnKSJ9LCImLWxvYWRpbmctaWNvbiI6e2NvbG9yOnMuY29sb3JQcmltYXJ5fSwiJi1sZWFmLWxpbmUiOntwb3NpdGlvbjoicmVsYXRpdmUiLHpJbmRleDoxLGRpc3BsYXk6ImlubGluZS1ibG9jayIsd2lkdGg6IjEwMCUiLGhlaWdodDoiMTAwJSIsIiY6YmVmb3JlIjp7cG9zaXRpb246ImFic29sdXRlIix0b3A6MCxpbnNldElubGluZUVuZDpzLmNhbGMobikuZGl2KDIpLmVxdWFsKCksYm90dG9tOnMuY2FsYyhTKS5tdWwoLTEpLmVxdWFsKCksbWFyZ2luSW5saW5lU3RhcnQ6LTEsYm9yZGVySW5saW5lRW5kOmAxcHggc29saWQgJHtzLmNvbG9yQm9yZGVyfWAsY29udGVudDonIiInfSwiJjphZnRlciI6e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsd2lkdGg6cy5jYWxjKHMuY2FsYyhuKS5kaXYoMikuZXF1YWwoKSkubXVsKC44KS5lcXVhbCgpLGhlaWdodDpzLmNhbGMobikuZGl2KDIpLmVxdWFsKCksYm9yZGVyQm90dG9tOmAxcHggc29saWQgJHtzLmNvbG9yQm9yZGVyfWAsY29udGVudDonIiInfX19KSxbYCR7aH0tbm9kZS1jb250ZW50LXdyYXBwZXJgXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe3Bvc2l0aW9uOiJyZWxhdGl2ZSIsbWluSGVpZ2h0Om4scGFkZGluZ0Jsb2NrOjAscGFkZGluZ0lubGluZTpzLnBhZGRpbmdYUyxiYWNrZ3JvdW5kOiJ0cmFuc3BhcmVudCIsYm9yZGVyUmFkaXVzOnMuYm9yZGVyUmFkaXVzLGN1cnNvcjoicG9pbnRlciIsdHJhbnNpdGlvbjpgYWxsICR7cy5tb3Rpb25EdXJhdGlvbk1pZH0sIGJvcmRlciAwcywgbGluZS1oZWlnaHQgMHMsIGJveC1zaGFkb3cgMHNgfSxnKGMscykpLHsiJjpob3ZlciI6e2JhY2tncm91bmRDb2xvcjpFfSxbYCYke2h9LW5vZGUtc2VsZWN0ZWRgXTp7Y29sb3I6cy5ub2RlU2VsZWN0ZWRDb2xvcixiYWNrZ3JvdW5kQ29sb3I6Zn0sW2Ake2h9LWljb25FbGVgXTp7ZGlzcGxheToiaW5saW5lLWJsb2NrIix3aWR0aDpuLGhlaWdodDpuLHRleHRBbGlnbjoiY2VudGVyIix2ZXJ0aWNhbEFsaWduOiJ0b3AiLCImOmVtcHR5Ijp7ZGlzcGxheToibm9uZSJ9fX0pLFtgJHtofS11bnNlbGVjdGFibGUgJHtofS1ub2RlLWNvbnRlbnQtd3JhcHBlcjpob3ZlcmBdOntiYWNrZ3JvdW5kQ29sb3I6InRyYW5zcGFyZW50In0sW2Ake0l9LmRyb3AtY29udGFpbmVyID4gW2RyYWdnYWJsZV1gXTp7Ym94U2hhZG93OmAwIDAgMCAycHggJHtzLmNvbG9yUHJpbWFyeX1gfSwiJi1zaG93LWxpbmUiOntbYCR7aH0taW5kZW50LXVuaXRgXTp7cG9zaXRpb246InJlbGF0aXZlIixoZWlnaHQ6IjEwMCUiLCImOmJlZm9yZSI6e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOjAsaW5zZXRJbmxpbmVFbmQ6cy5jYWxjKG4pLmRpdigyKS5lcXVhbCgpLGJvdHRvbTpzLmNhbGMoUykubXVsKC0xKS5lcXVhbCgpLGJvcmRlcklubGluZUVuZDpgMXB4IHNvbGlkICR7cy5jb2xvckJvcmRlcn1gLGNvbnRlbnQ6JyIiJ30sIiYtZW5kOmJlZm9yZSI6e2Rpc3BsYXk6Im5vbmUifX0sW2Ake2h9LXN3aXRjaGVyYF06e2JhY2tncm91bmQ6InRyYW5zcGFyZW50IiwiJi1saW5lLWljb24iOnt2ZXJ0aWNhbEFsaWduOiItMC4xNWVtIn19fSxbYCR7SX0tbGVhZi1sYXN0ICR7aH0tc3dpdGNoZXItbGVhZi1saW5lOmJlZm9yZWBdOnt0b3A6ImF1dG8gIWltcG9ydGFudCIsYm90dG9tOiJhdXRvICFpbXBvcnRhbnQiLGhlaWdodDpgJHsoMCxGLmJmKShzLmNhbGMobikuZGl2KDIpLmVxdWFsKCkpfSAhaW1wb3J0YW50YH19KX19LEE9KGMscyk9Pntjb25zdCBoPWAuJHtjfWAsST1gJHtofS10cmVlbm9kZWAsUz1zLmNhbGMocy5wYWRkaW5nWFMpLmRpdigyKS5lcXVhbCgpLG49KDAsRGUuSVgpKHMse3RyZWVDbHM6aCx0cmVlTm9kZUNsczpJLHRyZWVOb2RlUGFkZGluZzpTfSk7cmV0dXJuW3JlKGMsbiksbyhuKV19LF89Yz0+e2NvbnN0e2NvbnRyb2xIZWlnaHRTTTpzLGNvbnRyb2xJdGVtQmdIb3ZlcjpoLGNvbnRyb2xJdGVtQmdBY3RpdmU6SX09YyxTPXM7cmV0dXJue3RpdGxlSGVpZ2h0OlMsaW5kZW50U2l6ZTpTLG5vZGVIb3ZlckJnOmgsbm9kZUhvdmVyQ29sb3I6Yy5jb2xvclRleHQsbm9kZVNlbGVjdGVkQmc6SSxub2RlU2VsZWN0ZWRDb2xvcjpjLmNvbG9yVGV4dH19LFg9Yz0+e2NvbnN0e2NvbG9yVGV4dExpZ2h0U29saWQ6cyxjb2xvclByaW1hcnk6aH09YztyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LF8oYykpLHtkaXJlY3RvcnlOb2RlU2VsZWN0ZWRDb2xvcjpzLGRpcmVjdG9yeU5vZGVTZWxlY3RlZEJnOmh9KX07dmFyIGFlPSgwLGsuSSQpKCJUcmVlIiwoYyxzKT0+e2xldHtwcmVmaXhDbHM6aH09cztyZXR1cm5be1tjLmNvbXBvbmVudENsc106KDAsWi5DMikoYCR7aH0tY2hlY2tib3hgLGMpfSxBKGgsYyksKDAseGUuWikoYyldfSxYKX0sNjE2Mzk6ZnVuY3Rpb24oSWUsbWUsbCl7dmFyIEY9bCg2NzI5NCksWj1sKDY4MjY1KSxRPWwoMjY5MTEpLHhlPWwoNTA4ODgpLERlPWwoMjg2MzgpLGs9bCgxMzk4Miksbz1sKDkzOTY3KSxtPWwubihvKSxSPWwoOTYxNTkpO2NvbnN0IGc9cmU9Pntjb25zdHtwcmVmaXhDbHM6QSxzd2l0Y2hlckljb246Xyx0cmVlTm9kZVByb3BzOlgsc2hvd0xpbmU6YWUsc3dpdGNoZXJMb2FkaW5nSWNvbjpjfT1yZSx7aXNMZWFmOnMsZXhwYW5kZWQ6aCxsb2FkaW5nOkl9PVg7aWYoSSlyZXR1cm4gRi5pc1ZhbGlkRWxlbWVudChjKT9jOkYuY3JlYXRlRWxlbWVudCh4ZS5aLHtjbGFzc05hbWU6YCR7QX0tc3dpdGNoZXItbG9hZGluZy1pY29uYH0pO2xldCBTO2lmKGFlJiZ0eXBlb2YgYWU9PSJvYmplY3QiJiYoUz1hZS5zaG93TGVhZkljb24pLHMpe2lmKCFhZSlyZXR1cm4gbnVsbDtpZih0eXBlb2YgUyE9ImJvb2xlYW4iJiZTKXtjb25zdCBmPXR5cGVvZiBTPT0iZnVuY3Rpb24iP1MoWCk6UyxFPWAke0F9LXN3aXRjaGVyLWxpbmUtY3VzdG9tLWljb25gO3JldHVybiBGLmlzVmFsaWRFbGVtZW50KGYpPygwLFIuVG0pKGYse2NsYXNzTmFtZTptKCkoZi5wcm9wcy5jbGFzc05hbWV8fCIiLEUpfSk6Zn1yZXR1cm4gUz9GLmNyZWF0ZUVsZW1lbnQoUS5aLHtjbGFzc05hbWU6YCR7QX0tc3dpdGNoZXItbGluZS1pY29uYH0pOkYuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpgJHtBfS1zd2l0Y2hlci1sZWFmLWxpbmVgfSl9Y29uc3Qgbj1gJHtBfS1zd2l0Y2hlci1pY29uYCx0PXR5cGVvZiBfPT0iZnVuY3Rpb24iP18oWCk6XztyZXR1cm4gRi5pc1ZhbGlkRWxlbWVudCh0KT8oMCxSLlRtKSh0LHtjbGFzc05hbWU6bSgpKHQucHJvcHMuY2xhc3NOYW1lfHwiIixuKX0pOnQhPT12b2lkIDA/dDphZT9oP0YuY3JlYXRlRWxlbWVudChEZS5aLHtjbGFzc05hbWU6YCR7QX0tc3dpdGNoZXItbGluZS1pY29uYH0pOkYuY3JlYXRlRWxlbWVudChrLlose2NsYXNzTmFtZTpgJHtBfS1zd2l0Y2hlci1saW5lLWljb25gfSk6Ri5jcmVhdGVFbGVtZW50KFouWix7Y2xhc3NOYW1lOm59KX07bWUuWj1nfSw4NjEyODpmdW5jdGlvbihJZSxtZSxsKXtsLmQobWUse1o6ZnVuY3Rpb24oKXtyZXR1cm4gU319KTt2YXIgRj1sKDg3NDYyKSxaPWwoNDk0MiksUT1sKDE0MTMpLHhlPWwoOTc2ODUpLERlPWwoOTEpLGs9bCg2NzI5NCksbz1sKDkzOTY3KSxtPWwubihvKSxSPWwoNjQyMTcpLGc9bCgyNzgyMikscmU9ZnVuY3Rpb24odCl7Zm9yKHZhciBmPXQucHJlZml4Q2xzLEU9dC5sZXZlbCxLPXQuaXNTdGFydCxEPXQuaXNFbmQsTT0iIi5jb25jYXQoZiwiLWluZGVudC11bml0Iiksaj1bXSxOPTA7TjxFO04rPTEpai5wdXNoKGsuY3JlYXRlRWxlbWVudCgic3BhbiIse2tleTpOLGNsYXNzTmFtZTptKCkoTSwoMCxaLlopKCgwLFouWikoe30sIiIuY29uY2F0KE0sIi1zdGFydCIpLEtbTl0pLCIiLmNvbmNhdChNLCItZW5kIiksRFtOXSkpfSkpO3JldHVybiBrLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHsiYXJpYS1oaWRkZW4iOiJ0cnVlIixjbGFzc05hbWU6IiIuY29uY2F0KGYsIi1pbmRlbnQiKX0sail9LEE9ay5tZW1vKHJlKSxfPWwoMzUzODEpLFg9bCgxMDg5KSxhZT1bImV2ZW50S2V5IiwiY2xhc3NOYW1lIiwic3R5bGUiLCJkcmFnT3ZlciIsImRyYWdPdmVyR2FwVG9wIiwiZHJhZ092ZXJHYXBCb3R0b20iLCJpc0xlYWYiLCJpc1N0YXJ0IiwiaXNFbmQiLCJleHBhbmRlZCIsInNlbGVjdGVkIiwiY2hlY2tlZCIsImhhbGZDaGVja2VkIiwibG9hZGluZyIsImRvbVJlZiIsImFjdGl2ZSIsImRhdGEiLCJvbk1vdXNlTW92ZSIsInNlbGVjdGFibGUiXSxjPSJvcGVuIixzPSJjbG9zZSIsaD0iLS0tIixJPWZ1bmN0aW9uKHQpe3ZhciBmLEUsSyxEPXQuZXZlbnRLZXksTT10LmNsYXNzTmFtZSxqPXQuc3R5bGUsTj10LmRyYWdPdmVyLGllPXQuZHJhZ092ZXJHYXBUb3AsdWU9dC5kcmFnT3ZlckdhcEJvdHRvbSxkZT10LmlzTGVhZixvZT10LmlzU3RhcnQsbGU9dC5pc0VuZCxWPXQuZXhwYW5kZWQsZmU9dC5zZWxlY3RlZCxzZT10LmNoZWNrZWQsY2U9dC5oYWxmQ2hlY2tlZCxoZT10LmxvYWRpbmcscT10LmRvbVJlZixQZT10LmFjdGl2ZSx2ZT10LmRhdGEsTGU9dC5vbk1vdXNlTW92ZSxrZT10LnNlbGVjdGFibGUsX2U9KDAsRGUuWikodCxhZSksaT1rLnVzZUNvbnRleHQoZy5rKSxCPWsudXNlQ29udGV4dChnLnkpLHdlPWsudXNlUmVmKG51bGwpLCRlPWsudXNlU3RhdGUoITEpLFRlPSgwLHhlLlopKCRlLDIpLE9lPVRlWzBdLE1lPVRlWzFdLGJlPSEhKGkuZGlzYWJsZWR8fHQuZGlzYWJsZWR8fChmPUIubm9kZURpc2FibGVkKSE9PW51bGwmJmYhPT12b2lkIDAmJmYuY2FsbChCLHZlKSksdT1rLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4haS5jaGVja2FibGV8fHQuY2hlY2thYmxlPT09ITE/ITE6aS5jaGVja2FibGV9LFtpLmNoZWNrYWJsZSx0LmNoZWNrYWJsZV0pLGVlPWZ1bmN0aW9uKHgpe2JlfHxpLm9uTm9kZVNlbGVjdCh4LCgwLFguRikodCkpfSx6PWZ1bmN0aW9uKHgpe2JlfHwhdXx8dC5kaXNhYmxlQ2hlY2tib3h8fGkub25Ob2RlQ2hlY2soeCwoMCxYLkYpKHQpLCFzZSl9LGU9ay51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJuIHR5cGVvZiBrZT09ImJvb2xlYW4iP2tlOmkuc2VsZWN0YWJsZX0sW2tlLGkuc2VsZWN0YWJsZV0pLHA9ZnVuY3Rpb24oeCl7aS5vbk5vZGVDbGljayh4LCgwLFguRikodCkpLGU/ZWUoeCk6eih4KX0sJD1mdW5jdGlvbih4KXtpLm9uTm9kZURvdWJsZUNsaWNrKHgsKDAsWC5GKSh0KSl9LEc9ZnVuY3Rpb24oeCl7aS5vbk5vZGVNb3VzZUVudGVyKHgsKDAsWC5GKSh0KSl9LHI9ZnVuY3Rpb24oeCl7aS5vbk5vZGVNb3VzZUxlYXZlKHgsKDAsWC5GKSh0KSl9LGQ9ZnVuY3Rpb24oeCl7aS5vbk5vZGVDb250ZXh0TWVudSh4LCgwLFguRikodCkpfSxhPWsudXNlTWVtbyhmdW5jdGlvbigpe3JldHVybiEhKGkuZHJhZ2dhYmxlJiYoIWkuZHJhZ2dhYmxlLm5vZGVEcmFnZ2FibGV8fGkuZHJhZ2dhYmxlLm5vZGVEcmFnZ2FibGUodmUpKSl9LFtpLmRyYWdnYWJsZSx2ZV0pLHY9ZnVuY3Rpb24oeCl7eC5zdG9wUHJvcGFnYXRpb24oKSxNZSghMCksaS5vbk5vZGVEcmFnU3RhcnQoeCx0KTt0cnl7eC5kYXRhVHJhbnNmZXIuc2V0RGF0YSgidGV4dC9wbGFpbiIsIiIpfWNhdGNoKE5lKXt9fSxiPWZ1bmN0aW9uKHgpe3gucHJldmVudERlZmF1bHQoKSx4LnN0b3BQcm9wYWdhdGlvbigpLGkub25Ob2RlRHJhZ0VudGVyKHgsdCl9LE89ZnVuY3Rpb24oeCl7eC5wcmV2ZW50RGVmYXVsdCgpLHguc3RvcFByb3BhZ2F0aW9uKCksaS5vbk5vZGVEcmFnT3Zlcih4LHQpfSxQPWZ1bmN0aW9uKHgpe3guc3RvcFByb3BhZ2F0aW9uKCksaS5vbk5vZGVEcmFnTGVhdmUoeCx0KX0sVD1mdW5jdGlvbih4KXt4LnN0b3BQcm9wYWdhdGlvbigpLE1lKCExKSxpLm9uTm9kZURyYWdFbmQoeCx0KX0sVT1mdW5jdGlvbih4KXt4LnByZXZlbnREZWZhdWx0KCkseC5zdG9wUHJvcGFnYXRpb24oKSxNZSghMSksaS5vbk5vZGVEcm9wKHgsdCl9LHk9ZnVuY3Rpb24oeCl7aGV8fGkub25Ob2RlRXhwYW5kKHgsKDAsWC5GKSh0KSl9LEM9ay51c2VNZW1vKGZ1bmN0aW9uKCl7dmFyIEo9KDAsXy5aKShpLmtleUVudGl0aWVzLEQpfHx7fSx4PUouY2hpbGRyZW47cmV0dXJuISEoeHx8W10pLmxlbmd0aH0sW2kua2V5RW50aXRpZXMsRF0pLFc9ay51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJuIGRlPT09ITE/ITE6ZGV8fCFpLmxvYWREYXRhJiYhQ3x8aS5sb2FkRGF0YSYmdC5sb2FkZWQmJiFDfSxbZGUsaS5sb2FkRGF0YSxDLHQubG9hZGVkXSk7ay51c2VFZmZlY3QoZnVuY3Rpb24oKXtoZXx8dHlwZW9mIGkubG9hZERhdGE9PSJmdW5jdGlvbiImJlYmJiFXJiYhdC5sb2FkZWQmJmkub25Ob2RlTG9hZCgoMCxYLkYpKHQpKX0sW2hlLGkubG9hZERhdGEsaS5vbk5vZGVMb2FkLFYsVyx0XSk7dmFyIEw9ay51c2VNZW1vKGZ1bmN0aW9uKCl7dmFyIEo7cmV0dXJuKEo9aS5kcmFnZ2FibGUpIT09bnVsbCYmSiE9PXZvaWQgMCYmSi5pY29uP2suY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToiIi5jb25jYXQoaS5wcmVmaXhDbHMsIi1kcmFnZ2FibGUtaWNvbiIpfSxpLmRyYWdnYWJsZS5pY29uKTpudWxsfSxbaS5kcmFnZ2FibGVdKSx3PWZ1bmN0aW9uKHgpe3ZhciBOZT10LnN3aXRjaGVySWNvbnx8aS5zd2l0Y2hlckljb247cmV0dXJuIHR5cGVvZiBOZT09ImZ1bmN0aW9uIj9OZSgoMCxRLlopKCgwLFEuWikoe30sdCkse30se2lzTGVhZjp4fSkpOk5lfSx0ZT1mdW5jdGlvbigpe2lmKFcpe3ZhciB4PXcoITApO3JldHVybiB4IT09ITE/ay5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOm0oKSgiIi5jb25jYXQoaS5wcmVmaXhDbHMsIi1zd2l0Y2hlciIpLCIiLmNvbmNhdChpLnByZWZpeENscywiLXN3aXRjaGVyLW5vb3AiKSl9LHgpOm51bGx9dmFyIE5lPXcoITEpO3JldHVybiBOZSE9PSExP2suY3JlYXRlRWxlbWVudCgic3BhbiIse29uQ2xpY2s6eSxjbGFzc05hbWU6bSgpKCIiLmNvbmNhdChpLnByZWZpeENscywiLXN3aXRjaGVyIiksIiIuY29uY2F0KGkucHJlZml4Q2xzLCItc3dpdGNoZXJfIikuY29uY2F0KFY/YzpzKSl9LE5lKTpudWxsfSxZPWsudXNlTWVtbyhmdW5jdGlvbigpe2lmKCF1KXJldHVybiBudWxsO3ZhciBKPXR5cGVvZiB1IT0iYm9vbGVhbiI/dTpudWxsO3JldHVybiBrLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6bSgpKCIiLmNvbmNhdChpLnByZWZpeENscywiLWNoZWNrYm94IiksKDAsWi5aKSgoMCxaLlopKCgwLFouWikoe30sIiIuY29uY2F0KGkucHJlZml4Q2xzLCItY2hlY2tib3gtY2hlY2tlZCIpLHNlKSwiIi5jb25jYXQoaS5wcmVmaXhDbHMsIi1jaGVja2JveC1pbmRldGVybWluYXRlIiksIXNlJiZjZSksIiIuY29uY2F0KGkucHJlZml4Q2xzLCItY2hlY2tib3gtZGlzYWJsZWQiKSxiZXx8dC5kaXNhYmxlQ2hlY2tib3gpKSxvbkNsaWNrOnoscm9sZToiY2hlY2tib3giLCJhcmlhLWNoZWNrZWQiOmNlPyJtaXhlZCI6c2UsImFyaWEtZGlzYWJsZWQiOmJlfHx0LmRpc2FibGVDaGVja2JveCwiYXJpYS1sYWJlbCI6IlNlbGVjdCAiLmNvbmNhdCh0eXBlb2YgdC50aXRsZT09InN0cmluZyI/dC50aXRsZToidHJlZSBub2RlIil9LEopfSxbdSxzZSxjZSxiZSx0LmRpc2FibGVDaGVja2JveCx0LnRpdGxlXSksSD1rLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4gVz9udWxsOlY/YzpzfSxbVyxWXSksbmU9ay51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJuIGsuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTptKCkoIiIuY29uY2F0KGkucHJlZml4Q2xzLCItaWNvbkVsZSIpLCIiLmNvbmNhdChpLnByZWZpeENscywiLWljb25fXyIpLmNvbmNhdChIfHwiZG9jdSIpLCgwLFouWikoe30sIiIuY29uY2F0KGkucHJlZml4Q2xzLCItaWNvbl9sb2FkaW5nIiksaGUpKX0pfSxbaS5wcmVmaXhDbHMsSCxoZV0pLGdlPWsudXNlTWVtbyhmdW5jdGlvbigpe3ZhciBKPSEhaS5kcmFnZ2FibGUseD0hdC5kaXNhYmxlZCYmSiYmaS5kcmFnT3Zlck5vZGVLZXk9PT1EO3JldHVybiB4P2kuZHJvcEluZGljYXRvclJlbmRlcih7ZHJvcFBvc2l0aW9uOmkuZHJvcFBvc2l0aW9uLGRyb3BMZXZlbE9mZnNldDppLmRyb3BMZXZlbE9mZnNldCxpbmRlbnQ6aS5pbmRlbnQscHJlZml4Q2xzOmkucHJlZml4Q2xzLGRpcmVjdGlvbjppLmRpcmVjdGlvbn0pOm51bGx9LFtpLmRyb3BQb3NpdGlvbixpLmRyb3BMZXZlbE9mZnNldCxpLmluZGVudCxpLnByZWZpeENscyxpLmRpcmVjdGlvbixpLmRyYWdnYWJsZSxpLmRyYWdPdmVyTm9kZUtleSxpLmRyb3BJbmRpY2F0b3JSZW5kZXJdKSxFZT1rLnVzZU1lbW8oZnVuY3Rpb24oKXt2YXIgSj10LnRpdGxlLHg9Sj09PXZvaWQgMD9oOkosTmU9IiIuY29uY2F0KGkucHJlZml4Q2xzLCItbm9kZS1jb250ZW50LXdyYXBwZXIiKSxGZTtpZihpLnNob3dJY29uKXt2YXIgQWU9dC5pY29ufHxpLmljb247RmU9QWU/ay5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOm0oKSgiIi5jb25jYXQoaS5wcmVmaXhDbHMsIi1pY29uRWxlIiksIiIuY29uY2F0KGkucHJlZml4Q2xzLCItaWNvbl9fY3VzdG9taXplIikpfSx0eXBlb2YgQWU9PSJmdW5jdGlvbiI/QWUodCk6QWUpOm5lfWVsc2UgaS5sb2FkRGF0YSYmaGUmJihGZT1uZSk7dmFyIEJlO3JldHVybiB0eXBlb2YgeD09ImZ1bmN0aW9uIj9CZT14KHZlKTppLnRpdGxlUmVuZGVyP0JlPWkudGl0bGVSZW5kZXIodmUpOkJlPXgsay5jcmVhdGVFbGVtZW50KCJzcGFuIix7cmVmOndlLHRpdGxlOnR5cGVvZiB4PT0ic3RyaW5nIj94OiIiLGNsYXNzTmFtZTptKCkoTmUsIiIuY29uY2F0KE5lLCItIikuY29uY2F0KEh8fCJub3JtYWwiKSwoMCxaLlopKHt9LCIiLmNvbmNhdChpLnByZWZpeENscywiLW5vZGUtc2VsZWN0ZWQiKSwhYmUmJihmZXx8T2UpKSksb25Nb3VzZUVudGVyOkcsb25Nb3VzZUxlYXZlOnIsb25Db250ZXh0TWVudTpkLG9uQ2xpY2s6cCxvbkRvdWJsZUNsaWNrOiR9LEZlLGsuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToiIi5jb25jYXQoaS5wcmVmaXhDbHMsIi10aXRsZSIpfSxCZSksZ2UpfSxbaS5wcmVmaXhDbHMsaS5zaG93SWNvbix0LGkuaWNvbixuZSxpLnRpdGxlUmVuZGVyLHZlLEgsRyxyLGQscCwkXSkseWU9KDAsUi5aKShfZSx7YXJpYTohMCxkYXRhOiEwfSksS2U9KDAsXy5aKShpLmtleUVudGl0aWVzLEQpfHx7fSxTZT1LZS5sZXZlbCxDZT1sZVtsZS5sZW5ndGgtMV0sWmU9IWJlJiZhLFVlPWkuZHJhZ2dpbmdOb2RlS2V5PT09RCxSZT1rZSE9PXZvaWQgMD97ImFyaWEtc2VsZWN0ZWQiOiEha2V9OnZvaWQgMDtyZXR1cm4gay5jcmVhdGVFbGVtZW50KCJkaXYiLCgwLEYuWikoe3JlZjpxLHJvbGU6InRyZWVpdGVtIiwiYXJpYS1leHBhbmRlZCI6ZGU/dm9pZCAwOlYsY2xhc3NOYW1lOm0oKShNLCIiLmNvbmNhdChpLnByZWZpeENscywiLXRyZWVub2RlIiksKEs9e30sKDAsWi5aKSgoMCxaLlopKCgwLFouWikoKDAsWi5aKSgoMCxaLlopKCgwLFouWikoKDAsWi5aKSgoMCxaLlopKCgwLFouWikoKDAsWi5aKShLLCIiLmNvbmNhdChpLnByZWZpeENscywiLXRyZWVub2RlLWRpc2FibGVkIiksYmUpLCIiLmNvbmNhdChpLnByZWZpeENscywiLXRyZWVub2RlLXN3aXRjaGVyLSIpLmNvbmNhdChWPyJvcGVuIjoiY2xvc2UiKSwhZGUpLCIiLmNvbmNhdChpLnByZWZpeENscywiLXRyZWVub2RlLWNoZWNrYm94LWNoZWNrZWQiKSxzZSksIiIuY29uY2F0KGkucHJlZml4Q2xzLCItdHJlZW5vZGUtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSIpLGNlKSwiIi5jb25jYXQoaS5wcmVmaXhDbHMsIi10cmVlbm9kZS1zZWxlY3RlZCIpLGZlKSwiIi5jb25jYXQoaS5wcmVmaXhDbHMsIi10cmVlbm9kZS1sb2FkaW5nIiksaGUpLCIiLmNvbmNhdChpLnByZWZpeENscywiLXRyZWVub2RlLWFjdGl2ZSIpLFBlKSwiIi5jb25jYXQoaS5wcmVmaXhDbHMsIi10cmVlbm9kZS1sZWFmLWxhc3QiKSxDZSksIiIuY29uY2F0KGkucHJlZml4Q2xzLCItdHJlZW5vZGUtZHJhZ2dhYmxlIiksYSksImRyYWdnaW5nIixVZSksKDAsWi5aKSgoMCxaLlopKCgwLFouWikoKDAsWi5aKSgoMCxaLlopKCgwLFouWikoKDAsWi5aKShLLCJkcm9wLXRhcmdldCIsaS5kcm9wVGFyZ2V0S2V5PT09RCksImRyb3AtY29udGFpbmVyIixpLmRyb3BDb250YWluZXJLZXk9PT1EKSwiZHJhZy1vdmVyIiwhYmUmJk4pLCJkcmFnLW92ZXItZ2FwLXRvcCIsIWJlJiZpZSksImRyYWctb3Zlci1nYXAtYm90dG9tIiwhYmUmJnVlKSwiZmlsdGVyLW5vZGUiLChFPWkuZmlsdGVyVHJlZU5vZGUpPT09bnVsbHx8RT09PXZvaWQgMD92b2lkIDA6RS5jYWxsKGksKDAsWC5GKSh0KSkpLCIiLmNvbmNhdChpLnByZWZpeENscywiLXRyZWVub2RlLWxlYWYiKSxXKSkpLHN0eWxlOmosZHJhZ2dhYmxlOlplLG9uRHJhZ1N0YXJ0OlplP3Y6dm9pZCAwLG9uRHJhZ0VudGVyOmE/Yjp2b2lkIDAsb25EcmFnT3ZlcjphP086dm9pZCAwLG9uRHJhZ0xlYXZlOmE/UDp2b2lkIDAsb25Ecm9wOmE/VTp2b2lkIDAsb25EcmFnRW5kOmE/VDp2b2lkIDAsb25Nb3VzZU1vdmU6TGV9LFJlLHllKSxrLmNyZWF0ZUVsZW1lbnQoQSx7cHJlZml4Q2xzOmkucHJlZml4Q2xzLGxldmVsOlNlLGlzU3RhcnQ6b2UsaXNFbmQ6bGV9KSxMLHRlKCksWSxFZSl9O0kuaXNUcmVlTm9kZT0xO3ZhciBTPUl9LDI3ODIyOmZ1bmN0aW9uKEllLG1lLGwpe2wuZChtZSx7azpmdW5jdGlvbigpe3JldHVybiBafSx5OmZ1bmN0aW9uKCl7cmV0dXJuIFF9fSk7dmFyIEY9bCg2NzI5NCksWj1GLmNyZWF0ZUNvbnRleHQobnVsbCksUT1GLmNyZWF0ZUNvbnRleHQoe30pfSw3MDU5MzpmdW5jdGlvbihJZSxtZSxsKXtsLmQobWUse09GOmZ1bmN0aW9uKCl7cmV0dXJuIEQuWn0seTY6ZnVuY3Rpb24oKXtyZXR1cm4gcy55fSxaUDpmdW5jdGlvbigpe3JldHVybiBiZX19KTt2YXIgRj1sKDg3NDYyKSxaPWwoNzEwMDIpLFE9bCgxNDEzKSx4ZT1sKDc0OTAyKSxEZT1sKDE1NjcxKSxrPWwoNDMxNDQpLG89bCg5NzMyNiksbT1sKDYwMTM2KSxSPWwoMjkzODgpLGc9bCg0OTQyKSxyZT1sKDkzOTY3KSxBPWwubihyZSksXz1sKDE1MTA1KSxYPWwoNjQyMTcpLGFlPWwoODAzMzQpLGM9bCg2NzI5NCkscz1sKDI3ODIyKSxoPWZ1bmN0aW9uKGVlKXt2YXIgej1lZS5kcm9wUG9zaXRpb24sZT1lZS5kcm9wTGV2ZWxPZmZzZXQscD1lZS5pbmRlbnQsJD17cG9pbnRlckV2ZW50czoibm9uZSIscG9zaXRpb246ImFic29sdXRlIixyaWdodDowLGJhY2tncm91bmRDb2xvcjoicmVkIixoZWlnaHQ6Mn07c3dpdGNoKHope2Nhc2UtMTokLnRvcD0wLCQubGVmdD0tZSpwO2JyZWFrO2Nhc2UgMTokLmJvdHRvbT0wLCQubGVmdD0tZSpwO2JyZWFrO2Nhc2UgMDokLmJvdHRvbT0wLCQubGVmdD1wO2JyZWFrfXJldHVybiBjLmNyZWF0ZUVsZW1lbnQoImRpdiIse3N0eWxlOiR9KX0sST1oO2Z1bmN0aW9uIFModSl7aWYodT09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgZGVzdHJ1Y3R1cmUgIit1KX12YXIgbj1sKDk3Njg1KSx0PWwoOTEpLGY9bCg4NDEwKSxFPWwoODc3MTgpLEs9bCgyOTM3MiksRD1sKDg2MTI4KTtmdW5jdGlvbiBNKHUsZWUpe3ZhciB6PWMudXNlU3RhdGUoITEpLGU9KDAsbi5aKSh6LDIpLHA9ZVswXSwkPWVbMV07KDAsZi5aKShmdW5jdGlvbigpe2lmKHApcmV0dXJuIHUoKSxmdW5jdGlvbigpe2VlKCl9fSxbcF0pLCgwLGYuWikoZnVuY3Rpb24oKXtyZXR1cm4gJCghMCksZnVuY3Rpb24oKXskKCExKX19LFtdKX12YXIgaj1NLE49bCgxMDg5KSxpZT1bImNsYXNzTmFtZSIsInN0eWxlIiwibW90aW9uIiwibW90aW9uTm9kZXMiLCJtb3Rpb25UeXBlIiwib25Nb3Rpb25TdGFydCIsIm9uTW90aW9uRW5kIiwiYWN0aXZlIiwidHJlZU5vZGVSZXF1aXJlZFByb3BzIl0sdWU9Yy5mb3J3YXJkUmVmKGZ1bmN0aW9uKHUsZWUpe3ZhciB6PXUuY2xhc3NOYW1lLGU9dS5zdHlsZSxwPXUubW90aW9uLCQ9dS5tb3Rpb25Ob2RlcyxHPXUubW90aW9uVHlwZSxyPXUub25Nb3Rpb25TdGFydCxkPXUub25Nb3Rpb25FbmQsYT11LmFjdGl2ZSx2PXUudHJlZU5vZGVSZXF1aXJlZFByb3BzLGI9KDAsdC5aKSh1LGllKSxPPWMudXNlU3RhdGUoITApLFA9KDAsbi5aKShPLDIpLFQ9UFswXSxVPVBbMV0seT1jLnVzZUNvbnRleHQocy5rKSxDPXkucHJlZml4Q2xzLFc9JCYmRyE9PSJoaWRlIjsoMCxmLlopKGZ1bmN0aW9uKCl7JCYmVyE9PVQmJlUoVyl9LFskXSk7dmFyIEw9ZnVuY3Rpb24oKXskJiZyKCl9LHc9Yy51c2VSZWYoITEpLHRlPWZ1bmN0aW9uKCl7JCYmIXcuY3VycmVudCYmKHcuY3VycmVudD0hMCxkKCkpfTtqKEwsdGUpO3ZhciBZPWZ1bmN0aW9uKG5lKXtXPT09bmUmJnRlKCl9O3JldHVybiAkP2MuY3JlYXRlRWxlbWVudChLLlpQLCgwLEYuWikoe3JlZjplZSx2aXNpYmxlOlR9LHAse21vdGlvbkFwcGVhcjpHPT09InNob3ciLG9uVmlzaWJsZUNoYW5nZWQ6WX0pLGZ1bmN0aW9uKEgsbmUpe3ZhciBnZT1ILmNsYXNzTmFtZSxFZT1ILnN0eWxlO3JldHVybiBjLmNyZWF0ZUVsZW1lbnQoImRpdiIse3JlZjpuZSxjbGFzc05hbWU6QSgpKCIiLmNvbmNhdChDLCItdHJlZW5vZGUtbW90aW9uIiksZ2UpLHN0eWxlOkVlfSwkLm1hcChmdW5jdGlvbih5ZSl7dmFyIEtlPU9iamVjdC5hc3NpZ24oe30sKFMoeWUuZGF0YSkseWUuZGF0YSkpLFNlPXllLnRpdGxlLENlPXllLmtleSxaZT15ZS5pc1N0YXJ0LFVlPXllLmlzRW5kO2RlbGV0ZSBLZS5jaGlsZHJlbjt2YXIgUmU9KDAsTi5IOCkoQ2Usdik7cmV0dXJuIGMuY3JlYXRlRWxlbWVudChELlosKDAsRi5aKSh7fSxLZSxSZSx7dGl0bGU6U2UsYWN0aXZlOmEsZGF0YTp5ZS5kYXRhLGtleTpDZSxpc1N0YXJ0OlplLGlzRW5kOlVlfSkpfSkpfSk6Yy5jcmVhdGVFbGVtZW50KEQuWiwoMCxGLlopKHtkb21SZWY6ZWUsY2xhc3NOYW1lOnosc3R5bGU6ZX0sYix7YWN0aXZlOmF9KSl9KSxkZT11ZTtmdW5jdGlvbiBvZSgpe3ZhciB1PWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dm9pZCAwP2FyZ3VtZW50c1swXTpbXSxlZT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06W10sej11Lmxlbmd0aCxlPWVlLmxlbmd0aDtpZihNYXRoLmFicyh6LWUpIT09MSlyZXR1cm57YWRkOiExLGtleTpudWxsfTtmdW5jdGlvbiBwKCQsRyl7dmFyIHI9bmV3IE1hcDskLmZvckVhY2goZnVuY3Rpb24oYSl7ci5zZXQoYSwhMCl9KTt2YXIgZD1HLmZpbHRlcihmdW5jdGlvbihhKXtyZXR1cm4hci5oYXMoYSl9KTtyZXR1cm4gZC5sZW5ndGg9PT0xP2RbMF06bnVsbH1yZXR1cm4gejxlP3thZGQ6ITAsa2V5OnAodSxlZSl9OnthZGQ6ITEsa2V5OnAoZWUsdSl9fWZ1bmN0aW9uIGxlKHUsZWUseil7dmFyIGU9dS5maW5kSW5kZXgoZnVuY3Rpb24ocil7cmV0dXJuIHIua2V5PT09en0pLHA9dVtlKzFdLCQ9ZWUuZmluZEluZGV4KGZ1bmN0aW9uKHIpe3JldHVybiByLmtleT09PXp9KTtpZihwKXt2YXIgRz1lZS5maW5kSW5kZXgoZnVuY3Rpb24ocil7cmV0dXJuIHIua2V5PT09cC5rZXl9KTtyZXR1cm4gZWUuc2xpY2UoJCsxLEcpfXJldHVybiBlZS5zbGljZSgkKzEpfXZhciBWPVsicHJlZml4Q2xzIiwiZGF0YSIsInNlbGVjdGFibGUiLCJjaGVja2FibGUiLCJleHBhbmRlZEtleXMiLCJzZWxlY3RlZEtleXMiLCJjaGVja2VkS2V5cyIsImxvYWRlZEtleXMiLCJsb2FkaW5nS2V5cyIsImhhbGZDaGVja2VkS2V5cyIsImtleUVudGl0aWVzIiwiZGlzYWJsZWQiLCJkcmFnZ2luZyIsImRyYWdPdmVyTm9kZUtleSIsImRyb3BQb3NpdGlvbiIsIm1vdGlvbiIsImhlaWdodCIsIml0ZW1IZWlnaHQiLCJ2aXJ0dWFsIiwic2Nyb2xsV2lkdGgiLCJmb2N1c2FibGUiLCJhY3RpdmVJdGVtIiwiZm9jdXNlZCIsInRhYkluZGV4Iiwib25LZXlEb3duIiwib25Gb2N1cyIsIm9uQmx1ciIsIm9uQWN0aXZlQ2hhbmdlIiwib25MaXN0Q2hhbmdlU3RhcnQiLCJvbkxpc3RDaGFuZ2VFbmQiXSxmZT17d2lkdGg6MCxoZWlnaHQ6MCxkaXNwbGF5OiJmbGV4IixvdmVyZmxvdzoiaGlkZGVuIixvcGFjaXR5OjAsYm9yZGVyOjAscGFkZGluZzowLG1hcmdpbjowfSxzZT1mdW5jdGlvbigpe30sY2U9IlJDX1RSRUVfTU9USU9OXyIuY29uY2F0KE1hdGgucmFuZG9tKCkpLGhlPXtrZXk6Y2V9LHE9e2tleTpjZSxsZXZlbDowLGluZGV4OjAscG9zOiIwIixub2RlOmhlLG5vZGVzOltoZV19LFBlPXtwYXJlbnQ6bnVsbCxjaGlsZHJlbjpbXSxwb3M6cS5wb3MsZGF0YTpoZSx0aXRsZTpudWxsLGtleTpjZSxpc1N0YXJ0OltdLGlzRW5kOltdfTtmdW5jdGlvbiB2ZSh1LGVlLHosZSl7cmV0dXJuIGVlPT09ITF8fCF6P3U6dS5zbGljZSgwLE1hdGguY2VpbCh6L2UpKzEpfWZ1bmN0aW9uIExlKHUpe3ZhciBlZT11LmtleSx6PXUucG9zO3JldHVybigwLE4ua20pKGVlLHopfWZ1bmN0aW9uIGtlKHUpe2Zvcih2YXIgZWU9U3RyaW5nKHUuZGF0YS5rZXkpLHo9dTt6LnBhcmVudDspej16LnBhcmVudCxlZT0iIi5jb25jYXQoei5kYXRhLmtleSwiID4gIikuY29uY2F0KGVlKTtyZXR1cm4gZWV9dmFyIF9lPWMuZm9yd2FyZFJlZihmdW5jdGlvbih1LGVlKXt2YXIgej11LnByZWZpeENscyxlPXUuZGF0YSxwPXUuc2VsZWN0YWJsZSwkPXUuY2hlY2thYmxlLEc9dS5leHBhbmRlZEtleXMscj11LnNlbGVjdGVkS2V5cyxkPXUuY2hlY2tlZEtleXMsYT11LmxvYWRlZEtleXMsdj11LmxvYWRpbmdLZXlzLGI9dS5oYWxmQ2hlY2tlZEtleXMsTz11LmtleUVudGl0aWVzLFA9dS5kaXNhYmxlZCxUPXUuZHJhZ2dpbmcsVT11LmRyYWdPdmVyTm9kZUtleSx5PXUuZHJvcFBvc2l0aW9uLEM9dS5tb3Rpb24sVz11LmhlaWdodCxMPXUuaXRlbUhlaWdodCx3PXUudmlydHVhbCx0ZT11LnNjcm9sbFdpZHRoLFk9dS5mb2N1c2FibGUsSD11LmFjdGl2ZUl0ZW0sbmU9dS5mb2N1c2VkLGdlPXUudGFiSW5kZXgsRWU9dS5vbktleURvd24seWU9dS5vbkZvY3VzLEtlPXUub25CbHVyLFNlPXUub25BY3RpdmVDaGFuZ2UsQ2U9dS5vbkxpc3RDaGFuZ2VTdGFydCxaZT11Lm9uTGlzdENoYW5nZUVuZCxVZT0oMCx0LlopKHUsViksUmU9Yy51c2VSZWYobnVsbCksSj1jLnVzZVJlZihudWxsKTtjLnVzZUltcGVyYXRpdmVIYW5kbGUoZWUsZnVuY3Rpb24oKXtyZXR1cm57c2Nyb2xsVG86ZnVuY3Rpb24oV2Upe1JlLmN1cnJlbnQuc2Nyb2xsVG8oV2UpfSxnZXRJbmRlbnRXaWR0aDpmdW5jdGlvbigpe3JldHVybiBKLmN1cnJlbnQub2Zmc2V0V2lkdGh9fX0pO3ZhciB4PWMudXNlU3RhdGUoRyksTmU9KDAsbi5aKSh4LDIpLEZlPU5lWzBdLEFlPU5lWzFdLEJlPWMudXNlU3RhdGUoZSksUWU9KDAsbi5aKShCZSwyKSxIZT1RZVswXSxKZT1RZVsxXSxydD1jLnVzZVN0YXRlKGUpLHFlPSgwLG4uWikocnQsMiksYXQ9cWVbMF0semU9cWVbMV0sR2U9Yy51c2VTdGF0ZShbXSksZXQ9KDAsbi5aKShHZSwyKSxmdD1ldFswXSxvdD1ldFsxXSx2dD1jLnVzZVN0YXRlKG51bGwpLHN0PSgwLG4uWikodnQsMiksZ3Q9c3RbMF0saXQ9c3RbMV0sY3Q9Yy51c2VSZWYoZSk7Y3QuY3VycmVudD1lO2Z1bmN0aW9uIGR0KCl7dmFyIHBlPWN0LmN1cnJlbnQ7SmUocGUpLHplKHBlKSxvdChbXSksaXQobnVsbCksWmUoKX0oMCxmLlopKGZ1bmN0aW9uKCl7QWUoRyk7dmFyIHBlPW9lKEZlLEcpO2lmKHBlLmtleSE9PW51bGwpaWYocGUuYWRkKXt2YXIgV2U9SGUuZmluZEluZGV4KGZ1bmN0aW9uKFZlKXt2YXIgWWU9VmUua2V5O3JldHVybiBZZT09PXBlLmtleX0pLGplPXZlKGxlKEhlLGUscGUua2V5KSx3LFcsTCksdHQ9SGUuc2xpY2UoKTt0dC5zcGxpY2UoV2UrMSwwLFBlKSx6ZSh0dCksb3QoamUpLGl0KCJzaG93Iil9ZWxzZXt2YXIgWGU9ZS5maW5kSW5kZXgoZnVuY3Rpb24oVmUpe3ZhciBZZT1WZS5rZXk7cmV0dXJuIFllPT09cGUua2V5fSksbHQ9dmUobGUoZSxIZSxwZS5rZXkpLHcsVyxMKSxudD1lLnNsaWNlKCk7bnQuc3BsaWNlKFhlKzEsMCxQZSksemUobnQpLG90KGx0KSxpdCgiaGlkZSIpfWVsc2UgSGUhPT1lJiYoSmUoZSksemUoZSkpfSxbRyxlXSksYy51c2VFZmZlY3QoZnVuY3Rpb24oKXtUfHxkdCgpfSxbVF0pO3ZhciBodD1DP2F0OmUsdXQ9e2V4cGFuZGVkS2V5czpHLHNlbGVjdGVkS2V5czpyLGxvYWRlZEtleXM6YSxsb2FkaW5nS2V5czp2LGNoZWNrZWRLZXlzOmQsaGFsZkNoZWNrZWRLZXlzOmIsZHJhZ092ZXJOb2RlS2V5OlUsZHJvcFBvc2l0aW9uOnksa2V5RW50aXRpZXM6T307cmV0dXJuIGMuY3JlYXRlRWxlbWVudChjLkZyYWdtZW50LG51bGwsbmUmJkgmJmMuY3JlYXRlRWxlbWVudCgic3BhbiIse3N0eWxlOmZlLCJhcmlhLWxpdmUiOiJhc3NlcnRpdmUifSxrZShIKSksYy5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsYy5jcmVhdGVFbGVtZW50KCJpbnB1dCIse3N0eWxlOmZlLGRpc2FibGVkOlk9PT0hMXx8UCx0YWJJbmRleDpZIT09ITE/Z2U6bnVsbCxvbktleURvd246RWUsb25Gb2N1czp5ZSxvbkJsdXI6S2UsdmFsdWU6IiIsb25DaGFuZ2U6c2UsImFyaWEtbGFiZWwiOiJmb3Igc2NyZWVuIHJlYWRlciJ9KSksYy5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KHosIi10cmVlbm9kZSIpLCJhcmlhLWhpZGRlbiI6ITAsc3R5bGU6e3Bvc2l0aW9uOiJhYnNvbHV0ZSIscG9pbnRlckV2ZW50czoibm9uZSIsdmlzaWJpbGl0eToiaGlkZGVuIixoZWlnaHQ6MCxvdmVyZmxvdzoiaGlkZGVuIixib3JkZXI6MCxwYWRkaW5nOjB9fSxjLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiIi5jb25jYXQoeiwiLWluZGVudCIpfSxjLmNyZWF0ZUVsZW1lbnQoImRpdiIse3JlZjpKLGNsYXNzTmFtZToiIi5jb25jYXQoeiwiLWluZGVudC11bml0Iil9KSkpLGMuY3JlYXRlRWxlbWVudChFLlosKDAsRi5aKSh7fSxVZSx7ZGF0YTpodCxpdGVtS2V5OkxlLGhlaWdodDpXLGZ1bGxIZWlnaHQ6ITEsdmlydHVhbDp3LGl0ZW1IZWlnaHQ6TCxzY3JvbGxXaWR0aDp0ZSxwcmVmaXhDbHM6IiIuY29uY2F0KHosIi1saXN0IikscmVmOlJlLHJvbGU6InRyZWUiLG9uVmlzaWJsZUNoYW5nZTpmdW5jdGlvbihXZSl7V2UuZXZlcnkoZnVuY3Rpb24oamUpe3JldHVybiBMZShqZSkhPT1jZX0pJiZkdCgpfX0pLGZ1bmN0aW9uKHBlKXt2YXIgV2U9cGUucG9zLGplPU9iamVjdC5hc3NpZ24oe30sKFMocGUuZGF0YSkscGUuZGF0YSkpLHR0PXBlLnRpdGxlLFhlPXBlLmtleSxsdD1wZS5pc1N0YXJ0LG50PXBlLmlzRW5kLFZlPSgwLE4ua20pKFhlLFdlKTtkZWxldGUgamUua2V5LGRlbGV0ZSBqZS5jaGlsZHJlbjt2YXIgWWU9KDAsTi5IOCkoVmUsdXQpO3JldHVybiBjLmNyZWF0ZUVsZW1lbnQoZGUsKDAsRi5aKSh7fSxqZSxZZSx7dGl0bGU6dHQsYWN0aXZlOiEhSCYmWGU9PT1ILmtleSxwb3M6V2UsZGF0YTpwZS5kYXRhLGlzU3RhcnQ6bHQsaXNFbmQ6bnQsbW90aW9uOkMsbW90aW9uTm9kZXM6WGU9PT1jZT9mdDpudWxsLG1vdGlvblR5cGU6Z3Qsb25Nb3Rpb25TdGFydDpDZSxvbk1vdGlvbkVuZDpkdCx0cmVlTm9kZVJlcXVpcmVkUHJvcHM6dXQsb25Nb3VzZU1vdmU6ZnVuY3Rpb24oKXtTZShudWxsKX19KSl9KSl9KSxpPV9lLEI9bCgxMDIyNSksd2U9bCgxNzM0MSksJGU9bCgzNTM4MSksVGU9MTAsT2U9ZnVuY3Rpb24odSl7KDAsbS5aKSh6LHUpO3ZhciBlZT0oMCxSLlopKHopO2Z1bmN0aW9uIHooKXt2YXIgZTsoMCxEZS5aKSh0aGlzLHopO2Zvcih2YXIgcD1hcmd1bWVudHMubGVuZ3RoLCQ9bmV3IEFycmF5KHApLEc9MDtHPHA7RysrKSRbR109YXJndW1lbnRzW0ddO3JldHVybiBlPWVlLmNhbGwuYXBwbHkoZWUsW3RoaXNdLmNvbmNhdCgkKSksKDAsZy5aKSgoMCxvLlopKGUpLCJkZXN0cm95ZWQiLCExKSwoMCxnLlopKCgwLG8uWikoZSksImRlbGF5ZWREcmFnRW50ZXJMb2dpYyIsdm9pZCAwKSwoMCxnLlopKCgwLG8uWikoZSksImxvYWRpbmdSZXRyeVRpbWVzIix7fSksKDAsZy5aKSgoMCxvLlopKGUpLCJzdGF0ZSIse2tleUVudGl0aWVzOnt9LGluZGVudDpudWxsLHNlbGVjdGVkS2V5czpbXSxjaGVja2VkS2V5czpbXSxoYWxmQ2hlY2tlZEtleXM6W10sbG9hZGVkS2V5czpbXSxsb2FkaW5nS2V5czpbXSxleHBhbmRlZEtleXM6W10sZHJhZ2dpbmdOb2RlS2V5Om51bGwsZHJhZ0NoaWxkcmVuS2V5czpbXSxkcm9wVGFyZ2V0S2V5Om51bGwsZHJvcFBvc2l0aW9uOm51bGwsZHJvcENvbnRhaW5lcktleTpudWxsLGRyb3BMZXZlbE9mZnNldDpudWxsLGRyb3BUYXJnZXRQb3M6bnVsbCxkcm9wQWxsb3dlZDohMCxkcmFnT3Zlck5vZGVLZXk6bnVsbCx0cmVlRGF0YTpbXSxmbGF0dGVuTm9kZXM6W10sZm9jdXNlZDohMSxhY3RpdmVLZXk6bnVsbCxsaXN0Q2hhbmdpbmc6ITEscHJldlByb3BzOm51bGwsZmllbGROYW1lczooMCxOLnckKSgpfSksKDAsZy5aKSgoMCxvLlopKGUpLCJkcmFnU3RhcnRNb3VzZVBvc2l0aW9uIixudWxsKSwoMCxnLlopKCgwLG8uWikoZSksImRyYWdOb2RlUHJvcHMiLG51bGwpLCgwLGcuWikoKDAsby5aKShlKSwiY3VycmVudE1vdXNlT3ZlckRyb3BwYWJsZU5vZGVLZXkiLG51bGwpLCgwLGcuWikoKDAsby5aKShlKSwibGlzdFJlZiIsYy5jcmVhdGVSZWYoKSksKDAsZy5aKSgoMCxvLlopKGUpLCJvbk5vZGVEcmFnU3RhcnQiLGZ1bmN0aW9uKHIsZCl7dmFyIGE9ZS5zdGF0ZSx2PWEuZXhwYW5kZWRLZXlzLGI9YS5rZXlFbnRpdGllcyxPPWUucHJvcHMub25EcmFnU3RhcnQsUD1kLmV2ZW50S2V5O2UuZHJhZ05vZGVQcm9wcz1kLGUuZHJhZ1N0YXJ0TW91c2VQb3NpdGlvbj17eDpyLmNsaWVudFgseTpyLmNsaWVudFl9O3ZhciBUPSgwLEIuXzUpKHYsUCk7ZS5zZXRTdGF0ZSh7ZHJhZ2dpbmdOb2RlS2V5OlAsZHJhZ0NoaWxkcmVuS2V5czooMCxCLndBKShQLGIpLGluZGVudDplLmxpc3RSZWYuY3VycmVudC5nZXRJbmRlbnRXaWR0aCgpfSksZS5zZXRFeHBhbmRlZEtleXMoVCksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImRyYWdlbmQiLGUub25XaW5kb3dEcmFnRW5kKSxPPT1udWxsfHxPKHtldmVudDpyLG5vZGU6KDAsTi5GKShkKX0pfSksKDAsZy5aKSgoMCxvLlopKGUpLCJvbk5vZGVEcmFnRW50ZXIiLGZ1bmN0aW9uKHIsZCl7dmFyIGE9ZS5zdGF0ZSx2PWEuZXhwYW5kZWRLZXlzLGI9YS5rZXlFbnRpdGllcyxPPWEuZHJhZ0NoaWxkcmVuS2V5cyxQPWEuZmxhdHRlbk5vZGVzLFQ9YS5pbmRlbnQsVT1lLnByb3BzLHk9VS5vbkRyYWdFbnRlcixDPVUub25FeHBhbmQsVz1VLmFsbG93RHJvcCxMPVUuZGlyZWN0aW9uLHc9ZC5wb3MsdGU9ZC5ldmVudEtleTtpZihlLmN1cnJlbnRNb3VzZU92ZXJEcm9wcGFibGVOb2RlS2V5IT09dGUmJihlLmN1cnJlbnRNb3VzZU92ZXJEcm9wcGFibGVOb2RlS2V5PXRlKSwhZS5kcmFnTm9kZVByb3BzKXtlLnJlc2V0RHJhZ1N0YXRlKCk7cmV0dXJufXZhciBZPSgwLEIuT00pKHIsZS5kcmFnTm9kZVByb3BzLGQsVCxlLmRyYWdTdGFydE1vdXNlUG9zaXRpb24sVyxQLGIsdixMKSxIPVkuZHJvcFBvc2l0aW9uLG5lPVkuZHJvcExldmVsT2Zmc2V0LGdlPVkuZHJvcFRhcmdldEtleSxFZT1ZLmRyb3BDb250YWluZXJLZXkseWU9WS5kcm9wVGFyZ2V0UG9zLEtlPVkuZHJvcEFsbG93ZWQsU2U9WS5kcmFnT3Zlck5vZGVLZXk7aWYoTy5pbmNsdWRlcyhnZSl8fCFLZSl7ZS5yZXNldERyYWdTdGF0ZSgpO3JldHVybn1pZihlLmRlbGF5ZWREcmFnRW50ZXJMb2dpY3x8KGUuZGVsYXllZERyYWdFbnRlckxvZ2ljPXt9KSxPYmplY3Qua2V5cyhlLmRlbGF5ZWREcmFnRW50ZXJMb2dpYykuZm9yRWFjaChmdW5jdGlvbihDZSl7Y2xlYXJUaW1lb3V0KGUuZGVsYXllZERyYWdFbnRlckxvZ2ljW0NlXSl9KSxlLmRyYWdOb2RlUHJvcHMuZXZlbnRLZXkhPT1kLmV2ZW50S2V5JiYoci5wZXJzaXN0KCksZS5kZWxheWVkRHJhZ0VudGVyTG9naWNbd109d2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXtpZihlLnN0YXRlLmRyYWdnaW5nTm9kZUtleSE9PW51bGwpe3ZhciBDZT0oMCx4ZS5aKSh2KSxaZT0oMCwkZS5aKShiLGQuZXZlbnRLZXkpO1plJiYoWmUuY2hpbGRyZW58fFtdKS5sZW5ndGgmJihDZT0oMCxCLkwwKSh2LGQuZXZlbnRLZXkpKSxlLnByb3BzLmhhc093blByb3BlcnR5KCJleHBhbmRlZEtleXMiKXx8ZS5zZXRFeHBhbmRlZEtleXMoQ2UpLEM9PW51bGx8fEMoQ2Use25vZGU6KDAsTi5GKShkKSxleHBhbmRlZDohMCxuYXRpdmVFdmVudDpyLm5hdGl2ZUV2ZW50fSl9fSw4MDApKSxlLmRyYWdOb2RlUHJvcHMuZXZlbnRLZXk9PT1nZSYmbmU9PT0wKXtlLnJlc2V0RHJhZ1N0YXRlKCk7cmV0dXJufWUuc2V0U3RhdGUoe2RyYWdPdmVyTm9kZUtleTpTZSxkcm9wUG9zaXRpb246SCxkcm9wTGV2ZWxPZmZzZXQ6bmUsZHJvcFRhcmdldEtleTpnZSxkcm9wQ29udGFpbmVyS2V5OkVlLGRyb3BUYXJnZXRQb3M6eWUsZHJvcEFsbG93ZWQ6S2V9KSx5PT1udWxsfHx5KHtldmVudDpyLG5vZGU6KDAsTi5GKShkKSxleHBhbmRlZEtleXM6dn0pfSksKDAsZy5aKSgoMCxvLlopKGUpLCJvbk5vZGVEcmFnT3ZlciIsZnVuY3Rpb24ocixkKXt2YXIgYT1lLnN0YXRlLHY9YS5kcmFnQ2hpbGRyZW5LZXlzLGI9YS5mbGF0dGVuTm9kZXMsTz1hLmtleUVudGl0aWVzLFA9YS5leHBhbmRlZEtleXMsVD1hLmluZGVudCxVPWUucHJvcHMseT1VLm9uRHJhZ092ZXIsQz1VLmFsbG93RHJvcCxXPVUuZGlyZWN0aW9uO2lmKGUuZHJhZ05vZGVQcm9wcyl7dmFyIEw9KDAsQi5PTSkocixlLmRyYWdOb2RlUHJvcHMsZCxULGUuZHJhZ1N0YXJ0TW91c2VQb3NpdGlvbixDLGIsTyxQLFcpLHc9TC5kcm9wUG9zaXRpb24sdGU9TC5kcm9wTGV2ZWxPZmZzZXQsWT1MLmRyb3BUYXJnZXRLZXksSD1MLmRyb3BDb250YWluZXJLZXksbmU9TC5kcm9wVGFyZ2V0UG9zLGdlPUwuZHJvcEFsbG93ZWQsRWU9TC5kcmFnT3Zlck5vZGVLZXk7di5pbmNsdWRlcyhZKXx8IWdlfHwoZS5kcmFnTm9kZVByb3BzLmV2ZW50S2V5PT09WSYmdGU9PT0wP2Uuc3RhdGUuZHJvcFBvc2l0aW9uPT09bnVsbCYmZS5zdGF0ZS5kcm9wTGV2ZWxPZmZzZXQ9PT1udWxsJiZlLnN0YXRlLmRyb3BUYXJnZXRLZXk9PT1udWxsJiZlLnN0YXRlLmRyb3BDb250YWluZXJLZXk9PT1udWxsJiZlLnN0YXRlLmRyb3BUYXJnZXRQb3M9PT1udWxsJiZlLnN0YXRlLmRyb3BBbGxvd2VkPT09ITEmJmUuc3RhdGUuZHJhZ092ZXJOb2RlS2V5PT09bnVsbHx8ZS5yZXNldERyYWdTdGF0ZSgpOnc9PT1lLnN0YXRlLmRyb3BQb3NpdGlvbiYmdGU9PT1lLnN0YXRlLmRyb3BMZXZlbE9mZnNldCYmWT09PWUuc3RhdGUuZHJvcFRhcmdldEtleSYmSD09PWUuc3RhdGUuZHJvcENvbnRhaW5lcktleSYmbmU9PT1lLnN0YXRlLmRyb3BUYXJnZXRQb3MmJmdlPT09ZS5zdGF0ZS5kcm9wQWxsb3dlZCYmRWU9PT1lLnN0YXRlLmRyYWdPdmVyTm9kZUtleXx8ZS5zZXRTdGF0ZSh7ZHJvcFBvc2l0aW9uOncsZHJvcExldmVsT2Zmc2V0OnRlLGRyb3BUYXJnZXRLZXk6WSxkcm9wQ29udGFpbmVyS2V5OkgsZHJvcFRhcmdldFBvczpuZSxkcm9wQWxsb3dlZDpnZSxkcmFnT3Zlck5vZGVLZXk6RWV9KSx5PT1udWxsfHx5KHtldmVudDpyLG5vZGU6KDAsTi5GKShkKX0pKX19KSwoMCxnLlopKCgwLG8uWikoZSksIm9uTm9kZURyYWdMZWF2ZSIsZnVuY3Rpb24ocixkKXtlLmN1cnJlbnRNb3VzZU92ZXJEcm9wcGFibGVOb2RlS2V5PT09ZC5ldmVudEtleSYmIXIuY3VycmVudFRhcmdldC5jb250YWlucyhyLnJlbGF0ZWRUYXJnZXQpJiYoZS5yZXNldERyYWdTdGF0ZSgpLGUuY3VycmVudE1vdXNlT3ZlckRyb3BwYWJsZU5vZGVLZXk9bnVsbCk7dmFyIGE9ZS5wcm9wcy5vbkRyYWdMZWF2ZTthPT1udWxsfHxhKHtldmVudDpyLG5vZGU6KDAsTi5GKShkKX0pfSksKDAsZy5aKSgoMCxvLlopKGUpLCJvbldpbmRvd0RyYWdFbmQiLGZ1bmN0aW9uKHIpe2Uub25Ob2RlRHJhZ0VuZChyLG51bGwsITApLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJkcmFnZW5kIixlLm9uV2luZG93RHJhZ0VuZCl9KSwoMCxnLlopKCgwLG8uWikoZSksIm9uTm9kZURyYWdFbmQiLGZ1bmN0aW9uKHIsZCl7dmFyIGE9ZS5wcm9wcy5vbkRyYWdFbmQ7ZS5zZXRTdGF0ZSh7ZHJhZ092ZXJOb2RlS2V5Om51bGx9KSxlLmNsZWFuRHJhZ1N0YXRlKCksYT09bnVsbHx8YSh7ZXZlbnQ6cixub2RlOigwLE4uRikoZCl9KSxlLmRyYWdOb2RlUHJvcHM9bnVsbCx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZHJhZ2VuZCIsZS5vbldpbmRvd0RyYWdFbmQpfSksKDAsZy5aKSgoMCxvLlopKGUpLCJvbk5vZGVEcm9wIixmdW5jdGlvbihyLGQpe3ZhciBhLHY9YXJndW1lbnRzLmxlbmd0aD4yJiZhcmd1bWVudHNbMl0hPT12b2lkIDA/YXJndW1lbnRzWzJdOiExLGI9ZS5zdGF0ZSxPPWIuZHJhZ0NoaWxkcmVuS2V5cyxQPWIuZHJvcFBvc2l0aW9uLFQ9Yi5kcm9wVGFyZ2V0S2V5LFU9Yi5kcm9wVGFyZ2V0UG9zLHk9Yi5kcm9wQWxsb3dlZDtpZih5KXt2YXIgQz1lLnByb3BzLm9uRHJvcDtpZihlLnNldFN0YXRlKHtkcmFnT3Zlck5vZGVLZXk6bnVsbH0pLGUuY2xlYW5EcmFnU3RhdGUoKSxUIT09bnVsbCl7dmFyIFc9KDAsUS5aKSgoMCxRLlopKHt9LCgwLE4uSDgpKFQsZS5nZXRUcmVlTm9kZVJlcXVpcmVkUHJvcHMoKSkpLHt9LHthY3RpdmU6KChhPWUuZ2V0QWN0aXZlSXRlbSgpKT09PW51bGx8fGE9PT12b2lkIDA/dm9pZCAwOmEua2V5KT09PVQsZGF0YTooMCwkZS5aKShlLnN0YXRlLmtleUVudGl0aWVzLFQpLm5vZGV9KSxMPU8uaW5jbHVkZXMoVCk7KDAsYWUuWlApKCFMLCJDYW4gbm90IGRyb3AgdG8gZHJhZ05vZGUncyBjaGlsZHJlbiBub2RlLiBUaGlzIGlzIGEgYnVnIG9mIHJjLXRyZWUuIFBsZWFzZSByZXBvcnQgYW4gaXNzdWUuIik7dmFyIHc9KDAsQi55eCkoVSksdGU9e2V2ZW50OnIsbm9kZTooMCxOLkYpKFcpLGRyYWdOb2RlOmUuZHJhZ05vZGVQcm9wcz8oMCxOLkYpKGUuZHJhZ05vZGVQcm9wcyk6bnVsbCxkcmFnTm9kZXNLZXlzOltlLmRyYWdOb2RlUHJvcHMuZXZlbnRLZXldLmNvbmNhdChPKSxkcm9wVG9HYXA6UCE9PTAsZHJvcFBvc2l0aW9uOlArTnVtYmVyKHdbdy5sZW5ndGgtMV0pfTt2fHxDPT1udWxsfHxDKHRlKSxlLmRyYWdOb2RlUHJvcHM9bnVsbH19fSksKDAsZy5aKSgoMCxvLlopKGUpLCJjbGVhbkRyYWdTdGF0ZSIsZnVuY3Rpb24oKXt2YXIgcj1lLnN0YXRlLmRyYWdnaW5nTm9kZUtleTtyIT09bnVsbCYmZS5zZXRTdGF0ZSh7ZHJhZ2dpbmdOb2RlS2V5Om51bGwsZHJvcFBvc2l0aW9uOm51bGwsZHJvcENvbnRhaW5lcktleTpudWxsLGRyb3BUYXJnZXRLZXk6bnVsbCxkcm9wTGV2ZWxPZmZzZXQ6bnVsbCxkcm9wQWxsb3dlZDohMCxkcmFnT3Zlck5vZGVLZXk6bnVsbH0pLGUuZHJhZ1N0YXJ0TW91c2VQb3NpdGlvbj1udWxsLGUuY3VycmVudE1vdXNlT3ZlckRyb3BwYWJsZU5vZGVLZXk9bnVsbH0pLCgwLGcuWikoKDAsby5aKShlKSwidHJpZ2dlckV4cGFuZEFjdGlvbkV4cGFuZCIsZnVuY3Rpb24ocixkKXt2YXIgYT1lLnN0YXRlLHY9YS5leHBhbmRlZEtleXMsYj1hLmZsYXR0ZW5Ob2RlcyxPPWQuZXhwYW5kZWQsUD1kLmtleSxUPWQuaXNMZWFmO2lmKCEoVHx8ci5zaGlmdEtleXx8ci5tZXRhS2V5fHxyLmN0cmxLZXkpKXt2YXIgVT1iLmZpbHRlcihmdW5jdGlvbihDKXtyZXR1cm4gQy5rZXk9PT1QfSlbMF0seT0oMCxOLkYpKCgwLFEuWikoKDAsUS5aKSh7fSwoMCxOLkg4KShQLGUuZ2V0VHJlZU5vZGVSZXF1aXJlZFByb3BzKCkpKSx7fSx7ZGF0YTpVLmRhdGF9KSk7ZS5zZXRFeHBhbmRlZEtleXMoTz8oMCxCLl81KSh2LFApOigwLEIuTDApKHYsUCkpLGUub25Ob2RlRXhwYW5kKHIseSl9fSksKDAsZy5aKSgoMCxvLlopKGUpLCJvbk5vZGVDbGljayIsZnVuY3Rpb24ocixkKXt2YXIgYT1lLnByb3BzLHY9YS5vbkNsaWNrLGI9YS5leHBhbmRBY3Rpb247Yj09PSJjbGljayImJmUudHJpZ2dlckV4cGFuZEFjdGlvbkV4cGFuZChyLGQpLHY9PW51bGx8fHYocixkKX0pLCgwLGcuWikoKDAsby5aKShlKSwib25Ob2RlRG91YmxlQ2xpY2siLGZ1bmN0aW9uKHIsZCl7dmFyIGE9ZS5wcm9wcyx2PWEub25Eb3VibGVDbGljayxiPWEuZXhwYW5kQWN0aW9uO2I9PT0iZG91YmxlQ2xpY2siJiZlLnRyaWdnZXJFeHBhbmRBY3Rpb25FeHBhbmQocixkKSx2PT1udWxsfHx2KHIsZCl9KSwoMCxnLlopKCgwLG8uWikoZSksIm9uTm9kZVNlbGVjdCIsZnVuY3Rpb24ocixkKXt2YXIgYT1lLnN0YXRlLnNlbGVjdGVkS2V5cyx2PWUuc3RhdGUsYj12LmtleUVudGl0aWVzLE89di5maWVsZE5hbWVzLFA9ZS5wcm9wcyxUPVAub25TZWxlY3QsVT1QLm11bHRpcGxlLHk9ZC5zZWxlY3RlZCxDPWRbTy5rZXldLFc9IXk7Vz9VP2E9KDAsQi5MMCkoYSxDKTphPVtDXTphPSgwLEIuXzUpKGEsQyk7dmFyIEw9YS5tYXAoZnVuY3Rpb24odyl7dmFyIHRlPSgwLCRlLlopKGIsdyk7cmV0dXJuIHRlP3RlLm5vZGU6bnVsbH0pLmZpbHRlcihCb29sZWFuKTtlLnNldFVuY29udHJvbGxlZFN0YXRlKHtzZWxlY3RlZEtleXM6YX0pLFQ9PW51bGx8fFQoYSx7ZXZlbnQ6InNlbGVjdCIsc2VsZWN0ZWQ6Vyxub2RlOmQsc2VsZWN0ZWROb2RlczpMLG5hdGl2ZUV2ZW50OnIubmF0aXZlRXZlbnR9KX0pLCgwLGcuWikoKDAsby5aKShlKSwib25Ob2RlQ2hlY2siLGZ1bmN0aW9uKHIsZCxhKXt2YXIgdj1lLnN0YXRlLGI9di5rZXlFbnRpdGllcyxPPXYuY2hlY2tlZEtleXMsUD12LmhhbGZDaGVja2VkS2V5cyxUPWUucHJvcHMsVT1ULmNoZWNrU3RyaWN0bHkseT1ULm9uQ2hlY2ssQz1kLmtleSxXLEw9e2V2ZW50OiJjaGVjayIsbm9kZTpkLGNoZWNrZWQ6YSxuYXRpdmVFdmVudDpyLm5hdGl2ZUV2ZW50fTtpZihVKXt2YXIgdz1hPygwLEIuTDApKE8sQyk6KDAsQi5fNSkoTyxDKSx0ZT0oMCxCLl81KShQLEMpO1c9e2NoZWNrZWQ6dyxoYWxmQ2hlY2tlZDp0ZX0sTC5jaGVja2VkTm9kZXM9dy5tYXAoZnVuY3Rpb24oeWUpe3JldHVybigwLCRlLlopKGIseWUpfSkuZmlsdGVyKEJvb2xlYW4pLm1hcChmdW5jdGlvbih5ZSl7cmV0dXJuIHllLm5vZGV9KSxlLnNldFVuY29udHJvbGxlZFN0YXRlKHtjaGVja2VkS2V5czp3fSl9ZWxzZXt2YXIgWT0oMCx3ZS5TKShbXS5jb25jYXQoKDAseGUuWikoTyksW0NdKSwhMCxiKSxIPVkuY2hlY2tlZEtleXMsbmU9WS5oYWxmQ2hlY2tlZEtleXM7aWYoIWEpe3ZhciBnZT1uZXcgU2V0KEgpO2dlLmRlbGV0ZShDKTt2YXIgRWU9KDAsd2UuUykoQXJyYXkuZnJvbShnZSkse2NoZWNrZWQ6ITEsaGFsZkNoZWNrZWRLZXlzOm5lfSxiKTtIPUVlLmNoZWNrZWRLZXlzLG5lPUVlLmhhbGZDaGVja2VkS2V5c31XPUgsTC5jaGVja2VkTm9kZXM9W10sTC5jaGVja2VkTm9kZXNQb3NpdGlvbnM9W10sTC5oYWxmQ2hlY2tlZEtleXM9bmUsSC5mb3JFYWNoKGZ1bmN0aW9uKHllKXt2YXIgS2U9KDAsJGUuWikoYix5ZSk7aWYoS2Upe3ZhciBTZT1LZS5ub2RlLENlPUtlLnBvcztMLmNoZWNrZWROb2Rlcy5wdXNoKFNlKSxMLmNoZWNrZWROb2Rlc1Bvc2l0aW9ucy5wdXNoKHtub2RlOlNlLHBvczpDZX0pfX0pLGUuc2V0VW5jb250cm9sbGVkU3RhdGUoe2NoZWNrZWRLZXlzOkh9LCExLHtoYWxmQ2hlY2tlZEtleXM6bmV9KX15PT1udWxsfHx5KFcsTCl9KSwoMCxnLlopKCgwLG8uWikoZSksIm9uTm9kZUxvYWQiLGZ1bmN0aW9uKHIpe3ZhciBkLGE9ci5rZXksdj1lLnN0YXRlLmtleUVudGl0aWVzLGI9KDAsJGUuWikodixhKTtpZighKGIhPW51bGwmJihkPWIuY2hpbGRyZW4pIT09bnVsbCYmZCE9PXZvaWQgMCYmZC5sZW5ndGgpKXt2YXIgTz1uZXcgUHJvbWlzZShmdW5jdGlvbihQLFQpe2Uuc2V0U3RhdGUoZnVuY3Rpb24oVSl7dmFyIHk9VS5sb2FkZWRLZXlzLEM9eT09PXZvaWQgMD9bXTp5LFc9VS5sb2FkaW5nS2V5cyxMPVc9PT12b2lkIDA/W106Vyx3PWUucHJvcHMsdGU9dy5sb2FkRGF0YSxZPXcub25Mb2FkO2lmKCF0ZXx8Qy5pbmNsdWRlcyhhKXx8TC5pbmNsdWRlcyhhKSlyZXR1cm4gbnVsbDt2YXIgSD10ZShyKTtyZXR1cm4gSC50aGVuKGZ1bmN0aW9uKCl7dmFyIG5lPWUuc3RhdGUubG9hZGVkS2V5cyxnZT0oMCxCLkwwKShuZSxhKTtZPT1udWxsfHxZKGdlLHtldmVudDoibG9hZCIsbm9kZTpyfSksZS5zZXRVbmNvbnRyb2xsZWRTdGF0ZSh7bG9hZGVkS2V5czpnZX0pLGUuc2V0U3RhdGUoZnVuY3Rpb24oRWUpe3JldHVybntsb2FkaW5nS2V5czooMCxCLl81KShFZS5sb2FkaW5nS2V5cyxhKX19KSxQKCl9KS5jYXRjaChmdW5jdGlvbihuZSl7aWYoZS5zZXRTdGF0ZShmdW5jdGlvbihFZSl7cmV0dXJue2xvYWRpbmdLZXlzOigwLEIuXzUpKEVlLmxvYWRpbmdLZXlzLGEpfX0pLGUubG9hZGluZ1JldHJ5VGltZXNbYV09KGUubG9hZGluZ1JldHJ5VGltZXNbYV18fDApKzEsZS5sb2FkaW5nUmV0cnlUaW1lc1thXT49VGUpe3ZhciBnZT1lLnN0YXRlLmxvYWRlZEtleXM7KDAsYWUuWlApKCExLCJSZXRyeSBmb3IgYGxvYWREYXRhYCBtYW55IHRpbWVzIGJ1dCBzdGlsbCBmYWlsZWQuIE5vIG1vcmUgcmV0cnkuIiksZS5zZXRVbmNvbnRyb2xsZWRTdGF0ZSh7bG9hZGVkS2V5czooMCxCLkwwKShnZSxhKX0pLFAoKX1UKG5lKX0pLHtsb2FkaW5nS2V5czooMCxCLkwwKShMLGEpfX0pfSk7cmV0dXJuIE8uY2F0Y2goZnVuY3Rpb24oKXt9KSxPfX0pLCgwLGcuWikoKDAsby5aKShlKSwib25Ob2RlTW91c2VFbnRlciIsZnVuY3Rpb24ocixkKXt2YXIgYT1lLnByb3BzLm9uTW91c2VFbnRlcjthPT1udWxsfHxhKHtldmVudDpyLG5vZGU6ZH0pfSksKDAsZy5aKSgoMCxvLlopKGUpLCJvbk5vZGVNb3VzZUxlYXZlIixmdW5jdGlvbihyLGQpe3ZhciBhPWUucHJvcHMub25Nb3VzZUxlYXZlO2E9PW51bGx8fGEoe2V2ZW50OnIsbm9kZTpkfSl9KSwoMCxnLlopKCgwLG8uWikoZSksIm9uTm9kZUNvbnRleHRNZW51IixmdW5jdGlvbihyLGQpe3ZhciBhPWUucHJvcHMub25SaWdodENsaWNrO2EmJihyLnByZXZlbnREZWZhdWx0KCksYSh7ZXZlbnQ6cixub2RlOmR9KSl9KSwoMCxnLlopKCgwLG8uWikoZSksIm9uRm9jdXMiLGZ1bmN0aW9uKCl7dmFyIHI9ZS5wcm9wcy5vbkZvY3VzO2Uuc2V0U3RhdGUoe2ZvY3VzZWQ6ITB9KTtmb3IodmFyIGQ9YXJndW1lbnRzLmxlbmd0aCxhPW5ldyBBcnJheShkKSx2PTA7djxkO3YrKylhW3ZdPWFyZ3VtZW50c1t2XTtyPT1udWxsfHxyLmFwcGx5KHZvaWQgMCxhKX0pLCgwLGcuWikoKDAsby5aKShlKSwib25CbHVyIixmdW5jdGlvbigpe3ZhciByPWUucHJvcHMub25CbHVyO2Uuc2V0U3RhdGUoe2ZvY3VzZWQ6ITF9KSxlLm9uQWN0aXZlQ2hhbmdlKG51bGwpO2Zvcih2YXIgZD1hcmd1bWVudHMubGVuZ3RoLGE9bmV3IEFycmF5KGQpLHY9MDt2PGQ7disrKWFbdl09YXJndW1lbnRzW3ZdO3I9PW51bGx8fHIuYXBwbHkodm9pZCAwLGEpfSksKDAsZy5aKSgoMCxvLlopKGUpLCJnZXRUcmVlTm9kZVJlcXVpcmVkUHJvcHMiLGZ1bmN0aW9uKCl7dmFyIHI9ZS5zdGF0ZSxkPXIuZXhwYW5kZWRLZXlzLGE9ci5zZWxlY3RlZEtleXMsdj1yLmxvYWRlZEtleXMsYj1yLmxvYWRpbmdLZXlzLE89ci5jaGVja2VkS2V5cyxQPXIuaGFsZkNoZWNrZWRLZXlzLFQ9ci5kcmFnT3Zlck5vZGVLZXksVT1yLmRyb3BQb3NpdGlvbix5PXIua2V5RW50aXRpZXM7cmV0dXJue2V4cGFuZGVkS2V5czpkfHxbXSxzZWxlY3RlZEtleXM6YXx8W10sbG9hZGVkS2V5czp2fHxbXSxsb2FkaW5nS2V5czpifHxbXSxjaGVja2VkS2V5czpPfHxbXSxoYWxmQ2hlY2tlZEtleXM6UHx8W10sZHJhZ092ZXJOb2RlS2V5OlQsZHJvcFBvc2l0aW9uOlUsa2V5RW50aXRpZXM6eX19KSwoMCxnLlopKCgwLG8uWikoZSksInNldEV4cGFuZGVkS2V5cyIsZnVuY3Rpb24ocil7dmFyIGQ9ZS5zdGF0ZSxhPWQudHJlZURhdGEsdj1kLmZpZWxkTmFtZXMsYj0oMCxOLm9IKShhLHIsdik7ZS5zZXRVbmNvbnRyb2xsZWRTdGF0ZSh7ZXhwYW5kZWRLZXlzOnIsZmxhdHRlbk5vZGVzOmJ9LCEwKX0pLCgwLGcuWikoKDAsby5aKShlKSwib25Ob2RlRXhwYW5kIixmdW5jdGlvbihyLGQpe3ZhciBhPWUuc3RhdGUuZXhwYW5kZWRLZXlzLHY9ZS5zdGF0ZSxiPXYubGlzdENoYW5naW5nLE89di5maWVsZE5hbWVzLFA9ZS5wcm9wcyxUPVAub25FeHBhbmQsVT1QLmxvYWREYXRhLHk9ZC5leHBhbmRlZCxDPWRbTy5rZXldO2lmKCFiKXt2YXIgVz1hLmluY2x1ZGVzKEMpLEw9IXk7aWYoKDAsYWUuWlApKHkmJld8fCF5JiYhVywiRXhwYW5kIHN0YXRlIG5vdCBzeW5jIHdpdGggaW5kZXggY2hlY2siKSxhPUw/KDAsQi5MMCkoYSxDKTooMCxCLl81KShhLEMpLGUuc2V0RXhwYW5kZWRLZXlzKGEpLFQ9PW51bGx8fFQoYSx7bm9kZTpkLGV4cGFuZGVkOkwsbmF0aXZlRXZlbnQ6ci5uYXRpdmVFdmVudH0pLEwmJlUpe3ZhciB3PWUub25Ob2RlTG9hZChkKTt3JiZ3LnRoZW4oZnVuY3Rpb24oKXt2YXIgdGU9KDAsTi5vSCkoZS5zdGF0ZS50cmVlRGF0YSxhLE8pO2Uuc2V0VW5jb250cm9sbGVkU3RhdGUoe2ZsYXR0ZW5Ob2Rlczp0ZX0pfSkuY2F0Y2goZnVuY3Rpb24oKXt2YXIgdGU9ZS5zdGF0ZS5leHBhbmRlZEtleXMsWT0oMCxCLl81KSh0ZSxDKTtlLnNldEV4cGFuZGVkS2V5cyhZKX0pfX19KSwoMCxnLlopKCgwLG8uWikoZSksIm9uTGlzdENoYW5nZVN0YXJ0IixmdW5jdGlvbigpe2Uuc2V0VW5jb250cm9sbGVkU3RhdGUoe2xpc3RDaGFuZ2luZzohMH0pfSksKDAsZy5aKSgoMCxvLlopKGUpLCJvbkxpc3RDaGFuZ2VFbmQiLGZ1bmN0aW9uKCl7c2V0VGltZW91dChmdW5jdGlvbigpe2Uuc2V0VW5jb250cm9sbGVkU3RhdGUoe2xpc3RDaGFuZ2luZzohMX0pfSl9KSwoMCxnLlopKCgwLG8uWikoZSksIm9uQWN0aXZlQ2hhbmdlIixmdW5jdGlvbihyKXt2YXIgZD1lLnN0YXRlLmFjdGl2ZUtleSxhPWUucHJvcHMsdj1hLm9uQWN0aXZlQ2hhbmdlLGI9YS5pdGVtU2Nyb2xsT2Zmc2V0LE89Yj09PXZvaWQgMD8wOmI7ZCE9PXImJihlLnNldFN0YXRlKHthY3RpdmVLZXk6cn0pLHIhPT1udWxsJiZlLnNjcm9sbFRvKHtrZXk6cixvZmZzZXQ6T30pLHY9PW51bGx8fHYocikpfSksKDAsZy5aKSgoMCxvLlopKGUpLCJnZXRBY3RpdmVJdGVtIixmdW5jdGlvbigpe3ZhciByPWUuc3RhdGUsZD1yLmFjdGl2ZUtleSxhPXIuZmxhdHRlbk5vZGVzO3JldHVybiBkPT09bnVsbD9udWxsOmEuZmluZChmdW5jdGlvbih2KXt2YXIgYj12LmtleTtyZXR1cm4gYj09PWR9KXx8bnVsbH0pLCgwLGcuWikoKDAsby5aKShlKSwib2Zmc2V0QWN0aXZlS2V5IixmdW5jdGlvbihyKXt2YXIgZD1lLnN0YXRlLGE9ZC5mbGF0dGVuTm9kZXMsdj1kLmFjdGl2ZUtleSxiPWEuZmluZEluZGV4KGZ1bmN0aW9uKFQpe3ZhciBVPVQua2V5O3JldHVybiBVPT09dn0pO2I9PT0tMSYmcjwwJiYoYj1hLmxlbmd0aCksYj0oYityK2EubGVuZ3RoKSVhLmxlbmd0aDt2YXIgTz1hW2JdO2lmKE8pe3ZhciBQPU8ua2V5O2Uub25BY3RpdmVDaGFuZ2UoUCl9ZWxzZSBlLm9uQWN0aXZlQ2hhbmdlKG51bGwpfSksKDAsZy5aKSgoMCxvLlopKGUpLCJvbktleURvd24iLGZ1bmN0aW9uKHIpe3ZhciBkPWUuc3RhdGUsYT1kLmFjdGl2ZUtleSx2PWQuZXhwYW5kZWRLZXlzLGI9ZC5jaGVja2VkS2V5cyxPPWQuZmllbGROYW1lcyxQPWUucHJvcHMsVD1QLm9uS2V5RG93bixVPVAuY2hlY2thYmxlLHk9UC5zZWxlY3RhYmxlO3N3aXRjaChyLndoaWNoKXtjYXNlIF8uWi5VUDp7ZS5vZmZzZXRBY3RpdmVLZXkoLTEpLHIucHJldmVudERlZmF1bHQoKTticmVha31jYXNlIF8uWi5ET1dOOntlLm9mZnNldEFjdGl2ZUtleSgxKSxyLnByZXZlbnREZWZhdWx0KCk7YnJlYWt9fXZhciBDPWUuZ2V0QWN0aXZlSXRlbSgpO2lmKEMmJkMuZGF0YSl7dmFyIFc9ZS5nZXRUcmVlTm9kZVJlcXVpcmVkUHJvcHMoKSxMPUMuZGF0YS5pc0xlYWY9PT0hMXx8ISEoQy5kYXRhW08uY2hpbGRyZW5dfHxbXSkubGVuZ3RoLHc9KDAsTi5GKSgoMCxRLlopKCgwLFEuWikoe30sKDAsTi5IOCkoYSxXKSkse30se2RhdGE6Qy5kYXRhLGFjdGl2ZTohMH0pKTtzd2l0Y2goci53aGljaCl7Y2FzZSBfLlouTEVGVDp7TCYmdi5pbmNsdWRlcyhhKT9lLm9uTm9kZUV4cGFuZCh7fSx3KTpDLnBhcmVudCYmZS5vbkFjdGl2ZUNoYW5nZShDLnBhcmVudC5rZXkpLHIucHJldmVudERlZmF1bHQoKTticmVha31jYXNlIF8uWi5SSUdIVDp7TCYmIXYuaW5jbHVkZXMoYSk/ZS5vbk5vZGVFeHBhbmQoe30sdyk6Qy5jaGlsZHJlbiYmQy5jaGlsZHJlbi5sZW5ndGgmJmUub25BY3RpdmVDaGFuZ2UoQy5jaGlsZHJlblswXS5rZXkpLHIucHJldmVudERlZmF1bHQoKTticmVha31jYXNlIF8uWi5FTlRFUjpjYXNlIF8uWi5TUEFDRTp7VSYmIXcuZGlzYWJsZWQmJncuY2hlY2thYmxlIT09ITEmJiF3LmRpc2FibGVDaGVja2JveD9lLm9uTm9kZUNoZWNrKHt9LHcsIWIuaW5jbHVkZXMoYSkpOiFVJiZ5JiYhdy5kaXNhYmxlZCYmdy5zZWxlY3RhYmxlIT09ITEmJmUub25Ob2RlU2VsZWN0KHt9LHcpO2JyZWFrfX19VD09bnVsbHx8VChyKX0pLCgwLGcuWikoKDAsby5aKShlKSwic2V0VW5jb250cm9sbGVkU3RhdGUiLGZ1bmN0aW9uKHIpe3ZhciBkPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTohMSxhPWFyZ3VtZW50cy5sZW5ndGg+MiYmYXJndW1lbnRzWzJdIT09dm9pZCAwP2FyZ3VtZW50c1syXTpudWxsO2lmKCFlLmRlc3Ryb3llZCl7dmFyIHY9ITEsYj0hMCxPPXt9O09iamVjdC5rZXlzKHIpLmZvckVhY2goZnVuY3Rpb24oUCl7aWYoZS5wcm9wcy5oYXNPd25Qcm9wZXJ0eShQKSl7Yj0hMTtyZXR1cm59dj0hMCxPW1BdPXJbUF19KSx2JiYoIWR8fGIpJiZlLnNldFN0YXRlKCgwLFEuWikoKDAsUS5aKSh7fSxPKSxhKSl9fSksKDAsZy5aKSgoMCxvLlopKGUpLCJzY3JvbGxUbyIsZnVuY3Rpb24ocil7ZS5saXN0UmVmLmN1cnJlbnQuc2Nyb2xsVG8ocil9KSxlfXJldHVybigwLGsuWikoeixbe2tleToiY29tcG9uZW50RGlkTW91bnQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5kZXN0cm95ZWQ9ITEsdGhpcy5vblVwZGF0ZWQoKX19LHtrZXk6ImNvbXBvbmVudERpZFVwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLm9uVXBkYXRlZCgpfX0se2tleToib25VcGRhdGVkIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBwPXRoaXMucHJvcHMsJD1wLmFjdGl2ZUtleSxHPXAuaXRlbVNjcm9sbE9mZnNldCxyPUc9PT12b2lkIDA/MDpHOyQhPT12b2lkIDAmJiQhPT10aGlzLnN0YXRlLmFjdGl2ZUtleSYmKHRoaXMuc2V0U3RhdGUoe2FjdGl2ZUtleTokfSksJCE9PW51bGwmJnRoaXMuc2Nyb2xsVG8oe2tleTokLG9mZnNldDpyfSkpfX0se2tleToiY29tcG9uZW50V2lsbFVubW91bnQiLHZhbHVlOmZ1bmN0aW9uKCl7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoImRyYWdlbmQiLHRoaXMub25XaW5kb3dEcmFnRW5kKSx0aGlzLmRlc3Ryb3llZD0hMH19LHtrZXk6InJlc2V0RHJhZ1N0YXRlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuc2V0U3RhdGUoe2RyYWdPdmVyTm9kZUtleTpudWxsLGRyb3BQb3NpdGlvbjpudWxsLGRyb3BMZXZlbE9mZnNldDpudWxsLGRyb3BUYXJnZXRLZXk6bnVsbCxkcm9wQ29udGFpbmVyS2V5Om51bGwsZHJvcFRhcmdldFBvczpudWxsLGRyb3BBbGxvd2VkOiExfSl9fSx7a2V5OiJyZW5kZXIiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHA9dGhpcy5zdGF0ZSwkPXAuZm9jdXNlZCxHPXAuZmxhdHRlbk5vZGVzLHI9cC5rZXlFbnRpdGllcyxkPXAuZHJhZ2dpbmdOb2RlS2V5LGE9cC5hY3RpdmVLZXksdj1wLmRyb3BMZXZlbE9mZnNldCxiPXAuZHJvcENvbnRhaW5lcktleSxPPXAuZHJvcFRhcmdldEtleSxQPXAuZHJvcFBvc2l0aW9uLFQ9cC5kcmFnT3Zlck5vZGVLZXksVT1wLmluZGVudCx5PXRoaXMucHJvcHMsQz15LnByZWZpeENscyxXPXkuY2xhc3NOYW1lLEw9eS5zdHlsZSx3PXkuc2hvd0xpbmUsdGU9eS5mb2N1c2FibGUsWT15LnRhYkluZGV4LEg9WT09PXZvaWQgMD8wOlksbmU9eS5zZWxlY3RhYmxlLGdlPXkuc2hvd0ljb24sRWU9eS5pY29uLHllPXkuc3dpdGNoZXJJY29uLEtlPXkuZHJhZ2dhYmxlLFNlPXkuY2hlY2thYmxlLENlPXkuY2hlY2tTdHJpY3RseSxaZT15LmRpc2FibGVkLFVlPXkubW90aW9uLFJlPXkubG9hZERhdGEsSj15LmZpbHRlclRyZWVOb2RlLHg9eS5oZWlnaHQsTmU9eS5pdGVtSGVpZ2h0LEZlPXkuc2Nyb2xsV2lkdGgsQWU9eS52aXJ0dWFsLEJlPXkudGl0bGVSZW5kZXIsUWU9eS5kcm9wSW5kaWNhdG9yUmVuZGVyLEhlPXkub25Db250ZXh0TWVudSxKZT15Lm9uU2Nyb2xsLHJ0PXkuZGlyZWN0aW9uLHFlPXkucm9vdENsYXNzTmFtZSxhdD15LnJvb3RTdHlsZSx6ZT0oMCxYLlopKHRoaXMucHJvcHMse2FyaWE6ITAsZGF0YTohMH0pLEdlO0tlJiYoKDAsWi5aKShLZSk9PT0ib2JqZWN0Ij9HZT1LZTp0eXBlb2YgS2U9PSJmdW5jdGlvbiI/R2U9e25vZGVEcmFnZ2FibGU6S2V9OkdlPXt9KTt2YXIgZXQ9e3ByZWZpeENsczpDLHNlbGVjdGFibGU6bmUsc2hvd0ljb246Z2UsaWNvbjpFZSxzd2l0Y2hlckljb246eWUsZHJhZ2dhYmxlOkdlLGRyYWdnaW5nTm9kZUtleTpkLGNoZWNrYWJsZTpTZSxjaGVja1N0cmljdGx5OkNlLGRpc2FibGVkOlplLGtleUVudGl0aWVzOnIsZHJvcExldmVsT2Zmc2V0OnYsZHJvcENvbnRhaW5lcktleTpiLGRyb3BUYXJnZXRLZXk6Tyxkcm9wUG9zaXRpb246UCxkcmFnT3Zlck5vZGVLZXk6VCxpbmRlbnQ6VSxkaXJlY3Rpb246cnQsZHJvcEluZGljYXRvclJlbmRlcjpRZSxsb2FkRGF0YTpSZSxmaWx0ZXJUcmVlTm9kZTpKLHRpdGxlUmVuZGVyOkJlLG9uTm9kZUNsaWNrOnRoaXMub25Ob2RlQ2xpY2ssb25Ob2RlRG91YmxlQ2xpY2s6dGhpcy5vbk5vZGVEb3VibGVDbGljayxvbk5vZGVFeHBhbmQ6dGhpcy5vbk5vZGVFeHBhbmQsb25Ob2RlU2VsZWN0OnRoaXMub25Ob2RlU2VsZWN0LG9uTm9kZUNoZWNrOnRoaXMub25Ob2RlQ2hlY2ssb25Ob2RlTG9hZDp0aGlzLm9uTm9kZUxvYWQsb25Ob2RlTW91c2VFbnRlcjp0aGlzLm9uTm9kZU1vdXNlRW50ZXIsb25Ob2RlTW91c2VMZWF2ZTp0aGlzLm9uTm9kZU1vdXNlTGVhdmUsb25Ob2RlQ29udGV4dE1lbnU6dGhpcy5vbk5vZGVDb250ZXh0TWVudSxvbk5vZGVEcmFnU3RhcnQ6dGhpcy5vbk5vZGVEcmFnU3RhcnQsb25Ob2RlRHJhZ0VudGVyOnRoaXMub25Ob2RlRHJhZ0VudGVyLG9uTm9kZURyYWdPdmVyOnRoaXMub25Ob2RlRHJhZ092ZXIsb25Ob2RlRHJhZ0xlYXZlOnRoaXMub25Ob2RlRHJhZ0xlYXZlLG9uTm9kZURyYWdFbmQ6dGhpcy5vbk5vZGVEcmFnRW5kLG9uTm9kZURyb3A6dGhpcy5vbk5vZGVEcm9wfTtyZXR1cm4gYy5jcmVhdGVFbGVtZW50KHMuay5Qcm92aWRlcix7dmFsdWU6ZXR9LGMuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOkEoKShDLFcscWUsKDAsZy5aKSgoMCxnLlopKCgwLGcuWikoe30sIiIuY29uY2F0KEMsIi1zaG93LWxpbmUiKSx3KSwiIi5jb25jYXQoQywiLWZvY3VzZWQiKSwkKSwiIi5jb25jYXQoQywiLWFjdGl2ZS1mb2N1c2VkIiksYSE9PW51bGwpKSxzdHlsZTphdH0sYy5jcmVhdGVFbGVtZW50KGksKDAsRi5aKSh7cmVmOnRoaXMubGlzdFJlZixwcmVmaXhDbHM6QyxzdHlsZTpMLGRhdGE6RyxkaXNhYmxlZDpaZSxzZWxlY3RhYmxlOm5lLGNoZWNrYWJsZTohIVNlLG1vdGlvbjpVZSxkcmFnZ2luZzpkIT09bnVsbCxoZWlnaHQ6eCxpdGVtSGVpZ2h0Ok5lLHZpcnR1YWw6QWUsZm9jdXNhYmxlOnRlLGZvY3VzZWQ6JCx0YWJJbmRleDpILGFjdGl2ZUl0ZW06dGhpcy5nZXRBY3RpdmVJdGVtKCksb25Gb2N1czp0aGlzLm9uRm9jdXMsb25CbHVyOnRoaXMub25CbHVyLG9uS2V5RG93bjp0aGlzLm9uS2V5RG93bixvbkFjdGl2ZUNoYW5nZTp0aGlzLm9uQWN0aXZlQ2hhbmdlLG9uTGlzdENoYW5nZVN0YXJ0OnRoaXMub25MaXN0Q2hhbmdlU3RhcnQsb25MaXN0Q2hhbmdlRW5kOnRoaXMub25MaXN0Q2hhbmdlRW5kLG9uQ29udGV4dE1lbnU6SGUsb25TY3JvbGw6SmUsc2Nyb2xsV2lkdGg6RmV9LHRoaXMuZ2V0VHJlZU5vZGVSZXF1aXJlZFByb3BzKCksemUpKSkpfX1dLFt7a2V5OiJnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMiLHZhbHVlOmZ1bmN0aW9uKHAsJCl7dmFyIEc9JC5wcmV2UHJvcHMscj17cHJldlByb3BzOnB9O2Z1bmN0aW9uIGQoSCl7cmV0dXJuIUcmJnAuaGFzT3duUHJvcGVydHkoSCl8fEcmJkdbSF0hPT1wW0hdfXZhciBhLHY9JC5maWVsZE5hbWVzO2lmKGQoImZpZWxkTmFtZXMiKSYmKHY9KDAsTi53JCkocC5maWVsZE5hbWVzKSxyLmZpZWxkTmFtZXM9diksZCgidHJlZURhdGEiKT9hPXAudHJlZURhdGE6ZCgiY2hpbGRyZW4iKSYmKCgwLGFlLlpQKSghMSwiYGNoaWxkcmVuYCBvZiBUcmVlIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgYHRyZWVEYXRhYCBpbnN0ZWFkLiIpLGE9KDAsTi56bikocC5jaGlsZHJlbikpLGEpe3IudHJlZURhdGE9YTt2YXIgYj0oMCxOLkk4KShhLHtmaWVsZE5hbWVzOnZ9KTtyLmtleUVudGl0aWVzPSgwLFEuWikoKDAsZy5aKSh7fSxjZSxxKSxiLmtleUVudGl0aWVzKX12YXIgTz1yLmtleUVudGl0aWVzfHwkLmtleUVudGl0aWVzO2lmKGQoImV4cGFuZGVkS2V5cyIpfHxHJiZkKCJhdXRvRXhwYW5kUGFyZW50Iikpci5leHBhbmRlZEtleXM9cC5hdXRvRXhwYW5kUGFyZW50fHwhRyYmcC5kZWZhdWx0RXhwYW5kUGFyZW50PygwLEIucjcpKHAuZXhwYW5kZWRLZXlzLE8pOnAuZXhwYW5kZWRLZXlzO2Vsc2UgaWYoIUcmJnAuZGVmYXVsdEV4cGFuZEFsbCl7dmFyIFA9KDAsUS5aKSh7fSxPKTtkZWxldGUgUFtjZV07dmFyIFQ9W107T2JqZWN0LmtleXMoUCkuZm9yRWFjaChmdW5jdGlvbihIKXt2YXIgbmU9UFtIXTtuZS5jaGlsZHJlbiYmbmUuY2hpbGRyZW4ubGVuZ3RoJiZULnB1c2gobmUua2V5KX0pLHIuZXhwYW5kZWRLZXlzPVR9ZWxzZSFHJiZwLmRlZmF1bHRFeHBhbmRlZEtleXMmJihyLmV4cGFuZGVkS2V5cz1wLmF1dG9FeHBhbmRQYXJlbnR8fHAuZGVmYXVsdEV4cGFuZFBhcmVudD8oMCxCLnI3KShwLmRlZmF1bHRFeHBhbmRlZEtleXMsTyk6cC5kZWZhdWx0RXhwYW5kZWRLZXlzKTtpZihyLmV4cGFuZGVkS2V5c3x8ZGVsZXRlIHIuZXhwYW5kZWRLZXlzLGF8fHIuZXhwYW5kZWRLZXlzKXt2YXIgVT0oMCxOLm9IKShhfHwkLnRyZWVEYXRhLHIuZXhwYW5kZWRLZXlzfHwkLmV4cGFuZGVkS2V5cyx2KTtyLmZsYXR0ZW5Ob2Rlcz1VfWlmKHAuc2VsZWN0YWJsZSYmKGQoInNlbGVjdGVkS2V5cyIpP3Iuc2VsZWN0ZWRLZXlzPSgwLEIuQlQpKHAuc2VsZWN0ZWRLZXlzLHApOiFHJiZwLmRlZmF1bHRTZWxlY3RlZEtleXMmJihyLnNlbGVjdGVkS2V5cz0oMCxCLkJUKShwLmRlZmF1bHRTZWxlY3RlZEtleXMscCkpKSxwLmNoZWNrYWJsZSl7dmFyIHk7aWYoZCgiY2hlY2tlZEtleXMiKT95PSgwLEIuRTYpKHAuY2hlY2tlZEtleXMpfHx7fTohRyYmcC5kZWZhdWx0Q2hlY2tlZEtleXM/eT0oMCxCLkU2KShwLmRlZmF1bHRDaGVja2VkS2V5cyl8fHt9OmEmJih5PSgwLEIuRTYpKHAuY2hlY2tlZEtleXMpfHx7Y2hlY2tlZEtleXM6JC5jaGVja2VkS2V5cyxoYWxmQ2hlY2tlZEtleXM6JC5oYWxmQ2hlY2tlZEtleXN9KSx5KXt2YXIgQz15LFc9Qy5jaGVja2VkS2V5cyxMPVc9PT12b2lkIDA/W106Vyx3PUMuaGFsZkNoZWNrZWRLZXlzLHRlPXc9PT12b2lkIDA/W106dztpZighcC5jaGVja1N0cmljdGx5KXt2YXIgWT0oMCx3ZS5TKShMLCEwLE8pO0w9WS5jaGVja2VkS2V5cyx0ZT1ZLmhhbGZDaGVja2VkS2V5c31yLmNoZWNrZWRLZXlzPUwsci5oYWxmQ2hlY2tlZEtleXM9dGV9fXJldHVybiBkKCJsb2FkZWRLZXlzIikmJihyLmxvYWRlZEtleXM9cC5sb2FkZWRLZXlzKSxyfX1dKSx6fShjLkNvbXBvbmVudCk7KDAsZy5aKShPZSwiZGVmYXVsdFByb3BzIix7cHJlZml4Q2xzOiJyYy10cmVlIixzaG93TGluZTohMSxzaG93SWNvbjohMCxzZWxlY3RhYmxlOiEwLG11bHRpcGxlOiExLGNoZWNrYWJsZTohMSxkaXNhYmxlZDohMSxjaGVja1N0cmljdGx5OiExLGRyYWdnYWJsZTohMSxkZWZhdWx0RXhwYW5kUGFyZW50OiEwLGF1dG9FeHBhbmRQYXJlbnQ6ITEsZGVmYXVsdEV4cGFuZEFsbDohMSxkZWZhdWx0RXhwYW5kZWRLZXlzOltdLGRlZmF1bHRDaGVja2VkS2V5czpbXSxkZWZhdWx0U2VsZWN0ZWRLZXlzOltdLGRyb3BJbmRpY2F0b3JSZW5kZXI6SSxhbGxvd0Ryb3A6ZnVuY3Rpb24oKXtyZXR1cm4hMH0sZXhwYW5kQWN0aW9uOiExfSksKDAsZy5aKShPZSwiVHJlZU5vZGUiLEQuWik7dmFyIE1lPU9lLGJlPU1lfSwxMDIyNTpmdW5jdGlvbihJZSxtZSxsKXtsLmQobWUse0JUOmZ1bmN0aW9uKCl7cmV0dXJuIGN9LEU2OmZ1bmN0aW9uKCl7cmV0dXJuIEl9LEwwOmZ1bmN0aW9uKCl7cmV0dXJuIGd9LE9NOmZ1bmN0aW9uKCl7cmV0dXJuIGFlfSxfNTpmdW5jdGlvbigpe3JldHVybiBSfSxyNzpmdW5jdGlvbigpe3JldHVybiBTfSx3QTpmdW5jdGlvbigpe3JldHVybiBBfSx5eDpmdW5jdGlvbigpe3JldHVybiByZX19KTt2YXIgRj1sKDc0OTAyKSxaPWwoNzEwMDIpLFE9bCg4MDMzNCkseGU9bCg2NzI5NCksRGU9bCg4NjEyOCksaz1sKDM1MzgxKSxvPWwoMTA4OSksbT1udWxsO2Z1bmN0aW9uIFIobix0KXtpZighbilyZXR1cm5bXTt2YXIgZj1uLnNsaWNlKCksRT1mLmluZGV4T2YodCk7cmV0dXJuIEU+PTAmJmYuc3BsaWNlKEUsMSksZn1mdW5jdGlvbiBnKG4sdCl7dmFyIGY9KG58fFtdKS5zbGljZSgpO3JldHVybiBmLmluZGV4T2YodCk9PT0tMSYmZi5wdXNoKHQpLGZ9ZnVuY3Rpb24gcmUobil7cmV0dXJuIG4uc3BsaXQoIi0iKX1mdW5jdGlvbiBBKG4sdCl7dmFyIGY9W10sRT0oMCxrLlopKHQsbik7ZnVuY3Rpb24gSygpe3ZhciBEPWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dm9pZCAwP2FyZ3VtZW50c1swXTpbXTtELmZvckVhY2goZnVuY3Rpb24oTSl7dmFyIGo9TS5rZXksTj1NLmNoaWxkcmVuO2YucHVzaChqKSxLKE4pfSl9cmV0dXJuIEsoRS5jaGlsZHJlbiksZn1mdW5jdGlvbiBfKG4pe2lmKG4ucGFyZW50KXt2YXIgdD1yZShuLnBvcyk7cmV0dXJuIE51bWJlcih0W3QubGVuZ3RoLTFdKT09PW4ucGFyZW50LmNoaWxkcmVuLmxlbmd0aC0xfXJldHVybiExfWZ1bmN0aW9uIFgobil7dmFyIHQ9cmUobi5wb3MpO3JldHVybiBOdW1iZXIodFt0Lmxlbmd0aC0xXSk9PT0wfWZ1bmN0aW9uIGFlKG4sdCxmLEUsSyxELE0saixOLGllKXt2YXIgdWUsZGU9bi5jbGllbnRYLG9lPW4uY2xpZW50WSxsZT1uLnRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxWPWxlLnRvcCxmZT1sZS5oZWlnaHQsc2U9KGllPT09InJ0bCI/LTE6MSkqKCgoSz09bnVsbD92b2lkIDA6Sy54KXx8MCktZGUpLGNlPShzZS0xMikvRSxoZT1OLmZpbHRlcihmdW5jdGlvbihiZSl7dmFyIHU7cmV0dXJuKHU9altiZV0pPT09bnVsbHx8dT09PXZvaWQgMHx8KHU9dS5jaGlsZHJlbik9PT1udWxsfHx1PT09dm9pZCAwP3ZvaWQgMDp1Lmxlbmd0aH0pLHE9KDAsay5aKShqLGYuZXZlbnRLZXkpO2lmKG9lPFYrZmUvMil7dmFyIFBlPU0uZmluZEluZGV4KGZ1bmN0aW9uKGJlKXtyZXR1cm4gYmUua2V5PT09cS5rZXl9KSx2ZT1QZTw9MD8wOlBlLTEsTGU9TVt2ZV0ua2V5O3E9KDAsay5aKShqLExlKX12YXIga2U9cS5rZXksX2U9cSxpPXEua2V5LEI9MCx3ZT0wO2lmKCFoZS5pbmNsdWRlcyhrZSkpZm9yKHZhciAkZT0wOyRlPGNlJiZfKHEpOyRlKz0xKXE9cS5wYXJlbnQsd2UrPTE7dmFyIFRlPXQuZGF0YSxPZT1xLm5vZGUsTWU9ITA7cmV0dXJuIFgocSkmJnEubGV2ZWw9PT0wJiZvZTxWK2ZlLzImJkQoe2RyYWdOb2RlOlRlLGRyb3BOb2RlOk9lLGRyb3BQb3NpdGlvbjotMX0pJiZxLmtleT09PWYuZXZlbnRLZXk/Qj0tMTooX2UuY2hpbGRyZW58fFtdKS5sZW5ndGgmJmhlLmluY2x1ZGVzKGkpP0Qoe2RyYWdOb2RlOlRlLGRyb3BOb2RlOk9lLGRyb3BQb3NpdGlvbjowfSk/Qj0wOk1lPSExOndlPT09MD9jZT4tMS41P0Qoe2RyYWdOb2RlOlRlLGRyb3BOb2RlOk9lLGRyb3BQb3NpdGlvbjoxfSk/Qj0xOk1lPSExOkQoe2RyYWdOb2RlOlRlLGRyb3BOb2RlOk9lLGRyb3BQb3NpdGlvbjowfSk/Qj0wOkQoe2RyYWdOb2RlOlRlLGRyb3BOb2RlOk9lLGRyb3BQb3NpdGlvbjoxfSk/Qj0xOk1lPSExOkQoe2RyYWdOb2RlOlRlLGRyb3BOb2RlOk9lLGRyb3BQb3NpdGlvbjoxfSk/Qj0xOk1lPSExLHtkcm9wUG9zaXRpb246Qixkcm9wTGV2ZWxPZmZzZXQ6d2UsZHJvcFRhcmdldEtleTpxLmtleSxkcm9wVGFyZ2V0UG9zOnEucG9zLGRyYWdPdmVyTm9kZUtleTppLGRyb3BDb250YWluZXJLZXk6Qj09PTA/bnVsbDooKHVlPXEucGFyZW50KT09PW51bGx8fHVlPT09dm9pZCAwP3ZvaWQgMDp1ZS5rZXkpfHxudWxsLGRyb3BBbGxvd2VkOk1lfX1mdW5jdGlvbiBjKG4sdCl7aWYobil7dmFyIGY9dC5tdWx0aXBsZTtyZXR1cm4gZj9uLnNsaWNlKCk6bi5sZW5ndGg/W25bMF1dOm59fXZhciBzPWZ1bmN0aW9uKHQpe3JldHVybiB0fTtmdW5jdGlvbiBoKG4sdCl7aWYoIW4pcmV0dXJuW107dmFyIGY9dHx8e30sRT1mLnByb2Nlc3NQcm9wcyxLPUU9PT12b2lkIDA/czpFLEQ9QXJyYXkuaXNBcnJheShuKT9uOltuXTtyZXR1cm4gRC5tYXAoZnVuY3Rpb24oTSl7dmFyIGo9TS5jaGlsZHJlbixOPV9vYmplY3RXaXRob3V0UHJvcGVydGllcyhNLG0pLGllPWgoaix0KTtyZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChUcmVlTm9kZSxfZXh0ZW5kcyh7a2V5Ok4ua2V5fSxLKE4pKSxpZSl9KX1mdW5jdGlvbiBJKG4pe2lmKCFuKXJldHVybiBudWxsO3ZhciB0O2lmKEFycmF5LmlzQXJyYXkobikpdD17Y2hlY2tlZEtleXM6bixoYWxmQ2hlY2tlZEtleXM6dm9pZCAwfTtlbHNlIGlmKCgwLFouWikobik9PT0ib2JqZWN0Iil0PXtjaGVja2VkS2V5czpuLmNoZWNrZWR8fHZvaWQgMCxoYWxmQ2hlY2tlZEtleXM6bi5oYWxmQ2hlY2tlZHx8dm9pZCAwfTtlbHNlIHJldHVybigwLFEuWlApKCExLCJgY2hlY2tlZEtleXNgIGlzIG5vdCBhbiBhcnJheSBvciBhbiBvYmplY3QiKSxudWxsO3JldHVybiB0fWZ1bmN0aW9uIFMobix0KXt2YXIgZj1uZXcgU2V0O2Z1bmN0aW9uIEUoSyl7aWYoIWYuaGFzKEspKXt2YXIgRD0oMCxrLlopKHQsSyk7aWYoRCl7Zi5hZGQoSyk7dmFyIE09RC5wYXJlbnQsaj1ELm5vZGU7ai5kaXNhYmxlZHx8TSYmRShNLmtleSl9fX1yZXR1cm4obnx8W10pLmZvckVhY2goZnVuY3Rpb24oSyl7RShLKX0pLCgwLEYuWikoZil9fSwxNzM0MTpmdW5jdGlvbihJZSxtZSxsKXtsLmQobWUse1M6ZnVuY3Rpb24oKXtyZXR1cm4gb319KTt2YXIgRj1sKDgwMzM0KSxaPWwoMzUzODEpO2Z1bmN0aW9uIFEobSxSKXt2YXIgZz1uZXcgU2V0O3JldHVybiBtLmZvckVhY2goZnVuY3Rpb24ocmUpe1IuaGFzKHJlKXx8Zy5hZGQocmUpfSksZ31mdW5jdGlvbiB4ZShtKXt2YXIgUj1tfHx7fSxnPVIuZGlzYWJsZWQscmU9Ui5kaXNhYmxlQ2hlY2tib3gsQT1SLmNoZWNrYWJsZTtyZXR1cm4hIShnfHxyZSl8fEE9PT0hMX1mdW5jdGlvbiBEZShtLFIsZyxyZSl7Zm9yKHZhciBBPW5ldyBTZXQobSksXz1uZXcgU2V0LFg9MDtYPD1nO1grPTEpe3ZhciBhZT1SLmdldChYKXx8bmV3IFNldDthZS5mb3JFYWNoKGZ1bmN0aW9uKEkpe3ZhciBTPUkua2V5LG49SS5ub2RlLHQ9SS5jaGlsZHJlbixmPXQ9PT12b2lkIDA/W106dDtBLmhhcyhTKSYmIXJlKG4pJiZmLmZpbHRlcihmdW5jdGlvbihFKXtyZXR1cm4hcmUoRS5ub2RlKX0pLmZvckVhY2goZnVuY3Rpb24oRSl7QS5hZGQoRS5rZXkpfSl9KX1mb3IodmFyIGM9bmV3IFNldCxzPWc7cz49MDtzLT0xKXt2YXIgaD1SLmdldChzKXx8bmV3IFNldDtoLmZvckVhY2goZnVuY3Rpb24oSSl7dmFyIFM9SS5wYXJlbnQsbj1JLm5vZGU7aWYoIShyZShuKXx8IUkucGFyZW50fHxjLmhhcyhJLnBhcmVudC5rZXkpKSl7aWYocmUoSS5wYXJlbnQubm9kZSkpe2MuYWRkKFMua2V5KTtyZXR1cm59dmFyIHQ9ITAsZj0hMTsoUy5jaGlsZHJlbnx8W10pLmZpbHRlcihmdW5jdGlvbihFKXtyZXR1cm4hcmUoRS5ub2RlKX0pLmZvckVhY2goZnVuY3Rpb24oRSl7dmFyIEs9RS5rZXksRD1BLmhhcyhLKTt0JiYhRCYmKHQ9ITEpLCFmJiYoRHx8Xy5oYXMoSykpJiYoZj0hMCl9KSx0JiZBLmFkZChTLmtleSksZiYmXy5hZGQoUy5rZXkpLGMuYWRkKFMua2V5KX19KX1yZXR1cm57Y2hlY2tlZEtleXM6QXJyYXkuZnJvbShBKSxoYWxmQ2hlY2tlZEtleXM6QXJyYXkuZnJvbShRKF8sQSkpfX1mdW5jdGlvbiBrKG0sUixnLHJlLEEpe2Zvcih2YXIgXz1uZXcgU2V0KG0pLFg9bmV3IFNldChSKSxhZT0wO2FlPD1yZTthZSs9MSl7dmFyIGM9Zy5nZXQoYWUpfHxuZXcgU2V0O2MuZm9yRWFjaChmdW5jdGlvbihTKXt2YXIgbj1TLmtleSx0PVMubm9kZSxmPVMuY2hpbGRyZW4sRT1mPT09dm9pZCAwP1tdOmY7IV8uaGFzKG4pJiYhWC5oYXMobikmJiFBKHQpJiZFLmZpbHRlcihmdW5jdGlvbihLKXtyZXR1cm4hQShLLm5vZGUpfSkuZm9yRWFjaChmdW5jdGlvbihLKXtfLmRlbGV0ZShLLmtleSl9KX0pfVg9bmV3IFNldDtmb3IodmFyIHM9bmV3IFNldCxoPXJlO2g+PTA7aC09MSl7dmFyIEk9Zy5nZXQoaCl8fG5ldyBTZXQ7SS5mb3JFYWNoKGZ1bmN0aW9uKFMpe3ZhciBuPVMucGFyZW50LHQ9Uy5ub2RlO2lmKCEoQSh0KXx8IVMucGFyZW50fHxzLmhhcyhTLnBhcmVudC5rZXkpKSl7aWYoQShTLnBhcmVudC5ub2RlKSl7cy5hZGQobi5rZXkpO3JldHVybn12YXIgZj0hMCxFPSExOyhuLmNoaWxkcmVufHxbXSkuZmlsdGVyKGZ1bmN0aW9uKEspe3JldHVybiFBKEsubm9kZSl9KS5mb3JFYWNoKGZ1bmN0aW9uKEspe3ZhciBEPUsua2V5LE09Xy5oYXMoRCk7ZiYmIU0mJihmPSExKSwhRSYmKE18fFguaGFzKEQpKSYmKEU9ITApfSksZnx8Xy5kZWxldGUobi5rZXkpLEUmJlguYWRkKG4ua2V5KSxzLmFkZChuLmtleSl9fSl9cmV0dXJue2NoZWNrZWRLZXlzOkFycmF5LmZyb20oXyksaGFsZkNoZWNrZWRLZXlzOkFycmF5LmZyb20oUShYLF8pKX19ZnVuY3Rpb24gbyhtLFIsZyxyZSl7dmFyIEE9W10sXztyZT9fPXJlOl89eGU7dmFyIFg9bmV3IFNldChtLmZpbHRlcihmdW5jdGlvbihoKXt2YXIgST0hISgwLFouWikoZyxoKTtyZXR1cm4gSXx8QS5wdXNoKGgpLEl9KSksYWU9bmV3IE1hcCxjPTA7T2JqZWN0LmtleXMoZykuZm9yRWFjaChmdW5jdGlvbihoKXt2YXIgST1nW2hdLFM9SS5sZXZlbCxuPWFlLmdldChTKTtufHwobj1uZXcgU2V0LGFlLnNldChTLG4pKSxuLmFkZChJKSxjPU1hdGgubWF4KGMsUyl9KSwoMCxGLlpQKSghQS5sZW5ndGgsIlRyZWUgbWlzc2luZyBmb2xsb3cga2V5czogIi5jb25jYXQoQS5zbGljZSgwLDEwMCkubWFwKGZ1bmN0aW9uKGgpe3JldHVybiInIi5jb25jYXQoaCwiJyIpfSkuam9pbigiLCAiKSkpO3ZhciBzO3JldHVybiBSPT09ITA/cz1EZShYLGFlLGMsXyk6cz1rKFgsUi5oYWxmQ2hlY2tlZEtleXMsYWUsYyxfKSxzfX0sMzUzODE6ZnVuY3Rpb24oSWUsbWUsbCl7bC5kKG1lLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIEZ9fSk7ZnVuY3Rpb24gRihaLFEpe3JldHVybiBaW1FdfX0sMTA4OTpmdW5jdGlvbihJZSxtZSxsKXtsLmQobWUse0Y6ZnVuY3Rpb24oKXtyZXR1cm4gU30sSDg6ZnVuY3Rpb24oKXtyZXR1cm4gSX0sSTg6ZnVuY3Rpb24oKXtyZXR1cm4gaH0sa206ZnVuY3Rpb24oKXtyZXR1cm4gQX0sb0g6ZnVuY3Rpb24oKXtyZXR1cm4gY30sdyQ6ZnVuY3Rpb24oKXtyZXR1cm4gX30sem46ZnVuY3Rpb24oKXtyZXR1cm4gYWV9fSk7dmFyIEY9bCg3MTAwMiksWj1sKDc0OTAyKSxRPWwoMTQxMykseGU9bCg5MSksRGU9bCg1MDM0NCksaz1sKDk4NDIzKSxvPWwoODAzMzQpLG09bCgzNTM4MSksUj1bImNoaWxkcmVuIl07ZnVuY3Rpb24gZyhuLHQpe3JldHVybiIiLmNvbmNhdChuLCItIikuY29uY2F0KHQpfWZ1bmN0aW9uIHJlKG4pe3JldHVybiBuJiZuLnR5cGUmJm4udHlwZS5pc1RyZWVOb2RlfWZ1bmN0aW9uIEEobix0KXtyZXR1cm4gbiE9bnVsbD9uOnR9ZnVuY3Rpb24gXyhuKXt2YXIgdD1ufHx7fSxmPXQudGl0bGUsRT10Ll90aXRsZSxLPXQua2V5LEQ9dC5jaGlsZHJlbixNPWZ8fCJ0aXRsZSI7cmV0dXJue3RpdGxlOk0sX3RpdGxlOkV8fFtNXSxrZXk6S3x8ImtleSIsY2hpbGRyZW46RHx8ImNoaWxkcmVuIn19ZnVuY3Rpb24gWChuLHQpe3ZhciBmPW5ldyBNYXA7ZnVuY3Rpb24gRShLKXt2YXIgRD1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06IiI7KEt8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKE0pe3ZhciBqPU1bdC5rZXldLE49TVt0LmNoaWxkcmVuXTt3YXJuaW5nKGohPW51bGwsIlRyZWUgbm9kZSBtdXN0IGhhdmUgYSBjZXJ0YWluIGtleTogWyIuY29uY2F0KEQpLmNvbmNhdChqLCJdIikpO3ZhciBpZT1TdHJpbmcoaik7d2FybmluZyghZi5oYXMoaWUpfHxqPT09bnVsbHx8aj09PXZvaWQgMCwiU2FtZSAna2V5JyBleGlzdCBpbiB0aGUgVHJlZTogIi5jb25jYXQoaWUpKSxmLnNldChpZSwhMCksRShOLCIiLmNvbmNhdChEKS5jb25jYXQoaWUsIiA+ICIpKX0pfUUobil9ZnVuY3Rpb24gYWUobil7ZnVuY3Rpb24gdChmKXt2YXIgRT0oMCxEZS5aKShmKTtyZXR1cm4gRS5tYXAoZnVuY3Rpb24oSyl7aWYoIXJlKEspKXJldHVybigwLG8uWlApKCFLLCJUcmVlL1RyZWVOb2RlIGNhbiBvbmx5IGFjY2VwdCBUcmVlTm9kZSBhcyBjaGlsZHJlbi4iKSxudWxsO3ZhciBEPUsua2V5LE09Sy5wcm9wcyxqPU0uY2hpbGRyZW4sTj0oMCx4ZS5aKShNLFIpLGllPSgwLFEuWikoe2tleTpEfSxOKSx1ZT10KGopO3JldHVybiB1ZS5sZW5ndGgmJihpZS5jaGlsZHJlbj11ZSksaWV9KS5maWx0ZXIoZnVuY3Rpb24oSyl7cmV0dXJuIEt9KX1yZXR1cm4gdChuKX1mdW5jdGlvbiBjKG4sdCxmKXt2YXIgRT1fKGYpLEs9RS5fdGl0bGUsRD1FLmtleSxNPUUuY2hpbGRyZW4saj1uZXcgU2V0KHQ9PT0hMD9bXTp0KSxOPVtdO2Z1bmN0aW9uIGllKHVlKXt2YXIgZGU9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOm51bGw7cmV0dXJuIHVlLm1hcChmdW5jdGlvbihvZSxsZSl7Zm9yKHZhciBWPWcoZGU/ZGUucG9zOiIwIixsZSksZmU9QShvZVtEXSxWKSxzZSxjZT0wO2NlPEsubGVuZ3RoO2NlKz0xKXt2YXIgaGU9S1tjZV07aWYob2VbaGVdIT09dm9pZCAwKXtzZT1vZVtoZV07YnJlYWt9fXZhciBxPU9iamVjdC5hc3NpZ24oKDAsay5aKShvZSxbXS5jb25jYXQoKDAsWi5aKShLKSxbRCxNXSkpLHt0aXRsZTpzZSxrZXk6ZmUscGFyZW50OmRlLHBvczpWLGNoaWxkcmVuOm51bGwsZGF0YTpvZSxpc1N0YXJ0OltdLmNvbmNhdCgoMCxaLlopKGRlP2RlLmlzU3RhcnQ6W10pLFtsZT09PTBdKSxpc0VuZDpbXS5jb25jYXQoKDAsWi5aKShkZT9kZS5pc0VuZDpbXSksW2xlPT09dWUubGVuZ3RoLTFdKX0pO3JldHVybiBOLnB1c2gocSksdD09PSEwfHxqLmhhcyhmZSk/cS5jaGlsZHJlbj1pZShvZVtNXXx8W10scSk6cS5jaGlsZHJlbj1bXSxxfSl9cmV0dXJuIGllKG4pLE59ZnVuY3Rpb24gcyhuLHQsZil7dmFyIEU9e307KDAsRi5aKShmKT09PSJvYmplY3QiP0U9ZjpFPXtleHRlcm5hbEdldEtleTpmfSxFPUV8fHt9O3ZhciBLPUUsRD1LLmNoaWxkcmVuUHJvcE5hbWUsTT1LLmV4dGVybmFsR2V0S2V5LGo9Sy5maWVsZE5hbWVzLE49XyhqKSxpZT1OLmtleSx1ZT1OLmNoaWxkcmVuLGRlPUR8fHVlLG9lO00/dHlwZW9mIE09PSJzdHJpbmciP29lPWZ1bmN0aW9uKGZlKXtyZXR1cm4gZmVbTV19OnR5cGVvZiBNPT0iZnVuY3Rpb24iJiYob2U9ZnVuY3Rpb24oZmUpe3JldHVybiBNKGZlKX0pOm9lPWZ1bmN0aW9uKGZlLHNlKXtyZXR1cm4gQShmZVtpZV0sc2UpfTtmdW5jdGlvbiBsZShWLGZlLHNlLGNlKXt2YXIgaGU9Vj9WW2RlXTpuLHE9Vj9nKHNlLnBvcyxmZSk6IjAiLFBlPVY/W10uY29uY2F0KCgwLFouWikoY2UpLFtWXSk6W107aWYoVil7dmFyIHZlPW9lKFYscSksTGU9e25vZGU6VixpbmRleDpmZSxwb3M6cSxrZXk6dmUscGFyZW50UG9zOnNlLm5vZGU/c2UucG9zOm51bGwsbGV2ZWw6c2UubGV2ZWwrMSxub2RlczpQZX07dChMZSl9aGUmJmhlLmZvckVhY2goZnVuY3Rpb24oa2UsX2Upe2xlKGtlLF9lLHtub2RlOlYscG9zOnEsbGV2ZWw6c2U/c2UubGV2ZWwrMTotMX0sUGUpfSl9bGUobnVsbCl9ZnVuY3Rpb24gaChuKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06e30sZj10LmluaXRXcmFwcGVyLEU9dC5wcm9jZXNzRW50aXR5LEs9dC5vblByb2Nlc3NGaW5pc2hlZCxEPXQuZXh0ZXJuYWxHZXRLZXksTT10LmNoaWxkcmVuUHJvcE5hbWUsaj10LmZpZWxkTmFtZXMsTj1hcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMCxpZT1EfHxOLHVlPXt9LGRlPXt9LG9lPXtwb3NFbnRpdGllczp1ZSxrZXlFbnRpdGllczpkZX07cmV0dXJuIGYmJihvZT1mKG9lKXx8b2UpLHMobixmdW5jdGlvbihsZSl7dmFyIFY9bGUubm9kZSxmZT1sZS5pbmRleCxzZT1sZS5wb3MsY2U9bGUua2V5LGhlPWxlLnBhcmVudFBvcyxxPWxlLmxldmVsLFBlPWxlLm5vZGVzLHZlPXtub2RlOlYsbm9kZXM6UGUsaW5kZXg6ZmUsa2V5OmNlLHBvczpzZSxsZXZlbDpxfSxMZT1BKGNlLHNlKTt1ZVtzZV09dmUsZGVbTGVdPXZlLHZlLnBhcmVudD11ZVtoZV0sdmUucGFyZW50JiYodmUucGFyZW50LmNoaWxkcmVuPXZlLnBhcmVudC5jaGlsZHJlbnx8W10sdmUucGFyZW50LmNoaWxkcmVuLnB1c2godmUpKSxFJiZFKHZlLG9lKX0se2V4dGVybmFsR2V0S2V5OmllLGNoaWxkcmVuUHJvcE5hbWU6TSxmaWVsZE5hbWVzOmp9KSxLJiZLKG9lKSxvZX1mdW5jdGlvbiBJKG4sdCl7dmFyIGY9dC5leHBhbmRlZEtleXMsRT10LnNlbGVjdGVkS2V5cyxLPXQubG9hZGVkS2V5cyxEPXQubG9hZGluZ0tleXMsTT10LmNoZWNrZWRLZXlzLGo9dC5oYWxmQ2hlY2tlZEtleXMsTj10LmRyYWdPdmVyTm9kZUtleSxpZT10LmRyb3BQb3NpdGlvbix1ZT10LmtleUVudGl0aWVzLGRlPSgwLG0uWikodWUsbiksb2U9e2V2ZW50S2V5Om4sZXhwYW5kZWQ6Zi5pbmRleE9mKG4pIT09LTEsc2VsZWN0ZWQ6RS5pbmRleE9mKG4pIT09LTEsbG9hZGVkOksuaW5kZXhPZihuKSE9PS0xLGxvYWRpbmc6RC5pbmRleE9mKG4pIT09LTEsY2hlY2tlZDpNLmluZGV4T2YobikhPT0tMSxoYWxmQ2hlY2tlZDpqLmluZGV4T2YobikhPT0tMSxwb3M6U3RyaW5nKGRlP2RlLnBvczoiIiksZHJhZ092ZXI6Tj09PW4mJmllPT09MCxkcmFnT3ZlckdhcFRvcDpOPT09biYmaWU9PT0tMSxkcmFnT3ZlckdhcEJvdHRvbTpOPT09biYmaWU9PT0xfTtyZXR1cm4gb2V9ZnVuY3Rpb24gUyhuKXt2YXIgdD1uLmRhdGEsZj1uLmV4cGFuZGVkLEU9bi5zZWxlY3RlZCxLPW4uY2hlY2tlZCxEPW4ubG9hZGVkLE09bi5sb2FkaW5nLGo9bi5oYWxmQ2hlY2tlZCxOPW4uZHJhZ092ZXIsaWU9bi5kcmFnT3ZlckdhcFRvcCx1ZT1uLmRyYWdPdmVyR2FwQm90dG9tLGRlPW4ucG9zLG9lPW4uYWN0aXZlLGxlPW4uZXZlbnRLZXksVj0oMCxRLlopKCgwLFEuWikoe30sdCkse30se2V4cGFuZGVkOmYsc2VsZWN0ZWQ6RSxjaGVja2VkOkssbG9hZGVkOkQsbG9hZGluZzpNLGhhbGZDaGVja2VkOmosZHJhZ092ZXI6TixkcmFnT3ZlckdhcFRvcDppZSxkcmFnT3ZlckdhcEJvdHRvbTp1ZSxwb3M6ZGUsYWN0aXZlOm9lLGtleTpsZX0pO3JldHVybiJwcm9wcyJpbiBWfHxPYmplY3QuZGVmaW5lUHJvcGVydHkoViwicHJvcHMiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4oMCxvLlpQKSghMSwiU2Vjb25kIHBhcmFtIHJldHVybiBmcm9tIGV2ZW50IGlzIG5vZGUgZGF0YSBpbnN0ZWFkIG9mIFRyZWVOb2RlIGluc3RhbmNlLiBQbGVhc2UgcmVhZCB2YWx1ZSBkaXJlY3RseSBpbnN0ZWFkIG9mIHJlYWRpbmcgZnJvbSBgcHJvcHNgLiIpLG59fSksVn19fV0pOwpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy8yMzg1LjliNTQ2M2IzLmFzeW5jLmpzIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy8yMzg1LjliNTQ2M2IzLmFzeW5jLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNmYzg0ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzIzODUuOWI1NDYzYjMuYXN5bmMuanMKQEAgLTAsMCArMSBAQAorInVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvPXNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm98fFtdKS5wdXNoKFtbMjM4NV0sezkyMzg1OmZ1bmN0aW9uKEEpe0EuZXhwb3J0cz0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCQUFBQUFRQVFNQUFBQWxQVzBpQUFBQUEzTkNTVlFJQ0FqYjRVL2dBQUFBQmxCTVZFWE16TXovLy8vVGpSVjJBQUFBQ1hCSVdYTUFBQXJyQUFBSzZ3R0NpdzFhQUFBQUhIUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkdhWEpsZDI5eWEzTWdRMU0yNkx5eWpBQUFBQkZKUkVGVUNKbGorTS9BZ0JWaEYvMFBBSDYvRC9Ia0R4T0dBQUFBQUVsRlRrU3VRbUNDIn19XSk7CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzIzOTguMWJiNThlMzQuYXN5bmMuanMgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzIzOTguMWJiNThlMzQuYXN5bmMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjdhNzVkOAotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvMjM5OC4xYmI1OGUzNC5hc3luYy5qcwpAQCAtMCwwICsxLDMgQEAKKyJ1c2Ugc3RyaWN0Ijsoc2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Bybz1zZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvfHxbXSkucHVzaChbWzIzOThdLHs5MjM5ODpmdW5jdGlvbihsbixMdCxwKXtwLmQoTHQse1o6ZnVuY3Rpb24oKXtyZXR1cm4gV2F9fSk7dmFyIGE9cCg2NzI5NCksWnQ9cCg5NzkzNyksTXQ9cCg4OTcwNSksTnQ9cCgyNDk2OSksenQ9cCg5Mzk2NyksWT1wLm4oenQpLHNlPXAoODc0NjIpLFY9cCg0OTQyKSxxPXAoMTQxMyksTD1wKDk3Njg1KSxEZT1wKDcxMDAyKSx3ZT1wKDkxKSxVZT1wKDIxNzcwKSxfdD1wKDMxMTMxKSxJZT0oMCxhLmNyZWF0ZUNvbnRleHQpKG51bGwpLEZlPXAoNzQ5MDIpLEJlPXAoNDg1NTUpLER0PXAoNjY2ODApLEJ0PXAoNDI1NTApLFllPXAoNzUxNjQpLE90PWZ1bmN0aW9uKHQpe3ZhciBuPXQuYWN0aXZlVGFiT2Zmc2V0LHI9dC5ob3Jpem9udGFsLGk9dC5ydGwsbD10LmluZGljYXRvcixjPWw9PT12b2lkIDA/e306bCxvPWMuc2l6ZSxkPWMuYWxpZ24scz1kPT09dm9pZCAwPyJjZW50ZXIiOmQsbT0oMCxhLnVzZVN0YXRlKSgpLGI9KDAsTC5aKShtLDIpLEM9YlswXSxaPWJbMV0sQj0oMCxhLnVzZVJlZikoKSxQPWEudXNlQ2FsbGJhY2soZnVuY3Rpb24oJCl7cmV0dXJuIHR5cGVvZiBvPT0iZnVuY3Rpb24iP28oJCk6dHlwZW9mIG89PSJudW1iZXIiP286JH0sW29dKTtmdW5jdGlvbiBfKCl7WWUuWi5jYW5jZWwoQi5jdXJyZW50KX1yZXR1cm4oMCxhLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXt2YXIgJD17fTtpZihuKWlmKHIpeyQud2lkdGg9UChuLndpZHRoKTt2YXIgZz1pPyJyaWdodCI6ImxlZnQiO3M9PT0ic3RhcnQiJiYoJFtnXT1uW2ddKSxzPT09ImNlbnRlciImJigkW2ddPW5bZ10rbi53aWR0aC8yLCQudHJhbnNmb3JtPWk/InRyYW5zbGF0ZVgoNTAlKSI6InRyYW5zbGF0ZVgoLTUwJSkiKSxzPT09ImVuZCImJigkW2ddPW5bZ10rbi53aWR0aCwkLnRyYW5zZm9ybT0idHJhbnNsYXRlWCgtMTAwJSkiKX1lbHNlICQuaGVpZ2h0PVAobi5oZWlnaHQpLHM9PT0ic3RhcnQiJiYoJC50b3A9bi50b3ApLHM9PT0iY2VudGVyIiYmKCQudG9wPW4udG9wK24uaGVpZ2h0LzIsJC50cmFuc2Zvcm09InRyYW5zbGF0ZVkoLTUwJSkiKSxzPT09ImVuZCImJigkLnRvcD1uLnRvcCtuLmhlaWdodCwkLnRyYW5zZm9ybT0idHJhbnNsYXRlWSgtMTAwJSkiKTtyZXR1cm4gXygpLEIuY3VycmVudD0oMCxZZS5aKShmdW5jdGlvbigpe1ooJCl9KSxffSxbbixyLGkscyxQXSkse3N0eWxlOkN9fSxBdD1PdCxRZT17d2lkdGg6MCxoZWlnaHQ6MCxsZWZ0OjAsdG9wOjB9O2Z1bmN0aW9uIFd0KGUsdCxuKXtyZXR1cm4oMCxhLnVzZU1lbW8pKGZ1bmN0aW9uKCl7Zm9yKHZhciByLGk9bmV3IE1hcCxsPXQuZ2V0KChyPWVbMF0pPT09bnVsbHx8cj09PXZvaWQgMD92b2lkIDA6ci5rZXkpfHxRZSxjPWwubGVmdCtsLndpZHRoLG89MDtvPGUubGVuZ3RoO28rPTEpe3ZhciBkPWVbb10ua2V5LHM9dC5nZXQoZCk7aWYoIXMpe3ZhciBtO3M9dC5nZXQoKG09ZVtvLTFdKT09PW51bGx8fG09PT12b2lkIDA/dm9pZCAwOm0ua2V5KXx8UWV9dmFyIGI9aS5nZXQoZCl8fCgwLHEuWikoe30scyk7Yi5yaWdodD1jLWIubGVmdC1iLndpZHRoLGkuc2V0KGQsYil9cmV0dXJuIGl9LFtlLm1hcChmdW5jdGlvbihyKXtyZXR1cm4gci5rZXl9KS5qb2luKCJfIiksdCxuXSl9ZnVuY3Rpb24gSmUoZSx0KXt2YXIgbj1hLnVzZVJlZihlKSxyPWEudXNlU3RhdGUoe30pLGk9KDAsTC5aKShyLDIpLGw9aVsxXTtmdW5jdGlvbiBjKG8pe3ZhciBkPXR5cGVvZiBvPT0iZnVuY3Rpb24iP28obi5jdXJyZW50KTpvO2QhPT1uLmN1cnJlbnQmJnQoZCxuLmN1cnJlbnQpLG4uY3VycmVudD1kLGwoe30pfXJldHVybltuLmN1cnJlbnQsY119dmFyIGp0PS4xLHFlPS4wMSxMZT0yMCxldD1NYXRoLnBvdyguOTk1LExlKTtmdW5jdGlvbiBHdChlLHQpe3ZhciBuPSgwLGEudXNlU3RhdGUpKCkscj0oMCxMLlopKG4sMiksaT1yWzBdLGw9clsxXSxjPSgwLGEudXNlU3RhdGUpKDApLG89KDAsTC5aKShjLDIpLGQ9b1swXSxzPW9bMV0sbT0oMCxhLnVzZVN0YXRlKSgwKSxiPSgwLEwuWikobSwyKSxDPWJbMF0sWj1iWzFdLEI9KDAsYS51c2VTdGF0ZSkoKSxQPSgwLEwuWikoQiwyKSxfPVBbMF0sJD1QWzFdLGc9KDAsYS51c2VSZWYpKCk7ZnVuY3Rpb24gSShUKXt2YXIgUj1ULnRvdWNoZXNbMF0sZj1SLnNjcmVlblgseD1SLnNjcmVlblk7bCh7eDpmLHk6eH0pLHdpbmRvdy5jbGVhckludGVydmFsKGcuY3VycmVudCl9ZnVuY3Rpb24gTyhUKXtpZihpKXt2YXIgUj1ULnRvdWNoZXNbMF0sZj1SLnNjcmVlblgseD1SLnNjcmVlblk7bCh7eDpmLHk6eH0pO3ZhciBoPWYtaS54LHk9eC1pLnk7dChoLHkpO3ZhciBLPURhdGUubm93KCk7cyhLKSxaKEstZCksJCh7eDpoLHl9KX19ZnVuY3Rpb24gVygpe2lmKGkmJihsKG51bGwpLCQobnVsbCksXykpe3ZhciBUPV8ueC9DLFI9Xy55L0MsZj1NYXRoLmFicyhUKSx4PU1hdGguYWJzKFIpO2lmKE1hdGgubWF4KGYseCk8anQpcmV0dXJuO3ZhciBoPVQseT1SO2cuY3VycmVudD13aW5kb3cuc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXtpZihNYXRoLmFicyhoKTxxZSYmTWF0aC5hYnMoeSk8cWUpe3dpbmRvdy5jbGVhckludGVydmFsKGcuY3VycmVudCk7cmV0dXJufWgqPWV0LHkqPWV0LHQoaCpMZSx5KkxlKX0sTGUpfX12YXIgaj0oMCxhLnVzZVJlZikoKTtmdW5jdGlvbiBHKFQpe3ZhciBSPVQuZGVsdGFYLGY9VC5kZWx0YVkseD0wLGg9TWF0aC5hYnMoUikseT1NYXRoLmFicyhmKTtoPT09eT94PWouY3VycmVudD09PSJ4Ij9SOmY6aD55Pyh4PVIsai5jdXJyZW50PSJ4Iik6KHg9ZixqLmN1cnJlbnQ9InkiKSx0KC14LC14KSYmVC5wcmV2ZW50RGVmYXVsdCgpfXZhciB6PSgwLGEudXNlUmVmKShudWxsKTt6LmN1cnJlbnQ9e29uVG91Y2hTdGFydDpJLG9uVG91Y2hNb3ZlOk8sb25Ub3VjaEVuZDpXLG9uV2hlZWw6R30sYS51c2VFZmZlY3QoZnVuY3Rpb24oKXtmdW5jdGlvbiBUKGgpe3ouY3VycmVudC5vblRvdWNoU3RhcnQoaCl9ZnVuY3Rpb24gUihoKXt6LmN1cnJlbnQub25Ub3VjaE1vdmUoaCl9ZnVuY3Rpb24gZihoKXt6LmN1cnJlbnQub25Ub3VjaEVuZChoKX1mdW5jdGlvbiB4KGgpe3ouY3VycmVudC5vbldoZWVsKGgpfXJldHVybiBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLFIse3Bhc3NpdmU6ITF9KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsZix7cGFzc2l2ZTohMH0pLGUuY3VycmVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixULHtwYXNzaXZlOiEwfSksZS5jdXJyZW50LmFkZEV2ZW50TGlzdGVuZXIoIndoZWVsIix4LHtwYXNzaXZlOiExfSksZnVuY3Rpb24oKXtkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLFIpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIixmKX19LFtdKX12YXIga3Q9cCg4NDEwKTtmdW5jdGlvbiB0dChlKXt2YXIgdD0oMCxhLnVzZVN0YXRlKSgwKSxuPSgwLEwuWikodCwyKSxyPW5bMF0saT1uWzFdLGw9KDAsYS51c2VSZWYpKDApLGM9KDAsYS51c2VSZWYpKCk7cmV0dXJuIGMuY3VycmVudD1lLCgwLGt0Lm8pKGZ1bmN0aW9uKCl7dmFyIG87KG89Yy5jdXJyZW50KT09PW51bGx8fG89PT12b2lkIDB8fG8uY2FsbChjKX0sW3JdKSxmdW5jdGlvbigpe2wuY3VycmVudD09PXImJihsLmN1cnJlbnQrPTEsaShsLmN1cnJlbnQpKX19ZnVuY3Rpb24gSHQoZSl7dmFyIHQ9KDAsYS51c2VSZWYpKFtdKSxuPSgwLGEudXNlU3RhdGUpKHt9KSxyPSgwLEwuWikobiwyKSxpPXJbMV0sbD0oMCxhLnVzZVJlZikodHlwZW9mIGU9PSJmdW5jdGlvbiI/ZSgpOmUpLGM9dHQoZnVuY3Rpb24oKXt2YXIgZD1sLmN1cnJlbnQ7dC5jdXJyZW50LmZvckVhY2goZnVuY3Rpb24ocyl7ZD1zKGQpfSksdC5jdXJyZW50PVtdLGwuY3VycmVudD1kLGkoe30pfSk7ZnVuY3Rpb24gbyhkKXt0LmN1cnJlbnQucHVzaChkKSxjKCl9cmV0dXJuW2wuY3VycmVudCxvXX12YXIgYXQ9e3dpZHRoOjAsaGVpZ2h0OjAsbGVmdDowLHRvcDowLHJpZ2h0OjB9O2Z1bmN0aW9uIEt0KGUsdCxuLHIsaSxsLGMpe3ZhciBvPWMudGFicyxkPWMudGFiUG9zaXRpb24scz1jLnJ0bCxtLGIsQztyZXR1cm5bInRvcCIsImJvdHRvbSJdLmluY2x1ZGVzKGQpPyhtPSJ3aWR0aCIsYj1zPyJyaWdodCI6ImxlZnQiLEM9TWF0aC5hYnMobikpOihtPSJoZWlnaHQiLGI9InRvcCIsQz0tbiksKDAsYS51c2VNZW1vKShmdW5jdGlvbigpe2lmKCFvLmxlbmd0aClyZXR1cm5bMCwwXTtmb3IodmFyIFo9by5sZW5ndGgsQj1aLFA9MDtQPFo7UCs9MSl7dmFyIF89ZS5nZXQob1tQXS5rZXkpfHxhdDtpZihNYXRoLmZsb29yKF9bYl0rX1ttXSk+TWF0aC5mbG9vcihDK3QpKXtCPVAtMTticmVha319Zm9yKHZhciAkPTAsZz1aLTE7Zz49MDtnLT0xKXt2YXIgST1lLmdldChvW2ddLmtleSl8fGF0O2lmKElbYl08Qyl7JD1nKzE7YnJlYWt9fXJldHVybiAkPj1CP1swLDBdOlskLEJdfSxbZSx0LHIsaSxsLEMsZCxvLm1hcChmdW5jdGlvbihaKXtyZXR1cm4gWi5rZXl9KS5qb2luKCJfIiksc10pfWZ1bmN0aW9uIG50KGUpe3ZhciB0O3JldHVybiBlIGluc3RhbmNlb2YgTWFwPyh0PXt9LGUuZm9yRWFjaChmdW5jdGlvbihuLHIpe3Rbcl09bn0pKTp0PWUsSlNPTi5zdHJpbmdpZnkodCl9dmFyIFh0PSJUQUJTX0RRIjtmdW5jdGlvbiBydChlKXtyZXR1cm4gU3RyaW5nKGUpLnJlcGxhY2UoLyIvZyxYdCl9ZnVuY3Rpb24gT2UoZSx0LG4scil7cmV0dXJuISghbnx8cnx8ZT09PSExfHxlPT09dm9pZCAwJiYodD09PSExfHx0PT09bnVsbCkpfXZhciBWdD1hLmZvcndhcmRSZWYoZnVuY3Rpb24oZSx0KXt2YXIgbj1lLnByZWZpeENscyxyPWUuZWRpdGFibGUsaT1lLmxvY2FsZSxsPWUuc3R5bGU7cmV0dXJuIXJ8fHIuc2hvd0FkZD09PSExP251bGw6YS5jcmVhdGVFbGVtZW50KCJidXR0b24iLHtyZWY6dCx0eXBlOiJidXR0b24iLGNsYXNzTmFtZToiIi5jb25jYXQobiwiLW5hdi1hZGQiKSxzdHlsZTpsLCJhcmlhLWxhYmVsIjooaT09bnVsbD92b2lkIDA6aS5hZGRBcmlhTGFiZWwpfHwiQWRkIHRhYiIsb25DbGljazpmdW5jdGlvbihvKXtyLm9uRWRpdCgiYWRkIix7ZXZlbnQ6b30pfX0sci5hZGRJY29ufHwiKyIpfSksaXQ9VnQsVXQ9YS5mb3J3YXJkUmVmKGZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5wb3NpdGlvbixyPWUucHJlZml4Q2xzLGk9ZS5leHRyYTtpZighaSlyZXR1cm4gbnVsbDt2YXIgbCxjPXt9O3JldHVybigwLERlLlopKGkpPT09Im9iamVjdCImJiFhLmlzVmFsaWRFbGVtZW50KGkpP2M9aTpjLnJpZ2h0PWksbj09PSJyaWdodCImJihsPWMucmlnaHQpLG49PT0ibGVmdCImJihsPWMubGVmdCksbD9hLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiIi5jb25jYXQociwiLWV4dHJhLWNvbnRlbnQiKSxyZWY6dH0sbCk6bnVsbH0pLG90PVV0LEZ0PXAoMjkxNzEpLGx0PXAoNzI1MTIpLGRlPXAoMTUxMDUpLFl0PWEuZm9yd2FyZFJlZihmdW5jdGlvbihlLHQpe3ZhciBuPWUucHJlZml4Q2xzLHI9ZS5pZCxpPWUudGFicyxsPWUubG9jYWxlLGM9ZS5tb2JpbGUsbz1lLm1vcmUsZD1vPT09dm9pZCAwP3t9Om8scz1lLnN0eWxlLG09ZS5jbGFzc05hbWUsYj1lLmVkaXRhYmxlLEM9ZS50YWJCYXJHdXR0ZXIsWj1lLnJ0bCxCPWUucmVtb3ZlQXJpYUxhYmVsLFA9ZS5vblRhYkNsaWNrLF89ZS5nZXRQb3B1cENvbnRhaW5lciwkPWUucG9wdXBDbGFzc05hbWUsZz0oMCxhLnVzZVN0YXRlKSghMSksST0oMCxMLlopKGcsMiksTz1JWzBdLFc9SVsxXSxqPSgwLGEudXNlU3RhdGUpKG51bGwpLEc9KDAsTC5aKShqLDIpLHo9R1swXSxUPUdbMV0sUj1kLmljb24sZj1SPT09dm9pZCAwPyJNb3JlIjpSLHg9IiIuY29uY2F0KHIsIi1tb3JlLXBvcHVwIiksaD0iIi5jb25jYXQobiwiLWRyb3Bkb3duIikseT16IT09bnVsbD8iIi5jb25jYXQoeCwiLSIpLmNvbmNhdCh6KTpudWxsLEs9bD09bnVsbD92b2lkIDA6bC5kcm9wZG93bkFyaWFMYWJlbDtmdW5jdGlvbiBYKEUsQSl7RS5wcmV2ZW50RGVmYXVsdCgpLEUuc3RvcFByb3BhZ2F0aW9uKCksYi5vbkVkaXQoInJlbW92ZSIse2tleTpBLGV2ZW50OkV9KX12YXIgdj1hLmNyZWF0ZUVsZW1lbnQobHQuWlAse29uQ2xpY2s6ZnVuY3Rpb24oQSl7dmFyIEg9QS5rZXksRj1BLmRvbUV2ZW50O1AoSCxGKSxXKCExKX0scHJlZml4Q2xzOiIiLmNvbmNhdChoLCItbWVudSIpLGlkOngsdGFiSW5kZXg6LTEscm9sZToibGlzdGJveCIsImFyaWEtYWN0aXZlZGVzY2VuZGFudCI6eSxzZWxlY3RlZEtleXM6W3pdLCJhcmlhLWxhYmVsIjpLIT09dm9pZCAwP0s6ImV4cGFuZGVkIGRyb3Bkb3duIn0saS5tYXAoZnVuY3Rpb24oRSl7dmFyIEE9RS5jbG9zYWJsZSxIPUUuZGlzYWJsZWQsRj1FLmNsb3NlSWNvbixKPUUua2V5LG5lPUUubGFiZWwsZWU9T2UoQSxGLGIsSCk7cmV0dXJuIGEuY3JlYXRlRWxlbWVudChsdC5zTix7a2V5OkosaWQ6IiIuY29uY2F0KHgsIi0iKS5jb25jYXQoSikscm9sZToib3B0aW9uIiwiYXJpYS1jb250cm9scyI6ciYmIiIuY29uY2F0KHIsIi1wYW5lbC0iKS5jb25jYXQoSiksZGlzYWJsZWQ6SH0sYS5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLG5lKSxlZSYmYS5jcmVhdGVFbGVtZW50KCJidXR0b24iLHt0eXBlOiJidXR0b24iLCJhcmlhLWxhYmVsIjpCfHwicmVtb3ZlIix0YWJJbmRleDowLGNsYXNzTmFtZToiIi5jb25jYXQoaCwiLW1lbnUtaXRlbS1yZW1vdmUiKSxvbkNsaWNrOmZ1bmN0aW9uKHZlKXt2ZS5zdG9wUHJvcGFnYXRpb24oKSxYKHZlLEopfX0sRnx8Yi5yZW1vdmVJY29ufHwiXHhENyIpKX0pKTtmdW5jdGlvbiBVKEUpe2Zvcih2YXIgQT1pLmZpbHRlcihmdW5jdGlvbihlZSl7cmV0dXJuIWVlLmRpc2FibGVkfSksSD1BLmZpbmRJbmRleChmdW5jdGlvbihlZSl7cmV0dXJuIGVlLmtleT09PXp9KXx8MCxGPUEubGVuZ3RoLEo9MDtKPEY7Sis9MSl7SD0oSCtFK0YpJUY7dmFyIG5lPUFbSF07aWYoIW5lLmRpc2FibGVkKXtUKG5lLmtleSk7cmV0dXJufX19ZnVuY3Rpb24gb2UoRSl7dmFyIEE9RS53aGljaDtpZighTyl7W2RlLlouRE9XTixkZS5aLlNQQUNFLGRlLlouRU5URVJdLmluY2x1ZGVzKEEpJiYoVyghMCksRS5wcmV2ZW50RGVmYXVsdCgpKTtyZXR1cm59c3dpdGNoKEEpe2Nhc2UgZGUuWi5VUDpVKC0xKSxFLnByZXZlbnREZWZhdWx0KCk7YnJlYWs7Y2FzZSBkZS5aLkRPV046VSgxKSxFLnByZXZlbnREZWZhdWx0KCk7YnJlYWs7Y2FzZSBkZS5aLkVTQzpXKCExKTticmVhaztjYXNlIGRlLlouU1BBQ0U6Y2FzZSBkZS5aLkVOVEVSOnohPT1udWxsJiZQKHosRSk7YnJlYWt9fSgwLGEudXNlRWZmZWN0KShmdW5jdGlvbigpe3ZhciBFPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHkpO0UmJkUuc2Nyb2xsSW50b1ZpZXcmJkUuc2Nyb2xsSW50b1ZpZXcoITEpfSxbel0pLCgwLGEudXNlRWZmZWN0KShmdW5jdGlvbigpe098fFQobnVsbCl9LFtPXSk7dmFyIGs9KDAsVi5aKSh7fSxaPyJtYXJnaW5SaWdodCI6Im1hcmdpbkxlZnQiLEMpO2kubGVuZ3RofHwoay52aXNpYmlsaXR5PSJoaWRkZW4iLGsub3JkZXI9MSk7dmFyIFE9WSgpKCgwLFYuWikoe30sIiIuY29uY2F0KGgsIi1ydGwiKSxaKSksZmU9Yz9udWxsOmEuY3JlYXRlRWxlbWVudChGdC5aLCgwLHNlLlopKHtwcmVmaXhDbHM6aCxvdmVybGF5OnYsdmlzaWJsZTppLmxlbmd0aD9POiExLG9uVmlzaWJsZUNoYW5nZTpXLG92ZXJsYXlDbGFzc05hbWU6WSgpKFEsJCksbW91c2VFbnRlckRlbGF5Oi4xLG1vdXNlTGVhdmVEZWxheTouMSxnZXRQb3B1cENvbnRhaW5lcjpffSxkKSxhLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOiIiLmNvbmNhdChuLCItbmF2LW1vcmUiKSxzdHlsZTprLCJhcmlhLWhhc3BvcHVwIjoibGlzdGJveCIsImFyaWEtY29udHJvbHMiOngsaWQ6IiIuY29uY2F0KHIsIi1tb3JlIiksImFyaWEtZXhwYW5kZWQiOk8sb25LZXlEb3duOm9lfSxmKSk7cmV0dXJuIGEuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOlkoKSgiIi5jb25jYXQobiwiLW5hdi1vcGVyYXRpb25zIiksbSksc3R5bGU6cyxyZWY6dH0sZmUsYS5jcmVhdGVFbGVtZW50KGl0LHtwcmVmaXhDbHM6bixsb2NhbGU6bCxlZGl0YWJsZTpifSkpfSksUXQ9YS5tZW1vKFl0LGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQudGFiTW92aW5nfSksSnQ9ZnVuY3Rpb24odCl7dmFyIG49dC5wcmVmaXhDbHMscj10LmlkLGk9dC5hY3RpdmUsbD10LmZvY3VzLGM9dC50YWIsbz1jLmtleSxkPWMubGFiZWwscz1jLmRpc2FibGVkLG09Yy5jbG9zZUljb24sYj1jLmljb24sQz10LmNsb3NhYmxlLFo9dC5yZW5kZXJXcmFwcGVyLEI9dC5yZW1vdmVBcmlhTGFiZWwsUD10LmVkaXRhYmxlLF89dC5vbkNsaWNrLCQ9dC5vbkZvY3VzLGc9dC5vbkJsdXIsST10Lm9uS2V5RG93bixPPXQub25Nb3VzZURvd24sVz10Lm9uTW91c2VVcCxqPXQuc3R5bGUsRz10LnRhYkNvdW50LHo9dC5jdXJyZW50UG9zaXRpb24sVD0iIi5jb25jYXQobiwiLXRhYiIpLFI9T2UoQyxtLFAscyk7ZnVuY3Rpb24gZihYKXtzfHxfKFgpfWZ1bmN0aW9uIHgoWCl7WC5wcmV2ZW50RGVmYXVsdCgpLFguc3RvcFByb3BhZ2F0aW9uKCksUC5vbkVkaXQoInJlbW92ZSIse2tleTpvLGV2ZW50Olh9KX12YXIgaD1hLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4gYiYmdHlwZW9mIGQ9PSJzdHJpbmciP2EuY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCxkKTpkfSxbZCxiXSkseT1hLnVzZVJlZihudWxsKTthLnVzZUVmZmVjdChmdW5jdGlvbigpe2wmJnkuY3VycmVudCYmeS5jdXJyZW50LmZvY3VzKCl9LFtsXSk7dmFyIEs9YS5jcmVhdGVFbGVtZW50KCJkaXYiLHtrZXk6bywiZGF0YS1ub2RlLWtleSI6cnQobyksY2xhc3NOYW1lOlkoKShULCgwLFYuWikoKDAsVi5aKSgoMCxWLlopKCgwLFYuWikoe30sIiIuY29uY2F0KFQsIi13aXRoLXJlbW92ZSIpLFIpLCIiLmNvbmNhdChULCItYWN0aXZlIiksaSksIiIuY29uY2F0KFQsIi1kaXNhYmxlZCIpLHMpLCIiLmNvbmNhdChULCItZm9jdXMiKSxsKSksc3R5bGU6aixvbkNsaWNrOmZ9LGEuY3JlYXRlRWxlbWVudCgiZGl2Iix7cmVmOnkscm9sZToidGFiIiwiYXJpYS1zZWxlY3RlZCI6aSxpZDpyJiYiIi5jb25jYXQociwiLXRhYi0iKS5jb25jYXQobyksY2xhc3NOYW1lOiIiLmNvbmNhdChULCItYnRuIiksImFyaWEtY29udHJvbHMiOnImJiIiLmNvbmNhdChyLCItcGFuZWwtIikuY29uY2F0KG8pLCJhcmlhLWRpc2FibGVkIjpzLHRhYkluZGV4OnM/bnVsbDppPzA6LTEsb25DbGljazpmdW5jdGlvbih2KXt2LnN0b3BQcm9wYWdhdGlvbigpLGYodil9LG9uS2V5RG93bjpJLG9uTW91c2VEb3duOk8sb25Nb3VzZVVwOlcsb25Gb2N1czokLG9uQmx1cjpnfSxsJiZhLmNyZWF0ZUVsZW1lbnQoImRpdiIseyJhcmlhLWxpdmUiOiJwb2xpdGUiLHN0eWxlOnt3aWR0aDowLGhlaWdodDowLHBvc2l0aW9uOiJhYnNvbHV0ZSIsb3ZlcmZsb3c6ImhpZGRlbiIsb3BhY2l0eTowfX0sIlRhYiAiLmNvbmNhdCh6LCIgb2YgIikuY29uY2F0KEcpKSxiJiZhLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6IiIuY29uY2F0KFQsIi1pY29uIil9LGIpLGQmJmgpLFImJmEuY3JlYXRlRWxlbWVudCgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixyb2xlOiJ0YWIiLCJhcmlhLWxhYmVsIjpCfHwicmVtb3ZlIix0YWJJbmRleDppPzA6LTEsY2xhc3NOYW1lOiIiLmNvbmNhdChULCItcmVtb3ZlIiksb25DbGljazpmdW5jdGlvbih2KXt2LnN0b3BQcm9wYWdhdGlvbigpLHgodil9fSxtfHxQLnJlbW92ZUljb258fCJceEQ3IikpO3JldHVybiBaP1ooSyk6S30scXQ9SnQsZWE9ZnVuY3Rpb24odCxuKXt2YXIgcj10Lm9mZnNldFdpZHRoLGk9dC5vZmZzZXRIZWlnaHQsbD10Lm9mZnNldFRvcCxjPXQub2Zmc2V0TGVmdCxvPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksZD1vLndpZHRoLHM9by5oZWlnaHQsbT1vLmxlZnQsYj1vLnRvcDtyZXR1cm4gTWF0aC5hYnMoZC1yKTwxP1tkLHMsbS1uLmxlZnQsYi1uLnRvcF06W3IsaSxjLGxdfSxoZT1mdW5jdGlvbih0KXt2YXIgbj10LmN1cnJlbnR8fHt9LHI9bi5vZmZzZXRXaWR0aCxpPXI9PT12b2lkIDA/MDpyLGw9bi5vZmZzZXRIZWlnaHQsYz1sPT09dm9pZCAwPzA6bDtpZih0LmN1cnJlbnQpe3ZhciBvPXQuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxkPW8ud2lkdGgscz1vLmhlaWdodDtpZihNYXRoLmFicyhkLWkpPDEpcmV0dXJuW2Qsc119cmV0dXJuW2ksY119LFplPWZ1bmN0aW9uKHQsbil7cmV0dXJuIHRbbj8wOjFdfSx0YT1hLmZvcndhcmRSZWYoZnVuY3Rpb24oZSx0KXt2YXIgbj1lLmNsYXNzTmFtZSxyPWUuc3R5bGUsaT1lLmlkLGw9ZS5hbmltYXRlZCxjPWUuYWN0aXZlS2V5LG89ZS5ydGwsZD1lLmV4dHJhLHM9ZS5lZGl0YWJsZSxtPWUubG9jYWxlLGI9ZS50YWJQb3NpdGlvbixDPWUudGFiQmFyR3V0dGVyLFo9ZS5jaGlsZHJlbixCPWUub25UYWJDbGljayxQPWUub25UYWJTY3JvbGwsXz1lLmluZGljYXRvciwkPWEudXNlQ29udGV4dChJZSksZz0kLnByZWZpeENscyxJPSQudGFicyxPPSgwLGEudXNlUmVmKShudWxsKSxXPSgwLGEudXNlUmVmKShudWxsKSxqPSgwLGEudXNlUmVmKShudWxsKSxHPSgwLGEudXNlUmVmKShudWxsKSx6PSgwLGEudXNlUmVmKShudWxsKSxUPSgwLGEudXNlUmVmKShudWxsKSxSPSgwLGEudXNlUmVmKShudWxsKSxmPWI9PT0idG9wInx8Yj09PSJib3R0b20iLHg9SmUoMCxmdW5jdGlvbih3LHUpe2YmJlAmJlAoe2RpcmVjdGlvbjp3PnU/ImxlZnQiOiJyaWdodCJ9KX0pLGg9KDAsTC5aKSh4LDIpLHk9aFswXSxLPWhbMV0sWD1KZSgwLGZ1bmN0aW9uKHcsdSl7IWYmJlAmJlAoe2RpcmVjdGlvbjp3PnU/InRvcCI6ImJvdHRvbSJ9KX0pLHY9KDAsTC5aKShYLDIpLFU9dlswXSxvZT12WzFdLGs9KDAsYS51c2VTdGF0ZSkoWzAsMF0pLFE9KDAsTC5aKShrLDIpLGZlPVFbMF0sRT1RWzFdLEE9KDAsYS51c2VTdGF0ZSkoWzAsMF0pLEg9KDAsTC5aKShBLDIpLEY9SFswXSxKPUhbMV0sbmU9KDAsYS51c2VTdGF0ZSkoWzAsMF0pLGVlPSgwLEwuWikobmUsMikscGU9ZWVbMF0sdmU9ZWVbMV0sbWU9KDAsYS51c2VTdGF0ZSkoWzAsMF0pLCRlPSgwLEwuWikobWUsMiksTT0kZVswXSxsZT0kZVsxXSxUZT1IdChuZXcgTWFwKSx2dD0oMCxMLlopKFRlLDIpLGphPXZ0WzBdLEdhPXZ0WzFdLE1lPVd0KEksamEsRlswXSksQWU9WmUoZmUsZiksUGU9WmUoRixmKSxXZT1aZShwZSxmKSxidD1aZShNLGYpLG10PU1hdGguZmxvb3IoQWUpPE1hdGguZmxvb3IoUGUrV2UpLGllPW10P0FlLWJ0OkFlLVdlLGthPSIiLmNvbmNhdChnLCItbmF2LW9wZXJhdGlvbnMtaGlkZGVuIiksYmU9MCxnZT0wO2YmJm8/KGJlPTAsZ2U9TWF0aC5tYXgoMCxQZS1pZSkpOihiZT1NYXRoLm1pbigwLGllLVBlKSxnZT0wKTtmdW5jdGlvbiBqZSh3KXtyZXR1cm4gdzxiZT9iZTp3PmdlP2dlOnd9dmFyIEdlPSgwLGEudXNlUmVmKShudWxsKSxIYT0oMCxhLnVzZVN0YXRlKSgpLGd0PSgwLEwuWikoSGEsMiksTmU9Z3RbMF0saHQ9Z3RbMV07ZnVuY3Rpb24ga2UoKXtodChEYXRlLm5vdygpKX1mdW5jdGlvbiBIZSgpe0dlLmN1cnJlbnQmJmNsZWFyVGltZW91dChHZS5jdXJyZW50KX1HdChHLGZ1bmN0aW9uKHcsdSl7ZnVuY3Rpb24gTihELHJlKXtEKGZ1bmN0aW9uKHRlKXt2YXIgeGU9amUodGUrcmUpO3JldHVybiB4ZX0pfXJldHVybiBtdD8oZj9OKEssdyk6TihvZSx1KSxIZSgpLGtlKCksITApOiExfSksKDAsYS51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7cmV0dXJuIEhlKCksTmUmJihHZS5jdXJyZW50PXNldFRpbWVvdXQoZnVuY3Rpb24oKXtodCgwKX0sMTAwKSksSGV9LFtOZV0pO3ZhciBLYT1LdChNZSxpZSxmP3k6VSxQZSxXZSxidCwoMCxxLlopKCgwLHEuWikoe30sZSkse30se3RhYnM6SX0pKSxwdD0oMCxMLlopKEthLDIpLFhhPXB0WzBdLFZhPXB0WzFdLCR0PSgwLER0LlopKGZ1bmN0aW9uKCl7dmFyIHc9YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT12b2lkIDA/YXJndW1lbnRzWzBdOmMsdT1NZS5nZXQodyl8fHt3aWR0aDowLGhlaWdodDowLGxlZnQ6MCxyaWdodDowLHRvcDowfTtpZihmKXt2YXIgTj15O28/dS5yaWdodDx5P049dS5yaWdodDp1LnJpZ2h0K3Uud2lkdGg+eStpZSYmKE49dS5yaWdodCt1LndpZHRoLWllKTp1LmxlZnQ8LXk/Tj0tdS5sZWZ0OnUubGVmdCt1LndpZHRoPi15K2llJiYoTj0tKHUubGVmdCt1LndpZHRoLWllKSksb2UoMCksSyhqZShOKSl9ZWxzZXt2YXIgRD1VO3UudG9wPC1VP0Q9LXUudG9wOnUudG9wK3UuaGVpZ2h0Pi1VK2llJiYoRD0tKHUudG9wK3UuaGVpZ2h0LWllKSksSygwKSxvZShqZShEKSl9fSksVWE9KDAsYS51c2VTdGF0ZSkoKSxTdD0oMCxMLlopKFVhLDIpLFNlPVN0WzBdLEVlPVN0WzFdLEZhPSgwLGEudXNlU3RhdGUpKCExKSx5dD0oMCxMLlopKEZhLDIpLFlhPXl0WzBdLHh0PXl0WzFdLGNlPUkuZmlsdGVyKGZ1bmN0aW9uKHcpe3JldHVybiF3LmRpc2FibGVkfSkubWFwKGZ1bmN0aW9uKHcpe3JldHVybiB3LmtleX0pLHllPWZ1bmN0aW9uKHUpe3ZhciBOPWNlLmluZGV4T2YoU2V8fGMpLEQ9Y2UubGVuZ3RoLHJlPShOK3UrRCklRCx0ZT1jZVtyZV07RWUodGUpfSxRYT1mdW5jdGlvbih1KXt2YXIgTj11LmNvZGUsRD1vJiZmLHJlPWNlWzBdLHRlPWNlW2NlLmxlbmd0aC0xXTtzd2l0Y2goTil7Y2FzZSJBcnJvd0xlZnQiOntmJiZ5ZShEPzE6LTEpO2JyZWFrfWNhc2UiQXJyb3dSaWdodCI6e2YmJnllKEQ/LTE6MSk7YnJlYWt9Y2FzZSJBcnJvd1VwIjp7dS5wcmV2ZW50RGVmYXVsdCgpLGZ8fHllKC0xKTticmVha31jYXNlIkFycm93RG93biI6e3UucHJldmVudERlZmF1bHQoKSxmfHx5ZSgxKTticmVha31jYXNlIkhvbWUiOnt1LnByZXZlbnREZWZhdWx0KCksRWUocmUpO2JyZWFrfWNhc2UiRW5kIjp7dS5wcmV2ZW50RGVmYXVsdCgpLEVlKHRlKTticmVha31jYXNlIkVudGVyIjpjYXNlIlNwYWNlIjp7dS5wcmV2ZW50RGVmYXVsdCgpLEIoU2UsdSk7YnJlYWt9Y2FzZSJCYWNrc3BhY2UiOmNhc2UiRGVsZXRlIjp7dmFyIHhlPWNlLmluZGV4T2YoU2UpLGFlPUkuZmluZChmdW5jdGlvbihDZSl7cmV0dXJuIENlLmtleT09PVNlfSksVmU9T2UoYWU9PW51bGw/dm9pZCAwOmFlLmNsb3NhYmxlLGFlPT1udWxsP3ZvaWQgMDphZS5jbG9zZUljb24scyxhZT09bnVsbD92b2lkIDA6YWUuZGlzYWJsZWQpO1ZlJiYodS5wcmV2ZW50RGVmYXVsdCgpLHUuc3RvcFByb3BhZ2F0aW9uKCkscy5vbkVkaXQoInJlbW92ZSIse2tleTpTZSxldmVudDp1fSkseGU9PT1jZS5sZW5ndGgtMT95ZSgtMSk6eWUoMSkpO2JyZWFrfX19LHplPXt9O2Y/emVbbz8ibWFyZ2luUmlnaHQiOiJtYXJnaW5MZWZ0Il09Qzp6ZS5tYXJnaW5Ub3A9Qzt2YXIgQ3Q9SS5tYXAoZnVuY3Rpb24odyx1KXt2YXIgTj13LmtleTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KHF0LHtpZDppLHByZWZpeENsczpnLGtleTpOLHRhYjp3LHN0eWxlOnU9PT0wP3ZvaWQgMDp6ZSxjbG9zYWJsZTp3LmNsb3NhYmxlLGVkaXRhYmxlOnMsYWN0aXZlOk49PT1jLGZvY3VzOk49PT1TZSxyZW5kZXJXcmFwcGVyOloscmVtb3ZlQXJpYUxhYmVsOm09PW51bGw/dm9pZCAwOm0ucmVtb3ZlQXJpYUxhYmVsLHRhYkNvdW50OmNlLmxlbmd0aCxjdXJyZW50UG9zaXRpb246dSsxLG9uQ2xpY2s6ZnVuY3Rpb24ocmUpe0IoTixyZSl9LG9uS2V5RG93bjpRYSxvbkZvY3VzOmZ1bmN0aW9uKCl7WWF8fEVlKE4pLCR0KE4pLGtlKCksRy5jdXJyZW50JiYob3x8KEcuY3VycmVudC5zY3JvbGxMZWZ0PTApLEcuY3VycmVudC5zY3JvbGxUb3A9MCl9LG9uQmx1cjpmdW5jdGlvbigpe0VlKHZvaWQgMCl9LG9uTW91c2VEb3duOmZ1bmN0aW9uKCl7eHQoITApfSxvbk1vdXNlVXA6ZnVuY3Rpb24oKXt4dCghMSl9fSl9KSxUdD1mdW5jdGlvbigpe3JldHVybiBHYShmdW5jdGlvbigpe3ZhciB1LE49bmV3IE1hcCxEPSh1PXouY3VycmVudCk9PT1udWxsfHx1PT09dm9pZCAwP3ZvaWQgMDp1LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybiBJLmZvckVhY2goZnVuY3Rpb24ocmUpe3ZhciB0ZSx4ZT1yZS5rZXksYWU9KHRlPXouY3VycmVudCk9PT1udWxsfHx0ZT09PXZvaWQgMD92b2lkIDA6dGUucXVlcnlTZWxlY3RvcignW2RhdGEtbm9kZS1rZXk9IicuY29uY2F0KHJ0KHhlKSwnIl0nKSk7aWYoYWUpe3ZhciBWZT1lYShhZSxEKSxDZT0oMCxMLlopKFZlLDQpLGFuPUNlWzBdLG5uPUNlWzFdLHJuPUNlWzJdLG9uPUNlWzNdO04uc2V0KHhlLHt3aWR0aDphbixoZWlnaHQ6bm4sbGVmdDpybix0b3A6b259KX19KSxOfSl9OygwLGEudXNlRWZmZWN0KShmdW5jdGlvbigpe1R0KCl9LFtJLm1hcChmdW5jdGlvbih3KXtyZXR1cm4gdy5rZXl9KS5qb2luKCJfIildKTt2YXIgX2U9dHQoZnVuY3Rpb24oKXt2YXIgdz1oZShPKSx1PWhlKFcpLE49aGUoaik7RShbd1swXS11WzBdLU5bMF0sd1sxXS11WzFdLU5bMV1dKTt2YXIgRD1oZShSKTt2ZShEKTt2YXIgcmU9aGUoVCk7bGUocmUpO3ZhciB0ZT1oZSh6KTtKKFt0ZVswXS1EWzBdLHRlWzFdLURbMV1dKSxUdCgpfSksSmE9SS5zbGljZSgwLFhhKSxxYT1JLnNsaWNlKFZhKzEpLFB0PVtdLmNvbmNhdCgoMCxGZS5aKShKYSksKDAsRmUuWikocWEpKSxFdD1NZS5nZXQoYyksZW49QXQoe2FjdGl2ZVRhYk9mZnNldDpFdCxob3Jpem9udGFsOmYsaW5kaWNhdG9yOl8scnRsOm99KSx0bj1lbi5zdHlsZTsoMCxhLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXskdCgpfSxbYyxiZSxnZSxudChFdCksbnQoTWUpLGZdKSwoMCxhLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtfZSgpfSxbb10pO3ZhciBSdD0hIVB0Lmxlbmd0aCxSZT0iIi5jb25jYXQoZywiLW5hdi13cmFwIiksS2UsWGUsd3QsSXQ7cmV0dXJuIGY/bz8oWGU9eT4wLEtlPXkhPT1nZSk6KEtlPXk8MCxYZT15IT09YmUpOih3dD1VPDAsSXQ9VSE9PWJlKSxhLmNyZWF0ZUVsZW1lbnQoQmUuWix7b25SZXNpemU6X2V9LGEuY3JlYXRlRWxlbWVudCgiZGl2Iix7cmVmOigwLEJ0LngxKSh0LE8pLHJvbGU6InRhYmxpc3QiLCJhcmlhLW9yaWVudGF0aW9uIjpmPyJob3Jpem9udGFsIjoidmVydGljYWwiLGNsYXNzTmFtZTpZKCkoIiIuY29uY2F0KGcsIi1uYXYiKSxuKSxzdHlsZTpyLG9uS2V5RG93bjpmdW5jdGlvbigpe2tlKCl9fSxhLmNyZWF0ZUVsZW1lbnQob3Qse3JlZjpXLHBvc2l0aW9uOiJsZWZ0IixleHRyYTpkLHByZWZpeENsczpnfSksYS5jcmVhdGVFbGVtZW50KEJlLlose29uUmVzaXplOl9lfSxhLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpZKCkoUmUsKDAsVi5aKSgoMCxWLlopKCgwLFYuWikoKDAsVi5aKSh7fSwiIi5jb25jYXQoUmUsIi1waW5nLWxlZnQiKSxLZSksIiIuY29uY2F0KFJlLCItcGluZy1yaWdodCIpLFhlKSwiIi5jb25jYXQoUmUsIi1waW5nLXRvcCIpLHd0KSwiIi5jb25jYXQoUmUsIi1waW5nLWJvdHRvbSIpLEl0KSkscmVmOkd9LGEuY3JlYXRlRWxlbWVudChCZS5aLHtvblJlc2l6ZTpfZX0sYS5jcmVhdGVFbGVtZW50KCJkaXYiLHtyZWY6eixjbGFzc05hbWU6IiIuY29uY2F0KGcsIi1uYXYtbGlzdCIpLHN0eWxlOnt0cmFuc2Zvcm06InRyYW5zbGF0ZSgiLmNvbmNhdCh5LCJweCwgIikuY29uY2F0KFUsInB4KSIpLHRyYW5zaXRpb246TmU/Im5vbmUiOnZvaWQgMH19LEN0LGEuY3JlYXRlRWxlbWVudChpdCx7cmVmOlIscHJlZml4Q2xzOmcsbG9jYWxlOm0sZWRpdGFibGU6cyxzdHlsZTooMCxxLlopKCgwLHEuWikoe30sQ3QubGVuZ3RoPT09MD92b2lkIDA6emUpLHt9LHt2aXNpYmlsaXR5OlJ0PyJoaWRkZW4iOm51bGx9KX0pLGEuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOlkoKSgiIi5jb25jYXQoZywiLWluay1iYXIiKSwoMCxWLlopKHt9LCIiLmNvbmNhdChnLCItaW5rLWJhci1hbmltYXRlZCIpLGwuaW5rQmFyKSksc3R5bGU6dG59KSkpKSksYS5jcmVhdGVFbGVtZW50KFF0LCgwLHNlLlopKHt9LGUse3JlbW92ZUFyaWFMYWJlbDptPT1udWxsP3ZvaWQgMDptLnJlbW92ZUFyaWFMYWJlbCxyZWY6VCxwcmVmaXhDbHM6Zyx0YWJzOlB0LGNsYXNzTmFtZTohUnQmJmthLHRhYk1vdmluZzohIU5lfSkpLGEuY3JlYXRlRWxlbWVudChvdCx7cmVmOmoscG9zaXRpb246InJpZ2h0IixleHRyYTpkLHByZWZpeENsczpnfSkpKX0pLGN0PXRhLGFhPWEuZm9yd2FyZFJlZihmdW5jdGlvbihlLHQpe3ZhciBuPWUucHJlZml4Q2xzLHI9ZS5jbGFzc05hbWUsaT1lLnN0eWxlLGw9ZS5pZCxjPWUuYWN0aXZlLG89ZS50YWJLZXksZD1lLmNoaWxkcmVuO3JldHVybiBhLmNyZWF0ZUVsZW1lbnQoImRpdiIse2lkOmwmJiIiLmNvbmNhdChsLCItcGFuZWwtIikuY29uY2F0KG8pLHJvbGU6InRhYnBhbmVsIix0YWJJbmRleDpjPzA6LTEsImFyaWEtbGFiZWxsZWRieSI6bCYmIiIuY29uY2F0KGwsIi10YWItIikuY29uY2F0KG8pLCJhcmlhLWhpZGRlbiI6IWMsc3R5bGU6aSxjbGFzc05hbWU6WSgpKG4sYyYmIiIuY29uY2F0KG4sIi1hY3RpdmUiKSxyKSxyZWY6dH0sZCl9KSxzdD1hYSxuYT1bInJlbmRlclRhYkJhciJdLHJhPVsibGFiZWwiLCJrZXkiXSxpYT1mdW5jdGlvbih0KXt2YXIgbj10LnJlbmRlclRhYkJhcixyPSgwLHdlLlopKHQsbmEpLGk9YS51c2VDb250ZXh0KEllKSxsPWkudGFicztpZihuKXt2YXIgYz0oMCxxLlopKCgwLHEuWikoe30scikse30se3BhbmVzOmwubWFwKGZ1bmN0aW9uKG8pe3ZhciBkPW8ubGFiZWwscz1vLmtleSxtPSgwLHdlLlopKG8scmEpO3JldHVybiBhLmNyZWF0ZUVsZW1lbnQoc3QsKDAsc2UuWikoe3RhYjpkLGtleTpzLHRhYktleTpzfSxtKSl9KX0pO3JldHVybiBuKGMsY3QpfXJldHVybiBhLmNyZWF0ZUVsZW1lbnQoY3Qscil9LG9hPWlhLGxhPXAoMjkzNzIpLGNhPVsia2V5IiwiZm9yY2VSZW5kZXIiLCJzdHlsZSIsImNsYXNzTmFtZSIsImRlc3Ryb3lJbmFjdGl2ZVRhYlBhbmUiXSxzYT1mdW5jdGlvbih0KXt2YXIgbj10LmlkLHI9dC5hY3RpdmVLZXksaT10LmFuaW1hdGVkLGw9dC50YWJQb3NpdGlvbixjPXQuZGVzdHJveUluYWN0aXZlVGFiUGFuZSxvPWEudXNlQ29udGV4dChJZSksZD1vLnByZWZpeENscyxzPW8udGFicyxtPWkudGFiUGFuZSxiPSIiLmNvbmNhdChkLCItdGFicGFuZSIpO3JldHVybiBhLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpZKCkoIiIuY29uY2F0KGQsIi1jb250ZW50LWhvbGRlciIpKX0sYS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6WSgpKCIiLmNvbmNhdChkLCItY29udGVudCIpLCIiLmNvbmNhdChkLCItY29udGVudC0iKS5jb25jYXQobCksKDAsVi5aKSh7fSwiIi5jb25jYXQoZCwiLWNvbnRlbnQtYW5pbWF0ZWQiKSxtKSl9LHMubWFwKGZ1bmN0aW9uKEMpe3ZhciBaPUMua2V5LEI9Qy5mb3JjZVJlbmRlcixQPUMuc3R5bGUsXz1DLmNsYXNzTmFtZSwkPUMuZGVzdHJveUluYWN0aXZlVGFiUGFuZSxnPSgwLHdlLlopKEMsY2EpLEk9Wj09PXI7cmV0dXJuIGEuY3JlYXRlRWxlbWVudChsYS5aUCwoMCxzZS5aKSh7a2V5OlosdmlzaWJsZTpJLGZvcmNlUmVuZGVyOkIscmVtb3ZlT25MZWF2ZTohIShjfHwkKSxsZWF2ZWRDbGFzc05hbWU6IiIuY29uY2F0KGIsIi1oaWRkZW4iKX0saS50YWJQYW5lTW90aW9uKSxmdW5jdGlvbihPLFcpe3ZhciBqPU8uc3R5bGUsRz1PLmNsYXNzTmFtZTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KHN0LCgwLHNlLlopKHt9LGcse3ByZWZpeENsczpiLGlkOm4sdGFiS2V5OlosYW5pbWF0ZWQ6bSxhY3RpdmU6SSxzdHlsZTooMCxxLlopKCgwLHEuWikoe30sUCksaiksY2xhc3NOYW1lOlkoKShfLEcpLHJlZjpXfSkpfSl9KSkpfSxkYT1zYSxjbj1wKDgwMzM0KTtmdW5jdGlvbiB1YSgpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dm9pZCAwP2FyZ3VtZW50c1swXTp7aW5rQmFyOiEwLHRhYlBhbmU6ITF9LHQ7cmV0dXJuIGU9PT0hMT90PXtpbmtCYXI6ITEsdGFiUGFuZTohMX06ZT09PSEwP3Q9e2lua0JhcjohMCx0YWJQYW5lOiExfTp0PSgwLHEuWikoe2lua0JhcjohMH0sKDAsRGUuWikoZSk9PT0ib2JqZWN0Ij9lOnt9KSx0LnRhYlBhbmVNb3Rpb24mJnQudGFiUGFuZT09PXZvaWQgMCYmKHQudGFiUGFuZT0hMCksIXQudGFiUGFuZU1vdGlvbiYmdC50YWJQYW5lJiYodC50YWJQYW5lPSExKSx0fXZhciBmYT1bImlkIiwicHJlZml4Q2xzIiwiY2xhc3NOYW1lIiwiaXRlbXMiLCJkaXJlY3Rpb24iLCJhY3RpdmVLZXkiLCJkZWZhdWx0QWN0aXZlS2V5IiwiZWRpdGFibGUiLCJhbmltYXRlZCIsInRhYlBvc2l0aW9uIiwidGFiQmFyR3V0dGVyIiwidGFiQmFyU3R5bGUiLCJ0YWJCYXJFeHRyYUNvbnRlbnQiLCJsb2NhbGUiLCJtb3JlIiwiZGVzdHJveUluYWN0aXZlVGFiUGFuZSIsInJlbmRlclRhYkJhciIsIm9uQ2hhbmdlIiwib25UYWJDbGljayIsIm9uVGFiU2Nyb2xsIiwiZ2V0UG9wdXBDb250YWluZXIiLCJwb3B1cENsYXNzTmFtZSIsImluZGljYXRvciJdLGR0PTAsdmE9YS5mb3J3YXJkUmVmKGZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5pZCxyPWUucHJlZml4Q2xzLGk9cj09PXZvaWQgMD8icmMtdGFicyI6cixsPWUuY2xhc3NOYW1lLGM9ZS5pdGVtcyxvPWUuZGlyZWN0aW9uLGQ9ZS5hY3RpdmVLZXkscz1lLmRlZmF1bHRBY3RpdmVLZXksbT1lLmVkaXRhYmxlLGI9ZS5hbmltYXRlZCxDPWUudGFiUG9zaXRpb24sWj1DPT09dm9pZCAwPyJ0b3AiOkMsQj1lLnRhYkJhckd1dHRlcixQPWUudGFiQmFyU3R5bGUsXz1lLnRhYkJhckV4dHJhQ29udGVudCwkPWUubG9jYWxlLGc9ZS5tb3JlLEk9ZS5kZXN0cm95SW5hY3RpdmVUYWJQYW5lLE89ZS5yZW5kZXJUYWJCYXIsVz1lLm9uQ2hhbmdlLGo9ZS5vblRhYkNsaWNrLEc9ZS5vblRhYlNjcm9sbCx6PWUuZ2V0UG9wdXBDb250YWluZXIsVD1lLnBvcHVwQ2xhc3NOYW1lLFI9ZS5pbmRpY2F0b3IsZj0oMCx3ZS5aKShlLGZhKSx4PWEudXNlTWVtbyhmdW5jdGlvbigpe3JldHVybihjfHxbXSkuZmlsdGVyKGZ1bmN0aW9uKE0pe3JldHVybiBNJiYoMCxEZS5aKShNKT09PSJvYmplY3QiJiYia2V5ImluIE19KX0sW2NdKSxoPW89PT0icnRsIix5PXVhKGIpLEs9KDAsYS51c2VTdGF0ZSkoITEpLFg9KDAsTC5aKShLLDIpLHY9WFswXSxVPVhbMV07KDAsYS51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7VSgoMCxfdC5aKSgpKX0sW10pO3ZhciBvZT0oMCxVZS5aKShmdW5jdGlvbigpe3ZhciBNO3JldHVybihNPXhbMF0pPT09bnVsbHx8TT09PXZvaWQgMD92b2lkIDA6TS5rZXl9LHt2YWx1ZTpkLGRlZmF1bHRWYWx1ZTpzfSksaz0oMCxMLlopKG9lLDIpLFE9a1swXSxmZT1rWzFdLEU9KDAsYS51c2VTdGF0ZSkoZnVuY3Rpb24oKXtyZXR1cm4geC5maW5kSW5kZXgoZnVuY3Rpb24oTSl7cmV0dXJuIE0ua2V5PT09UX0pfSksQT0oMCxMLlopKEUsMiksSD1BWzBdLEY9QVsxXTsoMCxhLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXt2YXIgTT14LmZpbmRJbmRleChmdW5jdGlvbihUZSl7cmV0dXJuIFRlLmtleT09PVF9KTtpZihNPT09LTEpe3ZhciBsZTtNPU1hdGgubWF4KDAsTWF0aC5taW4oSCx4Lmxlbmd0aC0xKSksZmUoKGxlPXhbTV0pPT09bnVsbHx8bGU9PT12b2lkIDA/dm9pZCAwOmxlLmtleSl9RihNKX0sW3gubWFwKGZ1bmN0aW9uKE0pe3JldHVybiBNLmtleX0pLmpvaW4oIl8iKSxRLEhdKTt2YXIgSj0oMCxVZS5aKShudWxsLHt2YWx1ZTpufSksbmU9KDAsTC5aKShKLDIpLGVlPW5lWzBdLHBlPW5lWzFdOygwLGEudXNlRWZmZWN0KShmdW5jdGlvbigpe258fChwZSgicmMtdGFicy0iLmNvbmNhdChkdCkpLGR0Kz0xKX0sW10pO2Z1bmN0aW9uIHZlKE0sbGUpe2o9PW51bGx8fGooTSxsZSk7dmFyIFRlPU0hPT1RO2ZlKE0pLFRlJiYoVz09bnVsbHx8VyhNKSl9dmFyIG1lPXtpZDplZSxhY3RpdmVLZXk6USxhbmltYXRlZDp5LHRhYlBvc2l0aW9uOloscnRsOmgsbW9iaWxlOnZ9LCRlPSgwLHEuWikoKDAscS5aKSh7fSxtZSkse30se2VkaXRhYmxlOm0sbG9jYWxlOiQsbW9yZTpnLHRhYkJhckd1dHRlcjpCLG9uVGFiQ2xpY2s6dmUsb25UYWJTY3JvbGw6RyxleHRyYTpfLHN0eWxlOlAscGFuZXM6bnVsbCxnZXRQb3B1cENvbnRhaW5lcjp6LHBvcHVwQ2xhc3NOYW1lOlQsaW5kaWNhdG9yOlJ9KTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KEllLlByb3ZpZGVyLHt2YWx1ZTp7dGFiczp4LHByZWZpeENsczppfX0sYS5jcmVhdGVFbGVtZW50KCJkaXYiLCgwLHNlLlopKHtyZWY6dCxpZDpuLGNsYXNzTmFtZTpZKCkoaSwiIi5jb25jYXQoaSwiLSIpLmNvbmNhdChaKSwoMCxWLlopKCgwLFYuWikoKDAsVi5aKSh7fSwiIi5jb25jYXQoaSwiLW1vYmlsZSIpLHYpLCIiLmNvbmNhdChpLCItZWRpdGFibGUiKSxtKSwiIi5jb25jYXQoaSwiLXJ0bCIpLGgpLGwpfSxmKSxhLmNyZWF0ZUVsZW1lbnQob2EsKDAsc2UuWikoe30sJGUse3JlbmRlclRhYkJhcjpPfSkpLGEuY3JlYXRlRWxlbWVudChkYSwoMCxzZS5aKSh7ZGVzdHJveUluYWN0aXZlVGFiUGFuZTpJfSxtZSx7YW5pbWF0ZWQ6eX0pKSkpfSksYmE9dmEsbWE9YmEsZ2E9cCg1MzEyNCksaGE9cCgzNTc5MikscGE9cCg5ODY3NSksJGE9cCgzMzYwMyk7Y29uc3QgU2E9e21vdGlvbkFwcGVhcjohMSxtb3Rpb25FbnRlcjohMCxtb3Rpb25MZWF2ZTohMH07ZnVuY3Rpb24geWEoZSl7bGV0IHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOntpbmtCYXI6ITAsdGFiUGFuZTohMX0sbjtyZXR1cm4gdD09PSExP249e2lua0JhcjohMSx0YWJQYW5lOiExfTp0PT09ITA/bj17aW5rQmFyOiEwLHRhYlBhbmU6ITB9Om49T2JqZWN0LmFzc2lnbih7aW5rQmFyOiEwfSx0eXBlb2YgdD09Im9iamVjdCI/dDp7fSksbi50YWJQYW5lJiYobi50YWJQYW5lTW90aW9uPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxTYSkse21vdGlvbk5hbWU6KDAsJGEubSkoZSwic3dpdGNoIil9KSksbn12YXIgeGE9cCg1MDM0NCksQ2E9ZnVuY3Rpb24oZSx0KXt2YXIgbj17fTtmb3IodmFyIHIgaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxyKSYmdC5pbmRleE9mKHIpPDAmJihuW3JdPWVbcl0pO2lmKGUhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgaT0wLHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtpPHIubGVuZ3RoO2krKyl0LmluZGV4T2YocltpXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUscltpXSkmJihuW3JbaV1dPWVbcltpXV0pO3JldHVybiBufTtmdW5jdGlvbiBUYShlKXtyZXR1cm4gZS5maWx0ZXIodD0+dCl9ZnVuY3Rpb24gUGEoZSx0KXtpZihlKXJldHVybiBlO2NvbnN0IG49KDAseGEuWikodCkubWFwKHI9PntpZihhLmlzVmFsaWRFbGVtZW50KHIpKXtjb25zdHtrZXk6aSxwcm9wczpsfT1yLGM9bHx8e30se3RhYjpvfT1jLGQ9Q2EoYyxbInRhYiJdKTtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHtrZXk6U3RyaW5nKGkpfSxkKSx7bGFiZWw6b30pfXJldHVybiBudWxsfSk7cmV0dXJuIFRhKG4pfXZhciBTPXAoMTE1NjgpLHVlPXAoMTQ3NDcpLEVhPXAoODM1NTkpLFJhPXAoODMyNjIpLHV0PXAoNjc3NzEpLHdhPWU9Pntjb25zdHtjb21wb25lbnRDbHM6dCxtb3Rpb25EdXJhdGlvblNsb3c6bn09ZTtyZXR1cm5be1t0XTp7W2Ake3R9LXN3aXRjaGBdOnsiJi1hcHBlYXIsICYtZW50ZXIiOnt0cmFuc2l0aW9uOiJub25lIiwiJi1zdGFydCI6e29wYWNpdHk6MH0sIiYtYWN0aXZlIjp7b3BhY2l0eToxLHRyYW5zaXRpb246YG9wYWNpdHkgJHtufWB9fSwiJi1sZWF2ZSI6e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdHJhbnNpdGlvbjoibm9uZSIsaW5zZXQ6MCwiJi1zdGFydCI6e29wYWNpdHk6MX0sIiYtYWN0aXZlIjp7b3BhY2l0eTowLHRyYW5zaXRpb246YG9wYWNpdHkgJHtufWB9fX19fSxbKDAsdXQub04pKGUsInNsaWRlLXVwIiksKDAsdXQub04pKGUsInNsaWRlLWRvd24iKV1dfTtjb25zdCBJYT1lPT57Y29uc3R7Y29tcG9uZW50Q2xzOnQsdGFic0NhcmRQYWRkaW5nOm4sY2FyZEJnOnIsY2FyZEd1dHRlcjppLGNvbG9yQm9yZGVyU2Vjb25kYXJ5OmwsaXRlbVNlbGVjdGVkQ29sb3I6Y309ZTtyZXR1cm57W2Ake3R9LWNhcmRgXTp7W2A+ICR7dH0tbmF2LCA+IGRpdiA+ICR7dH0tbmF2YF06e1tgJHt0fS10YWJgXTp7bWFyZ2luOjAscGFkZGluZzpuLGJhY2tncm91bmQ6cixib3JkZXI6YCR7KDAsUy5iZikoZS5saW5lV2lkdGgpfSAke2UubGluZVR5cGV9ICR7bH1gLHRyYW5zaXRpb246YGFsbCAke2UubW90aW9uRHVyYXRpb25TbG93fSAke2UubW90aW9uRWFzZUluT3V0fWB9LFtgJHt0fS10YWItYWN0aXZlYF06e2NvbG9yOmMsYmFja2dyb3VuZDplLmNvbG9yQmdDb250YWluZXJ9LFtgJHt0fS10YWItZm9jdXNgXTpPYmplY3QuYXNzaWduKHt9LCgwLHVlLm9OKShlLC0zKSksW2Ake3R9LWluay1iYXJgXTp7dmlzaWJpbGl0eToiaGlkZGVuIn0sW2AmICR7dH0tdGFiJHt0fS10YWItZm9jdXMgJHt0fS10YWItYnRuYF06e291dGxpbmU6Im5vbmUifX0sW2AmJHt0fS10b3AsICYke3R9LWJvdHRvbWBdOntbYD4gJHt0fS1uYXYsID4gZGl2ID4gJHt0fS1uYXZgXTp7W2Ake3R9LXRhYiArICR7dH0tdGFiYF06e21hcmdpbkxlZnQ6e19za2lwX2NoZWNrXzohMCx2YWx1ZTooMCxTLmJmKShpKX19fX0sW2AmJHt0fS10b3BgXTp7W2A+ICR7dH0tbmF2LCA+IGRpdiA+ICR7dH0tbmF2YF06e1tgJHt0fS10YWJgXTp7Ym9yZGVyUmFkaXVzOmAkeygwLFMuYmYpKGUuYm9yZGVyUmFkaXVzTEcpfSAkeygwLFMuYmYpKGUuYm9yZGVyUmFkaXVzTEcpfSAwIDBgfSxbYCR7dH0tdGFiLWFjdGl2ZWBdOntib3JkZXJCb3R0b21Db2xvcjplLmNvbG9yQmdDb250YWluZXJ9fX0sW2AmJHt0fS1ib3R0b21gXTp7W2A+ICR7dH0tbmF2LCA+IGRpdiA+ICR7dH0tbmF2YF06e1tgJHt0fS10YWJgXTp7Ym9yZGVyUmFkaXVzOmAwIDAgJHsoMCxTLmJmKShlLmJvcmRlclJhZGl1c0xHKX0gJHsoMCxTLmJmKShlLmJvcmRlclJhZGl1c0xHKX1gfSxbYCR7dH0tdGFiLWFjdGl2ZWBdOntib3JkZXJUb3BDb2xvcjplLmNvbG9yQmdDb250YWluZXJ9fX0sW2AmJHt0fS1sZWZ0LCAmJHt0fS1yaWdodGBdOntbYD4gJHt0fS1uYXYsID4gZGl2ID4gJHt0fS1uYXZgXTp7W2Ake3R9LXRhYiArICR7dH0tdGFiYF06e21hcmdpblRvcDooMCxTLmJmKShpKX19fSxbYCYke3R9LWxlZnRgXTp7W2A+ICR7dH0tbmF2LCA+IGRpdiA+ICR7dH0tbmF2YF06e1tgJHt0fS10YWJgXTp7Ym9yZGVyUmFkaXVzOntfc2tpcF9jaGVja186ITAsdmFsdWU6YCR7KDAsUy5iZikoZS5ib3JkZXJSYWRpdXNMRyl9IDAgMCAkeygwLFMuYmYpKGUuYm9yZGVyUmFkaXVzTEcpfWB9fSxbYCR7dH0tdGFiLWFjdGl2ZWBdOntib3JkZXJSaWdodENvbG9yOntfc2tpcF9jaGVja186ITAsdmFsdWU6ZS5jb2xvckJnQ29udGFpbmVyfX19fSxbYCYke3R9LXJpZ2h0YF06e1tgPiAke3R9LW5hdiwgPiBkaXYgPiAke3R9LW5hdmBdOntbYCR7dH0tdGFiYF06e2JvcmRlclJhZGl1czp7X3NraXBfY2hlY2tfOiEwLHZhbHVlOmAwICR7KDAsUy5iZikoZS5ib3JkZXJSYWRpdXNMRyl9ICR7KDAsUy5iZikoZS5ib3JkZXJSYWRpdXNMRyl9IDBgfX0sW2Ake3R9LXRhYi1hY3RpdmVgXTp7Ym9yZGVyTGVmdENvbG9yOntfc2tpcF9jaGVja186ITAsdmFsdWU6ZS5jb2xvckJnQ29udGFpbmVyfX19fX19fSxMYT1lPT57Y29uc3R7Y29tcG9uZW50Q2xzOnQsaXRlbUhvdmVyQ29sb3I6bixkcm9wZG93bkVkZ2VDaGlsZFZlcnRpY2FsUGFkZGluZzpyfT1lO3JldHVybntbYCR7dH0tZHJvcGRvd25gXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sKDAsdWUuV2YpKGUpKSx7cG9zaXRpb246ImFic29sdXRlIix0b3A6LTk5OTksbGVmdDp7X3NraXBfY2hlY2tfOiEwLHZhbHVlOi05OTk5fSx6SW5kZXg6ZS56SW5kZXhQb3B1cCxkaXNwbGF5OiJibG9jayIsIiYtaGlkZGVuIjp7ZGlzcGxheToibm9uZSJ9LFtgJHt0fS1kcm9wZG93bi1tZW51YF06e21heEhlaWdodDplLnRhYnNEcm9wZG93bkhlaWdodCxtYXJnaW46MCxwYWRkaW5nOmAkeygwLFMuYmYpKHIpfSAwYCxvdmVyZmxvd1g6ImhpZGRlbiIsb3ZlcmZsb3dZOiJhdXRvIix0ZXh0QWxpZ246e19za2lwX2NoZWNrXzohMCx2YWx1ZToibGVmdCJ9LGxpc3RTdHlsZVR5cGU6Im5vbmUiLGJhY2tncm91bmRDb2xvcjplLmNvbG9yQmdDb250YWluZXIsYmFja2dyb3VuZENsaXA6InBhZGRpbmctYm94Iixib3JkZXJSYWRpdXM6ZS5ib3JkZXJSYWRpdXNMRyxvdXRsaW5lOiJub25lIixib3hTaGFkb3c6ZS5ib3hTaGFkb3dTZWNvbmRhcnksIiYtaXRlbSI6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHVlLnZTKSx7ZGlzcGxheToiZmxleCIsYWxpZ25JdGVtczoiY2VudGVyIixtaW5XaWR0aDplLnRhYnNEcm9wZG93bldpZHRoLG1hcmdpbjowLHBhZGRpbmc6YCR7KDAsUy5iZikoZS5wYWRkaW5nWFhTKX0gJHsoMCxTLmJmKShlLnBhZGRpbmdTTSl9YCxjb2xvcjplLmNvbG9yVGV4dCxmb250V2VpZ2h0OiJub3JtYWwiLGZvbnRTaXplOmUuZm9udFNpemUsbGluZUhlaWdodDplLmxpbmVIZWlnaHQsY3Vyc29yOiJwb2ludGVyIix0cmFuc2l0aW9uOmBhbGwgJHtlLm1vdGlvbkR1cmF0aW9uU2xvd31gLCI+IHNwYW4iOntmbGV4OjEsd2hpdGVTcGFjZToibm93cmFwIn0sIiYtcmVtb3ZlIjp7ZmxleDoibm9uZSIsbWFyZ2luTGVmdDp7X3NraXBfY2hlY2tfOiEwLHZhbHVlOmUubWFyZ2luU019LGNvbG9yOmUuY29sb3JUZXh0RGVzY3JpcHRpb24sZm9udFNpemU6ZS5mb250U2l6ZVNNLGJhY2tncm91bmQ6InRyYW5zcGFyZW50Iixib3JkZXI6MCxjdXJzb3I6InBvaW50ZXIiLCImOmhvdmVyIjp7Y29sb3I6bn19LCImOmhvdmVyIjp7YmFja2dyb3VuZDplLmNvbnRyb2xJdGVtQmdIb3Zlcn0sIiYtZGlzYWJsZWQiOnsiJiwgJjpob3ZlciI6e2NvbG9yOmUuY29sb3JUZXh0RGlzYWJsZWQsYmFja2dyb3VuZDoidHJhbnNwYXJlbnQiLGN1cnNvcjoibm90LWFsbG93ZWQifX19KX19KX19LFphPWU9Pntjb25zdHtjb21wb25lbnRDbHM6dCxtYXJnaW46bixjb2xvckJvcmRlclNlY29uZGFyeTpyLGhvcml6b250YWxNYXJnaW46aSx2ZXJ0aWNhbEl0ZW1QYWRkaW5nOmwsdmVydGljYWxJdGVtTWFyZ2luOmMsY2FsYzpvfT1lO3JldHVybntbYCR7dH0tdG9wLCAke3R9LWJvdHRvbWBdOntmbGV4RGlyZWN0aW9uOiJjb2x1bW4iLFtgPiAke3R9LW5hdiwgPiBkaXYgPiAke3R9LW5hdmBdOnttYXJnaW46aSwiJjo6YmVmb3JlIjp7cG9zaXRpb246ImFic29sdXRlIixyaWdodDp7X3NraXBfY2hlY2tfOiEwLHZhbHVlOjB9LGxlZnQ6e19za2lwX2NoZWNrXzohMCx2YWx1ZTowfSxib3JkZXJCb3R0b206YCR7KDAsUy5iZikoZS5saW5lV2lkdGgpfSAke2UubGluZVR5cGV9ICR7cn1gLGNvbnRlbnQ6IicnIn0sW2Ake3R9LWluay1iYXJgXTp7aGVpZ2h0OmUubGluZVdpZHRoQm9sZCwiJi1hbmltYXRlZCI6e3RyYW5zaXRpb246YHdpZHRoICR7ZS5tb3Rpb25EdXJhdGlvblNsb3d9LCBsZWZ0ICR7ZS5tb3Rpb25EdXJhdGlvblNsb3d9LAorICAgICAgICAgICAgcmlnaHQgJHtlLm1vdGlvbkR1cmF0aW9uU2xvd31gfX0sW2Ake3R9LW5hdi13cmFwYF06eyImOjpiZWZvcmUsICY6OmFmdGVyIjp7dG9wOjAsYm90dG9tOjAsd2lkdGg6ZS5jb250cm9sSGVpZ2h0fSwiJjo6YmVmb3JlIjp7bGVmdDp7X3NraXBfY2hlY2tfOiEwLHZhbHVlOjB9LGJveFNoYWRvdzplLmJveFNoYWRvd1RhYnNPdmVyZmxvd0xlZnR9LCImOjphZnRlciI6e3JpZ2h0Ontfc2tpcF9jaGVja186ITAsdmFsdWU6MH0sYm94U2hhZG93OmUuYm94U2hhZG93VGFic092ZXJmbG93UmlnaHR9LFtgJiR7dH0tbmF2LXdyYXAtcGluZy1sZWZ0OjpiZWZvcmVgXTp7b3BhY2l0eToxfSxbYCYke3R9LW5hdi13cmFwLXBpbmctcmlnaHQ6OmFmdGVyYF06e29wYWNpdHk6MX19fX0sW2Ake3R9LXRvcGBdOntbYD4gJHt0fS1uYXYsCisgICAgICAgID4gZGl2ID4gJHt0fS1uYXZgXTp7IiY6OmJlZm9yZSI6e2JvdHRvbTowfSxbYCR7dH0taW5rLWJhcmBdOntib3R0b206MH19fSxbYCR7dH0tYm90dG9tYF06e1tgPiAke3R9LW5hdiwgPiBkaXYgPiAke3R9LW5hdmBdOntvcmRlcjoxLG1hcmdpblRvcDpuLG1hcmdpbkJvdHRvbTowLCImOjpiZWZvcmUiOnt0b3A6MH0sW2Ake3R9LWluay1iYXJgXTp7dG9wOjB9fSxbYD4gJHt0fS1jb250ZW50LWhvbGRlciwgPiBkaXYgPiAke3R9LWNvbnRlbnQtaG9sZGVyYF06e29yZGVyOjB9fSxbYCR7dH0tbGVmdCwgJHt0fS1yaWdodGBdOntbYD4gJHt0fS1uYXYsID4gZGl2ID4gJHt0fS1uYXZgXTp7ZmxleERpcmVjdGlvbjoiY29sdW1uIixtaW5XaWR0aDpvKGUuY29udHJvbEhlaWdodCkubXVsKDEuMjUpLmVxdWFsKCksW2Ake3R9LXRhYmBdOntwYWRkaW5nOmwsdGV4dEFsaWduOiJjZW50ZXIifSxbYCR7dH0tdGFiICsgJHt0fS10YWJgXTp7bWFyZ2luOmN9LFtgJHt0fS1uYXYtd3JhcGBdOntmbGV4RGlyZWN0aW9uOiJjb2x1bW4iLCImOjpiZWZvcmUsICY6OmFmdGVyIjp7cmlnaHQ6e19za2lwX2NoZWNrXzohMCx2YWx1ZTowfSxsZWZ0Ontfc2tpcF9jaGVja186ITAsdmFsdWU6MH0saGVpZ2h0OmUuY29udHJvbEhlaWdodH0sIiY6OmJlZm9yZSI6e3RvcDowLGJveFNoYWRvdzplLmJveFNoYWRvd1RhYnNPdmVyZmxvd1RvcH0sIiY6OmFmdGVyIjp7Ym90dG9tOjAsYm94U2hhZG93OmUuYm94U2hhZG93VGFic092ZXJmbG93Qm90dG9tfSxbYCYke3R9LW5hdi13cmFwLXBpbmctdG9wOjpiZWZvcmVgXTp7b3BhY2l0eToxfSxbYCYke3R9LW5hdi13cmFwLXBpbmctYm90dG9tOjphZnRlcmBdOntvcGFjaXR5OjF9fSxbYCR7dH0taW5rLWJhcmBdOnt3aWR0aDplLmxpbmVXaWR0aEJvbGQsIiYtYW5pbWF0ZWQiOnt0cmFuc2l0aW9uOmBoZWlnaHQgJHtlLm1vdGlvbkR1cmF0aW9uU2xvd30sIHRvcCAke2UubW90aW9uRHVyYXRpb25TbG93fWB9fSxbYCR7dH0tbmF2LWxpc3QsICR7dH0tbmF2LW9wZXJhdGlvbnNgXTp7ZmxleDoiMSAwIGF1dG8iLGZsZXhEaXJlY3Rpb246ImNvbHVtbiJ9fX0sW2Ake3R9LWxlZnRgXTp7W2A+ICR7dH0tbmF2LCA+IGRpdiA+ICR7dH0tbmF2YF06e1tgJHt0fS1pbmstYmFyYF06e3JpZ2h0Ontfc2tpcF9jaGVja186ITAsdmFsdWU6MH19fSxbYD4gJHt0fS1jb250ZW50LWhvbGRlciwgPiBkaXYgPiAke3R9LWNvbnRlbnQtaG9sZGVyYF06e21hcmdpbkxlZnQ6e19za2lwX2NoZWNrXzohMCx2YWx1ZTooMCxTLmJmKShvKGUubGluZVdpZHRoKS5tdWwoLTEpLmVxdWFsKCkpfSxib3JkZXJMZWZ0Ontfc2tpcF9jaGVja186ITAsdmFsdWU6YCR7KDAsUy5iZikoZS5saW5lV2lkdGgpfSAke2UubGluZVR5cGV9ICR7ZS5jb2xvckJvcmRlcn1gfSxbYD4gJHt0fS1jb250ZW50ID4gJHt0fS10YWJwYW5lYF06e3BhZGRpbmdMZWZ0Ontfc2tpcF9jaGVja186ITAsdmFsdWU6ZS5wYWRkaW5nTEd9fX19LFtgJHt0fS1yaWdodGBdOntbYD4gJHt0fS1uYXYsID4gZGl2ID4gJHt0fS1uYXZgXTp7b3JkZXI6MSxbYCR7dH0taW5rLWJhcmBdOntsZWZ0Ontfc2tpcF9jaGVja186ITAsdmFsdWU6MH19fSxbYD4gJHt0fS1jb250ZW50LWhvbGRlciwgPiBkaXYgPiAke3R9LWNvbnRlbnQtaG9sZGVyYF06e29yZGVyOjAsbWFyZ2luUmlnaHQ6e19za2lwX2NoZWNrXzohMCx2YWx1ZTpvKGUubGluZVdpZHRoKS5tdWwoLTEpLmVxdWFsKCl9LGJvcmRlclJpZ2h0Ontfc2tpcF9jaGVja186ITAsdmFsdWU6YCR7KDAsUy5iZikoZS5saW5lV2lkdGgpfSAke2UubGluZVR5cGV9ICR7ZS5jb2xvckJvcmRlcn1gfSxbYD4gJHt0fS1jb250ZW50ID4gJHt0fS10YWJwYW5lYF06e3BhZGRpbmdSaWdodDp7X3NraXBfY2hlY2tfOiEwLHZhbHVlOmUucGFkZGluZ0xHfX19fX19LE1hPWU9Pntjb25zdHtjb21wb25lbnRDbHM6dCxjYXJkUGFkZGluZ1NNOm4sY2FyZFBhZGRpbmdMRzpyLGhvcml6b250YWxJdGVtUGFkZGluZ1NNOmksaG9yaXpvbnRhbEl0ZW1QYWRkaW5nTEc6bH09ZTtyZXR1cm57W3RdOnsiJi1zbWFsbCI6e1tgPiAke3R9LW5hdmBdOntbYCR7dH0tdGFiYF06e3BhZGRpbmc6aSxmb250U2l6ZTplLnRpdGxlRm9udFNpemVTTX19fSwiJi1sYXJnZSI6e1tgPiAke3R9LW5hdmBdOntbYCR7dH0tdGFiYF06e3BhZGRpbmc6bCxmb250U2l6ZTplLnRpdGxlRm9udFNpemVMR319fX0sW2Ake3R9LWNhcmRgXTp7W2AmJHt0fS1zbWFsbGBdOntbYD4gJHt0fS1uYXZgXTp7W2Ake3R9LXRhYmBdOntwYWRkaW5nOm59fSxbYCYke3R9LWJvdHRvbWBdOntbYD4gJHt0fS1uYXYgJHt0fS10YWJgXTp7Ym9yZGVyUmFkaXVzOmAwIDAgJHsoMCxTLmJmKShlLmJvcmRlclJhZGl1cyl9ICR7KDAsUy5iZikoZS5ib3JkZXJSYWRpdXMpfWB9fSxbYCYke3R9LXRvcGBdOntbYD4gJHt0fS1uYXYgJHt0fS10YWJgXTp7Ym9yZGVyUmFkaXVzOmAkeygwLFMuYmYpKGUuYm9yZGVyUmFkaXVzKX0gJHsoMCxTLmJmKShlLmJvcmRlclJhZGl1cyl9IDAgMGB9fSxbYCYke3R9LXJpZ2h0YF06e1tgPiAke3R9LW5hdiAke3R9LXRhYmBdOntib3JkZXJSYWRpdXM6e19za2lwX2NoZWNrXzohMCx2YWx1ZTpgMCAkeygwLFMuYmYpKGUuYm9yZGVyUmFkaXVzKX0gJHsoMCxTLmJmKShlLmJvcmRlclJhZGl1cyl9IDBgfX19LFtgJiR7dH0tbGVmdGBdOntbYD4gJHt0fS1uYXYgJHt0fS10YWJgXTp7Ym9yZGVyUmFkaXVzOntfc2tpcF9jaGVja186ITAsdmFsdWU6YCR7KDAsUy5iZikoZS5ib3JkZXJSYWRpdXMpfSAwIDAgJHsoMCxTLmJmKShlLmJvcmRlclJhZGl1cyl9YH19fX0sW2AmJHt0fS1sYXJnZWBdOntbYD4gJHt0fS1uYXZgXTp7W2Ake3R9LXRhYmBdOntwYWRkaW5nOnJ9fX19fX0sTmE9ZT0+e2NvbnN0e2NvbXBvbmVudENsczp0LGl0ZW1BY3RpdmVDb2xvcjpuLGl0ZW1Ib3ZlckNvbG9yOnIsaWNvbkNsczppLHRhYnNIb3Jpem9udGFsSXRlbU1hcmdpbjpsLGhvcml6b250YWxJdGVtUGFkZGluZzpjLGl0ZW1TZWxlY3RlZENvbG9yOm8saXRlbUNvbG9yOmR9PWUscz1gJHt0fS10YWJgO3JldHVybntbc106e3Bvc2l0aW9uOiJyZWxhdGl2ZSIsV2Via2l0VG91Y2hDYWxsb3V0OiJub25lIixXZWJraXRUYXBIaWdobGlnaHRDb2xvcjoidHJhbnNwYXJlbnQiLGRpc3BsYXk6ImlubGluZS1mbGV4IixhbGlnbkl0ZW1zOiJjZW50ZXIiLHBhZGRpbmc6Yyxmb250U2l6ZTplLnRpdGxlRm9udFNpemUsYmFja2dyb3VuZDoidHJhbnNwYXJlbnQiLGJvcmRlcjowLG91dGxpbmU6Im5vbmUiLGN1cnNvcjoicG9pbnRlciIsY29sb3I6ZCwiJi1idG4sICYtcmVtb3ZlIjp7IiY6Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKSwgJjphY3RpdmUiOntjb2xvcjpufX0sIiYtYnRuIjp7b3V0bGluZToibm9uZSIsdHJhbnNpdGlvbjpgYWxsICR7ZS5tb3Rpb25EdXJhdGlvblNsb3d9YCxbYCR7c30taWNvbjpub3QoOmxhc3QtY2hpbGQpYF06e21hcmdpbklubGluZUVuZDplLm1hcmdpblNNfX0sIiYtcmVtb3ZlIjpPYmplY3QuYXNzaWduKHtmbGV4OiJub25lIixtYXJnaW5SaWdodDp7X3NraXBfY2hlY2tfOiEwLHZhbHVlOmUuY2FsYyhlLm1hcmdpblhYUykubXVsKC0xKS5lcXVhbCgpfSxtYXJnaW5MZWZ0Ontfc2tpcF9jaGVja186ITAsdmFsdWU6ZS5tYXJnaW5YU30sY29sb3I6ZS5jb2xvclRleHREZXNjcmlwdGlvbixmb250U2l6ZTplLmZvbnRTaXplU00sYmFja2dyb3VuZDoidHJhbnNwYXJlbnQiLGJvcmRlcjoibm9uZSIsb3V0bGluZToibm9uZSIsY3Vyc29yOiJwb2ludGVyIix0cmFuc2l0aW9uOmBhbGwgJHtlLm1vdGlvbkR1cmF0aW9uU2xvd31gLCImOmhvdmVyIjp7Y29sb3I6ZS5jb2xvclRleHRIZWFkaW5nfX0sKDAsdWUuUXkpKGUpKSwiJjpob3ZlciI6e2NvbG9yOnJ9LFtgJiR7c30tYWN0aXZlICR7c30tYnRuYF06e2NvbG9yOm8sdGV4dFNoYWRvdzplLnRhYnNBY3RpdmVUZXh0U2hhZG93fSxbYCYke3N9LWZvY3VzICR7c30tYnRuYF06T2JqZWN0LmFzc2lnbih7fSwoMCx1ZS5vTikoZSkpLFtgJiR7c30tZGlzYWJsZWRgXTp7Y29sb3I6ZS5jb2xvclRleHREaXNhYmxlZCxjdXJzb3I6Im5vdC1hbGxvd2VkIn0sW2AmJHtzfS1kaXNhYmxlZCAke3N9LWJ0biwgJiR7c30tZGlzYWJsZWQgJHt0fS1yZW1vdmVgXTp7IiY6Zm9jdXMsICY6YWN0aXZlIjp7Y29sb3I6ZS5jb2xvclRleHREaXNhYmxlZH19LFtgJiAke3N9LXJlbW92ZSAke2l9YF06e21hcmdpbjowfSxbYCR7aX06bm90KDpsYXN0LWNoaWxkKWBdOnttYXJnaW5SaWdodDp7X3NraXBfY2hlY2tfOiEwLHZhbHVlOmUubWFyZ2luU019fX0sW2Ake3N9ICsgJHtzfWBdOnttYXJnaW46e19za2lwX2NoZWNrXzohMCx2YWx1ZTpsfX19fSx6YT1lPT57Y29uc3R7Y29tcG9uZW50Q2xzOnQsdGFic0hvcml6b250YWxJdGVtTWFyZ2luUlRMOm4saWNvbkNsczpyLGNhcmRHdXR0ZXI6aSxjYWxjOmx9PWU7cmV0dXJue1tgJHt0fS1ydGxgXTp7ZGlyZWN0aW9uOiJydGwiLFtgJHt0fS1uYXZgXTp7W2Ake3R9LXRhYmBdOnttYXJnaW46e19za2lwX2NoZWNrXzohMCx2YWx1ZTpufSxbYCR7dH0tdGFiOmxhc3Qtb2YtdHlwZWBdOnttYXJnaW5MZWZ0Ontfc2tpcF9jaGVja186ITAsdmFsdWU6MH19LFtyXTp7bWFyZ2luUmlnaHQ6e19za2lwX2NoZWNrXzohMCx2YWx1ZTowfSxtYXJnaW5MZWZ0Ontfc2tpcF9jaGVja186ITAsdmFsdWU6KDAsUy5iZikoZS5tYXJnaW5TTSl9fSxbYCR7dH0tdGFiLXJlbW92ZWBdOnttYXJnaW5SaWdodDp7X3NraXBfY2hlY2tfOiEwLHZhbHVlOigwLFMuYmYpKGUubWFyZ2luWFMpfSxtYXJnaW5MZWZ0Ontfc2tpcF9jaGVja186ITAsdmFsdWU6KDAsUy5iZikobChlLm1hcmdpblhYUykubXVsKC0xKS5lcXVhbCgpKX0sW3JdOnttYXJnaW46MH19fX0sW2AmJHt0fS1sZWZ0YF06e1tgPiAke3R9LW5hdmBdOntvcmRlcjoxfSxbYD4gJHt0fS1jb250ZW50LWhvbGRlcmBdOntvcmRlcjowfX0sW2AmJHt0fS1yaWdodGBdOntbYD4gJHt0fS1uYXZgXTp7b3JkZXI6MH0sW2A+ICR7dH0tY29udGVudC1ob2xkZXJgXTp7b3JkZXI6MX19LFtgJiR7dH0tY2FyZCR7dH0tdG9wLCAmJHt0fS1jYXJkJHt0fS1ib3R0b21gXTp7W2A+ICR7dH0tbmF2LCA+IGRpdiA+ICR7dH0tbmF2YF06e1tgJHt0fS10YWIgKyAke3R9LXRhYmBdOnttYXJnaW5SaWdodDp7X3NraXBfY2hlY2tfOiEwLHZhbHVlOml9LG1hcmdpbkxlZnQ6e19za2lwX2NoZWNrXzohMCx2YWx1ZTowfX19fX0sW2Ake3R9LWRyb3Bkb3duLXJ0bGBdOntkaXJlY3Rpb246InJ0bCJ9LFtgJHt0fS1tZW51LWl0ZW1gXTp7W2Ake3R9LWRyb3Bkb3duLXJ0bGBdOnt0ZXh0QWxpZ246e19za2lwX2NoZWNrXzohMCx2YWx1ZToicmlnaHQifX19fX0sX2E9ZT0+e2NvbnN0e2NvbXBvbmVudENsczp0LHRhYnNDYXJkUGFkZGluZzpuLGNhcmRIZWlnaHQ6cixjYXJkR3V0dGVyOmksaXRlbUhvdmVyQ29sb3I6bCxpdGVtQWN0aXZlQ29sb3I6Yyxjb2xvckJvcmRlclNlY29uZGFyeTpvfT1lO3JldHVybntbdF06T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwoMCx1ZS5XZikoZSkpLHtkaXNwbGF5OiJmbGV4IixbYD4gJHt0fS1uYXYsID4gZGl2ID4gJHt0fS1uYXZgXTp7cG9zaXRpb246InJlbGF0aXZlIixkaXNwbGF5OiJmbGV4IixmbGV4OiJub25lIixhbGlnbkl0ZW1zOiJjZW50ZXIiLFtgJHt0fS1uYXYtd3JhcGBdOntwb3NpdGlvbjoicmVsYXRpdmUiLGRpc3BsYXk6ImZsZXgiLGZsZXg6ImF1dG8iLGFsaWduU2VsZjoic3RyZXRjaCIsb3ZlcmZsb3c6ImhpZGRlbiIsd2hpdGVTcGFjZToibm93cmFwIix0cmFuc2Zvcm06InRyYW5zbGF0ZSgwKSIsIiY6OmJlZm9yZSwgJjo6YWZ0ZXIiOntwb3NpdGlvbjoiYWJzb2x1dGUiLHpJbmRleDoxLG9wYWNpdHk6MCx0cmFuc2l0aW9uOmBvcGFjaXR5ICR7ZS5tb3Rpb25EdXJhdGlvblNsb3d9YCxjb250ZW50OiInJyIscG9pbnRlckV2ZW50czoibm9uZSJ9fSxbYCR7dH0tbmF2LWxpc3RgXTp7cG9zaXRpb246InJlbGF0aXZlIixkaXNwbGF5OiJmbGV4Iix0cmFuc2l0aW9uOmBvcGFjaXR5ICR7ZS5tb3Rpb25EdXJhdGlvblNsb3d9YH0sW2Ake3R9LW5hdi1vcGVyYXRpb25zYF06e2Rpc3BsYXk6ImZsZXgiLGFsaWduU2VsZjoic3RyZXRjaCJ9LFtgJHt0fS1uYXYtb3BlcmF0aW9ucy1oaWRkZW5gXTp7cG9zaXRpb246ImFic29sdXRlIix2aXNpYmlsaXR5OiJoaWRkZW4iLHBvaW50ZXJFdmVudHM6Im5vbmUifSxbYCR7dH0tbmF2LW1vcmVgXTp7cG9zaXRpb246InJlbGF0aXZlIixwYWRkaW5nOm4sYmFja2dyb3VuZDoidHJhbnNwYXJlbnQiLGJvcmRlcjowLGNvbG9yOmUuY29sb3JUZXh0LCImOjphZnRlciI6e3Bvc2l0aW9uOiJhYnNvbHV0ZSIscmlnaHQ6e19za2lwX2NoZWNrXzohMCx2YWx1ZTowfSxib3R0b206MCxsZWZ0Ontfc2tpcF9jaGVja186ITAsdmFsdWU6MH0saGVpZ2h0OmUuY2FsYyhlLmNvbnRyb2xIZWlnaHRMRykuZGl2KDgpLmVxdWFsKCksdHJhbnNmb3JtOiJ0cmFuc2xhdGVZKDEwMCUpIixjb250ZW50OiInJyJ9fSxbYCR7dH0tbmF2LWFkZGBdOk9iamVjdC5hc3NpZ24oe21pbldpZHRoOnIsbWFyZ2luTGVmdDp7X3NraXBfY2hlY2tfOiEwLHZhbHVlOml9LHBhZGRpbmc6KDAsUy5iZikoZS5wYWRkaW5nWFMpLGJhY2tncm91bmQ6InRyYW5zcGFyZW50Iixib3JkZXI6YCR7KDAsUy5iZikoZS5saW5lV2lkdGgpfSAke2UubGluZVR5cGV9ICR7b31gLGJvcmRlclJhZGl1czpgJHsoMCxTLmJmKShlLmJvcmRlclJhZGl1c0xHKX0gJHsoMCxTLmJmKShlLmJvcmRlclJhZGl1c0xHKX0gMCAwYCxvdXRsaW5lOiJub25lIixjdXJzb3I6InBvaW50ZXIiLGNvbG9yOmUuY29sb3JUZXh0LHRyYW5zaXRpb246YGFsbCAke2UubW90aW9uRHVyYXRpb25TbG93fSAke2UubW90aW9uRWFzZUluT3V0fWAsIiY6aG92ZXIiOntjb2xvcjpsfSwiJjphY3RpdmUsICY6Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKSI6e2NvbG9yOmN9fSwoMCx1ZS5ReSkoZSwtMykpfSxbYCR7dH0tZXh0cmEtY29udGVudGBdOntmbGV4OiJub25lIn0sW2Ake3R9LWluay1iYXJgXTp7cG9zaXRpb246ImFic29sdXRlIixiYWNrZ3JvdW5kOmUuaW5rQmFyQ29sb3IscG9pbnRlckV2ZW50czoibm9uZSJ9fSksTmEoZSkpLHtbYCR7dH0tY29udGVudGBdOntwb3NpdGlvbjoicmVsYXRpdmUiLHdpZHRoOiIxMDAlIn0sW2Ake3R9LWNvbnRlbnQtaG9sZGVyYF06e2ZsZXg6ImF1dG8iLG1pbldpZHRoOjAsbWluSGVpZ2h0OjB9LFtgJHt0fS10YWJwYW5lYF06T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCgwLHVlLlF5KShlKSkseyImLWhpZGRlbiI6e2Rpc3BsYXk6Im5vbmUifX0pfSksW2Ake3R9LWNlbnRlcmVkYF06e1tgPiAke3R9LW5hdiwgPiBkaXYgPiAke3R9LW5hdmBdOntbYCR7dH0tbmF2LXdyYXBgXTp7W2AmOm5vdChbY2xhc3MqPScke3R9LW5hdi13cmFwLXBpbmcnXSkgPiAke3R9LW5hdi1saXN0YF06e21hcmdpbjoiYXV0byJ9fX19fX0sRGE9ZT0+e2NvbnN0IHQ9ZS5jb250cm9sSGVpZ2h0TEc7cmV0dXJue3pJbmRleFBvcHVwOmUuekluZGV4UG9wdXBCYXNlKzUwLGNhcmRCZzplLmNvbG9yRmlsbEFsdGVyLGNhcmRIZWlnaHQ6dCxjYXJkUGFkZGluZzpgJHsodC1NYXRoLnJvdW5kKGUuZm9udFNpemUqZS5saW5lSGVpZ2h0KSkvMi1lLmxpbmVXaWR0aH1weCAke2UucGFkZGluZ31weGAsY2FyZFBhZGRpbmdTTTpgJHtlLnBhZGRpbmdYWFMqMS41fXB4ICR7ZS5wYWRkaW5nfXB4YCxjYXJkUGFkZGluZ0xHOmAke2UucGFkZGluZ1hTfXB4ICR7ZS5wYWRkaW5nfXB4ICR7ZS5wYWRkaW5nWFhTKjEuNX1weGAsdGl0bGVGb250U2l6ZTplLmZvbnRTaXplLHRpdGxlRm9udFNpemVMRzplLmZvbnRTaXplTEcsdGl0bGVGb250U2l6ZVNNOmUuZm9udFNpemUsaW5rQmFyQ29sb3I6ZS5jb2xvclByaW1hcnksaG9yaXpvbnRhbE1hcmdpbjpgMCAwICR7ZS5tYXJnaW59cHggMGAsaG9yaXpvbnRhbEl0ZW1HdXR0ZXI6MzIsaG9yaXpvbnRhbEl0ZW1NYXJnaW46IiIsaG9yaXpvbnRhbEl0ZW1NYXJnaW5SVEw6IiIsaG9yaXpvbnRhbEl0ZW1QYWRkaW5nOmAke2UucGFkZGluZ1NNfXB4IDBgLGhvcml6b250YWxJdGVtUGFkZGluZ1NNOmAke2UucGFkZGluZ1hTfXB4IDBgLGhvcml6b250YWxJdGVtUGFkZGluZ0xHOmAke2UucGFkZGluZ31weCAwYCx2ZXJ0aWNhbEl0ZW1QYWRkaW5nOmAke2UucGFkZGluZ1hTfXB4ICR7ZS5wYWRkaW5nTEd9cHhgLHZlcnRpY2FsSXRlbU1hcmdpbjpgJHtlLm1hcmdpbn1weCAwIDAgMGAsaXRlbUNvbG9yOmUuY29sb3JUZXh0LGl0ZW1TZWxlY3RlZENvbG9yOmUuY29sb3JQcmltYXJ5LGl0ZW1Ib3ZlckNvbG9yOmUuY29sb3JQcmltYXJ5SG92ZXIsaXRlbUFjdGl2ZUNvbG9yOmUuY29sb3JQcmltYXJ5QWN0aXZlLGNhcmRHdXR0ZXI6ZS5tYXJnaW5YWFMvMn19O3ZhciBCYT0oMCxFYS5JJCkoIlRhYnMiLGU9Pntjb25zdCB0PSgwLFJhLklYKShlLHt0YWJzQ2FyZFBhZGRpbmc6ZS5jYXJkUGFkZGluZyxkcm9wZG93bkVkZ2VDaGlsZFZlcnRpY2FsUGFkZGluZzplLnBhZGRpbmdYWFMsdGFic0FjdGl2ZVRleHRTaGFkb3c6IjAgMCAwLjI1cHggY3VycmVudGNvbG9yIix0YWJzRHJvcGRvd25IZWlnaHQ6MjAwLHRhYnNEcm9wZG93bldpZHRoOjEyMCx0YWJzSG9yaXpvbnRhbEl0ZW1NYXJnaW46YDAgMCAwICR7KDAsUy5iZikoZS5ob3Jpem9udGFsSXRlbUd1dHRlcil9YCx0YWJzSG9yaXpvbnRhbEl0ZW1NYXJnaW5SVEw6YDAgMCAwICR7KDAsUy5iZikoZS5ob3Jpem9udGFsSXRlbUd1dHRlcil9YH0pO3JldHVybltNYSh0KSx6YSh0KSxaYSh0KSxMYSh0KSxJYSh0KSxfYSh0KSx3YSh0KV19LERhKSxPYT0oKT0+bnVsbCxBYT1mdW5jdGlvbihlLHQpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHIpJiZ0LmluZGV4T2Yocik8MCYmKG5bcl09ZVtyXSk7aWYoZSE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBpPTAscj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2k8ci5sZW5ndGg7aSsrKXQuaW5kZXhPZihyW2ldKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxyW2ldKSYmKG5bcltpXV09ZVtyW2ldXSk7cmV0dXJuIG59O2NvbnN0IGZ0PWU9Pnt2YXIgdCxuLHIsaSxsLGMsbyxkLHMsbSxiO2NvbnN0e3R5cGU6QyxjbGFzc05hbWU6Wixyb290Q2xhc3NOYW1lOkIsc2l6ZTpQLG9uRWRpdDpfLGhpZGVBZGQ6JCxjZW50ZXJlZDpnLGFkZEljb246SSxyZW1vdmVJY29uOk8sbW9yZUljb246Vyxtb3JlOmoscG9wdXBDbGFzc05hbWU6RyxjaGlsZHJlbjp6LGl0ZW1zOlQsYW5pbWF0ZWQ6UixzdHlsZTpmLGluZGljYXRvclNpemU6eCxpbmRpY2F0b3I6aH09ZSx5PUFhKGUsWyJ0eXBlIiwiY2xhc3NOYW1lIiwicm9vdENsYXNzTmFtZSIsInNpemUiLCJvbkVkaXQiLCJoaWRlQWRkIiwiY2VudGVyZWQiLCJhZGRJY29uIiwicmVtb3ZlSWNvbiIsIm1vcmVJY29uIiwibW9yZSIsInBvcHVwQ2xhc3NOYW1lIiwiY2hpbGRyZW4iLCJpdGVtcyIsImFuaW1hdGVkIiwic3R5bGUiLCJpbmRpY2F0b3JTaXplIiwiaW5kaWNhdG9yIl0pLHtwcmVmaXhDbHM6S309eSx7ZGlyZWN0aW9uOlgsdGFiczp2LGdldFByZWZpeENsczpVLGdldFBvcHVwQ29udGFpbmVyOm9lfT1hLnVzZUNvbnRleHQoZ2EuRV8pLGs9VSgidGFicyIsSyksUT0oMCxoYS5aKShrKSxbZmUsRSxBXT1CYShrLFEpO2xldCBIO0M9PT0iZWRpdGFibGUtY2FyZCImJihIPXtvbkVkaXQ6KG1lLCRlKT0+e2xldHtrZXk6TSxldmVudDpsZX09JGU7Xz09bnVsbHx8XyhtZT09PSJhZGQiP2xlOk0sbWUpfSxyZW1vdmVJY29uOih0PU8hPW51bGw/Tzp2PT1udWxsP3ZvaWQgMDp2LnJlbW92ZUljb24pIT09bnVsbCYmdCE9PXZvaWQgMD90OmEuY3JlYXRlRWxlbWVudChadC5aLG51bGwpLGFkZEljb246KEkhPW51bGw/STp2PT1udWxsP3ZvaWQgMDp2LmFkZEljb24pfHxhLmNyZWF0ZUVsZW1lbnQoTnQuWixudWxsKSxzaG93QWRkOiQhPT0hMH0pO2NvbnN0IEY9VSgpLEo9KDAscGEuWikoUCksbmU9UGEoVCx6KSxlZT15YShrLFIpLHBlPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx2PT1udWxsP3ZvaWQgMDp2LnN0eWxlKSxmKSx2ZT17YWxpZ246KG49aD09bnVsbD92b2lkIDA6aC5hbGlnbikhPT1udWxsJiZuIT09dm9pZCAwP246KHI9dj09bnVsbD92b2lkIDA6di5pbmRpY2F0b3IpPT09bnVsbHx8cj09PXZvaWQgMD92b2lkIDA6ci5hbGlnbixzaXplOihvPShsPShpPWg9PW51bGw/dm9pZCAwOmguc2l6ZSkhPT1udWxsJiZpIT09dm9pZCAwP2k6eCkhPT1udWxsJiZsIT09dm9pZCAwP2w6KGM9dj09bnVsbD92b2lkIDA6di5pbmRpY2F0b3IpPT09bnVsbHx8Yz09PXZvaWQgMD92b2lkIDA6Yy5zaXplKSE9PW51bGwmJm8hPT12b2lkIDA/bzp2PT1udWxsP3ZvaWQgMDp2LmluZGljYXRvclNpemV9O3JldHVybiBmZShhLmNyZWF0ZUVsZW1lbnQobWEsT2JqZWN0LmFzc2lnbih7ZGlyZWN0aW9uOlgsZ2V0UG9wdXBDb250YWluZXI6b2V9LHkse2l0ZW1zOm5lLGNsYXNzTmFtZTpZKCkoe1tgJHtrfS0ke0p9YF06SixbYCR7a30tY2FyZGBdOlsiY2FyZCIsImVkaXRhYmxlLWNhcmQiXS5pbmNsdWRlcyhDKSxbYCR7a30tZWRpdGFibGUtY2FyZGBdOkM9PT0iZWRpdGFibGUtY2FyZCIsW2Ake2t9LWNlbnRlcmVkYF06Z30sdj09bnVsbD92b2lkIDA6di5jbGFzc05hbWUsWixCLEUsQSxRKSxwb3B1cENsYXNzTmFtZTpZKCkoRyxFLEEsUSksc3R5bGU6cGUsZWRpdGFibGU6SCxtb3JlOk9iamVjdC5hc3NpZ24oe2ljb246KGI9KG09KHM9KGQ9dj09bnVsbD92b2lkIDA6di5tb3JlKT09PW51bGx8fGQ9PT12b2lkIDA/dm9pZCAwOmQuaWNvbikhPT1udWxsJiZzIT09dm9pZCAwP3M6dj09bnVsbD92b2lkIDA6di5tb3JlSWNvbikhPT1udWxsJiZtIT09dm9pZCAwP206VykhPT1udWxsJiZiIT09dm9pZCAwP2I6YS5jcmVhdGVFbGVtZW50KE10LlosbnVsbCksdHJhbnNpdGlvbk5hbWU6YCR7Rn0tc2xpZGUtdXBgfSxqKSxwcmVmaXhDbHM6ayxhbmltYXRlZDplZSxpbmRpY2F0b3I6dmV9KSkpfTtmdC5UYWJQYW5lPU9hO3ZhciBXYT1mdH19XSk7CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzI0OTMuM2M3YzVmOTYuYXN5bmMuanMgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzI0OTMuM2M3YzVmOTYuYXN5bmMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTYwN2IwOQotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvMjQ5My4zYzdjNWY5Ni5hc3luYy5qcwpAQCAtMCwwICsxIEBACisidXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W10pLnB1c2goW1syNDkzXSx7MzExOTk6ZnVuY3Rpb24oeCxFLGUpe3ZhciBsPWUoMTQxMyksYT1lKDkxKSxGPWUoNjcyOTQpLHY9ZSg5MjE3OSksTT1lKDg1ODkzKSxEPVsiZmllbGRQcm9wcyIsIm1pbiIsInByb0ZpZWxkUHJvcHMiLCJtYXgiXSxPPWZ1bmN0aW9uKHQsZyl7dmFyIFQ9dC5maWVsZFByb3BzLGQ9dC5taW4sXz10LnByb0ZpZWxkUHJvcHMsaT10Lm1heCxvPSgwLGEuWikodCxEKTtyZXR1cm4oMCxNLmpzeCkodi5aLCgwLGwuWikoe3ZhbHVlVHlwZToiZGlnaXQiLGZpZWxkUHJvcHM6KDAsbC5aKSh7bWluOmQsbWF4Oml9LFQpLHJlZjpnLGZpbGVkQ29uZmlnOntkZWZhdWx0UHJvcHM6e3dpZHRoOiIxMDAlIn19LHByb0ZpZWxkUHJvcHM6X30sbykpfSxmPUYuZm9yd2FyZFJlZihPKTtFLlo9Zn0sODY2MTU6ZnVuY3Rpb24oeCxFLGUpe3ZhciBsPWUoMTQxMyksYT1lKDkxKSxGPWUoMjIyNzApLHY9ZSg3ODA0NSksTT1lKDY3Mjk0KSxEPWUoOTA3ODkpLE89ZSg5MjE3OSksZj1lKDg1ODkzKSxtPVsiZmllbGRQcm9wcyIsIm9wdGlvbnMiLCJyYWRpb1R5cGUiLCJsYXlvdXQiLCJwcm9GaWVsZFByb3BzIiwidmFsdWVFbnVtIl0sdD1NLmZvcndhcmRSZWYoZnVuY3Rpb24oXyxpKXt2YXIgbz1fLmZpZWxkUHJvcHMsQz1fLm9wdGlvbnMsYz1fLnJhZGlvVHlwZSxzPV8ubGF5b3V0LHI9Xy5wcm9GaWVsZFByb3BzLFA9Xy52YWx1ZUVudW0sbj0oMCxhLlopKF8sbSk7cmV0dXJuKDAsZi5qc3gpKE8uWiwoMCxsLlopKCgwLGwuWikoe3ZhbHVlVHlwZTpjPT09ImJ1dHRvbiI/InJhZGlvQnV0dG9uIjoicmFkaW8iLHJlZjppLHZhbHVlRW51bTooMCxGLmgpKFAsdm9pZCAwKX0sbikse30se2ZpZWxkUHJvcHM6KDAsbC5aKSh7b3B0aW9uczpDLGxheW91dDpzfSxvKSxwcm9GaWVsZFByb3BzOnIsZmlsZWRDb25maWc6e2N1c3RvbUxpZ2h0TW9kZTohMH19KSl9KSxnPU0uZm9yd2FyZFJlZihmdW5jdGlvbihfLGkpe3ZhciBvPV8uZmllbGRQcm9wcyxDPV8uY2hpbGRyZW47cmV0dXJuKDAsZi5qc3gpKHYuWlAsKDAsbC5aKSgoMCxsLlopKHt9LG8pLHt9LHtyZWY6aSxjaGlsZHJlbjpDfSkpfSksVD0oMCxELkcpKGcse3ZhbHVlUHJvcE5hbWU6ImNoZWNrZWQiLGlnbm9yZVdpZHRoOiEwfSksZD1UO2QuR3JvdXA9dCxkLkJ1dHRvbj12LlpQLkJ1dHRvbixkLmRpc3BsYXlOYW1lPSJQcm9Gb3JtQ29tcG9uZW50IixFLlo9ZH0sOTA2NzI6ZnVuY3Rpb24oeCxFLGUpe3ZhciBsPWUoMTQxMyksYT1lKDkxKSxGPWUoNjcyOTQpLHY9ZSg5MjE3OSksTT1lKDg1ODkzKSxEPVsiZmllbGRQcm9wcyIsInByb0ZpZWxkUHJvcHMiXSxPPWZ1bmN0aW9uKG0sdCl7dmFyIGc9bS5maWVsZFByb3BzLFQ9bS5wcm9GaWVsZFByb3BzLGQ9KDAsYS5aKShtLEQpO3JldHVybigwLE0uanN4KSh2LlosKDAsbC5aKSh7cmVmOnQsdmFsdWVUeXBlOiJ0ZXh0YXJlYSIsZmllbGRQcm9wczpnLHByb0ZpZWxkUHJvcHM6VH0sZCkpfTtFLlo9Ri5mb3J3YXJkUmVmKE8pfSw1OTY2OmZ1bmN0aW9uKHgsRSxlKXt2YXIgbD1lKDk3Njg1KSxhPWUoMTQxMyksRj1lKDkxKSx2PWUoMjE3NzApLE09ZSg5OTg1OSksRD1lKDU1MjQxKSxPPWUoOTg0MjMpLGY9ZSg2NzI5NCksbT1lKDkyMTc5KSx0PWUoODU4OTMpLGc9WyJmaWVsZFByb3BzIiwicHJvRmllbGRQcm9wcyJdLFQ9WyJmaWVsZFByb3BzIiwicHJvRmllbGRQcm9wcyJdLGQ9InRleHQiLF89ZnVuY3Rpb24ocyl7dmFyIHI9cy5maWVsZFByb3BzLFA9cy5wcm9GaWVsZFByb3BzLG49KDAsRi5aKShzLGcpO3JldHVybigwLHQuanN4KShtLlosKDAsYS5aKSh7dmFsdWVUeXBlOmQsZmllbGRQcm9wczpyLGZpbGVkQ29uZmlnOnt2YWx1ZVR5cGU6ZH0scHJvRmllbGRQcm9wczpQfSxuKSl9LGk9ZnVuY3Rpb24ocyl7dmFyIHI9KDAsdi5aKShzLm9wZW58fCExLHt2YWx1ZTpzLm9wZW4sb25DaGFuZ2U6cy5vbk9wZW5DaGFuZ2V9KSxQPSgwLGwuWikociwyKSxuPVBbMF0sQT1QWzFdO3JldHVybigwLHQuanN4KShNLlouSXRlbSx7c2hvdWxkVXBkYXRlOiEwLG5vU3R5bGU6ITAsY2hpbGRyZW46ZnVuY3Rpb24oUil7dmFyIGgsVz1SLmdldEZpZWxkVmFsdWUocy5uYW1lfHxbXSk7cmV0dXJuKDAsdC5qc3gpKEQuWiwoMCxhLlopKCgwLGEuWikoe2dldFBvcHVwQ29udGFpbmVyOmZ1bmN0aW9uKHUpe3JldHVybiB1JiZ1LnBhcmVudE5vZGU/dS5wYXJlbnROb2RlOnV9LG9uT3BlbkNoYW5nZTpmdW5jdGlvbih1KXtyZXR1cm4gQSh1KX0sY29udGVudDooMCx0LmpzeHMpKCJkaXYiLHtzdHlsZTp7cGFkZGluZzoiNHB4IDAifSxjaGlsZHJlbjpbKGg9cy5zdGF0dXNSZW5kZXIpPT09bnVsbHx8aD09PXZvaWQgMD92b2lkIDA6aC5jYWxsKHMsVykscy5zdHJlbmd0aFRleHQ/KDAsdC5qc3gpKCJkaXYiLHtzdHlsZTp7bWFyZ2luVG9wOjEwfSxjaGlsZHJlbjooMCx0LmpzeCkoInNwYW4iLHtjaGlsZHJlbjpzLnN0cmVuZ3RoVGV4dH0pfSk6bnVsbF19KSxvdmVybGF5U3R5bGU6e3dpZHRoOjI0MH0scGxhY2VtZW50OiJyaWdodFRvcCJ9LHMucG9wb3ZlclByb3BzKSx7fSx7b3BlbjpuLGNoaWxkcmVuOnMuY2hpbGRyZW59KSl9fSl9LG89ZnVuY3Rpb24ocyl7dmFyIHI9cy5maWVsZFByb3BzLFA9cy5wcm9GaWVsZFByb3BzLG49KDAsRi5aKShzLFQpLEE9KDAsZi51c2VTdGF0ZSkoITEpLHA9KDAsbC5aKShBLDIpLFI9cFswXSxoPXBbMV07cmV0dXJuIHIhPW51bGwmJnIuc3RhdHVzUmVuZGVyJiZuLm5hbWU/KDAsdC5qc3gpKGkse25hbWU6bi5uYW1lLHN0YXR1c1JlbmRlcjpyPT1udWxsP3ZvaWQgMDpyLnN0YXR1c1JlbmRlcixwb3BvdmVyUHJvcHM6cj09bnVsbD92b2lkIDA6ci5wb3BvdmVyUHJvcHMsc3RyZW5ndGhUZXh0OnI9PW51bGw/dm9pZCAwOnIuc3RyZW5ndGhUZXh0LG9wZW46Uixvbk9wZW5DaGFuZ2U6aCxjaGlsZHJlbjooMCx0LmpzeCkoImRpdiIse2NoaWxkcmVuOigwLHQuanN4KShtLlosKDAsYS5aKSh7dmFsdWVUeXBlOiJwYXNzd29yZCIsZmllbGRQcm9wczooMCxhLlopKCgwLGEuWikoe30sKDAsTy5aKShyLFsic3RhdHVzUmVuZGVyIiwicG9wb3ZlclByb3BzIiwic3RyZW5ndGhUZXh0Il0pKSx7fSx7b25CbHVyOmZ1bmN0aW9uKEIpe3ZhciB1O3I9PW51bGx8fCh1PXIub25CbHVyKT09PW51bGx8fHU9PT12b2lkIDB8fHUuY2FsbChyLEIpLGgoITEpfSxvbkNsaWNrOmZ1bmN0aW9uKEIpe3ZhciB1O3I9PW51bGx8fCh1PXIub25DbGljayk9PT1udWxsfHx1PT09dm9pZCAwfHx1LmNhbGwocixCKSxoKCEwKX19KSxwcm9GaWVsZFByb3BzOlAsZmlsZWRDb25maWc6e3ZhbHVlVHlwZTpkfX0sbikpfSl9KTooMCx0LmpzeCkobS5aLCgwLGEuWikoe3ZhbHVlVHlwZToicGFzc3dvcmQiLGZpZWxkUHJvcHM6cixwcm9GaWVsZFByb3BzOlAsZmlsZWRDb25maWc6e3ZhbHVlVHlwZTpkfX0sbikpfSxDPV87Qy5QYXNzd29yZD1vLEMuZGlzcGxheU5hbWU9IlByb0Zvcm1Db21wb25lbnQiLEUuWj1DfSwyNDkzOmZ1bmN0aW9uKHgsRSxlKXtlLnIoRSk7dmFyIGw9ZSgxNTAwOSksYT1lLm4obCksRj1lKDk5Mjg5KSx2PWUubihGKSxNPWUoNTU3NCksRD1lLm4oTSksTz1lKDY3Mjk0KSxmPWUoOTcyNjkpLG09ZSgzMTE5OSksdD1lKDU5NjYpLGc9ZSg4NjYxNSksVD1lKDkwNjcyKSxkPWUoOTk4NTkpLF89ZSgxNzc4OCksaT1lKDc2NzcyKSxvPWUoODU4OTMpLEM9ZnVuY3Rpb24ocyl7dmFyIHI9ZC5aLnVzZUZvcm0oKSxQPUQoKShyLDEpLG49UFswXSxBPXMuc3RhdHVzT3B0aW9uczsoMCxPLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtuLnJlc2V0RmllbGRzKCksbi5zZXRGaWVsZHNWYWx1ZSh7cG9zdElkOnMudmFsdWVzLnBvc3RJZCxwb3N0Q29kZTpzLnZhbHVlcy5wb3N0Q29kZSxwb3N0TmFtZTpzLnZhbHVlcy5wb3N0TmFtZSxwb3N0U29ydDpzLnZhbHVlcy5wb3N0U29ydCxzdGF0dXM6cy52YWx1ZXMuc3RhdHVzLGNyZWF0ZUJ5OnMudmFsdWVzLmNyZWF0ZUJ5LGNyZWF0ZVRpbWU6cy52YWx1ZXMuY3JlYXRlVGltZSx1cGRhdGVCeTpzLnZhbHVlcy51cGRhdGVCeSx1cGRhdGVUaW1lOnMudmFsdWVzLnVwZGF0ZVRpbWUscmVtYXJrOnMudmFsdWVzLnJlbWFya30pfSxbbixzXSk7dmFyIHA9KDAsaS51c2VJbnRsKSgpLFI9ZnVuY3Rpb24oKXtuLnN1Ym1pdCgpfSxoPWZ1bmN0aW9uKCl7cy5vbkNhbmNlbCgpfSxXPWZ1bmN0aW9uKCl7dmFyIEI9digpKGEoKSgpLm1hcmsoZnVuY3Rpb24gdShJKXtyZXR1cm4gYSgpKCkud3JhcChmdW5jdGlvbihqKXtmb3IoOzspc3dpdGNoKGoucHJldj1qLm5leHQpe2Nhc2UgMDpzLm9uU3VibWl0KEkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGouc3RvcCgpfX0sdSl9KSk7cmV0dXJuIGZ1bmN0aW9uKEkpe3JldHVybiBCLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCk7cmV0dXJuKDAsby5qc3gpKF8uWix7d2lkdGg6NjQwLHRpdGxlOnAuZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5wb3N0LnRpdGxlIixkZWZhdWx0TWVzc2FnZToiXHU3RjE2XHU4RjkxXHU1Qzk3XHU0RjREXHU0RkUxXHU2MDZGIn0pLG9wZW46cy5vcGVuLGZvcmNlUmVuZGVyOiEwLGRlc3Ryb3lPbkNsb3NlOiEwLG9uT2s6UixvbkNhbmNlbDpoLGNoaWxkcmVuOigwLG8uanN4cykoZi5BLHtmb3JtOm4sZ3JpZDohMCxzdWJtaXR0ZXI6ITEsbGF5b3V0OiJob3Jpem9udGFsIixvbkZpbmlzaDpXLGNoaWxkcmVuOlsoMCxvLmpzeCkobS5aLHtuYW1lOiJwb3N0SWQiLGxhYmVsOnAuZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5wb3N0LnBvc3RfaWQiLGRlZmF1bHRNZXNzYWdlOiJcdTVDOTdcdTRGNERcdTdGMTZcdTUzRjcifSkscGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NUM5N1x1NEY0RFx1N0YxNlx1NTNGNyIsZGlzYWJsZWQ6ITAsaGlkZGVuOiEwLHJ1bGVzOlt7cmVxdWlyZWQ6ITEsbWVzc2FnZTooMCxvLmpzeCkoaS5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU1Qzk3XHU0RjREXHU3RjE2XHU1M0Y3XHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU1Qzk3XHU0RjREXHU3RjE2XHU1M0Y3XHVGRjAxIn0pfV19KSwoMCxvLmpzeCkodC5aLHtuYW1lOiJwb3N0TmFtZSIsbGFiZWw6cC5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLnBvc3QucG9zdF9uYW1lIixkZWZhdWx0TWVzc2FnZToiXHU1Qzk3XHU0RjREXHU1NDBEXHU3OUYwIn0pLHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdTVDOTdcdTRGNERcdTU0MERcdTc5RjAiLHJ1bGVzOlt7cmVxdWlyZWQ6ITAsbWVzc2FnZTooMCxvLmpzeCkoaS5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU1Qzk3XHU0RjREXHU1NDBEXHU3OUYwXHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU1Qzk3XHU0RjREXHU1NDBEXHU3OUYwXHVGRjAxIn0pfV19KSwoMCxvLmpzeCkodC5aLHtuYW1lOiJwb3N0Q29kZSIsbGFiZWw6cC5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLnBvc3QucG9zdF9jb2RlIixkZWZhdWx0TWVzc2FnZToiXHU1Qzk3XHU0RjREXHU3RjE2XHU3ODAxIn0pLHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdTVDOTdcdTRGNERcdTdGMTZcdTc4MDEiLHJ1bGVzOlt7cmVxdWlyZWQ6ITAsbWVzc2FnZTooMCxvLmpzeCkoaS5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU1Qzk3XHU0RjREXHU3RjE2XHU3ODAxXHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU1Qzk3XHU0RjREXHU3RjE2XHU3ODAxXHVGRjAxIn0pfV19KSwoMCxvLmpzeCkobS5aLHtuYW1lOiJwb3N0U29ydCIsbGFiZWw6cC5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLnBvc3QucG9zdF9zb3J0IixkZWZhdWx0TWVzc2FnZToiXHU2NjNFXHU3OTNBXHU5ODdBXHU1RThGIn0pLHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdTY2M0VcdTc5M0FcdTk4N0FcdTVFOEYiLHJ1bGVzOlt7cmVxdWlyZWQ6ITAsbWVzc2FnZTooMCxvLmpzeCkoaS5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU2NjNFXHU3OTNBXHU5ODdBXHU1RThGXHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU2NjNFXHU3OTNBXHU5ODdBXHU1RThGXHVGRjAxIn0pfV19KSwoMCxvLmpzeCkoZy5aLkdyb3VwLHt2YWx1ZUVudW06QSxuYW1lOiJzdGF0dXMiLGxhYmVsOnAuZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5wb3N0LnN0YXR1cyIsZGVmYXVsdE1lc3NhZ2U6Ilx1NzJCNlx1NjAwMSJ9KSxwbGFjZWhvbGRlcjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU3MkI2XHU2MDAxIixydWxlczpbe3JlcXVpcmVkOiEwLG1lc3NhZ2U6KDAsby5qc3gpKGkuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NzJCNlx1NjAwMVx1RkYwMSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NzJCNlx1NjAwMVx1RkYwMSJ9KX1dfSksKDAsby5qc3gpKFQuWix7bmFtZToicmVtYXJrIixsYWJlbDpwLmZvcm1hdE1lc3NhZ2Uoe2lkOiJzeXN0ZW0ucG9zdC5yZW1hcmsiLGRlZmF1bHRNZXNzYWdlOiJcdTU5MDdcdTZDRTgifSkscGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NTkwN1x1NkNFOCIscnVsZXM6W3tyZXF1aXJlZDohMSxtZXNzYWdlOigwLG8uanN4KShpLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTU5MDdcdTZDRThcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTU5MDdcdTZDRThcdUZGMDEifSl9XX0pXX0pfSl9O0UuZGVmYXVsdD1DfX1dKTsKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvMjUzMS40ZTRmMTU4ZC5hc3luYy5qcyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvMjUzMS40ZTRmMTU4ZC5hc3luYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45N2NiYmE0Ci0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy8yNTMxLjRlNGYxNThkLmFzeW5jLmpzCkBAIC0wLDAgKzEgQEAKKyJ1c2Ugc3RyaWN0Ijsoc2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Bybz1zZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvfHxbXSkucHVzaChbWzI1MzFdLHsxMjUzMTpmdW5jdGlvbihBLHksYSl7YS5yKHkpLGEuZCh5LHthZGREYXRhOmZ1bmN0aW9uKCl7cmV0dXJuIGN9LGJhdGNoR2VuQ29kZTpmdW5jdGlvbigpe3JldHVybiBHfSxnZW5Db2RlOmZ1bmN0aW9uKCl7cmV0dXJuIEl9LGdldEdlbkNvZGU6ZnVuY3Rpb24oKXtyZXR1cm4gan0sZ2V0R2VuQ29kZUxpc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gd30saW1wb3J0VGFibGVzOmZ1bmN0aW9uKCl7cmV0dXJuIHB9LHByZXZpZXdDb2RlOmZ1bmN0aW9uKCl7cmV0dXJuIEJ9LHF1ZXJ5VGFibGVMaXN0OmZ1bmN0aW9uKCl7cmV0dXJuIE19LHJlbW92ZURhdGE6ZnVuY3Rpb24oKXtyZXR1cm4gVH0sc3luY0RiSW5mbzpmdW5jdGlvbigpe3JldHVybiBXfSx1cGRhdGVEYXRhOmZ1bmN0aW9uKCl7cmV0dXJuIGx9fSk7dmFyIEU9YSg5Nzg1NyksZz1hLm4oRSksdj1hKDE1MDA5KSxyPWEubih2KSxQPWEoOTkyODkpLG89YS5uKFApLF89YSg3Njc3MiksQz1hKDMwOTY0KTtmdW5jdGlvbiB3KG4pe3JldHVybiBmLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBmKCl7cmV0dXJuIGY9bygpKHIoKSgpLm1hcmsoZnVuY3Rpb24gbih0KXt2YXIgcztyZXR1cm4gcigpKCkud3JhcChmdW5jdGlvbihkKXtmb3IoOzspc3dpdGNoKGQucHJldj1kLm5leHQpe2Nhc2UgMDpyZXR1cm4gcz1uZXcgVVJMU2VhcmNoUGFyYW1zKHQpLnRvU3RyaW5nKCksZC5hYnJ1cHQoInJldHVybiIsKDAsXy5yZXF1ZXN0KSgiL2FwaS9jb2RlL2dlbi9saXN0PyIuY29uY2F0KHMpLHtkYXRhOnQsbWV0aG9kOiJnZXQiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgifX0pKTtjYXNlIDI6Y2FzZSJlbmQiOnJldHVybiBkLnN0b3AoKX19LG4pfSkpLGYuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGoobil7cmV0dXJuIGguYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGgoKXtyZXR1cm4gaD1vKCkocigpKCkubWFyayhmdW5jdGlvbiBuKHQpe3JldHVybiByKCkoKS53cmFwKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOnJldHVybiBlLmFicnVwdCgicmV0dXJuIiwoMCxfLnJlcXVlc3QpKCIvYXBpL2NvZGUvZ2VuLyIuY29uY2F0KHQpLHttZXRob2Q6ImdldCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCJ9fSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0sbil9KSksaC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gTShuKXtyZXR1cm4gaS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gaSgpe3JldHVybiBpPW8oKShyKCkoKS5tYXJrKGZ1bmN0aW9uIG4odCl7dmFyIHM7cmV0dXJuIHIoKSgpLndyYXAoZnVuY3Rpb24oZCl7Zm9yKDs7KXN3aXRjaChkLnByZXY9ZC5uZXh0KXtjYXNlIDA6cmV0dXJuIHM9bmV3IFVSTFNlYXJjaFBhcmFtcyh0KS50b1N0cmluZygpLGQuYWJydXB0KCJyZXR1cm4iLCgwLF8ucmVxdWVzdCkoIi9hcGkvY29kZS9nZW4vZGIvbGlzdD8iLmNvbmNhdChzKSx7ZGF0YTp0LG1ldGhvZDoiZ2V0IixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In19KSk7Y2FzZSAyOmNhc2UiZW5kIjpyZXR1cm4gZC5zdG9wKCl9fSxuKX0pKSxpLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBwKG4pe3JldHVybiB1LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiB1KCl7cmV0dXJuIHU9bygpKHIoKSgpLm1hcmsoZnVuY3Rpb24gbih0KXtyZXR1cm4gcigpKCkud3JhcChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsKDAsXy5yZXF1ZXN0KSgiL2FwaS9jb2RlL2dlbi9pbXBvcnRUYWJsZT90YWJsZXM9Ii5jb25jYXQodCkse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCJ9fSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0sbil9KSksdS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gVChuKXtyZXR1cm4gYi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gYigpe3JldHVybiBiPW8oKShyKCkoKS5tYXJrKGZ1bmN0aW9uIG4odCl7cmV0dXJuIHIoKSgpLndyYXAoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLCgwLF8ucmVxdWVzdCkoIi9hcGkvY29kZS9nZW4vIi5jb25jYXQodC5pZHMpLHttZXRob2Q6ImRlbGV0ZSIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCJ9fSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0sbil9KSksYi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gYyhuKXtyZXR1cm4gbS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gbSgpe3JldHVybiBtPW8oKShyKCkoKS5tYXJrKGZ1bmN0aW9uIG4odCl7cmV0dXJuIHIoKSgpLndyYXAoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLCgwLF8ucmVxdWVzdCkoIi9hcGkvY29kZS9nZW4iLHttZXRob2Q6IlBPU1QiLGRhdGE6ZygpKHt9LHQpfSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0sbil9KSksbS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gbChuKXtyZXR1cm4gRC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gRCgpe3JldHVybiBEPW8oKShyKCkoKS5tYXJrKGZ1bmN0aW9uIG4odCl7cmV0dXJuIHIoKSgpLndyYXAoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLCgwLF8ucmVxdWVzdCkoIi9hcGkvY29kZS9nZW4iLHttZXRob2Q6IlBVVCIsZGF0YTpnKCkoe30sdCl9KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSxuKX0pKSxELmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBXKG4pe3JldHVybiBPLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBPKCl7cmV0dXJuIE89bygpKHIoKSgpLm1hcmsoZnVuY3Rpb24gbih0KXtyZXR1cm4gcigpKCkud3JhcChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsKDAsXy5yZXF1ZXN0KSgiL2FwaS9jb2RlL2dlbi9zeW5jaERiLyIuY29uY2F0KHQpLHttZXRob2Q6IkdFVCJ9KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSxuKX0pKSxPLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBJKG4pe3JldHVybiBMLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBMKCl7cmV0dXJuIEw9bygpKHIoKSgpLm1hcmsoZnVuY3Rpb24gbih0KXtyZXR1cm4gcigpKCkud3JhcChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsKDAsXy5yZXF1ZXN0KSgiL2FwaS9jb2RlL2dlbi9nZW5Db2RlLyIuY29uY2F0KHQpLHttZXRob2Q6IkdFVCJ9KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSxuKX0pKSxMLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBHKG4pe3JldHVybiBVLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBVKCl7cmV0dXJuIFU9bygpKHIoKSgpLm1hcmsoZnVuY3Rpb24gbih0KXtyZXR1cm4gcigpKCkud3JhcChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsKDAsQy5wNikoIi9hcGkvY29kZS9nZW4vYmF0Y2hHZW5Db2RlP3RhYmxlcz0iLmNvbmNhdCh0KSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0sbil9KSksVS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gQihuKXtyZXR1cm4gUi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gUigpe3JldHVybiBSPW8oKShyKCkoKS5tYXJrKGZ1bmN0aW9uIG4odCl7cmV0dXJuIHIoKSgpLndyYXAoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLCgwLF8ucmVxdWVzdCkoIi9hcGkvY29kZS9nZW4vcHJldmlldy8iLmNvbmNhdCh0KSx7bWV0aG9kOiJHRVQiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgifX0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19LG4pfSkpLFIuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0sMzA5NjQ6ZnVuY3Rpb24oQSx5LGEpe2EuZCh5LHtwNjpmdW5jdGlvbigpe3JldHVybiBmfSxzdTpmdW5jdGlvbigpe3JldHVybiBqfX0pO3ZhciBFPWEoMTUwMDkpLGc9YS5uKEUpLHY9YSg5Nzg1Nykscj1hLm4odiksUD1hKDk5Mjg5KSxvPWEubihQKSxfPWEoNzY3NzIpLEM9e3hsc3g6ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0Iix6aXA6ImFwcGxpY2F0aW9uL3ppcCJ9O2Z1bmN0aW9uIHcoaSxwKXt2YXIgdT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIiksVD1uZXcgQmxvYihbaS5kYXRhXSx7dHlwZTpwfSksYj1uZXcgUmVnRXhwKCJmaWxlbmFtZT0oW147XStcXC5bXlxcLjtdKyk7KiIpLGM9ZGVjb2RlVVJJKGkuaGVhZGVyc1siY29udGVudC1kaXNwb3NpdGlvbiJdKSxtPWIuZXhlYyhjKSxsPW0/bVsxXToiZmlsZSI7bD1sLnJlcGxhY2UoLyIvZywiIiksdS5zdHlsZS5kaXNwbGF5PSJub25lIix1LmhyZWY9VVJMLmNyZWF0ZU9iamVjdFVSTChUKSx1LnNldEF0dHJpYnV0ZSgiZG93bmxvYWQiLGwpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodSksdS5jbGljaygpLFVSTC5yZXZva2VPYmplY3RVUkwodS5ocmVmKSxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHUpfWZ1bmN0aW9uIGYoaSl7KDAsXy5yZXF1ZXN0KShpLHttZXRob2Q6IkdFVCIscmVzcG9uc2VUeXBlOiJibG9iIixnZXRSZXNwb25zZTohMH0pLnRoZW4oZnVuY3Rpb24ocCl7dyhwLEMuemlwKX0pfWZ1bmN0aW9uIGooaSxwLHUpe3JldHVybiBoLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBoKCl7cmV0dXJuIGg9bygpKGcoKSgpLm1hcmsoZnVuY3Rpb24gaShwLHUsVCl7cmV0dXJuIGcoKSgpLndyYXAoZnVuY3Rpb24oYyl7Zm9yKDs7KXN3aXRjaChjLnByZXY9Yy5uZXh0KXtjYXNlIDA6cmV0dXJuIGMuYWJydXB0KCJyZXR1cm4iLCgwLF8ucmVxdWVzdCkocCxyKCkocigpKHt9LHUpLHt9LHttZXRob2Q6IlBPU1QiLHJlc3BvbnNlVHlwZToiYmxvYiJ9KSkudGhlbihmdW5jdGlvbihtKXt2YXIgbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIiksRD1tO2wuc3R5bGUuZGlzcGxheT0ibm9uZSIsbC5ocmVmPVVSTC5jcmVhdGVPYmplY3RVUkwoRCksbC5zZXRBdHRyaWJ1dGUoImRvd25sb2FkIixUKSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGwpLGwuY2xpY2soKSxVUkwucmV2b2tlT2JqZWN0VVJMKGwuaHJlZiksZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChsKX0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBjLnN0b3AoKX19LGkpfSkpLGguYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIE0oaSl7d2luZG93LmxvY2F0aW9uLmhyZWY9Ii9hcGkvY29tbW9uL2Rvd25sb2FkP2ZpbGVOYW1lPSIuY29uY2F0KGVuY29kZVVSSShpKSwiJmRlbGV0ZT0iLCEwKX19fV0pOwpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy8yNTg2LmY0NDgzMDExLmFzeW5jLmpzIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy8yNTg2LmY0NDgzMDExLmFzeW5jLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA1NzRlNTAKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzI1ODYuZjQ0ODMwMTEuYXN5bmMuanMKQEAgLTAsMCArMSBAQAorInVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvPXNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm98fFtdKS5wdXNoKFtbMjU4Nl0sezc4MjkwOmZ1bmN0aW9uKGhlLEQsdCl7dmFyIGQ9dCg2NzI5NCksQz10KDQzNDApO2NvbnN0IHM9eT0+e2xldCBOO3JldHVybiB0eXBlb2YgeT09Im9iamVjdCImJih5IT1udWxsJiZ5LmNsZWFySWNvbik/Tj15OnkmJihOPXtjbGVhckljb246ZC5jcmVhdGVFbGVtZW50KEMuWixudWxsKX0pLE59O0QuWj1zfSw4MjU4NjpmdW5jdGlvbihoZSxELHQpe3QuZChELHtaOmZ1bmN0aW9uKCl7cmV0dXJuIG59fSk7dmFyIGQ9dCg2NzI5NCksQz10KDkzOTY3KSxzPXQubihDKSx5PXQoNjc2NTYpLE49dCg0MjU1MCksYT10KDg5OTQyKSxlPXQoNzgyOTApLHU9dCg5NzA4KSxvPXQoNTMxMjQpLGk9dCg5ODg2NiksaWU9dCgzNTc5Miksej10KDk4Njc1KSxjZT10KDY1MjIzKSxDZT10KDI3ODMzKSxPZT10KDQxNzMpLFBlPXQoNzI5MjIpLE5lPXQoNDc2NzMpO2Z1bmN0aW9uIEFlKG0pe3JldHVybiEhKG0ucHJlZml4fHxtLnN1ZmZpeHx8bS5hbGxvd0NsZWFyfHxtLnNob3dDb3VudCl9dmFyIEllPWZ1bmN0aW9uKG0sVCl7dmFyIE89e307Zm9yKHZhciBnIGluIG0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG0sZykmJlQuaW5kZXhPZihnKTwwJiYoT1tnXT1tW2ddKTtpZihtIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIFI9MCxnPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMobSk7UjxnLmxlbmd0aDtSKyspVC5pbmRleE9mKGdbUl0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChtLGdbUl0pJiYoT1tnW1JdXT1tW2dbUl1dKTtyZXR1cm4gT30sbj0oMCxkLmZvcndhcmRSZWYpKChtLFQpPT57Y29uc3R7cHJlZml4Q2xzOk8sYm9yZGVyZWQ6Zz0hMCxzdGF0dXM6UixzaXplOlcsZGlzYWJsZWQ6UyxvbkJsdXI6VSxvbkZvY3VzOkYsc3VmZml4OlAsYWxsb3dDbGVhcjpNLGFkZG9uQWZ0ZXI6ZGUsYWRkb25CZWZvcmU6ZmUsY2xhc3NOYW1lOkcsc3R5bGU6USxzdHlsZXM6eWUscm9vdENsYXNzTmFtZTpYLG9uQ2hhbmdlOlosY2xhc3NOYW1lczokLHZhcmlhbnQ6bmV9PW0saj1JZShtLFsicHJlZml4Q2xzIiwiYm9yZGVyZWQiLCJzdGF0dXMiLCJzaXplIiwiZGlzYWJsZWQiLCJvbkJsdXIiLCJvbkZvY3VzIiwic3VmZml4IiwiYWxsb3dDbGVhciIsImFkZG9uQWZ0ZXIiLCJhZGRvbkJlZm9yZSIsImNsYXNzTmFtZSIsInN0eWxlIiwic3R5bGVzIiwicm9vdENsYXNzTmFtZSIsIm9uQ2hhbmdlIiwiY2xhc3NOYW1lcyIsInZhcmlhbnQiXSkse2dldFByZWZpeENsczp4LGRpcmVjdGlvbjpyLGFsbG93Q2xlYXI6SCxhdXRvQ29tcGxldGU6YixjbGFzc05hbWU6RSxzdHlsZTpZLGNsYXNzTmFtZXM6dGUsc3R5bGVzOmFlfT0oMCxvLmRqKSgiaW5wdXQiKSxjPXgoImlucHV0IixPKSxBPSgwLGQudXNlUmVmKShudWxsKSx2PSgwLGllLlopKGMpLFtvZSxMLHZlXT0oMCxOZS5USSkoYyxYKSxbSV09KDAsTmUuWlApKGMsdikse2NvbXBhY3RTaXplOmssY29tcGFjdEl0ZW1DbGFzc25hbWVzOnJlfT0oMCxPZS5yaSkoYyxyKSx3PSgwLHouWikoSj0+e3ZhciBTZTtyZXR1cm4oU2U9VyE9bnVsbD9XOmspIT09bnVsbCYmU2UhPT12b2lkIDA/U2U6Sn0pLGxlPWQudXNlQ29udGV4dChpLlopLG1lPVMhPW51bGw/UzpsZSx7c3RhdHVzOkssaGFzRmVlZGJhY2s6cSxmZWVkYmFja0ljb246cH09KDAsZC51c2VDb250ZXh0KShjZS5hTSksQj0oMCx1LkYpKEssUiksXz1BZShtKXx8ISFxLEVlPSgwLGQudXNlUmVmKShfKSxlZT0oMCxQZS5aKShBLCEwKSxwZT1KPT57ZWUoKSxVPT1udWxsfHxVKEopfSxnZT1KPT57ZWUoKSxGPT1udWxsfHxGKEopfSxWPUo9PntlZSgpLFo9PW51bGx8fFooSil9LHNlPShxfHxQKSYmZC5jcmVhdGVFbGVtZW50KGQuRnJhZ21lbnQsbnVsbCxQLHEmJnApLHdlPSgwLGUuWikoTSE9bnVsbD9NOkgpLFtSZSxiZV09KDAsQ2UuWikoImlucHV0IixuZSxnKTtyZXR1cm4gb2UoSShkLmNyZWF0ZUVsZW1lbnQoeS5aLE9iamVjdC5hc3NpZ24oe3JlZjooMCxOLnNRKShULEEpLHByZWZpeENsczpjLGF1dG9Db21wbGV0ZTpifSxqLHtkaXNhYmxlZDptZSxvbkJsdXI6cGUsb25Gb2N1czpnZSxzdHlsZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sWSksUSksc3R5bGVzOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxhZSkseWUpLHN1ZmZpeDpzZSxhbGxvd0NsZWFyOndlLGNsYXNzTmFtZTpzKCkoRyxYLHZlLHYscmUsRSksb25DaGFuZ2U6VixhZGRvbkJlZm9yZTpmZSYmZC5jcmVhdGVFbGVtZW50KGEuWix7Zm9ybTohMCxzcGFjZTohMH0sZmUpLGFkZG9uQWZ0ZXI6ZGUmJmQuY3JlYXRlRWxlbWVudChhLlose2Zvcm06ITAsc3BhY2U6ITB9LGRlKSxjbGFzc05hbWVzOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCQpLHRlKSx7aW5wdXQ6cygpKHtbYCR7Y30tc21gXTp3PT09InNtYWxsIixbYCR7Y30tbGdgXTp3PT09ImxhcmdlIixbYCR7Y30tcnRsYF06cj09PSJydGwifSwkPT1udWxsP3ZvaWQgMDokLmlucHV0LHRlLmlucHV0LEwpLHZhcmlhbnQ6cygpKHtbYCR7Y30tJHtSZX1gXTpiZX0sKDAsdS5aKShjLEIpKSxhZmZpeFdyYXBwZXI6cygpKHtbYCR7Y30tYWZmaXgtd3JhcHBlci1zbWBdOnc9PT0ic21hbGwiLFtgJHtjfS1hZmZpeC13cmFwcGVyLWxnYF06dz09PSJsYXJnZSIsW2Ake2N9LWFmZml4LXdyYXBwZXItcnRsYF06cj09PSJydGwifSxMKSx3cmFwcGVyOnMoKSh7W2Ake2N9LWdyb3VwLXJ0bGBdOnI9PT0icnRsIn0sTCksZ3JvdXBXcmFwcGVyOnMoKSh7W2Ake2N9LWdyb3VwLXdyYXBwZXItc21gXTp3PT09InNtYWxsIixbYCR7Y30tZ3JvdXAtd3JhcHBlci1sZ2BdOnc9PT0ibGFyZ2UiLFtgJHtjfS1ncm91cC13cmFwcGVyLXJ0bGBdOnI9PT0icnRsIixbYCR7Y30tZ3JvdXAtd3JhcHBlci0ke1JlfWBdOmJlfSwoMCx1LlopKGAke2N9LWdyb3VwLXdyYXBwZXJgLEIscSksTCl9KX0pKSkpfSl9LDcyOTIyOmZ1bmN0aW9uKGhlLEQsdCl7dC5kKEQse1o6ZnVuY3Rpb24oKXtyZXR1cm4gQ319KTt2YXIgZD10KDY3Mjk0KTtmdW5jdGlvbiBDKHMseSl7Y29uc3QgTj0oMCxkLnVzZVJlZikoW10pLGE9KCk9PntOLmN1cnJlbnQucHVzaChzZXRUaW1lb3V0KCgpPT57dmFyIGUsdSxvLGk7ISgoZT1zLmN1cnJlbnQpPT09bnVsbHx8ZT09PXZvaWQgMCkmJmUuaW5wdXQmJigodT1zLmN1cnJlbnQpPT09bnVsbHx8dT09PXZvaWQgMD92b2lkIDA6dS5pbnB1dC5nZXRBdHRyaWJ1dGUoInR5cGUiKSk9PT0icGFzc3dvcmQiJiYoISgobz1zLmN1cnJlbnQpPT09bnVsbHx8bz09PXZvaWQgMCkmJm8uaW5wdXQuaGFzQXR0cmlidXRlKCJ2YWx1ZSIpKSYmKChpPXMuY3VycmVudCk9PT1udWxsfHxpPT09dm9pZCAwfHxpLmlucHV0LnJlbW92ZUF0dHJpYnV0ZSgidmFsdWUiKSl9KSl9O3JldHVybigwLGQudXNlRWZmZWN0KSgoKT0+KHkmJmEoKSwoKT0+Ti5jdXJyZW50LmZvckVhY2goZT0+e2UmJmNsZWFyVGltZW91dChlKX0pKSxbXSksYX19LDgyMjM0OmZ1bmN0aW9uKGhlLEQsdCl7dC5kKEQse1o6ZnVuY3Rpb24oKXtyZXR1cm4gZX19KTt2YXIgZD10KDkxKSxDPXQoMTQxMykscz10KDcxMDAyKSx5PXQoNjcyOTQpLE49WyJzaG93Il07ZnVuY3Rpb24gYSh1LG8pe2lmKCFvLm1heClyZXR1cm4hMDt2YXIgaT1vLnN0cmF0ZWd5KHUpO3JldHVybiBpPD1vLm1heH1mdW5jdGlvbiBlKHUsbyl7cmV0dXJuIHkudXNlTWVtbyhmdW5jdGlvbigpe3ZhciBpPXt9O28mJihpLnNob3c9KDAscy5aKShvKT09PSJvYmplY3QiJiZvLmZvcm1hdHRlcj9vLmZvcm1hdHRlcjohIW8pLGk9KDAsQy5aKSgoMCxDLlopKHt9LGkpLHUpO3ZhciBpZT1pLHo9aWUuc2hvdyxjZT0oMCxkLlopKGllLE4pO3JldHVybigwLEMuWikoKDAsQy5aKSh7fSxjZSkse30se3Nob3c6ISF6LHNob3dGb3JtYXR0ZXI6dHlwZW9mIHo9PSJmdW5jdGlvbiI/ejp2b2lkIDAsc3RyYXRlZ3k6Y2Uuc3RyYXRlZ3l8fGZ1bmN0aW9uKENlKXtyZXR1cm4gQ2UubGVuZ3RofX0pfSxbdSxvXSl9fSw2NzY1NjpmdW5jdGlvbihoZSxELHQpe3QuZChELHtROmZ1bmN0aW9uKCl7cmV0dXJuIGl9LFo6ZnVuY3Rpb24oKXtyZXR1cm4gRGV9fSk7dmFyIGQ9dCgxNDEzKSxDPXQoODc0NjIpLHM9dCg0OTQyKSx5PXQoNzEwMDIpLE49dCg5Mzk2NyksYT10Lm4oTiksZT10KDY3Mjk0KSx1PXQoODc4ODcpLG89ZS5mb3J3YXJkUmVmKGZ1bmN0aW9uKG4sbSl7dmFyIFQsTyxnLFI9bi5pbnB1dEVsZW1lbnQsVz1uLmNoaWxkcmVuLFM9bi5wcmVmaXhDbHMsVT1uLnByZWZpeCxGPW4uc3VmZml4LFA9bi5hZGRvbkJlZm9yZSxNPW4uYWRkb25BZnRlcixkZT1uLmNsYXNzTmFtZSxmZT1uLnN0eWxlLEc9bi5kaXNhYmxlZCxRPW4ucmVhZE9ubHkseWU9bi5mb2N1c2VkLFg9bi50cmlnZ2VyRm9jdXMsWj1uLmFsbG93Q2xlYXIsJD1uLnZhbHVlLG5lPW4uaGFuZGxlUmVzZXQsaj1uLmhpZGRlbix4PW4uY2xhc3NlcyxyPW4uY2xhc3NOYW1lcyxIPW4uZGF0YUF0dHJzLGI9bi5zdHlsZXMsRT1uLmNvbXBvbmVudHMsWT1uLm9uQ2xlYXIsdGU9VyE9bnVsbD9XOlIsYWU9KEU9PW51bGw/dm9pZCAwOkUuYWZmaXhXcmFwcGVyKXx8InNwYW4iLGM9KEU9PW51bGw/dm9pZCAwOkUuZ3JvdXBXcmFwcGVyKXx8InNwYW4iLEE9KEU9PW51bGw/dm9pZCAwOkUud3JhcHBlcil8fCJzcGFuIix2PShFPT1udWxsP3ZvaWQgMDpFLmdyb3VwQWRkb24pfHwic3BhbiIsb2U9KDAsZS51c2VSZWYpKG51bGwpLEw9ZnVuY3Rpb24oVil7dmFyIHNlOyhzZT1vZS5jdXJyZW50KSE9PW51bGwmJnNlIT09dm9pZCAwJiZzZS5jb250YWlucyhWLnRhcmdldCkmJihYPT1udWxsfHxYKCkpfSx2ZT0oMCx1LlgzKShuKSxJPSgwLGUuY2xvbmVFbGVtZW50KSh0ZSx7dmFsdWU6JCxjbGFzc05hbWU6YSgpKChUPXRlLnByb3BzKT09PW51bGx8fFQ9PT12b2lkIDA/dm9pZCAwOlQuY2xhc3NOYW1lLCF2ZSYmKHI9PW51bGw/dm9pZCAwOnIudmFyaWFudCkpfHxudWxsfSksaz0oMCxlLnVzZVJlZikobnVsbCk7aWYoZS51c2VJbXBlcmF0aXZlSGFuZGxlKG0sZnVuY3Rpb24oKXtyZXR1cm57bmF0aXZlRWxlbWVudDprLmN1cnJlbnR8fG9lLmN1cnJlbnR9fSksdmUpe3ZhciByZT1udWxsO2lmKFope3ZhciB3PSFHJiYhUSYmJCxsZT0iIi5jb25jYXQoUywiLWNsZWFyLWljb24iKSxtZT0oMCx5LlopKFopPT09Im9iamVjdCImJlohPT1udWxsJiZaIT09dm9pZCAwJiZaLmNsZWFySWNvbj9aLmNsZWFySWNvbjoiXHUyNzE2IjtyZT1lLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsdGFiSW5kZXg6LTEsb25DbGljazpmdW5jdGlvbihWKXtuZT09bnVsbHx8bmUoViksWT09bnVsbHx8WSgpfSxvbk1vdXNlRG93bjpmdW5jdGlvbihWKXtyZXR1cm4gVi5wcmV2ZW50RGVmYXVsdCgpfSxjbGFzc05hbWU6YSgpKGxlLCgwLHMuWikoKDAscy5aKSh7fSwiIi5jb25jYXQobGUsIi1oaWRkZW4iKSwhdyksIiIuY29uY2F0KGxlLCItaGFzLXN1ZmZpeCIpLCEhRikpfSxtZSl9dmFyIEs9IiIuY29uY2F0KFMsIi1hZmZpeC13cmFwcGVyIikscT1hKCkoSywoMCxzLlopKCgwLHMuWikoKDAscy5aKSgoMCxzLlopKCgwLHMuWikoe30sIiIuY29uY2F0KFMsIi1kaXNhYmxlZCIpLEcpLCIiLmNvbmNhdChLLCItZGlzYWJsZWQiKSxHKSwiIi5jb25jYXQoSywiLWZvY3VzZWQiKSx5ZSksIiIuY29uY2F0KEssIi1yZWFkb25seSIpLFEpLCIiLmNvbmNhdChLLCItaW5wdXQtd2l0aC1jbGVhci1idG4iKSxGJiZaJiYkKSx4PT1udWxsP3ZvaWQgMDp4LmFmZml4V3JhcHBlcixyPT1udWxsP3ZvaWQgMDpyLmFmZml4V3JhcHBlcixyPT1udWxsP3ZvaWQgMDpyLnZhcmlhbnQpLHA9KEZ8fFopJiZlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6YSgpKCIiLmNvbmNhdChTLCItc3VmZml4Iikscj09bnVsbD92b2lkIDA6ci5zdWZmaXgpLHN0eWxlOmI9PW51bGw/dm9pZCAwOmIuc3VmZml4fSxyZSxGKTtJPWUuY3JlYXRlRWxlbWVudChhZSwoMCxDLlopKHtjbGFzc05hbWU6cSxzdHlsZTpiPT1udWxsP3ZvaWQgMDpiLmFmZml4V3JhcHBlcixvbkNsaWNrOkx9LEg9PW51bGw/dm9pZCAwOkguYWZmaXhXcmFwcGVyLHtyZWY6b2V9KSxVJiZlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6YSgpKCIiLmNvbmNhdChTLCItcHJlZml4Iikscj09bnVsbD92b2lkIDA6ci5wcmVmaXgpLHN0eWxlOmI9PW51bGw/dm9pZCAwOmIucHJlZml4fSxVKSxJLHApfWlmKCgwLHUuSGUpKG4pKXt2YXIgQj0iIi5jb25jYXQoUywiLWdyb3VwIiksXz0iIi5jb25jYXQoQiwiLWFkZG9uIiksRWU9IiIuY29uY2F0KEIsIi13cmFwcGVyIiksZWU9YSgpKCIiLmNvbmNhdChTLCItd3JhcHBlciIpLEIseD09bnVsbD92b2lkIDA6eC53cmFwcGVyLHI9PW51bGw/dm9pZCAwOnIud3JhcHBlcikscGU9YSgpKEVlLCgwLHMuWikoe30sIiIuY29uY2F0KEVlLCItZGlzYWJsZWQiKSxHKSx4PT1udWxsP3ZvaWQgMDp4Lmdyb3VwLHI9PW51bGw/dm9pZCAwOnIuZ3JvdXBXcmFwcGVyKTtJPWUuY3JlYXRlRWxlbWVudChjLHtjbGFzc05hbWU6cGUscmVmOmt9LGUuY3JlYXRlRWxlbWVudChBLHtjbGFzc05hbWU6ZWV9LFAmJmUuY3JlYXRlRWxlbWVudCh2LHtjbGFzc05hbWU6X30sUCksSSxNJiZlLmNyZWF0ZUVsZW1lbnQodix7Y2xhc3NOYW1lOl99LE0pKSl9cmV0dXJuIGUuY2xvbmVFbGVtZW50KEkse2NsYXNzTmFtZTphKCkoKE89SS5wcm9wcyk9PT1udWxsfHxPPT09dm9pZCAwP3ZvaWQgMDpPLmNsYXNzTmFtZSxkZSl8fG51bGwsc3R5bGU6KDAsZC5aKSgoMCxkLlopKHt9LChnPUkucHJvcHMpPT09bnVsbHx8Zz09PXZvaWQgMD92b2lkIDA6Zy5zdHlsZSksZmUpLGhpZGRlbjpqfSl9KSxpPW8saWU9dCg3NDkwMiksej10KDk3Njg1KSxjZT10KDkxKSxDZT10KDIxNzcwKSxPZT10KDk4NDIzKSxQZT10KDgyMjM0KSxOZT1bImF1dG9Db21wbGV0ZSIsIm9uQ2hhbmdlIiwib25Gb2N1cyIsIm9uQmx1ciIsIm9uUHJlc3NFbnRlciIsIm9uS2V5RG93biIsIm9uS2V5VXAiLCJwcmVmaXhDbHMiLCJkaXNhYmxlZCIsImh0bWxTaXplIiwiY2xhc3NOYW1lIiwibWF4TGVuZ3RoIiwic3VmZml4Iiwic2hvd0NvdW50IiwiY291bnQiLCJ0eXBlIiwiY2xhc3NlcyIsImNsYXNzTmFtZXMiLCJzdHlsZXMiLCJvbkNvbXBvc2l0aW9uU3RhcnQiLCJvbkNvbXBvc2l0aW9uRW5kIl0sQWU9KDAsZS5mb3J3YXJkUmVmKShmdW5jdGlvbihuLG0pe3ZhciBUPW4uYXV0b0NvbXBsZXRlLE89bi5vbkNoYW5nZSxnPW4ub25Gb2N1cyxSPW4ub25CbHVyLFc9bi5vblByZXNzRW50ZXIsUz1uLm9uS2V5RG93bixVPW4ub25LZXlVcCxGPW4ucHJlZml4Q2xzLFA9Rj09PXZvaWQgMD8icmMtaW5wdXQiOkYsTT1uLmRpc2FibGVkLGRlPW4uaHRtbFNpemUsZmU9bi5jbGFzc05hbWUsRz1uLm1heExlbmd0aCxRPW4uc3VmZml4LHllPW4uc2hvd0NvdW50LFg9bi5jb3VudCxaPW4udHlwZSwkPVo9PT12b2lkIDA/InRleHQiOlosbmU9bi5jbGFzc2VzLGo9bi5jbGFzc05hbWVzLHg9bi5zdHlsZXMscj1uLm9uQ29tcG9zaXRpb25TdGFydCxIPW4ub25Db21wb3NpdGlvbkVuZCxiPSgwLGNlLlopKG4sTmUpLEU9KDAsZS51c2VTdGF0ZSkoITEpLFk9KDAsei5aKShFLDIpLHRlPVlbMF0sYWU9WVsxXSxjPSgwLGUudXNlUmVmKSghMSksQT0oMCxlLnVzZVJlZikoITEpLHY9KDAsZS51c2VSZWYpKG51bGwpLG9lPSgwLGUudXNlUmVmKShudWxsKSxMPWZ1bmN0aW9uKGwpe3YuY3VycmVudCYmKDAsdS5uSCkodi5jdXJyZW50LGwpfSx2ZT0oMCxDZS5aKShuLmRlZmF1bHRWYWx1ZSx7dmFsdWU6bi52YWx1ZX0pLEk9KDAsei5aKSh2ZSwyKSxrPUlbMF0scmU9SVsxXSx3PWs9PW51bGw/IiI6U3RyaW5nKGspLGxlPSgwLGUudXNlU3RhdGUpKG51bGwpLG1lPSgwLHouWikobGUsMiksSz1tZVswXSxxPW1lWzFdLHA9KDAsUGUuWikoWCx5ZSksQj1wLm1heHx8RyxfPXAuc3RyYXRlZ3kodyksRWU9ISFCJiZfPkI7KDAsZS51c2VJbXBlcmF0aXZlSGFuZGxlKShtLGZ1bmN0aW9uKCl7dmFyIGY7cmV0dXJue2ZvY3VzOkwsYmx1cjpmdW5jdGlvbigpe3ZhciBoOyhoPXYuY3VycmVudCk9PT1udWxsfHxoPT09dm9pZCAwfHxoLmJsdXIoKX0sc2V0U2VsZWN0aW9uUmFuZ2U6ZnVuY3Rpb24oaCxaZSx4ZSl7dmFyIHVlOyh1ZT12LmN1cnJlbnQpPT09bnVsbHx8dWU9PT12b2lkIDB8fHVlLnNldFNlbGVjdGlvblJhbmdlKGgsWmUseGUpfSxzZWxlY3Q6ZnVuY3Rpb24oKXt2YXIgaDsoaD12LmN1cnJlbnQpPT09bnVsbHx8aD09PXZvaWQgMHx8aC5zZWxlY3QoKX0saW5wdXQ6di5jdXJyZW50LG5hdGl2ZUVsZW1lbnQ6KChmPW9lLmN1cnJlbnQpPT09bnVsbHx8Zj09PXZvaWQgMD92b2lkIDA6Zi5uYXRpdmVFbGVtZW50KXx8di5jdXJyZW50fX0pLCgwLGUudXNlRWZmZWN0KShmdW5jdGlvbigpe0EuY3VycmVudCYmKEEuY3VycmVudD0hMSksYWUoZnVuY3Rpb24oZil7cmV0dXJuIGYmJk0/ITE6Zn0pfSxbTV0pO3ZhciBlZT1mdW5jdGlvbihsLGgsWmUpe3ZhciB4ZT1oO2lmKCFjLmN1cnJlbnQmJnAuZXhjZWVkRm9ybWF0dGVyJiZwLm1heCYmcC5zdHJhdGVneShoKT5wLm1heCl7aWYoeGU9cC5leGNlZWRGb3JtYXR0ZXIoaCx7bWF4OnAubWF4fSksaCE9PXhlKXt2YXIgdWUsQmU7cShbKCh1ZT12LmN1cnJlbnQpPT09bnVsbHx8dWU9PT12b2lkIDA/dm9pZCAwOnVlLnNlbGVjdGlvblN0YXJ0KXx8MCwoKEJlPXYuY3VycmVudCk9PT1udWxsfHxCZT09PXZvaWQgMD92b2lkIDA6QmUuc2VsZWN0aW9uRW5kKXx8MF0pfX1lbHNlIGlmKFplLnNvdXJjZT09PSJjb21wb3NpdGlvbkVuZCIpcmV0dXJuO3JlKHhlKSx2LmN1cnJlbnQmJigwLHUuckopKHYuY3VycmVudCxsLE8seGUpfTsoMCxlLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtpZihLKXt2YXIgZjsoZj12LmN1cnJlbnQpPT09bnVsbHx8Zj09PXZvaWQgMHx8Zi5zZXRTZWxlY3Rpb25SYW5nZS5hcHBseShmLCgwLGllLlopKEspKX19LFtLXSk7dmFyIHBlPWZ1bmN0aW9uKGwpe2VlKGwsbC50YXJnZXQudmFsdWUse3NvdXJjZToiY2hhbmdlIn0pfSxnZT1mdW5jdGlvbihsKXtjLmN1cnJlbnQ9ITEsZWUobCxsLmN1cnJlbnRUYXJnZXQudmFsdWUse3NvdXJjZToiY29tcG9zaXRpb25FbmQifSksSD09bnVsbHx8SChsKX0sVj1mdW5jdGlvbihsKXtXJiZsLmtleT09PSJFbnRlciImJiFBLmN1cnJlbnQmJihBLmN1cnJlbnQ9ITAsVyhsKSksUz09bnVsbHx8UyhsKX0sc2U9ZnVuY3Rpb24obCl7bC5rZXk9PT0iRW50ZXIiJiYoQS5jdXJyZW50PSExKSxVPT1udWxsfHxVKGwpfSx3ZT1mdW5jdGlvbihsKXthZSghMCksZz09bnVsbHx8ZyhsKX0sUmU9ZnVuY3Rpb24obCl7QS5jdXJyZW50JiYoQS5jdXJyZW50PSExKSxhZSghMSksUj09bnVsbHx8UihsKX0sYmU9ZnVuY3Rpb24obCl7cmUoIiIpLEwoKSx2LmN1cnJlbnQmJigwLHUuckopKHYuY3VycmVudCxsLE8pfSxKPUVlJiYiIi5jb25jYXQoUCwiLW91dC1vZi1yYW5nZSIpLFNlPWZ1bmN0aW9uKCl7dmFyIGw9KDAsT2UuWikobixbInByZWZpeENscyIsIm9uUHJlc3NFbnRlciIsImFkZG9uQmVmb3JlIiwiYWRkb25BZnRlciIsInByZWZpeCIsInN1ZmZpeCIsImFsbG93Q2xlYXIiLCJkZWZhdWx0VmFsdWUiLCJzaG93Q291bnQiLCJjb3VudCIsImNsYXNzZXMiLCJodG1sU2l6ZSIsInN0eWxlcyIsImNsYXNzTmFtZXMiLCJvbkNsZWFyIl0pO3JldHVybiBlLmNyZWF0ZUVsZW1lbnQoImlucHV0IiwoMCxDLlopKHthdXRvQ29tcGxldGU6VH0sbCx7b25DaGFuZ2U6cGUsb25Gb2N1czp3ZSxvbkJsdXI6UmUsb25LZXlEb3duOlYsb25LZXlVcDpzZSxjbGFzc05hbWU6YSgpKFAsKDAscy5aKSh7fSwiIi5jb25jYXQoUCwiLWRpc2FibGVkIiksTSksaj09bnVsbD92b2lkIDA6ai5pbnB1dCksc3R5bGU6eD09bnVsbD92b2lkIDA6eC5pbnB1dCxyZWY6dixzaXplOmRlLHR5cGU6JCxvbkNvbXBvc2l0aW9uU3RhcnQ6ZnVuY3Rpb24oWmUpe2MuY3VycmVudD0hMCxyPT1udWxsfHxyKFplKX0sb25Db21wb3NpdGlvbkVuZDpnZX0pKX0sRmU9ZnVuY3Rpb24oKXt2YXIgbD1OdW1iZXIoQik+MDtpZihRfHxwLnNob3cpe3ZhciBoPXAuc2hvd0Zvcm1hdHRlcj9wLnNob3dGb3JtYXR0ZXIoe3ZhbHVlOncsY291bnQ6XyxtYXhMZW5ndGg6Qn0pOiIiLmNvbmNhdChfKS5jb25jYXQobD8iIC8gIi5jb25jYXQoQik6IiIpO3JldHVybiBlLmNyZWF0ZUVsZW1lbnQoZS5GcmFnbWVudCxudWxsLHAuc2hvdyYmZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmEoKSgiIi5jb25jYXQoUCwiLXNob3ctY291bnQtc3VmZml4IiksKDAscy5aKSh7fSwiIi5jb25jYXQoUCwiLXNob3ctY291bnQtaGFzLXN1ZmZpeCIpLCEhUSksaj09bnVsbD92b2lkIDA6ai5jb3VudCksc3R5bGU6KDAsZC5aKSh7fSx4PT1udWxsP3ZvaWQgMDp4LmNvdW50KX0saCksUSl9cmV0dXJuIG51bGx9O3JldHVybiBlLmNyZWF0ZUVsZW1lbnQoaSwoMCxDLlopKHt9LGIse3ByZWZpeENsczpQLGNsYXNzTmFtZTphKCkoZmUsSiksaGFuZGxlUmVzZXQ6YmUsdmFsdWU6dyxmb2N1c2VkOnRlLHRyaWdnZXJGb2N1czpMLHN1ZmZpeDpGZSgpLGRpc2FibGVkOk0sY2xhc3NlczpuZSxjbGFzc05hbWVzOmosc3R5bGVzOnh9KSxTZSgpKX0pLEllPUFlLERlPUllfSw4Nzg4NzpmdW5jdGlvbihoZSxELHQpe3QuZChELHtIZTpmdW5jdGlvbigpe3JldHVybiBkfSxYMzpmdW5jdGlvbigpe3JldHVybiBDfSxuSDpmdW5jdGlvbigpe3JldHVybiBOfSxySjpmdW5jdGlvbigpe3JldHVybiB5fX0pO2Z1bmN0aW9uIGQoYSl7cmV0dXJuISEoYS5hZGRvbkJlZm9yZXx8YS5hZGRvbkFmdGVyKX1mdW5jdGlvbiBDKGEpe3JldHVybiEhKGEucHJlZml4fHxhLnN1ZmZpeHx8YS5hbGxvd0NsZWFyKX1mdW5jdGlvbiBzKGEsZSx1KXt2YXIgbz1lLmNsb25lTm9kZSghMCksaT1PYmplY3QuY3JlYXRlKGEse3RhcmdldDp7dmFsdWU6b30sY3VycmVudFRhcmdldDp7dmFsdWU6b319KTtyZXR1cm4gby52YWx1ZT11LHR5cGVvZiBlLnNlbGVjdGlvblN0YXJ0PT0ibnVtYmVyIiYmdHlwZW9mIGUuc2VsZWN0aW9uRW5kPT0ibnVtYmVyIiYmKG8uc2VsZWN0aW9uU3RhcnQ9ZS5zZWxlY3Rpb25TdGFydCxvLnNlbGVjdGlvbkVuZD1lLnNlbGVjdGlvbkVuZCksby5zZXRTZWxlY3Rpb25SYW5nZT1mdW5jdGlvbigpe2Uuc2V0U2VsZWN0aW9uUmFuZ2UuYXBwbHkoZSxhcmd1bWVudHMpfSxpfWZ1bmN0aW9uIHkoYSxlLHUsbyl7aWYodSl7dmFyIGk9ZTtpZihlLnR5cGU9PT0iY2xpY2siKXtpPXMoZSxhLCIiKSx1KGkpO3JldHVybn1pZihhLnR5cGUhPT0iZmlsZSImJm8hPT12b2lkIDApe2k9cyhlLGEsbyksdShpKTtyZXR1cm59dShpKX19ZnVuY3Rpb24gTihhLGUpe2lmKGEpe2EuZm9jdXMoZSk7dmFyIHU9ZXx8e30sbz11LmN1cnNvcjtpZihvKXt2YXIgaT1hLnZhbHVlLmxlbmd0aDtzd2l0Y2gobyl7Y2FzZSJzdGFydCI6YS5zZXRTZWxlY3Rpb25SYW5nZSgwLDApO2JyZWFrO2Nhc2UiZW5kIjphLnNldFNlbGVjdGlvblJhbmdlKGksaSk7YnJlYWs7ZGVmYXVsdDphLnNldFNlbGVjdGlvblJhbmdlKDAsaSl9fX19fX1dKTsKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvMjY1NC40NGRlNzI3ZS5hc3luYy5qcyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvMjY1NC40NGRlNzI3ZS5hc3luYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MDc1MDM0Ci0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy8yNjU0LjQ0ZGU3MjdlLmFzeW5jLmpzCkBAIC0wLDAgKzEgQEAKKyJ1c2Ugc3RyaWN0Ijsoc2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Bybz1zZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvfHxbXSkucHVzaChbWzI2NTRdLHs4MjY1NDpmdW5jdGlvbihzLGUsbil7bi5yKGUpfX1dKTsKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvMjY1NC40ZTRkZjdlZi5jaHVuay5jc3MgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzI2NTQuNGU0ZGY3ZWYuY2h1bmsuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQyMGM3OTQKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzI2NTQuNGU0ZGY3ZWYuY2h1bmsuY3NzCkBAIC0wLDAgKzEgQEAKKy5hdmF0YXJIb2xkZXJ7bWFyZ2luLWJvdHRvbToxNnB4O3RleHQtYWxpZ246Y2VudGVyO3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDoxMjBweH0uYXZhdGFySG9sZGVyPmltZ3t3aWR0aDoxMjBweDtoZWlnaHQ6MTIwcHg7bWFyZ2luLWJvdHRvbToyMHB4O2JvcmRlci1yYWRpdXM6NTAlfS5hdmF0YXJIb2xkZXI6aG92ZXI6YWZ0ZXJ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7cmlnaHQ6MDtib3R0b206MDtsZWZ0OjA7Y29sb3I6I2VlZTtmb250LXNpemU6MjRweDtmb250LXN0eWxlOm5vcm1hbDtsaW5lLWhlaWdodDoxMTBweDtiYWNrZ3JvdW5kOiMwMDAwMDA4MDtib3JkZXItcmFkaXVzOjUwJTtjdXJzb3I6cG9pbnRlcjtjb250ZW50OiIrIjstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkOy1tb3otb3N4LWZvbnQtc21vb3RoaW5nOmdyYXlzY2FsZX0udGVhbVRpdGxle21hcmdpbi1ib3R0b206MTJweDtjb2xvcjojMDAwMDAwZDk7Zm9udC13ZWlnaHQ6NTAwfS50ZWFtIDpnbG9iYWwgLmFudC1hdmF0YXJ7bWFyZ2luLXJpZ2h0OjEycHh9LnRlYW0gYXtkaXNwbGF5OmJsb2NrO21hcmdpbi1ib3R0b206MjRweDtvdmVyZmxvdzpoaWRkZW47Y29sb3I6IzAwMDAwMGQ5O3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3dvcmQtYnJlYWs6YnJlYWstYWxsO3RyYW5zaXRpb246Y29sb3IgLjNzfS50ZWFtIGE6aG92ZXJ7Y29sb3I6IzE4OTBmZn0KZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvMjY1NS4zMGU0ZDhjYS5hc3luYy5qcyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvMjY1NS4zMGU0ZDhjYS5hc3luYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yN2M3NzhkCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy8yNjU1LjMwZTRkOGNhLmFzeW5jLmpzCkBAIC0wLDAgKzEgQEAKKyJ1c2Ugc3RyaWN0Ijsoc2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Bybz1zZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvfHxbXSkucHVzaChbWzI2NTVdLHszMzg2NzpmdW5jdGlvbihKLEwsZSl7ZS5kKEwse2lLOmZ1bmN0aW9uKCl7cmV0dXJuIHd9LHpjOmZ1bmN0aW9uKCl7cmV0dXJuIEt9fSk7dmFyIHc9ZnVuY3Rpb24obyl7cmV0dXJuIG9bby5TVUNDRVNTPTIwMF09IlNVQ0NFU1MiLG9bby5FUlJPUj0tMV09IkVSUk9SIixvW28uVElNRU9VVD00MDFdPSJUSU1FT1VUIixvLlRZUEU9InN1Y2Nlc3MiLG99KHt9KSxoPWZ1bmN0aW9uKG8pe3JldHVybiBvLkdFVD0iR0VUIixvLlBPU1Q9IlBPU1QiLG8uUFVUPSJQVVQiLG8uREVMRVRFPSJERUxFVEUiLG99KHt9KSxLPWZ1bmN0aW9uKG8pe3JldHVybiBvLkpTT049ImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCIsby5GT1JNX1VSTEVOQ09ERUQ9ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PVVURi04IixvLkZPUk1fREFUQT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YTtjaGFyc2V0PVVURi04IixvfSh7fSl9LDYyNjU1OmZ1bmN0aW9uKEosTCxlKXtlLnIoTCk7dmFyIHc9ZSg5Nzg1NyksaD1lLm4odyksSz1lKDU1NzQpLG89ZS5uKEspLEg9ZSgxNTAwOSksYT1lLm4oSCksTz1lKDk5Mjg5KSxFPWUubihPKSxqPWUoNjcyOTQpLGM9ZSg3Njc3MiksbT1lKDI0NTMpLEM9ZSg4MzYyMiksVz1lKDE3Nzg4KSxTPWUoNjExMCksVj1lKDY1Mzg1KSxaPWUoMjIzNiksJD1lKDExNDc1KSxCPWUoNDg2ODkpLE49ZSgzMzU1KSxrPWUoMjQ5NjkpLEE9ZSgzODAwMikseD1lKDk0MTYyKSx6PWUoOTI5ODIpLHI9ZSg4NTg5MyksRj1mdW5jdGlvbigpe3ZhciBUPUUoKShhKCkoKS5tYXJrKGZ1bmN0aW9uIHYobil7dmFyIHMsZDtyZXR1cm4gYSgpKCkud3JhcChmdW5jdGlvbih1KXtmb3IoOzspc3dpdGNoKHUucHJldj11Lm5leHQpe2Nhc2UgMDppZihzPW0uWlAubG9hZGluZygiXHU2QjYzXHU1NzI4XHU1MjIwXHU5NjY0Iiksbil7dS5uZXh0PTM7YnJlYWt9cmV0dXJuIHUuYWJydXB0KCJyZXR1cm4iLCEwKTtjYXNlIDM6cmV0dXJuIHUucHJldj0zLHUubmV4dD02LCgwLEEuancpKG4ubWFwKGZ1bmN0aW9uKFEpe3JldHVybiBRLmluZm9JZH0pLmpvaW4oIiwiKSk7Y2FzZSA2OnJldHVybiBkPXUuc2VudCxzKCksZC5jb2RlPT09MjAwP20uWlAuc3VjY2VzcygiXHU1MjIwXHU5NjY0XHU2MjEwXHU1MjlGXHVGRjBDXHU1MzczXHU1QzA2XHU1MjM3XHU2NUIwIik6bS5aUC5lcnJvcihkLm1zZyksdS5hYnJ1cHQoInJldHVybiIsITApO2Nhc2UgMTI6cmV0dXJuIHUucHJldj0xMix1LnQwPXUuY2F0Y2goMykscygpLG0uWlAuZXJyb3IoIlx1NTIyMFx1OTY2NFx1NTkzMVx1OEQyNVx1RkYwQ1x1OEJGN1x1OTFDRFx1OEJENSIpLHUuYWJydXB0KCJyZXR1cm4iLCExKTtjYXNlIDE3OmNhc2UiZW5kIjpyZXR1cm4gdS5zdG9wKCl9fSx2LG51bGwsW1szLDEyXV0pfSkpO3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gVC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLGw9ZnVuY3Rpb24oKXt2YXIgVD1FKCkoYSgpKCkubWFyayhmdW5jdGlvbiB2KCl7dmFyIG4scztyZXR1cm4gYSgpKCkud3JhcChmdW5jdGlvbihpKXtmb3IoOzspc3dpdGNoKGkucHJldj1pLm5leHQpe2Nhc2UgMDpyZXR1cm4gbj1tLlpQLmxvYWRpbmcoIlx1OEJGN1x1N0EwRFx1NTAxOSIpLGkucHJldj0xLGkubmV4dD00LCgwLEEuS0YpKCk7Y2FzZSA0OnJldHVybiBzPWkuc2VudCxuKCkscy5jb2RlPT09MjAwP20uWlAuc3VjY2VzcygiXHU2RTA1XHU3QTdBXHU2MjEwXHU1MjlGXHVGRjBDXHU1MzczXHU1QzA2XHU1MjM3XHU2NUIwIik6bS5aUC5lcnJvcihzLm1zZyksaS5hYnJ1cHQoInJldHVybiIsITApO2Nhc2UgMTA6cmV0dXJuIGkucHJldj0xMCxpLnQwPWkuY2F0Y2goMSksbigpLG0uWlAuZXJyb3IoIlx1OEJGN1x1NkM0Mlx1NTkzMVx1OEQyNVx1RkYwQ1x1OEJGN1x1OTFDRFx1OEJENSIpLGkuYWJydXB0KCJyZXR1cm4iLCExKTtjYXNlIDE1OmNhc2UiZW5kIjpyZXR1cm4gaS5zdG9wKCl9fSx2LG51bGwsW1sxLDEwXV0pfSkpO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBULmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksZz1mdW5jdGlvbigpe3ZhciBUPUUoKShhKCkoKS5tYXJrKGZ1bmN0aW9uIHYobil7dmFyIHMsZDtyZXR1cm4gYSgpKCkud3JhcChmdW5jdGlvbih1KXtmb3IoOzspc3dpdGNoKHUucHJldj11Lm5leHQpe2Nhc2UgMDpyZXR1cm4gcz1tLlpQLmxvYWRpbmcoIlx1NkI2M1x1NTcyOFx1ODlFM1x1OTUwMSIpLHUucHJldj0xLHUubmV4dD00LCgwLEEuTnkpKG4pO2Nhc2UgNDpyZXR1cm4gZD11LnNlbnQscygpLGQuY29kZT09PTIwMD9tLlpQLnN1Y2Nlc3MoIlx1ODlFM1x1OTUwMVx1NjIxMFx1NTI5Rlx1RkYwQ1x1NTM3M1x1NUMwNlx1NTIzN1x1NjVCMCIpOm0uWlAuZXJyb3IoZC5tc2cpLHUuYWJydXB0KCJyZXR1cm4iLCEwKTtjYXNlIDEwOnJldHVybiB1LnByZXY9MTAsdS50MD11LmNhdGNoKDEpLHMoKSxtLlpQLmVycm9yKCJcdTg5RTNcdTk1MDFcdTU5MzFcdThEMjVcdUZGMENcdThCRjdcdTkxQ0RcdThCRDUiKSx1LmFicnVwdCgicmV0dXJuIiwhMSk7Y2FzZSAxNTpjYXNlImVuZCI6cmV0dXJuIHUuc3RvcCgpfX0sdixudWxsLFtbMSwxMF1dKX0pKTtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIFQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSx5PWZ1bmN0aW9uKCl7dmFyIFQ9RSgpKGEoKSgpLm1hcmsoZnVuY3Rpb24gdigpe3ZhciBuO3JldHVybiBhKCkoKS53cmFwKGZ1bmN0aW9uKGQpe2Zvcig7Oylzd2l0Y2goZC5wcmV2PWQubmV4dCl7Y2FzZSAwOnJldHVybiBuPW0uWlAubG9hZGluZygiXHU2QjYzXHU1NzI4XHU1QkZDXHU1MUZBIiksZC5wcmV2PTEsZC5uZXh0PTQsKDAsQS5RNikoKTtjYXNlIDQ6cmV0dXJuIG4oKSxtLlpQLnN1Y2Nlc3MoIlx1NUJGQ1x1NTFGQVx1NjIxMFx1NTI5RiIpLGQuYWJydXB0KCJyZXR1cm4iLCEwKTtjYXNlIDk6cmV0dXJuIGQucHJldj05LGQudDA9ZC5jYXRjaCgxKSxuKCksbS5aUC5lcnJvcigiXHU1QkZDXHU1MUZBXHU1OTMxXHU4RDI1XHVGRjBDXHU4QkY3XHU5MUNEXHU4QkQ1IiksZC5hYnJ1cHQoInJldHVybiIsITEpO2Nhc2UgMTQ6Y2FzZSJlbmQiOnJldHVybiBkLnN0b3AoKX19LHYsbnVsbCxbWzEsOV1dKX0pKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gVC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLHQ9ZnVuY3Rpb24oKXt2YXIgdj0oMCxqLnVzZVJlZikoKSxuPSgwLGoudXNlUmVmKSgpLHM9KDAsai51c2VTdGF0ZSkoW10pLGQ9bygpKHMsMiksaT1kWzBdLHU9ZFsxXSxRPSgwLGoudXNlU3RhdGUpKFtdKSxZPW8oKShRLDIpLHE9WVswXSxlZT1ZWzFdLEc9KDAsYy51c2VBY2Nlc3MpKCksbmU9KDAsYy51c2VJbnRsKSgpOygwLGoudXNlRWZmZWN0KShmdW5jdGlvbigpeygwLHoucFgpKCJzeXNfY29tbW9uX3N0YXR1cyIsITApLnRoZW4oZnVuY3Rpb24oUil7ZWUoUil9KX0sW10pO3ZhciByZT1be3RpdGxlOigwLHIuanN4KShjLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJtb25pdG9yLmxvZ2luaW5mb3IuaW5mb19pZCIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJCRlx1OTVFRVx1N0YxNlx1NTNGNyJ9KSxkYXRhSW5kZXg6ImluZm9JZCIsdmFsdWVUeXBlOiJ0ZXh0IixoaWRlSW5TZWFyY2g6ITB9LHt0aXRsZTooMCxyLmpzeCkoYy5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoibW9uaXRvci5sb2dpbmluZm9yLnVzZXJfbmFtZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NzUyOFx1NjIzN1x1OEQyNlx1NTNGNyJ9KSxkYXRhSW5kZXg6InVzZXJOYW1lIix2YWx1ZVR5cGU6InRleHQifSx7dGl0bGU6KDAsci5qc3gpKGMuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3IubG9naW5pbmZvci5pcGFkZHIiLGRlZmF1bHRNZXNzYWdlOiJcdTc2N0JcdTVGNTVJUFx1NTczMFx1NTc0MCJ9KSxkYXRhSW5kZXg6ImlwYWRkciIsdmFsdWVUeXBlOiJ0ZXh0In0se3RpdGxlOigwLHIuanN4KShjLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJtb25pdG9yLmxvZ2luaW5mb3IubG9naW5fbG9jYXRpb24iLGRlZmF1bHRNZXNzYWdlOiJcdTc2N0JcdTVGNTVcdTU3MzBcdTcwQjkifSksZGF0YUluZGV4OiJsb2dpbkxvY2F0aW9uIix2YWx1ZVR5cGU6InRleHQiLGhpZGVJblNlYXJjaDohMH0se3RpdGxlOigwLHIuanN4KShjLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJtb25pdG9yLmxvZ2luaW5mb3IuYnJvd3NlciIsZGVmYXVsdE1lc3NhZ2U6Ilx1NkQ0Rlx1ODlDOFx1NTY2OFx1N0M3Qlx1NTc4QiJ9KSxkYXRhSW5kZXg6ImJyb3dzZXIiLHZhbHVlVHlwZToidGV4dCIsaGlkZUluU2VhcmNoOiEwfSx7dGl0bGU6KDAsci5qc3gpKGMuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3IubG9naW5pbmZvci5vcyIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjRDRFx1NEY1Q1x1N0NGQlx1N0VERiJ9KSxkYXRhSW5kZXg6Im9zIix2YWx1ZVR5cGU6InRleHQiLGhpZGVJblNlYXJjaDohMH0se3RpdGxlOigwLHIuanN4KShjLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJtb25pdG9yLmxvZ2luaW5mb3Iuc3RhdHVzIixkZWZhdWx0TWVzc2FnZToiXHU3NjdCXHU1RjU1XHU3MkI2XHU2MDAxIn0pLGRhdGFJbmRleDoic3RhdHVzIix2YWx1ZVR5cGU6InNlbGVjdCIsdmFsdWVFbnVtOnEscmVuZGVyOmZ1bmN0aW9uKGIsRCl7cmV0dXJuKDAsci5qc3gpKHguWix7ZW51bXM6cSx2YWx1ZTpELnN0YXR1c30pfX0se3RpdGxlOigwLHIuanN4KShjLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJtb25pdG9yLmxvZ2luaW5mb3IubXNnIixkZWZhdWx0TWVzc2FnZToiXHU2M0QwXHU3OTNBXHU2RDg4XHU2MDZGIn0pLGRhdGFJbmRleDoibXNnIix2YWx1ZVR5cGU6InRleHQiLGhpZGVJblNlYXJjaDohMH0se3RpdGxlOigwLHIuanN4KShjLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJtb25pdG9yLmxvZ2luaW5mb3IubG9naW5fdGltZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJCRlx1OTVFRVx1NjVGNlx1OTVGNCJ9KSxkYXRhSW5kZXg6ImxvZ2luVGltZSIsdmFsdWVUeXBlOiJkYXRlVGltZSJ9XTtyZXR1cm4oMCxyLmpzeHMpKFMuX3ose2NoaWxkcmVuOlsoMCxyLmpzeCkoImRpdiIse3N0eWxlOnt3aWR0aDoiMTAwJSIsZmxvYXQ6InJpZ2h0In0sY2hpbGRyZW46KDAsci5qc3gpKFYuWix7aGVhZGVyVGl0bGU6bmUuZm9ybWF0TWVzc2FnZSh7aWQ6InBhZ2VzLnNlYXJjaFRhYmxlLnRpdGxlIixkZWZhdWx0TWVzc2FnZToiXHU0RkUxXHU2MDZGIn0pLGFjdGlvblJlZjpuLGZvcm1SZWY6dixyb3dLZXk6ImluZm9JZCIsc2VhcmNoOntsYWJlbFdpZHRoOjEyMH0sdG9vbEJhclJlbmRlcjpmdW5jdGlvbigpe3JldHVyblsoMCxyLmpzeHMpKEMuWlAse2RhbmdlcjohMCxoaWRkZW46KGk9PW51bGw/dm9pZCAwOmkubGVuZ3RoKT09PTB8fCFHLmhhc1Blcm1zKCJtb25pdG9yOmxvZ2luaW5mb3I6cmVtb3ZlIiksb25DbGljazpFKCkoYSgpKCkubWFyayhmdW5jdGlvbiBiKCl7cmV0dXJuIGEoKSgpLndyYXAoZnVuY3Rpb24ocCl7Zm9yKDs7KXN3aXRjaChwLnByZXY9cC5uZXh0KXtjYXNlIDA6Vy5aLmNvbmZpcm0oe3RpdGxlOiJcdTY2MkZcdTU0MjZcdTc4NkVcdThCQTRcdTUyMjBcdTk2NjRcdTYyNDBcdTkwMDlcdTY1NzBcdTYzNkVcdTk4Nzk/IixpY29uOigwLHIuanN4KSgkLlose30pLGNvbnRlbnQ6Ilx1OEJGN1x1OEMyOFx1NjE0RVx1NjRDRFx1NEY1QyIsb25PazpmdW5jdGlvbigpe3JldHVybiBFKCkoYSgpKCkubWFyayhmdW5jdGlvbiBVKCl7dmFyIE0sZixQO3JldHVybiBhKCkoKS53cmFwKGZ1bmN0aW9uKF8pe2Zvcig7Oylzd2l0Y2goXy5wcmV2PV8ubmV4dCl7Y2FzZSAwOnJldHVybiBfLm5leHQ9MixGKGkpO2Nhc2UgMjpNPV8uc2VudCxNJiYodShbXSksKGY9bi5jdXJyZW50KT09PW51bGx8fGY9PT12b2lkIDB8fChQPWYucmVsb2FkQW5kUmVzdCk9PT1udWxsfHxQPT09dm9pZCAwfHxQLmNhbGwoZikpO2Nhc2UgNDpjYXNlImVuZCI6cmV0dXJuIF8uc3RvcCgpfX0sVSl9KSkoKX0sb25DYW5jZWw6ZnVuY3Rpb24oKXt9fSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gcC5zdG9wKCl9fSxiKX0pKSxjaGlsZHJlbjpbKDAsci5qc3gpKEIuWix7fSksKDAsci5qc3gpKGMuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InBhZ2VzLnNlYXJjaFRhYmxlLmRlbGV0ZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NTIyMFx1OTY2NCJ9KV19LCJyZW1vdmUiKSwoMCxyLmpzeHMpKEMuWlAse3R5cGU6InByaW1hcnkiLGRhbmdlcjohMCxoaWRkZW46IUcuaGFzUGVybXMoIm1vbml0b3I6bG9naW5pbmZvcjpyZW1vdmUiKSxvbkNsaWNrOkUoKShhKCkoKS5tYXJrKGZ1bmN0aW9uIGIoKXtyZXR1cm4gYSgpKCkud3JhcChmdW5jdGlvbihwKXtmb3IoOzspc3dpdGNoKHAucHJldj1wLm5leHQpe2Nhc2UgMDpXLlouY29uZmlybSh7dGl0bGU6Ilx1NjYyRlx1NTQyNlx1Nzg2RVx1OEJBNFx1NkUwNVx1N0E3QVx1NjI0MFx1NjcwOVx1NjU3MFx1NjM2RVx1OTg3OT8iLGljb246KDAsci5qc3gpKCQuWix7fSksY29udGVudDoiXHU4QkY3XHU4QzI4XHU2MTRFXHU2NENEXHU0RjVDIixvbk9rOmZ1bmN0aW9uKCl7cmV0dXJuIEUoKShhKCkoKS5tYXJrKGZ1bmN0aW9uIFUoKXt2YXIgTSxmLFA7cmV0dXJuIGEoKSgpLndyYXAoZnVuY3Rpb24oXyl7Zm9yKDs7KXN3aXRjaChfLnByZXY9Xy5uZXh0KXtjYXNlIDA6cmV0dXJuIF8ubmV4dD0yLGwoKTtjYXNlIDI6TT1fLnNlbnQsTSYmKHUoW10pLChmPW4uY3VycmVudCk9PT1udWxsfHxmPT09dm9pZCAwfHwoUD1mLnJlbG9hZEFuZFJlc3QpPT09bnVsbHx8UD09PXZvaWQgMHx8UC5jYWxsKGYpKTtjYXNlIDQ6Y2FzZSJlbmQiOnJldHVybiBfLnN0b3AoKX19LFUpfSkpKCl9LG9uQ2FuY2VsOmZ1bmN0aW9uKCl7fX0pO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIHAuc3RvcCgpfX0sYil9KSksY2hpbGRyZW46WygwLHIuanN4KShCLlose30pLCgwLHIuanN4KShjLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJwYWdlcy5zZWFyY2hUYWJsZS5jbGVhbkFsbCIsZGVmYXVsdE1lc3NhZ2U6Ilx1NkUwNVx1N0E3QSJ9KV19LCJjbGVhbiIpLCgwLHIuanN4cykoQy5aUCx7dHlwZToicHJpbWFyeSIsaGlkZGVuOihpPT1udWxsP3ZvaWQgMDppLmxlbmd0aCk9PT0wfHwhRy5oYXNQZXJtcygibW9uaXRvcjpsb2dpbmluZm9yOnVubG9jayIpLG9uQ2xpY2s6RSgpKGEoKSgpLm1hcmsoZnVuY3Rpb24gYigpe3JldHVybiBhKCkoKS53cmFwKGZ1bmN0aW9uKHApe2Zvcig7Oylzd2l0Y2gocC5wcmV2PXAubmV4dCl7Y2FzZSAwOlcuWi5jb25maXJtKHt0aXRsZToiXHU2NjJGXHU1NDI2XHU3ODZFXHU4QkE0XHU4OUUzXHU5NTAxXHU4QkU1XHU3NTI4XHU2MjM3XHU3Njg0XHU2NTcwXHU2MzZFXHU5ODc5PyIsaWNvbjooMCxyLmpzeCkoJC5aLHt9KSxjb250ZW50OiJcdThCRjdcdThDMjhcdTYxNEVcdTY0Q0RcdTRGNUMiLG9uT2s6ZnVuY3Rpb24oKXtyZXR1cm4gRSgpKGEoKSgpLm1hcmsoZnVuY3Rpb24gVSgpe3ZhciBNLGYsUDtyZXR1cm4gYSgpKCkud3JhcChmdW5jdGlvbihfKXtmb3IoOzspc3dpdGNoKF8ucHJldj1fLm5leHQpe2Nhc2UgMDpyZXR1cm4gXy5uZXh0PTIsZyhpWzBdLnVzZXJOYW1lKTtjYXNlIDI6TT1fLnNlbnQsTSYmKHUoW10pLChmPW4uY3VycmVudCk9PT1udWxsfHxmPT09dm9pZCAwfHwoUD1mLnJlbG9hZEFuZFJlc3QpPT09bnVsbHx8UD09PXZvaWQgMHx8UC5jYWxsKGYpKTtjYXNlIDQ6Y2FzZSJlbmQiOnJldHVybiBfLnN0b3AoKX19LFUpfSkpKCl9LG9uQ2FuY2VsOmZ1bmN0aW9uKCl7fX0pO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIHAuc3RvcCgpfX0sYil9KSksY2hpbGRyZW46WygwLHIuanN4KShOLlose30pLCgwLHIuanN4KShjLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJtb25pdG9yLmxvZ2luaW5mb3IudW5sb2NrIixkZWZhdWx0TWVzc2FnZToiXHU4OUUzXHU5NTAxIn0pXX0sInVubG9jayIpLCgwLHIuanN4cykoQy5aUCx7dHlwZToicHJpbWFyeSIsaGlkZGVuOiFHLmhhc1Blcm1zKCJtb25pdG9yOmxvZ2luaW5mb3I6ZXhwb3J0Iiksb25DbGljazpFKCkoYSgpKCkubWFyayhmdW5jdGlvbiBiKCl7cmV0dXJuIGEoKSgpLndyYXAoZnVuY3Rpb24ocCl7Zm9yKDs7KXN3aXRjaChwLnByZXY9cC5uZXh0KXtjYXNlIDA6eSgpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIHAuc3RvcCgpfX0sYil9KSksY2hpbGRyZW46WygwLHIuanN4KShrLlose30pLCgwLHIuanN4KShjLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJwYWdlcy5zZWFyY2hUYWJsZS5leHBvcnQiLGRlZmF1bHRNZXNzYWdlOiJcdTVCRkNcdTUxRkEifSldfSwiZXhwb3J0IildfSxyZXF1ZXN0OmZ1bmN0aW9uKGIpe3JldHVybigwLEEuVTApKGgoKSh7fSxiKSkudGhlbihmdW5jdGlvbihEKXt2YXIgcD17ZGF0YTpELnJvd3MsdG90YWw6RC50b3RhbCxzdWNjZXNzOiEwfTtyZXR1cm4gcH0pfSxjb2x1bW5zOnJlLHJvd1NlbGVjdGlvbjp7b25DaGFuZ2U6ZnVuY3Rpb24oYixEKXt1KEQpfX19LCJsb2dpbmluZm9yTGlzdCIpfSksKGk9PW51bGw/dm9pZCAwOmkubGVuZ3RoKT4wJiYoMCxyLmpzeCkoWi5TLHtleHRyYTooMCxyLmpzeHMpKCJkaXYiLHtjaGlsZHJlbjpbKDAsci5qc3gpKGMuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InBhZ2VzLnNlYXJjaFRhYmxlLmNob3NlbiIsZGVmYXVsdE1lc3NhZ2U6Ilx1NURGMlx1OTAwOVx1NjJFOSJ9KSwoMCxyLmpzeCkoImEiLHtzdHlsZTp7Zm9udFdlaWdodDo2MDB9LGNoaWxkcmVuOmkubGVuZ3RofSksKDAsci5qc3gpKGMuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InBhZ2VzLnNlYXJjaFRhYmxlLml0ZW0iLGRlZmF1bHRNZXNzYWdlOiJcdTk4NzkifSldfSksY2hpbGRyZW46KDAsci5qc3gpKEMuWlAse2RhbmdlcjohMCxoaWRkZW46IUcuaGFzUGVybXMoIm1vbml0b3I6bG9naW5pbmZvcjpyZW1vdmUiKSxvbkNsaWNrOkUoKShhKCkoKS5tYXJrKGZ1bmN0aW9uIFIoKXtyZXR1cm4gYSgpKCkud3JhcChmdW5jdGlvbihEKXtmb3IoOzspc3dpdGNoKEQucHJldj1ELm5leHQpe2Nhc2UgMDpXLlouY29uZmlybSh7dGl0bGU6Ilx1NTIyMFx1OTY2NCIsY29udGVudDoiXHU3ODZFXHU1QjlBXHU1MjIwXHU5NjY0XHU4QkU1XHU5ODc5XHU1NDE3XHVGRjFGIixva1RleHQ6Ilx1Nzg2RVx1OEJBNCIsY2FuY2VsVGV4dDoiXHU1M0Q2XHU2RDg4Iixvbk9rOmZ1bmN0aW9uKCl7dmFyIHA9RSgpKGEoKSgpLm1hcmsoZnVuY3Rpb24gVSgpe3ZhciBNLGYsUDtyZXR1cm4gYSgpKCkud3JhcChmdW5jdGlvbihfKXtmb3IoOzspc3dpdGNoKF8ucHJldj1fLm5leHQpe2Nhc2UgMDpyZXR1cm4gXy5uZXh0PTIsRihpKTtjYXNlIDI6TT1fLnNlbnQsTSYmKHUoW10pLChmPW4uY3VycmVudCk9PT1udWxsfHxmPT09dm9pZCAwfHwoUD1mLnJlbG9hZEFuZFJlc3QpPT09bnVsbHx8UD09PXZvaWQgMHx8UC5jYWxsKGYpKTtjYXNlIDQ6Y2FzZSJlbmQiOnJldHVybiBfLnN0b3AoKX19LFUpfSkpO2Z1bmN0aW9uIEkoKXtyZXR1cm4gcC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIEl9KCl9KTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBELnN0b3AoKX19LFIpfSkpLGNoaWxkcmVuOigwLHIuanN4KShjLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJwYWdlcy5zZWFyY2hUYWJsZS5iYXRjaERlbGV0aW9uIixkZWZhdWx0TWVzc2FnZToiXHU2Mjc5XHU5MUNGXHU1MjIwXHU5NjY0In0pfSwicmVtb3ZlIil9KV19KX07TC5kZWZhdWx0PXR9LDkyOTgyOmZ1bmN0aW9uKEosTCxlKXtlLmQoTCx7SHI6ZnVuY3Rpb24oKXtyZXR1cm4gVn0sUUs6ZnVuY3Rpb24oKXtyZXR1cm4gcn0sVmQ6ZnVuY3Rpb24oKXtyZXR1cm4gQ30sYTc6ZnVuY3Rpb24oKXtyZXR1cm4gTn0saks6ZnVuY3Rpb24oKXtyZXR1cm4gY30sbjI6ZnVuY3Rpb24oKXtyZXR1cm4gen0sb0g6ZnVuY3Rpb24oKXtyZXR1cm4gJH0scFg6ZnVuY3Rpb24oKXtyZXR1cm4gV30sc0Y6ZnVuY3Rpb24oKXtyZXR1cm4gQX19KTt2YXIgdz1lKDE1MDA5KSxoPWUubih3KSxLPWUoOTc4NTcpLG89ZS5uKEspLEg9ZSg5OTI4OSksYT1lLm4oSCksTz1lKDc2NzcyKSxFPWUoMzM4NjcpLGo9ZSgzMDk2NCk7ZnVuY3Rpb24gYyhsKXtyZXR1cm4gbS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gbSgpe3JldHVybiBtPWEoKShoKCkoKS5tYXJrKGZ1bmN0aW9uIGwoZyl7cmV0dXJuIGgoKSgpLndyYXAoZnVuY3Rpb24odCl7Zm9yKDs7KXN3aXRjaCh0LnByZXY9dC5uZXh0KXtjYXNlIDA6cmV0dXJuIHQuYWJydXB0KCJyZXR1cm4iLCgwLE8ucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RpY3QvdHlwZS9saXN0Iix7cGFyYW1zOm8oKSh7fSxnKSxtZXRob2Q6IkdFVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCJ9fSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIHQuc3RvcCgpfX0sbCl9KSksbS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gQyhsKXtyZXR1cm4oMCxPLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS9kaWN0L3R5cGUvIi5jb25jYXQobCkse21ldGhvZDoiR0VUIn0pfWZ1bmN0aW9uIFcobCxnKXtyZXR1cm4gUy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gUygpe3JldHVybiBTPWEoKShoKCkoKS5tYXJrKGZ1bmN0aW9uIGwoZyx5KXt2YXIgdCxUO3JldHVybiBoKCkoKS53cmFwKGZ1bmN0aW9uKG4pe2Zvcig7Oylzd2l0Y2gobi5wcmV2PW4ubmV4dCl7Y2FzZSAwOnJldHVybiBuLm5leHQ9MiwoMCxPLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS9kaWN0L2RhdGEvdHlwZS8iLmNvbmNhdChnKSx7bWV0aG9kOiJHRVQifSk7Y2FzZSAyOmlmKHQ9bi5zZW50LHQuY29kZSE9PUUuaUsuU1VDQ0VTUyl7bi5uZXh0PTk7YnJlYWt9cmV0dXJuIFQ9e30sdC5kYXRhLmZvckVhY2goZnVuY3Rpb24ocyl7VFtzLmRpY3RWYWx1ZV09e3RleHQ6cy5kaWN0TGFiZWwsbGFiZWw6cy5kaWN0TGFiZWwsdmFsdWU6eT9OdW1iZXIocy5kaWN0VmFsdWUpOnMuZGljdFZhbHVlLGtleTpzLmRpY3RDb2RlLGxpc3RDbGFzczpzLmxpc3RDbGFzcyxzdGF0dXM6cy5saXN0Q2xhc3N9fSksbi5hYnJ1cHQoInJldHVybiIsVCk7Y2FzZSA5OnJldHVybiBuLmFicnVwdCgicmV0dXJuIix7fSk7Y2FzZSAxMDpjYXNlImVuZCI6cmV0dXJuIG4uc3RvcCgpfX0sbCl9KSksUy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gVihsLGcpe3JldHVybiBaLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBaKCl7cmV0dXJuIFo9YSgpKGgoKSgpLm1hcmsoZnVuY3Rpb24gbChnLHkpe3ZhciB0LFQ7cmV0dXJuIGgoKSgpLndyYXAoZnVuY3Rpb24obil7Zm9yKDs7KXN3aXRjaChuLnByZXY9bi5uZXh0KXtjYXNlIDA6cmV0dXJuIG4ubmV4dD0yLCgwLE8ucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RpY3QvZGF0YS90eXBlLyIuY29uY2F0KGcpLHttZXRob2Q6IkdFVCJ9KTtjYXNlIDI6aWYodD1uLnNlbnQsdC5jb2RlIT09MjAwKXtuLm5leHQ9NjticmVha31yZXR1cm4gVD10LmRhdGEubWFwKGZ1bmN0aW9uKHMpe3JldHVybnt0ZXh0OnMuZGljdExhYmVsLGxhYmVsOnMuZGljdExhYmVsLHZhbHVlOnk/TnVtYmVyKHMuZGljdFZhbHVlKTpzLmRpY3RWYWx1ZSxrZXk6cy5kaWN0Q29kZSxsaXN0Q2xhc3M6cy5saXN0Q2xhc3Msc3RhdHVzOnMubGlzdENsYXNzfX0pLG4uYWJydXB0KCJyZXR1cm4iLFQpO2Nhc2UgNjpyZXR1cm4gbi5hYnJ1cHQoInJldHVybiIsW10pO2Nhc2UgNzpjYXNlImVuZCI6cmV0dXJuIG4uc3RvcCgpfX0sbCl9KSksWi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gJChsKXtyZXR1cm4gQi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gQigpe3JldHVybiBCPWEoKShoKCkoKS5tYXJrKGZ1bmN0aW9uIGwoZyl7cmV0dXJuIGgoKSgpLndyYXAoZnVuY3Rpb24odCl7Zm9yKDs7KXN3aXRjaCh0LnByZXY9dC5uZXh0KXtjYXNlIDA6cmV0dXJuIHQuYWJydXB0KCJyZXR1cm4iLCgwLE8ucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RpY3QvdHlwZSIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCJ9LGRhdGE6Z30pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiB0LnN0b3AoKX19LGwpfSkpLEIuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIE4obCl7cmV0dXJuIGsuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGsoKXtyZXR1cm4gaz1hKCkoaCgpKCkubWFyayhmdW5jdGlvbiBsKGcpe3JldHVybiBoKCkoKS53cmFwKGZ1bmN0aW9uKHQpe2Zvcig7Oylzd2l0Y2godC5wcmV2PXQubmV4dCl7Y2FzZSAwOnJldHVybiB0LmFicnVwdCgicmV0dXJuIiwoMCxPLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS9kaWN0L3R5cGUiLHttZXRob2Q6IlBVVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCJ9LGRhdGE6Z30pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiB0LnN0b3AoKX19LGwpfSkpLGsuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEEobCl7cmV0dXJuIHguYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHgoKXtyZXR1cm4geD1hKCkoaCgpKCkubWFyayhmdW5jdGlvbiBsKGcpe3JldHVybiBoKCkoKS53cmFwKGZ1bmN0aW9uKHQpe2Zvcig7Oylzd2l0Y2godC5wcmV2PXQubmV4dCl7Y2FzZSAwOnJldHVybiB0LmFicnVwdCgicmV0dXJuIiwoMCxPLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS9kaWN0L3R5cGUvIi5jb25jYXQoZykse21ldGhvZDoiREVMRVRFIn0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiB0LnN0b3AoKX19LGwpfSkpLHguYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHoobCl7cmV0dXJuKDAsai5zdSkoIi9hcGkvc3lzdGVtL2RpY3QvdHlwZS9leHBvcnQiLHtwYXJhbXM6bH0sImRpY3RfdHlwZV8iLmNvbmNhdChuZXcgRGF0ZSgpLmdldFRpbWUoKSwiLnhsc3giKSl9ZnVuY3Rpb24gcihsKXtyZXR1cm4gRi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gRigpe3JldHVybiBGPWEoKShoKCkoKS5tYXJrKGZ1bmN0aW9uIGwoZyl7cmV0dXJuIGgoKSgpLndyYXAoZnVuY3Rpb24odCl7Zm9yKDs7KXN3aXRjaCh0LnByZXY9dC5uZXh0KXtjYXNlIDA6cmV0dXJuIHQuYWJydXB0KCJyZXR1cm4iLCgwLE8ucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RpY3QvdHlwZS9vcHRpb25zZWxlY3QiLHtwYXJhbXM6bygpKHt9LGcpLG1ldGhvZDoiR0VUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In19KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gdC5zdG9wKCl9fSxsKX0pKSxGLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19fV0pOwpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy8yODM2LmQ1NmFjM2VlLmFzeW5jLmpzIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy8yODM2LmQ1NmFjM2VlLmFzeW5jLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY2YjU3NjMKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzI4MzYuZDU2YWMzZWUuYXN5bmMuanMKQEAgLTAsMCArMSwxMiBAQAorKHNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W10pLnB1c2goW1syODM2XSx7NjU4OTk6ZnVuY3Rpb24oKXsidXNlIHN0cmljdCJ9LDUzOTUxOmZ1bmN0aW9uKHMscixlKXtzLmV4cG9ydHM9ZSgyOTY2Nil9LDI5NjY2OmZ1bmN0aW9uKHMscixlKXsidXNlIHN0cmljdCI7dmFyIHQ7dD17dmFsdWU6ITB9O3ZhciBuPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdShtLFMpe2Zvcih2YXIgVD0wO1Q8Uy5sZW5ndGg7VCsrKXt2YXIgYj1TW1RdO2IuZW51bWVyYWJsZT1iLmVudW1lcmFibGV8fCExLGIuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBiJiYoYi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KG0sYi5rZXksYil9fXJldHVybiBmdW5jdGlvbihtLFMsVCl7cmV0dXJuIFMmJnUobS5wcm90b3R5cGUsUyksVCYmdShtLFQpLG19fSgpLGE9ZSgzNjk2MSksaT1jKGEpLG89ZSg2NzI5NCksbD1jKG8pO2Z1bmN0aW9uIGModSl7cmV0dXJuIHUmJnUuX19lc01vZHVsZT91OntkZWZhdWx0OnV9fWZ1bmN0aW9uIF8odSxtKXtpZighKHUgaW5zdGFuY2VvZiBtKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBkKHUsbSl7aWYoIXUpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gbSYmKHR5cGVvZiBtPT0ib2JqZWN0Inx8dHlwZW9mIG09PSJmdW5jdGlvbiIpP206dX1mdW5jdGlvbiBnKHUsbSl7aWYodHlwZW9mIG0hPSJmdW5jdGlvbiImJm0hPT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgIit0eXBlb2YgbSk7dS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShtJiZtLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOnUsZW51bWVyYWJsZTohMSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksbSYmKE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YodSxtKTp1Ll9fcHJvdG9fXz1tKX12YXIgRT1mdW5jdGlvbih1KXtnKG0sdSk7ZnVuY3Rpb24gbShTKXtfKHRoaXMsbSk7dmFyIFQ9ZCh0aGlzLChtLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKG0pKS5jYWxsKHRoaXMsUykpO3JldHVybiBULnNldEVsPVQuc2V0RWwuYmluZChUKSxUfXJldHVybiBuKG0sW3trZXk6ImNvbXBvbmVudERpZE1vdW50Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuaGlnaGxpZ2h0Q29kZSgpfX0se2tleToiY29tcG9uZW50RGlkVXBkYXRlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuaGlnaGxpZ2h0Q29kZSgpfX0se2tleToiaGlnaGxpZ2h0Q29kZSIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFyIFQ9dGhpcy5lbC5xdWVyeVNlbGVjdG9yQWxsKCJwcmUgY29kZSIpLGI9MDtiPFQubGVuZ3RoO2IrKylpLmRlZmF1bHQuaGlnaGxpZ2h0QmxvY2soVFtiXSl9fSx7a2V5OiJzZXRFbCIsdmFsdWU6ZnVuY3Rpb24oVCl7dGhpcy5lbD1UfX0se2tleToicmVuZGVyIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBUPXRoaXMucHJvcHMsYj1ULmNoaWxkcmVuLGY9VC5jbGFzc05hbWUsQz1ULmVsZW1lbnQsTz1ULmlubmVySFRNTCxEPXtyZWY6dGhpcy5zZXRFbCxjbGFzc05hbWU6Zn07cmV0dXJuIE8/KEQuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e19faHRtbDpifSxDP2wuZGVmYXVsdC5jcmVhdGVFbGVtZW50KEMsRCk6bC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIsRCkpOkM/bC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoQyxELGIpOmwuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJwcmUiLHtyZWY6dGhpcy5zZXRFbH0sbC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImNvZGUiLHtjbGFzc05hbWU6Zn0sYikpfX1dKSxtfShsLmRlZmF1bHQuQ29tcG9uZW50KTtFLmRlZmF1bHRQcm9wcz17aW5uZXJIVE1MOiExLGNsYXNzTmFtZTpudWxsLGVsZW1lbnQ6bnVsbH0sci5kZWZhdWx0PUV9LDkxMDg0OmZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHIocCl7cmV0dXJuIHAgaW5zdGFuY2VvZiBNYXA/cC5jbGVhcj1wLmRlbGV0ZT1wLnNldD1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigibWFwIGlzIHJlYWQtb25seSIpfTpwIGluc3RhbmNlb2YgU2V0JiYocC5hZGQ9cC5jbGVhcj1wLmRlbGV0ZT1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigic2V0IGlzIHJlYWQtb25seSIpfSksT2JqZWN0LmZyZWV6ZShwKSxPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhwKS5mb3JFYWNoKGZ1bmN0aW9uKFIpe3ZhciBJPXBbUl07dHlwZW9mIEk9PSJvYmplY3QiJiYhT2JqZWN0LmlzRnJvemVuKEkpJiZyKEkpfSkscH12YXIgZT1yLHQ9cjtlLmRlZmF1bHQ9dDtjbGFzcyBue2NvbnN0cnVjdG9yKFIpe1IuZGF0YT09PXZvaWQgMCYmKFIuZGF0YT17fSksdGhpcy5kYXRhPVIuZGF0YSx0aGlzLmlzTWF0Y2hJZ25vcmVkPSExfWlnbm9yZU1hdGNoKCl7dGhpcy5pc01hdGNoSWdub3JlZD0hMH19ZnVuY3Rpb24gYShwKXtyZXR1cm4gcC5yZXBsYWNlKC8mL2csIiZhbXA7IikucmVwbGFjZSgvPC9nLCImbHQ7IikucmVwbGFjZSgvPi9nLCImZ3Q7IikucmVwbGFjZSgvIi9nLCImcXVvdDsiKS5yZXBsYWNlKC8nL2csIiYjeDI3OyIpfWZ1bmN0aW9uIGkocCwuLi5SKXtjb25zdCBJPU9iamVjdC5jcmVhdGUobnVsbCk7Zm9yKGNvbnN0IHggaW4gcClJW3hdPXBbeF07cmV0dXJuIFIuZm9yRWFjaChmdW5jdGlvbih4KXtmb3IoY29uc3QgeiBpbiB4KUlbel09eFt6XX0pLEl9Y29uc3Qgbz0iPC9zcGFuPiIsbD1wPT4hIXAua2luZDtjbGFzcyBje2NvbnN0cnVjdG9yKFIsSSl7dGhpcy5idWZmZXI9IiIsdGhpcy5jbGFzc1ByZWZpeD1JLmNsYXNzUHJlZml4LFIud2Fsayh0aGlzKX1hZGRUZXh0KFIpe3RoaXMuYnVmZmVyKz1hKFIpfW9wZW5Ob2RlKFIpe2lmKCFsKFIpKXJldHVybjtsZXQgST1SLmtpbmQ7Ui5zdWJsYW5ndWFnZXx8KEk9YCR7dGhpcy5jbGFzc1ByZWZpeH0ke0l9YCksdGhpcy5zcGFuKEkpfWNsb3NlTm9kZShSKXtsKFIpJiYodGhpcy5idWZmZXIrPW8pfXZhbHVlKCl7cmV0dXJuIHRoaXMuYnVmZmVyfXNwYW4oUil7dGhpcy5idWZmZXIrPWA8c3BhbiBjbGFzcz0iJHtSfSI+YH19Y2xhc3MgX3tjb25zdHJ1Y3Rvcigpe3RoaXMucm9vdE5vZGU9e2NoaWxkcmVuOltdfSx0aGlzLnN0YWNrPVt0aGlzLnJvb3ROb2RlXX1nZXQgdG9wKCl7cmV0dXJuIHRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV19Z2V0IHJvb3QoKXtyZXR1cm4gdGhpcy5yb290Tm9kZX1hZGQoUil7dGhpcy50b3AuY2hpbGRyZW4ucHVzaChSKX1vcGVuTm9kZShSKXtjb25zdCBJPXtraW5kOlIsY2hpbGRyZW46W119O3RoaXMuYWRkKEkpLHRoaXMuc3RhY2sucHVzaChJKX1jbG9zZU5vZGUoKXtpZih0aGlzLnN0YWNrLmxlbmd0aD4xKXJldHVybiB0aGlzLnN0YWNrLnBvcCgpfWNsb3NlQWxsTm9kZXMoKXtmb3IoO3RoaXMuY2xvc2VOb2RlKCk7KTt9dG9KU09OKCl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KHRoaXMucm9vdE5vZGUsbnVsbCw0KX13YWxrKFIpe3JldHVybiB0aGlzLmNvbnN0cnVjdG9yLl93YWxrKFIsdGhpcy5yb290Tm9kZSl9c3RhdGljIF93YWxrKFIsSSl7cmV0dXJuIHR5cGVvZiBJPT0ic3RyaW5nIj9SLmFkZFRleHQoSSk6SS5jaGlsZHJlbiYmKFIub3Blbk5vZGUoSSksSS5jaGlsZHJlbi5mb3JFYWNoKHg9PnRoaXMuX3dhbGsoUix4KSksUi5jbG9zZU5vZGUoSSkpLFJ9c3RhdGljIF9jb2xsYXBzZShSKXt0eXBlb2YgUiE9InN0cmluZyImJlIuY2hpbGRyZW4mJihSLmNoaWxkcmVuLmV2ZXJ5KEk9PnR5cGVvZiBJPT0ic3RyaW5nIik/Ui5jaGlsZHJlbj1bUi5jaGlsZHJlbi5qb2luKCIiKV06Ui5jaGlsZHJlbi5mb3JFYWNoKEk9PntfLl9jb2xsYXBzZShJKX0pKX19Y2xhc3MgZCBleHRlbmRzIF97Y29uc3RydWN0b3IoUil7c3VwZXIoKSx0aGlzLm9wdGlvbnM9Un1hZGRLZXl3b3JkKFIsSSl7UiE9PSIiJiYodGhpcy5vcGVuTm9kZShJKSx0aGlzLmFkZFRleHQoUiksdGhpcy5jbG9zZU5vZGUoKSl9YWRkVGV4dChSKXtSIT09IiImJnRoaXMuYWRkKFIpfWFkZFN1Ymxhbmd1YWdlKFIsSSl7Y29uc3QgeD1SLnJvb3Q7eC5raW5kPUkseC5zdWJsYW5ndWFnZT0hMCx0aGlzLmFkZCh4KX10b0hUTUwoKXtyZXR1cm4gbmV3IGModGhpcyx0aGlzLm9wdGlvbnMpLnZhbHVlKCl9ZmluYWxpemUoKXtyZXR1cm4hMH19ZnVuY3Rpb24gZyhwKXtyZXR1cm4gbmV3IFJlZ0V4cChwLnJlcGxhY2UoL1stL1xcXiQqKz8uKCl8W1xde31dL2csIlxcJCYiKSwibSIpfWZ1bmN0aW9uIEUocCl7cmV0dXJuIHA/dHlwZW9mIHA9PSJzdHJpbmciP3A6cC5zb3VyY2U6bnVsbH1mdW5jdGlvbiB1KC4uLnApe3JldHVybiBwLm1hcChJPT5FKEkpKS5qb2luKCIiKX1mdW5jdGlvbiBtKC4uLnApe3JldHVybiIoIitwLm1hcChJPT5FKEkpKS5qb2luKCJ8IikrIikifWZ1bmN0aW9uIFMocCl7cmV0dXJuIG5ldyBSZWdFeHAocC50b1N0cmluZygpKyJ8IikuZXhlYygiIikubGVuZ3RoLTF9ZnVuY3Rpb24gVChwLFIpe2NvbnN0IEk9cCYmcC5leGVjKFIpO3JldHVybiBJJiZJLmluZGV4PT09MH1jb25zdCBiPS9cWyg/OlteXFxcXV18XFwuKSpcXXxcKFw/P3xcXChbMS05XVswLTldKil8XFwuLztmdW5jdGlvbiBmKHAsUj0ifCIpe2xldCBJPTA7cmV0dXJuIHAubWFwKHg9PntJKz0xO2NvbnN0IHo9STtsZXQgVz1FKHgpLHRlPSIiO2Zvcig7Vy5sZW5ndGg+MDspe2NvbnN0IHY9Yi5leGVjKFcpO2lmKCF2KXt0ZSs9VzticmVha310ZSs9Vy5zdWJzdHJpbmcoMCx2LmluZGV4KSxXPVcuc3Vic3RyaW5nKHYuaW5kZXgrdlswXS5sZW5ndGgpLHZbMF1bMF09PT0iXFwiJiZ2WzFdP3RlKz0iXFwiK1N0cmluZyhOdW1iZXIodlsxXSkreik6KHRlKz12WzBdLHZbMF09PT0iKCImJkkrKyl9cmV0dXJuIHRlfSkubWFwKHg9PmAoJHt4fSlgKS5qb2luKFIpfWNvbnN0IEM9L1xiXEIvLE89IlthLXpBLVpdXFx3KiIsRD0iW2EtekEtWl9dXFx3KiIseT0iXFxiXFxkKyhcXC5cXGQrKT8iLEE9IigtPykoXFxiMFt4WF1bYS1mQS1GMC05XSt8KFxcYlxcZCsoXFwuXFxkKik/fFxcLlxcZCspKFtlRV1bLStdP1xcZCspPykiLGs9IlxcYigwYlswMV0rKSIsQj0iIXwhPXwhPT18JXwlPXwmfCYmfCY9fFxcKnxcXCo9fFxcK3xcXCs9fCx8LXwtPXwvPXwvfDp8O3w8PHw8PD18PD18PHw9PT18PT18PXw+Pj49fD4+PXw+PXw+Pj58Pj58PnxcXD98XFxbfFxce3xcXCh8XFxefFxcXj18XFx8fFxcfD18XFx8XFx8fH4iLEY9KHA9e30pPT57Y29uc3QgUj0vXiMhWyBdKlwvLztyZXR1cm4gcC5iaW5hcnkmJihwLmJlZ2luPXUoUiwvLipcYi8scC5iaW5hcnksL1xiLiovKSksaSh7Y2xhc3NOYW1lOiJtZXRhIixiZWdpbjpSLGVuZDovJC8scmVsZXZhbmNlOjAsIm9uOmJlZ2luIjooSSx4KT0+e0kuaW5kZXghPT0wJiZ4Lmlnbm9yZU1hdGNoKCl9fSxwKX0sSz17YmVnaW46IlxcXFxbXFxzXFxTXSIscmVsZXZhbmNlOjB9LHc9e2NsYXNzTmFtZToic3RyaW5nIixiZWdpbjoiJyIsZW5kOiInIixpbGxlZ2FsOiJcXG4iLGNvbnRhaW5zOltLXX0sWD17Y2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOiciJyxlbmQ6JyInLGlsbGVnYWw6IlxcbiIsY29udGFpbnM6W0tdfSxjZT17YmVnaW46L1xiKGF8YW58dGhlfGFyZXxJJ218aXNuJ3R8ZG9uJ3R8ZG9lc24ndHx3b24ndHxidXR8anVzdHxzaG91bGR8cHJldHR5fHNpbXBseXxlbm91Z2h8Z29ubmF8Z29pbmd8d3RmfHNvfHN1Y2h8d2lsbHx5b3V8eW91cnx0aGV5fGxpa2V8bW9yZSlcYi99LGFlPWZ1bmN0aW9uKHAsUixJPXt9KXtjb25zdCB4PWkoe2NsYXNzTmFtZToiY29tbWVudCIsYmVnaW46cCxlbmQ6Uixjb250YWluczpbXX0sSSk7cmV0dXJuIHguY29udGFpbnMucHVzaChjZSkseC5jb250YWlucy5wdXNoKHtjbGFzc05hbWU6ImRvY3RhZyIsYmVnaW46Iig/OlRPRE98RklYTUV8Tk9URXxCVUd8T1BUSU1JWkV8SEFDS3xYWFgpOiIscmVsZXZhbmNlOjB9KSx4fSxaPWFlKCIvLyIsIiQiKSxKPWFlKCIvXFwqIiwiXFwqLyIpLG9lPWFlKCIjIiwiJCIpLHNlPXtjbGFzc05hbWU6Im51bWJlciIsYmVnaW46eSxyZWxldmFuY2U6MH0sX2U9e2NsYXNzTmFtZToibnVtYmVyIixiZWdpbjpBLHJlbGV2YW5jZTowfSxEZT17Y2xhc3NOYW1lOiJudW1iZXIiLGJlZ2luOmsscmVsZXZhbmNlOjB9LFVlPXtjbGFzc05hbWU6Im51bWJlciIsYmVnaW46eSsiKCV8ZW18ZXh8Y2h8cmVtfHZ3fHZofHZtaW58dm1heHxjbXxtbXxpbnxwdHxwY3xweHxkZWd8Z3JhZHxyYWR8dHVybnxzfG1zfEh6fGtIenxkcGl8ZHBjbXxkcHB4KT8iLHJlbGV2YW5jZTowfSxnZT17YmVnaW46Lyg/PVwvW14vXG5dKlwvKS8sY29udGFpbnM6W3tjbGFzc05hbWU6InJlZ2V4cCIsYmVnaW46L1wvLyxlbmQ6L1wvW2dpbXV5XSovLGlsbGVnYWw6L1xuLyxjb250YWluczpbSyx7YmVnaW46L1xbLyxlbmQ6L1xdLyxyZWxldmFuY2U6MCxjb250YWluczpbS119XX1dfSxTZT17Y2xhc3NOYW1lOiJ0aXRsZSIsYmVnaW46TyxyZWxldmFuY2U6MH0sUmU9e2NsYXNzTmFtZToidGl0bGUiLGJlZ2luOkQscmVsZXZhbmNlOjB9LGRlPXtiZWdpbjoiXFwuXFxzKiIrRCxyZWxldmFuY2U6MH07dmFyIHVlPU9iamVjdC5mcmVlemUoe19fcHJvdG9fXzpudWxsLE1BVENIX05PVEhJTkdfUkU6QyxJREVOVF9SRTpPLFVOREVSU0NPUkVfSURFTlRfUkU6RCxOVU1CRVJfUkU6eSxDX05VTUJFUl9SRTpBLEJJTkFSWV9OVU1CRVJfUkU6ayxSRV9TVEFSVEVSU19SRTpCLFNIRUJBTkc6RixCQUNLU0xBU0hfRVNDQVBFOkssQVBPU19TVFJJTkdfTU9ERTp3LFFVT1RFX1NUUklOR19NT0RFOlgsUEhSQVNBTF9XT1JEU19NT0RFOmNlLENPTU1FTlQ6YWUsQ19MSU5FX0NPTU1FTlRfTU9ERTpaLENfQkxPQ0tfQ09NTUVOVF9NT0RFOkosSEFTSF9DT01NRU5UX01PREU6b2UsTlVNQkVSX01PREU6c2UsQ19OVU1CRVJfTU9ERTpfZSxCSU5BUllfTlVNQkVSX01PREU6RGUsQ1NTX05VTUJFUl9NT0RFOlVlLFJFR0VYUF9NT0RFOmdlLFRJVExFX01PREU6U2UsVU5ERVJTQ09SRV9USVRMRV9NT0RFOlJlLE1FVEhPRF9HVUFSRDpkZSxFTkRfU0FNRV9BU19CRUdJTjpmdW5jdGlvbihwKXtyZXR1cm4gT2JqZWN0LmFzc2lnbihwLHsib246YmVnaW4iOihSLEkpPT57SS5kYXRhLl9iZWdpbk1hdGNoPVJbMV19LCJvbjplbmQiOihSLEkpPT57SS5kYXRhLl9iZWdpbk1hdGNoIT09UlsxXSYmSS5pZ25vcmVNYXRjaCgpfX0pfX0pO2Z1bmN0aW9uIE1lKHAsUil7cC5pbnB1dFtwLmluZGV4LTFdPT09Ii4iJiZSLmlnbm9yZU1hdGNoKCl9ZnVuY3Rpb24gZmUocCxSKXtSJiZwLmJlZ2luS2V5d29yZHMmJihwLmJlZ2luPSJcXGIoIitwLmJlZ2luS2V5d29yZHMuc3BsaXQoIiAiKS5qb2luKCJ8IikrIikoPyFcXC4pKD89XFxifFxccykiLHAuX19iZWZvcmVCZWdpbj1NZSxwLmtleXdvcmRzPXAua2V5d29yZHN8fHAuYmVnaW5LZXl3b3JkcyxkZWxldGUgcC5iZWdpbktleXdvcmRzLHAucmVsZXZhbmNlPT09dm9pZCAwJiYocC5yZWxldmFuY2U9MCkpfWZ1bmN0aW9uIE5lKHAsUil7QXJyYXkuaXNBcnJheShwLmlsbGVnYWwpJiYocC5pbGxlZ2FsPW0oLi4ucC5pbGxlZ2FsKSl9ZnVuY3Rpb24gQ2UocCxSKXtpZihwLm1hdGNoKXtpZihwLmJlZ2lufHxwLmVuZCl0aHJvdyBuZXcgRXJyb3IoImJlZ2luICYgZW5kIGFyZSBub3Qgc3VwcG9ydGVkIHdpdGggbWF0Y2giKTtwLmJlZ2luPXAubWF0Y2gsZGVsZXRlIHAubWF0Y2h9fWZ1bmN0aW9uIFZlKHAsUil7cC5yZWxldmFuY2U9PT12b2lkIDAmJihwLnJlbGV2YW5jZT0xKX1jb25zdCBqZT1bIm9mIiwiYW5kIiwiZm9yIiwiaW4iLCJub3QiLCJvciIsImlmIiwidGhlbiIsInBhcmVudCIsImxpc3QiLCJ2YWx1ZSJdLGV0PSJrZXl3b3JkIjtmdW5jdGlvbiBMZShwLFIsST1ldCl7Y29uc3QgeD17fTtyZXR1cm4gdHlwZW9mIHA9PSJzdHJpbmciP3ooSSxwLnNwbGl0KCIgIikpOkFycmF5LmlzQXJyYXkocCk/eihJLHApOk9iamVjdC5rZXlzKHApLmZvckVhY2goZnVuY3Rpb24oVyl7T2JqZWN0LmFzc2lnbih4LExlKHBbV10sUixXKSl9KSx4O2Z1bmN0aW9uIHooVyx0ZSl7UiYmKHRlPXRlLm1hcCh2PT52LnRvTG93ZXJDYXNlKCkpKSx0ZS5mb3JFYWNoKGZ1bmN0aW9uKHYpe2NvbnN0IEw9di5zcGxpdCgifCIpO3hbTFswXV09W1csdHQoTFswXSxMWzFdKV19KX19ZnVuY3Rpb24gdHQocCxSKXtyZXR1cm4gUj9OdW1iZXIoUik6bnQocCk/MDoxfWZ1bmN0aW9uIG50KHApe3JldHVybiBqZS5pbmNsdWRlcyhwLnRvTG93ZXJDYXNlKCkpfWZ1bmN0aW9uIGF0KHAse3BsdWdpbnM6Un0pe2Z1bmN0aW9uIEkodixMKXtyZXR1cm4gbmV3IFJlZ0V4cChFKHYpLCJtIisocC5jYXNlX2luc2Vuc2l0aXZlPyJpIjoiIikrKEw/ImciOiIiKSl9Y2xhc3MgeHtjb25zdHJ1Y3Rvcigpe3RoaXMubWF0Y2hJbmRleGVzPXt9LHRoaXMucmVnZXhlcz1bXSx0aGlzLm1hdGNoQXQ9MSx0aGlzLnBvc2l0aW9uPTB9YWRkUnVsZShMLFUpe1UucG9zaXRpb249dGhpcy5wb3NpdGlvbisrLHRoaXMubWF0Y2hJbmRleGVzW3RoaXMubWF0Y2hBdF09VSx0aGlzLnJlZ2V4ZXMucHVzaChbVSxMXSksdGhpcy5tYXRjaEF0Kz1TKEwpKzF9Y29tcGlsZSgpe3RoaXMucmVnZXhlcy5sZW5ndGg9PT0wJiYodGhpcy5leGVjPSgpPT5udWxsKTtjb25zdCBMPXRoaXMucmVnZXhlcy5tYXAoVT0+VVsxXSk7dGhpcy5tYXRjaGVyUmU9SShmKEwpLCEwKSx0aGlzLmxhc3RJbmRleD0wfWV4ZWMoTCl7dGhpcy5tYXRjaGVyUmUubGFzdEluZGV4PXRoaXMubGFzdEluZGV4O2NvbnN0IFU9dGhpcy5tYXRjaGVyUmUuZXhlYyhMKTtpZighVSlyZXR1cm4gbnVsbDtjb25zdCBHPVUuZmluZEluZGV4KChPZSxzdCk9PnN0PjAmJk9lIT09dm9pZCAwKSxqPXRoaXMubWF0Y2hJbmRleGVzW0ddO3JldHVybiBVLnNwbGljZSgwLEcpLE9iamVjdC5hc3NpZ24oVSxqKX19Y2xhc3Mgentjb25zdHJ1Y3Rvcigpe3RoaXMucnVsZXM9W10sdGhpcy5tdWx0aVJlZ2V4ZXM9W10sdGhpcy5jb3VudD0wLHRoaXMubGFzdEluZGV4PTAsdGhpcy5yZWdleEluZGV4PTB9Z2V0TWF0Y2hlcihMKXtpZih0aGlzLm11bHRpUmVnZXhlc1tMXSlyZXR1cm4gdGhpcy5tdWx0aVJlZ2V4ZXNbTF07Y29uc3QgVT1uZXcgeDtyZXR1cm4gdGhpcy5ydWxlcy5zbGljZShMKS5mb3JFYWNoKChbRyxqXSk9PlUuYWRkUnVsZShHLGopKSxVLmNvbXBpbGUoKSx0aGlzLm11bHRpUmVnZXhlc1tMXT1VLFV9cmVzdW1pbmdTY2FuQXRTYW1lUG9zaXRpb24oKXtyZXR1cm4gdGhpcy5yZWdleEluZGV4IT09MH1jb25zaWRlckFsbCgpe3RoaXMucmVnZXhJbmRleD0wfWFkZFJ1bGUoTCxVKXt0aGlzLnJ1bGVzLnB1c2goW0wsVV0pLFUudHlwZT09PSJiZWdpbiImJnRoaXMuY291bnQrK31leGVjKEwpe2NvbnN0IFU9dGhpcy5nZXRNYXRjaGVyKHRoaXMucmVnZXhJbmRleCk7VS5sYXN0SW5kZXg9dGhpcy5sYXN0SW5kZXg7bGV0IEc9VS5leGVjKEwpO2lmKHRoaXMucmVzdW1pbmdTY2FuQXRTYW1lUG9zaXRpb24oKSYmIShHJiZHLmluZGV4PT09dGhpcy5sYXN0SW5kZXgpKXtjb25zdCBqPXRoaXMuZ2V0TWF0Y2hlcigwKTtqLmxhc3RJbmRleD10aGlzLmxhc3RJbmRleCsxLEc9ai5leGVjKEwpfXJldHVybiBHJiYodGhpcy5yZWdleEluZGV4Kz1HLnBvc2l0aW9uKzEsdGhpcy5yZWdleEluZGV4PT09dGhpcy5jb3VudCYmdGhpcy5jb25zaWRlckFsbCgpKSxHfX1mdW5jdGlvbiBXKHYpe2NvbnN0IEw9bmV3IHo7cmV0dXJuIHYuY29udGFpbnMuZm9yRWFjaChVPT5MLmFkZFJ1bGUoVS5iZWdpbix7cnVsZTpVLHR5cGU6ImJlZ2luIn0pKSx2LnRlcm1pbmF0b3JFbmQmJkwuYWRkUnVsZSh2LnRlcm1pbmF0b3JFbmQse3R5cGU6ImVuZCJ9KSx2LmlsbGVnYWwmJkwuYWRkUnVsZSh2LmlsbGVnYWwse3R5cGU6ImlsbGVnYWwifSksTH1mdW5jdGlvbiB0ZSh2LEwpe2NvbnN0IFU9djtpZih2LmlzQ29tcGlsZWQpcmV0dXJuIFU7W0NlXS5mb3JFYWNoKGo9PmoodixMKSkscC5jb21waWxlckV4dGVuc2lvbnMuZm9yRWFjaChqPT5qKHYsTCkpLHYuX19iZWZvcmVCZWdpbj1udWxsLFtmZSxOZSxWZV0uZm9yRWFjaChqPT5qKHYsTCkpLHYuaXNDb21waWxlZD0hMDtsZXQgRz1udWxsO2lmKHR5cGVvZiB2LmtleXdvcmRzPT0ib2JqZWN0IiYmKEc9di5rZXl3b3Jkcy4kcGF0dGVybixkZWxldGUgdi5rZXl3b3Jkcy4kcGF0dGVybiksdi5rZXl3b3JkcyYmKHYua2V5d29yZHM9TGUodi5rZXl3b3JkcyxwLmNhc2VfaW5zZW5zaXRpdmUpKSx2LmxleGVtZXMmJkcpdGhyb3cgbmV3IEVycm9yKCJFUlI6IFByZWZlciBga2V5d29yZHMuJHBhdHRlcm5gIHRvIGBtb2RlLmxleGVtZXNgLCBCT1RIIGFyZSBub3QgYWxsb3dlZC4gKHNlZSBtb2RlIHJlZmVyZW5jZSkgIik7cmV0dXJuIEc9R3x8di5sZXhlbWVzfHwvXHcrLyxVLmtleXdvcmRQYXR0ZXJuUmU9SShHLCEwKSxMJiYodi5iZWdpbnx8KHYuYmVnaW49L1xCfFxiLyksVS5iZWdpblJlPUkodi5iZWdpbiksdi5lbmRTYW1lQXNCZWdpbiYmKHYuZW5kPXYuYmVnaW4pLCF2LmVuZCYmIXYuZW5kc1dpdGhQYXJlbnQmJih2LmVuZD0vXEJ8XGIvKSx2LmVuZCYmKFUuZW5kUmU9SSh2LmVuZCkpLFUudGVybWluYXRvckVuZD1FKHYuZW5kKXx8IiIsdi5lbmRzV2l0aFBhcmVudCYmTC50ZXJtaW5hdG9yRW5kJiYoVS50ZXJtaW5hdG9yRW5kKz0odi5lbmQ/InwiOiIiKStMLnRlcm1pbmF0b3JFbmQpKSx2LmlsbGVnYWwmJihVLmlsbGVnYWxSZT1JKHYuaWxsZWdhbCkpLHYuY29udGFpbnN8fCh2LmNvbnRhaW5zPVtdKSx2LmNvbnRhaW5zPVtdLmNvbmNhdCguLi52LmNvbnRhaW5zLm1hcChmdW5jdGlvbihqKXtyZXR1cm4gVGUoaj09PSJzZWxmIj92OmopfSkpLHYuY29udGFpbnMuZm9yRWFjaChmdW5jdGlvbihqKXt0ZShqLFUpfSksdi5zdGFydHMmJnRlKHYuc3RhcnRzLEwpLFUubWF0Y2hlcj1XKFUpLFV9aWYocC5jb21waWxlckV4dGVuc2lvbnN8fChwLmNvbXBpbGVyRXh0ZW5zaW9ucz1bXSkscC5jb250YWlucyYmcC5jb250YWlucy5pbmNsdWRlcygic2VsZiIpKXRocm93IG5ldyBFcnJvcigiRVJSOiBjb250YWlucyBgc2VsZmAgaXMgbm90IHN1cHBvcnRlZCBhdCB0aGUgdG9wLWxldmVsIG9mIGEgbGFuZ3VhZ2UuICBTZWUgZG9jdW1lbnRhdGlvbi4iKTtyZXR1cm4gcC5jbGFzc05hbWVBbGlhc2VzPWkocC5jbGFzc05hbWVBbGlhc2VzfHx7fSksdGUocCl9ZnVuY3Rpb24gdmUocCl7cmV0dXJuIHA/cC5lbmRzV2l0aFBhcmVudHx8dmUocC5zdGFydHMpOiExfWZ1bmN0aW9uIFRlKHApe3JldHVybiBwLnZhcmlhbnRzJiYhcC5jYWNoZWRWYXJpYW50cyYmKHAuY2FjaGVkVmFyaWFudHM9cC52YXJpYW50cy5tYXAoZnVuY3Rpb24oUil7cmV0dXJuIGkocCx7dmFyaWFudHM6bnVsbH0sUil9KSkscC5jYWNoZWRWYXJpYW50cz9wLmNhY2hlZFZhcmlhbnRzOnZlKHApP2kocCx7c3RhcnRzOnAuc3RhcnRzP2kocC5zdGFydHMpOm51bGx9KTpPYmplY3QuaXNGcm96ZW4ocCk/aShwKTpwfXZhciBpdD0iMTAuNy4zIjtmdW5jdGlvbiBydChwKXtyZXR1cm4hIShwfHxwPT09IiIpfWZ1bmN0aW9uIHFlKHApe2NvbnN0IFI9e3Byb3BzOlsibGFuZ3VhZ2UiLCJjb2RlIiwiYXV0b2RldGVjdCJdLGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57ZGV0ZWN0ZWRMYW5ndWFnZToiIix1bmtub3duTGFuZ3VhZ2U6ITF9fSxjb21wdXRlZDp7Y2xhc3NOYW1lKCl7cmV0dXJuIHRoaXMudW5rbm93bkxhbmd1YWdlPyIiOiJobGpzICIrdGhpcy5kZXRlY3RlZExhbmd1YWdlfSxoaWdobGlnaHRlZCgpe2lmKCF0aGlzLmF1dG9EZXRlY3QmJiFwLmdldExhbmd1YWdlKHRoaXMubGFuZ3VhZ2UpKXJldHVybiBjb25zb2xlLndhcm4oYFRoZSBsYW5ndWFnZSAiJHt0aGlzLmxhbmd1YWdlfSIgeW91IHNwZWNpZmllZCBjb3VsZCBub3QgYmUgZm91bmQuYCksdGhpcy51bmtub3duTGFuZ3VhZ2U9ITAsYSh0aGlzLmNvZGUpO2xldCB4PXt9O3JldHVybiB0aGlzLmF1dG9EZXRlY3Q/KHg9cC5oaWdobGlnaHRBdXRvKHRoaXMuY29kZSksdGhpcy5kZXRlY3RlZExhbmd1YWdlPXgubGFuZ3VhZ2UpOih4PXAuaGlnaGxpZ2h0KHRoaXMubGFuZ3VhZ2UsdGhpcy5jb2RlLHRoaXMuaWdub3JlSWxsZWdhbHMpLHRoaXMuZGV0ZWN0ZWRMYW5ndWFnZT10aGlzLmxhbmd1YWdlKSx4LnZhbHVlfSxhdXRvRGV0ZWN0KCl7cmV0dXJuIXRoaXMubGFuZ3VhZ2V8fHJ0KHRoaXMuYXV0b2RldGVjdCl9LGlnbm9yZUlsbGVnYWxzKCl7cmV0dXJuITB9fSxyZW5kZXIoeCl7cmV0dXJuIHgoInByZSIse30sW3goImNvZGUiLHtjbGFzczp0aGlzLmNsYXNzTmFtZSxkb21Qcm9wczp7aW5uZXJIVE1MOnRoaXMuaGlnaGxpZ2h0ZWR9fSldKX19O3JldHVybntDb21wb25lbnQ6UixWdWVQbHVnaW46e2luc3RhbGwoeCl7eC5jb21wb25lbnQoImhpZ2hsaWdodGpzIixSKX19fX1jb25zdCBvdD17ImFmdGVyOmhpZ2hsaWdodEVsZW1lbnQiOih7ZWw6cCxyZXN1bHQ6Uix0ZXh0Okl9KT0+e2NvbnN0IHg9V2UocCk7aWYoIXgubGVuZ3RoKXJldHVybjtjb25zdCB6PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3ouaW5uZXJIVE1MPVIudmFsdWUsUi52YWx1ZT16ZSh4LFdlKHopLEkpfX07ZnVuY3Rpb24geGUocCl7cmV0dXJuIHAubm9kZU5hbWUudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiBXZShwKXtjb25zdCBSPVtdO3JldHVybiBmdW5jdGlvbiBJKHgseil7Zm9yKGxldCBXPXguZmlyc3RDaGlsZDtXO1c9Vy5uZXh0U2libGluZylXLm5vZGVUeXBlPT09Mz96Kz1XLm5vZGVWYWx1ZS5sZW5ndGg6Vy5ub2RlVHlwZT09PTEmJihSLnB1c2goe2V2ZW50OiJzdGFydCIsb2Zmc2V0Onosbm9kZTpXfSksej1JKFcseikseGUoVykubWF0Y2goL2JyfGhyfGltZ3xpbnB1dC8pfHxSLnB1c2goe2V2ZW50OiJzdG9wIixvZmZzZXQ6eixub2RlOld9KSk7cmV0dXJuIHp9KHAsMCksUn1mdW5jdGlvbiB6ZShwLFIsSSl7bGV0IHg9MCx6PSIiO2NvbnN0IFc9W107ZnVuY3Rpb24gdGUoKXtyZXR1cm4hcC5sZW5ndGh8fCFSLmxlbmd0aD9wLmxlbmd0aD9wOlI6cFswXS5vZmZzZXQhPT1SWzBdLm9mZnNldD9wWzBdLm9mZnNldDxSWzBdLm9mZnNldD9wOlI6UlswXS5ldmVudD09PSJzdGFydCI/cDpSfWZ1bmN0aW9uIHYoRyl7ZnVuY3Rpb24gaihPZSl7cmV0dXJuIiAiK09lLm5vZGVOYW1lKyc9IicrYShPZS52YWx1ZSkrJyInfXorPSI8Iit4ZShHKStbXS5tYXAuY2FsbChHLmF0dHJpYnV0ZXMsaikuam9pbigiIikrIj4ifWZ1bmN0aW9uIEwoRyl7eis9IjwvIit4ZShHKSsiPiJ9ZnVuY3Rpb24gVShHKXsoRy5ldmVudD09PSJzdGFydCI/djpMKShHLm5vZGUpfWZvcig7cC5sZW5ndGh8fFIubGVuZ3RoOyl7bGV0IEc9dGUoKTtpZih6Kz1hKEkuc3Vic3RyaW5nKHgsR1swXS5vZmZzZXQpKSx4PUdbMF0ub2Zmc2V0LEc9PT1wKXtXLnJldmVyc2UoKS5mb3JFYWNoKEwpO2RvIFUoRy5zcGxpY2UoMCwxKVswXSksRz10ZSgpO3doaWxlKEc9PT1wJiZHLmxlbmd0aCYmR1swXS5vZmZzZXQ9PT14KTtXLnJldmVyc2UoKS5mb3JFYWNoKHYpfWVsc2UgR1swXS5ldmVudD09PSJzdGFydCI/Vy5wdXNoKEdbMF0ubm9kZSk6Vy5wb3AoKSxVKEcuc3BsaWNlKDAsMSlbMF0pfXJldHVybiB6K2EoSS5zdWJzdHIoeCkpfWNvbnN0IEtlPXt9LGtlPXA9Pntjb25zb2xlLmVycm9yKHApfSwkZT0ocCwuLi5SKT0+e2NvbnNvbGUubG9nKGBXQVJOOiAke3B9YCwuLi5SKX0sbGU9KHAsUik9PntLZVtgJHtwfS8ke1J9YF18fChjb25zb2xlLmxvZyhgRGVwcmVjYXRlZCBhcyBvZiAke3B9LiAke1J9YCksS2VbYCR7cH0vJHtSfWBdPSEwKX0sJD1hLEZlPWksQmU9U3ltYm9sKCJub21hdGNoIik7dmFyIGJ0PWZ1bmN0aW9uKHApe2NvbnN0IFI9T2JqZWN0LmNyZWF0ZShudWxsKSxJPU9iamVjdC5jcmVhdGUobnVsbCkseD1bXTtsZXQgej0hMDtjb25zdCBXPS8oXig8W14+XSs+fFx0fCkrfFxuKS9nbSx0ZT0iQ291bGQgbm90IGZpbmQgdGhlIGxhbmd1YWdlICd7fScsIGRpZCB5b3UgZm9yZ2V0IHRvIGxvYWQvaW5jbHVkZSBhIGxhbmd1YWdlIG1vZHVsZT8iLHY9e2Rpc2FibGVBdXRvZGV0ZWN0OiEwLG5hbWU6IlBsYWluIHRleHQiLGNvbnRhaW5zOltdfTtsZXQgTD17bm9IaWdobGlnaHRSZTovXihuby0/aGlnaGxpZ2h0KSQvaSxsYW5ndWFnZURldGVjdFJlOi9cYmxhbmcoPzp1YWdlKT8tKFtcdy1dKylcYi9pLGNsYXNzUHJlZml4OiJobGpzLSIsdGFiUmVwbGFjZTpudWxsLHVzZUJSOiExLGxhbmd1YWdlczpudWxsLF9fZW1pdHRlcjpkfTtmdW5jdGlvbiBVKE4pe3JldHVybiBMLm5vSGlnaGxpZ2h0UmUudGVzdChOKX1mdW5jdGlvbiBHKE4pe2xldCBoPU4uY2xhc3NOYW1lKyIgIjtoKz1OLnBhcmVudE5vZGU/Ti5wYXJlbnROb2RlLmNsYXNzTmFtZToiIjtjb25zdCBWPUwubGFuZ3VhZ2VEZXRlY3RSZS5leGVjKGgpO2lmKFYpe2NvbnN0IFE9YmUoVlsxXSk7cmV0dXJuIFF8fCgkZSh0ZS5yZXBsYWNlKCJ7fSIsVlsxXSkpLCRlKCJGYWxsaW5nIGJhY2sgdG8gbm8taGlnaGxpZ2h0IG1vZGUgZm9yIHRoaXMgYmxvY2suIixOKSksUT9WWzFdOiJuby1oaWdobGlnaHQifXJldHVybiBoLnNwbGl0KC9ccysvKS5maW5kKFE9PlUoUSl8fGJlKFEpKX1mdW5jdGlvbiBqKE4saCxWLFEpe2xldCBuZT0iIix5ZT0iIjt0eXBlb2YgaD09Im9iamVjdCI/KG5lPU4sVj1oLmlnbm9yZUlsbGVnYWxzLHllPWgubGFuZ3VhZ2UsUT12b2lkIDApOihsZSgiMTAuNy4wIiwiaGlnaGxpZ2h0KGxhbmcsIGNvZGUsIC4uLmFyZ3MpIGhhcyBiZWVuIGRlcHJlY2F0ZWQuIiksbGUoIjEwLjcuMCIsYFBsZWFzZSB1c2UgaGlnaGxpZ2h0KGNvZGUsIG9wdGlvbnMpIGluc3RlYWQuCitodHRwczovL2dpdGh1Yi5jb20vaGlnaGxpZ2h0anMvaGlnaGxpZ2h0LmpzL2lzc3Vlcy8yMjc3YCkseWU9TixuZT1oKTtjb25zdCBFZT17Y29kZTpuZSxsYW5ndWFnZTp5ZX07WGUoImJlZm9yZTpoaWdobGlnaHQiLEVlKTtjb25zdCBtZT1FZS5yZXN1bHQ/RWUucmVzdWx0Ok9lKEVlLmxhbmd1YWdlLEVlLmNvZGUsVixRKTtyZXR1cm4gbWUuY29kZT1FZS5jb2RlLFhlKCJhZnRlcjpoaWdobGlnaHQiLG1lKSxtZX1mdW5jdGlvbiBPZShOLGgsVixRKXtmdW5jdGlvbiBuZShNLFApe2NvbnN0IFk9UGUuY2FzZV9pbnNlbnNpdGl2ZT9QWzBdLnRvTG93ZXJDYXNlKCk6UFswXTtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKE0ua2V5d29yZHMsWSkmJk0ua2V5d29yZHNbWV19ZnVuY3Rpb24geWUoKXtpZighSC5rZXl3b3Jkcyl7cmUuYWRkVGV4dChlZSk7cmV0dXJufWxldCBNPTA7SC5rZXl3b3JkUGF0dGVyblJlLmxhc3RJbmRleD0wO2xldCBQPUgua2V5d29yZFBhdHRlcm5SZS5leGVjKGVlKSxZPSIiO2Zvcig7UDspe1krPWVlLnN1YnN0cmluZyhNLFAuaW5kZXgpO2NvbnN0IHE9bmUoSCxQKTtpZihxKXtjb25zdFtpZSx3ZV09cTtpZihyZS5hZGRUZXh0KFkpLFk9IiIsR2UrPXdlLGllLnN0YXJ0c1dpdGgoIl8iKSlZKz1QWzBdO2Vsc2V7Y29uc3QgdXQ9UGUuY2xhc3NOYW1lQWxpYXNlc1tpZV18fGllO3JlLmFkZEtleXdvcmQoUFswXSx1dCl9fWVsc2UgWSs9UFswXTtNPUgua2V5d29yZFBhdHRlcm5SZS5sYXN0SW5kZXgsUD1ILmtleXdvcmRQYXR0ZXJuUmUuZXhlYyhlZSl9WSs9ZWUuc3Vic3RyKE0pLHJlLmFkZFRleHQoWSl9ZnVuY3Rpb24gRWUoKXtpZihlZT09PSIiKXJldHVybjtsZXQgTT1udWxsO2lmKHR5cGVvZiBILnN1Ykxhbmd1YWdlPT0ic3RyaW5nIil7aWYoIVJbSC5zdWJMYW5ndWFnZV0pe3JlLmFkZFRleHQoZWUpO3JldHVybn1NPU9lKEguc3ViTGFuZ3VhZ2UsZWUsITAsZHRbSC5zdWJMYW5ndWFnZV0pLGR0W0guc3ViTGFuZ3VhZ2VdPU0udG9wfWVsc2UgTT1sdChlZSxILnN1Ykxhbmd1YWdlLmxlbmd0aD9ILnN1Ykxhbmd1YWdlOm51bGwpO0gucmVsZXZhbmNlPjAmJihHZSs9TS5yZWxldmFuY2UpLHJlLmFkZFN1Ymxhbmd1YWdlKE0uZW1pdHRlcixNLmxhbmd1YWdlKX1mdW5jdGlvbiBtZSgpe0guc3ViTGFuZ3VhZ2UhPW51bGw/RWUoKTp5ZSgpLGVlPSIifWZ1bmN0aW9uIHBlKE0pe3JldHVybiBNLmNsYXNzTmFtZSYmcmUub3Blbk5vZGUoUGUuY2xhc3NOYW1lQWxpYXNlc1tNLmNsYXNzTmFtZV18fE0uY2xhc3NOYW1lKSxIPU9iamVjdC5jcmVhdGUoTSx7cGFyZW50Ont2YWx1ZTpIfX0pLEh9ZnVuY3Rpb24gSWUoTSxQLFkpe2xldCBxPVQoTS5lbmRSZSxZKTtpZihxKXtpZihNWyJvbjplbmQiXSl7Y29uc3QgaWU9bmV3IG4oTSk7TVsib246ZW5kIl0oUCxpZSksaWUuaXNNYXRjaElnbm9yZWQmJihxPSExKX1pZihxKXtmb3IoO00uZW5kc1BhcmVudCYmTS5wYXJlbnQ7KU09TS5wYXJlbnQ7cmV0dXJuIE19fWlmKE0uZW5kc1dpdGhQYXJlbnQpcmV0dXJuIEllKE0ucGFyZW50LFAsWSl9ZnVuY3Rpb24gVXQoTSl7cmV0dXJuIEgubWF0Y2hlci5yZWdleEluZGV4PT09MD8oZWUrPU1bMF0sMSk6KEhlPSEwLDApfWZ1bmN0aW9uIGt0KE0pe2NvbnN0IFA9TVswXSxZPU0ucnVsZSxxPW5ldyBuKFkpLGllPVtZLl9fYmVmb3JlQmVnaW4sWVsib246YmVnaW4iXV07Zm9yKGNvbnN0IHdlIG9mIGllKWlmKHdlJiYod2UoTSxxKSxxLmlzTWF0Y2hJZ25vcmVkKSlyZXR1cm4gVXQoUCk7cmV0dXJuIFkmJlkuZW5kU2FtZUFzQmVnaW4mJihZLmVuZFJlPWcoUCkpLFkuc2tpcD9lZSs9UDooWS5leGNsdWRlQmVnaW4mJihlZSs9UCksbWUoKSwhWS5yZXR1cm5CZWdpbiYmIVkuZXhjbHVkZUJlZ2luJiYoZWU9UCkpLHBlKFkpLFkucmV0dXJuQmVnaW4/MDpQLmxlbmd0aH1mdW5jdGlvbiBGdChNKXtjb25zdCBQPU1bMF0sWT1oLnN1YnN0cihNLmluZGV4KSxxPUllKEgsTSxZKTtpZighcSlyZXR1cm4gQmU7Y29uc3QgaWU9SDtpZS5za2lwP2VlKz1QOihpZS5yZXR1cm5FbmR8fGllLmV4Y2x1ZGVFbmR8fChlZSs9UCksbWUoKSxpZS5leGNsdWRlRW5kJiYoZWU9UCkpO2RvIEguY2xhc3NOYW1lJiZyZS5jbG9zZU5vZGUoKSwhSC5za2lwJiYhSC5zdWJMYW5ndWFnZSYmKEdlKz1ILnJlbGV2YW5jZSksSD1ILnBhcmVudDt3aGlsZShIIT09cS5wYXJlbnQpO3JldHVybiBxLnN0YXJ0cyYmKHEuZW5kU2FtZUFzQmVnaW4mJihxLnN0YXJ0cy5lbmRSZT1xLmVuZFJlKSxwZShxLnN0YXJ0cykpLGllLnJldHVybkVuZD8wOlAubGVuZ3RofWZ1bmN0aW9uIEJ0KCl7Y29uc3QgTT1bXTtmb3IobGV0IFA9SDtQIT09UGU7UD1QLnBhcmVudClQLmNsYXNzTmFtZSYmTS51bnNoaWZ0KFAuY2xhc3NOYW1lKTtNLmZvckVhY2goUD0+cmUub3Blbk5vZGUoUCkpfWxldCBaZT17fTtmdW5jdGlvbiBTdChNLFApe2NvbnN0IFk9UCYmUFswXTtpZihlZSs9TSxZPT1udWxsKXJldHVybiBtZSgpLDA7aWYoWmUudHlwZT09PSJiZWdpbiImJlAudHlwZT09PSJlbmQiJiZaZS5pbmRleD09PVAuaW5kZXgmJlk9PT0iIil7aWYoZWUrPWguc2xpY2UoUC5pbmRleCxQLmluZGV4KzEpLCF6KXtjb25zdCBxPW5ldyBFcnJvcigiMCB3aWR0aCBtYXRjaCByZWdleCIpO3Rocm93IHEubGFuZ3VhZ2VOYW1lPU4scS5iYWRSdWxlPVplLnJ1bGUscX1yZXR1cm4gMX1pZihaZT1QLFAudHlwZT09PSJiZWdpbiIpcmV0dXJuIGt0KFApO2lmKFAudHlwZT09PSJpbGxlZ2FsIiYmIVYpe2NvbnN0IHE9bmV3IEVycm9yKCdJbGxlZ2FsIGxleGVtZSAiJytZKyciIGZvciBtb2RlICInKyhILmNsYXNzTmFtZXx8Ijx1bm5hbWVkPiIpKyciJyk7dGhyb3cgcS5tb2RlPUgscX1lbHNlIGlmKFAudHlwZT09PSJlbmQiKXtjb25zdCBxPUZ0KFApO2lmKHEhPT1CZSlyZXR1cm4gcX1pZihQLnR5cGU9PT0iaWxsZWdhbCImJlk9PT0iIilyZXR1cm4gMTtpZihZZT4xZTUmJlllPlAuaW5kZXgqMyl0aHJvdyBuZXcgRXJyb3IoInBvdGVudGlhbCBpbmZpbml0ZSBsb29wLCB3YXkgbW9yZSBpdGVyYXRpb25zIHRoYW4gbWF0Y2hlcyIpO3JldHVybiBlZSs9WSxZLmxlbmd0aH1jb25zdCBQZT1iZShOKTtpZighUGUpdGhyb3cga2UodGUucmVwbGFjZSgie30iLE4pKSxuZXcgRXJyb3IoJ1Vua25vd24gbGFuZ3VhZ2U6ICInK04rJyInKTtjb25zdCBUdD1hdChQZSx7cGx1Z2luczp4fSk7bGV0IEplPSIiLEg9UXx8VHQ7Y29uc3QgZHQ9e30scmU9bmV3IEwuX19lbWl0dGVyKEwpO0J0KCk7bGV0IGVlPSIiLEdlPTAsQWU9MCxZZT0wLEhlPSExO3RyeXtmb3IoSC5tYXRjaGVyLmNvbnNpZGVyQWxsKCk7Oyl7WWUrKyxIZT9IZT0hMTpILm1hdGNoZXIuY29uc2lkZXJBbGwoKSxILm1hdGNoZXIubGFzdEluZGV4PUFlO2NvbnN0IE09SC5tYXRjaGVyLmV4ZWMoaCk7aWYoIU0pYnJlYWs7Y29uc3QgUD1oLnN1YnN0cmluZyhBZSxNLmluZGV4KSxZPVN0KFAsTSk7QWU9TS5pbmRleCtZfXJldHVybiBTdChoLnN1YnN0cihBZSkpLHJlLmNsb3NlQWxsTm9kZXMoKSxyZS5maW5hbGl6ZSgpLEplPXJlLnRvSFRNTCgpLHtyZWxldmFuY2U6TWF0aC5mbG9vcihHZSksdmFsdWU6SmUsbGFuZ3VhZ2U6TixpbGxlZ2FsOiExLGVtaXR0ZXI6cmUsdG9wOkh9fWNhdGNoKE0pe2lmKE0ubWVzc2FnZSYmTS5tZXNzYWdlLmluY2x1ZGVzKCJJbGxlZ2FsIikpcmV0dXJue2lsbGVnYWw6ITAsaWxsZWdhbEJ5Onttc2c6TS5tZXNzYWdlLGNvbnRleHQ6aC5zbGljZShBZS0xMDAsQWUrMTAwKSxtb2RlOk0ubW9kZX0sc29mYXI6SmUscmVsZXZhbmNlOjAsdmFsdWU6JChoKSxlbWl0dGVyOnJlfTtpZih6KXJldHVybntpbGxlZ2FsOiExLHJlbGV2YW5jZTowLHZhbHVlOiQoaCksZW1pdHRlcjpyZSxsYW5ndWFnZTpOLHRvcDpILGVycm9yUmFpc2VkOk19O3Rocm93IE19fWZ1bmN0aW9uIHN0KE4pe2NvbnN0IGg9e3JlbGV2YW5jZTowLGVtaXR0ZXI6bmV3IEwuX19lbWl0dGVyKEwpLHZhbHVlOiQoTiksaWxsZWdhbDohMSx0b3A6dn07cmV0dXJuIGguZW1pdHRlci5hZGRUZXh0KE4pLGh9ZnVuY3Rpb24gbHQoTixoKXtoPWh8fEwubGFuZ3VhZ2VzfHxPYmplY3Qua2V5cyhSKTtjb25zdCBWPXN0KE4pLFE9aC5maWx0ZXIoYmUpLmZpbHRlcihndCkubWFwKHBlPT5PZShwZSxOLCExKSk7US51bnNoaWZ0KFYpO2NvbnN0IG5lPVEuc29ydCgocGUsSWUpPT57aWYocGUucmVsZXZhbmNlIT09SWUucmVsZXZhbmNlKXJldHVybiBJZS5yZWxldmFuY2UtcGUucmVsZXZhbmNlO2lmKHBlLmxhbmd1YWdlJiZJZS5sYW5ndWFnZSl7aWYoYmUocGUubGFuZ3VhZ2UpLnN1cGVyc2V0T2Y9PT1JZS5sYW5ndWFnZSlyZXR1cm4gMTtpZihiZShJZS5sYW5ndWFnZSkuc3VwZXJzZXRPZj09PXBlLmxhbmd1YWdlKXJldHVybi0xfXJldHVybiAwfSksW3llLEVlXT1uZSxtZT15ZTtyZXR1cm4gbWUuc2Vjb25kX2Jlc3Q9RWUsbWV9ZnVuY3Rpb24gUnQoTil7cmV0dXJuIEwudGFiUmVwbGFjZXx8TC51c2VCUj9OLnJlcGxhY2UoVyxoPT5oPT09YAorYD9MLnVzZUJSPyI8YnI+IjpoOkwudGFiUmVwbGFjZT9oLnJlcGxhY2UoL1x0L2csTC50YWJSZXBsYWNlKTpoKTpOfWZ1bmN0aW9uIGZ0KE4saCxWKXtjb25zdCBRPWg/SVtoXTpWO04uY2xhc3NMaXN0LmFkZCgiaGxqcyIpLFEmJk4uY2xhc3NMaXN0LmFkZChRKX1jb25zdCBOdD17ImJlZm9yZTpoaWdobGlnaHRFbGVtZW50Ijooe2VsOk59KT0+e0wudXNlQlImJihOLmlubmVySFRNTD1OLmlubmVySFRNTC5yZXBsYWNlKC9cbi9nLCIiKS5yZXBsYWNlKC88YnJbIC9dKj4vZyxgCitgKSl9LCJhZnRlcjpoaWdobGlnaHRFbGVtZW50Ijooe3Jlc3VsdDpOfSk9PntMLnVzZUJSJiYoTi52YWx1ZT1OLnZhbHVlLnJlcGxhY2UoL1xuL2csIjxicj4iKSl9fSxDdD0vXig8W14+XSs+fFx0KSsvZ20sT3Q9eyJhZnRlcjpoaWdobGlnaHRFbGVtZW50Ijooe3Jlc3VsdDpOfSk9PntMLnRhYlJlcGxhY2UmJihOLnZhbHVlPU4udmFsdWUucmVwbGFjZShDdCxoPT5oLnJlcGxhY2UoL1x0L2csTC50YWJSZXBsYWNlKSkpfX07ZnVuY3Rpb24gUWUoTil7bGV0IGg9bnVsbDtjb25zdCBWPUcoTik7aWYoVShWKSlyZXR1cm47WGUoImJlZm9yZTpoaWdobGlnaHRFbGVtZW50Iix7ZWw6TixsYW5ndWFnZTpWfSksaD1OO2NvbnN0IFE9aC50ZXh0Q29udGVudCxuZT1WP2ooUSx7bGFuZ3VhZ2U6VixpZ25vcmVJbGxlZ2FsczohMH0pOmx0KFEpO1hlKCJhZnRlcjpoaWdobGlnaHRFbGVtZW50Iix7ZWw6TixyZXN1bHQ6bmUsdGV4dDpRfSksTi5pbm5lckhUTUw9bmUudmFsdWUsZnQoTixWLG5lLmxhbmd1YWdlKSxOLnJlc3VsdD17bGFuZ3VhZ2U6bmUubGFuZ3VhZ2UscmU6bmUucmVsZXZhbmNlLHJlbGF2YW5jZTpuZS5yZWxldmFuY2V9LG5lLnNlY29uZF9iZXN0JiYoTi5zZWNvbmRfYmVzdD17bGFuZ3VhZ2U6bmUuc2Vjb25kX2Jlc3QubGFuZ3VhZ2UscmU6bmUuc2Vjb25kX2Jlc3QucmVsZXZhbmNlLHJlbGF2YW5jZTpuZS5zZWNvbmRfYmVzdC5yZWxldmFuY2V9KX1mdW5jdGlvbiBJdChOKXtOLnVzZUJSJiYobGUoIjEwLjMuMCIsIid1c2VCUicgd2lsbCBiZSByZW1vdmVkIGVudGlyZWx5IGluIHYxMS4wIiksbGUoIjEwLjMuMCIsIlBsZWFzZSBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2hpZ2hsaWdodGpzL2hpZ2hsaWdodC5qcy9pc3N1ZXMvMjU1OSIpKSxMPUZlKEwsTil9Y29uc3QgY3Q9KCk9PntpZihjdC5jYWxsZWQpcmV0dXJuO2N0LmNhbGxlZD0hMCxsZSgiMTAuNi4wIiwiaW5pdEhpZ2hsaWdodGluZygpIGlzIGRlcHJlY2F0ZWQuICBVc2UgaGlnaGxpZ2h0QWxsKCkgaW5zdGVhZC4iKSxkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJwcmUgY29kZSIpLmZvckVhY2goUWUpfTtmdW5jdGlvbiBBdCgpe2xlKCIxMC42LjAiLCJpbml0SGlnaGxpZ2h0aW5nT25Mb2FkKCkgaXMgZGVwcmVjYXRlZC4gIFVzZSBoaWdobGlnaHRBbGwoKSBpbnN0ZWFkLiIpLF90PSEwfWxldCBfdD0hMTtmdW5jdGlvbiBtdCgpe2lmKGRvY3VtZW50LnJlYWR5U3RhdGU9PT0ibG9hZGluZyIpe190PSEwO3JldHVybn1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJwcmUgY29kZSIpLmZvckVhY2goUWUpfWZ1bmN0aW9uIHZ0KCl7X3QmJm10KCl9dHlwZW9mIHdpbmRvdyE9InVuZGVmaW5lZCImJndpbmRvdy5hZGRFdmVudExpc3RlbmVyJiZ3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsdnQsITEpO2Z1bmN0aW9uIHl0KE4saCl7bGV0IFY9bnVsbDt0cnl7Vj1oKHApfWNhdGNoKFEpe2lmKGtlKCJMYW5ndWFnZSBkZWZpbml0aW9uIGZvciAne30nIGNvdWxkIG5vdCBiZSByZWdpc3RlcmVkLiIucmVwbGFjZSgie30iLE4pKSx6KWtlKFEpO2Vsc2UgdGhyb3cgUTtWPXZ9Vi5uYW1lfHwoVi5uYW1lPU4pLFJbTl09VixWLnJhd0RlZmluaXRpb249aC5iaW5kKG51bGwscCksVi5hbGlhc2VzJiZwdChWLmFsaWFzZXMse2xhbmd1YWdlTmFtZTpOfSl9ZnVuY3Rpb24gRHQoTil7ZGVsZXRlIFJbTl07Zm9yKGNvbnN0IGggb2YgT2JqZWN0LmtleXMoSSkpSVtoXT09PU4mJmRlbGV0ZSBJW2hdfWZ1bmN0aW9uIGh0KCl7cmV0dXJuIE9iamVjdC5rZXlzKFIpfWZ1bmN0aW9uIE10KE4pe2xlKCIxMC40LjAiLCJyZXF1aXJlTGFuZ3VhZ2Ugd2lsbCBiZSByZW1vdmVkIGVudGlyZWx5IGluIHYxMS4iKSxsZSgiMTAuNC4wIiwiUGxlYXNlIHNlZSBodHRwczovL2dpdGh1Yi5jb20vaGlnaGxpZ2h0anMvaGlnaGxpZ2h0LmpzL3B1bGwvMjg0NCIpO2NvbnN0IGg9YmUoTik7aWYoaClyZXR1cm4gaDt0aHJvdyBuZXcgRXJyb3IoIlRoZSAne30nIGxhbmd1YWdlIGlzIHJlcXVpcmVkLCBidXQgbm90IGxvYWRlZC4iLnJlcGxhY2UoInt9IixOKSl9ZnVuY3Rpb24gYmUoTil7cmV0dXJuIE49KE58fCIiKS50b0xvd2VyQ2FzZSgpLFJbTl18fFJbSVtOXV19ZnVuY3Rpb24gcHQoTix7bGFuZ3VhZ2VOYW1lOmh9KXt0eXBlb2YgTj09InN0cmluZyImJihOPVtOXSksTi5mb3JFYWNoKFY9PntJW1YudG9Mb3dlckNhc2UoKV09aH0pfWZ1bmN0aW9uIGd0KE4pe2NvbnN0IGg9YmUoTik7cmV0dXJuIGgmJiFoLmRpc2FibGVBdXRvZGV0ZWN0fWZ1bmN0aW9uIEx0KE4pe05bImJlZm9yZTpoaWdobGlnaHRCbG9jayJdJiYhTlsiYmVmb3JlOmhpZ2hsaWdodEVsZW1lbnQiXSYmKE5bImJlZm9yZTpoaWdobGlnaHRFbGVtZW50Il09aD0+e05bImJlZm9yZTpoaWdobGlnaHRCbG9jayJdKE9iamVjdC5hc3NpZ24oe2Jsb2NrOmguZWx9LGgpKX0pLE5bImFmdGVyOmhpZ2hsaWdodEJsb2NrIl0mJiFOWyJhZnRlcjpoaWdobGlnaHRFbGVtZW50Il0mJihOWyJhZnRlcjpoaWdobGlnaHRFbGVtZW50Il09aD0+e05bImFmdGVyOmhpZ2hsaWdodEJsb2NrIl0oT2JqZWN0LmFzc2lnbih7YmxvY2s6aC5lbH0saCkpfSl9ZnVuY3Rpb24geHQoTil7THQoTikseC5wdXNoKE4pfWZ1bmN0aW9uIFhlKE4saCl7Y29uc3QgVj1OO3guZm9yRWFjaChmdW5jdGlvbihRKXtRW1ZdJiZRW1ZdKGgpfSl9ZnVuY3Rpb24gUHQoTil7cmV0dXJuIGxlKCIxMC4yLjAiLCJmaXhNYXJrdXAgd2lsbCBiZSByZW1vdmVkIGVudGlyZWx5IGluIHYxMS4wIiksbGUoIjEwLjIuMCIsIlBsZWFzZSBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2hpZ2hsaWdodGpzL2hpZ2hsaWdodC5qcy9pc3N1ZXMvMjUzNCIpLFJ0KE4pfWZ1bmN0aW9uIHd0KE4pe3JldHVybiBsZSgiMTAuNy4wIiwiaGlnaGxpZ2h0QmxvY2sgd2lsbCBiZSByZW1vdmVkIGVudGlyZWx5IGluIHYxMi4wIiksbGUoIjEwLjcuMCIsIlBsZWFzZSB1c2UgaGlnaGxpZ2h0RWxlbWVudCBub3cuIiksUWUoTil9T2JqZWN0LmFzc2lnbihwLHtoaWdobGlnaHQ6aixoaWdobGlnaHRBdXRvOmx0LGhpZ2hsaWdodEFsbDptdCxmaXhNYXJrdXA6UHQsaGlnaGxpZ2h0RWxlbWVudDpRZSxoaWdobGlnaHRCbG9jazp3dCxjb25maWd1cmU6SXQsaW5pdEhpZ2hsaWdodGluZzpjdCxpbml0SGlnaGxpZ2h0aW5nT25Mb2FkOkF0LHJlZ2lzdGVyTGFuZ3VhZ2U6eXQsdW5yZWdpc3Rlckxhbmd1YWdlOkR0LGxpc3RMYW5ndWFnZXM6aHQsZ2V0TGFuZ3VhZ2U6YmUscmVnaXN0ZXJBbGlhc2VzOnB0LHJlcXVpcmVMYW5ndWFnZTpNdCxhdXRvRGV0ZWN0aW9uOmd0LGluaGVyaXQ6RmUsYWRkUGx1Z2luOnh0LHZ1ZVBsdWdpbjpxZShwKS5WdWVQbHVnaW59KSxwLmRlYnVnTW9kZT1mdW5jdGlvbigpe3o9ITF9LHAuc2FmZU1vZGU9ZnVuY3Rpb24oKXt6PSEwfSxwLnZlcnNpb25TdHJpbmc9aXQ7Zm9yKGNvbnN0IE4gaW4gdWUpdHlwZW9mIHVlW05dPT0ib2JqZWN0IiYmZSh1ZVtOXSk7cmV0dXJuIE9iamVjdC5hc3NpZ24ocCx1ZSkscC5hZGRQbHVnaW4oTnQpLHAuYWRkUGx1Z2luKG90KSxwLmFkZFBsdWdpbihPdCkscH0oe30pO3MuZXhwb3J0cz1idH0sMzY5NjE6ZnVuY3Rpb24ocyxyLGUpe3ZhciB0PWUoOTEwODQpO3QucmVnaXN0ZXJMYW5ndWFnZSgiMWMiLGUoNDg1MTApKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoImFibmYiLGUoMjUzMjgpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoImFjY2Vzc2xvZyIsZSg5ODk2MSkpLHQucmVnaXN0ZXJMYW5ndWFnZSgiYWN0aW9uc2NyaXB0IixlKDQ4NDM5KSksdC5yZWdpc3Rlckxhbmd1YWdlKCJhZGEiLGUoNDA0NTEpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoImFuZ2Vsc2NyaXB0IixlKDQ0NTIyKSksdC5yZWdpc3Rlckxhbmd1YWdlKCJhcGFjaGUiLGUoMjE0MTApKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoImFwcGxlc2NyaXB0IixlKDc2OTk3KSksdC5yZWdpc3Rlckxhbmd1YWdlKCJhcmNhZGUiLGUoNTg5OTMpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoImFyZHVpbm8iLGUoMTQxNTIpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoImFybWFzbSIsZSg0MzE4MykpLHQucmVnaXN0ZXJMYW5ndWFnZSgieG1sIixlKDIyNjcyKSksdC5yZWdpc3Rlckxhbmd1YWdlKCJhc2NpaWRvYyIsZSgxODE4OSkpLHQucmVnaXN0ZXJMYW5ndWFnZSgiYXNwZWN0aiIsZSgxNTE0NykpLHQucmVnaXN0ZXJMYW5ndWFnZSgiYXV0b2hvdGtleSIsZSgzMzY4NikpLHQucmVnaXN0ZXJMYW5ndWFnZSgiYXV0b2l0IixlKDQ0MzMxKSksdC5yZWdpc3Rlckxhbmd1YWdlKCJhdnJhc20iLGUoOTUyOTYpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoImF3ayIsZSg4ODI2OCkpLHQucmVnaXN0ZXJMYW5ndWFnZSgiYXhhcHRhIixlKDUxMTEpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoImJhc2giLGUoMTU3NCkpLHQucmVnaXN0ZXJMYW5ndWFnZSgiYmFzaWMiLGUoOTM1NzYpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoImJuZiIsZSg1MDc1MykpLHQucmVnaXN0ZXJMYW5ndWFnZSgiYnJhaW5mdWNrIixlKDQ5NTg5KSksdC5yZWdpc3Rlckxhbmd1YWdlKCJjLWxpa2UiLGUoNDMxNjUpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoImMiLGUoNzM3NDUpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoImNhbCIsZSgzMjQ1MCkpLHQucmVnaXN0ZXJMYW5ndWFnZSgiY2FwbnByb3RvIixlKDcwNzA4KSksdC5yZWdpc3Rlckxhbmd1YWdlKCJjZXlsb24iLGUoNzM4MjIpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoImNsZWFuIixlKDYwNjIxKSksdC5yZWdpc3Rlckxhbmd1YWdlKCJjbG9qdXJlIixlKDYwNzMyKSksdC5yZWdpc3Rlckxhbmd1YWdlKCJjbG9qdXJlLXJlcGwiLGUoMjk4ODEpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoImNtYWtlIixlKDkyMTQ4KSksdC5yZWdpc3Rlckxhbmd1YWdlKCJjb2ZmZWVzY3JpcHQiLGUoODI0MDcpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoImNvcSIsZSgxNjI4OCkpLHQucmVnaXN0ZXJMYW5ndWFnZSgiY29zIixlKDc2NTAxKSksdC5yZWdpc3Rlckxhbmd1YWdlKCJjcHAiLGUoMjExMikpLHQucmVnaXN0ZXJMYW5ndWFnZSgiY3Jtc2giLGUoODM4NTIpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoImNyeXN0YWwiLGUoOTUyNCkpLHQucmVnaXN0ZXJMYW5ndWFnZSgiY3NoYXJwIixlKDI2MDA1KSksdC5yZWdpc3Rlckxhbmd1YWdlKCJjc3AiLGUoMTkxMzgpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoImNzcyIsZSg3NzQyMCkpLHQucmVnaXN0ZXJMYW5ndWFnZSgiZCIsZSgxNTQ1NykpLHQucmVnaXN0ZXJMYW5ndWFnZSgibWFya2Rvd24iLGUoODU1MDUpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoImRhcnQiLGUoNDQzMTYpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoImRlbHBoaSIsZSgzNDY1OSkpLHQucmVnaXN0ZXJMYW5ndWFnZSgiZGlmZiIsZSg0MDcwMikpLHQucmVnaXN0ZXJMYW5ndWFnZSgiZGphbmdvIixlKDU5NDYxKSksdC5yZWdpc3Rlckxhbmd1YWdlKCJkbnMiLGUoMjkyNzQpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoImRvY2tlcmZpbGUiLGUoNDI2NDUpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoImRvcyIsZSgzMjMxMSkpLHQucmVnaXN0ZXJMYW5ndWFnZSgiZHNjb25maWciLGUoMjcyNzApKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoImR0cyIsZSgzNTI4OCkpLHQucmVnaXN0ZXJMYW5ndWFnZSgiZHVzdCIsZSg5MjY5MikpLHQucmVnaXN0ZXJMYW5ndWFnZSgiZWJuZiIsZSgzMzc0MykpLHQucmVnaXN0ZXJMYW5ndWFnZSgiZWxpeGlyIixlKDMxMDEpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoImVsbSIsZSgxNDY4OCkpLHQucmVnaXN0ZXJMYW5ndWFnZSgicnVieSIsZSg1NjM2KSksdC5yZWdpc3Rlckxhbmd1YWdlKCJlcmIiLGUoNTk0NjcpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoImVybGFuZy1yZXBsIixlKDc2MTg1KSksdC5yZWdpc3Rlckxhbmd1YWdlKCJlcmxhbmciLGUoMTEwOSkpLHQucmVnaXN0ZXJMYW5ndWFnZSgiZXhjZWwiLGUoNjUxMDkpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoImZpeCIsZSgxNjYwMCkpLHQucmVnaXN0ZXJMYW5ndWFnZSgiZmxpeCIsZSg2OTcxNykpLHQucmVnaXN0ZXJMYW5ndWFnZSgiZm9ydHJhbiIsZSg5Mzk5NSkpLHQucmVnaXN0ZXJMYW5ndWFnZSgiZnNoYXJwIixlKDk4ODIzKSksdC5yZWdpc3Rlckxhbmd1YWdlKCJnYW1zIixlKDY2ODM2KSksdC5yZWdpc3Rlckxhbmd1YWdlKCJnYXVzcyIsZSg2NDY1NCkpLHQucmVnaXN0ZXJMYW5ndWFnZSgiZ2NvZGUiLGUoNzc1ODcpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoImdoZXJraW4iLGUoMjM5MDApKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoImdsc2wiLGUoOTY0NikpLHQucmVnaXN0ZXJMYW5ndWFnZSgiZ21sIixlKDg2NTMyKSksdC5yZWdpc3Rlckxhbmd1YWdlKCJnbyIsZSg5OTk4OSkpLHQucmVnaXN0ZXJMYW5ndWFnZSgiZ29sbyIsZSgyMDgzNikpLHQucmVnaXN0ZXJMYW5ndWFnZSgiZ3JhZGxlIixlKDkyMDEwKSksdC5yZWdpc3Rlckxhbmd1YWdlKCJncm9vdnkiLGUoMjExMTcpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoImhhbWwiLGUoMjg4MjUpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoImhhbmRsZWJhcnMiLGUoMTQyNikpLHQucmVnaXN0ZXJMYW5ndWFnZSgiaGFza2VsbCIsZSg3NzE0KSksdC5yZWdpc3Rlckxhbmd1YWdlKCJoYXhlIixlKDQyOTgxKSksdC5yZWdpc3Rlckxhbmd1YWdlKCJoc3AiLGUoMjk4NSkpLHQucmVnaXN0ZXJMYW5ndWFnZSgiaHRtbGJhcnMiLGUoNDAwOTUpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoImh0dHAiLGUoNjY4NjUpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoImh5IixlKDM5MTgyKSksdC5yZWdpc3Rlckxhbmd1YWdlKCJpbmZvcm03IixlKDE2ODk3KSksdC5yZWdpc3Rlckxhbmd1YWdlKCJpbmkiLGUoMjc2MikpLHQucmVnaXN0ZXJMYW5ndWFnZSgiaXJwZjkwIixlKDcxOTc2KSksdC5yZWdpc3Rlckxhbmd1YWdlKCJpc2JsIixlKDgyNSkpLHQucmVnaXN0ZXJMYW5ndWFnZSgiamF2YSIsZSgyNDY5OSkpLHQucmVnaXN0ZXJMYW5ndWFnZSgiamF2YXNjcmlwdCIsZSgyMTUwOSkpLHQucmVnaXN0ZXJMYW5ndWFnZSgiamJvc3MtY2xpIixlKDU4MDg1KSksdC5yZWdpc3Rlckxhbmd1YWdlKCJqc29uIixlKDM1NTQ4KSksdC5yZWdpc3Rlckxhbmd1YWdlKCJqdWxpYSIsZSgxMzIxNikpLHQucmVnaXN0ZXJMYW5ndWFnZSgianVsaWEtcmVwbCIsZSg0MzI2OSkpLHQucmVnaXN0ZXJMYW5ndWFnZSgia290bGluIixlKDg5OTM1KSksdC5yZWdpc3Rlckxhbmd1YWdlKCJsYXNzbyIsZSgyMDM3MSkpLHQucmVnaXN0ZXJMYW5ndWFnZSgibGF0ZXgiLGUoNzI1NzEpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoImxkaWYiLGUoNDU3MDkpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoImxlYWYiLGUoMzYzMDgpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoImxlc3MiLGUoNzk0NjYpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoImxpc3AiLGUoMjc5MjIpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoImxpdmVjb2Rlc2VydmVyIixlKDE5MzkpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoImxpdmVzY3JpcHQiLGUoNjY2MzMpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoImxsdm0iLGUoMTkwNzUpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoImxzbCIsZSg3MjgwMCkpLHQucmVnaXN0ZXJMYW5ndWFnZSgibHVhIixlKDY4MDU0KSksdC5yZWdpc3Rlckxhbmd1YWdlKCJtYWtlZmlsZSIsZSgzNzgwNSkpLHQucmVnaXN0ZXJMYW5ndWFnZSgibWF0aGVtYXRpY2EiLGUoOTI0MTIpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoIm1hdGxhYiIsZSg0NzE1OCkpLHQucmVnaXN0ZXJMYW5ndWFnZSgibWF4aW1hIixlKDE4NjM1KSksdC5yZWdpc3Rlckxhbmd1YWdlKCJtZWwiLGUoNTg0NTYpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoIm1lcmN1cnkiLGUoMzE0OTMpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoIm1pcHNhc20iLGUoOTc3NjIpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoIm1pemFyIixlKDI3NDM3KSksdC5yZWdpc3Rlckxhbmd1YWdlKCJwZXJsIixlKDY1ODg1KSksdC5yZWdpc3Rlckxhbmd1YWdlKCJtb2pvbGljaW91cyIsZSg2NDI0OSkpLHQucmVnaXN0ZXJMYW5ndWFnZSgibW9ua2V5IixlKDI2ODU1KSksdC5yZWdpc3Rlckxhbmd1YWdlKCJtb29uc2NyaXB0IixlKDYyOTU4KSksdC5yZWdpc3Rlckxhbmd1YWdlKCJuMXFsIixlKDY5NTY3KSksdC5yZWdpc3Rlckxhbmd1YWdlKCJuZ2lueCIsZSgxNTQ1MykpLHQucmVnaXN0ZXJMYW5ndWFnZSgibmltIixlKDcyOTApKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoIm5peCIsZSg4NDEwMSkpLHQucmVnaXN0ZXJMYW5ndWFnZSgibm9kZS1yZXBsIixlKDY5NTI3KSksdC5yZWdpc3Rlckxhbmd1YWdlKCJuc2lzIixlKDcxNDg3KSksdC5yZWdpc3Rlckxhbmd1YWdlKCJvYmplY3RpdmVjIixlKDgwNTQpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoIm9jYW1sIixlKDEzMTc4KSksdC5yZWdpc3Rlckxhbmd1YWdlKCJvcGVuc2NhZCIsZSgyMjQ3OCkpLHQucmVnaXN0ZXJMYW5ndWFnZSgib3h5Z2VuZSIsZSgzNjAyMykpLHQucmVnaXN0ZXJMYW5ndWFnZSgicGFyc2VyMyIsZSgzMDE3MykpLHQucmVnaXN0ZXJMYW5ndWFnZSgicGYiLGUoNjk1ODIpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoInBnc3FsIixlKDYyOTMpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoInBocCIsZSgxNTAzOSkpLHQucmVnaXN0ZXJMYW5ndWFnZSgicGhwLXRlbXBsYXRlIixlKDIzNTQyKSksdC5yZWdpc3Rlckxhbmd1YWdlKCJwbGFpbnRleHQiLGUoMTk4NjQpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoInBvbnkiLGUoNjQ4NzcpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoInBvd2Vyc2hlbGwiLGUoMTAyMjgpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoInByb2Nlc3NpbmciLGUoNTIxODMpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoInByb2ZpbGUiLGUoNzA4MDQpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoInByb2xvZyIsZSg5ODcyKSksdC5yZWdpc3Rlckxhbmd1YWdlKCJwcm9wZXJ0aWVzIixlKDc5MikpLHQucmVnaXN0ZXJMYW5ndWFnZSgicHJvdG9idWYiLGUoMzE0MzQpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoInB1cHBldCIsZSg4MDY0NikpLHQucmVnaXN0ZXJMYW5ndWFnZSgicHVyZWJhc2ljIixlKDUyNTMpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoInB5dGhvbiIsZSg3OTgxMSkpLHQucmVnaXN0ZXJMYW5ndWFnZSgicHl0aG9uLXJlcGwiLGUoNjM5MSkpLHQucmVnaXN0ZXJMYW5ndWFnZSgicSIsZSgyMjEwMSkpLHQucmVnaXN0ZXJMYW5ndWFnZSgicW1sIixlKDIwMDcwKSksdC5yZWdpc3Rlckxhbmd1YWdlKCJyIixlKDc4NTA2KSksdC5yZWdpc3Rlckxhbmd1YWdlKCJyZWFzb25tbCIsZSg3NTE4MCkpLHQucmVnaXN0ZXJMYW5ndWFnZSgicmliIixlKDYxODE4KSksdC5yZWdpc3Rlckxhbmd1YWdlKCJyb2JvY29uZiIsZSgyMjc5NSkpLHQucmVnaXN0ZXJMYW5ndWFnZSgicm91dGVyb3MiLGUoMjgwMDgpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoInJzbCIsZSgxMDY0MSkpLHQucmVnaXN0ZXJMYW5ndWFnZSgicnVsZXNsYW5ndWFnZSIsZSg0MTYzOCkpLHQucmVnaXN0ZXJMYW5ndWFnZSgicnVzdCIsZSg3MzA1NSkpLHQucmVnaXN0ZXJMYW5ndWFnZSgic2FzIixlKDQ5ODg3KSksdC5yZWdpc3Rlckxhbmd1YWdlKCJzY2FsYSIsZSg2NjEwNykpLHQucmVnaXN0ZXJMYW5ndWFnZSgic2NoZW1lIixlKDg1MjU0KSksdC5yZWdpc3Rlckxhbmd1YWdlKCJzY2lsYWIiLGUoODEzMjApKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoInNjc3MiLGUoNjE4MjIpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoInNoZWxsIixlKDY1OTE4KSksdC5yZWdpc3Rlckxhbmd1YWdlKCJzbWFsaSIsZSgxNDMxMykpLHQucmVnaXN0ZXJMYW5ndWFnZSgic21hbGx0YWxrIixlKDEyNjEyKSksdC5yZWdpc3Rlckxhbmd1YWdlKCJzbWwiLGUoOTA2MTcpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoInNxZiIsZSgxNTYxNikpLHQucmVnaXN0ZXJMYW5ndWFnZSgic3FsX21vcmUiLGUoNzkzMDcpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoInNxbCIsZSg0NjczMikpLHQucmVnaXN0ZXJMYW5ndWFnZSgic3RhbiIsZSg0ODMxNCkpLHQucmVnaXN0ZXJMYW5ndWFnZSgic3RhdGEiLGUoMjE0NjgpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoInN0ZXAyMSIsZSgzMTI0NCkpLHQucmVnaXN0ZXJMYW5ndWFnZSgic3R5bHVzIixlKDg2MTgyKSksdC5yZWdpc3Rlckxhbmd1YWdlKCJzdWJ1bml0IixlKDkyNjA0KSksdC5yZWdpc3Rlckxhbmd1YWdlKCJzd2lmdCIsZSgxMzkyNSkpLHQucmVnaXN0ZXJMYW5ndWFnZSgidGFnZ2Vyc2NyaXB0IixlKDk1MDM1KSksdC5yZWdpc3Rlckxhbmd1YWdlKCJ5YW1sIixlKDkwMjA3KSksdC5yZWdpc3Rlckxhbmd1YWdlKCJ0YXAiLGUoMzAxNjMpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoInRjbCIsZSgyMzE4MCkpLHQucmVnaXN0ZXJMYW5ndWFnZSgidGhyaWZ0IixlKDg2ODQwKSksdC5yZWdpc3Rlckxhbmd1YWdlKCJ0cCIsZSgxMjMzNSkpLHQucmVnaXN0ZXJMYW5ndWFnZSgidHdpZyIsZSg2MzEyNykpLHQucmVnaXN0ZXJMYW5ndWFnZSgidHlwZXNjcmlwdCIsZSg0OTIxMikpLHQucmVnaXN0ZXJMYW5ndWFnZSgidmFsYSIsZSg0MTMwMCkpLHQucmVnaXN0ZXJMYW5ndWFnZSgidmJuZXQiLGUoNzA3MjcpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoInZic2NyaXB0IixlKDkwMTkwKSksdC5yZWdpc3Rlckxhbmd1YWdlKCJ2YnNjcmlwdC1odG1sIixlKDExNjc0KSksdC5yZWdpc3Rlckxhbmd1YWdlKCJ2ZXJpbG9nIixlKDEzMTA2KSksdC5yZWdpc3Rlckxhbmd1YWdlKCJ2aGRsIixlKDEzODUzKSksdC5yZWdpc3Rlckxhbmd1YWdlKCJ2aW0iLGUoMzQwNTUpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoIng4NmFzbSIsZSgyNTAyMykpLHQucmVnaXN0ZXJMYW5ndWFnZSgieGwiLGUoNjYzNjkpKSx0LnJlZ2lzdGVyTGFuZ3VhZ2UoInhxdWVyeSIsZSgyNzE3OSkpLHQucmVnaXN0ZXJMYW5ndWFnZSgiemVwaGlyIixlKDI1MjcyKSkscy5leHBvcnRzPXR9LDQ4NTEwOmZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHIoZSl7dmFyIHQ9IltBLVphLXpcdTA0MTAtXHUwNDJGXHUwNDMwLVx1MDQ0Rlx1MDQ1MVx1MDQwMV9dW0EtWmEtelx1MDQxMC1cdTA0MkZcdTA0MzAtXHUwNDRGXHUwNDUxXHUwNDAxXzAtOV0rIixuPSJcdTA0MzRcdTA0MzBcdTA0M0JcdTA0MzVcdTA0MzUgIixhPSJcdTA0MzJcdTA0M0VcdTA0MzdcdTA0MzJcdTA0NDBcdTA0MzBcdTA0NDIgXHUwNDMyXHUwNDRCXHUwNDM3XHUwNDMyXHUwNDMwXHUwNDQyXHUwNDRDXHUwNDM4XHUwNDQxXHUwNDNBXHUwNDNCXHUwNDRFXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1IFx1MDQzMlx1MDQ0Qlx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRFx1MDQzOFx1MDQ0Mlx1MDQ0QyBcdTA0MzRcdTA0M0JcdTA0NEYgXHUwNDM1XHUwNDQxXHUwNDNCXHUwNDM4IFx1MDQzOCBcdTA0MzhcdTA0MzcgXHUwNDM4XHUwNDNCXHUwNDM4IFx1MDQzOFx1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzNSBcdTA0MzhcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0MzVcdTA0NDFcdTA0M0JcdTA0MzggXHUwNDM4XHUwNDQxXHUwNDNBXHUwNDNCXHUwNDRFXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1IFx1MDQzQVx1MDQzMFx1MDQzNlx1MDQzNFx1MDQzRVx1MDQzM1x1MDQzRSBcdTA0M0FcdTA0M0VcdTA0M0RcdTA0MzVcdTA0NDZcdTA0MzVcdTA0NDFcdTA0M0JcdTA0MzggXHUwNDNBXHUwNDNFXHUwNDNEXHUwNDM1XHUwNDQ2XHUwNDNGXHUwNDNFXHUwNDNGXHUwNDRCXHUwNDQyXHUwNDNBXHUwNDM4IFx1MDQzQVx1MDQzRVx1MDQzRFx1MDQzNVx1MDQ0Nlx1MDQ0Nlx1MDQzOFx1MDQzQVx1MDQzQlx1MDQzMCBcdTA0M0RcdTA0MzUgXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDRCXHUwNDM5IFx1MDQzRlx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzOVx1MDQ0Mlx1MDQzOCBcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzVcdTA0M0MgXHUwNDNGXHUwNDNFIFx1MDQzRlx1MDQzRVx1MDQzQVx1MDQzMCBcdTA0M0ZcdTA0M0VcdTA0M0ZcdTA0NEJcdTA0NDJcdTA0M0FcdTA0MzAgXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDQwXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDRDIFx1MDQzRlx1MDQ0MFx1MDQzRVx1MDQzNFx1MDQzRVx1MDQzQlx1MDQzNlx1MDQzOFx1MDQ0Mlx1MDQ0QyBcdTA0NDJcdTA0M0VcdTA0MzNcdTA0MzRcdTA0MzAgXHUwNDQ2XHUwNDM4XHUwNDNBXHUwNDNCIFx1MDQ0RFx1MDQzQVx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQ0MFx1MDQ0MiAiLGk9bithLG89Ilx1MDQzN1x1MDQzMFx1MDQzM1x1MDQ0MFx1MDQ0M1x1MDQzN1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzOFx1MDQzN1x1MDQ0NFx1MDQzMFx1MDQzOVx1MDQzQlx1MDQzMCAiLGw9Ilx1MDQzMlx1MDQzNVx1MDQzMVx1MDQzQVx1MDQzQlx1MDQzOFx1MDQzNVx1MDQzRFx1MDQ0MiBcdTA0MzJcdTA0M0NcdTA0MzVcdTA0NDFcdTA0NDJcdTA0M0UgXHUwNDMyXHUwNDNEXHUwNDM1XHUwNDQ4XHUwNDNEXHUwNDM1XHUwNDM1XHUwNDQxXHUwNDNFXHUwNDM1XHUwNDM0XHUwNDM4XHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1IFx1MDQzQVx1MDQzQlx1MDQzOFx1MDQzNVx1MDQzRFx1MDQ0MiBcdTA0M0FcdTA0M0VcdTA0M0RcdTA0MzVcdTA0NDZcdTA0M0VcdTA0MzFcdTA0M0JcdTA0MzBcdTA0NDFcdTA0NDJcdTA0MzggXHUwNDNDXHUwNDNFXHUwNDMxXHUwNDM4XHUwNDNCXHUwNDRDXHUwNDNEXHUwNDNFXHUwNDM1XHUwNDNGXHUwNDQwXHUwNDM4XHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNBXHUwNDNCXHUwNDM4XHUwNDM1XHUwNDNEXHUwNDQyIFx1MDQzQ1x1MDQzRVx1MDQzMVx1MDQzOFx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQzRVx1MDQzNVx1MDQzRlx1MDQ0MFx1MDQzOFx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQzMlx1MDQzNVx1MDQ0MCBcdTA0M0RcdTA0MzBcdTA0M0FcdTA0M0JcdTA0MzhcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzUgXHUwNDNEXHUwNDMwXHUwNDNBXHUwNDNCXHUwNDM4XHUwNDM1XHUwNDNEXHUwNDQyXHUwNDM1XHUwNDNEXHUwNDMwXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDM1IFx1MDQzRFx1MDQzMFx1MDQzQVx1MDQzQlx1MDQzOFx1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzNVx1MDQzRFx1MDQzMFx1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzMVx1MDQzNVx1MDQzN1x1MDQzQVx1MDQzRVx1MDQzRFx1MDQ0Mlx1MDQzNVx1MDQzQVx1MDQ0MVx1MDQ0Mlx1MDQzMCBcdTA0M0RcdTA0MzBcdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzUgXHUwNDNEXHUwNDMwXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDMxXHUwNDM1XHUwNDM3XHUwNDNBXHUwNDNFXHUwNDNEXHUwNDQyXHUwNDM1XHUwNDNBXHUwNDQxXHUwNDQyXHUwNDMwIFx1MDQzRVx1MDQzMVx1MDQzQlx1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQ0QyBcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzQgXHUwNDNGXHUwNDNFXHUwNDQxXHUwNDNCXHUwNDM1IFx1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQzMlx1MDQzNVx1MDQ0MCBcdTA0NDJcdTA0M0VcdTA0M0JcdTA0NDFcdTA0NDJcdTA0NEJcdTA0MzlcdTA0M0FcdTA0M0JcdTA0MzhcdTA0MzVcdTA0M0RcdTA0NDJcdTA0M0VcdTA0MzFcdTA0NEJcdTA0NDdcdTA0M0RcdTA0M0VcdTA0MzVcdTA0M0ZcdTA0NDBcdTA0MzhcdTA0M0JcdTA0M0VcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzUgXHUwNDQyXHUwNDNFXHUwNDNCXHUwNDQxXHUwNDQyXHUwNDRCXHUwNDM5XHUwNDNBXHUwNDNCXHUwNDM4XHUwNDM1XHUwNDNEXHUwNDQyXHUwNDQzXHUwNDNGXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNCXHUwNDRGXHUwNDM1XHUwNDNDXHUwNDNFXHUwNDM1XHUwNDNGXHUwNDQwXHUwNDM4XHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1IFx1MDQ0Mlx1MDQzRVx1MDQzRFx1MDQzQVx1MDQzOFx1MDQzOVx1MDQzQVx1MDQzQlx1MDQzOFx1MDQzNVx1MDQzRFx1MDQ0MiAiLGM9bytsLF89Ilx1MDQ0MFx1MDQzMFx1MDQzN1x1MDQzNFx1MDQzNVx1MDQzQlx1MDQzOFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQ0Q1x1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0NiBcdTA0NDBcdTA0MzBcdTA0MzdcdTA0MzRcdTA0MzVcdTA0M0JcdTA0MzhcdTA0NDJcdTA0MzVcdTA0M0JcdTA0NENcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0M0EgXHUwNDQxXHUwNDM4XHUwNDNDXHUwNDMyXHUwNDNFXHUwNDNCXHUwNDQyXHUwNDMwXHUwNDMxXHUwNDQzXHUwNDNCXHUwNDRGXHUwNDQ2XHUwNDM4XHUwNDM4ICIsZD0iYW5zaXRvb2VtIG9lbXRvYW5zaSBcdTA0MzJcdTA0MzJcdTA0MzVcdTA0NDFcdTA0NDJcdTA0MzhcdTA0MzJcdTA0MzhcdTA0MzRcdTA0NDFcdTA0NDNcdTA0MzFcdTA0M0FcdTA0M0VcdTA0M0RcdTA0NDJcdTA0M0UgXHUwNDMyXHUwNDMyXHUwNDM1XHUwNDQxXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDQ3XHUwNDM4XHUwNDQxXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1IFx1MDQzMlx1MDQzMlx1MDQzNVx1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzNVx1MDQ0MFx1MDQzOFx1MDQzRVx1MDQzNCBcdTA0MzJcdTA0MzJcdTA0MzVcdTA0NDFcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0JcdTA0MzBcdTA0M0RcdTA0NDFcdTA0NDdcdTA0MzVcdTA0NDJcdTA0M0VcdTA0MzIgXHUwNDMyXHUwNDRCXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDM5XHUwNDNGXHUwNDNCXHUwNDMwXHUwNDNEXHUwNDQxXHUwNDQ3XHUwNDM1XHUwNDQyXHUwNDNFXHUwNDMyIFx1MDQzNFx1MDQzMFx1MDQ0Mlx1MDQzMFx1MDQzM1x1MDQzRVx1MDQzNCBcdTA0MzRcdTA0MzBcdTA0NDJcdTA0MzBcdTA0M0NcdTA0MzVcdTA0NDFcdTA0NEZcdTA0NDYgXHUwNDM0XHUwNDMwXHUwNDQyXHUwNDMwXHUwNDQ3XHUwNDM4XHUwNDQxXHUwNDNCXHUwNDNFIFx1MDQzN1x1MDQzMFx1MDQzM1x1MDQzRVx1MDQzQlx1MDQzRVx1MDQzMlx1MDQzRVx1MDQzQVx1MDQ0MVx1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzNVx1MDQzQ1x1MDQ0QiBcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzJcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0M0FcdTA0NDMgXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDM4XHUwNDM3XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDNBXHUwNDM4IFx1MDQzQVx1MDQzMFx1MDQ0Mlx1MDQzMFx1MDQzQlx1MDQzRVx1MDQzM1x1MDQzOFx1MDQzMSBcdTA0M0FcdTA0MzBcdTA0NDJcdTA0MzBcdTA0M0JcdTA0M0VcdTA0MzNcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M0JcdTA0NEYgXHUwNDNBXHUwNDNFXHUwNDM0XHUwNDQxXHUwNDM4XHUwNDNDXHUwNDMyIFx1MDQzQVx1MDQzRVx1MDQzRFx1MDQzM1x1MDQzRVx1MDQzNFx1MDQzMCBcdTA0M0FcdTA0M0VcdTA0M0RcdTA0MzVcdTA0NDZcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzhcdTA0M0VcdTA0MzRcdTA0MzBcdTA0MzFcdTA0MzggXHUwNDNBXHUwNDNFXHUwNDNEXHUwNDM1XHUwNDQ2XHUwNDQwXHUwNDMwXHUwNDQxXHUwNDQxXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDMwXHUwNDNEXHUwNDNEXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDNFXHUwNDM0XHUwNDMwXHUwNDMxXHUwNDM4IFx1MDQzQVx1MDQzRVx1MDQzRFx1MDQzNVx1MDQ0Nlx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzNFx1MDQzMFx1MDQ0MFx1MDQ0Mlx1MDQzRFx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzOFx1MDQzRFx1MDQ0Mlx1MDQzNVx1MDQ0MFx1MDQzMlx1MDQzMFx1MDQzQlx1MDQzMCBcdTA0M0FcdTA0M0VcdTA0M0RcdTA0M0FcdTA0MzJcdTA0MzBcdTA0NDBcdTA0NDJcdTA0MzBcdTA0M0JcdTA0MzAgXHUwNDNBXHUwNDNFXHUwNDNEXHUwNDNDXHUwNDM1XHUwNDQxXHUwNDRGXHUwNDQ2XHUwNDMwIFx1MDQzQVx1MDQzRVx1MDQzRFx1MDQzRFx1MDQzNVx1MDQzNFx1MDQzNVx1MDQzQlx1MDQzOCBcdTA0M0JcdTA0M0VcdTA0MzMgXHUwNDNCXHUwNDNFXHUwNDMzMTAgXHUwNDNDXHUwNDMwXHUwNDNBXHUwNDQxXHUwNDM4XHUwNDNDXHUwNDMwXHUwNDNCXHUwNDRDXHUwNDNEXHUwNDNFXHUwNDM1XHUwNDNBXHUwNDNFXHUwNDNCXHUwNDM4XHUwNDQ3XHUwNDM1XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDNFXHUwNDQxXHUwNDQzXHUwNDMxXHUwNDNBXHUwNDNFXHUwNDNEXHUwNDQyXHUwNDNFIFx1MDQzRFx1MDQzMFx1MDQzN1x1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzOFx1MDQzRFx1MDQ0Mlx1MDQzNVx1MDQ0MFx1MDQ0NFx1MDQzNVx1MDQzOVx1MDQ0MVx1MDQzMCBcdTA0M0RcdTA0MzBcdTA0MzdcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0RcdTA0MzBcdTA0MzFcdTA0M0VcdTA0NDBcdTA0MzBcdTA0M0ZcdTA0NDBcdTA0MzBcdTA0MzIgXHUwNDNEXHUwNDMwXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDMyXHUwNDM4XHUwNDM0IFx1MDQzRFx1MDQzMFx1MDQzN1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQ0MVx1MDQ0N1x1MDQzNVx1MDQ0MiBcdTA0M0RcdTA0MzBcdTA0MzlcdTA0NDJcdTA0MzhcdTA0NDFcdTA0NDFcdTA0NEJcdTA0M0JcdTA0M0FcdTA0MzggXHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDMwXHUwNDNCXHUwNDNFXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDNFXHUwNDM0XHUwNDMwXHUwNDMxXHUwNDM4IFx1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzMFx1MDQzQlx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzNFx1MDQzMFx1MDQ0MFx1MDQ0Mlx1MDQzRFx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzOFx1MDQzRFx1MDQ0Mlx1MDQzNVx1MDQ0MFx1MDQzMlx1MDQzMFx1MDQzQlx1MDQzMCBcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzNcdTA0M0VcdTA0MzRcdTA0MzAgXHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDNBXHUwNDMyXHUwNDMwXHUwNDQwXHUwNDQyXHUwNDMwXHUwNDNCXHUwNDMwIFx1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzQ1x1MDQzNVx1MDQ0MVx1MDQ0Rlx1MDQ0Nlx1MDQzMCBcdTA0M0RcdTA0MzBcdTA0NDdcdTA0M0RcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M0JcdTA0MzggXHUwNDNEXHUwNDNFXHUwNDNDXHUwNDM1XHUwNDQwXHUwNDM0XHUwNDNEXHUwNDRGXHUwNDMzXHUwNDNFXHUwNDM0XHUwNDMwIFx1MDQzRFx1MDQzRVx1MDQzQ1x1MDQzNVx1MDQ0MFx1MDQzNFx1MDQzRFx1MDQ0Rlx1MDQzRFx1MDQzNVx1MDQzNFx1MDQzNVx1MDQzQlx1MDQzOCBcdTA0M0RcdTA0M0VcdTA0M0NcdTA0MzVcdTA0NDBcdTA0M0RcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M0JcdTA0MzhcdTA0MzNcdTA0M0VcdTA0MzRcdTA0MzAgXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDMxXHUwNDNFXHUwNDQyXHUwNDNBXHUwNDMwXHUwNDNFXHUwNDM2XHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQzRVx1MDQ0MVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzRFx1MDQzRVx1MDQzOVx1MDQzNlx1MDQ0M1x1MDQ0MFx1MDQzRFx1MDQzMFx1MDQzQlx1MDQ0MFx1MDQzMFx1MDQ0MVx1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQzRVx1MDQzMiBcdTA0M0VcdTA0NDFcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0RcdTA0M0VcdTA0MzlcdTA0M0ZcdTA0M0JcdTA0MzBcdTA0M0RcdTA0NDFcdTA0NDdcdTA0MzVcdTA0NDJcdTA0M0VcdTA0MzIgXHUwNDNFXHUwNDQxXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNEXHUwNDNFXHUwNDM5XHUwNDRGXHUwNDM3XHUwNDRCXHUwNDNBIFx1MDQzRVx1MDQ0N1x1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzRVx1MDQzQVx1MDQzRFx1MDQzRVx1MDQ0MVx1MDQzRVx1MDQzRVx1MDQzMVx1MDQ0OVx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzOSBcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzhcdTA0M0VcdTA0MzRcdTA0NDFcdTA0NDJcdTA0NDAgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDMyXHUwNDQwXHUwNDM1XHUwNDNDXHUwNDRGXHUwNDQyXHUwNDMwIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzNFx1MDQzMFx1MDQ0Mlx1MDQ0M1x1MDQ0Mlx1MDQzMCBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzRcdTA0M0VcdTA0M0FcdTA0NDNcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0NDJcdTA0MzAgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNFXHUwNDQyXHUwNDMxXHUwNDNFXHUwNDQwXHUwNDMwIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzRlx1MDQzRVx1MDQzN1x1MDQzOFx1MDQ0Nlx1MDQzOFx1MDQ0RVx1MDQ0Mlx1MDQzMCBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0M0ZcdTA0NDNcdTA0NDFcdTA0NDJcdTA0M0VcdTA0MzVcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzUgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDQyXHUwNDMwIFx1MDQzRlx1MDQ0MFx1MDQzNVx1MDQ0NFx1MDQzOFx1MDQzQVx1MDQ0MVx1MDQzMFx1MDQzMlx1MDQ0Mlx1MDQzRVx1MDQzRFx1MDQ0M1x1MDQzQ1x1MDQzNVx1MDQ0MFx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOCBcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0M0ZcdTA0MzhcdTA0NDFcdTA0NEMgXHUwNDNGXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDNFXHUwNDM1XHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1IFx1MDQ0MFx1MDQzMFx1MDQzN1x1MDQzQyBcdTA0NDBcdTA0MzBcdTA0MzdcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0NDJcdTA0NENcdTA0M0ZcdTA0M0VcdTA0MzdcdTA0MzhcdTA0NDZcdTA0MzhcdTA0NEVcdTA0MzRcdTA0M0VcdTA0M0FcdTA0NDNcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzAgXHUwNDQwXHUwNDMwXHUwNDQxXHUwNDQxXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDMwXHUwNDQyXHUwNDRDXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDRCXHUwNDNEXHUwNDMwIFx1MDQ0MFx1MDQzMFx1MDQ0MVx1MDQ0MVx1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQ0MFx1MDQzNVx1MDQzM1x1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQ0Qlx1MDQzRlx1MDQzRSBcdTA0NDFcdTA0MzhcdTA0M0NcdTA0MzIgXHUwNDQxXHUwNDNFXHUwNDM3XHUwNDM0XHUwNDMwXHUwNDQyXHUwNDRDXHUwNDNFXHUwNDMxXHUwNDRBXHUwNDM1XHUwNDNBXHUwNDQyIFx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQ0Mlx1MDQ0M1x1MDQ0MVx1MDQzMlx1MDQzRVx1MDQzN1x1MDQzMlx1MDQ0MFx1MDQzMFx1MDQ0Mlx1MDQzMCBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0FcdTA0M0VcdTA0M0JcdTA0MzhcdTA0NDdcdTA0MzVcdTA0NDFcdTA0NDJcdTA0MzJcdTA0M0VcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0M0EgXHUwNDQxXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDRDXHUwNDNGXHUwNDNFXHUwNDM3XHUwNDM4XHUwNDQ2XHUwNDM4XHUwNDRFXHUwNDM0XHUwNDNFXHUwNDNBXHUwNDQzXHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwIFx1MDQ0MVx1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQzRlx1MDQzRVx1MDQzQVx1MDQzRVx1MDQzNFx1MDQ0MyBcdTA0NDJcdTA0MzVcdTA0M0FcdTA0NDNcdTA0NDlcdTA0MzVcdTA0MzVcdTA0MzJcdTA0NDBcdTA0MzVcdTA0M0NcdTA0NEYgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzN1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQ0MVx1MDQ0Mlx1MDQ0MCBcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0M0VcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NENcdTA0NDJcdTA0MzBcdTA0M0RcdTA0MzAgXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDQyXHUwNDMwXHUwNDNGXHUwNDNFIFx1MDQ0NFx1MDQzOFx1MDQzQVx1MDQ0MVx1MDQ0OFx1MDQzMFx1MDQzMVx1MDQzQlx1MDQzRVx1MDQzRCBcdTA0NDhcdTA0MzBcdTA0MzFcdTA0M0JcdTA0M0VcdTA0M0QgIixnPSJhY29zIGFzaW4gYXRhbiBiYXNlNjRcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzUgYmFzZTY0XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDNBXHUwNDMwIGNvcyBleHAgbG9nIGxvZzEwIHBvdyBzaW4gc3FydCB0YW4geG1sXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1IHhtbFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzQVx1MDQzMCB4bWxcdTA0NDJcdTA0MzhcdTA0M0YgeG1sXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDM3XHUwNDNEXHUwNDQ3IFx1MDQzMFx1MDQzQVx1MDQ0Mlx1MDQzOFx1MDQzMlx1MDQzRFx1MDQzRVx1MDQzNVx1MDQzRVx1MDQzQVx1MDQzRFx1MDQzRSBcdTA0MzFcdTA0MzVcdTA0MzdcdTA0M0VcdTA0M0ZcdTA0MzBcdTA0NDFcdTA0M0RcdTA0NEJcdTA0MzlcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0MgXHUwNDMxXHUwNDM1XHUwNDM3XHUwNDNFXHUwNDNGXHUwNDMwXHUwNDQxXHUwNDNEXHUwNDRCXHUwNDM5XHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDQwXHUwNDMwXHUwNDM3XHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQzMVx1MDQ0M1x1MDQzQlx1MDQzNVx1MDQzMlx1MDQzRSBcdTA0MzJcdTA0MzJcdTA0MzVcdTA0NDFcdTA0NDJcdTA0MzhcdTA0MzRcdTA0MzBcdTA0NDJcdTA0NDMgXHUwNDMyXHUwNDMyXHUwNDM1XHUwNDQxXHUwNDQyXHUwNDM4XHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1IFx1MDQzMlx1MDQzMlx1MDQzNVx1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzQVx1MDQ0MyBcdTA0MzJcdTA0MzJcdTA0MzVcdTA0NDFcdTA0NDJcdTA0MzhcdTA0NDdcdTA0MzhcdTA0NDFcdTA0M0JcdTA0M0UgXHUwNDMyXHUwNDNFXHUwNDM3XHUwNDNDXHUwNDNFXHUwNDM2XHUwNDNEXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDRDXHUwNDQ3XHUwNDQyXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGeG1sIFx1MDQzMlx1MDQzRVx1MDQzRlx1MDQ0MFx1MDQzRVx1MDQ0MSBcdTA0MzJcdTA0M0VcdTA0NDFcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0M0VcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzUgXHUwNDMyXHUwNDQwXHUwNDM1XHUwNDMzIFx1MDQzMlx1MDQ0Qlx1MDQzM1x1MDQ0MFx1MDQ0M1x1MDQzN1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzNlx1MDQ0M1x1MDQ0MFx1MDQzRFx1MDQzMFx1MDQzQlx1MDQ0MFx1MDQzNVx1MDQzM1x1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOCBcdTA0MzJcdTA0NEJcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0RcdTA0MzhcdTA0NDJcdTA0NENcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzFcdTA0M0VcdTA0NDJcdTA0M0FcdTA0NDNcdTA0M0VcdTA0M0ZcdTA0M0VcdTA0MzJcdTA0MzVcdTA0NDlcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDMyXHUwNDRCXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNEXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDNBXHUwNDQzXHUwNDNGXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM0XHUwNDNFXHUwNDQxXHUwNDQyXHUwNDQzXHUwNDNGXHUwNDMwIFx1MDQzMlx1MDQ0Qlx1MDQ0N1x1MDQzOFx1MDQ0MVx1MDQzQlx1MDQzOFx1MDQ0Mlx1MDQ0QyBcdTA0MzNcdTA0M0VcdTA0MzQgXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDM1XHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDRCXHUwNDMyXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1IFx1MDQzNFx1MDQzMFx1MDQ0Mlx1MDQzMCBcdTA0MzRcdTA0MzVcdTA0M0RcdTA0NEMgXHUwNDM0XHUwNDM1XHUwNDNEXHUwNDRDXHUwNDMzXHUwNDNFXHUwNDM0XHUwNDMwIFx1MDQzNFx1MDQzNVx1MDQzRFx1MDQ0Q1x1MDQzRFx1MDQzNVx1MDQzNFx1MDQzNVx1MDQzQlx1MDQzOCBcdTA0MzRcdTA0M0VcdTA0MzFcdTA0MzBcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NENcdTA0M0NcdTA0MzVcdTA0NDFcdTA0NEZcdTA0NDYgXHUwNDM3XHUwNDMwXHUwNDMxXHUwNDNCXHUwNDNFXHUwNDNBXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDRDXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDM1XHUwNDM0XHUwNDNCXHUwNDRGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDMwXHUwNDNBXHUwNDQyXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQzN1x1MDQzMFx1MDQzMVx1MDQzQlx1MDQzRVx1MDQzQVx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQ0MFx1MDQzMFx1MDQzMVx1MDQzRVx1MDQ0Mlx1MDQ0M1x1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQ0RiBcdTA0MzdcdTA0MzBcdTA0MzJcdTA0MzVcdTA0NDBcdTA0NDhcdTA0MzhcdTA0NDJcdTA0NENcdTA0NDBcdTA0MzBcdTA0MzFcdTA0M0VcdTA0NDJcdTA0NDNcdTA0NDFcdTA0MzhcdTA0NDFcdTA0NDJcdTA0MzVcdTA0M0NcdTA0NEIgXHUwNDM3XHUwNDMwXHUwNDMzXHUwNDQwXHUwNDQzXHUwNDM3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDMyXHUwNDNEXHUwNDM1XHUwNDQ4XHUwNDNEXHUwNDRFXHUwNDRFXHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDQzIFx1MDQzN1x1MDQzMFx1MDQzQVx1MDQ0MFx1MDQ0Qlx1MDQ0Mlx1MDQ0Q1x1MDQ0MVx1MDQzRlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzQVx1MDQ0MyBcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0MzhcdTA0NDFcdTA0MzBcdTA0NDJcdTA0NENqc29uIFx1MDQzN1x1MDQzMFx1MDQzRlx1MDQzOFx1MDQ0MVx1MDQzMFx1MDQ0Mlx1MDQ0Q3htbCBcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0MzhcdTA0NDFcdTA0MzBcdTA0NDJcdTA0NENcdTA0MzRcdTA0MzBcdTA0NDJcdTA0NDNqc29uIFx1MDQzN1x1MDQzMFx1MDQzRlx1MDQzOFx1MDQ0MVx1MDQ0Q1x1MDQzNlx1MDQ0M1x1MDQ0MFx1MDQzRFx1MDQzMFx1MDQzQlx1MDQzMFx1MDQ0MFx1MDQzNVx1MDQzM1x1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOCBcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0RcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0NDFcdTA0MzJcdTA0M0VcdTA0MzlcdTA0NDFcdTA0NDJcdTA0MzIgXHUwNDM3XHUwNDMwXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDQxXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDQwXHUwNDMwXHUwNDM3XHUwNDQwXHUwNDM1XHUwNDQ4XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRGIFx1MDQzN1x1MDQzMFx1MDQzRlx1MDQ0M1x1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzRlx1MDQ0MFx1MDQzOFx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNSBcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzhcdTA0NDJcdTA0NENcdTA0NDFcdTA0MzhcdTA0NDFcdTA0NDJcdTA0MzVcdTA0M0NcdTA0NDMgXHUwNDM3XHUwNDMwXHUwNDQ0XHUwNDM4XHUwNDNBXHUwNDQxXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDRDXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNEXHUwNDM3XHUwNDMwXHUwNDNBXHUwNDQ2XHUwNDM4XHUwNDRFIFx1MDQzN1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzMlx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQzNVx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQ0QiBcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzJcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0M0FcdTA0NDNcdTA0MzJcdTA0M0RcdTA0NDNcdTA0NDJcdTA0NDAgXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDMyXHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCIFx1MDQzN1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzN1x1MDQzMFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRFx1MDQzNVx1MDQzRFx1MDQzRSBcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzhcdTA0MzdcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0M0FcdTA0MzhcdTA0MzJcdTA0M0RcdTA0NDNcdTA0NDJcdTA0NDAgXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDM4XHUwNDM3XHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDMwIFx1MDQzOFx1MDQzN3htbFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzMCBcdTA0MzhcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0NDBcdTA0NDJcdTA0M0NcdTA0M0VcdTA0MzRcdTA0MzVcdTA0M0JcdTA0Mzh4ZHRvIFx1MDQzOFx1MDQzQ1x1MDQ0Rlx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQ0Q1x1MDQ0RVx1MDQ0Mlx1MDQzNVx1MDQ0MFx1MDQzMCBcdTA0MzhcdTA0M0NcdTA0NEZcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M0JcdTA0NEYgXHUwNDM4XHUwNDNEXHUwNDM4XHUwNDQ2XHUwNDM4XHUwNDMwXHUwNDNCXHUwNDM4XHUwNDM3XHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDRDXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDNFXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM1XHUwNDNEXHUwNDNEXHUwNDRCXHUwNDM1XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDM1IFx1MDQzOFx1MDQzRFx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQ0Rlx1MDQzRVx1MDQzMVx1MDQzRVx1MDQ0OFx1MDQzOFx1MDQzMVx1MDQzQVx1MDQzNSBcdTA0M0FcdTA0MzBcdTA0NDJcdTA0MzBcdTA0M0JcdTA0M0VcdTA0MzNcdTA0MzFcdTA0MzhcdTA0MzFcdTA0M0JcdTA0MzhcdTA0M0VcdTA0NDJcdTA0MzVcdTA0M0FcdTA0MzhcdTA0M0NcdTA0M0VcdTA0MzFcdTA0MzhcdTA0M0JcdTA0NENcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0NDNcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0MzlcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzAgXHUwNDNBXHUwNDMwXHUwNDQyXHUwNDMwXHUwNDNCXHUwNDNFXHUwNDMzXHUwNDMyXHUwNDQwXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDNFXHUwNDMyIFx1MDQzQVx1MDQzMFx1MDQ0Mlx1MDQzMFx1MDQzQlx1MDQzRVx1MDQzM1x1MDQzNFx1MDQzRVx1MDQzQVx1MDQ0M1x1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzRVx1MDQzMiBcdTA0M0FcdTA0MzBcdTA0NDJcdTA0MzBcdTA0M0JcdTA0M0VcdTA0MzNcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0NcdTA0M0NcdTA0NEIgXHUwNDNBXHUwNDNFXHUwNDM0XHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDRDXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDNBXHUwNDQzIFx1MDQzQVx1MDQzRVx1MDQzNFx1MDQzQlx1MDQzRVx1MDQzQVx1MDQzMFx1MDQzQlx1MDQzOFx1MDQzN1x1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOFx1MDQzOFx1MDQzRFx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzRVx1MDQzRFx1MDQzRFx1MDQzRVx1MDQzOVx1MDQzMVx1MDQzMFx1MDQzN1x1MDQ0QiBcdTA0M0FcdTA0M0VcdTA0MzRcdTA0NDFcdTA0MzhcdTA0M0NcdTA0MzJcdTA0M0VcdTA0M0JcdTA0MzAgXHUwNDNBXHUwNDNFXHUwNDNDXHUwNDMwXHUwNDNEXHUwNDM0XHUwNDMwXHUwNDQxXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDM1XHUwNDNDXHUwNDRCIFx1MDQzQVx1MDQzRVx1MDQzRFx1MDQzNVx1MDQ0Nlx1MDQzM1x1MDQzRVx1MDQzNFx1MDQzMCBcdTA0M0FcdTA0M0VcdTA0M0RcdTA0MzVcdTA0NDZcdTA0MzRcdTA0M0RcdTA0NEYgXHUwNDNBXHUwNDNFXHUwNDNEXHUwNDM1XHUwNDQ2XHUwNDNBXHUwNDMyXHUwNDMwXHUwNDQwXHUwNDQyXHUwNDMwXHUwNDNCXHUwNDMwIFx1MDQzQVx1MDQzRVx1MDQzRFx1MDQzNVx1MDQ0Nlx1MDQzQ1x1MDQzNVx1MDQ0MVx1MDQ0Rlx1MDQ0Nlx1MDQzMCBcdTA0M0FcdTA0M0VcdTA0M0RcdTA0MzVcdTA0NDZcdTA0M0NcdTA0MzhcdTA0M0RcdTA0NDNcdTA0NDJcdTA0NEIgXHUwNDNBXHUwNDNFXHUwNDNEXHUwNDM1XHUwNDQ2XHUwNDNEXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM4IFx1MDQzQVx1MDQzRVx1MDQzRFx1MDQzNVx1MDQ0Nlx1MDQ0N1x1MDQzMFx1MDQ0MVx1MDQzMCBcdTA0M0FcdTA0M0VcdTA0M0RcdTA0NDRcdTA0MzhcdTA0MzNcdTA0NDNcdTA0NDBcdTA0MzBcdTA0NDZcdTA0MzhcdTA0NEZcdTA0MzFcdTA0MzBcdTA0MzdcdTA0NEJcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDVcdTA0MzhcdTA0MzdcdTA0M0NcdTA0MzVcdTA0M0RcdTA0MzVcdTA0M0RcdTA0MzBcdTA0MzRcdTA0MzhcdTA0M0RcdTA0MzBcdTA0M0NcdTA0MzhcdTA0NDdcdTA0MzVcdTA0NDFcdTA0M0FcdTA0MzggXHUwNDNBXHUwNDNFXHUwNDNEXHUwNDQ0XHUwNDM4XHUwNDMzXHUwNDQzXHUwNDQwXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDRGXHUwNDM4XHUwNDM3XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDM1XHUwNDNEXHUwNDMwIFx1MDQzQVx1MDQzRVx1MDQzRlx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQzNVx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQ0QiBcdTA0M0FcdTA0M0VcdTA0M0ZcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0NENcdTA0NDRcdTA0MzBcdTA0MzlcdTA0M0IgXHUwNDNBXHUwNDQwXHUwNDMwXHUwNDQyXHUwNDNBXHUwNDNFXHUwNDM1XHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMwXHUwNDMyXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNFXHUwNDQ4XHUwNDM4XHUwNDMxXHUwNDNBXHUwNDM4IFx1MDQzQlx1MDQzNVx1MDQzMiBcdTA0M0NcdTA0MzBcdTA0M0FcdTA0NDEgXHUwNDNDXHUwNDM1XHUwNDQxXHUwNDQyXHUwNDNEXHUwNDNFXHUwNDM1XHUwNDMyXHUwNDQwXHUwNDM1XHUwNDNDXHUwNDRGIFx1MDQzQ1x1MDQzNVx1MDQ0MVx1MDQ0Rlx1MDQ0NiBcdTA0M0NcdTA0MzhcdTA0M0QgXHUwNDNDXHUwNDM4XHUwNDNEXHUwNDQzXHUwNDQyXHUwNDMwIFx1MDQzQ1x1MDQzRVx1MDQzRFx1MDQzRVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQ0Qlx1MDQzOVx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQyBcdTA0M0RcdTA0MzBcdTA0MzlcdTA0NDJcdTA0MzggXHUwNDNEXHUwNDMwXHUwNDM5XHUwNDQyXHUwNDM4XHUwNDNEXHUwNDM1XHUwNDM0XHUwNDNFXHUwNDNGXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDM4XHUwNDNDXHUwNDRCXHUwNDM1XHUwNDQxXHUwNDM4XHUwNDNDXHUwNDMyXHUwNDNFXHUwNDNCXHUwNDRCeG1sIFx1MDQzRFx1MDQzMFx1MDQzOVx1MDQ0Mlx1MDQzOFx1MDQzRVx1MDQzQVx1MDQzRFx1MDQzRVx1MDQzRlx1MDQzRVx1MDQzRFx1MDQzMFx1MDQzMlx1MDQzOFx1MDQzM1x1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzRVx1MDQzRFx1MDQzRFx1MDQzRVx1MDQzOVx1MDQ0MVx1MDQ0MVx1MDQ0Qlx1MDQzQlx1MDQzQVx1MDQzNSBcdTA0M0RcdTA0MzBcdTA0MzlcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0VcdTA0M0NcdTA0MzVcdTA0NDdcdTA0MzVcdTA0M0RcdTA0M0RcdTA0NEJcdTA0MzVcdTA0M0RcdTA0MzBcdTA0NDNcdTA0MzRcdTA0MzBcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzUgXHUwNDNEXHUwNDMwXHUwNDM5XHUwNDQyXHUwNDM4XHUwNDNGXHUwNDNFXHUwNDQxXHUwNDQxXHUwNDRCXHUwNDNCXHUwNDNBXHUwNDMwXHUwNDNDIFx1MDQzRFx1MDQzMFx1MDQzOVx1MDQ0Mlx1MDQzOFx1MDQ0NFx1MDQzMFx1MDQzOVx1MDQzQlx1MDQ0QiBcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzBcdTA0M0JcdTA0M0VcdTA0MzNcdTA0M0VcdTA0MzRcdTA0MzAgXHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDMwXHUwNDNCXHUwNDNFXHUwNDM0XHUwNDNEXHUwNDRGIFx1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzMFx1MDQzQlx1MDQzRVx1MDQzQVx1MDQzMlx1MDQzMFx1MDQ0MFx1MDQ0Mlx1MDQzMFx1MDQzQlx1MDQzMCBcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzBcdTA0M0JcdTA0M0VcdTA0M0NcdTA0MzVcdTA0NDFcdTA0NEZcdTA0NDZcdTA0MzAgXHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDMwXHUwNDNCXHUwNDNFXHUwNDNDXHUwNDM4XHUwNDNEXHUwNDQzXHUwNDQyXHUwNDRCIFx1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzMFx1MDQzQlx1MDQzRVx1MDQzRFx1MDQzNVx1MDQzNFx1MDQzNVx1MDQzQlx1MDQzOCBcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzBcdTA0M0JcdTA0M0VcdTA0NDdcdTA0MzBcdTA0NDFcdTA0MzAgXHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDMwXHUwNDQyXHUwNDRDXHUwNDM3XHUwNDMwXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDQxXHUwNDQwXHUwNDMwXHUwNDM3XHUwNDQwXHUwNDM1XHUwNDQ4XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRGIFx1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQzN1x1MDQzMFx1MDQzRlx1MDQ0M1x1MDQ0MVx1MDQzQVx1MDQzRlx1MDQ0MFx1MDQzOFx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzBcdTA0NDJcdTA0NENcdTA0M0FcdTA0M0VcdTA0M0ZcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0MzAgXHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDMwXHUwNDQyXHUwNDRDXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDQ5XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDMwIFx1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQzRlx1MDQzRVx1MDQzNFx1MDQzQVx1MDQzQlx1MDQ0RVx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzMlx1MDQzRFx1MDQzNVx1MDQ0OFx1MDQzRFx1MDQzNVx1MDQzOVx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQ0QiBcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzBcdTA0NDJcdTA0NENcdTA0M0ZcdTA0M0VcdTA0MzRcdTA0M0FcdTA0M0JcdTA0NEVcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDBcdTA0MzBcdTA0NDFcdTA0NDhcdTA0MzhcdTA0NDBcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0NDBcdTA0MzBcdTA0MzFcdTA0M0VcdTA0NDJcdTA0NEJcdTA0NDFcdTA0M0FcdTA0NDBcdTA0MzhcdTA0M0ZcdTA0NDJcdTA0M0VcdTA0MzNcdTA0NDBcdTA0MzBcdTA0NDRcdTA0MzhcdTA0MzVcdTA0MzkgXHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDMwXHUwNDQyXHUwNDRDXHUwNDNGXHUwNDNFXHUwNDM0XHUwNDNBXHUwNDNCXHUwNDRFXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQwXHUwNDMwXHUwNDQxXHUwNDQ4XHUwNDM4XHUwNDQwXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDQwXHUwNDMwXHUwNDMxXHUwNDNFXHUwNDQyXHUwNDRCXHUwNDQxXHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDMwXHUwNDNDXHUwNDM4IFx1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQzRlx1MDQzRVx1MDQzOFx1MDQ0MVx1MDQzQVx1MDQ0NFx1MDQzMFx1MDQzOVx1MDQzQlx1MDQzRVx1MDQzMiBcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzBcdTA0NDJcdTA0NENcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0FcdTA0MzBcdTA0NDJcdTA0MzBcdTA0M0JcdTA0M0VcdTA0MzNcdTA0MzBcdTA0MzJcdTA0NDBcdTA0MzVcdTA0M0NcdTA0MzVcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDVcdTA0NDRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0M0VcdTA0MzIgXHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDMwXHUwNDQyXHUwNDRDXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNBXHUwNDMwXHUwNDQyXHUwNDMwXHUwNDNCXHUwNDNFXHUwNDMzXHUwNDMwXHUwNDM0XHUwNDNFXHUwNDNBXHUwNDQzXHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDNFXHUwNDMyIFx1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0MFx1MDQzMFx1MDQzMVx1MDQzRVx1MDQ0N1x1MDQzNVx1MDQzM1x1MDQzRVx1MDQzQVx1MDQzMFx1MDQ0Mlx1MDQzMFx1MDQzQlx1MDQzRVx1MDQzM1x1MDQzMFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQ0RiBcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzBcdTA0NDJcdTA0NENcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0M0VcdTA0MzIgXHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDMwXHUwNDQyXHUwNDRDXHUwNDNGXHUwNDNFXHUwNDNDXHUwNDM1XHUwNDQ5XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDMwIFx1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQzRlx1MDQzRVx1MDQzQ1x1MDQzNVx1MDQ0OVx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0NFx1MDQzMFx1MDQzOVx1MDQzQlx1MDQzRVx1MDQzMiBcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzBcdTA0NDJcdTA0NENcdTA0NDFcdTA0M0VcdTA0MzdcdTA0MzRcdTA0MzBcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzRcdTA0MzJcdTA0M0VcdTA0MzhcdTA0NDdcdTA0M0RcdTA0NEJcdTA0NDVcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDVcdTA0MzhcdTA0MzdcdTA0NDRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0MzAgXHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDMwXHUwNDQyXHUwNDRDXHUwNDQxXHUwNDNFXHUwNDM3XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNBXHUwNDMwXHUwNDQyXHUwNDMwXHUwNDNCXHUwNDNFXHUwNDMzXHUwNDMwIFx1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzRFx1MDQzN1x1MDQzMFx1MDQzQVx1MDQ0Nlx1MDQzOFx1MDQ0RSBcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzBcdTA0NDJcdTA0NENcdTA0NDNcdTA0MzRcdTA0MzBcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0M0VcdTA0MzIgXHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDMwXHUwNDQyXHUwNDRDXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDQzXHUwNDMyXHUwNDNEXHUwNDM1XHUwNDQ4XHUwNDNEXHUwNDM1XHUwNDM5XHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDRCIFx1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQ0M1x1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQ0M1x1MDQ0MFx1MDQzMFx1MDQ0MVx1MDQ0OFx1MDQzOFx1MDQ0MFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQ0MFx1MDQzMFx1MDQzMVx1MDQzRVx1MDQ0Mlx1MDQ0Qlx1MDQ0MVx1MDQzQVx1MDQ0MFx1MDQzOFx1MDQzRlx1MDQ0Mlx1MDQzRVx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQ0NFx1MDQzOFx1MDQzNVx1MDQzOSBcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzBcdTA0NDJcdTA0NENcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0NDNcdTA0NDBcdTA0MzBcdTA0NDFcdTA0NDhcdTA0MzhcdTA0NDBcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0NDBcdTA0MzBcdTA0MzFcdTA0M0VcdTA0NDJcdTA0NEJcdTA0NDFcdTA0NDRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0MzBcdTA0M0NcdTA0MzggXHUwNDNEXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNCXHUwNDRGXHUwNDMzXHUwNDNFXHUwNDM0XHUwNDMwIFx1MDQzRFx1MDQzNVx1MDQzRVx1MDQzMVx1MDQ0NVx1MDQzRVx1MDQzNFx1MDQzOFx1MDQzQ1x1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQ0Q1x1MDQzN1x1MDQzMFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQ0OFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQ0MVx1MDQzRVx1MDQzNVx1MDQzNFx1MDQzOFx1MDQzRFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0M0RcdTA0M0VcdTA0M0NcdTA0MzVcdTA0NDBcdTA0NDFcdTA0MzVcdTA0MzBcdTA0M0RcdTA0NDFcdTA0MzBcdTA0MzhcdTA0M0RcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0MzBcdTA0NDZcdTA0MzhcdTA0M0VcdTA0M0RcdTA0M0RcdTA0M0VcdTA0MzlcdTA0MzFcdTA0MzBcdTA0MzdcdTA0NEIgXHUwNDNEXHUwNDNFXHUwNDNDXHUwNDM1XHUwNDQwXHUwNDQxXHUwNDNFXHUwNDM1XHUwNDM0XHUwNDM4XHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDM4XHUwNDNEXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDNFXHUwNDNEXHUwNDNEXHUwNDNFXHUwNDM5XHUwNDMxXHUwNDMwXHUwNDM3XHUwNDRCIFx1MDQzRFx1MDQ0MFx1MDQzNVx1MDQzMyBcdTA0M0RcdTA0NDFcdTA0NDJcdTA0NDAgXHUwNDNFXHUwNDMxXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDM4XHUwNDNEXHUwNDQyXHUwNDM1XHUwNDQwXHUwNDQ0XHUwNDM1XHUwNDM5XHUwNDQxIFx1MDQzRVx1MDQzMVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzRFx1MDQ0M1x1MDQzQ1x1MDQzNVx1MDQ0MFx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQ0RVx1MDQzRVx1MDQzMVx1MDQ0QVx1MDQzNVx1MDQzQVx1MDQ0Mlx1MDQzRVx1MDQzMiBcdTA0M0VcdTA0MzFcdTA0M0RcdTA0M0VcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NENcdTA0M0ZcdTA0M0VcdTA0MzJcdTA0NDJcdTA0M0VcdTA0NDBcdTA0M0RcdTA0M0VcdTA0MzhcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0NDNcdTA0MzVcdTA0M0NcdTA0NEJcdTA0MzVcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDMxXHUwNDNFXHUwNDQyXHUwNDNBXHUwNDMwXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDQwXHUwNDRCXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRGIFx1MDQzRVx1MDQzMVx1MDQ0QVx1MDQzNVx1MDQzNFx1MDQzOFx1MDQzRFx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQ0NFx1MDQzMFx1MDQzOVx1MDQzQlx1MDQ0QiBcdTA0M0VcdTA0M0FcdTA0NDAgXHUwNDNFXHUwNDNGXHUwNDM4XHUwNDQxXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNFXHUwNDQ4XHUwNDM4XHUwNDMxXHUwNDNBXHUwNDM4IFx1MDQzRVx1MDQzRlx1MDQzRVx1MDQzMlx1MDQzNVx1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQ0Mlx1MDQ0QyBcdTA0M0VcdTA0M0ZcdTA0M0VcdTA0MzJcdTA0MzVcdTA0NDFcdTA0NDJcdTA0MzhcdTA0NDJcdTA0NENcdTA0M0VcdTA0MzFcdTA0MzhcdTA0MzdcdTA0M0NcdTA0MzVcdTA0M0RcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzggXHUwNDNFXHUwNDQyXHUwNDNBXHUwNDNCXHUwNDRFXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDMxXHUwNDNFXHUwNDQyXHUwNDQ3XHUwNDM4XHUwNDNBXHUwNDM3XHUwNDMwXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDQxXHUwNDMwXHUwNDNEXHUwNDMwXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDM1XHUwNDNBXHUwNDNBXHUwNDNCXHUwNDM4XHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwXHUwNDNCXHUwNDM4XHUwNDQ2XHUwNDM1XHUwNDNEXHUwNDM3XHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQzRVx1MDQ0Mlx1MDQzQVx1MDQzQlx1MDQ0RVx1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzMVx1MDQzRVx1MDQ0Mlx1MDQ0N1x1MDQzOFx1MDQzQVx1MDQzRVx1MDQzNlx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0M0VcdTA0NDJcdTA0M0FcdTA0M0JcdTA0NEVcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzFcdTA0M0VcdTA0NDJcdTA0NDdcdTA0MzhcdTA0M0FcdTA0M0VcdTA0M0ZcdTA0M0VcdTA0MzJcdTA0MzVcdTA0NDlcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDNFXHUwNDQyXHUwNDNBXHUwNDQwXHUwNDRCXHUwNDQyXHUwNDRDXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1IFx1MDQzRVx1MDQ0Mlx1MDQzQVx1MDQ0MFx1MDQ0Qlx1MDQ0Mlx1MDQ0Q1x1MDQzOFx1MDQzRFx1MDQzNFx1MDQzNVx1MDQzQVx1MDQ0MVx1MDQ0MVx1MDQzRlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzQVx1MDQzOCBcdTA0M0VcdTA0NDJcdTA0M0FcdTA0NDBcdTA0NEJcdTA0NDJcdTA0NENcdTA0NDFcdTA0M0VcdTA0MzRcdTA0MzVcdTA0NDBcdTA0MzZcdTA0MzBcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDFcdTA0M0ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M0FcdTA0MzggXHUwNDNFXHUwNDQyXHUwNDNBXHUwNDQwXHUwNDRCXHUwNDQyXHUwNDRDXHUwNDQxXHUwNDNGXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNBXHUwNDQzIFx1MDQzRVx1MDQ0Mlx1MDQzQVx1MDQ0MFx1MDQ0Qlx1MDQ0Mlx1MDQ0Q1x1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQ0MyBcdTA0M0VcdTA0NDJcdTA0M0FcdTA0NDBcdTA0NEJcdTA0NDJcdTA0NENcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0NDNcdTA0M0NcdTA0M0VcdTA0MzRcdTA0MzBcdTA0M0JcdTA0NENcdTA0M0RcdTA0M0UgXHUwNDNFXHUwNDQyXHUwNDNDXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNEXHUwNDM3XHUwNDMwXHUwNDNBXHUwNDQ2XHUwNDM4XHUwNDRFIFx1MDQzRVx1MDQ0N1x1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzNlx1MDQ0M1x1MDQ0MFx1MDQzRFx1MDQzMFx1MDQzQlx1MDQ0MFx1MDQzNVx1MDQzM1x1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOCBcdTA0M0VcdTA0NDdcdTA0MzhcdTA0NDFcdTA0NDJcdTA0MzhcdTA0NDJcdTA0NENcdTA0M0RcdTA0MzBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0MzlcdTA0M0FcdTA0MzhcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M0JcdTA0NEYgXHUwNDNFXHUwNDQ3XHUwNDM4XHUwNDQxXHUwNDQyXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDQxXHUwNDNFXHUwNDNFXHUwNDMxXHUwNDQ5XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQzRlx1MDQzMFx1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzNVx1MDQ0Mlx1MDQ0MFx1MDQ0Qlx1MDQzNFx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQzRlx1MDQzMCBcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzlcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0MzBcdTA0MzJcdTA0MzhcdTA0MzNcdTA0MzBcdTA0NDZcdTA0MzhcdTA0M0VcdTA0M0RcdTA0M0RcdTA0M0VcdTA0MzlcdTA0NDFcdTA0NDFcdTA0NEJcdTA0M0JcdTA0M0FcdTA0MzUgXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDQxXHUwNDQyXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCIFx1MDQzRlx1MDQzRVx1MDQzNFx1MDQzQVx1MDQzQlx1MDQ0RVx1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzMlx1MDQzRFx1MDQzNVx1MDQ0OFx1MDQzRFx1MDQ0RVx1MDQ0RVx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQ0MyBcdTA0M0ZcdTA0M0VcdTA0MzRcdTA0M0FcdTA0M0JcdTA0NEVcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzFcdTA0M0VcdTA0NDJcdTA0NDdcdTA0MzhcdTA0M0FcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDFcdTA0MzBcdTA0M0RcdTA0MzBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0MzVcdTA0M0FcdTA0M0FcdTA0M0JcdTA0MzhcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzBcdTA0M0JcdTA0MzhcdTA0NDZcdTA0MzVcdTA0M0RcdTA0MzdcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDNGXHUwNDNFXHUwNDM0XHUwNDNBXHUwNDNCXHUwNDRFXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDMxXHUwNDNFXHUwNDQyXHUwNDQ3XHUwNDM4XHUwNDNBXHUwNDNFXHUwNDM2XHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQzRlx1MDQzRVx1MDQzNFx1MDQzQVx1MDQzQlx1MDQ0RVx1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzMVx1MDQzRVx1MDQ0Mlx1MDQ0N1x1MDQzOFx1MDQzQVx1MDQzRVx1MDQzRlx1MDQzRVx1MDQzMlx1MDQzNVx1MDQ0OVx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0M0ZcdTA0M0VcdTA0MzRcdTA0M0FcdTA0M0JcdTA0NEVcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0NDBcdTA0MzBcdTA0NDFcdTA0NDhcdTA0MzhcdTA0NDBcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDBcdTA0MzBcdTA0MzFcdTA0M0VcdTA0NDJcdTA0NEJcdTA0NDFcdTA0M0FcdTA0NDBcdTA0MzhcdTA0M0ZcdTA0NDJcdTA0M0VcdTA0MzNcdTA0NDBcdTA0MzBcdTA0NDRcdTA0MzhcdTA0MzVcdTA0MzkgXHUwNDNGXHUwNDNFXHUwNDM0XHUwNDNBXHUwNDNCXHUwNDRFXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDQwXHUwNDMwXHUwNDQxXHUwNDQ4XHUwNDM4XHUwNDQwXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQwXHUwNDMwXHUwNDMxXHUwNDNFXHUwNDQyXHUwNDRCXHUwNDQxXHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDMwXHUwNDNDXHUwNDM4IFx1MDQzRlx1MDQzRVx1MDQzNFx1MDQ0MFx1MDQzRVx1MDQzMVx1MDQzRFx1MDQzRVx1MDQzNVx1MDQzRlx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzMlx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzRVx1MDQ0OFx1MDQzOFx1MDQzMVx1MDQzQVx1MDQzOCBcdTA0M0ZcdTA0M0VcdTA0M0FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0NDJcdTA0NENcdTA0MzJcdTA0MzJcdTA0M0VcdTA0MzRcdTA0MzRcdTA0MzBcdTA0NDJcdTA0NEIgXHUwNDNGXHUwNDNFXHUwNDNBXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDQyXHUwNDRDXHUwNDMyXHUwNDMyXHUwNDNFXHUwNDM0XHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQzRlx1MDQzRVx1MDQzQVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQzMlx1MDQzMlx1MDQzRVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzQVx1MDQzOCBcdTA0M0ZcdTA0M0VcdTA0M0FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0NDJcdTA0NENcdTA0MzJcdTA0MzJcdTA0M0VcdTA0MzRcdTA0NDdcdTA0MzhcdTA0NDFcdTA0M0JcdTA0MzAgXHUwNDNGXHUwNDNFXHUwNDNBXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDQyXHUwNDRDXHUwNDMyXHUwNDNFXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDQxIFx1MDQzRlx1MDQzRVx1MDQzQVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQzN1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNSBcdTA0M0ZcdTA0M0VcdTA0M0FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0NDJcdTA0NENcdTA0MzhcdTA0M0RcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0MzBcdTA0NDZcdTA0MzhcdTA0NEVcdTA0M0VcdTA0MzFcdTA0M0VcdTA0NDhcdTA0MzhcdTA0MzFcdTA0M0FcdTA0MzUgXHUwNDNGXHUwNDNFXHUwNDNBXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDQyXHUwNDRDXHUwNDNEXHUwNDMwXHUwNDNBXHUwNDMwXHUwNDQwXHUwNDQyXHUwNDM1IFx1MDQzRlx1MDQzRVx1MDQzQVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQzRVx1MDQzRlx1MDQzRVx1MDQzMlx1MDQzNVx1MDQ0OVx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQ0RiBcdTA0M0ZcdTA0M0VcdTA0M0FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0NDJcdTA0NENcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0NDNcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzRcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzUgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNEXHUwNDNFXHUwNDM1XHUwNDM4XHUwNDNDXHUwNDRGXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRGIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q2NvbVx1MDQzRVx1MDQzMVx1MDQ0QVx1MDQzNVx1MDQzQVx1MDQ0MiBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NEN4bWxcdTA0NDJcdTA0MzhcdTA0M0YgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNDXHUwNDM1XHUwNDQxXHUwNDQyXHUwNDNFXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRFIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzMVx1MDQzQlx1MDQzRVx1MDQzQVx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQ0M1x1MDQ0MVx1MDQzNVx1MDQzMFx1MDQzRFx1MDQ0MVx1MDQzRVx1MDQzMiBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzJcdTA0NDBcdTA0MzVcdTA0M0NcdTA0NEZcdTA0MzdcdTA0MzBcdTA0MzJcdTA0MzVcdTA0NDBcdTA0NDhcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0NDFcdTA0M0ZcdTA0NEZcdTA0NDlcdTA0MzVcdTA0MzNcdTA0M0VcdTA0NDFcdTA0MzVcdTA0MzBcdTA0M0RcdTA0NDFcdTA0MzAgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDMyXHUwNDQwXHUwNDM1XHUwNDNDXHUwNDRGXHUwNDM3XHUwNDMwXHUwNDQxXHUwNDRCXHUwNDNGXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNGXHUwNDMwXHUwNDQxXHUwNDQxXHUwNDM4XHUwNDMyXHUwNDNEXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDQxXHUwNDM1XHUwNDMwXHUwNDNEXHUwNDQxXHUwNDMwIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzMlx1MDQ0MFx1MDQzNVx1MDQzQ1x1MDQ0Rlx1MDQzRVx1MDQzNlx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzMVx1MDQzQlx1MDQzRVx1MDQzQVx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0MzVcdTA0MzJcdTA0NEJcdTA0MzFcdTA0M0VcdTA0NDBcdTA0MzAgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDM0XHUwNDNFXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNEXHUwNDM4XHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRDXHUwNDNEXHUwNDRCXHUwNDM5XHUwNDNGXHUwNDMwXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDM1XHUwNDQyXHUwNDQwXHUwNDNBXHUwNDNCXHUwNDM4XHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwXHUwNDNCXHUwNDM4XHUwNDQ2XHUwNDM1XHUwNDNEXHUwNDM3XHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzNFx1MDQzRVx1MDQzRlx1MDQ0M1x1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQzQ1x1MDQ0Qlx1MDQzNVx1MDQzQVx1MDQzRVx1MDQzNFx1MDQ0Qlx1MDQzQlx1MDQzRVx1MDQzQVx1MDQzMFx1MDQzQlx1MDQzOFx1MDQzN1x1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOCBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzRcdTA0M0VcdTA0M0ZcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzhcdTA0M0NcdTA0NEJcdTA0MzVcdTA0NDdcdTA0MzBcdTA0NDFcdTA0M0VcdTA0MzJcdTA0NEJcdTA0MzVcdTA0M0ZcdTA0M0VcdTA0NEZcdTA0NDFcdTA0MzAgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDM3XHUwNDMwXHUwNDMzXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDMyXHUwNDNFXHUwNDNBXHUwNDNBXHUwNDNCXHUwNDM4XHUwNDM1XHUwNDNEXHUwNDQyXHUwNDQxXHUwNDNBXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDNGXHUwNDQwXHUwNDM4XHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzN1x1MDQzMFx1MDQzM1x1MDQzRVx1MDQzQlx1MDQzRVx1MDQzMlx1MDQzRVx1MDQzQVx1MDQ0MVx1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzNVx1MDQzQ1x1MDQ0QiBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0M0VcdTA0NDJcdTA0MzFcdTA0M0VcdTA0NDBcdTA0MzBcdTA0MzZcdTA0NDNcdTA0NDBcdTA0M0RcdTA0MzBcdTA0M0JcdTA0MzBcdTA0NDBcdTA0MzVcdTA0MzNcdTA0MzhcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0NDZcdTA0MzhcdTA0MzggXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDM4XHUwNDM0XHUwNDM1XHUwNDNEXHUwNDQyXHUwNDM4XHUwNDQ0XHUwNDM4XHUwNDNBXHUwNDMwXHUwNDQyXHUwNDNFXHUwNDQwXHUwNDNBXHUwNDNFXHUwNDNEXHUwNDQ0XHUwNDM4XHUwNDMzXHUwNDQzXHUwNDQwXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzOFx1MDQzN1x1MDQzMlx1MDQ0MFx1MDQzNVx1MDQzQ1x1MDQzNVx1MDQzRFx1MDQzRFx1MDQzRVx1MDQzM1x1MDQzRVx1MDQ0NVx1MDQ0MFx1MDQzMFx1MDQzRFx1MDQzOFx1MDQzQlx1MDQzOFx1MDQ0OVx1MDQzMCBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzhcdTA0M0NcdTA0NEZcdTA0MzJcdTA0NDBcdTA0MzVcdTA0M0NcdTA0MzVcdTA0M0RcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0NDRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0MzAgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDM4XHUwNDNDXHUwNDRGXHUwNDNBXHUwNDNCXHUwNDM4XHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwXHUwNDNCXHUwNDM4XHUwNDQ2XHUwNDM1XHUwNDNEXHUwNDM3XHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzOFx1MDQzRFx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQ0RVx1MDQ0RFx1MDQzQVx1MDQ0MFx1MDQzMFx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzQlx1MDQzOFx1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzMCBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzhcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzZcdTA0NDNcdTA0NDBcdTA0M0RcdTA0MzBcdTA0M0JcdTA0MzBcdTA0NDBcdTA0MzVcdTA0MzNcdTA0MzhcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0NDZcdTA0MzhcdTA0MzggXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDM4XHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQxXHUwNDNFXHUwNDMxXHUwNDRCXHUwNDQyXHUwNDM4XHUwNDRGXHUwNDM2XHUwNDQzXHUwNDQwXHUwNDNEXHUwNDMwXHUwNDNCXHUwNDMwXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzQVx1MDQ0MFx1MDQzMFx1MDQ0Mlx1MDQzQVx1MDQzOFx1MDQzOVx1MDQzN1x1MDQzMFx1MDQzM1x1MDQzRVx1MDQzQlx1MDQzRVx1MDQzMlx1MDQzRVx1MDQzQVx1MDQzRlx1MDQ0MFx1MDQzOFx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0M0NcdTA0MzBcdTA0M0FcdTA0MzVcdTA0NDJcdTA0M0VcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDNDXHUwNDMwXHUwNDQxXHUwNDNBXHUwNDQzXHUwNDMyXHUwNDQxXHUwNDM1XHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDRCIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzQ1x1MDQzMFx1MDQ0MVx1MDQzQVx1MDQ0M1x1MDQzMlx1MDQ0MVx1MDQzNVx1MDQ0NFx1MDQzMFx1MDQzOVx1MDQzQlx1MDQ0Qlx1MDQzQVx1MDQzQlx1MDQzOFx1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzMCBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0M0NcdTA0MzBcdTA0NDFcdTA0M0FcdTA0NDNcdTA0MzJcdTA0NDFcdTA0MzVcdTA0NDRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0NEJcdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzAgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDNDXHUwNDM1XHUwNDQxXHUwNDQyXHUwNDNFXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNGXHUwNDNFXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxXHUwNDQzIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzQ1x1MDQzOFx1MDQzRFx1MDQzOFx1MDQzQ1x1MDQzMFx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQ0M1x1MDQ0RVx1MDQzNFx1MDQzQlx1MDQzOFx1MDQzRFx1MDQ0M1x1MDQzRlx1MDQzMFx1MDQ0MFx1MDQzRVx1MDQzQlx1MDQzNVx1MDQzOVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQzNVx1MDQzOSBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0M0RcdTA0MzBcdTA0MzJcdTA0MzhcdTA0MzNcdTA0MzBcdTA0NDZcdTA0MzhcdTA0M0VcdTA0M0RcdTA0M0RcdTA0NDNcdTA0NEVcdTA0NDFcdTA0NDFcdTA0NEJcdTA0M0JcdTA0M0FcdTA0NDMgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDNEXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDMzXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDNFXHUwNDNEXHUwNDNEXHUwNDQzXHUwNDRFXHUwNDQxXHUwNDQxXHUwNDRCXHUwNDNCXHUwNDNBXHUwNDQzXHUwNDM4XHUwNDNEXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDNFXHUwNDNEXHUwNDNEXHUwNDNFXHUwNDM5XHUwNDMxXHUwNDMwXHUwNDM3XHUwNDRCIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzRVx1MDQzMVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzQVx1MDQzRVx1MDQzRFx1MDQ0NFx1MDQzOFx1MDQzM1x1MDQ0M1x1MDQ0MFx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOFx1MDQzMVx1MDQzMFx1MDQzN1x1MDQ0Qlx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0M0VcdTA0MzFcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0M0VcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M0JcdTA0MzVcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDVcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDVcdTA0MzhcdTA0M0RcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0MzBcdTA0NDZcdTA0MzhcdTA0M0VcdTA0M0RcdTA0M0RcdTA0M0VcdTA0MzlcdTA0MzFcdTA0MzBcdTA0MzdcdTA0NEIgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDNFXHUwNDMxXHUwNDQ5XHUwNDM4XHUwNDM5XHUwNDNDXHUwNDMwXHUwNDNBXHUwNDM1XHUwNDQyIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzRVx1MDQzMVx1MDQ0OVx1MDQ0M1x1MDQ0RVx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQ0MyBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0M0VcdTA0M0FcdTA0M0RcdTA0MzAgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDNFXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDMwXHUwNDQyXHUwNDM4XHUwNDMyXHUwNDNEXHUwNDQzXHUwNDRFXHUwNDNFXHUwNDQyXHUwNDNDXHUwNDM1XHUwNDQyXHUwNDNBXHUwNDQzXHUwNDMyXHUwNDQwXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDM4IFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzRVx1MDQ0Mlx1MDQzQVx1MDQzQlx1MDQ0RVx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzMVx1MDQzNVx1MDQzN1x1MDQzRVx1MDQzRlx1MDQzMFx1MDQ0MVx1MDQzRFx1MDQzRVx1MDQzM1x1MDQzRVx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQzMCBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0M0ZcdTA0MzBcdTA0NDBcdTA0MzBcdTA0M0NcdTA0MzVcdTA0NDJcdTA0NDBcdTA0NEJcdTA0NDRcdTA0NDNcdTA0M0RcdTA0M0FcdTA0NDZcdTA0MzhcdTA0M0VcdTA0M0RcdTA0MzBcdTA0M0JcdTA0NENcdTA0M0RcdTA0NEJcdTA0NDVcdTA0M0VcdTA0M0ZcdTA0NDZcdTA0MzhcdTA0MzlcdTA0MzhcdTA0M0RcdTA0NDJcdTA0MzVcdTA0NDBcdTA0NDRcdTA0MzVcdTA0MzlcdTA0NDFcdTA0MzAgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNEXHUwNDNFXHUwNDM1XHUwNDM4XHUwNDNDXHUwNDRGXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDNFXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM1XHUwNDNEXHUwNDNEXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzRlx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzMlx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzRFx1MDQzMFx1MDQzMlx1MDQzOFx1MDQzM1x1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzRVx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NVx1MDQ0MVx1MDQ0MVx1MDQ0Qlx1MDQzQlx1MDQzRVx1MDQzQSBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzVcdTA0NDBcdTA0M0FcdTA0NDNcdTA0NDFcdTA0M0JcdTA0M0VcdTA0MzZcdTA0M0RcdTA0M0VcdTA0NDFcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0MzBcdTA0NDBcdTA0M0VcdTA0M0JcdTA0MzVcdTA0MzlcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M0JcdTA0MzVcdTA0MzkgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDQwXHUwNDMwXHUwNDM3XHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM4XHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRDXHUwNDNGXHUwNDQzXHUwNDQyXHUwNDM4IFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQ0MFx1MDQzMFx1MDQzN1x1MDQzNFx1MDQzNVx1MDQzQlx1MDQzOFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQ0Q1x1MDQzRlx1MDQ0M1x1MDQ0Mlx1MDQzOFx1MDQzQVx1MDQzQlx1MDQzOFx1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzMCBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0NDBcdTA0MzBcdTA0MzdcdTA0MzRcdTA0MzVcdTA0M0JcdTA0MzhcdTA0NDJcdTA0MzVcdTA0M0JcdTA0NENcdTA0M0ZcdTA0NDNcdTA0NDJcdTA0MzhcdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzAgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDQxXHUwNDM1XHUwNDMwXHUwNDNEXHUwNDQxXHUwNDRCXHUwNDM4XHUwNDNEXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDNFXHUwNDNEXHUwNDNEXHUwNDNFXHUwNDM5XHUwNDMxXHUwNDMwXHUwNDM3XHUwNDRCIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQ0MVx1MDQzQVx1MDQzRVx1MDQ0MFx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQ0Q1x1MDQzQVx1MDQzQlx1MDQzOFx1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQ0MVx1MDQzQVx1MDQzRVx1MDQzM1x1MDQzRVx1MDQ0MVx1MDQzRVx1MDQzNVx1MDQzNFx1MDQzOFx1MDQzRFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0NDFcdTA0M0VcdTA0MzVcdTA0MzRcdTA0MzhcdTA0M0RcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0MzhcdTA0M0RcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0MzBcdTA0NDZcdTA0MzhcdTA0M0VcdTA0M0RcdTA0M0RcdTA0M0VcdTA0MzlcdTA0MzFcdTA0MzBcdTA0MzdcdTA0NEIgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDQxXHUwNDNFXHUwNDNFXHUwNDMxXHUwNDQ5XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRFIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQ0MVx1MDQzRVx1MDQzRVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQ0Mlx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzOFx1MDQzNVx1MDQzRVx1MDQzMVx1MDQ0QVx1MDQzNVx1MDQzQVx1MDQ0Mlx1MDQzMFx1MDQzOFx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQ0QiBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0NDFcdTA0M0VcdTA0NDFcdTA0NDJcdTA0MzBcdTA0MzJcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0MzRcdTA0MzBcdTA0NDBcdTA0NDJcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0MzhcdTA0M0RcdTA0NDJcdTA0MzVcdTA0NDBcdTA0NDRcdTA0MzVcdTA0MzlcdTA0NDFcdTA0MzBvZGF0YSBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0NDFcdTA0NDJcdTA0NDBcdTA0NDNcdTA0M0FcdTA0NDJcdTA0NDNcdTA0NDBcdTA0NDNcdTA0NDVcdTA0NDBcdTA0MzBcdTA0M0RcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0MzFcdTA0MzBcdTA0MzdcdTA0NEJcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDQyXHUwNDM1XHUwNDNBXHUwNDQzXHUwNDQ5XHUwNDM4XHUwNDM5XHUwNDQxXHUwNDM1XHUwNDMwXHUwNDNEXHUwNDQxXHUwNDM4XHUwNDNEXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDNFXHUwNDNEXHUwNDNEXHUwNDNFXHUwNDM5XHUwNDMxXHUwNDMwXHUwNDM3XHUwNDRCIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQ0NFx1MDQzMFx1MDQzOVx1MDQzQiBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0NDRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0NEIgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDQzIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQ0NFx1MDQ0M1x1MDQzRFx1MDQzQVx1MDQ0Nlx1MDQzOFx1MDQzRVx1MDQzRFx1MDQzMFx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQ0M1x1MDQ0RVx1MDQzRVx1MDQzRlx1MDQ0Nlx1MDQzOFx1MDQ0RSBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0NDRcdTA0NDNcdTA0M0RcdTA0M0FcdTA0NDZcdTA0MzhcdTA0M0VcdTA0M0RcdTA0MzBcdTA0M0JcdTA0NENcdTA0M0RcdTA0NDNcdTA0NEVcdTA0M0VcdTA0M0ZcdTA0NDZcdTA0MzhcdTA0NEVcdTA0MzhcdTA0M0RcdTA0NDJcdTA0MzVcdTA0NDBcdTA0NDRcdTA0MzVcdTA0MzlcdTA0NDFcdTA0MzAgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDQ3XHUwNDMwXHUwNDQxXHUwNDNFXHUwNDMyXHUwNDNFXHUwNDM5XHUwNDNGXHUwNDNFXHUwNDRGXHUwNDQxXHUwNDM4XHUwNDNEXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDNFXHUwNDNEXHUwNDNEXHUwNDNFXHUwNDM5XHUwNDMxXHUwNDMwXHUwNDM3XHUwNDRCIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQzOFx1MDQzRVx1MDQ0MSBcdTA0M0ZcdTA0M0VcdTA0M0NcdTA0MzVcdTA0NDFcdTA0NDJcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzJcdTA0M0VcdTA0MzJcdTA0NDBcdTA0MzVcdTA0M0NcdTA0MzVcdTA0M0RcdTA0M0RcdTA0M0VcdTA0MzVcdTA0NDVcdTA0NDBcdTA0MzBcdTA0M0RcdTA0MzhcdTA0M0JcdTA0MzhcdTA0NDlcdTA0MzUgXHUwNDNGXHUwNDNFXHUwNDNDXHUwNDM1XHUwNDQxXHUwNDQyXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCIFx1MDQzRlx1MDQzRVx1MDQzQ1x1MDQzNVx1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQ0NFx1MDQzMFx1MDQzOVx1MDQzQlx1MDQ0QiBcdTA0M0ZcdTA0NDBcdTA0MzBcdTA0MzIgXHUwNDNGXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNFXHUwNDM0XHUwNDNFXHUwNDQxXHUwNDQyXHUwNDQzXHUwNDNGXHUwNDMwIFx1MDQzRlx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQzRVx1MDQzRlx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQzNVx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzRFx1MDQzRVx1MDQzNVx1MDQzN1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNSBcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0NDFcdTA0NDJcdTA0MzBcdTA0MzJcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0FcdTA0M0VcdTA0MzRcdTA0MzBcdTA0M0JcdTA0M0VcdTA0M0FcdTA0MzBcdTA0M0JcdTA0MzhcdTA0MzdcdTA0MzBcdTA0NDZcdTA0MzhcdTA0MzggXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMwXHUwNDMyXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDNFXHUwNDM0XHUwNDMwIFx1MDQzRlx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzMlx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzRlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzMCBcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0NDFcdTA0NDJcdTA0MzBcdTA0MzJcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0ZcdTA0NDBcdTA0MzhcdTA0M0JcdTA0M0VcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMwXHUwNDMyXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQxXHUwNDNFXHUwNDMxXHUwNDRCXHUwNDQyXHUwNDM4XHUwNDRGXHUwNDM2XHUwNDQzXHUwNDQwXHUwNDNEXHUwNDMwXHUwNDNCXHUwNDMwXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQzRlx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzMlx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0N1x1MDQzMFx1MDQ0MVx1MDQzRVx1MDQzMlx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzRlx1MDQzRVx1MDQ0Rlx1MDQ0MVx1MDQzMCBcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0NDNcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzRcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzUgXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDNBXHUwNDQwXHUwNDMwXHUwNDQyXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDQwXHUwNDMwXHUwNDMxXHUwNDNFXHUwNDQyXHUwNDQzXHUwNDQxXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDM1XHUwNDNDXHUwNDRCIFx1MDQzRlx1MDQ0MFx1MDQzOFx1MDQzMlx1MDQzOFx1MDQzQlx1MDQzNVx1MDQzM1x1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQzOVx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQyBcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0MzRcdTA0M0VcdTA0M0JcdTA0MzZcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzJcdTA0NEJcdTA0MzdcdTA0M0VcdTA0MzIgXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDMwXHUwNDQyXHUwNDRDanNvbiBcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDdcdTA0MzhcdTA0NDJcdTA0MzBcdTA0NDJcdTA0NEN4bWwgXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDMwXHUwNDQyXHUwNDRDXHUwNDM0XHUwNDMwXHUwNDQyXHUwNDQzanNvbiBcdTA0M0ZcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzBcdTA0NEZcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0M0FcdTA0MzAgXHUwNDQwXHUwNDMwXHUwNDMxXHUwNDNFXHUwNDQ3XHUwNDM4XHUwNDM5XHUwNDNBXHUwNDMwXHUwNDQyXHUwNDMwXHUwNDNCXHUwNDNFXHUwNDMzXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRGIFx1MDQ0MFx1MDQzMFx1MDQzN1x1MDQzMVx1MDQzQlx1MDQzRVx1MDQzQVx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQzNVx1MDQzNFx1MDQzQlx1MDQ0Rlx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQzMFx1MDQzQVx1MDQ0Mlx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0NDBcdTA0MzBcdTA0MzdcdTA0MzRcdTA0MzVcdTA0M0JcdTA0MzhcdTA0NDJcdTA0NENcdTA0NDRcdTA0MzBcdTA0MzlcdTA0M0IgXHUwNDQwXHUwNDMwXHUwNDM3XHUwNDNFXHUwNDQwXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDRDXHUwNDQxXHUwNDNFXHUwNDM1XHUwNDM0XHUwNDM4XHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQxXHUwNDMyXHUwNDNEXHUwNDM1XHUwNDQ4XHUwNDNEXHUwNDM4XHUwNDNDXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDNFXHUwNDQ3XHUwNDNEXHUwNDM4XHUwNDNBXHUwNDNFXHUwNDNDXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQ0MFx1MDQzMFx1MDQ0MVx1MDQzQVx1MDQzRVx1MDQzNFx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzQVx1MDQ0MyBcdTA0NDBcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzRcdTA0M0VcdTA0NDFcdTA0NDJcdTA0NDNcdTA0M0ZcdTA0M0RcdTA0MzAgXHUwNDQxXHUwNDM1XHUwNDNBXHUwNDQzXHUwNDNEXHUwNDM0XHUwNDMwIFx1MDQ0MVx1MDQzOFx1MDQzM1x1MDQzRFx1MDQzMFx1MDQzQiBcdTA0NDFcdTA0MzhcdTA0M0NcdTA0MzJcdTA0M0VcdTA0M0IgXHUwNDQxXHUwNDNBXHUwNDNFXHUwNDNGXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDRDXHUwNDM2XHUwNDQzXHUwNDQwXHUwNDNEXHUwNDMwXHUwNDNCXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQ0MVx1MDQzQ1x1MDQzNVx1MDQ0OVx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzQlx1MDQzNVx1MDQ0Mlx1MDQzRFx1MDQzNVx1MDQzM1x1MDQzRVx1MDQzMlx1MDQ0MFx1MDQzNVx1MDQzQ1x1MDQzNVx1MDQzRFx1MDQzOCBcdTA0NDFcdTA0M0NcdTA0MzVcdTA0NDlcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0MzRcdTA0MzBcdTA0NDBcdTA0NDJcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0MzJcdTA0NDBcdTA0MzVcdTA0M0NcdTA0MzVcdTA0M0RcdTA0MzggXHUwNDQxXHUwNDNFXHUwNDM1XHUwNDM0XHUwNDM4XHUwNDNEXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDMxXHUwNDQzXHUwNDQ0XHUwNDM1XHUwNDQwXHUwNDRCXHUwNDM0XHUwNDMyXHUwNDNFXHUwNDM4XHUwNDQ3XHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQ0MVx1MDQzRVx1MDQzN1x1MDQzNFx1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQzQVx1MDQzMFx1MDQ0Mlx1MDQzMFx1MDQzQlx1MDQzRVx1MDQzMyBcdTA0NDFcdTA0M0VcdTA0MzdcdTA0MzRcdTA0MzBcdTA0NDJcdTA0NENcdTA0NDRcdTA0MzBcdTA0MzFcdTA0NDBcdTA0MzhcdTA0M0FcdTA0NDN4ZHRvIFx1MDQ0MVx1MDQzRVx1MDQzQVx1MDQ0MFx1MDQzQiBcdTA0NDFcdTA0M0VcdTA0M0FcdTA0NDBcdTA0M0JcdTA0M0YgXHUwNDQxXHUwNDNFXHUwNDNBXHUwNDQwXHUwNDNGIFx1MDQ0MVx1MDQzRVx1MDQzRVx1MDQzMVx1MDQ0OVx1MDQzOFx1MDQ0Mlx1MDQ0QyBcdTA0NDFcdTA0M0VcdTA0NDFcdTA0NDJcdTA0M0VcdTA0NEZcdTA0M0RcdTA0MzhcdTA0MzUgXHUwNDQxXHUwNDNFXHUwNDQ1XHUwNDQwXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1IFx1MDQ0MVx1MDQzRVx1MDQ0NVx1MDQ0MFx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzRFx1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzOVx1MDQzQVx1MDQzOFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQ0RiBcdTA0NDFcdTA0NDBcdTA0MzVcdTA0MzQgXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDM0XHUwNDNCXHUwNDM4XHUwNDNEXHUwNDMwIFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzN1x1MDQzMFx1MDQzQVx1MDQzMFx1MDQzRFx1MDQ0N1x1MDQzOFx1MDQzMlx1MDQzMFx1MDQzNVx1MDQ0Mlx1MDQ0MVx1MDQ0Rlx1MDQzRFx1MDQzMCBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzdcdTA0MzBcdTA0M0NcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NDJcdTA0NEMgXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNEXHUwNDMwXHUwNDM5XHUwNDQyXHUwNDM4IFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzOFx1MDQzRFx1MDQzMFx1MDQzNVx1MDQ0Mlx1MDQ0MVx1MDQ0Rlx1MDQ0MSBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0M0FcdTA0MzAgXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDNBXHUwNDMwXHUwNDQxXHUwNDNFXHUwNDM1XHUwNDM0XHUwNDM4XHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDM4XHUwNDNEXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDNFXHUwNDNEXHUwNDNEXHUwNDNFXHUwNDM5XHUwNDMxXHUwNDMwXHUwNDM3XHUwNDRCIFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzQVx1MDQ0MyBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0NDBcdTA0MzBcdTA0MzdcdTA0MzRcdTA0MzVcdTA0M0JcdTA0MzhcdTA0NDJcdTA0NEMgXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDQxXHUwNDNFXHUwNDM1XHUwNDM0XHUwNDM4XHUwNDNEXHUwNDM4XHUwNDQyXHUwNDRDIFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQ0MVx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzRFx1MDQzOFx1MDQ0Mlx1MDQ0QyBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0NDdcdTA0MzhcdTA0NDFcdTA0M0JcdTA0M0VcdTA0MzJcdTA0NDVcdTA0M0VcdTA0MzZcdTA0MzRcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzkgXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDQ3XHUwNDM4XHUwNDQxXHUwNDNCXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDNBIFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQ0OFx1MDQzMFx1MDQzMVx1MDQzQlx1MDQzRVx1MDQzRCBcdTA0NDJcdTA0MzVcdTA0M0FcdTA0NDNcdTA0NDlcdTA0MzBcdTA0NEZcdTA0MzRcdTA0MzBcdTA0NDJcdTA0MzAgXHUwNDQyXHUwNDM1XHUwNDNBXHUwNDQzXHUwNDQ5XHUwNDMwXHUwNDRGXHUwNDM0XHUwNDMwXHUwNDQyXHUwNDMwXHUwNDQxXHUwNDM1XHUwNDMwXHUwNDNEXHUwNDQxXHUwNDMwIFx1MDQ0Mlx1MDQzNVx1MDQzQVx1MDQ0M1x1MDQ0OVx1MDQzMFx1MDQ0Rlx1MDQ0M1x1MDQzRFx1MDQzOFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQ0MVx1MDQzMFx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQzMFx1MDQ0Rlx1MDQzNFx1MDQzMFx1MDQ0Mlx1MDQzMCBcdTA0NDJcdTA0MzVcdTA0M0FcdTA0NDNcdTA0NDlcdTA0MzBcdTA0NEZcdTA0NDNcdTA0M0RcdTA0MzhcdTA0MzJcdTA0MzVcdTA0NDBcdTA0NDFcdTA0MzBcdTA0M0JcdTA0NENcdTA0M0RcdTA0MzBcdTA0NEZcdTA0MzRcdTA0MzBcdTA0NDJcdTA0MzBcdTA0MzJcdTA0M0NcdTA0MzhcdTA0M0JcdTA0M0JcdTA0MzhcdTA0NDFcdTA0MzVcdTA0M0FcdTA0NDNcdTA0M0RcdTA0MzRcdTA0MzBcdTA0NDUgXHUwNDQyXHUwNDM1XHUwNDNBXHUwNDQzXHUwNDQ5XHUwNDM4XHUwNDM5XHUwNDMyXHUwNDMwXHUwNDQwXHUwNDM4XHUwNDMwXHUwNDNEXHUwNDQyXHUwNDM4XHUwNDNEXHUwNDQyXHUwNDM1XHUwNDQwXHUwNDQ0XHUwNDM1XHUwNDM5XHUwNDQxXHUwNDMwXHUwNDNBXHUwNDNCXHUwNDM4XHUwNDM1XHUwNDNEXHUwNDQyXHUwNDQxXHUwNDNBXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDNGXHUwNDQwXHUwNDM4XHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQ0Mlx1MDQzNVx1MDQzQVx1MDQ0M1x1MDQ0OVx1MDQzOFx1MDQzOVx1MDQzMlx1MDQzMFx1MDQ0MFx1MDQzOFx1MDQzMFx1MDQzRFx1MDQ0Mlx1MDQzRVx1MDQ0MVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzRFx1MDQzRVx1MDQzM1x1MDQzRVx1MDQ0OFx1MDQ0MFx1MDQzOFx1MDQ0NFx1MDQ0Mlx1MDQzMFx1MDQzQVx1MDQzQlx1MDQzOFx1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQ0MVx1MDQzQVx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzRlx1MDQ0MFx1MDQzOFx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0NDJcdTA0MzVcdTA0M0FcdTA0NDNcdTA0NDlcdTA0MzhcdTA0MzlcdTA0M0FcdTA0M0VcdTA0MzRcdTA0M0JcdTA0M0VcdTA0M0FcdTA0MzBcdTA0M0JcdTA0MzhcdTA0MzdcdTA0MzBcdTA0NDZcdTA0MzhcdTA0MzggXHUwNDQyXHUwNDM1XHUwNDNBXHUwNDQzXHUwNDQ5XHUwNDM4XHUwNDM5XHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDM3XHUwNDMwXHUwNDNGXHUwNDQzXHUwNDQxXHUwNDNBXHUwNDMwIFx1MDQ0Mlx1MDQzNVx1MDQzQVx1MDQ0M1x1MDQ0OVx1MDQzOFx1MDQzOVx1MDQ0Rlx1MDQzN1x1MDQ0Qlx1MDQzQSBcdTA0NDJcdTA0MzVcdTA0M0FcdTA0NDNcdTA0NDlcdTA0MzhcdTA0MzlcdTA0NEZcdTA0MzdcdTA0NEJcdTA0M0FcdTA0NDFcdTA0MzhcdTA0NDFcdTA0NDJcdTA0MzVcdTA0M0NcdTA0NEIgXHUwNDQyXHUwNDM4XHUwNDNGIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzN1x1MDQzRFx1MDQ0NyBcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M0RcdTA0MzdcdTA0MzBcdTA0M0FcdTA0NDZcdTA0MzhcdTA0NEZcdTA0MzBcdTA0M0FcdTA0NDJcdTA0MzhcdTA0MzJcdTA0M0RcdTA0MzAgXHUwNDQyXHUwNDQwXHUwNDM1XHUwNDMzIFx1MDQ0M1x1MDQzNFx1MDQzMFx1MDQzQlx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQzNVx1MDQzOFx1MDQzRFx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzRVx1MDQzRFx1MDQzRFx1MDQzRVx1MDQzOVx1MDQzMVx1MDQzMFx1MDQzN1x1MDQ0QiBcdTA0NDNcdTA0MzRcdTA0MzBcdTA0M0JcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzhcdTA0MzdcdTA0MzJcdTA0NDBcdTA0MzVcdTA0M0NcdTA0MzVcdTA0M0RcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0NDVcdTA0NDBcdTA0MzBcdTA0M0RcdTA0MzhcdTA0M0JcdTA0MzhcdTA0NDlcdTA0MzAgXHUwNDQzXHUwNDM0XHUwNDMwXHUwNDNCXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDNFXHUwNDMxXHUwNDRBXHUwNDM1XHUwNDNBXHUwNDQyXHUwNDRCIFx1MDQ0M1x1MDQzNFx1MDQzMFx1MDQzQlx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQ0NFx1MDQzMFx1MDQzOVx1MDQzQlx1MDQ0QiBcdTA0NDNcdTA0M0RcdTA0MzhcdTA0MzJcdTA0MzVcdTA0NDBcdTA0NDFcdTA0MzBcdTA0M0JcdTA0NENcdTA0M0RcdTA0M0VcdTA0MzVcdTA0MzJcdTA0NDBcdTA0MzVcdTA0M0NcdTA0NEYgXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDMxXHUwNDM1XHUwNDM3XHUwNDNFXHUwNDNGXHUwNDMwXHUwNDQxXHUwNDNEXHUwNDRCXHUwNDM5XHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDIFx1MDQ0M1x1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzMVx1MDQzNVx1MDQzN1x1MDQzRVx1MDQzRlx1MDQzMFx1MDQ0MVx1MDQzRFx1MDQ0Qlx1MDQzOVx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQ0MFx1MDQzMFx1MDQzN1x1MDQzNFx1MDQzNVx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0M0VcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzFcdTA0M0JcdTA0M0VcdTA0M0FcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0M0FcdTA0NDNcdTA0NDFcdTA0MzVcdTA0MzBcdTA0M0RcdTA0NDFcdTA0M0VcdTA0MzIgXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDMyXHUwNDNEXHUwNDM1XHUwNDQ4XHUwNDNEXHUwNDRFXHUwNDRFXHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDQzIFx1MDQ0M1x1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzMlx1MDQ0MFx1MDQzNVx1MDQzQ1x1MDQ0Rlx1MDQzN1x1MDQzMFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQ0OFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQ0MVx1MDQzRlx1MDQ0Rlx1MDQ0OVx1MDQzNVx1MDQzM1x1MDQzRVx1MDQ0MVx1MDQzNVx1MDQzMFx1MDQzRFx1MDQ0MVx1MDQzMCBcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0M0VcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzJcdTA0NDBcdTA0MzVcdTA0M0NcdTA0NEZcdTA0MzdcdTA0MzBcdTA0NDFcdTA0NEJcdTA0M0ZcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NEZcdTA0M0ZcdTA0MzBcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzJcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0NDFcdTA0MzVcdTA0MzBcdTA0M0RcdTA0NDFcdTA0MzAgXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDMyXHUwNDQwXHUwNDM1XHUwNDNDXHUwNDRGXHUwNDNFXHUwNDM2XHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDM4XHUwNDRGXHUwNDMxXHUwNDNCXHUwNDNFXHUwNDNBXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQ0M1x1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzN1x1MDQzMFx1MDQzM1x1MDQzRVx1MDQzQlx1MDQzRVx1MDQzMlx1MDQzRVx1MDQzQVx1MDQzQVx1MDQzQlx1MDQzOFx1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQ0MVx1MDQzQVx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzRlx1MDQ0MFx1MDQzOFx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0M0VcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzdcdTA0MzBcdTA0MzNcdTA0M0VcdTA0M0JcdTA0M0VcdTA0MzJcdTA0M0VcdTA0M0FcdTA0NDFcdTA0MzhcdTA0NDFcdTA0NDJcdTA0MzVcdTA0M0NcdTA0NEIgXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDM4XHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1XHUwNDM2XHUwNDQzXHUwNDQwXHUwNDNEXHUwNDMwXHUwNDNCXHUwNDMwXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQ0M1x1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzOFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0MVx1MDQzRVx1MDQzMVx1MDQ0Qlx1MDQ0Mlx1MDQzOFx1MDQ0Rlx1MDQzNlx1MDQ0M1x1MDQ0MFx1MDQzRFx1MDQzMFx1MDQzQlx1MDQzMFx1MDQ0MFx1MDQzNVx1MDQzM1x1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOCBcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0M0VcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NENcdTA0M0FcdTA0NDBcdTA0MzBcdTA0NDJcdTA0M0FcdTA0MzhcdTA0MzlcdTA0MzdcdTA0MzBcdTA0MzNcdTA0M0VcdTA0M0JcdTA0M0VcdTA0MzJcdTA0M0VcdTA0M0FcdTA0M0ZcdTA0NDBcdTA0MzhcdTA0M0JcdTA0M0VcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDNDXHUwNDM4XHUwNDNEXHUwNDM4XHUwNDNDXHUwNDMwXHUwNDNCXHUwNDRDXHUwNDNEXHUwNDQzXHUwNDRFXHUwNDM0XHUwNDNCXHUwNDM4XHUwNDNEXHUwNDQzXHUwNDNGXHUwNDMwXHUwNDQwXHUwNDNFXHUwNDNCXHUwNDM1XHUwNDM5XHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNCXHUwNDM1XHUwNDM5IFx1MDQ0M1x1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzQ1x1MDQzRVx1MDQzRFx1MDQzRVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQ0Qlx1MDQzOVx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQyBcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0M0VcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NENcdTA0M0RcdTA0MzBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0MzlcdTA0M0FcdTA0MzhcdTA0M0FcdTA0M0JcdTA0MzhcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzBcdTA0M0JcdTA0MzhcdTA0NDZcdTA0MzVcdTA0M0RcdTA0MzdcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDNFXHUwNDMxXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDNFXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM1XHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDM4XHUwNDNEXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDNFXHUwNDNEXHUwNDNEXHUwNDNFXHUwNDM5XHUwNDMxXHUwNDMwXHUwNDM3XHUwNDRCIFx1MDQ0M1x1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzRVx1MDQ0Mlx1MDQzQVx1MDQzQlx1MDQ0RVx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzMVx1MDQzNVx1MDQzN1x1MDQzRVx1MDQzRlx1MDQzMFx1MDQ0MVx1MDQzRFx1MDQzRVx1MDQzM1x1MDQzRVx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQzMCBcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0M0VcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NENcdTA0M0ZcdTA0MzBcdTA0NDBcdTA0MzBcdTA0M0NcdTA0MzVcdTA0NDJcdTA0NDBcdTA0NEJcdTA0NDRcdTA0NDNcdTA0M0RcdTA0M0FcdTA0NDZcdTA0MzhcdTA0M0VcdTA0M0RcdTA0MzBcdTA0M0JcdTA0NENcdTA0M0RcdTA0NEJcdTA0NDVcdTA0M0VcdTA0M0ZcdTA0NDZcdTA0MzhcdTA0MzlcdTA0MzhcdTA0M0RcdTA0NDJcdTA0MzVcdTA0NDBcdTA0NDRcdTA0MzVcdTA0MzlcdTA0NDFcdTA0MzAgXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDNGXHUwNDQwXHUwNDM4XHUwNDMyXHUwNDM4XHUwNDNCXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDM5XHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDIFx1MDQ0M1x1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzRlx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzQVx1MDQ0M1x1MDQ0MVx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzRFx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzMFx1MDQ0MFx1MDQzRVx1MDQzQlx1MDQzNVx1MDQzOVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQzNVx1MDQzOSBcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0M0VcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NENcdTA0NDBcdTA0MzBcdTA0NDFcdTA0NDhcdTA0MzhcdTA0NDBcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDBcdTA0MzBcdTA0MzFcdTA0M0VcdTA0NDJcdTA0NEJcdTA0NDFcdTA0M0FcdTA0NDBcdTA0MzhcdTA0M0ZcdTA0NDJcdTA0M0VcdTA0MzNcdTA0NDBcdTA0MzBcdTA0NDRcdTA0MzhcdTA0MzVcdTA0MzkgXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDQwXHUwNDMwXHUwNDQxXHUwNDQ4XHUwNDM4XHUwNDQwXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQwXHUwNDMwXHUwNDMxXHUwNDNFXHUwNDQyXHUwNDRCXHUwNDQxXHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDMwXHUwNDNDXHUwNDM4IFx1MDQ0M1x1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQ0MVx1MDQzRVx1MDQzNVx1MDQzNFx1MDQzOFx1MDQzRFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0MVx1MDQzMlx1MDQzRFx1MDQzNVx1MDQ0OFx1MDQzRFx1MDQzOFx1MDQzQ1x1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzRVx1MDQ0N1x1MDQzRFx1MDQzOFx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0M0VcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NENcdTA0NDFcdTA0M0VcdTA0M0VcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDJcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzhcdTA0MzVcdTA0M0VcdTA0MzFcdTA0NEFcdTA0MzVcdTA0M0FcdTA0NDJcdTA0MzBcdTA0MzhcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0NEIgXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDQxXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDMyXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDM0XHUwNDMwXHUwNDQwXHUwNDQyXHUwNDNEXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDM4XHUwNDNEXHUwNDQyXHUwNDM1XHUwNDQwXHUwNDQ0XHUwNDM1XHUwNDM5XHUwNDQxXHUwNDMwb2RhdGEgXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDQ3XHUwNDMwXHUwNDQxXHUwNDNFXHUwNDMyXHUwNDNFXHUwNDM5XHUwNDNGXHUwNDNFXHUwNDRGXHUwNDQxXHUwNDM4XHUwNDNEXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDNFXHUwNDNEXHUwNDNEXHUwNDNFXHUwNDM5XHUwNDMxXHUwNDMwXHUwNDM3XHUwNDRCIFx1MDQ0M1x1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQ0N1x1MDQzMFx1MDQ0MVx1MDQzRVx1MDQzMlx1MDQzRVx1MDQzOVx1MDQzRlx1MDQzRVx1MDQ0Rlx1MDQ0MVx1MDQ0MVx1MDQzNVx1MDQzMFx1MDQzRFx1MDQ0MVx1MDQzMCBcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0MzBcdTA0NDIgXHUwNDQ2XHUwNDM1XHUwNDNCIFx1MDQ0N1x1MDQzMFx1MDQ0MSBcdTA0NDdcdTA0MzBcdTA0NDFcdTA0M0VcdTA0MzJcdTA0M0VcdTA0MzlcdTA0M0ZcdTA0M0VcdTA0NEZcdTA0NDEgXHUwNDQ3XHUwNDMwXHUwNDQxXHUwNDNFXHUwNDMyXHUwNDNFXHUwNDM5XHUwNDNGXHUwNDNFXHUwNDRGXHUwNDQxXHUwNDQxXHUwNDM1XHUwNDMwXHUwNDNEXHUwNDQxXHUwNDMwIFx1MDQ0N1x1MDQzOFx1MDQ0MVx1MDQzQlx1MDQzRSBcdTA0NDdcdTA0MzhcdTA0NDFcdTA0M0JcdTA0M0VcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0M0ZcdTA0MzhcdTA0NDFcdTA0NENcdTA0NEUgXHUwNDREXHUwNDQyXHUwNDNFXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxXHUwNDMyXHUwNDQwXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDNEXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDQ1XHUwNDQwXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDNCXHUwNDM4XHUwNDQ5XHUwNDMwICIsRT0id3NcdTA0NDFcdTA0NDFcdTA0NEJcdTA0M0JcdTA0M0FcdTA0MzggXHUwNDMxXHUwNDM4XHUwNDMxXHUwNDNCXHUwNDM4XHUwNDNFXHUwNDQyXHUwNDM1XHUwNDNBXHUwNDMwXHUwNDNBXHUwNDMwXHUwNDQwXHUwNDQyXHUwNDM4XHUwNDNEXHUwNDNFXHUwNDNBIFx1MDQzMVx1MDQzOFx1MDQzMVx1MDQzQlx1MDQzOFx1MDQzRVx1MDQ0Mlx1MDQzNVx1MDQzQVx1MDQzMFx1MDQzQ1x1MDQzMFx1MDQzQVx1MDQzNVx1MDQ0Mlx1MDQzRVx1MDQzMlx1MDQzRVx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0MzFcdTA0MzhcdTA0MzFcdTA0M0JcdTA0MzhcdTA0M0VcdTA0NDJcdTA0MzVcdTA0M0FcdTA0MzBcdTA0NDFcdTA0NDJcdTA0MzhcdTA0M0JcdTA0MzVcdTA0MzkgXHUwNDMxXHUwNDM4XHUwNDM3XHUwNDNEXHUwNDM1XHUwNDQxXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDQ2XHUwNDM1XHUwNDQxXHUwNDQxXHUwNDRCIFx1MDQzMlx1MDQzRFx1MDQzNVx1MDQ0OFx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzRVx1MDQ0N1x1MDQzRFx1MDQzOFx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0MzJcdTA0M0RcdTA0MzVcdTA0NDhcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzFcdTA0M0VcdTA0NDJcdTA0M0FcdTA0MzggXHUwNDMyXHUwNDNEXHUwNDM1XHUwNDQ4XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNFXHUwNDQyXHUwNDQ3XHUwNDM1XHUwNDQyXHUwNDRCIFx1MDQzMlx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzNVx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQzNVx1MDQzRlx1MDQzRVx1MDQzQVx1MDQ0M1x1MDQzRlx1MDQzQVx1MDQzOCBcdTA0MzNcdTA0M0JcdTA0MzBcdTA0MzJcdTA0M0RcdTA0NEJcdTA0MzlcdTA0MzhcdTA0M0RcdTA0NDJcdTA0MzVcdTA0NDBcdTA0NDRcdTA0MzVcdTA0MzlcdTA0NDEgXHUwNDMzXHUwNDNCXHUwNDMwXHUwNDMyXHUwNDNEXHUwNDRCXHUwNDM5XHUwNDQxXHUwNDQyXHUwNDM4XHUwNDNCXHUwNDRDIFx1MDQzNFx1MDQzRVx1MDQzQVx1MDQ0M1x1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQ0QiBcdTA0MzRcdTA0M0VcdTA0NDFcdTA0NDJcdTA0MzBcdTA0MzJcdTA0M0JcdTA0NEZcdTA0MzVcdTA0M0NcdTA0NEJcdTA0MzVcdTA0NDNcdTA0MzJcdTA0MzVcdTA0MzRcdTA0M0VcdTA0M0NcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDM2XHUwNDQzXHUwNDQwXHUwNDNEXHUwNDMwXHUwNDNCXHUwNDRCXHUwNDM0XHUwNDNFXHUwNDNBXHUwNDQzXHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDNFXHUwNDMyIFx1MDQzN1x1MDQzMFx1MDQzNFx1MDQzMFx1MDQ0N1x1MDQzOCBcdTA0MzhcdTA0M0RcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0MzBcdTA0NDZcdTA0MzhcdTA0NEZcdTA0M0VcdTA0MzFcdTA0MzhcdTA0M0RcdTA0NDJcdTA0MzVcdTA0NDBcdTA0M0RcdTA0MzVcdTA0NDJcdTA0NDFcdTA0M0VcdTA0MzVcdTA0MzRcdTA0MzhcdTA0M0RcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzggXHUwNDM4XHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQwXHUwNDMwXHUwNDMxXHUwNDNFXHUwNDQ3XHUwNDM1XHUwNDM5XHUwNDM0XHUwNDMwXHUwNDQyXHUwNDRCIFx1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzRVx1MDQ0MFx1MDQzOFx1MDQ0Rlx1MDQ0MFx1MDQzMFx1MDQzMVx1MDQzRVx1MDQ0Mlx1MDQ0Qlx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQ0RiBcdTA0M0FcdTA0M0VcdTA0M0RcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0NDJcdTA0NEIgXHUwNDNBXHUwNDQwXHUwNDM4XHUwNDQyXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNFXHUwNDQyXHUwNDMxXHUwNDNFXHUwNDQwXHUwNDMwIFx1MDQzQ1x1MDQzNVx1MDQ0Mlx1MDQzMFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQzNSBcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzFcdTA0M0VcdTA0NDJcdTA0M0FcdTA0MzggXHUwNDNFXHUwNDQyXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQwXHUwNDM1XHUwNDNBXHUwNDNCXHUwNDMwXHUwNDNDXHUwNDRCIFx1MDQzRVx1MDQ0Mlx1MDQzRlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzQVx1MDQzMFx1MDQzNFx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzMlx1MDQzQlx1MDQ0Rlx1MDQzNVx1MDQzQ1x1MDQ0Qlx1MDQ0NVx1MDQ0M1x1MDQzMlx1MDQzNVx1MDQzNFx1MDQzRVx1MDQzQ1x1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzOSBcdTA0M0VcdTA0NDJcdTA0NDdcdTA0MzVcdTA0NDJcdTA0NEIgXHUwNDNGXHUwNDMwXHUwNDNEXHUwNDM1XHUwNDNCXHUwNDRDXHUwNDM3XHUwNDMwXHUwNDM0XHUwNDMwXHUwNDQ3XHUwNDNFXHUwNDQxIFx1MDQzRlx1MDQzMFx1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzNVx1MDQ0Mlx1MDQ0MFx1MDQzN1x1MDQzMFx1MDQzRlx1MDQ0M1x1MDQ0MVx1MDQzQVx1MDQzMCBcdTA0M0ZcdTA0MzBcdTA0NDBcdTA0MzBcdTA0M0NcdTA0MzVcdTA0NDJcdTA0NDBcdTA0NEJcdTA0NDFcdTA0MzVcdTA0MzBcdTA0M0RcdTA0NDFcdTA0MzAgXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDQ3XHUwNDM4XHUwNDQxXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQzRlx1MDQzQlx1MDQzMFx1MDQzRFx1MDQ0Qlx1MDQzMlx1MDQzOFx1MDQzNFx1MDQzRVx1MDQzMlx1MDQ0MFx1MDQzMFx1MDQ0MVx1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQzMCBcdTA0M0ZcdTA0M0JcdTA0MzBcdTA0M0RcdTA0NEJcdTA0MzJcdTA0MzhcdTA0MzRcdTA0M0VcdTA0MzJcdTA0NDVcdTA0MzBcdTA0NDBcdTA0MzBcdTA0M0FcdTA0NDJcdTA0MzVcdTA0NDBcdTA0MzhcdTA0NDFcdTA0NDJcdTA0MzhcdTA0M0EgXHUwNDNGXHUwNDNCXHUwNDMwXHUwNDNEXHUwNDRCXHUwNDNFXHUwNDMxXHUwNDNDXHUwNDM1XHUwNDNEXHUwNDMwIFx1MDQzRlx1MDQzQlx1MDQzMFx1MDQzRFx1MDQ0Qlx1MDQ0MVx1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQzRVx1MDQzMiBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0RcdTA0M0VcdTA0NDJcdTA0MzVcdTA0M0FcdTA0NDFcdTA0NDJcdTA0M0VcdTA0MzJcdTA0NEJcdTA0MzlcdTA0M0ZcdTA0M0VcdTA0MzhcdTA0NDFcdTA0M0EgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNCXHUwNDM4XHUwNDM4XHUwNDNEXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDNFXHUwNDNEXHUwNDNEXHUwNDNFXHUwNDM5XHUwNDMxXHUwNDMwXHUwNDM3XHUwNDRCIFx1MDQzRlx1MDQzRVx1MDQ0MVx1MDQzQlx1MDQzNVx1MDQzNFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQzOCBcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzVcdTA0NDBcdTA0M0FcdTA0MzBcdTA0MzJcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0MzVcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDVcdTA0M0ZcdTA0M0VcdTA0M0FcdTA0NDNcdTA0M0ZcdTA0M0VcdTA0M0EgXHUwNDQwXHUwNDMwXHUwNDMxXHUwNDNFXHUwNDQ3XHUwNDMwXHUwNDRGXHUwNDM0XHUwNDMwXHUwNDQyXHUwNDMwIFx1MDQ0MFx1MDQzMFx1MDQ0MVx1MDQ0OFx1MDQzOFx1MDQ0MFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzQVx1MDQzRVx1MDQzRFx1MDQ0NFx1MDQzOFx1MDQzM1x1MDQ0M1x1MDQ0MFx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOCBcdTA0NDBcdTA0MzVcdTA0MzNcdTA0MzhcdTA0NDFcdTA0NDJcdTA0NDBcdTA0NEJcdTA0MzFcdTA0NDNcdTA0NDVcdTA0MzNcdTA0MzBcdTA0M0JcdTA0NDJcdTA0MzVcdTA0NDBcdTA0MzhcdTA0MzggXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDRCXHUwNDNEXHUwNDMwXHUwNDNBXHUwNDNFXHUwNDNGXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQ0MFx1MDQzNVx1MDQzM1x1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQ0Qlx1MDQ0MFx1MDQzMFx1MDQ0MVx1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQzMCBcdTA0NDBcdTA0MzVcdTA0MzNcdTA0MzhcdTA0NDFcdTA0NDJcdTA0NDBcdTA0NEJcdTA0NDFcdTA0MzJcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzkgXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDNCXHUwNDMwXHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDNEXHUwNDRCXHUwNDM1XHUwNDM3XHUwNDMwXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQzOFx1MDQzMFx1MDQzQlx1MDQzOFx1MDQzN1x1MDQzMFx1MDQ0Mlx1MDQzRVx1MDQ0MHhkdG8gXHUwNDQxXHUwNDNGXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNFXHUwNDQ3XHUwNDNEXHUwNDM4XHUwNDNBXHUwNDM4IFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMFx1MDQzM1x1MDQzNVx1MDQzRVx1MDQzRlx1MDQzRVx1MDQzN1x1MDQzOFx1MDQ0Nlx1MDQzOFx1MDQzRVx1MDQzRFx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0NDFcdTA0NDBcdTA0MzVcdTA0MzRcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzBcdTA0M0FcdTA0NDBcdTA0MzhcdTA0M0ZcdTA0NDJcdTA0M0VcdTA0MzNcdTA0NDBcdTA0MzBcdTA0NDRcdTA0MzhcdTA0MzggXHUwNDQxXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDMwXHUwNDNDXHUwNDQzXHUwNDNCXHUwNDRDXHUwNDQyXHUwNDM4XHUwNDNDXHUwNDM1XHUwNDM0XHUwNDM4XHUwNDMwIFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMFx1MDQzRVx1MDQ0Mlx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQ0MFx1MDQzNVx1MDQzQVx1MDQzQlx1MDQzMFx1MDQzQ1x1MDQ0QiBcdTA0NDFcdTA0NDBcdTA0MzVcdTA0MzRcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzBcdTA0M0ZcdTA0M0VcdTA0NDdcdTA0NDJcdTA0NEIgXHUwNDQxXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNCXHUwNDM1XHUwNDQ0XHUwNDNFXHUwNDNEXHUwNDM4XHUwNDM4IFx1MDQ0NFx1MDQzMFx1MDQzMVx1MDQ0MFx1MDQzOFx1MDQzQVx1MDQzMHhkdG8gXHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDNFXHUwNDMyXHUwNDRCXHUwNDM1XHUwNDNGXHUwNDNFXHUwNDQyXHUwNDNFXHUwNDNBXHUwNDM4IFx1MDQ0NFx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQ0Qlx1MDQzNVx1MDQzN1x1MDQzMFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0NDVcdTA0NDBcdTA0MzBcdTA0M0RcdTA0MzhcdTA0M0JcdTA0MzhcdTA0NDlcdTA0MzBcdTA0M0RcdTA0MzBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0MzVcdTA0M0EgXHUwNDQ1XHUwNDQwXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDNCXHUwNDM4XHUwNDQ5XHUwNDM1XHUwNDMyXHUwNDMwXHUwNDQwXHUwNDM4XHUwNDMwXHUwNDNEXHUwNDQyXHUwNDNFXHUwNDMyXHUwNDNFXHUwNDQyXHUwNDQ3XHUwNDM1XHUwNDQyXHUwNDNFXHUwNDMyIFx1MDQ0NVx1MDQ0MFx1MDQzMFx1MDQzRFx1MDQzOFx1MDQzQlx1MDQzOFx1MDQ0OVx1MDQzNVx1MDQzRFx1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzNVx1MDQzQVx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NVx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQyBcdTA0NDVcdTA0NDBcdTA0MzBcdTA0M0RcdTA0MzhcdTA0M0JcdTA0MzhcdTA0NDlcdTA0MzVcdTA0M0VcdTA0MzFcdTA0NDlcdTA0MzhcdTA0NDVcdTA0M0RcdTA0MzBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0MzVcdTA0M0EgXHUwNDQ1XHUwNDQwXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDNCXHUwNDM4XHUwNDQ5XHUwNDM1XHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRDXHUwNDQxXHUwNDNBXHUwNDM4XHUwNDQ1XHUwNDNEXHUwNDMwXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDM1XHUwNDNBXHUwNDM0XHUwNDM4XHUwNDNEXHUwNDMwXHUwNDNDXHUwNDM4XHUwNDQ3XHUwNDM1XHUwNDQxXHUwNDNBXHUwNDM4XHUwNDQ1XHUwNDQxXHUwNDNGXHUwNDM4XHUwNDQxXHUwNDNBXHUwNDNFXHUwNDMyIFx1MDQ0NVx1MDQ0MFx1MDQzMFx1MDQzRFx1MDQzOFx1MDQzQlx1MDQzOFx1MDQ0OVx1MDQzNVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQ0Q1x1MDQ0MVx1MDQzQVx1MDQzOFx1MDQ0NVx1MDQzRFx1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzNVx1MDQzQVx1MDQzRVx1MDQ0Mlx1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQzRVx1MDQzMiBcdTA0NDVcdTA0NDBcdTA0MzBcdTA0M0RcdTA0MzhcdTA0M0JcdTA0MzhcdTA0NDlcdTA0MzVcdTA0NDFcdTA0MzhcdTA0NDFcdTA0NDJcdTA0MzVcdTA0M0NcdTA0M0RcdTA0NEJcdTA0NDVcdTA0M0RcdTA0MzBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0MzVcdTA0M0EgIix1PV8rZCtnK0UsbT0id2ViXHUwNDQ2XHUwNDMyXHUwNDM1XHUwNDQyXHUwNDMwIHdpbmRvd3NcdTA0NDZcdTA0MzJcdTA0MzVcdTA0NDJcdTA0MzAgd2luZG93c1x1MDQ0OFx1MDQ0MFx1MDQzOFx1MDQ0NFx1MDQ0Mlx1MDQ0QiBcdTA0MzFcdTA0MzhcdTA0MzFcdTA0M0JcdTA0MzhcdTA0M0VcdTA0NDJcdTA0MzVcdTA0M0FcdTA0MzBcdTA0M0FcdTA0MzBcdTA0NDBcdTA0NDJcdTA0MzhcdTA0M0RcdTA0M0VcdTA0M0EgXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNBXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDM4XHUwNDNCXHUwNDRGIFx1MDQ0MVx1MDQzOFx1MDQzQ1x1MDQzMlx1MDQzRVx1MDQzQlx1MDQ0QiBcdTA0NDZcdTA0MzJcdTA0MzVcdTA0NDJcdTA0MzBcdTA0NDFcdTA0NDJcdTA0MzhcdTA0M0JcdTA0NEYgXHUwNDQ4XHUwNDQwXHUwNDM4XHUwNDQ0XHUwNDQyXHUwNDRCXHUwNDQxXHUwNDQyXHUwNDM4XHUwNDNCXHUwNDRGICIsUz0iXHUwNDMwXHUwNDMyXHUwNDQyXHUwNDNFXHUwNDNDXHUwNDMwXHUwNDQyXHUwNDM4XHUwNDQ3XHUwNDM1XHUwNDQxXHUwNDNBXHUwNDNFXHUwNDM1XHUwNDQxXHUwNDNFXHUwNDQ1XHUwNDQwXHUwNDMwXHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDRCXHUwNDMyXHUwNDNEXHUwNDMwXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDM5XHUwNDNBXHUwNDMwXHUwNDQ1IFx1MDQzMFx1MDQzMlx1MDQ0Mlx1MDQzRVx1MDQzRFx1MDQ0M1x1MDQzQ1x1MDQzNVx1MDQ0MFx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQ0Rlx1MDQzMlx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQzNSBcdTA0MzBcdTA0MzJcdTA0NDJcdTA0M0VcdTA0NDBcdTA0MzBcdTA0MzdcdTA0MzRcdTA0MzJcdTA0MzhcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzhcdTA0MzkgXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDNDXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDRGXHUwNDM0XHUwNDM4XHUwNDMwXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDRCIFx1MDQzMlx1MDQzMFx1MDQ0MFx1MDQzOFx1MDQzMFx1MDQzRFx1MDQ0Mlx1MDQzMlx1MDQ0Qlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzRFx1MDQzOFx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQ0RFx1MDQzQlx1MDQzNVx1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzRVx1MDQzMlx1MDQzOFx1MDQzN1x1MDQzMFx1MDQzM1x1MDQzRVx1MDQzQlx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzRVx1MDQzMiBcdTA0MzJcdTA0MzBcdTA0NDBcdTA0MzhcdTA0MzBcdTA0M0RcdTA0NDJcdTA0NDNcdTA0M0ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0MzJcdTA0NEJcdTA0NDFcdTA0M0VcdTA0NDJcdTA0M0VcdTA0MzlcdTA0NDJcdTA0MzBcdTA0MzFcdTA0M0JcdTA0MzhcdTA0NDZcdTA0NEIgXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDQyXHUwNDM4XHUwNDNBXHUwNDMwXHUwNDNCXHUwNDRDXHUwNDNEXHUwNDMwXHUwNDRGXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDNBXHUwNDQwXHUwNDQzXHUwNDQyXHUwNDNBXHUwNDMwXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDRCIFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQ0Mlx1MDQzOFx1MDQzQVx1MDQzMFx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQzRVx1MDQzNVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNSBcdTA0MzJcdTA0MzVcdTA0NDBcdTA0NDJcdTA0MzhcdTA0M0FcdTA0MzBcdTA0M0JcdTA0NENcdTA0M0RcdTA0M0VcdTA0MzVcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0VcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NERcdTA0M0JcdTA0MzVcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzAgXHUwNDMyXHUwNDM4XHUwNDM0XHUwNDMzXHUwNDQwXHUwNDQzXHUwNDNGXHUwNDNGXHUwNDRCXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDRCIFx1MDQzMlx1MDQzOFx1MDQzNFx1MDQzNFx1MDQzNVx1MDQzQVx1MDQzRVx1MDQ0MFx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOFx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQ0QiBcdTA0MzJcdTA0MzhcdTA0MzRcdTA0MzRcdTA0M0VcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0RcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0NERcdTA0M0JcdTA0MzVcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzBcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0NEIgXHUwNDMyXHUwNDM4XHUwNDM0XHUwNDM4XHUwNDM3XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQzMlx1MDQzOFx1MDQzNFx1MDQzQVx1MDQzRFx1MDQzRVx1MDQzRlx1MDQzQVx1MDQzOFx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQ0QiBcdTA0MzJcdTA0MzhcdTA0MzRcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzVcdTA0M0FcdTA0M0JcdTA0NEVcdTA0NDdcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M0JcdTA0NEYgXHUwNDMyXHUwNDM4XHUwNDM0XHUwNDNGXHUwNDNFXHUwNDM0XHUwNDNGXHUwNDM4XHUwNDQxXHUwNDM1XHUwNDM5XHUwNDNBXHUwNDM0XHUwNDM4XHUwNDMwXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDM1IFx1MDQzMlx1MDQzOFx1MDQzNFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Rlx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQ0QiBcdTA0MzJcdTA0MzhcdTA0MzRcdTA0NDRcdTA0M0JcdTA0MzBcdTA0MzZcdTA0M0FcdTA0MzAgXHUwNDMyXHUwNDNCXHUwNDM4XHUwNDRGXHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQwXHUwNDMwXHUwNDM3XHUwNDNDXHUwNDM1XHUwNDQwXHUwNDMwXHUwNDNEXHUwNDMwXHUwNDNGXHUwNDQzXHUwNDM3XHUwNDRCXHUwNDQwXHUwNDM1XHUwNDNBXHUwNDM0XHUwNDM4XHUwNDMwXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDRCIFx1MDQzM1x1MDQzRVx1MDQ0MFx1MDQzOFx1MDQzN1x1MDQzRVx1MDQzRFx1MDQ0Mlx1MDQzMFx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQzRVx1MDQzNVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNSBcdTA0MzNcdTA0M0VcdTA0NDBcdTA0MzhcdTA0MzdcdTA0M0VcdTA0M0RcdTA0NDJcdTA0MzBcdTA0M0JcdTA0NENcdTA0M0RcdTA0M0VcdTA0MzVcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0VcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NERcdTA0M0JcdTA0MzVcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzAgXHUwNDMzXHUwNDQwXHUwNDQzXHUwNDNGXHUwNDNGXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDMwXHUwNDNBXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDNBIFx1MDQzM1x1MDQ0MFx1MDQ0M1x1MDQzRlx1MDQzRlx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzMFx1MDQzRlx1MDQzRVx1MDQzNFx1MDQ0N1x1MDQzOFx1MDQzRFx1MDQzNVx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NVx1MDQ0RFx1MDQzQlx1MDQzNVx1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzRVx1MDQzMlx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQ0QiBcdTA0MzNcdTA0NDBcdTA0NDNcdTA0M0ZcdTA0M0ZcdTA0NEJcdTA0MzhcdTA0NERcdTA0M0JcdTA0MzVcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0NEIgXHUwNDM0XHUwNDM1XHUwNDM5XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDM4XHUwNDM1XHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDQyXHUwNDMwXHUwNDQxXHUwNDNBXHUwNDM4XHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQzNFx1MDQzRVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRFx1MDQzOFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQ0Qlx1MDQzOVx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQzRVx1MDQ0Mlx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0MzRcdTA0M0VcdTA0M0ZcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzhcdTA0M0NcdTA0NEJcdTA0MzVcdTA0MzRcdTA0MzVcdTA0MzlcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzhcdTA0NEZcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzVcdTA0NDJcdTA0MzBcdTA0NDFcdTA0M0FcdTA0MzhcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDM4XHUwNDNEXHUwNDQyXHUwNDM1XHUwNDQwXHUwNDMyXHUwNDMwXHUwNDNCXHUwNDNDXHUwNDM1XHUwNDM2XHUwNDM0XHUwNDQzXHUwNDREXHUwNDNCXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwXHUwNDNDXHUwNDM4XHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDRCIFx1MDQzOFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzMlx1MDQ0Qlx1MDQzMlx1MDQzRVx1MDQzNFx1MDQzMCBcdTA0MzhcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0VcdTA0NDFcdTA0NEJcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0M0FcdTA0NDBcdTA0NDNcdTA0NDJcdTA0M0FcdTA0MzggXHUwNDM4XHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDQzXHUwNDM1XHUwNDNDXHUwNDNFXHUwNDM1XHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQyXHUwNDNFXHUwNDQ3XHUwNDNBXHUwNDM4XHUwNDMxXHUwNDM4XHUwNDQwXHUwNDM2XHUwNDM1XHUwNDMyXHUwNDNFXHUwNDM5XHUwNDM0XHUwNDM4XHUwNDMwXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDRCIFx1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzRVx1MDQ0MFx1MDQzOFx1MDQ0Rlx1MDQzMlx1MDQ0Qlx1MDQzMVx1MDQzRVx1MDQ0MFx1MDQzMFx1MDQzRlx1MDQ0MFx1MDQzOFx1MDQzMlx1MDQzMlx1MDQzRVx1MDQzNFx1MDQzNSBcdTA0MzhcdTA0NDFcdTA0NDJcdTA0M0VcdTA0NDdcdTA0M0RcdTA0MzhcdTA0M0FcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzlcdTA0M0VcdTA0NDFcdTA0MzhcdTA0NDJcdTA0M0VcdTA0NDdcdTA0MzVcdTA0M0FcdTA0MzRcdTA0MzhcdTA0MzBcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0NcdTA0M0NcdTA0NEIgXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDNFXHUwNDQ3XHUwNDNEXHUwNDM4XHUwNDNBXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDQwXHUwNDMwXHUwNDM3XHUwNDNDXHUwNDM1XHUwNDQwXHUwNDMwXHUwNDNGXHUwNDQzXHUwNDM3XHUwNDRCXHUwNDQwXHUwNDRDXHUwNDNBXHUwNDMwXHUwNDM0XHUwNDM4XHUwNDMwXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDRCIFx1MDQzQVx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzM1x1MDQzRVx1MDQ0MFx1MDQzOFx1MDQ0Rlx1MDQzM1x1MDQ0MFx1MDQ0M1x1MDQzRlx1MDQzRlx1MDQ0Qlx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzMFx1MDQzRFx1MDQzNCBcdTA0M0NcdTA0MzBcdTA0M0FcdTA0NDFcdTA0MzhcdTA0M0NcdTA0NDNcdTA0M0NcdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzhcdTA0MzkgXHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDMwXHUwNDNCXHUwNDRDXHUwNDNEXHUwNDNFXHUwNDM1XHUwNDNFXHUwNDQyXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDM0XHUwNDM1XHUwNDQwXHUwNDM1XHUwNDMyXHUwNDMwIFx1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzMFx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQzRVx1MDQzNVx1MDQzRVx1MDQ0Mlx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0MVx1MDQzRlx1MDQzOFx1MDQ0MVx1MDQzQVx1MDQzMCBcdTA0M0VcdTA0MzFcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDJcdTA0MzVcdTA0M0FcdTA0NDFcdTA0NDJcdTA0MzBcdTA0NDBcdTA0MzVcdTA0MzRcdTA0MzBcdTA0M0FcdTA0NDJcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDNFXHUwNDQwXHUwNDM4XHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDRGXHUwNDM0XHUwNDM1XHUwNDNEXHUwNDM0XHUwNDQwXHUwNDNFXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDRCIFx1MDQzRVx1MDQ0MFx1MDQzOFx1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQ0Rlx1MDQzNFx1MDQzOFx1MDQzMFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzQ1x1MDQ0QiBcdTA0M0VcdTA0NDBcdTA0MzhcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzBcdTA0NDZcdTA0MzhcdTA0NEZcdTA0M0NcdTA0MzVcdTA0NDJcdTA0M0VcdTA0M0FcdTA0MzRcdTA0MzhcdTA0MzBcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0NcdTA0M0NcdTA0NEIgXHUwNDNFXHUwNDQwXHUwNDM4XHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDRGXHUwNDNDXHUwNDM1XHUwNDQyXHUwNDNFXHUwNDNBXHUwNDQxXHUwNDMyXHUwNDNFXHUwNDM0XHUwNDNEXHUwNDNFXHUwNDM5XHUwNDM0XHUwNDM4XHUwNDMwXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDRCIFx1MDQzRVx1MDQ0MFx1MDQzOFx1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQ0Rlx1MDQ0RFx1MDQzQlx1MDQzNVx1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzMFx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQ0QiBcdTA0M0VcdTA0NDJcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzJcdTA0MzRcdTA0MzhcdTA0MzBcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0NcdTA0M0NcdTA0MzUgXHUwNDNFXHUwNDQyXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDMyXHUwNDNCXHUwNDM1XHUwNDMzXHUwNDM1XHUwNDNEXHUwNDM0XHUwNDM1XHUwNDM0XHUwNDM4XHUwNDMwXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDRCIFx1MDQzRVx1MDQ0Mlx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzM1x1MDQ0MFx1MDQ0M1x1MDQzRlx1MDQzRlx1MDQ0Qlx1MDQzQVx1MDQzRFx1MDQzRVx1MDQzRlx1MDQzRVx1MDQzQSBcdTA0M0VcdTA0NDJcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzdcdTA0MzBcdTA0MzNcdTA0M0VcdTA0M0JcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzBcdTA0NDhcdTA0M0FcdTA0MzBcdTA0M0JcdTA0NEJcdTA0MzRcdTA0MzhcdTA0MzBcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0NcdTA0M0NcdTA0NEIgXHUwNDNFXHUwNDQyXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM5XHUwNDQxXHUwNDMyXHUwNDNFXHUwNDM0XHUwNDNEXHUwNDNFXHUwNDM5XHUwNDM0XHUwNDM4XHUwNDMwXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDRCIFx1MDQzRVx1MDQ0Mlx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzN1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzOFx1MDQzN1x1MDQzQ1x1MDQzNVx1MDQ0MFx1MDQzOFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQzRVx1MDQzOVx1MDQzNFx1MDQzOFx1MDQzMFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzQ1x1MDQ0QiBcdTA0M0VcdTA0NDJcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzhcdTA0M0RcdTA0NDJcdTA0MzVcdTA0NDBcdTA0MzJcdTA0MzBcdTA0M0JcdTA0MzBcdTA0MzRcdTA0MzhcdTA0MzBcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0NcdTA0M0NcdTA0NEJcdTA0MzNcdTA0MzBcdTA0M0RcdTA0NDJcdTA0MzAgXHUwNDNFXHUwNDQyXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNBXHUwNDNEXHUwNDNFXHUwNDNGXHUwNDNBXHUwNDM4IFx1MDQzRVx1MDQ0Mlx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzQVx1MDQzRFx1MDQzRVx1MDQzRlx1MDQzQVx1MDQzOFx1MDQzMlx1MDQ0Qlx1MDQzMVx1MDQzRVx1MDQ0MFx1MDQzMCBcdTA0M0VcdTA0NDJcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0VcdTA0MzFcdTA0NDFcdTA0NDNcdTA0MzZcdTA0MzRcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzlcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0NEIgXHUwNDNFXHUwNDQyXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNFXHUwNDMxXHUwNDRCXHUwNDQ3XHUwNDNEXHUwNDNFXHUwNDM5XHUwNDMzXHUwNDQwXHUwNDQzXHUwNDNGXHUwNDNGXHUwNDRCIFx1MDQzRVx1MDQ0Mlx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzRVx1MDQ0Mlx1MDQ0MFx1MDQzOFx1MDQ0Nlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQ0Qlx1MDQ0NVx1MDQzN1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQzOVx1MDQzRlx1MDQ0M1x1MDQzN1x1MDQ0Qlx1MDQ0MFx1MDQ0Q1x1MDQzQVx1MDQzRVx1MDQzMlx1MDQzRVx1MDQzOVx1MDQzNFx1MDQzOFx1MDQzMFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzQ1x1MDQ0QiBcdTA0M0VcdTA0NDJcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0ZcdTA0MzBcdTA0M0RcdTA0MzVcdTA0M0JcdTA0MzhcdTA0M0ZcdTA0M0VcdTA0MzhcdTA0NDFcdTA0M0FcdTA0MzAgXHUwNDNFXHUwNDQyXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNGXHUwNDNFXHUwNDM0XHUwNDQxXHUwNDNBXHUwNDMwXHUwNDM3XHUwNDNBXHUwNDM4IFx1MDQzRVx1MDQ0Mlx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzRlx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0M1x1MDQzRlx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzNFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzRlx1MDQ0MFx1MDQzOFx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQzMFx1MDQzQVx1MDQ0Mlx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQzOCBcdTA0M0VcdTA0NDJcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDBcdTA0MzBcdTA0MzdcdTA0M0NcdTA0MzVcdTA0NDJcdTA0M0FcdTA0MzhcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0VcdTA0NDFcdTA0NEJcdTA0NDBcdTA0MzVcdTA0MzNcdTA0NDNcdTA0M0JcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDNFXHUwNDQyXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDQ2XHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDRCIFx1MDQzRVx1MDQ0Mlx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0Mlx1MDQzMFx1MDQzMVx1MDQzQlx1MDQzOFx1MDQ0Nlx1MDQ0QiBcdTA0M0VcdTA0NDJcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDJcdTA0MzVcdTA0M0FcdTA0NDFcdTA0NDJcdTA0MzBcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0MzRcdTA0MzhcdTA0MzBcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0NcdTA0M0NcdTA0NEJcdTA0MzNcdTA0MzBcdTA0M0RcdTA0NDJcdTA0MzAgXHUwNDNFXHUwNDQyXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQzXHUwNDNGXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNFXHUwNDMxXHUwNDRCXHUwNDQ3XHUwNDNEXHUwNDNFXHUwNDM5XHUwNDMzXHUwNDQwXHUwNDQzXHUwNDNGXHUwNDNGXHUwNDRCIFx1MDQzRVx1MDQ0Mlx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0NFx1MDQzOFx1MDQzM1x1MDQ0M1x1MDQ0MFx1MDQ0Qlx1MDQzQVx1MDQzRFx1MDQzRVx1MDQzRlx1MDQzQVx1MDQzOCBcdTA0M0ZcdTA0MzBcdTA0M0JcdTA0MzhcdTA0NDJcdTA0NDBcdTA0MzBcdTA0NDZcdTA0MzJcdTA0MzVcdTA0NDJcdTA0M0VcdTA0MzJcdTA0MzRcdTA0MzhcdTA0MzBcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0NcdTA0M0NcdTA0NEIgXHUwNDNGXHUwNDNFXHUwNDMyXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNFXHUwNDMxXHUwNDRCXHUwNDQ3XHUwNDNEXHUwNDNFXHUwNDM5XHUwNDMzXHUwNDQwXHUwNDQzXHUwNDNGXHUwNDNGXHUwNDRCIFx1MDQzRlx1MDQzRVx1MDQzNFx1MDQzNFx1MDQzNVx1MDQ0MFx1MDQzNlx1MDQzQVx1MDQzMFx1MDQzQ1x1MDQzMFx1MDQ0MVx1MDQ0OFx1MDQ0Mlx1MDQzMFx1MDQzMVx1MDQzMFx1MDQzNFx1MDQzNVx1MDQzRFx1MDQzNFx1MDQ0MFx1MDQzRVx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzQ1x1MDQ0QiBcdTA0M0ZcdTA0M0VcdTA0MzRcdTA0MzRcdTA0MzVcdTA0NDBcdTA0MzZcdTA0M0FcdTA0MzBcdTA0M0NcdTA0MzBcdTA0NDFcdTA0NDhcdTA0NDJcdTA0MzBcdTA0MzFcdTA0MzBcdTA0MzRcdTA0MzhcdTA0MzBcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0NcdTA0M0NcdTA0NEJcdTA0MzNcdTA0MzBcdTA0M0RcdTA0NDJcdTA0MzAgXHUwNDNGXHUwNDNFXHUwNDM0XHUwNDM0XHUwNDM1XHUwNDQwXHUwNDM2XHUwNDNBXHUwNDMwXHUwNDNDXHUwNDMwXHUwNDQxXHUwNDQ4XHUwNDQyXHUwNDMwXHUwNDMxXHUwNDMwXHUwNDQxXHUwNDMyXHUwNDNFXHUwNDM0XHUwNDNEXHUwNDNFXHUwNDM5XHUwNDM0XHUwNDM4XHUwNDMwXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDRCIFx1MDQzRlx1MDQzRVx1MDQzOFx1MDQ0MVx1MDQzQVx1MDQzMlx1MDQ0Mlx1MDQzMFx1MDQzMVx1MDQzQlx1MDQzOFx1MDQ0Nlx1MDQzNVx1MDQzRlx1MDQ0MFx1MDQzOFx1MDQzMlx1MDQzMlx1MDQzRVx1MDQzNFx1MDQzNSBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0VcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzdcdTA0MzBcdTA0MzNcdTA0M0VcdTA0M0JcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzBcdTA0NERcdTA0M0JcdTA0MzVcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzBcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0NEIgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNBXHUwNDMwXHUwNDQwXHUwNDQyXHUwNDM4XHUwNDNEXHUwNDNBXHUwNDM4XHUwNDNBXHUwNDNEXHUwNDNFXHUwNDNGXHUwNDNBXHUwNDM4XHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDRCIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzQVx1MDQzMFx1MDQ0MFx1MDQ0Mlx1MDQzOFx1MDQzRFx1MDQzQVx1MDQzOFx1MDQ0RFx1MDQzQlx1MDQzNVx1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzMFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQ0NFx1MDQzOFx1MDQ0N1x1MDQzNVx1MDQ0MVx1MDQzQVx1MDQzRVx1MDQzOVx1MDQ0MVx1MDQ0NVx1MDQzNVx1MDQzQ1x1MDQ0QiBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0VcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0FcdTA0M0VcdTA0M0NcdTA0MzBcdTA0M0RcdTA0MzRcdTA0M0RcdTA0M0VcdTA0MzlcdTA0M0ZcdTA0MzBcdTA0M0RcdTA0MzVcdTA0M0JcdTA0MzhcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0NEIgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNBXHUwNDNFXHUwNDNDXHUwNDMwXHUwNDNEXHUwNDM0XHUwNDNEXHUwNDNFXHUwNDM5XHUwNDNGXHUwNDMwXHUwNDNEXHUwNDM1XHUwNDNCXHUwNDM4XHUwNDREXHUwNDNCXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDRCIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzRVx1MDQzRlx1MDQzRVx1MDQ0MFx1MDQzRFx1MDQzRVx1MDQzOVx1MDQ0Mlx1MDQzRVx1MDQ0N1x1MDQzQVx1MDQzOFx1MDQzRVx1MDQ0Mlx1MDQ0MFx1MDQzOFx1MDQ0MVx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOCBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0VcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0ZcdTA0M0VcdTA0MzRcdTA0M0ZcdTA0MzhcdTA0NDFcdTA0MzVcdTA0MzlcdTA0M0FcdTA0MzRcdTA0MzhcdTA0MzBcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0NcdTA0M0NcdTA0MzUgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNGXHUwNDNFXHUwNDM0XHUwNDNGXHUwNDM4XHUwNDQxXHUwNDM1XHUwNDM5XHUwNDQ4XHUwNDNBXHUwNDMwXHUwNDNCXHUwNDRCXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM5XHUwNDM4XHUwNDM3XHUwNDNDXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRDXHUwNDNEXHUwNDNFXHUwNDM5XHUwNDM0XHUwNDM4XHUwNDMwXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDRCIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0MVx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQzRVx1MDQ0Rlx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzRlx1MDQ0MFx1MDQzRVx1MDQ0MVx1MDQzQ1x1MDQzRVx1MDQ0Mlx1MDQ0MFx1MDQzMCBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0VcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0M0FcdTA0MzhcdTA0M0ZcdTA0M0VcdTA0MzhcdTA0NDFcdTA0M0FcdTA0MzAgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQyXHUwNDM1XHUwNDNBXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDQxXHUwNDNFXHUwNDM1XHUwNDM0XHUwNDM4XHUwNDNEXHUwNDM4XHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRDXHUwNDNEXHUwNDNFXHUwNDM5XHUwNDNCXHUwNDM4XHUwNDNEXHUwNDM4XHUwNDM4IFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0M1x1MDQzRlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzRlx1MDQzRVx1MDQzOFx1MDQ0MVx1MDQzQVx1MDQzRVx1MDQzQyBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0VcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDhcdTA0M0FcdTA0MzBcdTA0M0JcdTA0NEJcdTA0MzJcdTA0NDBcdTA0MzVcdTA0M0NcdTA0MzVcdTA0M0RcdTA0MzggXHUwNDNGXHUwNDNFXHUwNDQwXHUwNDRGXHUwNDM0XHUwNDNFXHUwNDNBXHUwNDNFXHUwNDQyXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDQyXHUwNDNFXHUwNDQ3XHUwNDM1XHUwNDNBXHUwNDMzXHUwNDNFXHUwNDQwXHUwNDM4XHUwNDM3XHUwNDNFXHUwNDNEXHUwNDQyXHUwNDMwXHUwNDNCXHUwNDRDXHUwNDNEXHUwNDNFXHUwNDM5XHUwNDMzXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDNFXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDRCIFx1MDQzRlx1MDQzRVx1MDQ0MFx1MDQ0Rlx1MDQzNFx1MDQzRVx1MDQzQVx1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQzOFx1MDQzOVx1MDQzMlx1MDQzQlx1MDQzNVx1MDQzM1x1MDQzNVx1MDQzRFx1MDQzNFx1MDQzNVx1MDQzNFx1MDQzOFx1MDQzMFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzQ1x1MDQ0QiBcdTA0NDBcdTA0MzBcdTA0MzdcdTA0M0NcdTA0MzVcdTA0NDBcdTA0M0FcdTA0MzBcdTA0NDBcdTA0NDJcdTA0MzhcdTA0M0RcdTA0M0FcdTA0MzggXHUwNDQwXHUwNDMwXHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDM3XHUwNDMwXHUwNDMzXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDMwXHUwNDQ4XHUwNDNBXHUwNDMwXHUwNDNCXHUwNDRCXHUwNDM0XHUwNDM4XHUwNDMwXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDRCIFx1MDQ0MFx1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQ0Rlx1MDQzM1x1MDQzOFx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzRlx1MDQzRVx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQ0Mlx1MDQzOFx1MDQzQVx1MDQzMFx1MDQzQlx1MDQzOFx1MDQzNFx1MDQzOFx1MDQzMFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzQ1x1MDQ0Qlx1MDQzM1x1MDQzMFx1MDQzRFx1MDQ0Mlx1MDQzMCBcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0MzBcdTA0MzJcdTA0NDJcdTA0M0VcdTA0M0VcdTA0NDJcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0NDFcdTA0M0VcdTA0NDFcdTA0NDJcdTA0M0VcdTA0NEZcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDMyXHUwNDMyXHUwNDNFXHUwNDM0XHUwNDMwXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDNBXHUwNDQyXHUwNDMwXHUwNDMxXHUwNDNCXHUwNDM4XHUwNDQ2XHUwNDRCIFx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQzMlx1MDQ0Qlx1MDQzMVx1MDQzRVx1MDQ0MFx1MDQzMFx1MDQzRFx1MDQzNVx1MDQzN1x1MDQzMFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRFx1MDQzNVx1MDQzRFx1MDQzRFx1MDQzRVx1MDQzM1x1MDQzRSBcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0MzJcdTA0NEJcdTA0MzRcdTA0MzVcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0MzRcdTA0MzBcdTA0NDJcdTA0NEIgXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDMyXHUwNDRCXHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDNBXHUwNDM4XHUwNDQyXHUwNDMwXHUwNDMxXHUwNDNCXHUwNDM4XHUwNDQ2XHUwNDRCIFx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQzMlx1MDQ0Qlx1MDQzNFx1MDQzNVx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQ0Mlx1MDQzMFx1MDQzMVx1MDQzQlx1MDQzOFx1MDQ0Nlx1MDQ0QiBcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0MzhcdTA0MzdcdTA0M0NcdTA0MzVcdTA0M0RcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0NDBcdTA0MzBcdTA0MzdcdTA0M0NcdTA0MzVcdTA0NDBcdTA0MzAgXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDM4XHUwNDM3XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDQxXHUwNDMyXHUwNDRGXHUwNDM3XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQzOFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzNFx1MDQzOFx1MDQzMFx1MDQzQlx1MDQzRVx1MDQzM1x1MDQzMFx1MDQzRlx1MDQzNVx1MDQ0N1x1MDQzMFx1MDQ0Mlx1MDQzOCBcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0MzhcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NEZcdTA0M0ZcdTA0MzBcdTA0NDBcdTA0MzBcdTA0M0NcdTA0MzVcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M0FcdTA0M0VcdTA0M0NcdTA0MzBcdTA0M0RcdTA0MzRcdTA0NEIgXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDNDXHUwNDMwXHUwNDQxXHUwNDQ4XHUwNDQyXHUwNDMwXHUwNDMxXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDQxXHUwNDNDXHUwNDNFXHUwNDQyXHUwNDQwXHUwNDMwIFx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQzRVx1MDQ0MVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzRFx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzRVx1MDQzQVx1MDQzRFx1MDQzMFx1MDQzQVx1MDQzQlx1MDQzOFx1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQ0MVx1MDQzQVx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzRlx1MDQ0MFx1MDQzOFx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0M0VcdTA0NDJcdTA0M0FcdTA0NDBcdTA0NEJcdTA0NDJcdTA0MzhcdTA0NEZcdTA0M0VcdTA0M0FcdTA0M0RcdTA0MzBcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0NEIgXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDNFXHUwNDQyXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDMyXHUwNDRCXHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQzRVx1MDQ0Mlx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzM1x1MDQzNVx1MDQzRVx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQ0NFx1MDQzOFx1MDQ0N1x1MDQzNVx1MDQ0MVx1MDQzQVx1MDQzRVx1MDQzOVx1MDQ0MVx1MDQ0NVx1MDQzNVx1MDQzQ1x1MDQ0QiBcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0M0VcdTA0NDJcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzlcdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzhcdTA0MzggXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDNFXHUwNDQyXHUwNDQwXHUwNDM4XHUwNDQxXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDQxXHUwNDM1XHUwNDQyXHUwNDNBXHUwNDM4XHUwNDMzXHUwNDQwXHUwNDMwXHUwNDQ0XHUwNDM4XHUwNDQ3XHUwNDM1XHUwNDQxXHUwNDNBXHUwNDNFXHUwNDM5XHUwNDQxXHUwNDQ1XHUwNDM1XHUwNDNDXHUwNDRCIFx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQzRlx1MDQ0MFx1MDQzRVx1MDQzN1x1MDQ0MFx1MDQzMFx1MDQ0N1x1MDQzRFx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQzNFx1MDQzOFx1MDQzMFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzQ1x1MDQ0QiBcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0MzFcdTA0MzVcdTA0M0JcdTA0M0VcdTA0MzJcdTA0MzRcdTA0MzhcdTA0MzBcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0NcdTA0M0NcdTA0NEIgXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDQwXHUwNDMwXHUwNDM3XHUwNDNDXHUwNDM1XHUwNDQ5XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNEXHUwNDMwXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDQ2XHUwNDM1IFx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQ0MFx1MDQzNVx1MDQzNFx1MDQzMFx1MDQzQVx1MDQ0Mlx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzQVx1MDQzRVx1MDQzQlx1MDQzRVx1MDQzRFx1MDQzQVx1MDQzOCBcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0NDFcdTA0MzNcdTA0M0JcdTA0MzBcdTA0MzZcdTA0MzhcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NEZcdTA0MzRcdTA0MzhcdTA0MzBcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0NcdTA0M0NcdTA0NEIgXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDQxXHUwNDMzXHUwNDNCXHUwNDMwXHUwNDM2XHUwNDM4XHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDRGXHUwNDM4XHUwNDNEXHUwNDM0XHUwNDM4XHUwNDNBXHUwNDMwXHUwNDQyXHUwNDNFXHUwNDQwXHUwNDMwIFx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQ0MVx1MDQzRlx1MDQzOFx1MDQ0MVx1MDQzQVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQzNFx1MDQzMFx1MDQ0NyBcdTA0NDFcdTA0M0FcdTA0MzJcdTA0M0VcdTA0MzdcdTA0M0RcdTA0M0VcdTA0MzVcdTA0MzJcdTA0NEJcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M0RcdTA0MzhcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0MzUgXHUwNDQxXHUwNDNFXHUwNDQ1XHUwNDQwXHUwNDMwXHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDRCXHUwNDMyXHUwNDNEXHUwNDMwXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDM5XHUwNDNBXHUwNDMwXHUwNDQ1IFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQ0MVx1MDQzRVx1MDQzMVx1MDQzN1x1MDQzMFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQ0Mlx1MDQzNVx1MDQzQVx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzN1x1MDQzMFx1MDQzM1x1MDQzRVx1MDQzQlx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzMFx1MDQ0OFx1MDQzQVx1MDQzMFx1MDQzQlx1MDQ0Qlx1MDQzNFx1MDQzOFx1MDQzMFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzQ1x1MDQ0QiBcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0NDFcdTA0M0VcdTA0MzFcdTA0M0VcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0M0VcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NDdcdTA0MzhcdTA0MzJcdTA0MzBcdTA0NEVcdTA0NDlcdTA0MzVcdTA0MzNcdTA0M0VcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0MzRcdTA0MzhcdTA0MzBcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0NcdTA0M0NcdTA0NEIgXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDM0XHUwNDMwXHUwNDQwXHUwNDQyXHUwNDNEXHUwNDMwXHUwNDRGXHUwNDMzXHUwNDQwXHUwNDQzXHUwNDNGXHUwNDNGXHUwNDMwXHUwNDNBXHUwNDNFXHUwNDNDXHUwNDMwXHUwNDNEXHUwNDM0IFx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzNFx1MDQzMFx1MDQ0MFx1MDQ0Mlx1MDQzRFx1MDQzRVx1MDQzNVx1MDQzRVx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNSBcdTA0NDFcdTA0NDJcdTA0MzBcdTA0NDJcdTA0NDNcdTA0NDFcdTA0M0VcdTA0M0ZcdTA0M0VcdTA0MzJcdTA0MzVcdTA0NDlcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M0JcdTA0NEYgXHUwNDQxXHUwNDQyXHUwNDM4XHUwNDNCXHUwNDRDXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDM1XHUwNDNCXHUwNDNBXHUwNDM4IFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzMFx1MDQzRlx1MDQzRlx1MDQ0MFx1MDQzRVx1MDQzQVx1MDQ0MVx1MDQzOFx1MDQzQ1x1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOFx1MDQzQlx1MDQzOFx1MDQzRFx1MDQzOFx1MDQzOFx1MDQ0Mlx1MDQ0MFx1MDQzNVx1MDQzRFx1MDQzNFx1MDQzMFx1MDQzNFx1MDQzOFx1MDQzMFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzQ1x1MDQ0QiBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0MzRcdTA0MzhcdTA0MzBcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0NcdTA0M0NcdTA0NEIgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDM1XHUwNDM0XHUwNDM4XHUwNDNEXHUwNDM4XHUwNDQ2XHUwNDRCXHUwNDQ4XHUwNDNBXHUwNDMwXHUwNDNCXHUwNDRCXHUwNDMyXHUwNDQwXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDM4IFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzOFx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQ0MFx1MDQ0Mlx1MDQzMFx1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQzOFx1MDQzOVx1MDQ0MVx1MDQzQlx1MDQzRVx1MDQ0Rlx1MDQzM1x1MDQzNVx1MDQzRVx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQ0NFx1MDQzOFx1MDQ0N1x1MDQzNVx1MDQ0MVx1MDQzQVx1MDQzRVx1MDQzOVx1MDQ0MVx1MDQ0NVx1MDQzNVx1MDQzQ1x1MDQ0QiBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0JcdTA0MzhcdTA0M0RcdTA0MzhcdTA0MzhcdTA0MzNcdTA0MzVcdTA0M0VcdTA0MzNcdTA0NDBcdTA0MzBcdTA0NDRcdTA0MzhcdTA0NDdcdTA0MzVcdTA0NDFcdTA0M0FcdTA0M0VcdTA0MzlcdTA0NDFcdTA0NDVcdTA0MzVcdTA0M0NcdTA0NEIgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDNCXHUwNDM4XHUwNDNEXHUwNDM4XHUwNDM4XHUwNDM0XHUwNDM4XHUwNDMwXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDRCIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzQ1x1MDQzMFx1MDQ0MFx1MDQzQVx1MDQzNVx1MDQ0MFx1MDQzMFx1MDQzM1x1MDQzNVx1MDQzRVx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQ0NFx1MDQzOFx1MDQ0N1x1MDQzNVx1MDQ0MVx1MDQzQVx1MDQzRVx1MDQzOVx1MDQ0MVx1MDQ0NVx1MDQzNVx1MDQzQ1x1MDQ0QiBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0NcdTA0MzBcdTA0NDBcdTA0M0FcdTA0MzVcdTA0NDBcdTA0MzBcdTA0MzRcdTA0MzhcdTA0MzBcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0NcdTA0M0NcdTA0NEIgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDNFXHUwNDMxXHUwNDNCXHUwNDMwXHUwNDQxXHUwNDQyXHUwNDM4XHUwNDNFXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzRVx1MDQ0MFx1MDQzM1x1MDQzMFx1MDQzRFx1MDQzOFx1MDQzN1x1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOFx1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzRVx1MDQ0N1x1MDQzRFx1MDQzOFx1MDQzQVx1MDQzMFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NVx1MDQzM1x1MDQzNVx1MDQzRVx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQ0NFx1MDQzOFx1MDQ0N1x1MDQzNVx1MDQ0MVx1MDQzQVx1MDQzRVx1MDQzOVx1MDQ0MVx1MDQ0NVx1MDQzNVx1MDQzQ1x1MDQ0QiBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0VcdTA0NDJcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzhcdTA0MzhcdTA0NDFcdTA0M0JcdTA0M0VcdTA0NEZcdTA0MzNcdTA0MzVcdTA0M0VcdTA0MzNcdTA0NDBcdTA0MzBcdTA0NDRcdTA0MzhcdTA0NDdcdTA0MzVcdTA0NDFcdTA0M0FcdTA0M0VcdTA0MzlcdTA0NDFcdTA0NDVcdTA0MzVcdTA0M0NcdTA0NEIgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDNFXHUwNDQyXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDQyXHUwNDNFXHUwNDQ3XHUwNDM1XHUwNDQ3XHUwNDNEXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDNFXHUwNDMxXHUwNDRBXHUwNDM1XHUwNDNBXHUwNDQyXHUwNDMwXHUwNDMzXHUwNDM1XHUwNDNFXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDQ0XHUwNDM4XHUwNDQ3XHUwNDM1XHUwNDQxXHUwNDNBXHUwNDNFXHUwNDM5XHUwNDQxXHUwNDQ1XHUwNDM1XHUwNDNDXHUwNDRCIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzRVx1MDQ0Mlx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQ0OFx1MDQzQVx1MDQzMFx1MDQzQlx1MDQ0Qlx1MDQ0RFx1MDQzQlx1MDQzNVx1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzMFx1MDQzQlx1MDQzNVx1MDQzM1x1MDQzNVx1MDQzRFx1MDQzNFx1MDQ0Qlx1MDQzM1x1MDQzNVx1MDQzRVx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQ0NFx1MDQzOFx1MDQ0N1x1MDQzNVx1MDQ0MVx1MDQzQVx1MDQzRVx1MDQzOVx1MDQ0MVx1MDQ0NVx1MDQzNVx1MDQzQ1x1MDQ0QiBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0ZcdTA0M0VcdTA0MzhcdTA0NDFcdTA0M0FcdTA0MzBcdTA0M0VcdTA0MzFcdTA0NEFcdTA0MzVcdTA0M0FcdTA0NDJcdTA0M0VcdTA0MzJcdTA0MzNcdTA0MzVcdTA0M0VcdTA0MzNcdTA0NDBcdTA0MzBcdTA0NDRcdTA0MzhcdTA0NDdcdTA0MzVcdTA0NDFcdTA0M0FcdTA0M0VcdTA0MzlcdTA0NDFcdTA0NDVcdTA0MzVcdTA0M0NcdTA0NEIgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDM1XHUwNDNBXHUwNDQ2XHUwNDM4XHUwNDM4XHUwNDMzXHUwNDM1XHUwNDNFXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDQ0XHUwNDM4XHUwNDQ3XHUwNDM1XHUwNDQxXHUwNDNBXHUwNDNFXHUwNDM5XHUwNDQxXHUwNDQ1XHUwNDM1XHUwNDNDXHUwNDRCIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQ0MFx1MDQzMFx1MDQzN1x1MDQzQ1x1MDQzNVx1MDQ0OVx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzOFx1MDQzN1x1MDQzQ1x1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzOSBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0NDBcdTA0MzBcdTA0MzdcdTA0M0NcdTA0MzVcdTA0NDlcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0NDBcdTA0MzVcdTA0M0FcdTA0MzJcdTA0MzhcdTA0MzdcdTA0MzhcdTA0NDJcdTA0M0VcdTA0MzJcdTA0MzhcdTA0MzdcdTA0M0NcdTA0MzVcdTA0NDBcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzkgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNBXHUwNDM4XHUwNDREXHUwNDNCXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwXHUwNDQzXHUwNDNGXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQ0MVx1MDQzMlx1MDQzRVx1MDQzNFx1MDQzRFx1MDQzRVx1MDQzOVx1MDQzNFx1MDQzOFx1MDQzMFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzQ1x1MDQ0QiBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0NDFcdTA0MzJcdTA0NEZcdTA0MzdcdTA0MzhcdTA0MzRcdTA0MzhcdTA0MzBcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0NcdTA0M0NcdTA0NEJcdTA0MzNcdTA0MzBcdTA0M0RcdTA0NDJcdTA0MzAgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDQxXHUwNDNFXHUwNDM1XHUwNDM0XHUwNDM4XHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM5XHUwNDNGXHUwNDNFXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDRGXHUwNDNDXHUwNDM0XHUwNDM4XHUwNDMwXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDRCIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQ0MVx1MDQzRVx1MDQzNVx1MDQzNFx1MDQzOFx1MDQzRFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQ0Mlx1MDQzRVx1MDQ0N1x1MDQzNVx1MDQzQVx1MDQzNFx1MDQzOFx1MDQzMFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzQ1x1MDQ0QiBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0NDFcdTA0M0VcdTA0MzVcdTA0MzRcdTA0MzhcdTA0M0RcdTA0MzhcdTA0NDJcdTA0MzVcdTA0M0JcdTA0NENcdTA0M0RcdTA0M0VcdTA0MzlcdTA0M0JcdTA0MzhcdTA0M0RcdTA0MzhcdTA0MzggXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDQxXHUwNDQyXHUwNDNFXHUwNDQwXHUwNDNFXHUwNDNEXHUwNDRCXHUwNDREXHUwNDNCXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDQ0XHUwNDM4XHUwNDQ3XHUwNDM1XHUwNDQxXHUwNDNBXHUwNDNFXHUwNDM5XHUwNDQxXHUwNDQ1XHUwNDM1XHUwNDNDXHUwNDRCIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQ0Qlx1MDQzRVx1MDQ0Mlx1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQzMCBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0NDhcdTA0M0FcdTA0MzBcdTA0M0JcdTA0NEJcdTA0NDBcdTA0MzBcdTA0MzRcdTA0MzBcdTA0NDBcdTA0M0RcdTA0M0VcdTA0MzlcdTA0MzRcdTA0MzhcdTA0MzBcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0NcdTA0M0NcdTA0NEIgXHUwNDQ0XHUwNDMwXHUwNDNBXHUwNDQyXHUwNDNFXHUwNDQwXHUwNDNCXHUwNDM4XHUwNDNEXHUwNDM4XHUwNDM4XHUwNDQyXHUwNDQwXHUwNDM1XHUwNDNEXHUwNDM0XHUwNDMwXHUwNDM0XHUwNDM4XHUwNDMwXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDRCIFx1MDQ0NFx1MDQzOFx1MDQzM1x1MDQ0M1x1MDQ0MFx1MDQzMFx1MDQzQVx1MDQzRFx1MDQzRVx1MDQzRlx1MDQzQVx1MDQzOCBcdTA0NDRcdTA0MzhcdTA0MzNcdTA0NDNcdTA0NDBcdTA0NEJcdTA0MzNcdTA0NDBcdTA0MzBcdTA0NDRcdTA0MzhcdTA0NDdcdTA0MzVcdTA0NDFcdTA0M0FcdTA0M0VcdTA0MzlcdTA0NDFcdTA0NDVcdTA0MzVcdTA0M0NcdTA0NEIgXHUwNDQ0XHUwNDM4XHUwNDNBXHUwNDQxXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDRGXHUwNDMyXHUwNDQyXHUwNDMwXHUwNDMxXHUwNDNCXHUwNDM4XHUwNDQ2XHUwNDM1IFx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQzMFx1MDQ0Mlx1MDQzNFx1MDQzRFx1MDQ0Rlx1MDQ0OFx1MDQzQVx1MDQzMFx1MDQzQlx1MDQ0Qlx1MDQzMlx1MDQ0MFx1MDQzNVx1MDQzQ1x1MDQzNVx1MDQzRFx1MDQzOCBcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0MzBcdTA0NDJcdTA0M0FcdTA0MzBcdTA0NDBcdTA0NDJcdTA0MzhcdTA0M0RcdTA0M0FcdTA0MzggXHUwNDQ4XHUwNDM4XHUwNDQwXHUwNDM4XHUwNDNEXHUwNDMwXHUwNDNGXHUwNDNFXHUwNDM0XHUwNDQ3XHUwNDM4XHUwNDNEXHUwNDM1XHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDREXHUwNDNCXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDNFXHUwNDMyXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDRCICIsVD0iXHUwNDMyXHUwNDM4XHUwNDM0XHUwNDM0XHUwNDMyXHUwNDM4XHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDMxXHUwNDQzXHUwNDQ1XHUwNDMzXHUwNDMwXHUwNDNCXHUwNDQyXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDM4IFx1MDQzMlx1MDQzOFx1MDQzNFx1MDQzNFx1MDQzMlx1MDQzOFx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzRFx1MDQzMFx1MDQzQVx1MDQzRVx1MDQzRlx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0MzJcdTA0MzhcdTA0MzRcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzhcdTA0M0VcdTA0MzRcdTA0MzBcdTA0NDBcdTA0MzVcdTA0MzNcdTA0MzhcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0NDBcdTA0MzBcdTA0NDFcdTA0NDdcdTA0MzVcdTA0NDJcdTA0MzAgXHUwNDMyXHUwNDM4XHUwNDM0XHUwNDQxXHUwNDQ3XHUwNDM1XHUwNDQyXHUwNDMwIFx1MDQzMlx1MDQzOFx1MDQzNFx1MDQ0Mlx1MDQzRVx1MDQ0N1x1MDQzQVx1MDQzOFx1MDQzQ1x1MDQzMFx1MDQ0MFx1MDQ0OFx1MDQ0MFx1MDQ0M1x1MDQ0Mlx1MDQzMFx1MDQzMVx1MDQzOFx1MDQzN1x1MDQzRFx1MDQzNVx1MDQ0MVx1MDQzRlx1MDQ0MFx1MDQzRVx1MDQ0Nlx1MDQzNVx1MDQ0MVx1MDQ0MVx1MDQzMCBcdTA0MzhcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzBcdTA0MzNcdTA0NDBcdTA0MzVcdTA0MzNcdTA0MzBcdTA0NDJcdTA0MzBcdTA0NDBcdTA0MzVcdTA0MzNcdTA0MzhcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M0RcdTA0MzBcdTA0M0FcdTA0M0VcdTA0M0ZcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDM4XHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1XHUwNDMzXHUwNDQwXHUwNDQzXHUwNDNGXHUwNDNGXHUwNDM4XHUwNDREXHUwNDNCXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDNFXHUwNDMyIFx1MDQzOFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQzMFx1MDQzRlx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzNVx1MDQzNFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0MzhcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDFcdTA0NDBcdTA0MzVcdTA0MzdcdTA0MzAgXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDNFXHUwNDM0XHUwNDM4XHUwNDQ3XHUwNDNEXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDRDXHUwNDMwXHUwNDMzXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDMwXHUwNDQyXHUwNDMwXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNEXHUwNDMwXHUwNDNBXHUwNDNFXHUwNDNGXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQzMFx1MDQzMlx1MDQ0Mlx1MDQzRVx1MDQzMlx1MDQ0MFx1MDQzNVx1MDQzQ1x1MDQ0RiBcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0MzhcdTA0NDFcdTA0MzhcdTA0MzRcdTA0M0VcdTA0M0FcdTA0NDNcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzAgXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDMyXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDM0XHUwNDNFXHUwNDNBXHUwNDQzXHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwICIsYj0iXHUwNDMwXHUwNDMyXHUwNDQyXHUwNDNFXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDRGXHUwNDM4XHUwNDM3XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM5IFx1MDQzNFx1MDQzRVx1MDQzRlx1MDQ0M1x1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQzQ1x1MDQ0Qlx1MDQzOVx1MDQzRFx1MDQzRVx1MDQzQ1x1MDQzNVx1MDQ0MFx1MDQ0MVx1MDQzRVx1MDQzRVx1MDQzMVx1MDQ0OVx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0M0VcdTA0NDJcdTA0M0ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M0FcdTA0MzBcdTA0NERcdTA0M0JcdTA0MzVcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzBcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDREXHUwNDNCXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1ICIsZj0iXHUwNDM4XHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQwXHUwNDMwXHUwNDQxXHUwNDQ4XHUwNDM4XHUwNDQ0XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDQyXHUwNDMwXHUwNDMxXHUwNDNCXHUwNDM4XHUwNDQ3XHUwNDNEXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDM0XHUwNDNFXHUwNDNBXHUwNDQzXHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwIFx1MDQzRVx1MDQ0MFx1MDQzOFx1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQ0Rlx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0Nlx1MDQ0QiBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0VcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzhcdTA0NDJcdTA0M0VcdTA0MzNcdTA0M0VcdTA0MzJcdTA0M0FcdTA0M0VcdTA0M0JcdTA0M0VcdTA0M0RcdTA0M0VcdTA0M0FcdTA0NDFcdTA0MzJcdTA0M0VcdTA0MzRcdTA0M0RcdTA0M0VcdTA0MzlcdTA0NDJcdTA0MzBcdTA0MzFcdTA0M0JcdTA0MzhcdTA0NDZcdTA0NEIgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDM4XHUwNDQyXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDMyXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDNBXHUwNDQxXHUwNDMyXHUwNDNFXHUwNDM0XHUwNDNEXHUwNDNFXHUwNDM5XHUwNDQyXHUwNDMwXHUwNDMxXHUwNDNCXHUwNDM4XHUwNDQ2XHUwNDRCIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0Mlx1MDQzNVx1MDQzQVx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRVx1MDQ0Mlx1MDQzRFx1MDQzRVx1MDQ0MVx1MDQzOFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQzRVx1MDQzQVx1MDQzMFx1MDQ0MFx1MDQ0Mlx1MDQzOFx1MDQzRFx1MDQzQVx1MDQzOCBcdTA0NDBcdTA0MzBcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0VcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzdcdTA0MzBcdTA0MzNcdTA0M0VcdTA0M0JcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzBcdTA0MzNcdTA0NDBcdTA0NDNcdTA0M0ZcdTA0M0ZcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0NDJcdTA0MzBcdTA0MzFcdTA0M0JcdTA0MzhcdTA0NDdcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0MzRcdTA0M0VcdTA0M0FcdTA0NDNcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzAgXHUwNDQxXHUwNDNGXHUwNDNFXHUwNDQxXHUwNDNFXHUwNDMxXHUwNDQ3XHUwNDQyXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM5XHUwNDQyXHUwNDMwXHUwNDMxXHUwNDNCXHUwNDM4XHUwNDQ3XHUwNDNEXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDM0XHUwNDNFXHUwNDNBXHUwNDQzXHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzNFx1MDQzMlx1MDQ0M1x1MDQ0MVx1MDQ0Mlx1MDQzRVx1MDQ0MFx1MDQzRVx1MDQzRFx1MDQzRFx1MDQzNVx1MDQzOVx1MDQzRlx1MDQzNVx1MDQ0N1x1MDQzMFx1MDQ0Mlx1MDQzOCBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0RcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0M0VcdTA0MzFcdTA0M0JcdTA0MzBcdTA0NDFcdTA0NDJcdTA0MzhcdTA0NDJcdTA0MzBcdTA0MzFcdTA0M0JcdTA0MzhcdTA0NDdcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0MzRcdTA0M0VcdTA0M0FcdTA0NDNcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzAgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDNBXHUwNDQzXHUwNDQwXHUwNDQxXHUwNDNFXHUwNDQwXHUwNDNFXHUwNDMyXHUwNDQyXHUwNDMwXHUwNDMxXHUwNDNCXHUwNDM4XHUwNDQ3XHUwNDNEXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDM0XHUwNDNFXHUwNDNBXHUwNDQzXHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzQlx1MDQzOFx1MDQzRFx1MDQzOFx1MDQzOFx1MDQ0MFx1MDQzOFx1MDQ0MVx1MDQ0M1x1MDQzRFx1MDQzQVx1MDQzMFx1MDQ0Mlx1MDQzMFx1MDQzMVx1MDQzQlx1MDQzOFx1MDQ0N1x1MDQzRFx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzNFx1MDQzRVx1MDQzQVx1MDQ0M1x1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzMCBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0JcdTA0MzhcdTA0M0RcdTA0MzhcdTA0MzhcdTA0NEZcdTA0NDdcdTA0MzVcdTA0MzlcdTA0M0FcdTA0MzhcdTA0NDJcdTA0MzBcdTA0MzFcdTA0M0JcdTA0MzhcdTA0NDdcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0MzRcdTA0M0VcdTA0M0FcdTA0NDNcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzAgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDNEXHUwNDMwXHUwNDNGXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDQ1XHUwNDNFXHUwNDM0XHUwNDMwXHUwNDQyXHUwNDMwXHUwNDMxXHUwNDNCXHUwNDM4XHUwNDQ3XHUwNDNEXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDM0XHUwNDNFXHUwNDNBXHUwNDQzXHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzRVx1MDQ0Mlx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzMlx1MDQ0Qlx1MDQzNFx1MDQzNVx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQ0Mlx1MDQzMFx1MDQzMVx1MDQzQlx1MDQzOFx1MDQ0N1x1MDQzRFx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzNFx1MDQzRVx1MDQzQVx1MDQ0M1x1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzMCBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0VcdTA0NDJcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0M0JcdTA0MzhcdTA0M0RcdTA0MzhcdTA0MzlcdTA0NDFcdTA0MzJcdTA0M0VcdTA0MzRcdTA0M0RcdTA0M0VcdTA0MzlcdTA0NDJcdTA0MzBcdTA0MzFcdTA0M0JcdTA0MzhcdTA0NDZcdTA0NEIgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDQwXHUwNDMwXHUwNDM3XHUwNDNDXHUwNDM1XHUwNDQ5XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDQyXHUwNDM1XHUwNDNBXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDQyXHUwNDMwXHUwNDMxXHUwNDNCXHUwNDM4XHUwNDQ3XHUwNDNEXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDM0XHUwNDNFXHUwNDNBXHUwNDQzXHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQ0MFx1MDQzOFx1MDQ0MVx1MDQ0M1x1MDQzRFx1MDQzQVx1MDQzMFx1MDQ0Mlx1MDQzMFx1MDQzMVx1MDQzQlx1MDQzOFx1MDQ0N1x1MDQzRFx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzNFx1MDQzRVx1MDQzQVx1MDQ0M1x1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzMCBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0NDFcdTA0M0NcdTA0MzVcdTA0NDlcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0NDJcdTA0MzBcdTA0MzFcdTA0M0JcdTA0MzhcdTA0NDdcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0MzRcdTA0M0VcdTA0M0FcdTA0NDNcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzAgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDQzXHUwNDM3XHUwNDNFXHUwNDQwXHUwNDMwXHUwNDQyXHUwNDMwXHUwNDMxXHUwNDNCXHUwNDM4XHUwNDQ3XHUwNDNEXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDM0XHUwNDNFXHUwNDNBXHUwNDQzXHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQ0NFx1MDQzMFx1MDQzOVx1MDQzQlx1MDQzMFx1MDQ0Mlx1MDQzMFx1MDQzMVx1MDQzQlx1MDQzOFx1MDQ0N1x1MDQzRFx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzNFx1MDQzRVx1MDQzQVx1MDQ0M1x1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzMCBcdTA0NDJcdTA0M0VcdTA0NDdcdTA0M0RcdTA0M0VcdTA0NDFcdTA0NDJcdTA0NENcdTA0M0ZcdTA0MzVcdTA0NDdcdTA0MzBcdTA0NDJcdTA0MzggXHUwNDQ3XHUwNDM1XHUwNDQwXHUwNDM1XHUwNDM0XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQwXHUwNDMwXHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDQ2ICIsQz0iXHUwNDNFXHUwNDQyXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDMyXHUwNDQwXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDREXHUwNDNCXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDNFXHUwNDMyXHUwNDNGXHUwNDNCXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDQ5XHUwNDM4XHUwNDNBXHUwNDMwICIsTz0iXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDMwXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDMwXHUwNDQyXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDNEXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDM0XHUwNDNFXHUwNDNBXHUwNDQzXHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwICIsRD0iXHUwNDNFXHUwNDMxXHUwNDQ1XHUwNDNFXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDM3XHUwNDQzXHUwNDNCXHUwNDRDXHUwNDQyXHUwNDMwXHUwNDQyXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDQxXHUwNDMwIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzN1x1MDQzMFx1MDQzRlx1MDQzOFx1MDQ0MVx1MDQzOFx1MDQzN1x1MDQzMFx1MDQzRlx1MDQ0MFx1MDQzRVx1MDQ0MVx1MDQzMCAiLHk9Ilx1MDQzMlx1MDQzOFx1MDQzNFx1MDQzN1x1MDQzMFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQ0MFx1MDQzMFx1MDQ0MVx1MDQ0OFx1MDQzOFx1MDQ0NFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzRlx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzOFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQ0Rlx1MDQzRVx1MDQ0Mlx1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQzMCBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0MzRcdTA0M0VcdTA0MzFcdTA0MzBcdTA0MzJcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0NDFcdTA0NDJcdTA0MzBcdTA0MzJcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzkgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDM4XHUwNDM3XHUwNDNDXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNGXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDM4XHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRGXHUwNDNFXHUwNDQyXHUwNDQ3XHUwNDM1XHUwNDQyXHUwNDMwIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQ0MFx1MDQzMFx1MDQzN1x1MDQzQ1x1MDQzNVx1MDQ0OVx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzOFx1MDQ0Mlx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzMiAiLEE9Ilx1MDQzNFx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQzRlx1MDQzQVx1MDQ0NFx1MDQzMFx1MDQzOVx1MDQzQlx1MDQ0MyBcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0MzRcdTA0MzhcdTA0MzBcdTA0M0JcdTA0M0VcdTA0MzNcdTA0MzBcdTA0MzJcdTA0NEJcdTA0MzFcdTA0M0VcdTA0NDBcdTA0MzBcdTA0NDRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0MzAgXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDNFXHUwNDQyXHUwNDNBXHUwNDQwXHUwNDRCXHUwNDQyXHUwNDM4XHUwNDRGXHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDMwICIsaz0iXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDM4XHUwNDM3XHUwNDNDXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNGXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDM4XHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRGXHUwNDM3XHUwNDMwXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDQxXHUwNDMwICIsQj0iXHUwNDMyXHUwNDM4XHUwNDM0XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDMwXHUwNDNEXHUwNDMwXHUwNDNCXHUwNDM4XHUwNDM3XHUwNDMwIFx1MDQzQ1x1MDQzNVx1MDQ0Mlx1MDQzRVx1MDQzNFx1MDQzQVx1MDQzQlx1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQzNVx1MDQ0MFx1MDQzOFx1MDQzN1x1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOCBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0MzVcdTA0MzRcdTA0MzhcdTA0M0RcdTA0MzhcdTA0NDZcdTA0NEJcdTA0MzhcdTA0M0RcdTA0NDJcdTA0MzVcdTA0NDBcdTA0MzJcdTA0MzBcdTA0M0JcdTA0MzBcdTA0MzJcdTA0NDBcdTA0MzVcdTA0M0NcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzBcdTA0M0RcdTA0MzBcdTA0M0JcdTA0MzhcdTA0MzdcdTA0MzBcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDM3XHUwNDMwXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDQyXHUwNDMwXHUwNDMxXHUwNDNCXHUwNDM4XHUwNDQ2XHUwNDRCXHUwNDQwXHUwNDM1XHUwNDM3XHUwNDQzXHUwNDNCXHUwNDRDXHUwNDQyXHUwNDMwXHUwNDQyXHUwNDMwXHUwNDMwXHUwNDNEXHUwNDMwXHUwNDNCXHUwNDM4XHUwNDM3XHUwNDMwXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzOFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQ0N1x1MDQzOFx1MDQ0MVx1MDQzQlx1MDQzRVx1MDQzMlx1MDQ0Qlx1MDQ0NVx1MDQzN1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQzOVx1MDQzMFx1MDQzRFx1MDQzMFx1MDQzQlx1MDQzOFx1MDQzN1x1MDQzMFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0MzhcdTA0NDFcdTA0NDJcdTA0M0VcdTA0NDdcdTA0M0RcdTA0MzhcdTA0M0FcdTA0MzBcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDVcdTA0M0ZcdTA0M0VcdTA0MzhcdTA0NDFcdTA0M0FcdTA0MzBcdTA0MzBcdTA0NDFcdTA0NDFcdTA0M0VcdTA0NDZcdTA0MzhcdTA0MzBcdTA0NDZcdTA0MzhcdTA0MzkgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDNBXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDNEXHUwNDNBXHUwNDM4XHUwNDMwXHUwNDNEXHUwNDMwXHUwNDNCXHUwNDM4XHUwNDM3XHUwNDMwXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDM0XHUwNDM1XHUwNDQwXHUwNDM1XHUwNDMyXHUwNDNFXHUwNDQwXHUwNDM1XHUwNDQ4XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM5IFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzQVx1MDQzRVx1MDQzQlx1MDQzRVx1MDQzRFx1MDQzQVx1MDQzOFx1MDQzMFx1MDQzRFx1MDQzMFx1MDQzQlx1MDQzOFx1MDQzN1x1MDQzMFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NVx1MDQzQVx1MDQzQlx1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQzNVx1MDQ0MFx1MDQzOFx1MDQzN1x1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQ0RiBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0FcdTA0M0VcdTA0M0JcdTA0M0VcdTA0M0RcdTA0M0FcdTA0MzhcdTA0MzBcdTA0M0RcdTA0MzBcdTA0M0JcdTA0MzhcdTA0MzdcdTA0MzBcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDVcdTA0M0VcdTA0MzFcdTA0NDlcdTA0MzBcdTA0NEZcdTA0NDFcdTA0NDJcdTA0MzBcdTA0NDJcdTA0MzhcdTA0NDFcdTA0NDJcdTA0MzhcdTA0M0FcdTA0MzAgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDNBXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDNEXHUwNDNBXHUwNDM4XHUwNDMwXHUwNDNEXHUwNDMwXHUwNDNCXHUwNDM4XHUwNDM3XHUwNDMwXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDNGXHUwNDNFXHUwNDM4XHUwNDQxXHUwNDNBXHUwNDMwXHUwNDQxXHUwNDQxXHUwNDNFXHUwNDQ2XHUwNDM4XHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM5IFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzQVx1MDQzRVx1MDQzQlx1MDQzRVx1MDQzRFx1MDQzQVx1MDQzOFx1MDQzMFx1MDQzRFx1MDQzMFx1MDQzQlx1MDQzOFx1MDQzN1x1MDQzMFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NVx1MDQzRlx1MDQzRVx1MDQzOFx1MDQ0MVx1MDQzQVx1MDQzRlx1MDQzRVx1MDQ0MVx1MDQzQlx1MDQzNVx1MDQzNFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQzNVx1MDQzOSBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0FcdTA0M0VcdTA0M0JcdTA0M0VcdTA0M0RcdTA0M0FcdTA0MzhcdTA0M0NcdTA0M0VcdTA0MzRcdTA0MzVcdTA0M0JcdTA0MzhcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0MzNcdTA0M0RcdTA0M0VcdTA0MzdcdTA0MzAgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDNDXHUwNDM1XHUwNDQwXHUwNDRCXHUwNDQwXHUwNDMwXHUwNDQxXHUwNDQxXHUwNDQyXHUwNDNFXHUwNDRGXHUwNDNEXHUwNDM4XHUwNDRGXHUwNDMwXHUwNDNEXHUwNDMwXHUwNDNCXHUwNDM4XHUwNDM3XHUwNDMwXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzRVx1MDQ0Mlx1MDQ0MVx1MDQzNVx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzRlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzOFx1MDQzQlx1MDQzMFx1MDQ0MVx1MDQ0MVx1MDQzRVx1MDQ0Nlx1MDQzOFx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOCBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NEZcdTA0MzBcdTA0M0RcdTA0MzBcdTA0M0JcdTA0MzhcdTA0MzdcdTA0MzBcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDM0XHUwNDMwXHUwNDQwXHUwNDQyXHUwNDM4XHUwNDM3XHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM4XHUwNDMwXHUwNDNEXHUwNDMwXHUwNDNCXHUwNDM4XHUwNDM3XHUwNDMwXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQ0M1x1MDQzRlx1MDQzRVx1MDQ0MFx1MDQ0Rlx1MDQzNFx1MDQzRVx1MDQ0N1x1MDQzOFx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzRlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzOFx1MDQzQlx1MDQzMFx1MDQ0MVx1MDQ0MVx1MDQzRVx1MDQ0Nlx1MDQzOFx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOFx1MDQzMFx1MDQzRFx1MDQzMFx1MDQzQlx1MDQzOFx1MDQzN1x1MDQzMFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0NDNcdTA0M0ZcdTA0M0VcdTA0NDBcdTA0NEZcdTA0MzRcdTA0M0VcdTA0NDdcdTA0MzhcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NEZcdTA0NDhcdTA0MzBcdTA0MzFcdTA0M0JcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0ZcdTA0M0VcdTA0NDFcdTA0M0JcdTA0MzVcdTA0MzRcdTA0M0VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M0JcdTA0NENcdTA0M0RcdTA0M0VcdTA0NDFcdTA0NDJcdTA0MzVcdTA0MzlcdTA0MzBcdTA0M0RcdTA0MzBcdTA0M0JcdTA0MzhcdTA0MzdcdTA0MzBcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDQzXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDQ5XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDM0XHUwNDM1XHUwNDQwXHUwNDM1XHUwNDMyXHUwNDMwXHUwNDQwXHUwNDM1XHUwNDQ4XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM5ICIsRj0id3NcdTA0M0RcdTA0MzBcdTA0M0ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0ZcdTA0MzBcdTA0NDBcdTA0MzBcdTA0M0NcdTA0MzVcdTA0NDJcdTA0NDBcdTA0MzAgXHUwNDMyXHUwNDMwXHUwNDQwXHUwNDM4XHUwNDMwXHUwNDNEXHUwNDQyeHBhdGh4cyBcdTA0MzJcdTA0MzBcdTA0NDBcdTA0MzhcdTA0MzBcdTA0M0RcdTA0NDJcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0MzhcdTA0NDFcdTA0MzhcdTA0MzRcdTA0MzBcdTA0NDJcdTA0NEJqc29uIFx1MDQzMlx1MDQzMFx1MDQ0MFx1MDQzOFx1MDQzMFx1MDQzRFx1MDQ0Mlx1MDQzRlx1MDQ0MFx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQzRVx1MDQzM1x1MDQzRVx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzMHhzIFx1MDQzMlx1MDQzOFx1MDQzNFx1MDQzM1x1MDQ0MFx1MDQ0M1x1MDQzRlx1MDQzRlx1MDQ0Qlx1MDQzQ1x1MDQzRVx1MDQzNFx1MDQzNVx1MDQzQlx1MDQzOHhzIFx1MDQzMlx1MDQzOFx1MDQzNFx1MDQ0NFx1MDQzMFx1MDQ0MVx1MDQzNVx1MDQ0Mlx1MDQzMHhkdG8gXHUwNDM0XHUwNDM1XHUwNDM5XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDM4XHUwNDM1XHUwNDNGXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDM4XHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRGZG9tIFx1MDQzN1x1MDQzMFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQ0OFx1MDQzNVx1MDQzRFx1MDQzRFx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQ0Q1x1MDQzRlx1MDQ0MFx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQzRVx1MDQzM1x1MDQzRVx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzMHhzIFx1MDQzN1x1MDQzMFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQ0OFx1MDQzNVx1MDQzRFx1MDQzRFx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQ0Q1x1MDQ0MVx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzMlx1MDQzRFx1MDQzRVx1MDQzM1x1MDQzRVx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzMHhzIFx1MDQzN1x1MDQzMFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQ0OFx1MDQzNVx1MDQzRFx1MDQzRFx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQ0Q1x1MDQ0MVx1MDQ0NVx1MDQzNVx1MDQzQ1x1MDQ0QnhzIFx1MDQzN1x1MDQzMFx1MDQzRlx1MDQ0MFx1MDQzNVx1MDQ0OVx1MDQzNVx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQzNVx1MDQzRlx1MDQzRVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOHhzIFx1MDQzOFx1MDQ0MVx1MDQzQVx1MDQzQlx1MDQ0RVx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzM1x1MDQ0MFx1MDQ0M1x1MDQzRlx1MDQzRlx1MDQzRlx1MDQzRVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOHhzIFx1MDQzQVx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzM1x1MDQzRVx1MDQ0MFx1MDQzOFx1MDQ0Rlx1MDQzOFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzMFx1MDQ0Mlx1MDQ0MFx1MDQzOFx1MDQzMVx1MDQ0M1x1MDQ0Mlx1MDQzMHhzIFx1MDQzQVx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzM1x1MDQzRVx1MDQ0MFx1MDQzOFx1MDQ0Rlx1MDQzRVx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzOFx1MDQzNFx1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzOFx1MDQ0N1x1MDQzRFx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQzOHhzIFx1MDQzQVx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzM1x1MDQzRVx1MDQ0MFx1MDQzOFx1MDQ0Rlx1MDQzRVx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzRlx1MDQ0MFx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzRFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzOFx1MDQzQ1x1MDQzNVx1MDQzRHhzIFx1MDQzQ1x1MDQzNVx1MDQ0Mlx1MDQzRVx1MDQzNFx1MDQzRFx1MDQzMFx1MDQ0MVx1MDQzQlx1MDQzNVx1MDQzNFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0RnhzIFx1MDQzQ1x1MDQzRVx1MDQzNFx1MDQzNVx1MDQzQlx1MDQ0Q1x1MDQ0MVx1MDQzRVx1MDQzNFx1MDQzNVx1MDQ0MFx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQzRVx1MDQzM1x1MDQzRXhzIFx1MDQzRFx1MDQzMFx1MDQzN1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzMHhtbCBcdTA0M0RcdTA0MzVcdTA0MzRcdTA0M0VcdTA0M0ZcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzhcdTA0M0NcdTA0NEJcdTA0MzVcdTA0M0ZcdTA0M0VcdTA0MzRcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0Mzh4cyBcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzFcdTA0M0VcdTA0NDJcdTA0M0FcdTA0MzBcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0MzFcdTA0MzVcdTA0M0JcdTA0NENcdTA0M0RcdTA0NEJcdTA0NDVcdTA0NDFcdTA0MzhcdTA0M0NcdTA0MzJcdTA0M0VcdTA0M0JcdTA0M0VcdTA0MzJ4cyBcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzFcdTA0M0VcdTA0NDJcdTA0M0FcdTA0MzBcdTA0NDFcdTA0M0VcdTA0MzRcdTA0MzVcdTA0NDBcdTA0MzZcdTA0MzhcdTA0M0NcdTA0M0VcdTA0MzNcdTA0M0V4cyBcdTA0M0VcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZ4cyBcdTA0M0ZcdTA0MzBcdTA0NDBcdTA0MzBcdTA0M0NcdTA0MzVcdTA0NDJcdTA0NDBcdTA0NEJcdTA0M0VcdTA0NDJcdTA0MzFcdTA0M0VcdTA0NDBcdTA0MzBcdTA0NDNcdTA0MzdcdTA0M0JcdTA0M0VcdTA0MzJkb20gXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDNEXHUwNDNFXHUwNDQxXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDNBanNvbiBcdTA0M0ZcdTA0M0VcdTA0MzdcdTA0MzhcdTA0NDZcdTA0MzhcdTA0NEZcdTA0MzJcdTA0MzRcdTA0M0VcdTA0M0FcdTA0NDNcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzVkb20gXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDMxXHUwNDM1XHUwNDNCXHUwNDRDXHUwNDNEXHUwNDRCXHUwNDM1XHUwNDQxXHUwNDM4XHUwNDNDXHUwNDMyXHUwNDNFXHUwNDNCXHUwNDRCeG1sIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzMFx1MDQ0Mlx1MDQ0MFx1MDQzOFx1MDQzMVx1MDQ0M1x1MDQ0Mlx1MDQzMHhtbCBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZqc29uIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzQVx1MDQzMFx1MDQzRFx1MDQzRVx1MDQzRFx1MDQzOFx1MDQ0N1x1MDQzNVx1MDQ0MVx1MDQzQVx1MDQzRVx1MDQzM1x1MDQzRXhtbCBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0MzVcdTA0M0RcdTA0NDJcdTA0NEJ4cyBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzVcdTA0NDBcdTA0M0FcdTA0Mzh4bWwgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM3XHUwNDQzXHUwNDNCXHUwNDRDXHUwNDQyXHUwNDMwXHUwNDQyXHUwNDMwZG9teHBhdGggXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDQzXHUwNDM3XHUwNDNCXHUwNDMwZG9tIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQ0M1x1MDQzN1x1MDQzQlx1MDQzMHhtbCBcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0MzB4bWwgXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDMwXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMwXHUwNDMyXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGeHMgXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDMwXHUwNDQyXHUwNDM0XHUwNDMwXHUwNDQyXHUwNDRCanNvbiBcdTA0NERcdTA0M0FcdTA0NDBcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDFcdTA0MzhcdTA0M0NcdTA0MzJcdTA0M0VcdTA0M0JcdTA0M0VcdTA0MzJqc29uICIsSz0iXHUwNDMyXHUwNDM4XHUwNDM0XHUwNDQxXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQzNFx1MDQzNVx1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzOFx1MDQzNVx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzMVx1MDQzRVx1MDQ0Mlx1MDQzQVx1MDQzOFx1MDQ0MFx1MDQzMFx1MDQ0MVx1MDQ0OFx1MDQzOFx1MDQ0NFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0M0RcdTA0MzBcdTA0M0ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDFcdTA0M0VcdTA0NDBcdTA0NDJcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDQwXHUwNDMwXHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDMyXHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDREXHUwNDNCXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDNFXHUwNDMyXHUwNDQwXHUwNDM1XHUwNDM3XHUwNDQzXHUwNDNCXHUwNDRDXHUwNDQyXHUwNDMwXHUwNDQyXHUwNDMwXHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQ0MFx1MDQzMFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzOFx1MDQ0Mlx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzMlx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0NDBcdTA0MzBcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0VcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzNcdTA0NDBcdTA0NDNcdTA0M0ZcdTA0M0ZcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDQwXHUwNDMwXHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNGXHUwNDNFXHUwNDNCXHUwNDM1XHUwNDM5XHUwNDMzXHUwNDQwXHUwNDQzXHUwNDNGXHUwNDNGXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQ0MFx1MDQzMFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Rlx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0NDBcdTA0MzBcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0VcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDBcdTA0MzVcdTA0M0FcdTA0MzJcdTA0MzhcdTA0MzdcdTA0MzhcdTA0NDJcdTA0M0VcdTA0MzJcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDQwXHUwNDMwXHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQwXHUwNDM1XHUwNDQxXHUwNDQzXHUwNDQwXHUwNDQxXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzMVx1MDQ0M1x1MDQ0NVx1MDQzM1x1MDQzMFx1MDQzQlx1MDQ0Mlx1MDQzNVx1MDQ0MFx1MDQ0MVx1MDQzQVx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQ0Mlx1MDQzQVx1MDQzMFx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0MzJcdTA0NEJcdTA0MzJcdTA0M0VcdTA0MzRcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M0FcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDMzXHUwNDQwXHUwNDQzXHUwNDNGXHUwNDNGXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzM1x1MDQ0MFx1MDQ0M1x1MDQzRlx1MDQzRlx1MDQ0Qlx1MDQ0RFx1MDQzQlx1MDQzNVx1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzRVx1MDQzMlx1MDQzRVx1MDQ0Mlx1MDQzMVx1MDQzRVx1MDQ0MFx1MDQzMFx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0MzRcdTA0M0VcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0RcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzhcdTA0M0VcdTA0MzRcdTA0MzBcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDM3XHUwNDMwXHUwNDMzXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDMwXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDM1XHUwNDM5XHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzQ1x1MDQzMFx1MDQzQVx1MDQzNVx1MDQ0Mlx1MDQzMFx1MDQzM1x1MDQ0MFx1MDQ0M1x1MDQzRlx1MDQzRlx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0NcdTA0MzBcdTA0M0FcdTA0MzVcdTA0NDJcdTA0MzBcdTA0M0VcdTA0MzFcdTA0M0JcdTA0MzBcdTA0NDFcdTA0NDJcdTA0MzhcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDQyXHUwNDNBXHUwNDMwXHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzRlx1MDQzNVx1MDQ0MFx1MDQzOFx1MDQzRVx1MDQzNFx1MDQzMFx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0NDBcdTA0MzBcdTA0MzdcdTA0M0NcdTA0MzVcdTA0NDlcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0NDJcdTA0MzVcdTA0M0FcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDQxXHUwNDMyXHUwNDRGXHUwNDM3XHUwNDM4XHUwNDNEXHUwNDMwXHUwNDMxXHUwNDNFXHUwNDQwXHUwNDNFXHUwNDMyXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQ0RFx1MDQzQlx1MDQzNVx1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzMFx1MDQ0MFx1MDQzNVx1MDQzN1x1MDQ0M1x1MDQzQlx1MDQ0Q1x1MDQ0Mlx1MDQzMFx1MDQ0Mlx1MDQzMFx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0NDBcdTA0MzBcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0VcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0JcdTA0MzVcdTA0MzNcdTA0MzVcdTA0M0RcdTA0MzRcdTA0NEJcdTA0MzRcdTA0MzhcdTA0MzBcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0NcdTA0M0NcdTA0NEJcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDNGXHUwNDQwXHUwNDM4XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNFXHUwNDQyXHUwNDMxXHUwNDNFXHUwNDQwXHUwNDMwXHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQzRVx1MDQ0Mlx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQ0RFx1MDQzQlx1MDQzNVx1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzOVx1MDQzQVx1MDQzOFx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0M0VcdTA0NDJcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0M0RcdTA0MzBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0MzVcdTA0M0FcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDQxXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDNFXHUwNDRGXHUwNDNEXHUwNDM4XHUwNDM1XHUwNDREXHUwNDNCXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDMwXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDM5XHUwNDNBXHUwNDM4XHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQ0MVx1MDQzRVx1MDQzMVx1MDQzMlx1MDQzRVx1MDQ0MVx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzRFx1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzNVx1MDQzQVx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0NDBcdTA0MzVcdTA0MzdcdTA0NDNcdTA0M0JcdTA0NENcdTA0NDJcdTA0MzBcdTA0NDJcdTA0MzAgXHUwNDM4XHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNGXHUwNDMwXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDM1XHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQzMFx1MDQzMlx1MDQ0Mlx1MDQzRVx1MDQzRlx1MDQzRVx1MDQzN1x1MDQzOFx1MDQ0Nlx1MDQzOFx1MDQ0Rlx1MDQ0MFx1MDQzNVx1MDQ0MVx1MDQ0M1x1MDQ0MFx1MDQ0MVx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0MzJcdTA0MzBcdTA0NDBcdTA0MzhcdTA0MzBcdTA0M0RcdTA0NDJcdTA0MzhcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NEZcdTA0MzNcdTA0NDBcdTA0NDNcdTA0M0ZcdTA0M0ZcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDQwXHUwNDMwXHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQwXHUwNDM1XHUwNDQxXHUwNDQzXHUwNDQwXHUwNDQxXHUwNDNFXHUwNDMyXHUwNDMyXHUwNDM0XHUwNDM4XHUwNDMwXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDM1XHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQ0NFx1MDQzOFx1MDQzQVx1MDQ0MVx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQ0Rlx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0MzhcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDNcdTA0NDFcdTA0M0JcdTA0M0VcdTA0MzJcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0M0VcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgIix3PSJcdTA0MzJcdTA0MzBcdTA0MzZcdTA0M0RcdTA0M0VcdTA0NDFcdTA0NDJcdTA0NENcdTA0MzhcdTA0M0RcdTA0NDJcdTA0MzVcdTA0NDBcdTA0M0RcdTA0MzVcdTA0NDJcdTA0M0ZcdTA0M0VcdTA0NDdcdTA0NDJcdTA0M0VcdTA0MzJcdTA0M0VcdTA0MzNcdTA0M0VcdTA0NDFcdTA0M0VcdTA0M0VcdTA0MzFcdTA0NDlcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDMxXHUwNDNFXHUwNDQyXHUwNDNBXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNBXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDM4XHUwNDNEXHUwNDQyXHUwNDM1XHUwNDQwXHUwNDNEXHUwNDM1XHUwNDQyXHUwNDNGXHUwNDNFXHUwNDQ3XHUwNDQyXHUwNDNFXHUwNDMyXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDQxXHUwNDNFXHUwNDNFXHUwNDMxXHUwNDQ5XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQ0MVx1MDQzRVx1MDQzMVx1MDQzQVx1MDQzRVx1MDQzNFx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzOFx1MDQzRFx1MDQ0Mlx1MDQzNVx1MDQ0MFx1MDQzRFx1MDQzNVx1MDQ0Mlx1MDQzRlx1MDQzRVx1MDQ0N1x1MDQ0Mlx1MDQzRVx1MDQzMlx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzMlx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0NDFcdTA0M0VcdTA0MzFcdTA0M0FcdTA0M0VcdTA0MzRcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NEZcdTA0M0RcdTA0MzVhc2NpaVx1MDQ0MVx1MDQzOFx1MDQzQ1x1MDQzMlx1MDQzRVx1MDQzQlx1MDQzRVx1MDQzMlx1MDQzOFx1MDQzRFx1MDQ0Mlx1MDQzNVx1MDQ0MFx1MDQzRFx1MDQzNVx1MDQ0Mlx1MDQzRlx1MDQzRVx1MDQ0N1x1MDQ0Mlx1MDQzRVx1MDQzMlx1MDQzRVx1MDQzM1x1MDQzRVx1MDQ0MVx1MDQzRVx1MDQzRVx1MDQzMVx1MDQ0OVx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0NDJcdTA0MzVcdTA0M0FcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0ZcdTA0M0VcdTA0NDdcdTA0NDJcdTA0M0VcdTA0MzJcdTA0M0VcdTA0MzNcdTA0M0VcdTA0NDFcdTA0M0VcdTA0M0VcdTA0MzFcdTA0NDlcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDQyXHUwNDNFXHUwNDNBXHUwNDNFXHUwNDNCXHUwNDM4XHUwNDNEXHUwNDQyXHUwNDM1XHUwNDQwXHUwNDNEXHUwNDM1XHUwNDQyXHUwNDNGXHUwNDNFXHUwNDQ3XHUwNDQyXHUwNDRCIFx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQ0Mlx1MDQ0M1x1MDQ0MVx1MDQ0MFx1MDQzMFx1MDQzN1x1MDQzMVx1MDQzRVx1MDQ0MFx1MDQzMFx1MDQzRlx1MDQzRVx1MDQ0N1x1MDQ0Mlx1MDQzRVx1MDQzMlx1MDQzRVx1MDQzM1x1MDQzRVx1MDQ0MVx1MDQzRVx1MDQzRVx1MDQzMVx1MDQ0OVx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiAiLFg9Ilx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzRFx1MDQzN1x1MDQzMFx1MDQzQVx1MDQ0Nlx1MDQzOFx1MDQzOFx1MDQzN1x1MDQzMFx1MDQzRlx1MDQzOFx1MDQ0MVx1MDQzOFx1MDQzNlx1MDQ0M1x1MDQ0MFx1MDQzRFx1MDQzMFx1MDQzQlx1MDQzMFx1MDQ0MFx1MDQzNVx1MDQzM1x1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOCBcdTA0NDFcdTA0NDJcdTA0MzBcdTA0NDJcdTA0NDNcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M0RcdTA0MzdcdTA0MzBcdTA0M0FcdTA0NDZcdTA0MzhcdTA0MzhcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0MzhcdTA0NDFcdTA0MzhcdTA0MzZcdTA0NDNcdTA0NDBcdTA0M0RcdTA0MzBcdTA0M0JcdTA0MzBcdTA0NDBcdTA0MzVcdTA0MzNcdTA0MzhcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0NDZcdTA0MzhcdTA0MzggXHUwNDQzXHUwNDQwXHUwNDNFXHUwNDMyXHUwNDM1XHUwNDNEXHUwNDRDXHUwNDM2XHUwNDQzXHUwNDQwXHUwNDNEXHUwNDMwXHUwNDNCXHUwNDMwXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM4ICIsY2U9Ilx1MDQ0MFx1MDQzMFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0NVx1MDQ0MFx1MDQzMFx1MDQzRFx1MDQzOFx1MDQzQlx1MDQzOFx1MDQ0OVx1MDQzMFx1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQ0Mlx1MDQzOFx1MDQ0NFx1MDQzOFx1MDQzQVx1MDQzMFx1MDQ0Mlx1MDQzRVx1MDQzMlx1MDQzQVx1MDQ0MFx1MDQzOFx1MDQzRlx1MDQ0Mlx1MDQzRVx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQ0NFx1MDQzOFx1MDQzOCBcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0MzJcdTA0M0FcdTA0M0JcdTA0NEVcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0NDFcdTA0MzVcdTA0NDBcdTA0NDJcdTA0MzhcdTA0NDRcdTA0MzhcdTA0M0FcdTA0MzBcdTA0NDJcdTA0M0VcdTA0MzJcdTA0M0FcdTA0NDBcdTA0MzhcdTA0M0ZcdTA0NDJcdTA0M0VcdTA0MzNcdTA0NDBcdTA0MzBcdTA0NDRcdTA0MzhcdTA0MzggXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDNBXHUwNDM4XHUwNDQxXHUwNDM1XHUwNDQwXHUwNDQyXHUwNDM4XHUwNDQ0XHUwNDM4XHUwNDNBXHUwNDMwXHUwNDQyXHUwNDMwXHUwNDNBXHUwNDQwXHUwNDM4XHUwNDNGXHUwNDQyXHUwNDNFXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDQ0XHUwNDM4XHUwNDM4IFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQ0NVx1MDQ0MFx1MDQzMFx1MDQzRFx1MDQzOFx1MDQzQlx1MDQzOFx1MDQ0OVx1MDQzMFx1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQ0Mlx1MDQzOFx1MDQ0NFx1MDQzOFx1MDQzQVx1MDQzMFx1MDQ0Mlx1MDQzRVx1MDQzMlx1MDQzQVx1MDQ0MFx1MDQzOFx1MDQzRlx1MDQ0Mlx1MDQzRVx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQ0NFx1MDQzOFx1MDQzOCAiLGFlPSJcdTA0M0FcdTA0M0VcdTA0MzRcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzBcdTA0MzhcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0M0VcdTA0MzJcdTA0MzJ6aXBcdTA0NDRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0MzUgXHUwNDNDXHUwNDM1XHUwNDQyXHUwNDNFXHUwNDM0XHUwNDQxXHUwNDM2XHUwNDMwXHUwNDQyXHUwNDM4XHUwNDRGemlwIFx1MDQzQ1x1MDQzNVx1MDQ0Mlx1MDQzRVx1MDQzNFx1MDQ0OFx1MDQzOFx1MDQ0NFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0RnppcCBcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0MzJcdTA0M0VcdTA0NDFcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0M0ZcdTA0NDNcdTA0NDJcdTA0MzVcdTA0MzlcdTA0NDRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0M0VcdTA0MzJ6aXAgXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDMxXHUwNDNFXHUwNDQyXHUwNDNBXHUwNDM4XHUwNDNGXHUwNDNFXHUwNDM0XHUwNDNBXHUwNDMwXHUwNDQyXHUwNDMwXHUwNDNCXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDMyemlwIFx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQ0MVx1MDQzRVx1MDQ0NVx1MDQ0MFx1MDQzMFx1MDQzRFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzRlx1MDQ0M1x1MDQ0Mlx1MDQzNVx1MDQzOXppcCBcdTA0NDNcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzVcdTA0M0RcdTA0NENcdTA0NDFcdTA0MzZcdTA0MzBcdTA0NDJcdTA0MzhcdTA0NEZ6aXAgIixaPSJcdTA0MzdcdTA0MzJcdTA0NDNcdTA0M0FcdTA0M0VcdTA0MzJcdTA0M0VcdTA0MzVcdTA0M0VcdTA0M0ZcdTA0M0VcdTA0MzJcdTA0MzVcdTA0NDlcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzUgXHUwNDNEXHUwNDMwXHUwNDNGXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDQ1XHUwNDNFXHUwNDM0XHUwNDMwXHUwNDNBXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDNBXHUwNDM1IFx1MDQzRlx1MDQzRVx1MDQzN1x1MDQzOFx1MDQ0Nlx1MDQzOFx1MDQ0Rlx1MDQzMlx1MDQzRlx1MDQzRVx1MDQ0Mlx1MDQzRVx1MDQzQVx1MDQzNSBcdTA0M0ZcdTA0M0VcdTA0NDBcdTA0NEZcdTA0MzRcdTA0M0VcdTA0M0FcdTA0MzFcdTA0MzBcdTA0MzlcdTA0NDJcdTA0M0VcdTA0MzIgXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDMxXHUwNDNCXHUwNDNFXHUwNDNBXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQ0M1x1MDQzRlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzMVx1MDQzQlx1MDQzRVx1MDQzQVx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzRVx1MDQzOVx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzJcdTA0MzhcdTA0NDFcdTA0MzJcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0MzVcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDVcdTA0M0ZcdTA0M0VcdTA0M0FcdTA0NDNcdTA0M0ZcdTA0M0VcdTA0M0EgXHUwNDQxXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDNFXHUwNDRGXHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQ0XHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDM3XHUwNDMwXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzRlx1MDQzRVx1MDQzNFx1MDQzRlx1MDQzOFx1MDQ0MVx1MDQ0N1x1MDQzOFx1MDQzQVx1MDQzMFx1MDQzNFx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzMlx1MDQzQlx1MDQ0Rlx1MDQzNVx1MDQzQ1x1MDQ0Qlx1MDQ0NVx1MDQ0M1x1MDQzMlx1MDQzNVx1MDQzNFx1MDQzRVx1MDQzQ1x1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzOSBcdTA0NDNcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzVcdTA0M0RcdTA0NENcdTA0MzhcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NEZcdTA0MzdcdTA0MzBcdTA0NDlcdTA0MzhcdTA0NDlcdTA0MzVcdTA0M0RcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0NDFcdTA0M0VcdTA0MzVcdTA0MzRcdTA0MzhcdTA0M0RcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZmdHAgIixKPSJcdTA0M0RcdTA0MzBcdTA0M0ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0ZcdTA0M0VcdTA0NDBcdTA0NEZcdTA0MzRcdTA0M0FcdTA0MzBcdTA0NDFcdTA0NDVcdTA0MzVcdTA0M0NcdTA0NEJcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDFcdTA0MzAgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDM0XHUwNDNFXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDNFXHUwNDM0XHUwNDMwXHUwNDNDXHUwNDM4XHUwNDQxXHUwNDQ1XHUwNDM1XHUwNDNDXHUwNDRCXHUwNDM3XHUwNDMwXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDQxXHUwNDMwIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzQVx1MDQzRVx1MDQzRFx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQzRVx1MDQzOVx1MDQ0Mlx1MDQzRVx1MDQ0N1x1MDQzQVx1MDQzOFx1MDQ0MVx1MDQ0NVx1MDQzNVx1MDQzQ1x1MDQ0Qlx1MDQzN1x1MDQzMFx1MDQzRlx1MDQ0MFx1MDQzRVx1MDQ0MVx1MDQzMCBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0VcdTA0MzFcdTA0NEFcdTA0MzVcdTA0MzRcdTA0MzhcdTA0M0RcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0NDFcdTA0NDVcdTA0MzVcdTA0M0NcdTA0NEJcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDFcdTA0MzAgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDNGXHUwNDMwXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDM1XHUwNDQyXHUwNDQwXHUwNDMwXHUwNDM0XHUwNDNFXHUwNDQxXHUwNDQyXHUwNDQzXHUwNDNGXHUwNDNEXHUwNDNFXHUwNDM5XHUwNDQyXHUwNDMwXHUwNDMxXHUwNDNCXHUwNDM4XHUwNDQ2XHUwNDRCXHUwNDQxXHUwNDQ1XHUwNDM1XHUwNDNDXHUwNDRCXHUwNDM3XHUwNDMwXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDQxXHUwNDMwIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQ0MVx1MDQzRVx1MDQzNVx1MDQzNFx1MDQzOFx1MDQzRFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQ0MVx1MDQ0NVx1MDQzNVx1MDQzQ1x1MDQ0Qlx1MDQzN1x1MDQzMFx1MDQzRlx1MDQ0MFx1MDQzRVx1MDQ0MVx1MDQzMCAiLG9lPSJodHRwXHUwNDNDXHUwNDM1XHUwNDQyXHUwNDNFXHUwNDM0IFx1MDQzMFx1MDQzMlx1MDQ0Mlx1MDQzRVx1MDQzOFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzRVx1MDQzMVx1MDQ0OVx1MDQzNVx1MDQzM1x1MDQzRVx1MDQ0MFx1MDQzNVx1MDQzQVx1MDQzMlx1MDQzOFx1MDQzN1x1MDQzOFx1MDQ0Mlx1MDQzMCBcdTA0MzBcdTA0MzJcdTA0NDJcdTA0M0VcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0NDRcdTA0MzhcdTA0M0FcdTA0NDFcdTA0M0RcdTA0M0VcdTA0M0NcdTA0MzVcdTA0NDBcdTA0MzBcdTA0MzdcdTA0MzBcdTA0MzRcdTA0MzBcdTA0NDdcdTA0MzggXHUwNDMyXHUwNDMwXHUwNDQwXHUwNDM4XHUwNDMwXHUwNDNEXHUwNDQyXHUwNDMyXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDM1XHUwNDNEXHUwNDNEXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDRGXHUwNDM3XHUwNDRCXHUwNDNBXHUwNDMwIFx1MDQzMlx1MDQzOFx1MDQzNFx1MDQzOFx1MDQzNVx1MDQ0MFx1MDQzMFx1MDQ0MFx1MDQ0NVx1MDQzOFx1MDQzOCBcdTA0MzJcdTA0MzhcdTA0MzRcdTA0NDBcdTA0MzVcdTA0MzNcdTA0MzhcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M0RcdTA0MzBcdTA0M0FcdTA0M0VcdTA0M0ZcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDMyXHUwNDM4XHUwNDM0XHUwNDQyXHUwNDMwXHUwNDMxXHUwNDNCXHUwNDM4XHUwNDQ2XHUwNDRCXHUwNDMyXHUwNDNEXHUwNDM1XHUwNDQ4XHUwNDNEXHUwNDM1XHUwNDMzXHUwNDNFXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDNFXHUwNDQ3XHUwNDNEXHUwNDM4XHUwNDNBXHUwNDMwXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQzN1x1MDQzMFx1MDQzRlx1MDQzOFx1MDQ0MVx1MDQ0Q1x1MDQzNFx1MDQzMlx1MDQzOFx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzOVx1MDQzRlx1MDQ0MFx1MDQzOFx1MDQzRlx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzNVx1MDQzNFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzOCBcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0RcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0ZcdTA0M0VcdTA0NDFcdTA0M0JcdTA0MzVcdTA0MzRcdTA0M0VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M0JcdTA0NENcdTA0M0RcdTA0M0VcdTA0NDFcdTA0NDJcdTA0MzVcdTA0MzkgXHUwNDM4XHUwNDNEXHUwNDM0XHUwNDM1XHUwNDNBXHUwNDQxXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1IFx1MDQzOFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzMVx1MDQzMFx1MDQzN1x1MDQ0Qlx1MDQzRlx1MDQzQlx1MDQzMFx1MDQzRFx1MDQzMFx1MDQzMlx1MDQzOFx1MDQzNFx1MDQzRVx1MDQzMlx1MDQ0MFx1MDQzMFx1MDQ0MVx1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQzMCBcdTA0MzhcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzFcdTA0NEJcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0MzNcdTA0M0VcdTA0MzJcdTA0NEJcdTA0MzFcdTA0M0VcdTA0NDBcdTA0MzAgXHUwNDM4XHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNFXHUwNDMxXHUwNDQ5XHUwNDM1XHUwNDMzXHUwNDNFXHUwNDQwXHUwNDM1XHUwNDNBXHUwNDMyXHUwNDM4XHUwNDM3XHUwNDM4XHUwNDQyXHUwNDMwIFx1MDQzOFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzRlx1MDQzRVx1MDQzNFx1MDQ0N1x1MDQzOFx1MDQzRFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0MzhcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0RcdTA0M0VcdTA0NDJcdTA0MzVcdTA0M0FcdTA0NDFcdTA0NDJcdTA0M0VcdTA0MzJcdTA0M0VcdTA0MzNcdTA0M0VcdTA0M0ZcdTA0M0VcdTA0MzhcdTA0NDFcdTA0M0FcdTA0MzAgXHUwNDM4XHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQwXHUwNDMwXHUwNDM3XHUwNDM0XHUwNDM1XHUwNDNCXHUwNDRGXHUwNDM1XHUwNDNDXHUwNDRCXHUwNDQ1XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDNFXHUwNDMxXHUwNDQ5XHUwNDM1XHUwNDMzXHUwNDNFXHUwNDQwXHUwNDM1XHUwNDNBXHUwNDMyXHUwNDM4XHUwNDM3XHUwNDM4XHUwNDQyXHUwNDMwIFx1MDQzOFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzQVx1MDQzMlx1MDQzOFx1MDQzN1x1MDQzOFx1MDQ0Mlx1MDQzMCBcdTA0M0RcdTA0MzBcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzhcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NEZcdTA0M0ZcdTA0NDBcdTA0MzhcdTA0M0JcdTA0M0VcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDNEXHUwNDMwXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQwXHUwNDMwXHUwNDQxXHUwNDQ4XHUwNDM4XHUwNDQwXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNBXHUwNDNFXHUwNDNEXHUwNDQ0XHUwNDM4XHUwNDMzXHUwNDQzXHUwNDQwXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQzRFx1MDQzMFx1MDQzRlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzRlx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQzMFx1MDQ0N1x1MDQzOCBcdTA0M0VcdTA0MzFcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0M0VcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M0JcdTA0MzVcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDVcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDNFXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDMwXHUwNDQyXHUwNDM4XHUwNDMyXHUwNDNEXHUwNDNFXHUwNDM1XHUwNDNGXHUwNDQwXHUwNDNFXHUwNDMyXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1IFx1MDQzRVx1MDQ0MVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzRFx1MDQzRVx1MDQzNVx1MDQzRlx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzMlx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzMlx1MDQzOFx1MDQzNFx1MDQzMFx1MDQ0MFx1MDQzMFx1MDQ0MVx1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQzMCBcdTA0M0VcdTA0NDFcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0RcdTA0M0VcdTA0MzVcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0NDFcdTA0NDJcdTA0MzBcdTA0MzJcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzJcdTA0MzhcdTA0MzRcdTA0MzBcdTA0NDVcdTA0MzBcdTA0NDBcdTA0MzBcdTA0M0FcdTA0NDJcdTA0MzVcdTA0NDBcdTA0MzhcdTA0NDFcdTA0NDJcdTA0MzhcdTA0M0FcdTA0MzggXHUwNDNFXHUwNDQxXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNEXHUwNDNFXHUwNDM1XHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMwXHUwNDMyXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDM3XHUwNDMwXHUwNDM0XHUwNDMwXHUwNDQ3XHUwNDM4IFx1MDQzRVx1MDQ0MVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzRFx1MDQzRVx1MDQzNVx1MDQzRlx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzMlx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzRlx1MDQzQlx1MDQzMFx1MDQzRFx1MDQzMFx1MDQzRVx1MDQzMVx1MDQzQ1x1MDQzNVx1MDQzRFx1MDQzMCBcdTA0M0VcdTA0NDFcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0RcdTA0M0VcdTA0MzVcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0NDFcdTA0NDJcdTA0MzBcdTA0MzJcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDFcdTA0M0ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M0VcdTA0NDdcdTA0M0RcdTA0MzhcdTA0M0FcdTA0MzAgXHUwNDNFXHUwNDQxXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNEXHUwNDNFXHUwNDM1XHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMwXHUwNDMyXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQxXHUwNDQ3XHUwNDM1XHUwNDQyXHUwNDMwIFx1MDQzRlx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzQ1x1MDQzNVx1MDQ0OVx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0Nlx1MDQ0Qlx1MDQzRlx1MDQ0MFx1MDQzOFx1MDQzRlx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzNVx1MDQzNFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzOCBcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzhcdTA0M0VcdTA0MzRcdTA0MzhcdTA0NDdcdTA0M0RcdTA0M0VcdTA0NDFcdTA0NDJcdTA0NENcdTA0M0RcdTA0M0VcdTA0M0NcdTA0MzVcdTA0NDBcdTA0MzBcdTA0MzFcdTA0MzhcdTA0MzdcdTA0M0RcdTA0MzVcdTA0NDFcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDZcdTA0MzVcdTA0NDFcdTA0NDFcdTA0MzAgXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDNFXHUwNDM0XHUwNDM4XHUwNDQ3XHUwNDNEXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDRDXHUwNDNEXHUwNDNFXHUwNDNDXHUwNDM1XHUwNDQwXHUwNDMwXHUwNDM0XHUwNDNFXHUwNDNBXHUwNDQzXHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwIFx1MDQzRlx1MDQzNVx1MDQ0MFx1MDQzOFx1MDQzRVx1MDQzNFx1MDQzOFx1MDQ0N1x1MDQzRFx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQ0Q1x1MDQ0MFx1MDQzNVx1MDQzM1x1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQ0MFx1MDQzMFx1MDQ0MVx1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQzMCBcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzhcdTA0M0VcdTA0MzRcdTA0MzhcdTA0NDdcdTA0M0RcdTA0M0VcdTA0NDFcdTA0NDJcdTA0NENcdTA0NDBcdTA0MzVcdTA0MzNcdTA0MzhcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0NDFcdTA0MzJcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzkgXHUwNDNGXHUwNDNFXHUwNDMyXHUwNDQyXHUwNDNFXHUwNDQwXHUwNDNEXHUwNDNFXHUwNDM1XHUwNDM4XHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1XHUwNDMyXHUwNDNFXHUwNDM3XHUwNDMyXHUwNDQwXHUwNDMwXHUwNDQ5XHUwNDMwXHUwNDM1XHUwNDNDXHUwNDRCXHUwNDQ1XHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM5IFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRFx1MDQzRVx1MDQ0Mlx1MDQzNVx1MDQzQVx1MDQ0MVx1MDQ0Mlx1MDQzRVx1MDQzMlx1MDQ0Qlx1MDQzOVx1MDQzRlx1MDQzRVx1MDQzOFx1MDQ0MVx1MDQzQVx1MDQzRlx1MDQ0MFx1MDQzOFx1MDQzMlx1MDQzMlx1MDQzRVx1MDQzNFx1MDQzNVx1MDQzRlx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzQVx1MDQzNSBcdTA0M0ZcdTA0NDBcdTA0MzhcdTA0M0RcdTA0MzBcdTA0MzRcdTA0M0JcdTA0MzVcdTA0MzZcdTA0M0RcdTA0M0VcdTA0NDFcdTA0NDJcdTA0NENcdTA0M0VcdTA0MzFcdTA0NEFcdTA0MzVcdTA0M0FcdTA0NDJcdTA0MzAgXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDMyXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1IFx1MDQ0MFx1MDQzMFx1MDQzN1x1MDQzNFx1MDQzNVx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzMFx1MDQ0M1x1MDQ0Mlx1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzOFx1MDQ0NFx1MDQzOFx1MDQzQVx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOFx1MDQzRVx1MDQzMVx1MDQ0OVx1MDQzNVx1MDQzM1x1MDQzRVx1MDQ0MFx1MDQzNVx1MDQzQVx1MDQzMlx1MDQzOFx1MDQzN1x1MDQzOFx1MDQ0Mlx1MDQzMCBcdTA0NDBcdTA0MzBcdTA0MzdcdTA0MzRcdTA0MzVcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDVcdTA0M0VcdTA0MzFcdTA0NDlcdTA0MzVcdTA0MzNcdTA0M0VcdTA0NDBcdTA0MzVcdTA0M0FcdTA0MzJcdTA0MzhcdTA0MzdcdTA0MzhcdTA0NDJcdTA0MzAgXHUwNDQwXHUwNDMwXHUwNDM3XHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQwXHUwNDMwXHUwNDQxXHUwNDQ4XHUwNDM4XHUwNDQwXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM5XHUwNDNBXHUwNDNFXHUwNDNEXHUwNDQ0XHUwNDM4XHUwNDMzXHUwNDQzXHUwNDQwXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM4XHUwNDNFXHUwNDMxXHUwNDQ5XHUwNDM1XHUwNDMzXHUwNDNFXHUwNDQwXHUwNDM1XHUwNDNBXHUwNDMyXHUwNDM4XHUwNDM3XHUwNDM4XHUwNDQyXHUwNDMwIFx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQzMFx1MDQzMlx1MDQ0Mlx1MDQzRVx1MDQzRFx1MDQ0M1x1MDQzQ1x1MDQzNVx1MDQ0MFx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOFx1MDQzRVx1MDQzMVx1MDQ0QVx1MDQzNVx1MDQzQVx1MDQ0Mlx1MDQzRVx1MDQzMiBcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0MzhcdTA0NDFcdTA0MzhcdTA0NDBcdTA0MzVcdTA0MzNcdTA0MzhcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzAgXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDM4XHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNDXHUwNDNFXHUwNDM0XHUwNDMwXHUwNDNCXHUwNDRDXHUwNDNEXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDM4IFx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQzOFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQ0MVx1MDQzOFx1MDQzRFx1MDQ0NVx1MDQ0MFx1MDQzRVx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NVx1MDQzMlx1MDQ0Qlx1MDQzN1x1MDQzRVx1MDQzMlx1MDQzRVx1MDQzMlx1MDQ0MFx1MDQzMFx1MDQ0MVx1MDQ0OFx1MDQzOFx1MDQ0MFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzOVx1MDQzRlx1MDQzQlx1MDQzMFx1MDQ0Mlx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQ0Qlx1MDQzOFx1MDQzMlx1MDQzRFx1MDQzNVx1MDQ0OFx1MDQzRFx1MDQzOFx1MDQ0NVx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzNVx1MDQzRFx1MDQ0MiBcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0MzJcdTA0NDJcdTA0M0VcdTA0NDBcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0MzhcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NEZcdTA0NDFcdTA0MzVcdTA0MzBcdTA0M0RcdTA0NDFcdTA0M0VcdTA0MzIgXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDMyXHUwNDRCXHUwNDMxXHUwNDNFXHUwNDQwXHUwNDMwXHUwNDNGXHUwNDQwXHUwNDM4XHUwNDMyXHUwNDMyXHUwNDNFXHUwNDM0XHUwNDM1XHUwNDNGXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDNBXHUwNDM1IFx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQ0MVx1MDQzRVx1MDQzMlx1MDQzQ1x1MDQzNVx1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQzQ1x1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQzOCBcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0NDFcdTA0M0VcdTA0MzJcdTA0M0NcdTA0MzVcdTA0NDFcdTA0NDJcdTA0MzhcdTA0M0NcdTA0M0VcdTA0NDFcdTA0NDJcdTA0MzhcdTA0MzhcdTA0M0RcdTA0NDJcdTA0MzVcdTA0NDBcdTA0NDRcdTA0MzVcdTA0MzlcdTA0NDFcdTA0MzAgXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDQzXHUwNDNGXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDMxXHUwNDNCXHUwNDNFXHUwNDNBXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDNFXHUwNDM5XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDNGXHUwNDNFXHUwNDQzXHUwNDNDXHUwNDNFXHUwNDNCXHUwNDQ3XHUwNDMwXHUwNDNEXHUwNDM4XHUwNDRFIFx1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzQVx1MDQzRVx1MDQzNFx1MDQzRVx1MDQzMlx1MDQzRlx1MDQzQlx1MDQzMFx1MDQzRFx1MDQzMFx1MDQzMlx1MDQzOFx1MDQzNFx1MDQzRVx1MDQzMlx1MDQ0NVx1MDQzMFx1MDQ0MFx1MDQzMFx1MDQzQVx1MDQ0Mlx1MDQzNVx1MDQ0MFx1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQzQSBcdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzhcdTA0MzhcdTA0M0FcdTA0M0VcdTA0MzRcdTA0M0VcdTA0MzJcdTA0M0ZcdTA0M0JcdTA0MzBcdTA0M0RcdTA0MzBcdTA0NDFcdTA0NDdcdTA0MzVcdTA0NDJcdTA0M0VcdTA0MzIgXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNBXHUwNDNFXHUwNDM0XHUwNDNFXHUwNDMyXHUwNDQxXHUwNDNGXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNFXHUwNDQ3XHUwNDNEXHUwNDM4XHUwNDNBXHUwNDMwIFx1MDQ0MVx1MDQzRVx1MDQzN1x1MDQzNFx1MDQzMFx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzRlx1MDQ0MFx1MDQzOFx1MDQzMlx1MDQzMlx1MDQzRVx1MDQzNFx1MDQzNSBcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0NDFcdTA0M0VcdTA0MzFcdTA0MzJcdTA0NEJcdTA0MzFcdTA0M0VcdTA0NDBcdTA0MzAgXHUwNDQxXHUwNDNGXHUwNDNFXHUwNDQxXHUwNDNFXHUwNDMxXHUwNDNGXHUwNDNFXHUwNDM4XHUwNDQxXHUwNDNBXHUwNDMwXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDNBXHUwNDM4XHUwNDNGXHUwNDQwXHUwNDM4XHUwNDMyXHUwNDMyXHUwNDNFXHUwNDM0XHUwNDM1XHUwNDNGXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDNBXHUwNDM1IFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQ0MVx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQzMFx1MDQzQVx1MDQ0Mlx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDVcdTA0NDJcdTA0MzBcdTA0MzFcdTA0M0JcdTA0MzhcdTA0NDZcdTA0NEJcdTA0MzJcdTA0M0RcdTA0MzVcdTA0NDhcdTA0M0RcdTA0MzVcdTA0MzNcdTA0M0VcdTA0MzhcdTA0NDFcdTA0NDJcdTA0M0VcdTA0NDdcdTA0M0RcdTA0MzhcdTA0M0FcdTA0MzBcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDNBXHUwNDNFXHUwNDM0XHUwNDMwXHUwNDNGXHUwNDNCXHUwNDMwXHUwNDNEXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDM0XHUwNDNFXHUwNDMyXHUwNDQwXHUwNDMwXHUwNDQxXHUwNDQ3XHUwNDM1XHUwNDQyXHUwNDMwIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzQVx1MDQzRVx1MDQzNFx1MDQzMFx1MDQ0MVx1MDQzRlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzRVx1MDQ0N1x1MDQzRFx1MDQzOFx1MDQzQVx1MDQzMCBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0NcdTA0MzBcdTA0M0FcdTA0MzVcdTA0NDJcdTA0MzAgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDNEXHUwNDNFXHUwNDNDXHUwNDM1XHUwNDQwXHUwNDMwXHUwNDMxXHUwNDM4XHUwNDM3XHUwNDNEXHUwNDM1XHUwNDQxXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDQ2XHUwNDM1XHUwNDQxXHUwNDQxXHUwNDMwIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzRFx1MDQzRVx1MDQzQ1x1MDQzNVx1MDQ0MFx1MDQzMFx1MDQzNFx1MDQzRVx1MDQzQVx1MDQ0M1x1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzMCBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0RcdTA0M0VcdTA0M0NcdTA0MzVcdTA0NDBcdTA0MzBcdTA0MzdcdTA0MzBcdTA0MzRcdTA0MzBcdTA0NDdcdTA0MzggXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDRCIFx1MDQ0M1x1MDQzNFx1MDQzMFx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzNFx1MDQzMlx1MDQzOFx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzOSAiLHNlPSJcdTA0MzJcdTA0MzBcdTA0MzZcdTA0M0RcdTA0M0VcdTA0NDFcdTA0NDJcdTA0NENcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0MzFcdTA0M0JcdTA0MzVcdTA0M0NcdTA0NEJcdTA0M0ZcdTA0NDBcdTA0MzhcdTA0M0NcdTA0MzVcdTA0M0RcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0NDBcdTA0MzBcdTA0NDFcdTA0NDhcdTA0MzhcdTA0NDBcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0M0FcdTA0M0VcdTA0M0RcdTA0NDRcdTA0MzhcdTA0MzNcdTA0NDNcdTA0NDBcdTA0MzBcdTA0NDZcdTA0MzhcdTA0MzggXHUwNDMyXHUwNDMwXHUwNDQwXHUwNDM4XHUwNDMwXHUwNDNEXHUwNDQyXHUwNDM4XHUwNDNEXHUwNDQyXHUwNDM1XHUwNDQwXHUwNDQ0XHUwNDM1XHUwNDM5XHUwNDQxXHUwNDMwXHUwNDNBXHUwNDNCXHUwNDM4XHUwNDM1XHUwNDNEXHUwNDQyXHUwNDQxXHUwNDNBXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDNGXHUwNDQwXHUwNDM4XHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQzMlx1MDQzMFx1MDQ0MFx1MDQzOFx1MDQzMFx1MDQzRFx1MDQ0Mlx1MDQzQ1x1MDQzMFx1MDQ0MVx1MDQ0OFx1MDQ0Mlx1MDQzMFx1MDQzMVx1MDQzMFx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQzQVx1MDQzQlx1MDQzOFx1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQ0MVx1MDQzQVx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzRlx1MDQ0MFx1MDQzOFx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0MzJcdTA0MzBcdTA0NDBcdTA0MzhcdTA0MzBcdTA0M0RcdTA0NDJcdTA0M0VcdTA0NDFcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0NDhcdTA0NDBcdTA0MzhcdTA0NDRcdTA0NDJcdTA0MzBcdTA0M0FcdTA0M0JcdTA0MzhcdTA0MzVcdTA0M0RcdTA0NDJcdTA0NDFcdTA0M0FcdTA0M0VcdTA0MzNcdTA0M0VcdTA0M0ZcdTA0NDBcdTA0MzhcdTA0M0JcdTA0M0VcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDMyXHUwNDMwXHUwNDQwXHUwNDM4XHUwNDMwXHUwNDNEXHUwNDQyXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDM0XHUwNDMwXHUwNDQwXHUwNDQyXHUwNDNEXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDNFXHUwNDM0XHUwNDMwIFx1MDQzMlx1MDQzMFx1MDQ0MFx1MDQzOFx1MDQzMFx1MDQzRFx1MDQ0Mlx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzNFx1MDQzMFx1MDQ0MFx1MDQ0Mlx1MDQzRFx1MDQzRVx1MDQzOVx1MDQzNFx1MDQzMFx1MDQ0Mlx1MDQ0Qlx1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzMFx1MDQzQlx1MDQzMCBcdTA0MzJcdTA0MzhcdTA0MzRcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NDZcdTA0NEIgXHUwNDMyXHUwNDM4XHUwNDM0XHUwNDNBXHUwNDMwXHUwNDQwXHUwNDQyXHUwNDM4XHUwNDNEXHUwNDNBXHUwNDM4IFx1MDQzMlx1MDQzOFx1MDQzNFx1MDQzRVx1MDQ0Mlx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRFx1MDQzRVx1MDQ0Mlx1MDQzNVx1MDQzQVx1MDQ0MVx1MDQ0Mlx1MDQzRVx1MDQzMlx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzRlx1MDQzRVx1MDQzOFx1MDQ0MVx1MDQzQVx1MDQzMCBcdTA0MzJcdTA0MzhcdTA0MzRcdTA0NDBcdTA0MzBcdTA0M0NcdTA0M0FcdTA0MzggXHUwNDMyXHUwNDM4XHUwNDM0XHUwNDQxXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQzMlx1MDQzOFx1MDQzNFx1MDQ0Nlx1MDQzMlx1MDQzNVx1MDQ0Mlx1MDQzMCBcdTA0MzJcdTA0MzhcdTA0MzRcdTA0NDdcdTA0MzhcdTA0NDFcdTA0M0JcdTA0M0VcdTA0MzJcdTA0M0VcdTA0MzNcdTA0M0VcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDMyXHUwNDM4XHUwNDM0XHUwNDQ4XHUwNDQwXHUwNDM4XHUwNDQ0XHUwNDQyXHUwNDMwIFx1MDQzNFx1MDQzRVx1MDQzRlx1MDQ0M1x1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQzQ1x1MDQzMFx1MDQ0Rlx1MDQzNFx1MDQzQlx1MDQzOFx1MDQzRFx1MDQzMCBcdTA0MzRcdTA0M0VcdTA0M0ZcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzhcdTA0M0NcdTA0NEJcdTA0MzlcdTA0MzdcdTA0M0RcdTA0MzBcdTA0M0EgXHUwNDM4XHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1Ynl0ZW9yZGVybWFyayBcdTA0MzhcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0NcdTA0MzVcdTA0NDJcdTA0MzBcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDVcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0RcdTA0M0VcdTA0NDJcdTA0MzVcdTA0M0FcdTA0NDFcdTA0NDJcdTA0M0VcdTA0MzJcdTA0M0VcdTA0MzNcdTA0M0VcdTA0M0ZcdTA0M0VcdTA0MzhcdTA0NDFcdTA0M0FcdTA0MzAgXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDNFXHUwNDQ3XHUwNDNEXHUwNDM4XHUwNDNBXHUwNDQwXHUwNDMwXHUwNDQxXHUwNDQ4XHUwNDM4XHUwNDQwXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM5XHUwNDNBXHUwNDNFXHUwNDNEXHUwNDQ0XHUwNDM4XHUwNDMzXHUwNDQzXHUwNDQwXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQzQVx1MDQzQlx1MDQzMFx1MDQzMlx1MDQzOFx1MDQ0OFx1MDQzMCBcdTA0M0FcdTA0M0VcdTA0MzRcdTA0MzJcdTA0M0VcdTA0MzdcdTA0MzJcdTA0NDBcdTA0MzBcdTA0NDJcdTA0MzBcdTA0MzRcdTA0MzhcdTA0MzBcdTA0M0JcdTA0M0VcdTA0MzNcdTA0MzAgXHUwNDNBXHUwNDNFXHUwNDM0XHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDMweGJhc2UgXHUwNDNBXHUwNDNFXHUwNDM0XHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNBXHUwNDQxXHUwNDQyXHUwNDMwIFx1MDQzRFx1MDQzMFx1MDQzRlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzRlx1MDQzRVx1MDQzOFx1MDQ0MVx1MDQzQVx1MDQzMCBcdTA0M0RcdTA0MzBcdTA0M0ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDFcdTA0M0VcdTA0NDBcdTA0NDJcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzggXHUwNDNFXHUwNDMxXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDNFXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM1XHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQzRVx1MDQzMVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzRlx1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzN1x1MDQzQ1x1MDQzNVx1MDQzRFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0M0VcdTA0NDJcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0ZcdTA0MzBcdTA0M0RcdTA0MzVcdTA0M0JcdTA0MzhcdTA0NDBcdTA0MzBcdTA0MzdcdTA0MzRcdTA0MzVcdTA0M0JcdTA0M0VcdTA0MzIgXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDNBXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQzNFx1MDQzOFx1MDQzMFx1MDQzQlx1MDQzRVx1MDQzM1x1MDQzMFx1MDQzMlx1MDQzRVx1MDQzRlx1MDQ0MFx1MDQzRVx1MDQ0MSBcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0NDNcdTA0NDFcdTA0M0FcdTA0MzBcdTA0M0FcdTA0M0JcdTA0MzhcdTA0MzVcdTA0M0RcdTA0NDJcdTA0NDFcdTA0M0FcdTA0M0VcdTA0MzNcdTA0M0VcdTA0M0ZcdTA0NDBcdTA0MzhcdTA0M0JcdTA0M0VcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDNFXHUwNDNBXHUwNDQwXHUwNDQzXHUwNDMzXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQzRVx1MDQ0Mlx1MDQzQVx1MDQ0MFx1MDQ0Qlx1MDQ0Mlx1MDQzOFx1MDQ0Rlx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQzRlx1MDQ0MFx1MDQzOFx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0RcdTA0M0VcdTA0NDJcdTA0MzVcdTA0M0FcdTA0NDFcdTA0NDJcdTA0M0VcdTA0MzJcdTA0M0VcdTA0MzNcdTA0M0VcdTA0M0ZcdTA0M0VcdTA0MzhcdTA0NDFcdTA0M0FcdTA0MzAgXHUwNDQxXHUwNDNBXHUwNDNFXHUwNDQwXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDRDXHUwNDNBXHUwNDNCXHUwNDM4XHUwNDM1XHUwNDNEXHUwNDQyXHUwNDQxXHUwNDNBXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDQxXHUwNDNFXHUwNDM1XHUwNDM0XHUwNDM4XHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQ0MVx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQzRVx1MDQ0Rlx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzMlx1MDQzRFx1MDQzNVx1MDQ0OFx1MDQzRFx1MDQzNVx1MDQzM1x1MDQzRVx1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzRVx1MDQ0N1x1MDQzRFx1MDQzOFx1MDQzQVx1MDQzMFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0NDFcdTA0M0VcdTA0NDFcdTA0NDJcdTA0M0VcdTA0NEZcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0VcdTA0MzFcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0M0FcdTA0M0VcdTA0M0RcdTA0NDRcdTA0MzhcdTA0MzNcdTA0NDNcdTA0NDBcdTA0MzBcdTA0NDZcdTA0MzhcdTA0MzhcdTA0MzFcdTA0MzBcdTA0MzdcdTA0NEJcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDQxXHUwNDNGXHUwNDNFXHUwNDQxXHUwNDNFXHUwNDMxXHUwNDMyXHUwNDRCXHUwNDMxXHUwNDNFXHUwNDQwXHUwNDMwXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDQyXHUwNDM4XHUwNDQ0XHUwNDM4XHUwNDNBXHUwNDMwXHUwNDQyXHUwNDMwd2luZG93cyBcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0NDFcdTA0M0VcdTA0MzFcdTA0M0FcdTA0M0VcdTA0MzRcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NEZcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0M0FcdTA0MzggXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDQyXHUwNDQzXHUwNDQxXHUwNDQxXHUwNDNFXHUwNDNFXHUwNDMxXHUwNDQ5XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzMlx1MDQzRFx1MDQzNVx1MDQ0OFx1MDQzRFx1MDQzNVx1MDQzOVx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQ0QiBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0ZcdTA0M0JcdTA0MzBcdTA0NDJcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0NEIgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDNGXHUwNDNFXHUwNDMyXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNBXHUwNDNCXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQ4XHUwNDM4ZW50ZXIgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDREXHUwNDNCXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwXHUwNDM4XHUwNDNEXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM4XHUwNDNFXHUwNDMyXHUwNDRCXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM4XHUwNDNFXHUwNDMxXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNBXHUwNDNFXHUwNDNEXHUwNDQ0XHUwNDM4XHUwNDMzXHUwNDQzXHUwNDQwXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM4XHUwNDMxXHUwNDMwXHUwNDM3XHUwNDRCXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQ0M1x1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzNVx1MDQzRFx1MDQ0Q1x1MDQzOFx1MDQzN1x1MDQzRVx1MDQzQlx1MDQ0Rlx1MDQ0Nlx1MDQzOFx1MDQzOFx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzRFx1MDQzN1x1MDQzMFx1MDQzQVx1MDQ0Nlx1MDQzOFx1MDQzOSBcdTA0NDVcdTA0MzVcdTA0NDhcdTA0NDRcdTA0NDNcdTA0M0RcdTA0M0FcdTA0NDZcdTA0MzhcdTA0NEYgXHUwNDQ3XHUwNDMwXHUwNDQxXHUwNDQyXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDQyXHUwNDRCIixfZT1tK1MrVCtiK2YrQytPK0QreStBK2srQitGK0srdytYK2NlK2FlK1orSitvZStzZSxEZT0iY29tXHUwNDNFXHUwNDMxXHUwNDRBXHUwNDM1XHUwNDNBXHUwNDQyIGZ0cFx1MDQ0MVx1MDQzRVx1MDQzNVx1MDQzNFx1MDQzOFx1MDQzRFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNSBodHRwXHUwNDM3XHUwNDMwXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDQxIGh0dHBcdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzJcdTA0MzhcdTA0NDFcdTA0M0VcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDIgaHR0cFx1MDQ0MVx1MDQzRVx1MDQzNVx1MDQzNFx1MDQzOFx1MDQzRFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNSB3c1x1MDQzRVx1MDQzRlx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQzNVx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiB3c1x1MDQzRlx1MDQ0MFx1MDQzRVx1MDQzQVx1MDQ0MVx1MDQzOCB4YmFzZSBcdTA0MzBcdTA0M0RcdTA0MzBcdTA0M0JcdTA0MzhcdTA0MzdcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDMwXHUwNDNEXHUwNDNEXHUwNDNFXHUwNDQyXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDRGeHMgXHUwNDMxXHUwNDNCXHUwNDNFXHUwNDNBXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDMwXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQzMVx1MDQ0M1x1MDQ0NFx1MDQzNVx1MDQ0MFx1MDQzNFx1MDQzMlx1MDQzRVx1MDQzOFx1MDQ0N1x1MDQzRFx1MDQ0Qlx1MDQ0NVx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0MzJcdTA0M0FcdTA0M0JcdTA0NEVcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzV4cyBcdTA0MzJcdTA0NEJcdTA0NDBcdTA0MzBcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDMzXHUwNDM1XHUwNDNEXHUwNDM1XHUwNDQwXHUwNDMwXHUwNDQyXHUwNDNFXHUwNDQwXHUwNDQxXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDMwXHUwNDM5XHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDQ3XHUwNDM4XHUwNDQxXHUwNDM1XHUwNDNCIFx1MDQzM1x1MDQzNVx1MDQzRVx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQ0NFx1MDQzOFx1MDQ0N1x1MDQzNVx1MDQ0MVx1MDQzQVx1MDQzMFx1MDQ0Rlx1MDQ0MVx1MDQ0NVx1MDQzNVx1MDQzQ1x1MDQzMCBcdTA0MzNcdTA0MzVcdTA0M0VcdTA0MzNcdTA0NDBcdTA0MzBcdTA0NDRcdTA0MzhcdTA0NDdcdTA0MzVcdTA0NDFcdTA0M0FcdTA0MzhcdTA0MzVcdTA0M0FcdTA0M0VcdTA0M0VcdTA0NDBcdTA0MzRcdTA0MzhcdTA0M0RcdTA0MzBcdTA0NDJcdTA0NEIgXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDQ0XHUwNDM4XHUwNDQ3XHUwNDM1XHUwNDQxXHUwNDNBXHUwNDMwXHUwNDRGXHUwNDQxXHUwNDQ1XHUwNDM1XHUwNDNDXHUwNDMwIFx1MDQzM1x1MDQ0MFx1MDQ0M1x1MDQzRlx1MDQzRlx1MDQzMFx1MDQzQ1x1MDQzRVx1MDQzNFx1MDQzNVx1MDQzQlx1MDQzOHhzIFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQzNVx1MDQ0MFx1MDQzMFx1MDQ0MVx1MDQ0OFx1MDQzOFx1MDQ0NFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0MzRcdTA0MzJcdTA0M0VcdTA0MzhcdTA0NDdcdTA0M0RcdTA0NEJcdTA0MzVcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0MzUgXHUwNDM0XHUwNDM1XHUwNDNEXHUwNDM0XHUwNDQwXHUwNDNFXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDMwIFx1MDQzNFx1MDQzOFx1MDQzMFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzQ1x1MDQzMCBcdTA0MzRcdTA0MzhcdTA0MzBcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0NcdTA0M0NcdTA0MzBcdTA0MzNcdTA0MzBcdTA0M0RcdTA0NDJcdTA0MzAgXHUwNDM0XHUwNDM4XHUwNDMwXHUwNDNCXHUwNDNFXHUwNDMzXHUwNDMyXHUwNDRCXHUwNDMxXHUwNDNFXHUwNDQwXHUwNDMwXHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDMwIFx1MDQzNFx1MDQzOFx1MDQzMFx1MDQzQlx1MDQzRVx1MDQzM1x1MDQzMlx1MDQ0Qlx1MDQzMVx1MDQzRVx1MDQ0MFx1MDQzMFx1MDQ0Nlx1MDQzMlx1MDQzNVx1MDQ0Mlx1MDQzMCBcdTA0MzRcdTA0MzhcdTA0MzBcdTA0M0JcdTA0M0VcdTA0MzNcdTA0MzJcdTA0NEJcdTA0MzFcdTA0M0VcdTA0NDBcdTA0MzBcdTA0NDhcdTA0NDBcdTA0MzhcdTA0NDRcdTA0NDJcdTA0MzAgXHUwNDM0XHUwNDM4XHUwNDMwXHUwNDNCXHUwNDNFXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDQxXHUwNDNGXHUwNDM4XHUwNDQxXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDRGXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDNCXHUwNDMwXHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDNEXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDM3XHUwNDMwXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQzNFx1MDQzOFx1MDQzMFx1MDQzQlx1MDQzRVx1MDQzM1x1MDQ0MFx1MDQzNVx1MDQzNFx1MDQzMFx1MDQzQVx1MDQ0Mlx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzNFx1MDQzMFx1MDQ0MFx1MDQ0Mlx1MDQzRFx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzRlx1MDQzNVx1MDQ0MFx1MDQzOFx1MDQzRVx1MDQzNFx1MDQzMCBcdTA0MzRcdTA0MzhcdTA0MzBcdTA0M0ZcdTA0MzBcdTA0MzdcdTA0M0VcdTA0M0QgXHUwNDM0XHUwNDNFXHUwNDNBXHUwNDQzXHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyZG9tIFx1MDQzNFx1MDQzRVx1MDQzQVx1MDQ0M1x1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mmh0bWwgXHUwNDM0XHUwNDNFXHUwNDNBXHUwNDQzXHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDRGeHMgXHUwNDM0XHUwNDNFXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDMyXHUwNDNCXHUwNDRGXHUwNDM1XHUwNDNDXHUwNDNFXHUwNDM1XHUwNDQzXHUwNDMyXHUwNDM1XHUwNDM0XHUwNDNFXHUwNDNDXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1IFx1MDQzN1x1MDQzMFx1MDQzRlx1MDQzOFx1MDQ0MVx1MDQ0Q2RvbSBcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0MzhcdTA0NDFcdTA0NENmYXN0aW5mb3NldCBcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0MzhcdTA0NDFcdTA0NENodG1sIFx1MDQzN1x1MDQzMFx1MDQzRlx1MDQzOFx1MDQ0MVx1MDQ0Q2pzb24gXHUwNDM3XHUwNDMwXHUwNDNGXHUwNDM4XHUwNDQxXHUwNDRDeG1sIFx1MDQzN1x1MDQzMFx1MDQzRlx1MDQzOFx1MDQ0MVx1MDQ0Q3ppcFx1MDQ0NFx1MDQzMFx1MDQzOVx1MDQzQlx1MDQzMCBcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0MzhcdTA0NDFcdTA0NENcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDM3XHUwNDMwXHUwNDNGXHUwNDM4XHUwNDQxXHUwNDRDXHUwNDQyXHUwNDM1XHUwNDNBXHUwNDQxXHUwNDQyXHUwNDMwIFx1MDQzN1x1MDQzMFx1MDQzRlx1MDQzOFx1MDQ0MVx1MDQ0Q1x1MDQ0M1x1MDQzN1x1MDQzQlx1MDQzRVx1MDQzMmRvbSBcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDEgXHUwNDM3XHUwNDMwXHUwNDQ5XHUwNDM4XHUwNDQ5XHUwNDM1XHUwNDNEXHUwNDNEXHUwNDNFXHUwNDM1XHUwNDQxXHUwNDNFXHUwNDM1XHUwNDM0XHUwNDM4XHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1b3BlbnNzbCBcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0MzVcdTA0MzlcdTA0NDBcdTA0MzBcdTA0NDFcdTA0NDhcdTA0MzhcdTA0NDRcdTA0NDBcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDM4XHUwNDM3XHUwNDMyXHUwNDNCXHUwNDM1XHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQyXHUwNDM1XHUwNDNBXHUwNDQxXHUwNDQyXHUwNDMwIFx1MDQzOFx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQ0MFx1MDQ0MnhzIFx1MDQzOFx1MDQzRFx1MDQ0Mlx1MDQzNVx1MDQ0MFx1MDQzRFx1MDQzNVx1MDQ0Mlx1MDQzRlx1MDQzRVx1MDQ0N1x1MDQ0Mlx1MDQzMCBcdTA0MzhcdTA0M0RcdTA0NDJcdTA0MzVcdTA0NDBcdTA0M0RcdTA0MzVcdTA0NDJcdTA0M0ZcdTA0M0VcdTA0NDdcdTA0NDJcdTA0M0VcdTA0MzJcdTA0M0VcdTA0MzVcdTA0NDFcdTA0M0VcdTA0M0VcdTA0MzFcdTA0NDlcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzUgXHUwNDM4XHUwNDNEXHUwNDQyXHUwNDM1XHUwNDQwXHUwNDNEXHUwNDM1XHUwNDQyXHUwNDNGXHUwNDNFXHUwNDQ3XHUwNDQyXHUwNDNFXHUwNDMyXHUwNDRCXHUwNDM5XHUwNDNGXHUwNDQwXHUwNDNFXHUwNDQ0XHUwNDM4XHUwNDNCXHUwNDRDIFx1MDQzOFx1MDQzRFx1MDQ0Mlx1MDQzNVx1MDQ0MFx1MDQzRFx1MDQzNVx1MDQ0Mlx1MDQzRlx1MDQ0MFx1MDQzRVx1MDQzQVx1MDQ0MVx1MDQzOCBcdTA0MzhcdTA0M0RcdTA0NDJcdTA0MzVcdTA0NDBcdTA0M0RcdTA0MzVcdTA0NDJcdTA0NDFcdTA0M0VcdTA0MzVcdTA0MzRcdTA0MzhcdTA0M0RcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzUgXHUwNDM4XHUwNDNEXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDRGXHUwNDM0XHUwNDNCXHUwNDRGXHUwNDNGXHUwNDQwXHUwNDM4XHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGeHMgXHUwNDM4XHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1XHUwNDMwXHUwNDQyXHUwNDQwXHUwNDM4XHUwNDMxXHUwNDQzXHUwNDQyXHUwNDMweHMgXHUwNDM4XHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQxXHUwNDNFXHUwNDMxXHUwNDRCXHUwNDQyXHUwNDM4XHUwNDRGXHUwNDM2XHUwNDQzXHUwNDQwXHUwNDNEXHUwNDMwXHUwNDNCXHUwNDMwXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzRVx1MDQ0N1x1MDQzRFx1MDQzOFx1MDQzQVx1MDQzNFx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQzRlx1MDQzRFx1MDQ0Qlx1MDQ0NVx1MDQzRFx1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzNVx1MDQzQVx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0MzhcdTA0NDJcdTA0MzVcdTA0NDBcdTA0MzBcdTA0NDJcdTA0M0VcdTA0NDBcdTA0NDNcdTA0MzdcdTA0M0JcdTA0M0VcdTA0MzJkb20gXHUwNDNBXHUwNDMwXHUwNDQwXHUwNDQyXHUwNDM4XHUwNDNEXHUwNDNBXHUwNDMwIFx1MDQzQVx1MDQzMlx1MDQzMFx1MDQzQlx1MDQzOFx1MDQ0NFx1MDQzOFx1MDQzQVx1MDQzMFx1MDQ0Mlx1MDQzRVx1MDQ0MFx1MDQ0Qlx1MDQzNFx1MDQzMFx1MDQ0Mlx1MDQ0QiBcdTA0M0FcdTA0MzJcdTA0MzBcdTA0M0JcdTA0MzhcdTA0NDRcdTA0MzhcdTA0M0FcdTA0MzBcdTA0NDJcdTA0M0VcdTA0NDBcdTA0NEJcdTA0MzRcdTA0MzJcdTA0M0VcdTA0MzhcdTA0NDdcdTA0M0RcdTA0NEJcdTA0NDVcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDNBXHUwNDMyXHUwNDMwXHUwNDNCXHUwNDM4XHUwNDQ0XHUwNDM4XHUwNDNBXHUwNDMwXHUwNDQyXHUwNDNFXHUwNDQwXHUwNDRCXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDNBXHUwNDM4IFx1MDQzQVx1MDQzMlx1MDQzMFx1MDQzQlx1MDQzOFx1MDQ0NFx1MDQzOFx1MDQzQVx1MDQzMFx1MDQ0Mlx1MDQzRVx1MDQ0MFx1MDQ0Qlx1MDQ0N1x1MDQzOFx1MDQ0MVx1MDQzQlx1MDQzMCBcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0NDlcdTA0MzhcdTA0M0FcdTA0M0NcdTA0MzBcdTA0M0FcdTA0MzVcdTA0NDJcdTA0MzBcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDQ5XHUwNDM4XHUwNDNBXHUwNDNEXHUwNDMwXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDM1XHUwNDNBXHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQzQVx1MDQzRVx1MDQzRFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQ0M1x1MDQzQVx1MDQ0Mlx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQzMFx1MDQzQVx1MDQzNVx1MDQ0Mlx1MDQzMFx1MDQzRVx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0M0FcdTA0M0VcdTA0M0RcdTA0NDFcdTA0NDJcdTA0NDBcdTA0NDNcdTA0M0FcdTA0NDJcdTA0M0VcdTA0NDBcdTA0M0RcdTA0MzBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0MzVcdTA0M0FcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDNBXHUwNDNFXHUwNDNEXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDQzXHUwNDNBXHUwNDQyXHUwNDNFXHUwNDQwXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDMwXHUwNDQyXHUwNDNEXHUwNDNFXHUwNDM5XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDNBXHUwNDM4IFx1MDQzQlx1MDQzOFx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0M0NcdTA0MzBcdTA0M0FcdTA0MzVcdTA0NDJcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDNDXHUwNDMwXHUwNDNBXHUwNDM1XHUwNDQyXHUwNDNFXHUwNDMxXHUwNDNCXHUwNDMwXHUwNDQxXHUwNDQyXHUwNDM4XHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQzQ1x1MDQzMFx1MDQzQVx1MDQzNVx1MDQ0Mlx1MDQzRVx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0M0NcdTA0MzBcdTA0NDFcdTA0M0FcdTA0MzB4cyBcdTA0M0NcdTA0MzVcdTA0M0RcdTA0MzVcdTA0MzRcdTA0MzZcdTA0MzVcdTA0NDBcdTA0M0FcdTA0NDBcdTA0MzhcdTA0M0ZcdTA0NDJcdTA0M0VcdTA0MzNcdTA0NDBcdTA0MzBcdTA0NDRcdTA0MzhcdTA0MzggXHUwNDNEXHUwNDMwXHUwNDMxXHUwNDNFXHUwNDQwXHUwNDQxXHUwNDQ1XHUwNDM1XHUwNDNDeG1sIFx1MDQzRFx1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzOVx1MDQzQVx1MDQzOFx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0M0RcdTA0MzBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0MzlcdTA0M0FcdTA0MzhcdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzhcdTA0MzBcdTA0M0JcdTA0MzhcdTA0MzdcdTA0MzBcdTA0NDZcdTA0MzhcdTA0Mzhqc29uIFx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzMVx1MDQzRVx1MDQ0Mlx1MDQzQVx1MDQzMFx1MDQzQVx1MDQzMFx1MDQ0MFx1MDQ0Mlx1MDQzOFx1MDQzRFx1MDQzRVx1MDQzQSBcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzFcdTA0M0VcdTA0NDJcdTA0M0FcdTA0MzBcdTA0NDBcdTA0MzBcdTA0NDFcdTA0NDhcdTA0MzhcdTA0NDRcdTA0NDBcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDNFXHUwNDMxXHUwNDQ1XHUwNDNFXHUwNDM0XHUwNDM0XHUwNDM1XHUwNDQwXHUwNDM1XHUwNDMyXHUwNDMwZG9tIFx1MDQzRVx1MDQzMVx1MDQ0QVx1MDQ0Rlx1MDQzMlx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzMFx1MDQ0Mlx1MDQ0MFx1MDQzOFx1MDQzMVx1MDQ0M1x1MDQ0Mlx1MDQzMHhzIFx1MDQzRVx1MDQzMVx1MDQ0QVx1MDQ0Rlx1MDQzMlx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzRFx1MDQzRVx1MDQ0Mlx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOHhzIFx1MDQzRVx1MDQzMVx1MDQ0QVx1MDQ0Rlx1MDQzMlx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0RFx1MDQzQlx1MDQzNVx1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzMHhzIFx1MDQzRVx1MDQzRlx1MDQzOFx1MDQ0MVx1MDQzMFx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzOFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQ0MVx1MDQzRVx1MDQzMVx1MDQ0Qlx1MDQ0Mlx1MDQzOFx1MDQ0Rlx1MDQzNFx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQzRlx1MDQzNlx1MDQ0M1x1MDQ0MFx1MDQzRFx1MDQzMFx1MDQzQlx1MDQzMFx1MDQ0MFx1MDQzNVx1MDQzM1x1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOCBcdTA0M0VcdTA0M0ZcdTA0MzhcdTA0NDFcdTA0MzBcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzhcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NEZcdTA0NDFcdTA0M0VcdTA0MzFcdTA0NEJcdTA0NDJcdTA0MzhcdTA0NEZcdTA0M0VcdTA0NDJcdTA0M0FcdTA0MzBcdTA0MzdcdTA0MzJcdTA0MzRcdTA0M0VcdTA0NDFcdTA0NDJcdTA0NDNcdTA0M0ZcdTA0MzVcdTA0MzZcdTA0NDNcdTA0NDBcdTA0M0RcdTA0MzBcdTA0M0JcdTA0MzBcdTA0NDBcdTA0MzVcdTA0MzNcdTA0MzhcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0NDZcdTA0MzhcdTA0MzggXHUwNDNFXHUwNDNGXHUwNDM4XHUwNDQxXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDMxXHUwNDNFXHUwNDQyXHUwNDNBXHUwNDM4XHUwNDQwXHUwNDMwXHUwNDQxXHUwNDQ4XHUwNDM4XHUwNDQ0XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQzRVx1MDQzRlx1MDQzOFx1MDQ0MVx1MDQzMFx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzRlx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQzMFx1MDQzMlx1MDQzMFx1MDQzNVx1MDQzQ1x1MDQzRVx1MDQzM1x1MDQzRVx1MDQ0NFx1MDQzMFx1MDQzOVx1MDQzQlx1MDQzMCBcdTA0M0VcdTA0M0ZcdTA0MzhcdTA0NDFcdTA0MzBcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0VcdTA0MzIgXHUwNDNFXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDMzXHUwNDQwXHUwNDQzXHUwNDNGXHUwNDNGXHUwNDRCXHUwNDMwXHUwNDQyXHUwNDQwXHUwNDM4XHUwNDMxXHUwNDQzXHUwNDQyXHUwNDNFXHUwNDMyeHMgXHUwNDNFXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDMzXHUwNDQwXHUwNDQzXHUwNDNGXHUwNDNGXHUwNDRCXHUwNDNDXHUwNDNFXHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM4eHMgXHUwNDNFXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNFXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDM4XHUwNDM0XHUwNDM1XHUwNDNEXHUwNDQyXHUwNDM4XHUwNDQ3XHUwNDNEXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDM4eHMgXHUwNDNFXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNGXHUwNDQwXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDMweHMgXHUwNDNFXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQxXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDMyXHUwNDNEXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDMweHMgXHUwNDNFXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQyXHUwNDM4XHUwNDNGXHUwNDMwXHUwNDM0XHUwNDNFXHUwNDNBXHUwNDQzXHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwZG9tIFx1MDQzRVx1MDQzRlx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQzNVx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RnhwYXRoeHMgXHUwNDNFXHUwNDQyXHUwNDMxXHUwNDNFXHUwNDQwXHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQzRlx1MDQzMFx1MDQzQVx1MDQzNVx1MDQ0Mlx1MDQzRVx1MDQ0Mlx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzMFx1MDQzNVx1MDQzQ1x1MDQ0Qlx1MDQ0NVx1MDQzNFx1MDQzRVx1MDQzQVx1MDQ0M1x1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzRVx1MDQzMiBcdTA0M0ZcdTA0MzBcdTA0NDBcdTA0MzBcdTA0M0NcdTA0MzVcdTA0NDJcdTA0NDBcdTA0MzJcdTA0NEJcdTA0MzFcdTA0M0VcdTA0NDBcdTA0MzAgXHUwNDNGXHUwNDMwXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDM1XHUwNDQyXHUwNDQwXHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQzRlx1MDQzMFx1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzNVx1MDQ0Mlx1MDQ0MFx1MDQ0Qlx1MDQzN1x1MDQzMFx1MDQzRlx1MDQzOFx1MDQ0MVx1MDQzOGpzb24gXHUwNDNGXHUwNDMwXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDM1XHUwNDQyXHUwNDQwXHUwNDRCXHUwNDM3XHUwNDMwXHUwNDNGXHUwNDM4XHUwNDQxXHUwNDM4eG1sIFx1MDQzRlx1MDQzMFx1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzNVx1MDQ0Mlx1MDQ0MFx1MDQ0Qlx1MDQ0N1x1MDQ0Mlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RnhtbCBcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzVcdTA0M0VcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzV4cyBcdTA0M0ZcdTA0M0JcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0NDlcdTA0MzhcdTA0M0EgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDM1XHUwNDMwXHUwNDNEXHUwNDMwXHUwNDNCXHUwNDM4XHUwNDM3XHUwNDMwXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzNVx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0M0ZcdTA0M0VcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0MzhcdTA0NDJcdTA0MzVcdTA0M0JcdTA0NENkb20gXHUwNDNGXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDM4XHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRDXHUwNDM3XHUwNDMwXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDQxXHUwNDMwIFx1MDQzRlx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzOFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQ0Q1x1MDQzRVx1MDQ0Mlx1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQzMCBcdTA0M0ZcdTA0M0VcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0MzhcdTA0NDJcdTA0MzVcdTA0M0JcdTA0NENcdTA0M0VcdTA0NDJcdTA0NDdcdTA0MzVcdTA0NDJcdTA0MzBcdTA0MzBcdTA0M0RcdTA0MzBcdTA0M0JcdTA0MzhcdTA0MzdcdTA0MzBcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDNGXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDM4XHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRDXHUwNDQxXHUwNDQ1XHUwNDM1XHUwNDNDeG1sIFx1MDQzRlx1MDQzRVx1MDQ0Mlx1MDQzRVx1MDQzQSBcdTA0M0ZcdTA0M0VcdTA0NDJcdTA0M0VcdTA0M0FcdTA0MzJcdTA0M0ZcdTA0MzBcdTA0M0NcdTA0NEZcdTA0NDJcdTA0MzggXHUwNDNGXHUwNDNFXHUwNDQ3XHUwNDQyXHUwNDMwIFx1MDQzRlx1MDQzRVx1MDQ0N1x1MDQ0Mlx1MDQzRVx1MDQzMlx1MDQzRVx1MDQzNVx1MDQ0MVx1MDQzRVx1MDQzRVx1MDQzMVx1MDQ0OVx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNSBcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0MzV4c2wgXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNBXHUwNDNBXHUwNDMwXHUwNDNEXHUwNDNFXHUwNDNEXHUwNDM4XHUwNDQ3XHUwNDM1XHUwNDQxXHUwNDNBXHUwNDNFXHUwNDNDXHUwNDQzeG1sIFx1MDQzRlx1MDQ0MFx1MDQzRVx1MDQ0Nlx1MDQzNVx1MDQ0MVx1MDQ0MVx1MDQzRVx1MDQ0MFx1MDQzMlx1MDQ0Qlx1MDQzMlx1MDQzRVx1MDQzNFx1MDQzMFx1MDQ0MFx1MDQzNVx1MDQzN1x1MDQ0M1x1MDQzQlx1MDQ0Q1x1MDQ0Mlx1MDQzMFx1MDQ0Mlx1MDQzMFx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NVx1MDQzMlx1MDQzQVx1MDQzRVx1MDQzQlx1MDQzQlx1MDQzNVx1MDQzQVx1MDQ0Nlx1MDQzOFx1MDQ0RVx1MDQzN1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQzOSBcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDZcdTA0MzVcdTA0NDFcdTA0NDFcdTA0M0VcdTA0NDBcdTA0MzJcdTA0NEJcdTA0MzJcdTA0M0VcdTA0MzRcdTA0MzBcdTA0NDBcdTA0MzVcdTA0MzdcdTA0NDNcdTA0M0JcdTA0NENcdTA0NDJcdTA0MzBcdTA0NDJcdTA0MzBcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDVcdTA0MzJcdTA0NDJcdTA0MzBcdTA0MzFcdTA0M0JcdTA0MzhcdTA0NDdcdTA0M0RcdTA0NEJcdTA0MzlcdTA0MzRcdTA0M0VcdTA0M0FcdTA0NDNcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDIgXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDQ2XHUwNDM1XHUwNDQxXHUwNDQxXHUwNDNFXHUwNDQwXHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQ0MFx1MDQzMFx1MDQzN1x1MDQ0Qlx1MDQzQ1x1MDQzNVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQ0Q1x1MDQzRlx1MDQ0MFx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzRFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzOFx1MDQzQ1x1MDQzNVx1MDQzRGRvbSBcdTA0NDBcdTA0MzBcdTA0M0NcdTA0M0FcdTA0MzAgXHUwNDQwXHUwNDMwXHUwNDQxXHUwNDNGXHUwNDM4XHUwNDQxXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQwXHUwNDM1XHUwNDMzXHUwNDNCXHUwNDMwXHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDNEXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDM3XHUwNDMwXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQ0MFx1MDQzMFx1MDQ0MVx1MDQ0OFx1MDQzOFx1MDQ0MFx1MDQzNVx1MDQzRFx1MDQzRFx1MDQzRVx1MDQzNVx1MDQzOFx1MDQzQ1x1MDQ0RnhtbCBcdTA0NDBcdTA0MzVcdTA0MzdcdTA0NDNcdTA0M0JcdTA0NENcdTA0NDJcdTA0MzBcdTA0NDJcdTA0NDdcdTA0NDJcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDQxXHUwNDMyXHUwNDNFXHUwNDM0XHUwNDNEXHUwNDMwXHUwNDRGXHUwNDM0XHUwNDM4XHUwNDMwXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDMwIFx1MDQ0MVx1MDQzMlx1MDQ0Rlx1MDQzN1x1MDQ0Q1x1MDQzRlx1MDQzMFx1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzNVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQ0Qlx1MDQzMVx1MDQzRVx1MDQ0MFx1MDQzMCBcdTA0NDFcdTA0MzJcdTA0NEZcdTA0MzdcdTA0NENcdTA0M0ZcdTA0M0VcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0NDMgXHUwNDQxXHUwNDMyXHUwNDRGXHUwNDM3XHUwNDRDXHUwNDNGXHUwNDNFXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDQzXHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQzOFx1MDQzMFx1MDQzQlx1MDQzOFx1MDQzN1x1MDQzMFx1MDQ0Mlx1MDQzRVx1MDQ0MHhkdG8gXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDQyXHUwNDM4XHUwNDQ0XHUwNDM4XHUwNDNBXHUwNDMwXHUwNDQyXHUwNDNBXHUwNDNCXHUwNDM4XHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwd2luZG93cyBcdTA0NDFcdTA0MzVcdTA0NDBcdTA0NDJcdTA0MzhcdTA0NDRcdTA0MzhcdTA0M0FcdTA0MzBcdTA0NDJcdTA0M0FcdTA0M0JcdTA0MzhcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzBcdTA0NDRcdTA0MzBcdTA0MzlcdTA0M0IgXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDQyXHUwNDM4XHUwNDQ0XHUwNDM4XHUwNDNBXHUwNDMwXHUwNDQyXHUwNDNBXHUwNDQwXHUwNDM4XHUwNDNGXHUwNDQyXHUwNDNFXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDQ0XHUwNDM4XHUwNDM4IFx1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQ0Mlx1MDQzOFx1MDQ0NFx1MDQzOFx1MDQzQVx1MDQzMFx1MDQ0Mlx1MDQ0Qlx1MDQ0M1x1MDQzNFx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQzRVx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQ0Rlx1MDQ0RVx1MDQ0OVx1MDQzOFx1MDQ0NVx1MDQ0Nlx1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzMndpbmRvd3MgXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDQyXHUwNDM4XHUwNDQ0XHUwNDM4XHUwNDNBXHUwNDMwXHUwNDQyXHUwNDRCXHUwNDQzXHUwNDM0XHUwNDNFXHUwNDQxXHUwNDQyXHUwNDNFXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDRGXHUwNDRFXHUwNDQ5XHUwNDM4XHUwNDQ1XHUwNDQ2XHUwNDM1XHUwNDNEXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDMyXHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCIFx1MDQ0MVx1MDQzNlx1MDQzMFx1MDQ0Mlx1MDQzOFx1MDQzNVx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0NDFcdTA0MzhcdTA0NDFcdTA0NDJcdTA0MzVcdTA0M0NcdTA0M0RcdTA0MzBcdTA0NEZcdTA0MzhcdTA0M0RcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0MzBcdTA0NDZcdTA0MzhcdTA0NEYgXHUwNDQxXHUwNDNFXHUwNDNFXHUwNDMxXHUwNDQ5XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRFIFx1MDQ0MVx1MDQzRVx1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzQVx1MDQzQlx1MDQzMFx1MDQzMlx1MDQzOFx1MDQ0OCBcdTA0NDFcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M0RcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzkgXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDM0XHUwNDMwXHUwNDQwXHUwNDQyXHUwNDNEXHUwNDMwXHUwNDRGXHUwNDM0XHUwNDMwXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDMwXHUwNDNCXHUwNDMwIFx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzNFx1MDQzMFx1MDQ0MFx1MDQ0Mlx1MDQzRFx1MDQ0Qlx1MDQzOVx1MDQzRlx1MDQzNVx1MDQ0MFx1MDQzOFx1MDQzRVx1MDQzNCBcdTA0NDFcdTA0NDVcdTA0MzVcdTA0M0NcdTA0MzB4bWwgXHUwNDQxXHUwNDQ1XHUwNDM1XHUwNDNDXHUwNDMwXHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQ0Mlx1MDQzMFx1MDQzMVx1MDQzQlx1MDQzOFx1MDQ0N1x1MDQzRFx1MDQ0Qlx1MDQzOVx1MDQzNFx1MDQzRVx1MDQzQVx1MDQ0M1x1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0MiBcdTA0NDJcdTA0MzVcdTA0M0FcdTA0NDFcdTA0NDJcdTA0M0VcdTA0MzJcdTA0NEJcdTA0MzlcdTA0MzRcdTA0M0VcdTA0M0FcdTA0NDNcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDIgXHUwNDQyXHUwNDM1XHUwNDQxXHUwNDQyXHUwNDM4XHUwNDQwXHUwNDQzXHUwNDM1XHUwNDNDXHUwNDNFXHUwNDM1XHUwNDNGXHUwNDQwXHUwNDM4XHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1IFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NXhtbCBcdTA0NDNcdTA0M0RcdTA0MzhcdTA0M0FcdTA0MzBcdTA0M0JcdTA0NENcdTA0M0RcdTA0NEJcdTA0MzlcdTA0MzhcdTA0MzRcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzhcdTA0NDRcdTA0MzhcdTA0M0FcdTA0MzBcdTA0NDJcdTA0M0VcdTA0NDAgXHUwNDQ0XHUwNDMwXHUwNDMxXHUwNDQwXHUwNDM4XHUwNDNBXHUwNDMweGR0byBcdTA0NDRcdTA0MzBcdTA0MzlcdTA0M0IgXHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDNFXHUwNDMyXHUwNDRCXHUwNDM5XHUwNDNGXHUwNDNFXHUwNDQyXHUwNDNFXHUwNDNBIFx1MDQ0NFx1MDQzMFx1MDQ0MVx1MDQzNVx1MDQ0Mlx1MDQzNFx1MDQzQlx1MDQzOFx1MDQzRFx1MDQ0QnhzIFx1MDQ0NFx1MDQzMFx1MDQ0MVx1MDQzNVx1MDQ0Mlx1MDQzQVx1MDQzRVx1MDQzQlx1MDQzOFx1MDQ0N1x1MDQzNVx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMFx1MDQ0MFx1MDQzMFx1MDQzN1x1MDQ0MFx1MDQ0Rlx1MDQzNFx1MDQzRVx1MDQzMlx1MDQzNFx1MDQ0MFx1MDQzRVx1MDQzMVx1MDQzRFx1MDQzRVx1MDQzOVx1MDQ0N1x1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQzOHhzIFx1MDQ0NFx1MDQzMFx1MDQ0MVx1MDQzNVx1MDQ0Mlx1MDQzQ1x1MDQzMFx1MDQzQVx1MDQ0MVx1MDQzOFx1MDQzQ1x1MDQzMFx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzMlx1MDQzQVx1MDQzQlx1MDQ0RVx1MDQ0N1x1MDQzMFx1MDQ0RVx1MDQ0OVx1MDQzNVx1MDQzM1x1MDQzRVx1MDQzN1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RnhzIFx1MDQ0NFx1MDQzMFx1MDQ0MVx1MDQzNVx1MDQ0Mlx1MDQzQ1x1MDQzMFx1MDQzQVx1MDQ0MVx1MDQzOFx1MDQzQ1x1MDQzMFx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzOFx1MDQ0MVx1MDQzQVx1MDQzQlx1MDQ0RVx1MDQ0N1x1MDQzMFx1MDQ0RVx1MDQ0OVx1MDQzNVx1MDQzM1x1MDQzRVx1MDQzN1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RnhzIFx1MDQ0NFx1MDQzMFx1MDQ0MVx1MDQzNVx1MDQ0Mlx1MDQzQ1x1MDQzMFx1MDQzQVx1MDQ0MVx1MDQzOFx1MDQzQ1x1MDQzMFx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQzRVx1MDQzOVx1MDQzNFx1MDQzQlx1MDQzOFx1MDQzRFx1MDQ0QnhzIFx1MDQ0NFx1MDQzMFx1MDQ0MVx1MDQzNVx1MDQ0Mlx1MDQzQ1x1MDQzOFx1MDQzRFx1MDQzOFx1MDQzQ1x1MDQzMFx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzMlx1MDQzQVx1MDQzQlx1MDQ0RVx1MDQ0N1x1MDQzMFx1MDQ0RVx1MDQ0OVx1MDQzNVx1MDQzM1x1MDQzRVx1MDQzN1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RnhzIFx1MDQ0NFx1MDQzMFx1MDQ0MVx1MDQzNVx1MDQ0Mlx1MDQzQ1x1MDQzOFx1MDQzRFx1MDQzOFx1MDQzQ1x1MDQzMFx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzOFx1MDQ0MVx1MDQzQVx1MDQzQlx1MDQ0RVx1MDQ0N1x1MDQzMFx1MDQ0RVx1MDQ0OVx1MDQzNVx1MDQzM1x1MDQzRVx1MDQzN1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RnhzIFx1MDQ0NFx1MDQzMFx1MDQ0MVx1MDQzNVx1MDQ0Mlx1MDQzQ1x1MDQzOFx1MDQzRFx1MDQzOFx1MDQzQ1x1MDQzMFx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQzRVx1MDQzOVx1MDQzNFx1MDQzQlx1MDQzOFx1MDQzRFx1MDQ0QnhzIFx1MDQ0NFx1MDQzMFx1MDQ0MVx1MDQzNVx1MDQ0Mlx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzN1x1MDQ0Nlx1MDQzMHhzIFx1MDQ0NFx1MDQzMFx1MDQ0MVx1MDQzNVx1MDQ0Mlx1MDQzRVx1MDQzMVx1MDQ0OVx1MDQzNVx1MDQzM1x1MDQzRVx1MDQzQVx1MDQzRVx1MDQzQlx1MDQzOFx1MDQ0N1x1MDQzNVx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMFx1MDQ0MFx1MDQzMFx1MDQzN1x1MDQ0MFx1MDQ0Rlx1MDQzNFx1MDQzRVx1MDQzMnhzIFx1MDQ0NFx1MDQzMFx1MDQ0MVx1MDQzNVx1MDQ0Mlx1MDQzRlx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQ0N1x1MDQzOFx1MDQ0MVx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RnhzIFx1MDQ0NFx1MDQzMFx1MDQ0MVx1MDQzNVx1MDQ0Mlx1MDQzRlx1MDQ0MFx1MDQzRVx1MDQzMVx1MDQzNVx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQ0Qlx1MDQ0NVx1MDQ0MVx1MDQzOFx1MDQzQ1x1MDQzMlx1MDQzRVx1MDQzQlx1MDQzRVx1MDQzMnhzIFx1MDQ0NFx1MDQzOFx1MDQzQlx1MDQ0Q1x1MDQ0Mlx1MDQ0MFx1MDQ0M1x1MDQzN1x1MDQzQlx1MDQzRVx1MDQzMmRvbSBcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0MzBcdTA0NDJcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0M0RcdTA0MzBcdTA0NEZcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0M0FcdTA0MzAgXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDMwXHUwNDQyXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDM5XHUwNDM0XHUwNDNFXHUwNDNBXHUwNDQzXHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyIFx1MDQ0NFx1MDQ0MFx1MDQzMFx1MDQzM1x1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0MnhzIFx1MDQ0NVx1MDQzNVx1MDQ0OFx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0NDVcdTA0NDBcdTA0MzBcdTA0M0RcdTA0MzhcdTA0M0JcdTA0MzhcdTA0NDlcdTA0MzVcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDQ2XHUwNDMyXHUwNDM1XHUwNDQyIFx1MDQ0N1x1MDQ0Mlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNWZhc3RpbmZvc2V0IFx1MDQ0N1x1MDQ0Mlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNWh0bWwgXHUwNDQ3XHUwNDQyXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1anNvbiBcdTA0NDdcdTA0NDJcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzV4bWwgXHUwNDQ3XHUwNDQyXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1emlwXHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDMwIFx1MDQ0N1x1MDQ0Mlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0NDdcdTA0NDJcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDJcdTA0MzVcdTA0M0FcdTA0NDFcdTA0NDJcdTA0MzAgXHUwNDQ3XHUwNDQyXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQzXHUwNDM3XHUwNDNCXHUwNDNFXHUwNDMyZG9tIFx1MDQ0OFx1MDQ0MFx1MDQzOFx1MDQ0NFx1MDQ0MiBcdTA0NERcdTA0M0JcdTA0MzVcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0NDBcdTA0MzVcdTA0MzdcdTA0NDNcdTA0M0JcdTA0NENcdTA0NDJcdTA0MzBcdTA0NDJcdTA0MzBcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgIixVZT0iY29tc2FmZWFycmF5IFx1MDQzNFx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzMlx1MDQzRVx1MDQzN1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQzOSBcdTA0M0NcdTA0MzBcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzIgXHUwNDQxXHUwNDNFXHUwNDNFXHUwNDQyXHUwNDMyXHUwNDM1XHUwNDQyXHUwNDQxXHUwNDQyXHUwNDMyXHUwNDM4XHUwNDM1IFx1MDQ0MVx1MDQzRlx1MDQzOFx1MDQ0MVx1MDQzRVx1MDQzQVx1MDQzN1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQzOSBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0NDNcdTA0M0FcdTA0NDJcdTA0NDNcdTA0NDBcdTA0MzAgXHUwNDQyXHUwNDMwXHUwNDMxXHUwNDNCXHUwNDM4XHUwNDQ2XHUwNDMwXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM5IFx1MDQ0NFx1MDQzOFx1MDQzQVx1MDQ0MVx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzRFx1MDQzMFx1MDQ0Rlx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQ0M1x1MDQzQVx1MDQ0Mlx1MDQ0M1x1MDQ0MFx1MDQzMCBcdTA0NDRcdTA0MzhcdTA0M0FcdTA0NDFcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0M0RcdTA0M0VcdTA0MzVcdTA0NDFcdTA0M0VcdTA0M0VcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDJcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzhcdTA0MzUgXHUwNDQ0XHUwNDM4XHUwNDNBXHUwNDQxXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDM5XHUwNDNDXHUwNDMwXHUwNDQxXHUwNDQxXHUwNDM4XHUwNDMyICIsZ2U9RGUrVWUsU2U9Im51bGwgXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDM4XHUwNDNEXHUwNDMwIFx1MDQzQlx1MDQzRVx1MDQzNlx1MDQ0QyBcdTA0M0RcdTA0MzVcdTA0M0VcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M0JcdTA0MzVcdTA0M0RcdTA0M0UiLFJlPWUuaW5oZXJpdChlLk5VTUJFUl9NT0RFKSxkZT17Y2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOicifFxcfCcsZW5kOicifCQnLGNvbnRhaW5zOlt7YmVnaW46JyIiJ31dfSxoZT17YmVnaW46IiciLGVuZDoiJyIsZXhjbHVkZUJlZ2luOiEwLGV4Y2x1ZGVFbmQ6ITAsY29udGFpbnM6W3tjbGFzc05hbWU6Im51bWJlciIsYmVnaW46IlxcZHs0fShbXFwuXFxcXC86LV0/XFxkezJ9KXswLDV9In1dfSx1ZT1lLmluaGVyaXQoZS5DX0xJTkVfQ09NTUVOVF9NT0RFKSxNZT17Y2xhc3NOYW1lOiJtZXRhIixiZWdpbjoiI3wmIixlbmQ6IiQiLGtleXdvcmRzOnskcGF0dGVybjp0LCJtZXRhLWtleXdvcmQiOmkrY30sY29udGFpbnM6W3VlXX0sZmU9e2NsYXNzTmFtZToic3ltYm9sIixiZWdpbjoifiIsZW5kOiI7fDoiLGV4Y2x1ZGVFbmQ6ITB9LE5lPXtjbGFzc05hbWU6ImZ1bmN0aW9uIix2YXJpYW50czpbe2JlZ2luOiJcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDZcdTA0MzVcdTA0MzRcdTA0NDNcdTA0NDBcdTA0MzB8XHUwNDQ0XHUwNDQzXHUwNDNEXHUwNDNBXHUwNDQ2XHUwNDM4XHUwNDRGIixlbmQ6IlxcKSIsa2V5d29yZHM6Ilx1MDQzRlx1MDQ0MFx1MDQzRVx1MDQ0Nlx1MDQzNVx1MDQzNFx1MDQ0M1x1MDQ0MFx1MDQzMCBcdTA0NDRcdTA0NDNcdTA0M0RcdTA0M0FcdTA0NDZcdTA0MzhcdTA0NEYifSx7YmVnaW46Ilx1MDQzQVx1MDQzRVx1MDQzRFx1MDQzNVx1MDQ0Nlx1MDQzRlx1MDQ0MFx1MDQzRVx1MDQ0Nlx1MDQzNVx1MDQzNFx1MDQ0M1x1MDQ0MFx1MDQ0QnxcdTA0M0FcdTA0M0VcdTA0M0RcdTA0MzVcdTA0NDZcdTA0NDRcdTA0NDNcdTA0M0RcdTA0M0FcdTA0NDZcdTA0MzhcdTA0MzgiLGtleXdvcmRzOiJcdTA0M0FcdTA0M0VcdTA0M0RcdTA0MzVcdTA0NDZcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDZcdTA0MzVcdTA0MzRcdTA0NDNcdTA0NDBcdTA0NEIgXHUwNDNBXHUwNDNFXHUwNDNEXHUwNDM1XHUwNDQ2XHUwNDQ0XHUwNDQzXHUwNDNEXHUwNDNBXHUwNDQ2XHUwNDM4XHUwNDM4In1dLGNvbnRhaW5zOlt7YmVnaW46IlxcKCIsZW5kOiJcXCkiLGVuZHNQYXJlbnQ6ITAsY29udGFpbnM6W3tjbGFzc05hbWU6InBhcmFtcyIsYmVnaW46dCxlbmQ6IiwiLGV4Y2x1ZGVFbmQ6ITAsZW5kc1dpdGhQYXJlbnQ6ITAsa2V5d29yZHM6eyRwYXR0ZXJuOnQsa2V5d29yZDoiXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3IixsaXRlcmFsOlNlfSxjb250YWluczpbUmUsZGUsaGVdfSx1ZV19LGUuaW5oZXJpdChlLlRJVExFX01PREUse2JlZ2luOnR9KV19O3JldHVybntuYW1lOiIxQzpFbnRlcnByaXNlIixjYXNlX2luc2Vuc2l0aXZlOiEwLGtleXdvcmRzOnskcGF0dGVybjp0LGtleXdvcmQ6aSxidWlsdF9pbjp1LGNsYXNzOl9lLHR5cGU6Z2UsbGl0ZXJhbDpTZX0sY29udGFpbnM6W01lLE5lLHVlLGZlLFJlLGRlLGhlXX19cy5leHBvcnRzPXJ9LDI1MzI4OmZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHIobil7cmV0dXJuIG4/dHlwZW9mIG49PSJzdHJpbmciP246bi5zb3VyY2U6bnVsbH1mdW5jdGlvbiBlKC4uLm4pe3JldHVybiBuLm1hcChpPT5yKGkpKS5qb2luKCIiKX1mdW5jdGlvbiB0KG4pe2NvbnN0IGE9e3J1bGVEZWNsYXJhdGlvbjovXlthLXpBLVpdW2EtekEtWjAtOS1dKi8sdW5leHBlY3RlZENoYXJzOi9bIUAjJF4mJyw/K35gfDpdL30saT1bIkFMUEhBIiwiQklUIiwiQ0hBUiIsIkNSIiwiQ1JMRiIsIkNUTCIsIkRJR0lUIiwiRFFVT1RFIiwiSEVYRElHIiwiSFRBQiIsIkxGIiwiTFdTUCIsIk9DVEVUIiwiU1AiLCJWQ0hBUiIsIldTUCJdLG89bi5DT01NRU5UKC87LywvJC8pLGw9e2NsYXNzTmFtZToic3ltYm9sIixiZWdpbjovJWJbMC0xXSsoLVswLTFdK3woXC5bMC0xXSspKyl7MCwxfS99LGM9e2NsYXNzTmFtZToic3ltYm9sIixiZWdpbjovJWRbMC05XSsoLVswLTldK3woXC5bMC05XSspKyl7MCwxfS99LF89e2NsYXNzTmFtZToic3ltYm9sIixiZWdpbjovJXhbMC05QS1GXSsoLVswLTlBLUZdK3woXC5bMC05QS1GXSspKyl7MCwxfS99LGQ9e2NsYXNzTmFtZToic3ltYm9sIixiZWdpbjovJVtzaV0vfSxnPXtjbGFzc05hbWU6ImF0dHJpYnV0ZSIsYmVnaW46ZShhLnJ1bGVEZWNsYXJhdGlvbiwvKD89XHMqPSkvKX07cmV0dXJue25hbWU6IkF1Z21lbnRlZCBCYWNrdXMtTmF1ciBGb3JtIixpbGxlZ2FsOmEudW5leHBlY3RlZENoYXJzLGtleXdvcmRzOmksY29udGFpbnM6W2csbyxsLGMsXyxkLG4uUVVPVEVfU1RSSU5HX01PREUsbi5OVU1CRVJfTU9ERV19fXMuZXhwb3J0cz10fSw5ODk2MTpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGEpe3JldHVybiBhP3R5cGVvZiBhPT0ic3RyaW5nIj9hOmEuc291cmNlOm51bGx9ZnVuY3Rpb24gZSguLi5hKXtyZXR1cm4gYS5tYXAobz0+cihvKSkuam9pbigiIil9ZnVuY3Rpb24gdCguLi5hKXtyZXR1cm4iKCIrYS5tYXAobz0+cihvKSkuam9pbigifCIpKyIpIn1mdW5jdGlvbiBuKGEpe2NvbnN0IGk9WyJHRVQiLCJQT1NUIiwiSEVBRCIsIlBVVCIsIkRFTEVURSIsIkNPTk5FQ1QiLCJPUFRJT05TIiwiUEFUQ0giLCJUUkFDRSJdO3JldHVybntuYW1lOiJBcGFjaGUgQWNjZXNzIExvZyIsY29udGFpbnM6W3tjbGFzc05hbWU6Im51bWJlciIsYmVnaW46L15cZHsxLDN9XC5cZHsxLDN9XC5cZHsxLDN9XC5cZHsxLDN9KDpcZHsxLDV9KT9cYi8scmVsZXZhbmNlOjV9LHtjbGFzc05hbWU6Im51bWJlciIsYmVnaW46L1xiXGQrXGIvLHJlbGV2YW5jZTowfSx7Y2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOmUoLyIvLHQoLi4uaSkpLGVuZDovIi8sa2V5d29yZHM6aSxpbGxlZ2FsOi9cbi8scmVsZXZhbmNlOjUsY29udGFpbnM6W3tiZWdpbjovSFRUUFwvWzEyXVwuXGQnLyxyZWxldmFuY2U6NX1dfSx7Y2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOi9cW1xkW15cXVxuXXs4LH1cXS8saWxsZWdhbDovXG4vLHJlbGV2YW5jZToxfSx7Y2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOi9cWy8sZW5kOi9cXS8saWxsZWdhbDovXG4vLHJlbGV2YW5jZTowfSx7Y2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOi8iTW96aWxsYVwvXGRcLlxkIFwoLyxlbmQ6LyIvLGlsbGVnYWw6L1xuLyxyZWxldmFuY2U6M30se2NsYXNzTmFtZToic3RyaW5nIixiZWdpbjovIi8sZW5kOi8iLyxpbGxlZ2FsOi9cbi8scmVsZXZhbmNlOjB9XX19cy5leHBvcnRzPW59LDQ4NDM5OmZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHIobil7cmV0dXJuIG4/dHlwZW9mIG49PSJzdHJpbmciP246bi5zb3VyY2U6bnVsbH1mdW5jdGlvbiBlKC4uLm4pe3JldHVybiBuLm1hcChpPT5yKGkpKS5qb2luKCIiKX1mdW5jdGlvbiB0KG4pe2NvbnN0IGE9L1thLXpBLVpfJF1bYS16QS1aMC05XyRdKi8saT0vKFsqXXxbYS16QS1aXyRdW2EtekEtWjAtOV8kXSopLyxvPXtjbGFzc05hbWU6InJlc3RfYXJnIixiZWdpbjovWy5dezN9LyxlbmQ6YSxyZWxldmFuY2U6MTB9O3JldHVybntuYW1lOiJBY3Rpb25TY3JpcHQiLGFsaWFzZXM6WyJhcyJdLGtleXdvcmRzOntrZXl3b3JkOiJhcyBicmVhayBjYXNlIGNhdGNoIGNsYXNzIGNvbnN0IGNvbnRpbnVlIGRlZmF1bHQgZGVsZXRlIGRvIGR5bmFtaWMgZWFjaCBlbHNlIGV4dGVuZHMgZmluYWwgZmluYWxseSBmb3IgZnVuY3Rpb24gZ2V0IGlmIGltcGxlbWVudHMgaW1wb3J0IGluIGluY2x1ZGUgaW5zdGFuY2VvZiBpbnRlcmZhY2UgaW50ZXJuYWwgaXMgbmFtZXNwYWNlIG5hdGl2ZSBuZXcgb3ZlcnJpZGUgcGFja2FnZSBwcml2YXRlIHByb3RlY3RlZCBwdWJsaWMgcmV0dXJuIHNldCBzdGF0aWMgc3VwZXIgc3dpdGNoIHRoaXMgdGhyb3cgdHJ5IHR5cGVvZiB1c2UgdmFyIHZvaWQgd2hpbGUgd2l0aCIsbGl0ZXJhbDoidHJ1ZSBmYWxzZSBudWxsIHVuZGVmaW5lZCJ9LGNvbnRhaW5zOltuLkFQT1NfU1RSSU5HX01PREUsbi5RVU9URV9TVFJJTkdfTU9ERSxuLkNfTElORV9DT01NRU5UX01PREUsbi5DX0JMT0NLX0NPTU1FTlRfTU9ERSxuLkNfTlVNQkVSX01PREUse2NsYXNzTmFtZToiY2xhc3MiLGJlZ2luS2V5d29yZHM6InBhY2thZ2UiLGVuZDovXHsvLGNvbnRhaW5zOltuLlRJVExFX01PREVdfSx7Y2xhc3NOYW1lOiJjbGFzcyIsYmVnaW5LZXl3b3JkczoiY2xhc3MgaW50ZXJmYWNlIixlbmQ6L1x7LyxleGNsdWRlRW5kOiEwLGNvbnRhaW5zOlt7YmVnaW5LZXl3b3JkczoiZXh0ZW5kcyBpbXBsZW1lbnRzIn0sbi5USVRMRV9NT0RFXX0se2NsYXNzTmFtZToibWV0YSIsYmVnaW5LZXl3b3JkczoiaW1wb3J0IGluY2x1ZGUiLGVuZDovOy8sa2V5d29yZHM6eyJtZXRhLWtleXdvcmQiOiJpbXBvcnQgaW5jbHVkZSJ9fSx7Y2xhc3NOYW1lOiJmdW5jdGlvbiIsYmVnaW5LZXl3b3JkczoiZnVuY3Rpb24iLGVuZDovW3s7XS8sZXhjbHVkZUVuZDohMCxpbGxlZ2FsOi9cUy8sY29udGFpbnM6W24uVElUTEVfTU9ERSx7Y2xhc3NOYW1lOiJwYXJhbXMiLGJlZ2luOi9cKC8sZW5kOi9cKS8sY29udGFpbnM6W24uQVBPU19TVFJJTkdfTU9ERSxuLlFVT1RFX1NUUklOR19NT0RFLG4uQ19MSU5FX0NPTU1FTlRfTU9ERSxuLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLG9dfSx7YmVnaW46ZSgvOlxzKi8saSl9XX0sbi5NRVRIT0RfR1VBUkRdLGlsbGVnYWw6LyMvfX1zLmV4cG9ydHM9dH0sNDA0NTE6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihlKXtjb25zdCB0PSJcXGQoX3xcXGQpKiIsbj0iW2VFXVstK10/Iit0LGE9dCsiKFxcLiIrdCsiKT8oIituKyIpPyIsaT0iXFx3KyIsbD0iXFxiKCIrKHQrIiMiK2krIihcXC4iK2krIik/IygiK24rIik/IikrInwiK2ErIikiLGM9IltBLVphLXpdKF8/W0EtWmEtejAtOS5dKSoiLF89YFtdXFx7XFx9JSMnImAsZD1lLkNPTU1FTlQoIi0tIiwiJCIpLGc9e2JlZ2luOiJcXHMrOlxccysiLGVuZDoiXFxzKig6PXw7fFxcKXw9PnwkKSIsaWxsZWdhbDpfLGNvbnRhaW5zOlt7YmVnaW5LZXl3b3JkczoibG9vcCBmb3IgZGVjbGFyZSBvdGhlcnMiLGVuZHNQYXJlbnQ6ITB9LHtjbGFzc05hbWU6ImtleXdvcmQiLGJlZ2luS2V5d29yZHM6Im5vdCBudWxsIGNvbnN0YW50IGFjY2VzcyBmdW5jdGlvbiBwcm9jZWR1cmUgaW4gb3V0IGFsaWFzZWQgZXhjZXB0aW9uIn0se2NsYXNzTmFtZToidHlwZSIsYmVnaW46YyxlbmRzUGFyZW50OiEwLHJlbGV2YW5jZTowfV19O3JldHVybntuYW1lOiJBZGEiLGNhc2VfaW5zZW5zaXRpdmU6ITAsa2V5d29yZHM6e2tleXdvcmQ6ImFib3J0IGVsc2UgbmV3IHJldHVybiBhYnMgZWxzaWYgbm90IHJldmVyc2UgYWJzdHJhY3QgZW5kIGFjY2VwdCBlbnRyeSBzZWxlY3QgYWNjZXNzIGV4Y2VwdGlvbiBvZiBzZXBhcmF0ZSBhbGlhc2VkIGV4aXQgb3Igc29tZSBhbGwgb3RoZXJzIHN1YnR5cGUgYW5kIGZvciBvdXQgc3luY2hyb25pemVkIGFycmF5IGZ1bmN0aW9uIG92ZXJyaWRpbmcgYXQgdGFnZ2VkIGdlbmVyaWMgcGFja2FnZSB0YXNrIGJlZ2luIGdvdG8gcHJhZ21hIHRlcm1pbmF0ZSBib2R5IHByaXZhdGUgdGhlbiBpZiBwcm9jZWR1cmUgdHlwZSBjYXNlIGluIHByb3RlY3RlZCBjb25zdGFudCBpbnRlcmZhY2UgaXMgcmFpc2UgdXNlIGRlY2xhcmUgcmFuZ2UgZGVsYXkgbGltaXRlZCByZWNvcmQgd2hlbiBkZWx0YSBsb29wIHJlbSB3aGlsZSBkaWdpdHMgcmVuYW1lcyB3aXRoIGRvIG1vZCByZXF1ZXVlIHhvciIsbGl0ZXJhbDoiVHJ1ZSBGYWxzZSJ9LGNvbnRhaW5zOltkLHtjbGFzc05hbWU6InN0cmluZyIsYmVnaW46LyIvLGVuZDovIi8sY29udGFpbnM6W3tiZWdpbjovIiIvLHJlbGV2YW5jZTowfV19LHtjbGFzc05hbWU6InN0cmluZyIsYmVnaW46LycuJy99LHtjbGFzc05hbWU6Im51bWJlciIsYmVnaW46bCxyZWxldmFuY2U6MH0se2NsYXNzTmFtZToic3ltYm9sIixiZWdpbjoiJyIrY30se2NsYXNzTmFtZToidGl0bGUiLGJlZ2luOiIoXFxid2l0aFxccyspPyhcXGJwcml2YXRlXFxzKyk/XFxicGFja2FnZVxccysoXFxiYm9keVxccyspPyIsZW5kOiIoaXN8JCkiLGtleXdvcmRzOiJwYWNrYWdlIGJvZHkiLGV4Y2x1ZGVCZWdpbjohMCxleGNsdWRlRW5kOiEwLGlsbGVnYWw6X30se2JlZ2luOiIoXFxiKHdpdGh8b3ZlcnJpZGluZylcXHMrKT9cXGIoZnVuY3Rpb258cHJvY2VkdXJlKVxccysiLGVuZDoiKFxcYmlzfFxcYndpdGh8XFxicmVuYW1lc3xcXClcXHMqOykiLGtleXdvcmRzOiJvdmVycmlkaW5nIGZ1bmN0aW9uIHByb2NlZHVyZSB3aXRoIGlzIHJlbmFtZXMgcmV0dXJuIixyZXR1cm5CZWdpbjohMCxjb250YWluczpbZCx7Y2xhc3NOYW1lOiJ0aXRsZSIsYmVnaW46IihcXGJ3aXRoXFxzKyk/XFxiKGZ1bmN0aW9ufHByb2NlZHVyZSlcXHMrIixlbmQ6IihcXCh8XFxzK3wkKSIsZXhjbHVkZUJlZ2luOiEwLGV4Y2x1ZGVFbmQ6ITAsaWxsZWdhbDpffSxnLHtjbGFzc05hbWU6InR5cGUiLGJlZ2luOiJcXGJyZXR1cm5cXHMrIixlbmQ6IihcXHMrfDt8JCkiLGtleXdvcmRzOiJyZXR1cm4iLGV4Y2x1ZGVCZWdpbjohMCxleGNsdWRlRW5kOiEwLGVuZHNQYXJlbnQ6ITAsaWxsZWdhbDpffV19LHtjbGFzc05hbWU6InR5cGUiLGJlZ2luOiJcXGIoc3ViKT90eXBlXFxzKyIsZW5kOiJcXHMrIixrZXl3b3JkczoidHlwZSIsZXhjbHVkZUJlZ2luOiEwLGlsbGVnYWw6X30sZ119fXMuZXhwb3J0cz1yfSw0NDUyMjpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGUpe3ZhciB0PXtjbGFzc05hbWU6ImJ1aWx0X2luIixiZWdpbjoiXFxiKHZvaWR8Ym9vbHxpbnR8aW50OHxpbnQxNnxpbnQzMnxpbnQ2NHx1aW50fHVpbnQ4fHVpbnQxNnx1aW50MzJ8dWludDY0fHN0cmluZ3xyZWZ8YXJyYXl8ZG91YmxlfGZsb2F0fGF1dG98ZGljdGlvbmFyeSkifSxuPXtjbGFzc05hbWU6InN5bWJvbCIsYmVnaW46IlthLXpBLVowLTlfXStAIn0sYT17Y2xhc3NOYW1lOiJrZXl3b3JkIixiZWdpbjoiPCIsZW5kOiI+Iixjb250YWluczpbdCxuXX07cmV0dXJuIHQuY29udGFpbnM9W2FdLG4uY29udGFpbnM9W2FdLHtuYW1lOiJBbmdlbFNjcmlwdCIsYWxpYXNlczpbImFzYyJdLGtleXdvcmRzOiJmb3IgaW58MCBicmVhayBjb250aW51ZSB3aGlsZSBkb3wwIHJldHVybiBpZiBlbHNlIGNhc2Ugc3dpdGNoIG5hbWVzcGFjZSBpcyBjYXN0IG9yIGFuZCB4b3Igbm90IGdldHwwIGluIGlub3V0fDEwIG91dCBvdmVycmlkZSBzZXR8MCBwcml2YXRlIHB1YmxpYyBjb25zdCBkZWZhdWx0fDAgZmluYWwgc2hhcmVkIGV4dGVybmFsIG1peGlufDEwIGVudW0gdHlwZWRlZiBmdW5jZGVmIHRoaXMgc3VwZXIgaW1wb3J0IGZyb20gaW50ZXJmYWNlIGFic3RyYWN0fDAgdHJ5IGNhdGNoIHByb3RlY3RlZCBleHBsaWNpdCBwcm9wZXJ0eSIsaWxsZWdhbDoiKF51c2luZ1xccytbQS1aYS16MC05X1xcLl0rOyR8XFxiZnVuY3Rpb25cXHMqW15cXChdKSIsY29udGFpbnM6W3tjbGFzc05hbWU6InN0cmluZyIsYmVnaW46IiciLGVuZDoiJyIsaWxsZWdhbDoiXFxuIixjb250YWluczpbZS5CQUNLU0xBU0hfRVNDQVBFXSxyZWxldmFuY2U6MH0se2NsYXNzTmFtZToic3RyaW5nIixiZWdpbjonIiIiJyxlbmQ6JyIiIid9LHtjbGFzc05hbWU6InN0cmluZyIsYmVnaW46JyInLGVuZDonIicsaWxsZWdhbDoiXFxuIixjb250YWluczpbZS5CQUNLU0xBU0hfRVNDQVBFXSxyZWxldmFuY2U6MH0sZS5DX0xJTkVfQ09NTUVOVF9NT0RFLGUuQ19CTE9DS19DT01NRU5UX01PREUse2NsYXNzTmFtZToic3RyaW5nIixiZWdpbjoiXlxccypcXFsiLGVuZDoiXFxdIn0se2JlZ2luS2V5d29yZHM6ImludGVyZmFjZSBuYW1lc3BhY2UiLGVuZDovXHsvLGlsbGVnYWw6Ils7LlxcLV0iLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJzeW1ib2wiLGJlZ2luOiJbYS16QS1aMC05X10rIn1dfSx7YmVnaW5LZXl3b3JkczoiY2xhc3MiLGVuZDovXHsvLGlsbGVnYWw6Ils7LlxcLV0iLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJzeW1ib2wiLGJlZ2luOiJbYS16QS1aMC05X10rIixjb250YWluczpbe2JlZ2luOiJbOixdXFxzKiIsY29udGFpbnM6W3tjbGFzc05hbWU6InN5bWJvbCIsYmVnaW46IlthLXpBLVowLTlfXSsifV19XX1dfSx0LG4se2NsYXNzTmFtZToibGl0ZXJhbCIsYmVnaW46IlxcYihudWxsfHRydWV8ZmFsc2UpIn0se2NsYXNzTmFtZToibnVtYmVyIixyZWxldmFuY2U6MCxiZWdpbjoiKC0/KShcXGIwW3hYYkJvT2REXVthLWZBLUYwLTldK3woXFxiXFxkKyhcXC5cXGQqKT9mP3xcXC5cXGQrZj8pKFtlRV1bLStdP1xcZCtmPyk/KSJ9XX19cy5leHBvcnRzPXJ9LDIxNDEwOmZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHIoZSl7Y29uc3QgdD17Y2xhc3NOYW1lOiJudW1iZXIiLGJlZ2luOi9bJCVdXGQrL30sbj17Y2xhc3NOYW1lOiJudW1iZXIiLGJlZ2luOi9cZCsvfSxhPXtjbGFzc05hbWU6Im51bWJlciIsYmVnaW46L1xkezEsM31cLlxkezEsM31cLlxkezEsM31cLlxkezEsM30oOlxkezEsNX0pPy99LGk9e2NsYXNzTmFtZToibnVtYmVyIixiZWdpbjovOlxkezEsNX0vfTtyZXR1cm57bmFtZToiQXBhY2hlIGNvbmZpZyIsYWxpYXNlczpbImFwYWNoZWNvbmYiXSxjYXNlX2luc2Vuc2l0aXZlOiEwLGNvbnRhaW5zOltlLkhBU0hfQ09NTUVOVF9NT0RFLHtjbGFzc05hbWU6InNlY3Rpb24iLGJlZ2luOi88XC8/LyxlbmQ6Lz4vLGNvbnRhaW5zOlthLGksZS5pbmhlcml0KGUuUVVPVEVfU1RSSU5HX01PREUse3JlbGV2YW5jZTowfSldfSx7Y2xhc3NOYW1lOiJhdHRyaWJ1dGUiLGJlZ2luOi9cdysvLHJlbGV2YW5jZTowLGtleXdvcmRzOntub21hcmt1cDoib3JkZXIgZGVueSBhbGxvdyBzZXRlbnYgcmV3cml0ZXJ1bGUgcmV3cml0ZWVuZ2luZSByZXdyaXRlY29uZCBkb2N1bWVudHJvb3Qgc2V0aGFuZGxlciBlcnJvcmRvY3VtZW50IGxvYWRtb2R1bGUgb3B0aW9ucyBoZWFkZXIgbGlzdGVuIHNlcnZlcnJvb3Qgc2VydmVybmFtZSJ9LHN0YXJ0czp7ZW5kOi8kLyxyZWxldmFuY2U6MCxrZXl3b3Jkczp7bGl0ZXJhbDoib24gb2ZmIGFsbCBkZW55IGFsbG93In0sY29udGFpbnM6W3tjbGFzc05hbWU6Im1ldGEiLGJlZ2luOi9cc1xbLyxlbmQ6L1xdJC99LHtjbGFzc05hbWU6InZhcmlhYmxlIixiZWdpbjovW1wkJV1cey8sZW5kOi9cfS8sY29udGFpbnM6WyJzZWxmIix0XX0sYSxuLGUuUVVPVEVfU1RSSU5HX01PREVdfX1dLGlsbGVnYWw6L1xTL319cy5leHBvcnRzPXJ9LDc2OTk3OmZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHIoYSl7cmV0dXJuIGE/dHlwZW9mIGE9PSJzdHJpbmciP2E6YS5zb3VyY2U6bnVsbH1mdW5jdGlvbiBlKC4uLmEpe3JldHVybiBhLm1hcChvPT5yKG8pKS5qb2luKCIiKX1mdW5jdGlvbiB0KC4uLmEpe3JldHVybiIoIithLm1hcChvPT5yKG8pKS5qb2luKCJ8IikrIikifWZ1bmN0aW9uIG4oYSl7Y29uc3QgaT1hLmluaGVyaXQoYS5RVU9URV9TVFJJTkdfTU9ERSx7aWxsZWdhbDpudWxsfSksbz17Y2xhc3NOYW1lOiJwYXJhbXMiLGJlZ2luOi9cKC8sZW5kOi9cKS8sY29udGFpbnM6WyJzZWxmIixhLkNfTlVNQkVSX01PREUsaV19LGw9YS5DT01NRU5UKC8tLS8sLyQvKSxjPWEuQ09NTUVOVCgvXChcKi8sL1wqXCkvLHtjb250YWluczpbInNlbGYiLGxdfSksXz1bbCxjLGEuSEFTSF9DT01NRU5UX01PREVdLGQ9Wy9hcGFydCBmcm9tLywvYXNpZGUgZnJvbS8sL2luc3RlYWQgb2YvLC9vdXQgb2YvLC9ncmVhdGVyIHRoYW4vLC9pc24ndHwoZG9lc24ndHxkb2VzIG5vdCkgKGVxdWFsfGNvbWUgYmVmb3JlfGNvbWUgYWZ0ZXJ8Y29udGFpbikvLC8oZ3JlYXRlcnxsZXNzKSB0aGFuKCBvciBlcXVhbCk/LywvKHN0YXJ0cz98ZW5kc3xiZWdpbnM/KSB3aXRoLywvY29udGFpbmVkIGJ5LywvY29tZXMgKGJlZm9yZXxhZnRlcikvLC9hIChyZWZ8cmVmZXJlbmNlKS8sL1BPU0lYIChmaWxlfHBhdGgpLywvKGRhdGV8dGltZSkgc3RyaW5nLywvcXVvdGVkIGZvcm0vXSxnPVsvY2xpcGJvYXJkIGluZm8vLC90aGUgY2xpcGJvYXJkLywvaW5mbyBmb3IvLC9saXN0IChkaXNrc3xmb2xkZXIpLywvbW91bnQgdm9sdW1lLywvcGF0aCB0by8sLyhjbG9zZXxvcGVuIGZvcikgYWNjZXNzLywvKGdldHxzZXQpIGVvZi8sL2N1cnJlbnQgZGF0ZS8sL2RvIHNoZWxsIHNjcmlwdC8sL2dldCB2b2x1bWUgc2V0dGluZ3MvLC9yYW5kb20gbnVtYmVyLywvc2V0IHZvbHVtZS8sL3N5c3RlbSBhdHRyaWJ1dGUvLC9zeXN0ZW0gaW5mby8sL3RpbWUgdG8gR01ULywvKGxvYWR8cnVufHN0b3JlKSBzY3JpcHQvLC9zY3JpcHRpbmcgY29tcG9uZW50cy8sL0FTQ0lJIChjaGFyYWN0ZXJ8bnVtYmVyKS8sL2xvY2FsaXplZCBzdHJpbmcvLC9jaG9vc2UgKGFwcGxpY2F0aW9ufGNvbG9yfGZpbGV8ZmlsZSBuYW1lfGZvbGRlcnxmcm9tIGxpc3R8cmVtb3RlIGFwcGxpY2F0aW9ufFVSTCkvLC9kaXNwbGF5IChhbGVydHxkaWFsb2cpL107cmV0dXJue25hbWU6IkFwcGxlU2NyaXB0IixhbGlhc2VzOlsib3Nhc2NyaXB0Il0sa2V5d29yZHM6e2tleXdvcmQ6ImFib3V0IGFib3ZlIGFmdGVyIGFnYWluc3QgYW5kIGFyb3VuZCBhcyBhdCBiYWNrIGJlZm9yZSBiZWdpbm5pbmcgYmVoaW5kIGJlbG93IGJlbmVhdGggYmVzaWRlIGJldHdlZW4gYnV0IGJ5IGNvbnNpZGVyaW5nIGNvbnRhaW4gY29udGFpbnMgY29udGludWUgY29weSBkaXYgZG9lcyBlaWdodGggZWxzZSBlbmQgZXF1YWwgZXF1YWxzIGVycm9yIGV2ZXJ5IGV4aXQgZmlmdGggZmlyc3QgZm9yIGZvdXJ0aCBmcm9tIGZyb250IGdldCBnaXZlbiBnbG9iYWwgaWYgaWdub3JpbmcgaW4gaW50byBpcyBpdCBpdHMgbGFzdCBsb2NhbCBtZSBtaWRkbGUgbW9kIG15IG5pbnRoIG5vdCBvZiBvbiBvbnRvIG9yIG92ZXIgcHJvcCBwcm9wZXJ0eSBwdXQgcmVmIHJlZmVyZW5jZSByZXBlYXQgcmV0dXJuaW5nIHNjcmlwdCBzZWNvbmQgc2V0IHNldmVudGggc2luY2Ugc2l4dGggc29tZSB0ZWxsIHRlbnRoIHRoYXQgdGhlfDAgdGhlbiB0aGlyZCB0aHJvdWdoIHRocnUgdGltZW91dCB0aW1lcyB0byB0cmFuc2FjdGlvbiB0cnkgdW50aWwgd2hlcmUgd2hpbGUgd2hvc2Ugd2l0aCB3aXRob3V0IixsaXRlcmFsOiJBcHBsZVNjcmlwdCBmYWxzZSBsaW5lZmVlZCByZXR1cm4gcGkgcXVvdGUgcmVzdWx0IHNwYWNlIHRhYiB0cnVlIixidWlsdF9pbjoiYWxpYXMgYXBwbGljYXRpb24gYm9vbGVhbiBjbGFzcyBjb25zdGFudCBkYXRlIGZpbGUgaW50ZWdlciBsaXN0IG51bWJlciByZWFsIHJlY29yZCBzdHJpbmcgdGV4dCBhY3RpdmF0ZSBiZWVwIGNvdW50IGRlbGF5IGxhdW5jaCBsb2cgb2Zmc2V0IHJlYWQgcm91bmQgcnVuIHNheSBzdW1tYXJpemUgd3JpdGUgY2hhcmFjdGVyIGNoYXJhY3RlcnMgY29udGVudHMgZGF5IGZyb250bW9zdCBpZCBpdGVtIGxlbmd0aCBtb250aCBuYW1lIHBhcmFncmFwaCBwYXJhZ3JhcGhzIHJlc3QgcmV2ZXJzZSBydW5uaW5nIHRpbWUgdmVyc2lvbiB3ZWVrZGF5IHdvcmQgd29yZHMgeWVhciJ9LGNvbnRhaW5zOltpLGEuQ19OVU1CRVJfTU9ERSx7Y2xhc3NOYW1lOiJidWlsdF9pbiIsYmVnaW46ZSgvXGIvLHQoLi4uZyksL1xiLyl9LHtjbGFzc05hbWU6ImJ1aWx0X2luIixiZWdpbjovXlxzKnJldHVyblxiL30se2NsYXNzTmFtZToibGl0ZXJhbCIsYmVnaW46L1xiKHRleHQgaXRlbSBkZWxpbWl0ZXJzfGN1cnJlbnQgYXBwbGljYXRpb258bWlzc2luZyB2YWx1ZSlcYi99LHtjbGFzc05hbWU6ImtleXdvcmQiLGJlZ2luOmUoL1xiLyx0KC4uLmQpLC9cYi8pfSx7YmVnaW5LZXl3b3Jkczoib24iLGlsbGVnYWw6L1skez07XG5dLyxjb250YWluczpbYS5VTkRFUlNDT1JFX1RJVExFX01PREUsb119LC4uLl9dLGlsbGVnYWw6L1wvXC98LT58PT58XFtcWy99fXMuZXhwb3J0cz1ufSw1ODk5MzpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGUpe2NvbnN0IHQ9IltBLVphLXpfXVswLTlBLVphLXpfXSoiLG49e2tleXdvcmQ6ImlmIGZvciB3aGlsZSB2YXIgbmV3IGZ1bmN0aW9uIGRvIHJldHVybiB2b2lkIGVsc2UgYnJlYWsiLGxpdGVyYWw6IkJhY2tTbGFzaCBEb3VibGVRdW90ZSBmYWxzZSBGb3J3YXJkU2xhc2ggSW5maW5pdHkgTmFOIE5ld0xpbmUgbnVsbCBQSSBTaW5nbGVRdW90ZSBUYWIgVGV4dEZvcm1hdHRpbmcgdHJ1ZSB1bmRlZmluZWQiLGJ1aWx0X2luOiJBYnMgQWNvcyBBbmdsZSBBdHRhY2htZW50cyBBcmVhIEFyZWFHZW9kZXRpYyBBc2luIEF0YW4gQXRhbjIgQXZlcmFnZSBCZWFyaW5nIEJvb2xlYW4gQnVmZmVyIEJ1ZmZlckdlb2RldGljIENlaWwgQ2VudHJvaWQgQ2xpcCBDb25zb2xlIENvbnN0cmFpbiBDb250YWlucyBDb3MgQ291bnQgQ3Jvc3NlcyBDdXQgRGF0ZSBEYXRlQWRkIERhdGVEaWZmIERheSBEZWNvZGUgRGVmYXVsdFZhbHVlIERpY3Rpb25hcnkgRGlmZmVyZW5jZSBEaXNqb2ludCBEaXN0YW5jZSBEaXN0YW5jZUdlb2RldGljIERpc3RpbmN0IERvbWFpbkNvZGUgRG9tYWluTmFtZSBFcXVhbHMgRXhwIEV4dGVudCBGZWF0dXJlIEZlYXR1cmVTZXQgRmVhdHVyZVNldEJ5QXNzb2NpYXRpb24gRmVhdHVyZVNldEJ5SWQgRmVhdHVyZVNldEJ5UG9ydGFsSXRlbSBGZWF0dXJlU2V0QnlSZWxhdGlvbnNoaXBOYW1lIEZlYXR1cmVTZXRCeVRpdGxlIEZlYXR1cmVTZXRCeVVybCBGaWx0ZXIgRmlyc3QgRmxvb3IgR2VvbWV0cnkgR3JvdXBCeSBHdWlkIEhhc0tleSBIb3VyIElJZiBJbmRleE9mIEludGVyc2VjdGlvbiBJbnRlcnNlY3RzIElzRW1wdHkgSXNOYW4gSXNTZWxmSW50ZXJzZWN0aW5nIExlbmd0aCBMZW5ndGhHZW9kZXRpYyBMb2cgTWF4IE1lYW4gTWlsbGlzZWNvbmQgTWluIE1pbnV0ZSBNb250aCBNdWx0aVBhcnRUb1NpbmdsZVBhcnQgTXVsdGlwb2ludCBOZXh0U2VxdWVuY2VWYWx1ZSBOb3cgTnVtYmVyIE9yZGVyQnkgT3ZlcmxhcHMgUG9pbnQgUG9seWdvbiBQb2x5bGluZSBQb3J0YWwgUG93IFJhbmRvbSBSZWxhdGUgUmV2ZXJzZSBSaW5nSXNDbG9ja1dpc2UgUm91bmQgU2Vjb25kIFNldEdlb21ldHJ5IFNpbiBTb3J0IFNxcnQgU3RkZXYgU3VtIFN5bW1ldHJpY0RpZmZlcmVuY2UgVGFuIFRleHQgVGltZXN0YW1wIFRvZGF5IFRvTG9jYWwgVG9wIFRvdWNoZXMgVG9VVEMgVHJhY2tDdXJyZW50VGltZSBUcmFja0dlb21ldHJ5V2luZG93IFRyYWNrSW5kZXggVHJhY2tTdGFydFRpbWUgVHJhY2tXaW5kb3cgVHlwZU9mIFVuaW9uIFVybEVuY29kZSBWYXJpYW5jZSBXZWVrZGF5IFdoZW4gV2l0aGluIFllYXIgIn0sYT17Y2xhc3NOYW1lOiJzeW1ib2wiLGJlZ2luOiJcXCRbZGF0YXN0b3JlfGZlYXR1cmV8bGF5ZXJ8bWFwfG1lYXN1cmV8c291cmNlZmVhdHVyZXxzb3VyY2VsYXllcnx0YXJnZXRmZWF0dXJlfHRhcmdldGxheWVyfHZhbHVlfHZpZXddKyJ9LGk9e2NsYXNzTmFtZToibnVtYmVyIix2YXJpYW50czpbe2JlZ2luOiJcXGIoMFtiQl1bMDFdKykifSx7YmVnaW46IlxcYigwW29PXVswLTddKykifSx7YmVnaW46ZS5DX05VTUJFUl9SRX1dLHJlbGV2YW5jZTowfSxvPXtjbGFzc05hbWU6InN1YnN0IixiZWdpbjoiXFwkXFx7IixlbmQ6IlxcfSIsa2V5d29yZHM6bixjb250YWluczpbXX0sbD17Y2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOiJgIixlbmQ6ImAiLGNvbnRhaW5zOltlLkJBQ0tTTEFTSF9FU0NBUEUsb119O28uY29udGFpbnM9W2UuQVBPU19TVFJJTkdfTU9ERSxlLlFVT1RFX1NUUklOR19NT0RFLGwsaSxlLlJFR0VYUF9NT0RFXTtjb25zdCBjPW8uY29udGFpbnMuY29uY2F0KFtlLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLGUuQ19MSU5FX0NPTU1FTlRfTU9ERV0pO3JldHVybntuYW1lOiJBcmNHSVMgQXJjYWRlIixrZXl3b3JkczpuLGNvbnRhaW5zOltlLkFQT1NfU1RSSU5HX01PREUsZS5RVU9URV9TVFJJTkdfTU9ERSxsLGUuQ19MSU5FX0NPTU1FTlRfTU9ERSxlLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLGEsaSx7YmVnaW46L1t7LF1ccyovLHJlbGV2YW5jZTowLGNvbnRhaW5zOlt7YmVnaW46dCsiXFxzKjoiLHJldHVybkJlZ2luOiEwLHJlbGV2YW5jZTowLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJhdHRyIixiZWdpbjp0LHJlbGV2YW5jZTowfV19XX0se2JlZ2luOiIoIitlLlJFX1NUQVJURVJTX1JFKyJ8XFxiKHJldHVybilcXGIpXFxzKiIsa2V5d29yZHM6InJldHVybiIsY29udGFpbnM6W2UuQ19MSU5FX0NPTU1FTlRfTU9ERSxlLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLGUuUkVHRVhQX01PREUse2NsYXNzTmFtZToiZnVuY3Rpb24iLGJlZ2luOiIoXFwoLio/XFwpfCIrdCsiKVxccyo9PiIscmV0dXJuQmVnaW46ITAsZW5kOiJcXHMqPT4iLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJwYXJhbXMiLHZhcmlhbnRzOlt7YmVnaW46dH0se2JlZ2luOi9cKFxzKlwpL30se2JlZ2luOi9cKC8sZW5kOi9cKS8sZXhjbHVkZUJlZ2luOiEwLGV4Y2x1ZGVFbmQ6ITAsa2V5d29yZHM6bixjb250YWluczpjfV19XX1dLHJlbGV2YW5jZTowfSx7Y2xhc3NOYW1lOiJmdW5jdGlvbiIsYmVnaW5LZXl3b3JkczoiZnVuY3Rpb24iLGVuZDovXHsvLGV4Y2x1ZGVFbmQ6ITAsY29udGFpbnM6W2UuaW5oZXJpdChlLlRJVExFX01PREUse2JlZ2luOnR9KSx7Y2xhc3NOYW1lOiJwYXJhbXMiLGJlZ2luOi9cKC8sZW5kOi9cKS8sZXhjbHVkZUJlZ2luOiEwLGV4Y2x1ZGVFbmQ6ITAsY29udGFpbnM6Y31dLGlsbGVnYWw6L1xbfCUvfSx7YmVnaW46L1wkWyguXS99XSxpbGxlZ2FsOi8jKD8hISkvfX1zLmV4cG9ydHM9cn0sMTQxNTI6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihvKXtyZXR1cm4gbz90eXBlb2Ygbz09InN0cmluZyI/bzpvLnNvdXJjZTpudWxsfWZ1bmN0aW9uIGUobyl7cmV0dXJuIG4oIig/PSIsbywiKSIpfWZ1bmN0aW9uIHQobyl7cmV0dXJuIG4oIigiLG8sIik/Iil9ZnVuY3Rpb24gbiguLi5vKXtyZXR1cm4gby5tYXAoYz0+cihjKSkuam9pbigiIil9ZnVuY3Rpb24gYShvKXtjb25zdCBsPW8uQ09NTUVOVCgiLy8iLCIkIix7Y29udGFpbnM6W3tiZWdpbjovXFxcbi99XX0pLGM9ImRlY2x0eXBlXFwoYXV0b1xcKSIsXz0iW2EtekEtWl9dXFx3Kjo6IixnPSIoIitjKyJ8Iit0KF8pKyJbYS16QS1aX11cXHcqIit0KCI8W148Pl0rPiIpKyIpIixFPXtjbGFzc05hbWU6ImtleXdvcmQiLGJlZ2luOiJcXGJbYS16XFxkX10qX3RcXGIifSxtPXtjbGFzc05hbWU6InN0cmluZyIsdmFyaWFudHM6W3tiZWdpbjonKHU4P3xVfEwpPyInLGVuZDonIicsaWxsZWdhbDoiXFxuIixjb250YWluczpbby5CQUNLU0xBU0hfRVNDQVBFXX0se2JlZ2luOiIodTg/fFV8TCk/JygiKyJcXFxcKHhbMC05QS1GYS1mXXsyfXx1WzAtOUEtRmEtZl17NCw4fXxbMC03XXszfXxcXFMpIisifC4pIixlbmQ6IiciLGlsbGVnYWw6Ii4ifSxvLkVORF9TQU1FX0FTX0JFR0lOKHtiZWdpbjovKD86dTg/fFV8TCk/UiIoW14oKVxcIF17MCwxNn0pXCgvLGVuZDovXCkoW14oKVxcIF17MCwxNn0pIi99KV19LFM9e2NsYXNzTmFtZToibnVtYmVyIix2YXJpYW50czpbe2JlZ2luOiJcXGIoMGJbMDEnXSspIn0se2JlZ2luOiIoLT8pXFxiKFtcXGQnXSsoXFwuW1xcZCddKik/fFxcLltcXGQnXSspKChsbHxMTHxsfEwpKHV8VSk/fCh1fFUpKGxsfExMfGx8TCk/fGZ8RnxifEIpIn0se2JlZ2luOiIoLT8pKFxcYjBbeFhdW2EtZkEtRjAtOSddK3woXFxiW1xcZCddKyhcXC5bXFxkJ10qKT98XFwuW1xcZCddKykoW2VFXVstK10/W1xcZCddKyk/KSJ9XSxyZWxldmFuY2U6MH0sVD17Y2xhc3NOYW1lOiJtZXRhIixiZWdpbjovI1xzKlthLXpdK1xiLyxlbmQ6LyQvLGtleXdvcmRzOnsibWV0YS1rZXl3b3JkIjoiaWYgZWxzZSBlbGlmIGVuZGlmIGRlZmluZSB1bmRlZiB3YXJuaW5nIGVycm9yIGxpbmUgcHJhZ21hIF9QcmFnbWEgaWZkZWYgaWZuZGVmIGluY2x1ZGUifSxjb250YWluczpbe2JlZ2luOi9cXFxuLyxyZWxldmFuY2U6MH0sby5pbmhlcml0KG0se2NsYXNzTmFtZToibWV0YS1zdHJpbmcifSkse2NsYXNzTmFtZToibWV0YS1zdHJpbmciLGJlZ2luOi88Lio/Pi99LGwsby5DX0JMT0NLX0NPTU1FTlRfTU9ERV19LGI9e2NsYXNzTmFtZToidGl0bGUiLGJlZ2luOnQoXykrby5JREVOVF9SRSxyZWxldmFuY2U6MH0sZj10KF8pK28uSURFTlRfUkUrIlxccypcXCgiLE89e2tleXdvcmQ6ImludCBmbG9hdCB3aGlsZSBwcml2YXRlIGNoYXIgY2hhcjhfdCBjaGFyMTZfdCBjaGFyMzJfdCBjYXRjaCBpbXBvcnQgbW9kdWxlIGV4cG9ydCB2aXJ0dWFsIG9wZXJhdG9yIHNpemVvZiBkeW5hbWljX2Nhc3R8MTAgdHlwZWRlZiBjb25zdF9jYXN0fDEwIGNvbnN0IGZvciBzdGF0aWNfY2FzdHwxMCB1bmlvbiBuYW1lc3BhY2UgdW5zaWduZWQgbG9uZyB2b2xhdGlsZSBzdGF0aWMgcHJvdGVjdGVkIGJvb2wgdGVtcGxhdGUgbXV0YWJsZSBpZiBwdWJsaWMgZnJpZW5kIGRvIGdvdG8gYXV0byB2b2lkIGVudW0gZWxzZSBicmVhayBleHRlcm4gdXNpbmcgYXNtIGNhc2UgdHlwZWlkIHdjaGFyX3Qgc2hvcnQgcmVpbnRlcnByZXRfY2FzdHwxMCBkZWZhdWx0IGRvdWJsZSByZWdpc3RlciBleHBsaWNpdCBzaWduZWQgdHlwZW5hbWUgdHJ5IHRoaXMgc3dpdGNoIGNvbnRpbnVlIGlubGluZSBkZWxldGUgYWxpZ25hcyBhbGlnbm9mIGNvbnN0ZXhwciBjb25zdGV2YWwgY29uc3Rpbml0IGRlY2x0eXBlIGNvbmNlcHQgY29fYXdhaXQgY29fcmV0dXJuIGNvX3lpZWxkIHJlcXVpcmVzIG5vZXhjZXB0IHN0YXRpY19hc3NlcnQgdGhyZWFkX2xvY2FsIHJlc3RyaWN0IGZpbmFsIG92ZXJyaWRlIGF0b21pY19ib29sIGF0b21pY19jaGFyIGF0b21pY19zY2hhciBhdG9taWNfdWNoYXIgYXRvbWljX3Nob3J0IGF0b21pY191c2hvcnQgYXRvbWljX2ludCBhdG9taWNfdWludCBhdG9taWNfbG9uZyBhdG9taWNfdWxvbmcgYXRvbWljX2xsb25nIGF0b21pY191bGxvbmcgbmV3IHRocm93IHJldHVybiBhbmQgYW5kX2VxIGJpdGFuZCBiaXRvciBjb21wbCBub3Qgbm90X2VxIG9yIG9yX2VxIHhvciB4b3JfZXEiLGJ1aWx0X2luOiJfQm9vbCBfQ29tcGxleCBfSW1hZ2luYXJ5IixfcmVsZXZhbmNlX2hpbnRzOlsiYXNpbiIsImF0YW4yIiwiYXRhbiIsImNhbGxvYyIsImNlaWwiLCJjb3NoIiwiY29zIiwiZXhpdCIsImV4cCIsImZhYnMiLCJmbG9vciIsImZtb2QiLCJmcHJpbnRmIiwiZnB1dHMiLCJmcmVlIiwiZnJleHAiLCJhdXRvX3B0ciIsImRlcXVlIiwibGlzdCIsInF1ZXVlIiwic3RhY2siLCJ2ZWN0b3IiLCJtYXAiLCJzZXQiLCJwYWlyIiwiYml0c2V0IiwibXVsdGlzZXQiLCJtdWx0aW1hcCIsInVub3JkZXJlZF9zZXQiLCJmc2NhbmYiLCJmdXR1cmUiLCJpc2FsbnVtIiwiaXNhbHBoYSIsImlzY250cmwiLCJpc2RpZ2l0IiwiaXNncmFwaCIsImlzbG93ZXIiLCJpc3ByaW50IiwiaXNwdW5jdCIsImlzc3BhY2UiLCJpc3VwcGVyIiwiaXN4ZGlnaXQiLCJ0b2xvd2VyIiwidG91cHBlciIsImxhYnMiLCJsZGV4cCIsImxvZzEwIiwibG9nIiwibWFsbG9jIiwicmVhbGxvYyIsIm1lbWNociIsIm1lbWNtcCIsIm1lbWNweSIsIm1lbXNldCIsIm1vZGYiLCJwb3ciLCJwcmludGYiLCJwdXRjaGFyIiwicHV0cyIsInNjYW5mIiwic2luaCIsInNpbiIsInNucHJpbnRmIiwic3ByaW50ZiIsInNxcnQiLCJzc2NhbmYiLCJzdHJjYXQiLCJzdHJjaHIiLCJzdHJjbXAiLCJzdHJjcHkiLCJzdHJjc3BuIiwic3RybGVuIiwic3RybmNhdCIsInN0cm5jbXAiLCJzdHJuY3B5Iiwic3RycGJyayIsInN0cnJjaHIiLCJzdHJzcG4iLCJzdHJzdHIiLCJ0YW5oIiwidGFuIiwidW5vcmRlcmVkX21hcCIsInVub3JkZXJlZF9tdWx0aXNldCIsInVub3JkZXJlZF9tdWx0aW1hcCIsInByaW9yaXR5X3F1ZXVlIiwibWFrZV9wYWlyIiwiYXJyYXkiLCJzaGFyZWRfcHRyIiwiYWJvcnQiLCJ0ZXJtaW5hdGUiLCJhYnMiLCJhY29zIiwidmZwcmludGYiLCJ2cHJpbnRmIiwidnNwcmludGYiLCJlbmRsIiwiaW5pdGlhbGl6ZXJfbGlzdCIsInVuaXF1ZV9wdHIiLCJjb21wbGV4IiwiaW1hZ2luYXJ5Iiwic3RkIiwic3RyaW5nIiwid3N0cmluZyIsImNpbiIsImNvdXQiLCJjZXJyIiwiY2xvZyIsInN0ZGluIiwic3Rkb3V0Iiwic3RkZXJyIiwic3RyaW5nc3RyZWFtIiwiaXN0cmluZ3N0cmVhbSIsIm9zdHJpbmdzdHJlYW0iXSxsaXRlcmFsOiJ0cnVlIGZhbHNlIG51bGxwdHIgTlVMTCJ9LEQ9e2NsYXNzTmFtZToiZnVuY3Rpb24uZGlzcGF0Y2giLHJlbGV2YW5jZTowLGtleXdvcmRzOk8sYmVnaW46bigvXGIvLC8oPyFkZWNsdHlwZSkvLC8oPyFpZikvLC8oPyFmb3IpLywvKD8hd2hpbGUpLyxvLklERU5UX1JFLGUoL1xzKlwoLykpfSx5PVtELFQsRSxsLG8uQ19CTE9DS19DT01NRU5UX01PREUsUyxtXSxBPXt2YXJpYW50czpbe2JlZ2luOi89LyxlbmQ6LzsvfSx7YmVnaW46L1woLyxlbmQ6L1wpL30se2JlZ2luS2V5d29yZHM6Im5ldyB0aHJvdyByZXR1cm4gZWxzZSIsZW5kOi87L31dLGtleXdvcmRzOk8sY29udGFpbnM6eS5jb25jYXQoW3tiZWdpbjovXCgvLGVuZDovXCkvLGtleXdvcmRzOk8sY29udGFpbnM6eS5jb25jYXQoWyJzZWxmIl0pLHJlbGV2YW5jZTowfV0pLHJlbGV2YW5jZTowfSxrPXtjbGFzc05hbWU6ImZ1bmN0aW9uIixiZWdpbjoiKCIrZysiW1xcKiZcXHNdKykrIitmLHJldHVybkJlZ2luOiEwLGVuZDovW3s7PV0vLGV4Y2x1ZGVFbmQ6ITAsa2V5d29yZHM6TyxpbGxlZ2FsOi9bXlx3XHNcKiY6PD4uXS8sY29udGFpbnM6W3tiZWdpbjpjLGtleXdvcmRzOk8scmVsZXZhbmNlOjB9LHtiZWdpbjpmLHJldHVybkJlZ2luOiEwLGNvbnRhaW5zOltiXSxyZWxldmFuY2U6MH0se2JlZ2luOi86Oi8scmVsZXZhbmNlOjB9LHtiZWdpbjovOi8sZW5kc1dpdGhQYXJlbnQ6ITAsY29udGFpbnM6W20sU119LHtjbGFzc05hbWU6InBhcmFtcyIsYmVnaW46L1woLyxlbmQ6L1wpLyxrZXl3b3JkczpPLHJlbGV2YW5jZTowLGNvbnRhaW5zOltsLG8uQ19CTE9DS19DT01NRU5UX01PREUsbSxTLEUse2JlZ2luOi9cKC8sZW5kOi9cKS8sa2V5d29yZHM6TyxyZWxldmFuY2U6MCxjb250YWluczpbInNlbGYiLGwsby5DX0JMT0NLX0NPTU1FTlRfTU9ERSxtLFMsRV19XX0sRSxsLG8uQ19CTE9DS19DT01NRU5UX01PREUsVF19O3JldHVybntuYW1lOiJDKysiLGFsaWFzZXM6WyJjYyIsImMrKyIsImgrKyIsImhwcCIsImhoIiwiaHh4IiwiY3h4Il0sa2V5d29yZHM6TyxpbGxlZ2FsOiI8LyIsY2xhc3NOYW1lQWxpYXNlczp7ImZ1bmN0aW9uLmRpc3BhdGNoIjoiYnVpbHRfaW4ifSxjb250YWluczpbXS5jb25jYXQoQSxrLEQseSxbVCx7YmVnaW46IlxcYihkZXF1ZXxsaXN0fHF1ZXVlfHByaW9yaXR5X3F1ZXVlfHBhaXJ8c3RhY2t8dmVjdG9yfG1hcHxzZXR8Yml0c2V0fG11bHRpc2V0fG11bHRpbWFwfHVub3JkZXJlZF9tYXB8dW5vcmRlcmVkX3NldHx1bm9yZGVyZWRfbXVsdGlzZXR8dW5vcmRlcmVkX211bHRpbWFwfGFycmF5KVxccyo8IixlbmQ6Ij4iLGtleXdvcmRzOk8sY29udGFpbnM6WyJzZWxmIixFXX0se2JlZ2luOm8uSURFTlRfUkUrIjo6IixrZXl3b3JkczpPfSx7Y2xhc3NOYW1lOiJjbGFzcyIsYmVnaW5LZXl3b3JkczoiZW51bSBjbGFzcyBzdHJ1Y3QgdW5pb24iLGVuZDovW3s7Ojw+PV0vLGNvbnRhaW5zOlt7YmVnaW5LZXl3b3JkczoiZmluYWwgY2xhc3Mgc3RydWN0In0sby5USVRMRV9NT0RFXX1dKSxleHBvcnRzOntwcmVwcm9jZXNzb3I6VCxzdHJpbmdzOm0sa2V5d29yZHM6T319fWZ1bmN0aW9uIGkobyl7Y29uc3QgbD17a2V5d29yZDoiYm9vbGVhbiBieXRlIHdvcmQgU3RyaW5nIixidWlsdF9pbjoiS2V5Ym9hcmRDb250cm9sbGVyIE1vdXNlQ29udHJvbGxlciBTb2Z0d2FyZVNlcmlhbCBFdGhlcm5ldFNlcnZlciBFdGhlcm5ldENsaWVudCBMaXF1aWRDcnlzdGFsIFJvYm90Q29udHJvbCBHU01Wb2ljZUNhbGwgRXRoZXJuZXRVRFAgRXNwbG9yYVRGVCBIdHRwQ2xpZW50IFJvYm90TW90b3IgV2lGaUNsaWVudCBHU01TY2FubmVyIEZpbGVTeXN0ZW0gU2NoZWR1bGVyIEdTTVNlcnZlciBZdW5DbGllbnQgWXVuU2VydmVyIElQQWRkcmVzcyBHU01DbGllbnQgR1NNTW9kZW0gS2V5Ym9hcmQgRXRoZXJuZXQgQ29uc29sZSBHU01CYW5kIEVzcGxvcmEgU3RlcHBlciBQcm9jZXNzIFdpRmlVRFAgR1NNX1NNUyBNYWlsYm94IFVTQkhvc3QgRmlybWF0YSBQSW1hZ2UgQ2xpZW50IFNlcnZlciBHU01QSU4gRmlsZUlPIEJyaWRnZSBTZXJpYWwgRUVQUk9NIFN0cmVhbSBNb3VzZSBBdWRpbyBTZXJ2byBGaWxlIFRhc2sgR1BSUyBXaUZpIFdpcmUgVEZUIEdTTSBTUEkgU0QgIixfOiJzZXR1cCBsb29wIHJ1blNoZWxsQ29tbWFuZEFzeW5jaHJvbm91c2x5IGFuYWxvZ1dyaXRlUmVzb2x1dGlvbiByZXRyaWV2ZUNhbGxpbmdOdW1iZXIgcHJpbnRGaXJtd2FyZVZlcnNpb24gYW5hbG9nUmVhZFJlc29sdXRpb24gc2VuZERpZ2l0YWxQb3J0UGFpciBub0xpc3Rlbk9uTG9jYWxob3N0IHJlYWRKb3lzdGlja0J1dHRvbiBzZXRGaXJtd2FyZVZlcnNpb24gcmVhZEpveXN0aWNrU3dpdGNoIHNjcm9sbERpc3BsYXlSaWdodCBnZXRWb2ljZUNhbGxTdGF0dXMgc2Nyb2xsRGlzcGxheUxlZnQgd3JpdGVNaWNyb3NlY29uZHMgZGVsYXlNaWNyb3NlY29uZHMgYmVnaW5UcmFuc21pc3Npb24gZ2V0U2lnbmFsU3RyZW5ndGggcnVuQXN5bmNocm9ub3VzbHkgZ2V0QXN5bmNocm9ub3VzbHkgbGlzdGVuT25Mb2NhbGhvc3QgZ2V0Q3VycmVudENhcnJpZXIgcmVhZEFjY2VsZXJvbWV0ZXIgbWVzc2FnZUF2YWlsYWJsZSBzZW5kRGlnaXRhbFBvcnRzIGxpbmVGb2xsb3dDb25maWcgY291bnRyeU5hbWVXcml0ZSBydW5TaGVsbENvbW1hbmQgcmVhZFN0cmluZ1VudGlsIHJld2luZERpcmVjdG9yeSByZWFkVGVtcGVyYXR1cmUgc2V0Q2xvY2tEaXZpZGVyIHJlYWRMaWdodFNlbnNvciBlbmRUcmFuc21pc3Npb24gYW5hbG9nUmVmZXJlbmNlIGRldGFjaEludGVycnVwdCBjb3VudHJ5TmFtZVJlYWQgYXR0YWNoSW50ZXJydXB0IGVuY3J5cHRpb25UeXBlIHJlYWRCeXRlc1VudGlsIHJvYm90TmFtZVdyaXRlIHJlYWRNaWNyb3Bob25lIHJvYm90TmFtZVJlYWQgY2l0eU5hbWVXcml0ZSB1c2VyTmFtZVdyaXRlIHJlYWRKb3lzdGlja1kgcmVhZEpveXN0aWNrWCBtb3VzZVJlbGVhc2VkIG9wZW5OZXh0RmlsZSBzY2FuTmV0d29ya3Mgbm9JbnRlcnJ1cHRzIGRpZ2l0YWxXcml0ZSBiZWdpblNwZWFrZXIgbW91c2VQcmVzc2VkIGlzQWN0aW9uRG9uZSBtb3VzZURyYWdnZWQgZGlzcGxheUxvZ29zIG5vQXV0b3Njcm9sbCBhZGRQYXJhbWV0ZXIgcmVtb3RlTnVtYmVyIGdldE1vZGlmaWVycyBrZXlib2FyZFJlYWQgdXNlck5hbWVSZWFkIHdhaXRDb250aW51ZSBwcm9jZXNzSW5wdXQgcGFyc2VDb21tYW5kIHByaW50VmVyc2lvbiByZWFkTmV0d29ya3Mgd3JpdGVNZXNzYWdlIGJsaW5rVmVyc2lvbiBjaXR5TmFtZVJlYWQgcmVhZE1lc3NhZ2Ugc2V0RGF0YU1vZGUgcGFyc2VQYWNrZXQgaXNMaXN0ZW5pbmcgc2V0Qml0T3JkZXIgYmVnaW5QYWNrZXQgaXNEaXJlY3RvcnkgbW90b3JzV3JpdGUgZHJhd0NvbXBhc3MgZGlnaXRhbFJlYWQgY2xlYXJTY3JlZW4gc2VyaWFsRXZlbnQgcmlnaHRUb0xlZnQgc2V0VGV4dFNpemUgbGVmdFRvUmlnaHQgcmVxdWVzdEZyb20ga2V5UmVsZWFzZWQgY29tcGFzc1JlYWQgYW5hbG9nV3JpdGUgaW50ZXJydXB0cyBXaUZpU2VydmVyIGRpc2Nvbm5lY3QgcGxheU1lbG9keSBwYXJzZUZsb2F0IGF1dG9zY3JvbGwgZ2V0UElOVXNlZCBzZXRQSU5Vc2VkIHNldFRpbWVvdXQgc2VuZEFuYWxvZyByZWFkU2xpZGVyIGFuYWxvZ1JlYWQgYmVnaW5Xcml0ZSBjcmVhdGVDaGFyIG1vdG9yc1N0b3Aga2V5UHJlc3NlZCB0ZW1wb1dyaXRlIHJlYWRCdXR0b24gc3VibmV0TWFzayBkZWJ1Z1ByaW50IG1hY0FkZHJlc3Mgd3JpdGVHcmVlbiByYW5kb21TZWVkIGF0dGFjaEdQUlMgcmVhZFN0cmluZyBzZW5kU3RyaW5nIHJlbW90ZVBvcnQgcmVsZWFzZUFsbCBtb3VzZU1vdmVkIGJhY2tncm91bmQgZ2V0WENoYW5nZSBnZXRZQ2hhbmdlIGFuc3dlckNhbGwgZ2V0UmVzdWx0IHZvaWNlQ2FsbCBlbmRQYWNrZXQgY29uc3RyYWluIGdldFNvY2tldCB3cml0ZUpTT04gZ2V0QnV0dG9uIGF2YWlsYWJsZSBjb25uZWN0ZWQgZmluZFVudGlsIHJlYWRCeXRlcyBleGl0VmFsdWUgcmVhZEdyZWVuIHdyaXRlQmx1ZSBzdGFydExvb3AgSVBBZGRyZXNzIGlzUHJlc3NlZCBzZW5kU3lzZXggcGF1c2VNb2RlIGdhdGV3YXlJUCBzZXRDdXJzb3IgZ2V0T2VtS2V5IHR1bmVXcml0ZSBub0Rpc3BsYXkgbG9hZEltYWdlIHN3aXRjaFBJTiBvblJlcXVlc3Qgb25SZWNlaXZlIGNoYW5nZVBJTiBwbGF5RmlsZSBub0J1ZmZlciBwYXJzZUludCBvdmVyZmxvdyBjaGVja1BJTiBrbm9iUmVhZCBiZWdpblRGVCBiaXRDbGVhciB1cGRhdGVJUiBiaXRXcml0ZSBwb3NpdGlvbiB3cml0ZVJHQiBoaWdoQnl0ZSB3cml0ZVJlZCBzZXRTcGVlZCByZWFkQmx1ZSBub1N0cm9rZSByZW1vdGVJUCB0cmFuc2ZlciBzaHV0ZG93biBoYW5nQ2FsbCBiZWdpblNNUyBlbmRXcml0ZSBhdHRhY2hlZCBtYWludGFpbiBub0N1cnNvciBjaGVja1JlZyBjaGVja1BVSyBzaGlmdE91dCBpc1ZhbGlkIHNoaWZ0SW4gcHVsc2VJbiBjb25uZWN0IHByaW50bG4gbG9jYWxJUCBwaW5Nb2RlIGdldElNRUkgZGlzcGxheSBub0JsaW5rIHByb2Nlc3MgZ2V0QmFuZCBydW5uaW5nIGJlZ2luU0QgZHJhd0JNUCBsb3dCeXRlIHNldEJhbmQgcmVsZWFzZSBiaXRSZWFkIHByZXBhcmUgcG9pbnRUbyByZWFkUmVkIHNldE1vZGUgbm9GaWxsIHJlbW92ZSBsaXN0ZW4gc3Ryb2tlIGRldGFjaCBhdHRhY2ggbm9Ub25lIGV4aXN0cyBidWZmZXIgaGVpZ2h0IGJpdFNldCBjaXJjbGUgY29uZmlnIGN1cnNvciByYW5kb20gSVJyZWFkIHNldEROUyBlbmRTTVMgZ2V0S2V5IG1pY3JvcyBtaWxsaXMgYmVnaW4gcHJpbnQgd3JpdGUgcmVhZHkgZmx1c2ggd2lkdGggaXNQSU4gYmxpbmsgY2xlYXIgcHJlc3MgbWtkaXIgcm1kaXIgY2xvc2UgcG9pbnQgeWllbGQgaW1hZ2UgQlNTSUQgY2xpY2sgZGVsYXkgcmVhZCB0ZXh0IG1vdmUgcGVlayBiZWVwIHJlY3QgbGluZSBvcGVuIHNlZWsgZmlsbCBzaXplIHR1cm4gc3RvcCBob21lIGZpbmQgc3RlcCB0b25lIHNxcnQgUlNTSSBTU0lEIGVuZCBiaXQgdGFuIGNvcyBzaW4gcG93IG1hcCBhYnMgbWF4IG1pbiBnZXQgcnVuIHB1dCIsbGl0ZXJhbDoiRElHSVRBTF9NRVNTQUdFIEZJUk1BVEFfU1RSSU5HIEFOQUxPR19NRVNTQUdFIFJFUE9SVF9ESUdJVEFMIFJFUE9SVF9BTkFMT0cgSU5QVVRfUFVMTFVQIFNFVF9QSU5fTU9ERSBJTlRFUk5BTDJWNTYgU1lTVEVNX1JFU0VUIExFRF9CVUlMVElOIElOVEVSTkFMMVYxIFNZU0VYX1NUQVJUIElOVEVSTkFMIEVYVEVSTkFMIERFRkFVTFQgT1VUUFVUIElOUFVUIEhJR0ggTE9XIn0sYz1hKG8pLF89Yy5rZXl3b3JkcztyZXR1cm4gXy5rZXl3b3JkKz0iICIrbC5rZXl3b3JkLF8ubGl0ZXJhbCs9IiAiK2wubGl0ZXJhbCxfLmJ1aWx0X2luKz0iICIrbC5idWlsdF9pbixfLl8rPSIgIitsLl8sYy5uYW1lPSJBcmR1aW5vIixjLmFsaWFzZXM9WyJpbm8iXSxjLnN1cGVyc2V0T2Y9ImNwcCIsY31zLmV4cG9ydHM9aX0sNDMxODM6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihlKXtjb25zdCB0PXt2YXJpYW50czpbZS5DT01NRU5UKCJeWyBcXHRdKig/PSMpIiwiJCIse3JlbGV2YW5jZTowLGV4Y2x1ZGVCZWdpbjohMH0pLGUuQ09NTUVOVCgiWztAXSIsIiQiLHtyZWxldmFuY2U6MH0pLGUuQ19MSU5FX0NPTU1FTlRfTU9ERSxlLkNfQkxPQ0tfQ09NTUVOVF9NT0RFXX07cmV0dXJue25hbWU6IkFSTSBBc3NlbWJseSIsY2FzZV9pbnNlbnNpdGl2ZTohMCxhbGlhc2VzOlsiYXJtIl0sa2V5d29yZHM6eyRwYXR0ZXJuOiJcXC4/IitlLklERU5UX1JFLG1ldGE6Ii4yYnl0ZSAuNGJ5dGUgLmFsaWduIC5hc2NpaSAuYXNjaXogLmJhbGlnbiAuYnl0ZSAuY29kZSAuZGF0YSAuZWxzZSAuZW5kIC5lbmRpZiAuZW5kbSAuZW5kciAuZXF1IC5lcnIgLmV4aXRtIC5leHRlcm4gLmdsb2JhbCAuaHdvcmQgLmlmIC5pZmRlZiAuaWZuZGVmIC5pbmNsdWRlIC5pcnAgLmxvbmcgLm1hY3JvIC5yZXB0IC5yZXEgLnNlY3Rpb24gLnNldCAuc2tpcCAuc3BhY2UgLnRleHQgLndvcmQgLmFybSAudGh1bWIgLmNvZGUxNiAuY29kZTMyIC5mb3JjZV90aHVtYiAudGh1bWJfZnVuYyAubHRvcmcgQUxJQVMgQUxJR04gQVJNIEFSRUEgQVNTRVJUIEFUVFIgQ04gQ09ERSBDT0RFMTYgQ09ERTMyIENPTU1PTiBDUCBEQVRBIERDQiBEQ0QgRENEVSBEQ0RPIERDRkQgRENGRFUgRENJIERDUSBEQ1FVIERDVyBEQ1dVIEROIEVMSUYgRUxTRSBFTkQgRU5ERlVOQyBFTkRJRiBFTkRQIEVOVFJZIEVRVSBFWFBPUlQgRVhQT1JUQVMgRVhURVJOIEZJRUxEIEZJTEwgRlVOQ1RJT04gR0JMQSBHQkxMIEdCTFMgR0VUIEdMT0JBTCBJRiBJTVBPUlQgSU5DQklOIElOQ0xVREUgSU5GTyBLRUVQIExDTEEgTENMTCBMQ0xTIExUT1JHIE1BQ1JPIE1BUCBNRU5EIE1FWElUIE5PRlAgT1BUIFBSRVNFUlZFOCBQUk9DIFFOIFJFQURPTkxZIFJFTE9DIFJFUVVJUkUgUkVRVUlSRTggUkxJU1QgRk4gUk9VVCBTRVRBIFNFVEwgU0VUUyBTTiBTUEFDRSBTVUJUIFRIVU1CIFRIVU1CWCBUVEwgV0hJTEUgV0VORCAiLGJ1aWx0X2luOiJyMCByMSByMiByMyByNCByNSByNiByNyByOCByOSByMTAgcjExIHIxMiByMTMgcjE0IHIxNSBwYyBsciBzcCBpcCBzbCBzYiBmcCBhMSBhMiBhMyBhNCB2MSB2MiB2MyB2NCB2NSB2NiB2NyB2OCBmMCBmMSBmMiBmMyBmNCBmNSBmNiBmNyBwMCBwMSBwMiBwMyBwNCBwNSBwNiBwNyBwOCBwOSBwMTAgcDExIHAxMiBwMTMgcDE0IHAxNSBjMCBjMSBjMiBjMyBjNCBjNSBjNiBjNyBjOCBjOSBjMTAgYzExIGMxMiBjMTMgYzE0IGMxNSBxMCBxMSBxMiBxMyBxNCBxNSBxNiBxNyBxOCBxOSBxMTAgcTExIHExMiBxMTMgcTE0IHExNSBjcHNyX2MgY3Bzcl94IGNwc3JfcyBjcHNyX2YgY3Bzcl9jeCBjcHNyX2N4cyBjcHNyX3hzIGNwc3JfeHNmIGNwc3Jfc2YgY3Bzcl9jeHNmIHNwc3JfYyBzcHNyX3ggc3Bzcl9zIHNwc3JfZiBzcHNyX2N4IHNwc3JfY3hzIHNwc3JfeHMgc3Bzcl94c2Ygc3Bzcl9zZiBzcHNyX2N4c2YgczAgczEgczIgczMgczQgczUgczYgczcgczggczkgczEwIHMxMSBzMTIgczEzIHMxNCBzMTUgczE2IHMxNyBzMTggczE5IHMyMCBzMjEgczIyIHMyMyBzMjQgczI1IHMyNiBzMjcgczI4IHMyOSBzMzAgczMxIGQwIGQxIGQyIGQzIGQ0IGQ1IGQ2IGQ3IGQ4IGQ5IGQxMCBkMTEgZDEyIGQxMyBkMTQgZDE1IGQxNiBkMTcgZDE4IGQxOSBkMjAgZDIxIGQyMiBkMjMgZDI0IGQyNSBkMjYgZDI3IGQyOCBkMjkgZDMwIGQzMSB7UEN9IHtWQVJ9IHtUUlVFfSB7RkFMU0V9IHtPUFR9IHtDT05GSUd9IHtFTkRJQU59IHtDT0RFU0laRX0ge0NQVX0ge0ZQVX0ge0FSQ0hJVEVDVFVSRX0ge1BDU1RPUkVPRkZTRVR9IHtBUk1BU01fVkVSU0lPTn0ge0lOVEVSfSB7Uk9QSX0ge1JXUEl9IHtTV1NUfSB7Tk9TV1NUfSAuIEAifSxjb250YWluczpbe2NsYXNzTmFtZToia2V5d29yZCIsYmVnaW46IlxcYihhZGN8KHFkP3xzaD98dVtxaF0/KT9hZGQoOHwxNik/fHVzYWRhPzh8KHF8c2g/fHVbcWhdPyk/KGFzfHNhKXh8YW5kfGFkcmw/fHNiY3xyc1tiY118YXNyfGJbbHhdP3xibHh8YnhqfGNibj96fHRiW2JoXXxiaWN8YmZjfGJmaXxbc3VdYmZ4fGJrcHR8Y2RwMj98Y2x6fGNscmV4fGNtcHxjbW58Y3BzaVtlZF18Y3BzfHNldGVuZHxkYmd8ZG1ifGRzYnxlb3J8aXNifGl0W3RlXXswLDN9fGxzbHxsc3J8cm9yfHJyeHxsZG0oKFtpZF1bYWJdKXxmW2RzXSk/fGxkcigoc3xleCk/W2JoZF0pP3xtb3Z0P3xtdm58bXJhfG1hcnxtdWx8W3VzXW11bGx8c211bFtid3RdW2J0XXxzbXVbYXNdZHxzbW11bHxzbW1sYXxtbGF8dW1sYWFsfHNtbGFsPyhbd2J0XVtidF18ZCl8bWxzfHNtbHNsP1tkc118c21jfHN2Y3xzZXZ8bWlhKFtidF17Mn18cGgpP3xtcnI/YzI/fG1jcnIyP3xtcnN8bXNyfG9ycnxvcm58cGtoKHRifGJ0KXxyYml0fHJldigxNnxzaCk/fHNlbHxbc3Vdc2F0KDE2KT98bm9wfHBvcHxwdXNofHJmZShbaWRdW2FiXSk/fHN0bShbaWRdW2FiXSk/fHN0cihleCk/W2JoZF0/fChxZD8pP3N1Ynwoc2g/fHF8dVtxaF0/KT9zdWIoOHwxNil8W3N1XXh0KGE/aHxhP2IoMTYpPyl8c3JzKFtpZF1bYWJdKT98c3dwYj98c3dpfHNtaXx0c3R8dGVxfHdmZXx3Zml8eWllbGQpKGVxfG5lfGNzfGNjfG1pfHBsfHZzfHZjfGhpfGxzfGdlfGx0fGd0fGxlfGFsfGhzfGxvKT9bc3B0cnhdPyg/PVxccykifSx0LGUuUVVPVEVfU1RSSU5HX01PREUse2NsYXNzTmFtZToic3RyaW5nIixiZWdpbjoiJyIsZW5kOiJbXlxcXFxdJyIscmVsZXZhbmNlOjB9LHtjbGFzc05hbWU6InRpdGxlIixiZWdpbjoiXFx8IixlbmQ6IlxcfCIsaWxsZWdhbDoiXFxuIixyZWxldmFuY2U6MH0se2NsYXNzTmFtZToibnVtYmVyIix2YXJpYW50czpbe2JlZ2luOiJbIyQ9XT8weFswLTlhLWZdKyJ9LHtiZWdpbjoiWyMkPV0/MGJbMDFdKyJ9LHtiZWdpbjoiWyMkPV1cXGQrIn0se2JlZ2luOiJcXGJcXGQrIn1dLHJlbGV2YW5jZTowfSx7Y2xhc3NOYW1lOiJzeW1ib2wiLHZhcmlhbnRzOlt7YmVnaW46Il5bIFxcdF0qW2Etel9cXC5cXCRdW2EtejAtOV9cXC5cXCRdKzoifSx7YmVnaW46Il5bYS16X1xcLlxcJF1bYS16MC05X1xcLlxcJF0rIn0se2JlZ2luOiJbPSNdXFx3KyJ9XSxyZWxldmFuY2U6MH1dfX1zLmV4cG9ydHM9cn0sMTgxODk6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihuKXtyZXR1cm4gbj90eXBlb2Ygbj09InN0cmluZyI/bjpuLnNvdXJjZTpudWxsfWZ1bmN0aW9uIGUoLi4ubil7cmV0dXJuIG4ubWFwKGk9PnIoaSkpLmpvaW4oIiIpfWZ1bmN0aW9uIHQobil7Y29uc3QgYT17YmVnaW46Il4nezMsfVsgXFx0XSokIixyZWxldmFuY2U6MTB9LGk9W3tiZWdpbjovXFxbKl9gXS99LHtiZWdpbjovXFxcXFwqezJ9W15cbl0qP1wqezJ9L30se2JlZ2luOi9cXFxcX3syfVteXG5dKl97Mn0vfSx7YmVnaW46L1xcXFxgezJ9W15cbl0qYHsyfS99LHtiZWdpbjovWzo7fV1bKl9gXSg/IVsqX2BdKS99XSxvPVt7Y2xhc3NOYW1lOiJzdHJvbmciLGJlZ2luOi9cKnsyfShbXlxuXSs/KVwqezJ9L30se2NsYXNzTmFtZToic3Ryb25nIixiZWdpbjplKC9cKlwqLywvKChcKig/IVwqKXxcXFteXG5dfFteKlxuXFxdKStcbikrLywvKFwqKD8hXCopfFxcW15cbl18W14qXG5cXF0pKi8sL1wqXCovKSxyZWxldmFuY2U6MH0se2NsYXNzTmFtZToic3Ryb25nIixiZWdpbjovXEJcKihcU3xcU1teXG5dKj9cUylcKig/IVx3KS99LHtjbGFzc05hbWU6InN0cm9uZyIsYmVnaW46L1wqW15cc10oW15cbl0rXG4pKyhbXlxuXSspXCovfV0sbD1be2NsYXNzTmFtZToiZW1waGFzaXMiLGJlZ2luOi9fezJ9KFteXG5dKz8pX3syfS99LHtjbGFzc05hbWU6ImVtcGhhc2lzIixiZWdpbjplKC9fXy8sLygoXyg/IV8pfFxcW15cbl18W15fXG5cXF0pK1xuKSsvLC8oXyg/IV8pfFxcW15cbl18W15fXG5cXF0pKi8sL19fLykscmVsZXZhbmNlOjB9LHtjbGFzc05hbWU6ImVtcGhhc2lzIixiZWdpbjovXGJfKFxTfFxTW15cbl0qP1xTKV8oPyFcdykvfSx7Y2xhc3NOYW1lOiJlbXBoYXNpcyIsYmVnaW46L19bXlxzXShbXlxuXStcbikrKFteXG5dKylfL30se2NsYXNzTmFtZToiZW1waGFzaXMiLGJlZ2luOiJcXEInKD8hWydcXHNdKSIsZW5kOiIoXFxuezJ9fCcpIixjb250YWluczpbe2JlZ2luOiJcXFxcJ1xcdyIscmVsZXZhbmNlOjB9XSxyZWxldmFuY2U6MH1dLGM9e2NsYXNzTmFtZToic3ltYm9sIixiZWdpbjoiXihOT1RFfFRJUHxJTVBPUlRBTlR8V0FSTklOR3xDQVVUSU9OKTpcXHMrIixyZWxldmFuY2U6MTB9LF89e2NsYXNzTmFtZToiYnVsbGV0IixiZWdpbjoiXihcXCorfC0rfFxcLit8W15cXG5dKz86OilcXHMrIn07cmV0dXJue25hbWU6IkFzY2lpRG9jIixhbGlhc2VzOlsiYWRvYyJdLGNvbnRhaW5zOltuLkNPTU1FTlQoIl4vezQsfVxcbiIsIlxcbi97NCx9JCIse3JlbGV2YW5jZToxMH0pLG4uQ09NTUVOVCgiXi8vIiwiJCIse3JlbGV2YW5jZTowfSkse2NsYXNzTmFtZToidGl0bGUiLGJlZ2luOiJeXFwuXFx3LiokIn0se2JlZ2luOiJeWz1cXCpdezQsfVxcbiIsZW5kOiJcXG5eWz1cXCpdezQsfSQiLHJlbGV2YW5jZToxMH0se2NsYXNzTmFtZToic2VjdGlvbiIscmVsZXZhbmNlOjEwLHZhcmlhbnRzOlt7YmVnaW46Il4oPXsxLDZ9KVsgCV0uKz8oWyAJXVxcMSk/JCJ9LHtiZWdpbjoiXlteXFxbXFxdXFxuXSs/XFxuWz1cXC1+XFxeXFwrXXsyLH0kIn1dfSx7Y2xhc3NOYW1lOiJtZXRhIixiZWdpbjoiXjouKz86IixlbmQ6IlxccyIsZXhjbHVkZUVuZDohMCxyZWxldmFuY2U6MTB9LHtjbGFzc05hbWU6Im1ldGEiLGJlZ2luOiJeXFxbLis/XFxdJCIscmVsZXZhbmNlOjB9LHtjbGFzc05hbWU6InF1b3RlIixiZWdpbjoiXl97NCx9XFxuIixlbmQ6Ilxcbl97NCx9JCIscmVsZXZhbmNlOjEwfSx7Y2xhc3NOYW1lOiJjb2RlIixiZWdpbjoiXltcXC1cXC5dezQsfVxcbiIsZW5kOiJcXG5bXFwtXFwuXXs0LH0kIixyZWxldmFuY2U6MTB9LHtiZWdpbjoiXlxcK3s0LH1cXG4iLGVuZDoiXFxuXFwrezQsfSQiLGNvbnRhaW5zOlt7YmVnaW46IjwiLGVuZDoiPiIsc3ViTGFuZ3VhZ2U6InhtbCIscmVsZXZhbmNlOjB9XSxyZWxldmFuY2U6MTB9LF8sYywuLi5pLC4uLm8sLi4ubCx7Y2xhc3NOYW1lOiJzdHJpbmciLHZhcmlhbnRzOlt7YmVnaW46ImBgLis/JycifSx7YmVnaW46ImAuKz8nIn1dfSx7Y2xhc3NOYW1lOiJjb2RlIixiZWdpbjovYHsyfS8sZW5kOi8oXG57Mn18YHsyfSkvfSx7Y2xhc3NOYW1lOiJjb2RlIixiZWdpbjoiKGAuKz9gfFxcKy4rP1xcKykiLHJlbGV2YW5jZTowfSx7Y2xhc3NOYW1lOiJjb2RlIixiZWdpbjoiXlsgXFx0XSIsZW5kOiIkIixyZWxldmFuY2U6MH0sYSx7YmVnaW46IihsaW5rOik/KGh0dHB8aHR0cHN8ZnRwfGZpbGV8aXJjfGltYWdlOj8pOlxcUys/XFxbW15bXSo/XFxdIixyZXR1cm5CZWdpbjohMCxjb250YWluczpbe2JlZ2luOiIobGlua3xpbWFnZTo/KToiLHJlbGV2YW5jZTowfSx7Y2xhc3NOYW1lOiJsaW5rIixiZWdpbjoiXFx3IixlbmQ6IlteXFxbXSsiLHJlbGV2YW5jZTowfSx7Y2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOiJcXFsiLGVuZDoiXFxdIixleGNsdWRlQmVnaW46ITAsZXhjbHVkZUVuZDohMCxyZWxldmFuY2U6MH1dLHJlbGV2YW5jZToxMH1dfX1zLmV4cG9ydHM9dH0sMTUxNDc6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihuKXtyZXR1cm4gbj90eXBlb2Ygbj09InN0cmluZyI/bjpuLnNvdXJjZTpudWxsfWZ1bmN0aW9uIGUoLi4ubil7cmV0dXJuIG4ubWFwKGk9PnIoaSkpLmpvaW4oIiIpfWZ1bmN0aW9uIHQobil7Y29uc3QgYT0iZmFsc2Ugc3luY2hyb25pemVkIGludCBhYnN0cmFjdCBmbG9hdCBwcml2YXRlIGNoYXIgYm9vbGVhbiBzdGF0aWMgbnVsbCBpZiBjb25zdCBmb3IgdHJ1ZSB3aGlsZSBsb25nIHRocm93IHN0cmljdGZwIGZpbmFsbHkgcHJvdGVjdGVkIGltcG9ydCBuYXRpdmUgZmluYWwgcmV0dXJuIHZvaWQgZW51bSBlbHNlIGV4dGVuZHMgaW1wbGVtZW50cyBicmVhayB0cmFuc2llbnQgbmV3IGNhdGNoIGluc3RhbmNlb2YgYnl0ZSBzdXBlciB2b2xhdGlsZSBjYXNlIGFzc2VydCBzaG9ydCBwYWNrYWdlIGRlZmF1bHQgZG91YmxlIHB1YmxpYyB0cnkgdGhpcyBzd2l0Y2ggY29udGludWUgdGhyb3dzIHByaXZpbGVnZWQgYXNwZWN0T2YgYWR2aWNlZXhlY3V0aW9uIHByb2NlZWQgY2Zsb3diZWxvdyBjZmxvdyBpbml0aWFsaXphdGlvbiBwcmVpbml0aWFsaXphdGlvbiBzdGF0aWNpbml0aWFsaXphdGlvbiB3aXRoaW5jb2RlIHRhcmdldCB3aXRoaW4gZXhlY3V0aW9uIGdldFdpdGhpblR5cGVOYW1lIGhhbmRsZXIgdGhpc0pvaW5Qb2ludCB0aGlzSm9pblBvaW50U3RhdGljUGFydCB0aGlzRW5jbG9zaW5nSm9pblBvaW50U3RhdGljUGFydCBkZWNsYXJlIHBhcmVudHMgd2FybmluZyBlcnJvciBzb2Z0IHByZWNlZGVuY2UgdGhpc0FzcGVjdEluc3RhbmNlIixpPSJnZXQgc2V0IGFyZ3MgY2FsbCI7cmV0dXJue25hbWU6IkFzcGVjdEoiLGtleXdvcmRzOmEsaWxsZWdhbDovPFwvfCMvLGNvbnRhaW5zOltuLkNPTU1FTlQoL1wvXCpcKi8sL1wqXC8vLHtyZWxldmFuY2U6MCxjb250YWluczpbe2JlZ2luOi9cdytALyxyZWxldmFuY2U6MH0se2NsYXNzTmFtZToiZG9jdGFnIixiZWdpbjovQFtBLVphLXpdKy99XX0pLG4uQ19MSU5FX0NPTU1FTlRfTU9ERSxuLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLG4uQVBPU19TVFJJTkdfTU9ERSxuLlFVT1RFX1NUUklOR19NT0RFLHtjbGFzc05hbWU6ImNsYXNzIixiZWdpbktleXdvcmRzOiJhc3BlY3QiLGVuZDovW3s7PV0vLGV4Y2x1ZGVFbmQ6ITAsaWxsZWdhbDovWzo7IlxbXF1dLyxjb250YWluczpbe2JlZ2luS2V5d29yZHM6ImV4dGVuZHMgaW1wbGVtZW50cyBwZXJ0eXBld2l0aGluIHBlcnRoaXMgcGVydGFyZ2V0IHBlcmNmbG93YmVsb3cgcGVyY2Zsb3cgaXNzaW5nbGV0b24ifSxuLlVOREVSU0NPUkVfVElUTEVfTU9ERSx7YmVnaW46L1woW15cKV0qLyxlbmQ6L1spXSsvLGtleXdvcmRzOmErIiAiK2ksZXhjbHVkZUVuZDohMX1dfSx7Y2xhc3NOYW1lOiJjbGFzcyIsYmVnaW5LZXl3b3JkczoiY2xhc3MgaW50ZXJmYWNlIixlbmQ6L1t7Oz1dLyxleGNsdWRlRW5kOiEwLHJlbGV2YW5jZTowLGtleXdvcmRzOiJjbGFzcyBpbnRlcmZhY2UiLGlsbGVnYWw6L1s6IlxbXF1dLyxjb250YWluczpbe2JlZ2luS2V5d29yZHM6ImV4dGVuZHMgaW1wbGVtZW50cyJ9LG4uVU5ERVJTQ09SRV9USVRMRV9NT0RFXX0se2JlZ2luS2V5d29yZHM6InBvaW50Y3V0IGFmdGVyIGJlZm9yZSBhcm91bmQgdGhyb3dpbmcgcmV0dXJuaW5nIixlbmQ6L1spXS8sZXhjbHVkZUVuZDohMSxpbGxlZ2FsOi9bIlxbXF1dLyxjb250YWluczpbe2JlZ2luOmUobi5VTkRFUlNDT1JFX0lERU5UX1JFLC9ccypcKC8pLHJldHVybkJlZ2luOiEwLGNvbnRhaW5zOltuLlVOREVSU0NPUkVfVElUTEVfTU9ERV19XX0se2JlZ2luOi9bOl0vLHJldHVybkJlZ2luOiEwLGVuZDovW3s7XS8scmVsZXZhbmNlOjAsZXhjbHVkZUVuZDohMSxrZXl3b3JkczphLGlsbGVnYWw6L1siXFtcXV0vLGNvbnRhaW5zOlt7YmVnaW46ZShuLlVOREVSU0NPUkVfSURFTlRfUkUsL1xzKlwoLyksa2V5d29yZHM6YSsiICIraSxyZWxldmFuY2U6MH0sbi5RVU9URV9TVFJJTkdfTU9ERV19LHtiZWdpbktleXdvcmRzOiJuZXcgdGhyb3ciLHJlbGV2YW5jZTowfSx7Y2xhc3NOYW1lOiJmdW5jdGlvbiIsYmVnaW46L1x3KyArXHcrKFwuXHcrKT9ccypcKFteXCldKlwpXHMqKCh0aHJvd3MpW1x3XHMsXSspP1tceztdLyxyZXR1cm5CZWdpbjohMCxlbmQ6L1t7Oz1dLyxrZXl3b3JkczphLGV4Y2x1ZGVFbmQ6ITAsY29udGFpbnM6W3tiZWdpbjplKG4uVU5ERVJTQ09SRV9JREVOVF9SRSwvXHMqXCgvKSxyZXR1cm5CZWdpbjohMCxyZWxldmFuY2U6MCxjb250YWluczpbbi5VTkRFUlNDT1JFX1RJVExFX01PREVdfSx7Y2xhc3NOYW1lOiJwYXJhbXMiLGJlZ2luOi9cKC8sZW5kOi9cKS8scmVsZXZhbmNlOjAsa2V5d29yZHM6YSxjb250YWluczpbbi5BUE9TX1NUUklOR19NT0RFLG4uUVVPVEVfU1RSSU5HX01PREUsbi5DX05VTUJFUl9NT0RFLG4uQ19CTE9DS19DT01NRU5UX01PREVdfSxuLkNfTElORV9DT01NRU5UX01PREUsbi5DX0JMT0NLX0NPTU1FTlRfTU9ERV19LG4uQ19OVU1CRVJfTU9ERSx7Y2xhc3NOYW1lOiJtZXRhIixiZWdpbjovQFtBLVphLXpdKy99XX19cy5leHBvcnRzPXR9LDMzNjg2OmZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHIoZSl7Y29uc3QgdD17YmVnaW46ImBbXFxzXFxTXSJ9O3JldHVybntuYW1lOiJBdXRvSG90a2V5IixjYXNlX2luc2Vuc2l0aXZlOiEwLGFsaWFzZXM6WyJhaGsiXSxrZXl3b3Jkczp7a2V5d29yZDoiQnJlYWsgQ29udGludWUgQ3JpdGljYWwgRXhpdCBFeGl0QXBwIEdvc3ViIEdvdG8gTmV3IE9uRXhpdCBQYXVzZSByZXR1cm4gU2V0QmF0Y2hMaW5lcyBTZXRUaW1lciBTdXNwZW5kIFRocmVhZCBUaHJvdyBVbnRpbCBhaGtfaWQgYWhrX2NsYXNzIGFoa19waWQgYWhrX2V4ZSBhaGtfZ3JvdXAiLGxpdGVyYWw6InRydWUgZmFsc2UgTk9UIEFORCBPUiIsYnVpbHRfaW46IkNvbVNwZWMgQ2xpcGJvYXJkIENsaXBib2FyZEFsbCBFcnJvckxldmVsIn0sY29udGFpbnM6W3QsZS5pbmhlcml0KGUuUVVPVEVfU1RSSU5HX01PREUse2NvbnRhaW5zOlt0XX0pLGUuQ09NTUVOVCgiOyIsIiQiLHtyZWxldmFuY2U6MH0pLGUuQ19CTE9DS19DT01NRU5UX01PREUse2NsYXNzTmFtZToibnVtYmVyIixiZWdpbjplLk5VTUJFUl9SRSxyZWxldmFuY2U6MH0se2NsYXNzTmFtZToidmFyaWFibGUiLGJlZ2luOiIlW2EtekEtWjAtOSNfJEBdKyUifSx7Y2xhc3NOYW1lOiJidWlsdF9pbiIsYmVnaW46Il5cXHMqXFx3K1xccyooLHwlKSJ9LHtjbGFzc05hbWU6InRpdGxlIix2YXJpYW50czpbe2JlZ2luOideW15cXG4iO10rOjooPyE9KSd9LHtiZWdpbjonXlteXFxuIjtdKzooPyE9KScscmVsZXZhbmNlOjB9XX0se2NsYXNzTmFtZToibWV0YSIsYmVnaW46Il5cXHMqI1xcdysiLGVuZDoiJCIscmVsZXZhbmNlOjB9LHtjbGFzc05hbWU6ImJ1aWx0X2luIixiZWdpbjoiQV9bYS16QS1aMC05XSsifSx7YmVnaW46IixcXHMqLCJ9XX19cy5leHBvcnRzPXJ9LDQ0MzMxOmZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHIoZSl7Y29uc3QgdD0iQnlSZWYgQ2FzZSBDb25zdCBDb250aW51ZUNhc2UgQ29udGludWVMb29wIERpbSBEbyBFbHNlIEVsc2VJZiBFbmRGdW5jIEVuZElmIEVuZFNlbGVjdCBFbmRTd2l0Y2ggRW5kV2l0aCBFbnVtIEV4aXQgRXhpdExvb3AgRm9yIEZ1bmMgR2xvYmFsIElmIEluIExvY2FsIE5leHQgUmVEaW0gUmV0dXJuIFNlbGVjdCBTdGF0aWMgU3RlcCBTd2l0Y2ggVGhlbiBUbyBVbnRpbCBWb2xhdGlsZSBXRW5kIFdoaWxlIFdpdGgiLG49WyJFbmRSZWdpb24iLCJmb3JjZWRlZiIsImZvcmNlcmVmIiwiaWdub3JlZnVuYyIsImluY2x1ZGUiLCJpbmNsdWRlLW9uY2UiLCJOb1RyYXlJY29uIiwiT25BdXRvSXRTdGFydFJlZ2lzdGVyIiwicHJhZ21hIiwiUmVnaW9uIiwiUmVxdWlyZUFkbWluIiwiVGlkeV9PZmYiLCJUaWR5X09uIiwiVGlkeV9QYXJhbWV0ZXJzIl0sYT0iVHJ1ZSBGYWxzZSBBbmQgTnVsbCBOb3QgT3IgRGVmYXVsdCIsaT0iQWJzIEFDb3MgQWRsaWJSZWdpc3RlciBBZGxpYlVuUmVnaXN0ZXIgQXNjIEFzY1cgQVNpbiBBc3NpZ24gQVRhbiBBdXRvSXRTZXRPcHRpb24gQXV0b0l0V2luR2V0VGl0bGUgQXV0b0l0V2luU2V0VGl0bGUgQmVlcCBCaW5hcnkgQmluYXJ5TGVuIEJpbmFyeU1pZCBCaW5hcnlUb1N0cmluZyBCaXRBTkQgQml0Tk9UIEJpdE9SIEJpdFJvdGF0ZSBCaXRTaGlmdCBCaXRYT1IgQmxvY2tJbnB1dCBCcmVhayBDYWxsIENEVHJheSBDZWlsaW5nIENociBDaHJXIENsaXBHZXQgQ2xpcFB1dCBDb25zb2xlUmVhZCBDb25zb2xlV3JpdGUgQ29uc29sZVdyaXRlRXJyb3IgQ29udHJvbENsaWNrIENvbnRyb2xDb21tYW5kIENvbnRyb2xEaXNhYmxlIENvbnRyb2xFbmFibGUgQ29udHJvbEZvY3VzIENvbnRyb2xHZXRGb2N1cyBDb250cm9sR2V0SGFuZGxlIENvbnRyb2xHZXRQb3MgQ29udHJvbEdldFRleHQgQ29udHJvbEhpZGUgQ29udHJvbExpc3RWaWV3IENvbnRyb2xNb3ZlIENvbnRyb2xTZW5kIENvbnRyb2xTZXRUZXh0IENvbnRyb2xTaG93IENvbnRyb2xUcmVlVmlldyBDb3MgRGVjIERpckNvcHkgRGlyQ3JlYXRlIERpckdldFNpemUgRGlyTW92ZSBEaXJSZW1vdmUgRGxsQ2FsbCBEbGxDYWxsQWRkcmVzcyBEbGxDYWxsYmFja0ZyZWUgRGxsQ2FsbGJhY2tHZXRQdHIgRGxsQ2FsbGJhY2tSZWdpc3RlciBEbGxDbG9zZSBEbGxPcGVuIERsbFN0cnVjdENyZWF0ZSBEbGxTdHJ1Y3RHZXREYXRhIERsbFN0cnVjdEdldFB0ciBEbGxTdHJ1Y3RHZXRTaXplIERsbFN0cnVjdFNldERhdGEgRHJpdmVHZXREcml2ZSBEcml2ZUdldEZpbGVTeXN0ZW0gRHJpdmVHZXRMYWJlbCBEcml2ZUdldFNlcmlhbCBEcml2ZUdldFR5cGUgRHJpdmVNYXBBZGQgRHJpdmVNYXBEZWwgRHJpdmVNYXBHZXQgRHJpdmVTZXRMYWJlbCBEcml2ZVNwYWNlRnJlZSBEcml2ZVNwYWNlVG90YWwgRHJpdmVTdGF0dXMgRW52R2V0IEVudlNldCBFbnZVcGRhdGUgRXZhbCBFeGVjdXRlIEV4cCBGaWxlQ2hhbmdlRGlyIEZpbGVDbG9zZSBGaWxlQ29weSBGaWxlQ3JlYXRlTlRGU0xpbmsgRmlsZUNyZWF0ZVNob3J0Y3V0IEZpbGVEZWxldGUgRmlsZUV4aXN0cyBGaWxlRmluZEZpcnN0RmlsZSBGaWxlRmluZE5leHRGaWxlIEZpbGVGbHVzaCBGaWxlR2V0QXR0cmliIEZpbGVHZXRFbmNvZGluZyBGaWxlR2V0TG9uZ05hbWUgRmlsZUdldFBvcyBGaWxlR2V0U2hvcnRjdXQgRmlsZUdldFNob3J0TmFtZSBGaWxlR2V0U2l6ZSBGaWxlR2V0VGltZSBGaWxlR2V0VmVyc2lvbiBGaWxlSW5zdGFsbCBGaWxlTW92ZSBGaWxlT3BlbiBGaWxlT3BlbkRpYWxvZyBGaWxlUmVhZCBGaWxlUmVhZExpbmUgRmlsZVJlYWRUb0FycmF5IEZpbGVSZWN5Y2xlIEZpbGVSZWN5Y2xlRW1wdHkgRmlsZVNhdmVEaWFsb2cgRmlsZVNlbGVjdEZvbGRlciBGaWxlU2V0QXR0cmliIEZpbGVTZXRFbmQgRmlsZVNldFBvcyBGaWxlU2V0VGltZSBGaWxlV3JpdGUgRmlsZVdyaXRlTGluZSBGbG9vciBGdHBTZXRQcm94eSBGdW5jTmFtZSBHVUlDcmVhdGUgR1VJQ3RybENyZWF0ZUF2aSBHVUlDdHJsQ3JlYXRlQnV0dG9uIEdVSUN0cmxDcmVhdGVDaGVja2JveCBHVUlDdHJsQ3JlYXRlQ29tYm8gR1VJQ3RybENyZWF0ZUNvbnRleHRNZW51IEdVSUN0cmxDcmVhdGVEYXRlIEdVSUN0cmxDcmVhdGVEdW1teSBHVUlDdHJsQ3JlYXRlRWRpdCBHVUlDdHJsQ3JlYXRlR3JhcGhpYyBHVUlDdHJsQ3JlYXRlR3JvdXAgR1VJQ3RybENyZWF0ZUljb24gR1VJQ3RybENyZWF0ZUlucHV0IEdVSUN0cmxDcmVhdGVMYWJlbCBHVUlDdHJsQ3JlYXRlTGlzdCBHVUlDdHJsQ3JlYXRlTGlzdFZpZXcgR1VJQ3RybENyZWF0ZUxpc3RWaWV3SXRlbSBHVUlDdHJsQ3JlYXRlTWVudSBHVUlDdHJsQ3JlYXRlTWVudUl0ZW0gR1VJQ3RybENyZWF0ZU1vbnRoQ2FsIEdVSUN0cmxDcmVhdGVPYmogR1VJQ3RybENyZWF0ZVBpYyBHVUlDdHJsQ3JlYXRlUHJvZ3Jlc3MgR1VJQ3RybENyZWF0ZVJhZGlvIEdVSUN0cmxDcmVhdGVTbGlkZXIgR1VJQ3RybENyZWF0ZVRhYiBHVUlDdHJsQ3JlYXRlVGFiSXRlbSBHVUlDdHJsQ3JlYXRlVHJlZVZpZXcgR1VJQ3RybENyZWF0ZVRyZWVWaWV3SXRlbSBHVUlDdHJsQ3JlYXRlVXBkb3duIEdVSUN0cmxEZWxldGUgR1VJQ3RybEdldEhhbmRsZSBHVUlDdHJsR2V0U3RhdGUgR1VJQ3RybFJlYWQgR1VJQ3RybFJlY3ZNc2cgR1VJQ3RybFJlZ2lzdGVyTGlzdFZpZXdTb3J0IEdVSUN0cmxTZW5kTXNnIEdVSUN0cmxTZW5kVG9EdW1teSBHVUlDdHJsU2V0QmtDb2xvciBHVUlDdHJsU2V0Q29sb3IgR1VJQ3RybFNldEN1cnNvciBHVUlDdHJsU2V0RGF0YSBHVUlDdHJsU2V0RGVmQmtDb2xvciBHVUlDdHJsU2V0RGVmQ29sb3IgR1VJQ3RybFNldEZvbnQgR1VJQ3RybFNldEdyYXBoaWMgR1VJQ3RybFNldEltYWdlIEdVSUN0cmxTZXRMaW1pdCBHVUlDdHJsU2V0T25FdmVudCBHVUlDdHJsU2V0UG9zIEdVSUN0cmxTZXRSZXNpemluZyBHVUlDdHJsU2V0U3RhdGUgR1VJQ3RybFNldFN0eWxlIEdVSUN0cmxTZXRUaXAgR1VJRGVsZXRlIEdVSUdldEN1cnNvckluZm8gR1VJR2V0TXNnIEdVSUdldFN0eWxlIEdVSVJlZ2lzdGVyTXNnIEdVSVNldEFjY2VsZXJhdG9ycyBHVUlTZXRCa0NvbG9yIEdVSVNldENvb3JkIEdVSVNldEN1cnNvciBHVUlTZXRGb250IEdVSVNldEhlbHAgR1VJU2V0SWNvbiBHVUlTZXRPbkV2ZW50IEdVSVNldFN0YXRlIEdVSVNldFN0eWxlIEdVSVN0YXJ0R3JvdXAgR1VJU3dpdGNoIEhleCBIb3RLZXlTZXQgSHR0cFNldFByb3h5IEh0dHBTZXRVc2VyQWdlbnQgSFduZCBJbmV0Q2xvc2UgSW5ldEdldCBJbmV0R2V0SW5mbyBJbmV0R2V0U2l6ZSBJbmV0UmVhZCBJbmlEZWxldGUgSW5pUmVhZCBJbmlSZWFkU2VjdGlvbiBJbmlSZWFkU2VjdGlvbk5hbWVzIEluaVJlbmFtZVNlY3Rpb24gSW5pV3JpdGUgSW5pV3JpdGVTZWN0aW9uIElucHV0Qm94IEludCBJc0FkbWluIElzQXJyYXkgSXNCaW5hcnkgSXNCb29sIElzRGVjbGFyZWQgSXNEbGxTdHJ1Y3QgSXNGbG9hdCBJc0Z1bmMgSXNIV25kIElzSW50IElzS2V5d29yZCBJc051bWJlciBJc09iaiBJc1B0ciBJc1N0cmluZyBMb2cgTWVtR2V0U3RhdHMgTW9kIE1vdXNlQ2xpY2sgTW91c2VDbGlja0RyYWcgTW91c2VEb3duIE1vdXNlR2V0Q3Vyc29yIE1vdXNlR2V0UG9zIE1vdXNlTW92ZSBNb3VzZVVwIE1vdXNlV2hlZWwgTXNnQm94IE51bWJlciBPYmpDcmVhdGUgT2JqQ3JlYXRlSW50ZXJmYWNlIE9iakV2ZW50IE9iakdldCBPYmpOYW1lIE9uQXV0b0l0RXhpdFJlZ2lzdGVyIE9uQXV0b0l0RXhpdFVuUmVnaXN0ZXIgUGluZyBQaXhlbENoZWNrc3VtIFBpeGVsR2V0Q29sb3IgUGl4ZWxTZWFyY2ggUHJvY2Vzc0Nsb3NlIFByb2Nlc3NFeGlzdHMgUHJvY2Vzc0dldFN0YXRzIFByb2Nlc3NMaXN0IFByb2Nlc3NTZXRQcmlvcml0eSBQcm9jZXNzV2FpdCBQcm9jZXNzV2FpdENsb3NlIFByb2dyZXNzT2ZmIFByb2dyZXNzT24gUHJvZ3Jlc3NTZXQgUHRyIFJhbmRvbSBSZWdEZWxldGUgUmVnRW51bUtleSBSZWdFbnVtVmFsIFJlZ1JlYWQgUmVnV3JpdGUgUm91bmQgUnVuIFJ1bkFzIFJ1bkFzV2FpdCBSdW5XYWl0IFNlbmQgU2VuZEtlZXBBY3RpdmUgU2V0RXJyb3IgU2V0RXh0ZW5kZWQgU2hlbGxFeGVjdXRlIFNoZWxsRXhlY3V0ZVdhaXQgU2h1dGRvd24gU2luIFNsZWVwIFNvdW5kUGxheSBTb3VuZFNldFdhdmVWb2x1bWUgU3BsYXNoSW1hZ2VPbiBTcGxhc2hPZmYgU3BsYXNoVGV4dE9uIFNxcnQgU1JhbmRvbSBTdGF0dXNiYXJHZXRUZXh0IFN0ZGVyclJlYWQgU3RkaW5Xcml0ZSBTdGRpb0Nsb3NlIFN0ZG91dFJlYWQgU3RyaW5nIFN0cmluZ0FkZENSIFN0cmluZ0NvbXBhcmUgU3RyaW5nRm9ybWF0IFN0cmluZ0Zyb21BU0NJSUFycmF5IFN0cmluZ0luU3RyIFN0cmluZ0lzQWxOdW0gU3RyaW5nSXNBbHBoYSBTdHJpbmdJc0FTQ0lJIFN0cmluZ0lzRGlnaXQgU3RyaW5nSXNGbG9hdCBTdHJpbmdJc0ludCBTdHJpbmdJc0xvd2VyIFN0cmluZ0lzU3BhY2UgU3RyaW5nSXNVcHBlciBTdHJpbmdJc1hEaWdpdCBTdHJpbmdMZWZ0IFN0cmluZ0xlbiBTdHJpbmdMb3dlciBTdHJpbmdNaWQgU3RyaW5nUmVnRXhwIFN0cmluZ1JlZ0V4cFJlcGxhY2UgU3RyaW5nUmVwbGFjZSBTdHJpbmdSZXZlcnNlIFN0cmluZ1JpZ2h0IFN0cmluZ1NwbGl0IFN0cmluZ1N0cmlwQ1IgU3RyaW5nU3RyaXBXUyBTdHJpbmdUb0FTQ0lJQXJyYXkgU3RyaW5nVG9CaW5hcnkgU3RyaW5nVHJpbUxlZnQgU3RyaW5nVHJpbVJpZ2h0IFN0cmluZ1VwcGVyIFRhbiBUQ1BBY2NlcHQgVENQQ2xvc2VTb2NrZXQgVENQQ29ubmVjdCBUQ1BMaXN0ZW4gVENQTmFtZVRvSVAgVENQUmVjdiBUQ1BTZW5kIFRDUFNodXRkb3duLCBVRFBTaHV0ZG93biBUQ1BTdGFydHVwLCBVRFBTdGFydHVwIFRpbWVyRGlmZiBUaW1lckluaXQgVG9vbFRpcCBUcmF5Q3JlYXRlSXRlbSBUcmF5Q3JlYXRlTWVudSBUcmF5R2V0TXNnIFRyYXlJdGVtRGVsZXRlIFRyYXlJdGVtR2V0SGFuZGxlIFRyYXlJdGVtR2V0U3RhdGUgVHJheUl0ZW1HZXRUZXh0IFRyYXlJdGVtU2V0T25FdmVudCBUcmF5SXRlbVNldFN0YXRlIFRyYXlJdGVtU2V0VGV4dCBUcmF5U2V0Q2xpY2sgVHJheVNldEljb24gVHJheVNldE9uRXZlbnQgVHJheVNldFBhdXNlSWNvbiBUcmF5U2V0U3RhdGUgVHJheVNldFRvb2xUaXAgVHJheVRpcCBVQm91bmQgVURQQmluZCBVRFBDbG9zZVNvY2tldCBVRFBPcGVuIFVEUFJlY3YgVURQU2VuZCBWYXJHZXRUeXBlIFdpbkFjdGl2YXRlIFdpbkFjdGl2ZSBXaW5DbG9zZSBXaW5FeGlzdHMgV2luRmxhc2ggV2luR2V0Q2FyZXRQb3MgV2luR2V0Q2xhc3NMaXN0IFdpbkdldENsaWVudFNpemUgV2luR2V0SGFuZGxlIFdpbkdldFBvcyBXaW5HZXRQcm9jZXNzIFdpbkdldFN0YXRlIFdpbkdldFRleHQgV2luR2V0VGl0bGUgV2luS2lsbCBXaW5MaXN0IFdpbk1lbnVTZWxlY3RJdGVtIFdpbk1pbmltaXplQWxsIFdpbk1pbmltaXplQWxsVW5kbyBXaW5Nb3ZlIFdpblNldE9uVG9wIFdpblNldFN0YXRlIFdpblNldFRpdGxlIFdpblNldFRyYW5zIFdpbldhaXQgV2luV2FpdEFjdGl2ZSBXaW5XYWl0Q2xvc2UgV2luV2FpdE5vdEFjdGl2ZSIsbz17dmFyaWFudHM6W2UuQ09NTUVOVCgiOyIsIiQiLHtyZWxldmFuY2U6MH0pLGUuQ09NTUVOVCgiI2NzIiwiI2NlIiksZS5DT01NRU5UKCIjY29tbWVudHMtc3RhcnQiLCIjY29tbWVudHMtZW5kIildfSxsPXtiZWdpbjoiXFwkW0EtejAtOV9dKyJ9LGM9e2NsYXNzTmFtZToic3RyaW5nIix2YXJpYW50czpbe2JlZ2luOi8iLyxlbmQ6LyIvLGNvbnRhaW5zOlt7YmVnaW46LyIiLyxyZWxldmFuY2U6MH1dfSx7YmVnaW46LycvLGVuZDovJy8sY29udGFpbnM6W3tiZWdpbjovJycvLHJlbGV2YW5jZTowfV19XX0sXz17dmFyaWFudHM6W2UuQklOQVJZX05VTUJFUl9NT0RFLGUuQ19OVU1CRVJfTU9ERV19LGQ9e2NsYXNzTmFtZToibWV0YSIsYmVnaW46IiMiLGVuZDoiJCIsa2V5d29yZHM6eyJtZXRhLWtleXdvcmQiOm59LGNvbnRhaW5zOlt7YmVnaW46L1xcXG4vLHJlbGV2YW5jZTowfSx7YmVnaW5LZXl3b3JkczoiaW5jbHVkZSIsa2V5d29yZHM6eyJtZXRhLWtleXdvcmQiOiJpbmNsdWRlIn0sZW5kOiIkIixjb250YWluczpbYyx7Y2xhc3NOYW1lOiJtZXRhLXN0cmluZyIsdmFyaWFudHM6W3tiZWdpbjoiPCIsZW5kOiI+In0se2JlZ2luOi8iLyxlbmQ6LyIvLGNvbnRhaW5zOlt7YmVnaW46LyIiLyxyZWxldmFuY2U6MH1dfSx7YmVnaW46LycvLGVuZDovJy8sY29udGFpbnM6W3tiZWdpbjovJycvLHJlbGV2YW5jZTowfV19XX1dfSxjLG9dfSxnPXtjbGFzc05hbWU6InN5bWJvbCIsYmVnaW46IkBbQS16MC05X10rIn0sRT17Y2xhc3NOYW1lOiJmdW5jdGlvbiIsYmVnaW5LZXl3b3JkczoiRnVuYyIsZW5kOiIkIixpbGxlZ2FsOiJcXCR8XFxbfCUiLGNvbnRhaW5zOltlLlVOREVSU0NPUkVfVElUTEVfTU9ERSx7Y2xhc3NOYW1lOiJwYXJhbXMiLGJlZ2luOiJcXCgiLGVuZDoiXFwpIixjb250YWluczpbbCxjLF9dfV19O3JldHVybntuYW1lOiJBdXRvSXQiLGNhc2VfaW5zZW5zaXRpdmU6ITAsaWxsZWdhbDovXC9cKi8sa2V5d29yZHM6e2tleXdvcmQ6dCxidWlsdF9pbjppLGxpdGVyYWw6YX0sY29udGFpbnM6W28sbCxjLF8sZCxnLEVdfX1zLmV4cG9ydHM9cn0sOTUyOTY6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihlKXtyZXR1cm57bmFtZToiQVZSIEFzc2VtYmx5IixjYXNlX2luc2Vuc2l0aXZlOiEwLGtleXdvcmRzOnskcGF0dGVybjoiXFwuPyIrZS5JREVOVF9SRSxrZXl3b3JkOiJhZGMgYWRkIGFkaXcgYW5kIGFuZGkgYXNyIGJjbHIgYmxkIGJyYmMgYnJicyBicmNjIGJyY3MgYnJlYWsgYnJlcSBicmdlIGJyaGMgYnJocyBicmlkIGJyaWUgYnJsbyBicmx0IGJybWkgYnJuZSBicnBsIGJyc2ggYnJ0YyBicnRzIGJydmMgYnJ2cyBic2V0IGJzdCBjYWxsIGNiaSBjYnIgY2xjIGNsaCBjbGkgY2xuIGNsciBjbHMgY2x0IGNsdiBjbHogY29tIGNwIGNwYyBjcGkgY3BzZSBkZWMgZWljYWxsIGVpam1wIGVscG0gZW9yIGZtdWwgZm11bHMgZm11bHN1IGljYWxsIGlqbXAgaW4gaW5jIGptcCBsZCBsZGQgbGRpIGxkcyBscG0gbHNsIGxzciBtb3YgbW92dyBtdWwgbXVscyBtdWxzdSBuZWcgbm9wIG9yIG9yaSBvdXQgcG9wIHB1c2ggcmNhbGwgcmV0IHJldGkgcmptcCByb2wgcm9yIHNiYyBzYnIgc2JyYyBzYnJzIHNlYyBzZWggc2JpIHNiY2kgc2JpYyBzYmlzIHNiaXcgc2VpIHNlbiBzZXIgc2VzIHNldCBzZXYgc2V6IHNsZWVwIHNwbSBzdCBzdGQgc3RzIHN1YiBzdWJpIHN3YXAgdHN0IHdkciIsYnVpbHRfaW46InIwIHIxIHIyIHIzIHI0IHI1IHI2IHI3IHI4IHI5IHIxMCByMTEgcjEyIHIxMyByMTQgcjE1IHIxNiByMTcgcjE4IHIxOSByMjAgcjIxIHIyMiByMjMgcjI0IHIyNSByMjYgcjI3IHIyOCByMjkgcjMwIHIzMSB4fDAgeGggeGwgeXwwIHloIHlsIHp8MCB6aCB6bCB1Y3NyMWMgdWRyMSB1Y3NyMWEgdWNzcjFiIHVicnIxbCB1YnJyMWggdWNzcjBjIHVicnIwaCB0Y2NyM2MgdGNjcjNhIHRjY3IzYiB0Y250M2ggdGNudDNsIG9jcjNhaCBvY3IzYWwgb2NyM2JoIG9jcjNibCBvY3IzY2ggb2NyM2NsIGljcjNoIGljcjNsIGV0aW1zayBldGlmciB0Y2NyMWMgb2NyMWNoIG9jcjFjbCB0d2NyIHR3ZHIgdHdhciB0d3NyIHR3YnIgb3NjY2FsIHhtY3JhIHhtY3JiIGVpY3JhIHNwbWNzciBzcG1jciBwb3J0ZyBkZHJnIHBpbmcgcG9ydGYgZGRyZiBzcmVnIHNwaCBzcGwgeGRpdiByYW1weiBlaWNyYiBlaW1zayBnaW1zayBnaWNyIGVpZnIgZ2lmciB0aW1zayB0aWZyIG1jdWNyIG1jdWNzciB0Y2NyMCB0Y250MCBvY3IwIGFzc3IgdGNjcjFhIHRjY3IxYiB0Y250MWggdGNudDFsIG9jcjFhaCBvY3IxYWwgb2NyMWJoIG9jcjFibCBpY3IxaCBpY3IxbCB0Y2NyMiB0Y250MiBvY3IyIG9jZHIgd2R0Y3Igc2Zpb3IgZWVhcmggZWVhcmwgZWVkciBlZWNyIHBvcnRhIGRkcmEgcGluYSBwb3J0YiBkZHJiIHBpbmIgcG9ydGMgZGRyYyBwaW5jIHBvcnRkIGRkcmQgcGluZCBzcGRyIHNwc3Igc3BjciB1ZHIwIHVjc3IwYSB1Y3NyMGIgdWJycjBsIGFjc3IgYWRtdXggYWRjc3IgYWRjaCBhZGNsIHBvcnRlIGRkcmUgcGluZSBwaW5mIixtZXRhOiIuYnl0ZSAuY3NlZyAuZGIgLmRlZiAuZGV2aWNlIC5kc2VnIC5kdyAuZW5kbWFjcm8gLmVxdSAuZXNlZyAuZXhpdCAuaW5jbHVkZSAubGlzdCAubGlzdG1hYyAubWFjcm8gLm5vbGlzdCAub3JnIC5zZXQifSxjb250YWluczpbZS5DX0JMT0NLX0NPTU1FTlRfTU9ERSxlLkNPTU1FTlQoIjsiLCIkIix7cmVsZXZhbmNlOjB9KSxlLkNfTlVNQkVSX01PREUsZS5CSU5BUllfTlVNQkVSX01PREUse2NsYXNzTmFtZToibnVtYmVyIixiZWdpbjoiXFxiKFxcJFthLXpBLVowLTldK3wwb1swLTddKykifSxlLlFVT1RFX1NUUklOR19NT0RFLHtjbGFzc05hbWU6InN0cmluZyIsYmVnaW46IiciLGVuZDoiW15cXFxcXSciLGlsbGVnYWw6IlteXFxcXF1bXiddIn0se2NsYXNzTmFtZToic3ltYm9sIixiZWdpbjoiXltBLVphLXowLTlfLiRdKzoifSx7Y2xhc3NOYW1lOiJtZXRhIixiZWdpbjoiIyIsZW5kOiIkIn0se2NsYXNzTmFtZToic3Vic3QiLGJlZ2luOiJAWzAtOV0rIn1dfX1zLmV4cG9ydHM9cn0sODgyNjg6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihlKXtjb25zdCB0PXtjbGFzc05hbWU6InZhcmlhYmxlIix2YXJpYW50czpbe2JlZ2luOi9cJFtcd1xkI0BdW1x3XGRfXSovfSx7YmVnaW46L1wkXHsoLio/KVx9L31dfSxuPSJCRUdJTiBFTkQgaWYgZWxzZSB3aGlsZSBkbyBmb3IgaW4gYnJlYWsgY29udGludWUgZGVsZXRlIG5leHQgbmV4dGZpbGUgZnVuY3Rpb24gZnVuYyBleGl0fDEwIixhPXtjbGFzc05hbWU6InN0cmluZyIsY29udGFpbnM6W2UuQkFDS1NMQVNIX0VTQ0FQRV0sdmFyaWFudHM6W3tiZWdpbjovKHV8Yik/cj8nJycvLGVuZDovJycnLyxyZWxldmFuY2U6MTB9LHtiZWdpbjovKHV8Yik/cj8iIiIvLGVuZDovIiIiLyxyZWxldmFuY2U6MTB9LHtiZWdpbjovKHV8cnx1ciknLyxlbmQ6LycvLHJlbGV2YW5jZToxMH0se2JlZ2luOi8odXxyfHVyKSIvLGVuZDovIi8scmVsZXZhbmNlOjEwfSx7YmVnaW46LyhifGJyKScvLGVuZDovJy99LHtiZWdpbjovKGJ8YnIpIi8sZW5kOi8iL30sZS5BUE9TX1NUUklOR19NT0RFLGUuUVVPVEVfU1RSSU5HX01PREVdfTtyZXR1cm57bmFtZToiQXdrIixrZXl3b3Jkczp7a2V5d29yZDpufSxjb250YWluczpbdCxhLGUuUkVHRVhQX01PREUsZS5IQVNIX0NPTU1FTlRfTU9ERSxlLk5VTUJFUl9NT0RFXX19cy5leHBvcnRzPXJ9LDUxMTE6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihlKXtyZXR1cm57bmFtZToiWCsrIixhbGlhc2VzOlsieCsrIl0sa2V5d29yZHM6e2tleXdvcmQ6WyJhYnN0cmFjdCIsImFzIiwiYXNjIiwiYXZnIiwiYnJlYWsiLCJicmVha3BvaW50IiwiYnkiLCJieXJlZiIsImNhc2UiLCJjYXRjaCIsImNoYW5nZWNvbXBhbnkiLCJjbGFzcyIsImNsaWVudCIsImNsaWVudCIsImNvbW1vbiIsImNvbnN0IiwiY29udGludWUiLCJjb3VudCIsImNyb3NzY29tcGFueSIsImRlbGVnYXRlIiwiZGVsZXRlX2Zyb20iLCJkZXNjIiwiZGlzcGxheSIsImRpdiIsImRvIiwiZWRpdCIsImVsc2UiLCJldmVudGhhbmRsZXIiLCJleGlzdHMiLCJleHRlbmRzIiwiZmluYWwiLCJmaW5hbGx5IiwiZmlyc3RmYXN0IiwiZmlyc3Rvbmx5IiwiZmlyc3Rvbmx5MSIsImZpcnN0b25seTEwIiwiZmlyc3Rvbmx5MTAwIiwiZmlyc3Rvbmx5MTAwMCIsImZsdXNoIiwiZm9yIiwiZm9yY2VsaXRlcmFscyIsImZvcmNlbmVzdGVkbG9vcCIsImZvcmNlcGxhY2Vob2xkZXJzIiwiZm9yY2VzZWxlY3RvcmRlciIsImZvcnVwZGF0ZSIsImZyb20iLCJnZW5lcmF0ZW9ubHkiLCJncm91cCIsImhpbnQiLCJpZiIsImltcGxlbWVudHMiLCJpbiIsImluZGV4IiwiaW5zZXJ0X3JlY29yZHNldCIsImludGVyZmFjZSIsImludGVybmFsIiwiaXMiLCJqb2luIiwibGlrZSIsIm1heG9mIiwibWlub2YiLCJtb2QiLCJuYW1lc3BhY2UiLCJuZXciLCJuZXh0Iiwibm9mZXRjaCIsIm5vdGV4aXN0cyIsIm9wdGltaXN0aWNsb2NrIiwib3JkZXIiLCJvdXRlciIsInBlc3NpbWlzdGljbG9jayIsInByaW50IiwicHJpdmF0ZSIsInByb3RlY3RlZCIsInB1YmxpYyIsInJlYWRvbmx5IiwicmVwZWF0YWJsZXJlYWQiLCJyZXRyeSIsInJldHVybiIsInJldmVyc2UiLCJzZWxlY3QiLCJzZXJ2ZXIiLCJzZXR0aW5nIiwic3RhdGljIiwic3VtIiwic3VwZXIiLCJzd2l0Y2giLCJ0aGlzIiwidGhyb3ciLCJ0cnkiLCJ0dHNhYm9ydCIsInR0c2JlZ2luIiwidHRzY29tbWl0IiwidW5jaGVja2VkIiwidXBkYXRlX3JlY29yZHNldCIsInVzaW5nIiwidmFsaWR0aW1lc3RhdGUiLCJ2b2lkIiwid2hlcmUiLCJ3aGlsZSJdLGJ1aWx0X2luOlsiYW55dHlwZSIsImJvb2xlYW4iLCJieXRlIiwiY2hhciIsImNvbnRhaW5lciIsImRhdGUiLCJkb3VibGUiLCJlbnVtIiwiZ3VpZCIsImludCIsImludDY0IiwibG9uZyIsInJlYWwiLCJzaG9ydCIsInN0ciIsInV0Y2RhdGV0aW1lIiwidmFyIl0sbGl0ZXJhbDpbImRlZmF1bHQiLCJmYWxzZSIsIm51bGwiLCJ0cnVlIl19LGNvbnRhaW5zOltlLkNfTElORV9DT01NRU5UX01PREUsZS5DX0JMT0NLX0NPTU1FTlRfTU9ERSxlLkFQT1NfU1RSSU5HX01PREUsZS5RVU9URV9TVFJJTkdfTU9ERSxlLkNfTlVNQkVSX01PREUse2NsYXNzTmFtZToibWV0YSIsYmVnaW46IiMiLGVuZDoiJCJ9LHtjbGFzc05hbWU6ImNsYXNzIixiZWdpbktleXdvcmRzOiJjbGFzcyBpbnRlcmZhY2UiLGVuZDovXHsvLGV4Y2x1ZGVFbmQ6ITAsaWxsZWdhbDoiOiIsY29udGFpbnM6W3tiZWdpbktleXdvcmRzOiJleHRlbmRzIGltcGxlbWVudHMifSxlLlVOREVSU0NPUkVfVElUTEVfTU9ERV19XX19cy5leHBvcnRzPXJ9LDE1NzQ6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihuKXtyZXR1cm4gbj90eXBlb2Ygbj09InN0cmluZyI/bjpuLnNvdXJjZTpudWxsfWZ1bmN0aW9uIGUoLi4ubil7cmV0dXJuIG4ubWFwKGk9PnIoaSkpLmpvaW4oIiIpfWZ1bmN0aW9uIHQobil7Y29uc3QgYT17fSxpPXtiZWdpbjovXCRcey8sZW5kOi9cfS8sY29udGFpbnM6WyJzZWxmIix7YmVnaW46LzotLyxjb250YWluczpbYV19XX07T2JqZWN0LmFzc2lnbihhLHtjbGFzc05hbWU6InZhcmlhYmxlIix2YXJpYW50czpbe2JlZ2luOmUoL1wkW1x3XGQjQF1bXHdcZF9dKi8sIig/IVtcXHdcXGRdKSg/IVskXSkiKX0saV19KTtjb25zdCBvPXtjbGFzc05hbWU6InN1YnN0IixiZWdpbjovXCRcKC8sZW5kOi9cKS8sY29udGFpbnM6W24uQkFDS1NMQVNIX0VTQ0FQRV19LGw9e2JlZ2luOi88PC0/XHMqKD89XHcrKS8sc3RhcnRzOntjb250YWluczpbbi5FTkRfU0FNRV9BU19CRUdJTih7YmVnaW46LyhcdyspLyxlbmQ6LyhcdyspLyxjbGFzc05hbWU6InN0cmluZyJ9KV19fSxjPXtjbGFzc05hbWU6InN0cmluZyIsYmVnaW46LyIvLGVuZDovIi8sY29udGFpbnM6W24uQkFDS1NMQVNIX0VTQ0FQRSxhLG9dfTtvLmNvbnRhaW5zLnB1c2goYyk7Y29uc3QgXz17Y2xhc3NOYW1lOiIiLGJlZ2luOi9cXCIvfSxkPXtjbGFzc05hbWU6InN0cmluZyIsYmVnaW46LycvLGVuZDovJy99LGc9e2JlZ2luOi9cJFwoXCgvLGVuZDovXClcKS8sY29udGFpbnM6W3tiZWdpbjovXGQrI1swLTlhLWZdKy8sY2xhc3NOYW1lOiJudW1iZXIifSxuLk5VTUJFUl9NT0RFLGFdfSxFPVsiZmlzaCIsImJhc2giLCJ6c2giLCJzaCIsImNzaCIsImtzaCIsInRjc2giLCJkYXNoIiwic2NzaCJdLHU9bi5TSEVCQU5HKHtiaW5hcnk6YCgke0Uuam9pbigifCIpfSlgLHJlbGV2YW5jZToxMH0pLG09e2NsYXNzTmFtZToiZnVuY3Rpb24iLGJlZ2luOi9cd1tcd1xkX10qXHMqXChccypcKVxzKlx7LyxyZXR1cm5CZWdpbjohMCxjb250YWluczpbbi5pbmhlcml0KG4uVElUTEVfTU9ERSx7YmVnaW46L1x3W1x3XGRfXSovfSldLHJlbGV2YW5jZTowfTtyZXR1cm57bmFtZToiQmFzaCIsYWxpYXNlczpbInNoIiwienNoIl0sa2V5d29yZHM6eyRwYXR0ZXJuOi9cYlthLXouXy1dK1xiLyxrZXl3b3JkOiJpZiB0aGVuIGVsc2UgZWxpZiBmaSBmb3Igd2hpbGUgaW4gZG8gZG9uZSBjYXNlIGVzYWMgZnVuY3Rpb24iLGxpdGVyYWw6InRydWUgZmFsc2UiLGJ1aWx0X2luOiJicmVhayBjZCBjb250aW51ZSBldmFsIGV4ZWMgZXhpdCBleHBvcnQgZ2V0b3B0cyBoYXNoIHB3ZCByZWFkb25seSByZXR1cm4gc2hpZnQgdGVzdCB0aW1lcyB0cmFwIHVtYXNrIHVuc2V0IGFsaWFzIGJpbmQgYnVpbHRpbiBjYWxsZXIgY29tbWFuZCBkZWNsYXJlIGVjaG8gZW5hYmxlIGhlbHAgbGV0IGxvY2FsIGxvZ291dCBtYXBmaWxlIHByaW50ZiByZWFkIHJlYWRhcnJheSBzb3VyY2UgdHlwZSB0eXBlc2V0IHVsaW1pdCB1bmFsaWFzIHNldCBzaG9wdCBhdXRvbG9hZCBiZyBiaW5ka2V5IGJ5ZSBjYXAgY2hkaXIgY2xvbmUgY29tcGFyZ3VtZW50cyBjb21wY2FsbCBjb21wY3RsIGNvbXBkZXNjcmliZSBjb21wZmlsZXMgY29tcGdyb3VwcyBjb21wcXVvdGUgY29tcHRhZ3MgY29tcHRyeSBjb21wdmFsdWVzIGRpcnMgZGlzYWJsZSBkaXNvd24gZWNob3RjIGVjaG90aSBlbXVsYXRlIGZjIGZnIGZsb2F0IGZ1bmN0aW9ucyBnZXRjYXAgZ2V0bG4gaGlzdG9yeSBpbnRlZ2VyIGpvYnMga2lsbCBsaW1pdCBsb2cgbm9nbG9iIHBvcGQgcHJpbnQgcHVzaGQgcHVzaGxuIHJlaGFzaCBzY2hlZCBzZXRjYXAgc2V0b3B0IHN0YXQgc3VzcGVuZCB0dHljdGwgdW5mdW5jdGlvbiB1bmhhc2ggdW5saW1pdCB1bnNldG9wdCB2YXJlZCB3YWl0IHdoZW5jZSB3aGVyZSB3aGljaCB6Y29tcGlsZSB6Zm9ybWF0IHpmdHAgemxlIHptb2Rsb2FkIHpwYXJzZW9wdHMgenByb2YgenB0eSB6cmVnZXhwYXJzZSB6c29ja2V0IHpzdHlsZSB6dGNwIn0sY29udGFpbnM6W3Usbi5TSEVCQU5HKCksbSxnLG4uSEFTSF9DT01NRU5UX01PREUsbCxjLF8sZCxhXX19cy5leHBvcnRzPXR9LDkzNTc2OmZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHIoZSl7cmV0dXJue25hbWU6IkJBU0lDIixjYXNlX2luc2Vuc2l0aXZlOiEwLGlsbGVnYWw6Il4uIixrZXl3b3Jkczp7JHBhdHRlcm46IlthLXpBLVpdW2EtekEtWjAtOV8kJSEjXSoiLGtleXdvcmQ6IkFCUyBBU0MgQU5EIEFUTiBBVVRPfDAgQkVFUCBCTE9BRHwxMCBCU0FWRXwxMCBDQUxMIENBTExTIENEQkwgQ0hBSU4gQ0hESVIgQ0hSJHwxMCBDSU5UIENJUkNMRSBDTEVBUiBDTE9TRSBDTFMgQ09MT1IgQ09NIENPTU1PTiBDT05UIENPUyBDU05HIENTUkxJTiBDVkQgQ1ZJIENWUyBEQVRBIERBVEUkIERFRkRCTCBERUZJTlQgREVGU05HIERFRlNUUiBERUZ8MCBTRUcgVVNSIERFTEVURSBESU0gRFJBVyBFRElUIEVORCBFTlZJUk9OIEVOVklST04kIEVPRiBFUVYgRVJBU0UgRVJERVYgRVJERVYkIEVSTCBFUlIgRVJST1IgRVhQIEZJRUxEIEZJTEVTIEZJWCBGT1J8MCBGUkUgR0VUIEdPU1VCfDEwIEdPVE8gSEVYJCBJRiBUSEVOIEVMU0V8MCBJTktFWSQgSU5QIElOUFVUIElOUFVUIyBJTlBVVCQgSU5TVFIgSU1QIElOVCBJT0NUTCBJT0NUTCQgS0VZIE9OIE9GRiBMSVNUIEtJTEwgTEVGVCQgTEVOIExFVCBMSU5FIExMSVNUIExPQUQgTE9DIExPQ0FURSBMT0YgTE9HIExQUklOVCBVU0lORyBMU0VUIE1FUkdFIE1JRCQgTUtESVIgTUtEJCBNS0kkIE1LUyQgTU9EIE5BTUUgTkVXIE5FWFQgTk9JU0UgTk9UIE9DVCQgT04gT1IgUEVOIFBMQVkgU1RSSUcgT1BFTiBPUFRJT04gQkFTRSBPVVQgUEFJTlQgUEFMRVRURSBQQ09QWSBQRUVLIFBNQVAgUE9JTlQgUE9LRSBQT1MgUFJJTlQgUFJJTlRdIFBTRVQgUFJFU0VUIFBVVCBSQU5ET01JWkUgUkVBRCBSRU0gUkVOVU0gUkVTRVR8MCBSRVNUT1JFIFJFU1VNRSBSRVRVUk58MCBSSUdIVCQgUk1ESVIgUk5EIFJTRVQgUlVOIFNBVkUgU0NSRUVOIFNHTiBTSEVMTCBTSU4gU09VTkQgU1BBQ0UkIFNQQyBTUVIgU1RFUCBTVElDSyBTVE9QIFNUUiQgU1RSSU5HJCBTV0FQIFNZU1RFTSBUQUIgVEFOIFRJTUUkIFRJTUVSIFRST0ZGIFRST04gVE8gVVNSIFZBTCBWQVJQVFIgVkFSUFRSJCBWSUVXIFdBSVQgV0hJTEUgV0VORCBXSURUSCBXSU5ET1cgV1JJVEUgWE9SIn0sY29udGFpbnM6W2UuUVVPVEVfU1RSSU5HX01PREUsZS5DT01NRU5UKCJSRU0iLCIkIix7cmVsZXZhbmNlOjEwfSksZS5DT01NRU5UKCInIiwiJCIse3JlbGV2YW5jZTowfSkse2NsYXNzTmFtZToic3ltYm9sIixiZWdpbjoiXlswLTldKyAiLHJlbGV2YW5jZToxMH0se2NsYXNzTmFtZToibnVtYmVyIixiZWdpbjoiXFxiXFxkKyhcXC5cXGQrKT8oW2VkRURdXFxkKyk/WyMhXT8iLHJlbGV2YW5jZTowfSx7Y2xhc3NOYW1lOiJudW1iZXIiLGJlZ2luOiIoJltoSF1bMC05YS1mQS1GXXsxLDR9KSJ9LHtjbGFzc05hbWU6Im51bWJlciIsYmVnaW46IigmW29PXVswLTddezEsNn0pIn1dfX1zLmV4cG9ydHM9cn0sNTA3NTM6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihlKXtyZXR1cm57bmFtZToiQmFja3VzXHUyMDEzTmF1ciBGb3JtIixjb250YWluczpbe2NsYXNzTmFtZToiYXR0cmlidXRlIixiZWdpbjovPC8sZW5kOi8+L30se2JlZ2luOi86Oj0vLGVuZDovJC8sY29udGFpbnM6W3tiZWdpbjovPC8sZW5kOi8+L30sZS5DX0xJTkVfQ09NTUVOVF9NT0RFLGUuQ19CTE9DS19DT01NRU5UX01PREUsZS5BUE9TX1NUUklOR19NT0RFLGUuUVVPVEVfU1RSSU5HX01PREVdfV19fXMuZXhwb3J0cz1yfSw0OTU4OTpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGUpe2NvbnN0IHQ9e2NsYXNzTmFtZToibGl0ZXJhbCIsYmVnaW46L1srLV0vLHJlbGV2YW5jZTowfTtyZXR1cm57bmFtZToiQnJhaW5mdWNrIixhbGlhc2VzOlsiYmYiXSxjb250YWluczpbZS5DT01NRU5UKGBbXlxcW1xcXVxcLixcXCtcXC08PiBccgorXWAsYFtcXFtcXF1cXC4sXFwrXFwtPD4gXHIKK11gLHtyZXR1cm5FbmQ6ITAscmVsZXZhbmNlOjB9KSx7Y2xhc3NOYW1lOiJ0aXRsZSIsYmVnaW46IltcXFtcXF1dIixyZWxldmFuY2U6MH0se2NsYXNzTmFtZToic3RyaW5nIixiZWdpbjoiW1xcLixdIixyZWxldmFuY2U6MH0se2JlZ2luOi8oPzpcK1wrfC0tKS8sY29udGFpbnM6W3RdfSx0XX19cy5leHBvcnRzPXJ9LDQzMTY1OmZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHIobyl7cmV0dXJuIG8/dHlwZW9mIG89PSJzdHJpbmciP286by5zb3VyY2U6bnVsbH1mdW5jdGlvbiBlKG8pe3JldHVybiBuKCIoPz0iLG8sIikiKX1mdW5jdGlvbiB0KG8pe3JldHVybiBuKCIoIixvLCIpPyIpfWZ1bmN0aW9uIG4oLi4ubyl7cmV0dXJuIG8ubWFwKGM9PnIoYykpLmpvaW4oIiIpfWZ1bmN0aW9uIGEobyl7Y29uc3QgbD1vLkNPTU1FTlQoIi8vIiwiJCIse2NvbnRhaW5zOlt7YmVnaW46L1xcXG4vfV19KSxjPSJkZWNsdHlwZVxcKGF1dG9cXCkiLF89IlthLXpBLVpfXVxcdyo6OiIsZz0iKCIrYysifCIrdChfKSsiW2EtekEtWl9dXFx3KiIrdCgiPFtePD5dKz4iKSsiKSIsRT17Y2xhc3NOYW1lOiJrZXl3b3JkIixiZWdpbjoiXFxiW2EtelxcZF9dKl90XFxiIn0sbT17Y2xhc3NOYW1lOiJzdHJpbmciLHZhcmlhbnRzOlt7YmVnaW46Jyh1OD98VXxMKT8iJyxlbmQ6JyInLGlsbGVnYWw6IlxcbiIsY29udGFpbnM6W28uQkFDS1NMQVNIX0VTQ0FQRV19LHtiZWdpbjoiKHU4P3xVfEwpPycoIisiXFxcXCh4WzAtOUEtRmEtZl17Mn18dVswLTlBLUZhLWZdezQsOH18WzAtN117M318XFxTKSIrInwuKSIsZW5kOiInIixpbGxlZ2FsOiIuIn0sby5FTkRfU0FNRV9BU19CRUdJTih7YmVnaW46Lyg/OnU4P3xVfEwpP1IiKFteKClcXCBdezAsMTZ9KVwoLyxlbmQ6L1wpKFteKClcXCBdezAsMTZ9KSIvfSldfSxTPXtjbGFzc05hbWU6Im51bWJlciIsdmFyaWFudHM6W3tiZWdpbjoiXFxiKDBiWzAxJ10rKSJ9LHtiZWdpbjoiKC0/KVxcYihbXFxkJ10rKFxcLltcXGQnXSopP3xcXC5bXFxkJ10rKSgobGx8TEx8bHxMKSh1fFUpP3wodXxVKShsbHxMTHxsfEwpP3xmfEZ8YnxCKSJ9LHtiZWdpbjoiKC0/KShcXGIwW3hYXVthLWZBLUYwLTknXSt8KFxcYltcXGQnXSsoXFwuW1xcZCddKik/fFxcLltcXGQnXSspKFtlRV1bLStdP1tcXGQnXSspPykifV0scmVsZXZhbmNlOjB9LFQ9e2NsYXNzTmFtZToibWV0YSIsYmVnaW46LyNccypbYS16XStcYi8sZW5kOi8kLyxrZXl3b3Jkczp7Im1ldGEta2V5d29yZCI6ImlmIGVsc2UgZWxpZiBlbmRpZiBkZWZpbmUgdW5kZWYgd2FybmluZyBlcnJvciBsaW5lIHByYWdtYSBfUHJhZ21hIGlmZGVmIGlmbmRlZiBpbmNsdWRlIn0sY29udGFpbnM6W3tiZWdpbjovXFxcbi8scmVsZXZhbmNlOjB9LG8uaW5oZXJpdChtLHtjbGFzc05hbWU6Im1ldGEtc3RyaW5nIn0pLHtjbGFzc05hbWU6Im1ldGEtc3RyaW5nIixiZWdpbjovPC4qPz4vfSxsLG8uQ19CTE9DS19DT01NRU5UX01PREVdfSxiPXtjbGFzc05hbWU6InRpdGxlIixiZWdpbjp0KF8pK28uSURFTlRfUkUscmVsZXZhbmNlOjB9LGY9dChfKStvLklERU5UX1JFKyJcXHMqXFwoIixPPXtrZXl3b3JkOiJpbnQgZmxvYXQgd2hpbGUgcHJpdmF0ZSBjaGFyIGNoYXI4X3QgY2hhcjE2X3QgY2hhcjMyX3QgY2F0Y2ggaW1wb3J0IG1vZHVsZSBleHBvcnQgdmlydHVhbCBvcGVyYXRvciBzaXplb2YgZHluYW1pY19jYXN0fDEwIHR5cGVkZWYgY29uc3RfY2FzdHwxMCBjb25zdCBmb3Igc3RhdGljX2Nhc3R8MTAgdW5pb24gbmFtZXNwYWNlIHVuc2lnbmVkIGxvbmcgdm9sYXRpbGUgc3RhdGljIHByb3RlY3RlZCBib29sIHRlbXBsYXRlIG11dGFibGUgaWYgcHVibGljIGZyaWVuZCBkbyBnb3RvIGF1dG8gdm9pZCBlbnVtIGVsc2UgYnJlYWsgZXh0ZXJuIHVzaW5nIGFzbSBjYXNlIHR5cGVpZCB3Y2hhcl90IHNob3J0IHJlaW50ZXJwcmV0X2Nhc3R8MTAgZGVmYXVsdCBkb3VibGUgcmVnaXN0ZXIgZXhwbGljaXQgc2lnbmVkIHR5cGVuYW1lIHRyeSB0aGlzIHN3aXRjaCBjb250aW51ZSBpbmxpbmUgZGVsZXRlIGFsaWduYXMgYWxpZ25vZiBjb25zdGV4cHIgY29uc3RldmFsIGNvbnN0aW5pdCBkZWNsdHlwZSBjb25jZXB0IGNvX2F3YWl0IGNvX3JldHVybiBjb195aWVsZCByZXF1aXJlcyBub2V4Y2VwdCBzdGF0aWNfYXNzZXJ0IHRocmVhZF9sb2NhbCByZXN0cmljdCBmaW5hbCBvdmVycmlkZSBhdG9taWNfYm9vbCBhdG9taWNfY2hhciBhdG9taWNfc2NoYXIgYXRvbWljX3VjaGFyIGF0b21pY19zaG9ydCBhdG9taWNfdXNob3J0IGF0b21pY19pbnQgYXRvbWljX3VpbnQgYXRvbWljX2xvbmcgYXRvbWljX3Vsb25nIGF0b21pY19sbG9uZyBhdG9taWNfdWxsb25nIG5ldyB0aHJvdyByZXR1cm4gYW5kIGFuZF9lcSBiaXRhbmQgYml0b3IgY29tcGwgbm90IG5vdF9lcSBvciBvcl9lcSB4b3IgeG9yX2VxIixidWlsdF9pbjoiX0Jvb2wgX0NvbXBsZXggX0ltYWdpbmFyeSIsX3JlbGV2YW5jZV9oaW50czpbImFzaW4iLCJhdGFuMiIsImF0YW4iLCJjYWxsb2MiLCJjZWlsIiwiY29zaCIsImNvcyIsImV4aXQiLCJleHAiLCJmYWJzIiwiZmxvb3IiLCJmbW9kIiwiZnByaW50ZiIsImZwdXRzIiwiZnJlZSIsImZyZXhwIiwiYXV0b19wdHIiLCJkZXF1ZSIsImxpc3QiLCJxdWV1ZSIsInN0YWNrIiwidmVjdG9yIiwibWFwIiwic2V0IiwicGFpciIsImJpdHNldCIsIm11bHRpc2V0IiwibXVsdGltYXAiLCJ1bm9yZGVyZWRfc2V0IiwiZnNjYW5mIiwiZnV0dXJlIiwiaXNhbG51bSIsImlzYWxwaGEiLCJpc2NudHJsIiwiaXNkaWdpdCIsImlzZ3JhcGgiLCJpc2xvd2VyIiwiaXNwcmludCIsImlzcHVuY3QiLCJpc3NwYWNlIiwiaXN1cHBlciIsImlzeGRpZ2l0IiwidG9sb3dlciIsInRvdXBwZXIiLCJsYWJzIiwibGRleHAiLCJsb2cxMCIsImxvZyIsIm1hbGxvYyIsInJlYWxsb2MiLCJtZW1jaHIiLCJtZW1jbXAiLCJtZW1jcHkiLCJtZW1zZXQiLCJtb2RmIiwicG93IiwicHJpbnRmIiwicHV0Y2hhciIsInB1dHMiLCJzY2FuZiIsInNpbmgiLCJzaW4iLCJzbnByaW50ZiIsInNwcmludGYiLCJzcXJ0Iiwic3NjYW5mIiwic3RyY2F0Iiwic3RyY2hyIiwic3RyY21wIiwic3RyY3B5Iiwic3RyY3NwbiIsInN0cmxlbiIsInN0cm5jYXQiLCJzdHJuY21wIiwic3RybmNweSIsInN0cnBicmsiLCJzdHJyY2hyIiwic3Ryc3BuIiwic3Ryc3RyIiwidGFuaCIsInRhbiIsInVub3JkZXJlZF9tYXAiLCJ1bm9yZGVyZWRfbXVsdGlzZXQiLCJ1bm9yZGVyZWRfbXVsdGltYXAiLCJwcmlvcml0eV9xdWV1ZSIsIm1ha2VfcGFpciIsImFycmF5Iiwic2hhcmVkX3B0ciIsImFib3J0IiwidGVybWluYXRlIiwiYWJzIiwiYWNvcyIsInZmcHJpbnRmIiwidnByaW50ZiIsInZzcHJpbnRmIiwiZW5kbCIsImluaXRpYWxpemVyX2xpc3QiLCJ1bmlxdWVfcHRyIiwiY29tcGxleCIsImltYWdpbmFyeSIsInN0ZCIsInN0cmluZyIsIndzdHJpbmciLCJjaW4iLCJjb3V0IiwiY2VyciIsImNsb2ciLCJzdGRpbiIsInN0ZG91dCIsInN0ZGVyciIsInN0cmluZ3N0cmVhbSIsImlzdHJpbmdzdHJlYW0iLCJvc3RyaW5nc3RyZWFtIl0sbGl0ZXJhbDoidHJ1ZSBmYWxzZSBudWxscHRyIE5VTEwifSxEPXtjbGFzc05hbWU6ImZ1bmN0aW9uLmRpc3BhdGNoIixyZWxldmFuY2U6MCxrZXl3b3JkczpPLGJlZ2luOm4oL1xiLywvKD8hZGVjbHR5cGUpLywvKD8haWYpLywvKD8hZm9yKS8sLyg/IXdoaWxlKS8sby5JREVOVF9SRSxlKC9ccypcKC8pKX0seT1bRCxULEUsbCxvLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFMsbV0sQT17dmFyaWFudHM6W3tiZWdpbjovPS8sZW5kOi87L30se2JlZ2luOi9cKC8sZW5kOi9cKS99LHtiZWdpbktleXdvcmRzOiJuZXcgdGhyb3cgcmV0dXJuIGVsc2UiLGVuZDovOy99XSxrZXl3b3JkczpPLGNvbnRhaW5zOnkuY29uY2F0KFt7YmVnaW46L1woLyxlbmQ6L1wpLyxrZXl3b3JkczpPLGNvbnRhaW5zOnkuY29uY2F0KFsic2VsZiJdKSxyZWxldmFuY2U6MH1dKSxyZWxldmFuY2U6MH0saz17Y2xhc3NOYW1lOiJmdW5jdGlvbiIsYmVnaW46IigiK2crIltcXComXFxzXSspKyIrZixyZXR1cm5CZWdpbjohMCxlbmQ6L1t7Oz1dLyxleGNsdWRlRW5kOiEwLGtleXdvcmRzOk8saWxsZWdhbDovW15cd1xzXComOjw+Ll0vLGNvbnRhaW5zOlt7YmVnaW46YyxrZXl3b3JkczpPLHJlbGV2YW5jZTowfSx7YmVnaW46ZixyZXR1cm5CZWdpbjohMCxjb250YWluczpbYl0scmVsZXZhbmNlOjB9LHtiZWdpbjovOjovLHJlbGV2YW5jZTowfSx7YmVnaW46LzovLGVuZHNXaXRoUGFyZW50OiEwLGNvbnRhaW5zOlttLFNdfSx7Y2xhc3NOYW1lOiJwYXJhbXMiLGJlZ2luOi9cKC8sZW5kOi9cKS8sa2V5d29yZHM6TyxyZWxldmFuY2U6MCxjb250YWluczpbbCxvLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLG0sUyxFLHtiZWdpbjovXCgvLGVuZDovXCkvLGtleXdvcmRzOk8scmVsZXZhbmNlOjAsY29udGFpbnM6WyJzZWxmIixsLG8uQ19CTE9DS19DT01NRU5UX01PREUsbSxTLEVdfV19LEUsbCxvLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFRdfTtyZXR1cm57bmFtZToiQysrIixhbGlhc2VzOlsiY2MiLCJjKysiLCJoKysiLCJocHAiLCJoaCIsImh4eCIsImN4eCJdLGtleXdvcmRzOk8saWxsZWdhbDoiPC8iLGNsYXNzTmFtZUFsaWFzZXM6eyJmdW5jdGlvbi5kaXNwYXRjaCI6ImJ1aWx0X2luIn0sY29udGFpbnM6W10uY29uY2F0KEEsayxELHksW1Qse2JlZ2luOiJcXGIoZGVxdWV8bGlzdHxxdWV1ZXxwcmlvcml0eV9xdWV1ZXxwYWlyfHN0YWNrfHZlY3RvcnxtYXB8c2V0fGJpdHNldHxtdWx0aXNldHxtdWx0aW1hcHx1bm9yZGVyZWRfbWFwfHVub3JkZXJlZF9zZXR8dW5vcmRlcmVkX211bHRpc2V0fHVub3JkZXJlZF9tdWx0aW1hcHxhcnJheSlcXHMqPCIsZW5kOiI+IixrZXl3b3JkczpPLGNvbnRhaW5zOlsic2VsZiIsRV19LHtiZWdpbjpvLklERU5UX1JFKyI6OiIsa2V5d29yZHM6T30se2NsYXNzTmFtZToiY2xhc3MiLGJlZ2luS2V5d29yZHM6ImVudW0gY2xhc3Mgc3RydWN0IHVuaW9uIixlbmQ6L1t7Ozo8Pj1dLyxjb250YWluczpbe2JlZ2luS2V5d29yZHM6ImZpbmFsIGNsYXNzIHN0cnVjdCJ9LG8uVElUTEVfTU9ERV19XSksZXhwb3J0czp7cHJlcHJvY2Vzc29yOlQsc3RyaW5nczptLGtleXdvcmRzOk99fX1mdW5jdGlvbiBpKG8pe2NvbnN0IGw9YShvKSxjPVsiYyIsImgiXSxfPVsiY2MiLCJjKysiLCJoKysiLCJocHAiLCJoaCIsImh4eCIsImN4eCJdO3JldHVybiBsLmRpc2FibGVBdXRvZGV0ZWN0PSEwLGwuYWxpYXNlcz1bXSxvLmdldExhbmd1YWdlKCJjIil8fGwuYWxpYXNlcy5wdXNoKC4uLmMpLG8uZ2V0TGFuZ3VhZ2UoImNwcCIpfHxsLmFsaWFzZXMucHVzaCguLi5fKSxsfXMuZXhwb3J0cz1pfSw3Mzc0NTpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGEpe3JldHVybiBhP3R5cGVvZiBhPT0ic3RyaW5nIj9hOmEuc291cmNlOm51bGx9ZnVuY3Rpb24gZShhKXtyZXR1cm4gdCgiKCIsYSwiKT8iKX1mdW5jdGlvbiB0KC4uLmEpe3JldHVybiBhLm1hcChvPT5yKG8pKS5qb2luKCIiKX1mdW5jdGlvbiBuKGEpe2NvbnN0IGk9YS5DT01NRU5UKCIvLyIsIiQiLHtjb250YWluczpbe2JlZ2luOi9cXFxuL31dfSksbz0iZGVjbHR5cGVcXChhdXRvXFwpIixsPSJbYS16QS1aX11cXHcqOjoiLF89IigiK28rInwiK2UobCkrIlthLXpBLVpfXVxcdyoiK2UoIjxbXjw+XSs+IikrIikiLGQ9e2NsYXNzTmFtZToia2V5d29yZCIsYmVnaW46IlxcYlthLXpcXGRfXSpfdFxcYiJ9LEU9e2NsYXNzTmFtZToic3RyaW5nIix2YXJpYW50czpbe2JlZ2luOicodTg/fFV8TCk/IicsZW5kOiciJyxpbGxlZ2FsOiJcXG4iLGNvbnRhaW5zOlthLkJBQ0tTTEFTSF9FU0NBUEVdfSx7YmVnaW46Iih1OD98VXxMKT8nKCIrIlxcXFwoeFswLTlBLUZhLWZdezJ9fHVbMC05QS1GYS1mXXs0LDh9fFswLTddezN9fFxcUykiKyJ8LikiLGVuZDoiJyIsaWxsZWdhbDoiLiJ9LGEuRU5EX1NBTUVfQVNfQkVHSU4oe2JlZ2luOi8oPzp1OD98VXxMKT9SIihbXigpXFwgXXswLDE2fSlcKC8sZW5kOi9cKShbXigpXFwgXXswLDE2fSkiL30pXX0sdT17Y2xhc3NOYW1lOiJudW1iZXIiLHZhcmlhbnRzOlt7YmVnaW46IlxcYigwYlswMSddKykifSx7YmVnaW46IigtPylcXGIoW1xcZCddKyhcXC5bXFxkJ10qKT98XFwuW1xcZCddKykoKGxsfExMfGx8TCkodXxVKT98KHV8VSkobGx8TEx8bHxMKT98ZnxGfGJ8QikifSx7YmVnaW46IigtPykoXFxiMFt4WF1bYS1mQS1GMC05J10rfChcXGJbXFxkJ10rKFxcLltcXGQnXSopP3xcXC5bXFxkJ10rKShbZUVdWy0rXT9bXFxkJ10rKT8pIn1dLHJlbGV2YW5jZTowfSxtPXtjbGFzc05hbWU6Im1ldGEiLGJlZ2luOi8jXHMqW2Etel0rXGIvLGVuZDovJC8sa2V5d29yZHM6eyJtZXRhLWtleXdvcmQiOiJpZiBlbHNlIGVsaWYgZW5kaWYgZGVmaW5lIHVuZGVmIHdhcm5pbmcgZXJyb3IgbGluZSBwcmFnbWEgX1ByYWdtYSBpZmRlZiBpZm5kZWYgaW5jbHVkZSJ9LGNvbnRhaW5zOlt7YmVnaW46L1xcXG4vLHJlbGV2YW5jZTowfSxhLmluaGVyaXQoRSx7Y2xhc3NOYW1lOiJtZXRhLXN0cmluZyJ9KSx7Y2xhc3NOYW1lOiJtZXRhLXN0cmluZyIsYmVnaW46LzwuKj8+L30saSxhLkNfQkxPQ0tfQ09NTUVOVF9NT0RFXX0sUz17Y2xhc3NOYW1lOiJ0aXRsZSIsYmVnaW46ZShsKSthLklERU5UX1JFLHJlbGV2YW5jZTowfSxUPWUobCkrYS5JREVOVF9SRSsiXFxzKlxcKCIsYj17a2V5d29yZDoiaW50IGZsb2F0IHdoaWxlIHByaXZhdGUgY2hhciBjaGFyOF90IGNoYXIxNl90IGNoYXIzMl90IGNhdGNoIGltcG9ydCBtb2R1bGUgZXhwb3J0IHZpcnR1YWwgb3BlcmF0b3Igc2l6ZW9mIGR5bmFtaWNfY2FzdHwxMCB0eXBlZGVmIGNvbnN0X2Nhc3R8MTAgY29uc3QgZm9yIHN0YXRpY19jYXN0fDEwIHVuaW9uIG5hbWVzcGFjZSB1bnNpZ25lZCBsb25nIHZvbGF0aWxlIHN0YXRpYyBwcm90ZWN0ZWQgYm9vbCB0ZW1wbGF0ZSBtdXRhYmxlIGlmIHB1YmxpYyBmcmllbmQgZG8gZ290byBhdXRvIHZvaWQgZW51bSBlbHNlIGJyZWFrIGV4dGVybiB1c2luZyBhc20gY2FzZSB0eXBlaWQgd2NoYXJfdCBzaG9ydCByZWludGVycHJldF9jYXN0fDEwIGRlZmF1bHQgZG91YmxlIHJlZ2lzdGVyIGV4cGxpY2l0IHNpZ25lZCB0eXBlbmFtZSB0cnkgdGhpcyBzd2l0Y2ggY29udGludWUgaW5saW5lIGRlbGV0ZSBhbGlnbmFzIGFsaWdub2YgY29uc3RleHByIGNvbnN0ZXZhbCBjb25zdGluaXQgZGVjbHR5cGUgY29uY2VwdCBjb19hd2FpdCBjb19yZXR1cm4gY29feWllbGQgcmVxdWlyZXMgbm9leGNlcHQgc3RhdGljX2Fzc2VydCB0aHJlYWRfbG9jYWwgcmVzdHJpY3QgZmluYWwgb3ZlcnJpZGUgYXRvbWljX2Jvb2wgYXRvbWljX2NoYXIgYXRvbWljX3NjaGFyIGF0b21pY191Y2hhciBhdG9taWNfc2hvcnQgYXRvbWljX3VzaG9ydCBhdG9taWNfaW50IGF0b21pY191aW50IGF0b21pY19sb25nIGF0b21pY191bG9uZyBhdG9taWNfbGxvbmcgYXRvbWljX3VsbG9uZyBuZXcgdGhyb3cgcmV0dXJuIGFuZCBhbmRfZXEgYml0YW5kIGJpdG9yIGNvbXBsIG5vdCBub3RfZXEgb3Igb3JfZXEgeG9yIHhvcl9lcSIsYnVpbHRfaW46InN0ZCBzdHJpbmcgd3N0cmluZyBjaW4gY291dCBjZXJyIGNsb2cgc3RkaW4gc3Rkb3V0IHN0ZGVyciBzdHJpbmdzdHJlYW0gaXN0cmluZ3N0cmVhbSBvc3RyaW5nc3RyZWFtIGF1dG9fcHRyIGRlcXVlIGxpc3QgcXVldWUgc3RhY2sgdmVjdG9yIG1hcCBzZXQgcGFpciBiaXRzZXQgbXVsdGlzZXQgbXVsdGltYXAgdW5vcmRlcmVkX3NldCB1bm9yZGVyZWRfbWFwIHVub3JkZXJlZF9tdWx0aXNldCB1bm9yZGVyZWRfbXVsdGltYXAgcHJpb3JpdHlfcXVldWUgbWFrZV9wYWlyIGFycmF5IHNoYXJlZF9wdHIgYWJvcnQgdGVybWluYXRlIGFicyBhY29zIGFzaW4gYXRhbjIgYXRhbiBjYWxsb2MgY2VpbCBjb3NoIGNvcyBleGl0IGV4cCBmYWJzIGZsb29yIGZtb2QgZnByaW50ZiBmcHV0cyBmcmVlIGZyZXhwIGZzY2FuZiBmdXR1cmUgaXNhbG51bSBpc2FscGhhIGlzY250cmwgaXNkaWdpdCBpc2dyYXBoIGlzbG93ZXIgaXNwcmludCBpc3B1bmN0IGlzc3BhY2UgaXN1cHBlciBpc3hkaWdpdCB0b2xvd2VyIHRvdXBwZXIgbGFicyBsZGV4cCBsb2cxMCBsb2cgbWFsbG9jIHJlYWxsb2MgbWVtY2hyIG1lbWNtcCBtZW1jcHkgbWVtc2V0IG1vZGYgcG93IHByaW50ZiBwdXRjaGFyIHB1dHMgc2NhbmYgc2luaCBzaW4gc25wcmludGYgc3ByaW50ZiBzcXJ0IHNzY2FuZiBzdHJjYXQgc3RyY2hyIHN0cmNtcCBzdHJjcHkgc3RyY3NwbiBzdHJsZW4gc3RybmNhdCBzdHJuY21wIHN0cm5jcHkgc3RycGJyayBzdHJyY2hyIHN0cnNwbiBzdHJzdHIgdGFuaCB0YW4gdmZwcmludGYgdnByaW50ZiB2c3ByaW50ZiBlbmRsIGluaXRpYWxpemVyX2xpc3QgdW5pcXVlX3B0ciBfQm9vbCBjb21wbGV4IF9Db21wbGV4IGltYWdpbmFyeSBfSW1hZ2luYXJ5IixsaXRlcmFsOiJ0cnVlIGZhbHNlIG51bGxwdHIgTlVMTCJ9LGY9W20sZCxpLGEuQ19CTE9DS19DT01NRU5UX01PREUsdSxFXSxDPXt2YXJpYW50czpbe2JlZ2luOi89LyxlbmQ6LzsvfSx7YmVnaW46L1woLyxlbmQ6L1wpL30se2JlZ2luS2V5d29yZHM6Im5ldyB0aHJvdyByZXR1cm4gZWxzZSIsZW5kOi87L31dLGtleXdvcmRzOmIsY29udGFpbnM6Zi5jb25jYXQoW3tiZWdpbjovXCgvLGVuZDovXCkvLGtleXdvcmRzOmIsY29udGFpbnM6Zi5jb25jYXQoWyJzZWxmIl0pLHJlbGV2YW5jZTowfV0pLHJlbGV2YW5jZTowfSxPPXtjbGFzc05hbWU6ImZ1bmN0aW9uIixiZWdpbjoiKCIrXysiW1xcKiZcXHNdKykrIitULHJldHVybkJlZ2luOiEwLGVuZDovW3s7PV0vLGV4Y2x1ZGVFbmQ6ITAsa2V5d29yZHM6YixpbGxlZ2FsOi9bXlx3XHNcKiY6PD4uXS8sY29udGFpbnM6W3tiZWdpbjpvLGtleXdvcmRzOmIscmVsZXZhbmNlOjB9LHtiZWdpbjpULHJldHVybkJlZ2luOiEwLGNvbnRhaW5zOltTXSxyZWxldmFuY2U6MH0se2NsYXNzTmFtZToicGFyYW1zIixiZWdpbjovXCgvLGVuZDovXCkvLGtleXdvcmRzOmIscmVsZXZhbmNlOjAsY29udGFpbnM6W2ksYS5DX0JMT0NLX0NPTU1FTlRfTU9ERSxFLHUsZCx7YmVnaW46L1woLyxlbmQ6L1wpLyxrZXl3b3JkczpiLHJlbGV2YW5jZTowLGNvbnRhaW5zOlsic2VsZiIsaSxhLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLEUsdSxkXX1dfSxkLGksYS5DX0JMT0NLX0NPTU1FTlRfTU9ERSxtXX07cmV0dXJue25hbWU6IkMiLGFsaWFzZXM6WyJoIl0sa2V5d29yZHM6YixkaXNhYmxlQXV0b2RldGVjdDohMCxpbGxlZ2FsOiI8LyIsY29udGFpbnM6W10uY29uY2F0KEMsTyxmLFttLHtiZWdpbjoiXFxiKGRlcXVlfGxpc3R8cXVldWV8cHJpb3JpdHlfcXVldWV8cGFpcnxzdGFja3x2ZWN0b3J8bWFwfHNldHxiaXRzZXR8bXVsdGlzZXR8bXVsdGltYXB8dW5vcmRlcmVkX21hcHx1bm9yZGVyZWRfc2V0fHVub3JkZXJlZF9tdWx0aXNldHx1bm9yZGVyZWRfbXVsdGltYXB8YXJyYXkpXFxzKjwiLGVuZDoiPiIsa2V5d29yZHM6Yixjb250YWluczpbInNlbGYiLGRdfSx7YmVnaW46YS5JREVOVF9SRSsiOjoiLGtleXdvcmRzOmJ9LHtjbGFzc05hbWU6ImNsYXNzIixiZWdpbktleXdvcmRzOiJlbnVtIGNsYXNzIHN0cnVjdCB1bmlvbiIsZW5kOi9bezs6PD49XS8sY29udGFpbnM6W3tiZWdpbktleXdvcmRzOiJmaW5hbCBjbGFzcyBzdHJ1Y3QifSxhLlRJVExFX01PREVdfV0pLGV4cG9ydHM6e3ByZXByb2Nlc3NvcjptLHN0cmluZ3M6RSxrZXl3b3JkczpifX19cy5leHBvcnRzPW59LDMyNDUwOmZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHIoZSl7Y29uc3QgdD0iZGl2IG1vZCBpbiBhbmQgb3Igbm90IHhvciBhc3NlcnRlcnJvciBiZWdpbiBjYXNlIGRvIGRvd250byBlbHNlIGVuZCBleGl0IGZvciBpZiBvZiByZXBlYXQgdGhlbiB0byB1bnRpbCB3aGlsZSB3aXRoIHZhciIsbj0iZmFsc2UgdHJ1ZSIsYT1bZS5DX0xJTkVfQ09NTUVOVF9NT0RFLGUuQ09NTUVOVCgvXHsvLC9cfS8se3JlbGV2YW5jZTowfSksZS5DT01NRU5UKC9cKFwqLywvXCpcKS8se3JlbGV2YW5jZToxMH0pXSxpPXtjbGFzc05hbWU6InN0cmluZyIsYmVnaW46LycvLGVuZDovJy8sY29udGFpbnM6W3tiZWdpbjovJycvfV19LG89e2NsYXNzTmFtZToic3RyaW5nIixiZWdpbjovKCNcZCspKy99LGw9e2NsYXNzTmFtZToibnVtYmVyIixiZWdpbjoiXFxiXFxkKyhcXC5cXGQrKT8oRFR8RHxUKSIscmVsZXZhbmNlOjB9LGM9e2NsYXNzTmFtZToic3RyaW5nIixiZWdpbjonIicsZW5kOiciJ30sXz17Y2xhc3NOYW1lOiJmdW5jdGlvbiIsYmVnaW5LZXl3b3JkczoicHJvY2VkdXJlIixlbmQ6L1s6O10vLGtleXdvcmRzOiJwcm9jZWR1cmV8MTAiLGNvbnRhaW5zOltlLlRJVExFX01PREUse2NsYXNzTmFtZToicGFyYW1zIixiZWdpbjovXCgvLGVuZDovXCkvLGtleXdvcmRzOnQsY29udGFpbnM6W2ksb119XS5jb25jYXQoYSl9LGQ9e2NsYXNzTmFtZToiY2xhc3MiLGJlZ2luOiJPQkpFQ1QgKFRhYmxlfEZvcm18UmVwb3J0fERhdGFwb3J0fENvZGV1bml0fFhNTHBvcnR8TWVudVN1aXRlfFBhZ2V8UXVlcnkpIChcXGQrKSAoW15cXHJcXG5dKykiLHJldHVybkJlZ2luOiEwLGNvbnRhaW5zOltlLlRJVExFX01PREUsX119O3JldHVybntuYW1lOiJDL0FMIixjYXNlX2luc2Vuc2l0aXZlOiEwLGtleXdvcmRzOntrZXl3b3JkOnQsbGl0ZXJhbDpufSxpbGxlZ2FsOi9cL1wqLyxjb250YWluczpbaSxvLGwsYyxlLk5VTUJFUl9NT0RFLGQsX119fXMuZXhwb3J0cz1yfSw3MDcwODpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGUpe3JldHVybntuYW1lOiJDYXBcdTIwMTluIFByb3RvIixhbGlhc2VzOlsiY2FwbnAiXSxrZXl3b3Jkczp7a2V5d29yZDoic3RydWN0IGVudW0gaW50ZXJmYWNlIHVuaW9uIGdyb3VwIGltcG9ydCB1c2luZyBjb25zdCBhbm5vdGF0aW9uIGV4dGVuZHMgaW4gb2Ygb24gYXMgd2l0aCBmcm9tIGZpeGVkIixidWlsdF9pbjoiVm9pZCBCb29sIEludDggSW50MTYgSW50MzIgSW50NjQgVUludDggVUludDE2IFVJbnQzMiBVSW50NjQgRmxvYXQzMiBGbG9hdDY0IFRleHQgRGF0YSBBbnlQb2ludGVyIEFueVN0cnVjdCBDYXBhYmlsaXR5IExpc3QiLGxpdGVyYWw6InRydWUgZmFsc2UifSxjb250YWluczpbZS5RVU9URV9TVFJJTkdfTU9ERSxlLk5VTUJFUl9NT0RFLGUuSEFTSF9DT01NRU5UX01PREUse2NsYXNzTmFtZToibWV0YSIsYmVnaW46L0AweFtcd1xkXXsxNn07LyxpbGxlZ2FsOi9cbi99LHtjbGFzc05hbWU6InN5bWJvbCIsYmVnaW46L0BcZCtcYi99LHtjbGFzc05hbWU6ImNsYXNzIixiZWdpbktleXdvcmRzOiJzdHJ1Y3QgZW51bSIsZW5kOi9cey8saWxsZWdhbDovXG4vLGNvbnRhaW5zOltlLmluaGVyaXQoZS5USVRMRV9NT0RFLHtzdGFydHM6e2VuZHNXaXRoUGFyZW50OiEwLGV4Y2x1ZGVFbmQ6ITB9fSldfSx7Y2xhc3NOYW1lOiJjbGFzcyIsYmVnaW5LZXl3b3JkczoiaW50ZXJmYWNlIixlbmQ6L1x7LyxpbGxlZ2FsOi9cbi8sY29udGFpbnM6W2UuaW5oZXJpdChlLlRJVExFX01PREUse3N0YXJ0czp7ZW5kc1dpdGhQYXJlbnQ6ITAsZXhjbHVkZUVuZDohMH19KV19XX19cy5leHBvcnRzPXJ9LDczODIyOmZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHIoZSl7Y29uc3QgdD0iYXNzZW1ibHkgbW9kdWxlIHBhY2thZ2UgaW1wb3J0IGFsaWFzIGNsYXNzIGludGVyZmFjZSBvYmplY3QgZ2l2ZW4gdmFsdWUgYXNzaWduIHZvaWQgZnVuY3Rpb24gbmV3IG9mIGV4dGVuZHMgc2F0aXNmaWVzIGFic3RyYWN0cyBpbiBvdXQgcmV0dXJuIGJyZWFrIGNvbnRpbnVlIHRocm93IGFzc2VydCBkeW5hbWljIGlmIGVsc2Ugc3dpdGNoIGNhc2UgZm9yIHdoaWxlIHRyeSBjYXRjaCBmaW5hbGx5IHRoZW4gbGV0IHRoaXMgb3V0ZXIgc3VwZXIgaXMgZXhpc3RzIG5vbmVtcHR5IixuPSJzaGFyZWQgYWJzdHJhY3QgZm9ybWFsIGRlZmF1bHQgYWN0dWFsIHZhcmlhYmxlIGxhdGUgbmF0aXZlIGRlcHJlY2F0ZWQgZmluYWwgc2VhbGVkIGFubm90YXRpb24gc3VwcHJlc3NXYXJuaW5ncyBzbWFsbCIsYT0iZG9jIGJ5IGxpY2Vuc2Ugc2VlIHRocm93cyB0YWdnZWQiLGk9e2NsYXNzTmFtZToic3Vic3QiLGV4Y2x1ZGVCZWdpbjohMCxleGNsdWRlRW5kOiEwLGJlZ2luOi9gYC8sZW5kOi9gYC8sa2V5d29yZHM6dCxyZWxldmFuY2U6MTB9LG89W3tjbGFzc05hbWU6InN0cmluZyIsYmVnaW46JyIiIicsZW5kOiciIiInLHJlbGV2YW5jZToxMH0se2NsYXNzTmFtZToic3RyaW5nIixiZWdpbjonIicsZW5kOiciJyxjb250YWluczpbaV19LHtjbGFzc05hbWU6InN0cmluZyIsYmVnaW46IiciLGVuZDoiJyJ9LHtjbGFzc05hbWU6Im51bWJlciIsYmVnaW46IiNbMC05YS1mQS1GX10rfFxcJFswMV9dK3xbMC05X10rKD86XFwuWzAtOV9dKD86W2VFXVsrLV0/XFxkKyk/KT9ba01HVFBtdW5wZl0/IixyZWxldmFuY2U6MH1dO3JldHVybiBpLmNvbnRhaW5zPW8se25hbWU6IkNleWxvbiIsa2V5d29yZHM6e2tleXdvcmQ6dCsiICIrbixtZXRhOmF9LGlsbGVnYWw6IlxcJFteMDFdfCNbXjAtOWEtZkEtRl0iLGNvbnRhaW5zOltlLkNfTElORV9DT01NRU5UX01PREUsZS5DT01NRU5UKCIvXFwqIiwiXFwqLyIse2NvbnRhaW5zOlsic2VsZiJdfSkse2NsYXNzTmFtZToibWV0YSIsYmVnaW46J0BbYS16XVxcdyooPzo6IlteIl0qIik/J31dLmNvbmNhdChvKX19cy5leHBvcnRzPXJ9LDYwNjIxOmZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHIoZSl7cmV0dXJue25hbWU6IkNsZWFuIixhbGlhc2VzOlsiaWNsIiwiZGNsIl0sa2V5d29yZHM6e2tleXdvcmQ6ImlmIGxldCBpbiB3aXRoIHdoZXJlIGNhc2Ugb2YgY2xhc3MgaW5zdGFuY2Ugb3RoZXJ3aXNlIGltcGxlbWVudGF0aW9uIGRlZmluaXRpb24gc3lzdGVtIG1vZHVsZSBmcm9tIGltcG9ydCBxdWFsaWZpZWQgYXMgc3BlY2lhbCBjb2RlIGlubGluZSBmb3JlaWduIGV4cG9ydCBjY2FsbCBzdGRjYWxsIGdlbmVyaWMgZGVyaXZlIGluZml4IGluZml4bCBpbmZpeHIiLGJ1aWx0X2luOiJJbnQgUmVhbCBDaGFyIEJvb2wiLGxpdGVyYWw6IlRydWUgRmFsc2UifSxjb250YWluczpbZS5DX0xJTkVfQ09NTUVOVF9NT0RFLGUuQ19CTE9DS19DT01NRU5UX01PREUsZS5BUE9TX1NUUklOR19NT0RFLGUuUVVPVEVfU1RSSU5HX01PREUsZS5DX05VTUJFUl9NT0RFLHtiZWdpbjoiLT58PC1bfDpdP3wjIT98Pj49fFxce1xcfHxcXHxcXH18Oj09fD06fDw+In1dfX1zLmV4cG9ydHM9cn0sMjk4ODE6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihlKXtyZXR1cm57bmFtZToiQ2xvanVyZSBSRVBMIixjb250YWluczpbe2NsYXNzTmFtZToibWV0YSIsYmVnaW46L14oW1x3Li1dK3xccyojXyk/PT4vLHN0YXJ0czp7ZW5kOi8kLyxzdWJMYW5ndWFnZToiY2xvanVyZSJ9fV19fXMuZXhwb3J0cz1yfSw2MDczMjpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGUpe2NvbnN0IHQ9ImEtekEtWl9cXC0hLj8rKj08PiYjJyIsbj0iWyIrdCsiXVsiK3QrIjAtOS87Ol0qIixhPSJkZWYgZGVmb25jZSBkZWZwcm90b2NvbCBkZWZzdHJ1Y3QgZGVmbXVsdGkgZGVmbWV0aG9kIGRlZm4tIGRlZm4gZGVmbWFjcm8gZGVmdHlwZSBkZWZyZWNvcmQiLGk9eyRwYXR0ZXJuOm4sImJ1aWx0aW4tbmFtZSI6YSsiIGNvbmQgYXBwbHkgaWYtbm90IGlmLWxldCBpZiBub3Qgbm90PSA9fDAgPHwwID58MCA8PXwwID49fDAgPT18MCArfDAgL3wwICp8MCAtfDAgcmVtIHF1b3QgbmVnPyBwb3M/IGRlbGF5PyBzeW1ib2w/IGtleXdvcmQ/IHRydWU/IGZhbHNlPyBpbnRlZ2VyPyBlbXB0eT8gY29sbD8gbGlzdD8gc2V0PyBpZm4/IGZuPyBhc3NvY2lhdGl2ZT8gc2VxdWVudGlhbD8gc29ydGVkPyBjb3VudGVkPyByZXZlcnNpYmxlPyBudW1iZXI/IGRlY2ltYWw/IGNsYXNzPyBkaXN0aW5jdD8gaXNhPyBmbG9hdD8gcmF0aW9uYWw/IHJlZHVjZWQ/IHJhdGlvPyBvZGQ/IGV2ZW4/IGNoYXI/IHNlcT8gdmVjdG9yPyBzdHJpbmc/IG1hcD8gbmlsPyBjb250YWlucz8gemVybz8gaW5zdGFuY2U/IG5vdC1ldmVyeT8gbm90LWFueT8gbGlic3BlYz8gLT4gLT4+IC4uIC4gaW5jIGNvbXBhcmUgZG8gZG90aW1lcyBtYXBjYXQgdGFrZSByZW1vdmUgdGFrZS13aGlsZSBkcm9wIGxldGZuIGRyb3AtbGFzdCB0YWtlLWxhc3QgZHJvcC13aGlsZSB3aGlsZSBpbnRlcm4gY29uZHAgY2FzZSByZWR1Y2VkIGN5Y2xlIHNwbGl0LWF0IHNwbGl0LXdpdGggcmVwZWF0IHJlcGxpY2F0ZSBpdGVyYXRlIHJhbmdlIG1lcmdlIHppcG1hcCBkZWNsYXJlIGxpbmUtc2VxIHNvcnQgY29tcGFyYXRvciBzb3J0LWJ5IGRvcnVuIGRvYWxsIG50aG5leHQgbnRocmVzdCBwYXJ0aXRpb24gZXZhbCBkb3NlcSBhd2FpdCBhd2FpdC1mb3IgbGV0IGFnZW50IGF0b20gc2VuZCBzZW5kLW9mZiByZWxlYXNlLXBlbmRpbmctc2VuZHMgYWRkLXdhdGNoIG1hcHYgZmlsdGVydiByZW1vdmUtd2F0Y2ggYWdlbnQtZXJyb3IgcmVzdGFydC1hZ2VudCBzZXQtZXJyb3ItaGFuZGxlciBlcnJvci1oYW5kbGVyIHNldC1lcnJvci1tb2RlISBlcnJvci1tb2RlIHNodXRkb3duLWFnZW50cyBxdW90ZSB2YXIgZm4gbG9vcCByZWN1ciB0aHJvdyB0cnkgbW9uaXRvci1lbnRlciBtb25pdG9yLWV4aXQgbWFjcm9leHBhbmQgbWFjcm9leHBhbmQtMSBmb3IgZG9zeW5jIGFuZCBvciB3aGVuIHdoZW4tbm90IHdoZW4tbGV0IGNvbXAganV4dCBwYXJ0aWFsIHNlcXVlbmNlIG1lbW9pemUgY29uc3RhbnRseSBjb21wbGVtZW50IGlkZW50aXR5IGFzc2VydCBwZWVrIHBvcCBkb3RvIHByb3h5IGZpcnN0IHJlc3QgY29ucyBjYXN0IGNvbGwgbGFzdCBidXRsYXN0IHNpZ3MgcmVpZnkgc2Vjb25kIGZmaXJzdCBmbmV4dCBuZmlyc3Qgbm5leHQgbWV0YSB3aXRoLW1ldGEgbnMgaW4tbnMgY3JlYXRlLW5zIGltcG9ydCByZWZlciBrZXlzIHNlbGVjdC1rZXlzIHZhbHMga2V5IHZhbCByc2VxIG5hbWUgbmFtZXNwYWNlIHByb21pc2UgaW50byB0cmFuc2llbnQgcGVyc2lzdGVudCEgY29uaiEgYXNzb2MhIGRpc3NvYyEgcG9wISBkaXNqISB1c2UgY2xhc3MgdHlwZSBudW0gZmxvYXQgZG91YmxlIHNob3J0IGJ5dGUgYm9vbGVhbiBiaWdpbnQgYmlnaW50ZWdlciBiaWdkZWMgcHJpbnQtbWV0aG9kIHByaW50LWR1cCB0aHJvdy1pZiBwcmludGYgZm9ybWF0IGxvYWQgY29tcGlsZSBnZXQtaW4gdXBkYXRlLWluIHByIHByLW9uIG5ld2xpbmUgZmx1c2ggcmVhZCBzbHVycCByZWFkLWxpbmUgc3VidmVjIHdpdGgtb3BlbiBtZW1mbiB0aW1lIHJlLWZpbmQgcmUtZ3JvdXBzIHJhbmQtaW50IHJhbmQgbW9kIGxvY2tpbmcgYXNzZXJ0LXZhbGlkLWZkZWNsIGFsaWFzIHJlc29sdmUgcmVmIGRlcmVmIHJlZnNldCBzd2FwISByZXNldCEgc2V0LXZhbGlkYXRvciEgY29tcGFyZS1hbmQtc2V0ISBhbHRlci1tZXRhISByZXNldC1tZXRhISBjb21tdXRlIGdldC12YWxpZGF0b3IgYWx0ZXIgcmVmLXNldCByZWYtaGlzdG9yeS1jb3VudCByZWYtbWluLWhpc3RvcnkgcmVmLW1heC1oaXN0b3J5IGVuc3VyZSBzeW5jIGlvISBuZXcgbmV4dCBjb25qIHNldCEgdG8tYXJyYXkgZnV0dXJlIGZ1dHVyZS1jYWxsIGludG8tYXJyYXkgYXNldCBnZW4tY2xhc3MgcmVkdWNlIG1hcCBmaWx0ZXIgZmluZCBlbXB0eSBoYXNoLW1hcCBoYXNoLXNldCBzb3J0ZWQtbWFwIHNvcnRlZC1tYXAtYnkgc29ydGVkLXNldCBzb3J0ZWQtc2V0LWJ5IHZlYyB2ZWN0b3Igc2VxIGZsYXR0ZW4gcmV2ZXJzZSBhc3NvYyBkaXNzb2MgbGlzdCBkaXNqIGdldCB1bmlvbiBkaWZmZXJlbmNlIGludGVyc2VjdGlvbiBleHRlbmQgZXh0ZW5kLXR5cGUgZXh0ZW5kLXByb3RvY29sIGludCBudGggZGVsYXkgY291bnQgY29uY2F0IGNodW5rIGNodW5rLWJ1ZmZlciBjaHVuay1hcHBlbmQgY2h1bmstZmlyc3QgY2h1bmstcmVzdCBtYXggbWluIGRlYyB1bmNoZWNrZWQtaW5jLWludCB1bmNoZWNrZWQtaW5jIHVuY2hlY2tlZC1kZWMtaW5jIHVuY2hlY2tlZC1kZWMgdW5jaGVja2VkLW5lZ2F0ZSB1bmNoZWNrZWQtYWRkLWludCB1bmNoZWNrZWQtYWRkIHVuY2hlY2tlZC1zdWJ0cmFjdC1pbnQgdW5jaGVja2VkLXN1YnRyYWN0IGNodW5rLW5leHQgY2h1bmstY29ucyBjaHVua2VkLXNlcT8gcHJuIHZhcnktbWV0YSBsYXp5LXNlcSBzcHJlYWQgbGlzdCogc3RyIGZpbmQta2V5d29yZCBrZXl3b3JkIHN5bWJvbCBnZW5zeW0gZm9yY2UgcmF0aW9uYWxpemUifSxvPSJbLStdP1xcZCsoXFwuXFxkKyk/IixsPXtiZWdpbjpuLHJlbGV2YW5jZTowfSxjPXtjbGFzc05hbWU6Im51bWJlciIsYmVnaW46byxyZWxldmFuY2U6MH0sXz1lLmluaGVyaXQoZS5RVU9URV9TVFJJTkdfTU9ERSx7aWxsZWdhbDpudWxsfSksZD1lLkNPTU1FTlQoIjsiLCIkIix7cmVsZXZhbmNlOjB9KSxnPXtjbGFzc05hbWU6ImxpdGVyYWwiLGJlZ2luOi9cYih0cnVlfGZhbHNlfG5pbClcYi99LEU9e2JlZ2luOiJbXFxbXFx7XSIsZW5kOiJbXFxdXFx9XSJ9LHU9e2NsYXNzTmFtZToiY29tbWVudCIsYmVnaW46IlxcXiIrbn0sbT1lLkNPTU1FTlQoIlxcXlxceyIsIlxcfSIpLFM9e2NsYXNzTmFtZToic3ltYm9sIixiZWdpbjoiWzpdezEsMn0iK259LFQ9e2JlZ2luOiJcXCgiLGVuZDoiXFwpIn0sYj17ZW5kc1dpdGhQYXJlbnQ6ITAscmVsZXZhbmNlOjB9LGY9e2tleXdvcmRzOmksY2xhc3NOYW1lOiJuYW1lIixiZWdpbjpuLHJlbGV2YW5jZTowLHN0YXJ0czpifSxDPVtULF8sdSxtLGQsUyxFLGMsZyxsXSxPPXtiZWdpbktleXdvcmRzOmEsbGV4ZW1lczpuLGVuZDonKFxcW3wjfFxcZHwifDp8XFx7fFxcKXxcXCh8JCknLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJ0aXRsZSIsYmVnaW46bixyZWxldmFuY2U6MCxleGNsdWRlRW5kOiEwLGVuZHNQYXJlbnQ6ITB9XS5jb25jYXQoQyl9O3JldHVybiBULmNvbnRhaW5zPVtlLkNPTU1FTlQoImNvbW1lbnQiLCIiKSxPLGYsYl0sYi5jb250YWlucz1DLEUuY29udGFpbnM9QyxtLmNvbnRhaW5zPVtFXSx7bmFtZToiQ2xvanVyZSIsYWxpYXNlczpbImNsaiJdLGlsbGVnYWw6L1xTLyxjb250YWluczpbVCxfLHUsbSxkLFMsRSxjLGddfX1zLmV4cG9ydHM9cn0sOTIxNDg6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihlKXtyZXR1cm57bmFtZToiQ01ha2UiLGFsaWFzZXM6WyJjbWFrZS5pbiJdLGNhc2VfaW5zZW5zaXRpdmU6ITAsa2V5d29yZHM6e2tleXdvcmQ6ImJyZWFrIGNtYWtlX2hvc3Rfc3lzdGVtX2luZm9ybWF0aW9uIGNtYWtlX21pbmltdW1fcmVxdWlyZWQgY21ha2VfcGFyc2VfYXJndW1lbnRzIGNtYWtlX3BvbGljeSBjb25maWd1cmVfZmlsZSBjb250aW51ZSBlbHNlaWYgZWxzZSBlbmRmb3JlYWNoIGVuZGZ1bmN0aW9uIGVuZGlmIGVuZG1hY3JvIGVuZHdoaWxlIGV4ZWN1dGVfcHJvY2VzcyBmaWxlIGZpbmRfZmlsZSBmaW5kX2xpYnJhcnkgZmluZF9wYWNrYWdlIGZpbmRfcGF0aCBmaW5kX3Byb2dyYW0gZm9yZWFjaCBmdW5jdGlvbiBnZXRfY21ha2VfcHJvcGVydHkgZ2V0X2RpcmVjdG9yeV9wcm9wZXJ0eSBnZXRfZmlsZW5hbWVfY29tcG9uZW50IGdldF9wcm9wZXJ0eSBpZiBpbmNsdWRlIGluY2x1ZGVfZ3VhcmQgbGlzdCBtYWNybyBtYXJrX2FzX2FkdmFuY2VkIG1hdGggbWVzc2FnZSBvcHRpb24gcmV0dXJuIHNlcGFyYXRlX2FyZ3VtZW50cyBzZXRfZGlyZWN0b3J5X3Byb3BlcnRpZXMgc2V0X3Byb3BlcnR5IHNldCBzaXRlX25hbWUgc3RyaW5nIHVuc2V0IHZhcmlhYmxlX3dhdGNoIHdoaWxlIGFkZF9jb21waWxlX2RlZmluaXRpb25zIGFkZF9jb21waWxlX29wdGlvbnMgYWRkX2N1c3RvbV9jb21tYW5kIGFkZF9jdXN0b21fdGFyZ2V0IGFkZF9kZWZpbml0aW9ucyBhZGRfZGVwZW5kZW5jaWVzIGFkZF9leGVjdXRhYmxlIGFkZF9saWJyYXJ5IGFkZF9saW5rX29wdGlvbnMgYWRkX3N1YmRpcmVjdG9yeSBhZGRfdGVzdCBhdXhfc291cmNlX2RpcmVjdG9yeSBidWlsZF9jb21tYW5kIGNyZWF0ZV90ZXN0X3NvdXJjZWxpc3QgZGVmaW5lX3Byb3BlcnR5IGVuYWJsZV9sYW5ndWFnZSBlbmFibGVfdGVzdGluZyBleHBvcnQgZmx0a193cmFwX3VpIGdldF9zb3VyY2VfZmlsZV9wcm9wZXJ0eSBnZXRfdGFyZ2V0X3Byb3BlcnR5IGdldF90ZXN0X3Byb3BlcnR5IGluY2x1ZGVfZGlyZWN0b3JpZXMgaW5jbHVkZV9leHRlcm5hbF9tc3Byb2plY3QgaW5jbHVkZV9yZWd1bGFyX2V4cHJlc3Npb24gaW5zdGFsbCBsaW5rX2RpcmVjdG9yaWVzIGxpbmtfbGlicmFyaWVzIGxvYWRfY2FjaGUgcHJvamVjdCBxdF93cmFwX2NwcCBxdF93cmFwX3VpIHJlbW92ZV9kZWZpbml0aW9ucyBzZXRfc291cmNlX2ZpbGVzX3Byb3BlcnRpZXMgc2V0X3RhcmdldF9wcm9wZXJ0aWVzIHNldF90ZXN0c19wcm9wZXJ0aWVzIHNvdXJjZV9ncm91cCB0YXJnZXRfY29tcGlsZV9kZWZpbml0aW9ucyB0YXJnZXRfY29tcGlsZV9mZWF0dXJlcyB0YXJnZXRfY29tcGlsZV9vcHRpb25zIHRhcmdldF9pbmNsdWRlX2RpcmVjdG9yaWVzIHRhcmdldF9saW5rX2RpcmVjdG9yaWVzIHRhcmdldF9saW5rX2xpYnJhcmllcyB0YXJnZXRfbGlua19vcHRpb25zIHRhcmdldF9zb3VyY2VzIHRyeV9jb21waWxlIHRyeV9ydW4gY3Rlc3RfYnVpbGQgY3Rlc3RfY29uZmlndXJlIGN0ZXN0X2NvdmVyYWdlIGN0ZXN0X2VtcHR5X2JpbmFyeV9kaXJlY3RvcnkgY3Rlc3RfbWVtY2hlY2sgY3Rlc3RfcmVhZF9jdXN0b21fZmlsZXMgY3Rlc3RfcnVuX3NjcmlwdCBjdGVzdF9zbGVlcCBjdGVzdF9zdGFydCBjdGVzdF9zdWJtaXQgY3Rlc3RfdGVzdCBjdGVzdF91cGRhdGUgY3Rlc3RfdXBsb2FkIGJ1aWxkX25hbWUgZXhlY19wcm9ncmFtIGV4cG9ydF9saWJyYXJ5X2RlcGVuZGVuY2llcyBpbnN0YWxsX2ZpbGVzIGluc3RhbGxfcHJvZ3JhbXMgaW5zdGFsbF90YXJnZXRzIGxvYWRfY29tbWFuZCBtYWtlX2RpcmVjdG9yeSBvdXRwdXRfcmVxdWlyZWRfZmlsZXMgcmVtb3ZlIHN1YmRpcl9kZXBlbmRzIHN1YmRpcnMgdXNlX21hbmdsZWRfbWVzYSB1dGlsaXR5X3NvdXJjZSB2YXJpYWJsZV9yZXF1aXJlcyB3cml0ZV9maWxlIHF0NV91c2VfbW9kdWxlcyBxdDVfdXNlX3BhY2thZ2UgcXQ1X3dyYXBfY3BwIG9uIG9mZiB0cnVlIGZhbHNlIGFuZCBvciBub3QgY29tbWFuZCBwb2xpY3kgdGFyZ2V0IHRlc3QgZXhpc3RzIGlzX25ld2VyX3RoYW4gaXNfZGlyZWN0b3J5IGlzX3N5bWxpbmsgaXNfYWJzb2x1dGUgbWF0Y2hlcyBsZXNzIGdyZWF0ZXIgZXF1YWwgbGVzc19lcXVhbCBncmVhdGVyX2VxdWFsIHN0cmxlc3Mgc3RyZ3JlYXRlciBzdHJlcXVhbCBzdHJsZXNzX2VxdWFsIHN0cmdyZWF0ZXJfZXF1YWwgdmVyc2lvbl9sZXNzIHZlcnNpb25fZ3JlYXRlciB2ZXJzaW9uX2VxdWFsIHZlcnNpb25fbGVzc19lcXVhbCB2ZXJzaW9uX2dyZWF0ZXJfZXF1YWwgaW5fbGlzdCBkZWZpbmVkIn0sY29udGFpbnM6W3tjbGFzc05hbWU6InZhcmlhYmxlIixiZWdpbjovXCRcey8sZW5kOi9cfS99LGUuSEFTSF9DT01NRU5UX01PREUsZS5RVU9URV9TVFJJTkdfTU9ERSxlLk5VTUJFUl9NT0RFXX19cy5leHBvcnRzPXJ9LDgyNDA3OmZ1bmN0aW9uKHMpe2NvbnN0IHI9WyJhcyIsImluIiwib2YiLCJpZiIsImZvciIsIndoaWxlIiwiZmluYWxseSIsInZhciIsIm5ldyIsImZ1bmN0aW9uIiwiZG8iLCJyZXR1cm4iLCJ2b2lkIiwiZWxzZSIsImJyZWFrIiwiY2F0Y2giLCJpbnN0YW5jZW9mIiwid2l0aCIsInRocm93IiwiY2FzZSIsImRlZmF1bHQiLCJ0cnkiLCJzd2l0Y2giLCJjb250aW51ZSIsInR5cGVvZiIsImRlbGV0ZSIsImxldCIsInlpZWxkIiwiY29uc3QiLCJjbGFzcyIsImRlYnVnZ2VyIiwiYXN5bmMiLCJhd2FpdCIsInN0YXRpYyIsImltcG9ydCIsImZyb20iLCJleHBvcnQiLCJleHRlbmRzIl0sZT1bInRydWUiLCJmYWxzZSIsIm51bGwiLCJ1bmRlZmluZWQiLCJOYU4iLCJJbmZpbml0eSJdLHQ9WyJJbnRsIiwiRGF0YVZpZXciLCJOdW1iZXIiLCJNYXRoIiwiRGF0ZSIsIlN0cmluZyIsIlJlZ0V4cCIsIk9iamVjdCIsIkZ1bmN0aW9uIiwiQm9vbGVhbiIsIkVycm9yIiwiU3ltYm9sIiwiU2V0IiwiTWFwIiwiV2Vha1NldCIsIldlYWtNYXAiLCJQcm94eSIsIlJlZmxlY3QiLCJKU09OIiwiUHJvbWlzZSIsIkZsb2F0NjRBcnJheSIsIkludDE2QXJyYXkiLCJJbnQzMkFycmF5IiwiSW50OEFycmF5IiwiVWludDE2QXJyYXkiLCJVaW50MzJBcnJheSIsIkZsb2F0MzJBcnJheSIsIkFycmF5IiwiVWludDhBcnJheSIsIlVpbnQ4Q2xhbXBlZEFycmF5IiwiQXJyYXlCdWZmZXIiLCJCaWdJbnQ2NEFycmF5IiwiQmlnVWludDY0QXJyYXkiLCJCaWdJbnQiXSxuPVsiRXZhbEVycm9yIiwiSW50ZXJuYWxFcnJvciIsIlJhbmdlRXJyb3IiLCJSZWZlcmVuY2VFcnJvciIsIlN5bnRheEVycm9yIiwiVHlwZUVycm9yIiwiVVJJRXJyb3IiXSxhPVsic2V0SW50ZXJ2YWwiLCJzZXRUaW1lb3V0IiwiY2xlYXJJbnRlcnZhbCIsImNsZWFyVGltZW91dCIsInJlcXVpcmUiLCJleHBvcnRzIiwiZXZhbCIsImlzRmluaXRlIiwiaXNOYU4iLCJwYXJzZUZsb2F0IiwicGFyc2VJbnQiLCJkZWNvZGVVUkkiLCJkZWNvZGVVUklDb21wb25lbnQiLCJlbmNvZGVVUkkiLCJlbmNvZGVVUklDb21wb25lbnQiLCJlc2NhcGUiLCJ1bmVzY2FwZSJdLGk9WyJhcmd1bWVudHMiLCJ0aGlzIiwic3VwZXIiLCJjb25zb2xlIiwid2luZG93IiwiZG9jdW1lbnQiLCJsb2NhbFN0b3JhZ2UiLCJtb2R1bGUiLCJnbG9iYWwiXSxvPVtdLmNvbmNhdChhLGksdCxuKTtmdW5jdGlvbiBsKGMpe2NvbnN0IF89WyJucG0iLCJwcmludCJdLGQ9WyJ5ZXMiLCJubyIsIm9uIiwib2ZmIl0sZz1bInRoZW4iLCJ1bmxlc3MiLCJ1bnRpbCIsImxvb3AiLCJieSIsIndoZW4iLCJhbmQiLCJvciIsImlzIiwiaXNudCIsIm5vdCJdLEU9WyJ2YXIiLCJjb25zdCIsImxldCIsImZ1bmN0aW9uIiwic3RhdGljIl0sdT1EPT55PT4hRC5pbmNsdWRlcyh5KSxtPXtrZXl3b3JkOnIuY29uY2F0KGcpLmZpbHRlcih1KEUpKSxsaXRlcmFsOmUuY29uY2F0KGQpLGJ1aWx0X2luOm8uY29uY2F0KF8pfSxTPSJbQS1aYS16JF9dWzAtOUEtWmEteiRfXSoiLFQ9e2NsYXNzTmFtZToic3Vic3QiLGJlZ2luOi8jXHsvLGVuZDovXH0vLGtleXdvcmRzOm19LGI9W2MuQklOQVJZX05VTUJFUl9NT0RFLGMuaW5oZXJpdChjLkNfTlVNQkVSX01PREUse3N0YXJ0czp7ZW5kOiIoXFxzKi8pPyIscmVsZXZhbmNlOjB9fSkse2NsYXNzTmFtZToic3RyaW5nIix2YXJpYW50czpbe2JlZ2luOi8nJycvLGVuZDovJycnLyxjb250YWluczpbYy5CQUNLU0xBU0hfRVNDQVBFXX0se2JlZ2luOi8nLyxlbmQ6LycvLGNvbnRhaW5zOltjLkJBQ0tTTEFTSF9FU0NBUEVdfSx7YmVnaW46LyIiIi8sZW5kOi8iIiIvLGNvbnRhaW5zOltjLkJBQ0tTTEFTSF9FU0NBUEUsVF19LHtiZWdpbjovIi8sZW5kOi8iLyxjb250YWluczpbYy5CQUNLU0xBU0hfRVNDQVBFLFRdfV19LHtjbGFzc05hbWU6InJlZ2V4cCIsdmFyaWFudHM6W3tiZWdpbjoiLy8vIixlbmQ6Ii8vLyIsY29udGFpbnM6W1QsYy5IQVNIX0NPTU1FTlRfTU9ERV19LHtiZWdpbjoiLy9bZ2ltXXswLDN9KD89XFxXKSIscmVsZXZhbmNlOjB9LHtiZWdpbjovXC8oPyFbICpdKS4qPyg/IVtcXF0pLlwvW2dpbV17MCwzfSg/PVxXKS99XX0se2JlZ2luOiJAIitTfSx7c3ViTGFuZ3VhZ2U6ImphdmFzY3JpcHQiLGV4Y2x1ZGVCZWdpbjohMCxleGNsdWRlRW5kOiEwLHZhcmlhbnRzOlt7YmVnaW46ImBgYCIsZW5kOiJgYGAifSx7YmVnaW46ImAiLGVuZDoiYCJ9XX1dO1QuY29udGFpbnM9Yjtjb25zdCBmPWMuaW5oZXJpdChjLlRJVExFX01PREUse2JlZ2luOlN9KSxDPSIoXFwoLipcXClcXHMqKT9cXEJbLT1dPiIsTz17Y2xhc3NOYW1lOiJwYXJhbXMiLGJlZ2luOiJcXChbXlxcKF0iLHJldHVybkJlZ2luOiEwLGNvbnRhaW5zOlt7YmVnaW46L1woLyxlbmQ6L1wpLyxrZXl3b3JkczptLGNvbnRhaW5zOlsic2VsZiJdLmNvbmNhdChiKX1dfTtyZXR1cm57bmFtZToiQ29mZmVlU2NyaXB0IixhbGlhc2VzOlsiY29mZmVlIiwiY3NvbiIsImljZWQiXSxrZXl3b3JkczptLGlsbGVnYWw6L1wvXCovLGNvbnRhaW5zOmIuY29uY2F0KFtjLkNPTU1FTlQoIiMjIyIsIiMjIyIpLGMuSEFTSF9DT01NRU5UX01PREUse2NsYXNzTmFtZToiZnVuY3Rpb24iLGJlZ2luOiJeXFxzKiIrUysiXFxzKj1cXHMqIitDLGVuZDoiWy09XT4iLHJldHVybkJlZ2luOiEwLGNvbnRhaW5zOltmLE9dfSx7YmVnaW46L1s6XCgsPV1ccyovLHJlbGV2YW5jZTowLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJmdW5jdGlvbiIsYmVnaW46QyxlbmQ6IlstPV0+IixyZXR1cm5CZWdpbjohMCxjb250YWluczpbT119XX0se2NsYXNzTmFtZToiY2xhc3MiLGJlZ2luS2V5d29yZHM6ImNsYXNzIixlbmQ6IiQiLGlsbGVnYWw6L1s6PSJcW1xdXS8sY29udGFpbnM6W3tiZWdpbktleXdvcmRzOiJleHRlbmRzIixlbmRzV2l0aFBhcmVudDohMCxpbGxlZ2FsOi9bOj0iXFtcXV0vLGNvbnRhaW5zOltmXX0sZl19LHtiZWdpbjpTKyI6IixlbmQ6IjoiLHJldHVybkJlZ2luOiEwLHJldHVybkVuZDohMCxyZWxldmFuY2U6MH1dKX19cy5leHBvcnRzPWx9LDE2Mjg4OmZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHIoZSl7cmV0dXJue25hbWU6IkNvcSIsa2V5d29yZHM6e2tleXdvcmQ6Il98MCBhcyBhdCBjb2ZpeCBlbHNlIGVuZCBleGlzdHMgZXhpc3RzMiBmaXggZm9yIGZvcmFsbCBmdW4gaWYgSUYgaW4gbGV0IG1hdGNoIG1vZCBQcm9wIHJldHVybiBTZXQgdGhlbiBUeXBlIHVzaW5nIHdoZXJlIHdpdGggQWJvcnQgQWJvdXQgQWRkIEFkbWl0IEFkbWl0dGVkIEFsbCBBcmd1bWVudHMgQXNzdW1wdGlvbnMgQXhpb20gQmFjayBCYWNrVG8gQmFja3RyYWNrIEJpbmQgQmxhY2tsaXN0IENhbm9uaWNhbCBDZCBDaGVjayBDbGFzcyBDbGFzc2VzIENsb3NlIENvZXJjaW9uIENvZXJjaW9ucyBDb0ZpeHBvaW50IENvSW5kdWN0aXZlIENvbGxlY3Rpb24gQ29tYmluZWQgQ29tcHV0ZSBDb25qZWN0dXJlIENvbmplY3R1cmVzIENvbnN0YW50IGNvbnN0ciBDb25zdHJhaW50IENvbnN0cnVjdG9ycyBDb250ZXh0IENvcm9sbGFyeSBDcmVhdGVIaW50RGIgQ3V0IERlY2xhcmUgRGVmaW5lZCBEZWZpbml0aW9uIERlbGltaXQgRGVwZW5kZW5jaWVzIERlcGVuZGVudCBEZXJpdmUgRHJvcCBlYXV0byBFbmQgRXF1YWxpdHkgRXZhbCBFeGFtcGxlIEV4aXN0ZW50aWFsIEV4aXN0ZW50aWFscyBFeGlzdGluZyBFeHBvcnQgZXhwb3J0aW5nIEV4dGVybiBFeHRyYWN0IEV4dHJhY3Rpb24gRmFjdCBGaWVsZCBGaWVsZHMgRmlsZSBGaXhwb2ludCBGb2N1cyBmb3IgRnJvbSBGdW5jdGlvbiBGdW5jdGlvbmFsIEdlbmVyYWxpemFibGUgR2xvYmFsIEdvYWwgR3JhYiBHcmFtbWFyIEdyYXBoIEd1YXJkZWQgSGVhcCBIaW50IEhpbnREYiBIaW50cyBIeXBvdGhlc2VzIEh5cG90aGVzaXMgaWRlbnQgSWRlbnRpdHkgSWYgSW1tZWRpYXRlIEltcGxpY2l0IEltcG9ydCBJbmNsdWRlIEluZHVjdGl2ZSBJbmZpeCBJbmZvIEluaXRpYWwgSW5saW5lIEluc3BlY3QgSW5zdGFuY2UgSW5zdGFuY2VzIEludHJvIEludHJvcyBJbnZlcnNpb24gSW52ZXJzaW9uX2NsZWFyIExhbmd1YWdlIExlZnQgTGVtbWEgTGV0IExpYnJhcmllcyBMaWJyYXJ5IExvYWQgTG9hZFBhdGggTG9jYWwgTG9jYXRlIEx0YWMgTUwgTW9kZSBNb2R1bGUgTW9kdWxlcyBNb25vbW9ycGhpYyBNb3JwaGlzbSBOZXh0IE5vSW5saW5lIE5vdGF0aW9uIE9ibGlnYXRpb24gT2JsaWdhdGlvbnMgT3BhcXVlIE9wZW4gT3B0aW1pemUgT3B0aW9ucyBQYXJhbWV0ZXIgUGFyYW1ldGVycyBQYXJhbWV0cmljIFBhdGggUGF0aHMgcGF0dGVybiBQb2x5bW9ycGhpYyBQcmV0ZXJtIFByaW50IFByaW50aW5nIFByb2dyYW0gUHJvamVjdGlvbnMgUHJvb2YgUHJvcG9zaXRpb24gUHdkIFFlZCBRdWl0IFJlYyBSZWNvcmQgUmVjdXJzaXZlIFJlZGlyZWN0IFJlbGF0aW9uIFJlbWFyayBSZW1vdmUgUmVxdWlyZSBSZXNlcnZlZCBSZXNldCBSZXNvbHZlIFJlc3RhcnQgUmV3cml0ZSBSaWdodCBSaW5nIFJpbmdzIFNhdmUgU2NoZW1lIFNjb3BlIFNjb3BlcyBTY3JpcHQgU2VhcmNoIFNlYXJjaEFib3V0IFNlYXJjaEhlYWQgU2VhcmNoUGF0dGVybiBTZWFyY2hSZXdyaXRlIFNlY3Rpb24gU2VwYXJhdGUgU2V0IFNldG9pZCBTaG93IFNvbHZlIFNvcnRlZCBTdGVwIFN0cmF0ZWdpZXMgU3RyYXRlZ3kgU3RydWN0dXJlIFN1YkNsYXNzIFRhYmxlIFRhYmxlcyBUYWN0aWMgVGVybSBUZXN0IFRoZW9yZW0gVGltZSBUaW1lb3V0IFRyYW5zcGFyZW50IFR5cGUgVHlwZWNsYXNzZXMgVHlwZXMgVW5kZWxpbWl0IFVuZG8gVW5mb2N1cyBVbmZvY3VzZWQgVW5mb2xkIFVuaXZlcnNlIFVuaXZlcnNlcyBVbnNldCBVbnNoZWx2ZSB1c2luZyBWYXJpYWJsZSBWYXJpYWJsZXMgVmFyaWFudCBWZXJib3NlIFZpc2liaWxpdHkgd2hlcmUgd2l0aCIsYnVpbHRfaW46ImFic3RyYWN0IGFic3VyZCBhZG1pdCBhZnRlciBhcHBseSBhcyBhc3NlcnQgYXNzdW1wdGlvbiBhdCBhdXRvIGF1dG9yZXdyaXRlIGF1dG91bmZvbGQgYmVmb3JlIGJvdHRvbSBidGF1dG8gYnkgY2FzZSBjYXNlX2VxIGNibiBjYnYgY2hhbmdlIGNsYXNzaWNhbF9sZWZ0IGNsYXNzaWNhbF9yaWdodCBjbGVhciBjbGVhcmJvZHkgY29maXggY29tcGFyZSBjb21wdXRlIGNvbmdydWVuY2UgY29uc3RyX2VxIGNvbnN0cnVjdG9yIGNvbnRyYWRpY3QgY29udHJhZGljdGlvbiBjdXQgY3V0cmV3cml0ZSBjeWNsZSBkZWNpZGUgZGVjb21wb3NlIGRlcGVuZGVudCBkZXN0cnVjdCBkZXN0cnVjdGlvbiBkaW50dWl0aW9uIGRpc2NyaW1pbmF0ZSBkaXNjclIgZG8gZG91YmxlIGR0YXV0byBlYXBwbHkgZWFzc3VtcHRpb24gZWF1dG8gZWNhc2UgZWNvbnN0cnVjdG9yIGVkZXN0cnVjdCBlZGlzY3JpbWluYXRlIGVlbGltIGVleGFjdCBlZXhpc3RzIGVpbmR1Y3Rpb24gZWluamVjdGlvbiBlbGVmdCBlbGltIGVsaW10eXBlIGVub3VnaCBlcXVhbGl0eSBlcmV3cml0ZSBlcmlnaHQgZXNpbXBsaWZ5X2VxIGVzcGxpdCBldmFyIGV4YWN0IGV4YWN0bHlfb25jZSBleGZhbHNvIGV4aXN0cyBmX2VxdWFsIGZhaWwgZmllbGQgZmllbGRfc2ltcGxpZnkgZmllbGRfc2ltcGxpZnlfZXEgZmlyc3QgZmlyc3RvcmRlciBmaXggZm9sZCBmb3VyaWVyIGZ1bmN0aW9uYWwgZ2VuZXJhbGl6ZSBnZW5lcmFsaXppbmcgZ2ZhaWwgZ2l2ZV91cCBoYXNfZXZhciBobmYgaWR0YWMgaW4gaW5kdWN0aW9uIGluamVjdGlvbiBpbnN0YW50aWF0ZSBpbnRybyBpbnRyb19wYXR0ZXJuIGludHJvcyBpbnR1aXRpb24gaW52ZXJzaW9uIGludmVyc2lvbl9jbGVhciBpc19ldmFyIGlzX3ZhciBsYXBwbHkgbGF6eSBsZWZ0IGxpYSBscmEgbW92ZSBuYXRpdmVfY29tcHV0ZSBuaWEgbnNhdHogb21lZ2Egb25jZSBwYXR0ZXJuIHBvc2UgcHJvZ3Jlc3MgcHJvb2YgcHNhdHogcXVvdGUgcmVjb3JkIHJlZCByZWZpbmUgcmVmbGV4aXZpdHkgcmVtZW1iZXIgcmVuYW1lIHJlcGVhdCByZXBsYWNlIHJldmVydCByZXZnb2FscyByZXdyaXRlIHJld3JpdGVfc3RyYXQgcmlnaHQgcmluZyByaW5nX3NpbXBsaWZ5IHJ0YXV0byBzZXQgc2V0b2lkX3JlZmxleGl2aXR5IHNldG9pZF9yZXBsYWNlIHNldG9pZF9yZXdyaXRlIHNldG9pZF9zeW1tZXRyeSBzZXRvaWRfdHJhbnNpdGl2aXR5IHNoZWx2ZSBzaGVsdmVfdW5pZmlhYmxlIHNpbXBsIHNpbXBsZSBzaW1wbGlmeV9lcSBzb2x2ZSBzcGVjaWFsaXplIHNwbGl0IHNwbGl0X1JhYnMgc3BsaXRfUm11bHQgc3RlcGwgc3RlcHIgc3Vic3Qgc3VtIHN3YXAgc3ltbWV0cnkgdGFjdGljIHRhdXRvIHRpbWUgdGltZW91dCB0b3AgdHJhbnNpdGl2aXR5IHRyaXZpYWwgdHJ5IHRyeWlmIHVuZm9sZCB1bmlmeSB1bnRpbCB1c2luZyB2bV9jb21wdXRlIHdpdGgifSxjb250YWluczpbZS5RVU9URV9TVFJJTkdfTU9ERSxlLkNPTU1FTlQoIlxcKFxcKiIsIlxcKlxcKSIpLGUuQ19OVU1CRVJfTU9ERSx7Y2xhc3NOYW1lOiJ0eXBlIixleGNsdWRlQmVnaW46ITAsYmVnaW46IlxcfFxccyoiLGVuZDoiXFx3KyJ9LHtiZWdpbjovWy09XT4vfV19fXMuZXhwb3J0cz1yfSw3NjUwMTpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGUpe3JldHVybntuYW1lOiJDYWNoXHhFOSBPYmplY3QgU2NyaXB0IixjYXNlX2luc2Vuc2l0aXZlOiEwLGFsaWFzZXM6WyJjbHMiXSxrZXl3b3JkczoicHJvcGVydHkgcGFyYW1ldGVyIGNsYXNzIGNsYXNzbWV0aG9kIGNsaWVudG1ldGhvZCBleHRlbmRzIGFzIGJyZWFrIGNhdGNoIGNsb3NlIGNvbnRpbnVlIGRvIGR8MCBlbHNlIGVsc2VpZiBmb3IgZ290byBoYWx0IGhhbmcgaHwwIGlmIGpvYiBqfDAga2lsbCBrfDAgbG9jayBsfDAgbWVyZ2UgbmV3IG9wZW4gcXVpdCBxfDAgcmVhZCByfDAgcmV0dXJuIHNldCBzfDAgdGNvbW1pdCB0aHJvdyB0cm9sbGJhY2sgdHJ5IHRzdGFydCB1c2UgdmlldyB3aGlsZSB3cml0ZSB3fDAgeGVjdXRlIHh8MCB6a2lsbCB6bnNwYWNlIHpuIHp0cmFwIHp3cml0ZSB6dyB6emR1bXAgenp3cml0ZSBwcmludCB6YnJlYWsgemluc2VydCB6bG9hZCB6cHJpbnQgenJlbW92ZSB6c2F2ZSB6enByaW50IG12IG12Y2FsbCBtdmNydCBtdmRpbSBtdnByaW50IHpxdWl0IHpzeW5jIGFzY2lpIixjb250YWluczpbe2NsYXNzTmFtZToibnVtYmVyIixiZWdpbjoiXFxiKFxcZCsoXFwuXFxkKik/fFxcLlxcZCspIixyZWxldmFuY2U6MH0se2NsYXNzTmFtZToic3RyaW5nIix2YXJpYW50czpbe2JlZ2luOiciJyxlbmQ6JyInLGNvbnRhaW5zOlt7YmVnaW46JyIiJyxyZWxldmFuY2U6MH1dfV19LGUuQ19MSU5FX0NPTU1FTlRfTU9ERSxlLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLHtjbGFzc05hbWU6ImNvbW1lbnQiLGJlZ2luOi87LyxlbmQ6IiQiLHJlbGV2YW5jZTowfSx7Y2xhc3NOYW1lOiJidWlsdF9pbiIsYmVnaW46Lyg/OlwkXCQ/fFwuXC4pXF4/W2EtekEtWl0rL30se2NsYXNzTmFtZToiYnVpbHRfaW4iLGJlZ2luOi9cJFwkXCRbYS16QS1aXSsvfSx7Y2xhc3NOYW1lOiJidWlsdF9pbiIsYmVnaW46LyVbYS16XSsoPzpcLlthLXpdKykqL30se2NsYXNzTmFtZToic3ltYm9sIixiZWdpbjovXF4lP1thLXpBLVpdW1x3XSovfSx7Y2xhc3NOYW1lOiJrZXl3b3JkIixiZWdpbjovIyNjbGFzc3wjI3N1cGVyfCNkZWZpbmV8I2RpbS99LHtiZWdpbjovJnNxbFwoLyxlbmQ6L1wpLyxleGNsdWRlQmVnaW46ITAsZXhjbHVkZUVuZDohMCxzdWJMYW5ndWFnZToic3FsIn0se2JlZ2luOi8mKGpzfGpzY3JpcHR8amF2YXNjcmlwdCk8LyxlbmQ6Lz4vLGV4Y2x1ZGVCZWdpbjohMCxleGNsdWRlRW5kOiEwLHN1Ykxhbmd1YWdlOiJqYXZhc2NyaXB0In0se2JlZ2luOi8maHRtbDxccyo8LyxlbmQ6Lz5ccyo+LyxzdWJMYW5ndWFnZToieG1sIn1dfX1zLmV4cG9ydHM9cn0sMjExMjpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGkpe3JldHVybiBpP3R5cGVvZiBpPT0ic3RyaW5nIj9pOmkuc291cmNlOm51bGx9ZnVuY3Rpb24gZShpKXtyZXR1cm4gbigiKD89IixpLCIpIil9ZnVuY3Rpb24gdChpKXtyZXR1cm4gbigiKCIsaSwiKT8iKX1mdW5jdGlvbiBuKC4uLmkpe3JldHVybiBpLm1hcChsPT5yKGwpKS5qb2luKCIiKX1mdW5jdGlvbiBhKGkpe2NvbnN0IG89aS5DT01NRU5UKCIvLyIsIiQiLHtjb250YWluczpbe2JlZ2luOi9cXFxuL31dfSksbD0iZGVjbHR5cGVcXChhdXRvXFwpIixjPSJbYS16QS1aX11cXHcqOjoiLGQ9IigiK2wrInwiK3QoYykrIlthLXpBLVpfXVxcdyoiK3QoIjxbXjw+XSs+IikrIikiLGc9e2NsYXNzTmFtZToia2V5d29yZCIsYmVnaW46IlxcYlthLXpcXGRfXSpfdFxcYiJ9LHU9e2NsYXNzTmFtZToic3RyaW5nIix2YXJpYW50czpbe2JlZ2luOicodTg/fFV8TCk/IicsZW5kOiciJyxpbGxlZ2FsOiJcXG4iLGNvbnRhaW5zOltpLkJBQ0tTTEFTSF9FU0NBUEVdfSx7YmVnaW46Iih1OD98VXxMKT8nKCIrIlxcXFwoeFswLTlBLUZhLWZdezJ9fHVbMC05QS1GYS1mXXs0LDh9fFswLTddezN9fFxcUykiKyJ8LikiLGVuZDoiJyIsaWxsZWdhbDoiLiJ9LGkuRU5EX1NBTUVfQVNfQkVHSU4oe2JlZ2luOi8oPzp1OD98VXxMKT9SIihbXigpXFwgXXswLDE2fSlcKC8sZW5kOi9cKShbXigpXFwgXXswLDE2fSkiL30pXX0sbT17Y2xhc3NOYW1lOiJudW1iZXIiLHZhcmlhbnRzOlt7YmVnaW46IlxcYigwYlswMSddKykifSx7YmVnaW46IigtPylcXGIoW1xcZCddKyhcXC5bXFxkJ10qKT98XFwuW1xcZCddKykoKGxsfExMfGx8TCkodXxVKT98KHV8VSkobGx8TEx8bHxMKT98ZnxGfGJ8QikifSx7YmVnaW46IigtPykoXFxiMFt4WF1bYS1mQS1GMC05J10rfChcXGJbXFxkJ10rKFxcLltcXGQnXSopP3xcXC5bXFxkJ10rKShbZUVdWy0rXT9bXFxkJ10rKT8pIn1dLHJlbGV2YW5jZTowfSxTPXtjbGFzc05hbWU6Im1ldGEiLGJlZ2luOi8jXHMqW2Etel0rXGIvLGVuZDovJC8sa2V5d29yZHM6eyJtZXRhLWtleXdvcmQiOiJpZiBlbHNlIGVsaWYgZW5kaWYgZGVmaW5lIHVuZGVmIHdhcm5pbmcgZXJyb3IgbGluZSBwcmFnbWEgX1ByYWdtYSBpZmRlZiBpZm5kZWYgaW5jbHVkZSJ9LGNvbnRhaW5zOlt7YmVnaW46L1xcXG4vLHJlbGV2YW5jZTowfSxpLmluaGVyaXQodSx7Y2xhc3NOYW1lOiJtZXRhLXN0cmluZyJ9KSx7Y2xhc3NOYW1lOiJtZXRhLXN0cmluZyIsYmVnaW46LzwuKj8+L30sbyxpLkNfQkxPQ0tfQ09NTUVOVF9NT0RFXX0sVD17Y2xhc3NOYW1lOiJ0aXRsZSIsYmVnaW46dChjKStpLklERU5UX1JFLHJlbGV2YW5jZTowfSxiPXQoYykraS5JREVOVF9SRSsiXFxzKlxcKCIsQz17a2V5d29yZDoiaW50IGZsb2F0IHdoaWxlIHByaXZhdGUgY2hhciBjaGFyOF90IGNoYXIxNl90IGNoYXIzMl90IGNhdGNoIGltcG9ydCBtb2R1bGUgZXhwb3J0IHZpcnR1YWwgb3BlcmF0b3Igc2l6ZW9mIGR5bmFtaWNfY2FzdHwxMCB0eXBlZGVmIGNvbnN0X2Nhc3R8MTAgY29uc3QgZm9yIHN0YXRpY19jYXN0fDEwIHVuaW9uIG5hbWVzcGFjZSB1bnNpZ25lZCBsb25nIHZvbGF0aWxlIHN0YXRpYyBwcm90ZWN0ZWQgYm9vbCB0ZW1wbGF0ZSBtdXRhYmxlIGlmIHB1YmxpYyBmcmllbmQgZG8gZ290byBhdXRvIHZvaWQgZW51bSBlbHNlIGJyZWFrIGV4dGVybiB1c2luZyBhc20gY2FzZSB0eXBlaWQgd2NoYXJfdCBzaG9ydCByZWludGVycHJldF9jYXN0fDEwIGRlZmF1bHQgZG91YmxlIHJlZ2lzdGVyIGV4cGxpY2l0IHNpZ25lZCB0eXBlbmFtZSB0cnkgdGhpcyBzd2l0Y2ggY29udGludWUgaW5saW5lIGRlbGV0ZSBhbGlnbmFzIGFsaWdub2YgY29uc3RleHByIGNvbnN0ZXZhbCBjb25zdGluaXQgZGVjbHR5cGUgY29uY2VwdCBjb19hd2FpdCBjb19yZXR1cm4gY29feWllbGQgcmVxdWlyZXMgbm9leGNlcHQgc3RhdGljX2Fzc2VydCB0aHJlYWRfbG9jYWwgcmVzdHJpY3QgZmluYWwgb3ZlcnJpZGUgYXRvbWljX2Jvb2wgYXRvbWljX2NoYXIgYXRvbWljX3NjaGFyIGF0b21pY191Y2hhciBhdG9taWNfc2hvcnQgYXRvbWljX3VzaG9ydCBhdG9taWNfaW50IGF0b21pY191aW50IGF0b21pY19sb25nIGF0b21pY191bG9uZyBhdG9taWNfbGxvbmcgYXRvbWljX3VsbG9uZyBuZXcgdGhyb3cgcmV0dXJuIGFuZCBhbmRfZXEgYml0YW5kIGJpdG9yIGNvbXBsIG5vdCBub3RfZXEgb3Igb3JfZXEgeG9yIHhvcl9lcSIsYnVpbHRfaW46Il9Cb29sIF9Db21wbGV4IF9JbWFnaW5hcnkiLF9yZWxldmFuY2VfaGludHM6WyJhc2luIiwiYXRhbjIiLCJhdGFuIiwiY2FsbG9jIiwiY2VpbCIsImNvc2giLCJjb3MiLCJleGl0IiwiZXhwIiwiZmFicyIsImZsb29yIiwiZm1vZCIsImZwcmludGYiLCJmcHV0cyIsImZyZWUiLCJmcmV4cCIsImF1dG9fcHRyIiwiZGVxdWUiLCJsaXN0IiwicXVldWUiLCJzdGFjayIsInZlY3RvciIsIm1hcCIsInNldCIsInBhaXIiLCJiaXRzZXQiLCJtdWx0aXNldCIsIm11bHRpbWFwIiwidW5vcmRlcmVkX3NldCIsImZzY2FuZiIsImZ1dHVyZSIsImlzYWxudW0iLCJpc2FscGhhIiwiaXNjbnRybCIsImlzZGlnaXQiLCJpc2dyYXBoIiwiaXNsb3dlciIsImlzcHJpbnQiLCJpc3B1bmN0IiwiaXNzcGFjZSIsImlzdXBwZXIiLCJpc3hkaWdpdCIsInRvbG93ZXIiLCJ0b3VwcGVyIiwibGFicyIsImxkZXhwIiwibG9nMTAiLCJsb2ciLCJtYWxsb2MiLCJyZWFsbG9jIiwibWVtY2hyIiwibWVtY21wIiwibWVtY3B5IiwibWVtc2V0IiwibW9kZiIsInBvdyIsInByaW50ZiIsInB1dGNoYXIiLCJwdXRzIiwic2NhbmYiLCJzaW5oIiwic2luIiwic25wcmludGYiLCJzcHJpbnRmIiwic3FydCIsInNzY2FuZiIsInN0cmNhdCIsInN0cmNociIsInN0cmNtcCIsInN0cmNweSIsInN0cmNzcG4iLCJzdHJsZW4iLCJzdHJuY2F0Iiwic3RybmNtcCIsInN0cm5jcHkiLCJzdHJwYnJrIiwic3RycmNociIsInN0cnNwbiIsInN0cnN0ciIsInRhbmgiLCJ0YW4iLCJ1bm9yZGVyZWRfbWFwIiwidW5vcmRlcmVkX211bHRpc2V0IiwidW5vcmRlcmVkX211bHRpbWFwIiwicHJpb3JpdHlfcXVldWUiLCJtYWtlX3BhaXIiLCJhcnJheSIsInNoYXJlZF9wdHIiLCJhYm9ydCIsInRlcm1pbmF0ZSIsImFicyIsImFjb3MiLCJ2ZnByaW50ZiIsInZwcmludGYiLCJ2c3ByaW50ZiIsImVuZGwiLCJpbml0aWFsaXplcl9saXN0IiwidW5pcXVlX3B0ciIsImNvbXBsZXgiLCJpbWFnaW5hcnkiLCJzdGQiLCJzdHJpbmciLCJ3c3RyaW5nIiwiY2luIiwiY291dCIsImNlcnIiLCJjbG9nIiwic3RkaW4iLCJzdGRvdXQiLCJzdGRlcnIiLCJzdHJpbmdzdHJlYW0iLCJpc3RyaW5nc3RyZWFtIiwib3N0cmluZ3N0cmVhbSJdLGxpdGVyYWw6InRydWUgZmFsc2UgbnVsbHB0ciBOVUxMIn0sTz17Y2xhc3NOYW1lOiJmdW5jdGlvbi5kaXNwYXRjaCIscmVsZXZhbmNlOjAsa2V5d29yZHM6QyxiZWdpbjpuKC9cYi8sLyg/IWRlY2x0eXBlKS8sLyg/IWlmKS8sLyg/IWZvcikvLC8oPyF3aGlsZSkvLGkuSURFTlRfUkUsZSgvXHMqXCgvKSl9LEQ9W08sUyxnLG8saS5DX0JMT0NLX0NPTU1FTlRfTU9ERSxtLHVdLHk9e3ZhcmlhbnRzOlt7YmVnaW46Lz0vLGVuZDovOy99LHtiZWdpbjovXCgvLGVuZDovXCkvfSx7YmVnaW5LZXl3b3JkczoibmV3IHRocm93IHJldHVybiBlbHNlIixlbmQ6LzsvfV0sa2V5d29yZHM6Qyxjb250YWluczpELmNvbmNhdChbe2JlZ2luOi9cKC8sZW5kOi9cKS8sa2V5d29yZHM6Qyxjb250YWluczpELmNvbmNhdChbInNlbGYiXSkscmVsZXZhbmNlOjB9XSkscmVsZXZhbmNlOjB9LEE9e2NsYXNzTmFtZToiZnVuY3Rpb24iLGJlZ2luOiIoIitkKyJbXFwqJlxcc10rKSsiK2IscmV0dXJuQmVnaW46ITAsZW5kOi9bezs9XS8sZXhjbHVkZUVuZDohMCxrZXl3b3JkczpDLGlsbGVnYWw6L1teXHdcc1wqJjo8Pi5dLyxjb250YWluczpbe2JlZ2luOmwsa2V5d29yZHM6QyxyZWxldmFuY2U6MH0se2JlZ2luOmIscmV0dXJuQmVnaW46ITAsY29udGFpbnM6W1RdLHJlbGV2YW5jZTowfSx7YmVnaW46Lzo6LyxyZWxldmFuY2U6MH0se2JlZ2luOi86LyxlbmRzV2l0aFBhcmVudDohMCxjb250YWluczpbdSxtXX0se2NsYXNzTmFtZToicGFyYW1zIixiZWdpbjovXCgvLGVuZDovXCkvLGtleXdvcmRzOkMscmVsZXZhbmNlOjAsY29udGFpbnM6W28saS5DX0JMT0NLX0NPTU1FTlRfTU9ERSx1LG0sZyx7YmVnaW46L1woLyxlbmQ6L1wpLyxrZXl3b3JkczpDLHJlbGV2YW5jZTowLGNvbnRhaW5zOlsic2VsZiIsbyxpLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLHUsbSxnXX1dfSxnLG8saS5DX0JMT0NLX0NPTU1FTlRfTU9ERSxTXX07cmV0dXJue25hbWU6IkMrKyIsYWxpYXNlczpbImNjIiwiYysrIiwiaCsrIiwiaHBwIiwiaGgiLCJoeHgiLCJjeHgiXSxrZXl3b3JkczpDLGlsbGVnYWw6IjwvIixjbGFzc05hbWVBbGlhc2VzOnsiZnVuY3Rpb24uZGlzcGF0Y2giOiJidWlsdF9pbiJ9LGNvbnRhaW5zOltdLmNvbmNhdCh5LEEsTyxELFtTLHtiZWdpbjoiXFxiKGRlcXVlfGxpc3R8cXVldWV8cHJpb3JpdHlfcXVldWV8cGFpcnxzdGFja3x2ZWN0b3J8bWFwfHNldHxiaXRzZXR8bXVsdGlzZXR8bXVsdGltYXB8dW5vcmRlcmVkX21hcHx1bm9yZGVyZWRfc2V0fHVub3JkZXJlZF9tdWx0aXNldHx1bm9yZGVyZWRfbXVsdGltYXB8YXJyYXkpXFxzKjwiLGVuZDoiPiIsa2V5d29yZHM6Qyxjb250YWluczpbInNlbGYiLGddfSx7YmVnaW46aS5JREVOVF9SRSsiOjoiLGtleXdvcmRzOkN9LHtjbGFzc05hbWU6ImNsYXNzIixiZWdpbktleXdvcmRzOiJlbnVtIGNsYXNzIHN0cnVjdCB1bmlvbiIsZW5kOi9bezs6PD49XS8sY29udGFpbnM6W3tiZWdpbktleXdvcmRzOiJmaW5hbCBjbGFzcyBzdHJ1Y3QifSxpLlRJVExFX01PREVdfV0pLGV4cG9ydHM6e3ByZXByb2Nlc3NvcjpTLHN0cmluZ3M6dSxrZXl3b3JkczpDfX19cy5leHBvcnRzPWF9LDgzODUyOmZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHIoZSl7Y29uc3QgdD0icHJpbWl0aXZlIHJzY190ZW1wbGF0ZSIsbj0iZ3JvdXAgY2xvbmUgbXMgbWFzdGVyIGxvY2F0aW9uIGNvbG9jYXRpb24gb3JkZXIgZmVuY2luZ190b3BvbG9neSByc2NfdGlja2V0IGFjbF90YXJnZXQgYWNsX2dyb3VwIHVzZXIgcm9sZSB0YWcgeG1sIjtyZXR1cm57bmFtZToiY3Jtc2giLGFsaWFzZXM6WyJjcm0iLCJwY21rIl0sY2FzZV9pbnNlbnNpdGl2ZTohMCxrZXl3b3Jkczp7a2V5d29yZDoicGFyYW1zIG1ldGEgb3BlcmF0aW9ucyBvcCBydWxlIGF0dHJpYnV0ZXMgdXRpbGl6YXRpb24iKyIgIisicmVhZCB3cml0ZSBkZW55IGRlZmluZWQgbm90X2RlZmluZWQgaW5fcmFuZ2UgZGF0ZSBzcGVjIGluIHJlZiByZWZlcmVuY2UgYXR0cmlidXRlIHR5cGUgeHBhdGggdmVyc2lvbiBhbmQgb3IgbHQgZ3QgdGFnIGx0ZSBndGUgZXEgbmUgXFwiKyIgIisibnVtYmVyIHN0cmluZyIsbGl0ZXJhbDoiTWFzdGVyIFN0YXJ0ZWQgU2xhdmUgU3RvcHBlZCBzdGFydCBwcm9tb3RlIGRlbW90ZSBzdG9wIG1vbml0b3IgdHJ1ZSBmYWxzZSJ9LGNvbnRhaW5zOltlLkhBU0hfQ09NTUVOVF9NT0RFLHtiZWdpbktleXdvcmRzOiJub2RlIixzdGFydHM6e2VuZDoiXFxzKihbXFx3Xy1dKzopPyIsc3RhcnRzOntjbGFzc05hbWU6InRpdGxlIixlbmQ6IlxccypbXFwkXFx3X11bXFx3Xy1dKiJ9fX0se2JlZ2luS2V5d29yZHM6dCxzdGFydHM6e2NsYXNzTmFtZToidGl0bGUiLGVuZDoiXFxzKltcXCRcXHdfXVtcXHdfLV0qIixzdGFydHM6e2VuZDoiXFxzKkA/W1xcd19dW1xcd19cXC46LV0qIn19fSx7YmVnaW46IlxcYigiK24uc3BsaXQoIiAiKS5qb2luKCJ8IikrIilcXHMrIixrZXl3b3JkczpuLHN0YXJ0czp7Y2xhc3NOYW1lOiJ0aXRsZSIsZW5kOiJbXFwkXFx3X11bXFx3Xy1dKiJ9fSx7YmVnaW5LZXl3b3JkczoicHJvcGVydHkgcnNjX2RlZmF1bHRzIG9wX2RlZmF1bHRzIixzdGFydHM6e2NsYXNzTmFtZToidGl0bGUiLGVuZDoiXFxzKihbXFx3Xy1dKzopPyJ9fSxlLlFVT1RFX1NUUklOR19NT0RFLHtjbGFzc05hbWU6Im1ldGEiLGJlZ2luOiIob2NmfHN5c3RlbWR8c2VydmljZXxsc2IpOltcXHdfOi1dKyIscmVsZXZhbmNlOjB9LHtjbGFzc05hbWU6Im51bWJlciIsYmVnaW46IlxcYlxcZCsoXFwuXFxkKyk/KG1zfHN8aHxtKT8iLHJlbGV2YW5jZTowfSx7Y2xhc3NOYW1lOiJsaXRlcmFsIixiZWdpbjoiWy1dPyhpbmZpbml0eXxpbmYpIixyZWxldmFuY2U6MH0se2NsYXNzTmFtZToiYXR0ciIsYmVnaW46LyhbQS1aYS16JF8jXVtcd18tXSspPS8scmVsZXZhbmNlOjB9LHtjbGFzc05hbWU6InRhZyIsYmVnaW46IjwvPyIsZW5kOiIvPz4iLHJlbGV2YW5jZTowfV19fXMuZXhwb3J0cz1yfSw5NTI0OmZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHIoZSl7Y29uc3QgdD0iKF8/W3VpXSg4fDE2fDMyfDY0fDEyOCkpPyIsbj0iKF8/ZigzMnw2NCkpPyIsYT0iW2EtekEtWl9dXFx3KlshPz1dPyIsaT0iW2EtekEtWl9dXFx3KlshPz1dP3xbLSt+XUB8PDx8Pj58Wz0hXX58PT09P3w8PT58Wzw+XT0/fFxcKlxcKnxbLS8rJV4mKn58XXwvL3wvLz18JlstKypdPT98JlxcKlxcKnxcXFtcXF1bPT9dPyIsbz0iW0EtWmEtel9dXFx3Kig6OlxcdyspKihcXD98ISk/IixsPXskcGF0dGVybjphLGtleXdvcmQ6ImFic3RyYWN0IGFsaWFzIGFubm90YXRpb24gYXMgYXM/IGFzbSBiZWdpbiBicmVhayBjYXNlIGNsYXNzIGRlZiBkbyBlbHNlIGVsc2lmIGVuZCBlbnN1cmUgZW51bSBleHRlbmQgZm9yIGZ1biBpZiBpbmNsdWRlIGluc3RhbmNlX3NpemVvZiBpc19hPyBsaWIgbWFjcm8gbW9kdWxlIG5leHQgbmlsPyBvZiBvdXQgcG9pbnRlcm9mIHByaXZhdGUgcHJvdGVjdGVkIHJlc2N1ZSByZXNwb25kc190bz8gcmV0dXJuIHJlcXVpcmUgc2VsZWN0IHNlbGYgc2l6ZW9mIHN0cnVjdCBzdXBlciB0aGVuIHR5cGUgdHlwZW9mIHVuaW9uIHVuaW5pdGlhbGl6ZWQgdW5sZXNzIHVudGlsIHZlcmJhdGltIHdoZW4gd2hpbGUgd2l0aCB5aWVsZCBfX0RJUl9fIF9fRU5EX0xJTkVfXyBfX0ZJTEVfXyBfX0xJTkVfXyIsbGl0ZXJhbDoiZmFsc2UgbmlsIHRydWUifSxjPXtjbGFzc05hbWU6InN1YnN0IixiZWdpbjovI1x7LyxlbmQ6L1x9LyxrZXl3b3JkczpsfSxfPXtjbGFzc05hbWU6InRlbXBsYXRlLXZhcmlhYmxlIix2YXJpYW50czpbe2JlZ2luOiJcXHtcXHsiLGVuZDoiXFx9XFx9In0se2JlZ2luOiJcXHslIixlbmQ6IiVcXH0ifV0sa2V5d29yZHM6bH07ZnVuY3Rpb24gZChiLGYpe2NvbnN0IEM9W3tiZWdpbjpiLGVuZDpmfV07cmV0dXJuIENbMF0uY29udGFpbnM9QyxDfWNvbnN0IGc9e2NsYXNzTmFtZToic3RyaW5nIixjb250YWluczpbZS5CQUNLU0xBU0hfRVNDQVBFLGNdLHZhcmlhbnRzOlt7YmVnaW46LycvLGVuZDovJy99LHtiZWdpbjovIi8sZW5kOi8iL30se2JlZ2luOi9gLyxlbmQ6L2AvfSx7YmVnaW46IiVbUXdpXT9cXCgiLGVuZDoiXFwpIixjb250YWluczpkKCJcXCgiLCJcXCkiKX0se2JlZ2luOiIlW1F3aV0/XFxbIixlbmQ6IlxcXSIsY29udGFpbnM6ZCgiXFxbIiwiXFxdIil9LHtiZWdpbjoiJVtRd2ldP1xceyIsZW5kOi9cfS8sY29udGFpbnM6ZCgvXHsvLC9cfS8pfSx7YmVnaW46IiVbUXdpXT88IixlbmQ6Ij4iLGNvbnRhaW5zOmQoIjwiLCI+Iil9LHtiZWdpbjoiJVtRd2ldP1xcfCIsZW5kOiJcXHwifSx7YmVnaW46Lzw8LVx3KyQvLGVuZDovXlxzKlx3KyQvfV0scmVsZXZhbmNlOjB9LEU9e2NsYXNzTmFtZToic3RyaW5nIix2YXJpYW50czpbe2JlZ2luOiIlcVxcKCIsZW5kOiJcXCkiLGNvbnRhaW5zOmQoIlxcKCIsIlxcKSIpfSx7YmVnaW46IiVxXFxbIixlbmQ6IlxcXSIsY29udGFpbnM6ZCgiXFxbIiwiXFxdIil9LHtiZWdpbjoiJXFcXHsiLGVuZDovXH0vLGNvbnRhaW5zOmQoL1x7LywvXH0vKX0se2JlZ2luOiIlcTwiLGVuZDoiPiIsY29udGFpbnM6ZCgiPCIsIj4iKX0se2JlZ2luOiIlcVxcfCIsZW5kOiJcXHwifSx7YmVnaW46Lzw8LSdcdysnJC8sZW5kOi9eXHMqXHcrJC99XSxyZWxldmFuY2U6MH0sdT17YmVnaW46Iig/ISVcXH0pKCIrZS5SRV9TVEFSVEVSU19SRSsifFxcbnxcXGIoY2FzZXxpZnxzZWxlY3R8dW5sZXNzfHVudGlsfHdoZW58d2hpbGUpXFxiKVxccyoiLGtleXdvcmRzOiJjYXNlIGlmIHNlbGVjdCB1bmxlc3MgdW50aWwgd2hlbiB3aGlsZSIsY29udGFpbnM6W3tjbGFzc05hbWU6InJlZ2V4cCIsY29udGFpbnM6W2UuQkFDS1NMQVNIX0VTQ0FQRSxjXSx2YXJpYW50czpbe2JlZ2luOiIvL1thLXpdKiIscmVsZXZhbmNlOjB9LHtiZWdpbjoiLyg/IVxcLykiLGVuZDoiL1thLXpdKiJ9XX1dLHJlbGV2YW5jZTowfSxtPXtjbGFzc05hbWU6InJlZ2V4cCIsY29udGFpbnM6W2UuQkFDS1NMQVNIX0VTQ0FQRSxjXSx2YXJpYW50czpbe2JlZ2luOiIlclxcKCIsZW5kOiJcXCkiLGNvbnRhaW5zOmQoIlxcKCIsIlxcKSIpfSx7YmVnaW46IiVyXFxbIixlbmQ6IlxcXSIsY29udGFpbnM6ZCgiXFxbIiwiXFxdIil9LHtiZWdpbjoiJXJcXHsiLGVuZDovXH0vLGNvbnRhaW5zOmQoL1x7LywvXH0vKX0se2JlZ2luOiIlcjwiLGVuZDoiPiIsY29udGFpbnM6ZCgiPCIsIj4iKX0se2JlZ2luOiIlclxcfCIsZW5kOiJcXHwifV0scmVsZXZhbmNlOjB9LFM9e2NsYXNzTmFtZToibWV0YSIsYmVnaW46IkBcXFsiLGVuZDoiXFxdIixjb250YWluczpbZS5pbmhlcml0KGUuUVVPVEVfU1RSSU5HX01PREUse2NsYXNzTmFtZToibWV0YS1zdHJpbmcifSldfSxUPVtfLGcsRSxtLHUsUyxlLkhBU0hfQ09NTUVOVF9NT0RFLHtjbGFzc05hbWU6ImNsYXNzIixiZWdpbktleXdvcmRzOiJjbGFzcyBtb2R1bGUgc3RydWN0IixlbmQ6IiR8OyIsaWxsZWdhbDovPS8sY29udGFpbnM6W2UuSEFTSF9DT01NRU5UX01PREUsZS5pbmhlcml0KGUuVElUTEVfTU9ERSx7YmVnaW46b30pLHtiZWdpbjoiPCJ9XX0se2NsYXNzTmFtZToiY2xhc3MiLGJlZ2luS2V5d29yZHM6ImxpYiBlbnVtIHVuaW9uIixlbmQ6IiR8OyIsaWxsZWdhbDovPS8sY29udGFpbnM6W2UuSEFTSF9DT01NRU5UX01PREUsZS5pbmhlcml0KGUuVElUTEVfTU9ERSx7YmVnaW46b30pXX0se2JlZ2luS2V5d29yZHM6ImFubm90YXRpb24iLGVuZDoiJHw7IixpbGxlZ2FsOi89Lyxjb250YWluczpbZS5IQVNIX0NPTU1FTlRfTU9ERSxlLmluaGVyaXQoZS5USVRMRV9NT0RFLHtiZWdpbjpvfSldLHJlbGV2YW5jZToyfSx7Y2xhc3NOYW1lOiJmdW5jdGlvbiIsYmVnaW5LZXl3b3JkczoiZGVmIixlbmQ6L1xCXGIvLGNvbnRhaW5zOltlLmluaGVyaXQoZS5USVRMRV9NT0RFLHtiZWdpbjppLGVuZHNQYXJlbnQ6ITB9KV19LHtjbGFzc05hbWU6ImZ1bmN0aW9uIixiZWdpbktleXdvcmRzOiJmdW4gbWFjcm8iLGVuZDovXEJcYi8sY29udGFpbnM6W2UuaW5oZXJpdChlLlRJVExFX01PREUse2JlZ2luOmksZW5kc1BhcmVudDohMH0pXSxyZWxldmFuY2U6Mn0se2NsYXNzTmFtZToic3ltYm9sIixiZWdpbjplLlVOREVSU0NPUkVfSURFTlRfUkUrIighfFxcPyk/OiIscmVsZXZhbmNlOjB9LHtjbGFzc05hbWU6InN5bWJvbCIsYmVnaW46IjoiLGNvbnRhaW5zOltnLHtiZWdpbjppfV0scmVsZXZhbmNlOjB9LHtjbGFzc05hbWU6Im51bWJlciIsdmFyaWFudHM6W3tiZWdpbjoiXFxiMGIoWzAxX10rKSIrdH0se2JlZ2luOiJcXGIwbyhbMC03X10rKSIrdH0se2JlZ2luOiJcXGIweChbQS1GYS1mMC05X10rKSIrdH0se2JlZ2luOiJcXGIoWzEtOV1bMC05X10qWzAtOV18WzAtOV0pKFxcLlswLTldWzAtOV9dKik/KFtlRV1fP1stK10/WzAtOV9dKik/IituKyIoPyFfKSJ9LHtiZWdpbjoiXFxiKFsxLTldWzAtOV9dKnwwKSIrdH1dLHJlbGV2YW5jZTowfV07cmV0dXJuIGMuY29udGFpbnM9VCxfLmNvbnRhaW5zPVQuc2xpY2UoMSkse25hbWU6IkNyeXN0YWwiLGFsaWFzZXM6WyJjciJdLGtleXdvcmRzOmwsY29udGFpbnM6VH19cy5leHBvcnRzPXJ9LDI2MDA1OmZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHIoZSl7Y29uc3QgdD1bImJvb2wiLCJieXRlIiwiY2hhciIsImRlY2ltYWwiLCJkZWxlZ2F0ZSIsImRvdWJsZSIsImR5bmFtaWMiLCJlbnVtIiwiZmxvYXQiLCJpbnQiLCJsb25nIiwibmludCIsIm51aW50Iiwib2JqZWN0Iiwic2J5dGUiLCJzaG9ydCIsInN0cmluZyIsInVsb25nIiwidWludCIsInVzaG9ydCJdLG49WyJwdWJsaWMiLCJwcml2YXRlIiwicHJvdGVjdGVkIiwic3RhdGljIiwiaW50ZXJuYWwiLCJwcm90ZWN0ZWQiLCJhYnN0cmFjdCIsImFzeW5jIiwiZXh0ZXJuIiwib3ZlcnJpZGUiLCJ1bnNhZmUiLCJ2aXJ0dWFsIiwibmV3Iiwic2VhbGVkIiwicGFydGlhbCJdLGE9WyJkZWZhdWx0IiwiZmFsc2UiLCJudWxsIiwidHJ1ZSJdLGk9WyJhYnN0cmFjdCIsImFzIiwiYmFzZSIsImJyZWFrIiwiY2FzZSIsImNsYXNzIiwiY29uc3QiLCJjb250aW51ZSIsImRvIiwiZWxzZSIsImV2ZW50IiwiZXhwbGljaXQiLCJleHRlcm4iLCJmaW5hbGx5IiwiZml4ZWQiLCJmb3IiLCJmb3JlYWNoIiwiZ290byIsImlmIiwiaW1wbGljaXQiLCJpbiIsImludGVyZmFjZSIsImludGVybmFsIiwiaXMiLCJsb2NrIiwibmFtZXNwYWNlIiwibmV3Iiwib3BlcmF0b3IiLCJvdXQiLCJvdmVycmlkZSIsInBhcmFtcyIsInByaXZhdGUiLCJwcm90ZWN0ZWQiLCJwdWJsaWMiLCJyZWFkb25seSIsInJlY29yZCIsInJlZiIsInJldHVybiIsInNlYWxlZCIsInNpemVvZiIsInN0YWNrYWxsb2MiLCJzdGF0aWMiLCJzdHJ1Y3QiLCJzd2l0Y2giLCJ0aGlzIiwidGhyb3ciLCJ0cnkiLCJ0eXBlb2YiLCJ1bmNoZWNrZWQiLCJ1bnNhZmUiLCJ1c2luZyIsInZpcnR1YWwiLCJ2b2lkIiwidm9sYXRpbGUiLCJ3aGlsZSJdLG89WyJhZGQiLCJhbGlhcyIsImFuZCIsImFzY2VuZGluZyIsImFzeW5jIiwiYXdhaXQiLCJieSIsImRlc2NlbmRpbmciLCJlcXVhbHMiLCJmcm9tIiwiZ2V0IiwiZ2xvYmFsIiwiZ3JvdXAiLCJpbml0IiwiaW50byIsImpvaW4iLCJsZXQiLCJuYW1lb2YiLCJub3QiLCJub3RudWxsIiwib24iLCJvciIsIm9yZGVyYnkiLCJwYXJ0aWFsIiwicmVtb3ZlIiwic2VsZWN0Iiwic2V0IiwidW5tYW5hZ2VkIiwidmFsdWV8MCIsInZhciIsIndoZW4iLCJ3aGVyZSIsIndpdGgiLCJ5aWVsZCJdLGw9e2tleXdvcmQ6aS5jb25jYXQobyksYnVpbHRfaW46dCxsaXRlcmFsOmF9LGM9ZS5pbmhlcml0KGUuVElUTEVfTU9ERSx7YmVnaW46IlthLXpBLVpdKFxcLj9cXHcpKiJ9KSxfPXtjbGFzc05hbWU6Im51bWJlciIsdmFyaWFudHM6W3tiZWdpbjoiXFxiKDBiWzAxJ10rKSJ9LHtiZWdpbjoiKC0/KVxcYihbXFxkJ10rKFxcLltcXGQnXSopP3xcXC5bXFxkJ10rKSh1fFV8bHxMfHVsfFVMfGZ8RnxifEIpIn0se2JlZ2luOiIoLT8pKFxcYjBbeFhdW2EtZkEtRjAtOSddK3woXFxiW1xcZCddKyhcXC5bXFxkJ10qKT98XFwuW1xcZCddKykoW2VFXVstK10/W1xcZCddKyk/KSJ9XSxyZWxldmFuY2U6MH0sZD17Y2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOidAIicsZW5kOiciJyxjb250YWluczpbe2JlZ2luOiciIid9XX0sZz1lLmluaGVyaXQoZCx7aWxsZWdhbDovXG4vfSksRT17Y2xhc3NOYW1lOiJzdWJzdCIsYmVnaW46L1x7LyxlbmQ6L1x9LyxrZXl3b3JkczpsfSx1PWUuaW5oZXJpdChFLHtpbGxlZ2FsOi9cbi99KSxtPXtjbGFzc05hbWU6InN0cmluZyIsYmVnaW46L1wkIi8sZW5kOiciJyxpbGxlZ2FsOi9cbi8sY29udGFpbnM6W3tiZWdpbjovXHtcey99LHtiZWdpbjovXH1cfS99LGUuQkFDS1NMQVNIX0VTQ0FQRSx1XX0sUz17Y2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOi9cJEAiLyxlbmQ6JyInLGNvbnRhaW5zOlt7YmVnaW46L1x7XHsvfSx7YmVnaW46L1x9XH0vfSx7YmVnaW46JyIiJ30sRV19LFQ9ZS5pbmhlcml0KFMse2lsbGVnYWw6L1xuLyxjb250YWluczpbe2JlZ2luOi9ce1x7L30se2JlZ2luOi9cfVx9L30se2JlZ2luOiciIid9LHVdfSk7RS5jb250YWlucz1bUyxtLGQsZS5BUE9TX1NUUklOR19NT0RFLGUuUVVPVEVfU1RSSU5HX01PREUsXyxlLkNfQkxPQ0tfQ09NTUVOVF9NT0RFXSx1LmNvbnRhaW5zPVtULG0sZyxlLkFQT1NfU1RSSU5HX01PREUsZS5RVU9URV9TVFJJTkdfTU9ERSxfLGUuaW5oZXJpdChlLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLHtpbGxlZ2FsOi9cbi99KV07Y29uc3QgYj17dmFyaWFudHM6W1MsbSxkLGUuQVBPU19TVFJJTkdfTU9ERSxlLlFVT1RFX1NUUklOR19NT0RFXX0sZj17YmVnaW46IjwiLGVuZDoiPiIsY29udGFpbnM6W3tiZWdpbktleXdvcmRzOiJpbiBvdXQifSxjXX0sQz1lLklERU5UX1JFKyIoPCIrZS5JREVOVF9SRSsiKFxccyosXFxzKiIrZS5JREVOVF9SRSsiKSo+KT8oXFxbXFxdKT8iLE89e2JlZ2luOiJAIitlLklERU5UX1JFLHJlbGV2YW5jZTowfTtyZXR1cm57bmFtZToiQyMiLGFsaWFzZXM6WyJjcyIsImMjIl0sa2V5d29yZHM6bCxpbGxlZ2FsOi86Oi8sY29udGFpbnM6W2UuQ09NTUVOVCgiLy8vIiwiJCIse3JldHVybkJlZ2luOiEwLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJkb2N0YWciLHZhcmlhbnRzOlt7YmVnaW46Ii8vLyIscmVsZXZhbmNlOjB9LHtiZWdpbjoiPCEtLXwtLT4ifSx7YmVnaW46IjwvPyIsZW5kOiI+In1dfV19KSxlLkNfTElORV9DT01NRU5UX01PREUsZS5DX0JMT0NLX0NPTU1FTlRfTU9ERSx7Y2xhc3NOYW1lOiJtZXRhIixiZWdpbjoiIyIsZW5kOiIkIixrZXl3b3Jkczp7Im1ldGEta2V5d29yZCI6ImlmIGVsc2UgZWxpZiBlbmRpZiBkZWZpbmUgdW5kZWYgd2FybmluZyBlcnJvciBsaW5lIHJlZ2lvbiBlbmRyZWdpb24gcHJhZ21hIGNoZWNrc3VtIn19LGIsXyx7YmVnaW5LZXl3b3JkczoiY2xhc3MgaW50ZXJmYWNlIixyZWxldmFuY2U6MCxlbmQ6L1t7Oz1dLyxpbGxlZ2FsOi9bXlxzOixdLyxjb250YWluczpbe2JlZ2luS2V5d29yZHM6IndoZXJlIGNsYXNzIn0sYyxmLGUuQ19MSU5FX0NPTU1FTlRfTU9ERSxlLkNfQkxPQ0tfQ09NTUVOVF9NT0RFXX0se2JlZ2luS2V5d29yZHM6Im5hbWVzcGFjZSIscmVsZXZhbmNlOjAsZW5kOi9bezs9XS8saWxsZWdhbDovW15cczpdLyxjb250YWluczpbYyxlLkNfTElORV9DT01NRU5UX01PREUsZS5DX0JMT0NLX0NPTU1FTlRfTU9ERV19LHtiZWdpbktleXdvcmRzOiJyZWNvcmQiLHJlbGV2YW5jZTowLGVuZDovW3s7PV0vLGlsbGVnYWw6L1teXHM6XS8sY29udGFpbnM6W2MsZixlLkNfTElORV9DT01NRU5UX01PREUsZS5DX0JMT0NLX0NPTU1FTlRfTU9ERV19LHtjbGFzc05hbWU6Im1ldGEiLGJlZ2luOiJeXFxzKlxcWyIsZXhjbHVkZUJlZ2luOiEwLGVuZDoiXFxdIixleGNsdWRlRW5kOiEwLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJtZXRhLXN0cmluZyIsYmVnaW46LyIvLGVuZDovIi99XX0se2JlZ2luS2V5d29yZHM6Im5ldyByZXR1cm4gdGhyb3cgYXdhaXQgZWxzZSIscmVsZXZhbmNlOjB9LHtjbGFzc05hbWU6ImZ1bmN0aW9uIixiZWdpbjoiKCIrQysiXFxzKykrIitlLklERU5UX1JFKyJcXHMqKDwuKz5cXHMqKT9cXCgiLHJldHVybkJlZ2luOiEwLGVuZDovXHMqW3s7PV0vLGV4Y2x1ZGVFbmQ6ITAsa2V5d29yZHM6bCxjb250YWluczpbe2JlZ2luS2V5d29yZHM6bi5qb2luKCIgIikscmVsZXZhbmNlOjB9LHtiZWdpbjplLklERU5UX1JFKyJcXHMqKDwuKz5cXHMqKT9cXCgiLHJldHVybkJlZ2luOiEwLGNvbnRhaW5zOltlLlRJVExFX01PREUsZl0scmVsZXZhbmNlOjB9LHtjbGFzc05hbWU6InBhcmFtcyIsYmVnaW46L1woLyxlbmQ6L1wpLyxleGNsdWRlQmVnaW46ITAsZXhjbHVkZUVuZDohMCxrZXl3b3JkczpsLHJlbGV2YW5jZTowLGNvbnRhaW5zOltiLF8sZS5DX0JMT0NLX0NPTU1FTlRfTU9ERV19LGUuQ19MSU5FX0NPTU1FTlRfTU9ERSxlLkNfQkxPQ0tfQ09NTUVOVF9NT0RFXX0sT119fXMuZXhwb3J0cz1yfSwxOTEzODpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGUpe3JldHVybntuYW1lOiJDU1AiLGNhc2VfaW5zZW5zaXRpdmU6ITEsa2V5d29yZHM6eyRwYXR0ZXJuOiJbYS16QS1aXVthLXpBLVowLTlfLV0qIixrZXl3b3JkOiJiYXNlLXVyaSBjaGlsZC1zcmMgY29ubmVjdC1zcmMgZGVmYXVsdC1zcmMgZm9udC1zcmMgZm9ybS1hY3Rpb24gZnJhbWUtYW5jZXN0b3JzIGZyYW1lLXNyYyBpbWctc3JjIG1lZGlhLXNyYyBvYmplY3Qtc3JjIHBsdWdpbi10eXBlcyByZXBvcnQtdXJpIHNhbmRib3ggc2NyaXB0LXNyYyBzdHlsZS1zcmMifSxjb250YWluczpbe2NsYXNzTmFtZToic3RyaW5nIixiZWdpbjoiJyIsZW5kOiInIn0se2NsYXNzTmFtZToiYXR0cmlidXRlIixiZWdpbjoiXkNvbnRlbnQiLGVuZDoiOiIsZXhjbHVkZUVuZDohMH1dfX1zLmV4cG9ydHM9cn0sNzc0MjA6ZnVuY3Rpb24ocyl7Y29uc3Qgcj1kPT4oe0lNUE9SVEFOVDp7Y2xhc3NOYW1lOiJtZXRhIixiZWdpbjoiIWltcG9ydGFudCJ9LEhFWENPTE9SOntjbGFzc05hbWU6Im51bWJlciIsYmVnaW46IiMoW2EtZkEtRjAtOV17Nn18W2EtZkEtRjAtOV17M30pIn0sQVRUUklCVVRFX1NFTEVDVE9SX01PREU6e2NsYXNzTmFtZToic2VsZWN0b3ItYXR0ciIsYmVnaW46L1xbLyxlbmQ6L1xdLyxpbGxlZ2FsOiIkIixjb250YWluczpbZC5BUE9TX1NUUklOR19NT0RFLGQuUVVPVEVfU1RSSU5HX01PREVdfX0pLGU9WyJhIiwiYWJiciIsImFkZHJlc3MiLCJhcnRpY2xlIiwiYXNpZGUiLCJhdWRpbyIsImIiLCJibG9ja3F1b3RlIiwiYm9keSIsImJ1dHRvbiIsImNhbnZhcyIsImNhcHRpb24iLCJjaXRlIiwiY29kZSIsImRkIiwiZGVsIiwiZGV0YWlscyIsImRmbiIsImRpdiIsImRsIiwiZHQiLCJlbSIsImZpZWxkc2V0IiwiZmlnY2FwdGlvbiIsImZpZ3VyZSIsImZvb3RlciIsImZvcm0iLCJoMSIsImgyIiwiaDMiLCJoNCIsImg1IiwiaDYiLCJoZWFkZXIiLCJoZ3JvdXAiLCJodG1sIiwiaSIsImlmcmFtZSIsImltZyIsImlucHV0IiwiaW5zIiwia2JkIiwibGFiZWwiLCJsZWdlbmQiLCJsaSIsIm1haW4iLCJtYXJrIiwibWVudSIsIm5hdiIsIm9iamVjdCIsIm9sIiwicCIsInEiLCJxdW90ZSIsInNhbXAiLCJzZWN0aW9uIiwic3BhbiIsInN0cm9uZyIsInN1bW1hcnkiLCJzdXAiLCJ0YWJsZSIsInRib2R5IiwidGQiLCJ0ZXh0YXJlYSIsInRmb290IiwidGgiLCJ0aGVhZCIsInRpbWUiLCJ0ciIsInVsIiwidmFyIiwidmlkZW8iXSx0PVsiYW55LWhvdmVyIiwiYW55LXBvaW50ZXIiLCJhc3BlY3QtcmF0aW8iLCJjb2xvciIsImNvbG9yLWdhbXV0IiwiY29sb3ItaW5kZXgiLCJkZXZpY2UtYXNwZWN0LXJhdGlvIiwiZGV2aWNlLWhlaWdodCIsImRldmljZS13aWR0aCIsImRpc3BsYXktbW9kZSIsImZvcmNlZC1jb2xvcnMiLCJncmlkIiwiaGVpZ2h0IiwiaG92ZXIiLCJpbnZlcnRlZC1jb2xvcnMiLCJtb25vY2hyb21lIiwib3JpZW50YXRpb24iLCJvdmVyZmxvdy1ibG9jayIsIm92ZXJmbG93LWlubGluZSIsInBvaW50ZXIiLCJwcmVmZXJzLWNvbG9yLXNjaGVtZSIsInByZWZlcnMtY29udHJhc3QiLCJwcmVmZXJzLXJlZHVjZWQtbW90aW9uIiwicHJlZmVycy1yZWR1Y2VkLXRyYW5zcGFyZW5jeSIsInJlc29sdXRpb24iLCJzY2FuIiwic2NyaXB0aW5nIiwidXBkYXRlIiwid2lkdGgiLCJtaW4td2lkdGgiLCJtYXgtd2lkdGgiLCJtaW4taGVpZ2h0IiwibWF4LWhlaWdodCJdLG49WyJhY3RpdmUiLCJhbnktbGluayIsImJsYW5rIiwiY2hlY2tlZCIsImN1cnJlbnQiLCJkZWZhdWx0IiwiZGVmaW5lZCIsImRpciIsImRpc2FibGVkIiwiZHJvcCIsImVtcHR5IiwiZW5hYmxlZCIsImZpcnN0IiwiZmlyc3QtY2hpbGQiLCJmaXJzdC1vZi10eXBlIiwiZnVsbHNjcmVlbiIsImZ1dHVyZSIsImZvY3VzIiwiZm9jdXMtdmlzaWJsZSIsImZvY3VzLXdpdGhpbiIsImhhcyIsImhvc3QiLCJob3N0LWNvbnRleHQiLCJob3ZlciIsImluZGV0ZXJtaW5hdGUiLCJpbi1yYW5nZSIsImludmFsaWQiLCJpcyIsImxhbmciLCJsYXN0LWNoaWxkIiwibGFzdC1vZi10eXBlIiwibGVmdCIsImxpbmsiLCJsb2NhbC1saW5rIiwibm90IiwibnRoLWNoaWxkIiwibnRoLWNvbCIsIm50aC1sYXN0LWNoaWxkIiwibnRoLWxhc3QtY29sIiwibnRoLWxhc3Qtb2YtdHlwZSIsIm50aC1vZi10eXBlIiwib25seS1jaGlsZCIsIm9ubHktb2YtdHlwZSIsIm9wdGlvbmFsIiwib3V0LW9mLXJhbmdlIiwicGFzdCIsInBsYWNlaG9sZGVyLXNob3duIiwicmVhZC1vbmx5IiwicmVhZC13cml0ZSIsInJlcXVpcmVkIiwicmlnaHQiLCJyb290Iiwic2NvcGUiLCJ0YXJnZXQiLCJ0YXJnZXQtd2l0aGluIiwidXNlci1pbnZhbGlkIiwidmFsaWQiLCJ2aXNpdGVkIiwid2hlcmUiXSxhPVsiYWZ0ZXIiLCJiYWNrZHJvcCIsImJlZm9yZSIsImN1ZSIsImN1ZS1yZWdpb24iLCJmaXJzdC1sZXR0ZXIiLCJmaXJzdC1saW5lIiwiZ3JhbW1hci1lcnJvciIsIm1hcmtlciIsInBhcnQiLCJwbGFjZWhvbGRlciIsInNlbGVjdGlvbiIsInNsb3R0ZWQiLCJzcGVsbGluZy1lcnJvciJdLGk9WyJhbGlnbi1jb250ZW50IiwiYWxpZ24taXRlbXMiLCJhbGlnbi1zZWxmIiwiYW5pbWF0aW9uIiwiYW5pbWF0aW9uLWRlbGF5IiwiYW5pbWF0aW9uLWRpcmVjdGlvbiIsImFuaW1hdGlvbi1kdXJhdGlvbiIsImFuaW1hdGlvbi1maWxsLW1vZGUiLCJhbmltYXRpb24taXRlcmF0aW9uLWNvdW50IiwiYW5pbWF0aW9uLW5hbWUiLCJhbmltYXRpb24tcGxheS1zdGF0ZSIsImFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24iLCJhdXRvIiwiYmFja2ZhY2UtdmlzaWJpbGl0eSIsImJhY2tncm91bmQiLCJiYWNrZ3JvdW5kLWF0dGFjaG1lbnQiLCJiYWNrZ3JvdW5kLWNsaXAiLCJiYWNrZ3JvdW5kLWNvbG9yIiwiYmFja2dyb3VuZC1pbWFnZSIsImJhY2tncm91bmQtb3JpZ2luIiwiYmFja2dyb3VuZC1wb3NpdGlvbiIsImJhY2tncm91bmQtcmVwZWF0IiwiYmFja2dyb3VuZC1zaXplIiwiYm9yZGVyIiwiYm9yZGVyLWJvdHRvbSIsImJvcmRlci1ib3R0b20tY29sb3IiLCJib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzIiwiYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXMiLCJib3JkZXItYm90dG9tLXN0eWxlIiwiYm9yZGVyLWJvdHRvbS13aWR0aCIsImJvcmRlci1jb2xsYXBzZSIsImJvcmRlci1jb2xvciIsImJvcmRlci1pbWFnZSIsImJvcmRlci1pbWFnZS1vdXRzZXQiLCJib3JkZXItaW1hZ2UtcmVwZWF0IiwiYm9yZGVyLWltYWdlLXNsaWNlIiwiYm9yZGVyLWltYWdlLXNvdXJjZSIsImJvcmRlci1pbWFnZS13aWR0aCIsImJvcmRlci1sZWZ0IiwiYm9yZGVyLWxlZnQtY29sb3IiLCJib3JkZXItbGVmdC1zdHlsZSIsImJvcmRlci1sZWZ0LXdpZHRoIiwiYm9yZGVyLXJhZGl1cyIsImJvcmRlci1yaWdodCIsImJvcmRlci1yaWdodC1jb2xvciIsImJvcmRlci1yaWdodC1zdHlsZSIsImJvcmRlci1yaWdodC13aWR0aCIsImJvcmRlci1zcGFjaW5nIiwiYm9yZGVyLXN0eWxlIiwiYm9yZGVyLXRvcCIsImJvcmRlci10b3AtY29sb3IiLCJib3JkZXItdG9wLWxlZnQtcmFkaXVzIiwiYm9yZGVyLXRvcC1yaWdodC1yYWRpdXMiLCJib3JkZXItdG9wLXN0eWxlIiwiYm9yZGVyLXRvcC13aWR0aCIsImJvcmRlci13aWR0aCIsImJvdHRvbSIsImJveC1kZWNvcmF0aW9uLWJyZWFrIiwiYm94LXNoYWRvdyIsImJveC1zaXppbmciLCJicmVhay1hZnRlciIsImJyZWFrLWJlZm9yZSIsImJyZWFrLWluc2lkZSIsImNhcHRpb24tc2lkZSIsImNsZWFyIiwiY2xpcCIsImNsaXAtcGF0aCIsImNvbG9yIiwiY29sdW1uLWNvdW50IiwiY29sdW1uLWZpbGwiLCJjb2x1bW4tZ2FwIiwiY29sdW1uLXJ1bGUiLCJjb2x1bW4tcnVsZS1jb2xvciIsImNvbHVtbi1ydWxlLXN0eWxlIiwiY29sdW1uLXJ1bGUtd2lkdGgiLCJjb2x1bW4tc3BhbiIsImNvbHVtbi13aWR0aCIsImNvbHVtbnMiLCJjb250ZW50IiwiY291bnRlci1pbmNyZW1lbnQiLCJjb3VudGVyLXJlc2V0IiwiY3Vyc29yIiwiZGlyZWN0aW9uIiwiZGlzcGxheSIsImVtcHR5LWNlbGxzIiwiZmlsdGVyIiwiZmxleCIsImZsZXgtYmFzaXMiLCJmbGV4LWRpcmVjdGlvbiIsImZsZXgtZmxvdyIsImZsZXgtZ3JvdyIsImZsZXgtc2hyaW5rIiwiZmxleC13cmFwIiwiZmxvYXQiLCJmb250IiwiZm9udC1kaXNwbGF5IiwiZm9udC1mYW1pbHkiLCJmb250LWZlYXR1cmUtc2V0dGluZ3MiLCJmb250LWtlcm5pbmciLCJmb250LWxhbmd1YWdlLW92ZXJyaWRlIiwiZm9udC1zaXplIiwiZm9udC1zaXplLWFkanVzdCIsImZvbnQtc21vb3RoaW5nIiwiZm9udC1zdHJldGNoIiwiZm9udC1zdHlsZSIsImZvbnQtdmFyaWFudCIsImZvbnQtdmFyaWFudC1saWdhdHVyZXMiLCJmb250LXZhcmlhdGlvbi1zZXR0aW5ncyIsImZvbnQtd2VpZ2h0IiwiaGVpZ2h0IiwiaHlwaGVucyIsImljb24iLCJpbWFnZS1vcmllbnRhdGlvbiIsImltYWdlLXJlbmRlcmluZyIsImltYWdlLXJlc29sdXRpb24iLCJpbWUtbW9kZSIsImluaGVyaXQiLCJpbml0aWFsIiwianVzdGlmeS1jb250ZW50IiwibGVmdCIsImxldHRlci1zcGFjaW5nIiwibGluZS1oZWlnaHQiLCJsaXN0LXN0eWxlIiwibGlzdC1zdHlsZS1pbWFnZSIsImxpc3Qtc3R5bGUtcG9zaXRpb24iLCJsaXN0LXN0eWxlLXR5cGUiLCJtYXJnaW4iLCJtYXJnaW4tYm90dG9tIiwibWFyZ2luLWxlZnQiLCJtYXJnaW4tcmlnaHQiLCJtYXJnaW4tdG9wIiwibWFya3MiLCJtYXNrIiwibWF4LWhlaWdodCIsIm1heC13aWR0aCIsIm1pbi1oZWlnaHQiLCJtaW4td2lkdGgiLCJuYXYtZG93biIsIm5hdi1pbmRleCIsIm5hdi1sZWZ0IiwibmF2LXJpZ2h0IiwibmF2LXVwIiwibm9uZSIsIm5vcm1hbCIsIm9iamVjdC1maXQiLCJvYmplY3QtcG9zaXRpb24iLCJvcGFjaXR5Iiwib3JkZXIiLCJvcnBoYW5zIiwib3V0bGluZSIsIm91dGxpbmUtY29sb3IiLCJvdXRsaW5lLW9mZnNldCIsIm91dGxpbmUtc3R5bGUiLCJvdXRsaW5lLXdpZHRoIiwib3ZlcmZsb3ciLCJvdmVyZmxvdy13cmFwIiwib3ZlcmZsb3cteCIsIm92ZXJmbG93LXkiLCJwYWRkaW5nIiwicGFkZGluZy1ib3R0b20iLCJwYWRkaW5nLWxlZnQiLCJwYWRkaW5nLXJpZ2h0IiwicGFkZGluZy10b3AiLCJwYWdlLWJyZWFrLWFmdGVyIiwicGFnZS1icmVhay1iZWZvcmUiLCJwYWdlLWJyZWFrLWluc2lkZSIsInBlcnNwZWN0aXZlIiwicGVyc3BlY3RpdmUtb3JpZ2luIiwicG9pbnRlci1ldmVudHMiLCJwb3NpdGlvbiIsInF1b3RlcyIsInJlc2l6ZSIsInJpZ2h0Iiwic3JjIiwidGFiLXNpemUiLCJ0YWJsZS1sYXlvdXQiLCJ0ZXh0LWFsaWduIiwidGV4dC1hbGlnbi1sYXN0IiwidGV4dC1kZWNvcmF0aW9uIiwidGV4dC1kZWNvcmF0aW9uLWNvbG9yIiwidGV4dC1kZWNvcmF0aW9uLWxpbmUiLCJ0ZXh0LWRlY29yYXRpb24tc3R5bGUiLCJ0ZXh0LWluZGVudCIsInRleHQtb3ZlcmZsb3ciLCJ0ZXh0LXJlbmRlcmluZyIsInRleHQtc2hhZG93IiwidGV4dC10cmFuc2Zvcm0iLCJ0ZXh0LXVuZGVybGluZS1wb3NpdGlvbiIsInRvcCIsInRyYW5zZm9ybSIsInRyYW5zZm9ybS1vcmlnaW4iLCJ0cmFuc2Zvcm0tc3R5bGUiLCJ0cmFuc2l0aW9uIiwidHJhbnNpdGlvbi1kZWxheSIsInRyYW5zaXRpb24tZHVyYXRpb24iLCJ0cmFuc2l0aW9uLXByb3BlcnR5IiwidHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24iLCJ1bmljb2RlLWJpZGkiLCJ2ZXJ0aWNhbC1hbGlnbiIsInZpc2liaWxpdHkiLCJ3aGl0ZS1zcGFjZSIsIndpZG93cyIsIndpZHRoIiwid29yZC1icmVhayIsIndvcmQtc3BhY2luZyIsIndvcmQtd3JhcCIsInotaW5kZXgiXS5yZXZlcnNlKCk7ZnVuY3Rpb24gbyhkKXtyZXR1cm4gZD90eXBlb2YgZD09InN0cmluZyI/ZDpkLnNvdXJjZTpudWxsfWZ1bmN0aW9uIGwoZCl7cmV0dXJuIGMoIig/PSIsZCwiKSIpfWZ1bmN0aW9uIGMoLi4uZCl7cmV0dXJuIGQubWFwKEU9Pm8oRSkpLmpvaW4oIiIpfWZ1bmN0aW9uIF8oZCl7Y29uc3QgZz1yKGQpLEU9e2NsYXNzTmFtZToiYnVpbHRfaW4iLGJlZ2luOi9bXHctXSsoPz1cKCkvfSx1PXtiZWdpbjovLSh3ZWJraXR8bW96fG1zfG8pLSg/PVthLXpdKS99LG09ImFuZCBvciBub3Qgb25seSIsUz0vQC0/XHdbXHddKigtXHcrKSovLFQ9IlthLXpBLVotXVthLXpBLVowLTlfLV0qIixiPVtkLkFQT1NfU1RSSU5HX01PREUsZC5RVU9URV9TVFJJTkdfTU9ERV07cmV0dXJue25hbWU6IkNTUyIsY2FzZV9pbnNlbnNpdGl2ZTohMCxpbGxlZ2FsOi9bPXwnXCRdLyxrZXl3b3Jkczp7a2V5ZnJhbWVQb3NpdGlvbjoiZnJvbSB0byJ9LGNsYXNzTmFtZUFsaWFzZXM6e2tleWZyYW1lUG9zaXRpb246InNlbGVjdG9yLXRhZyJ9LGNvbnRhaW5zOltkLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLHUsZC5DU1NfTlVNQkVSX01PREUse2NsYXNzTmFtZToic2VsZWN0b3ItaWQiLGJlZ2luOi8jW0EtWmEtejAtOV8tXSsvLHJlbGV2YW5jZTowfSx7Y2xhc3NOYW1lOiJzZWxlY3Rvci1jbGFzcyIsYmVnaW46IlxcLiIrVCxyZWxldmFuY2U6MH0sZy5BVFRSSUJVVEVfU0VMRUNUT1JfTU9ERSx7Y2xhc3NOYW1lOiJzZWxlY3Rvci1wc2V1ZG8iLHZhcmlhbnRzOlt7YmVnaW46IjooIituLmpvaW4oInwiKSsiKSJ9LHtiZWdpbjoiOjooIithLmpvaW4oInwiKSsiKSJ9XX0se2NsYXNzTmFtZToiYXR0cmlidXRlIixiZWdpbjoiXFxiKCIraS5qb2luKCJ8IikrIilcXGIifSx7YmVnaW46IjoiLGVuZDoiWzt9XSIsY29udGFpbnM6W2cuSEVYQ09MT1IsZy5JTVBPUlRBTlQsZC5DU1NfTlVNQkVSX01PREUsLi4uYix7YmVnaW46Lyh1cmx8ZGF0YS11cmkpXCgvLGVuZDovXCkvLHJlbGV2YW5jZTowLGtleXdvcmRzOntidWlsdF9pbjoidXJsIGRhdGEtdXJpIn0sY29udGFpbnM6W3tjbGFzc05hbWU6InN0cmluZyIsYmVnaW46L1teKV0vLGVuZHNXaXRoUGFyZW50OiEwLGV4Y2x1ZGVFbmQ6ITB9XX0sRV19LHtiZWdpbjpsKC9ALyksZW5kOiJbeztdIixyZWxldmFuY2U6MCxpbGxlZ2FsOi86Lyxjb250YWluczpbe2NsYXNzTmFtZToia2V5d29yZCIsYmVnaW46U30se2JlZ2luOi9ccy8sZW5kc1dpdGhQYXJlbnQ6ITAsZXhjbHVkZUVuZDohMCxyZWxldmFuY2U6MCxrZXl3b3Jkczp7JHBhdHRlcm46L1thLXotXSsvLGtleXdvcmQ6bSxhdHRyaWJ1dGU6dC5qb2luKCIgIil9LGNvbnRhaW5zOlt7YmVnaW46L1thLXotXSsoPz06KS8sY2xhc3NOYW1lOiJhdHRyaWJ1dGUifSwuLi5iLGQuQ1NTX05VTUJFUl9NT0RFXX1dfSx7Y2xhc3NOYW1lOiJzZWxlY3Rvci10YWciLGJlZ2luOiJcXGIoIitlLmpvaW4oInwiKSsiKVxcYiJ9XX19cy5leHBvcnRzPV99LDE1NDU3OmZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHIoZSl7Y29uc3QgdD17JHBhdHRlcm46ZS5VTkRFUlNDT1JFX0lERU5UX1JFLGtleXdvcmQ6ImFic3RyYWN0IGFsaWFzIGFsaWduIGFzbSBhc3NlcnQgYXV0byBib2R5IGJyZWFrIGJ5dGUgY2FzZSBjYXN0IGNhdGNoIGNsYXNzIGNvbnN0IGNvbnRpbnVlIGRlYnVnIGRlZmF1bHQgZGVsZXRlIGRlcHJlY2F0ZWQgZG8gZWxzZSBlbnVtIGV4cG9ydCBleHRlcm4gZmluYWwgZmluYWxseSBmb3IgZm9yZWFjaCBmb3JlYWNoX3JldmVyc2V8MTAgZ290byBpZiBpbW11dGFibGUgaW1wb3J0IGluIGlub3V0IGludCBpbnRlcmZhY2UgaW52YXJpYW50IGlzIGxhenkgbWFjcm8gbWl4aW4gbW9kdWxlIG5ldyBub3Rocm93IG91dCBvdmVycmlkZSBwYWNrYWdlIHByYWdtYSBwcml2YXRlIHByb3RlY3RlZCBwdWJsaWMgcHVyZSByZWYgcmV0dXJuIHNjb3BlIHNoYXJlZCBzdGF0aWMgc3RydWN0IHN1cGVyIHN3aXRjaCBzeW5jaHJvbml6ZWQgdGVtcGxhdGUgdGhpcyB0aHJvdyB0cnkgdHlwZWRlZiB0eXBlaWQgdHlwZW9mIHVuaW9uIHVuaXR0ZXN0IHZlcnNpb24gdm9pZCB2b2xhdGlsZSB3aGlsZSB3aXRoIF9fRklMRV9fIF9fTElORV9fIF9fZ3NoYXJlZHwxMCBfX3RocmVhZCBfX3RyYWl0cyBfX0RBVEVfXyBfX0VPRl9fIF9fVElNRV9fIF9fVElNRVNUQU1QX18gX19WRU5ET1JfXyBfX1ZFUlNJT05fXyIsYnVpbHRfaW46ImJvb2wgY2RvdWJsZSBjZW50IGNmbG9hdCBjaGFyIGNyZWFsIGRjaGFyIGRlbGVnYXRlIGRvdWJsZSBkc3RyaW5nIGZsb2F0IGZ1bmN0aW9uIGlkb3VibGUgaWZsb2F0IGlyZWFsIGxvbmcgcmVhbCBzaG9ydCBzdHJpbmcgdWJ5dGUgdWNlbnQgdWludCB1bG9uZyB1c2hvcnQgd2NoYXIgd3N0cmluZyIsbGl0ZXJhbDoiZmFsc2UgbnVsbCB0cnVlIn0sbj0iKDB8WzEtOV1bXFxkX10qKSIsYT0iKDB8WzEtOV1bXFxkX10qfFxcZFtcXGRfXSp8W1xcZF9dKz9cXGQpIixpPSIwW2JCXVswMV9dKyIsbz0iKFtcXGRhLWZBLUZdW1xcZGEtZkEtRl9dKnxfW1xcZGEtZkEtRl1bXFxkYS1mQS1GX10qKSIsbD0iMFt4WF0iK28sYz0iKFtlRV1bKy1dPyIrYSsiKSIsXz0iKCIrYSsiKFxcLlxcZCp8IitjKyIpfFxcZCtcXC4iK2ErInxcXC4iK24rYysiPykiLGQ9IigwW3hYXSgiK28rIlxcLiIrbysifFxcLj8iK28rIilbcFBdWystXT8iK2ErIikiLGc9IigiK24rInwiK2krInwiK2wrIikiLEU9IigiK2QrInwiK18rIikiLHU9YFxcXFwoWyciXFw/XFxcXGFiZm5ydHZdfHVbXFxkQS1GYS1mXXs0fXxbMC03XXsxLDN9fHhbXFxkQS1GYS1mXXsyfXxVW1xcZEEtRmEtZl17OH0pfCZbYS16QS1aXFxkXXsyLH07YCxtPXtjbGFzc05hbWU6Im51bWJlciIsYmVnaW46IlxcYiIrZysiKEx8dXxVfEx1fExVfHVMfFVMKT8iLHJlbGV2YW5jZTowfSxTPXtjbGFzc05hbWU6Im51bWJlciIsYmVnaW46IlxcYigiK0UrIihbZkZdfEx8aXxbZkZdaXxMaSk/fCIrZysiKGl8W2ZGXWl8TGkpKSIscmVsZXZhbmNlOjB9LFQ9e2NsYXNzTmFtZToic3RyaW5nIixiZWdpbjoiJygiK3UrInwuKSIsZW5kOiInIixpbGxlZ2FsOiIuIn0sZj17Y2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOiciJyxjb250YWluczpbe2JlZ2luOnUscmVsZXZhbmNlOjB9XSxlbmQ6JyJbY3dkXT8nfSxDPXtjbGFzc05hbWU6InN0cmluZyIsYmVnaW46J1tycV0iJyxlbmQ6JyJbY3dkXT8nLHJlbGV2YW5jZTo1fSxPPXtjbGFzc05hbWU6InN0cmluZyIsYmVnaW46ImAiLGVuZDoiYFtjd2RdPyJ9LEQ9e2NsYXNzTmFtZToic3RyaW5nIixiZWdpbjoneCJbXFxkYS1mQS1GXFxzXFxuXFxyXSoiW2N3ZF0/JyxyZWxldmFuY2U6MTB9LHk9e2NsYXNzTmFtZToic3RyaW5nIixiZWdpbjoncSJcXHsnLGVuZDonXFx9Iid9LEE9e2NsYXNzTmFtZToibWV0YSIsYmVnaW46Il4jISIsZW5kOiIkIixyZWxldmFuY2U6NX0saz17Y2xhc3NOYW1lOiJtZXRhIixiZWdpbjoiIyhsaW5lKSIsZW5kOiIkIixyZWxldmFuY2U6NX0sQj17Y2xhc3NOYW1lOiJrZXl3b3JkIixiZWdpbjoiQFthLXpBLVpfXVthLXpBLVpfXFxkXSoifSxGPWUuQ09NTUVOVCgiXFwvXFwrIiwiXFwrXFwvIix7Y29udGFpbnM6WyJzZWxmIl0scmVsZXZhbmNlOjEwfSk7cmV0dXJue25hbWU6IkQiLGtleXdvcmRzOnQsY29udGFpbnM6W2UuQ19MSU5FX0NPTU1FTlRfTU9ERSxlLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLEYsRCxmLEMsTyx5LFMsbSxULEEsayxCXX19cy5leHBvcnRzPXJ9LDQ0MzE2OmZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHIoZSl7Y29uc3QgdD17Y2xhc3NOYW1lOiJzdWJzdCIsdmFyaWFudHM6W3tiZWdpbjoiXFwkW0EtWmEtejAtOV9dKyJ9XX0sbj17Y2xhc3NOYW1lOiJzdWJzdCIsdmFyaWFudHM6W3tiZWdpbjovXCRcey8sZW5kOi9cfS99XSxrZXl3b3JkczoidHJ1ZSBmYWxzZSBudWxsIHRoaXMgaXMgbmV3IHN1cGVyIn0sYT17Y2xhc3NOYW1lOiJzdHJpbmciLHZhcmlhbnRzOlt7YmVnaW46InInJyciLGVuZDoiJycnIn0se2JlZ2luOidyIiIiJyxlbmQ6JyIiIid9LHtiZWdpbjoiciciLGVuZDoiJyIsaWxsZWdhbDoiXFxuIn0se2JlZ2luOidyIicsZW5kOiciJyxpbGxlZ2FsOiJcXG4ifSx7YmVnaW46IicnJyIsZW5kOiInJyciLGNvbnRhaW5zOltlLkJBQ0tTTEFTSF9FU0NBUEUsdCxuXX0se2JlZ2luOiciIiInLGVuZDonIiIiJyxjb250YWluczpbZS5CQUNLU0xBU0hfRVNDQVBFLHQsbl19LHtiZWdpbjoiJyIsZW5kOiInIixpbGxlZ2FsOiJcXG4iLGNvbnRhaW5zOltlLkJBQ0tTTEFTSF9FU0NBUEUsdCxuXX0se2JlZ2luOiciJyxlbmQ6JyInLGlsbGVnYWw6IlxcbiIsY29udGFpbnM6W2UuQkFDS1NMQVNIX0VTQ0FQRSx0LG5dfV19O24uY29udGFpbnM9W2UuQ19OVU1CRVJfTU9ERSxhXTtjb25zdCBpPVsiQ29tcGFyYWJsZSIsIkRhdGVUaW1lIiwiRHVyYXRpb24iLCJGdW5jdGlvbiIsIkl0ZXJhYmxlIiwiSXRlcmF0b3IiLCJMaXN0IiwiTWFwIiwiTWF0Y2giLCJPYmplY3QiLCJQYXR0ZXJuIiwiUmVnRXhwIiwiU2V0IiwiU3RvcHdhdGNoIiwiU3RyaW5nIiwiU3RyaW5nQnVmZmVyIiwiU3RyaW5nU2luayIsIlN5bWJvbCIsIlR5cGUiLCJVcmkiLCJib29sIiwiZG91YmxlIiwiaW50IiwibnVtIiwiRWxlbWVudCIsIkVsZW1lbnRMaXN0Il0sbz1pLm1hcChjPT5gJHtjfT9gKTtyZXR1cm57bmFtZToiRGFydCIsa2V5d29yZHM6e2tleXdvcmQ6ImFic3RyYWN0IGFzIGFzc2VydCBhc3luYyBhd2FpdCBicmVhayBjYXNlIGNhdGNoIGNsYXNzIGNvbnN0IGNvbnRpbnVlIGNvdmFyaWFudCBkZWZhdWx0IGRlZmVycmVkIGRvIGR5bmFtaWMgZWxzZSBlbnVtIGV4cG9ydCBleHRlbmRzIGV4dGVuc2lvbiBleHRlcm5hbCBmYWN0b3J5IGZhbHNlIGZpbmFsIGZpbmFsbHkgZm9yIEZ1bmN0aW9uIGdldCBoaWRlIGlmIGltcGxlbWVudHMgaW1wb3J0IGluIGluZmVyZmFjZSBpcyBsYXRlIGxpYnJhcnkgbWl4aW4gbmV3IG51bGwgb24gb3BlcmF0b3IgcGFydCByZXF1aXJlZCByZXRocm93IHJldHVybiBzZXQgc2hvdyBzdGF0aWMgc3VwZXIgc3dpdGNoIHN5bmMgdGhpcyB0aHJvdyB0cnVlIHRyeSB0eXBlZGVmIHZhciB2b2lkIHdoaWxlIHdpdGggeWllbGQiLGJ1aWx0X2luOmkuY29uY2F0KG8pLmNvbmNhdChbIk5ldmVyIiwiTnVsbCIsImR5bmFtaWMiLCJwcmludCIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvciIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJ3aW5kb3ciXSksJHBhdHRlcm46L1tBLVphLXpdW0EtWmEtejAtOV9dKlw/Py99LGNvbnRhaW5zOlthLGUuQ09NTUVOVCgvXC9cKlwqKD8hXC8pLywvXCpcLy8se3N1Ykxhbmd1YWdlOiJtYXJrZG93biIscmVsZXZhbmNlOjB9KSxlLkNPTU1FTlQoL1wvezMsfSA/LywvJC8se2NvbnRhaW5zOlt7c3ViTGFuZ3VhZ2U6Im1hcmtkb3duIixiZWdpbjoiLiIsZW5kOiIkIixyZWxldmFuY2U6MH1dfSksZS5DX0xJTkVfQ09NTUVOVF9NT0RFLGUuQ19CTE9DS19DT01NRU5UX01PREUse2NsYXNzTmFtZToiY2xhc3MiLGJlZ2luS2V5d29yZHM6ImNsYXNzIGludGVyZmFjZSIsZW5kOi9cey8sZXhjbHVkZUVuZDohMCxjb250YWluczpbe2JlZ2luS2V5d29yZHM6ImV4dGVuZHMgaW1wbGVtZW50cyJ9LGUuVU5ERVJTQ09SRV9USVRMRV9NT0RFXX0sZS5DX05VTUJFUl9NT0RFLHtjbGFzc05hbWU6Im1ldGEiLGJlZ2luOiJAW0EtWmEtel0rIn0se2JlZ2luOiI9PiJ9XX19cy5leHBvcnRzPXJ9LDM0NjU5OmZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHIoZSl7Y29uc3QgdD0iZXhwb3J0cyByZWdpc3RlciBmaWxlIHNobCBhcnJheSByZWNvcmQgcHJvcGVydHkgZm9yIG1vZCB3aGlsZSBzZXQgYWxseSBsYWJlbCB1c2VzIHJhaXNlIG5vdCBzdG9yZWQgY2xhc3Mgc2FmZWNhbGwgdmFyIGludGVyZmFjZSBvciBwcml2YXRlIHN0YXRpYyBleGl0IGluZGV4IGluaGVyaXRlZCB0byBlbHNlIHN0ZGNhbGwgb3ZlcnJpZGUgc2hyIGFzbSBmYXIgcmVzb3VyY2VzdHJpbmcgZmluYWxpemF0aW9uIHBhY2tlZCB2aXJ0dWFsIG91dCBhbmQgcHJvdGVjdGVkIGxpYnJhcnkgZG8geG9yd3JpdGUgZ290byBuZWFyIGZ1bmN0aW9uIGVuZCBkaXYgb3ZlcmxvYWQgb2JqZWN0IHVuaXQgYmVnaW4gc3RyaW5nIG9uIGlubGluZSByZXBlYXQgdW50aWwgZGVzdHJ1Y3RvciB3cml0ZSBtZXNzYWdlIHByb2dyYW0gd2l0aCByZWFkIGluaXRpYWxpemF0aW9uIGV4Y2VwdCBkZWZhdWx0IG5pbCBpZiBjYXNlIGNkZWNsIGluIGRvd250byB0aHJlYWR2YXIgb2YgdHJ5IHBhc2NhbCBjb25zdCBleHRlcm5hbCBjb25zdHJ1Y3RvciB0eXBlIHB1YmxpYyB0aGVuIGltcGxlbWVudGF0aW9uIGZpbmFsbHkgcHVibGlzaGVkIHByb2NlZHVyZSBhYnNvbHV0ZSByZWludHJvZHVjZSBvcGVyYXRvciBhcyBpcyBhYnN0cmFjdCBhbGlhcyBhc3NlbWJsZXIgYml0cGFja2VkIGJyZWFrIGNvbnRpbnVlIGNwcGRlY2wgY3ZhciBlbnVtZXJhdG9yIGV4cGVyaW1lbnRhbCBwbGF0Zm9ybSBkZXByZWNhdGVkIHVuaW1wbGVtZW50ZWQgZHluYW1pYyBleHBvcnQgZmFyMTYgZm9yd2FyZCBnZW5lcmljIGhlbHBlciBpbXBsZW1lbnRzIGludGVycnVwdCBpb2NoZWNrcyBsb2NhbCBuYW1lIG5vZGVmYXVsdCBub3JldHVybiBub3N0YWNrZnJhbWUgb2xkZnBjY2FsbCBvdGhlcndpc2Ugc2F2ZXJlZ2lzdGVycyBzb2Z0ZmxvYXQgc3BlY2lhbGl6ZSBzdHJpY3QgdW5hbGlnbmVkIHZhcmFyZ3MgIixuPVtlLkNfTElORV9DT01NRU5UX01PREUsZS5DT01NRU5UKC9cey8sL1x9Lyx7cmVsZXZhbmNlOjB9KSxlLkNPTU1FTlQoL1woXCovLC9cKlwpLyx7cmVsZXZhbmNlOjEwfSldLGE9e2NsYXNzTmFtZToibWV0YSIsdmFyaWFudHM6W3tiZWdpbjovXHtcJC8sZW5kOi9cfS99LHtiZWdpbjovXChcKlwkLyxlbmQ6L1wqXCkvfV19LGk9e2NsYXNzTmFtZToic3RyaW5nIixiZWdpbjovJy8sZW5kOi8nLyxjb250YWluczpbe2JlZ2luOi8nJy99XX0sbz17Y2xhc3NOYW1lOiJudW1iZXIiLHJlbGV2YW5jZTowLHZhcmlhbnRzOlt7YmVnaW46IlxcJFswLTlBLUZhLWZdKyJ9LHtiZWdpbjoiJlswLTddKyJ9LHtiZWdpbjoiJVswMV0rIn1dfSxsPXtjbGFzc05hbWU6InN0cmluZyIsYmVnaW46LygjXGQrKSsvfSxjPXtiZWdpbjplLklERU5UX1JFKyJcXHMqPVxccypjbGFzc1xccypcXCgiLHJldHVybkJlZ2luOiEwLGNvbnRhaW5zOltlLlRJVExFX01PREVdfSxfPXtjbGFzc05hbWU6ImZ1bmN0aW9uIixiZWdpbktleXdvcmRzOiJmdW5jdGlvbiBjb25zdHJ1Y3RvciBkZXN0cnVjdG9yIHByb2NlZHVyZSIsZW5kOi9bOjtdLyxrZXl3b3JkczoiZnVuY3Rpb24gY29uc3RydWN0b3J8MTAgZGVzdHJ1Y3RvcnwxMCBwcm9jZWR1cmV8MTAiLGNvbnRhaW5zOltlLlRJVExFX01PREUse2NsYXNzTmFtZToicGFyYW1zIixiZWdpbjovXCgvLGVuZDovXCkvLGtleXdvcmRzOnQsY29udGFpbnM6W2ksbCxhXS5jb25jYXQobil9LGFdLmNvbmNhdChuKX07cmV0dXJue25hbWU6IkRlbHBoaSIsYWxpYXNlczpbImRwciIsImRmbSIsInBhcyIsInBhc2NhbCIsImZyZWVwYXNjYWwiLCJsYXphcnVzIiwibHByIiwibGZtIl0sY2FzZV9pbnNlbnNpdGl2ZTohMCxrZXl3b3Jkczp0LGlsbGVnYWw6LyJ8XCRbRy1aZy16XXxcL1wqfDxcL3xcfC8sY29udGFpbnM6W2ksbCxlLk5VTUJFUl9NT0RFLG8sYyxfLGFdLmNvbmNhdChuKX19cy5leHBvcnRzPXJ9LDQwNzAyOmZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHIoZSl7cmV0dXJue25hbWU6IkRpZmYiLGFsaWFzZXM6WyJwYXRjaCJdLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJtZXRhIixyZWxldmFuY2U6MTAsdmFyaWFudHM6W3tiZWdpbjovXkBAICstXGQrLFxkKyArXCtcZCssXGQrICtAQC99LHtiZWdpbjovXlwqXCpcKiArXGQrLFxkKyArXCpcKlwqXCokL30se2JlZ2luOi9eLS0tICtcZCssXGQrICstLS0tJC99XX0se2NsYXNzTmFtZToiY29tbWVudCIsdmFyaWFudHM6W3tiZWdpbjovSW5kZXg6IC8sZW5kOi8kL30se2JlZ2luOi9eaW5kZXgvLGVuZDovJC99LHtiZWdpbjovPXszLH0vLGVuZDovJC99LHtiZWdpbjovXi17M30vLGVuZDovJC99LHtiZWdpbjovXlwqezN9IC8sZW5kOi8kL30se2JlZ2luOi9eXCt7M30vLGVuZDovJC99LHtiZWdpbjovXlwqezE1fSQvfSx7YmVnaW46L15kaWZmIC0tZ2l0LyxlbmQ6LyQvfV19LHtjbGFzc05hbWU6ImFkZGl0aW9uIixiZWdpbjovXlwrLyxlbmQ6LyQvfSx7Y2xhc3NOYW1lOiJkZWxldGlvbiIsYmVnaW46L14tLyxlbmQ6LyQvfSx7Y2xhc3NOYW1lOiJhZGRpdGlvbiIsYmVnaW46L14hLyxlbmQ6LyQvfV19fXMuZXhwb3J0cz1yfSw1OTQ2MTpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGUpe2NvbnN0IHQ9e2JlZ2luOi9cfFtBLVphLXpdKzo/LyxrZXl3b3Jkczp7bmFtZToidHJ1bmNhdGV3b3JkcyByZW1vdmV0YWdzIGxpbmVicmVha3NiciB5ZXNubyBnZXRfZGlnaXQgdGltZXNpbmNlIHJhbmRvbSBzdHJpcHRhZ3MgZmlsZXNpemVmb3JtYXQgZXNjYXBlIGxpbmVicmVha3MgbGVuZ3RoX2lzIGxqdXN0IHJqdXN0IGN1dCB1cmxpemUgZml4X2FtcGVyc2FuZHMgdGl0bGUgZmxvYXRmb3JtYXQgY2FwZmlyc3QgcHByaW50IGRpdmlzaWJsZWJ5IGFkZCBtYWtlX2xpc3QgdW5vcmRlcmVkX2xpc3QgdXJsZW5jb2RlIHRpbWV1bnRpbCB1cmxpemV0cnVuYyB3b3JkY291bnQgc3RyaW5nZm9ybWF0IGxpbmVudW1iZXJzIHNsaWNlIGRhdGUgZGljdHNvcnQgZGljdHNvcnRyZXZlcnNlZCBkZWZhdWx0X2lmX25vbmUgcGx1cmFsaXplIGxvd2VyIGpvaW4gY2VudGVyIGRlZmF1bHQgdHJ1bmNhdGV3b3Jkc19odG1sIHVwcGVyIGxlbmd0aCBwaG9uZTJudW1lcmljIHdvcmR3cmFwIHRpbWUgYWRkc2xhc2hlcyBzbHVnaWZ5IGZpcnN0IGVzY2FwZWpzIGZvcmNlX2VzY2FwZSBpcmllbmNvZGUgbGFzdCBzYWZlIHNhZmVzZXEgdHJ1bmNhdGVjaGFycyBsb2NhbGl6ZSB1bmxvY2FsaXplIGxvY2FsdGltZSB1dGMgdGltZXpvbmUifSxjb250YWluczpbZS5RVU9URV9TVFJJTkdfTU9ERSxlLkFQT1NfU1RSSU5HX01PREVdfTtyZXR1cm57bmFtZToiRGphbmdvIixhbGlhc2VzOlsiamluamEiXSxjYXNlX2luc2Vuc2l0aXZlOiEwLHN1Ykxhbmd1YWdlOiJ4bWwiLGNvbnRhaW5zOltlLkNPTU1FTlQoL1x7JVxzKmNvbW1lbnRccyolXH0vLC9ceyVccyplbmRjb21tZW50XHMqJVx9LyksZS5DT01NRU5UKC9ceyMvLC8jXH0vKSx7Y2xhc3NOYW1lOiJ0ZW1wbGF0ZS10YWciLGJlZ2luOi9ceyUvLGVuZDovJVx9Lyxjb250YWluczpbe2NsYXNzTmFtZToibmFtZSIsYmVnaW46L1x3Ky8sa2V5d29yZHM6e25hbWU6ImNvbW1lbnQgZW5kY29tbWVudCBsb2FkIHRlbXBsYXRldGFnIGlmY2hhbmdlZCBlbmRpZmNoYW5nZWQgaWYgZW5kaWYgZmlyc3RvZiBmb3IgZW5kZm9yIGlmbm90ZXF1YWwgZW5kaWZub3RlcXVhbCB3aWR0aHJhdGlvIGV4dGVuZHMgaW5jbHVkZSBzcGFjZWxlc3MgZW5kc3BhY2VsZXNzIHJlZ3JvdXAgaWZlcXVhbCBlbmRpZmVxdWFsIHNzaSBub3cgd2l0aCBjeWNsZSB1cmwgZmlsdGVyIGVuZGZpbHRlciBkZWJ1ZyBibG9jayBlbmRibG9jayBlbHNlIGF1dG9lc2NhcGUgZW5kYXV0b2VzY2FwZSBjc3JmX3Rva2VuIGVtcHR5IGVsaWYgZW5kd2l0aCBzdGF0aWMgdHJhbnMgYmxvY2t0cmFucyBlbmRibG9ja3RyYW5zIGdldF9zdGF0aWNfcHJlZml4IGdldF9tZWRpYV9wcmVmaXggcGx1cmFsIGdldF9jdXJyZW50X2xhbmd1YWdlIGxhbmd1YWdlIGdldF9hdmFpbGFibGVfbGFuZ3VhZ2VzIGdldF9jdXJyZW50X2xhbmd1YWdlX2JpZGkgZ2V0X2xhbmd1YWdlX2luZm8gZ2V0X2xhbmd1YWdlX2luZm9fbGlzdCBsb2NhbGl6ZSBlbmRsb2NhbGl6ZSBsb2NhbHRpbWUgZW5kbG9jYWx0aW1lIHRpbWV6b25lIGVuZHRpbWV6b25lIGdldF9jdXJyZW50X3RpbWV6b25lIHZlcmJhdGltIn0sc3RhcnRzOntlbmRzV2l0aFBhcmVudDohMCxrZXl3b3JkczoiaW4gYnkgYXMiLGNvbnRhaW5zOlt0XSxyZWxldmFuY2U6MH19XX0se2NsYXNzTmFtZToidGVtcGxhdGUtdmFyaWFibGUiLGJlZ2luOi9ce1x7LyxlbmQ6L1x9XH0vLGNvbnRhaW5zOlt0XX1dfX1zLmV4cG9ydHM9cn0sMjkyNzQ6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihlKXtyZXR1cm57bmFtZToiRE5TIFpvbmUiLGFsaWFzZXM6WyJiaW5kIiwiem9uZSJdLGtleXdvcmRzOntrZXl3b3JkOiJJTiBBIEFBQUEgQUZTREIgQVBMIENBQSBDRE5TS0VZIENEUyBDRVJUIENOQU1FIERIQ0lEIERMViBETkFNRSBETlNLRVkgRFMgSElQIElQU0VDS0VZIEtFWSBLWCBMT0MgTVggTkFQVFIgTlMgTlNFQyBOU0VDMyBOU0VDM1BBUkFNIFBUUiBSUlNJRyBSUCBTSUcgU09BIFNSViBTU0hGUCBUQSBUS0VZIFRMU0EgVFNJRyBUWFQifSxjb250YWluczpbZS5DT01NRU5UKCI7IiwiJCIse3JlbGV2YW5jZTowfSkse2NsYXNzTmFtZToibWV0YSIsYmVnaW46L15cJChUVEx8R0VORVJBVEV8SU5DTFVERXxPUklHSU4pXGIvfSx7Y2xhc3NOYW1lOiJudW1iZXIiLGJlZ2luOiIoKChbMC05QS1GYS1mXXsxLDR9Oil7N30oWzAtOUEtRmEtZl17MSw0fXw6KSl8KChbMC05QS1GYS1mXXsxLDR9Oil7Nn0oOlswLTlBLUZhLWZdezEsNH18KCgyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldP1xcZCkoXFwuKDI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV0/XFxkKSl7M30pfDopKXwoKFswLTlBLUZhLWZdezEsNH06KXs1fSgoKDpbMC05QS1GYS1mXXsxLDR9KXsxLDJ9KXw6KCgyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldP1xcZCkoXFwuKDI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV0/XFxkKSl7M30pfDopKXwoKFswLTlBLUZhLWZdezEsNH06KXs0fSgoKDpbMC05QS1GYS1mXXsxLDR9KXsxLDN9KXwoKDpbMC05QS1GYS1mXXsxLDR9KT86KCgyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldP1xcZCkoXFwuKDI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV0/XFxkKSl7M30pKXw6KSl8KChbMC05QS1GYS1mXXsxLDR9Oil7M30oKCg6WzAtOUEtRmEtZl17MSw0fSl7MSw0fSl8KCg6WzAtOUEtRmEtZl17MSw0fSl7MCwyfTooKDI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV0/XFxkKShcXC4oMjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XT9cXGQpKXszfSkpfDopKXwoKFswLTlBLUZhLWZdezEsNH06KXsyfSgoKDpbMC05QS1GYS1mXXsxLDR9KXsxLDV9KXwoKDpbMC05QS1GYS1mXXsxLDR9KXswLDN9OigoMjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XT9cXGQpKFxcLigyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldP1xcZCkpezN9KSl8OikpfCgoWzAtOUEtRmEtZl17MSw0fTopezF9KCgoOlswLTlBLUZhLWZdezEsNH0pezEsNn0pfCgoOlswLTlBLUZhLWZdezEsNH0pezAsNH06KCgyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldP1xcZCkoXFwuKDI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV0/XFxkKSl7M30pKXw6KSl8KDooKCg6WzAtOUEtRmEtZl17MSw0fSl7MSw3fSl8KCg6WzAtOUEtRmEtZl17MSw0fSl7MCw1fTooKDI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV0/XFxkKShcXC4oMjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XT9cXGQpKXszfSkpfDopKSlcXGIifSx7Y2xhc3NOYW1lOiJudW1iZXIiLGJlZ2luOiIoKDI1WzAtNV18KDJbMC00XXwxezAsMX1bMC05XSl7MCwxfVswLTldKS4pezMsM30oMjVbMC01XXwoMlswLTRdfDF7MCwxfVswLTldKXswLDF9WzAtOV0pXFxiIn0sZS5pbmhlcml0KGUuTlVNQkVSX01PREUse2JlZ2luOi9cYlxkK1tkaHdtXT8vfSldfX1zLmV4cG9ydHM9cn0sNDI2NDU6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihlKXtyZXR1cm57bmFtZToiRG9ja2VyZmlsZSIsYWxpYXNlczpbImRvY2tlciJdLGNhc2VfaW5zZW5zaXRpdmU6ITAsa2V5d29yZHM6ImZyb20gbWFpbnRhaW5lciBleHBvc2UgZW52IGFyZyB1c2VyIG9uYnVpbGQgc3RvcHNpZ25hbCIsY29udGFpbnM6W2UuSEFTSF9DT01NRU5UX01PREUsZS5BUE9TX1NUUklOR19NT0RFLGUuUVVPVEVfU1RSSU5HX01PREUsZS5OVU1CRVJfTU9ERSx7YmVnaW5LZXl3b3JkczoicnVuIGNtZCBlbnRyeXBvaW50IHZvbHVtZSBhZGQgY29weSB3b3JrZGlyIGxhYmVsIGhlYWx0aGNoZWNrIHNoZWxsIixzdGFydHM6e2VuZDovW15cXF0kLyxzdWJMYW5ndWFnZToiYmFzaCJ9fV0saWxsZWdhbDoiPC8ifX1zLmV4cG9ydHM9cn0sMzIzMTE6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihlKXtjb25zdCB0PWUuQ09NTUVOVCgvXlxzKkA/cmVtXGIvLC8kLyx7cmVsZXZhbmNlOjEwfSk7cmV0dXJue25hbWU6IkJhdGNoIGZpbGUgKERPUykiLGFsaWFzZXM6WyJiYXQiLCJjbWQiXSxjYXNlX2luc2Vuc2l0aXZlOiEwLGlsbGVnYWw6L1wvXCovLGtleXdvcmRzOntrZXl3b3JkOiJpZiBlbHNlIGdvdG8gZm9yIGluIGRvIGNhbGwgZXhpdCBub3QgZXhpc3QgZXJyb3JsZXZlbCBkZWZpbmVkIGVxdSBuZXEgbHNzIGxlcSBndHIgZ2VxIixidWlsdF9pbjoicHJuIG51bCBscHQzIGxwdDIgbHB0MSBjb24gY29tNCBjb20zIGNvbTIgY29tMSBhdXggc2hpZnQgY2QgZGlyIGVjaG8gc2V0bG9jYWwgZW5kbG9jYWwgc2V0IHBhdXNlIGNvcHkgYXBwZW5kIGFzc29jIGF0IGF0dHJpYiBicmVhayBjYWNscyBjZCBjaGNwIGNoZGlyIGNoa2RzayBjaGtudGZzIGNscyBjbWQgY29sb3IgY29tcCBjb21wYWN0IGNvbnZlcnQgZGF0ZSBkaXIgZGlza2NvbXAgZGlza2NvcHkgZG9za2V5IGVyYXNlIGZzIGZpbmQgZmluZHN0ciBmb3JtYXQgZnR5cGUgZ3JhZnRhYmwgaGVscCBrZXliIGxhYmVsIG1kIG1rZGlyIG1vZGUgbW9yZSBtb3ZlIHBhdGggcGF1c2UgcHJpbnQgcG9wZCBwdXNoZCBwcm9tdCByZCByZWNvdmVyIHJlbSByZW5hbWUgcmVwbGFjZSByZXN0b3JlIHJtZGlyIHNoaWZ0IHNvcnQgc3RhcnQgc3Vic3QgdGltZSB0aXRsZSB0cmVlIHR5cGUgdmVyIHZlcmlmeSB2b2wgcGluZyBuZXQgaXBjb25maWcgdGFza2tpbGwgeGNvcHkgcmVuIGRlbCJ9LGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJ2YXJpYWJsZSIsYmVnaW46LyUlW14gXXwlW14gXSs/JXwhW14gXSs/IS99LHtjbGFzc05hbWU6ImZ1bmN0aW9uIixiZWdpbjp7Y2xhc3NOYW1lOiJzeW1ib2wiLGJlZ2luOiJeXFxzKltBLVphLXouXz9dW0EtWmEtejAtOV8kI0B+Lj9dKig6fFxccytsYWJlbCkiLHJlbGV2YW5jZTowfS5iZWdpbixlbmQ6ImdvdG86ZW9mIixjb250YWluczpbZS5pbmhlcml0KGUuVElUTEVfTU9ERSx7YmVnaW46IihbX2EtekEtWl1cXHcqXFwuKSooW19hLXpBLVpdXFx3KjopP1tfYS16QS1aXVxcdyoifSksdF19LHtjbGFzc05hbWU6Im51bWJlciIsYmVnaW46IlxcYlxcZCsiLHJlbGV2YW5jZTowfSx0XX19cy5leHBvcnRzPXJ9LDI3MjcwOmZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHIoZSl7cmV0dXJue2tleXdvcmRzOiJkc2NvbmZpZyIsY29udGFpbnM6W3tjbGFzc05hbWU6ImtleXdvcmQiLGJlZ2luOiJeZHNjb25maWciLGVuZDovXHMvLGV4Y2x1ZGVFbmQ6ITAscmVsZXZhbmNlOjEwfSx7Y2xhc3NOYW1lOiJidWlsdF9pbiIsYmVnaW46LyhsaXN0fGNyZWF0ZXxnZXR8c2V0fGRlbGV0ZSktKFx3KykvLGVuZDovXHMvLGV4Y2x1ZGVFbmQ6ITAsaWxsZWdhbDoiIUAjJCVeJiooKSIscmVsZXZhbmNlOjEwfSx7Y2xhc3NOYW1lOiJidWlsdF9pbiIsYmVnaW46Ly0tKFx3KykvLGVuZDovXHMvLGV4Y2x1ZGVFbmQ6ITB9LHtjbGFzc05hbWU6InN0cmluZyIsYmVnaW46LyIvLGVuZDovIi99LHtjbGFzc05hbWU6InN0cmluZyIsYmVnaW46LycvLGVuZDovJy99LHtjbGFzc05hbWU6InN0cmluZyIsYmVnaW46L1tcd1wtP10rOlx3Ky8sZW5kOi9cVy8scmVsZXZhbmNlOjB9LHtjbGFzc05hbWU6InN0cmluZyIsYmVnaW46L1x3KyhcLVx3KykqLyxlbmQ6Lyg/PVxXKS8scmVsZXZhbmNlOjB9LGUuSEFTSF9DT01NRU5UX01PREVdfX1zLmV4cG9ydHM9cn0sMzUyODg6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihlKXtjb25zdCB0PXtjbGFzc05hbWU6InN0cmluZyIsdmFyaWFudHM6W2UuaW5oZXJpdChlLlFVT1RFX1NUUklOR19NT0RFLHtiZWdpbjonKCh1OD98VSl8TCk/Iid9KSx7YmVnaW46Jyh1OD98VSk/UiInLGVuZDonIicsY29udGFpbnM6W2UuQkFDS1NMQVNIX0VTQ0FQRV19LHtiZWdpbjoiJ1xcXFw/LiIsZW5kOiInIixpbGxlZ2FsOiIuIn1dfSxuPXtjbGFzc05hbWU6Im51bWJlciIsdmFyaWFudHM6W3tiZWdpbjoiXFxiKFxcZCsoXFwuXFxkKik/fFxcLlxcZCspKHV8VXxsfEx8dWx8VUx8ZnxGKSJ9LHtiZWdpbjplLkNfTlVNQkVSX1JFfV0scmVsZXZhbmNlOjB9LGE9e2NsYXNzTmFtZToibWV0YSIsYmVnaW46IiMiLGVuZDoiJCIsa2V5d29yZHM6eyJtZXRhLWtleXdvcmQiOiJpZiBlbHNlIGVsaWYgZW5kaWYgZGVmaW5lIHVuZGVmIGlmZGVmIGlmbmRlZiJ9LGNvbnRhaW5zOlt7YmVnaW46L1xcXG4vLHJlbGV2YW5jZTowfSx7YmVnaW5LZXl3b3JkczoiaW5jbHVkZSIsZW5kOiIkIixrZXl3b3Jkczp7Im1ldGEta2V5d29yZCI6ImluY2x1ZGUifSxjb250YWluczpbZS5pbmhlcml0KHQse2NsYXNzTmFtZToibWV0YS1zdHJpbmcifSkse2NsYXNzTmFtZToibWV0YS1zdHJpbmciLGJlZ2luOiI8IixlbmQ6Ij4iLGlsbGVnYWw6IlxcbiJ9XX0sdCxlLkNfTElORV9DT01NRU5UX01PREUsZS5DX0JMT0NLX0NPTU1FTlRfTU9ERV19LGk9e2NsYXNzTmFtZToidmFyaWFibGUiLGJlZ2luOi8mW2EtelxkX10qXGIvfSxvPXtjbGFzc05hbWU6Im1ldGEta2V5d29yZCIsYmVnaW46Ii9bYS16XVthLXpcXGQtXSovIn0sbD17Y2xhc3NOYW1lOiJzeW1ib2wiLGJlZ2luOiJeXFxzKlthLXpBLVpfXVthLXpBLVpcXGRfXSo6In0sYz17Y2xhc3NOYW1lOiJwYXJhbXMiLGJlZ2luOiI8IixlbmQ6Ij4iLGNvbnRhaW5zOltuLGldfSxfPXtjbGFzc05hbWU6ImNsYXNzIixiZWdpbjovW2EtekEtWl9dW2EtekEtWlxkX0BdKlxzXHsvLGVuZDovW3s7PV0vLHJldHVybkJlZ2luOiEwLGV4Y2x1ZGVFbmQ6ITB9O3JldHVybntuYW1lOiJEZXZpY2UgVHJlZSIsa2V5d29yZHM6IiIsY29udGFpbnM6W3tjbGFzc05hbWU6ImNsYXNzIixiZWdpbjoiL1xccypcXHsiLGVuZDovXH07LyxyZWxldmFuY2U6MTAsY29udGFpbnM6W2ksbyxsLF8sYyxlLkNfTElORV9DT01NRU5UX01PREUsZS5DX0JMT0NLX0NPTU1FTlRfTU9ERSxuLHRdfSxpLG8sbCxfLGMsZS5DX0xJTkVfQ09NTUVOVF9NT0RFLGUuQ19CTE9DS19DT01NRU5UX01PREUsbix0LGEse2JlZ2luOmUuSURFTlRfUkUrIjo6IixrZXl3b3JkczoiIn1dfX1zLmV4cG9ydHM9cn0sOTI2OTI6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihlKXtyZXR1cm57bmFtZToiRHVzdCIsYWxpYXNlczpbImRzdCJdLGNhc2VfaW5zZW5zaXRpdmU6ITAsc3ViTGFuZ3VhZ2U6InhtbCIsY29udGFpbnM6W3tjbGFzc05hbWU6InRlbXBsYXRlLXRhZyIsYmVnaW46L1x7WyNcL10vLGVuZDovXH0vLGlsbGVnYWw6LzsvLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJuYW1lIixiZWdpbjovW2EtekEtWlwuLV0rLyxzdGFydHM6e2VuZHNXaXRoUGFyZW50OiEwLHJlbGV2YW5jZTowLGNvbnRhaW5zOltlLlFVT1RFX1NUUklOR19NT0RFXX19XX0se2NsYXNzTmFtZToidGVtcGxhdGUtdmFyaWFibGUiLGJlZ2luOi9cey8sZW5kOi9cfS8saWxsZWdhbDovOy8sa2V5d29yZHM6ImlmIGVxIG5lIGx0IGx0ZSBndCBndGUgc2VsZWN0IGRlZmF1bHQgbWF0aCBzZXAifV19fXMuZXhwb3J0cz1yfSwzMzc0MzpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGUpe2NvbnN0IHQ9ZS5DT01NRU5UKC9cKFwqLywvXCpcKS8pLG49e2NsYXNzTmFtZToiYXR0cmlidXRlIixiZWdpbjovXlsgXSpbYS16QS1aXSsoW1xzXy1dK1thLXpBLVpdKykqL30saT17YmVnaW46Lz0vLGVuZDovWy47XS8sY29udGFpbnM6W3Qse2NsYXNzTmFtZToibWV0YSIsYmVnaW46L1w/LipcPy99LHtjbGFzc05hbWU6InN0cmluZyIsdmFyaWFudHM6W2UuQVBPU19TVFJJTkdfTU9ERSxlLlFVT1RFX1NUUklOR19NT0RFLHtiZWdpbjoiYCIsZW5kOiJgIn1dfV19O3JldHVybntuYW1lOiJFeHRlbmRlZCBCYWNrdXMtTmF1ciBGb3JtIixpbGxlZ2FsOi9cUy8sY29udGFpbnM6W3QsbixpXX19cy5leHBvcnRzPXJ9LDMxMDE6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihlKXtjb25zdCB0PSJbYS16QS1aX11bYS16QS1aMC05Xy5dKighfFxcPyk/IixuPSJbYS16QS1aX11cXHcqWyE/PV0/fFstK35dQHw8PHw+Pnw9fnw9PT0/fDw9PnxbPD5dPT98XFwqXFwqfFstLyslXiYqfmB8XXxcXFtcXF09PyIsYT17JHBhdHRlcm46dCxrZXl3b3JkOiJhbmQgZmFsc2UgdGhlbiBkZWZpbmVkIG1vZHVsZSBpbiByZXR1cm4gcmVkbyByZXRyeSBlbmQgZm9yIHRydWUgc2VsZiB3aGVuIG5leHQgdW50aWwgZG8gYmVnaW4gdW5sZXNzIG5pbCBicmVhayBub3QgY2FzZSBjb25kIGFsaWFzIHdoaWxlIGVuc3VyZSBvciBpbmNsdWRlIHVzZSBhbGlhcyBmbiBxdW90ZSByZXF1aXJlIGltcG9ydCB3aXRofDAifSxpPXtjbGFzc05hbWU6InN1YnN0IixiZWdpbjovI1x7LyxlbmQ6L1x9LyxrZXl3b3JkczphfSxvPXtjbGFzc05hbWU6Im51bWJlciIsYmVnaW46IihcXGIwb1swLTdfXSspfChcXGIwYlswMV9dKyl8KFxcYjB4WzAtOWEtZkEtRl9dKyl8KC0/XFxiWzEtOV1bMC05X10qKFxcLlswLTlfXSsoW2VFXVstK10/WzAtOV0rKT8pPykiLHJlbGV2YW5jZTowfSxsPWBbL3woW3s8IiddYCxjPXtjbGFzc05hbWU6InN0cmluZyIsYmVnaW46In5bYS16XSg/PSIrbCsiKSIsY29udGFpbnM6W3tlbmRzUGFyZW50OiEwLGNvbnRhaW5zOlt7Y29udGFpbnM6W2UuQkFDS1NMQVNIX0VTQ0FQRSxpXSx2YXJpYW50czpbe2JlZ2luOi8iLyxlbmQ6LyIvfSx7YmVnaW46LycvLGVuZDovJy99LHtiZWdpbjovXC8vLGVuZDovXC8vfSx7YmVnaW46L1x8LyxlbmQ6L1x8L30se2JlZ2luOi9cKC8sZW5kOi9cKS99LHtiZWdpbjovXFsvLGVuZDovXF0vfSx7YmVnaW46L1x7LyxlbmQ6L1x9L30se2JlZ2luOi88LyxlbmQ6Lz4vfV19XX1dfSxfPXtjbGFzc05hbWU6InN0cmluZyIsYmVnaW46In5bQS1aXSg/PSIrbCsiKSIsY29udGFpbnM6W3tiZWdpbjovIi8sZW5kOi8iL30se2JlZ2luOi8nLyxlbmQ6LycvfSx7YmVnaW46L1wvLyxlbmQ6L1wvL30se2JlZ2luOi9cfC8sZW5kOi9cfC99LHtiZWdpbjovXCgvLGVuZDovXCkvfSx7YmVnaW46L1xbLyxlbmQ6L1xdL30se2JlZ2luOi9cey8sZW5kOi9cfS99LHtiZWdpbjovPC8sZW5kOi8+L31dfSxkPXtjbGFzc05hbWU6InN0cmluZyIsY29udGFpbnM6W2UuQkFDS1NMQVNIX0VTQ0FQRSxpXSx2YXJpYW50czpbe2JlZ2luOi8iIiIvLGVuZDovIiIiL30se2JlZ2luOi8nJycvLGVuZDovJycnL30se2JlZ2luOi9+UyIiIi8sZW5kOi8iIiIvLGNvbnRhaW5zOltdfSx7YmVnaW46L35TIi8sZW5kOi8iLyxjb250YWluczpbXX0se2JlZ2luOi9+UycnJy8sZW5kOi8nJycvLGNvbnRhaW5zOltdfSx7YmVnaW46L35TJy8sZW5kOi8nLyxjb250YWluczpbXX0se2JlZ2luOi8nLyxlbmQ6LycvfSx7YmVnaW46LyIvLGVuZDovIi99XX0sZz17Y2xhc3NOYW1lOiJmdW5jdGlvbiIsYmVnaW5LZXl3b3JkczoiZGVmIGRlZnAgZGVmbWFjcm8iLGVuZDovXEJcYi8sY29udGFpbnM6W2UuaW5oZXJpdChlLlRJVExFX01PREUse2JlZ2luOnQsZW5kc1BhcmVudDohMH0pXX0sRT1lLmluaGVyaXQoZyx7Y2xhc3NOYW1lOiJjbGFzcyIsYmVnaW5LZXl3b3JkczoiZGVmaW1wbCBkZWZtb2R1bGUgZGVmcHJvdG9jb2wgZGVmcmVjb3JkIixlbmQ6L1xiZG9cYnwkfDsvfSksdT1bZCxfLGMsZS5IQVNIX0NPTU1FTlRfTU9ERSxFLGcse2JlZ2luOiI6OiJ9LHtjbGFzc05hbWU6InN5bWJvbCIsYmVnaW46IjooPyFbXFxzOl0pIixjb250YWluczpbZCx7YmVnaW46bn1dLHJlbGV2YW5jZTowfSx7Y2xhc3NOYW1lOiJzeW1ib2wiLGJlZ2luOnQrIjooPyE6KSIscmVsZXZhbmNlOjB9LG8se2NsYXNzTmFtZToidmFyaWFibGUiLGJlZ2luOiIoXFwkXFxXKXwoKFxcJHxAQD8pKFxcdyspKSJ9LHtiZWdpbjoiLT4ifSx7YmVnaW46IigiK2UuUkVfU1RBUlRFUlNfUkUrIilcXHMqIixjb250YWluczpbZS5IQVNIX0NPTU1FTlRfTU9ERSx7YmVnaW46L1wvOiAoPz1cZCtccypbLFxdXSkvLHJlbGV2YW5jZTowLGNvbnRhaW5zOltvXX0se2NsYXNzTmFtZToicmVnZXhwIixpbGxlZ2FsOiJcXG4iLGNvbnRhaW5zOltlLkJBQ0tTTEFTSF9FU0NBUEUsaV0sdmFyaWFudHM6W3tiZWdpbjoiLyIsZW5kOiIvW2Etel0qIn0se2JlZ2luOiIlclxcWyIsZW5kOiJcXF1bYS16XSoifV19XSxyZWxldmFuY2U6MH1dO3JldHVybiBpLmNvbnRhaW5zPXUse25hbWU6IkVsaXhpciIsa2V5d29yZHM6YSxjb250YWluczp1fX1zLmV4cG9ydHM9cn0sMTQ2ODg6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihlKXtjb25zdCB0PXt2YXJpYW50czpbZS5DT01NRU5UKCItLSIsIiQiKSxlLkNPTU1FTlQoL1x7LS8sLy1cfS8se2NvbnRhaW5zOlsic2VsZiJdfSldfSxuPXtjbGFzc05hbWU6InR5cGUiLGJlZ2luOiJcXGJbQS1aXVtcXHcnXSoiLHJlbGV2YW5jZTowfSxhPXtiZWdpbjoiXFwoIixlbmQ6IlxcKSIsaWxsZWdhbDonIicsY29udGFpbnM6W3tjbGFzc05hbWU6InR5cGUiLGJlZ2luOiJcXGJbQS1aXVtcXHddKihcXCgoXFwuXFwufCx8XFx3KylcXCkpPyJ9LHRdfSxpPXtiZWdpbjovXHsvLGVuZDovXH0vLGNvbnRhaW5zOmEuY29udGFpbnN9LG89e2NsYXNzTmFtZToic3RyaW5nIixiZWdpbjoiJ1xcXFw/LiIsZW5kOiInIixpbGxlZ2FsOiIuIn07cmV0dXJue25hbWU6IkVsbSIsa2V5d29yZHM6ImxldCBpbiBpZiB0aGVuIGVsc2UgY2FzZSBvZiB3aGVyZSBtb2R1bGUgaW1wb3J0IGV4cG9zaW5nIHR5cGUgYWxpYXMgYXMgaW5maXggaW5maXhsIGluZml4ciBwb3J0IGVmZmVjdCBjb21tYW5kIHN1YnNjcmlwdGlvbiIsY29udGFpbnM6W3tiZWdpbktleXdvcmRzOiJwb3J0IGVmZmVjdCBtb2R1bGUiLGVuZDoiZXhwb3NpbmciLGtleXdvcmRzOiJwb3J0IGVmZmVjdCBtb2R1bGUgd2hlcmUgY29tbWFuZCBzdWJzY3JpcHRpb24gZXhwb3NpbmciLGNvbnRhaW5zOlthLHRdLGlsbGVnYWw6IlxcV1xcLnw7In0se2JlZ2luOiJpbXBvcnQiLGVuZDoiJCIsa2V5d29yZHM6ImltcG9ydCBhcyBleHBvc2luZyIsY29udGFpbnM6W2EsdF0saWxsZWdhbDoiXFxXXFwufDsifSx7YmVnaW46InR5cGUiLGVuZDoiJCIsa2V5d29yZHM6InR5cGUgYWxpYXMiLGNvbnRhaW5zOltuLGEsaSx0XX0se2JlZ2luS2V5d29yZHM6ImluZml4IGluZml4bCBpbmZpeHIiLGVuZDoiJCIsY29udGFpbnM6W2UuQ19OVU1CRVJfTU9ERSx0XX0se2JlZ2luOiJwb3J0IixlbmQ6IiQiLGtleXdvcmRzOiJwb3J0Iixjb250YWluczpbdF19LG8sZS5RVU9URV9TVFJJTkdfTU9ERSxlLkNfTlVNQkVSX01PREUsbixlLmluaGVyaXQoZS5USVRMRV9NT0RFLHtiZWdpbjoiXltfYS16XVtcXHcnXSoifSksdCx7YmVnaW46Ii0+fDwtIn1dLGlsbGVnYWw6LzsvfX1zLmV4cG9ydHM9cn0sNTk0Njc6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihlKXtyZXR1cm57bmFtZToiRVJCIixzdWJMYW5ndWFnZToieG1sIixjb250YWluczpbZS5DT01NRU5UKCI8JSMiLCIlPiIpLHtiZWdpbjoiPCVbJT0tXT8iLGVuZDoiWyUtXT8lPiIsc3ViTGFuZ3VhZ2U6InJ1YnkiLGV4Y2x1ZGVCZWdpbjohMCxleGNsdWRlRW5kOiEwfV19fXMuZXhwb3J0cz1yfSw3NjE4NTpmdW5jdGlvbihzKXtmdW5jdGlvbiByKG4pe3JldHVybiBuP3R5cGVvZiBuPT0ic3RyaW5nIj9uOm4uc291cmNlOm51bGx9ZnVuY3Rpb24gZSguLi5uKXtyZXR1cm4gbi5tYXAoaT0+cihpKSkuam9pbigiIil9ZnVuY3Rpb24gdChuKXtyZXR1cm57bmFtZToiRXJsYW5nIFJFUEwiLGtleXdvcmRzOntidWlsdF9pbjoic3Bhd24gc3Bhd25fbGluayBzZWxmIixrZXl3b3JkOiJhZnRlciBhbmQgYW5kYWxzb3wxMCBiYW5kIGJlZ2luIGJub3QgYm9yIGJzbCBic3IgYnhvciBjYXNlIGNhdGNoIGNvbmQgZGl2IGVuZCBmdW4gaWYgbGV0IG5vdCBvZiBvciBvcmVsc2V8MTAgcXVlcnkgcmVjZWl2ZSByZW0gdHJ5IHdoZW4geG9yIn0sY29udGFpbnM6W3tjbGFzc05hbWU6Im1ldGEiLGJlZ2luOiJeWzAtOV0rPiAiLHJlbGV2YW5jZToxMH0sbi5DT01NRU5UKCIlIiwiJCIpLHtjbGFzc05hbWU6Im51bWJlciIsYmVnaW46IlxcYihcXGQrKF9cXGQrKSojW2EtZkEtRjAtOV0rKF9bYS1mQS1GMC05XSspKnxcXGQrKF9cXGQrKSooXFwuXFxkKyhfXFxkKykqKT8oW2VFXVstK10/XFxkKyk/KSIscmVsZXZhbmNlOjB9LG4uQVBPU19TVFJJTkdfTU9ERSxuLlFVT1RFX1NUUklOR19NT0RFLHtiZWdpbjplKC9cPyg6Oik/LywvKFtBLVpdXHcqKS8sLygoOjopW0EtWl1cdyopKi8pfSx7YmVnaW46Ii0+In0se2JlZ2luOiJvayJ9LHtiZWdpbjoiISJ9LHtiZWdpbjoiKFxcYlthLXonXVthLXpBLVowLTlfJ10qOlthLXonXVthLXpBLVowLTlfJ10qKXwoXFxiW2EteiddW2EtekEtWjAtOV8nXSopIixyZWxldmFuY2U6MH0se2JlZ2luOiJbQS1aXVthLXpBLVowLTlfJ10qIixyZWxldmFuY2U6MH1dfX1zLmV4cG9ydHM9dH0sMTEwOTpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGUpe2NvbnN0IHQ9IlthLXonXVthLXpBLVowLTlfJ10qIixuPSIoIit0KyI6Iit0KyJ8Iit0KyIpIixhPXtrZXl3b3JkOiJhZnRlciBhbmQgYW5kYWxzb3wxMCBiYW5kIGJlZ2luIGJub3QgYm9yIGJzbCBienIgYnhvciBjYXNlIGNhdGNoIGNvbmQgZGl2IGVuZCBmdW4gaWYgbGV0IG5vdCBvZiBvcmVsc2V8MTAgcXVlcnkgcmVjZWl2ZSByZW0gdHJ5IHdoZW4geG9yIixsaXRlcmFsOiJmYWxzZSB0cnVlIn0saT1lLkNPTU1FTlQoIiUiLCIkIiksbz17Y2xhc3NOYW1lOiJudW1iZXIiLGJlZ2luOiJcXGIoXFxkKyhfXFxkKykqI1thLWZBLUYwLTldKyhfW2EtZkEtRjAtOV0rKSp8XFxkKyhfXFxkKykqKFxcLlxcZCsoX1xcZCspKik/KFtlRV1bLStdP1xcZCspPykiLHJlbGV2YW5jZTowfSxsPXtiZWdpbjoiZnVuXFxzKyIrdCsiL1xcZCsifSxjPXtiZWdpbjpuKyJcXCgiLGVuZDoiXFwpIixyZXR1cm5CZWdpbjohMCxyZWxldmFuY2U6MCxjb250YWluczpbe2JlZ2luOm4scmVsZXZhbmNlOjB9LHtiZWdpbjoiXFwoIixlbmQ6IlxcKSIsZW5kc1dpdGhQYXJlbnQ6ITAscmV0dXJuRW5kOiEwLHJlbGV2YW5jZTowfV19LF89e2JlZ2luOi9cey8sZW5kOi9cfS8scmVsZXZhbmNlOjB9LGQ9e2JlZ2luOiJcXGJfKFtBLVpdW0EtWmEtejAtOV9dKik/IixyZWxldmFuY2U6MH0sZz17YmVnaW46IltBLVpdW2EtekEtWjAtOV9dKiIscmVsZXZhbmNlOjB9LEU9e2JlZ2luOiIjIitlLlVOREVSU0NPUkVfSURFTlRfUkUscmVsZXZhbmNlOjAscmV0dXJuQmVnaW46ITAsY29udGFpbnM6W3tiZWdpbjoiIyIrZS5VTkRFUlNDT1JFX0lERU5UX1JFLHJlbGV2YW5jZTowfSx7YmVnaW46L1x7LyxlbmQ6L1x9LyxyZWxldmFuY2U6MH1dfSx1PXtiZWdpbktleXdvcmRzOiJmdW4gcmVjZWl2ZSBpZiB0cnkgY2FzZSIsZW5kOiJlbmQiLGtleXdvcmRzOmF9O3UuY29udGFpbnM9W2ksbCxlLmluaGVyaXQoZS5BUE9TX1NUUklOR19NT0RFLHtjbGFzc05hbWU6IiJ9KSx1LGMsZS5RVU9URV9TVFJJTkdfTU9ERSxvLF8sZCxnLEVdO2NvbnN0IG09W2ksbCx1LGMsZS5RVU9URV9TVFJJTkdfTU9ERSxvLF8sZCxnLEVdO2MuY29udGFpbnNbMV0uY29udGFpbnM9bSxfLmNvbnRhaW5zPW0sRS5jb250YWluc1sxXS5jb250YWlucz1tO2NvbnN0IFM9WyItbW9kdWxlIiwiLXJlY29yZCIsIi11bmRlZiIsIi1leHBvcnQiLCItaWZkZWYiLCItaWZuZGVmIiwiLWF1dGhvciIsIi1jb3B5cmlnaHQiLCItZG9jIiwiLXZzbiIsIi1pbXBvcnQiLCItaW5jbHVkZSIsIi1pbmNsdWRlX2xpYiIsIi1jb21waWxlIiwiLWRlZmluZSIsIi1lbHNlIiwiLWVuZGlmIiwiLWZpbGUiLCItYmVoYXZpb3VyIiwiLWJlaGF2aW9yIiwiLXNwZWMiXSxUPXtjbGFzc05hbWU6InBhcmFtcyIsYmVnaW46IlxcKCIsZW5kOiJcXCkiLGNvbnRhaW5zOm19O3JldHVybntuYW1lOiJFcmxhbmciLGFsaWFzZXM6WyJlcmwiXSxrZXl3b3JkczphLGlsbGVnYWw6Iig8L3xcXCo9fFxcKz18LT18L1xcKnxcXCovfFxcKFxcKnxcXCpcXCkpIixjb250YWluczpbe2NsYXNzTmFtZToiZnVuY3Rpb24iLGJlZ2luOiJeIit0KyJcXHMqXFwoIixlbmQ6Ii0+IixyZXR1cm5CZWdpbjohMCxpbGxlZ2FsOiJcXCh8I3wvL3wvXFwqfFxcXFx8Onw7Iixjb250YWluczpbVCxlLmluaGVyaXQoZS5USVRMRV9NT0RFLHtiZWdpbjp0fSldLHN0YXJ0czp7ZW5kOiI7fFxcLiIsa2V5d29yZHM6YSxjb250YWluczptfX0saSx7YmVnaW46Il4tIixlbmQ6IlxcLiIscmVsZXZhbmNlOjAsZXhjbHVkZUVuZDohMCxyZXR1cm5CZWdpbjohMCxrZXl3b3Jkczp7JHBhdHRlcm46Ii0iK2UuSURFTlRfUkUsa2V5d29yZDpTLm1hcChiPT5gJHtifXwxLjVgKS5qb2luKCIgIil9LGNvbnRhaW5zOltUXX0sbyxlLlFVT1RFX1NUUklOR19NT0RFLEUsZCxnLF8se2JlZ2luOi9cLiQvfV19fXMuZXhwb3J0cz1yfSw2NTEwOTpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGUpe3JldHVybntuYW1lOiJFeGNlbCBmb3JtdWxhZSIsYWxpYXNlczpbInhsc3giLCJ4bHMiXSxjYXNlX2luc2Vuc2l0aXZlOiEwLGtleXdvcmRzOnskcGF0dGVybjovW2EtekEtWl1bXHdcLl0qLyxidWlsdF9pbjoiQUJTIEFDQ1JJTlQgQUNDUklOVE0gQUNPUyBBQ09TSCBBQ09UIEFDT1RIIEFHR1JFR0FURSBBRERSRVNTIEFNT1JERUdSQyBBTU9STElOQyBBTkQgQVJBQklDIEFSRUFTIEFTQyBBU0lOIEFTSU5IIEFUQU4gQVRBTjIgQVRBTkggQVZFREVWIEFWRVJBR0UgQVZFUkFHRUEgQVZFUkFHRUlGIEFWRVJBR0VJRlMgQkFIVFRFWFQgQkFTRSBCRVNTRUxJIEJFU1NFTEogQkVTU0VMSyBCRVNTRUxZIEJFVEFESVNUIEJFVEEuRElTVCBCRVRBSU5WIEJFVEEuSU5WIEJJTjJERUMgQklOMkhFWCBCSU4yT0NUIEJJTk9NRElTVCBCSU5PTS5ESVNUIEJJTk9NLkRJU1QuUkFOR0UgQklOT00uSU5WIEJJVEFORCBCSVRMU0hJRlQgQklUT1IgQklUUlNISUZUIEJJVFhPUiBDQUxMIENFSUxJTkcgQ0VJTElORy5NQVRIIENFSUxJTkcuUFJFQ0lTRSBDRUxMIENIQVIgQ0hJRElTVCBDSElJTlYgQ0hJVEVTVCBDSElTUS5ESVNUIENISVNRLkRJU1QuUlQgQ0hJU1EuSU5WIENISVNRLklOVi5SVCBDSElTUS5URVNUIENIT09TRSBDTEVBTiBDT0RFIENPTFVNTiBDT0xVTU5TIENPTUJJTiBDT01CSU5BIENPTVBMRVggQ09OQ0FUIENPTkNBVEVOQVRFIENPTkZJREVOQ0UgQ09ORklERU5DRS5OT1JNIENPTkZJREVOQ0UuVCBDT05WRVJUIENPUlJFTCBDT1MgQ09TSCBDT1QgQ09USCBDT1VOVCBDT1VOVEEgQ09VTlRCTEFOSyBDT1VOVElGIENPVU5USUZTIENPVVBEQVlCUyBDT1VQREFZUyBDT1VQREFZU05DIENPVVBOQ0QgQ09VUE5VTSBDT1VQUENEIENPVkFSIENPVkFSSUFOQ0UuUCBDT1ZBUklBTkNFLlMgQ1JJVEJJTk9NIENTQyBDU0NIIENVQkVLUElNRU1CRVIgQ1VCRU1FTUJFUiBDVUJFTUVNQkVSUFJPUEVSVFkgQ1VCRVJBTktFRE1FTUJFUiBDVUJFU0VUIENVQkVTRVRDT1VOVCBDVUJFVkFMVUUgQ1VNSVBNVCBDVU1QUklOQyBEQVRFIERBVEVESUYgREFURVZBTFVFIERBVkVSQUdFIERBWSBEQVlTIERBWVMzNjAgREIgREJDUyBEQ09VTlQgRENPVU5UQSBEREIgREVDMkJJTiBERUMySEVYIERFQzJPQ1QgREVDSU1BTCBERUdSRUVTIERFTFRBIERFVlNRIERHRVQgRElTQyBETUFYIERNSU4gRE9MTEFSIERPTExBUkRFIERPTExBUkZSIERQUk9EVUNUIERTVERFViBEU1RERVZQIERTVU0gRFVSQVRJT04gRFZBUiBEVkFSUCBFREFURSBFRkZFQ1QgRU5DT0RFVVJMIEVPTU9OVEggRVJGIEVSRi5QUkVDSVNFIEVSRkMgRVJGQy5QUkVDSVNFIEVSUk9SLlRZUEUgRVVST0NPTlZFUlQgRVZFTiBFWEFDVCBFWFAgRVhQT04uRElTVCBFWFBPTkRJU1QgRkFDVCBGQUNURE9VQkxFIEZBTFNFfDAgRi5ESVNUIEZESVNUIEYuRElTVC5SVCBGSUxURVJYTUwgRklORCBGSU5EQiBGLklOViBGLklOVi5SVCBGSU5WIEZJU0hFUiBGSVNIRVJJTlYgRklYRUQgRkxPT1IgRkxPT1IuTUFUSCBGTE9PUi5QUkVDSVNFIEZPUkVDQVNUIEZPUkVDQVNULkVUUyBGT1JFQ0FTVC5FVFMuQ09ORklOVCBGT1JFQ0FTVC5FVFMuU0VBU09OQUxJVFkgRk9SRUNBU1QuRVRTLlNUQVQgRk9SRUNBU1QuTElORUFSIEZPUk1VTEFURVhUIEZSRVFVRU5DWSBGLlRFU1QgRlRFU1QgRlYgRlZTQ0hFRFVMRSBHQU1NQSBHQU1NQS5ESVNUIEdBTU1BRElTVCBHQU1NQS5JTlYgR0FNTUFJTlYgR0FNTUFMTiBHQU1NQUxOLlBSRUNJU0UgR0FVU1MgR0NEIEdFT01FQU4gR0VTVEVQIEdFVFBJVk9UREFUQSBHUk9XVEggSEFSTUVBTiBIRVgyQklOIEhFWDJERUMgSEVYMk9DVCBITE9PS1VQIEhPVVIgSFlQRVJMSU5LIEhZUEdFT00uRElTVCBIWVBHRU9NRElTVCBJRiBJRkVSUk9SIElGTkEgSUZTIElNQUJTIElNQUdJTkFSWSBJTUFSR1VNRU5UIElNQ09OSlVHQVRFIElNQ09TIElNQ09TSCBJTUNPVCBJTUNTQyBJTUNTQ0ggSU1ESVYgSU1FWFAgSU1MTiBJTUxPRzEwIElNTE9HMiBJTVBPV0VSIElNUFJPRFVDVCBJTVJFQUwgSU1TRUMgSU1TRUNIIElNU0lOIElNU0lOSCBJTVNRUlQgSU1TVUIgSU1TVU0gSU1UQU4gSU5ERVggSU5ESVJFQ1QgSU5GTyBJTlQgSU5URVJDRVBUIElOVFJBVEUgSVBNVCBJUlIgSVNCTEFOSyBJU0VSUiBJU0VSUk9SIElTRVZFTiBJU0ZPUk1VTEEgSVNMT0dJQ0FMIElTTkEgSVNOT05URVhUIElTTlVNQkVSIElTT0REIElTUkVGIElTVEVYVCBJU08uQ0VJTElORyBJU09XRUVLTlVNIElTUE1UIEpJUyBLVVJUIExBUkdFIExDTSBMRUZUIExFRlRCIExFTiBMRU5CIExJTkVTVCBMTiBMT0cgTE9HMTAgTE9HRVNUIExPR0lOViBMT0dOT1JNLkRJU1QgTE9HTk9STURJU1QgTE9HTk9STS5JTlYgTE9PS1VQIExPV0VSIE1BVENIIE1BWCBNQVhBIE1BWElGUyBNREVURVJNIE1EVVJBVElPTiBNRURJQU4gTUlEIE1JREJzIE1JTiBNSU5JRlMgTUlOQSBNSU5VVEUgTUlOVkVSU0UgTUlSUiBNTVVMVCBNT0QgTU9ERSBNT0RFLk1VTFQgTU9ERS5TTkdMIE1PTlRIIE1ST1VORCBNVUxUSU5PTUlBTCBNVU5JVCBOIE5BIE5FR0JJTk9NLkRJU1QgTkVHQklOT01ESVNUIE5FVFdPUktEQVlTIE5FVFdPUktEQVlTLklOVEwgTk9NSU5BTCBOT1JNLkRJU1QgTk9STURJU1QgTk9STUlOViBOT1JNLklOViBOT1JNLlMuRElTVCBOT1JNU0RJU1QgTk9STS5TLklOViBOT1JNU0lOViBOT1QgTk9XIE5QRVIgTlBWIE5VTUJFUlZBTFVFIE9DVDJCSU4gT0NUMkRFQyBPQ1QySEVYIE9ERCBPRERGUFJJQ0UgT0RERllJRUxEIE9ERExQUklDRSBPRERMWUlFTEQgT0ZGU0VUIE9SIFBEVVJBVElPTiBQRUFSU09OIFBFUkNFTlRJTEUuRVhDIFBFUkNFTlRJTEUuSU5DIFBFUkNFTlRJTEUgUEVSQ0VOVFJBTksuRVhDIFBFUkNFTlRSQU5LLklOQyBQRVJDRU5UUkFOSyBQRVJNVVQgUEVSTVVUQVRJT05BIFBISSBQSE9ORVRJQyBQSSBQTVQgUE9JU1NPTi5ESVNUIFBPSVNTT04gUE9XRVIgUFBNVCBQUklDRSBQUklDRURJU0MgUFJJQ0VNQVQgUFJPQiBQUk9EVUNUIFBST1BFUiBQViBRVUFSVElMRSBRVUFSVElMRS5FWEMgUVVBUlRJTEUuSU5DIFFVT1RJRU5UIFJBRElBTlMgUkFORCBSQU5EQkVUV0VFTiBSQU5LLkFWRyBSQU5LLkVRIFJBTksgUkFURSBSRUNFSVZFRCBSRUdJU1RFUi5JRCBSRVBMQUNFIFJFUExBQ0VCIFJFUFQgUklHSFQgUklHSFRCIFJPTUFOIFJPVU5EIFJPVU5ERE9XTiBST1VORFVQIFJPVyBST1dTIFJSSSBSU1EgUlREIFNFQVJDSCBTRUFSQ0hCIFNFQyBTRUNIIFNFQ09ORCBTRVJJRVNTVU0gU0hFRVQgU0hFRVRTIFNJR04gU0lOIFNJTkggU0tFVyBTS0VXLlAgU0xOIFNMT1BFIFNNQUxMIFNRTC5SRVFVRVNUIFNRUlQgU1FSVFBJIFNUQU5EQVJESVpFIFNUREVWIFNUREVWLlAgU1RERVYuUyBTVERFVkEgU1RERVZQIFNUREVWUEEgU1RFWVggU1VCU1RJVFVURSBTVUJUT1RBTCBTVU0gU1VNSUYgU1VNSUZTIFNVTVBST0RVQ1QgU1VNU1EgU1VNWDJNWTIgU1VNWDJQWTIgU1VNWE1ZMiBTV0lUQ0ggU1lEIFQgVEFOIFRBTkggVEJJTExFUSBUQklMTFBSSUNFIFRCSUxMWUlFTEQgVC5ESVNUIFQuRElTVC4yVCBULkRJU1QuUlQgVERJU1QgVEVYVCBURVhUSk9JTiBUSU1FIFRJTUVWQUxVRSBULklOViBULklOVi4yVCBUSU5WIFRPREFZIFRSQU5TUE9TRSBUUkVORCBUUklNIFRSSU1NRUFOIFRSVUV8MCBUUlVOQyBULlRFU1QgVFRFU1QgVFlQRSBVTklDSEFSIFVOSUNPREUgVVBQRVIgVkFMVUUgVkFSIFZBUi5QIFZBUi5TIFZBUkEgVkFSUCBWQVJQQSBWREIgVkxPT0tVUCBXRUJTRVJWSUNFIFdFRUtEQVkgV0VFS05VTSBXRUlCVUxMIFdFSUJVTEwuRElTVCBXT1JLREFZIFdPUktEQVkuSU5UTCBYSVJSIFhOUFYgWE9SIFlFQVIgWUVBUkZSQUMgWUlFTEQgWUlFTERESVNDIFlJRUxETUFUIFouVEVTVCBaVEVTVCJ9LGNvbnRhaW5zOlt7YmVnaW46L149LyxlbmQ6L1tePV0vLHJldHVybkVuZDohMCxpbGxlZ2FsOi89LyxyZWxldmFuY2U6MTB9LHtjbGFzc05hbWU6InN5bWJvbCIsYmVnaW46L1xiW0EtWl17MSwyfVxkK1xiLyxlbmQ6L1teXGRdLyxleGNsdWRlRW5kOiEwLHJlbGV2YW5jZTowfSx7Y2xhc3NOYW1lOiJzeW1ib2wiLGJlZ2luOi9bQS1aXXswLDJ9XGQqOltBLVpdezAsMn1cZCovLHJlbGV2YW5jZTowfSxlLkJBQ0tTTEFTSF9FU0NBUEUsZS5RVU9URV9TVFJJTkdfTU9ERSx7Y2xhc3NOYW1lOiJudW1iZXIiLGJlZ2luOmUuTlVNQkVSX1JFKyIoJSk/IixyZWxldmFuY2U6MH0sZS5DT01NRU5UKC9cYk5cKC8sL1wpLyx7ZXhjbHVkZUJlZ2luOiEwLGV4Y2x1ZGVFbmQ6ITAsaWxsZWdhbDovXG4vfSldfX1zLmV4cG9ydHM9cn0sMTY2MDA6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihlKXtyZXR1cm57bmFtZToiRklYIixjb250YWluczpbe2JlZ2luOi9bXlx1MjQwMVx1MDAwMV0rLyxlbmQ6L1tcdTI0MDFcdTAwMDFdLyxleGNsdWRlRW5kOiEwLHJldHVybkJlZ2luOiEwLHJldHVybkVuZDohMSxjb250YWluczpbe2JlZ2luOi8oW15cdTI0MDFcdTAwMDE9XSspLyxlbmQ6Lz0oW15cdTI0MDFcdTAwMDE9XSspLyxyZXR1cm5FbmQ6ITAscmV0dXJuQmVnaW46ITEsY2xhc3NOYW1lOiJhdHRyIn0se2JlZ2luOi89LyxlbmQ6LyhbXHUyNDAxXHUwMDAxXSkvLGV4Y2x1ZGVFbmQ6ITAsZXhjbHVkZUJlZ2luOiEwLGNsYXNzTmFtZToic3RyaW5nIn1dfV0sY2FzZV9pbnNlbnNpdGl2ZTohMH19cy5leHBvcnRzPXJ9LDY5NzE3OmZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHIoZSl7Y29uc3QgdD17Y2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOi8nKC58XFxbeFh1VV1bYS16QS1aMC05XSspJy99LG49e2NsYXNzTmFtZToic3RyaW5nIix2YXJpYW50czpbe2JlZ2luOiciJyxlbmQ6JyInfV19LGk9e2NsYXNzTmFtZToiZnVuY3Rpb24iLGJlZ2luS2V5d29yZHM6ImRlZiIsZW5kOi9bOj17XFsoXG47XS8sZXhjbHVkZUVuZDohMCxjb250YWluczpbe2NsYXNzTmFtZToidGl0bGUiLHJlbGV2YW5jZTowLGJlZ2luOi9bXjAtOVxuXHQgIicoKSwuYHt9XFtcXTo7XVteXG5cdCAiJygpLC5ge31cW1xdOjtdK3xbXjAtOVxuXHQgIicoKSwuYHt9XFtcXTo7PV0vfV19O3JldHVybntuYW1lOiJGbGl4IixrZXl3b3Jkczp7bGl0ZXJhbDoidHJ1ZSBmYWxzZSIsa2V5d29yZDoiY2FzZSBjbGFzcyBkZWYgZWxzZSBlbnVtIGlmIGltcGwgaW1wb3J0IGluIGxhdCByZWwgaW5kZXggbGV0IG1hdGNoIG5hbWVzcGFjZSBzd2l0Y2ggdHlwZSB5aWVsZCB3aXRoIn0sY29udGFpbnM6W2UuQ19MSU5FX0NPTU1FTlRfTU9ERSxlLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLHQsbixpLGUuQ19OVU1CRVJfTU9ERV19fXMuZXhwb3J0cz1yfSw5Mzk5NTpmdW5jdGlvbihzKXtmdW5jdGlvbiByKG4pe3JldHVybiBuP3R5cGVvZiBuPT0ic3RyaW5nIj9uOm4uc291cmNlOm51bGx9ZnVuY3Rpb24gZSguLi5uKXtyZXR1cm4gbi5tYXAoaT0+cihpKSkuam9pbigiIil9ZnVuY3Rpb24gdChuKXtjb25zdCBhPXtjbGFzc05hbWU6InBhcmFtcyIsYmVnaW46IlxcKCIsZW5kOiJcXCkifSxpPXt2YXJpYW50czpbbi5DT01NRU5UKCIhIiwiJCIse3JlbGV2YW5jZTowfSksbi5DT01NRU5UKCJeQ1sgXSIsIiQiLHtyZWxldmFuY2U6MH0pLG4uQ09NTUVOVCgiXkMkIiwiJCIse3JlbGV2YW5jZTowfSldfSxvPS8oX1thLXpfXGRdKyk/LyxsPS8oW2RlXVsrLV0/XGQrKT8vLGM9e2NsYXNzTmFtZToibnVtYmVyIix2YXJpYW50czpbe2JlZ2luOmUoL1xiXGQrLywvXC4oXGQqKS8sbCxvKX0se2JlZ2luOmUoL1xiXGQrLyxsLG8pfSx7YmVnaW46ZSgvXC5cZCsvLGwsbyl9XSxyZWxldmFuY2U6MH0sXz17Y2xhc3NOYW1lOiJmdW5jdGlvbiIsYmVnaW5LZXl3b3Jkczoic3Vicm91dGluZSBmdW5jdGlvbiBwcm9ncmFtIixpbGxlZ2FsOiJbJHs9XFxuXSIsY29udGFpbnM6W24uVU5ERVJTQ09SRV9USVRMRV9NT0RFLGFdfSxkPXtjbGFzc05hbWU6InN0cmluZyIscmVsZXZhbmNlOjAsdmFyaWFudHM6W24uQVBPU19TVFJJTkdfTU9ERSxuLlFVT1RFX1NUUklOR19NT0RFXX07cmV0dXJue25hbWU6IkZvcnRyYW4iLGNhc2VfaW5zZW5zaXRpdmU6ITAsYWxpYXNlczpbImY5MCIsImY5NSJdLGtleXdvcmRzOntsaXRlcmFsOiIuRmFsc2UuIC5UcnVlLiIsa2V5d29yZDoia2luZCBkbyBjb25jdXJyZW50IGxvY2FsIHNoYXJlZCB3aGlsZSBwcml2YXRlIGNhbGwgaW50cmluc2ljIHdoZXJlIGVsc2V3aGVyZSB0eXBlIGVuZHR5cGUgZW5kbW9kdWxlIGVuZHNlbGVjdCBlbmRpbnRlcmZhY2UgZW5kIGVuZGRvIGVuZGlmIGlmIGZvcmFsbCBlbmRmb3JhbGwgb25seSBjb250YWlucyBkZWZhdWx0IHJldHVybiBzdG9wIHRoZW4gYmxvY2sgZW5kYmxvY2sgZW5kYXNzb2NpYXRlIHB1YmxpYyBzdWJyb3V0aW5lfDEwIGZ1bmN0aW9uIHByb2dyYW0gLmFuZC4gLm9yLiAubm90LiAubGUuIC5lcS4gLmdlLiAuZ3QuIC5sdC4gZ290byBzYXZlIGVsc2UgdXNlIG1vZHVsZSBzZWxlY3QgY2FzZSBhY2Nlc3MgYmxhbmsgZGlyZWN0IGV4aXN0IGZpbGUgZm10IGZvcm0gZm9ybWF0dGVkIGlvc3RhdCBuYW1lIG5hbWVkIG5leHRyZWMgbnVtYmVyIG9wZW5lZCByZWMgcmVjbCBzZXF1ZW50aWFsIHN0YXR1cyB1bmZvcm1hdHRlZCB1bml0IGNvbnRpbnVlIGZvcm1hdCBwYXVzZSBjeWNsZSBleGl0IGNfbnVsbF9jaGFyIGNfYWxlcnQgY19iYWNrc3BhY2UgY19mb3JtX2ZlZWQgZmx1c2ggd2FpdCBkZWNpbWFsIHJvdW5kIGlvbXNnIHN5bmNocm9ub3VzIG5vcGFzcyBub25fb3ZlcnJpZGFibGUgcGFzcyBwcm90ZWN0ZWQgdm9sYXRpbGUgYWJzdHJhY3QgZXh0ZW5kcyBpbXBvcnQgbm9uX2ludHJpbnNpYyB2YWx1ZSBkZWZlcnJlZCBnZW5lcmljIGZpbmFsIGVudW1lcmF0b3IgY2xhc3MgYXNzb2NpYXRlIGJpbmQgZW51bSBjX2ludCBjX3Nob3J0IGNfbG9uZyBjX2xvbmdfbG9uZyBjX3NpZ25lZF9jaGFyIGNfc2l6ZV90IGNfaW50OF90IGNfaW50MTZfdCBjX2ludDMyX3QgY19pbnQ2NF90IGNfaW50X2xlYXN0OF90IGNfaW50X2xlYXN0MTZfdCBjX2ludF9sZWFzdDMyX3QgY19pbnRfbGVhc3Q2NF90IGNfaW50X2Zhc3Q4X3QgY19pbnRfZmFzdDE2X3QgY19pbnRfZmFzdDMyX3QgY19pbnRfZmFzdDY0X3QgY19pbnRtYXhfdCBDX2ludHB0cl90IGNfZmxvYXQgY19kb3VibGUgY19sb25nX2RvdWJsZSBjX2Zsb2F0X2NvbXBsZXggY19kb3VibGVfY29tcGxleCBjX2xvbmdfZG91YmxlX2NvbXBsZXggY19ib29sIGNfY2hhciBjX251bGxfcHRyIGNfbnVsbF9mdW5wdHIgY19uZXdfbGluZSBjX2NhcnJpYWdlX3JldHVybiBjX2hvcml6b250YWxfdGFiIGNfdmVydGljYWxfdGFiIGlzb19jX2JpbmRpbmcgY19sb2MgY19mdW5sb2MgY19hc3NvY2lhdGVkICBjX2ZfcG9pbnRlciBjX3B0ciBjX2Z1bnB0ciBpc29fZm9ydHJhbl9lbnYgY2hhcmFjdGVyX3N0b3JhZ2Vfc2l6ZSBlcnJvcl91bml0IGZpbGVfc3RvcmFnZV9zaXplIGlucHV0X3VuaXQgaW9zdGF0X2VuZCBpb3N0YXRfZW9yIG51bWVyaWNfc3RvcmFnZV9zaXplIG91dHB1dF91bml0IGNfZl9wcm9jcG9pbnRlciBpZWVlX2FyaXRobWV0aWMgaWVlZV9zdXBwb3J0X3VuZGVyZmxvd19jb250cm9sIGllZWVfZ2V0X3VuZGVyZmxvd19tb2RlIGllZWVfc2V0X3VuZGVyZmxvd19tb2RlIG5ld3VuaXQgY29udGlndW91cyByZWN1cnNpdmUgcGFkIHBvc2l0aW9uIGFjdGlvbiBkZWxpbSByZWFkd3JpdGUgZW9yIGFkdmFuY2Ugbm1sIGludGVyZmFjZSBwcm9jZWR1cmUgbmFtZWxpc3QgaW5jbHVkZSBzZXF1ZW5jZSBlbGVtZW50YWwgcHVyZSBpbXB1cmUgaW50ZWdlciByZWFsIGNoYXJhY3RlciBjb21wbGV4IGxvZ2ljYWwgY29kaW1lbnNpb24gZGltZW5zaW9uIGFsbG9jYXRhYmxlfDEwIHBhcmFtZXRlciBleHRlcm5hbCBpbXBsaWNpdHwxMCBub25lIGRvdWJsZSBwcmVjaXNpb24gYXNzaWduIGludGVudCBvcHRpb25hbCBwb2ludGVyIHRhcmdldCBpbiBvdXQgY29tbW9uIGVxdWl2YWxlbmNlIGRhdGEiLGJ1aWx0X2luOiJhbG9nIGFsb2cxMCBhbWF4MCBhbWF4MSBhbWluMCBhbWluMSBhbW9kIGNhYnMgY2NvcyBjZXhwIGNsb2cgY3NpbiBjc3FydCBkYWJzIGRhY29zIGRhc2luIGRhdGFuIGRhdGFuMiBkY29zIGRjb3NoIGRkaW0gZGV4cCBkaW50IGRsb2cgZGxvZzEwIGRtYXgxIGRtaW4xIGRtb2QgZG5pbnQgZHNpZ24gZHNpbiBkc2luaCBkc3FydCBkdGFuIGR0YW5oIGZsb2F0IGlhYnMgaWRpbSBpZGludCBpZG5pbnQgaWZpeCBpc2lnbiBtYXgwIG1heDEgbWluMCBtaW4xIHNuZ2wgYWxnYW1hIGNkYWJzIGNkY29zIGNkZXhwIGNkbG9nIGNkc2luIGNkc3FydCBjcWFicyBjcWNvcyBjcWV4cCBjcWxvZyBjcXNpbiBjcXNxcnQgZGNtcGx4IGRjb25qZyBkZXJmIGRlcmZjIGRmbG9hdCBkZ2FtbWEgZGltYWcgZGxnYW1hIGlxaW50IHFhYnMgcWFjb3MgcWFzaW4gcWF0YW4gcWF0YW4yIHFjbXBseCBxY29uamcgcWNvcyBxY29zaCBxZGltIHFlcmYgcWVyZmMgcWV4cCBxZ2FtbWEgcWltYWcgcWxnYW1hIHFsb2cgcWxvZzEwIHFtYXgxIHFtaW4xIHFtb2QgcW5pbnQgcXNpZ24gcXNpbiBxc2luaCBxc3FydCBxdGFuIHF0YW5oIGFicyBhY29zIGFpbWFnIGFpbnQgYW5pbnQgYXNpbiBhdGFuIGF0YW4yIGNoYXIgY21wbHggY29uamcgY29zIGNvc2ggZXhwIGljaGFyIGluZGV4IGludCBsb2cgbG9nMTAgbWF4IG1pbiBuaW50IHNpZ24gc2luIHNpbmggc3FydCB0YW4gdGFuaCBwcmludCB3cml0ZSBkaW0gbGdlIGxndCBsbGUgbGx0IG1vZCBudWxsaWZ5IGFsbG9jYXRlIGRlYWxsb2NhdGUgYWRqdXN0bCBhZGp1c3RyIGFsbCBhbGxvY2F0ZWQgYW55IGFzc29jaWF0ZWQgYml0X3NpemUgYnRlc3QgY2VpbGluZyBjb3VudCBjc2hpZnQgZGF0ZV9hbmRfdGltZSBkaWdpdHMgZG90X3Byb2R1Y3QgZW9zaGlmdCBlcHNpbG9uIGV4cG9uZW50IGZsb29yIGZyYWN0aW9uIGh1Z2UgaWFuZCBpYmNsciBpYml0cyBpYnNldCBpZW9yIGlvciBpc2hmdCBpc2hmdGMgbGJvdW5kIGxlbl90cmltIG1hdG11bCBtYXhleHBvbmVudCBtYXhsb2MgbWF4dmFsIG1lcmdlIG1pbmV4cG9uZW50IG1pbmxvYyBtaW52YWwgbW9kdWxvIG12Yml0cyBuZWFyZXN0IHBhY2sgcHJlc2VudCBwcm9kdWN0IHJhZGl4IHJhbmRvbV9udW1iZXIgcmFuZG9tX3NlZWQgcmFuZ2UgcmVwZWF0IHJlc2hhcGUgcnJzcGFjaW5nIHNjYWxlIHNjYW4gc2VsZWN0ZWRfaW50X2tpbmQgc2VsZWN0ZWRfcmVhbF9raW5kIHNldF9leHBvbmVudCBzaGFwZSBzaXplIHNwYWNpbmcgc3ByZWFkIHN1bSBzeXN0ZW1fY2xvY2sgdGlueSB0cmFuc3Bvc2UgdHJpbSB1Ym91bmQgdW5wYWNrIHZlcmlmeSBhY2hhciBpYWNoYXIgdHJhbnNmZXIgZGJsZSBlbnRyeSBkcHJvZCBjcHVfdGltZSBjb21tYW5kX2FyZ3VtZW50X2NvdW50IGdldF9jb21tYW5kIGdldF9jb21tYW5kX2FyZ3VtZW50IGdldF9lbnZpcm9ubWVudF92YXJpYWJsZSBpc19pb3N0YXRfZW5kIGllZWVfYXJpdGhtZXRpYyBpZWVlX3N1cHBvcnRfdW5kZXJmbG93X2NvbnRyb2wgaWVlZV9nZXRfdW5kZXJmbG93X21vZGUgaWVlZV9zZXRfdW5kZXJmbG93X21vZGUgaXNfaW9zdGF0X2VvciBtb3ZlX2FsbG9jIG5ld19saW5lIHNlbGVjdGVkX2NoYXJfa2luZCBzYW1lX3R5cGVfYXMgZXh0ZW5kc190eXBlX29mIGFjb3NoIGFzaW5oIGF0YW5oIGJlc3NlbF9qMCBiZXNzZWxfajEgYmVzc2VsX2puIGJlc3NlbF95MCBiZXNzZWxfeTEgYmVzc2VsX3luIGVyZiBlcmZjIGVyZmNfc2NhbGVkIGdhbW1hIGxvZ19nYW1tYSBoeXBvdCBub3JtMiBhdG9taWNfZGVmaW5lIGF0b21pY19yZWYgZXhlY3V0ZV9jb21tYW5kX2xpbmUgbGVhZHogdHJhaWx6IHN0b3JhZ2Vfc2l6ZSBtZXJnZV9iaXRzIGJnZSBiZ3QgYmxlIGJsdCBkc2hpZnRsIGRzaGlmdHIgZmluZGxvYyBpYWxsIGlhbnkgaXBhcml0eSBpbWFnZV9pbmRleCBsY29ib3VuZCB1Y29ib3VuZCBtYXNrbCBtYXNrciBudW1faW1hZ2VzIHBhcml0eSBwb3BjbnQgcG9wcGFyIHNoaWZ0YSBzaGlmdGwgc2hpZnRyIHRoaXNfaW1hZ2Ugc3luYyBjaGFuZ2UgdGVhbSBjb19icm9hZGNhc3QgY29fbWF4IGNvX21pbiBjb19zdW0gY29fcmVkdWNlIn0saWxsZWdhbDovXC9cKi8sY29udGFpbnM6W2QsXyx7YmVnaW46L15DXHMqPSg/IT0pLyxyZWxldmFuY2U6MH0saSxjXX19cy5leHBvcnRzPXR9LDk4ODIzOmZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHIoZSl7Y29uc3QgdD17YmVnaW46IjwiLGVuZDoiPiIsY29udGFpbnM6W2UuaW5oZXJpdChlLlRJVExFX01PREUse2JlZ2luOi8nW2EtekEtWjAtOV9dKy99KV19O3JldHVybntuYW1lOiJGIyIsYWxpYXNlczpbImZzIl0sa2V5d29yZHM6ImFic3RyYWN0IGFuZCBhcyBhc3NlcnQgYmFzZSBiZWdpbiBjbGFzcyBkZWZhdWx0IGRlbGVnYXRlIGRvIGRvbmUgZG93bmNhc3QgZG93bnRvIGVsaWYgZWxzZSBlbmQgZXhjZXB0aW9uIGV4dGVybiBmYWxzZSBmaW5hbGx5IGZvciBmdW4gZnVuY3Rpb24gZ2xvYmFsIGlmIGluIGluaGVyaXQgaW5saW5lIGludGVyZmFjZSBpbnRlcm5hbCBsYXp5IGxldCBtYXRjaCBtZW1iZXIgbW9kdWxlIG11dGFibGUgbmFtZXNwYWNlIG5ldyBudWxsIG9mIG9wZW4gb3Igb3ZlcnJpZGUgcHJpdmF0ZSBwdWJsaWMgcmVjIHJldHVybiBzaWcgc3RhdGljIHN0cnVjdCB0aGVuIHRvIHRydWUgdHJ5IHR5cGUgdXBjYXN0IHVzZSB2YWwgdm9pZCB3aGVuIHdoaWxlIHdpdGggeWllbGQiLGlsbGVnYWw6L1wvXCovLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJrZXl3b3JkIixiZWdpbjovXGIoeWllbGR8cmV0dXJufGxldHxkbykhL30se2NsYXNzTmFtZToic3RyaW5nIixiZWdpbjonQCInLGVuZDonIicsY29udGFpbnM6W3tiZWdpbjonIiInfV19LHtjbGFzc05hbWU6InN0cmluZyIsYmVnaW46JyIiIicsZW5kOiciIiInfSxlLkNPTU1FTlQoIlxcKFxcKihcXHMpIiwiXFwqXFwpIix7Y29udGFpbnM6WyJzZWxmIl19KSx7Y2xhc3NOYW1lOiJjbGFzcyIsYmVnaW5LZXl3b3JkczoidHlwZSIsZW5kOiJcXCh8PXwkIixleGNsdWRlRW5kOiEwLGNvbnRhaW5zOltlLlVOREVSU0NPUkVfVElUTEVfTU9ERSx0XX0se2NsYXNzTmFtZToibWV0YSIsYmVnaW46IlxcWzwiLGVuZDoiPlxcXSIscmVsZXZhbmNlOjEwfSx7Y2xhc3NOYW1lOiJzeW1ib2wiLGJlZ2luOiJcXEIoJ1tBLVphLXpdKVxcYiIsY29udGFpbnM6W2UuQkFDS1NMQVNIX0VTQ0FQRV19LGUuQ19MSU5FX0NPTU1FTlRfTU9ERSxlLmluaGVyaXQoZS5RVU9URV9TVFJJTkdfTU9ERSx7aWxsZWdhbDpudWxsfSksZS5DX05VTUJFUl9NT0RFXX19cy5leHBvcnRzPXJ9LDY2ODM2OmZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHIoYSl7cmV0dXJuIGE/dHlwZW9mIGE9PSJzdHJpbmciP2E6YS5zb3VyY2U6bnVsbH1mdW5jdGlvbiBlKGEpe3JldHVybiB0KCIoIixhLCIpKiIpfWZ1bmN0aW9uIHQoLi4uYSl7cmV0dXJuIGEubWFwKG89PnIobykpLmpvaW4oIiIpfWZ1bmN0aW9uIG4oYSl7Y29uc3QgaT17a2V5d29yZDoiYWJvcnQgYWNyb255bSBhY3JvbnltcyBhbGlhcyBhbGwgYW5kIGFzc2lnbiBiaW5hcnkgY2FyZCBkaWFnIGRpc3BsYXkgZWxzZSBlcSBmaWxlIGZpbGVzIGZvciBmcmVlIGdlIGd0IGlmIGludGVnZXIgbGUgbG9vcCBsdCBtYXhpbWl6aW5nIG1pbmltaXppbmcgbW9kZWwgbW9kZWxzIG5lIG5lZ2F0aXZlIG5vIG5vdCBvcHRpb24gb3B0aW9ucyBvciBvcmQgcG9zaXRpdmUgcHJvZCBwdXQgcHV0cGFnZSBwdXR0bCByZXBlYXQgc2FtZWFzIHNlbWljb250IHNlbWlpbnQgc21heCBzbWluIHNvbHZlIHNvczEgc29zMiBzdW0gc3lzdGVtIHRhYmxlIHRoZW4gdW50aWwgdXNpbmcgd2hpbGUgeG9yIHllcyIsbGl0ZXJhbDoiZXBzIGluZiBuYSIsYnVpbHRfaW46ImFicyBhcmNjb3MgYXJjc2luIGFyY3RhbiBhcmN0YW4yIEJldGEgYmV0YVJlZyBiaW5vbWlhbCBjZWlsIGNlbnRyb3B5IGNvcyBjb3NoIGN2UG93ZXIgZGl2IGRpdjAgZURpc3QgZW50cm9weSBlcnJvcmYgZXhlY1NlZWQgZXhwIGZhY3QgZmxvb3IgZnJhYyBnYW1tYSBnYW1tYVJlZyBsb2cgbG9nQmV0YSBsb2dHYW1tYSBsb2cxMCBsb2cyIG1hcFZhbCBtYXggbWluIG1vZCBuY3BDTSBuY3BGIG5jcFZVcG93IG5jcFZVc2luIG5vcm1hbCBwaSBwb2x5IHBvd2VyIHJhbmRCaW5vbWlhbCByYW5kTGluZWFyIHJhbmRUcmlhbmdsZSByb3VuZCByUG93ZXIgc2lnbW9pZCBzaWduIHNpZ25Qb3dlciBzaW4gc2luaCBzbGV4cCBzbGxvZzEwIHNscmVjIHNxZXhwIHNxbG9nMTAgc3FyIHNxcmVjIHNxcnQgdGFuIHRhbmggdHJ1bmMgdW5pZm9ybSB1bmlmb3JtSW50IHZjUG93ZXIgYm9vbF9hbmQgYm9vbF9lcXYgYm9vbF9pbXAgYm9vbF9ub3QgYm9vbF9vciBib29sX3hvciBpZlRoZW4gcmVsX2VxIHJlbF9nZSByZWxfZ3QgcmVsX2xlIHJlbF9sdCByZWxfbmUgZ2RheSBnZG93IGdob3VyIGdsZWFwIGdtaWxsaXNlYyBnbWludXRlIGdtb250aCBnc2Vjb25kIGd5ZWFyIGpkYXRlIGpub3cganN0YXJ0IGp0aW1lIGVycm9yTGV2ZWwgZXhlY0Vycm9yIGdhbXNSZWxlYXNlIGdhbXNWZXJzaW9uIGhhbmRsZUNvbGxlY3QgaGFuZGxlRGVsZXRlIGhhbmRsZVN0YXR1cyBoYW5kbGVTdWJtaXQgaGVhcEZyZWUgaGVhcExpbWl0IGhlYXBTaXplIGpvYkhhbmRsZSBqb2JLaWxsIGpvYlN0YXR1cyBqb2JUZXJtaW5hdGUgbGljZW5zZUxldmVsIGxpY2Vuc2VTdGF0dXMgbWF4RXhlY0Vycm9yIHNsZWVwIHRpbWVDbG9zZSB0aW1lQ29tcCB0aW1lRWxhcHNlZCB0aW1lRXhlYyB0aW1lU3RhcnQifSxvPXtjbGFzc05hbWU6InBhcmFtcyIsYmVnaW46L1woLyxlbmQ6L1wpLyxleGNsdWRlQmVnaW46ITAsZXhjbHVkZUVuZDohMH0sbD17Y2xhc3NOYW1lOiJzeW1ib2wiLHZhcmlhbnRzOlt7YmVnaW46Lz1bbGdlbnhjXT0vfSx7YmVnaW46L1wkL31dfSxjPXtjbGFzc05hbWU6ImNvbW1lbnQiLHZhcmlhbnRzOlt7YmVnaW46IiciLGVuZDoiJyJ9LHtiZWdpbjonIicsZW5kOiciJ31dLGlsbGVnYWw6IlxcbiIsY29udGFpbnM6W2EuQkFDS1NMQVNIX0VTQ0FQRV19LF89e2JlZ2luOiIvIixlbmQ6Ii8iLGtleXdvcmRzOmksY29udGFpbnM6W2MsYS5DX0xJTkVfQ09NTUVOVF9NT0RFLGEuQ19CTE9DS19DT01NRU5UX01PREUsYS5RVU9URV9TVFJJTkdfTU9ERSxhLkFQT1NfU1RSSU5HX01PREUsYS5DX05VTUJFUl9NT0RFXX0sZD0vW2EtejAtOSYjKj0/QFxcPjw6LCgpJFtcXV8ue30hKyVeLV0rLyxnPXtiZWdpbjovW2Etel1bYS16MC05X10qKFwoW2EtejAtOV8sIF0qXCkpP1sgXHRdKy8sZXhjbHVkZUJlZ2luOiEwLGVuZDoiJCIsZW5kc1dpdGhQYXJlbnQ6ITAsY29udGFpbnM6W2MsXyx7Y2xhc3NOYW1lOiJjb21tZW50IixiZWdpbjp0KGQsZSh0KC9bIF0rLyxkKSkpLHJlbGV2YW5jZTowfV19O3JldHVybntuYW1lOiJHQU1TIixhbGlhc2VzOlsiZ21zIl0sY2FzZV9pbnNlbnNpdGl2ZTohMCxrZXl3b3JkczppLGNvbnRhaW5zOlthLkNPTU1FTlQoL15cJG9udGV4dC8sL15cJG9mZnRleHQvKSx7Y2xhc3NOYW1lOiJtZXRhIixiZWdpbjoiXlxcJFthLXowLTldKyIsZW5kOiIkIixyZXR1cm5CZWdpbjohMCxjb250YWluczpbe2NsYXNzTmFtZToibWV0YS1rZXl3b3JkIixiZWdpbjoiXlxcJFthLXowLTldKyJ9XX0sYS5DT01NRU5UKCJeXFwqIiwiJCIpLGEuQ19MSU5FX0NPTU1FTlRfTU9ERSxhLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLGEuUVVPVEVfU1RSSU5HX01PREUsYS5BUE9TX1NUUklOR19NT0RFLHtiZWdpbktleXdvcmRzOiJzZXQgc2V0cyBwYXJhbWV0ZXIgcGFyYW1ldGVycyB2YXJpYWJsZSB2YXJpYWJsZXMgc2NhbGFyIHNjYWxhcnMgZXF1YXRpb24gZXF1YXRpb25zIixlbmQ6IjsiLGNvbnRhaW5zOlthLkNPTU1FTlQoIl5cXCoiLCIkIiksYS5DX0xJTkVfQ09NTUVOVF9NT0RFLGEuQ19CTE9DS19DT01NRU5UX01PREUsYS5RVU9URV9TVFJJTkdfTU9ERSxhLkFQT1NfU1RSSU5HX01PREUsXyxnXX0se2JlZ2luS2V5d29yZHM6InRhYmxlIixlbmQ6IjsiLHJldHVybkJlZ2luOiEwLGNvbnRhaW5zOlt7YmVnaW5LZXl3b3JkczoidGFibGUiLGVuZDoiJCIsY29udGFpbnM6W2ddfSxhLkNPTU1FTlQoIl5cXCoiLCIkIiksYS5DX0xJTkVfQ09NTUVOVF9NT0RFLGEuQ19CTE9DS19DT01NRU5UX01PREUsYS5RVU9URV9TVFJJTkdfTU9ERSxhLkFQT1NfU1RSSU5HX01PREUsYS5DX05VTUJFUl9NT0RFXX0se2NsYXNzTmFtZToiZnVuY3Rpb24iLGJlZ2luOi9eW2Etel1bYS16MC05XyxcLSsnICgpJF0rXC57Mn0vLHJldHVybkJlZ2luOiEwLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJ0aXRsZSIsYmVnaW46L15bYS16MC05X10rL30sbyxsXX0sYS5DX05VTUJFUl9NT0RFLGxdfX1zLmV4cG9ydHM9bn0sNjQ2NTQ6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihlKXtjb25zdCB0PXtrZXl3b3JkOiJib29sIGJyZWFrIGNhbGwgY2FsbGV4ZSBjaGVja2ludGVycnVwdCBjbGVhciBjbGVhcmcgY2xvc2VhbGwgY2xzIGNvbWxvZyBjb21waWxlIGNvbnRpbnVlIGNyZWF0ZSBkZWJ1ZyBkZWNsYXJlIGRlbGV0ZSBkaXNhYmxlIGRsaWJyYXJ5IGRsbGNhbGwgZG8gZG9zIGVkIGVkaXQgZWxzZSBlbHNlaWYgZW5hYmxlIGVuZCBlbmRmb3IgZW5kaWYgZW5kcCBlbmRvIGVycm9ybG9nIGVycm9ybG9nYXQgZXhwciBleHRlcm5hbCBmbiBmb3IgZm9ybWF0IGdvdG8gZ29zdWIgZ3JhcGggaWYga2V5d29yZCBsZXQgbGliIGxpYnJhcnkgbGluZSBsb2FkIGxvYWRhcnJheSBsb2FkZXhlIGxvYWRmIGxvYWRrIGxvYWRtIGxvYWRwIGxvYWRzIGxvYWR4IGxvY2FsIGxvY2F0ZSBsb29wbmV4dGluZGV4IGxwcmludCBscHdpZHRoIGxzaG93IG1hdHJpeCBtc3ltIG5kcGNsZXggbmV3IG9wZW4gb3V0cHV0IG91dHdpZHRoIHBsb3QgcGxvdHN5bSBwb3AgcHJjc24gcHJpbnQgcHJpbnRkb3MgcHJvYyBwdXNoIHJldHAgcmV0dXJuIHJuZGNvbiBybmRtb2Qgcm5kbXVsdCBybmRzZWVkIHJ1biBzYXZlIHNhdmVhbGwgc2NyZWVuIHNjcm9sbCBzZXRhcnJheSBzaG93IHNwYXJzZSBzdG9wIHN0cmluZyBzdHJ1Y3Qgc3lzdGVtIHRyYWNlIHRyYXAgdGhyZWFkZm9yIHRocmVhZGVuZGZvciB0aHJlYWRiZWdpbiB0aHJlYWRqb2luIHRocmVhZHN0YXQgdGhyZWFkZW5kIHVudGlsIHVzZSB3aGlsZSB3aW5wcmludCBuZSBnZSBsZSBndCBsdCBhbmQgeG9yIG9yIG5vdCBlcSBlcXYiLGJ1aWx0X2luOiJhYnMgYWNmIGFjb25jYXQgYWV5ZSBhbWF4IGFtZWFuIEFtZXJpY2FuQmlub21DYWxsIEFtZXJpY2FuQmlub21DYWxsX0dyZWVrcyBBbWVyaWNhbkJpbm9tQ2FsbF9JbXBWb2wgQW1lcmljYW5CaW5vbVB1dCBBbWVyaWNhbkJpbm9tUHV0X0dyZWVrcyBBbWVyaWNhbkJpbm9tUHV0X0ltcFZvbCBBbWVyaWNhbkJTQ2FsbCBBbWVyaWNhbkJTQ2FsbF9HcmVla3MgQW1lcmljYW5CU0NhbGxfSW1wVm9sIEFtZXJpY2FuQlNQdXQgQW1lcmljYW5CU1B1dF9HcmVla3MgQW1lcmljYW5CU1B1dF9JbXBWb2wgYW1pbiBhbXVsdCBhbm5vdGF0aW9uR2V0RGVmYXVsdHMgYW5ub3RhdGlvblNldEJrZCBhbm5vdGF0aW9uU2V0Rm9udCBhbm5vdGF0aW9uU2V0TGluZUNvbG9yIGFubm90YXRpb25TZXRMaW5lU3R5bGUgYW5ub3RhdGlvblNldExpbmVUaGlja25lc3MgYW5udWFsVHJhZGluZ0RheXMgYXJjY29zIGFyY3NpbiBhcmVzaGFwZSBhcnJheWFsbG9jIGFycmF5aW5kZXggYXJyYXlpbml0IGFycmF5dG9tYXQgYXNjaWlsb2FkIGFzY2xhYmVsIGFzdGQgYXN0ZHMgYXN1bSBhdGFuIGF0YW4yIGF0cmFuc3Bvc2UgYXhtYXJnaW4gYmFsYW5jZSBiYW5kIGJhbmRjaG9sIGJhbmRjaG9sc29sIGJhbmRsdHNvbCBiYW5kcnYgYmFuZHNvbHBkIGJhciBiYXNlMTAgYmVnd2luZCBiZXNzZWxqIGJlc3NlbHkgYmV0YSBib3ggYm94Y294IGNkZkJldGEgY2RmQmV0YUludiBjZGZCaW5vbWlhbCBjZGZCaW5vbWlhbEludiBjZGZCdm4gY2RmQnZuMiBjZGZCdm4yZSBjZGZDYXVjaHkgY2RmQ2F1Y2h5SW52IGNkZkNoaWMgY2RmQ2hpaSBjZGZDaGluYyBjZGZDaGluY0ludiBjZGZFeHAgY2RmRXhwSW52IGNkZkZjIGNkZkZuYyBjZGZGbmNJbnYgY2RmR2FtIGNkZkdlblBhcmV0byBjZGZIeXBlckdlbyBjZGZMYXBsYWNlIGNkZkxhcGxhY2VJbnYgY2RmTG9naXN0aWMgY2RmTG9naXN0aWNJbnYgY2RmbUNvbnRyb2xDcmVhdGUgY2RmTXZuIGNkZk12bjJlIGNkZk12bmNlIGNkZk12bmUgY2RmTXZ0MmUgY2RmTXZ0Y2UgY2RmTXZ0ZSBjZGZOIGNkZk4yIGNkZk5jIGNkZk5lZ0Jpbm9taWFsIGNkZk5lZ0Jpbm9taWFsSW52IGNkZk5pIGNkZlBvaXNzb24gY2RmUG9pc3NvbkludiBjZGZSYXlsZWlnaCBjZGZSYXlsZWlnaEludiBjZGZUYyBjZGZUY2kgY2RmVG5jIGNkZlR2biBjZGZXZWlidWxsIGNkZldlaWJ1bGxJbnYgY2RpciBjZWlsIENoYW5nZURpciBjaGRpciBjaGlCYXJTcXVhcmUgY2hvbCBjaG9sZG4gY2hvbHNvbCBjaG9sdXAgY2hycyBjbG9zZSBjb2RlIGNvbHMgY29sc2YgY29tYmluYXRlIGNvbWJpbmF0ZWQgY29tcGxleCBjb24gY29uZCBjb25qIGNvbnMgQ29uU2NvcmUgY29udG91ciBjb252IGNvbnZlcnRzYXRvc3RyIGNvbnZlcnRzdHJ0b3NhIGNvcnJtIGNvcnJtcyBjb3JydmMgY29ycnggY29ycnhzIGNvcyBjb3NoIGNvdW50cyBjb3VudHd0cyBjcm9zc3ByZCBjcm91dCBjcm91dHAgY3NyY29sIGNzcmxpbiBjc3ZSZWFkTSBjc3ZSZWFkU0EgY3VtcHJvZGMgY3Vtc3VtYyBjdXJ2ZSBjdnRvcyBkYXRhY3JlYXRlIGRhdGFjcmVhdGVjb21wbGV4IGRhdGFsaXN0IGRhdGFsb2FkIGRhdGFsb29wIGRhdGFvcGVuIGRhdGFzYXZlIGRhdGUgZGF0ZXN0ciBkYXRlc3RyaW5nIGRhdGVzdHJ5bWQgZGF5aW55ciBkYXlvZndlZWsgZGJBZGREYXRhYmFzZSBkYkNsb3NlIGRiQ29tbWl0IGRiQ3JlYXRlUXVlcnkgZGJFeGVjUXVlcnkgZGJHZXRDb25uZWN0T3B0aW9ucyBkYkdldERhdGFiYXNlTmFtZSBkYkdldERyaXZlck5hbWUgZGJHZXREcml2ZXJzIGRiR2V0SG9zdE5hbWUgZGJHZXRMYXN0RXJyb3JOdW0gZGJHZXRMYXN0RXJyb3JUZXh0IGRiR2V0TnVtZXJpY2FsUHJlY1BvbGljeSBkYkdldFBhc3N3b3JkIGRiR2V0UG9ydCBkYkdldFRhYmxlSGVhZGVycyBkYkdldFRhYmxlcyBkYkdldFVzZXJOYW1lIGRiSGFzRmVhdHVyZSBkYklzRHJpdmVyQXZhaWxhYmxlIGRiSXNPcGVuIGRiSXNPcGVuRXJyb3IgZGJPcGVuIGRiUXVlcnlCaW5kVmFsdWUgZGJRdWVyeUNsZWFyIGRiUXVlcnlDb2xzIGRiUXVlcnlFeGVjUHJlcGFyZWQgZGJRdWVyeUZldGNoQWxsTSBkYlF1ZXJ5RmV0Y2hBbGxTQSBkYlF1ZXJ5RmV0Y2hPbmVNIGRiUXVlcnlGZXRjaE9uZVNBIGRiUXVlcnlGaW5pc2ggZGJRdWVyeUdldEJvdW5kVmFsdWUgZGJRdWVyeUdldEJvdW5kVmFsdWVzIGRiUXVlcnlHZXRGaWVsZCBkYlF1ZXJ5R2V0TGFzdEVycm9yTnVtIGRiUXVlcnlHZXRMYXN0RXJyb3JUZXh0IGRiUXVlcnlHZXRMYXN0SW5zZXJ0SUQgZGJRdWVyeUdldExhc3RRdWVyeSBkYlF1ZXJ5R2V0UG9zaXRpb24gZGJRdWVyeUlzQWN0aXZlIGRiUXVlcnlJc0ZvcndhcmRPbmx5IGRiUXVlcnlJc051bGwgZGJRdWVyeUlzU2VsZWN0IGRiUXVlcnlJc1ZhbGlkIGRiUXVlcnlQcmVwYXJlIGRiUXVlcnlSb3dzIGRiUXVlcnlTZWVrIGRiUXVlcnlTZWVrRmlyc3QgZGJRdWVyeVNlZWtMYXN0IGRiUXVlcnlTZWVrTmV4dCBkYlF1ZXJ5U2Vla1ByZXZpb3VzIGRiUXVlcnlTZXRGb3J3YXJkT25seSBkYlJlbW92ZURhdGFiYXNlIGRiUm9sbGJhY2sgZGJTZXRDb25uZWN0T3B0aW9ucyBkYlNldERhdGFiYXNlTmFtZSBkYlNldEhvc3ROYW1lIGRiU2V0TnVtZXJpY2FsUHJlY1BvbGljeSBkYlNldFBvcnQgZGJTZXRVc2VyTmFtZSBkYlRyYW5zYWN0aW9uIERlbGV0ZUZpbGUgZGVsaWYgZGVscm93cyBkZW5zZVRvU3AgZGVuc2VUb1NwUkUgZGVuVG9aZXJvIGRlc2lnbiBkZXQgZGV0bCBkZmZ0IGRmZnRpIGRpYWcgZGlhZ3J2IGRpZ2FtbWEgZG9zd2luIERPU1dpbkNsb3NlYWxsIERPU1dpbk9wZW4gZG90ZmVxIGRvdGZlcW10IGRvdGZnZSBkb3RmZ2VtdCBkb3RmZ3QgZG90Zmd0bXQgZG90ZmxlIGRvdGZsZW10IGRvdGZsdCBkb3RmbHRtdCBkb3RmbmUgZG90Zm5lbXQgZHJhdyBkcm9wIGRzQ3JlYXRlIGRzdGF0IGRzdGF0bXQgZHN0YXRtdENvbnRyb2xDcmVhdGUgZHRkYXRlIGR0ZGF5IGR0dGltZSBkdHRvZHR2IGR0dG9zdHIgZHR0b3V0YyBkdHZub3JtYWwgZHR2dG9kdCBkdHZ0b3V0YyBkdW1teSBkdW1teWJyIGR1bW15ZG4gZWlnIGVpZ2ggZWlnaHYgZWlndiBlbGFwc2VkVHJhZGluZ0RheXMgZW5kd2luZCBlbnZnZXQgZW9mIGVxU29sdmUgZXFTb2x2ZW10IGVxU29sdmVtdENvbnRyb2xDcmVhdGUgZXFTb2x2ZW10T3V0Q3JlYXRlIGVxU29sdmVzZXQgZXJmIGVyZmMgZXJmY2NwbHggZXJmY3BseCBlcnJvciBldGRheXMgZXRoc2VjIGV0c3RyIEV1cm9wZWFuQmlub21DYWxsIEV1cm9wZWFuQmlub21DYWxsX0dyZWVrcyBFdXJvcGVhbkJpbm9tQ2FsbF9JbXBWb2wgRXVyb3BlYW5CaW5vbVB1dCBFdXJvcGVhbkJpbm9tUHV0X0dyZWVrcyBFdXJvcGVhbkJpbm9tUHV0X0ltcFZvbCBFdXJvcGVhbkJTQ2FsbCBFdXJvcGVhbkJTQ2FsbF9HcmVla3MgRXVyb3BlYW5CU0NhbGxfSW1wVm9sIEV1cm9wZWFuQlNQdXQgRXVyb3BlYW5CU1B1dF9HcmVla3MgRXVyb3BlYW5CU1B1dF9JbXBWb2wgZXhjdHNtcGwgZXhlYyBleGVjYmcgZXhwIGV4dGVybiBleWUgZmNoZWNrZXJyIGZjbGVhcmVyciBmZXEgZmVxbXQgZmZsdXNoIGZmdCBmZnRpIGZmdG0gZmZ0bWkgZmZ0biBmZ2UgZmdlbXQgZmdldHMgZmdldHNhIGZnZXRzYXQgZmdldHN0IGZndCBmZ3RtdCBmaWxlaW5mbyBmaWxlc2EgZmxlIGZsZW10IGZsb29yIGZsdCBmbHRtdCBmbW9kIGZuZSBmbmVtdCBmb250cyBmb3BlbiBmb3JtYXRjdiBmb3JtYXRudiBmcHV0cyBmcHV0c3QgZnNlZWsgZnN0cmVycm9yIGZ0ZWxsIGZ0b2N2IGZ0b3MgZnRvc3RyQyBnYW1tYSBnYW1tYWNwbHggZ2FtbWFpaSBnYXVzc2V0IGdkYUFwcGVuZCBnZGFDcmVhdGUgZ2RhRFN0YXQgZ2RhRFN0YXRNYXQgZ2RhR2V0SW5kZXggZ2RhR2V0TmFtZSBnZGFHZXROYW1lcyBnZGFHZXRPcmRlcnMgZ2RhR2V0VHlwZSBnZGFHZXRUeXBlcyBnZGFHZXRWYXJJbmZvIGdkYUlzQ3BseCBnZGFMb2FkIGdkYVBhY2sgZ2RhUmVhZCBnZGFSZWFkQnlJbmRleCBnZGFSZWFkU29tZSBnZGFSZWFkU3BhcnNlIGdkYVJlYWRTdHJ1Y3QgZ2RhUmVwb3J0VmFySW5mbyBnZGFTYXZlIGdkYVVwZGF0ZSBnZGFVcGRhdGVBbmRQYWNrIGdkYVZhcnMgZ2RhV3JpdGUgZ2RhV3JpdGUzMiBnZGFXcml0ZVNvbWUgZ2V0YXJyYXkgZ2V0ZGltcyBnZXRmIGdldEdBVVNTaG9tZSBnZXRtYXRyaXggZ2V0bWF0cml4NEQgZ2V0bmFtZSBnZXRuYW1lZiBnZXROZXh0VHJhZGluZ0RheSBnZXROZXh0V2Vla0RheSBnZXRuciBnZXRvcmRlcnMgZ2V0cGF0aCBnZXRQcmV2aW91c1RyYWRpbmdEYXkgZ2V0UHJldmlvdXNXZWVrRGF5IGdldFJvdyBnZXRzY2FsYXIzRCBnZXRzY2FsYXI0RCBnZXRUclJvdyBnZXR3aW5kIGdsbSBncmFkY3BseCBncmFkTVQgZ3JhZE1UbSBncmFkTVRUIGdyYWRNVFRtIGdyYWRwIGdyYXBocHJ0IGdyYXBoc2V0IGhhc2ltYWcgaGVhZGVyIGhlYWRlcm10IGhlc3MgaGVzc01UIGhlc3NNVGcgaGVzc01UZ3cgaGVzc01UbSBoZXNzTVRtdyBoZXNzTVRUIGhlc3NNVFRnIGhlc3NNVFRndyBoZXNzTVRUbSBoZXNzTVR3IGhlc3NwIGhpc3QgaGlzdGYgaGlzdHAgaHNlYyBpbWFnIGluZGN2IGluZGV4Y2F0IGluZGljZXMgaW5kaWNlczIgaW5kaWNlc2YgaW5kaWNlc2ZuIGluZG52IGluZHNhdiBpbnRlZ3JhdGUxZCBpbnRlZ3JhdGVDb250cm9sQ3JlYXRlIGludGdyYXQyIGludGdyYXQzIGludGhwMSBpbnRocDIgaW50aHAzIGludGhwNCBpbnRocENvbnRyb2xDcmVhdGUgaW50cXVhZDEgaW50cXVhZDIgaW50cXVhZDMgaW50cmxlYXYgaW50cmxlYXZzYSBpbnRyc2VjdCBpbnRzaW1wIGludiBpbnZwZCBpbnZzd3AgaXNjcGx4IGlzY3BseGYgaXNkZW4gaXNpbmZuYW5taXNzIGlzbWlzcyBrZXkga2V5YXYga2V5dyBsYWcgbGFnMSBsYWduIGxhcEVpZ2hiIGxhcEVpZ2hpIGxhcEVpZ2h2YiBsYXBFaWdodmkgbGFwZ0VpZyBsYXBnRWlnaCBsYXBnRWlnaHYgbGFwZ0VpZ3YgbGFwZ1NjaHVyIGxhcGdTdmRjc3QgbGFwZ1N2ZHMgbGFwZ1N2ZHN0IGxhcFN2ZGN1c3YgbGFwU3ZkcyBsYXBTdmR1c3YgbGRscCBsZGxzb2wgbGluU29sdmUgbGlzdHdpc2UgbG4gbG5jZGZidm4gbG5jZGZidm4yIGxuY2RmbXZuIGxuY2RmbiBsbmNkZm4yIGxuY2RmbmMgbG5mYWN0IGxuZ2FtbWFjcGx4IGxucGRmbXZuIGxucGRmbXZ0IGxucGRmbiBsbnBkZnQgbG9hZGQgbG9hZHN0cnVjdCBsb2Fkd2luZCBsb2VzcyBsb2Vzc210IGxvZXNzbXRDb250cm9sQ3JlYXRlIGxvZyBsb2dsb2cgbG9neCBsb2d5IGxvd2VyIGxvd21hdCBsb3dtYXQxIGx0cmlzb2wgbHUgbHVzb2wgbWFjaEVwc2lsb24gbWFrZSBtYWtldmFycyBtYWtld2luZCBtYXJnaW4gbWF0YWxsb2MgbWF0aW5pdCBtYXR0b2FycmF5IG1heGJ5dGVzIG1heGMgbWF4aW5kYyBtYXh2IG1heHZlYyBtYmVzc2VsZWkgbWJlc3NlbGVpMCBtYmVzc2VsZWkxIG1iZXNzZWxpIG1iZXNzZWxpMCBtYmVzc2VsaTEgbWVhbmMgbWVkaWFuIG1lcmdlYnkgbWVyZ2V2YXIgbWluYyBtaW5pbmRjIG1pbnYgbWlzcyBtaXNzZXggbWlzc3J2IG1vbWVudCBtb21lbnRkIG1vdmluZ2F2ZSBtb3ZpbmdhdmVFeHB3Z3QgbW92aW5nYXZlV2d0IG5leHRpbmRleCBuZXh0biBuZXh0bmV2biBuZXh0d2luZCBudG9zIG51bGwgbnVsbDEgbnVtQ29tYmluYXRpb25zIG9scyBvbHNtdCBvbHNtdENvbnRyb2xDcmVhdGUgb2xzcXIgb2xzcXIyIG9sc3FybXQgb25lcyBvcHRuIG9wdG5ldm4gb3J0aCBvdXR0eXAgcGFjZiBwYWNrZWRUb1NwIHBhY2tyIHBhcnNlIHBhdXNlIHBkZkNhdWNoeSBwZGZDaGkgcGRmRXhwIHBkZkdlblBhcmV0byBwZGZIeXBlckdlbyBwZGZMYXBsYWNlIHBkZkxvZ2lzdGljIHBkZm4gcGRmUG9pc3NvbiBwZGZSYXlsZWlnaCBwZGZXZWlidWxsIHBpIHBpbnYgcGludm10IHBsb3RBZGRBcnJvdyBwbG90QWRkQmFyIHBsb3RBZGRCb3ggcGxvdEFkZEhpc3QgcGxvdEFkZEhpc3RGIHBsb3RBZGRIaXN0UCBwbG90QWRkUG9sYXIgcGxvdEFkZFNjYXR0ZXIgcGxvdEFkZFNoYXBlIHBsb3RBZGRUZXh0Ym94IHBsb3RBZGRUUyBwbG90QWRkWFkgcGxvdEFyZWEgcGxvdEJhciBwbG90Qm94IHBsb3RDbGVhckxheW91dCBwbG90Q29udG91ciBwbG90Q3VzdG9tTGF5b3V0IHBsb3RHZXREZWZhdWx0cyBwbG90SGlzdCBwbG90SGlzdEYgcGxvdEhpc3RQIHBsb3RMYXlvdXQgcGxvdExvZ0xvZyBwbG90TG9nWCBwbG90TG9nWSBwbG90T3BlbldpbmRvdyBwbG90UG9sYXIgcGxvdFNhdmUgcGxvdFNjYXR0ZXIgcGxvdFNldEF4ZXNQZW4gcGxvdFNldEJhciBwbG90U2V0QmFyRmlsbCBwbG90U2V0QmFyU3RhY2tlZCBwbG90U2V0QmtkQ29sb3IgcGxvdFNldEZpbGwgcGxvdFNldEdyaWQgcGxvdFNldExlZ2VuZCBwbG90U2V0TGluZUNvbG9yIHBsb3RTZXRMaW5lU3R5bGUgcGxvdFNldExpbmVTeW1ib2wgcGxvdFNldExpbmVUaGlja25lc3MgcGxvdFNldE5ld1dpbmRvdyBwbG90U2V0VGl0bGUgcGxvdFNldFdoaWNoWUF4aXMgcGxvdFNldFhBeGlzU2hvdyBwbG90U2V0WExhYmVsIHBsb3RTZXRYUmFuZ2UgcGxvdFNldFhUaWNJbnRlcnZhbCBwbG90U2V0WFRpY0xhYmVsIHBsb3RTZXRZQXhpc1Nob3cgcGxvdFNldFlMYWJlbCBwbG90U2V0WVJhbmdlIHBsb3RTZXRaQXhpc1Nob3cgcGxvdFNldFpMYWJlbCBwbG90U3VyZmFjZSBwbG90VFMgcGxvdFhZIHBvbGFyIHBvbHljaGFyIHBvbHlldmFsIHBvbHlnYW1tYSBwb2x5aW50IHBvbHltYWtlIHBvbHltYXQgcG9seW1yb290IHBvbHltdWx0IHBvbHlyb290IHBxZ3dpbiBwcmV2aW91c2luZGV4IHByaW5jb21wIHByaW50Zm0gcHJpbnRmbXQgcHJvZGMgcHNpIHB1dGFycmF5IHB1dGYgcHV0dmFscyBwdkNyZWF0ZSBwdkdldEluZGV4IHB2R2V0UGFyTmFtZXMgcHZHZXRQYXJWZWN0b3IgcHZMZW5ndGggcHZMaXN0IHB2UGFjayBwdlBhY2tpIHB2UGFja20gcHZQYWNrbWkgcHZQYWNrcyBwdlBhY2tzaSBwdlBhY2tzbSBwdlBhY2tzbWkgcHZQdXRQYXJWZWN0b3IgcHZUZXN0IHB2VW5wYWNrIFFOZXd0b24gUU5ld3Rvbm10IFFOZXd0b25tdENvbnRyb2xDcmVhdGUgUU5ld3Rvbm10T3V0Q3JlYXRlIFFOZXd0b25TZXQgUVByb2cgUVByb2dtdCBRUHJvZ210SW5DcmVhdGUgcXFyIHFxcmUgcXFyZXAgcXIgcXJlIHFyZXAgcXJzb2wgcXJ0c29sIHF0eXIgcXR5cmUgcXR5cmVwIHF1YW50aWxlIHF1YW50aWxlZCBxeXIgcXlyZSBxeXJlcCBxeiByYW5rIHJhbmtpbmR4IHJlYWRyIHJlYWwgcmVjbGFzc2lmeSByZWNsYXNzaWZ5Q3V0cyByZWNvZGUgcmVjc2VyYXIgcmVjc2VyY3AgcmVjc2VycmMgcmVydW4gcmVzY2FsZSByZXNoYXBlIHJldHMgcmV2IHJmZnQgcmZmdGkgcmZmdGlwIHJmZnRuIHJmZnRucCByZmZ0cCBybmRCZXJub3VsbGkgcm5kQmV0YSBybmRCaW5vbWlhbCBybmRDYXVjaHkgcm5kQ2hpU3F1YXJlIHJuZENvbiBybmRDcmVhdGVTdGF0ZSBybmRFeHAgcm5kR2FtbWEgcm5kR2VvIHJuZEd1bWJlbCBybmRIeXBlckdlbyBybmRpIHJuZEtNYmV0YSBybmRLTWdhbSBybmRLTWkgcm5kS01uIHJuZEtNbmIgcm5kS01wIHJuZEtNdSBybmRLTXZtIHJuZExhcGxhY2Ugcm5kTENiZXRhIHJuZExDZ2FtIHJuZExDaSBybmRMQ24gcm5kTENuYiBybmRMQ3Agcm5kTEN1IHJuZExDdm0gcm5kTG9nTm9ybSBybmRNVHUgcm5kTVZuIHJuZE1WdCBybmRuIHJuZG5iIHJuZE5lZ0Jpbm9taWFsIHJuZHAgcm5kUG9pc3NvbiBybmRSYXlsZWlnaCBybmRTdGF0ZVNraXAgcm5kdSBybmR2bSBybmRXZWlidWxsIHJuZFdpc2hhcnQgcm90YXRlciByb3VuZCByb3dzIHJvd3NmIHJyZWYgc2FtcGxlRGF0YSBzYXRvc3RyQyBzYXZlZCBzYXZlU3RydWN0IHNhdmV3aW5kIHNjYWxlIHNjYWxlM2Qgc2NhbGVyciBzY2FsaW5mbmFubWlzcyBzY2FsbWlzcyBzY2h0b2Mgc2NodXIgc2VhcmNoc291cmNlcGF0aCBzZWVrciBzZWxlY3Qgc2VsaWYgc2VxYSBzZXFtIHNldGRpZiBzZXRkaWZzYSBzZXR2YXJzIHNldHZ3cm1vZGUgc2V0d2luZCBzaGVsbCBzaGlmdHIgc2luIHNpbmdsZWluZGV4IHNpbmggc2xlZXAgc29scGQgc29ydGMgc29ydGNjIHNvcnRkIHNvcnRoYyBzb3J0aGNjIHNvcnRpbmQgc29ydGluZGMgc29ydG1jIHNvcnRyIHNvcnRyYyBzcEJpY29uakdyYWRTb2wgc3BDaG9sIHNwQ29uakdyYWRTb2wgc3BDcmVhdGUgc3BEZW5zZVN1Ym1hdCBzcERpYWdSdk1hdCBzcEVpZ3Ygc3BFeWUgc3BMREwgc3BsaW5lIHNwTFUgc3BOdW1OWkUgc3BPbmVzIHNwcmVhZFNoZWV0UmVhZE0gc3ByZWFkU2hlZXRSZWFkU0Egc3ByZWFkU2hlZXRXcml0ZSBzcFNjYWxlIHNwU3VibWF0IHNwVG9EZW5zZSBzcFRyVERlbnNlIHNwVFNjYWxhciBzcFplcm9zIHNxcFNvbHZlIHNxcFNvbHZlTVQgc3FwU29sdmVNVENvbnRyb2xDcmVhdGUgc3FwU29sdmVNVGxhZ3JhbmdlQ3JlYXRlIHNxcFNvbHZlTVRvdXRDcmVhdGUgc3FwU29sdmVTZXQgc3FydCBzdGF0ZW1lbnRzIHN0ZGMgc3Rkc2Mgc3RvY3Ygc3RvZiBzdHJjb21iaW5lIHN0cmluZHggc3RybGVuIHN0cnB1dCBzdHJyaW5keCBzdHJzZWN0IHN0cnNwbGl0IHN0cnNwbGl0UGFkIHN0cnRvZHQgc3RydG9mIHN0cnRvZmNwbHggc3RydHJpbWwgc3RydHJpbXIgc3RydHJ1bmMgc3RydHJ1bmNsIHN0cnRydW5jcGFkIHN0cnRydW5jciBzdWJtYXQgc3Vic2NhdCBzdWJzdHV0ZSBzdWJ2ZWMgc3VtYyBzdW1yIHN1cmZhY2Ugc3ZkIHN2ZDEgc3ZkMiBzdmRjdXN2IHN2ZHMgc3ZkdXN2IHN5c3N0YXRlIHRhYiB0YW4gdGFuaCB0ZW1wbmFtZSB0aW1lIHRpbWVkdCB0aW1lc3RyIHRpbWV1dGMgdGl0bGUgdGtmMmVwcyB0a2YycHMgdG9jYXJ0IHRvZGF5ZHQgdG9lcGxpdHogdG9rZW4gdG9wb2xhciB0cmFwY2hrIHRyaWdhbW1hIHRyaW1yIHRydW5jIHR5cGUgdHlwZWN2IHR5cGVmIHVuaW9uIHVuaW9uc2EgdW5pcWluZHggdW5pcWluZHhzYSB1bmlxdWUgdW5pcXVlc2EgdXBtYXQgdXBtYXQxIHVwcGVyIHV0Y3RvZHQgdXRjdG9kdHYgdXRyaXNvbCB2YWxzIHZhckNvdk1TIHZhckNvdlhTIHZhcmdldCB2YXJnZXRsIHZhcm1hbGwgdmFybWFyZXMgdmFycHV0IHZhcnB1dGwgdmFydHlwZWYgdmNtIHZjbXMgdmN4IHZjeHMgdmVjIHZlY2ggdmVjciB2ZWN0b3IgdmdldCB2aWV3IHZpZXd4eXogdmxpc3Qgdm5hbWVjdiB2b2x1bWUgdnB1dCB2cmVhZCB2dHlwZWN2IHdhaXQgd2FpdGMgd2Fsa2luZGV4IHdoZXJlIHdpbmRvdyB3cml0ZXIgeGxhYmVsIHhsc0dldFNoZWV0Q291bnQgeGxzR2V0U2hlZXRTaXplIHhsc0dldFNoZWV0VHlwZXMgeGxzTWFrZVJhbmdlIHhsc1JlYWRNIHhsc1JlYWRTQSB4bHNXcml0ZSB4bHNXcml0ZU0geGxzV3JpdGVTQSB4cG5kIHh0aWNzIHh5IHh5eiB5bGFiZWwgeXRpY3MgemVyb3MgemV0YSB6bGFiZWwgenRpY3MgY2RmRW1waXJpY2FsIGRvdCBoNWNyZWF0ZSBoNW9wZW4gaDVyZWFkIGg1cmVhZEF0dHJpYnV0ZSBoNXdyaXRlIGg1d3JpdGVBdHRyaWJ1dGUgbGRsIHBsb3RBZGRFcnJvckJhciBwbG90QWRkU3VyZmFjZSBwbG90Q0RGRW1waXJpY2FsIHBsb3RTZXRDb2xvcm1hcCBwbG90U2V0Q29udG91ckxhYmVscyBwbG90U2V0TGVnZW5kRm9udCBwbG90U2V0VGV4dEludGVycHJldGVyIHBsb3RTZXRYVGljQ291bnQgcGxvdFNldFlUaWNDb3VudCBwbG90U2V0WkxldmVscyBwb3dlcm0gc3Ryam9pbiBzeWx2ZXN0ZXIgc3RydHJpbSIsbGl0ZXJhbDoiREJfQUZURVJfTEFTVF9ST1cgREJfQUxMX1RBQkxFUyBEQl9CQVRDSF9PUEVSQVRJT05TIERCX0JFRk9SRV9GSVJTVF9ST1cgREJfQkxPQiBEQl9FVkVOVF9OT1RJRklDQVRJT05TIERCX0ZJTklTSF9RVUVSWSBEQl9ISUdIX1BSRUNJU0lPTiBEQl9MQVNUX0lOU0VSVF9JRCBEQl9MT1dfUFJFQ0lTSU9OX0RPVUJMRSBEQl9MT1dfUFJFQ0lTSU9OX0lOVDMyIERCX0xPV19QUkVDSVNJT05fSU5UNjQgREJfTE9XX1BSRUNJU0lPTl9OVU1CRVJTIERCX01VTFRJUExFX1JFU1VMVF9TRVRTIERCX05BTUVEX1BMQUNFSE9MREVSUyBEQl9QT1NJVElPTkFMX1BMQUNFSE9MREVSUyBEQl9QUkVQQVJFRF9RVUVSSUVTIERCX1FVRVJZX1NJWkUgREJfU0lNUExFX0xPQ0tJTkcgREJfU1lTVEVNX1RBQkxFUyBEQl9UQUJMRVMgREJfVFJBTlNBQ1RJT05TIERCX1VOSUNPREUgREJfVklFV1MgX19TVERJTiBfX1NURE9VVCBfX1NUREVSUiBfX0ZJTEVfRElSIn0sbj1lLkNPTU1FTlQoIkAiLCJAIiksYT17Y2xhc3NOYW1lOiJtZXRhIixiZWdpbjoiIyIsZW5kOiIkIixrZXl3b3Jkczp7Im1ldGEta2V5d29yZCI6ImRlZmluZSBkZWZpbmVjc3wxMCB1bmRlZiBpZmRlZiBpZm5kZWYgaWZsaWdodCBpZmRsbGNhbGwgaWZtYWMgaWZvczJ3aW4gaWZ1bml4IGVsc2UgZW5kaWYgbGluZXNvbiBsaW5lc29mZiBzcmNmaWxlIHNyY2xpbmUifSxjb250YWluczpbe2JlZ2luOi9cXFxuLyxyZWxldmFuY2U6MH0se2JlZ2luS2V5d29yZHM6ImluY2x1ZGUiLGVuZDoiJCIsa2V5d29yZHM6eyJtZXRhLWtleXdvcmQiOiJpbmNsdWRlIn0sY29udGFpbnM6W3tjbGFzc05hbWU6Im1ldGEtc3RyaW5nIixiZWdpbjonIicsZW5kOiciJyxpbGxlZ2FsOiJcXG4ifV19LGUuQ19MSU5FX0NPTU1FTlRfTU9ERSxlLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLG5dfSxpPXtiZWdpbjovXGJzdHJ1Y3RccysvLGVuZDovXHMvLGtleXdvcmRzOiJzdHJ1Y3QiLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJ0eXBlIixiZWdpbjplLlVOREVSU0NPUkVfSURFTlRfUkUscmVsZXZhbmNlOjB9XX0sbz1be2NsYXNzTmFtZToicGFyYW1zIixiZWdpbjovXCgvLGVuZDovXCkvLGV4Y2x1ZGVCZWdpbjohMCxleGNsdWRlRW5kOiEwLGVuZHNXaXRoUGFyZW50OiEwLHJlbGV2YW5jZTowLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJsaXRlcmFsIixiZWdpbjovXC5cLlwuL30sZS5DX05VTUJFUl9NT0RFLGUuQ19CTE9DS19DT01NRU5UX01PREUsbixpXX1dLGw9e2NsYXNzTmFtZToidGl0bGUiLGJlZ2luOmUuVU5ERVJTQ09SRV9JREVOVF9SRSxyZWxldmFuY2U6MH0sYz1mdW5jdGlvbih1LG0sUyl7Y29uc3QgVD1lLmluaGVyaXQoe2NsYXNzTmFtZToiZnVuY3Rpb24iLGJlZ2luS2V5d29yZHM6dSxlbmQ6bSxleGNsdWRlRW5kOiEwLGNvbnRhaW5zOltdLmNvbmNhdChvKX0sU3x8e30pO3JldHVybiBULmNvbnRhaW5zLnB1c2gobCksVC5jb250YWlucy5wdXNoKGUuQ19OVU1CRVJfTU9ERSksVC5jb250YWlucy5wdXNoKGUuQ19CTE9DS19DT01NRU5UX01PREUpLFQuY29udGFpbnMucHVzaChuKSxUfSxfPXtjbGFzc05hbWU6ImJ1aWx0X2luIixiZWdpbjoiXFxiKCIrdC5idWlsdF9pbi5zcGxpdCgiICIpLmpvaW4oInwiKSsiKVxcYiJ9LGQ9e2NsYXNzTmFtZToic3RyaW5nIixiZWdpbjonIicsZW5kOiciJyxjb250YWluczpbZS5CQUNLU0xBU0hfRVNDQVBFXSxyZWxldmFuY2U6MH0sZz17YmVnaW46ZS5VTkRFUlNDT1JFX0lERU5UX1JFKyJcXHMqXFwoIixyZXR1cm5CZWdpbjohMCxrZXl3b3Jkczp0LHJlbGV2YW5jZTowLGNvbnRhaW5zOlt7YmVnaW5LZXl3b3Jkczp0LmtleXdvcmR9LF8se2NsYXNzTmFtZToiYnVpbHRfaW4iLGJlZ2luOmUuVU5ERVJTQ09SRV9JREVOVF9SRSxyZWxldmFuY2U6MH1dfSxFPXtiZWdpbjovXCgvLGVuZDovXCkvLHJlbGV2YW5jZTowLGtleXdvcmRzOntidWlsdF9pbjp0LmJ1aWx0X2luLGxpdGVyYWw6dC5saXRlcmFsfSxjb250YWluczpbZS5DX05VTUJFUl9NT0RFLGUuQ19CTE9DS19DT01NRU5UX01PREUsbixfLGcsZCwic2VsZiJdfTtyZXR1cm4gZy5jb250YWlucy5wdXNoKEUpLHtuYW1lOiJHQVVTUyIsYWxpYXNlczpbImdzcyJdLGNhc2VfaW5zZW5zaXRpdmU6ITAsa2V5d29yZHM6dCxpbGxlZ2FsOi8oXHtbJSNdfFslI11cfXwgPC0gKS8sY29udGFpbnM6W2UuQ19OVU1CRVJfTU9ERSxlLkNfTElORV9DT01NRU5UX01PREUsZS5DX0JMT0NLX0NPTU1FTlRfTU9ERSxuLGQsYSx7Y2xhc3NOYW1lOiJrZXl3b3JkIixiZWdpbjovXGJleHRlcm5hbCAobWF0cml4fHN0cmluZ3xhcnJheXxzcGFyc2UgbWF0cml4fHN0cnVjdHxwcm9jfGtleXdvcmR8Zm4pL30sYygicHJvYyBrZXl3b3JkIiwiOyIpLGMoImZuIiwiPSIpLHtiZWdpbktleXdvcmRzOiJmb3IgdGhyZWFkZm9yIixlbmQ6LzsvLHJlbGV2YW5jZTowLGNvbnRhaW5zOltlLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLG4sRV19LHt2YXJpYW50czpbe2JlZ2luOmUuVU5ERVJTQ09SRV9JREVOVF9SRSsiXFwuIitlLlVOREVSU0NPUkVfSURFTlRfUkV9LHtiZWdpbjplLlVOREVSU0NPUkVfSURFTlRfUkUrIlxccyo9In1dLHJlbGV2YW5jZTowfSxnLGldfX1zLmV4cG9ydHM9cn0sNzc1ODc6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihlKXtjb25zdCB0PSJbQS1aX11bQS1aMC05Xy5dKiIsbj0iJSIsYT17JHBhdHRlcm46dCxrZXl3b3JkOiJJRiBETyBXSElMRSBFTkRXSElMRSBDQUxMIEVORElGIFNVQiBFTkRTVUIgR09UTyBSRVBFQVQgRU5EUkVQRUFUIEVRIExUIEdUIE5FIEdFIExFIE9SIFhPUiJ9LGk9e2NsYXNzTmFtZToibWV0YSIsYmVnaW46IihbT10pKFswLTldKykifSxvPWUuaW5oZXJpdChlLkNfTlVNQkVSX01PREUse2JlZ2luOiIoWy0rXT8oKFxcLlxcZCspfChcXGQrKShcXC5cXGQqKT8pKXwiK2UuQ19OVU1CRVJfUkV9KSxsPVtlLkNfTElORV9DT01NRU5UX01PREUsZS5DX0JMT0NLX0NPTU1FTlRfTU9ERSxlLkNPTU1FTlQoL1woLywvXCkvKSxvLGUuaW5oZXJpdChlLkFQT1NfU1RSSU5HX01PREUse2lsbGVnYWw6bnVsbH0pLGUuaW5oZXJpdChlLlFVT1RFX1NUUklOR19NT0RFLHtpbGxlZ2FsOm51bGx9KSx7Y2xhc3NOYW1lOiJuYW1lIixiZWdpbjoiKFtHXSkoWzAtOV0rXFwuP1swLTldPykifSx7Y2xhc3NOYW1lOiJuYW1lIixiZWdpbjoiKFtNXSkoWzAtOV0rXFwuP1swLTldPykifSx7Y2xhc3NOYW1lOiJhdHRyIixiZWdpbjoiKFZDfFZTfCMpIixlbmQ6IihcXGQrKSJ9LHtjbGFzc05hbWU6ImF0dHIiLGJlZ2luOiIoVlpPRlh8VlpPRll8VlpPRlopIn0se2NsYXNzTmFtZToiYnVpbHRfaW4iLGJlZ2luOiIoQVRBTnxBQlN8QUNPU3xBU0lOfFNJTnxDT1N8RVhQfEZJWHxGVVB8Uk9VTkR8TE58VEFOKShcXFspIixjb250YWluczpbb10sZW5kOiJcXF0ifSx7Y2xhc3NOYW1lOiJzeW1ib2wiLHZhcmlhbnRzOlt7YmVnaW46Ik4iLGVuZDoiXFxkKyIsaWxsZWdhbDoiXFxXIn1dfV07cmV0dXJue25hbWU6IkctY29kZSAoSVNPIDY5ODMpIixhbGlhc2VzOlsibmMiXSxjYXNlX2luc2Vuc2l0aXZlOiEwLGtleXdvcmRzOmEsY29udGFpbnM6W3tjbGFzc05hbWU6Im1ldGEiLGJlZ2luOm59LGldLmNvbmNhdChsKX19cy5leHBvcnRzPXJ9LDIzOTAwOmZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHIoZSl7cmV0dXJue25hbWU6IkdoZXJraW4iLGFsaWFzZXM6WyJmZWF0dXJlIl0sa2V5d29yZHM6IkZlYXR1cmUgQmFja2dyb3VuZCBBYmlsaXR5IEJ1c2luZXNzIE5lZWQgU2NlbmFyaW8gU2NlbmFyaW9zIFNjZW5hcmlvIE91dGxpbmUgU2NlbmFyaW8gVGVtcGxhdGUgRXhhbXBsZXMgR2l2ZW4gQW5kIFRoZW4gQnV0IFdoZW4iLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJzeW1ib2wiLGJlZ2luOiJcXCoiLHJlbGV2YW5jZTowfSx7Y2xhc3NOYW1lOiJtZXRhIixiZWdpbjoiQFteQFxcc10rIn0se2JlZ2luOiJcXHwiLGVuZDoiXFx8XFx3KiQiLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOiJbXnxdKyJ9XX0se2NsYXNzTmFtZToidmFyaWFibGUiLGJlZ2luOiI8IixlbmQ6Ij4ifSxlLkhBU0hfQ09NTUVOVF9NT0RFLHtjbGFzc05hbWU6InN0cmluZyIsYmVnaW46JyIiIicsZW5kOiciIiInfSxlLlFVT1RFX1NUUklOR19NT0RFXX19cy5leHBvcnRzPXJ9LDk2NDY6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihlKXtyZXR1cm57bmFtZToiR0xTTCIsa2V5d29yZHM6e2tleXdvcmQ6ImJyZWFrIGNvbnRpbnVlIGRpc2NhcmQgZG8gZWxzZSBmb3IgaWYgcmV0dXJuIHdoaWxlIHN3aXRjaCBjYXNlIGRlZmF1bHQgYXR0cmlidXRlIGJpbmRpbmcgYnVmZmVyIGNjdyBjZW50cm9pZCBjZW50cm9pZCB2YXJ5aW5nIGNvaGVyZW50IGNvbHVtbl9tYWpvciBjb25zdCBjdyBkZXB0aF9hbnkgZGVwdGhfZ3JlYXRlciBkZXB0aF9sZXNzIGRlcHRoX3VuY2hhbmdlZCBlYXJseV9mcmFnbWVudF90ZXN0cyBlcXVhbF9zcGFjaW5nIGZsYXQgZnJhY3Rpb25hbF9ldmVuX3NwYWNpbmcgZnJhY3Rpb25hbF9vZGRfc3BhY2luZyBoaWdocCBpbiBpbmRleCBpbm91dCBpbnZhcmlhbnQgaW52b2NhdGlvbnMgaXNvbGluZXMgbGF5b3V0IGxpbmVfc3RyaXAgbGluZXMgbGluZXNfYWRqYWNlbmN5IGxvY2FsX3NpemVfeCBsb2NhbF9zaXplX3kgbG9jYWxfc2l6ZV96IGxvY2F0aW9uIGxvd3AgbWF4X3ZlcnRpY2VzIG1lZGl1bXAgbm9wZXJzcGVjdGl2ZSBvZmZzZXQgb3JpZ2luX3VwcGVyX2xlZnQgb3V0IHBhY2tlZCBwYXRjaCBwaXhlbF9jZW50ZXJfaW50ZWdlciBwb2ludF9tb2RlIHBvaW50cyBwcmVjaXNlIHByZWNpc2lvbiBxdWFkcyByMTFmX2cxMWZfYjEwZiByMTYgcjE2X3Nub3JtIHIxNmYgcjE2aSByMTZ1aSByMzJmIHIzMmkgcjMydWkgcjggcjhfc25vcm0gcjhpIHI4dWkgcmVhZG9ubHkgcmVzdHJpY3QgcmcxNiByZzE2X3Nub3JtIHJnMTZmIHJnMTZpIHJnMTZ1aSByZzMyZiByZzMyaSByZzMydWkgcmc4IHJnOF9zbm9ybSByZzhpIHJnOHVpIHJnYjEwX2EyIHJnYjEwX2EydWkgcmdiYTE2IHJnYmExNl9zbm9ybSByZ2JhMTZmIHJnYmExNmkgcmdiYTE2dWkgcmdiYTMyZiByZ2JhMzJpIHJnYmEzMnVpIHJnYmE4IHJnYmE4X3Nub3JtIHJnYmE4aSByZ2JhOHVpIHJvd19tYWpvciBzYW1wbGUgc2hhcmVkIHNtb290aCBzdGQxNDAgc3RkNDMwIHN0cmVhbSB0cmlhbmdsZV9zdHJpcCB0cmlhbmdsZXMgdHJpYW5nbGVzX2FkamFjZW5jeSB1bmlmb3JtIHZhcnlpbmcgdmVydGljZXMgdm9sYXRpbGUgd3JpdGVvbmx5Iix0eXBlOiJhdG9taWNfdWludCBib29sIGJ2ZWMyIGJ2ZWMzIGJ2ZWM0IGRtYXQyIGRtYXQyeDIgZG1hdDJ4MyBkbWF0Mng0IGRtYXQzIGRtYXQzeDIgZG1hdDN4MyBkbWF0M3g0IGRtYXQ0IGRtYXQ0eDIgZG1hdDR4MyBkbWF0NHg0IGRvdWJsZSBkdmVjMiBkdmVjMyBkdmVjNCBmbG9hdCBpaW1hZ2UxRCBpaW1hZ2UxREFycmF5IGlpbWFnZTJEIGlpbWFnZTJEQXJyYXkgaWltYWdlMkRNUyBpaW1hZ2UyRE1TQXJyYXkgaWltYWdlMkRSZWN0IGlpbWFnZTNEIGlpbWFnZUJ1ZmZlciBpaW1hZ2VDdWJlIGlpbWFnZUN1YmVBcnJheSBpbWFnZTFEIGltYWdlMURBcnJheSBpbWFnZTJEIGltYWdlMkRBcnJheSBpbWFnZTJETVMgaW1hZ2UyRE1TQXJyYXkgaW1hZ2UyRFJlY3QgaW1hZ2UzRCBpbWFnZUJ1ZmZlciBpbWFnZUN1YmUgaW1hZ2VDdWJlQXJyYXkgaW50IGlzYW1wbGVyMUQgaXNhbXBsZXIxREFycmF5IGlzYW1wbGVyMkQgaXNhbXBsZXIyREFycmF5IGlzYW1wbGVyMkRNUyBpc2FtcGxlcjJETVNBcnJheSBpc2FtcGxlcjJEUmVjdCBpc2FtcGxlcjNEIGlzYW1wbGVyQnVmZmVyIGlzYW1wbGVyQ3ViZSBpc2FtcGxlckN1YmVBcnJheSBpdmVjMiBpdmVjMyBpdmVjNCBtYXQyIG1hdDJ4MiBtYXQyeDMgbWF0Mng0IG1hdDMgbWF0M3gyIG1hdDN4MyBtYXQzeDQgbWF0NCBtYXQ0eDIgbWF0NHgzIG1hdDR4NCBzYW1wbGVyMUQgc2FtcGxlcjFEQXJyYXkgc2FtcGxlcjFEQXJyYXlTaGFkb3cgc2FtcGxlcjFEU2hhZG93IHNhbXBsZXIyRCBzYW1wbGVyMkRBcnJheSBzYW1wbGVyMkRBcnJheVNoYWRvdyBzYW1wbGVyMkRNUyBzYW1wbGVyMkRNU0FycmF5IHNhbXBsZXIyRFJlY3Qgc2FtcGxlcjJEUmVjdFNoYWRvdyBzYW1wbGVyMkRTaGFkb3cgc2FtcGxlcjNEIHNhbXBsZXJCdWZmZXIgc2FtcGxlckN1YmUgc2FtcGxlckN1YmVBcnJheSBzYW1wbGVyQ3ViZUFycmF5U2hhZG93IHNhbXBsZXJDdWJlU2hhZG93IGltYWdlMUQgdWltYWdlMURBcnJheSB1aW1hZ2UyRCB1aW1hZ2UyREFycmF5IHVpbWFnZTJETVMgdWltYWdlMkRNU0FycmF5IHVpbWFnZTJEUmVjdCB1aW1hZ2UzRCB1aW1hZ2VCdWZmZXIgdWltYWdlQ3ViZSB1aW1hZ2VDdWJlQXJyYXkgdWludCB1c2FtcGxlcjFEIHVzYW1wbGVyMURBcnJheSB1c2FtcGxlcjJEIHVzYW1wbGVyMkRBcnJheSB1c2FtcGxlcjJETVMgdXNhbXBsZXIyRE1TQXJyYXkgdXNhbXBsZXIyRFJlY3QgdXNhbXBsZXIzRCBzYW1wbGVyQnVmZmVyIHVzYW1wbGVyQ3ViZSB1c2FtcGxlckN1YmVBcnJheSB1dmVjMiB1dmVjMyB1dmVjNCB2ZWMyIHZlYzMgdmVjNCB2b2lkIixidWlsdF9pbjoiZ2xfTWF4QXRvbWljQ291bnRlckJpbmRpbmdzIGdsX01heEF0b21pY0NvdW50ZXJCdWZmZXJTaXplIGdsX01heENsaXBEaXN0YW5jZXMgZ2xfTWF4Q2xpcFBsYW5lcyBnbF9NYXhDb21iaW5lZEF0b21pY0NvdW50ZXJCdWZmZXJzIGdsX01heENvbWJpbmVkQXRvbWljQ291bnRlcnMgZ2xfTWF4Q29tYmluZWRJbWFnZVVuaWZvcm1zIGdsX01heENvbWJpbmVkSW1hZ2VVbml0c0FuZEZyYWdtZW50T3V0cHV0cyBnbF9NYXhDb21iaW5lZFRleHR1cmVJbWFnZVVuaXRzIGdsX01heENvbXB1dGVBdG9taWNDb3VudGVyQnVmZmVycyBnbF9NYXhDb21wdXRlQXRvbWljQ291bnRlcnMgZ2xfTWF4Q29tcHV0ZUltYWdlVW5pZm9ybXMgZ2xfTWF4Q29tcHV0ZVRleHR1cmVJbWFnZVVuaXRzIGdsX01heENvbXB1dGVVbmlmb3JtQ29tcG9uZW50cyBnbF9NYXhDb21wdXRlV29ya0dyb3VwQ291bnQgZ2xfTWF4Q29tcHV0ZVdvcmtHcm91cFNpemUgZ2xfTWF4RHJhd0J1ZmZlcnMgZ2xfTWF4RnJhZ21lbnRBdG9taWNDb3VudGVyQnVmZmVycyBnbF9NYXhGcmFnbWVudEF0b21pY0NvdW50ZXJzIGdsX01heEZyYWdtZW50SW1hZ2VVbmlmb3JtcyBnbF9NYXhGcmFnbWVudElucHV0Q29tcG9uZW50cyBnbF9NYXhGcmFnbWVudElucHV0VmVjdG9ycyBnbF9NYXhGcmFnbWVudFVuaWZvcm1Db21wb25lbnRzIGdsX01heEZyYWdtZW50VW5pZm9ybVZlY3RvcnMgZ2xfTWF4R2VvbWV0cnlBdG9taWNDb3VudGVyQnVmZmVycyBnbF9NYXhHZW9tZXRyeUF0b21pY0NvdW50ZXJzIGdsX01heEdlb21ldHJ5SW1hZ2VVbmlmb3JtcyBnbF9NYXhHZW9tZXRyeUlucHV0Q29tcG9uZW50cyBnbF9NYXhHZW9tZXRyeU91dHB1dENvbXBvbmVudHMgZ2xfTWF4R2VvbWV0cnlPdXRwdXRWZXJ0aWNlcyBnbF9NYXhHZW9tZXRyeVRleHR1cmVJbWFnZVVuaXRzIGdsX01heEdlb21ldHJ5VG90YWxPdXRwdXRDb21wb25lbnRzIGdsX01heEdlb21ldHJ5VW5pZm9ybUNvbXBvbmVudHMgZ2xfTWF4R2VvbWV0cnlWYXJ5aW5nQ29tcG9uZW50cyBnbF9NYXhJbWFnZVNhbXBsZXMgZ2xfTWF4SW1hZ2VVbml0cyBnbF9NYXhMaWdodHMgZ2xfTWF4UGF0Y2hWZXJ0aWNlcyBnbF9NYXhQcm9ncmFtVGV4ZWxPZmZzZXQgZ2xfTWF4VGVzc0NvbnRyb2xBdG9taWNDb3VudGVyQnVmZmVycyBnbF9NYXhUZXNzQ29udHJvbEF0b21pY0NvdW50ZXJzIGdsX01heFRlc3NDb250cm9sSW1hZ2VVbmlmb3JtcyBnbF9NYXhUZXNzQ29udHJvbElucHV0Q29tcG9uZW50cyBnbF9NYXhUZXNzQ29udHJvbE91dHB1dENvbXBvbmVudHMgZ2xfTWF4VGVzc0NvbnRyb2xUZXh0dXJlSW1hZ2VVbml0cyBnbF9NYXhUZXNzQ29udHJvbFRvdGFsT3V0cHV0Q29tcG9uZW50cyBnbF9NYXhUZXNzQ29udHJvbFVuaWZvcm1Db21wb25lbnRzIGdsX01heFRlc3NFdmFsdWF0aW9uQXRvbWljQ291bnRlckJ1ZmZlcnMgZ2xfTWF4VGVzc0V2YWx1YXRpb25BdG9taWNDb3VudGVycyBnbF9NYXhUZXNzRXZhbHVhdGlvbkltYWdlVW5pZm9ybXMgZ2xfTWF4VGVzc0V2YWx1YXRpb25JbnB1dENvbXBvbmVudHMgZ2xfTWF4VGVzc0V2YWx1YXRpb25PdXRwdXRDb21wb25lbnRzIGdsX01heFRlc3NFdmFsdWF0aW9uVGV4dHVyZUltYWdlVW5pdHMgZ2xfTWF4VGVzc0V2YWx1YXRpb25Vbmlmb3JtQ29tcG9uZW50cyBnbF9NYXhUZXNzR2VuTGV2ZWwgZ2xfTWF4VGVzc1BhdGNoQ29tcG9uZW50cyBnbF9NYXhUZXh0dXJlQ29vcmRzIGdsX01heFRleHR1cmVJbWFnZVVuaXRzIGdsX01heFRleHR1cmVVbml0cyBnbF9NYXhWYXJ5aW5nQ29tcG9uZW50cyBnbF9NYXhWYXJ5aW5nRmxvYXRzIGdsX01heFZhcnlpbmdWZWN0b3JzIGdsX01heFZlcnRleEF0b21pY0NvdW50ZXJCdWZmZXJzIGdsX01heFZlcnRleEF0b21pY0NvdW50ZXJzIGdsX01heFZlcnRleEF0dHJpYnMgZ2xfTWF4VmVydGV4SW1hZ2VVbmlmb3JtcyBnbF9NYXhWZXJ0ZXhPdXRwdXRDb21wb25lbnRzIGdsX01heFZlcnRleE91dHB1dFZlY3RvcnMgZ2xfTWF4VmVydGV4VGV4dHVyZUltYWdlVW5pdHMgZ2xfTWF4VmVydGV4VW5pZm9ybUNvbXBvbmVudHMgZ2xfTWF4VmVydGV4VW5pZm9ybVZlY3RvcnMgZ2xfTWF4Vmlld3BvcnRzIGdsX01pblByb2dyYW1UZXhlbE9mZnNldCBnbF9CYWNrQ29sb3IgZ2xfQmFja0xpZ2h0TW9kZWxQcm9kdWN0IGdsX0JhY2tMaWdodFByb2R1Y3QgZ2xfQmFja01hdGVyaWFsIGdsX0JhY2tTZWNvbmRhcnlDb2xvciBnbF9DbGlwRGlzdGFuY2UgZ2xfQ2xpcFBsYW5lIGdsX0NsaXBWZXJ0ZXggZ2xfQ29sb3IgZ2xfRGVwdGhSYW5nZSBnbF9FeWVQbGFuZVEgZ2xfRXllUGxhbmVSIGdsX0V5ZVBsYW5lUyBnbF9FeWVQbGFuZVQgZ2xfRm9nIGdsX0ZvZ0Nvb3JkIGdsX0ZvZ0ZyYWdDb29yZCBnbF9GcmFnQ29sb3IgZ2xfRnJhZ0Nvb3JkIGdsX0ZyYWdEYXRhIGdsX0ZyYWdEZXB0aCBnbF9Gcm9udENvbG9yIGdsX0Zyb250RmFjaW5nIGdsX0Zyb250TGlnaHRNb2RlbFByb2R1Y3QgZ2xfRnJvbnRMaWdodFByb2R1Y3QgZ2xfRnJvbnRNYXRlcmlhbCBnbF9Gcm9udFNlY29uZGFyeUNvbG9yIGdsX0dsb2JhbEludm9jYXRpb25JRCBnbF9JbnN0YW5jZUlEIGdsX0ludm9jYXRpb25JRCBnbF9MYXllciBnbF9MaWdodE1vZGVsIGdsX0xpZ2h0U291cmNlIGdsX0xvY2FsSW52b2NhdGlvbklEIGdsX0xvY2FsSW52b2NhdGlvbkluZGV4IGdsX01vZGVsVmlld01hdHJpeCBnbF9Nb2RlbFZpZXdNYXRyaXhJbnZlcnNlIGdsX01vZGVsVmlld01hdHJpeEludmVyc2VUcmFuc3Bvc2UgZ2xfTW9kZWxWaWV3TWF0cml4VHJhbnNwb3NlIGdsX01vZGVsVmlld1Byb2plY3Rpb25NYXRyaXggZ2xfTW9kZWxWaWV3UHJvamVjdGlvbk1hdHJpeEludmVyc2UgZ2xfTW9kZWxWaWV3UHJvamVjdGlvbk1hdHJpeEludmVyc2VUcmFuc3Bvc2UgZ2xfTW9kZWxWaWV3UHJvamVjdGlvbk1hdHJpeFRyYW5zcG9zZSBnbF9NdWx0aVRleENvb3JkMCBnbF9NdWx0aVRleENvb3JkMSBnbF9NdWx0aVRleENvb3JkMiBnbF9NdWx0aVRleENvb3JkMyBnbF9NdWx0aVRleENvb3JkNCBnbF9NdWx0aVRleENvb3JkNSBnbF9NdWx0aVRleENvb3JkNiBnbF9NdWx0aVRleENvb3JkNyBnbF9Ob3JtYWwgZ2xfTm9ybWFsTWF0cml4IGdsX05vcm1hbFNjYWxlIGdsX051bVNhbXBsZXMgZ2xfTnVtV29ya0dyb3VwcyBnbF9PYmplY3RQbGFuZVEgZ2xfT2JqZWN0UGxhbmVSIGdsX09iamVjdFBsYW5lUyBnbF9PYmplY3RQbGFuZVQgZ2xfUGF0Y2hWZXJ0aWNlc0luIGdsX1BvaW50IGdsX1BvaW50Q29vcmQgZ2xfUG9pbnRTaXplIGdsX1Bvc2l0aW9uIGdsX1ByaW1pdGl2ZUlEIGdsX1ByaW1pdGl2ZUlESW4gZ2xfUHJvamVjdGlvbk1hdHJpeCBnbF9Qcm9qZWN0aW9uTWF0cml4SW52ZXJzZSBnbF9Qcm9qZWN0aW9uTWF0cml4SW52ZXJzZVRyYW5zcG9zZSBnbF9Qcm9qZWN0aW9uTWF0cml4VHJhbnNwb3NlIGdsX1NhbXBsZUlEIGdsX1NhbXBsZU1hc2sgZ2xfU2FtcGxlTWFza0luIGdsX1NhbXBsZVBvc2l0aW9uIGdsX1NlY29uZGFyeUNvbG9yIGdsX1Rlc3NDb29yZCBnbF9UZXNzTGV2ZWxJbm5lciBnbF9UZXNzTGV2ZWxPdXRlciBnbF9UZXhDb29yZCBnbF9UZXh0dXJlRW52Q29sb3IgZ2xfVGV4dHVyZU1hdHJpeCBnbF9UZXh0dXJlTWF0cml4SW52ZXJzZSBnbF9UZXh0dXJlTWF0cml4SW52ZXJzZVRyYW5zcG9zZSBnbF9UZXh0dXJlTWF0cml4VHJhbnNwb3NlIGdsX1ZlcnRleCBnbF9WZXJ0ZXhJRCBnbF9WaWV3cG9ydEluZGV4IGdsX1dvcmtHcm91cElEIGdsX1dvcmtHcm91cFNpemUgZ2xfaW4gZ2xfb3V0IEVtaXRTdHJlYW1WZXJ0ZXggRW1pdFZlcnRleCBFbmRQcmltaXRpdmUgRW5kU3RyZWFtUHJpbWl0aXZlIGFicyBhY29zIGFjb3NoIGFsbCBhbnkgYXNpbiBhc2luaCBhdGFuIGF0YW5oIGF0b21pY0FkZCBhdG9taWNBbmQgYXRvbWljQ29tcFN3YXAgYXRvbWljQ291bnRlciBhdG9taWNDb3VudGVyRGVjcmVtZW50IGF0b21pY0NvdW50ZXJJbmNyZW1lbnQgYXRvbWljRXhjaGFuZ2UgYXRvbWljTWF4IGF0b21pY01pbiBhdG9taWNPciBhdG9taWNYb3IgYmFycmllciBiaXRDb3VudCBiaXRmaWVsZEV4dHJhY3QgYml0ZmllbGRJbnNlcnQgYml0ZmllbGRSZXZlcnNlIGNlaWwgY2xhbXAgY29zIGNvc2ggY3Jvc3MgZEZkeCBkRmR5IGRlZ3JlZXMgZGV0ZXJtaW5hbnQgZGlzdGFuY2UgZG90IGVxdWFsIGV4cCBleHAyIGZhY2Vmb3J3YXJkIGZpbmRMU0IgZmluZE1TQiBmbG9hdEJpdHNUb0ludCBmbG9hdEJpdHNUb1VpbnQgZmxvb3IgZm1hIGZyYWN0IGZyZXhwIGZ0cmFuc2Zvcm0gZndpZHRoIGdyZWF0ZXJUaGFuIGdyZWF0ZXJUaGFuRXF1YWwgZ3JvdXBNZW1vcnlCYXJyaWVyIGltYWdlQXRvbWljQWRkIGltYWdlQXRvbWljQW5kIGltYWdlQXRvbWljQ29tcFN3YXAgaW1hZ2VBdG9taWNFeGNoYW5nZSBpbWFnZUF0b21pY01heCBpbWFnZUF0b21pY01pbiBpbWFnZUF0b21pY09yIGltYWdlQXRvbWljWG9yIGltYWdlTG9hZCBpbWFnZVNpemUgaW1hZ2VTdG9yZSBpbXVsRXh0ZW5kZWQgaW50Qml0c1RvRmxvYXQgaW50ZXJwb2xhdGVBdENlbnRyb2lkIGludGVycG9sYXRlQXRPZmZzZXQgaW50ZXJwb2xhdGVBdFNhbXBsZSBpbnZlcnNlIGludmVyc2VzcXJ0IGlzaW5mIGlzbmFuIGxkZXhwIGxlbmd0aCBsZXNzVGhhbiBsZXNzVGhhbkVxdWFsIGxvZyBsb2cyIG1hdHJpeENvbXBNdWx0IG1heCBtZW1vcnlCYXJyaWVyIG1lbW9yeUJhcnJpZXJBdG9taWNDb3VudGVyIG1lbW9yeUJhcnJpZXJCdWZmZXIgbWVtb3J5QmFycmllckltYWdlIG1lbW9yeUJhcnJpZXJTaGFyZWQgbWluIG1peCBtb2QgbW9kZiBub2lzZTEgbm9pc2UyIG5vaXNlMyBub2lzZTQgbm9ybWFsaXplIG5vdCBub3RFcXVhbCBvdXRlclByb2R1Y3QgcGFja0RvdWJsZTJ4MzIgcGFja0hhbGYyeDE2IHBhY2tTbm9ybTJ4MTYgcGFja1Nub3JtNHg4IHBhY2tVbm9ybTJ4MTYgcGFja1Vub3JtNHg4IHBvdyByYWRpYW5zIHJlZmxlY3QgcmVmcmFjdCByb3VuZCByb3VuZEV2ZW4gc2hhZG93MUQgc2hhZG93MURMb2Qgc2hhZG93MURQcm9qIHNoYWRvdzFEUHJvakxvZCBzaGFkb3cyRCBzaGFkb3cyRExvZCBzaGFkb3cyRFByb2ogc2hhZG93MkRQcm9qTG9kIHNpZ24gc2luIHNpbmggc21vb3Roc3RlcCBzcXJ0IHN0ZXAgdGFuIHRhbmggdGV4ZWxGZXRjaCB0ZXhlbEZldGNoT2Zmc2V0IHRleHR1cmUgdGV4dHVyZTFEIHRleHR1cmUxRExvZCB0ZXh0dXJlMURQcm9qIHRleHR1cmUxRFByb2pMb2QgdGV4dHVyZTJEIHRleHR1cmUyRExvZCB0ZXh0dXJlMkRQcm9qIHRleHR1cmUyRFByb2pMb2QgdGV4dHVyZTNEIHRleHR1cmUzRExvZCB0ZXh0dXJlM0RQcm9qIHRleHR1cmUzRFByb2pMb2QgdGV4dHVyZUN1YmUgdGV4dHVyZUN1YmVMb2QgdGV4dHVyZUdhdGhlciB0ZXh0dXJlR2F0aGVyT2Zmc2V0IHRleHR1cmVHYXRoZXJPZmZzZXRzIHRleHR1cmVHcmFkIHRleHR1cmVHcmFkT2Zmc2V0IHRleHR1cmVMb2QgdGV4dHVyZUxvZE9mZnNldCB0ZXh0dXJlT2Zmc2V0IHRleHR1cmVQcm9qIHRleHR1cmVQcm9qR3JhZCB0ZXh0dXJlUHJvakdyYWRPZmZzZXQgdGV4dHVyZVByb2pMb2QgdGV4dHVyZVByb2pMb2RPZmZzZXQgdGV4dHVyZVByb2pPZmZzZXQgdGV4dHVyZVF1ZXJ5TGV2ZWxzIHRleHR1cmVRdWVyeUxvZCB0ZXh0dXJlU2l6ZSB0cmFuc3Bvc2UgdHJ1bmMgdWFkZENhcnJ5IHVpbnRCaXRzVG9GbG9hdCB1bXVsRXh0ZW5kZWQgdW5wYWNrRG91YmxlMngzMiB1bnBhY2tIYWxmMngxNiB1bnBhY2tTbm9ybTJ4MTYgdW5wYWNrU25vcm00eDggdW5wYWNrVW5vcm0yeDE2IHVucGFja1Vub3JtNHg4IHVzdWJCb3Jyb3ciLGxpdGVyYWw6InRydWUgZmFsc2UifSxpbGxlZ2FsOiciJyxjb250YWluczpbZS5DX0xJTkVfQ09NTUVOVF9NT0RFLGUuQ19CTE9DS19DT01NRU5UX01PREUsZS5DX05VTUJFUl9NT0RFLHtjbGFzc05hbWU6Im1ldGEiLGJlZ2luOiIjIixlbmQ6IiQifV19fXMuZXhwb3J0cz1yfSw4NjUzMjpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGUpe3JldHVybntuYW1lOiJHTUwiLGNhc2VfaW5zZW5zaXRpdmU6ITEsa2V5d29yZHM6e2tleXdvcmQ6ImJlZ2luIGVuZCBpZiB0aGVuIGVsc2Ugd2hpbGUgZG8gZm9yIGJyZWFrIGNvbnRpbnVlIHdpdGggdW50aWwgcmVwZWF0IGV4aXQgYW5kIG9yIHhvciBub3QgcmV0dXJuIG1vZCBkaXYgc3dpdGNoIGNhc2UgZGVmYXVsdCB2YXIgZ2xvYmFsdmFyIGVudW0gZnVuY3Rpb24gY29uc3RydWN0b3IgZGVsZXRlICNtYWNybyAjcmVnaW9uICNlbmRyZWdpb24iLGJ1aWx0X2luOiJpc19yZWFsIGlzX3N0cmluZyBpc19hcnJheSBpc191bmRlZmluZWQgaXNfaW50MzIgaXNfaW50NjQgaXNfcHRyIGlzX3ZlYzMgaXNfdmVjNCBpc19tYXRyaXggaXNfYm9vbCBpc19tZXRob2QgaXNfc3RydWN0IGlzX2luZmluaXR5IGlzX25hbiBpc19udW1lcmljIHR5cGVvZiB2YXJpYWJsZV9nbG9iYWxfZXhpc3RzIHZhcmlhYmxlX2dsb2JhbF9nZXQgdmFyaWFibGVfZ2xvYmFsX3NldCB2YXJpYWJsZV9pbnN0YW5jZV9leGlzdHMgdmFyaWFibGVfaW5zdGFuY2VfZ2V0IHZhcmlhYmxlX2luc3RhbmNlX3NldCB2YXJpYWJsZV9pbnN0YW5jZV9nZXRfbmFtZXMgdmFyaWFibGVfc3RydWN0X2V4aXN0cyB2YXJpYWJsZV9zdHJ1Y3RfZ2V0IHZhcmlhYmxlX3N0cnVjdF9nZXRfbmFtZXMgdmFyaWFibGVfc3RydWN0X25hbWVzX2NvdW50IHZhcmlhYmxlX3N0cnVjdF9yZW1vdmUgdmFyaWFibGVfc3RydWN0X3NldCBhcnJheV9kZWxldGUgYXJyYXlfaW5zZXJ0IGFycmF5X2xlbmd0aCBhcnJheV9sZW5ndGhfMWQgYXJyYXlfbGVuZ3RoXzJkIGFycmF5X2hlaWdodF8yZCBhcnJheV9lcXVhbHMgYXJyYXlfY3JlYXRlIGFycmF5X2NvcHkgYXJyYXlfcG9wIGFycmF5X3B1c2ggYXJyYXlfcmVzaXplIGFycmF5X3NvcnQgcmFuZG9tIHJhbmRvbV9yYW5nZSBpcmFuZG9tIGlyYW5kb21fcmFuZ2UgcmFuZG9tX3NldF9zZWVkIHJhbmRvbV9nZXRfc2VlZCByYW5kb21pemUgcmFuZG9taXNlIGNob29zZSBhYnMgcm91bmQgZmxvb3IgY2VpbCBzaWduIGZyYWMgc3FydCBzcXIgZXhwIGxuIGxvZzIgbG9nMTAgc2luIGNvcyB0YW4gYXJjc2luIGFyY2NvcyBhcmN0YW4gYXJjdGFuMiBkc2luIGRjb3MgZHRhbiBkYXJjc2luIGRhcmNjb3MgZGFyY3RhbiBkYXJjdGFuMiBkZWd0b3JhZCByYWR0b2RlZyBwb3dlciBsb2duIG1pbiBtYXggbWVhbiBtZWRpYW4gY2xhbXAgbGVycCBkb3RfcHJvZHVjdCBkb3RfcHJvZHVjdF8zZCBkb3RfcHJvZHVjdF9ub3JtYWxpc2VkIGRvdF9wcm9kdWN0XzNkX25vcm1hbGlzZWQgZG90X3Byb2R1Y3Rfbm9ybWFsaXplZCBkb3RfcHJvZHVjdF8zZF9ub3JtYWxpemVkIG1hdGhfc2V0X2Vwc2lsb24gbWF0aF9nZXRfZXBzaWxvbiBhbmdsZV9kaWZmZXJlbmNlIHBvaW50X2Rpc3RhbmNlXzNkIHBvaW50X2Rpc3RhbmNlIHBvaW50X2RpcmVjdGlvbiBsZW5ndGhkaXJfeCBsZW5ndGhkaXJfeSByZWFsIHN0cmluZyBpbnQ2NCBwdHIgc3RyaW5nX2Zvcm1hdCBjaHIgYW5zaV9jaGFyIG9yZCBzdHJpbmdfbGVuZ3RoIHN0cmluZ19ieXRlX2xlbmd0aCBzdHJpbmdfcG9zIHN0cmluZ19jb3B5IHN0cmluZ19jaGFyX2F0IHN0cmluZ19vcmRfYXQgc3RyaW5nX2J5dGVfYXQgc3RyaW5nX3NldF9ieXRlX2F0IHN0cmluZ19kZWxldGUgc3RyaW5nX2luc2VydCBzdHJpbmdfbG93ZXIgc3RyaW5nX3VwcGVyIHN0cmluZ19yZXBlYXQgc3RyaW5nX2xldHRlcnMgc3RyaW5nX2RpZ2l0cyBzdHJpbmdfbGV0dGVyc2RpZ2l0cyBzdHJpbmdfcmVwbGFjZSBzdHJpbmdfcmVwbGFjZV9hbGwgc3RyaW5nX2NvdW50IHN0cmluZ19oYXNoX3RvX25ld2xpbmUgY2xpcGJvYXJkX2hhc190ZXh0IGNsaXBib2FyZF9zZXRfdGV4dCBjbGlwYm9hcmRfZ2V0X3RleHQgZGF0ZV9jdXJyZW50X2RhdGV0aW1lIGRhdGVfY3JlYXRlX2RhdGV0aW1lIGRhdGVfdmFsaWRfZGF0ZXRpbWUgZGF0ZV9pbmNfeWVhciBkYXRlX2luY19tb250aCBkYXRlX2luY193ZWVrIGRhdGVfaW5jX2RheSBkYXRlX2luY19ob3VyIGRhdGVfaW5jX21pbnV0ZSBkYXRlX2luY19zZWNvbmQgZGF0ZV9nZXRfeWVhciBkYXRlX2dldF9tb250aCBkYXRlX2dldF93ZWVrIGRhdGVfZ2V0X2RheSBkYXRlX2dldF9ob3VyIGRhdGVfZ2V0X21pbnV0ZSBkYXRlX2dldF9zZWNvbmQgZGF0ZV9nZXRfd2Vla2RheSBkYXRlX2dldF9kYXlfb2ZfeWVhciBkYXRlX2dldF9ob3VyX29mX3llYXIgZGF0ZV9nZXRfbWludXRlX29mX3llYXIgZGF0ZV9nZXRfc2Vjb25kX29mX3llYXIgZGF0ZV95ZWFyX3NwYW4gZGF0ZV9tb250aF9zcGFuIGRhdGVfd2Vla19zcGFuIGRhdGVfZGF5X3NwYW4gZGF0ZV9ob3VyX3NwYW4gZGF0ZV9taW51dGVfc3BhbiBkYXRlX3NlY29uZF9zcGFuIGRhdGVfY29tcGFyZV9kYXRldGltZSBkYXRlX2NvbXBhcmVfZGF0ZSBkYXRlX2NvbXBhcmVfdGltZSBkYXRlX2RhdGVfb2YgZGF0ZV90aW1lX29mIGRhdGVfZGF0ZXRpbWVfc3RyaW5nIGRhdGVfZGF0ZV9zdHJpbmcgZGF0ZV90aW1lX3N0cmluZyBkYXRlX2RheXNfaW5fbW9udGggZGF0ZV9kYXlzX2luX3llYXIgZGF0ZV9sZWFwX3llYXIgZGF0ZV9pc190b2RheSBkYXRlX3NldF90aW1lem9uZSBkYXRlX2dldF90aW1lem9uZSBnYW1lX3NldF9zcGVlZCBnYW1lX2dldF9zcGVlZCBtb3Rpb25fc2V0IG1vdGlvbl9hZGQgcGxhY2VfZnJlZSBwbGFjZV9lbXB0eSBwbGFjZV9tZWV0aW5nIHBsYWNlX3NuYXBwZWQgbW92ZV9yYW5kb20gbW92ZV9zbmFwIG1vdmVfdG93YXJkc19wb2ludCBtb3ZlX2NvbnRhY3Rfc29saWQgbW92ZV9jb250YWN0X2FsbCBtb3ZlX291dHNpZGVfc29saWQgbW92ZV9vdXRzaWRlX2FsbCBtb3ZlX2JvdW5jZV9zb2xpZCBtb3ZlX2JvdW5jZV9hbGwgbW92ZV93cmFwIGRpc3RhbmNlX3RvX3BvaW50IGRpc3RhbmNlX3RvX29iamVjdCBwb3NpdGlvbl9lbXB0eSBwb3NpdGlvbl9tZWV0aW5nIHBhdGhfc3RhcnQgcGF0aF9lbmQgbXBfbGluZWFyX3N0ZXAgbXBfcG90ZW50aWFsX3N0ZXAgbXBfbGluZWFyX3N0ZXBfb2JqZWN0IG1wX3BvdGVudGlhbF9zdGVwX29iamVjdCBtcF9wb3RlbnRpYWxfc2V0dGluZ3MgbXBfbGluZWFyX3BhdGggbXBfcG90ZW50aWFsX3BhdGggbXBfbGluZWFyX3BhdGhfb2JqZWN0IG1wX3BvdGVudGlhbF9wYXRoX29iamVjdCBtcF9ncmlkX2NyZWF0ZSBtcF9ncmlkX2Rlc3Ryb3kgbXBfZ3JpZF9jbGVhcl9hbGwgbXBfZ3JpZF9jbGVhcl9jZWxsIG1wX2dyaWRfY2xlYXJfcmVjdGFuZ2xlIG1wX2dyaWRfYWRkX2NlbGwgbXBfZ3JpZF9nZXRfY2VsbCBtcF9ncmlkX2FkZF9yZWN0YW5nbGUgbXBfZ3JpZF9hZGRfaW5zdGFuY2VzIG1wX2dyaWRfcGF0aCBtcF9ncmlkX2RyYXcgbXBfZ3JpZF90b19kc19ncmlkIGNvbGxpc2lvbl9wb2ludCBjb2xsaXNpb25fcmVjdGFuZ2xlIGNvbGxpc2lvbl9jaXJjbGUgY29sbGlzaW9uX2VsbGlwc2UgY29sbGlzaW9uX2xpbmUgY29sbGlzaW9uX3BvaW50X2xpc3QgY29sbGlzaW9uX3JlY3RhbmdsZV9saXN0IGNvbGxpc2lvbl9jaXJjbGVfbGlzdCBjb2xsaXNpb25fZWxsaXBzZV9saXN0IGNvbGxpc2lvbl9saW5lX2xpc3QgaW5zdGFuY2VfcG9zaXRpb25fbGlzdCBpbnN0YW5jZV9wbGFjZV9saXN0IHBvaW50X2luX3JlY3RhbmdsZSBwb2ludF9pbl90cmlhbmdsZSBwb2ludF9pbl9jaXJjbGUgcmVjdGFuZ2xlX2luX3JlY3RhbmdsZSByZWN0YW5nbGVfaW5fdHJpYW5nbGUgcmVjdGFuZ2xlX2luX2NpcmNsZSBpbnN0YW5jZV9maW5kIGluc3RhbmNlX2V4aXN0cyBpbnN0YW5jZV9udW1iZXIgaW5zdGFuY2VfcG9zaXRpb24gaW5zdGFuY2VfbmVhcmVzdCBpbnN0YW5jZV9mdXJ0aGVzdCBpbnN0YW5jZV9wbGFjZSBpbnN0YW5jZV9jcmVhdGVfZGVwdGggaW5zdGFuY2VfY3JlYXRlX2xheWVyIGluc3RhbmNlX2NvcHkgaW5zdGFuY2VfY2hhbmdlIGluc3RhbmNlX2Rlc3Ryb3kgcG9zaXRpb25fZGVzdHJveSBwb3NpdGlvbl9jaGFuZ2UgaW5zdGFuY2VfaWRfZ2V0IGluc3RhbmNlX2RlYWN0aXZhdGVfYWxsIGluc3RhbmNlX2RlYWN0aXZhdGVfb2JqZWN0IGluc3RhbmNlX2RlYWN0aXZhdGVfcmVnaW9uIGluc3RhbmNlX2FjdGl2YXRlX2FsbCBpbnN0YW5jZV9hY3RpdmF0ZV9vYmplY3QgaW5zdGFuY2VfYWN0aXZhdGVfcmVnaW9uIHJvb21fZ290byByb29tX2dvdG9fcHJldmlvdXMgcm9vbV9nb3RvX25leHQgcm9vbV9wcmV2aW91cyByb29tX25leHQgcm9vbV9yZXN0YXJ0IGdhbWVfZW5kIGdhbWVfcmVzdGFydCBnYW1lX2xvYWQgZ2FtZV9zYXZlIGdhbWVfc2F2ZV9idWZmZXIgZ2FtZV9sb2FkX2J1ZmZlciBldmVudF9wZXJmb3JtIGV2ZW50X3VzZXIgZXZlbnRfcGVyZm9ybV9vYmplY3QgZXZlbnRfaW5oZXJpdGVkIHNob3dfZGVidWdfbWVzc2FnZSBzaG93X2RlYnVnX292ZXJsYXkgZGVidWdfZXZlbnQgZGVidWdfZ2V0X2NhbGxzdGFjayBhbGFybV9nZXQgYWxhcm1fc2V0IGZvbnRfdGV4dHVyZV9wYWdlX3NpemUga2V5Ym9hcmRfc2V0X21hcCBrZXlib2FyZF9nZXRfbWFwIGtleWJvYXJkX3Vuc2V0X21hcCBrZXlib2FyZF9jaGVjayBrZXlib2FyZF9jaGVja19wcmVzc2VkIGtleWJvYXJkX2NoZWNrX3JlbGVhc2VkIGtleWJvYXJkX2NoZWNrX2RpcmVjdCBrZXlib2FyZF9nZXRfbnVtbG9jayBrZXlib2FyZF9zZXRfbnVtbG9jayBrZXlib2FyZF9rZXlfcHJlc3Mga2V5Ym9hcmRfa2V5X3JlbGVhc2Uga2V5Ym9hcmRfY2xlYXIgaW9fY2xlYXIgbW91c2VfY2hlY2tfYnV0dG9uIG1vdXNlX2NoZWNrX2J1dHRvbl9wcmVzc2VkIG1vdXNlX2NoZWNrX2J1dHRvbl9yZWxlYXNlZCBtb3VzZV93aGVlbF91cCBtb3VzZV93aGVlbF9kb3duIG1vdXNlX2NsZWFyIGRyYXdfc2VsZiBkcmF3X3Nwcml0ZSBkcmF3X3Nwcml0ZV9wb3MgZHJhd19zcHJpdGVfZXh0IGRyYXdfc3ByaXRlX3N0cmV0Y2hlZCBkcmF3X3Nwcml0ZV9zdHJldGNoZWRfZXh0IGRyYXdfc3ByaXRlX3RpbGVkIGRyYXdfc3ByaXRlX3RpbGVkX2V4dCBkcmF3X3Nwcml0ZV9wYXJ0IGRyYXdfc3ByaXRlX3BhcnRfZXh0IGRyYXdfc3ByaXRlX2dlbmVyYWwgZHJhd19jbGVhciBkcmF3X2NsZWFyX2FscGhhIGRyYXdfcG9pbnQgZHJhd19saW5lIGRyYXdfbGluZV93aWR0aCBkcmF3X3JlY3RhbmdsZSBkcmF3X3JvdW5kcmVjdCBkcmF3X3JvdW5kcmVjdF9leHQgZHJhd190cmlhbmdsZSBkcmF3X2NpcmNsZSBkcmF3X2VsbGlwc2UgZHJhd19zZXRfY2lyY2xlX3ByZWNpc2lvbiBkcmF3X2Fycm93IGRyYXdfYnV0dG9uIGRyYXdfcGF0aCBkcmF3X2hlYWx0aGJhciBkcmF3X2dldHBpeGVsIGRyYXdfZ2V0cGl4ZWxfZXh0IGRyYXdfc2V0X2NvbG91ciBkcmF3X3NldF9jb2xvciBkcmF3X3NldF9hbHBoYSBkcmF3X2dldF9jb2xvdXIgZHJhd19nZXRfY29sb3IgZHJhd19nZXRfYWxwaGEgbWVyZ2VfY29sb3VyIG1ha2VfY29sb3VyX3JnYiBtYWtlX2NvbG91cl9oc3YgY29sb3VyX2dldF9yZWQgY29sb3VyX2dldF9ncmVlbiBjb2xvdXJfZ2V0X2JsdWUgY29sb3VyX2dldF9odWUgY29sb3VyX2dldF9zYXR1cmF0aW9uIGNvbG91cl9nZXRfdmFsdWUgbWVyZ2VfY29sb3IgbWFrZV9jb2xvcl9yZ2IgbWFrZV9jb2xvcl9oc3YgY29sb3JfZ2V0X3JlZCBjb2xvcl9nZXRfZ3JlZW4gY29sb3JfZ2V0X2JsdWUgY29sb3JfZ2V0X2h1ZSBjb2xvcl9nZXRfc2F0dXJhdGlvbiBjb2xvcl9nZXRfdmFsdWUgbWVyZ2VfY29sb3Igc2NyZWVuX3NhdmUgc2NyZWVuX3NhdmVfcGFydCBkcmF3X3NldF9mb250IGRyYXdfc2V0X2hhbGlnbiBkcmF3X3NldF92YWxpZ24gZHJhd190ZXh0IGRyYXdfdGV4dF9leHQgc3RyaW5nX3dpZHRoIHN0cmluZ19oZWlnaHQgc3RyaW5nX3dpZHRoX2V4dCBzdHJpbmdfaGVpZ2h0X2V4dCBkcmF3X3RleHRfdHJhbnNmb3JtZWQgZHJhd190ZXh0X2V4dF90cmFuc2Zvcm1lZCBkcmF3X3RleHRfY29sb3VyIGRyYXdfdGV4dF9leHRfY29sb3VyIGRyYXdfdGV4dF90cmFuc2Zvcm1lZF9jb2xvdXIgZHJhd190ZXh0X2V4dF90cmFuc2Zvcm1lZF9jb2xvdXIgZHJhd190ZXh0X2NvbG9yIGRyYXdfdGV4dF9leHRfY29sb3IgZHJhd190ZXh0X3RyYW5zZm9ybWVkX2NvbG9yIGRyYXdfdGV4dF9leHRfdHJhbnNmb3JtZWRfY29sb3IgZHJhd19wb2ludF9jb2xvdXIgZHJhd19saW5lX2NvbG91ciBkcmF3X2xpbmVfd2lkdGhfY29sb3VyIGRyYXdfcmVjdGFuZ2xlX2NvbG91ciBkcmF3X3JvdW5kcmVjdF9jb2xvdXIgZHJhd19yb3VuZHJlY3RfY29sb3VyX2V4dCBkcmF3X3RyaWFuZ2xlX2NvbG91ciBkcmF3X2NpcmNsZV9jb2xvdXIgZHJhd19lbGxpcHNlX2NvbG91ciBkcmF3X3BvaW50X2NvbG9yIGRyYXdfbGluZV9jb2xvciBkcmF3X2xpbmVfd2lkdGhfY29sb3IgZHJhd19yZWN0YW5nbGVfY29sb3IgZHJhd19yb3VuZHJlY3RfY29sb3IgZHJhd19yb3VuZHJlY3RfY29sb3JfZXh0IGRyYXdfdHJpYW5nbGVfY29sb3IgZHJhd19jaXJjbGVfY29sb3IgZHJhd19lbGxpcHNlX2NvbG9yIGRyYXdfcHJpbWl0aXZlX2JlZ2luIGRyYXdfdmVydGV4IGRyYXdfdmVydGV4X2NvbG91ciBkcmF3X3ZlcnRleF9jb2xvciBkcmF3X3ByaW1pdGl2ZV9lbmQgc3ByaXRlX2dldF91dnMgZm9udF9nZXRfdXZzIHNwcml0ZV9nZXRfdGV4dHVyZSBmb250X2dldF90ZXh0dXJlIHRleHR1cmVfZ2V0X3dpZHRoIHRleHR1cmVfZ2V0X2hlaWdodCB0ZXh0dXJlX2dldF91dnMgZHJhd19wcmltaXRpdmVfYmVnaW5fdGV4dHVyZSBkcmF3X3ZlcnRleF90ZXh0dXJlIGRyYXdfdmVydGV4X3RleHR1cmVfY29sb3VyIGRyYXdfdmVydGV4X3RleHR1cmVfY29sb3IgdGV4dHVyZV9nbG9iYWxfc2NhbGUgc3VyZmFjZV9jcmVhdGUgc3VyZmFjZV9jcmVhdGVfZXh0IHN1cmZhY2VfcmVzaXplIHN1cmZhY2VfZnJlZSBzdXJmYWNlX2V4aXN0cyBzdXJmYWNlX2dldF93aWR0aCBzdXJmYWNlX2dldF9oZWlnaHQgc3VyZmFjZV9nZXRfdGV4dHVyZSBzdXJmYWNlX3NldF90YXJnZXQgc3VyZmFjZV9zZXRfdGFyZ2V0X2V4dCBzdXJmYWNlX3Jlc2V0X3RhcmdldCBzdXJmYWNlX2RlcHRoX2Rpc2FibGUgc3VyZmFjZV9nZXRfZGVwdGhfZGlzYWJsZSBkcmF3X3N1cmZhY2UgZHJhd19zdXJmYWNlX3N0cmV0Y2hlZCBkcmF3X3N1cmZhY2VfdGlsZWQgZHJhd19zdXJmYWNlX3BhcnQgZHJhd19zdXJmYWNlX2V4dCBkcmF3X3N1cmZhY2Vfc3RyZXRjaGVkX2V4dCBkcmF3X3N1cmZhY2VfdGlsZWRfZXh0IGRyYXdfc3VyZmFjZV9wYXJ0X2V4dCBkcmF3X3N1cmZhY2VfZ2VuZXJhbCBzdXJmYWNlX2dldHBpeGVsIHN1cmZhY2VfZ2V0cGl4ZWxfZXh0IHN1cmZhY2Vfc2F2ZSBzdXJmYWNlX3NhdmVfcGFydCBzdXJmYWNlX2NvcHkgc3VyZmFjZV9jb3B5X3BhcnQgYXBwbGljYXRpb25fc3VyZmFjZV9kcmF3X2VuYWJsZSBhcHBsaWNhdGlvbl9nZXRfcG9zaXRpb24gYXBwbGljYXRpb25fc3VyZmFjZV9lbmFibGUgYXBwbGljYXRpb25fc3VyZmFjZV9pc19lbmFibGVkIGRpc3BsYXlfZ2V0X3dpZHRoIGRpc3BsYXlfZ2V0X2hlaWdodCBkaXNwbGF5X2dldF9vcmllbnRhdGlvbiBkaXNwbGF5X2dldF9ndWlfd2lkdGggZGlzcGxheV9nZXRfZ3VpX2hlaWdodCBkaXNwbGF5X3Jlc2V0IGRpc3BsYXlfbW91c2VfZ2V0X3ggZGlzcGxheV9tb3VzZV9nZXRfeSBkaXNwbGF5X21vdXNlX3NldCBkaXNwbGF5X3NldF91aV92aXNpYmlsaXR5IHdpbmRvd19zZXRfZnVsbHNjcmVlbiB3aW5kb3dfZ2V0X2Z1bGxzY3JlZW4gd2luZG93X3NldF9jYXB0aW9uIHdpbmRvd19zZXRfbWluX3dpZHRoIHdpbmRvd19zZXRfbWF4X3dpZHRoIHdpbmRvd19zZXRfbWluX2hlaWdodCB3aW5kb3dfc2V0X21heF9oZWlnaHQgd2luZG93X2dldF92aXNpYmxlX3JlY3RzIHdpbmRvd19nZXRfY2FwdGlvbiB3aW5kb3dfc2V0X2N1cnNvciB3aW5kb3dfZ2V0X2N1cnNvciB3aW5kb3dfc2V0X2NvbG91ciB3aW5kb3dfZ2V0X2NvbG91ciB3aW5kb3dfc2V0X2NvbG9yIHdpbmRvd19nZXRfY29sb3Igd2luZG93X3NldF9wb3NpdGlvbiB3aW5kb3dfc2V0X3NpemUgd2luZG93X3NldF9yZWN0YW5nbGUgd2luZG93X2NlbnRlciB3aW5kb3dfZ2V0X3ggd2luZG93X2dldF95IHdpbmRvd19nZXRfd2lkdGggd2luZG93X2dldF9oZWlnaHQgd2luZG93X21vdXNlX2dldF94IHdpbmRvd19tb3VzZV9nZXRfeSB3aW5kb3dfbW91c2Vfc2V0IHdpbmRvd192aWV3X21vdXNlX2dldF94IHdpbmRvd192aWV3X21vdXNlX2dldF95IHdpbmRvd192aWV3c19tb3VzZV9nZXRfeCB3aW5kb3dfdmlld3NfbW91c2VfZ2V0X3kgYXVkaW9fbGlzdGVuZXJfcG9zaXRpb24gYXVkaW9fbGlzdGVuZXJfdmVsb2NpdHkgYXVkaW9fbGlzdGVuZXJfb3JpZW50YXRpb24gYXVkaW9fZW1pdHRlcl9wb3NpdGlvbiBhdWRpb19lbWl0dGVyX2NyZWF0ZSBhdWRpb19lbWl0dGVyX2ZyZWUgYXVkaW9fZW1pdHRlcl9leGlzdHMgYXVkaW9fZW1pdHRlcl9waXRjaCBhdWRpb19lbWl0dGVyX3ZlbG9jaXR5IGF1ZGlvX2VtaXR0ZXJfZmFsbG9mZiBhdWRpb19lbWl0dGVyX2dhaW4gYXVkaW9fcGxheV9zb3VuZCBhdWRpb19wbGF5X3NvdW5kX29uIGF1ZGlvX3BsYXlfc291bmRfYXQgYXVkaW9fc3RvcF9zb3VuZCBhdWRpb19yZXN1bWVfbXVzaWMgYXVkaW9fbXVzaWNfaXNfcGxheWluZyBhdWRpb19yZXN1bWVfc291bmQgYXVkaW9fcGF1c2Vfc291bmQgYXVkaW9fcGF1c2VfbXVzaWMgYXVkaW9fY2hhbm5lbF9udW0gYXVkaW9fc291bmRfbGVuZ3RoIGF1ZGlvX2dldF90eXBlIGF1ZGlvX2ZhbGxvZmZfc2V0X21vZGVsIGF1ZGlvX3BsYXlfbXVzaWMgYXVkaW9fc3RvcF9tdXNpYyBhdWRpb19tYXN0ZXJfZ2FpbiBhdWRpb19tdXNpY19nYWluIGF1ZGlvX3NvdW5kX2dhaW4gYXVkaW9fc291bmRfcGl0Y2ggYXVkaW9fc3RvcF9hbGwgYXVkaW9fcmVzdW1lX2FsbCBhdWRpb19wYXVzZV9hbGwgYXVkaW9faXNfcGxheWluZyBhdWRpb19pc19wYXVzZWQgYXVkaW9fZXhpc3RzIGF1ZGlvX3NvdW5kX3NldF90cmFja19wb3NpdGlvbiBhdWRpb19zb3VuZF9nZXRfdHJhY2tfcG9zaXRpb24gYXVkaW9fZW1pdHRlcl9nZXRfZ2FpbiBhdWRpb19lbWl0dGVyX2dldF9waXRjaCBhdWRpb19lbWl0dGVyX2dldF94IGF1ZGlvX2VtaXR0ZXJfZ2V0X3kgYXVkaW9fZW1pdHRlcl9nZXRfeiBhdWRpb19lbWl0dGVyX2dldF92eCBhdWRpb19lbWl0dGVyX2dldF92eSBhdWRpb19lbWl0dGVyX2dldF92eiBhdWRpb19saXN0ZW5lcl9zZXRfcG9zaXRpb24gYXVkaW9fbGlzdGVuZXJfc2V0X3ZlbG9jaXR5IGF1ZGlvX2xpc3RlbmVyX3NldF9vcmllbnRhdGlvbiBhdWRpb19saXN0ZW5lcl9nZXRfZGF0YSBhdWRpb19zZXRfbWFzdGVyX2dhaW4gYXVkaW9fZ2V0X21hc3Rlcl9nYWluIGF1ZGlvX3NvdW5kX2dldF9nYWluIGF1ZGlvX3NvdW5kX2dldF9waXRjaCBhdWRpb19nZXRfbmFtZSBhdWRpb19zb3VuZF9zZXRfdHJhY2tfcG9zaXRpb24gYXVkaW9fc291bmRfZ2V0X3RyYWNrX3Bvc2l0aW9uIGF1ZGlvX2NyZWF0ZV9zdHJlYW0gYXVkaW9fZGVzdHJveV9zdHJlYW0gYXVkaW9fY3JlYXRlX3N5bmNfZ3JvdXAgYXVkaW9fZGVzdHJveV9zeW5jX2dyb3VwIGF1ZGlvX3BsYXlfaW5fc3luY19ncm91cCBhdWRpb19zdGFydF9zeW5jX2dyb3VwIGF1ZGlvX3N0b3Bfc3luY19ncm91cCBhdWRpb19wYXVzZV9zeW5jX2dyb3VwIGF1ZGlvX3Jlc3VtZV9zeW5jX2dyb3VwIGF1ZGlvX3N5bmNfZ3JvdXBfZ2V0X3RyYWNrX3BvcyBhdWRpb19zeW5jX2dyb3VwX2RlYnVnIGF1ZGlvX3N5bmNfZ3JvdXBfaXNfcGxheWluZyBhdWRpb19kZWJ1ZyBhdWRpb19ncm91cF9sb2FkIGF1ZGlvX2dyb3VwX3VubG9hZCBhdWRpb19ncm91cF9pc19sb2FkZWQgYXVkaW9fZ3JvdXBfbG9hZF9wcm9ncmVzcyBhdWRpb19ncm91cF9uYW1lIGF1ZGlvX2dyb3VwX3N0b3BfYWxsIGF1ZGlvX2dyb3VwX3NldF9nYWluIGF1ZGlvX2NyZWF0ZV9idWZmZXJfc291bmQgYXVkaW9fZnJlZV9idWZmZXJfc291bmQgYXVkaW9fY3JlYXRlX3BsYXlfcXVldWUgYXVkaW9fZnJlZV9wbGF5X3F1ZXVlIGF1ZGlvX3F1ZXVlX3NvdW5kIGF1ZGlvX2dldF9yZWNvcmRlcl9jb3VudCBhdWRpb19nZXRfcmVjb3JkZXJfaW5mbyBhdWRpb19zdGFydF9yZWNvcmRpbmcgYXVkaW9fc3RvcF9yZWNvcmRpbmcgYXVkaW9fc291bmRfZ2V0X2xpc3RlbmVyX21hc2sgYXVkaW9fZW1pdHRlcl9nZXRfbGlzdGVuZXJfbWFzayBhdWRpb19nZXRfbGlzdGVuZXJfbWFzayBhdWRpb19zb3VuZF9zZXRfbGlzdGVuZXJfbWFzayBhdWRpb19lbWl0dGVyX3NldF9saXN0ZW5lcl9tYXNrIGF1ZGlvX3NldF9saXN0ZW5lcl9tYXNrIGF1ZGlvX2dldF9saXN0ZW5lcl9jb3VudCBhdWRpb19nZXRfbGlzdGVuZXJfaW5mbyBhdWRpb19zeXN0ZW0gc2hvd19tZXNzYWdlIHNob3dfbWVzc2FnZV9hc3luYyBjbGlja2FibGVfYWRkIGNsaWNrYWJsZV9hZGRfZXh0IGNsaWNrYWJsZV9jaGFuZ2UgY2xpY2thYmxlX2NoYW5nZV9leHQgY2xpY2thYmxlX2RlbGV0ZSBjbGlja2FibGVfZXhpc3RzIGNsaWNrYWJsZV9zZXRfc3R5bGUgc2hvd19xdWVzdGlvbiBzaG93X3F1ZXN0aW9uX2FzeW5jIGdldF9pbnRlZ2VyIGdldF9zdHJpbmcgZ2V0X2ludGVnZXJfYXN5bmMgZ2V0X3N0cmluZ19hc3luYyBnZXRfbG9naW5fYXN5bmMgZ2V0X29wZW5fZmlsZW5hbWUgZ2V0X3NhdmVfZmlsZW5hbWUgZ2V0X29wZW5fZmlsZW5hbWVfZXh0IGdldF9zYXZlX2ZpbGVuYW1lX2V4dCBzaG93X2Vycm9yIGhpZ2hzY29yZV9jbGVhciBoaWdoc2NvcmVfYWRkIGhpZ2hzY29yZV92YWx1ZSBoaWdoc2NvcmVfbmFtZSBkcmF3X2hpZ2hzY29yZSBzcHJpdGVfZXhpc3RzIHNwcml0ZV9nZXRfbmFtZSBzcHJpdGVfZ2V0X251bWJlciBzcHJpdGVfZ2V0X3dpZHRoIHNwcml0ZV9nZXRfaGVpZ2h0IHNwcml0ZV9nZXRfeG9mZnNldCBzcHJpdGVfZ2V0X3lvZmZzZXQgc3ByaXRlX2dldF9iYm94X2xlZnQgc3ByaXRlX2dldF9iYm94X3JpZ2h0IHNwcml0ZV9nZXRfYmJveF90b3Agc3ByaXRlX2dldF9iYm94X2JvdHRvbSBzcHJpdGVfc2F2ZSBzcHJpdGVfc2F2ZV9zdHJpcCBzcHJpdGVfc2V0X2NhY2hlX3NpemUgc3ByaXRlX3NldF9jYWNoZV9zaXplX2V4dCBzcHJpdGVfZ2V0X3RwZSBzcHJpdGVfcHJlZmV0Y2ggc3ByaXRlX3ByZWZldGNoX211bHRpIHNwcml0ZV9mbHVzaCBzcHJpdGVfZmx1c2hfbXVsdGkgc3ByaXRlX3NldF9zcGVlZCBzcHJpdGVfZ2V0X3NwZWVkX3R5cGUgc3ByaXRlX2dldF9zcGVlZCBmb250X2V4aXN0cyBmb250X2dldF9uYW1lIGZvbnRfZ2V0X2ZvbnRuYW1lIGZvbnRfZ2V0X2JvbGQgZm9udF9nZXRfaXRhbGljIGZvbnRfZ2V0X2ZpcnN0IGZvbnRfZ2V0X2xhc3QgZm9udF9nZXRfc2l6ZSBmb250X3NldF9jYWNoZV9zaXplIHBhdGhfZXhpc3RzIHBhdGhfZ2V0X25hbWUgcGF0aF9nZXRfbGVuZ3RoIHBhdGhfZ2V0X3RpbWUgcGF0aF9nZXRfa2luZCBwYXRoX2dldF9jbG9zZWQgcGF0aF9nZXRfcHJlY2lzaW9uIHBhdGhfZ2V0X251bWJlciBwYXRoX2dldF9wb2ludF94IHBhdGhfZ2V0X3BvaW50X3kgcGF0aF9nZXRfcG9pbnRfc3BlZWQgcGF0aF9nZXRfeCBwYXRoX2dldF95IHBhdGhfZ2V0X3NwZWVkIHNjcmlwdF9leGlzdHMgc2NyaXB0X2dldF9uYW1lIHRpbWVsaW5lX2FkZCB0aW1lbGluZV9kZWxldGUgdGltZWxpbmVfY2xlYXIgdGltZWxpbmVfZXhpc3RzIHRpbWVsaW5lX2dldF9uYW1lIHRpbWVsaW5lX21vbWVudF9jbGVhciB0aW1lbGluZV9tb21lbnRfYWRkX3NjcmlwdCB0aW1lbGluZV9zaXplIHRpbWVsaW5lX21heF9tb21lbnQgb2JqZWN0X2V4aXN0cyBvYmplY3RfZ2V0X25hbWUgb2JqZWN0X2dldF9zcHJpdGUgb2JqZWN0X2dldF9zb2xpZCBvYmplY3RfZ2V0X3Zpc2libGUgb2JqZWN0X2dldF9wZXJzaXN0ZW50IG9iamVjdF9nZXRfbWFzayBvYmplY3RfZ2V0X3BhcmVudCBvYmplY3RfZ2V0X3BoeXNpY3Mgb2JqZWN0X2lzX2FuY2VzdG9yIHJvb21fZXhpc3RzIHJvb21fZ2V0X25hbWUgc3ByaXRlX3NldF9vZmZzZXQgc3ByaXRlX2R1cGxpY2F0ZSBzcHJpdGVfYXNzaWduIHNwcml0ZV9tZXJnZSBzcHJpdGVfYWRkIHNwcml0ZV9yZXBsYWNlIHNwcml0ZV9jcmVhdGVfZnJvbV9zdXJmYWNlIHNwcml0ZV9hZGRfZnJvbV9zdXJmYWNlIHNwcml0ZV9kZWxldGUgc3ByaXRlX3NldF9hbHBoYV9mcm9tX3Nwcml0ZSBzcHJpdGVfY29sbGlzaW9uX21hc2sgZm9udF9hZGRfZW5hYmxlX2FhIGZvbnRfYWRkX2dldF9lbmFibGVfYWEgZm9udF9hZGQgZm9udF9hZGRfc3ByaXRlIGZvbnRfYWRkX3Nwcml0ZV9leHQgZm9udF9yZXBsYWNlIGZvbnRfcmVwbGFjZV9zcHJpdGUgZm9udF9yZXBsYWNlX3Nwcml0ZV9leHQgZm9udF9kZWxldGUgcGF0aF9zZXRfa2luZCBwYXRoX3NldF9jbG9zZWQgcGF0aF9zZXRfcHJlY2lzaW9uIHBhdGhfYWRkIHBhdGhfYXNzaWduIHBhdGhfZHVwbGljYXRlIHBhdGhfYXBwZW5kIHBhdGhfZGVsZXRlIHBhdGhfYWRkX3BvaW50IHBhdGhfaW5zZXJ0X3BvaW50IHBhdGhfY2hhbmdlX3BvaW50IHBhdGhfZGVsZXRlX3BvaW50IHBhdGhfY2xlYXJfcG9pbnRzIHBhdGhfcmV2ZXJzZSBwYXRoX21pcnJvciBwYXRoX2ZsaXAgcGF0aF9yb3RhdGUgcGF0aF9yZXNjYWxlIHBhdGhfc2hpZnQgc2NyaXB0X2V4ZWN1dGUgb2JqZWN0X3NldF9zcHJpdGUgb2JqZWN0X3NldF9zb2xpZCBvYmplY3Rfc2V0X3Zpc2libGUgb2JqZWN0X3NldF9wZXJzaXN0ZW50IG9iamVjdF9zZXRfbWFzayByb29tX3NldF93aWR0aCByb29tX3NldF9oZWlnaHQgcm9vbV9zZXRfcGVyc2lzdGVudCByb29tX3NldF9iYWNrZ3JvdW5kX2NvbG91ciByb29tX3NldF9iYWNrZ3JvdW5kX2NvbG9yIHJvb21fc2V0X3ZpZXcgcm9vbV9zZXRfdmlld3BvcnQgcm9vbV9nZXRfdmlld3BvcnQgcm9vbV9zZXRfdmlld19lbmFibGVkIHJvb21fYWRkIHJvb21fZHVwbGljYXRlIHJvb21fYXNzaWduIHJvb21faW5zdGFuY2VfYWRkIHJvb21faW5zdGFuY2VfY2xlYXIgcm9vbV9nZXRfY2FtZXJhIHJvb21fc2V0X2NhbWVyYSBhc3NldF9nZXRfaW5kZXggYXNzZXRfZ2V0X3R5cGUgZmlsZV90ZXh0X29wZW5fZnJvbV9zdHJpbmcgZmlsZV90ZXh0X29wZW5fcmVhZCBmaWxlX3RleHRfb3Blbl93cml0ZSBmaWxlX3RleHRfb3Blbl9hcHBlbmQgZmlsZV90ZXh0X2Nsb3NlIGZpbGVfdGV4dF93cml0ZV9zdHJpbmcgZmlsZV90ZXh0X3dyaXRlX3JlYWwgZmlsZV90ZXh0X3dyaXRlbG4gZmlsZV90ZXh0X3JlYWRfc3RyaW5nIGZpbGVfdGV4dF9yZWFkX3JlYWwgZmlsZV90ZXh0X3JlYWRsbiBmaWxlX3RleHRfZW9mIGZpbGVfdGV4dF9lb2xuIGZpbGVfZXhpc3RzIGZpbGVfZGVsZXRlIGZpbGVfcmVuYW1lIGZpbGVfY29weSBkaXJlY3RvcnlfZXhpc3RzIGRpcmVjdG9yeV9jcmVhdGUgZGlyZWN0b3J5X2Rlc3Ryb3kgZmlsZV9maW5kX2ZpcnN0IGZpbGVfZmluZF9uZXh0IGZpbGVfZmluZF9jbG9zZSBmaWxlX2F0dHJpYnV0ZXMgZmlsZW5hbWVfbmFtZSBmaWxlbmFtZV9wYXRoIGZpbGVuYW1lX2RpciBmaWxlbmFtZV9kcml2ZSBmaWxlbmFtZV9leHQgZmlsZW5hbWVfY2hhbmdlX2V4dCBmaWxlX2Jpbl9vcGVuIGZpbGVfYmluX3Jld3JpdGUgZmlsZV9iaW5fY2xvc2UgZmlsZV9iaW5fcG9zaXRpb24gZmlsZV9iaW5fc2l6ZSBmaWxlX2Jpbl9zZWVrIGZpbGVfYmluX3dyaXRlX2J5dGUgZmlsZV9iaW5fcmVhZF9ieXRlIHBhcmFtZXRlcl9jb3VudCBwYXJhbWV0ZXJfc3RyaW5nIGVudmlyb25tZW50X2dldF92YXJpYWJsZSBpbmlfb3Blbl9mcm9tX3N0cmluZyBpbmlfb3BlbiBpbmlfY2xvc2UgaW5pX3JlYWRfc3RyaW5nIGluaV9yZWFkX3JlYWwgaW5pX3dyaXRlX3N0cmluZyBpbmlfd3JpdGVfcmVhbCBpbmlfa2V5X2V4aXN0cyBpbmlfc2VjdGlvbl9leGlzdHMgaW5pX2tleV9kZWxldGUgaW5pX3NlY3Rpb25fZGVsZXRlIGRzX3NldF9wcmVjaXNpb24gZHNfZXhpc3RzIGRzX3N0YWNrX2NyZWF0ZSBkc19zdGFja19kZXN0cm95IGRzX3N0YWNrX2NsZWFyIGRzX3N0YWNrX2NvcHkgZHNfc3RhY2tfc2l6ZSBkc19zdGFja19lbXB0eSBkc19zdGFja19wdXNoIGRzX3N0YWNrX3BvcCBkc19zdGFja190b3AgZHNfc3RhY2tfd3JpdGUgZHNfc3RhY2tfcmVhZCBkc19xdWV1ZV9jcmVhdGUgZHNfcXVldWVfZGVzdHJveSBkc19xdWV1ZV9jbGVhciBkc19xdWV1ZV9jb3B5IGRzX3F1ZXVlX3NpemUgZHNfcXVldWVfZW1wdHkgZHNfcXVldWVfZW5xdWV1ZSBkc19xdWV1ZV9kZXF1ZXVlIGRzX3F1ZXVlX2hlYWQgZHNfcXVldWVfdGFpbCBkc19xdWV1ZV93cml0ZSBkc19xdWV1ZV9yZWFkIGRzX2xpc3RfY3JlYXRlIGRzX2xpc3RfZGVzdHJveSBkc19saXN0X2NsZWFyIGRzX2xpc3RfY29weSBkc19saXN0X3NpemUgZHNfbGlzdF9lbXB0eSBkc19saXN0X2FkZCBkc19saXN0X2luc2VydCBkc19saXN0X3JlcGxhY2UgZHNfbGlzdF9kZWxldGUgZHNfbGlzdF9maW5kX2luZGV4IGRzX2xpc3RfZmluZF92YWx1ZSBkc19saXN0X21hcmtfYXNfbGlzdCBkc19saXN0X21hcmtfYXNfbWFwIGRzX2xpc3Rfc29ydCBkc19saXN0X3NodWZmbGUgZHNfbGlzdF93cml0ZSBkc19saXN0X3JlYWQgZHNfbGlzdF9zZXQgZHNfbWFwX2NyZWF0ZSBkc19tYXBfZGVzdHJveSBkc19tYXBfY2xlYXIgZHNfbWFwX2NvcHkgZHNfbWFwX3NpemUgZHNfbWFwX2VtcHR5IGRzX21hcF9hZGQgZHNfbWFwX2FkZF9saXN0IGRzX21hcF9hZGRfbWFwIGRzX21hcF9yZXBsYWNlIGRzX21hcF9yZXBsYWNlX21hcCBkc19tYXBfcmVwbGFjZV9saXN0IGRzX21hcF9kZWxldGUgZHNfbWFwX2V4aXN0cyBkc19tYXBfZmluZF92YWx1ZSBkc19tYXBfZmluZF9wcmV2aW91cyBkc19tYXBfZmluZF9uZXh0IGRzX21hcF9maW5kX2ZpcnN0IGRzX21hcF9maW5kX2xhc3QgZHNfbWFwX3dyaXRlIGRzX21hcF9yZWFkIGRzX21hcF9zZWN1cmVfc2F2ZSBkc19tYXBfc2VjdXJlX2xvYWQgZHNfbWFwX3NlY3VyZV9sb2FkX2J1ZmZlciBkc19tYXBfc2VjdXJlX3NhdmVfYnVmZmVyIGRzX21hcF9zZXQgZHNfcHJpb3JpdHlfY3JlYXRlIGRzX3ByaW9yaXR5X2Rlc3Ryb3kgZHNfcHJpb3JpdHlfY2xlYXIgZHNfcHJpb3JpdHlfY29weSBkc19wcmlvcml0eV9zaXplIGRzX3ByaW9yaXR5X2VtcHR5IGRzX3ByaW9yaXR5X2FkZCBkc19wcmlvcml0eV9jaGFuZ2VfcHJpb3JpdHkgZHNfcHJpb3JpdHlfZmluZF9wcmlvcml0eSBkc19wcmlvcml0eV9kZWxldGVfdmFsdWUgZHNfcHJpb3JpdHlfZGVsZXRlX21pbiBkc19wcmlvcml0eV9maW5kX21pbiBkc19wcmlvcml0eV9kZWxldGVfbWF4IGRzX3ByaW9yaXR5X2ZpbmRfbWF4IGRzX3ByaW9yaXR5X3dyaXRlIGRzX3ByaW9yaXR5X3JlYWQgZHNfZ3JpZF9jcmVhdGUgZHNfZ3JpZF9kZXN0cm95IGRzX2dyaWRfY29weSBkc19ncmlkX3Jlc2l6ZSBkc19ncmlkX3dpZHRoIGRzX2dyaWRfaGVpZ2h0IGRzX2dyaWRfY2xlYXIgZHNfZ3JpZF9zZXQgZHNfZ3JpZF9hZGQgZHNfZ3JpZF9tdWx0aXBseSBkc19ncmlkX3NldF9yZWdpb24gZHNfZ3JpZF9hZGRfcmVnaW9uIGRzX2dyaWRfbXVsdGlwbHlfcmVnaW9uIGRzX2dyaWRfc2V0X2Rpc2sgZHNfZ3JpZF9hZGRfZGlzayBkc19ncmlkX211bHRpcGx5X2Rpc2sgZHNfZ3JpZF9zZXRfZ3JpZF9yZWdpb24gZHNfZ3JpZF9hZGRfZ3JpZF9yZWdpb24gZHNfZ3JpZF9tdWx0aXBseV9ncmlkX3JlZ2lvbiBkc19ncmlkX2dldCBkc19ncmlkX2dldF9zdW0gZHNfZ3JpZF9nZXRfbWF4IGRzX2dyaWRfZ2V0X21pbiBkc19ncmlkX2dldF9tZWFuIGRzX2dyaWRfZ2V0X2Rpc2tfc3VtIGRzX2dyaWRfZ2V0X2Rpc2tfbWluIGRzX2dyaWRfZ2V0X2Rpc2tfbWF4IGRzX2dyaWRfZ2V0X2Rpc2tfbWVhbiBkc19ncmlkX3ZhbHVlX2V4aXN0cyBkc19ncmlkX3ZhbHVlX3ggZHNfZ3JpZF92YWx1ZV95IGRzX2dyaWRfdmFsdWVfZGlza19leGlzdHMgZHNfZ3JpZF92YWx1ZV9kaXNrX3ggZHNfZ3JpZF92YWx1ZV9kaXNrX3kgZHNfZ3JpZF9zaHVmZmxlIGRzX2dyaWRfd3JpdGUgZHNfZ3JpZF9yZWFkIGRzX2dyaWRfc29ydCBkc19ncmlkX3NldCBkc19ncmlkX2dldCBlZmZlY3RfY3JlYXRlX2JlbG93IGVmZmVjdF9jcmVhdGVfYWJvdmUgZWZmZWN0X2NsZWFyIHBhcnRfdHlwZV9jcmVhdGUgcGFydF90eXBlX2Rlc3Ryb3kgcGFydF90eXBlX2V4aXN0cyBwYXJ0X3R5cGVfY2xlYXIgcGFydF90eXBlX3NoYXBlIHBhcnRfdHlwZV9zcHJpdGUgcGFydF90eXBlX3NpemUgcGFydF90eXBlX3NjYWxlIHBhcnRfdHlwZV9vcmllbnRhdGlvbiBwYXJ0X3R5cGVfbGlmZSBwYXJ0X3R5cGVfc3RlcCBwYXJ0X3R5cGVfZGVhdGggcGFydF90eXBlX3NwZWVkIHBhcnRfdHlwZV9kaXJlY3Rpb24gcGFydF90eXBlX2dyYXZpdHkgcGFydF90eXBlX2NvbG91cjEgcGFydF90eXBlX2NvbG91cjIgcGFydF90eXBlX2NvbG91cjMgcGFydF90eXBlX2NvbG91cl9taXggcGFydF90eXBlX2NvbG91cl9yZ2IgcGFydF90eXBlX2NvbG91cl9oc3YgcGFydF90eXBlX2NvbG9yMSBwYXJ0X3R5cGVfY29sb3IyIHBhcnRfdHlwZV9jb2xvcjMgcGFydF90eXBlX2NvbG9yX21peCBwYXJ0X3R5cGVfY29sb3JfcmdiIHBhcnRfdHlwZV9jb2xvcl9oc3YgcGFydF90eXBlX2FscGhhMSBwYXJ0X3R5cGVfYWxwaGEyIHBhcnRfdHlwZV9hbHBoYTMgcGFydF90eXBlX2JsZW5kIHBhcnRfc3lzdGVtX2NyZWF0ZSBwYXJ0X3N5c3RlbV9jcmVhdGVfbGF5ZXIgcGFydF9zeXN0ZW1fZGVzdHJveSBwYXJ0X3N5c3RlbV9leGlzdHMgcGFydF9zeXN0ZW1fY2xlYXIgcGFydF9zeXN0ZW1fZHJhd19vcmRlciBwYXJ0X3N5c3RlbV9kZXB0aCBwYXJ0X3N5c3RlbV9wb3NpdGlvbiBwYXJ0X3N5c3RlbV9hdXRvbWF0aWNfdXBkYXRlIHBhcnRfc3lzdGVtX2F1dG9tYXRpY19kcmF3IHBhcnRfc3lzdGVtX3VwZGF0ZSBwYXJ0X3N5c3RlbV9kcmF3aXQgcGFydF9zeXN0ZW1fZ2V0X2xheWVyIHBhcnRfc3lzdGVtX2xheWVyIHBhcnRfcGFydGljbGVzX2NyZWF0ZSBwYXJ0X3BhcnRpY2xlc19jcmVhdGVfY29sb3VyIHBhcnRfcGFydGljbGVzX2NyZWF0ZV9jb2xvciBwYXJ0X3BhcnRpY2xlc19jbGVhciBwYXJ0X3BhcnRpY2xlc19jb3VudCBwYXJ0X2VtaXR0ZXJfY3JlYXRlIHBhcnRfZW1pdHRlcl9kZXN0cm95IHBhcnRfZW1pdHRlcl9kZXN0cm95X2FsbCBwYXJ0X2VtaXR0ZXJfZXhpc3RzIHBhcnRfZW1pdHRlcl9jbGVhciBwYXJ0X2VtaXR0ZXJfcmVnaW9uIHBhcnRfZW1pdHRlcl9idXJzdCBwYXJ0X2VtaXR0ZXJfc3RyZWFtIGV4dGVybmFsX2NhbGwgZXh0ZXJuYWxfZGVmaW5lIGV4dGVybmFsX2ZyZWUgd2luZG93X2hhbmRsZSB3aW5kb3dfZGV2aWNlIG1hdHJpeF9nZXQgbWF0cml4X3NldCBtYXRyaXhfYnVpbGRfaWRlbnRpdHkgbWF0cml4X2J1aWxkIG1hdHJpeF9idWlsZF9sb29rYXQgbWF0cml4X2J1aWxkX3Byb2plY3Rpb25fb3J0aG8gbWF0cml4X2J1aWxkX3Byb2plY3Rpb25fcGVyc3BlY3RpdmUgbWF0cml4X2J1aWxkX3Byb2plY3Rpb25fcGVyc3BlY3RpdmVfZm92IG1hdHJpeF9tdWx0aXBseSBtYXRyaXhfdHJhbnNmb3JtX3ZlcnRleCBtYXRyaXhfc3RhY2tfcHVzaCBtYXRyaXhfc3RhY2tfcG9wIG1hdHJpeF9zdGFja19tdWx0aXBseSBtYXRyaXhfc3RhY2tfc2V0IG1hdHJpeF9zdGFja19jbGVhciBtYXRyaXhfc3RhY2tfdG9wIG1hdHJpeF9zdGFja19pc19lbXB0eSBicm93c2VyX2lucHV0X2NhcHR1cmUgb3NfZ2V0X2NvbmZpZyBvc19nZXRfaW5mbyBvc19nZXRfbGFuZ3VhZ2Ugb3NfZ2V0X3JlZ2lvbiBvc19sb2NrX29yaWVudGF0aW9uIGRpc3BsYXlfZ2V0X2RwaV94IGRpc3BsYXlfZ2V0X2RwaV95IGRpc3BsYXlfc2V0X2d1aV9zaXplIGRpc3BsYXlfc2V0X2d1aV9tYXhpbWlzZSBkaXNwbGF5X3NldF9ndWlfbWF4aW1pemUgZGV2aWNlX21vdXNlX2RiY2xpY2tfZW5hYmxlIGRpc3BsYXlfc2V0X3RpbWluZ19tZXRob2QgZGlzcGxheV9nZXRfdGltaW5nX21ldGhvZCBkaXNwbGF5X3NldF9zbGVlcF9tYXJnaW4gZGlzcGxheV9nZXRfc2xlZXBfbWFyZ2luIHZpcnR1YWxfa2V5X2FkZCB2aXJ0dWFsX2tleV9oaWRlIHZpcnR1YWxfa2V5X2RlbGV0ZSB2aXJ0dWFsX2tleV9zaG93IGRyYXdfZW5hYmxlX2RyYXdldmVudCBkcmF3X2VuYWJsZV9zd2ZfYWEgZHJhd19zZXRfc3dmX2FhX2xldmVsIGRyYXdfZ2V0X3N3Zl9hYV9sZXZlbCBkcmF3X3RleHR1cmVfZmx1c2ggZHJhd19mbHVzaCBncHVfc2V0X2JsZW5kZW5hYmxlIGdwdV9zZXRfenRlc3RlbmFibGUgZ3B1X3NldF96ZnVuYyBncHVfc2V0X3p3cml0ZWVuYWJsZSBncHVfc2V0X2xpZ2h0aW5nZW5hYmxlIGdwdV9zZXRfZm9nIGdwdV9zZXRfY3VsbG1vZGUgZ3B1X3NldF9ibGVuZG1vZGUgZ3B1X3NldF9ibGVuZG1vZGVfZXh0IGdwdV9zZXRfYmxlbmRtb2RlX2V4dF9zZXBhbHBoYSBncHVfc2V0X2NvbG9yd3JpdGVlbmFibGUgZ3B1X3NldF9jb2xvdXJ3cml0ZWVuYWJsZSBncHVfc2V0X2FscGhhdGVzdGVuYWJsZSBncHVfc2V0X2FscGhhdGVzdHJlZiBncHVfc2V0X2FscGhhdGVzdGZ1bmMgZ3B1X3NldF90ZXhmaWx0ZXIgZ3B1X3NldF90ZXhmaWx0ZXJfZXh0IGdwdV9zZXRfdGV4cmVwZWF0IGdwdV9zZXRfdGV4cmVwZWF0X2V4dCBncHVfc2V0X3RleF9maWx0ZXIgZ3B1X3NldF90ZXhfZmlsdGVyX2V4dCBncHVfc2V0X3RleF9yZXBlYXQgZ3B1X3NldF90ZXhfcmVwZWF0X2V4dCBncHVfc2V0X3RleF9taXBfZmlsdGVyIGdwdV9zZXRfdGV4X21pcF9maWx0ZXJfZXh0IGdwdV9zZXRfdGV4X21pcF9iaWFzIGdwdV9zZXRfdGV4X21pcF9iaWFzX2V4dCBncHVfc2V0X3RleF9taW5fbWlwIGdwdV9zZXRfdGV4X21pbl9taXBfZXh0IGdwdV9zZXRfdGV4X21heF9taXAgZ3B1X3NldF90ZXhfbWF4X21pcF9leHQgZ3B1X3NldF90ZXhfbWF4X2FuaXNvIGdwdV9zZXRfdGV4X21heF9hbmlzb19leHQgZ3B1X3NldF90ZXhfbWlwX2VuYWJsZSBncHVfc2V0X3RleF9taXBfZW5hYmxlX2V4dCBncHVfZ2V0X2JsZW5kZW5hYmxlIGdwdV9nZXRfenRlc3RlbmFibGUgZ3B1X2dldF96ZnVuYyBncHVfZ2V0X3p3cml0ZWVuYWJsZSBncHVfZ2V0X2xpZ2h0aW5nZW5hYmxlIGdwdV9nZXRfZm9nIGdwdV9nZXRfY3VsbG1vZGUgZ3B1X2dldF9ibGVuZG1vZGUgZ3B1X2dldF9ibGVuZG1vZGVfZXh0IGdwdV9nZXRfYmxlbmRtb2RlX2V4dF9zZXBhbHBoYSBncHVfZ2V0X2JsZW5kbW9kZV9zcmMgZ3B1X2dldF9ibGVuZG1vZGVfZGVzdCBncHVfZ2V0X2JsZW5kbW9kZV9zcmNhbHBoYSBncHVfZ2V0X2JsZW5kbW9kZV9kZXN0YWxwaGEgZ3B1X2dldF9jb2xvcndyaXRlZW5hYmxlIGdwdV9nZXRfY29sb3Vyd3JpdGVlbmFibGUgZ3B1X2dldF9hbHBoYXRlc3RlbmFibGUgZ3B1X2dldF9hbHBoYXRlc3RyZWYgZ3B1X2dldF9hbHBoYXRlc3RmdW5jIGdwdV9nZXRfdGV4ZmlsdGVyIGdwdV9nZXRfdGV4ZmlsdGVyX2V4dCBncHVfZ2V0X3RleHJlcGVhdCBncHVfZ2V0X3RleHJlcGVhdF9leHQgZ3B1X2dldF90ZXhfZmlsdGVyIGdwdV9nZXRfdGV4X2ZpbHRlcl9leHQgZ3B1X2dldF90ZXhfcmVwZWF0IGdwdV9nZXRfdGV4X3JlcGVhdF9leHQgZ3B1X2dldF90ZXhfbWlwX2ZpbHRlciBncHVfZ2V0X3RleF9taXBfZmlsdGVyX2V4dCBncHVfZ2V0X3RleF9taXBfYmlhcyBncHVfZ2V0X3RleF9taXBfYmlhc19leHQgZ3B1X2dldF90ZXhfbWluX21pcCBncHVfZ2V0X3RleF9taW5fbWlwX2V4dCBncHVfZ2V0X3RleF9tYXhfbWlwIGdwdV9nZXRfdGV4X21heF9taXBfZXh0IGdwdV9nZXRfdGV4X21heF9hbmlzbyBncHVfZ2V0X3RleF9tYXhfYW5pc29fZXh0IGdwdV9nZXRfdGV4X21pcF9lbmFibGUgZ3B1X2dldF90ZXhfbWlwX2VuYWJsZV9leHQgZ3B1X3B1c2hfc3RhdGUgZ3B1X3BvcF9zdGF0ZSBncHVfZ2V0X3N0YXRlIGdwdV9zZXRfc3RhdGUgZHJhd19saWdodF9kZWZpbmVfYW1iaWVudCBkcmF3X2xpZ2h0X2RlZmluZV9kaXJlY3Rpb24gZHJhd19saWdodF9kZWZpbmVfcG9pbnQgZHJhd19saWdodF9lbmFibGUgZHJhd19zZXRfbGlnaHRpbmcgZHJhd19saWdodF9nZXRfYW1iaWVudCBkcmF3X2xpZ2h0X2dldCBkcmF3X2dldF9saWdodGluZyBzaG9wX2xlYXZlX3JhdGluZyB1cmxfZ2V0X2RvbWFpbiB1cmxfb3BlbiB1cmxfb3Blbl9leHQgdXJsX29wZW5fZnVsbCBnZXRfdGltZXIgYWNoaWV2ZW1lbnRfbG9naW4gYWNoaWV2ZW1lbnRfbG9nb3V0IGFjaGlldmVtZW50X3Bvc3QgYWNoaWV2ZW1lbnRfaW5jcmVtZW50IGFjaGlldmVtZW50X3Bvc3Rfc2NvcmUgYWNoaWV2ZW1lbnRfYXZhaWxhYmxlIGFjaGlldmVtZW50X3Nob3dfYWNoaWV2ZW1lbnRzIGFjaGlldmVtZW50X3Nob3dfbGVhZGVyYm9hcmRzIGFjaGlldmVtZW50X2xvYWRfZnJpZW5kcyBhY2hpZXZlbWVudF9sb2FkX2xlYWRlcmJvYXJkIGFjaGlldmVtZW50X3NlbmRfY2hhbGxlbmdlIGFjaGlldmVtZW50X2xvYWRfcHJvZ3Jlc3MgYWNoaWV2ZW1lbnRfcmVzZXQgYWNoaWV2ZW1lbnRfbG9naW5fc3RhdHVzIGFjaGlldmVtZW50X2dldF9waWMgYWNoaWV2ZW1lbnRfc2hvd19jaGFsbGVuZ2Vfbm90aWZpY2F0aW9ucyBhY2hpZXZlbWVudF9nZXRfY2hhbGxlbmdlcyBhY2hpZXZlbWVudF9ldmVudCBhY2hpZXZlbWVudF9zaG93IGFjaGlldmVtZW50X2dldF9pbmZvIGNsb3VkX2ZpbGVfc2F2ZSBjbG91ZF9zdHJpbmdfc2F2ZSBjbG91ZF9zeW5jaHJvbmlzZSBhZHNfZW5hYmxlIGFkc19kaXNhYmxlIGFkc19zZXR1cCBhZHNfZW5nYWdlbWVudF9sYXVuY2ggYWRzX2VuZ2FnZW1lbnRfYXZhaWxhYmxlIGFkc19lbmdhZ2VtZW50X2FjdGl2ZSBhZHNfZXZlbnQgYWRzX2V2ZW50X3ByZWxvYWQgYWRzX3NldF9yZXdhcmRfY2FsbGJhY2sgYWRzX2dldF9kaXNwbGF5X2hlaWdodCBhZHNfZ2V0X2Rpc3BsYXlfd2lkdGggYWRzX21vdmUgYWRzX2ludGVyc3RpdGlhbF9hdmFpbGFibGUgYWRzX2ludGVyc3RpdGlhbF9kaXNwbGF5IGRldmljZV9nZXRfdGlsdF94IGRldmljZV9nZXRfdGlsdF95IGRldmljZV9nZXRfdGlsdF96IGRldmljZV9pc19rZXlwYWRfb3BlbiBkZXZpY2VfbW91c2VfY2hlY2tfYnV0dG9uIGRldmljZV9tb3VzZV9jaGVja19idXR0b25fcHJlc3NlZCBkZXZpY2VfbW91c2VfY2hlY2tfYnV0dG9uX3JlbGVhc2VkIGRldmljZV9tb3VzZV94IGRldmljZV9tb3VzZV95IGRldmljZV9tb3VzZV9yYXdfeCBkZXZpY2VfbW91c2VfcmF3X3kgZGV2aWNlX21vdXNlX3hfdG9fZ3VpIGRldmljZV9tb3VzZV95X3RvX2d1aSBpYXBfYWN0aXZhdGUgaWFwX3N0YXR1cyBpYXBfZW51bWVyYXRlX3Byb2R1Y3RzIGlhcF9yZXN0b3JlX2FsbCBpYXBfYWNxdWlyZSBpYXBfY29uc3VtZSBpYXBfcHJvZHVjdF9kZXRhaWxzIGlhcF9wdXJjaGFzZV9kZXRhaWxzIGZhY2Vib29rX2luaXQgZmFjZWJvb2tfbG9naW4gZmFjZWJvb2tfc3RhdHVzIGZhY2Vib29rX2dyYXBoX3JlcXVlc3QgZmFjZWJvb2tfZGlhbG9nIGZhY2Vib29rX2xvZ291dCBmYWNlYm9va19sYXVuY2hfb2ZmZXJ3YWxsIGZhY2Vib29rX3Bvc3RfbWVzc2FnZSBmYWNlYm9va19zZW5kX2ludml0ZSBmYWNlYm9va191c2VyX2lkIGZhY2Vib29rX2FjY2Vzc3Rva2VuIGZhY2Vib29rX2NoZWNrX3Blcm1pc3Npb24gZmFjZWJvb2tfcmVxdWVzdF9yZWFkX3Blcm1pc3Npb25zIGZhY2Vib29rX3JlcXVlc3RfcHVibGlzaF9wZXJtaXNzaW9ucyBnYW1lcGFkX2lzX3N1cHBvcnRlZCBnYW1lcGFkX2dldF9kZXZpY2VfY291bnQgZ2FtZXBhZF9pc19jb25uZWN0ZWQgZ2FtZXBhZF9nZXRfZGVzY3JpcHRpb24gZ2FtZXBhZF9nZXRfYnV0dG9uX3RocmVzaG9sZCBnYW1lcGFkX3NldF9idXR0b25fdGhyZXNob2xkIGdhbWVwYWRfZ2V0X2F4aXNfZGVhZHpvbmUgZ2FtZXBhZF9zZXRfYXhpc19kZWFkem9uZSBnYW1lcGFkX2J1dHRvbl9jb3VudCBnYW1lcGFkX2J1dHRvbl9jaGVjayBnYW1lcGFkX2J1dHRvbl9jaGVja19wcmVzc2VkIGdhbWVwYWRfYnV0dG9uX2NoZWNrX3JlbGVhc2VkIGdhbWVwYWRfYnV0dG9uX3ZhbHVlIGdhbWVwYWRfYXhpc19jb3VudCBnYW1lcGFkX2F4aXNfdmFsdWUgZ2FtZXBhZF9zZXRfdmlicmF0aW9uIGdhbWVwYWRfc2V0X2NvbG91ciBnYW1lcGFkX3NldF9jb2xvciBvc19pc19wYXVzZWQgd2luZG93X2hhc19mb2N1cyBjb2RlX2lzX2NvbXBpbGVkIGh0dHBfZ2V0IGh0dHBfZ2V0X2ZpbGUgaHR0cF9wb3N0X3N0cmluZyBodHRwX3JlcXVlc3QganNvbl9lbmNvZGUganNvbl9kZWNvZGUgemlwX3VuemlwIGxvYWRfY3N2IGJhc2U2NF9lbmNvZGUgYmFzZTY0X2RlY29kZSBtZDVfc3RyaW5nX3VuaWNvZGUgbWQ1X3N0cmluZ191dGY4IG1kNV9maWxlIG9zX2lzX25ldHdvcmtfY29ubmVjdGVkIHNoYTFfc3RyaW5nX3VuaWNvZGUgc2hhMV9zdHJpbmdfdXRmOCBzaGExX2ZpbGUgb3NfcG93ZXJzYXZlX2VuYWJsZSBhbmFseXRpY3NfZXZlbnQgYW5hbHl0aWNzX2V2ZW50X2V4dCB3aW44X2xpdmV0aWxlX3RpbGVfbm90aWZpY2F0aW9uIHdpbjhfbGl2ZXRpbGVfdGlsZV9jbGVhciB3aW44X2xpdmV0aWxlX2JhZGdlX25vdGlmaWNhdGlvbiB3aW44X2xpdmV0aWxlX2JhZGdlX2NsZWFyIHdpbjhfbGl2ZXRpbGVfcXVldWVfZW5hYmxlIHdpbjhfc2Vjb25kYXJ5dGlsZV9waW4gd2luOF9zZWNvbmRhcnl0aWxlX2JhZGdlX25vdGlmaWNhdGlvbiB3aW44X3NlY29uZGFyeXRpbGVfZGVsZXRlIHdpbjhfbGl2ZXRpbGVfbm90aWZpY2F0aW9uX2JlZ2luIHdpbjhfbGl2ZXRpbGVfbm90aWZpY2F0aW9uX3NlY29uZGFyeV9iZWdpbiB3aW44X2xpdmV0aWxlX25vdGlmaWNhdGlvbl9leHBpcnkgd2luOF9saXZldGlsZV9ub3RpZmljYXRpb25fdGFnIHdpbjhfbGl2ZXRpbGVfbm90aWZpY2F0aW9uX3RleHRfYWRkIHdpbjhfbGl2ZXRpbGVfbm90aWZpY2F0aW9uX2ltYWdlX2FkZCB3aW44X2xpdmV0aWxlX25vdGlmaWNhdGlvbl9lbmQgd2luOF9hcHBiYXJfZW5hYmxlIHdpbjhfYXBwYmFyX2FkZF9lbGVtZW50IHdpbjhfYXBwYmFyX3JlbW92ZV9lbGVtZW50IHdpbjhfc2V0dGluZ3NjaGFybV9hZGRfZW50cnkgd2luOF9zZXR0aW5nc2NoYXJtX2FkZF9odG1sX2VudHJ5IHdpbjhfc2V0dGluZ3NjaGFybV9hZGRfeGFtbF9lbnRyeSB3aW44X3NldHRpbmdzY2hhcm1fc2V0X3hhbWxfcHJvcGVydHkgd2luOF9zZXR0aW5nc2NoYXJtX2dldF94YW1sX3Byb3BlcnR5IHdpbjhfc2V0dGluZ3NjaGFybV9yZW1vdmVfZW50cnkgd2luOF9zaGFyZV9pbWFnZSB3aW44X3NoYXJlX3NjcmVlbnNob3Qgd2luOF9zaGFyZV9maWxlIHdpbjhfc2hhcmVfdXJsIHdpbjhfc2hhcmVfdGV4dCB3aW44X3NlYXJjaF9lbmFibGUgd2luOF9zZWFyY2hfZGlzYWJsZSB3aW44X3NlYXJjaF9hZGRfc3VnZ2VzdGlvbnMgd2luOF9kZXZpY2VfdG91Y2hzY3JlZW5fYXZhaWxhYmxlIHdpbjhfbGljZW5zZV9pbml0aWFsaXplX3NhbmRib3ggd2luOF9saWNlbnNlX3RyaWFsX3ZlcnNpb24gd2lucGhvbmVfbGljZW5zZV90cmlhbF92ZXJzaW9uIHdpbnBob25lX3RpbGVfdGl0bGUgd2lucGhvbmVfdGlsZV9jb3VudCB3aW5waG9uZV90aWxlX2JhY2tfdGl0bGUgd2lucGhvbmVfdGlsZV9iYWNrX2NvbnRlbnQgd2lucGhvbmVfdGlsZV9iYWNrX2NvbnRlbnRfd2lkZSB3aW5waG9uZV90aWxlX2Zyb250X2ltYWdlIHdpbnBob25lX3RpbGVfZnJvbnRfaW1hZ2Vfc21hbGwgd2lucGhvbmVfdGlsZV9mcm9udF9pbWFnZV93aWRlIHdpbnBob25lX3RpbGVfYmFja19pbWFnZSB3aW5waG9uZV90aWxlX2JhY2tfaW1hZ2Vfd2lkZSB3aW5waG9uZV90aWxlX2JhY2tncm91bmRfY29sb3VyIHdpbnBob25lX3RpbGVfYmFja2dyb3VuZF9jb2xvciB3aW5waG9uZV90aWxlX2ljb25faW1hZ2Ugd2lucGhvbmVfdGlsZV9zbWFsbF9pY29uX2ltYWdlIHdpbnBob25lX3RpbGVfd2lkZV9jb250ZW50IHdpbnBob25lX3RpbGVfY3ljbGVfaW1hZ2VzIHdpbnBob25lX3RpbGVfc21hbGxfYmFja2dyb3VuZF9pbWFnZSBwaHlzaWNzX3dvcmxkX2NyZWF0ZSBwaHlzaWNzX3dvcmxkX2dyYXZpdHkgcGh5c2ljc193b3JsZF91cGRhdGVfc3BlZWQgcGh5c2ljc193b3JsZF91cGRhdGVfaXRlcmF0aW9ucyBwaHlzaWNzX3dvcmxkX2RyYXdfZGVidWcgcGh5c2ljc19wYXVzZV9lbmFibGUgcGh5c2ljc19maXh0dXJlX2NyZWF0ZSBwaHlzaWNzX2ZpeHR1cmVfc2V0X2tpbmVtYXRpYyBwaHlzaWNzX2ZpeHR1cmVfc2V0X2RlbnNpdHkgcGh5c2ljc19maXh0dXJlX3NldF9hd2FrZSBwaHlzaWNzX2ZpeHR1cmVfc2V0X3Jlc3RpdHV0aW9uIHBoeXNpY3NfZml4dHVyZV9zZXRfZnJpY3Rpb24gcGh5c2ljc19maXh0dXJlX3NldF9jb2xsaXNpb25fZ3JvdXAgcGh5c2ljc19maXh0dXJlX3NldF9zZW5zb3IgcGh5c2ljc19maXh0dXJlX3NldF9saW5lYXJfZGFtcGluZyBwaHlzaWNzX2ZpeHR1cmVfc2V0X2FuZ3VsYXJfZGFtcGluZyBwaHlzaWNzX2ZpeHR1cmVfc2V0X2NpcmNsZV9zaGFwZSBwaHlzaWNzX2ZpeHR1cmVfc2V0X2JveF9zaGFwZSBwaHlzaWNzX2ZpeHR1cmVfc2V0X2VkZ2Vfc2hhcGUgcGh5c2ljc19maXh0dXJlX3NldF9wb2x5Z29uX3NoYXBlIHBoeXNpY3NfZml4dHVyZV9zZXRfY2hhaW5fc2hhcGUgcGh5c2ljc19maXh0dXJlX2FkZF9wb2ludCBwaHlzaWNzX2ZpeHR1cmVfYmluZCBwaHlzaWNzX2ZpeHR1cmVfYmluZF9leHQgcGh5c2ljc19maXh0dXJlX2RlbGV0ZSBwaHlzaWNzX2FwcGx5X2ZvcmNlIHBoeXNpY3NfYXBwbHlfaW1wdWxzZSBwaHlzaWNzX2FwcGx5X2FuZ3VsYXJfaW1wdWxzZSBwaHlzaWNzX2FwcGx5X2xvY2FsX2ZvcmNlIHBoeXNpY3NfYXBwbHlfbG9jYWxfaW1wdWxzZSBwaHlzaWNzX2FwcGx5X3RvcnF1ZSBwaHlzaWNzX21hc3NfcHJvcGVydGllcyBwaHlzaWNzX2RyYXdfZGVidWcgcGh5c2ljc190ZXN0X292ZXJsYXAgcGh5c2ljc19yZW1vdmVfZml4dHVyZSBwaHlzaWNzX3NldF9mcmljdGlvbiBwaHlzaWNzX3NldF9kZW5zaXR5IHBoeXNpY3Nfc2V0X3Jlc3RpdHV0aW9uIHBoeXNpY3NfZ2V0X2ZyaWN0aW9uIHBoeXNpY3NfZ2V0X2RlbnNpdHkgcGh5c2ljc19nZXRfcmVzdGl0dXRpb24gcGh5c2ljc19qb2ludF9kaXN0YW5jZV9jcmVhdGUgcGh5c2ljc19qb2ludF9yb3BlX2NyZWF0ZSBwaHlzaWNzX2pvaW50X3Jldm9sdXRlX2NyZWF0ZSBwaHlzaWNzX2pvaW50X3ByaXNtYXRpY19jcmVhdGUgcGh5c2ljc19qb2ludF9wdWxsZXlfY3JlYXRlIHBoeXNpY3Nfam9pbnRfd2hlZWxfY3JlYXRlIHBoeXNpY3Nfam9pbnRfd2VsZF9jcmVhdGUgcGh5c2ljc19qb2ludF9mcmljdGlvbl9jcmVhdGUgcGh5c2ljc19qb2ludF9nZWFyX2NyZWF0ZSBwaHlzaWNzX2pvaW50X2VuYWJsZV9tb3RvciBwaHlzaWNzX2pvaW50X2dldF92YWx1ZSBwaHlzaWNzX2pvaW50X3NldF92YWx1ZSBwaHlzaWNzX2pvaW50X2RlbGV0ZSBwaHlzaWNzX3BhcnRpY2xlX2NyZWF0ZSBwaHlzaWNzX3BhcnRpY2xlX2RlbGV0ZSBwaHlzaWNzX3BhcnRpY2xlX2RlbGV0ZV9yZWdpb25fY2lyY2xlIHBoeXNpY3NfcGFydGljbGVfZGVsZXRlX3JlZ2lvbl9ib3ggcGh5c2ljc19wYXJ0aWNsZV9kZWxldGVfcmVnaW9uX3BvbHkgcGh5c2ljc19wYXJ0aWNsZV9zZXRfZmxhZ3MgcGh5c2ljc19wYXJ0aWNsZV9zZXRfY2F0ZWdvcnlfZmxhZ3MgcGh5c2ljc19wYXJ0aWNsZV9kcmF3IHBoeXNpY3NfcGFydGljbGVfZHJhd19leHQgcGh5c2ljc19wYXJ0aWNsZV9jb3VudCBwaHlzaWNzX3BhcnRpY2xlX2dldF9kYXRhIHBoeXNpY3NfcGFydGljbGVfZ2V0X2RhdGFfcGFydGljbGUgcGh5c2ljc19wYXJ0aWNsZV9ncm91cF9iZWdpbiBwaHlzaWNzX3BhcnRpY2xlX2dyb3VwX2NpcmNsZSBwaHlzaWNzX3BhcnRpY2xlX2dyb3VwX2JveCBwaHlzaWNzX3BhcnRpY2xlX2dyb3VwX3BvbHlnb24gcGh5c2ljc19wYXJ0aWNsZV9ncm91cF9hZGRfcG9pbnQgcGh5c2ljc19wYXJ0aWNsZV9ncm91cF9lbmQgcGh5c2ljc19wYXJ0aWNsZV9ncm91cF9qb2luIHBoeXNpY3NfcGFydGljbGVfZ3JvdXBfZGVsZXRlIHBoeXNpY3NfcGFydGljbGVfZ3JvdXBfY291bnQgcGh5c2ljc19wYXJ0aWNsZV9ncm91cF9nZXRfZGF0YSBwaHlzaWNzX3BhcnRpY2xlX2dyb3VwX2dldF9tYXNzIHBoeXNpY3NfcGFydGljbGVfZ3JvdXBfZ2V0X2luZXJ0aWEgcGh5c2ljc19wYXJ0aWNsZV9ncm91cF9nZXRfY2VudHJlX3ggcGh5c2ljc19wYXJ0aWNsZV9ncm91cF9nZXRfY2VudHJlX3kgcGh5c2ljc19wYXJ0aWNsZV9ncm91cF9nZXRfdmVsX3ggcGh5c2ljc19wYXJ0aWNsZV9ncm91cF9nZXRfdmVsX3kgcGh5c2ljc19wYXJ0aWNsZV9ncm91cF9nZXRfYW5nX3ZlbCBwaHlzaWNzX3BhcnRpY2xlX2dyb3VwX2dldF94IHBoeXNpY3NfcGFydGljbGVfZ3JvdXBfZ2V0X3kgcGh5c2ljc19wYXJ0aWNsZV9ncm91cF9nZXRfYW5nbGUgcGh5c2ljc19wYXJ0aWNsZV9zZXRfZ3JvdXBfZmxhZ3MgcGh5c2ljc19wYXJ0aWNsZV9nZXRfZ3JvdXBfZmxhZ3MgcGh5c2ljc19wYXJ0aWNsZV9nZXRfbWF4X2NvdW50IHBoeXNpY3NfcGFydGljbGVfZ2V0X3JhZGl1cyBwaHlzaWNzX3BhcnRpY2xlX2dldF9kZW5zaXR5IHBoeXNpY3NfcGFydGljbGVfZ2V0X2RhbXBpbmcgcGh5c2ljc19wYXJ0aWNsZV9nZXRfZ3Jhdml0eV9zY2FsZSBwaHlzaWNzX3BhcnRpY2xlX3NldF9tYXhfY291bnQgcGh5c2ljc19wYXJ0aWNsZV9zZXRfcmFkaXVzIHBoeXNpY3NfcGFydGljbGVfc2V0X2RlbnNpdHkgcGh5c2ljc19wYXJ0aWNsZV9zZXRfZGFtcGluZyBwaHlzaWNzX3BhcnRpY2xlX3NldF9ncmF2aXR5X3NjYWxlIG5ldHdvcmtfY3JlYXRlX3NvY2tldCBuZXR3b3JrX2NyZWF0ZV9zb2NrZXRfZXh0IG5ldHdvcmtfY3JlYXRlX3NlcnZlciBuZXR3b3JrX2NyZWF0ZV9zZXJ2ZXJfcmF3IG5ldHdvcmtfY29ubmVjdCBuZXR3b3JrX2Nvbm5lY3RfcmF3IG5ldHdvcmtfc2VuZF9wYWNrZXQgbmV0d29ya19zZW5kX3JhdyBuZXR3b3JrX3NlbmRfYnJvYWRjYXN0IG5ldHdvcmtfc2VuZF91ZHAgbmV0d29ya19zZW5kX3VkcF9yYXcgbmV0d29ya19zZXRfdGltZW91dCBuZXR3b3JrX3NldF9jb25maWcgbmV0d29ya19yZXNvbHZlIG5ldHdvcmtfZGVzdHJveSBidWZmZXJfY3JlYXRlIGJ1ZmZlcl93cml0ZSBidWZmZXJfcmVhZCBidWZmZXJfc2VlayBidWZmZXJfZ2V0X3N1cmZhY2UgYnVmZmVyX3NldF9zdXJmYWNlIGJ1ZmZlcl9kZWxldGUgYnVmZmVyX2V4aXN0cyBidWZmZXJfZ2V0X3R5cGUgYnVmZmVyX2dldF9hbGlnbm1lbnQgYnVmZmVyX3Bva2UgYnVmZmVyX3BlZWsgYnVmZmVyX3NhdmUgYnVmZmVyX3NhdmVfZXh0IGJ1ZmZlcl9sb2FkIGJ1ZmZlcl9sb2FkX2V4dCBidWZmZXJfbG9hZF9wYXJ0aWFsIGJ1ZmZlcl9jb3B5IGJ1ZmZlcl9maWxsIGJ1ZmZlcl9nZXRfc2l6ZSBidWZmZXJfdGVsbCBidWZmZXJfcmVzaXplIGJ1ZmZlcl9tZDUgYnVmZmVyX3NoYTEgYnVmZmVyX2Jhc2U2NF9lbmNvZGUgYnVmZmVyX2Jhc2U2NF9kZWNvZGUgYnVmZmVyX2Jhc2U2NF9kZWNvZGVfZXh0IGJ1ZmZlcl9zaXplb2YgYnVmZmVyX2dldF9hZGRyZXNzIGJ1ZmZlcl9jcmVhdGVfZnJvbV92ZXJ0ZXhfYnVmZmVyIGJ1ZmZlcl9jcmVhdGVfZnJvbV92ZXJ0ZXhfYnVmZmVyX2V4dCBidWZmZXJfY29weV9mcm9tX3ZlcnRleF9idWZmZXIgYnVmZmVyX2FzeW5jX2dyb3VwX2JlZ2luIGJ1ZmZlcl9hc3luY19ncm91cF9vcHRpb24gYnVmZmVyX2FzeW5jX2dyb3VwX2VuZCBidWZmZXJfbG9hZF9hc3luYyBidWZmZXJfc2F2ZV9hc3luYyBnbWxfcmVsZWFzZV9tb2RlIGdtbF9wcmFnbWEgc3RlYW1fYWN0aXZhdGVfb3ZlcmxheSBzdGVhbV9pc19vdmVybGF5X2VuYWJsZWQgc3RlYW1faXNfb3ZlcmxheV9hY3RpdmF0ZWQgc3RlYW1fZ2V0X3BlcnNvbmFfbmFtZSBzdGVhbV9pbml0aWFsaXNlZCBzdGVhbV9pc19jbG91ZF9lbmFibGVkX2Zvcl9hcHAgc3RlYW1faXNfY2xvdWRfZW5hYmxlZF9mb3JfYWNjb3VudCBzdGVhbV9maWxlX3BlcnNpc3RlZCBzdGVhbV9nZXRfcXVvdGFfdG90YWwgc3RlYW1fZ2V0X3F1b3RhX2ZyZWUgc3RlYW1fZmlsZV93cml0ZSBzdGVhbV9maWxlX3dyaXRlX2ZpbGUgc3RlYW1fZmlsZV9yZWFkIHN0ZWFtX2ZpbGVfZGVsZXRlIHN0ZWFtX2ZpbGVfZXhpc3RzIHN0ZWFtX2ZpbGVfc2l6ZSBzdGVhbV9maWxlX3NoYXJlIHN0ZWFtX2lzX3NjcmVlbnNob3RfcmVxdWVzdGVkIHN0ZWFtX3NlbmRfc2NyZWVuc2hvdCBzdGVhbV9pc191c2VyX2xvZ2dlZF9vbiBzdGVhbV9nZXRfdXNlcl9zdGVhbV9pZCBzdGVhbV91c2VyX293bnNfZGxjIHN0ZWFtX3VzZXJfaW5zdGFsbGVkX2RsYyBzdGVhbV9zZXRfYWNoaWV2ZW1lbnQgc3RlYW1fZ2V0X2FjaGlldmVtZW50IHN0ZWFtX2NsZWFyX2FjaGlldmVtZW50IHN0ZWFtX3NldF9zdGF0X2ludCBzdGVhbV9zZXRfc3RhdF9mbG9hdCBzdGVhbV9zZXRfc3RhdF9hdmdfcmF0ZSBzdGVhbV9nZXRfc3RhdF9pbnQgc3RlYW1fZ2V0X3N0YXRfZmxvYXQgc3RlYW1fZ2V0X3N0YXRfYXZnX3JhdGUgc3RlYW1fcmVzZXRfYWxsX3N0YXRzIHN0ZWFtX3Jlc2V0X2FsbF9zdGF0c19hY2hpZXZlbWVudHMgc3RlYW1fc3RhdHNfcmVhZHkgc3RlYW1fY3JlYXRlX2xlYWRlcmJvYXJkIHN0ZWFtX3VwbG9hZF9zY29yZSBzdGVhbV91cGxvYWRfc2NvcmVfZXh0IHN0ZWFtX2Rvd25sb2FkX3Njb3Jlc19hcm91bmRfdXNlciBzdGVhbV9kb3dubG9hZF9zY29yZXMgc3RlYW1fZG93bmxvYWRfZnJpZW5kc19zY29yZXMgc3RlYW1fdXBsb2FkX3Njb3JlX2J1ZmZlciBzdGVhbV91cGxvYWRfc2NvcmVfYnVmZmVyX2V4dCBzdGVhbV9jdXJyZW50X2dhbWVfbGFuZ3VhZ2Ugc3RlYW1fYXZhaWxhYmxlX2xhbmd1YWdlcyBzdGVhbV9hY3RpdmF0ZV9vdmVybGF5X2Jyb3dzZXIgc3RlYW1fYWN0aXZhdGVfb3ZlcmxheV91c2VyIHN0ZWFtX2FjdGl2YXRlX292ZXJsYXlfc3RvcmUgc3RlYW1fZ2V0X3VzZXJfcGVyc29uYV9uYW1lIHN0ZWFtX2dldF9hcHBfaWQgc3RlYW1fZ2V0X3VzZXJfYWNjb3VudF9pZCBzdGVhbV91Z2NfZG93bmxvYWQgc3RlYW1fdWdjX2NyZWF0ZV9pdGVtIHN0ZWFtX3VnY19zdGFydF9pdGVtX3VwZGF0ZSBzdGVhbV91Z2Nfc2V0X2l0ZW1fdGl0bGUgc3RlYW1fdWdjX3NldF9pdGVtX2Rlc2NyaXB0aW9uIHN0ZWFtX3VnY19zZXRfaXRlbV92aXNpYmlsaXR5IHN0ZWFtX3VnY19zZXRfaXRlbV90YWdzIHN0ZWFtX3VnY19zZXRfaXRlbV9jb250ZW50IHN0ZWFtX3VnY19zZXRfaXRlbV9wcmV2aWV3IHN0ZWFtX3VnY19zdWJtaXRfaXRlbV91cGRhdGUgc3RlYW1fdWdjX2dldF9pdGVtX3VwZGF0ZV9wcm9ncmVzcyBzdGVhbV91Z2Nfc3Vic2NyaWJlX2l0ZW0gc3RlYW1fdWdjX3Vuc3Vic2NyaWJlX2l0ZW0gc3RlYW1fdWdjX251bV9zdWJzY3JpYmVkX2l0ZW1zIHN0ZWFtX3VnY19nZXRfc3Vic2NyaWJlZF9pdGVtcyBzdGVhbV91Z2NfZ2V0X2l0ZW1faW5zdGFsbF9pbmZvIHN0ZWFtX3VnY19nZXRfaXRlbV91cGRhdGVfaW5mbyBzdGVhbV91Z2NfcmVxdWVzdF9pdGVtX2RldGFpbHMgc3RlYW1fdWdjX2NyZWF0ZV9xdWVyeV91c2VyIHN0ZWFtX3VnY19jcmVhdGVfcXVlcnlfdXNlcl9leCBzdGVhbV91Z2NfY3JlYXRlX3F1ZXJ5X2FsbCBzdGVhbV91Z2NfY3JlYXRlX3F1ZXJ5X2FsbF9leCBzdGVhbV91Z2NfcXVlcnlfc2V0X2Nsb3VkX2ZpbGVuYW1lX2ZpbHRlciBzdGVhbV91Z2NfcXVlcnlfc2V0X21hdGNoX2FueV90YWcgc3RlYW1fdWdjX3F1ZXJ5X3NldF9zZWFyY2hfdGV4dCBzdGVhbV91Z2NfcXVlcnlfc2V0X3JhbmtlZF9ieV90cmVuZF9kYXlzIHN0ZWFtX3VnY19xdWVyeV9hZGRfcmVxdWlyZWRfdGFnIHN0ZWFtX3VnY19xdWVyeV9hZGRfZXhjbHVkZWRfdGFnIHN0ZWFtX3VnY19xdWVyeV9zZXRfcmV0dXJuX2xvbmdfZGVzY3JpcHRpb24gc3RlYW1fdWdjX3F1ZXJ5X3NldF9yZXR1cm5fdG90YWxfb25seSBzdGVhbV91Z2NfcXVlcnlfc2V0X2FsbG93X2NhY2hlZF9yZXNwb25zZSBzdGVhbV91Z2Nfc2VuZF9xdWVyeSBzaGFkZXJfc2V0IHNoYWRlcl9nZXRfbmFtZSBzaGFkZXJfcmVzZXQgc2hhZGVyX2N1cnJlbnQgc2hhZGVyX2lzX2NvbXBpbGVkIHNoYWRlcl9nZXRfc2FtcGxlcl9pbmRleCBzaGFkZXJfZ2V0X3VuaWZvcm0gc2hhZGVyX3NldF91bmlmb3JtX2kgc2hhZGVyX3NldF91bmlmb3JtX2lfYXJyYXkgc2hhZGVyX3NldF91bmlmb3JtX2Ygc2hhZGVyX3NldF91bmlmb3JtX2ZfYXJyYXkgc2hhZGVyX3NldF91bmlmb3JtX21hdHJpeCBzaGFkZXJfc2V0X3VuaWZvcm1fbWF0cml4X2FycmF5IHNoYWRlcl9lbmFibGVfY29ybmVyX2lkIHRleHR1cmVfc2V0X3N0YWdlIHRleHR1cmVfZ2V0X3RleGVsX3dpZHRoIHRleHR1cmVfZ2V0X3RleGVsX2hlaWdodCBzaGFkZXJzX2FyZV9zdXBwb3J0ZWQgdmVydGV4X2Zvcm1hdF9iZWdpbiB2ZXJ0ZXhfZm9ybWF0X2VuZCB2ZXJ0ZXhfZm9ybWF0X2RlbGV0ZSB2ZXJ0ZXhfZm9ybWF0X2FkZF9wb3NpdGlvbiB2ZXJ0ZXhfZm9ybWF0X2FkZF9wb3NpdGlvbl8zZCB2ZXJ0ZXhfZm9ybWF0X2FkZF9jb2xvdXIgdmVydGV4X2Zvcm1hdF9hZGRfY29sb3IgdmVydGV4X2Zvcm1hdF9hZGRfbm9ybWFsIHZlcnRleF9mb3JtYXRfYWRkX3RleGNvb3JkIHZlcnRleF9mb3JtYXRfYWRkX3RleHRjb29yZCB2ZXJ0ZXhfZm9ybWF0X2FkZF9jdXN0b20gdmVydGV4X2NyZWF0ZV9idWZmZXIgdmVydGV4X2NyZWF0ZV9idWZmZXJfZXh0IHZlcnRleF9kZWxldGVfYnVmZmVyIHZlcnRleF9iZWdpbiB2ZXJ0ZXhfZW5kIHZlcnRleF9wb3NpdGlvbiB2ZXJ0ZXhfcG9zaXRpb25fM2QgdmVydGV4X2NvbG91ciB2ZXJ0ZXhfY29sb3IgdmVydGV4X2FyZ2IgdmVydGV4X3RleGNvb3JkIHZlcnRleF9ub3JtYWwgdmVydGV4X2Zsb2F0MSB2ZXJ0ZXhfZmxvYXQyIHZlcnRleF9mbG9hdDMgdmVydGV4X2Zsb2F0NCB2ZXJ0ZXhfdWJ5dGU0IHZlcnRleF9zdWJtaXQgdmVydGV4X2ZyZWV6ZSB2ZXJ0ZXhfZ2V0X251bWJlciB2ZXJ0ZXhfZ2V0X2J1ZmZlcl9zaXplIHZlcnRleF9jcmVhdGVfYnVmZmVyX2Zyb21fYnVmZmVyIHZlcnRleF9jcmVhdGVfYnVmZmVyX2Zyb21fYnVmZmVyX2V4dCBwdXNoX2xvY2FsX25vdGlmaWNhdGlvbiBwdXNoX2dldF9maXJzdF9sb2NhbF9ub3RpZmljYXRpb24gcHVzaF9nZXRfbmV4dF9sb2NhbF9ub3RpZmljYXRpb24gcHVzaF9jYW5jZWxfbG9jYWxfbm90aWZpY2F0aW9uIHNrZWxldG9uX2FuaW1hdGlvbl9zZXQgc2tlbGV0b25fYW5pbWF0aW9uX2dldCBza2VsZXRvbl9hbmltYXRpb25fbWl4IHNrZWxldG9uX2FuaW1hdGlvbl9zZXRfZXh0IHNrZWxldG9uX2FuaW1hdGlvbl9nZXRfZXh0IHNrZWxldG9uX2FuaW1hdGlvbl9nZXRfZHVyYXRpb24gc2tlbGV0b25fYW5pbWF0aW9uX2dldF9mcmFtZXMgc2tlbGV0b25fYW5pbWF0aW9uX2NsZWFyIHNrZWxldG9uX3NraW5fc2V0IHNrZWxldG9uX3NraW5fZ2V0IHNrZWxldG9uX2F0dGFjaG1lbnRfc2V0IHNrZWxldG9uX2F0dGFjaG1lbnRfZ2V0IHNrZWxldG9uX2F0dGFjaG1lbnRfY3JlYXRlIHNrZWxldG9uX2NvbGxpc2lvbl9kcmF3X3NldCBza2VsZXRvbl9ib25lX2RhdGFfZ2V0IHNrZWxldG9uX2JvbmVfZGF0YV9zZXQgc2tlbGV0b25fYm9uZV9zdGF0ZV9nZXQgc2tlbGV0b25fYm9uZV9zdGF0ZV9zZXQgc2tlbGV0b25fZ2V0X21pbm1heCBza2VsZXRvbl9nZXRfbnVtX2JvdW5kcyBza2VsZXRvbl9nZXRfYm91bmRzIHNrZWxldG9uX2FuaW1hdGlvbl9nZXRfZnJhbWUgc2tlbGV0b25fYW5pbWF0aW9uX3NldF9mcmFtZSBkcmF3X3NrZWxldG9uIGRyYXdfc2tlbGV0b25fdGltZSBkcmF3X3NrZWxldG9uX2luc3RhbmNlIGRyYXdfc2tlbGV0b25fY29sbGlzaW9uIHNrZWxldG9uX2FuaW1hdGlvbl9saXN0IHNrZWxldG9uX3NraW5fbGlzdCBza2VsZXRvbl9zbG90X2RhdGEgbGF5ZXJfZ2V0X2lkIGxheWVyX2dldF9pZF9hdF9kZXB0aCBsYXllcl9nZXRfZGVwdGggbGF5ZXJfY3JlYXRlIGxheWVyX2Rlc3Ryb3kgbGF5ZXJfZGVzdHJveV9pbnN0YW5jZXMgbGF5ZXJfYWRkX2luc3RhbmNlIGxheWVyX2hhc19pbnN0YW5jZSBsYXllcl9zZXRfdmlzaWJsZSBsYXllcl9nZXRfdmlzaWJsZSBsYXllcl9leGlzdHMgbGF5ZXJfeCBsYXllcl95IGxheWVyX2dldF94IGxheWVyX2dldF95IGxheWVyX2hzcGVlZCBsYXllcl92c3BlZWQgbGF5ZXJfZ2V0X2hzcGVlZCBsYXllcl9nZXRfdnNwZWVkIGxheWVyX3NjcmlwdF9iZWdpbiBsYXllcl9zY3JpcHRfZW5kIGxheWVyX3NoYWRlciBsYXllcl9nZXRfc2NyaXB0X2JlZ2luIGxheWVyX2dldF9zY3JpcHRfZW5kIGxheWVyX2dldF9zaGFkZXIgbGF5ZXJfc2V0X3RhcmdldF9yb29tIGxheWVyX2dldF90YXJnZXRfcm9vbSBsYXllcl9yZXNldF90YXJnZXRfcm9vbSBsYXllcl9nZXRfYWxsIGxheWVyX2dldF9hbGxfZWxlbWVudHMgbGF5ZXJfZ2V0X25hbWUgbGF5ZXJfZGVwdGggbGF5ZXJfZ2V0X2VsZW1lbnRfbGF5ZXIgbGF5ZXJfZ2V0X2VsZW1lbnRfdHlwZSBsYXllcl9lbGVtZW50X21vdmUgbGF5ZXJfZm9yY2VfZHJhd19kZXB0aCBsYXllcl9pc19kcmF3X2RlcHRoX2ZvcmNlZCBsYXllcl9nZXRfZm9yY2VkX2RlcHRoIGxheWVyX2JhY2tncm91bmRfZ2V0X2lkIGxheWVyX2JhY2tncm91bmRfZXhpc3RzIGxheWVyX2JhY2tncm91bmRfY3JlYXRlIGxheWVyX2JhY2tncm91bmRfZGVzdHJveSBsYXllcl9iYWNrZ3JvdW5kX3Zpc2libGUgbGF5ZXJfYmFja2dyb3VuZF9jaGFuZ2UgbGF5ZXJfYmFja2dyb3VuZF9zcHJpdGUgbGF5ZXJfYmFja2dyb3VuZF9odGlsZWQgbGF5ZXJfYmFja2dyb3VuZF92dGlsZWQgbGF5ZXJfYmFja2dyb3VuZF9zdHJldGNoIGxheWVyX2JhY2tncm91bmRfeXNjYWxlIGxheWVyX2JhY2tncm91bmRfeHNjYWxlIGxheWVyX2JhY2tncm91bmRfYmxlbmQgbGF5ZXJfYmFja2dyb3VuZF9hbHBoYSBsYXllcl9iYWNrZ3JvdW5kX2luZGV4IGxheWVyX2JhY2tncm91bmRfc3BlZWQgbGF5ZXJfYmFja2dyb3VuZF9nZXRfdmlzaWJsZSBsYXllcl9iYWNrZ3JvdW5kX2dldF9zcHJpdGUgbGF5ZXJfYmFja2dyb3VuZF9nZXRfaHRpbGVkIGxheWVyX2JhY2tncm91bmRfZ2V0X3Z0aWxlZCBsYXllcl9iYWNrZ3JvdW5kX2dldF9zdHJldGNoIGxheWVyX2JhY2tncm91bmRfZ2V0X3lzY2FsZSBsYXllcl9iYWNrZ3JvdW5kX2dldF94c2NhbGUgbGF5ZXJfYmFja2dyb3VuZF9nZXRfYmxlbmQgbGF5ZXJfYmFja2dyb3VuZF9nZXRfYWxwaGEgbGF5ZXJfYmFja2dyb3VuZF9nZXRfaW5kZXggbGF5ZXJfYmFja2dyb3VuZF9nZXRfc3BlZWQgbGF5ZXJfc3ByaXRlX2dldF9pZCBsYXllcl9zcHJpdGVfZXhpc3RzIGxheWVyX3Nwcml0ZV9jcmVhdGUgbGF5ZXJfc3ByaXRlX2Rlc3Ryb3kgbGF5ZXJfc3ByaXRlX2NoYW5nZSBsYXllcl9zcHJpdGVfaW5kZXggbGF5ZXJfc3ByaXRlX3NwZWVkIGxheWVyX3Nwcml0ZV94c2NhbGUgbGF5ZXJfc3ByaXRlX3lzY2FsZSBsYXllcl9zcHJpdGVfYW5nbGUgbGF5ZXJfc3ByaXRlX2JsZW5kIGxheWVyX3Nwcml0ZV9hbHBoYSBsYXllcl9zcHJpdGVfeCBsYXllcl9zcHJpdGVfeSBsYXllcl9zcHJpdGVfZ2V0X3Nwcml0ZSBsYXllcl9zcHJpdGVfZ2V0X2luZGV4IGxheWVyX3Nwcml0ZV9nZXRfc3BlZWQgbGF5ZXJfc3ByaXRlX2dldF94c2NhbGUgbGF5ZXJfc3ByaXRlX2dldF95c2NhbGUgbGF5ZXJfc3ByaXRlX2dldF9hbmdsZSBsYXllcl9zcHJpdGVfZ2V0X2JsZW5kIGxheWVyX3Nwcml0ZV9nZXRfYWxwaGEgbGF5ZXJfc3ByaXRlX2dldF94IGxheWVyX3Nwcml0ZV9nZXRfeSBsYXllcl90aWxlbWFwX2dldF9pZCBsYXllcl90aWxlbWFwX2V4aXN0cyBsYXllcl90aWxlbWFwX2NyZWF0ZSBsYXllcl90aWxlbWFwX2Rlc3Ryb3kgdGlsZW1hcF90aWxlc2V0IHRpbGVtYXBfeCB0aWxlbWFwX3kgdGlsZW1hcF9zZXQgdGlsZW1hcF9zZXRfYXRfcGl4ZWwgdGlsZW1hcF9nZXRfdGlsZXNldCB0aWxlbWFwX2dldF90aWxlX3dpZHRoIHRpbGVtYXBfZ2V0X3RpbGVfaGVpZ2h0IHRpbGVtYXBfZ2V0X3dpZHRoIHRpbGVtYXBfZ2V0X2hlaWdodCB0aWxlbWFwX2dldF94IHRpbGVtYXBfZ2V0X3kgdGlsZW1hcF9nZXQgdGlsZW1hcF9nZXRfYXRfcGl4ZWwgdGlsZW1hcF9nZXRfY2VsbF94X2F0X3BpeGVsIHRpbGVtYXBfZ2V0X2NlbGxfeV9hdF9waXhlbCB0aWxlbWFwX2NsZWFyIGRyYXdfdGlsZW1hcCBkcmF3X3RpbGUgdGlsZW1hcF9zZXRfZ2xvYmFsX21hc2sgdGlsZW1hcF9nZXRfZ2xvYmFsX21hc2sgdGlsZW1hcF9zZXRfbWFzayB0aWxlbWFwX2dldF9tYXNrIHRpbGVtYXBfZ2V0X2ZyYW1lIHRpbGVfc2V0X2VtcHR5IHRpbGVfc2V0X2luZGV4IHRpbGVfc2V0X2ZsaXAgdGlsZV9zZXRfbWlycm9yIHRpbGVfc2V0X3JvdGF0ZSB0aWxlX2dldF9lbXB0eSB0aWxlX2dldF9pbmRleCB0aWxlX2dldF9mbGlwIHRpbGVfZ2V0X21pcnJvciB0aWxlX2dldF9yb3RhdGUgbGF5ZXJfdGlsZV9leGlzdHMgbGF5ZXJfdGlsZV9jcmVhdGUgbGF5ZXJfdGlsZV9kZXN0cm95IGxheWVyX3RpbGVfY2hhbmdlIGxheWVyX3RpbGVfeHNjYWxlIGxheWVyX3RpbGVfeXNjYWxlIGxheWVyX3RpbGVfYmxlbmQgbGF5ZXJfdGlsZV9hbHBoYSBsYXllcl90aWxlX3ggbGF5ZXJfdGlsZV95IGxheWVyX3RpbGVfcmVnaW9uIGxheWVyX3RpbGVfdmlzaWJsZSBsYXllcl90aWxlX2dldF9zcHJpdGUgbGF5ZXJfdGlsZV9nZXRfeHNjYWxlIGxheWVyX3RpbGVfZ2V0X3lzY2FsZSBsYXllcl90aWxlX2dldF9ibGVuZCBsYXllcl90aWxlX2dldF9hbHBoYSBsYXllcl90aWxlX2dldF94IGxheWVyX3RpbGVfZ2V0X3kgbGF5ZXJfdGlsZV9nZXRfcmVnaW9uIGxheWVyX3RpbGVfZ2V0X3Zpc2libGUgbGF5ZXJfaW5zdGFuY2VfZ2V0X2luc3RhbmNlIGluc3RhbmNlX2FjdGl2YXRlX2xheWVyIGluc3RhbmNlX2RlYWN0aXZhdGVfbGF5ZXIgY2FtZXJhX2NyZWF0ZSBjYW1lcmFfY3JlYXRlX3ZpZXcgY2FtZXJhX2Rlc3Ryb3kgY2FtZXJhX2FwcGx5IGNhbWVyYV9nZXRfYWN0aXZlIGNhbWVyYV9nZXRfZGVmYXVsdCBjYW1lcmFfc2V0X2RlZmF1bHQgY2FtZXJhX3NldF92aWV3X21hdCBjYW1lcmFfc2V0X3Byb2pfbWF0IGNhbWVyYV9zZXRfdXBkYXRlX3NjcmlwdCBjYW1lcmFfc2V0X2JlZ2luX3NjcmlwdCBjYW1lcmFfc2V0X2VuZF9zY3JpcHQgY2FtZXJhX3NldF92aWV3X3BvcyBjYW1lcmFfc2V0X3ZpZXdfc2l6ZSBjYW1lcmFfc2V0X3ZpZXdfc3BlZWQgY2FtZXJhX3NldF92aWV3X2JvcmRlciBjYW1lcmFfc2V0X3ZpZXdfYW5nbGUgY2FtZXJhX3NldF92aWV3X3RhcmdldCBjYW1lcmFfZ2V0X3ZpZXdfbWF0IGNhbWVyYV9nZXRfcHJval9tYXQgY2FtZXJhX2dldF91cGRhdGVfc2NyaXB0IGNhbWVyYV9nZXRfYmVnaW5fc2NyaXB0IGNhbWVyYV9nZXRfZW5kX3NjcmlwdCBjYW1lcmFfZ2V0X3ZpZXdfeCBjYW1lcmFfZ2V0X3ZpZXdfeSBjYW1lcmFfZ2V0X3ZpZXdfd2lkdGggY2FtZXJhX2dldF92aWV3X2hlaWdodCBjYW1lcmFfZ2V0X3ZpZXdfc3BlZWRfeCBjYW1lcmFfZ2V0X3ZpZXdfc3BlZWRfeSBjYW1lcmFfZ2V0X3ZpZXdfYm9yZGVyX3ggY2FtZXJhX2dldF92aWV3X2JvcmRlcl95IGNhbWVyYV9nZXRfdmlld19hbmdsZSBjYW1lcmFfZ2V0X3ZpZXdfdGFyZ2V0IHZpZXdfZ2V0X2NhbWVyYSB2aWV3X2dldF92aXNpYmxlIHZpZXdfZ2V0X3hwb3J0IHZpZXdfZ2V0X3lwb3J0IHZpZXdfZ2V0X3dwb3J0IHZpZXdfZ2V0X2hwb3J0IHZpZXdfZ2V0X3N1cmZhY2VfaWQgdmlld19zZXRfY2FtZXJhIHZpZXdfc2V0X3Zpc2libGUgdmlld19zZXRfeHBvcnQgdmlld19zZXRfeXBvcnQgdmlld19zZXRfd3BvcnQgdmlld19zZXRfaHBvcnQgdmlld19zZXRfc3VyZmFjZV9pZCBnZXN0dXJlX2RyYWdfdGltZSBnZXN0dXJlX2RyYWdfZGlzdGFuY2UgZ2VzdHVyZV9mbGlja19zcGVlZCBnZXN0dXJlX2RvdWJsZV90YXBfdGltZSBnZXN0dXJlX2RvdWJsZV90YXBfZGlzdGFuY2UgZ2VzdHVyZV9waW5jaF9kaXN0YW5jZSBnZXN0dXJlX3BpbmNoX2FuZ2xlX3Rvd2FyZHMgZ2VzdHVyZV9waW5jaF9hbmdsZV9hd2F5IGdlc3R1cmVfcm90YXRlX3RpbWUgZ2VzdHVyZV9yb3RhdGVfYW5nbGUgZ2VzdHVyZV90YXBfY291bnQgZ2VzdHVyZV9nZXRfZHJhZ190aW1lIGdlc3R1cmVfZ2V0X2RyYWdfZGlzdGFuY2UgZ2VzdHVyZV9nZXRfZmxpY2tfc3BlZWQgZ2VzdHVyZV9nZXRfZG91YmxlX3RhcF90aW1lIGdlc3R1cmVfZ2V0X2RvdWJsZV90YXBfZGlzdGFuY2UgZ2VzdHVyZV9nZXRfcGluY2hfZGlzdGFuY2UgZ2VzdHVyZV9nZXRfcGluY2hfYW5nbGVfdG93YXJkcyBnZXN0dXJlX2dldF9waW5jaF9hbmdsZV9hd2F5IGdlc3R1cmVfZ2V0X3JvdGF0ZV90aW1lIGdlc3R1cmVfZ2V0X3JvdGF0ZV9hbmdsZSBnZXN0dXJlX2dldF90YXBfY291bnQga2V5Ym9hcmRfdmlydHVhbF9zaG93IGtleWJvYXJkX3ZpcnR1YWxfaGlkZSBrZXlib2FyZF92aXJ0dWFsX3N0YXR1cyBrZXlib2FyZF92aXJ0dWFsX2hlaWdodCIsbGl0ZXJhbDoic2VsZiBvdGhlciBhbGwgbm9vbmUgZ2xvYmFsIGxvY2FsIHVuZGVmaW5lZCBwb2ludGVyX2ludmFsaWQgcG9pbnRlcl9udWxsIHBhdGhfYWN0aW9uX3N0b3AgcGF0aF9hY3Rpb25fcmVzdGFydCBwYXRoX2FjdGlvbl9jb250aW51ZSBwYXRoX2FjdGlvbl9yZXZlcnNlIHRydWUgZmFsc2UgcGkgR01fYnVpbGRfZGF0ZSBHTV92ZXJzaW9uIEdNX3J1bnRpbWVfdmVyc2lvbiAgdGltZXpvbmVfbG9jYWwgdGltZXpvbmVfdXRjIGdhbWVzcGVlZF9mcHMgZ2FtZXNwZWVkX21pY3Jvc2Vjb25kcyAgZXZfY3JlYXRlIGV2X2Rlc3Ryb3kgZXZfc3RlcCBldl9hbGFybSBldl9rZXlib2FyZCBldl9tb3VzZSBldl9jb2xsaXNpb24gZXZfb3RoZXIgZXZfZHJhdyBldl9kcmF3X2JlZ2luIGV2X2RyYXdfZW5kIGV2X2RyYXdfcHJlIGV2X2RyYXdfcG9zdCBldl9rZXlwcmVzcyBldl9rZXlyZWxlYXNlIGV2X3RyaWdnZXIgZXZfbGVmdF9idXR0b24gZXZfcmlnaHRfYnV0dG9uIGV2X21pZGRsZV9idXR0b24gZXZfbm9fYnV0dG9uIGV2X2xlZnRfcHJlc3MgZXZfcmlnaHRfcHJlc3MgZXZfbWlkZGxlX3ByZXNzIGV2X2xlZnRfcmVsZWFzZSBldl9yaWdodF9yZWxlYXNlIGV2X21pZGRsZV9yZWxlYXNlIGV2X21vdXNlX2VudGVyIGV2X21vdXNlX2xlYXZlIGV2X21vdXNlX3doZWVsX3VwIGV2X21vdXNlX3doZWVsX2Rvd24gZXZfZ2xvYmFsX2xlZnRfYnV0dG9uIGV2X2dsb2JhbF9yaWdodF9idXR0b24gZXZfZ2xvYmFsX21pZGRsZV9idXR0b24gZXZfZ2xvYmFsX2xlZnRfcHJlc3MgZXZfZ2xvYmFsX3JpZ2h0X3ByZXNzIGV2X2dsb2JhbF9taWRkbGVfcHJlc3MgZXZfZ2xvYmFsX2xlZnRfcmVsZWFzZSBldl9nbG9iYWxfcmlnaHRfcmVsZWFzZSBldl9nbG9iYWxfbWlkZGxlX3JlbGVhc2UgZXZfam95c3RpY2sxX2xlZnQgZXZfam95c3RpY2sxX3JpZ2h0IGV2X2pveXN0aWNrMV91cCBldl9qb3lzdGljazFfZG93biBldl9qb3lzdGljazFfYnV0dG9uMSBldl9qb3lzdGljazFfYnV0dG9uMiBldl9qb3lzdGljazFfYnV0dG9uMyBldl9qb3lzdGljazFfYnV0dG9uNCBldl9qb3lzdGljazFfYnV0dG9uNSBldl9qb3lzdGljazFfYnV0dG9uNiBldl9qb3lzdGljazFfYnV0dG9uNyBldl9qb3lzdGljazFfYnV0dG9uOCBldl9qb3lzdGljazJfbGVmdCBldl9qb3lzdGljazJfcmlnaHQgZXZfam95c3RpY2syX3VwIGV2X2pveXN0aWNrMl9kb3duIGV2X2pveXN0aWNrMl9idXR0b24xIGV2X2pveXN0aWNrMl9idXR0b24yIGV2X2pveXN0aWNrMl9idXR0b24zIGV2X2pveXN0aWNrMl9idXR0b240IGV2X2pveXN0aWNrMl9idXR0b241IGV2X2pveXN0aWNrMl9idXR0b242IGV2X2pveXN0aWNrMl9idXR0b243IGV2X2pveXN0aWNrMl9idXR0b244IGV2X291dHNpZGUgZXZfYm91bmRhcnkgZXZfZ2FtZV9zdGFydCBldl9nYW1lX2VuZCBldl9yb29tX3N0YXJ0IGV2X3Jvb21fZW5kIGV2X25vX21vcmVfbGl2ZXMgZXZfYW5pbWF0aW9uX2VuZCBldl9lbmRfb2ZfcGF0aCBldl9ub19tb3JlX2hlYWx0aCBldl9jbG9zZV9idXR0b24gZXZfdXNlcjAgZXZfdXNlcjEgZXZfdXNlcjIgZXZfdXNlcjMgZXZfdXNlcjQgZXZfdXNlcjUgZXZfdXNlcjYgZXZfdXNlcjcgZXZfdXNlcjggZXZfdXNlcjkgZXZfdXNlcjEwIGV2X3VzZXIxMSBldl91c2VyMTIgZXZfdXNlcjEzIGV2X3VzZXIxNCBldl91c2VyMTUgZXZfc3RlcF9ub3JtYWwgZXZfc3RlcF9iZWdpbiBldl9zdGVwX2VuZCBldl9ndWkgZXZfZ3VpX2JlZ2luIGV2X2d1aV9lbmQgZXZfY2xlYW51cCBldl9nZXN0dXJlIGV2X2dlc3R1cmVfdGFwIGV2X2dlc3R1cmVfZG91YmxlX3RhcCBldl9nZXN0dXJlX2RyYWdfc3RhcnQgZXZfZ2VzdHVyZV9kcmFnZ2luZyBldl9nZXN0dXJlX2RyYWdfZW5kIGV2X2dlc3R1cmVfZmxpY2sgZXZfZ2VzdHVyZV9waW5jaF9zdGFydCBldl9nZXN0dXJlX3BpbmNoX2luIGV2X2dlc3R1cmVfcGluY2hfb3V0IGV2X2dlc3R1cmVfcGluY2hfZW5kIGV2X2dlc3R1cmVfcm90YXRlX3N0YXJ0IGV2X2dlc3R1cmVfcm90YXRpbmcgZXZfZ2VzdHVyZV9yb3RhdGVfZW5kIGV2X2dsb2JhbF9nZXN0dXJlX3RhcCBldl9nbG9iYWxfZ2VzdHVyZV9kb3VibGVfdGFwIGV2X2dsb2JhbF9nZXN0dXJlX2RyYWdfc3RhcnQgZXZfZ2xvYmFsX2dlc3R1cmVfZHJhZ2dpbmcgZXZfZ2xvYmFsX2dlc3R1cmVfZHJhZ19lbmQgZXZfZ2xvYmFsX2dlc3R1cmVfZmxpY2sgZXZfZ2xvYmFsX2dlc3R1cmVfcGluY2hfc3RhcnQgZXZfZ2xvYmFsX2dlc3R1cmVfcGluY2hfaW4gZXZfZ2xvYmFsX2dlc3R1cmVfcGluY2hfb3V0IGV2X2dsb2JhbF9nZXN0dXJlX3BpbmNoX2VuZCBldl9nbG9iYWxfZ2VzdHVyZV9yb3RhdGVfc3RhcnQgZXZfZ2xvYmFsX2dlc3R1cmVfcm90YXRpbmcgZXZfZ2xvYmFsX2dlc3R1cmVfcm90YXRlX2VuZCB2a19ub2tleSB2a19hbnlrZXkgdmtfZW50ZXIgdmtfcmV0dXJuIHZrX3NoaWZ0IHZrX2NvbnRyb2wgdmtfYWx0IHZrX2VzY2FwZSB2a19zcGFjZSB2a19iYWNrc3BhY2UgdmtfdGFiIHZrX3BhdXNlIHZrX3ByaW50c2NyZWVuIHZrX2xlZnQgdmtfcmlnaHQgdmtfdXAgdmtfZG93biB2a19ob21lIHZrX2VuZCB2a19kZWxldGUgdmtfaW5zZXJ0IHZrX3BhZ2V1cCB2a19wYWdlZG93biB2a19mMSB2a19mMiB2a19mMyB2a19mNCB2a19mNSB2a19mNiB2a19mNyB2a19mOCB2a19mOSB2a19mMTAgdmtfZjExIHZrX2YxMiB2a19udW1wYWQwIHZrX251bXBhZDEgdmtfbnVtcGFkMiB2a19udW1wYWQzIHZrX251bXBhZDQgdmtfbnVtcGFkNSB2a19udW1wYWQ2IHZrX251bXBhZDcgdmtfbnVtcGFkOCB2a19udW1wYWQ5IHZrX2RpdmlkZSB2a19tdWx0aXBseSB2a19zdWJ0cmFjdCB2a19hZGQgdmtfZGVjaW1hbCB2a19sc2hpZnQgdmtfbGNvbnRyb2wgdmtfbGFsdCB2a19yc2hpZnQgdmtfcmNvbnRyb2wgdmtfcmFsdCAgbWJfYW55IG1iX25vbmUgbWJfbGVmdCBtYl9yaWdodCBtYl9taWRkbGUgY19hcXVhIGNfYmxhY2sgY19ibHVlIGNfZGtncmF5IGNfZnVjaHNpYSBjX2dyYXkgY19ncmVlbiBjX2xpbWUgY19sdGdyYXkgY19tYXJvb24gY19uYXZ5IGNfb2xpdmUgY19wdXJwbGUgY19yZWQgY19zaWx2ZXIgY190ZWFsIGNfd2hpdGUgY195ZWxsb3cgY19vcmFuZ2UgZmFfbGVmdCBmYV9jZW50ZXIgZmFfcmlnaHQgZmFfdG9wIGZhX21pZGRsZSBmYV9ib3R0b20gcHJfcG9pbnRsaXN0IHByX2xpbmVsaXN0IHByX2xpbmVzdHJpcCBwcl90cmlhbmdsZWxpc3QgcHJfdHJpYW5nbGVzdHJpcCBwcl90cmlhbmdsZWZhbiBibV9jb21wbGV4IGJtX25vcm1hbCBibV9hZGQgYm1fbWF4IGJtX3N1YnRyYWN0IGJtX3plcm8gYm1fb25lIGJtX3NyY19jb2xvdXIgYm1faW52X3NyY19jb2xvdXIgYm1fc3JjX2NvbG9yIGJtX2ludl9zcmNfY29sb3IgYm1fc3JjX2FscGhhIGJtX2ludl9zcmNfYWxwaGEgYm1fZGVzdF9hbHBoYSBibV9pbnZfZGVzdF9hbHBoYSBibV9kZXN0X2NvbG91ciBibV9pbnZfZGVzdF9jb2xvdXIgYm1fZGVzdF9jb2xvciBibV9pbnZfZGVzdF9jb2xvciBibV9zcmNfYWxwaGFfc2F0IHRmX3BvaW50IHRmX2xpbmVhciB0Zl9hbmlzb3Ryb3BpYyBtaXBfb2ZmIG1pcF9vbiBtaXBfbWFya2Vkb25seSBhdWRpb19mYWxsb2ZmX25vbmUgYXVkaW9fZmFsbG9mZl9pbnZlcnNlX2Rpc3RhbmNlIGF1ZGlvX2ZhbGxvZmZfaW52ZXJzZV9kaXN0YW5jZV9jbGFtcGVkIGF1ZGlvX2ZhbGxvZmZfbGluZWFyX2Rpc3RhbmNlIGF1ZGlvX2ZhbGxvZmZfbGluZWFyX2Rpc3RhbmNlX2NsYW1wZWQgYXVkaW9fZmFsbG9mZl9leHBvbmVudF9kaXN0YW5jZSBhdWRpb19mYWxsb2ZmX2V4cG9uZW50X2Rpc3RhbmNlX2NsYW1wZWQgYXVkaW9fb2xkX3N5c3RlbSBhdWRpb19uZXdfc3lzdGVtIGF1ZGlvX21vbm8gYXVkaW9fc3RlcmVvIGF1ZGlvXzNkIGNyX2RlZmF1bHQgY3Jfbm9uZSBjcl9hcnJvdyBjcl9jcm9zcyBjcl9iZWFtIGNyX3NpemVfbmVzdyBjcl9zaXplX25zIGNyX3NpemVfbndzZSBjcl9zaXplX3dlIGNyX3VwYXJyb3cgY3JfaG91cmdsYXNzIGNyX2RyYWcgY3JfYXBwc3RhcnQgY3JfaGFuZHBvaW50IGNyX3NpemVfYWxsIHNwcml0ZXNwZWVkX2ZyYW1lc3BlcnNlY29uZCBzcHJpdGVzcGVlZF9mcmFtZXNwZXJnYW1lZnJhbWUgYXNzZXRfb2JqZWN0IGFzc2V0X3Vua25vd24gYXNzZXRfc3ByaXRlIGFzc2V0X3NvdW5kIGFzc2V0X3Jvb20gYXNzZXRfcGF0aCBhc3NldF9zY3JpcHQgYXNzZXRfZm9udCBhc3NldF90aW1lbGluZSBhc3NldF90aWxlcyBhc3NldF9zaGFkZXIgZmFfcmVhZG9ubHkgZmFfaGlkZGVuIGZhX3N5c2ZpbGUgZmFfdm9sdW1laWQgZmFfZGlyZWN0b3J5IGZhX2FyY2hpdmUgIGRzX3R5cGVfbWFwIGRzX3R5cGVfbGlzdCBkc190eXBlX3N0YWNrIGRzX3R5cGVfcXVldWUgZHNfdHlwZV9ncmlkIGRzX3R5cGVfcHJpb3JpdHkgZWZfZXhwbG9zaW9uIGVmX3JpbmcgZWZfZWxsaXBzZSBlZl9maXJld29yayBlZl9zbW9rZSBlZl9zbW9rZXVwIGVmX3N0YXIgZWZfc3BhcmsgZWZfZmxhcmUgZWZfY2xvdWQgZWZfcmFpbiBlZl9zbm93IHB0X3NoYXBlX3BpeGVsIHB0X3NoYXBlX2Rpc2sgcHRfc2hhcGVfc3F1YXJlIHB0X3NoYXBlX2xpbmUgcHRfc2hhcGVfc3RhciBwdF9zaGFwZV9jaXJjbGUgcHRfc2hhcGVfcmluZyBwdF9zaGFwZV9zcGhlcmUgcHRfc2hhcGVfZmxhcmUgcHRfc2hhcGVfc3BhcmsgcHRfc2hhcGVfZXhwbG9zaW9uIHB0X3NoYXBlX2Nsb3VkIHB0X3NoYXBlX3Ntb2tlIHB0X3NoYXBlX3Nub3cgcHNfZGlzdHJfbGluZWFyIHBzX2Rpc3RyX2dhdXNzaWFuIHBzX2Rpc3RyX2ludmdhdXNzaWFuIHBzX3NoYXBlX3JlY3RhbmdsZSBwc19zaGFwZV9lbGxpcHNlIHBzX3NoYXBlX2RpYW1vbmQgcHNfc2hhcGVfbGluZSB0eV9yZWFsIHR5X3N0cmluZyBkbGxfY2RlY2wgZGxsX3N0ZGNhbGwgbWF0cml4X3ZpZXcgbWF0cml4X3Byb2plY3Rpb24gbWF0cml4X3dvcmxkIG9zX3dpbjMyIG9zX3dpbmRvd3Mgb3NfbWFjb3N4IG9zX2lvcyBvc19hbmRyb2lkIG9zX3N5bWJpYW4gb3NfbGludXggb3NfdW5rbm93biBvc193aW5waG9uZSBvc190aXplbiBvc193aW44bmF0aXZlIG9zX3dpaXUgb3NfM2RzICBvc19wc3ZpdGEgb3NfYmIxMCBvc19wczQgb3NfeGJveG9uZSBvc19wczMgb3NfeGJveDM2MCBvc191d3Agb3NfdHZvcyBvc19zd2l0Y2ggYnJvd3Nlcl9ub3RfYV9icm93c2VyIGJyb3dzZXJfdW5rbm93biBicm93c2VyX2llIGJyb3dzZXJfZmlyZWZveCBicm93c2VyX2Nocm9tZSBicm93c2VyX3NhZmFyaSBicm93c2VyX3NhZmFyaV9tb2JpbGUgYnJvd3Nlcl9vcGVyYSBicm93c2VyX3RpemVuIGJyb3dzZXJfZWRnZSBicm93c2VyX3dpbmRvd3Nfc3RvcmUgYnJvd3Nlcl9pZV9tb2JpbGUgIGRldmljZV9pb3NfdW5rbm93biBkZXZpY2VfaW9zX2lwaG9uZSBkZXZpY2VfaW9zX2lwaG9uZV9yZXRpbmEgZGV2aWNlX2lvc19pcGFkIGRldmljZV9pb3NfaXBhZF9yZXRpbmEgZGV2aWNlX2lvc19pcGhvbmU1IGRldmljZV9pb3NfaXBob25lNiBkZXZpY2VfaW9zX2lwaG9uZTZwbHVzIGRldmljZV9lbXVsYXRvciBkZXZpY2VfdGFibGV0IGRpc3BsYXlfbGFuZHNjYXBlIGRpc3BsYXlfbGFuZHNjYXBlX2ZsaXBwZWQgZGlzcGxheV9wb3J0cmFpdCBkaXNwbGF5X3BvcnRyYWl0X2ZsaXBwZWQgdG1fc2xlZXAgdG1fY291bnR2c3luY3Mgb2ZfY2hhbGxlbmdlX3dpbiBvZl9jaGFsbGVuIGdlX2xvc2Ugb2ZfY2hhbGxlbmdlX3RpZSBsZWFkZXJib2FyZF90eXBlX251bWJlciBsZWFkZXJib2FyZF90eXBlX3RpbWVfbWluc19zZWNzIGNtcGZ1bmNfbmV2ZXIgY21wZnVuY19sZXNzIGNtcGZ1bmNfZXF1YWwgY21wZnVuY19sZXNzZXF1YWwgY21wZnVuY19ncmVhdGVyIGNtcGZ1bmNfbm90ZXF1YWwgY21wZnVuY19ncmVhdGVyZXF1YWwgY21wZnVuY19hbHdheXMgY3VsbF9ub2N1bGxpbmcgY3VsbF9jbG9ja3dpc2UgY3VsbF9jb3VudGVyY2xvY2t3aXNlIGxpZ2h0dHlwZV9kaXIgbGlnaHR0eXBlX3BvaW50IGlhcF9ldl9zdG9yZWxvYWQgaWFwX2V2X3Byb2R1Y3QgaWFwX2V2X3B1cmNoYXNlIGlhcF9ldl9jb25zdW1lIGlhcF9ldl9yZXN0b3JlIGlhcF9zdG9yZWxvYWRfb2sgaWFwX3N0b3JlbG9hZF9mYWlsZWQgaWFwX3N0YXR1c191bmluaXRpYWxpc2VkIGlhcF9zdGF0dXNfdW5hdmFpbGFibGUgaWFwX3N0YXR1c19sb2FkaW5nIGlhcF9zdGF0dXNfYXZhaWxhYmxlIGlhcF9zdGF0dXNfcHJvY2Vzc2luZyBpYXBfc3RhdHVzX3Jlc3RvcmluZyBpYXBfZmFpbGVkIGlhcF91bmF2YWlsYWJsZSBpYXBfYXZhaWxhYmxlIGlhcF9wdXJjaGFzZWQgaWFwX2NhbmNlbGVkIGlhcF9yZWZ1bmRlZCBmYl9sb2dpbl9kZWZhdWx0IGZiX2xvZ2luX2ZhbGxiYWNrX3RvX3dlYnZpZXcgZmJfbG9naW5fbm9fZmFsbGJhY2tfdG9fd2VidmlldyBmYl9sb2dpbl9mb3JjaW5nX3dlYnZpZXcgZmJfbG9naW5fdXNlX3N5c3RlbV9hY2NvdW50IGZiX2xvZ2luX2ZvcmNpbmdfc2FmYXJpICBwaHlfam9pbnRfYW5jaG9yXzFfeCBwaHlfam9pbnRfYW5jaG9yXzFfeSBwaHlfam9pbnRfYW5jaG9yXzJfeCBwaHlfam9pbnRfYW5jaG9yXzJfeSBwaHlfam9pbnRfcmVhY3Rpb25fZm9yY2VfeCBwaHlfam9pbnRfcmVhY3Rpb25fZm9yY2VfeSBwaHlfam9pbnRfcmVhY3Rpb25fdG9ycXVlIHBoeV9qb2ludF9tb3Rvcl9zcGVlZCBwaHlfam9pbnRfYW5nbGUgcGh5X2pvaW50X21vdG9yX3RvcnF1ZSBwaHlfam9pbnRfbWF4X21vdG9yX3RvcnF1ZSBwaHlfam9pbnRfdHJhbnNsYXRpb24gcGh5X2pvaW50X3NwZWVkIHBoeV9qb2ludF9tb3Rvcl9mb3JjZSBwaHlfam9pbnRfbWF4X21vdG9yX2ZvcmNlIHBoeV9qb2ludF9sZW5ndGhfMSBwaHlfam9pbnRfbGVuZ3RoXzIgcGh5X2pvaW50X2RhbXBpbmdfcmF0aW8gcGh5X2pvaW50X2ZyZXF1ZW5jeSBwaHlfam9pbnRfbG93ZXJfYW5nbGVfbGltaXQgcGh5X2pvaW50X3VwcGVyX2FuZ2xlX2xpbWl0IHBoeV9qb2ludF9hbmdsZV9saW1pdHMgcGh5X2pvaW50X21heF9sZW5ndGggcGh5X2pvaW50X21heF90b3JxdWUgcGh5X2pvaW50X21heF9mb3JjZSBwaHlfZGVidWdfcmVuZGVyX2FhYmIgcGh5X2RlYnVnX3JlbmRlcl9jb2xsaXNpb25fcGFpcnMgcGh5X2RlYnVnX3JlbmRlcl9jb21zIHBoeV9kZWJ1Z19yZW5kZXJfY29yZV9zaGFwZXMgcGh5X2RlYnVnX3JlbmRlcl9qb2ludHMgcGh5X2RlYnVnX3JlbmRlcl9vYmIgcGh5X2RlYnVnX3JlbmRlcl9zaGFwZXMgIHBoeV9wYXJ0aWNsZV9mbGFnX3dhdGVyIHBoeV9wYXJ0aWNsZV9mbGFnX3pvbWJpZSBwaHlfcGFydGljbGVfZmxhZ193YWxsIHBoeV9wYXJ0aWNsZV9mbGFnX3NwcmluZyBwaHlfcGFydGljbGVfZmxhZ19lbGFzdGljIHBoeV9wYXJ0aWNsZV9mbGFnX3Zpc2NvdXMgcGh5X3BhcnRpY2xlX2ZsYWdfcG93ZGVyIHBoeV9wYXJ0aWNsZV9mbGFnX3RlbnNpbGUgcGh5X3BhcnRpY2xlX2ZsYWdfY29sb3VybWl4aW5nIHBoeV9wYXJ0aWNsZV9mbGFnX2NvbG9ybWl4aW5nIHBoeV9wYXJ0aWNsZV9ncm91cF9mbGFnX3NvbGlkIHBoeV9wYXJ0aWNsZV9ncm91cF9mbGFnX3JpZ2lkIHBoeV9wYXJ0aWNsZV9kYXRhX2ZsYWdfdHlwZWZsYWdzIHBoeV9wYXJ0aWNsZV9kYXRhX2ZsYWdfcG9zaXRpb24gcGh5X3BhcnRpY2xlX2RhdGFfZmxhZ192ZWxvY2l0eSBwaHlfcGFydGljbGVfZGF0YV9mbGFnX2NvbG91ciBwaHlfcGFydGljbGVfZGF0YV9mbGFnX2NvbG9yIHBoeV9wYXJ0aWNsZV9kYXRhX2ZsYWdfY2F0ZWdvcnkgIGFjaGlldmVtZW50X291cl9pbmZvIGFjaGlldmVtZW50X2ZyaWVuZHNfaW5mbyBhY2hpZXZlbWVudF9sZWFkZXJib2FyZF9pbmZvIGFjaGlldmVtZW50X2FjaGlldmVtZW50X2luZm8gYWNoaWV2ZW1lbnRfZmlsdGVyX2FsbF9wbGF5ZXJzIGFjaGlldmVtZW50X2ZpbHRlcl9mcmllbmRzX29ubHkgYWNoaWV2ZW1lbnRfZmlsdGVyX2Zhdm9yaXRlc19vbmx5IGFjaGlldmVtZW50X3R5cGVfYWNoaWV2ZW1lbnRfY2hhbGxlbmdlIGFjaGlldmVtZW50X3R5cGVfc2NvcmVfY2hhbGxlbmdlIGFjaGlldmVtZW50X3BpY19sb2FkZWQgIGFjaGlldmVtZW50X3Nob3dfdWkgYWNoaWV2ZW1lbnRfc2hvd19wcm9maWxlIGFjaGlldmVtZW50X3Nob3dfbGVhZGVyYm9hcmQgYWNoaWV2ZW1lbnRfc2hvd19hY2hpZXZlbWVudCBhY2hpZXZlbWVudF9zaG93X2JhbmsgYWNoaWV2ZW1lbnRfc2hvd19mcmllbmRfcGlja2VyIGFjaGlldmVtZW50X3Nob3dfcHVyY2hhc2VfcHJvbXB0IG5ldHdvcmtfc29ja2V0X3RjcCBuZXR3b3JrX3NvY2tldF91ZHAgbmV0d29ya19zb2NrZXRfYmx1ZXRvb3RoIG5ldHdvcmtfdHlwZV9jb25uZWN0IG5ldHdvcmtfdHlwZV9kaXNjb25uZWN0IG5ldHdvcmtfdHlwZV9kYXRhIG5ldHdvcmtfdHlwZV9ub25fYmxvY2tpbmdfY29ubmVjdCBuZXR3b3JrX2NvbmZpZ19jb25uZWN0X3RpbWVvdXQgbmV0d29ya19jb25maWdfdXNlX25vbl9ibG9ja2luZ19zb2NrZXQgbmV0d29ya19jb25maWdfZW5hYmxlX3JlbGlhYmxlX3VkcCBuZXR3b3JrX2NvbmZpZ19kaXNhYmxlX3JlbGlhYmxlX3VkcCBidWZmZXJfZml4ZWQgYnVmZmVyX2dyb3cgYnVmZmVyX3dyYXAgYnVmZmVyX2Zhc3QgYnVmZmVyX3ZidWZmZXIgYnVmZmVyX25ldHdvcmsgYnVmZmVyX3U4IGJ1ZmZlcl9zOCBidWZmZXJfdTE2IGJ1ZmZlcl9zMTYgYnVmZmVyX3UzMiBidWZmZXJfczMyIGJ1ZmZlcl91NjQgYnVmZmVyX2YxNiBidWZmZXJfZjMyIGJ1ZmZlcl9mNjQgYnVmZmVyX2Jvb2wgYnVmZmVyX3RleHQgYnVmZmVyX3N0cmluZyBidWZmZXJfc3VyZmFjZV9jb3B5IGJ1ZmZlcl9zZWVrX3N0YXJ0IGJ1ZmZlcl9zZWVrX3JlbGF0aXZlIGJ1ZmZlcl9zZWVrX2VuZCBidWZmZXJfZ2VuZXJhbGVycm9yIGJ1ZmZlcl9vdXRvZnNwYWNlIGJ1ZmZlcl9vdXRvZmJvdW5kcyBidWZmZXJfaW52YWxpZHR5cGUgIHRleHRfdHlwZSBidXR0b25fdHlwZSBpbnB1dF90eXBlIEFOU0lfQ0hBUlNFVCBERUZBVUxUX0NIQVJTRVQgRUFTVEVVUk9QRV9DSEFSU0VUIFJVU1NJQU5fQ0hBUlNFVCBTWU1CT0xfQ0hBUlNFVCBTSElGVEpJU19DSEFSU0VUIEhBTkdFVUxfQ0hBUlNFVCBHQjIzMTJfQ0hBUlNFVCBDSElORVNFQklHNV9DSEFSU0VUIEpPSEFCX0NIQVJTRVQgSEVCUkVXX0NIQVJTRVQgQVJBQklDX0NIQVJTRVQgR1JFRUtfQ0hBUlNFVCBUVVJLSVNIX0NIQVJTRVQgVklFVE5BTUVTRV9DSEFSU0VUIFRIQUlfQ0hBUlNFVCBNQUNfQ0hBUlNFVCBCQUxUSUNfQ0hBUlNFVCBPRU1fQ0hBUlNFVCAgZ3BfZmFjZTEgZ3BfZmFjZTIgZ3BfZmFjZTMgZ3BfZmFjZTQgZ3Bfc2hvdWxkZXJsIGdwX3Nob3VsZGVyciBncF9zaG91bGRlcmxiIGdwX3Nob3VsZGVycmIgZ3Bfc2VsZWN0IGdwX3N0YXJ0IGdwX3N0aWNrbCBncF9zdGlja3IgZ3BfcGFkdSBncF9wYWRkIGdwX3BhZGwgZ3BfcGFkciBncF9heGlzbGggZ3BfYXhpc2x2IGdwX2F4aXNyaCBncF9heGlzcnYgb3ZfZnJpZW5kcyBvdl9jb21tdW5pdHkgb3ZfcGxheWVycyBvdl9zZXR0aW5ncyBvdl9nYW1lZ3JvdXAgb3ZfYWNoaWV2ZW1lbnRzIGxiX3NvcnRfbm9uZSBsYl9zb3J0X2FzY2VuZGluZyBsYl9zb3J0X2Rlc2NlbmRpbmcgbGJfZGlzcF9ub25lIGxiX2Rpc3BfbnVtZXJpYyBsYl9kaXNwX3RpbWVfc2VjIGxiX2Rpc3BfdGltZV9tcyB1Z2NfcmVzdWx0X3N1Y2Nlc3MgdWdjX2ZpbGV0eXBlX2NvbW11bml0eSB1Z2NfZmlsZXR5cGVfbWljcm90cmFucyB1Z2NfdmlzaWJpbGl0eV9wdWJsaWMgdWdjX3Zpc2liaWxpdHlfZnJpZW5kc19vbmx5IHVnY192aXNpYmlsaXR5X3ByaXZhdGUgdWdjX3F1ZXJ5X1JhbmtlZEJ5Vm90ZSB1Z2NfcXVlcnlfUmFua2VkQnlQdWJsaWNhdGlvbkRhdGUgdWdjX3F1ZXJ5X0FjY2VwdGVkRm9yR2FtZVJhbmtlZEJ5QWNjZXB0YW5jZURhdGUgdWdjX3F1ZXJ5X1JhbmtlZEJ5VHJlbmQgdWdjX3F1ZXJ5X0Zhdm9yaXRlZEJ5RnJpZW5kc1JhbmtlZEJ5UHVibGljYXRpb25EYXRlIHVnY19xdWVyeV9DcmVhdGVkQnlGcmllbmRzUmFua2VkQnlQdWJsaWNhdGlvbkRhdGUgdWdjX3F1ZXJ5X1JhbmtlZEJ5TnVtVGltZXNSZXBvcnRlZCB1Z2NfcXVlcnlfQ3JlYXRlZEJ5Rm9sbG93ZWRVc2Vyc1JhbmtlZEJ5UHVibGljYXRpb25EYXRlIHVnY19xdWVyeV9Ob3RZZXRSYXRlZCB1Z2NfcXVlcnlfUmFua2VkQnlUb3RhbFZvdGVzQXNjIHVnY19xdWVyeV9SYW5rZWRCeVZvdGVzVXAgdWdjX3F1ZXJ5X1JhbmtlZEJ5VGV4dFNlYXJjaCB1Z2Nfc29ydG9yZGVyX0NyZWF0aW9uT3JkZXJEZXNjIHVnY19zb3J0b3JkZXJfQ3JlYXRpb25PcmRlckFzYyB1Z2Nfc29ydG9yZGVyX1RpdGxlQXNjIHVnY19zb3J0b3JkZXJfTGFzdFVwZGF0ZWREZXNjIHVnY19zb3J0b3JkZXJfU3Vic2NyaXB0aW9uRGF0ZURlc2MgdWdjX3NvcnRvcmRlcl9Wb3RlU2NvcmVEZXNjIHVnY19zb3J0b3JkZXJfRm9yTW9kZXJhdGlvbiB1Z2NfbGlzdF9QdWJsaXNoZWQgdWdjX2xpc3RfVm90ZWRPbiB1Z2NfbGlzdF9Wb3RlZFVwIHVnY19saXN0X1ZvdGVkRG93biB1Z2NfbGlzdF9XaWxsVm90ZUxhdGVyIHVnY19saXN0X0Zhdm9yaXRlZCB1Z2NfbGlzdF9TdWJzY3JpYmVkIHVnY19saXN0X1VzZWRPclBsYXllZCB1Z2NfbGlzdF9Gb2xsb3dlZCB1Z2NfbWF0Y2hfSXRlbXMgdWdjX21hdGNoX0l0ZW1zX010eCB1Z2NfbWF0Y2hfSXRlbXNfUmVhZHlUb1VzZSB1Z2NfbWF0Y2hfQ29sbGVjdGlvbnMgdWdjX21hdGNoX0FydHdvcmsgdWdjX21hdGNoX1ZpZGVvcyB1Z2NfbWF0Y2hfU2NyZWVuc2hvdHMgdWdjX21hdGNoX0FsbEd1aWRlcyB1Z2NfbWF0Y2hfV2ViR3VpZGVzIHVnY19tYXRjaF9JbnRlZ3JhdGVkR3VpZGVzIHVnY19tYXRjaF9Vc2FibGVJbkdhbWUgdWdjX21hdGNoX0NvbnRyb2xsZXJCaW5kaW5ncyAgdmVydGV4X3VzYWdlX3Bvc2l0aW9uIHZlcnRleF91c2FnZV9jb2xvdXIgdmVydGV4X3VzYWdlX2NvbG9yIHZlcnRleF91c2FnZV9ub3JtYWwgdmVydGV4X3VzYWdlX3RleGNvb3JkIHZlcnRleF91c2FnZV90ZXh0Y29vcmQgdmVydGV4X3VzYWdlX2JsZW5kd2VpZ2h0IHZlcnRleF91c2FnZV9ibGVuZGluZGljZXMgdmVydGV4X3VzYWdlX3BzaXplIHZlcnRleF91c2FnZV90YW5nZW50IHZlcnRleF91c2FnZV9iaW5vcm1hbCB2ZXJ0ZXhfdXNhZ2VfZm9nIHZlcnRleF91c2FnZV9kZXB0aCB2ZXJ0ZXhfdXNhZ2Vfc2FtcGxlIHZlcnRleF90eXBlX2Zsb2F0MSB2ZXJ0ZXhfdHlwZV9mbG9hdDIgdmVydGV4X3R5cGVfZmxvYXQzIHZlcnRleF90eXBlX2Zsb2F0NCB2ZXJ0ZXhfdHlwZV9jb2xvdXIgdmVydGV4X3R5cGVfY29sb3IgdmVydGV4X3R5cGVfdWJ5dGU0IGxheWVyZWxlbWVudHR5cGVfdW5kZWZpbmVkIGxheWVyZWxlbWVudHR5cGVfYmFja2dyb3VuZCBsYXllcmVsZW1lbnR0eXBlX2luc3RhbmNlIGxheWVyZWxlbWVudHR5cGVfb2xkdGlsZW1hcCBsYXllcmVsZW1lbnR0eXBlX3Nwcml0ZSBsYXllcmVsZW1lbnR0eXBlX3RpbGVtYXAgbGF5ZXJlbGVtZW50dHlwZV9wYXJ0aWNsZXN5c3RlbSBsYXllcmVsZW1lbnR0eXBlX3RpbGUgdGlsZV9yb3RhdGUgdGlsZV9mbGlwIHRpbGVfbWlycm9yIHRpbGVfaW5kZXhfbWFzayBrYnZfdHlwZV9kZWZhdWx0IGtidl90eXBlX2FzY2lpIGtidl90eXBlX3VybCBrYnZfdHlwZV9lbWFpbCBrYnZfdHlwZV9udW1iZXJzIGtidl90eXBlX3Bob25lIGtidl90eXBlX3Bob25lX25hbWUga2J2X3JldHVybmtleV9kZWZhdWx0IGtidl9yZXR1cm5rZXlfZ28ga2J2X3JldHVybmtleV9nb29nbGUga2J2X3JldHVybmtleV9qb2luIGtidl9yZXR1cm5rZXlfbmV4dCBrYnZfcmV0dXJua2V5X3JvdXRlIGtidl9yZXR1cm5rZXlfc2VhcmNoIGtidl9yZXR1cm5rZXlfc2VuZCBrYnZfcmV0dXJua2V5X3lhaG9vIGtidl9yZXR1cm5rZXlfZG9uZSBrYnZfcmV0dXJua2V5X2NvbnRpbnVlIGtidl9yZXR1cm5rZXlfZW1lcmdlbmN5IGtidl9hdXRvY2FwaXRhbGl6ZV9ub25lIGtidl9hdXRvY2FwaXRhbGl6ZV93b3JkcyBrYnZfYXV0b2NhcGl0YWxpemVfc2VudGVuY2VzIGtidl9hdXRvY2FwaXRhbGl6ZV9jaGFyYWN0ZXJzIixzeW1ib2w6ImFyZ3VtZW50X3JlbGF0aXZlIGFyZ3VtZW50IGFyZ3VtZW50MCBhcmd1bWVudDEgYXJndW1lbnQyIGFyZ3VtZW50MyBhcmd1bWVudDQgYXJndW1lbnQ1IGFyZ3VtZW50NiBhcmd1bWVudDcgYXJndW1lbnQ4IGFyZ3VtZW50OSBhcmd1bWVudDEwIGFyZ3VtZW50MTEgYXJndW1lbnQxMiBhcmd1bWVudDEzIGFyZ3VtZW50MTQgYXJndW1lbnQxNSBhcmd1bWVudF9jb3VudCB4fDAgeXwwIHhwcmV2aW91cyB5cHJldmlvdXMgeHN0YXJ0IHlzdGFydCBoc3BlZWQgdnNwZWVkIGRpcmVjdGlvbiBzcGVlZCBmcmljdGlvbiBncmF2aXR5IGdyYXZpdHlfZGlyZWN0aW9uIHBhdGhfaW5kZXggcGF0aF9wb3NpdGlvbiBwYXRoX3Bvc2l0aW9ucHJldmlvdXMgcGF0aF9zcGVlZCBwYXRoX3NjYWxlIHBhdGhfb3JpZW50YXRpb24gcGF0aF9lbmRhY3Rpb24gb2JqZWN0X2luZGV4IGlkIHNvbGlkIHBlcnNpc3RlbnQgbWFza19pbmRleCBpbnN0YW5jZV9jb3VudCBpbnN0YW5jZV9pZCByb29tX3NwZWVkIGZwcyBmcHNfcmVhbCBjdXJyZW50X3RpbWUgY3VycmVudF95ZWFyIGN1cnJlbnRfbW9udGggY3VycmVudF9kYXkgY3VycmVudF93ZWVrZGF5IGN1cnJlbnRfaG91ciBjdXJyZW50X21pbnV0ZSBjdXJyZW50X3NlY29uZCBhbGFybSB0aW1lbGluZV9pbmRleCB0aW1lbGluZV9wb3NpdGlvbiB0aW1lbGluZV9zcGVlZCB0aW1lbGluZV9ydW5uaW5nIHRpbWVsaW5lX2xvb3Agcm9vbSByb29tX2ZpcnN0IHJvb21fbGFzdCByb29tX3dpZHRoIHJvb21faGVpZ2h0IHJvb21fY2FwdGlvbiByb29tX3BlcnNpc3RlbnQgc2NvcmUgbGl2ZXMgaGVhbHRoIHNob3dfc2NvcmUgc2hvd19saXZlcyBzaG93X2hlYWx0aCBjYXB0aW9uX3Njb3JlIGNhcHRpb25fbGl2ZXMgY2FwdGlvbl9oZWFsdGggZXZlbnRfdHlwZSBldmVudF9udW1iZXIgZXZlbnRfb2JqZWN0IGV2ZW50X2FjdGlvbiBhcHBsaWNhdGlvbl9zdXJmYWNlIGdhbWVtYWtlcl9wcm8gZ2FtZW1ha2VyX3JlZ2lzdGVyZWQgZ2FtZW1ha2VyX3ZlcnNpb24gZXJyb3Jfb2NjdXJyZWQgZXJyb3JfbGFzdCBkZWJ1Z19tb2RlIGtleWJvYXJkX2tleSBrZXlib2FyZF9sYXN0a2V5IGtleWJvYXJkX2xhc3RjaGFyIGtleWJvYXJkX3N0cmluZyBtb3VzZV94IG1vdXNlX3kgbW91c2VfYnV0dG9uIG1vdXNlX2xhc3RidXR0b24gY3Vyc29yX3Nwcml0ZSB2aXNpYmxlIHNwcml0ZV9pbmRleCBzcHJpdGVfd2lkdGggc3ByaXRlX2hlaWdodCBzcHJpdGVfeG9mZnNldCBzcHJpdGVfeW9mZnNldCBpbWFnZV9udW1iZXIgaW1hZ2VfaW5kZXggaW1hZ2Vfc3BlZWQgZGVwdGggaW1hZ2VfeHNjYWxlIGltYWdlX3lzY2FsZSBpbWFnZV9hbmdsZSBpbWFnZV9hbHBoYSBpbWFnZV9ibGVuZCBiYm94X2xlZnQgYmJveF9yaWdodCBiYm94X3RvcCBiYm94X2JvdHRvbSBsYXllciBiYWNrZ3JvdW5kX2NvbG91ciAgYmFja2dyb3VuZF9zaG93Y29sb3VyIGJhY2tncm91bmRfY29sb3IgYmFja2dyb3VuZF9zaG93Y29sb3Igdmlld19lbmFibGVkIHZpZXdfY3VycmVudCB2aWV3X3Zpc2libGUgdmlld194dmlldyB2aWV3X3l2aWV3IHZpZXdfd3ZpZXcgdmlld19odmlldyB2aWV3X3hwb3J0IHZpZXdfeXBvcnQgdmlld193cG9ydCB2aWV3X2hwb3J0IHZpZXdfYW5nbGUgdmlld19oYm9yZGVyIHZpZXdfdmJvcmRlciB2aWV3X2hzcGVlZCB2aWV3X3ZzcGVlZCB2aWV3X29iamVjdCB2aWV3X3N1cmZhY2VfaWQgdmlld19jYW1lcmEgZ2FtZV9pZCBnYW1lX2Rpc3BsYXlfbmFtZSBnYW1lX3Byb2plY3RfbmFtZSBnYW1lX3NhdmVfaWQgd29ya2luZ19kaXJlY3RvcnkgdGVtcF9kaXJlY3RvcnkgcHJvZ3JhbV9kaXJlY3RvcnkgYnJvd3Nlcl93aWR0aCBicm93c2VyX2hlaWdodCBvc190eXBlIG9zX2RldmljZSBvc19icm93c2VyIG9zX3ZlcnNpb24gZGlzcGxheV9hYSBhc3luY19sb2FkIGRlbHRhX3RpbWUgd2ViZ2xfZW5hYmxlZCBldmVudF9kYXRhIGlhcF9kYXRhIHBoeV9yb3RhdGlvbiBwaHlfcG9zaXRpb25feCBwaHlfcG9zaXRpb25feSBwaHlfYW5ndWxhcl92ZWxvY2l0eSBwaHlfbGluZWFyX3ZlbG9jaXR5X3ggcGh5X2xpbmVhcl92ZWxvY2l0eV95IHBoeV9zcGVlZF94IHBoeV9zcGVlZF95IHBoeV9zcGVlZCBwaHlfYW5ndWxhcl9kYW1waW5nIHBoeV9saW5lYXJfZGFtcGluZyBwaHlfYnVsbGV0IHBoeV9maXhlZF9yb3RhdGlvbiBwaHlfYWN0aXZlIHBoeV9tYXNzIHBoeV9pbmVydGlhIHBoeV9jb21feCBwaHlfY29tX3kgcGh5X2R5bmFtaWMgcGh5X2tpbmVtYXRpYyBwaHlfc2xlZXBpbmcgcGh5X2NvbGxpc2lvbl9wb2ludHMgcGh5X2NvbGxpc2lvbl94IHBoeV9jb2xsaXNpb25feSBwaHlfY29sX25vcm1hbF94IHBoeV9jb2xfbm9ybWFsX3kgcGh5X3Bvc2l0aW9uX3hwcmV2aW91cyBwaHlfcG9zaXRpb25feXByZXZpb3VzIn0sY29udGFpbnM6W2UuQ19MSU5FX0NPTU1FTlRfTU9ERSxlLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLGUuQVBPU19TVFJJTkdfTU9ERSxlLlFVT1RFX1NUUklOR19NT0RFLGUuQ19OVU1CRVJfTU9ERV19fXMuZXhwb3J0cz1yfSw5OTk4OTpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGUpe2NvbnN0IHQ9e2tleXdvcmQ6ImJyZWFrIGRlZmF1bHQgZnVuYyBpbnRlcmZhY2Ugc2VsZWN0IGNhc2UgbWFwIHN0cnVjdCBjaGFuIGVsc2UgZ290byBwYWNrYWdlIHN3aXRjaCBjb25zdCBmYWxsdGhyb3VnaCBpZiByYW5nZSB0eXBlIGNvbnRpbnVlIGZvciBpbXBvcnQgcmV0dXJuIHZhciBnbyBkZWZlciBib29sIGJ5dGUgY29tcGxleDY0IGNvbXBsZXgxMjggZmxvYXQzMiBmbG9hdDY0IGludDggaW50MTYgaW50MzIgaW50NjQgc3RyaW5nIHVpbnQ4IHVpbnQxNiB1aW50MzIgdWludDY0IGludCB1aW50IHVpbnRwdHIgcnVuZSIsbGl0ZXJhbDoidHJ1ZSBmYWxzZSBpb3RhIG5pbCIsYnVpbHRfaW46ImFwcGVuZCBjYXAgY2xvc2UgY29tcGxleCBjb3B5IGltYWcgbGVuIG1ha2UgbmV3IHBhbmljIHByaW50IHByaW50bG4gcmVhbCByZWNvdmVyIGRlbGV0ZSJ9O3JldHVybntuYW1lOiJHbyIsYWxpYXNlczpbImdvbGFuZyJdLGtleXdvcmRzOnQsaWxsZWdhbDoiPC8iLGNvbnRhaW5zOltlLkNfTElORV9DT01NRU5UX01PREUsZS5DX0JMT0NLX0NPTU1FTlRfTU9ERSx7Y2xhc3NOYW1lOiJzdHJpbmciLHZhcmlhbnRzOltlLlFVT1RFX1NUUklOR19NT0RFLGUuQVBPU19TVFJJTkdfTU9ERSx7YmVnaW46ImAiLGVuZDoiYCJ9XX0se2NsYXNzTmFtZToibnVtYmVyIix2YXJpYW50czpbe2JlZ2luOmUuQ19OVU1CRVJfUkUrIltpXSIscmVsZXZhbmNlOjF9LGUuQ19OVU1CRVJfTU9ERV19LHtiZWdpbjovOj0vfSx7Y2xhc3NOYW1lOiJmdW5jdGlvbiIsYmVnaW5LZXl3b3JkczoiZnVuYyIsZW5kOiJcXHMqKFxce3wkKSIsZXhjbHVkZUVuZDohMCxjb250YWluczpbZS5USVRMRV9NT0RFLHtjbGFzc05hbWU6InBhcmFtcyIsYmVnaW46L1woLyxlbmQ6L1wpLyxrZXl3b3Jkczp0LGlsbGVnYWw6L1siJ10vfV19XX19cy5leHBvcnRzPXJ9LDIwODM2OmZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHIoZSl7cmV0dXJue25hbWU6IkdvbG8iLGtleXdvcmRzOntrZXl3b3JkOiJwcmludGxuIHJlYWRsbiBwcmludCBpbXBvcnQgbW9kdWxlIGZ1bmN0aW9uIGxvY2FsIHJldHVybiBsZXQgdmFyIHdoaWxlIGZvciBmb3JlYWNoIHRpbWVzIGluIGNhc2Ugd2hlbiBtYXRjaCB3aXRoIGJyZWFrIGNvbnRpbnVlIGF1Z21lbnQgYXVnbWVudGF0aW9uIGVhY2ggZmluZCBmaWx0ZXIgcmVkdWNlIGlmIHRoZW4gZWxzZSBvdGhlcndpc2UgdHJ5IGNhdGNoIGZpbmFsbHkgcmFpc2UgdGhyb3cgb3JJZk51bGwgRHluYW1pY09iamVjdHwxMCBEeW5hbWljVmFyaWFibGUgc3RydWN0IE9ic2VydmFibGUgbWFwIHNldCB2ZWN0b3IgbGlzdCBhcnJheSIsbGl0ZXJhbDoidHJ1ZSBmYWxzZSBudWxsIn0sY29udGFpbnM6W2UuSEFTSF9DT01NRU5UX01PREUsZS5RVU9URV9TVFJJTkdfTU9ERSxlLkNfTlVNQkVSX01PREUse2NsYXNzTmFtZToibWV0YSIsYmVnaW46IkBbQS1aYS16XSsifV19fXMuZXhwb3J0cz1yfSw5MjAxMDpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGUpe3JldHVybntuYW1lOiJHcmFkbGUiLGNhc2VfaW5zZW5zaXRpdmU6ITAsa2V5d29yZHM6e2tleXdvcmQ6InRhc2sgcHJvamVjdCBhbGxwcm9qZWN0cyBzdWJwcm9qZWN0cyBhcnRpZmFjdHMgYnVpbGRzY3JpcHQgY29uZmlndXJhdGlvbnMgZGVwZW5kZW5jaWVzIHJlcG9zaXRvcmllcyBzb3VyY2VTZXRzIGRlc2NyaXB0aW9uIGRlbGV0ZSBmcm9tIGludG8gaW5jbHVkZSBleGNsdWRlIHNvdXJjZSBjbGFzc3BhdGggZGVzdGluYXRpb25EaXIgaW5jbHVkZXMgb3B0aW9ucyBzb3VyY2VDb21wYXRpYmlsaXR5IHRhcmdldENvbXBhdGliaWxpdHkgZ3JvdXAgZmxhdERpciBkb0xhc3QgZG9GaXJzdCBmbGF0dGVuIHRvZGlyIGZyb21kaXIgYW50IGRlZiBhYnN0cmFjdCBicmVhayBjYXNlIGNhdGNoIGNvbnRpbnVlIGRlZmF1bHQgZG8gZWxzZSBleHRlbmRzIGZpbmFsIGZpbmFsbHkgZm9yIGlmIGltcGxlbWVudHMgaW5zdGFuY2VvZiBuYXRpdmUgbmV3IHByaXZhdGUgcHJvdGVjdGVkIHB1YmxpYyByZXR1cm4gc3RhdGljIHN3aXRjaCBzeW5jaHJvbml6ZWQgdGhyb3cgdGhyb3dzIHRyYW5zaWVudCB0cnkgdm9sYXRpbGUgd2hpbGUgc3RyaWN0ZnAgcGFja2FnZSBpbXBvcnQgZmFsc2UgbnVsbCBzdXBlciB0aGlzIHRydWUgYW50bHJ0YXNrIGNoZWNrc3R5bGUgY29kZW5hcmMgY29weSBib29sZWFuIGJ5dGUgY2hhciBjbGFzcyBkb3VibGUgZmxvYXQgaW50IGludGVyZmFjZSBsb25nIHNob3J0IHZvaWQgY29tcGlsZSBydW5UaW1lIGZpbGUgZmlsZVRyZWUgYWJzIGFueSBhcHBlbmQgYXNMaXN0IGFzV3JpdGFibGUgY2FsbCBjb2xsZWN0IGNvbXBhcmVUbyBjb3VudCBkaXYgZHVtcCBlYWNoIGVhY2hCeXRlIGVhY2hGaWxlIGVhY2hMaW5lIGV2ZXJ5IGZpbmQgZmluZEFsbCBmbGF0dGVuIGdldEF0IGdldEVyciBnZXRJbiBnZXRPdXQgZ2V0VGV4dCBncmVwIGltbXV0YWJsZSBpbmplY3QgaW5zcGVjdCBpbnRlcnNlY3QgaW52b2tlTWV0aG9kcyBpc0Nhc2Ugam9pbiBsZWZ0U2hpZnQgbWludXMgbXVsdGlwbHkgbmV3SW5wdXRTdHJlYW0gbmV3T3V0cHV0U3RyZWFtIG5ld1ByaW50V3JpdGVyIG5ld1JlYWRlciBuZXdXcml0ZXIgbmV4dCBwbHVzIHBvcCBwb3dlciBwcmV2aW91cyBwcmludCBwcmludGxuIHB1c2ggcHV0QXQgcmVhZCByZWFkQnl0ZXMgcmVhZExpbmVzIHJldmVyc2UgcmV2ZXJzZUVhY2ggcm91bmQgc2l6ZSBzb3J0IHNwbGl0RWFjaExpbmUgc3RlcCBzdWJNYXAgdGltZXMgdG9JbnRlZ2VyIHRvTGlzdCB0b2tlbml6ZSB1cHRvIHdhaXRGb3JPcktpbGwgd2l0aFByaW50V3JpdGVyIHdpdGhSZWFkZXIgd2l0aFN0cmVhbSB3aXRoV3JpdGVyIHdpdGhXcml0ZXJBcHBlbmQgd3JpdGUgd3JpdGVMaW5lIn0sY29udGFpbnM6W2UuQ19MSU5FX0NPTU1FTlRfTU9ERSxlLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLGUuQVBPU19TVFJJTkdfTU9ERSxlLlFVT1RFX1NUUklOR19NT0RFLGUuTlVNQkVSX01PREUsZS5SRUdFWFBfTU9ERV19fXMuZXhwb3J0cz1yfSwyMTExNzpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGkpe3JldHVybiBpP3R5cGVvZiBpPT0ic3RyaW5nIj9pOmkuc291cmNlOm51bGx9ZnVuY3Rpb24gZShpKXtyZXR1cm4gdCgiKD89IixpLCIpIil9ZnVuY3Rpb24gdCguLi5pKXtyZXR1cm4gaS5tYXAobD0+cihsKSkuam9pbigiIil9ZnVuY3Rpb24gbihpLG89e30pe3JldHVybiBvLnZhcmlhbnRzPWksb31mdW5jdGlvbiBhKGkpe2NvbnN0IG89IltBLVphLXowLTlfJF0rIixsPW4oW2kuQ19MSU5FX0NPTU1FTlRfTU9ERSxpLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLGkuQ09NTUVOVCgiL1xcKlxcKiIsIlxcKi8iLHtyZWxldmFuY2U6MCxjb250YWluczpbe2JlZ2luOi9cdytALyxyZWxldmFuY2U6MH0se2NsYXNzTmFtZToiZG9jdGFnIixiZWdpbjoiQFtBLVphLXpdKyJ9XX0pXSksYz17Y2xhc3NOYW1lOiJyZWdleHAiLGJlZ2luOi9+P1wvW15cL1xuXStcLy8sY29udGFpbnM6W2kuQkFDS1NMQVNIX0VTQ0FQRV19LF89bihbaS5CSU5BUllfTlVNQkVSX01PREUsaS5DX05VTUJFUl9NT0RFXSksZD1uKFt7YmVnaW46LyIiIi8sZW5kOi8iIiIvfSx7YmVnaW46LycnJy8sZW5kOi8nJycvfSx7YmVnaW46IlxcJC8iLGVuZDoiL1xcJCIscmVsZXZhbmNlOjEwfSxpLkFQT1NfU1RSSU5HX01PREUsaS5RVU9URV9TVFJJTkdfTU9ERV0se2NsYXNzTmFtZToic3RyaW5nIn0pO3JldHVybntuYW1lOiJHcm9vdnkiLGtleXdvcmRzOntidWlsdF9pbjoidGhpcyBzdXBlciIsbGl0ZXJhbDoidHJ1ZSBmYWxzZSBudWxsIixrZXl3b3JkOiJieXRlIHNob3J0IGNoYXIgaW50IGxvbmcgYm9vbGVhbiBmbG9hdCBkb3VibGUgdm9pZCBkZWYgYXMgaW4gYXNzZXJ0IHRyYWl0IGFic3RyYWN0IHN0YXRpYyB2b2xhdGlsZSB0cmFuc2llbnQgcHVibGljIHByaXZhdGUgcHJvdGVjdGVkIHN5bmNocm9uaXplZCBmaW5hbCBjbGFzcyBpbnRlcmZhY2UgZW51bSBpZiBlbHNlIGZvciB3aGlsZSBzd2l0Y2ggY2FzZSBicmVhayBkZWZhdWx0IGNvbnRpbnVlIHRocm93IHRocm93cyB0cnkgY2F0Y2ggZmluYWxseSBpbXBsZW1lbnRzIGV4dGVuZHMgbmV3IGltcG9ydCBwYWNrYWdlIHJldHVybiBpbnN0YW5jZW9mIn0sY29udGFpbnM6W2kuU0hFQkFORyh7YmluYXJ5OiJncm9vdnkiLHJlbGV2YW5jZToxMH0pLGwsZCxjLF8se2NsYXNzTmFtZToiY2xhc3MiLGJlZ2luS2V5d29yZHM6ImNsYXNzIGludGVyZmFjZSB0cmFpdCBlbnVtIixlbmQ6L1x7LyxpbGxlZ2FsOiI6Iixjb250YWluczpbe2JlZ2luS2V5d29yZHM6ImV4dGVuZHMgaW1wbGVtZW50cyJ9LGkuVU5ERVJTQ09SRV9USVRMRV9NT0RFXX0se2NsYXNzTmFtZToibWV0YSIsYmVnaW46IkBbQS1aYS16XSsiLHJlbGV2YW5jZTowfSx7Y2xhc3NOYW1lOiJhdHRyIixiZWdpbjpvKyJbIAldKjoiLHJlbGV2YW5jZTowfSx7YmVnaW46L1w/LyxlbmQ6LzovLHJlbGV2YW5jZTowLGNvbnRhaW5zOltsLGQsYyxfLCJzZWxmIl19LHtjbGFzc05hbWU6InN5bWJvbCIsYmVnaW46Il5bIAldKiIrZShvKyI6IiksZXhjbHVkZUJlZ2luOiEwLGVuZDpvKyI6IixyZWxldmFuY2U6MH1dLGlsbGVnYWw6LyN8PFwvL319cy5leHBvcnRzPWF9LDI4ODI1OmZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHIoZSl7cmV0dXJue25hbWU6IkhBTUwiLGNhc2VfaW5zZW5zaXRpdmU6ITAsY29udGFpbnM6W3tjbGFzc05hbWU6Im1ldGEiLGJlZ2luOiJeISEhKCAoNXwxXFwuMXxTdHJpY3R8RnJhbWVzZXR8QmFzaWN8TW9iaWxlfFJERmF8WE1MXFxiLiopKT8kIixyZWxldmFuY2U6MTB9LGUuQ09NTUVOVCgiXlxccyooIT0jfD0jfC0jfC8pLiokIiwhMSx7cmVsZXZhbmNlOjB9KSx7YmVnaW46Il5cXHMqKC18PXwhPSkoPyEjKSIsc3RhcnRzOntlbmQ6IlxcbiIsc3ViTGFuZ3VhZ2U6InJ1YnkifX0se2NsYXNzTmFtZToidGFnIixiZWdpbjoiXlxccyolIixjb250YWluczpbe2NsYXNzTmFtZToic2VsZWN0b3ItdGFnIixiZWdpbjoiXFx3KyJ9LHtjbGFzc05hbWU6InNlbGVjdG9yLWlkIixiZWdpbjoiI1tcXHctXSsifSx7Y2xhc3NOYW1lOiJzZWxlY3Rvci1jbGFzcyIsYmVnaW46IlxcLltcXHctXSsifSx7YmVnaW46L1x7XHMqLyxlbmQ6L1xzKlx9Lyxjb250YWluczpbe2JlZ2luOiI6XFx3K1xccyo9PiIsZW5kOiIsXFxzKyIscmV0dXJuQmVnaW46ITAsZW5kc1dpdGhQYXJlbnQ6ITAsY29udGFpbnM6W3tjbGFzc05hbWU6ImF0dHIiLGJlZ2luOiI6XFx3KyJ9LGUuQVBPU19TVFJJTkdfTU9ERSxlLlFVT1RFX1NUUklOR19NT0RFLHtiZWdpbjoiXFx3KyIscmVsZXZhbmNlOjB9XX1dfSx7YmVnaW46IlxcKFxccyoiLGVuZDoiXFxzKlxcKSIsZXhjbHVkZUVuZDohMCxjb250YWluczpbe2JlZ2luOiJcXHcrXFxzKj0iLGVuZDoiXFxzKyIscmV0dXJuQmVnaW46ITAsZW5kc1dpdGhQYXJlbnQ6ITAsY29udGFpbnM6W3tjbGFzc05hbWU6ImF0dHIiLGJlZ2luOiJcXHcrIixyZWxldmFuY2U6MH0sZS5BUE9TX1NUUklOR19NT0RFLGUuUVVPVEVfU1RSSU5HX01PREUse2JlZ2luOiJcXHcrIixyZWxldmFuY2U6MH1dfV19XX0se2JlZ2luOiJeXFxzKls9fl1cXHMqIn0se2JlZ2luOi8jXHsvLHN0YXJ0czp7ZW5kOi9cfS8sc3ViTGFuZ3VhZ2U6InJ1YnkifX1dfX1zLmV4cG9ydHM9cn0sMTQyNjpmdW5jdGlvbihzKXtmdW5jdGlvbiByKG8pe3JldHVybiBvP3R5cGVvZiBvPT0ic3RyaW5nIj9vOm8uc291cmNlOm51bGx9ZnVuY3Rpb24gZShvKXtyZXR1cm4gbigiKCIsbywiKSoiKX1mdW5jdGlvbiB0KG8pe3JldHVybiBuKCIoIixvLCIpPyIpfWZ1bmN0aW9uIG4oLi4ubyl7cmV0dXJuIG8ubWFwKGM9PnIoYykpLmpvaW4oIiIpfWZ1bmN0aW9uIGEoLi4ubyl7cmV0dXJuIigiK28ubWFwKGM9PnIoYykpLmpvaW4oInwiKSsiKSJ9ZnVuY3Rpb24gaShvKXtjb25zdCBsPXsiYnVpbHRpbi1uYW1lIjpbImFjdGlvbiIsImJpbmRhdHRyIiwiY29sbGVjdGlvbiIsImNvbXBvbmVudCIsImNvbmNhdCIsImRlYnVnZ2VyIiwiZWFjaCIsImVhY2gtaW4iLCJnZXQiLCJoYXNoIiwiaWYiLCJpbiIsImlucHV0IiwibGluay10byIsImxvYyIsImxvZyIsImxvb2t1cCIsIm11dCIsIm91dGxldCIsInBhcnRpYWwiLCJxdWVyeS1wYXJhbXMiLCJyZW5kZXIiLCJ0ZW1wbGF0ZSIsInRleHRhcmVhIiwidW5ib3VuZCIsInVubGVzcyIsInZpZXciLCJ3aXRoIiwieWllbGQiXX0sYz17bGl0ZXJhbDpbInRydWUiLCJmYWxzZSIsInVuZGVmaW5lZCIsIm51bGwiXX0sXz0vIiJ8IlteIl0rIi8sZD0vJyd8J1teJ10rJy8sZz0vXFtcXXxcW1teXF1dK1xdLyxFPS9bXlxzISIjJSYnKCkqKywuXC87PD0+QFxbXFxcXV5ge3x9fl0rLyx1PS8oXC58XC8pLyxtPWEoXyxkLGcsRSksUz1uKHQoL1wufFwuXC98XC8vKSxtLGUobih1LG0pKSksVD1uKCIoIixnLCJ8IixFLCIpKD89PSkiKSxiPXtiZWdpbjpTLGxleGVtZXM6L1tcdy5cL10rL30sZj1vLmluaGVyaXQoYix7a2V5d29yZHM6Y30pLEM9e2JlZ2luOi9cKC8sZW5kOi9cKS99LE89e2NsYXNzTmFtZToiYXR0ciIsYmVnaW46VCxyZWxldmFuY2U6MCxzdGFydHM6e2JlZ2luOi89LyxlbmQ6Lz0vLHN0YXJ0czp7Y29udGFpbnM6W28uTlVNQkVSX01PREUsby5RVU9URV9TVFJJTkdfTU9ERSxvLkFQT1NfU1RSSU5HX01PREUsZixDXX19fSxEPXtiZWdpbjovYXNccytcfC8sa2V5d29yZHM6e2tleXdvcmQ6ImFzIn0sZW5kOi9cfC8sY29udGFpbnM6W3tiZWdpbjovXHcrL31dfSx5PXtjb250YWluczpbby5OVU1CRVJfTU9ERSxvLlFVT1RFX1NUUklOR19NT0RFLG8uQVBPU19TVFJJTkdfTU9ERSxELE8sZixDXSxyZXR1cm5FbmQ6ITB9LEE9by5pbmhlcml0KGIse2NsYXNzTmFtZToibmFtZSIsa2V5d29yZHM6bCxzdGFydHM6by5pbmhlcml0KHkse2VuZDovXCkvfSl9KTtDLmNvbnRhaW5zPVtBXTtjb25zdCBrPW8uaW5oZXJpdChiLHtrZXl3b3JkczpsLGNsYXNzTmFtZToibmFtZSIsc3RhcnRzOm8uaW5oZXJpdCh5LHtlbmQ6L1x9XH0vfSl9KSxCPW8uaW5oZXJpdChiLHtrZXl3b3JkczpsLGNsYXNzTmFtZToibmFtZSJ9KSxGPW8uaW5oZXJpdChiLHtjbGFzc05hbWU6Im5hbWUiLGtleXdvcmRzOmwsc3RhcnRzOm8uaW5oZXJpdCh5LHtlbmQ6L1x9XH0vfSl9KTtyZXR1cm57bmFtZToiSGFuZGxlYmFycyIsYWxpYXNlczpbImhicyIsImh0bWwuaGJzIiwiaHRtbC5oYW5kbGViYXJzIiwiaHRtbGJhcnMiXSxjYXNlX2luc2Vuc2l0aXZlOiEwLHN1Ykxhbmd1YWdlOiJ4bWwiLGNvbnRhaW5zOlt7YmVnaW46L1xcXHtcey8sc2tpcDohMH0se2JlZ2luOi9cXFxcKD89XHtceykvLHNraXA6ITB9LG8uQ09NTUVOVCgvXHtceyEtLS8sLy0tXH1cfS8pLG8uQ09NTUVOVCgvXHtceyEvLC9cfVx9Lykse2NsYXNzTmFtZToidGVtcGxhdGUtdGFnIixiZWdpbjovXHtce1x7XHsoPyFcLykvLGVuZDovXH1cfVx9XH0vLGNvbnRhaW5zOltrXSxzdGFydHM6e2VuZDovXHtce1x7XHtcLy8scmV0dXJuRW5kOiEwLHN1Ykxhbmd1YWdlOiJ4bWwifX0se2NsYXNzTmFtZToidGVtcGxhdGUtdGFnIixiZWdpbjovXHtce1x7XHtcLy8sZW5kOi9cfVx9XH1cfS8sY29udGFpbnM6W0JdfSx7Y2xhc3NOYW1lOiJ0ZW1wbGF0ZS10YWciLGJlZ2luOi9ce1x7Iy8sZW5kOi9cfVx9Lyxjb250YWluczpba119LHtjbGFzc05hbWU6InRlbXBsYXRlLXRhZyIsYmVnaW46L1x7XHsoPz1lbHNlXH1cfSkvLGVuZDovXH1cfS8sa2V5d29yZHM6ImVsc2UifSx7Y2xhc3NOYW1lOiJ0ZW1wbGF0ZS10YWciLGJlZ2luOi9ce1x7KD89ZWxzZSBpZikvLGVuZDovXH1cfS8sa2V5d29yZHM6ImVsc2UgaWYifSx7Y2xhc3NOYW1lOiJ0ZW1wbGF0ZS10YWciLGJlZ2luOi9ce1x7XC8vLGVuZDovXH1cfS8sY29udGFpbnM6W0JdfSx7Y2xhc3NOYW1lOiJ0ZW1wbGF0ZS12YXJpYWJsZSIsYmVnaW46L1x7XHtcey8sZW5kOi9cfVx9XH0vLGNvbnRhaW5zOltGXX0se2NsYXNzTmFtZToidGVtcGxhdGUtdmFyaWFibGUiLGJlZ2luOi9ce1x7LyxlbmQ6L1x9XH0vLGNvbnRhaW5zOltGXX1dfX1zLmV4cG9ydHM9aX0sNzcxNDpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGUpe2NvbnN0IHQ9e3ZhcmlhbnRzOltlLkNPTU1FTlQoIi0tIiwiJCIpLGUuQ09NTUVOVCgvXHstLywvLVx9Lyx7Y29udGFpbnM6WyJzZWxmIl19KV19LG49e2NsYXNzTmFtZToibWV0YSIsYmVnaW46L1x7LSMvLGVuZDovIy1cfS99LGE9e2NsYXNzTmFtZToibWV0YSIsYmVnaW46Il4jIixlbmQ6IiQifSxpPXtjbGFzc05hbWU6InR5cGUiLGJlZ2luOiJcXGJbQS1aXVtcXHcnXSoiLHJlbGV2YW5jZTowfSxvPXtiZWdpbjoiXFwoIixlbmQ6IlxcKSIsaWxsZWdhbDonIicsY29udGFpbnM6W24sYSx7Y2xhc3NOYW1lOiJ0eXBlIixiZWdpbjoiXFxiW0EtWl1bXFx3XSooXFwoKFxcLlxcLnwsfFxcdyspXFwpKT8ifSxlLmluaGVyaXQoZS5USVRMRV9NT0RFLHtiZWdpbjoiW19hLXpdW1xcdyddKiJ9KSx0XX0sbD17YmVnaW46L1x7LyxlbmQ6L1x9Lyxjb250YWluczpvLmNvbnRhaW5zfTtyZXR1cm57bmFtZToiSGFza2VsbCIsYWxpYXNlczpbImhzIl0sa2V5d29yZHM6ImxldCBpbiBpZiB0aGVuIGVsc2UgY2FzZSBvZiB3aGVyZSBkbyBtb2R1bGUgaW1wb3J0IGhpZGluZyBxdWFsaWZpZWQgdHlwZSBkYXRhIG5ld3R5cGUgZGVyaXZpbmcgY2xhc3MgaW5zdGFuY2UgYXMgZGVmYXVsdCBpbmZpeCBpbmZpeGwgaW5maXhyIGZvcmVpZ24gZXhwb3J0IGNjYWxsIHN0ZGNhbGwgY3BsdXNwbHVzIGp2bSBkb3RuZXQgc2FmZSB1bnNhZmUgZmFtaWx5IGZvcmFsbCBtZG8gcHJvYyByZWMiLGNvbnRhaW5zOlt7YmVnaW5LZXl3b3JkczoibW9kdWxlIixlbmQ6IndoZXJlIixrZXl3b3JkczoibW9kdWxlIHdoZXJlIixjb250YWluczpbbyx0XSxpbGxlZ2FsOiJcXFdcXC58OyJ9LHtiZWdpbjoiXFxiaW1wb3J0XFxiIixlbmQ6IiQiLGtleXdvcmRzOiJpbXBvcnQgcXVhbGlmaWVkIGFzIGhpZGluZyIsY29udGFpbnM6W28sdF0saWxsZWdhbDoiXFxXXFwufDsifSx7Y2xhc3NOYW1lOiJjbGFzcyIsYmVnaW46Il4oXFxzKik/KGNsYXNzfGluc3RhbmNlKVxcYiIsZW5kOiJ3aGVyZSIsa2V5d29yZHM6ImNsYXNzIGZhbWlseSBpbnN0YW5jZSB3aGVyZSIsY29udGFpbnM6W2ksbyx0XX0se2NsYXNzTmFtZToiY2xhc3MiLGJlZ2luOiJcXGIoZGF0YXwobmV3KT90eXBlKVxcYiIsZW5kOiIkIixrZXl3b3JkczoiZGF0YSBmYW1pbHkgdHlwZSBuZXd0eXBlIGRlcml2aW5nIixjb250YWluczpbbixpLG8sbCx0XX0se2JlZ2luS2V5d29yZHM6ImRlZmF1bHQiLGVuZDoiJCIsY29udGFpbnM6W2ksbyx0XX0se2JlZ2luS2V5d29yZHM6ImluZml4IGluZml4bCBpbmZpeHIiLGVuZDoiJCIsY29udGFpbnM6W2UuQ19OVU1CRVJfTU9ERSx0XX0se2JlZ2luOiJcXGJmb3JlaWduXFxiIixlbmQ6IiQiLGtleXdvcmRzOiJmb3JlaWduIGltcG9ydCBleHBvcnQgY2NhbGwgc3RkY2FsbCBjcGx1c3BsdXMganZtIGRvdG5ldCBzYWZlIHVuc2FmZSIsY29udGFpbnM6W2ksZS5RVU9URV9TVFJJTkdfTU9ERSx0XX0se2NsYXNzTmFtZToibWV0YSIsYmVnaW46IiMhXFwvdXNyXFwvYmluXFwvZW52IHJ1bmhhc2tlbGwiLGVuZDoiJCJ9LG4sYSxlLlFVT1RFX1NUUklOR19NT0RFLGUuQ19OVU1CRVJfTU9ERSxpLGUuaW5oZXJpdChlLlRJVExFX01PREUse2JlZ2luOiJeW19hLXpdW1xcdyddKiJ9KSx0LHtiZWdpbjoiLT58PC0ifV19fXMuZXhwb3J0cz1yfSw0Mjk4MTpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGUpe3JldHVybntuYW1lOiJIYXhlIixhbGlhc2VzOlsiaHgiXSxrZXl3b3Jkczp7a2V5d29yZDoiYnJlYWsgY2FzZSBjYXN0IGNhdGNoIGNvbnRpbnVlIGRlZmF1bHQgZG8gZHluYW1pYyBlbHNlIGVudW0gZXh0ZXJuIGZvciBmdW5jdGlvbiBoZXJlIGlmIGltcG9ydCBpbiBpbmxpbmUgbmV2ZXIgbmV3IG92ZXJyaWRlIHBhY2thZ2UgcHJpdmF0ZSBnZXQgc2V0IHB1YmxpYyByZXR1cm4gc3RhdGljIHN1cGVyIHN3aXRjaCB0aGlzIHRocm93IHRyYWNlIHRyeSB0eXBlZGVmIHVudHlwZWQgdXNpbmcgdmFyIHdoaWxlICIrIkludCBGbG9hdCBTdHJpbmcgQm9vbCBEeW5hbWljIFZvaWQgQXJyYXkgIixidWlsdF9pbjoidHJhY2UgdGhpcyIsbGl0ZXJhbDoidHJ1ZSBmYWxzZSBudWxsIF8ifSxjb250YWluczpbe2NsYXNzTmFtZToic3RyaW5nIixiZWdpbjoiJyIsZW5kOiInIixjb250YWluczpbZS5CQUNLU0xBU0hfRVNDQVBFLHtjbGFzc05hbWU6InN1YnN0IixiZWdpbjoiXFwkXFx7IixlbmQ6IlxcfSJ9LHtjbGFzc05hbWU6InN1YnN0IixiZWdpbjoiXFwkIixlbmQ6L1xXXH0vfV19LGUuUVVPVEVfU1RSSU5HX01PREUsZS5DX0xJTkVfQ09NTUVOVF9NT0RFLGUuQ19CTE9DS19DT01NRU5UX01PREUsZS5DX05VTUJFUl9NT0RFLHtjbGFzc05hbWU6Im1ldGEiLGJlZ2luOiJAOiIsZW5kOiIkIn0se2NsYXNzTmFtZToibWV0YSIsYmVnaW46IiMiLGVuZDoiJCIsa2V5d29yZHM6eyJtZXRhLWtleXdvcmQiOiJpZiBlbHNlIGVsc2VpZiBlbmQgZXJyb3IifX0se2NsYXNzTmFtZToidHlwZSIsYmVnaW46IjpbIAldKiIsZW5kOiJbXkEtWmEtejAtOV8gCVxcLT5dIixleGNsdWRlQmVnaW46ITAsZXhjbHVkZUVuZDohMCxyZWxldmFuY2U6MH0se2NsYXNzTmFtZToidHlwZSIsYmVnaW46IjpbIAldKiIsZW5kOiJcXFciLGV4Y2x1ZGVCZWdpbjohMCxleGNsdWRlRW5kOiEwfSx7Y2xhc3NOYW1lOiJ0eXBlIixiZWdpbjoibmV3ICoiLGVuZDoiXFxXIixleGNsdWRlQmVnaW46ITAsZXhjbHVkZUVuZDohMH0se2NsYXNzTmFtZToiY2xhc3MiLGJlZ2luS2V5d29yZHM6ImVudW0iLGVuZDoiXFx7Iixjb250YWluczpbZS5USVRMRV9NT0RFXX0se2NsYXNzTmFtZToiY2xhc3MiLGJlZ2luS2V5d29yZHM6ImFic3RyYWN0IixlbmQ6IltcXHskXSIsY29udGFpbnM6W3tjbGFzc05hbWU6InR5cGUiLGJlZ2luOiJcXCgiLGVuZDoiXFwpIixleGNsdWRlQmVnaW46ITAsZXhjbHVkZUVuZDohMH0se2NsYXNzTmFtZToidHlwZSIsYmVnaW46ImZyb20gKyIsZW5kOiJcXFciLGV4Y2x1ZGVCZWdpbjohMCxleGNsdWRlRW5kOiEwfSx7Y2xhc3NOYW1lOiJ0eXBlIixiZWdpbjoidG8gKyIsZW5kOiJcXFciLGV4Y2x1ZGVCZWdpbjohMCxleGNsdWRlRW5kOiEwfSxlLlRJVExFX01PREVdLGtleXdvcmRzOntrZXl3b3JkOiJhYnN0cmFjdCBmcm9tIHRvIn19LHtjbGFzc05hbWU6ImNsYXNzIixiZWdpbjoiXFxiKGNsYXNzfGludGVyZmFjZSkgKyIsZW5kOiJbXFx7JF0iLGV4Y2x1ZGVFbmQ6ITAsa2V5d29yZHM6ImNsYXNzIGludGVyZmFjZSIsY29udGFpbnM6W3tjbGFzc05hbWU6ImtleXdvcmQiLGJlZ2luOiJcXGIoZXh0ZW5kc3xpbXBsZW1lbnRzKSArIixrZXl3b3JkczoiZXh0ZW5kcyBpbXBsZW1lbnRzIixjb250YWluczpbe2NsYXNzTmFtZToidHlwZSIsYmVnaW46ZS5JREVOVF9SRSxyZWxldmFuY2U6MH1dfSxlLlRJVExFX01PREVdfSx7Y2xhc3NOYW1lOiJmdW5jdGlvbiIsYmVnaW5LZXl3b3JkczoiZnVuY3Rpb24iLGVuZDoiXFwoIixleGNsdWRlRW5kOiEwLGlsbGVnYWw6IlxcUyIsY29udGFpbnM6W2UuVElUTEVfTU9ERV19XSxpbGxlZ2FsOi88XC8vfX1zLmV4cG9ydHM9cn0sMjk4NTpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGUpe3JldHVybntuYW1lOiJIU1AiLGNhc2VfaW5zZW5zaXRpdmU6ITAsa2V5d29yZHM6eyRwYXR0ZXJuOi9bXHcuX10rLyxrZXl3b3JkOiJnb3RvIGdvc3ViIHJldHVybiBicmVhayByZXBlYXQgbG9vcCBjb250aW51ZSB3YWl0IGF3YWl0IGRpbSBzZGltIGZvcmVhY2ggZGltdHlwZSBkdXAgZHVwcHRyIGVuZCBzdG9wIG5ld21vZCBkZWxtb2QgbXJlZiBydW4gZXhnb3RvIG9uIG1jYWxsIGFzc2VydCBsb2dtZXMgbmV3bGFiIHJlc3VtZSB5aWVsZCBvbmV4aXQgb25lcnJvciBvbmtleSBvbmNsaWNrIG9uY21kIGV4aXN0IGRlbGV0ZSBta2RpciBjaGRpciBkaXJsaXN0IGJsb2FkIGJzYXZlIGJjb3B5IG1lbWZpbGUgaWYgZWxzZSBwb2tlIHdwb2tlIGxwb2tlIGdldHN0ciBjaGRwbSBtZW1leHBhbmQgbWVtY3B5IG1lbXNldCBub3Rlc2VsIG5vdGVhZGQgbm90ZWRlbCBub3RlbG9hZCBub3Rlc2F2ZSByYW5kb21pemUgbm90ZXVuc2VsIG5vdGVnZXQgc3BsaXQgc3RycmVwIHNldGVhc2UgYnV0dG9uIGNoZ2Rpc3AgZXhlYyBkaWFsb2cgbW1sb2FkIG1tcGxheSBtbXN0b3AgbWNpIHBzZXQgcGdldCBzeXNjb2xvciBtZXMgcHJpbnQgdGl0bGUgcG9zIGNpcmNsZSBjbHMgZm9udCBzeXNmb250IG9ianNpemUgcGljbG9hZCBjb2xvciBwYWxjb2xvciBwYWxldHRlIHJlZHJhdyB3aWR0aCBnc2VsIGdjb3B5IGd6b29tIGdtb2RlIGJtcHNhdmUgaHN2Y29sb3IgZ2V0a2V5IGxpc3Rib3ggY2hrYm94IGNvbWJveCBpbnB1dCBtZXNib3ggYnVmZmVyIHNjcmVlbiBiZ3NjciBtb3VzZSBvYmpzZWwgZ3JvbGwgbGluZSBjbHJvYmogYm94ZiBvYmpwcm0gb2JqbW9kZSBzdGljayBncmVjdCBncm90YXRlIGdzcXVhcmUgZ3JhZGYgb2JqaW1hZ2Ugb2Jqc2tpcCBvYmplbmFibGUgY2VsbG9hZCBjZWxkaXYgY2VscHV0IG5ld2NvbSBxdWVyeWNvbSBkZWxjb20gY252c3RvdyBjb21yZXMgYXhvYmogd2lub2JqIHNlbmRtc2cgY29tZXZlbnQgY29tZXZhcmcgc2FycmF5Y29udiBjYWxsZnVuYyBjbnZ3dG9zIGNvbWV2ZGlzcCBsaWJwdHIgc3lzdGVtIGhzcHN0YXQgaHNwdmVyIHN0YXQgY250IGVyciBzdHJzaXplIGxvb3BsZXYgc3VibGV2IGlwYXJhbSB3cGFyYW0gbHBhcmFtIHJlZnN0ciByZWZkdmFsIGludCBybmQgc3RybGVuIGxlbmd0aCBsZW5ndGgyIGxlbmd0aDMgbGVuZ3RoNCB2YXJ0eXBlIGdldHRpbWUgcGVlayB3cGVlayBscGVlayB2YXJwdHIgdmFydXNlIG5vdGVpbmZvIGluc3RyIGFicyBsaW1pdCBnZXRlYXNlIHN0ciBzdHJtaWQgc3RyZiBnZXRwYXRoIHN0cnRyaW0gc2luIGNvcyB0YW4gYXRhbiBzcXJ0IGRvdWJsZSBhYnNmIGV4cGYgbG9nZiBsaW1pdGYgcG93ZiBnZXRlYXNlZiBtb3VzZXggbW91c2V5IG1vdXNldyBod25kIGhpbnN0YW5jZSBoZGMgZ2luZm8gb2JqaW5mbyBkaXJpbmZvIHN5c2luZm8gdGhpc21vZCBfX2hzcHZlcl9fIF9faHNwMzBfXyBfX2RhdGVfXyBfX3RpbWVfXyBfX2xpbmVfXyBfX2ZpbGVfXyBfZGVidWcgX19oc3BkZWZfXyBhbmQgb3IgeG9yIG5vdCBzY3JlZW5fbm9ybWFsIHNjcmVlbl9wYWxldHRlIHNjcmVlbl9oaWRlIHNjcmVlbl9maXhlZHNpemUgc2NyZWVuX3Rvb2wgc2NyZWVuX2ZyYW1lIGdtb2RlX2dkaSBnbW9kZV9tZW0gZ21vZGVfcmdiMCBnbW9kZV9hbHBoYSBnbW9kZV9yZ2IwYWxwaGEgZ21vZGVfYWRkIGdtb2RlX3N1YiBnbW9kZV9waXhlbGEgZ2luZm9fbXggZ2luZm9fbXkgZ2luZm9fYWN0IGdpbmZvX3NlbCBnaW5mb193eDEgZ2luZm9fd3kxIGdpbmZvX3d4MiBnaW5mb193eTIgZ2luZm9fdnggZ2luZm9fdnkgZ2luZm9fc2l6ZXggZ2luZm9fc2l6ZXkgZ2luZm9fd2lueCBnaW5mb193aW55IGdpbmZvX21lc3ggZ2luZm9fbWVzeSBnaW5mb19yIGdpbmZvX2cgZ2luZm9fYiBnaW5mb19wYWx1c2UgZ2luZm9fZGlzcHggZ2luZm9fZGlzcHkgZ2luZm9fY3ggZ2luZm9fY3kgZ2luZm9faW50aWQgZ2luZm9fbmV3aWQgZ2luZm9fc3ggZ2luZm9fc3kgb2JqaW5mb19tb2RlIG9iamluZm9fYm1zY3Igb2JqaW5mb19od25kIG5vdGVtYXggbm90ZXNpemUgZGlyX2N1ciBkaXJfZXhlIGRpcl93aW4gZGlyX3N5cyBkaXJfY21kbGluZSBkaXJfZGVza3RvcCBkaXJfbXlkb2MgZGlyX3R2IGZvbnRfbm9ybWFsIGZvbnRfYm9sZCBmb250X2l0YWxpYyBmb250X3VuZGVybGluZSBmb250X3N0cmlrZW91dCBmb250X2FudGlhbGlhcyBvYmptb2RlX25vcm1hbCBvYmptb2RlX2d1aWZvbnQgb2JqbW9kZV91c2Vmb250IGdzcXVhcmVfZ3JhZCBtc2dvdGhpYyBtc21pbmNobyBkbyB1bnRpbCB3aGlsZSB3ZW5kIGZvciBuZXh0IF9icmVhayBfY29udGludWUgc3dpdGNoIGNhc2UgZGVmYXVsdCBzd2JyZWFrIHN3ZW5kIGRkaW0gbGRpbSBhbGxvYyBtX3BpIHJhZDJkZWcgZGVnMnJhZCBlYXNlX2xpbmVhciBlYXNlX3F1YWRfaW4gZWFzZV9xdWFkX291dCBlYXNlX3F1YWRfaW5vdXQgZWFzZV9jdWJpY19pbiBlYXNlX2N1YmljX291dCBlYXNlX2N1YmljX2lub3V0IGVhc2VfcXVhcnRpY19pbiBlYXNlX3F1YXJ0aWNfb3V0IGVhc2VfcXVhcnRpY19pbm91dCBlYXNlX2JvdW5jZV9pbiBlYXNlX2JvdW5jZV9vdXQgZWFzZV9ib3VuY2VfaW5vdXQgZWFzZV9zaGFrZV9pbiBlYXNlX3NoYWtlX291dCBlYXNlX3NoYWtlX2lub3V0IGVhc2VfbG9vcCJ9LGNvbnRhaW5zOltlLkNfTElORV9DT01NRU5UX01PREUsZS5DX0JMT0NLX0NPTU1FTlRfTU9ERSxlLlFVT1RFX1NUUklOR19NT0RFLGUuQVBPU19TVFJJTkdfTU9ERSx7Y2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOi9ceyIvLGVuZDovIlx9Lyxjb250YWluczpbZS5CQUNLU0xBU0hfRVNDQVBFXX0sZS5DT01NRU5UKCI7IiwiJCIse3JlbGV2YW5jZTowfSkse2NsYXNzTmFtZToibWV0YSIsYmVnaW46IiMiLGVuZDoiJCIsa2V5d29yZHM6eyJtZXRhLWtleXdvcmQiOiJhZGRpb24gY2Z1bmMgY21kIGNtcG9wdCBjb21mdW5jIGNvbnN0IGRlZmNmdW5jIGRlZmZ1bmMgZGVmaW5lIGVsc2UgZW5kaWYgZW51bSBlcGFjayBmdW5jIGdsb2JhbCBpZiBpZmRlZiBpZm5kZWYgaW5jbHVkZSBtb2RjZnVuYyBtb2RmdW5jIG1vZGluaXQgbW9kdGVybSBtb2R1bGUgcGFjayBwYWNrb3B0IHJlZ2NtZCBydW50aW1lIHVuZGVmIHVzZWNvbSB1c2VsaWIifSxjb250YWluczpbZS5pbmhlcml0KGUuUVVPVEVfU1RSSU5HX01PREUse2NsYXNzTmFtZToibWV0YS1zdHJpbmcifSksZS5OVU1CRVJfTU9ERSxlLkNfTlVNQkVSX01PREUsZS5DX0xJTkVfQ09NTUVOVF9NT0RFLGUuQ19CTE9DS19DT01NRU5UX01PREVdfSx7Y2xhc3NOYW1lOiJzeW1ib2wiLGJlZ2luOiJeXFwqKFxcdyt8QCkifSxlLk5VTUJFUl9NT0RFLGUuQ19OVU1CRVJfTU9ERV19fXMuZXhwb3J0cz1yfSw0MDA5NTpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGwpe3JldHVybiBsP3R5cGVvZiBsPT0ic3RyaW5nIj9sOmwuc291cmNlOm51bGx9ZnVuY3Rpb24gZShsKXtyZXR1cm4gbigiKCIsbCwiKSoiKX1mdW5jdGlvbiB0KGwpe3JldHVybiBuKCIoIixsLCIpPyIpfWZ1bmN0aW9uIG4oLi4ubCl7cmV0dXJuIGwubWFwKF89PnIoXykpLmpvaW4oIiIpfWZ1bmN0aW9uIGEoLi4ubCl7cmV0dXJuIigiK2wubWFwKF89PnIoXykpLmpvaW4oInwiKSsiKSJ9ZnVuY3Rpb24gaShsKXtjb25zdCBjPXsiYnVpbHRpbi1uYW1lIjpbImFjdGlvbiIsImJpbmRhdHRyIiwiY29sbGVjdGlvbiIsImNvbXBvbmVudCIsImNvbmNhdCIsImRlYnVnZ2VyIiwiZWFjaCIsImVhY2gtaW4iLCJnZXQiLCJoYXNoIiwiaWYiLCJpbiIsImlucHV0IiwibGluay10byIsImxvYyIsImxvZyIsImxvb2t1cCIsIm11dCIsIm91dGxldCIsInBhcnRpYWwiLCJxdWVyeS1wYXJhbXMiLCJyZW5kZXIiLCJ0ZW1wbGF0ZSIsInRleHRhcmVhIiwidW5ib3VuZCIsInVubGVzcyIsInZpZXciLCJ3aXRoIiwieWllbGQiXX0sXz17bGl0ZXJhbDpbInRydWUiLCJmYWxzZSIsInVuZGVmaW5lZCIsIm51bGwiXX0sZD0vIiJ8IlteIl0rIi8sZz0vJyd8J1teJ10rJy8sRT0vXFtcXXxcW1teXF1dK1xdLyx1PS9bXlxzISIjJSYnKCkqKywuXC87PD0+QFxbXFxcXV5ge3x9fl0rLyxtPS8oXC58XC8pLyxTPWEoZCxnLEUsdSksVD1uKHQoL1wufFwuXC98XC8vKSxTLGUobihtLFMpKSksYj1uKCIoIixFLCJ8Iix1LCIpKD89PSkiKSxmPXtiZWdpbjpULGxleGVtZXM6L1tcdy5cL10rL30sQz1sLmluaGVyaXQoZix7a2V5d29yZHM6X30pLE89e2JlZ2luOi9cKC8sZW5kOi9cKS99LEQ9e2NsYXNzTmFtZToiYXR0ciIsYmVnaW46YixyZWxldmFuY2U6MCxzdGFydHM6e2JlZ2luOi89LyxlbmQ6Lz0vLHN0YXJ0czp7Y29udGFpbnM6W2wuTlVNQkVSX01PREUsbC5RVU9URV9TVFJJTkdfTU9ERSxsLkFQT1NfU1RSSU5HX01PREUsQyxPXX19fSx5PXtiZWdpbjovYXNccytcfC8sa2V5d29yZHM6e2tleXdvcmQ6ImFzIn0sZW5kOi9cfC8sY29udGFpbnM6W3tiZWdpbjovXHcrL31dfSxBPXtjb250YWluczpbbC5OVU1CRVJfTU9ERSxsLlFVT1RFX1NUUklOR19NT0RFLGwuQVBPU19TVFJJTkdfTU9ERSx5LEQsQyxPXSxyZXR1cm5FbmQ6ITB9LGs9bC5pbmhlcml0KGYse2NsYXNzTmFtZToibmFtZSIsa2V5d29yZHM6YyxzdGFydHM6bC5pbmhlcml0KEEse2VuZDovXCkvfSl9KTtPLmNvbnRhaW5zPVtrXTtjb25zdCBCPWwuaW5oZXJpdChmLHtrZXl3b3JkczpjLGNsYXNzTmFtZToibmFtZSIsc3RhcnRzOmwuaW5oZXJpdChBLHtlbmQ6L1x9XH0vfSl9KSxGPWwuaW5oZXJpdChmLHtrZXl3b3JkczpjLGNsYXNzTmFtZToibmFtZSJ9KSxLPWwuaW5oZXJpdChmLHtjbGFzc05hbWU6Im5hbWUiLGtleXdvcmRzOmMsc3RhcnRzOmwuaW5oZXJpdChBLHtlbmQ6L1x9XH0vfSl9KTtyZXR1cm57bmFtZToiSGFuZGxlYmFycyIsYWxpYXNlczpbImhicyIsImh0bWwuaGJzIiwiaHRtbC5oYW5kbGViYXJzIiwiaHRtbGJhcnMiXSxjYXNlX2luc2Vuc2l0aXZlOiEwLHN1Ykxhbmd1YWdlOiJ4bWwiLGNvbnRhaW5zOlt7YmVnaW46L1xcXHtcey8sc2tpcDohMH0se2JlZ2luOi9cXFxcKD89XHtceykvLHNraXA6ITB9LGwuQ09NTUVOVCgvXHtceyEtLS8sLy0tXH1cfS8pLGwuQ09NTUVOVCgvXHtceyEvLC9cfVx9Lykse2NsYXNzTmFtZToidGVtcGxhdGUtdGFnIixiZWdpbjovXHtce1x7XHsoPyFcLykvLGVuZDovXH1cfVx9XH0vLGNvbnRhaW5zOltCXSxzdGFydHM6e2VuZDovXHtce1x7XHtcLy8scmV0dXJuRW5kOiEwLHN1Ykxhbmd1YWdlOiJ4bWwifX0se2NsYXNzTmFtZToidGVtcGxhdGUtdGFnIixiZWdpbjovXHtce1x7XHtcLy8sZW5kOi9cfVx9XH1cfS8sY29udGFpbnM6W0ZdfSx7Y2xhc3NOYW1lOiJ0ZW1wbGF0ZS10YWciLGJlZ2luOi9ce1x7Iy8sZW5kOi9cfVx9Lyxjb250YWluczpbQl19LHtjbGFzc05hbWU6InRlbXBsYXRlLXRhZyIsYmVnaW46L1x7XHsoPz1lbHNlXH1cfSkvLGVuZDovXH1cfS8sa2V5d29yZHM6ImVsc2UifSx7Y2xhc3NOYW1lOiJ0ZW1wbGF0ZS10YWciLGJlZ2luOi9ce1x7KD89ZWxzZSBpZikvLGVuZDovXH1cfS8sa2V5d29yZHM6ImVsc2UgaWYifSx7Y2xhc3NOYW1lOiJ0ZW1wbGF0ZS10YWciLGJlZ2luOi9ce1x7XC8vLGVuZDovXH1cfS8sY29udGFpbnM6W0ZdfSx7Y2xhc3NOYW1lOiJ0ZW1wbGF0ZS12YXJpYWJsZSIsYmVnaW46L1x7XHtcey8sZW5kOi9cfVx9XH0vLGNvbnRhaW5zOltLXX0se2NsYXNzTmFtZToidGVtcGxhdGUtdmFyaWFibGUiLGJlZ2luOi9ce1x7LyxlbmQ6L1x9XH0vLGNvbnRhaW5zOltLXX1dfX1mdW5jdGlvbiBvKGwpe2NvbnN0IGM9aShsKTtyZXR1cm4gYy5uYW1lPSJIVE1MYmFycyIsbC5nZXRMYW5ndWFnZSgiaGFuZGxlYmFycyIpJiYoYy5kaXNhYmxlQXV0b2RldGVjdD0hMCksY31zLmV4cG9ydHM9b30sNjY4NjU6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihuKXtyZXR1cm4gbj90eXBlb2Ygbj09InN0cmluZyI/bjpuLnNvdXJjZTpudWxsfWZ1bmN0aW9uIGUoLi4ubil7cmV0dXJuIG4ubWFwKGk9PnIoaSkpLmpvaW4oIiIpfWZ1bmN0aW9uIHQobil7Y29uc3QgYT0iSFRUUC8oMnwxXFwuWzAxXSkiLG89e2NsYXNzTmFtZToiYXR0cmlidXRlIixiZWdpbjplKCJeIiwvW0EtWmEtel1bQS1aYS16MC05LV0qLywiKD89XFw6XFxzKSIpLHN0YXJ0czp7Y29udGFpbnM6W3tjbGFzc05hbWU6InB1bmN0dWF0aW9uIixiZWdpbjovOiAvLHJlbGV2YW5jZTowLHN0YXJ0czp7ZW5kOiIkIixyZWxldmFuY2U6MH19XX19LGw9W28se2JlZ2luOiJcXG5cXG4iLHN0YXJ0czp7c3ViTGFuZ3VhZ2U6W10sZW5kc1dpdGhQYXJlbnQ6ITB9fV07cmV0dXJue25hbWU6IkhUVFAiLGFsaWFzZXM6WyJodHRwcyJdLGlsbGVnYWw6L1xTLyxjb250YWluczpbe2JlZ2luOiJeKD89IithKyIgXFxkezN9KSIsZW5kOi8kLyxjb250YWluczpbe2NsYXNzTmFtZToibWV0YSIsYmVnaW46YX0se2NsYXNzTmFtZToibnVtYmVyIixiZWdpbjoiXFxiXFxkezN9XFxiIn1dLHN0YXJ0czp7ZW5kOi9cYlxCLyxpbGxlZ2FsOi9cUy8sY29udGFpbnM6bH19LHtiZWdpbjoiKD89XltBLVpdKyAoLio/KSAiK2ErIiQpIixlbmQ6LyQvLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOiIgIixlbmQ6IiAiLGV4Y2x1ZGVCZWdpbjohMCxleGNsdWRlRW5kOiEwfSx7Y2xhc3NOYW1lOiJtZXRhIixiZWdpbjphfSx7Y2xhc3NOYW1lOiJrZXl3b3JkIixiZWdpbjoiW0EtWl0rIn1dLHN0YXJ0czp7ZW5kOi9cYlxCLyxpbGxlZ2FsOi9cUy8sY29udGFpbnM6bH19LG4uaW5oZXJpdChvLHtyZWxldmFuY2U6MH0pXX19cy5leHBvcnRzPXR9LDM5MTgyOmZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHIoZSl7dmFyIHQ9ImEtekEtWl9cXC0hLj8rKj08PiYjJyIsbj0iWyIrdCsiXVsiK3QrIjAtOS87Ol0qIixhPXskcGF0dGVybjpuLCJidWlsdGluLW5hbWUiOiIhPSAlICU9ICYgJj0gKiAqKiAqKj0gKj0gKm1hcCArICs9ICwgLS1idWlsZC1jbGFzcy0tIC0taW1wb3J0LS0gLT0gLiAvIC8vIC8vPSAvPSA8IDw8IDw8PSA8PSA9ID4gPj0gPj4gPj49IEAgQD0gXiBePSBhYnMgYWNjdW11bGF0ZSBhbGwgYW5kIGFueSBhcC1jb21wb3NlIGFwLWRvdGltZXMgYXAtZWFjaCBhcC1lYWNoLXdoaWxlIGFwLWZpbHRlciBhcC1maXJzdCBhcC1pZiBhcC1sYXN0IGFwLW1hcCBhcC1tYXAtd2hlbiBhcC1waXBlIGFwLXJlZHVjZSBhcC1yZWplY3QgYXBwbHkgYXMtPiBhc2NpaSBhc3NlcnQgYXNzb2MgYmluIGJyZWFrIGJ1dGxhc3QgY2FsbGFibGUgY2FsbGluZy1tb2R1bGUtbmFtZSBjYXIgY2FzZSBjZHIgY2hhaW4gY2hyIGNvbGw/IGNvbWJpbmF0aW9ucyBjb21waWxlIGNvbXByZXNzIGNvbmQgY29ucyBjb25zPyBjb250aW51ZSBjb3VudCBjdXJyeSBjdXQgY3ljbGUgZGVjIGRlZiBkZWZhdWx0LW1ldGhvZCBkZWZjbGFzcyBkZWZtYWNybyBkZWZtYWNyby1hbGlhcyBkZWZtYWNyby9nISBkZWZtYWluIGRlZm1ldGhvZCBkZWZtdWx0aSBkZWZuIGRlZm4tYWxpYXMgZGVmbmMgZGVmbnIgZGVmcmVhZGVyIGRlZnNlcSBkZWwgZGVsYXR0ciBkZWxldGUtcm91dGUgZGljdC1jb21wIGRpciBkaXNhc3NlbWJsZSBkaXNwYXRjaC1yZWFkZXItbWFjcm8gZGlzdGluY3QgZGl2bW9kIGRvIGRvdG8gZHJvcCBkcm9wLWxhc3QgZHJvcC13aGlsZSBlbXB0eT8gZW5kLXNlcXVlbmNlIGV2YWwgZXZhbC1hbmQtY29tcGlsZSBldmFsLXdoZW4tY29tcGlsZSBldmVuPyBldmVyeT8gZXhjZXB0IGV4ZWMgZmlsdGVyIGZpcnN0IGZsYXR0ZW4gZmxvYXQ/IGZuIGZuYyBmbnIgZm9yIGZvciogZm9ybWF0IGZyYWN0aW9uIGdlbmV4cHIgZ2Vuc3ltIGdldCBnZXRhdHRyIGdsb2JhbCBnbG9iYWxzIGdyb3VwLWJ5IGhhc2F0dHIgaGFzaCBoZXggaWQgaWRlbnRpdHkgaWYgaWYqIGlmLW5vdCBpZi1weXRob24yIGltcG9ydCBpbiBpbmMgaW5wdXQgaW5zdGFuY2U/IGludGVnZXIgaW50ZWdlci1jaGFyPyBpbnRlZ2VyPyBpbnRlcmxlYXZlIGludGVycG9zZSBpcyBpcy1jb2xsIGlzLWNvbnMgaXMtZW1wdHkgaXMtZXZlbiBpcy1ldmVyeSBpcy1mbG9hdCBpcy1pbnN0YW5jZSBpcy1pbnRlZ2VyIGlzLWludGVnZXItY2hhciBpcy1pdGVyYWJsZSBpcy1pdGVyYXRvciBpcy1rZXl3b3JkIGlzLW5lZyBpcy1ub25lIGlzLW5vdCBpcy1udW1lcmljIGlzLW9kZCBpcy1wb3MgaXMtc3RyaW5nIGlzLXN5bWJvbCBpcy16ZXJvIGlzaW5zdGFuY2UgaXNsaWNlIGlzc3ViY2xhc3MgaXRlciBpdGVyYWJsZT8gaXRlcmF0ZSBpdGVyYXRvcj8ga2V5d29yZCBrZXl3b3JkPyBsYW1iZGEgbGFzdCBsZW4gbGV0IGxpZiBsaWYtbm90IGxpc3QqIGxpc3QtY29tcCBsb2NhbHMgbG9vcCBtYWNyby1lcnJvciBtYWNyb2V4cGFuZCBtYWNyb2V4cGFuZC0xIG1hY3JvZXhwYW5kLWFsbCBtYXAgbWF4IG1lcmdlLXdpdGggbWV0aG9kLWRlY29yYXRvciBtaW4gbXVsdGktZGVjb3JhdG9yIG11bHRpY29tYmluYXRpb25zIG5hbWUgbmVnPyBuZXh0IG5vbmU/IG5vbmxvY2FsIG5vdCBub3QtaW4gbm90PyBudGggbnVtZXJpYz8gb2N0IG9kZD8gb3BlbiBvciBvcmQgcGFydGl0aW9uIHBlcm11dGF0aW9ucyBwb3M/IHBvc3Qtcm91dGUgcG9zdHdhbGsgcG93IHByZXdhbGsgcHJpbnQgcHJvZHVjdCBwcm9maWxlL2NhbGxzIHByb2ZpbGUvY3B1IHB1dC1yb3V0ZSBxdWFzaXF1b3RlIHF1b3RlIHJhaXNlIHJhbmdlIHJlYWQgcmVhZC1zdHIgcmVjdXJzaXZlLXJlcGxhY2UgcmVkdWNlIHJlbW92ZSByZXBlYXQgcmVwZWF0ZWRseSByZXByIHJlcXVpcmUgcmVzdCByb3VuZCByb3V0ZSByb3V0ZS13aXRoLW1ldGhvZHMgcndtIHNlY29uZCBzZXEgc2V0LWNvbXAgc2V0YXR0ciBzZXR2IHNvbWUgc29ydGVkIHN0cmluZyBzdHJpbmc/IHN1bSBzd2l0Y2ggc3ltYm9sPyB0YWtlIHRha2UtbnRoIHRha2Utd2hpbGUgdGVlIHRyeSB1bmxlc3MgdW5xdW90ZSB1bnF1b3RlLXNwbGljaW5nIHZhcnMgd2FsayB3aGVuIHdoaWxlIHdpdGggd2l0aCogd2l0aC1kZWNvcmF0b3Igd2l0aC1nZW5zeW1zIHhpIHhvciB5aWVsZCB5aWVsZC1mcm9tIHplcm8/IHppcCB6aXAtbG9uZ2VzdCB8IHw9IH4ifSxpPSJbLStdP1xcZCsoXFwuXFxkKyk/IixvPXtiZWdpbjpuLHJlbGV2YW5jZTowfSxsPXtjbGFzc05hbWU6Im51bWJlciIsYmVnaW46aSxyZWxldmFuY2U6MH0sYz1lLmluaGVyaXQoZS5RVU9URV9TVFJJTkdfTU9ERSx7aWxsZWdhbDpudWxsfSksXz1lLkNPTU1FTlQoIjsiLCIkIix7cmVsZXZhbmNlOjB9KSxkPXtjbGFzc05hbWU6ImxpdGVyYWwiLGJlZ2luOi9cYihbVHRdcnVlfFtGZl1hbHNlfG5pbHxOb25lKVxiL30sZz17YmVnaW46IltcXFtcXHtdIixlbmQ6IltcXF1cXH1dIn0sRT17Y2xhc3NOYW1lOiJjb21tZW50IixiZWdpbjoiXFxeIitufSx1PWUuQ09NTUVOVCgiXFxeXFx7IiwiXFx9IiksbT17Y2xhc3NOYW1lOiJzeW1ib2wiLGJlZ2luOiJbOl17MSwyfSIrbn0sUz17YmVnaW46IlxcKCIsZW5kOiJcXCkifSxUPXtlbmRzV2l0aFBhcmVudDohMCxyZWxldmFuY2U6MH0sYj17Y2xhc3NOYW1lOiJuYW1lIixyZWxldmFuY2U6MCxrZXl3b3JkczphLGJlZ2luOm4sc3RhcnRzOlR9LGY9W1MsYyxFLHUsXyxtLGcsbCxkLG9dO3JldHVybiBTLmNvbnRhaW5zPVtlLkNPTU1FTlQoImNvbW1lbnQiLCIiKSxiLFRdLFQuY29udGFpbnM9ZixnLmNvbnRhaW5zPWYse25hbWU6Ikh5IixhbGlhc2VzOlsiaHlsYW5nIl0saWxsZWdhbDovXFMvLGNvbnRhaW5zOltlLlNIRUJBTkcoKSxTLGMsRSx1LF8sbSxnLGwsZF19fXMuZXhwb3J0cz1yfSwxNjg5NzpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGUpe2NvbnN0IHQ9IlxcWyIsbj0iXFxdIjtyZXR1cm57bmFtZToiSW5mb3JtIDciLGFsaWFzZXM6WyJpNyJdLGNhc2VfaW5zZW5zaXRpdmU6ITAsa2V5d29yZHM6e2tleXdvcmQ6InRoaW5nIHJvb20gcGVyc29uIG1hbiB3b21hbiBhbmltYWwgY29udGFpbmVyIHN1cHBvcnRlciBiYWNrZHJvcCBkb29yIHNjZW5lcnkgb3BlbiBjbG9zZWQgbG9ja2VkIGluc2lkZSBnZW5kZXIgaXMgYXJlIHNheSB1bmRlcnN0YW5kIGtpbmQgb2YgcnVsZSJ9LGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOiciJyxlbmQ6JyInLHJlbGV2YW5jZTowLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJzdWJzdCIsYmVnaW46dCxlbmQ6bn1dfSx7Y2xhc3NOYW1lOiJzZWN0aW9uIixiZWdpbjovXihWb2x1bWV8Qm9va3xQYXJ0fENoYXB0ZXJ8U2VjdGlvbnxUYWJsZSlcYi8sZW5kOiIkIn0se2JlZ2luOi9eKENoZWNrfENhcnJ5IG91dHxSZXBvcnR8SW5zdGVhZCBvZnxUb3xSdWxlfFdoZW58QmVmb3JlfEFmdGVyKVxiLyxlbmQ6IjoiLGNvbnRhaW5zOlt7YmVnaW46IlxcKFRoaXMiLGVuZDoiXFwpIn1dfSx7Y2xhc3NOYW1lOiJjb21tZW50IixiZWdpbjp0LGVuZDpuLGNvbnRhaW5zOlsic2VsZiJdfV19fXMuZXhwb3J0cz1yfSwyNzYyOmZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHIoaSl7cmV0dXJuIGk/dHlwZW9mIGk9PSJzdHJpbmciP2k6aS5zb3VyY2U6bnVsbH1mdW5jdGlvbiBlKGkpe3JldHVybiB0KCIoPz0iLGksIikiKX1mdW5jdGlvbiB0KC4uLmkpe3JldHVybiBpLm1hcChsPT5yKGwpKS5qb2luKCIiKX1mdW5jdGlvbiBuKC4uLmkpe3JldHVybiIoIitpLm1hcChsPT5yKGwpKS5qb2luKCJ8IikrIikifWZ1bmN0aW9uIGEoaSl7Y29uc3Qgbz17Y2xhc3NOYW1lOiJudW1iZXIiLHJlbGV2YW5jZTowLHZhcmlhbnRzOlt7YmVnaW46LyhbKy1dKyk/W1xkXStfW1xkX10rL30se2JlZ2luOmkuTlVNQkVSX1JFfV19LGw9aS5DT01NRU5UKCk7bC52YXJpYW50cz1be2JlZ2luOi87LyxlbmQ6LyQvfSx7YmVnaW46LyMvLGVuZDovJC99XTtjb25zdCBjPXtjbGFzc05hbWU6InZhcmlhYmxlIix2YXJpYW50czpbe2JlZ2luOi9cJFtcd1xkIl1bXHdcZF9dKi99LHtiZWdpbjovXCRceyguKj8pXH0vfV19LF89e2NsYXNzTmFtZToibGl0ZXJhbCIsYmVnaW46L1xib258b2ZmfHRydWV8ZmFsc2V8eWVzfG5vXGIvfSxkPXtjbGFzc05hbWU6InN0cmluZyIsY29udGFpbnM6W2kuQkFDS1NMQVNIX0VTQ0FQRV0sdmFyaWFudHM6W3tiZWdpbjoiJycnIixlbmQ6IicnJyIscmVsZXZhbmNlOjEwfSx7YmVnaW46JyIiIicsZW5kOiciIiInLHJlbGV2YW5jZToxMH0se2JlZ2luOiciJyxlbmQ6JyInfSx7YmVnaW46IiciLGVuZDoiJyJ9XX0sZz17YmVnaW46L1xbLyxlbmQ6L1xdLyxjb250YWluczpbbCxfLGMsZCxvLCJzZWxmIl0scmVsZXZhbmNlOjB9LFM9bigvW0EtWmEtejAtOV8tXSsvLC8iKFxcInxbXiJdKSoiLywvJ1teJ10qJy8pLFQ9dChTLCIoXFxzKlxcLlxccyoiLFMsIikqIixlKC9ccyo9XHMqW14jXHNdLykpO3JldHVybntuYW1lOiJUT01MLCBhbHNvIElOSSIsYWxpYXNlczpbInRvbWwiXSxjYXNlX2luc2Vuc2l0aXZlOiEwLGlsbGVnYWw6L1xTLyxjb250YWluczpbbCx7Y2xhc3NOYW1lOiJzZWN0aW9uIixiZWdpbjovXFsrLyxlbmQ6L1xdKy99LHtiZWdpbjpULGNsYXNzTmFtZToiYXR0ciIsc3RhcnRzOntlbmQ6LyQvLGNvbnRhaW5zOltsLGcsXyxjLGQsb119fV19fXMuZXhwb3J0cz1hfSw3MTk3NjpmdW5jdGlvbihzKXtmdW5jdGlvbiByKG4pe3JldHVybiBuP3R5cGVvZiBuPT0ic3RyaW5nIj9uOm4uc291cmNlOm51bGx9ZnVuY3Rpb24gZSguLi5uKXtyZXR1cm4gbi5tYXAoaT0+cihpKSkuam9pbigiIil9ZnVuY3Rpb24gdChuKXtjb25zdCBhPXtjbGFzc05hbWU6InBhcmFtcyIsYmVnaW46IlxcKCIsZW5kOiJcXCkifSxpPS8oX1thLXpfXGRdKyk/LyxvPS8oW2RlXVsrLV0/XGQrKT8vLGw9e2NsYXNzTmFtZToibnVtYmVyIix2YXJpYW50czpbe2JlZ2luOmUoL1xiXGQrLywvXC4oXGQqKS8sbyxpKX0se2JlZ2luOmUoL1xiXGQrLyxvLGkpfSx7YmVnaW46ZSgvXC5cZCsvLG8saSl9XSxyZWxldmFuY2U6MH07cmV0dXJue25hbWU6IklSUEY5MCIsY2FzZV9pbnNlbnNpdGl2ZTohMCxrZXl3b3Jkczp7bGl0ZXJhbDoiLkZhbHNlLiAuVHJ1ZS4iLGtleXdvcmQ6ImtpbmQgZG8gd2hpbGUgcHJpdmF0ZSBjYWxsIGludHJpbnNpYyB3aGVyZSBlbHNld2hlcmUgdHlwZSBlbmR0eXBlIGVuZG1vZHVsZSBlbmRzZWxlY3QgZW5kaW50ZXJmYWNlIGVuZCBlbmRkbyBlbmRpZiBpZiBmb3JhbGwgZW5kZm9yYWxsIG9ubHkgY29udGFpbnMgZGVmYXVsdCByZXR1cm4gc3RvcCB0aGVuIHB1YmxpYyBzdWJyb3V0aW5lfDEwIGZ1bmN0aW9uIHByb2dyYW0gLmFuZC4gLm9yLiAubm90LiAubGUuIC5lcS4gLmdlLiAuZ3QuIC5sdC4gZ290byBzYXZlIGVsc2UgdXNlIG1vZHVsZSBzZWxlY3QgY2FzZSBhY2Nlc3MgYmxhbmsgZGlyZWN0IGV4aXN0IGZpbGUgZm10IGZvcm0gZm9ybWF0dGVkIGlvc3RhdCBuYW1lIG5hbWVkIG5leHRyZWMgbnVtYmVyIG9wZW5lZCByZWMgcmVjbCBzZXF1ZW50aWFsIHN0YXR1cyB1bmZvcm1hdHRlZCB1bml0IGNvbnRpbnVlIGZvcm1hdCBwYXVzZSBjeWNsZSBleGl0IGNfbnVsbF9jaGFyIGNfYWxlcnQgY19iYWNrc3BhY2UgY19mb3JtX2ZlZWQgZmx1c2ggd2FpdCBkZWNpbWFsIHJvdW5kIGlvbXNnIHN5bmNocm9ub3VzIG5vcGFzcyBub25fb3ZlcnJpZGFibGUgcGFzcyBwcm90ZWN0ZWQgdm9sYXRpbGUgYWJzdHJhY3QgZXh0ZW5kcyBpbXBvcnQgbm9uX2ludHJpbnNpYyB2YWx1ZSBkZWZlcnJlZCBnZW5lcmljIGZpbmFsIGVudW1lcmF0b3IgY2xhc3MgYXNzb2NpYXRlIGJpbmQgZW51bSBjX2ludCBjX3Nob3J0IGNfbG9uZyBjX2xvbmdfbG9uZyBjX3NpZ25lZF9jaGFyIGNfc2l6ZV90IGNfaW50OF90IGNfaW50MTZfdCBjX2ludDMyX3QgY19pbnQ2NF90IGNfaW50X2xlYXN0OF90IGNfaW50X2xlYXN0MTZfdCBjX2ludF9sZWFzdDMyX3QgY19pbnRfbGVhc3Q2NF90IGNfaW50X2Zhc3Q4X3QgY19pbnRfZmFzdDE2X3QgY19pbnRfZmFzdDMyX3QgY19pbnRfZmFzdDY0X3QgY19pbnRtYXhfdCBDX2ludHB0cl90IGNfZmxvYXQgY19kb3VibGUgY19sb25nX2RvdWJsZSBjX2Zsb2F0X2NvbXBsZXggY19kb3VibGVfY29tcGxleCBjX2xvbmdfZG91YmxlX2NvbXBsZXggY19ib29sIGNfY2hhciBjX251bGxfcHRyIGNfbnVsbF9mdW5wdHIgY19uZXdfbGluZSBjX2NhcnJpYWdlX3JldHVybiBjX2hvcml6b250YWxfdGFiIGNfdmVydGljYWxfdGFiIGlzb19jX2JpbmRpbmcgY19sb2MgY19mdW5sb2MgY19hc3NvY2lhdGVkICBjX2ZfcG9pbnRlciBjX3B0ciBjX2Z1bnB0ciBpc29fZm9ydHJhbl9lbnYgY2hhcmFjdGVyX3N0b3JhZ2Vfc2l6ZSBlcnJvcl91bml0IGZpbGVfc3RvcmFnZV9zaXplIGlucHV0X3VuaXQgaW9zdGF0X2VuZCBpb3N0YXRfZW9yIG51bWVyaWNfc3RvcmFnZV9zaXplIG91dHB1dF91bml0IGNfZl9wcm9jcG9pbnRlciBpZWVlX2FyaXRobWV0aWMgaWVlZV9zdXBwb3J0X3VuZGVyZmxvd19jb250cm9sIGllZWVfZ2V0X3VuZGVyZmxvd19tb2RlIGllZWVfc2V0X3VuZGVyZmxvd19tb2RlIG5ld3VuaXQgY29udGlndW91cyByZWN1cnNpdmUgcGFkIHBvc2l0aW9uIGFjdGlvbiBkZWxpbSByZWFkd3JpdGUgZW9yIGFkdmFuY2Ugbm1sIGludGVyZmFjZSBwcm9jZWR1cmUgbmFtZWxpc3QgaW5jbHVkZSBzZXF1ZW5jZSBlbGVtZW50YWwgcHVyZSBpbnRlZ2VyIHJlYWwgY2hhcmFjdGVyIGNvbXBsZXggbG9naWNhbCBkaW1lbnNpb24gYWxsb2NhdGFibGV8MTAgcGFyYW1ldGVyIGV4dGVybmFsIGltcGxpY2l0fDEwIG5vbmUgZG91YmxlIHByZWNpc2lvbiBhc3NpZ24gaW50ZW50IG9wdGlvbmFsIHBvaW50ZXIgdGFyZ2V0IGluIG91dCBjb21tb24gZXF1aXZhbGVuY2UgZGF0YSBiZWdpbl9wcm92aWRlciAmYmVnaW5fcHJvdmlkZXIgZW5kX3Byb3ZpZGVyIGJlZ2luX3NoZWxsIGVuZF9zaGVsbCBiZWdpbl90ZW1wbGF0ZSBlbmRfdGVtcGxhdGUgc3Vic3QgYXNzZXJ0IHRvdWNoIHNvZnRfdG91Y2ggcHJvdmlkZSBub19kZXAgZnJlZSBpcnBfaWYgaXJwX2Vsc2UgaXJwX2VuZGlmIGlycF93cml0ZSBpcnBfcmVhZCIsYnVpbHRfaW46ImFsb2cgYWxvZzEwIGFtYXgwIGFtYXgxIGFtaW4wIGFtaW4xIGFtb2QgY2FicyBjY29zIGNleHAgY2xvZyBjc2luIGNzcXJ0IGRhYnMgZGFjb3MgZGFzaW4gZGF0YW4gZGF0YW4yIGRjb3MgZGNvc2ggZGRpbSBkZXhwIGRpbnQgZGxvZyBkbG9nMTAgZG1heDEgZG1pbjEgZG1vZCBkbmludCBkc2lnbiBkc2luIGRzaW5oIGRzcXJ0IGR0YW4gZHRhbmggZmxvYXQgaWFicyBpZGltIGlkaW50IGlkbmludCBpZml4IGlzaWduIG1heDAgbWF4MSBtaW4wIG1pbjEgc25nbCBhbGdhbWEgY2RhYnMgY2Rjb3MgY2RleHAgY2Rsb2cgY2RzaW4gY2RzcXJ0IGNxYWJzIGNxY29zIGNxZXhwIGNxbG9nIGNxc2luIGNxc3FydCBkY21wbHggZGNvbmpnIGRlcmYgZGVyZmMgZGZsb2F0IGRnYW1tYSBkaW1hZyBkbGdhbWEgaXFpbnQgcWFicyBxYWNvcyBxYXNpbiBxYXRhbiBxYXRhbjIgcWNtcGx4IHFjb25qZyBxY29zIHFjb3NoIHFkaW0gcWVyZiBxZXJmYyBxZXhwIHFnYW1tYSBxaW1hZyBxbGdhbWEgcWxvZyBxbG9nMTAgcW1heDEgcW1pbjEgcW1vZCBxbmludCBxc2lnbiBxc2luIHFzaW5oIHFzcXJ0IHF0YW4gcXRhbmggYWJzIGFjb3MgYWltYWcgYWludCBhbmludCBhc2luIGF0YW4gYXRhbjIgY2hhciBjbXBseCBjb25qZyBjb3MgY29zaCBleHAgaWNoYXIgaW5kZXggaW50IGxvZyBsb2cxMCBtYXggbWluIG5pbnQgc2lnbiBzaW4gc2luaCBzcXJ0IHRhbiB0YW5oIHByaW50IHdyaXRlIGRpbSBsZ2UgbGd0IGxsZSBsbHQgbW9kIG51bGxpZnkgYWxsb2NhdGUgZGVhbGxvY2F0ZSBhZGp1c3RsIGFkanVzdHIgYWxsIGFsbG9jYXRlZCBhbnkgYXNzb2NpYXRlZCBiaXRfc2l6ZSBidGVzdCBjZWlsaW5nIGNvdW50IGNzaGlmdCBkYXRlX2FuZF90aW1lIGRpZ2l0cyBkb3RfcHJvZHVjdCBlb3NoaWZ0IGVwc2lsb24gZXhwb25lbnQgZmxvb3IgZnJhY3Rpb24gaHVnZSBpYW5kIGliY2xyIGliaXRzIGlic2V0IGllb3IgaW9yIGlzaGZ0IGlzaGZ0YyBsYm91bmQgbGVuX3RyaW0gbWF0bXVsIG1heGV4cG9uZW50IG1heGxvYyBtYXh2YWwgbWVyZ2UgbWluZXhwb25lbnQgbWlubG9jIG1pbnZhbCBtb2R1bG8gbXZiaXRzIG5lYXJlc3QgcGFjayBwcmVzZW50IHByb2R1Y3QgcmFkaXggcmFuZG9tX251bWJlciByYW5kb21fc2VlZCByYW5nZSByZXBlYXQgcmVzaGFwZSBycnNwYWNpbmcgc2NhbGUgc2NhbiBzZWxlY3RlZF9pbnRfa2luZCBzZWxlY3RlZF9yZWFsX2tpbmQgc2V0X2V4cG9uZW50IHNoYXBlIHNpemUgc3BhY2luZyBzcHJlYWQgc3VtIHN5c3RlbV9jbG9jayB0aW55IHRyYW5zcG9zZSB0cmltIHVib3VuZCB1bnBhY2sgdmVyaWZ5IGFjaGFyIGlhY2hhciB0cmFuc2ZlciBkYmxlIGVudHJ5IGRwcm9kIGNwdV90aW1lIGNvbW1hbmRfYXJndW1lbnRfY291bnQgZ2V0X2NvbW1hbmQgZ2V0X2NvbW1hbmRfYXJndW1lbnQgZ2V0X2Vudmlyb25tZW50X3ZhcmlhYmxlIGlzX2lvc3RhdF9lbmQgaWVlZV9hcml0aG1ldGljIGllZWVfc3VwcG9ydF91bmRlcmZsb3dfY29udHJvbCBpZWVlX2dldF91bmRlcmZsb3dfbW9kZSBpZWVlX3NldF91bmRlcmZsb3dfbW9kZSBpc19pb3N0YXRfZW9yIG1vdmVfYWxsb2MgbmV3X2xpbmUgc2VsZWN0ZWRfY2hhcl9raW5kIHNhbWVfdHlwZV9hcyBleHRlbmRzX3R5cGVfb2YgYWNvc2ggYXNpbmggYXRhbmggYmVzc2VsX2owIGJlc3NlbF9qMSBiZXNzZWxfam4gYmVzc2VsX3kwIGJlc3NlbF95MSBiZXNzZWxfeW4gZXJmIGVyZmMgZXJmY19zY2FsZWQgZ2FtbWEgbG9nX2dhbW1hIGh5cG90IG5vcm0yIGF0b21pY19kZWZpbmUgYXRvbWljX3JlZiBleGVjdXRlX2NvbW1hbmRfbGluZSBsZWFkeiB0cmFpbHogc3RvcmFnZV9zaXplIG1lcmdlX2JpdHMgYmdlIGJndCBibGUgYmx0IGRzaGlmdGwgZHNoaWZ0ciBmaW5kbG9jIGlhbGwgaWFueSBpcGFyaXR5IGltYWdlX2luZGV4IGxjb2JvdW5kIHVjb2JvdW5kIG1hc2tsIG1hc2tyIG51bV9pbWFnZXMgcGFyaXR5IHBvcGNudCBwb3BwYXIgc2hpZnRhIHNoaWZ0bCBzaGlmdHIgdGhpc19pbWFnZSBJUlBfQUxJR04gaXJwX2hlcmUifSxpbGxlZ2FsOi9cL1wqLyxjb250YWluczpbbi5pbmhlcml0KG4uQVBPU19TVFJJTkdfTU9ERSx7Y2xhc3NOYW1lOiJzdHJpbmciLHJlbGV2YW5jZTowfSksbi5pbmhlcml0KG4uUVVPVEVfU1RSSU5HX01PREUse2NsYXNzTmFtZToic3RyaW5nIixyZWxldmFuY2U6MH0pLHtjbGFzc05hbWU6ImZ1bmN0aW9uIixiZWdpbktleXdvcmRzOiJzdWJyb3V0aW5lIGZ1bmN0aW9uIHByb2dyYW0iLGlsbGVnYWw6Ilskez1cXG5dIixjb250YWluczpbbi5VTkRFUlNDT1JFX1RJVExFX01PREUsYV19LG4uQ09NTUVOVCgiISIsIiQiLHtyZWxldmFuY2U6MH0pLG4uQ09NTUVOVCgiYmVnaW5fZG9jIiwiZW5kX2RvYyIse3JlbGV2YW5jZToxMH0pLGxdfX1zLmV4cG9ydHM9dH0sODI1OmZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHIoZSl7Y29uc3QgdD0iW0EtWmEtelx1MDQxMC1cdTA0MkZcdTA0MzAtXHUwNDRGXHUwNDUxXHUwNDAxXyFdW0EtWmEtelx1MDQxMC1cdTA0MkZcdTA0MzAtXHUwNDRGXHUwNDUxXHUwNDAxXzAtOV0qIixuPSJbQS1aYS16XHUwNDEwLVx1MDQyRlx1MDQzMC1cdTA0NEZcdTA0NTFcdTA0MDFfXVtBLVphLXpcdTA0MTAtXHUwNDJGXHUwNDMwLVx1MDQ0Rlx1MDQ1MVx1MDQwMV8wLTldKiIsYT0iYW5kIFx1MDQzOCBlbHNlIFx1MDQzOFx1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzNSBlbmRleGNlcHQgZW5kZmluYWxseSBlbmRmb3JlYWNoIFx1MDQzQVx1MDQzRVx1MDQzRFx1MDQzNVx1MDQ0Nlx1MDQzMlx1MDQ0MVx1MDQzNSBlbmRpZiBcdTA0M0FcdTA0M0VcdTA0M0RcdTA0MzVcdTA0NDZcdTA0MzVcdTA0NDFcdTA0M0JcdTA0MzggZW5kd2hpbGUgXHUwNDNBXHUwNDNFXHUwNDNEXHUwNDM1XHUwNDQ2XHUwNDNGXHUwNDNFXHUwNDNBXHUwNDMwIGV4Y2VwdCBleGl0Zm9yIGZpbmFsbHkgZm9yZWFjaCBcdTA0MzJcdTA0NDFcdTA0MzUgaWYgXHUwNDM1XHUwNDQxXHUwNDNCXHUwNDM4IGluIFx1MDQzMiBub3QgXHUwNDNEXHUwNDM1IG9yIFx1MDQzOFx1MDQzQlx1MDQzOCB0cnkgd2hpbGUgXHUwNDNGXHUwNDNFXHUwNDNBXHUwNDMwICIsUmU9IlNZU1JFU19DT05TVF9BQ0NFU19SSUdIVF9UWVBFX0VESVQgU1lTUkVTX0NPTlNUX0FDQ0VTX1JJR0hUX1RZUEVfRlVMTCBTWVNSRVNfQ09OU1RfQUNDRVNfUklHSFRfVFlQRV9WSUVXIFNZU1JFU19DT05TVF9BQ0NFU1NfTU9ERV9SRVFVSVNJVEVfQ09ERSBTWVNSRVNfQ09OU1RfQUNDRVNTX05PX0FDQ0VTU19WSUVXIFNZU1JFU19DT05TVF9BQ0NFU1NfTk9fQUNDRVNTX1ZJRVdfQ09ERSBTWVNSRVNfQ09OU1RfQUNDRVNTX1JJR0hUU19BRERfUkVRVUlTSVRFX0NPREUgU1lTUkVTX0NPTlNUX0FDQ0VTU19SSUdIVFNfQUREX1JFUVVJU0lURV9ZRVNfQ09ERSBTWVNSRVNfQ09OU1RfQUNDRVNTX1JJR0hUU19DSEFOR0VfUkVRVUlTSVRFX0NPREUgU1lTUkVTX0NPTlNUX0FDQ0VTU19SSUdIVFNfQ0hBTkdFX1JFUVVJU0lURV9ZRVNfQ09ERSBTWVNSRVNfQ09OU1RfQUNDRVNTX1JJR0hUU19ERUxFVEVfUkVRVUlTSVRFX0NPREUgU1lTUkVTX0NPTlNUX0FDQ0VTU19SSUdIVFNfREVMRVRFX1JFUVVJU0lURV9ZRVNfQ09ERSBTWVNSRVNfQ09OU1RfQUNDRVNTX1JJR0hUU19FWEVDVVRFX1JFUVVJU0lURV9DT0RFIFNZU1JFU19DT05TVF9BQ0NFU1NfUklHSFRTX0VYRUNVVEVfUkVRVUlTSVRFX1lFU19DT0RFIFNZU1JFU19DT05TVF9BQ0NFU1NfUklHSFRTX05PX0FDQ0VTU19SRVFVSVNJVEVfQ09ERSBTWVNSRVNfQ09OU1RfQUNDRVNTX1JJR0hUU19OT19BQ0NFU1NfUkVRVUlTSVRFX1lFU19DT0RFIFNZU1JFU19DT05TVF9BQ0NFU1NfUklHSFRTX1JBVElGWV9SRVFVSVNJVEVfQ09ERSBTWVNSRVNfQ09OU1RfQUNDRVNTX1JJR0hUU19SQVRJRllfUkVRVUlTSVRFX1lFU19DT0RFIFNZU1JFU19DT05TVF9BQ0NFU1NfUklHSFRTX1JFUVVJU0lURV9DT0RFIFNZU1JFU19DT05TVF9BQ0NFU1NfUklHSFRTX1ZJRVcgU1lTUkVTX0NPTlNUX0FDQ0VTU19SSUdIVFNfVklFV19DT0RFIFNZU1JFU19DT05TVF9BQ0NFU1NfUklHSFRTX1ZJRVdfUkVRVUlTSVRFX0NPREUgU1lTUkVTX0NPTlNUX0FDQ0VTU19SSUdIVFNfVklFV19SRVFVSVNJVEVfWUVTX0NPREUgU1lTUkVTX0NPTlNUX0FDQ0VTU19UWVBFX0NIQU5HRSBTWVNSRVNfQ09OU1RfQUNDRVNTX1RZUEVfQ0hBTkdFX0NPREUgU1lTUkVTX0NPTlNUX0FDQ0VTU19UWVBFX0VYSVNUUyBTWVNSRVNfQ09OU1RfQUNDRVNTX1RZUEVfRVhJU1RTX0NPREUgU1lTUkVTX0NPTlNUX0FDQ0VTU19UWVBFX0ZVTEwgU1lTUkVTX0NPTlNUX0FDQ0VTU19UWVBFX0ZVTExfQ09ERSBTWVNSRVNfQ09OU1RfQUNDRVNTX1RZUEVfVklFVyBTWVNSRVNfQ09OU1RfQUNDRVNTX1RZUEVfVklFV19DT0RFIFNZU1JFU19DT05TVF9BQ1RJT05fVFlQRV9BQk9SVCBTWVNSRVNfQ09OU1RfQUNUSU9OX1RZUEVfQUNDRVBUIFNZU1JFU19DT05TVF9BQ1RJT05fVFlQRV9BQ0NFU1NfUklHSFRTIFNZU1JFU19DT05TVF9BQ1RJT05fVFlQRV9BRERfQVRUQUNITUVOVCBTWVNSRVNfQ09OU1RfQUNUSU9OX1RZUEVfQ0hBTkdFX0NBUkQgU1lTUkVTX0NPTlNUX0FDVElPTl9UWVBFX0NIQU5HRV9LSU5EIFNZU1JFU19DT05TVF9BQ1RJT05fVFlQRV9DSEFOR0VfU1RPUkFHRSBTWVNSRVNfQ09OU1RfQUNUSU9OX1RZUEVfQ09OVElOVUUgU1lTUkVTX0NPTlNUX0FDVElPTl9UWVBFX0NPUFkgU1lTUkVTX0NPTlNUX0FDVElPTl9UWVBFX0NSRUFURSBTWVNSRVNfQ09OU1RfQUNUSU9OX1RZUEVfQ1JFQVRFX1ZFUlNJT04gU1lTUkVTX0NPTlNUX0FDVElPTl9UWVBFX0RFTEVURSBTWVNSRVNfQ09OU1RfQUNUSU9OX1RZUEVfREVMRVRFX0FUVEFDSE1FTlQgU1lTUkVTX0NPTlNUX0FDVElPTl9UWVBFX0RFTEVURV9WRVJTSU9OIFNZU1JFU19DT05TVF9BQ1RJT05fVFlQRV9ESVNBQkxFX0RFTEVHQVRFX0FDQ0VTU19SSUdIVFMgU1lTUkVTX0NPTlNUX0FDVElPTl9UWVBFX0VOQUJMRV9ERUxFR0FURV9BQ0NFU1NfUklHSFRTIFNZU1JFU19DT05TVF9BQ1RJT05fVFlQRV9FTkNSWVBUSU9OX0JZX0NFUlRJRklDQVRFIFNZU1JFU19DT05TVF9BQ1RJT05fVFlQRV9FTkNSWVBUSU9OX0JZX0NFUlRJRklDQVRFX0FORF9QQVNTV09SRCBTWVNSRVNfQ09OU1RfQUNUSU9OX1RZUEVfRU5DUllQVElPTl9CWV9QQVNTV09SRCBTWVNSRVNfQ09OU1RfQUNUSU9OX1RZUEVfRVhQT1JUX1dJVEhfTE9DSyBTWVNSRVNfQ09OU1RfQUNUSU9OX1RZUEVfRVhQT1JUX1dJVEhPVVRfTE9DSyBTWVNSRVNfQ09OU1RfQUNUSU9OX1RZUEVfSU1QT1JUX1dJVEhfVU5MT0NLIFNZU1JFU19DT05TVF9BQ1RJT05fVFlQRV9JTVBPUlRfV0lUSE9VVF9VTkxPQ0sgU1lTUkVTX0NPTlNUX0FDVElPTl9UWVBFX0xJRkVfQ1lDTEVfU1RBR0UgU1lTUkVTX0NPTlNUX0FDVElPTl9UWVBFX0xPQ0sgU1lTUkVTX0NPTlNUX0FDVElPTl9UWVBFX0xPQ0tfRk9SX1NFUlZFUiBTWVNSRVNfQ09OU1RfQUNUSU9OX1RZUEVfTE9DS19NT0RJRlkgU1lTUkVTX0NPTlNUX0FDVElPTl9UWVBFX01BUktfQVNfUkVBREVEIFNZU1JFU19DT05TVF9BQ1RJT05fVFlQRV9NQVJLX0FTX1VOUkVBREVEIFNZU1JFU19DT05TVF9BQ1RJT05fVFlQRV9NT0RJRlkgU1lTUkVTX0NPTlNUX0FDVElPTl9UWVBFX01PRElGWV9DQVJEIFNZU1JFU19DT05TVF9BQ1RJT05fVFlQRV9NT1ZFX1RPX0FSQ0hJVkUgU1lTUkVTX0NPTlNUX0FDVElPTl9UWVBFX09GRl9FTkNSWVBUSU9OIFNZU1JFU19DT05TVF9BQ1RJT05fVFlQRV9QQVNTV09SRF9DSEFOR0UgU1lTUkVTX0NPTlNUX0FDVElPTl9UWVBFX1BFUkZPUk0gU1lTUkVTX0NPTlNUX0FDVElPTl9UWVBFX1JFQ09WRVJfRlJPTV9MT0NBTF9DT1BZIFNZU1JFU19DT05TVF9BQ1RJT05fVFlQRV9SRVNUQVJUIFNZU1JFU19DT05TVF9BQ1RJT05fVFlQRV9SRVNUT1JFX0ZST01fQVJDSElWRSBTWVNSRVNfQ09OU1RfQUNUSU9OX1RZUEVfUkVWSVNJT04gU1lTUkVTX0NPTlNUX0FDVElPTl9UWVBFX1NFTkRfQllfTUFJTCBTWVNSRVNfQ09OU1RfQUNUSU9OX1RZUEVfU0lHTiBTWVNSRVNfQ09OU1RfQUNUSU9OX1RZUEVfU1RBUlQgU1lTUkVTX0NPTlNUX0FDVElPTl9UWVBFX1VOTE9DSyBTWVNSRVNfQ09OU1RfQUNUSU9OX1RZUEVfVU5MT0NLX0ZST01fU0VSVkVSIFNZU1JFU19DT05TVF9BQ1RJT05fVFlQRV9WRVJTSU9OX1NUQVRFIFNZU1JFU19DT05TVF9BQ1RJT05fVFlQRV9WRVJTSU9OX1ZJU0lCSUxJVFkgU1lTUkVTX0NPTlNUX0FDVElPTl9UWVBFX1ZJRVcgU1lTUkVTX0NPTlNUX0FDVElPTl9UWVBFX1ZJRVdfU0hBRE9XX0NPUFkgU1lTUkVTX0NPTlNUX0FDVElPTl9UWVBFX1dPUktGTE9XX0RFU0NSSVBUSU9OX01PRElGWSBTWVNSRVNfQ09OU1RfQUNUSU9OX1RZUEVfV1JJVEVfSElTVE9SWSBTWVNSRVNfQ09OU1RfQUNUSVZFX1ZFUlNJT05fU1RBVEVfUElDS19WQUxVRSBTWVNSRVNfQ09OU1RfQUREX1JFRkVSRU5DRV9NT0RFX05BTUUgU1lTUkVTX0NPTlNUX0FERElUSU9OX1JFUVVJU0lURV9DT0RFIFNZU1JFU19DT05TVF9BRERJVElPTkFMX1BBUkFNU19SRVFVSVNJVEVfQ09ERSBTWVNSRVNfQ09OU1RfQURJVElPTkFMX0pPQl9FTkRfREFURV9SRVFVSVNJVEVfTkFNRSBTWVNSRVNfQ09OU1RfQURJVElPTkFMX0pPQl9SRUFEX1JFUVVJU0lURV9OQU1FIFNZU1JFU19DT05TVF9BRElUSU9OQUxfSk9CX1NUQVJUX0RBVEVfUkVRVUlTSVRFX05BTUUgU1lTUkVTX0NPTlNUX0FESVRJT05BTF9KT0JfU1RBVEVfUkVRVUlTSVRFX05BTUUgU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfQURESU5HX1VTRVJfVE9fR1JPVVBfQUNUSU9OIFNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX0FERElOR19VU0VSX1RPX0dST1VQX0FDVElPTl9DT0RFIFNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX0NSRUFUSU9OX0NPTVBfQUNUSU9OIFNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX0NSRUFUSU9OX0NPTVBfQUNUSU9OX0NPREUgU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfQ1JFQVRJT05fR1JPVVBfQUNUSU9OIFNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX0NSRUFUSU9OX0dST1VQX0FDVElPTl9DT0RFIFNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX0NSRUFUSU9OX1VTRVJfQUNUSU9OIFNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX0NSRUFUSU9OX1VTRVJfQUNUSU9OX0NPREUgU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfREFUQUJBU0VfVVNFUl9DUkVBVElPTiBTWVNSRVNfQ09OU1RfQURNSU5JU1RSQVRJT05fSElTVE9SWV9EQVRBQkFTRV9VU0VSX0NSRUFUSU9OX0FDVElPTiBTWVNSRVNfQ09OU1RfQURNSU5JU1RSQVRJT05fSElTVE9SWV9EQVRBQkFTRV9VU0VSX0RFTEVUSU9OIFNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX0RBVEFCQVNFX1VTRVJfREVMRVRJT05fQUNUSU9OIFNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX0RFTEVUSU9OX0NPTVBfQUNUSU9OIFNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX0RFTEVUSU9OX0NPTVBfQUNUSU9OX0NPREUgU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfREVMRVRJT05fR1JPVVBfQUNUSU9OIFNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX0RFTEVUSU9OX0dST1VQX0FDVElPTl9DT0RFIFNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX0RFTEVUSU9OX1VTRVJfQUNUSU9OIFNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX0RFTEVUSU9OX1VTRVJfQUNUSU9OX0NPREUgU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfREVMRVRJT05fVVNFUl9GUk9NX0dST1VQX0FDVElPTiBTWVNSRVNfQ09OU1RfQURNSU5JU1RSQVRJT05fSElTVE9SWV9ERUxFVElPTl9VU0VSX0ZST01fR1JPVVBfQUNUSU9OX0NPREUgU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfR1JBTlRJTkdfRklMVEVSRVJfQUNUSU9OIFNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX0dSQU5USU5HX0ZJTFRFUkVSX0FDVElPTl9DT0RFIFNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX0dSQU5USU5HX0ZJTFRFUkVSX1JFU1RSSUNUSU9OX0FDVElPTiBTWVNSRVNfQ09OU1RfQURNSU5JU1RSQVRJT05fSElTVE9SWV9HUkFOVElOR19GSUxURVJFUl9SRVNUUklDVElPTl9BQ1RJT05fQ09ERSBTWVNSRVNfQ09OU1RfQURNSU5JU1RSQVRJT05fSElTVE9SWV9HUkFOVElOR19QUklWSUxFR0VfQUNUSU9OIFNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX0dSQU5USU5HX1BSSVZJTEVHRV9BQ1RJT05fQ09ERSBTWVNSRVNfQ09OU1RfQURNSU5JU1RSQVRJT05fSElTVE9SWV9HUkFOVElOR19SSUdIVFNfQUNUSU9OIFNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX0dSQU5USU5HX1JJR0hUU19BQ1RJT05fQ09ERSBTWVNSRVNfQ09OU1RfQURNSU5JU1RSQVRJT05fSElTVE9SWV9JU19NQUlOX1NFUlZFUl9DSEFOR0VEX0FDVElPTiBTWVNSRVNfQ09OU1RfQURNSU5JU1RSQVRJT05fSElTVE9SWV9JU19NQUlOX1NFUlZFUl9DSEFOR0VEX0FDVElPTl9DT0RFIFNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX0lTX1BVQkxJQ19DSEFOR0VEX0FDVElPTiBTWVNSRVNfQ09OU1RfQURNSU5JU1RSQVRJT05fSElTVE9SWV9JU19QVUJMSUNfQ0hBTkdFRF9BQ1RJT05fQ09ERSBTWVNSRVNfQ09OU1RfQURNSU5JU1RSQVRJT05fSElTVE9SWV9SRU1PVklOR19GSUxURVJFUl9BQ1RJT04gU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfUkVNT1ZJTkdfRklMVEVSRVJfQUNUSU9OX0NPREUgU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfUkVNT1ZJTkdfRklMVEVSRVJfUkVTVFJJQ1RJT05fQUNUSU9OIFNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX1JFTU9WSU5HX0ZJTFRFUkVSX1JFU1RSSUNUSU9OX0FDVElPTl9DT0RFIFNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX1JFTU9WSU5HX1BSSVZJTEVHRV9BQ1RJT04gU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfUkVNT1ZJTkdfUFJJVklMRUdFX0FDVElPTl9DT0RFIFNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX1JFTU9WSU5HX1JJR0hUU19BQ1RJT04gU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfUkVNT1ZJTkdfUklHSFRTX0FDVElPTl9DT0RFIFNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX1NFUlZFUl9MT0dJTl9DUkVBVElPTiBTWVNSRVNfQ09OU1RfQURNSU5JU1RSQVRJT05fSElTVE9SWV9TRVJWRVJfTE9HSU5fQ1JFQVRJT05fQUNUSU9OIFNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX1NFUlZFUl9MT0dJTl9ERUxFVElPTiBTWVNSRVNfQ09OU1RfQURNSU5JU1RSQVRJT05fSElTVE9SWV9TRVJWRVJfTE9HSU5fREVMRVRJT05fQUNUSU9OIFNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX1VQREFUSU5HX0NBVEVHT1JZX0FDVElPTiBTWVNSRVNfQ09OU1RfQURNSU5JU1RSQVRJT05fSElTVE9SWV9VUERBVElOR19DQVRFR09SWV9BQ1RJT05fQ09ERSBTWVNSRVNfQ09OU1RfQURNSU5JU1RSQVRJT05fSElTVE9SWV9VUERBVElOR19DT01QX1RJVExFX0FDVElPTiBTWVNSRVNfQ09OU1RfQURNSU5JU1RSQVRJT05fSElTVE9SWV9VUERBVElOR19DT01QX1RJVExFX0FDVElPTl9DT0RFIFNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX1VQREFUSU5HX0ZVTExfTkFNRV9BQ1RJT04gU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfVVBEQVRJTkdfRlVMTF9OQU1FX0FDVElPTl9DT0RFIFNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX1VQREFUSU5HX0dST1VQX0FDVElPTiBTWVNSRVNfQ09OU1RfQURNSU5JU1RSQVRJT05fSElTVE9SWV9VUERBVElOR19HUk9VUF9BQ1RJT05fQ09ERSBTWVNSRVNfQ09OU1RfQURNSU5JU1RSQVRJT05fSElTVE9SWV9VUERBVElOR19QQVJFTlRfR1JPVVBfQUNUSU9OIFNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX1VQREFUSU5HX1BBUkVOVF9HUk9VUF9BQ1RJT05fQ09ERSBTWVNSRVNfQ09OU1RfQURNSU5JU1RSQVRJT05fSElTVE9SWV9VUERBVElOR19VU0VSX0FVVEhfVFlQRV9BQ1RJT04gU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfVVBEQVRJTkdfVVNFUl9BVVRIX1RZUEVfQUNUSU9OX0NPREUgU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfVVBEQVRJTkdfVVNFUl9MT0dJTl9BQ1RJT04gU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfVVBEQVRJTkdfVVNFUl9MT0dJTl9BQ1RJT05fQ09ERSBTWVNSRVNfQ09OU1RfQURNSU5JU1RSQVRJT05fSElTVE9SWV9VUERBVElOR19VU0VSX1NUQVRVU19BQ1RJT04gU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfVVBEQVRJTkdfVVNFUl9TVEFUVVNfQUNUSU9OX0NPREUgU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfVVNFUl9QQVNTV09SRF9DSEFOR0UgU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfVVNFUl9QQVNTV09SRF9DSEFOR0VfQUNUSU9OIFNZU1JFU19DT05TVF9BTExfQUNDRVBUX0NPTkRJVElPTl9SVVMgU1lTUkVTX0NPTlNUX0FMTF9VU0VSU19HUk9VUCBTWVNSRVNfQ09OU1RfQUxMX1VTRVJTX0dST1VQX05BTUUgU1lTUkVTX0NPTlNUX0FMTF9VU0VSU19TRVJWRVJfR1JPVVBfTkFNRSBTWVNSRVNfQ09OU1RfQUxMT1dFRF9BQ0NFU1NfVFlQRV9DT0RFIFNZU1JFU19DT05TVF9BTExPV0VEX0FDQ0VTU19UWVBFX05BTUUgU1lTUkVTX0NPTlNUX0FQUF9WSUVXRVJfVFlQRV9SRVFVSVNJVEVfQ09ERSBTWVNSRVNfQ09OU1RfQVBQUk9WSU5HX1NJR05BVFVSRV9OQU1FIFNZU1JFU19DT05TVF9BUFBST1ZJTkdfU0lHTkFUVVJFX1JFUVVJU0lURV9DT0RFIFNZU1JFU19DT05TVF9BU1NJU1RBTlRfU1VCU1RJVFVFX1RZUEUgU1lTUkVTX0NPTlNUX0FTU0lTVEFOVF9TVUJTVElUVUVfVFlQRV9DT0RFIFNZU1JFU19DT05TVF9BVFRBQ0hfVFlQRV9DT01QT05FTlRfVE9LRU4gU1lTUkVTX0NPTlNUX0FUVEFDSF9UWVBFX0RPQyBTWVNSRVNfQ09OU1RfQVRUQUNIX1RZUEVfRURPQyBTWVNSRVNfQ09OU1RfQVRUQUNIX1RZUEVfRk9MREVSIFNZU1JFU19DT05TVF9BVFRBQ0hfVFlQRV9KT0IgU1lTUkVTX0NPTlNUX0FUVEFDSF9UWVBFX1JFRkVSRU5DRSBTWVNSRVNfQ09OU1RfQVRUQUNIX1RZUEVfVEFTSyBTWVNSRVNfQ09OU1RfQVVUSF9FTkNPREVEX1BBU1NXT1JEIFNZU1JFU19DT05TVF9BVVRIX0VOQ09ERURfUEFTU1dPUkRfQ09ERSBTWVNSRVNfQ09OU1RfQVVUSF9OT1ZFTEwgU1lTUkVTX0NPTlNUX0FVVEhfUEFTU1dPUkQgU1lTUkVTX0NPTlNUX0FVVEhfUEFTU1dPUkRfQ09ERSBTWVNSRVNfQ09OU1RfQVVUSF9XSU5ET1dTIFNZU1JFU19DT05TVF9BVVRIRU5USUNBVElOR19TSUdOQVRVUkVfTkFNRSBTWVNSRVNfQ09OU1RfQVVUSEVOVElDQVRJTkdfU0lHTkFUVVJFX1JFUVVJU0lURV9DT0RFIFNZU1JFU19DT05TVF9BVVRPX0VOVU1fTUVUSE9EX0ZMQUcgU1lTUkVTX0NPTlNUX0FVVE9fTlVNRVJBVElPTl9DT0RFIFNZU1JFU19DT05TVF9BVVRPX1NUUk9OR19FTlVNX01FVEhPRF9GTEFHIFNZU1JFU19DT05TVF9BVVRPVEVYVF9OQU1FX1JFUVVJU0lURV9DT0RFIFNZU1JFU19DT05TVF9BVVRPVEVYVF9URVhUX1JFUVVJU0lURV9DT0RFIFNZU1JFU19DT05TVF9BVVRPVEVYVF9VU0FHRV9BTEwgU1lTUkVTX0NPTlNUX0FVVE9URVhUX1VTQUdFX0FMTF9DT0RFIFNZU1JFU19DT05TVF9BVVRPVEVYVF9VU0FHRV9TSUdOIFNZU1JFU19DT05TVF9BVVRPVEVYVF9VU0FHRV9TSUdOX0NPREUgU1lTUkVTX0NPTlNUX0FVVE9URVhUX1VTQUdFX1dPUksgU1lTUkVTX0NPTlNUX0FVVE9URVhUX1VTQUdFX1dPUktfQ09ERSBTWVNSRVNfQ09OU1RfQVVUT1RFWFRfVVNFX0FOWVdIRVJFX0NPREUgU1lTUkVTX0NPTlNUX0FVVE9URVhUX1VTRV9PTl9TSUdOSU5HX0NPREUgU1lTUkVTX0NPTlNUX0FVVE9URVhUX1VTRV9PTl9XT1JLX0NPREUgU1lTUkVTX0NPTlNUX0JFR0lOX0RBVEVfUkVRVUlTSVRFX0NPREUgU1lTUkVTX0NPTlNUX0JMQUNLX0xJRkVfQ1lDTEVfU1RBR0VfRk9OVF9DT0xPUiBTWVNSRVNfQ09OU1RfQkxVRV9MSUZFX0NZQ0xFX1NUQUdFX0ZPTlRfQ09MT1IgU1lTUkVTX0NPTlNUX0JUTl9QQVJUIFNZU1JFU19DT05TVF9DQUxDVUxBVEVEX1JPTEVfVFlQRV9DT0RFIFNZU1JFU19DT05TVF9DQUxMX1RZUEVfVkFSSUFCTEVfQlVUVE9OX1ZBTFVFIFNZU1JFU19DT05TVF9DQUxMX1RZUEVfVkFSSUFCTEVfUFJPR1JBTV9WQUxVRSBTWVNSRVNfQ09OU1RfQ0FOQ0VMX01FU1NBR0VfRlVOQ1RJT05fUkVTVUxUIFNZU1JFU19DT05TVF9DQVJEX1BBUlQgU1lTUkVTX0NPTlNUX0NBUkRfUkVGRVJFTkNFX01PREVfTkFNRSBTWVNSRVNfQ09OU1RfQ0VSVElGSUNBVEVfVFlQRV9SRVFVSVNJVEVfRU5DUllQVF9WQUxVRSBTWVNSRVNfQ09OU1RfQ0VSVElGSUNBVEVfVFlQRV9SRVFVSVNJVEVfU0lHTl9BTkRfRU5DUllQVF9WQUxVRSBTWVNSRVNfQ09OU1RfQ0VSVElGSUNBVEVfVFlQRV9SRVFVSVNJVEVfU0lHTl9WQUxVRSBTWVNSRVNfQ09OU1RfQ0hFQ0tfUEFSQU1fVkFMVUVfREFURV9QQVJBTV9UWVBFIFNZU1JFU19DT05TVF9DSEVDS19QQVJBTV9WQUxVRV9GTE9BVF9QQVJBTV9UWVBFIFNZU1JFU19DT05TVF9DSEVDS19QQVJBTV9WQUxVRV9JTlRFR0VSX1BBUkFNX1RZUEUgU1lTUkVTX0NPTlNUX0NIRUNLX1BBUkFNX1ZBTFVFX1BJQ0tfUEFSQU1fVFlQRSBTWVNSRVNfQ09OU1RfQ0hFQ0tfUEFSQU1fVkFMVUVfUkVFRlJFTkNFX1BBUkFNX1RZUEUgU1lTUkVTX0NPTlNUX0NMT1NFRF9SRUNPUkRfRkxBR19WQUxVRV9GRU1JTklORSBTWVNSRVNfQ09OU1RfQ0xPU0VEX1JFQ09SRF9GTEFHX1ZBTFVFX01BU0NVTElORSBTWVNSRVNfQ09OU1RfQ09ERV9DT01QT05FTlRfVFlQRV9BRE1JTiBTWVNSRVNfQ09OU1RfQ09ERV9DT01QT05FTlRfVFlQRV9ERVZFTE9QRVIgU1lTUkVTX0NPTlNUX0NPREVfQ09NUE9ORU5UX1RZUEVfRE9DUyBTWVNSRVNfQ09OU1RfQ09ERV9DT01QT05FTlRfVFlQRV9FRE9DX0NBUkRTIFNZU1JFU19DT05TVF9DT0RFX0NPTVBPTkVOVF9UWVBFX0VYVEVSTkFMX0VYRUNVVEFCTEUgU1lTUkVTX0NPTlNUX0NPREVfQ09NUE9ORU5UX1RZUEVfT1RIRVIgU1lTUkVTX0NPTlNUX0NPREVfQ09NUE9ORU5UX1RZUEVfUkVGRVJFTkNFIFNZU1JFU19DT05TVF9DT0RFX0NPTVBPTkVOVF9UWVBFX1JFUE9SVCBTWVNSRVNfQ09OU1RfQ09ERV9DT01QT05FTlRfVFlQRV9TQ1JJUFQgU1lTUkVTX0NPTlNUX0NPREVfQ09NUE9ORU5UX1RZUEVfVVJMIFNZU1JFU19DT05TVF9DT0RFX1JFUVVJU0lURV9BQ0NFU1MgU1lTUkVTX0NPTlNUX0NPREVfUkVRVUlTSVRFX0NPREUgU1lTUkVTX0NPTlNUX0NPREVfUkVRVUlTSVRFX0NPTVBPTkVOVCBTWVNSRVNfQ09OU1RfQ09ERV9SRVFVSVNJVEVfREVTQ1JJUFRJT04gU1lTUkVTX0NPTlNUX0NPREVfUkVRVUlTSVRFX0VYQ0xVREVfQ09NUE9ORU5UIFNZU1JFU19DT05TVF9DT0RFX1JFUVVJU0lURV9SRUNPUkQgU1lTUkVTX0NPTlNUX0NPTU1FTlRfUkVRX0NPREUgU1lTUkVTX0NPTlNUX0NPTU1PTl9TRVRUSU5HU19SRVFVSVNJVEVfQ09ERSBTWVNSRVNfQ09OU1RfQ09NUF9DT0RFX0dSRCBTWVNSRVNfQ09OU1RfQ09NUE9ORU5UX0dST1VQX1RZUEVfUkVRVUlTSVRFX0NPREUgU1lTUkVTX0NPTlNUX0NPTVBPTkVOVF9UWVBFX0FETUlOX0NPTVBPTkVOVFMgU1lTUkVTX0NPTlNUX0NPTVBPTkVOVF9UWVBFX0RFVkVMT1BFUl9DT01QT05FTlRTIFNZU1JFU19DT05TVF9DT01QT05FTlRfVFlQRV9ET0NTIFNZU1JFU19DT05TVF9DT01QT05FTlRfVFlQRV9FRE9DX0NBUkRTIFNZU1JFU19DT05TVF9DT01QT05FTlRfVFlQRV9FRE9DUyBTWVNSRVNfQ09OU1RfQ09NUE9ORU5UX1RZUEVfRVhURVJOQUxfRVhFQ1VUQUJMRSBTWVNSRVNfQ09OU1RfQ09NUE9ORU5UX1RZUEVfT1RIRVIgU1lTUkVTX0NPTlNUX0NPTVBPTkVOVF9UWVBFX1JFRkVSRU5DRV9UWVBFUyBTWVNSRVNfQ09OU1RfQ09NUE9ORU5UX1RZUEVfUkVGRVJFTkNFUyBTWVNSRVNfQ09OU1RfQ09NUE9ORU5UX1RZUEVfUkVQT1JUUyBTWVNSRVNfQ09OU1RfQ09NUE9ORU5UX1RZUEVfU0NSSVBUUyBTWVNSRVNfQ09OU1RfQ09NUE9ORU5UX1RZUEVfVVJMIFNZU1JFU19DT05TVF9DT01QT05FTlRTX1JFTU9URV9TRVJWRVJTX1ZJRVdfQ09ERSBTWVNSRVNfQ09OU1RfQ09ORElUSU9OX0JMT0NLX0RFU0NSSVBUSU9OIFNZU1JFU19DT05TVF9DT05TVF9GSVJNX1NUQVRVU19DT01NT04gU1lTUkVTX0NPTlNUX0NPTlNUX0ZJUk1fU1RBVFVTX0lORElWSURVQUwgU1lTUkVTX0NPTlNUX0NPTlNUX05FR0FUSVZFX1ZBTFVFIFNZU1JFU19DT05TVF9DT05TVF9QT1NJVElWRV9WQUxVRSBTWVNSRVNfQ09OU1RfQ09OU1RfU0VSVkVSX1NUQVRVU19ET05UX1JFUExJQ0FURSBTWVNSRVNfQ09OU1RfQ09OU1RfU0VSVkVSX1NUQVRVU19SRVBMSUNBVEUgU1lTUkVTX0NPTlNUX0NPTlRFTlRTX1JFUVVJU0lURV9DT0RFIFNZU1JFU19DT05TVF9EQVRBX1RZUEVfQk9PTEVBTiBTWVNSRVNfQ09OU1RfREFUQV9UWVBFX0RBVEUgU1lTUkVTX0NPTlNUX0RBVEFfVFlQRV9GTE9BVCBTWVNSRVNfQ09OU1RfREFUQV9UWVBFX0lOVEVHRVIgU1lTUkVTX0NPTlNUX0RBVEFfVFlQRV9QSUNLIFNZU1JFU19DT05TVF9EQVRBX1RZUEVfUkVGRVJFTkNFIFNZU1JFU19DT05TVF9EQVRBX1RZUEVfU1RSSU5HIFNZU1JFU19DT05TVF9EQVRBX1RZUEVfVEVYVCBTWVNSRVNfQ09OU1RfREFUQV9UWVBFX1ZBUklBTlQgU1lTUkVTX0NPTlNUX0RBVEVfQ0xPU0VfUkVRX0NPREUgU1lTUkVTX0NPTlNUX0RBVEVfRk9STUFUX0RBVEVfT05MWV9DSEFSIFNZU1JFU19DT05TVF9EQVRFX09QRU5fUkVRX0NPREUgU1lTUkVTX0NPTlNUX0RBVEVfUkVRVUlTSVRFIFNZU1JFU19DT05TVF9EQVRFX1JFUVVJU0lURV9DT0RFIFNZU1JFU19DT05TVF9EQVRFX1JFUVVJU0lURV9OQU1FIFNZU1JFU19DT05TVF9EQVRFX1JFUVVJU0lURV9UWVBFIFNZU1JFU19DT05TVF9EQVRFX1RZUEVfQ0hBUiBTWVNSRVNfQ09OU1RfREFURVRJTUVfRk9STUFUX1ZBTFVFIFNZU1JFU19DT05TVF9ERUFfQUNDRVNTX1JJR0hUU19BQ1RJT05fQ09ERSBTWVNSRVNfQ09OU1RfREVTQ1JJUFRJT05fTE9DQUxJWkVfSURfUkVRVUlTSVRFX0NPREUgU1lTUkVTX0NPTlNUX0RFU0NSSVBUSU9OX1JFUVVJU0lURV9DT0RFIFNZU1JFU19DT05TVF9ERVQxX1BBUlQgU1lTUkVTX0NPTlNUX0RFVDJfUEFSVCBTWVNSRVNfQ09OU1RfREVUM19QQVJUIFNZU1JFU19DT05TVF9ERVQ0X1BBUlQgU1lTUkVTX0NPTlNUX0RFVDVfUEFSVCBTWVNSRVNfQ09OU1RfREVUNl9QQVJUIFNZU1JFU19DT05TVF9ERVRBSUxfREFUQVNFVF9LRVlfUkVRVUlTSVRFX0NPREUgU1lTUkVTX0NPTlNUX0RFVEFJTF9QSUNLX1JFUVVJU0lURV9DT0RFIFNZU1JFU19DT05TVF9ERVRBSUxfUkVRX0NPREUgU1lTUkVTX0NPTlNUX0RPX05PVF9VU0VfQUNDRVNTX1RZUEVfQ09ERSBTWVNSRVNfQ09OU1RfRE9fTk9UX1VTRV9BQ0NFU1NfVFlQRV9OQU1FIFNZU1JFU19DT05TVF9ET19OT1RfVVNFX09OX1ZJRVdfQUNDRVNTX1RZUEVfQ09ERSBTWVNSRVNfQ09OU1RfRE9fTk9UX1VTRV9PTl9WSUVXX0FDQ0VTU19UWVBFX05BTUUgU1lTUkVTX0NPTlNUX0RPQ1VNRU5UX1NUT1JBR0VTX0NPREUgU1lTUkVTX0NPTlNUX0RPQ1VNRU5UX1RFTVBMQVRFU19UWVBFX05BTUUgU1lTUkVTX0NPTlNUX0RPVUJMRV9SRVFVSVNJVEVfQ09ERSBTWVNSRVNfQ09OU1RfRURJVE9SX0NMT1NFX0ZJTEVfT0JTRVJWX1RZUEVfQ09ERSBTWVNSRVNfQ09OU1RfRURJVE9SX0NMT1NFX1BST0NFU1NfT0JTRVJWX1RZUEVfQ09ERSBTWVNSRVNfQ09OU1RfRURJVE9SX1RZUEVfUkVRVUlTSVRFX0NPREUgU1lTUkVTX0NPTlNUX0VESVRPUlNfQVBQTElDQVRJT05fTkFNRV9SRVFVSVNJVEVfQ09ERSBTWVNSRVNfQ09OU1RfRURJVE9SU19DUkVBVEVfU0VWRVJBTF9QUk9DRVNTRVNfUkVRVUlTSVRFX0NPREUgU1lTUkVTX0NPTlNUX0VESVRPUlNfRVhURU5TSU9OX1JFUVVJU0lURV9DT0RFIFNZU1JFU19DT05TVF9FRElUT1JTX09CU0VSVkVSX0JZX1BST0NFU1NfVFlQRSBTWVNSRVNfQ09OU1RfRURJVE9SU19SRUZFUkVOQ0VfQ09ERSBTWVNSRVNfQ09OU1RfRURJVE9SU19SRVBMQUNFX1NQRUNfQ0hBUlNfUkVRVUlTSVRFX0NPREUgU1lTUkVTX0NPTlNUX0VESVRPUlNfVVNFX1BMVUdJTlNfUkVRVUlTSVRFX0NPREUgU1lTUkVTX0NPTlNUX0VESVRPUlNfVklFV19ET0NVTUVOVF9PUEVORURfVE9fRURJVF9DT0RFIFNZU1JFU19DT05TVF9FRE9DX0NBUkRfVFlQRV9SRVFVSVNJVEVfQ09ERSBTWVNSRVNfQ09OU1RfRURPQ19DQVJEX1RZUEVTX0xJTktfUkVRVUlTSVRFX0NPREUgU1lTUkVTX0NPTlNUX0VET0NfQ0VSVElGSUNBVEVfQU5EX1BBU1NXT1JEX0VOQ09ERV9DT0RFIFNZU1JFU19DT05TVF9FRE9DX0NFUlRJRklDQVRFX0VOQ09ERV9DT0RFIFNZU1JFU19DT05TVF9FRE9DX0RBVEVfUkVRVUlTSVRFX0NPREUgU1lTUkVTX0NPTlNUX0VET0NfS0lORF9SRUZFUkVOQ0VfQ09ERSBTWVNSRVNfQ09OU1RfRURPQ19LSU5EU19CWV9URU1QTEFURV9BQ1RJT05fQ09ERSBTWVNSRVNfQ09OU1RfRURPQ19NQU5BR0VfQUNDRVNTX0NPREUgU1lTUkVTX0NPTlNUX0VET0NfTk9ORV9FTkNPREVfQ09ERSBTWVNSRVNfQ09OU1RfRURPQ19OVU1CRVJfUkVRVUlTSVRFX0NPREUgU1lTUkVTX0NPTlNUX0VET0NfUEFTU1dPUkRfRU5DT0RFX0NPREUgU1lTUkVTX0NPTlNUX0VET0NfUkVBRE9OTFlfQUNDRVNTX0NPREUgU1lTUkVTX0NPTlNUX0VET0NfU0hFTExfTElGRV9UWVBFX1ZJRVdfVkFMVUUgU1lTUkVTX0NPTlNUX0VET0NfU0laRV9SRVNUUklDVElPTl9QUklPUklUWV9SRVFVSVNJVEVfQ09ERSBTWVNSRVNfQ09OU1RfRURPQ19TVE9SQUdFX0NIRUNLX0FDQ0VTU19SSUdIVFNfUkVRVUlTSVRFX0NPREUgU1lTUkVTX0NPTlNUX0VET0NfU1RPUkFHRV9DT01QVVRFUl9OQU1FX1JFUVVJU0lURV9DT0RFIFNZU1JFU19DT05TVF9FRE9DX1NUT1JBR0VfREFUQUJBU0VfTkFNRV9SRVFVSVNJVEVfQ09ERSBTWVNSRVNfQ09OU1RfRURPQ19TVE9SQUdFX0VESVRfSU5fU1RPUkFHRV9SRVFVSVNJVEVfQ09ERSBTWVNSRVNfQ09OU1RfRURPQ19TVE9SQUdFX0xPQ0FMX1BBVEhfUkVRVUlTSVRFX0NPREUgU1lTUkVTX0NPTlNUX0VET0NfU1RPUkFHRV9TSEFSRURfU09VUkNFX05BTUVfUkVRVUlTSVRFX0NPREUgU1lTUkVTX0NPTlNUX0VET0NfVEVNUExBVEVfUkVRVUlTSVRFX0NPREUgU1lTUkVTX0NPTlNUX0VET0NfVFlQRVNfUkVGRVJFTkNFX0NPREUgU1lTUkVTX0NPTlNUX0VET0NfVkVSU0lPTl9BQ1RJVkVfU1RBR0VfQ09ERSBTWVNSRVNfQ09OU1RfRURPQ19WRVJTSU9OX0RFU0lHTl9TVEFHRV9DT0RFIFNZU1JFU19DT05TVF9FRE9DX1ZFUlNJT05fT0JTT0xFVEVfU1RBR0VfQ09ERSBTWVNSRVNfQ09OU1RfRURPQ19XUklURV9BQ0NFU19DT0RFIFNZU1JFU19DT05TVF9FRE9DVU1FTlRfQ0FSRF9SRVFVSVNJVEVTX1JFRkVSRU5DRV9DT0RFX1NFTEVDVEVEX1JFUVVJU0lURSBTWVNSRVNfQ09OU1RfRU5DT0RFX0NFUlRJRklDQVRFX1RZUEVfQ09ERSBTWVNSRVNfQ09OU1RfRU5EX0RBVEVfUkVRVUlTSVRFX0NPREUgU1lTUkVTX0NPTlNUX0VOVU1FUkFUSU9OX1RZUEVfUkVRVUlTSVRFX0NPREUgU1lTUkVTX0NPTlNUX0VYRUNVVEVfQUNDRVNTX1JJR0hUU19UWVBFX0NPREUgU1lTUkVTX0NPTlNUX0VYRUNVVElWRV9GSUxFX1NUT1JBR0VfVFlQRSBTWVNSRVNfQ09OU1RfRVhJU1RfQ09OU1QgU1lTUkVTX0NPTlNUX0VYSVNUX1ZBTFVFIFNZU1JFU19DT05TVF9FWFBPUlRfTE9DS19UWVBFX0FTSyBTWVNSRVNfQ09OU1RfRVhQT1JUX0xPQ0tfVFlQRV9XSVRIX0xPQ0sgU1lTUkVTX0NPTlNUX0VYUE9SVF9MT0NLX1RZUEVfV0lUSE9VVF9MT0NLIFNZU1JFU19DT05TVF9FWFBPUlRfVkVSU0lPTl9UWVBFX0FTSyBTWVNSRVNfQ09OU1RfRVhQT1JUX1ZFUlNJT05fVFlQRV9MQVNUIFNZU1JFU19DT05TVF9FWFBPUlRfVkVSU0lPTl9UWVBFX0xBU1RfQUNUSVZFIFNZU1JFU19DT05TVF9FWFRFTlNJT05fUkVRVUlTSVRFX0NPREUgU1lTUkVTX0NPTlNUX0ZJTFRFUl9OQU1FX1JFUVVJU0lURV9DT0RFIFNZU1JFU19DT05TVF9GSUxURVJfUkVRVUlTSVRFX0NPREUgU1lTUkVTX0NPTlNUX0ZJTFRFUl9UWVBFX0NPTU1PTl9DT0RFIFNZU1JFU19DT05TVF9GSUxURVJfVFlQRV9DT01NT05fTkFNRSBTWVNSRVNfQ09OU1RfRklMVEVSX1RZUEVfVVNFUl9DT0RFIFNZU1JFU19DT05TVF9GSUxURVJfVFlQRV9VU0VSX05BTUUgU1lTUkVTX0NPTlNUX0ZJTFRFUl9WQUxVRV9SRVFVSVNJVEVfTkFNRSBTWVNSRVNfQ09OU1RfRkxPQVRfTlVNQkVSX0ZPUk1BVF9DSEFSIFNZU1JFU19DT05TVF9GTE9BVF9SRVFVSVNJVEVfVFlQRSBTWVNSRVNfQ09OU1RfRk9MREVSX0FVVEhPUl9WQUxVRSBTWVNSRVNfQ09OU1RfRk9MREVSX0tJTkRfQU5ZX09CSkVDVFMgU1lTUkVTX0NPTlNUX0ZPTERFUl9LSU5EX0NPTVBPTkVOVFMgU1lTUkVTX0NPTlNUX0ZPTERFUl9LSU5EX0VET0NTIFNZU1JFU19DT05TVF9GT0xERVJfS0lORF9KT0JTIFNZU1JFU19DT05TVF9GT0xERVJfS0lORF9UQVNLUyBTWVNSRVNfQ09OU1RfRk9MREVSX1RZUEVfQ09NTU9OIFNZU1JFU19DT05TVF9GT0xERVJfVFlQRV9DT01QT05FTlQgU1lTUkVTX0NPTlNUX0ZPTERFUl9UWVBFX0ZBVk9SSVRFUyBTWVNSRVNfQ09OU1RfRk9MREVSX1RZUEVfSU5CT1ggU1lTUkVTX0NPTlNUX0ZPTERFUl9UWVBFX09VVEJPWCBTWVNSRVNfQ09OU1RfRk9MREVSX1RZUEVfUVVJQ0tfTEFVTkNIIFNZU1JFU19DT05TVF9GT0xERVJfVFlQRV9TRUFSQ0ggU1lTUkVTX0NPTlNUX0ZPTERFUl9UWVBFX1NIT1JUQ1VUUyBTWVNSRVNfQ09OU1RfRk9MREVSX1RZUEVfVVNFUiBTWVNSRVNfQ09OU1RfRlJPTV9ESUNUSU9OQVJZX0VOVU1fTUVUSE9EX0ZMQUcgU1lTUkVTX0NPTlNUX0ZVTExfU1VCU1RJVFVURV9UWVBFIFNZU1JFU19DT05TVF9GVUxMX1NVQlNUSVRVVEVfVFlQRV9DT0RFIFNZU1JFU19DT05TVF9GVU5DVElPTl9DQU5DRUxfUkVTVUxUIFNZU1JFU19DT05TVF9GVU5DVElPTl9DQVRFR09SWV9TWVNURU0gU1lTUkVTX0NPTlNUX0ZVTkNUSU9OX0NBVEVHT1JZX1VTRVIgU1lTUkVTX0NPTlNUX0ZVTkNUSU9OX0ZBSUxVUkVfUkVTVUxUIFNZU1JFU19DT05TVF9GVU5DVElPTl9TQVZFX1JFU1VMVCBTWVNSRVNfQ09OU1RfR0VORVJBVEVEX1JFUVVJU0lURSBTWVNSRVNfQ09OU1RfR1JFRU5fTElGRV9DWUNMRV9TVEFHRV9GT05UX0NPTE9SIFNZU1JFU19DT05TVF9HUk9VUF9BQ0NPVU5UX1RZUEVfVkFMVUVfQ09ERSBTWVNSRVNfQ09OU1RfR1JPVVBfQ0FURUdPUllfTk9STUFMX0NPREUgU1lTUkVTX0NPTlNUX0dST1VQX0NBVEVHT1JZX05PUk1BTF9OQU1FIFNZU1JFU19DT05TVF9HUk9VUF9DQVRFR09SWV9TRVJWSUNFX0NPREUgU1lTUkVTX0NPTlNUX0dST1VQX0NBVEVHT1JZX1NFUlZJQ0VfTkFNRSBTWVNSRVNfQ09OU1RfR1JPVVBfQ09NTU9OX0NBVEVHT1JZX0ZJRUxEX1ZBTFVFIFNZU1JFU19DT05TVF9HUk9VUF9GVUxMX05BTUVfUkVRVUlTSVRFX0NPREUgU1lTUkVTX0NPTlNUX0dST1VQX05BTUVfUkVRVUlTSVRFX0NPREUgU1lTUkVTX0NPTlNUX0dST1VQX1JJR0hUU19UX1JFUVVJU0lURV9DT0RFIFNZU1JFU19DT05TVF9HUk9VUF9TRVJWRVJfQ09ERVNfUkVRVUlTSVRFX0NPREUgU1lTUkVTX0NPTlNUX0dST1VQX1NFUlZFUl9OQU1FX1JFUVVJU0lURV9DT0RFIFNZU1JFU19DT05TVF9HUk9VUF9TRVJWSUNFX0NBVEVHT1JZX0ZJRUxEX1ZBTFVFIFNZU1JFU19DT05TVF9HUk9VUF9VU0VSX1JFUVVJU0lURV9DT0RFIFNZU1JFU19DT05TVF9HUk9VUFNfUkVGRVJFTkNFX0NPREUgU1lTUkVTX0NPTlNUX0dST1VQU19SRVFVSVNJVEVfQ09ERSBTWVNSRVNfQ09OU1RfSElEREVOX01PREVfTkFNRSBTWVNSRVNfQ09OU1RfSElHSF9MVkxfUkVRVUlTSVRFX0NPREUgU1lTUkVTX0NPTlNUX0hJU1RPUllfQUNUSU9OX0NSRUFURV9DT0RFIFNZU1JFU19DT05TVF9ISVNUT1JZX0FDVElPTl9ERUxFVEVfQ09ERSBTWVNSRVNfQ09OU1RfSElTVE9SWV9BQ1RJT05fRURJVF9DT0RFIFNZU1JFU19DT05TVF9IT1VSX0NIQVIgU1lTUkVTX0NPTlNUX0lEX1JFUVVJU0lURV9DT0RFIFNZU1JFU19DT05TVF9JRFNQU19SRVFVSVNJVEVfQ09ERSBTWVNSRVNfQ09OU1RfSU1BR0VfTU9ERV9DT0xPUiBTWVNSRVNfQ09OU1RfSU1BR0VfTU9ERV9HUkVZU0NBTEUgU1lTUkVTX0NPTlNUX0lNQUdFX01PREVfTU9OT0NIUk9NRSBTWVNSRVNfQ09OU1RfSU1QT1JUQU5DRV9ISUdIIFNZU1JFU19DT05TVF9JTVBPUlRBTkNFX0xPVyBTWVNSRVNfQ09OU1RfSU1QT1JUQU5DRV9OT1JNQUwgU1lTUkVTX0NPTlNUX0lOX0RFU0lHTl9WRVJTSU9OX1NUQVRFX1BJQ0tfVkFMVUUgU1lTUkVTX0NPTlNUX0lOQ09NSU5HX1dPUktfUlVMRV9UWVBFX0NPREUgU1lTUkVTX0NPTlNUX0lOVF9SRVFVSVNJVEUgU1lTUkVTX0NPTlNUX0lOVF9SRVFVSVNJVEVfVFlQRSBTWVNSRVNfQ09OU1RfSU5URUdFUl9OVU1CRVJfRk9STUFUX0NIQVIgU1lTUkVTX0NPTlNUX0lOVEVHRVJfVFlQRV9DSEFSIFNZU1JFU19DT05TVF9JU19HRU5FUkFURURfUkVRVUlTSVRFX05FR0FUSVZFX1ZBTFVFIFNZU1JFU19DT05TVF9JU19QVUJMSUNfUk9MRV9SRVFVSVNJVEVfQ09ERSBTWVNSRVNfQ09OU1RfSVNfUkVNT1RFX1VTRVJfTkVHQVRJVkVfVkFMVUUgU1lTUkVTX0NPTlNUX0lTX1JFTU9URV9VU0VSX1BPU0lUSVZFX1ZBTFVFIFNZU1JFU19DT05TVF9JU19TVE9SRURfUkVRVUlTSVRFX05FR0FUSVZFX1ZBTFVFIFNZU1JFU19DT05TVF9JU19TVE9SRURfUkVRVUlTSVRFX1NUT1JFRF9WQUxVRSBTWVNSRVNfQ09OU1RfSVRBTElDX0xJRkVfQ1lDTEVfU1RBR0VfRFJBV19TVFlMRSBTWVNSRVNfQ09OU1RfSk9CX0JMT0NLX0RFU0NSSVBUSU9OIFNZU1JFU19DT05TVF9KT0JfS0lORF9DT05UUk9MX0pPQiBTWVNSRVNfQ09OU1RfSk9CX0tJTkRfSk9CIFNZU1JFU19DT05TVF9KT0JfS0lORF9OT1RJQ0UgU1lTUkVTX0NPTlNUX0pPQl9TVEFURV9BQk9SVEVEIFNZU1JFU19DT05TVF9KT0JfU1RBVEVfQ09NUExFVEUgU1lTUkVTX0NPTlNUX0pPQl9TVEFURV9XT1JLSU5HIFNZU1JFU19DT05TVF9LSU5EX1JFUVVJU0lURV9DT0RFIFNZU1JFU19DT05TVF9LSU5EX1JFUVVJU0lURV9OQU1FIFNZU1JFU19DT05TVF9LSU5EU19DUkVBVEVfU0hBRE9XX0NPUElFU19SRVFVSVNJVEVfQ09ERSBTWVNSRVNfQ09OU1RfS0lORFNfREVGQVVMVF9FRE9DX0xJRkVfU1RBR0VfUkVRVUlTSVRFX0NPREUgU1lTUkVTX0NPTlNUX0tJTkRTX0VET0NfQUxMX1RFUExBVEVTX0FMTE9XRURfUkVRVUlTSVRFX0NPREUgU1lTUkVTX0NPTlNUX0tJTkRTX0VET0NfQUxMT1dfTElGRV9DWUNMRV9TVEFHRV9DSEFOR0lOR19SRVFVSVNJVEVfQ09ERSBTWVNSRVNfQ09OU1RfS0lORFNfRURPQ19BTExPV19NVUxUSVBMRV9BQ1RJVkVfVkVSU0lPTlNfUkVRVUlTSVRFX0NPREUgU1lTUkVTX0NPTlNUX0tJTkRTX0VET0NfU0hBUkVfQUNDRVNfUklHSFRTX0JZX0RFRkFVTFRfQ09ERSBTWVNSRVNfQ09OU1RfS0lORFNfRURPQ19URU1QTEFURV9SRVFVSVNJVEVfQ09ERSBTWVNSRVNfQ09OU1RfS0lORFNfRURPQ19UWVBFX1JFUVVJU0lURV9DT0RFIFNZU1JFU19DT05TVF9LSU5EU19TSUdORVJTX1JFUVVJU0lURVNfQ09ERSBTWVNSRVNfQ09OU1RfS09EX0lOUFVUX1RZUEUgU1lTUkVTX0NPTlNUX0xBU1RfVVBEQVRFX0RBVEVfUkVRVUlTSVRFX0NPREUgU1lTUkVTX0NPTlNUX0xJRkVfQ1lDTEVfU1RBUlRfU1RBR0VfUkVRVUlTSVRFX0NPREUgU1lTUkVTX0NPTlNUX0xJTEFDX0xJRkVfQ1lDTEVfU1RBR0VfRk9OVF9DT0xPUiBTWVNSRVNfQ09OU1RfTElOS19PQkpFQ1RfS0lORF9DT01QT05FTlQgU1lTUkVTX0NPTlNUX0xJTktfT0JKRUNUX0tJTkRfRE9DVU1FTlQgU1lTUkVTX0NPTlNUX0xJTktfT0JKRUNUX0tJTkRfRURPQyBTWVNSRVNfQ09OU1RfTElOS19PQkpFQ1RfS0lORF9GT0xERVIgU1lTUkVTX0NPTlNUX0xJTktfT0JKRUNUX0tJTkRfSk9CIFNZU1JFU19DT05TVF9MSU5LX09CSkVDVF9LSU5EX1JFRkVSRU5DRSBTWVNSRVNfQ09OU1RfTElOS19PQkpFQ1RfS0lORF9UQVNLIFNZU1JFU19DT05TVF9MSU5LX1JFRl9UWVBFX1JFUVVJU0lURV9DT0RFIFNZU1JFU19DT05TVF9MSVNUX1JFRkVSRU5DRV9NT0RFX05BTUUgU1lTUkVTX0NPTlNUX0xPQ0FMSVpBVElPTl9ESUNUSU9OQVJZX01BSU5fVklFV19DT0RFIFNZU1JFU19DT05TVF9NQUlOX1ZJRVdfQ09ERSBTWVNSRVNfQ09OU1RfTUFOVUFMX0VOVU1fTUVUSE9EX0ZMQUcgU1lTUkVTX0NPTlNUX01BU1RFUl9DT01QX1RZUEVfUkVRVUlTSVRFX0NPREUgU1lTUkVTX0NPTlNUX01BU1RFUl9UQUJMRV9SRUNfSURfUkVRVUlTSVRFX0NPREUgU1lTUkVTX0NPTlNUX01BWElNSVpFRF9NT0RFX05BTUUgU1lTUkVTX0NPTlNUX01FX1ZBTFVFIFNZU1JFU19DT05TVF9NRVNTQUdFX0FUVEVOVElPTl9DQVBUSU9OIFNZU1JFU19DT05TVF9NRVNTQUdFX0NPTkZJUk1BVElPTl9DQVBUSU9OIFNZU1JFU19DT05TVF9NRVNTQUdFX0VSUk9SX0NBUFRJT04gU1lTUkVTX0NPTlNUX01FU1NBR0VfSU5GT1JNQVRJT05fQ0FQVElPTiBTWVNSRVNfQ09OU1RfTUlOSU1JWkVEX01PREVfTkFNRSBTWVNSRVNfQ09OU1RfTUlOVVRFX0NIQVIgU1lTUkVTX0NPTlNUX01PRFVMRV9SRVFVSVNJVEVfQ09ERSBTWVNSRVNfQ09OU1RfTU9OSVRPUklOR19CTE9DS19ERVNDUklQVElPTiBTWVNSRVNfQ09OU1RfTU9OVEhfRk9STUFUX1ZBTFVFIFNZU1JFU19DT05TVF9OQU1FX0xPQ0FMSVpFX0lEX1JFUVVJU0lURV9DT0RFIFNZU1JFU19DT05TVF9OQU1FX1JFUVVJU0lURV9DT0RFIFNZU1JFU19DT05TVF9OQU1FX1NJTkdVTEFSX1JFUVVJU0lURV9DT0RFIFNZU1JFU19DT05TVF9OQU1FQU5fSU5QVVRfVFlQRSBTWVNSRVNfQ09OU1RfTkVHQVRJVkVfUElDS19WQUxVRSBTWVNSRVNfQ09OU1RfTkVHQVRJVkVfVkFMVUUgU1lTUkVTX0NPTlNUX05PIFNZU1JFU19DT05TVF9OT19QSUNLX1ZBTFVFIFNZU1JFU19DT05TVF9OT19TSUdOQVRVUkVfUkVRVUlTSVRFX0NPREUgU1lTUkVTX0NPTlNUX05PX1ZBTFVFIFNZU1JFU19DT05TVF9OT05FX0FDQ0VTU19SSUdIVFNfVFlQRV9DT0RFIFNZU1JFU19DT05TVF9OT05PUEVSQVRJTkdfUkVDT1JEX0ZMQUdfVkFMVUUgU1lTUkVTX0NPTlNUX05PTk9QRVJBVElOR19SRUNPUkRfRkxBR19WQUxVRV9NQVNDVUxJTkUgU1lTUkVTX0NPTlNUX05PUk1BTF9BQ0NFU1NfUklHSFRTX1RZUEVfQ09ERSBTWVNSRVNfQ09OU1RfTk9STUFMX0xJRkVfQ1lDTEVfU1RBR0VfRFJBV19TVFlMRSBTWVNSRVNfQ09OU1RfTk9STUFMX01PREVfTkFNRSBTWVNSRVNfQ09OU1RfTk9UX0FMTE9XRURfQUNDRVNTX1RZUEVfQ09ERSBTWVNSRVNfQ09OU1RfTk9UX0FMTE9XRURfQUNDRVNTX1RZUEVfTkFNRSBTWVNSRVNfQ09OU1RfTk9URV9SRVFVSVNJVEVfQ09ERSBTWVNSRVNfQ09OU1RfTk9USUNFX0JMT0NLX0RFU0NSSVBUSU9OIFNZU1JFU19DT05TVF9OVU1fUkVRVUlTSVRFIFNZU1JFU19DT05TVF9OVU1fU1RSX1JFUVVJU0lURV9DT0RFIFNZU1JFU19DT05TVF9OVU1FUkFUSU9OX0FVVE9fTk9UX1NUUk9ORyBTWVNSRVNfQ09OU1RfTlVNRVJBVElPTl9BVVRPX1NUUk9ORyBTWVNSRVNfQ09OU1RfTlVNRVJBVElPTl9GUk9NX0RJQ1RPTkFSWSBTWVNSRVNfQ09OU1RfTlVNRVJBVElPTl9NQU5VQUwgU1lTUkVTX0NPTlNUX05VTUVSSUNfVFlQRV9DSEFSIFNZU1JFU19DT05TVF9OVU1SRVFfUkVRVUlTSVRFX0NPREUgU1lTUkVTX0NPTlNUX09CU09MRVRFX1ZFUlNJT05fU1RBVEVfUElDS19WQUxVRSBTWVNSRVNfQ09OU1RfT1BFUkFUSU5HX1JFQ09SRF9GTEFHX1ZBTFVFIFNZU1JFU19DT05TVF9PUEVSQVRJTkdfUkVDT1JEX0ZMQUdfVkFMVUVfQ09ERSBTWVNSRVNfQ09OU1RfT1BFUkFUSU5HX1JFQ09SRF9GTEFHX1ZBTFVFX0ZFTUlOSU5FIFNZU1JFU19DT05TVF9PUEVSQVRJTkdfUkVDT1JEX0ZMQUdfVkFMVUVfTUFTQ1VMSU5FIFNZU1JFU19DT05TVF9PUFRJT05BTF9GT1JNX0NPTVBfUkVRQ09ERV9QUkVGSVggU1lTUkVTX0NPTlNUX09SQU5HRV9MSUZFX0NZQ0xFX1NUQUdFX0ZPTlRfQ09MT1IgU1lTUkVTX0NPTlNUX09SSUdJTkFMUkVGX1JFUVVJU0lURV9DT0RFIFNZU1JFU19DT05TVF9PVVJGSVJNX1JFRl9DT0RFIFNZU1JFU19DT05TVF9PVVJGSVJNX1JFUVVJU0lURV9DT0RFIFNZU1JFU19DT05TVF9PVVJGSVJNX1ZBUiBTWVNSRVNfQ09OU1RfT1VUR09JTkdfV09SS19SVUxFX1RZUEVfQ09ERSBTWVNSRVNfQ09OU1RfUElDS19ORUdBVElWRV9SRVNVTFQgU1lTUkVTX0NPTlNUX1BJQ0tfUE9TSVRJVkVfUkVTVUxUIFNZU1JFU19DT05TVF9QSUNLX1JFUVVJU0lURSBTWVNSRVNfQ09OU1RfUElDS19SRVFVSVNJVEVfVFlQRSBTWVNSRVNfQ09OU1RfUElDS19UWVBFX0NIQVIgU1lTUkVTX0NPTlNUX1BMQU5fU1RBVFVTX1JFUVVJU0lURV9DT0RFIFNZU1JFU19DT05TVF9QTEFURk9STV9WRVJTSU9OX0NPTU1FTlQgU1lTUkVTX0NPTlNUX1BMVUdJTlNfU0VUVElOR1NfREVTQ1JJUFRJT05fUkVRVUlTSVRFX0NPREUgU1lTUkVTX0NPTlNUX1BPU0lUSVZFX1BJQ0tfVkFMVUUgU1lTUkVTX0NPTlNUX1BPV0VSX1RPX0NSRUFURV9BQ1RJT05fQ09ERSBTWVNSRVNfQ09OU1RfUE9XRVJfVE9fU0lHTl9BQ1RJT05fQ09ERSBTWVNSRVNfQ09OU1RfUFJJT1JJVFlfUkVRVUlTSVRFX0NPREUgU1lTUkVTX0NPTlNUX1FVQUxJRklFRF9UQVNLX1RZUEUgU1lTUkVTX0NPTlNUX1FVQUxJRklFRF9UQVNLX1RZUEVfQ09ERSBTWVNSRVNfQ09OU1RfUkVDU1RBVF9SRVFVSVNJVEVfQ09ERSBTWVNSRVNfQ09OU1RfUkVEX0xJRkVfQ1lDTEVfU1RBR0VfRk9OVF9DT0xPUiBTWVNSRVNfQ09OU1RfUkVGX0lEX1RfUkVGX1RZUEVfUkVRVUlTSVRFX0NPREUgU1lTUkVTX0NPTlNUX1JFRl9SRVFVSVNJVEUgU1lTUkVTX0NPTlNUX1JFRl9SRVFVSVNJVEVfVFlQRSBTWVNSRVNfQ09OU1RfUkVGX1JFUVVJU0lURVNfUkVGRVJFTkNFX0NPREVfU0VMRUNURURfUkVRVUlTSVRFIFNZU1JFU19DT05TVF9SRUZFUkVOQ0VfUkVDT1JEX0hJU1RPUllfQ1JFQVRFX0FDVElPTl9DT0RFIFNZU1JFU19DT05TVF9SRUZFUkVOQ0VfUkVDT1JEX0hJU1RPUllfREVMRVRFX0FDVElPTl9DT0RFIFNZU1JFU19DT05TVF9SRUZFUkVOQ0VfUkVDT1JEX0hJU1RPUllfTU9ESUZZX0FDVElPTl9DT0RFIFNZU1JFU19DT05TVF9SRUZFUkVOQ0VfVFlQRV9DSEFSIFNZU1JFU19DT05TVF9SRUZFUkVOQ0VfVFlQRV9SRVFVSVNJVEVfTkFNRSBTWVNSRVNfQ09OU1RfUkVGRVJFTkNFU19BRERfUEFSQU1TX1JFUVVJU0lURV9DT0RFIFNZU1JFU19DT05TVF9SRUZFUkVOQ0VTX0RJU1BMQVlfUkVRVUlTSVRFX1JFUVVJU0lURV9DT0RFIFNZU1JFU19DT05TVF9SRU1PVEVfU0VSVkVSX1NUQVRVU19XT1JLSU5HIFNZU1JFU19DT05TVF9SRU1PVEVfU0VSVkVSX1RZUEVfTUFJTiBTWVNSRVNfQ09OU1RfUkVNT1RFX1NFUlZFUl9UWVBFX1NFQ09OREFSWSBTWVNSRVNfQ09OU1RfUkVNT1RFX1VTRVJfRkxBR19WQUxVRV9DT0RFIFNZU1JFU19DT05TVF9SRVBPUlRfQVBQX0VESVRPUl9JTlRFUk5BTCBTWVNSRVNfQ09OU1RfUkVQT1JUX0JBU0VfUkVQT1JUX0lEX1JFUVVJU0lURV9DT0RFIFNZU1JFU19DT05TVF9SRVBPUlRfQkFTRV9SRVBPUlRfUkVRVUlTSVRFX0NPREUgU1lTUkVTX0NPTlNUX1JFUE9SVF9TQ1JJUFRfUkVRVUlTSVRFX0NPREUgU1lTUkVTX0NPTlNUX1JFUE9SVF9URU1QTEFURV9SRVFVSVNJVEVfQ09ERSBTWVNSRVNfQ09OU1RfUkVQT1JUX1ZJRVdFUl9DT0RFX1JFUVVJU0lURV9DT0RFIFNZU1JFU19DT05TVF9SRVFfQUxMT1dfQ09NUE9ORU5UX0RFRkFVTFRfVkFMVUUgU1lTUkVTX0NPTlNUX1JFUV9BTExPV19SRUNPUkRfREVGQVVMVF9WQUxVRSBTWVNSRVNfQ09OU1RfUkVRX0FMTE9XX1NFUlZFUl9DT01QT05FTlRfREVGQVVMVF9WQUxVRSBTWVNSRVNfQ09OU1RfUkVRX01PREVfQVZBSUxBQkxFX0NPREUgU1lTUkVTX0NPTlNUX1JFUV9NT0RFX0VESVRfQ09ERSBTWVNSRVNfQ09OU1RfUkVRX01PREVfSElEREVOX0NPREUgU1lTUkVTX0NPTlNUX1JFUV9NT0RFX05PVF9BVkFJTEFCTEVfQ09ERSBTWVNSRVNfQ09OU1RfUkVRX01PREVfVklFV19DT0RFIFNZU1JFU19DT05TVF9SRVFfTlVNQkVSX1JFUVVJU0lURV9DT0RFIFNZU1JFU19DT05TVF9SRVFfU0VDVElPTl9WQUxVRSBTWVNSRVNfQ09OU1RfUkVRX1RZUEVfVkFMVUUgU1lTUkVTX0NPTlNUX1JFUVVJU0lURV9GT1JNQVRfQllfVU5JVCBTWVNSRVNfQ09OU1RfUkVRVUlTSVRFX0ZPUk1BVF9EQVRFX0ZVTEwgU1lTUkVTX0NPTlNUX1JFUVVJU0lURV9GT1JNQVRfREFURV9USU1FIFNZU1JFU19DT05TVF9SRVFVSVNJVEVfRk9STUFUX0xFRlQgU1lTUkVTX0NPTlNUX1JFUVVJU0lURV9GT1JNQVRfUklHSFQgU1lTUkVTX0NPTlNUX1JFUVVJU0lURV9GT1JNQVRfV0lUSE9VVF9VTklUIFNZU1JFU19DT05TVF9SRVFVSVNJVEVfTlVNQkVSX1JFUVVJU0lURV9DT0RFIFNZU1JFU19DT05TVF9SRVFVSVNJVEVfU0VDVElPTl9BQ1RJT05TIFNZU1JFU19DT05TVF9SRVFVSVNJVEVfU0VDVElPTl9CVVRUT04gU1lTUkVTX0NPTlNUX1JFUVVJU0lURV9TRUNUSU9OX0JVVFRPTlMgU1lTUkVTX0NPTlNUX1JFUVVJU0lURV9TRUNUSU9OX0NBUkQgU1lTUkVTX0NPTlNUX1JFUVVJU0lURV9TRUNUSU9OX1RBQkxFIFNZU1JFU19DT05TVF9SRVFVSVNJVEVfU0VDVElPTl9UQUJMRTEwIFNZU1JFU19DT05TVF9SRVFVSVNJVEVfU0VDVElPTl9UQUJMRTExIFNZU1JFU19DT05TVF9SRVFVSVNJVEVfU0VDVElPTl9UQUJMRTEyIFNZU1JFU19DT05TVF9SRVFVSVNJVEVfU0VDVElPTl9UQUJMRTEzIFNZU1JFU19DT05TVF9SRVFVSVNJVEVfU0VDVElPTl9UQUJMRTE0IFNZU1JFU19DT05TVF9SRVFVSVNJVEVfU0VDVElPTl9UQUJMRTE1IFNZU1JFU19DT05TVF9SRVFVSVNJVEVfU0VDVElPTl9UQUJMRTE2IFNZU1JFU19DT05TVF9SRVFVSVNJVEVfU0VDVElPTl9UQUJMRTE3IFNZU1JFU19DT05TVF9SRVFVSVNJVEVfU0VDVElPTl9UQUJMRTE4IFNZU1JFU19DT05TVF9SRVFVSVNJVEVfU0VDVElPTl9UQUJMRTE5IFNZU1JFU19DT05TVF9SRVFVSVNJVEVfU0VDVElPTl9UQUJMRTIgU1lTUkVTX0NPTlNUX1JFUVVJU0lURV9TRUNUSU9OX1RBQkxFMjAgU1lTUkVTX0NPTlNUX1JFUVVJU0lURV9TRUNUSU9OX1RBQkxFMjEgU1lTUkVTX0NPTlNUX1JFUVVJU0lURV9TRUNUSU9OX1RBQkxFMjIgU1lTUkVTX0NPTlNUX1JFUVVJU0lURV9TRUNUSU9OX1RBQkxFMjMgU1lTUkVTX0NPTlNUX1JFUVVJU0lURV9TRUNUSU9OX1RBQkxFMjQgU1lTUkVTX0NPTlNUX1JFUVVJU0lURV9TRUNUSU9OX1RBQkxFMyBTWVNSRVNfQ09OU1RfUkVRVUlTSVRFX1NFQ1RJT05fVEFCTEU0IFNZU1JFU19DT05TVF9SRVFVSVNJVEVfU0VDVElPTl9UQUJMRTUgU1lTUkVTX0NPTlNUX1JFUVVJU0lURV9TRUNUSU9OX1RBQkxFNiBTWVNSRVNfQ09OU1RfUkVRVUlTSVRFX1NFQ1RJT05fVEFCTEU3IFNZU1JFU19DT05TVF9SRVFVSVNJVEVfU0VDVElPTl9UQUJMRTggU1lTUkVTX0NPTlNUX1JFUVVJU0lURV9TRUNUSU9OX1RBQkxFOSBTWVNSRVNfQ09OU1RfUkVRVUlTSVRFU19QU0VVRE9SRUZFUkVOQ0VfUkVRVUlTSVRFX05VTUJFUl9SRVFVSVNJVEVfQ09ERSBTWVNSRVNfQ09OU1RfUklHSFRfQUxJR05NRU5UX0NPREUgU1lTUkVTX0NPTlNUX1JPTEVTX1JFRkVSRU5DRV9DT0RFIFNZU1JFU19DT05TVF9ST1VURV9TVEVQX0FGVEVSX1JVUyBTWVNSRVNfQ09OU1RfUk9VVEVfU1RFUF9BTkRfQ09ORElUSU9OX1JVUyBTWVNSRVNfQ09OU1RfUk9VVEVfU1RFUF9PUl9DT05ESVRJT05fUlVTIFNZU1JFU19DT05TVF9ST1VURV9UWVBFX0NPTVBMRVggU1lTUkVTX0NPTlNUX1JPVVRFX1RZUEVfUEFSQUxMRUwgU1lTUkVTX0NPTlNUX1JPVVRFX1RZUEVfU0VSSUFMIFNZU1JFU19DT05TVF9TQkRBVEFTRVRERVNDX05FR0FUSVZFX1ZBTFVFIFNZU1JFU19DT05TVF9TQkRBVEFTRVRERVNDX1BPU0lUSVZFX1ZBTFVFIFNZU1JFU19DT05TVF9TQlZJRVdTREVTQ19QT1NJVElWRV9WQUxVRSBTWVNSRVNfQ09OU1RfU0NSSVBUX0JMT0NLX0RFU0NSSVBUSU9OIFNZU1JFU19DT05TVF9TRUFSQ0hfQllfVEVYVF9SRVFVSVNJVEVfQ09ERSBTWVNSRVNfQ09OU1RfU0VBUkNIRVNfQ09NUE9ORU5UX0NPTlRFTlQgU1lTUkVTX0NPTlNUX1NFQVJDSEVTX0NSSVRFUklBX0FDVElPTl9OQU1FIFNZU1JFU19DT05TVF9TRUFSQ0hFU19FRE9DX0NPTlRFTlQgU1lTUkVTX0NPTlNUX1NFQVJDSEVTX0ZPTERFUl9DT05URU5UIFNZU1JFU19DT05TVF9TRUFSQ0hFU19KT0JfQ09OVEVOVCBTWVNSRVNfQ09OU1RfU0VBUkNIRVNfUkVGRVJFTkNFX0NPREUgU1lTUkVTX0NPTlNUX1NFQVJDSEVTX1RBU0tfQ09OVEVOVCBTWVNSRVNfQ09OU1RfU0VDT05EX0NIQVIgU1lTUkVTX0NPTlNUX1NFQ1RJT05fUkVRVUlTSVRFX0FDVElPTlNfVkFMVUUgU1lTUkVTX0NPTlNUX1NFQ1RJT05fUkVRVUlTSVRFX0NBUkRfVkFMVUUgU1lTUkVTX0NPTlNUX1NFQ1RJT05fUkVRVUlTSVRFX0NPREUgU1lTUkVTX0NPTlNUX1NFQ1RJT05fUkVRVUlTSVRFX0RFVEFJTF8xX1ZBTFVFIFNZU1JFU19DT05TVF9TRUNUSU9OX1JFUVVJU0lURV9ERVRBSUxfMl9WQUxVRSBTWVNSRVNfQ09OU1RfU0VDVElPTl9SRVFVSVNJVEVfREVUQUlMXzNfVkFMVUUgU1lTUkVTX0NPTlNUX1NFQ1RJT05fUkVRVUlTSVRFX0RFVEFJTF80X1ZBTFVFIFNZU1JFU19DT05TVF9TRUNUSU9OX1JFUVVJU0lURV9ERVRBSUxfNV9WQUxVRSBTWVNSRVNfQ09OU1RfU0VDVElPTl9SRVFVSVNJVEVfREVUQUlMXzZfVkFMVUUgU1lTUkVTX0NPTlNUX1NFTEVDVF9SRUZFUkVOQ0VfTU9ERV9OQU1FIFNZU1JFU19DT05TVF9TRUxFQ1RfVFlQRV9TRUxFQ1RBQkxFIFNZU1JFU19DT05TVF9TRUxFQ1RfVFlQRV9TRUxFQ1RBQkxFX09OTFlfQ0hJTEQgU1lTUkVTX0NPTlNUX1NFTEVDVF9UWVBFX1NFTEVDVEFCTEVfV0lUSF9DSElMRCBTWVNSRVNfQ09OU1RfU0VMRUNUX1RZUEVfVU5TTEVDVEFCTEUgU1lTUkVTX0NPTlNUX1NFUlZFUl9UWVBFX01BSU4gU1lTUkVTX0NPTlNUX1NFUlZJQ0VfVVNFUl9DQVRFR09SWV9GSUVMRF9WQUxVRSBTWVNSRVNfQ09OU1RfU0VUVElOR1NfVVNFUl9SRVFVSVNJVEVfQ09ERSBTWVNSRVNfQ09OU1RfU0lHTkFUVVJFX0FORF9FTkNPREVfQ0VSVElGSUNBVEVfVFlQRV9DT0RFIFNZU1JFU19DT05TVF9TSUdOQVRVUkVfQ0VSVElGSUNBVEVfVFlQRV9DT0RFIFNZU1JFU19DT05TVF9TSU5HVUxBUl9USVRMRV9SRVFVSVNJVEVfQ09ERSBTWVNSRVNfQ09OU1RfU1FMX1NFUlZFUl9BVVRIRU5USUZJQ0FUSU9OX0ZMQUdfVkFMVUVfQ09ERSBTWVNSRVNfQ09OU1RfU1FMX1NFUlZFUl9FTkNPREVfQVVUSEVOVElGSUNBVElPTl9GTEFHX1ZBTFVFX0NPREUgU1lTUkVTX0NPTlNUX1NUQU5EQVJUX1JPVVRFX1JFRkVSRU5DRV9DT0RFIFNZU1JFU19DT05TVF9TVEFOREFSVF9ST1VURV9SRUZFUkVOQ0VfQ09NTUVOVF9SRVFVSVNJVEVfQ09ERSBTWVNSRVNfQ09OU1RfU1RBTkRBUlRfUk9VVEVTX0dST1VQU19SRUZFUkVOQ0VfQ09ERSBTWVNSRVNfQ09OU1RfU1RBVEVfUkVRX05BTUUgU1lTUkVTX0NPTlNUX1NUQVRFX1JFUVVJU0lURV9BQ1RJVkVfVkFMVUUgU1lTUkVTX0NPTlNUX1NUQVRFX1JFUVVJU0lURV9DTE9TRURfVkFMVUUgU1lTUkVTX0NPTlNUX1NUQVRFX1JFUVVJU0lURV9DT0RFIFNZU1JFU19DT05TVF9TVEFUSUNfUk9MRV9UWVBFX0NPREUgU1lTUkVTX0NPTlNUX1NUQVRVU19QTEFOX0RFRkFVTFRfVkFMVUUgU1lTUkVTX0NPTlNUX1NUQVRVU19WQUxVRV9BVVRPQ0xFQU5JTkcgU1lTUkVTX0NPTlNUX1NUQVRVU19WQUxVRV9CTFVFX1NRVUFSRSBTWVNSRVNfQ09OU1RfU1RBVFVTX1ZBTFVFX0NPTVBMRVRFIFNZU1JFU19DT05TVF9TVEFUVVNfVkFMVUVfR1JFRU5fU1FVQVJFIFNZU1JFU19DT05TVF9TVEFUVVNfVkFMVUVfT1JBTkdFX1NRVUFSRSBTWVNSRVNfQ09OU1RfU1RBVFVTX1ZBTFVFX1BVUlBMRV9TUVVBUkUgU1lTUkVTX0NPTlNUX1NUQVRVU19WQUxVRV9SRURfU1FVQVJFIFNZU1JFU19DT05TVF9TVEFUVVNfVkFMVUVfU1VTUEVORCBTWVNSRVNfQ09OU1RfU1RBVFVTX1ZBTFVFX1lFTExPV19TUVVBUkUgU1lTUkVTX0NPTlNUX1NURFJPVVRFX1NIT1dfVE9fVVNFUlNfUkVRVUlTSVRFX0NPREUgU1lTUkVTX0NPTlNUX1NUT1JBR0VfVFlQRV9GSUxFIFNZU1JFU19DT05TVF9TVE9SQUdFX1RZUEVfU1FMX1NFUlZFUiBTWVNSRVNfQ09OU1RfU1RSX1JFUVVJU0lURSBTWVNSRVNfQ09OU1RfU1RSSUtFT1VUX0xJRkVfQ1lDTEVfU1RBR0VfRFJBV19TVFlMRSBTWVNSRVNfQ09OU1RfU1RSSU5HX0ZPUk1BVF9MRUZUX0FMSUdOX0NIQVIgU1lTUkVTX0NPTlNUX1NUUklOR19GT1JNQVRfUklHSFRfQUxJR05fQ0hBUiBTWVNSRVNfQ09OU1RfU1RSSU5HX1JFUVVJU0lURV9DT0RFIFNZU1JFU19DT05TVF9TVFJJTkdfUkVRVUlTSVRFX1RZUEUgU1lTUkVTX0NPTlNUX1NUUklOR19UWVBFX0NIQVIgU1lTUkVTX0NPTlNUX1NVQlNUSVRVVEVTX1BTRVVET1JFRkVSRU5DRV9DT0RFIFNZU1JFU19DT05TVF9TVUJUQVNLX0JMT0NLX0RFU0NSSVBUSU9OIFNZU1JFU19DT05TVF9TWVNURU1fU0VUVElOR19DVVJSRU5UX1VTRVJfUEFSQU1fVkFMVUUgU1lTUkVTX0NPTlNUX1NZU1RFTV9TRVRUSU5HX0VNUFRZX1ZBTFVFX1BBUkFNX1ZBTFVFIFNZU1JFU19DT05TVF9TWVNURU1fVkVSU0lPTl9DT01NRU5UIFNZU1JFU19DT05TVF9UQVNLX0FDQ0VTU19UWVBFX0FMTCBTWVNSRVNfQ09OU1RfVEFTS19BQ0NFU1NfVFlQRV9BTExfTUVNQkVSUyBTWVNSRVNfQ09OU1RfVEFTS19BQ0NFU1NfVFlQRV9NQU5VQUwgU1lTUkVTX0NPTlNUX1RBU0tfRU5DT0RFX1RZUEVfQ0VSVElGSUNBVElPTiBTWVNSRVNfQ09OU1RfVEFTS19FTkNPREVfVFlQRV9DRVJUSUZJQ0FUSU9OX0FORF9QQVNTV09SRCBTWVNSRVNfQ09OU1RfVEFTS19FTkNPREVfVFlQRV9OT05FIFNZU1JFU19DT05TVF9UQVNLX0VOQ09ERV9UWVBFX1BBU1NXT1JEIFNZU1JFU19DT05TVF9UQVNLX1JPVVRFX0FMTF9DT05ESVRJT04gU1lTUkVTX0NPTlNUX1RBU0tfUk9VVEVfQU5EX0NPTkRJVElPTiBTWVNSRVNfQ09OU1RfVEFTS19ST1VURV9PUl9DT05ESVRJT04gU1lTUkVTX0NPTlNUX1RBU0tfU1RBVEVfQUJPUlRFRCBTWVNSRVNfQ09OU1RfVEFTS19TVEFURV9DT01QTEVURSBTWVNSRVNfQ09OU1RfVEFTS19TVEFURV9DT05USU5VRUQgU1lTUkVTX0NPTlNUX1RBU0tfU1RBVEVfQ09OVFJPTCBTWVNSRVNfQ09OU1RfVEFTS19TVEFURV9JTklUIFNZU1JFU19DT05TVF9UQVNLX1NUQVRFX1dPUktJTkcgU1lTUkVTX0NPTlNUX1RBU0tfVElUTEUgU1lTUkVTX0NPTlNUX1RBU0tfVFlQRVNfR1JPVVBTX1JFRkVSRU5DRV9DT0RFIFNZU1JFU19DT05TVF9UQVNLX1RZUEVTX1JFRkVSRU5DRV9DT0RFIFNZU1JFU19DT05TVF9URU1QTEFURVNfUkVGRVJFTkNFX0NPREUgU1lTUkVTX0NPTlNUX1RFU1RfREFURV9SRVFVSVNJVEVfTkFNRSBTWVNSRVNfQ09OU1RfVEVTVF9ERVZfREFUQUJBU0VfTkFNRSBTWVNSRVNfQ09OU1RfVEVTVF9ERVZfU1lTVEVNX0NPREUgU1lTUkVTX0NPTlNUX1RFU1RfRURNU19EQVRBQkFTRV9OQU1FIFNZU1JFU19DT05TVF9URVNUX0VETVNfTUFJTl9DT0RFIFNZU1JFU19DT05TVF9URVNUX0VETVNfTUFJTl9EQl9OQU1FIFNZU1JFU19DT05TVF9URVNUX0VETVNfU0VDT05EX0NPREUgU1lTUkVTX0NPTlNUX1RFU1RfRURNU19TRUNPTkRfREJfTkFNRSBTWVNSRVNfQ09OU1RfVEVTVF9FRE1TX1NZU1RFTV9DT0RFIFNZU1JFU19DT05TVF9URVNUX05VTUVSSUNfUkVRVUlTSVRFX05BTUUgU1lTUkVTX0NPTlNUX1RFWFRfUkVRVUlTSVRFIFNZU1JFU19DT05TVF9URVhUX1JFUVVJU0lURV9DT0RFIFNZU1JFU19DT05TVF9URVhUX1JFUVVJU0lURV9UWVBFIFNZU1JFU19DT05TVF9URVhUX1RZUEVfQ0hBUiBTWVNSRVNfQ09OU1RfVFlQRV9DT0RFX1JFUVVJU0lURV9DT0RFIFNZU1JFU19DT05TVF9UWVBFX1JFUVVJU0lURV9DT0RFIFNZU1JFU19DT05TVF9VTkRFRklORURfTElGRV9DWUNMRV9TVEFHRV9GT05UX0NPTE9SIFNZU1JFU19DT05TVF9VTklUU19TRUNUSU9OX0lEX1JFUVVJU0lURV9DT0RFIFNZU1JFU19DT05TVF9VTklUU19TRUNUSU9OX1JFUVVJU0lURV9DT0RFIFNZU1JFU19DT05TVF9VTk9QRVJBVElOR19SRUNPUkRfRkxBR19WQUxVRV9DT0RFIFNZU1JFU19DT05TVF9VTlNUT1JFRF9EQVRBX1JFUVVJU0lURV9DT0RFIFNZU1JFU19DT05TVF9VTlNUT1JFRF9EQVRBX1JFUVVJU0lURV9OQU1FIFNZU1JFU19DT05TVF9VU0VfQUNDRVNTX1RZUEVfQ09ERSBTWVNSRVNfQ09OU1RfVVNFX0FDQ0VTU19UWVBFX05BTUUgU1lTUkVTX0NPTlNUX1VTRVJfQUNDT1VOVF9UWVBFX1ZBTFVFX0NPREUgU1lTUkVTX0NPTlNUX1VTRVJfQURESVRJT05BTF9JTkZPUk1BVElPTl9SRVFVSVNJVEVfQ09ERSBTWVNSRVNfQ09OU1RfVVNFUl9BTkRfR1JPVVBfSURfRlJPTV9QU0VVRE9SRUZFUkVOQ0VfUkVRVUlTSVRFX0NPREUgU1lTUkVTX0NPTlNUX1VTRVJfQ0FURUdPUllfTk9STUFMIFNZU1JFU19DT05TVF9VU0VSX0NFUlRJRklDQVRFX1JFUVVJU0lURV9DT0RFIFNZU1JFU19DT05TVF9VU0VSX0NFUlRJRklDQVRFX1NUQVRFX1JFUVVJU0lURV9DT0RFIFNZU1JFU19DT05TVF9VU0VSX0NFUlRJRklDQVRFX1NVQkpFQ1RfTkFNRV9SRVFVSVNJVEVfQ09ERSBTWVNSRVNfQ09OU1RfVVNFUl9DRVJUSUZJQ0FURV9USFVNQlBSSU5UX1JFUVVJU0lURV9DT0RFIFNZU1JFU19DT05TVF9VU0VSX0NPTU1PTl9DQVRFR09SWSBTWVNSRVNfQ09OU1RfVVNFUl9DT01NT05fQ0FURUdPUllfQ09ERSBTWVNSRVNfQ09OU1RfVVNFUl9GVUxMX05BTUVfUkVRVUlTSVRFX0NPREUgU1lTUkVTX0NPTlNUX1VTRVJfR1JPVVBfVFlQRV9SRVFVSVNJVEVfQ09ERSBTWVNSRVNfQ09OU1RfVVNFUl9MT0dJTl9SRVFVSVNJVEVfQ09ERSBTWVNSRVNfQ09OU1RfVVNFUl9SRU1PVEVfQ09OVFJPTExFUl9SRVFVSVNJVEVfQ09ERSBTWVNSRVNfQ09OU1RfVVNFUl9SRU1PVEVfU1lTVEVNX1JFUVVJU0lURV9DT0RFIFNZU1JFU19DT05TVF9VU0VSX1JJR0hUU19UX1JFUVVJU0lURV9DT0RFIFNZU1JFU19DT05TVF9VU0VSX1NFUlZFUl9OQU1FX1JFUVVJU0lURV9DT0RFIFNZU1JFU19DT05TVF9VU0VSX1NFUlZJQ0VfQ0FURUdPUlkgU1lTUkVTX0NPTlNUX1VTRVJfU0VSVklDRV9DQVRFR09SWV9DT0RFIFNZU1JFU19DT05TVF9VU0VSX1NUQVRVU19BRE1JTklTVFJBVE9SX0NPREUgU1lTUkVTX0NPTlNUX1VTRVJfU1RBVFVTX0FETUlOSVNUUkFUT1JfTkFNRSBTWVNSRVNfQ09OU1RfVVNFUl9TVEFUVVNfREVWRUxPUEVSX0NPREUgU1lTUkVTX0NPTlNUX1VTRVJfU1RBVFVTX0RFVkVMT1BFUl9OQU1FIFNZU1JFU19DT05TVF9VU0VSX1NUQVRVU19ESVNBQkxFRF9DT0RFIFNZU1JFU19DT05TVF9VU0VSX1NUQVRVU19ESVNBQkxFRF9OQU1FIFNZU1JFU19DT05TVF9VU0VSX1NUQVRVU19TWVNURU1fREVWRUxPUEVSX0NPREUgU1lTUkVTX0NPTlNUX1VTRVJfU1RBVFVTX1VTRVJfQ09ERSBTWVNSRVNfQ09OU1RfVVNFUl9TVEFUVVNfVVNFUl9OQU1FIFNZU1JFU19DT05TVF9VU0VSX1NUQVRVU19VU0VSX05BTUVfREVQUkVDQVRFRCBTWVNSRVNfQ09OU1RfVVNFUl9UWVBFX0ZJRUxEX1ZBTFVFX1VTRVIgU1lTUkVTX0NPTlNUX1VTRVJfVFlQRV9SRVFVSVNJVEVfQ09ERSBTWVNSRVNfQ09OU1RfVVNFUlNfQ09OVFJPTExFUl9SRVFVSVNJVEVfQ09ERSBTWVNSRVNfQ09OU1RfVVNFUlNfSVNfTUFJTl9TRVJWRVJfUkVRVUlTSVRFX0NPREUgU1lTUkVTX0NPTlNUX1VTRVJTX1JFRkVSRU5DRV9DT0RFIFNZU1JFU19DT05TVF9VU0VSU19SRUdJU1RSQVRJT05fQ0VSVElGSUNBVEVTX0FDVElPTl9OQU1FIFNZU1JFU19DT05TVF9VU0VSU19SRVFVSVNJVEVfQ09ERSBTWVNSRVNfQ09OU1RfVVNFUlNfU1lTVEVNX1JFUVVJU0lURV9DT0RFIFNZU1JFU19DT05TVF9VU0VSU19VU0VSX0FDQ0VTU19SSUdIVFNfVFlQUl9SRVFVSVNJVEVfQ09ERSBTWVNSRVNfQ09OU1RfVVNFUlNfVVNFUl9BVVRIRU5USUNBVElPTl9SRVFVSVNJVEVfQ09ERSBTWVNSRVNfQ09OU1RfVVNFUlNfVVNFUl9DT01QT05FTlRfUkVRVUlTSVRFX0NPREUgU1lTUkVTX0NPTlNUX1VTRVJTX1VTRVJfR1JPVVBfUkVRVUlTSVRFX0NPREUgU1lTUkVTX0NPTlNUX1VTRVJTX1ZJRVdfQ0VSVElGSUNBVEVTX0FDVElPTl9OQU1FIFNZU1JFU19DT05TVF9WSUVXX0RFRkFVTFRfQ09ERSBTWVNSRVNfQ09OU1RfVklFV19ERUZBVUxUX05BTUUgU1lTUkVTX0NPTlNUX1ZJRVdFUl9SRVFVSVNJVEVfQ09ERSBTWVNSRVNfQ09OU1RfV0FJVElOR19CTE9DS19ERVNDUklQVElPTiBTWVNSRVNfQ09OU1RfV0laQVJEX0ZPUk1fTEFCRUxfVEVTVF9TVFJJTkcgIFNZU1JFU19DT05TVF9XSVpBUkRfUVVFUllfUEFSQU1fSEVJR0hUX0VUQUxPTl9TVFJJTkcgU1lTUkVTX0NPTlNUX1dJWkFSRF9SRUZFUkVOQ0VfQ09NTUVOVF9SRVFVSVNJVEVfQ09ERSBTWVNSRVNfQ09OU1RfV09SS19SVUxFU19ERVNDUklQVElPTl9SRVFVSVNJVEVfQ09ERSBTWVNSRVNfQ09OU1RfV09SS19USU1FX0NBTEVOREFSX1JFRkVSRU5DRV9DT0RFIFNZU1JFU19DT05TVF9XT1JLX1dPUktGTE9XX0hBUkRfUk9VVEVfVFlQRV9WQUxVRSBTWVNSRVNfQ09OU1RfV09SS19XT1JLRkxPV19IQVJEX1JPVVRFX1RZUEVfVkFMVUVfQ09ERSBTWVNSRVNfQ09OU1RfV09SS19XT1JLRkxPV19IQVJEX1JPVVRFX1RZUEVfVkFMVUVfQ09ERV9SVVMgU1lTUkVTX0NPTlNUX1dPUktfV09SS0ZMT1dfU09GVF9ST1VURV9UWVBFX1ZBTFVFX0NPREVfUlVTIFNZU1JFU19DT05TVF9XT1JLRkxPV19ST1VURV9UWVBSX0hBUkQgU1lTUkVTX0NPTlNUX1dPUktGTE9XX1JPVVRFX1RZUFJfU09GVCBTWVNSRVNfQ09OU1RfWE1MX0VOQ09ESU5HIFNZU1JFU19DT05TVF9YUkVDX1NUQVRfUkVRVUlTSVRFX0NPREUgU1lTUkVTX0NPTlNUX1hSRUNJRF9GSUVMRF9OQU1FIFNZU1JFU19DT05TVF9ZRVMgU1lTUkVTX0NPTlNUX1lFU19OT18yX1JFUVVJU0lURV9DT0RFIFNZU1JFU19DT05TVF9ZRVNfTk9fUkVRVUlTSVRFX0NPREUgU1lTUkVTX0NPTlNUX1lFU19OT19UX1JFRl9UWVBFX1JFUVVJU0lURV9DT0RFIFNZU1JFU19DT05TVF9ZRVNfUElDS19WQUxVRSBTWVNSRVNfQ09OU1RfWUVTX1ZBTFVFICIrIkNSIEZBTFNFIG5pbCBOT19WQUxVRSBOVUxMIFRBQiBUUlVFIFlFU19WQUxVRSAiKyJBRE1JTklTVFJBVE9SU19HUk9VUF9OQU1FIENVU1RPTUlaRVJTX0dST1VQX05BTUUgREVWRUxPUEVSU19HUk9VUF9OQU1FIFNFUlZJQ0VfVVNFUlNfR1JPVVBfTkFNRSAiKyJERUNJU0lPTl9CTE9DS19GSVJTVF9PUEVSQU5EX1BST1BFUlRZIERFQ0lTSU9OX0JMT0NLX05BTUVfUFJPUEVSVFkgREVDSVNJT05fQkxPQ0tfT1BFUkFUSU9OX1BST1BFUlRZIERFQ0lTSU9OX0JMT0NLX1JFU1VMVF9UWVBFX1BST1BFUlRZIERFQ0lTSU9OX0JMT0NLX1NFQ09ORF9PUEVSQU5EX1BST1BFUlRZICIrIkFOWV9GSUxFX0VYVEVOVElPTiBDT01QUkVTU0VEX0RPQ1VNRU5UX0VYVEVOU0lPTiBFWFRFTkRFRF9ET0NVTUVOVF9FWFRFTlNJT04gU0hPUlRfQ09NUFJFU1NFRF9ET0NVTUVOVF9FWFRFTlNJT04gU0hPUlRfRVhURU5ERURfRE9DVU1FTlRfRVhURU5TSU9OICIrIkpPQl9CTE9DS19BQk9SVF9ERUFETElORV9QUk9QRVJUWSBKT0JfQkxPQ0tfQUZURVJfRklOSVNIX0VWRU5UIEpPQl9CTE9DS19BRlRFUl9RVUVSWV9QQVJBTUVURVJTX0VWRU5UIEpPQl9CTE9DS19BVFRBQ0hNRU5UX1BST1BFUlRZIEpPQl9CTE9DS19BVFRBQ0hNRU5UU19SSUdIVFNfR1JPVVBfUFJPUEVSVFkgSk9CX0JMT0NLX0FUVEFDSE1FTlRTX1JJR0hUU19UWVBFX1BST1BFUlRZIEpPQl9CTE9DS19CRUZPUkVfUVVFUllfUEFSQU1FVEVSU19FVkVOVCBKT0JfQkxPQ0tfQkVGT1JFX1NUQVJUX0VWRU5UIEpPQl9CTE9DS19DUkVBVEVEX0pPQlNfUFJPUEVSVFkgSk9CX0JMT0NLX0RFQURMSU5FX1BST1BFUlRZIEpPQl9CTE9DS19FWEVDVVRJT05fUkVTVUxUU19QUk9QRVJUWSBKT0JfQkxPQ0tfSVNfUEFSQUxMRUxfUFJPUEVSVFkgSk9CX0JMT0NLX0lTX1JFTEFUSVZFX0FCT1JUX0RFQURMSU5FX1BST1BFUlRZIEpPQl9CTE9DS19JU19SRUxBVElWRV9ERUFETElORV9QUk9QRVJUWSBKT0JfQkxPQ0tfSk9CX1RFWFRfUFJPUEVSVFkgSk9CX0JMT0NLX05BTUVfUFJPUEVSVFkgSk9CX0JMT0NLX05FRURfU0lHTl9PTl9QRVJGT1JNX1BST1BFUlRZIEpPQl9CTE9DS19QRVJGT1JNRVJfUFJPUEVSVFkgSk9CX0JMT0NLX1JFTEFUSVZFX0FCT1JUX0RFQURMSU5FX1RZUEVfUFJPUEVSVFkgSk9CX0JMT0NLX1JFTEFUSVZFX0RFQURMSU5FX1RZUEVfUFJPUEVSVFkgSk9CX0JMT0NLX1NVQkpFQ1RfUFJPUEVSVFkgIisiRU5HTElTSF9MQU5HVUFHRV9DT0RFIFJVU1NJQU5fTEFOR1VBR0VfQ09ERSAiKyJzbUhpZGRlbiBzbU1heGltaXplZCBzbU1pbmltaXplZCBzbU5vcm1hbCB3bU5vIHdtWWVzICIrIkNPTVBPTkVOVF9UT0tFTl9MSU5LX0tJTkQgRE9DVU1FTlRfTElOS19LSU5EIEVET0NVTUVOVF9MSU5LX0tJTkQgRk9MREVSX0xJTktfS0lORCBKT0JfTElOS19LSU5EIFJFRkVSRU5DRV9MSU5LX0tJTkQgVEFTS19MSU5LX0tJTkQgIisiQ09NUE9ORU5UX1RPS0VOX0xPQ0tfVFlQRSBFRE9DVU1FTlRfVkVSU0lPTl9MT0NLX1RZUEUgIisiTU9OSVRPUl9CTE9DS19BRlRFUl9GSU5JU0hfRVZFTlQgTU9OSVRPUl9CTE9DS19CRUZPUkVfU1RBUlRfRVZFTlQgTU9OSVRPUl9CTE9DS19ERUFETElORV9QUk9QRVJUWSBNT05JVE9SX0JMT0NLX0lOVEVSVkFMX1BST1BFUlRZIE1PTklUT1JfQkxPQ0tfSU5URVJWQUxfVFlQRV9QUk9QRVJUWSBNT05JVE9SX0JMT0NLX0lTX1JFTEFUSVZFX0RFQURMSU5FX1BST1BFUlRZIE1PTklUT1JfQkxPQ0tfTkFNRV9QUk9QRVJUWSBNT05JVE9SX0JMT0NLX1JFTEFUSVZFX0RFQURMSU5FX1RZUEVfUFJPUEVSVFkgTU9OSVRPUl9CTE9DS19TRUFSQ0hfU0NSSVBUX1BST1BFUlRZICIrIk5PVElDRV9CTE9DS19BRlRFUl9GSU5JU0hfRVZFTlQgTk9USUNFX0JMT0NLX0FUVEFDSE1FTlRfUFJPUEVSVFkgTk9USUNFX0JMT0NLX0FUVEFDSE1FTlRTX1JJR0hUU19HUk9VUF9QUk9QRVJUWSBOT1RJQ0VfQkxPQ0tfQVRUQUNITUVOVFNfUklHSFRTX1RZUEVfUFJPUEVSVFkgTk9USUNFX0JMT0NLX0JFRk9SRV9TVEFSVF9FVkVOVCBOT1RJQ0VfQkxPQ0tfQ1JFQVRFRF9OT1RJQ0VTX1BST1BFUlRZIE5PVElDRV9CTE9DS19ERUFETElORV9QUk9QRVJUWSBOT1RJQ0VfQkxPQ0tfSVNfUkVMQVRJVkVfREVBRExJTkVfUFJPUEVSVFkgTk9USUNFX0JMT0NLX05BTUVfUFJPUEVSVFkgTk9USUNFX0JMT0NLX05PVElDRV9URVhUX1BST1BFUlRZIE5PVElDRV9CTE9DS19QRVJGT1JNRVJfUFJPUEVSVFkgTk9USUNFX0JMT0NLX1JFTEFUSVZFX0RFQURMSU5FX1RZUEVfUFJPUEVSVFkgTk9USUNFX0JMT0NLX1NVQkpFQ1RfUFJPUEVSVFkgIisiZHNlQWZ0ZXJDYW5jZWwgZHNlQWZ0ZXJDbG9zZSBkc2VBZnRlckRlbGV0ZSBkc2VBZnRlckRlbGV0ZU91dE9mVHJhbnNhY3Rpb24gZHNlQWZ0ZXJJbnNlcnQgZHNlQWZ0ZXJPcGVuIGRzZUFmdGVyU2Nyb2xsIGRzZUFmdGVyVXBkYXRlIGRzZUFmdGVyVXBkYXRlT3V0T2ZUcmFuc2FjdGlvbiBkc2VCZWZvcmVDYW5jZWwgZHNlQmVmb3JlQ2xvc2UgZHNlQmVmb3JlRGVsZXRlIGRzZUJlZm9yZURldGFpbFVwZGF0ZSBkc2VCZWZvcmVJbnNlcnQgZHNlQmVmb3JlT3BlbiBkc2VCZWZvcmVVcGRhdGUgZHNlT25BbnlSZXF1aXNpdGVDaGFuZ2UgZHNlT25DbG9zZVJlY29yZCBkc2VPbkRlbGV0ZUVycm9yIGRzZU9uT3BlblJlY29yZCBkc2VPblByZXBhcmVVcGRhdGUgZHNlT25VcGRhdGVFcnJvciBkc2VPblVwZGF0ZVJhdGlmaWVkUmVjb3JkIGRzZU9uVmFsaWREZWxldGUgZHNlT25WYWxpZFVwZGF0ZSByZU9uQ2hhbmdlIHJlT25DaGFuZ2VWYWx1ZXMgU0VMRUNUSU9OX0JFR0lOX1JPVVRFX0VWRU5UIFNFTEVDVElPTl9FTkRfUk9VVEVfRVZFTlQgIisiQ1VSUkVOVF9QRVJJT0RfSVNfUkVRVUlSRUQgUFJFVklPVVNfQ0FSRF9UWVBFX05BTUUgU0hPV19SRUNPUkRfUFJPUEVSVElFU19GT1JNICIrIkFDQ0VTU19SSUdIVFNfU0VUVElOR19ESUFMT0dfQ09ERSBBRE1JTklTVFJBVE9SX1VTRVJfQ09ERSBBTkFMWVRJQ19SRVBPUlRfVFlQRSBhc3J0SGlkZUxvY2FsIGFzcnRIaWRlUmVtb3RlIENBTENVTEFURURfUk9MRV9UWVBFX0NPREUgQ09NUE9ORU5UU19SRUZFUkVOQ0VfREVWRUxPUEVSX1ZJRVdfQ09ERSBEQ1RTX1RFU1RfUFJPVE9DT0xTX0ZPTERFUl9QQVRIIEVfRURPQ19WRVJTSU9OX0FMUkVBRFlfQVBQUk9WSU5HTFlfU0lHTkVEIEVfRURPQ19WRVJTSU9OX0FMUkVBRFlfQVBQUk9WSU5HTFlfU0lHTkVEX0JZX1VTRVIgRV9FRE9DX1ZFUlNJT05fQUxSRURZX1NJR05FRCBFX0VET0NfVkVSU0lPTl9BTFJFRFlfU0lHTkVEX0JZX1VTRVIgRURPQ19UWVBFU19DT0RFX1JFUVVJU0lURV9GSUVMRF9OQU1FIEVET0NVTUVOVFNfQUxJQVNfTkFNRSBGSUxFU19GT0xERVJfUEFUSCBGSUxURVJfT1BFUkFORFNfREVMSU1JVEVSIEZJTFRFUl9PUEVSQVRJT05TX0RFTElNSVRFUiBGT1JNQ0FSRF9OQU1FIEZPUk1MSVNUX05BTUUgR0VUX0VYVEVOREVEX0RPQ1VNRU5UX0VYVEVOU0lPTl9DUkVBVElPTl9NT0RFIEdFVF9FWFRFTkRFRF9ET0NVTUVOVF9FWFRFTlNJT05fSU1QT1JUX01PREUgSU5URUdSQVRFRF9SRVBPUlRfVFlQRSBJU19CVUlMREVSX0FQUExJQ0FUSU9OX1JPTEUgSVNfQlVJTERFUl9BUFBMSUNBVElPTl9ST0xFMiBJU19CVUlMREVSX1VTRVJTIElTQlNZU0RFViBMT0dfRk9MREVSX1BBVEggbWJDYW5jZWwgbWJObyBtYk5vVG9BbGwgbWJPSyBtYlllcyBtYlllc1RvQWxsIE1FTU9SWV9EQVRBU0VUX0RFU1JJUFRJT05TX0ZJTEVOQU1FIG1yTm8gbXJOb1RvQWxsIG1yWWVzIG1yWWVzVG9BbGwgTVVMVElQTEVfU0VMRUNUX0RJQUxPR19DT0RFIE5PTk9QRVJBVElOR19SRUNPUkRfRkxBR19GRU1JTklORSBOT05PUEVSQVRJTkdfUkVDT1JEX0ZMQUdfTUFTQ1VMSU5FIE9QRVJBVElOR19SRUNPUkRfRkxBR19GRU1JTklORSBPUEVSQVRJTkdfUkVDT1JEX0ZMQUdfTUFTQ1VMSU5FIFBST0ZJTElOR19TRVRUSU5HU19DT01NT05fU0VUVElOR1NfQ09ERV9WQUxVRSBQUk9HUkFNX0lOSVRJQVRFRF9MT09LVVBfQUNUSU9OIHJhdERlbGV0ZSByYXRFZGl0IHJhdEluc2VydCBSRVBPUlRfVFlQRSBSRVFVSVJFRF9QSUNLX1ZBTFVFU19WQVJJQUJMRSBybUNhcmQgcm1MaXN0IFNCUlRFX1BST0dJRF9ERVYgU0JSVEVfUFJPR0lEX1JFTEVBU0UgU1RBVElDX1JPTEVfVFlQRV9DT0RFIFNVUFBSRVNTX0VNUFRZX1RFTVBMQVRFX0NSRUFUSU9OIFNZU1RFTV9VU0VSX0NPREUgVVBEQVRFX0RJQUxPR19EQVRBU0VUIFVTRURfSU5fT0JKRUNUX0hJTlRfUEFSQU0gVVNFUl9JTklUSUFURURfTE9PS1VQX0FDVElPTiBVU0VSX05BTUVfRk9STUFUIFVTRVJfU0VMRUNUSU9OX1JFU1RSSUNUSU9OUyBXT1JLRkxPV19URVNUX1BST1RPQ09MU19GT0xERVJfUEFUSCBFTFNfU1VCVFlQRV9DT05UUk9MX05BTUUgRUxTX0ZPTERFUl9LSU5EX0NPTlRST0xfTkFNRSBSRVBFQVRfUFJPQ0VTU19DVVJSRU5UX09CSkVDVF9FWENFUFRJT05fTkFNRSAiKyJQUklWSUxFR0VfQ09NUE9ORU5UX0ZVTExfQUNDRVNTIFBSSVZJTEVHRV9ERVZFTE9QTUVOVF9FWFBPUlQgUFJJVklMRUdFX0RFVkVMT1BNRU5UX0lNUE9SVCBQUklWSUxFR0VfRE9DVU1FTlRfREVMRVRFIFBSSVZJTEVHRV9FU0QgUFJJVklMRUdFX0ZPTERFUl9ERUxFVEUgUFJJVklMRUdFX01BTkFHRV9BQ0NFU1NfUklHSFRTIFBSSVZJTEVHRV9NQU5BR0VfUkVQTElDQVRJT04gUFJJVklMRUdFX01BTkFHRV9TRVNTSU9OX1NFUlZFUiBQUklWSUxFR0VfT0JKRUNUX0ZVTExfQUNDRVNTIFBSSVZJTEVHRV9PQkpFQ1RfVklFVyBQUklWSUxFR0VfUkVTRVJWRV9MSUNFTlNFIFBSSVZJTEVHRV9TWVNURU1fQ1VTVE9NSVpFIFBSSVZJTEVHRV9TWVNURU1fREVWRUxPUCBQUklWSUxFR0VfU1lTVEVNX0lOU1RBTEwgUFJJVklMRUdFX1RBU0tfREVMRVRFIFBSSVZJTEVHRV9VU0VSX1BMVUdJTl9TRVRUSU5HU19DVVNUT01JWkUgUFJJVklMRUdFU19QU0VVRE9SRUZFUkVOQ0VfQ09ERSAiKyJBQ0NFU1NfVFlQRVNfUFNFVURPUkVGRVJFTkNFX0NPREUgQUxMX0FWQUlMQUJMRV9DT01QT05FTlRTX1BTRVVET1JFRkVSRU5DRV9DT0RFIEFMTF9BVkFJTEFCTEVfUFJJVklMRUdFU19QU0VVRE9SRUZFUkVOQ0VfQ09ERSBBTExfUkVQTElDQVRFX0NPTVBPTkVOVFNfUFNFVURPUkVGRVJFTkNFX0NPREUgQVZBSUxBQkxFX0RFVkVMT1BFUlNfQ09NUE9ORU5UU19QU0VVRE9SRUZFUkVOQ0VfQ09ERSBDT01QT05FTlRTX1BTRVVET1JFRkVSRU5DRV9DT0RFIEZJTFRSQVRFUl9TRVRUSU5HU19DT05GTElDVFNfUFNFVURPUkVGRVJFTkNFX0NPREUgR1JPVVBTX1BTRVVET1JFRkVSRU5DRV9DT0RFIFJFQ0VJVkVfUFJPVE9DT0xfUFNFVURPUkVGRVJFTkNFX0NPREUgUkVGRVJFTkNFX1JFUVVJU0lURV9QU0VVRE9SRUZFUkVOQ0VfQ09ERSBSRUZFUkVOQ0VfUkVRVUlTSVRFU19QU0VVRE9SRUZFUkVOQ0VfQ09ERSBSRUZUWVBFU19QU0VVRE9SRUZFUkVOQ0VfQ09ERSBSRVBMSUNBVElPTl9TRUFOQ0VTX0RJQVJZX1BTRVVET1JFRkVSRU5DRV9DT0RFIFNFTkRfUFJPVE9DT0xfUFNFVURPUkVGRVJFTkNFX0NPREUgU1VCU1RJVFVURVNfUFNFVURPUkVGRVJFTkNFX0NPREUgU1lTVEVNX1NFVFRJTkdTX1BTRVVET1JFRkVSRU5DRV9DT0RFIFVOSVRTX1BTRVVET1JFRkVSRU5DRV9DT0RFIFVTRVJTX1BTRVVET1JFRkVSRU5DRV9DT0RFIFZJRVdFUlNfUFNFVURPUkVGRVJFTkNFX0NPREUgIisiQ0VSVElGSUNBVEVfVFlQRV9FTkNSWVBUIENFUlRJRklDQVRFX1RZUEVfU0lHTiBDRVJUSUZJQ0FURV9UWVBFX1NJR05fQU5EX0VOQ1JZUFQgIisiU1RPUkFHRV9UWVBFX0ZJTEUgU1RPUkFHRV9UWVBFX05BU19DSUZTIFNUT1JBR0VfVFlQRV9TQVBFUklPTiBTVE9SQUdFX1RZUEVfU1FMX1NFUlZFUiAiKyJDT01QVFlQRTJfUkVRVUlTSVRFX0RPQ1VNRU5UU19WQUxVRSBDT01QVFlQRTJfUkVRVUlTSVRFX1RBU0tTX1ZBTFVFIENPTVBUWVBFMl9SRVFVSVNJVEVfRk9MREVSU19WQUxVRSBDT01QVFlQRTJfUkVRVUlTSVRFX1JFRkVSRU5DRVNfVkFMVUUgIisiU1lTUkVRX0NPREUgU1lTUkVRX0NPTVBUWVBFMiBTWVNSRVFfQ09OU1RfQVZBSUxBQkxFX0ZPUl9XRUIgU1lTUkVRX0NPTlNUX0NPTU1PTl9DT0RFIFNZU1JFUV9DT05TVF9DT01NT05fVkFMVUUgU1lTUkVRX0NPTlNUX0ZJUk1fQ09ERSBTWVNSRVFfQ09OU1RfRklSTV9TVEFUVVMgU1lTUkVRX0NPTlNUX0ZJUk1fVkFMVUUgU1lTUkVRX0NPTlNUX1NFUlZFUl9TVEFUVVMgU1lTUkVRX0NPTlRFTlRTIFNZU1JFUV9EQVRFX09QRU4gU1lTUkVRX0RBVEVfQ0xPU0UgU1lTUkVRX0RFU0NSSVBUSU9OIFNZU1JFUV9ERVNDUklQVElPTl9MT0NBTElaRV9JRCBTWVNSRVFfRE9VQkxFIFNZU1JFUV9FRE9DX0FDQ0VTU19UWVBFIFNZU1JFUV9FRE9DX0FVVEhPUiBTWVNSRVFfRURPQ19DUkVBVEVEIFNZU1JFUV9FRE9DX0RFTEVHQVRFX1JJR0hUU19SRVFVSVNJVEVfQ09ERSBTWVNSRVFfRURPQ19FRElUT1IgU1lTUkVRX0VET0NfRU5DT0RFX1RZUEUgU1lTUkVRX0VET0NfRU5DUllQVElPTl9QTFVHSU5fTkFNRSBTWVNSRVFfRURPQ19FTkNSWVBUSU9OX1BMVUdJTl9WRVJTSU9OIFNZU1JFUV9FRE9DX0VYUE9SVF9EQVRFIFNZU1JFUV9FRE9DX0VYUE9SVEVSIFNZU1JFUV9FRE9DX0tJTkQgU1lTUkVRX0VET0NfTElGRV9TVEFHRV9OQU1FIFNZU1JFUV9FRE9DX0xPQ0tFRF9GT1JfU0VSVkVSX0NPREUgU1lTUkVRX0VET0NfTU9ESUZJRUQgU1lTUkVRX0VET0NfTkFNRSBTWVNSRVFfRURPQ19OT1RFIFNZU1JFUV9FRE9DX1FVQUxJRklFRF9JRCBTWVNSRVFfRURPQ19TRVNTSU9OX0tFWSBTWVNSRVFfRURPQ19TRVNTSU9OX0tFWV9FTkNSWVBUSU9OX1BMVUdJTl9OQU1FIFNZU1JFUV9FRE9DX1NFU1NJT05fS0VZX0VOQ1JZUFRJT05fUExVR0lOX1ZFUlNJT04gU1lTUkVRX0VET0NfU0lHTkFUVVJFX1RZUEUgU1lTUkVRX0VET0NfU0lHTkVEIFNZU1JFUV9FRE9DX1NUT1JBR0UgU1lTUkVRX0VET0NfU1RPUkFHRVNfQVJDSElWRV9TVE9SQUdFIFNZU1JFUV9FRE9DX1NUT1JBR0VTX0NIRUNLX1JJR0hUUyBTWVNSRVFfRURPQ19TVE9SQUdFU19DT01QVVRFUl9OQU1FIFNZU1JFUV9FRE9DX1NUT1JBR0VTX0VESVRfSU5fU1RPUkFHRSBTWVNSRVFfRURPQ19TVE9SQUdFU19FWEVDVVRJVkVfU1RPUkFHRSBTWVNSRVFfRURPQ19TVE9SQUdFU19GVU5DVElPTiBTWVNSRVFfRURPQ19TVE9SQUdFU19JTklUSUFMSVpFRCBTWVNSRVFfRURPQ19TVE9SQUdFU19MT0NBTF9QQVRIIFNZU1JFUV9FRE9DX1NUT1JBR0VTX1NBUEVSSU9OX0RBVEFCQVNFX05BTUUgU1lTUkVRX0VET0NfU1RPUkFHRVNfU0VBUkNIX0JZX1RFWFQgU1lTUkVRX0VET0NfU1RPUkFHRVNfU0VSVkVSX05BTUUgU1lTUkVRX0VET0NfU1RPUkFHRVNfU0hBUkVEX1NPVVJDRV9OQU1FIFNZU1JFUV9FRE9DX1NUT1JBR0VTX1RZUEUgU1lTUkVRX0VET0NfVEVYVF9NT0RJRklFRCBTWVNSRVFfRURPQ19UWVBFX0FDVF9DT0RFIFNZU1JFUV9FRE9DX1RZUEVfQUNUX0RFU0NSSVBUSU9OIFNZU1JFUV9FRE9DX1RZUEVfQUNUX0RFU0NSSVBUSU9OX0xPQ0FMSVpFX0lEIFNZU1JFUV9FRE9DX1RZUEVfQUNUX09OX0VYRUNVVEUgU1lTUkVRX0VET0NfVFlQRV9BQ1RfT05fRVhFQ1VURV9FWElTVFMgU1lTUkVRX0VET0NfVFlQRV9BQ1RfU0VDVElPTiBTWVNSRVFfRURPQ19UWVBFX0FERF9QQVJBTVMgU1lTUkVRX0VET0NfVFlQRV9DT01NRU5UIFNZU1JFUV9FRE9DX1RZUEVfRVZFTlRfVEVYVCBTWVNSRVFfRURPQ19UWVBFX05BTUVfSU5fU0lOR1VMQVIgU1lTUkVRX0VET0NfVFlQRV9OQU1FX0lOX1NJTkdVTEFSX0xPQ0FMSVpFX0lEIFNZU1JFUV9FRE9DX1RZUEVfTkFNRV9MT0NBTElaRV9JRCBTWVNSRVFfRURPQ19UWVBFX05VTUVSQVRJT05fTUVUSE9EIFNZU1JFUV9FRE9DX1RZUEVfUFNFVURPX1JFUVVJU0lURV9DT0RFIFNZU1JFUV9FRE9DX1RZUEVfUkVRX0NPREUgU1lTUkVRX0VET0NfVFlQRV9SRVFfREVTQ1JJUFRJT04gU1lTUkVRX0VET0NfVFlQRV9SRVFfREVTQ1JJUFRJT05fTE9DQUxJWkVfSUQgU1lTUkVRX0VET0NfVFlQRV9SRVFfSVNfTEVBRElORyBTWVNSRVFfRURPQ19UWVBFX1JFUV9JU19SRVFVSVJFRCBTWVNSRVFfRURPQ19UWVBFX1JFUV9OVU1CRVIgU1lTUkVRX0VET0NfVFlQRV9SRVFfT05fQ0hBTkdFIFNZU1JFUV9FRE9DX1RZUEVfUkVRX09OX0NIQU5HRV9FWElTVFMgU1lTUkVRX0VET0NfVFlQRV9SRVFfT05fU0VMRUNUIFNZU1JFUV9FRE9DX1RZUEVfUkVRX09OX1NFTEVDVF9LSU5EIFNZU1JFUV9FRE9DX1RZUEVfUkVRX1NFQ1RJT04gU1lTUkVRX0VET0NfVFlQRV9WSUVXX0NBUkQgU1lTUkVRX0VET0NfVFlQRV9WSUVXX0NPREUgU1lTUkVRX0VET0NfVFlQRV9WSUVXX0NPTU1FTlQgU1lTUkVRX0VET0NfVFlQRV9WSUVXX0lTX01BSU4gU1lTUkVRX0VET0NfVFlQRV9WSUVXX05BTUUgU1lTUkVRX0VET0NfVFlQRV9WSUVXX05BTUVfTE9DQUxJWkVfSUQgU1lTUkVRX0VET0NfVkVSU0lPTl9BVVRIT1IgU1lTUkVRX0VET0NfVkVSU0lPTl9DUkMgU1lTUkVRX0VET0NfVkVSU0lPTl9EQVRBIFNZU1JFUV9FRE9DX1ZFUlNJT05fRURJVE9SIFNZU1JFUV9FRE9DX1ZFUlNJT05fRVhQT1JUX0RBVEUgU1lTUkVRX0VET0NfVkVSU0lPTl9FWFBPUlRFUiBTWVNSRVFfRURPQ19WRVJTSU9OX0hJRERFTiBTWVNSRVFfRURPQ19WRVJTSU9OX0xJRkVfU1RBR0UgU1lTUkVRX0VET0NfVkVSU0lPTl9NT0RJRklFRCBTWVNSRVFfRURPQ19WRVJTSU9OX05PVEUgU1lTUkVRX0VET0NfVkVSU0lPTl9TSUdOQVRVUkVfVFlQRSBTWVNSRVFfRURPQ19WRVJTSU9OX1NJR05FRCBTWVNSRVFfRURPQ19WRVJTSU9OX1NJWkUgU1lTUkVRX0VET0NfVkVSU0lPTl9TT1VSQ0UgU1lTUkVRX0VET0NfVkVSU0lPTl9URVhUX01PRElGSUVEIFNZU1JFUV9FRE9DS0lORF9ERUZBVUxUX1ZFUlNJT05fU1RBVEVfQ09ERSBTWVNSRVFfRk9MREVSX0tJTkQgU1lTUkVRX0ZVTkNfQ0FURUdPUlkgU1lTUkVRX0ZVTkNfQ09NTUVOVCBTWVNSRVFfRlVOQ19HUk9VUCBTWVNSRVFfRlVOQ19HUk9VUF9DT01NRU5UIFNZU1JFUV9GVU5DX0dST1VQX05VTUJFUiBTWVNSRVFfRlVOQ19IRUxQIFNZU1JFUV9GVU5DX1BBUkFNX0RFRl9WQUxVRSBTWVNSRVFfRlVOQ19QQVJBTV9JREVOVCBTWVNSRVFfRlVOQ19QQVJBTV9OVU1CRVIgU1lTUkVRX0ZVTkNfUEFSQU1fVFlQRSBTWVNSRVFfRlVOQ19URVhUIFNZU1JFUV9HUk9VUF9DQVRFR09SWSBTWVNSRVFfSUQgU1lTUkVRX0xBU1RfVVBEQVRFIFNZU1JFUV9MRUFERVJfUkVGRVJFTkNFIFNZU1JFUV9MSU5FX05VTUJFUiBTWVNSRVFfTUFJTl9SRUNPUkRfSUQgU1lTUkVRX05BTUUgU1lTUkVRX05BTUVfTE9DQUxJWkVfSUQgU1lTUkVRX05PVEUgU1lTUkVRX09SSUdJTkFMX1JFQ09SRCBTWVNSRVFfT1VSX0ZJUk0gU1lTUkVRX1BST0ZJTElOR19TRVRUSU5HU19CQVRDSF9MT0dJTkcgU1lTUkVRX1BST0ZJTElOR19TRVRUSU5HU19CQVRDSF9TSVpFIFNZU1JFUV9QUk9GSUxJTkdfU0VUVElOR1NfUFJPRklMSU5HX0VOQUJMRUQgU1lTUkVRX1BST0ZJTElOR19TRVRUSU5HU19TUUxfUFJPRklMSU5HX0VOQUJMRUQgU1lTUkVRX1BST0ZJTElOR19TRVRUSU5HU19TVEFSVF9MT0dHRUQgU1lTUkVRX1JFQ09SRF9TVEFUVVMgU1lTUkVRX1JFRl9SRVFfRklFTERfTkFNRSBTWVNSRVFfUkVGX1JFUV9GT1JNQVQgU1lTUkVRX1JFRl9SRVFfR0VORVJBVEVEIFNZU1JFUV9SRUZfUkVRX0xFTkdUSCBTWVNSRVFfUkVGX1JFUV9QUkVDSVNJT04gU1lTUkVRX1JFRl9SRVFfUkVGRVJFTkNFIFNZU1JFUV9SRUZfUkVRX1NFQ1RJT04gU1lTUkVRX1JFRl9SRVFfU1RPUkVEIFNZU1JFUV9SRUZfUkVRX1RPS0VOUyBTWVNSRVFfUkVGX1JFUV9UWVBFIFNZU1JFUV9SRUZfUkVRX1ZJRVcgU1lTUkVRX1JFRl9UWVBFX0FDVF9DT0RFIFNZU1JFUV9SRUZfVFlQRV9BQ1RfREVTQ1JJUFRJT04gU1lTUkVRX1JFRl9UWVBFX0FDVF9ERVNDUklQVElPTl9MT0NBTElaRV9JRCBTWVNSRVFfUkVGX1RZUEVfQUNUX09OX0VYRUNVVEUgU1lTUkVRX1JFRl9UWVBFX0FDVF9PTl9FWEVDVVRFX0VYSVNUUyBTWVNSRVFfUkVGX1RZUEVfQUNUX1NFQ1RJT04gU1lTUkVRX1JFRl9UWVBFX0FERF9QQVJBTVMgU1lTUkVRX1JFRl9UWVBFX0NPTU1FTlQgU1lTUkVRX1JFRl9UWVBFX0NPTU1PTl9TRVRUSU5HUyBTWVNSRVFfUkVGX1RZUEVfRElTUExBWV9SRVFVSVNJVEVfTkFNRSBTWVNSRVFfUkVGX1RZUEVfRVZFTlRfVEVYVCBTWVNSRVFfUkVGX1RZUEVfTUFJTl9MRUFESU5HX1JFRiBTWVNSRVFfUkVGX1RZUEVfTkFNRV9JTl9TSU5HVUxBUiBTWVNSRVFfUkVGX1RZUEVfTkFNRV9JTl9TSU5HVUxBUl9MT0NBTElaRV9JRCBTWVNSRVFfUkVGX1RZUEVfTkFNRV9MT0NBTElaRV9JRCBTWVNSRVFfUkVGX1RZUEVfTlVNRVJBVElPTl9NRVRIT0QgU1lTUkVRX1JFRl9UWVBFX1JFUV9DT0RFIFNZU1JFUV9SRUZfVFlQRV9SRVFfREVTQ1JJUFRJT04gU1lTUkVRX1JFRl9UWVBFX1JFUV9ERVNDUklQVElPTl9MT0NBTElaRV9JRCBTWVNSRVFfUkVGX1RZUEVfUkVRX0lTX0NPTlRST0wgU1lTUkVRX1JFRl9UWVBFX1JFUV9JU19GSUxURVIgU1lTUkVRX1JFRl9UWVBFX1JFUV9JU19MRUFESU5HIFNZU1JFUV9SRUZfVFlQRV9SRVFfSVNfUkVRVUlSRUQgU1lTUkVRX1JFRl9UWVBFX1JFUV9OVU1CRVIgU1lTUkVRX1JFRl9UWVBFX1JFUV9PTl9DSEFOR0UgU1lTUkVRX1JFRl9UWVBFX1JFUV9PTl9DSEFOR0VfRVhJU1RTIFNZU1JFUV9SRUZfVFlQRV9SRVFfT05fU0VMRUNUIFNZU1JFUV9SRUZfVFlQRV9SRVFfT05fU0VMRUNUX0tJTkQgU1lTUkVRX1JFRl9UWVBFX1JFUV9TRUNUSU9OIFNZU1JFUV9SRUZfVFlQRV9WSUVXX0NBUkQgU1lTUkVRX1JFRl9UWVBFX1ZJRVdfQ09ERSBTWVNSRVFfUkVGX1RZUEVfVklFV19DT01NRU5UIFNZU1JFUV9SRUZfVFlQRV9WSUVXX0lTX01BSU4gU1lTUkVRX1JFRl9UWVBFX1ZJRVdfTkFNRSBTWVNSRVFfUkVGX1RZUEVfVklFV19OQU1FX0xPQ0FMSVpFX0lEIFNZU1JFUV9SRUZFUkVOQ0VfVFlQRV9JRCBTWVNSRVFfU1RBVEUgU1lTUkVRX1NUQVRcdTA0MTUgU1lTUkVRX1NZU1RFTV9TRVRUSU5HU19WQUxVRSBTWVNSRVFfVFlQRSBTWVNSRVFfVU5JVCBTWVNSRVFfVU5JVF9JRCBTWVNSRVFfVVNFUl9HUk9VUFNfR1JPVVBfRlVMTF9OQU1FIFNZU1JFUV9VU0VSX0dST1VQU19HUk9VUF9OQU1FIFNZU1JFUV9VU0VSX0dST1VQU19HUk9VUF9TRVJWRVJfTkFNRSBTWVNSRVFfVVNFUlNfQUNDRVNTX1JJR0hUUyBTWVNSRVFfVVNFUlNfQVVUSEVOVElDQVRJT04gU1lTUkVRX1VTRVJTX0NBVEVHT1JZIFNZU1JFUV9VU0VSU19DT01QT05FTlQgU1lTUkVRX1VTRVJTX0NPTVBPTkVOVF9VU0VSX0lTX1BVQkxJQyBTWVNSRVFfVVNFUlNfRE9NQUlOIFNZU1JFUV9VU0VSU19GVUxMX1VTRVJfTkFNRSBTWVNSRVFfVVNFUlNfR1JPVVAgU1lTUkVRX1VTRVJTX0lTX01BSU5fU0VSVkVSIFNZU1JFUV9VU0VSU19MT0dJTiBTWVNSRVFfVVNFUlNfUkVGRVJFTkNFX1VTRVJfSVNfUFVCTElDIFNZU1JFUV9VU0VSU19TVEFUVVMgU1lTUkVRX1VTRVJTX1VTRVJfQ0VSVElGSUNBVEUgU1lTUkVRX1VTRVJTX1VTRVJfQ0VSVElGSUNBVEVfSU5GTyBTWVNSRVFfVVNFUlNfVVNFUl9DRVJUSUZJQ0FURV9QTFVHSU5fTkFNRSBTWVNSRVFfVVNFUlNfVVNFUl9DRVJUSUZJQ0FURV9QTFVHSU5fVkVSU0lPTiBTWVNSRVFfVVNFUlNfVVNFUl9DRVJUSUZJQ0FURV9TVEFURSBTWVNSRVFfVVNFUlNfVVNFUl9DRVJUSUZJQ0FURV9TVUJKRUNUX05BTUUgU1lTUkVRX1VTRVJTX1VTRVJfQ0VSVElGSUNBVEVfVEhVTUJQUklOVCBTWVNSRVFfVVNFUlNfVVNFUl9ERUZBVUxUX0NFUlRJRklDQVRFIFNZU1JFUV9VU0VSU19VU0VSX0RFU0NSSVBUSU9OIFNZU1JFUV9VU0VSU19VU0VSX0dMT0JBTF9OQU1FIFNZU1JFUV9VU0VSU19VU0VSX0xPR0lOIFNZU1JFUV9VU0VSU19VU0VSX01BSU5fU0VSVkVSIFNZU1JFUV9VU0VSU19VU0VSX1RZUEUgU1lTUkVRX1dPUktfUlVMRVNfRk9MREVSX0lEICIrIlJFU1VMVF9WQVJfTkFNRSBSRVNVTFRfVkFSX05BTUVfRU5HICIrIkFVVE9fTlVNRVJBVElPTl9SVUxFX0lEIENBTlRfQ0hBTkdFX0lEX1JFUVVJU0lURV9SVUxFX0lEIENBTlRfQ0hBTkdFX09VUkZJUk1fUkVRVUlTSVRFX1JVTEVfSUQgQ0hFQ0tfQ0hBTkdJTkdfUkVGRVJFTkNFX1JFQ09SRF9VU0VfUlVMRV9JRCBDSEVDS19DT0RFX1JFUVVJU0lURV9SVUxFX0lEIENIRUNLX0RFTEVUSU5HX1JFRkVSRU5DRV9SRUNPUkRfVVNFX1JVTEVfSUQgQ0hFQ0tfRklMVFJBVEVSX0NIQU5HRVNfUlVMRV9JRCBDSEVDS19SRUNPUkRfSU5URVJWQUxfUlVMRV9JRCBDSEVDS19SRUZFUkVOQ0VfSU5URVJWQUxfUlVMRV9JRCBDSEVDS19SRVFVSVJFRF9EQVRBX0ZVTExORVNTX1JVTEVfSUQgQ0hFQ0tfUkVRVUlSRURfUkVRVUlTSVRFU19GVUxMTkVTU19SVUxFX0lEIE1BS0VfUkVDT1JEX1VOUkFUSUZJRURfUlVMRV9JRCBSRVNUT1JFX0FVVE9fTlVNRVJBVElPTl9SVUxFX0lEIFNFVF9GSVJNX0NPTlRFWFRfRlJPTV9SRUNPUkRfUlVMRV9JRCBTRVRfRklSU1RfUkVDT1JEX0lOX0xJU1RfRk9STV9SVUxFX0lEIFNFVF9JRFNQU19WQUxVRV9SVUxFX0lEIFNFVF9ORVhUX0NPREVfVkFMVUVfUlVMRV9JRCBTRVRfT1VSRklSTV9CT1VORFNfUlVMRV9JRCBTRVRfT1VSRklSTV9SRVFVSVNJVEVfUlVMRV9JRCAiKyJTQ1JJUFRfQkxPQ0tfQUZURVJfRklOSVNIX0VWRU5UIFNDUklQVF9CTE9DS19CRUZPUkVfU1RBUlRfRVZFTlQgU0NSSVBUX0JMT0NLX0VYRUNVVElPTl9SRVNVTFRTX1BST1BFUlRZIFNDUklQVF9CTE9DS19OQU1FX1BST1BFUlRZIFNDUklQVF9CTE9DS19TQ1JJUFRfUFJPUEVSVFkgIisiU1VCVEFTS19CTE9DS19BQk9SVF9ERUFETElORV9QUk9QRVJUWSBTVUJUQVNLX0JMT0NLX0FGVEVSX0ZJTklTSF9FVkVOVCBTVUJUQVNLX0JMT0NLX0FTU0lHTl9QQVJBTVNfRVZFTlQgU1VCVEFTS19CTE9DS19BVFRBQ0hNRU5UU19QUk9QRVJUWSBTVUJUQVNLX0JMT0NLX0FUVEFDSE1FTlRTX1JJR0hUU19HUk9VUF9QUk9QRVJUWSBTVUJUQVNLX0JMT0NLX0FUVEFDSE1FTlRTX1JJR0hUU19UWVBFX1BST1BFUlRZIFNVQlRBU0tfQkxPQ0tfQkVGT1JFX1NUQVJUX0VWRU5UIFNVQlRBU0tfQkxPQ0tfQ1JFQVRFRF9UQVNLX1BST1BFUlRZIFNVQlRBU0tfQkxPQ0tfQ1JFQVRJT05fRVZFTlQgU1VCVEFTS19CTE9DS19ERUFETElORV9QUk9QRVJUWSBTVUJUQVNLX0JMT0NLX0lNUE9SVEFOQ0VfUFJPUEVSVFkgU1VCVEFTS19CTE9DS19JTklUSUFUT1JfUFJPUEVSVFkgU1VCVEFTS19CTE9DS19JU19SRUxBVElWRV9BQk9SVF9ERUFETElORV9QUk9QRVJUWSBTVUJUQVNLX0JMT0NLX0lTX1JFTEFUSVZFX0RFQURMSU5FX1BST1BFUlRZIFNVQlRBU0tfQkxPQ0tfSk9CU19UWVBFX1BST1BFUlRZIFNVQlRBU0tfQkxPQ0tfTkFNRV9QUk9QRVJUWSBTVUJUQVNLX0JMT0NLX1BBUkFMTEVMX1JPVVRFX1BST1BFUlRZIFNVQlRBU0tfQkxPQ0tfUEVSRk9STUVSU19QUk9QRVJUWSBTVUJUQVNLX0JMT0NLX1JFTEFUSVZFX0FCT1JUX0RFQURMSU5FX1RZUEVfUFJPUEVSVFkgU1VCVEFTS19CTE9DS19SRUxBVElWRV9ERUFETElORV9UWVBFX1BST1BFUlRZIFNVQlRBU0tfQkxPQ0tfUkVRVUlSRV9TSUdOX1BST1BFUlRZIFNVQlRBU0tfQkxPQ0tfU1RBTkRBUkRfUk9VVEVfUFJPUEVSVFkgU1VCVEFTS19CTE9DS19TVEFSVF9FVkVOVCBTVUJUQVNLX0JMT0NLX1NURVBfQ09OVFJPTF9QUk9QRVJUWSBTVUJUQVNLX0JMT0NLX1NVQkpFQ1RfUFJPUEVSVFkgU1VCVEFTS19CTE9DS19UQVNLX0NPTlRST0xfUFJPUEVSVFkgU1VCVEFTS19CTE9DS19URVhUX1BST1BFUlRZIFNVQlRBU0tfQkxPQ0tfVU5MT0NLX0FUVEFDSE1FTlRTX09OX1NUT1BfUFJPUEVSVFkgU1VCVEFTS19CTE9DS19VU0VfU1RBTkRBUkRfUk9VVEVfUFJPUEVSVFkgU1VCVEFTS19CTE9DS19XQUlUX0ZPUl9UQVNLX0NPTVBMRVRFX1BST1BFUlRZICIrIlNZU0NPTVBfQ09OVFJPTF9KT0JTIFNZU0NPTVBfRk9MREVSUyBTWVNDT01QX0pPQlMgU1lTQ09NUF9OT1RJQ0VTIFNZU0NPTVBfVEFTS1MgIisiU1lTRExHX0NSRUFURV9FRE9DVU1FTlQgU1lTRExHX0NSRUFURV9FRE9DVU1FTlRfVkVSU0lPTiBTWVNETEdfQ1VSUkVOVF9QRVJJT0QgU1lTRExHX0VESVRfRlVOQ1RJT05fSEVMUCBTWVNETEdfRURPQ1VNRU5UX0tJTkRTX0ZPUl9URU1QTEFURSBTWVNETEdfRVhQT1JUX01VTFRJUExFX0VET0NVTUVOVFMgU1lTRExHX0VYUE9SVF9TSU5HTEVfRURPQ1VNRU5UIFNZU0RMR19JTVBPUlRfRURPQ1VNRU5UIFNZU0RMR19NVUxUSVBMRV9TRUxFQ1QgU1lTRExHX1NFVFVQX0FDQ0VTU19SSUdIVFMgU1lTRExHX1NFVFVQX0RFRkFVTFRfUklHSFRTIFNZU0RMR19TRVRVUF9GSUxURVJfQ09ORElUSU9OIFNZU0RMR19TRVRVUF9TSUdOX1JJR0hUUyBTWVNETEdfU0VUVVBfVEFTS19PQlNFUlZFUlMgU1lTRExHX1NFVFVQX1RBU0tfUk9VVEUgU1lTRExHX1NFVFVQX1VTRVJTX0xJU1QgU1lTRExHX1NJR05fRURPQ1VNRU5UIFNZU0RMR19TSUdOX01VTFRJUExFX0VET0NVTUVOVFMgIisiU1lTUkVGX0FDQ0VTU19SSUdIVFNfVFlQRVMgU1lTUkVGX0FETUlOSVNUUkFUSU9OX0hJU1RPUlkgU1lTUkVGX0FMTF9BVkFJTEFCTEVfQ09NUE9ORU5UUyBTWVNSRUZfQUxMX0FWQUlMQUJMRV9QUklWSUxFR0VTIFNZU1JFRl9BTExfUkVQTElDQVRJTkdfQ09NUE9ORU5UUyBTWVNSRUZfQVZBSUxBQkxFX0RFVkVMT1BFUlNfQ09NUE9ORU5UUyBTWVNSRUZfQ0FMRU5EQVJfRVZFTlRTIFNZU1JFRl9DT01QT05FTlRfVE9LRU5fSElTVE9SWSBTWVNSRUZfQ09NUE9ORU5UX1RPS0VOUyBTWVNSRUZfQ09NUE9ORU5UUyBTWVNSRUZfQ09OU1RBTlRTIFNZU1JFRl9EQVRBX1JFQ0VJVkVfUFJPVE9DT0wgU1lTUkVGX0RBVEFfU0VORF9QUk9UT0NPTCBTWVNSRUZfRElBTE9HUyBTWVNSRUZfRElBTE9HU19SRVFVSVNJVEVTIFNZU1JFRl9FRElUT1JTIFNZU1JFRl9FRE9DX0NBUkRTIFNZU1JFRl9FRE9DX1RZUEVTIFNZU1JFRl9FRE9DVU1FTlRfQ0FSRF9SRVFVSVNJVEVTIFNZU1JFRl9FRE9DVU1FTlRfQ0FSRF9UWVBFUyBTWVNSRUZfRURPQ1VNRU5UX0NBUkRfVFlQRVNfUkVGRVJFTkNFIFNZU1JFRl9FRE9DVU1FTlRfQ0FSRFMgU1lTUkVGX0VET0NVTUVOVF9ISVNUT1JZIFNZU1JFRl9FRE9DVU1FTlRfS0lORFMgU1lTUkVGX0VET0NVTUVOVF9SRVFVSVNJVEVTIFNZU1JFRl9FRE9DVU1FTlRfU0lHTkFUVVJFUyBTWVNSRUZfRURPQ1VNRU5UX1RFTVBMQVRFUyBTWVNSRUZfRURPQ1VNRU5UX1RFWFRfU1RPUkFHRVMgU1lTUkVGX0VET0NVTUVOVF9WSUVXUyBTWVNSRUZfRklMVEVSRVJfU0VUVVBfQ09ORkxJQ1RTIFNZU1JFRl9GSUxUUkFURVJfU0VUVElOR19DT05GTElDVFMgU1lTUkVGX0ZPTERFUl9ISVNUT1JZIFNZU1JFRl9GT0xERVJTIFNZU1JFRl9GVU5DVElPTl9HUk9VUFMgU1lTUkVGX0ZVTkNUSU9OX1BBUkFNUyBTWVNSRUZfRlVOQ1RJT05TIFNZU1JFRl9KT0JfSElTVE9SWSBTWVNSRUZfTElOS1MgU1lTUkVGX0xPQ0FMSVpBVElPTl9ESUNUSU9OQVJZIFNZU1JFRl9MT0NBTElaQVRJT05fTEFOR1VBR0VTIFNZU1JFRl9NT0RVTEVTIFNZU1JFRl9QUklWSUxFR0VTIFNZU1JFRl9SRUNPUkRfSElTVE9SWSBTWVNSRUZfUkVGRVJFTkNFX1JFUVVJU0lURVMgU1lTUkVGX1JFRkVSRU5DRV9UWVBFX1ZJRVdTIFNZU1JFRl9SRUZFUkVOQ0VfVFlQRVMgU1lTUkVGX1JFRkVSRU5DRVMgU1lTUkVGX1JFRkVSRU5DRVNfUkVRVUlTSVRFUyBTWVNSRUZfUkVNT1RFX1NFUlZFUlMgU1lTUkVGX1JFUExJQ0FUSU9OX1NFU1NJT05TX0xPRyBTWVNSRUZfUkVQTElDQVRJT05fU0VTU0lPTlNfUFJPVE9DT0wgU1lTUkVGX1JFUE9SVFMgU1lTUkVGX1JPTEVTIFNZU1JFRl9ST1VURV9CTE9DS19HUk9VUFMgU1lTUkVGX1JPVVRFX0JMT0NLUyBTWVNSRUZfU0NSSVBUUyBTWVNSRUZfU0VBUkNIRVMgU1lTUkVGX1NFUlZFUl9FVkVOVFMgU1lTUkVGX1NFUlZFUl9FVkVOVFNfSElTVE9SWSBTWVNSRUZfU1RBTkRBUkRfUk9VVEVfR1JPVVBTIFNZU1JFRl9TVEFOREFSRF9ST1VURVMgU1lTUkVGX1NUQVRVU0VTIFNZU1JFRl9TWVNURU1fU0VUVElOR1MgU1lTUkVGX1RBU0tfSElTVE9SWSBTWVNSRUZfVEFTS19LSU5EX0dST1VQUyBTWVNSRUZfVEFTS19LSU5EUyBTWVNSRUZfVEFTS19SSUdIVFMgU1lTUkVGX1RBU0tfU0lHTkFUVVJFUyBTWVNSRUZfVEFTS1MgU1lTUkVGX1VOSVRTIFNZU1JFRl9VU0VSX0dST1VQUyBTWVNSRUZfVVNFUl9HUk9VUFNfUkVGRVJFTkNFIFNZU1JFRl9VU0VSX1NVQlNUSVRVVElPTiBTWVNSRUZfVVNFUlMgU1lTUkVGX1VTRVJTX1JFRkVSRU5DRSBTWVNSRUZfVklFV0VSUyBTWVNSRUZfV09SS0lOR19USU1FX0NBTEVOREFSUyAiKyJBQ0NFU1NfUklHSFRTX1RBQkxFX05BTUUgRURNU19BQ0NFU1NfVEFCTEVfTkFNRSBFRE9DX1RZUEVTX1RBQkxFX05BTUUgIisiVEVTVF9ERVZfREJfTkFNRSBURVNUX0RFVl9TWVNURU1fQ09ERSBURVNUX0VETVNfREJfTkFNRSBURVNUX0VETVNfTUFJTl9DT0RFIFRFU1RfRURNU19NQUlOX0RCX05BTUUgVEVTVF9FRE1TX1NFQ09ORF9DT0RFIFRFU1RfRURNU19TRUNPTkRfREJfTkFNRSBURVNUX0VETVNfU1lTVEVNX0NPREUgVEVTVF9JU0I1X01BSU5fQ09ERSBURVNUX0lTQjVfU0VDT05EX0NPREUgVEVTVF9TUUxfU0VSVkVSXzIwMDVfTkFNRSBURVNUX1NRTF9TRVJWRVJfTkFNRSAiKyJBVFRFTlRJT05fQ0FQVElPTiBjYnNDb21tYW5kTGlua3MgY2JzRGVmYXVsdCBDT05GSVJNQVRJT05fQ0FQVElPTiBFUlJPUl9DQVBUSU9OIElORk9STUFUSU9OX0NBUFRJT04gbXJDYW5jZWwgbXJPayAiKyJFRE9DX1ZFUlNJT05fQUNUSVZFX1NUQUdFX0NPREUgRURPQ19WRVJTSU9OX0RFU0lHTl9TVEFHRV9DT0RFIEVET0NfVkVSU0lPTl9PQlNPTEVURV9TVEFHRV9DT0RFICIrImNwRGF0YUVuY2lwaGVybWVudEVuYWJsZWQgY3BEaWdpdGFsU2lnbmF0dXJlRW5hYmxlZCBjcElEIGNwSXNzdWVyIGNwUGx1Z2luVmVyc2lvbiBjcFNlcmlhbCBjcFN1YmplY3ROYW1lIGNwU3VialNpbXBsZU5hbWUgY3BWYWxpZEZyb21EYXRlIGNwVmFsaWRUb0RhdGUgIisiSVNCTF9TWU5UQVggTk9fU1lOVEFYIFhNTF9TWU5UQVggIisiV0FJVF9CTE9DS19BRlRFUl9GSU5JU0hfRVZFTlQgV0FJVF9CTE9DS19CRUZPUkVfU1RBUlRfRVZFTlQgV0FJVF9CTE9DS19ERUFETElORV9QUk9QRVJUWSBXQUlUX0JMT0NLX0lTX1JFTEFUSVZFX0RFQURMSU5FX1BST1BFUlRZIFdBSVRfQkxPQ0tfTkFNRV9QUk9QRVJUWSBXQUlUX0JMT0NLX1JFTEFUSVZFX0RFQURMSU5FX1RZUEVfUFJPUEVSVFkgIisiU1lTUkVTX0NPTU1PTiBTWVNSRVNfQ09OU1QgU1lTUkVTX01CRlVOQyBTWVNSRVNfU0JEQVRBIFNZU1JFU19TQkdVSSBTWVNSRVNfU0JJTlRGIFNZU1JFU19TQlJFRkRTQyBTWVNSRVNfU1FMRVJST1JTIFNZU1JFU19TWVNDT01QICIsVHQ9ImF0VXNlciBhdEdyb3VwIGF0Um9sZSAiKyJhZW1FbmFibGVkQWx3YXlzIGFlbURpc2FibGVkQWx3YXlzIGFlbUVuYWJsZWRPbkJyb3dzZSBhZW1FbmFibGVkT25FZGl0IGFlbURpc2FibGVkT25Ccm93c2VFbXB0eSAiKyJhcEJlZ2luIGFwRW5kICIrImFsTGVmdCBhbFJpZ2h0ICIrImFzbU5ldmVyIGFzbU5vQnV0Q3VzdG9taXplIGFzbUFzTGFzdFRpbWUgYXNtWWVzQnV0Q3VzdG9taXplIGFzbUFsd2F5cyAiKyJjaXJDb21tb24gY2lyUmV2b2tlZCAiKyJjdFNpZ25hdHVyZSBjdEVuY29kZSBjdFNpZ25hdHVyZUVuY29kZSAiKyJjbGJVbmNoZWNrZWQgY2xiQ2hlY2tlZCBjbGJHcmF5ZWQgIisiY2VJU0IgY2VBbHdheXMgY2VOZXZlciAiKyJjdERvY3VtZW50IGN0UmVmZXJlbmNlIGN0U2NyaXB0IGN0VW5rbm93biBjdFJlcG9ydCBjdERpYWxvZyBjdEZ1bmN0aW9uIGN0Rm9sZGVyIGN0RURvY3VtZW50IGN0VGFzayBjdEpvYiBjdE5vdGljZSBjdENvbnRyb2xKb2IgIisiY2ZJbnRlcm5hbCBjZkRpc3BsYXkgIisiY2lVbnNwZWNpZmllZCBjaVdyaXRlIGNpUmVhZCAiKyJja0ZvbGRlciBja0VEb2N1bWVudCBja1Rhc2sgY2tKb2IgY2tDb21wb25lbnRUb2tlbiBja0FueSBja1JlZmVyZW5jZSBja1NjcmlwdCBja1JlcG9ydCBja0RpYWxvZyAiKyJjdElTQkxFZGl0b3IgY3RCZXZlbCBjdEJ1dHRvbiBjdENoZWNrTGlzdEJveCBjdENvbWJvQm94IGN0Q29tYm9FZGl0IGN0R3JpZCBjdERCQ2hlY2tCb3ggY3REQkNvbWJvQm94IGN0REJFZGl0IGN0REJFbGxpcHNpcyBjdERCTWVtbyBjdERCTmF2aWdhdG9yIGN0REJSYWRpb0dyb3VwIGN0REJTdGF0dXNMYWJlbCBjdEVkaXQgY3RHcm91cEJveCBjdElucGxhY2VIaW50IGN0TWVtbyBjdFBhbmVsIGN0TGlzdEJveCBjdFJhZGlvQnV0dG9uIGN0UmljaEVkaXQgY3RUYWJTaGVldCBjdFdlYkJyb3dzZXIgY3RJbWFnZSBjdEh5cGVyTGluayBjdExhYmVsIGN0REJNdWx0aUVsbGlwc2lzIGN0UmliYm9uIGN0UmljaFZpZXcgY3RJbm5lclBhbmVsIGN0UGFuZWxHcm91cCBjdEJpdEJ1dHRvbiAiKyJjY3REYXRlIGNjdEludGVnZXIgY2N0TnVtZXJpYyBjY3RQaWNrIGNjdFJlZmVyZW5jZSBjY3RTdHJpbmcgY2N0VGV4dCAiKyJjbHRJbnRlcm5hbCBjbHRQcmltYXJ5IGNsdEdVSSAiKyJkc2VCZWZvcmVPcGVuIGRzZUFmdGVyT3BlbiBkc2VCZWZvcmVDbG9zZSBkc2VBZnRlckNsb3NlIGRzZU9uVmFsaWREZWxldGUgZHNlQmVmb3JlRGVsZXRlIGRzZUFmdGVyRGVsZXRlIGRzZUFmdGVyRGVsZXRlT3V0T2ZUcmFuc2FjdGlvbiBkc2VPbkRlbGV0ZUVycm9yIGRzZUJlZm9yZUluc2VydCBkc2VBZnRlckluc2VydCBkc2VPblZhbGlkVXBkYXRlIGRzZUJlZm9yZVVwZGF0ZSBkc2VPblVwZGF0ZVJhdGlmaWVkUmVjb3JkIGRzZUFmdGVyVXBkYXRlIGRzZUFmdGVyVXBkYXRlT3V0T2ZUcmFuc2FjdGlvbiBkc2VPblVwZGF0ZUVycm9yIGRzZUFmdGVyU2Nyb2xsIGRzZU9uT3BlblJlY29yZCBkc2VPbkNsb3NlUmVjb3JkIGRzZUJlZm9yZUNhbmNlbCBkc2VBZnRlckNhbmNlbCBkc2VPblVwZGF0ZURlYWRsb2NrRXJyb3IgZHNlQmVmb3JlRGV0YWlsVXBkYXRlIGRzZU9uUHJlcGFyZVVwZGF0ZSBkc2VPbkFueVJlcXVpc2l0ZUNoYW5nZSAiKyJkc3NFZGl0IGRzc0luc2VydCBkc3NCcm93c2UgZHNzSW5BY3RpdmUgIisiZGZ0RGF0ZSBkZnRTaG9ydERhdGUgZGZ0RGF0ZVRpbWUgZGZ0VGltZVN0YW1wICIrImRvdERheXMgZG90SG91cnMgZG90TWludXRlcyBkb3RTZWNvbmRzICIrImR0a25kTG9jYWwgZHRrbmRVVEMgIisiYXJOb25lIGFyVmlldyBhckVkaXQgYXJGdWxsICIrImRkYVZpZXcgZGRhRWRpdCAiKyJlbUxvY2sgZW1FZGl0IGVtU2lnbiBlbUV4cG9ydFdpdGhMb2NrIGVtSW1wb3J0V2l0aFVubG9jayBlbUNoYW5nZVZlcnNpb25Ob3RlIGVtT3BlbkZvck1vZGlmeSBlbUNoYW5nZUxpZmVTdGFnZSBlbURlbGV0ZSBlbUNyZWF0ZVZlcnNpb24gZW1JbXBvcnQgZW1VbmxvY2tFeHBvcnRlZFdpdGhMb2NrIGVtU3RhcnQgZW1BYm9ydCBlbVJlSW5pdCBlbU1hcmtBc1JlYWRlZCBlbU1hcmtBc1VucmVhZGVkIGVtUGVyZm9ybSBlbUFjY2VwdCBlbVJlc3VtZSBlbUNoYW5nZVJpZ2h0cyBlbUVkaXRSb3V0ZSBlbUVkaXRPYnNlcnZlciBlbVJlY292ZXJ5RnJvbUxvY2FsQ29weSBlbUNoYW5nZVdvcmtBY2Nlc3NUeXBlIGVtQ2hhbmdlRW5jb2RlVHlwZVRvQ2VydGlmaWNhdGUgZW1DaGFuZ2VFbmNvZGVUeXBlVG9QYXNzd29yZCBlbUNoYW5nZUVuY29kZVR5cGVUb05vbmUgZW1DaGFuZ2VFbmNvZGVUeXBlVG9DZXJ0aWZpY2F0ZVBhc3N3b3JkIGVtQ2hhbmdlU3RhbmRhcmRSb3V0ZSBlbUdldFRleHQgZW1PcGVuRm9yVmlldyBlbU1vdmVUb1N0b3JhZ2UgZW1DcmVhdGVPYmplY3QgZW1DaGFuZ2VWZXJzaW9uSGlkZGVuIGVtRGVsZXRlVmVyc2lvbiBlbUNoYW5nZUxpZmVDeWNsZVN0YWdlIGVtQXBwcm92aW5nU2lnbiBlbUV4cG9ydCBlbUNvbnRpbnVlIGVtTG9ja0Zyb21FZGl0IGVtVW5Mb2NrRm9yRWRpdCBlbUxvY2tGb3JTZXJ2ZXIgZW1VbmxvY2tGcm9tU2VydmVyIGVtRGVsZWdhdGVBY2Nlc3NSaWdodHMgZW1SZUVuY29kZSAiKyJlY290RmlsZSBlY290UHJvY2VzcyAiKyJlYUdldCBlYUNvcHkgZWFDcmVhdGUgZWFDcmVhdGVTdGFuZGFyZFJvdXRlICIrImVkbHRBbGwgZWRsdE5vdGhpbmcgZWRsdFF1ZXJ5ICIrImVzc21UZXh0IGVzc21DYXJkICIrImVzdnRMYXN0IGVzdnRMYXN0QWN0aXZlIGVzdnRTcGVjaWZpZWQgIisiZWRzZkV4ZWN1dGl2ZSBlZHNmQXJjaGl2ZSAiKyJlZHN0U1FMU2VydmVyIGVkc3RGaWxlICIrImVkdnN0Tm9uZSBlZHZzdEVEb2N1bWVudFZlcnNpb25Db3B5IGVkdnN0RmlsZSBlZHZzdFRlbXBsYXRlIGVkdnN0U2Nhbm5lZEZpbGUgIisidnNEZWZhdWx0IHZzRGVzaWduIHZzQWN0aXZlIHZzT2Jzb2xldGUgIisiZXROb25lIGV0Q2VydGlmaWNhdGUgZXRQYXNzd29yZCBldENlcnRpZmljYXRlUGFzc3dvcmQgIisiZWNFeGNlcHRpb24gZWNXYXJuaW5nIGVjSW5mb3JtYXRpb24gIisiZXN0QWxsIGVzdEFwcHJvdmluZ09ubHkgIisiZXZ0TGFzdCBldnRMYXN0QWN0aXZlIGV2dFF1ZXJ5ICIrImZkdFN0cmluZyBmZHROdW1lcmljIGZkdEludGVnZXIgZmR0RGF0ZSBmZHRUZXh0IGZkdFVua25vd24gZmR0V2lkZVN0cmluZyBmZHRMYXJnZUludGVnZXIgIisiZnRJbmJveCBmdE91dGJveCBmdEZhdm9yaXRlcyBmdENvbW1vbkZvbGRlciBmdFVzZXJGb2xkZXIgZnRDb21wb25lbnRzIGZ0UXVpY2tMYXVuY2ggZnRTaG9ydGN1dHMgZnRTZWFyY2ggIisiZ3JoQXV0byBncmhYMSBncmhYMiBncmhYMyAiKyJobHRUZXh0IGhsdFJURiBobHRIVE1MICIrImlmZkJNUCBpZmZKUEVHIGlmZk11bHRpUGFnZVRJRkYgaWZmU2luZ2xlUGFnZVRJRkYgaWZmVElGRiBpZmZQTkcgIisiaW04YkdyYXlzY2FsZSBpbTI0YlJHQiBpbTFiTW9ub2Nocm9tZSAiKyJpdEJNUCBpdEpQRUcgaXRXTUYgaXRQTkcgIisiaWtoSW5mb3JtYXRpb24gaWtoV2FybmluZyBpa2hFcnJvciBpa2hOb0ljb24gIisiaWNVbmtub3duIGljU2NyaXB0IGljRnVuY3Rpb24gaWNJbnRlZ3JhdGVkUmVwb3J0IGljQW5hbHl0aWNSZXBvcnQgaWNEYXRhU2V0RXZlbnRIYW5kbGVyIGljQWN0aW9uSGFuZGxlciBpY0Zvcm1FdmVudEhhbmRsZXIgaWNMb29rVXBFdmVudEhhbmRsZXIgaWNSZXF1aXNpdGVDaGFuZ2VFdmVudEhhbmRsZXIgaWNCZWZvcmVTZWFyY2hFdmVudEhhbmRsZXIgaWNSb2xlQ2FsY3VsYXRpb24gaWNTZWxlY3RSb3V0ZUV2ZW50SGFuZGxlciBpY0Jsb2NrUHJvcGVydHlDYWxjdWxhdGlvbiBpY0Jsb2NrUXVlcnlQYXJhbXNFdmVudEhhbmRsZXIgaWNDaGFuZ2VTZWFyY2hSZXN1bHRFdmVudEhhbmRsZXIgaWNCbG9ja0V2ZW50SGFuZGxlciBpY1N1YlRhc2tJbml0RXZlbnRIYW5kbGVyIGljRURvY0RhdGFTZXRFdmVudEhhbmRsZXIgaWNFRG9jTG9va1VwRXZlbnRIYW5kbGVyIGljRURvY0FjdGlvbkhhbmRsZXIgaWNFRG9jRm9ybUV2ZW50SGFuZGxlciBpY0VEb2NSZXF1aXNpdGVDaGFuZ2VFdmVudEhhbmRsZXIgaWNTdHJ1Y3R1cmVkQ29udmVyc2lvblJ1bGUgaWNTdHJ1Y3R1cmVkQ29udmVyc2lvbkV2ZW50QmVmb3JlIGljU3RydWN0dXJlZENvbnZlcnNpb25FdmVudEFmdGVyIGljV2l6YXJkRXZlbnRIYW5kbGVyIGljV2l6YXJkRmluaXNoRXZlbnRIYW5kbGVyIGljV2l6YXJkU3RlcEV2ZW50SGFuZGxlciBpY1dpemFyZFN0ZXBGaW5pc2hFdmVudEhhbmRsZXIgaWNXaXphcmRBY3Rpb25FbmFibGVFdmVudEhhbmRsZXIgaWNXaXphcmRBY3Rpb25FeGVjdXRlRXZlbnRIYW5kbGVyIGljQ3JlYXRlSm9ic0hhbmRsZXIgaWNDcmVhdGVOb3RpY2VzSGFuZGxlciBpY0JlZm9yZUxvb2tVcEV2ZW50SGFuZGxlciBpY0FmdGVyTG9va1VwRXZlbnRIYW5kbGVyIGljVGFza0Fib3J0RXZlbnRIYW5kbGVyIGljV29ya2Zsb3dCbG9ja0FjdGlvbkhhbmRsZXIgaWNEaWFsb2dEYXRhU2V0RXZlbnRIYW5kbGVyIGljRGlhbG9nQWN0aW9uSGFuZGxlciBpY0RpYWxvZ0xvb2tVcEV2ZW50SGFuZGxlciBpY0RpYWxvZ1JlcXVpc2l0ZUNoYW5nZUV2ZW50SGFuZGxlciBpY0RpYWxvZ0Zvcm1FdmVudEhhbmRsZXIgaWNEaWFsb2dWYWxpZENsb3NlRXZlbnRIYW5kbGVyIGljQmxvY2tGb3JtRXZlbnRIYW5kbGVyIGljVGFza0Zvcm1FdmVudEhhbmRsZXIgaWNSZWZlcmVuY2VNZXRob2QgaWNFRG9jTWV0aG9kIGljRGlhbG9nTWV0aG9kIGljUHJvY2Vzc01lc3NhZ2VIYW5kbGVyICIrImlzU2hvdyBpc0hpZGUgaXNCeVVzZXJTZXR0aW5ncyAiKyJqa0pvYiBqa05vdGljZSBqa0NvbnRyb2xKb2IgIisianRJbm5lciBqdExlZnQganRSaWdodCBqdEZ1bGwganRDcm9zcyAiKyJsYnBBYm92ZSBsYnBCZWxvdyBsYnBMZWZ0IGxicFJpZ2h0ICIrImVsdFBlckNvbm5lY3Rpb24gZWx0UGVyVXNlciAiKyJzZmNVbmRlZmluZWQgc2ZjQmxhY2sgc2ZjR3JlZW4gc2ZjUmVkIHNmY0JsdWUgc2ZjT3JhbmdlIHNmY0xpbGFjICIrInNmc0l0YWxpYyBzZnNTdHJpa2VvdXQgc2ZzTm9ybWFsICIrImxkY3RTdGFuZGFyZFJvdXRlIGxkY3RXaXphcmQgbGRjdFNjcmlwdCBsZGN0RnVuY3Rpb24gbGRjdFJvdXRlQmxvY2sgbGRjdEludGVncmF0ZWRSZXBvcnQgbGRjdEFuYWx5dGljUmVwb3J0IGxkY3RSZWZlcmVuY2VUeXBlIGxkY3RFRG9jdW1lbnRUeXBlIGxkY3REaWFsb2cgbGRjdFNlcnZlckV2ZW50cyAiKyJtcmNydE5vbmUgbXJjcnRVc2VyIG1yY3J0TWF4aW1hbCBtcmNydEN1c3RvbSAiKyJ2dEVxdWFsIHZ0R3JlYXRlck9yRXF1YWwgdnRMZXNzT3JFcXVhbCB2dFJhbmdlICIrInJkWWVzdGVyZGF5IHJkVG9kYXkgcmRUb21vcnJvdyByZFRoaXNXZWVrIHJkVGhpc01vbnRoIHJkVGhpc1llYXIgcmROZXh0TW9udGggcmROZXh0V2VlayByZExhc3RXZWVrIHJkTGFzdE1vbnRoICIrInJkV2luZG93IHJkRmlsZSByZFByaW50ZXIgIisicmR0U3RyaW5nIHJkdE51bWVyaWMgcmR0SW50ZWdlciByZHREYXRlIHJkdFJlZmVyZW5jZSByZHRBY2NvdW50IHJkdFRleHQgcmR0UGljayByZHRVbmtub3duIHJkdExhcmdlSW50ZWdlciByZHREb2N1bWVudCAiKyJyZU9uQ2hhbmdlIHJlT25DaGFuZ2VWYWx1ZXMgIisidHRHbG9iYWwgdHRMb2NhbCB0dFVzZXIgdHRTeXN0ZW0gIisic3NtQnJvd3NlIHNzbVNlbGVjdCBzc21NdWx0aVNlbGVjdCBzc21Ccm93c2VNb2RhbCAiKyJzbVNlbGVjdCBzbUxpa2Ugc21DYXJkICIrInN0Tm9uZSBzdEF1dGhlbnRpY2F0aW5nIHN0QXBwcm92aW5nICIrInNjdFN0cmluZyBzY3RTdHJlYW0gIisic3N0QW5zaVNvcnQgc3N0TmF0dXJhbFNvcnQgIisic3Z0RXF1YWwgc3Z0Q29udGFpbiAiKyJzb2F0U3RyaW5nIHNvYXROdW1lcmljIHNvYXRJbnRlZ2VyIHNvYXREYXRldGltZSBzb2F0UmVmZXJlbmNlUmVjb3JkIHNvYXRUZXh0IHNvYXRQaWNrIHNvYXRCb29sZWFuIHNvYXRFRG9jdW1lbnQgc29hdEFjY291bnQgc29hdEludGVnZXJDb2xsZWN0aW9uIHNvYXROdW1lcmljQ29sbGVjdGlvbiBzb2F0U3RyaW5nQ29sbGVjdGlvbiBzb2F0UGlja0NvbGxlY3Rpb24gc29hdERhdGV0aW1lQ29sbGVjdGlvbiBzb2F0Qm9vbGVhbkNvbGxlY3Rpb24gc29hdFJlZmVyZW5jZVJlY29yZENvbGxlY3Rpb24gc29hdEVEb2N1bWVudENvbGxlY3Rpb24gc29hdEFjY291bnRDb2xsZWN0aW9uIHNvYXRDb250ZW50cyBzb2F0VW5rbm93biAiKyJ0YXJBYm9ydEJ5VXNlciB0YXJBYm9ydEJ5V29ya2Zsb3dFeGNlcHRpb24gIisidHZ0QWxsV29yZHMgdHZ0RXhhY3RQaHJhc2UgdHZ0QW55V29yZCAiKyJ1c05vbmUgdXNDb21wbGV0ZWQgdXNSZWRTcXVhcmUgdXNCbHVlU3F1YXJlIHVzWWVsbG93U3F1YXJlIHVzR3JlZW5TcXVhcmUgdXNPcmFuZ2VTcXVhcmUgdXNQdXJwbGVTcXVhcmUgdXNGb2xsb3dVcCAiKyJ1dFVua25vd24gdXRVc2VyIHV0RGV2ZWxvcGVyIHV0QWRtaW5pc3RyYXRvciB1dFN5c3RlbURldmVsb3BlciB1dERpc2Nvbm5lY3RlZCAiKyJidEFuZCBidERldGFpbEFuZCBidE9yIGJ0Tm90T3IgYnRPbmx5ICIrInZtVmlldyB2bVNlbGVjdCB2bU5hdmlnYXRpb24gIisidnNtU2luZ2xlIHZzbU11bHRpcGxlIHZzbU11bHRpcGxlQ2hlY2sgdnNtTm9TZWxlY3Rpb24gIisid2ZhdFByZXZpb3VzIHdmYXROZXh0IHdmYXRDYW5jZWwgd2ZhdEZpbmlzaCAiKyJ3ZmVwVW5kZWZpbmVkIHdmZXBUZXh0MyB3ZmVwVGV4dDYgd2ZlcFRleHQ5IHdmZXBTcGluRWRpdCB3ZmVwRHJvcERvd24gd2ZlcFJhZGlvR3JvdXAgd2ZlcEZsYWcgd2ZlcFRleHQxMiB3ZmVwVGV4dDE1IHdmZXBUZXh0MTggd2ZlcFRleHQyMSB3ZmVwVGV4dDI0IHdmZXBUZXh0Mjcgd2ZlcFRleHQzMCB3ZmVwUmFkaW9Hcm91cENvbHVtbjEgd2ZlcFJhZGlvR3JvdXBDb2x1bW4yIHdmZXBSYWRpb0dyb3VwQ29sdW1uMyAiKyJ3ZmV0UXVlcnlQYXJhbWV0ZXIgd2ZldFRleHQgd2ZldERlbGltaXRlciB3ZmV0TGFiZWwgIisid3B0U3RyaW5nIHdwdEludGVnZXIgd3B0TnVtZXJpYyB3cHRCb29sZWFuIHdwdERhdGVUaW1lIHdwdFBpY2sgd3B0VGV4dCB3cHRVc2VyIHdwdFVzZXJMaXN0IHdwdEVEb2N1bWVudEluZm8gd3B0RURvY3VtZW50SW5mb0xpc3Qgd3B0UmVmZXJlbmNlUmVjb3JkSW5mbyB3cHRSZWZlcmVuY2VSZWNvcmRJbmZvTGlzdCB3cHRGb2xkZXJJbmZvIHdwdFRhc2tJbmZvIHdwdENvbnRlbnRzIHdwdEZpbGVOYW1lIHdwdERhdGUgIisid3NyQ29tcGxldGUgd3NyR29OZXh0IHdzckdvUHJldmlvdXMgd3NyQ3VzdG9tIHdzckNhbmNlbCB3c3JHb0ZpbmFsICIrIndzdEZvcm0gd3N0RURvY3VtZW50IHdzdFRhc2tDYXJkIHdzdFJlZmVyZW5jZVJlY29yZENhcmQgd3N0RmluYWwgIisid2FBbGwgd2FQZXJmb3JtZXJzIHdhTWFudWFsICIrIndzYlN0YXJ0IHdzYkZpbmlzaCB3c2JOb3RpY2Ugd3NiU3RlcCB3c2JEZWNpc2lvbiB3c2JXYWl0IHdzYk1vbml0b3Igd3NiU2NyaXB0IHdzYkNvbm5lY3RvciB3c2JTdWJUYXNrIHdzYkxpZmVDeWNsZVN0YWdlIHdzYlBhdXNlICIrIndkdEludGVnZXIgd2R0RmxvYXQgd2R0U3RyaW5nIHdkdFBpY2sgd2R0RGF0ZVRpbWUgd2R0Qm9vbGVhbiB3ZHRUYXNrIHdkdEpvYiB3ZHRGb2xkZXIgd2R0RURvY3VtZW50IHdkdFJlZmVyZW5jZVJlY29yZCB3ZHRVc2VyIHdkdEdyb3VwIHdkdFJvbGUgd2R0SW50ZWdlckNvbGxlY3Rpb24gd2R0RmxvYXRDb2xsZWN0aW9uIHdkdFN0cmluZ0NvbGxlY3Rpb24gd2R0UGlja0NvbGxlY3Rpb24gd2R0RGF0ZVRpbWVDb2xsZWN0aW9uIHdkdEJvb2xlYW5Db2xsZWN0aW9uIHdkdFRhc2tDb2xsZWN0aW9uIHdkdEpvYkNvbGxlY3Rpb24gd2R0Rm9sZGVyQ29sbGVjdGlvbiB3ZHRFRG9jdW1lbnRDb2xsZWN0aW9uIHdkdFJlZmVyZW5jZVJlY29yZENvbGxlY3Rpb24gd2R0VXNlckNvbGxlY3Rpb24gd2R0R3JvdXBDb2xsZWN0aW9uIHdkdFJvbGVDb2xsZWN0aW9uIHdkdENvbnRlbnRzIHdkdFVzZXJMaXN0IHdkdFNlYXJjaERlc2NyaXB0aW9uIHdkdERlYWRMaW5lIHdkdFBpY2tTZXQgd2R0QWNjb3VudENvbGxlY3Rpb24gIisid2lMb3cgd2lOb3JtYWwgd2lIaWdoICIrIndydFNvZnQgd3J0SGFyZCAiKyJ3c0luaXQgd3NSdW5uaW5nIHdzRG9uZSB3c0NvbnRyb2xsZWQgd3NBYm9ydGVkIHdzQ29udGludWVkICIrInd0bUZ1bGwgd3RtRnJvbUN1cnJlbnQgd3RtT25seUN1cnJlbnQgIixKZT0iQWRkU3ViU3RyaW5nIEFkanVzdExpbmVCcmVha3MgQW1vdW50SW5Xb3JkcyBBbmFseXNpcyBBcnJheURpbUNvdW50IEFycmF5SGlnaEJvdW5kIEFycmF5TG93Qm91bmQgQXJyYXlPZiBBcnJheVJlRGltIEFzc2VydCBBc3NpZ25lZCBCZWdpbk9mTW9udGggQmVnaW5PZlBlcmlvZCBCdWlsZFByb2ZpbGluZ09wZXJhdGlvbkFuYWx5c2lzIENhbGxQcm9jZWR1cmUgQ2FuUmVhZEZpbGUgQ0FycmF5RWxlbWVudCBDRGF0YVNldFJlcXVpc2l0ZSBDaGFuZ2VEYXRlIENoYW5nZVJlZmVyZW5jZURhdGFzZXQgQ2hhciBDaGFyUG9zIENoZWNrUGFyYW0gQ2hlY2tQYXJhbVZhbHVlIENvbXBhcmVTdHJpbmdzIENvbnN0YW50RXhpc3RzIENvbnRyb2xTdGF0ZSBDb252ZXJ0RGF0ZVN0ciBDb3B5IENvcHlGaWxlIENyZWF0ZUFycmF5IENyZWF0ZUNhY2hlZFJlZmVyZW5jZSBDcmVhdGVDb25uZWN0aW9uIENyZWF0ZURpYWxvZyBDcmVhdGVEdWFsTGlzdERpYWxvZyBDcmVhdGVFZGl0b3IgQ3JlYXRlRXhjZXB0aW9uIENyZWF0ZUZpbGUgQ3JlYXRlRm9sZGVyRGlhbG9nIENyZWF0ZUlucHV0RGlhbG9nIENyZWF0ZUxpbmtGaWxlIENyZWF0ZUxpc3QgQ3JlYXRlTG9jayBDcmVhdGVNZW1vcnlEYXRhU2V0IENyZWF0ZU9iamVjdCBDcmVhdGVPcGVuRGlhbG9nIENyZWF0ZVByb2dyZXNzIENyZWF0ZVF1ZXJ5IENyZWF0ZVJlZmVyZW5jZSBDcmVhdGVSZXBvcnQgQ3JlYXRlU2F2ZURpYWxvZyBDcmVhdGVTY3JpcHQgQ3JlYXRlU1FMUGl2b3RGdW5jdGlvbiBDcmVhdGVTdHJpbmdMaXN0IENyZWF0ZVRyZWVMaXN0U2VsZWN0RGlhbG9nIENTZWxlY3RTUUwgQ1NRTCBDU3ViU3RyaW5nIEN1cnJlbnRVc2VySUQgQ3VycmVudFVzZXJOYW1lIEN1cnJlbnRWZXJzaW9uIERhdGFTZXRMb2NhdGVFeCBEYXRlRGlmZiBEYXRlVGltZURpZmYgRGF0ZVRvU3RyIERheU9mV2VlayBEZWxldGVGaWxlIERpcmVjdG9yeUV4aXN0cyBEaXNhYmxlQ2hlY2tBY2Nlc3NSaWdodHMgRGlzYWJsZUNoZWNrRnVsbFNob3dpbmdSZXN0cmljdGlvbiBEaXNhYmxlTWFzc1Rhc2tTZW5kaW5nUmVzdHJpY3Rpb25zIERyb3BUYWJsZSBEdXBlU3RyaW5nIEVkaXRUZXh0IEVuYWJsZUNoZWNrQWNjZXNzUmlnaHRzIEVuYWJsZUNoZWNrRnVsbFNob3dpbmdSZXN0cmljdGlvbiBFbmFibGVNYXNzVGFza1NlbmRpbmdSZXN0cmljdGlvbnMgRW5kT2ZNb250aCBFbmRPZlBlcmlvZCBFeGNlcHRpb25FeGlzdHMgRXhjZXB0aW9uc09mZiBFeGNlcHRpb25zT24gRXhlY3V0ZSBFeGVjdXRlUHJvY2VzcyBFeGl0IEV4cGFuZEVudmlyb25tZW50VmFyaWFibGVzIEV4dHJhY3RGaWxlRHJpdmUgRXh0cmFjdEZpbGVFeHQgRXh0cmFjdEZpbGVOYW1lIEV4dHJhY3RGaWxlUGF0aCBFeHRyYWN0UGFyYW1zIEZpbGVFeGlzdHMgRmlsZVNpemUgRmluZEZpbGUgRmluZFN1YlN0cmluZyBGaXJtQ29udGV4dCBGb3JjZURpcmVjdG9yaWVzIEZvcm1hdCBGb3JtYXREYXRlIEZvcm1hdE51bWVyaWMgRm9ybWF0U1FMRGF0ZSBGb3JtYXRTdHJpbmcgRnJlZUV4Y2VwdGlvbiBHZXRDb21wb25lbnQgR2V0Q29tcG9uZW50TGF1bmNoUGFyYW0gR2V0Q29uc3RhbnQgR2V0TGFzdEV4Y2VwdGlvbiBHZXRSZWZlcmVuY2VSZWNvcmQgR2V0UmVmVHlwZUJ5UmVmSUQgR2V0VGFibGVJRCBHZXRUZW1wRm9sZGVyIElmVGhlbiBJbiBJbmRleE9mIElucHV0RGlhbG9nIElucHV0RGlhbG9nRXggSW50ZXJhY3RpdmVNb2RlIElzRmlsZUxvY2tlZCBJc0dyYXBoaWNGaWxlIElzTnVtZXJpYyBMZW5ndGggTG9hZFN0cmluZyBMb2FkU3RyaW5nRm10IExvY2FsVGltZVRvVVRDIExvd2VyQ2FzZSBNYXggTWVzc2FnZUJveCBNZXNzYWdlQm94RXggTWltZURlY29kZUJpbmFyeSBNaW1lRGVjb2RlU3RyaW5nIE1pbWVFbmNvZGVCaW5hcnkgTWltZUVuY29kZVN0cmluZyBNaW4gTW9uZXlJbldvcmRzIE1vdmVGaWxlIE5ld0lEIE5vdyBPcGVuRmlsZSBPcmQgUHJlY2lzaW9uIFJhaXNlIFJlYWRDZXJ0aWZpY2F0ZUZyb21GaWxlIFJlYWRGaWxlIFJlZmVyZW5jZUNvZGVCeUlEIFJlZmVyZW5jZU51bWJlciBSZWZlcmVuY2VSZXF1aXNpdGVNb2RlIFJlZmVyZW5jZVJlcXVpc2l0ZVZhbHVlIFJlZ2lvbkRhdGVTZXR0aW5ncyBSZWdpb25OdW1iZXJTZXR0aW5ncyBSZWdpb25UaW1lU2V0dGluZ3MgUmVnUmVhZCBSZWdXcml0ZSBSZW5hbWVGaWxlIFJlcGxhY2UgUm91bmQgU2VsZWN0U2VydmVyQ29kZSBTZWxlY3RTUUwgU2VydmVyRGF0ZVRpbWUgU2V0Q29uc3RhbnQgU2V0TWFuYWdlZEZvbGRlckZpZWxkc1N0YXRlIFNob3dDb25zdGFudHNJbnB1dERpYWxvZyBTaG93TWVzc2FnZSBTbGVlcCBTcGxpdCBTUUwgU1FMMlhMU1RBQiBTUUxQcm9maWxpbmdTZW5kUmVwb3J0IFN0clRvRGF0ZSBTdWJTdHJpbmcgU3ViU3RyaW5nQ291bnQgU3lzdGVtU2V0dGluZyBUaW1lIFRpbWVEaWZmIFRvZGF5IFRyYW5zbGl0ZXJhdGUgVHJpbSBVcHBlckNhc2UgVXNlclN0YXR1cyBVVENUb0xvY2FsVGltZSBWYWxpZGF0ZVhNTCBWYXJJc0NsZWFyIFZhcklzRW1wdHkgVmFySXNOdWxsIFdvcmtUaW1lRGlmZiBXcml0ZUZpbGUgV3JpdGVGaWxlRXggV3JpdGVPYmplY3RIaXN0b3J5IFx1MDQxMFx1MDQzRFx1MDQzMFx1MDQzQlx1MDQzOFx1MDQzNyBcdTA0MTFcdTA0MzBcdTA0MzdcdTA0MzBcdTA0MTRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDExXHUwNDNCXHUwNDNFXHUwNDNBXHUwNDE1XHUwNDQxXHUwNDQyXHUwNDRDIFx1MDQxMVx1MDQzQlx1MDQzRVx1MDQzQVx1MDQxNVx1MDQ0MVx1MDQ0Mlx1MDQ0Q1x1MDQyMFx1MDQzMFx1MDQ0MVx1MDQ0OCBcdTA0MTFcdTA0M0JcdTA0M0VcdTA0M0FcdTA0MThcdTA0M0RcdTA0NDRcdTA0M0UgXHUwNDExXHUwNDNCXHUwNDNFXHUwNDNBXHUwNDIxXHUwNDNEXHUwNDRGXHUwNDQyXHUwNDRDIFx1MDQxMVx1MDQzQlx1MDQzRVx1MDQzQVx1MDQyMVx1MDQzRFx1MDQ0Rlx1MDQ0Mlx1MDQ0Q1x1MDQyMFx1MDQzMFx1MDQ0MVx1MDQ0OCBcdTA0MTFcdTA0M0JcdTA0M0VcdTA0M0FcdTA0MjNcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0M0VcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NEMgXHUwNDEyXHUwNDMyXHUwNDNFXHUwNDM0IFx1MDQxMlx1MDQzMlx1MDQzRVx1MDQzNFx1MDQxQ1x1MDQzNVx1MDQzRFx1MDQ0RSBcdTA0MTJcdTA0MzVcdTA0MzRcdTA0MjEgXHUwNDEyXHUwNDM1XHUwNDM0XHUwNDIxXHUwNDNGXHUwNDQwIFx1MDQxMlx1MDQzNVx1MDQ0MFx1MDQ0NVx1MDQzRFx1MDQ0Rlx1MDQ0Rlx1MDQxM1x1MDQ0MFx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0Nlx1MDQzMFx1MDQxQ1x1MDQzMFx1MDQ0MVx1MDQ0MVx1MDQzOFx1MDQzMlx1MDQzMCBcdTA0MTJcdTA0M0RcdTA0MzVcdTA0NDhcdTA0MUZcdTA0NDBcdTA0M0VcdTA0MzNcdTA0NDAgXHUwNDEyXHUwNDNFXHUwNDQxXHUwNDQxXHUwNDQyIFx1MDQxMlx1MDQ0MFx1MDQzNVx1MDQzQ1x1MDQzNVx1MDQzRFx1MDQzRFx1MDQzMFx1MDQ0Rlx1MDQxRlx1MDQzMFx1MDQzRlx1MDQzQVx1MDQzMCBcdTA0MTJcdTA0NDBcdTA0MzVcdTA0M0NcdTA0NEYgXHUwNDEyXHUwNDRCXHUwNDMxXHUwNDNFXHUwNDQwU1FMIFx1MDQxMlx1MDQ0Qlx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQxN1x1MDQzMFx1MDQzRlx1MDQzOFx1MDQ0MVx1MDQ0QyBcdTA0MTJcdTA0NEJcdTA0MzRcdTA0MzVcdTA0M0JcdTA0MzhcdTA0NDJcdTA0NENcdTA0MjFcdTA0NDJcdTA0NDAgXHUwNDEyXHUwNDRCXHUwNDM3XHUwNDMyXHUwNDMwXHUwNDQyXHUwNDRDIFx1MDQxMlx1MDQ0Qlx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRFx1MDQzOFx1MDQ0Mlx1MDQ0QyBcdTA0MTJcdTA0NEJcdTA0M0ZcdTA0MUZcdTA0NDBcdTA0M0VcdTA0MzNcdTA0NDAgXHUwNDEzXHUwNDQwXHUwNDMwXHUwNDQ0XHUwNDM4XHUwNDQ3XHUwNDM1XHUwNDQxXHUwNDNBXHUwNDM4XHUwNDM5XHUwNDI0XHUwNDMwXHUwNDM5XHUwNDNCIFx1MDQxM1x1MDQ0MFx1MDQ0M1x1MDQzRlx1MDQzRlx1MDQzMFx1MDQxNFx1MDQzRVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRFx1MDQzOFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQzRSBcdTA0MTRcdTA0MzBcdTA0NDJcdTA0MzBcdTA0MTJcdTA0NDBcdTA0MzVcdTA0M0NcdTA0NEZcdTA0MjFcdTA0MzVcdTA0NDBcdTA0MzIgXHUwNDE0XHUwNDM1XHUwNDNEXHUwNDRDXHUwNDFEXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM4IFx1MDQxNFx1MDQzOFx1MDQzMFx1MDQzQlx1MDQzRVx1MDQzM1x1MDQxNFx1MDQzMFx1MDQxRFx1MDQzNVx1MDQ0MiBcdTA0MTRcdTA0M0JcdTA0MzhcdTA0M0RcdTA0MzBcdTA0MjFcdTA0NDJcdTA0NDAgXHUwNDE0XHUwNDNFXHUwNDMxXHUwNDFGXHUwNDNFXHUwNDM0XHUwNDQxXHUwNDQyXHUwNDQwIFx1MDQxNVx1MDQxRlx1MDQ0M1x1MDQ0MVx1MDQ0Mlx1MDQzRSBcdTA0MTVcdTA0NDFcdTA0M0JcdTA0MzhcdTA0MjJcdTA0M0UgXHUwNDE1XHUwNDI3XHUwNDM4XHUwNDQxXHUwNDNCXHUwNDNFIFx1MDQxN1x1MDQzMFx1MDQzQ1x1MDQxRlx1MDQzRVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQ0MCBcdTA0MTdcdTA0MzBcdTA0M0ZcdTA0MzhcdTA0NDFcdTA0NENcdTA0MjFcdTA0M0ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M0VcdTA0NDdcdTA0M0RcdTA0MzhcdTA0M0FcdTA0MzAgXHUwNDE3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDFGXHUwNDNFXHUwNDNCXHUwNDRGXHUwNDIxXHUwNDNGXHUwNDQwIFx1MDQxOFx1MDQxNFx1MDQyMlx1MDQzOFx1MDQzRlx1MDQyMVx1MDQzRlx1MDQ0MCBcdTA0MThcdTA0MzdcdTA0MzJcdTA0M0JcdTA0MzVcdTA0NDdcdTA0NENcdTA0MTRcdTA0MzhcdTA0NDFcdTA0M0EgXHUwNDE4XHUwNDM3XHUwNDMyXHUwNDNCXHUwNDM1XHUwNDQ3XHUwNDRDXHUwNDE4XHUwNDNDXHUwNDRGXHUwNDI0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDMwIFx1MDQxOFx1MDQzN1x1MDQzMlx1MDQzQlx1MDQzNVx1MDQ0N1x1MDQ0Q1x1MDQxRlx1MDQ0M1x1MDQ0Mlx1MDQ0QyBcdTA0MThcdTA0MzdcdTA0MzJcdTA0M0JcdTA0MzVcdTA0NDdcdTA0NENcdTA0MjBcdTA0MzBcdTA0NDFcdTA0NDhcdTA0MzhcdTA0NDBcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzUgXHUwNDE4XHUwNDM3XHUwNDNDXHUwNDE0XHUwNDMwXHUwNDQyIFx1MDQxOFx1MDQzN1x1MDQzQ1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQyMFx1MDQzMFx1MDQzN1x1MDQzQ1x1MDQzNVx1MDQ0MFx1MDQxQ1x1MDQzMFx1MDQ0MVx1MDQ0MVx1MDQzOFx1MDQzMlx1MDQzMCBcdTA0MThcdTA0MzdcdTA0M0NcdTA0MzVcdTA0NDBcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzlcdTA0MUNcdTA0MzBcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzJcdTA0MzAgXHUwNDE4XHUwNDNDXHUwNDRGXHUwNDFFXHUwNDQwXHUwNDMzIFx1MDQxOFx1MDQzQ1x1MDQ0Rlx1MDQxRlx1MDQzRVx1MDQzQlx1MDQ0Rlx1MDQyMVx1MDQzRlx1MDQ0MCBcdTA0MThcdTA0M0RcdTA0MzRcdTA0MzVcdTA0M0FcdTA0NDEgXHUwNDE4XHUwNDNEXHUwNDM0XHUwNDM4XHUwNDNBXHUwNDMwXHUwNDQyXHUwNDNFXHUwNDQwXHUwNDE3XHUwNDMwXHUwNDNBXHUwNDQwXHUwNDRCXHUwNDQyXHUwNDRDIFx1MDQxOFx1MDQzRFx1MDQzNFx1MDQzOFx1MDQzQVx1MDQzMFx1MDQ0Mlx1MDQzRVx1MDQ0MFx1MDQxRVx1MDQ0Mlx1MDQzQVx1MDQ0MFx1MDQ0Qlx1MDQ0Mlx1MDQ0QyBcdTA0MThcdTA0M0RcdTA0MzRcdTA0MzhcdTA0M0FcdTA0MzBcdTA0NDJcdTA0M0VcdTA0NDBcdTA0MjhcdTA0MzBcdTA0MzMgXHUwNDE4XHUwNDNEXHUwNDQyXHUwNDM1XHUwNDQwXHUwNDMwXHUwNDNBXHUwNDQyXHUwNDM4XHUwNDMyXHUwNDNEXHUwNDRCXHUwNDM5XHUwNDIwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDIFx1MDQxOFx1MDQ0Mlx1MDQzRVx1MDQzM1x1MDQyMlx1MDQzMVx1MDQzQlx1MDQyMVx1MDQzRlx1MDQ0MCBcdTA0MUFcdTA0M0VcdTA0MzRcdTA0MTJcdTA0MzhcdTA0MzRcdTA0MTJcdTA0MzVcdTA0MzRcdTA0MjFcdTA0M0ZcdTA0NDAgXHUwNDFBXHUwNDNFXHUwNDM0XHUwNDEyXHUwNDM4XHUwNDM0XHUwNDIxXHUwNDNGXHUwNDQwXHUwNDFGXHUwNDNFXHUwNDE4XHUwNDE0IFx1MDQxQVx1MDQzRVx1MDQzNFx1MDQxRlx1MDQzRUFuYWxpdCBcdTA0MUFcdTA0M0VcdTA0MzRcdTA0MjFcdTA0MzhcdTA0M0NcdTA0MzJcdTA0M0VcdTA0M0JcdTA0MzAgXHUwNDFBXHUwNDNFXHUwNDM0XHUwNDIxXHUwNDNGXHUwNDQwIFx1MDQxQVx1MDQzRVx1MDQzQlx1MDQxRlx1MDQzRVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQ0MCBcdTA0MUFcdTA0M0VcdTA0M0JcdTA0MUZcdTA0NDBcdTA0M0VcdTA0M0YgXHUwNDFBXHUwNDNFXHUwNDNEXHUwNDFDXHUwNDM1XHUwNDQxIFx1MDQxQVx1MDQzRVx1MDQzRFx1MDQ0MVx1MDQ0MiBcdTA0MUFcdTA0M0VcdTA0M0RcdTA0NDFcdTA0NDJcdTA0MTVcdTA0NDFcdTA0NDJcdTA0NEMgXHUwNDFBXHUwNDNFXHUwNDNEXHUwNDQxXHUwNDQyXHUwNDE3XHUwNDNEXHUwNDMwXHUwNDQ3IFx1MDQxQVx1MDQzRVx1MDQzRFx1MDQyMlx1MDQ0MFx1MDQzMFx1MDQzRCBcdTA0MUFcdTA0M0VcdTA0M0ZcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0NENcdTA0MjRcdTA0MzBcdTA0MzlcdTA0M0IgXHUwNDFBXHUwNDNFXHUwNDNGXHUwNDM4XHUwNDRGXHUwNDIxXHUwNDQyXHUwNDQwIFx1MDQxQVx1MDQxRlx1MDQzNVx1MDQ0MFx1MDQzOFx1MDQzRVx1MDQzNCBcdTA0MUFcdTA0MjFcdTA0NDJcdTA0NDBcdTA0MjJcdTA0MzFcdTA0M0JcdTA0MjFcdTA0M0ZcdTA0NDAgXHUwNDFDXHUwNDMwXHUwNDNBXHUwNDQxIFx1MDQxQ1x1MDQzMFx1MDQzQVx1MDQ0MVx1MDQyMVx1MDQ0Mlx1MDQ0MFx1MDQyMlx1MDQzMVx1MDQzQlx1MDQyMVx1MDQzRlx1MDQ0MCBcdTA0MUNcdTA0MzBcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzIgXHUwNDFDXHUwNDM1XHUwNDNEXHUwNDRFIFx1MDQxQ1x1MDQzNVx1MDQzRFx1MDQ0RVx1MDQyMFx1MDQzMFx1MDQ0MVx1MDQ0OCBcdTA0MUNcdTA0MzhcdTA0M0QgXHUwNDFEXHUwNDMwXHUwNDMxXHUwNDNFXHUwNDQwXHUwNDE0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDFEXHUwNDMwXHUwNDM5XHUwNDQyXHUwNDM4XHUwNDIwXHUwNDMwXHUwNDQxXHUwNDQ4IFx1MDQxRFx1MDQzMFx1MDQzOFx1MDQzQ1x1MDQxMlx1MDQzOFx1MDQzNFx1MDQyMVx1MDQzRlx1MDQ0MCBcdTA0MURcdTA0MzBcdTA0MzhcdTA0M0NcdTA0MUZcdTA0M0VBbmFsaXQgXHUwNDFEXHUwNDMwXHUwNDM4XHUwNDNDXHUwNDIxXHUwNDNGXHUwNDQwIFx1MDQxRFx1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQxRlx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzMlx1MDQzRVx1MDQzNFx1MDQ0Qlx1MDQyMVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzQSBcdTA0MURcdTA0MzBcdTA0NDdcdTA0MUNcdTA0MzVcdTA0NDEgXHUwNDFEXHUwNDMwXHUwNDQ3XHUwNDIyXHUwNDQwXHUwNDMwXHUwNDNEIFx1MDQxRFx1MDQzOFx1MDQzNlx1MDQzRFx1MDQ0Rlx1MDQ0Rlx1MDQxM1x1MDQ0MFx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0Nlx1MDQzMFx1MDQxQ1x1MDQzMFx1MDQ0MVx1MDQ0MVx1MDQzOFx1MDQzMlx1MDQzMCBcdTA0MURcdTA0M0VcdTA0M0NcdTA0MzVcdTA0NDBcdTA0MjFcdTA0M0ZcdTA0NDAgXHUwNDFEXHUwNDFGXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDNFXHUwNDM0IFx1MDQxRVx1MDQzQVx1MDQzRFx1MDQzRSBcdTA0MUVcdTA0M0FcdTA0NDAgXHUwNDFFXHUwNDNBXHUwNDQwXHUwNDQzXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1IFx1MDQxRVx1MDQ0Mlx1MDQzQlx1MDQxOFx1MDQzRFx1MDQ0NFx1MDQxNFx1MDQzRVx1MDQzMVx1MDQzMFx1MDQzMlx1MDQzOFx1MDQ0Mlx1MDQ0QyBcdTA0MUVcdTA0NDJcdTA0M0JcdTA0MThcdTA0M0RcdTA0NDRcdTA0MjNcdTA0MzRcdTA0MzBcdTA0M0JcdTA0MzhcdTA0NDJcdTA0NEMgXHUwNDFFXHUwNDQyXHUwNDQ3XHUwNDM1XHUwNDQyIFx1MDQxRVx1MDQ0Mlx1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQxMFx1MDQzRFx1MDQzMFx1MDQzQiBcdTA0MUVcdTA0NDJcdTA0NDdcdTA0MzVcdTA0NDJcdTA0MThcdTA0M0RcdTA0NDIgXHUwNDFGXHUwNDMwXHUwNDNGXHUwNDNBXHUwNDMwXHUwNDIxXHUwNDQzXHUwNDQ5XHUwNDM1XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDQzXHUwNDM1XHUwNDQyIFx1MDQxRlx1MDQzMFx1MDQ0M1x1MDQzN1x1MDQzMCBcdTA0MUZcdTA0MTJcdTA0NEJcdTA0MzFcdTA0M0VcdTA0NDBTUUwgXHUwNDFGXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDM4XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDRDXHUwNDI0XHUwNDMwXHUwNDM5XHUwNDNCIFx1MDQxRlx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzQ1x1MDQzNVx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQzNSBcdTA0MUZcdTA0MzVcdTA0NDBcdTA0MzVcdTA0M0NcdTA0MzVcdTA0NDFcdTA0NDJcdTA0MzhcdTA0NDJcdTA0NENcdTA0MjRcdTA0MzBcdTA0MzlcdTA0M0IgXHUwNDFGXHUwNDNFXHUwNDM0XHUwNDQxXHUwNDQyXHUwNDQwIFx1MDQxRlx1MDQzRVx1MDQzOFx1MDQ0MVx1MDQzQVx1MDQxRlx1MDQzRVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQ0MCBcdTA0MUZcdTA0M0VcdTA0MzhcdTA0NDFcdTA0M0FcdTA0MjFcdTA0NDJcdTA0NDAgXHUwNDFGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDE4XHUwNDE0XHUwNDIyXHUwNDMwXHUwNDMxXHUwNDNCXHUwNDM4XHUwNDQ2XHUwNDRCIFx1MDQxRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQ0Q1x1MDQxNFx1MDQzRVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRFx1MDQzOFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQzRSBcdTA0MUZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M0JcdTA0NENcdTA0MThcdTA0MTQgXHUwNDFGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRDXHUwNDE4XHUwNDNDXHUwNDRGIFx1MDQxRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQ0Q1x1MDQyMVx1MDQ0Mlx1MDQzMFx1MDQ0Mlx1MDQ0M1x1MDQ0MSBcdTA0MUZcdTA0NDBcdTA0MzVcdTA0NDBcdTA0MzJcdTA0MzBcdTA0NDJcdTA0NEMgXHUwNDFGXHUwNDQwXHUwNDNFXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDFGXHUwNDMwXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDM1XHUwNDQyXHUwNDQwIFx1MDQxRlx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQxRlx1MDQzMFx1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzNVx1MDQ0Mlx1MDQ0MFx1MDQxN1x1MDQzRFx1MDQzMFx1MDQ0NyBcdTA0MUZcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzhcdTA0NDJcdTA0NENcdTA0MjNcdTA0NDFcdTA0M0JcdTA0M0VcdTA0MzJcdTA0MzhcdTA0MzUgXHUwNDIwXHUwNDMwXHUwNDM3XHUwNDMxXHUwNDIxXHUwNDQyXHUwNDQwIFx1MDQyMFx1MDQzMFx1MDQzN1x1MDQzRFx1MDQxMlx1MDQ0MFx1MDQzNVx1MDQzQ1x1MDQ0RiBcdTA0MjBcdTA0MzBcdTA0MzdcdTA0M0RcdTA0MTRcdTA0MzBcdTA0NDIgXHUwNDIwXHUwNDMwXHUwNDM3XHUwNDNEXHUwNDE0XHUwNDMwXHUwNDQyXHUwNDMwXHUwNDEyXHUwNDQwXHUwNDM1XHUwNDNDXHUwNDRGIFx1MDQyMFx1MDQzMFx1MDQzN1x1MDQzRFx1MDQyMFx1MDQzMFx1MDQzMVx1MDQxMlx1MDQ0MFx1MDQzNVx1MDQzQ1x1MDQ0RiBcdTA0MjBcdTA0MzVcdTA0MzNcdTA0MjNcdTA0NDFcdTA0NDJcdTA0MTJcdTA0NDBcdTA0MzVcdTA0M0MgXHUwNDIwXHUwNDM1XHUwNDMzXHUwNDIzXHUwNDQxXHUwNDQyXHUwNDE0XHUwNDMwXHUwNDQyIFx1MDQyMFx1MDQzNVx1MDQzM1x1MDQyM1x1MDQ0MVx1MDQ0Mlx1MDQyN1x1MDQ0MVx1MDQzQiBcdTA0MjBcdTA0MzVcdTA0MzRcdTA0MjJcdTA0MzVcdTA0M0FcdTA0NDFcdTA0NDIgXHUwNDIwXHUwNDM1XHUwNDM1XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDE3XHUwNDMwXHUwNDNGXHUwNDM4XHUwNDQxXHUwNDRDIFx1MDQyMFx1MDQzNVx1MDQzNVx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQyMVx1MDQzRlx1MDQzOFx1MDQ0MVx1MDQzRVx1MDQzQVx1MDQxOFx1MDQzQ1x1MDQzNVx1MDQzRFx1MDQxRlx1MDQzMFx1MDQ0MFx1MDQzMFx1MDQzQyBcdTA0MjBcdTA0MzVcdTA0MzVcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MjdcdTA0NDJcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzUgXHUwNDIwXHUwNDM1XHUwNDNBXHUwNDMyXHUwNDIxXHUwNDNGXHUwNDQwIFx1MDQyMFx1MDQzNVx1MDQzQVx1MDQzMlx1MDQyMVx1MDQzRlx1MDQ0MFx1MDQxRlx1MDQ0MCBcdTA0MjFcdTA0MzVcdTA0MzNcdTA0M0VcdTA0MzRcdTA0M0RcdTA0NEYgXHUwNDIxXHUwNDM1XHUwNDM5XHUwNDQ3XHUwNDMwXHUwNDQxIFx1MDQyMVx1MDQzNVx1MDQ0MFx1MDQzMlx1MDQzNVx1MDQ0MCBcdTA0MjFcdTA0MzVcdTA0NDBcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MUZcdTA0NDBcdTA0M0VcdTA0NDZcdTA0MzVcdTA0NDFcdTA0NDFcdTA0MThcdTA0MTQgXHUwNDIxXHUwNDM1XHUwNDQwXHUwNDQyXHUwNDM4XHUwNDQ0XHUwNDM4XHUwNDNBXHUwNDMwXHUwNDQyXHUwNDI0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDIxXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDMwXHUwNDQyXHUwNDRDIFx1MDQyMVx1MDQzNlx1MDQxRlx1MDQ0MFx1MDQzRVx1MDQzMSBcdTA0MjFcdTA0MzhcdTA0M0NcdTA0MzJcdTA0M0VcdTA0M0IgXHUwNDIxXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDM1XHUwNDNDXHUwNDMwXHUwNDE0XHUwNDM4XHUwNDQwXHUwNDM1XHUwNDNBXHUwNDQyXHUwNDQzXHUwNDNDXHUwNDFBXHUwNDNFXHUwNDM0IFx1MDQyMVx1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzNVx1MDQzQ1x1MDQzMFx1MDQxOFx1MDQzRFx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQ0RiBcdTA0MjFcdTA0MzhcdTA0NDFcdTA0NDJcdTA0MzVcdTA0M0NcdTA0MzBcdTA0MUFcdTA0M0VcdTA0MzQgXHUwNDIxXHUwNDNFXHUwNDM0XHUwNDM1XHUwNDQwXHUwNDM2XHUwNDM4XHUwNDQyIFx1MDQyMVx1MDQzRVx1MDQzNVx1MDQzNFx1MDQzOFx1MDQzRFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQxN1x1MDQzMFx1MDQzQVx1MDQ0MFx1MDQ0Qlx1MDQ0Mlx1MDQ0QyBcdTA0MjFcdTA0M0VcdTA0MzVcdTA0MzRcdTA0MzhcdTA0M0RcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MUVcdTA0NDJcdTA0M0FcdTA0NDBcdTA0NEJcdTA0NDJcdTA0NEMgXHUwNDIxXHUwNDNFXHUwNDM3XHUwNDM0XHUwNDMwXHUwNDQyXHUwNDRDXHUwNDE0XHUwNDM4XHUwNDMwXHUwNDNCXHUwNDNFXHUwNDMzIFx1MDQyMVx1MDQzRVx1MDQzN1x1MDQzNFx1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQxNFx1MDQzOFx1MDQzMFx1MDQzQlx1MDQzRVx1MDQzM1x1MDQxMlx1MDQ0Qlx1MDQzMVx1MDQzRVx1MDQ0MFx1MDQzMFx1MDQxOFx1MDQzN1x1MDQxNFx1MDQzMlx1MDQ0M1x1MDQ0NVx1MDQyMVx1MDQzRlx1MDQzOFx1MDQ0MVx1MDQzQVx1MDQzRVx1MDQzMiBcdTA0MjFcdTA0M0VcdTA0MzdcdTA0MzRcdTA0MzBcdTA0NDJcdTA0NENcdTA0MTRcdTA0MzhcdTA0MzBcdTA0M0JcdTA0M0VcdTA0MzNcdTA0MTJcdTA0NEJcdTA0MzFcdTA0M0VcdTA0NDBcdTA0MzBcdTA0MUZcdTA0MzBcdTA0M0ZcdTA0M0FcdTA0MzggXHUwNDIxXHUwNDNFXHUwNDM3XHUwNDM0XHUwNDMwXHUwNDQyXHUwNDRDXHUwNDE0XHUwNDM4XHUwNDMwXHUwNDNCXHUwNDNFXHUwNDMzXHUwNDFFXHUwNDQyXHUwNDNBXHUwNDQwXHUwNDRCXHUwNDQyXHUwNDM4XHUwNDRGXHUwNDI0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDMwIFx1MDQyMVx1MDQzRVx1MDQzN1x1MDQzNFx1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQxNFx1MDQzOFx1MDQzMFx1MDQzQlx1MDQzRVx1MDQzM1x1MDQyMVx1MDQzRVx1MDQ0NVx1MDQ0MFx1MDQzMFx1MDQzRFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQyNFx1MDQzMFx1MDQzOVx1MDQzQlx1MDQzMCBcdTA0MjFcdTA0M0VcdTA0MzdcdTA0MzRcdTA0MzBcdTA0NDJcdTA0NENcdTA0MTdcdTA0MzBcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDEgXHUwNDIxXHUwNDNFXHUwNDM3XHUwNDM0XHUwNDMwXHUwNDQyXHUwNDRDXHUwNDE4XHUwNDNEXHUwNDM0XHUwNDM4XHUwNDNBXHUwNDMwXHUwNDQyXHUwNDNFXHUwNDQwIFx1MDQyMVx1MDQzRVx1MDQzN1x1MDQzNFx1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQxOFx1MDQ0MVx1MDQzQVx1MDQzQlx1MDQ0RVx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNSBcdTA0MjFcdTA0M0VcdTA0MzdcdTA0MzRcdTA0MzBcdTA0NDJcdTA0NENcdTA0MUFcdTA0NERcdTA0NDhcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0MzlcdTA0MjFcdTA0M0ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M0VcdTA0NDdcdTA0M0RcdTA0MzhcdTA0M0EgXHUwNDIxXHUwNDNFXHUwNDM3XHUwNDM0XHUwNDMwXHUwNDQyXHUwNDRDXHUwNDFDXHUwNDMwXHUwNDQxXHUwNDQxXHUwNDM4XHUwNDMyIFx1MDQyMVx1MDQzRVx1MDQzN1x1MDQzNFx1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQxRFx1MDQzMFx1MDQzMVx1MDQzRVx1MDQ0MFx1MDQxNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0MjFcdTA0M0VcdTA0MzdcdTA0MzRcdTA0MzBcdTA0NDJcdTA0NENcdTA0MUVcdTA0MzFcdTA0NEFcdTA0MzVcdTA0M0FcdTA0NDIgXHUwNDIxXHUwNDNFXHUwNDM3XHUwNDM0XHUwNDMwXHUwNDQyXHUwNDRDXHUwNDFFXHUwNDQyXHUwNDQ3XHUwNDM1XHUwNDQyIFx1MDQyMVx1MDQzRVx1MDQzN1x1MDQzNFx1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQxRlx1MDQzMFx1MDQzRlx1MDQzQVx1MDQ0MyBcdTA0MjFcdTA0M0VcdTA0MzdcdTA0MzRcdTA0MzBcdTA0NDJcdTA0NENcdTA0MjBcdTA0MzVcdTA0MzRcdTA0MzBcdTA0M0FcdTA0NDJcdTA0M0VcdTA0NDAgXHUwNDIxXHUwNDNFXHUwNDM3XHUwNDM0XHUwNDMwXHUwNDQyXHUwNDRDXHUwNDIxXHUwNDNFXHUwNDM1XHUwNDM0XHUwNDM4XHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1IFx1MDQyMVx1MDQzRVx1MDQzN1x1MDQzNFx1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQyMVx1MDQzRlx1MDQzOFx1MDQ0MVx1MDQzRVx1MDQzQSBcdTA0MjFcdTA0M0VcdTA0MzdcdTA0MzRcdTA0MzBcdTA0NDJcdTA0NENcdTA0MjFcdTA0M0ZcdTA0MzhcdTA0NDFcdTA0M0VcdTA0M0FcdTA0MjFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0M0EgXHUwNDIxXHUwNDNFXHUwNDM3XHUwNDM0XHUwNDMwXHUwNDQyXHUwNDRDXHUwNDIxXHUwNDNGXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNFXHUwNDQ3XHUwNDNEXHUwNDM4XHUwNDNBIFx1MDQyMVx1MDQzRVx1MDQzN1x1MDQzNFx1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQyMVx1MDQ0Nlx1MDQzNVx1MDQzRFx1MDQzMFx1MDQ0MFx1MDQzOFx1MDQzOSBcdTA0MjFcdTA0M0VcdTA0MzdcdTA0MzRcdTA0MjFcdTA0M0ZcdTA0NDAgXHUwNDIxXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDIxXHUwNDNGXHUwNDQwIFx1MDQyMVx1MDQzRVx1MDQ0NVx1MDQ0MCBcdTA0MjFcdTA0M0VcdTA0NDVcdTA0NDBcdTA0MjFcdTA0M0ZcdTA0NDAgXHUwNDIxXHUwNDNGXHUwNDM4XHUwNDQxXHUwNDNFXHUwNDNBXHUwNDIxXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDM1XHUwNDNDIFx1MDQyMVx1MDQzRlx1MDQ0MCBcdTA0MjFcdTA0M0ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M0VcdTA0NDdcdTA0M0RcdTA0MzhcdTA0M0EgXHUwNDIxXHUwNDNGXHUwNDQwXHUwNDExXHUwNDNCXHUwNDNFXHUwNDNBXHUwNDE1XHUwNDQxXHUwNDQyXHUwNDRDIFx1MDQyMVx1MDQzRlx1MDQ0MFx1MDQxMVx1MDQzQlx1MDQzRVx1MDQzQVx1MDQyMVx1MDQzRFx1MDQ0Rlx1MDQ0Mlx1MDQ0QyBcdTA0MjFcdTA0M0ZcdTA0NDBcdTA0MTFcdTA0M0JcdTA0M0VcdTA0M0FcdTA0MjFcdTA0M0RcdTA0NEZcdTA0NDJcdTA0NENcdTA0MjBcdTA0MzBcdTA0NDFcdTA0NDggXHUwNDIxXHUwNDNGXHUwNDQwXHUwNDExXHUwNDNCXHUwNDNFXHUwNDNBXHUwNDIzXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRDIFx1MDQyMVx1MDQzRlx1MDQ0MFx1MDQxOFx1MDQzN1x1MDQzQ1x1MDQxRFx1MDQzMFx1MDQzMVx1MDQxNFx1MDQzMFx1MDQzRCBcdTA0MjFcdTA0M0ZcdTA0NDBcdTA0MUFcdTA0M0VcdTA0MzQgXHUwNDIxXHUwNDNGXHUwNDQwXHUwNDFEXHUwNDNFXHUwNDNDXHUwNDM1XHUwNDQwIFx1MDQyMVx1MDQzRlx1MDQ0MFx1MDQxRVx1MDQzMVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzOFx1MDQ0Mlx1MDQ0QyBcdTA0MjFcdTA0M0ZcdTA0NDBcdTA0MUVcdTA0NDJcdTA0M0FcdTA0NDBcdTA0NEJcdTA0NDJcdTA0NEMgXHUwNDIxXHUwNDNGXHUwNDQwXHUwNDFFXHUwNDQyXHUwNDNDXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDQyXHUwNDRDIFx1MDQyMVx1MDQzRlx1MDQ0MFx1MDQxRlx1MDQzMFx1MDQ0MFx1MDQzMFx1MDQzQyBcdTA0MjFcdTA0M0ZcdTA0NDBcdTA0MUZcdTA0M0VcdTA0M0JcdTA0MzVcdTA0MTdcdTA0M0RcdTA0MzBcdTA0NDcgXHUwNDIxXHUwNDNGXHUwNDQwXHUwNDFGXHUwNDNFXHUwNDNCXHUwNDM1XHUwNDE4XHUwNDNDXHUwNDRGIFx1MDQyMVx1MDQzRlx1MDQ0MFx1MDQyMFx1MDQzNVx1MDQzQVx1MDQzMiBcdTA0MjFcdTA0M0ZcdTA0NDBcdTA0MjBcdTA0MzVcdTA0M0FcdTA0MzJcdTA0MTJcdTA0MzJcdTA0MzVcdTA0MzRcdTA0MTdcdTA0M0QgXHUwNDIxXHUwNDNGXHUwNDQwXHUwNDIwXHUwNDM1XHUwNDNBXHUwNDMyXHUwNDFEXHUwNDNFXHUwNDMyXHUwNDRCXHUwNDM1IFx1MDQyMVx1MDQzRlx1MDQ0MFx1MDQyMFx1MDQzNVx1MDQzQVx1MDQzMlx1MDQxRlx1MDQ0MCBcdTA0MjFcdTA0M0ZcdTA0NDBcdTA0MjBcdTA0MzVcdTA0M0FcdTA0MzJcdTA0MUZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0MTdcdTA0M0QgXHUwNDIxXHUwNDNGXHUwNDQwXHUwNDIwXHUwNDM1XHUwNDNBXHUwNDMyXHUwNDIwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDIFx1MDQyMVx1MDQzRlx1MDQ0MFx1MDQyMFx1MDQzNVx1MDQzQVx1MDQzMlx1MDQyMlx1MDQzOFx1MDQzRlx1MDQyMlx1MDQzNVx1MDQzQVx1MDQ0MVx1MDQ0MiBcdTA0MjFcdTA0M0ZcdTA0NDBcdTA0MjFcdTA0M0VcdTA0MzdcdTA0MzRcdTA0MzBcdTA0NDJcdTA0NEMgXHUwNDIxXHUwNDNGXHUwNDQwXHUwNDIxXHUwNDNFXHUwNDQxXHUwNDQyIFx1MDQyMVx1MDQzRlx1MDQ0MFx1MDQyMVx1MDQzRVx1MDQ0NVx1MDQ0MFx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0Mlx1MDQ0QyBcdTA0MjFcdTA0M0ZcdTA0NDBcdTA0MjJcdTA0MzFcdTA0M0JcdTA0MThcdTA0NDJcdTA0M0VcdTA0MzMgXHUwNDIxXHUwNDNGXHUwNDQwXHUwNDIyXHUwNDMxXHUwNDNCXHUwNDIxXHUwNDQyXHUwNDQwIFx1MDQyMVx1MDQzRlx1MDQ0MFx1MDQyMlx1MDQzMVx1MDQzQlx1MDQyMVx1MDQ0Mlx1MDQ0MFx1MDQxQVx1MDQzRVx1MDQzQiBcdTA0MjFcdTA0M0ZcdTA0NDBcdTA0MjJcdTA0MzFcdTA0M0JcdTA0MjFcdTA0NDJcdTA0NDBcdTA0MUNcdTA0MzBcdTA0M0FcdTA0NDEgXHUwNDIxXHUwNDNGXHUwNDQwXHUwNDIyXHUwNDMxXHUwNDNCXHUwNDIxXHUwNDQyXHUwNDQwXHUwNDFDXHUwNDM4XHUwNDNEIFx1MDQyMVx1MDQzRlx1MDQ0MFx1MDQyMlx1MDQzMVx1MDQzQlx1MDQyMVx1MDQ0Mlx1MDQ0MFx1MDQxRlx1MDQ0MFx1MDQzNVx1MDQzNCBcdTA0MjFcdTA0M0ZcdTA0NDBcdTA0MjJcdTA0MzFcdTA0M0JcdTA0MjFcdTA0NDJcdTA0NDBcdTA0MjFcdTA0M0JcdTA0MzVcdTA0MzQgXHUwNDIxXHUwNDNGXHUwNDQwXHUwNDIyXHUwNDMxXHUwNDNCXHUwNDIxXHUwNDQyXHUwNDQwXHUwNDIxXHUwNDNFXHUwNDM3XHUwNDM0IFx1MDQyMVx1MDQzRlx1MDQ0MFx1MDQyMlx1MDQzMVx1MDQzQlx1MDQyMVx1MDQ0Mlx1MDQ0MFx1MDQyM1x1MDQzNCBcdTA0MjFcdTA0M0ZcdTA0NDBcdTA0MjJcdTA0MzVcdTA0M0FcdTA0MUZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0NDFcdTA0NDIgXHUwNDIxXHUwNDNGXHUwNDQwXHUwNDIzXHUwNDM0XHUwNDMwXHUwNDNCXHUwNDM4XHUwNDQyXHUwNDRDIFx1MDQyMVx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzRFx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQyMVx1MDQ0Mlx1MDQ0MCBcdTA0MjFcdTA0NDJcdTA0NDBcdTA0MTJcdTA0MzVcdTA0NDBcdTA0NDVcdTA0MjBcdTA0MzVcdTA0MzNcdTA0MzhcdTA0NDFcdTA0NDJcdTA0NDAgXHUwNDIxXHUwNDQyXHUwNDQwXHUwNDFEXHUwNDM4XHUwNDM2XHUwNDNEXHUwNDIwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDQwIFx1MDQyMVx1MDQ0Mlx1MDQ0MFx1MDQyMlx1MDQzMVx1MDQzQlx1MDQyMVx1MDQzRlx1MDQ0MCBcdTA0MjFcdTA0NDNcdTA0M0NcdTA0MUZcdTA0NDBcdTA0M0VcdTA0M0YgXHUwNDIxXHUwNDQ2XHUwNDM1XHUwNDNEXHUwNDMwXHUwNDQwXHUwNDM4XHUwNDM5IFx1MDQyMVx1MDQ0Nlx1MDQzNVx1MDQzRFx1MDQzMFx1MDQ0MFx1MDQzOFx1MDQzOVx1MDQxRlx1MDQzMFx1MDQ0MFx1MDQzMFx1MDQzQyBcdTA0MjJcdTA0MzVcdTA0M0FcdTA0MTJcdTA0MzVcdTA0NDBcdTA0NDFcdTA0MzhcdTA0NEYgXHUwNDIyXHUwNDM1XHUwNDNBXHUwNDFFXHUwNDQwXHUwNDMzIFx1MDQyMlx1MDQzRVx1MDQ0N1x1MDQzRCBcdTA0MjJcdTA0NDBcdTA0MzBcdTA0M0QgXHUwNDIyXHUwNDQwXHUwNDMwXHUwNDNEXHUwNDQxXHUwNDNCXHUwNDM4XHUwNDQyXHUwNDM1XHUwNDQwXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDRGIFx1MDQyM1x1MDQzNFx1MDQzMFx1MDQzQlx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQyMlx1MDQzMFx1MDQzMVx1MDQzQlx1MDQzOFx1MDQ0Nlx1MDQ0MyBcdTA0MjNcdTA0MzRcdTA0MzBcdTA0M0JcdTA0MzhcdTA0NDJcdTA0NENcdTA0MjRcdTA0MzBcdTA0MzlcdTA0M0IgXHUwNDIzXHUwNDM0XHUwNDIxXHUwNDNGXHUwNDQwIFx1MDQyM1x1MDQzNFx1MDQyMVx1MDQ0Mlx1MDQ0MFx1MDQyMlx1MDQzMVx1MDQzQlx1MDQyMVx1MDQzRlx1MDQ0MCBcdTA0MjNcdTA0NDFcdTA0NDIgXHUwNDIzXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDFBXHUwNDNFXHUwNDNEXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDQyIFx1MDQyNFx1MDQzMFx1MDQzOVx1MDQzQlx1MDQxMFx1MDQ0Mlx1MDQ0MFx1MDQzOFx1MDQzMVx1MDQ0M1x1MDQ0Mlx1MDQyMVx1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQzMFx1MDQ0Mlx1MDQ0QyBcdTA0MjRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0MTBcdTA0NDJcdTA0NDBcdTA0MzhcdTA0MzFcdTA0NDNcdTA0NDJcdTA0MjNcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0M0VcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NEMgXHUwNDI0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDEyXHUwNDQwXHUwNDM1XHUwNDNDXHUwNDRGIFx1MDQyNFx1MDQzMFx1MDQzOVx1MDQzQlx1MDQxMlx1MDQ0MFx1MDQzNVx1MDQzQ1x1MDQ0Rlx1MDQyM1x1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzOFx1MDQ0Mlx1MDQ0QyBcdTA0MjRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0MTJcdTA0NEJcdTA0MzFcdTA0NDBcdTA0MzBcdTA0NDJcdTA0NEMgXHUwNDI0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDE3XHUwNDMwXHUwNDNEXHUwNDRGXHUwNDQyIFx1MDQyNFx1MDQzMFx1MDQzOVx1MDQzQlx1MDQxN1x1MDQzMFx1MDQzRlx1MDQzOFx1MDQ0MVx1MDQzMFx1MDQ0Mlx1MDQ0QyBcdTA0MjRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0MThcdTA0NDFcdTA0M0FcdTA0MzBcdTA0NDJcdTA0NEMgXHUwNDI0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDFBXHUwNDNFXHUwNDNGXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDRDIFx1MDQyNFx1MDQzMFx1MDQzOVx1MDQzQlx1MDQxQ1x1MDQzRVx1MDQzNlx1MDQzRFx1MDQzRVx1MDQyN1x1MDQzOFx1MDQ0Mlx1MDQzMFx1MDQ0Mlx1MDQ0QyBcdTA0MjRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0MUVcdTA0NDJcdTA0M0FcdTA0NDBcdTA0NEJcdTA0NDJcdTA0NEMgXHUwNDI0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDFGXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDM4XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDRDIFx1MDQyNFx1MDQzMFx1MDQzOVx1MDQzQlx1MDQxRlx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzQVx1MDQzRVx1MDQzNFx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQ0QyBcdTA0MjRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0MUZcdTA0MzVcdTA0NDBcdTA0MzVcdTA0M0NcdTA0MzVcdTA0NDFcdTA0NDJcdTA0MzhcdTA0NDJcdTA0NEMgXHUwNDI0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDFGXHUwNDQwXHUwNDNFXHUwNDQxXHUwNDNDXHUwNDNFXHUwNDQyXHUwNDQwXHUwNDM1XHUwNDQyXHUwNDRDIFx1MDQyNFx1MDQzMFx1MDQzOVx1MDQzQlx1MDQyMFx1MDQzMFx1MDQzN1x1MDQzQ1x1MDQzNVx1MDQ0MCBcdTA0MjRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0MjFcdTA0M0VcdTA0MzdcdTA0MzRcdTA0MzBcdTA0NDJcdTA0NEMgXHUwNDI0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDIxXHUwNDQxXHUwNDRCXHUwNDNCXHUwNDNBXHUwNDMwXHUwNDIxXHUwNDNFXHUwNDM3XHUwNDM0XHUwNDMwXHUwNDQyXHUwNDRDIFx1MDQyNFx1MDQzMFx1MDQzOVx1MDQzQlx1MDQyMVx1MDQ0M1x1MDQ0OVx1MDQzNVx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQ0M1x1MDQzNVx1MDQ0MiBcdTA0MjRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0MjFcdTA0NDdcdTA0MzhcdTA0NDJcdTA0MzBcdTA0NDJcdTA0NEMgXHUwNDI0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDIzXHUwNDM0XHUwNDMwXHUwNDNCXHUwNDM4XHUwNDQyXHUwNDRDIFx1MDQyNFx1MDQzQ1x1MDQ0MlNRTFx1MDQxNFx1MDQzMFx1MDQ0MiBcdTA0MjRcdTA0M0NcdTA0NDJcdTA0MTRcdTA0MzBcdTA0NDIgXHUwNDI0XHUwNDNDXHUwNDQyXHUwNDIxXHUwNDQyXHUwNDQwIFx1MDQyNFx1MDQzQ1x1MDQ0Mlx1MDQyN1x1MDQ0MVx1MDQzQiBcdTA0MjRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0MzBcdTA0NDIgXHUwNDI2XHUwNDFDXHUwNDMwXHUwNDQxXHUwNDQxXHUwNDM4XHUwNDMyXHUwNDJEXHUwNDNCXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyIFx1MDQyNlx1MDQxRFx1MDQzMFx1MDQzMVx1MDQzRVx1MDQ0MFx1MDQxNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NVx1MDQyMFx1MDQzNVx1MDQzQVx1MDQzMlx1MDQzOFx1MDQzN1x1MDQzOFx1MDQ0MiBcdTA0MjZcdTA0MUZcdTA0M0VcdTA0MzRcdTA0NDFcdTA0NDJcdTA0NDAgIixIPSJBbHRTdGF0ZSBBcHBsaWNhdGlvbiBDYWxsVHlwZSBDb21wb25lbnRUb2tlbnMgQ3JlYXRlZEpvYnMgQ3JlYXRlZE5vdGljZXMgQ29udHJvbFN0YXRlIERpYWxvZ1Jlc3VsdCBEaWFsb2dzIEVEb2N1bWVudHMgRURvY3VtZW50VmVyc2lvblNvdXJjZSBGb2xkZXJzIEdsb2JhbElEcyBKb2IgSm9icyBJbnB1dFZhbHVlIExvb2tVcFJlZmVyZW5jZSBMb29rVXBSZXF1aXNpdGVOYW1lcyBMb29rVXBTZWFyY2ggT2JqZWN0IFBhcmVudENvbXBvbmVudCBQcm9jZXNzZXMgUmVmZXJlbmNlcyBSZXF1aXNpdGUgUmVwb3J0TmFtZSBSZXBvcnRzIFJlc3VsdCBTY3JpcHRzIFNlYXJjaGVzIFNlbGVjdGVkQXR0YWNobWVudHMgU2VsZWN0ZWRJdGVtcyBTZWxlY3RNb2RlIFNlbmRlciBTZXJ2ZXJFdmVudHMgU2VydmljZUZhY3RvcnkgU2hpZnRTdGF0ZSBTdWJUYXNrIFN5c3RlbURpYWxvZ3MgVGFza3MgV2l6YXJkIFdpemFyZHMgV29yayBcdTA0MTJcdTA0NEJcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MjFcdTA0M0ZcdTA0M0VcdTA0NDFcdTA0M0VcdTA0MzEgXHUwNDE4XHUwNDNDXHUwNDRGXHUwNDFFXHUwNDQyXHUwNDQ3XHUwNDM1XHUwNDQyXHUwNDMwIFx1MDQyMFx1MDQzNVx1MDQzQVx1MDQzMlx1MDQxN1x1MDQzRFx1MDQzMFx1MDQ0NyAiLGR0PSJJQXBwbGljYXRpb24gSUFjY2Vzc1JpZ2h0cyBJQWNjb3VudFJlcG9zaXRvcnkgSUFjY291bnRTZWxlY3Rpb25SZXN0cmljdGlvbnMgSUFjdGlvbiBJQWN0aW9uTGlzdCBJQWRtaW5pc3RyYXRpb25IaXN0b3J5RGVzY3JpcHRpb24gSUFuY2hvcnMgSUFwcGxpY2F0aW9uIElBcmNoaXZlSW5mbyBJQXR0YWNobWVudCBJQXR0YWNobWVudExpc3QgSUNoZWNrTGlzdEJveCBJQ2hlY2tQb2ludGVkTGlzdCBJQ29sdW1uIElDb21wb25lbnQgSUNvbXBvbmVudERlc2NyaXB0aW9uIElDb21wb25lbnRUb2tlbiBJQ29tcG9uZW50VG9rZW5GYWN0b3J5IElDb21wb25lbnRUb2tlbkluZm8gSUNvbXBSZWNvcmRJbmZvIElDb25uZWN0aW9uIElDb250ZW50cyBJQ29udHJvbCBJQ29udHJvbEpvYiBJQ29udHJvbEpvYkluZm8gSUNvbnRyb2xMaXN0IElDcnlwdG8gSUNyeXB0bzIgSUN1c3RvbUpvYiBJQ3VzdG9tSm9iSW5mbyBJQ3VzdG9tTGlzdEJveCBJQ3VzdG9tT2JqZWN0V2l6YXJkU3RlcCBJQ3VzdG9tV29yayBJQ3VzdG9tV29ya0luZm8gSURhdGFTZXQgSURhdGFTZXRBY2Nlc3NJbmZvIElEYXRhU2lnbmVyIElEYXRlQ3JpdGVyaW9uIElEYXRlUmVxdWlzaXRlIElEYXRlUmVxdWlzaXRlRGVzY3JpcHRpb24gSURhdGVWYWx1ZSBJRGVhQWNjZXNzUmlnaHRzIElEZWFPYmplY3RJbmZvIElEZXZlbG9wbWVudENvbXBvbmVudExvY2sgSURpYWxvZyBJRGlhbG9nRmFjdG9yeSBJRGlhbG9nUGlja1JlcXVpc2l0ZUl0ZW1zIElEaWFsb2dzRmFjdG9yeSBJRElDU0ZhY3RvcnkgSURvY1JlcXVpc2l0ZSBJRG9jdW1lbnRJbmZvIElEdWFsTGlzdERpYWxvZyBJRUNlcnRpZmljYXRlIElFQ2VydGlmaWNhdGVJbmZvIElFQ2VydGlmaWNhdGVzIElFZGl0Q29udHJvbCBJRWRpdG9yRm9ybSBJRWRtc0V4cGxvcmVyIElFZG1zT2JqZWN0IElFZG1zT2JqZWN0RGVzY3JpcHRpb24gSUVkbXNPYmplY3RGYWN0b3J5IElFZG1zT2JqZWN0SW5mbyBJRURvY3VtZW50IElFRG9jdW1lbnRBY2Nlc3NSaWdodHMgSUVEb2N1bWVudERlc2NyaXB0aW9uIElFRG9jdW1lbnRFZGl0b3IgSUVEb2N1bWVudEZhY3RvcnkgSUVEb2N1bWVudEluZm8gSUVEb2N1bWVudFN0b3JhZ2UgSUVEb2N1bWVudFZlcnNpb24gSUVEb2N1bWVudFZlcnNpb25MaXN0RGlhbG9nIElFRG9jdW1lbnRWZXJzaW9uU291cmNlIElFRG9jdW1lbnRXaXphcmRTdGVwIElFRG9jVmVyU2lnbmF0dXJlIElFRG9jVmVyc2lvblN0YXRlIElFbmFibGVkTW9kZSBJRW5jb2RlUHJvdmlkZXIgSUVuY3J5cHRlciBJRXZlbnQgSUV2ZW50TGlzdCBJRXhjZXB0aW9uIElFeHRlcm5hbEV2ZW50cyBJRXh0ZXJuYWxIYW5kbGVyIElGYWN0b3J5IElGaWVsZCBJRmlsZURpYWxvZyBJRm9sZGVyIElGb2xkZXJEZXNjcmlwdGlvbiBJRm9sZGVyRGlhbG9nIElGb2xkZXJGYWN0b3J5IElGb2xkZXJJbmZvIElGb3JFYWNoIElGb3JtIElGb3JtVGl0bGUgSUZvcm1XaXphcmRTdGVwIElHbG9iYWxJREZhY3RvcnkgSUdsb2JhbElESW5mbyBJR3JpZCBJSGFzaGVyIElIaXN0b3J5RGVzY3JpcHRpb24gSUh5cGVyTGlua0NvbnRyb2wgSUltYWdlQnV0dG9uIElJbWFnZUNvbnRyb2wgSUlubmVyUGFuZWwgSUlucGxhY2VIaW50IElJbnRlZ2VyQ3JpdGVyaW9uIElJbnRlZ2VyTGlzdCBJSW50ZWdlclJlcXVpc2l0ZSBJSW50ZWdlclZhbHVlIElJU0JMRWRpdG9yRm9ybSBJSm9iIElKb2JEZXNjcmlwdGlvbiBJSm9iRmFjdG9yeSBJSm9iRm9ybSBJSm9iSW5mbyBJTGFiZWxDb250cm9sIElMYXJnZUludGVnZXJDcml0ZXJpb24gSUxhcmdlSW50ZWdlclJlcXVpc2l0ZSBJTGFyZ2VJbnRlZ2VyVmFsdWUgSUxpY2Vuc2VJbmZvIElMaWZlQ3ljbGVTdGFnZSBJTGlzdCBJTGlzdEJveCBJTG9jYWxJREluZm8gSUxvY2FsaXphdGlvbiBJTG9jayBJTWVtb3J5RGF0YVNldCBJTWVzc2FnaW5nRmFjdG9yeSBJTWV0YWRhdGFSZXBvc2l0b3J5IElOb3RpY2UgSU5vdGljZUluZm8gSU51bWVyaWNDcml0ZXJpb24gSU51bWVyaWNSZXF1aXNpdGUgSU51bWVyaWNWYWx1ZSBJT2JqZWN0IElPYmplY3REZXNjcmlwdGlvbiBJT2JqZWN0SW1wb3J0ZXIgSU9iamVjdEluZm8gSU9ic2VydmVyIElQYW5lbEdyb3VwIElQaWNrQ3JpdGVyaW9uIElQaWNrUHJvcGVydHkgSVBpY2tSZXF1aXNpdGUgSVBpY2tSZXF1aXNpdGVEZXNjcmlwdGlvbiBJUGlja1JlcXVpc2l0ZUl0ZW0gSVBpY2tSZXF1aXNpdGVJdGVtcyBJUGlja1ZhbHVlIElQcml2aWxlZ2UgSVByaXZpbGVnZUxpc3QgSVByb2Nlc3MgSVByb2Nlc3NGYWN0b3J5IElQcm9jZXNzTWVzc2FnZSBJUHJvZ3Jlc3MgSVByb3BlcnR5IElQcm9wZXJ0eUNoYW5nZUV2ZW50IElRdWVyeSBJUmVmZXJlbmNlIElSZWZlcmVuY2VDcml0ZXJpb24gSVJlZmVyZW5jZUVuYWJsZWRNb2RlIElSZWZlcmVuY2VGYWN0b3J5IElSZWZlcmVuY2VIaXN0b3J5RGVzY3JpcHRpb24gSVJlZmVyZW5jZUluZm8gSVJlZmVyZW5jZVJlY29yZENhcmRXaXphcmRTdGVwIElSZWZlcmVuY2VSZXF1aXNpdGVEZXNjcmlwdGlvbiBJUmVmZXJlbmNlc0ZhY3RvcnkgSVJlZmVyZW5jZVZhbHVlIElSZWZSZXF1aXNpdGUgSVJlcG9ydCBJUmVwb3J0RmFjdG9yeSBJUmVxdWlzaXRlIElSZXF1aXNpdGVEZXNjcmlwdGlvbiBJUmVxdWlzaXRlRGVzY3JpcHRpb25MaXN0IElSZXF1aXNpdGVGYWN0b3J5IElSaWNoRWRpdCBJUm91dGVTdGVwIElSdWxlIElSdWxlTGlzdCBJU2NoZW1lQmxvY2sgSVNjcmlwdCBJU2NyaXB0RmFjdG9yeSBJU2VhcmNoQ3JpdGVyaWEgSVNlYXJjaENyaXRlcmlvbiBJU2VhcmNoRGVzY3JpcHRpb24gSVNlYXJjaEZhY3RvcnkgSVNlYXJjaEZvbGRlckluZm8gSVNlYXJjaEZvck9iamVjdERlc2NyaXB0aW9uIElTZWFyY2hSZXN1bHRSZXN0cmljdGlvbnMgSVNlY3VyZWRDb250ZXh0IElTZWxlY3REaWFsb2cgSVNlcnZlckV2ZW50IElTZXJ2ZXJFdmVudEZhY3RvcnkgSVNlcnZpY2VEaWFsb2cgSVNlcnZpY2VGYWN0b3J5IElTaWduYXR1cmUgSVNpZ25Qcm92aWRlciBJU2lnblByb3ZpZGVyMiBJU2lnblByb3ZpZGVyMyBJU2ltcGxlQ3JpdGVyaW9uIElTdHJpbmdDcml0ZXJpb24gSVN0cmluZ0xpc3QgSVN0cmluZ1JlcXVpc2l0ZSBJU3RyaW5nUmVxdWlzaXRlRGVzY3JpcHRpb24gSVN0cmluZ1ZhbHVlIElTeXN0ZW1EaWFsb2dzRmFjdG9yeSBJU3lzdGVtSW5mbyBJVGFiU2hlZXQgSVRhc2sgSVRhc2tBYm9ydFJlYXNvbkluZm8gSVRhc2tDYXJkV2l6YXJkU3RlcCBJVGFza0Rlc2NyaXB0aW9uIElUYXNrRmFjdG9yeSBJVGFza0luZm8gSVRhc2tSb3V0ZSBJVGV4dENyaXRlcmlvbiBJVGV4dFJlcXVpc2l0ZSBJVGV4dFZhbHVlIElUcmVlTGlzdFNlbGVjdERpYWxvZyBJVXNlciBJVXNlckxpc3QgSVZhbHVlIElWaWV3IElXZWJCcm93c2VyQ29udHJvbCBJV2l6YXJkIElXaXphcmRBY3Rpb24gSVdpemFyZEZhY3RvcnkgSVdpemFyZEZvcm1FbGVtZW50IElXaXphcmRQYXJhbSBJV2l6YXJkUGlja1BhcmFtIElXaXphcmRSZWZlcmVuY2VQYXJhbSBJV2l6YXJkU3RlcCBJV29ya0FjY2Vzc1JpZ2h0cyBJV29ya0Rlc2NyaXB0aW9uIElXb3JrZmxvd0Fza2FibGVQYXJhbSBJV29ya2Zsb3dBc2thYmxlUGFyYW1zIElXb3JrZmxvd0Jsb2NrIElXb3JrZmxvd0Jsb2NrUmVzdWx0IElXb3JrZmxvd0VuYWJsZWRNb2RlIElXb3JrZmxvd1BhcmFtIElXb3JrZmxvd1BpY2tQYXJhbSBJV29ya2Zsb3dSZWZlcmVuY2VQYXJhbSBJV29ya1N0YXRlIElXb3JrVHJlZUN1c3RvbU5vZGUgSVdvcmtUcmVlSm9iTm9kZSBJV29ya1RyZWVUYXNrTm9kZSBJWE1MRWRpdG9yRm9ybSBTQkNyeXB0byAiLHJlPVJlK1R0LGVlPUgsR2U9Im51bGwgdHJ1ZSBmYWxzZSBuaWwgIixBZT17Y2xhc3NOYW1lOiJudW1iZXIiLGJlZ2luOmUuTlVNQkVSX1JFLHJlbGV2YW5jZTowfSxZZT17Y2xhc3NOYW1lOiJzdHJpbmciLHZhcmlhbnRzOlt7YmVnaW46JyInLGVuZDonIid9LHtiZWdpbjoiJyIsZW5kOiInIn1dfSxIZT17Y2xhc3NOYW1lOiJkb2N0YWciLGJlZ2luOiJcXGIoPzpUT0RPfERPTkV8QkVHSU58RU5EfFNUVUJ8Q0hHfEZJWE1FfE5PVEV8QlVHfFhYWClcXGIiLHJlbGV2YW5jZTowfSxNPXtjbGFzc05hbWU6ImNvbW1lbnQiLGJlZ2luOiIvLyIsZW5kOiIkIixyZWxldmFuY2U6MCxjb250YWluczpbZS5QSFJBU0FMX1dPUkRTX01PREUsSGVdfSxQPXtjbGFzc05hbWU6ImNvbW1lbnQiLGJlZ2luOiIvXFwqIixlbmQ6IlxcKi8iLHJlbGV2YW5jZTowLGNvbnRhaW5zOltlLlBIUkFTQUxfV09SRFNfTU9ERSxIZV19LFk9e3ZhcmlhbnRzOltNLFBdfSxxPXskcGF0dGVybjp0LGtleXdvcmQ6YSxidWlsdF9pbjpyZSxjbGFzczplZSxsaXRlcmFsOkdlfSxpZT17YmVnaW46IlxcLlxccyoiK2UuVU5ERVJTQ09SRV9JREVOVF9SRSxrZXl3b3JkczpxLHJlbGV2YW5jZTowfSx3ZT17Y2xhc3NOYW1lOiJ0eXBlIixiZWdpbjoiOlsgXFx0XSooIitkdC50cmltKCkucmVwbGFjZSgvXHMvZywifCIpKyIpIixlbmQ6IlsgXFx0XSo9IixleGNsdWRlRW5kOiEwfSx1dD17Y2xhc3NOYW1lOiJ2YXJpYWJsZSIsa2V5d29yZHM6cSxiZWdpbjp0LHJlbGV2YW5jZTowLGNvbnRhaW5zOlt3ZSxpZV19LEd0PW4rIlxcKCI7cmV0dXJue25hbWU6IklTQkwiLGNhc2VfaW5zZW5zaXRpdmU6ITAsa2V5d29yZHM6cSxpbGxlZ2FsOiJcXCR8XFw/fCV8LHw7JHx+fCN8QHw8LyIsY29udGFpbnM6W3tjbGFzc05hbWU6ImZ1bmN0aW9uIixiZWdpbjpHdCxlbmQ6IlxcKSQiLHJldHVybkJlZ2luOiEwLGtleXdvcmRzOnEsaWxsZWdhbDoiW1xcW1xcXVxcfFxcJFxcPyUsfiNAXSIsY29udGFpbnM6W3tjbGFzc05hbWU6InRpdGxlIixrZXl3b3Jkczp7JHBhdHRlcm46dCxidWlsdF9pbjpKZX0sYmVnaW46R3QsZW5kOiJcXCgiLHJldHVybkJlZ2luOiEwLGV4Y2x1ZGVFbmQ6ITB9LGllLHV0LFllLEFlLFldfSx3ZSxpZSx1dCxZZSxBZSxZXX19cy5leHBvcnRzPXJ9LDI0Njk5OmZ1bmN0aW9uKHMpe3ZhciByPSJbMC05XShfKlswLTldKSoiLGU9YFxcLigke3J9KWAsdD0iWzAtOWEtZkEtRl0oXypbMC05YS1mQS1GXSkqIixuPXtjbGFzc05hbWU6Im51bWJlciIsdmFyaWFudHM6W3tiZWdpbjpgKFxcYigke3J9KSgoJHtlfSl8XFwuKT98KCR7ZX0pKVtlRV1bKy1dPygke3J9KVtmRmREXT9cXGJgfSx7YmVnaW46YFxcYigke3J9KSgoJHtlfSlbZkZkRF0/XFxifFxcLihbZkZkRF1cXGIpPylgfSx7YmVnaW46YCgke2V9KVtmRmREXT9cXGJgfSx7YmVnaW46YFxcYigke3J9KVtmRmREXVxcYmB9LHtiZWdpbjpgXFxiMFt4WF0oKCR7dH0pXFwuP3woJHt0fSk/XFwuKCR7dH0pKVtwUF1bKy1dPygke3J9KVtmRmREXT9cXGJgfSx7YmVnaW46IlxcYigwfFsxLTldKF8qWzAtOV0pKilbbExdP1xcYiJ9LHtiZWdpbjpgXFxiMFt4WF0oJHt0fSlbbExdP1xcYmB9LHtiZWdpbjoiXFxiMChfKlswLTddKSpbbExdP1xcYiJ9LHtiZWdpbjoiXFxiMFtiQl1bMDFdKF8qWzAxXSkqW2xMXT9cXGIifV0scmVsZXZhbmNlOjB9O2Z1bmN0aW9uIGEoaSl7dmFyIG89IltceEMwLVx1MDJCOGEtekEtWl8kXVtceEMwLVx1MDJCOGEtekEtWl8kMC05XSoiLGw9bysiKDwiK28rIihcXHMqLFxccyoiK28rIikqPik/IixjPSJmYWxzZSBzeW5jaHJvbml6ZWQgaW50IGFic3RyYWN0IGZsb2F0IHByaXZhdGUgY2hhciBib29sZWFuIHZhciBzdGF0aWMgbnVsbCBpZiBjb25zdCBmb3IgdHJ1ZSB3aGlsZSBsb25nIHN0cmljdGZwIGZpbmFsbHkgcHJvdGVjdGVkIGltcG9ydCBuYXRpdmUgZmluYWwgdm9pZCBlbnVtIGVsc2UgYnJlYWsgdHJhbnNpZW50IGNhdGNoIGluc3RhbmNlb2YgYnl0ZSBzdXBlciB2b2xhdGlsZSBjYXNlIGFzc2VydCBzaG9ydCBwYWNrYWdlIGRlZmF1bHQgZG91YmxlIHB1YmxpYyB0cnkgdGhpcyBzd2l0Y2ggY29udGludWUgdGhyb3dzIHByb3RlY3RlZCBwdWJsaWMgcHJpdmF0ZSBtb2R1bGUgcmVxdWlyZXMgZXhwb3J0cyBkbyIsXz17Y2xhc3NOYW1lOiJtZXRhIixiZWdpbjoiQCIrbyxjb250YWluczpbe2JlZ2luOi9cKC8sZW5kOi9cKS8sY29udGFpbnM6WyJzZWxmIl19XX07Y29uc3QgZD1uO3JldHVybntuYW1lOiJKYXZhIixhbGlhc2VzOlsianNwIl0sa2V5d29yZHM6YyxpbGxlZ2FsOi88XC98Iy8sY29udGFpbnM6W2kuQ09NTUVOVCgiL1xcKlxcKiIsIlxcKi8iLHtyZWxldmFuY2U6MCxjb250YWluczpbe2JlZ2luOi9cdytALyxyZWxldmFuY2U6MH0se2NsYXNzTmFtZToiZG9jdGFnIixiZWdpbjoiQFtBLVphLXpdKyJ9XX0pLHtiZWdpbjovaW1wb3J0IGphdmFcLlthLXpdK1wuLyxrZXl3b3JkczoiaW1wb3J0IixyZWxldmFuY2U6Mn0saS5DX0xJTkVfQ09NTUVOVF9NT0RFLGkuQ19CTE9DS19DT01NRU5UX01PREUsaS5BUE9TX1NUUklOR19NT0RFLGkuUVVPVEVfU1RSSU5HX01PREUse2NsYXNzTmFtZToiY2xhc3MiLGJlZ2luS2V5d29yZHM6ImNsYXNzIGludGVyZmFjZSBlbnVtIixlbmQ6L1t7Oz1dLyxleGNsdWRlRW5kOiEwLHJlbGV2YW5jZToxLGtleXdvcmRzOiJjbGFzcyBpbnRlcmZhY2UgZW51bSIsaWxsZWdhbDovWzoiXFtcXV0vLGNvbnRhaW5zOlt7YmVnaW5LZXl3b3JkczoiZXh0ZW5kcyBpbXBsZW1lbnRzIn0saS5VTkRFUlNDT1JFX1RJVExFX01PREVdfSx7YmVnaW5LZXl3b3JkczoibmV3IHRocm93IHJldHVybiBlbHNlIixyZWxldmFuY2U6MH0se2NsYXNzTmFtZToiY2xhc3MiLGJlZ2luOiJyZWNvcmRcXHMrIitpLlVOREVSU0NPUkVfSURFTlRfUkUrIlxccypcXCgiLHJldHVybkJlZ2luOiEwLGV4Y2x1ZGVFbmQ6ITAsZW5kOi9bezs9XS8sa2V5d29yZHM6Yyxjb250YWluczpbe2JlZ2luS2V5d29yZHM6InJlY29yZCJ9LHtiZWdpbjppLlVOREVSU0NPUkVfSURFTlRfUkUrIlxccypcXCgiLHJldHVybkJlZ2luOiEwLHJlbGV2YW5jZTowLGNvbnRhaW5zOltpLlVOREVSU0NPUkVfVElUTEVfTU9ERV19LHtjbGFzc05hbWU6InBhcmFtcyIsYmVnaW46L1woLyxlbmQ6L1wpLyxrZXl3b3JkczpjLHJlbGV2YW5jZTowLGNvbnRhaW5zOltpLkNfQkxPQ0tfQ09NTUVOVF9NT0RFXX0saS5DX0xJTkVfQ09NTUVOVF9NT0RFLGkuQ19CTE9DS19DT01NRU5UX01PREVdfSx7Y2xhc3NOYW1lOiJmdW5jdGlvbiIsYmVnaW46IigiK2wrIlxccyspKyIraS5VTkRFUlNDT1JFX0lERU5UX1JFKyJcXHMqXFwoIixyZXR1cm5CZWdpbjohMCxlbmQ6L1t7Oz1dLyxleGNsdWRlRW5kOiEwLGtleXdvcmRzOmMsY29udGFpbnM6W3tiZWdpbjppLlVOREVSU0NPUkVfSURFTlRfUkUrIlxccypcXCgiLHJldHVybkJlZ2luOiEwLHJlbGV2YW5jZTowLGNvbnRhaW5zOltpLlVOREVSU0NPUkVfVElUTEVfTU9ERV19LHtjbGFzc05hbWU6InBhcmFtcyIsYmVnaW46L1woLyxlbmQ6L1wpLyxrZXl3b3JkczpjLHJlbGV2YW5jZTowLGNvbnRhaW5zOltfLGkuQVBPU19TVFJJTkdfTU9ERSxpLlFVT1RFX1NUUklOR19NT0RFLGQsaS5DX0JMT0NLX0NPTU1FTlRfTU9ERV19LGkuQ19MSU5FX0NPTU1FTlRfTU9ERSxpLkNfQkxPQ0tfQ09NTUVOVF9NT0RFXX0sZCxfXX19cy5leHBvcnRzPWF9LDIxNTA5OmZ1bmN0aW9uKHMpe2NvbnN0IHI9IltBLVphLXokX11bMC05QS1aYS16JF9dKiIsZT1bImFzIiwiaW4iLCJvZiIsImlmIiwiZm9yIiwid2hpbGUiLCJmaW5hbGx5IiwidmFyIiwibmV3IiwiZnVuY3Rpb24iLCJkbyIsInJldHVybiIsInZvaWQiLCJlbHNlIiwiYnJlYWsiLCJjYXRjaCIsImluc3RhbmNlb2YiLCJ3aXRoIiwidGhyb3ciLCJjYXNlIiwiZGVmYXVsdCIsInRyeSIsInN3aXRjaCIsImNvbnRpbnVlIiwidHlwZW9mIiwiZGVsZXRlIiwibGV0IiwieWllbGQiLCJjb25zdCIsImNsYXNzIiwiZGVidWdnZXIiLCJhc3luYyIsImF3YWl0Iiwic3RhdGljIiwiaW1wb3J0IiwiZnJvbSIsImV4cG9ydCIsImV4dGVuZHMiXSx0PVsidHJ1ZSIsImZhbHNlIiwibnVsbCIsInVuZGVmaW5lZCIsIk5hTiIsIkluZmluaXR5Il0sbj1bIkludGwiLCJEYXRhVmlldyIsIk51bWJlciIsIk1hdGgiLCJEYXRlIiwiU3RyaW5nIiwiUmVnRXhwIiwiT2JqZWN0IiwiRnVuY3Rpb24iLCJCb29sZWFuIiwiRXJyb3IiLCJTeW1ib2wiLCJTZXQiLCJNYXAiLCJXZWFrU2V0IiwiV2Vha01hcCIsIlByb3h5IiwiUmVmbGVjdCIsIkpTT04iLCJQcm9taXNlIiwiRmxvYXQ2NEFycmF5IiwiSW50MTZBcnJheSIsIkludDMyQXJyYXkiLCJJbnQ4QXJyYXkiLCJVaW50MTZBcnJheSIsIlVpbnQzMkFycmF5IiwiRmxvYXQzMkFycmF5IiwiQXJyYXkiLCJVaW50OEFycmF5IiwiVWludDhDbGFtcGVkQXJyYXkiLCJBcnJheUJ1ZmZlciIsIkJpZ0ludDY0QXJyYXkiLCJCaWdVaW50NjRBcnJheSIsIkJpZ0ludCJdLGE9WyJFdmFsRXJyb3IiLCJJbnRlcm5hbEVycm9yIiwiUmFuZ2VFcnJvciIsIlJlZmVyZW5jZUVycm9yIiwiU3ludGF4RXJyb3IiLCJUeXBlRXJyb3IiLCJVUklFcnJvciJdLGk9WyJzZXRJbnRlcnZhbCIsInNldFRpbWVvdXQiLCJjbGVhckludGVydmFsIiwiY2xlYXJUaW1lb3V0IiwicmVxdWlyZSIsImV4cG9ydHMiLCJldmFsIiwiaXNGaW5pdGUiLCJpc05hTiIsInBhcnNlRmxvYXQiLCJwYXJzZUludCIsImRlY29kZVVSSSIsImRlY29kZVVSSUNvbXBvbmVudCIsImVuY29kZVVSSSIsImVuY29kZVVSSUNvbXBvbmVudCIsImVzY2FwZSIsInVuZXNjYXBlIl0sbz1bImFyZ3VtZW50cyIsInRoaXMiLCJzdXBlciIsImNvbnNvbGUiLCJ3aW5kb3ciLCJkb2N1bWVudCIsImxvY2FsU3RvcmFnZSIsIm1vZHVsZSIsImdsb2JhbCJdLGw9W10uY29uY2F0KGksbyxuLGEpO2Z1bmN0aW9uIGMoRSl7cmV0dXJuIEU/dHlwZW9mIEU9PSJzdHJpbmciP0U6RS5zb3VyY2U6bnVsbH1mdW5jdGlvbiBfKEUpe3JldHVybiBkKCIoPz0iLEUsIikiKX1mdW5jdGlvbiBkKC4uLkUpe3JldHVybiBFLm1hcChtPT5jKG0pKS5qb2luKCIiKX1mdW5jdGlvbiBnKEUpe2NvbnN0IHU9KFose2FmdGVyOkp9KT0+e2NvbnN0IG9lPSI8LyIrWlswXS5zbGljZSgxKTtyZXR1cm4gWi5pbnB1dC5pbmRleE9mKG9lLEopIT09LTF9LG09cixTPXtiZWdpbjoiPD4iLGVuZDoiPC8+In0sVD17YmVnaW46LzxbQS1aYS16MC05XFwuXzotXSsvLGVuZDovXC9bQS1aYS16MC05XFwuXzotXSs+fFwvPi8saXNUcnVseU9wZW5pbmdUYWc6KFosSik9Pntjb25zdCBvZT1aWzBdLmxlbmd0aCtaLmluZGV4LHNlPVouaW5wdXRbb2VdO2lmKHNlPT09IjwiKXtKLmlnbm9yZU1hdGNoKCk7cmV0dXJufXNlPT09Ij4iJiYodShaLHthZnRlcjpvZX0pfHxKLmlnbm9yZU1hdGNoKCkpfX0sYj17JHBhdHRlcm46cixrZXl3b3JkOmUsbGl0ZXJhbDp0LGJ1aWx0X2luOmx9LGY9IlswLTldKF8/WzAtOV0pKiIsQz1gXFwuKCR7Zn0pYCxPPSIwfFsxLTldKF8/WzAtOV0pKnwwWzAtN10qWzg5XVswLTldKiIsRD17Y2xhc3NOYW1lOiJudW1iZXIiLHZhcmlhbnRzOlt7YmVnaW46YChcXGIoJHtPfSkoKCR7Q30pfFxcLik/fCgke0N9KSlbZUVdWystXT8oJHtmfSlcXGJgfSx7YmVnaW46YFxcYigke099KVxcYigoJHtDfSlcXGJ8XFwuKT98KCR7Q30pXFxiYH0se2JlZ2luOiJcXGIoMHxbMS05XShfP1swLTldKSopblxcYiJ9LHtiZWdpbjoiXFxiMFt4WF1bMC05YS1mQS1GXShfP1swLTlhLWZBLUZdKSpuP1xcYiJ9LHtiZWdpbjoiXFxiMFtiQl1bMC0xXShfP1swLTFdKSpuP1xcYiJ9LHtiZWdpbjoiXFxiMFtvT11bMC03XShfP1swLTddKSpuP1xcYiJ9LHtiZWdpbjoiXFxiMFswLTddK24/XFxiIn1dLHJlbGV2YW5jZTowfSx5PXtjbGFzc05hbWU6InN1YnN0IixiZWdpbjoiXFwkXFx7IixlbmQ6IlxcfSIsa2V5d29yZHM6Yixjb250YWluczpbXX0sQT17YmVnaW46Imh0bWxgIixlbmQ6IiIsc3RhcnRzOntlbmQ6ImAiLHJldHVybkVuZDohMSxjb250YWluczpbRS5CQUNLU0xBU0hfRVNDQVBFLHldLHN1Ykxhbmd1YWdlOiJ4bWwifX0saz17YmVnaW46ImNzc2AiLGVuZDoiIixzdGFydHM6e2VuZDoiYCIscmV0dXJuRW5kOiExLGNvbnRhaW5zOltFLkJBQ0tTTEFTSF9FU0NBUEUseV0sc3ViTGFuZ3VhZ2U6ImNzcyJ9fSxCPXtjbGFzc05hbWU6InN0cmluZyIsYmVnaW46ImAiLGVuZDoiYCIsY29udGFpbnM6W0UuQkFDS1NMQVNIX0VTQ0FQRSx5XX0sSz17Y2xhc3NOYW1lOiJjb21tZW50Iix2YXJpYW50czpbRS5DT01NRU5UKC9cL1wqXCooPyFcLykvLCJcXCovIix7cmVsZXZhbmNlOjAsY29udGFpbnM6W3tjbGFzc05hbWU6ImRvY3RhZyIsYmVnaW46IkBbQS1aYS16XSsiLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJ0eXBlIixiZWdpbjoiXFx7IixlbmQ6IlxcfSIscmVsZXZhbmNlOjB9LHtjbGFzc05hbWU6InZhcmlhYmxlIixiZWdpbjptKyIoPz1cXHMqKC0pfCQpIixlbmRzUGFyZW50OiEwLHJlbGV2YW5jZTowfSx7YmVnaW46Lyg/PVteXG5dKVxzLyxyZWxldmFuY2U6MH1dfV19KSxFLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLEUuQ19MSU5FX0NPTU1FTlRfTU9ERV19LHc9W0UuQVBPU19TVFJJTkdfTU9ERSxFLlFVT1RFX1NUUklOR19NT0RFLEEsayxCLEQsRS5SRUdFWFBfTU9ERV07eS5jb250YWlucz13LmNvbmNhdCh7YmVnaW46L1x7LyxlbmQ6L1x9LyxrZXl3b3JkczpiLGNvbnRhaW5zOlsic2VsZiJdLmNvbmNhdCh3KX0pO2NvbnN0IFg9W10uY29uY2F0KEsseS5jb250YWlucyksY2U9WC5jb25jYXQoW3tiZWdpbjovXCgvLGVuZDovXCkvLGtleXdvcmRzOmIsY29udGFpbnM6WyJzZWxmIl0uY29uY2F0KFgpfV0pLGFlPXtjbGFzc05hbWU6InBhcmFtcyIsYmVnaW46L1woLyxlbmQ6L1wpLyxleGNsdWRlQmVnaW46ITAsZXhjbHVkZUVuZDohMCxrZXl3b3JkczpiLGNvbnRhaW5zOmNlfTtyZXR1cm57bmFtZToiSmF2YXNjcmlwdCIsYWxpYXNlczpbImpzIiwianN4IiwibWpzIiwiY2pzIl0sa2V5d29yZHM6YixleHBvcnRzOntQQVJBTVNfQ09OVEFJTlM6Y2V9LGlsbGVnYWw6LyMoPyFbJF9BLXpdKS8sY29udGFpbnM6W0UuU0hFQkFORyh7bGFiZWw6InNoZWJhbmciLGJpbmFyeToibm9kZSIscmVsZXZhbmNlOjV9KSx7bGFiZWw6InVzZV9zdHJpY3QiLGNsYXNzTmFtZToibWV0YSIscmVsZXZhbmNlOjEwLGJlZ2luOi9eXHMqWyciXXVzZSAoc3RyaWN0fGFzbSlbJyJdL30sRS5BUE9TX1NUUklOR19NT0RFLEUuUVVPVEVfU1RSSU5HX01PREUsQSxrLEIsSyxELHtiZWdpbjpkKC9beyxcbl1ccyovLF8oZCgvKCgoXC9cLy4qJCl8KFwvXCooXCpbXi9dfFteKl0pKlwqXC8pKVxzKikqLyxtKyJcXHMqOiIpKSkscmVsZXZhbmNlOjAsY29udGFpbnM6W3tjbGFzc05hbWU6ImF0dHIiLGJlZ2luOm0rXygiXFxzKjoiKSxyZWxldmFuY2U6MH1dfSx7YmVnaW46IigiK0UuUkVfU1RBUlRFUlNfUkUrInxcXGIoY2FzZXxyZXR1cm58dGhyb3cpXFxiKVxccyoiLGtleXdvcmRzOiJyZXR1cm4gdGhyb3cgY2FzZSIsY29udGFpbnM6W0ssRS5SRUdFWFBfTU9ERSx7Y2xhc3NOYW1lOiJmdW5jdGlvbiIsYmVnaW46IihcXChbXigpXSooXFwoW14oKV0qKFxcKFteKCldKlxcKVteKCldKikqXFwpW14oKV0qKSpcXCl8IitFLlVOREVSU0NPUkVfSURFTlRfUkUrIilcXHMqPT4iLHJldHVybkJlZ2luOiEwLGVuZDoiXFxzKj0+Iixjb250YWluczpbe2NsYXNzTmFtZToicGFyYW1zIix2YXJpYW50czpbe2JlZ2luOkUuVU5ERVJTQ09SRV9JREVOVF9SRSxyZWxldmFuY2U6MH0se2NsYXNzTmFtZTpudWxsLGJlZ2luOi9cKFxzKlwpLyxza2lwOiEwfSx7YmVnaW46L1woLyxlbmQ6L1wpLyxleGNsdWRlQmVnaW46ITAsZXhjbHVkZUVuZDohMCxrZXl3b3JkczpiLGNvbnRhaW5zOmNlfV19XX0se2JlZ2luOi8sLyxyZWxldmFuY2U6MH0se2NsYXNzTmFtZToiIixiZWdpbjovXHMvLGVuZDovXHMqLyxza2lwOiEwfSx7dmFyaWFudHM6W3tiZWdpbjpTLmJlZ2luLGVuZDpTLmVuZH0se2JlZ2luOlQuYmVnaW4sIm9uOmJlZ2luIjpULmlzVHJ1bHlPcGVuaW5nVGFnLGVuZDpULmVuZH1dLHN1Ykxhbmd1YWdlOiJ4bWwiLGNvbnRhaW5zOlt7YmVnaW46VC5iZWdpbixlbmQ6VC5lbmQsc2tpcDohMCxjb250YWluczpbInNlbGYiXX1dfV0scmVsZXZhbmNlOjB9LHtjbGFzc05hbWU6ImZ1bmN0aW9uIixiZWdpbktleXdvcmRzOiJmdW5jdGlvbiIsZW5kOi9beztdLyxleGNsdWRlRW5kOiEwLGtleXdvcmRzOmIsY29udGFpbnM6WyJzZWxmIixFLmluaGVyaXQoRS5USVRMRV9NT0RFLHtiZWdpbjptfSksYWVdLGlsbGVnYWw6LyUvfSx7YmVnaW5LZXl3b3Jkczoid2hpbGUgaWYgc3dpdGNoIGNhdGNoIGZvciJ9LHtjbGFzc05hbWU6ImZ1bmN0aW9uIixiZWdpbjpFLlVOREVSU0NPUkVfSURFTlRfUkUrIlxcKFteKCldKihcXChbXigpXSooXFwoW14oKV0qXFwpW14oKV0qKSpcXClbXigpXSopKlxcKVxccypcXHsiLHJldHVybkJlZ2luOiEwLGNvbnRhaW5zOlthZSxFLmluaGVyaXQoRS5USVRMRV9NT0RFLHtiZWdpbjptfSldfSx7dmFyaWFudHM6W3tiZWdpbjoiXFwuIittfSx7YmVnaW46IlxcJCIrbX1dLHJlbGV2YW5jZTowfSx7Y2xhc3NOYW1lOiJjbGFzcyIsYmVnaW5LZXl3b3JkczoiY2xhc3MiLGVuZDovW3s7PV0vLGV4Y2x1ZGVFbmQ6ITAsaWxsZWdhbDovWzoiW1xdXS8sY29udGFpbnM6W3tiZWdpbktleXdvcmRzOiJleHRlbmRzIn0sRS5VTkRFUlNDT1JFX1RJVExFX01PREVdfSx7YmVnaW46L1xiKD89Y29uc3RydWN0b3IpLyxlbmQ6L1t7O10vLGV4Y2x1ZGVFbmQ6ITAsY29udGFpbnM6W0UuaW5oZXJpdChFLlRJVExFX01PREUse2JlZ2luOm19KSwic2VsZiIsYWVdfSx7YmVnaW46IihnZXR8c2V0KVxccysoPz0iK20rIlxcKCkiLGVuZDovXHsvLGtleXdvcmRzOiJnZXQgc2V0Iixjb250YWluczpbRS5pbmhlcml0KEUuVElUTEVfTU9ERSx7YmVnaW46bX0pLHtiZWdpbjovXChcKS99LGFlXX0se2JlZ2luOi9cJFsoLl0vfV19fXMuZXhwb3J0cz1nfSw1ODA4NTpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGUpe2NvbnN0IG49e2NsYXNzTmFtZToicGFyYW1zIixiZWdpbjovXCgvLGVuZDovXCkvLGNvbnRhaW5zOlt7YmVnaW46L1tcdy1dKyAqPS8scmV0dXJuQmVnaW46ITAscmVsZXZhbmNlOjAsY29udGFpbnM6W3tjbGFzc05hbWU6ImF0dHIiLGJlZ2luOi9bXHctXSsvfV19XSxyZWxldmFuY2U6MH0sYT17Y2xhc3NOYW1lOiJmdW5jdGlvbiIsYmVnaW46LzpbXHdcLS5dKy8scmVsZXZhbmNlOjB9LGk9e2NsYXNzTmFtZToic3RyaW5nIixiZWdpbjovXEIoW1wvLl0pW1x3XC0uXC89XSsvfSxvPXtjbGFzc05hbWU6InBhcmFtcyIsYmVnaW46Ly0tW1x3XC09XC9dKy99O3JldHVybntuYW1lOiJKQm9zcyBDTEkiLGFsaWFzZXM6WyJ3aWxkZmx5LWNsaSJdLGtleXdvcmRzOnskcGF0dGVybjoiW2Etei1dKyIsa2V5d29yZDoiYWxpYXMgYmF0Y2ggY2QgY2xlYXIgY29tbWFuZCBjb25uZWN0IGNvbm5lY3Rpb24tZmFjdG9yeSBjb25uZWN0aW9uLWluZm8gZGF0YS1zb3VyY2UgZGVwbG95IGRlcGxveW1lbnQtaW5mbyBkZXBsb3ltZW50LW92ZXJsYXkgZWNobyBlY2hvLWRtciBoZWxwIGhpc3RvcnkgaWYgamRiYy1kcml2ZXItaW5mbyBqbXMtcXVldWV8MjAgam1zLXRvcGljfDIwIGxzIHBhdGNoIHB3ZCBxdWl0IHJlYWQtYXR0cmlidXRlIHJlYWQtb3BlcmF0aW9uIHJlbG9hZCByb2xsb3V0LXBsYW4gcnVuLWJhdGNoIHNldCBzaHV0ZG93biB0cnkgdW5hbGlhcyB1bmRlcGxveSB1bnNldCB2ZXJzaW9uIHhhLWRhdGEtc291cmNlIixsaXRlcmFsOiJ0cnVlIGZhbHNlIn0sY29udGFpbnM6W2UuSEFTSF9DT01NRU5UX01PREUsZS5RVU9URV9TVFJJTkdfTU9ERSxvLGEsaSxuXX19cy5leHBvcnRzPXJ9LDM1NTQ4OmZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHIoZSl7Y29uc3QgdD17bGl0ZXJhbDoidHJ1ZSBmYWxzZSBudWxsIn0sbj1bZS5DX0xJTkVfQ09NTUVOVF9NT0RFLGUuQ19CTE9DS19DT01NRU5UX01PREVdLGE9W2UuUVVPVEVfU1RSSU5HX01PREUsZS5DX05VTUJFUl9NT0RFXSxpPXtlbmQ6IiwiLGVuZHNXaXRoUGFyZW50OiEwLGV4Y2x1ZGVFbmQ6ITAsY29udGFpbnM6YSxrZXl3b3Jkczp0fSxvPXtiZWdpbjovXHsvLGVuZDovXH0vLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJhdHRyIixiZWdpbjovIi8sZW5kOi8iLyxjb250YWluczpbZS5CQUNLU0xBU0hfRVNDQVBFXSxpbGxlZ2FsOiJcXG4ifSxlLmluaGVyaXQoaSx7YmVnaW46LzovfSldLmNvbmNhdChuKSxpbGxlZ2FsOiJcXFMifSxsPXtiZWdpbjoiXFxbIixlbmQ6IlxcXSIsY29udGFpbnM6W2UuaW5oZXJpdChpKV0saWxsZWdhbDoiXFxTIn07cmV0dXJuIGEucHVzaChvLGwpLG4uZm9yRWFjaChmdW5jdGlvbihjKXthLnB1c2goYyl9KSx7bmFtZToiSlNPTiIsY29udGFpbnM6YSxrZXl3b3Jkczp0LGlsbGVnYWw6IlxcUyJ9fXMuZXhwb3J0cz1yfSw0MzI2OTpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGUpe3JldHVybntuYW1lOiJKdWxpYSBSRVBMIixjb250YWluczpbe2NsYXNzTmFtZToibWV0YSIsYmVnaW46L15qdWxpYT4vLHJlbGV2YW5jZToxMCxzdGFydHM6e2VuZDovXig/IVsgXXs2fSkvLHN1Ykxhbmd1YWdlOiJqdWxpYSJ9LGFsaWFzZXM6WyJqbGRvY3Rlc3QiXX1dfX1zLmV4cG9ydHM9cn0sMTMyMTY6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihlKXt2YXIgdD0iW0EtWmEtel9cXHUwMEExLVxcdUZGRkZdW0EtWmEtel8wLTlcXHUwMEExLVxcdUZGRkZdKiIsbj1bImJhcmVtb2R1bGUiLCJiZWdpbiIsImJyZWFrIiwiY2F0Y2giLCJjY2FsbCIsImNvbnN0IiwiY29udGludWUiLCJkbyIsImVsc2UiLCJlbHNlaWYiLCJlbmQiLCJleHBvcnQiLCJmYWxzZSIsImZpbmFsbHkiLCJmb3IiLCJmdW5jdGlvbiIsImdsb2JhbCIsImlmIiwiaW1wb3J0IiwiaW4iLCJpc2EiLCJsZXQiLCJsb2NhbCIsIm1hY3JvIiwibW9kdWxlIiwicXVvdGUiLCJyZXR1cm4iLCJ0cnVlIiwidHJ5IiwidXNpbmciLCJ3aGVyZSIsIndoaWxlIl0sYT1bIkFSR1MiLCJDX05VTEwiLCJERVBPVF9QQVRIIiwiRU5ESUFOX0JPTSIsIkVOViIsIkluZiIsIkluZjE2IiwiSW5mMzIiLCJJbmY2NCIsIkluc2VydGlvblNvcnQiLCJMT0FEX1BBVEgiLCJNZXJnZVNvcnQiLCJOYU4iLCJOYU4xNiIsIk5hTjMyIiwiTmFONjQiLCJQUk9HUkFNX0ZJTEUiLCJRdWlja1NvcnQiLCJSb3VuZERvd24iLCJSb3VuZEZyb21aZXJvIiwiUm91bmROZWFyZXN0IiwiUm91bmROZWFyZXN0VGllc0F3YXkiLCJSb3VuZE5lYXJlc3RUaWVzVXAiLCJSb3VuZFRvWmVybyIsIlJvdW5kVXAiLCJWRVJTSU9OfDAiLCJkZXZudWxsIiwiZmFsc2UiLCJpbSIsIm1pc3NpbmciLCJub3RoaW5nIiwicGkiLCJzdGRlcnIiLCJzdGRpbiIsInN0ZG91dCIsInRydWUiLCJ1bmRlZiIsIlx1MDNDMCIsIlx1MjEyRiJdLGk9WyJBYnN0cmFjdEFycmF5IiwiQWJzdHJhY3RDaGFubmVsIiwiQWJzdHJhY3RDaGFyIiwiQWJzdHJhY3REaWN0IiwiQWJzdHJhY3REaXNwbGF5IiwiQWJzdHJhY3RGbG9hdCIsIkFic3RyYWN0SXJyYXRpb25hbCIsIkFic3RyYWN0TWF0cml4IiwiQWJzdHJhY3RSYW5nZSIsIkFic3RyYWN0U2V0IiwiQWJzdHJhY3RTdHJpbmciLCJBYnN0cmFjdFVuaXRSYW5nZSIsIkFic3RyYWN0VmVjT3JNYXQiLCJBYnN0cmFjdFZlY3RvciIsIkFueSIsIkFyZ3VtZW50RXJyb3IiLCJBcnJheSIsIkFzc2VydGlvbkVycm9yIiwiQmlnRmxvYXQiLCJCaWdJbnQiLCJCaXRBcnJheSIsIkJpdE1hdHJpeCIsIkJpdFNldCIsIkJpdFZlY3RvciIsIkJvb2wiLCJCb3VuZHNFcnJvciIsIkNhcHR1cmVkRXhjZXB0aW9uIiwiQ2FydGVzaWFuSW5kZXgiLCJDYXJ0ZXNpYW5JbmRpY2VzIiwiQ2NoYXIiLCJDZG91YmxlIiwiQ2Zsb2F0IiwiQ2hhbm5lbCIsIkNoYXIiLCJDaW50IiwiQ2ludG1heF90IiwiQ2xvbmciLCJDbG9uZ2xvbmciLCJDbWQiLCJDb2xvbiIsIkNvbXBsZXgiLCJDb21wbGV4RjE2IiwiQ29tcGxleEYzMiIsIkNvbXBsZXhGNjQiLCJDb21wb3NpdGVFeGNlcHRpb24iLCJDb25kaXRpb24iLCJDcHRyZGlmZl90IiwiQ3Nob3J0IiwiQ3NpemVfdCIsIkNzc2l6ZV90IiwiQ3N0cmluZyIsIkN1Y2hhciIsIkN1aW50IiwiQ3VpbnRtYXhfdCIsIkN1bG9uZyIsIkN1bG9uZ2xvbmciLCJDdXNob3J0IiwiQ3ZvaWQiLCJDd2NoYXJfdCIsIkN3c3RyaW5nIiwiRGF0YVR5cGUiLCJEZW5zZUFycmF5IiwiRGVuc2VNYXRyaXgiLCJEZW5zZVZlY09yTWF0IiwiRGVuc2VWZWN0b3IiLCJEaWN0IiwiRGltZW5zaW9uTWlzbWF0Y2giLCJEaW1zIiwiRGl2aWRlRXJyb3IiLCJEb21haW5FcnJvciIsIkVPRkVycm9yIiwiRW51bSIsIkVycm9yRXhjZXB0aW9uIiwiRXhjZXB0aW9uIiwiRXhwb25lbnRpYWxCYWNrT2ZmIiwiRXhwciIsIkZsb2F0MTYiLCJGbG9hdDMyIiwiRmxvYXQ2NCIsIkZ1bmN0aW9uIiwiR2xvYmFsUmVmIiwiSFRNTCIsIklPIiwiSU9CdWZmZXIiLCJJT0NvbnRleHQiLCJJT1N0cmVhbSIsIklkRGljdCIsIkluZGV4Q2FydGVzaWFuIiwiSW5kZXhMaW5lYXIiLCJJbmRleFN0eWxlIiwiSW5leGFjdEVycm9yIiwiSW5pdEVycm9yIiwiSW50IiwiSW50MTI4IiwiSW50MTYiLCJJbnQzMiIsIkludDY0IiwiSW50OCIsIkludGVnZXIiLCJJbnRlcnJ1cHRFeGNlcHRpb24iLCJJbnZhbGlkU3RhdGVFeGNlcHRpb24iLCJJcnJhdGlvbmFsIiwiS2V5RXJyb3IiLCJMaW5SYW5nZSIsIkxpbmVOdW1iZXJOb2RlIiwiTGluZWFySW5kaWNlcyIsIkxvYWRFcnJvciIsIk1JTUUiLCJNYXRyaXgiLCJNZXRob2QiLCJNZXRob2RFcnJvciIsIk1pc3NpbmciLCJNaXNzaW5nRXhjZXB0aW9uIiwiTW9kdWxlIiwiTlR1cGxlIiwiTmFtZWRUdXBsZSIsIk5vdGhpbmciLCJOdW1iZXIiLCJPcmRpbmFsUmFuZ2UiLCJPdXRPZk1lbW9yeUVycm9yIiwiT3ZlcmZsb3dFcnJvciIsIlBhaXIiLCJQYXJ0aWFsUXVpY2tTb3J0IiwiUGVybXV0ZWREaW1zQXJyYXkiLCJQaXBlIiwiUHJvY2Vzc0ZhaWxlZEV4Y2VwdGlvbiIsIlB0ciIsIlF1b3RlTm9kZSIsIlJhdGlvbmFsIiwiUmF3RkQiLCJSZWFkT25seU1lbW9yeUVycm9yIiwiUmVhbCIsIlJlZW50cmFudExvY2siLCJSZWYiLCJSZWdleCIsIlJlZ2V4TWF0Y2giLCJSb3VuZGluZ01vZGUiLCJTZWdtZW50YXRpb25GYXVsdCIsIlNldCIsIlNpZ25lZCIsIlNvbWUiLCJTdGFja092ZXJmbG93RXJyb3IiLCJTdGVwUmFuZ2UiLCJTdGVwUmFuZ2VMZW4iLCJTdHJpZGVkQXJyYXkiLCJTdHJpZGVkTWF0cml4IiwiU3RyaWRlZFZlY09yTWF0IiwiU3RyaWRlZFZlY3RvciIsIlN0cmluZyIsIlN0cmluZ0luZGV4RXJyb3IiLCJTdWJBcnJheSIsIlN1YlN0cmluZyIsIlN1YnN0aXR1dGlvblN0cmluZyIsIlN5bWJvbCIsIlN5c3RlbUVycm9yIiwiVGFzayIsIlRhc2tGYWlsZWRFeGNlcHRpb24iLCJUZXh0IiwiVGV4dERpc3BsYXkiLCJUaW1lciIsIlR1cGxlIiwiVHlwZSIsIlR5cGVFcnJvciIsIlR5cGVWYXIiLCJVSW50IiwiVUludDEyOCIsIlVJbnQxNiIsIlVJbnQzMiIsIlVJbnQ2NCIsIlVJbnQ4IiwiVW5kZWZJbml0aWFsaXplciIsIlVuZGVmS2V5d29yZEVycm9yIiwiVW5kZWZSZWZFcnJvciIsIlVuZGVmVmFyRXJyb3IiLCJVbmlvbiIsIlVuaW9uQWxsIiwiVW5pdFJhbmdlIiwiVW5zaWduZWQiLCJWYWwiLCJWYXJhcmciLCJWZWNFbGVtZW50IiwiVmVjT3JNYXQiLCJWZWN0b3IiLCJWZXJzaW9uTnVtYmVyIiwiV2Vha0tleURpY3QiLCJXZWFrUmVmIl0sbz17JHBhdHRlcm46dCxrZXl3b3JkOm4sbGl0ZXJhbDphLGJ1aWx0X2luOml9LGw9e2tleXdvcmRzOm8saWxsZWdhbDovPFwvL30sYz17Y2xhc3NOYW1lOiJudW1iZXIiLGJlZ2luOi8oXGIweFtcZF9dKihcLltcZF9dKik/fDB4XC5cZFtcZF9dKilwWy0rXT9cZCt8XGIwW2JveF1bYS1mQS1GMC05XVthLWZBLUYwLTlfXSp8KFxiXGRbXGRfXSooXC5bXGRfXSopP3xcLlxkW1xkX10qKShbZUVmRl1bLStdP1xkKyk/LyxyZWxldmFuY2U6MH0sXz17Y2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOi8nKC58XFxbeFh1VV1bYS16QS1aMC05XSspJy99LGQ9e2NsYXNzTmFtZToic3Vic3QiLGJlZ2luOi9cJFwoLyxlbmQ6L1wpLyxrZXl3b3JkczpvfSxnPXtjbGFzc05hbWU6InZhcmlhYmxlIixiZWdpbjoiXFwkIit0fSxFPXtjbGFzc05hbWU6InN0cmluZyIsY29udGFpbnM6W2UuQkFDS1NMQVNIX0VTQ0FQRSxkLGddLHZhcmlhbnRzOlt7YmVnaW46L1x3KiIiIi8sZW5kOi8iIiJcdyovLHJlbGV2YW5jZToxMH0se2JlZ2luOi9cdyoiLyxlbmQ6LyJcdyovfV19LHU9e2NsYXNzTmFtZToic3RyaW5nIixjb250YWluczpbZS5CQUNLU0xBU0hfRVNDQVBFLGQsZ10sYmVnaW46ImAiLGVuZDoiYCJ9LG09e2NsYXNzTmFtZToibWV0YSIsYmVnaW46IkAiK3R9LFM9e2NsYXNzTmFtZToiY29tbWVudCIsdmFyaWFudHM6W3tiZWdpbjoiIz0iLGVuZDoiPSMiLHJlbGV2YW5jZToxMH0se2JlZ2luOiIjIixlbmQ6IiQifV19O3JldHVybiBsLm5hbWU9Ikp1bGlhIixsLmNvbnRhaW5zPVtjLF8sRSx1LG0sUyxlLkhBU0hfQ09NTUVOVF9NT0RFLHtjbGFzc05hbWU6ImtleXdvcmQiLGJlZ2luOiJcXGIoKChhYnN0cmFjdHxwcmltaXRpdmUpXFxzKyl0eXBlfChtdXRhYmxlXFxzKyk/c3RydWN0KVxcYiJ9LHtiZWdpbjovPDovfV0sZC5jb250YWlucz1sLmNvbnRhaW5zLGx9cy5leHBvcnRzPXJ9LDg5OTM1OmZ1bmN0aW9uKHMpe3ZhciByPSJbMC05XShfKlswLTldKSoiLGU9YFxcLigke3J9KWAsdD0iWzAtOWEtZkEtRl0oXypbMC05YS1mQS1GXSkqIixuPXtjbGFzc05hbWU6Im51bWJlciIsdmFyaWFudHM6W3tiZWdpbjpgKFxcYigke3J9KSgoJHtlfSl8XFwuKT98KCR7ZX0pKVtlRV1bKy1dPygke3J9KVtmRmREXT9cXGJgfSx7YmVnaW46YFxcYigke3J9KSgoJHtlfSlbZkZkRF0/XFxifFxcLihbZkZkRF1cXGIpPylgfSx7YmVnaW46YCgke2V9KVtmRmREXT9cXGJgfSx7YmVnaW46YFxcYigke3J9KVtmRmREXVxcYmB9LHtiZWdpbjpgXFxiMFt4WF0oKCR7dH0pXFwuP3woJHt0fSk/XFwuKCR7dH0pKVtwUF1bKy1dPygke3J9KVtmRmREXT9cXGJgfSx7YmVnaW46IlxcYigwfFsxLTldKF8qWzAtOV0pKilbbExdP1xcYiJ9LHtiZWdpbjpgXFxiMFt4WF0oJHt0fSlbbExdP1xcYmB9LHtiZWdpbjoiXFxiMChfKlswLTddKSpbbExdP1xcYiJ9LHtiZWdpbjoiXFxiMFtiQl1bMDFdKF8qWzAxXSkqW2xMXT9cXGIifV0scmVsZXZhbmNlOjB9O2Z1bmN0aW9uIGEoaSl7Y29uc3Qgbz17a2V5d29yZDoiYWJzdHJhY3QgYXMgdmFsIHZhciB2YXJhcmcgZ2V0IHNldCBjbGFzcyBvYmplY3Qgb3BlbiBwcml2YXRlIHByb3RlY3RlZCBwdWJsaWMgbm9pbmxpbmUgY3Jvc3NpbmxpbmUgZHluYW1pYyBmaW5hbCBlbnVtIGlmIGVsc2UgZG8gd2hpbGUgZm9yIHdoZW4gdGhyb3cgdHJ5IGNhdGNoIGZpbmFsbHkgaW1wb3J0IHBhY2thZ2UgaXMgaW4gZnVuIG92ZXJyaWRlIGNvbXBhbmlvbiByZWlmaWVkIGlubGluZSBsYXRlaW5pdCBpbml0IGludGVyZmFjZSBhbm5vdGF0aW9uIGRhdGEgc2VhbGVkIGludGVybmFsIGluZml4IG9wZXJhdG9yIG91dCBieSBjb25zdHJ1Y3RvciBzdXBlciB0YWlscmVjIHdoZXJlIGNvbnN0IGlubmVyIHN1c3BlbmQgdHlwZWFsaWFzIGV4dGVybmFsIGV4cGVjdCBhY3R1YWwiLGJ1aWx0X2luOiJCeXRlIFNob3J0IENoYXIgSW50IExvbmcgQm9vbGVhbiBGbG9hdCBEb3VibGUgVm9pZCBVbml0IE5vdGhpbmciLGxpdGVyYWw6InRydWUgZmFsc2UgbnVsbCJ9LGw9e2NsYXNzTmFtZToia2V5d29yZCIsYmVnaW46L1xiKGJyZWFrfGNvbnRpbnVlfHJldHVybnx0aGlzKVxiLyxzdGFydHM6e2NvbnRhaW5zOlt7Y2xhc3NOYW1lOiJzeW1ib2wiLGJlZ2luOi9AXHcrL31dfX0sYz17Y2xhc3NOYW1lOiJzeW1ib2wiLGJlZ2luOmkuVU5ERVJTQ09SRV9JREVOVF9SRSsiQCJ9LF89e2NsYXNzTmFtZToic3Vic3QiLGJlZ2luOi9cJFx7LyxlbmQ6L1x9Lyxjb250YWluczpbaS5DX05VTUJFUl9NT0RFXX0sZD17Y2xhc3NOYW1lOiJ2YXJpYWJsZSIsYmVnaW46IlxcJCIraS5VTkRFUlNDT1JFX0lERU5UX1JFfSxnPXtjbGFzc05hbWU6InN0cmluZyIsdmFyaWFudHM6W3tiZWdpbjonIiIiJyxlbmQ6JyIiIig/PVteIl0pJyxjb250YWluczpbZCxfXX0se2JlZ2luOiInIixlbmQ6IiciLGlsbGVnYWw6L1xuLyxjb250YWluczpbaS5CQUNLU0xBU0hfRVNDQVBFXX0se2JlZ2luOiciJyxlbmQ6JyInLGlsbGVnYWw6L1xuLyxjb250YWluczpbaS5CQUNLU0xBU0hfRVNDQVBFLGQsX119XX07Xy5jb250YWlucy5wdXNoKGcpO2NvbnN0IEU9e2NsYXNzTmFtZToibWV0YSIsYmVnaW46IkAoPzpmaWxlfHByb3BlcnR5fGZpZWxkfGdldHxzZXR8cmVjZWl2ZXJ8cGFyYW18c2V0cGFyYW18ZGVsZWdhdGUpXFxzKjooPzpcXHMqIitpLlVOREVSU0NPUkVfSURFTlRfUkUrIik/In0sdT17Y2xhc3NOYW1lOiJtZXRhIixiZWdpbjoiQCIraS5VTkRFUlNDT1JFX0lERU5UX1JFLGNvbnRhaW5zOlt7YmVnaW46L1woLyxlbmQ6L1wpLyxjb250YWluczpbaS5pbmhlcml0KGcse2NsYXNzTmFtZToibWV0YS1zdHJpbmcifSldfV19LG09bixTPWkuQ09NTUVOVCgiL1xcKiIsIlxcKi8iLHtjb250YWluczpbaS5DX0JMT0NLX0NPTU1FTlRfTU9ERV19KSxUPXt2YXJpYW50czpbe2NsYXNzTmFtZToidHlwZSIsYmVnaW46aS5VTkRFUlNDT1JFX0lERU5UX1JFfSx7YmVnaW46L1woLyxlbmQ6L1wpLyxjb250YWluczpbXX1dfSxiPVQ7cmV0dXJuIGIudmFyaWFudHNbMV0uY29udGFpbnM9W1RdLFQudmFyaWFudHNbMV0uY29udGFpbnM9W2JdLHtuYW1lOiJLb3RsaW4iLGFsaWFzZXM6WyJrdCIsImt0cyJdLGtleXdvcmRzOm8sY29udGFpbnM6W2kuQ09NTUVOVCgiL1xcKlxcKiIsIlxcKi8iLHtyZWxldmFuY2U6MCxjb250YWluczpbe2NsYXNzTmFtZToiZG9jdGFnIixiZWdpbjoiQFtBLVphLXpdKyJ9XX0pLGkuQ19MSU5FX0NPTU1FTlRfTU9ERSxTLGwsYyxFLHUse2NsYXNzTmFtZToiZnVuY3Rpb24iLGJlZ2luS2V5d29yZHM6ImZ1biIsZW5kOiJbKF18JCIscmV0dXJuQmVnaW46ITAsZXhjbHVkZUVuZDohMCxrZXl3b3JkczpvLHJlbGV2YW5jZTo1LGNvbnRhaW5zOlt7YmVnaW46aS5VTkRFUlNDT1JFX0lERU5UX1JFKyJcXHMqXFwoIixyZXR1cm5CZWdpbjohMCxyZWxldmFuY2U6MCxjb250YWluczpbaS5VTkRFUlNDT1JFX1RJVExFX01PREVdfSx7Y2xhc3NOYW1lOiJ0eXBlIixiZWdpbjovPC8sZW5kOi8+LyxrZXl3b3JkczoicmVpZmllZCIscmVsZXZhbmNlOjB9LHtjbGFzc05hbWU6InBhcmFtcyIsYmVnaW46L1woLyxlbmQ6L1wpLyxlbmRzUGFyZW50OiEwLGtleXdvcmRzOm8scmVsZXZhbmNlOjAsY29udGFpbnM6W3tiZWdpbjovOi8sZW5kOi9bPSxcL10vLGVuZHNXaXRoUGFyZW50OiEwLGNvbnRhaW5zOltULGkuQ19MSU5FX0NPTU1FTlRfTU9ERSxTXSxyZWxldmFuY2U6MH0saS5DX0xJTkVfQ09NTUVOVF9NT0RFLFMsRSx1LGcsaS5DX05VTUJFUl9NT0RFXX0sU119LHtjbGFzc05hbWU6ImNsYXNzIixiZWdpbktleXdvcmRzOiJjbGFzcyBpbnRlcmZhY2UgdHJhaXQiLGVuZDovWzpceyhdfCQvLGV4Y2x1ZGVFbmQ6ITAsaWxsZWdhbDoiZXh0ZW5kcyBpbXBsZW1lbnRzIixjb250YWluczpbe2JlZ2luS2V5d29yZHM6InB1YmxpYyBwcm90ZWN0ZWQgaW50ZXJuYWwgcHJpdmF0ZSBjb25zdHJ1Y3RvciJ9LGkuVU5ERVJTQ09SRV9USVRMRV9NT0RFLHtjbGFzc05hbWU6InR5cGUiLGJlZ2luOi88LyxlbmQ6Lz4vLGV4Y2x1ZGVCZWdpbjohMCxleGNsdWRlRW5kOiEwLHJlbGV2YW5jZTowfSx7Y2xhc3NOYW1lOiJ0eXBlIixiZWdpbjovWyw6XVxzKi8sZW5kOi9bPFwoLF18JC8sZXhjbHVkZUJlZ2luOiEwLHJldHVybkVuZDohMH0sRSx1XX0sZyx7Y2xhc3NOYW1lOiJtZXRhIixiZWdpbjoiXiMhL3Vzci9iaW4vZW52IixlbmQ6IiQiLGlsbGVnYWw6YAorYH0sbV19fXMuZXhwb3J0cz1hfSwyMDM3MTpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGUpe2NvbnN0IHQ9IlthLXpBLVpfXVtcXHcuXSoiLG49IjxcXD8obGFzc28oc2NyaXB0KT98PSkiLGE9IlxcXXxcXD8+IixpPXskcGF0dGVybjp0KyJ8JltsZ110OyIsbGl0ZXJhbDoidHJ1ZSBmYWxzZSBub25lIG1pbmltYWwgZnVsbCBhbGwgdm9pZCBhbmQgb3Igbm90IGJ3IG5idyBldyBuZXcgY24gbmNuIGx0IGx0ZSBndCBndGUgZXEgbmVxIHJ4IG5yeCBmdCIsYnVpbHRfaW46ImFycmF5IGRhdGUgZGVjaW1hbCBkdXJhdGlvbiBpbnRlZ2VyIG1hcCBwYWlyIHN0cmluZyB0YWcgeG1sIG51bGwgYm9vbGVhbiBieXRlcyBrZXl3b3JkIGxpc3QgbG9jYWxlIHF1ZXVlIHNldCBzdGFjayBzdGF0aWNhcnJheSBsb2NhbCB2YXIgdmFyaWFibGUgZ2xvYmFsIGRhdGEgc2VsZiBpbmhlcml0ZWQgY3VycmVudGNhcHR1cmUgZ2l2ZW5ibG9jayIsa2V5d29yZDoiY2FjaGUgZGF0YWJhc2VfbmFtZXMgZGF0YWJhc2Vfc2NoZW1hbmFtZXMgZGF0YWJhc2VfdGFibGVuYW1lcyBkZWZpbmVfdGFnIGRlZmluZV90eXBlIGVtYWlsX2JhdGNoIGVuY29kZV9zZXQgaHRtbF9jb21tZW50IGhhbmRsZSBoYW5kbGVfZXJyb3IgaGVhZGVyIGlmIGlubGluZSBpdGVyYXRlIGxqYXhfdGFyZ2V0IGxpbmsgbGlua19jdXJyZW50YWN0aW9uIGxpbmtfY3VycmVudGdyb3VwIGxpbmtfY3VycmVudHJlY29yZCBsaW5rX2RldGFpbCBsaW5rX2ZpcnN0Z3JvdXAgbGlua19maXJzdHJlY29yZCBsaW5rX2xhc3Rncm91cCBsaW5rX2xhc3RyZWNvcmQgbGlua19uZXh0Z3JvdXAgbGlua19uZXh0cmVjb3JkIGxpbmtfcHJldmdyb3VwIGxpbmtfcHJldnJlY29yZCBsb2cgbG9vcCBuYW1lc3BhY2VfdXNpbmcgb3V0cHV0X25vbmUgcG9ydGFsIHByaXZhdGUgcHJvdGVjdCByZWNvcmRzIHJlZmVyZXIgcmVmZXJyZXIgcmVwZWF0aW5nIHJlc3VsdHNldCByb3dzIHNlYXJjaF9hcmdzIHNlYXJjaF9hcmd1bWVudHMgc2VsZWN0IHNvcnRfYXJncyBzb3J0X2FyZ3VtZW50cyB0aHJlYWRfYXRvbWljIHZhbHVlX2xpc3Qgd2hpbGUgYWJvcnQgY2FzZSBlbHNlIGZhaWxfaWYgZmFpbF9pZm5vdCBmYWlsIGlmX2VtcHR5IGlmX2ZhbHNlIGlmX251bGwgaWZfdHJ1ZSBsb29wX2Fib3J0IGxvb3BfY29udGludWUgbG9vcF9jb3VudCBwYXJhbXMgcGFyYW1zX3VwIHJldHVybiByZXR1cm5fdmFsdWUgcnVuX2NoaWxkcmVuIHNvYXBfZGVmaW5ldGFnIHNvYXBfbGFzdHJlcXVlc3Qgc29hcF9sYXN0cmVzcG9uc2UgdGFnX25hbWUgYXNjZW5kaW5nIGF2ZXJhZ2UgYnkgZGVmaW5lIGRlc2NlbmRpbmcgZG8gZXF1YWxzIGZyb3plbiBncm91cCBoYW5kbGVfZmFpbHVyZSBpbXBvcnQgaW4gaW50byBqb2luIGxldCBtYXRjaCBtYXggbWluIG9uIG9yZGVyIHBhcmVudCBwcm90ZWN0ZWQgcHJvdmlkZSBwdWJsaWMgcmVxdWlyZSByZXR1cm5ob21lIHNraXAgc3BsaXRfdGhyZWFkIHN1bSB0YWtlIHRocmVhZCB0byB0cmFpdCB0eXBlIHdoZXJlIHdpdGggeWllbGQgeWllbGRob21lIn0sbz1lLkNPTU1FTlQoIjwhLS0iLCItLT4iLHtyZWxldmFuY2U6MH0pLGw9e2NsYXNzTmFtZToibWV0YSIsYmVnaW46IlxcW25vcHJvY2Vzc1xcXSIsc3RhcnRzOntlbmQ6IlxcWy9ub3Byb2Nlc3NcXF0iLHJldHVybkVuZDohMCxjb250YWluczpbb119fSxjPXtjbGFzc05hbWU6Im1ldGEiLGJlZ2luOiJcXFsvbm9wcm9jZXNzfCIrbn0sXz17Y2xhc3NOYW1lOiJzeW1ib2wiLGJlZ2luOiInIit0KyInIn0sZD1bZS5DX0xJTkVfQ09NTUVOVF9NT0RFLGUuQ19CTE9DS19DT01NRU5UX01PREUsZS5pbmhlcml0KGUuQ19OVU1CRVJfTU9ERSx7YmVnaW46ZS5DX05VTUJFUl9SRSsifCgtP2luZmluaXR5fE5hTilcXGIifSksZS5pbmhlcml0KGUuQVBPU19TVFJJTkdfTU9ERSx7aWxsZWdhbDpudWxsfSksZS5pbmhlcml0KGUuUVVPVEVfU1RSSU5HX01PREUse2lsbGVnYWw6bnVsbH0pLHtjbGFzc05hbWU6InN0cmluZyIsYmVnaW46ImAiLGVuZDoiYCJ9LHt2YXJpYW50czpbe2JlZ2luOiJbIyRdIit0fSx7YmVnaW46IiMiLGVuZDoiXFxkKyIsaWxsZWdhbDoiXFxXIn1dfSx7Y2xhc3NOYW1lOiJ0eXBlIixiZWdpbjoiOjpcXHMqIixlbmQ6dCxpbGxlZ2FsOiJcXFcifSx7Y2xhc3NOYW1lOiJwYXJhbXMiLHZhcmlhbnRzOlt7YmVnaW46Ii0oPyFpbmZpbml0eSkiK3QscmVsZXZhbmNlOjB9LHtiZWdpbjoiKFxcLlxcLlxcLikifV19LHtiZWdpbjovKC0+fFwuKVxzKi8scmVsZXZhbmNlOjAsY29udGFpbnM6W19dfSx7Y2xhc3NOYW1lOiJjbGFzcyIsYmVnaW5LZXl3b3JkczoiZGVmaW5lIixyZXR1cm5FbmQ6ITAsZW5kOiJcXCh8PT4iLGNvbnRhaW5zOltlLmluaGVyaXQoZS5USVRMRV9NT0RFLHtiZWdpbjp0KyIoPSg/IT4pKT98Wy0rKi8lXSg/IT4pIn0pXX1dO3JldHVybntuYW1lOiJMYXNzbyIsYWxpYXNlczpbImxzIiwibGFzc29zY3JpcHQiXSxjYXNlX2luc2Vuc2l0aXZlOiEwLGtleXdvcmRzOmksY29udGFpbnM6W3tjbGFzc05hbWU6Im1ldGEiLGJlZ2luOmEscmVsZXZhbmNlOjAsc3RhcnRzOntlbmQ6IlxcW3wiK24scmV0dXJuRW5kOiEwLHJlbGV2YW5jZTowLGNvbnRhaW5zOltvXX19LGwsYyx7Y2xhc3NOYW1lOiJtZXRhIixiZWdpbjoiXFxbbm9fc3F1YXJlX2JyYWNrZXRzIixzdGFydHM6e2VuZDoiXFxbL25vX3NxdWFyZV9icmFja2V0c1xcXSIsa2V5d29yZHM6aSxjb250YWluczpbe2NsYXNzTmFtZToibWV0YSIsYmVnaW46YSxyZWxldmFuY2U6MCxzdGFydHM6e2VuZDoiXFxbbm9wcm9jZXNzXFxdfCIrbixyZXR1cm5FbmQ6ITAsY29udGFpbnM6W29dfX0sbCxjXS5jb25jYXQoZCl9fSx7Y2xhc3NOYW1lOiJtZXRhIixiZWdpbjoiXFxbIixyZWxldmFuY2U6MH0se2NsYXNzTmFtZToibWV0YSIsYmVnaW46Il4jISIsZW5kOiJsYXNzbzkkIixyZWxldmFuY2U6MTB9XS5jb25jYXQoZCl9fXMuZXhwb3J0cz1yfSw3MjU3MTpmdW5jdGlvbihzKXtmdW5jdGlvbiByKG4pe3JldHVybiBuP3R5cGVvZiBuPT0ic3RyaW5nIj9uOm4uc291cmNlOm51bGx9ZnVuY3Rpb24gZSguLi5uKXtyZXR1cm4iKCIrbi5tYXAoaT0+cihpKSkuam9pbigifCIpKyIpIn1mdW5jdGlvbiB0KG4pe2NvbnN0IGE9ZSguLi5bIig/Ok5lZWRzVGVYRm9ybWF0fFJlcXVpcmVQYWNrYWdlfEdldElkSW5mbykiLCJQcm92aWRlcyg/OkV4cGwpPyg/OlBhY2thZ2V8Q2xhc3N8RmlsZSkiLCIoPzpEZWNsYXJlT3B0aW9ufFByb2Nlc3NPcHRpb25zKSIsIig/OmRvY3VtZW50Y2xhc3N8dXNlcGFja2FnZXxpbnB1dHxpbmNsdWRlKSIsIm1ha2VhdCg/OmxldHRlcnxvdGhlcikiLCJFeHBsU3ludGF4KD86T258T2ZmKSIsIig/Om5ld3xyZW5ld3xwcm92aWRlKT9jb21tYW5kIiwiKD86cmUpbmV3ZW52aXJvbm1lbnQiLCIoPzpOZXd8UmVuZXd8UHJvdmlkZXxEZWNsYXJlKSg/OkV4cGFuZGFibGUpP0RvY3VtZW50Q29tbWFuZCIsIig/Ok5ld3xSZW5ld3xQcm92aWRlfERlY2xhcmUpRG9jdW1lbnRFbnZpcm9ubWVudCIsIig/Oig/OmV8Z3x4KT9kZWZ8bGV0KSIsIig/OmJlZ2lufGVuZCkiLCIoPzpwYXJ0fGNoYXB0ZXJ8KD86c3ViKXswLDJ9c2VjdGlvbnwoPzpzdWIpP3BhcmFncmFwaCkiLCJjYXB0aW9uIiwiKD86bGFiZWx8KD86ZXF8cGFnZXxuYW1lKT9yZWZ8KD86cGFyZW58Zm9vdHxzdXBlcik/Y2l0ZSkiLCIoPzphbHBoYXxiZXRhfFtHZ11hbW1hfFtEZF1lbHRhfCg/OnZhcik/ZXBzaWxvbnx6ZXRhfGV0YXxbVHRdaGV0YXx2YXJ0aGV0YSkiLCIoPzppb3RhfCg/OnZhcik/a2FwcGF8W0xsXWFtYmRhfG11fG51fFtYeF1pfFtQcF1pfHZhcnBpfCg/OnZhcilyaG8pIiwiKD86W1NzXWlnbWF8dmFyc2lnbWF8dGF1fFtVdV1wc2lsb258W1BwXWhpfHZhcnBoaXxjaGl8W1BwXXNpfFtPb11tZWdhKSIsIig/OmZyYWN8c3VtfHByb2R8bGltfGluZnR5fHRpbWVzfHNxcnR8bGVxfGdlcXxsZWZ0fHJpZ2h0fG1pZGRsZXxbYkJdaWdnPykiLCIoPzpbbHJdYW5nbGV8cT9xdWFkfFtsY3ZkaV0/ZG90c3xkP2RvdHxoYXR8dGlsZGV8YmFyKSJdLm1hcCh3PT53KyIoPyFbYS16QS1aQDpfXSkiKSksaT1uZXcgUmVnRXhwKFsiKD86X18pP1thLXpBLVpdezIsfV9bYS16QS1aXSg/Ol8/W2EtekEtWl0pKzpbYS16QS1aXSoiLCJbbGdjXV9fP1thLXpBLVpdKD86Xz9bYS16QS1aXSkqX1thLXpBLVpdezIsfSIsIltxc11fXz9bYS16QS1aXSg/Ol8/W2EtekEtWl0pKyIsInVzZSg/Ol9pKT86W2EtekEtWl0qIiwiKD86ZWxzZXxmaXxvcik6IiwiKD86aWZ8Y3N8ZXhwKTp3IiwiKD86aGJveHx2Ym94KTpuIiwiOjpbYS16QS1aXV91bmJyYWNlZCIsIjo6W2EtekEtWjpdIl0ubWFwKHc9PncrIig/IVthLXpBLVo6X10pIikuam9pbigifCIpKSxvPVt7YmVnaW46L1thLXpBLVpAXSsvfSx7YmVnaW46L1teYS16QS1aQF0/L31dLGw9W3tiZWdpbjovXF57Nn1bMC05YS1mXXs2fS99LHtiZWdpbjovXF57NX1bMC05YS1mXXs1fS99LHtiZWdpbjovXF57NH1bMC05YS1mXXs0fS99LHtiZWdpbjovXF57M31bMC05YS1mXXszfS99LHtiZWdpbjovXF57Mn1bMC05YS1mXXsyfS99LHtiZWdpbjovXF57Mn1bXHUwMDAwLVx1MDA3Zl0vfV0sYz17Y2xhc3NOYW1lOiJrZXl3b3JkIixiZWdpbjovXFwvLHJlbGV2YW5jZTowLGNvbnRhaW5zOlt7ZW5kc1BhcmVudDohMCxiZWdpbjphfSx7ZW5kc1BhcmVudDohMCxiZWdpbjppfSx7ZW5kc1BhcmVudDohMCx2YXJpYW50czpsfSx7ZW5kc1BhcmVudDohMCxyZWxldmFuY2U6MCx2YXJpYW50czpvfV19LF89e2NsYXNzTmFtZToicGFyYW1zIixyZWxldmFuY2U6MCxiZWdpbjovIytcZD8vfSxkPXt2YXJpYW50czpsfSxnPXtjbGFzc05hbWU6ImJ1aWx0X2luIixyZWxldmFuY2U6MCxiZWdpbjovWyQmXl9dL30sRT17Y2xhc3NOYW1lOiJtZXRhIixiZWdpbjoiJSAhVGVYIixlbmQ6IiQiLHJlbGV2YW5jZToxMH0sdT1uLkNPTU1FTlQoIiUiLCIkIix7cmVsZXZhbmNlOjB9KSxtPVtjLF8sZCxnLEUsdV0sUz17YmVnaW46L1x7LyxlbmQ6L1x9LyxyZWxldmFuY2U6MCxjb250YWluczpbInNlbGYiLC4uLm1dfSxUPW4uaW5oZXJpdChTLHtyZWxldmFuY2U6MCxlbmRzUGFyZW50OiEwLGNvbnRhaW5zOltTLC4uLm1dfSksYj17YmVnaW46L1xbLyxlbmQ6L1xdLyxlbmRzUGFyZW50OiEwLHJlbGV2YW5jZTowLGNvbnRhaW5zOltTLC4uLm1dfSxmPXtiZWdpbjovXHMrLyxyZWxldmFuY2U6MH0sQz1bVF0sTz1bYl0sRD1mdW5jdGlvbih3LFgpe3JldHVybntjb250YWluczpbZl0sc3RhcnRzOntyZWxldmFuY2U6MCxjb250YWluczp3LHN0YXJ0czpYfX19LHk9ZnVuY3Rpb24odyxYKXtyZXR1cm57YmVnaW46IlxcXFwiK3crIig/IVthLXpBLVpAOl9dKSIsa2V5d29yZHM6eyRwYXR0ZXJuOi9cXFthLXpBLVpdKy8sa2V5d29yZDoiXFwiK3d9LHJlbGV2YW5jZTowLGNvbnRhaW5zOltmXSxzdGFydHM6WH19LEE9ZnVuY3Rpb24odyxYKXtyZXR1cm4gbi5pbmhlcml0KHtiZWdpbjoiXFxcXGJlZ2luKD89WyAJXSooXFxyP1xcblsgCV0qKT9cXHsiK3crIlxcfSkiLGtleXdvcmRzOnskcGF0dGVybjovXFxbYS16QS1aXSsvLGtleXdvcmQ6IlxcYmVnaW4ifSxyZWxldmFuY2U6MH0sRChDLFgpKX0saz0odz0ic3RyaW5nIik9Pm4uRU5EX1NBTUVfQVNfQkVHSU4oe2NsYXNzTmFtZTp3LGJlZ2luOi8oLnxccj9cbikvLGVuZDovKC58XHI/XG4pLyxleGNsdWRlQmVnaW46ITAsZXhjbHVkZUVuZDohMCxlbmRzUGFyZW50OiEwfSksQj1mdW5jdGlvbih3KXtyZXR1cm57Y2xhc3NOYW1lOiJzdHJpbmciLGVuZDoiKD89XFxcXGVuZFxceyIrdysiXFx9KSJ9fSxGPSh3PSJzdHJpbmciKT0+KHtyZWxldmFuY2U6MCxiZWdpbjovXHsvLHN0YXJ0czp7ZW5kc1BhcmVudDohMCxjb250YWluczpbe2NsYXNzTmFtZTp3LGVuZDovKD89XH0pLyxlbmRzUGFyZW50OiEwLGNvbnRhaW5zOlt7YmVnaW46L1x7LyxlbmQ6L1x9LyxyZWxldmFuY2U6MCxjb250YWluczpbInNlbGYiXX1dfV19fSksSz1bLi4uWyJ2ZXJiIiwibHN0aW5saW5lIl0ubWFwKHc9Pnkodyx7Y29udGFpbnM6W2soKV19KSkseSgibWludCIsRChDLHtjb250YWluczpbaygpXX0pKSx5KCJtaW50aW5saW5lIixEKEMse2NvbnRhaW5zOltGKCksaygpXX0pKSx5KCJ1cmwiLHtjb250YWluczpbRigibGluayIpLEYoImxpbmsiKV19KSx5KCJoeXBlcnJlZiIse2NvbnRhaW5zOltGKCJsaW5rIildfSkseSgiaHJlZiIsRChPLHtjb250YWluczpbRigibGluayIpXX0pKSwuLi5bXS5jb25jYXQoLi4uWyIiLCJcXCoiXS5tYXAodz0+W0EoInZlcmJhdGltIit3LEIoInZlcmJhdGltIit3KSksQSgiZmlsZWNvbnRlbnRzIit3LEQoQyxCKCJmaWxlY29udGVudHMiK3cpKSksLi4uWyIiLCJCIiwiTCJdLm1hcChYPT5BKFgrIlZlcmJhdGltIit3LEQoTyxCKFgrIlZlcmJhdGltIit3KSkpKV0pKSxBKCJtaW50ZWQiLEQoTyxEKEMsQigibWludGVkIikpKSldO3JldHVybntuYW1lOiJMYVRlWCIsYWxpYXNlczpbInRleCJdLGNvbnRhaW5zOlsuLi5LLC4uLm1dfX1zLmV4cG9ydHM9dH0sNDU3MDk6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihlKXtyZXR1cm57bmFtZToiTERJRiIsY29udGFpbnM6W3tjbGFzc05hbWU6ImF0dHJpYnV0ZSIsYmVnaW46Il5kbiIsZW5kOiI6ICIsZXhjbHVkZUVuZDohMCxzdGFydHM6e2VuZDoiJCIscmVsZXZhbmNlOjB9LHJlbGV2YW5jZToxMH0se2NsYXNzTmFtZToiYXR0cmlidXRlIixiZWdpbjoiXlxcdyIsZW5kOiI6ICIsZXhjbHVkZUVuZDohMCxzdGFydHM6e2VuZDoiJCIscmVsZXZhbmNlOjB9fSx7Y2xhc3NOYW1lOiJsaXRlcmFsIixiZWdpbjoiXi0iLGVuZDoiJCJ9LGUuSEFTSF9DT01NRU5UX01PREVdfX1zLmV4cG9ydHM9cn0sMzYzMDg6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihlKXtyZXR1cm57bmFtZToiTGVhZiIsY29udGFpbnM6W3tjbGFzc05hbWU6ImZ1bmN0aW9uIixiZWdpbjoiIytbQS1aYS16XzAtOV0qXFwoIixlbmQ6LyBcey8scmV0dXJuQmVnaW46ITAsZXhjbHVkZUVuZDohMCxjb250YWluczpbe2NsYXNzTmFtZToia2V5d29yZCIsYmVnaW46IiMrIn0se2NsYXNzTmFtZToidGl0bGUiLGJlZ2luOiJbQS1aYS16X11bQS1aYS16XzAtOV0qIn0se2NsYXNzTmFtZToicGFyYW1zIixiZWdpbjoiXFwoIixlbmQ6IlxcKSIsZW5kc1BhcmVudDohMCxjb250YWluczpbe2NsYXNzTmFtZToic3RyaW5nIixiZWdpbjonIicsZW5kOiciJ30se2NsYXNzTmFtZToidmFyaWFibGUiLGJlZ2luOiJbQS1aYS16X11bQS1aYS16XzAtOV0qIn1dfV19XX19cy5leHBvcnRzPXJ9LDc5NDY2OmZ1bmN0aW9uKHMpe2NvbnN0IHI9Yz0+KHtJTVBPUlRBTlQ6e2NsYXNzTmFtZToibWV0YSIsYmVnaW46IiFpbXBvcnRhbnQifSxIRVhDT0xPUjp7Y2xhc3NOYW1lOiJudW1iZXIiLGJlZ2luOiIjKFthLWZBLUYwLTldezZ9fFthLWZBLUYwLTldezN9KSJ9LEFUVFJJQlVURV9TRUxFQ1RPUl9NT0RFOntjbGFzc05hbWU6InNlbGVjdG9yLWF0dHIiLGJlZ2luOi9cWy8sZW5kOi9cXS8saWxsZWdhbDoiJCIsY29udGFpbnM6W2MuQVBPU19TVFJJTkdfTU9ERSxjLlFVT1RFX1NUUklOR19NT0RFXX19KSxlPVsiYSIsImFiYnIiLCJhZGRyZXNzIiwiYXJ0aWNsZSIsImFzaWRlIiwiYXVkaW8iLCJiIiwiYmxvY2txdW90ZSIsImJvZHkiLCJidXR0b24iLCJjYW52YXMiLCJjYXB0aW9uIiwiY2l0ZSIsImNvZGUiLCJkZCIsImRlbCIsImRldGFpbHMiLCJkZm4iLCJkaXYiLCJkbCIsImR0IiwiZW0iLCJmaWVsZHNldCIsImZpZ2NhcHRpb24iLCJmaWd1cmUiLCJmb290ZXIiLCJmb3JtIiwiaDEiLCJoMiIsImgzIiwiaDQiLCJoNSIsImg2IiwiaGVhZGVyIiwiaGdyb3VwIiwiaHRtbCIsImkiLCJpZnJhbWUiLCJpbWciLCJpbnB1dCIsImlucyIsImtiZCIsImxhYmVsIiwibGVnZW5kIiwibGkiLCJtYWluIiwibWFyayIsIm1lbnUiLCJuYXYiLCJvYmplY3QiLCJvbCIsInAiLCJxIiwicXVvdGUiLCJzYW1wIiwic2VjdGlvbiIsInNwYW4iLCJzdHJvbmciLCJzdW1tYXJ5Iiwic3VwIiwidGFibGUiLCJ0Ym9keSIsInRkIiwidGV4dGFyZWEiLCJ0Zm9vdCIsInRoIiwidGhlYWQiLCJ0aW1lIiwidHIiLCJ1bCIsInZhciIsInZpZGVvIl0sdD1bImFueS1ob3ZlciIsImFueS1wb2ludGVyIiwiYXNwZWN0LXJhdGlvIiwiY29sb3IiLCJjb2xvci1nYW11dCIsImNvbG9yLWluZGV4IiwiZGV2aWNlLWFzcGVjdC1yYXRpbyIsImRldmljZS1oZWlnaHQiLCJkZXZpY2Utd2lkdGgiLCJkaXNwbGF5LW1vZGUiLCJmb3JjZWQtY29sb3JzIiwiZ3JpZCIsImhlaWdodCIsImhvdmVyIiwiaW52ZXJ0ZWQtY29sb3JzIiwibW9ub2Nocm9tZSIsIm9yaWVudGF0aW9uIiwib3ZlcmZsb3ctYmxvY2siLCJvdmVyZmxvdy1pbmxpbmUiLCJwb2ludGVyIiwicHJlZmVycy1jb2xvci1zY2hlbWUiLCJwcmVmZXJzLWNvbnRyYXN0IiwicHJlZmVycy1yZWR1Y2VkLW1vdGlvbiIsInByZWZlcnMtcmVkdWNlZC10cmFuc3BhcmVuY3kiLCJyZXNvbHV0aW9uIiwic2NhbiIsInNjcmlwdGluZyIsInVwZGF0ZSIsIndpZHRoIiwibWluLXdpZHRoIiwibWF4LXdpZHRoIiwibWluLWhlaWdodCIsIm1heC1oZWlnaHQiXSxuPVsiYWN0aXZlIiwiYW55LWxpbmsiLCJibGFuayIsImNoZWNrZWQiLCJjdXJyZW50IiwiZGVmYXVsdCIsImRlZmluZWQiLCJkaXIiLCJkaXNhYmxlZCIsImRyb3AiLCJlbXB0eSIsImVuYWJsZWQiLCJmaXJzdCIsImZpcnN0LWNoaWxkIiwiZmlyc3Qtb2YtdHlwZSIsImZ1bGxzY3JlZW4iLCJmdXR1cmUiLCJmb2N1cyIsImZvY3VzLXZpc2libGUiLCJmb2N1cy13aXRoaW4iLCJoYXMiLCJob3N0IiwiaG9zdC1jb250ZXh0IiwiaG92ZXIiLCJpbmRldGVybWluYXRlIiwiaW4tcmFuZ2UiLCJpbnZhbGlkIiwiaXMiLCJsYW5nIiwibGFzdC1jaGlsZCIsImxhc3Qtb2YtdHlwZSIsImxlZnQiLCJsaW5rIiwibG9jYWwtbGluayIsIm5vdCIsIm50aC1jaGlsZCIsIm50aC1jb2wiLCJudGgtbGFzdC1jaGlsZCIsIm50aC1sYXN0LWNvbCIsIm50aC1sYXN0LW9mLXR5cGUiLCJudGgtb2YtdHlwZSIsIm9ubHktY2hpbGQiLCJvbmx5LW9mLXR5cGUiLCJvcHRpb25hbCIsIm91dC1vZi1yYW5nZSIsInBhc3QiLCJwbGFjZWhvbGRlci1zaG93biIsInJlYWQtb25seSIsInJlYWQtd3JpdGUiLCJyZXF1aXJlZCIsInJpZ2h0Iiwicm9vdCIsInNjb3BlIiwidGFyZ2V0IiwidGFyZ2V0LXdpdGhpbiIsInVzZXItaW52YWxpZCIsInZhbGlkIiwidmlzaXRlZCIsIndoZXJlIl0sYT1bImFmdGVyIiwiYmFja2Ryb3AiLCJiZWZvcmUiLCJjdWUiLCJjdWUtcmVnaW9uIiwiZmlyc3QtbGV0dGVyIiwiZmlyc3QtbGluZSIsImdyYW1tYXItZXJyb3IiLCJtYXJrZXIiLCJwYXJ0IiwicGxhY2Vob2xkZXIiLCJzZWxlY3Rpb24iLCJzbG90dGVkIiwic3BlbGxpbmctZXJyb3IiXSxpPVsiYWxpZ24tY29udGVudCIsImFsaWduLWl0ZW1zIiwiYWxpZ24tc2VsZiIsImFuaW1hdGlvbiIsImFuaW1hdGlvbi1kZWxheSIsImFuaW1hdGlvbi1kaXJlY3Rpb24iLCJhbmltYXRpb24tZHVyYXRpb24iLCJhbmltYXRpb24tZmlsbC1tb2RlIiwiYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCIsImFuaW1hdGlvbi1uYW1lIiwiYW5pbWF0aW9uLXBsYXktc3RhdGUiLCJhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uIiwiYXV0byIsImJhY2tmYWNlLXZpc2liaWxpdHkiLCJiYWNrZ3JvdW5kIiwiYmFja2dyb3VuZC1hdHRhY2htZW50IiwiYmFja2dyb3VuZC1jbGlwIiwiYmFja2dyb3VuZC1jb2xvciIsImJhY2tncm91bmQtaW1hZ2UiLCJiYWNrZ3JvdW5kLW9yaWdpbiIsImJhY2tncm91bmQtcG9zaXRpb24iLCJiYWNrZ3JvdW5kLXJlcGVhdCIsImJhY2tncm91bmQtc2l6ZSIsImJvcmRlciIsImJvcmRlci1ib3R0b20iLCJib3JkZXItYm90dG9tLWNvbG9yIiwiYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1cyIsImJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzIiwiYm9yZGVyLWJvdHRvbS1zdHlsZSIsImJvcmRlci1ib3R0b20td2lkdGgiLCJib3JkZXItY29sbGFwc2UiLCJib3JkZXItY29sb3IiLCJib3JkZXItaW1hZ2UiLCJib3JkZXItaW1hZ2Utb3V0c2V0IiwiYm9yZGVyLWltYWdlLXJlcGVhdCIsImJvcmRlci1pbWFnZS1zbGljZSIsImJvcmRlci1pbWFnZS1zb3VyY2UiLCJib3JkZXItaW1hZ2Utd2lkdGgiLCJib3JkZXItbGVmdCIsImJvcmRlci1sZWZ0LWNvbG9yIiwiYm9yZGVyLWxlZnQtc3R5bGUiLCJib3JkZXItbGVmdC13aWR0aCIsImJvcmRlci1yYWRpdXMiLCJib3JkZXItcmlnaHQiLCJib3JkZXItcmlnaHQtY29sb3IiLCJib3JkZXItcmlnaHQtc3R5bGUiLCJib3JkZXItcmlnaHQtd2lkdGgiLCJib3JkZXItc3BhY2luZyIsImJvcmRlci1zdHlsZSIsImJvcmRlci10b3AiLCJib3JkZXItdG9wLWNvbG9yIiwiYm9yZGVyLXRvcC1sZWZ0LXJhZGl1cyIsImJvcmRlci10b3AtcmlnaHQtcmFkaXVzIiwiYm9yZGVyLXRvcC1zdHlsZSIsImJvcmRlci10b3Atd2lkdGgiLCJib3JkZXItd2lkdGgiLCJib3R0b20iLCJib3gtZGVjb3JhdGlvbi1icmVhayIsImJveC1zaGFkb3ciLCJib3gtc2l6aW5nIiwiYnJlYWstYWZ0ZXIiLCJicmVhay1iZWZvcmUiLCJicmVhay1pbnNpZGUiLCJjYXB0aW9uLXNpZGUiLCJjbGVhciIsImNsaXAiLCJjbGlwLXBhdGgiLCJjb2xvciIsImNvbHVtbi1jb3VudCIsImNvbHVtbi1maWxsIiwiY29sdW1uLWdhcCIsImNvbHVtbi1ydWxlIiwiY29sdW1uLXJ1bGUtY29sb3IiLCJjb2x1bW4tcnVsZS1zdHlsZSIsImNvbHVtbi1ydWxlLXdpZHRoIiwiY29sdW1uLXNwYW4iLCJjb2x1bW4td2lkdGgiLCJjb2x1bW5zIiwiY29udGVudCIsImNvdW50ZXItaW5jcmVtZW50IiwiY291bnRlci1yZXNldCIsImN1cnNvciIsImRpcmVjdGlvbiIsImRpc3BsYXkiLCJlbXB0eS1jZWxscyIsImZpbHRlciIsImZsZXgiLCJmbGV4LWJhc2lzIiwiZmxleC1kaXJlY3Rpb24iLCJmbGV4LWZsb3ciLCJmbGV4LWdyb3ciLCJmbGV4LXNocmluayIsImZsZXgtd3JhcCIsImZsb2F0IiwiZm9udCIsImZvbnQtZGlzcGxheSIsImZvbnQtZmFtaWx5IiwiZm9udC1mZWF0dXJlLXNldHRpbmdzIiwiZm9udC1rZXJuaW5nIiwiZm9udC1sYW5ndWFnZS1vdmVycmlkZSIsImZvbnQtc2l6ZSIsImZvbnQtc2l6ZS1hZGp1c3QiLCJmb250LXNtb290aGluZyIsImZvbnQtc3RyZXRjaCIsImZvbnQtc3R5bGUiLCJmb250LXZhcmlhbnQiLCJmb250LXZhcmlhbnQtbGlnYXR1cmVzIiwiZm9udC12YXJpYXRpb24tc2V0dGluZ3MiLCJmb250LXdlaWdodCIsImhlaWdodCIsImh5cGhlbnMiLCJpY29uIiwiaW1hZ2Utb3JpZW50YXRpb24iLCJpbWFnZS1yZW5kZXJpbmciLCJpbWFnZS1yZXNvbHV0aW9uIiwiaW1lLW1vZGUiLCJpbmhlcml0IiwiaW5pdGlhbCIsImp1c3RpZnktY29udGVudCIsImxlZnQiLCJsZXR0ZXItc3BhY2luZyIsImxpbmUtaGVpZ2h0IiwibGlzdC1zdHlsZSIsImxpc3Qtc3R5bGUtaW1hZ2UiLCJsaXN0LXN0eWxlLXBvc2l0aW9uIiwibGlzdC1zdHlsZS10eXBlIiwibWFyZ2luIiwibWFyZ2luLWJvdHRvbSIsIm1hcmdpbi1sZWZ0IiwibWFyZ2luLXJpZ2h0IiwibWFyZ2luLXRvcCIsIm1hcmtzIiwibWFzayIsIm1heC1oZWlnaHQiLCJtYXgtd2lkdGgiLCJtaW4taGVpZ2h0IiwibWluLXdpZHRoIiwibmF2LWRvd24iLCJuYXYtaW5kZXgiLCJuYXYtbGVmdCIsIm5hdi1yaWdodCIsIm5hdi11cCIsIm5vbmUiLCJub3JtYWwiLCJvYmplY3QtZml0Iiwib2JqZWN0LXBvc2l0aW9uIiwib3BhY2l0eSIsIm9yZGVyIiwib3JwaGFucyIsIm91dGxpbmUiLCJvdXRsaW5lLWNvbG9yIiwib3V0bGluZS1vZmZzZXQiLCJvdXRsaW5lLXN0eWxlIiwib3V0bGluZS13aWR0aCIsIm92ZXJmbG93Iiwib3ZlcmZsb3ctd3JhcCIsIm92ZXJmbG93LXgiLCJvdmVyZmxvdy15IiwicGFkZGluZyIsInBhZGRpbmctYm90dG9tIiwicGFkZGluZy1sZWZ0IiwicGFkZGluZy1yaWdodCIsInBhZGRpbmctdG9wIiwicGFnZS1icmVhay1hZnRlciIsInBhZ2UtYnJlYWstYmVmb3JlIiwicGFnZS1icmVhay1pbnNpZGUiLCJwZXJzcGVjdGl2ZSIsInBlcnNwZWN0aXZlLW9yaWdpbiIsInBvaW50ZXItZXZlbnRzIiwicG9zaXRpb24iLCJxdW90ZXMiLCJyZXNpemUiLCJyaWdodCIsInNyYyIsInRhYi1zaXplIiwidGFibGUtbGF5b3V0IiwidGV4dC1hbGlnbiIsInRleHQtYWxpZ24tbGFzdCIsInRleHQtZGVjb3JhdGlvbiIsInRleHQtZGVjb3JhdGlvbi1jb2xvciIsInRleHQtZGVjb3JhdGlvbi1saW5lIiwidGV4dC1kZWNvcmF0aW9uLXN0eWxlIiwidGV4dC1pbmRlbnQiLCJ0ZXh0LW92ZXJmbG93IiwidGV4dC1yZW5kZXJpbmciLCJ0ZXh0LXNoYWRvdyIsInRleHQtdHJhbnNmb3JtIiwidGV4dC11bmRlcmxpbmUtcG9zaXRpb24iLCJ0b3AiLCJ0cmFuc2Zvcm0iLCJ0cmFuc2Zvcm0tb3JpZ2luIiwidHJhbnNmb3JtLXN0eWxlIiwidHJhbnNpdGlvbiIsInRyYW5zaXRpb24tZGVsYXkiLCJ0cmFuc2l0aW9uLWR1cmF0aW9uIiwidHJhbnNpdGlvbi1wcm9wZXJ0eSIsInRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uIiwidW5pY29kZS1iaWRpIiwidmVydGljYWwtYWxpZ24iLCJ2aXNpYmlsaXR5Iiwid2hpdGUtc3BhY2UiLCJ3aWRvd3MiLCJ3aWR0aCIsIndvcmQtYnJlYWsiLCJ3b3JkLXNwYWNpbmciLCJ3b3JkLXdyYXAiLCJ6LWluZGV4Il0ucmV2ZXJzZSgpLG89bi5jb25jYXQoYSk7ZnVuY3Rpb24gbChjKXtjb25zdCBfPXIoYyksZD1vLGc9ImFuZCBvciBub3Qgb25seSIsRT0iW1xcdy1dKyIsdT0iKCIrRSsifEBcXHsiK0UrIlxcfSkiLG09W10sUz1bXSxUPWZ1bmN0aW9uKEspe3JldHVybntjbGFzc05hbWU6InN0cmluZyIsYmVnaW46In4/IitLKyIuKj8iK0t9fSxiPWZ1bmN0aW9uKEssdyxYKXtyZXR1cm57Y2xhc3NOYW1lOkssYmVnaW46dyxyZWxldmFuY2U6WH19LGY9eyRwYXR0ZXJuOi9bYS16LV0rLyxrZXl3b3JkOmcsYXR0cmlidXRlOnQuam9pbigiICIpfSxDPXtiZWdpbjoiXFwoIixlbmQ6IlxcKSIsY29udGFpbnM6UyxrZXl3b3JkczpmLHJlbGV2YW5jZTowfTtTLnB1c2goYy5DX0xJTkVfQ09NTUVOVF9NT0RFLGMuQ19CTE9DS19DT01NRU5UX01PREUsVCgiJyIpLFQoJyInKSxjLkNTU19OVU1CRVJfTU9ERSx7YmVnaW46Iih1cmx8ZGF0YS11cmkpXFwoIixzdGFydHM6e2NsYXNzTmFtZToic3RyaW5nIixlbmQ6IltcXClcXG5dIixleGNsdWRlRW5kOiEwfX0sXy5IRVhDT0xPUixDLGIoInZhcmlhYmxlIiwiQEA/IitFLDEwKSxiKCJ2YXJpYWJsZSIsIkBcXHsiK0UrIlxcfSIpLGIoImJ1aWx0X2luIiwifj9gW15gXSo/YCIpLHtjbGFzc05hbWU6ImF0dHJpYnV0ZSIsYmVnaW46RSsiXFxzKjoiLGVuZDoiOiIscmV0dXJuQmVnaW46ITAsZXhjbHVkZUVuZDohMH0sXy5JTVBPUlRBTlQpO2NvbnN0IE89Uy5jb25jYXQoe2JlZ2luOi9cey8sZW5kOi9cfS8sY29udGFpbnM6bX0pLEQ9e2JlZ2luS2V5d29yZHM6IndoZW4iLGVuZHNXaXRoUGFyZW50OiEwLGNvbnRhaW5zOlt7YmVnaW5LZXl3b3JkczoiYW5kIG5vdCJ9XS5jb25jYXQoUyl9LHk9e2JlZ2luOnUrIlxccyo6IixyZXR1cm5CZWdpbjohMCxlbmQ6L1s7fV0vLHJlbGV2YW5jZTowLGNvbnRhaW5zOlt7YmVnaW46Ly0od2Via2l0fG1venxtc3xvKS0vfSx7Y2xhc3NOYW1lOiJhdHRyaWJ1dGUiLGJlZ2luOiJcXGIoIitpLmpvaW4oInwiKSsiKVxcYiIsZW5kOi8oPz06KS8sc3RhcnRzOntlbmRzV2l0aFBhcmVudDohMCxpbGxlZ2FsOiJbPD0kXSIscmVsZXZhbmNlOjAsY29udGFpbnM6U319XX0sQT17Y2xhc3NOYW1lOiJrZXl3b3JkIixiZWdpbjoiQChpbXBvcnR8bWVkaWF8Y2hhcnNldHxmb250LWZhY2V8KC1bYS16XSstKT9rZXlmcmFtZXN8c3VwcG9ydHN8ZG9jdW1lbnR8bmFtZXNwYWNlfHBhZ2V8dmlld3BvcnR8aG9zdClcXGIiLHN0YXJ0czp7ZW5kOiJbO3t9XSIsa2V5d29yZHM6ZixyZXR1cm5FbmQ6ITAsY29udGFpbnM6UyxyZWxldmFuY2U6MH19LGs9e2NsYXNzTmFtZToidmFyaWFibGUiLHZhcmlhbnRzOlt7YmVnaW46IkAiK0UrIlxccyo6IixyZWxldmFuY2U6MTV9LHtiZWdpbjoiQCIrRX1dLHN0YXJ0czp7ZW5kOiJbO31dIixyZXR1cm5FbmQ6ITAsY29udGFpbnM6T319LEI9e3ZhcmlhbnRzOlt7YmVnaW46IltcXC4jOiZcXFs+XSIsZW5kOiJbO3t9XSJ9LHtiZWdpbjp1LGVuZDovXHsvfV0scmV0dXJuQmVnaW46ITAscmV0dXJuRW5kOiEwLGlsbGVnYWw6YFs8PSckIl1gLHJlbGV2YW5jZTowLGNvbnRhaW5zOltjLkNfTElORV9DT01NRU5UX01PREUsYy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxELGIoImtleXdvcmQiLCJhbGxcXGIiKSxiKCJ2YXJpYWJsZSIsIkBcXHsiK0UrIlxcfSIpLHtiZWdpbjoiXFxiKCIrZS5qb2luKCJ8IikrIilcXGIiLGNsYXNzTmFtZToic2VsZWN0b3ItdGFnIn0sYigic2VsZWN0b3ItdGFnIix1KyIlPyIsMCksYigic2VsZWN0b3ItaWQiLCIjIit1KSxiKCJzZWxlY3Rvci1jbGFzcyIsIlxcLiIrdSwwKSxiKCJzZWxlY3Rvci10YWciLCImIiwwKSxfLkFUVFJJQlVURV9TRUxFQ1RPUl9NT0RFLHtjbGFzc05hbWU6InNlbGVjdG9yLXBzZXVkbyIsYmVnaW46IjooIituLmpvaW4oInwiKSsiKSJ9LHtjbGFzc05hbWU6InNlbGVjdG9yLXBzZXVkbyIsYmVnaW46Ijo6KCIrYS5qb2luKCJ8IikrIikifSx7YmVnaW46IlxcKCIsZW5kOiJcXCkiLGNvbnRhaW5zOk99LHtiZWdpbjoiIWltcG9ydGFudCJ9XX0sRj17YmVnaW46RStgOig6KT8oJHtkLmpvaW4oInwiKX0pYCxyZXR1cm5CZWdpbjohMCxjb250YWluczpbQl19O3JldHVybiBtLnB1c2goYy5DX0xJTkVfQ09NTUVOVF9NT0RFLGMuQ19CTE9DS19DT01NRU5UX01PREUsQSxrLEYseSxCKSx7bmFtZToiTGVzcyIsY2FzZV9pbnNlbnNpdGl2ZTohMCxpbGxlZ2FsOmBbPT4nLzwoJCJdYCxjb250YWluczptfX1zLmV4cG9ydHM9bH0sMjc5MjI6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihlKXt2YXIgdD0iW2EtekEtWl9cXC0rXFwqXFwvPD0+JiNdW2EtekEtWjAtOV9cXC0rKlxcLzw9PiYjIV0qIixuPSJcXHxbXl0qP1xcfCIsYT0iKC18XFwrKT9cXGQrKFxcLlxcZCt8XFwvXFxkKyk/KChkfGV8ZnxsfHN8RHxFfEZ8THxTKShcXCt8LSk/XFxkKyk/IixpPXtjbGFzc05hbWU6ImxpdGVyYWwiLGJlZ2luOiJcXGIodHsxfXxuaWwpXFxiIn0sbz17Y2xhc3NOYW1lOiJudW1iZXIiLHZhcmlhbnRzOlt7YmVnaW46YSxyZWxldmFuY2U6MH0se2JlZ2luOiIjKGJ8QilbMC0xXSsoL1swLTFdKyk/In0se2JlZ2luOiIjKG98TylbMC03XSsoL1swLTddKyk/In0se2JlZ2luOiIjKHh8WClbMC05YS1mQS1GXSsoL1swLTlhLWZBLUZdKyk/In0se2JlZ2luOiIjKGN8QylcXCgiK2ErIiArIithLGVuZDoiXFwpIn1dfSxsPWUuaW5oZXJpdChlLlFVT1RFX1NUUklOR19NT0RFLHtpbGxlZ2FsOm51bGx9KSxjPWUuQ09NTUVOVCgiOyIsIiQiLHtyZWxldmFuY2U6MH0pLF89e2JlZ2luOiJcXCoiLGVuZDoiXFwqIn0sZD17Y2xhc3NOYW1lOiJzeW1ib2wiLGJlZ2luOiJbOiZdIit0fSxnPXtiZWdpbjp0LHJlbGV2YW5jZTowfSxFPXtiZWdpbjpufSx1PXtiZWdpbjoiXFwoIixlbmQ6IlxcKSIsY29udGFpbnM6WyJzZWxmIixpLGwsbyxnXX0sbT17Y29udGFpbnM6W28sbCxfLGQsdSxnXSx2YXJpYW50czpbe2JlZ2luOiJbJ2BdXFwoIixlbmQ6IlxcKSJ9LHtiZWdpbjoiXFwocXVvdGUgIixlbmQ6IlxcKSIsa2V5d29yZHM6e25hbWU6InF1b3RlIn19LHtiZWdpbjoiJyIrbn1dfSxTPXt2YXJpYW50czpbe2JlZ2luOiInIit0fSx7YmVnaW46IiMnIit0KyIoOjoiK3QrIikqIn1dfSxUPXtiZWdpbjoiXFwoXFxzKiIsZW5kOiJcXCkifSxiPXtlbmRzV2l0aFBhcmVudDohMCxyZWxldmFuY2U6MH07cmV0dXJuIFQuY29udGFpbnM9W3tjbGFzc05hbWU6Im5hbWUiLHZhcmlhbnRzOlt7YmVnaW46dCxyZWxldmFuY2U6MH0se2JlZ2luOm59XX0sYl0sYi5jb250YWlucz1bbSxTLFQsaSxvLGwsYyxfLGQsRSxnXSx7bmFtZToiTGlzcCIsaWxsZWdhbDovXFMvLGNvbnRhaW5zOltvLGUuU0hFQkFORygpLGksbCxjLG0sUyxULGddfX1zLmV4cG9ydHM9cn0sMTkzOTpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGUpe2NvbnN0IHQ9e2NsYXNzTmFtZToidmFyaWFibGUiLHZhcmlhbnRzOlt7YmVnaW46IlxcYihbZ3Rwc11bQS1aXXsxfVthLXpBLVowLTldKikoXFxbLitcXF0pPyg/Olxccyo/KSJ9LHtiZWdpbjoiXFwkX1tBLVpdKyJ9XSxyZWxldmFuY2U6MH0sbj1bZS5DX0JMT0NLX0NPTU1FTlRfTU9ERSxlLkhBU0hfQ09NTUVOVF9NT0RFLGUuQ09NTUVOVCgiLS0iLCIkIiksZS5DT01NRU5UKCJbXjpdLy8iLCIkIildLGE9ZS5pbmhlcml0KGUuVElUTEVfTU9ERSx7dmFyaWFudHM6W3tiZWdpbjoiXFxiXypyaWdbQS1aXVtBLVphLXowLTlfXFwtXSoifSx7YmVnaW46IlxcYl9bYS16MC05XFwtXSsifV19KSxpPWUuaW5oZXJpdChlLlRJVExFX01PREUse2JlZ2luOiJcXGIoW0EtWmEtejAtOV9cXC1dKylcXGIifSk7cmV0dXJue25hbWU6IkxpdmVDb2RlIixjYXNlX2luc2Vuc2l0aXZlOiExLGtleXdvcmRzOntrZXl3b3JkOiIkX0NPT0tJRSAkX0ZJTEVTICRfR0VUICRfR0VUX0JJTkFSWSAkX0dFVF9SQVcgJF9QT1NUICRfUE9TVF9CSU5BUlkgJF9QT1NUX1JBVyAkX1NFU1NJT04gJF9TRVJWRVIgY29kZXBvaW50IGNvZGVwb2ludHMgc2VnbWVudCBzZWdtZW50cyBjb2RldW5pdCBjb2RldW5pdHMgc2VudGVuY2Ugc2VudGVuY2VzIHRydWVXb3JkIHRydWVXb3JkcyBwYXJhZ3JhcGggYWZ0ZXIgYnl0ZSBieXRlcyBlbmdsaXNoIHRoZSB1bnRpbCBodHRwIGZvcmV2ZXIgZGVzY2VuZGluZyB1c2luZyBsaW5lIHJlYWw4IHdpdGggc2V2ZW50aCBmb3Igc3Rkb3V0IGZpbmFsbHkgZWxlbWVudCB3b3JkIHdvcmRzIGZvdXJ0aCBiZWZvcmUgYmxhY2sgbmludGggc2l4dGggY2hhcmFjdGVycyBjaGFycyBzdGRlcnIgdUludDEgdUludDFzIHVJbnQyIHVJbnQycyBzdGRpbiBzdHJpbmcgbGluZXMgcmVsYXRpdmUgcmVsIGFueSBmaWZ0aCBpdGVtcyBmcm9tIG1pZGRsZSBtaWQgYXQgZWxzZSBvZiBjYXRjaCB0aGVuIHRoaXJkIGl0IGZpbGUgbWlsbGlzZWNvbmRzIHNlY29uZHMgc2Vjb25kIHNlY3Mgc2VjIGludDEgaW50MXMgaW50NCBpbnQ0cyBpbnRlcm5ldCBpbnQyIGludDJzIG5vcm1hbCB0ZXh0IGl0ZW0gbGFzdCBsb25nIGRldGFpbGVkIGVmZmVjdGl2ZSB1SW50NCB1SW50NHMgcmVwZWF0IGVuZCByZXBlYXQgVVJMIGluIHRyeSBpbnRvIHN3aXRjaCB0byB3b3JkcyBodHRwcyB0b2tlbiBiaW5maWxlIGVhY2ggdGVudGggYXMgdGlja3MgdGljayBzeXN0ZW0gcmVhbDQgYnkgZGF0ZUl0ZW1zIHdpdGhvdXQgY2hhciBjaGFyYWN0ZXIgYXNjZW5kaW5nIGVpZ2h0aCB3aG9sZSBkYXRlVGltZSBudW1lcmljIHNob3J0IGZpcnN0IGZ0cCBpbnRlZ2VyIGFiYnJldmlhdGVkIGFiYnIgYWJicmV2IHByaXZhdGUgY2FzZSB3aGlsZSBpZiBkaXYgbW9kIHdyYXAgYW5kIG9yIGJpdEFuZCBiaXROb3QgYml0T3IgYml0WG9yIGFtb25nIG5vdCBpbiBhIGFuIHdpdGhpbiBjb250YWlucyBlbmRzIHdpdGggYmVnaW5zIHRoZSBrZXlzIG9mIGtleXMiLGxpdGVyYWw6IlNJWCBURU4gRk9STUZFRUQgTklORSBaRVJPIE5PTkUgU1BBQ0UgRk9VUiBGQUxTRSBDT0xPTiBDUkxGIFBJIENPTU1BIEVORE9GRklMRSBFT0YgRUlHSFQgRklWRSBRVU9URSBFTVBUWSBPTkUgVFJVRSBSRVRVUk4gQ1IgTElORUZFRUQgUklHSFQgQkFDS1NMQVNIIE5VTEwgU0VWRU4gVEFCIFRIUkVFIFRXTyBzaXggdGVuIGZvcm1mZWVkIG5pbmUgemVybyBub25lIHNwYWNlIGZvdXIgZmFsc2UgY29sb24gY3JsZiBwaSBjb21tYSBlbmRvZmZpbGUgZW9mIGVpZ2h0IGZpdmUgcXVvdGUgZW1wdHkgb25lIHRydWUgcmV0dXJuIGNyIGxpbmVmZWVkIHJpZ2h0IGJhY2tzbGFzaCBudWxsIHNldmVuIHRhYiB0aHJlZSB0d28gUklWRVJTSU9OIFJJU1RBVEUgRklMRV9SRUFEX01PREUgRklMRV9XUklURV9NT0RFIEZJTEVfV1JJVEVfTU9ERSBESVJfV1JJVEVfTU9ERSBGSUxFX1JFQURfVU1BU0sgRklMRV9XUklURV9VTUFTSyBESVJfUkVBRF9VTUFTSyBESVJfV1JJVEVfVU1BU0siLGJ1aWx0X2luOiJwdXQgYWJzIGFjb3MgYWxpYXNSZWZlcmVuY2UgYW5udWl0eSBhcnJheURlY29kZSBhcnJheUVuY29kZSBhc2luIGF0YW4gYXRhbjIgYXZlcmFnZSBhdmcgYXZnRGV2IGJhc2U2NERlY29kZSBiYXNlNjRFbmNvZGUgYmFzZUNvbnZlcnQgYmluYXJ5RGVjb2RlIGJpbmFyeUVuY29kZSBieXRlT2Zmc2V0IGJ5dGVUb051bSBjYWNoZWRVUkwgY2FjaGVkVVJMcyBjaGFyVG9OdW0gY2lwaGVyTmFtZXMgY29kZXBvaW50T2Zmc2V0IGNvZGVwb2ludFByb3BlcnR5IGNvZGVwb2ludFRvTnVtIGNvZGV1bml0T2Zmc2V0IGNvbW1hbmROYW1lcyBjb21wb3VuZCBjb21wcmVzcyBjb25zdGFudE5hbWVzIGNvcyBkYXRlIGRhdGVGb3JtYXQgZGVjb21wcmVzcyBkaWZmZXJlbmNlIGRpcmVjdG9yaWVzIGRpc2tTcGFjZSBETlNTZXJ2ZXJzIGV4cCBleHAxIGV4cDIgZXhwMTAgZXh0ZW50cyBmaWxlcyBmbHVzaEV2ZW50cyBmb2xkZXJzIGZvcm1hdCBmdW5jdGlvbk5hbWVzIGdlb21ldHJpY01lYW4gZ2xvYmFsIGdsb2JhbHMgaGFzTWVtb3J5IGhhcm1vbmljTWVhbiBob3N0QWRkcmVzcyBob3N0QWRkcmVzc1RvTmFtZSBob3N0TmFtZSBob3N0TmFtZVRvQWRkcmVzcyBpc051bWJlciBJU09Ub01hYyBpdGVtT2Zmc2V0IGtleXMgbGVuIGxlbmd0aCBsaWJVUkxFcnJvckRhdGEgbGliVXJsRm9ybURhdGEgbGliVVJMZnRwQ29tbWFuZCBsaWJVUkxMYXN0SFRUUEhlYWRlcnMgbGliVVJMTGFzdFJISGVhZGVycyBsaWJVcmxNdWx0aXBhcnRGb3JtQWRkUGFydCBsaWJVcmxNdWx0aXBhcnRGb3JtRGF0YSBsaWJVUkxWZXJzaW9uIGxpbmVPZmZzZXQgbG4gbG4xIGxvY2FsTmFtZXMgbG9nIGxvZzIgbG9nMTAgbG9uZ0ZpbGVQYXRoIGxvd2VyIG1hY1RvSVNPIG1hdGNoQ2h1bmsgbWF0Y2hUZXh0IG1hdHJpeE11bHRpcGx5IG1heCBtZDVEaWdlc3QgbWVkaWFuIG1lcmdlIG1lc3NhZ2VBdXRoZW50aWNhdGlvbkNvZGUgbWVzc2FnZURpZ2VzdCBtaWxsaXNlYyBtaWxsaXNlY3MgbWlsbGlzZWNvbmQgbWlsbGlzZWNvbmRzIG1pbiBtb250aE5hbWVzIG5hdGl2ZUNoYXJUb051bSBub3JtYWxpemVUZXh0IG51bSBudW1iZXIgbnVtVG9CeXRlIG51bVRvQ2hhciBudW1Ub0NvZGVwb2ludCBudW1Ub05hdGl2ZUNoYXIgb2Zmc2V0IG9wZW4gb3BlbmZpbGVzIG9wZW5Qcm9jZXNzZXMgb3BlblByb2Nlc3NJRHMgb3BlblNvY2tldHMgcGFyYWdyYXBoT2Zmc2V0IHBhcmFtQ291bnQgcGFyYW0gcGFyYW1zIHBlZXJBZGRyZXNzIHBlbmRpbmdNZXNzYWdlcyBwbGF0Zm9ybSBwb3BTdGREZXYgcG9wdWxhdGlvblN0YW5kYXJkRGV2aWF0aW9uIHBvcHVsYXRpb25WYXJpYW5jZSBwb3BWYXJpYW5jZSBwcm9jZXNzSUQgcmFuZG9tIHJhbmRvbUJ5dGVzIHJlcGxhY2VUZXh0IHJlc3VsdCByZXZDcmVhdGVYTUxUcmVlIHJldkNyZWF0ZVhNTFRyZWVGcm9tRmlsZSByZXZDdXJyZW50UmVjb3JkIHJldkN1cnJlbnRSZWNvcmRJc0ZpcnN0IHJldkN1cnJlbnRSZWNvcmRJc0xhc3QgcmV2RGF0YWJhc2VDb2x1bW5Db3VudCByZXZEYXRhYmFzZUNvbHVtbklzTnVsbCByZXZEYXRhYmFzZUNvbHVtbkxlbmd0aHMgcmV2RGF0YWJhc2VDb2x1bW5OYW1lcyByZXZEYXRhYmFzZUNvbHVtbk5hbWVkIHJldkRhdGFiYXNlQ29sdW1uTnVtYmVyZWQgcmV2RGF0YWJhc2VDb2x1bW5UeXBlcyByZXZEYXRhYmFzZUNvbm5lY3RSZXN1bHQgcmV2RGF0YWJhc2VDdXJzb3JzIHJldkRhdGFiYXNlSUQgcmV2RGF0YWJhc2VUYWJsZU5hbWVzIHJldkRhdGFiYXNlVHlwZSByZXZEYXRhRnJvbVF1ZXJ5IHJldmRiX2Nsb3NlQ3Vyc29yIHJldmRiX2NvbHVtbmJ5bnVtYmVyIHJldmRiX2NvbHVtbmNvdW50IHJldmRiX2NvbHVtbmlzbnVsbCByZXZkYl9jb2x1bW5sZW5ndGhzIHJldmRiX2NvbHVtbm5hbWVzIHJldmRiX2NvbHVtbnR5cGVzIHJldmRiX2NvbW1pdCByZXZkYl9jb25uZWN0IHJldmRiX2Nvbm5lY3Rpb25zIHJldmRiX2Nvbm5lY3Rpb25lcnIgcmV2ZGJfY3VycmVudHJlY29yZCByZXZkYl9jdXJzb3Jjb25uZWN0aW9uIHJldmRiX2N1cnNvcmVyciByZXZkYl9jdXJzb3JzIHJldmRiX2RidHlwZSByZXZkYl9kaXNjb25uZWN0IHJldmRiX2V4ZWN1dGUgcmV2ZGJfaXNlb2YgcmV2ZGJfaXNib2YgcmV2ZGJfbW92ZWZpcnN0IHJldmRiX21vdmVsYXN0IHJldmRiX21vdmVuZXh0IHJldmRiX21vdmVwcmV2IHJldmRiX3F1ZXJ5IHJldmRiX3F1ZXJ5bGlzdCByZXZkYl9yZWNvcmRjb3VudCByZXZkYl9yb2xsYmFjayByZXZkYl90YWJsZW5hbWVzIHJldkdldERhdGFiYXNlRHJpdmVyUGF0aCByZXZOdW1iZXJPZlJlY29yZHMgcmV2T3BlbkRhdGFiYXNlIHJldk9wZW5EYXRhYmFzZXMgcmV2UXVlcnlEYXRhYmFzZSByZXZRdWVyeURhdGFiYXNlQmxvYiByZXZRdWVyeVJlc3VsdCByZXZRdWVyeUlzQXRTdGFydCByZXZRdWVyeUlzQXRFbmQgcmV2VW5peEZyb21NYWNQYXRoIHJldlhNTEF0dHJpYnV0ZSByZXZYTUxBdHRyaWJ1dGVzIHJldlhNTEF0dHJpYnV0ZVZhbHVlcyByZXZYTUxDaGlsZENvbnRlbnRzIHJldlhNTENoaWxkTmFtZXMgcmV2WE1MQ3JlYXRlVHJlZUZyb21GaWxlV2l0aE5hbWVzcGFjZXMgcmV2WE1MQ3JlYXRlVHJlZVdpdGhOYW1lc3BhY2VzIHJldlhNTERhdGFGcm9tWFBhdGhRdWVyeSByZXZYTUxFdmFsdWF0ZVhQYXRoIHJldlhNTEZpcnN0Q2hpbGQgcmV2WE1MTWF0Y2hpbmdOb2RlIHJldlhNTE5leHRTaWJsaW5nIHJldlhNTE5vZGVDb250ZW50cyByZXZYTUxOdW1iZXJPZkNoaWxkcmVuIHJldlhNTFBhcmVudCByZXZYTUxQcmV2aW91c1NpYmxpbmcgcmV2WE1MUm9vdE5vZGUgcmV2WE1MUlBDX0NyZWF0ZVJlcXVlc3QgcmV2WE1MUlBDX0RvY3VtZW50cyByZXZYTUxSUENfRXJyb3IgcmV2WE1MUlBDX0dldEhvc3QgcmV2WE1MUlBDX0dldE1ldGhvZCByZXZYTUxSUENfR2V0UGFyYW0gcmV2WE1MVGV4dCByZXZYTUxSUENfRXhlY3V0ZSByZXZYTUxSUENfR2V0UGFyYW1Db3VudCByZXZYTUxSUENfR2V0UGFyYW1Ob2RlIHJldlhNTFJQQ19HZXRQYXJhbVR5cGUgcmV2WE1MUlBDX0dldFBhdGggcmV2WE1MUlBDX0dldFBvcnQgcmV2WE1MUlBDX0dldFByb3RvY29sIHJldlhNTFJQQ19HZXRSZXF1ZXN0IHJldlhNTFJQQ19HZXRSZXNwb25zZSByZXZYTUxSUENfR2V0U29ja2V0IHJldlhNTFRyZWUgcmV2WE1MVHJlZXMgcmV2WE1MVmFsaWRhdGVEVEQgcmV2WmlwRGVzY3JpYmVJdGVtIHJldlppcEVudW1lcmF0ZUl0ZW1zIHJldlppcE9wZW5BcmNoaXZlcyByb3VuZCBzYW1wVmFyaWFuY2Ugc2VjIHNlY3Mgc2Vjb25kcyBzZW50ZW5jZU9mZnNldCBzaGExRGlnZXN0IHNoZWxsIHNob3J0RmlsZVBhdGggc2luIHNwZWNpYWxGb2xkZXJQYXRoIHNxcnQgc3RhbmRhcmREZXZpYXRpb24gc3RhdFJvdW5kIHN0ZERldiBzdW0gc3lzRXJyb3Igc3lzdGVtVmVyc2lvbiB0YW4gdGVtcE5hbWUgdGV4dERlY29kZSB0ZXh0RW5jb2RlIHRpY2sgdGlja3MgdGltZSB0byB0b2tlbk9mZnNldCB0b0xvd2VyIHRvVXBwZXIgdHJhbnNwb3NlIHRydWV3b3JkT2Zmc2V0IHRydW5jIHVuaURlY29kZSB1bmlFbmNvZGUgdXBwZXIgVVJMRGVjb2RlIFVSTEVuY29kZSBVUkxTdGF0dXMgdXVpZCB2YWx1ZSB2YXJpYWJsZU5hbWVzIHZhcmlhbmNlIHZlcnNpb24gd2FpdERlcHRoIHdlZWtkYXlOYW1lcyB3b3JkT2Zmc2V0IHhzbHRBcHBseVN0eWxlc2hlZXQgeHNsdEFwcGx5U3R5bGVzaGVldEZyb21GaWxlIHhzbHRMb2FkU3R5bGVzaGVldCB4c2x0TG9hZFN0eWxlc2hlZXRGcm9tRmlsZSBhZGQgYnJlYWtwb2ludCBjYW5jZWwgY2xlYXIgbG9jYWwgdmFyaWFibGUgZmlsZSB3b3JkIGxpbmUgZm9sZGVyIGRpcmVjdG9yeSBVUkwgY2xvc2Ugc29ja2V0IHByb2Nlc3MgY29tYmluZSBjb25zdGFudCBjb252ZXJ0IGNyZWF0ZSBuZXcgYWxpYXMgZm9sZGVyIGRpcmVjdG9yeSBkZWNyeXB0IGRlbGV0ZSB2YXJpYWJsZSB3b3JkIGxpbmUgZm9sZGVyIGRpcmVjdG9yeSBVUkwgZGlzcGF0Y2ggZGl2aWRlIGRvIGVuY3J5cHQgZmlsdGVyIGdldCBpbmNsdWRlIGludGVyc2VjdCBraWxsIGxpYlVSTERvd25sb2FkVG9GaWxlIGxpYlVSTEZvbGxvd0h0dHBSZWRpcmVjdHMgbGliVVJMZnRwVXBsb2FkIGxpYlVSTGZ0cFVwbG9hZEZpbGUgbGliVVJMcmVzZXRBbGwgbGliVXJsU2V0QXV0aENhbGxiYWNrIGxpYlVSTFNldERyaXZlciBsaWJVUkxTZXRDdXN0b21IVFRQSGVhZGVycyBsaWJVcmxTZXRFeHBlY3QxMDAgbGliVVJMU2V0RlRQTGlzdENvbW1hbmQgbGliVVJMU2V0RlRQTW9kZSBsaWJVUkxTZXRGVFBTdG9wVGltZSBsaWJVUkxTZXRTdGF0dXNDYWxsYmFjayBsb2FkIGV4dGVuc2lvbiBsb2FkZWRFeHRlbnNpb25zIG11bHRpcGx5IHNvY2tldCBwcmVwYXJlIHByb2Nlc3MgcG9zdCBzZWVrIHJlbCByZWxhdGl2ZSByZWFkIGZyb20gcHJvY2VzcyByZW5hbWUgcmVwbGFjZSByZXF1aXJlIHJlc2V0QWxsIHJlc29sdmUgcmV2QWRkWE1MTm9kZSByZXZBcHBlbmRYTUwgcmV2Q2xvc2VDdXJzb3IgcmV2Q2xvc2VEYXRhYmFzZSByZXZDb21taXREYXRhYmFzZSByZXZDb3B5RmlsZSByZXZDb3B5Rm9sZGVyIHJldkNvcHlYTUxOb2RlIHJldkRlbGV0ZUZvbGRlciByZXZEZWxldGVYTUxOb2RlIHJldkRlbGV0ZUFsbFhNTFRyZWVzIHJldkRlbGV0ZVhNTFRyZWUgcmV2RXhlY3V0ZVNRTCByZXZHb1VSTCByZXZJbnNlcnRYTUxOb2RlIHJldk1vdmVGb2xkZXIgcmV2TW92ZVRvRmlyc3RSZWNvcmQgcmV2TW92ZVRvTGFzdFJlY29yZCByZXZNb3ZlVG9OZXh0UmVjb3JkIHJldk1vdmVUb1ByZXZpb3VzUmVjb3JkIHJldk1vdmVUb1JlY29yZCByZXZNb3ZlWE1MTm9kZSByZXZQdXRJbnRvWE1MTm9kZSByZXZSb2xsQmFja0RhdGFiYXNlIHJldlNldERhdGFiYXNlRHJpdmVyUGF0aCByZXZTZXRYTUxBdHRyaWJ1dGUgcmV2WE1MUlBDX0FkZFBhcmFtIHJldlhNTFJQQ19EZWxldGVBbGxEb2N1bWVudHMgcmV2WE1MQWRkRFREIHJldlhNTFJQQ19GcmVlIHJldlhNTFJQQ19GcmVlQWxsIHJldlhNTFJQQ19EZWxldGVEb2N1bWVudCByZXZYTUxSUENfRGVsZXRlUGFyYW0gcmV2WE1MUlBDX1NldEhvc3QgcmV2WE1MUlBDX1NldE1ldGhvZCByZXZYTUxSUENfU2V0UG9ydCByZXZYTUxSUENfU2V0UHJvdG9jb2wgcmV2WE1MUlBDX1NldFNvY2tldCByZXZaaXBBZGRJdGVtV2l0aERhdGEgcmV2WmlwQWRkSXRlbVdpdGhGaWxlIHJldlppcEFkZFVuY29tcHJlc3NlZEl0ZW1XaXRoRGF0YSByZXZaaXBBZGRVbmNvbXByZXNzZWRJdGVtV2l0aEZpbGUgcmV2WmlwQ2FuY2VsIHJldlppcENsb3NlQXJjaGl2ZSByZXZaaXBEZWxldGVJdGVtIHJldlppcEV4dHJhY3RJdGVtVG9GaWxlIHJldlppcEV4dHJhY3RJdGVtVG9WYXJpYWJsZSByZXZaaXBTZXRQcm9ncmVzc0NhbGxiYWNrIHJldlppcFJlbmFtZUl0ZW0gcmV2WmlwUmVwbGFjZUl0ZW1XaXRoRGF0YSByZXZaaXBSZXBsYWNlSXRlbVdpdGhGaWxlIHJldlppcE9wZW5BcmNoaXZlIHNlbmQgc2V0IHNvcnQgc3BsaXQgc3RhcnQgc3RvcCBzdWJ0cmFjdCBzeW1tZXRyaWMgdW5pb24gdW5sb2FkIHZlY3RvckRvdFByb2R1Y3Qgd2FpdCB3cml0ZSJ9LGNvbnRhaW5zOlt0LHtjbGFzc05hbWU6ImtleXdvcmQiLGJlZ2luOiJcXGJlbmRcXHNpZlxcYiJ9LHtjbGFzc05hbWU6ImZ1bmN0aW9uIixiZWdpbktleXdvcmRzOiJmdW5jdGlvbiIsZW5kOiIkIixjb250YWluczpbdCxpLGUuQVBPU19TVFJJTkdfTU9ERSxlLlFVT1RFX1NUUklOR19NT0RFLGUuQklOQVJZX05VTUJFUl9NT0RFLGUuQ19OVU1CRVJfTU9ERSxhXX0se2NsYXNzTmFtZToiZnVuY3Rpb24iLGJlZ2luOiJcXGJlbmRcXHMrIixlbmQ6IiQiLGtleXdvcmRzOiJlbmQiLGNvbnRhaW5zOltpLGFdLHJlbGV2YW5jZTowfSx7YmVnaW5LZXl3b3JkczoiY29tbWFuZCBvbiIsZW5kOiIkIixjb250YWluczpbdCxpLGUuQVBPU19TVFJJTkdfTU9ERSxlLlFVT1RFX1NUUklOR19NT0RFLGUuQklOQVJZX05VTUJFUl9NT0RFLGUuQ19OVU1CRVJfTU9ERSxhXX0se2NsYXNzTmFtZToibWV0YSIsdmFyaWFudHM6W3tiZWdpbjoiPFxcPyhyZXZ8bGN8bGl2ZWNvZGUpIixyZWxldmFuY2U6MTB9LHtiZWdpbjoiPFxcPyJ9LHtiZWdpbjoiXFw/PiJ9XX0sZS5BUE9TX1NUUklOR19NT0RFLGUuUVVPVEVfU1RSSU5HX01PREUsZS5CSU5BUllfTlVNQkVSX01PREUsZS5DX05VTUJFUl9NT0RFLGFdLmNvbmNhdChuKSxpbGxlZ2FsOiI7JHxeXFxbfF49fCZ8XFx7In19cy5leHBvcnRzPXJ9LDY2NjMzOmZ1bmN0aW9uKHMpe2NvbnN0IHI9WyJhcyIsImluIiwib2YiLCJpZiIsImZvciIsIndoaWxlIiwiZmluYWxseSIsInZhciIsIm5ldyIsImZ1bmN0aW9uIiwiZG8iLCJyZXR1cm4iLCJ2b2lkIiwiZWxzZSIsImJyZWFrIiwiY2F0Y2giLCJpbnN0YW5jZW9mIiwid2l0aCIsInRocm93IiwiY2FzZSIsImRlZmF1bHQiLCJ0cnkiLCJzd2l0Y2giLCJjb250aW51ZSIsInR5cGVvZiIsImRlbGV0ZSIsImxldCIsInlpZWxkIiwiY29uc3QiLCJjbGFzcyIsImRlYnVnZ2VyIiwiYXN5bmMiLCJhd2FpdCIsInN0YXRpYyIsImltcG9ydCIsImZyb20iLCJleHBvcnQiLCJleHRlbmRzIl0sZT1bInRydWUiLCJmYWxzZSIsIm51bGwiLCJ1bmRlZmluZWQiLCJOYU4iLCJJbmZpbml0eSJdLHQ9WyJJbnRsIiwiRGF0YVZpZXciLCJOdW1iZXIiLCJNYXRoIiwiRGF0ZSIsIlN0cmluZyIsIlJlZ0V4cCIsIk9iamVjdCIsIkZ1bmN0aW9uIiwiQm9vbGVhbiIsIkVycm9yIiwiU3ltYm9sIiwiU2V0IiwiTWFwIiwiV2Vha1NldCIsIldlYWtNYXAiLCJQcm94eSIsIlJlZmxlY3QiLCJKU09OIiwiUHJvbWlzZSIsIkZsb2F0NjRBcnJheSIsIkludDE2QXJyYXkiLCJJbnQzMkFycmF5IiwiSW50OEFycmF5IiwiVWludDE2QXJyYXkiLCJVaW50MzJBcnJheSIsIkZsb2F0MzJBcnJheSIsIkFycmF5IiwiVWludDhBcnJheSIsIlVpbnQ4Q2xhbXBlZEFycmF5IiwiQXJyYXlCdWZmZXIiLCJCaWdJbnQ2NEFycmF5IiwiQmlnVWludDY0QXJyYXkiLCJCaWdJbnQiXSxuPVsiRXZhbEVycm9yIiwiSW50ZXJuYWxFcnJvciIsIlJhbmdlRXJyb3IiLCJSZWZlcmVuY2VFcnJvciIsIlN5bnRheEVycm9yIiwiVHlwZUVycm9yIiwiVVJJRXJyb3IiXSxhPVsic2V0SW50ZXJ2YWwiLCJzZXRUaW1lb3V0IiwiY2xlYXJJbnRlcnZhbCIsImNsZWFyVGltZW91dCIsInJlcXVpcmUiLCJleHBvcnRzIiwiZXZhbCIsImlzRmluaXRlIiwiaXNOYU4iLCJwYXJzZUZsb2F0IiwicGFyc2VJbnQiLCJkZWNvZGVVUkkiLCJkZWNvZGVVUklDb21wb25lbnQiLCJlbmNvZGVVUkkiLCJlbmNvZGVVUklDb21wb25lbnQiLCJlc2NhcGUiLCJ1bmVzY2FwZSJdLGk9WyJhcmd1bWVudHMiLCJ0aGlzIiwic3VwZXIiLCJjb25zb2xlIiwid2luZG93IiwiZG9jdW1lbnQiLCJsb2NhbFN0b3JhZ2UiLCJtb2R1bGUiLCJnbG9iYWwiXSxvPVtdLmNvbmNhdChhLGksdCxuKTtmdW5jdGlvbiBsKGMpe2NvbnN0IF89WyJucG0iLCJwcmludCJdLGQ9WyJ5ZXMiLCJubyIsIm9uIiwib2ZmIiwiaXQiLCJ0aGF0Iiwidm9pZCJdLGc9WyJ0aGVuIiwidW5sZXNzIiwidW50aWwiLCJsb29wIiwib2YiLCJieSIsIndoZW4iLCJhbmQiLCJvciIsImlzIiwiaXNudCIsIm5vdCIsIml0IiwidGhhdCIsIm90aGVyd2lzZSIsImZyb20iLCJ0byIsInRpbCIsImZhbGx0aHJvdWdoIiwiY2FzZSIsImVudW0iLCJuYXRpdmUiLCJsaXN0IiwibWFwIiwiX19oYXNQcm9wIiwiX19leHRlbmRzIiwiX19zbGljZSIsIl9fYmluZCIsIl9faW5kZXhPZiJdLEU9e2tleXdvcmQ6ci5jb25jYXQoZyksbGl0ZXJhbDplLmNvbmNhdChkKSxidWlsdF9pbjpvLmNvbmNhdChfKX0sdT0iW0EtWmEteiRfXSg/Oi1bMC05QS1aYS16JF9dfFswLTlBLVphLXokX10pKiIsbT1jLmluaGVyaXQoYy5USVRMRV9NT0RFLHtiZWdpbjp1fSksUz17Y2xhc3NOYW1lOiJzdWJzdCIsYmVnaW46LyNcey8sZW5kOi9cfS8sa2V5d29yZHM6RX0sVD17Y2xhc3NOYW1lOiJzdWJzdCIsYmVnaW46LyNbQS1aYS16JF9dLyxlbmQ6Lyg/Oi1bMC05QS1aYS16JF9dfFswLTlBLVphLXokX10pKi8sa2V5d29yZHM6RX0sYj1bYy5CSU5BUllfTlVNQkVSX01PREUse2NsYXNzTmFtZToibnVtYmVyIixiZWdpbjoiKFxcYjBbeFhdW2EtZkEtRjAtOV9dKyl8KFxcYlxcZChcXGR8X1xcZCkqKFxcLihcXGQoXFxkfF9cXGQpKik/KT8oXypbZUVdKFstK11cXGQoX1xcZHxcXGQpKik/KT9bX2Etel0qKSIscmVsZXZhbmNlOjAsc3RhcnRzOntlbmQ6IihcXHMqLyk/IixyZWxldmFuY2U6MH19LHtjbGFzc05hbWU6InN0cmluZyIsdmFyaWFudHM6W3tiZWdpbjovJycnLyxlbmQ6LycnJy8sY29udGFpbnM6W2MuQkFDS1NMQVNIX0VTQ0FQRV19LHtiZWdpbjovJy8sZW5kOi8nLyxjb250YWluczpbYy5CQUNLU0xBU0hfRVNDQVBFXX0se2JlZ2luOi8iIiIvLGVuZDovIiIiLyxjb250YWluczpbYy5CQUNLU0xBU0hfRVNDQVBFLFMsVF19LHtiZWdpbjovIi8sZW5kOi8iLyxjb250YWluczpbYy5CQUNLU0xBU0hfRVNDQVBFLFMsVF19LHtiZWdpbjovXFwvLGVuZDovKFxzfCQpLyxleGNsdWRlRW5kOiEwfV19LHtjbGFzc05hbWU6InJlZ2V4cCIsdmFyaWFudHM6W3tiZWdpbjoiLy8iLGVuZDoiLy9bZ2ltXSoiLGNvbnRhaW5zOltTLGMuSEFTSF9DT01NRU5UX01PREVdfSx7YmVnaW46L1wvKD8hWyAqXSkoXFwufFteXFxcbl0pKj9cL1tnaW1dKig/PVxXKS99XX0se2JlZ2luOiJAIit1fSx7YmVnaW46ImBgIixlbmQ6ImBgIixleGNsdWRlQmVnaW46ITAsZXhjbHVkZUVuZDohMCxzdWJMYW5ndWFnZToiamF2YXNjcmlwdCJ9XTtTLmNvbnRhaW5zPWI7Y29uc3QgZj17Y2xhc3NOYW1lOiJwYXJhbXMiLGJlZ2luOiJcXCgiLHJldHVybkJlZ2luOiEwLGNvbnRhaW5zOlt7YmVnaW46L1woLyxlbmQ6L1wpLyxrZXl3b3JkczpFLGNvbnRhaW5zOlsic2VsZiJdLmNvbmNhdChiKX1dfSxDPXtiZWdpbjoiKCM9Pnw9PnxcXHw+PnwtPy0+fCEtPikifTtyZXR1cm57bmFtZToiTGl2ZVNjcmlwdCIsYWxpYXNlczpbImxzIl0sa2V5d29yZHM6RSxpbGxlZ2FsOi9cL1wqLyxjb250YWluczpiLmNvbmNhdChbYy5DT01NRU5UKCJcXC9cXCoiLCJcXCpcXC8iKSxjLkhBU0hfQ09NTUVOVF9NT0RFLEMse2NsYXNzTmFtZToiZnVuY3Rpb24iLGNvbnRhaW5zOlttLGZdLHJldHVybkJlZ2luOiEwLHZhcmlhbnRzOlt7YmVnaW46IigiK3UrIlxccyooPzo9fDo9KVxccyopPyhcXCguKlxcKVxccyopP1xcQi0+XFwqPyIsZW5kOiItPlxcKj8ifSx7YmVnaW46IigiK3UrIlxccyooPzo9fDo9KVxccyopPyE/KFxcKC4qXFwpXFxzKik/XFxCWy1+XXsxLDJ9PlxcKj8iLGVuZDoiWy1+XXsxLDJ9PlxcKj8ifSx7YmVnaW46IigiK3UrIlxccyooPzo9fDo9KVxccyopPyhcXCguKlxcKVxccyopP1xcQiE/Wy1+XXsxLDJ9PlxcKj8iLGVuZDoiIT9bLX5dezEsMn0+XFwqPyJ9XX0se2NsYXNzTmFtZToiY2xhc3MiLGJlZ2luS2V5d29yZHM6ImNsYXNzIixlbmQ6IiQiLGlsbGVnYWw6L1s6PSJcW1xdXS8sY29udGFpbnM6W3tiZWdpbktleXdvcmRzOiJleHRlbmRzIixlbmRzV2l0aFBhcmVudDohMCxpbGxlZ2FsOi9bOj0iXFtcXV0vLGNvbnRhaW5zOlttXX0sbV19LHtiZWdpbjp1KyI6IixlbmQ6IjoiLHJldHVybkJlZ2luOiEwLHJldHVybkVuZDohMCxyZWxldmFuY2U6MH1dKX19cy5leHBvcnRzPWx9LDE5MDc1OmZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHIobil7cmV0dXJuIG4/dHlwZW9mIG49PSJzdHJpbmciP246bi5zb3VyY2U6bnVsbH1mdW5jdGlvbiBlKC4uLm4pe3JldHVybiBuLm1hcChpPT5yKGkpKS5qb2luKCIiKX1mdW5jdGlvbiB0KG4pe2NvbnN0IGE9LyhbLWEtekEtWiQuX11bXHckLi1dKikvLGk9e2NsYXNzTmFtZToidHlwZSIsYmVnaW46L1xiaVxkKyg/PVxzfFxiKS99LG89e2NsYXNzTmFtZToib3BlcmF0b3IiLHJlbGV2YW5jZTowLGJlZ2luOi89L30sbD17Y2xhc3NOYW1lOiJwdW5jdHVhdGlvbiIscmVsZXZhbmNlOjAsYmVnaW46LywvfSxjPXtjbGFzc05hbWU6Im51bWJlciIsdmFyaWFudHM6W3tiZWdpbjovMFt4WF1bYS1mQS1GMC05XSsvfSx7YmVnaW46Ly0/XGQrKD86Wy5dXGQrKT8oPzpbZUVdWy0rXT9cZCsoPzpbLl1cZCspPyk/L31dLHJlbGV2YW5jZTowfSxfPXtjbGFzc05hbWU6InN5bWJvbCIsdmFyaWFudHM6W3tiZWdpbjovXlxzKlthLXpdKzovfV0scmVsZXZhbmNlOjB9LGQ9e2NsYXNzTmFtZToidmFyaWFibGUiLHZhcmlhbnRzOlt7YmVnaW46ZSgvJS8sYSl9LHtiZWdpbjovJVxkKy99LHtiZWdpbjovI1xkKy99XX0sZz17Y2xhc3NOYW1lOiJ0aXRsZSIsdmFyaWFudHM6W3tiZWdpbjplKC9ALyxhKX0se2JlZ2luOi9AXGQrL30se2JlZ2luOmUoLyEvLGEpfSx7YmVnaW46ZSgvIVxkKy8sYSl9LHtiZWdpbjovIVxkKy99XX07cmV0dXJue25hbWU6IkxMVk0gSVIiLGtleXdvcmRzOiJiZWdpbiBlbmQgdHJ1ZSBmYWxzZSBkZWNsYXJlIGRlZmluZSBnbG9iYWwgY29uc3RhbnQgcHJpdmF0ZSBsaW5rZXJfcHJpdmF0ZSBpbnRlcm5hbCBhdmFpbGFibGVfZXh0ZXJuYWxseSBsaW5rb25jZSBsaW5rb25jZV9vZHIgd2VhayB3ZWFrX29kciBhcHBlbmRpbmcgZGxsaW1wb3J0IGRsbGV4cG9ydCBjb21tb24gZGVmYXVsdCBoaWRkZW4gcHJvdGVjdGVkIGV4dGVybl93ZWFrIGV4dGVybmFsIHRocmVhZF9sb2NhbCB6ZXJvaW5pdGlhbGl6ZXIgdW5kZWYgbnVsbCB0byB0YWlsIHRhcmdldCB0cmlwbGUgZGF0YWxheW91dCB2b2xhdGlsZSBudXcgbnN3IG5uYW4gbmluZiBuc3ogYXJjcCBmYXN0IGV4YWN0IGluYm91bmRzIGFsaWduIGFkZHJzcGFjZSBzZWN0aW9uIGFsaWFzIG1vZHVsZSBhc20gc2lkZWVmZmVjdCBnYyBkYmcgbGlua2VyX3ByaXZhdGVfd2VhayBhdHRyaWJ1dGVzIGJsb2NrYWRkcmVzcyBpbml0aWFsZXhlYyBsb2NhbGR5bmFtaWMgbG9jYWxleGVjIHByZWZpeCB1bm5hbWVkX2FkZHIgY2NjIGZhc3RjYyBjb2xkY2MgeDg2X3N0ZGNhbGxjYyB4ODZfZmFzdGNhbGxjYyBhcm1fYXBjc2NjIGFybV9hYXBjc2NjIGFybV9hYXBjc192ZnBjYyBwdHhfZGV2aWNlIHB0eF9rZXJuZWwgaW50ZWxfb2NsX2JpY2MgbXNwNDMwX2ludHJjYyBzcGlyX2Z1bmMgc3Bpcl9rZXJuZWwgeDg2XzY0X3N5c3ZjYyB4ODZfNjRfd2luNjRjYyB4ODZfdGhpc2NhbGxjYyBjYyBjIHNpZ25leHQgemVyb2V4dCBpbnJlZyBzcmV0IG5vdW53aW5kIG5vcmV0dXJuIG5vYWxpYXMgbm9jYXB0dXJlIGJ5dmFsIG5lc3QgcmVhZG5vbmUgcmVhZG9ubHkgaW5saW5laGludCBub2lubGluZSBhbHdheXNpbmxpbmUgb3B0c2l6ZSBzc3Agc3NwcmVxIG5vcmVkem9uZSBub2ltcGxpY2l0ZmxvYXQgbmFrZWQgYnVpbHRpbiBjb2xkIG5vYnVpbHRpbiBub2R1cGxpY2F0ZSBub25sYXp5YmluZCBvcHRub25lIHJldHVybnNfdHdpY2Ugc2FuaXRpemVfYWRkcmVzcyBzYW5pdGl6ZV9tZW1vcnkgc2FuaXRpemVfdGhyZWFkIHNzcHN0cm9uZyB1d3RhYmxlIHJldHVybmVkIHR5cGUgb3BhcXVlIGVxIG5lIHNsdCBzZ3Qgc2xlIHNnZSB1bHQgdWd0IHVsZSB1Z2Ugb2VxIG9uZSBvbHQgb2d0IG9sZSBvZ2Ugb3JkIHVubyB1ZXEgdW5lIHggYWNxX3JlbCBhY3F1aXJlIGFsaWduc3RhY2sgYXRvbWljIGNhdGNoIGNsZWFudXAgZmlsdGVyIGludGVsZGlhbGVjdCBtYXggbWluIG1vbm90b25pYyBuYW5kIHBlcnNvbmFsaXR5IHJlbGVhc2Ugc2VxX2NzdCBzaW5nbGV0aHJlYWQgdW1heCB1bWluIHVub3JkZXJlZCB4Y2hnIGFkZCBmYWRkIHN1YiBmc3ViIG11bCBmbXVsIHVkaXYgc2RpdiBmZGl2IHVyZW0gc3JlbSBmcmVtIHNobCBsc2hyIGFzaHIgYW5kIG9yIHhvciBpY21wIGZjbXAgcGhpIGNhbGwgdHJ1bmMgemV4dCBzZXh0IGZwdHJ1bmMgZnBleHQgdWl0b2ZwIHNpdG9mcCBmcHRvdWkgZnB0b3NpIGludHRvcHRyIHB0cnRvaW50IGJpdGNhc3QgYWRkcnNwYWNlY2FzdCBzZWxlY3QgdmFfYXJnIHJldCBiciBzd2l0Y2ggaW52b2tlIHVud2luZCB1bnJlYWNoYWJsZSBpbmRpcmVjdGJyIGxhbmRpbmdwYWQgcmVzdW1lIG1hbGxvYyBhbGxvY2EgZnJlZSBsb2FkIHN0b3JlIGdldGVsZW1lbnRwdHIgZXh0cmFjdGVsZW1lbnQgaW5zZXJ0ZWxlbWVudCBzaHVmZmxldmVjdG9yIGdldHJlc3VsdCBleHRyYWN0dmFsdWUgaW5zZXJ0dmFsdWUgYXRvbWljcm13IGNtcHhjaGcgZmVuY2UgYXJnbWVtb25seSBkb3VibGUiLGNvbnRhaW5zOltpLG4uQ09NTUVOVCgvO1xzKiQvLG51bGwse3JlbGV2YW5jZTowfSksbi5DT01NRU5UKC87LywvJC8pLG4uUVVPVEVfU1RSSU5HX01PREUse2NsYXNzTmFtZToic3RyaW5nIix2YXJpYW50czpbe2JlZ2luOi8iLyxlbmQ6L1teXFxdIi99XX0sZyxsLG8sZCxfLGNdfX1zLmV4cG9ydHM9dH0sNzI4MDA6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihlKXt2YXIgdD17Y2xhc3NOYW1lOiJzdWJzdCIsYmVnaW46L1xcW3RuIlxcXS99LG49e2NsYXNzTmFtZToic3RyaW5nIixiZWdpbjonIicsZW5kOiciJyxjb250YWluczpbdF19LGE9e2NsYXNzTmFtZToibnVtYmVyIixyZWxldmFuY2U6MCxiZWdpbjplLkNfTlVNQkVSX1JFfSxpPXtjbGFzc05hbWU6ImxpdGVyYWwiLHZhcmlhbnRzOlt7YmVnaW46IlxcYihQSXxUV09fUEl8UElfQllfVFdPfERFR19UT19SQUR8UkFEX1RPX0RFR3xTUVJUMilcXGIifSx7YmVnaW46IlxcYihYUF9FUlJPUl8oRVhQRVJJRU5DRVNfRElTQUJMRUR8RVhQRVJJRU5DRV8oRElTQUJMRUR8U1VTUEVOREVEKXxJTlZBTElEXyhFWFBFUklFTkNFfFBBUkFNRVRFUlMpfEtFWV9OT1RfRk9VTkR8TUFUVVJJVFlfRVhDRUVERUR8Tk9ORXxOT1RfKEZPVU5EfFBFUk1JVFRFRChfTEFORCk/KXxOT19FWFBFUklFTkNFfFFVT1RBX0VYQ0VFREVEfFJFVFJZX1VQREFURXxTVE9SQUdFX0VYQ0VQVElPTnxTVE9SRV9ESVNBQkxFRHxUSFJPVFRMRUR8VU5LTk9XTl9FUlJPUil8SlNPTl9BUFBFTkR8U1RBVFVTXyhQSFlTSUNTfFJPVEFURV9bWFlaXXxQSEFOVE9NfFNBTkRCT1h8QkxPQ0tfR1JBQihfT0JKRUNUKT98KERJRXxSRVRVUk4pX0FUX0VER0V8Q0FTVF9TSEFET1dTfE9LfE1BTEZPUk1FRF9QQVJBTVN8VFlQRV9NSVNNQVRDSHxCT1VORFNfRVJST1J8Tk9UXyhGT1VORHxTVVBQT1JURUQpfElOVEVSTkFMX0VSUk9SfFdISVRFTElTVF9GQUlMRUQpfEFHRU5UKF8oQllfKExFR0FDWV98VVNFUilOQU1FfEZMWUlOR3xBVFRBQ0hNRU5UU3xTQ1JJUFRFRHxNT1VTRUxPT0t8U0lUVElOR3xPTl9PQkpFQ1R8QVdBWXxXQUxLSU5HfElOX0FJUnxUWVBJTkd8Q1JPVUNISU5HfEJVU1l8QUxXQVlTX1JVTnxBVVRPUElMT1R8TElTVF8oUEFSQ0VMKF9PV05FUik/fFJFR0lPTikpKT98Q0FNRVJBXyhQSVRDSHxESVNUQU5DRXxCRUhJTkRORVNTXyhBTkdMRXxMQUcpfChGT0NVU3xQT1NJVElPTikoXyhUSFJFU0hPTER8TE9DS0VEfExBRykpP3xGT0NVU19PRkZTRVR8QUNUSVZFKXxBTklNX09OfExPT1B8UkVWRVJTRXxQSU5HX1BPTkd8U01PT1RIfFJPVEFURXxTQ0FMRXxBTExfU0lERVN8TElOS18oUk9PVHxTRVR8QUxMXyhPVEhFUlN8Q0hJTERSRU4pfFRISVMpfEFDVElWRXxQQVNTKElWRXxfKEFMV0FZU3xJRl9OT1RfSEFORExFRHxORVZFUikpfFNDUklQVEVEfENPTlRST0xfKEZXRHxCQUNLfChST1RfKT8oTEVGVHxSSUdIVCl8VVB8RE9XTnwoTUxfKT9MQlVUVE9OKXxQRVJNSVNTSU9OXyhSRVRVUk5fT0JKRUNUU3xERUJJVHxPVkVSUklERV9BTklNQVRJT05TfFNJTEVOVF9FU1RBVEVfTUFOQUdFTUVOVHxUQUtFX0NPTlRST0xTfFRSSUdHRVJfQU5JTUFUSU9OfEFUVEFDSHxDSEFOR0VfTElOS1N8KENPTlRST0x8VFJBQ0spX0NBTUVSQXxURUxFUE9SVCl8SU5WRU5UT1JZXyhURVhUVVJFfFNPVU5EfE9CSkVDVHxTQ1JJUFR8TEFORE1BUkt8Q0xPVEhJTkd8Tk9URUNBUkR8Qk9EWVBBUlR8QU5JTUFUSU9OfEdFU1RVUkV8QUxMfE5PTkUpfENIQU5HRURfKElOVkVOVE9SWXxDT0xPUnxTSEFQRXxTQ0FMRXxURVhUVVJFfExJTkt8QUxMT1dFRF9EUk9QfE9XTkVSfFJFR0lPTihfU1RBUlQpP3xURUxFUE9SVHxNRURJQSl8T0JKRUNUXyhDTElDS19BQ1RJT058SE9WRVJfSEVJR0hUfExBU1RfT1dORVJfSUR8KFBIWVNJQ1N8U0VSVkVSfFNUUkVBTUlORylfQ09TVHxVTktOT1dOX0RFVEFJTHxDSEFSQUNURVJfVElNRXxQSEFOVE9NfFBIWVNJQ1N8VEVNUF8oQVRUQUNIRUR8T05fUkVaKXxOQU1FfERFU0N8UE9TfFBSSU1fKENPVU5UfEVRVUlWQUxFTkNFKXxSRVRVUk5fKFBBUkNFTChfT1dORVIpP3xSRUdJT04pfFJFWlpFUl9LRVl8Uk9PP1R8VkVMT0NJVFl8T01FR0F8T1dORVJ8R1JPVVAoX1RBRyk/fENSRUFUT1J8QVRUQUNIRURfKFBPSU5UfFNMT1RTX0FWQUlMQUJMRSl8UkVOREVSX1dFSUdIVHwoQk9EWV9TSEFQRXxQQVRIRklORElORylfVFlQRXwoUlVOTklOR3xUT1RBTClfU0NSSVBUX0NPVU5UfFRPVEFMX0lOVkVOVE9SWV9DT1VOVHxTQ1JJUFRfKE1FTU9SWXxUSU1FKSl8VFlQRV8oSU5URUdFUnxGTE9BVHxTVFJJTkd8S0VZfFZFQ1RPUnxST1RBVElPTnxJTlZBTElEKXwoREVCVUd8UFVCTElDKV9DSEFOTkVMfEFUVEFDSF8oQVZBVEFSX0NFTlRFUnxDSEVTVHxIRUFEfEJBQ0t8UEVMVklTfE1PVVRIfENISU58TkVDS3xOT1NFfEJFTExZfFtMUl0oU0hPVUxERVJ8SEFORHxGT09UfEVBUnxFWUV8W1VMXShBUk18TEVHKXxISVApfChMRUZUfFJJR0hUKV9QRUN8SFVEXyhDRU5URVJfWzEyXXxUT1BfKFJJR0hUfENFTlRFUnxMRUZUKXxCT1RUT00oXyhSSUdIVHxMRUZUKSk/KXxbTFJdSEFORF9SSU5HMXxUQUlMXyhCQVNFfFRJUCl8W0xSXVdJTkd8RkFDRV8oSkFXfFtMUl1FQVJ8W0xSXUVZRXxUT1VOR0UpfEdST0lOfEhJTkRfW0xSXUZPT1QpfExBTkRfKExFVkVMfFJBSVNFfExPV0VSfFNNT09USHxOT0lTRXxSRVZFUlQpfERBVEFfKE9OTElORXxOQU1FfEJPUk58U0lNXyhQT1N8U1RBVFVTfFJBVElORyl8UEFZSU5GTyl8UEFZTUVOVF9JTkZPXyhPTl9GSUxFfFVTRUQpfFJFTU9URV9EQVRBXyhDSEFOTkVMfFJFUVVFU1R8UkVQTFkpfFBTWVNfKFBBUlRfKEJGXyhaRVJPfE9ORShfTUlOVVNfKERFU1RfQ09MT1J8U09VUkNFXyhBTFBIQXxDT0xPUikpKT98REVTVF9DT0xPUnxTT1VSQ0VfKEFMUEhBfENPTE9SKSl8QkxFTkRfRlVOQ18oREVTVHxTT1VSQ0UpfEZMQUdTfChTVEFSVHxFTkQpXyhDT0xPUnxBTFBIQXxTQ0FMRXxHTE9XKXxNQVhfQUdFfChSSUJCT058V0lORHxJTlRFUlBfKENPTE9SfFNDQUxFKXxCT1VOQ0V8Rk9MTE9XXyhTUkN8VkVMT0NJVFkpfFRBUkdFVF8oUE9TfExJTkVBUil8RU1JU1NJVkUpX01BU0spfFNSQ18oTUFYX0FHRXxQQVRURVJOfEFOR0xFXyhCRUdJTnxFTkQpfEJVUlNUXyhSQVRFfFBBUlRfQ09VTlR8UkFESVVTfFNQRUVEXyhNSU58TUFYKSl8QUNDRUx8VEVYVFVSRXxUQVJHRVRfS0VZfE9NRUdBfFBBVFRFUk5fKERST1B8RVhQTE9ERXxBTkdMRShfQ09ORShfRU1QVFkpPyk/KSkpfFZFSElDTEVfKFJFRkVSRU5DRV9GUkFNRXxUWVBFXyhOT05FfFNMRUR8Q0FSfEJPQVR8QUlSUExBTkV8QkFMTE9PTil8KExJTkVBUnxBTkdVTEFSKV8oRlJJQ1RJT05fVElNRVNDQUxFfE1PVE9SX0RJUkVDVElPTil8TElORUFSX01PVE9SX09GRlNFVHxIT1ZFUl8oSEVJR0hUfEVGRklDSUVOQ1l8VElNRVNDQUxFKXxCVU9ZQU5DWXwoTElORUFSfEFOR1VMQVIpXyhERUZMRUNUSU9OXyhFRkZJQ0lFTkNZfFRJTUVTQ0FMRSl8TU9UT1JfKERFQ0FZXyk/VElNRVNDQUxFKXxWRVJUSUNBTF9BVFRSQUNUSU9OXyhFRkZJQ0lFTkNZfFRJTUVTQ0FMRSl8QkFOS0lOR18oRUZGSUNJRU5DWXxNSVh8VElNRVNDQUxFKXxGTEFHXyhOT19ERUZMRUNUSU9OX1VQfExJTUlUXyhST0xMX09OTFl8TU9UT1JfVVApfEhPVkVSXygoV0FURVJ8VEVSUkFJTnxVUClfT05MWXxHTE9CQUxfSEVJR0hUKXxNT1VTRUxPT0tfKFNURUVSfEJBTkspfENBTUVSQV9ERUNPVVBMRUQpKXxQUklNXyhBTExPV19VTlNJVHxBTFBIQV9NT0RFKF8oQkxFTkR8RU1JU1NJVkV8TUFTS3xOT05FKSk/fE5PUk1BTHxTUEVDVUxBUnxUWVBFKF8oQk9YfENZTElOREVSfFBSSVNNfFNQSEVSRXxUT1JVU3xUVUJFfFJJTkd8U0NVTFBUKSk/fEhPTEVfKERFRkFVTFR8Q0lSQ0xFfFNRVUFSRXxUUklBTkdMRSl8TUFURVJJQUwoXyhTVE9ORXxNRVRBTHxHTEFTU3xXT09EfEZMRVNIfFBMQVNUSUN8UlVCQkVSKSk/fFNISU5ZXyhOT05FfExPV3xNRURJVU18SElHSCl8QlVNUF8oTk9ORXxCUklHSFR8REFSS3xXT09EfEJBUkt8QlJJQ0tTfENIRUNLRVJ8Q09OQ1JFVEV8VElMRXxTVE9ORXxESVNLU3xHUkFWRUx8QkxPQlN8U0lESU5HfExBUkdFVElMRXxTVFVDQ098U1VDVElPTnxXRUFWRSl8VEVYR0VOXyhERUZBVUxUfFBMQU5BUil8U0NSSVBURURfU0lUX09OTFl8U0NVTFBUXyhUWVBFXyhTUEhFUkV8VE9SVVN8UExBTkV8Q1lMSU5ERVJ8TUFTSyl8RkxBR18oTUlSUk9SfElOVkVSVCkpfFBIWVNJQ1MoXyhTSEFQRV8oQ09OVkVYfE5PTkV8UFJJTXxUWVBFKSkpP3woUE9TfFJPVClfTE9DQUx8U0xJQ0V8VEVYVHxGTEVYSUJMRXxQT0lOVF9MSUdIVHxURU1QX09OX1JFWnxQSEFOVE9NfFBPU0lUSU9OfFNJVF9UQVJHRVR8U0laRXxST1RBVElPTnxURVhUVVJFfE5BTUV8T01FR0F8REVTQ3xMSU5LX1RBUkdFVHxDT0xPUnxCVU1QX1NISU5ZfEZVTExCUklHSFR8VEVYR0VOfEdMT1d8TUVESUFfKEFMVF9JTUFHRV9FTkFCTEV8Q09OVFJPTFN8KENVUlJFTlR8SE9NRSlfVVJMfEFVVE9fKExPT1B8UExBWXxTQ0FMRXxaT09NKXxGSVJTVF9DTElDS19JTlRFUkFDVHwoV0lEVEh8SEVJR0hUKV9QSVhFTFN8V0hJVEVMSVNUKF9FTkFCTEUpP3xQRVJNU18oSU5URVJBQ1R8Q09OVFJPTCl8UEFSQU1fTUFYfENPTlRST0xTXyhTVEFOREFSRHxNSU5JKXxQRVJNXyhOT05FfE9XTkVSfEdST1VQfEFOWU9ORSl8TUFYXyhVUkxfTEVOR1RIfFdISVRFTElTVF8oU0laRXxDT1VOVCl8KFdJRFRIfEhFSUdIVClfUElYRUxTKSkpfE1BU0tfKEJBU0V8T1dORVJ8R1JPVVB8RVZFUllPTkV8TkVYVCl8UEVSTV8oVFJBTlNGRVJ8TU9ESUZZfENPUFl8TU9WRXxBTEwpfFBBUkNFTF8oTUVESUFfQ09NTUFORF8oU1RPUHxQQVVTRXxQTEFZfExPT1B8VEVYVFVSRXxVUkx8VElNRXxBR0VOVHxVTkxPQUR8QVVUT19BTElHTnxUWVBFfFNJWkV8REVTQ3xMT09QX1NFVCl8RkxBR18oQUxMT1dfKEZMWXwoR1JPVVBfKT9TQ1JJUFRTfExBTkRNQVJLfFRFUlJBRk9STXxEQU1BR0V8Q1JFQVRFXyhHUk9VUF8pP09CSkVDVFMpfFVTRV8oQUNDRVNTXyhHUk9VUHxMSVNUKXxCQU5fTElTVHxMQU5EX1BBU1NfTElTVCl8TE9DQUxfU09VTkRfT05MWXxSRVNUUklDVF9QVVNIT0JKRUNUfEFMTE9XXyhHUk9VUHxBTEwpX09CSkVDVF9FTlRSWSl8Q09VTlRfKFRPVEFMfE9XTkVSfEdST1VQfE9USEVSfFNFTEVDVEVEfFRFTVApfERFVEFJTFNfKE5BTUV8REVTQ3xPV05FUnxHUk9VUHxBUkVBfElEfFNFRV9BVkFUQVJTKSl8TElTVF9TVEFUXyhNQVh8TUlOfE1FQU58TUVESUFOfFNURF9ERVZ8U1VNKF9TUVVBUkVTKT98TlVNX0NPVU5UfEdFT01FVFJJQ19NRUFOfFJBTkdFKXxQQVlfKEhJREV8REVGQVVMVCl8UkVHSU9OX0ZMQUdfKEFMTE9XX0RBTUFHRXxGSVhFRF9TVU58QkxPQ0tfVEVSUkFGT1JNfFNBTkRCT1h8RElTQUJMRV8oQ09MTElTSU9OU3xQSFlTSUNTKXxCTE9DS19GTFl8QUxMT1dfRElSRUNUX1RFTEVQT1JUfFJFU1RSSUNUX1BVU0hPQkpFQ1QpfEhUVFBfKE1FVEhPRHxNSU1FVFlQRXxCT0RZXyhNQVhMRU5HVEh8VFJVTkNBVEVEKXxDVVNUT01fSEVBREVSfFBSQUdNQV9OT19DQUNIRXxWRVJCT1NFX1RIUk9UVExFfFZFUklGWV9DRVJUKXxTSVRfKElOVkFMSURfKEFHRU5UfExJTktfT0JKRUNUKXxOTyhUX0VYUEVSSUVOQ0V8XyhBQ0NFU1N8RVhQRVJJRU5DRV9QRVJNSVNTSU9OfFNJVF9UQVJHRVQpKSl8U1RSSU5HXyhUUklNKF8oSEVBRHxUQUlMKSk/KXxDTElDS19BQ1RJT05fKE5PTkV8VE9VQ0h8U0lUfEJVWXxQQVl8T1BFTihfTUVESUEpP3xQTEFZfFpPT00pfFRPVUNIX0lOVkFMSURfRkFDRXxQUk9GSUxFXyhOT05FfFNDUklQVF9NRU1PUlkpfFJDXyhEQVRBX0ZMQUdTfERFVEVDVF9QSEFOVE9NfEdFVF8oTElOS19OVU18Tk9STUFMfFJPT1RfS0VZKXxNQVhfSElUU3xSRUpFQ1RfKFRZUEVTfEFHRU5UU3woTk9OKT9QSFlTSUNBTHxMQU5EKSl8UkNFUlJfKENBU1RfVElNRV9FWENFRURFRHxTSU1fUEVSRl9MT1d8VU5LTk9XTil8RVNUQVRFX0FDQ0VTU18oQUxMT1dFRF8oQUdFTlR8R1JPVVApXyhBRER8UkVNT1ZFKXxCQU5ORURfQUdFTlRfKEFERHxSRU1PVkUpKXxERU5TSVRZfEZSSUNUSU9OfFJFU1RJVFVUSU9OfEdSQVZJVFlfTVVMVElQTElFUnxLRk1fKENPTU1BTkR8Q01EXyhQTEFZfFNUT1B8UEFVU0UpfE1PREV8Rk9SV0FSRHxMT09QfFBJTkdfUE9OR3xSRVZFUlNFfERBVEF8Uk9UQVRJT058VFJBTlNMQVRJT04pfEVSUl8oR0VORVJJQ3xQQVJDRUxfUEVSTUlTU0lPTlN8TUFMRk9STUVEX1BBUkFNU3xSVU5USU1FX1BFUk1JU1NJT05TfFRIUk9UVExFRCl8Q0hBUkFDVEVSXyhDTURfKChTTU9PVEhfKT9TVE9QfEpVTVApfERFU0lSRURfKFRVUk5fKT9TUEVFRHxSQURJVVN8U1RBWV9XSVRISU5fUEFSQ0VMfExFTkdUSHxPUklFTlRBVElPTnxBQ0NPVU5UX0ZPUl9TS0lQUEVEX0ZSQU1FU3xBVk9JREFOQ0VfTU9ERXxUWVBFKF8oW0FCQ0RdfE5PTkUpKT98TUFYXyhERUNFTHxUVVJOX1JBRElVU3woQUNDRUx8U1BFRUQpKSl8UFVSU1VJVF8oT0ZGU0VUfEZVWlpfRkFDVE9SfEdPQUxfVE9MRVJBTkNFfElOVEVSQ0VQVCl8UkVRVUlSRV9MSU5FX09GX1NJR0hUfEZPUkNFX0RJUkVDVF9QQVRIfFZFUlRJQ0FMfEhPUklaT05UQUx8QVZPSURfKENIQVJBQ1RFUlN8RFlOQU1JQ19PQlNUQUNMRVN8Tk9ORSl8UFVfKEVWQURFXyhISURERU58U1BPVFRFRCl8RkFJTFVSRV8oRFlOQU1JQ19QQVRIRklORElOR19ESVNBQkxFRHxJTlZBTElEXyhHT0FMfFNUQVJUKXxOT18oTkFWTUVTSHxWQUxJRF9ERVNUSU5BVElPTil8T1RIRVJ8VEFSR0VUX0dPTkV8KFBBUkNFTF8pP1VOUkVBQ0hBQkxFKXwoR09BTHxTTE9XRE9XTl9ESVNUQU5DRSlfUkVBQ0hFRCl8VFJBVkVSU0FMX1RZUEUoXyhGQVNUfE5PTkV8U0xPVykpP3xDT05URU5UX1RZUEVfKEFUT018Rk9STXxIVE1MfEpTT058TExTRHxSU1N8VEVYVHxYSFRNTHxYTUwpfEdDTlBfKFJBRElVU3xTVEFUSUMpfChQQVRST0x8V0FOREVSKV9QQVVTRV9BVF9XQVlQT0lOVFN8T1BUXyhBVkFUQVJ8Q0hBUkFDVEVSfEVYQ0xVU0lPTl9WT0xVTUV8TEVHQUNZX0xJTktTRVR8TUFURVJJQUxfVk9MVU1FfE9USEVSfFNUQVRJQ19PQlNUQUNMRXxXQUxLQUJMRSl8U0lNX1NUQVRfUENUX0NIQVJTX1NURVBQRUQpXFxiIn0se2JlZ2luOiJcXGIoRkFMU0V8VFJVRSlcXGIifSx7YmVnaW46IlxcYihaRVJPX1JPVEFUSU9OKVxcYiJ9LHtiZWdpbjoiXFxiKEVPRnxKU09OXyhBUlJBWXxERUxFVEV8RkFMU0V8SU5WQUxJRHxOVUxMfE5VTUJFUnxPQkpFQ1R8U1RSSU5HfFRSVUUpfE5VTExfS0VZfFRFWFRVUkVfKEJMQU5LfERFRkFVTFR8TUVESUF8UExZV09PRHxUUkFOU1BBUkVOVCl8VVJMX1JFUVVFU1RfKEdSQU5URUR8REVOSUVEKSlcXGIifSx7YmVnaW46IlxcYihaRVJPX1ZFQ1RPUnxUT1VDSF9JTlZBTElEXyhURVhDT09SRHxWRUNUT1IpKVxcYiJ9XX0sbz17Y2xhc3NOYW1lOiJidWlsdF9pbiIsYmVnaW46IlxcYihsbChBZ2VudEluRXhwZXJpZW5jZXwoQ3JlYXRlfERhdGFTaXplfERlbGV0ZXxLZXlDb3VudHxLZXlzfFJlYWR8VXBkYXRlKUtleVZhbHVlfEdldEV4cGVyaWVuY2UoRGV0YWlsc3xFcnJvck1lc3NhZ2UpfFJldHVybk9iamVjdHNCeShJRHxPd25lcil8SnNvbigyTGlzdHxbR1NdZXRWYWx1ZXxWYWx1ZVR5cGUpfFNpbnxDb3N8VGFufEF0YW4yfFNxcnR8UG93fEFic3xGYWJzfEZyYW5kfEZsb29yfENlaWx8Um91bmR8VmVjKE1hZ3xOb3JtfERpc3QpfFJvdChCZXR3ZWVufDIoRXVsZXJ8RndkfExlZnR8VXApKXwoRXVsZXJ8QXhlcykyUm90fFdoaXNwZXJ8KFJlZ2lvbnxPd25lcik/U2F5fFNob3V0fExpc3RlbihDb250cm9sfFJlbW92ZSk/fFNlbnNvcihSZXBlYXR8UmVtb3ZlKT98RGV0ZWN0ZWQoTmFtZXxLZXl8T3duZXJ8VHlwZXxQb3N8VmVsfEdyYWJ8Um90fEdyb3VwfExpbmtOdW1iZXIpfERpZXxHcm91bmR8V2luZHwoW0dTXWV0KShBbmltYXRpb25PdmVycmlkZXxNZW1vcnlMaW1pdHxQcmltTWVkaWFQYXJhbXN8UGFyY2VsTXVzaWNVUkx8T2JqZWN0KERlc2N8TmFtZSl8UGh5c2ljc01hdGVyaWFsfFN0YXR1c3xTY2FsZXxDb2xvcnxBbHBoYXxUZXh0dXJlfFBvc3xSb3R8Rm9yY2V8VG9ycXVlKXxSZXNldEFuaW1hdGlvbk92ZXJyaWRlfChTY2FsZXxPZmZzZXR8Um90YXRlKVRleHR1cmV8KFJvdCk/VGFyZ2V0KFJlbW92ZSk/fChTdG9wKT9Nb3ZlVG9UYXJnZXR8QXBwbHkoUm90YXRpb25hbCk/SW1wdWxzZXxTZXQoS2V5ZnJhbWVkTW90aW9ufENvbnRlbnRUeXBlfFJlZ2lvblBvc3woQW5ndWxhcik/VmVsb2NpdHl8QnVveWFuY3l8SG92ZXJIZWlnaHR8Rm9yY2VBbmRUb3JxdWV8VGltZXJFdmVudHxTY3JpcHRTdGF0ZXxEYW1hZ2V8VGV4dHVyZUFuaW18U291bmQoUXVldWVpbmd8UmFkaXVzKXxWZWhpY2xlKFR5cGV8KEZsb2F0fFZlY3RvcnxSb3RhdGlvbilQYXJhbSl8KFRvdWNofFNpdCk/VGV4dHxDYW1lcmEoRXllfEF0KU9mZnNldHxQcmltaXRpdmVQYXJhbXN8Q2xpY2tBY3Rpb258TGluayhBbHBoYXxDb2xvcnxQcmltaXRpdmVQYXJhbXMoRmFzdCk/fFRleHR1cmUoQW5pbSk/fENhbWVyYXxNZWRpYSl8UmVtb3RlU2NyaXB0QWNjZXNzUGlufFBheVByaWNlfExvY2FsUm90KXxTY2FsZUJ5RmFjdG9yfEdldCgoTWF4fE1pbilTY2FsZUZhY3RvcnxDbG9zZXN0TmF2UG9pbnR8U3RhdGljUGF0aHxTaW1TdGF0c3xFbnZ8UHJpbWl0aXZlUGFyYW1zfExpbmsoUHJpbWl0aXZlUGFyYW1zfE51bWJlcihPZlNpZGVzKT98S2V5fE5hbWV8TWVkaWEpfEhUVFBIZWFkZXJ8RnJlZVVSTHN8T2JqZWN0KERldGFpbHN8UGVybU1hc2t8UHJpbUNvdW50KXxQYXJjZWwoTWF4UHJpbXN8RGV0YWlsc3xQcmltKENvdW50fE93bmVycykpfEF0dGFjaGVkKExpc3QpP3woU1BNYXh8RnJlZXxVc2VkKU1lbW9yeXxSZWdpb24oTmFtZXxUaW1lRGlsYXRpb258RlBTfENvcm5lcnxBZ2VudENvdW50KXxSb290KFBvc2l0aW9ufFJvdGF0aW9uKXxVbml4VGltZXwoUGFyY2VsfFJlZ2lvbilGbGFnc3woV2FsbHxHTVQpY2xvY2t8U2ltdWxhdG9ySG9zdG5hbWV8Qm91bmRpbmdCb3h8R2VvbWV0cmljQ2VudGVyfENyZWF0b3J8TnVtYmVyT2YoUHJpbXN8Tm90ZWNhcmRMaW5lc3xTaWRlcyl8QW5pbWF0aW9uKExpc3QpP3woQ2FtZXJhfExvY2FsKShQb3N8Um90KXxWZWx8QWNjZWx8T21lZ2F8VGltZShzdGFtcHxPZkRheSl8KE9iamVjdHxDZW50ZXJPZik/TWFzc3xNYXNzTUtTfEVuZXJneXxPd25lcnwoT3duZXIpP0tleXxTdW5EaXJlY3Rpb258VGV4dHVyZShPZmZzZXR8U2NhbGV8Um90KXxJbnZlbnRvcnkoTnVtYmVyfE5hbWV8S2V5fFR5cGV8Q3JlYXRvcnxQZXJtTWFzayl8UGVybWlzc2lvbnMoS2V5KT98U3RhcnRQYXJhbWV0ZXJ8TGlzdChMZW5ndGh8RW50cnlUeXBlKXxEYXRlfEFnZW50KFNpemV8SW5mb3xMYW5ndWFnZXxMaXN0KXxMYW5kT3duZXJBdHxOb3RlY2FyZExpbmV8U2NyaXB0KE5hbWV8U3RhdGUpKXwoR2V0fFJlc2V0fEdldEFuZFJlc2V0KVRpbWV8UGxheVNvdW5kKFNsYXZlKT98TG9vcFNvdW5kKE1hc3RlcnxTbGF2ZSk/fChUcmlnZ2VyfFN0b3B8UHJlbG9hZClTb3VuZHwoKEdldHxEZWxldGUpU3VifEluc2VydClTdHJpbmd8VG8oVXBwZXJ8TG93ZXIpfEdpdmUoSW52ZW50b3J5TGlzdHxNb25leSl8UmV6T2JqZWN0fChTdG9wKT9Mb29rQXR8U2xlZXB8Q29sbGlzaW9uRmlsdGVyfChUYWtlfFJlbGVhc2UpQ29udHJvbHN8RGV0YWNoRnJvbUF2YXRhcnxBdHRhY2hUb0F2YXRhcihUZW1wKT98SW5zdGFudE1lc3NhZ2V8KEdldE5leHQpP0VtYWlsfFN0b3BIb3ZlcnxNaW5FdmVudERlbGF5fFJvdExvb2tBdHxTdHJpbmcoTGVuZ3RofFRyaW0pfChTdGFydHxTdG9wKUFuaW1hdGlvbnxUYXJnZXRPbWVnYXxSZXF1ZXN0KEV4cGVyaWVuY2UpP1Blcm1pc3Npb25zfChDcmVhdGV8QnJlYWspTGlua3xCcmVha0FsbExpbmtzfChHaXZlfFJlbW92ZSlJbnZlbnRvcnl8V2F0ZXJ8UGFzc1RvdWNoZXN8UmVxdWVzdChBZ2VudHxJbnZlbnRvcnkpRGF0YXxUZWxlcG9ydEFnZW50KEhvbWV8R2xvYmFsQ29vcmRzKT98TW9kaWZ5TGFuZHxDb2xsaXNpb25Tb3VuZHxSZXNldFNjcmlwdHxNZXNzYWdlTGlua2VkfFB1c2hPYmplY3R8UGFzc0NvbGxpc2lvbnN8QXhpc0FuZ2xlMlJvdHxSb3QyKEF4aXN8QW5nbGUpfEEoY29zfHNpbil8QW5nbGVCZXR3ZWVufEFsbG93SW52ZW50b3J5RHJvcHxTdWJTdHJpbmdJbmRleHxMaXN0MihDU1Z8SW50ZWdlcnxKc29ufEZsb2F0fFN0cmluZ3xLZXl8VmVjdG9yfFJvdHxMaXN0KFN0cmlkZWQpPyl8RGVsZXRlU3ViTGlzdHxMaXN0KFN0YXRpc3RpY3N8U29ydHxSYW5kb21pemV8KEluc2VydHxGaW5kfFJlcGxhY2UpTGlzdCl8RWRnZU9mV29ybGR8QWRqdXN0U291bmRWb2x1bWV8S2V5Mk5hbWV8VHJpZ2dlclNvdW5kTGltaXRlZHxFamVjdEZyb21MYW5kfChDU1Z8UGFyc2VTdHJpbmcpMkxpc3R8T3Zlck15TGFuZHxTYW1lR3JvdXB8VW5TaXR8R3JvdW5kKFNsb3BlfE5vcm1hbHxDb250b3VyKXxHcm91bmRSZXBlbHwoU2V0fFJlbW92ZSlWZWhpY2xlRmxhZ3N8U2l0T25MaW5rfChBdmF0YXJPbik/KExpbmspP1NpdFRhcmdldHxTY3JpcHQoRGFuZ2VyfFByb2ZpbGVyKXxEaWFsb2d8Vm9sdW1lRGV0ZWN0fFJlc2V0T3RoZXJTY3JpcHR8UmVtb3RlTG9hZFNjcmlwdFBpbnwoT3BlbnxDbG9zZSlSZW1vdGVEYXRhQ2hhbm5lbHxTZW5kUmVtb3RlRGF0YXxSZW1vdGVEYXRhUmVwbHl8KEludGVnZXJ8U3RyaW5nKVRvQmFzZTY0fFhvckJhc2U2NHxMb2coMTApP3xCYXNlNjRUbyhTdHJpbmd8SW50ZWdlcil8UGFyc2VTdHJpbmdLZWVwTnVsbHN8UmV6QXRSb290fFJlcXVlc3RTaW11bGF0b3JEYXRhfEZvcmNlTW91c2Vsb29rfChMb2FkfFJlbGVhc2V8KEV8VW5lKXNjYXBlKVVSTHxQYXJjZWxNZWRpYShDb21tYW5kTGlzdHxRdWVyeSl8TW9kUG93fE1hcERlc3RpbmF0aW9ufChSZW1vdmVGcm9tfEFkZFRvfFJlc2V0KUxhbmQoUGFzc3xCYW4pTGlzdHwoU2V0fENsZWFyKUNhbWVyYVBhcmFtc3xIVFRQKFJlcXVlc3R8UmVzcG9uc2UpfFRleHRCb3h8RGV0ZWN0ZWRUb3VjaChVVnxGYWNlfFBvc3woTnxCaW4pb3JtYWx8U1QpfChNRDV8U0hBMXxEdW1wTGlzdDIpU3RyaW5nfFJlcXVlc3QoU2VjdXJlKT9VUkx8Q2xlYXIoUHJpbXxMaW5rKU1lZGlhfChMaW5rKT9QYXJ0aWNsZVN5c3RlbXwoR2V0fFJlcXVlc3QpKFVzZXJuYW1lfERpc3BsYXlOYW1lKXxSZWdpb25TYXlUb3xDYXN0UmF5fEdlbmVyYXRlS2V5fFRyYW5zZmVyTGluZGVuRG9sbGFyc3xNYW5hZ2VFc3RhdGVBY2Nlc3N8KENyZWF0ZXxEZWxldGUpQ2hhcmFjdGVyfEV4ZWNDaGFyYWN0ZXJDbWR8RXZhZGV8RmxlZUZyb218TmF2aWdhdGVUb3xQYXRyb2xQb2ludHN8UHVyc3VlfFVwZGF0ZUNoYXJhY3RlcnxXYW5kZXJXaXRoaW4pKVxcYiJ9O3JldHVybntuYW1lOiJMU0wgKExpbmRlbiBTY3JpcHRpbmcgTGFuZ3VhZ2UpIixpbGxlZ2FsOiI6Iixjb250YWluczpbbix7Y2xhc3NOYW1lOiJjb21tZW50Iix2YXJpYW50czpbZS5DT01NRU5UKCIvLyIsIiQiKSxlLkNPTU1FTlQoIi9cXCoiLCJcXCovIildLHJlbGV2YW5jZTowfSxhLHtjbGFzc05hbWU6InNlY3Rpb24iLHZhcmlhbnRzOlt7YmVnaW46IlxcYihzdGF0ZXxkZWZhdWx0KVxcYiJ9LHtiZWdpbjoiXFxiKHN0YXRlXyhlbnRyeXxleGl0KXx0b3VjaChfKHN0YXJ0fGVuZCkpP3wobGFuZF8pP2NvbGxpc2lvbihfKHN0YXJ0fGVuZCkpP3x0aW1lcnxsaXN0ZW58KG5vXyk/c2Vuc29yfGNvbnRyb2x8KG5vdF8pP2F0Xyhyb3RfKT90YXJnZXR8bW9uZXl8ZW1haWx8ZXhwZXJpZW5jZV9wZXJtaXNzaW9ucyhfZGVuaWVkKT98cnVuX3RpbWVfcGVybWlzc2lvbnN8Y2hhbmdlZHxhdHRhY2h8ZGF0YXNlcnZlcnxtb3ZpbmdfKHN0YXJ0fGVuZCl8bGlua19tZXNzYWdlfChvbnxvYmplY3QpX3JlenxyZW1vdGVfZGF0YXxodHRwX3JlKHNwb25zZXxxdWVzdCl8cGF0aF91cGRhdGV8dHJhbnNhY3Rpb25fcmVzdWx0KVxcYiJ9XX0sbyxpLHtjbGFzc05hbWU6InR5cGUiLGJlZ2luOiJcXGIoaW50ZWdlcnxmbG9hdHxzdHJpbmd8a2V5fHZlY3RvcnxxdWF0ZXJuaW9ufHJvdGF0aW9ufGxpc3QpXFxiIn1dfX1zLmV4cG9ydHM9cn0sNjgwNTQ6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihlKXtjb25zdCB0PSJcXFs9KlxcWyIsbj0iXFxdPSpcXF0iLGE9e2JlZ2luOnQsZW5kOm4sY29udGFpbnM6WyJzZWxmIl19LGk9W2UuQ09NTUVOVCgiLS0oPyEiK3QrIikiLCIkIiksZS5DT01NRU5UKCItLSIrdCxuLHtjb250YWluczpbYV0scmVsZXZhbmNlOjEwfSldO3JldHVybntuYW1lOiJMdWEiLGtleXdvcmRzOnskcGF0dGVybjplLlVOREVSU0NPUkVfSURFTlRfUkUsbGl0ZXJhbDoidHJ1ZSBmYWxzZSBuaWwiLGtleXdvcmQ6ImFuZCBicmVhayBkbyBlbHNlIGVsc2VpZiBlbmQgZm9yIGdvdG8gaWYgaW4gbG9jYWwgbm90IG9yIHJlcGVhdCByZXR1cm4gdGhlbiB1bnRpbCB3aGlsZSIsYnVpbHRfaW46Il9HIF9FTlYgX1ZFUlNJT04gX19pbmRleCBfX25ld2luZGV4IF9fbW9kZSBfX2NhbGwgX19tZXRhdGFibGUgX190b3N0cmluZyBfX2xlbiBfX2djIF9fYWRkIF9fc3ViIF9fbXVsIF9fZGl2IF9fbW9kIF9fcG93IF9fY29uY2F0IF9fdW5tIF9fZXEgX19sdCBfX2xlIGFzc2VydCBjb2xsZWN0Z2FyYmFnZSBkb2ZpbGUgZXJyb3IgZ2V0ZmVudiBnZXRtZXRhdGFibGUgaXBhaXJzIGxvYWQgbG9hZGZpbGUgbG9hZHN0cmluZyBtb2R1bGUgbmV4dCBwYWlycyBwY2FsbCBwcmludCByYXdlcXVhbCByYXdnZXQgcmF3c2V0IHJlcXVpcmUgc2VsZWN0IHNldGZlbnYgc2V0bWV0YXRhYmxlIHRvbnVtYmVyIHRvc3RyaW5nIHR5cGUgdW5wYWNrIHhwY2FsbCBhcmcgc2VsZiBjb3JvdXRpbmUgcmVzdW1lIHlpZWxkIHN0YXR1cyB3cmFwIGNyZWF0ZSBydW5uaW5nIGRlYnVnIGdldHVwdmFsdWUgZGVidWcgc2V0aG9vayBnZXRtZXRhdGFibGUgZ2V0aG9vayBzZXRtZXRhdGFibGUgc2V0bG9jYWwgdHJhY2ViYWNrIHNldGZlbnYgZ2V0aW5mbyBzZXR1cHZhbHVlIGdldGxvY2FsIGdldHJlZ2lzdHJ5IGdldGZlbnYgaW8gbGluZXMgd3JpdGUgY2xvc2UgZmx1c2ggb3BlbiBvdXRwdXQgdHlwZSByZWFkIHN0ZGVyciBzdGRpbiBpbnB1dCBzdGRvdXQgcG9wZW4gdG1wZmlsZSBtYXRoIGxvZyBtYXggYWNvcyBodWdlIGxkZXhwIHBpIGNvcyB0YW5oIHBvdyBkZWcgdGFuIGNvc2ggc2luaCByYW5kb20gcmFuZG9tc2VlZCBmcmV4cCBjZWlsIGZsb29yIHJhZCBhYnMgc3FydCBtb2RmIGFzaW4gbWluIG1vZCBmbW9kIGxvZzEwIGF0YW4yIGV4cCBzaW4gYXRhbiBvcyBleGl0IHNldGxvY2FsZSBkYXRlIGdldGVudiBkaWZmdGltZSByZW1vdmUgdGltZSBjbG9jayB0bXBuYW1lIHJlbmFtZSBleGVjdXRlIHBhY2thZ2UgcHJlbG9hZCBsb2FkbGliIGxvYWRlZCBsb2FkZXJzIGNwYXRoIGNvbmZpZyBwYXRoIHNlZWFsbCBzdHJpbmcgc3ViIHVwcGVyIGxlbiBnZmluZCByZXAgZmluZCBtYXRjaCBjaGFyIGR1bXAgZ21hdGNoIHJldmVyc2UgYnl0ZSBmb3JtYXQgZ3N1YiBsb3dlciB0YWJsZSBzZXRuIGluc2VydCBnZXRuIGZvcmVhY2hpIG1heG4gZm9yZWFjaCBjb25jYXQgc29ydCByZW1vdmUifSxjb250YWluczppLmNvbmNhdChbe2NsYXNzTmFtZToiZnVuY3Rpb24iLGJlZ2luS2V5d29yZHM6ImZ1bmN0aW9uIixlbmQ6IlxcKSIsY29udGFpbnM6W2UuaW5oZXJpdChlLlRJVExFX01PREUse2JlZ2luOiIoW19hLXpBLVpdXFx3KlxcLikqKFtfYS16QS1aXVxcdyo6KT9bX2EtekEtWl1cXHcqIn0pLHtjbGFzc05hbWU6InBhcmFtcyIsYmVnaW46IlxcKCIsZW5kc1dpdGhQYXJlbnQ6ITAsY29udGFpbnM6aX1dLmNvbmNhdChpKX0sZS5DX05VTUJFUl9NT0RFLGUuQVBPU19TVFJJTkdfTU9ERSxlLlFVT1RFX1NUUklOR19NT0RFLHtjbGFzc05hbWU6InN0cmluZyIsYmVnaW46dCxlbmQ6bixjb250YWluczpbYV0scmVsZXZhbmNlOjV9XSl9fXMuZXhwb3J0cz1yfSwzNzgwNTpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGUpe2NvbnN0IHQ9e2NsYXNzTmFtZToidmFyaWFibGUiLHZhcmlhbnRzOlt7YmVnaW46IlxcJFxcKCIrZS5VTkRFUlNDT1JFX0lERU5UX1JFKyJcXCkiLGNvbnRhaW5zOltlLkJBQ0tTTEFTSF9FU0NBUEVdfSx7YmVnaW46L1wkW0AlPD9cXlwrXCpdL31dfSxuPXtjbGFzc05hbWU6InN0cmluZyIsYmVnaW46LyIvLGVuZDovIi8sY29udGFpbnM6W2UuQkFDS1NMQVNIX0VTQ0FQRSx0XX0sYT17Y2xhc3NOYW1lOiJ2YXJpYWJsZSIsYmVnaW46L1wkXChbXHctXStccy8sZW5kOi9cKS8sa2V5d29yZHM6e2J1aWx0X2luOiJzdWJzdCBwYXRzdWJzdCBzdHJpcCBmaW5kc3RyaW5nIGZpbHRlciBmaWx0ZXItb3V0IHNvcnQgd29yZCB3b3JkbGlzdCBmaXJzdHdvcmQgbGFzdHdvcmQgZGlyIG5vdGRpciBzdWZmaXggYmFzZW5hbWUgYWRkc3VmZml4IGFkZHByZWZpeCBqb2luIHdpbGRjYXJkIHJlYWxwYXRoIGFic3BhdGggZXJyb3Igd2FybmluZyBzaGVsbCBvcmlnaW4gZmxhdm9yIGZvcmVhY2ggaWYgb3IgYW5kIGNhbGwgZXZhbCBmaWxlIHZhbHVlIn0sY29udGFpbnM6W3RdfSxpPXtiZWdpbjoiXiIrZS5VTkRFUlNDT1JFX0lERU5UX1JFKyJcXHMqKD89WzorP10/PSkifSxvPXtjbGFzc05hbWU6Im1ldGEiLGJlZ2luOi9eXC5QSE9OWTovLGVuZDovJC8sa2V5d29yZHM6eyRwYXR0ZXJuOi9bXC5cd10rLywibWV0YS1rZXl3b3JkIjoiLlBIT05ZIn19LGw9e2NsYXNzTmFtZToic2VjdGlvbiIsYmVnaW46L15bXlxzXSs6LyxlbmQ6LyQvLGNvbnRhaW5zOlt0XX07cmV0dXJue25hbWU6Ik1ha2VmaWxlIixhbGlhc2VzOlsibWsiLCJtYWsiLCJtYWtlIl0sa2V5d29yZHM6eyRwYXR0ZXJuOi9bXHctXSsvLGtleXdvcmQ6ImRlZmluZSBlbmRlZiB1bmRlZmluZSBpZmRlZiBpZm5kZWYgaWZlcSBpZm5lcSBlbHNlIGVuZGlmIGluY2x1ZGUgLWluY2x1ZGUgc2luY2x1ZGUgb3ZlcnJpZGUgZXhwb3J0IHVuZXhwb3J0IHByaXZhdGUgdnBhdGgifSxjb250YWluczpbZS5IQVNIX0NPTU1FTlRfTU9ERSx0LG4sYSxpLG8sbF19fXMuZXhwb3J0cz1yfSw4NTUwNTpmdW5jdGlvbihzKXtmdW5jdGlvbiByKG4pe3JldHVybiBuP3R5cGVvZiBuPT0ic3RyaW5nIj9uOm4uc291cmNlOm51bGx9ZnVuY3Rpb24gZSguLi5uKXtyZXR1cm4gbi5tYXAoaT0+cihpKSkuam9pbigiIil9ZnVuY3Rpb24gdChuKXtjb25zdCBhPXtiZWdpbjovPFwvP1tBLVphLXpfXS8sZW5kOiI+IixzdWJMYW5ndWFnZToieG1sIixyZWxldmFuY2U6MH0saT17YmVnaW46Il5bLVxcKl17Myx9IixlbmQ6IiQifSxvPXtjbGFzc05hbWU6ImNvZGUiLHZhcmlhbnRzOlt7YmVnaW46IihgezMsfSlbXmBdKC58XFxuKSo/XFwxYCpbIF0qIn0se2JlZ2luOiIofnszLH0pW15+XSgufFxcbikqP1xcMX4qWyBdKiJ9LHtiZWdpbjoiYGBgIixlbmQ6ImBgYCtbIF0qJCJ9LHtiZWdpbjoifn5+IixlbmQ6In5+fitbIF0qJCJ9LHtiZWdpbjoiYC4rP2AifSx7YmVnaW46Iig/PV4oIHs0fXxcXHQpKSIsY29udGFpbnM6W3tiZWdpbjoiXiggezR9fFxcdCkiLGVuZDoiKFxcbikkIn1dLHJlbGV2YW5jZTowfV19LGw9e2NsYXNzTmFtZToiYnVsbGV0IixiZWdpbjoiXlsgCV0qKFsqKy1dfChcXGQrXFwuKSkoPz1cXHMrKSIsZW5kOiJcXHMrIixleGNsdWRlRW5kOiEwfSxjPXtiZWdpbjovXlxbW15cbl0rXF06LyxyZXR1cm5CZWdpbjohMCxjb250YWluczpbe2NsYXNzTmFtZToic3ltYm9sIixiZWdpbjovXFsvLGVuZDovXF0vLGV4Y2x1ZGVCZWdpbjohMCxleGNsdWRlRW5kOiEwfSx7Y2xhc3NOYW1lOiJsaW5rIixiZWdpbjovOlxzKi8sZW5kOi8kLyxleGNsdWRlQmVnaW46ITB9XX0sZD17dmFyaWFudHM6W3tiZWdpbjovXFsuKz9cXVxbLio/XF0vLHJlbGV2YW5jZTowfSx7YmVnaW46L1xbLis/XF1cKCgoZGF0YXxqYXZhc2NyaXB0fG1haWx0byk6fCg/Omh0dHB8ZnRwKXM/OlwvXC8pLio/XCkvLHJlbGV2YW5jZToyfSx7YmVnaW46ZSgvXFsuKz9cXVwoLywvW0EtWmEtel1bQS1aYS16MC05Ky4tXSovLC86XC9cLy4qP1wpLykscmVsZXZhbmNlOjJ9LHtiZWdpbjovXFsuKz9cXVwoWy4vPyYjXS4qP1wpLyxyZWxldmFuY2U6MX0se2JlZ2luOi9cWy4rP1xdXCguKj9cKS8scmVsZXZhbmNlOjB9XSxyZXR1cm5CZWdpbjohMCxjb250YWluczpbe2NsYXNzTmFtZToic3RyaW5nIixyZWxldmFuY2U6MCxiZWdpbjoiXFxbIixlbmQ6IlxcXSIsZXhjbHVkZUJlZ2luOiEwLHJldHVybkVuZDohMH0se2NsYXNzTmFtZToibGluayIscmVsZXZhbmNlOjAsYmVnaW46IlxcXVxcKCIsZW5kOiJcXCkiLGV4Y2x1ZGVCZWdpbjohMCxleGNsdWRlRW5kOiEwfSx7Y2xhc3NOYW1lOiJzeW1ib2wiLHJlbGV2YW5jZTowLGJlZ2luOiJcXF1cXFsiLGVuZDoiXFxdIixleGNsdWRlQmVnaW46ITAsZXhjbHVkZUVuZDohMH1dfSxnPXtjbGFzc05hbWU6InN0cm9uZyIsY29udGFpbnM6W10sdmFyaWFudHM6W3tiZWdpbjovX3syfS8sZW5kOi9fezJ9L30se2JlZ2luOi9cKnsyfS8sZW5kOi9cKnsyfS99XX0sRT17Y2xhc3NOYW1lOiJlbXBoYXNpcyIsY29udGFpbnM6W10sdmFyaWFudHM6W3tiZWdpbjovXCooPyFcKikvLGVuZDovXCovfSx7YmVnaW46L18oPyFfKS8sZW5kOi9fLyxyZWxldmFuY2U6MH1dfTtnLmNvbnRhaW5zLnB1c2goRSksRS5jb250YWlucy5wdXNoKGcpO2xldCB1PVthLGRdO3JldHVybiBnLmNvbnRhaW5zPWcuY29udGFpbnMuY29uY2F0KHUpLEUuY29udGFpbnM9RS5jb250YWlucy5jb25jYXQodSksdT11LmNvbmNhdChnLEUpLHtuYW1lOiJNYXJrZG93biIsYWxpYXNlczpbIm1kIiwibWtkb3duIiwibWtkIl0sY29udGFpbnM6W3tjbGFzc05hbWU6InNlY3Rpb24iLHZhcmlhbnRzOlt7YmVnaW46Il4jezEsNn0iLGVuZDoiJCIsY29udGFpbnM6dX0se2JlZ2luOiIoPz1eLis/XFxuWz0tXXsyLH0kKSIsY29udGFpbnM6W3tiZWdpbjoiXls9LV0qJCJ9LHtiZWdpbjoiXiIsZW5kOiJcXG4iLGNvbnRhaW5zOnV9XX1dfSxhLGwsZyxFLHtjbGFzc05hbWU6InF1b3RlIixiZWdpbjoiXj5cXHMrIixjb250YWluczp1LGVuZDoiJCJ9LG8saSxkLGNdfX1zLmV4cG9ydHM9dH0sOTI0MTI6ZnVuY3Rpb24ocyl7Y29uc3Qgcj1bIkFBU1RyaWFuZ2xlIiwiQWJlbGlhbkdyb3VwIiwiQWJvcnQiLCJBYm9ydEtlcm5lbHMiLCJBYm9ydFByb3RlY3QiLCJBYm9ydFNjaGVkdWxlZFRhc2siLCJBYm92ZSIsIkFicyIsIkFic0FyZyIsIkFic0FyZ1Bsb3QiLCJBYnNvbHV0ZSIsIkFic29sdXRlQ29ycmVsYXRpb24iLCJBYnNvbHV0ZUNvcnJlbGF0aW9uRnVuY3Rpb24iLCJBYnNvbHV0ZUN1cnJlbnRWYWx1ZSIsIkFic29sdXRlRGFzaGluZyIsIkFic29sdXRlRmlsZU5hbWUiLCJBYnNvbHV0ZU9wdGlvbnMiLCJBYnNvbHV0ZVBvaW50U2l6ZSIsIkFic29sdXRlVGhpY2tuZXNzIiwiQWJzb2x1dGVUaW1lIiwiQWJzb2x1dGVUaW1pbmciLCJBY2NlcHRhbmNlVGhyZXNob2xkIiwiQWNjb3VudGluZ0Zvcm0iLCJBY2N1bXVsYXRlIiwiQWNjdXJhY3kiLCJBY2N1cmFjeUdvYWwiLCJBY3Rpb25EZWxheSIsIkFjdGlvbk1lbnUiLCJBY3Rpb25NZW51Qm94IiwiQWN0aW9uTWVudUJveE9wdGlvbnMiLCJBY3RpdmF0ZSIsIkFjdGl2ZSIsIkFjdGl2ZUNsYXNzaWZpY2F0aW9uIiwiQWN0aXZlQ2xhc3NpZmljYXRpb25PYmplY3QiLCJBY3RpdmVJdGVtIiwiQWN0aXZlUHJlZGljdGlvbiIsIkFjdGl2ZVByZWRpY3Rpb25PYmplY3QiLCJBY3RpdmVTdHlsZSIsIkFjeWNsaWNHcmFwaFEiLCJBZGRPbkhlbHBQYXRoIiwiQWRkU2lkZXMiLCJBZGRUbyIsIkFkZFRvU2VhcmNoSW5kZXgiLCJBZGRVc2VycyIsIkFkamFjZW5jeUdyYXBoIiwiQWRqYWNlbmN5TGlzdCIsIkFkamFjZW5jeU1hdHJpeCIsIkFkamFjZW50TWVzaENlbGxzIiwiQWRqdXN0bWVudEJveCIsIkFkanVzdG1lbnRCb3hPcHRpb25zIiwiQWRqdXN0VGltZVNlcmllc0ZvcmVjYXN0IiwiQWRtaW5pc3RyYXRpdmVEaXZpc2lvbkRhdGEiLCJBZmZpbmVIYWxmU3BhY2UiLCJBZmZpbmVTcGFjZSIsIkFmZmluZVN0YXRlU3BhY2VNb2RlbCIsIkFmZmluZVRyYW5zZm9ybSIsIkFmdGVyIiwiQWdncmVnYXRlZEVudGl0eUNsYXNzIiwiQWdncmVnYXRpb25MYXllciIsIkFpcmNyYWZ0RGF0YSIsIkFpcnBvcnREYXRhIiwiQWlyUHJlc3N1cmVEYXRhIiwiQWlyVGVtcGVyYXR1cmVEYXRhIiwiQWlyeUFpIiwiQWlyeUFpUHJpbWUiLCJBaXJ5QWlaZXJvIiwiQWlyeUJpIiwiQWlyeUJpUHJpbWUiLCJBaXJ5QmlaZXJvIiwiQWxnZWJyYWljSW50ZWdlclEiLCJBbGdlYnJhaWNOdW1iZXIiLCJBbGdlYnJhaWNOdW1iZXJEZW5vbWluYXRvciIsIkFsZ2VicmFpY051bWJlck5vcm0iLCJBbGdlYnJhaWNOdW1iZXJQb2x5bm9taWFsIiwiQWxnZWJyYWljTnVtYmVyVHJhY2UiLCJBbGdlYnJhaWNSdWxlcyIsIkFsZ2VicmFpY1J1bGVzRGF0YSIsIkFsZ2VicmFpY3MiLCJBbGdlYnJhaWNVbml0USIsIkFsaWdubWVudCIsIkFsaWdubWVudE1hcmtlciIsIkFsaWdubWVudFBvaW50IiwiQWxsIiwiQWxsb3dBZHVsdENvbnRlbnQiLCJBbGxvd2VkQ2xvdWRFeHRyYVBhcmFtZXRlcnMiLCJBbGxvd2VkQ2xvdWRQYXJhbWV0ZXJFeHRlbnNpb25zIiwiQWxsb3dlZERpbWVuc2lvbnMiLCJBbGxvd2VkRnJlcXVlbmN5UmFuZ2UiLCJBbGxvd2VkSGVhZHMiLCJBbGxvd0dyb3VwQ2xvc2UiLCJBbGxvd0luY29tcGxldGUiLCJBbGxvd0lubGluZUNlbGxzIiwiQWxsb3dLZXJuZWxJbml0aWFsaXphdGlvbiIsIkFsbG93TG9vc2VHcmFtbWFyIiwiQWxsb3dSZXZlcnNlR3JvdXBDbG9zZSIsIkFsbG93U2NyaXB0TGV2ZWxDaGFuZ2UiLCJBbGxvd1ZlcnNpb25VcGRhdGUiLCJBbGxUcnVlIiwiQWxwaGFiZXQiLCJBbHBoYWJldGljT3JkZXIiLCJBbHBoYWJldGljU29ydCIsIkFscGhhQ2hhbm5lbCIsIkFsdGVybmF0ZUltYWdlIiwiQWx0ZXJuYXRpbmdGYWN0b3JpYWwiLCJBbHRlcm5hdGluZ0dyb3VwIiwiQWx0ZXJuYXRpdmVIeXBvdGhlc2lzIiwiQWx0ZXJuYXRpdmVzIiwiQWx0aXR1ZGVNZXRob2QiLCJBbWJpZW50TGlnaHQiLCJBbWJpZ3VpdHlGdW5jdGlvbiIsIkFtYmlndWl0eUxpc3QiLCJBbmFseXRpYyIsIkFuYXRvbXlEYXRhIiwiQW5hdG9teUZvcm0iLCJBbmF0b215UGxvdDNEIiwiQW5hdG9teVNraW5TdHlsZSIsIkFuYXRvbXlTdHlsaW5nIiwiQW5jaG9yZWRTZWFyY2giLCJBbmQiLCJBbmRlcnNvbkRhcmxpbmdUZXN0IiwiQW5nZXJKIiwiQW5nbGVCaXNlY3RvciIsIkFuZ2xlQnJhY2tldCIsIkFuZ2xlUGF0aCIsIkFuZ2xlUGF0aDNEIiwiQW5nbGVWZWN0b3IiLCJBbmd1bGFyR2F1Z2UiLCJBbmltYXRlIiwiQW5pbWF0aW9uQ3ljbGVPZmZzZXQiLCJBbmltYXRpb25DeWNsZVJlcGV0aXRpb25zIiwiQW5pbWF0aW9uRGlyZWN0aW9uIiwiQW5pbWF0aW9uRGlzcGxheVRpbWUiLCJBbmltYXRpb25SYXRlIiwiQW5pbWF0aW9uUmVwZXRpdGlvbnMiLCJBbmltYXRpb25SdW5uaW5nIiwiQW5pbWF0aW9uUnVuVGltZSIsIkFuaW1hdGlvblRpbWVJbmRleCIsIkFuaW1hdG9yIiwiQW5pbWF0b3JCb3giLCJBbmltYXRvckJveE9wdGlvbnMiLCJBbmltYXRvckVsZW1lbnRzIiwiQW5ub3RhdGUiLCJBbm5vdGF0aW9uIiwiQW5ub3RhdGlvbkRlbGV0ZSIsIkFubm90YXRpb25LZXlzIiwiQW5ub3RhdGlvblJ1bGVzIiwiQW5ub3RhdGlvblZhbHVlIiwiQW5udWl0eSIsIkFubnVpdHlEdWUiLCJBbm51bHVzIiwiQW5vbWFseURldGVjdGlvbiIsIkFub21hbHlEZXRlY3RvciIsIkFub21hbHlEZXRlY3RvckZ1bmN0aW9uIiwiQW5vbnltb3VzIiwiQW50aWFsaWFzaW5nIiwiQW50aWhlcm1pdGlhbk1hdHJpeFEiLCJBbnRpc3ltbWV0cmljIiwiQW50aXN5bW1ldHJpY01hdHJpeFEiLCJBbnRvbnltcyIsIkFueU9yZGVyIiwiQW55U3Vic2V0IiwiQW55VHJ1ZSIsIkFwYXJ0IiwiQXBhcnRTcXVhcmVGcmVlIiwiQVBJRnVuY3Rpb24iLCJBcHBlYXJhbmNlIiwiQXBwZWFyYW5jZUVsZW1lbnRzIiwiQXBwZWFyYW5jZVJ1bGVzIiwiQXBwZWxsRjEiLCJBcHBlbmQiLCJBcHBlbmRDaGVjayIsIkFwcGVuZExheWVyIiwiQXBwZW5kVG8iLCJBcHBseSIsIkFwcGx5U2lkZXMiLCJBcmNDb3MiLCJBcmNDb3NoIiwiQXJjQ290IiwiQXJjQ290aCIsIkFyY0NzYyIsIkFyY0NzY2giLCJBcmNDdXJ2YXR1cmUiLCJBUkNIUHJvY2VzcyIsIkFyY0xlbmd0aCIsIkFyY1NlYyIsIkFyY1NlY2giLCJBcmNTaW4iLCJBcmNTaW5EaXN0cmlidXRpb24iLCJBcmNTaW5oIiwiQXJjVGFuIiwiQXJjVGFuaCIsIkFyZWEiLCJBcmciLCJBcmdNYXgiLCJBcmdNaW4iLCJBcmd1bWVudENvdW50USIsIkFSSU1BUHJvY2VzcyIsIkFyaXRobWV0aWNHZW9tZXRyaWNNZWFuIiwiQVJNQVByb2Nlc3MiLCJBcm91bmQiLCJBcm91bmRSZXBsYWNlIiwiQVJQcm9jZXNzIiwiQXJyYXkiLCJBcnJheUNvbXBvbmVudHMiLCJBcnJheURlcHRoIiwiQXJyYXlGaWx0ZXIiLCJBcnJheUZsYXR0ZW4iLCJBcnJheU1lc2giLCJBcnJheVBhZCIsIkFycmF5UGxvdCIsIkFycmF5USIsIkFycmF5UmVzYW1wbGUiLCJBcnJheVJlc2hhcGUiLCJBcnJheVJ1bGVzIiwiQXJyYXlzIiwiQXJyb3ciLCJBcnJvdzNEQm94IiwiQXJyb3dCb3giLCJBcnJvd2hlYWRzIiwiQVNBVHJpYW5nbGUiLCJBc2siLCJBc2tBcHBlbmQiLCJBc2tDb25maXJtIiwiQXNrRGlzcGxheSIsIkFza2VkUSIsIkFza2VkVmFsdWUiLCJBc2tGdW5jdGlvbiIsIkFza1N0YXRlIiwiQXNrVGVtcGxhdGVEaXNwbGF5IiwiQXNwZWN0UmF0aW8iLCJBc3BlY3RSYXRpb0ZpeGVkIiwiQXNzZXJ0IiwiQXNzb2NpYXRlVG8iLCJBc3NvY2lhdGlvbiIsIkFzc29jaWF0aW9uRm9ybWF0IiwiQXNzb2NpYXRpb25NYXAiLCJBc3NvY2lhdGlvblEiLCJBc3NvY2lhdGlvblRocmVhZCIsIkFzc3VtZURldGVybWluaXN0aWMiLCJBc3N1bWluZyIsIkFzc3VtcHRpb25zIiwiQXN0cm9ub21pY2FsRGF0YSIsIkFzeW1wdG90aWMiLCJBc3ltcHRvdGljRFNvbHZlVmFsdWUiLCJBc3ltcHRvdGljRXF1YWwiLCJBc3ltcHRvdGljRXF1aXZhbGVudCIsIkFzeW1wdG90aWNHcmVhdGVyIiwiQXN5bXB0b3RpY0dyZWF0ZXJFcXVhbCIsIkFzeW1wdG90aWNJbnRlZ3JhdGUiLCJBc3ltcHRvdGljTGVzcyIsIkFzeW1wdG90aWNMZXNzRXF1YWwiLCJBc3ltcHRvdGljT3V0cHV0VHJhY2tlciIsIkFzeW1wdG90aWNQcm9kdWN0IiwiQXN5bXB0b3RpY1JTb2x2ZVZhbHVlIiwiQXN5bXB0b3RpY1NvbHZlIiwiQXN5bXB0b3RpY1N1bSIsIkFzeW5jaHJvbm91cyIsIkFzeW5jaHJvbm91c1Rhc2tPYmplY3QiLCJBc3luY2hyb25vdXNUYXNrcyIsIkF0b20iLCJBdG9tQ29vcmRpbmF0ZXMiLCJBdG9tQ291bnQiLCJBdG9tRGlhZ3JhbUNvb3JkaW5hdGVzIiwiQXRvbUxpc3QiLCJBdG9tUSIsIkF0dGVudGlvbkxheWVyIiwiQXR0cmlidXRlcyIsIkF1ZGlvIiwiQXVkaW9BbXBsaWZ5IiwiQXVkaW9Bbm5vdGF0ZSIsIkF1ZGlvQW5ub3RhdGlvbkxvb2t1cCIsIkF1ZGlvQmxvY2tNYXAiLCJBdWRpb0NhcHR1cmUiLCJBdWRpb0NoYW5uZWxBc3NpZ25tZW50IiwiQXVkaW9DaGFubmVsQ29tYmluZSIsIkF1ZGlvQ2hhbm5lbE1peCIsIkF1ZGlvQ2hhbm5lbHMiLCJBdWRpb0NoYW5uZWxTZXBhcmF0ZSIsIkF1ZGlvRGF0YSIsIkF1ZGlvRGVsYXkiLCJBdWRpb0RlbGV0ZSIsIkF1ZGlvRGV2aWNlIiwiQXVkaW9EaXN0YW5jZSIsIkF1ZGlvRW5jb2RpbmciLCJBdWRpb0ZhZGUiLCJBdWRpb0ZyZXF1ZW5jeVNoaWZ0IiwiQXVkaW9HZW5lcmF0b3IiLCJBdWRpb0lkZW50aWZ5IiwiQXVkaW9JbnB1dERldmljZSIsIkF1ZGlvSW5zZXJ0IiwiQXVkaW9JbnN0YW5jZVEiLCJBdWRpb0ludGVydmFscyIsIkF1ZGlvSm9pbiIsIkF1ZGlvTGFiZWwiLCJBdWRpb0xlbmd0aCIsIkF1ZGlvTG9jYWxNZWFzdXJlbWVudHMiLCJBdWRpb0xvb3BpbmciLCJBdWRpb0xvdWRuZXNzIiwiQXVkaW9NZWFzdXJlbWVudHMiLCJBdWRpb05vcm1hbGl6ZSIsIkF1ZGlvT3V0cHV0RGV2aWNlIiwiQXVkaW9PdmVybGF5IiwiQXVkaW9QYWQiLCJBdWRpb1BhbiIsIkF1ZGlvUGFydGl0aW9uIiwiQXVkaW9QYXVzZSIsIkF1ZGlvUGl0Y2hTaGlmdCIsIkF1ZGlvUGxheSIsIkF1ZGlvUGxvdCIsIkF1ZGlvUSIsIkF1ZGlvUmVjb3JkIiwiQXVkaW9SZXBsYWNlIiwiQXVkaW9SZXNhbXBsZSIsIkF1ZGlvUmV2ZXJiIiwiQXVkaW9SZXZlcnNlIiwiQXVkaW9TYW1wbGVSYXRlIiwiQXVkaW9TcGVjdHJhbE1hcCIsIkF1ZGlvU3BlY3RyYWxUcmFuc2Zvcm1hdGlvbiIsIkF1ZGlvU3BsaXQiLCJBdWRpb1N0b3AiLCJBdWRpb1N0cmVhbSIsIkF1ZGlvU3RyZWFtcyIsIkF1ZGlvVGltZVN0cmV0Y2giLCJBdWRpb1RyYWNrcyIsIkF1ZGlvVHJpbSIsIkF1ZGlvVHlwZSIsIkF1Z21lbnRlZFBvbHloZWRyb24iLCJBdWdtZW50ZWRTeW1tZXRyaWNQb2x5bm9taWFsIiwiQXV0aGVudGljYXRlIiwiQXV0aGVudGljYXRpb24iLCJBdXRoZW50aWNhdGlvbkRpYWxvZyIsIkF1dG9BY3Rpb24iLCJBdXRvY29tcGxldGUiLCJBdXRvY29tcGxldGlvbkZ1bmN0aW9uIiwiQXV0b0NvcHkiLCJBdXRvY29ycmVsYXRpb25UZXN0IiwiQXV0b0RlbGV0ZSIsIkF1dG9FdmFsdWF0ZUV2ZW50cyIsIkF1dG9HZW5lcmF0ZWRQYWNrYWdlIiwiQXV0b0luZGVudCIsIkF1dG9JbmRlbnRTcGFjaW5ncyIsIkF1dG9JdGFsaWNXb3JkcyIsIkF1dG9sb2FkUGF0aCIsIkF1dG9NYXRjaCIsIkF1dG9tYXRpYyIsIkF1dG9tYXRpY0ltYWdlU2l6ZSIsIkF1dG9NdWx0aXBsaWNhdGlvblN5bWJvbCIsIkF1dG9OdW1iZXJGb3JtYXR0aW5nIiwiQXV0b09wZW5Ob3RlYm9va3MiLCJBdXRvT3BlblBhbGV0dGVzIiwiQXV0b1F1b3RlQ2hhcmFjdGVycyIsIkF1dG9SZWZyZXNoZWQiLCJBdXRvUmVtb3ZlIiwiQXV0b3J1blNlcXVlbmNpbmciLCJBdXRvU2NhbGluZyIsIkF1dG9TY3JvbGwiLCJBdXRvU3BhY2luZyIsIkF1dG9TdHlsZU9wdGlvbnMiLCJBdXRvU3R5bGVXb3JkcyIsIkF1dG9TdWJtaXR0aW5nIiwiQXhlcyIsIkF4ZXNFZGdlIiwiQXhlc0xhYmVsIiwiQXhlc09yaWdpbiIsIkF4ZXNTdHlsZSIsIkF4aW9tYXRpY1RoZW9yeSIsIkF4aXMiLCJCYWJ5TW9uc3Rlckdyb3VwQiIsIkJhY2siLCJCYWNrZ3JvdW5kIiwiQmFja2dyb3VuZEFwcGVhcmFuY2UiLCJCYWNrZ3JvdW5kVGFza3NTZXR0aW5ncyIsIkJhY2tzbGFzaCIsIkJhY2tzdWJzdGl0dXRpb24iLCJCYWNrd2FyZCIsIkJhbGwiLCJCYW5kIiwiQmFuZHBhc3NGaWx0ZXIiLCJCYW5kc3RvcEZpbHRlciIsIkJhcmFiYXNpQWxiZXJ0R3JhcGhEaXN0cmlidXRpb24iLCJCYXJDaGFydCIsIkJhckNoYXJ0M0QiLCJCYXJjb2RlSW1hZ2UiLCJCYXJjb2RlUmVjb2duaXplIiwiQmFyaW5naGF1c0hlbnplVGVzdCIsIkJhckxlZ2VuZCIsIkJhcmxvd1Byb3NjaGFuSW1wb3J0YW5jZSIsIkJhcm5lc0ciLCJCYXJPcmlnaW4iLCJCYXJTcGFjaW5nIiwiQmFydGxldHRIYW5uV2luZG93IiwiQmFydGxldHRXaW5kb3ciLCJCYXNlRGVjb2RlIiwiQmFzZUVuY29kZSIsIkJhc2VGb3JtIiwiQmFzZWxpbmUiLCJCYXNlbGluZVBvc2l0aW9uIiwiQmFzZVN0eWxlIiwiQmFzaWNSZWN1cnJlbnRMYXllciIsIkJhdGNoTm9ybWFsaXphdGlvbkxheWVyIiwiQmF0Y2hTaXplIiwiQmF0ZXNEaXN0cmlidXRpb24iLCJCYXR0bGVMZW1hcmllV2F2ZWxldCIsIkJheWVzaWFuTWF4aW1pemF0aW9uIiwiQmF5ZXNpYW5NYXhpbWl6YXRpb25PYmplY3QiLCJCYXllc2lhbk1pbmltaXphdGlvbiIsIkJheWVzaWFuTWluaW1pemF0aW9uT2JqZWN0IiwiQmVjYXVzZSIsIkJlY2ttYW5uRGlzdHJpYnV0aW9uIiwiQmVlcCIsIkJlZm9yZSIsIkJlZ2luIiwiQmVnaW5EaWFsb2dQYWNrZXQiLCJCZWdpbkZyb250RW5kSW50ZXJhY3Rpb25QYWNrZXQiLCJCZWdpblBhY2thZ2UiLCJCZWxsQiIsIkJlbGxZIiwiQmVsb3ciLCJCZW5mb3JkRGlzdHJpYnV0aW9uIiwiQmVuaW5pRGlzdHJpYnV0aW9uIiwiQmVua3RhbmRlckdpYnJhdERpc3RyaWJ1dGlvbiIsIkJlbmt0YW5kZXJXZWlidWxsRGlzdHJpYnV0aW9uIiwiQmVybm91bGxpQiIsIkJlcm5vdWxsaURpc3RyaWJ1dGlvbiIsIkJlcm5vdWxsaUdyYXBoRGlzdHJpYnV0aW9uIiwiQmVybm91bGxpUHJvY2VzcyIsIkJlcm5zdGVpbkJhc2lzIiwiQmVzc2VsRmlsdGVyTW9kZWwiLCJCZXNzZWxJIiwiQmVzc2VsSiIsIkJlc3NlbEpaZXJvIiwiQmVzc2VsSyIsIkJlc3NlbFkiLCJCZXNzZWxZWmVybyIsIkJldGEiLCJCZXRhQmlub21pYWxEaXN0cmlidXRpb24iLCJCZXRhRGlzdHJpYnV0aW9uIiwiQmV0YU5lZ2F0aXZlQmlub21pYWxEaXN0cmlidXRpb24iLCJCZXRhUHJpbWVEaXN0cmlidXRpb24iLCJCZXRhUmVndWxhcml6ZWQiLCJCZXR3ZWVuIiwiQmV0d2Vlbm5lc3NDZW50cmFsaXR5IiwiQmV2ZWxlZFBvbHloZWRyb24iLCJCZXppZXJDdXJ2ZSIsIkJlemllckN1cnZlM0RCb3giLCJCZXppZXJDdXJ2ZTNEQm94T3B0aW9ucyIsIkJlemllckN1cnZlQm94IiwiQmV6aWVyQ3VydmVCb3hPcHRpb25zIiwiQmV6aWVyRnVuY3Rpb24iLCJCaWxhdGVyYWxGaWx0ZXIiLCJCaW5hcml6ZSIsIkJpbmFyeURlc2VyaWFsaXplIiwiQmluYXJ5RGlzdGFuY2UiLCJCaW5hcnlGb3JtYXQiLCJCaW5hcnlJbWFnZVEiLCJCaW5hcnlSZWFkIiwiQmluYXJ5UmVhZExpc3QiLCJCaW5hcnlTZXJpYWxpemUiLCJCaW5hcnlXcml0ZSIsIkJpbkNvdW50cyIsIkJpbkxpc3RzIiwiQmlub21pYWwiLCJCaW5vbWlhbERpc3RyaWJ1dGlvbiIsIkJpbm9taWFsUHJvY2VzcyIsIkJpbm9ybWFsRGlzdHJpYnV0aW9uIiwiQmlvcnRob2dvbmFsU3BsaW5lV2F2ZWxldCIsIkJpcGFydGl0ZUdyYXBoUSIsIkJpcXVhZHJhdGljRmlsdGVyTW9kZWwiLCJCaXJuYmF1bUltcG9ydGFuY2UiLCJCaXJuYmF1bVNhdW5kZXJzRGlzdHJpYnV0aW9uIiwiQml0QW5kIiwiQml0Q2xlYXIiLCJCaXRHZXQiLCJCaXRMZW5ndGgiLCJCaXROb3QiLCJCaXRPciIsIkJpdFNldCIsIkJpdFNoaWZ0TGVmdCIsIkJpdFNoaWZ0UmlnaHQiLCJCaXRYb3IiLCJCaXdlaWdodExvY2F0aW9uIiwiQml3ZWlnaHRNaWR2YXJpYW5jZSIsIkJsYWNrIiwiQmxhY2ttYW5IYXJyaXNXaW5kb3ciLCJCbGFja21hbk51dHRhbGxXaW5kb3ciLCJCbGFja21hbldpbmRvdyIsIkJsYW5rIiwiQmxhbmtGb3JtIiwiQmxhbmtOdWxsU2VxdWVuY2UiLCJCbGFua1NlcXVlbmNlIiwiQmxlbmQiLCJCbG9jayIsIkJsb2NrY2hhaW5BZGRyZXNzRGF0YSIsIkJsb2NrY2hhaW5CYXNlIiwiQmxvY2tjaGFpbkJsb2NrRGF0YSIsIkJsb2NrY2hhaW5Db250cmFjdFZhbHVlIiwiQmxvY2tjaGFpbkRhdGEiLCJCbG9ja2NoYWluR2V0IiwiQmxvY2tjaGFpbktleUVuY29kZSIsIkJsb2NrY2hhaW5QdXQiLCJCbG9ja2NoYWluVG9rZW5EYXRhIiwiQmxvY2tjaGFpblRyYW5zYWN0aW9uIiwiQmxvY2tjaGFpblRyYW5zYWN0aW9uRGF0YSIsIkJsb2NrY2hhaW5UcmFuc2FjdGlvblNpZ24iLCJCbG9ja2NoYWluVHJhbnNhY3Rpb25TdWJtaXQiLCJCbG9ja01hcCIsIkJsb2NrUmFuZG9tIiwiQmxvbXF2aXN0QmV0YSIsIkJsb21xdmlzdEJldGFUZXN0IiwiQmx1ZSIsIkJsdXIiLCJCb2RlUGxvdCIsIkJvaG1hbldpbmRvdyIsIkJvbGQiLCJCb25kIiwiQm9uZENvdW50IiwiQm9uZExpc3QiLCJCb25kUSIsIkJvb2ttYXJrcyIsIkJvb2xlIiwiQm9vbGVhbkNvbnNlY3V0aXZlRnVuY3Rpb24iLCJCb29sZWFuQ29udmVydCIsIkJvb2xlYW5Db3VudGluZ0Z1bmN0aW9uIiwiQm9vbGVhbkZ1bmN0aW9uIiwiQm9vbGVhbkdyYXBoIiwiQm9vbGVhbk1heHRlcm1zIiwiQm9vbGVhbk1pbmltaXplIiwiQm9vbGVhbk1pbnRlcm1zIiwiQm9vbGVhblEiLCJCb29sZWFuUmVnaW9uIiwiQm9vbGVhbnMiLCJCb29sZWFuU3RyaW5ncyIsIkJvb2xlYW5UYWJsZSIsIkJvb2xlYW5WYXJpYWJsZXMiLCJCb3JkZXJEaW1lbnNpb25zIiwiQm9yZWxUYW5uZXJEaXN0cmlidXRpb24iLCJCb3R0b20iLCJCb3R0b21IYXRUcmFuc2Zvcm0iLCJCb3VuZGFyeURpc2NyZXRpemVHcmFwaGljcyIsIkJvdW5kYXJ5RGlzY3JldGl6ZVJlZ2lvbiIsIkJvdW5kYXJ5TWVzaCIsIkJvdW5kYXJ5TWVzaFJlZ2lvbiIsIkJvdW5kYXJ5TWVzaFJlZ2lvblEiLCJCb3VuZGFyeVN0eWxlIiwiQm91bmRlZFJlZ2lvblEiLCJCb3VuZGluZ1JlZ2lvbiIsIkJvdW5kcyIsIkJveCIsIkJveEJhc2VsaW5lU2hpZnQiLCJCb3hEYXRhIiwiQm94RGltZW5zaW9ucyIsIkJveGVkIiwiQm94ZXMiLCJCb3hGb3JtIiwiQm94Rm9ybUZvcm1hdFR5cGVzIiwiQm94RnJhbWUiLCJCb3hJRCIsIkJveE1hcmdpbnMiLCJCb3hNYXRyaXgiLCJCb3hPYmplY3QiLCJCb3hSYXRpb3MiLCJCb3hSb3RhdGlvbiIsIkJveFJvdGF0aW9uUG9pbnQiLCJCb3hTdHlsZSIsIkJveFdoaXNrZXJDaGFydCIsIkJyYSIsIkJyYWNrZXRpbmdCYXIiLCJCcmFLZXQiLCJCcmF5Q3VydGlzRGlzdGFuY2UiLCJCcmVhZHRoRmlyc3RTY2FuIiwiQnJlYWsiLCJCcmlkZ2VEYXRhIiwiQnJpZ2h0bmVzc0VxdWFsaXplIiwiQnJvYWRjYXN0U3RhdGlvbkRhdGEiLCJCcm93biIsIkJyb3duRm9yc3l0aGVUZXN0IiwiQnJvd25pYW5CcmlkZ2VQcm9jZXNzIiwiQnJvd3NlckNhdGVnb3J5IiwiQlNwbGluZUJhc2lzIiwiQlNwbGluZUN1cnZlIiwiQlNwbGluZUN1cnZlM0RCb3giLCJCU3BsaW5lQ3VydmUzREJveE9wdGlvbnMiLCJCU3BsaW5lQ3VydmVCb3giLCJCU3BsaW5lQ3VydmVCb3hPcHRpb25zIiwiQlNwbGluZUZ1bmN0aW9uIiwiQlNwbGluZVN1cmZhY2UiLCJCU3BsaW5lU3VyZmFjZTNEQm94IiwiQlNwbGluZVN1cmZhY2UzREJveE9wdGlvbnMiLCJCdWJibGVDaGFydCIsIkJ1YmJsZUNoYXJ0M0QiLCJCdWJibGVTY2FsZSIsIkJ1YmJsZVNpemVzIiwiQnVpbGRpbmdEYXRhIiwiQnVsbGV0R2F1Z2UiLCJCdXNpbmVzc0RheVEiLCJCdXR0ZXJmbHlHcmFwaCIsIkJ1dHRlcndvcnRoRmlsdGVyTW9kZWwiLCJCdXR0b24iLCJCdXR0b25CYXIiLCJCdXR0b25Cb3giLCJCdXR0b25Cb3hPcHRpb25zIiwiQnV0dG9uQ2VsbCIsIkJ1dHRvbkNvbnRlbnRzIiwiQnV0dG9uRGF0YSIsIkJ1dHRvbkV2YWx1YXRvciIsIkJ1dHRvbkV4cGFuZGFibGUiLCJCdXR0b25GcmFtZSIsIkJ1dHRvbkZ1bmN0aW9uIiwiQnV0dG9uTWFyZ2lucyIsIkJ1dHRvbk1pbkhlaWdodCIsIkJ1dHRvbk5vdGUiLCJCdXR0b25Ob3RlYm9vayIsIkJ1dHRvblNvdXJjZSIsIkJ1dHRvblN0eWxlIiwiQnV0dG9uU3R5bGVNZW51TGlzdGluZyIsIkJ5dGUiLCJCeXRlQXJyYXkiLCJCeXRlQXJyYXlGb3JtYXQiLCJCeXRlQXJyYXlRIiwiQnl0ZUFycmF5VG9TdHJpbmciLCJCeXRlQ291bnQiLCJCeXRlT3JkZXJpbmciLCJDIiwiQ2FjaGVkVmFsdWUiLCJDYWNoZUdyYXBoaWNzIiwiQ2FjaGVQZXJzaXN0ZW5jZSIsIkNhbGVuZGFyQ29udmVydCIsIkNhbGVuZGFyRGF0YSIsIkNhbGVuZGFyVHlwZSIsIkNhbGxvdXQiLCJDYWxsb3V0TWFya2VyIiwiQ2FsbG91dFN0eWxlIiwiQ2FsbFBhY2tldCIsIkNhbmJlcnJhRGlzdGFuY2UiLCJDYW5jZWwiLCJDYW5jZWxCdXR0b24iLCJDYW5kbGVzdGlja0NoYXJ0IiwiQ2Fub25pY2FsR3JhcGgiLCJDYW5vbmljYWxpemVQb2x5Z29uIiwiQ2Fub25pY2FsaXplUG9seWhlZHJvbiIsIkNhbm9uaWNhbE5hbWUiLCJDYW5vbmljYWxXYXJwaW5nQ29ycmVzcG9uZGVuY2UiLCJDYW5vbmljYWxXYXJwaW5nRGlzdGFuY2UiLCJDYW50b3JNZXNoIiwiQ2FudG9yU3RhaXJjYXNlIiwiQ2FwIiwiQ2FwRm9ybSIsIkNhcGl0YWxEaWZmZXJlbnRpYWxEIiwiQ2FwaXRhbGl6ZSIsIkNhcHN1bGVTaGFwZSIsIkNhcHR1cmVSdW5uaW5nIiwiQ2FyZGluYWxCU3BsaW5lQmFzaXMiLCJDYXJsZW1hbkxpbmVhcml6ZSIsIkNhcm1pY2hhZWxMYW1iZGEiLCJDYXNlT3JkZXJpbmciLCJDYXNlcyIsIkNhc2VTZW5zaXRpdmUiLCJDYXNoZmxvdyIsIkNhc29yYXRpYW4iLCJDYXRhbGFuIiwiQ2F0YWxhbk51bWJlciIsIkNhdGNoIiwiQ2F0ZWdvcmljYWxEaXN0cmlidXRpb24iLCJDYXRlbmF0ZSIsIkNhdGVuYXRlTGF5ZXIiLCJDYXVjaHlEaXN0cmlidXRpb24iLCJDYXVjaHlXaW5kb3ciLCJDYXlsZXlHcmFwaCIsIkNERiIsIkNERkRlcGxveSIsIkNERkluZm9ybWF0aW9uIiwiQ0RGV2F2ZWxldCIsIkNlaWxpbmciLCJDZWxlc3RpYWxTeXN0ZW0iLCJDZWxsIiwiQ2VsbEF1dG9PdmVyd3JpdGUiLCJDZWxsQmFzZWxpbmUiLCJDZWxsQm91bmRpbmdCb3giLCJDZWxsQnJhY2tldE9wdGlvbnMiLCJDZWxsQ2hhbmdlVGltZXMiLCJDZWxsQ29udGVudHMiLCJDZWxsQ29udGV4dCIsIkNlbGxEaW5nYmF0IiwiQ2VsbER5bmFtaWNFeHByZXNzaW9uIiwiQ2VsbEVkaXREdXBsaWNhdGUiLCJDZWxsRWxlbWVudHNCb3VuZGluZ0JveCIsIkNlbGxFbGVtZW50U3BhY2luZ3MiLCJDZWxsRXBpbG9nIiwiQ2VsbEV2YWx1YXRpb25EdXBsaWNhdGUiLCJDZWxsRXZhbHVhdGlvbkZ1bmN0aW9uIiwiQ2VsbEV2YWx1YXRpb25MYW5ndWFnZSIsIkNlbGxFdmVudEFjdGlvbnMiLCJDZWxsRnJhbWUiLCJDZWxsRnJhbWVDb2xvciIsIkNlbGxGcmFtZUxhYmVsTWFyZ2lucyIsIkNlbGxGcmFtZUxhYmVscyIsIkNlbGxGcmFtZU1hcmdpbnMiLCJDZWxsR3JvdXAiLCJDZWxsR3JvdXBEYXRhIiwiQ2VsbEdyb3VwaW5nIiwiQ2VsbEdyb3VwaW5nUnVsZXMiLCJDZWxsSG9yaXpvbnRhbFNjcm9sbGluZyIsIkNlbGxJRCIsIkNlbGxMYWJlbCIsIkNlbGxMYWJlbEF1dG9EZWxldGUiLCJDZWxsTGFiZWxNYXJnaW5zIiwiQ2VsbExhYmVsUG9zaXRpb25pbmciLCJDZWxsTGFiZWxTdHlsZSIsIkNlbGxMYWJlbFRlbXBsYXRlIiwiQ2VsbE1hcmdpbnMiLCJDZWxsT2JqZWN0IiwiQ2VsbE9wZW4iLCJDZWxsUHJpbnQiLCJDZWxsUHJvbG9nIiwiQ2VsbHMiLCJDZWxsU2l6ZSIsIkNlbGxTdHlsZSIsIkNlbGxUYWdzIiwiQ2VsbHVsYXJBdXRvbWF0b24iLCJDZW5zb3JlZERpc3RyaWJ1dGlvbiIsIkNlbnNvcmluZyIsIkNlbnRlciIsIkNlbnRlckFycmF5IiwiQ2VudGVyRG90IiwiQ2VudHJhbEZlYXR1cmUiLCJDZW50cmFsTW9tZW50IiwiQ2VudHJhbE1vbWVudEdlbmVyYXRpbmdGdW5jdGlvbiIsIkNlcHN0cm9ncmFtIiwiQ2Vwc3Ryb2dyYW1BcnJheSIsIkNlcHN0cnVtQXJyYXkiLCJDRm9ybSIsIkNoYW1wZXJub3duZU51bWJlciIsIkNoYW5nZU9wdGlvbnMiLCJDaGFubmVsQmFzZSIsIkNoYW5uZWxCcm9rZXJBY3Rpb24iLCJDaGFubmVsRGF0YWJpbiIsIkNoYW5uZWxIaXN0b3J5TGVuZ3RoIiwiQ2hhbm5lbExpc3RlbiIsIkNoYW5uZWxMaXN0ZW5lciIsIkNoYW5uZWxMaXN0ZW5lcnMiLCJDaGFubmVsTGlzdGVuZXJXYWl0IiwiQ2hhbm5lbE9iamVjdCIsIkNoYW5uZWxQcmVTZW5kRnVuY3Rpb24iLCJDaGFubmVsUmVjZWl2ZXJGdW5jdGlvbiIsIkNoYW5uZWxTZW5kIiwiQ2hhbm5lbFN1YnNjcmliZXJzIiwiQ2hhblZlc2VCaW5hcml6ZSIsIkNoYXJhY3RlciIsIkNoYXJhY3RlckNvdW50cyIsIkNoYXJhY3RlckVuY29kaW5nIiwiQ2hhcmFjdGVyRW5jb2RpbmdzUGF0aCIsIkNoYXJhY3RlcmlzdGljRnVuY3Rpb24iLCJDaGFyYWN0ZXJpc3RpY1BvbHlub21pYWwiLCJDaGFyYWN0ZXJOYW1lIiwiQ2hhcmFjdGVyTm9ybWFsaXplIiwiQ2hhcmFjdGVyUmFuZ2UiLCJDaGFyYWN0ZXJzIiwiQ2hhcnRCYXNlU3R5bGUiLCJDaGFydEVsZW1lbnREYXRhIiwiQ2hhcnRFbGVtZW50RGF0YUZ1bmN0aW9uIiwiQ2hhcnRFbGVtZW50RnVuY3Rpb24iLCJDaGFydEVsZW1lbnRzIiwiQ2hhcnRMYWJlbHMiLCJDaGFydExheW91dCIsIkNoYXJ0TGVnZW5kcyIsIkNoYXJ0U3R5bGUiLCJDaGVieXNoZXYxRmlsdGVyTW9kZWwiLCJDaGVieXNoZXYyRmlsdGVyTW9kZWwiLCJDaGVieXNoZXZEaXN0YW5jZSIsIkNoZWJ5c2hldlQiLCJDaGVieXNoZXZVIiwiQ2hlY2siLCJDaGVja0Fib3J0IiwiQ2hlY2tBbGwiLCJDaGVja2JveCIsIkNoZWNrYm94QmFyIiwiQ2hlY2tib3hCb3giLCJDaGVja2JveEJveE9wdGlvbnMiLCJDaGVtaWNhbERhdGEiLCJDaGVzc2JvYXJkRGlzdGFuY2UiLCJDaGlEaXN0cmlidXRpb24iLCJDaGluZXNlUmVtYWluZGVyIiwiQ2hpU3F1YXJlRGlzdHJpYnV0aW9uIiwiQ2hvaWNlQnV0dG9ucyIsIkNob2ljZURpYWxvZyIsIkNob2xlc2t5RGVjb21wb3NpdGlvbiIsIkNob3AiLCJDaHJvbWF0aWNpdHlQbG90IiwiQ2hyb21hdGljaXR5UGxvdDNEIiwiQ2hyb21hdGljUG9seW5vbWlhbCIsIkNpcmNsZSIsIkNpcmNsZUJveCIsIkNpcmNsZURvdCIsIkNpcmNsZU1pbnVzIiwiQ2lyY2xlUGx1cyIsIkNpcmNsZVBvaW50cyIsIkNpcmNsZVRocm91Z2giLCJDaXJjbGVUaW1lcyIsIkNpcmN1bGFudEdyYXBoIiwiQ2lyY3VsYXJPcnRob2dvbmFsTWF0cml4RGlzdHJpYnV0aW9uIiwiQ2lyY3VsYXJRdWF0ZXJuaW9uTWF0cml4RGlzdHJpYnV0aW9uIiwiQ2lyY3VsYXJSZWFsTWF0cml4RGlzdHJpYnV0aW9uIiwiQ2lyY3VsYXJTeW1wbGVjdGljTWF0cml4RGlzdHJpYnV0aW9uIiwiQ2lyY3VsYXJVbml0YXJ5TWF0cml4RGlzdHJpYnV0aW9uIiwiQ2lyY3Vtc3BoZXJlIiwiQ2l0eURhdGEiLCJDbGFzc2lmaWVyRnVuY3Rpb24iLCJDbGFzc2lmaWVySW5mb3JtYXRpb24iLCJDbGFzc2lmaWVyTWVhc3VyZW1lbnRzIiwiQ2xhc3NpZmllck1lYXN1cmVtZW50c09iamVjdCIsIkNsYXNzaWZ5IiwiQ2xhc3NQcmlvcnMiLCJDbGVhciIsIkNsZWFyQWxsIiwiQ2xlYXJBdHRyaWJ1dGVzIiwiQ2xlYXJDb29raWVzIiwiQ2xlYXJQZXJtaXNzaW9ucyIsIkNsZWFyU3lzdGVtQ2FjaGUiLCJDbGVic2NoR29yZGFuIiwiQ2xpY2tQYW5lIiwiQ2xpcCIsIkNsaXBib2FyZE5vdGVib29rIiwiQ2xpcEZpbGwiLCJDbGlwcGluZ1N0eWxlIiwiQ2xpcFBsYW5lcyIsIkNsaXBQbGFuZXNTdHlsZSIsIkNsaXBSYW5nZSIsIkNsb2NrIiwiQ2xvY2tHYXVnZSIsIkNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbCIsIkNsb3NlIiwiQ2xvc2VkIiwiQ2xvc2VLZXJuZWxzIiwiQ2xvc2VuZXNzQ2VudHJhbGl0eSIsIkNsb3NpbmciLCJDbG9zaW5nQXV0b1NhdmUiLCJDbG9zaW5nRXZlbnQiLCJDbG9zaW5nU2F2ZURpYWxvZyIsIkNsb3VkQWNjb3VudERhdGEiLCJDbG91ZEJhc2UiLCJDbG91ZENvbm5lY3QiLCJDbG91ZENvbm5lY3Rpb25zIiwiQ2xvdWREZXBsb3kiLCJDbG91ZERpcmVjdG9yeSIsIkNsb3VkRGlzY29ubmVjdCIsIkNsb3VkRXZhbHVhdGUiLCJDbG91ZEV4cG9ydCIsIkNsb3VkRXhwcmVzc2lvbiIsIkNsb3VkRXhwcmVzc2lvbnMiLCJDbG91ZEZ1bmN0aW9uIiwiQ2xvdWRHZXQiLCJDbG91ZEltcG9ydCIsIkNsb3VkTG9nZ2luZ0RhdGEiLCJDbG91ZE9iamVjdCIsIkNsb3VkT2JqZWN0SW5mb3JtYXRpb24iLCJDbG91ZE9iamVjdEluZm9ybWF0aW9uRGF0YSIsIkNsb3VkT2JqZWN0TmFtZUZvcm1hdCIsIkNsb3VkT2JqZWN0cyIsIkNsb3VkT2JqZWN0VVJMVHlwZSIsIkNsb3VkUHVibGlzaCIsIkNsb3VkUHV0IiwiQ2xvdWRSZW5kZXJpbmdNZXRob2QiLCJDbG91ZFNhdmUiLCJDbG91ZFNoYXJlIiwiQ2xvdWRTdWJtaXQiLCJDbG91ZFN5bWJvbCIsIkNsb3VkVW5zaGFyZSIsIkNsb3VkVXNlcklEIiwiQ2x1c3RlckNsYXNzaWZ5IiwiQ2x1c3RlckRpc3NpbWlsYXJpdHlGdW5jdGlvbiIsIkNsdXN0ZXJpbmdDb21wb25lbnRzIiwiQ2x1c3RlcmluZ1RyZWUiLCJDTVlLQ29sb3IiLCJDb2Fyc2UiLCJDb2RlQXNzaXN0T3B0aW9ucyIsIkNvZWZmaWNpZW50IiwiQ29lZmZpY2llbnRBcnJheXMiLCJDb2VmZmljaWVudERvbWFpbiIsIkNvZWZmaWNpZW50TGlzdCIsIkNvZWZmaWNpZW50UnVsZXMiLCJDb2lmbGV0V2F2ZWxldCIsIkNvbGxlY3QiLCJDb2xvbiIsIkNvbG9uRm9ybSIsIkNvbG9yQmFsYW5jZSIsIkNvbG9yQ29tYmluZSIsIkNvbG9yQ29udmVydCIsIkNvbG9yQ292ZXJhZ2UiLCJDb2xvckRhdGEiLCJDb2xvckRhdGFGdW5jdGlvbiIsIkNvbG9yRGV0ZWN0IiwiQ29sb3JEaXN0YW5jZSIsIkNvbG9yRnVuY3Rpb24iLCJDb2xvckZ1bmN0aW9uU2NhbGluZyIsIkNvbG9yaXplIiwiQ29sb3JOZWdhdGUiLCJDb2xvck91dHB1dCIsIkNvbG9yUHJvZmlsZURhdGEiLCJDb2xvclEiLCJDb2xvclF1YW50aXplIiwiQ29sb3JSZXBsYWNlIiwiQ29sb3JSdWxlcyIsIkNvbG9yU2VsZWN0b3JTZXR0aW5ncyIsIkNvbG9yU2VwYXJhdGUiLCJDb2xvclNldHRlciIsIkNvbG9yU2V0dGVyQm94IiwiQ29sb3JTZXR0ZXJCb3hPcHRpb25zIiwiQ29sb3JTbGlkZXIiLCJDb2xvcnNOZWFyIiwiQ29sb3JTcGFjZSIsIkNvbG9yVG9uZU1hcHBpbmciLCJDb2x1bW4iLCJDb2x1bW5BbGlnbm1lbnRzIiwiQ29sdW1uQmFja2dyb3VuZHMiLCJDb2x1bW5Gb3JtIiwiQ29sdW1uTGluZXMiLCJDb2x1bW5zRXF1YWwiLCJDb2x1bW5TcGFjaW5ncyIsIkNvbHVtbldpZHRocyIsIkNvbWJpbmVkRW50aXR5Q2xhc3MiLCJDb21iaW5lckZ1bmN0aW9uIiwiQ29tZXREYXRhIiwiQ29tbW9uRGVmYXVsdEZvcm1hdFR5cGVzIiwiQ29tbW9uZXN0IiwiQ29tbW9uZXN0RmlsdGVyIiwiQ29tbW9uTmFtZSIsIkNvbW1vblVuaXRzIiwiQ29tbXVuaXR5Qm91bmRhcnlTdHlsZSIsIkNvbW11bml0eUdyYXBoUGxvdCIsIkNvbW11bml0eUxhYmVscyIsIkNvbW11bml0eVJlZ2lvblN0eWxlIiwiQ29tcGFueURhdGEiLCJDb21wYXRpYmxlVW5pdFEiLCJDb21waWxhdGlvbk9wdGlvbnMiLCJDb21waWxhdGlvblRhcmdldCIsIkNvbXBpbGUiLCJDb21waWxlZCIsIkNvbXBpbGVkQ29kZUZ1bmN0aW9uIiwiQ29tcGlsZWRGdW5jdGlvbiIsIkNvbXBpbGVyT3B0aW9ucyIsIkNvbXBsZW1lbnQiLCJDb21wbGVtZW50ZWRFbnRpdHlDbGFzcyIsIkNvbXBsZXRlR3JhcGgiLCJDb21wbGV0ZUdyYXBoUSIsIkNvbXBsZXRlS2FyeVRyZWUiLCJDb21wbGV0aW9uc0xpc3RQYWNrZXQiLCJDb21wbGV4IiwiQ29tcGxleENvbnRvdXJQbG90IiwiQ29tcGxleGVzIiwiQ29tcGxleEV4cGFuZCIsIkNvbXBsZXhJbmZpbml0eSIsIkNvbXBsZXhpdHlGdW5jdGlvbiIsIkNvbXBsZXhMaXN0UGxvdCIsIkNvbXBsZXhQbG90IiwiQ29tcGxleFBsb3QzRCIsIkNvbXBsZXhSZWdpb25QbG90IiwiQ29tcGxleFN0cmVhbVBsb3QiLCJDb21wbGV4VmVjdG9yUGxvdCIsIkNvbXBvbmVudE1lYXN1cmVtZW50cyIsIkNvbXBvbmVudHdpc2VDb250ZXh0TWVudSIsIkNvbXBvc2UiLCJDb21wb3NlTGlzdCIsIkNvbXBvc2VTZXJpZXMiLCJDb21wb3NpdGVRIiwiQ29tcG9zaXRpb24iLCJDb21wb3VuZEVsZW1lbnQiLCJDb21wb3VuZEV4cHJlc3Npb24iLCJDb21wb3VuZFBvaXNzb25EaXN0cmlidXRpb24iLCJDb21wb3VuZFBvaXNzb25Qcm9jZXNzIiwiQ29tcG91bmRSZW5ld2FsUHJvY2VzcyIsIkNvbXByZXNzIiwiQ29tcHJlc3NlZERhdGEiLCJDb21wcmVzc2lvbkxldmVsIiwiQ29tcHV0ZVVuY2VydGFpbnR5IiwiQ29uZGl0aW9uIiwiQ29uZGl0aW9uYWxFeHByZXNzaW9uIiwiQ29uZGl0aW9uZWQiLCJDb25lIiwiQ29uZUJveCIsIkNvbmZpZGVuY2VMZXZlbCIsIkNvbmZpZGVuY2VSYW5nZSIsIkNvbmZpZGVuY2VUcmFuc2Zvcm0iLCJDb25maWd1cmF0aW9uUGF0aCIsIkNvbmZvcm1BdWRpbyIsIkNvbmZvcm1JbWFnZXMiLCJDb25ncnVlbnQiLCJDb25pY0h1bGxSZWdpb24iLCJDb25pY0h1bGxSZWdpb24zREJveCIsIkNvbmljSHVsbFJlZ2lvbkJveCIsIkNvbmljT3B0aW1pemF0aW9uIiwiQ29uanVnYXRlIiwiQ29uanVnYXRlVHJhbnNwb3NlIiwiQ29uanVuY3Rpb24iLCJDb25uZWN0IiwiQ29ubmVjdGVkQ29tcG9uZW50cyIsIkNvbm5lY3RlZEdyYXBoQ29tcG9uZW50cyIsIkNvbm5lY3RlZEdyYXBoUSIsIkNvbm5lY3RlZE1lc2hDb21wb25lbnRzIiwiQ29ubmVjdGVkTW9sZWN1bGVDb21wb25lbnRzIiwiQ29ubmVjdGVkTW9sZWN1bGVRIiwiQ29ubmVjdGlvblNldHRpbmdzIiwiQ29ubmVjdExpYnJhcnlDYWxsYmFja0Z1bmN0aW9uIiwiQ29ubmVjdFN5c3RlbU1vZGVsQ29tcG9uZW50cyIsIkNvbm5lc1dpbmRvdyIsIkNvbm92ZXJUZXN0IiwiQ29uc29sZU1lc3NhZ2UiLCJDb25zb2xlTWVzc2FnZVBhY2tldCIsIkNvbnN0YW50IiwiQ29uc3RhbnRBcnJheSIsIkNvbnN0YW50QXJyYXlMYXllciIsIkNvbnN0YW50SW1hZ2UiLCJDb25zdGFudFBsdXNMYXllciIsIkNvbnN0YW50UmVnaW9uUSIsIkNvbnN0YW50cyIsIkNvbnN0YW50VGltZXNMYXllciIsIkNvbnN0ZWxsYXRpb25EYXRhIiwiQ29uc3RyYWluZWRNYXgiLCJDb25zdHJhaW5lZE1pbiIsIkNvbnN0cnVjdCIsIkNvbnRhaW5pbmciLCJDb250YWluc0FsbCIsIkNvbnRhaW5zQW55IiwiQ29udGFpbnNFeGFjdGx5IiwiQ29udGFpbnNOb25lIiwiQ29udGFpbnNPbmx5IiwiQ29udGVudEZpZWxkT3B0aW9ucyIsIkNvbnRlbnRMb2NhdGlvbkZ1bmN0aW9uIiwiQ29udGVudE9iamVjdCIsIkNvbnRlbnRQYWRkaW5nIiwiQ29udGVudHNCb3VuZGluZ0JveCIsIkNvbnRlbnRTZWxlY3RhYmxlIiwiQ29udGVudFNpemUiLCJDb250ZXh0IiwiQ29udGV4dE1lbnUiLCJDb250ZXh0cyIsIkNvbnRleHRUb0ZpbGVOYW1lIiwiQ29udGludWF0aW9uIiwiQ29udGludWUiLCJDb250aW51ZWRGcmFjdGlvbiIsIkNvbnRpbnVlZEZyYWN0aW9uSyIsIkNvbnRpbnVvdXNBY3Rpb24iLCJDb250aW51b3VzTWFya292UHJvY2VzcyIsIkNvbnRpbnVvdXNUYXNrIiwiQ29udGludW91c1RpbWVNb2RlbFEiLCJDb250aW51b3VzV2F2ZWxldERhdGEiLCJDb250aW51b3VzV2F2ZWxldFRyYW5zZm9ybSIsIkNvbnRvdXJEZXRlY3QiLCJDb250b3VyR3JhcGhpY3MiLCJDb250b3VySW50ZWdyYWwiLCJDb250b3VyTGFiZWxzIiwiQ29udG91ckxpbmVzIiwiQ29udG91clBsb3QiLCJDb250b3VyUGxvdDNEIiwiQ29udG91cnMiLCJDb250b3VyU2hhZGluZyIsIkNvbnRvdXJTbW9vdGhpbmciLCJDb250b3VyU3R5bGUiLCJDb250cmFoYXJtb25pY01lYW4iLCJDb250cmFzdGl2ZUxvc3NMYXllciIsIkNvbnRyb2wiLCJDb250cm9sQWN0aXZlIiwiQ29udHJvbEFsaWdubWVudCIsIkNvbnRyb2xHcm91cENvbnRlbnRzQm94IiwiQ29udHJvbGxhYmlsaXR5R3JhbWlhbiIsIkNvbnRyb2xsYWJpbGl0eU1hdHJpeCIsIkNvbnRyb2xsYWJsZURlY29tcG9zaXRpb24iLCJDb250cm9sbGFibGVNb2RlbFEiLCJDb250cm9sbGVyRHVyYXRpb24iLCJDb250cm9sbGVySW5mb3JtYXRpb24iLCJDb250cm9sbGVySW5mb3JtYXRpb25EYXRhIiwiQ29udHJvbGxlckxpbmtpbmciLCJDb250cm9sbGVyTWFuaXB1bGF0ZSIsIkNvbnRyb2xsZXJNZXRob2QiLCJDb250cm9sbGVyUGF0aCIsIkNvbnRyb2xsZXJTdGF0ZSIsIkNvbnRyb2xQbGFjZW1lbnQiLCJDb250cm9sc1JlbmRlcmluZyIsIkNvbnRyb2xUeXBlIiwiQ29udmVyZ2VudHMiLCJDb252ZXJzaW9uT3B0aW9ucyIsIkNvbnZlcnNpb25SdWxlcyIsIkNvbnZlcnRUb0JpdG1hcFBhY2tldCIsIkNvbnZlcnRUb1Bvc3RTY3JpcHQiLCJDb252ZXJ0VG9Qb3N0U2NyaXB0UGFja2V0IiwiQ29udmV4SHVsbE1lc2giLCJDb252ZXhQb2x5Z29uUSIsIkNvbnZleFBvbHloZWRyb25RIiwiQ29udm9sdXRpb25MYXllciIsIkNvbnZvbHZlIiwiQ29ud2F5R3JvdXBDbzEiLCJDb253YXlHcm91cENvMiIsIkNvbndheUdyb3VwQ28zIiwiQ29va2llRnVuY3Rpb24iLCJDb29raWVzIiwiQ29vcmRpbmF0ZUJvdW5kaW5nQm94IiwiQ29vcmRpbmF0ZUJvdW5kaW5nQm94QXJyYXkiLCJDb29yZGluYXRlQm91bmRzIiwiQ29vcmRpbmF0ZUJvdW5kc0FycmF5IiwiQ29vcmRpbmF0ZUNoYXJ0RGF0YSIsIkNvb3JkaW5hdGVzVG9vbE9wdGlvbnMiLCJDb29yZGluYXRlVHJhbnNmb3JtIiwiQ29vcmRpbmF0ZVRyYW5zZm9ybURhdGEiLCJDb3ByaW1lUSIsIkNvcHJvZHVjdCIsIkNvcHVsYURpc3RyaWJ1dGlvbiIsIkNvcHlhYmxlIiwiQ29weURhdGFiaW4iLCJDb3B5RGlyZWN0b3J5IiwiQ29weUZpbGUiLCJDb3B5VGFnIiwiQ29weVRvQ2xpcGJvYXJkIiwiQ29ybmVyRmlsdGVyIiwiQ29ybmVyTmVpZ2hib3JzIiwiQ29ycmVsYXRpb24iLCJDb3JyZWxhdGlvbkRpc3RhbmNlIiwiQ29ycmVsYXRpb25GdW5jdGlvbiIsIkNvcnJlbGF0aW9uVGVzdCIsIkNvcyIsIkNvc2giLCJDb3NoSW50ZWdyYWwiLCJDb3NpbmVEaXN0YW5jZSIsIkNvc2luZVdpbmRvdyIsIkNvc0ludGVncmFsIiwiQ290IiwiQ290aCIsIkNvdW50IiwiQ291bnREaXN0aW5jdCIsIkNvdW50RGlzdGluY3RCeSIsIkNvdW50ZXJBc3NpZ25tZW50cyIsIkNvdW50ZXJCb3giLCJDb3VudGVyQm94T3B0aW9ucyIsIkNvdW50ZXJDbG9ja3dpc2VDb250b3VySW50ZWdyYWwiLCJDb3VudGVyRXZhbHVhdG9yIiwiQ291bnRlckZ1bmN0aW9uIiwiQ291bnRlckluY3JlbWVudHMiLCJDb3VudGVyU3R5bGUiLCJDb3VudGVyU3R5bGVNZW51TGlzdGluZyIsIkNvdW50Um9vdHMiLCJDb3VudHJ5RGF0YSIsIkNvdW50cyIsIkNvdW50c0J5IiwiQ292YXJpYW5jZSIsIkNvdmFyaWFuY2VFc3RpbWF0b3JGdW5jdGlvbiIsIkNvdmFyaWFuY2VGdW5jdGlvbiIsIkNveGlhbkRpc3RyaWJ1dGlvbiIsIkNveEluZ2Vyc29sbFJvc3NQcm9jZXNzIiwiQ294TW9kZWwiLCJDb3hNb2RlbEZpdCIsIkNyYW1lclZvbk1pc2VzVGVzdCIsIkNyZWF0ZUFyY2hpdmUiLCJDcmVhdGVDZWxsSUQiLCJDcmVhdGVDaGFubmVsIiwiQ3JlYXRlQ2xvdWRFeHByZXNzaW9uIiwiQ3JlYXRlRGF0YWJpbiIsIkNyZWF0ZURhdGFTdHJ1Y3R1cmUiLCJDcmVhdGVEYXRhU3lzdGVtTW9kZWwiLCJDcmVhdGVEaWFsb2ciLCJDcmVhdGVEaXJlY3RvcnkiLCJDcmVhdGVEb2N1bWVudCIsIkNyZWF0ZUZpbGUiLCJDcmVhdGVJbnRlcm1lZGlhdGVEaXJlY3RvcmllcyIsIkNyZWF0ZU1hbmFnZWRMaWJyYXJ5RXhwcmVzc2lvbiIsIkNyZWF0ZU5vdGVib29rIiwiQ3JlYXRlUGFjbGV0QXJjaGl2ZSIsIkNyZWF0ZVBhbGV0dGUiLCJDcmVhdGVQYWxldHRlUGFja2V0IiwiQ3JlYXRlUGVybWlzc2lvbnNHcm91cCIsIkNyZWF0ZVNjaGVkdWxlZFRhc2siLCJDcmVhdGVTZWFyY2hJbmRleCIsIkNyZWF0ZVN5c3RlbU1vZGVsIiwiQ3JlYXRlVGVtcG9yYXJ5IiwiQ3JlYXRlVVVJRCIsIkNyZWF0ZVdpbmRvdyIsIkNyaXRlcmlvbkZ1bmN0aW9uIiwiQ3JpdGljYWxpdHlGYWlsdXJlSW1wb3J0YW5jZSIsIkNyaXRpY2FsaXR5U3VjY2Vzc0ltcG9ydGFuY2UiLCJDcml0aWNhbFNlY3Rpb24iLCJDcm9zcyIsIkNyb3NzRW50cm9weUxvc3NMYXllciIsIkNyb3NzaW5nQ291bnQiLCJDcm9zc2luZ0RldGVjdCIsIkNyb3NzaW5nUG9seWdvbiIsIkNyb3NzTWF0cml4IiwiQ3NjIiwiQ3NjaCIsIkNUQ0xvc3NMYXllciIsIkN1YmUiLCJDdWJlUm9vdCIsIkN1YmljcyIsIkN1Ym9pZCIsIkN1Ym9pZEJveCIsIkN1bXVsYW50IiwiQ3VtdWxhbnRHZW5lcmF0aW5nRnVuY3Rpb24iLCJDdXAiLCJDdXBDYXAiLCJDdXJsIiwiQ3VybHlEb3VibGVRdW90ZSIsIkN1cmx5UXVvdGUiLCJDdXJyZW5jeUNvbnZlcnQiLCJDdXJyZW50RGF0ZSIsIkN1cnJlbnRJbWFnZSIsIkN1cnJlbnRseVNwZWFraW5nUGFja2V0IiwiQ3VycmVudE5vdGVib29rSW1hZ2UiLCJDdXJyZW50U2NyZWVuSW1hZ2UiLCJDdXJyZW50VmFsdWUiLCJDdXJyeSIsIkN1cnJ5QXBwbGllZCIsIkN1cnZhdHVyZUZsb3dGaWx0ZXIiLCJDdXJ2ZUNsb3NlZCIsIkN5YW4iLCJDeWNsZUdyYXBoIiwiQ3ljbGVJbmRleFBvbHlub21pYWwiLCJDeWNsZXMiLCJDeWNsaWNHcm91cCIsIkN5Y2xvdG9taWMiLCJDeWxpbmRlciIsIkN5bGluZGVyQm94IiwiQ3lsaW5kcmljYWxEZWNvbXBvc2l0aW9uIiwiRCIsIkRhZ3VtRGlzdHJpYnV0aW9uIiwiRGFtRGF0YSIsIkRhbWVyYXVMZXZlbnNodGVpbkRpc3RhbmNlIiwiRGFtcGluZ0ZhY3RvciIsIkRhcmtlciIsIkRhc2hlZCIsIkRhc2hpbmciLCJEYXRhYmFzZUNvbm5lY3QiLCJEYXRhYmFzZURpc2Nvbm5lY3QiLCJEYXRhYmFzZVJlZmVyZW5jZSIsIkRhdGFiaW4iLCJEYXRhYmluQWRkIiwiRGF0YWJpblJlbW92ZSIsIkRhdGFiaW5zIiwiRGF0YWJpblVwbG9hZCIsIkRhdGFDb21wcmVzc2lvbiIsIkRhdGFEaXN0cmlidXRpb24iLCJEYXRhUmFuZ2UiLCJEYXRhUmV2ZXJzZWQiLCJEYXRhc2V0IiwiRGF0YXNldERpc3BsYXlQYW5lbCIsIkRhdGFTdHJ1Y3R1cmUiLCJEYXRhU3RydWN0dXJlUSIsIkRhdGUiLCJEYXRlQm91bmRzIiwiRGF0ZWQiLCJEYXRlRGVsaW1pdGVycyIsIkRhdGVEaWZmZXJlbmNlIiwiRGF0ZWRVbml0IiwiRGF0ZUZvcm1hdCIsIkRhdGVGdW5jdGlvbiIsIkRhdGVIaXN0b2dyYW0iLCJEYXRlSW50ZXJ2YWwiLCJEYXRlTGlzdCIsIkRhdGVMaXN0TG9nUGxvdCIsIkRhdGVMaXN0UGxvdCIsIkRhdGVMaXN0U3RlcFBsb3QiLCJEYXRlT2JqZWN0IiwiRGF0ZU9iamVjdFEiLCJEYXRlT3ZlcmxhcHNRIiwiRGF0ZVBhdHRlcm4iLCJEYXRlUGx1cyIsIkRhdGVSYW5nZSIsIkRhdGVSZWR1Y3Rpb24iLCJEYXRlU3RyaW5nIiwiRGF0ZVRpY2tzRm9ybWF0IiwiRGF0ZVZhbHVlIiwiRGF0ZVdpdGhpblEiLCJEYXViZWNoaWVzV2F2ZWxldCIsIkRhdmlzRGlzdHJpYnV0aW9uIiwiRGF3c29uRiIsIkRheUNvdW50IiwiRGF5Q291bnRDb252ZW50aW9uIiwiRGF5SGVtaXNwaGVyZSIsIkRheWxpZ2h0USIsIkRheU1hdGNoUSIsIkRheU5hbWUiLCJEYXlOaWdodFRlcm1pbmF0b3IiLCJEYXlQbHVzIiwiRGF5UmFuZ2UiLCJEYXlSb3VuZCIsIkRlQnJ1aWpuR3JhcGgiLCJEZUJydWlqblNlcXVlbmNlIiwiRGVidWciLCJEZWJ1Z1RhZyIsIkRlY2FwaXRhbGl6ZSIsIkRlY2ltYWwiLCJEZWNpbWFsRm9ybSIsIkRlY2xhcmVLbm93blN5bWJvbHMiLCJEZWNsYXJlUGFja2FnZSIsIkRlY29tcG9zZSIsIkRlY29udm9sdXRpb25MYXllciIsIkRlY3JlbWVudCIsIkRlY3J5cHQiLCJEZWNyeXB0RmlsZSIsIkRlZGVraW5kRXRhIiwiRGVlcFNwYWNlUHJvYmVEYXRhIiwiRGVmYXVsdCIsIkRlZmF1bHRBeGVzU3R5bGUiLCJEZWZhdWx0QmFzZVN0eWxlIiwiRGVmYXVsdEJveFN0eWxlIiwiRGVmYXVsdEJ1dHRvbiIsIkRlZmF1bHRDb2xvciIsIkRlZmF1bHRDb250cm9sUGxhY2VtZW50IiwiRGVmYXVsdER1cGxpY2F0ZUNlbGxTdHlsZSIsIkRlZmF1bHREdXJhdGlvbiIsIkRlZmF1bHRFbGVtZW50IiwiRGVmYXVsdEZhY2VHcmlkc1N0eWxlIiwiRGVmYXVsdEZpZWxkSGludFN0eWxlIiwiRGVmYXVsdEZvbnQiLCJEZWZhdWx0Rm9udFByb3BlcnRpZXMiLCJEZWZhdWx0Rm9ybWF0VHlwZSIsIkRlZmF1bHRGb3JtYXRUeXBlRm9yU3R5bGUiLCJEZWZhdWx0RnJhbWVTdHlsZSIsIkRlZmF1bHRGcmFtZVRpY2tzU3R5bGUiLCJEZWZhdWx0R3JpZExpbmVzU3R5bGUiLCJEZWZhdWx0SW5saW5lRm9ybWF0VHlwZSIsIkRlZmF1bHRJbnB1dEZvcm1hdFR5cGUiLCJEZWZhdWx0TGFiZWxTdHlsZSIsIkRlZmF1bHRNZW51U3R5bGUiLCJEZWZhdWx0TmF0dXJhbExhbmd1YWdlIiwiRGVmYXVsdE5ld0NlbGxTdHlsZSIsIkRlZmF1bHROZXdJbmxpbmVDZWxsU3R5bGUiLCJEZWZhdWx0Tm90ZWJvb2siLCJEZWZhdWx0T3B0aW9ucyIsIkRlZmF1bHRPdXRwdXRGb3JtYXRUeXBlIiwiRGVmYXVsdFByaW50UHJlY2lzaW9uIiwiRGVmYXVsdFN0eWxlIiwiRGVmYXVsdFN0eWxlRGVmaW5pdGlvbnMiLCJEZWZhdWx0VGV4dEZvcm1hdFR5cGUiLCJEZWZhdWx0VGV4dElubGluZUZvcm1hdFR5cGUiLCJEZWZhdWx0VGlja3NTdHlsZSIsIkRlZmF1bHRUb29sdGlwU3R5bGUiLCJEZWZhdWx0VmFsdWUiLCJEZWZhdWx0VmFsdWVzIiwiRGVmZXIiLCJEZWZpbmVFeHRlcm5hbCIsIkRlZmluZUlucHV0U3RyZWFtTWV0aG9kIiwiRGVmaW5lT3V0cHV0U3RyZWFtTWV0aG9kIiwiRGVmaW5lUmVzb3VyY2VGdW5jdGlvbiIsIkRlZmluaXRpb24iLCJEZWdyZWUiLCJEZWdyZWVDZW50cmFsaXR5IiwiRGVncmVlR3JhcGhEaXN0cmlidXRpb24iLCJEZWdyZWVMZXhpY29ncmFwaGljIiwiRGVncmVlUmV2ZXJzZUxleGljb2dyYXBoaWMiLCJERWlnZW5zeXN0ZW0iLCJERWlnZW52YWx1ZXMiLCJEZWluaXRpYWxpemF0aW9uIiwiRGVsIiwiRGVsYXVuYXlNZXNoIiwiRGVsYXllZCIsIkRlbGV0YWJsZSIsIkRlbGV0ZSIsIkRlbGV0ZUFub21hbGllcyIsIkRlbGV0ZUJvcmRlckNvbXBvbmVudHMiLCJEZWxldGVDYXNlcyIsIkRlbGV0ZUNoYW5uZWwiLCJEZWxldGVDbG91ZEV4cHJlc3Npb24iLCJEZWxldGVDb250ZW50cyIsIkRlbGV0ZURpcmVjdG9yeSIsIkRlbGV0ZUR1cGxpY2F0ZXMiLCJEZWxldGVEdXBsaWNhdGVzQnkiLCJEZWxldGVGaWxlIiwiRGVsZXRlTWlzc2luZyIsIkRlbGV0ZU9iamVjdCIsIkRlbGV0ZVBlcm1pc3Npb25zS2V5IiwiRGVsZXRlU2VhcmNoSW5kZXgiLCJEZWxldGVTbWFsbENvbXBvbmVudHMiLCJEZWxldGVTdG9wd29yZHMiLCJEZWxldGVXaXRoQ29udGVudHMiLCJEZWxldGlvbldhcm5pbmciLCJEZWxpbWl0ZWRBcnJheSIsIkRlbGltaXRlZFNlcXVlbmNlIiwiRGVsaW1pdGVyIiwiRGVsaW1pdGVyRmxhc2hUaW1lIiwiRGVsaW1pdGVyTWF0Y2hpbmciLCJEZWxpbWl0ZXJzIiwiRGVsaXZlcnlGdW5jdGlvbiIsIkRlbmRyb2dyYW0iLCJEZW5vbWluYXRvciIsIkRlbnNpdHlHcmFwaGljcyIsIkRlbnNpdHlIaXN0b2dyYW0iLCJEZW5zaXR5UGxvdCIsIkRlbnNpdHlQbG90M0QiLCJEZXBlbmRlbnRWYXJpYWJsZXMiLCJEZXBsb3kiLCJEZXBsb3llZCIsIkRlcHRoIiwiRGVwdGhGaXJzdFNjYW4iLCJEZXJpdmF0aXZlIiwiRGVyaXZhdGl2ZUZpbHRlciIsIkRlcml2ZWRLZXkiLCJEZXNjcmlwdG9yU3RhdGVTcGFjZSIsIkRlc2lnbk1hdHJpeCIsIkRlc3Ryb3lBZnRlckV2YWx1YXRpb24iLCJEZXQiLCJEZXZpY2VDbG9zZSIsIkRldmljZUNvbmZpZ3VyZSIsIkRldmljZUV4ZWN1dGUiLCJEZXZpY2VFeGVjdXRlQXN5bmNocm9ub3VzIiwiRGV2aWNlT2JqZWN0IiwiRGV2aWNlT3BlbiIsIkRldmljZU9wZW5RIiwiRGV2aWNlUmVhZCIsIkRldmljZVJlYWRCdWZmZXIiLCJEZXZpY2VSZWFkTGF0ZXN0IiwiRGV2aWNlUmVhZExpc3QiLCJEZXZpY2VSZWFkVGltZVNlcmllcyIsIkRldmljZXMiLCJEZXZpY2VTdHJlYW1zIiwiRGV2aWNlV3JpdGUiLCJEZXZpY2VXcml0ZUJ1ZmZlciIsIkRHYXVzc2lhbldhdmVsZXQiLCJEaWFjcml0aWNhbFBvc2l0aW9uaW5nIiwiRGlhZ29uYWwiLCJEaWFnb25hbGl6YWJsZU1hdHJpeFEiLCJEaWFnb25hbE1hdHJpeCIsIkRpYWdvbmFsTWF0cml4USIsIkRpYWxvZyIsIkRpYWxvZ0luZGVudCIsIkRpYWxvZ0lucHV0IiwiRGlhbG9nTGV2ZWwiLCJEaWFsb2dOb3RlYm9vayIsIkRpYWxvZ1Byb2xvZyIsIkRpYWxvZ1JldHVybiIsIkRpYWxvZ1N5bWJvbHMiLCJEaWFtb25kIiwiRGlhbW9uZE1hdHJpeCIsIkRpY2VEaXNzaW1pbGFyaXR5IiwiRGljdGlvbmFyeUxvb2t1cCIsIkRpY3Rpb25hcnlXb3JkUSIsIkRpZmZlcmVuY2VEZWx0YSIsIkRpZmZlcmVuY2VPcmRlciIsIkRpZmZlcmVuY2VRdW90aWVudCIsIkRpZmZlcmVuY2VSb290IiwiRGlmZmVyZW5jZVJvb3RSZWR1Y2UiLCJEaWZmZXJlbmNlcyIsIkRpZmZlcmVudGlhbEQiLCJEaWZmZXJlbnRpYWxSb290IiwiRGlmZmVyZW50aWFsUm9vdFJlZHVjZSIsIkRpZmZlcmVudGlhdG9yRmlsdGVyIiwiRGlnaXRhbFNpZ25hdHVyZSIsIkRpZ2l0QmxvY2siLCJEaWdpdEJsb2NrTWluaW11bSIsIkRpZ2l0Q2hhcmFjdGVyIiwiRGlnaXRDb3VudCIsIkRpZ2l0USIsIkRpaGVkcmFsQW5nbGUiLCJEaWhlZHJhbEdyb3VwIiwiRGlsYXRpb24iLCJEaW1lbnNpb25hbENvbWJpbmF0aW9ucyIsIkRpbWVuc2lvbmFsTWVzaENvbXBvbmVudHMiLCJEaW1lbnNpb25SZWR1Y2UiLCJEaW1lbnNpb25SZWR1Y2VyRnVuY3Rpb24iLCJEaW1lbnNpb25SZWR1Y3Rpb24iLCJEaW1lbnNpb25zIiwiRGlyYWNDb21iIiwiRGlyYWNEZWx0YSIsIkRpcmVjdGVkRWRnZSIsIkRpcmVjdGVkRWRnZXMiLCJEaXJlY3RlZEdyYXBoIiwiRGlyZWN0ZWRHcmFwaFEiLCJEaXJlY3RlZEluZmluaXR5IiwiRGlyZWN0aW9uIiwiRGlyZWN0aXZlIiwiRGlyZWN0b3J5IiwiRGlyZWN0b3J5TmFtZSIsIkRpcmVjdG9yeVEiLCJEaXJlY3RvcnlTdGFjayIsIkRpcmljaGxldEJldGEiLCJEaXJpY2hsZXRDaGFyYWN0ZXIiLCJEaXJpY2hsZXRDb25kaXRpb24iLCJEaXJpY2hsZXRDb252b2x2ZSIsIkRpcmljaGxldERpc3RyaWJ1dGlvbiIsIkRpcmljaGxldEV0YSIsIkRpcmljaGxldEwiLCJEaXJpY2hsZXRMYW1iZGEiLCJEaXJpY2hsZXRUcmFuc2Zvcm0iLCJEaXJpY2hsZXRXaW5kb3ciLCJEaXNhYmxlQ29uc29sZVByaW50UGFja2V0IiwiRGlzYWJsZUZvcm1hdHRpbmciLCJEaXNjcmV0ZUFzeW1wdG90aWMiLCJEaXNjcmV0ZUNoaXJwWlRyYW5zZm9ybSIsIkRpc2NyZXRlQ29udm9sdmUiLCJEaXNjcmV0ZURlbHRhIiwiRGlzY3JldGVIYWRhbWFyZFRyYW5zZm9ybSIsIkRpc2NyZXRlSW5kaWNhdG9yIiwiRGlzY3JldGVMaW1pdCIsIkRpc2NyZXRlTFFFc3RpbWF0b3JHYWlucyIsIkRpc2NyZXRlTFFSZWd1bGF0b3JHYWlucyIsIkRpc2NyZXRlTHlhcHVub3ZTb2x2ZSIsIkRpc2NyZXRlTWFya292UHJvY2VzcyIsIkRpc2NyZXRlTWF4TGltaXQiLCJEaXNjcmV0ZU1pbkxpbWl0IiwiRGlzY3JldGVQbG90IiwiRGlzY3JldGVQbG90M0QiLCJEaXNjcmV0ZVJhdGlvIiwiRGlzY3JldGVSaWNjYXRpU29sdmUiLCJEaXNjcmV0ZVNoaWZ0IiwiRGlzY3JldGVUaW1lTW9kZWxRIiwiRGlzY3JldGVVbmlmb3JtRGlzdHJpYnV0aW9uIiwiRGlzY3JldGVWYXJpYWJsZXMiLCJEaXNjcmV0ZVdhdmVsZXREYXRhIiwiRGlzY3JldGVXYXZlbGV0UGFja2V0VHJhbnNmb3JtIiwiRGlzY3JldGVXYXZlbGV0VHJhbnNmb3JtIiwiRGlzY3JldGl6ZUdyYXBoaWNzIiwiRGlzY3JldGl6ZVJlZ2lvbiIsIkRpc2NyaW1pbmFudCIsIkRpc2pvaW50USIsIkRpc2p1bmN0aW9uIiwiRGlzayIsIkRpc2tCb3giLCJEaXNrTWF0cml4IiwiRGlza1NlZ21lbnQiLCJEaXNwYXRjaCIsIkRpc3BhdGNoUSIsIkRpc3BlcnNpb25Fc3RpbWF0b3JGdW5jdGlvbiIsIkRpc3BsYXkiLCJEaXNwbGF5QWxsU3RlcHMiLCJEaXNwbGF5RW5kUGFja2V0IiwiRGlzcGxheUZsdXNoSW1hZ2VQYWNrZXQiLCJEaXNwbGF5Rm9ybSIsIkRpc3BsYXlGdW5jdGlvbiIsIkRpc3BsYXlQYWNrZXQiLCJEaXNwbGF5UnVsZXMiLCJEaXNwbGF5U2V0U2l6ZVBhY2tldCIsIkRpc3BsYXlTdHJpbmciLCJEaXNwbGF5VGVtcG9yYXJ5IiwiRGlzcGxheVdpdGgiLCJEaXNwbGF5V2l0aFJlZiIsIkRpc3BsYXlXaXRoVmFyaWFibGUiLCJEaXN0YW5jZUZ1bmN0aW9uIiwiRGlzdGFuY2VNYXRyaXgiLCJEaXN0YW5jZVRyYW5zZm9ybSIsIkRpc3RyaWJ1dGUiLCJEaXN0cmlidXRlZCIsIkRpc3RyaWJ1dGVkQ29udGV4dHMiLCJEaXN0cmlidXRlRGVmaW5pdGlvbnMiLCJEaXN0cmlidXRpb25DaGFydCIsIkRpc3RyaWJ1dGlvbkRvbWFpbiIsIkRpc3RyaWJ1dGlvbkZpdFRlc3QiLCJEaXN0cmlidXRpb25QYXJhbWV0ZXJBc3N1bXB0aW9ucyIsIkRpc3RyaWJ1dGlvblBhcmFtZXRlclEiLCJEaXRoZXJpbmciLCJEaXYiLCJEaXZlcmdlbmNlIiwiRGl2aWRlIiwiRGl2aWRlQnkiLCJEaXZpZGVycyIsIkRpdmlkZVNpZGVzIiwiRGl2aXNpYmxlIiwiRGl2aXNvcnMiLCJEaXZpc29yU2lnbWEiLCJEaXZpc29yU3VtIiwiRE1TTGlzdCIsIkRNU1N0cmluZyIsIkRvIiwiRG9ja2VkQ2VsbHMiLCJEb2N1bWVudEdlbmVyYXRvciIsIkRvY3VtZW50R2VuZXJhdG9ySW5mb3JtYXRpb24iLCJEb2N1bWVudEdlbmVyYXRvckluZm9ybWF0aW9uRGF0YSIsIkRvY3VtZW50R2VuZXJhdG9ycyIsIkRvY3VtZW50Tm90ZWJvb2siLCJEb2N1bWVudFdlaWdodGluZ1J1bGVzIiwiRG9kZWNhaGVkcm9uIiwiRG9tYWluUmVnaXN0cmF0aW9uSW5mb3JtYXRpb24iLCJEb21pbmFudENvbG9ycyIsIkRPU1RleHRGb3JtYXQiLCJEb3QiLCJEb3REYXNoZWQiLCJEb3RFcXVhbCIsIkRvdExheWVyIiwiRG90UGx1c0xheWVyIiwiRG90dGVkIiwiRG91YmxlQnJhY2tldGluZ0JhciIsIkRvdWJsZUNvbnRvdXJJbnRlZ3JhbCIsIkRvdWJsZURvd25BcnJvdyIsIkRvdWJsZUxlZnRBcnJvdyIsIkRvdWJsZUxlZnRSaWdodEFycm93IiwiRG91YmxlTGVmdFRlZSIsIkRvdWJsZUxvbmdMZWZ0QXJyb3ciLCJEb3VibGVMb25nTGVmdFJpZ2h0QXJyb3ciLCJEb3VibGVMb25nUmlnaHRBcnJvdyIsIkRvdWJsZVJpZ2h0QXJyb3ciLCJEb3VibGVSaWdodFRlZSIsIkRvdWJsZVVwQXJyb3ciLCJEb3VibGVVcERvd25BcnJvdyIsIkRvdWJsZVZlcnRpY2FsQmFyIiwiRG91Ymx5SW5maW5pdGUiLCJEb3duIiwiRG93bkFycm93IiwiRG93bkFycm93QmFyIiwiRG93bkFycm93VXBBcnJvdyIsIkRvd25MZWZ0UmlnaHRWZWN0b3IiLCJEb3duTGVmdFRlZVZlY3RvciIsIkRvd25MZWZ0VmVjdG9yIiwiRG93bkxlZnRWZWN0b3JCYXIiLCJEb3duUmlnaHRUZWVWZWN0b3IiLCJEb3duUmlnaHRWZWN0b3IiLCJEb3duUmlnaHRWZWN0b3JCYXIiLCJEb3duc2FtcGxlIiwiRG93blRlZSIsIkRvd25UZWVBcnJvdyIsIkRvd25WYWx1ZXMiLCJEcmFnQW5kRHJvcCIsIkRyYXdFZGdlcyIsIkRyYXdGcm9udEZhY2VzIiwiRHJhd0hpZ2hsaWdodGVkIiwiRHJvcCIsIkRyb3BvdXRMYXllciIsIkRTb2x2ZSIsIkRTb2x2ZVZhbHVlIiwiRHQiLCJEdWFsTGluZWFyUHJvZ3JhbW1pbmciLCJEdWFsUG9seWhlZHJvbiIsIkR1YWxTeXN0ZW1zTW9kZWwiLCJEdW1wR2V0IiwiRHVtcFNhdmUiLCJEdXBsaWNhdGVGcmVlUSIsIkR1cmF0aW9uIiwiRHluYW1pYyIsIkR5bmFtaWNCb3giLCJEeW5hbWljQm94T3B0aW9ucyIsIkR5bmFtaWNFdmFsdWF0aW9uVGltZW91dCIsIkR5bmFtaWNHZW9HcmFwaGljcyIsIkR5bmFtaWNJbWFnZSIsIkR5bmFtaWNMb2NhdGlvbiIsIkR5bmFtaWNNb2R1bGUiLCJEeW5hbWljTW9kdWxlQm94IiwiRHluYW1pY01vZHVsZUJveE9wdGlvbnMiLCJEeW5hbWljTW9kdWxlUGFyZW50IiwiRHluYW1pY01vZHVsZVZhbHVlcyIsIkR5bmFtaWNOYW1lIiwiRHluYW1pY05hbWVzcGFjZSIsIkR5bmFtaWNSZWZlcmVuY2UiLCJEeW5hbWljU2V0dGluZyIsIkR5bmFtaWNVcGRhdGluZyIsIkR5bmFtaWNXcmFwcGVyIiwiRHluYW1pY1dyYXBwZXJCb3giLCJEeW5hbWljV3JhcHBlckJveE9wdGlvbnMiLCJFIiwiRWFydGhJbXBhY3REYXRhIiwiRWFydGhxdWFrZURhdGEiLCJFY2NlbnRyaWNpdHlDZW50cmFsaXR5IiwiRWNobyIsIkVjaG9GdW5jdGlvbiIsIkVjbGlwc2VUeXBlIiwiRWRnZUFkZCIsIkVkZ2VCZXR3ZWVubmVzc0NlbnRyYWxpdHkiLCJFZGdlQ2FwYWNpdHkiLCJFZGdlQ2FwRm9ybSIsIkVkZ2VDb2xvciIsIkVkZ2VDb25uZWN0aXZpdHkiLCJFZGdlQ29udHJhY3QiLCJFZGdlQ29zdCIsIkVkZ2VDb3VudCIsIkVkZ2VDb3ZlclEiLCJFZGdlQ3ljbGVNYXRyaXgiLCJFZGdlRGFzaGluZyIsIkVkZ2VEZWxldGUiLCJFZGdlRGV0ZWN0IiwiRWRnZUZvcm0iLCJFZGdlSW5kZXgiLCJFZGdlSm9pbkZvcm0iLCJFZGdlTGFiZWxpbmciLCJFZGdlTGFiZWxzIiwiRWRnZUxhYmVsU3R5bGUiLCJFZGdlTGlzdCIsIkVkZ2VPcGFjaXR5IiwiRWRnZVEiLCJFZGdlUmVuZGVyaW5nRnVuY3Rpb24iLCJFZGdlUnVsZXMiLCJFZGdlU2hhcGVGdW5jdGlvbiIsIkVkZ2VTdHlsZSIsIkVkZ2VUYWdnZWRHcmFwaCIsIkVkZ2VUYWdnZWRHcmFwaFEiLCJFZGdlVGFncyIsIkVkZ2VUaGlja25lc3MiLCJFZGdlV2VpZ2h0IiwiRWRnZVdlaWdodGVkR3JhcGhRIiwiRWRpdGFibGUiLCJFZGl0QnV0dG9uU2V0dGluZ3MiLCJFZGl0Q2VsbFRhZ3NTZXR0aW5ncyIsIkVkaXREaXN0YW5jZSIsIkVmZmVjdGl2ZUludGVyZXN0IiwiRWlnZW5zeXN0ZW0iLCJFaWdlbnZhbHVlcyIsIkVpZ2VudmVjdG9yQ2VudHJhbGl0eSIsIkVpZ2VudmVjdG9ycyIsIkVsZW1lbnQiLCJFbGVtZW50RGF0YSIsIkVsZW1lbnR3aXNlTGF5ZXIiLCJFbGlkZWRGb3JtcyIsIkVsaW1pbmF0ZSIsIkVsaW1pbmF0aW9uT3JkZXIiLCJFbGxpcHNvaWQiLCJFbGxpcHRpY0UiLCJFbGxpcHRpY0V4cCIsIkVsbGlwdGljRXhwUHJpbWUiLCJFbGxpcHRpY0YiLCJFbGxpcHRpY0ZpbHRlck1vZGVsIiwiRWxsaXB0aWNLIiwiRWxsaXB0aWNMb2ciLCJFbGxpcHRpY05vbWVRIiwiRWxsaXB0aWNQaSIsIkVsbGlwdGljUmVkdWNlZEhhbGZQZXJpb2RzIiwiRWxsaXB0aWNUaGV0YSIsIkVsbGlwdGljVGhldGFQcmltZSIsIkVtYmVkQ29kZSIsIkVtYmVkZGVkSFRNTCIsIkVtYmVkZGVkU2VydmljZSIsIkVtYmVkZGluZ0xheWVyIiwiRW1iZWRkaW5nT2JqZWN0IiwiRW1pdFNvdW5kIiwiRW1waGFzaXplU3ludGF4RXJyb3JzIiwiRW1waXJpY2FsRGlzdHJpYnV0aW9uIiwiRW1wdHkiLCJFbXB0eUdyYXBoUSIsIkVtcHR5UmVnaW9uIiwiRW5hYmxlQ29uc29sZVByaW50UGFja2V0IiwiRW5hYmxlZCIsIkVuY29kZSIsIkVuY3J5cHQiLCJFbmNyeXB0ZWRPYmplY3QiLCJFbmNyeXB0RmlsZSIsIkVuZCIsIkVuZEFkZCIsIkVuZERpYWxvZ1BhY2tldCIsIkVuZEZyb250RW5kSW50ZXJhY3Rpb25QYWNrZXQiLCJFbmRPZkJ1ZmZlciIsIkVuZE9mRmlsZSIsIkVuZE9mTGluZSIsIkVuZE9mU3RyaW5nIiwiRW5kUGFja2FnZSIsIkVuZ2luZUVudmlyb25tZW50IiwiRW5naW5lZXJpbmdGb3JtIiwiRW50ZXIiLCJFbnRlckV4cHJlc3Npb25QYWNrZXQiLCJFbnRlclRleHRQYWNrZXQiLCJFbnRpdHkiLCJFbnRpdHlDbGFzcyIsIkVudGl0eUNsYXNzTGlzdCIsIkVudGl0eUNvcGllcyIsIkVudGl0eUZ1bmN0aW9uIiwiRW50aXR5R3JvdXAiLCJFbnRpdHlJbnN0YW5jZSIsIkVudGl0eUxpc3QiLCJFbnRpdHlQcmVmZXRjaCIsIkVudGl0eVByb3BlcnRpZXMiLCJFbnRpdHlQcm9wZXJ0eSIsIkVudGl0eVByb3BlcnR5Q2xhc3MiLCJFbnRpdHlSZWdpc3RlciIsIkVudGl0eVN0b3JlIiwiRW50aXR5U3RvcmVzIiwiRW50aXR5VHlwZU5hbWUiLCJFbnRpdHlVbnJlZ2lzdGVyIiwiRW50aXR5VmFsdWUiLCJFbnRyb3B5IiwiRW50cm9weUZpbHRlciIsIkVudmlyb25tZW50IiwiRXBpbG9nIiwiRXBpbG9nRnVuY3Rpb24iLCJFcXVhbCIsIkVxdWFsQ29sdW1ucyIsIkVxdWFsUm93cyIsIkVxdWFsVGlsZGUiLCJFcXVhbFRvIiwiRXF1YXRlZFRvIiwiRXF1aWxpYnJpdW0iLCJFcXVpcmlwcGxlRmlsdGVyS2VybmVsIiwiRXF1aXZhbGVudCIsIkVyZiIsIkVyZmMiLCJFcmZpIiwiRXJsYW5nQiIsIkVybGFuZ0MiLCJFcmxhbmdEaXN0cmlidXRpb24iLCJFcm9zaW9uIiwiRXJyb3JCb3giLCJFcnJvckJveE9wdGlvbnMiLCJFcnJvck5vcm0iLCJFcnJvclBhY2tldCIsIkVycm9yc0RpYWxvZ1NldHRpbmdzIiwiRXNjYXBlUmFkaXVzIiwiRXN0aW1hdGVkQmFja2dyb3VuZCIsIkVzdGltYXRlZERpc3RyaWJ1dGlvbiIsIkVzdGltYXRlZFByb2Nlc3MiLCJFc3RpbWF0b3JHYWlucyIsIkVzdGltYXRvclJlZ3VsYXRvciIsIkV1Y2xpZGVhbkRpc3RhbmNlIiwiRXVsZXJBbmdsZXMiLCJFdWxlckNoYXJhY3RlcmlzdGljIiwiRXVsZXJFIiwiRXVsZXJHYW1tYSIsIkV1bGVyaWFuR3JhcGhRIiwiRXVsZXJNYXRyaXgiLCJFdWxlclBoaSIsIkV2YWx1YXRhYmxlIiwiRXZhbHVhdGUiLCJFdmFsdWF0ZWQiLCJFdmFsdWF0ZVBhY2tldCIsIkV2YWx1YXRlU2NoZWR1bGVkVGFzayIsIkV2YWx1YXRpb25Cb3giLCJFdmFsdWF0aW9uQ2VsbCIsIkV2YWx1YXRpb25Db21wbGV0aW9uQWN0aW9uIiwiRXZhbHVhdGlvbkRhdGEiLCJFdmFsdWF0aW9uRWxlbWVudHMiLCJFdmFsdWF0aW9uRW52aXJvbm1lbnQiLCJFdmFsdWF0aW9uTW9kZSIsIkV2YWx1YXRpb25Nb25pdG9yIiwiRXZhbHVhdGlvbk5vdGVib29rIiwiRXZhbHVhdGlvbk9iamVjdCIsIkV2YWx1YXRpb25PcmRlciIsIkV2YWx1YXRvciIsIkV2YWx1YXRvck5hbWVzIiwiRXZlblEiLCJFdmVudERhdGEiLCJFdmVudEV2YWx1YXRvciIsIkV2ZW50SGFuZGxlciIsIkV2ZW50SGFuZGxlclRhZyIsIkV2ZW50TGFiZWxzIiwiRXZlbnRTZXJpZXMiLCJFeGFjdEJsYWNrbWFuV2luZG93IiwiRXhhY3ROdW1iZXJRIiwiRXhhY3RSb290SXNvbGF0aW9uIiwiRXhhbXBsZURhdGEiLCJFeGNlcHQiLCJFeGNsdWRlZEZvcm1zIiwiRXhjbHVkZWRMaW5lcyIsIkV4Y2x1ZGVkUGh5c2ljYWxRdWFudGl0aWVzIiwiRXhjbHVkZVBvZHMiLCJFeGNsdXNpb25zIiwiRXhjbHVzaW9uc1N0eWxlIiwiRXhpc3RzIiwiRXhpdCIsIkV4aXREaWFsb2ciLCJFeG9wbGFuZXREYXRhIiwiRXhwIiwiRXhwYW5kIiwiRXhwYW5kQWxsIiwiRXhwYW5kRGVub21pbmF0b3IiLCJFeHBhbmRGaWxlTmFtZSIsIkV4cGFuZE51bWVyYXRvciIsIkV4cGVjdGF0aW9uIiwiRXhwZWN0YXRpb25FIiwiRXhwZWN0ZWRWYWx1ZSIsIkV4cEdhbW1hRGlzdHJpYnV0aW9uIiwiRXhwSW50ZWdyYWxFIiwiRXhwSW50ZWdyYWxFaSIsIkV4cGlyYXRpb25EYXRlIiwiRXhwb25lbnQiLCJFeHBvbmVudEZ1bmN0aW9uIiwiRXhwb25lbnRpYWxEaXN0cmlidXRpb24iLCJFeHBvbmVudGlhbEZhbWlseSIsIkV4cG9uZW50aWFsR2VuZXJhdGluZ0Z1bmN0aW9uIiwiRXhwb25lbnRpYWxNb3ZpbmdBdmVyYWdlIiwiRXhwb25lbnRpYWxQb3dlckRpc3RyaWJ1dGlvbiIsIkV4cG9uZW50UG9zaXRpb24iLCJFeHBvbmVudFN0ZXAiLCJFeHBvcnQiLCJFeHBvcnRBdXRvUmVwbGFjZW1lbnRzIiwiRXhwb3J0Qnl0ZUFycmF5IiwiRXhwb3J0Rm9ybSIsIkV4cG9ydFBhY2tldCIsIkV4cG9ydFN0cmluZyIsIkV4cHJlc3Npb24iLCJFeHByZXNzaW9uQ2VsbCIsIkV4cHJlc3Npb25HcmFwaCIsIkV4cHJlc3Npb25QYWNrZXQiLCJFeHByZXNzaW9uVVVJRCIsIkV4cFRvVHJpZyIsIkV4dGVuZGVkRW50aXR5Q2xhc3MiLCJFeHRlbmRlZEdDRCIsIkV4dGVuc2lvbiIsIkV4dGVudEVsZW1lbnRGdW5jdGlvbiIsIkV4dGVudE1hcmtlcnMiLCJFeHRlbnRTaXplIiwiRXh0ZXJuYWxCdW5kbGUiLCJFeHRlcm5hbENhbGwiLCJFeHRlcm5hbERhdGFDaGFyYWN0ZXJFbmNvZGluZyIsIkV4dGVybmFsRXZhbHVhdGUiLCJFeHRlcm5hbEZ1bmN0aW9uIiwiRXh0ZXJuYWxGdW5jdGlvbk5hbWUiLCJFeHRlcm5hbElkZW50aWZpZXIiLCJFeHRlcm5hbE9iamVjdCIsIkV4dGVybmFsT3B0aW9ucyIsIkV4dGVybmFsU2Vzc2lvbk9iamVjdCIsIkV4dGVybmFsU2Vzc2lvbnMiLCJFeHRlcm5hbFN0b3JhZ2VCYXNlIiwiRXh0ZXJuYWxTdG9yYWdlRG93bmxvYWQiLCJFeHRlcm5hbFN0b3JhZ2VHZXQiLCJFeHRlcm5hbFN0b3JhZ2VPYmplY3QiLCJFeHRlcm5hbFN0b3JhZ2VQdXQiLCJFeHRlcm5hbFN0b3JhZ2VVcGxvYWQiLCJFeHRlcm5hbFR5cGVTaWduYXR1cmUiLCJFeHRlcm5hbFZhbHVlIiwiRXh0cmFjdCIsIkV4dHJhY3RBcmNoaXZlIiwiRXh0cmFjdExheWVyIiwiRXh0cmFjdFBhY2xldEFyY2hpdmUiLCJFeHRyZW1lVmFsdWVEaXN0cmlidXRpb24iLCJGYWNlQWxpZ24iLCJGYWNlRm9ybSIsIkZhY2VHcmlkcyIsIkZhY2VHcmlkc1N0eWxlIiwiRmFjaWFsRmVhdHVyZXMiLCJGYWN0b3IiLCJGYWN0b3JDb21wbGV0ZSIsIkZhY3RvcmlhbCIsIkZhY3RvcmlhbDIiLCJGYWN0b3JpYWxNb21lbnQiLCJGYWN0b3JpYWxNb21lbnRHZW5lcmF0aW5nRnVuY3Rpb24iLCJGYWN0b3JpYWxQb3dlciIsIkZhY3RvckludGVnZXIiLCJGYWN0b3JMaXN0IiwiRmFjdG9yU3F1YXJlRnJlZSIsIkZhY3RvclNxdWFyZUZyZWVMaXN0IiwiRmFjdG9yVGVybXMiLCJGYWN0b3JUZXJtc0xpc3QiLCJGYWlsIiwiRmFpbHVyZSIsIkZhaWx1cmVBY3Rpb24iLCJGYWlsdXJlRGlzdHJpYnV0aW9uIiwiRmFpbHVyZVEiLCJGYWxzZSIsIkZhcmV5U2VxdWVuY2UiLCJGQVJJTUFQcm9jZXNzIiwiRmVhdHVyZURpc3RhbmNlIiwiRmVhdHVyZUV4dHJhY3QiLCJGZWF0dXJlRXh0cmFjdGlvbiIsIkZlYXR1cmVFeHRyYWN0b3IiLCJGZWF0dXJlRXh0cmFjdG9yRnVuY3Rpb24iLCJGZWF0dXJlTmFtZXMiLCJGZWF0dXJlTmVhcmVzdCIsIkZlYXR1cmVTcGFjZVBsb3QiLCJGZWF0dXJlU3BhY2VQbG90M0QiLCJGZWF0dXJlVHlwZXMiLCJGRURpc2FibGVDb25zb2xlUHJpbnRQYWNrZXQiLCJGZWVkYmFja0xpbmVhcml6ZSIsIkZlZWRiYWNrU2VjdG9yIiwiRmVlZGJhY2tTZWN0b3JTdHlsZSIsIkZlZWRiYWNrVHlwZSIsIkZFRW5hYmxlQ29uc29sZVByaW50UGFja2V0IiwiRmV0YWxHcm93dGhEYXRhIiwiRmlib25hY2NpIiwiRmlib25vcmlhbCIsIkZpZWxkQ29tcGxldGlvbkZ1bmN0aW9uIiwiRmllbGRIaW50IiwiRmllbGRIaW50U3R5bGUiLCJGaWVsZE1hc2tlZCIsIkZpZWxkU2l6ZSIsIkZpbGUiLCJGaWxlQmFzZU5hbWUiLCJGaWxlQnl0ZUNvdW50IiwiRmlsZUNvbnZlcnQiLCJGaWxlRGF0ZSIsIkZpbGVFeGlzdHNRIiwiRmlsZUV4dGVuc2lvbiIsIkZpbGVGb3JtYXQiLCJGaWxlSGFuZGxlciIsIkZpbGVIYXNoIiwiRmlsZUluZm9ybWF0aW9uIiwiRmlsZU5hbWUiLCJGaWxlTmFtZURlcHRoIiwiRmlsZU5hbWVEaWFsb2dTZXR0aW5ncyIsIkZpbGVOYW1lRHJvcCIsIkZpbGVOYW1lRm9ybXMiLCJGaWxlTmFtZUpvaW4iLCJGaWxlTmFtZXMiLCJGaWxlTmFtZVNldHRlciIsIkZpbGVOYW1lU3BsaXQiLCJGaWxlTmFtZVRha2UiLCJGaWxlUHJpbnQiLCJGaWxlU2l6ZSIsIkZpbGVTeXN0ZW1NYXAiLCJGaWxlU3lzdGVtU2NhbiIsIkZpbGVUZW1wbGF0ZSIsIkZpbGVUZW1wbGF0ZUFwcGx5IiwiRmlsZVR5cGUiLCJGaWxsZWRDdXJ2ZSIsIkZpbGxlZEN1cnZlQm94IiwiRmlsbGVkQ3VydmVCb3hPcHRpb25zIiwiRmlsbGluZyIsIkZpbGxpbmdTdHlsZSIsIkZpbGxpbmdUcmFuc2Zvcm0iLCJGaWx0ZXJlZEVudGl0eUNsYXNzIiwiRmlsdGVyUnVsZXMiLCJGaW5hbmNpYWxCb25kIiwiRmluYW5jaWFsRGF0YSIsIkZpbmFuY2lhbERlcml2YXRpdmUiLCJGaW5hbmNpYWxJbmRpY2F0b3IiLCJGaW5kIiwiRmluZEFub21hbGllcyIsIkZpbmRBcmdNYXgiLCJGaW5kQXJnTWluIiwiRmluZENoYW5uZWxzIiwiRmluZENsaXF1ZSIsIkZpbmRDbHVzdGVycyIsIkZpbmRDb29raWVzIiwiRmluZEN1cnZlUGF0aCIsIkZpbmRDeWNsZSIsIkZpbmREZXZpY2VzIiwiRmluZERpc3RyaWJ1dGlvbiIsIkZpbmREaXN0cmlidXRpb25QYXJhbWV0ZXJzIiwiRmluZERpdmlzaW9ucyIsIkZpbmRFZGdlQ292ZXIiLCJGaW5kRWRnZUN1dCIsIkZpbmRFZGdlSW5kZXBlbmRlbnRQYXRocyIsIkZpbmRFcXVhdGlvbmFsUHJvb2YiLCJGaW5kRXVsZXJpYW5DeWNsZSIsIkZpbmRFeHRlcm5hbEV2YWx1YXRvcnMiLCJGaW5kRmFjZXMiLCJGaW5kRmlsZSIsIkZpbmRGaXQiLCJGaW5kRm9ybXVsYSIsIkZpbmRGdW5kYW1lbnRhbEN5Y2xlcyIsIkZpbmRHZW5lcmF0aW5nRnVuY3Rpb24iLCJGaW5kR2VvTG9jYXRpb24iLCJGaW5kR2VvbWV0cmljQ29uamVjdHVyZXMiLCJGaW5kR2VvbWV0cmljVHJhbnNmb3JtIiwiRmluZEdyYXBoQ29tbXVuaXRpZXMiLCJGaW5kR3JhcGhJc29tb3JwaGlzbSIsIkZpbmRHcmFwaFBhcnRpdGlvbiIsIkZpbmRIYW1pbHRvbmlhbkN5Y2xlIiwiRmluZEhhbWlsdG9uaWFuUGF0aCIsIkZpbmRIaWRkZW5NYXJrb3ZTdGF0ZXMiLCJGaW5kSW1hZ2VUZXh0IiwiRmluZEluZGVwZW5kZW50RWRnZVNldCIsIkZpbmRJbmRlcGVuZGVudFZlcnRleFNldCIsIkZpbmRJbnN0YW5jZSIsIkZpbmRJbnRlZ2VyTnVsbFZlY3RvciIsIkZpbmRLQ2xhbiIsIkZpbmRLQ2xpcXVlIiwiRmluZEtDbHViIiwiRmluZEtQbGV4IiwiRmluZExpYnJhcnkiLCJGaW5kTGluZWFyUmVjdXJyZW5jZSIsIkZpbmRMaXN0IiwiRmluZE1hdGNoaW5nQ29sb3IiLCJGaW5kTWF4aW11bSIsIkZpbmRNYXhpbXVtQ3V0IiwiRmluZE1heGltdW1GbG93IiwiRmluZE1heFZhbHVlIiwiRmluZE1lc2hEZWZlY3RzIiwiRmluZE1pbmltdW0iLCJGaW5kTWluaW11bUNvc3RGbG93IiwiRmluZE1pbmltdW1DdXQiLCJGaW5kTWluVmFsdWUiLCJGaW5kTW9sZWN1bGVTdWJzdHJ1Y3R1cmUiLCJGaW5kUGF0aCIsIkZpbmRQZWFrcyIsIkZpbmRQZXJtdXRhdGlvbiIsIkZpbmRQb3N0bWFuVG91ciIsIkZpbmRQcm9jZXNzUGFyYW1ldGVycyIsIkZpbmRSZXBlYXQiLCJGaW5kUm9vdCIsIkZpbmRTZXF1ZW5jZUZ1bmN0aW9uIiwiRmluZFNldHRpbmdzIiwiRmluZFNob3J0ZXN0UGF0aCIsIkZpbmRTaG9ydGVzdFRvdXIiLCJGaW5kU3Bhbm5pbmdUcmVlIiwiRmluZFN5c3RlbU1vZGVsRXF1aWxpYnJpdW0iLCJGaW5kVGV4dHVhbEFuc3dlciIsIkZpbmRUaHJlc2hvbGQiLCJGaW5kVHJhbnNpZW50UmVwZWF0IiwiRmluZFZlcnRleENvdmVyIiwiRmluZFZlcnRleEN1dCIsIkZpbmRWZXJ0ZXhJbmRlcGVuZGVudFBhdGhzIiwiRmluZSIsIkZpbmlzaER5bmFtaWMiLCJGaW5pdGVBYmVsaWFuR3JvdXBDb3VudCIsIkZpbml0ZUdyb3VwQ291bnQiLCJGaW5pdGVHcm91cERhdGEiLCJGaXJzdCIsIkZpcnN0Q2FzZSIsIkZpcnN0UGFzc2FnZVRpbWVEaXN0cmlidXRpb24iLCJGaXJzdFBvc2l0aW9uIiwiRmlzY2hlckdyb3VwRmkyMiIsIkZpc2NoZXJHcm91cEZpMjMiLCJGaXNjaGVyR3JvdXBGaTI0UHJpbWUiLCJGaXNoZXJIeXBlcmdlb21ldHJpY0Rpc3RyaWJ1dGlvbiIsIkZpc2hlclJhdGlvVGVzdCIsIkZpc2hlclpEaXN0cmlidXRpb24iLCJGaXQiLCJGaXRBbGwiLCJGaXRSZWd1bGFyaXphdGlvbiIsIkZpdHRlZE1vZGVsIiwiRml4ZWRPcmRlciIsIkZpeGVkUG9pbnQiLCJGaXhlZFBvaW50TGlzdCIsIkZsYXNoU2VsZWN0aW9uIiwiRmxhdCIsIkZsYXR0ZW4iLCJGbGF0dGVuQXQiLCJGbGF0dGVuTGF5ZXIiLCJGbGF0VG9wV2luZG93IiwiRmxpcFZpZXciLCJGbG9vciIsIkZsb3dQb2x5bm9taWFsIiwiRmx1c2hQcmludE91dHB1dFBhY2tldCIsIkZvbGQiLCJGb2xkTGlzdCIsIkZvbGRQYWlyIiwiRm9sZFBhaXJMaXN0IiwiRm9sbG93UmVkaXJlY3RzIiwiRm9udCIsIkZvbnRDb2xvciIsIkZvbnRGYW1pbHkiLCJGb250Rm9ybSIsIkZvbnROYW1lIiwiRm9udE9wYWNpdHkiLCJGb250UG9zdFNjcmlwdE5hbWUiLCJGb250UHJvcGVydGllcyIsIkZvbnRSZWVuY29kaW5nIiwiRm9udFNpemUiLCJGb250U2xhbnQiLCJGb250U3Vic3RpdHV0aW9ucyIsIkZvbnRUcmFja2luZyIsIkZvbnRWYXJpYXRpb25zIiwiRm9udFdlaWdodCIsIkZvciIsIkZvckFsbCIsIkZvcmNlVmVyc2lvbkluc3RhbGwiLCJGb3JtYXQiLCJGb3JtYXRSdWxlcyIsIkZvcm1hdFR5cGUiLCJGb3JtYXRUeXBlQXV0b0NvbnZlcnQiLCJGb3JtYXRWYWx1ZXMiLCJGb3JtQm94IiwiRm9ybUJveE9wdGlvbnMiLCJGb3JtQ29udHJvbCIsIkZvcm1GdW5jdGlvbiIsIkZvcm1MYXlvdXRGdW5jdGlvbiIsIkZvcm1PYmplY3QiLCJGb3JtUGFnZSIsIkZvcm1UaGVtZSIsIkZvcm11bGFEYXRhIiwiRm9ybXVsYUxvb2t1cCIsIkZvcnRyYW5Gb3JtIiwiRm9yd2FyZCIsIkZvcndhcmRCYWNrd2FyZCIsIkZvdXJpZXIiLCJGb3VyaWVyQ29lZmZpY2llbnQiLCJGb3VyaWVyQ29zQ29lZmZpY2llbnQiLCJGb3VyaWVyQ29zU2VyaWVzIiwiRm91cmllckNvc1RyYW5zZm9ybSIsIkZvdXJpZXJEQ1QiLCJGb3VyaWVyRENURmlsdGVyIiwiRm91cmllckRDVE1hdHJpeCIsIkZvdXJpZXJEU1QiLCJGb3VyaWVyRFNUTWF0cml4IiwiRm91cmllck1hdHJpeCIsIkZvdXJpZXJQYXJhbWV0ZXJzIiwiRm91cmllclNlcXVlbmNlVHJhbnNmb3JtIiwiRm91cmllclNlcmllcyIsIkZvdXJpZXJTaW5Db2VmZmljaWVudCIsIkZvdXJpZXJTaW5TZXJpZXMiLCJGb3VyaWVyU2luVHJhbnNmb3JtIiwiRm91cmllclRyYW5zZm9ybSIsIkZvdXJpZXJUcmlnU2VyaWVzIiwiRnJhY3Rpb25hbEJyb3duaWFuTW90aW9uUHJvY2VzcyIsIkZyYWN0aW9uYWxHYXVzc2lhbk5vaXNlUHJvY2VzcyIsIkZyYWN0aW9uYWxQYXJ0IiwiRnJhY3Rpb25Cb3giLCJGcmFjdGlvbkJveE9wdGlvbnMiLCJGcmFjdGlvbkxpbmUiLCJGcmFtZSIsIkZyYW1lQm94IiwiRnJhbWVCb3hPcHRpb25zIiwiRnJhbWVkIiwiRnJhbWVJbnNldCIsIkZyYW1lTGFiZWwiLCJGcmFtZWxlc3MiLCJGcmFtZU1hcmdpbnMiLCJGcmFtZVJhdGUiLCJGcmFtZVN0eWxlIiwiRnJhbWVUaWNrcyIsIkZyYW1lVGlja3NTdHlsZSIsIkZSYXRpb0Rpc3RyaWJ1dGlvbiIsIkZyZWNoZXREaXN0cmlidXRpb24iLCJGcmVlUSIsIkZyZW5ldFNlcnJldFN5c3RlbSIsIkZyZXF1ZW5jeVNhbXBsaW5nRmlsdGVyS2VybmVsIiwiRnJlc25lbEMiLCJGcmVzbmVsRiIsIkZyZXNuZWxHIiwiRnJlc25lbFMiLCJGcmlkYXkiLCJGcm9iZW5pdXNOdW1iZXIiLCJGcm9iZW5pdXNTb2x2ZSIsIkZyb21BYnNvbHV0ZVRpbWUiLCJGcm9tQ2hhcmFjdGVyQ29kZSIsIkZyb21Db2VmZmljaWVudFJ1bGVzIiwiRnJvbUNvbnRpbnVlZEZyYWN0aW9uIiwiRnJvbURhdGUiLCJGcm9tRGlnaXRzIiwiRnJvbURNUyIsIkZyb21FbnRpdHkiLCJGcm9tSnVsaWFuRGF0ZSIsIkZyb21MZXR0ZXJOdW1iZXIiLCJGcm9tUG9sYXJDb29yZGluYXRlcyIsIkZyb21Sb21hbk51bWVyYWwiLCJGcm9tU3BoZXJpY2FsQ29vcmRpbmF0ZXMiLCJGcm9tVW5peFRpbWUiLCJGcm9udCIsIkZyb250RW5kRHluYW1pY0V4cHJlc3Npb24iLCJGcm9udEVuZEV2ZW50QWN0aW9ucyIsIkZyb250RW5kRXhlY3V0ZSIsIkZyb250RW5kT2JqZWN0IiwiRnJvbnRFbmRSZXNvdXJjZSIsIkZyb250RW5kUmVzb3VyY2VTdHJpbmciLCJGcm9udEVuZFN0YWNrU2l6ZSIsIkZyb250RW5kVG9rZW4iLCJGcm9udEVuZFRva2VuRXhlY3V0ZSIsIkZyb250RW5kVmFsdWVDYWNoZSIsIkZyb250RW5kVmVyc2lvbiIsIkZyb250RmFjZUNvbG9yIiwiRnJvbnRGYWNlT3BhY2l0eSIsIkZ1bGwiLCJGdWxsQXhlcyIsIkZ1bGxEZWZpbml0aW9uIiwiRnVsbEZvcm0iLCJGdWxsR3JhcGhpY3MiLCJGdWxsSW5mb3JtYXRpb25PdXRwdXRSZWd1bGF0b3IiLCJGdWxsT3B0aW9ucyIsIkZ1bGxSZWdpb24iLCJGdWxsU2ltcGxpZnkiLCJGdW5jdGlvbiIsIkZ1bmN0aW9uQ29tcGlsZSIsIkZ1bmN0aW9uQ29tcGlsZUV4cG9ydCIsIkZ1bmN0aW9uQ29tcGlsZUV4cG9ydEJ5dGVBcnJheSIsIkZ1bmN0aW9uQ29tcGlsZUV4cG9ydExpYnJhcnkiLCJGdW5jdGlvbkNvbXBpbGVFeHBvcnRTdHJpbmciLCJGdW5jdGlvbkRvbWFpbiIsIkZ1bmN0aW9uRXhwYW5kIiwiRnVuY3Rpb25JbnRlcnBvbGF0aW9uIiwiRnVuY3Rpb25QZXJpb2QiLCJGdW5jdGlvblJhbmdlIiwiRnVuY3Rpb25TcGFjZSIsIkZ1c3NlbGxWZXNlbHlJbXBvcnRhbmNlIiwiR2Fib3JGaWx0ZXIiLCJHYWJvck1hdHJpeCIsIkdhYm9yV2F2ZWxldCIsIkdhaW5NYXJnaW5zIiwiR2FpblBoYXNlTWFyZ2lucyIsIkdhbGF4eURhdGEiLCJHYWxsZXJ5VmlldyIsIkdhbW1hIiwiR2FtbWFEaXN0cmlidXRpb24iLCJHYW1tYVJlZ3VsYXJpemVkIiwiR2FwUGVuYWx0eSIsIkdBUkNIUHJvY2VzcyIsIkdhdGVkUmVjdXJyZW50TGF5ZXIiLCJHYXRoZXIiLCJHYXRoZXJCeSIsIkdhdWdlRmFjZUVsZW1lbnRGdW5jdGlvbiIsIkdhdWdlRmFjZVN0eWxlIiwiR2F1Z2VGcmFtZUVsZW1lbnRGdW5jdGlvbiIsIkdhdWdlRnJhbWVTaXplIiwiR2F1Z2VGcmFtZVN0eWxlIiwiR2F1Z2VMYWJlbHMiLCJHYXVnZU1hcmtlcnMiLCJHYXVnZVN0eWxlIiwiR2F1c3NpYW5GaWx0ZXIiLCJHYXVzc2lhbkludGVnZXJzIiwiR2F1c3NpYW5NYXRyaXgiLCJHYXVzc2lhbk9ydGhvZ29uYWxNYXRyaXhEaXN0cmlidXRpb24iLCJHYXVzc2lhblN5bXBsZWN0aWNNYXRyaXhEaXN0cmlidXRpb24iLCJHYXVzc2lhblVuaXRhcnlNYXRyaXhEaXN0cmlidXRpb24iLCJHYXVzc2lhbldpbmRvdyIsIkdDRCIsIkdlZ2VuYmF1ZXJDIiwiR2VuZXJhbCIsIkdlbmVyYWxpemVkTGluZWFyTW9kZWxGaXQiLCJHZW5lcmF0ZUFzeW1tZXRyaWNLZXlQYWlyIiwiR2VuZXJhdGVDb25kaXRpb25zIiwiR2VuZXJhdGVkQ2VsbCIsIkdlbmVyYXRlZERvY3VtZW50QmluZGluZyIsIkdlbmVyYXRlRGVyaXZlZEtleSIsIkdlbmVyYXRlRGlnaXRhbFNpZ25hdHVyZSIsIkdlbmVyYXRlRG9jdW1lbnQiLCJHZW5lcmF0ZWRQYXJhbWV0ZXJzIiwiR2VuZXJhdGVkUXVhbnRpdHlNYWduaXR1ZGVzIiwiR2VuZXJhdGVGaWxlU2lnbmF0dXJlIiwiR2VuZXJhdGVIVFRQUmVzcG9uc2UiLCJHZW5lcmF0ZVNlY3VyZWRBdXRoZW50aWNhdGlvbktleSIsIkdlbmVyYXRlU3ltbWV0cmljS2V5IiwiR2VuZXJhdGluZ0Z1bmN0aW9uIiwiR2VuZXJhdG9yRGVzY3JpcHRpb24iLCJHZW5lcmF0b3JIaXN0b3J5TGVuZ3RoIiwiR2VuZXJhdG9yT3V0cHV0VHlwZSIsIkdlbmVyaWMiLCJHZW5lcmljQ3lsaW5kcmljYWxEZWNvbXBvc2l0aW9uIiwiR2Vub21lRGF0YSIsIkdlbm9tZUxvb2t1cCIsIkdlb0FudGlwb2RlIiwiR2VvQXJlYSIsIkdlb0FycmF5U2l6ZSIsIkdlb0JhY2tncm91bmQiLCJHZW9Cb3VuZGluZ0JveCIsIkdlb0JvdW5kcyIsIkdlb0JvdW5kc1JlZ2lvbiIsIkdlb0J1YmJsZUNoYXJ0IiwiR2VvQ2VudGVyIiwiR2VvQ2lyY2xlIiwiR2VvQ29udG91clBsb3QiLCJHZW9EZW5zaXR5UGxvdCIsIkdlb2Rlc2ljQ2xvc2luZyIsIkdlb2Rlc2ljRGlsYXRpb24iLCJHZW9kZXNpY0Vyb3Npb24iLCJHZW9kZXNpY09wZW5pbmciLCJHZW9EZXN0aW5hdGlvbiIsIkdlb2Rlc3lEYXRhIiwiR2VvRGlyZWN0aW9uIiwiR2VvRGlzayIsIkdlb0Rpc3BsYWNlbWVudCIsIkdlb0Rpc3RhbmNlIiwiR2VvRGlzdGFuY2VMaXN0IiwiR2VvRWxldmF0aW9uRGF0YSIsIkdlb0VudGl0aWVzIiwiR2VvR3JhcGhpY3MiLCJHZW9ncmF2aXR5TW9kZWxEYXRhIiwiR2VvR3JpZERpcmVjdGlvbkRpZmZlcmVuY2UiLCJHZW9HcmlkTGluZXMiLCJHZW9HcmlkTGluZXNTdHlsZSIsIkdlb0dyaWRQb3NpdGlvbiIsIkdlb0dyaWRSYW5nZSIsIkdlb0dyaWRSYW5nZVBhZGRpbmciLCJHZW9HcmlkVW5pdEFyZWEiLCJHZW9HcmlkVW5pdERpc3RhbmNlIiwiR2VvR3JpZFZlY3RvciIsIkdlb0dyb3VwIiwiR2VvSGVtaXNwaGVyZSIsIkdlb0hlbWlzcGhlcmVCb3VuZGFyeSIsIkdlb0hpc3RvZ3JhbSIsIkdlb0lkZW50aWZ5IiwiR2VvSW1hZ2UiLCJHZW9MYWJlbHMiLCJHZW9MZW5ndGgiLCJHZW9MaXN0UGxvdCIsIkdlb0xvY2F0aW9uIiwiR2VvbG9naWNhbFBlcmlvZERhdGEiLCJHZW9tYWduZXRpY01vZGVsRGF0YSIsIkdlb01hcmtlciIsIkdlb21ldHJpY0Fzc2VydGlvbiIsIkdlb21ldHJpY0Jyb3duaWFuTW90aW9uUHJvY2VzcyIsIkdlb21ldHJpY0Rpc3RyaWJ1dGlvbiIsIkdlb21ldHJpY01lYW4iLCJHZW9tZXRyaWNNZWFuRmlsdGVyIiwiR2VvbWV0cmljT3B0aW1pemF0aW9uIiwiR2VvbWV0cmljU2NlbmUiLCJHZW9tZXRyaWNUcmFuc2Zvcm1hdGlvbiIsIkdlb21ldHJpY1RyYW5zZm9ybWF0aW9uM0RCb3giLCJHZW9tZXRyaWNUcmFuc2Zvcm1hdGlvbjNEQm94T3B0aW9ucyIsIkdlb21ldHJpY1RyYW5zZm9ybWF0aW9uQm94IiwiR2VvbWV0cmljVHJhbnNmb3JtYXRpb25Cb3hPcHRpb25zIiwiR2VvTW9kZWwiLCJHZW9OZWFyZXN0IiwiR2VvUGF0aCIsIkdlb1Bvc2l0aW9uIiwiR2VvUG9zaXRpb25FTlUiLCJHZW9Qb3NpdGlvblhZWiIsIkdlb1Byb2plY3Rpb24iLCJHZW9Qcm9qZWN0aW9uRGF0YSIsIkdlb1JhbmdlIiwiR2VvUmFuZ2VQYWRkaW5nIiwiR2VvUmVnaW9uVmFsdWVQbG90IiwiR2VvUmVzb2x1dGlvbiIsIkdlb1NjYWxlQmFyIiwiR2VvU2VydmVyIiwiR2VvU21vb3RoSGlzdG9ncmFtIiwiR2VvU3RyZWFtUGxvdCIsIkdlb1N0eWxpbmciLCJHZW9TdHlsaW5nSW1hZ2VGdW5jdGlvbiIsIkdlb1ZhcmlhbnQiLCJHZW9WZWN0b3IiLCJHZW9WZWN0b3JFTlUiLCJHZW9WZWN0b3JQbG90IiwiR2VvVmVjdG9yWFlaIiwiR2VvVmlzaWJsZVJlZ2lvbiIsIkdlb1Zpc2libGVSZWdpb25Cb3VuZGFyeSIsIkdlb1dpdGhpblEiLCJHZW9ab29tTGV2ZWwiLCJHZXN0dXJlSGFuZGxlciIsIkdlc3R1cmVIYW5kbGVyVGFnIiwiR2V0IiwiR2V0Qm91bmRpbmdCb3hTaXplUGFja2V0IiwiR2V0Q29udGV4dCIsIkdldEVudmlyb25tZW50IiwiR2V0RmlsZU5hbWUiLCJHZXRGcm9udEVuZE9wdGlvbnNEYXRhUGFja2V0IiwiR2V0TGluZWJyZWFrSW5mb3JtYXRpb25QYWNrZXQiLCJHZXRNZW51c1BhY2tldCIsIkdldFBhZ2VCcmVha0luZm9ybWF0aW9uUGFja2V0IiwiR2xhaXNoZXIiLCJHbG9iYWxDbHVzdGVyaW5nQ29lZmZpY2llbnQiLCJHbG9iYWxQcmVmZXJlbmNlcyIsIkdsb2JhbFNlc3Npb24iLCJHbG93IiwiR29sZGVuQW5nbGUiLCJHb2xkZW5SYXRpbyIsIkdvbXBlcnR6TWFrZWhhbURpc3RyaWJ1dGlvbiIsIkdvb2NoU2hhZGluZyIsIkdvb2RtYW5LcnVza2FsR2FtbWEiLCJHb29kbWFuS3J1c2thbEdhbW1hVGVzdCIsIkdvdG8iLCJHcmFkIiwiR3JhZGllbnQiLCJHcmFkaWVudEZpbHRlciIsIkdyYWRpZW50T3JpZW50YXRpb25GaWx0ZXIiLCJHcmFtbWFyQXBwbHkiLCJHcmFtbWFyUnVsZXMiLCJHcmFtbWFyVG9rZW4iLCJHcmFwaCIsIkdyYXBoM0QiLCJHcmFwaEFzc29ydGF0aXZpdHkiLCJHcmFwaEF1dG9tb3JwaGlzbUdyb3VwIiwiR3JhcGhDZW50ZXIiLCJHcmFwaENvbXBsZW1lbnQiLCJHcmFwaERhdGEiLCJHcmFwaERlbnNpdHkiLCJHcmFwaERpYW1ldGVyIiwiR3JhcGhEaWZmZXJlbmNlIiwiR3JhcGhEaXNqb2ludFVuaW9uIiwiR3JhcGhEaXN0YW5jZSIsIkdyYXBoRGlzdGFuY2VNYXRyaXgiLCJHcmFwaEVsZW1lbnREYXRhIiwiR3JhcGhFbWJlZGRpbmciLCJHcmFwaEhpZ2hsaWdodCIsIkdyYXBoSGlnaGxpZ2h0U3R5bGUiLCJHcmFwaEh1YiIsIkdyYXBoaWNzIiwiR3JhcGhpY3MzRCIsIkdyYXBoaWNzM0RCb3giLCJHcmFwaGljczNEQm94T3B0aW9ucyIsIkdyYXBoaWNzQXJyYXkiLCJHcmFwaGljc0Jhc2VsaW5lIiwiR3JhcGhpY3NCb3giLCJHcmFwaGljc0JveE9wdGlvbnMiLCJHcmFwaGljc0NvbG9yIiwiR3JhcGhpY3NDb2x1bW4iLCJHcmFwaGljc0NvbXBsZXgiLCJHcmFwaGljc0NvbXBsZXgzREJveCIsIkdyYXBoaWNzQ29tcGxleDNEQm94T3B0aW9ucyIsIkdyYXBoaWNzQ29tcGxleEJveCIsIkdyYXBoaWNzQ29tcGxleEJveE9wdGlvbnMiLCJHcmFwaGljc0NvbnRlbnRzIiwiR3JhcGhpY3NEYXRhIiwiR3JhcGhpY3NHcmlkIiwiR3JhcGhpY3NHcmlkQm94IiwiR3JhcGhpY3NHcm91cCIsIkdyYXBoaWNzR3JvdXAzREJveCIsIkdyYXBoaWNzR3JvdXAzREJveE9wdGlvbnMiLCJHcmFwaGljc0dyb3VwQm94IiwiR3JhcGhpY3NHcm91cEJveE9wdGlvbnMiLCJHcmFwaGljc0dyb3VwaW5nIiwiR3JhcGhpY3NIaWdobGlnaHRDb2xvciIsIkdyYXBoaWNzUm93IiwiR3JhcGhpY3NTcGFjaW5nIiwiR3JhcGhpY3NTdHlsZSIsIkdyYXBoSW50ZXJzZWN0aW9uIiwiR3JhcGhMYXlvdXQiLCJHcmFwaExpbmtFZmZpY2llbmN5IiwiR3JhcGhQZXJpcGhlcnkiLCJHcmFwaFBsb3QiLCJHcmFwaFBsb3QzRCIsIkdyYXBoUG93ZXIiLCJHcmFwaFByb3BlcnR5RGlzdHJpYnV0aW9uIiwiR3JhcGhRIiwiR3JhcGhSYWRpdXMiLCJHcmFwaFJlY2lwcm9jaXR5IiwiR3JhcGhSb290IiwiR3JhcGhTdHlsZSIsIkdyYXBoVW5pb24iLCJHcmF5IiwiR3JheUxldmVsIiwiR3JlYXRlciIsIkdyZWF0ZXJFcXVhbCIsIkdyZWF0ZXJFcXVhbExlc3MiLCJHcmVhdGVyRXF1YWxUaGFuIiwiR3JlYXRlckZ1bGxFcXVhbCIsIkdyZWF0ZXJHcmVhdGVyIiwiR3JlYXRlckxlc3MiLCJHcmVhdGVyU2xhbnRFcXVhbCIsIkdyZWF0ZXJUaGFuIiwiR3JlYXRlclRpbGRlIiwiR3JlZW4iLCJHcmVlbkZ1bmN0aW9uIiwiR3JpZCIsIkdyaWRCYXNlbGluZSIsIkdyaWRCb3giLCJHcmlkQm94QWxpZ25tZW50IiwiR3JpZEJveEJhY2tncm91bmQiLCJHcmlkQm94RGl2aWRlcnMiLCJHcmlkQm94RnJhbWUiLCJHcmlkQm94SXRlbVNpemUiLCJHcmlkQm94SXRlbVN0eWxlIiwiR3JpZEJveE9wdGlvbnMiLCJHcmlkQm94U3BhY2luZ3MiLCJHcmlkQ3JlYXRpb25TZXR0aW5ncyIsIkdyaWREZWZhdWx0RWxlbWVudCIsIkdyaWRFbGVtZW50U3R5bGVPcHRpb25zIiwiR3JpZEZyYW1lIiwiR3JpZEZyYW1lTWFyZ2lucyIsIkdyaWRHcmFwaCIsIkdyaWRMaW5lcyIsIkdyaWRMaW5lc1N0eWxlIiwiR3JvZWJuZXJCYXNpcyIsIkdyb3VwQWN0aW9uQmFzZSIsIkdyb3VwQnkiLCJHcm91cENlbnRyYWxpemVyIiwiR3JvdXBFbGVtZW50RnJvbVdvcmQiLCJHcm91cEVsZW1lbnRQb3NpdGlvbiIsIkdyb3VwRWxlbWVudFEiLCJHcm91cEVsZW1lbnRzIiwiR3JvdXBFbGVtZW50VG9Xb3JkIiwiR3JvdXBHZW5lcmF0b3JzIiwiR3JvdXBpbmdzIiwiR3JvdXBNdWx0aXBsaWNhdGlvblRhYmxlIiwiR3JvdXBPcmJpdHMiLCJHcm91cE9yZGVyIiwiR3JvdXBQYWdlQnJlYWtXaXRoaW4iLCJHcm91cFNldHdpc2VTdGFiaWxpemVyIiwiR3JvdXBTdGFiaWxpemVyIiwiR3JvdXBTdGFiaWxpemVyQ2hhaW4iLCJHcm91cFRvZ2V0aGVyR3JvdXBpbmciLCJHcm91cFRvZ2V0aGVyTmVzdGVkR3JvdXBpbmciLCJHcm93Q3V0Q29tcG9uZW50cyIsIkd1ZGVybWFubmlhbiIsIkd1aWRlZEZpbHRlciIsIkd1bWJlbERpc3RyaWJ1dGlvbiIsIkhhYXJXYXZlbGV0IiwiSGFkYW1hcmRNYXRyaXgiLCJIYWxmTGluZSIsIkhhbGZOb3JtYWxEaXN0cmlidXRpb24iLCJIYWxmUGxhbmUiLCJIYWxmU3BhY2UiLCJIYWxmdG9uZVNoYWRpbmciLCJIYW1pbHRvbmlhbkdyYXBoUSIsIkhhbW1pbmdEaXN0YW5jZSIsIkhhbW1pbmdXaW5kb3ciLCJIYW5kbGVyRnVuY3Rpb25zIiwiSGFuZGxlckZ1bmN0aW9uc0tleXMiLCJIYW5rZWxIMSIsIkhhbmtlbEgyIiwiSGFua2VsTWF0cml4IiwiSGFua2VsVHJhbnNmb3JtIiwiSGFublBvaXNzb25XaW5kb3ciLCJIYW5uV2luZG93IiwiSGFyYWRhTm9ydG9uR3JvdXBITiIsIkhhcmFyeUdyYXBoIiwiSGFybW9uaWNNZWFuIiwiSGFybW9uaWNNZWFuRmlsdGVyIiwiSGFybW9uaWNOdW1iZXIiLCJIYXNoIiwiSGF0Y2hGaWxsaW5nIiwiSGF0Y2hTaGFkaW5nIiwiSGF2ZXJzaW5lIiwiSGF6YXJkRnVuY3Rpb24iLCJIZWFkIiwiSGVhZENvbXBvc2UiLCJIZWFkZXJBbGlnbm1lbnQiLCJIZWFkZXJCYWNrZ3JvdW5kIiwiSGVhZGVyRGlzcGxheUZ1bmN0aW9uIiwiSGVhZGVyTGluZXMiLCJIZWFkZXJTaXplIiwiSGVhZGVyU3R5bGUiLCJIZWFkcyIsIkhlYXZpc2lkZUxhbWJkYSIsIkhlYXZpc2lkZVBpIiwiSGVhdmlzaWRlVGhldGEiLCJIZWxkR3JvdXBIZSIsIkhlbGRQYXJ0IiwiSGVscEJyb3dzZXJMb29rdXAiLCJIZWxwQnJvd3Nlck5vdGVib29rIiwiSGVscEJyb3dzZXJTZXR0aW5ncyIsIkhlcmUiLCJIZXJtaXRlRGVjb21wb3NpdGlvbiIsIkhlcm1pdGVIIiwiSGVybWl0aWFuTWF0cml4USIsIkhlc3NlbmJlcmdEZWNvbXBvc2l0aW9uIiwiSGVzc2lhbiIsIkhldW5CIiwiSGV1bkJQcmltZSIsIkhldW5DIiwiSGV1bkNQcmltZSIsIkhldW5EIiwiSGV1bkRQcmltZSIsIkhldW5HIiwiSGV1bkdQcmltZSIsIkhldW5UIiwiSGV1blRQcmltZSIsIkhleGFkZWNpbWFsQ2hhcmFjdGVyIiwiSGV4YWhlZHJvbiIsIkhleGFoZWRyb25Cb3giLCJIZXhhaGVkcm9uQm94T3B0aW9ucyIsIkhpZGRlbkl0ZW1zIiwiSGlkZGVuTWFya292UHJvY2VzcyIsIkhpZGRlblN1cmZhY2UiLCJIaWdobGlnaHRlZCIsIkhpZ2hsaWdodEdyYXBoIiwiSGlnaGxpZ2h0SW1hZ2UiLCJIaWdobGlnaHRNZXNoIiwiSGlnaHBhc3NGaWx0ZXIiLCJIaWdtYW5TaW1zR3JvdXBIUyIsIkhpbGJlcnRDdXJ2ZSIsIkhpbGJlcnRGaWx0ZXIiLCJIaWxiZXJ0TWF0cml4IiwiSGlzdG9ncmFtIiwiSGlzdG9ncmFtM0QiLCJIaXN0b2dyYW1EaXN0cmlidXRpb24iLCJIaXN0b2dyYW1MaXN0IiwiSGlzdG9ncmFtVHJhbnNmb3JtIiwiSGlzdG9ncmFtVHJhbnNmb3JtSW50ZXJwb2xhdGlvbiIsIkhpc3RvcmljYWxQZXJpb2REYXRhIiwiSGl0TWlzc1RyYW5zZm9ybSIsIkhJVFNDZW50cmFsaXR5IiwiSGpvcnRoRGlzdHJpYnV0aW9uIiwiSG9kZ2VEdWFsIiwiSG9lZmZkaW5nRCIsIkhvZWZmZGluZ0RUZXN0IiwiSG9sZCIsIkhvbGRBbGwiLCJIb2xkQWxsQ29tcGxldGUiLCJIb2xkQ29tcGxldGUiLCJIb2xkRmlyc3QiLCJIb2xkRm9ybSIsIkhvbGRQYXR0ZXJuIiwiSG9sZFJlc3QiLCJIb2xpZGF5Q2FsZW5kYXIiLCJIb21lRGlyZWN0b3J5IiwiSG9tZVBhZ2UiLCJIb3Jpem9udGFsIiwiSG9yaXpvbnRhbEZvcm0iLCJIb3Jpem9udGFsR2F1Z2UiLCJIb3Jpem9udGFsU2Nyb2xsUG9zaXRpb24iLCJIb3JuZXJGb3JtIiwiSG9zdExvb2t1cCIsIkhvdGVsbGluZ1RTcXVhcmVEaXN0cmlidXRpb24iLCJIb3l0RGlzdHJpYnV0aW9uIiwiSFRNTFNhdmUiLCJIVFRQRXJyb3JSZXNwb25zZSIsIkhUVFBSZWRpcmVjdCIsIkhUVFBSZXF1ZXN0IiwiSFRUUFJlcXVlc3REYXRhIiwiSFRUUFJlc3BvbnNlIiwiSHVlIiwiSHVtYW5Hcm93dGhEYXRhIiwiSHVtcERvd25IdW1wIiwiSHVtcEVxdWFsIiwiSHVyd2l0ekxlcmNoUGhpIiwiSHVyd2l0elpldGEiLCJIeXBlcmJvbGljRGlzdHJpYnV0aW9uIiwiSHlwZXJjdWJlR3JhcGgiLCJIeXBlcmV4cG9uZW50aWFsRGlzdHJpYnV0aW9uIiwiSHlwZXJmYWN0b3JpYWwiLCJIeXBlcmdlb21ldHJpYzBGMSIsIkh5cGVyZ2VvbWV0cmljMEYxUmVndWxhcml6ZWQiLCJIeXBlcmdlb21ldHJpYzFGMSIsIkh5cGVyZ2VvbWV0cmljMUYxUmVndWxhcml6ZWQiLCJIeXBlcmdlb21ldHJpYzJGMSIsIkh5cGVyZ2VvbWV0cmljMkYxUmVndWxhcml6ZWQiLCJIeXBlcmdlb21ldHJpY0Rpc3RyaWJ1dGlvbiIsIkh5cGVyZ2VvbWV0cmljUEZRIiwiSHlwZXJnZW9tZXRyaWNQRlFSZWd1bGFyaXplZCIsIkh5cGVyZ2VvbWV0cmljVSIsIkh5cGVybGluayIsIkh5cGVybGlua0FjdGlvbiIsIkh5cGVybGlua0NyZWF0aW9uU2V0dGluZ3MiLCJIeXBlcnBsYW5lIiwiSHlwaGVuYXRpb24iLCJIeXBoZW5hdGlvbk9wdGlvbnMiLCJIeXBvZXhwb25lbnRpYWxEaXN0cmlidXRpb24iLCJIeXBvdGhlc2lzVGVzdERhdGEiLCJJIiwiSWNvbkRhdGEiLCJJY29uaXplIiwiSWNvbml6ZWRPYmplY3QiLCJJY29uUnVsZXMiLCJJY29zYWhlZHJvbiIsIklkZW50aXR5IiwiSWRlbnRpdHlNYXRyaXgiLCJJZiIsIklnbm9yZUNhc2UiLCJJZ25vcmVEaWFjcml0aWNzIiwiSWdub3JlUHVuY3R1YXRpb24iLCJJZ25vcmVTcGVsbENoZWNrIiwiSWdub3JpbmdJbmFjdGl2ZSIsIkltIiwiSW1hZ2UiLCJJbWFnZTNEIiwiSW1hZ2UzRFByb2plY3Rpb24iLCJJbWFnZTNEU2xpY2VzIiwiSW1hZ2VBY2N1bXVsYXRlIiwiSW1hZ2VBZGQiLCJJbWFnZUFkanVzdCIsIkltYWdlQWxpZ24iLCJJbWFnZUFwcGx5IiwiSW1hZ2VBcHBseUluZGV4ZWQiLCJJbWFnZUFzcGVjdFJhdGlvIiwiSW1hZ2VBc3NlbWJsZSIsIkltYWdlQXVnbWVudGF0aW9uTGF5ZXIiLCJJbWFnZUJvdW5kaW5nQm94ZXMiLCJJbWFnZUNhY2hlIiwiSW1hZ2VDYWNoZVZhbGlkIiwiSW1hZ2VDYXB0dXJlIiwiSW1hZ2VDYXB0dXJlRnVuY3Rpb24iLCJJbWFnZUNhc2VzIiwiSW1hZ2VDaGFubmVscyIsIkltYWdlQ2xpcCIsIkltYWdlQ29sbGFnZSIsIkltYWdlQ29sb3JTcGFjZSIsIkltYWdlQ29tcG9zZSIsIkltYWdlQ29udGFpbnNRIiwiSW1hZ2VDb250ZW50cyIsIkltYWdlQ29udm9sdmUiLCJJbWFnZUNvb2NjdXJyZW5jZSIsIkltYWdlQ29ybmVycyIsIkltYWdlQ29ycmVsYXRlIiwiSW1hZ2VDb3JyZXNwb25kaW5nUG9pbnRzIiwiSW1hZ2VDcm9wIiwiSW1hZ2VEYXRhIiwiSW1hZ2VEZWNvbnZvbHZlIiwiSW1hZ2VEZW1vc2FpYyIsIkltYWdlRGlmZmVyZW5jZSIsIkltYWdlRGltZW5zaW9ucyIsIkltYWdlRGlzcGxhY2VtZW50cyIsIkltYWdlRGlzdGFuY2UiLCJJbWFnZUVmZmVjdCIsIkltYWdlRXhwb3N1cmVDb21iaW5lIiwiSW1hZ2VGZWF0dXJlVHJhY2siLCJJbWFnZUZpbGVBcHBseSIsIkltYWdlRmlsZUZpbHRlciIsIkltYWdlRmlsZVNjYW4iLCJJbWFnZUZpbHRlciIsIkltYWdlRm9jdXNDb21iaW5lIiwiSW1hZ2VGb3Jlc3RpbmdDb21wb25lbnRzIiwiSW1hZ2VGb3JtYXR0aW5nV2lkdGgiLCJJbWFnZUZvcndhcmRUcmFuc2Zvcm1hdGlvbiIsIkltYWdlR3JhcGhpY3MiLCJJbWFnZUhpc3RvZ3JhbSIsIkltYWdlSWRlbnRpZnkiLCJJbWFnZUluc3RhbmNlUSIsIkltYWdlS2V5cG9pbnRzIiwiSW1hZ2VMYWJlbHMiLCJJbWFnZUxlZ2VuZHMiLCJJbWFnZUxldmVscyIsIkltYWdlTGluZXMiLCJJbWFnZU1hcmdpbnMiLCJJbWFnZU1hcmtlciIsIkltYWdlTWFya2VycyIsIkltYWdlTWVhc3VyZW1lbnRzIiwiSW1hZ2VNZXNoIiwiSW1hZ2VNdWx0aXBseSIsIkltYWdlT2Zmc2V0IiwiSW1hZ2VQYWQiLCJJbWFnZVBhZGRpbmciLCJJbWFnZVBhcnRpdGlvbiIsIkltYWdlUGVyaW9kb2dyYW0iLCJJbWFnZVBlcnNwZWN0aXZlVHJhbnNmb3JtYXRpb24iLCJJbWFnZVBvc2l0aW9uIiwiSW1hZ2VQcmV2aWV3RnVuY3Rpb24iLCJJbWFnZVB5cmFtaWQiLCJJbWFnZVB5cmFtaWRBcHBseSIsIkltYWdlUSIsIkltYWdlUmFuZ2VDYWNoZSIsIkltYWdlUmVjb2xvciIsIkltYWdlUmVmbGVjdCIsIkltYWdlUmVnaW9uIiwiSW1hZ2VSZXNpemUiLCJJbWFnZVJlc29sdXRpb24iLCJJbWFnZVJlc3R5bGUiLCJJbWFnZVJvdGF0ZSIsIkltYWdlUm90YXRlZCIsIkltYWdlU2FsaWVuY3lGaWx0ZXIiLCJJbWFnZVNjYWxlZCIsIkltYWdlU2NhbiIsIkltYWdlU2l6ZSIsIkltYWdlU2l6ZUFjdGlvbiIsIkltYWdlU2l6ZUNhY2hlIiwiSW1hZ2VTaXplTXVsdGlwbGllcnMiLCJJbWFnZVNpemVSYXciLCJJbWFnZVN1YnRyYWN0IiwiSW1hZ2VUYWtlIiwiSW1hZ2VUcmFuc2Zvcm1hdGlvbiIsIkltYWdlVHJpbSIsIkltYWdlVHlwZSIsIkltYWdlVmFsdWUiLCJJbWFnZVZhbHVlUG9zaXRpb25zIiwiSW1hZ2luZ0RldmljZSIsIkltcGxpY2l0UmVnaW9uIiwiSW1wbGllcyIsIkltcG9ydCIsIkltcG9ydEF1dG9SZXBsYWNlbWVudHMiLCJJbXBvcnRCeXRlQXJyYXkiLCJJbXBvcnRPcHRpb25zIiwiSW1wb3J0U3RyaW5nIiwiSW1wcm92ZW1lbnRJbXBvcnRhbmNlIiwiSW4iLCJJbmFjdGl2YXRlIiwiSW5hY3RpdmUiLCJJbmNpZGVuY2VHcmFwaCIsIkluY2lkZW5jZUxpc3QiLCJJbmNpZGVuY2VNYXRyaXgiLCJJbmNsdWRlQXJvbWF0aWNCb25kcyIsIkluY2x1ZGVDb25zdGFudEJhc2lzIiwiSW5jbHVkZURlZmluaXRpb25zIiwiSW5jbHVkZURpcmVjdG9yaWVzIiwiSW5jbHVkZUZpbGVFeHRlbnNpb24iLCJJbmNsdWRlR2VuZXJhdG9yVGFza3MiLCJJbmNsdWRlSHlkcm9nZW5zIiwiSW5jbHVkZUluZmxlY3Rpb25zIiwiSW5jbHVkZU1ldGFJbmZvcm1hdGlvbiIsIkluY2x1ZGVQb2RzIiwiSW5jbHVkZVF1YW50aXRpZXMiLCJJbmNsdWRlUmVsYXRlZFRhYmxlcyIsIkluY2x1ZGVTaW5ndWxhclRlcm0iLCJJbmNsdWRlV2luZG93VGltZXMiLCJJbmNyZW1lbnQiLCJJbmRlZmluaXRlTWF0cml4USIsIkluZGVudCIsIkluZGVudGluZ05ld2xpbmVTcGFjaW5ncyIsIkluZGVudE1heEZyYWN0aW9uIiwiSW5kZXBlbmRlbmNlVGVzdCIsIkluZGVwZW5kZW50RWRnZVNldFEiLCJJbmRlcGVuZGVudFBoeXNpY2FsUXVhbnRpdHkiLCJJbmRlcGVuZGVudFVuaXQiLCJJbmRlcGVuZGVudFVuaXREaW1lbnNpb24iLCJJbmRlcGVuZGVudFZlcnRleFNldFEiLCJJbmRldGVybWluYXRlIiwiSW5kZXRlcm1pbmF0ZVRocmVzaG9sZCIsIkluZGV4Q3JlYXRpb25PcHRpb25zIiwiSW5kZXhlZCIsIkluZGV4RWRnZVRhZ2dlZEdyYXBoIiwiSW5kZXhHcmFwaCIsIkluZGV4VGFnIiwiSW5lcXVhbGl0eSIsIkluZXhhY3ROdW1iZXJRIiwiSW5leGFjdE51bWJlcnMiLCJJbmZpbml0ZUZ1dHVyZSIsIkluZmluaXRlTGluZSIsIkluZmluaXRlUGFzdCIsIkluZmluaXRlUGxhbmUiLCJJbmZpbml0eSIsIkluZml4IiwiSW5mbGF0aW9uQWRqdXN0IiwiSW5mbGF0aW9uTWV0aG9kIiwiSW5mb3JtYXRpb24iLCJJbmZvcm1hdGlvbkRhdGEiLCJJbmZvcm1hdGlvbkRhdGFHcmlkIiwiSW5oZXJpdGVkIiwiSW5oZXJpdFNjb3BlIiwiSW5ob21vZ2VuZW91c1BvaXNzb25Qcm9jZXNzIiwiSW5pdGlhbEV2YWx1YXRpb25IaXN0b3J5IiwiSW5pdGlhbGl6YXRpb24iLCJJbml0aWFsaXphdGlvbkNlbGwiLCJJbml0aWFsaXphdGlvbkNlbGxFdmFsdWF0aW9uIiwiSW5pdGlhbGl6YXRpb25DZWxsV2FybmluZyIsIkluaXRpYWxpemF0aW9uT2JqZWN0cyIsIkluaXRpYWxpemF0aW9uVmFsdWUiLCJJbml0aWFsaXplIiwiSW5pdGlhbFNlZWRpbmciLCJJbmxpbmVDb3VudGVyQXNzaWdubWVudHMiLCJJbmxpbmVDb3VudGVySW5jcmVtZW50cyIsIklubGluZVJ1bGVzIiwiSW5uZXIiLCJJbm5lclBvbHlnb24iLCJJbm5lclBvbHloZWRyb24iLCJJbnBhaW50IiwiSW5wdXQiLCJJbnB1dEFsaWFzZXMiLCJJbnB1dEFzc3VtcHRpb25zIiwiSW5wdXRBdXRvUmVwbGFjZW1lbnRzIiwiSW5wdXRGaWVsZCIsIklucHV0RmllbGRCb3giLCJJbnB1dEZpZWxkQm94T3B0aW9ucyIsIklucHV0Rm9ybSIsIklucHV0R3JvdXBpbmciLCJJbnB1dE5hbWVQYWNrZXQiLCJJbnB1dE5vdGVib29rIiwiSW5wdXRQYWNrZXQiLCJJbnB1dFNldHRpbmdzIiwiSW5wdXRTdHJlYW0iLCJJbnB1dFN0cmluZyIsIklucHV0U3RyaW5nUGFja2V0IiwiSW5wdXRUb0JveEZvcm1QYWNrZXQiLCJJbnNlcnQiLCJJbnNlcnRpb25GdW5jdGlvbiIsIkluc2VydGlvblBvaW50T2JqZWN0IiwiSW5zZXJ0TGluZWJyZWFrcyIsIkluc2VydFJlc3VsdHMiLCJJbnNldCIsIkluc2V0M0RCb3giLCJJbnNldDNEQm94T3B0aW9ucyIsIkluc2V0Qm94IiwiSW5zZXRCb3hPcHRpb25zIiwiSW5zcGhlcmUiLCJJbnN0YWxsIiwiSW5zdGFsbFNlcnZpY2UiLCJJbnN0YW5jZU5vcm1hbGl6YXRpb25MYXllciIsIkluU3RyaW5nIiwiSW50ZWdlciIsIkludGVnZXJEaWdpdHMiLCJJbnRlZ2VyRXhwb25lbnQiLCJJbnRlZ2VyTGVuZ3RoIiwiSW50ZWdlck5hbWUiLCJJbnRlZ2VyUGFydCIsIkludGVnZXJQYXJ0aXRpb25zIiwiSW50ZWdlclEiLCJJbnRlZ2VyUmV2ZXJzZSIsIkludGVnZXJzIiwiSW50ZWdlclN0cmluZyIsIkludGVncmFsIiwiSW50ZWdyYXRlIiwiSW50ZXJhY3RpdmUiLCJJbnRlcmFjdGl2ZVRyYWRpbmdDaGFydCIsIkludGVybGFjZWQiLCJJbnRlcmxlYXZpbmciLCJJbnRlcm5hbGx5QmFsYW5jZWREZWNvbXBvc2l0aW9uIiwiSW50ZXJwb2xhdGluZ0Z1bmN0aW9uIiwiSW50ZXJwb2xhdGluZ1BvbHlub21pYWwiLCJJbnRlcnBvbGF0aW9uIiwiSW50ZXJwb2xhdGlvbk9yZGVyIiwiSW50ZXJwb2xhdGlvblBvaW50cyIsIkludGVycG9sYXRpb25QcmVjaXNpb24iLCJJbnRlcnByZXRhdGlvbiIsIkludGVycHJldGF0aW9uQm94IiwiSW50ZXJwcmV0YXRpb25Cb3hPcHRpb25zIiwiSW50ZXJwcmV0YXRpb25GdW5jdGlvbiIsIkludGVycHJldGVyIiwiSW50ZXJwcmV0VGVtcGxhdGUiLCJJbnRlcnF1YXJ0aWxlUmFuZ2UiLCJJbnRlcnJ1cHQiLCJJbnRlcnJ1cHRTZXR0aW5ncyIsIkludGVyc2VjdGVkRW50aXR5Q2xhc3MiLCJJbnRlcnNlY3RpbmdRIiwiSW50ZXJzZWN0aW9uIiwiSW50ZXJ2YWwiLCJJbnRlcnZhbEludGVyc2VjdGlvbiIsIkludGVydmFsTWFya2VycyIsIkludGVydmFsTWFya2Vyc1N0eWxlIiwiSW50ZXJ2YWxNZW1iZXJRIiwiSW50ZXJ2YWxTbGlkZXIiLCJJbnRlcnZhbFVuaW9uIiwiSW50byIsIkludmVyc2UiLCJJbnZlcnNlQmV0YVJlZ3VsYXJpemVkIiwiSW52ZXJzZUNERiIsIkludmVyc2VDaGlTcXVhcmVEaXN0cmlidXRpb24iLCJJbnZlcnNlQ29udGludW91c1dhdmVsZXRUcmFuc2Zvcm0iLCJJbnZlcnNlRGlzdGFuY2VUcmFuc2Zvcm0iLCJJbnZlcnNlRWxsaXB0aWNOb21lUSIsIkludmVyc2VFcmYiLCJJbnZlcnNlRXJmYyIsIkludmVyc2VGb3VyaWVyIiwiSW52ZXJzZUZvdXJpZXJDb3NUcmFuc2Zvcm0iLCJJbnZlcnNlRm91cmllclNlcXVlbmNlVHJhbnNmb3JtIiwiSW52ZXJzZUZvdXJpZXJTaW5UcmFuc2Zvcm0iLCJJbnZlcnNlRm91cmllclRyYW5zZm9ybSIsIkludmVyc2VGdW5jdGlvbiIsIkludmVyc2VGdW5jdGlvbnMiLCJJbnZlcnNlR2FtbWFEaXN0cmlidXRpb24iLCJJbnZlcnNlR2FtbWFSZWd1bGFyaXplZCIsIkludmVyc2VHYXVzc2lhbkRpc3RyaWJ1dGlvbiIsIkludmVyc2VHdWRlcm1hbm5pYW4iLCJJbnZlcnNlSGFua2VsVHJhbnNmb3JtIiwiSW52ZXJzZUhhdmVyc2luZSIsIkludmVyc2VJbWFnZVB5cmFtaWQiLCJJbnZlcnNlSmFjb2JpQ0QiLCJJbnZlcnNlSmFjb2JpQ04iLCJJbnZlcnNlSmFjb2JpQ1MiLCJJbnZlcnNlSmFjb2JpREMiLCJJbnZlcnNlSmFjb2JpRE4iLCJJbnZlcnNlSmFjb2JpRFMiLCJJbnZlcnNlSmFjb2JpTkMiLCJJbnZlcnNlSmFjb2JpTkQiLCJJbnZlcnNlSmFjb2JpTlMiLCJJbnZlcnNlSmFjb2JpU0MiLCJJbnZlcnNlSmFjb2JpU0QiLCJJbnZlcnNlSmFjb2JpU04iLCJJbnZlcnNlTGFwbGFjZVRyYW5zZm9ybSIsIkludmVyc2VNZWxsaW5UcmFuc2Zvcm0iLCJJbnZlcnNlUGVybXV0YXRpb24iLCJJbnZlcnNlUmFkb24iLCJJbnZlcnNlUmFkb25UcmFuc2Zvcm0iLCJJbnZlcnNlU2VyaWVzIiwiSW52ZXJzZVNob3J0VGltZUZvdXJpZXIiLCJJbnZlcnNlU3BlY3Ryb2dyYW0iLCJJbnZlcnNlU3Vydml2YWxGdW5jdGlvbiIsIkludmVyc2VUcmFuc2Zvcm1lZFJlZ2lvbiIsIkludmVyc2VXYXZlbGV0VHJhbnNmb3JtIiwiSW52ZXJzZVdlaWVyc3RyYXNzUCIsIkludmVyc2VXaXNoYXJ0TWF0cml4RGlzdHJpYnV0aW9uIiwiSW52ZXJzZVpUcmFuc2Zvcm0iLCJJbnZpc2libGUiLCJJbnZpc2libGVBcHBsaWNhdGlvbiIsIkludmlzaWJsZVRpbWVzIiwiSVBBZGRyZXNzIiwiSXJyZWR1Y2libGVQb2x5bm9taWFsUSIsIklzbGFuZERhdGEiLCJJc29sYXRpbmdJbnRlcnZhbCIsIklzb21vcnBoaWNHcmFwaFEiLCJJc290b3BlRGF0YSIsIkl0YWxpYyIsIkl0ZW0iLCJJdGVtQXNwZWN0UmF0aW8iLCJJdGVtQm94IiwiSXRlbUJveE9wdGlvbnMiLCJJdGVtRGlzcGxheUZ1bmN0aW9uIiwiSXRlbVNpemUiLCJJdGVtU3R5bGUiLCJJdG9Qcm9jZXNzIiwiSmFjY2FyZERpc3NpbWlsYXJpdHkiLCJKYWNvYmlBbXBsaXR1ZGUiLCJKYWNvYmlhbiIsIkphY29iaUNEIiwiSmFjb2JpQ04iLCJKYWNvYmlDUyIsIkphY29iaURDIiwiSmFjb2JpRE4iLCJKYWNvYmlEUyIsIkphY29iaU5DIiwiSmFjb2JpTkQiLCJKYWNvYmlOUyIsIkphY29iaVAiLCJKYWNvYmlTQyIsIkphY29iaVNEIiwiSmFjb2JpU04iLCJKYWNvYmlTeW1ib2wiLCJKYWNvYmlaZXRhIiwiSmFua29Hcm91cEoxIiwiSmFua29Hcm91cEoyIiwiSmFua29Hcm91cEozIiwiSmFua29Hcm91cEo0IiwiSmFycXVlQmVyYUFMTVRlc3QiLCJKb2huc29uRGlzdHJpYnV0aW9uIiwiSm9pbiIsIkpvaW5BY3Jvc3MiLCJKb2luZWQiLCJKb2luZWRDdXJ2ZSIsIkpvaW5lZEN1cnZlQm94IiwiSm9pbmVkQ3VydmVCb3hPcHRpb25zIiwiSm9pbkZvcm0iLCJKb3JkYW5EZWNvbXBvc2l0aW9uIiwiSm9yZGFuTW9kZWxEZWNvbXBvc2l0aW9uIiwiSnVsaWFuRGF0ZSIsIkp1bGlhU2V0Qm9ldHRjaGVyIiwiSnVsaWFTZXRJdGVyYXRpb25Db3VudCIsIkp1bGlhU2V0UGxvdCIsIkp1bGlhU2V0UG9pbnRzIiwiSyIsIkthZ2lDaGFydCIsIkthaXNlckJlc3NlbFdpbmRvdyIsIkthaXNlcldpbmRvdyIsIkthbG1hbkVzdGltYXRvciIsIkthbG1hbkZpbHRlciIsIkthcmh1bmVuTG9ldmVEZWNvbXBvc2l0aW9uIiwiS2FyeVRyZWUiLCJLYXR6Q2VudHJhbGl0eSIsIktDb3JlQ29tcG9uZW50cyIsIktEaXN0cmlidXRpb24iLCJLRWRnZUNvbm5lY3RlZENvbXBvbmVudHMiLCJLRWRnZUNvbm5lY3RlZEdyYXBoUSIsIktlZXBFeGlzdGluZ1ZlcnNpb24iLCJLZWx2aW5CZWkiLCJLZWx2aW5CZXIiLCJLZWx2aW5LZWkiLCJLZWx2aW5LZXIiLCJLZW5kYWxsVGF1IiwiS2VuZGFsbFRhdVRlc3QiLCJLZXJuZWxFeGVjdXRlIiwiS2VybmVsRnVuY3Rpb24iLCJLZXJuZWxNaXh0dXJlRGlzdHJpYnV0aW9uIiwiS2VybmVsT2JqZWN0IiwiS2VybmVscyIsIktldCIsIktleSIsIktleUNvbGxpc2lvbkZ1bmN0aW9uIiwiS2V5Q29tcGxlbWVudCIsIktleURyb3AiLCJLZXlEcm9wRnJvbSIsIktleUV4aXN0c1EiLCJLZXlGcmVlUSIsIktleUludGVyc2VjdGlvbiIsIktleU1hcCIsIktleU1lbWJlclEiLCJLZXlwb2ludFN0cmVuZ3RoIiwiS2V5cyIsIktleVNlbGVjdCIsIktleVNvcnQiLCJLZXlTb3J0QnkiLCJLZXlUYWtlIiwiS2V5VW5pb24iLCJLZXlWYWx1ZU1hcCIsIktleVZhbHVlUGF0dGVybiIsIktoaW5jaGluIiwiS2lsbFByb2Nlc3MiLCJLaXJjaGhvZmZHcmFwaCIsIktpcmNoaG9mZk1hdHJpeCIsIktsZWluSW52YXJpYW50SiIsIktuYXBzYWNrU29sdmUiLCJLbmlnaHRUb3VyR3JhcGgiLCJLbm90RGF0YSIsIktub3duVW5pdFEiLCJLb2NoQ3VydmUiLCJLb2xtb2dvcm92U21pcm5vdlRlc3QiLCJLcm9uZWNrZXJEZWx0YSIsIktyb25lY2tlck1vZGVsRGVjb21wb3NpdGlvbiIsIktyb25lY2tlclByb2R1Y3QiLCJLcm9uZWNrZXJTeW1ib2wiLCJLdWlwZXJUZXN0IiwiS3VtYXJhc3dhbXlEaXN0cmlidXRpb24iLCJLdXJ0b3NpcyIsIkt1d2FoYXJhRmlsdGVyIiwiS1ZlcnRleENvbm5lY3RlZENvbXBvbmVudHMiLCJLVmVydGV4Q29ubmVjdGVkR3JhcGhRIiwiTEFCQ29sb3IiLCJMYWJlbCIsIkxhYmVsZWQiLCJMYWJlbGVkU2xpZGVyIiwiTGFiZWxpbmdGdW5jdGlvbiIsIkxhYmVsaW5nU2l6ZSIsIkxhYmVsU3R5bGUiLCJMYWJlbFZpc2liaWxpdHkiLCJMYWd1ZXJyZUwiLCJMYWtlRGF0YSIsIkxhbWJkYUNvbXBvbmVudHMiLCJMYW1iZXJ0VyIsIkxhbWluYURhdGEiLCJMYW5jem9zV2luZG93IiwiTGFuZGF1RGlzdHJpYnV0aW9uIiwiTGFuZ3VhZ2UiLCJMYW5ndWFnZUNhdGVnb3J5IiwiTGFuZ3VhZ2VEYXRhIiwiTGFuZ3VhZ2VJZGVudGlmeSIsIkxhbmd1YWdlT3B0aW9ucyIsIkxhcGxhY2VEaXN0cmlidXRpb24iLCJMYXBsYWNlVHJhbnNmb3JtIiwiTGFwbGFjaWFuIiwiTGFwbGFjaWFuRmlsdGVyIiwiTGFwbGFjaWFuR2F1c3NpYW5GaWx0ZXIiLCJMYXJnZSIsIkxhcmdlciIsIkxhc3QiLCJMYXRpdHVkZSIsIkxhdGl0dWRlTG9uZ2l0dWRlIiwiTGF0dGljZURhdGEiLCJMYXR0aWNlUmVkdWNlIiwiTGF1bmNoIiwiTGF1bmNoS2VybmVscyIsIkxheWVyZWRHcmFwaFBsb3QiLCJMYXllclNpemVGdW5jdGlvbiIsIkxheW91dEluZm9ybWF0aW9uIiwiTENIQ29sb3IiLCJMQ00iLCJMZWFkZXJTaXplIiwiTGVhZkNvdW50IiwiTGVhcFllYXJRIiwiTGVhcm5EaXN0cmlidXRpb24iLCJMZWFybmVkRGlzdHJpYnV0aW9uIiwiTGVhcm5pbmdSYXRlIiwiTGVhcm5pbmdSYXRlTXVsdGlwbGllcnMiLCJMZWFzdFNxdWFyZXMiLCJMZWFzdFNxdWFyZXNGaWx0ZXJLZXJuZWwiLCJMZWZ0IiwiTGVmdEFycm93IiwiTGVmdEFycm93QmFyIiwiTGVmdEFycm93UmlnaHRBcnJvdyIsIkxlZnREb3duVGVlVmVjdG9yIiwiTGVmdERvd25WZWN0b3IiLCJMZWZ0RG93blZlY3RvckJhciIsIkxlZnRSaWdodEFycm93IiwiTGVmdFJpZ2h0VmVjdG9yIiwiTGVmdFRlZSIsIkxlZnRUZWVBcnJvdyIsIkxlZnRUZWVWZWN0b3IiLCJMZWZ0VHJpYW5nbGUiLCJMZWZ0VHJpYW5nbGVCYXIiLCJMZWZ0VHJpYW5nbGVFcXVhbCIsIkxlZnRVcERvd25WZWN0b3IiLCJMZWZ0VXBUZWVWZWN0b3IiLCJMZWZ0VXBWZWN0b3IiLCJMZWZ0VXBWZWN0b3JCYXIiLCJMZWZ0VmVjdG9yIiwiTGVmdFZlY3RvckJhciIsIkxlZ2VuZEFwcGVhcmFuY2UiLCJMZWdlbmRlZCIsIkxlZ2VuZEZ1bmN0aW9uIiwiTGVnZW5kTGFiZWwiLCJMZWdlbmRMYXlvdXQiLCJMZWdlbmRNYXJnaW5zIiwiTGVnZW5kTWFya2VycyIsIkxlZ2VuZE1hcmtlclNpemUiLCJMZWdlbmRyZVAiLCJMZWdlbmRyZVEiLCJMZWdlbmRyZVR5cGUiLCJMZW5ndGgiLCJMZW5ndGhXaGlsZSIsIkxlcmNoUGhpIiwiTGVzcyIsIkxlc3NFcXVhbCIsIkxlc3NFcXVhbEdyZWF0ZXIiLCJMZXNzRXF1YWxUaGFuIiwiTGVzc0Z1bGxFcXVhbCIsIkxlc3NHcmVhdGVyIiwiTGVzc0xlc3MiLCJMZXNzU2xhbnRFcXVhbCIsIkxlc3NUaGFuIiwiTGVzc1RpbGRlIiwiTGV0dGVyQ2hhcmFjdGVyIiwiTGV0dGVyQ291bnRzIiwiTGV0dGVyTnVtYmVyIiwiTGV0dGVyUSIsIkxldmVsIiwiTGV2ZW5lVGVzdCIsIkxldmlDaXZpdGFUZW5zb3IiLCJMZXZ5RGlzdHJpYnV0aW9uIiwiTGV4aWNvZ3JhcGhpYyIsIkxpYnJhcnlEYXRhVHlwZSIsIkxpYnJhcnlGdW5jdGlvbiIsIkxpYnJhcnlGdW5jdGlvbkVycm9yIiwiTGlicmFyeUZ1bmN0aW9uSW5mb3JtYXRpb24iLCJMaWJyYXJ5RnVuY3Rpb25Mb2FkIiwiTGlicmFyeUZ1bmN0aW9uVW5sb2FkIiwiTGlicmFyeUxvYWQiLCJMaWJyYXJ5VW5sb2FkIiwiTGljZW5zZUlEIiwiTGlmdGluZ0ZpbHRlckRhdGEiLCJMaWZ0aW5nV2F2ZWxldFRyYW5zZm9ybSIsIkxpZ2h0Qmx1ZSIsIkxpZ2h0QnJvd24iLCJMaWdodEN5YW4iLCJMaWdodGVyIiwiTGlnaHRHcmF5IiwiTGlnaHRHcmVlbiIsIkxpZ2h0aW5nIiwiTGlnaHRpbmdBbmdsZSIsIkxpZ2h0TWFnZW50YSIsIkxpZ2h0T3JhbmdlIiwiTGlnaHRQaW5rIiwiTGlnaHRQdXJwbGUiLCJMaWdodFJlZCIsIkxpZ2h0U291cmNlcyIsIkxpZ2h0WWVsbG93IiwiTGlrZWxpaG9vZCIsIkxpbWl0IiwiTGltaXRzUG9zaXRpb25pbmciLCJMaW1pdHNQb3NpdGlvbmluZ1Rva2VucyIsIkxpbmRsZXlEaXN0cmlidXRpb24iLCJMaW5lIiwiTGluZTNEQm94IiwiTGluZTNEQm94T3B0aW9ucyIsIkxpbmVhckZpbHRlciIsIkxpbmVhckZyYWN0aW9uYWxPcHRpbWl6YXRpb24iLCJMaW5lYXJGcmFjdGlvbmFsVHJhbnNmb3JtIiwiTGluZWFyR3JhZGllbnRJbWFnZSIsIkxpbmVhcml6aW5nVHJhbnNmb3JtYXRpb25EYXRhIiwiTGluZWFyTGF5ZXIiLCJMaW5lYXJNb2RlbEZpdCIsIkxpbmVhck9mZnNldEZ1bmN0aW9uIiwiTGluZWFyT3B0aW1pemF0aW9uIiwiTGluZWFyUHJvZ3JhbW1pbmciLCJMaW5lYXJSZWN1cnJlbmNlIiwiTGluZWFyU29sdmUiLCJMaW5lYXJTb2x2ZUZ1bmN0aW9uIiwiTGluZUJveCIsIkxpbmVCb3hPcHRpb25zIiwiTGluZUJyZWFrIiwiTGluZWJyZWFrQWRqdXN0bWVudHMiLCJMaW5lQnJlYWtDaGFydCIsIkxpbmVicmVha1NlbWljb2xvbldlaWdodGluZyIsIkxpbmVCcmVha1dpdGhpbiIsIkxpbmVDb2xvciIsIkxpbmVHcmFwaCIsIkxpbmVJbmRlbnQiLCJMaW5lSW5kZW50TWF4RnJhY3Rpb24iLCJMaW5lSW50ZWdyYWxDb252b2x1dGlvblBsb3QiLCJMaW5lSW50ZWdyYWxDb252b2x1dGlvblNjYWxlIiwiTGluZUxlZ2VuZCIsIkxpbmVPcGFjaXR5IiwiTGluZVNwYWNpbmciLCJMaW5lV3JhcFBhcnRzIiwiTGlua0FjdGl2YXRlIiwiTGlua0Nsb3NlIiwiTGlua0Nvbm5lY3QiLCJMaW5rQ29ubmVjdGVkUSIsIkxpbmtDcmVhdGUiLCJMaW5rRXJyb3IiLCJMaW5rRmx1c2giLCJMaW5rRnVuY3Rpb24iLCJMaW5rSG9zdCIsIkxpbmtJbnRlcnJ1cHQiLCJMaW5rTGF1bmNoIiwiTGlua01vZGUiLCJMaW5rT2JqZWN0IiwiTGlua09wZW4iLCJMaW5rT3B0aW9ucyIsIkxpbmtQYXR0ZXJucyIsIkxpbmtQcm90b2NvbCIsIkxpbmtSYW5rQ2VudHJhbGl0eSIsIkxpbmtSZWFkIiwiTGlua1JlYWRIZWxkIiwiTGlua1JlYWR5USIsIkxpbmtzIiwiTGlua1NlcnZpY2UiLCJMaW5rV3JpdGUiLCJMaW5rV3JpdGVIZWxkIiwiTGlvdXZpbGxlTGFtYmRhIiwiTGlzdCIsIkxpc3RhYmxlIiwiTGlzdEFuaW1hdGUiLCJMaXN0Q29udG91clBsb3QiLCJMaXN0Q29udG91clBsb3QzRCIsIkxpc3RDb252b2x2ZSIsIkxpc3RDb3JyZWxhdGUiLCJMaXN0Q3VydmVQYXRoUGxvdCIsIkxpc3REZWNvbnZvbHZlIiwiTGlzdERlbnNpdHlQbG90IiwiTGlzdERlbnNpdHlQbG90M0QiLCJMaXN0ZW4iLCJMaXN0Rm9ybWF0IiwiTGlzdEZvdXJpZXJTZXF1ZW5jZVRyYW5zZm9ybSIsIkxpc3RJbnRlcnBvbGF0aW9uIiwiTGlzdExpbmVJbnRlZ3JhbENvbnZvbHV0aW9uUGxvdCIsIkxpc3RMaW5lUGxvdCIsIkxpc3RMb2dMaW5lYXJQbG90IiwiTGlzdExvZ0xvZ1Bsb3QiLCJMaXN0TG9nUGxvdCIsIkxpc3RQaWNrZXIiLCJMaXN0UGlja2VyQm94IiwiTGlzdFBpY2tlckJveEJhY2tncm91bmQiLCJMaXN0UGlja2VyQm94T3B0aW9ucyIsIkxpc3RQbGF5IiwiTGlzdFBsb3QiLCJMaXN0UGxvdDNEIiwiTGlzdFBvaW50UGxvdDNEIiwiTGlzdFBvbGFyUGxvdCIsIkxpc3RRIiwiTGlzdFNsaWNlQ29udG91clBsb3QzRCIsIkxpc3RTbGljZURlbnNpdHlQbG90M0QiLCJMaXN0U2xpY2VWZWN0b3JQbG90M0QiLCJMaXN0U3RlcFBsb3QiLCJMaXN0U3RyZWFtRGVuc2l0eVBsb3QiLCJMaXN0U3RyZWFtUGxvdCIsIkxpc3RTdXJmYWNlUGxvdDNEIiwiTGlzdFZlY3RvckRlbnNpdHlQbG90IiwiTGlzdFZlY3RvclBsb3QiLCJMaXN0VmVjdG9yUGxvdDNEIiwiTGlzdFpUcmFuc2Zvcm0iLCJMaXRlcmFsIiwiTGl0ZXJhbFNlYXJjaCIsIkxvY2FsQWRhcHRpdmVCaW5hcml6ZSIsIkxvY2FsQ2FjaGUiLCJMb2NhbENsdXN0ZXJpbmdDb2VmZmljaWVudCIsIkxvY2FsaXplRGVmaW5pdGlvbnMiLCJMb2NhbGl6ZVZhcmlhYmxlcyIsIkxvY2FsT2JqZWN0IiwiTG9jYWxPYmplY3RzIiwiTG9jYWxSZXNwb25zZU5vcm1hbGl6YXRpb25MYXllciIsIkxvY2FsU3VibWl0IiwiTG9jYWxTeW1ib2wiLCJMb2NhbFRpbWUiLCJMb2NhbFRpbWVab25lIiwiTG9jYXRpb25FcXVpdmFsZW5jZVRlc3QiLCJMb2NhdGlvblRlc3QiLCJMb2NhdG9yIiwiTG9jYXRvckF1dG9DcmVhdGUiLCJMb2NhdG9yQm94IiwiTG9jYXRvckJveE9wdGlvbnMiLCJMb2NhdG9yQ2VudGVyaW5nIiwiTG9jYXRvclBhbmUiLCJMb2NhdG9yUGFuZUJveCIsIkxvY2F0b3JQYW5lQm94T3B0aW9ucyIsIkxvY2F0b3JSZWdpb24iLCJMb2NrZWQiLCJMb2ciLCJMb2cxMCIsIkxvZzIiLCJMb2dCYXJuZXNHIiwiTG9nR2FtbWEiLCJMb2dHYW1tYURpc3RyaWJ1dGlvbiIsIkxvZ2ljYWxFeHBhbmQiLCJMb2dJbnRlZ3JhbCIsIkxvZ2lzdGljRGlzdHJpYnV0aW9uIiwiTG9naXN0aWNTaWdtb2lkIiwiTG9naXRNb2RlbEZpdCIsIkxvZ0xpa2VsaWhvb2QiLCJMb2dMaW5lYXJQbG90IiwiTG9nTG9naXN0aWNEaXN0cmlidXRpb24iLCJMb2dMb2dQbG90IiwiTG9nTXVsdGlub3JtYWxEaXN0cmlidXRpb24iLCJMb2dOb3JtYWxEaXN0cmlidXRpb24iLCJMb2dQbG90IiwiTG9nUmFua1Rlc3QiLCJMb2dTZXJpZXNEaXN0cmlidXRpb24iLCJMb25nRXF1YWwiLCJMb25nZXN0IiwiTG9uZ2VzdENvbW1vblNlcXVlbmNlIiwiTG9uZ2VzdENvbW1vblNlcXVlbmNlUG9zaXRpb25zIiwiTG9uZ2VzdENvbW1vblN1YnNlcXVlbmNlIiwiTG9uZ2VzdENvbW1vblN1YnNlcXVlbmNlUG9zaXRpb25zIiwiTG9uZ2VzdE1hdGNoIiwiTG9uZ2VzdE9yZGVyZWRTZXF1ZW5jZSIsIkxvbmdGb3JtIiwiTG9uZ2l0dWRlIiwiTG9uZ0xlZnRBcnJvdyIsIkxvbmdMZWZ0UmlnaHRBcnJvdyIsIkxvbmdSaWdodEFycm93IiwiTG9uZ1Nob3J0VGVybU1lbW9yeUxheWVyIiwiTG9va3VwIiwiTG9vcGJhY2siLCJMb29wRnJlZUdyYXBoUSIsIkxvb3BpbmciLCJMb3NzRnVuY3Rpb24iLCJMb3dlckNhc2VRIiwiTG93ZXJMZWZ0QXJyb3ciLCJMb3dlclJpZ2h0QXJyb3ciLCJMb3dlclRyaWFuZ3VsYXJpemUiLCJMb3dlclRyaWFuZ3VsYXJNYXRyaXhRIiwiTG93cGFzc0ZpbHRlciIsIkxRRXN0aW1hdG9yR2FpbnMiLCJMUUdSZWd1bGF0b3IiLCJMUU91dHB1dFJlZ3VsYXRvckdhaW5zIiwiTFFSZWd1bGF0b3JHYWlucyIsIkxVQmFja1N1YnN0aXR1dGlvbiIsIkx1Y2FzTCIsIkx1Y2Npb1NhbWlDb21wb25lbnRzIiwiTFVEZWNvbXBvc2l0aW9uIiwiTHVuYXJFY2xpcHNlIiwiTFVWQ29sb3IiLCJMeWFwdW5vdlNvbHZlIiwiTHlvbnNHcm91cEx5IiwiTWFjaGluZUlEIiwiTWFjaGluZU5hbWUiLCJNYWNoaW5lTnVtYmVyUSIsIk1hY2hpbmVQcmVjaXNpb24iLCJNYWNpbnRvc2hTeXN0ZW1QYWdlU2V0dXAiLCJNYWdlbnRhIiwiTWFnbmlmaWNhdGlvbiIsIk1hZ25pZnkiLCJNYWlsQWRkcmVzc1ZhbGlkYXRpb24iLCJNYWlsRXhlY3V0ZSIsIk1haWxGb2xkZXIiLCJNYWlsSXRlbSIsIk1haWxSZWNlaXZlckZ1bmN0aW9uIiwiTWFpbFJlc3BvbnNlRnVuY3Rpb24iLCJNYWlsU2VhcmNoIiwiTWFpbFNlcnZlckNvbm5lY3QiLCJNYWlsU2VydmVyQ29ubmVjdGlvbiIsIk1haWxTZXR0aW5ncyIsIk1haW5Tb2x2ZSIsIk1haW50YWluRHluYW1pY0NhY2hlcyIsIk1ham9yaXR5IiwiTWFrZUJveGVzIiwiTWFrZUV4cHJlc3Npb24iLCJNYWtlUnVsZXMiLCJNYW5hZ2VkTGlicmFyeUV4cHJlc3Npb25JRCIsIk1hbmFnZWRMaWJyYXJ5RXhwcmVzc2lvblEiLCJNYW5kZWxicm90U2V0Qm9ldHRjaGVyIiwiTWFuZGVsYnJvdFNldERpc3RhbmNlIiwiTWFuZGVsYnJvdFNldEl0ZXJhdGlvbkNvdW50IiwiTWFuZGVsYnJvdFNldE1lbWJlclEiLCJNYW5kZWxicm90U2V0UGxvdCIsIk1hbmdvbGR0TGFtYmRhIiwiTWFuaGF0dGFuRGlzdGFuY2UiLCJNYW5pcHVsYXRlIiwiTWFuaXB1bGF0b3IiLCJNYW5uZWRTcGFjZU1pc3Npb25EYXRhIiwiTWFubldoaXRuZXlUZXN0IiwiTWFudGlzc2FFeHBvbmVudCIsIk1hbnVhbCIsIk1hcCIsIk1hcEFsbCIsIk1hcEF0IiwiTWFwSW5kZXhlZCIsIk1BUHJvY2VzcyIsIk1hcFRocmVhZCIsIk1hcmNoZW5rb1Bhc3R1ckRpc3RyaWJ1dGlvbiIsIk1hcmN1bVEiLCJNYXJkaWFDb21iaW5lZFRlc3QiLCJNYXJkaWFLdXJ0b3Npc1Rlc3QiLCJNYXJkaWFTa2V3bmVzc1Rlc3QiLCJNYXJnaW5hbERpc3RyaWJ1dGlvbiIsIk1hcmtvdlByb2Nlc3NQcm9wZXJ0aWVzIiwiTWFza2luZyIsIk1hdGNoaW5nRGlzc2ltaWxhcml0eSIsIk1hdGNoTG9jYWxOYW1lUSIsIk1hdGNoTG9jYWxOYW1lcyIsIk1hdGNoUSIsIk1hdGVyaWFsIiwiTWF0aGVtYXRpY2FsRnVuY3Rpb25EYXRhIiwiTWF0aGVtYXRpY2FOb3RhdGlvbiIsIk1hdGhpZXVDIiwiTWF0aGlldUNoYXJhY3RlcmlzdGljQSIsIk1hdGhpZXVDaGFyYWN0ZXJpc3RpY0IiLCJNYXRoaWV1Q2hhcmFjdGVyaXN0aWNFeHBvbmVudCIsIk1hdGhpZXVDUHJpbWUiLCJNYXRoaWV1R3JvdXBNMTEiLCJNYXRoaWV1R3JvdXBNMTIiLCJNYXRoaWV1R3JvdXBNMjIiLCJNYXRoaWV1R3JvdXBNMjMiLCJNYXRoaWV1R3JvdXBNMjQiLCJNYXRoaWV1UyIsIk1hdGhpZXVTUHJpbWUiLCJNYXRoTUxGb3JtIiwiTWF0aE1MVGV4dCIsIk1hdHJpY2VzIiwiTWF0cml4RXhwIiwiTWF0cml4Rm9ybSIsIk1hdHJpeEZ1bmN0aW9uIiwiTWF0cml4TG9nIiwiTWF0cml4Tm9ybWFsRGlzdHJpYnV0aW9uIiwiTWF0cml4UGxvdCIsIk1hdHJpeFBvd2VyIiwiTWF0cml4UHJvcGVydHlEaXN0cmlidXRpb24iLCJNYXRyaXhRIiwiTWF0cml4UmFuayIsIk1hdHJpeFREaXN0cmlidXRpb24iLCJNYXgiLCJNYXhCZW5kIiwiTWF4Q2VsbE1lYXN1cmUiLCJNYXhDb2xvckRpc3RhbmNlIiwiTWF4RGF0ZSIsIk1heERldGVjdCIsIk1heER1cmF0aW9uIiwiTWF4RXh0cmFCYW5kd2lkdGhzIiwiTWF4RXh0cmFDb25kaXRpb25zIiwiTWF4RmVhdHVyZURpc3BsYWNlbWVudCIsIk1heEZlYXR1cmVzIiwiTWF4RmlsdGVyIiwiTWF4aW1hbEJ5IiwiTWF4aW1pemUiLCJNYXhJdGVtcyIsIk1heEl0ZXJhdGlvbnMiLCJNYXhMaW1pdCIsIk1heE1lbW9yeVVzZWQiLCJNYXhNaXh0dXJlS2VybmVscyIsIk1heE92ZXJsYXBGcmFjdGlvbiIsIk1heFBsb3RQb2ludHMiLCJNYXhQb2ludHMiLCJNYXhSZWN1cnNpb24iLCJNYXhTdGFibGVEaXN0cmlidXRpb24iLCJNYXhTdGVwRnJhY3Rpb24iLCJNYXhTdGVwcyIsIk1heFN0ZXBTaXplIiwiTWF4VHJhaW5pbmdSb3VuZHMiLCJNYXhWYWx1ZSIsIk1heHdlbGxEaXN0cmlidXRpb24iLCJNYXhXb3JkR2FwIiwiTWNMYXVnaGxpbkdyb3VwTWNMIiwiTWVhbiIsIk1lYW5BYnNvbHV0ZUxvc3NMYXllciIsIk1lYW5Bcm91bmQiLCJNZWFuQ2x1c3RlcmluZ0NvZWZmaWNpZW50IiwiTWVhbkRlZ3JlZUNvbm5lY3Rpdml0eSIsIk1lYW5EZXZpYXRpb24iLCJNZWFuRmlsdGVyIiwiTWVhbkdyYXBoRGlzdGFuY2UiLCJNZWFuTmVpZ2hib3JEZWdyZWUiLCJNZWFuU2hpZnQiLCJNZWFuU2hpZnRGaWx0ZXIiLCJNZWFuU3F1YXJlZExvc3NMYXllciIsIk1lZGlhbiIsIk1lZGlhbkRldmlhdGlvbiIsIk1lZGlhbkZpbHRlciIsIk1lZGljYWxUZXN0RGF0YSIsIk1lZGl1bSIsIk1laWplckciLCJNZWlqZXJHUmVkdWNlIiwiTWVpeG5lckRpc3RyaWJ1dGlvbiIsIk1lbGxpbkNvbnZvbHZlIiwiTWVsbGluVHJhbnNmb3JtIiwiTWVtYmVyUSIsIk1lbW9yeUF2YWlsYWJsZSIsIk1lbW9yeUNvbnN0cmFpbmVkIiwiTWVtb3J5Q29uc3RyYWludCIsIk1lbW9yeUluVXNlIiwiTWVuZ2VyTWVzaCIsIk1lbnUiLCJNZW51QXBwZWFyYW5jZSIsIk1lbnVDb21tYW5kS2V5IiwiTWVudUV2YWx1YXRvciIsIk1lbnVJdGVtIiwiTWVudUxpc3QiLCJNZW51UGFja2V0IiwiTWVudVNvcnRpbmdWYWx1ZSIsIk1lbnVTdHlsZSIsIk1lbnVWaWV3IiwiTWVyZ2UiLCJNZXJnZURpZmZlcmVuY2VzIiwiTWVyZ2luZ0Z1bmN0aW9uIiwiTWVyc2VubmVQcmltZUV4cG9uZW50IiwiTWVyc2VubmVQcmltZUV4cG9uZW50USIsIk1lc2giLCJNZXNoQ2VsbENlbnRyb2lkIiwiTWVzaENlbGxDb3VudCIsIk1lc2hDZWxsSGlnaGxpZ2h0IiwiTWVzaENlbGxJbmRleCIsIk1lc2hDZWxsTGFiZWwiLCJNZXNoQ2VsbE1hcmtlciIsIk1lc2hDZWxsTWVhc3VyZSIsIk1lc2hDZWxsUXVhbGl0eSIsIk1lc2hDZWxscyIsIk1lc2hDZWxsU2hhcGVGdW5jdGlvbiIsIk1lc2hDZWxsU3R5bGUiLCJNZXNoQ29ubmVjdGl2aXR5R3JhcGgiLCJNZXNoQ29vcmRpbmF0ZXMiLCJNZXNoRnVuY3Rpb25zIiwiTWVzaFByaW1pdGl2ZXMiLCJNZXNoUXVhbGl0eUdvYWwiLCJNZXNoUmFuZ2UiLCJNZXNoUmVmaW5lbWVudEZ1bmN0aW9uIiwiTWVzaFJlZ2lvbiIsIk1lc2hSZWdpb25RIiwiTWVzaFNoYWRpbmciLCJNZXNoU3R5bGUiLCJNZXNzYWdlIiwiTWVzc2FnZURpYWxvZyIsIk1lc3NhZ2VMaXN0IiwiTWVzc2FnZU5hbWUiLCJNZXNzYWdlT2JqZWN0IiwiTWVzc2FnZU9wdGlvbnMiLCJNZXNzYWdlUGFja2V0IiwiTWVzc2FnZXMiLCJNZXNzYWdlc05vdGVib29rIiwiTWV0YUNoYXJhY3RlcnMiLCJNZXRhSW5mb3JtYXRpb24iLCJNZXRlb3JTaG93ZXJEYXRhIiwiTWV0aG9kIiwiTWV0aG9kT3B0aW9ucyIsIk1leGljYW5IYXRXYXZlbGV0IiwiTWV5ZXJXYXZlbGV0IiwiTWlkcG9pbnQiLCJNaW4iLCJNaW5Db2xvckRpc3RhbmNlIiwiTWluRGF0ZSIsIk1pbkRldGVjdCIsIk1pbmVyYWxEYXRhIiwiTWluRmlsdGVyIiwiTWluaW1hbEJ5IiwiTWluaW1hbFBvbHlub21pYWwiLCJNaW5pbWFsU3RhdGVTcGFjZU1vZGVsIiwiTWluaW1pemUiLCJNaW5pbXVtVGltZUluY3JlbWVudCIsIk1pbkludGVydmFsU2l6ZSIsIk1pbmtvd3NraVF1ZXN0aW9uTWFyayIsIk1pbkxpbWl0IiwiTWluTWF4IiwiTWlub3JQbGFuZXREYXRhIiwiTWlub3JzIiwiTWluUmVjdXJzaW9uIiwiTWluU2l6ZSIsIk1pblN0YWJsZURpc3RyaWJ1dGlvbiIsIk1pbnVzIiwiTWludXNQbHVzIiwiTWluVmFsdWUiLCJNaXNzaW5nIiwiTWlzc2luZ0JlaGF2aW9yIiwiTWlzc2luZ0RhdGFNZXRob2QiLCJNaXNzaW5nRGF0YVJ1bGVzIiwiTWlzc2luZ1EiLCJNaXNzaW5nU3RyaW5nIiwiTWlzc2luZ1N0eWxlIiwiTWlzc2luZ1ZhbHVlUGF0dGVybiIsIk1pdHRhZ0xlZmZsZXJFIiwiTWl4ZWRGcmFjdGlvblBhcnRzIiwiTWl4ZWRHcmFwaFEiLCJNaXhlZE1hZ25pdHVkZSIsIk1peGVkUmFkaXgiLCJNaXhlZFJhZGl4UXVhbnRpdHkiLCJNaXhlZFVuaXQiLCJNaXh0dXJlRGlzdHJpYnV0aW9uIiwiTW9kIiwiTW9kYWwiLCJNb2RlIiwiTW9kdWxhciIsIk1vZHVsYXJJbnZlcnNlIiwiTW9kdWxhckxhbWJkYSIsIk1vZHVsZSIsIk1vZHVsdXMiLCJNb2ViaXVzTXUiLCJNb2xlY3VsZSIsIk1vbGVjdWxlQ29udGFpbnNRIiwiTW9sZWN1bGVFcXVpdmFsZW50USIsIk1vbGVjdWxlR3JhcGgiLCJNb2xlY3VsZU1vZGlmeSIsIk1vbGVjdWxlUGF0dGVybiIsIk1vbGVjdWxlUGxvdCIsIk1vbGVjdWxlUGxvdDNEIiwiTW9sZWN1bGVQcm9wZXJ0eSIsIk1vbGVjdWxlUSIsIk1vbGVjdWxlUmVjb2duaXplIiwiTW9sZWN1bGVWYWx1ZSIsIk1vbWVudCIsIk1vbWVudGFyeSIsIk1vbWVudENvbnZlcnQiLCJNb21lbnRFdmFsdWF0ZSIsIk1vbWVudEdlbmVyYXRpbmdGdW5jdGlvbiIsIk1vbWVudE9mSW5lcnRpYSIsIk1vbmRheSIsIk1vbml0b3IiLCJNb25vbWlhbExpc3QiLCJNb25vbWlhbE9yZGVyIiwiTW9uc3Rlckdyb3VwTSIsIk1vb25QaGFzZSIsIk1vb25Qb3NpdGlvbiIsIk1vcmxldFdhdmVsZXQiLCJNb3JwaG9sb2dpY2FsQmluYXJpemUiLCJNb3JwaG9sb2dpY2FsQnJhbmNoUG9pbnRzIiwiTW9ycGhvbG9naWNhbENvbXBvbmVudHMiLCJNb3JwaG9sb2dpY2FsRXVsZXJOdW1iZXIiLCJNb3JwaG9sb2dpY2FsR3JhcGgiLCJNb3JwaG9sb2dpY2FsUGVyaW1ldGVyIiwiTW9ycGhvbG9naWNhbFRyYW5zZm9ybSIsIk1vcnRhbGl0eURhdGEiLCJNb3N0IiwiTW91bnRhaW5EYXRhIiwiTW91c2VBbm5vdGF0aW9uIiwiTW91c2VBcHBlYXJhbmNlIiwiTW91c2VBcHBlYXJhbmNlVGFnIiwiTW91c2VCdXR0b25zIiwiTW91c2VvdmVyIiwiTW91c2VQb2ludGVyTm90ZSIsIk1vdXNlUG9zaXRpb24iLCJNb3ZpZURhdGEiLCJNb3ZpbmdBdmVyYWdlIiwiTW92aW5nTWFwIiwiTW92aW5nTWVkaWFuIiwiTW95YWxEaXN0cmlidXRpb24iLCJNdWx0aWNvbHVtbiIsIk11bHRpZWRnZVN0eWxlIiwiTXVsdGlncmFwaFEiLCJNdWx0aWxhdW5jaFdhcm5pbmciLCJNdWx0aUxldHRlckl0YWxpY3MiLCJNdWx0aUxldHRlclN0eWxlIiwiTXVsdGlsaW5lRnVuY3Rpb24iLCJNdWx0aW5vbWlhbCIsIk11bHRpbm9taWFsRGlzdHJpYnV0aW9uIiwiTXVsdGlub3JtYWxEaXN0cmlidXRpb24iLCJNdWx0aXBsaWNhdGl2ZU9yZGVyIiwiTXVsdGlwbGljaXR5IiwiTXVsdGlwbHlTaWRlcyIsIk11bHRpc2VsZWN0aW9uIiwiTXVsdGl2YXJpYXRlSHlwZXJnZW9tZXRyaWNEaXN0cmlidXRpb24iLCJNdWx0aXZhcmlhdGVQb2lzc29uRGlzdHJpYnV0aW9uIiwiTXVsdGl2YXJpYXRlVERpc3RyaWJ1dGlvbiIsIk4iLCJOYWthZ2FtaURpc3RyaWJ1dGlvbiIsIk5hbWVRIiwiTmFtZXMiLCJOYW1lc3BhY2VCb3giLCJOYW1lc3BhY2VCb3hPcHRpb25zIiwiTmFuZCIsIk5BcmdNYXgiLCJOQXJnTWluIiwiTkJlcm5vdWxsaUIiLCJOQm9keVNpbXVsYXRpb24iLCJOQm9keVNpbXVsYXRpb25EYXRhIiwiTkNhY2hlIiwiTkRFaWdlbnN5c3RlbSIsIk5ERWlnZW52YWx1ZXMiLCJORFNvbHZlIiwiTkRTb2x2ZVZhbHVlIiwiTmVhcmVzdCIsIk5lYXJlc3RGdW5jdGlvbiIsIk5lYXJlc3RNZXNoQ2VsbHMiLCJOZWFyZXN0TmVpZ2hib3JHcmFwaCIsIk5lYXJlc3RUbyIsIk5lYnVsYURhdGEiLCJOZWVkQ3VycmVudEZyb250RW5kUGFja2FnZVBhY2tldCIsIk5lZWRDdXJyZW50RnJvbnRFbmRTeW1ib2xzUGFja2V0IiwiTmVlZGxlbWFuV3Vuc2NoU2ltaWxhcml0eSIsIk5lZWRzIiwiTmVnYXRpdmUiLCJOZWdhdGl2ZUJpbm9taWFsRGlzdHJpYnV0aW9uIiwiTmVnYXRpdmVEZWZpbml0ZU1hdHJpeFEiLCJOZWdhdGl2ZUludGVnZXJzIiwiTmVnYXRpdmVNdWx0aW5vbWlhbERpc3RyaWJ1dGlvbiIsIk5lZ2F0aXZlUmF0aW9uYWxzIiwiTmVnYXRpdmVSZWFscyIsIk5lZ2F0aXZlU2VtaWRlZmluaXRlTWF0cml4USIsIk5laWdoYm9yaG9vZERhdGEiLCJOZWlnaGJvcmhvb2RHcmFwaCIsIk5lc3QiLCJOZXN0ZWRHcmVhdGVyR3JlYXRlciIsIk5lc3RlZExlc3NMZXNzIiwiTmVzdGVkU2NyaXB0UnVsZXMiLCJOZXN0R3JhcGgiLCJOZXN0TGlzdCIsIk5lc3RXaGlsZSIsIk5lc3RXaGlsZUxpc3QiLCJOZXRBcHBlbmQiLCJOZXRCaWRpcmVjdGlvbmFsT3BlcmF0b3IiLCJOZXRDaGFpbiIsIk5ldERlY29kZXIiLCJOZXREZWxldGUiLCJOZXREcm9wIiwiTmV0RW5jb2RlciIsIk5ldEV2YWx1YXRpb25Nb2RlIiwiTmV0RXh0cmFjdCIsIk5ldEZsYXR0ZW4iLCJOZXRGb2xkT3BlcmF0b3IiLCJOZXRHQU5PcGVyYXRvciIsIk5ldEdyYXBoIiwiTmV0SW5mb3JtYXRpb24iLCJOZXRJbml0aWFsaXplIiwiTmV0SW5zZXJ0IiwiTmV0SW5zZXJ0U2hhcmVkQXJyYXlzIiwiTmV0Sm9pbiIsIk5ldE1hcE9wZXJhdG9yIiwiTmV0TWFwVGhyZWFkT3BlcmF0b3IiLCJOZXRNZWFzdXJlbWVudHMiLCJOZXRNb2RlbCIsIk5ldE5lc3RPcGVyYXRvciIsIk5ldFBhaXJFbWJlZGRpbmdPcGVyYXRvciIsIk5ldFBvcnQiLCJOZXRQb3J0R3JhZGllbnQiLCJOZXRQcmVwZW5kIiwiTmV0UmVuYW1lIiwiTmV0UmVwbGFjZSIsIk5ldFJlcGxhY2VQYXJ0IiwiTmV0U2hhcmVkQXJyYXkiLCJOZXRTdGF0ZU9iamVjdCIsIk5ldFRha2UiLCJOZXRUcmFpbiIsIk5ldFRyYWluUmVzdWx0c09iamVjdCIsIk5ldHdvcmtQYWNrZXRDYXB0dXJlIiwiTmV0d29ya1BhY2tldFJlY29yZGluZyIsIk5ldHdvcmtQYWNrZXRSZWNvcmRpbmdEdXJpbmciLCJOZXR3b3JrUGFja2V0VHJhY2UiLCJOZXVtYW5uVmFsdWUiLCJOZXZpbGxlVGhldGFDIiwiTmV2aWxsZVRoZXRhRCIsIk5ldmlsbGVUaGV0YU4iLCJOZXZpbGxlVGhldGFTIiwiTmV3UHJpbWl0aXZlU3R5bGUiLCJORXhwZWN0YXRpb24iLCJOZXh0IiwiTmV4dENlbGwiLCJOZXh0RGF0ZSIsIk5leHRQcmltZSIsIk5leHRTY2hlZHVsZWRUYXNrVGltZSIsIk5Ib2xkQWxsIiwiTkhvbGRGaXJzdCIsIk5Ib2xkUmVzdCIsIk5pY2hvbHNHcmlkTGluZXMiLCJOaWNob2xzUGxvdCIsIk5pZ2h0SGVtaXNwaGVyZSIsIk5JbnRlZ3JhdGUiLCJOTWF4aW1pemUiLCJOTWF4VmFsdWUiLCJOTWluaW1pemUiLCJOTWluVmFsdWUiLCJOb21pbmFsVmFyaWFibGVzIiwiTm9uQXNzb2NpYXRpdmUiLCJOb25jZW50cmFsQmV0YURpc3RyaWJ1dGlvbiIsIk5vbmNlbnRyYWxDaGlTcXVhcmVEaXN0cmlidXRpb24iLCJOb25jZW50cmFsRlJhdGlvRGlzdHJpYnV0aW9uIiwiTm9uY2VudHJhbFN0dWRlbnRURGlzdHJpYnV0aW9uIiwiTm9uQ29tbXV0YXRpdmVNdWx0aXBseSIsIk5vbkNvbnN0YW50cyIsIk5vbmRpbWVuc2lvbmFsaXphdGlvblRyYW5zZm9ybSIsIk5vbmUiLCJOb25lVHJ1ZSIsIk5vbmxpbmVhck1vZGVsRml0IiwiTm9ubGluZWFyU3RhdGVTcGFjZU1vZGVsIiwiTm9ubG9jYWxNZWFuc0ZpbHRlciIsIk5vbk5lZ2F0aXZlIiwiTm9uTmVnYXRpdmVJbnRlZ2VycyIsIk5vbk5lZ2F0aXZlUmF0aW9uYWxzIiwiTm9uTmVnYXRpdmVSZWFscyIsIk5vblBvc2l0aXZlIiwiTm9uUG9zaXRpdmVJbnRlZ2VycyIsIk5vblBvc2l0aXZlUmF0aW9uYWxzIiwiTm9uUG9zaXRpdmVSZWFscyIsIk5vciIsIk5vcmx1bmRCIiwiTm9ybSIsIk5vcm1hbCIsIk5vcm1hbERpc3RyaWJ1dGlvbiIsIk5vcm1hbEdyb3VwaW5nIiwiTm9ybWFsaXphdGlvbkxheWVyIiwiTm9ybWFsaXplIiwiTm9ybWFsaXplZCIsIk5vcm1hbGl6ZWRTcXVhcmVkRXVjbGlkZWFuRGlzdGFuY2UiLCJOb3JtYWxNYXRyaXhRIiwiTm9ybWFsc0Z1bmN0aW9uIiwiTm9ybUZ1bmN0aW9uIiwiTm90IiwiTm90Q29uZ3J1ZW50IiwiTm90Q3VwQ2FwIiwiTm90RG91YmxlVmVydGljYWxCYXIiLCJOb3RlYm9vayIsIk5vdGVib29rQXBwbHkiLCJOb3RlYm9va0F1dG9TYXZlIiwiTm90ZWJvb2tDbG9zZSIsIk5vdGVib29rQ29udmVydFNldHRpbmdzIiwiTm90ZWJvb2tDcmVhdGUiLCJOb3RlYm9va0NyZWF0ZVJldHVybk9iamVjdCIsIk5vdGVib29rRGVmYXVsdCIsIk5vdGVib29rRGVsZXRlIiwiTm90ZWJvb2tEaXJlY3RvcnkiLCJOb3RlYm9va0R5bmFtaWNFeHByZXNzaW9uIiwiTm90ZWJvb2tFdmFsdWF0ZSIsIk5vdGVib29rRXZlbnRBY3Rpb25zIiwiTm90ZWJvb2tGaWxlTmFtZSIsIk5vdGVib29rRmluZCIsIk5vdGVib29rRmluZFJldHVybk9iamVjdCIsIk5vdGVib29rR2V0IiwiTm90ZWJvb2tHZXRMYXlvdXRJbmZvcm1hdGlvblBhY2tldCIsIk5vdGVib29rR2V0TWlzc3BlbGxpbmdzUGFja2V0IiwiTm90ZWJvb2tJbXBvcnQiLCJOb3RlYm9va0luZm9ybWF0aW9uIiwiTm90ZWJvb2tJbnRlcmZhY2VPYmplY3QiLCJOb3RlYm9va0xvY2F0ZSIsIk5vdGVib29rT2JqZWN0IiwiTm90ZWJvb2tPcGVuIiwiTm90ZWJvb2tPcGVuUmV0dXJuT2JqZWN0IiwiTm90ZWJvb2tQYXRoIiwiTm90ZWJvb2tQcmludCIsIk5vdGVib29rUHV0IiwiTm90ZWJvb2tQdXRSZXR1cm5PYmplY3QiLCJOb3RlYm9va1JlYWQiLCJOb3RlYm9va1Jlc2V0R2VuZXJhdGVkQ2VsbHMiLCJOb3RlYm9va3MiLCJOb3RlYm9va1NhdmUiLCJOb3RlYm9va1NhdmVBcyIsIk5vdGVib29rU2VsZWN0aW9uIiwiTm90ZWJvb2tTZXR1cExheW91dEluZm9ybWF0aW9uUGFja2V0IiwiTm90ZWJvb2tzTWVudSIsIk5vdGVib29rVGVtcGxhdGUiLCJOb3RlYm9va1dyaXRlIiwiTm90RWxlbWVudCIsIk5vdEVxdWFsVGlsZGUiLCJOb3RFeGlzdHMiLCJOb3RHcmVhdGVyIiwiTm90R3JlYXRlckVxdWFsIiwiTm90R3JlYXRlckZ1bGxFcXVhbCIsIk5vdEdyZWF0ZXJHcmVhdGVyIiwiTm90R3JlYXRlckxlc3MiLCJOb3RHcmVhdGVyU2xhbnRFcXVhbCIsIk5vdEdyZWF0ZXJUaWxkZSIsIk5vdGhpbmciLCJOb3RIdW1wRG93bkh1bXAiLCJOb3RIdW1wRXF1YWwiLCJOb3RpZmljYXRpb25GdW5jdGlvbiIsIk5vdExlZnRUcmlhbmdsZSIsIk5vdExlZnRUcmlhbmdsZUJhciIsIk5vdExlZnRUcmlhbmdsZUVxdWFsIiwiTm90TGVzcyIsIk5vdExlc3NFcXVhbCIsIk5vdExlc3NGdWxsRXF1YWwiLCJOb3RMZXNzR3JlYXRlciIsIk5vdExlc3NMZXNzIiwiTm90TGVzc1NsYW50RXF1YWwiLCJOb3RMZXNzVGlsZGUiLCJOb3ROZXN0ZWRHcmVhdGVyR3JlYXRlciIsIk5vdE5lc3RlZExlc3NMZXNzIiwiTm90UHJlY2VkZXMiLCJOb3RQcmVjZWRlc0VxdWFsIiwiTm90UHJlY2VkZXNTbGFudEVxdWFsIiwiTm90UHJlY2VkZXNUaWxkZSIsIk5vdFJldmVyc2VFbGVtZW50IiwiTm90UmlnaHRUcmlhbmdsZSIsIk5vdFJpZ2h0VHJpYW5nbGVCYXIiLCJOb3RSaWdodFRyaWFuZ2xlRXF1YWwiLCJOb3RTcXVhcmVTdWJzZXQiLCJOb3RTcXVhcmVTdWJzZXRFcXVhbCIsIk5vdFNxdWFyZVN1cGVyc2V0IiwiTm90U3F1YXJlU3VwZXJzZXRFcXVhbCIsIk5vdFN1YnNldCIsIk5vdFN1YnNldEVxdWFsIiwiTm90U3VjY2VlZHMiLCJOb3RTdWNjZWVkc0VxdWFsIiwiTm90U3VjY2VlZHNTbGFudEVxdWFsIiwiTm90U3VjY2VlZHNUaWxkZSIsIk5vdFN1cGVyc2V0IiwiTm90U3VwZXJzZXRFcXVhbCIsIk5vdFRpbGRlIiwiTm90VGlsZGVFcXVhbCIsIk5vdFRpbGRlRnVsbEVxdWFsIiwiTm90VGlsZGVUaWxkZSIsIk5vdFZlcnRpY2FsQmFyIiwiTm93IiwiTm9XaGl0ZXNwYWNlIiwiTlByb2JhYmlsaXR5IiwiTlByb2R1Y3QiLCJOUHJvZHVjdEZhY3RvcnMiLCJOUm9vdHMiLCJOU29sdmUiLCJOU3VtIiwiTlN1bVRlcm1zIiwiTnVjbGVhckV4cGxvc2lvbkRhdGEiLCJOdWNsZWFyUmVhY3RvckRhdGEiLCJOdWxsIiwiTnVsbFJlY29yZHMiLCJOdWxsU3BhY2UiLCJOdWxsV29yZHMiLCJOdW1iZXIiLCJOdW1iZXJDb21wb3NlIiwiTnVtYmVyRGVjb21wb3NlIiwiTnVtYmVyRXhwYW5kIiwiTnVtYmVyRmllbGRDbGFzc051bWJlciIsIk51bWJlckZpZWxkRGlzY3JpbWluYW50IiwiTnVtYmVyRmllbGRGdW5kYW1lbnRhbFVuaXRzIiwiTnVtYmVyRmllbGRJbnRlZ3JhbEJhc2lzIiwiTnVtYmVyRmllbGROb3JtUmVwcmVzZW50YXRpdmVzIiwiTnVtYmVyRmllbGRSZWd1bGF0b3IiLCJOdW1iZXJGaWVsZFJvb3RzT2ZVbml0eSIsIk51bWJlckZpZWxkU2lnbmF0dXJlIiwiTnVtYmVyRm9ybSIsIk51bWJlckZvcm1hdCIsIk51bWJlckxpbmVQbG90IiwiTnVtYmVyTWFya3MiLCJOdW1iZXJNdWx0aXBsaWVyIiwiTnVtYmVyUGFkZGluZyIsIk51bWJlclBvaW50IiwiTnVtYmVyUSIsIk51bWJlclNlcGFyYXRvciIsIk51bWJlclNpZ25zIiwiTnVtYmVyU3RyaW5nIiwiTnVtZXJhdG9yIiwiTnVtZXJhdG9yRGVub21pbmF0b3IiLCJOdW1lcmljYWxPcmRlciIsIk51bWVyaWNhbFNvcnQiLCJOdW1lcmljQXJyYXkiLCJOdW1lcmljQXJyYXlRIiwiTnVtZXJpY0FycmF5VHlwZSIsIk51bWVyaWNGdW5jdGlvbiIsIk51bWVyaWNRIiwiTnV0dGFsbFdpbmRvdyIsIk5WYWx1ZXMiLCJOeXF1aXN0R3JpZExpbmVzIiwiTnlxdWlzdFBsb3QiLCJPIiwiT2JzZXJ2YWJpbGl0eUdyYW1pYW4iLCJPYnNlcnZhYmlsaXR5TWF0cml4IiwiT2JzZXJ2YWJsZURlY29tcG9zaXRpb24iLCJPYnNlcnZhYmxlTW9kZWxRIiwiT2NlYW5EYXRhIiwiT2N0YWhlZHJvbiIsIk9kZFEiLCJPZmYiLCJPZmZzZXQiLCJPTEVEYXRhIiwiT24iLCJPTmFuR3JvdXBPTiIsIk9uY2UiLCJPbmVJZGVudGl0eSIsIk9wYWNpdHkiLCJPcGFjaXR5RnVuY3Rpb24iLCJPcGFjaXR5RnVuY3Rpb25TY2FsaW5nIiwiT3BlbiIsIk9wZW5BcHBlbmQiLCJPcGVuZXIiLCJPcGVuZXJCb3giLCJPcGVuZXJCb3hPcHRpb25zIiwiT3BlbmVyVmlldyIsIk9wZW5GdW5jdGlvbkluc3BlY3RvclBhY2tldCIsIk9wZW5pbmciLCJPcGVuUmVhZCIsIk9wZW5TcGVjaWFsT3B0aW9ucyIsIk9wZW5UZW1wb3JhcnkiLCJPcGVuV3JpdGUiLCJPcGVyYXRlIiwiT3BlcmF0aW5nU3lzdGVtIiwiT3BlcmF0b3JBcHBsaWVkIiwiT3B0aW11bUZsb3dEYXRhIiwiT3B0aW9uYWwiLCJPcHRpb25hbEVsZW1lbnQiLCJPcHRpb25JbnNwZWN0b3JTZXR0aW5ncyIsIk9wdGlvblEiLCJPcHRpb25zIiwiT3B0aW9uc1BhY2tldCIsIk9wdGlvbnNQYXR0ZXJuIiwiT3B0aW9uVmFsdWUiLCJPcHRpb25WYWx1ZUJveCIsIk9wdGlvblZhbHVlQm94T3B0aW9ucyIsIk9yIiwiT3JhbmdlIiwiT3JkZXIiLCJPcmRlckRpc3RyaWJ1dGlvbiIsIk9yZGVyZWRRIiwiT3JkZXJpbmciLCJPcmRlcmluZ0J5IiwiT3JkZXJpbmdMYXllciIsIk9yZGVybGVzcyIsIk9yZGVybGVzc1BhdHRlcm5TZXF1ZW5jZSIsIk9ybnN0ZWluVWhsZW5iZWNrUHJvY2VzcyIsIk9ydGhvZ29uYWxpemUiLCJPcnRob2dvbmFsTWF0cml4USIsIk91dCIsIk91dGVyIiwiT3V0ZXJQb2x5Z29uIiwiT3V0ZXJQb2x5aGVkcm9uIiwiT3V0cHV0QXV0b092ZXJ3cml0ZSIsIk91dHB1dENvbnRyb2xsYWJpbGl0eU1hdHJpeCIsIk91dHB1dENvbnRyb2xsYWJsZU1vZGVsUSIsIk91dHB1dEZvcm0iLCJPdXRwdXRGb3JtRGF0YSIsIk91dHB1dEdyb3VwaW5nIiwiT3V0cHV0TWF0aEVkaXRFeHByZXNzaW9uIiwiT3V0cHV0TmFtZVBhY2tldCIsIk91dHB1dFJlc3BvbnNlIiwiT3V0cHV0U2l6ZUxpbWl0IiwiT3V0cHV0U3RyZWFtIiwiT3ZlciIsIk92ZXJCYXIiLCJPdmVyRG90IiwiT3ZlcmZsb3ciLCJPdmVySGF0IiwiT3ZlcmxhcHMiLCJPdmVybGF5IiwiT3ZlcmxheUJveCIsIk92ZXJsYXlCb3hPcHRpb25zIiwiT3ZlcnNjcmlwdCIsIk92ZXJzY3JpcHRCb3giLCJPdmVyc2NyaXB0Qm94T3B0aW9ucyIsIk92ZXJUaWxkZSIsIk92ZXJWZWN0b3IiLCJPdmVyd3JpdGVUYXJnZXQiLCJPd2VuVCIsIk93blZhbHVlcyIsIlBhY2thZ2UiLCJQYWNraW5nTWV0aG9kIiwiUGFja1BhY2xldCIsIlBhY2xldERhdGFSZWJ1aWxkIiwiUGFjbGV0RGlyZWN0b3J5QWRkIiwiUGFjbGV0RGlyZWN0b3J5TG9hZCIsIlBhY2xldERpcmVjdG9yeVJlbW92ZSIsIlBhY2xldERpcmVjdG9yeVVubG9hZCIsIlBhY2xldERpc2FibGUiLCJQYWNsZXRFbmFibGUiLCJQYWNsZXRGaW5kIiwiUGFjbGV0RmluZFJlbW90ZSIsIlBhY2xldEluZm9ybWF0aW9uIiwiUGFjbGV0SW5zdGFsbCIsIlBhY2xldEluc3RhbGxTdWJtaXQiLCJQYWNsZXROZXdlclEiLCJQYWNsZXRPYmplY3QiLCJQYWNsZXRPYmplY3RRIiwiUGFjbGV0U2l0ZSIsIlBhY2xldFNpdGVPYmplY3QiLCJQYWNsZXRTaXRlUmVnaXN0ZXIiLCJQYWNsZXRTaXRlcyIsIlBhY2xldFNpdGVVbnJlZ2lzdGVyIiwiUGFjbGV0U2l0ZVVwZGF0ZSIsIlBhY2xldFVuaW5zdGFsbCIsIlBhY2xldFVwZGF0ZSIsIlBhZGRlZEZvcm0iLCJQYWRkaW5nIiwiUGFkZGluZ0xheWVyIiwiUGFkZGluZ1NpemUiLCJQYWRlQXBwcm94aW1hbnQiLCJQYWRMZWZ0IiwiUGFkUmlnaHQiLCJQYWdlQnJlYWtBYm92ZSIsIlBhZ2VCcmVha0JlbG93IiwiUGFnZUJyZWFrV2l0aGluIiwiUGFnZUZvb3RlckxpbmVzIiwiUGFnZUZvb3RlcnMiLCJQYWdlSGVhZGVyTGluZXMiLCJQYWdlSGVhZGVycyIsIlBhZ2VIZWlnaHQiLCJQYWdlUmFua0NlbnRyYWxpdHkiLCJQYWdlVGhlbWUiLCJQYWdlV2lkdGgiLCJQYWdpbmF0aW9uIiwiUGFpcmVkQmFyQ2hhcnQiLCJQYWlyZWRIaXN0b2dyYW0iLCJQYWlyZWRTbW9vdGhIaXN0b2dyYW0iLCJQYWlyZWRUVGVzdCIsIlBhaXJlZFpUZXN0IiwiUGFsZXR0ZU5vdGVib29rIiwiUGFsZXR0ZVBhdGgiLCJQYWxpbmRyb21lUSIsIlBhbmUiLCJQYW5lQm94IiwiUGFuZUJveE9wdGlvbnMiLCJQYW5lbCIsIlBhbmVsQm94IiwiUGFuZWxCb3hPcHRpb25zIiwiUGFuZWxlZCIsIlBhbmVTZWxlY3RvciIsIlBhbmVTZWxlY3RvckJveCIsIlBhbmVTZWxlY3RvckJveE9wdGlvbnMiLCJQYXBlcldpZHRoIiwiUGFyYWJvbGljQ3lsaW5kZXJEIiwiUGFyYWdyYXBoSW5kZW50IiwiUGFyYWdyYXBoU3BhY2luZyIsIlBhcmFsbGVsQXJyYXkiLCJQYXJhbGxlbENvbWJpbmUiLCJQYXJhbGxlbERvIiwiUGFyYWxsZWxlcGlwZWQiLCJQYXJhbGxlbEV2YWx1YXRlIiwiUGFyYWxsZWxpemF0aW9uIiwiUGFyYWxsZWxpemUiLCJQYXJhbGxlbE1hcCIsIlBhcmFsbGVsTmVlZHMiLCJQYXJhbGxlbG9ncmFtIiwiUGFyYWxsZWxQcm9kdWN0IiwiUGFyYWxsZWxTdWJtaXQiLCJQYXJhbGxlbFN1bSIsIlBhcmFsbGVsVGFibGUiLCJQYXJhbGxlbFRyeSIsIlBhcmFtZXRlciIsIlBhcmFtZXRlckVzdGltYXRvciIsIlBhcmFtZXRlck1peHR1cmVEaXN0cmlidXRpb24iLCJQYXJhbWV0ZXJWYXJpYWJsZXMiLCJQYXJhbWV0cmljRnVuY3Rpb24iLCJQYXJhbWV0cmljTkRTb2x2ZSIsIlBhcmFtZXRyaWNORFNvbHZlVmFsdWUiLCJQYXJhbWV0cmljUGxvdCIsIlBhcmFtZXRyaWNQbG90M0QiLCJQYXJhbWV0cmljUmFtcExheWVyIiwiUGFyYW1ldHJpY1JlZ2lvbiIsIlBhcmVudEJveCIsIlBhcmVudENlbGwiLCJQYXJlbnRDb25uZWN0IiwiUGFyZW50RGlyZWN0b3J5IiwiUGFyZW50Rm9ybSIsIlBhcmVudGhlc2l6ZSIsIlBhcmVudExpc3QiLCJQYXJlbnROb3RlYm9vayIsIlBhcmV0b0Rpc3RyaWJ1dGlvbiIsIlBhcmV0b1BpY2thbmRzRGlzdHJpYnV0aW9uIiwiUGFya0RhdGEiLCJQYXJ0IiwiUGFydEJlaGF2aW9yIiwiUGFydGlhbENvcnJlbGF0aW9uRnVuY3Rpb24iLCJQYXJ0aWFsRCIsIlBhcnRpY2xlQWNjZWxlcmF0b3JEYXRhIiwiUGFydGljbGVEYXRhIiwiUGFydGl0aW9uIiwiUGFydGl0aW9uR3JhbnVsYXJpdHkiLCJQYXJ0aXRpb25zUCIsIlBhcnRpdGlvbnNRIiwiUGFydExheWVyIiwiUGFydE9mU3BlZWNoIiwiUGFydFByb3RlY3Rpb24iLCJQYXJ6ZW5XaW5kb3ciLCJQYXNjYWxEaXN0cmlidXRpb24iLCJQYXNzRXZlbnRzRG93biIsIlBhc3NFdmVudHNVcCIsIlBhc3RlIiwiUGFzdGVBdXRvUXVvdGVDaGFyYWN0ZXJzIiwiUGFzdGVCb3hGb3JtSW5saW5lQ2VsbHMiLCJQYXN0ZUJ1dHRvbiIsIlBhdGgiLCJQYXRoR3JhcGgiLCJQYXRoR3JhcGhRIiwiUGF0dGVybiIsIlBhdHRlcm5GaWxsaW5nIiwiUGF0dGVyblNlcXVlbmNlIiwiUGF0dGVyblRlc3QiLCJQYXVsaU1hdHJpeCIsIlBhdWxXYXZlbGV0IiwiUGF1c2UiLCJQYXVzZWRUaW1lIiwiUERGIiwiUGVha0RldGVjdCIsIlBlYW5vQ3VydmUiLCJQZWFyc29uQ2hpU3F1YXJlVGVzdCIsIlBlYXJzb25Db3JyZWxhdGlvblRlc3QiLCJQZWFyc29uRGlzdHJpYnV0aW9uIiwiUGVyY2VudEZvcm0iLCJQZXJmZWN0TnVtYmVyIiwiUGVyZmVjdE51bWJlclEiLCJQZXJmb3JtYW5jZUdvYWwiLCJQZXJpbWV0ZXIiLCJQZXJpb2RpY0JvdW5kYXJ5Q29uZGl0aW9uIiwiUGVyaW9kaWNJbnRlcnBvbGF0aW9uIiwiUGVyaW9kb2dyYW0iLCJQZXJpb2RvZ3JhbUFycmF5IiwiUGVybWFuZW50IiwiUGVybWlzc2lvbnMiLCJQZXJtaXNzaW9uc0dyb3VwIiwiUGVybWlzc2lvbnNHcm91cE1lbWJlclEiLCJQZXJtaXNzaW9uc0dyb3VwcyIsIlBlcm1pc3Npb25zS2V5IiwiUGVybWlzc2lvbnNLZXlzIiwiUGVybXV0YXRpb25DeWNsZXMiLCJQZXJtdXRhdGlvbkN5Y2xlc1EiLCJQZXJtdXRhdGlvbkdyb3VwIiwiUGVybXV0YXRpb25MZW5ndGgiLCJQZXJtdXRhdGlvbkxpc3QiLCJQZXJtdXRhdGlvbkxpc3RRIiwiUGVybXV0YXRpb25NYXgiLCJQZXJtdXRhdGlvbk1pbiIsIlBlcm11dGF0aW9uT3JkZXIiLCJQZXJtdXRhdGlvblBvd2VyIiwiUGVybXV0YXRpb25Qcm9kdWN0IiwiUGVybXV0YXRpb25SZXBsYWNlIiwiUGVybXV0YXRpb25zIiwiUGVybXV0YXRpb25TdXBwb3J0IiwiUGVybXV0ZSIsIlBlcm9uYU1hbGlrRmlsdGVyIiwiUGVycGVuZGljdWxhciIsIlBlcnBlbmRpY3VsYXJCaXNlY3RvciIsIlBlcnNpc3RlbmNlTG9jYXRpb24iLCJQZXJzaXN0ZW5jZVRpbWUiLCJQZXJzaXN0ZW50T2JqZWN0IiwiUGVyc2lzdGVudE9iamVjdHMiLCJQZXJzaXN0ZW50VmFsdWUiLCJQZXJzb25EYXRhIiwiUEVSVERpc3RyaWJ1dGlvbiIsIlBldGVyc2VuR3JhcGgiLCJQaGFzZU1hcmdpbnMiLCJQaGFzZVJhbmdlIiwiUGh5c2ljYWxTeXN0ZW1EYXRhIiwiUGkiLCJQaWNrIiwiUElERGF0YSIsIlBJRERlcml2YXRpdmVGaWx0ZXIiLCJQSURGZWVkZm9yd2FyZCIsIlBJRFR1bmUiLCJQaWVjZXdpc2UiLCJQaWVjZXdpc2VFeHBhbmQiLCJQaWVDaGFydCIsIlBpZUNoYXJ0M0QiLCJQaWxsYWlUcmFjZSIsIlBpbGxhaVRyYWNlVGVzdCIsIlBpbmdUaW1lIiwiUGluayIsIlBpdGNoUmVjb2duaXplIiwiUGl2b3RpbmciLCJQaXhlbENvbnN0cmFpbmVkIiwiUGl4ZWxWYWx1ZSIsIlBpeGVsVmFsdWVQb3NpdGlvbnMiLCJQbGFjZWQiLCJQbGFjZWhvbGRlciIsIlBsYWNlaG9sZGVyUmVwbGFjZSIsIlBsYWluIiwiUGxhbmFyQW5nbGUiLCJQbGFuYXJHcmFwaCIsIlBsYW5hckdyYXBoUSIsIlBsYW5ja1JhZGlhdGlvbkxhdyIsIlBsYW5lQ3VydmVEYXRhIiwiUGxhbmV0YXJ5TW9vbkRhdGEiLCJQbGFuZXREYXRhIiwiUGxhbnREYXRhIiwiUGxheSIsIlBsYXlSYW5nZSIsIlBsb3QiLCJQbG90M0QiLCJQbG90M01hdHJpeCIsIlBsb3REaXZpc2lvbiIsIlBsb3RKb2luZWQiLCJQbG90TGFiZWwiLCJQbG90TGFiZWxzIiwiUGxvdExheW91dCIsIlBsb3RMZWdlbmRzIiwiUGxvdE1hcmtlcnMiLCJQbG90UG9pbnRzIiwiUGxvdFJhbmdlIiwiUGxvdFJhbmdlQ2xpcHBpbmciLCJQbG90UmFuZ2VDbGlwUGxhbmVzU3R5bGUiLCJQbG90UmFuZ2VQYWRkaW5nIiwiUGxvdFJlZ2lvbiIsIlBsb3RTdHlsZSIsIlBsb3RUaGVtZSIsIlBsdXJhbGl6ZSIsIlBsdXMiLCJQbHVzTWludXMiLCJQb2NoaGFtbWVyIiwiUG9kU3RhdGVzIiwiUG9kV2lkdGgiLCJQb2ludCIsIlBvaW50M0RCb3giLCJQb2ludDNEQm94T3B0aW9ucyIsIlBvaW50Qm94IiwiUG9pbnRCb3hPcHRpb25zIiwiUG9pbnRGaWd1cmVDaGFydCIsIlBvaW50TGVnZW5kIiwiUG9pbnRTaXplIiwiUG9pc3NvbkNvbnN1bERpc3RyaWJ1dGlvbiIsIlBvaXNzb25EaXN0cmlidXRpb24iLCJQb2lzc29uUHJvY2VzcyIsIlBvaXNzb25XaW5kb3ciLCJQb2xhckF4ZXMiLCJQb2xhckF4ZXNPcmlnaW4iLCJQb2xhckdyaWRMaW5lcyIsIlBvbGFyUGxvdCIsIlBvbGFyVGlja3MiLCJQb2xlWmVyb01hcmtlcnMiLCJQb2x5YUFlcHBsaURpc3RyaWJ1dGlvbiIsIlBvbHlHYW1tYSIsIlBvbHlnb24iLCJQb2x5Z29uM0RCb3giLCJQb2x5Z29uM0RCb3hPcHRpb25zIiwiUG9seWdvbmFsTnVtYmVyIiwiUG9seWdvbkFuZ2xlIiwiUG9seWdvbkJveCIsIlBvbHlnb25Cb3hPcHRpb25zIiwiUG9seWdvbkNvb3JkaW5hdGVzIiwiUG9seWdvbkRlY29tcG9zaXRpb24iLCJQb2x5Z29uSG9sZVNjYWxlIiwiUG9seWdvbkludGVyc2VjdGlvbnMiLCJQb2x5Z29uU2NhbGUiLCJQb2x5aGVkcm9uIiwiUG9seWhlZHJvbkFuZ2xlIiwiUG9seWhlZHJvbkNvb3JkaW5hdGVzIiwiUG9seWhlZHJvbkRhdGEiLCJQb2x5aGVkcm9uRGVjb21wb3NpdGlvbiIsIlBvbHloZWRyb25HZW51cyIsIlBvbHlMb2ciLCJQb2x5bm9taWFsRXh0ZW5kZWRHQ0QiLCJQb2x5bm9taWFsRm9ybSIsIlBvbHlub21pYWxHQ0QiLCJQb2x5bm9taWFsTENNIiwiUG9seW5vbWlhbE1vZCIsIlBvbHlub21pYWxRIiwiUG9seW5vbWlhbFF1b3RpZW50IiwiUG9seW5vbWlhbFF1b3RpZW50UmVtYWluZGVyIiwiUG9seW5vbWlhbFJlZHVjZSIsIlBvbHlub21pYWxSZW1haW5kZXIiLCJQb2x5bm9taWFscyIsIlBvb2xpbmdMYXllciIsIlBvcHVwTWVudSIsIlBvcHVwTWVudUJveCIsIlBvcHVwTWVudUJveE9wdGlvbnMiLCJQb3B1cFZpZXciLCJQb3B1cFdpbmRvdyIsIlBvc2l0aW9uIiwiUG9zaXRpb25JbmRleCIsIlBvc2l0aXZlIiwiUG9zaXRpdmVEZWZpbml0ZU1hdHJpeFEiLCJQb3NpdGl2ZUludGVnZXJzIiwiUG9zaXRpdmVSYXRpb25hbHMiLCJQb3NpdGl2ZVJlYWxzIiwiUG9zaXRpdmVTZW1pZGVmaW5pdGVNYXRyaXhRIiwiUG9zc2libGVaZXJvUSIsIlBvc3RmaXgiLCJQb3N0U2NyaXB0IiwiUG93ZXIiLCJQb3dlckRpc3RyaWJ1dGlvbiIsIlBvd2VyRXhwYW5kIiwiUG93ZXJNb2QiLCJQb3dlck1vZExpc3QiLCJQb3dlclJhbmdlIiwiUG93ZXJTcGVjdHJhbERlbnNpdHkiLCJQb3dlcnNSZXByZXNlbnRhdGlvbnMiLCJQb3dlclN5bW1ldHJpY1BvbHlub21pYWwiLCJQcmVjZWRlbmNlIiwiUHJlY2VkZW5jZUZvcm0iLCJQcmVjZWRlcyIsIlByZWNlZGVzRXF1YWwiLCJQcmVjZWRlc1NsYW50RXF1YWwiLCJQcmVjZWRlc1RpbGRlIiwiUHJlY2lzaW9uIiwiUHJlY2lzaW9uR29hbCIsIlByZURlY3JlbWVudCIsIlByZWRpY3QiLCJQcmVkaWN0aW9uUm9vdCIsIlByZWRpY3RvckZ1bmN0aW9uIiwiUHJlZGljdG9ySW5mb3JtYXRpb24iLCJQcmVkaWN0b3JNZWFzdXJlbWVudHMiLCJQcmVkaWN0b3JNZWFzdXJlbWVudHNPYmplY3QiLCJQcmVlbXB0UHJvdGVjdCIsIlByZWZlcmVuY2VzUGF0aCIsIlByZWZpeCIsIlByZUluY3JlbWVudCIsIlByZXBlbmQiLCJQcmVwZW5kTGF5ZXIiLCJQcmVwZW5kVG8iLCJQcmVwcm9jZXNzaW5nUnVsZXMiLCJQcmVzZXJ2ZUNvbG9yIiwiUHJlc2VydmVJbWFnZU9wdGlvbnMiLCJQcmV2aW91cyIsIlByZXZpb3VzQ2VsbCIsIlByZXZpb3VzRGF0ZSIsIlByaWNlR3JhcGhEaXN0cmlidXRpb24iLCJQcmltYXJ5UGxhY2Vob2xkZXIiLCJQcmltZSIsIlByaW1lTnUiLCJQcmltZU9tZWdhIiwiUHJpbWVQaSIsIlByaW1lUG93ZXJRIiwiUHJpbWVRIiwiUHJpbWVzIiwiUHJpbWVaZXRhUCIsIlByaW1pdGl2ZVBvbHlub21pYWxRIiwiUHJpbWl0aXZlUm9vdCIsIlByaW1pdGl2ZVJvb3RMaXN0IiwiUHJpbmNpcGFsQ29tcG9uZW50cyIsIlByaW5jaXBhbFZhbHVlIiwiUHJpbnQiLCJQcmludGFibGVBU0NJSVEiLCJQcmludEFjdGlvbiIsIlByaW50Rm9ybSIsIlByaW50aW5nQ29waWVzIiwiUHJpbnRpbmdPcHRpb25zIiwiUHJpbnRpbmdQYWdlUmFuZ2UiLCJQcmludGluZ1N0YXJ0aW5nUGFnZU51bWJlciIsIlByaW50aW5nU3R5bGVFbnZpcm9ubWVudCIsIlByaW50b3V0M0QiLCJQcmludG91dDNEUHJldmlld2VyIiwiUHJpbnRQcmVjaXNpb24iLCJQcmludFRlbXBvcmFyeSIsIlByaXNtIiwiUHJpc21Cb3giLCJQcmlzbUJveE9wdGlvbnMiLCJQcml2YXRlQ2VsbE9wdGlvbnMiLCJQcml2YXRlRXZhbHVhdGlvbk9wdGlvbnMiLCJQcml2YXRlRm9udE9wdGlvbnMiLCJQcml2YXRlRnJvbnRFbmRPcHRpb25zIiwiUHJpdmF0ZUtleSIsIlByaXZhdGVOb3RlYm9va09wdGlvbnMiLCJQcml2YXRlUGF0aHMiLCJQcm9iYWJpbGl0eSIsIlByb2JhYmlsaXR5RGlzdHJpYnV0aW9uIiwiUHJvYmFiaWxpdHlQbG90IiwiUHJvYmFiaWxpdHlQciIsIlByb2JhYmlsaXR5U2NhbGVQbG90IiwiUHJvYml0TW9kZWxGaXQiLCJQcm9jZXNzQ29ubmVjdGlvbiIsIlByb2Nlc3NEaXJlY3RvcnkiLCJQcm9jZXNzRW52aXJvbm1lbnQiLCJQcm9jZXNzZXMiLCJQcm9jZXNzRXN0aW1hdG9yIiwiUHJvY2Vzc0luZm9ybWF0aW9uIiwiUHJvY2Vzc09iamVjdCIsIlByb2Nlc3NQYXJhbWV0ZXJBc3N1bXB0aW9ucyIsIlByb2Nlc3NQYXJhbWV0ZXJRIiwiUHJvY2Vzc1N0YXRlRG9tYWluIiwiUHJvY2Vzc1N0YXR1cyIsIlByb2Nlc3NUaW1lRG9tYWluIiwiUHJvZHVjdCIsIlByb2R1Y3REaXN0cmlidXRpb24iLCJQcm9kdWN0TG9nIiwiUHJvZ3Jlc3NJbmRpY2F0b3IiLCJQcm9ncmVzc0luZGljYXRvckJveCIsIlByb2dyZXNzSW5kaWNhdG9yQm94T3B0aW9ucyIsIlByb2plY3Rpb24iLCJQcm9sb2ciLCJQcm9tcHRGb3JtIiwiUHJvb2ZPYmplY3QiLCJQcm9wZXJ0aWVzIiwiUHJvcGVydHkiLCJQcm9wZXJ0eUxpc3QiLCJQcm9wZXJ0eVZhbHVlIiwiUHJvcG9ydGlvbiIsIlByb3BvcnRpb25hbCIsIlByb3RlY3QiLCJQcm90ZWN0ZWQiLCJQcm90ZWluRGF0YSIsIlBydW5pbmciLCJQc2V1ZG9JbnZlcnNlIiwiUHN5Y2hyb21ldHJpY1Byb3BlcnR5RGF0YSIsIlB1YmxpY0tleSIsIlB1Ymxpc2hlcklEIiwiUHVsc2FyRGF0YSIsIlB1bmN0dWF0aW9uQ2hhcmFjdGVyIiwiUHVycGxlIiwiUHV0IiwiUHV0QXBwZW5kIiwiUHlyYW1pZCIsIlB5cmFtaWRCb3giLCJQeXJhbWlkQm94T3B0aW9ucyIsIlFCaW5vbWlhbCIsIlFGYWN0b3JpYWwiLCJRR2FtbWEiLCJRSHlwZXJnZW9tZXRyaWNQRlEiLCJRbkRpc3BlcnNpb24iLCJRUG9jaGhhbW1lciIsIlFQb2x5R2FtbWEiLCJRUkRlY29tcG9zaXRpb24iLCJRdWFkcmF0aWNJcnJhdGlvbmFsUSIsIlF1YWRyYXRpY09wdGltaXphdGlvbiIsIlF1YW50aWxlIiwiUXVhbnRpbGVQbG90IiwiUXVhbnRpdHkiLCJRdWFudGl0eUFycmF5IiwiUXVhbnRpdHlEaXN0cmlidXRpb24iLCJRdWFudGl0eUZvcm0iLCJRdWFudGl0eU1hZ25pdHVkZSIsIlF1YW50aXR5USIsIlF1YW50aXR5VW5pdCIsIlF1YW50aXR5VmFyaWFibGUiLCJRdWFudGl0eVZhcmlhYmxlQ2Fub25pY2FsVW5pdCIsIlF1YW50aXR5VmFyaWFibGVEaW1lbnNpb25zIiwiUXVhbnRpdHlWYXJpYWJsZUlkZW50aWZpZXIiLCJRdWFudGl0eVZhcmlhYmxlUGh5c2ljYWxRdWFudGl0eSIsIlF1YXJ0aWNzIiwiUXVhcnRpbGVEZXZpYXRpb24iLCJRdWFydGlsZXMiLCJRdWFydGlsZVNrZXduZXNzIiwiUXVlcnkiLCJRdWV1ZWluZ05ldHdvcmtQcm9jZXNzIiwiUXVldWVpbmdQcm9jZXNzIiwiUXVldWVQcm9wZXJ0aWVzIiwiUXVpZXQiLCJRdWl0IiwiUXVvdGllbnQiLCJRdW90aWVudFJlbWFpbmRlciIsIlJhZGlhbEdyYWRpZW50SW1hZ2UiLCJSYWRpYWxpdHlDZW50cmFsaXR5IiwiUmFkaWNhbEJveCIsIlJhZGljYWxCb3hPcHRpb25zIiwiUmFkaW9CdXR0b24iLCJSYWRpb0J1dHRvbkJhciIsIlJhZGlvQnV0dG9uQm94IiwiUmFkaW9CdXR0b25Cb3hPcHRpb25zIiwiUmFkb24iLCJSYWRvblRyYW5zZm9ybSIsIlJhbWFudWphblRhdSIsIlJhbWFudWphblRhdUwiLCJSYW1hbnVqYW5UYXVUaGV0YSIsIlJhbWFudWphblRhdVoiLCJSYW1wIiwiUmFuZG9tIiwiUmFuZG9tQ2hvaWNlIiwiUmFuZG9tQ29sb3IiLCJSYW5kb21Db21wbGV4IiwiUmFuZG9tRW50aXR5IiwiUmFuZG9tRnVuY3Rpb24iLCJSYW5kb21HZW9Qb3NpdGlvbiIsIlJhbmRvbUdyYXBoIiwiUmFuZG9tSW1hZ2UiLCJSYW5kb21JbnN0YW5jZSIsIlJhbmRvbUludGVnZXIiLCJSYW5kb21QZXJtdXRhdGlvbiIsIlJhbmRvbVBvaW50IiwiUmFuZG9tUG9seWdvbiIsIlJhbmRvbVBvbHloZWRyb24iLCJSYW5kb21QcmltZSIsIlJhbmRvbVJlYWwiLCJSYW5kb21TYW1wbGUiLCJSYW5kb21TZWVkIiwiUmFuZG9tU2VlZGluZyIsIlJhbmRvbVZhcmlhdGUiLCJSYW5kb21XYWxrUHJvY2VzcyIsIlJhbmRvbVdvcmQiLCJSYW5nZSIsIlJhbmdlRmlsdGVyIiwiUmFuZ2VTcGVjaWZpY2F0aW9uIiwiUmFua2VkTWF4IiwiUmFua2VkTWluIiwiUmFyZXJQcm9iYWJpbGl0eSIsIlJhc3RlciIsIlJhc3RlcjNEIiwiUmFzdGVyM0RCb3giLCJSYXN0ZXIzREJveE9wdGlvbnMiLCJSYXN0ZXJBcnJheSIsIlJhc3RlckJveCIsIlJhc3RlckJveE9wdGlvbnMiLCJSYXN0ZXJpemUiLCJSYXN0ZXJTaXplIiwiUmF0aW9uYWwiLCJSYXRpb25hbEZ1bmN0aW9ucyIsIlJhdGlvbmFsaXplIiwiUmF0aW9uYWxzIiwiUmF0aW9zIiwiUmF3QXJyYXkiLCJSYXdCb3hlcyIsIlJhd0RhdGEiLCJSYXdNZWRpdW0iLCJSYXlsZWlnaERpc3RyaWJ1dGlvbiIsIlJlIiwiUmVhZCIsIlJlYWRCeXRlQXJyYXkiLCJSZWFkTGluZSIsIlJlYWRMaXN0IiwiUmVhZFByb3RlY3RlZCIsIlJlYWRTdHJpbmciLCJSZWFsIiwiUmVhbEFicyIsIlJlYWxCbG9ja0RpYWdvbmFsRm9ybSIsIlJlYWxEaWdpdHMiLCJSZWFsRXhwb25lbnQiLCJSZWFscyIsIlJlYWxTaWduIiwiUmVhcCIsIlJlYnVpbGRQYWNsZXREYXRhIiwiUmVjb2duaXRpb25QcmlvciIsIlJlY29nbml0aW9uVGhyZXNob2xkIiwiUmVjb3JkIiwiUmVjb3JkTGlzdHMiLCJSZWNvcmRTZXBhcmF0b3JzIiwiUmVjdGFuZ2xlIiwiUmVjdGFuZ2xlQm94IiwiUmVjdGFuZ2xlQm94T3B0aW9ucyIsIlJlY3RhbmdsZUNoYXJ0IiwiUmVjdGFuZ2xlQ2hhcnQzRCIsIlJlY3Rhbmd1bGFyUmVwZWF0aW5nRWxlbWVudCIsIlJlY3VycmVuY2VGaWx0ZXIiLCJSZWN1cnJlbmNlVGFibGUiLCJSZWN1cnJpbmdEaWdpdHNGb3JtIiwiUmVkIiwiUmVkdWNlIiwiUmVmQm94IiwiUmVmZXJlbmNlTGluZVN0eWxlIiwiUmVmZXJlbmNlTWFya2VycyIsIlJlZmVyZW5jZU1hcmtlclN0eWxlIiwiUmVmaW5lIiwiUmVmbGVjdGlvbk1hdHJpeCIsIlJlZmxlY3Rpb25UcmFuc2Zvcm0iLCJSZWZyZXNoIiwiUmVmcmVzaFJhdGUiLCJSZWdpb24iLCJSZWdpb25CaW5hcml6ZSIsIlJlZ2lvbkJvdW5kYXJ5IiwiUmVnaW9uQm91bmRhcnlTdHlsZSIsIlJlZ2lvbkJvdW5kcyIsIlJlZ2lvbkNlbnRyb2lkIiwiUmVnaW9uRGlmZmVyZW5jZSIsIlJlZ2lvbkRpbWVuc2lvbiIsIlJlZ2lvbkRpc2pvaW50IiwiUmVnaW9uRGlzdGFuY2UiLCJSZWdpb25EaXN0YW5jZUZ1bmN0aW9uIiwiUmVnaW9uRW1iZWRkaW5nRGltZW5zaW9uIiwiUmVnaW9uRXF1YWwiLCJSZWdpb25GaWxsaW5nU3R5bGUiLCJSZWdpb25GdW5jdGlvbiIsIlJlZ2lvbkltYWdlIiwiUmVnaW9uSW50ZXJzZWN0aW9uIiwiUmVnaW9uTWVhc3VyZSIsIlJlZ2lvbk1lbWJlciIsIlJlZ2lvbk1lbWJlckZ1bmN0aW9uIiwiUmVnaW9uTW9tZW50IiwiUmVnaW9uTmVhcmVzdCIsIlJlZ2lvbk5lYXJlc3RGdW5jdGlvbiIsIlJlZ2lvblBsb3QiLCJSZWdpb25QbG90M0QiLCJSZWdpb25Qcm9kdWN0IiwiUmVnaW9uUSIsIlJlZ2lvblJlc2l6ZSIsIlJlZ2lvblNpemUiLCJSZWdpb25TeW1tZXRyaWNEaWZmZXJlbmNlIiwiUmVnaW9uVW5pb24iLCJSZWdpb25XaXRoaW4iLCJSZWdpc3RlckV4dGVybmFsRXZhbHVhdG9yIiwiUmVndWxhckV4cHJlc3Npb24iLCJSZWd1bGFyaXphdGlvbiIsIlJlZ3VsYXJseVNhbXBsZWRRIiwiUmVndWxhclBvbHlnb24iLCJSZUltIiwiUmVJbUxhYmVscyIsIlJlSW1QbG90IiwiUmVJbVN0eWxlIiwiUmVpbnN0YWxsIiwiUmVsYXRpb25hbERhdGFiYXNlIiwiUmVsYXRpb25HcmFwaCIsIlJlbGVhc2UiLCJSZWxlYXNlSG9sZCIsIlJlbGlhYmlsaXR5RGlzdHJpYnV0aW9uIiwiUmVsaWVmSW1hZ2UiLCJSZWxpZWZQbG90IiwiUmVtb3RlQXV0aG9yaXphdGlvbkNhY2hpbmciLCJSZW1vdGVDb25uZWN0IiwiUmVtb3RlQ29ubmVjdGlvbk9iamVjdCIsIlJlbW90ZUZpbGUiLCJSZW1vdGVSdW4iLCJSZW1vdGVSdW5Qcm9jZXNzIiwiUmVtb3ZlIiwiUmVtb3ZlQWxwaGFDaGFubmVsIiwiUmVtb3ZlQXN5bmNocm9ub3VzVGFzayIsIlJlbW92ZUF1ZGlvU3RyZWFtIiwiUmVtb3ZlQmFja2dyb3VuZCIsIlJlbW92ZUNoYW5uZWxMaXN0ZW5lciIsIlJlbW92ZUNoYW5uZWxTdWJzY3JpYmVycyIsIlJlbW92ZWQiLCJSZW1vdmVEaWFjcml0aWNzIiwiUmVtb3ZlSW5wdXRTdHJlYW1NZXRob2QiLCJSZW1vdmVPdXRwdXRTdHJlYW1NZXRob2QiLCJSZW1vdmVQcm9wZXJ0eSIsIlJlbW92ZVNjaGVkdWxlZFRhc2siLCJSZW1vdmVVc2VycyIsIlJlbW92ZVZpZGVvU3RyZWFtIiwiUmVuYW1lRGlyZWN0b3J5IiwiUmVuYW1lRmlsZSIsIlJlbmRlckFsbCIsIlJlbmRlcmluZ09wdGlvbnMiLCJSZW5ld2FsUHJvY2VzcyIsIlJlbmtvQ2hhcnQiLCJSZXBhaXJNZXNoIiwiUmVwZWF0ZWQiLCJSZXBlYXRlZE51bGwiLCJSZXBlYXRlZFN0cmluZyIsIlJlcGVhdGVkVGltaW5nIiwiUmVwZWF0aW5nRWxlbWVudCIsIlJlcGxhY2UiLCJSZXBsYWNlQWxsIiwiUmVwbGFjZUhlbGRQYXJ0IiwiUmVwbGFjZUltYWdlVmFsdWUiLCJSZXBsYWNlTGlzdCIsIlJlcGxhY2VQYXJ0IiwiUmVwbGFjZVBpeGVsVmFsdWUiLCJSZXBsYWNlUmVwZWF0ZWQiLCJSZXBsaWNhdGVMYXllciIsIlJlcXVpcmVkUGh5c2ljYWxRdWFudGl0aWVzIiwiUmVzYW1wbGluZyIsIlJlc2FtcGxpbmdBbGdvcml0aG1EYXRhIiwiUmVzYW1wbGluZ01ldGhvZCIsIlJlc2NhbGUiLCJSZXNjYWxpbmdUcmFuc2Zvcm0iLCJSZXNldERpcmVjdG9yeSIsIlJlc2V0TWVudXNQYWNrZXQiLCJSZXNldFNjaGVkdWxlZFRhc2siLCJSZXNoYXBlTGF5ZXIiLCJSZXNpZHVlIiwiUmVzaXplTGF5ZXIiLCJSZXNvbHZlIiwiUmVzb3VyY2VBY3F1aXJlIiwiUmVzb3VyY2VEYXRhIiwiUmVzb3VyY2VGdW5jdGlvbiIsIlJlc291cmNlT2JqZWN0IiwiUmVzb3VyY2VSZWdpc3RlciIsIlJlc291cmNlUmVtb3ZlIiwiUmVzb3VyY2VTZWFyY2giLCJSZXNvdXJjZVN1Ym1pc3Npb25PYmplY3QiLCJSZXNvdXJjZVN1Ym1pdCIsIlJlc291cmNlU3lzdGVtQmFzZSIsIlJlc291cmNlU3lzdGVtUGF0aCIsIlJlc291cmNlVXBkYXRlIiwiUmVzb3VyY2VWZXJzaW9uIiwiUmVzcG9uc2VGb3JtIiwiUmVzdCIsIlJlc3RhcnRJbnRlcnZhbCIsIlJlc3RyaWN0ZWQiLCJSZXN1bHRhbnQiLCJSZXN1bWVQYWNrZXQiLCJSZXR1cm4iLCJSZXR1cm5FbnRlcnNJbnB1dCIsIlJldHVybkV4cHJlc3Npb25QYWNrZXQiLCJSZXR1cm5JbnB1dEZvcm1QYWNrZXQiLCJSZXR1cm5QYWNrZXQiLCJSZXR1cm5SZWNlaXB0RnVuY3Rpb24iLCJSZXR1cm5UZXh0UGFja2V0IiwiUmV2ZXJzZSIsIlJldmVyc2VBcHBsaWVkIiwiUmV2ZXJzZUJpb3J0aG9nb25hbFNwbGluZVdhdmVsZXQiLCJSZXZlcnNlRWxlbWVudCIsIlJldmVyc2VFcXVpbGlicml1bSIsIlJldmVyc2VHcmFwaCIsIlJldmVyc2VTb3J0IiwiUmV2ZXJzZVNvcnRCeSIsIlJldmVyc2VVcEVxdWlsaWJyaXVtIiwiUmV2b2x1dGlvbkF4aXMiLCJSZXZvbHV0aW9uUGxvdDNEIiwiUkdCQ29sb3IiLCJSaWNjYXRpU29sdmUiLCJSaWNlRGlzdHJpYnV0aW9uIiwiUmlkZ2VGaWx0ZXIiLCJSaWVtYW5uUiIsIlJpZW1hbm5TaWVnZWxUaGV0YSIsIlJpZW1hbm5TaWVnZWxaIiwiUmllbWFublhpIiwiUmlmZmxlIiwiUmlnaHQiLCJSaWdodEFycm93IiwiUmlnaHRBcnJvd0JhciIsIlJpZ2h0QXJyb3dMZWZ0QXJyb3ciLCJSaWdodENvbXBvc2l0aW9uIiwiUmlnaHRDb3NldFJlcHJlc2VudGF0aXZlIiwiUmlnaHREb3duVGVlVmVjdG9yIiwiUmlnaHREb3duVmVjdG9yIiwiUmlnaHREb3duVmVjdG9yQmFyIiwiUmlnaHRUZWUiLCJSaWdodFRlZUFycm93IiwiUmlnaHRUZWVWZWN0b3IiLCJSaWdodFRyaWFuZ2xlIiwiUmlnaHRUcmlhbmdsZUJhciIsIlJpZ2h0VHJpYW5nbGVFcXVhbCIsIlJpZ2h0VXBEb3duVmVjdG9yIiwiUmlnaHRVcFRlZVZlY3RvciIsIlJpZ2h0VXBWZWN0b3IiLCJSaWdodFVwVmVjdG9yQmFyIiwiUmlnaHRWZWN0b3IiLCJSaWdodFZlY3RvckJhciIsIlJpc2tBY2hpZXZlbWVudEltcG9ydGFuY2UiLCJSaXNrUmVkdWN0aW9uSW1wb3J0YW5jZSIsIlJvZ2Vyc1Rhbmltb3RvRGlzc2ltaWxhcml0eSIsIlJvbGxQaXRjaFlhd0FuZ2xlcyIsIlJvbGxQaXRjaFlhd01hdHJpeCIsIlJvbWFuTnVtZXJhbCIsIlJvb3QiLCJSb290QXBwcm94aW1hbnQiLCJSb290SW50ZXJ2YWxzIiwiUm9vdExvY3VzUGxvdCIsIlJvb3RNZWFuU3F1YXJlIiwiUm9vdE9mVW5pdHlRIiwiUm9vdFJlZHVjZSIsIlJvb3RzIiwiUm9vdFN1bSIsIlJvdGF0ZSIsIlJvdGF0ZUxhYmVsIiwiUm90YXRlTGVmdCIsIlJvdGF0ZVJpZ2h0IiwiUm90YXRpb25BY3Rpb24iLCJSb3RhdGlvbkJveCIsIlJvdGF0aW9uQm94T3B0aW9ucyIsIlJvdGF0aW9uTWF0cml4IiwiUm90YXRpb25UcmFuc2Zvcm0iLCJSb3VuZCIsIlJvdW5kSW1wbGllcyIsIlJvdW5kaW5nUmFkaXVzIiwiUm93IiwiUm93QWxpZ25tZW50cyIsIlJvd0JhY2tncm91bmRzIiwiUm93Qm94IiwiUm93SGVpZ2h0cyIsIlJvd0xpbmVzIiwiUm93TWluSGVpZ2h0IiwiUm93UmVkdWNlIiwiUm93c0VxdWFsIiwiUm93U3BhY2luZ3MiLCJSU29sdmUiLCJSU29sdmVWYWx1ZSIsIlJ1ZGluU2hhcGlybyIsIlJ1ZHZhbGlzR3JvdXBSdSIsIlJ1bGUiLCJSdWxlQ29uZGl0aW9uIiwiUnVsZURlbGF5ZWQiLCJSdWxlRm9ybSIsIlJ1bGVQbG90IiwiUnVsZXJVbml0cyIsIlJ1biIsIlJ1blByb2Nlc3MiLCJSdW5TY2hlZHVsZWRUYXNrIiwiUnVuVGhyb3VnaCIsIlJ1bnRpbWVBdHRyaWJ1dGVzIiwiUnVudGltZU9wdGlvbnMiLCJSdXNzZWxsUmFvRGlzc2ltaWxhcml0eSIsIlNhbWVRIiwiU2FtZVRlc3QiLCJTYW1lVGVzdFByb3BlcnRpZXMiLCJTYW1wbGVkRW50aXR5Q2xhc3MiLCJTYW1wbGVEZXB0aCIsIlNhbXBsZWRTb3VuZEZ1bmN0aW9uIiwiU2FtcGxlZFNvdW5kTGlzdCIsIlNhbXBsZVJhdGUiLCJTYW1wbGluZ1BlcmlvZCIsIlNBUklNQVByb2Nlc3MiLCJTQVJNQVByb2Nlc3MiLCJTQVNUcmlhbmdsZSIsIlNhdGVsbGl0ZURhdGEiLCJTYXRpc2ZpYWJpbGl0eUNvdW50IiwiU2F0aXNmaWFiaWxpdHlJbnN0YW5jZXMiLCJTYXRpc2ZpYWJsZVEiLCJTYXR1cmRheSIsIlNhdmUiLCJTYXZlYWJsZSIsIlNhdmVBdXRvRGVsZXRlIiwiU2F2ZUNvbm5lY3Rpb24iLCJTYXZlRGVmaW5pdGlvbnMiLCJTYXZpdHpreUdvbGF5TWF0cml4IiwiU2F3dG9vdGhXYXZlIiwiU2NhbGUiLCJTY2FsZWQiLCJTY2FsZURpdmlzaW9ucyIsIlNjYWxlZE1vdXNlUG9zaXRpb24iLCJTY2FsZU9yaWdpbiIsIlNjYWxlUGFkZGluZyIsIlNjYWxlUmFuZ2VzIiwiU2NhbGVSYW5nZVN0eWxlIiwiU2NhbGluZ0Z1bmN0aW9ucyIsIlNjYWxpbmdNYXRyaXgiLCJTY2FsaW5nVHJhbnNmb3JtIiwiU2NhbiIsIlNjaGVkdWxlZFRhc2siLCJTY2hlZHVsZWRUYXNrQWN0aXZlUSIsIlNjaGVkdWxlZFRhc2tJbmZvcm1hdGlvbiIsIlNjaGVkdWxlZFRhc2tJbmZvcm1hdGlvbkRhdGEiLCJTY2hlZHVsZWRUYXNrT2JqZWN0IiwiU2NoZWR1bGVkVGFza3MiLCJTY2h1ckRlY29tcG9zaXRpb24iLCJTY2llbnRpZmljRm9ybSIsIlNjaWVudGlmaWNOb3RhdGlvblRocmVzaG9sZCIsIlNjb3JlckdpIiwiU2NvcmVyR2lQcmltZSIsIlNjb3JlckhpIiwiU2NvcmVySGlQcmltZSIsIlNjcmVlblJlY3RhbmdsZSIsIlNjcmVlblN0eWxlRW52aXJvbm1lbnQiLCJTY3JpcHRCYXNlbGluZVNoaWZ0cyIsIlNjcmlwdEZvcm0iLCJTY3JpcHRMZXZlbCIsIlNjcmlwdE1pblNpemUiLCJTY3JpcHRSdWxlcyIsIlNjcmlwdFNpemVNdWx0aXBsaWVycyIsIlNjcm9sbGJhcnMiLCJTY3JvbGxpbmdPcHRpb25zIiwiU2Nyb2xsUG9zaXRpb24iLCJTZWFyY2hBZGp1c3RtZW50IiwiU2VhcmNoSW5kZXhPYmplY3QiLCJTZWFyY2hJbmRpY2VzIiwiU2VhcmNoUXVlcnlTdHJpbmciLCJTZWFyY2hSZXN1bHRPYmplY3QiLCJTZWMiLCJTZWNoIiwiU2VjaERpc3RyaWJ1dGlvbiIsIlNlY29uZE9yZGVyQ29uZU9wdGltaXphdGlvbiIsIlNlY3Rpb25Hcm91cGluZyIsIlNlY3RvckNoYXJ0IiwiU2VjdG9yQ2hhcnQzRCIsIlNlY3Rvck9yaWdpbiIsIlNlY3RvclNwYWNpbmciLCJTZWN1cmVkQXV0aGVudGljYXRpb25LZXkiLCJTZWN1cmVkQXV0aGVudGljYXRpb25LZXlzIiwiU2VlZFJhbmRvbSIsIlNlbGVjdCIsIlNlbGVjdGFibGUiLCJTZWxlY3RDb21wb25lbnRzIiwiU2VsZWN0ZWRDZWxscyIsIlNlbGVjdGVkTm90ZWJvb2siLCJTZWxlY3RGaXJzdCIsIlNlbGVjdGlvbiIsIlNlbGVjdGlvbkFuaW1hdGUiLCJTZWxlY3Rpb25DZWxsIiwiU2VsZWN0aW9uQ2VsbENyZWF0ZUNlbGwiLCJTZWxlY3Rpb25DZWxsRGVmYXVsdFN0eWxlIiwiU2VsZWN0aW9uQ2VsbFBhcmVudFN0eWxlIiwiU2VsZWN0aW9uQ3JlYXRlQ2VsbCIsIlNlbGVjdGlvbkRlYnVnZ2VyVGFnIiwiU2VsZWN0aW9uRHVwbGljYXRlQ2VsbCIsIlNlbGVjdGlvbkV2YWx1YXRlIiwiU2VsZWN0aW9uRXZhbHVhdGVDcmVhdGVDZWxsIiwiU2VsZWN0aW9uTW92ZSIsIlNlbGVjdGlvblBsYWNlaG9sZGVyIiwiU2VsZWN0aW9uU2V0U3R5bGUiLCJTZWxlY3RXaXRoQ29udGVudHMiLCJTZWxmTG9vcHMiLCJTZWxmTG9vcFN0eWxlIiwiU2VtYW50aWNJbXBvcnQiLCJTZW1hbnRpY0ltcG9ydFN0cmluZyIsIlNlbWFudGljSW50ZXJwcmV0YXRpb24iLCJTZW1pYWxnZWJyYWljQ29tcG9uZW50SW5zdGFuY2VzIiwiU2VtaWRlZmluaXRlT3B0aW1pemF0aW9uIiwiU2VuZE1haWwiLCJTZW5kTWVzc2FnZSIsIlNlcXVlbmNlIiwiU2VxdWVuY2VBbGlnbm1lbnQiLCJTZXF1ZW5jZUF0dGVudGlvbkxheWVyIiwiU2VxdWVuY2VDYXNlcyIsIlNlcXVlbmNlQ291bnQiLCJTZXF1ZW5jZUZvbGQiLCJTZXF1ZW5jZUZvbGRMaXN0IiwiU2VxdWVuY2VGb3JtIiwiU2VxdWVuY2VIb2xkIiwiU2VxdWVuY2VMYXN0TGF5ZXIiLCJTZXF1ZW5jZU1vc3RMYXllciIsIlNlcXVlbmNlUG9zaXRpb24iLCJTZXF1ZW5jZVByZWRpY3QiLCJTZXF1ZW5jZVByZWRpY3RvckZ1bmN0aW9uIiwiU2VxdWVuY2VSZXBsYWNlIiwiU2VxdWVuY2VSZXN0TGF5ZXIiLCJTZXF1ZW5jZVJldmVyc2VMYXllciIsIlNlcXVlbmNlU3BsaXQiLCJTZXJpZXMiLCJTZXJpZXNDb2VmZmljaWVudCIsIlNlcmllc0RhdGEiLCJTZXJpZXNUZXJtR29hbCIsIlNlcnZpY2VDb25uZWN0IiwiU2VydmljZURpc2Nvbm5lY3QiLCJTZXJ2aWNlRXhlY3V0ZSIsIlNlcnZpY2VPYmplY3QiLCJTZXJ2aWNlUmVxdWVzdCIsIlNlcnZpY2VSZXNwb25zZSIsIlNlcnZpY2VTdWJtaXQiLCJTZXNzaW9uU3VibWl0IiwiU2Vzc2lvblRpbWUiLCJTZXQiLCJTZXRBY2N1cmFjeSIsIlNldEFscGhhQ2hhbm5lbCIsIlNldEF0dHJpYnV0ZXMiLCJTZXRiYWNrcyIsIlNldEJveEZvcm1OYW1lc1BhY2tldCIsIlNldENsb3VkRGlyZWN0b3J5IiwiU2V0Q29va2llcyIsIlNldERlbGF5ZWQiLCJTZXREaXJlY3RvcnkiLCJTZXRFbnZpcm9ubWVudCIsIlNldEV2YWx1YXRpb25Ob3RlYm9vayIsIlNldEZpbGVEYXRlIiwiU2V0RmlsZUxvYWRpbmdDb250ZXh0IiwiU2V0Tm90ZWJvb2tTdGF0dXNMaW5lIiwiU2V0T3B0aW9ucyIsIlNldE9wdGlvbnNQYWNrZXQiLCJTZXRQZXJtaXNzaW9ucyIsIlNldFByZWNpc2lvbiIsIlNldFByb3BlcnR5IiwiU2V0U2VjdXJlZEF1dGhlbnRpY2F0aW9uS2V5IiwiU2V0U2VsZWN0ZWROb3RlYm9vayIsIlNldFNoYXJlZEZ1bmN0aW9uIiwiU2V0U2hhcmVkVmFyaWFibGUiLCJTZXRTcGVlY2hQYXJhbWV0ZXJzUGFja2V0IiwiU2V0U3RyZWFtUG9zaXRpb24iLCJTZXRTeXN0ZW1Nb2RlbCIsIlNldFN5c3RlbU9wdGlvbnMiLCJTZXR0ZXIiLCJTZXR0ZXJCYXIiLCJTZXR0ZXJCb3giLCJTZXR0ZXJCb3hPcHRpb25zIiwiU2V0dGluZyIsIlNldFVzZXJzIiwiU2V0VmFsdWUiLCJTaGFkaW5nIiwiU2hhbGxvdyIsIlNoYW5ub25XYXZlbGV0IiwiU2hhcGlyb1dpbGtUZXN0IiwiU2hhcmUiLCJTaGFyaW5nTGlzdCIsIlNoYXJwZW4iLCJTaGVhcmluZ01hdHJpeCIsIlNoZWFyaW5nVHJhbnNmb3JtIiwiU2hlbGxSZWdpb24iLCJTaGVuQ2FzdGFuTWF0cml4IiwiU2hpZnRlZEdvbXBlcnR6RGlzdHJpYnV0aW9uIiwiU2hpZnRSZWdpc3RlclNlcXVlbmNlIiwiU2hvcnQiLCJTaG9ydERvd25BcnJvdyIsIlNob3J0ZXN0IiwiU2hvcnRlc3RNYXRjaCIsIlNob3J0ZXN0UGF0aEZ1bmN0aW9uIiwiU2hvcnRMZWZ0QXJyb3ciLCJTaG9ydFJpZ2h0QXJyb3ciLCJTaG9ydFRpbWVGb3VyaWVyIiwiU2hvcnRUaW1lRm91cmllckRhdGEiLCJTaG9ydFVwQXJyb3ciLCJTaG93IiwiU2hvd0F1dG9Db252ZXJ0IiwiU2hvd0F1dG9TcGVsbENoZWNrIiwiU2hvd0F1dG9TdHlsZXMiLCJTaG93Q2VsbEJyYWNrZXQiLCJTaG93Q2VsbExhYmVsIiwiU2hvd0NlbGxUYWdzIiwiU2hvd0Nsb3NlZENlbGxBcmVhIiwiU2hvd0NvZGVBc3Npc3QiLCJTaG93Q29udGVudHMiLCJTaG93Q29udHJvbHMiLCJTaG93Q3Vyc29yVHJhY2tlciIsIlNob3dHcm91cE9wZW5DbG9zZUljb24iLCJTaG93R3JvdXBPcGVuZXIiLCJTaG93SW52aXNpYmxlQ2hhcmFjdGVycyIsIlNob3dQYWdlQnJlYWtzIiwiU2hvd1ByZWRpY3RpdmVJbnRlcmZhY2UiLCJTaG93U2VsZWN0aW9uIiwiU2hvd1Nob3J0Qm94Rm9ybSIsIlNob3dTcGVjaWFsQ2hhcmFjdGVycyIsIlNob3dTdHJpbmdDaGFyYWN0ZXJzIiwiU2hvd1N5bnRheFN0eWxlcyIsIlNocmlua2luZ0RlbGF5IiwiU2hyaW5rV3JhcEJvdW5kaW5nQm94IiwiU2lkZXJlYWxUaW1lIiwiU2llZ2VsVGhldGEiLCJTaWVnZWxUdWtleVRlc3QiLCJTaWVycGluc2tpQ3VydmUiLCJTaWVycGluc2tpTWVzaCIsIlNpZ24iLCJTaWduYXR1cmUiLCJTaWduZWRSYW5rVGVzdCIsIlNpZ25lZFJlZ2lvbkRpc3RhbmNlIiwiU2lnbmlmaWNhbmNlTGV2ZWwiLCJTaWduUGFkZGluZyIsIlNpZ25UZXN0IiwiU2ltaWxhcml0eVJ1bGVzIiwiU2ltcGxlR3JhcGgiLCJTaW1wbGVHcmFwaFEiLCJTaW1wbGVQb2x5Z29uUSIsIlNpbXBsZVBvbHloZWRyb25RIiwiU2ltcGxleCIsIlNpbXBsaWZ5IiwiU2luIiwiU2luYyIsIlNpbmdoTWFkZGFsYURpc3RyaWJ1dGlvbiIsIlNpbmdsZUV2YWx1YXRpb24iLCJTaW5nbGVMZXR0ZXJJdGFsaWNzIiwiU2luZ2xlTGV0dGVyU3R5bGUiLCJTaW5ndWxhclZhbHVlRGVjb21wb3NpdGlvbiIsIlNpbmd1bGFyVmFsdWVMaXN0IiwiU2luZ3VsYXJWYWx1ZVBsb3QiLCJTaW5ndWxhclZhbHVlcyIsIlNpbmgiLCJTaW5oSW50ZWdyYWwiLCJTaW5JbnRlZ3JhbCIsIlNpeEpTeW1ib2wiLCJTa2VsZXRvbiIsIlNrZWxldG9uVHJhbnNmb3JtIiwiU2tlbGxhbURpc3RyaWJ1dGlvbiIsIlNrZXduZXNzIiwiU2tld05vcm1hbERpc3RyaWJ1dGlvbiIsIlNraW5TdHlsZSIsIlNraXAiLCJTbGljZUNvbnRvdXJQbG90M0QiLCJTbGljZURlbnNpdHlQbG90M0QiLCJTbGljZURpc3RyaWJ1dGlvbiIsIlNsaWNlVmVjdG9yUGxvdDNEIiwiU2xpZGVyIiwiU2xpZGVyMkQiLCJTbGlkZXIyREJveCIsIlNsaWRlcjJEQm94T3B0aW9ucyIsIlNsaWRlckJveCIsIlNsaWRlckJveE9wdGlvbnMiLCJTbGlkZVZpZXciLCJTbG90IiwiU2xvdFNlcXVlbmNlIiwiU21hbGwiLCJTbWFsbENpcmNsZSIsIlNtYWxsZXIiLCJTbWl0aERlY29tcG9zaXRpb24iLCJTbWl0aERlbGF5Q29tcGVuc2F0b3IiLCJTbWl0aFdhdGVybWFuU2ltaWxhcml0eSIsIlNtb290aERlbnNpdHlIaXN0b2dyYW0iLCJTbW9vdGhIaXN0b2dyYW0iLCJTbW9vdGhIaXN0b2dyYW0zRCIsIlNtb290aEtlcm5lbERpc3RyaWJ1dGlvbiIsIlNuRGlzcGVyc2lvbiIsIlNuaXBwZXQiLCJTbnViUG9seWhlZHJvbiIsIlNvY2lhbE1lZGlhRGF0YSIsIlNvY2tldCIsIlNvY2tldENvbm5lY3QiLCJTb2NrZXRMaXN0ZW4iLCJTb2NrZXRMaXN0ZW5lciIsIlNvY2tldE9iamVjdCIsIlNvY2tldE9wZW4iLCJTb2NrZXRSZWFkTWVzc2FnZSIsIlNvY2tldFJlYWR5USIsIlNvY2tldHMiLCJTb2NrZXRXYWl0QWxsIiwiU29ja2V0V2FpdE5leHQiLCJTb2Z0bWF4TGF5ZXIiLCJTb2thbFNuZWF0aERpc3NpbWlsYXJpdHkiLCJTb2xhckVjbGlwc2UiLCJTb2xhclN5c3RlbUZlYXR1cmVEYXRhIiwiU29saWRBbmdsZSIsIlNvbGlkRGF0YSIsIlNvbGlkUmVnaW9uUSIsIlNvbHZlIiwiU29sdmVBbHdheXMiLCJTb2x2ZURlbGF5ZWQiLCJTb3J0IiwiU29ydEJ5IiwiU29ydGVkQnkiLCJTb3J0ZWRFbnRpdHlDbGFzcyIsIlNvdW5kIiwiU291bmRBbmRHcmFwaGljcyIsIlNvdW5kTm90ZSIsIlNvdW5kVm9sdW1lIiwiU291cmNlTGluayIsIlNvdyIsIlNwYWNlIiwiU3BhY2VDdXJ2ZURhdGEiLCJTcGFjZUZvcm0iLCJTcGFjZXIiLCJTcGFjaW5ncyIsIlNwYW4iLCJTcGFuQWRqdXN0bWVudHMiLCJTcGFuQ2hhcmFjdGVyUm91bmRpbmciLCJTcGFuRnJvbUFib3ZlIiwiU3BhbkZyb21Cb3RoIiwiU3BhbkZyb21MZWZ0IiwiU3BhbkxpbmVUaGlja25lc3MiLCJTcGFuTWF4U2l6ZSIsIlNwYW5NaW5TaXplIiwiU3Bhbm5pbmdDaGFyYWN0ZXJzIiwiU3BhblN5bW1ldHJpYyIsIlNwYXJzZUFycmF5IiwiU3BhdGlhbEdyYXBoRGlzdHJpYnV0aW9uIiwiU3BhdGlhbE1lZGlhbiIsIlNwYXRpYWxUcmFuc2Zvcm1hdGlvbkxheWVyIiwiU3BlYWsiLCJTcGVha2VyTWF0Y2hRIiwiU3BlYWtUZXh0UGFja2V0IiwiU3BlYXJtYW5SYW5rVGVzdCIsIlNwZWFybWFuUmhvIiwiU3BlY2llc0RhdGEiLCJTcGVjaWZpY2l0eUdvYWwiLCJTcGVjdHJhbExpbmVEYXRhIiwiU3BlY3Ryb2dyYW0iLCJTcGVjdHJvZ3JhbUFycmF5IiwiU3BlY3VsYXJpdHkiLCJTcGVlY2hDYXNlcyIsIlNwZWVjaEludGVycHJldGVyIiwiU3BlZWNoUmVjb2duaXplIiwiU3BlZWNoU3ludGhlc2l6ZSIsIlNwZWxsaW5nQ29ycmVjdGlvbiIsIlNwZWxsaW5nQ29ycmVjdGlvbkxpc3QiLCJTcGVsbGluZ0RpY3Rpb25hcmllcyIsIlNwZWxsaW5nRGljdGlvbmFyaWVzUGF0aCIsIlNwZWxsaW5nT3B0aW9ucyIsIlNwZWxsaW5nU3VnZ2VzdGlvbnNQYWNrZXQiLCJTcGhlcmUiLCJTcGhlcmVCb3giLCJTcGhlcmVQb2ludHMiLCJTcGhlcmljYWxCZXNzZWxKIiwiU3BoZXJpY2FsQmVzc2VsWSIsIlNwaGVyaWNhbEhhbmtlbEgxIiwiU3BoZXJpY2FsSGFua2VsSDIiLCJTcGhlcmljYWxIYXJtb25pY1kiLCJTcGhlcmljYWxQbG90M0QiLCJTcGhlcmljYWxSZWdpb24iLCJTcGhlcmljYWxTaGVsbCIsIlNwaGVyb2lkYWxFaWdlbnZhbHVlIiwiU3BoZXJvaWRhbEpvaW5pbmdGYWN0b3IiLCJTcGhlcm9pZGFsUFMiLCJTcGhlcm9pZGFsUFNQcmltZSIsIlNwaGVyb2lkYWxRUyIsIlNwaGVyb2lkYWxRU1ByaW1lIiwiU3BoZXJvaWRhbFJhZGlhbEZhY3RvciIsIlNwaGVyb2lkYWxTMSIsIlNwaGVyb2lkYWxTMVByaW1lIiwiU3BoZXJvaWRhbFMyIiwiU3BoZXJvaWRhbFMyUHJpbWUiLCJTcGxpY2UiLCJTcGxpY2VkRGlzdHJpYnV0aW9uIiwiU3BsaW5lQ2xvc2VkIiwiU3BsaW5lRGVncmVlIiwiU3BsaW5lS25vdHMiLCJTcGxpbmVXZWlnaHRzIiwiU3BsaXQiLCJTcGxpdEJ5IiwiU3Bva2VuU3RyaW5nIiwiU3FydCIsIlNxcnRCb3giLCJTcXJ0Qm94T3B0aW9ucyIsIlNxdWFyZSIsIlNxdWFyZWRFdWNsaWRlYW5EaXN0YW5jZSIsIlNxdWFyZUZyZWVRIiwiU3F1YXJlSW50ZXJzZWN0aW9uIiwiU3F1YXJlTWF0cml4USIsIlNxdWFyZVJlcGVhdGluZ0VsZW1lbnQiLCJTcXVhcmVzUiIsIlNxdWFyZVN1YnNldCIsIlNxdWFyZVN1YnNldEVxdWFsIiwiU3F1YXJlU3VwZXJzZXQiLCJTcXVhcmVTdXBlcnNldEVxdWFsIiwiU3F1YXJlVW5pb24iLCJTcXVhcmVXYXZlIiwiU1NTVHJpYW5nbGUiLCJTdGFiaWxpdHlNYXJnaW5zIiwiU3RhYmlsaXR5TWFyZ2luc1N0eWxlIiwiU3RhYmxlRGlzdHJpYnV0aW9uIiwiU3RhY2siLCJTdGFja0JlZ2luIiwiU3RhY2tDb21wbGV0ZSIsIlN0YWNrZWREYXRlTGlzdFBsb3QiLCJTdGFja2VkTGlzdFBsb3QiLCJTdGFja0luaGliaXQiLCJTdGFkaXVtU2hhcGUiLCJTdGFuZGFyZEF0bW9zcGhlcmVEYXRhIiwiU3RhbmRhcmREZXZpYXRpb24iLCJTdGFuZGFyZERldmlhdGlvbkZpbHRlciIsIlN0YW5kYXJkRm9ybSIsIlN0YW5kYXJkaXplIiwiU3RhbmRhcmRpemVkIiwiU3RhbmRhcmRPY2VhbkRhdGEiLCJTdGFuZGJ5RGlzdHJpYnV0aW9uIiwiU3RhciIsIlN0YXJDbHVzdGVyRGF0YSIsIlN0YXJEYXRhIiwiU3RhckdyYXBoIiwiU3RhcnRBc3luY2hyb25vdXNUYXNrIiwiU3RhcnRFeHRlcm5hbFNlc3Npb24iLCJTdGFydGluZ1N0ZXBTaXplIiwiU3RhcnRPZkxpbmUiLCJTdGFydE9mU3RyaW5nIiwiU3RhcnRQcm9jZXNzIiwiU3RhcnRTY2hlZHVsZWRUYXNrIiwiU3RhcnR1cFNvdW5kIiwiU3RhcnRXZWJTZXNzaW9uIiwiU3RhdGVEaW1lbnNpb25zIiwiU3RhdGVGZWVkYmFja0dhaW5zIiwiU3RhdGVPdXRwdXRFc3RpbWF0b3IiLCJTdGF0ZVJlc3BvbnNlIiwiU3RhdGVTcGFjZU1vZGVsIiwiU3RhdGVTcGFjZVJlYWxpemF0aW9uIiwiU3RhdGVTcGFjZVRyYW5zZm9ybSIsIlN0YXRlVHJhbnNmb3JtYXRpb25MaW5lYXJpemUiLCJTdGF0aW9uYXJ5RGlzdHJpYnV0aW9uIiwiU3RhdGlvbmFyeVdhdmVsZXRQYWNrZXRUcmFuc2Zvcm0iLCJTdGF0aW9uYXJ5V2F2ZWxldFRyYW5zZm9ybSIsIlN0YXR1c0FyZWEiLCJTdGF0dXNDZW50cmFsaXR5IiwiU3RlcE1vbml0b3IiLCJTdGVyZW9jaGVtaXN0cnlFbGVtZW50cyIsIlN0aWVsdGplc0dhbW1hIiwiU3RpcHBsZVNoYWRpbmciLCJTdGlybGluZ1MxIiwiU3RpcmxpbmdTMiIsIlN0b3BBc3luY2hyb25vdXNUYXNrIiwiU3RvcHBpbmdQb3dlckRhdGEiLCJTdG9wU2NoZWR1bGVkVGFzayIsIlN0cmF0YVZhcmlhYmxlcyIsIlN0cmF0b25vdmljaFByb2Nlc3MiLCJTdHJlYW1Db2xvckZ1bmN0aW9uIiwiU3RyZWFtQ29sb3JGdW5jdGlvblNjYWxpbmciLCJTdHJlYW1EZW5zaXR5UGxvdCIsIlN0cmVhbU1hcmtlcnMiLCJTdHJlYW1QbG90IiwiU3RyZWFtUG9pbnRzIiwiU3RyZWFtUG9zaXRpb24iLCJTdHJlYW1zIiwiU3RyZWFtU2NhbGUiLCJTdHJlYW1TdHlsZSIsIlN0cmluZyIsIlN0cmluZ0JyZWFrIiwiU3RyaW5nQnl0ZUNvdW50IiwiU3RyaW5nQ2FzZXMiLCJTdHJpbmdDb250YWluc1EiLCJTdHJpbmdDb3VudCIsIlN0cmluZ0RlbGV0ZSIsIlN0cmluZ0Ryb3AiLCJTdHJpbmdFbmRzUSIsIlN0cmluZ0V4cHJlc3Npb24iLCJTdHJpbmdFeHRyYWN0IiwiU3RyaW5nRm9ybSIsIlN0cmluZ0Zvcm1hdCIsIlN0cmluZ0ZyZWVRIiwiU3RyaW5nSW5zZXJ0IiwiU3RyaW5nSm9pbiIsIlN0cmluZ0xlbmd0aCIsIlN0cmluZ01hdGNoUSIsIlN0cmluZ1BhZExlZnQiLCJTdHJpbmdQYWRSaWdodCIsIlN0cmluZ1BhcnQiLCJTdHJpbmdQYXJ0aXRpb24iLCJTdHJpbmdQb3NpdGlvbiIsIlN0cmluZ1EiLCJTdHJpbmdSZXBlYXQiLCJTdHJpbmdSZXBsYWNlIiwiU3RyaW5nUmVwbGFjZUxpc3QiLCJTdHJpbmdSZXBsYWNlUGFydCIsIlN0cmluZ1JldmVyc2UiLCJTdHJpbmdSaWZmbGUiLCJTdHJpbmdSb3RhdGVMZWZ0IiwiU3RyaW5nUm90YXRlUmlnaHQiLCJTdHJpbmdTa2VsZXRvbiIsIlN0cmluZ1NwbGl0IiwiU3RyaW5nU3RhcnRzUSIsIlN0cmluZ1Rha2UiLCJTdHJpbmdUZW1wbGF0ZSIsIlN0cmluZ1RvQnl0ZUFycmF5IiwiU3RyaW5nVG9TdHJlYW0iLCJTdHJpbmdUcmltIiwiU3RyaXBCb3hlcyIsIlN0cmlwT25JbnB1dCIsIlN0cmlwV3JhcHBlckJveGVzIiwiU3Ryb2tlRm9ybSIsIlN0cnVjdHVyYWxJbXBvcnRhbmNlIiwiU3RydWN0dXJlZEFycmF5IiwiU3RydWN0dXJlZEFycmF5SGVhZFEiLCJTdHJ1Y3R1cmVkU2VsZWN0aW9uIiwiU3RydXZlSCIsIlN0cnV2ZUwiLCJTdHViIiwiU3R1ZGVudFREaXN0cmlidXRpb24iLCJTdHlsZSIsIlN0eWxlQm94IiwiU3R5bGVCb3hBdXRvRGVsZXRlIiwiU3R5bGVEYXRhIiwiU3R5bGVEZWZpbml0aW9ucyIsIlN0eWxlRm9ybSIsIlN0eWxlSGludHMiLCJTdHlsZUtleU1hcHBpbmciLCJTdHlsZU1lbnVMaXN0aW5nIiwiU3R5bGVOYW1lRGlhbG9nU2V0dGluZ3MiLCJTdHlsZU5hbWVzIiwiU3R5bGVQcmludCIsIlN0eWxlU2hlZXRQYXRoIiwiU3ViZGl2aWRlIiwiU3ViZmFjdG9yaWFsIiwiU3ViZ3JhcGgiLCJTdWJNaW51cyIsIlN1YlBsdXMiLCJTdWJyZXN1bHRhbnRQb2x5bm9taWFsUmVtYWluZGVycyIsIlN1YnJlc3VsdGFudFBvbHlub21pYWxzIiwiU3VicmVzdWx0YW50cyIsIlN1YnNjcmlwdCIsIlN1YnNjcmlwdEJveCIsIlN1YnNjcmlwdEJveE9wdGlvbnMiLCJTdWJzY3JpcHRlZCIsIlN1YnNlcXVlbmNlcyIsIlN1YnNldCIsIlN1YnNldENhc2VzIiwiU3Vic2V0Q291bnQiLCJTdWJzZXRFcXVhbCIsIlN1YnNldE1hcCIsIlN1YnNldFBvc2l0aW9uIiwiU3Vic2V0USIsIlN1YnNldFJlcGxhY2UiLCJTdWJzZXRzIiwiU3ViU3RhciIsIlN1YnN0aXR1dGlvblN5c3RlbSIsIlN1YnN1cGVyc2NyaXB0IiwiU3Vic3VwZXJzY3JpcHRCb3giLCJTdWJzdXBlcnNjcmlwdEJveE9wdGlvbnMiLCJTdWJ0aXRsZUVuY29kaW5nIiwiU3VidGl0bGVUcmFja3MiLCJTdWJ0cmFjdCIsIlN1YnRyYWN0RnJvbSIsIlN1YnRyYWN0U2lkZXMiLCJTdWJWYWx1ZXMiLCJTdWNjZWVkcyIsIlN1Y2NlZWRzRXF1YWwiLCJTdWNjZWVkc1NsYW50RXF1YWwiLCJTdWNjZWVkc1RpbGRlIiwiU3VjY2VzcyIsIlN1Y2hUaGF0IiwiU3VtIiwiU3VtQ29udmVyZ2VuY2UiLCJTdW1tYXRpb25MYXllciIsIlN1bmRheSIsIlN1blBvc2l0aW9uIiwiU3VucmlzZSIsIlN1bnNldCIsIlN1cGVyRGFnZ2VyIiwiU3VwZXJNaW51cyIsIlN1cGVybm92YURhdGEiLCJTdXBlclBsdXMiLCJTdXBlcnNjcmlwdCIsIlN1cGVyc2NyaXB0Qm94IiwiU3VwZXJzY3JpcHRCb3hPcHRpb25zIiwiU3VwZXJzZXQiLCJTdXBlcnNldEVxdWFsIiwiU3VwZXJTdGFyIiwiU3VyZCIsIlN1cmRGb3JtIiwiU3VyZmFjZUFwcGVhcmFuY2UiLCJTdXJmYWNlQXJlYSIsIlN1cmZhY2VDb2xvciIsIlN1cmZhY2VEYXRhIiwiU3VyZmFjZUdyYXBoaWNzIiwiU3Vydml2YWxEaXN0cmlidXRpb24iLCJTdXJ2aXZhbEZ1bmN0aW9uIiwiU3Vydml2YWxNb2RlbCIsIlN1cnZpdmFsTW9kZWxGaXQiLCJTdXNwZW5kUGFja2V0IiwiU3V6dWtpRGlzdHJpYnV0aW9uIiwiU3V6dWtpR3JvdXBTdXoiLCJTd2F0Y2hMZWdlbmQiLCJTd2l0Y2giLCJTeW1ib2wiLCJTeW1ib2xOYW1lIiwiU3ltbGV0V2F2ZWxldCIsIlN5bW1ldHJpYyIsIlN5bW1ldHJpY0dyb3VwIiwiU3ltbWV0cmljS2V5IiwiU3ltbWV0cmljTWF0cml4USIsIlN5bW1ldHJpY1BvbHlub21pYWwiLCJTeW1tZXRyaWNSZWR1Y3Rpb24iLCJTeW1tZXRyaXplIiwiU3ltbWV0cml6ZWRBcnJheSIsIlN5bW1ldHJpemVkQXJyYXlSdWxlcyIsIlN5bW1ldHJpemVkRGVwZW5kZW50Q29tcG9uZW50cyIsIlN5bW1ldHJpemVkSW5kZXBlbmRlbnRDb21wb25lbnRzIiwiU3ltbWV0cml6ZWRSZXBsYWNlUGFydCIsIlN5bmNocm9ub3VzSW5pdGlhbGl6YXRpb24iLCJTeW5jaHJvbm91c1VwZGF0aW5nIiwiU3lub255bXMiLCJTeW50YXgiLCJTeW50YXhGb3JtIiwiU3ludGF4SW5mb3JtYXRpb24iLCJTeW50YXhMZW5ndGgiLCJTeW50YXhQYWNrZXQiLCJTeW50YXhRIiwiU3ludGhlc2l6ZU1pc3NpbmdWYWx1ZXMiLCJTeXN0ZW1DcmVkZW50aWFsIiwiU3lzdGVtQ3JlZGVudGlhbERhdGEiLCJTeXN0ZW1DcmVkZW50aWFsS2V5IiwiU3lzdGVtQ3JlZGVudGlhbEtleXMiLCJTeXN0ZW1DcmVkZW50aWFsU3RvcmVPYmplY3QiLCJTeXN0ZW1EaWFsb2dJbnB1dCIsIlN5c3RlbUV4Y2VwdGlvbiIsIlN5c3RlbUdldCIsIlN5c3RlbUhlbHBQYXRoIiwiU3lzdGVtSW5mb3JtYXRpb24iLCJTeXN0ZW1JbmZvcm1hdGlvbkRhdGEiLCJTeXN0ZW1JbnN0YWxsIiwiU3lzdGVtTW9kZWwiLCJTeXN0ZW1Nb2RlbGVyIiwiU3lzdGVtTW9kZWxFeGFtcGxlcyIsIlN5c3RlbU1vZGVsTGluZWFyaXplIiwiU3lzdGVtTW9kZWxQYXJhbWV0cmljU2ltdWxhdGUiLCJTeXN0ZW1Nb2RlbFBsb3QiLCJTeXN0ZW1Nb2RlbFByb2dyZXNzUmVwb3J0aW5nIiwiU3lzdGVtTW9kZWxSZWxpYWJpbGl0eSIsIlN5c3RlbU1vZGVscyIsIlN5c3RlbU1vZGVsU2ltdWxhdGUiLCJTeXN0ZW1Nb2RlbFNpbXVsYXRlU2Vuc2l0aXZpdHkiLCJTeXN0ZW1Nb2RlbFNpbXVsYXRpb25EYXRhIiwiU3lzdGVtT3BlbiIsIlN5c3RlbU9wdGlvbnMiLCJTeXN0ZW1Qcm9jZXNzRGF0YSIsIlN5c3RlbVByb2Nlc3NlcyIsIlN5c3RlbXNDb25uZWN0aW9uc01vZGVsIiwiU3lzdGVtc01vZGVsRGVsYXkiLCJTeXN0ZW1zTW9kZWxEZWxheUFwcHJveGltYXRlIiwiU3lzdGVtc01vZGVsRGVsZXRlIiwiU3lzdGVtc01vZGVsRGltZW5zaW9ucyIsIlN5c3RlbXNNb2RlbEV4dHJhY3QiLCJTeXN0ZW1zTW9kZWxGZWVkYmFja0Nvbm5lY3QiLCJTeXN0ZW1zTW9kZWxMYWJlbHMiLCJTeXN0ZW1zTW9kZWxMaW5lYXJpdHkiLCJTeXN0ZW1zTW9kZWxNZXJnZSIsIlN5c3RlbXNNb2RlbE9yZGVyIiwiU3lzdGVtc01vZGVsUGFyYWxsZWxDb25uZWN0IiwiU3lzdGVtc01vZGVsU2VyaWVzQ29ubmVjdCIsIlN5c3RlbXNNb2RlbFN0YXRlRmVlZGJhY2tDb25uZWN0IiwiU3lzdGVtc01vZGVsVmVjdG9yUmVsYXRpdmVPcmRlcnMiLCJTeXN0ZW1TdHViIiwiU3lzdGVtVGVzdCIsIlRhYiIsIlRhYkZpbGxpbmciLCJUYWJsZSIsIlRhYmxlQWxpZ25tZW50cyIsIlRhYmxlRGVwdGgiLCJUYWJsZURpcmVjdGlvbnMiLCJUYWJsZUZvcm0iLCJUYWJsZUhlYWRpbmdzIiwiVGFibGVTcGFjaW5nIiwiVGFibGVWaWV3IiwiVGFibGVWaWV3Qm94IiwiVGFibGVWaWV3Qm94QmFja2dyb3VuZCIsIlRhYmxlVmlld0JveEl0ZW1TaXplIiwiVGFibGVWaWV3Qm94T3B0aW9ucyIsIlRhYlNwYWNpbmdzIiwiVGFiVmlldyIsIlRhYlZpZXdCb3giLCJUYWJWaWV3Qm94T3B0aW9ucyIsIlRhZ0JveCIsIlRhZ0JveE5vdGUiLCJUYWdCb3hPcHRpb25zIiwiVGFnZ2luZ1J1bGVzIiwiVGFnU2V0IiwiVGFnU2V0RGVsYXllZCIsIlRhZ1N0eWxlIiwiVGFnVW5zZXQiLCJUYWtlIiwiVGFrZURyb3AiLCJUYWtlTGFyZ2VzdCIsIlRha2VMYXJnZXN0QnkiLCJUYWtlTGlzdCIsIlRha2VTbWFsbGVzdCIsIlRha2VTbWFsbGVzdEJ5IiwiVGFrZVdoaWxlIiwiVGFsbHkiLCJUYW4iLCJUYW5oIiwiVGFyZ2V0RGV2aWNlIiwiVGFyZ2V0RnVuY3Rpb25zIiwiVGFyZ2V0U3lzdGVtIiwiVGFyZ2V0VW5pdHMiLCJUYXNrQWJvcnQiLCJUYXNrRXhlY3V0ZSIsIlRhc2tPYmplY3QiLCJUYXNrUmVtb3ZlIiwiVGFza1Jlc3VtZSIsIlRhc2tzIiwiVGFza1N1c3BlbmQiLCJUYXNrV2FpdCIsIlRhdXRvbG9neVEiLCJUZWxlZ3JhcGhQcm9jZXNzIiwiVGVtcGxhdGVBcHBseSIsIlRlbXBsYXRlQXJnQm94IiwiVGVtcGxhdGVCb3giLCJUZW1wbGF0ZUJveE9wdGlvbnMiLCJUZW1wbGF0ZUV2YWx1YXRlIiwiVGVtcGxhdGVFeHByZXNzaW9uIiwiVGVtcGxhdGVJZiIsIlRlbXBsYXRlT2JqZWN0IiwiVGVtcGxhdGVTZXF1ZW5jZSIsIlRlbXBsYXRlU2xvdCIsIlRlbXBsYXRlU2xvdFNlcXVlbmNlIiwiVGVtcGxhdGVVbmV2YWx1YXRlZCIsIlRlbXBsYXRlVmVyYmF0aW0iLCJUZW1wbGF0ZVdpdGgiLCJUZW1wb3JhbERhdGEiLCJUZW1wb3JhbFJlZ3VsYXJpdHkiLCJUZW1wb3JhcnkiLCJUZW1wb3JhcnlWYXJpYWJsZSIsIlRlbnNvckNvbnRyYWN0IiwiVGVuc29yRGltZW5zaW9ucyIsIlRlbnNvckV4cGFuZCIsIlRlbnNvclByb2R1Y3QiLCJUZW5zb3JRIiwiVGVuc29yUmFuayIsIlRlbnNvclJlZHVjZSIsIlRlbnNvclN5bW1ldHJ5IiwiVGVuc29yVHJhbnNwb3NlIiwiVGVuc29yV2VkZ2UiLCJUZXN0SUQiLCJUZXN0UmVwb3J0IiwiVGVzdFJlcG9ydE9iamVjdCIsIlRlc3RSZXN1bHRPYmplY3QiLCJUZXRyYWhlZHJvbiIsIlRldHJhaGVkcm9uQm94IiwiVGV0cmFoZWRyb25Cb3hPcHRpb25zIiwiVGVYRm9ybSIsIlRlWFNhdmUiLCJUZXh0IiwiVGV4dDNEQm94IiwiVGV4dDNEQm94T3B0aW9ucyIsIlRleHRBbGlnbm1lbnQiLCJUZXh0QmFuZCIsIlRleHRCb3VuZGluZ0JveCIsIlRleHRCb3giLCJUZXh0Q2FzZXMiLCJUZXh0Q2VsbCIsIlRleHRDbGlwYm9hcmRUeXBlIiwiVGV4dENvbnRlbnRzIiwiVGV4dERhdGEiLCJUZXh0RWxlbWVudCIsIlRleHRGb3JtIiwiVGV4dEdyaWQiLCJUZXh0SnVzdGlmaWNhdGlvbiIsIlRleHRMaW5lIiwiVGV4dFBhY2tldCIsIlRleHRQYXJhZ3JhcGgiLCJUZXh0UG9zaXRpb24iLCJUZXh0UmVjb2duaXplIiwiVGV4dFNlYXJjaCIsIlRleHRTZWFyY2hSZXBvcnQiLCJUZXh0U2VudGVuY2VzIiwiVGV4dFN0cmluZyIsIlRleHRTdHJ1Y3R1cmUiLCJUZXh0U3R5bGUiLCJUZXh0VHJhbnNsYXRpb24iLCJUZXh0dXJlIiwiVGV4dHVyZUNvb3JkaW5hdGVGdW5jdGlvbiIsIlRleHR1cmVDb29yZGluYXRlU2NhbGluZyIsIlRleHRXb3JkcyIsIlRoZXJlZm9yZSIsIlRoZXJtb2R5bmFtaWNEYXRhIiwiVGhlcm1vbWV0ZXJHYXVnZSIsIlRoaWNrIiwiVGhpY2tuZXNzIiwiVGhpbiIsIlRoaW5uaW5nIiwiVGhpc0xpbmsiLCJUaG9tcHNvbkdyb3VwVGgiLCJUaHJlYWQiLCJUaHJlYWRpbmdMYXllciIsIlRocmVlSlN5bWJvbCIsIlRocmVzaG9sZCIsIlRocm91Z2giLCJUaHJvdyIsIlRodWVNb3JzZSIsIlRodW1ibmFpbCIsIlRodXJzZGF5IiwiVGlja3MiLCJUaWNrc1N0eWxlIiwiVGlkZURhdGEiLCJUaWxkZSIsIlRpbGRlRXF1YWwiLCJUaWxkZUZ1bGxFcXVhbCIsIlRpbGRlVGlsZGUiLCJUaW1lQ29uc3RyYWluZWQiLCJUaW1lQ29uc3RyYWludCIsIlRpbWVEaXJlY3Rpb24iLCJUaW1lRm9ybWF0IiwiVGltZUdvYWwiLCJUaW1lbGluZVBsb3QiLCJUaW1lT2JqZWN0IiwiVGltZU9iamVjdFEiLCJUaW1lUmVtYWluaW5nIiwiVGltZXMiLCJUaW1lc0J5IiwiVGltZVNlcmllcyIsIlRpbWVTZXJpZXNBZ2dyZWdhdGUiLCJUaW1lU2VyaWVzRm9yZWNhc3QiLCJUaW1lU2VyaWVzSW5zZXJ0IiwiVGltZVNlcmllc0ludmVydGliaWxpdHkiLCJUaW1lU2VyaWVzTWFwIiwiVGltZVNlcmllc01hcFRocmVhZCIsIlRpbWVTZXJpZXNNb2RlbCIsIlRpbWVTZXJpZXNNb2RlbEZpdCIsIlRpbWVTZXJpZXNSZXNhbXBsZSIsIlRpbWVTZXJpZXNSZXNjYWxlIiwiVGltZVNlcmllc1NoaWZ0IiwiVGltZVNlcmllc1RocmVhZCIsIlRpbWVTZXJpZXNXaW5kb3ciLCJUaW1lVXNlZCIsIlRpbWVWYWx1ZSIsIlRpbWVXYXJwaW5nQ29ycmVzcG9uZGVuY2UiLCJUaW1lV2FycGluZ0Rpc3RhbmNlIiwiVGltZVpvbmUiLCJUaW1lWm9uZUNvbnZlcnQiLCJUaW1lWm9uZU9mZnNldCIsIlRpbWluZyIsIlRpbnkiLCJUaXRsZUdyb3VwaW5nIiwiVGl0c0dyb3VwVCIsIlRvQm94ZXMiLCJUb0NoYXJhY3RlckNvZGUiLCJUb0NvbG9yIiwiVG9Db250aW51b3VzVGltZU1vZGVsIiwiVG9EYXRlIiwiVG9kYXkiLCJUb0Rpc2NyZXRlVGltZU1vZGVsIiwiVG9FbnRpdHkiLCJUb2VwbGl0ek1hdHJpeCIsIlRvRXhwcmVzc2lvbiIsIlRvRmlsZU5hbWUiLCJUb2dldGhlciIsIlRvZ2dsZSIsIlRvZ2dsZUZhbHNlIiwiVG9nZ2xlciIsIlRvZ2dsZXJCYXIiLCJUb2dnbGVyQm94IiwiVG9nZ2xlckJveE9wdGlvbnMiLCJUb0hlbGRFeHByZXNzaW9uIiwiVG9JbnZlcnRpYmxlVGltZVNlcmllcyIsIlRva2VuV29yZHMiLCJUb2xlcmFuY2UiLCJUb0xvd2VyQ2FzZSIsIlRvbW9ycm93IiwiVG9OdW1iZXJGaWVsZCIsIlRvb0JpZyIsIlRvb2x0aXAiLCJUb29sdGlwQm94IiwiVG9vbHRpcEJveE9wdGlvbnMiLCJUb29sdGlwRGVsYXkiLCJUb29sdGlwU3R5bGUiLCJUb29uU2hhZGluZyIsIlRvcCIsIlRvcEhhdFRyYW5zZm9ybSIsIlRvUG9sYXJDb29yZGluYXRlcyIsIlRvcG9sb2dpY2FsU29ydCIsIlRvUmFkaWNhbHMiLCJUb1J1bGVzIiwiVG9TcGhlcmljYWxDb29yZGluYXRlcyIsIlRvU3RyaW5nIiwiVG90YWwiLCJUb3RhbEhlaWdodCIsIlRvdGFsTGF5ZXIiLCJUb3RhbFZhcmlhdGlvbkZpbHRlciIsIlRvdGFsV2lkdGgiLCJUb3VjaFBvc2l0aW9uIiwiVG91Y2hzY3JlZW5BdXRvWm9vbSIsIlRvdWNoc2NyZWVuQ29udHJvbFBsYWNlbWVudCIsIlRvVXBwZXJDYXNlIiwiVHIiLCJUcmFjZSIsIlRyYWNlQWJvdmUiLCJUcmFjZUFjdGlvbiIsIlRyYWNlQmFja3dhcmQiLCJUcmFjZURlcHRoIiwiVHJhY2VEaWFsb2ciLCJUcmFjZUZvcndhcmQiLCJUcmFjZUludGVybmFsIiwiVHJhY2VMZXZlbCIsIlRyYWNlT2ZmIiwiVHJhY2VPbiIsIlRyYWNlT3JpZ2luYWwiLCJUcmFjZVByaW50IiwiVHJhY2VTY2FuIiwiVHJhY2tlZFN5bWJvbHMiLCJUcmFja2luZ0Z1bmN0aW9uIiwiVHJhY3lXaWRvbURpc3RyaWJ1dGlvbiIsIlRyYWRpbmdDaGFydCIsIlRyYWRpdGlvbmFsRm9ybSIsIlRyYWRpdGlvbmFsRnVuY3Rpb25Ob3RhdGlvbiIsIlRyYWRpdGlvbmFsTm90YXRpb24iLCJUcmFkaXRpb25hbE9yZGVyIiwiVHJhaW5pbmdQcm9ncmVzc0NoZWNrcG9pbnRpbmciLCJUcmFpbmluZ1Byb2dyZXNzRnVuY3Rpb24iLCJUcmFpbmluZ1Byb2dyZXNzTWVhc3VyZW1lbnRzIiwiVHJhaW5pbmdQcm9ncmVzc1JlcG9ydGluZyIsIlRyYWluaW5nU3RvcHBpbmdDcml0ZXJpb24iLCJUcmFpbmluZ1VwZGF0ZVNjaGVkdWxlIiwiVHJhbnNmZXJGdW5jdGlvbkNhbmNlbCIsIlRyYW5zZmVyRnVuY3Rpb25FeHBhbmQiLCJUcmFuc2ZlckZ1bmN0aW9uRmFjdG9yIiwiVHJhbnNmZXJGdW5jdGlvbk1vZGVsIiwiVHJhbnNmZXJGdW5jdGlvblBvbGVzIiwiVHJhbnNmZXJGdW5jdGlvblRyYW5zZm9ybSIsIlRyYW5zZmVyRnVuY3Rpb25aZXJvcyIsIlRyYW5zZm9ybWF0aW9uQ2xhc3MiLCJUcmFuc2Zvcm1hdGlvbkZ1bmN0aW9uIiwiVHJhbnNmb3JtYXRpb25GdW5jdGlvbnMiLCJUcmFuc2Zvcm1hdGlvbk1hdHJpeCIsIlRyYW5zZm9ybWVkRGlzdHJpYnV0aW9uIiwiVHJhbnNmb3JtZWRGaWVsZCIsIlRyYW5zZm9ybWVkUHJvY2VzcyIsIlRyYW5zZm9ybWVkUmVnaW9uIiwiVHJhbnNpdGlvbkRpcmVjdGlvbiIsIlRyYW5zaXRpb25EdXJhdGlvbiIsIlRyYW5zaXRpb25FZmZlY3QiLCJUcmFuc2l0aXZlQ2xvc3VyZUdyYXBoIiwiVHJhbnNpdGl2ZVJlZHVjdGlvbkdyYXBoIiwiVHJhbnNsYXRlIiwiVHJhbnNsYXRpb25PcHRpb25zIiwiVHJhbnNsYXRpb25UcmFuc2Zvcm0iLCJUcmFuc2xpdGVyYXRlIiwiVHJhbnNwYXJlbnQiLCJUcmFuc3BhcmVudENvbG9yIiwiVHJhbnNwb3NlIiwiVHJhbnNwb3NlTGF5ZXIiLCJUcmFwU2VsZWN0aW9uIiwiVHJhdmVsRGlyZWN0aW9ucyIsIlRyYXZlbERpcmVjdGlvbnNEYXRhIiwiVHJhdmVsRGlzdGFuY2UiLCJUcmF2ZWxEaXN0YW5jZUxpc3QiLCJUcmF2ZWxNZXRob2QiLCJUcmF2ZWxUaW1lIiwiVHJlZUZvcm0iLCJUcmVlR3JhcGgiLCJUcmVlR3JhcGhRIiwiVHJlZVBsb3QiLCJUcmVuZFN0eWxlIiwiVHJpYW5nbGUiLCJUcmlhbmdsZUNlbnRlciIsIlRyaWFuZ2xlQ29uc3RydWN0IiwiVHJpYW5nbGVNZWFzdXJlbWVudCIsIlRyaWFuZ2xlV2F2ZSIsIlRyaWFuZ3VsYXJEaXN0cmlidXRpb24iLCJUcmlhbmd1bGF0ZU1lc2giLCJUcmlnIiwiVHJpZ0V4cGFuZCIsIlRyaWdGYWN0b3IiLCJUcmlnRmFjdG9yTGlzdCIsIlRyaWdnZXIiLCJUcmlnUmVkdWNlIiwiVHJpZ1RvRXhwIiwiVHJpbW1lZE1lYW4iLCJUcmltbWVkVmFyaWFuY2UiLCJUcm9waWNhbFN0b3JtRGF0YSIsIlRydWUiLCJUcnVlUSIsIlRydW5jYXRlZERpc3RyaWJ1dGlvbiIsIlRydW5jYXRlZFBvbHloZWRyb24iLCJUc2FsbGlzUUV4cG9uZW50aWFsRGlzdHJpYnV0aW9uIiwiVHNhbGxpc1FHYXVzc2lhbkRpc3RyaWJ1dGlvbiIsIlRUZXN0IiwiVHViZSIsIlR1YmVCZXppZXJDdXJ2ZUJveCIsIlR1YmVCZXppZXJDdXJ2ZUJveE9wdGlvbnMiLCJUdWJlQm94IiwiVHViZUJveE9wdGlvbnMiLCJUdWJlQlNwbGluZUN1cnZlQm94IiwiVHViZUJTcGxpbmVDdXJ2ZUJveE9wdGlvbnMiLCJUdWVzZGF5IiwiVHVrZXlMYW1iZGFEaXN0cmlidXRpb24iLCJUdWtleVdpbmRvdyIsIlR1bm5lbERhdGEiLCJUdXBsZXMiLCJUdXJhbkdyYXBoIiwiVHVyaW5nTWFjaGluZSIsIlR1dHRlUG9seW5vbWlhbCIsIlR3b1dheVJ1bGUiLCJUeXBlZCIsIlR5cGVTcGVjaWZpZXIiLCJVbmF0ZVEiLCJVbmNvbXByZXNzIiwiVW5jb25zdHJhaW5lZFBhcmFtZXRlcnMiLCJVbmRlZmluZWQiLCJVbmRlckJhciIsIlVuZGVyZmxvdyIsIlVuZGVybGluZWQiLCJVbmRlcm92ZXJzY3JpcHQiLCJVbmRlcm92ZXJzY3JpcHRCb3giLCJVbmRlcm92ZXJzY3JpcHRCb3hPcHRpb25zIiwiVW5kZXJzY3JpcHQiLCJVbmRlcnNjcmlwdEJveCIsIlVuZGVyc2NyaXB0Qm94T3B0aW9ucyIsIlVuZGVyc2VhRmVhdHVyZURhdGEiLCJVbmRpcmVjdGVkRWRnZSIsIlVuZGlyZWN0ZWRHcmFwaCIsIlVuZGlyZWN0ZWRHcmFwaFEiLCJVbmRvT3B0aW9ucyIsIlVuZG9UcmFja2VkVmFyaWFibGVzIiwiVW5lcXVhbCIsIlVuZXF1YWxUbyIsIlVuZXZhbHVhdGVkIiwiVW5pZm9ybURpc3RyaWJ1dGlvbiIsIlVuaWZvcm1HcmFwaERpc3RyaWJ1dGlvbiIsIlVuaWZvcm1Qb2x5aGVkcm9uIiwiVW5pZm9ybVN1bURpc3RyaWJ1dGlvbiIsIlVuaW5zdGFsbCIsIlVuaW9uIiwiVW5pb25lZEVudGl0eUNsYXNzIiwiVW5pb25QbHVzIiwiVW5pcXVlIiwiVW5pdGFyeU1hdHJpeFEiLCJVbml0Qm94IiwiVW5pdENvbnZlcnQiLCJVbml0RGltZW5zaW9ucyIsIlVuaXRpemUiLCJVbml0Um9vdFRlc3QiLCJVbml0U2ltcGxpZnkiLCJVbml0U3RlcCIsIlVuaXRTeXN0ZW0iLCJVbml0VHJpYW5nbGUiLCJVbml0VmVjdG9yIiwiVW5pdFZlY3RvckxheWVyIiwiVW5pdHlEaW1lbnNpb25zIiwiVW5pdmVyc2VNb2RlbERhdGEiLCJVbml2ZXJzaXR5RGF0YSIsIlVuaXhUaW1lIiwiVW5wcm90ZWN0IiwiVW5yZWdpc3RlckV4dGVybmFsRXZhbHVhdG9yIiwiVW5zYW1lUSIsIlVuc2F2ZWRWYXJpYWJsZXMiLCJVbnNldCIsIlVuc2V0U2hhcmVkIiwiVW50cmFja2VkVmFyaWFibGVzIiwiVXAiLCJVcEFycm93IiwiVXBBcnJvd0JhciIsIlVwQXJyb3dEb3duQXJyb3ciLCJVcGRhdGUiLCJVcGRhdGVEeW5hbWljT2JqZWN0cyIsIlVwZGF0ZUR5bmFtaWNPYmplY3RzU3luY2hyb25vdXMiLCJVcGRhdGVJbnRlcnZhbCIsIlVwZGF0ZVBhY2xldFNpdGVzIiwiVXBkYXRlU2VhcmNoSW5kZXgiLCJVcERvd25BcnJvdyIsIlVwRXF1aWxpYnJpdW0iLCJVcHBlckNhc2VRIiwiVXBwZXJMZWZ0QXJyb3ciLCJVcHBlclJpZ2h0QXJyb3ciLCJVcHBlclRyaWFuZ3VsYXJpemUiLCJVcHBlclRyaWFuZ3VsYXJNYXRyaXhRIiwiVXBzYW1wbGUiLCJVcFNldCIsIlVwU2V0RGVsYXllZCIsIlVwVGVlIiwiVXBUZWVBcnJvdyIsIlVwVG8iLCJVcFZhbHVlcyIsIlVSTCIsIlVSTEJ1aWxkIiwiVVJMRGVjb2RlIiwiVVJMRGlzcGF0Y2hlciIsIlVSTERvd25sb2FkIiwiVVJMRG93bmxvYWRTdWJtaXQiLCJVUkxFbmNvZGUiLCJVUkxFeGVjdXRlIiwiVVJMRXhwYW5kIiwiVVJMRmV0Y2giLCJVUkxGZXRjaEFzeW5jaHJvbm91cyIsIlVSTFBhcnNlIiwiVVJMUXVlcnlEZWNvZGUiLCJVUkxRdWVyeUVuY29kZSIsIlVSTFJlYWQiLCJVUkxSZXNwb25zZVRpbWUiLCJVUkxTYXZlIiwiVVJMU2F2ZUFzeW5jaHJvbm91cyIsIlVSTFNob3J0ZW4iLCJVUkxTdWJtaXQiLCJVc2VHcmFwaGljc1JhbmdlIiwiVXNlckRlZmluZWRXYXZlbGV0IiwiVXNpbmciLCJVc2luZ0Zyb250RW5kIiwiVXRpbGl0eUZ1bmN0aW9uIiwiVjJHZXQiLCJWYWxlbmNlRXJyb3JIYW5kbGluZyIsIlZhbGlkYXRpb25MZW5ndGgiLCJWYWxpZGF0aW9uU2V0IiwiVmFsdWUiLCJWYWx1ZUJveCIsIlZhbHVlQm94T3B0aW9ucyIsIlZhbHVlRGltZW5zaW9ucyIsIlZhbHVlRm9ybSIsIlZhbHVlUHJlcHJvY2Vzc2luZ0Z1bmN0aW9uIiwiVmFsdWVRIiwiVmFsdWVzIiwiVmFsdWVzRGF0YSIsIlZhcmlhYmxlcyIsIlZhcmlhbmNlIiwiVmFyaWFuY2VFcXVpdmFsZW5jZVRlc3QiLCJWYXJpYW5jZUVzdGltYXRvckZ1bmN0aW9uIiwiVmFyaWFuY2VHYW1tYURpc3RyaWJ1dGlvbiIsIlZhcmlhbmNlVGVzdCIsIlZlY3RvckFuZ2xlIiwiVmVjdG9yQXJvdW5kIiwiVmVjdG9yQXNwZWN0UmF0aW8iLCJWZWN0b3JDb2xvckZ1bmN0aW9uIiwiVmVjdG9yQ29sb3JGdW5jdGlvblNjYWxpbmciLCJWZWN0b3JEZW5zaXR5UGxvdCIsIlZlY3RvckdseXBoRGF0YSIsIlZlY3RvckdyZWF0ZXIiLCJWZWN0b3JHcmVhdGVyRXF1YWwiLCJWZWN0b3JMZXNzIiwiVmVjdG9yTGVzc0VxdWFsIiwiVmVjdG9yTWFya2VycyIsIlZlY3RvclBsb3QiLCJWZWN0b3JQbG90M0QiLCJWZWN0b3JQb2ludHMiLCJWZWN0b3JRIiwiVmVjdG9yUmFuZ2UiLCJWZWN0b3JzIiwiVmVjdG9yU2NhbGUiLCJWZWN0b3JTY2FsaW5nIiwiVmVjdG9yU2l6ZXMiLCJWZWN0b3JTdHlsZSIsIlZlZSIsIlZlcmJhdGltIiwiVmVyYm9zZSIsIlZlcmJvc2VDb252ZXJ0VG9Qb3N0U2NyaXB0UGFja2V0IiwiVmVyaWZpY2F0aW9uVGVzdCIsIlZlcmlmeUNvbnZlcmdlbmNlIiwiVmVyaWZ5RGVyaXZlZEtleSIsIlZlcmlmeURpZ2l0YWxTaWduYXR1cmUiLCJWZXJpZnlGaWxlU2lnbmF0dXJlIiwiVmVyaWZ5SW50ZXJwcmV0YXRpb24iLCJWZXJpZnlTZWN1cml0eUNlcnRpZmljYXRlcyIsIlZlcmlmeVNvbHV0aW9ucyIsIlZlcmlmeVRlc3RBc3N1bXB0aW9ucyIsIlZlcnNpb24iLCJWZXJzaW9uZWRQcmVmZXJlbmNlcyIsIlZlcnNpb25OdW1iZXIiLCJWZXJ0ZXhBZGQiLCJWZXJ0ZXhDYXBhY2l0eSIsIlZlcnRleENvbG9ycyIsIlZlcnRleENvbXBvbmVudCIsIlZlcnRleENvbm5lY3Rpdml0eSIsIlZlcnRleENvbnRyYWN0IiwiVmVydGV4Q29vcmRpbmF0ZVJ1bGVzIiwiVmVydGV4Q29vcmRpbmF0ZXMiLCJWZXJ0ZXhDb3JyZWxhdGlvblNpbWlsYXJpdHkiLCJWZXJ0ZXhDb3NpbmVTaW1pbGFyaXR5IiwiVmVydGV4Q291bnQiLCJWZXJ0ZXhDb3ZlclEiLCJWZXJ0ZXhEYXRhQ29vcmRpbmF0ZXMiLCJWZXJ0ZXhEZWdyZWUiLCJWZXJ0ZXhEZWxldGUiLCJWZXJ0ZXhEaWNlU2ltaWxhcml0eSIsIlZlcnRleEVjY2VudHJpY2l0eSIsIlZlcnRleEluQ29tcG9uZW50IiwiVmVydGV4SW5EZWdyZWUiLCJWZXJ0ZXhJbmRleCIsIlZlcnRleEphY2NhcmRTaW1pbGFyaXR5IiwiVmVydGV4TGFiZWxpbmciLCJWZXJ0ZXhMYWJlbHMiLCJWZXJ0ZXhMYWJlbFN0eWxlIiwiVmVydGV4TGlzdCIsIlZlcnRleE5vcm1hbHMiLCJWZXJ0ZXhPdXRDb21wb25lbnQiLCJWZXJ0ZXhPdXREZWdyZWUiLCJWZXJ0ZXhRIiwiVmVydGV4UmVuZGVyaW5nRnVuY3Rpb24iLCJWZXJ0ZXhSZXBsYWNlIiwiVmVydGV4U2hhcGUiLCJWZXJ0ZXhTaGFwZUZ1bmN0aW9uIiwiVmVydGV4U2l6ZSIsIlZlcnRleFN0eWxlIiwiVmVydGV4VGV4dHVyZUNvb3JkaW5hdGVzIiwiVmVydGV4V2VpZ2h0IiwiVmVydGV4V2VpZ2h0ZWRHcmFwaFEiLCJWZXJ0aWNhbCIsIlZlcnRpY2FsQmFyIiwiVmVydGljYWxGb3JtIiwiVmVydGljYWxHYXVnZSIsIlZlcnRpY2FsU2VwYXJhdG9yIiwiVmVydGljYWxTbGlkZXIiLCJWZXJ0aWNhbFRpbGRlIiwiVmlkZW8iLCJWaWRlb0VuY29kaW5nIiwiVmlkZW9FeHRyYWN0RnJhbWVzIiwiVmlkZW9GcmFtZUxpc3QiLCJWaWRlb0ZyYW1lTWFwIiwiVmlkZW9QYXVzZSIsIlZpZGVvUGxheSIsIlZpZGVvUSIsIlZpZGVvU3RvcCIsIlZpZGVvU3RyZWFtIiwiVmlkZW9TdHJlYW1zIiwiVmlkZW9UaW1lU2VyaWVzIiwiVmlkZW9UcmFja3MiLCJWaWRlb1RyaW0iLCJWaWV3QW5nbGUiLCJWaWV3Q2VudGVyIiwiVmlld01hdHJpeCIsIlZpZXdQb2ludCIsIlZpZXdQb2ludFNlbGVjdG9yU2V0dGluZ3MiLCJWaWV3UG9ydCIsIlZpZXdQcm9qZWN0aW9uIiwiVmlld1JhbmdlIiwiVmlld1ZlY3RvciIsIlZpZXdWZXJ0aWNhbCIsIlZpcnR1YWxHcm91cERhdGEiLCJWaXNpYmxlIiwiVmlzaWJsZUNlbGwiLCJWb2ljZVN0eWxlRGF0YSIsIlZvaWd0RGlzdHJpYnV0aW9uIiwiVm9sY2Fub0RhdGEiLCJWb2x1bWUiLCJWb25NaXNlc0Rpc3RyaWJ1dGlvbiIsIlZvcm9ub2lNZXNoIiwiV2FpdEFsbCIsIldhaXRBc3luY2hyb25vdXNUYXNrIiwiV2FpdE5leHQiLCJXYWl0VW50aWwiLCJXYWtlYnlEaXN0cmlidXRpb24iLCJXYWxsZW5pdXNIeXBlcmdlb21ldHJpY0Rpc3RyaWJ1dGlvbiIsIldhcmluZ1l1bGVEaXN0cmlidXRpb24iLCJXYXJwaW5nQ29ycmVzcG9uZGVuY2UiLCJXYXJwaW5nRGlzdGFuY2UiLCJXYXRlcnNoZWRDb21wb25lbnRzIiwiV2F0c29uVVNxdWFyZVRlc3QiLCJXYXR0c1N0cm9nYXR6R3JhcGhEaXN0cmlidXRpb24iLCJXYXZlbGV0QmVzdEJhc2lzIiwiV2F2ZWxldEZpbHRlckNvZWZmaWNpZW50cyIsIldhdmVsZXRJbWFnZVBsb3QiLCJXYXZlbGV0TGlzdFBsb3QiLCJXYXZlbGV0TWFwSW5kZXhlZCIsIldhdmVsZXRNYXRyaXhQbG90IiwiV2F2ZWxldFBoaSIsIldhdmVsZXRQc2kiLCJXYXZlbGV0U2NhbGUiLCJXYXZlbGV0U2NhbG9ncmFtIiwiV2F2ZWxldFRocmVzaG9sZCIsIldlYWtseUNvbm5lY3RlZENvbXBvbmVudHMiLCJXZWFrbHlDb25uZWN0ZWRHcmFwaENvbXBvbmVudHMiLCJXZWFrbHlDb25uZWN0ZWRHcmFwaFEiLCJXZWFrU3RhdGlvbmFyaXR5IiwiV2VhdGhlckRhdGEiLCJXZWF0aGVyRm9yZWNhc3REYXRhIiwiV2ViQXVkaW9TZWFyY2giLCJXZWJFbGVtZW50T2JqZWN0IiwiV2ViZXJFIiwiV2ViRXhlY3V0ZSIsIldlYkltYWdlIiwiV2ViSW1hZ2VTZWFyY2giLCJXZWJTZWFyY2giLCJXZWJTZXNzaW9uT2JqZWN0IiwiV2ViU2Vzc2lvbnMiLCJXZWJXaW5kb3dPYmplY3QiLCJXZWRnZSIsIldlZG5lc2RheSIsIldlaWJ1bGxEaXN0cmlidXRpb24iLCJXZWllcnN0cmFzc0UxIiwiV2VpZXJzdHJhc3NFMiIsIldlaWVyc3RyYXNzRTMiLCJXZWllcnN0cmFzc0V0YTEiLCJXZWllcnN0cmFzc0V0YTIiLCJXZWllcnN0cmFzc0V0YTMiLCJXZWllcnN0cmFzc0hhbGZQZXJpb2RzIiwiV2VpZXJzdHJhc3NIYWxmUGVyaW9kVzEiLCJXZWllcnN0cmFzc0hhbGZQZXJpb2RXMiIsIldlaWVyc3RyYXNzSGFsZlBlcmlvZFczIiwiV2VpZXJzdHJhc3NJbnZhcmlhbnRHMiIsIldlaWVyc3RyYXNzSW52YXJpYW50RzMiLCJXZWllcnN0cmFzc0ludmFyaWFudHMiLCJXZWllcnN0cmFzc1AiLCJXZWllcnN0cmFzc1BQcmltZSIsIldlaWVyc3RyYXNzU2lnbWEiLCJXZWllcnN0cmFzc1pldGEiLCJXZWlnaHRlZEFkamFjZW5jeUdyYXBoIiwiV2VpZ2h0ZWRBZGphY2VuY3lNYXRyaXgiLCJXZWlnaHRlZERhdGEiLCJXZWlnaHRlZEdyYXBoUSIsIldlaWdodHMiLCJXZWxjaFdpbmRvdyIsIldoZWVsR3JhcGgiLCJXaGVuRXZlbnQiLCJXaGljaCIsIldoaWxlIiwiV2hpdGUiLCJXaGl0ZU5vaXNlUHJvY2VzcyIsIldoaXRlUG9pbnQiLCJXaGl0ZXNwYWNlIiwiV2hpdGVzcGFjZUNoYXJhY3RlciIsIldoaXR0YWtlck0iLCJXaGl0dGFrZXJXIiwiV2llbmVyRmlsdGVyIiwiV2llbmVyUHJvY2VzcyIsIldpZ25lckQiLCJXaWduZXJTZW1pY2lyY2xlRGlzdHJpYnV0aW9uIiwiV2lraWRhdGFEYXRhIiwiV2lraWRhdGFTZWFyY2giLCJXaWtpcGVkaWFEYXRhIiwiV2lraXBlZGlhU2VhcmNoIiwiV2lsa3NXIiwiV2lsa3NXVGVzdCIsIldpbmREaXJlY3Rpb25EYXRhIiwiV2luZGluZ0NvdW50IiwiV2luZGluZ1BvbHlnb24iLCJXaW5kb3dDbGlja1NlbGVjdCIsIldpbmRvd0VsZW1lbnRzIiwiV2luZG93RmxvYXRpbmciLCJXaW5kb3dGcmFtZSIsIldpbmRvd0ZyYW1lRWxlbWVudHMiLCJXaW5kb3dNYXJnaW5zIiwiV2luZG93TW92YWJsZSIsIldpbmRvd09wYWNpdHkiLCJXaW5kb3dQZXJzaXN0ZW50U3R5bGVzIiwiV2luZG93U2VsZWN0ZWQiLCJXaW5kb3dTaXplIiwiV2luZG93U3RhdHVzQXJlYSIsIldpbmRvd1RpdGxlIiwiV2luZG93VG9vbGJhcnMiLCJXaW5kb3dXaWR0aCIsIldpbmRTcGVlZERhdGEiLCJXaW5kVmVjdG9yRGF0YSIsIldpbnNvcml6ZWRNZWFuIiwiV2luc29yaXplZFZhcmlhbmNlIiwiV2lzaGFydE1hdHJpeERpc3RyaWJ1dGlvbiIsIldpdGgiLCJXb2xmcmFtQWxwaGEiLCJXb2xmcmFtQWxwaGFEYXRlIiwiV29sZnJhbUFscGhhUXVhbnRpdHkiLCJXb2xmcmFtQWxwaGFSZXN1bHQiLCJXb2xmcmFtTGFuZ3VhZ2VEYXRhIiwiV29yZCIsIldvcmRCb3VuZGFyeSIsIldvcmRDaGFyYWN0ZXIiLCJXb3JkQ2xvdWQiLCJXb3JkQ291bnQiLCJXb3JkQ291bnRzIiwiV29yZERhdGEiLCJXb3JkRGVmaW5pdGlvbiIsIldvcmRGcmVxdWVuY3kiLCJXb3JkRnJlcXVlbmN5RGF0YSIsIldvcmRMaXN0IiwiV29yZE9yaWVudGF0aW9uIiwiV29yZFNlYXJjaCIsIldvcmRTZWxlY3Rpb25GdW5jdGlvbiIsIldvcmRTZXBhcmF0b3JzIiwiV29yZFNwYWNpbmdzIiwiV29yZFN0ZW0iLCJXb3JkVHJhbnNsYXRpb24iLCJXb3JraW5nUHJlY2lzaW9uIiwiV3JhcEFyb3VuZCIsIldyaXRlIiwiV3JpdGVMaW5lIiwiV3JpdGVTdHJpbmciLCJXcm9uc2tpYW4iLCJYTUxFbGVtZW50IiwiWE1MT2JqZWN0IiwiWE1MVGVtcGxhdGUiLCJYbm9yIiwiWG9yIiwiWFlaQ29sb3IiLCJZZWxsb3ciLCJZZXN0ZXJkYXkiLCJZdWxlRGlzc2ltaWxhcml0eSIsIlplcm5pa2VSIiwiWmVyb1N5bW1ldHJpYyIsIlplcm9UZXN0IiwiWmVyb1dpZHRoVGltZXMiLCJaZXRhIiwiWmV0YVplcm8iLCJaSVBDb2RlRGF0YSIsIlppcGZEaXN0cmlidXRpb24iLCJab29tQ2VudGVyIiwiWm9vbUZhY3RvciIsIlpUZXN0IiwiWlRyYW5zZm9ybSIsIiRBYm9ydGVkIiwiJEFjdGl2YXRpb25Hcm91cElEIiwiJEFjdGl2YXRpb25LZXkiLCIkQWN0aXZhdGlvblVzZXJSZWdpc3RlcmVkIiwiJEFkZE9uc0RpcmVjdG9yeSIsIiRBbGxvd0RhdGFVcGRhdGVzIiwiJEFsbG93RXh0ZXJuYWxDaGFubmVsRnVuY3Rpb25zIiwiJEFsbG93SW50ZXJuZXQiLCIkQXNzZXJ0RnVuY3Rpb24iLCIkQXNzdW1wdGlvbnMiLCIkQXN5bmNocm9ub3VzVGFzayIsIiRBdWRpb0RlY29kZXJzIiwiJEF1ZGlvRW5jb2RlcnMiLCIkQXVkaW9JbnB1dERldmljZXMiLCIkQXVkaW9PdXRwdXREZXZpY2VzIiwiJEJhc2VEaXJlY3RvcnkiLCIkQmFzZVBhY2xldHNEaXJlY3RvcnkiLCIkQmF0Y2hJbnB1dCIsIiRCYXRjaE91dHB1dCIsIiRCbG9ja2NoYWluQmFzZSIsIiRCb3hGb3JtcyIsIiRCeXRlT3JkZXJpbmciLCIkQ2FjaGVCYXNlRGlyZWN0b3J5IiwiJENhbmNlbGVkIiwiJENoYW5uZWxCYXNlIiwiJENoYXJhY3RlckVuY29kaW5nIiwiJENoYXJhY3RlckVuY29kaW5ncyIsIiRDbG91ZEFjY291bnROYW1lIiwiJENsb3VkQmFzZSIsIiRDbG91ZENvbm5lY3RlZCIsIiRDbG91ZENvbm5lY3Rpb24iLCIkQ2xvdWRDcmVkaXRzQXZhaWxhYmxlIiwiJENsb3VkRXZhbHVhdGlvbiIsIiRDbG91ZEV4cHJlc3Npb25CYXNlIiwiJENsb3VkT2JqZWN0TmFtZUZvcm1hdCIsIiRDbG91ZE9iamVjdFVSTFR5cGUiLCIkQ2xvdWRSb290RGlyZWN0b3J5IiwiJENsb3VkU3ltYm9sQmFzZSIsIiRDbG91ZFVzZXJJRCIsIiRDbG91ZFVzZXJVVUlEIiwiJENsb3VkVmVyc2lvbiIsIiRDbG91ZFZlcnNpb25OdW1iZXIiLCIkQ2xvdWRXb2xmcmFtRW5naW5lVmVyc2lvbk51bWJlciIsIiRDb21tYW5kTGluZSIsIiRDb21waWxhdGlvblRhcmdldCIsIiRDb25kaXRpb25Ib2xkIiwiJENvbmZpZ3VyZWRLZXJuZWxzIiwiJENvbnRleHQiLCIkQ29udGV4dFBhdGgiLCIkQ29udHJvbEFjdGl2ZVNldHRpbmciLCIkQ29va2llcyIsIiRDb29raWVTdG9yZSIsIiRDcmVhdGlvbkRhdGUiLCIkQ3VycmVudExpbmsiLCIkQ3VycmVudFRhc2siLCIkQ3VycmVudFdlYlNlc3Npb24iLCIkRGF0YVN0cnVjdHVyZXMiLCIkRGF0ZVN0cmluZ0Zvcm1hdCIsIiREZWZhdWx0QXVkaW9JbnB1dERldmljZSIsIiREZWZhdWx0QXVkaW9PdXRwdXREZXZpY2UiLCIkRGVmYXVsdEZvbnQiLCIkRGVmYXVsdEZyb250RW5kIiwiJERlZmF1bHRJbWFnaW5nRGV2aWNlIiwiJERlZmF1bHRMb2NhbEJhc2UiLCIkRGVmYXVsdE1haWxib3giLCIkRGVmYXVsdE5ldHdvcmtJbnRlcmZhY2UiLCIkRGVmYXVsdFBhdGgiLCIkRGVmYXVsdFByb3h5UnVsZXMiLCIkRGVmYXVsdFN5c3RlbUNyZWRlbnRpYWxTdG9yZSIsIiREaXNwbGF5IiwiJERpc3BsYXlGdW5jdGlvbiIsIiREaXN0cmlidXRlZENvbnRleHRzIiwiJER5bmFtaWNFdmFsdWF0aW9uIiwiJEVjaG8iLCIkRW1iZWRDb2RlRW52aXJvbm1lbnRzIiwiJEVtYmVkZGFibGVTZXJ2aWNlcyIsIiRFbnRpdHlTdG9yZXMiLCIkRXBpbG9nIiwiJEV2YWx1YXRpb25DbG91ZEJhc2UiLCIkRXZhbHVhdGlvbkNsb3VkT2JqZWN0IiwiJEV2YWx1YXRpb25FbnZpcm9ubWVudCIsIiRFeHBvcnRGb3JtYXRzIiwiJEV4dGVybmFsSWRlbnRpZmllclR5cGVzIiwiJEV4dGVybmFsU3RvcmFnZUJhc2UiLCIkRmFpbGVkIiwiJEZpbmFuY2lhbERhdGFTb3VyY2UiLCIkRm9udEZhbWlsaWVzIiwiJEZvcm1hdFR5cGUiLCIkRnJvbnRFbmQiLCIkRnJvbnRFbmRTZXNzaW9uIiwiJEdlb0VudGl0eVR5cGVzIiwiJEdlb0xvY2F0aW9uIiwiJEdlb0xvY2F0aW9uQ2l0eSIsIiRHZW9Mb2NhdGlvbkNvdW50cnkiLCIkR2VvTG9jYXRpb25QcmVjaXNpb24iLCIkR2VvTG9jYXRpb25Tb3VyY2UiLCIkSGlzdG9yeUxlbmd0aCIsIiRIb21lRGlyZWN0b3J5IiwiJEhUTUxFeHBvcnRSdWxlcyIsIiRIVFRQQ29va2llcyIsIiRIVFRQUmVxdWVzdCIsIiRJZ25vcmVFT0YiLCIkSW1hZ2VGb3JtYXR0aW5nV2lkdGgiLCIkSW1hZ2VSZXNvbHV0aW9uIiwiJEltYWdpbmdEZXZpY2UiLCIkSW1hZ2luZ0RldmljZXMiLCIkSW1wb3J0Rm9ybWF0cyIsIiRJbmNvbWluZ01haWxTZXR0aW5ncyIsIiRJbml0aWFsRGlyZWN0b3J5IiwiJEluaXRpYWxpemF0aW9uIiwiJEluaXRpYWxpemF0aW9uQ29udGV4dHMiLCIkSW5wdXQiLCIkSW5wdXRGaWxlTmFtZSIsIiRJbnB1dFN0cmVhbU1ldGhvZHMiLCIkSW5zcGVjdG9yIiwiJEluc3RhbGxhdGlvbkRhdGUiLCIkSW5zdGFsbGF0aW9uRGlyZWN0b3J5IiwiJEludGVyZmFjZUVudmlyb25tZW50IiwiJEludGVycHJldGVyVHlwZXMiLCIkSXRlcmF0aW9uTGltaXQiLCIkS2VybmVsQ291bnQiLCIkS2VybmVsSUQiLCIkTGFuZ3VhZ2UiLCIkTGF1bmNoRGlyZWN0b3J5IiwiJExpYnJhcnlQYXRoIiwiJExpY2Vuc2VFeHBpcmF0aW9uRGF0ZSIsIiRMaWNlbnNlSUQiLCIkTGljZW5zZVByb2Nlc3NlcyIsIiRMaWNlbnNlU2VydmVyIiwiJExpY2Vuc2VTdWJwcm9jZXNzZXMiLCIkTGljZW5zZVR5cGUiLCIkTGluZSIsIiRMaW5rZWQiLCIkTGlua1N1cHBvcnRlZCIsIiRMb2FkZWRGaWxlcyIsIiRMb2NhbEJhc2UiLCIkTG9jYWxTeW1ib2xCYXNlIiwiJE1hY2hpbmVBZGRyZXNzZXMiLCIkTWFjaGluZURvbWFpbiIsIiRNYWNoaW5lRG9tYWlucyIsIiRNYWNoaW5lRXBzaWxvbiIsIiRNYWNoaW5lSUQiLCIkTWFjaGluZU5hbWUiLCIkTWFjaGluZVByZWNpc2lvbiIsIiRNYWNoaW5lVHlwZSIsIiRNYXhFeHRyYVByZWNpc2lvbiIsIiRNYXhMaWNlbnNlUHJvY2Vzc2VzIiwiJE1heExpY2Vuc2VTdWJwcm9jZXNzZXMiLCIkTWF4TWFjaGluZU51bWJlciIsIiRNYXhOdW1iZXIiLCIkTWF4UGllY2V3aXNlQ2FzZXMiLCIkTWF4UHJlY2lzaW9uIiwiJE1heFJvb3REZWdyZWUiLCIkTWVzc2FnZUdyb3VwcyIsIiRNZXNzYWdlTGlzdCIsIiRNZXNzYWdlUHJlUHJpbnQiLCIkTWVzc2FnZXMiLCIkTWluTWFjaGluZU51bWJlciIsIiRNaW5OdW1iZXIiLCIkTWlub3JSZWxlYXNlTnVtYmVyIiwiJE1pblByZWNpc2lvbiIsIiRNb2JpbGVQaG9uZSIsIiRNb2R1bGVOdW1iZXIiLCIkTmV0d29ya0Nvbm5lY3RlZCIsIiROZXR3b3JrSW50ZXJmYWNlcyIsIiROZXR3b3JrTGljZW5zZSIsIiROZXdNZXNzYWdlIiwiJE5ld1N5bWJvbCIsIiROb3RlYm9va0lubGluZVN0b3JhZ2VMaW1pdCIsIiROb3RlYm9va3MiLCIkTm9WYWx1ZSIsIiROdW1iZXJNYXJrcyIsIiRPZmYiLCIkT3BlcmF0aW5nU3lzdGVtIiwiJE91dHB1dCIsIiRPdXRwdXRGb3JtcyIsIiRPdXRwdXRTaXplTGltaXQiLCIkT3V0cHV0U3RyZWFtTWV0aG9kcyIsIiRQYWNrYWdlcyIsIiRQYXJlbnRMaW5rIiwiJFBhcmVudFByb2Nlc3NJRCIsIiRQYXNzd29yZEZpbGUiLCIkUGF0Y2hMZXZlbElEIiwiJFBhdGgiLCIkUGF0aG5hbWVTZXBhcmF0b3IiLCIkUGVyZm9ybWFuY2VHb2FsIiwiJFBlcm1pc3Npb25zIiwiJFBlcm1pc3Npb25zR3JvdXBCYXNlIiwiJFBlcnNpc3RlbmNlQmFzZSIsIiRQZXJzaXN0ZW5jZVBhdGgiLCIkUGlwZVN1cHBvcnRlZCIsIiRQbG90VGhlbWUiLCIkUG9zdCIsIiRQcmUiLCIkUHJlZmVyZW5jZXNEaXJlY3RvcnkiLCIkUHJlSW5pdGlhbGl6YXRpb24iLCIkUHJlUHJpbnQiLCIkUHJlUmVhZCIsIiRQcmludEZvcm1zIiwiJFByaW50TGl0ZXJhbCIsIiRQcmludG91dDNEUHJldmlld2VyIiwiJFByb2Nlc3NJRCIsIiRQcm9jZXNzb3JDb3VudCIsIiRQcm9jZXNzb3JUeXBlIiwiJFByb2R1Y3RJbmZvcm1hdGlvbiIsIiRQcm9ncmFtTmFtZSIsIiRQdWJsaXNoZXJJRCIsIiRSYW5kb21TdGF0ZSIsIiRSZWN1cnNpb25MaW1pdCIsIiRSZWdpc3RlcmVkRGV2aWNlQ2xhc3NlcyIsIiRSZWdpc3RlcmVkVXNlck5hbWUiLCIkUmVsZWFzZU51bWJlciIsIiRSZXF1ZXN0ZXJBZGRyZXNzIiwiJFJlcXVlc3RlcldvbGZyYW1JRCIsIiRSZXF1ZXN0ZXJXb2xmcmFtVVVJRCIsIiRSb290RGlyZWN0b3J5IiwiJFNjaGVkdWxlZFRhc2siLCIkU2NyaXB0Q29tbWFuZExpbmUiLCIkU2NyaXB0SW5wdXRTdHJpbmciLCIkU2VjdXJlZEF1dGhlbnRpY2F0aW9uS2V5VG9rZW5zIiwiJFNlcnZpY2VDcmVkaXRzQXZhaWxhYmxlIiwiJFNlcnZpY2VzIiwiJFNlc3Npb25JRCIsIiRTZXRQYXJlbnRMaW5rIiwiJFNoYXJlZEZ1bmN0aW9ucyIsIiRTaGFyZWRWYXJpYWJsZXMiLCIkU291bmREaXNwbGF5IiwiJFNvdW5kRGlzcGxheUZ1bmN0aW9uIiwiJFNvdXJjZUxpbmsiLCIkU1NIQXV0aGVudGljYXRpb24iLCIkU3VidGl0bGVEZWNvZGVycyIsIiRTdWJ0aXRsZUVuY29kZXJzIiwiJFN1bW1hcnlCb3hEYXRhU2l6ZUxpbWl0IiwiJFN1cHByZXNzSW5wdXRGb3JtSGVhZHMiLCIkU3luY2hyb25vdXNFdmFsdWF0aW9uIiwiJFN5bnRheEhhbmRsZXIiLCIkU3lzdGVtIiwiJFN5c3RlbUNoYXJhY3RlckVuY29kaW5nIiwiJFN5c3RlbUNyZWRlbnRpYWxTdG9yZSIsIiRTeXN0ZW1JRCIsIiRTeXN0ZW1NZW1vcnkiLCIkU3lzdGVtU2hlbGwiLCIkU3lzdGVtVGltZVpvbmUiLCIkU3lzdGVtV29yZExlbmd0aCIsIiRUZW1wbGF0ZVBhdGgiLCIkVGVtcG9yYXJ5RGlyZWN0b3J5IiwiJFRlbXBvcmFyeVByZWZpeCIsIiRUZXN0RmlsZU5hbWUiLCIkVGV4dFN0eWxlIiwiJFRpbWVkT3V0IiwiJFRpbWVVbml0IiwiJFRpbWVab25lIiwiJFRpbWVab25lRW50aXR5IiwiJFRvcERpcmVjdG9yeSIsIiRUcmFjZU9mZiIsIiRUcmFjZU9uIiwiJFRyYWNlUGF0dGVybiIsIiRUcmFjZVBvc3RBY3Rpb24iLCIkVHJhY2VQcmVBY3Rpb24iLCIkVW5pdFN5c3RlbSIsIiRVcmdlbnQiLCIkVXNlckFkZE9uc0RpcmVjdG9yeSIsIiRVc2VyQWdlbnRMYW5ndWFnZXMiLCIkVXNlckFnZW50TWFjaGluZSIsIiRVc2VyQWdlbnROYW1lIiwiJFVzZXJBZ2VudE9wZXJhdGluZ1N5c3RlbSIsIiRVc2VyQWdlbnRTdHJpbmciLCIkVXNlckFnZW50VmVyc2lvbiIsIiRVc2VyQmFzZURpcmVjdG9yeSIsIiRVc2VyQmFzZVBhY2xldHNEaXJlY3RvcnkiLCIkVXNlckRvY3VtZW50c0RpcmVjdG9yeSIsIiRVc2VybmFtZSIsIiRVc2VyTmFtZSIsIiRVc2VyVVJMQmFzZSIsIiRWZXJzaW9uIiwiJFZlcnNpb25OdW1iZXIiLCIkVmlkZW9EZWNvZGVycyIsIiRWaWRlb0VuY29kZXJzIiwiJFZvaWNlU3R5bGVzIiwiJFdvbGZyYW1Eb2N1bWVudHNEaXJlY3RvcnkiLCIkV29sZnJhbUlEIiwiJFdvbGZyYW1VVUlEIl07ZnVuY3Rpb24gZShvKXtyZXR1cm4gbz90eXBlb2Ygbz09InN0cmluZyI/bzpvLnNvdXJjZTpudWxsfWZ1bmN0aW9uIHQobyl7cmV0dXJuIG4oIigiLG8sIik/Iil9ZnVuY3Rpb24gbiguLi5vKXtyZXR1cm4gby5tYXAoYz0+ZShjKSkuam9pbigiIil9ZnVuY3Rpb24gYSguLi5vKXtyZXR1cm4iKCIrby5tYXAoYz0+ZShjKSkuam9pbigifCIpKyIpIn1mdW5jdGlvbiBpKG8pe2NvbnN0IGw9LyhbMi05XXxbMS0yXVxkfFszXVswLTVdKVxeXF4vLGM9LyhcdypcLlx3K3xcdytcLlx3KnxcdyspLyxfPS8oXGQqXC5cZCt8XGQrXC5cZCp8XGQrKS8sZD1hKG4obCxjKSxfKSx1PWEoL2BgWystXT8oXGQqXC5cZCt8XGQrXC5cZCp8XGQrKS8sL2AoWystXT8oXGQqXC5cZCt8XGQrXC5cZCp8XGQrKSk/LyksbT0vXCpcXlsrLV0/XGQrLyxUPXtjbGFzc05hbWU6Im51bWJlciIscmVsZXZhbmNlOjAsYmVnaW46bihkLHQodSksdChtKSl9LGI9L1thLXpBLVokXVthLXpBLVowLTkkXSovLGY9bmV3IFNldChyKSxDPXt2YXJpYW50czpbe2NsYXNzTmFtZToiYnVpbHRpbi1zeW1ib2wiLGJlZ2luOmIsIm9uOmJlZ2luIjooRixLKT0+e2YuaGFzKEZbMF0pfHxLLmlnbm9yZU1hdGNoKCl9fSx7Y2xhc3NOYW1lOiJzeW1ib2wiLHJlbGV2YW5jZTowLGJlZ2luOmJ9XX0sTz17Y2xhc3NOYW1lOiJuYW1lZC1jaGFyYWN0ZXIiLGJlZ2luOi9cXFxbWyRhLXpBLVpdWyRhLXpBLVowLTldK1xdL30sRD17Y2xhc3NOYW1lOiJvcGVyYXRvciIscmVsZXZhbmNlOjAsYmVnaW46L1srXC0qLyw7LjpAfj0+PCZ8X2AnXj8hJV0rL30seT17Y2xhc3NOYW1lOiJwYXR0ZXJuIixyZWxldmFuY2U6MCxiZWdpbjovKFthLXpBLVokXVthLXpBLVowLTkkXSopP18rKFthLXpBLVokXVthLXpBLVowLTkkXSopPy99LEE9e2NsYXNzTmFtZToic2xvdCIscmVsZXZhbmNlOjAsYmVnaW46LyNbYS16QS1aJF1bYS16QS1aMC05JF0qfCMrWzAtOV0/L30saz17Y2xhc3NOYW1lOiJicmFjZSIscmVsZXZhbmNlOjAsYmVnaW46L1tbXF0oKXt9XS99LEI9e2NsYXNzTmFtZToibWVzc2FnZS1uYW1lIixyZWxldmFuY2U6MCxiZWdpbjpuKCI6OiIsYil9O3JldHVybntuYW1lOiJNYXRoZW1hdGljYSIsYWxpYXNlczpbIm1tYSIsIndsIl0sY2xhc3NOYW1lQWxpYXNlczp7YnJhY2U6InB1bmN0dWF0aW9uIixwYXR0ZXJuOiJ0eXBlIixzbG90OiJ0eXBlIixzeW1ib2w6InZhcmlhYmxlIiwibmFtZWQtY2hhcmFjdGVyIjoidmFyaWFibGUiLCJidWlsdGluLXN5bWJvbCI6ImJ1aWx0X2luIiwibWVzc2FnZS1uYW1lIjoic3RyaW5nIn0sY29udGFpbnM6W28uQ09NTUVOVCgvXChcKi8sL1wqXCkvLHtjb250YWluczpbInNlbGYiXX0pLHksQSxCLEMsTyxvLlFVT1RFX1NUUklOR19NT0RFLFQsRCxrXX19cy5leHBvcnRzPWl9LDQ3MTU4OmZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHIoZSl7dmFyIHQ9IignfFxcLicpKyIsbj17cmVsZXZhbmNlOjAsY29udGFpbnM6W3tiZWdpbjp0fV19O3JldHVybntuYW1lOiJNYXRsYWIiLGtleXdvcmRzOntrZXl3b3JkOiJhcmd1bWVudHMgYnJlYWsgY2FzZSBjYXRjaCBjbGFzc2RlZiBjb250aW51ZSBlbHNlIGVsc2VpZiBlbmQgZW51bWVyYXRpb24gZXZlbnRzIGZvciBmdW5jdGlvbiBnbG9iYWwgaWYgbWV0aG9kcyBvdGhlcndpc2UgcGFyZm9yIHBlcnNpc3RlbnQgcHJvcGVydGllcyByZXR1cm4gc3BtZCBzd2l0Y2ggdHJ5IHdoaWxlIixidWlsdF9pbjoic2luIHNpbmQgc2luaCBhc2luIGFzaW5kIGFzaW5oIGNvcyBjb3NkIGNvc2ggYWNvcyBhY29zZCBhY29zaCB0YW4gdGFuZCB0YW5oIGF0YW4gYXRhbmQgYXRhbjIgYXRhbmggc2VjIHNlY2Qgc2VjaCBhc2VjIGFzZWNkIGFzZWNoIGNzYyBjc2NkIGNzY2ggYWNzYyBhY3NjZCBhY3NjaCBjb3QgY290ZCBjb3RoIGFjb3QgYWNvdGQgYWNvdGggaHlwb3QgZXhwIGV4cG0xIGxvZyBsb2cxcCBsb2cxMCBsb2cyIHBvdzIgcmVhbHBvdyByZWFsbG9nIHJlYWxzcXJ0IHNxcnQgbnRocm9vdCBuZXh0cG93MiBhYnMgYW5nbGUgY29tcGxleCBjb25qIGltYWcgcmVhbCB1bndyYXAgaXNyZWFsIGNwbHhwYWlyIGZpeCBmbG9vciBjZWlsIHJvdW5kIG1vZCByZW0gc2lnbiBhaXJ5IGJlc3NlbGogYmVzc2VseSBiZXNzZWxoIGJlc3NlbGkgYmVzc2VsayBiZXRhIGJldGFpbmMgYmV0YWxuIGVsbGlwaiBlbGxpcGtlIGVyZiBlcmZjIGVyZmN4IGVyZmludiBleHBpbnQgZ2FtbWEgZ2FtbWFpbmMgZ2FtbWFsbiBwc2kgbGVnZW5kcmUgY3Jvc3MgZG90IGZhY3RvciBpc3ByaW1lIHByaW1lcyBnY2QgbGNtIHJhdCByYXRzIHBlcm1zIG5jaG9vc2VrIGZhY3RvcmlhbCBjYXJ0MnNwaCBjYXJ0MnBvbCBwb2wyY2FydCBzcGgyY2FydCBoc3YycmdiIHJnYjJoc3YgemVyb3Mgb25lcyBleWUgcmVwbWF0IHJhbmQgcmFuZG4gbGluc3BhY2UgbG9nc3BhY2UgZnJlcXNwYWNlIG1lc2hncmlkIGFjY3VtYXJyYXkgc2l6ZSBsZW5ndGggbmRpbXMgbnVtZWwgZGlzcCBpc2VtcHR5IGlzZXF1YWwgaXNlcXVhbHdpdGhlcXVhbG5hbnMgY2F0IHJlc2hhcGUgZGlhZyBibGtkaWFnIHRyaWwgdHJpdSBmbGlwbHIgZmxpcHVkIGZsaXBkaW0gcm90OTAgZmluZCBzdWIyaW5kIGluZDJzdWIgYnN4ZnVuIG5kZ3JpZCBwZXJtdXRlIGlwZXJtdXRlIHNoaWZ0ZGltIGNpcmNzaGlmdCBzcXVlZXplIGlzc2NhbGFyIGlzdmVjdG9yIGFucyBlcHMgcmVhbG1heCByZWFsbWluIHBpIGl8MCBpbmYgbmFuIGlzbmFuIGlzaW5mIGlzZmluaXRlIGp8MCB3aHkgY29tcGFuIGdhbGxlcnkgaGFkYW1hcmQgaGFua2VsIGhpbGIgaW52aGlsYiBtYWdpYyBwYXNjYWwgcm9zc2VyIHRvZXBsaXR6IHZhbmRlciB3aWxraW5zb24gbWF4IG1pbiBuYW5tYXggbmFubWluIG1lYW4gbmFubWVhbiB0eXBlIHRhYmxlIHJlYWR0YWJsZSB3cml0ZXRhYmxlIHNvcnRyb3dzIHNvcnQgZmlndXJlIHBsb3QgcGxvdDMgc2NhdHRlciBzY2F0dGVyMyBjZWxsZnVuIGxlZ2VuZCBpbnRlcnNlY3QgaXNtZW1iZXIgcHJvY3J1c3RlcyBob2xkIG51bTJjZWxsICJ9LGlsbGVnYWw6JygvL3wifCN8L1xcKnxcXHMrL1xcdyspJyxjb250YWluczpbe2NsYXNzTmFtZToiZnVuY3Rpb24iLGJlZ2luS2V5d29yZHM6ImZ1bmN0aW9uIixlbmQ6IiQiLGNvbnRhaW5zOltlLlVOREVSU0NPUkVfVElUTEVfTU9ERSx7Y2xhc3NOYW1lOiJwYXJhbXMiLHZhcmlhbnRzOlt7YmVnaW46IlxcKCIsZW5kOiJcXCkifSx7YmVnaW46IlxcWyIsZW5kOiJcXF0ifV19XX0se2NsYXNzTmFtZToiYnVpbHRfaW4iLGJlZ2luOi90cnVlfGZhbHNlLyxyZWxldmFuY2U6MCxzdGFydHM6bn0se2JlZ2luOiJbYS16QS1aXVthLXpBLVpfMC05XSoiK3QscmVsZXZhbmNlOjB9LHtjbGFzc05hbWU6Im51bWJlciIsYmVnaW46ZS5DX05VTUJFUl9SRSxyZWxldmFuY2U6MCxzdGFydHM6bn0se2NsYXNzTmFtZToic3RyaW5nIixiZWdpbjoiJyIsZW5kOiInIixjb250YWluczpbZS5CQUNLU0xBU0hfRVNDQVBFLHtiZWdpbjoiJycifV19LHtiZWdpbjovXF18XH18XCkvLHJlbGV2YW5jZTowLHN0YXJ0czpufSx7Y2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOiciJyxlbmQ6JyInLGNvbnRhaW5zOltlLkJBQ0tTTEFTSF9FU0NBUEUse2JlZ2luOiciIid9XSxzdGFydHM6bn0sZS5DT01NRU5UKCJeXFxzKiVcXHtcXHMqJCIsIl5cXHMqJVxcfVxccyokIiksZS5DT01NRU5UKCIlIiwiJCIpXX19cy5leHBvcnRzPXJ9LDE4NjM1OmZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHIoZSl7cmV0dXJue25hbWU6Ik1heGltYSIsa2V5d29yZHM6eyRwYXR0ZXJuOiJbQS1aYS16XyVdWzAtOUEtWmEtel8lXSoiLGtleXdvcmQ6ImlmIHRoZW4gZWxzZSBlbHNlaWYgZm9yIHRocnUgZG8gd2hpbGUgdW5sZXNzIHN0ZXAgaW4gYW5kIG9yIG5vdCIsbGl0ZXJhbDoidHJ1ZSBmYWxzZSB1bmtub3duIGluZiBtaW5mIGluZCB1bmQgJWUgJWkgJXBpICVwaGkgJWdhbW1hIixidWlsdF9pbjoiIGFiYXNlcCBhYnMgYWJzaW50IGFic29sdXRlX3JlYWxfdGltZSBhY29zIGFjb3NoIGFjb3QgYWNvdGggYWNzYyBhY3NjaCBhY3RpdmF0ZSBhZGRjb2wgYWRkX2VkZ2UgYWRkX2VkZ2VzIGFkZG1hdHJpY2VzIGFkZHJvdyBhZGRfdmVydGV4IGFkZF92ZXJ0aWNlcyBhZGphY2VuY3lfbWF0cml4IGFkam9pbiBhZGpvaW50IGFmIGFnZCBhaXJ5IGFpcnlfYWkgYWlyeV9iaSBhaXJ5X2RhaSBhaXJ5X2RiaSBhbGdzeXMgYWxnX3R5cGUgYWxpYXMgYWxscm9vdHMgYWxwaGFjaGFycCBhbHBoYW51bWVyaWNwIGFtb3J0aXphdGlvbiAlYW5kIGFubnVpdHlfZnYgYW5udWl0eV9wdiBhbnRpZCBhbnRpZGlmZiBBbnRpRGlmZmVyZW5jZSBhcHBlbmQgYXBwZW5kZmlsZSBhcHBseSBhcHBseTEgYXBwbHkyIGFwcGx5YjEgYXByb3BvcyBhcmdzIGFyaXRfYW1vcnRpemF0aW9uIGFyaXRobWV0aWMgYXJpdGhzdW0gYXJyYXkgYXJyYXlhcHBseSBhcnJheWluZm8gYXJyYXltYWtlIGFycmF5c2V0YXBwbHkgYXNjaWkgYXNlYyBhc2VjaCBhc2luIGFzaW5oIGFza2ludGVnZXIgYXNrc2lnbiBhc3NvYyBhc3NvY19sZWdlbmRyZV9wIGFzc29jX2xlZ2VuZHJlX3EgYXNzdW1lIGFzc3VtZV9leHRlcm5hbF9ieXRlX29yZGVyIGFzeW1wYSBhdCBhdGFuIGF0YW4yIGF0YW5oIGF0ZW5zaW1wIGF0b20gYXR2YWx1ZSBhdWdjb2VmbWF0cml4IGF1Z21lbnRlZF9sYWdyYW5naWFuX21ldGhvZCBhdiBhdmVyYWdlX2RlZ3JlZSBiYWNrdHJhY2UgYmFycyBiYXJzcGxvdCBiYXJzcGxvdF9kZXNjcmlwdGlvbiBiYXNlNjQgYmFzZTY0X2RlY29kZSBiYXNoaW5kaWNlcyBiYXRjaCBiYXRjaGxvYWQgYmMyIGJkdmFjIGJlbGxuIGJlbmVmaXRfY29zdCBiZXJuIGJlcm5wb2x5IGJlcm5zdGVpbl9hcHByb3ggYmVybnN0ZWluX2V4cGFuZCBiZXJuc3RlaW5fcG9seSBiZXNzZWwgYmVzc2VsX2kgYmVzc2VsX2ogYmVzc2VsX2sgYmVzc2VsX3NpbXBsaWZ5IGJlc3NlbF95IGJldGEgYmV0YV9pbmNvbXBsZXRlIGJldGFfaW5jb21wbGV0ZV9nZW5lcmFsaXplZCBiZXRhX2luY29tcGxldGVfcmVndWxhcml6ZWQgYmV6b3V0IGJmYWxscm9vdHMgYmZmYWMgYmZfZmluZF9yb290IGJmX2ZtaW5fY29ieWxhIGJmaHpldGEgYmZsb2F0IGJmbG9hdHAgYmZwc2kgYmZwc2kwIGJmemV0YSBiaWNvbm5lY3RlZF9jb21wb25lbnRzIGJpbWV0cmljIGJpbm9taWFsIGJpcGFydGl0aW9uIGJsb2NrIGJsb2NrbWF0cml4cCBib2RlX2dhaW4gYm9kZV9waGFzZSBib3RoY29lZiBib3ggYm94cGxvdCBib3hwbG90X2Rlc2NyaXB0aW9uIGJyZWFrIGJ1Z19yZXBvcnQgYnVpbGRfaW5mb3wxMCBidWlsZHEgYnVpbGRfc2FtcGxlIGJ1cm4gY2FicyBjYW5mb3JtIGNhbnRlbiBjYXJkaW5hbGl0eSBjYXJnIGNhcnRhbiBjYXJ0ZXNpYW5fcHJvZHVjdCBjYXRjaCBjYXVjaHlfbWF0cml4IGNiZmZhYyBjZGZfYmVybm91bGxpIGNkZl9iZXRhIGNkZl9iaW5vbWlhbCBjZGZfY2F1Y2h5IGNkZl9jaGkyIGNkZl9jb250aW51b3VzX3VuaWZvcm0gY2RmX2Rpc2NyZXRlX3VuaWZvcm0gY2RmX2V4cCBjZGZfZiBjZGZfZ2FtbWEgY2RmX2dlbmVyYWxfZmluaXRlX2Rpc2NyZXRlIGNkZl9nZW9tZXRyaWMgY2RmX2d1bWJlbCBjZGZfaHlwZXJnZW9tZXRyaWMgY2RmX2xhcGxhY2UgY2RmX2xvZ2lzdGljIGNkZl9sb2dub3JtYWwgY2RmX25lZ2F0aXZlX2Jpbm9taWFsIGNkZl9ub25jZW50cmFsX2NoaTIgY2RmX25vbmNlbnRyYWxfc3R1ZGVudF90IGNkZl9ub3JtYWwgY2RmX3BhcmV0byBjZGZfcG9pc3NvbiBjZGZfcmFua19zdW0gY2RmX3JheWxlaWdoIGNkZl9zaWduZWRfcmFuayBjZGZfc3R1ZGVudF90IGNkZl93ZWlidWxsIGNkaXNwbGF5IGNlaWxpbmcgY2VudHJhbF9tb21lbnQgY2VxdWFsIGNlcXVhbGlnbm9yZSBjZiBjZmRpc3JlcCBjZmV4cGFuZCBjZ2VvZGVzaWMgY2dyZWF0ZXJwIGNncmVhdGVycGlnbm9yZSBjaGFuZ2VuYW1lIGNoYW5nZXZhciBjaGFvc2dhbWUgY2hhcmF0IGNoYXJmdW4gY2hhcmZ1bjIgY2hhcmxpc3QgY2hhcnAgY2hhcnBvbHkgY2hkaXIgY2hlYnlzaGV2X3QgY2hlYnlzaGV2X3UgY2hlY2tkaXYgY2hlY2tfb3ZlcmxhcHMgY2hpbmVzZSBjaG9sZXNreSBjaHJpc3RvZiBjaHJvbWF0aWNfaW5kZXggY2hyb21hdGljX251bWJlciBjaW50IGNpcmN1bGFudF9ncmFwaCBjbGVhcl9lZGdlX3dlaWdodCBjbGVhcl9ydWxlcyBjbGVhcl92ZXJ0ZXhfbGFiZWwgY2xlYnNjaF9nb3JkYW4gY2xlYnNjaF9ncmFwaCBjbGVzc3AgY2xlc3NwaWdub3JlIGNsb3NlIGNsb3NlZmlsZSBjbWV0cmljIGNvZWZmIGNvZWZtYXRyaXggY29ncmFkIGNvbCBjb2xsYXBzZSBjb2xsZWN0dGVybXMgY29sdW1ub3AgY29sdW1uc3BhY2UgY29sdW1uc3dhcCBjb2x1bW52ZWN0b3IgY29tYmluYXRpb24gY29tYmluZSBjb21wMnB1aSBjb21wYXJlIGNvbXBmaWxlIGNvbXBpbGUgY29tcGlsZV9maWxlIGNvbXBsZW1lbnRfZ3JhcGggY29tcGxldGVfYmlwYXJ0aXRlX2dyYXBoIGNvbXBsZXRlX2dyYXBoIGNvbXBsZXhfbnVtYmVyX3AgY29tcG9uZW50cyBjb21wb3NlX2Z1bmN0aW9ucyBjb25jYW4gY29uY2F0IGNvbmp1Z2F0ZSBjb25tZXRkZXJpdiBjb25uZWN0ZWRfY29tcG9uZW50cyBjb25uZWN0X3ZlcnRpY2VzIGNvbnMgY29uc3RhbnQgY29uc3RhbnRwIGNvbnN0aXR1ZW50IGNvbnN0dmFsdWUgY29udDJwYXJ0IGNvbnRlbnQgY29udGludW91c19mcmVxIGNvbnRvcnRpb24gY29udG91cl9wbG90IGNvbnRyYWN0IGNvbnRyYWN0X2VkZ2UgY29udHJhZ3JhZCBjb250cmliX29kZSBjb252ZXJ0IGNvb3JkIGNvcHkgY29weV9maWxlIGNvcHlfZ3JhcGggY29weWxpc3QgY29weW1hdHJpeCBjb3IgY29zIGNvc2ggY290IGNvdGggY292IGNvdjEgY292ZGlmZiBjb3ZlY3QgY292ZXJzIGNyYzI0c3VtIGNyZWF0ZV9ncmFwaCBjcmVhdGVfbGlzdCBjc2MgY3NjaCBjc2V0dXAgY3NwbGluZSBjdGF5bG9yIGN0X2Nvb3Jkc3lzIGN0cmFuc2Zvcm0gY3RyYW5zcG9zZSBjdWJlX2dyYXBoIGN1Ym9jdGFoZWRyb25fZ3JhcGggY3VubGlzcCBjdiBjeWNsZV9kaWdyYXBoIGN5Y2xlX2dyYXBoIGN5bGluZHJpY2FsIGRheXMzNjAgZGJsaW50IGRlYWN0aXZhdGUgZGVjbGFyZSBkZWNsYXJlX2NvbnN0dmFsdWUgZGVjbGFyZV9kaW1lbnNpb25zIGRlY2xhcmVfZnVuZGFtZW50YWxfZGltZW5zaW9ucyBkZWNsYXJlX2Z1bmRhbWVudGFsX3VuaXRzIGRlY2xhcmVfcXR5IGRlY2xhcmVfdHJhbnNsYXRlZCBkZWNsYXJlX3VuaXRfY29udmVyc2lvbiBkZWNsYXJlX3VuaXRzIGRlY2xhcmVfd2VpZ2h0cyBkZWNzeW0gZGVmY29uIGRlZmluZSBkZWZpbmVfYWx0X2Rpc3BsYXkgZGVmaW5lX3ZhcmlhYmxlIGRlZmludCBkZWZtYXRjaCBkZWZydWxlIGRlZnN0cnVjdCBkZWZ0YXlsb3IgZGVncmVlX3NlcXVlbmNlIGRlbCBkZWxldGUgZGVsZXRlbiBkZWx0YSBkZW1vIGRlbW9pdnJlIGRlbm9tIGRlcGVuZHMgZGVyaXZkZWdyZWUgZGVyaXZsaXN0IGRlc2NyaWJlIGRlc29sdmUgZGV0ZXJtaW5hbnQgZGZsb2F0IGRnYXVzc19hIGRnYXVzc19iIGRnZWV2IGRnZW1tIGRnZXFyZiBkZ2VzdiBkZ2VzdmQgZGlhZyBkaWFnbWF0cml4IGRpYWdfbWF0cml4IGRpYWdtYXRyaXhwIGRpYW1ldGVyIGRpZmYgZGlnaXRjaGFycCBkaW1hY3NfZXhwb3J0IGRpbWFjc19pbXBvcnQgZGltZW5zaW9uIGRpbWVuc2lvbmxlc3MgZGltZW5zaW9ucyBkaW1lbnNpb25zX2FzX2xpc3QgZGlyZWN0IGRpcmVjdG9yeSBkaXNjcmV0ZV9mcmVxIGRpc2pvaW4gZGlzam9pbnRwIGRpc29sYXRlIGRpc3AgZGlzcGNvbiBkaXNwZm9ybSBkaXNwZnVuIGRpc3BKb3JkYW4gZGlzcGxheSBkaXNwcnVsZSBkaXNwdGVybXMgZGlzdHJpYiBkaXZpZGUgZGl2aXNvcnMgZGl2c3VtIGRrdW1tZXJfbSBka3VtbWVyX3UgZGxhbmdlIGRvZGVjYWhlZHJvbl9ncmFwaCBkb3Rwcm9kdWN0IGRvdHNpbXAgZHBhcnQgZHJhdyBkcmF3MmQgZHJhdzNkIGRyYXdkZiBkcmF3X2ZpbGUgZHJhd19ncmFwaCBkc2NhbGFyIGVjaGVsb24gZWRnZV9jb2xvcmluZyBlZGdlX2Nvbm5lY3Rpdml0eSBlZGdlcyBlaWdlbnNfYnlfamFjb2JpIGVpZ2VudmFsdWVzIGVpZ2VudmVjdG9ycyBlaWdodGggZWluc3RlaW4gZWl2YWxzIGVpdmVjdHMgZWxhcHNlZF9yZWFsX3RpbWUgZWxhcHNlZF9ydW5fdGltZSBlbGUyY29tcCBlbGUycG9seW5vbWUgZWxlMnB1aSBlbGVtIGVsZW1lbnRwIGVsZXZhdGlvbl9ncmlkIGVsaW0gZWxpbV9hbGxidXQgZWxpbWluYXRlIGVsaW1pbmF0ZV91c2luZyBlbGxpcHNlIGVsbGlwdGljX2UgZWxsaXB0aWNfZWMgZWxsaXB0aWNfZXUgZWxsaXB0aWNfZiBlbGxpcHRpY19rYyBlbGxpcHRpY19waSBlbWF0cml4IGVtcHR5X2dyYXBoIGVtcHR5cCBlbmRjb25zIGVudGVybWF0cml4IGVudGVydGVuc29yIGVudGllciBlcXVhbCBlcXVhbHAgZXF1aXZfY2xhc3NlcyBlcmYgZXJmYyBlcmZfZ2VuZXJhbGl6ZWQgZXJmaSBlcnJjYXRjaCBlcnJvciBlcnJvcm1zZyBlcnJvcnMgZXVsZXIgZXYgZXZhbF9zdHJpbmcgZXZlbnAgZXZlcnkgZXZvbHV0aW9uIGV2b2x1dGlvbjJkIGV2dW5kaWZmIGV4YW1wbGUgZXhwIGV4cGFuZCBleHBhbmR3cnQgZXhwYW5kd3J0X2ZhY3RvcmVkIGV4cGludCBleHBpbnRlZ3JhbF9jaGkgZXhwaW50ZWdyYWxfY2kgZXhwaW50ZWdyYWxfZSBleHBpbnRlZ3JhbF9lMSBleHBpbnRlZ3JhbF9laSBleHBpbnRlZ3JhbF9lX3NpbXBsaWZ5IGV4cGludGVncmFsX2xpIGV4cGludGVncmFsX3NoaSBleHBpbnRlZ3JhbF9zaSBleHBsaWNpdCBleHBsb3NlIGV4cG9uZW50aWFsaXplIGV4cHJlc3MgZXhwdCBleHNlYyBleHRkaWZmIGV4dHJhY3RfbGluZWFyX2VxdWF0aW9ucyBleHRyZW1hbF9zdWJzZXQgZXpnY2QgJWYgZjkwIGZhY3N1bSBmYWN0Y29tYiBmYWN0b3IgZmFjdG9yZmFjc3VtIGZhY3RvcmlhbCBmYWN0b3JvdXQgZmFjdG9yc3VtIGZhY3RzIGZhc3RfY2VudHJhbF9lbGVtZW50cyBmYXN0X2xpbnNvbHZlIGZhc3R0aW1lcyBmZWF0dXJlcCBmZXJuZmFsZSBmZnQgZmliIGZpYnRvcGhpIGZpZnRoIGZpbGVuYW1lX21lcmdlIGZpbGVfc2VhcmNoIGZpbGVfdHlwZSBmaWxsYXJyYXkgZmluZGRlIGZpbmRfcm9vdCBmaW5kX3Jvb3RfYWJzIGZpbmRfcm9vdF9lcnJvciBmaW5kX3Jvb3RfcmVsIGZpcnN0IGZpeCBmbGF0dGVuIGZsZW5ndGggZmxvYXQgZmxvYXRudW1wIGZsb29yIGZsb3dlcl9zbmFyayBmbHVzaCBmbHVzaDFkZXJpdiBmbHVzaGQgZmx1c2huZCBmbHVzaF9vdXRwdXQgZm1pbl9jb2J5bGEgZm9yZ2V0IGZvcnRyYW4gZm91cmNvcyBmb3VyZXhwYW5kIGZvdXJpZXIgZm91cmllcl9lbGltIGZvdXJpbnQgZm91cmludGNvcyBmb3VyaW50c2luIGZvdXJzaW1wIGZvdXJzaW4gZm91cnRoIGZwb3NpdGlvbiBmcmFtZV9icmFja2V0IGZyZWVvZiBmcmVzaGxpbmUgZnJlc25lbF9jIGZyZXNuZWxfcyBmcm9tX2FkamFjZW5jeV9tYXRyaXggZnJ1Y2h0X2dyYXBoIGZ1bGxfbGlzdGlmeSBmdWxsbWFwIGZ1bGxtYXBsIGZ1bGxyYXRzaW1wIGZ1bGxyYXRzdWJzdCBmdWxsc2V0aWZ5IGZ1bmNzb2x2ZSBmdW5kYW1lbnRhbF9kaW1lbnNpb25zIGZ1bmRhbWVudGFsX3VuaXRzIGZ1bmRlZiBmdW5tYWtlIGZ1bnAgZnYgZzAgZzEgZ2FtbWEgZ2FtbWFfZ3JlZWsgZ2FtbWFfaW5jb21wbGV0ZSBnYW1tYV9pbmNvbXBsZXRlX2dlbmVyYWxpemVkIGdhbW1hX2luY29tcGxldGVfcmVndWxhcml6ZWQgZ2F1c3MgZ2F1c3NfYSBnYXVzc19iIGdhdXNzcHJvYiBnY2QgZ2NkZXggZ2NkaXZpZGUgZ2NmYWMgZ2NmYWN0b3IgZ2QgZ2VuZXJhbGl6ZWRfbGFtYmVydF93IGdlbmZhY3QgZ2VuX2xhZ3VlcnJlIGdlbm1hdHJpeCBnZW5zeW0gZ2VvX2Ftb3J0aXphdGlvbiBnZW9fYW5udWl0eV9mdiBnZW9fYW5udWl0eV9wdiBnZW9tYXAgZ2VvbWV0cmljIGdlb21ldHJpY19tZWFuIGdlb3N1bSBnZXQgZ2V0Y3VycmVudGRpcmVjdG9yeSBnZXRfZWRnZV93ZWlnaHQgZ2V0ZW52IGdldF9sdV9mYWN0b3JzIGdldF9vdXRwdXRfc3RyZWFtX3N0cmluZyBnZXRfcGl4ZWwgZ2V0X3Bsb3Rfb3B0aW9uIGdldF90ZXhfZW52aXJvbm1lbnQgZ2V0X3RleF9lbnZpcm9ubWVudF9kZWZhdWx0IGdldF92ZXJ0ZXhfbGFiZWwgZ2ZhY3RvciBnZmFjdG9yc3VtIGdnZiBnaXJ0aCBnbG9iYWxfdmFyaWFuY2VzIGduIGdudXBsb3RfY2xvc2UgZ251cGxvdF9yZXBsb3QgZ251cGxvdF9yZXNldCBnbnVwbG90X3Jlc3RhcnQgZ251cGxvdF9zdGFydCBnbyBHb3NwZXIgR29zcGVyU3VtIGdyMmQgZ3IzZCBncmFkZWYgZ3JhbXNjaG1pZHQgZ3JhcGg2X2RlY29kZSBncmFwaDZfZW5jb2RlIGdyYXBoNl9leHBvcnQgZ3JhcGg2X2ltcG9ydCBncmFwaF9jZW50ZXIgZ3JhcGhfY2hhcnBvbHkgZ3JhcGhfZWlnZW52YWx1ZXMgZ3JhcGhfZmxvdyBncmFwaF9vcmRlciBncmFwaF9wZXJpcGhlcnkgZ3JhcGhfcHJvZHVjdCBncmFwaF9zaXplIGdyYXBoX3VuaW9uIGdyZWF0X3Job21iaWNvc2lkb2RlY2FoZWRyb25fZ3JhcGggZ3JlYXRfcmhvbWJpY3Vib2N0YWhlZHJvbl9ncmFwaCBncmlkX2dyYXBoIGdyaW5kIGdyb2JuZXJfYmFzaXMgZ3JvdHpjaF9ncmFwaCBoYW1pbHRvbl9jeWNsZSBoYW1pbHRvbl9wYXRoIGhhbmtlbCBoYW5rZWxfMSBoYW5rZWxfMiBoYXJtb25pYyBoYXJtb25pY19tZWFuIGhhdiBoZWF3b29kX2dyYXBoIGhlcm1pdGUgaGVzc2lhbiBoZ2ZyZWQgaGlsYmVydG1hcCBoaWxiZXJ0X21hdHJpeCBoaXBvdyBoaXN0b2dyYW0gaGlzdG9ncmFtX2Rlc2NyaXB0aW9uIGhvZGdlIGhvcm5lciBoeXBlcmdlb21ldHJpYyBpMCBpMSAlaWJlcyBpYzEgaWMyIGljX2NvbnZlcnQgaWNocjEgaWNocjIgaWNvc2FoZWRyb25fZ3JhcGggaWNvc2lkb2RlY2FoZWRyb25fZ3JhcGggaWN1cnZhdHVyZSBpZGVudCBpZGVudGZvciBpZGVudGl0eSBpZGlmZiBpZGltIGlkdW1teSBpZXFuICVpZiBpZmFjdG9ycyBpZnJhbWVzIGlmcyBpZ2NkZXggaWdlb2Rlc2ljX2Nvb3JkcyBpbHQgaW1hZ2UgaW1hZ3BhcnQgaW1ldHJpYyBpbXBsaWNpdCBpbXBsaWNpdF9kZXJpdmF0aXZlIGltcGxpY2l0X3Bsb3QgaW5kZXhlZF90ZW5zb3IgaW5kaWNlcyBpbmR1Y2VkX3N1YmdyYXBoIGluZmVyZW5jZXAgaW5mZXJlbmNlX3Jlc3VsdCBpbmZpeCBpbmZvX2Rpc3BsYXkgaW5pdF9hdGVuc29yIGluaXRfY3RlbnNvciBpbl9uZWlnaGJvcnMgaW5uZXJwcm9kdWN0IGlucGFydCBpbnByb2QgaW5ydCBpbnRlZ2VycCBpbnRlZ2VyX3BhcnRpdGlvbnMgaW50ZWdyYXRlIGludGVyc2VjdCBpbnRlcnNlY3Rpb24gaW50ZXJ2YWxwIGludG9wb2lzIGludG9zdW0gaW52YXJpYW50MSBpbnZhcmlhbnQyIGludmVyc2VfZmZ0IGludmVyc2VfamFjb2JpX2NkIGludmVyc2VfamFjb2JpX2NuIGludmVyc2VfamFjb2JpX2NzIGludmVyc2VfamFjb2JpX2RjIGludmVyc2VfamFjb2JpX2RuIGludmVyc2VfamFjb2JpX2RzIGludmVyc2VfamFjb2JpX25jIGludmVyc2VfamFjb2JpX25kIGludmVyc2VfamFjb2JpX25zIGludmVyc2VfamFjb2JpX3NjIGludmVyc2VfamFjb2JpX3NkIGludmVyc2VfamFjb2JpX3NuIGludmVydCBpbnZlcnRfYnlfYWRqb2ludCBpbnZlcnRfYnlfbHUgaW52X21vZCBpcnIgaXMgaXNfYmljb25uZWN0ZWQgaXNfYmlwYXJ0aXRlIGlzX2Nvbm5lY3RlZCBpc19kaWdyYXBoIGlzX2VkZ2VfaW5fZ3JhcGggaXNfZ3JhcGggaXNfZ3JhcGhfb3JfZGlncmFwaCBpc2hvdyBpc19pc29tb3JwaGljIGlzb2xhdGUgaXNvbW9ycGhpc20gaXNfcGxhbmFyIGlzcXJ0IGlzcmVhbF9wIGlzX3Njb25uZWN0ZWQgaXNfdHJlZSBpc192ZXJ0ZXhfaW5fZ3JhcGggaXRlbXNfaW5mZXJlbmNlICVqIGowIGoxIGphY29iaSBqYWNvYmlhbiBqYWNvYmlfY2QgamFjb2JpX2NuIGphY29iaV9jcyBqYWNvYmlfZGMgamFjb2JpX2RuIGphY29iaV9kcyBqYWNvYmlfbmMgamFjb2JpX25kIGphY29iaV9ucyBqYWNvYmlfcCBqYWNvYmlfc2MgamFjb2JpX3NkIGphY29iaV9zbiBKRiBqbiBqb2luIGpvcmRhbiBqdWxpYSBqdWxpYV9zZXQganVsaWFfc2luICVrIGtkZWxzIGtkZWx0YSBraWxsIGtpbGxjb250ZXh0IGtvc3RrYSBrcm9uX2RlbHRhIGtyb25lY2tlcl9wcm9kdWN0IGt1bW1lcl9tIGt1bW1lcl91IGt1cnRvc2lzIGt1cnRvc2lzX2Jlcm5vdWxsaSBrdXJ0b3Npc19iZXRhIGt1cnRvc2lzX2Jpbm9taWFsIGt1cnRvc2lzX2NoaTIga3VydG9zaXNfY29udGludW91c191bmlmb3JtIGt1cnRvc2lzX2Rpc2NyZXRlX3VuaWZvcm0ga3VydG9zaXNfZXhwIGt1cnRvc2lzX2Yga3VydG9zaXNfZ2FtbWEga3VydG9zaXNfZ2VuZXJhbF9maW5pdGVfZGlzY3JldGUga3VydG9zaXNfZ2VvbWV0cmljIGt1cnRvc2lzX2d1bWJlbCBrdXJ0b3Npc19oeXBlcmdlb21ldHJpYyBrdXJ0b3Npc19sYXBsYWNlIGt1cnRvc2lzX2xvZ2lzdGljIGt1cnRvc2lzX2xvZ25vcm1hbCBrdXJ0b3Npc19uZWdhdGl2ZV9iaW5vbWlhbCBrdXJ0b3Npc19ub25jZW50cmFsX2NoaTIga3VydG9zaXNfbm9uY2VudHJhbF9zdHVkZW50X3Qga3VydG9zaXNfbm9ybWFsIGt1cnRvc2lzX3BhcmV0byBrdXJ0b3Npc19wb2lzc29uIGt1cnRvc2lzX3JheWxlaWdoIGt1cnRvc2lzX3N0dWRlbnRfdCBrdXJ0b3Npc193ZWlidWxsIGxhYmVsIGxhYmVscyBsYWdyYW5nZSBsYWd1ZXJyZSBsYW1iZGEgbGFtYmVydF93IGxhcGxhY2UgbGFwbGFjaWFuX21hdHJpeCBsYXN0IGxiZmdzIGxjMmtkdCBsY2hhcnAgbGNfbCBsY20gbGNfdSBsZGVmaW50IGxkaXNwIGxkaXNwbGF5IGxlZ2VuZHJlX3AgbGVnZW5kcmVfcSBsZWluc3RlaW4gbGVuZ3RoIGxldCBsZXRydWxlcyBsZXRzaW1wIGxldmlfY2l2aXRhIGxmcmVlb2YgbGd0cmVpbGxpcyBsaHMgbGkgbGllZGlmZiBsaW1pdCBMaW5kc3RlZHQgbGluZWFyIGxpbmVhcmludGVycG9sIGxpbmVhcl9wcm9ncmFtIGxpbmVhcl9yZWdyZXNzaW9uIGxpbmVfZ3JhcGggbGluc29sdmUgbGlzdGFycmF5IGxpc3RfY29ycmVsYXRpb25zIGxpc3RpZnkgbGlzdF9tYXRyaXhfZW50cmllcyBsaXN0X25jX21vbm9taWFscyBsaXN0b2Z0ZW5zIGxpc3RvZnZhcnMgbGlzdHAgbG1heCBsbWluIGxvYWQgbG9hZGZpbGUgbG9jYWwgbG9jYXRlX21hdHJpeF9lbnRyeSBsb2cgbG9nY29udHJhY3QgbG9nX2dhbW1hIGxvcG93IGxvcmVudHpfZ2F1Z2UgbG93ZXJjYXNlcCBscGFydCBscmF0c3Vic3QgbHJlZHVjZSBscmllbWFubiBsc3F1YXJlc19lc3RpbWF0ZXMgbHNxdWFyZXNfZXN0aW1hdGVzX2FwcHJveGltYXRlIGxzcXVhcmVzX2VzdGltYXRlc19leGFjdCBsc3F1YXJlc19tc2UgbHNxdWFyZXNfcmVzaWR1YWxfbXNlIGxzcXVhcmVzX3Jlc2lkdWFscyBsc3VtIGx0cmVpbGxpcyBsdV9iYWNrc3ViIGx1Y2FzIGx1X2ZhY3RvciAlbSBtYWNyb2V4cGFuZCBtYWNyb2V4cGFuZDEgbWFrZV9hcnJheSBtYWtlYm94IG1ha2VmYWN0IG1ha2VnYW1tYSBtYWtlX2dyYXBoIG1ha2VfbGV2ZWxfcGljdHVyZSBtYWtlbGlzdCBtYWtlT3JkZXJzIG1ha2VfcG9seV9jb250aW5lbnQgbWFrZV9wb2x5X2NvdW50cnkgbWFrZV9wb2x5Z29uIG1ha2VfcmFuZG9tX3N0YXRlIG1ha2VfcmdiX3BpY3R1cmUgbWFrZXNldCBtYWtlX3N0cmluZ19pbnB1dF9zdHJlYW0gbWFrZV9zdHJpbmdfb3V0cHV0X3N0cmVhbSBtYWtlX3RyYW5zZm9ybSBtYW5kZWxicm90IG1hbmRlbGJyb3Rfc2V0IG1hcCBtYXBhdG9tIG1hcGxpc3QgbWF0Y2hkZWNsYXJlIG1hdGNoZml4IG1hdF9jb25kIG1hdF9mdWxsdW5ibG9ja2VyIG1hdF9mdW5jdGlvbiBtYXRobWxfZGlzcGxheSBtYXRfbm9ybSBtYXRyaXggbWF0cml4bWFwIG1hdHJpeHAgbWF0cml4X3NpemUgbWF0dHJhY2UgbWF0X3RyYWNlIG1hdF91bmJsb2NrZXIgbWF4IG1heF9jbGlxdWUgbWF4X2RlZ3JlZSBtYXhfZmxvdyBtYXhpbWl6ZV9scCBtYXhfaW5kZXBlbmRlbnRfc2V0IG1heF9tYXRjaGluZyBtYXliZSBtZDVzdW0gbWVhbiBtZWFuX2Jlcm5vdWxsaSBtZWFuX2JldGEgbWVhbl9iaW5vbWlhbCBtZWFuX2NoaTIgbWVhbl9jb250aW51b3VzX3VuaWZvcm0gbWVhbl9kZXZpYXRpb24gbWVhbl9kaXNjcmV0ZV91bmlmb3JtIG1lYW5fZXhwIG1lYW5fZiBtZWFuX2dhbW1hIG1lYW5fZ2VuZXJhbF9maW5pdGVfZGlzY3JldGUgbWVhbl9nZW9tZXRyaWMgbWVhbl9ndW1iZWwgbWVhbl9oeXBlcmdlb21ldHJpYyBtZWFuX2xhcGxhY2UgbWVhbl9sb2dpc3RpYyBtZWFuX2xvZ25vcm1hbCBtZWFuX25lZ2F0aXZlX2Jpbm9taWFsIG1lYW5fbm9uY2VudHJhbF9jaGkyIG1lYW5fbm9uY2VudHJhbF9zdHVkZW50X3QgbWVhbl9ub3JtYWwgbWVhbl9wYXJldG8gbWVhbl9wb2lzc29uIG1lYW5fcmF5bGVpZ2ggbWVhbl9zdHVkZW50X3QgbWVhbl93ZWlidWxsIG1lZGlhbiBtZWRpYW5fZGV2aWF0aW9uIG1lbWJlciBtZXNoIG1ldHJpY2V4cGFuZGFsbCBtZ2YxX3NoYTEgbWluIG1pbl9kZWdyZWUgbWluX2VkZ2VfY3V0IG1pbmZhY3RvcmlhbCBtaW5pbWFsUG9seSBtaW5pbWl6ZV9scCBtaW5pbXVtX3NwYW5uaW5nX3RyZWUgbWlub3IgbWlucGFja19sc3F1YXJlcyBtaW5wYWNrX3NvbHZlIG1pbl92ZXJ0ZXhfY292ZXIgbWluX3ZlcnRleF9jdXQgbWtkaXIgbW5ld3RvbiBtb2QgbW9kZV9kZWNsYXJlIG1vZGVfaWRlbnRpdHkgTW9kZU1hdHJpeCBtb2ViaXVzIG1vbjJzY2h1ciBtb25vIG1vbm9taWFsX2RpbWVuc2lvbnMgbXVsdGliZXJuc3RlaW5fcG9seSBtdWx0aV9kaXNwbGF5X2Zvcl90ZXhpbmZvIG11bHRpX2VsZW0gbXVsdGlub21pYWwgbXVsdGlub21pYWxfY29lZmYgbXVsdGlfb3JiaXQgbXVsdGlwbG90X21vZGUgbXVsdGlfcHVpIG11bHRzeW0gbXVsdHRocnUgbXljaWVsc2tpX2dyYXBoIG5hcnkgbmF0dXJhbF91bml0IG5jX2RlZ3JlZSBuY2V4cHQgbmNoYXJwb2x5IG5lZ2F0aXZlX3BpY3R1cmUgbmVpZ2hib3JzIG5ldyBuZXdjb250ZXh0IG5ld2RldCBuZXdfZ3JhcGggbmV3bGluZSBuZXd0b24gbmV3X3ZhcmlhYmxlIG5leHRfcHJpbWUgbmljZWR1bW1pZXMgbmljZWluZGljZXMgbmludGggbm9maXggbm9uYXJyYXkgbm9uY2VudHJhbF9tb21lbnQgbm9ubWV0cmljaXR5IG5vbm5lZ2ludGVnZXJwIG5vbnNjYWxhcnAgbm9uemVyb2FuZGZyZWVvZiBub3RlcXVhbCBub3VuaWZ5IG5wdGV0cmFkIG5wdiBucm9vdHMgbnRlcm1zIG50ZXJtc3QgbnRocm9vdCBudWxsaXR5IG51bGxzcGFjZSBudW0gbnVtYmVyZWRfYm91bmRhcmllcyBudW1iZXJwIG51bWJlcl90b19vY3RldHMgbnVtX2Rpc3RpbmN0X3BhcnRpdGlvbnMgbnVtZXJ2YWwgbnVtZmFjdG9yIG51bV9wYXJ0aXRpb25zIG51c3VtIG56ZXRhIG56ZXRhaSBuemV0YXIgb2N0ZXRzX3RvX251bWJlciBvY3RldHNfdG9fb2lkIG9kZF9naXJ0aCBvZGRwIG9kZTIgb2RlX2NoZWNrIG9kZWxpbiBvaWRfdG9fb2N0ZXRzIG9wIG9wZW5hIG9wZW5hX2JpbmFyeSBvcGVuciBvcGVucl9iaW5hcnkgb3Blbncgb3BlbndfYmluYXJ5IG9wZXJhdG9ycCBvcHN1YnN0IG9wdGltaXplICVvciBvcmJpdCBvcmJpdHMgb3JkZXJncmVhdCBvcmRlcmdyZWF0cCBvcmRlcmxlc3Mgb3JkZXJsZXNzcCBvcnRob2dvbmFsX2NvbXBsZW1lbnQgb3J0aG9wb2x5X3JlY3VyIG9ydGhvcG9seV93ZWlnaHQgb3V0ZXJtYXAgb3V0X25laWdoYm9ycyBvdXRvZnBvaXMgcGFkZSBwYXJhYm9saWNfY3lsaW5kZXJfZCBwYXJhbWV0cmljIHBhcmFtZXRyaWNfc3VyZmFjZSBwYXJnIHBhckdvc3BlciBwYXJzZV9zdHJpbmcgcGFyc2VfdGltZWRhdGUgcGFydCBwYXJ0MmNvbnQgcGFydGZyYWMgcGFydGl0aW9uIHBhcnRpdGlvbl9zZXQgcGFydHBvbCBwYXRoX2RpZ3JhcGggcGF0aF9ncmFwaCBwYXRobmFtZV9kaXJlY3RvcnkgcGF0aG5hbWVfbmFtZSBwYXRobmFtZV90eXBlIHBkZl9iZXJub3VsbGkgcGRmX2JldGEgcGRmX2Jpbm9taWFsIHBkZl9jYXVjaHkgcGRmX2NoaTIgcGRmX2NvbnRpbnVvdXNfdW5pZm9ybSBwZGZfZGlzY3JldGVfdW5pZm9ybSBwZGZfZXhwIHBkZl9mIHBkZl9nYW1tYSBwZGZfZ2VuZXJhbF9maW5pdGVfZGlzY3JldGUgcGRmX2dlb21ldHJpYyBwZGZfZ3VtYmVsIHBkZl9oeXBlcmdlb21ldHJpYyBwZGZfbGFwbGFjZSBwZGZfbG9naXN0aWMgcGRmX2xvZ25vcm1hbCBwZGZfbmVnYXRpdmVfYmlub21pYWwgcGRmX25vbmNlbnRyYWxfY2hpMiBwZGZfbm9uY2VudHJhbF9zdHVkZW50X3QgcGRmX25vcm1hbCBwZGZfcGFyZXRvIHBkZl9wb2lzc29uIHBkZl9yYW5rX3N1bSBwZGZfcmF5bGVpZ2ggcGRmX3NpZ25lZF9yYW5rIHBkZl9zdHVkZW50X3QgcGRmX3dlaWJ1bGwgcGVhcnNvbl9za2V3bmVzcyBwZXJtYW5lbnQgcGVybXV0IHBlcm11dGF0aW9uIHBlcm11dGF0aW9ucyBwZXRlcnNlbl9ncmFwaCBwZXRyb3YgcGlja2FwYXJ0IHBpY3R1cmVfZXF1YWxwIHBpY3R1cmVwIHBpZWNoYXJ0IHBpZWNoYXJ0X2Rlc2NyaXB0aW9uIHBsYW5hcl9lbWJlZGRpbmcgcGxheWJhY2sgcGxvZyBwbG90MmQgcGxvdDNkIHBsb3RkZiBwbG90ZXEgcGxzcXVhcmVzIHBvY2hoYW1tZXIgcG9pbnRzIHBvaXNkaWZmIHBvaXNleHB0IHBvaXNpbnQgcG9pc21hcCBwb2lzcGx1cyBwb2lzc2ltcCBwb2lzc3Vic3QgcG9pc3RpbWVzIHBvaXN0cmltIHBvbGFyIHBvbGFyZm9ybSBwb2xhcnRvcmVjdCBwb2xhcl90b194eSBwb2x5X2FkZCBwb2x5X2J1Y2hiZXJnZXIgcG9seV9idWNoYmVyZ2VyX2NyaXRlcmlvbiBwb2x5X2NvbG9uX2lkZWFsIHBvbHlfY29udGVudCBwb2x5ZGVjb21wIHBvbHlfZGVwZW5kc19wIHBvbHlfZWxpbWluYXRpb25faWRlYWwgcG9seV9leGFjdF9kaXZpZGUgcG9seV9leHBhbmQgcG9seV9leHB0IHBvbHlfZ2NkIHBvbHlnb24gcG9seV9ncm9ibmVyIHBvbHlfZ3JvYm5lcl9lcXVhbCBwb2x5X2dyb2JuZXJfbWVtYmVyIHBvbHlfZ3JvYm5lcl9zdWJzZXRwIHBvbHlfaWRlYWxfaW50ZXJzZWN0aW9uIHBvbHlfaWRlYWxfcG9seXNhdHVyYXRpb24gcG9seV9pZGVhbF9wb2x5c2F0dXJhdGlvbjEgcG9seV9pZGVhbF9zYXR1cmF0aW9uIHBvbHlfaWRlYWxfc2F0dXJhdGlvbjEgcG9seV9sY20gcG9seV9taW5pbWl6YXRpb24gcG9seW1vZCBwb2x5X211bHRpcGx5IHBvbHlub21lMmVsZSBwb2x5bm9taWFscCBwb2x5X25vcm1hbF9mb3JtIHBvbHlfbm9ybWFsaXplIHBvbHlfbm9ybWFsaXplX2xpc3QgcG9seV9wb2x5c2F0dXJhdGlvbl9leHRlbnNpb24gcG9seV9wcmltaXRpdmVfcGFydCBwb2x5X3BzZXVkb19kaXZpZGUgcG9seV9yZWR1Y2VkX2dyb2JuZXIgcG9seV9yZWR1Y3Rpb24gcG9seV9zYXR1cmF0aW9uX2V4dGVuc2lvbiBwb2x5X3NfcG9seW5vbWlhbCBwb2x5X3N1YnRyYWN0IHBvbHl0b2NvbXBhbmlvbiBwb3AgcG9zdGZpeCBwb3RlbnRpYWwgcG93ZXJfbW9kIHBvd2Vyc2VyaWVzIHBvd2Vyc2V0IHByZWZpeCBwcmV2X3ByaW1lIHByaW1lcCBwcmltZXMgcHJpbmNpcGFsX2NvbXBvbmVudHMgcHJpbnQgcHJpbnRmIHByaW50ZmlsZSBwcmludF9ncmFwaCBwcmludHBvaXMgcHJpbnRwcm9wcyBwcm9kcmFjIHByb2R1Y3QgcHJvcGVydGllcyBwcm9wdmFycyBwc2kgcHN1YnN0IHB0cmlhbmd1bGFyaXplIHB1aSBwdWkyY29tcCBwdWkyZWxlIHB1aTJwb2x5bm9tZSBwdWlfZGlyZWN0IHB1aXJlZHVjIHB1c2ggcHV0IHB2IHFwdXQgcXJhbmdlIHF0eSBxdWFkX2NvbnRyb2wgcXVhZF9xYWcgcXVhZF9xYWdpIHF1YWRfcWFncCBxdWFkX3FhZ3MgcXVhZF9xYXdjIHF1YWRfcWF3ZiBxdWFkX3Fhd28gcXVhZF9xYXdzIHF1YWRyaWxhdGVyYWwgcXVhbnRpbGUgcXVhbnRpbGVfYmVybm91bGxpIHF1YW50aWxlX2JldGEgcXVhbnRpbGVfYmlub21pYWwgcXVhbnRpbGVfY2F1Y2h5IHF1YW50aWxlX2NoaTIgcXVhbnRpbGVfY29udGludW91c191bmlmb3JtIHF1YW50aWxlX2Rpc2NyZXRlX3VuaWZvcm0gcXVhbnRpbGVfZXhwIHF1YW50aWxlX2YgcXVhbnRpbGVfZ2FtbWEgcXVhbnRpbGVfZ2VuZXJhbF9maW5pdGVfZGlzY3JldGUgcXVhbnRpbGVfZ2VvbWV0cmljIHF1YW50aWxlX2d1bWJlbCBxdWFudGlsZV9oeXBlcmdlb21ldHJpYyBxdWFudGlsZV9sYXBsYWNlIHF1YW50aWxlX2xvZ2lzdGljIHF1YW50aWxlX2xvZ25vcm1hbCBxdWFudGlsZV9uZWdhdGl2ZV9iaW5vbWlhbCBxdWFudGlsZV9ub25jZW50cmFsX2NoaTIgcXVhbnRpbGVfbm9uY2VudHJhbF9zdHVkZW50X3QgcXVhbnRpbGVfbm9ybWFsIHF1YW50aWxlX3BhcmV0byBxdWFudGlsZV9wb2lzc29uIHF1YW50aWxlX3JheWxlaWdoIHF1YW50aWxlX3N0dWRlbnRfdCBxdWFudGlsZV93ZWlidWxsIHF1YXJ0aWxlX3NrZXduZXNzIHF1aXQgcXVuaXQgcXVvdGllbnQgcmFjYWhfdiByYWNhaF93IHJhZGNhbiByYWRpdXMgcmFuZG9tIHJhbmRvbV9iZXJub3VsbGkgcmFuZG9tX2JldGEgcmFuZG9tX2Jpbm9taWFsIHJhbmRvbV9iaXBhcnRpdGVfZ3JhcGggcmFuZG9tX2NhdWNoeSByYW5kb21fY2hpMiByYW5kb21fY29udGludW91c191bmlmb3JtIHJhbmRvbV9kaWdyYXBoIHJhbmRvbV9kaXNjcmV0ZV91bmlmb3JtIHJhbmRvbV9leHAgcmFuZG9tX2YgcmFuZG9tX2dhbW1hIHJhbmRvbV9nZW5lcmFsX2Zpbml0ZV9kaXNjcmV0ZSByYW5kb21fZ2VvbWV0cmljIHJhbmRvbV9ncmFwaCByYW5kb21fZ3JhcGgxIHJhbmRvbV9ndW1iZWwgcmFuZG9tX2h5cGVyZ2VvbWV0cmljIHJhbmRvbV9sYXBsYWNlIHJhbmRvbV9sb2dpc3RpYyByYW5kb21fbG9nbm9ybWFsIHJhbmRvbV9uZWdhdGl2ZV9iaW5vbWlhbCByYW5kb21fbmV0d29yayByYW5kb21fbm9uY2VudHJhbF9jaGkyIHJhbmRvbV9ub25jZW50cmFsX3N0dWRlbnRfdCByYW5kb21fbm9ybWFsIHJhbmRvbV9wYXJldG8gcmFuZG9tX3Blcm11dGF0aW9uIHJhbmRvbV9wb2lzc29uIHJhbmRvbV9yYXlsZWlnaCByYW5kb21fcmVndWxhcl9ncmFwaCByYW5kb21fc3R1ZGVudF90IHJhbmRvbV90b3VybmFtZW50IHJhbmRvbV90cmVlIHJhbmRvbV93ZWlidWxsIHJhbmdlIHJhbmsgcmF0IHJhdGNvZWYgcmF0ZGVub20gcmF0ZGlmZiByYXRkaXNyZXAgcmF0ZXhwYW5kIHJhdGludGVycG9sIHJhdGlvbmFsIHJhdGlvbmFsaXplIHJhdG51bWVyIHJhdG51bXAgcmF0cCByYXRzaW1wIHJhdHN1YnN0IHJhdHZhcnMgcmF0d2VpZ2h0IHJlYWQgcmVhZF9hcnJheSByZWFkX2JpbmFyeV9hcnJheSByZWFkX2JpbmFyeV9saXN0IHJlYWRfYmluYXJ5X21hdHJpeCByZWFkYnl0ZSByZWFkY2hhciByZWFkX2hhc2hlZF9hcnJheSByZWFkbGluZSByZWFkX2xpc3QgcmVhZF9tYXRyaXggcmVhZF9uZXN0ZWRfbGlzdCByZWFkb25seSByZWFkX3hwbSByZWFsX2ltYWdwYXJ0X3RvX2Nvbmp1Z2F0ZSByZWFscGFydCByZWFscm9vdHMgcmVhcnJheSByZWN0YW5nbGUgcmVjdGZvcm0gcmVjdGZvcm1fbG9nX2lmX2NvbnN0YW50IHJlY3R0b3BvbGFyIHJlZGlmZiByZWR1Y2VfY29uc3RzIHJlZHVjZV9vcmRlciByZWdpb24gcmVnaW9uX2JvdW5kYXJpZXMgcmVnaW9uX2JvdW5kYXJpZXNfcGx1cyByZW0gcmVtYWluZGVyIHJlbWFycmF5IHJlbWJveCByZW1jb21wcyByZW1jb24gcmVtY29vcmQgcmVtZnVuIHJlbWZ1bmN0aW9uIHJlbWxldCByZW1vdmUgcmVtb3ZlX2NvbnN0dmFsdWUgcmVtb3ZlX2RpbWVuc2lvbnMgcmVtb3ZlX2VkZ2UgcmVtb3ZlX2Z1bmRhbWVudGFsX2RpbWVuc2lvbnMgcmVtb3ZlX2Z1bmRhbWVudGFsX3VuaXRzIHJlbW92ZV9wbG90X29wdGlvbiByZW1vdmVfdmVydGV4IHJlbXBhcnQgcmVtcnVsZSByZW1zeW0gcmVtdmFsdWUgcmVuYW1lIHJlbmFtZV9maWxlIHJlc2V0IHJlc2V0X2Rpc3BsYXlzIHJlc2lkdWUgcmVzb2x2YW50ZSByZXNvbHZhbnRlX2FsdGVybmVlMSByZXNvbHZhbnRlX2JpcGFydGl0ZSByZXNvbHZhbnRlX2RpZWRyYWxlIHJlc29sdmFudGVfa2xlaW4gcmVzb2x2YW50ZV9rbGVpbjMgcmVzb2x2YW50ZV9wcm9kdWl0X3N5bSByZXNvbHZhbnRlX3VuaXRhaXJlIHJlc29sdmFudGVfdmllcmVyIHJlc3QgcmVzdWx0YW50IHJldHVybiByZXZlYWwgcmV2ZXJzZSByZXZlcnQgcmV2ZXJ0MiByZ2IybGV2ZWwgcmhzIHJpY2NpIHJpZW1hbm4gcmludmFyaWFudCByaXNjaCByayBybWRpciBybmNvbWJpbmUgcm9tYmVyZyByb29tIHJvb3RzY29udHJhY3Qgcm91bmQgcm93IHJvd29wIHJvd3N3YXAgcnJlZHVjZSBydW5fdGVzdHN1aXRlICVzIHNhdmUgc2F2aW5nIHNjYWxhcnAgc2NhbGVkX2Jlc3NlbF9pIHNjYWxlZF9iZXNzZWxfaTAgc2NhbGVkX2Jlc3NlbF9pMSBzY2FsZWZhY3RvcnMgc2Nhbm1hcCBzY2F0dGVycGxvdCBzY2F0dGVycGxvdF9kZXNjcmlwdGlvbiBzY2VuZSBzY2h1cjJjb21wIHNjb25jYXQgc2NvcHkgc2NzaW1wIHNjdXJ2YXR1cmUgc2Rvd25jYXNlIHNlYyBzZWNoIHNlY29uZCBzZXF1YWwgc2VxdWFsaWdub3JlIHNldF9hbHRfZGlzcGxheSBzZXRkaWZmZXJlbmNlIHNldF9kcmF3X2RlZmF1bHRzIHNldF9lZGdlX3dlaWdodCBzZXRlbG14IHNldGVxdWFscCBzZXRpZnkgc2V0cCBzZXRfcGFydGl0aW9ucyBzZXRfcGxvdF9vcHRpb24gc2V0X3Byb21wdCBzZXRfcmFuZG9tX3N0YXRlIHNldF90ZXhfZW52aXJvbm1lbnQgc2V0X3RleF9lbnZpcm9ubWVudF9kZWZhdWx0IHNldHVuaXRzIHNldHVwX2F1dG9sb2FkIHNldF91cF9kb3Rfc2ltcGxpZmljYXRpb25zIHNldF92ZXJ0ZXhfbGFiZWwgc2V2ZW50aCBzZXhwbG9kZSBzZiBzaGExc3VtIHNoYTI1NnN1bSBzaG9ydGVzdF9wYXRoIHNob3J0ZXN0X3dlaWdodGVkX3BhdGggc2hvdyBzaG93Y29tcHMgc2hvd3JhdHZhcnMgc2llcnBpbnNraWFsZSBzaWVycGluc2tpbWFwIHNpZ24gc2lnbnVtIHNpbWlsYXJpdHl0cmFuc2Zvcm0gc2ltcF9pbmVxdWFsaXR5IHNpbXBsaWZ5X3N1bSBzaW1wbG9kZSBzaW1wbWV0ZGVyaXYgc2ltdHJhbiBzaW4gc2luaCBzaW5zZXJ0IHNpbnZlcnRjYXNlIHNpeHRoIHNrZXduZXNzIHNrZXduZXNzX2Jlcm5vdWxsaSBza2V3bmVzc19iZXRhIHNrZXduZXNzX2Jpbm9taWFsIHNrZXduZXNzX2NoaTIgc2tld25lc3NfY29udGludW91c191bmlmb3JtIHNrZXduZXNzX2Rpc2NyZXRlX3VuaWZvcm0gc2tld25lc3NfZXhwIHNrZXduZXNzX2Ygc2tld25lc3NfZ2FtbWEgc2tld25lc3NfZ2VuZXJhbF9maW5pdGVfZGlzY3JldGUgc2tld25lc3NfZ2VvbWV0cmljIHNrZXduZXNzX2d1bWJlbCBza2V3bmVzc19oeXBlcmdlb21ldHJpYyBza2V3bmVzc19sYXBsYWNlIHNrZXduZXNzX2xvZ2lzdGljIHNrZXduZXNzX2xvZ25vcm1hbCBza2V3bmVzc19uZWdhdGl2ZV9iaW5vbWlhbCBza2V3bmVzc19ub25jZW50cmFsX2NoaTIgc2tld25lc3Nfbm9uY2VudHJhbF9zdHVkZW50X3Qgc2tld25lc3Nfbm9ybWFsIHNrZXduZXNzX3BhcmV0byBza2V3bmVzc19wb2lzc29uIHNrZXduZXNzX3JheWxlaWdoIHNrZXduZXNzX3N0dWRlbnRfdCBza2V3bmVzc193ZWlidWxsIHNsZW5ndGggc21ha2Ugc21hbGxfcmhvbWJpY29zaWRvZGVjYWhlZHJvbl9ncmFwaCBzbWFsbF9yaG9tYmljdWJvY3RhaGVkcm9uX2dyYXBoIHNtYXggc21pbiBzbWlzbWF0Y2ggc25vd21hcCBzbnViX2N1YmVfZ3JhcGggc251Yl9kb2RlY2FoZWRyb25fZ3JhcGggc29sdmUgc29sdmVfcmVjIHNvbHZlX3JlY19yYXQgc29tZSBzb21yYWMgc29ydCBzcGFyc2U2X2RlY29kZSBzcGFyc2U2X2VuY29kZSBzcGFyc2U2X2V4cG9ydCBzcGFyc2U2X2ltcG9ydCBzcGVjaW50IHNwaGVyaWNhbCBzcGhlcmljYWxfYmVzc2VsX2ogc3BoZXJpY2FsX2Jlc3NlbF95IHNwaGVyaWNhbF9oYW5rZWwxIHNwaGVyaWNhbF9oYW5rZWwyIHNwaGVyaWNhbF9oYXJtb25pYyBzcGhlcmljYWxfdG9feHl6IHNwbGljZSBzcGxpdCBzcG9zaXRpb24gc3ByaW50IHNxZnIgc3FydCBzcXJ0ZGVuZXN0IHNyZW1vdmUgc3JlbW92ZWZpcnN0IHNyZXZlcnNlIHNzZWFyY2ggc3NvcnQgc3N0YXR1cyBzc3Vic3Qgc3N1YnN0Zmlyc3Qgc3RhaXJjYXNlIHN0YW5kYXJkaXplIHN0YW5kYXJkaXplX2ludmVyc2VfdHJpZyBzdGFycGxvdCBzdGFycGxvdF9kZXNjcmlwdGlvbiBzdGF0dXMgc3RkIHN0ZDEgc3RkX2Jlcm5vdWxsaSBzdGRfYmV0YSBzdGRfYmlub21pYWwgc3RkX2NoaTIgc3RkX2NvbnRpbnVvdXNfdW5pZm9ybSBzdGRfZGlzY3JldGVfdW5pZm9ybSBzdGRfZXhwIHN0ZF9mIHN0ZF9nYW1tYSBzdGRfZ2VuZXJhbF9maW5pdGVfZGlzY3JldGUgc3RkX2dlb21ldHJpYyBzdGRfZ3VtYmVsIHN0ZF9oeXBlcmdlb21ldHJpYyBzdGRfbGFwbGFjZSBzdGRfbG9naXN0aWMgc3RkX2xvZ25vcm1hbCBzdGRfbmVnYXRpdmVfYmlub21pYWwgc3RkX25vbmNlbnRyYWxfY2hpMiBzdGRfbm9uY2VudHJhbF9zdHVkZW50X3Qgc3RkX25vcm1hbCBzdGRfcGFyZXRvIHN0ZF9wb2lzc29uIHN0ZF9yYXlsZWlnaCBzdGRfc3R1ZGVudF90IHN0ZF93ZWlidWxsIHN0ZW1wbG90IHN0aXJsaW5nIHN0aXJsaW5nMSBzdGlybGluZzIgc3RyaW0gc3RyaW1sIHN0cmltciBzdHJpbmcgc3RyaW5nb3V0IHN0cmluZ3Agc3Ryb25nX2NvbXBvbmVudHMgc3RydXZlX2ggc3RydXZlX2wgc3VibGlzIHN1Ymxpc3Qgc3VibGlzdF9pbmRpY2VzIHN1Ym1hdHJpeCBzdWJzYW1wbGUgc3Vic2V0IHN1YnNldHAgc3Vic3Qgc3Vic3RpbnBhcnQgc3Vic3RfcGFyYWxsZWwgc3Vic3RwYXJ0IHN1YnN0cmluZyBzdWJ2YXIgc3VidmFycCBzdW0gc3VtY29udHJhY3Qgc3VtbWFuZF90b19yZWMgc3VwY2FzZSBzdXBjb250ZXh0IHN5bWJvbHAgc3ltbWRpZmZlcmVuY2Ugc3ltbWV0cmljcCBzeXN0ZW0gdGFrZV9jaGFubmVsIHRha2VfaW5mZXJlbmNlIHRhbiB0YW5oIHRheWxvciB0YXlsb3JpbmZvIHRheWxvcnAgdGF5bG9yX3NpbXBsaWZpZXIgdGF5dG9yYXQgdGNsX291dHB1dCB0Y29udHJhY3QgdGVsbHJhdCB0ZWxsc2ltcCB0ZWxsc2ltcGFmdGVyIHRlbnRleCB0ZW50aCB0ZXN0X21lYW4gdGVzdF9tZWFuc19kaWZmZXJlbmNlIHRlc3Rfbm9ybWFsaXR5IHRlc3RfcHJvcG9ydGlvbiB0ZXN0X3Byb3BvcnRpb25zX2RpZmZlcmVuY2UgdGVzdF9yYW5rX3N1bSB0ZXN0X3NpZ24gdGVzdF9zaWduZWRfcmFuayB0ZXN0X3ZhcmlhbmNlIHRlc3RfdmFyaWFuY2VfcmF0aW8gdGV4IHRleDEgdGV4X2Rpc3BsYXkgdGV4cHV0ICV0aCB0aGlyZCB0aHJvdyB0aW1lIHRpbWVkYXRlIHRpbWVyIHRpbWVyX2luZm8gdGxkZWZpbnQgdGxpbWl0IHRvZGRfY294ZXRlciB0b2VwbGl0eiB0b2tlbnMgdG9fbGlzcCB0b3BvbG9naWNhbF9zb3J0IHRvX3BvbHkgdG9fcG9seV9zb2x2ZSB0b3RhbGRpc3JlcCB0b3RhbGZvdXJpZXIgdG90aWVudCB0cGFydHBvbCB0cmFjZSB0cmFjZW1hdHJpeCB0cmFjZV9vcHRpb25zIHRyYW5zZm9ybV9zYW1wbGUgdHJhbnNsYXRlIHRyYW5zbGF0ZV9maWxlIHRyYW5zcG9zZSB0cmVlZmFsZSB0cmVlX3JlZHVjZSB0cmVpbGxpcyB0cmVpbmF0IHRyaWFuZ2xlIHRyaWFuZ3VsYXJpemUgdHJpZ2V4cGFuZCB0cmlncmF0IHRyaWdyZWR1Y2UgdHJpZ3NpbXAgdHJ1bmMgdHJ1bmNhdGUgdHJ1bmNhdGVkX2N1YmVfZ3JhcGggdHJ1bmNhdGVkX2RvZGVjYWhlZHJvbl9ncmFwaCB0cnVuY2F0ZWRfaWNvc2FoZWRyb25fZ3JhcGggdHJ1bmNhdGVkX3RldHJhaGVkcm9uX2dyYXBoIHRyX3dhcm5pbmdzX2dldCB0dWJlIHR1dHRlX2dyYXBoIHVlaXZlY3RzIHVmb3JnZXQgdWx0cmFzcGhlcmljYWwgdW5kZXJseWluZ19ncmFwaCB1bmRpZmYgdW5pb24gdW5pcXVlIHVuaXRlaWdlbnZlY3RvcnMgdW5pdHAgdW5pdHMgdW5pdF9zdGVwIHVuaXR2ZWN0b3IgdW5vcmRlciB1bnN1bSB1bnRlbGxyYXQgdW50aW1lciB1bnRyYWNlIHVwcGVyY2FzZXAgdXJpY2NpIHVyaWVtYW5uIHV2ZWN0IHZhbmRlcm1vbmRlX21hdHJpeCB2YXIgdmFyMSB2YXJfYmVybm91bGxpIHZhcl9iZXRhIHZhcl9iaW5vbWlhbCB2YXJfY2hpMiB2YXJfY29udGludW91c191bmlmb3JtIHZhcl9kaXNjcmV0ZV91bmlmb3JtIHZhcl9leHAgdmFyX2YgdmFyX2dhbW1hIHZhcl9nZW5lcmFsX2Zpbml0ZV9kaXNjcmV0ZSB2YXJfZ2VvbWV0cmljIHZhcl9ndW1iZWwgdmFyX2h5cGVyZ2VvbWV0cmljIHZhcl9sYXBsYWNlIHZhcl9sb2dpc3RpYyB2YXJfbG9nbm9ybWFsIHZhcl9uZWdhdGl2ZV9iaW5vbWlhbCB2YXJfbm9uY2VudHJhbF9jaGkyIHZhcl9ub25jZW50cmFsX3N0dWRlbnRfdCB2YXJfbm9ybWFsIHZhcl9wYXJldG8gdmFyX3BvaXNzb24gdmFyX3JheWxlaWdoIHZhcl9zdHVkZW50X3QgdmFyX3dlaWJ1bGwgdmVjdG9yIHZlY3RvcnBvdGVudGlhbCB2ZWN0b3JzaW1wIHZlcmJpZnkgdmVycyB2ZXJ0ZXhfY29sb3JpbmcgdmVydGV4X2Nvbm5lY3Rpdml0eSB2ZXJ0ZXhfZGVncmVlIHZlcnRleF9kaXN0YW5jZSB2ZXJ0ZXhfZWNjZW50cmljaXR5IHZlcnRleF9pbl9kZWdyZWUgdmVydGV4X291dF9kZWdyZWUgdmVydGljZXMgdmVydGljZXNfdG9fY3ljbGUgdmVydGljZXNfdG9fcGF0aCAldyB3ZXlsIHdoZWVsX2dyYXBoIHdpZW5lcl9pbmRleCB3aWduZXJfM2ogd2lnbmVyXzZqIHdpZ25lcl85aiB3aXRoX3N0ZG91dCB3cml0ZV9iaW5hcnlfZGF0YSB3cml0ZWJ5dGUgd3JpdGVfZGF0YSB3cml0ZWZpbGUgd3JvbnNraWFuIHhyZWR1Y2UgeHRocnUgJXkgWmVpbGJlcmdlciB6ZXJvZXF1aXYgemVyb2ZvciB6ZXJvbWF0cml4IHplcm9tYXRyaXhwIHpldGEgemdlZXYgemhlZXYgemxhbmdlIHpuX2FkZF90YWJsZSB6bl9jYXJtaWNoYWVsX2xhbWJkYSB6bl9jaGFyYWN0ZXJpc3RpY19mYWN0b3JzIHpuX2RldGVybWluYW50IHpuX2ZhY3Rvcl9nZW5lcmF0b3JzIHpuX2ludmVydF9ieV9sdSB6bl9sb2cgem5fbXVsdF90YWJsZSBhYnNib3hjaGFyIGFjdGl2ZWNvbnRleHRzIGFkYXB0X2RlcHRoIGFkZGl0aXZlIGFkaW0gYWZvcm0gYWxnZWJyYWljIGFsZ2Vwc2lsb24gYWxnZXhhY3QgYWxpYXNlcyBhbGxidXQgYWxsX2RvdHNpbXBfZGVub21zIGFsbG9jYXRpb24gYWxsc3ltIGFscGhhYmV0aWMgYW5pbWF0aW9uIGFudGlzeW1tZXRyaWMgYXJyYXlzIGFza2V4cCBhc3N1bWVfcG9zIGFzc3VtZV9wb3NfcHJlZCBhc3N1bWVzY2FsYXIgYXN5bWJvbCBhdG9tZ3JhZCBhdHJpZzEgYXhlcyBheGlzXzNkIGF4aXNfYm90dG9tIGF4aXNfbGVmdCBheGlzX3JpZ2h0IGF4aXNfdG9wIGF6aW11dGggYmFja2dyb3VuZCBiYWNrZ3JvdW5kX2NvbG9yIGJhY2tzdWJzdCBiZXJsZWZhY3QgYmVybnN0ZWluX2V4cGxpY2l0IGJlc3NlbGV4cGFuZCBiZXRhX2FyZ3Nfc3VtX3RvX2ludGVnZXIgYmV0YV9leHBhbmQgYmZ0b3JhdCBiZnRydW5jIGJpbmR0ZXN0IGJvcmRlciBib3VuZGFyaWVzX2FycmF5IGJveCBib3hjaGFyIGJyZWFrdXAgJWMgY2FwcGluZyBjYXVjaHlzdW0gY2JyYW5nZSBjYnRpY3MgY2VudGVyIGNmbGVuZ3RoIGNmcmFtZV9mbGFnIGNub25tZXRfZmxhZyBjb2xvciBjb2xvcl9iYXIgY29sb3JfYmFyX3RpY3MgY29sb3Jib3ggY29sdW1ucyBjb21tdXRhdGl2ZSBjb21wbGV4IGNvbmUgY29udGV4dCBjb250ZXh0cyBjb250b3VyIGNvbnRvdXJfbGV2ZWxzIGNvc25waWZsYWcgY3RheXBvdiBjdGF5cHQgY3RheXN3aXRjaCBjdGF5dmFyIGN0X2Nvb3JkcyBjdG9yc2lvbl9mbGFnIGN0cmdzaW1wIGN1YmUgY3VycmVudF9sZXRfcnVsZV9wYWNrYWdlIGN5bGluZGVyIGRhdGFfZmlsZV9uYW1lIGRlYnVnbW9kZSBkZWNyZWFzaW5nIGRlZmF1bHRfbGV0X3J1bGVfcGFja2FnZSBkZWxheSBkZXBlbmRlbmNpZXMgZGVyaXZhYmJyZXYgZGVyaXZzdWJzdCBkZXRvdXQgZGlhZ21ldHJpYyBkaWZmIGRpbSBkaW1lbnNpb25zIGRpc3BmbGFnIGRpc3BsYXkyZHwxMCBkaXNwbGF5X2Zvcm1hdF9pbnRlcm5hbCBkaXN0cmlidXRlX292ZXIgZG9hbGxteG9wcyBkb21haW4gZG9teGV4cHQgZG9teG14b3BzIGRvbXhuY3RpbWVzIGRvbnRmYWN0b3IgZG9zY214b3BzIGRvc2NteHBsdXMgZG90MG5zY3NpbXAgZG90MHNpbXAgZG90MXNpbXAgZG90YXNzb2MgZG90Y29uc3RydWxlcyBkb3RkaXN0cmliIGRvdGV4cHRzaW1wIGRvdGlkZW50IGRvdHNjcnVsZXMgZHJhd19ncmFwaF9wcm9ncmFtIGRyYXdfcmVhbHBhcnQgZWRnZV9jb2xvciBlZGdlX2NvbG9yaW5nIGVkZ2VfcGFydGl0aW9uIGVkZ2VfdHlwZSBlZGdlX3dpZHRoICVlZGlzcGZsYWcgZWxldmF0aW9uICVlbW9kZSBlbmRwaGkgZW5kdGhldGEgZW5naW5lZXJpbmdfZm9ybWF0X2Zsb2F0cyBlbmhhbmNlZDNkICVlbnVtZXIgZXBzaWxvbl9scCBlcmZmbGFnIGVyZl9yZXByZXNlbnRhdGlvbiBlcnJvcm1zZyBlcnJvcl9zaXplIGVycm9yX3N5bXMgZXJyb3JfdHlwZSAlZV90b19udW1sb2cgZXZhbCBldmVuIGV2ZW5mdW4gZXZmbGFnIGV2ZnVuIGV2X3BvaW50IGV4cGFuZHdydF9kZW5vbSBleHBpbnRleHBhbmQgZXhwaW50cmVwIGV4cG9uIGV4cG9wIGV4cHRkaXNwZmxhZyBleHB0aXNvbGF0ZSBleHB0c3Vic3QgZmFjZXhwYW5kIGZhY3N1bV9jb21iaW5lIGZhY3RsaW0gZmFjdG9yZmxhZyBmYWN0b3JpYWxfZXhwYW5kIGZhY3RvcnNfb25seSBmYiBmZWF0dXJlIGZlYXR1cmVzIGZpbGVfbmFtZSBmaWxlX291dHB1dF9hcHBlbmQgZmlsZV9zZWFyY2hfZGVtbyBmaWxlX3NlYXJjaF9saXNwIGZpbGVfc2VhcmNoX21heGltYXwxMCBmaWxlX3NlYXJjaF90ZXN0cyBmaWxlX3NlYXJjaF91c2FnZSBmaWxlX3R5cGVfbGlzcCBmaWxlX3R5cGVfbWF4aW1hfDEwIGZpbGxfY29sb3IgZmlsbF9kZW5zaXR5IGZpbGxlZF9mdW5jIGZpeGVkX3ZlcnRpY2VzIGZsaXBmbGFnIGZsb2F0MmJmIGZvbnQgZm9udF9zaXplIGZvcnRpbmRlbnQgZm9ydHNwYWNlcyBmcHByZWMgZnBwcmludHByZWMgZnVuY3Rpb25zIGdhbW1hX2V4cGFuZCBnYW1tYWxpbSBnZGV0IGdlbmluZGV4IGdlbnN1bW51bSBHR0ZDRk1BWCBHR0ZJTkZJTklUWSBnbG9iYWxzb2x2ZSBnbnVwbG90X2NvbW1hbmQgZ251cGxvdF9jdXJ2ZV9zdHlsZXMgZ251cGxvdF9jdXJ2ZV90aXRsZXMgZ251cGxvdF9kZWZhdWx0X3Rlcm1fY29tbWFuZCBnbnVwbG90X2R1bWJfdGVybV9jb21tYW5kIGdudXBsb3RfZmlsZV9hcmdzIGdudXBsb3RfZmlsZV9uYW1lIGdudXBsb3Rfb3V0X2ZpbGUgZ251cGxvdF9wZGZfdGVybV9jb21tYW5kIGdudXBsb3RfcG0zZCBnbnVwbG90X3BuZ190ZXJtX2NvbW1hbmQgZ251cGxvdF9wb3N0YW1ibGUgZ251cGxvdF9wcmVhbWJsZSBnbnVwbG90X3BzX3Rlcm1fY29tbWFuZCBnbnVwbG90X3N2Z190ZXJtX2NvbW1hbmQgZ251cGxvdF90ZXJtIGdudXBsb3Rfdmlld19hcmdzIEdvc3Blcl9pbl9aZWlsYmVyZ2VyIGdyYWRlZnMgZ3JpZCBncmlkMmQgZ3JpbmQgaGFsZmFuZ2xlcyBoZWFkX2FuZ2xlIGhlYWRfYm90aCBoZWFkX2xlbmd0aCBoZWFkX3R5cGUgaGVpZ2h0IGh5cGVyZ2VvbWV0cmljX3JlcHJlc2VudGF0aW9uICVpYXJncyBpYmFzZSBpY2MxIGljYzIgaWNvdW50ZXIgaWR1bW15eCBpZXFucHJpbnQgaWZiIGlmYzEgaWZjMiBpZmcgaWZnaSBpZnIgaWZyYW1lX2JyYWNrZXRfZm9ybSBpZnJpIGlnZW93ZWRnZV9mbGFnIGlrdDEgaWt0MiBpbWFnaW5hcnkgaW5jaGFyIGluY3JlYXNpbmcgaW5mZXZhbCBpbmZpbml0eSBpbmZsYWcgaW5mb2xpc3RzIGlubSBpbm1jMSBpbm1jMiBpbnRhbmFseXNpcyBpbnRlZ2VyIGludGVnZXJ2YWx1ZWQgaW50ZWdyYXRlX3VzZV9yb290c29mIGludGVncmF0aW9uX2NvbnN0YW50IGludGVncmF0aW9uX2NvbnN0YW50X2NvdW50ZXIgaW50ZXJwb2xhdGVfY29sb3IgaW50ZmFjbGltIGlwX2dyaWQgaXBfZ3JpZF9pbiBpcnJhdGlvbmFsIGlzb2xhdGVfd3J0X3RpbWVzIGl0ZXJhdGlvbnMgaXRyIGp1bGlhX3BhcmFtZXRlciAlazEgJWsyIGtlZXBmbG9hdCBrZXkga2V5X3BvcyBraW52YXJpYW50IGt0IGxhYmVsIGxhYmVsX2FsaWdubWVudCBsYWJlbF9vcmllbnRhdGlvbiBsYWJlbHMgbGFzc29jaWF0aXZlIGxiZmdzX25jb3JyZWN0aW9ucyBsYmZnc19uZmV2YWxfbWF4IGxlZnRqdXN0IGxlZ2VuZCBsZXRyYXQgbGV0X3J1bGVfcGFja2FnZXMgbGZnIGxnIGxob3NwaXRhbGxpbSBsaW1zdWJzdCBsaW5lYXIgbGluZWFyX3NvbHZlciBsaW5lY2hhciBsaW5lbHwxMCBsaW5lbnVtIGxpbmVfdHlwZSBsaW5ld2lkdGggbGluZV93aWR0aCBsaW5zb2x2ZV9wYXJhbXMgbGluc29sdmV3YXJuIGxpc3BkaXNwIGxpc3Rhcml0aCBsaXN0Y29uc3R2YXJzIGxpc3RkdW1teXZhcnMgbG14Y2hhciBsb2FkX3BhdGhuYW1lIGxvYWRwcmludCBsb2dhYnMgbG9nYXJjIGxvZ2NiIGxvZ2NvbmNvZWZmcCBsb2dleHBhbmQgbG9nbmVnaW50IGxvZ3NpbXAgbG9neCBsb2d4X3NlY29uZGFyeSBsb2d5IGxvZ3lfc2Vjb25kYXJ5IGxvZ3ogbHJpZW0gbTFwYnJhbmNoIG1hY3JvZXhwYW5zaW9uIG1hY3JvcyBtYWludmFyIG1hbnVhbF9kZW1vIG1hcGVycm9yIG1hcHByaW50IG1hdHJpeF9lbGVtZW50X2FkZCBtYXRyaXhfZWxlbWVudF9tdWx0IG1hdHJpeF9lbGVtZW50X3RyYW5zcG9zZSBtYXhhcHBseWRlcHRoIG1heGFwcGx5aGVpZ2h0IG1heGltYV90ZW1wZGlyfDEwIG1heGltYV91c2VyZGlyfDEwIG1heG5lZ2V4IE1BWF9PUkQgbWF4cG9zZXggbWF4cHNpZnJhY2Rlbm9tIG1heHBzaWZyYWNudW0gbWF4cHNpbmVnaW50IG1heHBzaXBvc2ludCBtYXh0YXlvcmRlciBtZXNoX2xpbmVzX2NvbG9yIG1ldGhvZCBtb2RfYmlnX3ByaW1lIG1vZGVfY2hlY2tfZXJyb3JwIG1vZGVfY2hlY2twIG1vZGVfY2hlY2tfd2FybnAgbW9kX3Rlc3QgbW9kX3RocmVzaG9sZCBtb2R1bGFyX2xpbmVhcl9zb2x2ZXIgbW9kdWx1cyBtdWx0aXBsaWNhdGl2ZSBtdWx0aXBsaWNpdGllcyBteW9wdGlvbnMgbmFyeSBuZWdkaXN0cmliIG5lZ3N1bWRpc3BmbGFnIG5ld2xpbmUgbmV3dG9uZXBzaWxvbiBuZXd0b25tYXhpdGVyIG5leHRsYXllcmZhY3RvciBuaWNlaW5kaWNlc3ByZWYgbm0gbm1jIG5vZXZhbCBub2xhYmVscyBub25lZ2F0aXZlX2xwIG5vbmludGVnZXIgbm9uc2NhbGFyIG5vdW4gbm91bmRpc3Agbm91bnMgbnAgbnBpIG50aWNrcyBudHJpZyBudW1lciBudW1lcl9wYnJhbmNoIG9iYXNlIG9kZCBvZGRmdW4gb3BhY2l0eSBvcHByb3BlcnRpZXMgb3BzdWJzdCBvcHRpbXByZWZpeCBvcHRpb25zZXQgb3JpZW50YXRpb24gb3JpZ2luIG9ydGhvcG9seV9yZXR1cm5zX2ludGVydmFscyBvdXRhdGl2ZSBvdXRjaGFyIHBhY2thZ2VmaWxlIHBhbGV0dGUgcGFydHN3aXRjaCBwZGZfZmlsZSBwZmVmb3JtYXQgcGhpcmVzb2x1dGlvbiAlcGlhcmdzIHBpZWNlIHBpdm90X2NvdW50X3N4IHBpdm90X21heF9zeCBwbG90X2Zvcm1hdCBwbG90X29wdGlvbnMgcGxvdF9yZWFscGFydCBwbmdfZmlsZSBwb2NoaGFtbWVyX21heF9pbmRleCBwb2ludHMgcG9pbnRzaXplIHBvaW50X3NpemUgcG9pbnRzX2pvaW5lZCBwb2ludF90eXBlIHBvaXNsaW0gcG9pc3NvbiBwb2x5X2NvZWZmaWNpZW50X3JpbmcgcG9seV9lbGltaW5hdGlvbl9vcmRlciBwb2x5ZmFjdG9yIHBvbHlfZ3JvYm5lcl9hbGdvcml0aG0gcG9seV9ncm9ibmVyX2RlYnVnIHBvbHlfbW9ub21pYWxfb3JkZXIgcG9seV9wcmltYXJ5X2VsaW1pbmF0aW9uX29yZGVyIHBvbHlfcmV0dXJuX3Rlcm1fbGlzdCBwb2x5X3NlY29uZGFyeV9lbGltaW5hdGlvbl9vcmRlciBwb2x5X3RvcF9yZWR1Y3Rpb25fb25seSBwb3NmdW4gcG9zaXRpb24gcG93ZXJkaXNwIHByZWQgcHJlZGVycm9yIHByaW1lcF9udW1iZXJfb2ZfdGVzdHMgcHJvZHVjdF91c2VfZ2FtbWEgcHJvZ3JhbSBwcm9ncmFtbW9kZSBwcm9tb3RlX2Zsb2F0X3RvX2JpZ2Zsb2F0IHByb21wdCBwcm9wb3J0aW9uYWxfYXhlcyBwcm9wcyBwc2V4cGFuZCBwc19maWxlIHJhZGV4cGFuZCByYWRpdXMgcmFkc3Vic3RmbGFnIHJhc3NvY2lhdGl2ZSByYXRhbGdkZW5vbSByYXRjaHJpc3RvZiByYXRkZW5vbWRpdmlkZSByYXRlaW5zdGVpbiByYXRlcHNpbG9uIHJhdGZhYyByYXRpb25hbCByYXRteCByYXRwcmludCByYXRyaWVtYW5uIHJhdHNpbXBleHBvbnMgcmF0dmFyc3dpdGNoIHJhdHdlaWdodHMgcmF0d2V5bCByYXR3dGx2bCByZWFsIHJlYWxvbmx5IHJlZHJhdyByZWZjaGVjayByZXNvbHV0aW9uIHJlc3RhcnQgcmVzdWx0YW50IHJpYyByaWVtIHJteGNoYXIgJXJudW1fbGlzdCByb21iZXJnYWJzIHJvbWJlcmdpdCByb21iZXJnbWluIHJvbWJlcmd0b2wgcm9vdHNjb25tb2RlIHJvb3RzZXBzaWxvbiBydW5fdmlld2VyIHNhbWVfeHkgc2FtZV94eXogc2F2ZWRlZiBzYXZlZmFjdG9ycyBzY2FsYXIgc2NhbGFybWF0cml4cCBzY2FsZSBzY2FsZV9scCBzZXRjaGVjayBzZXRjaGVja2JyZWFrIHNldHZhbCBzaG93X2VkZ2VfY29sb3Igc2hvd19lZGdlcyBzaG93X2VkZ2VfdHlwZSBzaG93X2VkZ2Vfd2lkdGggc2hvd19pZCBzaG93X2xhYmVsIHNob3d0aW1lIHNob3dfdmVydGV4X2NvbG9yIHNob3dfdmVydGV4X3NpemUgc2hvd192ZXJ0ZXhfdHlwZSBzaG93X3ZlcnRpY2VzIHNob3dfd2VpZ2h0IHNpbXAgc2ltcGxpZmllZF9vdXRwdXQgc2ltcGxpZnlfcHJvZHVjdHMgc2ltcHByb2R1Y3Qgc2ltcHN1bSBzaW5ucGlmbGFnIHNvbHZlZGVjb21wb3NlcyBzb2x2ZWV4cGxpY2l0IHNvbHZlZmFjdG9ycyBzb2x2ZW51bGx3YXJuIHNvbHZlcmFkY2FuIHNvbHZldHJpZ3dhcm4gc3BhY2Ugc3BhcnNlIHNwaGVyZSBzcHJpbmdfZW1iZWRkaW5nX2RlcHRoIHNxcnRkaXNwZmxhZyBzdGFyZGlzcCBzdGFydHBoaSBzdGFydHRoZXRhIHN0YXRzX251bWVyIHN0cmluZ2Rpc3Agc3RydWN0dXJlcyBzdHlsZSBzdWJsaXNfYXBwbHlfbGFtYmRhIHN1Ym51bXNpbXAgc3VtZXhwYW5kIHN1bXNwbGl0ZmFjdCBzdXJmYWNlIHN1cmZhY2VfaGlkZSBzdmdfZmlsZSBzeW1tZXRyaWMgdGFiIHRheWxvcmRlcHRoIHRheWxvcl9sb2dleHBhbmQgdGF5bG9yX29yZGVyX2NvZWZmaWNpZW50cyB0YXlsb3JfdHJ1bmNhdGVfcG9seW5vbWlhbHMgdGVuc29ya2lsbCB0ZXJtaW5hbCB0ZXN0c3VpdGVfZmlsZXMgdGhldGFyZXNvbHV0aW9uIHRpbWVyX2RldmFsdWUgdGl0bGUgdGxpbXN3aXRjaCB0ciB0cmFjayB0cmFuc2NvbXBpbGUgdHJhbnNmb3JtIHRyYW5zZm9ybV94eSB0cmFuc2xhdGVfZmFzdF9hcnJheXMgdHJhbnNwYXJlbnQgdHJhbnNydW4gdHJfYXJyYXlfYXNfcmVmIHRyX2JvdW5kX2Z1bmN0aW9uX2FwcGx5cCB0cl9maWxlX3R0eV9tZXNzYWdlc3AgdHJfZmxvYXRfY2FuX2JyYW5jaF9jb21wbGV4IHRyX2Z1bmN0aW9uX2NhbGxfZGVmYXVsdCB0cmlnZXhwYW5kcGx1cyB0cmlnZXhwYW5kdGltZXMgdHJpZ2ludmVyc2VzIHRyaWdzaWduIHRyaXZpYWxfc29sdXRpb25zIHRyX251bWVyIHRyX29wdGltaXplX21heF9sb29wIHRyX3NlbWljb21waWxlIHRyX3N0YXRlX3ZhcnMgdHJfd2Fybl9iYWRfZnVuY3Rpb25fY2FsbHMgdHJfd2Fybl9mZXhwciB0cl93YXJuX21ldmFsIHRyX3dhcm5fbW9kZSB0cl93YXJuX3VuZGVjbGFyZWQgdHJfd2Fybl91bmRlZmluZWRfdmFyaWFibGUgdHN0ZXAgdHR5b2ZmIHR1YmVfZXh0cmVtZXMgdWZnIHVnICV1bml0ZXhwYW5kIHVuaXRfdmVjdG9ycyB1cmljIHVyaWVtIHVzZV9mYXN0X2FycmF5cyB1c2VyX3ByZWFtYmxlIHVzZXJzZXR1bml0cyB2YWx1ZXMgdmVjdF9jcm9zcyB2ZXJib3NlIHZlcnRleF9jb2xvciB2ZXJ0ZXhfY29sb3JpbmcgdmVydGV4X3BhcnRpdGlvbiB2ZXJ0ZXhfc2l6ZSB2ZXJ0ZXhfdHlwZSB2aWV3IHdhcm5pbmdzIHdleWwgd2lkdGggd2luZG93bmFtZSB3aW5kb3d0aXRsZSB3aXJlZF9zdXJmYWNlIHdpcmVmcmFtZSB4YXhpcyB4YXhpc19jb2xvciB4YXhpc19zZWNvbmRhcnkgeGF4aXNfdHlwZSB4YXhpc193aWR0aCB4bGFiZWwgeGxhYmVsX3NlY29uZGFyeSB4bGVuZ3RoIHhyYW5nZSB4cmFuZ2Vfc2Vjb25kYXJ5IHh0aWNzIHh0aWNzX2F4aXMgeHRpY3Nfcm90YXRlIHh0aWNzX3JvdGF0ZV9zZWNvbmRhcnkgeHRpY3Nfc2Vjb25kYXJ5IHh0aWNzX3NlY29uZGFyeV9heGlzIHh1X2dyaWQgeF92b3hlbCB4eV9maWxlIHh5cGxhbmUgeHlfc2NhbGUgeWF4aXMgeWF4aXNfY29sb3IgeWF4aXNfc2Vjb25kYXJ5IHlheGlzX3R5cGUgeWF4aXNfd2lkdGggeWxhYmVsIHlsYWJlbF9zZWNvbmRhcnkgeWxlbmd0aCB5cmFuZ2UgeXJhbmdlX3NlY29uZGFyeSB5dGljcyB5dGljc19heGlzIHl0aWNzX3JvdGF0ZSB5dGljc19yb3RhdGVfc2Vjb25kYXJ5IHl0aWNzX3NlY29uZGFyeSB5dGljc19zZWNvbmRhcnlfYXhpcyB5dl9ncmlkIHlfdm94ZWwgeXhfcmF0aW8gemF4aXMgemF4aXNfY29sb3IgemF4aXNfdHlwZSB6YXhpc193aWR0aCB6ZXJvYSB6ZXJvYiB6ZXJvYmVybiB6ZXRhJXBpIHpsYWJlbCB6bGFiZWxfcm90YXRlIHpsZW5ndGggem1pbiB6bl9wcmltcm9vdF9saW1pdCB6bl9wcmltcm9vdF9wcmV0ZXN0IixzeW1ib2w6Il8gX18gJXwwICUlfDAifSxjb250YWluczpbe2NsYXNzTmFtZToiY29tbWVudCIsYmVnaW46Ii9cXCoiLGVuZDoiXFwqLyIsY29udGFpbnM6WyJzZWxmIl19LGUuUVVPVEVfU1RSSU5HX01PREUse2NsYXNzTmFtZToibnVtYmVyIixyZWxldmFuY2U6MCx2YXJpYW50czpbe2JlZ2luOiJcXGIoXFxkK3xcXGQrXFwufFxcLlxcZCt8XFxkK1xcLlxcZCspW0VlXVstK10/XFxkK1xcYiJ9LHtiZWdpbjoiXFxiKFxcZCt8XFxkK1xcLnxcXC5cXGQrfFxcZCtcXC5cXGQrKVtCYl1bLStdP1xcZCtcXGIiLHJlbGV2YW5jZToxMH0se2JlZ2luOiJcXGIoXFwuXFxkK3xcXGQrXFwuXFxkKylcXGIifSx7YmVnaW46IlxcYihcXGQrfDBbMC05QS1aYS16XSspXFwuP1xcYiJ9XX1dLGlsbGVnYWw6L0AvfX1zLmV4cG9ydHM9cn0sNTg0NTY6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihlKXtyZXR1cm57bmFtZToiTUVMIixrZXl3b3JkczoiaW50IGZsb2F0IHN0cmluZyB2ZWN0b3IgbWF0cml4IGlmIGVsc2Ugc3dpdGNoIGNhc2UgZGVmYXVsdCB3aGlsZSBkbyBmb3IgaW4gYnJlYWsgY29udGludWUgZ2xvYmFsIHByb2MgcmV0dXJuIGFib3V0IGFicyBhZGRBdHRyIGFkZEF0dHJpYnV0ZUVkaXRvck5vZGVIZWxwIGFkZER5bmFtaWMgYWRkTmV3U2hlbGZUYWIgYWRkUFAgYWRkUGFuZWxDYXRlZ29yeSBhZGRQcmVmaXhUb05hbWUgYWR2YW5jZVRvTmV4dERyaXZlbktleSBhZmZlY3RlZE5ldCBhZmZlY3RzIGFpbUNvbnN0cmFpbnQgYWlyIGFsaWFzIGFsaWFzQXR0ciBhbGlnbiBhbGlnbkN0eCBhbGlnbkN1cnZlIGFsaWduU3VyZmFjZSBhbGxWaWV3Rml0IGFtYmllbnRMaWdodCBhbmdsZSBhbmdsZUJldHdlZW4gYW5pbUNvbmUgYW5pbUN1cnZlRWRpdG9yIGFuaW1EaXNwbGF5IGFuaW1WaWV3IGFubm90YXRlIGFwcGVuZFN0cmluZ0FycmF5IGFwcGxpY2F0aW9uTmFtZSBhcHBseUF0dHJQcmVzZXQgYXBwbHlUYWtlIGFyY0xlbkRpbUNvbnRleHQgYXJjTGVuZ3RoRGltZW5zaW9uIGFyY2xlbiBhcnJheU1hcHBlciBhcnQzZFBhaW50Q3R4IGFydEF0dHJDdHggYXJ0QXR0clBhaW50VmVydGV4Q3R4IGFydEF0dHJTa2luUGFpbnRDdHggYXJ0QXR0clRvb2wgYXJ0QnVpbGRQYWludE1lbnUgYXJ0Rmx1aWRBdHRyQ3R4IGFydFB1dHR5Q3R4IGFydFNlbGVjdEN0eCBhcnRTZXRQYWludEN0eCBhcnRVc2VyUGFpbnRDdHggYXNzaWduQ29tbWFuZCBhc3NpZ25JbnB1dERldmljZSBhc3NpZ25WaWV3cG9ydEZhY3RvcmllcyBhdHRhY2hDdXJ2ZSBhdHRhY2hEZXZpY2VBdHRyIGF0dGFjaFN1cmZhY2UgYXR0ckNvbG9yU2xpZGVyR3JwIGF0dHJDb21wYXRpYmlsaXR5IGF0dHJDb250cm9sR3JwIGF0dHJFbnVtT3B0aW9uTWVudSBhdHRyRW51bU9wdGlvbk1lbnVHcnAgYXR0ckZpZWxkR3JwIGF0dHJGaWVsZFNsaWRlckdycCBhdHRyTmF2aWdhdGlvbkNvbnRyb2xHcnAgYXR0clByZXNldEVkaXRXaW4gYXR0cmlidXRlRXhpc3RzIGF0dHJpYnV0ZUluZm8gYXR0cmlidXRlTWVudSBhdHRyaWJ1dGVRdWVyeSBhdXRvS2V5ZnJhbWUgYXV0b1BsYWNlIGJha2VDbGlwIGJha2VGbHVpZFNoYWRpbmcgYmFrZVBhcnRpYWxIaXN0b3J5IGJha2VSZXN1bHRzIGJha2VTaW11bGF0aW9uIGJhc2VuYW1lIGJhc2VuYW1lRXggYmF0Y2hSZW5kZXIgYmVzc2VsIGJldmVsIGJldmVsUGx1cyBiaW5NZW1iZXJzaGlwIGJpbmRTa2luIGJsZW5kMiBibGVuZFNoYXBlIGJsZW5kU2hhcGVFZGl0b3IgYmxlbmRTaGFwZVBhbmVsIGJsZW5kVHdvQXR0ciBibGluZERhdGFUeXBlIGJvbmVMYXR0aWNlIGJvdW5kYXJ5IGJveERvbGx5Q3R4IGJveFpvb21DdHggYnVmZmVyQ3VydmUgYnVpbGRCb29rbWFya01lbnUgYnVpbGRLZXlmcmFtZU1lbnUgYnV0dG9uIGJ1dHRvbk1hbmlwIENCRyBjYWNoZUZpbGUgY2FjaGVGaWxlQ29tYmluZSBjYWNoZUZpbGVNZXJnZSBjYWNoZUZpbGVUcmFjayBjYW1lcmEgY2FtZXJhVmlldyBjYW5DcmVhdGVNYW5pcCBjYW52YXMgY2FwaXRhbGl6ZVN0cmluZyBjYXRjaCBjYXRjaFF1aWV0IGNlaWwgY2hhbmdlU3ViZGl2Q29tcG9uZW50RGlzcGxheUxldmVsIGNoYW5nZVN1YmRpdlJlZ2lvbiBjaGFubmVsQm94IGNoYXJhY3RlciBjaGFyYWN0ZXJNYXAgY2hhcmFjdGVyT3V0bGluZUVkaXRvciBjaGFyYWN0ZXJpemUgY2hkaXIgY2hlY2tCb3ggY2hlY2tCb3hHcnAgY2hlY2tEZWZhdWx0UmVuZGVyR2xvYmFscyBjaG9pY2UgY2lyY2xlIGNpcmN1bGFyRmlsbGV0IGNsYW1wIGNsZWFyIGNsZWFyQ2FjaGUgY2xpcCBjbGlwRWRpdG9yIGNsaXBFZGl0b3JDdXJyZW50VGltZUN0eCBjbGlwU2NoZWR1bGUgY2xpcFNjaGVkdWxlck91dGxpbmVyIGNsaXBUcmltQmVmb3JlIGNsb3NlQ3VydmUgY2xvc2VTdXJmYWNlIGNsdXN0ZXIgY21kRmlsZU91dHB1dCBjbWRTY3JvbGxGaWVsZEV4ZWN1dGVyIGNtZFNjcm9sbEZpZWxkUmVwb3J0ZXIgY21kU2hlbGwgY29hcnNlblN1YmRpdlNlbGVjdGlvbkxpc3QgY29sbGlzaW9uIGNvbG9yIGNvbG9yQXRQb2ludCBjb2xvckVkaXRvciBjb2xvckluZGV4IGNvbG9ySW5kZXhTbGlkZXJHcnAgY29sb3JTbGlkZXJCdXR0b25HcnAgY29sb3JTbGlkZXJHcnAgY29sdW1uTGF5b3V0IGNvbW1hbmRFY2hvIGNvbW1hbmRMaW5lIGNvbW1hbmRQb3J0IGNvbXBhY3RIYWlyU3lzdGVtIGNvbXBvbmVudEVkaXRvciBjb21wb3NpdGluZ0ludGVyb3AgY29tcHV0ZVBvbHlzZXRWb2x1bWUgY29uZGl0aW9uIGNvbmUgY29uZmlybURpYWxvZyBjb25uZWN0QXR0ciBjb25uZWN0Q29udHJvbCBjb25uZWN0RHluYW1pYyBjb25uZWN0Sm9pbnQgY29ubmVjdGlvbkluZm8gY29uc3RyYWluIGNvbnN0cmFpblZhbHVlIGNvbnN0cnVjdGlvbkhpc3RvcnkgY29udGFpbmVyIGNvbnRhaW5zTXVsdGlieXRlIGNvbnRleHRJbmZvIGNvbnRyb2wgY29udmVydEZyb21PbGRMYXllcnMgY29udmVydElmZlRvUHNkIGNvbnZlcnRMaWdodG1hcCBjb252ZXJ0U29saWRUeCBjb252ZXJ0VGVzc2VsbGF0aW9uIGNvbnZlcnRVbml0IGNvcHlBcnJheSBjb3B5RmxleG9yIGNvcHlLZXkgY29weVNraW5XZWlnaHRzIGNvcyBjcEJ1dHRvbiBjcENhY2hlIGNwQ2xvdGhTZXQgY3BDb2xsaXNpb24gY3BDb25zdHJhaW50IGNwQ29udkNsb3RoVG9NZXNoIGNwRm9yY2VzIGNwR2V0U29sdmVyQXR0ciBjcFBhbmVsIGNwUHJvcGVydHkgY3BSaWdpZENvbGxpc2lvbkZpbHRlciBjcFNlYW0gY3BTZXRFZGl0IGNwU2V0U29sdmVyQXR0ciBjcFNvbHZlciBjcFNvbHZlclR5cGVzIGNwVG9vbCBjcFVwZGF0ZUNsb3RoVVZzIGNyZWF0ZURpc3BsYXlMYXllciBjcmVhdGVEcmF3Q3R4IGNyZWF0ZUVkaXRvciBjcmVhdGVMYXllcmVkUHNkRmlsZSBjcmVhdGVNb3Rpb25GaWVsZCBjcmVhdGVOZXdTaGVsZiBjcmVhdGVOb2RlIGNyZWF0ZVJlbmRlckxheWVyIGNyZWF0ZVN1YmRpdlJlZ2lvbiBjcm9zcyBjcm9zc1Byb2R1Y3QgY3R4QWJvcnQgY3R4Q29tcGxldGlvbiBjdHhFZGl0TW9kZSBjdHhUcmF2ZXJzZSBjdXJyZW50Q3R4IGN1cnJlbnRUaW1lIGN1cnJlbnRUaW1lQ3R4IGN1cnJlbnRVbml0IGN1cnZlIGN1cnZlQWRkUHRDdHggY3VydmVDVkN0eCBjdXJ2ZUVQQ3R4IGN1cnZlRWRpdG9yQ3R4IGN1cnZlSW50ZXJzZWN0IGN1cnZlTW92ZUVQQ3R4IGN1cnZlT25TdXJmYWNlIGN1cnZlU2tldGNoQ3R4IGN1dEtleSBjeWNsZUNoZWNrIGN5bGluZGVyIGRhZ1Bvc2UgZGF0ZSBkZWZhdWx0TGlnaHRMaXN0Q2hlY2tCb3ggZGVmYXVsdE5hdmlnYXRpb24gZGVmaW5lRGF0YVNlcnZlciBkZWZpbmVWaXJ0dWFsRGV2aWNlIGRlZm9ybWVyIGRlZ190b19yYWQgZGVsZXRlIGRlbGV0ZUF0dHIgZGVsZXRlU2hhZGluZ0dyb3Vwc0FuZE1hdGVyaWFscyBkZWxldGVTaGVsZlRhYiBkZWxldGVVSSBkZWxldGVVbnVzZWRCcnVzaGVzIGRlbHJhbmRzdHIgZGV0YWNoQ3VydmUgZGV0YWNoRGV2aWNlQXR0ciBkZXRhY2hTdXJmYWNlIGRldmljZUVkaXRvciBkZXZpY2VQYW5lbCBkZ0luZm8gZGdkaXJ0eSBkZ2V2YWwgZGd0aW1lciBkaW1XaGVuIGRpcmVjdEtleUN0eCBkaXJlY3Rpb25hbExpZ2h0IGRpcm1hcCBkaXJuYW1lIGRpc2FibGUgZGlzY29ubmVjdEF0dHIgZGlzY29ubmVjdEpvaW50IGRpc2tDYWNoZSBkaXNwbGFjZW1lbnRUb1BvbHkgZGlzcGxheUFmZmVjdGVkIGRpc3BsYXlDb2xvciBkaXNwbGF5Q3VsbCBkaXNwbGF5TGV2ZWxPZkRldGFpbCBkaXNwbGF5UHJlZiBkaXNwbGF5UkdCQ29sb3IgZGlzcGxheVNtb290aG5lc3MgZGlzcGxheVN0YXRzIGRpc3BsYXlTdHJpbmcgZGlzcGxheVN1cmZhY2UgZGlzdGFuY2VEaW1Db250ZXh0IGRpc3RhbmNlRGltZW5zaW9uIGRvQmx1ciBkb2xseSBkb2xseUN0eCBkb3BlU2hlZXRFZGl0b3IgZG90IGRvdFByb2R1Y3QgZG91YmxlUHJvZmlsZUJpcmFpbFN1cmZhY2UgZHJhZyBkcmFnQXR0ckNvbnRleHQgZHJhZ2dlckNvbnRleHQgZHJvcG9mZkxvY2F0b3IgZHVwbGljYXRlIGR1cGxpY2F0ZUN1cnZlIGR1cGxpY2F0ZVN1cmZhY2UgZHluQ2FjaGUgZHluQ29udHJvbCBkeW5FeHBvcnQgZHluRXhwcmVzc2lvbiBkeW5HbG9iYWxzIGR5blBhaW50RWRpdG9yIGR5blBhcnRpY2xlQ3R4IGR5blByZWYgZHluUmVsRWRQYW5lbCBkeW5SZWxFZGl0b3IgZHluYW1pY0xvYWQgZWRpdEF0dHJMaW1pdHMgZWRpdERpc3BsYXlMYXllckdsb2JhbHMgZWRpdERpc3BsYXlMYXllck1lbWJlcnMgZWRpdFJlbmRlckxheWVyQWRqdXN0bWVudCBlZGl0UmVuZGVyTGF5ZXJHbG9iYWxzIGVkaXRSZW5kZXJMYXllck1lbWJlcnMgZWRpdG9yIGVkaXRvclRlbXBsYXRlIGVmZmVjdG9yIGVtaXQgZW1pdHRlciBlbmFibGVEZXZpY2UgZW5jb2RlU3RyaW5nIGVuZFN0cmluZyBlbmRzV2l0aCBlbnYgZXF1aXZhbGVudCBlcXVpdmFsZW50VG9sIGVyZiBlcnJvciBldmFsIGV2YWxEZWZlcnJlZCBldmFsRWNobyBldmVudCBleGFjdFdvcmxkQm91bmRpbmdCb3ggZXhjbHVzaXZlTGlnaHRDaGVja0JveCBleGVjIGV4ZWN1dGVGb3JFYWNoT2JqZWN0IGV4aXN0cyBleHAgZXhwcmVzc2lvbiBleHByZXNzaW9uRWRpdG9yTGlzdGVuIGV4dGVuZEN1cnZlIGV4dGVuZFN1cmZhY2UgZXh0cnVkZSBmY2hlY2sgZmNsb3NlIGZlb2YgZmZsdXNoIGZnZXRsaW5lIGZnZXR3b3JkIGZpbGUgZmlsZUJyb3dzZXJEaWFsb2cgZmlsZURpYWxvZyBmaWxlRXh0ZW5zaW9uIGZpbGVJbmZvIGZpbGV0ZXN0IGZpbGxldEN1cnZlIGZpbHRlciBmaWx0ZXJDdXJ2ZSBmaWx0ZXJFeHBhbmQgZmlsdGVyU3R1ZGlvSW1wb3J0IGZpbmRBbGxJbnRlcnNlY3Rpb25zIGZpbmRBbmltQ3VydmVzIGZpbmRLZXlmcmFtZSBmaW5kTWVudUl0ZW0gZmluZFJlbGF0ZWRTa2luQ2x1c3RlciBmaW5kZXIgZmlyc3RQYXJlbnRPZiBmaXRCc3BsaW5lIGZsZXhvciBmbG9hdEVxIGZsb2F0RmllbGQgZmxvYXRGaWVsZEdycCBmbG9hdFNjcm9sbEJhciBmbG9hdFNsaWRlciBmbG9hdFNsaWRlcjIgZmxvYXRTbGlkZXJCdXR0b25HcnAgZmxvYXRTbGlkZXJHcnAgZmxvb3IgZmxvdyBmbHVpZENhY2hlSW5mbyBmbHVpZEVtaXR0ZXIgZmx1aWRWb3hlbEluZm8gZmx1c2hVbmRvIGZtb2QgZm9udERpYWxvZyBmb3BlbiBmb3JtTGF5b3V0IGZvcm1hdCBmcHJpbnQgZnJhbWVMYXlvdXQgZnJlYWQgZnJlZUZvcm1GaWxsZXQgZnJld2luZCBmcm9tTmF0aXZlUGF0aCBmd3JpdGUgZ2FtbWEgZ2F1c3MgZ2VvbWV0cnlDb25zdHJhaW50IGdldEFwcGxpY2F0aW9uVmVyc2lvbkFzRmxvYXQgZ2V0QXR0ciBnZXRDbGFzc2lmaWNhdGlvbiBnZXREZWZhdWx0QnJ1c2ggZ2V0RmlsZUxpc3QgZ2V0Rmx1aWRBdHRyIGdldElucHV0RGV2aWNlUmFuZ2UgZ2V0TWF5YVBhbmVsVHlwZXMgZ2V0TW9kaWZpZXJzIGdldFBhbmVsIGdldFBhcnRpY2xlQXR0ciBnZXRQbHVnaW5SZXNvdXJjZSBnZXRlbnYgZ2V0cGlkIGdsUmVuZGVyIGdsUmVuZGVyRWRpdG9yIGdsb2JhbFN0aXRjaCBnbWF0Y2ggZ29hbCBnb3RvQmluZFBvc2UgZ3JhYkNvbG9yIGdyYWRpZW50Q29udHJvbCBncmFkaWVudENvbnRyb2xOb0F0dHIgZ3JhcGhEb2xseUN0eCBncmFwaFNlbGVjdENvbnRleHQgZ3JhcGhUcmFja0N0eCBncmF2aXR5IGdyaWQgZ3JpZExheW91dCBncm91cCBncm91cE9iamVjdHNCeU5hbWUgSGZBZGRBdHRyYWN0b3JUb0FTIEhmQXNzaWduQVMgSGZCdWlsZEVxdWFsTWFwIEhmQnVpbGRGdXJGaWxlcyBIZkJ1aWxkRnVySW1hZ2VzIEhmQ2FuY2VsQUZSIEhmQ29ubmVjdEFTVG9IRiBIZkNyZWF0ZUF0dHJhY3RvciBIZkRlbGV0ZUFTIEhmRWRpdEFTIEhmUGVyZm9ybUNyZWF0ZUFTIEhmUmVtb3ZlQXR0cmFjdG9yRnJvbUFTIEhmU2VsZWN0QXR0YWNoZWQgSGZTZWxlY3RBdHRyYWN0b3JzIEhmVW5Bc3NpZ25BUyBoYXJkZW5Qb2ludEN1cnZlIGhhcmR3YXJlIGhhcmR3YXJlUmVuZGVyUGFuZWwgaGVhZHNVcERpc3BsYXkgaGVhZHNVcE1lc3NhZ2UgaGVscCBoZWxwTGluZSBoZXJtaXRlIGhpZGUgaGlsaXRlIGhpdFRlc3QgaG90Qm94IGhvdGtleSBob3RrZXlDaGVjayBoc3ZfdG9fcmdiIGh1ZEJ1dHRvbiBodWRTbGlkZXIgaHVkU2xpZGVyQnV0dG9uIGh3UmVmbGVjdGlvbk1hcCBod1JlbmRlciBod1JlbmRlckxvYWQgaHlwZXJHcmFwaCBoeXBlclBhbmVsIGh5cGVyU2hhZGUgaHlwb3QgaWNvblRleHRCdXR0b24gaWNvblRleHRDaGVja0JveCBpY29uVGV4dFJhZGlvQnV0dG9uIGljb25UZXh0UmFkaW9Db2xsZWN0aW9uIGljb25UZXh0U2Nyb2xsTGlzdCBpY29uVGV4dFN0YXRpY0xhYmVsIGlrSGFuZGxlIGlrSGFuZGxlQ3R4IGlrSGFuZGxlRGlzcGxheVNjYWxlIGlrU29sdmVyIGlrU3BsaW5lSGFuZGxlQ3R4IGlrU3lzdGVtIGlrU3lzdGVtSW5mbyBpa2ZrRGlzcGxheU1ldGhvZCBpbGx1c3RyYXRvckN1cnZlcyBpbWFnZSBpbWZQbHVnaW5zIGluaGVyaXRUcmFuc2Zvcm0gaW5zZXJ0Sm9pbnQgaW5zZXJ0Sm9pbnRDdHggaW5zZXJ0S2V5Q3R4IGluc2VydEtub3RDdXJ2ZSBpbnNlcnRLbm90U3VyZmFjZSBpbnN0YW5jZSBpbnN0YW5jZWFibGUgaW5zdGFuY2VyIGludEZpZWxkIGludEZpZWxkR3JwIGludFNjcm9sbEJhciBpbnRTbGlkZXIgaW50U2xpZGVyR3JwIGludGVyVG9VSSBpbnRlcm5hbFZhciBpbnRlcnNlY3QgaXByRW5naW5lIGlzQW5pbUN1cnZlIGlzQ29ubmVjdGVkIGlzRGlydHkgaXNQYXJlbnRPZiBpc1NhbWVPYmplY3QgaXNUcnVlIGlzVmFsaWRPYmplY3ROYW1lIGlzVmFsaWRTdHJpbmcgaXNWYWxpZFVpTmFtZSBpc29sYXRlU2VsZWN0IGl0ZW1GaWx0ZXIgaXRlbUZpbHRlckF0dHIgaXRlbUZpbHRlclJlbmRlciBpdGVtRmlsdGVyVHlwZSBqb2ludCBqb2ludENsdXN0ZXIgam9pbnRDdHggam9pbnREaXNwbGF5U2NhbGUgam9pbnRMYXR0aWNlIGtleVRhbmdlbnQga2V5ZnJhbWUga2V5ZnJhbWVPdXRsaW5lciBrZXlmcmFtZVJlZ2lvbkN1cnJlbnRUaW1lQ3R4IGtleWZyYW1lUmVnaW9uRGlyZWN0S2V5Q3R4IGtleWZyYW1lUmVnaW9uRG9sbHlDdHgga2V5ZnJhbWVSZWdpb25JbnNlcnRLZXlDdHgga2V5ZnJhbWVSZWdpb25Nb3ZlS2V5Q3R4IGtleWZyYW1lUmVnaW9uU2NhbGVLZXlDdHgga2V5ZnJhbWVSZWdpb25TZWxlY3RLZXlDdHgga2V5ZnJhbWVSZWdpb25TZXRLZXlDdHgga2V5ZnJhbWVSZWdpb25UcmFja0N0eCBrZXlmcmFtZVN0YXRzIGxhc3NvQ29udGV4dCBsYXR0aWNlIGxhdHRpY2VEZWZvcm1LZXlDdHggbGF1bmNoIGxhdW5jaEltYWdlRWRpdG9yIGxheWVyQnV0dG9uIGxheWVyZWRTaGFkZXJQb3J0IGxheWVyZWRUZXh0dXJlUG9ydCBsYXlvdXQgbGF5b3V0RGlhbG9nIGxpZ2h0TGlzdCBsaWdodExpc3RFZGl0b3IgbGlnaHRMaXN0UGFuZWwgbGlnaHRsaW5rIGxpbmVJbnRlcnNlY3Rpb24gbGluZWFyUHJlY2lzaW9uIGxpbnN0ZXAgbGlzdEFuaW1hdGFibGUgbGlzdEF0dHIgbGlzdENhbWVyYXMgbGlzdENvbm5lY3Rpb25zIGxpc3REZXZpY2VBdHRhY2htZW50cyBsaXN0SGlzdG9yeSBsaXN0SW5wdXREZXZpY2VBeGVzIGxpc3RJbnB1dERldmljZUJ1dHRvbnMgbGlzdElucHV0RGV2aWNlcyBsaXN0TWVudUFubm90YXRpb24gbGlzdE5vZGVUeXBlcyBsaXN0UGFuZWxDYXRlZ29yaWVzIGxpc3RSZWxhdGl2ZXMgbGlzdFNldHMgbGlzdFRyYW5zZm9ybXMgbGlzdFVuc2VsZWN0ZWQgbGlzdGVyRWRpdG9yIGxvYWRGbHVpZCBsb2FkTmV3U2hlbGYgbG9hZFBsdWdpbiBsb2FkUGx1Z2luTGFuZ3VhZ2VSZXNvdXJjZXMgbG9hZFByZWZPYmplY3RzIGxvY2FsaXplZFBhbmVsTGFiZWwgbG9ja05vZGUgbG9mdCBsb2cgbG9uZ05hbWVPZiBsb29rVGhydSBscyBsc1Rocm91Z2hGaWx0ZXIgbHNUeXBlIGxzVUkgTWF5YXRvbXIgbWFnIG1ha2VJZGVudGl0eSBtYWtlTGl2ZSBtYWtlUGFpbnRhYmxlIG1ha2VSb2xsIG1ha2VTaW5nbGVTdXJmYWNlIG1ha2VUdWJlT24gbWFrZWJvdCBtYW5pcE1vdmVDb250ZXh0IG1hbmlwTW92ZUxpbWl0c0N0eCBtYW5pcE9wdGlvbnMgbWFuaXBSb3RhdGVDb250ZXh0IG1hbmlwUm90YXRlTGltaXRzQ3R4IG1hbmlwU2NhbGVDb250ZXh0IG1hbmlwU2NhbGVMaW1pdHNDdHggbWFya2VyIG1hdGNoIG1heCBtZW1vcnkgbWVudSBtZW51QmFyTGF5b3V0IG1lbnVFZGl0b3IgbWVudUl0ZW0gbWVudUl0ZW1Ub1NoZWxmIG1lbnVTZXQgbWVudVNldFByZWYgbWVzc2FnZUxpbmUgbWluIG1pbmltaXplQXBwIG1pcnJvckpvaW50IG1vZGVsQ3VycmVudFRpbWVDdHggbW9kZWxFZGl0b3IgbW9kZWxQYW5lbCBtb3VzZSBtb3ZJbiBtb3ZPdXQgbW92ZSBtb3ZlSUt0b0ZLIG1vdmVLZXlDdHggbW92ZVZlcnRleEFsb25nRGlyZWN0aW9uIG11bHRpUHJvZmlsZUJpcmFpbFN1cmZhY2UgbXV0ZSBuUGFydGljbGUgbmFtZUNvbW1hbmQgbmFtZUZpZWxkIG5hbWVzcGFjZSBuYW1lc3BhY2VJbmZvIG5ld1BhbmVsSXRlbXMgbmV3dG9uIG5vZGVDYXN0IG5vZGVJY29uQnV0dG9uIG5vZGVPdXRsaW5lciBub2RlUHJlc2V0IG5vZGVUeXBlIG5vaXNlIG5vbkxpbmVhciBub3JtYWxDb25zdHJhaW50IG5vcm1hbGl6ZSBudXJic0Jvb2xlYW4gbnVyYnNDb3B5VVZTZXQgbnVyYnNDdWJlIG51cmJzRWRpdFVWIG51cmJzUGxhbmUgbnVyYnNTZWxlY3QgbnVyYnNTcXVhcmUgbnVyYnNUb1BvbHkgbnVyYnNUb1BvbHlnb25zUHJlZiBudXJic1RvU3ViZGl2IG51cmJzVG9TdWJkaXZQcmVmIG51cmJzVVZTZXQgbnVyYnNWaWV3RGlyZWN0aW9uVmVjdG9yIG9iakV4aXN0cyBvYmplY3RDZW50ZXIgb2JqZWN0TGF5ZXIgb2JqZWN0VHlwZSBvYmplY3RUeXBlVUkgb2Jzb2xldGVQcm9jIG9jZWFuTnVyYnNQcmV2aWV3UGxhbmUgb2Zmc2V0Q3VydmUgb2Zmc2V0Q3VydmVPblN1cmZhY2Ugb2Zmc2V0U3VyZmFjZSBvcGVuR0xFeHRlbnNpb24gb3Blbk1heWFQcmVmIG9wdGlvbk1lbnUgb3B0aW9uTWVudUdycCBvcHRpb25WYXIgb3JiaXQgb3JiaXRDdHggb3JpZW50Q29uc3RyYWludCBvdXRsaW5lckVkaXRvciBvdXRsaW5lclBhbmVsIG92ZXJyaWRlTW9kaWZpZXIgcGFpbnRFZmZlY3RzRGlzcGxheSBwYWlyQmxlbmQgcGFsZXR0ZVBvcnQgcGFuZUxheW91dCBwYW5lbCBwYW5lbENvbmZpZ3VyYXRpb24gcGFuZWxIaXN0b3J5IHBhcmFtRGltQ29udGV4dCBwYXJhbURpbWVuc2lvbiBwYXJhbUxvY2F0b3IgcGFyZW50IHBhcmVudENvbnN0cmFpbnQgcGFydGljbGUgcGFydGljbGVFeGlzdHMgcGFydGljbGVJbnN0YW5jZXIgcGFydGljbGVSZW5kZXJJbmZvIHBhcnRpdGlvbiBwYXN0ZUtleSBwYXRoQW5pbWF0aW9uIHBhdXNlIHBjbG9zZSBwZXJjZW50IHBlcmZvcm1hbmNlT3B0aW9ucyBwZnhzdHJva2VzIHBpY2tXYWxrIHBpY3R1cmUgcGl4ZWxNb3ZlIHBsYW5hclNyZiBwbGFuZSBwbGF5IHBsYXliYWNrT3B0aW9ucyBwbGF5Ymxhc3QgcGx1Z0F0dHIgcGx1Z05vZGUgcGx1Z2luSW5mbyBwbHVnaW5SZXNvdXJjZVV0aWwgcG9pbnRDb25zdHJhaW50IHBvaW50Q3VydmVDb25zdHJhaW50IHBvaW50TGlnaHQgcG9pbnRNYXRyaXhNdWx0IHBvaW50T25DdXJ2ZSBwb2ludE9uU3VyZmFjZSBwb2ludFBvc2l0aW9uIHBvbGVWZWN0b3JDb25zdHJhaW50IHBvbHlBcHBlbmQgcG9seUFwcGVuZEZhY2V0Q3R4IHBvbHlBcHBlbmRWZXJ0ZXggcG9seUF1dG9Qcm9qZWN0aW9uIHBvbHlBdmVyYWdlTm9ybWFsIHBvbHlBdmVyYWdlVmVydGV4IHBvbHlCZXZlbCBwb2x5QmxlbmRDb2xvciBwb2x5QmxpbmREYXRhIHBvbHlCb29sT3AgcG9seUJyaWRnZUVkZ2UgcG9seUNhY2hlTW9uaXRvciBwb2x5Q2hlY2sgcG9seUNoaXBPZmYgcG9seUNsaXBib2FyZCBwb2x5Q2xvc2VCb3JkZXIgcG9seUNvbGxhcHNlRWRnZSBwb2x5Q29sbGFwc2VGYWNldCBwb2x5Q29sb3JCbGluZERhdGEgcG9seUNvbG9yRGVsIHBvbHlDb2xvclBlclZlcnRleCBwb2x5Q29sb3JTZXQgcG9seUNvbXBhcmUgcG9seUNvbmUgcG9seUNvcHlVViBwb2x5Q3JlYXNlIHBvbHlDcmVhc2VDdHggcG9seUNyZWF0ZUZhY2V0IHBvbHlDcmVhdGVGYWNldEN0eCBwb2x5Q3ViZSBwb2x5Q3V0IHBvbHlDdXRDdHggcG9seUN5bGluZGVyIHBvbHlDeWxpbmRyaWNhbFByb2plY3Rpb24gcG9seURlbEVkZ2UgcG9seURlbEZhY2V0IHBvbHlEZWxWZXJ0ZXggcG9seUR1cGxpY2F0ZUFuZENvbm5lY3QgcG9seUR1cGxpY2F0ZUVkZ2UgcG9seUVkaXRVViBwb2x5RWRpdFVWU2hlbGwgcG9seUV2YWx1YXRlIHBvbHlFeHRydWRlRWRnZSBwb2x5RXh0cnVkZUZhY2V0IHBvbHlFeHRydWRlVmVydGV4IHBvbHlGbGlwRWRnZSBwb2x5RmxpcFVWIHBvbHlGb3JjZVVWIHBvbHlHZW9TYW1wbGVyIHBvbHlIZWxpeCBwb2x5SW5mbyBwb2x5SW5zdGFsbEFjdGlvbiBwb2x5TGF5b3V0VVYgcG9seUxpc3RDb21wb25lbnRDb252ZXJzaW9uIHBvbHlNYXBDdXQgcG9seU1hcERlbCBwb2x5TWFwU2V3IHBvbHlNYXBTZXdNb3ZlIHBvbHlNZXJnZUVkZ2UgcG9seU1lcmdlRWRnZUN0eCBwb2x5TWVyZ2VGYWNldCBwb2x5TWVyZ2VGYWNldEN0eCBwb2x5TWVyZ2VVViBwb2x5TWVyZ2VWZXJ0ZXggcG9seU1pcnJvckZhY2UgcG9seU1vdmVFZGdlIHBvbHlNb3ZlRmFjZXQgcG9seU1vdmVGYWNldFVWIHBvbHlNb3ZlVVYgcG9seU1vdmVWZXJ0ZXggcG9seU5vcm1hbCBwb2x5Tm9ybWFsUGVyVmVydGV4IHBvbHlOb3JtYWxpemVVViBwb2x5T3B0VXZzIHBvbHlPcHRpb25zIHBvbHlPdXRwdXQgcG9seVBpcGUgcG9seVBsYW5hclByb2plY3Rpb24gcG9seVBsYW5lIHBvbHlQbGF0b25pY1NvbGlkIHBvbHlQb2tlIHBvbHlQcmltaXRpdmUgcG9seVByaXNtIHBvbHlQcm9qZWN0aW9uIHBvbHlQeXJhbWlkIHBvbHlRdWFkIHBvbHlRdWVyeUJsaW5kRGF0YSBwb2x5UmVkdWNlIHBvbHlTZWxlY3QgcG9seVNlbGVjdENvbnN0cmFpbnQgcG9seVNlbGVjdENvbnN0cmFpbnRNb25pdG9yIHBvbHlTZWxlY3RDdHggcG9seVNlbGVjdEVkaXRDdHggcG9seVNlcGFyYXRlIHBvbHlTZXRUb0ZhY2VOb3JtYWwgcG9seVNld0VkZ2UgcG9seVNob3J0ZXN0UGF0aEN0eCBwb2x5U21vb3RoIHBvbHlTb2Z0RWRnZSBwb2x5U3BoZXJlIHBvbHlTcGhlcmljYWxQcm9qZWN0aW9uIHBvbHlTcGxpdCBwb2x5U3BsaXRDdHggcG9seVNwbGl0RWRnZSBwb2x5U3BsaXRSaW5nIHBvbHlTcGxpdFZlcnRleCBwb2x5U3RyYWlnaHRlblVWQm9yZGVyIHBvbHlTdWJkaXZpZGVFZGdlIHBvbHlTdWJkaXZpZGVGYWNldCBwb2x5VG9TdWJkaXYgcG9seVRvcnVzIHBvbHlUcmFuc2ZlciBwb2x5VHJpYW5ndWxhdGUgcG9seVVWU2V0IHBvbHlVbml0ZSBwb2x5V2VkZ2VGYWNlIHBvcGVuIHBvcHVwTWVudSBwb3NlIHBvdyBwcmVsb2FkUmVmRWQgcHJpbnQgcHJvZ3Jlc3NCYXIgcHJvZ3Jlc3NXaW5kb3cgcHJvakZpbGVWaWV3ZXIgcHJvamVjdEN1cnZlIHByb2plY3RUYW5nZW50IHByb2plY3Rpb25Db250ZXh0IHByb2plY3Rpb25NYW5pcCBwcm9tcHREaWFsb2cgcHJvcE1vZEN0eCBwcm9wTW92ZSBwc2RDaGFubmVsT3V0bGluZXIgcHNkRWRpdFRleHR1cmVGaWxlIHBzZEV4cG9ydCBwc2RUZXh0dXJlRmlsZSBwdXRlbnYgcHdkIHB5dGhvbiBxdWVyeVN1YmRpdiBxdWl0IHJhZF90b19kZWcgcmFkaWFsIHJhZGlvQnV0dG9uIHJhZGlvQnV0dG9uR3JwIHJhZGlvQ29sbGVjdGlvbiByYWRpb01lbnVJdGVtQ29sbGVjdGlvbiByYW1wQ29sb3JQb3J0IHJhbmQgcmFuZG9taXplRm9sbGljbGVzIHJhbmRzdGF0ZSByYW5nZUNvbnRyb2wgcmVhZFRha2UgcmVidWlsZEN1cnZlIHJlYnVpbGRTdXJmYWNlIHJlY29yZEF0dHIgcmVjb3JkRGV2aWNlIHJlZG8gcmVmZXJlbmNlIHJlZmVyZW5jZUVkaXQgcmVmZXJlbmNlUXVlcnkgcmVmaW5lU3ViZGl2U2VsZWN0aW9uTGlzdCByZWZyZXNoIHJlZnJlc2hBRSByZWdpc3RlclBsdWdpblJlc291cmNlIHJlaGFzaCByZWxvYWRJbWFnZSByZW1vdmVKb2ludCByZW1vdmVNdWx0aUluc3RhbmNlIHJlbW92ZVBhbmVsQ2F0ZWdvcnkgcmVuYW1lIHJlbmFtZUF0dHIgcmVuYW1lU2VsZWN0aW9uTGlzdCByZW5hbWVVSSByZW5kZXIgcmVuZGVyR2xvYmFsc05vZGUgcmVuZGVySW5mbyByZW5kZXJMYXllckJ1dHRvbiByZW5kZXJMYXllclBhcmVudCByZW5kZXJMYXllclBvc3RQcm9jZXNzIHJlbmRlckxheWVyVW5wYXJlbnQgcmVuZGVyTWFuaXAgcmVuZGVyUGFydGl0aW9uIHJlbmRlclF1YWxpdHlOb2RlIHJlbmRlclNldHRpbmdzIHJlbmRlclRodW1ibmFpbFVwZGF0ZSByZW5kZXJXaW5kb3dFZGl0b3IgcmVuZGVyV2luZG93U2VsZWN0Q29udGV4dCByZW5kZXJlciByZW9yZGVyIHJlb3JkZXJEZWZvcm1lcnMgcmVxdWlyZXMgcmVyb290IHJlc2FtcGxlRmx1aWQgcmVzZXRBRSByZXNldFBmeFRvUG9seUNhbWVyYSByZXNldFRvb2wgcmVzb2x1dGlvbk5vZGUgcmV0YXJnZXQgcmV2ZXJzZUN1cnZlIHJldmVyc2VTdXJmYWNlIHJldm9sdmUgcmdiX3RvX2hzdiByaWdpZEJvZHkgcmlnaWRTb2x2ZXIgcm9sbCByb2xsQ3R4IHJvb3RPZiByb3Qgcm90YXRlIHJvdGF0aW9uSW50ZXJwb2xhdGlvbiByb3VuZENvbnN0YW50UmFkaXVzIHJvd0NvbHVtbkxheW91dCByb3dMYXlvdXQgcnVuVGltZUNvbW1hbmQgcnVudXAgc2FtcGxlSW1hZ2Ugc2F2ZUFsbFNoZWx2ZXMgc2F2ZUF0dHJQcmVzZXQgc2F2ZUZsdWlkIHNhdmVJbWFnZSBzYXZlSW5pdGlhbFN0YXRlIHNhdmVNZW51IHNhdmVQcmVmT2JqZWN0cyBzYXZlUHJlZnMgc2F2ZVNoZWxmIHNhdmVUb29sU2V0dGluZ3Mgc2NhbGUgc2NhbGVCcnVzaEJyaWdodG5lc3Mgc2NhbGVDb21wb25lbnRzIHNjYWxlQ29uc3RyYWludCBzY2FsZUtleSBzY2FsZUtleUN0eCBzY2VuZUVkaXRvciBzY2VuZVVJUmVwbGFjZW1lbnQgc2NtaCBzY3JpcHRDdHggc2NyaXB0RWRpdG9ySW5mbyBzY3JpcHRKb2Igc2NyaXB0Tm9kZSBzY3JpcHRUYWJsZSBzY3JpcHRUb1NoZWxmIHNjcmlwdGVkUGFuZWwgc2NyaXB0ZWRQYW5lbFR5cGUgc2Nyb2xsRmllbGQgc2Nyb2xsTGF5b3V0IHNjdWxwdCBzZWFyY2hQYXRoQXJyYXkgc2VlZCBzZWxMb2FkU2V0dGluZ3Mgc2VsZWN0IHNlbGVjdENvbnRleHQgc2VsZWN0Q3VydmVDViBzZWxlY3RLZXkgc2VsZWN0S2V5Q3R4IHNlbGVjdEtleWZyYW1lUmVnaW9uQ3R4IHNlbGVjdE1vZGUgc2VsZWN0UHJlZiBzZWxlY3RQcmlvcml0eSBzZWxlY3RUeXBlIHNlbGVjdGVkTm9kZXMgc2VsZWN0aW9uQ29ubmVjdGlvbiBzZXBhcmF0b3Igc2V0QXR0ciBzZXRBdHRyRW51bVJlc291cmNlIHNldEF0dHJNYXBwaW5nIHNldEF0dHJOaWNlTmFtZVJlc291cmNlIHNldENvbnN0cmFpbnRSZXN0UG9zaXRpb24gc2V0RGVmYXVsdFNoYWRpbmdHcm91cCBzZXREcml2ZW5LZXlmcmFtZSBzZXREeW5hbWljIHNldEVkaXRDdHggc2V0RWRpdG9yIHNldEZsdWlkQXR0ciBzZXRGb2N1cyBzZXRJbmZpbml0eSBzZXRJbnB1dERldmljZU1hcHBpbmcgc2V0S2V5Q3R4IHNldEtleVBhdGggc2V0S2V5ZnJhbWUgc2V0S2V5ZnJhbWVCbGVuZHNoYXBlVGFyZ2V0V3RzIHNldE1lbnVNb2RlIHNldE5vZGVOaWNlTmFtZVJlc291cmNlIHNldE5vZGVUeXBlRmxhZyBzZXRQYXJlbnQgc2V0UGFydGljbGVBdHRyIHNldFBmeFRvUG9seUNhbWVyYSBzZXRQbHVnaW5SZXNvdXJjZSBzZXRQcm9qZWN0IHNldFN0YW1wRGVuc2l0eSBzZXRTdGFydHVwTWVzc2FnZSBzZXRTdGF0ZSBzZXRUb29sVG8gc2V0VUlUZW1wbGF0ZSBzZXRYZm9ybU1hbmlwIHNldHMgc2hhZGluZ0Nvbm5lY3Rpb24gc2hhZGluZ0dlb21ldHJ5UmVsQ3R4IHNoYWRpbmdMaWdodFJlbEN0eCBzaGFkaW5nTmV0d29ya0NvbXBhcmUgc2hhZGluZ05vZGUgc2hhcGVDb21wYXJlIHNoZWxmQnV0dG9uIHNoZWxmTGF5b3V0IHNoZWxmVGFiTGF5b3V0IHNoZWxsRmllbGQgc2hvcnROYW1lT2Ygc2hvd0hlbHAgc2hvd0hpZGRlbiBzaG93TWFuaXBDdHggc2hvd1NlbGVjdGlvbkluVGl0bGUgc2hvd1NoYWRpbmdHcm91cEF0dHJFZGl0b3Igc2hvd1dpbmRvdyBzaWduIHNpbXBsaWZ5IHNpbiBzaW5nbGVQcm9maWxlQmlyYWlsU3VyZmFjZSBzaXplIHNpemVCeXRlcyBza2luQ2x1c3RlciBza2luUGVyY2VudCBzbW9vdGhDdXJ2ZSBzbW9vdGhUYW5nZW50U3VyZmFjZSBzbW9vdGhzdGVwIHNuYXAydG8yIHNuYXBLZXkgc25hcE1vZGUgc25hcFRvZ2V0aGVyQ3R4IHNuYXBzaG90IHNvZnQgc29mdE1vZCBzb2Z0TW9kQ3R4IHNvcnQgc291bmQgc291bmRDb250cm9sIHNvdXJjZSBzcGFjZUxvY2F0b3Igc3BoZXJlIHNwaHJhbmQgc3BvdExpZ2h0IHNwb3RMaWdodFByZXZpZXdQb3J0IHNwcmVhZFNoZWV0RWRpdG9yIHNwcmluZyBzcXJ0IHNxdWFyZVN1cmZhY2Ugc3J0Q29udGV4dCBzdGFja1RyYWNlIHN0YXJ0U3RyaW5nIHN0YXJ0c1dpdGggc3RpdGNoQW5kRXhwbG9kZVNoZWxsIHN0aXRjaFN1cmZhY2Ugc3RpdGNoU3VyZmFjZVBvaW50cyBzdHJjbXAgc3RyaW5nQXJyYXlDYXRlbmF0ZSBzdHJpbmdBcnJheUNvbnRhaW5zIHN0cmluZ0FycmF5Q291bnQgc3RyaW5nQXJyYXlJbnNlcnRBdEluZGV4IHN0cmluZ0FycmF5SW50ZXJzZWN0b3Igc3RyaW5nQXJyYXlSZW1vdmUgc3RyaW5nQXJyYXlSZW1vdmVBdEluZGV4IHN0cmluZ0FycmF5UmVtb3ZlRHVwbGljYXRlcyBzdHJpbmdBcnJheVJlbW92ZUV4YWN0IHN0cmluZ0FycmF5VG9TdHJpbmcgc3RyaW5nVG9TdHJpbmdBcnJheSBzdHJpcCBzdHJpcFByZWZpeEZyb21OYW1lIHN0cm9rZSBzdWJkQXV0b1Byb2plY3Rpb24gc3ViZENsZWFuVG9wb2xvZ3kgc3ViZENvbGxhcHNlIHN1YmREdXBsaWNhdGVBbmRDb25uZWN0IHN1YmRFZGl0VVYgc3ViZExpc3RDb21wb25lbnRDb252ZXJzaW9uIHN1YmRNYXBDdXQgc3ViZE1hcFNld01vdmUgc3ViZE1hdGNoVG9wb2xvZ3kgc3ViZE1pcnJvciBzdWJkVG9CbGluZCBzdWJkVG9Qb2x5IHN1YmRUcmFuc2ZlclVWc1RvQ2FjaGUgc3ViZGl2IHN1YmRpdkNyZWFzZSBzdWJkaXZEaXNwbGF5U21vb3RobmVzcyBzdWJzdGl0dXRlIHN1YnN0aXR1dGVBbGxTdHJpbmcgc3Vic3RpdHV0ZUdlb21ldHJ5IHN1YnN0cmluZyBzdXJmYWNlIHN1cmZhY2VTYW1wbGVyIHN1cmZhY2VTaGFkZXJMaXN0IHN3YXRjaERpc3BsYXlQb3J0IHN3aXRjaFRhYmxlIHN5bWJvbEJ1dHRvbiBzeW1ib2xDaGVja0JveCBzeXNGaWxlIHN5c3RlbSB0YWJMYXlvdXQgdGFuIHRhbmdlbnRDb25zdHJhaW50IHRleExhdHRpY2VEZWZvcm1Db250ZXh0IHRleE1hbmlwQ29udGV4dCB0ZXhNb3ZlQ29udGV4dCB0ZXhNb3ZlVVZTaGVsbENvbnRleHQgdGV4Um90YXRlQ29udGV4dCB0ZXhTY2FsZUNvbnRleHQgdGV4U2VsZWN0Q29udGV4dCB0ZXhTZWxlY3RTaG9ydGVzdFBhdGhDdHggdGV4U211ZGdlVVZDb250ZXh0IHRleFdpblRvb2xDdHggdGV4dCB0ZXh0Q3VydmVzIHRleHRGaWVsZCB0ZXh0RmllbGRCdXR0b25HcnAgdGV4dEZpZWxkR3JwIHRleHRNYW5pcCB0ZXh0U2Nyb2xsTGlzdCB0ZXh0VG9TaGVsZiB0ZXh0dXJlRGlzcGxhY2VQbGFuZSB0ZXh0dXJlSGFpckNvbG9yIHRleHR1cmVQbGFjZW1lbnRDb250ZXh0IHRleHR1cmVXaW5kb3cgdGhyZWFkQ291bnQgdGhyZWVQb2ludEFyY0N0eCB0aW1lQ29udHJvbCB0aW1lUG9ydCB0aW1lclggdG9OYXRpdmVQYXRoIHRvZ2dsZSB0b2dnbGVBeGlzIHRvZ2dsZVdpbmRvd1Zpc2liaWxpdHkgdG9rZW5pemUgdG9rZW5pemVMaXN0IHRvbGVyYW5jZSB0b2xvd2VyIHRvb2xCdXR0b24gdG9vbENvbGxlY3Rpb24gdG9vbERyb3BwZWQgdG9vbEhhc09wdGlvbnMgdG9vbFByb3BlcnR5V2luZG93IHRvcnVzIHRvdXBwZXIgdHJhY2UgdHJhY2sgdHJhY2tDdHggdHJhbnNmZXJBdHRyaWJ1dGVzIHRyYW5zZm9ybUNvbXBhcmUgdHJhbnNmb3JtTGltaXRzIHRyYW5zbGF0b3IgdHJpbSB0cnVuYyB0cnVuY2F0ZUZsdWlkQ2FjaGUgdHJ1bmNhdGVIYWlyQ2FjaGUgdHVtYmxlIHR1bWJsZUN0eCB0dXJidWxlbmNlIHR3b1BvaW50QXJjQ3R4IHVpUmVzIHVpVGVtcGxhdGUgdW5hc3NpZ25JbnB1dERldmljZSB1bmRvIHVuZG9JbmZvIHVuZ3JvdXAgdW5pZm9ybSB1bml0IHVubG9hZFBsdWdpbiB1bnRhbmdsZVVWIHVudGl0bGVkRmlsZU5hbWUgdW50cmltIHVwQXhpcyB1cGRhdGVBRSB1c2VyQ3R4IHV2TGluayB1dlNuYXBzaG90IHZhbGlkYXRlU2hlbGZOYW1lIHZlY3Rvcml6ZSB2aWV3MmRUb29sQ3R4IHZpZXdDYW1lcmEgdmlld0NsaXBQbGFuZSB2aWV3Rml0IHZpZXdIZWFkT24gdmlld0xvb2tBdCB2aWV3TWFuaXAgdmlld1BsYWNlIHZpZXdTZXQgdmlzb3Igdm9sdW1lQXhpcyB2b3J0ZXggd2FpdEN1cnNvciB3YXJuaW5nIHdlYkJyb3dzZXIgd2ViQnJvd3NlclByZWZzIHdoYXRJcyB3aW5kb3cgd2luZG93UHJlZiB3aXJlIHdpcmVDb250ZXh0IHdvcmtzcGFjZSB3cmlua2xlIHdyaW5rbGVDb250ZXh0IHdyaXRlVGFrZSB4Ym1MYW5nUGF0aExpc3QgeGZvcm0iLGlsbGVnYWw6IjwvIixjb250YWluczpbZS5DX05VTUJFUl9NT0RFLGUuQVBPU19TVFJJTkdfTU9ERSxlLlFVT1RFX1NUUklOR19NT0RFLHtjbGFzc05hbWU6InN0cmluZyIsYmVnaW46ImAiLGVuZDoiYCIsY29udGFpbnM6W2UuQkFDS1NMQVNIX0VTQ0FQRV19LHtiZWdpbjovWyQlQF0oXF5cd1xifCNcdyt8W15cc1x3e118XHtcdytcfXxcdyspL30sZS5DX0xJTkVfQ09NTUVOVF9NT0RFLGUuQ19CTE9DS19DT01NRU5UX01PREVdfX1zLmV4cG9ydHM9cn0sMzE0OTM6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihlKXtjb25zdCB0PXtrZXl3b3JkOiJtb2R1bGUgdXNlX21vZHVsZSBpbXBvcnRfbW9kdWxlIGluY2x1ZGVfbW9kdWxlIGVuZF9tb2R1bGUgaW5pdGlhbGlzZSBtdXRhYmxlIGluaXRpYWxpemUgZmluYWxpemUgZmluYWxpc2UgaW50ZXJmYWNlIGltcGxlbWVudGF0aW9uIHByZWQgbW9kZSBmdW5jIHR5cGUgaW5zdCBzb2x2ZXIgYW55X3ByZWQgYW55X2Z1bmMgaXMgc2VtaWRldCBkZXQgbm9uZGV0IG11bHRpIGVycm9uZW91cyBmYWlsdXJlIGNjX25vbmRldCBjY19tdWx0aSB0eXBlY2xhc3MgaW5zdGFuY2Ugd2hlcmUgcHJhZ21hIHByb21pc2UgZXh0ZXJuYWwgdHJhY2UgYXRvbWljIG9yX2Vsc2UgcmVxdWlyZV9jb21wbGV0ZV9zd2l0Y2ggcmVxdWlyZV9kZXQgcmVxdWlyZV9zZW1pZGV0IHJlcXVpcmVfbXVsdGkgcmVxdWlyZV9ub25kZXQgcmVxdWlyZV9jY19tdWx0aSByZXF1aXJlX2NjX25vbmRldCByZXF1aXJlX2Vycm9uZW91cyByZXF1aXJlX2ZhaWx1cmUiLG1ldGE6ImlubGluZSBub19pbmxpbmUgdHlwZV9zcGVjIHNvdXJjZV9maWxlIGZhY3RfdGFibGUgb2Jzb2xldGUgbWVtbyBsb29wX2NoZWNrIG1pbmltYWxfbW9kZWwgdGVybWluYXRlcyBkb2VzX25vdF90ZXJtaW5hdGUgY2hlY2tfdGVybWluYXRpb24gcHJvbWlzZV9lcXVpdmFsZW50X2NsYXVzZXMgZm9yZWlnbl9wcm9jIGZvcmVpZ25fZGVjbCBmb3JlaWduX2NvZGUgZm9yZWlnbl90eXBlIGZvcmVpZ25faW1wb3J0X21vZHVsZSBmb3JlaWduX2V4cG9ydF9lbnVtIGZvcmVpZ25fZXhwb3J0IGZvcmVpZ25fZW51bSBtYXlfY2FsbF9tZXJjdXJ5IHdpbGxfbm90X2NhbGxfbWVyY3VyeSB0aHJlYWRfc2FmZSBub3RfdGhyZWFkX3NhZmUgbWF5YmVfdGhyZWFkX3NhZmUgcHJvbWlzZV9wdXJlIHByb21pc2Vfc2VtaXB1cmUgdGFibGVkX2Zvcl9pbyBsb2NhbCB1bnRyYWlsZWQgdHJhaWxlZCBhdHRhY2hfdG9faW9fc3RhdGUgY2FuX3Bhc3NfYXNfbWVyY3VyeV90eXBlIHN0YWJsZSB3aWxsX25vdF90aHJvd19leGNlcHRpb24gbWF5X21vZGlmeV90cmFpbCB3aWxsX25vdF9tb2RpZnlfdHJhaWwgbWF5X2R1cGxpY2F0ZSBtYXlfbm90X2R1cGxpY2F0ZSBhZmZlY3RzX2xpdmVuZXNzIGRvZXNfbm90X2FmZmVjdF9saXZlbmVzcyBkb2VzbnRfYWZmZWN0X2xpdmVuZXNzIG5vX3NoYXJpbmcgdW5rbm93bl9zaGFyaW5nIHNoYXJpbmciLGJ1aWx0X2luOiJzb21lIGFsbCBub3QgaWYgdGhlbiBlbHNlIHRydWUgZmFpbCBmYWxzZSB0cnkgY2F0Y2ggY2F0Y2hfYW55IHNlbWlkZXRfdHJ1ZSBzZW1pZGV0X2ZhbHNlIHNlbWlkZXRfZmFpbCBpbXB1cmVfdHJ1ZSBpbXB1cmUgc2VtaXB1cmUifSxuPWUuQ09NTUVOVCgiJSIsIiQiKSxhPXtjbGFzc05hbWU6Im51bWJlciIsYmVnaW46IjAnLlxcfDBbYm94XVswLTlhLWZBLUZdKiJ9LGk9ZS5pbmhlcml0KGUuQVBPU19TVFJJTkdfTU9ERSx7cmVsZXZhbmNlOjB9KSxvPWUuaW5oZXJpdChlLlFVT1RFX1NUUklOR19NT0RFLHtyZWxldmFuY2U6MH0pLGw9e2NsYXNzTmFtZToic3Vic3QiLGJlZ2luOiJcXFxcW2FiZm5ydHZdXFx8XFxcXHhbMC05YS1mQS1GXSpcXFxcXFx8JVstKyMgKi4wLTldKltkaW94WHVjc2ZlRWdHcF0iLHJlbGV2YW5jZTowfTtyZXR1cm4gby5jb250YWlucz1vLmNvbnRhaW5zLnNsaWNlKCksby5jb250YWlucy5wdXNoKGwpLHtuYW1lOiJNZXJjdXJ5IixhbGlhc2VzOlsibSIsIm1vbyJdLGtleXdvcmRzOnQsY29udGFpbnM6W3tjbGFzc05hbWU6ImJ1aWx0X2luIix2YXJpYW50czpbe2JlZ2luOiI8PT4ifSx7YmVnaW46Ijw9IixyZWxldmFuY2U6MH0se2JlZ2luOiI9PiIscmVsZXZhbmNlOjB9LHtiZWdpbjoiL1xcXFwifSx7YmVnaW46IlxcXFwvIn1dfSx7Y2xhc3NOYW1lOiJidWlsdF9pbiIsdmFyaWFudHM6W3tiZWdpbjoiOi1cXHwtLT4ifSx7YmVnaW46Ij0iLHJlbGV2YW5jZTowfV19LG4sZS5DX0JMT0NLX0NPTU1FTlRfTU9ERSxhLGUuTlVNQkVSX01PREUsaSxvLHtiZWdpbjovOi0vfSx7YmVnaW46L1wuJC99XX19cy5leHBvcnRzPXJ9LDk3NzYyOmZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHIoZSl7cmV0dXJue25hbWU6Ik1JUFMgQXNzZW1ibHkiLGNhc2VfaW5zZW5zaXRpdmU6ITAsYWxpYXNlczpbIm1pcHMiXSxrZXl3b3Jkczp7JHBhdHRlcm46IlxcLj8iK2UuSURFTlRfUkUsbWV0YToiLjJieXRlIC40Ynl0ZSAuYWxpZ24gLmFzY2lpIC5hc2NpeiAuYmFsaWduIC5ieXRlIC5jb2RlIC5kYXRhIC5lbHNlIC5lbmQgLmVuZGlmIC5lbmRtIC5lbmRyIC5lcXUgLmVyciAuZXhpdG0gLmV4dGVybiAuZ2xvYmFsIC5od29yZCAuaWYgLmlmZGVmIC5pZm5kZWYgLmluY2x1ZGUgLmlycCAubG9uZyAubWFjcm8gLnJlcHQgLnJlcSAuc2VjdGlvbiAuc2V0IC5za2lwIC5zcGFjZSAudGV4dCAud29yZCAubHRvcmcgIixidWlsdF9pbjoiJDAgJDEgJDIgJDMgJDQgJDUgJDYgJDcgJDggJDkgJDEwICQxMSAkMTIgJDEzICQxNCAkMTUgJDE2ICQxNyAkMTggJDE5ICQyMCAkMjEgJDIyICQyMyAkMjQgJDI1ICQyNiAkMjcgJDI4ICQyOSAkMzAgJDMxIHplcm8gYXQgdjAgdjEgYTAgYTEgYTIgYTMgYTQgYTUgYTYgYTcgdDAgdDEgdDIgdDMgdDQgdDUgdDYgdDcgdDggdDkgczAgczEgczIgczMgczQgczUgczYgczcgczggazAgazEgZ3Agc3AgZnAgcmEgJGYwICRmMSAkZjIgJGYyICRmNCAkZjUgJGY2ICRmNyAkZjggJGY5ICRmMTAgJGYxMSAkZjEyICRmMTMgJGYxNCAkZjE1ICRmMTYgJGYxNyAkZjE4ICRmMTkgJGYyMCAkZjIxICRmMjIgJGYyMyAkZjI0ICRmMjUgJGYyNiAkZjI3ICRmMjggJGYyOSAkZjMwICRmMzEgQ29udGV4dCBSYW5kb20gRW50cnlMbzAgRW50cnlMbzEgQ29udGV4dCBQYWdlTWFzayBXaXJlZCBFbnRyeUhpIEhXUkVuYSBCYWRWQWRkciBDb3VudCBDb21wYXJlIFNSIEludEN0bCBTUlNDdGwgU1JTTWFwIENhdXNlIEVQQyBQUklkIEVCYXNlIENvbmZpZyBDb25maWcxIENvbmZpZzIgQ29uZmlnMyBMTEFkZHIgRGVidWcgREVQQyBERVNBVkUgQ2FjaGVFcnIgRUNDIEVycm9yRVBDIFRhZ0xvIERhdGFMbyBUYWdIaSBEYXRhSGkgV2F0Y2hMbyBXYXRjaEhpIFBlcmZDdGwgUGVyZkNudCAifSxjb250YWluczpbe2NsYXNzTmFtZToia2V5d29yZCIsYmVnaW46IlxcYihhZGRpP3U/fGFuZGk/fGIoYWwpP3xiZXFsP3xiZ2V6KGFsKT9sP3xiZ3R6bD98Ymxlemw/fGJsdHooYWwpP2w/fGJuZWw/fGNsW296XXxkaXZ1P3xleHR8aW5zfGooYWwpP3xqYWxyKFxcLmhiKT98anIoXFwuaGIpP3xsYnU/fGxodT98bGx8bHVpfGx3W2xyXT98bWFkZHU/fG1maGl8bWZsb3xtb3ZufG1vdnp8bW92ZXxtc3VidT98bXRoaXxtdGxvfG11bHxtdWx0dT98bm9wfG5vcnxvcmk/fHJvdHJ2P3xzYnxzY3xzZVtiaF18c2h8c2xsdj98c2x0aT91P3xzcmF2P3xzcmx2P3xzdWJ1P3xzd1tscl0/fHhvcmk/fHdzYmh8YWJzXFwuW3NkXXxhZGRcXC5bc2RdfGFsbnYucHN8YmMxW2Z0XWw/fGNcXC4ocz9mfHVufHU/ZXF8W291XWx0fFtvdV1sZXxuZ2xlP3xzZXF8bFtldF18bmdbZXRdKVxcLltzZF18KGNlaWx8Zmxvb3J8cm91bmR8dHJ1bmMpXFwuW2x3XVxcLltzZF18Y2ZjMXxjdnRcXC5kXFwuW2xzd118Y3Z0XFwubFxcLltkc3ddfGN2dFxcLnBzXFwuc3xjdnRcXC5zXFwuW2Rsd118Y3Z0XFwuc1xcLnBbbHVdfGN2dFxcLndcXC5bZGxzXXxkaXZcXC5bZHNdfGxkeD9jMXxsdXhjMXxsd3g/YzF8bWFkZFxcLltzZF18bWZjMXxtb3ZbZm50el0/XFwuW2RzXXxtc3ViXFwuW3NkXXxtdGg/YzF8bXVsXFwuW2RzXXxuZWdcXC5bZHNdfG5tYWRkXFwuW2RzXXxubXN1YlxcLltkc118cFtsdV1bbHVdXFwucHN8cmVjaXBcXC5mbXR8cj9zcXJ0XFwuW2RzXXxzZHg/YzF8c3ViXFwuW2RzXXxzdXhjMXxzd3g/YzF8YnJlYWt8Y2FjaGV8ZD9lcmV0fFtkZV1pfGVoYnxtZmMwfG10YzB8cGF1c2V8cHJlZng/fHJkaHdyfHJkcGdwcnxzZGJicHxzc25vcHxzeW5jaT98c3lzY2FsbHx0ZXFpP3x0Z2VpP3U/fHRsYihwfHJ8d1tpcl0pfHRsdGk/dT98dG5laT98d2FpdHx3cnBncHIpIixlbmQ6IlxccyJ9LGUuQ09NTUVOVCgiWzsjXSg/IVxccyokKSIsIiQiKSxlLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLGUuUVVPVEVfU1RSSU5HX01PREUse2NsYXNzTmFtZToic3RyaW5nIixiZWdpbjoiJyIsZW5kOiJbXlxcXFxdJyIscmVsZXZhbmNlOjB9LHtjbGFzc05hbWU6InRpdGxlIixiZWdpbjoiXFx8IixlbmQ6IlxcfCIsaWxsZWdhbDoiXFxuIixyZWxldmFuY2U6MH0se2NsYXNzTmFtZToibnVtYmVyIix2YXJpYW50czpbe2JlZ2luOiIweFswLTlhLWZdKyJ9LHtiZWdpbjoiXFxiLT9cXGQrIn1dLHJlbGV2YW5jZTowfSx7Y2xhc3NOYW1lOiJzeW1ib2wiLHZhcmlhbnRzOlt7YmVnaW46Il5cXHMqW2Etel9cXC5cXCRdW2EtejAtOV9cXC5cXCRdKzoifSx7YmVnaW46Il5cXHMqWzAtOV0rOiJ9LHtiZWdpbjoiWzAtOV0rW2JmXSJ9XSxyZWxldmFuY2U6MH1dLGlsbGVnYWw6L1wvL319cy5leHBvcnRzPXJ9LDI3NDM3OmZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHIoZSl7cmV0dXJue25hbWU6Ik1pemFyIixrZXl3b3JkczoiZW52aXJvbiB2b2NhYnVsYXJpZXMgbm90YXRpb25zIGNvbnN0cnVjdG9ycyBkZWZpbml0aW9ucyByZWdpc3RyYXRpb25zIHRoZW9yZW1zIHNjaGVtZXMgcmVxdWlyZW1lbnRzIGJlZ2luIGVuZCBkZWZpbml0aW9uIHJlZ2lzdHJhdGlvbiBjbHVzdGVyIGV4aXN0ZW5jZSBwcmVkIGZ1bmMgZGVmcHJlZCBkZWZmdW5jIHRoZW9yZW0gcHJvb2YgbGV0IHRha2UgYXNzdW1lIHRoZW4gdGh1cyBoZW5jZSBleCBmb3Igc3QgaG9sZHMgY29uc2lkZXIgcmVjb25zaWRlciBzdWNoIHRoYXQgYW5kIGluIHByb3ZpZGVkIG9mIGFzIGZyb20gYmUgYmVpbmcgYnkgbWVhbnMgZXF1YWxzIGltcGxpZXMgaWZmIHJlZGVmaW5lIGRlZmluZSBub3cgbm90IG9yIGF0dHIgaXMgbW9kZSBzdXBwb3NlIHBlciBjYXNlcyBzZXQgdGhlc2lzIGNvbnRyYWRpY3Rpb24gc2NoZW1lIHJlc2VydmUgc3RydWN0IGNvcnJlY3RuZXNzIGNvbXBhdGliaWxpdHkgY29oZXJlbmNlIHN5bW1ldHJ5IGFzc3ltZXRyeSByZWZsZXhpdml0eSBpcnJlZmxleGl2aXR5IGNvbm5lY3RlZG5lc3MgdW5pcXVlbmVzcyBjb21tdXRhdGl2aXR5IGlkZW1wb3RlbmNlIGludm9sdXRpdmVuZXNzIHByb2plY3Rpdml0eSIsY29udGFpbnM6W2UuQ09NTUVOVCgiOjoiLCIkIildfX1zLmV4cG9ydHM9cn0sNjQyNDk6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihlKXtyZXR1cm57bmFtZToiTW9qb2xpY2lvdXMiLHN1Ykxhbmd1YWdlOiJ4bWwiLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJtZXRhIixiZWdpbjoiXl9fKEVORHxEQVRBKV9fJCJ9LHtiZWdpbjoiXlxccyolezEsMn09ezAsMn0iLGVuZDoiJCIsc3ViTGFuZ3VhZ2U6InBlcmwifSx7YmVnaW46IjwlezEsMn09ezAsMn0iLGVuZDoiPXswLDF9JT4iLHN1Ykxhbmd1YWdlOiJwZXJsIixleGNsdWRlQmVnaW46ITAsZXhjbHVkZUVuZDohMH1dfX1zLmV4cG9ydHM9cn0sMjY4NTU6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihlKXtjb25zdCB0PXtjbGFzc05hbWU6Im51bWJlciIscmVsZXZhbmNlOjAsdmFyaWFudHM6W3tiZWdpbjoiWyRdW2EtZkEtRjAtOV0rIn0sZS5OVU1CRVJfTU9ERV19O3JldHVybntuYW1lOiJNb25rZXkiLGNhc2VfaW5zZW5zaXRpdmU6ITAsa2V5d29yZHM6e2tleXdvcmQ6InB1YmxpYyBwcml2YXRlIHByb3BlcnR5IGNvbnRpbnVlIGV4aXQgZXh0ZXJuIG5ldyB0cnkgY2F0Y2ggZWFjaGluIG5vdCBhYnN0cmFjdCBmaW5hbCBzZWxlY3QgY2FzZSBkZWZhdWx0IGNvbnN0IGxvY2FsIGdsb2JhbCBmaWVsZCBlbmQgaWYgdGhlbiBlbHNlIGVsc2VpZiBlbmRpZiB3aGlsZSB3ZW5kIHJlcGVhdCB1bnRpbCBmb3JldmVyIGZvciB0byBzdGVwIG5leHQgcmV0dXJuIG1vZHVsZSBpbmxpbmUgdGhyb3cgaW1wb3J0IixidWlsdF9pbjoiRGVidWdMb2cgRGVidWdTdG9wIEVycm9yIFByaW50IEFDb3MgQUNvc3IgQVNpbiBBU2luciBBVGFuIEFUYW4yIEFUYW4yciBBVGFuciBBYnMgQWJzIENlaWwgQ2xhbXAgQ2xhbXAgQ29zIENvc3IgRXhwIEZsb29yIExvZyBNYXggTWF4IE1pbiBNaW4gUG93IFNnbiBTZ24gU2luIFNpbnIgU3FydCBUYW4gVGFuciBTZWVkIFBJIEhBTEZQSSBUV09QSSIsbGl0ZXJhbDoidHJ1ZSBmYWxzZSBudWxsIGFuZCBvciBzaGwgc2hyIG1vZCJ9LGlsbGVnYWw6L1wvXCovLGNvbnRhaW5zOltlLkNPTU1FTlQoIiNyZW0iLCIjZW5kIiksZS5DT01NRU5UKCInIiwiJCIse3JlbGV2YW5jZTowfSkse2NsYXNzTmFtZToiZnVuY3Rpb24iLGJlZ2luS2V5d29yZHM6ImZ1bmN0aW9uIG1ldGhvZCIsZW5kOiJbKD06XXwkIixpbGxlZ2FsOi9cbi8sY29udGFpbnM6W2UuVU5ERVJTQ09SRV9USVRMRV9NT0RFXX0se2NsYXNzTmFtZToiY2xhc3MiLGJlZ2luS2V5d29yZHM6ImNsYXNzIGludGVyZmFjZSIsZW5kOiIkIixjb250YWluczpbe2JlZ2luS2V5d29yZHM6ImV4dGVuZHMgaW1wbGVtZW50cyJ9LGUuVU5ERVJTQ09SRV9USVRMRV9NT0RFXX0se2NsYXNzTmFtZToiYnVpbHRfaW4iLGJlZ2luOiJcXGIoc2VsZnxzdXBlcilcXGIifSx7Y2xhc3NOYW1lOiJtZXRhIixiZWdpbjoiXFxzKiMiLGVuZDoiJCIsa2V5d29yZHM6eyJtZXRhLWtleXdvcmQiOiJpZiBlbHNlIGVsc2VpZiBlbmRpZiBlbmQgdGhlbiJ9fSx7Y2xhc3NOYW1lOiJtZXRhIixiZWdpbjoiXlxccypzdHJpY3RcXGIifSx7YmVnaW5LZXl3b3JkczoiYWxpYXMiLGVuZDoiPSIsY29udGFpbnM6W2UuVU5ERVJTQ09SRV9USVRMRV9NT0RFXX0sZS5RVU9URV9TVFJJTkdfTU9ERSx0XX19cy5leHBvcnRzPXJ9LDYyOTU4OmZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHIoZSl7Y29uc3QgdD17a2V5d29yZDoiaWYgdGhlbiBub3QgZm9yIGluIHdoaWxlIGRvIHJldHVybiBlbHNlIGVsc2VpZiBicmVhayBjb250aW51ZSBzd2l0Y2ggYW5kIG9yIHVubGVzcyB3aGVuIGNsYXNzIGV4dGVuZHMgc3VwZXIgbG9jYWwgaW1wb3J0IGV4cG9ydCBmcm9tIHVzaW5nIixsaXRlcmFsOiJ0cnVlIGZhbHNlIG5pbCIsYnVpbHRfaW46Il9HIF9WRVJTSU9OIGFzc2VydCBjb2xsZWN0Z2FyYmFnZSBkb2ZpbGUgZXJyb3IgZ2V0ZmVudiBnZXRtZXRhdGFibGUgaXBhaXJzIGxvYWQgbG9hZGZpbGUgbG9hZHN0cmluZyBtb2R1bGUgbmV4dCBwYWlycyBwY2FsbCBwcmludCByYXdlcXVhbCByYXdnZXQgcmF3c2V0IHJlcXVpcmUgc2VsZWN0IHNldGZlbnYgc2V0bWV0YXRhYmxlIHRvbnVtYmVyIHRvc3RyaW5nIHR5cGUgdW5wYWNrIHhwY2FsbCBjb3JvdXRpbmUgZGVidWcgaW8gbWF0aCBvcyBwYWNrYWdlIHN0cmluZyB0YWJsZSJ9LG49IltBLVphLXokX11bMC05QS1aYS16JF9dKiIsYT17Y2xhc3NOYW1lOiJzdWJzdCIsYmVnaW46LyNcey8sZW5kOi9cfS8sa2V5d29yZHM6dH0saT1bZS5pbmhlcml0KGUuQ19OVU1CRVJfTU9ERSx7c3RhcnRzOntlbmQ6IihcXHMqLyk/IixyZWxldmFuY2U6MH19KSx7Y2xhc3NOYW1lOiJzdHJpbmciLHZhcmlhbnRzOlt7YmVnaW46LycvLGVuZDovJy8sY29udGFpbnM6W2UuQkFDS1NMQVNIX0VTQ0FQRV19LHtiZWdpbjovIi8sZW5kOi8iLyxjb250YWluczpbZS5CQUNLU0xBU0hfRVNDQVBFLGFdfV19LHtjbGFzc05hbWU6ImJ1aWx0X2luIixiZWdpbjoiQF9fIitlLklERU5UX1JFfSx7YmVnaW46IkAiK2UuSURFTlRfUkV9LHtiZWdpbjplLklERU5UX1JFKyJcXFxcIitlLklERU5UX1JFfV07YS5jb250YWlucz1pO2NvbnN0IG89ZS5pbmhlcml0KGUuVElUTEVfTU9ERSx7YmVnaW46bn0pLGw9IihcXCguKlxcKVxccyopP1xcQlstPV0+IixjPXtjbGFzc05hbWU6InBhcmFtcyIsYmVnaW46IlxcKFteXFwoXSIscmV0dXJuQmVnaW46ITAsY29udGFpbnM6W3tiZWdpbjovXCgvLGVuZDovXCkvLGtleXdvcmRzOnQsY29udGFpbnM6WyJzZWxmIl0uY29uY2F0KGkpfV19O3JldHVybntuYW1lOiJNb29uU2NyaXB0IixhbGlhc2VzOlsibW9vbiJdLGtleXdvcmRzOnQsaWxsZWdhbDovXC9cKi8sY29udGFpbnM6aS5jb25jYXQoW2UuQ09NTUVOVCgiLS0iLCIkIikse2NsYXNzTmFtZToiZnVuY3Rpb24iLGJlZ2luOiJeXFxzKiIrbisiXFxzKj1cXHMqIitsLGVuZDoiWy09XT4iLHJldHVybkJlZ2luOiEwLGNvbnRhaW5zOltvLGNdfSx7YmVnaW46L1tcKCw6PV1ccyovLHJlbGV2YW5jZTowLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJmdW5jdGlvbiIsYmVnaW46bCxlbmQ6IlstPV0+IixyZXR1cm5CZWdpbjohMCxjb250YWluczpbY119XX0se2NsYXNzTmFtZToiY2xhc3MiLGJlZ2luS2V5d29yZHM6ImNsYXNzIixlbmQ6IiQiLGlsbGVnYWw6L1s6PSJcW1xdXS8sY29udGFpbnM6W3tiZWdpbktleXdvcmRzOiJleHRlbmRzIixlbmRzV2l0aFBhcmVudDohMCxpbGxlZ2FsOi9bOj0iXFtcXV0vLGNvbnRhaW5zOltvXX0sb119LHtjbGFzc05hbWU6Im5hbWUiLGJlZ2luOm4rIjoiLGVuZDoiOiIscmV0dXJuQmVnaW46ITAscmV0dXJuRW5kOiEwLHJlbGV2YW5jZTowfV0pfX1zLmV4cG9ydHM9cn0sNjk1Njc6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihlKXtyZXR1cm57bmFtZToiTjFRTCIsY2FzZV9pbnNlbnNpdGl2ZTohMCxjb250YWluczpbe2JlZ2luS2V5d29yZHM6ImJ1aWxkIGNyZWF0ZSBpbmRleCBkZWxldGUgZHJvcCBleHBsYWluIGluZmVyfDEwIGluc2VydCBtZXJnZSBwcmVwYXJlIHNlbGVjdCB1cGRhdGUgdXBzZXJ0fDEwIixlbmQ6LzsvLGVuZHNXaXRoUGFyZW50OiEwLGtleXdvcmRzOntrZXl3b3JkOiJhbGwgYWx0ZXIgYW5hbHl6ZSBhbmQgYW55IGFycmF5IGFzIGFzYyBiZWdpbiBiZXR3ZWVuIGJpbmFyeSBib29sZWFuIGJyZWFrIGJ1Y2tldCBidWlsZCBieSBjYWxsIGNhc2UgY2FzdCBjbHVzdGVyIGNvbGxhdGUgY29sbGVjdGlvbiBjb21taXQgY29ubmVjdCBjb250aW51ZSBjb3JyZWxhdGUgY292ZXIgY3JlYXRlIGRhdGFiYXNlIGRhdGFzZXQgZGF0YXN0b3JlIGRlY2xhcmUgZGVjcmVtZW50IGRlbGV0ZSBkZXJpdmVkIGRlc2MgZGVzY3JpYmUgZGlzdGluY3QgZG8gZHJvcCBlYWNoIGVsZW1lbnQgZWxzZSBlbmQgZXZlcnkgZXhjZXB0IGV4Y2x1ZGUgZXhlY3V0ZSBleGlzdHMgZXhwbGFpbiBmZXRjaCBmaXJzdCBmbGF0dGVuIGZvciBmb3JjZSBmcm9tIGZ1bmN0aW9uIGdyYW50IGdyb3VwIGdzaSBoYXZpbmcgaWYgaWdub3JlIGlsaWtlIGluIGluY2x1ZGUgaW5jcmVtZW50IGluZGV4IGluZmVyIGlubGluZSBpbm5lciBpbnNlcnQgaW50ZXJzZWN0IGludG8gaXMgam9pbiBrZXkga2V5cyBrZXlzcGFjZSBrbm93biBsYXN0IGxlZnQgbGV0IGxldHRpbmcgbGlrZSBsaW1pdCBsc20gbWFwIG1hcHBpbmcgbWF0Y2hlZCBtYXRlcmlhbGl6ZWQgbWVyZ2UgbWludXMgbmFtZXNwYWNlIG5lc3Qgbm90IG51bWJlciBvYmplY3Qgb2Zmc2V0IG9uIG9wdGlvbiBvciBvcmRlciBvdXRlciBvdmVyIHBhcnNlIHBhcnRpdGlvbiBwYXNzd29yZCBwYXRoIHBvb2wgcHJlcGFyZSBwcmltYXJ5IHByaXZhdGUgcHJpdmlsZWdlIHByb2NlZHVyZSBwdWJsaWMgcmF3IHJlYWxtIHJlZHVjZSByZW5hbWUgcmV0dXJuIHJldHVybmluZyByZXZva2UgcmlnaHQgcm9sZSByb2xsYmFjayBzYXRpc2ZpZXMgc2NoZW1hIHNlbGVjdCBzZWxmIHNlbWkgc2V0IHNob3cgc29tZSBzdGFydCBzdGF0aXN0aWNzIHN0cmluZyBzeXN0ZW0gdGhlbiB0byB0cmFuc2FjdGlvbiB0cmlnZ2VyIHRydW5jYXRlIHVuZGVyIHVuaW9uIHVuaXF1ZSB1bmtub3duIHVubmVzdCB1bnNldCB1cGRhdGUgdXBzZXJ0IHVzZSB1c2VyIHVzaW5nIHZhbGlkYXRlIHZhbHVlIHZhbHVlZCB2YWx1ZXMgdmlhIHZpZXcgd2hlbiB3aGVyZSB3aGlsZSB3aXRoIHdpdGhpbiB3b3JrIHhvciIsbGl0ZXJhbDoidHJ1ZSBmYWxzZSBudWxsIG1pc3Npbmd8NSIsYnVpbHRfaW46ImFycmF5X2FnZyBhcnJheV9hcHBlbmQgYXJyYXlfY29uY2F0IGFycmF5X2NvbnRhaW5zIGFycmF5X2NvdW50IGFycmF5X2Rpc3RpbmN0IGFycmF5X2lmbnVsbCBhcnJheV9sZW5ndGggYXJyYXlfbWF4IGFycmF5X21pbiBhcnJheV9wb3NpdGlvbiBhcnJheV9wcmVwZW5kIGFycmF5X3B1dCBhcnJheV9yYW5nZSBhcnJheV9yZW1vdmUgYXJyYXlfcmVwZWF0IGFycmF5X3JlcGxhY2UgYXJyYXlfcmV2ZXJzZSBhcnJheV9zb3J0IGFycmF5X3N1bSBhdmcgY291bnQgbWF4IG1pbiBzdW0gZ3JlYXRlc3QgbGVhc3QgaWZtaXNzaW5nIGlmbWlzc2luZ29ybnVsbCBpZm51bGwgbWlzc2luZ2lmIG51bGxpZiBpZmluZiBpZm5hbiBpZm5hbm9yaW5mIG5hbmluZiBuZWdpbmZpZiBwb3NpbmZpZiBjbG9ja19taWxsaXMgY2xvY2tfc3RyIGRhdGVfYWRkX21pbGxpcyBkYXRlX2FkZF9zdHIgZGF0ZV9kaWZmX21pbGxpcyBkYXRlX2RpZmZfc3RyIGRhdGVfcGFydF9taWxsaXMgZGF0ZV9wYXJ0X3N0ciBkYXRlX3RydW5jX21pbGxpcyBkYXRlX3RydW5jX3N0ciBkdXJhdGlvbl90b19zdHIgbWlsbGlzIHN0cl90b19taWxsaXMgbWlsbGlzX3RvX3N0ciBtaWxsaXNfdG9fdXRjIG1pbGxpc190b196b25lX25hbWUgbm93X21pbGxpcyBub3dfc3RyIHN0cl90b19kdXJhdGlvbiBzdHJfdG9fdXRjIHN0cl90b196b25lX25hbWUgZGVjb2RlX2pzb24gZW5jb2RlX2pzb24gZW5jb2RlZF9zaXplIHBvbHlfbGVuZ3RoIGJhc2U2NCBiYXNlNjRfZW5jb2RlIGJhc2U2NF9kZWNvZGUgbWV0YSB1dWlkIGFicyBhY29zIGFzaW4gYXRhbiBhdGFuMiBjZWlsIGNvcyBkZWdyZWVzIGUgZXhwIGxuIGxvZyBmbG9vciBwaSBwb3dlciByYWRpYW5zIHJhbmRvbSByb3VuZCBzaWduIHNpbiBzcXJ0IHRhbiB0cnVuYyBvYmplY3RfbGVuZ3RoIG9iamVjdF9uYW1lcyBvYmplY3RfcGFpcnMgb2JqZWN0X2lubmVyX3BhaXJzIG9iamVjdF92YWx1ZXMgb2JqZWN0X2lubmVyX3ZhbHVlcyBvYmplY3RfYWRkIG9iamVjdF9wdXQgb2JqZWN0X3JlbW92ZSBvYmplY3RfdW53cmFwIHJlZ2V4cF9jb250YWlucyByZWdleHBfbGlrZSByZWdleHBfcG9zaXRpb24gcmVnZXhwX3JlcGxhY2UgY29udGFpbnMgaW5pdGNhcCBsZW5ndGggbG93ZXIgbHRyaW0gcG9zaXRpb24gcmVwZWF0IHJlcGxhY2UgcnRyaW0gc3BsaXQgc3Vic3RyIHRpdGxlIHRyaW0gdXBwZXIgaXNhcnJheSBpc2F0b20gaXNib29sZWFuIGlzbnVtYmVyIGlzb2JqZWN0IGlzc3RyaW5nIHR5cGUgdG9hcnJheSB0b2F0b20gdG9ib29sZWFuIHRvbnVtYmVyIHRvb2JqZWN0IHRvc3RyaW5nIn0sY29udGFpbnM6W3tjbGFzc05hbWU6InN0cmluZyIsYmVnaW46IiciLGVuZDoiJyIsY29udGFpbnM6W2UuQkFDS1NMQVNIX0VTQ0FQRV19LHtjbGFzc05hbWU6InN0cmluZyIsYmVnaW46JyInLGVuZDonIicsY29udGFpbnM6W2UuQkFDS1NMQVNIX0VTQ0FQRV19LHtjbGFzc05hbWU6InN5bWJvbCIsYmVnaW46ImAiLGVuZDoiYCIsY29udGFpbnM6W2UuQkFDS1NMQVNIX0VTQ0FQRV0scmVsZXZhbmNlOjJ9LGUuQ19OVU1CRVJfTU9ERSxlLkNfQkxPQ0tfQ09NTUVOVF9NT0RFXX0sZS5DX0JMT0NLX0NPTU1FTlRfTU9ERV19fXMuZXhwb3J0cz1yfSwxNTQ1MzpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGUpe2NvbnN0IHQ9e2NsYXNzTmFtZToidmFyaWFibGUiLHZhcmlhbnRzOlt7YmVnaW46L1wkXGQrL30se2JlZ2luOi9cJFx7LyxlbmQ6L1x9L30se2JlZ2luOi9bJEBdLytlLlVOREVSU0NPUkVfSURFTlRfUkV9XX0sbj17ZW5kc1dpdGhQYXJlbnQ6ITAsa2V5d29yZHM6eyRwYXR0ZXJuOiJbYS16L19dKyIsbGl0ZXJhbDoib24gb2ZmIHllcyBubyB0cnVlIGZhbHNlIG5vbmUgYmxvY2tlZCBkZWJ1ZyBpbmZvIG5vdGljZSB3YXJuIGVycm9yIGNyaXQgc2VsZWN0IGJyZWFrIGxhc3QgcGVybWFuZW50IHJlZGlyZWN0IGtxdWV1ZSBydHNpZyBlcG9sbCBwb2xsIC9kZXYvcG9sbCJ9LHJlbGV2YW5jZTowLGlsbGVnYWw6Ij0+Iixjb250YWluczpbZS5IQVNIX0NPTU1FTlRfTU9ERSx7Y2xhc3NOYW1lOiJzdHJpbmciLGNvbnRhaW5zOltlLkJBQ0tTTEFTSF9FU0NBUEUsdF0sdmFyaWFudHM6W3tiZWdpbjovIi8sZW5kOi8iL30se2JlZ2luOi8nLyxlbmQ6LycvfV19LHtiZWdpbjoiKFthLXpdKyk6LyIsZW5kOiJcXHMiLGVuZHNXaXRoUGFyZW50OiEwLGV4Y2x1ZGVFbmQ6ITAsY29udGFpbnM6W3RdfSx7Y2xhc3NOYW1lOiJyZWdleHAiLGNvbnRhaW5zOltlLkJBQ0tTTEFTSF9FU0NBUEUsdF0sdmFyaWFudHM6W3tiZWdpbjoiXFxzXFxeIixlbmQ6Ilxcc3xcXHt8OyIscmV0dXJuRW5kOiEwfSx7YmVnaW46In5cXCo/XFxzKyIsZW5kOiJcXHN8XFx7fDsiLHJldHVybkVuZDohMH0se2JlZ2luOiJcXCooXFwuW2EtelxcLV0rKSsifSx7YmVnaW46IihbYS16XFwtXStcXC4pK1xcKiJ9XX0se2NsYXNzTmFtZToibnVtYmVyIixiZWdpbjoiXFxiXFxkezEsM31cXC5cXGR7MSwzfVxcLlxcZHsxLDN9XFwuXFxkezEsM30oOlxcZHsxLDV9KT9cXGIifSx7Y2xhc3NOYW1lOiJudW1iZXIiLGJlZ2luOiJcXGJcXGQrW2tLbU1nR2RzaGR3eV0qXFxiIixyZWxldmFuY2U6MH0sdF19O3JldHVybntuYW1lOiJOZ2lueCBjb25maWciLGFsaWFzZXM6WyJuZ2lueGNvbmYiXSxjb250YWluczpbZS5IQVNIX0NPTU1FTlRfTU9ERSx7YmVnaW46ZS5VTkRFUlNDT1JFX0lERU5UX1JFKyJcXHMrXFx7IixyZXR1cm5CZWdpbjohMCxlbmQ6L1x7Lyxjb250YWluczpbe2NsYXNzTmFtZToic2VjdGlvbiIsYmVnaW46ZS5VTkRFUlNDT1JFX0lERU5UX1JFfV0scmVsZXZhbmNlOjB9LHtiZWdpbjplLlVOREVSU0NPUkVfSURFTlRfUkUrIlxccyIsZW5kOiI7fFxceyIscmV0dXJuQmVnaW46ITAsY29udGFpbnM6W3tjbGFzc05hbWU6ImF0dHJpYnV0ZSIsYmVnaW46ZS5VTkRFUlNDT1JFX0lERU5UX1JFLHN0YXJ0czpufV0scmVsZXZhbmNlOjB9XSxpbGxlZ2FsOiJbXlxcc1xcfV0ifX1zLmV4cG9ydHM9cn0sNzI5MDpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGUpe3JldHVybntuYW1lOiJOaW0iLGtleXdvcmRzOntrZXl3b3JkOiJhZGRyIGFuZCBhcyBhc20gYmluZCBibG9jayBicmVhayBjYXNlIGNhc3QgY29uc3QgY29udGludWUgY29udmVydGVyIGRpc2NhcmQgZGlzdGluY3QgZGl2IGRvIGVsaWYgZWxzZSBlbmQgZW51bSBleGNlcHQgZXhwb3J0IGZpbmFsbHkgZm9yIGZyb20gZnVuYyBnZW5lcmljIGlmIGltcG9ydCBpbiBpbmNsdWRlIGludGVyZmFjZSBpcyBpc25vdCBpdGVyYXRvciBsZXQgbWFjcm8gbWV0aG9kIG1peGluIG1vZCBuaWwgbm90IG5vdGluIG9iamVjdCBvZiBvciBvdXQgcHJvYyBwdHIgcmFpc2UgcmVmIHJldHVybiBzaGwgc2hyIHN0YXRpYyB0ZW1wbGF0ZSB0cnkgdHVwbGUgdHlwZSB1c2luZyB2YXIgd2hlbiB3aGlsZSB3aXRoIHdpdGhvdXQgeG9yIHlpZWxkIixsaXRlcmFsOiJzaGFyZWQgZ3VhcmRlZCBzdGRpbiBzdGRvdXQgc3RkZXJyIHJlc3VsdCB0cnVlIGZhbHNlIixidWlsdF9pbjoiaW50IGludDggaW50MTYgaW50MzIgaW50NjQgdWludCB1aW50OCB1aW50MTYgdWludDMyIHVpbnQ2NCBmbG9hdCBmbG9hdDMyIGZsb2F0NjQgYm9vbCBjaGFyIHN0cmluZyBjc3RyaW5nIHBvaW50ZXIgZXhwciBzdG10IHZvaWQgYXV0byBhbnkgcmFuZ2UgYXJyYXkgb3BlbmFycmF5IHZhcmFyZ3Mgc2VxIHNldCBjbG9uZyBjdWxvbmcgY2NoYXIgY3NjaGFyIGNzaG9ydCBjaW50IGNzaXplIGNsb25nbG9uZyBjZmxvYXQgY2RvdWJsZSBjbG9uZ2RvdWJsZSBjdWNoYXIgY3VzaG9ydCBjdWludCBjdWxvbmdsb25nIGNzdHJpbmdhcnJheSBzZW1pc3RhdGljIn0sY29udGFpbnM6W3tjbGFzc05hbWU6Im1ldGEiLGJlZ2luOi9ce1wuLyxlbmQ6L1wuXH0vLHJlbGV2YW5jZToxMH0se2NsYXNzTmFtZToic3RyaW5nIixiZWdpbjovW2EtekEtWl1cdyoiLyxlbmQ6LyIvLGNvbnRhaW5zOlt7YmVnaW46LyIiL31dfSx7Y2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOi8oW2EtekEtWl1cdyopPyIiIi8sZW5kOi8iIiIvfSxlLlFVT1RFX1NUUklOR19NT0RFLHtjbGFzc05hbWU6InR5cGUiLGJlZ2luOi9cYltBLVpdXHcrXGIvLHJlbGV2YW5jZTowfSx7Y2xhc3NOYW1lOiJudW1iZXIiLHJlbGV2YW5jZTowLHZhcmlhbnRzOlt7YmVnaW46L1xiKDBbeFhdWzAtOWEtZkEtRl1bXzAtOWEtZkEtRl0qKSgnP1tpSXVVXSg4fDE2fDMyfDY0KSk/L30se2JlZ2luOi9cYigwb1swLTddW18wLTddKikoJz9baUl1VWZGXSg4fDE2fDMyfDY0KSk/L30se2JlZ2luOi9cYigwKGJ8QilbMDFdW18wMV0qKSgnP1tpSXVVZkZdKDh8MTZ8MzJ8NjQpKT8vfSx7YmVnaW46L1xiKFxkW19cZF0qKSgnP1tpSXVVZkZdKDh8MTZ8MzJ8NjQpKT8vfV19LGUuSEFTSF9DT01NRU5UX01PREVdfX1zLmV4cG9ydHM9cn0sODQxMDE6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihlKXtjb25zdCB0PXtrZXl3b3JkOiJyZWMgd2l0aCBsZXQgaW4gaW5oZXJpdCBhc3NlcnQgaWYgZWxzZSB0aGVuIixsaXRlcmFsOiJ0cnVlIGZhbHNlIG9yIGFuZCBudWxsIixidWlsdF9pbjoiaW1wb3J0IGFib3J0IGJhc2VOYW1lT2YgZGlyT2YgaXNOdWxsIGJ1aWx0aW5zIG1hcCByZW1vdmVBdHRycyB0aHJvdyB0b1N0cmluZyBkZXJpdmF0aW9uIn0sbj17Y2xhc3NOYW1lOiJzdWJzdCIsYmVnaW46L1wkXHsvLGVuZDovXH0vLGtleXdvcmRzOnR9LGE9e2JlZ2luOi9bYS16QS1aMC05LV9dKyhccyo9KS8scmV0dXJuQmVnaW46ITAscmVsZXZhbmNlOjAsY29udGFpbnM6W3tjbGFzc05hbWU6ImF0dHIiLGJlZ2luOi9cUysvfV19LGk9e2NsYXNzTmFtZToic3RyaW5nIixjb250YWluczpbbl0sdmFyaWFudHM6W3tiZWdpbjoiJyciLGVuZDoiJycifSx7YmVnaW46JyInLGVuZDonIid9XX0sbz1bZS5OVU1CRVJfTU9ERSxlLkhBU0hfQ09NTUVOVF9NT0RFLGUuQ19CTE9DS19DT01NRU5UX01PREUsaSxhXTtyZXR1cm4gbi5jb250YWlucz1vLHtuYW1lOiJOaXgiLGFsaWFzZXM6WyJuaXhvcyJdLGtleXdvcmRzOnQsY29udGFpbnM6b319cy5leHBvcnRzPXJ9LDY5NTI3OmZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHIoZSl7cmV0dXJue25hbWU6Ik5vZGUgUkVQTCIsY29udGFpbnM6W3tjbGFzc05hbWU6Im1ldGEiLHN0YXJ0czp7ZW5kOi8gfCQvLHN0YXJ0czp7ZW5kOiIkIixzdWJMYW5ndWFnZToiamF2YXNjcmlwdCJ9fSx2YXJpYW50czpbe2JlZ2luOi9ePig/PVsgXXwkKS99LHtiZWdpbjovXlwuXC5cLig/PVsgXXwkKS99XX1dfX1zLmV4cG9ydHM9cn0sNzE0ODc6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihlKXtjb25zdCB0PXtjbGFzc05hbWU6InZhcmlhYmxlIixiZWdpbjovXCQoQURNSU5UT09MU3xBUFBEQVRBfENEQlVSTl9BUkVBfENNRExJTkV8Q09NTU9ORklMRVMzMnxDT01NT05GSUxFUzY0fENPTU1PTkZJTEVTfENPT0tJRVN8REVTS1RPUHxET0NVTUVOVFN8RVhFRElSfEVYRUZJTEV8RVhFUEFUSHxGQVZPUklURVN8Rk9OVFN8SElTVE9SWXxIV05EUEFSRU5UfElOU1RESVJ8SU5URVJORVRfQ0FDSEV8TEFOR1VBR0V8TE9DQUxBUFBEQVRBfE1VU0lDfE5FVEhPT0R8T1VURElSfFBJQ1RVUkVTfFBMVUdJTlNESVJ8UFJJTlRIT09EfFBST0ZJTEV8UFJPR1JBTUZJTEVTMzJ8UFJPR1JBTUZJTEVTNjR8UFJPR1JBTUZJTEVTfFFVSUNLTEFVTkNIfFJFQ0VOVHxSRVNPVVJDRVNfTE9DQUxJWkVEfFJFU09VUkNFU3xTRU5EVE98U01QUk9HUkFNU3xTTVNUQVJUVVB8U1RBUlRNRU5VfFNZU0RJUnxURU1QfFRFTVBMQVRFU3xWSURFT1N8V0lORElSKS99LG49e2NsYXNzTmFtZToidmFyaWFibGUiLGJlZ2luOi9cJCtce1tcdy46LV0rXH0vfSxhPXtjbGFzc05hbWU6InZhcmlhYmxlIixiZWdpbjovXCQrXHcrLyxpbGxlZ2FsOi9cKFwpXHtcfS99LGk9e2NsYXNzTmFtZToidmFyaWFibGUiLGJlZ2luOi9cJCtcKFtcd14uOi1dK1wpL30sbz17Y2xhc3NOYW1lOiJwYXJhbXMiLGJlZ2luOiIoQVJDSElWRXxGSUxFX0FUVFJJQlVURV9BUkNISVZFfEZJTEVfQVRUUklCVVRFX05PUk1BTHxGSUxFX0FUVFJJQlVURV9PRkZMSU5FfEZJTEVfQVRUUklCVVRFX1JFQURPTkxZfEZJTEVfQVRUUklCVVRFX1NZU1RFTXxGSUxFX0FUVFJJQlVURV9URU1QT1JBUll8SEtDUnxIS0NVfEhLRER8SEtFWV9DTEFTU0VTX1JPT1R8SEtFWV9DVVJSRU5UX0NPTkZJR3xIS0VZX0NVUlJFTlRfVVNFUnxIS0VZX0RZTl9EQVRBfEhLRVlfTE9DQUxfTUFDSElORXxIS0VZX1BFUkZPUk1BTkNFX0RBVEF8SEtFWV9VU0VSU3xIS0xNfEhLUER8SEtVfElEQUJPUlR8SURDQU5DRUx8SURJR05PUkV8SUROT3xJRE9LfElEUkVUUll8SURZRVN8TUJfQUJPUlRSRVRSWUlHTk9SRXxNQl9ERUZCVVRUT04xfE1CX0RFRkJVVFRPTjJ8TUJfREVGQlVUVE9OM3xNQl9ERUZCVVRUT040fE1CX0lDT05FWENMQU1BVElPTnxNQl9JQ09OSU5GT1JNQVRJT058TUJfSUNPTlFVRVNUSU9OfE1CX0lDT05TVE9QfE1CX09LfE1CX09LQ0FOQ0VMfE1CX1JFVFJZQ0FOQ0VMfE1CX1JJR0hUfE1CX1JUTFJFQURJTkd8TUJfU0VURk9SRUdST1VORHxNQl9UT1BNT1NUfE1CX1VTRVJJQ09OfE1CX1lFU05PfE5PUk1BTHxPRkZMSU5FfFJFQURPTkxZfFNIQ1RYfFNIRUxMX0NPTlRFWFR8U1lTVEVNfFRFTVBPUkFSWSkifSxsPXtjbGFzc05hbWU6ImtleXdvcmQiLGJlZ2luOi8hKGFkZGluY2x1ZGVkaXJ8YWRkcGx1Z2luZGlyfGFwcGVuZGZpbGV8Y2R8ZGVmaW5lfGRlbGZpbGV8ZWNob3xlbHNlfGVuZGlmfGVycm9yfGV4ZWN1dGV8ZmluYWxpemV8Z2V0ZGxsdmVyc2lvbnxnZXR0bGJ2ZXJzaW9ufGlmfGlmZGVmfGlmbWFjcm9kZWZ8aWZtYWNyb25kZWZ8aWZuZGVmfGluY2x1ZGV8aW5zZXJ0bWFjcm98bWFjcm98bWFjcm9lbmR8bWFrZW5zaXN8cGFja2hkcnxzZWFyY2hwYXJzZXxzZWFyY2hyZXBsYWNlfHN5c3RlbXx0ZW1wZmlsZXx1bmRlZnx2ZXJib3NlfHdhcm5pbmcpL30sYz17Y2xhc3NOYW1lOiJtZXRhIixiZWdpbjovXCQoXFxbbnJ0XXxcJCkvfSxfPXtjbGFzc05hbWU6ImNsYXNzIixiZWdpbjovXHcrOjpcdysvfSxkPXtjbGFzc05hbWU6InN0cmluZyIsdmFyaWFudHM6W3tiZWdpbjonIicsZW5kOiciJ30se2JlZ2luOiInIixlbmQ6IicifSx7YmVnaW46ImAiLGVuZDoiYCJ9XSxpbGxlZ2FsOi9cbi8sY29udGFpbnM6W2MsdCxuLGEsaV19O3JldHVybntuYW1lOiJOU0lTIixjYXNlX2luc2Vuc2l0aXZlOiExLGtleXdvcmRzOntrZXl3b3JkOiJBYm9ydCBBZGRCcmFuZGluZ0ltYWdlIEFkZFNpemUgQWxsb3dSb290RGlySW5zdGFsbCBBbGxvd1NraXBGaWxlcyBBdXRvQ2xvc2VXaW5kb3cgQkdGb250IEJHR3JhZGllbnQgQnJhbmRpbmdUZXh0IEJyaW5nVG9Gcm9udCBDYWxsIENhbGxJbnN0RExMIENhcHRpb24gQ2hhbmdlVUkgQ2hlY2tCaXRtYXAgQ2xlYXJFcnJvcnMgQ29tcGxldGVkVGV4dCBDb21wb25lbnRUZXh0IENvcHlGaWxlcyBDUkNDaGVjayBDcmVhdGVEaXJlY3RvcnkgQ3JlYXRlRm9udCBDcmVhdGVTaG9ydEN1dCBEZWxldGUgRGVsZXRlSU5JU2VjIERlbGV0ZUlOSVN0ciBEZWxldGVSZWdLZXkgRGVsZXRlUmVnVmFsdWUgRGV0YWlsUHJpbnQgRGV0YWlsc0J1dHRvblRleHQgRGlyVGV4dCBEaXJWYXIgRGlyVmVyaWZ5IEVuYWJsZVdpbmRvdyBFbnVtUmVnS2V5IEVudW1SZWdWYWx1ZSBFeGNoIEV4ZWMgRXhlY1NoZWxsIEV4ZWNTaGVsbFdhaXQgRXhlY1dhaXQgRXhwYW5kRW52U3RyaW5ncyBGaWxlIEZpbGVCdWZTaXplIEZpbGVDbG9zZSBGaWxlRXJyb3JUZXh0IEZpbGVPcGVuIEZpbGVSZWFkIEZpbGVSZWFkQnl0ZSBGaWxlUmVhZFVURjE2TEUgRmlsZVJlYWRXb3JkIEZpbGVXcml0ZVVURjE2TEUgRmlsZVNlZWsgRmlsZVdyaXRlIEZpbGVXcml0ZUJ5dGUgRmlsZVdyaXRlV29yZCBGaW5kQ2xvc2UgRmluZEZpcnN0IEZpbmROZXh0IEZpbmRXaW5kb3cgRmx1c2hJTkkgR2V0Q3VySW5zdFR5cGUgR2V0Q3VycmVudEFkZHJlc3MgR2V0RGxnSXRlbSBHZXRETExWZXJzaW9uIEdldERMTFZlcnNpb25Mb2NhbCBHZXRFcnJvckxldmVsIEdldEZpbGVUaW1lIEdldEZpbGVUaW1lTG9jYWwgR2V0RnVsbFBhdGhOYW1lIEdldEZ1bmN0aW9uQWRkcmVzcyBHZXRJbnN0RGlyRXJyb3IgR2V0S25vd25Gb2xkZXJQYXRoIEdldExhYmVsQWRkcmVzcyBHZXRUZW1wRmlsZU5hbWUgR290byBIaWRlV2luZG93IEljb24gSWZBYm9ydCBJZkVycm9ycyBJZkZpbGVFeGlzdHMgSWZSZWJvb3RGbGFnIElmUnRsTGFuZ3VhZ2UgSWZTaGVsbFZhckNvbnRleHRBbGwgSWZTaWxlbnQgSW5pdFBsdWdpbnNEaXIgSW5zdGFsbEJ1dHRvblRleHQgSW5zdGFsbENvbG9ycyBJbnN0YWxsRGlyIEluc3RhbGxEaXJSZWdLZXkgSW5zdFByb2dyZXNzRmxhZ3MgSW5zdFR5cGUgSW5zdFR5cGVHZXRUZXh0IEluc3RUeXBlU2V0VGV4dCBJbnQ2NENtcCBJbnQ2NENtcFUgSW50NjRGbXQgSW50Q21wIEludENtcFUgSW50Rm10IEludE9wIEludFB0ckNtcCBJbnRQdHJDbXBVIEludFB0ck9wIElzV2luZG93IExhbmdTdHJpbmcgTGljZW5zZUJrQ29sb3IgTGljZW5zZURhdGEgTGljZW5zZUZvcmNlU2VsZWN0aW9uIExpY2Vuc2VMYW5nU3RyaW5nIExpY2Vuc2VUZXh0IExvYWRBbmRTZXRJbWFnZSBMb2FkTGFuZ3VhZ2VGaWxlIExvY2tXaW5kb3cgTG9nU2V0IExvZ1RleHQgTWFuaWZlc3REUElBd2FyZSBNYW5pZmVzdExvbmdQYXRoQXdhcmUgTWFuaWZlc3RNYXhWZXJzaW9uVGVzdGVkIE1hbmlmZXN0U3VwcG9ydGVkT1MgTWVzc2FnZUJveCBNaXNjQnV0dG9uVGV4dCBOYW1lIE5vcCBPdXRGaWxlIFBhZ2UgUGFnZUNhbGxiYWNrcyBQRUFkZFJlc291cmNlIFBFRGxsQ2hhcmFjdGVyaXN0aWNzIFBFUmVtb3ZlUmVzb3VyY2UgUEVTdWJzeXNWZXIgUG9wIFB1c2ggUXVpdCBSZWFkRW52U3RyIFJlYWRJTklTdHIgUmVhZFJlZ0RXT1JEIFJlYWRSZWdTdHIgUmVib290IFJlZ0RMTCBSZW5hbWUgUmVxdWVzdEV4ZWN1dGlvbkxldmVsIFJlc2VydmVGaWxlIFJldHVybiBSTURpciBTZWFyY2hQYXRoIFNlY3Rpb25HZXRGbGFncyBTZWN0aW9uR2V0SW5zdFR5cGVzIFNlY3Rpb25HZXRTaXplIFNlY3Rpb25HZXRUZXh0IFNlY3Rpb25JbiBTZWN0aW9uU2V0RmxhZ3MgU2VjdGlvblNldEluc3RUeXBlcyBTZWN0aW9uU2V0U2l6ZSBTZWN0aW9uU2V0VGV4dCBTZW5kTWVzc2FnZSBTZXRBdXRvQ2xvc2UgU2V0QnJhbmRpbmdJbWFnZSBTZXRDb21wcmVzcyBTZXRDb21wcmVzc29yIFNldENvbXByZXNzb3JEaWN0U2l6ZSBTZXRDdGxDb2xvcnMgU2V0Q3VySW5zdFR5cGUgU2V0RGF0YWJsb2NrT3B0aW1pemUgU2V0RGF0ZVNhdmUgU2V0RGV0YWlsc1ByaW50IFNldERldGFpbHNWaWV3IFNldEVycm9yTGV2ZWwgU2V0RXJyb3JzIFNldEZpbGVBdHRyaWJ1dGVzIFNldEZvbnQgU2V0T3V0UGF0aCBTZXRPdmVyd3JpdGUgU2V0UmVib290RmxhZyBTZXRSZWdWaWV3IFNldFNoZWxsVmFyQ29udGV4dCBTZXRTaWxlbnQgU2hvd0luc3REZXRhaWxzIFNob3dVbmluc3REZXRhaWxzIFNob3dXaW5kb3cgU2lsZW50SW5zdGFsbCBTaWxlbnRVbkluc3RhbGwgU2xlZXAgU3BhY2VUZXh0cyBTdHJDbXAgU3RyQ21wUyBTdHJDcHkgU3RyTGVuIFN1YkNhcHRpb24gVW5pY29kZSBVbmluc3RhbGxCdXR0b25UZXh0IFVuaW5zdGFsbENhcHRpb24gVW5pbnN0YWxsSWNvbiBVbmluc3RhbGxTdWJDYXB0aW9uIFVuaW5zdGFsbFRleHQgVW5pbnN0UGFnZSBVblJlZ0RMTCBWYXIgVklBZGRWZXJzaW9uS2V5IFZJRmlsZVZlcnNpb24gVklQcm9kdWN0VmVyc2lvbiBXaW5kb3dJY29uIFdyaXRlSU5JU3RyIFdyaXRlUmVnQmluIFdyaXRlUmVnRFdPUkQgV3JpdGVSZWdFeHBhbmRTdHIgV3JpdGVSZWdNdWx0aVN0ciBXcml0ZVJlZ05vbmUgV3JpdGVSZWdTdHIgV3JpdGVVbmluc3RhbGxlciBYUFN0eWxlIixsaXRlcmFsOiJhZG1pbiBhbGwgYXV0byBib3RoIGJvdHRvbSBiemlwMiBjb2xvcmVkIGNvbXBvbmVudHMgY3VycmVudCBjdXN0b20gZGlyZWN0b3J5IGZhbHNlIGZvcmNlIGhpZGUgaGlnaGVzdCBpZmRpZmYgaWZuZXdlciBpbnN0ZmlsZXMgbGFzdHVzZWQgbGVhdmUgbGVmdCBsaWNlbnNlIGxpc3Rvbmx5IGx6bWEgbmV2ZXJzaG93IG5vbmUgbm9ybWFsIG5vdHNldCBvZmYgb24gb3BlbiBwcmludCByaWdodCBzaG93IHNpbGVudCBzaWxlbnRsb2cgc21vb3RoIHRleHRvbmx5IHRvcCB0cnVlIHRyeSB1bi5jb21wb25lbnRzIHVuLmN1c3RvbSB1bi5kaXJlY3RvcnkgdW4uaW5zdGZpbGVzIHVuLmxpY2Vuc2UgdW5pbnN0Q29uZmlybSB1c2VyIFdpbjEwIFdpbjcgV2luOCBXaW5WaXN0YSB6bGliIn0sY29udGFpbnM6W2UuSEFTSF9DT01NRU5UX01PREUsZS5DX0JMT0NLX0NPTU1FTlRfTU9ERSxlLkNPTU1FTlQoIjsiLCIkIix7cmVsZXZhbmNlOjB9KSx7Y2xhc3NOYW1lOiJmdW5jdGlvbiIsYmVnaW5LZXl3b3JkczoiRnVuY3Rpb24gUGFnZUV4IFNlY3Rpb24gU2VjdGlvbkdyb3VwIixlbmQ6IiQifSxkLGwsbixhLGksbyxfLGUuTlVNQkVSX01PREVdfX1zLmV4cG9ydHM9cn0sODA1NDpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGUpe2NvbnN0IHQ9e2NsYXNzTmFtZToiYnVpbHRfaW4iLGJlZ2luOiJcXGIoQVZ8Q0F8Q0Z8Q0d8Q0l8Q0x8Q018Q058Q1R8TUt8TVB8TVRLfE1UTHxOU3xTQ058U0t8VUl8V0t8WEMpXFx3KyJ9LG49L1thLXpBLVpAXVthLXpBLVowLTlfXSovLGE9eyRwYXR0ZXJuOm4sa2V5d29yZDoiaW50IGZsb2F0IHdoaWxlIGNoYXIgZXhwb3J0IHNpemVvZiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBmb3IgdW5pb24gdW5zaWduZWQgbG9uZyB2b2xhdGlsZSBzdGF0aWMgYm9vbCBtdXRhYmxlIGlmIGRvIHJldHVybiBnb3RvIHZvaWQgZW51bSBlbHNlIGJyZWFrIGV4dGVybiBhc20gY2FzZSBzaG9ydCBkZWZhdWx0IGRvdWJsZSByZWdpc3RlciBleHBsaWNpdCBzaWduZWQgdHlwZW5hbWUgdGhpcyBzd2l0Y2ggY29udGludWUgd2NoYXJfdCBpbmxpbmUgcmVhZG9ubHkgYXNzaWduIHJlYWR3cml0ZSBzZWxmIEBzeW5jaHJvbml6ZWQgaWQgdHlwZW9mIG5vbmF0b21pYyBzdXBlciB1bmljaGFyIElCT3V0bGV0IElCQWN0aW9uIHN0cm9uZyB3ZWFrIGNvcHkgaW4gb3V0IGlub3V0IGJ5Y29weSBieXJlZiBvbmV3YXkgX19zdHJvbmcgX193ZWFrIF9fYmxvY2sgX19hdXRvcmVsZWFzaW5nIEBwcml2YXRlIEBwcm90ZWN0ZWQgQHB1YmxpYyBAdHJ5IEBwcm9wZXJ0eSBAZW5kIEB0aHJvdyBAY2F0Y2ggQGZpbmFsbHkgQGF1dG9yZWxlYXNlcG9vbCBAc3ludGhlc2l6ZSBAZHluYW1pYyBAc2VsZWN0b3IgQG9wdGlvbmFsIEByZXF1aXJlZCBAZW5jb2RlIEBwYWNrYWdlIEBpbXBvcnQgQGRlZnMgQGNvbXBhdGliaWxpdHlfYWxpYXMgX19icmlkZ2UgX19icmlkZ2VfdHJhbnNmZXIgX19icmlkZ2VfcmV0YWluZWQgX19icmlkZ2VfcmV0YWluIF9fY292YXJpYW50IF9fY29udHJhdmFyaWFudCBfX2tpbmRvZiBfTm9ubnVsbCBfTnVsbGFibGUgX051bGxfdW5zcGVjaWZpZWQgX19GVU5DVElPTl9fIF9fUFJFVFRZX0ZVTkNUSU9OX18gX19hdHRyaWJ1dGVfXyBnZXR0ZXIgc2V0dGVyIHJldGFpbiB1bnNhZmVfdW5yZXRhaW5lZCBub25udWxsIG51bGxhYmxlIG51bGxfdW5zcGVjaWZpZWQgbnVsbF9yZXNldHRhYmxlIGNsYXNzIGluc3RhbmNldHlwZSBOU19ERVNJR05BVEVEX0lOSVRJQUxJWkVSIE5TX1VOQVZBSUxBQkxFIE5TX1JFUVVJUkVTX1NVUEVSIE5TX1JFVFVSTlNfSU5ORVJfUE9JTlRFUiBOU19JTkxJTkUgTlNfQVZBSUxBQkxFIE5TX0RFUFJFQ0FURUQgTlNfRU5VTSBOU19PUFRJT05TIE5TX1NXSUZUX1VOQVZBSUxBQkxFIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOIE5TX0FTU1VNRV9OT05OVUxMX0VORCBOU19SRUZJTkVEX0ZPUl9TV0lGVCBOU19TV0lGVF9OQU1FIE5TX1NXSUZUX05PVEhST1cgTlNfRFVSSU5HIE5TX0hBTkRMRVIgTlNfRU5ESEFORExFUiBOU19WQUxVRVJFVFVSTiBOU19WT0lEUkVUVVJOIixsaXRlcmFsOiJmYWxzZSB0cnVlIEZBTFNFIFRSVUUgbmlsIFlFUyBOTyBOVUxMIixidWlsdF9pbjoiQk9PTCBkaXNwYXRjaF9vbmNlX3QgZGlzcGF0Y2hfcXVldWVfdCBkaXNwYXRjaF9zeW5jIGRpc3BhdGNoX2FzeW5jIGRpc3BhdGNoX29uY2UifSxpPXskcGF0dGVybjpuLGtleXdvcmQ6IkBpbnRlcmZhY2UgQGNsYXNzIEBwcm90b2NvbCBAaW1wbGVtZW50YXRpb24ifTtyZXR1cm57bmFtZToiT2JqZWN0aXZlLUMiLGFsaWFzZXM6WyJtbSIsIm9iamMiLCJvYmotYyIsIm9iai1jKysiLCJvYmplY3RpdmUtYysrIl0sa2V5d29yZHM6YSxpbGxlZ2FsOiI8LyIsY29udGFpbnM6W3QsZS5DX0xJTkVfQ09NTUVOVF9NT0RFLGUuQ19CTE9DS19DT01NRU5UX01PREUsZS5DX05VTUJFUl9NT0RFLGUuUVVPVEVfU1RSSU5HX01PREUsZS5BUE9TX1NUUklOR19NT0RFLHtjbGFzc05hbWU6InN0cmluZyIsdmFyaWFudHM6W3tiZWdpbjonQCInLGVuZDonIicsaWxsZWdhbDoiXFxuIixjb250YWluczpbZS5CQUNLU0xBU0hfRVNDQVBFXX1dfSx7Y2xhc3NOYW1lOiJtZXRhIixiZWdpbjovI1xzKlthLXpdK1xiLyxlbmQ6LyQvLGtleXdvcmRzOnsibWV0YS1rZXl3b3JkIjoiaWYgZWxzZSBlbGlmIGVuZGlmIGRlZmluZSB1bmRlZiB3YXJuaW5nIGVycm9yIGxpbmUgcHJhZ21hIGlmZGVmIGlmbmRlZiBpbmNsdWRlIn0sY29udGFpbnM6W3tiZWdpbjovXFxcbi8scmVsZXZhbmNlOjB9LGUuaW5oZXJpdChlLlFVT1RFX1NUUklOR19NT0RFLHtjbGFzc05hbWU6Im1ldGEtc3RyaW5nIn0pLHtjbGFzc05hbWU6Im1ldGEtc3RyaW5nIixiZWdpbjovPC4qPz4vLGVuZDovJC8saWxsZWdhbDoiXFxuIn0sZS5DX0xJTkVfQ09NTUVOVF9NT0RFLGUuQ19CTE9DS19DT01NRU5UX01PREVdfSx7Y2xhc3NOYW1lOiJjbGFzcyIsYmVnaW46IigiK2kua2V5d29yZC5zcGxpdCgiICIpLmpvaW4oInwiKSsiKVxcYiIsZW5kOi8oXHt8JCkvLGV4Y2x1ZGVFbmQ6ITAsa2V5d29yZHM6aSxjb250YWluczpbZS5VTkRFUlNDT1JFX1RJVExFX01PREVdfSx7YmVnaW46IlxcLiIrZS5VTkRFUlNDT1JFX0lERU5UX1JFLHJlbGV2YW5jZTowfV19fXMuZXhwb3J0cz1yfSwxMzE3ODpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGUpe3JldHVybntuYW1lOiJPQ2FtbCIsYWxpYXNlczpbIm1sIl0sa2V5d29yZHM6eyRwYXR0ZXJuOiJbYS16X11cXHcqIT8iLGtleXdvcmQ6ImFuZCBhcyBhc3NlcnQgYXNyIGJlZ2luIGNsYXNzIGNvbnN0cmFpbnQgZG8gZG9uZSBkb3dudG8gZWxzZSBlbmQgZXhjZXB0aW9uIGV4dGVybmFsIGZvciBmdW4gZnVuY3Rpb24gZnVuY3RvciBpZiBpbiBpbmNsdWRlIGluaGVyaXQhIGluaGVyaXQgaW5pdGlhbGl6ZXIgbGFuZCBsYXp5IGxldCBsb3IgbHNsIGxzciBseG9yIG1hdGNoIG1ldGhvZCF8MTAgbWV0aG9kIG1vZCBtb2R1bGUgbXV0YWJsZSBuZXcgb2JqZWN0IG9mIG9wZW4hIG9wZW4gb3IgcHJpdmF0ZSByZWMgc2lnIHN0cnVjdCB0aGVuIHRvIHRyeSB0eXBlIHZhbCEgdmFsIHZpcnR1YWwgd2hlbiB3aGlsZSB3aXRoIHBhcnNlciB2YWx1ZSIsYnVpbHRfaW46ImFycmF5IGJvb2wgYnl0ZXMgY2hhciBleG58NSBmbG9hdCBpbnQgaW50MzIgaW50NjQgbGlzdCBsYXp5X3R8NSBuYXRpdmVpbnR8NSBzdHJpbmcgdW5pdCBpbl9jaGFubmVsIG91dF9jaGFubmVsIHJlZiIsbGl0ZXJhbDoidHJ1ZSBmYWxzZSJ9LGlsbGVnYWw6L1wvXC98Pj4vLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJsaXRlcmFsIixiZWdpbjoiXFxbKFxcfFxcfCk/XFxdfFxcKFxcKSIscmVsZXZhbmNlOjB9LGUuQ09NTUVOVCgiXFwoXFwqIiwiXFwqXFwpIix7Y29udGFpbnM6WyJzZWxmIl19KSx7Y2xhc3NOYW1lOiJzeW1ib2wiLGJlZ2luOiInW0EtWmEtel9dKD8hJylbXFx3J10qIn0se2NsYXNzTmFtZToidHlwZSIsYmVnaW46ImBbQS1aXVtcXHcnXSoifSx7Y2xhc3NOYW1lOiJ0eXBlIixiZWdpbjoiXFxiW0EtWl1bXFx3J10qIixyZWxldmFuY2U6MH0se2JlZ2luOiJbYS16X11cXHcqJ1tcXHcnXSoiLHJlbGV2YW5jZTowfSxlLmluaGVyaXQoZS5BUE9TX1NUUklOR19NT0RFLHtjbGFzc05hbWU6InN0cmluZyIscmVsZXZhbmNlOjB9KSxlLmluaGVyaXQoZS5RVU9URV9TVFJJTkdfTU9ERSx7aWxsZWdhbDpudWxsfSkse2NsYXNzTmFtZToibnVtYmVyIixiZWdpbjoiXFxiKDBbeFhdW2EtZkEtRjAtOV9dK1tMbG5dP3wwW29PXVswLTdfXStbTGxuXT98MFtiQl1bMDFfXStbTGxuXT98WzAtOV1bMC05X10qKFtMbG5dfChcXC5bMC05X10qKT8oW2VFXVstK10/WzAtOV9dKyk/KT8pIixyZWxldmFuY2U6MH0se2JlZ2luOi8tPi99XX19cy5leHBvcnRzPXJ9LDIyNDc4OmZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHIoZSl7Y29uc3QgdD17Y2xhc3NOYW1lOiJrZXl3b3JkIixiZWdpbjoiXFwkKGZbYXNuXXx0fHZwW3J0ZF18Y2hpbGRyZW4pIn0sbj17Y2xhc3NOYW1lOiJsaXRlcmFsIixiZWdpbjoiZmFsc2V8dHJ1ZXxQSXx1bmRlZiJ9LGE9e2NsYXNzTmFtZToibnVtYmVyIixiZWdpbjoiXFxiXFxkKyhcXC5cXGQrKT8oZS0/XFxkKyk/IixyZWxldmFuY2U6MH0saT1lLmluaGVyaXQoZS5RVU9URV9TVFJJTkdfTU9ERSx7aWxsZWdhbDpudWxsfSksbz17Y2xhc3NOYW1lOiJtZXRhIixrZXl3b3Jkczp7Im1ldGEta2V5d29yZCI6ImluY2x1ZGUgdXNlIn0sYmVnaW46ImluY2x1ZGV8dXNlIDwiLGVuZDoiPiJ9LGw9e2NsYXNzTmFtZToicGFyYW1zIixiZWdpbjoiXFwoIixlbmQ6IlxcKSIsY29udGFpbnM6WyJzZWxmIixhLGksdCxuXX0sYz17YmVnaW46IlsqISMlXSIscmVsZXZhbmNlOjB9LF89e2NsYXNzTmFtZToiZnVuY3Rpb24iLGJlZ2luS2V5d29yZHM6Im1vZHVsZSBmdW5jdGlvbiIsZW5kOi89fFx7Lyxjb250YWluczpbbCxlLlVOREVSU0NPUkVfVElUTEVfTU9ERV19O3JldHVybntuYW1lOiJPcGVuU0NBRCIsYWxpYXNlczpbInNjYWQiXSxrZXl3b3Jkczp7a2V5d29yZDoiZnVuY3Rpb24gbW9kdWxlIGluY2x1ZGUgdXNlIGZvciBpbnRlcnNlY3Rpb25fZm9yIGlmIGVsc2UgXFwlIixsaXRlcmFsOiJmYWxzZSB0cnVlIFBJIHVuZGVmIixidWlsdF9pbjoiY2lyY2xlIHNxdWFyZSBwb2x5Z29uIHRleHQgc3BoZXJlIGN1YmUgY3lsaW5kZXIgcG9seWhlZHJvbiB0cmFuc2xhdGUgcm90YXRlIHNjYWxlIHJlc2l6ZSBtaXJyb3IgbXVsdG1hdHJpeCBjb2xvciBvZmZzZXQgaHVsbCBtaW5rb3dza2kgdW5pb24gZGlmZmVyZW5jZSBpbnRlcnNlY3Rpb24gYWJzIHNpZ24gc2luIGNvcyB0YW4gYWNvcyBhc2luIGF0YW4gYXRhbjIgZmxvb3Igcm91bmQgY2VpbCBsbiBsb2cgcG93IHNxcnQgZXhwIHJhbmRzIG1pbiBtYXggY29uY2F0IGxvb2t1cCBzdHIgY2hyIHNlYXJjaCB2ZXJzaW9uIHZlcnNpb25fbnVtIG5vcm0gY3Jvc3MgcGFyZW50X21vZHVsZSBlY2hvIGltcG9ydCBpbXBvcnRfZHhmIGR4Zl9saW5lYXJfZXh0cnVkZSBsaW5lYXJfZXh0cnVkZSByb3RhdGVfZXh0cnVkZSBzdXJmYWNlIHByb2plY3Rpb24gcmVuZGVyIGNoaWxkcmVuIGR4Zl9jcm9zcyBkeGZfZGltIGxldCBhc3NpZ24ifSxjb250YWluczpbZS5DX0xJTkVfQ09NTUVOVF9NT0RFLGUuQ19CTE9DS19DT01NRU5UX01PREUsYSxvLGksdCxjLF9dfX1zLmV4cG9ydHM9cn0sMzYwMjM6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihlKXtjb25zdCB0PXskcGF0dGVybjovXC4/XHcrLyxrZXl3b3JkOiJhYnN0cmFjdCBhZGQgYW5kIGFycmF5IGFzIGFzYyBhc3BlY3QgYXNzZW1ibHkgYXN5bmMgYmVnaW4gYnJlYWsgYmxvY2sgYnkgY2FzZSBjbGFzcyBjb25jYXQgY29uc3QgY29weSBjb25zdHJ1Y3RvciBjb250aW51ZSBjcmVhdGUgZGVmYXVsdCBkZWxlZ2F0ZSBkZXNjIGRpc3RpbmN0IGRpdiBkbyBkb3dudG8gZHluYW1pYyBlYWNoIGVsc2UgZW1wdHkgZW5kIGVuc3VyZSBlbnVtIGVxdWFscyBldmVudCBleGNlcHQgZXhpdCBleHRlbnNpb24gZXh0ZXJuYWwgZmFsc2UgZmluYWwgZmluYWxpemUgZmluYWxpemVyIGZpbmFsbHkgZmxhZ3MgZm9yIGZvcndhcmQgZnJvbSBmdW5jdGlvbiBmdXR1cmUgZ2xvYmFsIGdyb3VwIGhhcyBpZiBpbXBsZW1lbnRhdGlvbiBpbXBsZW1lbnRzIGltcGxpZXMgaW4gaW5kZXggaW5oZXJpdGVkIGlubGluZSBpbnRlcmZhY2UgaW50byBpbnZhcmlhbnRzIGlzIGl0ZXJhdG9yIGpvaW4gbG9ja2VkIGxvY2tpbmcgbG9vcCBtYXRjaGluZyBtZXRob2QgbW9kIG1vZHVsZSBuYW1lc3BhY2UgbmVzdGVkIG5ldyBuaWwgbm90IG5vdGlmeSBudWxsYWJsZSBvZiBvbGQgb24gb3BlcmF0b3Igb3Igb3JkZXIgb3V0IG92ZXJyaWRlIHBhcmFsbGVsIHBhcmFtcyBwYXJ0aWFsIHBpbm5lZCBwcml2YXRlIHByb2NlZHVyZSBwcm9wZXJ0eSBwcm90ZWN0ZWQgcHVibGljIHF1ZXJ5YWJsZSByYWlzZSByZWFkIHJlYWRvbmx5IHJlY29yZCByZWludHJvZHVjZSByZW1vdmUgcmVwZWF0IHJlcXVpcmUgcmVzdWx0IHJldmVyc2Ugc2VhbGVkIHNlbGVjdCBzZWxmIHNlcXVlbmNlIHNldCBzaGwgc2hyIHNraXAgc3RhdGljIHN0ZXAgc29mdCB0YWtlIHRoZW4gdG8gdHJ1ZSB0cnkgdHVwbGUgdHlwZSB1bmlvbiB1bml0IHVuc2FmZSB1bnRpbCB1c2VzIHVzaW5nIHZhciB2aXJ0dWFsIHJhaXNlcyB2b2xhdGlsZSB3aGVyZSB3aGlsZSB3aXRoIHdyaXRlIHhvciB5aWVsZCBhd2FpdCBtYXBwZWQgZGVwcmVjYXRlZCBzdGRjYWxsIGNkZWNsIHBhc2NhbCByZWdpc3RlciBzYWZlY2FsbCBvdmVybG9hZCBsaWJyYXJ5IHBsYXRmb3JtIHJlZmVyZW5jZSBwYWNrZWQgc3RyaWN0IHB1Ymxpc2hlZCBhdXRvcmVsZWFzZXBvb2wgc2VsZWN0b3Igc3Ryb25nIHdlYWsgdW5yZXRhaW5lZCJ9LG49ZS5DT01NRU5UKC9cey8sL1x9Lyx7cmVsZXZhbmNlOjB9KSxhPWUuQ09NTUVOVCgiXFwoXFwqIiwiXFwqXFwpIix7cmVsZXZhbmNlOjEwfSksaT17Y2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOiInIixlbmQ6IiciLGNvbnRhaW5zOlt7YmVnaW46IicnIn1dfSxvPXtjbGFzc05hbWU6InN0cmluZyIsYmVnaW46IigjXFxkKykrIn0sbD17Y2xhc3NOYW1lOiJmdW5jdGlvbiIsYmVnaW5LZXl3b3JkczoiZnVuY3Rpb24gY29uc3RydWN0b3IgZGVzdHJ1Y3RvciBwcm9jZWR1cmUgbWV0aG9kIixlbmQ6Ils6O10iLGtleXdvcmRzOiJmdW5jdGlvbiBjb25zdHJ1Y3RvcnwxMCBkZXN0cnVjdG9yfDEwIHByb2NlZHVyZXwxMCBtZXRob2R8MTAiLGNvbnRhaW5zOltlLlRJVExFX01PREUse2NsYXNzTmFtZToicGFyYW1zIixiZWdpbjoiXFwoIixlbmQ6IlxcKSIsa2V5d29yZHM6dCxjb250YWluczpbaSxvXX0sbixhXX07cmV0dXJue25hbWU6Ik94eWdlbmUiLGNhc2VfaW5zZW5zaXRpdmU6ITAsa2V5d29yZHM6dCxpbGxlZ2FsOicoInxcXCRbRy1aZy16XXxcXC9cXCp8PC98PT58LT4pJyxjb250YWluczpbbixhLGUuQ19MSU5FX0NPTU1FTlRfTU9ERSxpLG8sZS5OVU1CRVJfTU9ERSxsLHtjbGFzc05hbWU6ImNsYXNzIixiZWdpbjoiPVxcYmNsYXNzXFxiIixlbmQ6ImVuZDsiLGtleXdvcmRzOnQsY29udGFpbnM6W2ksbyxuLGEsZS5DX0xJTkVfQ09NTUVOVF9NT0RFLGxdfV19fXMuZXhwb3J0cz1yfSwzMDE3MzpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGUpe2NvbnN0IHQ9ZS5DT01NRU5UKC9cey8sL1x9Lyx7Y29udGFpbnM6WyJzZWxmIl19KTtyZXR1cm57bmFtZToiUGFyc2VyMyIsc3ViTGFuZ3VhZ2U6InhtbCIscmVsZXZhbmNlOjAsY29udGFpbnM6W2UuQ09NTUVOVCgiXiMiLCIkIiksZS5DT01NRU5UKC9cXnJlbVx7LywvXH0vLHtyZWxldmFuY2U6MTAsY29udGFpbnM6W3RdfSkse2NsYXNzTmFtZToibWV0YSIsYmVnaW46Il5AKD86QkFTRXxVU0V8Q0xBU1N8T1BUSU9OUykkIixyZWxldmFuY2U6MTB9LHtjbGFzc05hbWU6InRpdGxlIixiZWdpbjoiQFtcXHdcXC1dK1xcW1tcXHdeO1xcLV0qXFxdKD86XFxbW1xcd147XFwtXSpcXF0pPyg/Oi4qKSQifSx7Y2xhc3NOYW1lOiJ2YXJpYWJsZSIsYmVnaW46L1wkXHs/W1x3XC0uOl0rXH0/L30se2NsYXNzTmFtZToia2V5d29yZCIsYmVnaW46L1xeW1x3XC0uOl0rL30se2NsYXNzTmFtZToibnVtYmVyIixiZWdpbjoiXFxeI1swLTlhLWZBLUZdKyJ9LGUuQ19OVU1CRVJfTU9ERV19fXMuZXhwb3J0cz1yfSw2NTg4NTpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGEpe3JldHVybiBhP3R5cGVvZiBhPT0ic3RyaW5nIj9hOmEuc291cmNlOm51bGx9ZnVuY3Rpb24gZSguLi5hKXtyZXR1cm4gYS5tYXAobz0+cihvKSkuam9pbigiIil9ZnVuY3Rpb24gdCguLi5hKXtyZXR1cm4iKCIrYS5tYXAobz0+cihvKSkuam9pbigifCIpKyIpIn1mdW5jdGlvbiBuKGEpe2NvbnN0IGk9WyJhYnMiLCJhY2NlcHQiLCJhbGFybSIsImFuZCIsImF0YW4yIiwiYmluZCIsImJpbm1vZGUiLCJibGVzcyIsImJyZWFrIiwiY2FsbGVyIiwiY2hkaXIiLCJjaG1vZCIsImNob21wIiwiY2hvcCIsImNob3duIiwiY2hyIiwiY2hyb290IiwiY2xvc2UiLCJjbG9zZWRpciIsImNvbm5lY3QiLCJjb250aW51ZSIsImNvcyIsImNyeXB0IiwiZGJtY2xvc2UiLCJkYm1vcGVuIiwiZGVmaW5lZCIsImRlbGV0ZSIsImRpZSIsImRvIiwiZHVtcCIsImVhY2giLCJlbHNlIiwiZWxzaWYiLCJlbmRncmVudCIsImVuZGhvc3RlbnQiLCJlbmRuZXRlbnQiLCJlbmRwcm90b2VudCIsImVuZHB3ZW50IiwiZW5kc2VydmVudCIsImVvZiIsImV2YWwiLCJleGVjIiwiZXhpc3RzIiwiZXhpdCIsImV4cCIsImZjbnRsIiwiZmlsZW5vIiwiZmxvY2siLCJmb3IiLCJmb3JlYWNoIiwiZm9yayIsImZvcm1hdCIsImZvcm1saW5lIiwiZ2V0YyIsImdldGdyZW50IiwiZ2V0Z3JnaWQiLCJnZXRncm5hbSIsImdldGhvc3RieWFkZHIiLCJnZXRob3N0YnluYW1lIiwiZ2V0aG9zdGVudCIsImdldGxvZ2luIiwiZ2V0bmV0YnlhZGRyIiwiZ2V0bmV0YnluYW1lIiwiZ2V0bmV0ZW50IiwiZ2V0cGVlcm5hbWUiLCJnZXRwZ3JwIiwiZ2V0cHJpb3JpdHkiLCJnZXRwcm90b2J5bmFtZSIsImdldHByb3RvYnludW1iZXIiLCJnZXRwcm90b2VudCIsImdldHB3ZW50IiwiZ2V0cHduYW0iLCJnZXRwd3VpZCIsImdldHNlcnZieW5hbWUiLCJnZXRzZXJ2Ynlwb3J0IiwiZ2V0c2VydmVudCIsImdldHNvY2tuYW1lIiwiZ2V0c29ja29wdCIsImdpdmVuIiwiZ2xvYiIsImdtdGltZSIsImdvdG8iLCJncmVwIiwiZ3QiLCJoZXgiLCJpZiIsImluZGV4IiwiaW50IiwiaW9jdGwiLCJqb2luIiwia2V5cyIsImtpbGwiLCJsYXN0IiwibGMiLCJsY2ZpcnN0IiwibGVuZ3RoIiwibGluayIsImxpc3RlbiIsImxvY2FsIiwibG9jYWx0aW1lIiwibG9nIiwibHN0YXQiLCJsdCIsIm1hIiwibWFwIiwibWtkaXIiLCJtc2djdGwiLCJtc2dnZXQiLCJtc2dyY3YiLCJtc2dzbmQiLCJteSIsIm5lIiwibmV4dCIsIm5vIiwibm90Iiwib2N0Iiwib3BlbiIsIm9wZW5kaXIiLCJvciIsIm9yZCIsIm91ciIsInBhY2siLCJwYWNrYWdlIiwicGlwZSIsInBvcCIsInBvcyIsInByaW50IiwicHJpbnRmIiwicHJvdG90eXBlIiwicHVzaCIsInF8MCIsInFxIiwicXVvdGVtZXRhIiwicXciLCJxeCIsInJhbmQiLCJyZWFkIiwicmVhZGRpciIsInJlYWRsaW5lIiwicmVhZGxpbmsiLCJyZWFkcGlwZSIsInJlY3YiLCJyZWRvIiwicmVmIiwicmVuYW1lIiwicmVxdWlyZSIsInJlc2V0IiwicmV0dXJuIiwicmV2ZXJzZSIsInJld2luZGRpciIsInJpbmRleCIsInJtZGlyIiwic2F5Iiwic2NhbGFyIiwic2VlayIsInNlZWtkaXIiLCJzZWxlY3QiLCJzZW1jdGwiLCJzZW1nZXQiLCJzZW1vcCIsInNlbmQiLCJzZXRncmVudCIsInNldGhvc3RlbnQiLCJzZXRuZXRlbnQiLCJzZXRwZ3JwIiwic2V0cHJpb3JpdHkiLCJzZXRwcm90b2VudCIsInNldHB3ZW50Iiwic2V0c2VydmVudCIsInNldHNvY2tvcHQiLCJzaGlmdCIsInNobWN0bCIsInNobWdldCIsInNobXJlYWQiLCJzaG13cml0ZSIsInNodXRkb3duIiwic2luIiwic2xlZXAiLCJzb2NrZXQiLCJzb2NrZXRwYWlyIiwic29ydCIsInNwbGljZSIsInNwbGl0Iiwic3ByaW50ZiIsInNxcnQiLCJzcmFuZCIsInN0YXQiLCJzdGF0ZSIsInN0dWR5Iiwic3ViIiwic3Vic3RyIiwic3ltbGluayIsInN5c2NhbGwiLCJzeXNvcGVuIiwic3lzcmVhZCIsInN5c3NlZWsiLCJzeXN0ZW0iLCJzeXN3cml0ZSIsInRlbGwiLCJ0ZWxsZGlyIiwidGllIiwidGllZCIsInRpbWUiLCJ0aW1lcyIsInRyIiwidHJ1bmNhdGUiLCJ1YyIsInVjZmlyc3QiLCJ1bWFzayIsInVuZGVmIiwidW5sZXNzIiwidW5saW5rIiwidW5wYWNrIiwidW5zaGlmdCIsInVudGllIiwidW50aWwiLCJ1c2UiLCJ1dGltZSIsInZhbHVlcyIsInZlYyIsIndhaXQiLCJ3YWl0cGlkIiwid2FudGFycmF5Iiwid2FybiIsIndoZW4iLCJ3aGlsZSIsIndyaXRlIiwieHwwIiwieG9yIiwieXwwIl0sbz0vW2R1YWx4bXNpcG5ncl17MCwxMn0vLGw9eyRwYXR0ZXJuOi9bXHcuXSsvLGtleXdvcmQ6aS5qb2luKCIgIil9LGM9e2NsYXNzTmFtZToic3Vic3QiLGJlZ2luOiJbJEBdXFx7IixlbmQ6IlxcfSIsa2V5d29yZHM6bH0sXz17YmVnaW46Ly0+XHsvLGVuZDovXH0vfSxkPXt2YXJpYW50czpbe2JlZ2luOi9cJFxkL30se2JlZ2luOmUoL1skJUBdKFxeXHdcYnwjXHcrKDo6XHcrKSp8XHtcdytcfXxcdysoOjpcdyopKikvLCIoPyFbQS1aYS16XSkoPyFbQCQlXSkiKX0se2JlZ2luOi9bJCVAXVteXHNcd3tdLyxyZWxldmFuY2U6MH1dfSxnPVthLkJBQ0tTTEFTSF9FU0NBUEUsYyxkXSxFPVsvIS8sL1wvLywvXHwvLC9cPy8sLycvLC8iLywvIy9dLHU9KFQsYixmPSJcXDEiKT0+e2NvbnN0IEM9Zj09PSJcXDEiP2Y6ZShmLGIpO3JldHVybiBlKGUoIig/OiIsVCwiKSIpLGIsLyg/OlxcLnxbXlxcXC9dKSo/LyxDLC8oPzpcXC58W15cXFwvXSkqPy8sZixvKX0sbT0oVCxiLGYpPT5lKGUoIig/OiIsVCwiKSIpLGIsLyg/OlxcLnxbXlxcXC9dKSo/LyxmLG8pLFM9W2QsYS5IQVNIX0NPTU1FTlRfTU9ERSxhLkNPTU1FTlQoL149XHcvLC89Y3V0Lyx7ZW5kc1dpdGhQYXJlbnQ6ITB9KSxfLHtjbGFzc05hbWU6InN0cmluZyIsY29udGFpbnM6Zyx2YXJpYW50czpbe2JlZ2luOiJxW3F3eHJdP1xccypcXCgiLGVuZDoiXFwpIixyZWxldmFuY2U6NX0se2JlZ2luOiJxW3F3eHJdP1xccypcXFsiLGVuZDoiXFxdIixyZWxldmFuY2U6NX0se2JlZ2luOiJxW3F3eHJdP1xccypcXHsiLGVuZDoiXFx9IixyZWxldmFuY2U6NX0se2JlZ2luOiJxW3F3eHJdP1xccypcXHwiLGVuZDoiXFx8IixyZWxldmFuY2U6NX0se2JlZ2luOiJxW3F3eHJdP1xccyo8IixlbmQ6Ij4iLHJlbGV2YW5jZTo1fSx7YmVnaW46InF3XFxzK3EiLGVuZDoicSIscmVsZXZhbmNlOjV9LHtiZWdpbjoiJyIsZW5kOiInIixjb250YWluczpbYS5CQUNLU0xBU0hfRVNDQVBFXX0se2JlZ2luOiciJyxlbmQ6JyInfSx7YmVnaW46ImAiLGVuZDoiYCIsY29udGFpbnM6W2EuQkFDS1NMQVNIX0VTQ0FQRV19LHtiZWdpbjovXHtcdytcfS8scmVsZXZhbmNlOjB9LHtiZWdpbjoiLT9cXHcrXFxzKj0+IixyZWxldmFuY2U6MH1dfSx7Y2xhc3NOYW1lOiJudW1iZXIiLGJlZ2luOiIoXFxiMFswLTdfXSspfChcXGIweFswLTlhLWZBLUZfXSspfChcXGJbMS05XVswLTlfXSooXFwuWzAtOV9dKyk/KXxbMF9dXFxiIixyZWxldmFuY2U6MH0se2JlZ2luOiIoXFwvXFwvfCIrYS5SRV9TVEFSVEVSU19SRSsifFxcYihzcGxpdHxyZXR1cm58cHJpbnR8cmV2ZXJzZXxncmVwKVxcYilcXHMqIixrZXl3b3Jkczoic3BsaXQgcmV0dXJuIHByaW50IHJldmVyc2UgZ3JlcCIscmVsZXZhbmNlOjAsY29udGFpbnM6W2EuSEFTSF9DT01NRU5UX01PREUse2NsYXNzTmFtZToicmVnZXhwIix2YXJpYW50czpbe2JlZ2luOnUoInN8dHJ8eSIsdCguLi5FKSl9LHtiZWdpbjp1KCJzfHRyfHkiLCJcXCgiLCJcXCkiKX0se2JlZ2luOnUoInN8dHJ8eSIsIlxcWyIsIlxcXSIpfSx7YmVnaW46dSgic3x0cnx5IiwiXFx7IiwiXFx9Iil9XSxyZWxldmFuY2U6Mn0se2NsYXNzTmFtZToicmVnZXhwIix2YXJpYW50czpbe2JlZ2luOi8obXxxcilcL1wvLyxyZWxldmFuY2U6MH0se2JlZ2luOm0oIig/Om18cXIpPyIsL1wvLywvXC8vKX0se2JlZ2luOm0oIm18cXIiLHQoLi4uRSksL1wxLyl9LHtiZWdpbjptKCJtfHFyIiwvXCgvLC9cKS8pfSx7YmVnaW46bSgibXxxciIsL1xbLywvXF0vKX0se2JlZ2luOm0oIm18cXIiLC9cey8sL1x9Lyl9XX1dfSx7Y2xhc3NOYW1lOiJmdW5jdGlvbiIsYmVnaW5LZXl3b3Jkczoic3ViIixlbmQ6IihcXHMqXFwoLio/XFwpKT9bO3tdIixleGNsdWRlRW5kOiEwLHJlbGV2YW5jZTo1LGNvbnRhaW5zOlthLlRJVExFX01PREVdfSx7YmVnaW46Ii1cXHdcXGIiLHJlbGV2YW5jZTowfSx7YmVnaW46Il5fX0RBVEFfXyQiLGVuZDoiXl9fRU5EX18kIixzdWJMYW5ndWFnZToibW9qb2xpY2lvdXMiLGNvbnRhaW5zOlt7YmVnaW46Il5AQC4qIixlbmQ6IiQiLGNsYXNzTmFtZToiY29tbWVudCJ9XX1dO3JldHVybiBjLmNvbnRhaW5zPVMsXy5jb250YWlucz1TLHtuYW1lOiJQZXJsIixhbGlhc2VzOlsicGwiLCJwbSJdLGtleXdvcmRzOmwsY29udGFpbnM6U319cy5leHBvcnRzPW59LDY5NTgyOmZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHIoZSl7Y29uc3QgdD17Y2xhc3NOYW1lOiJ2YXJpYWJsZSIsYmVnaW46L1wkW1x3XGQjQF1bXHdcZF9dKi99LG49e2NsYXNzTmFtZToidmFyaWFibGUiLGJlZ2luOi88KD8hXC8pLyxlbmQ6Lz4vfTtyZXR1cm57bmFtZToiUGFja2V0IEZpbHRlciBjb25maWciLGFsaWFzZXM6WyJwZi5jb25mIl0sa2V5d29yZHM6eyRwYXR0ZXJuOi9bYS16MC05Xzw+LV0rLyxidWlsdF9pbjoiYmxvY2sgbWF0Y2ggcGFzcyBsb2FkIGFuY2hvcnw1IGFudGlzcG9vZnwxMCBzZXQgdGFibGUiLGtleXdvcmQ6ImluIG91dCBsb2cgcXVpY2sgb24gcmRvbWFpbiBpbmV0IGluZXQ2IHByb3RvIGZyb20gcG9ydCBvcyB0byByb3V0ZSBhbGxvdy1vcHRzIGRpdmVydC1wYWNrZXQgZGl2ZXJ0LXJlcGx5IGRpdmVydC10byBmbGFncyBncm91cCBpY21wLXR5cGUgaWNtcDYtdHlwZSBsYWJlbCBvbmNlIHByb2JhYmlsaXR5IHJlY2lldmVkLW9uIHJ0YWJsZSBwcmlvIHF1ZXVlIHRvcyB0YWcgdGFnZ2VkIHVzZXIga2VlcCBmcmFnbWVudCBmb3Igb3MgZHJvcCBhZi10b3wxMCBiaW5hdC10b3wxMCBuYXQtdG98MTAgcmRyLXRvfDEwIGJpdG1hc2sgbGVhc3Qtc3RhdHMgcmFuZG9tIHJvdW5kLXJvYmluIHNvdXJjZS1oYXNoIHN0YXRpYy1wb3J0IGR1cC10byByZXBseS10byByb3V0ZS10byBwYXJlbnQgYmFuZHdpZHRoIGRlZmF1bHQgbWluIG1heCBxbGltaXQgYmxvY2stcG9saWN5IGRlYnVnIGZpbmdlcnByaW50cyBob3N0aWQgbGltaXQgbG9naW50ZXJmYWNlIG9wdGltaXphdGlvbiByZWFzc2VtYmxlIHJ1bGVzZXQtb3B0aW1pemF0aW9uIGJhc2ljIG5vbmUgcHJvZmlsZSBza2lwIHN0YXRlLWRlZmF1bHRzIHN0YXRlLXBvbGljeSB0aW1lb3V0IGNvbnN0IGNvdW50ZXJzIHBlcnNpc3Qgbm8gbW9kdWxhdGUgc3lucHJveHkgc3RhdGV8NSBmbG9hdGluZyBpZi1ib3VuZCBuby1zeW5jIHBmbG93fDEwIHNsb3BweSBzb3VyY2UtdHJhY2sgZ2xvYmFsIHJ1bGUgbWF4LXNyYy1ub2RlcyBtYXgtc3JjLXN0YXRlcyBtYXgtc3JjLWNvbm4gbWF4LXNyYy1jb25uLXJhdGUgb3ZlcmxvYWQgZmx1c2ggc2NydWJ8NSBtYXgtbXNzIG1pbi10dGwgbm8tZGZ8MTAgcmFuZG9tLWlkIixsaXRlcmFsOiJhbGwgYW55IG5vLXJvdXRlIHNlbGYgdXJwZi1mYWlsZWQgZWdyZXNzfDUgdW5rbm93biJ9LGNvbnRhaW5zOltlLkhBU0hfQ09NTUVOVF9NT0RFLGUuTlVNQkVSX01PREUsZS5RVU9URV9TVFJJTkdfTU9ERSx0LG5dfX1zLmV4cG9ydHM9cn0sNjI5MzpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGUpe2NvbnN0IHQ9ZS5DT01NRU5UKCItLSIsIiQiKSxuPSJbYS16QS1aX11bYS16QS1aXzAtOSRdKiIsYT0iXFwkKFthLXpBLVpfXT98W2EtekEtWl9dW2EtekEtWl8wLTldKilcXCQiLGk9Ijw8XFxzKiIrbisiXFxzKj4+IixvPSJBQk9SVCBBTFRFUiBBTkFMWVpFIEJFR0lOIENBTEwgQ0hFQ0tQT0lOVHwxMCBDTE9TRSBDTFVTVEVSIENPTU1FTlQgQ09NTUlUIENPUFkgQ1JFQVRFIERFQUxMT0NBVEUgREVDTEFSRSBERUxFVEUgRElTQ0FSRCBETyBEUk9QIEVORCBFWEVDVVRFIEVYUExBSU4gRkVUQ0ggR1JBTlQgSU1QT1JUIElOU0VSVCBMSVNURU4gTE9BRCBMT0NLIE1PVkUgTk9USUZZIFBSRVBBUkUgUkVBU1NJR058MTAgUkVGUkVTSCBSRUlOREVYIFJFTEVBU0UgUkVTRVQgUkVWT0tFIFJPTExCQUNLIFNBVkVQT0lOVCBTRUNVUklUWSBTRUxFQ1QgU0VUIFNIT1cgU1RBUlQgVFJVTkNBVEUgVU5MSVNURU58MTAgVVBEQVRFIFZBQ1VVTXwxMCBWQUxVRVMgQUdHUkVHQVRFIENPTExBVElPTiBDT05WRVJTSU9OfDEwIERBVEFCQVNFIERFRkFVTFQgUFJJVklMRUdFUyBET01BSU4gVFJJR0dFUiBFWFRFTlNJT04gRk9SRUlHTiBXUkFQUEVSfDEwIFRBQkxFIEZVTkNUSU9OIEdST1VQIExBTkdVQUdFIExBUkdFIE9CSkVDVCBNQVRFUklBTElaRUQgVklFVyBPUEVSQVRPUiBDTEFTUyBGQU1JTFkgUE9MSUNZIFBVQkxJQ0FUSU9OfDEwIFJPTEUgUlVMRSBTQ0hFTUEgU0VRVUVOQ0UgU0VSVkVSIFNUQVRJU1RJQ1MgU1VCU0NSSVBUSU9OIFNZU1RFTSBUQUJMRVNQQUNFIENPTkZJR1VSQVRJT04gRElDVElPTkFSWSBQQVJTRVIgVEVNUExBVEUgVFlQRSBVU0VSIE1BUFBJTkcgUFJFUEFSRUQgQUNDRVNTIE1FVEhPRCBDQVNUIEFTIFRSQU5TRk9STSBUUkFOU0FDVElPTiBPV05FRCBUTyBJTlRPIFNFU1NJT04gQVVUSE9SSVpBVElPTiBJTkRFWCBQUk9DRURVUkUgQVNTRVJUSU9OIEFMTCBBTkFMWVNFIEFORCBBTlkgQVJSQVkgQVNDIEFTWU1NRVRSSUN8MTAgQk9USCBDQVNFIENIRUNLIENPTExBVEUgQ09MVU1OIENPTkNVUlJFTlRMWXwxMCBDT05TVFJBSU5UIENST1NTIERFRkVSUkFCTEUgUkFOR0UgREVTQyBESVNUSU5DVCBFTFNFIEVYQ0VQVCBGT1IgRlJFRVpFfDEwIEZST00gRlVMTCBIQVZJTkcgSUxJS0UgSU4gSU5JVElBTExZIElOTkVSIElOVEVSU0VDVCBJUyBJU05VTEwgSk9JTiBMQVRFUkFMIExFQURJTkcgTElLRSBMSU1JVCBOQVRVUkFMIE5PVCBOT1ROVUxMIE5VTEwgT0ZGU0VUIE9OIE9OTFkgT1IgT1JERVIgT1VURVIgT1ZFUkxBUFMgUExBQ0lORyBQUklNQVJZIFJFRkVSRU5DRVMgUkVUVVJOSU5HIFNJTUlMQVIgU09NRSBTWU1NRVRSSUMgVEFCTEVTQU1QTEUgVEhFTiBUUkFJTElORyBVTklPTiBVTklRVUUgVVNJTkcgVkFSSUFESUN8MTAgVkVSQk9TRSBXSEVOIFdIRVJFIFdJTkRPVyBXSVRIIEJZIFJFVFVSTlMgSU5PVVQgT1VUIFNFVE9GfDEwIElGIFNUUklDVCBDVVJSRU5UIENPTlRJTlVFIE9XTkVSIExPQ0FUSU9OIE9WRVIgUEFSVElUSU9OIFdJVEhJTiBCRVRXRUVOIEVTQ0FQRSBFWFRFUk5BTCBJTlZPS0VSIERFRklORVIgV09SSyBSRU5BTUUgVkVSU0lPTiBDT05ORUNUSU9OIENPTk5FQ1QgVEFCTEVTIFRFTVAgVEVNUE9SQVJZIEZVTkNUSU9OUyBTRVFVRU5DRVMgVFlQRVMgU0NIRU1BUyBPUFRJT04gQ0FTQ0FERSBSRVNUUklDVCBBREQgQURNSU4gRVhJU1RTIFZBTElEIFZBTElEQVRFIEVOQUJMRSBESVNBQkxFIFJFUExJQ0F8MTAgQUxXQVlTIFBBU1NJTkcgQ09MVU1OUyBQQVRIIFJFRiBWQUxVRSBPVkVSUklESU5HIElNTVVUQUJMRSBTVEFCTEUgVk9MQVRJTEUgQkVGT1JFIEFGVEVSIEVBQ0ggUk9XIFBST0NFRFVSQUwgUk9VVElORSBOTyBIQU5ETEVSIFZBTElEQVRPUiBPUFRJT05TIFNUT1JBR0UgT0lEU3wxMCBXSVRIT1VUIElOSEVSSVQgREVQRU5EUyBDQUxMRUQgSU5QVVQgTEVBS1BST09GfDEwIENPU1QgUk9XUyBOT1dBSVQgU0VBUkNIIFVOVElMIEVOQ1JZUFRFRHwxMCBQQVNTV09SRCBDT05GTElDVHwxMCBJTlNURUFEIElOSEVSSVRTIENIQVJBQ1RFUklTVElDUyBXUklURSBDVVJTT1IgQUxTTyBTVEFURU1FTlQgU0hBUkUgRVhDTFVTSVZFIElOTElORSBJU09MQVRJT04gUkVQRUFUQUJMRSBSRUFEIENPTU1JVFRFRCBTRVJJQUxJWkFCTEUgVU5DT01NSVRURUQgTE9DQUwgR0xPQkFMIFNRTCBQUk9DRURVUkVTIFJFQ1VSU0lWRSBTTkFQU0hPVCBST0xMVVAgQ1VCRSBUUlVTVEVEfDEwIElOQ0xVREUgRk9MTE9XSU5HIFBSRUNFRElORyBVTkJPVU5ERUQgUkFOR0UgR1JPVVBTIFVORU5DUllQVEVEfDEwIFNZU0lEIEZPUk1BVCBERUxJTUlURVIgSEVBREVSIFFVT1RFIEVOQ09ESU5HIEZJTFRFUiBPRkYgRk9SQ0VfUVVPVEUgRk9SQ0VfTk9UX05VTEwgRk9SQ0VfTlVMTCBDT1NUUyBCVUZGRVJTIFRJTUlORyBTVU1NQVJZIERJU0FCTEVfUEFHRV9TS0lQUElORyBSRVNUQVJUIENZQ0xFIEdFTkVSQVRFRCBJREVOVElUWSBERUZFUlJFRCBJTU1FRElBVEUgTEVWRUwgTE9HR0VEIFVOTE9HR0VEIE9GIE5PVEhJTkcgTk9ORSBFWENMVURFIEFUVFJJQlVURSBVU0FHRSBST1VUSU5FUyBUUlVFIEZBTFNFIE5BTiBJTkZJTklUWSAiLGw9IlNVUEVSVVNFUiBOT1NVUEVSVVNFUiBDUkVBVEVEQiBOT0NSRUFURURCIENSRUFURVJPTEUgTk9DUkVBVEVST0xFIElOSEVSSVQgTk9JTkhFUklUIExPR0lOIE5PTE9HSU4gUkVQTElDQVRJT04gTk9SRVBMSUNBVElPTiBCWVBBU1NSTFMgTk9CWVBBU1NSTFMgIixjPSJBTElBUyBCRUdJTiBDT05TVEFOVCBERUNMQVJFIEVORCBFWENFUFRJT04gUkVUVVJOIFBFUkZPUk18MTAgUkFJU0UgR0VUIERJQUdOT1NUSUNTIFNUQUNLRUR8MTAgRk9SRUFDSCBMT09QIEVMU0lGIEVYSVQgV0hJTEUgUkVWRVJTRSBTTElDRSBERUJVRyBMT0cgSU5GTyBOT1RJQ0UgV0FSTklORyBBU1NFUlQgT1BFTiAiLF89IkJJR0lOVCBJTlQ4IEJJR1NFUklBTCBTRVJJQUw4IEJJVCBWQVJZSU5HIFZBUkJJVCBCT09MRUFOIEJPT0wgQk9YIEJZVEVBIENIQVJBQ1RFUiBDSEFSIFZBUkNIQVIgQ0lEUiBDSVJDTEUgREFURSBET1VCTEUgUFJFQ0lTSU9OIEZMT0FUOCBGTE9BVCBJTkVUIElOVEVHRVIgSU5UIElOVDQgSU5URVJWQUwgSlNPTiBKU09OQiBMSU5FIExTRUd8MTAgTUFDQUREUiBNQUNBRERSOCBNT05FWSBOVU1FUklDIERFQyBERUNJTUFMIFBBVEggUE9JTlQgUE9MWUdPTiBSRUFMIEZMT0FUNCBTTUFMTElOVCBJTlQyIFNNQUxMU0VSSUFMfDEwIFNFUklBTDJ8MTAgU0VSSUFMfDEwIFNFUklBTDR8MTAgVEVYVCBUSU1FIFpPTkUgVElNRVRafDEwIFRJTUVTVEFNUCBUSU1FU1RBTVBUWnwxMCBUU1FVRVJZfDEwIFRTVkVDVE9SfDEwIFRYSURfU05BUFNIT1R8MTAgVVVJRCBYTUwgTkFUSU9OQUwgTkNIQVIgSU5UNFJBTkdFfDEwIElOVDhSQU5HRXwxMCBOVU1SQU5HRXwxMCBUU1JBTkdFfDEwIFRTVFpSQU5HRXwxMCBEQVRFUkFOR0V8MTAgQU5ZRUxFTUVOVCBBTllBUlJBWSBBTllOT05BUlJBWSBBTllFTlVNIEFOWVJBTkdFIENTVFJJTkcgSU5URVJOQUwgUkVDT1JEIFBHX0RETF9DT01NQU5EIFZPSUQgVU5LTk9XTiBPUEFRVUUgUkVGQ1VSU09SIE5BTUUgT0lEIFJFR1BST0N8MTAgUkVHUFJPQ0VEVVJFfDEwIFJFR09QRVJ8MTAgUkVHT1BFUkFUT1J8MTAgUkVHQ0xBU1N8MTAgUkVHVFlQRXwxMCBSRUdST0xFfDEwIFJFR05BTUVTUEFDRXwxMCBSRUdDT05GSUd8MTAgUkVHRElDVElPTkFSWXwxMCAiLGQ9Xy50cmltKCkuc3BsaXQoIiAiKS5tYXAoZnVuY3Rpb24oVCl7cmV0dXJuIFQuc3BsaXQoInwiKVswXX0pLmpvaW4oInwiKSxnPSJDVVJSRU5UX1RJTUUgQ1VSUkVOVF9USU1FU1RBTVAgQ1VSUkVOVF9VU0VSIENVUlJFTlRfQ0FUQUxPR3wxMCBDVVJSRU5UX0RBVEUgTE9DQUxUSU1FIExPQ0FMVElNRVNUQU1QIENVUlJFTlRfUk9MRXwxMCBDVVJSRU5UX1NDSEVNQXwxMCBTRVNTSU9OX1VTRVIgUFVCTElDICIsRT0iRk9VTkQgTkVXIE9MRCBUR19OQU1FfDEwIFRHX1dIRU58MTAgVEdfTEVWRUx8MTAgVEdfT1B8MTAgVEdfUkVMSUR8MTAgVEdfUkVMTkFNRXwxMCBUR19UQUJMRV9OQU1FfDEwIFRHX1RBQkxFX1NDSEVNQXwxMCBUR19OQVJHU3wxMCBUR19BUkdWfDEwIFRHX0VWRU5UfDEwIFRHX1RBR3wxMCBST1dfQ09VTlQgUkVTVUxUX09JRHwxMCBQR19DT05URVhUfDEwIFJFVFVSTkVEX1NRTFNUQVRFIENPTFVNTl9OQU1FIENPTlNUUkFJTlRfTkFNRSBQR19EQVRBVFlQRV9OQU1FfDEwIE1FU1NBR0VfVEVYVCBUQUJMRV9OQU1FIFNDSEVNQV9OQU1FIFBHX0VYQ0VQVElPTl9ERVRBSUx8MTAgUEdfRVhDRVBUSU9OX0hJTlR8MTAgUEdfRVhDRVBUSU9OX0NPTlRFWFR8MTAgIix1PSJTUUxTVEFURSBTUUxFUlJNfDEwIFNVQ0NFU1NGVUxfQ09NUExFVElPTiBXQVJOSU5HIERZTkFNSUNfUkVTVUxUX1NFVFNfUkVUVVJORUQgSU1QTElDSVRfWkVST19CSVRfUEFERElORyBOVUxMX1ZBTFVFX0VMSU1JTkFURURfSU5fU0VUX0ZVTkNUSU9OIFBSSVZJTEVHRV9OT1RfR1JBTlRFRCBQUklWSUxFR0VfTk9UX1JFVk9LRUQgU1RSSU5HX0RBVEFfUklHSFRfVFJVTkNBVElPTiBERVBSRUNBVEVEX0ZFQVRVUkUgTk9fREFUQSBOT19BRERJVElPTkFMX0RZTkFNSUNfUkVTVUxUX1NFVFNfUkVUVVJORUQgU1FMX1NUQVRFTUVOVF9OT1RfWUVUX0NPTVBMRVRFIENPTk5FQ1RJT05fRVhDRVBUSU9OIENPTk5FQ1RJT05fRE9FU19OT1RfRVhJU1QgQ09OTkVDVElPTl9GQUlMVVJFIFNRTENMSUVOVF9VTkFCTEVfVE9fRVNUQUJMSVNIX1NRTENPTk5FQ1RJT04gU1FMU0VSVkVSX1JFSkVDVEVEX0VTVEFCTElTSE1FTlRfT0ZfU1FMQ09OTkVDVElPTiBUUkFOU0FDVElPTl9SRVNPTFVUSU9OX1VOS05PV04gUFJPVE9DT0xfVklPTEFUSU9OIFRSSUdHRVJFRF9BQ1RJT05fRVhDRVBUSU9OIEZFQVRVUkVfTk9UX1NVUFBPUlRFRCBJTlZBTElEX1RSQU5TQUNUSU9OX0lOSVRJQVRJT04gTE9DQVRPUl9FWENFUFRJT04gSU5WQUxJRF9MT0NBVE9SX1NQRUNJRklDQVRJT04gSU5WQUxJRF9HUkFOVE9SIElOVkFMSURfR1JBTlRfT1BFUkFUSU9OIElOVkFMSURfUk9MRV9TUEVDSUZJQ0FUSU9OIERJQUdOT1NUSUNTX0VYQ0VQVElPTiBTVEFDS0VEX0RJQUdOT1NUSUNTX0FDQ0VTU0VEX1dJVEhPVVRfQUNUSVZFX0hBTkRMRVIgQ0FTRV9OT1RfRk9VTkQgQ0FSRElOQUxJVFlfVklPTEFUSU9OIERBVEFfRVhDRVBUSU9OIEFSUkFZX1NVQlNDUklQVF9FUlJPUiBDSEFSQUNURVJfTk9UX0lOX1JFUEVSVE9JUkUgREFURVRJTUVfRklFTERfT1ZFUkZMT1cgRElWSVNJT05fQllfWkVSTyBFUlJPUl9JTl9BU1NJR05NRU5UIEVTQ0FQRV9DSEFSQUNURVJfQ09ORkxJQ1QgSU5ESUNBVE9SX09WRVJGTE9XIElOVEVSVkFMX0ZJRUxEX09WRVJGTE9XIElOVkFMSURfQVJHVU1FTlRfRk9SX0xPR0FSSVRITSBJTlZBTElEX0FSR1VNRU5UX0ZPUl9OVElMRV9GVU5DVElPTiBJTlZBTElEX0FSR1VNRU5UX0ZPUl9OVEhfVkFMVUVfRlVOQ1RJT04gSU5WQUxJRF9BUkdVTUVOVF9GT1JfUE9XRVJfRlVOQ1RJT04gSU5WQUxJRF9BUkdVTUVOVF9GT1JfV0lEVEhfQlVDS0VUX0ZVTkNUSU9OIElOVkFMSURfQ0hBUkFDVEVSX1ZBTFVFX0ZPUl9DQVNUIElOVkFMSURfREFURVRJTUVfRk9STUFUIElOVkFMSURfRVNDQVBFX0NIQVJBQ1RFUiBJTlZBTElEX0VTQ0FQRV9PQ1RFVCBJTlZBTElEX0VTQ0FQRV9TRVFVRU5DRSBOT05TVEFOREFSRF9VU0VfT0ZfRVNDQVBFX0NIQVJBQ1RFUiBJTlZBTElEX0lORElDQVRPUl9QQVJBTUVURVJfVkFMVUUgSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUgSU5WQUxJRF9SRUdVTEFSX0VYUFJFU1NJT04gSU5WQUxJRF9ST1dfQ09VTlRfSU5fTElNSVRfQ0xBVVNFIElOVkFMSURfUk9XX0NPVU5UX0lOX1JFU1VMVF9PRkZTRVRfQ0xBVVNFIElOVkFMSURfVEFCTEVTQU1QTEVfQVJHVU1FTlQgSU5WQUxJRF9UQUJMRVNBTVBMRV9SRVBFQVQgSU5WQUxJRF9USU1FX1pPTkVfRElTUExBQ0VNRU5UX1ZBTFVFIElOVkFMSURfVVNFX09GX0VTQ0FQRV9DSEFSQUNURVIgTU9TVF9TUEVDSUZJQ19UWVBFX01JU01BVENIIE5VTExfVkFMVUVfTk9UX0FMTE9XRUQgTlVMTF9WQUxVRV9OT19JTkRJQ0FUT1JfUEFSQU1FVEVSIE5VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFIFNFUVVFTkNFX0dFTkVSQVRPUl9MSU1JVF9FWENFRURFRCBTVFJJTkdfREFUQV9MRU5HVEhfTUlTTUFUQ0ggU1RSSU5HX0RBVEFfUklHSFRfVFJVTkNBVElPTiBTVUJTVFJJTkdfRVJST1IgVFJJTV9FUlJPUiBVTlRFUk1JTkFURURfQ19TVFJJTkcgWkVST19MRU5HVEhfQ0hBUkFDVEVSX1NUUklORyBGTE9BVElOR19QT0lOVF9FWENFUFRJT04gSU5WQUxJRF9URVhUX1JFUFJFU0VOVEFUSU9OIElOVkFMSURfQklOQVJZX1JFUFJFU0VOVEFUSU9OIEJBRF9DT1BZX0ZJTEVfRk9STUFUIFVOVFJBTlNMQVRBQkxFX0NIQVJBQ1RFUiBOT1RfQU5fWE1MX0RPQ1VNRU5UIElOVkFMSURfWE1MX0RPQ1VNRU5UIElOVkFMSURfWE1MX0NPTlRFTlQgSU5WQUxJRF9YTUxfQ09NTUVOVCBJTlZBTElEX1hNTF9QUk9DRVNTSU5HX0lOU1RSVUNUSU9OIElOVEVHUklUWV9DT05TVFJBSU5UX1ZJT0xBVElPTiBSRVNUUklDVF9WSU9MQVRJT04gTk9UX05VTExfVklPTEFUSU9OIEZPUkVJR05fS0VZX1ZJT0xBVElPTiBVTklRVUVfVklPTEFUSU9OIENIRUNLX1ZJT0xBVElPTiBFWENMVVNJT05fVklPTEFUSU9OIElOVkFMSURfQ1VSU09SX1NUQVRFIElOVkFMSURfVFJBTlNBQ1RJT05fU1RBVEUgQUNUSVZFX1NRTF9UUkFOU0FDVElPTiBCUkFOQ0hfVFJBTlNBQ1RJT05fQUxSRUFEWV9BQ1RJVkUgSEVMRF9DVVJTT1JfUkVRVUlSRVNfU0FNRV9JU09MQVRJT05fTEVWRUwgSU5BUFBST1BSSUFURV9BQ0NFU1NfTU9ERV9GT1JfQlJBTkNIX1RSQU5TQUNUSU9OIElOQVBQUk9QUklBVEVfSVNPTEFUSU9OX0xFVkVMX0ZPUl9CUkFOQ0hfVFJBTlNBQ1RJT04gTk9fQUNUSVZFX1NRTF9UUkFOU0FDVElPTl9GT1JfQlJBTkNIX1RSQU5TQUNUSU9OIFJFQURfT05MWV9TUUxfVFJBTlNBQ1RJT04gU0NIRU1BX0FORF9EQVRBX1NUQVRFTUVOVF9NSVhJTkdfTk9UX1NVUFBPUlRFRCBOT19BQ1RJVkVfU1FMX1RSQU5TQUNUSU9OIElOX0ZBSUxFRF9TUUxfVFJBTlNBQ1RJT04gSURMRV9JTl9UUkFOU0FDVElPTl9TRVNTSU9OX1RJTUVPVVQgSU5WQUxJRF9TUUxfU1RBVEVNRU5UX05BTUUgVFJJR0dFUkVEX0RBVEFfQ0hBTkdFX1ZJT0xBVElPTiBJTlZBTElEX0FVVEhPUklaQVRJT05fU1BFQ0lGSUNBVElPTiBJTlZBTElEX1BBU1NXT1JEIERFUEVOREVOVF9QUklWSUxFR0VfREVTQ1JJUFRPUlNfU1RJTExfRVhJU1QgREVQRU5ERU5UX09CSkVDVFNfU1RJTExfRVhJU1QgSU5WQUxJRF9UUkFOU0FDVElPTl9URVJNSU5BVElPTiBTUUxfUk9VVElORV9FWENFUFRJT04gRlVOQ1RJT05fRVhFQ1VURURfTk9fUkVUVVJOX1NUQVRFTUVOVCBNT0RJRllJTkdfU1FMX0RBVEFfTk9UX1BFUk1JVFRFRCBQUk9ISUJJVEVEX1NRTF9TVEFURU1FTlRfQVRURU1QVEVEIFJFQURJTkdfU1FMX0RBVEFfTk9UX1BFUk1JVFRFRCBJTlZBTElEX0NVUlNPUl9OQU1FIEVYVEVSTkFMX1JPVVRJTkVfRVhDRVBUSU9OIENPTlRBSU5JTkdfU1FMX05PVF9QRVJNSVRURUQgTU9ESUZZSU5HX1NRTF9EQVRBX05PVF9QRVJNSVRURUQgUFJPSElCSVRFRF9TUUxfU1RBVEVNRU5UX0FUVEVNUFRFRCBSRUFESU5HX1NRTF9EQVRBX05PVF9QRVJNSVRURUQgRVhURVJOQUxfUk9VVElORV9JTlZPQ0FUSU9OX0VYQ0VQVElPTiBJTlZBTElEX1NRTFNUQVRFX1JFVFVSTkVEIE5VTExfVkFMVUVfTk9UX0FMTE9XRUQgVFJJR0dFUl9QUk9UT0NPTF9WSU9MQVRFRCBTUkZfUFJPVE9DT0xfVklPTEFURUQgRVZFTlRfVFJJR0dFUl9QUk9UT0NPTF9WSU9MQVRFRCBTQVZFUE9JTlRfRVhDRVBUSU9OIElOVkFMSURfU0FWRVBPSU5UX1NQRUNJRklDQVRJT04gSU5WQUxJRF9DQVRBTE9HX05BTUUgSU5WQUxJRF9TQ0hFTUFfTkFNRSBUUkFOU0FDVElPTl9ST0xMQkFDSyBUUkFOU0FDVElPTl9JTlRFR1JJVFlfQ09OU1RSQUlOVF9WSU9MQVRJT04gU0VSSUFMSVpBVElPTl9GQUlMVVJFIFNUQVRFTUVOVF9DT01QTEVUSU9OX1VOS05PV04gREVBRExPQ0tfREVURUNURUQgU1lOVEFYX0VSUk9SX09SX0FDQ0VTU19SVUxFX1ZJT0xBVElPTiBTWU5UQVhfRVJST1IgSU5TVUZGSUNJRU5UX1BSSVZJTEVHRSBDQU5OT1RfQ09FUkNFIEdST1VQSU5HX0VSUk9SIFdJTkRPV0lOR19FUlJPUiBJTlZBTElEX1JFQ1VSU0lPTiBJTlZBTElEX0ZPUkVJR05fS0VZIElOVkFMSURfTkFNRSBOQU1FX1RPT19MT05HIFJFU0VSVkVEX05BTUUgREFUQVRZUEVfTUlTTUFUQ0ggSU5ERVRFUk1JTkFURV9EQVRBVFlQRSBDT0xMQVRJT05fTUlTTUFUQ0ggSU5ERVRFUk1JTkFURV9DT0xMQVRJT04gV1JPTkdfT0JKRUNUX1RZUEUgR0VORVJBVEVEX0FMV0FZUyBVTkRFRklORURfQ09MVU1OIFVOREVGSU5FRF9GVU5DVElPTiBVTkRFRklORURfVEFCTEUgVU5ERUZJTkVEX1BBUkFNRVRFUiBVTkRFRklORURfT0JKRUNUIERVUExJQ0FURV9DT0xVTU4gRFVQTElDQVRFX0NVUlNPUiBEVVBMSUNBVEVfREFUQUJBU0UgRFVQTElDQVRFX0ZVTkNUSU9OIERVUExJQ0FURV9QUkVQQVJFRF9TVEFURU1FTlQgRFVQTElDQVRFX1NDSEVNQSBEVVBMSUNBVEVfVEFCTEUgRFVQTElDQVRFX0FMSUFTIERVUExJQ0FURV9PQkpFQ1QgQU1CSUdVT1VTX0NPTFVNTiBBTUJJR1VPVVNfRlVOQ1RJT04gQU1CSUdVT1VTX1BBUkFNRVRFUiBBTUJJR1VPVVNfQUxJQVMgSU5WQUxJRF9DT0xVTU5fUkVGRVJFTkNFIElOVkFMSURfQ09MVU1OX0RFRklOSVRJT04gSU5WQUxJRF9DVVJTT1JfREVGSU5JVElPTiBJTlZBTElEX0RBVEFCQVNFX0RFRklOSVRJT04gSU5WQUxJRF9GVU5DVElPTl9ERUZJTklUSU9OIElOVkFMSURfUFJFUEFSRURfU1RBVEVNRU5UX0RFRklOSVRJT04gSU5WQUxJRF9TQ0hFTUFfREVGSU5JVElPTiBJTlZBTElEX1RBQkxFX0RFRklOSVRJT04gSU5WQUxJRF9PQkpFQ1RfREVGSU5JVElPTiBXSVRIX0NIRUNLX09QVElPTl9WSU9MQVRJT04gSU5TVUZGSUNJRU5UX1JFU09VUkNFUyBESVNLX0ZVTEwgT1VUX09GX01FTU9SWSBUT09fTUFOWV9DT05ORUNUSU9OUyBDT05GSUdVUkFUSU9OX0xJTUlUX0VYQ0VFREVEIFBST0dSQU1fTElNSVRfRVhDRUVERUQgU1RBVEVNRU5UX1RPT19DT01QTEVYIFRPT19NQU5ZX0NPTFVNTlMgVE9PX01BTllfQVJHVU1FTlRTIE9CSkVDVF9OT1RfSU5fUFJFUkVRVUlTSVRFX1NUQVRFIE9CSkVDVF9JTl9VU0UgQ0FOVF9DSEFOR0VfUlVOVElNRV9QQVJBTSBMT0NLX05PVF9BVkFJTEFCTEUgT1BFUkFUT1JfSU5URVJWRU5USU9OIFFVRVJZX0NBTkNFTEVEIEFETUlOX1NIVVRET1dOIENSQVNIX1NIVVRET1dOIENBTk5PVF9DT05ORUNUX05PVyBEQVRBQkFTRV9EUk9QUEVEIFNZU1RFTV9FUlJPUiBJT19FUlJPUiBVTkRFRklORURfRklMRSBEVVBMSUNBVEVfRklMRSBTTkFQU0hPVF9UT09fT0xEIENPTkZJR19GSUxFX0VSUk9SIExPQ0tfRklMRV9FWElTVFMgRkRXX0VSUk9SIEZEV19DT0xVTU5fTkFNRV9OT1RfRk9VTkQgRkRXX0RZTkFNSUNfUEFSQU1FVEVSX1ZBTFVFX05FRURFRCBGRFdfRlVOQ1RJT05fU0VRVUVOQ0VfRVJST1IgRkRXX0lOQ09OU0lTVEVOVF9ERVNDUklQVE9SX0lORk9STUFUSU9OIEZEV19JTlZBTElEX0FUVFJJQlVURV9WQUxVRSBGRFdfSU5WQUxJRF9DT0xVTU5fTkFNRSBGRFdfSU5WQUxJRF9DT0xVTU5fTlVNQkVSIEZEV19JTlZBTElEX0RBVEFfVFlQRSBGRFdfSU5WQUxJRF9EQVRBX1RZUEVfREVTQ1JJUFRPUlMgRkRXX0lOVkFMSURfREVTQ1JJUFRPUl9GSUVMRF9JREVOVElGSUVSIEZEV19JTlZBTElEX0hBTkRMRSBGRFdfSU5WQUxJRF9PUFRJT05fSU5ERVggRkRXX0lOVkFMSURfT1BUSU9OX05BTUUgRkRXX0lOVkFMSURfU1RSSU5HX0xFTkdUSF9PUl9CVUZGRVJfTEVOR1RIIEZEV19JTlZBTElEX1NUUklOR19GT1JNQVQgRkRXX0lOVkFMSURfVVNFX09GX05VTExfUE9JTlRFUiBGRFdfVE9PX01BTllfSEFORExFUyBGRFdfT1VUX09GX01FTU9SWSBGRFdfTk9fU0NIRU1BUyBGRFdfT1BUSU9OX05BTUVfTk9UX0ZPVU5EIEZEV19SRVBMWV9IQU5ETEUgRkRXX1NDSEVNQV9OT1RfRk9VTkQgRkRXX1RBQkxFX05PVF9GT1VORCBGRFdfVU5BQkxFX1RPX0NSRUFURV9FWEVDVVRJT04gRkRXX1VOQUJMRV9UT19DUkVBVEVfUkVQTFkgRkRXX1VOQUJMRV9UT19FU1RBQkxJU0hfQ09OTkVDVElPTiBQTFBHU1FMX0VSUk9SIFJBSVNFX0VYQ0VQVElPTiBOT19EQVRBX0ZPVU5EIFRPT19NQU5ZX1JPV1MgQVNTRVJUX0ZBSUxVUkUgSU5URVJOQUxfRVJST1IgREFUQV9DT1JSVVBURUQgSU5ERVhfQ09SUlVQVEVEICIsUz0iQVJSQVlfQUdHIEFWRyBCSVRfQU5EIEJJVF9PUiBCT09MX0FORCBCT09MX09SIENPVU5UIEVWRVJZIEpTT05fQUdHIEpTT05CX0FHRyBKU09OX09CSkVDVF9BR0cgSlNPTkJfT0JKRUNUX0FHRyBNQVggTUlOIE1PREUgU1RSSU5HX0FHRyBTVU0gWE1MQUdHIENPUlIgQ09WQVJfUE9QIENPVkFSX1NBTVAgUkVHUl9BVkdYIFJFR1JfQVZHWSBSRUdSX0NPVU5UIFJFR1JfSU5URVJDRVBUIFJFR1JfUjIgUkVHUl9TTE9QRSBSRUdSX1NYWCBSRUdSX1NYWSBSRUdSX1NZWSBTVERERVYgU1REREVWX1BPUCBTVERERVZfU0FNUCBWQVJJQU5DRSBWQVJfUE9QIFZBUl9TQU1QIFBFUkNFTlRJTEVfQ09OVCBQRVJDRU5USUxFX0RJU0MgUk9XX05VTUJFUiBSQU5LIERFTlNFX1JBTksgUEVSQ0VOVF9SQU5LIENVTUVfRElTVCBOVElMRSBMQUcgTEVBRCBGSVJTVF9WQUxVRSBMQVNUX1ZBTFVFIE5USF9WQUxVRSBOVU1fTk9OTlVMTFMgTlVNX05VTExTIEFCUyBDQlJUIENFSUwgQ0VJTElORyBERUdSRUVTIERJViBFWFAgRkxPT1IgTE4gTE9HIE1PRCBQSSBQT1dFUiBSQURJQU5TIFJPVU5EIFNDQUxFIFNJR04gU1FSVCBUUlVOQyBXSURUSF9CVUNLRVQgUkFORE9NIFNFVFNFRUQgQUNPUyBBQ09TRCBBU0lOIEFTSU5EIEFUQU4gQVRBTkQgQVRBTjIgQVRBTjJEIENPUyBDT1NEIENPVCBDT1REIFNJTiBTSU5EIFRBTiBUQU5EIEJJVF9MRU5HVEggQ0hBUl9MRU5HVEggQ0hBUkFDVEVSX0xFTkdUSCBMT1dFUiBPQ1RFVF9MRU5HVEggT1ZFUkxBWSBQT1NJVElPTiBTVUJTVFJJTkcgVFJFQVQgVFJJTSBVUFBFUiBBU0NJSSBCVFJJTSBDSFIgQ09OQ0FUIENPTkNBVF9XUyBDT05WRVJUIENPTlZFUlRfRlJPTSBDT05WRVJUX1RPIERFQ09ERSBFTkNPREUgSU5JVENBUCBMRUZUIExFTkdUSCBMUEFEIExUUklNIE1ENSBQQVJTRV9JREVOVCBQR19DTElFTlRfRU5DT0RJTkcgUVVPVEVfSURFTlR8MTAgUVVPVEVfTElURVJBTHwxMCBRVU9URV9OVUxMQUJMRXwxMCBSRUdFWFBfTUFUQ0ggUkVHRVhQX01BVENIRVMgUkVHRVhQX1JFUExBQ0UgUkVHRVhQX1NQTElUX1RPX0FSUkFZIFJFR0VYUF9TUExJVF9UT19UQUJMRSBSRVBFQVQgUkVQTEFDRSBSRVZFUlNFIFJJR0hUIFJQQUQgUlRSSU0gU1BMSVRfUEFSVCBTVFJQT1MgU1VCU1RSIFRPX0FTQ0lJIFRPX0hFWCBUUkFOU0xBVEUgT0NURVRfTEVOR1RIIEdFVF9CSVQgR0VUX0JZVEUgU0VUX0JJVCBTRVRfQllURSBUT19DSEFSIFRPX0RBVEUgVE9fTlVNQkVSIFRPX1RJTUVTVEFNUCBBR0UgQ0xPQ0tfVElNRVNUQU1QfDEwIERBVEVfUEFSVCBEQVRFX1RSVU5DIElTRklOSVRFIEpVU1RJRllfREFZUyBKVVNUSUZZX0hPVVJTIEpVU1RJRllfSU5URVJWQUwgTUFLRV9EQVRFIE1BS0VfSU5URVJWQUx8MTAgTUFLRV9USU1FIE1BS0VfVElNRVNUQU1QfDEwIE1BS0VfVElNRVNUQU1QVFp8MTAgTk9XIFNUQVRFTUVOVF9USU1FU1RBTVB8MTAgVElNRU9GREFZIFRSQU5TQUNUSU9OX1RJTUVTVEFNUHwxMCBFTlVNX0ZJUlNUIEVOVU1fTEFTVCBFTlVNX1JBTkdFIEFSRUEgQ0VOVEVSIERJQU1FVEVSIEhFSUdIVCBJU0NMT1NFRCBJU09QRU4gTlBPSU5UUyBQQ0xPU0UgUE9QRU4gUkFESVVTIFdJRFRIIEJPWCBCT1VORF9CT1ggQ0lSQ0xFIExJTkUgTFNFRyBQQVRIIFBPTFlHT04gQUJCUkVWIEJST0FEQ0FTVCBIT1NUIEhPU1RNQVNLIE1BU0tMRU4gTkVUTUFTSyBORVRXT1JLIFNFVF9NQVNLTEVOIFRFWFQgSU5FVF9TQU1FX0ZBTUlMWSBJTkVUX01FUkdFIE1BQ0FERFI4X1NFVDdCSVQgQVJSQVlfVE9fVFNWRUNUT1IgR0VUX0NVUlJFTlRfVFNfQ09ORklHIE5VTU5PREUgUExBSU5UT19UU1FVRVJZIFBIUkFTRVRPX1RTUVVFUlkgV0VCU0VBUkNIX1RPX1RTUVVFUlkgUVVFUllUUkVFIFNFVFdFSUdIVCBTVFJJUCBUT19UU1FVRVJZIFRPX1RTVkVDVE9SIEpTT05fVE9fVFNWRUNUT1IgSlNPTkJfVE9fVFNWRUNUT1IgVFNfREVMRVRFIFRTX0ZJTFRFUiBUU19IRUFETElORSBUU19SQU5LIFRTX1JBTktfQ0QgVFNfUkVXUklURSBUU1FVRVJZX1BIUkFTRSBUU1ZFQ1RPUl9UT19BUlJBWSBUU1ZFQ1RPUl9VUERBVEVfVFJJR0dFUiBUU1ZFQ1RPUl9VUERBVEVfVFJJR0dFUl9DT0xVTU4gWE1MQ09NTUVOVCBYTUxDT05DQVQgWE1MRUxFTUVOVCBYTUxGT1JFU1QgWE1MUEkgWE1MUk9PVCBYTUxFWElTVFMgWE1MX0lTX1dFTExfRk9STUVEIFhNTF9JU19XRUxMX0ZPUk1FRF9ET0NVTUVOVCBYTUxfSVNfV0VMTF9GT1JNRURfQ09OVEVOVCBYUEFUSCBYUEFUSF9FWElTVFMgWE1MVEFCTEUgWE1MTkFNRVNQQUNFUyBUQUJMRV9UT19YTUwgVEFCTEVfVE9fWE1MU0NIRU1BIFRBQkxFX1RPX1hNTF9BTkRfWE1MU0NIRU1BIFFVRVJZX1RPX1hNTCBRVUVSWV9UT19YTUxTQ0hFTUEgUVVFUllfVE9fWE1MX0FORF9YTUxTQ0hFTUEgQ1VSU09SX1RPX1hNTCBDVVJTT1JfVE9fWE1MU0NIRU1BIFNDSEVNQV9UT19YTUwgU0NIRU1BX1RPX1hNTFNDSEVNQSBTQ0hFTUFfVE9fWE1MX0FORF9YTUxTQ0hFTUEgREFUQUJBU0VfVE9fWE1MIERBVEFCQVNFX1RPX1hNTFNDSEVNQSBEQVRBQkFTRV9UT19YTUxfQU5EX1hNTFNDSEVNQSBYTUxBVFRSSUJVVEVTIFRPX0pTT04gVE9fSlNPTkIgQVJSQVlfVE9fSlNPTiBST1dfVE9fSlNPTiBKU09OX0JVSUxEX0FSUkFZIEpTT05CX0JVSUxEX0FSUkFZIEpTT05fQlVJTERfT0JKRUNUIEpTT05CX0JVSUxEX09CSkVDVCBKU09OX09CSkVDVCBKU09OQl9PQkpFQ1QgSlNPTl9BUlJBWV9MRU5HVEggSlNPTkJfQVJSQVlfTEVOR1RIIEpTT05fRUFDSCBKU09OQl9FQUNIIEpTT05fRUFDSF9URVhUIEpTT05CX0VBQ0hfVEVYVCBKU09OX0VYVFJBQ1RfUEFUSCBKU09OQl9FWFRSQUNUX1BBVEggSlNPTl9PQkpFQ1RfS0VZUyBKU09OQl9PQkpFQ1RfS0VZUyBKU09OX1BPUFVMQVRFX1JFQ09SRCBKU09OQl9QT1BVTEFURV9SRUNPUkQgSlNPTl9QT1BVTEFURV9SRUNPUkRTRVQgSlNPTkJfUE9QVUxBVEVfUkVDT1JEU0VUIEpTT05fQVJSQVlfRUxFTUVOVFMgSlNPTkJfQVJSQVlfRUxFTUVOVFMgSlNPTl9BUlJBWV9FTEVNRU5UU19URVhUIEpTT05CX0FSUkFZX0VMRU1FTlRTX1RFWFQgSlNPTl9UWVBFT0YgSlNPTkJfVFlQRU9GIEpTT05fVE9fUkVDT1JEIEpTT05CX1RPX1JFQ09SRCBKU09OX1RPX1JFQ09SRFNFVCBKU09OQl9UT19SRUNPUkRTRVQgSlNPTl9TVFJJUF9OVUxMUyBKU09OQl9TVFJJUF9OVUxMUyBKU09OQl9TRVQgSlNPTkJfSU5TRVJUIEpTT05CX1BSRVRUWSBDVVJSVkFMIExBU1RWQUwgTkVYVFZBTCBTRVRWQUwgQ09BTEVTQ0UgTlVMTElGIEdSRUFURVNUIExFQVNUIEFSUkFZX0FQUEVORCBBUlJBWV9DQVQgQVJSQVlfTkRJTVMgQVJSQVlfRElNUyBBUlJBWV9GSUxMIEFSUkFZX0xFTkdUSCBBUlJBWV9MT1dFUiBBUlJBWV9QT1NJVElPTiBBUlJBWV9QT1NJVElPTlMgQVJSQVlfUFJFUEVORCBBUlJBWV9SRU1PVkUgQVJSQVlfUkVQTEFDRSBBUlJBWV9UT19TVFJJTkcgQVJSQVlfVVBQRVIgQ0FSRElOQUxJVFkgU1RSSU5HX1RPX0FSUkFZIFVOTkVTVCBJU0VNUFRZIExPV0VSX0lOQyBVUFBFUl9JTkMgTE9XRVJfSU5GIFVQUEVSX0lORiBSQU5HRV9NRVJHRSBHRU5FUkFURV9TRVJJRVMgR0VORVJBVEVfU1VCU0NSSVBUUyBDVVJSRU5UX0RBVEFCQVNFIENVUlJFTlRfUVVFUlkgQ1VSUkVOVF9TQ0hFTUF8MTAgQ1VSUkVOVF9TQ0hFTUFTfDEwIElORVRfQ0xJRU5UX0FERFIgSU5FVF9DTElFTlRfUE9SVCBJTkVUX1NFUlZFUl9BRERSIElORVRfU0VSVkVSX1BPUlQgUk9XX1NFQ1VSSVRZX0FDVElWRSBGT1JNQVRfVFlQRSBUT19SRUdDTEFTUyBUT19SRUdQUk9DIFRPX1JFR1BST0NFRFVSRSBUT19SRUdPUEVSIFRPX1JFR09QRVJBVE9SIFRPX1JFR1RZUEUgVE9fUkVHTkFNRVNQQUNFIFRPX1JFR1JPTEUgQ09MX0RFU0NSSVBUSU9OIE9CSl9ERVNDUklQVElPTiBTSE9CSl9ERVNDUklQVElPTiBUWElEX0NVUlJFTlQgVFhJRF9DVVJSRU5UX0lGX0FTU0lHTkVEIFRYSURfQ1VSUkVOVF9TTkFQU0hPVCBUWElEX1NOQVBTSE9UX1hJUCBUWElEX1NOQVBTSE9UX1hNQVggVFhJRF9TTkFQU0hPVF9YTUlOIFRYSURfVklTSUJMRV9JTl9TTkFQU0hPVCBUWElEX1NUQVRVUyBDVVJSRU5UX1NFVFRJTkcgU0VUX0NPTkZJRyBCUklOX1NVTU1BUklaRV9ORVdfVkFMVUVTIEJSSU5fU1VNTUFSSVpFX1JBTkdFIEJSSU5fREVTVU1NQVJJWkVfUkFOR0UgR0lOX0NMRUFOX1BFTkRJTkdfTElTVCBTVVBQUkVTU19SRURVTkRBTlRfVVBEQVRFU19UUklHR0VSIExPX0ZST01fQllURUEgTE9fUFVUIExPX0dFVCBMT19DUkVBVCBMT19DUkVBVEUgTE9fVU5MSU5LIExPX0lNUE9SVCBMT19FWFBPUlQgTE9SRUFEIExPV1JJVEUgR1JPVVBJTkcgQ0FTVCAiLnRyaW0oKS5zcGxpdCgiICIpLm1hcChmdW5jdGlvbihUKXtyZXR1cm4gVC5zcGxpdCgifCIpWzBdfSkuam9pbigifCIpO3JldHVybntuYW1lOiJQb3N0Z3JlU1FMIixhbGlhc2VzOlsicG9zdGdyZXMiLCJwb3N0Z3Jlc3FsIl0sY2FzZV9pbnNlbnNpdGl2ZTohMCxrZXl3b3Jkczp7a2V5d29yZDpvK2MrbCxidWlsdF9pbjpnK0UrdX0saWxsZWdhbDovOj09fFxXXHMqXChcKnwoXnxccylcJFthLXpdfFx7XHt8W2Etel06XHMqJHxcLlwuXC58VE86fERPOi8sY29udGFpbnM6W3tjbGFzc05hbWU6ImtleXdvcmQiLHZhcmlhbnRzOlt7YmVnaW46L1xiVEVYVFxzKlNFQVJDSFxiL30se2JlZ2luOi9cYihQUklNQVJZfEZPUkVJR058Rk9SKFxzK05PKT8pXHMrS0VZXGIvfSx7YmVnaW46L1xiUEFSQUxMRUxccysoVU5TQUZFfFJFU1RSSUNURUR8U0FGRSlcYi99LHtiZWdpbjovXGJTVE9SQUdFXHMrKFBMQUlOfEVYVEVSTkFMfEVYVEVOREVEfE1BSU4pXGIvfSx7YmVnaW46L1xiTUFUQ0hccysoRlVMTHxQQVJUSUFMfFNJTVBMRSlcYi99LHtiZWdpbjovXGJOVUxMU1xzKyhGSVJTVHxMQVNUKVxiL30se2JlZ2luOi9cYkVWRU5UXHMrVFJJR0dFUlxiL30se2JlZ2luOi9cYihNQVBQSU5HfE9SKVxzK1JFUExBQ0VcYi99LHtiZWdpbjovXGIoRlJPTXxUTylccysoUFJPR1JBTXxTVERJTnxTVERPVVQpXGIvfSx7YmVnaW46L1xiKFNIQVJFfEVYQ0xVU0lWRSlccytNT0RFXGIvfSx7YmVnaW46L1xiKExFRlR8UklHSFQpXHMrKE9VVEVSXHMrKT9KT0lOXGIvfSx7YmVnaW46L1xiKEZFVENIfE1PVkUpXHMrKE5FWFR8UFJJT1J8RklSU1R8TEFTVHxBQlNPTFVURXxSRUxBVElWRXxGT1JXQVJEfEJBQ0tXQVJEKVxiL30se2JlZ2luOi9cYlBSRVNFUlZFXHMrUk9XU1xiL30se2JlZ2luOi9cYkRJU0NBUkRccytQTEFOU1xiL30se2JlZ2luOi9cYlJFRkVSRU5DSU5HXHMrKE9MRHxORVcpXGIvfSx7YmVnaW46L1xiU0tJUFxzK0xPQ0tFRFxiL30se2JlZ2luOi9cYkdST1VQSU5HXHMrU0VUU1xiL30se2JlZ2luOi9cYihCSU5BUll8SU5TRU5TSVRJVkV8U0NST0xMfE5PXHMrU0NST0xMKVxzKyhDVVJTT1J8Rk9SKVxiL30se2JlZ2luOi9cYihXSVRIfFdJVEhPVVQpXHMrSE9MRFxiL30se2JlZ2luOi9cYldJVEhccysoQ0FTQ0FERUR8TE9DQUwpXHMrQ0hFQ0tccytPUFRJT05cYi99LHtiZWdpbjovXGJFWENMVURFXHMrKFRJRVN8Tk9ccytPVEhFUlMpXGIvfSx7YmVnaW46L1xiRk9STUFUXHMrKFRFWFR8WE1MfEpTT058WUFNTClcYi99LHtiZWdpbjovXGJTRVRccysoKFNFU1NJT058TE9DQUwpXHMrKT9OQU1FU1xiL30se2JlZ2luOi9cYklTXHMrKE5PVFxzKyk/VU5LTk9XTlxiL30se2JlZ2luOi9cYlNFQ1VSSVRZXHMrTEFCRUxcYi99LHtiZWdpbjovXGJTVEFOREFMT05FXHMrKFlFU3xOT3xOT1xzK1ZBTFVFKVxiL30se2JlZ2luOi9cYldJVEhccysoTk9ccyspP0RBVEFcYi99LHtiZWdpbjovXGIoRk9SRUlHTnxTRVQpXHMrREFUQVxiL30se2JlZ2luOi9cYlNFVFxzKyhDQVRBTE9HfENPTlNUUkFJTlRTKVxiL30se2JlZ2luOi9cYihXSVRIfEZPUilccytPUkRJTkFMSVRZXGIvfSx7YmVnaW46L1xiSVNccysoTk9UXHMrKT9ET0NVTUVOVFxiL30se2JlZ2luOi9cYlhNTFxzK09QVElPTlxzKyhET0NVTUVOVHxDT05URU5UKVxiL30se2JlZ2luOi9cYihTVFJJUHxQUkVTRVJWRSlccytXSElURVNQQUNFXGIvfSx7YmVnaW46L1xiTk9ccysoQUNUSU9OfE1BWFZBTFVFfE1JTlZBTFVFKVxiL30se2JlZ2luOi9cYlBBUlRJVElPTlxzK0JZXHMrKFJBTkdFfExJU1R8SEFTSClcYi99LHtiZWdpbjovXGJBVFxzK1RJTUVccytaT05FXGIvfSx7YmVnaW46L1xiR1JBTlRFRFxzK0JZXGIvfSx7YmVnaW46L1xiUkVUVVJOXHMrKFFVRVJZfE5FWFQpXGIvfSx7YmVnaW46L1xiKEFUVEFDSHxERVRBQ0gpXHMrUEFSVElUSU9OXGIvfSx7YmVnaW46L1xiRk9SQ0VccytST1dccytMRVZFTFxzK1NFQ1VSSVRZXGIvfSx7YmVnaW46L1xiKElOQ0xVRElOR3xFWENMVURJTkcpXHMrKENPTU1FTlRTfENPTlNUUkFJTlRTfERFRkFVTFRTfElERU5USVRZfElOREVYRVN8U1RBVElTVElDU3xTVE9SQUdFfEFMTClcYi99LHtiZWdpbjovXGJBU1xzKyhBU1NJR05NRU5UfElNUExJQ0lUfFBFUk1JU1NJVkV8UkVTVFJJQ1RJVkV8RU5VTXxSQU5HRSlcYi99XX0se2JlZ2luOi9cYihGT1JNQVR8RkFNSUxZfFZFUlNJT04pXHMqXCgvfSx7YmVnaW46L1xiSU5DTFVERVxzKlwoLyxrZXl3b3JkczoiSU5DTFVERSJ9LHtiZWdpbjovXGJSQU5HRSg/IVxzKihCRVRXRUVOfFVOQk9VTkRFRHxDVVJSRU5UfFstMC05XSspKS99LHtiZWdpbjovXGIoVkVSU0lPTnxPV05FUnxURU1QTEFURXxUQUJMRVNQQUNFfENPTk5FQ1RJT05ccytMSU1JVHxQUk9DRURVUkV8UkVTVFJJQ1R8Sk9JTnxQQVJTRVJ8Q09QWXxTVEFSVHxFTkR8Q09MTEFUSU9OfElOUFVUfEFOQUxZWkV8U1RPUkFHRXxMSUtFfERFRkFVTFR8REVMSU1JVEVSfEVOQ09ESU5HfENPTFVNTnxDT05TVFJBSU5UfFRBQkxFfFNDSEVNQSlccyo9L30se2JlZ2luOi9cYihQR19cdys/fEhBU19bQS1aX10rX1BSSVZJTEVHRSlcYi8scmVsZXZhbmNlOjEwfSx7YmVnaW46L1xiRVhUUkFDVFxzKlwoLyxlbmQ6L1xiRlJPTVxiLyxyZXR1cm5FbmQ6ITAsa2V5d29yZHM6e3R5cGU6IkNFTlRVUlkgREFZIERFQ0FERSBET1cgRE9ZIEVQT0NIIEhPVVIgSVNPRE9XIElTT1lFQVIgTUlDUk9TRUNPTkRTIE1JTExFTk5JVU0gTUlMTElTRUNPTkRTIE1JTlVURSBNT05USCBRVUFSVEVSIFNFQ09ORCBUSU1FWk9ORSBUSU1FWk9ORV9IT1VSIFRJTUVaT05FX01JTlVURSBXRUVLIFlFQVIifX0se2JlZ2luOi9cYihYTUxFTEVNRU5UfFhNTFBJKVxzKlwoXHMqTkFNRS8sa2V5d29yZHM6e2tleXdvcmQ6Ik5BTUUifX0se2JlZ2luOi9cYihYTUxQQVJTRXxYTUxTRVJJQUxJWkUpXHMqXChccyooRE9DVU1FTlR8Q09OVEVOVCkvLGtleXdvcmRzOntrZXl3b3JkOiJET0NVTUVOVCBDT05URU5UIn19LHtiZWdpbktleXdvcmRzOiJDQUNIRSBJTkNSRU1FTlQgTUFYVkFMVUUgTUlOVkFMVUUiLGVuZDplLkNfTlVNQkVSX1JFLHJldHVybkVuZDohMCxrZXl3b3JkczoiQlkgQ0FDSEUgSU5DUkVNRU5UIE1BWFZBTFVFIE1JTlZBTFVFIn0se2NsYXNzTmFtZToidHlwZSIsYmVnaW46L1xiKFdJVEh8V0lUSE9VVClccytUSU1FXHMrWk9ORVxiL30se2NsYXNzTmFtZToidHlwZSIsYmVnaW46L1xiSU5URVJWQUxccysoWUVBUnxNT05USHxEQVl8SE9VUnxNSU5VVEV8U0VDT05EKShccytUT1xzKyhNT05USHxIT1VSfE1JTlVURXxTRUNPTkQpKT9cYi99LHtiZWdpbjovXGJSRVRVUk5TXHMrKExBTkdVQUdFX0hBTkRMRVJ8VFJJR0dFUnxFVkVOVF9UUklHR0VSfEZEV19IQU5ETEVSfElOREVYX0FNX0hBTkRMRVJ8VFNNX0hBTkRMRVIpXGIvLGtleXdvcmRzOntrZXl3b3JkOiJSRVRVUk5TIix0eXBlOiJMQU5HVUFHRV9IQU5ETEVSIFRSSUdHRVIgRVZFTlRfVFJJR0dFUiBGRFdfSEFORExFUiBJTkRFWF9BTV9IQU5ETEVSIFRTTV9IQU5ETEVSIn19LHtiZWdpbjoiXFxiKCIrUysiKVxccypcXCgifSx7YmVnaW46IlxcLigiK2QrIilcXGIifSx7YmVnaW46IlxcYigiK2QrIilcXHMrUEFUSFxcYiIsa2V5d29yZHM6e2tleXdvcmQ6IlBBVEgiLHR5cGU6Xy5yZXBsYWNlKCJQQVRIICIsIiIpfX0se2NsYXNzTmFtZToidHlwZSIsYmVnaW46IlxcYigiK2QrIilcXGIifSx7Y2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOiInIixlbmQ6IiciLGNvbnRhaW5zOlt7YmVnaW46IicnIn1dfSx7Y2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOiIoZXxFfHUmfFUmKSciLGVuZDoiJyIsY29udGFpbnM6W3tiZWdpbjoiXFxcXC4ifV0scmVsZXZhbmNlOjEwfSxlLkVORF9TQU1FX0FTX0JFR0lOKHtiZWdpbjphLGVuZDphLGNvbnRhaW5zOlt7c3ViTGFuZ3VhZ2U6WyJwZ3NxbCIsInBlcmwiLCJweXRob24iLCJ0Y2wiLCJyIiwibHVhIiwiamF2YSIsInBocCIsInJ1YnkiLCJiYXNoIiwic2NoZW1lIiwieG1sIiwianNvbiJdLGVuZHNXaXRoUGFyZW50OiEwfV19KSx7YmVnaW46JyInLGVuZDonIicsY29udGFpbnM6W3tiZWdpbjonIiInfV19LGUuQ19OVU1CRVJfTU9ERSxlLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLHQse2NsYXNzTmFtZToibWV0YSIsdmFyaWFudHM6W3tiZWdpbjoiJShST1cpP1RZUEUiLHJlbGV2YW5jZToxMH0se2JlZ2luOiJcXCRcXGQrIn0se2JlZ2luOiJeI1xcdyIsZW5kOiIkIn1dfSx7Y2xhc3NOYW1lOiJzeW1ib2wiLGJlZ2luOmkscmVsZXZhbmNlOjEwfV19fXMuZXhwb3J0cz1yfSwyMzU0MjpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGUpe3JldHVybntuYW1lOiJQSFAgdGVtcGxhdGUiLHN1Ykxhbmd1YWdlOiJ4bWwiLGNvbnRhaW5zOlt7YmVnaW46LzxcPyhwaHB8PSk/LyxlbmQ6L1w/Pi8sc3ViTGFuZ3VhZ2U6InBocCIsY29udGFpbnM6W3tiZWdpbjoiL1xcKiIsZW5kOiJcXCovIixza2lwOiEwfSx7YmVnaW46J2IiJyxlbmQ6JyInLHNraXA6ITB9LHtiZWdpbjoiYiciLGVuZDoiJyIsc2tpcDohMH0sZS5pbmhlcml0KGUuQVBPU19TVFJJTkdfTU9ERSx7aWxsZWdhbDpudWxsLGNsYXNzTmFtZTpudWxsLGNvbnRhaW5zOm51bGwsc2tpcDohMH0pLGUuaW5oZXJpdChlLlFVT1RFX1NUUklOR19NT0RFLHtpbGxlZ2FsOm51bGwsY2xhc3NOYW1lOm51bGwsY29udGFpbnM6bnVsbCxza2lwOiEwfSldfV19fXMuZXhwb3J0cz1yfSwxNTAzOTpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGUpe2NvbnN0IHQ9e2NsYXNzTmFtZToidmFyaWFibGUiLGJlZ2luOiJcXCQrW2EtekEtWl9ceDdGLVx4RkZdW2EtekEtWjAtOV9ceDdGLVx4RkZdKig/IVtBLVphLXowLTldKSg/IVskXSkifSxuPXtjbGFzc05hbWU6Im1ldGEiLHZhcmlhbnRzOlt7YmVnaW46LzxcP3BocC8scmVsZXZhbmNlOjEwfSx7YmVnaW46LzxcP1s9XT8vfSx7YmVnaW46L1w/Pi99XX0sYT17Y2xhc3NOYW1lOiJzdWJzdCIsdmFyaWFudHM6W3tiZWdpbjovXCRcdysvfSx7YmVnaW46L1x7XCQvLGVuZDovXH0vfV19LGk9ZS5pbmhlcml0KGUuQVBPU19TVFJJTkdfTU9ERSx7aWxsZWdhbDpudWxsfSksbz1lLmluaGVyaXQoZS5RVU9URV9TVFJJTkdfTU9ERSx7aWxsZWdhbDpudWxsLGNvbnRhaW5zOmUuUVVPVEVfU1RSSU5HX01PREUuY29udGFpbnMuY29uY2F0KGEpfSksbD1lLkVORF9TQU1FX0FTX0JFR0lOKHtiZWdpbjovPDw8WyBcdF0qKFx3Kylcbi8sZW5kOi9bIFx0XSooXHcrKVxiLyxjb250YWluczplLlFVT1RFX1NUUklOR19NT0RFLmNvbnRhaW5zLmNvbmNhdChhKX0pLGM9e2NsYXNzTmFtZToic3RyaW5nIixjb250YWluczpbZS5CQUNLU0xBU0hfRVNDQVBFLG5dLHZhcmlhbnRzOltlLmluaGVyaXQoaSx7YmVnaW46ImInIixlbmQ6IicifSksZS5pbmhlcml0KG8se2JlZ2luOidiIicsZW5kOiciJ30pLG8saSxsXX0sXz17Y2xhc3NOYW1lOiJudW1iZXIiLHZhcmlhbnRzOlt7YmVnaW46IlxcYjBiWzAxXSsoPzpfWzAxXSspKlxcYiJ9LHtiZWdpbjoiXFxiMG9bMC03XSsoPzpfWzAtN10rKSpcXGIifSx7YmVnaW46IlxcYjB4W1xcZGEtZl0rKD86X1tcXGRhLWZdKykqXFxiIn0se2JlZ2luOiIoPzpcXGJcXGQrKD86X1xcZCspKihcXC4oPzpcXGQrKD86X1xcZCspKikpP3xcXEJcXC5cXGQrKSg/OmVbKy1dP1xcZCspPyJ9XSxyZWxldmFuY2U6MH0sZD17a2V5d29yZDoiX19DTEFTU19fIF9fRElSX18gX19GSUxFX18gX19GVU5DVElPTl9fIF9fTElORV9fIF9fTUVUSE9EX18gX19OQU1FU1BBQ0VfXyBfX1RSQUlUX18gZGllIGVjaG8gZXhpdCBpbmNsdWRlIGluY2x1ZGVfb25jZSBwcmludCByZXF1aXJlIHJlcXVpcmVfb25jZSBhcnJheSBhYnN0cmFjdCBhbmQgYXMgYmluYXJ5IGJvb2wgYm9vbGVhbiBicmVhayBjYWxsYWJsZSBjYXNlIGNhdGNoIGNsYXNzIGNsb25lIGNvbnN0IGNvbnRpbnVlIGRlY2xhcmUgZGVmYXVsdCBkbyBkb3VibGUgZWxzZSBlbHNlaWYgZW1wdHkgZW5kZGVjbGFyZSBlbmRmb3IgZW5kZm9yZWFjaCBlbmRpZiBlbmRzd2l0Y2ggZW5kd2hpbGUgZW51bSBldmFsIGV4dGVuZHMgZmluYWwgZmluYWxseSBmbG9hdCBmb3IgZm9yZWFjaCBmcm9tIGdsb2JhbCBnb3RvIGlmIGltcGxlbWVudHMgaW5zdGFuY2VvZiBpbnN0ZWFkb2YgaW50IGludGVnZXIgaW50ZXJmYWNlIGlzc2V0IGl0ZXJhYmxlIGxpc3QgbWF0Y2h8MCBtaXhlZCBuZXcgb2JqZWN0IG9yIHByaXZhdGUgcHJvdGVjdGVkIHB1YmxpYyByZWFsIHJldHVybiBzdHJpbmcgc3dpdGNoIHRocm93IHRyYWl0IHRyeSB1bnNldCB1c2UgdmFyIHZvaWQgd2hpbGUgeG9yIHlpZWxkIixsaXRlcmFsOiJmYWxzZSBudWxsIHRydWUiLGJ1aWx0X2luOiJFcnJvcnwwIEFwcGVuZEl0ZXJhdG9yIEFyZ3VtZW50Q291bnRFcnJvciBBcml0aG1ldGljRXJyb3IgQXJyYXlJdGVyYXRvciBBcnJheU9iamVjdCBBc3NlcnRpb25FcnJvciBCYWRGdW5jdGlvbkNhbGxFeGNlcHRpb24gQmFkTWV0aG9kQ2FsbEV4Y2VwdGlvbiBDYWNoaW5nSXRlcmF0b3IgQ2FsbGJhY2tGaWx0ZXJJdGVyYXRvciBDb21waWxlRXJyb3IgQ291bnRhYmxlIERpcmVjdG9yeUl0ZXJhdG9yIERpdmlzaW9uQnlaZXJvRXJyb3IgRG9tYWluRXhjZXB0aW9uIEVtcHR5SXRlcmF0b3IgRXJyb3JFeGNlcHRpb24gRXhjZXB0aW9uIEZpbGVzeXN0ZW1JdGVyYXRvciBGaWx0ZXJJdGVyYXRvciBHbG9iSXRlcmF0b3IgSW5maW5pdGVJdGVyYXRvciBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24gSXRlcmF0b3JJdGVyYXRvciBMZW5ndGhFeGNlcHRpb24gTGltaXRJdGVyYXRvciBMb2dpY0V4Y2VwdGlvbiBNdWx0aXBsZUl0ZXJhdG9yIE5vUmV3aW5kSXRlcmF0b3IgT3V0T2ZCb3VuZHNFeGNlcHRpb24gT3V0T2ZSYW5nZUV4Y2VwdGlvbiBPdXRlckl0ZXJhdG9yIE92ZXJmbG93RXhjZXB0aW9uIFBhcmVudEl0ZXJhdG9yIFBhcnNlRXJyb3IgUmFuZ2VFeGNlcHRpb24gUmVjdXJzaXZlQXJyYXlJdGVyYXRvciBSZWN1cnNpdmVDYWNoaW5nSXRlcmF0b3IgUmVjdXJzaXZlQ2FsbGJhY2tGaWx0ZXJJdGVyYXRvciBSZWN1cnNpdmVEaXJlY3RvcnlJdGVyYXRvciBSZWN1cnNpdmVGaWx0ZXJJdGVyYXRvciBSZWN1cnNpdmVJdGVyYXRvciBSZWN1cnNpdmVJdGVyYXRvckl0ZXJhdG9yIFJlY3Vyc2l2ZVJlZ2V4SXRlcmF0b3IgUmVjdXJzaXZlVHJlZUl0ZXJhdG9yIFJlZ2V4SXRlcmF0b3IgUnVudGltZUV4Y2VwdGlvbiBTZWVrYWJsZUl0ZXJhdG9yIFNwbERvdWJseUxpbmtlZExpc3QgU3BsRmlsZUluZm8gU3BsRmlsZU9iamVjdCBTcGxGaXhlZEFycmF5IFNwbEhlYXAgU3BsTWF4SGVhcCBTcGxNaW5IZWFwIFNwbE9iamVjdFN0b3JhZ2UgU3BsT2JzZXJ2ZXIgU3BsT2JzZXJ2ZXIgU3BsUHJpb3JpdHlRdWV1ZSBTcGxRdWV1ZSBTcGxTdGFjayBTcGxTdWJqZWN0IFNwbFN1YmplY3QgU3BsVGVtcEZpbGVPYmplY3QgVHlwZUVycm9yIFVuZGVyZmxvd0V4Y2VwdGlvbiBVbmV4cGVjdGVkVmFsdWVFeGNlcHRpb24gVW5oYW5kbGVkTWF0Y2hFcnJvciBBcnJheUFjY2VzcyBDbG9zdXJlIEdlbmVyYXRvciBJdGVyYXRvciBJdGVyYXRvckFnZ3JlZ2F0ZSBTZXJpYWxpemFibGUgU3RyaW5nYWJsZSBUaHJvd2FibGUgVHJhdmVyc2FibGUgV2Vha1JlZmVyZW5jZSBXZWFrTWFwIERpcmVjdG9yeSBfX1BIUF9JbmNvbXBsZXRlX0NsYXNzIHBhcmVudCBwaHBfdXNlcl9maWx0ZXIgc2VsZiBzdGF0aWMgc3RkQ2xhc3MifTtyZXR1cm57YWxpYXNlczpbInBocDMiLCJwaHA0IiwicGhwNSIsInBocDYiLCJwaHA3IiwicGhwOCJdLGNhc2VfaW5zZW5zaXRpdmU6ITAsa2V5d29yZHM6ZCxjb250YWluczpbZS5IQVNIX0NPTU1FTlRfTU9ERSxlLkNPTU1FTlQoIi8vIiwiJCIse2NvbnRhaW5zOltuXX0pLGUuQ09NTUVOVCgiL1xcKiIsIlxcKi8iLHtjb250YWluczpbe2NsYXNzTmFtZToiZG9jdGFnIixiZWdpbjoiQFtBLVphLXpdKyJ9XX0pLGUuQ09NTUVOVCgiX19oYWx0X2NvbXBpbGVyLis/OyIsITEse2VuZHNXaXRoUGFyZW50OiEwLGtleXdvcmRzOiJfX2hhbHRfY29tcGlsZXIifSksbix7Y2xhc3NOYW1lOiJrZXl3b3JkIixiZWdpbjovXCR0aGlzXGIvfSx0LHtiZWdpbjovKDo6fC0+KStbYS16QS1aX1x4N2YtXHhmZl1bYS16QS1aMC05X1x4N2YtXHhmZl0qL30se2NsYXNzTmFtZToiZnVuY3Rpb24iLHJlbGV2YW5jZTowLGJlZ2luS2V5d29yZHM6ImZuIGZ1bmN0aW9uIixlbmQ6L1s7e10vLGV4Y2x1ZGVFbmQ6ITAsaWxsZWdhbDoiWyQlXFxbXSIsY29udGFpbnM6W3tiZWdpbktleXdvcmRzOiJ1c2UifSxlLlVOREVSU0NPUkVfVElUTEVfTU9ERSx7YmVnaW46Ij0+IixlbmRzUGFyZW50OiEwfSx7Y2xhc3NOYW1lOiJwYXJhbXMiLGJlZ2luOiJcXCgiLGVuZDoiXFwpIixleGNsdWRlQmVnaW46ITAsZXhjbHVkZUVuZDohMCxrZXl3b3JkczpkLGNvbnRhaW5zOlsic2VsZiIsdCxlLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLGMsX119XX0se2NsYXNzTmFtZToiY2xhc3MiLHZhcmlhbnRzOlt7YmVnaW5LZXl3b3JkczoiZW51bSIsaWxsZWdhbDovWygkIl0vfSx7YmVnaW5LZXl3b3JkczoiY2xhc3MgaW50ZXJmYWNlIHRyYWl0IixpbGxlZ2FsOi9bOigkIl0vfV0scmVsZXZhbmNlOjAsZW5kOi9cey8sZXhjbHVkZUVuZDohMCxjb250YWluczpbe2JlZ2luS2V5d29yZHM6ImV4dGVuZHMgaW1wbGVtZW50cyJ9LGUuVU5ERVJTQ09SRV9USVRMRV9NT0RFXX0se2JlZ2luS2V5d29yZHM6Im5hbWVzcGFjZSIscmVsZXZhbmNlOjAsZW5kOiI7IixpbGxlZ2FsOi9bLiddLyxjb250YWluczpbZS5VTkRFUlNDT1JFX1RJVExFX01PREVdfSx7YmVnaW5LZXl3b3JkczoidXNlIixyZWxldmFuY2U6MCxlbmQ6IjsiLGNvbnRhaW5zOltlLlVOREVSU0NPUkVfVElUTEVfTU9ERV19LGMsX119fXMuZXhwb3J0cz1yfSwxOTg2NDpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGUpe3JldHVybntuYW1lOiJQbGFpbiB0ZXh0IixhbGlhc2VzOlsidGV4dCIsInR4dCJdLGRpc2FibGVBdXRvZGV0ZWN0OiEwfX1zLmV4cG9ydHM9cn0sNjQ4Nzc6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihlKXtjb25zdCB0PXtrZXl3b3JkOiJhY3RvciBhZGRyZXNzb2YgYW5kIGFzIGJlIGJyZWFrIGNsYXNzIGNvbXBpbGVfZXJyb3IgY29tcGlsZV9pbnRyaW5zaWMgY29uc3VtZSBjb250aW51ZSBkZWxlZ2F0ZSBkaWdlc3RvZiBkbyBlbHNlIGVsc2VpZiBlbWJlZCBlbmQgZXJyb3IgZm9yIGZ1biBpZiBpZmRlZiBpbiBpbnRlcmZhY2UgaXMgaXNudCBsYW1iZGEgbGV0IG1hdGNoIG5ldyBub3Qgb2JqZWN0IG9yIHByaW1pdGl2ZSByZWNvdmVyIHJlcGVhdCByZXR1cm4gc3RydWN0IHRoZW4gdHJhaXQgdHJ5IHR5cGUgdW50aWwgdXNlIHZhciB3aGVyZSB3aGlsZSB3aXRoIHhvciIsbWV0YToiaXNvIHZhbCB0YWcgdHJuIGJveCByZWYiLGxpdGVyYWw6InRoaXMgZmFsc2UgdHJ1ZSJ9LG49e2NsYXNzTmFtZToic3RyaW5nIixiZWdpbjonIiIiJyxlbmQ6JyIiIicscmVsZXZhbmNlOjEwfSxhPXtjbGFzc05hbWU6InN0cmluZyIsYmVnaW46JyInLGVuZDonIicsY29udGFpbnM6W2UuQkFDS1NMQVNIX0VTQ0FQRV19LGk9e2NsYXNzTmFtZToic3RyaW5nIixiZWdpbjoiJyIsZW5kOiInIixjb250YWluczpbZS5CQUNLU0xBU0hfRVNDQVBFXSxyZWxldmFuY2U6MH0sbz17Y2xhc3NOYW1lOiJ0eXBlIixiZWdpbjoiXFxiXz9bQS1aXVtcXHddKiIscmVsZXZhbmNlOjB9LGw9e2JlZ2luOmUuSURFTlRfUkUrIiciLHJlbGV2YW5jZTowfTtyZXR1cm57bmFtZToiUG9ueSIsa2V5d29yZHM6dCxjb250YWluczpbbyxuLGEsaSxsLHtjbGFzc05hbWU6Im51bWJlciIsYmVnaW46IigtPykoXFxiMFt4WF1bYS1mQS1GMC05XSt8XFxiMFtiQl1bMDFdK3woXFxiXFxkKyhfXFxkKyk/KFxcLlxcZCopP3xcXC5cXGQrKShbZUVdWy0rXT9cXGQrKT8pIixyZWxldmFuY2U6MH0sZS5DX0xJTkVfQ09NTUVOVF9NT0RFLGUuQ19CTE9DS19DT01NRU5UX01PREVdfX1zLmV4cG9ydHM9cn0sMTAyMjg6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihlKXtjb25zdCB0PVsic3RyaW5nIiwiY2hhciIsImJ5dGUiLCJpbnQiLCJsb25nIiwiYm9vbCIsImRlY2ltYWwiLCJzaW5nbGUiLCJkb3VibGUiLCJEYXRlVGltZSIsInhtbCIsImFycmF5IiwiaGFzaHRhYmxlIiwidm9pZCJdLG49IkFkZHxDbGVhcnxDbG9zZXxDb3B5fEVudGVyfEV4aXR8RmluZHxGb3JtYXR8R2V0fEhpZGV8Sm9pbnxMb2NrfE1vdmV8TmV3fE9wZW58T3B0aW1pemV8UG9wfFB1c2h8UmVkb3xSZW1vdmV8UmVuYW1lfFJlc2V0fFJlc2l6ZXxTZWFyY2h8U2VsZWN0fFNldHxTaG93fFNraXB8U3BsaXR8U3RlcHxTd2l0Y2h8VW5kb3xVbmxvY2t8V2F0Y2h8QmFja3VwfENoZWNrcG9pbnR8Q29tcGFyZXxDb21wcmVzc3xDb252ZXJ0fENvbnZlcnRGcm9tfENvbnZlcnRUb3xEaXNtb3VudHxFZGl0fEV4cGFuZHxFeHBvcnR8R3JvdXB8SW1wb3J0fEluaXRpYWxpemV8TGltaXR8TWVyZ2V8TW91bnR8T3V0fFB1Ymxpc2h8UmVzdG9yZXxTYXZlfFN5bmN8VW5wdWJsaXNofFVwZGF0ZXxBcHByb3ZlfEFzc2VydHxCdWlsZHxDb21wbGV0ZXxDb25maXJtfERlbnl8RGVwbG95fERpc2FibGV8RW5hYmxlfEluc3RhbGx8SW52b2tlfFJlZ2lzdGVyfFJlcXVlc3R8UmVzdGFydHxSZXN1bWV8U3RhcnR8U3RvcHxTdWJtaXR8U3VzcGVuZHxVbmluc3RhbGx8VW5yZWdpc3RlcnxXYWl0fERlYnVnfE1lYXN1cmV8UGluZ3xSZXBhaXJ8UmVzb2x2ZXxUZXN0fFRyYWNlfENvbm5lY3R8RGlzY29ubmVjdHxSZWFkfFJlY2VpdmV8U2VuZHxXcml0ZXxCbG9ja3xHcmFudHxQcm90ZWN0fFJldm9rZXxVbmJsb2NrfFVucHJvdGVjdHxVc2V8Rm9yRWFjaHxTb3J0fFRlZXxXaGVyZSIsYT0iLWFuZHwtYXN8LWJhbmR8LWJub3R8LWJvcnwtYnhvcnwtY2FzZXNlbnNpdGl2ZXwtY2NvbnRhaW5zfC1jZXF8LWNnZXwtY2d0fC1jbGV8LWNsaWtlfC1jbHR8LWNtYXRjaHwtY25lfC1jbm90Y29udGFpbnN8LWNub3RsaWtlfC1jbm90bWF0Y2h8LWNvbnRhaW5zfC1jcmVwbGFjZXwtY3NwbGl0fC1lcXwtZXhhY3R8LWZ8LWZpbGV8LWdlfC1ndHwtaWNvbnRhaW5zfC1pZXF8LWlnZXwtaWd0fC1pbGV8LWlsaWtlfC1pbHR8LWltYXRjaHwtaW58LWluZXwtaW5vdGNvbnRhaW5zfC1pbm90bGlrZXwtaW5vdG1hdGNofC1pcmVwbGFjZXwtaXN8LWlzbm90fC1pc3BsaXR8LWpvaW58LWxlfC1saWtlfC1sdHwtbWF0Y2h8LW5lfC1ub3R8LW5vdGNvbnRhaW5zfC1ub3Rpbnwtbm90bGlrZXwtbm90bWF0Y2h8LW9yfC1yZWdleHwtcmVwbGFjZXwtc2hsfC1zaHJ8LXNwbGl0fC13aWxkY2FyZHwteG9yIixpPXskcGF0dGVybjovLT9bQS16XC5cLV0rXGIvLGtleXdvcmQ6ImlmIGVsc2UgZm9yZWFjaCByZXR1cm4gZG8gd2hpbGUgdW50aWwgZWxzZWlmIGJlZ2luIGZvciB0cmFwIGRhdGEgZHluYW1pY3BhcmFtIGVuZCBicmVhayB0aHJvdyBwYXJhbSBjb250aW51ZSBmaW5hbGx5IGluIHN3aXRjaCBleGl0IGZpbHRlciB0cnkgcHJvY2VzcyBjYXRjaCBoaWRkZW4gc3RhdGljIHBhcmFtZXRlciIsYnVpbHRfaW46ImFjIGFzbnAgY2F0IGNkIENGUyBjaGRpciBjbGMgY2xlYXIgY2xoeSBjbGkgY2xwIGNscyBjbHYgY25zbiBjb21wYXJlIGNvcHkgY3AgY3BpIGNwcCBjdXJsIGN2cGEgZGJwIGRlbCBkaWZmIGRpciBkbnNuIGVicCBlY2hvfDAgZXBhbCBlcGNzdiBlcHNuIGVyYXNlIGV0c24gZXhzbiBmYyBmaHggZmwgZnQgZncgZ2FsIGdicCBnYyBnY2IgZ2NpIGdjbSBnY3MgZ2RyIGdlcnIgZ2h5IGdpIGdpbiBnamIgZ2wgZ20gZ21vIGdwIGdwcyBncHYgZ3JvdXAgZ3NuIGdzbnAgZ3N2IGd0eiBndSBndiBnd21pIGggaGlzdG9yeSBpY20gaWV4IGloeSBpaSBpcGFsIGlwY3N2IGlwbW8gaXBzbiBpcm0gaXNlIGl3bWkgaXdyIGtpbGwgbHAgbHMgbWFuIG1kIG1lYXN1cmUgbWkgbW91bnQgbW92ZSBtcCBtdiBuYWwgbmRyIG5pIG5tbyBucHNzYyBuc24gbnYgb2d2IG9oIHBvcGQgcHMgcHVzaGQgcHdkIHIgcmJwIHJjamIgcmNzbiByZCByZHIgcmVuIHJpIHJqYiBybSBybWRpciBybW8gcm5pIHJucCBycCByc24gcnNucCBydWpiIHJ2IHJ2cGEgcndtaSBzYWpiIHNhbCBzYXBzIHNhc3Ygc2JwIHNjIHNjYiBzZWxlY3Qgc2V0IHNoY20gc2kgc2wgc2xlZXAgc2xzIHNvcnQgc3Agc3BqYiBzcHBzIHNwc3Ygc3RhcnQgc3R6IHN1amIgc3Ygc3dtaSB0ZWUgdHJjbSB0eXBlIHdnZXQgd2hlcmUgd2piIHdyaXRlIn0sbz0vXHdbXHdcZF0qKCgtKVtcd1xkXSspKi8sbD17YmVnaW46ImBbXFxzXFxTXSIscmVsZXZhbmNlOjB9LGM9e2NsYXNzTmFtZToidmFyaWFibGUiLHZhcmlhbnRzOlt7YmVnaW46L1wkXEIvfSx7Y2xhc3NOYW1lOiJrZXl3b3JkIixiZWdpbjovXCR0aGlzL30se2JlZ2luOi9cJFtcd1xkXVtcd1xkXzpdKi99XX0sXz17Y2xhc3NOYW1lOiJsaXRlcmFsIixiZWdpbjovXCQobnVsbHx0cnVlfGZhbHNlKVxiL30sZD17Y2xhc3NOYW1lOiJzdHJpbmciLHZhcmlhbnRzOlt7YmVnaW46LyIvLGVuZDovIi99LHtiZWdpbjovQCIvLGVuZDovXiJAL31dLGNvbnRhaW5zOltsLGMse2NsYXNzTmFtZToidmFyaWFibGUiLGJlZ2luOi9cJFtBLXpdLyxlbmQ6L1teQS16XS99XX0sZz17Y2xhc3NOYW1lOiJzdHJpbmciLHZhcmlhbnRzOlt7YmVnaW46LycvLGVuZDovJy99LHtiZWdpbjovQCcvLGVuZDovXidAL31dfSxFPXtjbGFzc05hbWU6ImRvY3RhZyIsdmFyaWFudHM6W3tiZWdpbjovXC4oc3lub3BzaXN8ZGVzY3JpcHRpb258ZXhhbXBsZXxpbnB1dHN8b3V0cHV0c3xub3Rlc3xsaW5rfGNvbXBvbmVudHxyb2xlfGZ1bmN0aW9uYWxpdHkpL30se2JlZ2luOi9cLihwYXJhbWV0ZXJ8Zm9yd2FyZGhlbHB0YXJnZXRuYW1lfGZvcndhcmRoZWxwY2F0ZWdvcnl8cmVtb3RlaGVscHJ1bnNwYWNlfGV4dGVybmFsaGVscClccytcUysvfV19LHU9ZS5pbmhlcml0KGUuQ09NTUVOVChudWxsLG51bGwpLHt2YXJpYW50czpbe2JlZ2luOi8jLyxlbmQ6LyQvfSx7YmVnaW46LzwjLyxlbmQ6LyM+L31dLGNvbnRhaW5zOltFXX0pLG09e2NsYXNzTmFtZToiYnVpbHRfaW4iLHZhcmlhbnRzOlt7YmVnaW46IigiLmNvbmNhdChuLCIpKygtKVtcXHdcXGRdKyIpfV19LFM9e2NsYXNzTmFtZToiY2xhc3MiLGJlZ2luS2V5d29yZHM6ImNsYXNzIGVudW0iLGVuZDovXHMqW3tdLyxleGNsdWRlRW5kOiEwLHJlbGV2YW5jZTowLGNvbnRhaW5zOltlLlRJVExFX01PREVdfSxUPXtjbGFzc05hbWU6ImZ1bmN0aW9uIixiZWdpbjovZnVuY3Rpb25ccysvLGVuZDovXHMqXHt8JC8sZXhjbHVkZUVuZDohMCxyZXR1cm5CZWdpbjohMCxyZWxldmFuY2U6MCxjb250YWluczpbe2JlZ2luOiJmdW5jdGlvbiIscmVsZXZhbmNlOjAsY2xhc3NOYW1lOiJrZXl3b3JkIn0se2NsYXNzTmFtZToidGl0bGUiLGJlZ2luOm8scmVsZXZhbmNlOjB9LHtiZWdpbjovXCgvLGVuZDovXCkvLGNsYXNzTmFtZToicGFyYW1zIixyZWxldmFuY2U6MCxjb250YWluczpbY119XX0sYj17YmVnaW46L3VzaW5nXHMvLGVuZDovJC8scmV0dXJuQmVnaW46ITAsY29udGFpbnM6W2QsZyx7Y2xhc3NOYW1lOiJrZXl3b3JkIixiZWdpbjovKHVzaW5nfGFzc2VtYmx5fGNvbW1hbmR8bW9kdWxlfG5hbWVzcGFjZXx0eXBlKS99XX0sZj17dmFyaWFudHM6W3tjbGFzc05hbWU6Im9wZXJhdG9yIixiZWdpbjoiKCIuY29uY2F0KGEsIilcXGIiKX0se2NsYXNzTmFtZToibGl0ZXJhbCIsYmVnaW46LygtKVtcd1xkXSsvLHJlbGV2YW5jZTowfV19LEM9e2NsYXNzTmFtZToic2VsZWN0b3ItdGFnIixiZWdpbjovQFxCLyxyZWxldmFuY2U6MH0sTz17Y2xhc3NOYW1lOiJmdW5jdGlvbiIsYmVnaW46L1xbLipcXVxzKltcd10rWyBdPz9cKC8sZW5kOi8kLyxyZXR1cm5CZWdpbjohMCxyZWxldmFuY2U6MCxjb250YWluczpbe2NsYXNzTmFtZToia2V5d29yZCIsYmVnaW46IigiLmNvbmNhdChpLmtleXdvcmQudG9TdHJpbmcoKS5yZXBsYWNlKC9ccy9nLCJ8IiksIilcXGIiKSxlbmRzUGFyZW50OiEwLHJlbGV2YW5jZTowfSxlLmluaGVyaXQoZS5USVRMRV9NT0RFLHtlbmRzUGFyZW50OiEwfSldfSxEPVtPLHUsbCxlLk5VTUJFUl9NT0RFLGQsZyxtLGMsXyxDXSx5PXtiZWdpbjovXFsvLGVuZDovXF0vLGV4Y2x1ZGVCZWdpbjohMCxleGNsdWRlRW5kOiEwLHJlbGV2YW5jZTowLGNvbnRhaW5zOltdLmNvbmNhdCgic2VsZiIsRCx7YmVnaW46IigiK3Quam9pbigifCIpKyIpIixjbGFzc05hbWU6ImJ1aWx0X2luIixyZWxldmFuY2U6MH0se2NsYXNzTmFtZToidHlwZSIsYmVnaW46L1tcLlx3XGRdKy8scmVsZXZhbmNlOjB9KX07cmV0dXJuIE8uY29udGFpbnMudW5zaGlmdCh5KSx7bmFtZToiUG93ZXJTaGVsbCIsYWxpYXNlczpbInBzIiwicHMxIl0sY2FzZV9pbnNlbnNpdGl2ZTohMCxrZXl3b3JkczppLGNvbnRhaW5zOkQuY29uY2F0KFMsVCxiLGYseSl9fXMuZXhwb3J0cz1yfSw1MjE4MzpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGUpe3JldHVybntuYW1lOiJQcm9jZXNzaW5nIixrZXl3b3Jkczp7a2V5d29yZDoiQnVmZmVyZWRSZWFkZXIgUFZlY3RvciBQRm9udCBQSW1hZ2UgUEdyYXBoaWNzIEhhc2hNYXAgYm9vbGVhbiBieXRlIGNoYXIgY29sb3IgZG91YmxlIGZsb2F0IGludCBsb25nIFN0cmluZyBBcnJheSBGbG9hdERpY3QgRmxvYXRMaXN0IEludERpY3QgSW50TGlzdCBKU09OQXJyYXkgSlNPTk9iamVjdCBPYmplY3QgU3RyaW5nRGljdCBTdHJpbmdMaXN0IFRhYmxlIFRhYmxlUm93IFhNTCBmYWxzZSBzeW5jaHJvbml6ZWQgaW50IGFic3RyYWN0IGZsb2F0IHByaXZhdGUgY2hhciBib29sZWFuIHN0YXRpYyBudWxsIGlmIGNvbnN0IGZvciB0cnVlIHdoaWxlIGxvbmcgdGhyb3cgc3RyaWN0ZnAgZmluYWxseSBwcm90ZWN0ZWQgaW1wb3J0IG5hdGl2ZSBmaW5hbCByZXR1cm4gdm9pZCBlbnVtIGVsc2UgYnJlYWsgdHJhbnNpZW50IG5ldyBjYXRjaCBpbnN0YW5jZW9mIGJ5dGUgc3VwZXIgdm9sYXRpbGUgY2FzZSBhc3NlcnQgc2hvcnQgcGFja2FnZSBkZWZhdWx0IGRvdWJsZSBwdWJsaWMgdHJ5IHRoaXMgc3dpdGNoIGNvbnRpbnVlIHRocm93cyBwcm90ZWN0ZWQgcHVibGljIHByaXZhdGUiLGxpdGVyYWw6IlAyRCBQM0QgSEFMRl9QSSBQSSBRVUFSVEVSX1BJIFRBVSBUV09fUEkiLHRpdGxlOiJzZXR1cCBkcmF3IixidWlsdF9pbjoiZGlzcGxheUhlaWdodCBkaXNwbGF5V2lkdGggbW91c2VZIG1vdXNlWCBtb3VzZVByZXNzZWQgcG1vdXNlWCBwbW91c2VZIGtleSBrZXlDb2RlIHBpeGVscyBmb2N1c2VkIGZyYW1lQ291bnQgZnJhbWVSYXRlIGhlaWdodCB3aWR0aCBzaXplIGNyZWF0ZUdyYXBoaWNzIGJlZ2luRHJhdyBjcmVhdGVTaGFwZSBsb2FkU2hhcGUgUFNoYXBlIGFyYyBlbGxpcHNlIGxpbmUgcG9pbnQgcXVhZCByZWN0IHRyaWFuZ2xlIGJlemllciBiZXppZXJEZXRhaWwgYmV6aWVyUG9pbnQgYmV6aWVyVGFuZ2VudCBjdXJ2ZSBjdXJ2ZURldGFpbCBjdXJ2ZVBvaW50IGN1cnZlVGFuZ2VudCBjdXJ2ZVRpZ2h0bmVzcyBzaGFwZSBzaGFwZU1vZGUgYmVnaW5Db250b3VyIGJlZ2luU2hhcGUgYmV6aWVyVmVydGV4IGN1cnZlVmVydGV4IGVuZENvbnRvdXIgZW5kU2hhcGUgcXVhZHJhdGljVmVydGV4IHZlcnRleCBlbGxpcHNlTW9kZSBub1Ntb290aCByZWN0TW9kZSBzbW9vdGggc3Ryb2tlQ2FwIHN0cm9rZUpvaW4gc3Ryb2tlV2VpZ2h0IG1vdXNlQ2xpY2tlZCBtb3VzZURyYWdnZWQgbW91c2VNb3ZlZCBtb3VzZVByZXNzZWQgbW91c2VSZWxlYXNlZCBtb3VzZVdoZWVsIGtleVByZXNzZWQga2V5UHJlc3NlZGtleVJlbGVhc2VkIGtleVR5cGVkIHByaW50IHByaW50bG4gc2F2ZSBzYXZlRnJhbWUgZGF5IGhvdXIgbWlsbGlzIG1pbnV0ZSBtb250aCBzZWNvbmQgeWVhciBiYWNrZ3JvdW5kIGNsZWFyIGNvbG9yTW9kZSBmaWxsIG5vRmlsbCBub1N0cm9rZSBzdHJva2UgYWxwaGEgYmx1ZSBicmlnaHRuZXNzIGNvbG9yIGdyZWVuIGh1ZSBsZXJwQ29sb3IgcmVkIHNhdHVyYXRpb24gbW9kZWxYIG1vZGVsWSBtb2RlbFogc2NyZWVuWCBzY3JlZW5ZIHNjcmVlblogYW1iaWVudCBlbWlzc2l2ZSBzaGluaW5lc3Mgc3BlY3VsYXIgYWRkIGNyZWF0ZUltYWdlIGJlZ2luQ2FtZXJhIGNhbWVyYSBlbmRDYW1lcmEgZnJ1c3R1bSBvcnRobyBwZXJzcGVjdGl2ZSBwcmludENhbWVyYSBwcmludFByb2plY3Rpb24gY3Vyc29yIGZyYW1lUmF0ZSBub0N1cnNvciBleGl0IGxvb3Agbm9Mb29wIHBvcFN0eWxlIHB1c2hTdHlsZSByZWRyYXcgYmluYXJ5IGJvb2xlYW4gYnl0ZSBjaGFyIGZsb2F0IGhleCBpbnQgc3RyIHVuYmluYXJ5IHVuaGV4IGpvaW4gbWF0Y2ggbWF0Y2hBbGwgbmYgbmZjIG5mcCBuZnMgc3BsaXQgc3BsaXRUb2tlbnMgdHJpbSBhcHBlbmQgYXJyYXlDb3B5IGNvbmNhdCBleHBhbmQgcmV2ZXJzZSBzaG9ydGVuIHNvcnQgc3BsaWNlIHN1YnNldCBib3ggc3BoZXJlIHNwaGVyZURldGFpbCBjcmVhdGVJbnB1dCBjcmVhdGVSZWFkZXIgbG9hZEJ5dGVzIGxvYWRKU09OQXJyYXkgbG9hZEpTT05PYmplY3QgbG9hZFN0cmluZ3MgbG9hZFRhYmxlIGxvYWRYTUwgb3BlbiBwYXJzZVhNTCBzYXZlVGFibGUgc2VsZWN0Rm9sZGVyIHNlbGVjdElucHV0IGJlZ2luUmF3IGJlZ2luUmVjb3JkIGNyZWF0ZU91dHB1dCBjcmVhdGVXcml0ZXIgZW5kUmF3IGVuZFJlY29yZCBQcmludFdyaXRlcnNhdmVCeXRlcyBzYXZlSlNPTkFycmF5IHNhdmVKU09OT2JqZWN0IHNhdmVTdHJlYW0gc2F2ZVN0cmluZ3Mgc2F2ZVhNTCBzZWxlY3RPdXRwdXQgcG9wTWF0cml4IHByaW50TWF0cml4IHB1c2hNYXRyaXggcmVzZXRNYXRyaXggcm90YXRlIHJvdGF0ZVggcm90YXRlWSByb3RhdGVaIHNjYWxlIHNoZWFyWCBzaGVhclkgdHJhbnNsYXRlIGFtYmllbnRMaWdodCBkaXJlY3Rpb25hbExpZ2h0IGxpZ2h0RmFsbG9mZiBsaWdodHMgbGlnaHRTcGVjdWxhciBub0xpZ2h0cyBub3JtYWwgcG9pbnRMaWdodCBzcG90TGlnaHQgaW1hZ2UgaW1hZ2VNb2RlIGxvYWRJbWFnZSBub1RpbnQgcmVxdWVzdEltYWdlIHRpbnQgdGV4dHVyZSB0ZXh0dXJlTW9kZSB0ZXh0dXJlV3JhcCBibGVuZCBjb3B5IGZpbHRlciBnZXQgbG9hZFBpeGVscyBzZXQgdXBkYXRlUGl4ZWxzIGJsZW5kTW9kZSBsb2FkU2hhZGVyIFBTaGFkZXJyZXNldFNoYWRlciBzaGFkZXIgY3JlYXRlRm9udCBsb2FkRm9udCB0ZXh0IHRleHRGb250IHRleHRBbGlnbiB0ZXh0TGVhZGluZyB0ZXh0TW9kZSB0ZXh0U2l6ZSB0ZXh0V2lkdGggdGV4dEFzY2VudCB0ZXh0RGVzY2VudCBhYnMgY2VpbCBjb25zdHJhaW4gZGlzdCBleHAgZmxvb3IgbGVycCBsb2cgbWFnIG1hcCBtYXggbWluIG5vcm0gcG93IHJvdW5kIHNxIHNxcnQgYWNvcyBhc2luIGF0YW4gYXRhbjIgY29zIGRlZ3JlZXMgcmFkaWFucyBzaW4gdGFuIG5vaXNlIG5vaXNlRGV0YWlsIG5vaXNlU2VlZCByYW5kb20gcmFuZG9tR2F1c3NpYW4gcmFuZG9tU2VlZCJ9LGNvbnRhaW5zOltlLkNfTElORV9DT01NRU5UX01PREUsZS5DX0JMT0NLX0NPTU1FTlRfTU9ERSxlLkFQT1NfU1RSSU5HX01PREUsZS5RVU9URV9TVFJJTkdfTU9ERSxlLkNfTlVNQkVSX01PREVdfX1zLmV4cG9ydHM9cn0sNzA4MDQ6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihlKXtyZXR1cm57bmFtZToiUHl0aG9uIHByb2ZpbGVyIixjb250YWluczpbZS5DX05VTUJFUl9NT0RFLHtiZWdpbjoiW2EtekEtWl9dW1xcZGEtekEtWl9dK1xcLltcXGRhLXpBLVpfXXsxLDN9IixlbmQ6IjoiLGV4Y2x1ZGVFbmQ6ITB9LHtiZWdpbjoiKG5jYWxsc3x0b3R0aW1lfGN1bXRpbWUpIixlbmQ6IiQiLGtleXdvcmRzOiJuY2FsbHMgdG90dGltZXwxMCBjdW10aW1lfDEwIGZpbGVuYW1lIixyZWxldmFuY2U6MTB9LHtiZWdpbjoiZnVuY3Rpb24gY2FsbHMiLGVuZDoiJCIsY29udGFpbnM6W2UuQ19OVU1CRVJfTU9ERV0scmVsZXZhbmNlOjEwfSxlLkFQT1NfU1RSSU5HX01PREUsZS5RVU9URV9TVFJJTkdfTU9ERSx7Y2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOiJcXCgiLGVuZDoiXFwpJCIsZXhjbHVkZUJlZ2luOiEwLGV4Y2x1ZGVFbmQ6ITAscmVsZXZhbmNlOjB9XX19cy5leHBvcnRzPXJ9LDk4NzI6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihlKXtjb25zdCB0PXtiZWdpbjovW2Etel1bQS1aYS16MC05X10qLyxyZWxldmFuY2U6MH0sbj17Y2xhc3NOYW1lOiJzeW1ib2wiLHZhcmlhbnRzOlt7YmVnaW46L1tBLVpdW2EtekEtWjAtOV9dKi99LHtiZWdpbjovX1tBLVphLXowLTlfXSovfV0scmVsZXZhbmNlOjB9LGE9e2JlZ2luOi9cKC8sZW5kOi9cKS8scmVsZXZhbmNlOjB9LGk9e2JlZ2luOi9cWy8sZW5kOi9cXS99LG89e2NsYXNzTmFtZToiY29tbWVudCIsYmVnaW46LyUvLGVuZDovJC8sY29udGFpbnM6W2UuUEhSQVNBTF9XT1JEU19NT0RFXX0sbD17Y2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOi9gLyxlbmQ6L2AvLGNvbnRhaW5zOltlLkJBQ0tTTEFTSF9FU0NBUEVdfSxjPXtjbGFzc05hbWU6InN0cmluZyIsYmVnaW46LzAnKFxcJ3wuKS99LF89e2NsYXNzTmFtZToic3RyaW5nIixiZWdpbjovMCdcXHMvfSxnPVt0LG4sYSx7YmVnaW46LzotL30saSxvLGUuQ19CTE9DS19DT01NRU5UX01PREUsZS5RVU9URV9TVFJJTkdfTU9ERSxlLkFQT1NfU1RSSU5HX01PREUsbCxjLF8sZS5DX05VTUJFUl9NT0RFXTtyZXR1cm4gYS5jb250YWlucz1nLGkuY29udGFpbnM9Zyx7bmFtZToiUHJvbG9nIixjb250YWluczpnLmNvbmNhdChbe2JlZ2luOi9cLiQvfV0pfX1zLmV4cG9ydHM9cn0sNzkyOmZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHIoZSl7dmFyIHQ9IlsgXFx0XFxmXSoiLG49IlsgXFx0XFxmXSsiLGE9dCsiWzo9XSIrdCxpPW4sbz0iKCIrYSsifCIraSsiKSIsbD0iKFteXFxcXFxcVzo9IFxcdFxcZlxcbl18XFxcXC4pKyIsYz0iKFteXFxcXDo9IFxcdFxcZlxcbl18XFxcXC4pKyIsXz17ZW5kOm8scmVsZXZhbmNlOjAsc3RhcnRzOntjbGFzc05hbWU6InN0cmluZyIsZW5kOi8kLyxyZWxldmFuY2U6MCxjb250YWluczpbe2JlZ2luOiJcXFxcXFxcXCJ9LHtiZWdpbjoiXFxcXFxcbiJ9XX19O3JldHVybntuYW1lOiIucHJvcGVydGllcyIsY2FzZV9pbnNlbnNpdGl2ZTohMCxpbGxlZ2FsOi9cUy8sY29udGFpbnM6W2UuQ09NTUVOVCgiXlxccypbISNdIiwiJCIpLHtyZXR1cm5CZWdpbjohMCx2YXJpYW50czpbe2JlZ2luOmwrYSxyZWxldmFuY2U6MX0se2JlZ2luOmwraSxyZWxldmFuY2U6MH1dLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJhdHRyIixiZWdpbjpsLGVuZHNQYXJlbnQ6ITAscmVsZXZhbmNlOjB9XSxzdGFydHM6X30se2JlZ2luOmMrbyxyZXR1cm5CZWdpbjohMCxyZWxldmFuY2U6MCxjb250YWluczpbe2NsYXNzTmFtZToibWV0YSIsYmVnaW46YyxlbmRzUGFyZW50OiEwLHJlbGV2YW5jZTowfV0sc3RhcnRzOl99LHtjbGFzc05hbWU6ImF0dHIiLHJlbGV2YW5jZTowLGJlZ2luOmMrdCsiJCJ9XX19cy5leHBvcnRzPXJ9LDMxNDM0OmZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHIoZSl7cmV0dXJue25hbWU6IlByb3RvY29sIEJ1ZmZlcnMiLGtleXdvcmRzOntrZXl3b3JkOiJwYWNrYWdlIGltcG9ydCBvcHRpb24gb3B0aW9uYWwgcmVxdWlyZWQgcmVwZWF0ZWQgZ3JvdXAgb25lb2YiLGJ1aWx0X2luOiJkb3VibGUgZmxvYXQgaW50MzIgaW50NjQgdWludDMyIHVpbnQ2NCBzaW50MzIgc2ludDY0IGZpeGVkMzIgZml4ZWQ2NCBzZml4ZWQzMiBzZml4ZWQ2NCBib29sIHN0cmluZyBieXRlcyIsbGl0ZXJhbDoidHJ1ZSBmYWxzZSJ9LGNvbnRhaW5zOltlLlFVT1RFX1NUUklOR19NT0RFLGUuTlVNQkVSX01PREUsZS5DX0xJTkVfQ09NTUVOVF9NT0RFLGUuQ19CTE9DS19DT01NRU5UX01PREUse2NsYXNzTmFtZToiY2xhc3MiLGJlZ2luS2V5d29yZHM6Im1lc3NhZ2UgZW51bSBzZXJ2aWNlIixlbmQ6L1x7LyxpbGxlZ2FsOi9cbi8sY29udGFpbnM6W2UuaW5oZXJpdChlLlRJVExFX01PREUse3N0YXJ0czp7ZW5kc1dpdGhQYXJlbnQ6ITAsZXhjbHVkZUVuZDohMH19KV19LHtjbGFzc05hbWU6ImZ1bmN0aW9uIixiZWdpbktleXdvcmRzOiJycGMiLGVuZDovW3s7XS8sZXhjbHVkZUVuZDohMCxrZXl3b3JkczoicnBjIHJldHVybnMifSx7YmVnaW46L15ccypbQS1aX10rKD89XHMqPVteXG5dKzskKS99XX19cy5leHBvcnRzPXJ9LDgwNjQ2OmZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHIoZSl7Y29uc3QgdD17a2V5d29yZDoiYW5kIGNhc2UgZGVmYXVsdCBlbHNlIGVsc2lmIGZhbHNlIGlmIGluIGltcG9ydCBlbmhlcml0cyBub2RlIG9yIHRydWUgdW5kZWYgdW5sZXNzIG1haW4gc2V0dGluZ3MgJHN0cmluZyAiLGxpdGVyYWw6ImFsaWFzIGF1ZGl0IGJlZm9yZSBsb2dsZXZlbCBub29wIHJlcXVpcmUgc3Vic2NyaWJlIHRhZyBvd25lciBlbnN1cmUgZ3JvdXAgbW9kZSBuYW1lfDAgY2hhbmdlcyBjb250ZXh0IGZvcmNlIGluY2wgbGVucyBsb2FkX3BhdGggb25seWlmIHByb3ZpZGVyIHJldHVybnMgcm9vdCBzaG93X2RpZmYgdHlwZV9jaGVjayBlbl9hZGRyZXNzIGlwX2FkZHJlc3MgcmVhbG5hbWUgY29tbWFuZCBlbnZpcm9ubWVudCBob3VyIG1vbnV0ZSBtb250aCBtb250aGRheSBzcGVjaWFsIHRhcmdldCB3ZWVrZGF5IGNyZWF0ZXMgY3dkIG9nb3V0cHV0IHJlZnJlc2ggcmVmcmVzaG9ubHkgdHJpZXMgdHJ5X3NsZWVwIHVtYXNrIGJhY2t1cCBjaGVja3N1bSBjb250ZW50IGN0aW1lIGZvcmNlIGlnbm9yZSBsaW5rcyBtdGltZSBwdXJnZSByZWN1cnNlIHJlY3Vyc2VsaW1pdCByZXBsYWNlIHNlbGludXhfaWdub3JlX2RlZmF1bHRzIHNlbHJhbmdlIHNlbHJvbGUgc2VsdHlwZSBzZWx1c2VyIHNvdXJjZSBzb3VpcmNlX3Blcm1pc3Npb25zIHNvdXJjZXNlbGVjdCB2YWxpZGF0ZV9jbWQgdmFsaWRhdGVfcmVwbGFjZW1lbnQgYWxsb3dkdXBlIGF0dHJpYnV0ZV9tZW1iZXJzaGlwIGF1dGhfbWVtYmVyc2hpcCBmb3JjZWxvY2FsIGdpZCBpYV9sb2FkX21vZHVsZSBtZW1iZXJzIHN5c3RlbSBob3N0X2FsaWFzZXMgaXAgYWxsb3dlZF90cnVua192bGFucyBkZXNjcmlwdGlvbiBkZXZpY2VfdXJsIGR1cGxleCBlbmNhcHN1bGF0aW9uIGV0aGVyY2hhbm5lbCBuYXRpdmVfdmxhbiBzcGVlZCBwcmluY2lwYWxzIGFsbG93X3Jvb3QgYXV0aF9jbGFzcyBhdXRoX3R5cGUgYXV0aGVudGljYXRlX3VzZXIga19vZl9uIG1lY2hhbmlzbXMgcnVsZSBzZXNzaW9uX293bmVyIHNoYXJlZCBvcHRpb25zIGRldmljZSBmc3R5cGUgZW5hYmxlIGhhc3Jlc3RhcnQgZGlyZWN0b3J5IHByZXNlbnQgYWJzZW50IGxpbmsgYXRib290IGJsb2NrZGV2aWNlIGRldmljZSBkdW1wIHBhc3MgcmVtb3VudHMgcG9sbGVyX3RhZyB1c2UgbWVzc2FnZSB3aXRocGF0aCBhZG1pbmZpbGUgYWxsb3dfdmlydHVhbCBhbGxvd2Nkcm9tIGNhdGVnb3J5IGNvbmZpZ2ZpbGVzIGZsYXZvciBpbnN0YWxsX29wdGlvbnMgaW5zdGFuY2UgcGFja2FnZV9zZXR0aW5ncyBwbGF0Zm9ybSByZXNwb25zZWZpbGUgc3RhdHVzIHVuaW5zdGFsbF9vcHRpb25zIHZlbmRvciB1bmxlc3Nfc3lzdGVtX3VzZXIgdW5sZXNzX3VpZCBiaW5hcnkgY29udHJvbCBmbGFncyBoYXNzdGF0dXMgbWFuaWZlc3QgcGF0dGVybiByZXN0YXJ0IHJ1bm5pbmcgc3RhcnQgc3RvcCBhbGxvd2R1cGUgYXV0aHMgZXhwaXJ5IGdpZCBncm91cHMgaG9tZSBpdGVyYXRpb25zIGtleV9tZW1iZXJzaGlwIGtleXMgbWFuYWdlaG9tZSBtZW1iZXJzaGlwIHBhc3N3b3JkIHBhc3N3b3JkX21heF9hZ2UgcGFzc3dvcmRfbWluX2FnZSBwcm9maWxlX21lbWJlcnNoaXAgcHJvZmlsZXMgcHJvamVjdCBwdXJnZV9zc2hfa2V5cyByb2xlX21lbWJlcnNoaXAgcm9sZXMgc2FsdCBzaGVsbCB1aWQgYmFzZXVybCBjb3N0IGRlc2NyIGVuYWJsZWQgZW5hYmxlZ3JvdXBzIGV4Y2x1ZGUgZmFpbG92ZXJtZXRob2QgZ3BnY2hlY2sgZ3Bna2V5IGh0dHBfY2FjaGluZyBpbmNsdWRlIGluY2x1ZGVwa2dzIGtlZXBhbGl2ZSBtZXRhZGF0YV9leHBpcmUgbWV0YWxpbmsgbWlycm9ybGlzdCBwcmlvcml0eSBwcm90ZWN0IHByb3h5IHByb3h5X3Bhc3N3b3JkIHByb3h5X3VzZXJuYW1lIHJlcG9fZ3BnY2hlY2sgczNfZW5hYmxlZCBza2lwX2lmX3VuYXZhaWxhYmxlIHNzbGNhY2VydCBzc2xjbGllbnRjZXJ0IHNzbGNsaWVudGtleSBzc2x2ZXJpZnkgbW91bnRlZCIsYnVpbHRfaW46ImFyY2hpdGVjdHVyZSBhdWdlYXN2ZXJzaW9uIGJsb2NrZGV2aWNlcyBib2FyZG1hbnVmYWN0dXJlciBib2FyZHByb2R1Y3RuYW1lIGJvYXJkc2VyaWFsbnVtYmVyIGNma2V5IGRoY3Bfc2VydmVycyBkb21haW4gZWMyXyBlYzJfdXNlcmRhdGEgZmFjdGVydmVyc2lvbiBmaWxlc3lzdGVtcyBsZG9tIGZxZG4gZ2lkIGhhcmR3YXJlaXNhIGhhcmR3YXJlbW9kZWwgaG9zdG5hbWUgaWR8MCBpbnRlcmZhY2VzIGlwYWRkcmVzcyBpcGFkZHJlc3NfIGlwYWRkcmVzczYgaXBhZGRyZXNzNl8gaXBob3N0bnVtYmVyIGlzX3ZpcnR1YWwga2VybmVsIGtlcm5lbG1hanZlcnNpb24ga2VybmVscmVsZWFzZSBrZXJuZWx2ZXJzaW9uIGtlcm5lbHJlbGVhc2Uga2VybmVsdmVyc2lvbiBsc2JkaXN0Y29kZW5hbWUgbHNiZGlzdGRlc2NyaXB0aW9uIGxzYmRpc3RpZCBsc2JkaXN0cmVsZWFzZSBsc2JtYWpkaXN0cmVsZWFzZSBsc2JtaW5vcmRpc3RyZWxlYXNlIGxzYnJlbGVhc2UgbWFjYWRkcmVzcyBtYWNhZGRyZXNzXyBtYWNvc3hfYnVpbGR2ZXJzaW9uIG1hY29zeF9wcm9kdWN0bmFtZSBtYWNvc3hfcHJvZHVjdHZlcnNpb24gbWFjb3N4X3Byb2R1Y3R2ZXJzb25fbWFqb3IgbWFjb3N4X3Byb2R1Y3R2ZXJzaW9uX21pbm9yIG1hbnVmYWN0dXJlciBtZW1vcnlmcmVlIG1lbW9yeXNpemUgbmV0bWFzayBtZXRtYXNrXyBuZXR3b3JrXyBvcGVyYXRpbmdzeXN0ZW0gb3BlcmF0aW5nc3lzdGVtbWFqcmVsZWFzZSBvcGVyYXRpbmdzeXN0ZW1yZWxlYXNlIG9zZmFtaWx5IHBhcnRpdGlvbnMgcGF0aCBwaHlzaWNhbHByb2Nlc3NvcmNvdW50IHByb2Nlc3NvciBwcm9jZXNzb3Jjb3VudCBwcm9kdWN0bmFtZSBwcyBwdXBwZXR2ZXJzaW9uIHJ1YnlzaXRlZGlyIHJ1Ynl2ZXJzaW9uIHNlbGludXggc2VsaW51eF9jb25maWdfbW9kZSBzZWxpbnV4X2NvbmZpZ19wb2xpY3kgc2VsaW51eF9jdXJyZW50X21vZGUgc2VsaW51eF9jdXJyZW50X21vZGUgc2VsaW51eF9lbmZvcmNlZCBzZWxpbnV4X3BvbGljeXZlcnNpb24gc2VyaWFsbnVtYmVyIHNwXyBzc2hkc2FrZXkgc3NoZWNkc2FrZXkgc3NocnNha2V5IHN3YXBlbmNyeXB0ZWQgc3dhcGZyZWUgc3dhcHNpemUgdGltZXpvbmUgdHlwZSB1bmlxdWVpZCB1cHRpbWUgdXB0aW1lX2RheXMgdXB0aW1lX2hvdXJzIHVwdGltZV9zZWNvbmRzIHV1aWQgdmlydHVhbCB2bGFucyB4ZW5kb21haW5zIHpmc192ZXJzaW9uIHpvbmVuYWUgem9uZXMgenBvb2xfdmVyc2lvbiJ9LG49ZS5DT01NRU5UKCIjIiwiJCIpLGE9IihbQS1aYS16X118OjopKFxcd3w6OikqIixpPWUuaW5oZXJpdChlLlRJVExFX01PREUse2JlZ2luOmF9KSxvPXtjbGFzc05hbWU6InZhcmlhYmxlIixiZWdpbjoiXFwkIithfSxsPXtjbGFzc05hbWU6InN0cmluZyIsY29udGFpbnM6W2UuQkFDS1NMQVNIX0VTQ0FQRSxvXSx2YXJpYW50czpbe2JlZ2luOi8nLyxlbmQ6LycvfSx7YmVnaW46LyIvLGVuZDovIi99XX07cmV0dXJue25hbWU6IlB1cHBldCIsYWxpYXNlczpbInBwIl0sY29udGFpbnM6W24sbyxsLHtiZWdpbktleXdvcmRzOiJjbGFzcyIsZW5kOiJcXHt8OyIsaWxsZWdhbDovPS8sY29udGFpbnM6W2ksbl19LHtiZWdpbktleXdvcmRzOiJkZWZpbmUiLGVuZDovXHsvLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJzZWN0aW9uIixiZWdpbjplLklERU5UX1JFLGVuZHNQYXJlbnQ6ITB9XX0se2JlZ2luOmUuSURFTlRfUkUrIlxccytcXHsiLHJldHVybkJlZ2luOiEwLGVuZDovXFMvLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJrZXl3b3JkIixiZWdpbjplLklERU5UX1JFfSx7YmVnaW46L1x7LyxlbmQ6L1x9LyxrZXl3b3Jkczp0LHJlbGV2YW5jZTowLGNvbnRhaW5zOltsLG4se2JlZ2luOiJbYS16QS1aX10rXFxzKj0+IixyZXR1cm5CZWdpbjohMCxlbmQ6Ij0+Iixjb250YWluczpbe2NsYXNzTmFtZToiYXR0ciIsYmVnaW46ZS5JREVOVF9SRX1dfSx7Y2xhc3NOYW1lOiJudW1iZXIiLGJlZ2luOiIoXFxiMFswLTdfXSspfChcXGIweFswLTlhLWZBLUZfXSspfChcXGJbMS05XVswLTlfXSooXFwuWzAtOV9dKyk/KXxbMF9dXFxiIixyZWxldmFuY2U6MH0sb119XSxyZWxldmFuY2U6MH1dfX1zLmV4cG9ydHM9cn0sNTI1MzpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGUpe2NvbnN0IHQ9e2NsYXNzTmFtZToic3RyaW5nIixiZWdpbjonKH4pPyInLGVuZDonIicsaWxsZWdhbDoiXFxuIn0sbj17Y2xhc3NOYW1lOiJzeW1ib2wiLGJlZ2luOiIjW2EtekEtWl9dXFx3KlxcJD8ifTtyZXR1cm57bmFtZToiUHVyZUJBU0lDIixhbGlhc2VzOlsicGIiLCJwYmkiXSxrZXl3b3JkczoiQWxpZ24gQW5kIEFycmF5IEFzIEJyZWFrIENhbGxEZWJ1Z2dlciBDYXNlIENvbXBpbGVyQ2FzZSBDb21waWxlckRlZmF1bHQgQ29tcGlsZXJFbHNlIENvbXBpbGVyRWxzZUlmIENvbXBpbGVyRW5kSWYgQ29tcGlsZXJFbmRTZWxlY3QgQ29tcGlsZXJFcnJvciBDb21waWxlcklmIENvbXBpbGVyU2VsZWN0IENvbXBpbGVyV2FybmluZyBDb250aW51ZSBEYXRhIERhdGFTZWN0aW9uIERlYnVnIERlYnVnTGV2ZWwgRGVjbGFyZSBEZWNsYXJlQyBEZWNsYXJlQ0RMTCBEZWNsYXJlRExMIERlY2xhcmVNb2R1bGUgRGVmYXVsdCBEZWZpbmUgRGltIERpc2FibGVBU00gRGlzYWJsZURlYnVnZ2VyIERpc2FibGVFeHBsaWNpdCBFbHNlIEVsc2VJZiBFbmFibGVBU00gRW5hYmxlRGVidWdnZXIgRW5hYmxlRXhwbGljaXQgRW5kIEVuZERhdGFTZWN0aW9uIEVuZERlY2xhcmVNb2R1bGUgRW5kRW51bWVyYXRpb24gRW5kSWYgRW5kSW1wb3J0IEVuZEludGVyZmFjZSBFbmRNYWNybyBFbmRNb2R1bGUgRW5kUHJvY2VkdXJlIEVuZFNlbGVjdCBFbmRTdHJ1Y3R1cmUgRW5kU3RydWN0dXJlVW5pb24gRW5kV2l0aCBFbnVtZXJhdGlvbiBFbnVtZXJhdGlvbkJpbmFyeSBFeHRlbmRzIEZha2VSZXR1cm4gRm9yIEZvckVhY2ggRm9yRXZlciBHbG9iYWwgR29zdWIgR290byBJZiBJbXBvcnQgSW1wb3J0QyBJbmNsdWRlQmluYXJ5IEluY2x1ZGVGaWxlIEluY2x1ZGVQYXRoIEludGVyZmFjZSBMaXN0IE1hY3JvIE1hY3JvRXhwYW5kZWRDb3VudCBNYXAgTW9kdWxlIE5ld0xpc3QgTmV3TWFwIE5leHQgTm90IE9yIFByb2NlZHVyZSBQcm9jZWR1cmVDIFByb2NlZHVyZUNETEwgUHJvY2VkdXJlRExMIFByb2NlZHVyZVJldHVybiBQcm90ZWN0ZWQgUHJvdG90eXBlIFByb3RvdHlwZUMgUmVEaW0gUmVhZCBSZXBlYXQgUmVzdG9yZSBSZXR1cm4gUnVudGltZSBTZWxlY3QgU2hhcmVkIFN0YXRpYyBTdGVwIFN0cnVjdHVyZSBTdHJ1Y3R1cmVVbmlvbiBTd2FwIFRocmVhZGVkIFRvIFVuZGVmaW5lTWFjcm8gVW50aWwgVW50aWwgIFVudXNlTW9kdWxlIFVzZU1vZHVsZSBXZW5kIFdoaWxlIFdpdGggWEluY2x1ZGVGaWxlIFhPciIsY29udGFpbnM6W2UuQ09NTUVOVCgiOyIsIiQiLHtyZWxldmFuY2U6MH0pLHtjbGFzc05hbWU6ImZ1bmN0aW9uIixiZWdpbjoiXFxiKFByb2NlZHVyZXxEZWNsYXJlKShDfENETEx8RExMKT9cXGIiLGVuZDoiXFwoIixleGNsdWRlRW5kOiEwLHJldHVybkJlZ2luOiEwLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJrZXl3b3JkIixiZWdpbjoiKFByb2NlZHVyZXxEZWNsYXJlKShDfENETEx8RExMKT8iLGV4Y2x1ZGVFbmQ6ITB9LHtjbGFzc05hbWU6InR5cGUiLGJlZ2luOiJcXC5cXHcqIn0sZS5VTkRFUlNDT1JFX1RJVExFX01PREVdfSx0LG5dfX1zLmV4cG9ydHM9cn0sNjM5MTpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGUpe3JldHVybnthbGlhc2VzOlsicHljb24iXSxjb250YWluczpbe2NsYXNzTmFtZToibWV0YSIsc3RhcnRzOntlbmQ6LyB8JC8sc3RhcnRzOntlbmQ6IiQiLHN1Ykxhbmd1YWdlOiJweXRob24ifX0sdmFyaWFudHM6W3tiZWdpbjovXj4+Pig/PVsgXXwkKS99LHtiZWdpbjovXlwuXC5cLig/PVsgXXwkKS99XX1dfX1zLmV4cG9ydHM9cn0sNzk4MTE6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihhKXtyZXR1cm4gYT90eXBlb2YgYT09InN0cmluZyI/YTphLnNvdXJjZTpudWxsfWZ1bmN0aW9uIGUoYSl7cmV0dXJuIHQoIig/PSIsYSwiKSIpfWZ1bmN0aW9uIHQoLi4uYSl7cmV0dXJuIGEubWFwKG89PnIobykpLmpvaW4oIiIpfWZ1bmN0aW9uIG4oYSl7Y29uc3QgXz17JHBhdHRlcm46L1tBLVphLXpdXHcrfF9fXHcrX18vLGtleXdvcmQ6WyJhbmQiLCJhcyIsImFzc2VydCIsImFzeW5jIiwiYXdhaXQiLCJicmVhayIsImNsYXNzIiwiY29udGludWUiLCJkZWYiLCJkZWwiLCJlbGlmIiwiZWxzZSIsImV4Y2VwdCIsImZpbmFsbHkiLCJmb3IiLCJmcm9tIiwiZ2xvYmFsIiwiaWYiLCJpbXBvcnQiLCJpbiIsImlzIiwibGFtYmRhIiwibm9ubG9jYWx8MTAiLCJub3QiLCJvciIsInBhc3MiLCJyYWlzZSIsInJldHVybiIsInRyeSIsIndoaWxlIiwid2l0aCIsInlpZWxkIl0sYnVpbHRfaW46WyJfX2ltcG9ydF9fIiwiYWJzIiwiYWxsIiwiYW55IiwiYXNjaWkiLCJiaW4iLCJib29sIiwiYnJlYWtwb2ludCIsImJ5dGVhcnJheSIsImJ5dGVzIiwiY2FsbGFibGUiLCJjaHIiLCJjbGFzc21ldGhvZCIsImNvbXBpbGUiLCJjb21wbGV4IiwiZGVsYXR0ciIsImRpY3QiLCJkaXIiLCJkaXZtb2QiLCJlbnVtZXJhdGUiLCJldmFsIiwiZXhlYyIsImZpbHRlciIsImZsb2F0IiwiZm9ybWF0IiwiZnJvemVuc2V0IiwiZ2V0YXR0ciIsImdsb2JhbHMiLCJoYXNhdHRyIiwiaGFzaCIsImhlbHAiLCJoZXgiLCJpZCIsImlucHV0IiwiaW50IiwiaXNpbnN0YW5jZSIsImlzc3ViY2xhc3MiLCJpdGVyIiwibGVuIiwibGlzdCIsImxvY2FscyIsIm1hcCIsIm1heCIsIm1lbW9yeXZpZXciLCJtaW4iLCJuZXh0Iiwib2JqZWN0Iiwib2N0Iiwib3BlbiIsIm9yZCIsInBvdyIsInByaW50IiwicHJvcGVydHkiLCJyYW5nZSIsInJlcHIiLCJyZXZlcnNlZCIsInJvdW5kIiwic2V0Iiwic2V0YXR0ciIsInNsaWNlIiwic29ydGVkIiwic3RhdGljbWV0aG9kIiwic3RyIiwic3VtIiwic3VwZXIiLCJ0dXBsZSIsInR5cGUiLCJ2YXJzIiwiemlwIl0sbGl0ZXJhbDpbIl9fZGVidWdfXyIsIkVsbGlwc2lzIiwiRmFsc2UiLCJOb25lIiwiTm90SW1wbGVtZW50ZWQiLCJUcnVlIl0sdHlwZTpbIkFueSIsIkNhbGxhYmxlIiwiQ29yb3V0aW5lIiwiRGljdCIsIkxpc3QiLCJMaXRlcmFsIiwiR2VuZXJpYyIsIk9wdGlvbmFsIiwiU2VxdWVuY2UiLCJTZXQiLCJUdXBsZSIsIlR5cGUiLCJVbmlvbiJdfSxkPXtjbGFzc05hbWU6Im1ldGEiLGJlZ2luOi9eKD4+PnxcLlwuXC4pIC99LGc9e2NsYXNzTmFtZToic3Vic3QiLGJlZ2luOi9cey8sZW5kOi9cfS8sa2V5d29yZHM6XyxpbGxlZ2FsOi8jL30sRT17YmVnaW46L1x7XHsvLHJlbGV2YW5jZTowfSx1PXtjbGFzc05hbWU6InN0cmluZyIsY29udGFpbnM6W2EuQkFDS1NMQVNIX0VTQ0FQRV0sdmFyaWFudHM6W3tiZWdpbjovKFt1VV18W2JCXXxbclJdfFtiQl1bclJdfFtyUl1bYkJdKT8nJycvLGVuZDovJycnLyxjb250YWluczpbYS5CQUNLU0xBU0hfRVNDQVBFLGRdLHJlbGV2YW5jZToxMH0se2JlZ2luOi8oW3VVXXxbYkJdfFtyUl18W2JCXVtyUl18W3JSXVtiQl0pPyIiIi8sZW5kOi8iIiIvLGNvbnRhaW5zOlthLkJBQ0tTTEFTSF9FU0NBUEUsZF0scmVsZXZhbmNlOjEwfSx7YmVnaW46LyhbZkZdW3JSXXxbclJdW2ZGXXxbZkZdKScnJy8sZW5kOi8nJycvLGNvbnRhaW5zOlthLkJBQ0tTTEFTSF9FU0NBUEUsZCxFLGddfSx7YmVnaW46LyhbZkZdW3JSXXxbclJdW2ZGXXxbZkZdKSIiIi8sZW5kOi8iIiIvLGNvbnRhaW5zOlthLkJBQ0tTTEFTSF9FU0NBUEUsZCxFLGddfSx7YmVnaW46LyhbdVVdfFtyUl0pJy8sZW5kOi8nLyxyZWxldmFuY2U6MTB9LHtiZWdpbjovKFt1VV18W3JSXSkiLyxlbmQ6LyIvLHJlbGV2YW5jZToxMH0se2JlZ2luOi8oW2JCXXxbYkJdW3JSXXxbclJdW2JCXSknLyxlbmQ6LycvfSx7YmVnaW46LyhbYkJdfFtiQl1bclJdfFtyUl1bYkJdKSIvLGVuZDovIi99LHtiZWdpbjovKFtmRl1bclJdfFtyUl1bZkZdfFtmRl0pJy8sZW5kOi8nLyxjb250YWluczpbYS5CQUNLU0xBU0hfRVNDQVBFLEUsZ119LHtiZWdpbjovKFtmRl1bclJdfFtyUl1bZkZdfFtmRl0pIi8sZW5kOi8iLyxjb250YWluczpbYS5CQUNLU0xBU0hfRVNDQVBFLEUsZ119LGEuQVBPU19TVFJJTkdfTU9ERSxhLlFVT1RFX1NUUklOR19NT0RFXX0sbT0iWzAtOV0oXz9bMC05XSkqIixTPWAoXFxiKCR7bX0pKT9cXC4oJHttfSl8XFxiKCR7bX0pXFwuYCxUPXtjbGFzc05hbWU6Im51bWJlciIscmVsZXZhbmNlOjAsdmFyaWFudHM6W3tiZWdpbjpgKFxcYigke219KXwoJHtTfSkpW2VFXVsrLV0/KCR7bX0pW2pKXT9cXGJgfSx7YmVnaW46YCgke1N9KVtqSl0/YH0se2JlZ2luOiJcXGIoWzEtOV0oXz9bMC05XSkqfDArKF8/MCkqKVtsTGpKXT9cXGIifSx7YmVnaW46IlxcYjBbYkJdKF8/WzAxXSkrW2xMXT9cXGIifSx7YmVnaW46IlxcYjBbb09dKF8/WzAtN10pK1tsTF0/XFxiIn0se2JlZ2luOiJcXGIwW3hYXShfP1swLTlhLWZBLUZdKStbbExdP1xcYiJ9LHtiZWdpbjpgXFxiKCR7bX0pW2pKXVxcYmB9XX0sYj17Y2xhc3NOYW1lOiJjb21tZW50IixiZWdpbjplKC8jIHR5cGU6LyksZW5kOi8kLyxrZXl3b3JkczpfLGNvbnRhaW5zOlt7YmVnaW46LyMgdHlwZTovfSx7YmVnaW46LyMvLGVuZDovXGJcQi8sZW5kc1dpdGhQYXJlbnQ6ITB9XX0sZj17Y2xhc3NOYW1lOiJwYXJhbXMiLHZhcmlhbnRzOlt7Y2xhc3NOYW1lOiIiLGJlZ2luOi9cKFxzKlwpLyxza2lwOiEwfSx7YmVnaW46L1woLyxlbmQ6L1wpLyxleGNsdWRlQmVnaW46ITAsZXhjbHVkZUVuZDohMCxrZXl3b3JkczpfLGNvbnRhaW5zOlsic2VsZiIsZCxULHUsYS5IQVNIX0NPTU1FTlRfTU9ERV19XX07cmV0dXJuIGcuY29udGFpbnM9W3UsVCxkXSx7bmFtZToiUHl0aG9uIixhbGlhc2VzOlsicHkiLCJneXAiLCJpcHl0aG9uIl0sa2V5d29yZHM6XyxpbGxlZ2FsOi8oPFwvfC0+fFw/KXw9Pi8sY29udGFpbnM6W2QsVCx7YmVnaW46L1xic2VsZlxiL30se2JlZ2luS2V5d29yZHM6ImlmIixyZWxldmFuY2U6MH0sdSxiLGEuSEFTSF9DT01NRU5UX01PREUse3ZhcmlhbnRzOlt7Y2xhc3NOYW1lOiJmdW5jdGlvbiIsYmVnaW5LZXl3b3JkczoiZGVmIn0se2NsYXNzTmFtZToiY2xhc3MiLGJlZ2luS2V5d29yZHM6ImNsYXNzIn1dLGVuZDovOi8saWxsZWdhbDovWyR7PTtcbixdLyxjb250YWluczpbYS5VTkRFUlNDT1JFX1RJVExFX01PREUsZix7YmVnaW46Ly0+LyxlbmRzV2l0aFBhcmVudDohMCxrZXl3b3JkczpffV19LHtjbGFzc05hbWU6Im1ldGEiLGJlZ2luOi9eW1x0IF0qQC8sZW5kOi8oPz0jKXwkLyxjb250YWluczpbVCxmLHVdfV19fXMuZXhwb3J0cz1ufSwyMjEwMTpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGUpe3JldHVybntuYW1lOiJRIixhbGlhc2VzOlsiayIsImtkYiJdLGtleXdvcmRzOnskcGF0dGVybjovKGA/KVtBLVphLXowLTlfXStcYi8sa2V5d29yZDoiZG8gd2hpbGUgc2VsZWN0IGRlbGV0ZSBieSB1cGRhdGUgZnJvbSIsbGl0ZXJhbDoiMGIgMWIiLGJ1aWx0X2luOiJuZWcgbm90IG51bGwgc3RyaW5nIHJlY2lwcm9jYWwgZmxvb3IgY2VpbGluZyBzaWdudW0gbW9kIHhiYXIgeGxvZyBhbmQgb3IgZWFjaCBzY2FuIG92ZXIgcHJpb3IgbW11IGxzcSBpbnYgbWQ1IGx0aW1lIGd0aW1lIGNvdW50IGZpcnN0IHZhciBkZXYgbWVkIGNvdiBjb3IgYWxsIGFueSByYW5kIHN1bXMgcHJkcyBtaW5zIG1heHMgZmlsbHMgZGVsdGFzIHJhdGlvcyBhdmdzIGRpZmZlciBwcmV2IG5leHQgcmFuayByZXZlcnNlIGlhc2MgaWRlc2MgYXNjIGRlc2MgbXN1bSBtY291bnQgbWF2ZyBtZGV2IHhyYW5rIG1taW4gbW1heCB4cHJldiByb3RhdGUgZGlzdGluY3QgZ3JvdXAgd2hlcmUgZmxpcCB0eXBlIGtleSB0aWwgZ2V0IHZhbHVlIGF0dHIgY3V0IHNldCB1cHNlcnQgcmF6ZSB1bmlvbiBpbnRlciBleGNlcHQgY3Jvc3Mgc3YgdnMgc3VibGlzdCBlbmxpc3QgcmVhZDAgcmVhZDEgaG9wZW4gaGNsb3NlIGhkZWwgaHN5bSBoY291bnQgcGVhY2ggc3lzdGVtIGx0cmltIHJ0cmltIHRyaW0gbG93ZXIgdXBwZXIgc3NyIHZpZXcgdGFibGVzIHZpZXdzIGNvbHMgeGNvbHMga2V5cyB4a2V5IHhjb2wgeGFzYyB4ZGVzYyBma2V5cyBtZXRhIGxqIGFqIGFqMCBpaiBwaiBhc29mIHVqIHd3IHdqIHdqMSBmYnkgeGdyb3VwIHVuZ3JvdXAgZWogc2F2ZSBsb2FkIHJzYXZlIHJsb2FkIHNob3cgY3N2IHBhcnNlIGV2YWwgbWluIG1heCBhdmcgd2F2ZyB3c3VtIHNpbiBjb3MgdGFuIHN1bSIsdHlwZToiYGZsb2F0IGBkb3VibGUgaW50IGB0aW1lc3RhbXAgYHRpbWVzcGFuIGBkYXRldGltZSBgdGltZSBgYm9vbGVhbiBgc3ltYm9sIGBjaGFyIGBieXRlIGBzaG9ydCBgbG9uZyBgcmVhbCBgbW9udGggYGRhdGUgYG1pbnV0ZSBgc2Vjb25kIGBndWlkIn0sY29udGFpbnM6W2UuQ19MSU5FX0NPTU1FTlRfTU9ERSxlLlFVT1RFX1NUUklOR19NT0RFLGUuQ19OVU1CRVJfTU9ERV19fXMuZXhwb3J0cz1yfSwyMDA3MDpmdW5jdGlvbihzKXtmdW5jdGlvbiByKG4pe3JldHVybiBuP3R5cGVvZiBuPT0ic3RyaW5nIj9uOm4uc291cmNlOm51bGx9ZnVuY3Rpb24gZSguLi5uKXtyZXR1cm4gbi5tYXAoaT0+cihpKSkuam9pbigiIil9ZnVuY3Rpb24gdChuKXtjb25zdCBhPXtrZXl3b3JkOiJpbiBvZiBvbiBpZiBmb3Igd2hpbGUgZmluYWxseSB2YXIgbmV3IGZ1bmN0aW9uIGRvIHJldHVybiB2b2lkIGVsc2UgYnJlYWsgY2F0Y2ggaW5zdGFuY2VvZiB3aXRoIHRocm93IGNhc2UgZGVmYXVsdCB0cnkgdGhpcyBzd2l0Y2ggY29udGludWUgdHlwZW9mIGRlbGV0ZSBsZXQgeWllbGQgY29uc3QgZXhwb3J0IHN1cGVyIGRlYnVnZ2VyIGFzIGFzeW5jIGF3YWl0IGltcG9ydCIsbGl0ZXJhbDoidHJ1ZSBmYWxzZSBudWxsIHVuZGVmaW5lZCBOYU4gSW5maW5pdHkiLGJ1aWx0X2luOiJldmFsIGlzRmluaXRlIGlzTmFOIHBhcnNlRmxvYXQgcGFyc2VJbnQgZGVjb2RlVVJJIGRlY29kZVVSSUNvbXBvbmVudCBlbmNvZGVVUkkgZW5jb2RlVVJJQ29tcG9uZW50IGVzY2FwZSB1bmVzY2FwZSBPYmplY3QgRnVuY3Rpb24gQm9vbGVhbiBFcnJvciBFdmFsRXJyb3IgSW50ZXJuYWxFcnJvciBSYW5nZUVycm9yIFJlZmVyZW5jZUVycm9yIFN0b3BJdGVyYXRpb24gU3ludGF4RXJyb3IgVHlwZUVycm9yIFVSSUVycm9yIE51bWJlciBNYXRoIERhdGUgU3RyaW5nIFJlZ0V4cCBBcnJheSBGbG9hdDMyQXJyYXkgRmxvYXQ2NEFycmF5IEludDE2QXJyYXkgSW50MzJBcnJheSBJbnQ4QXJyYXkgVWludDE2QXJyYXkgVWludDMyQXJyYXkgVWludDhBcnJheSBVaW50OENsYW1wZWRBcnJheSBBcnJheUJ1ZmZlciBEYXRhVmlldyBKU09OIEludGwgYXJndW1lbnRzIHJlcXVpcmUgbW9kdWxlIGNvbnNvbGUgd2luZG93IGRvY3VtZW50IFN5bWJvbCBTZXQgTWFwIFdlYWtTZXQgV2Vha01hcCBQcm94eSBSZWZsZWN0IEJlaGF2aW9yIGJvb2wgY29sb3IgY29vcmRpbmF0ZSBkYXRlIGRvdWJsZSBlbnVtZXJhdGlvbiBmb250IGdlb2NpcmNsZSBnZW9yZWN0YW5nbGUgZ2Vvc2hhcGUgaW50IGxpc3QgbWF0cml4NHg0IHBhcmVudCBwb2ludCBxdWF0ZXJuaW9uIHJlYWwgcmVjdCBzaXplIHN0cmluZyB1cmwgdmFyaWFudCB2ZWN0b3IyZCB2ZWN0b3IzZCB2ZWN0b3I0ZCBQcm9taXNlIn0saT0iW2EtekEtWl9dW2EtekEtWjAtOVxcLl9dKiIsbz17Y2xhc3NOYW1lOiJrZXl3b3JkIixiZWdpbjoiXFxicHJvcGVydHlcXGIiLHN0YXJ0czp7Y2xhc3NOYW1lOiJzdHJpbmciLGVuZDoiKDp8PXw7fCx8Ly98L1xcKnwkKSIscmV0dXJuRW5kOiEwfX0sbD17Y2xhc3NOYW1lOiJrZXl3b3JkIixiZWdpbjoiXFxic2lnbmFsXFxiIixzdGFydHM6e2NsYXNzTmFtZToic3RyaW5nIixlbmQ6IihcXCh8Onw9fDt8LHwvL3wvXFwqfCQpIixyZXR1cm5FbmQ6ITB9fSxjPXtjbGFzc05hbWU6ImF0dHJpYnV0ZSIsYmVnaW46IlxcYmlkXFxzKjoiLHN0YXJ0czp7Y2xhc3NOYW1lOiJzdHJpbmciLGVuZDppLHJldHVybkVuZDohMX19LF89e2JlZ2luOmkrIlxccyo6IixyZXR1cm5CZWdpbjohMCxjb250YWluczpbe2NsYXNzTmFtZToiYXR0cmlidXRlIixiZWdpbjppLGVuZDoiXFxzKjoiLGV4Y2x1ZGVFbmQ6ITAscmVsZXZhbmNlOjB9XSxyZWxldmFuY2U6MH0sZD17YmVnaW46ZShpLC9ccypcey8pLGVuZDovXHsvLHJldHVybkJlZ2luOiEwLHJlbGV2YW5jZTowLGNvbnRhaW5zOltuLmluaGVyaXQobi5USVRMRV9NT0RFLHtiZWdpbjppfSldfTtyZXR1cm57bmFtZToiUU1MIixhbGlhc2VzOlsicXQiXSxjYXNlX2luc2Vuc2l0aXZlOiExLGtleXdvcmRzOmEsY29udGFpbnM6W3tjbGFzc05hbWU6Im1ldGEiLGJlZ2luOi9eXHMqWyciXXVzZSAoc3RyaWN0fGFzbSlbJyJdL30sbi5BUE9TX1NUUklOR19NT0RFLG4uUVVPVEVfU1RSSU5HX01PREUse2NsYXNzTmFtZToic3RyaW5nIixiZWdpbjoiYCIsZW5kOiJgIixjb250YWluczpbbi5CQUNLU0xBU0hfRVNDQVBFLHtjbGFzc05hbWU6InN1YnN0IixiZWdpbjoiXFwkXFx7IixlbmQ6IlxcfSJ9XX0sbi5DX0xJTkVfQ09NTUVOVF9NT0RFLG4uQ19CTE9DS19DT01NRU5UX01PREUse2NsYXNzTmFtZToibnVtYmVyIix2YXJpYW50czpbe2JlZ2luOiJcXGIoMFtiQl1bMDFdKykifSx7YmVnaW46IlxcYigwW29PXVswLTddKykifSx7YmVnaW46bi5DX05VTUJFUl9SRX1dLHJlbGV2YW5jZTowfSx7YmVnaW46IigiK24uUkVfU1RBUlRFUlNfUkUrInxcXGIoY2FzZXxyZXR1cm58dGhyb3cpXFxiKVxccyoiLGtleXdvcmRzOiJyZXR1cm4gdGhyb3cgY2FzZSIsY29udGFpbnM6W24uQ19MSU5FX0NPTU1FTlRfTU9ERSxuLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLG4uUkVHRVhQX01PREUse2JlZ2luOi88LyxlbmQ6Lz5ccypbKTtcXV0vLHJlbGV2YW5jZTowLHN1Ykxhbmd1YWdlOiJ4bWwifV0scmVsZXZhbmNlOjB9LGwsbyx7Y2xhc3NOYW1lOiJmdW5jdGlvbiIsYmVnaW5LZXl3b3JkczoiZnVuY3Rpb24iLGVuZDovXHsvLGV4Y2x1ZGVFbmQ6ITAsY29udGFpbnM6W24uaW5oZXJpdChuLlRJVExFX01PREUse2JlZ2luOi9bQS1aYS16JF9dWzAtOUEtWmEteiRfXSovfSkse2NsYXNzTmFtZToicGFyYW1zIixiZWdpbjovXCgvLGVuZDovXCkvLGV4Y2x1ZGVCZWdpbjohMCxleGNsdWRlRW5kOiEwLGNvbnRhaW5zOltuLkNfTElORV9DT01NRU5UX01PREUsbi5DX0JMT0NLX0NPTU1FTlRfTU9ERV19XSxpbGxlZ2FsOi9cW3wlL30se2JlZ2luOiJcXC4iK24uSURFTlRfUkUscmVsZXZhbmNlOjB9LGMsXyxkXSxpbGxlZ2FsOi8jL319cy5leHBvcnRzPXR9LDc4NTA2OmZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHIoYSl7cmV0dXJuIGE/dHlwZW9mIGE9PSJzdHJpbmciP2E6YS5zb3VyY2U6bnVsbH1mdW5jdGlvbiBlKGEpe3JldHVybiB0KCIoPz0iLGEsIikiKX1mdW5jdGlvbiB0KC4uLmEpe3JldHVybiBhLm1hcChvPT5yKG8pKS5qb2luKCIiKX1mdW5jdGlvbiBuKGEpe2NvbnN0IGk9Lyg/Oig/OlthLXpBLVpdfFwuWy5fYS16QS1aXSlbLl9hLXpBLVowLTldKil8XC4oPyFcZCkvLG89L1thLXpBLVpdW2EtekEtWl8wLTldKi87cmV0dXJue25hbWU6IlIiLGlsbGVnYWw6Ly0+LyxrZXl3b3Jkczp7JHBhdHRlcm46aSxrZXl3b3JkOiJmdW5jdGlvbiBpZiBpbiBicmVhayBuZXh0IHJlcGVhdCBlbHNlIGZvciB3aGlsZSIsbGl0ZXJhbDoiTlVMTCBOQSBUUlVFIEZBTFNFIEluZiBOYU4gTkFfaW50ZWdlcl98MTAgTkFfcmVhbF98MTAgTkFfY2hhcmFjdGVyX3wxMCBOQV9jb21wbGV4X3wxMCIsYnVpbHRfaW46IkxFVFRFUlMgbGV0dGVycyBtb250aC5hYmIgbW9udGgubmFtZSBwaSBUIEYgYWJzIGFjb3MgYWNvc2ggYWxsIGFueSBhbnlOQSBBcmcgYXMuY2FsbCBhcy5jaGFyYWN0ZXIgYXMuY29tcGxleCBhcy5kb3VibGUgYXMuZW52aXJvbm1lbnQgYXMuaW50ZWdlciBhcy5sb2dpY2FsIGFzLm51bGwuZGVmYXVsdCBhcy5udW1lcmljIGFzLnJhdyBhc2luIGFzaW5oIGF0YW4gYXRhbmggYXR0ciBhdHRyaWJ1dGVzIGJhc2VlbnYgYnJvd3NlciBjIGNhbGwgY2VpbGluZyBjbGFzcyBDb25qIGNvcyBjb3NoIGNvc3BpIGN1bW1heCBjdW1taW4gY3VtcHJvZCBjdW1zdW0gZGlnYW1tYSBkaW0gZGltbmFtZXMgZW1wdHllbnYgZXhwIGV4cHJlc3Npb24gZmxvb3IgZm9yY2VBbmRDYWxsIGdhbW1hIGdjLnRpbWUgZ2xvYmFsZW52IEltIGludGVyYWN0aXZlIGludmlzaWJsZSBpcy5hcnJheSBpcy5hdG9taWMgaXMuY2FsbCBpcy5jaGFyYWN0ZXIgaXMuY29tcGxleCBpcy5kb3VibGUgaXMuZW52aXJvbm1lbnQgaXMuZXhwcmVzc2lvbiBpcy5maW5pdGUgaXMuZnVuY3Rpb24gaXMuaW5maW5pdGUgaXMuaW50ZWdlciBpcy5sYW5ndWFnZSBpcy5saXN0IGlzLmxvZ2ljYWwgaXMubWF0cml4IGlzLm5hIGlzLm5hbWUgaXMubmFuIGlzLm51bGwgaXMubnVtZXJpYyBpcy5vYmplY3QgaXMucGFpcmxpc3QgaXMucmF3IGlzLnJlY3Vyc2l2ZSBpcy5zaW5nbGUgaXMuc3ltYm9sIGxhenlMb2FkREJmZXRjaCBsZW5ndGggbGdhbW1hIGxpc3QgbG9nIG1heCBtaW4gbWlzc2luZyBNb2QgbmFtZXMgbmFyZ3MgbnpjaGFyIG9sZENsYXNzIG9uLmV4aXQgcG9zLnRvLmVudiBwcm9jLnRpbWUgcHJvZCBxdW90ZSByYW5nZSBSZSByZXAgcmV0cmFjZW1lbSByZXR1cm4gcm91bmQgc2VxX2Fsb25nIHNlcV9sZW4gc2VxLmludCBzaWduIHNpZ25pZiBzaW4gc2luaCBzaW5waSBzcXJ0IHN0YW5kYXJkR2VuZXJpYyBzdWJzdGl0dXRlIHN1bSBzd2l0Y2ggdGFuIHRhbmggdGFucGkgdHJhY2VtZW0gdHJpZ2FtbWEgdHJ1bmMgdW5jbGFzcyB1bnRyYWNlbWVtIFVzZU1ldGhvZCB4dGZybSJ9LGNvbXBpbGVyRXh0ZW5zaW9uczpbKGwsYyk9PntpZighbC5iZWZvcmVNYXRjaClyZXR1cm47aWYobC5zdGFydHMpdGhyb3cgbmV3IEVycm9yKCJiZWZvcmVNYXRjaCBjYW5ub3QgYmUgdXNlZCB3aXRoIHN0YXJ0cyIpO2NvbnN0IF89T2JqZWN0LmFzc2lnbih7fSxsKTtPYmplY3Qua2V5cyhsKS5mb3JFYWNoKGQ9PntkZWxldGUgbFtkXX0pLGwuYmVnaW49dChfLmJlZm9yZU1hdGNoLGUoXy5iZWdpbikpLGwuc3RhcnRzPXtyZWxldmFuY2U6MCxjb250YWluczpbT2JqZWN0LmFzc2lnbihfLHtlbmRzUGFyZW50OiEwfSldfSxsLnJlbGV2YW5jZT0wLGRlbGV0ZSBfLmJlZm9yZU1hdGNofV0sY29udGFpbnM6W2EuQ09NTUVOVCgvIycvLC8kLyx7Y29udGFpbnM6W3tjbGFzc05hbWU6ImRvY3RhZyIsYmVnaW46IkBleGFtcGxlcyIsc3RhcnRzOntjb250YWluczpbe2JlZ2luOi9cbi99LHtiZWdpbjovIydccyooPz1AW2EtekEtWl0rKS8sZW5kc1BhcmVudDohMH0se2JlZ2luOi8jJy8sZW5kOi8kLyxleGNsdWRlQmVnaW46ITB9XX19LHtjbGFzc05hbWU6ImRvY3RhZyIsYmVnaW46IkBwYXJhbSIsZW5kOi8kLyxjb250YWluczpbe2NsYXNzTmFtZToidmFyaWFibGUiLHZhcmlhbnRzOlt7YmVnaW46aX0se2JlZ2luOi9gKD86XFwufFteYFxcXSkrYC99XSxlbmRzUGFyZW50OiEwfV19LHtjbGFzc05hbWU6ImRvY3RhZyIsYmVnaW46L0BbYS16QS1aXSsvfSx7Y2xhc3NOYW1lOiJtZXRhLWtleXdvcmQiLGJlZ2luOi9cXFthLXpBLVpdKy99XX0pLGEuSEFTSF9DT01NRU5UX01PREUse2NsYXNzTmFtZToic3RyaW5nIixjb250YWluczpbYS5CQUNLU0xBU0hfRVNDQVBFXSx2YXJpYW50czpbYS5FTkRfU0FNRV9BU19CRUdJTih7YmVnaW46L1tyUl0iKC0qKVwoLyxlbmQ6L1wpKC0qKSIvfSksYS5FTkRfU0FNRV9BU19CRUdJTih7YmVnaW46L1tyUl0iKC0qKVx7LyxlbmQ6L1x9KC0qKSIvfSksYS5FTkRfU0FNRV9BU19CRUdJTih7YmVnaW46L1tyUl0iKC0qKVxbLyxlbmQ6L1xdKC0qKSIvfSksYS5FTkRfU0FNRV9BU19CRUdJTih7YmVnaW46L1tyUl0nKC0qKVwoLyxlbmQ6L1wpKC0qKScvfSksYS5FTkRfU0FNRV9BU19CRUdJTih7YmVnaW46L1tyUl0nKC0qKVx7LyxlbmQ6L1x9KC0qKScvfSksYS5FTkRfU0FNRV9BU19CRUdJTih7YmVnaW46L1tyUl0nKC0qKVxbLyxlbmQ6L1xdKC0qKScvfSkse2JlZ2luOiciJyxlbmQ6JyInLHJlbGV2YW5jZTowfSx7YmVnaW46IiciLGVuZDoiJyIscmVsZXZhbmNlOjB9XX0se2NsYXNzTmFtZToibnVtYmVyIixyZWxldmFuY2U6MCxiZWZvcmVNYXRjaDovKFteYS16QS1aMC05Ll9dKS8sdmFyaWFudHM6W3ttYXRjaDovMFt4WF1bMC05YS1mQS1GXStcLlswLTlhLWZBLUZdKltwUF1bKy1dP1xkK2k/L30se21hdGNoOi8wW3hYXVswLTlhLWZBLUZdKyhbcFBdWystXT9cZCspP1tMaV0/L30se21hdGNoOi8oXGQrKFwuXGQqKT98XC5cZCspKFtlRV1bKy1dP1xkKyk/W0xpXT8vfV19LHtiZWdpbjoiJSIsZW5kOiIlIn0se2JlZ2luOnQobywiXFxzKzwtXFxzKyIpfSx7YmVnaW46ImAiLGVuZDoiYCIsY29udGFpbnM6W3tiZWdpbjovXFwuL31dfV19fXMuZXhwb3J0cz1ufSw3NTE4MDpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGUpe2Z1bmN0aW9uIHQoeSl7cmV0dXJuIHkubWFwKGZ1bmN0aW9uKEEpe3JldHVybiBBLnNwbGl0KCIiKS5tYXAoZnVuY3Rpb24oayl7cmV0dXJuIlxcIitrfSkuam9pbigiIil9KS5qb2luKCJ8Iil9Y29uc3Qgbj0ifj9bYS16JF9dWzAtOWEtekEtWiRfXSoiLGE9ImA/W0EtWiRfXVswLTlhLXpBLVokX10qIixpPSInP1thLXokX11bMC05YS16JF9dKiIsbz0iXFxzKjpcXHMqW2EteiRfXVswLTlhLXokX10qKFxcKFxccyooIitpKyJcXHMqKCwiK2krIlxccyopKik/XFwpKT8iLGw9bisiKCIrbysiKXswLDJ9IixjPSIoIit0KFsifHwiLCIrKyIsIioqIiwiKy4iLCIqIiwiLyIsIiouIiwiLy4iLCIuLi4iXSkrInxcXHw+fCYmfD09fD09PSkiLF89IlxccysiK2MrIlxccysiLGQ9e2tleXdvcmQ6ImFuZCBhcyBhc3IgYXNzZXJ0IGJlZ2luIGNsYXNzIGNvbnN0cmFpbnQgZG8gZG9uZSBkb3dudG8gZWxzZSBlbmQgZXhjZXB0aW9uIGV4dGVybmFsIGZvciBmdW4gZnVuY3Rpb24gZnVuY3RvciBpZiBpbiBpbmNsdWRlIGluaGVyaXQgaW5pdGlhbGl6ZXIgbGFuZCBsYXp5IGxldCBsb3IgbHNsIGxzciBseG9yIG1hdGNoIG1ldGhvZCBtb2QgbW9kdWxlIG11dGFibGUgbmV3IG5vbnJlYyBvYmplY3Qgb2Ygb3BlbiBvciBwcml2YXRlIHJlYyBzaWcgc3RydWN0IHRoZW4gdG8gdHJ5IHR5cGUgdmFsIHZpcnR1YWwgd2hlbiB3aGlsZSB3aXRoIixidWlsdF9pbjoiYXJyYXkgYm9vbCBieXRlcyBjaGFyIGV4bnw1IGZsb2F0IGludCBpbnQzMiBpbnQ2NCBsaXN0IGxhenlfdHw1IG5hdGl2ZWludHw1IHJlZiBzdHJpbmcgdW5pdCAiLGxpdGVyYWw6InRydWUgZmFsc2UifSxnPSJcXGIoMFt4WF1bYS1mQS1GMC05X10rW0xsbl0/fDBbb09dWzAtN19dK1tMbG5dP3wwW2JCXVswMV9dK1tMbG5dP3xbMC05XVswLTlfXSooW0xsbl18KFxcLlswLTlfXSopPyhbZUVdWy0rXT9bMC05X10rKT8pPykiLEU9e2NsYXNzTmFtZToibnVtYmVyIixyZWxldmFuY2U6MCx2YXJpYW50czpbe2JlZ2luOmd9LHtiZWdpbjoiXFwoLSIrZysiXFwpIn1dfSx1PXtjbGFzc05hbWU6Im9wZXJhdG9yIixyZWxldmFuY2U6MCxiZWdpbjpjfSxtPVt7Y2xhc3NOYW1lOiJpZGVudGlmaWVyIixyZWxldmFuY2U6MCxiZWdpbjpufSx1LEVdLFM9W2UuUVVPVEVfU1RSSU5HX01PREUsdSx7Y2xhc3NOYW1lOiJtb2R1bGUiLGJlZ2luOiJcXGIiK2EscmV0dXJuQmVnaW46ITAsZW5kOiIuIixjb250YWluczpbe2NsYXNzTmFtZToiaWRlbnRpZmllciIsYmVnaW46YSxyZWxldmFuY2U6MH1dfV0sVD1be2NsYXNzTmFtZToibW9kdWxlIixiZWdpbjoiXFxiIithLHJldHVybkJlZ2luOiEwLGVuZDoiLiIscmVsZXZhbmNlOjAsY29udGFpbnM6W3tjbGFzc05hbWU6ImlkZW50aWZpZXIiLGJlZ2luOmEscmVsZXZhbmNlOjB9XX1dLGI9e2JlZ2luOm4sZW5kOiIoLHxcXG58XFwpKSIscmVsZXZhbmNlOjAsY29udGFpbnM6W3Use2NsYXNzTmFtZToidHlwaW5nIixiZWdpbjoiOiIsZW5kOiIoLHxcXG4pIixyZXR1cm5CZWdpbjohMCxyZWxldmFuY2U6MCxjb250YWluczpUfV19LGY9e2NsYXNzTmFtZToiZnVuY3Rpb24iLHJlbGV2YW5jZTowLGtleXdvcmRzOmQsdmFyaWFudHM6W3tiZWdpbjoiXFxzKFxcKFxcLj8uKj9cXCl8IituKyIpXFxzKj0+IixlbmQ6Ilxccyo9PiIscmV0dXJuQmVnaW46ITAscmVsZXZhbmNlOjAsY29udGFpbnM6W3tjbGFzc05hbWU6InBhcmFtcyIsdmFyaWFudHM6W3tiZWdpbjpufSx7YmVnaW46bH0se2JlZ2luOi9cKFxzKlwpL31dfV19LHtiZWdpbjoiXFxzXFwoXFwuP1teO1xcfF0qXFwpXFxzKj0+IixlbmQ6Ilxccz0+IixyZXR1cm5CZWdpbjohMCxyZWxldmFuY2U6MCxjb250YWluczpbe2NsYXNzTmFtZToicGFyYW1zIixyZWxldmFuY2U6MCx2YXJpYW50czpbYl19XX0se2JlZ2luOiJcXChcXC5cXHMiK24rIlxcKVxccyo9PiJ9XX07Uy5wdXNoKGYpO2NvbnN0IEM9e2NsYXNzTmFtZToiY29uc3RydWN0b3IiLGJlZ2luOmErIlxcKCIsZW5kOiJcXCkiLGlsbGVnYWw6IlxcbiIsa2V5d29yZHM6ZCxjb250YWluczpbZS5RVU9URV9TVFJJTkdfTU9ERSx1LHtjbGFzc05hbWU6InBhcmFtcyIsYmVnaW46IlxcYiIrbn1dfSxPPXtjbGFzc05hbWU6InBhdHRlcm4tbWF0Y2giLGJlZ2luOiJcXHwiLHJldHVybkJlZ2luOiEwLGtleXdvcmRzOmQsZW5kOiI9PiIscmVsZXZhbmNlOjAsY29udGFpbnM6W0MsdSx7cmVsZXZhbmNlOjAsY2xhc3NOYW1lOiJjb25zdHJ1Y3RvciIsYmVnaW46YX1dfSxEPXtjbGFzc05hbWU6Im1vZHVsZS1hY2Nlc3MiLGtleXdvcmRzOmQscmV0dXJuQmVnaW46ITAsdmFyaWFudHM6W3tiZWdpbjoiXFxiKCIrYSsiXFwuKSsiK259LHtiZWdpbjoiXFxiKCIrYSsiXFwuKStcXCgiLGVuZDoiXFwpIixyZXR1cm5CZWdpbjohMCxjb250YWluczpbZix7YmVnaW46IlxcKCIsZW5kOiJcXCkiLHNraXA6ITB9XS5jb25jYXQoUyl9LHtiZWdpbjoiXFxiKCIrYSsiXFwuKStcXHsiLGVuZDovXH0vfV0sY29udGFpbnM6U307cmV0dXJuIFQucHVzaChEKSx7bmFtZToiUmVhc29uTUwiLGFsaWFzZXM6WyJyZSJdLGtleXdvcmRzOmQsaWxsZWdhbDoiKDotfDo9fFxcJFxce3xcXCs9KSIsY29udGFpbnM6W2UuQ09NTUVOVCgiL1xcKiIsIlxcKi8iLHtpbGxlZ2FsOiJeKCMsXFwvXFwvKSJ9KSx7Y2xhc3NOYW1lOiJjaGFyYWN0ZXIiLGJlZ2luOiInKFxcXFxbXiddK3xbXiddKSciLGlsbGVnYWw6IlxcbiIscmVsZXZhbmNlOjB9LGUuUVVPVEVfU1RSSU5HX01PREUse2NsYXNzTmFtZToibGl0ZXJhbCIsYmVnaW46IlxcKFxcKSIscmVsZXZhbmNlOjB9LHtjbGFzc05hbWU6ImxpdGVyYWwiLGJlZ2luOiJcXFtcXHwiLGVuZDoiXFx8XFxdIixyZWxldmFuY2U6MCxjb250YWluczptfSx7Y2xhc3NOYW1lOiJsaXRlcmFsIixiZWdpbjoiXFxbIixlbmQ6IlxcXSIscmVsZXZhbmNlOjAsY29udGFpbnM6bX0sQyx7Y2xhc3NOYW1lOiJvcGVyYXRvciIsYmVnaW46XyxpbGxlZ2FsOiItLT4iLHJlbGV2YW5jZTowfSxFLGUuQ19MSU5FX0NPTU1FTlRfTU9ERSxPLGYse2NsYXNzTmFtZToibW9kdWxlLWRlZiIsYmVnaW46IlxcYm1vZHVsZVxccysiK24rIlxccysiK2ErIlxccys9XFxzK1xceyIsZW5kOi9cfS8scmV0dXJuQmVnaW46ITAsa2V5d29yZHM6ZCxyZWxldmFuY2U6MCxjb250YWluczpbe2NsYXNzTmFtZToibW9kdWxlIixyZWxldmFuY2U6MCxiZWdpbjphfSx7YmVnaW46L1x7LyxlbmQ6L1x9Lyxza2lwOiEwfV0uY29uY2F0KFMpfSxEXX19cy5leHBvcnRzPXJ9LDYxODE4OmZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHIoZSl7cmV0dXJue25hbWU6IlJlbmRlck1hbiBSSUIiLGtleXdvcmRzOiJBcmNoaXZlUmVjb3JkIEFyZWFMaWdodFNvdXJjZSBBdG1vc3BoZXJlIEF0dHJpYnV0ZSBBdHRyaWJ1dGVCZWdpbiBBdHRyaWJ1dGVFbmQgQmFzaXMgQmVnaW4gQmxvYmJ5IEJvdW5kIENsaXBwaW5nIENsaXBwaW5nUGxhbmUgQ29sb3IgQ29sb3JTYW1wbGVzIENvbmNhdFRyYW5zZm9ybSBDb25lIENvb3JkaW5hdGVTeXN0ZW0gQ29vcmRTeXNUcmFuc2Zvcm0gQ3JvcFdpbmRvdyBDdXJ2ZXMgQ3lsaW5kZXIgRGVwdGhPZkZpZWxkIERldGFpbCBEZXRhaWxSYW5nZSBEaXNrIERpc3BsYWNlbWVudCBEaXNwbGF5IEVuZCBFcnJvckhhbmRsZXIgRXhwb3N1cmUgRXh0ZXJpb3IgRm9ybWF0IEZyYW1lQXNwZWN0UmF0aW8gRnJhbWVCZWdpbiBGcmFtZUVuZCBHZW5lcmFsUG9seWdvbiBHZW9tZXRyaWNBcHByb3hpbWF0aW9uIEdlb21ldHJ5IEhpZGVyIEh5cGVyYm9sb2lkIElkZW50aXR5IElsbHVtaW5hdGUgSW1hZ2VyIEludGVyaW9yIExpZ2h0U291cmNlIE1ha2VDdWJlRmFjZUVudmlyb25tZW50IE1ha2VMYXRMb25nRW52aXJvbm1lbnQgTWFrZVNoYWRvdyBNYWtlVGV4dHVyZSBNYXR0ZSBNb3Rpb25CZWdpbiBNb3Rpb25FbmQgTnVQYXRjaCBPYmplY3RCZWdpbiBPYmplY3RFbmQgT2JqZWN0SW5zdGFuY2UgT3BhY2l0eSBPcHRpb24gT3JpZW50YXRpb24gUGFyYWJvbG9pZCBQYXRjaCBQYXRjaE1lc2ggUGVyc3BlY3RpdmUgUGl4ZWxGaWx0ZXIgUGl4ZWxTYW1wbGVzIFBpeGVsVmFyaWFuY2UgUG9pbnRzIFBvaW50c0dlbmVyYWxQb2x5Z29ucyBQb2ludHNQb2x5Z29ucyBQb2x5Z29uIFByb2NlZHVyYWwgUHJvamVjdGlvbiBRdWFudGl6ZSBSZWFkQXJjaGl2ZSBSZWxhdGl2ZURldGFpbCBSZXZlcnNlT3JpZW50YXRpb24gUm90YXRlIFNjYWxlIFNjcmVlbldpbmRvdyBTaGFkaW5nSW50ZXJwb2xhdGlvbiBTaGFkaW5nUmF0ZSBTaHV0dGVyIFNpZGVzIFNrZXcgU29saWRCZWdpbiBTb2xpZEVuZCBTcGhlcmUgU3ViZGl2aXNpb25NZXNoIFN1cmZhY2UgVGV4dHVyZUNvb3JkaW5hdGVzIFRvcnVzIFRyYW5zZm9ybSBUcmFuc2Zvcm1CZWdpbiBUcmFuc2Zvcm1FbmQgVHJhbnNmb3JtUG9pbnRzIFRyYW5zbGF0ZSBUcmltQ3VydmUgV29ybGRCZWdpbiBXb3JsZEVuZCIsaWxsZWdhbDoiPC8iLGNvbnRhaW5zOltlLkhBU0hfQ09NTUVOVF9NT0RFLGUuQ19OVU1CRVJfTU9ERSxlLkFQT1NfU1RSSU5HX01PREUsZS5RVU9URV9TVFJJTkdfTU9ERV19fXMuZXhwb3J0cz1yfSwyMjc5NTpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGUpe2NvbnN0IHQ9IlthLXpBLVotX11bXlxcbntdK1xceyIsbj17Y2xhc3NOYW1lOiJhdHRyaWJ1dGUiLGJlZ2luOi9bYS16QS1aLV9dKy8sZW5kOi9ccyo6LyxleGNsdWRlRW5kOiEwLHN0YXJ0czp7ZW5kOiI7IixyZWxldmFuY2U6MCxjb250YWluczpbe2NsYXNzTmFtZToidmFyaWFibGUiLGJlZ2luOi9cLlthLXpBLVotX10rL30se2NsYXNzTmFtZToia2V5d29yZCIsYmVnaW46L1wob3B0aW9uYWxcKS99XX19O3JldHVybntuYW1lOiJSb2JvY29uZiIsYWxpYXNlczpbImdyYXBoIiwiaW5zdGFuY2VzIl0sY2FzZV9pbnNlbnNpdGl2ZTohMCxrZXl3b3JkczoiaW1wb3J0Iixjb250YWluczpbe2JlZ2luOiJeZmFjZXQgIit0LGVuZDovXH0vLGtleXdvcmRzOiJmYWNldCIsY29udGFpbnM6W24sZS5IQVNIX0NPTU1FTlRfTU9ERV19LHtiZWdpbjoiXlxccyppbnN0YW5jZSBvZiAiK3QsZW5kOi9cfS8sa2V5d29yZHM6Im5hbWUgY291bnQgY2hhbm5lbHMgaW5zdGFuY2UtZGF0YSBpbnN0YW5jZS1zdGF0ZSBpbnN0YW5jZSBvZiIsaWxsZWdhbDovXFMvLGNvbnRhaW5zOlsic2VsZiIsbixlLkhBU0hfQ09NTUVOVF9NT0RFXX0se2JlZ2luOiJeIit0LGVuZDovXH0vLGNvbnRhaW5zOltuLGUuSEFTSF9DT01NRU5UX01PREVdfSxlLkhBU0hfQ09NTUVOVF9NT0RFXX19cy5leHBvcnRzPXJ9LDI4MDA4OmZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHIoZSl7Y29uc3QgdD0iZm9yZWFjaCBkbyB3aGlsZSBmb3IgaWYgZnJvbSB0byBzdGVwIGVsc2Ugb24tZXJyb3IgYW5kIG9yIG5vdCBpbiIsbj0iZ2xvYmFsIGxvY2FsIGJlZXAgZGVsYXkgcHV0IGxlbiB0eXBlb2YgcGljayBsb2cgdGltZSBzZXQgZmluZCBlbnZpcm9ubWVudCB0ZXJtaW5hbCBlcnJvciBleGVjdXRlIHBhcnNlIHJlc29sdmUgdG9hcnJheSB0b2Jvb2wgdG9pZCB0b2lwIHRvaXA2IHRvbnVtIHRvc3RyIHRvdGltZSIsYT0iYWRkIHJlbW92ZSBlbmFibGUgZGlzYWJsZSBzZXQgZ2V0IHByaW50IGV4cG9ydCBlZGl0IGZpbmQgcnVuIGRlYnVnIGVycm9yIGluZm8gd2FybmluZyIsaT0idHJ1ZSBmYWxzZSB5ZXMgbm8gbm90aGluZyBuaWwgbnVsbCIsbz0idHJhZmZpYy1mbG93IHRyYWZmaWMtZ2VuZXJhdG9yIGZpcmV3YWxsIHNjaGVkdWxlciBhYWEgYWNjb3VudGluZyBhZGRyZXNzLWxpc3QgYWRkcmVzcyBhbGlnbiBhcmVhIGJhbmR3aWR0aC1zZXJ2ZXIgYmZkIGJncCBicmlkZ2UgY2xpZW50IGNsb2NrIGNvbW11bml0eSBjb25maWcgY29ubmVjdGlvbiBjb25zb2xlIGN1c3RvbWVyIGRlZmF1bHQgZGhjcC1jbGllbnQgZGhjcC1zZXJ2ZXIgZGlzY292ZXJ5IGRucyBlLW1haWwgZXRoZXJuZXQgZmlsdGVyIGZpcm13YXJlIGdwcyBncmFwaGluZyBncm91cCBoYXJkd2FyZSBoZWFsdGggaG90c3BvdCBpZGVudGl0eSBpZ21wLXByb3h5IGluY29taW5nIGluc3RhbmNlIGludGVyZmFjZSBpcCBpcHNlYyBpcHY2IGlycSBsMnRwLXNlcnZlciBsY2QgbGRwIGxvZ2dpbmcgbWFjLXNlcnZlciBtYWMtd2luYm94IG1hbmdsZSBtYW51YWwgbWlycm9yIG1tZSBtcGxzIG5hdCBuZCBuZWlnaGJvciBuZXR3b3JrIG5vdGUgbnRwIG9zcGYgb3NwZi12MyBvdnBuLXNlcnZlciBwYWdlIHBlZXIgcGltIHBpbmcgcG9saWN5IHBvb2wgcG9ydCBwcHAgcHBwb2UtY2xpZW50IHBwdHAtc2VydmVyIHByZWZpeCBwcm9maWxlIHByb3Bvc2FsIHByb3h5IHF1ZXVlIHJhZGl1cyByZXNvdXJjZSByaXAgcmlwbmcgcm91dGUgcm91dGluZyBzY3JlZW4gc2NyaXB0IHNlY3VyaXR5LXByb2ZpbGVzIHNlcnZlciBzZXJ2aWNlIHNlcnZpY2UtcG9ydCBzZXR0aW5ncyBzaGFyZXMgc21iIHNtcyBzbmlmZmVyIHNubXAgc25vb3BlciBzb2NrcyBzc3RwLXNlcnZlciBzeXN0ZW0gdG9vbCB0cmFja2luZyB0eXBlIHVwZ3JhZGUgdXBucCB1c2VyLW1hbmFnZXIgdXNlcnMgdXNlciB2bGFuIHNlY3JldCB2cnJwIHdhdGNoZG9nIHdlYi1hY2Nlc3Mgd2lyZWxlc3MgcHB0cCBwcHBvZSBsYW4gd2FuIGxheWVyNy1wcm90b2NvbCBsZWFzZSBzaW1wbGUgcmF3IixsPXtjbGFzc05hbWU6InZhcmlhYmxlIix2YXJpYW50czpbe2JlZ2luOi9cJFtcd1xkI0BdW1x3XGRfXSovfSx7YmVnaW46L1wkXHsoLio/KVx9L31dfSxjPXtjbGFzc05hbWU6InN0cmluZyIsYmVnaW46LyIvLGVuZDovIi8sY29udGFpbnM6W2UuQkFDS1NMQVNIX0VTQ0FQRSxsLHtjbGFzc05hbWU6InZhcmlhYmxlIixiZWdpbjovXCRcKC8sZW5kOi9cKS8sY29udGFpbnM6W2UuQkFDS1NMQVNIX0VTQ0FQRV19XX0sXz17Y2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOi8nLyxlbmQ6LycvfTtyZXR1cm57bmFtZToiTWljcm90aWsgUm91dGVyT1Mgc2NyaXB0IixhbGlhc2VzOlsibWlrcm90aWsiXSxjYXNlX2luc2Vuc2l0aXZlOiEwLGtleXdvcmRzOnskcGF0dGVybjovOj9bXHctXSsvLGxpdGVyYWw6aSxrZXl3b3JkOnQrIiA6Iit0LnNwbGl0KCIgIikuam9pbigiIDoiKSsiIDoiK24uc3BsaXQoIiAiKS5qb2luKCIgOiIpfSxjb250YWluczpbe3ZhcmlhbnRzOlt7YmVnaW46L1wvXCovLGVuZDovXCpcLy99LHtiZWdpbjovXC9cLy8sZW5kOi8kL30se2JlZ2luOi88XC8vLGVuZDovPi99XSxpbGxlZ2FsOi8uL30sZS5DT01NRU5UKCJeIyIsIiQiKSxjLF8sbCx7YmVnaW46L1tcdy1dKz0oW15cc3t9W1xdKCk+XSspLyxyZWxldmFuY2U6MCxyZXR1cm5CZWdpbjohMCxjb250YWluczpbe2NsYXNzTmFtZToiYXR0cmlidXRlIixiZWdpbjovW149XSsvfSx7YmVnaW46Lz0vLGVuZHNXaXRoUGFyZW50OiEwLHJlbGV2YW5jZTowLGNvbnRhaW5zOltjLF8sbCx7Y2xhc3NOYW1lOiJsaXRlcmFsIixiZWdpbjoiXFxiKCIraS5zcGxpdCgiICIpLmpvaW4oInwiKSsiKVxcYiJ9LHtiZWdpbjovKCJbXiJdKiJ8W15cc3t9W1xdXSspL31dfV19LHtjbGFzc05hbWU6Im51bWJlciIsYmVnaW46L1wqWzAtOWEtZkEtRl0rL30se2JlZ2luOiJcXGIoIithLnNwbGl0KCIgIikuam9pbigifCIpKyIpKFtcXHNbKFxcXXxdKSIscmV0dXJuQmVnaW46ITAsY29udGFpbnM6W3tjbGFzc05hbWU6ImJ1aWx0aW4tbmFtZSIsYmVnaW46L1x3Ky99XX0se2NsYXNzTmFtZToiYnVpbHRfaW4iLHZhcmlhbnRzOlt7YmVnaW46IihcXC5cXC4vfC98XFxzKSgoIitvLnNwbGl0KCIgIikuam9pbigifCIpKyIpOz9cXHMpKyJ9LHtiZWdpbjovXC5cLi8scmVsZXZhbmNlOjB9XX1dfX1zLmV4cG9ydHM9cn0sMTA2NDE6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihlKXtyZXR1cm57bmFtZToiUmVuZGVyTWFuIFJTTCIsa2V5d29yZHM6e2tleXdvcmQ6ImZsb2F0IGNvbG9yIHBvaW50IG5vcm1hbCB2ZWN0b3IgbWF0cml4IHdoaWxlIGZvciBpZiBkbyByZXR1cm4gZWxzZSBicmVhayBleHRlcm4gY29udGludWUiLGJ1aWx0X2luOiJhYnMgYWNvcyBhbWJpZW50IGFyZWEgYXNpbiBhdGFuIGF0bW9zcGhlcmUgYXR0cmlidXRlIGNhbGN1bGF0ZW5vcm1hbCBjZWlsIGNlbGxub2lzZSBjbGFtcCBjb21wIGNvbmNhdCBjb3MgZGVncmVlcyBkZXB0aCBEZXJpdiBkaWZmdXNlIGRpc3RhbmNlIER1IER2IGVudmlyb25tZW50IGV4cCBmYWNlZm9yd2FyZCBmaWx0ZXJzdGVwIGZsb29yIGZvcm1hdCBmcmVzbmVsIGluY2lkZW50IGxlbmd0aCBsaWdodHNvdXJjZSBsb2cgbWF0Y2ggbWF4IG1pbiBtb2Qgbm9pc2Ugbm9ybWFsaXplIG50cmFuc2Zvcm0gb3Bwb3NpdGUgb3B0aW9uIHBob25nIHBub2lzZSBwb3cgcHJpbnRmIHB0bGluZWQgcmFkaWFucyByYW5kb20gcmVmbGVjdCByZWZyYWN0IHJlbmRlcmluZm8gcm91bmQgc2V0Y29tcCBzZXR4Y29tcCBzZXR5Y29tcCBzZXR6Y29tcCBzaGFkb3cgc2lnbiBzaW4gc21vb3Roc3RlcCBzcGVjdWxhciBzcGVjdWxhcmJyZGYgc3BsaW5lIHNxcnQgc3RlcCB0YW4gdGV4dHVyZSB0ZXh0dXJlaW5mbyB0cmFjZSB0cmFuc2Zvcm0gdnRyYW5zZm9ybSB4Y29tcCB5Y29tcCB6Y29tcCJ9LGlsbGVnYWw6IjwvIixjb250YWluczpbZS5DX0xJTkVfQ09NTUVOVF9NT0RFLGUuQ19CTE9DS19DT01NRU5UX01PREUsZS5RVU9URV9TVFJJTkdfTU9ERSxlLkFQT1NfU1RSSU5HX01PREUsZS5DX05VTUJFUl9NT0RFLHtjbGFzc05hbWU6Im1ldGEiLGJlZ2luOiIjIixlbmQ6IiQifSx7Y2xhc3NOYW1lOiJjbGFzcyIsYmVnaW5LZXl3b3Jkczoic3VyZmFjZSBkaXNwbGFjZW1lbnQgbGlnaHQgdm9sdW1lIGltYWdlciIsZW5kOiJcXCgifSx7YmVnaW5LZXl3b3JkczoiaWxsdW1pbmF0ZSBpbGx1bWluYW5jZSBnYXRoZXIiLGVuZDoiXFwoIn1dfX1zLmV4cG9ydHM9cn0sNTYzNjpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGEpe3JldHVybiBhP3R5cGVvZiBhPT0ic3RyaW5nIj9hOmEuc291cmNlOm51bGx9ZnVuY3Rpb24gZShhKXtyZXR1cm4gdCgiKD89IixhLCIpIil9ZnVuY3Rpb24gdCguLi5hKXtyZXR1cm4gYS5tYXAobz0+cihvKSkuam9pbigiIil9ZnVuY3Rpb24gbihhKXtjb25zdCBpPSIoW2EtekEtWl9dXFx3KlshPz1dP3xbLSt+XUB8PDx8Pj58PX58PT09P3w8PT58Wzw+XT0/fFxcKlxcKnxbLS8rJV4mKn5gfF18XFxbXFxdPT8pIixvPXtrZXl3b3JkOiJhbmQgdGhlbiBkZWZpbmVkIG1vZHVsZSBpbiByZXR1cm4gcmVkbyBpZiBCRUdJTiByZXRyeSBlbmQgZm9yIHNlbGYgd2hlbiBuZXh0IHVudGlsIGRvIGJlZ2luIHVubGVzcyBFTkQgcmVzY3VlIGVsc2UgYnJlYWsgdW5kZWYgbm90IHN1cGVyIGNsYXNzIGNhc2UgcmVxdWlyZSB5aWVsZCBhbGlhcyB3aGlsZSBlbnN1cmUgZWxzaWYgb3IgaW5jbHVkZSBhdHRyX3JlYWRlciBhdHRyX3dyaXRlciBhdHRyX2FjY2Vzc29yIF9fRklMRV9fIixidWlsdF9pbjoicHJvYyBsYW1iZGEiLGxpdGVyYWw6InRydWUgZmFsc2UgbmlsIn0sbD17Y2xhc3NOYW1lOiJkb2N0YWciLGJlZ2luOiJAW0EtWmEtel0rIn0sYz17YmVnaW46IiM8IixlbmQ6Ij4ifSxfPVthLkNPTU1FTlQoIiMiLCIkIix7Y29udGFpbnM6W2xdfSksYS5DT01NRU5UKCJePWJlZ2luIiwiXj1lbmQiLHtjb250YWluczpbbF0scmVsZXZhbmNlOjEwfSksYS5DT01NRU5UKCJeX19FTkRfXyIsIlxcbiQiKV0sZD17Y2xhc3NOYW1lOiJzdWJzdCIsYmVnaW46LyNcey8sZW5kOi9cfS8sa2V5d29yZHM6b30sZz17Y2xhc3NOYW1lOiJzdHJpbmciLGNvbnRhaW5zOlthLkJBQ0tTTEFTSF9FU0NBUEUsZF0sdmFyaWFudHM6W3tiZWdpbjovJy8sZW5kOi8nL30se2JlZ2luOi8iLyxlbmQ6LyIvfSx7YmVnaW46L2AvLGVuZDovYC99LHtiZWdpbjovJVtxUXdXeF0/XCgvLGVuZDovXCkvfSx7YmVnaW46LyVbcVF3V3hdP1xbLyxlbmQ6L1xdL30se2JlZ2luOi8lW3FRd1d4XT9cey8sZW5kOi9cfS99LHtiZWdpbjovJVtxUXdXeF0/PC8sZW5kOi8+L30se2JlZ2luOi8lW3FRd1d4XT9cLy8sZW5kOi9cLy99LHtiZWdpbjovJVtxUXdXeF0/JS8sZW5kOi8lL30se2JlZ2luOi8lW3FRd1d4XT8tLyxlbmQ6Ly0vfSx7YmVnaW46LyVbcVF3V3hdP1x8LyxlbmQ6L1x8L30se2JlZ2luOi9cQlw/KFxcXGR7MSwzfSkvfSx7YmVnaW46L1xCXD8oXFx4W0EtRmEtZjAtOV17MSwyfSkvfSx7YmVnaW46L1xCXD8oXFx1XHs/W0EtRmEtZjAtOV17MSw2fVx9PykvfSx7YmVnaW46L1xCXD8oXFxNLVxcQy18XFxNLVxcY3xcXGNcXE0tfFxcTS18XFxDLVxcTS0pW1x4MjAtXHg3ZV0vfSx7YmVnaW46L1xCXD9cXChjfEMtKVtceDIwLVx4N2VdL30se2JlZ2luOi9cQlw/XFw/XFMvfSx7YmVnaW46Lzw8Wy1+XT8nPyhcdyspXG4oPzpbXlxuXSpcbikqP1xzKlwxXGIvLHJldHVybkJlZ2luOiEwLGNvbnRhaW5zOlt7YmVnaW46Lzw8Wy1+XT8nPy99LGEuRU5EX1NBTUVfQVNfQkVHSU4oe2JlZ2luOi8oXHcrKS8sZW5kOi8oXHcrKS8sY29udGFpbnM6W2EuQkFDS1NMQVNIX0VTQ0FQRSxkXX0pXX1dfSxFPSJbMS05XShfP1swLTldKSp8MCIsdT0iWzAtOV0oXz9bMC05XSkqIixtPXtjbGFzc05hbWU6Im51bWJlciIscmVsZXZhbmNlOjAsdmFyaWFudHM6W3tiZWdpbjpgXFxiKCR7RX0pKFxcLigke3V9KSk/KFtlRV1bKy1dPygke3V9KXxyKT9pP1xcYmB9LHtiZWdpbjoiXFxiMFtkRF1bMC05XShfP1swLTldKSpyP2k/XFxiIn0se2JlZ2luOiJcXGIwW2JCXVswLTFdKF8/WzAtMV0pKnI/aT9cXGIifSx7YmVnaW46IlxcYjBbb09dWzAtN10oXz9bMC03XSkqcj9pP1xcYiJ9LHtiZWdpbjoiXFxiMFt4WF1bMC05YS1mQS1GXShfP1swLTlhLWZBLUZdKSpyP2k/XFxiIn0se2JlZ2luOiJcXGIwKF8/WzAtN10pK3I/aT9cXGIifV19LFM9e2NsYXNzTmFtZToicGFyYW1zIixiZWdpbjoiXFwoIixlbmQ6IlxcKSIsZW5kc1BhcmVudDohMCxrZXl3b3JkczpvfSxUPVtnLHtjbGFzc05hbWU6ImNsYXNzIixiZWdpbktleXdvcmRzOiJjbGFzcyBtb2R1bGUiLGVuZDoiJHw7IixpbGxlZ2FsOi89Lyxjb250YWluczpbYS5pbmhlcml0KGEuVElUTEVfTU9ERSx7YmVnaW46IltBLVphLXpfXVxcdyooOjpcXHcrKSooXFw/fCEpPyJ9KSx7YmVnaW46IjxcXHMqIixjb250YWluczpbe2JlZ2luOiIoIithLklERU5UX1JFKyI6Oik/IithLklERU5UX1JFLHJlbGV2YW5jZTowfV19XS5jb25jYXQoXyl9LHtjbGFzc05hbWU6ImZ1bmN0aW9uIixiZWdpbjp0KC9kZWZccysvLGUoaSsiXFxzKihcXCh8O3wkKSIpKSxyZWxldmFuY2U6MCxrZXl3b3JkczoiZGVmIixlbmQ6IiR8OyIsY29udGFpbnM6W2EuaW5oZXJpdChhLlRJVExFX01PREUse2JlZ2luOml9KSxTXS5jb25jYXQoXyl9LHtiZWdpbjphLklERU5UX1JFKyI6OiJ9LHtjbGFzc05hbWU6InN5bWJvbCIsYmVnaW46YS5VTkRFUlNDT1JFX0lERU5UX1JFKyIoIXxcXD8pPzoiLHJlbGV2YW5jZTowfSx7Y2xhc3NOYW1lOiJzeW1ib2wiLGJlZ2luOiI6KD8hXFxzKSIsY29udGFpbnM6W2cse2JlZ2luOml9XSxyZWxldmFuY2U6MH0sbSx7Y2xhc3NOYW1lOiJ2YXJpYWJsZSIsYmVnaW46IihcXCRcXFcpfCgoXFwkfEBAPykoXFx3KykpKD89W15AJD9dKSg/IVtBLVphLXpdKSg/IVtAJD8nXSkifSx7Y2xhc3NOYW1lOiJwYXJhbXMiLGJlZ2luOi9cfC8sZW5kOi9cfC8scmVsZXZhbmNlOjAsa2V5d29yZHM6b30se2JlZ2luOiIoIithLlJFX1NUQVJURVJTX1JFKyJ8dW5sZXNzKVxccyoiLGtleXdvcmRzOiJ1bmxlc3MiLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJyZWdleHAiLGNvbnRhaW5zOlthLkJBQ0tTTEFTSF9FU0NBUEUsZF0saWxsZWdhbDovXG4vLHZhcmlhbnRzOlt7YmVnaW46Ii8iLGVuZDoiL1thLXpdKiJ9LHtiZWdpbjovJXJcey8sZW5kOi9cfVthLXpdKi99LHtiZWdpbjoiJXJcXCgiLGVuZDoiXFwpW2Etel0qIn0se2JlZ2luOiIlciEiLGVuZDoiIVthLXpdKiJ9LHtiZWdpbjoiJXJcXFsiLGVuZDoiXFxdW2Etel0qIn1dfV0uY29uY2F0KGMsXykscmVsZXZhbmNlOjB9XS5jb25jYXQoYyxfKTtkLmNvbnRhaW5zPVQsUy5jb250YWlucz1UO2NvbnN0IE89W3tiZWdpbjovXlxzKj0+LyxzdGFydHM6e2VuZDoiJCIsY29udGFpbnM6VH19LHtjbGFzc05hbWU6Im1ldGEiLGJlZ2luOiJeKCIrIls+P10+IisifCIrIltcXHcjXStcXChcXHcrXFwpOlxcZCs6XFxkKz4iKyJ8IisiKFxcdystKT9cXGQrXFwuXFxkK1xcLlxcZCsocFxcZCspP1teXFxkXVtePl0rPiIrIikoPz1bIF0pIixzdGFydHM6e2VuZDoiJCIsY29udGFpbnM6VH19XTtyZXR1cm4gXy51bnNoaWZ0KGMpLHtuYW1lOiJSdWJ5IixhbGlhc2VzOlsicmIiLCJnZW1zcGVjIiwicG9kc3BlYyIsInRob3IiLCJpcmIiXSxrZXl3b3JkczpvLGlsbGVnYWw6L1wvXCovLGNvbnRhaW5zOlthLlNIRUJBTkcoe2JpbmFyeToicnVieSJ9KV0uY29uY2F0KE8pLmNvbmNhdChfKS5jb25jYXQoVCl9fXMuZXhwb3J0cz1ufSw0MTYzODpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGUpe3JldHVybntuYW1lOiJPcmFjbGUgUnVsZXMgTGFuZ3VhZ2UiLGtleXdvcmRzOntrZXl3b3JkOiJCSUxMX1BFUklPRCBCSUxMX1NUQVJUIEJJTExfU1RPUCBSU19FRkZFQ1RJVkVfU1RBUlQgUlNfRUZGRUNUSVZFX1NUT1AgUlNfSlVSSVNfQ09ERSBSU19PUENPX0NPREUgSU5UREFEREFUVFJJQlVURXw1IElOVERBRERWTVNHfDUgSU5UREJMT0NLT1B8NSBJTlREQkxPQ0tPUE5BfDUgSU5URENMT1NFfDUgSU5URENPVU5UfDUgSU5URENPVU5UU1RBVFVTQ09ERXw1IElOVERDUkVBVEVNQVNLfDUgSU5URENSRUFURURBWU1BU0t8NSBJTlREQ1JFQVRFRkFDVE9STUFTS3w1IElOVERDUkVBVEVIQU5ETEV8NSBJTlREQ1JFQVRFT1ZFUlJJREVEQVlNQVNLfDUgSU5URENSRUFURU9WRVJSSURFTUFTS3w1IElOVERDUkVBVEVTVEFUVVNDT0RFTUFTS3w1IElOVERDUkVBVEVUT1VQRVJJT0R8NSBJTlREREVMRVRFfDUgSU5URERJUFRFU1R8NSBJTlRERVhQT1JUfDUgSU5UREdFVEVSUk9SQ09ERXw1IElOVERHRVRFUlJPUk1FU1NBR0V8NSBJTlRESVNFUVVBTHw1IElOVERKT0lOfDUgSU5URExPQUR8NSBJTlRETE9BREFDVFVBTENVVHw1IElOVERMT0FEREFURVN8NSBJTlRETE9BREhJU1R8NSBJTlRETE9BRExJU1R8NSBJTlRETE9BRExJU1REQVRFU3w1IElOVERMT0FETElTVEVORVJHWXw1IElOVERMT0FETElTVEhJU1R8NSBJTlRETE9BRFJFTEFURURDSEFOTkVMfDUgSU5URExPQURTUHw1IElOVERMT0FEU1RBR0lOR3w1IElOVERMT0FEVU9NfDUgSU5URExPQURVT01EQVRFU3w1IElOVERMT0FEVU9NSElTVHw1IElOVERMT0FEVkVSU0lPTnw1IElOVERPUEVOfDUgSU5URFJFQURGSVJTVHw1IElOVERSRUFETkVYVHw1IElOVERSRUNDT1VOVHw1IElOVERSRUxFQVNFfDUgSU5URFJFUExBQ0V8NSBJTlREUk9MTEFWR3w1IElOVERST0xMUEVBS3w1IElOVERTQ0FMQVJPUHw1IElOVERTQ0FMRXw1IElOVERTRVRBVFRSSUJVVEV8NSBJTlREU0VURFNUUEFSVElDSVBBTlR8NSBJTlREU0VUU1RSSU5HfDUgSU5URFNFVFZBTFVFfDUgSU5URFNFVFZBTFVFU1RBVFVTfDUgSU5URFNISUZUU1RBUlRUSU1FfDUgSU5URFNNT09USHw1IElOVERTT1JUfDUgSU5URFNQSUtFVEVTVHw1IElOVERTVUJTRVR8NSBJTlREVE9VfDUgSU5URFRPVVJFTEVBU0V8NSBJTlREVE9VVkFMVUV8NSBJTlREVVBEQVRFU1RBVFN8NSBJTlREVkFMVUV8NSBTVERFViBJTlREREVMRVRFRVh8NSBJTlRETE9BREVYQUNUVUFMfDUgSU5URExPQURFWENVVHw1IElOVERMT0FERVhEQVRFU3w1IElOVERMT0FERVh8NSBJTlRETE9BREVYUkVMQVRFRENIQU5ORUx8NSBJTlREU0FWRUVYfDUgTVZMT0FEfDUgTVZMT0FEQUNDVHw1IE1WTE9BREFDQ1REQVRFU3w1IE1WTE9BREFDQ1RISVNUfDUgTVZMT0FEREFURVN8NSBNVkxPQURISVNUfDUgTVZMT0FETElTVHw1IE1WTE9BRExJU1REQVRFU3w1IE1WTE9BRExJU1RISVNUfDUgSUYgRk9SIE5FWFQgRE9ORSBTRUxFQ1QgRU5EIENBTEwgQUJPUlQgQ0xFQVIgQ0hBTk5FTCBGQUNUT1IgTElTVCBOVU1CRVIgT1ZFUlJJREUgU0VUIFdFRUsgRElTVFJJQlVUSU9OTk9ERSBFTFNFIFdIRU4gVEhFTiBPVEhFUldJU0UgSUVOVU0gQ1NWIElOQ0xVREUgTEVBVkUgUklERVIgU0FWRSBERUxFVEUgTk9WQUxVRSBTRUNUSU9OIFdBUk4gU0FWRV9VUERBVEUgREVURVJNSU5BTlQgTEFCRUwgUkVQT1JUIFJFVkVOVUUgRUFDSCBJTiBGUk9NIFRPVEFMIENIQVJHRSBCTE9DSyBBTkQgT1IgQ1NWX0ZJTEUgUkFURV9DT0RFIEFVWElMSUFSWV9ERU1BTkQgVUlEQUNDT1VOVCBSUyBCSUxMX1BFUklPRF9TRUxFQ1QgSE9VUlNfUEVSX01PTlRIIElOVERfRVJST1JfU1RPUCBTRUFTT05fU0NIRURVTEVfTkFNRSBBQ0NPVU5URkFDVE9SIEFSUkFZVVBQRVJCT1VORCBDQUxMU1RPUkVEUFJPQyBHRVRBRE9DT05ORUNUSU9OIEdFVENPTk5FQ1QgR0VUREFUQVNPVVJDRSBHRVRRVUFMSUZJRVIgR0VUVVNFUklEIEhBU1ZBTFVFIExJU1RDT1VOVCBMSVNUT1AgTElTVFVQREFURSBMSVNUVkFMVUUgUFJPUkFURUZBQ1RPUiBSU1BST1JBVEUgU0VUQklOUEFUSCBTRVREQk1PTklUT1IgV1FfT1BFTiBCSUxMSU5HSE9VUlMgREFURSBEQVRFRlJPTUZMT0FUIERBVEVUSU1FRlJPTVNUUklORyBEQVRFVElNRVRPU1RSSU5HIERBVEVUT0ZMT0FUIERBWSBEQVlESUZGIERBWU5BTUUgREJEQVRFVElNRSBIT1VSIE1JTlVURSBNT05USCBNT05USERJRkYgTU9OVEhIT1VSUyBNT05USE5BTUUgUk9VTkREQVRFIFNBTUVXRUVLREFZTEFTVFlFQVIgU0VDT05EIFdFRUtEQVkgV0VFS0RJRkYgWUVBUiBZRUFSREFZIFlFQVJTVFIgQ09NUFNVTSBISVNUQ09VTlQgSElTVE1BWCBISVNUTUlOIEhJU1RNSU5OWiBISVNUVkFMVUUgTUFYTlJBTkdFIE1BWFJBTkdFIE1JTlJBTkdFIENPTVBJS1ZBIENPTVBLVkEgQ09NUEtWQVJGUk9NS1FLVyBDT01QTEYgSURBVFRSIEZMQUcgTEYyS1cgTEYyS1dIIE1BWEtXIFBPV0VSRkFDVE9SIFJFQURJTkcyVVNBR0UgQVZHU0VBU09OIE1BWFNFQVNPTiBNT05USExZTUVSR0UgU0VBU09OVkFMVUUgU1VNU0VBU09OIEFDQ1RSRUFEREFURVMgQUNDVFRBQkxFTE9BRCBDT05GSUdBREQgQ09ORklHR0VUIENSRUFURU9CSkVDVCBDUkVBVEVSRVBPUlQgRU1BSUxDTElFTlQgRVhQQkxLTURNVVNBR0UgRVhQTURNVVNBR0UgRVhQT1JUX1VTQUdFIEZBQ1RPUklORUZGRUNUIEdFVFVTRVJTUEVDSUZJRURTVE9QIElORUZGRUNUIElTSE9MSURBWSBSVU5SQVRFIFNBVkVfUFJPRklMRSBTRVRSRVBPUlRUSVRMRSBVU0VSRVhJVCBXQVRGT1JSVU5SQVRFIFRPIFRBQkxFIEFDT1MgQVNJTiBBVEFOIEFUQU4yIEJJVEFORCBDRUlMIENPUyBDT1NFQ0FOVCBDT1NIIENPVEFOR0VOVCBESVZRVU9UIERJVlJFTSBFWFAgRkFCUyBGTE9PUiBGTU9EIEZSRVBNIEZSRVhQTiBMT0cgTE9HMTAgTUFYIE1BWE4gTUlOIE1JTk5aIE1PREYgUE9XIFJPVU5EIFJPVU5EMlZBTFVFIFJPVU5ESU5UIFNFQ0FOVCBTSU4gU0lOSCBTUVJPT1QgVEFOIFRBTkggRkxPQVQyU1RSSU5HIEZMT0FUMlNUUklOR05DIElOU1RSIExFRlQgTEVOIExUUklNIE1JRCBSSUdIVCBSVFJJTSBTVFJJTkcgU1RSSU5HTkMgVE9MT1dFUiBUT1VQUEVSIFRSSU0gTlVNREFZUyBSRUFEX0RBVEUgU1RBR0lORyIsYnVpbHRfaW46IklERU5USUZJRVIgT1BUSU9OUyBYTUxfRUxFTUVOVCBYTUxfT1AgWE1MX0VMRU1FTlRfT0YgRE9NRE9DQ1JFQVRFIERPTURPQ0xPQURGSUxFIERPTURPQ0xPQURYTUwgRE9NRE9DU0FWRUZJTEUgRE9NRE9DR0VUUk9PVCBET01ET0NBRERQSSBET01OT0RFR0VUTkFNRSBET01OT0RFR0VUVFlQRSBET01OT0RFR0VUVkFMVUUgRE9NTk9ERUdFVENISUxEQ1QgRE9NTk9ERUdFVEZJUlNUQ0hJTEQgRE9NTk9ERUdFVFNJQkxJTkcgRE9NTk9ERUNSRUFURUNISUxERUxFTUVOVCBET01OT0RFU0VUQVRUUklCVVRFIERPTU5PREVHRVRDSElMREVMRU1FTlRDVCBET01OT0RFR0VURklSU1RDSElMREVMRU1FTlQgRE9NTk9ERUdFVFNJQkxJTkdFTEVNRU5UIERPTU5PREVHRVRBVFRSSUJVVEVDVCBET01OT0RFR0VUQVRUUklCVVRFSSBET01OT0RFR0VUQVRUUklCVVRFQllOQU1FIERPTU5PREVHRVRCWU5BTUUifSxjb250YWluczpbZS5DX0xJTkVfQ09NTUVOVF9NT0RFLGUuQ19CTE9DS19DT01NRU5UX01PREUsZS5BUE9TX1NUUklOR19NT0RFLGUuUVVPVEVfU1RSSU5HX01PREUsZS5DX05VTUJFUl9NT0RFLHtjbGFzc05hbWU6ImxpdGVyYWwiLHZhcmlhbnRzOlt7YmVnaW46IiNcXHMrIixyZWxldmFuY2U6MH0se2JlZ2luOiIjW2EtekEtWiAuXSsifV19XX19cy5leHBvcnRzPXJ9LDczMDU1OmZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHIoZSl7Y29uc3QgdD0iKFt1aV0oOHwxNnwzMnw2NHwxMjh8c2l6ZSl8ZigzMnw2NCkpPyIsbj0iYWJzdHJhY3QgYXMgYXN5bmMgYXdhaXQgYmVjb21lIGJveCBicmVhayBjb25zdCBjb250aW51ZSBjcmF0ZSBkbyBkeW4gZWxzZSBlbnVtIGV4dGVybiBmYWxzZSBmaW5hbCBmbiBmb3IgaWYgaW1wbCBpbiBsZXQgbG9vcCBtYWNybyBtYXRjaCBtb2QgbW92ZSBtdXQgb3ZlcnJpZGUgcHJpdiBwdWIgcmVmIHJldHVybiBzZWxmIFNlbGYgc3RhdGljIHN0cnVjdCBzdXBlciB0cmFpdCB0cnVlIHRyeSB0eXBlIHR5cGVvZiB1bnNhZmUgdW5zaXplZCB1c2UgdmlydHVhbCB3aGVyZSB3aGlsZSB5aWVsZCIsYT0iZHJvcCBpOCBpMTYgaTMyIGk2NCBpMTI4IGlzaXplIHU4IHUxNiB1MzIgdTY0IHUxMjggdXNpemUgZjMyIGY2NCBzdHIgY2hhciBib29sIEJveCBPcHRpb24gUmVzdWx0IFN0cmluZyBWZWMgQ29weSBTZW5kIFNpemVkIFN5bmMgRHJvcCBGbiBGbk11dCBGbk9uY2UgVG9Pd25lZCBDbG9uZSBEZWJ1ZyBQYXJ0aWFsRXEgUGFydGlhbE9yZCBFcSBPcmQgQXNSZWYgQXNNdXQgSW50byBGcm9tIERlZmF1bHQgSXRlcmF0b3IgRXh0ZW5kIEludG9JdGVyYXRvciBEb3VibGVFbmRlZEl0ZXJhdG9yIEV4YWN0U2l6ZUl0ZXJhdG9yIFNsaWNlQ29uY2F0RXh0IFRvU3RyaW5nIGFzc2VydCEgYXNzZXJ0X2VxISBiaXRmbGFncyEgYnl0ZXMhIGNmZyEgY29sISBjb25jYXQhIGNvbmNhdF9pZGVudHMhIGRlYnVnX2Fzc2VydCEgZGVidWdfYXNzZXJ0X2VxISBlbnYhIHBhbmljISBmaWxlISBmb3JtYXQhIGZvcm1hdF9hcmdzISBpbmNsdWRlX2JpbiEgaW5jbHVkZV9zdHIhIGxpbmUhIGxvY2FsX2RhdGFfa2V5ISBtb2R1bGVfcGF0aCEgb3B0aW9uX2VudiEgcHJpbnQhIHByaW50bG4hIHNlbGVjdCEgc3RyaW5naWZ5ISB0cnkhIHVuaW1wbGVtZW50ZWQhIHVucmVhY2hhYmxlISB2ZWMhIHdyaXRlISB3cml0ZWxuISBtYWNyb19ydWxlcyEgYXNzZXJ0X25lISBkZWJ1Z19hc3NlcnRfbmUhIjtyZXR1cm57bmFtZToiUnVzdCIsYWxpYXNlczpbInJzIl0sa2V5d29yZHM6eyRwYXR0ZXJuOmUuSURFTlRfUkUrIiE/IixrZXl3b3JkOm4sbGl0ZXJhbDoidHJ1ZSBmYWxzZSBTb21lIE5vbmUgT2sgRXJyIixidWlsdF9pbjphfSxpbGxlZ2FsOiI8LyIsY29udGFpbnM6W2UuQ19MSU5FX0NPTU1FTlRfTU9ERSxlLkNPTU1FTlQoIi9cXCoiLCJcXCovIix7Y29udGFpbnM6WyJzZWxmIl19KSxlLmluaGVyaXQoZS5RVU9URV9TVFJJTkdfTU9ERSx7YmVnaW46L2I/Ii8saWxsZWdhbDpudWxsfSkse2NsYXNzTmFtZToic3RyaW5nIix2YXJpYW50czpbe2JlZ2luOi9yKCMqKSIoLnxcbikqPyJcMSg/ISMpL30se2JlZ2luOi9iPydcXD8oeFx3ezJ9fHVcd3s0fXxVXHd7OH18LiknL31dfSx7Y2xhc3NOYW1lOiJzeW1ib2wiLGJlZ2luOi8nW2EtekEtWl9dW2EtekEtWjAtOV9dKi99LHtjbGFzc05hbWU6Im51bWJlciIsdmFyaWFudHM6W3tiZWdpbjoiXFxiMGIoWzAxX10rKSIrdH0se2JlZ2luOiJcXGIwbyhbMC03X10rKSIrdH0se2JlZ2luOiJcXGIweChbQS1GYS1mMC05X10rKSIrdH0se2JlZ2luOiJcXGIoXFxkW1xcZF9dKihcXC5bMC05X10rKT8oW2VFXVsrLV0/WzAtOV9dKyk/KSIrdH1dLHJlbGV2YW5jZTowfSx7Y2xhc3NOYW1lOiJmdW5jdGlvbiIsYmVnaW5LZXl3b3JkczoiZm4iLGVuZDoiKFxcKHw8KSIsZXhjbHVkZUVuZDohMCxjb250YWluczpbZS5VTkRFUlNDT1JFX1RJVExFX01PREVdfSx7Y2xhc3NOYW1lOiJtZXRhIixiZWdpbjoiIyE/XFxbIixlbmQ6IlxcXSIsY29udGFpbnM6W3tjbGFzc05hbWU6Im1ldGEtc3RyaW5nIixiZWdpbjovIi8sZW5kOi8iL31dfSx7Y2xhc3NOYW1lOiJjbGFzcyIsYmVnaW5LZXl3b3JkczoidHlwZSIsZW5kOiI7Iixjb250YWluczpbZS5pbmhlcml0KGUuVU5ERVJTQ09SRV9USVRMRV9NT0RFLHtlbmRzUGFyZW50OiEwfSldLGlsbGVnYWw6IlxcUyJ9LHtjbGFzc05hbWU6ImNsYXNzIixiZWdpbktleXdvcmRzOiJ0cmFpdCBlbnVtIHN0cnVjdCB1bmlvbiIsZW5kOi9cey8sY29udGFpbnM6W2UuaW5oZXJpdChlLlVOREVSU0NPUkVfVElUTEVfTU9ERSx7ZW5kc1BhcmVudDohMH0pXSxpbGxlZ2FsOiJbXFx3XFxkXSJ9LHtiZWdpbjplLklERU5UX1JFKyI6OiIsa2V5d29yZHM6e2J1aWx0X2luOmF9fSx7YmVnaW46Ii0+In1dfX1zLmV4cG9ydHM9cn0sNDk4ODc6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihlKXtyZXR1cm57bmFtZToiU0FTIixjYXNlX2luc2Vuc2l0aXZlOiEwLGtleXdvcmRzOntsaXRlcmFsOiJudWxsIG1pc3NpbmcgX2FsbF8gX2F1dG9tYXRpY18gX2NoYXJhY3Rlcl8gX2luZmlsZV8gX25fIF9uYW1lXyBfbnVsbF8gX251bWVyaWNfIF91c2VyXyBfd2Vib3V0XyIsbWV0YToiZG8gaWYgdGhlbiBlbHNlIGVuZCB1bnRpbCB3aGlsZSBhYm9ydCBhcnJheSBhdHRyaWIgYnkgY2FsbCBjYXJkcyBjYXJkczQgY2F0bmFtZSBjb250aW51ZSBkYXRhbGluZXMgZGF0YWxpbmVzNCBkZWxldGUgZGVsaW0gZGVsaW1pdGVyIGRpc3BsYXkgZG0gZHJvcCBlbmRzYXMgZXJyb3IgZmlsZSBmaWxlbmFtZSBmb290bm90ZSBmb3JtYXQgZ290byBpbiBpbmZpbGUgaW5mb3JtYXQgaW5wdXQga2VlcCBsYWJlbCBsZWF2ZSBsZW5ndGggbGlibmFtZSBsaW5rIGxpc3QgbG9zdGNhcmQgbWVyZ2UgbWlzc2luZyBtb2RpZnkgb3B0aW9ucyBvdXRwdXQgb3V0IHBhZ2UgcHV0IHJlZGlyZWN0IHJlbW92ZSByZW5hbWUgcmVwbGFjZSByZXRhaW4gcmV0dXJuIHNlbGVjdCBzZXQgc2tpcCBzdGFydHNhcyBzdG9wIHRpdGxlIHVwZGF0ZSB3YWl0c2FzIHdoZXJlIHdpbmRvdyB4IHN5c3Rhc2sgYWRkIGFuZCBhbHRlciBhcyBjYXNjYWRlIGNoZWNrIGNyZWF0ZSBkZWxldGUgZGVzY3JpYmUgZGlzdGluY3QgZHJvcCBmb3JlaWduIGZyb20gZ3JvdXAgaGF2aW5nIGluZGV4IGluc2VydCBpbnRvIGluIGtleSBsaWtlIG1lc3NhZ2UgbW9kaWZ5IG1zZ3R5cGUgbm90IG51bGwgb24gb3Igb3JkZXIgcHJpbWFyeSByZWZlcmVuY2VzIHJlc2V0IHJlc3RyaWN0IHNlbGVjdCBzZXQgdGFibGUgdW5pcXVlIHVwZGF0ZSB2YWxpZGF0ZSB2aWV3IHdoZXJlIn0sY29udGFpbnM6W3tjbGFzc05hbWU6ImtleXdvcmQiLGJlZ2luOi9eXHMqKHByb2MgW1x3XGRfXSt8ZGF0YXxydW58cXVpdClbXHM7XS99LHtjbGFzc05hbWU6InZhcmlhYmxlIixiZWdpbjovJlthLXpBLVpfJl1bYS16QS1aMC05X10qXC4/L30se2NsYXNzTmFtZToiZW1waGFzaXMiLGJlZ2luOi9eXHMqZGF0YWxpbmVzfGNhcmRzLio7LyxlbmQ6L15ccyo7XHMqJC99LHtjbGFzc05hbWU6ImJ1aWx0X2luIixiZWdpbjoiJSgiKyJicXVvdGV8bnJicXVvdGV8Y21wcmVzfHFjbXByZXN8Y29tcHN0b3J8ZGF0YXR5cHxkaXNwbGF5fGRvfGVsc2V8ZW5kfGV2YWx8Z2xvYmFsfGdvdG98aWZ8aW5kZXh8aW5wdXR8a2V5ZGVmfGxhYmVsfGxlZnR8bGVuZ3RofGxldHxsb2NhbHxsb3djYXNlfG1hY3JvfG1lbmR8bnJicXVvdGV8bnJxdW90ZXxucnN0cnxwdXR8cWNtcHJlc3xxbGVmdHxxbG93Y2FzZXxxc2Nhbnxxc3Vic3RyfHFzeXNmdW5jfHF0cmltfHF1b3RlfHF1cGNhc2V8c2NhbnxzdHJ8c3Vic3RyfHN1cGVycXxzeXNjYWxsfHN5c2V2YWxmfHN5c2V4ZWN8c3lzZnVuY3xzeXNnZXR8c3lzbHB1dHxzeXNwcm9kfHN5c3JjfHN5c3JwdXR8dGhlbnx0b3x0cmltfHVucXVvdGV8dW50aWx8dXBjYXNlfHZlcmlmeXx3aGlsZXx3aW5kb3ciKyIpIn0se2NsYXNzTmFtZToibmFtZSIsYmVnaW46LyVbYS16QS1aX11bYS16QS1aXzAtOV0qL30se2NsYXNzTmFtZToibWV0YSIsYmVnaW46IlteJV0oIisiYWJzfGFkZHJ8YWlyeXxhcmNvc3xhcnNpbnxhdGFufGF0dHJjfGF0dHJufGJhbmR8YmV0YWludnxibHNoaWZ0fGJub3R8Ym9yfGJyc2hpZnR8YnhvcnxieXRlfGNkZnxjZWlsfGNleGlzdHxjaW52fGNsb3NlfGNub25jdHxjb2xsYXRlfGNvbXBibHxjb21wb3VuZHxjb21wcmVzc3xjb3N8Y29zaHxjc3N8Y3Vyb2JzfGN2fGRhY2NkYnxkYWNjZGJzbHxkYWNjc2x8ZGFjY3N5ZHxkYWNjdGFifGRhaXJ5fGRhdGV8ZGF0ZWp1bHxkYXRlcGFydHxkYXRldGltZXxkYXl8ZGNsb3NlfGRlcGRifGRlcGRic2x8ZGVwZGJzbHxkZXBzbHxkZXBzbHxkZXBzeWR8ZGVwc3lkfGRlcHRhYnxkZXB0YWJ8ZGVxdW90ZXxkaG1zfGRpZnxkaWdhbW1hfGRpbXxkaW5mb3xkbnVtfGRvcGVufGRvcHRuYW1lfGRvcHRudW18ZHJlYWR8ZHJvcG5vdGV8ZHNuYW1lfGVyZnxlcmZjfGV4aXN0fGV4cHxmYXBwZW5kfGZjbG9zZXxmY29sfGZkZWxldGV8ZmV0Y2h8ZmV0Y2hvYnN8ZmV4aXN0fGZnZXR8ZmlsZWV4aXN0fGZpbGVuYW1lfGZpbGVyZWZ8ZmluZm98ZmludnxmaXBuYW1lfGZpcG5hbWVsfGZpcHN0YXRlfGZsb29yfGZub25jdHxmbm90ZXxmb3Blbnxmb3B0bmFtZXxmb3B0bnVtfGZwb2ludHxmcG9zfGZwdXR8ZnJlYWR8ZnJld2luZHxmcmxlbnxmc2VwfGZ1enp8ZndyaXRlfGdhbWludnxnYW1tYXxnZXRvcHRpb258Z2V0dmFyY3xnZXR2YXJufGhib3VuZHxobXN8aG9zdGhlbHB8aG91cnxpYmVzc2VsfGluZGV4fGluZGV4Y3xpbmRleHd8aW5wdXR8aW5wdXRjfGlucHV0bnxpbnR8aW50Y2t8aW50bnh8aW50cnJ8aXJyfGpiZXNzZWx8anVsZGF0ZXxrdXJ0b3Npc3xsYWd8bGJvdW5kfGxlZnR8bGVuZ3RofGxnYW1tYXxsaWJuYW1lfGxpYnJlZnxsb2d8bG9nMTB8bG9nMnxsb2dwZGZ8bG9ncG1mfGxvZ3NkZnxsb3djYXNlfG1heHxtZHl8bWVhbnxtaW58bWludXRlfG1vZHxtb250aHxtb3Blbnxtb3J0fG58bmV0cHZ8bm1pc3N8bm9ybWFsfG5vdGV8bnB2fG9wZW58b3JkaW5hbHxwYXRobmFtZXxwZGZ8cGVla3xwZWVrY3xwbWZ8cG9pbnR8cG9pc3Nvbnxwb2tlfHByb2JiZXRhfHByb2Jibm1sfHByb2JjaGl8cHJvYmZ8cHJvYmdhbXxwcm9iaHlwcnxwcm9iaXR8cHJvYm5lZ2J8cHJvYm5vcm18cHJvYnR8cHV0fHB1dGN8cHV0bnxxdHJ8cXVvdGV8cmFuYmlufHJhbmNhdXxyYW5leHB8cmFuZ2FtfHJhbmdlfHJhbmt8cmFubm9yfHJhbnBvaXxyYW50Ymx8cmFudHJpfHJhbnVuaXxyZXBlYXR8cmVzb2x2ZXxyZXZlcnNlfHJld2luZHxyaWdodHxyb3VuZHxzYXZpbmd8c2NhbnxzZGZ8c2Vjb25kfHNpZ258c2lufHNpbmh8c2tld25lc3N8c291bmRleHxzcGVkaXN8c3FydHxzdGR8c3RkZXJyfHN0Zmlwc3xzdG5hbWV8c3RuYW1lbHxzdWJzdHJ8c3VtfHN5bWdldHxzeXNnZXR8c3lzbXNnfHN5c3Byb2R8c3lzcmN8c3lzdGVtfHRhbnx0YW5ofHRpbWV8dGltZXBhcnR8dGludnx0bm9uY3R8dG9kYXl8dHJhbnNsYXRlfHRyYW53cmR8dHJpZ2FtbWF8dHJpbXx0cmltbnx0cnVuY3x1bmlmb3JtfHVwY2FzZXx1c3N8dmFyfHZhcmZtdHx2YXJpbmZtdHx2YXJsYWJlbHx2YXJsZW58dmFybmFtZXx2YXJudW18dmFycmF5fHZhcnJheXh8dmFydHlwZXx2ZXJpZnl8dmZvcm1hdHx2Zm9ybWF0ZHx2Zm9ybWF0ZHh8dmZvcm1hdG58dmZvcm1hdG54fHZmb3JtYXR3fHZmb3JtYXR3eHx2Zm9ybWF0eHx2aW5hcnJheXx2aW5hcnJheXh8dmluZm9ybWF0fHZpbmZvcm1hdGR8dmluZm9ybWF0ZHh8dmluZm9ybWF0bnx2aW5mb3JtYXRueHx2aW5mb3JtYXR3fHZpbmZvcm1hdHd4fHZpbmZvcm1hdHh8dmxhYmVsfHZsYWJlbHh8dmxlbmd0aHx2bGVuZ3RoeHx2bmFtZXx2bmFtZXh8dnR5cGV8dnR5cGV4fHdlZWtkYXl8eWVhcnx5eXF8emlwZmlwc3x6aXBuYW1lfHppcG5hbWVsfHppcHN0YXRlIisiKVsoXSJ9LHtjbGFzc05hbWU6InN0cmluZyIsdmFyaWFudHM6W2UuQVBPU19TVFJJTkdfTU9ERSxlLlFVT1RFX1NUUklOR19NT0RFXX0sZS5DT01NRU5UKCJcXCoiLCI7IiksZS5DX0JMT0NLX0NPTU1FTlRfTU9ERV19fXMuZXhwb3J0cz1yfSw2NjEwNzpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGUpe2NvbnN0IHQ9e2NsYXNzTmFtZToibWV0YSIsYmVnaW46IkBbQS1aYS16XSsifSxuPXtjbGFzc05hbWU6InN1YnN0Iix2YXJpYW50czpbe2JlZ2luOiJcXCRbQS1aYS16MC05X10rIn0se2JlZ2luOi9cJFx7LyxlbmQ6L1x9L31dfSxhPXtjbGFzc05hbWU6InN0cmluZyIsdmFyaWFudHM6W3tiZWdpbjonIiIiJyxlbmQ6JyIiIid9LHtiZWdpbjonIicsZW5kOiciJyxpbGxlZ2FsOiJcXG4iLGNvbnRhaW5zOltlLkJBQ0tTTEFTSF9FU0NBUEVdfSx7YmVnaW46J1thLXpdKyInLGVuZDonIicsaWxsZWdhbDoiXFxuIixjb250YWluczpbZS5CQUNLU0xBU0hfRVNDQVBFLG5dfSx7Y2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOidbYS16XSsiIiInLGVuZDonIiIiJyxjb250YWluczpbbl0scmVsZXZhbmNlOjEwfV19LGk9e2NsYXNzTmFtZToic3ltYm9sIixiZWdpbjoiJ1xcd1tcXHdcXGRfXSooPyEnKSJ9LG89e2NsYXNzTmFtZToidHlwZSIsYmVnaW46IlxcYltBLVpdW0EtWmEtejAtOV9dKiIscmVsZXZhbmNlOjB9LGw9e2NsYXNzTmFtZToidGl0bGUiLGJlZ2luOi9bXjAtOVxuXHQgIicoKSwuYHt9XFtcXTo7XVteXG5cdCAiJygpLC5ge31cW1xdOjtdK3xbXjAtOVxuXHQgIicoKSwuYHt9XFtcXTo7PV0vLHJlbGV2YW5jZTowfSxjPXtjbGFzc05hbWU6ImNsYXNzIixiZWdpbktleXdvcmRzOiJjbGFzcyBvYmplY3QgdHJhaXQgdHlwZSIsZW5kOi9bOj17XFtcbjtdLyxleGNsdWRlRW5kOiEwLGNvbnRhaW5zOltlLkNfTElORV9DT01NRU5UX01PREUsZS5DX0JMT0NLX0NPTU1FTlRfTU9ERSx7YmVnaW5LZXl3b3JkczoiZXh0ZW5kcyB3aXRoIixyZWxldmFuY2U6MTB9LHtiZWdpbjovXFsvLGVuZDovXF0vLGV4Y2x1ZGVCZWdpbjohMCxleGNsdWRlRW5kOiEwLHJlbGV2YW5jZTowLGNvbnRhaW5zOltvXX0se2NsYXNzTmFtZToicGFyYW1zIixiZWdpbjovXCgvLGVuZDovXCkvLGV4Y2x1ZGVCZWdpbjohMCxleGNsdWRlRW5kOiEwLHJlbGV2YW5jZTowLGNvbnRhaW5zOltvXX0sbF19LF89e2NsYXNzTmFtZToiZnVuY3Rpb24iLGJlZ2luS2V5d29yZHM6ImRlZiIsZW5kOi9bOj17XFsoXG47XS8sZXhjbHVkZUVuZDohMCxjb250YWluczpbbF19O3JldHVybntuYW1lOiJTY2FsYSIsa2V5d29yZHM6e2xpdGVyYWw6InRydWUgZmFsc2UgbnVsbCIsa2V5d29yZDoidHlwZSB5aWVsZCBsYXp5IG92ZXJyaWRlIGRlZiB3aXRoIHZhbCB2YXIgc2VhbGVkIGFic3RyYWN0IHByaXZhdGUgdHJhaXQgb2JqZWN0IGlmIGZvclNvbWUgZm9yIHdoaWxlIHRocm93IGZpbmFsbHkgcHJvdGVjdGVkIGV4dGVuZHMgaW1wb3J0IGZpbmFsIHJldHVybiBlbHNlIGJyZWFrIG5ldyBjYXRjaCBzdXBlciBjbGFzcyBjYXNlIHBhY2thZ2UgZGVmYXVsdCB0cnkgdGhpcyBtYXRjaCBjb250aW51ZSB0aHJvd3MgaW1wbGljaXQifSxjb250YWluczpbZS5DX0xJTkVfQ09NTUVOVF9NT0RFLGUuQ19CTE9DS19DT01NRU5UX01PREUsYSxpLG8sXyxjLGUuQ19OVU1CRVJfTU9ERSx0XX19cy5leHBvcnRzPXJ9LDg1MjU0OmZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHIoZSl7Y29uc3QgdD0iW15cXChcXClcXFtcXF1cXHtcXH1cIiwnYDsjfFxcXFxcXHNdKyIsbj0iKC18XFwrKT9cXGQrKFsuL11cXGQrKT8iLGE9bisiWytcXC1dIituKyJpIixpPXskcGF0dGVybjp0LCJidWlsdGluLW5hbWUiOiJjYXNlLWxhbWJkYSBjYWxsL2NjIGNsYXNzIGRlZmluZS1jbGFzcyBleGl0LWhhbmRsZXIgZmllbGQgaW1wb3J0IGluaGVyaXQgaW5pdC1maWVsZCBpbnRlcmZhY2UgbGV0Ki12YWx1ZXMgbGV0LXZhbHVlcyBsZXQvZWMgbWl4aW4gb3B0LWxhbWJkYSBvdmVycmlkZSBwcm90ZWN0IHByb3ZpZGUgcHVibGljIHJlbmFtZSByZXF1aXJlIHJlcXVpcmUtZm9yLXN5bnRheCBzeW50YXggc3ludGF4LWNhc2Ugc3ludGF4LWVycm9yIHVuaXQvc2lnIHVubGVzcyB3aGVuIHdpdGgtc3ludGF4IGFuZCBiZWdpbiBjYWxsLXdpdGgtY3VycmVudC1jb250aW51YXRpb24gY2FsbC13aXRoLWlucHV0LWZpbGUgY2FsbC13aXRoLW91dHB1dC1maWxlIGNhc2UgY29uZCBkZWZpbmUgZGVmaW5lLXN5bnRheCBkZWxheSBkbyBkeW5hbWljLXdpbmQgZWxzZSBmb3ItZWFjaCBpZiBsYW1iZGEgbGV0IGxldCogbGV0LXN5bnRheCBsZXRyZWMgbGV0cmVjLXN5bnRheCBtYXAgb3Igc3ludGF4LXJ1bGVzICcgKiArICwgLEAgLSAuLi4gLyA7IDwgPD0gPSA9PiA+ID49IGAgYWJzIGFjb3MgYW5nbGUgYXBwZW5kIGFwcGx5IGFzaW4gYXNzb2MgYXNzcSBhc3N2IGF0YW4gYm9vbGVhbj8gY2FhciBjYWRyIGNhbGwtd2l0aC1pbnB1dC1maWxlIGNhbGwtd2l0aC1vdXRwdXQtZmlsZSBjYWxsLXdpdGgtdmFsdWVzIGNhciBjZGRkYXIgY2RkZGRyIGNkciBjZWlsaW5nIGNoYXItPmludGVnZXIgY2hhci1hbHBoYWJldGljPyBjaGFyLWNpPD0/IGNoYXItY2k8PyBjaGFyLWNpPT8gY2hhci1jaT49PyBjaGFyLWNpPj8gY2hhci1kb3duY2FzZSBjaGFyLWxvd2VyLWNhc2U/IGNoYXItbnVtZXJpYz8gY2hhci1yZWFkeT8gY2hhci11cGNhc2UgY2hhci11cHBlci1jYXNlPyBjaGFyLXdoaXRlc3BhY2U/IGNoYXI8PT8gY2hhcjw/IGNoYXI9PyBjaGFyPj0/IGNoYXI+PyBjaGFyPyBjbG9zZS1pbnB1dC1wb3J0IGNsb3NlLW91dHB1dC1wb3J0IGNvbXBsZXg/IGNvbnMgY29zIGN1cnJlbnQtaW5wdXQtcG9ydCBjdXJyZW50LW91dHB1dC1wb3J0IGRlbm9taW5hdG9yIGRpc3BsYXkgZW9mLW9iamVjdD8gZXE/IGVxdWFsPyBlcXY/IGV2YWwgZXZlbj8gZXhhY3QtPmluZXhhY3QgZXhhY3Q/IGV4cCBleHB0IGZsb29yIGZvcmNlIGdjZCBpbWFnLXBhcnQgaW5leGFjdC0+ZXhhY3QgaW5leGFjdD8gaW5wdXQtcG9ydD8gaW50ZWdlci0+Y2hhciBpbnRlZ2VyPyBpbnRlcmFjdGlvbi1lbnZpcm9ubWVudCBsY20gbGVuZ3RoIGxpc3QgbGlzdC0+c3RyaW5nIGxpc3QtPnZlY3RvciBsaXN0LXJlZiBsaXN0LXRhaWwgbGlzdD8gbG9hZCBsb2cgbWFnbml0dWRlIG1ha2UtcG9sYXIgbWFrZS1yZWN0YW5ndWxhciBtYWtlLXN0cmluZyBtYWtlLXZlY3RvciBtYXggbWVtYmVyIG1lbXEgbWVtdiBtaW4gbW9kdWxvIG5lZ2F0aXZlPyBuZXdsaW5lIG5vdCBudWxsLWVudmlyb25tZW50IG51bGw/IG51bWJlci0+c3RyaW5nIG51bWJlcj8gbnVtZXJhdG9yIG9kZD8gb3Blbi1pbnB1dC1maWxlIG9wZW4tb3V0cHV0LWZpbGUgb3V0cHV0LXBvcnQ/IHBhaXI/IHBlZWstY2hhciBwb3J0PyBwb3NpdGl2ZT8gcHJvY2VkdXJlPyBxdWFzaXF1b3RlIHF1b3RlIHF1b3RpZW50IHJhdGlvbmFsPyByYXRpb25hbGl6ZSByZWFkIHJlYWQtY2hhciByZWFsLXBhcnQgcmVhbD8gcmVtYWluZGVyIHJldmVyc2Ugcm91bmQgc2NoZW1lLXJlcG9ydC1lbnZpcm9ubWVudCBzZXQhIHNldC1jYXIhIHNldC1jZHIhIHNpbiBzcXJ0IHN0cmluZyBzdHJpbmctPmxpc3Qgc3RyaW5nLT5udW1iZXIgc3RyaW5nLT5zeW1ib2wgc3RyaW5nLWFwcGVuZCBzdHJpbmctY2k8PT8gc3RyaW5nLWNpPD8gc3RyaW5nLWNpPT8gc3RyaW5nLWNpPj0/IHN0cmluZy1jaT4/IHN0cmluZy1jb3B5IHN0cmluZy1maWxsISBzdHJpbmctbGVuZ3RoIHN0cmluZy1yZWYgc3RyaW5nLXNldCEgc3RyaW5nPD0/IHN0cmluZzw/IHN0cmluZz0/IHN0cmluZz49PyBzdHJpbmc+PyBzdHJpbmc/IHN1YnN0cmluZyBzeW1ib2wtPnN0cmluZyBzeW1ib2w/IHRhbiB0cmFuc2NyaXB0LW9mZiB0cmFuc2NyaXB0LW9uIHRydW5jYXRlIHZhbHVlcyB2ZWN0b3IgdmVjdG9yLT5saXN0IHZlY3Rvci1maWxsISB2ZWN0b3ItbGVuZ3RoIHZlY3Rvci1yZWYgdmVjdG9yLXNldCEgd2l0aC1pbnB1dC1mcm9tLWZpbGUgd2l0aC1vdXRwdXQtdG8tZmlsZSB3cml0ZSB3cml0ZS1jaGFyIHplcm8/In0sbz17Y2xhc3NOYW1lOiJsaXRlcmFsIixiZWdpbjoiKCN0fCNmfCNcXFxcIit0KyJ8I1xcXFwuKSJ9LGw9e2NsYXNzTmFtZToibnVtYmVyIix2YXJpYW50czpbe2JlZ2luOm4scmVsZXZhbmNlOjB9LHtiZWdpbjphLHJlbGV2YW5jZTowfSx7YmVnaW46IiNiWzAtMV0rKC9bMC0xXSspPyJ9LHtiZWdpbjoiI29bMC03XSsoL1swLTddKyk/In0se2JlZ2luOiIjeFswLTlhLWZdKygvWzAtOWEtZl0rKT8ifV19LGM9ZS5RVU9URV9TVFJJTkdfTU9ERSxfPVtlLkNPTU1FTlQoIjsiLCIkIix7cmVsZXZhbmNlOjB9KSxlLkNPTU1FTlQoIiNcXHwiLCJcXHwjIildLGQ9e2JlZ2luOnQscmVsZXZhbmNlOjB9LGc9e2NsYXNzTmFtZToic3ltYm9sIixiZWdpbjoiJyIrdH0sRT17ZW5kc1dpdGhQYXJlbnQ6ITAscmVsZXZhbmNlOjB9LHU9e3ZhcmlhbnRzOlt7YmVnaW46LycvfSx7YmVnaW46ImAifV0sY29udGFpbnM6W3tiZWdpbjoiXFwoIixlbmQ6IlxcKSIsY29udGFpbnM6WyJzZWxmIixvLGMsbCxkLGddfV19LG09e2NsYXNzTmFtZToibmFtZSIscmVsZXZhbmNlOjAsYmVnaW46dCxrZXl3b3JkczppfSxUPXt2YXJpYW50czpbe2JlZ2luOiJcXCgiLGVuZDoiXFwpIn0se2JlZ2luOiJcXFsiLGVuZDoiXFxdIn1dLGNvbnRhaW5zOlt7YmVnaW46L2xhbWJkYS8sZW5kc1dpdGhQYXJlbnQ6ITAscmV0dXJuQmVnaW46ITAsY29udGFpbnM6W20se2VuZHNQYXJlbnQ6ITAsdmFyaWFudHM6W3tiZWdpbjovXCgvLGVuZDovXCkvfSx7YmVnaW46L1xbLyxlbmQ6L1xdL31dLGNvbnRhaW5zOltkXX1dfSxtLEVdfTtyZXR1cm4gRS5jb250YWlucz1bbyxsLGMsZCxnLHUsVF0uY29uY2F0KF8pLHtuYW1lOiJTY2hlbWUiLGlsbGVnYWw6L1xTLyxjb250YWluczpbZS5TSEVCQU5HKCksbCxjLGcsdSxUXS5jb25jYXQoXyl9fXMuZXhwb3J0cz1yfSw4MTMyMDpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGUpe2NvbnN0IHQ9W2UuQ19OVU1CRVJfTU9ERSx7Y2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOmAnfCJgLGVuZDpgJ3wiYCxjb250YWluczpbZS5CQUNLU0xBU0hfRVNDQVBFLHtiZWdpbjoiJycifV19XTtyZXR1cm57bmFtZToiU2NpbGFiIixhbGlhc2VzOlsic2NpIl0sa2V5d29yZHM6eyRwYXR0ZXJuOi8lP1x3Ky8sa2V5d29yZDoiYWJvcnQgYnJlYWsgY2FzZSBjbGVhciBjYXRjaCBjb250aW51ZSBkbyBlbHNlaWYgZWxzZSBlbmRmdW5jdGlvbiBlbmQgZm9yIGZ1bmN0aW9uIGdsb2JhbCBpZiBwYXVzZSByZXR1cm4gcmVzdW1lIHNlbGVjdCB0cnkgdGhlbiB3aGlsZSIsbGl0ZXJhbDoiJWYgJUYgJXQgJVQgJXBpICVlcHMgJWluZiAlbmFuICVlICVpICV6ICVzIixidWlsdF9pbjoiYWJzIGFuZCBhY29zIGFzaW4gYXRhbiBjZWlsIGNkIGNoZGlyIGNsZWFyZ2xvYmFsIGNvc2ggY29zIGN1bXByb2QgZGVmZiBkaXNwIGVycm9yIGV4ZWMgZXhlY3N0ciBleGlzdHMgZXhwIGV5ZSBnZXR0ZXh0IGZsb29yIGZwcmludGYgZnJlYWQgZnNvbHZlIGltYWcgaXNkZWYgaXNlbXB0eSBpc2luZmlzbmFuIGlzdmVjdG9yIGxhc3RlcnJvciBsZW5ndGggbG9hZCBsaW5zcGFjZSBsaXN0IGxpc3RmaWxlcyBsb2cxMCBsb2cyIGxvZyBtYXggbWluIG1zcHJpbnRmIG1jbG9zZSBtb3BlbiBvbmVzIG9yIHBhdGhjb252ZXJ0IHBvbHkgcHJpbnRmIHByb2QgcHdkIHJhbmQgcmVhbCByb3VuZCBzaW5oIHNpbiBzaXplIGdzb3J0IHNwcmludGYgc3FydCBzdHJjYXQgc3RyY21wcyB0cmluZyBzdW0gc3lzdGVtIHRhbmggdGFuIHR5cGUgdHlwZW5hbWUgd2FybmluZyB6ZXJvcyBtYXRyaXgifSxpbGxlZ2FsOicoInwjfC9cXCp8XFxzKy9cXHcrKScsY29udGFpbnM6W3tjbGFzc05hbWU6ImZ1bmN0aW9uIixiZWdpbktleXdvcmRzOiJmdW5jdGlvbiIsZW5kOiIkIixjb250YWluczpbZS5VTkRFUlNDT1JFX1RJVExFX01PREUse2NsYXNzTmFtZToicGFyYW1zIixiZWdpbjoiXFwoIixlbmQ6IlxcKSJ9XX0se2JlZ2luOiJbYS16QS1aX11bYS16QS1aXzAtOV0qW1xcLiddKyIscmVsZXZhbmNlOjB9LHtiZWdpbjoiXFxbIixlbmQ6IlxcXVtcXC4nXSoiLHJlbGV2YW5jZTowLGNvbnRhaW5zOnR9LGUuQ09NTUVOVCgiLy8iLCIkIildLmNvbmNhdCh0KX19cy5leHBvcnRzPXJ9LDYxODIyOmZ1bmN0aW9uKHMpe2NvbnN0IHI9bD0+KHtJTVBPUlRBTlQ6e2NsYXNzTmFtZToibWV0YSIsYmVnaW46IiFpbXBvcnRhbnQifSxIRVhDT0xPUjp7Y2xhc3NOYW1lOiJudW1iZXIiLGJlZ2luOiIjKFthLWZBLUYwLTldezZ9fFthLWZBLUYwLTldezN9KSJ9LEFUVFJJQlVURV9TRUxFQ1RPUl9NT0RFOntjbGFzc05hbWU6InNlbGVjdG9yLWF0dHIiLGJlZ2luOi9cWy8sZW5kOi9cXS8saWxsZWdhbDoiJCIsY29udGFpbnM6W2wuQVBPU19TVFJJTkdfTU9ERSxsLlFVT1RFX1NUUklOR19NT0RFXX19KSxlPVsiYSIsImFiYnIiLCJhZGRyZXNzIiwiYXJ0aWNsZSIsImFzaWRlIiwiYXVkaW8iLCJiIiwiYmxvY2txdW90ZSIsImJvZHkiLCJidXR0b24iLCJjYW52YXMiLCJjYXB0aW9uIiwiY2l0ZSIsImNvZGUiLCJkZCIsImRlbCIsImRldGFpbHMiLCJkZm4iLCJkaXYiLCJkbCIsImR0IiwiZW0iLCJmaWVsZHNldCIsImZpZ2NhcHRpb24iLCJmaWd1cmUiLCJmb290ZXIiLCJmb3JtIiwiaDEiLCJoMiIsImgzIiwiaDQiLCJoNSIsImg2IiwiaGVhZGVyIiwiaGdyb3VwIiwiaHRtbCIsImkiLCJpZnJhbWUiLCJpbWciLCJpbnB1dCIsImlucyIsImtiZCIsImxhYmVsIiwibGVnZW5kIiwibGkiLCJtYWluIiwibWFyayIsIm1lbnUiLCJuYXYiLCJvYmplY3QiLCJvbCIsInAiLCJxIiwicXVvdGUiLCJzYW1wIiwic2VjdGlvbiIsInNwYW4iLCJzdHJvbmciLCJzdW1tYXJ5Iiwic3VwIiwidGFibGUiLCJ0Ym9keSIsInRkIiwidGV4dGFyZWEiLCJ0Zm9vdCIsInRoIiwidGhlYWQiLCJ0aW1lIiwidHIiLCJ1bCIsInZhciIsInZpZGVvIl0sdD1bImFueS1ob3ZlciIsImFueS1wb2ludGVyIiwiYXNwZWN0LXJhdGlvIiwiY29sb3IiLCJjb2xvci1nYW11dCIsImNvbG9yLWluZGV4IiwiZGV2aWNlLWFzcGVjdC1yYXRpbyIsImRldmljZS1oZWlnaHQiLCJkZXZpY2Utd2lkdGgiLCJkaXNwbGF5LW1vZGUiLCJmb3JjZWQtY29sb3JzIiwiZ3JpZCIsImhlaWdodCIsImhvdmVyIiwiaW52ZXJ0ZWQtY29sb3JzIiwibW9ub2Nocm9tZSIsIm9yaWVudGF0aW9uIiwib3ZlcmZsb3ctYmxvY2siLCJvdmVyZmxvdy1pbmxpbmUiLCJwb2ludGVyIiwicHJlZmVycy1jb2xvci1zY2hlbWUiLCJwcmVmZXJzLWNvbnRyYXN0IiwicHJlZmVycy1yZWR1Y2VkLW1vdGlvbiIsInByZWZlcnMtcmVkdWNlZC10cmFuc3BhcmVuY3kiLCJyZXNvbHV0aW9uIiwic2NhbiIsInNjcmlwdGluZyIsInVwZGF0ZSIsIndpZHRoIiwibWluLXdpZHRoIiwibWF4LXdpZHRoIiwibWluLWhlaWdodCIsIm1heC1oZWlnaHQiXSxuPVsiYWN0aXZlIiwiYW55LWxpbmsiLCJibGFuayIsImNoZWNrZWQiLCJjdXJyZW50IiwiZGVmYXVsdCIsImRlZmluZWQiLCJkaXIiLCJkaXNhYmxlZCIsImRyb3AiLCJlbXB0eSIsImVuYWJsZWQiLCJmaXJzdCIsImZpcnN0LWNoaWxkIiwiZmlyc3Qtb2YtdHlwZSIsImZ1bGxzY3JlZW4iLCJmdXR1cmUiLCJmb2N1cyIsImZvY3VzLXZpc2libGUiLCJmb2N1cy13aXRoaW4iLCJoYXMiLCJob3N0IiwiaG9zdC1jb250ZXh0IiwiaG92ZXIiLCJpbmRldGVybWluYXRlIiwiaW4tcmFuZ2UiLCJpbnZhbGlkIiwiaXMiLCJsYW5nIiwibGFzdC1jaGlsZCIsImxhc3Qtb2YtdHlwZSIsImxlZnQiLCJsaW5rIiwibG9jYWwtbGluayIsIm5vdCIsIm50aC1jaGlsZCIsIm50aC1jb2wiLCJudGgtbGFzdC1jaGlsZCIsIm50aC1sYXN0LWNvbCIsIm50aC1sYXN0LW9mLXR5cGUiLCJudGgtb2YtdHlwZSIsIm9ubHktY2hpbGQiLCJvbmx5LW9mLXR5cGUiLCJvcHRpb25hbCIsIm91dC1vZi1yYW5nZSIsInBhc3QiLCJwbGFjZWhvbGRlci1zaG93biIsInJlYWQtb25seSIsInJlYWQtd3JpdGUiLCJyZXF1aXJlZCIsInJpZ2h0Iiwicm9vdCIsInNjb3BlIiwidGFyZ2V0IiwidGFyZ2V0LXdpdGhpbiIsInVzZXItaW52YWxpZCIsInZhbGlkIiwidmlzaXRlZCIsIndoZXJlIl0sYT1bImFmdGVyIiwiYmFja2Ryb3AiLCJiZWZvcmUiLCJjdWUiLCJjdWUtcmVnaW9uIiwiZmlyc3QtbGV0dGVyIiwiZmlyc3QtbGluZSIsImdyYW1tYXItZXJyb3IiLCJtYXJrZXIiLCJwYXJ0IiwicGxhY2Vob2xkZXIiLCJzZWxlY3Rpb24iLCJzbG90dGVkIiwic3BlbGxpbmctZXJyb3IiXSxpPVsiYWxpZ24tY29udGVudCIsImFsaWduLWl0ZW1zIiwiYWxpZ24tc2VsZiIsImFuaW1hdGlvbiIsImFuaW1hdGlvbi1kZWxheSIsImFuaW1hdGlvbi1kaXJlY3Rpb24iLCJhbmltYXRpb24tZHVyYXRpb24iLCJhbmltYXRpb24tZmlsbC1tb2RlIiwiYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCIsImFuaW1hdGlvbi1uYW1lIiwiYW5pbWF0aW9uLXBsYXktc3RhdGUiLCJhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uIiwiYXV0byIsImJhY2tmYWNlLXZpc2liaWxpdHkiLCJiYWNrZ3JvdW5kIiwiYmFja2dyb3VuZC1hdHRhY2htZW50IiwiYmFja2dyb3VuZC1jbGlwIiwiYmFja2dyb3VuZC1jb2xvciIsImJhY2tncm91bmQtaW1hZ2UiLCJiYWNrZ3JvdW5kLW9yaWdpbiIsImJhY2tncm91bmQtcG9zaXRpb24iLCJiYWNrZ3JvdW5kLXJlcGVhdCIsImJhY2tncm91bmQtc2l6ZSIsImJvcmRlciIsImJvcmRlci1ib3R0b20iLCJib3JkZXItYm90dG9tLWNvbG9yIiwiYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1cyIsImJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzIiwiYm9yZGVyLWJvdHRvbS1zdHlsZSIsImJvcmRlci1ib3R0b20td2lkdGgiLCJib3JkZXItY29sbGFwc2UiLCJib3JkZXItY29sb3IiLCJib3JkZXItaW1hZ2UiLCJib3JkZXItaW1hZ2Utb3V0c2V0IiwiYm9yZGVyLWltYWdlLXJlcGVhdCIsImJvcmRlci1pbWFnZS1zbGljZSIsImJvcmRlci1pbWFnZS1zb3VyY2UiLCJib3JkZXItaW1hZ2Utd2lkdGgiLCJib3JkZXItbGVmdCIsImJvcmRlci1sZWZ0LWNvbG9yIiwiYm9yZGVyLWxlZnQtc3R5bGUiLCJib3JkZXItbGVmdC13aWR0aCIsImJvcmRlci1yYWRpdXMiLCJib3JkZXItcmlnaHQiLCJib3JkZXItcmlnaHQtY29sb3IiLCJib3JkZXItcmlnaHQtc3R5bGUiLCJib3JkZXItcmlnaHQtd2lkdGgiLCJib3JkZXItc3BhY2luZyIsImJvcmRlci1zdHlsZSIsImJvcmRlci10b3AiLCJib3JkZXItdG9wLWNvbG9yIiwiYm9yZGVyLXRvcC1sZWZ0LXJhZGl1cyIsImJvcmRlci10b3AtcmlnaHQtcmFkaXVzIiwiYm9yZGVyLXRvcC1zdHlsZSIsImJvcmRlci10b3Atd2lkdGgiLCJib3JkZXItd2lkdGgiLCJib3R0b20iLCJib3gtZGVjb3JhdGlvbi1icmVhayIsImJveC1zaGFkb3ciLCJib3gtc2l6aW5nIiwiYnJlYWstYWZ0ZXIiLCJicmVhay1iZWZvcmUiLCJicmVhay1pbnNpZGUiLCJjYXB0aW9uLXNpZGUiLCJjbGVhciIsImNsaXAiLCJjbGlwLXBhdGgiLCJjb2xvciIsImNvbHVtbi1jb3VudCIsImNvbHVtbi1maWxsIiwiY29sdW1uLWdhcCIsImNvbHVtbi1ydWxlIiwiY29sdW1uLXJ1bGUtY29sb3IiLCJjb2x1bW4tcnVsZS1zdHlsZSIsImNvbHVtbi1ydWxlLXdpZHRoIiwiY29sdW1uLXNwYW4iLCJjb2x1bW4td2lkdGgiLCJjb2x1bW5zIiwiY29udGVudCIsImNvdW50ZXItaW5jcmVtZW50IiwiY291bnRlci1yZXNldCIsImN1cnNvciIsImRpcmVjdGlvbiIsImRpc3BsYXkiLCJlbXB0eS1jZWxscyIsImZpbHRlciIsImZsZXgiLCJmbGV4LWJhc2lzIiwiZmxleC1kaXJlY3Rpb24iLCJmbGV4LWZsb3ciLCJmbGV4LWdyb3ciLCJmbGV4LXNocmluayIsImZsZXgtd3JhcCIsImZsb2F0IiwiZm9udCIsImZvbnQtZGlzcGxheSIsImZvbnQtZmFtaWx5IiwiZm9udC1mZWF0dXJlLXNldHRpbmdzIiwiZm9udC1rZXJuaW5nIiwiZm9udC1sYW5ndWFnZS1vdmVycmlkZSIsImZvbnQtc2l6ZSIsImZvbnQtc2l6ZS1hZGp1c3QiLCJmb250LXNtb290aGluZyIsImZvbnQtc3RyZXRjaCIsImZvbnQtc3R5bGUiLCJmb250LXZhcmlhbnQiLCJmb250LXZhcmlhbnQtbGlnYXR1cmVzIiwiZm9udC12YXJpYXRpb24tc2V0dGluZ3MiLCJmb250LXdlaWdodCIsImhlaWdodCIsImh5cGhlbnMiLCJpY29uIiwiaW1hZ2Utb3JpZW50YXRpb24iLCJpbWFnZS1yZW5kZXJpbmciLCJpbWFnZS1yZXNvbHV0aW9uIiwiaW1lLW1vZGUiLCJpbmhlcml0IiwiaW5pdGlhbCIsImp1c3RpZnktY29udGVudCIsImxlZnQiLCJsZXR0ZXItc3BhY2luZyIsImxpbmUtaGVpZ2h0IiwibGlzdC1zdHlsZSIsImxpc3Qtc3R5bGUtaW1hZ2UiLCJsaXN0LXN0eWxlLXBvc2l0aW9uIiwibGlzdC1zdHlsZS10eXBlIiwibWFyZ2luIiwibWFyZ2luLWJvdHRvbSIsIm1hcmdpbi1sZWZ0IiwibWFyZ2luLXJpZ2h0IiwibWFyZ2luLXRvcCIsIm1hcmtzIiwibWFzayIsIm1heC1oZWlnaHQiLCJtYXgtd2lkdGgiLCJtaW4taGVpZ2h0IiwibWluLXdpZHRoIiwibmF2LWRvd24iLCJuYXYtaW5kZXgiLCJuYXYtbGVmdCIsIm5hdi1yaWdodCIsIm5hdi11cCIsIm5vbmUiLCJub3JtYWwiLCJvYmplY3QtZml0Iiwib2JqZWN0LXBvc2l0aW9uIiwib3BhY2l0eSIsIm9yZGVyIiwib3JwaGFucyIsIm91dGxpbmUiLCJvdXRsaW5lLWNvbG9yIiwib3V0bGluZS1vZmZzZXQiLCJvdXRsaW5lLXN0eWxlIiwib3V0bGluZS13aWR0aCIsIm92ZXJmbG93Iiwib3ZlcmZsb3ctd3JhcCIsIm92ZXJmbG93LXgiLCJvdmVyZmxvdy15IiwicGFkZGluZyIsInBhZGRpbmctYm90dG9tIiwicGFkZGluZy1sZWZ0IiwicGFkZGluZy1yaWdodCIsInBhZGRpbmctdG9wIiwicGFnZS1icmVhay1hZnRlciIsInBhZ2UtYnJlYWstYmVmb3JlIiwicGFnZS1icmVhay1pbnNpZGUiLCJwZXJzcGVjdGl2ZSIsInBlcnNwZWN0aXZlLW9yaWdpbiIsInBvaW50ZXItZXZlbnRzIiwicG9zaXRpb24iLCJxdW90ZXMiLCJyZXNpemUiLCJyaWdodCIsInNyYyIsInRhYi1zaXplIiwidGFibGUtbGF5b3V0IiwidGV4dC1hbGlnbiIsInRleHQtYWxpZ24tbGFzdCIsInRleHQtZGVjb3JhdGlvbiIsInRleHQtZGVjb3JhdGlvbi1jb2xvciIsInRleHQtZGVjb3JhdGlvbi1saW5lIiwidGV4dC1kZWNvcmF0aW9uLXN0eWxlIiwidGV4dC1pbmRlbnQiLCJ0ZXh0LW92ZXJmbG93IiwidGV4dC1yZW5kZXJpbmciLCJ0ZXh0LXNoYWRvdyIsInRleHQtdHJhbnNmb3JtIiwidGV4dC11bmRlcmxpbmUtcG9zaXRpb24iLCJ0b3AiLCJ0cmFuc2Zvcm0iLCJ0cmFuc2Zvcm0tb3JpZ2luIiwidHJhbnNmb3JtLXN0eWxlIiwidHJhbnNpdGlvbiIsInRyYW5zaXRpb24tZGVsYXkiLCJ0cmFuc2l0aW9uLWR1cmF0aW9uIiwidHJhbnNpdGlvbi1wcm9wZXJ0eSIsInRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uIiwidW5pY29kZS1iaWRpIiwidmVydGljYWwtYWxpZ24iLCJ2aXNpYmlsaXR5Iiwid2hpdGUtc3BhY2UiLCJ3aWRvd3MiLCJ3aWR0aCIsIndvcmQtYnJlYWsiLCJ3b3JkLXNwYWNpbmciLCJ3b3JkLXdyYXAiLCJ6LWluZGV4Il0ucmV2ZXJzZSgpO2Z1bmN0aW9uIG8obCl7Y29uc3QgYz1yKGwpLF89YSxkPW4sZz0iQFthLXotXSsiLEU9ImFuZCBvciBub3Qgb25seSIsbT17Y2xhc3NOYW1lOiJ2YXJpYWJsZSIsYmVnaW46IihcXCQiKyJbYS16QS1aLV1bYS16QS1aMC05Xy1dKiIrIilcXGIifTtyZXR1cm57bmFtZToiU0NTUyIsY2FzZV9pbnNlbnNpdGl2ZTohMCxpbGxlZ2FsOiJbPS98J10iLGNvbnRhaW5zOltsLkNfTElORV9DT01NRU5UX01PREUsbC5DX0JMT0NLX0NPTU1FTlRfTU9ERSx7Y2xhc3NOYW1lOiJzZWxlY3Rvci1pZCIsYmVnaW46IiNbQS1aYS16MC05Xy1dKyIscmVsZXZhbmNlOjB9LHtjbGFzc05hbWU6InNlbGVjdG9yLWNsYXNzIixiZWdpbjoiXFwuW0EtWmEtejAtOV8tXSsiLHJlbGV2YW5jZTowfSxjLkFUVFJJQlVURV9TRUxFQ1RPUl9NT0RFLHtjbGFzc05hbWU6InNlbGVjdG9yLXRhZyIsYmVnaW46IlxcYigiK2Uuam9pbigifCIpKyIpXFxiIixyZWxldmFuY2U6MH0se2NsYXNzTmFtZToic2VsZWN0b3ItcHNldWRvIixiZWdpbjoiOigiK2Quam9pbigifCIpKyIpIn0se2NsYXNzTmFtZToic2VsZWN0b3ItcHNldWRvIixiZWdpbjoiOjooIitfLmpvaW4oInwiKSsiKSJ9LG0se2JlZ2luOi9cKC8sZW5kOi9cKS8sY29udGFpbnM6W2wuQ1NTX05VTUJFUl9NT0RFXX0se2NsYXNzTmFtZToiYXR0cmlidXRlIixiZWdpbjoiXFxiKCIraS5qb2luKCJ8IikrIilcXGIifSx7YmVnaW46IlxcYih3aGl0ZXNwYWNlfHdhaXR8dy1yZXNpemV8dmlzaWJsZXx2ZXJ0aWNhbC10ZXh0fHZlcnRpY2FsLWlkZW9ncmFwaGljfHVwcGVyY2FzZXx1cHBlci1yb21hbnx1cHBlci1hbHBoYXx1bmRlcmxpbmV8dHJhbnNwYXJlbnR8dG9wfHRoaW58dGhpY2t8dGV4dHx0ZXh0LXRvcHx0ZXh0LWJvdHRvbXx0Yi1ybHx0YWJsZS1oZWFkZXItZ3JvdXB8dGFibGUtZm9vdGVyLWdyb3VwfHN3LXJlc2l6ZXxzdXBlcnxzdHJpY3R8c3RhdGljfHNxdWFyZXxzb2xpZHxzbWFsbC1jYXBzfHNlcGFyYXRlfHNlLXJlc2l6ZXxzY3JvbGx8cy1yZXNpemV8cnRsfHJvdy1yZXNpemV8cmlkZ2V8cmlnaHR8cmVwZWF0fHJlcGVhdC15fHJlcGVhdC14fHJlbGF0aXZlfHByb2dyZXNzfHBvaW50ZXJ8b3ZlcmxpbmV8b3V0c2lkZXxvdXRzZXR8b2JsaXF1ZXxub3dyYXB8bm90LWFsbG93ZWR8bm9ybWFsfG5vbmV8bnctcmVzaXplfG5vLXJlcGVhdHxuby1kcm9wfG5ld3NwYXBlcnxuZS1yZXNpemV8bi1yZXNpemV8bW92ZXxtaWRkbGV8bWVkaXVtfGx0cnxsci10Ynxsb3dlcmNhc2V8bG93ZXItcm9tYW58bG93ZXItYWxwaGF8bG9vc2V8bGlzdC1pdGVtfGxpbmV8bGluZS10aHJvdWdofGxpbmUtZWRnZXxsaWdodGVyfGxlZnR8a2VlcC1hbGx8anVzdGlmeXxpdGFsaWN8aW50ZXItd29yZHxpbnRlci1pZGVvZ3JhcGh8aW5zaWRlfGluc2V0fGlubGluZXxpbmxpbmUtYmxvY2t8aW5oZXJpdHxpbmFjdGl2ZXxpZGVvZ3JhcGgtc3BhY2V8aWRlb2dyYXBoLXBhcmVudGhlc2lzfGlkZW9ncmFwaC1udW1lcmljfGlkZW9ncmFwaC1hbHBoYXxob3Jpem9udGFsfGhpZGRlbnxoZWxwfGhhbmR8Z3Jvb3ZlfGZpeGVkfGVsbGlwc2lzfGUtcmVzaXplfGRvdWJsZXxkb3R0ZWR8ZGlzdHJpYnV0ZXxkaXN0cmlidXRlLXNwYWNlfGRpc3RyaWJ1dGUtbGV0dGVyfGRpc3RyaWJ1dGUtYWxsLWxpbmVzfGRpc2N8ZGlzYWJsZWR8ZGVmYXVsdHxkZWNpbWFsfGRhc2hlZHxjcm9zc2hhaXJ8Y29sbGFwc2V8Y29sLXJlc2l6ZXxjaXJjbGV8Y2hhcnxjZW50ZXJ8Y2FwaXRhbGl6ZXxicmVhay13b3JkfGJyZWFrLWFsbHxib3R0b218Ym90aHxib2xkZXJ8Ym9sZHxibG9ja3xiaWRpLW92ZXJyaWRlfGJlbG93fGJhc2VsaW5lfGF1dG98YWx3YXlzfGFsbC1zY3JvbGx8YWJzb2x1dGV8dGFibGV8dGFibGUtY2VsbClcXGIifSx7YmVnaW46IjoiLGVuZDoiOyIsY29udGFpbnM6W20sYy5IRVhDT0xPUixsLkNTU19OVU1CRVJfTU9ERSxsLlFVT1RFX1NUUklOR19NT0RFLGwuQVBPU19TVFJJTkdfTU9ERSxjLklNUE9SVEFOVF19LHtiZWdpbjoiQChwYWdlfGZvbnQtZmFjZSkiLGxleGVtZXM6ZyxrZXl3b3JkczoiQHBhZ2UgQGZvbnQtZmFjZSJ9LHtiZWdpbjoiQCIsZW5kOiJbeztdIixyZXR1cm5CZWdpbjohMCxrZXl3b3Jkczp7JHBhdHRlcm46L1thLXotXSsvLGtleXdvcmQ6RSxhdHRyaWJ1dGU6dC5qb2luKCIgIil9LGNvbnRhaW5zOlt7YmVnaW46ZyxjbGFzc05hbWU6ImtleXdvcmQifSx7YmVnaW46L1thLXotXSsoPz06KS8sY2xhc3NOYW1lOiJhdHRyaWJ1dGUifSxtLGwuUVVPVEVfU1RSSU5HX01PREUsbC5BUE9TX1NUUklOR19NT0RFLGMuSEVYQ09MT1IsbC5DU1NfTlVNQkVSX01PREVdfV19fXMuZXhwb3J0cz1vfSw2NTkxODpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGUpe3JldHVybntuYW1lOiJTaGVsbCBTZXNzaW9uIixhbGlhc2VzOlsiY29uc29sZSJdLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJtZXRhIixiZWdpbjovXlxzezAsM31bL35cd1xkW1xdKClALV0qWz4lJCNdLyxzdGFydHM6e2VuZDovW15cXF0oPz1ccyokKS8sc3ViTGFuZ3VhZ2U6ImJhc2gifX1dfX1zLmV4cG9ydHM9cn0sMTQzMTM6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihlKXtjb25zdCB0PVsiYWRkIiwiYW5kIiwiY21wIiwiY21wZyIsImNtcGwiLCJjb25zdCIsImRpdiIsImRvdWJsZSIsImZsb2F0IiwiZ290byIsImlmIiwiaW50IiwibG9uZyIsIm1vdmUiLCJtdWwiLCJuZWciLCJuZXciLCJub3AiLCJub3QiLCJvciIsInJlbSIsInJldHVybiIsInNobCIsInNociIsInNwdXQiLCJzdWIiLCJ0aHJvdyIsInVzaHIiLCJ4b3IiXSxuPVsiYWdldCIsImFwdXQiLCJhcnJheSIsImNoZWNrIiwiZXhlY3V0ZSIsImZpbGwiLCJmaWxsZWQiLCJnb3RvLzE2IiwiZ290by8zMiIsImlnZXQiLCJpbnN0YW5jZSIsImludm9rZSIsImlwdXQiLCJtb25pdG9yIiwicGFja2VkIiwic2dldCIsInNwYXJzZSJdLGE9WyJ0cmFuc2llbnQiLCJjb25zdHJ1Y3RvciIsImFic3RyYWN0IiwiZmluYWwiLCJzeW50aGV0aWMiLCJwdWJsaWMiLCJwcml2YXRlIiwicHJvdGVjdGVkIiwic3RhdGljIiwiYnJpZGdlIiwic3lzdGVtIl07cmV0dXJue25hbWU6IlNtYWxpIixjb250YWluczpbe2NsYXNzTmFtZToic3RyaW5nIixiZWdpbjonIicsZW5kOiciJyxyZWxldmFuY2U6MH0sZS5DT01NRU5UKCIjIiwiJCIse3JlbGV2YW5jZTowfSkse2NsYXNzTmFtZToia2V5d29yZCIsdmFyaWFudHM6W3tiZWdpbjoiXFxzKlxcLmVuZFxcc1thLXpBLVowLTldKiJ9LHtiZWdpbjoiXlsgXSpcXC5bYS16QS1aXSoiLHJlbGV2YW5jZTowfSx7YmVnaW46IlxcczpbYS16QS1aXzAtOV0qIixyZWxldmFuY2U6MH0se2JlZ2luOiJcXHMoIithLmpvaW4oInwiKSsiKSJ9XX0se2NsYXNzTmFtZToiYnVpbHRfaW4iLHZhcmlhbnRzOlt7YmVnaW46IlxccygiK3Quam9pbigifCIpKyIpXFxzIn0se2JlZ2luOiJcXHMoIit0LmpvaW4oInwiKSsiKSgoLXwvKVthLXpBLVowLTldKykrXFxzIixyZWxldmFuY2U6MTB9LHtiZWdpbjoiXFxzKCIrbi5qb2luKCJ8IikrIikoKC18LylbYS16QS1aMC05XSspKlxccyIscmVsZXZhbmNlOjEwfV19LHtjbGFzc05hbWU6ImNsYXNzIixiZWdpbjpgTFteKDs6CitdKjtgLHJlbGV2YW5jZTowfSx7YmVnaW46Ilt2cF1bMC05XSsifV19fXMuZXhwb3J0cz1yfSwxMjYxMjpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGUpe2NvbnN0IHQ9IlthLXpdW2EtekEtWjAtOV9dKiIsbj17Y2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOiJcXCQuezF9In0sYT17Y2xhc3NOYW1lOiJzeW1ib2wiLGJlZ2luOiIjIitlLlVOREVSU0NPUkVfSURFTlRfUkV9O3JldHVybntuYW1lOiJTbWFsbHRhbGsiLGFsaWFzZXM6WyJzdCJdLGtleXdvcmRzOiJzZWxmIHN1cGVyIG5pbCB0cnVlIGZhbHNlIHRoaXNDb250ZXh0Iixjb250YWluczpbZS5DT01NRU5UKCciJywnIicpLGUuQVBPU19TVFJJTkdfTU9ERSx7Y2xhc3NOYW1lOiJ0eXBlIixiZWdpbjoiXFxiW0EtWl1bQS1aYS16MC05X10qIixyZWxldmFuY2U6MH0se2JlZ2luOnQrIjoiLHJlbGV2YW5jZTowfSxlLkNfTlVNQkVSX01PREUsYSxuLHtiZWdpbjoiXFx8WyBdKiIrdCsiKFsgXSsiK3QrIikqWyBdKlxcfCIscmV0dXJuQmVnaW46ITAsZW5kOi9cfC8saWxsZWdhbDovXFMvLGNvbnRhaW5zOlt7YmVnaW46IihcXHxbIF0qKT8iK3R9XX0se2JlZ2luOiIjXFwoIixlbmQ6IlxcKSIsY29udGFpbnM6W2UuQVBPU19TVFJJTkdfTU9ERSxuLGUuQ19OVU1CRVJfTU9ERSxhXX1dfX1zLmV4cG9ydHM9cn0sOTA2MTc6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihlKXtyZXR1cm57bmFtZToiU01MIChTdGFuZGFyZCBNTCkiLGFsaWFzZXM6WyJtbCJdLGtleXdvcmRzOnskcGF0dGVybjoiW2Etel9dXFx3KiE/IixrZXl3b3JkOiJhYnN0eXBlIGFuZCBhbmRhbHNvIGFzIGNhc2UgZGF0YXR5cGUgZG8gZWxzZSBlbmQgZXF0eXBlIGV4Y2VwdGlvbiBmbiBmdW4gZnVuY3RvciBoYW5kbGUgaWYgaW4gaW5jbHVkZSBpbmZpeCBpbmZpeHIgbGV0IGxvY2FsIG5vbmZpeCBvZiBvcCBvcGVuIG9yZWxzZSByYWlzZSByZWMgc2hhcmluZyBzaWcgc2lnbmF0dXJlIHN0cnVjdCBzdHJ1Y3R1cmUgdGhlbiB0eXBlIHZhbCB3aXRoIHdpdGh0eXBlIHdoZXJlIHdoaWxlIixidWlsdF9pbjoiYXJyYXkgYm9vbCBjaGFyIGV4biBpbnQgbGlzdCBvcHRpb24gb3JkZXIgcmVhbCByZWYgc3RyaW5nIHN1YnN0cmluZyB2ZWN0b3IgdW5pdCB3b3JkIixsaXRlcmFsOiJ0cnVlIGZhbHNlIE5PTkUgU09NRSBMRVNTIEVRVUFMIEdSRUFURVIgbmlsIn0saWxsZWdhbDovXC9cL3w+Pi8sY29udGFpbnM6W3tjbGFzc05hbWU6ImxpdGVyYWwiLGJlZ2luOi9cWyhcfFx8KT9cXXxcKFwpLyxyZWxldmFuY2U6MH0sZS5DT01NRU5UKCJcXChcXCoiLCJcXCpcXCkiLHtjb250YWluczpbInNlbGYiXX0pLHtjbGFzc05hbWU6InN5bWJvbCIsYmVnaW46IidbQS1aYS16X10oPyEnKVtcXHcnXSoifSx7Y2xhc3NOYW1lOiJ0eXBlIixiZWdpbjoiYFtBLVpdW1xcdyddKiJ9LHtjbGFzc05hbWU6InR5cGUiLGJlZ2luOiJcXGJbQS1aXVtcXHcnXSoiLHJlbGV2YW5jZTowfSx7YmVnaW46IlthLXpfXVxcdyonW1xcdyddKiJ9LGUuaW5oZXJpdChlLkFQT1NfU1RSSU5HX01PREUse2NsYXNzTmFtZToic3RyaW5nIixyZWxldmFuY2U6MH0pLGUuaW5oZXJpdChlLlFVT1RFX1NUUklOR19NT0RFLHtpbGxlZ2FsOm51bGx9KSx7Y2xhc3NOYW1lOiJudW1iZXIiLGJlZ2luOiJcXGIoMFt4WF1bYS1mQS1GMC05X10rW0xsbl0/fDBbb09dWzAtN19dK1tMbG5dP3wwW2JCXVswMV9dK1tMbG5dP3xbMC05XVswLTlfXSooW0xsbl18KFxcLlswLTlfXSopPyhbZUVdWy0rXT9bMC05X10rKT8pPykiLHJlbGV2YW5jZTowfSx7YmVnaW46L1stPV0+L31dfX1zLmV4cG9ydHM9cn0sMTU2MTY6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihlKXtjb25zdCB0PXtjbGFzc05hbWU6InZhcmlhYmxlIixiZWdpbjovXGJfK1thLXpBLVpdXHcqL30sbj17Y2xhc3NOYW1lOiJ0aXRsZSIsYmVnaW46L1thLXpBLVpdW2EtekEtWjAtOV0rX2ZuY19cdyovfSxhPXtjbGFzc05hbWU6InN0cmluZyIsdmFyaWFudHM6W3tiZWdpbjonIicsZW5kOiciJyxjb250YWluczpbe2JlZ2luOiciIicscmVsZXZhbmNlOjB9XX0se2JlZ2luOiInIixlbmQ6IiciLGNvbnRhaW5zOlt7YmVnaW46IicnIixyZWxldmFuY2U6MH1dfV19LGk9e2NsYXNzTmFtZToibWV0YSIsYmVnaW46LyNccypbYS16XStcYi8sZW5kOi8kLyxrZXl3b3Jkczp7Im1ldGEta2V5d29yZCI6ImRlZmluZSB1bmRlZiBpZmRlZiBpZm5kZWYgZWxzZSBlbmRpZiBpbmNsdWRlIn0sY29udGFpbnM6W3tiZWdpbjovXFxcbi8scmVsZXZhbmNlOjB9LGUuaW5oZXJpdChhLHtjbGFzc05hbWU6Im1ldGEtc3RyaW5nIn0pLHtjbGFzc05hbWU6Im1ldGEtc3RyaW5nIixiZWdpbjovPFteXG4+XSo+LyxlbmQ6LyQvLGlsbGVnYWw6IlxcbiJ9LGUuQ19MSU5FX0NPTU1FTlRfTU9ERSxlLkNfQkxPQ0tfQ09NTUVOVF9NT0RFXX07cmV0dXJue25hbWU6IlNRRiIsY2FzZV9pbnNlbnNpdGl2ZTohMCxrZXl3b3Jkczp7a2V5d29yZDoiY2FzZSBjYXRjaCBkZWZhdWx0IGRvIGVsc2UgZXhpdCBleGl0V2l0aCBmb3IgZm9yRWFjaCBmcm9tIGlmIHByaXZhdGUgc3dpdGNoIHRoZW4gdGhyb3cgdG8gdHJ5IHdhaXRVbnRpbCB3aGlsZSB3aXRoIixidWlsdF9pbjoiYWJzIGFjY1RpbWUgYWNvcyBhY3Rpb24gYWN0aW9uSURzIGFjdGlvbktleXMgYWN0aW9uS2V5c0ltYWdlcyBhY3Rpb25LZXlzTmFtZXMgYWN0aW9uS2V5c05hbWVzQXJyYXkgYWN0aW9uTmFtZSBhY3Rpb25QYXJhbXMgYWN0aXZhdGVBZGRvbnMgYWN0aXZhdGVkQWRkb25zIGFjdGl2YXRlS2V5IGFkZDNERU5Db25uZWN0aW9uIGFkZDNERU5FdmVudEhhbmRsZXIgYWRkM0RFTkxheWVyIGFkZEFjdGlvbiBhZGRCYWNrcGFjayBhZGRCYWNrcGFja0NhcmdvIGFkZEJhY2twYWNrQ2FyZ29HbG9iYWwgYWRkQmFja3BhY2tHbG9iYWwgYWRkQ2FtU2hha2UgYWRkQ3VyYXRvckFkZG9ucyBhZGRDdXJhdG9yQ2FtZXJhQXJlYSBhZGRDdXJhdG9yRWRpdGFibGVPYmplY3RzIGFkZEN1cmF0b3JFZGl0aW5nQXJlYSBhZGRDdXJhdG9yUG9pbnRzIGFkZEVkaXRvck9iamVjdCBhZGRFdmVudEhhbmRsZXIgYWRkRm9yY2UgYWRkR29nZ2xlcyBhZGRHcm91cEljb24gYWRkSGFuZGd1bkl0ZW0gYWRkSGVhZGdlYXIgYWRkSXRlbSBhZGRJdGVtQ2FyZ28gYWRkSXRlbUNhcmdvR2xvYmFsIGFkZEl0ZW1Qb29sIGFkZEl0ZW1Ub0JhY2twYWNrIGFkZEl0ZW1Ub1VuaWZvcm0gYWRkSXRlbVRvVmVzdCBhZGRMaXZlU3RhdHMgYWRkTWFnYXppbmUgYWRkTWFnYXppbmVBbW1vQ2FyZ28gYWRkTWFnYXppbmVDYXJnbyBhZGRNYWdhemluZUNhcmdvR2xvYmFsIGFkZE1hZ2F6aW5lR2xvYmFsIGFkZE1hZ2F6aW5lUG9vbCBhZGRNYWdhemluZXMgYWRkTWFnYXppbmVUdXJyZXQgYWRkTWVudSBhZGRNZW51SXRlbSBhZGRNaXNzaW9uRXZlbnRIYW5kbGVyIGFkZE1QRXZlbnRIYW5kbGVyIGFkZE11c2ljRXZlbnRIYW5kbGVyIGFkZE93bmVkTWluZSBhZGRQbGF5ZXJTY29yZXMgYWRkUHJpbWFyeVdlYXBvbkl0ZW0gYWRkUHVibGljVmFyaWFibGVFdmVudEhhbmRsZXIgYWRkUmF0aW5nIGFkZFJlc291cmNlcyBhZGRTY29yZSBhZGRTY29yZVNpZGUgYWRkU2Vjb25kYXJ5V2VhcG9uSXRlbSBhZGRTd2l0Y2hhYmxlVW5pdCBhZGRUZWFtTWVtYmVyIGFkZFRvUmVtYWluc0NvbGxlY3RvciBhZGRUb3JxdWUgYWRkVW5pZm9ybSBhZGRWZWhpY2xlIGFkZFZlc3QgYWRkV2F5cG9pbnQgYWRkV2VhcG9uIGFkZFdlYXBvbkNhcmdvIGFkZFdlYXBvbkNhcmdvR2xvYmFsIGFkZFdlYXBvbkdsb2JhbCBhZGRXZWFwb25JdGVtIGFkZFdlYXBvblBvb2wgYWRkV2VhcG9uVHVycmV0IGFkbWluIGFnZW50IGFnZW50cyBBR0xUb0FTTCBhaW1lZEF0VGFyZ2V0IGFpbVBvcyBhaXJEZW5zaXR5UlREIGFpcnBsYW5lVGhyb3R0bGUgYWlycG9ydFNpZGUgQUlTRmluaXNoSGVhbCBhbGl2ZSBhbGwzREVORW50aXRpZXMgYWxsQWlycG9ydHMgYWxsQ29udHJvbHMgYWxsQ3VyYXRvcnMgYWxsQ3V0TGF5ZXJzIGFsbERlYWQgYWxsRGVhZE1lbiBhbGxEaXNwbGF5cyBhbGxHcm91cHMgYWxsTWFwTWFya2VycyBhbGxNaW5lcyBhbGxNaXNzaW9uT2JqZWN0cyBhbGxvdzNETW9kZSBhbGxvd0NyZXdJbkltbW9iaWxlIGFsbG93Q3VyYXRvckxvZ2ljSWdub3JlQXJlYXMgYWxsb3dEYW1hZ2UgYWxsb3dEYW1tYWdlIGFsbG93RmlsZU9wZXJhdGlvbnMgYWxsb3dGbGVlaW5nIGFsbG93R2V0SW4gYWxsb3dTcHJpbnQgYWxsUGxheWVycyBhbGxTaW1wbGVPYmplY3RzIGFsbFNpdGVzIGFsbFR1cnJldHMgYWxsVW5pdHMgYWxsVW5pdHNVQVYgYWxsVmFyaWFibGVzIGFtbW8gYW1tb09uUHlsb24gYW5kIGFuaW1hdGUgYW5pbWF0ZUJheSBhbmltYXRlRG9vciBhbmltYXRlUHlsb24gYW5pbWF0ZVNvdXJjZSBhbmltYXRpb25OYW1lcyBhbmltYXRpb25QaGFzZSBhbmltYXRpb25Tb3VyY2VQaGFzZSBhbmltYXRpb25TdGF0ZSBhcHBlbmQgYXBwbHkgYXJtb3J5UG9pbnRzIGFycmF5SW50ZXJzZWN0IGFzaW4gQVNMVG9BR0wgQVNMVG9BVEwgYXNzZXJ0IGFzc2lnbkFzQ2FyZ28gYXNzaWduQXNDYXJnb0luZGV4IGFzc2lnbkFzQ29tbWFuZGVyIGFzc2lnbkFzRHJpdmVyIGFzc2lnbkFzR3VubmVyIGFzc2lnbkFzVHVycmV0IGFzc2lnbkN1cmF0b3IgYXNzaWduZWRDYXJnbyBhc3NpZ25lZENvbW1hbmRlciBhc3NpZ25lZERyaXZlciBhc3NpZ25lZEd1bm5lciBhc3NpZ25lZEl0ZW1zIGFzc2lnbmVkVGFyZ2V0IGFzc2lnbmVkVGVhbSBhc3NpZ25lZFZlaGljbGUgYXNzaWduZWRWZWhpY2xlUm9sZSBhc3NpZ25JdGVtIGFzc2lnblRlYW0gYXNzaWduVG9BaXJwb3J0IGF0YW4gYXRhbjIgYXRnIEFUTFRvQVNMIGF0dGFjaGVkT2JqZWN0IGF0dGFjaGVkT2JqZWN0cyBhdHRhY2hlZFRvIGF0dGFjaE9iamVjdCBhdHRhY2hUbyBhdHRhY2tFbmFibGVkIGJhY2twYWNrIGJhY2twYWNrQ2FyZ28gYmFja3BhY2tDb250YWluZXIgYmFja3BhY2tJdGVtcyBiYWNrcGFja01hZ2F6aW5lcyBiYWNrcGFja1NwYWNlRm9yIGJlaGF2aW91ciBiZW5jaG1hcmsgYmlub2N1bGFyIGJvdW5kaW5nQm94IGJvdW5kaW5nQm94UmVhbCBib3VuZGluZ0NlbnRlciBicmVha091dCBicmVha1RvIGJyaWVmaW5nTmFtZSBidWlsZGluZ0V4aXQgYnVpbGRpbmdQb3MgYnV0dG9uQWN0aW9uIGJ1dHRvblNldEFjdGlvbiBjYWRldE1vZGUgY2FsbCBjYWxsRXh0ZW5zaW9uIGNhbUNvbW1hbmQgY2FtQ29tbWl0IGNhbUNvbW1pdFByZXBhcmVkIGNhbUNvbW1pdHRlZCBjYW1Db25zdHVjdGlvblNldFBhcmFtcyBjYW1DcmVhdGUgY2FtRGVzdHJveSBjYW1lcmFFZmZlY3QgY2FtZXJhRWZmZWN0RW5hYmxlSFVEIGNhbWVyYUludGVyZXN0IGNhbWVyYU9uIGNhbWVyYVZpZXcgY2FtcGFpZ25Db25maWdGaWxlIGNhbVByZWxvYWQgY2FtUHJlbG9hZGVkIGNhbVByZXBhcmVCYW5rIGNhbVByZXBhcmVEaXIgY2FtUHJlcGFyZURpdmUgY2FtUHJlcGFyZUZvY3VzIGNhbVByZXBhcmVGb3YgY2FtUHJlcGFyZUZvdlJhbmdlIGNhbVByZXBhcmVQb3MgY2FtUHJlcGFyZVJlbFBvcyBjYW1QcmVwYXJlVGFyZ2V0IGNhbVNldEJhbmsgY2FtU2V0RGlyIGNhbVNldERpdmUgY2FtU2V0Rm9jdXMgY2FtU2V0Rm92IGNhbVNldEZvdlJhbmdlIGNhbVNldFBvcyBjYW1TZXRSZWxQb3MgY2FtU2V0VGFyZ2V0IGNhbVRhcmdldCBjYW1Vc2VOVkcgY2FuQWRkIGNhbkFkZEl0ZW1Ub0JhY2twYWNrIGNhbkFkZEl0ZW1Ub1VuaWZvcm0gY2FuQWRkSXRlbVRvVmVzdCBjYW5jZWxTaW1wbGVUYXNrRGVzdGluYXRpb24gY2FuRmlyZSBjYW5Nb3ZlIGNhblNsaW5nTG9hZCBjYW5TdGFuZCBjYW5TdXNwZW5kIGNhblRyaWdnZXJEeW5hbWljU2ltdWxhdGlvbiBjYW5VbmxvYWRJbkNvbWJhdCBjYW5WZWhpY2xlQ2FyZ28gY2FwdGl2ZSBjYXB0aXZlTnVtIGNiQ2hlY2tlZCBjYlNldENoZWNrZWQgY2VpbCBjaGFubmVsRW5hYmxlZCBjaGVhdHNFbmFibGVkIGNoZWNrQUlGZWF0dXJlIGNoZWNrVmlzaWJpbGl0eSBjbGFzc05hbWUgY2xlYXJBbGxJdGVtc0Zyb21CYWNrcGFjayBjbGVhckJhY2twYWNrQ2FyZ28gY2xlYXJCYWNrcGFja0NhcmdvR2xvYmFsIGNsZWFyR3JvdXBJY29ucyBjbGVhckl0ZW1DYXJnbyBjbGVhckl0ZW1DYXJnb0dsb2JhbCBjbGVhckl0ZW1Qb29sIGNsZWFyTWFnYXppbmVDYXJnbyBjbGVhck1hZ2F6aW5lQ2FyZ29HbG9iYWwgY2xlYXJNYWdhemluZVBvb2wgY2xlYXJPdmVybGF5IGNsZWFyUmFkaW8gY2xlYXJXZWFwb25DYXJnbyBjbGVhcldlYXBvbkNhcmdvR2xvYmFsIGNsZWFyV2VhcG9uUG9vbCBjbGllbnRPd25lciBjbG9zZURpYWxvZyBjbG9zZURpc3BsYXkgY2xvc2VPdmVybGF5IGNvbGxhcHNlT2JqZWN0VHJlZSBjb2xsZWN0M0RFTkhpc3RvcnkgY29sbGVjdGl2ZVJURCBjb21iYXRNb2RlIGNvbW1hbmRBcnRpbGxlcnlGaXJlIGNvbW1hbmRDaGF0IGNvbW1hbmRlciBjb21tYW5kRmlyZSBjb21tYW5kRm9sbG93IGNvbW1hbmRGU00gY29tbWFuZEdldE91dCBjb21tYW5kaW5nTWVudSBjb21tYW5kTW92ZSBjb21tYW5kUmFkaW8gY29tbWFuZFN0b3AgY29tbWFuZFN1cHByZXNzaXZlRmlyZSBjb21tYW5kVGFyZ2V0IGNvbW1hbmRXYXRjaCBjb21tZW50IGNvbW1pdE92ZXJsYXkgY29tcGlsZSBjb21waWxlRmluYWwgY29tcGxldGVkRlNNIGNvbXBvc2VUZXh0IGNvbmZpZ0NsYXNzZXMgY29uZmlnRmlsZSBjb25maWdIaWVyYXJjaHkgY29uZmlnTmFtZSBjb25maWdQcm9wZXJ0aWVzIGNvbmZpZ1NvdXJjZUFkZG9uTGlzdCBjb25maWdTb3VyY2VNb2QgY29uZmlnU291cmNlTW9kTGlzdCBjb25maXJtU2Vuc29yVGFyZ2V0IGNvbm5lY3RUZXJtaW5hbFRvVUFWIGNvbnRyb2xzR3JvdXBDdHJsIGNvcHlGcm9tQ2xpcGJvYXJkIGNvcHlUb0NsaXBib2FyZCBjb3B5V2F5cG9pbnRzIGNvcyBjb3VudCBjb3VudEVuZW15IGNvdW50RnJpZW5kbHkgY291bnRTaWRlIGNvdW50VHlwZSBjb3VudFVua25vd24gY3JlYXRlM0RFTkNvbXBvc2l0aW9uIGNyZWF0ZTNERU5FbnRpdHkgY3JlYXRlQWdlbnQgY3JlYXRlQ2VudGVyIGNyZWF0ZURpYWxvZyBjcmVhdGVEaWFyeUxpbmsgY3JlYXRlRGlhcnlSZWNvcmQgY3JlYXRlRGlhcnlTdWJqZWN0IGNyZWF0ZURpc3BsYXkgY3JlYXRlR2VhckRpYWxvZyBjcmVhdGVHcm91cCBjcmVhdGVHdWFyZGVkUG9pbnQgY3JlYXRlTG9jYXRpb24gY3JlYXRlTWFya2VyIGNyZWF0ZU1hcmtlckxvY2FsIGNyZWF0ZU1lbnUgY3JlYXRlTWluZSBjcmVhdGVNaXNzaW9uRGlzcGxheSBjcmVhdGVNUENhbXBhaWduRGlzcGxheSBjcmVhdGVTaW1wbGVPYmplY3QgY3JlYXRlU2ltcGxlVGFzayBjcmVhdGVTaXRlIGNyZWF0ZVNvdW5kU291cmNlIGNyZWF0ZVRhc2sgY3JlYXRlVGVhbSBjcmVhdGVUcmlnZ2VyIGNyZWF0ZVVuaXQgY3JlYXRlVmVoaWNsZSBjcmVhdGVWZWhpY2xlQ3JldyBjcmVhdGVWZWhpY2xlTG9jYWwgY3JldyBjdEFkZEhlYWRlciBjdEFkZFJvdyBjdENsZWFyIGN0Q3VyU2VsIGN0RGF0YSBjdEZpbmRIZWFkZXJSb3dzIGN0RmluZFJvd0hlYWRlciBjdEhlYWRlckNvbnRyb2xzIGN0SGVhZGVyQ291bnQgY3RSZW1vdmVIZWFkZXJzIGN0UmVtb3ZlUm93cyBjdHJsQWN0aXZhdGUgY3RybEFkZEV2ZW50SGFuZGxlciBjdHJsQW5nbGUgY3RybEF1dG9TY3JvbGxEZWxheSBjdHJsQXV0b1Njcm9sbFJld2luZCBjdHJsQXV0b1Njcm9sbFNwZWVkIGN0cmxDaGVja2VkIGN0cmxDbGFzc05hbWUgY3RybENvbW1pdCBjdHJsQ29tbWl0dGVkIGN0cmxDcmVhdGUgY3RybERlbGV0ZSBjdHJsRW5hYmxlIGN0cmxFbmFibGVkIGN0cmxGYWRlIGN0cmxIVE1MTG9hZGVkIGN0cmxJREMgY3RybElERCBjdHJsTWFwQW5pbUFkZCBjdHJsTWFwQW5pbUNsZWFyIGN0cmxNYXBBbmltQ29tbWl0IGN0cmxNYXBBbmltRG9uZSBjdHJsTWFwQ3Vyc29yIGN0cmxNYXBNb3VzZU92ZXIgY3RybE1hcFNjYWxlIGN0cmxNYXBTY3JlZW5Ub1dvcmxkIGN0cmxNYXBXb3JsZFRvU2NyZWVuIGN0cmxNb2RlbCBjdHJsTW9kZWxEaXJBbmRVcCBjdHJsTW9kZWxTY2FsZSBjdHJsUGFyZW50IGN0cmxQYXJlbnRDb250cm9sc0dyb3VwIGN0cmxQb3NpdGlvbiBjdHJsUmVtb3ZlQWxsRXZlbnRIYW5kbGVycyBjdHJsUmVtb3ZlRXZlbnRIYW5kbGVyIGN0cmxTY2FsZSBjdHJsU2V0QWN0aXZlQ29sb3IgY3RybFNldEFuZ2xlIGN0cmxTZXRBdXRvU2Nyb2xsRGVsYXkgY3RybFNldEF1dG9TY3JvbGxSZXdpbmQgY3RybFNldEF1dG9TY3JvbGxTcGVlZCBjdHJsU2V0QmFja2dyb3VuZENvbG9yIGN0cmxTZXRDaGVja2VkIGN0cmxTZXRFdmVudEhhbmRsZXIgY3RybFNldEZhZGUgY3RybFNldEZvY3VzIGN0cmxTZXRGb250IGN0cmxTZXRGb250SDEgY3RybFNldEZvbnRIMUIgY3RybFNldEZvbnRIMiBjdHJsU2V0Rm9udEgyQiBjdHJsU2V0Rm9udEgzIGN0cmxTZXRGb250SDNCIGN0cmxTZXRGb250SDQgY3RybFNldEZvbnRINEIgY3RybFNldEZvbnRINSBjdHJsU2V0Rm9udEg1QiBjdHJsU2V0Rm9udEg2IGN0cmxTZXRGb250SDZCIGN0cmxTZXRGb250SGVpZ2h0IGN0cmxTZXRGb250SGVpZ2h0SDEgY3RybFNldEZvbnRIZWlnaHRIMiBjdHJsU2V0Rm9udEhlaWdodEgzIGN0cmxTZXRGb250SGVpZ2h0SDQgY3RybFNldEZvbnRIZWlnaHRINSBjdHJsU2V0Rm9udEhlaWdodEg2IGN0cmxTZXRGb250SGVpZ2h0U2Vjb25kYXJ5IGN0cmxTZXRGb250UCBjdHJsU2V0Rm9udFBCIGN0cmxTZXRGb250U2Vjb25kYXJ5IGN0cmxTZXRGb3JlZ3JvdW5kQ29sb3IgY3RybFNldE1vZGVsIGN0cmxTZXRNb2RlbERpckFuZFVwIGN0cmxTZXRNb2RlbFNjYWxlIGN0cmxTZXRQaXhlbFByZWNpc2lvbiBjdHJsU2V0UG9zaXRpb24gY3RybFNldFNjYWxlIGN0cmxTZXRTdHJ1Y3R1cmVkVGV4dCBjdHJsU2V0VGV4dCBjdHJsU2V0VGV4dENvbG9yIGN0cmxTZXRUb29sdGlwIGN0cmxTZXRUb29sdGlwQ29sb3JCb3ggY3RybFNldFRvb2x0aXBDb2xvclNoYWRlIGN0cmxTZXRUb29sdGlwQ29sb3JUZXh0IGN0cmxTaG93IGN0cmxTaG93biBjdHJsVGV4dCBjdHJsVGV4dEhlaWdodCBjdHJsVGV4dFdpZHRoIGN0cmxUeXBlIGN0cmxWaXNpYmxlIGN0Um93Q29udHJvbHMgY3RSb3dDb3VudCBjdFNldEN1clNlbCBjdFNldERhdGEgY3RTZXRIZWFkZXJUZW1wbGF0ZSBjdFNldFJvd1RlbXBsYXRlIGN0U2V0VmFsdWUgY3RWYWx1ZSBjdXJhdG9yQWRkb25zIGN1cmF0b3JDYW1lcmEgY3VyYXRvckNhbWVyYUFyZWEgY3VyYXRvckNhbWVyYUFyZWFDZWlsaW5nIGN1cmF0b3JDb2VmIGN1cmF0b3JFZGl0YWJsZU9iamVjdHMgY3VyYXRvckVkaXRpbmdBcmVhIGN1cmF0b3JFZGl0aW5nQXJlYVR5cGUgY3VyYXRvck1vdXNlT3ZlciBjdXJhdG9yUG9pbnRzIGN1cmF0b3JSZWdpc3RlcmVkT2JqZWN0cyBjdXJhdG9yU2VsZWN0ZWQgY3VyYXRvcldheXBvaW50Q29zdCBjdXJyZW50M0RFTk9wZXJhdGlvbiBjdXJyZW50Q2hhbm5lbCBjdXJyZW50Q29tbWFuZCBjdXJyZW50TWFnYXppbmUgY3VycmVudE1hZ2F6aW5lRGV0YWlsIGN1cnJlbnRNYWdhemluZURldGFpbFR1cnJldCBjdXJyZW50TWFnYXppbmVUdXJyZXQgY3VycmVudE11enpsZSBjdXJyZW50TmFtZXNwYWNlIGN1cnJlbnRUYXNrIGN1cnJlbnRUYXNrcyBjdXJyZW50VGhyb3dhYmxlIGN1cnJlbnRWaXNpb25Nb2RlIGN1cnJlbnRXYXlwb2ludCBjdXJyZW50V2VhcG9uIGN1cnJlbnRXZWFwb25Nb2RlIGN1cnJlbnRXZWFwb25UdXJyZXQgY3VycmVudFplcm9pbmcgY3Vyc29yT2JqZWN0IGN1cnNvclRhcmdldCBjdXN0b21DaGF0IGN1c3RvbVJhZGlvIGN1dEZhZGVPdXQgY3V0T2JqIGN1dFJzYyBjdXRUZXh0IGRhbWFnZSBkYXRlIGRhdGVUb051bWJlciBkYXl0aW1lIGRlQWN0aXZhdGVLZXkgZGVicmllZmluZ1RleHQgZGVidWdGU00gZGVidWdMb2cgZGVnIGRlbGV0ZTNERU5FbnRpdGllcyBkZWxldGVBdCBkZWxldGVDZW50ZXIgZGVsZXRlQ29sbGVjdGlvbiBkZWxldGVFZGl0b3JPYmplY3QgZGVsZXRlR3JvdXAgZGVsZXRlR3JvdXBXaGVuRW1wdHkgZGVsZXRlSWRlbnRpdHkgZGVsZXRlTG9jYXRpb24gZGVsZXRlTWFya2VyIGRlbGV0ZU1hcmtlckxvY2FsIGRlbGV0ZVJhbmdlIGRlbGV0ZVJlc291cmNlcyBkZWxldGVTaXRlIGRlbGV0ZVN0YXR1cyBkZWxldGVUZWFtIGRlbGV0ZVZlaGljbGUgZGVsZXRlVmVoaWNsZUNyZXcgZGVsZXRlV2F5cG9pbnQgZGV0YWNoIGRldGVjdGVkTWluZXMgZGlhZ19hY3RpdmVNaXNzaW9uRlNNcyBkaWFnX2FjdGl2ZVNjcmlwdHMgZGlhZ19hY3RpdmVTUUZTY3JpcHRzIGRpYWdfYWN0aXZlU1FTU2NyaXB0cyBkaWFnX2NhcHR1cmVGcmFtZSBkaWFnX2NhcHR1cmVGcmFtZVRvRmlsZSBkaWFnX2NhcHR1cmVTbG93RnJhbWUgZGlhZ19jb2RlUGVyZm9ybWFuY2UgZGlhZ19kcmF3TW9kZSBkaWFnX2VuYWJsZSBkaWFnX2VuYWJsZWQgZGlhZ19mcHMgZGlhZ19mcHNNaW4gZGlhZ19mcmFtZU5vIGRpYWdfbGlnaHROZXdMb2FkIGRpYWdfbGlzdCBkaWFnX2xvZyBkaWFnX2xvZ1Nsb3dGcmFtZSBkaWFnX21lcmdlQ29uZmlnRmlsZSBkaWFnX3JlY29yZFR1cnJldExpbWl0cyBkaWFnX3NldExpZ2h0TmV3IGRpYWdfdGlja1RpbWUgZGlhZ190b2dnbGUgZGlhbG9nIGRpYXJ5U3ViamVjdEV4aXN0cyBkaWRKSVAgZGlkSklQT3duZXIgZGlmZmljdWx0eSBkaWZmaWN1bHR5RW5hYmxlZCBkaWZmaWN1bHR5RW5hYmxlZFJURCBkaWZmaWN1bHR5T3B0aW9uIGRpcmVjdGlvbiBkaXJlY3RTYXkgZGlzYWJsZUFJIGRpc2FibGVDb2xsaXNpb25XaXRoIGRpc2FibGVDb252ZXJzYXRpb24gZGlzYWJsZURlYnJpZWZpbmdTdGF0cyBkaXNhYmxlTWFwSW5kaWNhdG9ycyBkaXNhYmxlTlZHRXF1aXBtZW50IGRpc2FibGVSZW1vdGVTZW5zb3JzIGRpc2FibGVTZXJpYWxpemF0aW9uIGRpc2FibGVUSUVxdWlwbWVudCBkaXNhYmxlVUFWQ29ubmVjdGFiaWxpdHkgZGlzYWJsZVVzZXJJbnB1dCBkaXNwbGF5QWRkRXZlbnRIYW5kbGVyIGRpc3BsYXlDdHJsIGRpc3BsYXlQYXJlbnQgZGlzcGxheVJlbW92ZUFsbEV2ZW50SGFuZGxlcnMgZGlzcGxheVJlbW92ZUV2ZW50SGFuZGxlciBkaXNwbGF5U2V0RXZlbnRIYW5kbGVyIGRpc3NvbHZlVGVhbSBkaXN0YW5jZSBkaXN0YW5jZTJEIGRpc3RhbmNlU3FyIGRpc3RyaWJ1dGlvblJlZ2lvbiBkbzNERU5BY3Rpb24gZG9BcnRpbGxlcnlGaXJlIGRvRmlyZSBkb0ZvbGxvdyBkb0ZTTSBkb0dldE91dCBkb01vdmUgZG9vclBoYXNlIGRvU3RvcCBkb1N1cHByZXNzaXZlRmlyZSBkb1RhcmdldCBkb1dhdGNoIGRyYXdBcnJvdyBkcmF3RWxsaXBzZSBkcmF3SWNvbiBkcmF3SWNvbjNEIGRyYXdMaW5lIGRyYXdMaW5lM0QgZHJhd0xpbmsgZHJhd0xvY2F0aW9uIGRyYXdQb2x5Z29uIGRyYXdSZWN0YW5nbGUgZHJhd1RyaWFuZ2xlIGRyaXZlciBkcm9wIGR5bmFtaWNTaW11bGF0aW9uRGlzdGFuY2UgZHluYW1pY1NpbXVsYXRpb25EaXN0YW5jZUNvZWYgZHluYW1pY1NpbXVsYXRpb25FbmFibGVkIGR5bmFtaWNTaW11bGF0aW9uU3lzdGVtRW5hYmxlZCBlY2hvIGVkaXQzREVOTWlzc2lvbkF0dHJpYnV0ZXMgZWRpdE9iamVjdCBlZGl0b3JTZXRFdmVudEhhbmRsZXIgZWZmZWN0aXZlQ29tbWFuZGVyIGVtcHR5UG9zaXRpb25zIGVuYWJsZUFJIGVuYWJsZUFJRmVhdHVyZSBlbmFibGVBaW1QcmVjaXNpb24gZW5hYmxlQXR0YWNrIGVuYWJsZUF1ZGlvRmVhdHVyZSBlbmFibGVBdXRvU3RhcnRVcFJURCBlbmFibGVBdXRvVHJpbVJURCBlbmFibGVDYW1TaGFrZSBlbmFibGVDYXVzdGljcyBlbmFibGVDaGFubmVsIGVuYWJsZUNvbGxpc2lvbldpdGggZW5hYmxlQ29waWxvdCBlbmFibGVEZWJyaWVmaW5nU3RhdHMgZW5hYmxlRGlhZ0xlZ2VuZCBlbmFibGVEeW5hbWljU2ltdWxhdGlvbiBlbmFibGVEeW5hbWljU2ltdWxhdGlvblN5c3RlbSBlbmFibGVFbmREaWFsb2cgZW5hYmxlRW5naW5lQXJ0aWxsZXJ5IGVuYWJsZUVudmlyb25tZW50IGVuYWJsZUZhdGlndWUgZW5hYmxlR3VuTGlnaHRzIGVuYWJsZUluZm9QYW5lbENvbXBvbmVudCBlbmFibGVJUkxhc2VycyBlbmFibGVNaW1pY3MgZW5hYmxlUGVyc29uVHVycmV0IGVuYWJsZVJhZGlvIGVuYWJsZVJlbG9hZCBlbmFibGVSb3BlQXR0YWNoIGVuYWJsZVNhdE5vcm1hbE9uRGV0YWlsIGVuYWJsZVNhdmluZyBlbmFibGVTZW50ZW5jZXMgZW5hYmxlU2ltdWxhdGlvbiBlbmFibGVTaW11bGF0aW9uR2xvYmFsIGVuYWJsZVN0YW1pbmEgZW5hYmxlVGVhbVN3aXRjaCBlbmFibGVUcmFmZmljIGVuYWJsZVVBVkNvbm5lY3RhYmlsaXR5IGVuYWJsZVVBVldheXBvaW50cyBlbmFibGVWZWhpY2xlQ2FyZ28gZW5hYmxlVmVoaWNsZVNlbnNvciBlbmFibGVXZWFwb25EaXNhc3NlbWJseSBlbmRMb2FkaW5nU2NyZWVuIGVuZE1pc3Npb24gZW5naW5lT24gZW5naW5lc0lzT25SVEQgZW5naW5lc1JwbVJURCBlbmdpbmVzVG9ycXVlUlREIGVudGl0aWVzIGVudmlyb25tZW50RW5hYmxlZCBlc3RpbWF0ZWRFbmRTZXJ2ZXJUaW1lIGVzdGltYXRlZFRpbWVMZWZ0IGV2YWxPYmplY3RBcmd1bWVudCBldmVyeUJhY2twYWNrIGV2ZXJ5Q29udGFpbmVyIGV4ZWMgZXhlY0VkaXRvclNjcmlwdCBleGVjRlNNIGV4ZWNWTSBleHAgZXhwZWN0ZWREZXN0aW5hdGlvbiBleHBvcnRKSVBNZXNzYWdlcyBleWVEaXJlY3Rpb24gZXllUG9zIGZhY2UgZmFjdGlvbiBmYWRlTXVzaWMgZmFkZVJhZGlvIGZhZGVTb3VuZCBmYWRlU3BlZWNoIGZhaWxNaXNzaW9uIGZpbGxXZWFwb25zRnJvbVBvb2wgZmluZCBmaW5kQ292ZXIgZmluZERpc3BsYXkgZmluZEVkaXRvck9iamVjdCBmaW5kRW1wdHlQb3NpdGlvbiBmaW5kRW1wdHlQb3NpdGlvblJlYWR5IGZpbmRJZiBmaW5kTmVhcmVzdEVuZW15IGZpbmlzaE1pc3Npb25Jbml0IGZpbml0ZSBmaXJlIGZpcmVBdFRhcmdldCBmaXJzdEJhY2twYWNrIGZsYWcgZmxhZ0FuaW1hdGlvblBoYXNlIGZsYWdPd25lciBmbGFnU2lkZSBmbGFnVGV4dHVyZSBmbGVlaW5nIGZsb29yIGZseUluSGVpZ2h0IGZseUluSGVpZ2h0QVNMIGZvZyBmb2dGb3JlY2FzdCBmb2dQYXJhbXMgZm9yY2VBZGRVbmlmb3JtIGZvcmNlZE1hcCBmb3JjZUVuZCBmb3JjZUZsYWdUZXh0dXJlIGZvcmNlRm9sbG93Um9hZCBmb3JjZU1hcCBmb3JjZVJlc3Bhd24gZm9yY2VTcGVlZCBmb3JjZVdhbGsgZm9yY2VXZWFwb25GaXJlIGZvcmNlV2VhdGhlckNoYW5nZSBmb3JFYWNoTWVtYmVyIGZvckVhY2hNZW1iZXJBZ2VudCBmb3JFYWNoTWVtYmVyVGVhbSBmb3JnZXRUYXJnZXQgZm9ybWF0IGZvcm1hdGlvbiBmb3JtYXRpb25EaXJlY3Rpb24gZm9ybWF0aW9uTGVhZGVyIGZvcm1hdGlvbk1lbWJlcnMgZm9ybWF0aW9uUG9zaXRpb24gZm9ybWF0aW9uVGFzayBmb3JtYXRUZXh0IGZvcm1MZWFkZXIgZnJlZUxvb2sgZnJvbUVkaXRvciBmdWVsIGZ1bGxDcmV3IGdlYXJJRENBbW1vQ291bnQgZ2VhclNsb3RBbW1vQ291bnQgZ2VhclNsb3REYXRhIGdldDNERU5BY3Rpb25TdGF0ZSBnZXQzREVOQXR0cmlidXRlIGdldDNERU5DYW1lcmEgZ2V0M0RFTkNvbm5lY3Rpb25zIGdldDNERU5FbnRpdHkgZ2V0M0RFTkVudGl0eUlEIGdldDNERU5HcmlkIGdldDNERU5JY29uc1Zpc2libGUgZ2V0M0RFTkxheWVyRW50aXRpZXMgZ2V0M0RFTkxpbmVzVmlzaWJsZSBnZXQzREVOTWlzc2lvbkF0dHJpYnV0ZSBnZXQzREVOTW91c2VPdmVyIGdldDNERU5TZWxlY3RlZCBnZXRBaW1pbmdDb2VmIGdldEFsbEVudlNvdW5kQ29udHJvbGxlcnMgZ2V0QWxsSGl0UG9pbnRzRGFtYWdlIGdldEFsbE93bmVkTWluZXMgZ2V0QWxsU291bmRDb250cm9sbGVycyBnZXRBbW1vQ2FyZ28gZ2V0QW5pbUFpbVByZWNpc2lvbiBnZXRBbmltU3BlZWRDb2VmIGdldEFycmF5IGdldEFydGlsbGVyeUFtbW8gZ2V0QXJ0aWxsZXJ5Q29tcHV0ZXJTZXR0aW5ncyBnZXRBcnRpbGxlcnlFVEEgZ2V0QXNzaWduZWRDdXJhdG9yTG9naWMgZ2V0QXNzaWduZWRDdXJhdG9yVW5pdCBnZXRCYWNrcGFja0NhcmdvIGdldEJsZWVkaW5nUmVtYWluaW5nIGdldEJ1cm5pbmdWYWx1ZSBnZXRDYW1lcmFWaWV3RGlyZWN0aW9uIGdldENhcmdvSW5kZXggZ2V0Q2VudGVyT2ZNYXNzIGdldENsaWVudFN0YXRlIGdldENsaWVudFN0YXRlTnVtYmVyIGdldENvbXBhdGlibGVQeWxvbk1hZ2F6aW5lcyBnZXRDb25uZWN0ZWRVQVYgZ2V0Q29udGFpbmVyTWF4TG9hZCBnZXRDdXJzb3JPYmplY3RQYXJhbXMgZ2V0Q3VzdG9tQWltQ29lZiBnZXREYW1tYWdlIGdldERlc2NyaXB0aW9uIGdldERpciBnZXREaXJWaXN1YWwgZ2V0RExDQXNzZXRzVXNhZ2UgZ2V0RExDQXNzZXRzVXNhZ2VCeU5hbWUgZ2V0RExDcyBnZXRFZGl0b3JDYW1lcmEgZ2V0RWRpdG9yTW9kZSBnZXRFZGl0b3JPYmplY3RTY29wZSBnZXRFbGV2YXRpb25PZmZzZXQgZ2V0RW52U291bmRDb250cm9sbGVyIGdldEZhdGlndWUgZ2V0Rm9yY2VkRmxhZ1RleHR1cmUgZ2V0RnJpZW5kIGdldEZTTVZhcmlhYmxlIGdldEZ1ZWxDYXJnbyBnZXRHcm91cEljb24gZ2V0R3JvdXBJY29uUGFyYW1zIGdldEdyb3VwSWNvbnMgZ2V0SGlkZUZyb20gZ2V0SGl0IGdldEhpdEluZGV4IGdldEhpdFBvaW50RGFtYWdlIGdldEl0ZW1DYXJnbyBnZXRNYWdhemluZUNhcmdvIGdldE1hcmtlckNvbG9yIGdldE1hcmtlclBvcyBnZXRNYXJrZXJTaXplIGdldE1hcmtlclR5cGUgZ2V0TWFzcyBnZXRNaXNzaW9uQ29uZmlnIGdldE1pc3Npb25Db25maWdWYWx1ZSBnZXRNaXNzaW9uRExDcyBnZXRNaXNzaW9uTGF5ZXJFbnRpdGllcyBnZXRNb2RlbEluZm8gZ2V0TW91c2VQb3NpdGlvbiBnZXRNdXNpY1BsYXllZFRpbWUgZ2V0TnVtYmVyIGdldE9iamVjdEFyZ3VtZW50IGdldE9iamVjdENoaWxkcmVuIGdldE9iamVjdERMQyBnZXRPYmplY3RNYXRlcmlhbHMgZ2V0T2JqZWN0UHJveHkgZ2V0T2JqZWN0VGV4dHVyZXMgZ2V0T2JqZWN0VHlwZSBnZXRPYmplY3RWaWV3RGlzdGFuY2UgZ2V0T3h5Z2VuUmVtYWluaW5nIGdldFBlcnNvblVzZWRETENzIGdldFBpbG90Q2FtZXJhRGlyZWN0aW9uIGdldFBpbG90Q2FtZXJhUG9zaXRpb24gZ2V0UGlsb3RDYW1lcmFSb3RhdGlvbiBnZXRQaWxvdENhbWVyYVRhcmdldCBnZXRQbGF0ZU51bWJlciBnZXRQbGF5ZXJDaGFubmVsIGdldFBsYXllclNjb3JlcyBnZXRQbGF5ZXJVSUQgZ2V0UG9zIGdldFBvc0FTTCBnZXRQb3NBU0xWaXN1YWwgZ2V0UG9zQVNMVyBnZXRQb3NBVEwgZ2V0UG9zQVRMVmlzdWFsIGdldFBvc1Zpc3VhbCBnZXRQb3NXb3JsZCBnZXRQeWxvbk1hZ2F6aW5lcyBnZXRSZWxEaXIgZ2V0UmVsUG9zIGdldFJlbW90ZVNlbnNvcnNEaXNhYmxlZCBnZXRSZXBhaXJDYXJnbyBnZXRSZXNvbHV0aW9uIGdldFNoYWRvd0Rpc3RhbmNlIGdldFNob3RQYXJlbnRzIGdldFNsaW5nTG9hZCBnZXRTb3VuZENvbnRyb2xsZXIgZ2V0U291bmRDb250cm9sbGVyUmVzdWx0IGdldFNwZWVkIGdldFN0YW1pbmEgZ2V0U3RhdFZhbHVlIGdldFN1cHByZXNzaW9uIGdldFRlcnJhaW5HcmlkIGdldFRlcnJhaW5IZWlnaHRBU0wgZ2V0VGV4dCBnZXRUb3RhbERMQ1VzYWdlVGltZSBnZXRVbml0TG9hZG91dCBnZXRVbml0VHJhaXQgZ2V0VXNlck1GRFRleHQgZ2V0VXNlck1GRHZhbHVlIGdldFZhcmlhYmxlIGdldFZlaGljbGVDYXJnbyBnZXRXZWFwb25DYXJnbyBnZXRXZWFwb25Td2F5IGdldFdpbmdzT3JpZW50YXRpb25SVEQgZ2V0V2luZ3NQb3NpdGlvblJURCBnZXRXUFBvcyBnbGFuY2VBdCBnbG9iYWxDaGF0IGdsb2JhbFJhZGlvIGdvZ2dsZXMgZ290byBncm91cCBncm91cENoYXQgZ3JvdXBGcm9tTmV0SWQgZ3JvdXBJY29uU2VsZWN0YWJsZSBncm91cEljb25zVmlzaWJsZSBncm91cElkIGdyb3VwT3duZXIgZ3JvdXBSYWRpbyBncm91cFNlbGVjdGVkVW5pdHMgZ3JvdXBTZWxlY3RVbml0IGd1bm5lciBndXN0cyBoYWx0IGhhbmRndW5JdGVtcyBoYW5kZ3VuTWFnYXppbmUgaGFuZGd1bldlYXBvbiBoYW5kc0hpdCBoYXNJbnRlcmZhY2UgaGFzUGlsb3RDYW1lcmEgaGFzV2VhcG9uIGhjQWxsR3JvdXBzIGhjR3JvdXBQYXJhbXMgaGNMZWFkZXIgaGNSZW1vdmVBbGxHcm91cHMgaGNSZW1vdmVHcm91cCBoY1NlbGVjdGVkIGhjU2VsZWN0R3JvdXAgaGNTZXRHcm91cCBoY1Nob3dCYXIgaGNTaG93bkJhciBoZWFkZ2VhciBoaWRlQm9keSBoaWRlT2JqZWN0IGhpZGVPYmplY3RHbG9iYWwgaGlkZVNlbGVjdGlvbiBoaW50IGhpbnRDIGhpbnRDYWRldCBoaW50U2lsZW50IGhtZCBob3N0TWlzc2lvbiBodG1sTG9hZCBIVURNb3ZlbWVudExldmVscyBodW1pZGl0eSBpbWFnZSBpbXBvcnRBbGxHcm91cHMgaW1wb3J0YW5jZSBpbiBpbkFyZWEgaW5BcmVhQXJyYXkgaW5jYXBhY2l0YXRlZFN0YXRlIGluZmxhbWUgaW5mbGFtZWQgaW5mb1BhbmVsIGluZm9QYW5lbENvbXBvbmVudEVuYWJsZWQgaW5mb1BhbmVsQ29tcG9uZW50cyBpbmZvUGFuZWxzIGluR2FtZVVJU2V0RXZlbnRIYW5kbGVyIGluaGVyaXRzRnJvbSBpbml0QW1iaWVudExpZmUgaW5Qb2x5Z29uIGlucHV0QWN0aW9uIGluUmFuZ2VPZkFydGlsbGVyeSBpbnNlcnRFZGl0b3JPYmplY3QgaW50ZXJzZWN0IGlzM0RFTiBpczNERU5NdWx0aXBsYXllciBpc0FibGVUb0JyZWF0aGUgaXNBZ2VudCBpc0FycmF5IGlzQXV0b0hvdmVyT24gaXNBdXRvbm9tb3VzIGlzQXV0b3Rlc3QgaXNCbGVlZGluZyBpc0J1cm5pbmcgaXNDbGFzcyBpc0NvbGxpc2lvbkxpZ2h0T24gaXNDb3BpbG90RW5hYmxlZCBpc0RhbWFnZUFsbG93ZWQgaXNEZWRpY2F0ZWQgaXNETENBdmFpbGFibGUgaXNFbmdpbmVPbiBpc0VxdWFsVG8gaXNFcXVhbFR5cGUgaXNFcXVhbFR5cGVBbGwgaXNFcXVhbFR5cGVBbnkgaXNFcXVhbFR5cGVBcnJheSBpc0VxdWFsVHlwZVBhcmFtcyBpc0ZpbGVQYXRjaGluZ0VuYWJsZWQgaXNGbGFzaGxpZ2h0T24gaXNGbGF0RW1wdHkgaXNGb3JjZWRXYWxrIGlzRm9ybWF0aW9uTGVhZGVyIGlzR3JvdXBEZWxldGVkV2hlbkVtcHR5IGlzSGlkZGVuIGlzSW5SZW1haW5zQ29sbGVjdG9yIGlzSW5zdHJ1Y3RvckZpZ3VyZUVuYWJsZWQgaXNJUkxhc2VyT24gaXNLZXlBY3RpdmUgaXNLaW5kT2YgaXNMYXNlck9uIGlzTGlnaHRPbiBpc0xvY2FsaXplZCBpc01hbnVhbEZpcmUgaXNNYXJrZWRGb3JDb2xsZWN0aW9uIGlzTXVsdGlwbGF5ZXIgaXNNdWx0aXBsYXllclNvbG8gaXNOaWwgaXNOdWxsIGlzTnVtYmVyIGlzT2JqZWN0SGlkZGVuIGlzT2JqZWN0UlREIGlzT25Sb2FkIGlzUGlwRW5hYmxlZCBpc1BsYXllciBpc1JlYWxUaW1lIGlzUmVtb3RlRXhlY3V0ZWQgaXNSZW1vdGVFeGVjdXRlZEpJUCBpc1NlcnZlciBpc1Nob3dpbmczREljb25zIGlzU2ltcGxlT2JqZWN0IGlzU3ByaW50QWxsb3dlZCBpc1N0YW1pbmFFbmFibGVkIGlzU3RlYW1NaXNzaW9uIGlzU3RyZWFtRnJpZW5kbHlVSUVuYWJsZWQgaXNUZXh0IGlzVG91Y2hpbmdHcm91bmQgaXNUdXJuZWRPdXQgaXNUdXRIaW50c0VuYWJsZWQgaXNVQVZDb25uZWN0YWJsZSBpc1VBVkNvbm5lY3RlZCBpc1VJQ29udGV4dCBpc1VuaWZvcm1BbGxvd2VkIGlzVmVoaWNsZUNhcmdvIGlzVmVoaWNsZVJhZGFyT24gaXNWZWhpY2xlU2Vuc29yRW5hYmxlZCBpc1dhbGtpbmcgaXNXZWFwb25EZXBsb3llZCBpc1dlYXBvblJlc3RlZCBpdGVtQ2FyZ28gaXRlbXMgaXRlbXNXaXRoTWFnYXppbmVzIGpvaW4gam9pbkFzIGpvaW5Bc1NpbGVudCBqb2luU2lsZW50IGpvaW5TdHJpbmcga2JBZGREYXRhYmFzZSBrYkFkZERhdGFiYXNlVGFyZ2V0cyBrYkFkZFRvcGljIGtiSGFzVG9waWMga2JSZWFjdCBrYlJlbW92ZVRvcGljIGtiVGVsbCBrYldhc1NhaWQga2V5SW1hZ2Uga2V5TmFtZSBrbm93c0Fib3V0IGxhbmQgbGFuZEF0IGxhbmRSZXN1bHQgbGFuZ3VhZ2UgbGFzZXJUYXJnZXQgbGJBZGQgbGJDbGVhciBsYkNvbG9yIGxiQ29sb3JSaWdodCBsYkN1clNlbCBsYkRhdGEgbGJEZWxldGUgbGJJc1NlbGVjdGVkIGxiUGljdHVyZSBsYlBpY3R1cmVSaWdodCBsYlNlbGVjdGlvbiBsYlNldENvbG9yIGxiU2V0Q29sb3JSaWdodCBsYlNldEN1clNlbCBsYlNldERhdGEgbGJTZXRQaWN0dXJlIGxiU2V0UGljdHVyZUNvbG9yIGxiU2V0UGljdHVyZUNvbG9yRGlzYWJsZWQgbGJTZXRQaWN0dXJlQ29sb3JTZWxlY3RlZCBsYlNldFBpY3R1cmVSaWdodCBsYlNldFBpY3R1cmVSaWdodENvbG9yIGxiU2V0UGljdHVyZVJpZ2h0Q29sb3JEaXNhYmxlZCBsYlNldFBpY3R1cmVSaWdodENvbG9yU2VsZWN0ZWQgbGJTZXRTZWxlY3RDb2xvciBsYlNldFNlbGVjdENvbG9yUmlnaHQgbGJTZXRTZWxlY3RlZCBsYlNldFRleHQgbGJTZXRUZXh0UmlnaHQgbGJTZXRUb29sdGlwIGxiU2V0VmFsdWUgbGJTaXplIGxiU29ydCBsYlNvcnRCeVZhbHVlIGxiVGV4dCBsYlRleHRSaWdodCBsYlZhbHVlIGxlYWRlciBsZWFkZXJib2FyZERlSW5pdCBsZWFkZXJib2FyZEdldFJvd3MgbGVhZGVyYm9hcmRJbml0IGxlYWRlcmJvYXJkUmVxdWVzdFJvd3NGcmllbmRzIGxlYWRlcmJvYXJkc1JlcXVlc3RVcGxvYWRTY29yZSBsZWFkZXJib2FyZHNSZXF1ZXN0VXBsb2FkU2NvcmVLZWVwQmVzdCBsZWFkZXJib2FyZFN0YXRlIGxlYXZlVmVoaWNsZSBsaWJyYXJ5Q3JlZGl0cyBsaWJyYXJ5RGlzY2xhaW1lcnMgbGlmZVN0YXRlIGxpZ2h0QXR0YWNoT2JqZWN0IGxpZ2h0RGV0YWNoT2JqZWN0IGxpZ2h0SXNPbiBsaWdodG5pbmdzIGxpbWl0U3BlZWQgbGluZWFyQ29udmVyc2lvbiBsaW5lSW50ZXJzZWN0cyBsaW5lSW50ZXJzZWN0c09ianMgbGluZUludGVyc2VjdHNTdXJmYWNlcyBsaW5lSW50ZXJzZWN0c1dpdGggbGlua0l0ZW0gbGlzdCBsaXN0T2JqZWN0cyBsaXN0UmVtb3RlVGFyZ2V0cyBsaXN0VmVoaWNsZVNlbnNvcnMgbG4gbG5iQWRkQXJyYXkgbG5iQWRkQ29sdW1uIGxuYkFkZFJvdyBsbmJDbGVhciBsbmJDb2xvciBsbmJDdXJTZWxSb3cgbG5iRGF0YSBsbmJEZWxldGVDb2x1bW4gbG5iRGVsZXRlUm93IGxuYkdldENvbHVtbnNQb3NpdGlvbiBsbmJQaWN0dXJlIGxuYlNldENvbG9yIGxuYlNldENvbHVtbnNQb3MgbG5iU2V0Q3VyU2VsUm93IGxuYlNldERhdGEgbG5iU2V0UGljdHVyZSBsbmJTZXRUZXh0IGxuYlNldFZhbHVlIGxuYlNpemUgbG5iU29ydCBsbmJTb3J0QnlWYWx1ZSBsbmJUZXh0IGxuYlZhbHVlIGxvYWQgbG9hZEFicyBsb2FkQmFja3BhY2sgbG9hZEZpbGUgbG9hZEdhbWUgbG9hZElkZW50aXR5IGxvYWRNYWdhemluZSBsb2FkT3ZlcmxheSBsb2FkU3RhdHVzIGxvYWRVbmlmb3JtIGxvYWRWZXN0IGxvY2FsIGxvY2FsaXplIGxvY2F0aW9uUG9zaXRpb24gbG9jayBsb2NrQ2FtZXJhVG8gbG9ja0NhcmdvIGxvY2tEcml2ZXIgbG9ja2VkIGxvY2tlZENhcmdvIGxvY2tlZERyaXZlciBsb2NrZWRUdXJyZXQgbG9ja0lkZW50aXR5IGxvY2tUdXJyZXQgbG9ja1dQIGxvZyBsb2dFbnRpdGllcyBsb2dOZXR3b3JrIGxvZ05ldHdvcmtUZXJtaW5hdGUgbG9va0F0IGxvb2tBdFBvcyBtYWdhemluZUNhcmdvIG1hZ2F6aW5lcyBtYWdhemluZXNBbGxUdXJyZXRzIG1hZ2F6aW5lc0FtbW8gbWFnYXppbmVzQW1tb0NhcmdvIG1hZ2F6aW5lc0FtbW9GdWxsIG1hZ2F6aW5lc0RldGFpbCBtYWdhemluZXNEZXRhaWxCYWNrcGFjayBtYWdhemluZXNEZXRhaWxVbmlmb3JtIG1hZ2F6aW5lc0RldGFpbFZlc3QgbWFnYXppbmVzVHVycmV0IG1hZ2F6aW5lVHVycmV0QW1tbyBtYXBBbmltQWRkIG1hcEFuaW1DbGVhciBtYXBBbmltQ29tbWl0IG1hcEFuaW1Eb25lIG1hcENlbnRlck9uQ2FtZXJhIG1hcEdyaWRQb3NpdGlvbiBtYXJrQXNGaW5pc2hlZE9uU3RlYW0gbWFya2VyQWxwaGEgbWFya2VyQnJ1c2ggbWFya2VyQ29sb3IgbWFya2VyRGlyIG1hcmtlclBvcyBtYXJrZXJTaGFwZSBtYXJrZXJTaXplIG1hcmtlclRleHQgbWFya2VyVHlwZSBtYXggbWVtYmVycyBtZW51QWN0aW9uIG1lbnVBZGQgbWVudUNoZWNrZWQgbWVudUNsZWFyIG1lbnVDb2xsYXBzZSBtZW51RGF0YSBtZW51RGVsZXRlIG1lbnVFbmFibGUgbWVudUVuYWJsZWQgbWVudUV4cGFuZCBtZW51SG92ZXIgbWVudVBpY3R1cmUgbWVudVNldEFjdGlvbiBtZW51U2V0Q2hlY2sgbWVudVNldERhdGEgbWVudVNldFBpY3R1cmUgbWVudVNldFZhbHVlIG1lbnVTaG9ydGN1dCBtZW51U2hvcnRjdXRUZXh0IG1lbnVTaXplIG1lbnVTb3J0IG1lbnVUZXh0IG1lbnVVUkwgbWVudVZhbHVlIG1pbiBtaW5lQWN0aXZlIG1pbmVEZXRlY3RlZEJ5IG1pc3Npb25Db25maWdGaWxlIG1pc3Npb25EaWZmaWN1bHR5IG1pc3Npb25OYW1lIG1pc3Npb25OYW1lc3BhY2UgbWlzc2lvblN0YXJ0IG1pc3Npb25WZXJzaW9uIG1vZCBtb2RlbFRvV29ybGQgbW9kZWxUb1dvcmxkVmlzdWFsIG1vZGVsVG9Xb3JsZFZpc3VhbFdvcmxkIG1vZGVsVG9Xb3JsZFdvcmxkIG1vZFBhcmFtcyBtb29uSW50ZW5zaXR5IG1vb25QaGFzZSBtb3JhbGUgbW92ZSBtb3ZlM0RFTkNhbWVyYSBtb3ZlSW5BbnkgbW92ZUluQ2FyZ28gbW92ZUluQ29tbWFuZGVyIG1vdmVJbkRyaXZlciBtb3ZlSW5HdW5uZXIgbW92ZUluVHVycmV0IG1vdmVPYmplY3RUb0VuZCBtb3ZlT3V0IG1vdmVUaW1lIG1vdmVUbyBtb3ZlVG9Db21wbGV0ZWQgbW92ZVRvRmFpbGVkIG11c2ljVm9sdW1lIG5hbWUgbmFtZVNvdW5kIG5lYXJFbnRpdGllcyBuZWFyZXN0QnVpbGRpbmcgbmVhcmVzdExvY2F0aW9uIG5lYXJlc3RMb2NhdGlvbnMgbmVhcmVzdExvY2F0aW9uV2l0aER1YmJpbmcgbmVhcmVzdE9iamVjdCBuZWFyZXN0T2JqZWN0cyBuZWFyZXN0VGVycmFpbk9iamVjdHMgbmVhck9iamVjdHMgbmVhck9iamVjdHNSZWFkeSBuZWFyUm9hZHMgbmVhclN1cHBsaWVzIG5lYXJUYXJnZXRzIG5lZWRSZWxvYWQgbmV0SWQgbmV0T2JqTnVsbCBuZXdPdmVybGF5IG5leHRNZW51SXRlbUluZGV4IG5leHRXZWF0aGVyQ2hhbmdlIG5NZW51SXRlbXMgbm90IG51bWJlck9mRW5naW5lc1JURCBudW1iZXJUb0RhdGUgb2JqZWN0Q3VyYXRvcnMgb2JqZWN0RnJvbU5ldElkIG9iamVjdFBhcmVudCBvYmpTdGF0dXMgb25CcmllZmluZ0dyb3VwIG9uQnJpZWZpbmdOb3RlcyBvbkJyaWVmaW5nUGxhbiBvbkJyaWVmaW5nVGVhbVN3aXRjaCBvbkNvbW1hbmRNb2RlQ2hhbmdlZCBvbkRvdWJsZUNsaWNrIG9uRWFjaEZyYW1lIG9uR3JvdXBJY29uQ2xpY2sgb25Hcm91cEljb25PdmVyRW50ZXIgb25Hcm91cEljb25PdmVyTGVhdmUgb25IQ0dyb3VwU2VsZWN0aW9uQ2hhbmdlZCBvbk1hcFNpbmdsZUNsaWNrIG9uUGxheWVyQ29ubmVjdGVkIG9uUGxheWVyRGlzY29ubmVjdGVkIG9uUHJlbG9hZEZpbmlzaGVkIG9uUHJlbG9hZFN0YXJ0ZWQgb25TaG93TmV3T2JqZWN0IG9uVGVhbVN3aXRjaCBvcGVuQ3VyYXRvckludGVyZmFjZSBvcGVuRExDUGFnZSBvcGVuTWFwIG9wZW5TdGVhbUFwcCBvcGVuWW91dHViZVZpZGVvIG9yIG9yZGVyR2V0SW4gb3ZlcmNhc3Qgb3ZlcmNhc3RGb3JlY2FzdCBvd25lciBwYXJhbSBwYXJhbXMgcGFyc2VOdW1iZXIgcGFyc2VTaW1wbGVBcnJheSBwYXJzZVRleHQgcGFyc2luZ05hbWVzcGFjZSBwYXJ0aWNsZXNRdWFsaXR5IHBpY2tXZWFwb25Qb29sIHBpdGNoIHBpeGVsR3JpZCBwaXhlbEdyaWRCYXNlIHBpeGVsR3JpZE5vVUlTY2FsZSBwaXhlbEggcGl4ZWxXIHBsYXlhYmxlU2xvdHNOdW1iZXIgcGxheWFibGVVbml0cyBwbGF5QWN0aW9uIHBsYXlBY3Rpb25Ob3cgcGxheWVyIHBsYXllclJlc3Bhd25UaW1lIHBsYXllclNpZGUgcGxheWVyc051bWJlciBwbGF5R2VzdHVyZSBwbGF5TWlzc2lvbiBwbGF5TW92ZSBwbGF5TW92ZU5vdyBwbGF5TXVzaWMgcGxheVNjcmlwdGVkTWlzc2lvbiBwbGF5U291bmQgcGxheVNvdW5kM0QgcG9zaXRpb24gcG9zaXRpb25DYW1lcmFUb1dvcmxkIHBvc1NjcmVlblRvV29ybGQgcG9zV29ybGRUb1NjcmVlbiBwcEVmZmVjdEFkanVzdCBwcEVmZmVjdENvbW1pdCBwcEVmZmVjdENvbW1pdHRlZCBwcEVmZmVjdENyZWF0ZSBwcEVmZmVjdERlc3Ryb3kgcHBFZmZlY3RFbmFibGUgcHBFZmZlY3RFbmFibGVkIHBwRWZmZWN0Rm9yY2VJbk5WRyBwcmVjaXNpb24gcHJlbG9hZENhbWVyYSBwcmVsb2FkT2JqZWN0IHByZWxvYWRTb3VuZCBwcmVsb2FkVGl0bGVPYmogcHJlbG9hZFRpdGxlUnNjIHByZXByb2Nlc3NGaWxlIHByZXByb2Nlc3NGaWxlTGluZU51bWJlcnMgcHJpbWFyeVdlYXBvbiBwcmltYXJ5V2VhcG9uSXRlbXMgcHJpbWFyeVdlYXBvbk1hZ2F6aW5lIHByaW9yaXR5IHByb2Nlc3NEaWFyeUxpbmsgcHJvZHVjdFZlcnNpb24gcHJvZmlsZU5hbWUgcHJvZmlsZU5hbWVzcGFjZSBwcm9maWxlTmFtZVN0ZWFtIHByb2dyZXNzTG9hZGluZ1NjcmVlbiBwcm9ncmVzc1Bvc2l0aW9uIHByb2dyZXNzU2V0UG9zaXRpb24gcHVibGljVmFyaWFibGUgcHVibGljVmFyaWFibGVDbGllbnQgcHVibGljVmFyaWFibGVTZXJ2ZXIgcHVzaEJhY2sgcHVzaEJhY2tVbmlxdWUgcHV0V2VhcG9uUG9vbCBxdWVyeUl0ZW1zUG9vbCBxdWVyeU1hZ2F6aW5lUG9vbCBxdWVyeVdlYXBvblBvb2wgcmFkIHJhZGlvQ2hhbm5lbEFkZCByYWRpb0NoYW5uZWxDcmVhdGUgcmFkaW9DaGFubmVsUmVtb3ZlIHJhZGlvQ2hhbm5lbFNldENhbGxTaWduIHJhZGlvQ2hhbm5lbFNldExhYmVsIHJhZGlvVm9sdW1lIHJhaW4gcmFpbmJvdyByYW5kb20gcmFuayByYW5rSWQgcmF0aW5nIHJlY3Rhbmd1bGFyIHJlZ2lzdGVyZWRUYXNrcyByZWdpc3RlclRhc2sgcmVsb2FkIHJlbG9hZEVuYWJsZWQgcmVtb3RlQ29udHJvbCByZW1vdGVFeGVjIHJlbW90ZUV4ZWNDYWxsIHJlbW90ZUV4ZWN1dGVkT3duZXIgcmVtb3ZlM0RFTkNvbm5lY3Rpb24gcmVtb3ZlM0RFTkV2ZW50SGFuZGxlciByZW1vdmUzREVOTGF5ZXIgcmVtb3ZlQWN0aW9uIHJlbW92ZUFsbDNERU5FdmVudEhhbmRsZXJzIHJlbW92ZUFsbEFjdGlvbnMgcmVtb3ZlQWxsQXNzaWduZWRJdGVtcyByZW1vdmVBbGxDb250YWluZXJzIHJlbW92ZUFsbEN1cmF0b3JBZGRvbnMgcmVtb3ZlQWxsQ3VyYXRvckNhbWVyYUFyZWFzIHJlbW92ZUFsbEN1cmF0b3JFZGl0aW5nQXJlYXMgcmVtb3ZlQWxsRXZlbnRIYW5kbGVycyByZW1vdmVBbGxIYW5kZ3VuSXRlbXMgcmVtb3ZlQWxsSXRlbXMgcmVtb3ZlQWxsSXRlbXNXaXRoTWFnYXppbmVzIHJlbW92ZUFsbE1pc3Npb25FdmVudEhhbmRsZXJzIHJlbW92ZUFsbE1QRXZlbnRIYW5kbGVycyByZW1vdmVBbGxNdXNpY0V2ZW50SGFuZGxlcnMgcmVtb3ZlQWxsT3duZWRNaW5lcyByZW1vdmVBbGxQcmltYXJ5V2VhcG9uSXRlbXMgcmVtb3ZlQWxsV2VhcG9ucyByZW1vdmVCYWNrcGFjayByZW1vdmVCYWNrcGFja0dsb2JhbCByZW1vdmVDdXJhdG9yQWRkb25zIHJlbW92ZUN1cmF0b3JDYW1lcmFBcmVhIHJlbW92ZUN1cmF0b3JFZGl0YWJsZU9iamVjdHMgcmVtb3ZlQ3VyYXRvckVkaXRpbmdBcmVhIHJlbW92ZURyYXdJY29uIHJlbW92ZURyYXdMaW5rcyByZW1vdmVFdmVudEhhbmRsZXIgcmVtb3ZlRnJvbVJlbWFpbnNDb2xsZWN0b3IgcmVtb3ZlR29nZ2xlcyByZW1vdmVHcm91cEljb24gcmVtb3ZlSGFuZGd1bkl0ZW0gcmVtb3ZlSGVhZGdlYXIgcmVtb3ZlSXRlbSByZW1vdmVJdGVtRnJvbUJhY2twYWNrIHJlbW92ZUl0ZW1Gcm9tVW5pZm9ybSByZW1vdmVJdGVtRnJvbVZlc3QgcmVtb3ZlSXRlbXMgcmVtb3ZlTWFnYXppbmUgcmVtb3ZlTWFnYXppbmVHbG9iYWwgcmVtb3ZlTWFnYXppbmVzIHJlbW92ZU1hZ2F6aW5lc1R1cnJldCByZW1vdmVNYWdhemluZVR1cnJldCByZW1vdmVNZW51SXRlbSByZW1vdmVNaXNzaW9uRXZlbnRIYW5kbGVyIHJlbW92ZU1QRXZlbnRIYW5kbGVyIHJlbW92ZU11c2ljRXZlbnRIYW5kbGVyIHJlbW92ZU93bmVkTWluZSByZW1vdmVQcmltYXJ5V2VhcG9uSXRlbSByZW1vdmVTZWNvbmRhcnlXZWFwb25JdGVtIHJlbW92ZVNpbXBsZVRhc2sgcmVtb3ZlU3dpdGNoYWJsZVVuaXQgcmVtb3ZlVGVhbU1lbWJlciByZW1vdmVVbmlmb3JtIHJlbW92ZVZlc3QgcmVtb3ZlV2VhcG9uIHJlbW92ZVdlYXBvbkF0dGFjaG1lbnRDYXJnbyByZW1vdmVXZWFwb25DYXJnbyByZW1vdmVXZWFwb25HbG9iYWwgcmVtb3ZlV2VhcG9uVHVycmV0IHJlcG9ydFJlbW90ZVRhcmdldCByZXF1aXJlZFZlcnNpb24gcmVzZXRDYW1TaGFrZSByZXNldFN1Ymdyb3VwRGlyZWN0aW9uIHJlc2l6ZSByZXNvdXJjZXMgcmVzcGF3blZlaGljbGUgcmVzdGFydEVkaXRvckNhbWVyYSByZXZlYWwgcmV2ZWFsTWluZSByZXZlcnNlIHJldmVyc2VkTW91c2VZIHJvYWRBdCByb2Fkc0Nvbm5lY3RlZFRvIHJvbGVEZXNjcmlwdGlvbiByb3BlQXR0YWNoZWRPYmplY3RzIHJvcGVBdHRhY2hlZFRvIHJvcGVBdHRhY2hFbmFibGVkIHJvcGVBdHRhY2hUbyByb3BlQ3JlYXRlIHJvcGVDdXQgcm9wZURlc3Ryb3kgcm9wZURldGFjaCByb3BlRW5kUG9zaXRpb24gcm9wZUxlbmd0aCByb3BlcyByb3BlVW53aW5kIHJvcGVVbndvdW5kIHJvdG9yc0ZvcmNlc1JURCByb3RvcnNScG1SVEQgcm91bmQgcnVuSW5pdFNjcmlwdCBzYWZlWm9uZUggc2FmZVpvbmVXIHNhZmVab25lV0FicyBzYWZlWm9uZVggc2FmZVpvbmVYQWJzIHNhZmVab25lWSBzYXZlM0RFTkludmVudG9yeSBzYXZlR2FtZSBzYXZlSWRlbnRpdHkgc2F2ZUpveXN0aWNrcyBzYXZlT3ZlcmxheSBzYXZlUHJvZmlsZU5hbWVzcGFjZSBzYXZlU3RhdHVzIHNhdmVWYXIgc2F2aW5nRW5hYmxlZCBzYXkgc2F5MkQgc2F5M0Qgc2NvcGVOYW1lIHNjb3JlIHNjb3JlU2lkZSBzY3JlZW5zaG90IHNjcmVlblRvV29ybGQgc2NyaXB0RG9uZSBzY3JpcHROYW1lIHNjdWRTdGF0ZSBzZWNvbmRhcnlXZWFwb24gc2Vjb25kYXJ5V2VhcG9uSXRlbXMgc2Vjb25kYXJ5V2VhcG9uTWFnYXppbmUgc2VsZWN0IHNlbGVjdEJlc3RQbGFjZXMgc2VsZWN0RGlhcnlTdWJqZWN0IHNlbGVjdGVkRWRpdG9yT2JqZWN0cyBzZWxlY3RFZGl0b3JPYmplY3Qgc2VsZWN0aW9uTmFtZXMgc2VsZWN0aW9uUG9zaXRpb24gc2VsZWN0TGVhZGVyIHNlbGVjdE1heCBzZWxlY3RNaW4gc2VsZWN0Tm9QbGF5ZXIgc2VsZWN0UGxheWVyIHNlbGVjdFJhbmRvbSBzZWxlY3RSYW5kb21XZWlnaHRlZCBzZWxlY3RXZWFwb24gc2VsZWN0V2VhcG9uVHVycmV0IHNlbmRBVU1lc3NhZ2Ugc2VuZFNpbXBsZUNvbW1hbmQgc2VuZFRhc2sgc2VuZFRhc2tSZXN1bHQgc2VuZFVEUE1lc3NhZ2Ugc2VydmVyQ29tbWFuZCBzZXJ2ZXJDb21tYW5kQXZhaWxhYmxlIHNlcnZlckNvbW1hbmRFeGVjdXRhYmxlIHNlcnZlck5hbWUgc2VydmVyVGltZSBzZXQgc2V0M0RFTkF0dHJpYnV0ZSBzZXQzREVOQXR0cmlidXRlcyBzZXQzREVOR3JpZCBzZXQzREVOSWNvbnNWaXNpYmxlIHNldDNERU5MYXllciBzZXQzREVOTGluZXNWaXNpYmxlIHNldDNERU5Mb2dpY1R5cGUgc2V0M0RFTk1pc3Npb25BdHRyaWJ1dGUgc2V0M0RFTk1pc3Npb25BdHRyaWJ1dGVzIHNldDNERU5Nb2RlbHNWaXNpYmxlIHNldDNERU5PYmplY3RUeXBlIHNldDNERU5TZWxlY3RlZCBzZXRBY2NUaW1lIHNldEFjdHVhbENvbGxlY3RpdmVSVEQgc2V0QWlycGxhbmVUaHJvdHRsZSBzZXRBaXJwb3J0U2lkZSBzZXRBbW1vIHNldEFtbW9DYXJnbyBzZXRBbW1vT25QeWxvbiBzZXRBbmltU3BlZWRDb2VmIHNldEFwZXJ0dXJlIHNldEFwZXJ0dXJlTmV3IHNldEFybW9yeVBvaW50cyBzZXRBdHRyaWJ1dGVzIHNldEF1dG9ub21vdXMgc2V0QmVoYXZpb3VyIHNldEJsZWVkaW5nUmVtYWluaW5nIHNldEJyYWtlc1JURCBzZXRDYW1lcmFJbnRlcmVzdCBzZXRDYW1TaGFrZURlZlBhcmFtcyBzZXRDYW1TaGFrZVBhcmFtcyBzZXRDYW1Vc2VUSSBzZXRDYXB0aXZlIHNldENlbnRlck9mTWFzcyBzZXRDb2xsaXNpb25MaWdodCBzZXRDb21iYXRNb2RlIHNldENvbXBhc3NPc2NpbGxhdGlvbiBzZXRDb252b3lTZXBhcmF0aW9uIHNldEN1cmF0b3JDYW1lcmFBcmVhQ2VpbGluZyBzZXRDdXJhdG9yQ29lZiBzZXRDdXJhdG9yRWRpdGluZ0FyZWFUeXBlIHNldEN1cmF0b3JXYXlwb2ludENvc3Qgc2V0Q3VycmVudENoYW5uZWwgc2V0Q3VycmVudFRhc2sgc2V0Q3VycmVudFdheXBvaW50IHNldEN1c3RvbUFpbUNvZWYgc2V0Q3VzdG9tV2VpZ2h0UlREIHNldERhbWFnZSBzZXREYW1tYWdlIHNldERhdGUgc2V0RGVicmllZmluZ1RleHQgc2V0RGVmYXVsdENhbWVyYSBzZXREZXN0aW5hdGlvbiBzZXREZXRhaWxNYXBCbGVuZFBhcnMgc2V0RGlyIHNldERpcmVjdGlvbiBzZXREcmF3SWNvbiBzZXREcml2ZU9uUGF0aCBzZXREcm9wSW50ZXJ2YWwgc2V0RHluYW1pY1NpbXVsYXRpb25EaXN0YW5jZSBzZXREeW5hbWljU2ltdWxhdGlvbkRpc3RhbmNlQ29lZiBzZXRFZGl0b3JNb2RlIHNldEVkaXRvck9iamVjdFNjb3BlIHNldEVmZmVjdENvbmRpdGlvbiBzZXRFbmdpbmVSUE1SVEQgc2V0RmFjZSBzZXRGYWNlQW5pbWF0aW9uIHNldEZhdGlndWUgc2V0RmVhdHVyZVR5cGUgc2V0RmxhZ0FuaW1hdGlvblBoYXNlIHNldEZsYWdPd25lciBzZXRGbGFnU2lkZSBzZXRGbGFnVGV4dHVyZSBzZXRGb2cgc2V0Rm9ybWF0aW9uIHNldEZvcm1hdGlvblRhc2sgc2V0Rm9ybURpciBzZXRGcmllbmQgc2V0RnJvbUVkaXRvciBzZXRGU01WYXJpYWJsZSBzZXRGdWVsIHNldEZ1ZWxDYXJnbyBzZXRHcm91cEljb24gc2V0R3JvdXBJY29uUGFyYW1zIHNldEdyb3VwSWNvbnNTZWxlY3RhYmxlIHNldEdyb3VwSWNvbnNWaXNpYmxlIHNldEdyb3VwSWQgc2V0R3JvdXBJZEdsb2JhbCBzZXRHcm91cE93bmVyIHNldEd1c3RzIHNldEhpZGVCZWhpbmQgc2V0SGl0IHNldEhpdEluZGV4IHNldEhpdFBvaW50RGFtYWdlIHNldEhvcml6b25QYXJhbGxheENvZWYgc2V0SFVETW92ZW1lbnRMZXZlbHMgc2V0SWRlbnRpdHkgc2V0SW1wb3J0YW5jZSBzZXRJbmZvUGFuZWwgc2V0TGVhZGVyIHNldExpZ2h0QW1iaWVudCBzZXRMaWdodEF0dGVudWF0aW9uIHNldExpZ2h0QnJpZ2h0bmVzcyBzZXRMaWdodENvbG9yIHNldExpZ2h0RGF5TGlnaHQgc2V0TGlnaHRGbGFyZU1heERpc3RhbmNlIHNldExpZ2h0RmxhcmVTaXplIHNldExpZ2h0SW50ZW5zaXR5IHNldExpZ2h0bmluZ3Mgc2V0TGlnaHRVc2VGbGFyZSBzZXRMb2NhbFdpbmRQYXJhbXMgc2V0TWFnYXppbmVUdXJyZXRBbW1vIHNldE1hcmtlckFscGhhIHNldE1hcmtlckFscGhhTG9jYWwgc2V0TWFya2VyQnJ1c2ggc2V0TWFya2VyQnJ1c2hMb2NhbCBzZXRNYXJrZXJDb2xvciBzZXRNYXJrZXJDb2xvckxvY2FsIHNldE1hcmtlckRpciBzZXRNYXJrZXJEaXJMb2NhbCBzZXRNYXJrZXJQb3Mgc2V0TWFya2VyUG9zTG9jYWwgc2V0TWFya2VyU2hhcGUgc2V0TWFya2VyU2hhcGVMb2NhbCBzZXRNYXJrZXJTaXplIHNldE1hcmtlclNpemVMb2NhbCBzZXRNYXJrZXJUZXh0IHNldE1hcmtlclRleHRMb2NhbCBzZXRNYXJrZXJUeXBlIHNldE1hcmtlclR5cGVMb2NhbCBzZXRNYXNzIHNldE1pbWljIHNldE1vdXNlUG9zaXRpb24gc2V0TXVzaWNFZmZlY3Qgc2V0TXVzaWNFdmVudEhhbmRsZXIgc2V0TmFtZSBzZXROYW1lU291bmQgc2V0T2JqZWN0QXJndW1lbnRzIHNldE9iamVjdE1hdGVyaWFsIHNldE9iamVjdE1hdGVyaWFsR2xvYmFsIHNldE9iamVjdFByb3h5IHNldE9iamVjdFRleHR1cmUgc2V0T2JqZWN0VGV4dHVyZUdsb2JhbCBzZXRPYmplY3RWaWV3RGlzdGFuY2Ugc2V0T3ZlcmNhc3Qgc2V0T3duZXIgc2V0T3h5Z2VuUmVtYWluaW5nIHNldFBhcnRpY2xlQ2lyY2xlIHNldFBhcnRpY2xlQ2xhc3Mgc2V0UGFydGljbGVGaXJlIHNldFBhcnRpY2xlUGFyYW1zIHNldFBhcnRpY2xlUmFuZG9tIHNldFBpbG90Q2FtZXJhRGlyZWN0aW9uIHNldFBpbG90Q2FtZXJhUm90YXRpb24gc2V0UGlsb3RDYW1lcmFUYXJnZXQgc2V0UGlsb3RMaWdodCBzZXRQaVBFZmZlY3Qgc2V0UGl0Y2ggc2V0UGxhdGVOdW1iZXIgc2V0UGxheWFibGUgc2V0UGxheWVyUmVzcGF3blRpbWUgc2V0UG9zIHNldFBvc0FTTCBzZXRQb3NBU0wyIHNldFBvc0FTTFcgc2V0UG9zQVRMIHNldFBvc2l0aW9uIHNldFBvc1dvcmxkIHNldFB5bG9uTG9hZE91dCBzZXRQeWxvbnNQcmlvcml0eSBzZXRSYWRpb01zZyBzZXRSYWluIHNldFJhaW5ib3cgc2V0UmFuZG9tTGlwIHNldFJhbmsgc2V0UmVjdGFuZ3VsYXIgc2V0UmVwYWlyQ2FyZ28gc2V0Um90b3JCcmFrZVJURCBzZXRTaGFkb3dEaXN0YW5jZSBzZXRTaG90UGFyZW50cyBzZXRTaWRlIHNldFNpbXBsZVRhc2tBbHdheXNWaXNpYmxlIHNldFNpbXBsZVRhc2tDdXN0b21EYXRhIHNldFNpbXBsZVRhc2tEZXNjcmlwdGlvbiBzZXRTaW1wbGVUYXNrRGVzdGluYXRpb24gc2V0U2ltcGxlVGFza1RhcmdldCBzZXRTaW1wbGVUYXNrVHlwZSBzZXRTaW11bFdlYXRoZXJMYXllcnMgc2V0U2l6ZSBzZXRTa2lsbCBzZXRTbGluZ0xvYWQgc2V0U291bmRFZmZlY3Qgc2V0U3BlYWtlciBzZXRTcGVlY2ggc2V0U3BlZWRNb2RlIHNldFN0YW1pbmEgc2V0U3RhbWluYVNjaGVtZSBzZXRTdGF0VmFsdWUgc2V0U3VwcHJlc3Npb24gc2V0U3lzdGVtT2ZVbml0cyBzZXRUYXJnZXRBZ2Ugc2V0VGFza01hcmtlck9mZnNldCBzZXRUYXNrUmVzdWx0IHNldFRhc2tTdGF0ZSBzZXRUZXJyYWluR3JpZCBzZXRUZXh0IHNldFRpbWVNdWx0aXBsaWVyIHNldFRpdGxlRWZmZWN0IHNldFRyYWZmaWNEZW5zaXR5IHNldFRyYWZmaWNEaXN0YW5jZSBzZXRUcmFmZmljR2FwIHNldFRyYWZmaWNTcGVlZCBzZXRUcmlnZ2VyQWN0aXZhdGlvbiBzZXRUcmlnZ2VyQXJlYSBzZXRUcmlnZ2VyU3RhdGVtZW50cyBzZXRUcmlnZ2VyVGV4dCBzZXRUcmlnZ2VyVGltZW91dCBzZXRUcmlnZ2VyVHlwZSBzZXRUeXBlIHNldFVuY29uc2Npb3VzIHNldFVuaXRBYmlsaXR5IHNldFVuaXRMb2Fkb3V0IHNldFVuaXRQb3Mgc2V0VW5pdFBvc1dlYWsgc2V0VW5pdFJhbmsgc2V0VW5pdFJlY29pbENvZWZmaWNpZW50IHNldFVuaXRUcmFpdCBzZXRVbmxvYWRJbkNvbWJhdCBzZXRVc2VyQWN0aW9uVGV4dCBzZXRVc2VyTUZEVGV4dCBzZXRVc2VyTUZEdmFsdWUgc2V0VmFyaWFibGUgc2V0VmVjdG9yRGlyIHNldFZlY3RvckRpckFuZFVwIHNldFZlY3RvclVwIHNldFZlaGljbGVBbW1vIHNldFZlaGljbGVBbW1vRGVmIHNldFZlaGljbGVBcm1vciBzZXRWZWhpY2xlQ2FyZ28gc2V0VmVoaWNsZUlkIHNldFZlaGljbGVMb2NrIHNldFZlaGljbGVQb3NpdGlvbiBzZXRWZWhpY2xlUmFkYXIgc2V0VmVoaWNsZVJlY2VpdmVSZW1vdGVUYXJnZXRzIHNldFZlaGljbGVSZXBvcnRPd25Qb3NpdGlvbiBzZXRWZWhpY2xlUmVwb3J0UmVtb3RlVGFyZ2V0cyBzZXRWZWhpY2xlVElQYXJzIHNldFZlaGljbGVWYXJOYW1lIHNldFZlbG9jaXR5IHNldFZlbG9jaXR5TW9kZWxTcGFjZSBzZXRWZWxvY2l0eVRyYW5zZm9ybWF0aW9uIHNldFZpZXdEaXN0YW5jZSBzZXRWaXNpYmxlSWZUcmVlQ29sbGFwc2VkIHNldFdhbnRlZFJQTVJURCBzZXRXYXZlcyBzZXRXYXlwb2ludEJlaGF2aW91ciBzZXRXYXlwb2ludENvbWJhdE1vZGUgc2V0V2F5cG9pbnRDb21wbGV0aW9uUmFkaXVzIHNldFdheXBvaW50RGVzY3JpcHRpb24gc2V0V2F5cG9pbnRGb3JjZUJlaGF2aW91ciBzZXRXYXlwb2ludEZvcm1hdGlvbiBzZXRXYXlwb2ludEhvdXNlUG9zaXRpb24gc2V0V2F5cG9pbnRMb2l0ZXJSYWRpdXMgc2V0V2F5cG9pbnRMb2l0ZXJUeXBlIHNldFdheXBvaW50TmFtZSBzZXRXYXlwb2ludFBvc2l0aW9uIHNldFdheXBvaW50U2NyaXB0IHNldFdheXBvaW50U3BlZWQgc2V0V2F5cG9pbnRTdGF0ZW1lbnRzIHNldFdheXBvaW50VGltZW91dCBzZXRXYXlwb2ludFR5cGUgc2V0V2F5cG9pbnRWaXNpYmxlIHNldFdlYXBvblJlbG9hZGluZ1RpbWUgc2V0V2luZCBzZXRXaW5kRGlyIHNldFdpbmRGb3JjZSBzZXRXaW5kU3RyIHNldFdpbmdGb3JjZVNjYWxlUlREIHNldFdQUG9zIHNob3czREljb25zIHNob3dDaGF0IHNob3dDaW5lbWFCb3JkZXIgc2hvd0NvbW1hbmRpbmdNZW51IHNob3dDb21wYXNzIHNob3dDdXJhdG9yQ29tcGFzcyBzaG93R1BTIHNob3dIVUQgc2hvd0xlZ2VuZCBzaG93TWFwIHNob3duQXJ0aWxsZXJ5Q29tcHV0ZXIgc2hvd25DaGF0IHNob3duQ29tcGFzcyBzaG93bkN1cmF0b3JDb21wYXNzIHNob3dOZXdFZGl0b3JPYmplY3Qgc2hvd25HUFMgc2hvd25IVUQgc2hvd25NYXAgc2hvd25QYWQgc2hvd25SYWRpbyBzaG93blNjb3JldGFibGUgc2hvd25VQVZGZWVkIHNob3duV2FycmFudCBzaG93bldhdGNoIHNob3dQYWQgc2hvd1JhZGlvIHNob3dTY29yZXRhYmxlIHNob3dTdWJ0aXRsZXMgc2hvd1VBVkZlZWQgc2hvd1dhcnJhbnQgc2hvd1dhdGNoIHNob3dXYXlwb2ludCBzaG93V2F5cG9pbnRzIHNpZGUgc2lkZUNoYXQgc2lkZUVuZW15IHNpZGVGcmllbmRseSBzaWRlUmFkaW8gc2ltcGxlVGFza3Mgc2ltdWxhdGlvbkVuYWJsZWQgc2ltdWxDbG91ZERlbnNpdHkgc2ltdWxDbG91ZE9jY2x1c2lvbiBzaW11bEluQ2xvdWRzIHNpbXVsV2VhdGhlclN5bmMgc2luIHNpemUgc2l6ZU9mIHNraWxsIHNraWxsRmluYWwgc2tpcFRpbWUgc2xlZXAgc2xpZGVyUG9zaXRpb24gc2xpZGVyUmFuZ2Ugc2xpZGVyU2V0UG9zaXRpb24gc2xpZGVyU2V0UmFuZ2Ugc2xpZGVyU2V0U3BlZWQgc2xpZGVyU3BlZWQgc2xpbmdMb2FkQXNzaXN0YW50U2hvd24gc29sZGllck1hZ2F6aW5lcyBzb21lQW1tbyBzb3J0IHNvdW5kVm9sdW1lIHNwYXduIHNwZWFrZXIgc3BlZWQgc3BlZWRNb2RlIHNwbGl0U3RyaW5nIHNxcnQgc3F1YWRQYXJhbXMgc3RhbmNlIHN0YXJ0TG9hZGluZ1NjcmVlbiBzdGVwIHN0b3Agc3RvcEVuZ2luZVJURCBzdG9wcGVkIHN0ciBzdW5Pck1vb24gc3VwcG9ydEluZm8gc3VwcHJlc3NGb3Igc3VyZmFjZUlzV2F0ZXIgc3VyZmFjZU5vcm1hbCBzdXJmYWNlVHlwZSBzd2ltSW5EZXB0aCBzd2l0Y2hhYmxlVW5pdHMgc3dpdGNoQWN0aW9uIHN3aXRjaENhbWVyYSBzd2l0Y2hHZXN0dXJlIHN3aXRjaExpZ2h0IHN3aXRjaE1vdmUgc3luY2hyb25pemVkT2JqZWN0cyBzeW5jaHJvbml6ZWRUcmlnZ2VycyBzeW5jaHJvbml6ZWRXYXlwb2ludHMgc3luY2hyb25pemVPYmplY3RzQWRkIHN5bmNocm9uaXplT2JqZWN0c1JlbW92ZSBzeW5jaHJvbml6ZVRyaWdnZXIgc3luY2hyb25pemVXYXlwb2ludCBzeXN0ZW1DaGF0IHN5c3RlbU9mVW5pdHMgdGFuIHRhcmdldEtub3dsZWRnZSB0YXJnZXRzIHRhcmdldHNBZ2dyZWdhdGUgdGFyZ2V0c1F1ZXJ5IHRhc2tBbHdheXNWaXNpYmxlIHRhc2tDaGlsZHJlbiB0YXNrQ29tcGxldGVkIHRhc2tDdXN0b21EYXRhIHRhc2tEZXNjcmlwdGlvbiB0YXNrRGVzdGluYXRpb24gdGFza0hpbnQgdGFza01hcmtlck9mZnNldCB0YXNrUGFyZW50IHRhc2tSZXN1bHQgdGFza1N0YXRlIHRhc2tUeXBlIHRlYW1NZW1iZXIgdGVhbU5hbWUgdGVhbXMgdGVhbVN3aXRjaCB0ZWFtU3dpdGNoRW5hYmxlZCB0ZWFtVHlwZSB0ZXJtaW5hdGUgdGVycmFpbkludGVyc2VjdCB0ZXJyYWluSW50ZXJzZWN0QVNMIHRlcnJhaW5JbnRlcnNlY3RBdEFTTCB0ZXh0IHRleHRMb2cgdGV4dExvZ0Zvcm1hdCB0ZyB0aW1lIHRpbWVNdWx0aXBsaWVyIHRpdGxlQ3V0IHRpdGxlRmFkZU91dCB0aXRsZU9iaiB0aXRsZVJzYyB0aXRsZVRleHQgdG9BcnJheSB0b0ZpeGVkIHRvTG93ZXIgdG9TdHJpbmcgdG9VcHBlciB0cmlnZ2VyQWN0aXZhdGVkIHRyaWdnZXJBY3RpdmF0aW9uIHRyaWdnZXJBcmVhIHRyaWdnZXJBdHRhY2hlZFZlaGljbGUgdHJpZ2dlckF0dGFjaE9iamVjdCB0cmlnZ2VyQXR0YWNoVmVoaWNsZSB0cmlnZ2VyRHluYW1pY1NpbXVsYXRpb24gdHJpZ2dlclN0YXRlbWVudHMgdHJpZ2dlclRleHQgdHJpZ2dlclRpbWVvdXQgdHJpZ2dlclRpbWVvdXRDdXJyZW50IHRyaWdnZXJUeXBlIHR1cnJldExvY2FsIHR1cnJldE93bmVyIHR1cnJldFVuaXQgdHZBZGQgdHZDbGVhciB0dkNvbGxhcHNlIHR2Q29sbGFwc2VBbGwgdHZDb3VudCB0dkN1clNlbCB0dkRhdGEgdHZEZWxldGUgdHZFeHBhbmQgdHZFeHBhbmRBbGwgdHZQaWN0dXJlIHR2U2V0Q29sb3IgdHZTZXRDdXJTZWwgdHZTZXREYXRhIHR2U2V0UGljdHVyZSB0dlNldFBpY3R1cmVDb2xvciB0dlNldFBpY3R1cmVDb2xvckRpc2FibGVkIHR2U2V0UGljdHVyZUNvbG9yU2VsZWN0ZWQgdHZTZXRQaWN0dXJlUmlnaHQgdHZTZXRQaWN0dXJlUmlnaHRDb2xvciB0dlNldFBpY3R1cmVSaWdodENvbG9yRGlzYWJsZWQgdHZTZXRQaWN0dXJlUmlnaHRDb2xvclNlbGVjdGVkIHR2U2V0VGV4dCB0dlNldFRvb2x0aXAgdHZTZXRWYWx1ZSB0dlNvcnQgdHZTb3J0QnlWYWx1ZSB0dlRleHQgdHZUb29sdGlwIHR2VmFsdWUgdHlwZSB0eXBlTmFtZSB0eXBlT2YgVUFWQ29udHJvbCB1aU5hbWVzcGFjZSB1aVNsZWVwIHVuYXNzaWduQ3VyYXRvciB1bmFzc2lnbkl0ZW0gdW5hc3NpZ25UZWFtIHVuYXNzaWduVmVoaWNsZSB1bmRlcndhdGVyIHVuaWZvcm0gdW5pZm9ybUNvbnRhaW5lciB1bmlmb3JtSXRlbXMgdW5pZm9ybU1hZ2F6aW5lcyB1bml0QWRkb25zIHVuaXRBaW1Qb3NpdGlvbiB1bml0QWltUG9zaXRpb25WaXN1YWwgdW5pdEJhY2twYWNrIHVuaXRJc1VBViB1bml0UG9zIHVuaXRSZWFkeSB1bml0UmVjb2lsQ29lZmZpY2llbnQgdW5pdHMgdW5pdHNCZWxvd0hlaWdodCB1bmxpbmtJdGVtIHVubG9ja0FjaGlldmVtZW50IHVucmVnaXN0ZXJUYXNrIHVwZGF0ZURyYXdJY29uIHVwZGF0ZU1lbnVJdGVtIHVwZGF0ZU9iamVjdFRyZWUgdXNlQUlTdGVlcmluZ0NvbXBvbmVudCB1c2VBdWRpb1RpbWVGb3JNb3ZlcyB1c2VySW5wdXREaXNhYmxlZCB2ZWN0b3JBZGQgdmVjdG9yQ29zIHZlY3RvckNyb3NzUHJvZHVjdCB2ZWN0b3JEaWZmIHZlY3RvckRpciB2ZWN0b3JEaXJWaXN1YWwgdmVjdG9yRGlzdGFuY2UgdmVjdG9yRGlzdGFuY2VTcXIgdmVjdG9yRG90UHJvZHVjdCB2ZWN0b3JGcm9tVG8gdmVjdG9yTWFnbml0dWRlIHZlY3Rvck1hZ25pdHVkZVNxciB2ZWN0b3JNb2RlbFRvV29ybGQgdmVjdG9yTW9kZWxUb1dvcmxkVmlzdWFsIHZlY3Rvck11bHRpcGx5IHZlY3Rvck5vcm1hbGl6ZWQgdmVjdG9yVXAgdmVjdG9yVXBWaXN1YWwgdmVjdG9yV29ybGRUb01vZGVsIHZlY3RvcldvcmxkVG9Nb2RlbFZpc3VhbCB2ZWhpY2xlIHZlaGljbGVDYXJnb0VuYWJsZWQgdmVoaWNsZUNoYXQgdmVoaWNsZVJhZGlvIHZlaGljbGVSZWNlaXZlUmVtb3RlVGFyZ2V0cyB2ZWhpY2xlUmVwb3J0T3duUG9zaXRpb24gdmVoaWNsZVJlcG9ydFJlbW90ZVRhcmdldHMgdmVoaWNsZXMgdmVoaWNsZVZhck5hbWUgdmVsb2NpdHkgdmVsb2NpdHlNb2RlbFNwYWNlIHZlcmlmeVNpZ25hdHVyZSB2ZXN0IHZlc3RDb250YWluZXIgdmVzdEl0ZW1zIHZlc3RNYWdhemluZXMgdmlld0Rpc3RhbmNlIHZpc2libGVDb21wYXNzIHZpc2libGVHUFMgdmlzaWJsZU1hcCB2aXNpYmxlUG9zaXRpb24gdmlzaWJsZVBvc2l0aW9uQVNMIHZpc2libGVTY29yZXRhYmxlIHZpc2libGVXYXRjaCB3YXZlcyB3YXlwb2ludEF0dGFjaGVkT2JqZWN0IHdheXBvaW50QXR0YWNoZWRWZWhpY2xlIHdheXBvaW50QXR0YWNoT2JqZWN0IHdheXBvaW50QXR0YWNoVmVoaWNsZSB3YXlwb2ludEJlaGF2aW91ciB3YXlwb2ludENvbWJhdE1vZGUgd2F5cG9pbnRDb21wbGV0aW9uUmFkaXVzIHdheXBvaW50RGVzY3JpcHRpb24gd2F5cG9pbnRGb3JjZUJlaGF2aW91ciB3YXlwb2ludEZvcm1hdGlvbiB3YXlwb2ludEhvdXNlUG9zaXRpb24gd2F5cG9pbnRMb2l0ZXJSYWRpdXMgd2F5cG9pbnRMb2l0ZXJUeXBlIHdheXBvaW50TmFtZSB3YXlwb2ludFBvc2l0aW9uIHdheXBvaW50cyB3YXlwb2ludFNjcmlwdCB3YXlwb2ludHNFbmFibGVkVUFWIHdheXBvaW50U2hvdyB3YXlwb2ludFNwZWVkIHdheXBvaW50U3RhdGVtZW50cyB3YXlwb2ludFRpbWVvdXQgd2F5cG9pbnRUaW1lb3V0Q3VycmVudCB3YXlwb2ludFR5cGUgd2F5cG9pbnRWaXNpYmxlIHdlYXBvbkFjY2Vzc29yaWVzIHdlYXBvbkFjY2Vzc29yaWVzQ2FyZ28gd2VhcG9uQ2FyZ28gd2VhcG9uRGlyZWN0aW9uIHdlYXBvbkluZXJ0aWEgd2VhcG9uTG93ZXJlZCB3ZWFwb25zIHdlYXBvbnNJdGVtcyB3ZWFwb25zSXRlbXNDYXJnbyB3ZWFwb25TdGF0ZSB3ZWFwb25zVHVycmV0IHdlaWdodFJURCBXRlNpZGVUZXh0IHdpbmQgIixsaXRlcmFsOiJibHVmb3IgY2l2aWxpYW4gY29uZmlnTnVsbCBjb250cm9sTnVsbCBkaXNwbGF5TnVsbCBlYXN0IGVuZGwgZmFsc2UgZ3JwTnVsbCBpbmRlcGVuZGVudCBsaW5lQnJlYWsgbG9jYXRpb25OdWxsIG5pbCBvYmpOdWxsIG9wZm9yIHBpIHJlc2lzdGFuY2Ugc2NyaXB0TnVsbCBzaWRlQW1iaWVudExpZmUgc2lkZUVtcHR5IHNpZGVMb2dpYyBzaWRlVW5rbm93biB0YXNrTnVsbCB0ZWFtTWVtYmVyTnVsbCB0cnVlIHdlc3QifSxjb250YWluczpbZS5DX0xJTkVfQ09NTUVOVF9NT0RFLGUuQ19CTE9DS19DT01NRU5UX01PREUsZS5OVU1CRVJfTU9ERSx0LG4sYSxpXSxpbGxlZ2FsOi8jfF5cJCAvfX1zLmV4cG9ydHM9cn0sNDY3MzI6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihhKXtyZXR1cm4gYT90eXBlb2YgYT09InN0cmluZyI/YTphLnNvdXJjZTpudWxsfWZ1bmN0aW9uIGUoLi4uYSl7cmV0dXJuIGEubWFwKG89PnIobykpLmpvaW4oIiIpfWZ1bmN0aW9uIHQoLi4uYSl7cmV0dXJuIigiK2EubWFwKG89PnIobykpLmpvaW4oInwiKSsiKSJ9ZnVuY3Rpb24gbihhKXtjb25zdCBpPWEuQ09NTUVOVCgiLS0iLCIkIiksbz17Y2xhc3NOYW1lOiJzdHJpbmciLHZhcmlhbnRzOlt7YmVnaW46LycvLGVuZDovJy8sY29udGFpbnM6W3tiZWdpbjovJycvfV19XX0sbD17YmVnaW46LyIvLGVuZDovIi8sY29udGFpbnM6W3tiZWdpbjovIiIvfV19LGM9WyJ0cnVlIiwiZmFsc2UiLCJ1bmtub3duIl0sXz1bImRvdWJsZSBwcmVjaXNpb24iLCJsYXJnZSBvYmplY3QiLCJ3aXRoIHRpbWV6b25lIiwid2l0aG91dCB0aW1lem9uZSJdLGQ9WyJiaWdpbnQiLCJiaW5hcnkiLCJibG9iIiwiYm9vbGVhbiIsImNoYXIiLCJjaGFyYWN0ZXIiLCJjbG9iIiwiZGF0ZSIsImRlYyIsImRlY2Zsb2F0IiwiZGVjaW1hbCIsImZsb2F0IiwiaW50IiwiaW50ZWdlciIsImludGVydmFsIiwibmNoYXIiLCJuY2xvYiIsIm5hdGlvbmFsIiwibnVtZXJpYyIsInJlYWwiLCJyb3ciLCJzbWFsbGludCIsInRpbWUiLCJ0aW1lc3RhbXAiLCJ2YXJjaGFyIiwidmFyeWluZyIsInZhcmJpbmFyeSJdLGc9WyJhZGQiLCJhc2MiLCJjb2xsYXRpb24iLCJkZXNjIiwiZmluYWwiLCJmaXJzdCIsImxhc3QiLCJ2aWV3Il0sRT1bImFicyIsImFjb3MiLCJhbGwiLCJhbGxvY2F0ZSIsImFsdGVyIiwiYW5kIiwiYW55IiwiYXJlIiwiYXJyYXkiLCJhcnJheV9hZ2ciLCJhcnJheV9tYXhfY2FyZGluYWxpdHkiLCJhcyIsImFzZW5zaXRpdmUiLCJhc2luIiwiYXN5bW1ldHJpYyIsImF0IiwiYXRhbiIsImF0b21pYyIsImF1dGhvcml6YXRpb24iLCJhdmciLCJiZWdpbiIsImJlZ2luX2ZyYW1lIiwiYmVnaW5fcGFydGl0aW9uIiwiYmV0d2VlbiIsImJpZ2ludCIsImJpbmFyeSIsImJsb2IiLCJib29sZWFuIiwiYm90aCIsImJ5IiwiY2FsbCIsImNhbGxlZCIsImNhcmRpbmFsaXR5IiwiY2FzY2FkZWQiLCJjYXNlIiwiY2FzdCIsImNlaWwiLCJjZWlsaW5nIiwiY2hhciIsImNoYXJfbGVuZ3RoIiwiY2hhcmFjdGVyIiwiY2hhcmFjdGVyX2xlbmd0aCIsImNoZWNrIiwiY2xhc3NpZmllciIsImNsb2IiLCJjbG9zZSIsImNvYWxlc2NlIiwiY29sbGF0ZSIsImNvbGxlY3QiLCJjb2x1bW4iLCJjb21taXQiLCJjb25kaXRpb24iLCJjb25uZWN0IiwiY29uc3RyYWludCIsImNvbnRhaW5zIiwiY29udmVydCIsImNvcHkiLCJjb3JyIiwiY29ycmVzcG9uZGluZyIsImNvcyIsImNvc2giLCJjb3VudCIsImNvdmFyX3BvcCIsImNvdmFyX3NhbXAiLCJjcmVhdGUiLCJjcm9zcyIsImN1YmUiLCJjdW1lX2Rpc3QiLCJjdXJyZW50IiwiY3VycmVudF9jYXRhbG9nIiwiY3VycmVudF9kYXRlIiwiY3VycmVudF9kZWZhdWx0X3RyYW5zZm9ybV9ncm91cCIsImN1cnJlbnRfcGF0aCIsImN1cnJlbnRfcm9sZSIsImN1cnJlbnRfcm93IiwiY3VycmVudF9zY2hlbWEiLCJjdXJyZW50X3RpbWUiLCJjdXJyZW50X3RpbWVzdGFtcCIsImN1cnJlbnRfcGF0aCIsImN1cnJlbnRfcm9sZSIsImN1cnJlbnRfdHJhbnNmb3JtX2dyb3VwX2Zvcl90eXBlIiwiY3VycmVudF91c2VyIiwiY3Vyc29yIiwiY3ljbGUiLCJkYXRlIiwiZGF5IiwiZGVhbGxvY2F0ZSIsImRlYyIsImRlY2ltYWwiLCJkZWNmbG9hdCIsImRlY2xhcmUiLCJkZWZhdWx0IiwiZGVmaW5lIiwiZGVsZXRlIiwiZGVuc2VfcmFuayIsImRlcmVmIiwiZGVzY3JpYmUiLCJkZXRlcm1pbmlzdGljIiwiZGlzY29ubmVjdCIsImRpc3RpbmN0IiwiZG91YmxlIiwiZHJvcCIsImR5bmFtaWMiLCJlYWNoIiwiZWxlbWVudCIsImVsc2UiLCJlbXB0eSIsImVuZCIsImVuZF9mcmFtZSIsImVuZF9wYXJ0aXRpb24iLCJlbmQtZXhlYyIsImVxdWFscyIsImVzY2FwZSIsImV2ZXJ5IiwiZXhjZXB0IiwiZXhlYyIsImV4ZWN1dGUiLCJleGlzdHMiLCJleHAiLCJleHRlcm5hbCIsImV4dHJhY3QiLCJmYWxzZSIsImZldGNoIiwiZmlsdGVyIiwiZmlyc3RfdmFsdWUiLCJmbG9hdCIsImZsb29yIiwiZm9yIiwiZm9yZWlnbiIsImZyYW1lX3JvdyIsImZyZWUiLCJmcm9tIiwiZnVsbCIsImZ1bmN0aW9uIiwiZnVzaW9uIiwiZ2V0IiwiZ2xvYmFsIiwiZ3JhbnQiLCJncm91cCIsImdyb3VwaW5nIiwiZ3JvdXBzIiwiaGF2aW5nIiwiaG9sZCIsImhvdXIiLCJpZGVudGl0eSIsImluIiwiaW5kaWNhdG9yIiwiaW5pdGlhbCIsImlubmVyIiwiaW5vdXQiLCJpbnNlbnNpdGl2ZSIsImluc2VydCIsImludCIsImludGVnZXIiLCJpbnRlcnNlY3QiLCJpbnRlcnNlY3Rpb24iLCJpbnRlcnZhbCIsImludG8iLCJpcyIsImpvaW4iLCJqc29uX2FycmF5IiwianNvbl9hcnJheWFnZyIsImpzb25fZXhpc3RzIiwianNvbl9vYmplY3QiLCJqc29uX29iamVjdGFnZyIsImpzb25fcXVlcnkiLCJqc29uX3RhYmxlIiwianNvbl90YWJsZV9wcmltaXRpdmUiLCJqc29uX3ZhbHVlIiwibGFnIiwibGFuZ3VhZ2UiLCJsYXJnZSIsImxhc3RfdmFsdWUiLCJsYXRlcmFsIiwibGVhZCIsImxlYWRpbmciLCJsZWZ0IiwibGlrZSIsImxpa2VfcmVnZXgiLCJsaXN0YWdnIiwibG4iLCJsb2NhbCIsImxvY2FsdGltZSIsImxvY2FsdGltZXN0YW1wIiwibG9nIiwibG9nMTAiLCJsb3dlciIsIm1hdGNoIiwibWF0Y2hfbnVtYmVyIiwibWF0Y2hfcmVjb2duaXplIiwibWF0Y2hlcyIsIm1heCIsIm1lbWJlciIsIm1lcmdlIiwibWV0aG9kIiwibWluIiwibWludXRlIiwibW9kIiwibW9kaWZpZXMiLCJtb2R1bGUiLCJtb250aCIsIm11bHRpc2V0IiwibmF0aW9uYWwiLCJuYXR1cmFsIiwibmNoYXIiLCJuY2xvYiIsIm5ldyIsIm5vIiwibm9uZSIsIm5vcm1hbGl6ZSIsIm5vdCIsIm50aF92YWx1ZSIsIm50aWxlIiwibnVsbCIsIm51bGxpZiIsIm51bWVyaWMiLCJvY3RldF9sZW5ndGgiLCJvY2N1cnJlbmNlc19yZWdleCIsIm9mIiwib2Zmc2V0Iiwib2xkIiwib21pdCIsIm9uIiwib25lIiwib25seSIsIm9wZW4iLCJvciIsIm9yZGVyIiwib3V0Iiwib3V0ZXIiLCJvdmVyIiwib3ZlcmxhcHMiLCJvdmVybGF5IiwicGFyYW1ldGVyIiwicGFydGl0aW9uIiwicGF0dGVybiIsInBlciIsInBlcmNlbnQiLCJwZXJjZW50X3JhbmsiLCJwZXJjZW50aWxlX2NvbnQiLCJwZXJjZW50aWxlX2Rpc2MiLCJwZXJpb2QiLCJwb3J0aW9uIiwicG9zaXRpb24iLCJwb3NpdGlvbl9yZWdleCIsInBvd2VyIiwicHJlY2VkZXMiLCJwcmVjaXNpb24iLCJwcmVwYXJlIiwicHJpbWFyeSIsInByb2NlZHVyZSIsInB0ZiIsInJhbmdlIiwicmFuayIsInJlYWRzIiwicmVhbCIsInJlY3Vyc2l2ZSIsInJlZiIsInJlZmVyZW5jZXMiLCJyZWZlcmVuY2luZyIsInJlZ3JfYXZneCIsInJlZ3JfYXZneSIsInJlZ3JfY291bnQiLCJyZWdyX2ludGVyY2VwdCIsInJlZ3JfcjIiLCJyZWdyX3Nsb3BlIiwicmVncl9zeHgiLCJyZWdyX3N4eSIsInJlZ3Jfc3l5IiwicmVsZWFzZSIsInJlc3VsdCIsInJldHVybiIsInJldHVybnMiLCJyZXZva2UiLCJyaWdodCIsInJvbGxiYWNrIiwicm9sbHVwIiwicm93Iiwicm93X251bWJlciIsInJvd3MiLCJydW5uaW5nIiwic2F2ZXBvaW50Iiwic2NvcGUiLCJzY3JvbGwiLCJzZWFyY2giLCJzZWNvbmQiLCJzZWVrIiwic2VsZWN0Iiwic2Vuc2l0aXZlIiwic2Vzc2lvbl91c2VyIiwic2V0Iiwic2hvdyIsInNpbWlsYXIiLCJzaW4iLCJzaW5oIiwic2tpcCIsInNtYWxsaW50Iiwic29tZSIsInNwZWNpZmljIiwic3BlY2lmaWN0eXBlIiwic3FsIiwic3FsZXhjZXB0aW9uIiwic3Fsc3RhdGUiLCJzcWx3YXJuaW5nIiwic3FydCIsInN0YXJ0Iiwic3RhdGljIiwic3RkZGV2X3BvcCIsInN0ZGRldl9zYW1wIiwic3VibXVsdGlzZXQiLCJzdWJzZXQiLCJzdWJzdHJpbmciLCJzdWJzdHJpbmdfcmVnZXgiLCJzdWNjZWVkcyIsInN1bSIsInN5bW1ldHJpYyIsInN5c3RlbSIsInN5c3RlbV90aW1lIiwic3lzdGVtX3VzZXIiLCJ0YWJsZSIsInRhYmxlc2FtcGxlIiwidGFuIiwidGFuaCIsInRoZW4iLCJ0aW1lIiwidGltZXN0YW1wIiwidGltZXpvbmVfaG91ciIsInRpbWV6b25lX21pbnV0ZSIsInRvIiwidHJhaWxpbmciLCJ0cmFuc2xhdGUiLCJ0cmFuc2xhdGVfcmVnZXgiLCJ0cmFuc2xhdGlvbiIsInRyZWF0IiwidHJpZ2dlciIsInRyaW0iLCJ0cmltX2FycmF5IiwidHJ1ZSIsInRydW5jYXRlIiwidWVzY2FwZSIsInVuaW9uIiwidW5pcXVlIiwidW5rbm93biIsInVubmVzdCIsInVwZGF0ZSAgICIsInVwcGVyIiwidXNlciIsInVzaW5nIiwidmFsdWUiLCJ2YWx1ZXMiLCJ2YWx1ZV9vZiIsInZhcl9wb3AiLCJ2YXJfc2FtcCIsInZhcmJpbmFyeSIsInZhcmNoYXIiLCJ2YXJ5aW5nIiwidmVyc2lvbmluZyIsIndoZW4iLCJ3aGVuZXZlciIsIndoZXJlIiwid2lkdGhfYnVja2V0Iiwid2luZG93Iiwid2l0aCIsIndpdGhpbiIsIndpdGhvdXQiLCJ5ZWFyIl0sdT1bImFicyIsImFjb3MiLCJhcnJheV9hZ2ciLCJhc2luIiwiYXRhbiIsImF2ZyIsImNhc3QiLCJjZWlsIiwiY2VpbGluZyIsImNvYWxlc2NlIiwiY29yciIsImNvcyIsImNvc2giLCJjb3VudCIsImNvdmFyX3BvcCIsImNvdmFyX3NhbXAiLCJjdW1lX2Rpc3QiLCJkZW5zZV9yYW5rIiwiZGVyZWYiLCJlbGVtZW50IiwiZXhwIiwiZXh0cmFjdCIsImZpcnN0X3ZhbHVlIiwiZmxvb3IiLCJqc29uX2FycmF5IiwianNvbl9hcnJheWFnZyIsImpzb25fZXhpc3RzIiwianNvbl9vYmplY3QiLCJqc29uX29iamVjdGFnZyIsImpzb25fcXVlcnkiLCJqc29uX3RhYmxlIiwianNvbl90YWJsZV9wcmltaXRpdmUiLCJqc29uX3ZhbHVlIiwibGFnIiwibGFzdF92YWx1ZSIsImxlYWQiLCJsaXN0YWdnIiwibG4iLCJsb2ciLCJsb2cxMCIsImxvd2VyIiwibWF4IiwibWluIiwibW9kIiwibnRoX3ZhbHVlIiwibnRpbGUiLCJudWxsaWYiLCJwZXJjZW50X3JhbmsiLCJwZXJjZW50aWxlX2NvbnQiLCJwZXJjZW50aWxlX2Rpc2MiLCJwb3NpdGlvbiIsInBvc2l0aW9uX3JlZ2V4IiwicG93ZXIiLCJyYW5rIiwicmVncl9hdmd4IiwicmVncl9hdmd5IiwicmVncl9jb3VudCIsInJlZ3JfaW50ZXJjZXB0IiwicmVncl9yMiIsInJlZ3Jfc2xvcGUiLCJyZWdyX3N4eCIsInJlZ3Jfc3h5IiwicmVncl9zeXkiLCJyb3dfbnVtYmVyIiwic2luIiwic2luaCIsInNxcnQiLCJzdGRkZXZfcG9wIiwic3RkZGV2X3NhbXAiLCJzdWJzdHJpbmciLCJzdWJzdHJpbmdfcmVnZXgiLCJzdW0iLCJ0YW4iLCJ0YW5oIiwidHJhbnNsYXRlIiwidHJhbnNsYXRlX3JlZ2V4IiwidHJlYXQiLCJ0cmltIiwidHJpbV9hcnJheSIsInVubmVzdCIsInVwcGVyIiwidmFsdWVfb2YiLCJ2YXJfcG9wIiwidmFyX3NhbXAiLCJ3aWR0aF9idWNrZXQiXSxtPVsiY3VycmVudF9jYXRhbG9nIiwiY3VycmVudF9kYXRlIiwiY3VycmVudF9kZWZhdWx0X3RyYW5zZm9ybV9ncm91cCIsImN1cnJlbnRfcGF0aCIsImN1cnJlbnRfcm9sZSIsImN1cnJlbnRfc2NoZW1hIiwiY3VycmVudF90cmFuc2Zvcm1fZ3JvdXBfZm9yX3R5cGUiLCJjdXJyZW50X3VzZXIiLCJzZXNzaW9uX3VzZXIiLCJzeXN0ZW1fdGltZSIsInN5c3RlbV91c2VyIiwiY3VycmVudF90aW1lIiwibG9jYWx0aW1lIiwiY3VycmVudF90aW1lc3RhbXAiLCJsb2NhbHRpbWVzdGFtcCJdLFM9WyJjcmVhdGUgdGFibGUiLCJpbnNlcnQgaW50byIsInByaW1hcnkga2V5IiwiZm9yZWlnbiBrZXkiLCJub3QgbnVsbCIsImFsdGVyIHRhYmxlIiwiYWRkIGNvbnN0cmFpbnQiLCJncm91cGluZyBzZXRzIiwib24gb3ZlcmZsb3ciLCJjaGFyYWN0ZXIgc2V0IiwicmVzcGVjdCBudWxscyIsImlnbm9yZSBudWxscyIsIm51bGxzIGZpcnN0IiwibnVsbHMgbGFzdCIsImRlcHRoIGZpcnN0IiwiYnJlYWR0aCBmaXJzdCJdLFQ9dSxiPVsuLi5FLC4uLmddLmZpbHRlcih5PT4hdS5pbmNsdWRlcyh5KSksZj17Y2xhc3NOYW1lOiJ2YXJpYWJsZSIsYmVnaW46L0BbYS16MC05XSsvfSxDPXtjbGFzc05hbWU6Im9wZXJhdG9yIixiZWdpbjovWy0rKi89JV5+XXwmJj98XHxcfD98IT0/fDwoPzo9Pj98PHw+KT98Pls+PV0/LyxyZWxldmFuY2U6MH0sTz17YmVnaW46ZSgvXGIvLHQoLi4uVCksL1xzKlwoLyksa2V5d29yZHM6e2J1aWx0X2luOlR9fTtmdW5jdGlvbiBEKHkse2V4Y2VwdGlvbnM6QSx3aGVuOmt9PXt9KXtjb25zdCBCPWs7cmV0dXJuIEE9QXx8W10seS5tYXAoRj0+Ri5tYXRjaCgvXHxcZCskLyl8fEEuaW5jbHVkZXMoRik/RjpCKEYpP2Ake0Z9fDBgOkYpfXJldHVybntuYW1lOiJTUUwiLGNhc2VfaW5zZW5zaXRpdmU6ITAsaWxsZWdhbDovW3t9XXw8XC8vLGtleXdvcmRzOnskcGF0dGVybjovXGJbXHdcLl0rLyxrZXl3b3JkOkQoYix7d2hlbjp5PT55Lmxlbmd0aDwzfSksbGl0ZXJhbDpjLHR5cGU6ZCxidWlsdF9pbjptfSxjb250YWluczpbe2JlZ2luOnQoLi4uUyksa2V5d29yZHM6eyRwYXR0ZXJuOi9bXHdcLl0rLyxrZXl3b3JkOmIuY29uY2F0KFMpLGxpdGVyYWw6Yyx0eXBlOmR9fSx7Y2xhc3NOYW1lOiJ0eXBlIixiZWdpbjp0KC4uLl8pfSxPLGYsbyxsLGEuQ19OVU1CRVJfTU9ERSxhLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLGksQ119fXMuZXhwb3J0cz1ufSw3OTMwNzpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGUpe3ZhciB0PWUuQ09NTUVOVCgiLS0iLCIkIik7cmV0dXJue25hbWU6IlNRTCAobW9yZSkiLGFsaWFzZXM6WyJteXNxbCIsIm9yYWNsZSJdLGRpc2FibGVBdXRvZGV0ZWN0OiEwLGNhc2VfaW5zZW5zaXRpdmU6ITAsaWxsZWdhbDovWzw+e30qXS8sY29udGFpbnM6W3tiZWdpbktleXdvcmRzOiJiZWdpbiBlbmQgc3RhcnQgY29tbWl0IHJvbGxiYWNrIHNhdmVwb2ludCBsb2NrIGFsdGVyIGNyZWF0ZSBkcm9wIHJlbmFtZSBjYWxsIGRlbGV0ZSBkbyBoYW5kbGVyIGluc2VydCBsb2FkIHJlcGxhY2Ugc2VsZWN0IHRydW5jYXRlIHVwZGF0ZSBzZXQgc2hvdyBwcmFnbWEgZ3JhbnQgbWVyZ2UgZGVzY3JpYmUgdXNlIGV4cGxhaW4gaGVscCBkZWNsYXJlIHByZXBhcmUgZXhlY3V0ZSBkZWFsbG9jYXRlIHJlbGVhc2UgdW5sb2NrIHB1cmdlIHJlc2V0IGNoYW5nZSBzdG9wIGFuYWx5emUgY2FjaGUgZmx1c2ggb3B0aW1pemUgcmVwYWlyIGtpbGwgaW5zdGFsbCB1bmluc3RhbGwgY2hlY2tzdW0gcmVzdG9yZSBjaGVjayBiYWNrdXAgcmV2b2tlIGNvbW1lbnQgdmFsdWVzIHdpdGgiLGVuZDovOy8sZW5kc1dpdGhQYXJlbnQ6ITAsa2V5d29yZHM6eyRwYXR0ZXJuOi9bXHdcLl0rLyxrZXl3b3JkOiJhcyBhYm9ydCBhYnMgYWJzb2x1dGUgYWNjIGFjY2UgYWNjZXAgYWNjZXB0IGFjY2VzcyBhY2Nlc3NlZCBhY2Nlc3NpYmxlIGFjY291bnQgYWNvcyBhY3Rpb24gYWN0aXZhdGUgYWRkIGFkZHRpbWUgYWRtaW4gYWRtaW5pc3RlciBhZHZhbmNlZCBhZHZpc2UgYWVzX2RlY3J5cHQgYWVzX2VuY3J5cHQgYWZ0ZXIgYWdlbnQgYWdncmVnYXRlIGFsaSBhbGlhIGFsaWFzIGFsbCBhbGxvY2F0ZSBhbGxvdyBhbHRlciBhbHdheXMgYW5hbHl6ZSBhbmNpbGxhcnkgYW5kIGFudGkgYW55IGFueWRhdGEgYW55ZGF0YXNldCBhbnlzY2hlbWEgYW55dHlwZSBhcHBseSBhcmNoaXZlIGFyY2hpdmVkIGFyY2hpdmVsb2cgYXJlIGFzIGFzYyBhc2NpaSBhc2luIGFzc2VtYmx5IGFzc2VydGlvbiBhc3NvY2lhdGUgYXN5bmNocm9ub3VzIGF0IGF0YW4gYXRuMiBhdHRyIGF0dHJpIGF0dHJpYiBhdHRyaWJ1IGF0dHJpYnV0IGF0dHJpYnV0ZSBhdHRyaWJ1dGVzIGF1ZGl0IGF1dGhlbnRpY2F0ZWQgYXV0aGVudGljYXRpb24gYXV0aGlkIGF1dGhvcnMgYXV0byBhdXRvYWxsb2NhdGUgYXV0b2RibGluayBhdXRvZXh0ZW5kIGF1dG9tYXRpYyBhdmFpbGFiaWxpdHkgYXZnIGJhY2t1cCBiYWRmaWxlIGJhc2ljZmlsZSBiZWZvcmUgYmVnaW4gYmVnaW5uaW5nIGJlbmNobWFyayBiZXR3ZWVuIGJmaWxlIGJmaWxlX2Jhc2UgYmlnIGJpZ2ZpbGUgYmluIGJpbmFyeV9kb3VibGUgYmluYXJ5X2Zsb2F0IGJpbmxvZyBiaXRfYW5kIGJpdF9jb3VudCBiaXRfbGVuZ3RoIGJpdF9vciBiaXRfeG9yIGJpdG1hcCBibG9iX2Jhc2UgYmxvY2sgYmxvY2tzaXplIGJvZHkgYm90aCBib3VuZCBidWNrZXQgYnVmZmVyX2NhY2hlIGJ1ZmZlcl9wb29sIGJ1aWxkIGJ1bGsgYnkgYnl0ZSBieXRlb3JkZXJtYXJrIGJ5dGVzIGNhY2hlIGNhY2hpbmcgY2FsbCBjYWxsaW5nIGNhbmNlbCBjYXBhY2l0eSBjYXNjYWRlIGNhc2NhZGVkIGNhc2UgY2FzdCBjYXRhbG9nIGNhdGVnb3J5IGNlaWwgY2VpbGluZyBjaGFpbiBjaGFuZ2UgY2hhbmdlZCBjaGFyX2Jhc2UgY2hhcl9sZW5ndGggY2hhcmFjdGVyX2xlbmd0aCBjaGFyYWN0ZXJzIGNoYXJhY3RlcnNldCBjaGFyaW5kZXggY2hhcnNldCBjaGFyc2V0Zm9ybSBjaGFyc2V0aWQgY2hlY2sgY2hlY2tzdW0gY2hlY2tzdW1fYWdnIGNoaWxkIGNob29zZSBjaHIgY2h1bmsgY2xhc3MgY2xlYW51cCBjbGVhciBjbGllbnQgY2xvYiBjbG9iX2Jhc2UgY2xvbmUgY2xvc2UgY2x1c3Rlcl9pZCBjbHVzdGVyX3Byb2JhYmlsaXR5IGNsdXN0ZXJfc2V0IGNsdXN0ZXJpbmcgY29hbGVzY2UgY29lcmNpYmlsaXR5IGNvbCBjb2xsYXRlIGNvbGxhdGlvbiBjb2xsZWN0IGNvbHUgY29sdW0gY29sdW1uIGNvbHVtbl92YWx1ZSBjb2x1bW5zIGNvbHVtbnNfdXBkYXRlZCBjb21tZW50IGNvbW1pdCBjb21wYWN0IGNvbXBhdGliaWxpdHkgY29tcGlsZWQgY29tcGxldGUgY29tcG9zaXRlX2xpbWl0IGNvbXBvdW5kIGNvbXByZXNzIGNvbXB1dGUgY29uY2F0IGNvbmNhdF93cyBjb25jdXJyZW50IGNvbmZpcm0gY29ubiBjb25uZWMgY29ubmVjdCBjb25uZWN0X2J5X2lzY3ljbGUgY29ubmVjdF9ieV9pc2xlYWYgY29ubmVjdF9ieV9yb290IGNvbm5lY3RfdGltZSBjb25uZWN0aW9uIGNvbnNpZGVyIGNvbnNpc3RlbnQgY29uc3RhbnQgY29uc3RyYWludCBjb25zdHJhaW50cyBjb25zdHJ1Y3RvciBjb250YWluZXIgY29udGVudCBjb250ZW50cyBjb250ZXh0IGNvbnRyaWJ1dG9ycyBjb250cm9sZmlsZSBjb252IGNvbnZlcnQgY29udmVydF90eiBjb3JyIGNvcnJfayBjb3JyX3MgY29ycmVzcG9uZGluZyBjb3JydXB0aW9uIGNvcyBjb3N0IGNvdW50IGNvdW50X2JpZyBjb3VudGVkIGNvdmFyX3BvcCBjb3Zhcl9zYW1wIGNwdV9wZXJfY2FsbCBjcHVfcGVyX3Nlc3Npb24gY3JjMzIgY3JlYXRlIGNyZWF0aW9uIGNyaXRpY2FsIGNyb3NzIGN1YmUgY3VtZV9kaXN0IGN1cmRhdGUgY3VycmVudCBjdXJyZW50X2RhdGUgY3VycmVudF90aW1lIGN1cnJlbnRfdGltZXN0YW1wIGN1cnJlbnRfdXNlciBjdXJzb3IgY3VydGltZSBjdXN0b21kYXR1bSBjeWNsZSBkYXRhIGRhdGFiYXNlIGRhdGFiYXNlcyBkYXRhZmlsZSBkYXRhZmlsZXMgZGF0YWxlbmd0aCBkYXRlX2FkZCBkYXRlX2NhY2hlIGRhdGVfZm9ybWF0IGRhdGVfc3ViIGRhdGVhZGQgZGF0ZWRpZmYgZGF0ZWZyb21wYXJ0cyBkYXRlbmFtZSBkYXRlcGFydCBkYXRldGltZTJmcm9tcGFydHMgZGF5IGRheV90b19zZWNvbmQgZGF5bmFtZSBkYXlvZm1vbnRoIGRheW9md2VlayBkYXlvZnllYXIgZGF5cyBkYl9yb2xlX2NoYW5nZSBkYnRpbWV6b25lIGRkbCBkZWFsbG9jYXRlIGRlY2xhcmUgZGVjb2RlIGRlY29tcG9zZSBkZWNyZW1lbnQgZGVjcnlwdCBkZWR1cGxpY2F0ZSBkZWYgZGVmYSBkZWZhdSBkZWZhdWwgZGVmYXVsdCBkZWZhdWx0cyBkZWZlcnJlZCBkZWZpIGRlZmluIGRlZmluZSBkZWdyZWVzIGRlbGF5ZWQgZGVsZWdhdGUgZGVsZXRlIGRlbGV0ZV9hbGwgZGVsaW1pdGVkIGRlbWFuZCBkZW5zZV9yYW5rIGRlcHRoIGRlcXVldWUgZGVzX2RlY3J5cHQgZGVzX2VuY3J5cHQgZGVzX2tleV9maWxlIGRlc2MgZGVzY3IgZGVzY3JpIGRlc2NyaWIgZGVzY3JpYmUgZGVzY3JpcHRvciBkZXRlcm1pbmlzdGljIGRpYWdub3N0aWNzIGRpZmZlcmVuY2UgZGltZW5zaW9uIGRpcmVjdF9sb2FkIGRpcmVjdG9yeSBkaXNhYmxlIGRpc2FibGVfYWxsIGRpc2FsbG93IGRpc2Fzc29jaWF0ZSBkaXNjYXJkZmlsZSBkaXNjb25uZWN0IGRpc2tncm91cCBkaXN0aW5jdCBkaXN0aW5jdHJvdyBkaXN0cmlidXRlIGRpc3RyaWJ1dGVkIGRpdiBkbyBkb2N1bWVudCBkb21haW4gZG90bmV0IGRvdWJsZSBkb3duZ3JhZGUgZHJvcCBkdW1wZmlsZSBkdXBsaWNhdGUgZHVyYXRpb24gZWFjaCBlZGl0aW9uIGVkaXRpb25hYmxlIGVkaXRpb25zIGVsZW1lbnQgZWxsaXBzaXMgZWxzZSBlbHNpZiBlbHQgZW1wdHkgZW5hYmxlIGVuYWJsZV9hbGwgZW5jbG9zZWQgZW5jb2RlIGVuY29kaW5nIGVuY3J5cHQgZW5kIGVuZC1leGVjIGVuZGlhbiBlbmZvcmNlZCBlbmdpbmUgZW5naW5lcyBlbnF1ZXVlIGVudGVycHJpc2UgZW50aXR5ZXNjYXBpbmcgZW9tb250aCBlcnJvciBlcnJvcnMgZXNjYXBlZCBldmFsbmFtZSBldmFsdWF0ZSBldmVudCBldmVudGRhdGEgZXZlbnRzIGV4Y2VwdCBleGNlcHRpb24gZXhjZXB0aW9ucyBleGNoYW5nZSBleGNsdWRlIGV4Y2x1ZGluZyBleGVjdSBleGVjdXQgZXhlY3V0ZSBleGVtcHQgZXhpc3RzIGV4aXQgZXhwIGV4cGlyZSBleHBsYWluIGV4cGxvZGUgZXhwb3J0IGV4cG9ydF9zZXQgZXh0ZW5kZWQgZXh0ZW50IGV4dGVybmFsIGV4dGVybmFsXzEgZXh0ZXJuYWxfMiBleHRlcm5hbGx5IGV4dHJhY3QgZmFpbGVkIGZhaWxlZF9sb2dpbl9hdHRlbXB0cyBmYWlsb3ZlciBmYWlsdXJlIGZhciBmYXN0IGZlYXR1cmVfc2V0IGZlYXR1cmVfdmFsdWUgZmV0Y2ggZmllbGQgZmllbGRzIGZpbGUgZmlsZV9uYW1lX2NvbnZlcnQgZmlsZXN5c3RlbV9saWtlX2xvZ2dpbmcgZmluYWwgZmluaXNoIGZpcnN0IGZpcnN0X3ZhbHVlIGZpeGVkIGZsYXNoX2NhY2hlIGZsYXNoYmFjayBmbG9vciBmbHVzaCBmb2xsb3dpbmcgZm9sbG93cyBmb3IgZm9yYWxsIGZvcmNlIGZvcmVpZ24gZm9ybSBmb3JtYSBmb3JtYXQgZm91bmQgZm91bmRfcm93cyBmcmVlbGlzdCBmcmVlbGlzdHMgZnJlZXBvb2xzIGZyZXNoIGZyb20gZnJvbV9iYXNlNjQgZnJvbV9kYXlzIGZ0cCBmdWxsIGZ1bmN0aW9uIGdlbmVyYWwgZ2VuZXJhdGVkIGdldCBnZXRfZm9ybWF0IGdldF9sb2NrIGdldGRhdGUgZ2V0dXRjZGF0ZSBnbG9iYWwgZ2xvYmFsX25hbWUgZ2xvYmFsbHkgZ28gZ290byBncmFudCBncmFudHMgZ3JlYXRlc3QgZ3JvdXAgZ3JvdXBfY29uY2F0IGdyb3VwX2lkIGdyb3VwaW5nIGdyb3VwaW5nX2lkIGdyb3VwcyBndGlkX3N1YnRyYWN0IGd1YXJhbnRlZSBndWFyZCBoYW5kbGVyIGhhc2ggaGFzaGtleXMgaGF2aW5nIGhlYSBoZWFkIGhlYWRpIGhlYWRpbiBoZWFkaW5nIGhlYXAgaGVscCBoZXggaGllcmFyY2h5IGhpZ2ggaGlnaF9wcmlvcml0eSBob3N0cyBob3VyIGhvdXJzIGh0dHAgaWQgaWRlbnRfY3VycmVudCBpZGVudF9pbmNyIGlkZW50X3NlZWQgaWRlbnRpZmllZCBpZGVudGl0eSBpZGxlX3RpbWUgaWYgaWZudWxsIGlnbm9yZSBpaWYgaWxpa2UgaWxtIGltbWVkaWF0ZSBpbXBvcnQgaW4gaW5jbHVkZSBpbmNsdWRpbmcgaW5jcmVtZW50IGluZGV4IGluZGV4ZXMgaW5kZXhpbmcgaW5kZXh0eXBlIGluZGljYXRvciBpbmRpY2VzIGluZXQ2X2F0b24gaW5ldDZfbnRvYSBpbmV0X2F0b24gaW5ldF9udG9hIGluZmlsZSBpbml0aWFsIGluaXRpYWxpemVkIGluaXRpYWxseSBpbml0cmFucyBpbm1lbW9yeSBpbm5lciBpbm5vZGIgaW5wdXQgaW5zZXJ0IGluc3RhbGwgaW5zdGFuY2UgaW5zdGFudGlhYmxlIGluc3RyIGludGVyZmFjZSBpbnRlcmxlYXZlZCBpbnRlcnNlY3QgaW50byBpbnZhbGlkYXRlIGludmlzaWJsZSBpcyBpc19mcmVlX2xvY2sgaXNfaXB2NCBpc19pcHY0X2NvbXBhdCBpc19ub3QgaXNfbm90X251bGwgaXNfdXNlZF9sb2NrIGlzZGF0ZSBpc251bGwgaXNvbGF0aW9uIGl0ZXJhdGUgamF2YSBqb2luIGpzb24ganNvbl9leGlzdHMga2VlcCBrZWVwX2R1cGxpY2F0ZXMga2V5IGtleXMga2lsbCBsYW5ndWFnZSBsYXJnZSBsYXN0IGxhc3RfZGF5IGxhc3RfaW5zZXJ0X2lkIGxhc3RfdmFsdWUgbGF0ZXJhbCBsYXggbGNhc2UgbGVhZCBsZWFkaW5nIGxlYXN0IGxlYXZlcyBsZWZ0IGxlbiBsZW5naHQgbGVuZ3RoIGxlc3MgbGV2ZWwgbGV2ZWxzIGxpYnJhcnkgbGlrZSBsaWtlMiBsaWtlNCBsaWtlYyBsaW1pdCBsaW5lcyBsaW5rIGxpc3QgbGlzdGFnZyBsaXR0bGUgbG4gbG9hZCBsb2FkX2ZpbGUgbG9iIGxvYnMgbG9jYWwgbG9jYWx0aW1lIGxvY2FsdGltZXN0YW1wIGxvY2F0ZSBsb2NhdG9yIGxvY2sgbG9ja2VkIGxvZyBsb2cxMCBsb2cyIGxvZ2ZpbGUgbG9nZmlsZXMgbG9nZ2luZyBsb2dpY2FsIGxvZ2ljYWxfcmVhZHNfcGVyX2NhbGwgbG9nb2ZmIGxvZ29uIGxvZ3MgbG9uZyBsb29wIGxvdyBsb3dfcHJpb3JpdHkgbG93ZXIgbHBhZCBscnRyaW0gbHRyaW0gbWFpbiBtYWtlX3NldCBtYWtlZGF0ZSBtYWtldGltZSBtYW5hZ2VkIG1hbmFnZW1lbnQgbWFudWFsIG1hcCBtYXBwaW5nIG1hc2sgbWFzdGVyIG1hc3Rlcl9wb3Nfd2FpdCBtYXRjaCBtYXRjaGVkIG1hdGVyaWFsaXplZCBtYXggbWF4ZXh0ZW50cyBtYXhpbWl6ZSBtYXhpbnN0YW5jZXMgbWF4bGVuIG1heGxvZ2ZpbGVzIG1heGxvZ2hpc3RvcnkgbWF4bG9nbWVtYmVycyBtYXhzaXplIG1heHRyYW5zIG1kNSBtZWFzdXJlcyBtZWRpYW4gbWVkaXVtIG1lbWJlciBtZW1jb21wcmVzcyBtZW1vcnkgbWVyZ2UgbWljcm9zZWNvbmQgbWlkIG1pZ3JhdGlvbiBtaW4gbWluZXh0ZW50cyBtaW5pbXVtIG1pbmluZyBtaW51cyBtaW51dGUgbWludXRlcyBtaW52YWx1ZSBtaXNzaW5nIG1vZCBtb2RlIG1vZGVsIG1vZGlmaWNhdGlvbiBtb2RpZnkgbW9kdWxlIG1vbml0b3JpbmcgbW9udGggbW9udGhzIG1vdW50IG1vdmUgbW92ZW1lbnQgbXVsdGlzZXQgbXV0ZXggbmFtZSBuYW1lX2NvbnN0IG5hbWVzIG5hbiBuYXRpb25hbCBuYXRpdmUgbmF0dXJhbCBuYXYgbmNoYXIgbmNsb2IgbmVzdGVkIG5ldmVyIG5ldyBuZXdsaW5lIG5leHQgbmV4dHZhbCBubyBub193cml0ZV90b19iaW5sb2cgbm9hcmNoaXZlbG9nIG5vYXVkaXQgbm9iYWRmaWxlIG5vY2hlY2sgbm9jb21wcmVzcyBub2NvcHkgbm9jeWNsZSBub2RlbGF5IG5vZGlzY2FyZGZpbGUgbm9lbnRpdHllc2NhcGluZyBub2d1YXJhbnRlZSBub2tlZXAgbm9sb2dmaWxlIG5vbWFwcGluZyBub21heHZhbHVlIG5vbWluaW1pemUgbm9taW52YWx1ZSBub21vbml0b3Jpbmcgbm9uZSBub25lZGl0aW9uYWJsZSBub25zY2hlbWEgbm9vcmRlciBub3ByIG5vcHJvIG5vcHJvbSBub3Byb21wIG5vcHJvbXB0IG5vcmVseSBub3Jlc2V0bG9ncyBub3JldmVyc2Ugbm9ybWFsIG5vcm93ZGVwZW5kZW5jaWVzIG5vc2NoZW1hY2hlY2sgbm9zd2l0Y2ggbm90IG5vdGhpbmcgbm90aWNlIG5vdG51bGwgbm90cmltIG5vdmFsaWRhdGUgbm93IG5vd2FpdCBudGhfdmFsdWUgbnVsbGlmIG51bGxzIG51bSBudW1iIG51bWJlIG52YXJjaGFyIG52YXJjaGFyMiBvYmplY3Qgb2NpY29sbCBvY2lkYXRlIG9jaWRhdGV0aW1lIG9jaWR1cmF0aW9uIG9jaWludGVydmFsIG9jaWxvYmxvY2F0b3Igb2NpbnVtYmVyIG9jaXJlZiBvY2lyZWZjdXJzb3Igb2Npcm93aWQgb2Npc3RyaW5nIG9jaXR5cGUgb2N0IG9jdGV0X2xlbmd0aCBvZiBvZmYgb2ZmbGluZSBvZmZzZXQgb2lkIG9pZGluZGV4IG9sZCBvbiBvbmxpbmUgb25seSBvcGFxdWUgb3BlbiBvcGVyYXRpb25zIG9wZXJhdG9yIG9wdGltYWwgb3B0aW1pemUgb3B0aW9uIG9wdGlvbmFsbHkgb3Igb3JhY2xlIG9yYWNsZV9kYXRlIG9yYWRhdGEgb3JkIG9yZGF1ZGlvIG9yZGRpY29tIG9yZGRvYyBvcmRlciBvcmRpbWFnZSBvcmRpbmFsaXR5IG9yZHZpZGVvIG9yZ2FuaXphdGlvbiBvcmxhbnkgb3JsdmFyeSBvdXQgb3V0ZXIgb3V0ZmlsZSBvdXRsaW5lIG91dHB1dCBvdmVyIG92ZXJmbG93IG92ZXJyaWRpbmcgcGFja2FnZSBwYWQgcGFyYWxsZWwgcGFyYWxsZWxfZW5hYmxlIHBhcmFtZXRlcnMgcGFyZW50IHBhcnNlIHBhcnRpYWwgcGFydGl0aW9uIHBhcnRpdGlvbnMgcGFzY2FsIHBhc3NpbmcgcGFzc3dvcmQgcGFzc3dvcmRfZ3JhY2VfdGltZSBwYXNzd29yZF9sb2NrX3RpbWUgcGFzc3dvcmRfcmV1c2VfbWF4IHBhc3N3b3JkX3JldXNlX3RpbWUgcGFzc3dvcmRfdmVyaWZ5X2Z1bmN0aW9uIHBhdGNoIHBhdGggcGF0aW5kZXggcGN0aW5jcmVhc2UgcGN0dGhyZXNob2xkIHBjdHVzZWQgcGN0dmVyc2lvbiBwZXJjZW50IHBlcmNlbnRfcmFuayBwZXJjZW50aWxlX2NvbnQgcGVyY2VudGlsZV9kaXNjIHBlcmZvcm1hbmNlIHBlcmlvZCBwZXJpb2RfYWRkIHBlcmlvZF9kaWZmIHBlcm1hbmVudCBwaHlzaWNhbCBwaSBwaXBlIHBpcGVsaW5lZCBwaXZvdCBwbHVnZ2FibGUgcGx1Z2luIHBvbGljeSBwb3NpdGlvbiBwb3N0X3RyYW5zYWN0aW9uIHBvdyBwb3dlciBwcmFnbWEgcHJlYnVpbHQgcHJlY2VkZXMgcHJlY2VkaW5nIHByZWNpc2lvbiBwcmVkaWN0aW9uIHByZWRpY3Rpb25fY29zdCBwcmVkaWN0aW9uX2RldGFpbHMgcHJlZGljdGlvbl9wcm9iYWJpbGl0eSBwcmVkaWN0aW9uX3NldCBwcmVwYXJlIHByZXNlbnQgcHJlc2VydmUgcHJpb3IgcHJpb3JpdHkgcHJpdmF0ZSBwcml2YXRlX3NnYSBwcml2aWxlZ2VzIHByb2NlZHVyYWwgcHJvY2VkdXJlIHByb2NlZHVyZV9hbmFseXplIHByb2Nlc3NsaXN0IHByb2ZpbGVzIHByb2plY3QgcHJvbXB0IHByb3RlY3Rpb24gcHVibGljIHB1Ymxpc2hpbmdzZXJ2ZXJuYW1lIHB1cmdlIHF1YXJ0ZXIgcXVlcnkgcXVpY2sgcXVpZXNjZSBxdW90YSBxdW90ZW5hbWUgcmFkaWFucyByYWlzZSByYW5kIHJhbmdlIHJhbmsgcmF3IHJlYWQgcmVhZHMgcmVhZHNpemUgcmVidWlsZCByZWNvcmQgcmVjb3JkcyByZWNvdmVyIHJlY292ZXJ5IHJlY3Vyc2l2ZSByZWN5Y2xlIHJlZG8gcmVkdWNlZCByZWYgcmVmZXJlbmNlIHJlZmVyZW5jZWQgcmVmZXJlbmNlcyByZWZlcmVuY2luZyByZWZyZXNoIHJlZ2V4cF9saWtlIHJlZ2lzdGVyIHJlZ3JfYXZneCByZWdyX2F2Z3kgcmVncl9jb3VudCByZWdyX2ludGVyY2VwdCByZWdyX3IyIHJlZ3Jfc2xvcGUgcmVncl9zeHggcmVncl9zeHkgcmVqZWN0IHJla2V5IHJlbGF0aW9uYWwgcmVsYXRpdmUgcmVsYXlsb2cgcmVsZWFzZSByZWxlYXNlX2xvY2sgcmVsaWVzX29uIHJlbG9jYXRlIHJlbHkgcmVtIHJlbWFpbmRlciByZW5hbWUgcmVwYWlyIHJlcGVhdCByZXBsYWNlIHJlcGxpY2F0ZSByZXBsaWNhdGlvbiByZXF1aXJlZCByZXNldCByZXNldGxvZ3MgcmVzaXplIHJlc291cmNlIHJlc3BlY3QgcmVzdG9yZSByZXN0cmljdGVkIHJlc3VsdCByZXN1bHRfY2FjaGUgcmVzdW1hYmxlIHJlc3VtZSByZXRlbnRpb24gcmV0dXJuIHJldHVybmluZyByZXR1cm5zIHJldXNlIHJldmVyc2UgcmV2b2tlIHJpZ2h0IHJsaWtlIHJvbGUgcm9sZXMgcm9sbGJhY2sgcm9sbGluZyByb2xsdXAgcm91bmQgcm93IHJvd19jb3VudCByb3dkZXBlbmRlbmNpZXMgcm93aWQgcm93bnVtIHJvd3MgcnRyaW0gcnVsZXMgc2FmZSBzYWx0IHNhbXBsZSBzYXZlIHNhdmVwb2ludCBzYjEgc2IyIHNiNCBzY2FuIHNjaGVtYSBzY2hlbWFjaGVjayBzY24gc2NvcGUgc2Nyb2xsIHNkb19nZW9yYXN0ZXIgc2RvX3RvcG9fZ2VvbWV0cnkgc2VhcmNoIHNlY190b190aW1lIHNlY29uZCBzZWNvbmRzIHNlY3Rpb24gc2VjdXJlZmlsZSBzZWN1cml0eSBzZWVkIHNlZ21lbnQgc2VsZWN0IHNlbGYgc2VtaSBzZXF1ZW5jZSBzZXF1ZW50aWFsIHNlcmlhbGl6YWJsZSBzZXJ2ZXIgc2VydmVyZXJyb3Igc2Vzc2lvbiBzZXNzaW9uX3VzZXIgc2Vzc2lvbnNfcGVyX3VzZXIgc2V0IHNldHMgc2V0dGluZ3Mgc2hhIHNoYTEgc2hhMiBzaGFyZSBzaGFyZWQgc2hhcmVkX3Bvb2wgc2hvcnQgc2hvdyBzaHJpbmsgc2h1dGRvd24gc2lfYXZlcmFnZWNvbG9yIHNpX2NvbG9yaGlzdG9ncmFtIHNpX2ZlYXR1cmVsaXN0IHNpX3Bvc2l0aW9uYWxjb2xvciBzaV9zdGlsbGltYWdlIHNpX3RleHR1cmUgc2libGluZ3Mgc2lkIHNpZ24gc2luIHNpemUgc2l6ZV90IHNpemVzIHNraXAgc2xhdmUgc2xlZXAgc21hbGxkYXRldGltZWZyb21wYXJ0cyBzbWFsbGZpbGUgc25hcHNob3Qgc29tZSBzb25hbWUgc29ydCBzb3VuZGV4IHNvdXJjZSBzcGFjZSBzcGFyc2Ugc3BmaWxlIHNwbGl0IHNxbCBzcWxfYmlnX3Jlc3VsdCBzcWxfYnVmZmVyX3Jlc3VsdCBzcWxfY2FjaGUgc3FsX2NhbGNfZm91bmRfcm93cyBzcWxfc21hbGxfcmVzdWx0IHNxbF92YXJpYW50X3Byb3BlcnR5IHNxbGNvZGUgc3FsZGF0YSBzcWxlcnJvciBzcWxuYW1lIHNxbHN0YXRlIHNxcnQgc3F1YXJlIHN0YW5kYWxvbmUgc3RhbmRieSBzdGFydCBzdGFydGluZyBzdGFydHVwIHN0YXRlbWVudCBzdGF0aWMgc3RhdGlzdGljcyBzdGF0c19iaW5vbWlhbF90ZXN0IHN0YXRzX2Nyb3NzdGFiIHN0YXRzX2tzX3Rlc3Qgc3RhdHNfbW9kZSBzdGF0c19td190ZXN0IHN0YXRzX29uZV93YXlfYW5vdmEgc3RhdHNfdF90ZXN0XyBzdGF0c190X3Rlc3RfaW5kZXAgc3RhdHNfdF90ZXN0X29uZSBzdGF0c190X3Rlc3RfcGFpcmVkIHN0YXRzX3dzcl90ZXN0IHN0YXR1cyBzdGQgc3RkZGV2IHN0ZGRldl9wb3Agc3RkZGV2X3NhbXAgc3RkZXYgc3RvcCBzdG9yYWdlIHN0b3JlIHN0b3JlZCBzdHIgc3RyX3RvX2RhdGUgc3RyYWlnaHRfam9pbiBzdHJjbXAgc3RyaWN0IHN0cmluZyBzdHJ1Y3Qgc3R1ZmYgc3R5bGUgc3ViZGF0ZSBzdWJwYXJ0aXRpb24gc3VicGFydGl0aW9ucyBzdWJzdGl0dXRhYmxlIHN1YnN0ciBzdWJzdHJpbmcgc3VidGltZSBzdWJ0cmluZ19pbmRleCBzdWJ0eXBlIHN1Y2Nlc3Mgc3VtIHN1c3BlbmQgc3dpdGNoIHN3aXRjaG9mZnNldCBzd2l0Y2hvdmVyIHN5bmMgc3luY2hyb25vdXMgc3lub255bSBzeXMgc3lzX3htbGFnZyBzeXNhc20gc3lzYXV4IHN5c2RhdGUgc3lzZGF0ZXRpbWVvZmZzZXQgc3lzZGJhIHN5c29wZXIgc3lzdGVtIHN5c3RlbV91c2VyIHN5c3V0Y2RhdGV0aW1lIHRhYmxlIHRhYmxlcyB0YWJsZXNwYWNlIHRhYmxlc2FtcGxlIHRhbiB0ZG8gdGVtcGxhdGUgdGVtcG9yYXJ5IHRlcm1pbmF0ZWQgdGVydGlhcnlfd2VpZ2h0cyB0ZXN0IHRoYW4gdGhlbiB0aHJlYWQgdGhyb3VnaCB0aWVyIHRpZXMgdGltZSB0aW1lX2Zvcm1hdCB0aW1lX3pvbmUgdGltZWRpZmYgdGltZWZyb21wYXJ0cyB0aW1lb3V0IHRpbWVzdGFtcCB0aW1lc3RhbXBhZGQgdGltZXN0YW1wZGlmZiB0aW1lem9uZV9hYmJyIHRpbWV6b25lX21pbnV0ZSB0aW1lem9uZV9yZWdpb24gdG8gdG9fYmFzZTY0IHRvX2RhdGUgdG9fZGF5cyB0b19zZWNvbmRzIHRvZGF0ZXRpbWVvZmZzZXQgdHJhY2UgdHJhY2tpbmcgdHJhbnNhY3Rpb24gdHJhbnNhY3Rpb25hbCB0cmFuc2xhdGUgdHJhbnNsYXRpb24gdHJlYXQgdHJpZ2dlciB0cmlnZ2VyX25lc3RsZXZlbCB0cmlnZ2VycyB0cmltIHRydW5jYXRlIHRyeV9jYXN0IHRyeV9jb252ZXJ0IHRyeV9wYXJzZSB0eXBlIHViMSB1YjIgdWI0IHVjYXNlIHVuYXJjaGl2ZWQgdW5ib3VuZGVkIHVuY29tcHJlc3MgdW5kZXIgdW5kbyB1bmhleCB1bmljb2RlIHVuaWZvcm0gdW5pbnN0YWxsIHVuaW9uIHVuaXF1ZSB1bml4X3RpbWVzdGFtcCB1bmtub3duIHVubGltaXRlZCB1bmxvY2sgdW5uZXN0IHVucGl2b3QgdW5yZWNvdmVyYWJsZSB1bnNhZmUgdW5zaWduZWQgdW50aWwgdW50cnVzdGVkIHVudXNhYmxlIHVudXNlZCB1cGRhdGUgdXBkYXRlZCB1cGdyYWRlIHVwcGVkIHVwcGVyIHVwc2VydCB1cmwgdXJvd2lkIHVzYWJsZSB1c2FnZSB1c2UgdXNlX3N0b3JlZF9vdXRsaW5lcyB1c2VyIHVzZXJfZGF0YSB1c2VyX3Jlc291cmNlcyB1c2VycyB1c2luZyB1dGNfZGF0ZSB1dGNfdGltZXN0YW1wIHV1aWQgdXVpZF9zaG9ydCB2YWxpZGF0ZSB2YWxpZGF0ZV9wYXNzd29yZF9zdHJlbmd0aCB2YWxpZGF0aW9uIHZhbGlzdCB2YWx1ZSB2YWx1ZXMgdmFyIHZhcl9zYW1wIHZhcmNoYXJjIHZhcmkgdmFyaWEgdmFyaWFiIHZhcmlhYmwgdmFyaWFibGUgdmFyaWFibGVzIHZhcmlhbmNlIHZhcnAgdmFycmF3IHZhcnJhd2MgdmFycmF5IHZlcmlmeSB2ZXJzaW9uIHZlcnNpb25zIHZpZXcgdmlydHVhbCB2aXNpYmxlIHZvaWQgd2FpdCB3YWxsZXQgd2FybmluZyB3YXJuaW5ncyB3ZWVrIHdlZWtkYXkgd2Vla29meWVhciB3ZWxsZm9ybWVkIHdoZW4gd2hlbmUgd2hlbmV2IHdoZW5ldmUgd2hlbmV2ZXIgd2hlcmUgd2hpbGUgd2hpdGVzcGFjZSB3aW5kb3cgd2l0aCB3aXRoaW4gd2l0aG91dCB3b3JrIHdyYXBwZWQgeGRiIHhtbCB4bWxhZ2cgeG1sYXR0cmlidXRlcyB4bWxjYXN0IHhtbGNvbGF0dHZhbCB4bWxlbGVtZW50IHhtbGV4aXN0cyB4bWxmb3Jlc3QgeG1saW5kZXggeG1sbmFtZXNwYWNlcyB4bWxwaSB4bWxxdWVyeSB4bWxyb290IHhtbHNjaGVtYSB4bWxzZXJpYWxpemUgeG1sdGFibGUgeG1sdHlwZSB4b3IgeWVhciB5ZWFyX3RvX21vbnRoIHllYXJzIHllYXJ3ZWVrIixsaXRlcmFsOiJ0cnVlIGZhbHNlIG51bGwgdW5rbm93biIsYnVpbHRfaW46ImFycmF5IGJpZ2ludCBiaW5hcnkgYml0IGJsb2IgYm9vbCBib29sZWFuIGNoYXIgY2hhcmFjdGVyIGRhdGUgZGVjIGRlY2ltYWwgZmxvYXQgaW50IGludDggaW50ZWdlciBpbnRlcnZhbCBudW1iZXIgbnVtZXJpYyByZWFsIHJlY29yZCBzZXJpYWwgc2VyaWFsOCBzbWFsbGludCB0ZXh0IHRpbWUgdGltZXN0YW1wIHRpbnlpbnQgdmFyY2hhciB2YXJjaGFyMiB2YXJ5aW5nIHZvaWQifSxjb250YWluczpbe2NsYXNzTmFtZToic3RyaW5nIixiZWdpbjoiJyIsZW5kOiInIixjb250YWluczpbe2JlZ2luOiInJyJ9XX0se2NsYXNzTmFtZToic3RyaW5nIixiZWdpbjonIicsZW5kOiciJyxjb250YWluczpbe2JlZ2luOiciIid9XX0se2NsYXNzTmFtZToic3RyaW5nIixiZWdpbjoiYCIsZW5kOiJgIn0sZS5DX05VTUJFUl9NT0RFLGUuQ19CTE9DS19DT01NRU5UX01PREUsdCxlLkhBU0hfQ09NTUVOVF9NT0RFXX0sZS5DX0JMT0NLX0NPTU1FTlRfTU9ERSx0LGUuSEFTSF9DT01NRU5UX01PREVdfX1zLmV4cG9ydHM9cn0sNDgzMTQ6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihlKXtjb25zdCB0PVsiZnVuY3Rpb25zIiwibW9kZWwiLCJkYXRhIiwicGFyYW1ldGVycyIsInF1YW50aXRpZXMiLCJ0cmFuc2Zvcm1lZCIsImdlbmVyYXRlZCJdLG49WyJmb3IiLCJpbiIsImlmIiwiZWxzZSIsIndoaWxlIiwiYnJlYWsiLCJjb250aW51ZSIsInJldHVybiJdLGE9WyJwcmludCIsInJlamVjdCIsImluY3JlbWVudF9sb2dfcHJvYnwxMCIsImludGVncmF0ZV9vZGV8MTAiLCJpbnRlZ3JhdGVfb2RlX3JrNDV8MTAiLCJpbnRlZ3JhdGVfb2RlX2JkZnwxMCIsImFsZ2VicmFfc29sdmVyIl0saT1bImludCIsInJlYWwiLCJ2ZWN0b3IiLCJvcmRlcmVkIiwicG9zaXRpdmVfb3JkZXJlZCIsInNpbXBsZXgiLCJ1bml0X3ZlY3RvciIsInJvd192ZWN0b3IiLCJtYXRyaXgiLCJjaG9sZXNreV9mYWN0b3JfY29ycnwxMCIsImNob2xlc2t5X2ZhY3Rvcl9jb3Z8MTAiLCJjb3JyX21hdHJpeHwxMCIsImNvdl9tYXRyaXh8MTAiLCJ2b2lkIl0sbz1bIlBoaSIsIlBoaV9hcHByb3giLCJhYnMiLCJhY29zIiwiYWNvc2giLCJhbGdlYnJhX3NvbHZlciIsImFwcGVuZF9hcnJheSIsImFwcGVuZF9jb2wiLCJhcHBlbmRfcm93IiwiYXNpbiIsImFzaW5oIiwiYXRhbiIsImF0YW4yIiwiYXRhbmgiLCJiZXJub3VsbGlfY2RmIiwiYmVybm91bGxpX2xjY2RmIiwiYmVybm91bGxpX2xjZGYiLCJiZXJub3VsbGlfbG9naXRfbHBtZiIsImJlcm5vdWxsaV9sb2dpdF9ybmciLCJiZXJub3VsbGlfbHBtZiIsImJlcm5vdWxsaV9ybmciLCJiZXNzZWxfZmlyc3Rfa2luZCIsImJlc3NlbF9zZWNvbmRfa2luZCIsImJldGFfYmlub21pYWxfY2RmIiwiYmV0YV9iaW5vbWlhbF9sY2NkZiIsImJldGFfYmlub21pYWxfbGNkZiIsImJldGFfYmlub21pYWxfbHBtZiIsImJldGFfYmlub21pYWxfcm5nIiwiYmV0YV9jZGYiLCJiZXRhX2xjY2RmIiwiYmV0YV9sY2RmIiwiYmV0YV9scGRmIiwiYmV0YV9ybmciLCJiaW5hcnlfbG9nX2xvc3MiLCJiaW5vbWlhbF9jZGYiLCJiaW5vbWlhbF9jb2VmZmljaWVudF9sb2ciLCJiaW5vbWlhbF9sY2NkZiIsImJpbm9taWFsX2xjZGYiLCJiaW5vbWlhbF9sb2dpdF9scG1mIiwiYmlub21pYWxfbHBtZiIsImJpbm9taWFsX3JuZyIsImJsb2NrIiwiY2F0ZWdvcmljYWxfbG9naXRfbHBtZiIsImNhdGVnb3JpY2FsX2xvZ2l0X3JuZyIsImNhdGVnb3JpY2FsX2xwbWYiLCJjYXRlZ29yaWNhbF9ybmciLCJjYXVjaHlfY2RmIiwiY2F1Y2h5X2xjY2RmIiwiY2F1Y2h5X2xjZGYiLCJjYXVjaHlfbHBkZiIsImNhdWNoeV9ybmciLCJjYnJ0IiwiY2VpbCIsImNoaV9zcXVhcmVfY2RmIiwiY2hpX3NxdWFyZV9sY2NkZiIsImNoaV9zcXVhcmVfbGNkZiIsImNoaV9zcXVhcmVfbHBkZiIsImNoaV9zcXVhcmVfcm5nIiwiY2hvbGVza3lfZGVjb21wb3NlIiwiY2hvb3NlIiwiY29sIiwiY29scyIsImNvbHVtbnNfZG90X3Byb2R1Y3QiLCJjb2x1bW5zX2RvdF9zZWxmIiwiY29zIiwiY29zaCIsImNvdl9leHBfcXVhZCIsImNyb3NzcHJvZCIsImNzcl9leHRyYWN0X3UiLCJjc3JfZXh0cmFjdF92IiwiY3NyX2V4dHJhY3RfdyIsImNzcl9tYXRyaXhfdGltZXNfdmVjdG9yIiwiY3NyX3RvX2RlbnNlX21hdHJpeCIsImN1bXVsYXRpdmVfc3VtIiwiZGV0ZXJtaW5hbnQiLCJkaWFnX21hdHJpeCIsImRpYWdfcG9zdF9tdWx0aXBseSIsImRpYWdfcHJlX211bHRpcGx5IiwiZGlhZ29uYWwiLCJkaWdhbW1hIiwiZGltcyIsImRpcmljaGxldF9scGRmIiwiZGlyaWNobGV0X3JuZyIsImRpc3RhbmNlIiwiZG90X3Byb2R1Y3QiLCJkb3Rfc2VsZiIsImRvdWJsZV9leHBvbmVudGlhbF9jZGYiLCJkb3VibGVfZXhwb25lbnRpYWxfbGNjZGYiLCJkb3VibGVfZXhwb25lbnRpYWxfbGNkZiIsImRvdWJsZV9leHBvbmVudGlhbF9scGRmIiwiZG91YmxlX2V4cG9uZW50aWFsX3JuZyIsImUiLCJlaWdlbnZhbHVlc19zeW0iLCJlaWdlbnZlY3RvcnNfc3ltIiwiZXJmIiwiZXJmYyIsImV4cCIsImV4cDIiLCJleHBfbW9kX25vcm1hbF9jZGYiLCJleHBfbW9kX25vcm1hbF9sY2NkZiIsImV4cF9tb2Rfbm9ybWFsX2xjZGYiLCJleHBfbW9kX25vcm1hbF9scGRmIiwiZXhwX21vZF9ub3JtYWxfcm5nIiwiZXhwbTEiLCJleHBvbmVudGlhbF9jZGYiLCJleHBvbmVudGlhbF9sY2NkZiIsImV4cG9uZW50aWFsX2xjZGYiLCJleHBvbmVudGlhbF9scGRmIiwiZXhwb25lbnRpYWxfcm5nIiwiZmFicyIsImZhbGxpbmdfZmFjdG9yaWFsIiwiZmRpbSIsImZsb29yIiwiZm1hIiwiZm1heCIsImZtaW4iLCJmbW9kIiwiZnJlY2hldF9jZGYiLCJmcmVjaGV0X2xjY2RmIiwiZnJlY2hldF9sY2RmIiwiZnJlY2hldF9scGRmIiwiZnJlY2hldF9ybmciLCJnYW1tYV9jZGYiLCJnYW1tYV9sY2NkZiIsImdhbW1hX2xjZGYiLCJnYW1tYV9scGRmIiwiZ2FtbWFfcCIsImdhbW1hX3EiLCJnYW1tYV9ybmciLCJnYXVzc2lhbl9kbG1fb2JzX2xwZGYiLCJnZXRfbHAiLCJndW1iZWxfY2RmIiwiZ3VtYmVsX2xjY2RmIiwiZ3VtYmVsX2xjZGYiLCJndW1iZWxfbHBkZiIsImd1bWJlbF9ybmciLCJoZWFkIiwiaHlwZXJnZW9tZXRyaWNfbHBtZiIsImh5cGVyZ2VvbWV0cmljX3JuZyIsImh5cG90IiwiaW5jX2JldGEiLCJpbnRfc3RlcCIsImludGVncmF0ZV9vZGUiLCJpbnRlZ3JhdGVfb2RlX2JkZiIsImludGVncmF0ZV9vZGVfcms0NSIsImludiIsImludl9QaGkiLCJpbnZfY2hpX3NxdWFyZV9jZGYiLCJpbnZfY2hpX3NxdWFyZV9sY2NkZiIsImludl9jaGlfc3F1YXJlX2xjZGYiLCJpbnZfY2hpX3NxdWFyZV9scGRmIiwiaW52X2NoaV9zcXVhcmVfcm5nIiwiaW52X2Nsb2dsb2ciLCJpbnZfZ2FtbWFfY2RmIiwiaW52X2dhbW1hX2xjY2RmIiwiaW52X2dhbW1hX2xjZGYiLCJpbnZfZ2FtbWFfbHBkZiIsImludl9nYW1tYV9ybmciLCJpbnZfbG9naXQiLCJpbnZfc3FydCIsImludl9zcXVhcmUiLCJpbnZfd2lzaGFydF9scGRmIiwiaW52X3dpc2hhcnRfcm5nIiwiaW52ZXJzZSIsImludmVyc2Vfc3BkIiwiaXNfaW5mIiwiaXNfbmFuIiwibGJldGEiLCJsY2hvb3NlIiwibGdhbW1hIiwibGtqX2NvcnJfY2hvbGVza3lfbHBkZiIsImxral9jb3JyX2Nob2xlc2t5X3JuZyIsImxral9jb3JyX2xwZGYiLCJsa2pfY29ycl9ybmciLCJsbWdhbW1hIiwibG11bHRpcGx5IiwibG9nIiwibG9nMTAiLCJsb2cxbSIsImxvZzFtX2V4cCIsImxvZzFtX2ludl9sb2dpdCIsImxvZzFwIiwibG9nMXBfZXhwIiwibG9nMiIsImxvZ19kZXRlcm1pbmFudCIsImxvZ19kaWZmX2V4cCIsImxvZ19mYWxsaW5nX2ZhY3RvcmlhbCIsImxvZ19pbnZfbG9naXQiLCJsb2dfbWl4IiwibG9nX3Jpc2luZ19mYWN0b3JpYWwiLCJsb2dfc29mdG1heCIsImxvZ19zdW1fZXhwIiwibG9naXN0aWNfY2RmIiwibG9naXN0aWNfbGNjZGYiLCJsb2dpc3RpY19sY2RmIiwibG9naXN0aWNfbHBkZiIsImxvZ2lzdGljX3JuZyIsImxvZ2l0IiwibG9nbm9ybWFsX2NkZiIsImxvZ25vcm1hbF9sY2NkZiIsImxvZ25vcm1hbF9sY2RmIiwibG9nbm9ybWFsX2xwZGYiLCJsb2dub3JtYWxfcm5nIiwibWFjaGluZV9wcmVjaXNpb24iLCJtYXRyaXhfZXhwIiwibWF4IiwibWRpdmlkZV9sZWZ0X3NwZCIsIm1kaXZpZGVfbGVmdF90cmlfbG93IiwibWRpdmlkZV9yaWdodF9zcGQiLCJtZGl2aWRlX3JpZ2h0X3RyaV9sb3ciLCJtZWFuIiwibWluIiwibW9kaWZpZWRfYmVzc2VsX2ZpcnN0X2tpbmQiLCJtb2RpZmllZF9iZXNzZWxfc2Vjb25kX2tpbmQiLCJtdWx0aV9ncF9jaG9sZXNreV9scGRmIiwibXVsdGlfZ3BfbHBkZiIsIm11bHRpX25vcm1hbF9jaG9sZXNreV9scGRmIiwibXVsdGlfbm9ybWFsX2Nob2xlc2t5X3JuZyIsIm11bHRpX25vcm1hbF9scGRmIiwibXVsdGlfbm9ybWFsX3ByZWNfbHBkZiIsIm11bHRpX25vcm1hbF9ybmciLCJtdWx0aV9zdHVkZW50X3RfbHBkZiIsIm11bHRpX3N0dWRlbnRfdF9ybmciLCJtdWx0aW5vbWlhbF9scG1mIiwibXVsdGlub21pYWxfcm5nIiwibXVsdGlwbHlfbG9nIiwibXVsdGlwbHlfbG93ZXJfdHJpX3NlbGZfdHJhbnNwb3NlIiwibmVnX2Jpbm9taWFsXzJfY2RmIiwibmVnX2Jpbm9taWFsXzJfbGNjZGYiLCJuZWdfYmlub21pYWxfMl9sY2RmIiwibmVnX2Jpbm9taWFsXzJfbG9nX2xwbWYiLCJuZWdfYmlub21pYWxfMl9sb2dfcm5nIiwibmVnX2Jpbm9taWFsXzJfbHBtZiIsIm5lZ19iaW5vbWlhbF8yX3JuZyIsIm5lZ19iaW5vbWlhbF9jZGYiLCJuZWdfYmlub21pYWxfbGNjZGYiLCJuZWdfYmlub21pYWxfbGNkZiIsIm5lZ19iaW5vbWlhbF9scG1mIiwibmVnX2Jpbm9taWFsX3JuZyIsIm5lZ2F0aXZlX2luZmluaXR5Iiwibm9ybWFsX2NkZiIsIm5vcm1hbF9sY2NkZiIsIm5vcm1hbF9sY2RmIiwibm9ybWFsX2xwZGYiLCJub3JtYWxfcm5nIiwibm90X2FfbnVtYmVyIiwibnVtX2VsZW1lbnRzIiwib3JkZXJlZF9sb2dpc3RpY19scG1mIiwib3JkZXJlZF9sb2dpc3RpY19ybmciLCJvd2Vuc190IiwicGFyZXRvX2NkZiIsInBhcmV0b19sY2NkZiIsInBhcmV0b19sY2RmIiwicGFyZXRvX2xwZGYiLCJwYXJldG9fcm5nIiwicGFyZXRvX3R5cGVfMl9jZGYiLCJwYXJldG9fdHlwZV8yX2xjY2RmIiwicGFyZXRvX3R5cGVfMl9sY2RmIiwicGFyZXRvX3R5cGVfMl9scGRmIiwicGFyZXRvX3R5cGVfMl9ybmciLCJwaSIsInBvaXNzb25fY2RmIiwicG9pc3Nvbl9sY2NkZiIsInBvaXNzb25fbGNkZiIsInBvaXNzb25fbG9nX2xwbWYiLCJwb2lzc29uX2xvZ19ybmciLCJwb2lzc29uX2xwbWYiLCJwb2lzc29uX3JuZyIsInBvc2l0aXZlX2luZmluaXR5IiwicG93IiwicHJpbnQiLCJwcm9kIiwicXJfUSIsInFyX1IiLCJxdWFkX2Zvcm0iLCJxdWFkX2Zvcm1fZGlhZyIsInF1YWRfZm9ybV9zeW0iLCJyYW5rIiwicmF5bGVpZ2hfY2RmIiwicmF5bGVpZ2hfbGNjZGYiLCJyYXlsZWlnaF9sY2RmIiwicmF5bGVpZ2hfbHBkZiIsInJheWxlaWdoX3JuZyIsInJlamVjdCIsInJlcF9hcnJheSIsInJlcF9tYXRyaXgiLCJyZXBfcm93X3ZlY3RvciIsInJlcF92ZWN0b3IiLCJyaXNpbmdfZmFjdG9yaWFsIiwicm91bmQiLCJyb3ciLCJyb3dzIiwicm93c19kb3RfcHJvZHVjdCIsInJvd3NfZG90X3NlbGYiLCJzY2FsZWRfaW52X2NoaV9zcXVhcmVfY2RmIiwic2NhbGVkX2ludl9jaGlfc3F1YXJlX2xjY2RmIiwic2NhbGVkX2ludl9jaGlfc3F1YXJlX2xjZGYiLCJzY2FsZWRfaW52X2NoaV9zcXVhcmVfbHBkZiIsInNjYWxlZF9pbnZfY2hpX3NxdWFyZV9ybmciLCJzZCIsInNlZ21lbnQiLCJzaW4iLCJzaW5ndWxhcl92YWx1ZXMiLCJzaW5oIiwic2l6ZSIsInNrZXdfbm9ybWFsX2NkZiIsInNrZXdfbm9ybWFsX2xjY2RmIiwic2tld19ub3JtYWxfbGNkZiIsInNrZXdfbm9ybWFsX2xwZGYiLCJza2V3X25vcm1hbF9ybmciLCJzb2Z0bWF4Iiwic29ydF9hc2MiLCJzb3J0X2Rlc2MiLCJzb3J0X2luZGljZXNfYXNjIiwic29ydF9pbmRpY2VzX2Rlc2MiLCJzcXJ0Iiwic3FydDIiLCJzcXVhcmUiLCJzcXVhcmVkX2Rpc3RhbmNlIiwic3RlcCIsInN0dWRlbnRfdF9jZGYiLCJzdHVkZW50X3RfbGNjZGYiLCJzdHVkZW50X3RfbGNkZiIsInN0dWRlbnRfdF9scGRmIiwic3R1ZGVudF90X3JuZyIsInN1Yl9jb2wiLCJzdWJfcm93Iiwic3VtIiwidGFpbCIsInRhbiIsInRhbmgiLCJ0YXJnZXQiLCJ0Y3Jvc3Nwcm9kIiwidGdhbW1hIiwidG9fYXJyYXlfMWQiLCJ0b19hcnJheV8yZCIsInRvX21hdHJpeCIsInRvX3Jvd192ZWN0b3IiLCJ0b192ZWN0b3IiLCJ0cmFjZSIsInRyYWNlX2dlbl9xdWFkX2Zvcm0iLCJ0cmFjZV9xdWFkX2Zvcm0iLCJ0cmlnYW1tYSIsInRydW5jIiwidW5pZm9ybV9jZGYiLCJ1bmlmb3JtX2xjY2RmIiwidW5pZm9ybV9sY2RmIiwidW5pZm9ybV9scGRmIiwidW5pZm9ybV9ybmciLCJ2YXJpYW5jZSIsInZvbl9taXNlc19scGRmIiwidm9uX21pc2VzX3JuZyIsIndlaWJ1bGxfY2RmIiwid2VpYnVsbF9sY2NkZiIsIndlaWJ1bGxfbGNkZiIsIndlaWJ1bGxfbHBkZiIsIndlaWJ1bGxfcm5nIiwid2llbmVyX2xwZGYiLCJ3aXNoYXJ0X2xwZGYiLCJ3aXNoYXJ0X3JuZyJdLGw9WyJiZXJub3VsbGkiLCJiZXJub3VsbGlfbG9naXQiLCJiZXRhIiwiYmV0YV9iaW5vbWlhbCIsImJpbm9taWFsIiwiYmlub21pYWxfbG9naXQiLCJjYXRlZ29yaWNhbCIsImNhdGVnb3JpY2FsX2xvZ2l0IiwiY2F1Y2h5IiwiY2hpX3NxdWFyZSIsImRpcmljaGxldCIsImRvdWJsZV9leHBvbmVudGlhbCIsImV4cF9tb2Rfbm9ybWFsIiwiZXhwb25lbnRpYWwiLCJmcmVjaGV0IiwiZ2FtbWEiLCJnYXVzc2lhbl9kbG1fb2JzIiwiZ3VtYmVsIiwiaHlwZXJnZW9tZXRyaWMiLCJpbnZfY2hpX3NxdWFyZSIsImludl9nYW1tYSIsImludl93aXNoYXJ0IiwibGtqX2NvcnIiLCJsa2pfY29ycl9jaG9sZXNreSIsImxvZ2lzdGljIiwibG9nbm9ybWFsIiwibXVsdGlfZ3AiLCJtdWx0aV9ncF9jaG9sZXNreSIsIm11bHRpX25vcm1hbCIsIm11bHRpX25vcm1hbF9jaG9sZXNreSIsIm11bHRpX25vcm1hbF9wcmVjIiwibXVsdGlfc3R1ZGVudF90IiwibXVsdGlub21pYWwiLCJuZWdfYmlub21pYWwiLCJuZWdfYmlub21pYWxfMiIsIm5lZ19iaW5vbWlhbF8yX2xvZyIsIm5vcm1hbCIsIm9yZGVyZWRfbG9naXN0aWMiLCJwYXJldG8iLCJwYXJldG9fdHlwZV8yIiwicG9pc3NvbiIsInBvaXNzb25fbG9nIiwicmF5bGVpZ2giLCJzY2FsZWRfaW52X2NoaV9zcXVhcmUiLCJza2V3X25vcm1hbCIsInN0dWRlbnRfdCIsInVuaWZvcm0iLCJ2b25fbWlzZXMiLCJ3ZWlidWxsIiwid2llbmVyIiwid2lzaGFydCJdO3JldHVybntuYW1lOiJTdGFuIixhbGlhc2VzOlsic3RhbmZ1bmNzIl0sa2V5d29yZHM6eyRwYXR0ZXJuOmUuSURFTlRfUkUsdGl0bGU6dCxrZXl3b3JkOm4uY29uY2F0KGkpLmNvbmNhdChhKSxidWlsdF9pbjpvfSxjb250YWluczpbZS5DX0xJTkVfQ09NTUVOVF9NT0RFLGUuQ09NTUVOVCgvIy8sLyQvLHtyZWxldmFuY2U6MCxrZXl3b3Jkczp7Im1ldGEta2V5d29yZCI6ImluY2x1ZGUifX0pLGUuQ09NTUVOVCgvXC9cKi8sL1wqXC8vLHtyZWxldmFuY2U6MCxjb250YWluczpbe2NsYXNzTmFtZToiZG9jdGFnIixiZWdpbjovQChyZXR1cm58cGFyYW0pL31dfSkse2JlZ2luOi88XHMqbG93ZXJccyo9LyxrZXl3b3JkczoibG93ZXIifSx7YmVnaW46L1s8LF1ccyp1cHBlclxzKj0vLGtleXdvcmRzOiJ1cHBlciJ9LHtjbGFzc05hbWU6ImtleXdvcmQiLGJlZ2luOi9cYnRhcmdldFxzKlwrPS8scmVsZXZhbmNlOjEwfSx7YmVnaW46In5cXHMqKCIrZS5JREVOVF9SRSsiKVxccypcXCgiLGtleXdvcmRzOmx9LHtjbGFzc05hbWU6Im51bWJlciIsdmFyaWFudHM6W3tiZWdpbjovXGJcZCsoPzpcLlxkKik/KD86W2VFXVsrLV0/XGQrKT8vfSx7YmVnaW46L1wuXGQrKD86W2VFXVsrLV0/XGQrKT9cYi99XSxyZWxldmFuY2U6MH0se2NsYXNzTmFtZToic3RyaW5nIixiZWdpbjonIicsZW5kOiciJyxyZWxldmFuY2U6MH1dfX1zLmV4cG9ydHM9cn0sMjE0Njg6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihlKXtyZXR1cm57bmFtZToiU3RhdGEiLGFsaWFzZXM6WyJkbyIsImFkbyJdLGNhc2VfaW5zZW5zaXRpdmU6ITAsa2V5d29yZHM6ImlmIGVsc2UgaW4gZm9yZWFjaCBmb3IgZm9ydiBmb3J2YSBmb3J2YWwgZm9ydmFsdSBmb3J2YWx1ZSBmb3J2YWx1ZXMgYnkgYnlzIGJ5c29ydCB4aSBxdWlldGx5IHF1aSBjYXB0dXJlIGFib3V0IGFjIGFjXzcgYWNwcnBsb3QgYWNwcnBsb3RfNyBhZGp1c3QgYWRvIGFkb3BhdGggYWRvdXBkYXRlIGFscGhhIGFtZWFucyBhbiBhbm8gYW5vdiBhbm92YSBhbm92YV9lc3RhdCBhbm92YV90ZXJtcyBhbm92YWRlZiBhb3JkZXIgYXAgYXBwIGFwcGUgYXBwZW4gYXBwZW5kIGFyY2ggYXJjaF9kciBhcmNoX2VzdGF0IGFyY2hfcCBhcmNobG0gYXJlZyBhcmVnX3AgYXJncyBhcmltYSBhcmltYV9kciBhcmltYV9lc3RhdCBhcmltYV9wIGFzIGFzbXByb2JpdCBhc21wcm9iaXRfZXN0YXQgYXNtcHJvYml0X2xmIGFzbXByb2JpdF9tZnhfX2RsZyBhc21wcm9iaXRfcCBhc3MgYXNzZSBhc3NlciBhc3NlcnQgYXZwbG90IGF2cGxvdF83IGF2cGxvdHMgYXZwbG90c183IGJjc2tldzAgYmdvZGZyZXkgYmlhcyBiaW5yZWcgYmlwMF9sZiBiaXBsb3QgYmlwcF9sZiBiaXByX2xmIGJpcHJfcCBiaXByb2JpdCBiaXRlc3QgYml0ZXN0aSBiaXRvd3QgYmxvZ2l0IGJtZW1zaXplIGJvb3QgYm9vdHNhbXAgYm9vdHN0cmFwIGJvb3RzdHJhcF84IGJveGNvX2wgYm94Y29fcCBib3hjb3ggYm94Y294XzYgYm94Y294X3AgYnByb2JpdCBiciBicmVhayBicmllciBicm8gYnJvdyBicm93cyBicm93c2UgYnJyIGJycnN0YXQgYnMgYnNfNyBic2FtcGxfdyBic2FtcGxlIGJzYW1wbGVfNyBic3FyZWcgYnN0YXQgYnN0YXRfNyBic3RhdF84IGJzdHJhcCBic3RyYXBfNyBidWJibGUgYnViYmxlcGxvdCBjYSBjYV9lc3RhdCBjYV9wIGNhYmlwbG90IGNhbWF0IGNhbm9uIGNhbm9uXzggY2Fub25fOF9wIGNhbm9uX2VzdGF0IGNhbm9uX3AgY2FwIGNhcHJvamVjdGlvbiBjYXB0IGNhcHR1IGNhcHR1ciBjYXB0dXJlIGNhdCBjYyBjY2hhcnQgY2NoYXJ0XzcgY2NpIGNkIGNlbnNvYnNfdGFibGUgY2VudGlsZSBjZiBjaGFyIGNoZGlyIGNoZWNrZGxnZmlsZXMgY2hlY2tlc3RpbWF0aW9uc2FtcGxlIGNoZWNraGxwZmlsZXMgY2hlY2tzdW0gY2hlbHAgY2kgY2lpIGNsIGNsYXNzIGNsYXNzdXRpbCBjbGVhciBjbGkgY2xpcyBjbGlzdCBjbG8gY2xvZyBjbG9nX2xmIGNsb2dfcCBjbG9naSBjbG9naV9zdyBjbG9naXQgY2xvZ2l0X2xmIGNsb2dpdF9wIGNsb2dpdHAgY2xvZ2xfc3cgY2xvZ2xvZyBjbG9uZXZhciBjbHNsaXN0YXJyYXkgY2x1c3RlciBjbHVzdGVyX21lYXN1cmVzIGNsdXN0ZXJfc3RvcCBjbHVzdGVyX3RyZWUgY2x1c3Rlcl90cmVlXzggY2x1c3Rlcm1hdCBjbWRsb2cgY25yIGNucmUgY25yZWcgY25yZWdfcCBjbnJlZ19zdyBjbnNyZWcgY29kZWJvb2sgY29sbGFwczQgY29sbGFwc2UgY29sb3JtdWx0X25iIGNvbG9ybXVsdF9udyBjb21wYXJlIGNvbXByZXNzIGNvbmYgY29uZmkgY29uZmlyIGNvbmZpcm0gY29ucmVuIGNvbnMgY29uc3QgY29uc3RyIGNvbnN0cmEgY29uc3RyYWkgY29uc3RyYWluIGNvbnN0cmFpbnQgY29udGludWUgY29udHJhY3QgY29weSBjb3B5cmlnaHQgY29weXNvdXJjZSBjb3IgY29yYyBjb3JyIGNvcnIyZGF0YSBjb3JyX2FudGkgY29ycl9rbW8gY29ycl9zbWMgY29ycmUgY29ycmVsIGNvcnJlbGEgY29ycmVsYXQgY29ycmVsYXRlIGNvcnJncmFtIGNvdSBjb3VuIGNvdW50IGNveCBjb3hfcCBjb3hfc3cgY294YmFzZSBjb3hoYXogY294dmFyIGNwcnBsb3QgY3BycGxvdF83IGNyYyBjcmV0IGNyZXR1IGNyZXR1ciBjcmV0dXJuIGNyb3NzIGNzIGNzY3JpcHQgY3NjcmlwdF9sb2cgY3NpIGN0IGN0X2lzIGN0c2V0IGN0c3RfNSBjdHN0X3N0IGN0dG9zdCBjdW1zcCBjdW1zcF83IGN1bXVsIGN1c3VtIGN1c3VtXzcgY3V0aWwgZHwwIGRhdGFzaWcgZGF0YXNpZ24gZGF0YXNpZ25hIGRhdGFzaWduYXQgZGF0YXNpZ25hdHUgZGF0YXNpZ25hdHVyIGRhdGFzaWduYXR1cmUgZGF0ZXRvZiBkYiBkYmV0YSBkZSBkZWMgZGVjbyBkZWNvZCBkZWNvZGUgZGVmZiBkZXMgZGVzYyBkZXNjciBkZXNjcmkgZGVzY3JpYiBkZXNjcmliZSBkZXN0cmluZyBkZmJldGEgZGZnbHMgZGZ1bGxlciBkaSBkaV9nIGRpciBkaXJzdGF0cyBkaXMgZGlzY2FyZCBkaXNwIGRpc3BfcmVzIGRpc3BfcyBkaXNwbCBkaXNwbGEgZGlzcGxheSBkaXN0aW5jdCBkbyBkb2UgZG9lZCBkb2VkaSBkb2VkaXQgZG90cGxvdCBkb3RwbG90XzcgZHByb2JpdCBkcmF3bm9ybSBkcm9wIGRzIGRzX3V0aWwgZHN0ZGl6ZSBkdXBsaWNhdGVzIGR1cmJpbmEgZHdzdGF0IGR5ZHggZXwwIGVkIGVkaSBlZGl0IGVnZW4gZWl2cmVnIGVtZGVmIGVuIGVuYyBlbmNvIGVuY29kIGVuY29kZSBlcSBlcmFzZSBlcmVnIGVyZWdfbGYgZXJlZ19wIGVyZWdfc3cgZXJlZ2hldCBlcmVnaGV0X2dsZiBlcmVnaGV0X2dsZl9zaCBlcmVnaGV0X2dwIGVyZWdoZXRfaWxmIGVyZWdoZXRfaWxmX3NoIGVyZWdoZXRfaXAgZXJldCBlcmV0dSBlcmV0dXIgZXJldHVybiBlcnIgZXJybyBlcnJvciBlc2l6ZSBlc3QgZXN0X2NmZXhpc3QgZXN0X2NmbmFtZSBlc3RfY2xpY2thYmxlIGVzdF9leHBhbmQgZXN0X2hvbGQgZXN0X3RhYmxlIGVzdF91bmhvbGQgZXN0X3VuaG9sZG9rIGVzdGF0IGVzdGF0X2RlZmF1bHQgZXN0YXRfc3VtbSBlc3RhdF92Y2Vfb25seSBlc3RpIGVzdGltYXRlcyBldG9kb3cgZXRvZiBldG9tZHkgZXggZXhpIGV4aXQgZXhwYW5kIGV4cGFuZGNsIGZhYyBmYWN0IGZhY3RvIGZhY3RvciBmYWN0b3JfZXN0YXQgZmFjdG9yX3AgZmFjdG9yX3BjYV9yb3RhdGVkIGZhY3Rvcl9yb3RhdGUgZmFjdG9ybWF0IGZjYXN0IGZjYXN0X2NvbXB1dGUgZmNhc3RfZ3JhcGggZmRhZGVzIGZkYWRlc2MgZmRhZGVzY3IgZmRhZGVzY3JpIGZkYWRlc2NyaWIgZmRhZGVzY3JpYmUgZmRhc2F2IGZkYXNhdmUgZmRhdXNlIGZoX3N0IGZpbGUgb3BlbiBmaWxlIHJlYWQgZmlsZSBjbG9zZSBmaWxlIGZpbGVmaWx0ZXIgZmlsbGluIGZpbmRfaGxwX2ZpbGUgZmluZGZpbGUgZmluZGl0IGZpbmRpdF83IGZpdCBmbCBmbGkgZmxpcyBmbGlzdCBmb3I1XzAgZm9yZXN0IGZvcmVzdHBsb3QgZm9ybSBmb3JtYSBmb3JtYXQgZnByZWRpY3QgZnJhY18xNTQgZnJhY19hZGogZnJhY19jaGsgZnJhY19jb3ggZnJhY19kZHAgZnJhY19kaXMgZnJhY19kdiBmcmFjX2luIGZyYWNfbXVuIGZyYWNfcHAgZnJhY19wcSBmcmFjX3B2IGZyYWNfd2d0IGZyYWNfeG8gZnJhY2dlbiBmcmFjcGxvdCBmcmFjcGxvdF83IGZyYWNwb2x5IGZyYWNwcmVkIGZyb25fZXggZnJvbl9obiBmcm9uX3AgZnJvbl90biBmcm9uX3RuMiBmcm9udGllciBmdG9kYXRlIGZ0b2UgZnRvbWR5IGZ0b3dkYXRlIGZ1bm5lbCBmdW5uZWxwbG90IGd8MCBnYW1oZXRfZ2xmIGdhbWhldF9ncCBnYW1oZXRfaWxmIGdhbWhldF9pcCBnYW1tYSBnYW1tYV9kMiBnYW1tYV9wIGdhbW1hX3N3IGdhbW1haGV0IGdkaV9oZXhhZ29uIGdkaV9zcG9rZXMgZ2UgZ2VuIGdlbmUgZ2VuZXIgZ2VuZXJhIGdlbmVyYXQgZ2VuZXJhdGUgZ2VucmFuayBnZW5zdGQgZ2Vudm1lYW4gZ2V0dG9rZW4gZ2wgZ2xhZGRlciBnbGFkZGVyXzcgZ2xpbV9sMDEgZ2xpbV9sMDIgZ2xpbV9sMDMgZ2xpbV9sMDQgZ2xpbV9sMDUgZ2xpbV9sMDYgZ2xpbV9sMDcgZ2xpbV9sMDggZ2xpbV9sMDkgZ2xpbV9sMTAgZ2xpbV9sMTEgZ2xpbV9sMTIgZ2xpbV9sZiBnbGltX211IGdsaW1fbncxIGdsaW1fbncyIGdsaW1fbnczIGdsaW1fcCBnbGltX3YxIGdsaW1fdjIgZ2xpbV92MyBnbGltX3Y0IGdsaW1fdjUgZ2xpbV92NiBnbGltX3Y3IGdsbSBnbG1fNiBnbG1fcCBnbG1fc3cgZ2xtcHJlZCBnbG8gZ2xvYiBnbG9iYSBnbG9iYWwgZ2xvZ2l0IGdsb2dpdF84IGdsb2dpdF9wIGdtZWFucyBnbmJyZV9sZiBnbmJyZWcgZ25icmVnXzUgZ25icmVnX3AgZ29tcF9sZiBnb21wZV9zdyBnb21wZXJfcCBnb21wZXJ0eiBnb21wZXJ0emhldCBnb21waGV0X2dsZiBnb21waGV0X2dsZl9zaCBnb21waGV0X2dwIGdvbXBoZXRfaWxmIGdvbXBoZXRfaWxmX3NoIGdvbXBoZXRfaXAgZ3BoZG90IGdwaHBlbiBncGhwcmludCBncHJlZnMgZ3Byb2JpX3AgZ3Byb2JpdCBncHJvYml0XzggZ3IgZ3I3IGdyX2NvcHkgZ3JfY3VycmVudCBncl9kYiBncl9kZXNjcmliZSBncl9kaXIgZ3JfZHJhdyBncl9kcmF3X3JlcGxheSBncl9kcm9wIGdyX2VkaXQgZ3JfZWRpdHZpZXdvcHRzIGdyX2V4YW1wbGUgZ3JfZXhhbXBsZTIgZ3JfZXhwb3J0IGdyX3ByaW50IGdyX3FzY2hlbWUgZ3JfcXVlcnkgZ3JfcmVhZCBncl9yZW5hbWUgZ3JfcmVwbGF5IGdyX3NhdmUgZ3Jfc2V0IGdyX3NldHNjaGVtZSBncl90YWJsZSBncl91bmRvIGdyX3VzZSBncmFwaCBncmFwaDcgZ3JlYmFyIGdyZWlnZW4gZ3JlaWdlbl83IGdyZWlnZW5fOCBncm1lYW5ieSBncm1lYW5ieV83IGdzX2ZpbGVpbmZvIGdzX2ZpbGV0eXBlIGdzX2dyYXBoaW5mbyBnc19zdGF0IGdzb3J0IGd3b29kIGh8MCBoYWRpbXZvIGhhcmVnIGhhdXNtYW4gaGF2ZXIgaGUgaGVja19kMiBoZWNrbWFfcCBoZWNrbWFuIGhlY2twX2xmIGhlY2twcl9wIGhlY2twcm9iIGhlbCBoZWxwIGhlcmVnIGhldHByX2xmIGhldHByX3AgaGV0cHJvYiBoZXR0ZXN0IGhleGR1bXAgaGlsaXRlIGhpc3QgaGlzdF83IGhpc3RvZ3JhbSBobG9naXQgaGx1IGhtZWFucyBob3RlbCBob3RlbGxpbmcgaHByb2JpdCBocmVnIGhzZWFyY2ggaWNkOSBpY2Q5X2ZmIGljZDlwIGlpcyBpbXB1dGUgaW10ZXN0IGluYmFzZSBpbmNsdWRlIGluZiBpbmZpIGluZmlsIGluZmlsZSBpbmZpeCBpbnAgaW5wdSBpbnB1dCBpbnMgaW5zaGVldCBpbnNwIGluc3BlIGluc3BlYyBpbnNwZWN0IGludGVnIGludGVuIGludHJlZyBpbnRyZWdfNyBpbnRyZWdfcCBpbnRyZzJfbGwgaW50cmdfbGwgaW50cmdfbGwyIGlwb2xhdGUgaXFyZWcgaXIgaXJmIGlyZl9jcmVhdGUgaXJmbSBpcmkgaXNfc3Z5IGlzX3N2eXN1bSBpc2lkIGlzdGRpemUgaXZwcm9iXzFfbGYgaXZwcm9iX2xmIGl2cHJvYml0IGl2cHJvYml0X3AgaXZyZWcgaXZyZWdfZm9vdG5vdGUgaXZ0b2JfMV9sZiBpdnRvYl9sZiBpdnRvYml0IGl2dG9iaXRfcCBqYWNra25pZmUgamFja25pZmUgamtuaWZlIGprbmlmZV82IGprbmlmZV84IGprc3RhdCBqb2luYnkga2FsYXJtYTEga2FwIGthcF8zIGthcG1laWVyIGthcHBhIGthcHdndCBrZGVuc2l0eSBrZGVuc2l0eV83IGtlZXAga3NtIGtzbWlybm92IGt0YXUga3dhbGxpcyBsfDAgbGEgbGFiIGxhYmJlIGxhYmJlcGxvdCBsYWJlIGxhYmVsIGxhYmVsYm9vayBsYWRkZXIgbGV2ZWxzIGxldmVsc29mIGxldmVyYWdlIGxmaXQgbGZpdF9wIGxpIGxpbmNvbSBsaW5lIGxpbmt0ZXN0IGxpcyBsaXN0IGxsb2doZXRfZ2xmIGxsb2doZXRfZ2xmX3NoIGxsb2doZXRfZ3AgbGxvZ2hldF9pbGYgbGxvZ2hldF9pbGZfc2ggbGxvZ2hldF9pcCBsbG9naV9zdyBsbG9naXNfcCBsbG9naXN0IGxsb2dpc3RpYyBsbG9naXN0aWNoZXQgbG5vcm1fbGYgbG5vcm1fc3cgbG5vcm1hX3AgbG5vcm1hbCBsbm9ybWFsaGV0IGxub3JtaGV0X2dsZiBsbm9ybWhldF9nbGZfc2ggbG5vcm1oZXRfZ3AgbG5vcm1oZXRfaWxmIGxub3JtaGV0X2lsZl9zaCBsbm9ybWhldF9pcCBsbnNrZXcwIGxvYWRpbmdwbG90IGxvYyBsb2NhIGxvY2FsIGxvZyBsb2dpIGxvZ2lzX2xmIGxvZ2lzdGljIGxvZ2lzdGljX3AgbG9naXQgbG9naXRfZXN0YXQgbG9naXRfcCBsb2dsb2dzIGxvZ3JhbmsgbG9uZXdheSBsb29rZm9yIGxvb2t1cCBsb3dlc3MgbG93ZXNzXzcgbHByZWRpY3QgbHJlY29tcCBscm9jIGxyb2NfNyBscnRlc3QgbHMgbHNlbnMgbHNlbnNfNyBsc2Vuc194IGxzdGF0IGx0YWJsZSBsdGFibGVfNyBsdHJpYW5nIGx2IGx2cjJwbG90IGx2cjJwbG90XzcgbXwwIG1hIG1hYyBtYWNyIG1hY3JvIG1ha2VjbnMgbWFuIG1hbm92YSBtYW5vdmFfZXN0YXQgbWFub3ZhX3AgbWFub3ZhdGVzdCBtYW50ZWwgbWFyayBtYXJraW4gbWFya291dCBtYXJrc2FtcGxlIG1hdCBtYXRfY2FwcCBtYXRfb3JkZXIgbWF0X3B1dF9yciBtYXRfcmFwcCBtYXRhIG1hdGFfY2xlYXIgbWF0YV9kZXNjcmliZSBtYXRhX2Ryb3AgbWF0YV9tYXRkZXNjcmliZSBtYXRhX21hdHNhdmUgbWF0YV9tYXR1c2UgbWF0YV9tZW1vcnkgbWF0YV9tbGliIG1hdGFfbW9zYXZlIG1hdGFfcmVuYW1lIG1hdGFfd2hpY2ggbWF0YWxhYmVsIG1hdGNwcm9jIG1hdGxpc3QgbWF0bmFtZSBtYXRyIG1hdHJpIG1hdHJpeCBtYXRyaXhfaW5wdXRfX2RsZyBtYXRzdHJpayBtY2MgbWNjaSBtZDBfIG1kMV8gbWQxZGVidWdfIG1kMl8gbWQyZGVidWdfIG1kcyBtZHNfZXN0YXQgbWRzX3AgbWRzY29uZmlnIG1kc2xvbmcgbWRzbWF0IG1kc3NoZXBhcmQgbWR5dG9lIG1keXRvZiBtZV9kZXJkIG1lYW4gbWVhbnMgbWVkaWFuIG1lbW9yeSBtZW1zaXplIG1lbmwgbWVxcGFyc2UgbWVyIG1lcmcgbWVyZ2UgbWV0YSBtZnAgbWZ4IG1oZWxwIG1ob2RkcyBtaW5ib3VuZCBtaXhlZF9sbCBtaXhlZF9sbF9yZXBhcm0gbWthc3NlcnQgbWtkaXIgbWttYXQgbWtzcGxpbmUgbWwgbWxfNSBtbF9hZGpzIG1sX2JoaGhzIG1sX2NfZCBtbF9jaGVjayBtbF9jbGVhciBtbF9jbnQgbWxfZGVidWcgbWxfZGVmZCBtbF9lMCBtbF9lMF9iZmdzIG1sX2UwX2N5Y2xlIG1sX2UwX2RmcCBtbF9lMGkgbWxfZTEgbWxfZTFfYmZncyBtbF9lMV9iaGhoIG1sX2UxX2N5Y2xlIG1sX2UxX2RmcCBtbF9lMiBtbF9lMl9jeWNsZSBtbF9lYmZnMCBtbF9lYmZyMCBtbF9lYmZyMSBtbF9lYmgwcSBtbF9lYmhoMCBtbF9lYmhyMCBtbF9lYnIwaSBtbF9lY3IwaSBtbF9lZGZwMCBtbF9lZGZyMCBtbF9lZGZyMSBtbF9lZHIwaSBtbF9lZHMgbWxfZWVyMGkgbWxfZWdyMGkgbWxfZWxmIG1sX2VsZl9iZmdzIG1sX2VsZl9iaGhoIG1sX2VsZl9jeWNsZSBtbF9lbGZfZGZwIG1sX2VsZmkgbWxfZWxmcyBtbF9lbnIwaSBtbF9lbnJyMCBtbF9lcmR1MCBtbF9lcmR1MF9iZmdzIG1sX2VyZHUwX2JoaGggbWxfZXJkdTBfYmhoaHEgbWxfZXJkdTBfY3ljbGUgbWxfZXJkdTBfZGZwIG1sX2VyZHUwX25yYmZncyBtbF9leGRlIG1sX2Zvb3Rub3RlIG1sX2dlcW5yIG1sX2dyYWQwIG1sX2dyYXBoIG1sX2hiaGhoIG1sX2hkMCBtbF9ob2xkIG1sX2luaXQgbWxfaW52IG1sX2xvZyBtbF9tYXggbWxfbWxvdXQgbWxfbWxvdXRfOCBtbF9tb2RlbCBtbF9uYjAgbWxfb3B0IG1sX3AgbWxfcGxvdCBtbF9xdWVyeSBtbF9yZGdyZCBtbF9yZXBvciBtbF9zX2UgbWxfc2NvcmUgbWxfc2VhcmMgbWxfdGVjaG5pcXVlIG1sX3VuaG9sZCBtbGV2YWwgbWxmXyBtbG1hdGJ5c3VtIG1sbWF0c3VtIG1sb2cgbWxvZ2kgbWxvZ2l0IG1sb2dpdF9mb290bm90ZSBtbG9naXRfcCBtbG9wdHMgbWxzdW0gbWx2ZWNzdW0gbW5sMF8gbW9yIG1vcmUgbW92IG1vdmUgbXByb2JpdCBtcHJvYml0X2xmIG1wcm9iaXRfcCBtcmR1MF8gbXJkdTFfIG12ZGVjb2RlIG12ZW5jb2RlIG12cmVnIG12cmVnX2VzdGF0IG58MCBuYnJlZyBuYnJlZ19hbCBuYnJlZ19sZiBuYnJlZ19wIG5icmVnX3N3IG5lc3RyZWcgbmV0IG5ld2V5IG5ld2V5XzcgbmV3ZXlfcCBuZXdzIG5sIG5sXzcgbmxfOSBubF85X3AgbmxfcCBubF9wXzcgbmxjb20gbmxjb21fcCBubGV4cDIgbmxleHAyXzcgbmxleHAyYSBubGV4cDJhXzcgbmxleHAzIG5sZXhwM183IG5sZ29tMyBubGdvbTNfNyBubGdvbTQgbmxnb200Xzcgbmxpbml0IG5sbG9nMyBubGxvZzNfNyBubGxvZzQgbmxsb2c0XzcgbmxvZ19yZCBubG9naXQgbmxvZ2l0X3AgbmxvZ2l0Z2VuIG5sb2dpdHRyZWUgbmxwcmVkIG5vIG5vYnJlYWsgbm9pIG5vaXMgbm9pc2kgbm9pc2lsIG5vaXNpbHkgbm90ZSBub3RlcyBub3Rlc19kbGcgbnB0cmVuZCBudW1sYWJlbCBudW1saXN0IG9kYmMgb2xkX3ZlciBvbG8gb2xvZyBvbG9naSBvbG9naV9zdyBvbG9naXQgb2xvZ2l0X3Agb2xvZ2l0cCBvbiBvbmUgb25ldyBvbmV3YSBvbmV3YXkgb3BfY29sbm0gb3BfY29tcCBvcF9kaWZmIG9wX2ludiBvcF9zdHIgb3ByIG9wcm8gb3Byb2Igb3Byb2Jfc3cgb3Byb2JpIG9wcm9iaV9wIG9wcm9iaXQgb3Byb2JpdHAgb3B0c19leGNsdXNpdmUgb3JkZXIgb3J0aG9nIG9ydGhwb2x5IG91IG91dCBvdXRmIG91dGZpIG91dGZpbCBvdXRmaWxlIG91dHMgb3V0c2ggb3V0c2hlIG91dHNoZWUgb3V0c2hlZXQgb3Z0ZXN0IHBhYyBwYWNfNyBwYWxldHRlIHBhcnNlIHBhcnNlX2Rpc3NpbSBwYXVzZSBwY2EgcGNhXzggcGNhX2Rpc3BsYXkgcGNhX2VzdGF0IHBjYV9wIHBjYV9yb3RhdGUgcGNhbWF0IHBjaGFydCBwY2hhcnRfNyBwY2hpIHBjaGlfNyBwY29yciBwY3RpbGUgcGVudGl1bSBwZXJncmFtIHBlcmdyYW1fNyBwZXJtdXRlIHBlcm11dGVfOCBwZXJzb25hbCBwZXRvX3N0IHBrY29sbGFwc2UgcGtjcm9zcyBwa2VxdWl2IHBrZXhhbWluZSBwa2V4YW1pbmVfNyBwa3NoYXBlIHBrc3VtbSBwa3N1bW1fNyBwbCBwbG8gcGxvdCBwbHVnaW4gcG5vcm0gcG5vcm1fNyBwb2lzZ29mIHBvaXNzX2xmIHBvaXNzX3N3IHBvaXNzb19wIHBvaXNzb24gcG9pc3Nvbl9lc3RhdCBwb3N0IHBvc3RjbG9zZSBwb3N0ZmlsZSBwb3N0dXRpbCBwcGVycm9uIHByIHByYWlzIHByYWlzX2UgcHJhaXNfZTIgcHJhaXNfcCBwcmVkaWN0IHByZWRpY3RubCBwcmVzZXJ2ZSBwcmludCBwcm8gcHJvYiBwcm9iaSBwcm9iaXQgcHJvYml0X2VzdGF0IHByb2JpdF9wIHByb2NfdGltZSBwcm9jb3ZlcmxheSBwcm9jcnVzdGVzIHByb2NydXN0ZXNfZXN0YXQgcHJvY3J1c3Rlc19wIHByb2ZpbGVyIHByb2cgcHJvZ3IgcHJvZ3JhIHByb2dyYW0gcHJvcCBwcm9wb3J0aW9uIHBydGVzdCBwcnRlc3RpIHB3Y29yciBwd2QgcVxccyBxYnkgcWJ5cyBxY2hpIHFjaGlfNyBxbGFkZGVyIHFsYWRkZXJfNyBxbm9ybSBxbm9ybV83IHFxcGxvdCBxcXBsb3RfNyBxcmVnIHFyZWdfYyBxcmVnX3AgcXJlZ19zdyBxdSBxdWFkY2hrIHF1YW50aWxlIHF1YW50aWxlXzcgcXVlIHF1ZXIgcXVlcnkgcmFuZ2UgcmFua3N1bSByYXRpbyByY2hhcnQgcmNoYXJ0XzcgcmNvZiByZWNhc3QgcmVjbGluayByZWNvZGUgcmVnIHJlZzMgcmVnM19wIHJlZ2R3IHJlZ3IgcmVncmUgcmVncmVfcDIgcmVncmVzIHJlZ3Jlc19wIHJlZ3Jlc3MgcmVncmVzc19lc3RhdCByZWdyaXZfcCByZW1hcCByZW4gcmVuYSByZW5hbSByZW5hbWUgcmVucGZpeCByZXBlYXQgcmVwbGFjZSByZXBvcnQgcmVzaGFwZSByZXN0b3JlIHJldCByZXR1IHJldHVyIHJldHVybiBybSBybWRpciByb2J2YXIgcm9jY29tcCByb2Njb21wXzcgcm9jY29tcF84IHJvY2ZfbGYgcm9jZml0IHJvY2ZpdF84IHJvY2dvbGQgcm9jcGxvdCByb2NwbG90Xzcgcm9jdGFiIHJvY3RhYl83IHJvbGxpbmcgcm9sb2dpdCByb2xvZ2l0X3Agcm90IHJvdGEgcm90YXQgcm90YXRlIHJvdGF0ZW1hdCBycmVnIHJyZWdfcCBydSBydW4gcnVudGVzdCBydmZwbG90IHJ2ZnBsb3RfNyBydnBwbG90IHJ2cHBsb3RfNyBzYSBzYWZlc3VtIHNhbXBsZSBzYW1wc2kgc2F2IHNhdmUgc2F2ZWRyZXN1bHRzIHNhdmVvbGQgc2Mgc2NhIHNjYWwgc2NhbGEgc2NhbGFyIHNjYXR0ZXIgc2NtX21pbmUgc2NvIHNjb2JfbGYgc2NvYl9wIHNjb2JpX3N3IHNjb2JpdCBzY29yIHNjb3JlIHNjb3JlcGxvdCBzY29yZXBsb3RfaGVscCBzY3JlZSBzY3JlZXBsb3Qgc2NyZWVwbG90X2hlbHAgc2R0ZXN0IHNkdGVzdGkgc2Ugc2VhcmNoIHNlcGFyYXRlIHNlcGVyYXRlIHNlcnJiYXIgc2VycmJhcl83IHNlcnNldCBzZXQgc2V0X2RlZmF1bHRzIHNmcmFuY2lhIHNoIHNoZSBzaGVsIHNoZWxsIHNoZXdoYXJ0IHNoZXdoYXJ0Xzcgc2lnbmVzdGltYXRpb25zYW1wbGUgc2lnbnJhbmsgc2lnbnRlc3Qgc2ltdWwgc2ltdWxfNyBzaW11bGF0ZSBzaW11bGF0ZV84IHNrdGVzdCBzbGVlcCBzbG9naXQgc2xvZ2l0X2QyIHNsb2dpdF9wIHNtb290aCBzbmFwc3BhbiBzbyBzb3Igc29ydCBzcGVhcm1hbiBzcGlrZXBsb3Qgc3Bpa2VwbG90Xzcgc3Bpa2VwbHQgc3BsaW5lX3ggc3BsaXQgc3FyZWcgc3FyZWdfcCBzcmV0IHNyZXR1IHNyZXR1ciBzcmV0dXJuIHNzYyBzdCBzdF9jdCBzdF9oYyBzdF9oY2Qgc3RfaGNkX3NoIHN0X2lzIHN0X2lzc3lzIHN0X25vdGUgc3RfcHJvbW8gc3Rfc2V0IHN0X3Nob3cgc3Rfc21wbCBzdF9zdWJpZCBzdGFjayBzdGF0c2J5IHN0YXRzYnlfOCBzdGJhc2Ugc3RjaSBzdGNpXzcgc3Rjb3ggc3Rjb3hfZXN0YXQgc3Rjb3hfZnIgc3Rjb3hfZnJfbGwgc3Rjb3hfcCBzdGNveF9zdyBzdGNveGttIHN0Y294a21fNyBzdGNzdGF0IHN0Y3VydiBzdGN1cnZlIHN0Y3VydmVfNyBzdGRlcyBzdGVtIHN0ZXB3aXNlIHN0ZXJlZyBzdGZpbGwgc3RnZW4gc3RpciBzdGpvaW4gc3RtYyBzdG1oIHN0cGhwbG90IHN0cGhwbG90Xzcgc3RwaHRlc3Qgc3RwaHRlc3RfNyBzdHB0aW1lIHN0cmF0ZSBzdHJhdGVfNyBzdHJlZyBzdHJlZ19zdyBzdHJlc2V0IHN0cyBzdHNfNyBzdHNldCBzdHNwbGl0IHN0c3VtIHN0dG9jYyBzdHRvY3Qgc3R2YXJ5IHN0d2VpYiBzdSBzdWVzdCBzdWVzdF84IHN1bSBzdW1tIHN1bW1hIHN1bW1hciBzdW1tYXJpIHN1bW1hcml6IHN1bW1hcml6ZSBzdW5mbG93ZXIgc3VyZWcgc3VydmN1cnYgc3VydnN1bSBzdmFyIHN2YXJfcCBzdm1hdCBzdnkgc3Z5X2Rpc3Agc3Z5X2RyZWcgc3Z5X2VzdCBzdnlfZXN0Xzcgc3Z5X2VzdGF0IHN2eV9nZXQgc3Z5X2duYnJlZ19wIHN2eV9oZWFkIHN2eV9oZWFkZXIgc3Z5X2hlY2ttYW5fcCBzdnlfaGVja3Byb2JfcCBzdnlfaW50cmVnX3Agc3Z5X2l2cmVnX3Agc3Z5X2xvZ2lzdGljX3Agc3Z5X2xvZ2l0X3Agc3Z5X21sb2dpdF9wIHN2eV9uYnJlZ19wIHN2eV9vbG9naXRfcCBzdnlfb3Byb2JpdF9wIHN2eV9wb2lzc29uX3Agc3Z5X3Byb2JpdF9wIHN2eV9yZWdyZXNzX3Agc3Z5X3N1YiBzdnlfc3ViXzcgc3Z5X3ggc3Z5X3hfNyBzdnlfeF9wIHN2eWRlcyBzdnlkZXNfOCBzdnlnZW4gc3Z5Z25icmVnIHN2eWhlY2ttYW4gc3Z5aGVja3Byb2Igc3Z5aW50cmVnIHN2eWludHJlZ183IHN2eWludHJnIHN2eWl2cmVnIHN2eWxjIHN2eWxvZ19wIHN2eWxvZ2l0IHN2eW1hcmtvdXQgc3Z5bWFya291dF84IHN2eW1lYW4gc3Z5bWxvZyBzdnltbG9naXQgc3Z5bmJyZWcgc3Z5b2xvZyBzdnlvbG9naXQgc3Z5b3Byb2Igc3Z5b3Byb2JpdCBzdnlvcHRzIHN2eXBvaXMgc3Z5cG9pc183IHN2eXBvaXNzb24gc3Z5cHJvYml0IHN2eXByb2J0IHN2eXByb3Agc3Z5cHJvcF83IHN2eXJhdGlvIHN2eXJlZyBzdnlyZWdfcCBzdnlyZWdyZXNzIHN2eXNldCBzdnlzZXRfNyBzdnlzZXRfOCBzdnl0YWIgc3Z5dGFiXzcgc3Z5dGVzdCBzdnl0b3RhbCBzdyBzd184IHN3Y25yZWcgc3djb3ggc3dlcmVnIHN3aWxrIHN3bG9naXMgc3dsb2dpdCBzd29sb2dpdCBzd29wcmJ0IHN3cG9pcyBzd3Byb2JpdCBzd3FyZWcgc3d0b2JpdCBzd3dlaWIgc3ltbWV0cnkgc3ltbWkgc3ltcGxvdCBzeW1wbG90Xzcgc3ludGF4IHN5c2Rlc2NyaWJlIHN5c2RpciBzeXN1c2Ugc3pyb2V0ZXIgdGEgdGFiIHRhYjEgdGFiMiB0YWJfb3IgdGFiZCB0YWJkaSB0YWJkaXMgdGFiZGlzcCB0YWJpIHRhYmxlIHRhYm9kZHMgdGFib2Rkc183IHRhYnN0YXQgdGFidSB0YWJ1bCB0YWJ1bGEgdGFidWxhdCB0YWJ1bGF0ZSB0ZSB0ZW1wZmlsZSB0ZW1wbmFtZSB0ZW1wdmFyIHRlcyB0ZXN0IHRlc3RubCB0ZXN0cGFybSB0ZXN0c3RkIHRldHJhY2hvcmljIHRpbWVfaXQgdGltZXIgdGlzIHRvYiB0b2JpIHRvYml0IHRvYml0X3AgdG9iaXRfc3cgdG9rZW4gdG9rZW5pIHRva2VuaXogdG9rZW5pemUgdG9zdHJpbmcgdG90YWwgdHJhbnNsYXRlIHRyYW5zbGF0b3IgdHJhbnNtYXAgdHJlYXRfbGwgdHJlYXRyX3AgdHJlYXRyZWcgdHJpbSB0cmltZmlsbCB0cm5iX2NvbnMgdHJuYl9tZWFuIHRycG9pc3NfZDIgdHJ1bmNfbGwgdHJ1bmNyX3AgdHJ1bmNyZWcgdHNhcHBlbmQgdHNldCB0c2ZpbGwgdHNsaW5lIHRzbGluZV9leCB0c3JlcG9ydCB0c3JldmFyIHRzcmxpbmUgdHNzZXQgdHNzbW9vdGggdHN1bmFiIHR0ZXN0IHR0ZXN0aSB0dXRfY2hrIHR1dF93YWl0IHR1dG9yaWFsIHR3IHR3YXJlX3N0IHR3byB0d293YXkgdHdvd2F5X19mcGZpdF9zZXJzZXQgdHdvd2F5X19mdW5jdGlvbl9nZW4gdHdvd2F5X19oaXN0b2dyYW1fZ2VuIHR3b3dheV9faXBvaW50X3NlcnNldCB0d293YXlfX2lwb2ludHNfc2Vyc2V0IHR3b3dheV9fa2RlbnNpdHlfZ2VuIHR3b3dheV9fbGZpdF9zZXJzZXQgdHdvd2F5X19ub3JtZ2VuX2dlbiB0d293YXlfX3BjaV9zZXJzZXQgdHdvd2F5X19xZml0X3NlcnNldCB0d293YXlfX3NjYXR0ZXJpX3NlcnNldCB0d293YXlfX3N1bmZsb3dlcl9nZW4gdHdvd2F5X2tzbV9zZXJzZXQgdHkgdHlwIHR5cGUgdHlwZW9mIHV8MCB1bmFiIHVuYWJicmV2IHVuYWJjbWQgdXBkYXRlIHVzIHVzZSB1c2VsYWJlbCB2YXIgdmFyX21rY29tcGFuaW9uIHZhcl9wIHZhcmJhc2ljIHZhcmZjYXN0IHZhcmdyYW5nZXIgdmFyaXJmIHZhcmlyZl9hZGQgdmFyaXJmX2NncmFwaCB2YXJpcmZfY3JlYXRlIHZhcmlyZl9jdGFibGUgdmFyaXJmX2Rlc2NyaWJlIHZhcmlyZl9kaXIgdmFyaXJmX2Ryb3AgdmFyaXJmX2VyYXNlIHZhcmlyZl9ncmFwaCB2YXJpcmZfb2dyYXBoIHZhcmlyZl9yZW5hbWUgdmFyaXJmX3NldCB2YXJpcmZfdGFibGUgdmFybGlzdCB2YXJsbWFyIHZhcm5vcm0gdmFyc29jIHZhcnN0YWJsZSB2YXJzdGFibGVfdyB2YXJzdGFibGVfdzIgdmFyd2xlIHZjZSB2ZWMgdmVjX2ZldmQgdmVjX21rcGhpIHZlY19wIHZlY19wX3cgdmVjaXJmX2NyZWF0ZSB2ZWNsbWFyIHZlY2xtYXJfdyB2ZWNub3JtIHZlY25vcm1fdyB2ZWNyYW5rIHZlY3N0YWJsZSB2ZXJpbnN0IHZlcnMgdmVyc2kgdmVyc2lvIHZlcnNpb24gdmlldyB2aWV3c291cmNlIHZpZiB2d2xzIHdkYXRldG9mIHdlYmRlc2NyaWJlIHdlYnNlZWsgd2VidXNlIHdlaWIxX2xmIHdlaWIyX2xmIHdlaWJfbGYgd2VpYl9sZjAgd2VpYmhldF9nbGYgd2VpYmhldF9nbGZfc2ggd2VpYmhldF9nbGZhIHdlaWJoZXRfZ2xmYV9zaCB3ZWliaGV0X2dwIHdlaWJoZXRfaWxmIHdlaWJoZXRfaWxmX3NoIHdlaWJoZXRfaWxmYSB3ZWliaGV0X2lsZmFfc2ggd2VpYmhldF9pcCB3ZWlidV9zdyB3ZWlidWxfcCB3ZWlidWxsIHdlaWJ1bGxfYyB3ZWlidWxsX3Mgd2VpYnVsbGhldCB3aCB3aGVscCB3aGkgd2hpY2ggd2hpbCB3aGlsZSB3aWxjX3N0IHdpbGNveG9uIHdpbiB3aW5kIHdpbmRvIHdpbmRvdyB3aW5leGVjIHdudGVzdGIgd250ZXN0Yl83IHdudGVzdHEgeGNoYXJ0IHhjaGFydF83IHhjb3JyIHhjb3JyXzcgeGkgeGlfNiB4bWxzYXYgeG1sc2F2ZSB4bWx1c2UgeHBvc2UgeHNoIHhzaGUgeHNoZWwgeHNoZWxsIHh0X2lpcyB4dF90aXMgeHRhYl9wIHh0YWJvbmQgeHRiaW5fcCB4dGNsb2cgeHRjbG9nbG9nIHh0Y2xvZ2xvZ184IHh0Y2xvZ2xvZ19kMiB4dGNsb2dsb2dfcGFfcCB4dGNsb2dsb2dfcmVfcCB4dGNudF9wIHh0Y29yciB4dGRhdGEgeHRkZXMgeHRmcm9udF9wIHh0ZnJvbnRpZXIgeHRnZWUgeHRnZWVfZWxpbmsgeHRnZWVfZXN0YXQgeHRnZWVfbWFrZWl2YXIgeHRnZWVfcCB4dGdlZV9wbGluayB4dGdscyB4dGdsc19wIHh0aGF1cyB4dGhhdXNtYW4geHRodF9wIHh0aHRheWxvciB4dGlsZSB4dGludF9wIHh0aW50cmVnIHh0aW50cmVnXzggeHRpbnRyZWdfZDIgeHRpbnRyZWdfcCB4dGl2cF8xIHh0aXZwXzIgeHRpdnJlZyB4dGxpbmUgeHRsaW5lX2V4IHh0bG9naXQgeHRsb2dpdF84IHh0bG9naXRfZDIgeHRsb2dpdF9mZV9wIHh0bG9naXRfcGFfcCB4dGxvZ2l0X3JlX3AgeHRtaXhlZCB4dG1peGVkX2VzdGF0IHh0bWl4ZWRfcCB4dG5iX2ZlIHh0bmJfbGYgeHRuYnJlZyB4dG5icmVnX3BhX3AgeHRuYnJlZ19yZWZlX3AgeHRwY3NlIHh0cGNzZV9wIHh0cG9pcyB4dHBvaXNzb24geHRwb2lzc29uX2QyIHh0cG9pc3Nvbl9wYV9wIHh0cG9pc3Nvbl9yZWZlX3AgeHRwcmVkIHh0cHJvYml0IHh0cHJvYml0XzggeHRwcm9iaXRfZDIgeHRwcm9iaXRfcmVfcCB4dHBzX2ZlIHh0cHNfbGYgeHRwc19yZW4geHRwc19yZW5fOCB4dHJhcl9wIHh0cmMgeHRyY19wIHh0cmNoaCB4dHJlZmVfcCB4dHJlZyB4dHJlZ19iZSB4dHJlZ19mZSB4dHJlZ19tbCB4dHJlZ19wYV9wIHh0cmVnX3JlIHh0cmVnYXIgeHRyZXJlX3AgeHRzZXQgeHRzZl9sbCB4dHNmX2xsdGkgeHRzdW0geHR0YWIgeHR0ZXN0MCB4dHRvYml0IHh0dG9iaXRfOCB4dHRvYml0X3AgeHR0cmFucyB5eCB5eHZpZXdfX2Jhcmxpa2VfZHJhdyB5eHZpZXdfYXJlYV9kcmF3IHl4dmlld19iYXJfZHJhdyB5eHZpZXdfZG90X2RyYXcgeXh2aWV3X2Ryb3BsaW5lX2RyYXcgeXh2aWV3X2Z1bmN0aW9uX2RyYXcgeXh2aWV3X2lhcnJvd19kcmF3IHl4dmlld19pbGFiZWxzX2RyYXcgeXh2aWV3X25vcm1hbF9kcmF3IHl4dmlld19wY2Fycm93X2RyYXcgeXh2aWV3X3BjYmFycm93X2RyYXcgeXh2aWV3X3BjY2Fwc3ltX2RyYXcgeXh2aWV3X3Bjc2NhdHRlcl9kcmF3IHl4dmlld19wY3NwaWtlX2RyYXcgeXh2aWV3X3JhcmVhX2RyYXcgeXh2aWV3X3JiYXJfZHJhdyB5eHZpZXdfcmJhcm1fZHJhdyB5eHZpZXdfcmNhcF9kcmF3IHl4dmlld19yY2Fwc3ltX2RyYXcgeXh2aWV3X3Jjb25uZWN0ZWRfZHJhdyB5eHZpZXdfcmxpbmVfZHJhdyB5eHZpZXdfcnNjYXR0ZXJfZHJhdyB5eHZpZXdfcnNwaWtlX2RyYXcgeXh2aWV3X3NwaWtlX2RyYXcgeXh2aWV3X3N1bmZsb3dlcl9kcmF3IHphcF9zIHppbmIgemluYl9sbGYgemluYl9wbGYgemlwIHppcF9sbGYgemlwX3AgemlwX3BsZiB6dF9jdF81IHp0X2hjXzUgenRfaGNkXzUgenRfaXNfNSB6dF9pc3NfNSB6dF9zaG9fNSB6dF9zbXBfNSB6dGJhc2VfNSB6dGNveF81IHp0ZGVzXzUgenRlcmVnXzUgenRmaWxsXzUgenRnZW5fNSB6dGlyXzUgenRqb2luXzUgenRuYiB6dG5iX3AgenRwIHp0cF9wIHp0c181IHp0c2V0XzUgenRzcGxpXzUgenRzdW1fNSB6dHRvY3RfNSB6dHZhcnlfNSB6dHdlaWJfNSIsY29udGFpbnM6W3tjbGFzc05hbWU6InN5bWJvbCIsYmVnaW46L2BbYS16QS1aMC05X10rJy99LHtjbGFzc05hbWU6InZhcmlhYmxlIixiZWdpbjovXCRcez9bYS16QS1aMC05X10rXH0/L30se2NsYXNzTmFtZToic3RyaW5nIix2YXJpYW50czpbe2JlZ2luOmBcYCJbXlxyCitdKj8iJ2B9LHtiZWdpbjpgIlteXHIKKyJdKiJgfV19LHtjbGFzc05hbWU6ImJ1aWx0X2luIix2YXJpYW50czpbe2JlZ2luOiJcXGIoYWJzfGFjb3N8YXNpbnxhdGFufGF0YW4yfGF0YW5ofGNlaWx8Y2xvZ2xvZ3xjb21ifGNvc3xkaWdhbW1hfGV4cHxmbG9vcnxpbnZjbG9nbG9nfGludmxvZ2l0fGxufGxuZmFjdHxsbmZhY3RvcmlhbHxsbmdhbW1hfGxvZ3xsb2cxMHxtYXh8bWlufG1vZHxyZWxkaWZ8cm91bmR8c2lnbnxzaW58c3FydHxzdW18dGFufHRhbmh8dHJpZ2FtbWF8dHJ1bmN8YmV0YWRlbnxCaW5vbWlhbHxiaW5vcm18Ymlub3JtYWx8Y2hpMnxjaGkydGFpbHxkZ2FtbWFwZGF8ZGdhbW1hcGRhZGF8ZGdhbW1hcGRhZHh8ZGdhbW1hcGR4fGRnYW1tYXBkeGR4fEZ8RmRlbnxGdGFpbHxnYW1tYWRlbnxnYW1tYXB8aWJldGF8aW52Ymlub21pYWx8aW52Y2hpMnxpbnZjaGkydGFpbHxpbnZGfGludkZ0YWlsfGludmdhbW1hcHxpbnZpYmV0YXxpbnZuY2hpMnxpbnZuRnRhaWx8aW52bmliZXRhfGludm5vcm18aW52bm9ybWFsfGludnR0YWlsfG5iZXRhZGVufG5jaGkyfG5GZGVufG5GdGFpbHxuaWJldGF8bm9ybXxub3JtYWx8bm9ybWFsZGVufG5vcm1kfG5wbmNoaTJ8dGRlbnx0dGFpbHx1bmlmb3JtfGFiYnJldnxjaGFyfGluZGV4fGluZGV4bm90fGxlbmd0aHxsb3dlcnxsdHJpbXxtYXRjaHxwbHVyYWx8cHJvcGVyfHJlYWx8cmVnZXhtfHJlZ2V4cnxyZWdleHN8cmV2ZXJzZXxydHJpbXxzdHJpbmd8c3RybGVufHN0cmxvd2VyfHN0cmx0cmltfHN0cm1hdGNofHN0cm9mcmVhbHxzdHJwb3N8c3RycHJvcGVyfHN0cnJldmVyc2V8c3RycnRyaW18c3RydHJpbXxzdHJ1cHBlcnxzdWJpbnN0cnxzdWJpbndvcmR8c3Vic3RyfHRyaW18dXBwZXJ8d29yZHx3b3JkY291bnR8X2NhbGxlcnxhdXRvY29kZXxieXRlb3JkZXJ8Y2hvcHxjbGlwfGNvbmR8ZXxlcHNkb3VibGV8ZXBzZmxvYXR8Z3JvdXB8aW5saXN0fGlucmFuZ2V8aXJlY29kZXxtYXRyaXh8bWF4Ynl0ZXxtYXhkb3VibGV8bWF4ZmxvYXR8bWF4aW50fG1heGxvbmd8bWl8bWluYnl0ZXxtaW5kb3VibGV8bWluZmxvYXR8bWluaW50fG1pbmxvbmd8bWlzc2luZ3xyfHJlY29kZXxyZXBsYXl8cmV0dXJufHN8c2NhbGFyfGR8ZGF0ZXxkYXl8ZG93fGRveXxoYWxmeWVhcnxtZHl8bW9udGh8cXVhcnRlcnx3ZWVrfHllYXJ8ZHxkYWlseXxkb2ZkfGRvZmh8ZG9mbXxkb2ZxfGRvZnd8ZG9meXxofGhhbGZ5ZWFybHl8aG9mZHxtfG1vZmR8bW9udGhseXxxfHFvZmR8cXVhcnRlcmx5fHRpbnx0d2l0aGlufHd8d2Vla2x5fHdvZmR8eXx5ZWFybHl8eWh8eW18eW9mZHx5cXx5d3xjaG9sZXNreXxjb2xudW1ifGNvbHNvZnxjb3JyfGRldHxkaWFnfGRpYWcwY250fGVsfGdldHxoYWRhbWFyZHxJfGludnxpbnZzeW18aXNzeW18aXNzeW1tZXRyaWN8SnxtYXRtaXNzaW5nfG1hdHVuaWZvcm18bXJlbGRpZnxudWxsbWF0fHJvd251bWJ8cm93c29mfHN3ZWVwfHN5bWludnx0cmFjZXx2ZWN8dmVjZGlhZykoPz1cXCgpIn1dfSxlLkNPTU1FTlQoIl5bIAldKlxcKi4qJCIsITEpLGUuQ19MSU5FX0NPTU1FTlRfTU9ERSxlLkNfQkxPQ0tfQ09NTUVOVF9NT0RFXX19cy5leHBvcnRzPXJ9LDMxMjQ0OmZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHIoZSl7cmV0dXJue25hbWU6IlNURVAgUGFydCAyMSIsYWxpYXNlczpbInAyMSIsInN0ZXAiLCJzdHAiXSxjYXNlX2luc2Vuc2l0aXZlOiEwLGtleXdvcmRzOnskcGF0dGVybjoiW0EtWl9dW0EtWjAtOV8uXSoiLGtleXdvcmQ6IkhFQURFUiBFTkRTRUMgREFUQSJ9LGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJtZXRhIixiZWdpbjoiSVNPLTEwMzAzLTIxOyIscmVsZXZhbmNlOjEwfSx7Y2xhc3NOYW1lOiJtZXRhIixiZWdpbjoiRU5ELUlTTy0xMDMwMy0yMTsiLHJlbGV2YW5jZToxMH0sZS5DX0xJTkVfQ09NTUVOVF9NT0RFLGUuQ19CTE9DS19DT01NRU5UX01PREUsZS5DT01NRU5UKCIvXFwqXFwqISIsIlxcKi8iKSxlLkNfTlVNQkVSX01PREUsZS5pbmhlcml0KGUuQVBPU19TVFJJTkdfTU9ERSx7aWxsZWdhbDpudWxsfSksZS5pbmhlcml0KGUuUVVPVEVfU1RSSU5HX01PREUse2lsbGVnYWw6bnVsbH0pLHtjbGFzc05hbWU6InN0cmluZyIsYmVnaW46IiciLGVuZDoiJyJ9LHtjbGFzc05hbWU6InN5bWJvbCIsdmFyaWFudHM6W3tiZWdpbjoiIyIsZW5kOiJcXGQrIixpbGxlZ2FsOiJcXFcifV19XX19cy5leHBvcnRzPXJ9LDg2MTgyOmZ1bmN0aW9uKHMpe2NvbnN0IHI9bD0+KHtJTVBPUlRBTlQ6e2NsYXNzTmFtZToibWV0YSIsYmVnaW46IiFpbXBvcnRhbnQifSxIRVhDT0xPUjp7Y2xhc3NOYW1lOiJudW1iZXIiLGJlZ2luOiIjKFthLWZBLUYwLTldezZ9fFthLWZBLUYwLTldezN9KSJ9LEFUVFJJQlVURV9TRUxFQ1RPUl9NT0RFOntjbGFzc05hbWU6InNlbGVjdG9yLWF0dHIiLGJlZ2luOi9cWy8sZW5kOi9cXS8saWxsZWdhbDoiJCIsY29udGFpbnM6W2wuQVBPU19TVFJJTkdfTU9ERSxsLlFVT1RFX1NUUklOR19NT0RFXX19KSxlPVsiYSIsImFiYnIiLCJhZGRyZXNzIiwiYXJ0aWNsZSIsImFzaWRlIiwiYXVkaW8iLCJiIiwiYmxvY2txdW90ZSIsImJvZHkiLCJidXR0b24iLCJjYW52YXMiLCJjYXB0aW9uIiwiY2l0ZSIsImNvZGUiLCJkZCIsImRlbCIsImRldGFpbHMiLCJkZm4iLCJkaXYiLCJkbCIsImR0IiwiZW0iLCJmaWVsZHNldCIsImZpZ2NhcHRpb24iLCJmaWd1cmUiLCJmb290ZXIiLCJmb3JtIiwiaDEiLCJoMiIsImgzIiwiaDQiLCJoNSIsImg2IiwiaGVhZGVyIiwiaGdyb3VwIiwiaHRtbCIsImkiLCJpZnJhbWUiLCJpbWciLCJpbnB1dCIsImlucyIsImtiZCIsImxhYmVsIiwibGVnZW5kIiwibGkiLCJtYWluIiwibWFyayIsIm1lbnUiLCJuYXYiLCJvYmplY3QiLCJvbCIsInAiLCJxIiwicXVvdGUiLCJzYW1wIiwic2VjdGlvbiIsInNwYW4iLCJzdHJvbmciLCJzdW1tYXJ5Iiwic3VwIiwidGFibGUiLCJ0Ym9keSIsInRkIiwidGV4dGFyZWEiLCJ0Zm9vdCIsInRoIiwidGhlYWQiLCJ0aW1lIiwidHIiLCJ1bCIsInZhciIsInZpZGVvIl0sdD1bImFueS1ob3ZlciIsImFueS1wb2ludGVyIiwiYXNwZWN0LXJhdGlvIiwiY29sb3IiLCJjb2xvci1nYW11dCIsImNvbG9yLWluZGV4IiwiZGV2aWNlLWFzcGVjdC1yYXRpbyIsImRldmljZS1oZWlnaHQiLCJkZXZpY2Utd2lkdGgiLCJkaXNwbGF5LW1vZGUiLCJmb3JjZWQtY29sb3JzIiwiZ3JpZCIsImhlaWdodCIsImhvdmVyIiwiaW52ZXJ0ZWQtY29sb3JzIiwibW9ub2Nocm9tZSIsIm9yaWVudGF0aW9uIiwib3ZlcmZsb3ctYmxvY2siLCJvdmVyZmxvdy1pbmxpbmUiLCJwb2ludGVyIiwicHJlZmVycy1jb2xvci1zY2hlbWUiLCJwcmVmZXJzLWNvbnRyYXN0IiwicHJlZmVycy1yZWR1Y2VkLW1vdGlvbiIsInByZWZlcnMtcmVkdWNlZC10cmFuc3BhcmVuY3kiLCJyZXNvbHV0aW9uIiwic2NhbiIsInNjcmlwdGluZyIsInVwZGF0ZSIsIndpZHRoIiwibWluLXdpZHRoIiwibWF4LXdpZHRoIiwibWluLWhlaWdodCIsIm1heC1oZWlnaHQiXSxuPVsiYWN0aXZlIiwiYW55LWxpbmsiLCJibGFuayIsImNoZWNrZWQiLCJjdXJyZW50IiwiZGVmYXVsdCIsImRlZmluZWQiLCJkaXIiLCJkaXNhYmxlZCIsImRyb3AiLCJlbXB0eSIsImVuYWJsZWQiLCJmaXJzdCIsImZpcnN0LWNoaWxkIiwiZmlyc3Qtb2YtdHlwZSIsImZ1bGxzY3JlZW4iLCJmdXR1cmUiLCJmb2N1cyIsImZvY3VzLXZpc2libGUiLCJmb2N1cy13aXRoaW4iLCJoYXMiLCJob3N0IiwiaG9zdC1jb250ZXh0IiwiaG92ZXIiLCJpbmRldGVybWluYXRlIiwiaW4tcmFuZ2UiLCJpbnZhbGlkIiwiaXMiLCJsYW5nIiwibGFzdC1jaGlsZCIsImxhc3Qtb2YtdHlwZSIsImxlZnQiLCJsaW5rIiwibG9jYWwtbGluayIsIm5vdCIsIm50aC1jaGlsZCIsIm50aC1jb2wiLCJudGgtbGFzdC1jaGlsZCIsIm50aC1sYXN0LWNvbCIsIm50aC1sYXN0LW9mLXR5cGUiLCJudGgtb2YtdHlwZSIsIm9ubHktY2hpbGQiLCJvbmx5LW9mLXR5cGUiLCJvcHRpb25hbCIsIm91dC1vZi1yYW5nZSIsInBhc3QiLCJwbGFjZWhvbGRlci1zaG93biIsInJlYWQtb25seSIsInJlYWQtd3JpdGUiLCJyZXF1aXJlZCIsInJpZ2h0Iiwicm9vdCIsInNjb3BlIiwidGFyZ2V0IiwidGFyZ2V0LXdpdGhpbiIsInVzZXItaW52YWxpZCIsInZhbGlkIiwidmlzaXRlZCIsIndoZXJlIl0sYT1bImFmdGVyIiwiYmFja2Ryb3AiLCJiZWZvcmUiLCJjdWUiLCJjdWUtcmVnaW9uIiwiZmlyc3QtbGV0dGVyIiwiZmlyc3QtbGluZSIsImdyYW1tYXItZXJyb3IiLCJtYXJrZXIiLCJwYXJ0IiwicGxhY2Vob2xkZXIiLCJzZWxlY3Rpb24iLCJzbG90dGVkIiwic3BlbGxpbmctZXJyb3IiXSxpPVsiYWxpZ24tY29udGVudCIsImFsaWduLWl0ZW1zIiwiYWxpZ24tc2VsZiIsImFuaW1hdGlvbiIsImFuaW1hdGlvbi1kZWxheSIsImFuaW1hdGlvbi1kaXJlY3Rpb24iLCJhbmltYXRpb24tZHVyYXRpb24iLCJhbmltYXRpb24tZmlsbC1tb2RlIiwiYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCIsImFuaW1hdGlvbi1uYW1lIiwiYW5pbWF0aW9uLXBsYXktc3RhdGUiLCJhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uIiwiYXV0byIsImJhY2tmYWNlLXZpc2liaWxpdHkiLCJiYWNrZ3JvdW5kIiwiYmFja2dyb3VuZC1hdHRhY2htZW50IiwiYmFja2dyb3VuZC1jbGlwIiwiYmFja2dyb3VuZC1jb2xvciIsImJhY2tncm91bmQtaW1hZ2UiLCJiYWNrZ3JvdW5kLW9yaWdpbiIsImJhY2tncm91bmQtcG9zaXRpb24iLCJiYWNrZ3JvdW5kLXJlcGVhdCIsImJhY2tncm91bmQtc2l6ZSIsImJvcmRlciIsImJvcmRlci1ib3R0b20iLCJib3JkZXItYm90dG9tLWNvbG9yIiwiYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1cyIsImJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzIiwiYm9yZGVyLWJvdHRvbS1zdHlsZSIsImJvcmRlci1ib3R0b20td2lkdGgiLCJib3JkZXItY29sbGFwc2UiLCJib3JkZXItY29sb3IiLCJib3JkZXItaW1hZ2UiLCJib3JkZXItaW1hZ2Utb3V0c2V0IiwiYm9yZGVyLWltYWdlLXJlcGVhdCIsImJvcmRlci1pbWFnZS1zbGljZSIsImJvcmRlci1pbWFnZS1zb3VyY2UiLCJib3JkZXItaW1hZ2Utd2lkdGgiLCJib3JkZXItbGVmdCIsImJvcmRlci1sZWZ0LWNvbG9yIiwiYm9yZGVyLWxlZnQtc3R5bGUiLCJib3JkZXItbGVmdC13aWR0aCIsImJvcmRlci1yYWRpdXMiLCJib3JkZXItcmlnaHQiLCJib3JkZXItcmlnaHQtY29sb3IiLCJib3JkZXItcmlnaHQtc3R5bGUiLCJib3JkZXItcmlnaHQtd2lkdGgiLCJib3JkZXItc3BhY2luZyIsImJvcmRlci1zdHlsZSIsImJvcmRlci10b3AiLCJib3JkZXItdG9wLWNvbG9yIiwiYm9yZGVyLXRvcC1sZWZ0LXJhZGl1cyIsImJvcmRlci10b3AtcmlnaHQtcmFkaXVzIiwiYm9yZGVyLXRvcC1zdHlsZSIsImJvcmRlci10b3Atd2lkdGgiLCJib3JkZXItd2lkdGgiLCJib3R0b20iLCJib3gtZGVjb3JhdGlvbi1icmVhayIsImJveC1zaGFkb3ciLCJib3gtc2l6aW5nIiwiYnJlYWstYWZ0ZXIiLCJicmVhay1iZWZvcmUiLCJicmVhay1pbnNpZGUiLCJjYXB0aW9uLXNpZGUiLCJjbGVhciIsImNsaXAiLCJjbGlwLXBhdGgiLCJjb2xvciIsImNvbHVtbi1jb3VudCIsImNvbHVtbi1maWxsIiwiY29sdW1uLWdhcCIsImNvbHVtbi1ydWxlIiwiY29sdW1uLXJ1bGUtY29sb3IiLCJjb2x1bW4tcnVsZS1zdHlsZSIsImNvbHVtbi1ydWxlLXdpZHRoIiwiY29sdW1uLXNwYW4iLCJjb2x1bW4td2lkdGgiLCJjb2x1bW5zIiwiY29udGVudCIsImNvdW50ZXItaW5jcmVtZW50IiwiY291bnRlci1yZXNldCIsImN1cnNvciIsImRpcmVjdGlvbiIsImRpc3BsYXkiLCJlbXB0eS1jZWxscyIsImZpbHRlciIsImZsZXgiLCJmbGV4LWJhc2lzIiwiZmxleC1kaXJlY3Rpb24iLCJmbGV4LWZsb3ciLCJmbGV4LWdyb3ciLCJmbGV4LXNocmluayIsImZsZXgtd3JhcCIsImZsb2F0IiwiZm9udCIsImZvbnQtZGlzcGxheSIsImZvbnQtZmFtaWx5IiwiZm9udC1mZWF0dXJlLXNldHRpbmdzIiwiZm9udC1rZXJuaW5nIiwiZm9udC1sYW5ndWFnZS1vdmVycmlkZSIsImZvbnQtc2l6ZSIsImZvbnQtc2l6ZS1hZGp1c3QiLCJmb250LXNtb290aGluZyIsImZvbnQtc3RyZXRjaCIsImZvbnQtc3R5bGUiLCJmb250LXZhcmlhbnQiLCJmb250LXZhcmlhbnQtbGlnYXR1cmVzIiwiZm9udC12YXJpYXRpb24tc2V0dGluZ3MiLCJmb250LXdlaWdodCIsImhlaWdodCIsImh5cGhlbnMiLCJpY29uIiwiaW1hZ2Utb3JpZW50YXRpb24iLCJpbWFnZS1yZW5kZXJpbmciLCJpbWFnZS1yZXNvbHV0aW9uIiwiaW1lLW1vZGUiLCJpbmhlcml0IiwiaW5pdGlhbCIsImp1c3RpZnktY29udGVudCIsImxlZnQiLCJsZXR0ZXItc3BhY2luZyIsImxpbmUtaGVpZ2h0IiwibGlzdC1zdHlsZSIsImxpc3Qtc3R5bGUtaW1hZ2UiLCJsaXN0LXN0eWxlLXBvc2l0aW9uIiwibGlzdC1zdHlsZS10eXBlIiwibWFyZ2luIiwibWFyZ2luLWJvdHRvbSIsIm1hcmdpbi1sZWZ0IiwibWFyZ2luLXJpZ2h0IiwibWFyZ2luLXRvcCIsIm1hcmtzIiwibWFzayIsIm1heC1oZWlnaHQiLCJtYXgtd2lkdGgiLCJtaW4taGVpZ2h0IiwibWluLXdpZHRoIiwibmF2LWRvd24iLCJuYXYtaW5kZXgiLCJuYXYtbGVmdCIsIm5hdi1yaWdodCIsIm5hdi11cCIsIm5vbmUiLCJub3JtYWwiLCJvYmplY3QtZml0Iiwib2JqZWN0LXBvc2l0aW9uIiwib3BhY2l0eSIsIm9yZGVyIiwib3JwaGFucyIsIm91dGxpbmUiLCJvdXRsaW5lLWNvbG9yIiwib3V0bGluZS1vZmZzZXQiLCJvdXRsaW5lLXN0eWxlIiwib3V0bGluZS13aWR0aCIsIm92ZXJmbG93Iiwib3ZlcmZsb3ctd3JhcCIsIm92ZXJmbG93LXgiLCJvdmVyZmxvdy15IiwicGFkZGluZyIsInBhZGRpbmctYm90dG9tIiwicGFkZGluZy1sZWZ0IiwicGFkZGluZy1yaWdodCIsInBhZGRpbmctdG9wIiwicGFnZS1icmVhay1hZnRlciIsInBhZ2UtYnJlYWstYmVmb3JlIiwicGFnZS1icmVhay1pbnNpZGUiLCJwZXJzcGVjdGl2ZSIsInBlcnNwZWN0aXZlLW9yaWdpbiIsInBvaW50ZXItZXZlbnRzIiwicG9zaXRpb24iLCJxdW90ZXMiLCJyZXNpemUiLCJyaWdodCIsInNyYyIsInRhYi1zaXplIiwidGFibGUtbGF5b3V0IiwidGV4dC1hbGlnbiIsInRleHQtYWxpZ24tbGFzdCIsInRleHQtZGVjb3JhdGlvbiIsInRleHQtZGVjb3JhdGlvbi1jb2xvciIsInRleHQtZGVjb3JhdGlvbi1saW5lIiwidGV4dC1kZWNvcmF0aW9uLXN0eWxlIiwidGV4dC1pbmRlbnQiLCJ0ZXh0LW92ZXJmbG93IiwidGV4dC1yZW5kZXJpbmciLCJ0ZXh0LXNoYWRvdyIsInRleHQtdHJhbnNmb3JtIiwidGV4dC11bmRlcmxpbmUtcG9zaXRpb24iLCJ0b3AiLCJ0cmFuc2Zvcm0iLCJ0cmFuc2Zvcm0tb3JpZ2luIiwidHJhbnNmb3JtLXN0eWxlIiwidHJhbnNpdGlvbiIsInRyYW5zaXRpb24tZGVsYXkiLCJ0cmFuc2l0aW9uLWR1cmF0aW9uIiwidHJhbnNpdGlvbi1wcm9wZXJ0eSIsInRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uIiwidW5pY29kZS1iaWRpIiwidmVydGljYWwtYWxpZ24iLCJ2aXNpYmlsaXR5Iiwid2hpdGUtc3BhY2UiLCJ3aWRvd3MiLCJ3aWR0aCIsIndvcmQtYnJlYWsiLCJ3b3JkLXNwYWNpbmciLCJ3b3JkLXdyYXAiLCJ6LWluZGV4Il0ucmV2ZXJzZSgpO2Z1bmN0aW9uIG8obCl7Y29uc3QgYz1yKGwpLF89ImFuZCBvciBub3Qgb25seSIsZD17Y2xhc3NOYW1lOiJ2YXJpYWJsZSIsYmVnaW46IlxcJCIrbC5JREVOVF9SRX0sZz1bImNoYXJzZXQiLCJjc3MiLCJkZWJ1ZyIsImV4dGVuZCIsImZvbnQtZmFjZSIsImZvciIsImltcG9ydCIsImluY2x1ZGUiLCJrZXlmcmFtZXMiLCJtZWRpYSIsIm1peGluIiwicGFnZSIsIndhcm4iLCJ3aGlsZSJdLEU9Iig/PVsuXFxzXFxuWzosKF0pIjtyZXR1cm57bmFtZToiU3R5bHVzIixhbGlhc2VzOlsic3R5bCJdLGNhc2VfaW5zZW5zaXRpdmU6ITEsa2V5d29yZHM6ImlmIGVsc2UgZm9yIGluIixpbGxlZ2FsOiIoIitbIlxcPyIsIihcXGJSZXR1cm5cXGIpIiwiKFxcYkVuZFxcYikiLCIoXFxiZW5kXFxiKSIsIihcXGJkZWZcXGIpIiwiOyIsIiNcXHMiLCJcXCpcXHMiLCI9PT1cXHMiLCJcXHwiLCIlIl0uam9pbigifCIpKyIpIixjb250YWluczpbbC5RVU9URV9TVFJJTkdfTU9ERSxsLkFQT1NfU1RSSU5HX01PREUsbC5DX0xJTkVfQ09NTUVOVF9NT0RFLGwuQ19CTE9DS19DT01NRU5UX01PREUsYy5IRVhDT0xPUix7YmVnaW46IlxcLlthLXpBLVpdW2EtekEtWjAtOV8tXSoiK0UsY2xhc3NOYW1lOiJzZWxlY3Rvci1jbGFzcyJ9LHtiZWdpbjoiI1thLXpBLVpdW2EtekEtWjAtOV8tXSoiK0UsY2xhc3NOYW1lOiJzZWxlY3Rvci1pZCJ9LHtiZWdpbjoiXFxiKCIrZS5qb2luKCJ8IikrIikiK0UsY2xhc3NOYW1lOiJzZWxlY3Rvci10YWcifSx7Y2xhc3NOYW1lOiJzZWxlY3Rvci1wc2V1ZG8iLGJlZ2luOiImPzooIituLmpvaW4oInwiKSsiKSIrRX0se2NsYXNzTmFtZToic2VsZWN0b3ItcHNldWRvIixiZWdpbjoiJj86OigiK2Euam9pbigifCIpKyIpIitFfSxjLkFUVFJJQlVURV9TRUxFQ1RPUl9NT0RFLHtjbGFzc05hbWU6ImtleXdvcmQiLGJlZ2luOi9AbWVkaWEvLHN0YXJ0czp7ZW5kOi9bezt9XS8sa2V5d29yZHM6eyRwYXR0ZXJuOi9bYS16LV0rLyxrZXl3b3JkOl8sYXR0cmlidXRlOnQuam9pbigiICIpfSxjb250YWluczpbbC5DU1NfTlVNQkVSX01PREVdfX0se2NsYXNzTmFtZToia2V5d29yZCIsYmVnaW46IkAoKC0ob3xtb3p8bXN8d2Via2l0KS0pPygiK2cuam9pbigifCIpKyIpKVxcYiJ9LGQsbC5DU1NfTlVNQkVSX01PREUse2NsYXNzTmFtZToiZnVuY3Rpb24iLGJlZ2luOiJeW2EtekEtWl1bYS16QS1aMC05Xy1dKlxcKC4qXFwpIixpbGxlZ2FsOiJbXFxuXSIscmV0dXJuQmVnaW46ITAsY29udGFpbnM6W3tjbGFzc05hbWU6InRpdGxlIixiZWdpbjoiXFxiW2EtekEtWl1bYS16QS1aMC05Xy1dKiJ9LHtjbGFzc05hbWU6InBhcmFtcyIsYmVnaW46L1woLyxlbmQ6L1wpLyxjb250YWluczpbYy5IRVhDT0xPUixkLGwuQVBPU19TVFJJTkdfTU9ERSxsLkNTU19OVU1CRVJfTU9ERSxsLlFVT1RFX1NUUklOR19NT0RFXX1dfSx7Y2xhc3NOYW1lOiJhdHRyaWJ1dGUiLGJlZ2luOiJcXGIoIitpLmpvaW4oInwiKSsiKVxcYiIsc3RhcnRzOntlbmQ6Lzt8JC8sY29udGFpbnM6W2MuSEVYQ09MT1IsZCxsLkFQT1NfU1RSSU5HX01PREUsbC5RVU9URV9TVFJJTkdfTU9ERSxsLkNTU19OVU1CRVJfTU9ERSxsLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLGMuSU1QT1JUQU5UXSxpbGxlZ2FsOi9cLi8scmVsZXZhbmNlOjB9fV19fXMuZXhwb3J0cz1vfSw5MjYwNDpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGUpe3JldHVybntuYW1lOiJTdWJVbml0IixjYXNlX2luc2Vuc2l0aXZlOiEwLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOmBcXFsKKyhtdWx0aXBhcnQpP2AsZW5kOmBcXF0KK2B9LHtjbGFzc05hbWU6InN0cmluZyIsYmVnaW46IlxcZHs0fS1cXGR7Mn0tXFxkezJ9KFxccyspXFxkezJ9OlxcZHsyfTpcXGR7Mn0uXFxkK1oifSx7Y2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOiIoXFwrfC0pXFxkKyJ9LHtjbGFzc05hbWU6ImtleXdvcmQiLHJlbGV2YW5jZToxMCx2YXJpYW50czpbe2JlZ2luOiJeKHRlc3R8dGVzdGluZ3xzdWNjZXNzfHN1Y2Nlc3NmdWx8ZmFpbHVyZXxlcnJvcnxza2lwfHhmYWlsfHV4c3VjY2VzcykoOj8pXFxzKyh0ZXN0KT8ifSx7YmVnaW46Il5wcm9ncmVzcyg6PykoXFxzKyk/KHBvcHxwdXNoKT8ifSx7YmVnaW46Il50YWdzOiJ9LHtiZWdpbjoiXnRpbWU6In1dfV19fXMuZXhwb3J0cz1yfSwxMzkyNTpmdW5jdGlvbihzKXtmdW5jdGlvbiByKEEpe3JldHVybiBBP3R5cGVvZiBBPT0ic3RyaW5nIj9BOkEuc291cmNlOm51bGx9ZnVuY3Rpb24gZShBKXtyZXR1cm4gdCgiKD89IixBLCIpIil9ZnVuY3Rpb24gdCguLi5BKXtyZXR1cm4gQS5tYXAoQj0+cihCKSkuam9pbigiIil9ZnVuY3Rpb24gbiguLi5BKXtyZXR1cm4iKCIrQS5tYXAoQj0+cihCKSkuam9pbigifCIpKyIpIn1jb25zdCBhPUE9PnQoL1xiLyxBLC9cdyQvLnRlc3QoQSk/L1xiLzovXEIvKSxpPVsiUHJvdG9jb2wiLCJUeXBlIl0ubWFwKGEpLG89WyJpbml0Iiwic2VsZiJdLm1hcChhKSxsPVsiQW55IiwiU2VsZiJdLGM9WyJhc3NvY2lhdGVkdHlwZSIsImFzeW5jIiwiYXdhaXQiLC9hc1w/LywvYXMhLywiYXMiLCJicmVhayIsImNhc2UiLCJjYXRjaCIsImNsYXNzIiwiY29udGludWUiLCJjb252ZW5pZW5jZSIsImRlZmF1bHQiLCJkZWZlciIsImRlaW5pdCIsImRpZFNldCIsImRvIiwiZHluYW1pYyIsImVsc2UiLCJlbnVtIiwiZXh0ZW5zaW9uIiwiZmFsbHRocm91Z2giLC9maWxlcHJpdmF0ZVwoc2V0XCkvLCJmaWxlcHJpdmF0ZSIsImZpbmFsIiwiZm9yIiwiZnVuYyIsImdldCIsImd1YXJkIiwiaWYiLCJpbXBvcnQiLCJpbmRpcmVjdCIsImluZml4IiwvaW5pdFw/LywvaW5pdCEvLCJpbm91dCIsL2ludGVybmFsXChzZXRcKS8sImludGVybmFsIiwiaW4iLCJpcyIsImxhenkiLCJsZXQiLCJtdXRhdGluZyIsIm5vbm11dGF0aW5nIiwvb3Blblwoc2V0XCkvLCJvcGVuIiwib3BlcmF0b3IiLCJvcHRpb25hbCIsIm92ZXJyaWRlIiwicG9zdGZpeCIsInByZWNlZGVuY2Vncm91cCIsInByZWZpeCIsL3ByaXZhdGVcKHNldFwpLywicHJpdmF0ZSIsInByb3RvY29sIiwvcHVibGljXChzZXRcKS8sInB1YmxpYyIsInJlcGVhdCIsInJlcXVpcmVkIiwicmV0aHJvd3MiLCJyZXR1cm4iLCJzZXQiLCJzb21lIiwic3RhdGljIiwic3RydWN0Iiwic3Vic2NyaXB0Iiwic3VwZXIiLCJzd2l0Y2giLCJ0aHJvd3MiLCJ0aHJvdyIsL3RyeVw/LywvdHJ5IS8sInRyeSIsInR5cGVhbGlhcyIsL3Vub3duZWRcKHNhZmVcKS8sL3Vub3duZWRcKHVuc2FmZVwpLywidW5vd25lZCIsInZhciIsIndlYWsiLCJ3aGVyZSIsIndoaWxlIiwid2lsbFNldCJdLF89WyJmYWxzZSIsIm5pbCIsInRydWUiXSxkPVsiYXNzaWdubWVudCIsImFzc29jaWF0aXZpdHkiLCJoaWdoZXJUaGFuIiwibGVmdCIsImxvd2VyVGhhbiIsIm5vbmUiLCJyaWdodCJdLGc9WyIjY29sb3JMaXRlcmFsIiwiI2NvbHVtbiIsIiNkc29oYW5kbGUiLCIjZWxzZSIsIiNlbHNlaWYiLCIjZW5kaWYiLCIjZXJyb3IiLCIjZmlsZSIsIiNmaWxlSUQiLCIjZmlsZUxpdGVyYWwiLCIjZmlsZVBhdGgiLCIjZnVuY3Rpb24iLCIjaWYiLCIjaW1hZ2VMaXRlcmFsIiwiI2tleVBhdGgiLCIjbGluZSIsIiNzZWxlY3RvciIsIiNzb3VyY2VMb2NhdGlvbiIsIiN3YXJuX3VucXVhbGlmaWVkX2FjY2VzcyIsIiN3YXJuaW5nIl0sRT1bImFicyIsImFsbCIsImFueSIsImFzc2VydCIsImFzc2VydGlvbkZhaWx1cmUiLCJkZWJ1Z1ByaW50IiwiZHVtcCIsImZhdGFsRXJyb3IiLCJnZXRWYUxpc3QiLCJpc0tub3duVW5pcXVlbHlSZWZlcmVuY2VkIiwibWF4IiwibWluIiwibnVtZXJpY0Nhc3QiLCJwb2ludHdpc2VNYXgiLCJwb2ludHdpc2VNaW4iLCJwcmVjb25kaXRpb24iLCJwcmVjb25kaXRpb25GYWlsdXJlIiwicHJpbnQiLCJyZWFkTGluZSIsInJlcGVhdEVsZW1lbnQiLCJzZXF1ZW5jZSIsInN0cmlkZSIsInN3YXAiLCJzd2lmdF91bmJveEZyb21Td2lmdFZhbHVlV2l0aFR5cGUiLCJ0cmFuc2NvZGUiLCJ0eXBlIiwidW5zYWZlQml0Q2FzdCIsInVuc2FmZURvd25jYXN0Iiwid2l0aEV4dGVuZGVkTGlmZXRpbWUiLCJ3aXRoVW5zYWZlTXV0YWJsZVBvaW50ZXIiLCJ3aXRoVW5zYWZlUG9pbnRlciIsIndpdGhWYUxpc3QiLCJ3aXRob3V0QWN0dWFsbHlFc2NhcGluZyIsInppcCJdLHU9bigvWy89XC0rISolPD4mfF5+P10vLC9bXHUwMEExLVx1MDBBN10vLC9bXHUwMEE5XHUwMEFCXS8sL1tcdTAwQUNcdTAwQUVdLywvW1x1MDBCMFx1MDBCMV0vLC9bXHUwMEI2XHUwMEJCXHUwMEJGXHUwMEQ3XHUwMEY3XS8sL1tcdTIwMTYtXHUyMDE3XS8sL1tcdTIwMjAtXHUyMDI3XS8sL1tcdTIwMzAtXHUyMDNFXS8sL1tcdTIwNDEtXHUyMDUzXS8sL1tcdTIwNTUtXHUyMDVFXS8sL1tcdTIxOTAtXHUyM0ZGXS8sL1tcdTI1MDAtXHUyNzc1XS8sL1tcdTI3OTQtXHUyQkZGXS8sL1tcdTJFMDAtXHUyRTdGXS8sL1tcdTMwMDEtXHUzMDAzXS8sL1tcdTMwMDgtXHUzMDIwXS8sL1tcdTMwMzBdLyksbT1uKHUsL1tcdTAzMDAtXHUwMzZGXS8sL1tcdTFEQzAtXHUxREZGXS8sL1tcdTIwRDAtXHUyMEZGXS8sL1tcdUZFMDAtXHVGRTBGXS8sL1tcdUZFMjAtXHVGRTJGXS8pLFM9dCh1LG0sIioiKSxUPW4oL1thLXpBLVpfXS8sL1tcdTAwQThcdTAwQUFcdTAwQURcdTAwQUZcdTAwQjItXHUwMEI1XHUwMEI3LVx1MDBCQV0vLC9bXHUwMEJDLVx1MDBCRVx1MDBDMC1cdTAwRDZcdTAwRDgtXHUwMEY2XHUwMEY4LVx1MDBGRl0vLC9bXHUwMTAwLVx1MDJGRlx1MDM3MC1cdTE2N0ZcdTE2ODEtXHUxODBEXHUxODBGLVx1MURCRl0vLC9bXHUxRTAwLVx1MUZGRl0vLC9bXHUyMDBCLVx1MjAwRFx1MjAyQS1cdTIwMkVcdTIwM0YtXHUyMDQwXHUyMDU0XHUyMDYwLVx1MjA2Rl0vLC9bXHUyMDcwLVx1MjBDRlx1MjEwMC1cdTIxOEZcdTI0NjAtXHUyNEZGXHUyNzc2LVx1Mjc5M10vLC9bXHUyQzAwLVx1MkRGRlx1MkU4MC1cdTJGRkZdLywvW1x1MzAwNC1cdTMwMDdcdTMwMjEtXHUzMDJGXHUzMDMxLVx1MzAzRlx1MzA0MC1cdUQ3RkZdLywvW1x1RjkwMC1cdUZEM0RcdUZENDAtXHVGRENGXHVGREYwLVx1RkUxRlx1RkUzMC1cdUZFNDRdLywvW1x1RkU0Ny1cdUZFRkVcdUZGMDAtXHVGRkZEXS8pLGI9bihULC9cZC8sL1tcdTAzMDAtXHUwMzZGXHUxREMwLVx1MURGRlx1MjBEMC1cdTIwRkZcdUZFMjAtXHVGRTJGXS8pLGY9dChULGIsIioiKSxDPXQoL1tBLVpdLyxiLCIqIiksTz1bImF1dG9jbG9zdXJlIix0KC9jb252ZW50aW9uXCgvLG4oInN3aWZ0IiwiYmxvY2siLCJjIiksL1wpLyksImRpc2NhcmRhYmxlUmVzdWx0IiwiZHluYW1pY0NhbGxhYmxlIiwiZHluYW1pY01lbWJlckxvb2t1cCIsImVzY2FwaW5nIiwiZnJvemVuIiwiR0tJbnNwZWN0YWJsZSIsIklCQWN0aW9uIiwiSUJEZXNpZ25hYmxlIiwiSUJJbnNwZWN0YWJsZSIsIklCT3V0bGV0IiwiSUJTZWd1ZUFjdGlvbiIsImlubGluYWJsZSIsIm1haW4iLCJub25vYmpjIiwiTlNBcHBsaWNhdGlvbk1haW4iLCJOU0NvcHlpbmciLCJOU01hbmFnZWQiLHQoL29iamNcKC8sZiwvXCkvKSwib2JqYyIsIm9iamNNZW1iZXJzIiwicHJvcGVydHlXcmFwcGVyIiwicmVxdWlyZXNfc3RvcmVkX3Byb3BlcnR5X2luaXRzIiwidGVzdGFibGUiLCJVSUFwcGxpY2F0aW9uTWFpbiIsInVua25vd24iLCJ1c2FibGVGcm9tSW5saW5lIl0sRD1bImlPUyIsImlPU0FwcGxpY2F0aW9uRXh0ZW5zaW9uIiwibWFjT1MiLCJtYWNPU0FwcGxpY2F0aW9uRXh0ZW5zaW9uIiwibWFjQ2F0YWx5c3QiLCJtYWNDYXRhbHlzdEFwcGxpY2F0aW9uRXh0ZW5zaW9uIiwid2F0Y2hPUyIsIndhdGNoT1NBcHBsaWNhdGlvbkV4dGVuc2lvbiIsInR2T1MiLCJ0dk9TQXBwbGljYXRpb25FeHRlbnNpb24iLCJzd2lmdCJdO2Z1bmN0aW9uIHkoQSl7Y29uc3Qgaz17bWF0Y2g6L1xzKy8scmVsZXZhbmNlOjB9LEI9QS5DT01NRU5UKCIvXFwqIiwiXFwqLyIse2NvbnRhaW5zOlsic2VsZiJdfSksRj1bQS5DX0xJTkVfQ09NTUVOVF9NT0RFLEJdLEs9e2NsYXNzTmFtZToia2V5d29yZCIsYmVnaW46dCgvXC4vLGUobiguLi5pLC4uLm8pKSksZW5kOm4oLi4uaSwuLi5vKSxleGNsdWRlQmVnaW46ITB9LHc9e21hdGNoOnQoL1wuLyxuKC4uLmMpKSxyZWxldmFuY2U6MH0sWD1jLmZpbHRlcigkPT50eXBlb2YgJD09InN0cmluZyIpLmNvbmNhdChbIl98MCJdKSxjZT1jLmZpbHRlcigkPT50eXBlb2YgJCE9InN0cmluZyIpLmNvbmNhdChsKS5tYXAoYSksYWU9e3ZhcmlhbnRzOlt7Y2xhc3NOYW1lOiJrZXl3b3JkIixtYXRjaDpuKC4uLmNlLC4uLm8pfV19LFo9eyRwYXR0ZXJuOm4oL1xiXHcrLywvI1x3Ky8pLGtleXdvcmQ6WC5jb25jYXQoZyksbGl0ZXJhbDpffSxKPVtLLHcsYWVdLG9lPXttYXRjaDp0KC9cLi8sbiguLi5FKSkscmVsZXZhbmNlOjB9LHNlPXtjbGFzc05hbWU6ImJ1aWx0X2luIixtYXRjaDp0KC9cYi8sbiguLi5FKSwvKD89XCgpLyl9LF9lPVtvZSxzZV0sRGU9e21hdGNoOi8tPi8scmVsZXZhbmNlOjB9LFVlPXtjbGFzc05hbWU6Im9wZXJhdG9yIixyZWxldmFuY2U6MCx2YXJpYW50czpbe21hdGNoOlN9LHttYXRjaDpgXFwuKFxcLnwke219KStgfV19LGdlPVtEZSxVZV0sU2U9IihbMC05XV8qKSsiLFJlPSIoWzAtOWEtZkEtRl1fKikrIixkZT17Y2xhc3NOYW1lOiJudW1iZXIiLHJlbGV2YW5jZTowLHZhcmlhbnRzOlt7bWF0Y2g6YFxcYigke1NlfSkoXFwuKCR7U2V9KSk/KFtlRV1bKy1dPygke1NlfSkpP1xcYmB9LHttYXRjaDpgXFxiMHgoJHtSZX0pKFxcLigke1JlfSkpPyhbcFBdWystXT8oJHtTZX0pKT9cXGJgfSx7bWF0Y2g6L1xiMG8oWzAtN11fKikrXGIvfSx7bWF0Y2g6L1xiMGIoWzAxXV8qKStcYi99XX0saGU9KCQ9IiIpPT4oe2NsYXNzTmFtZToic3Vic3QiLHZhcmlhbnRzOlt7bWF0Y2g6dCgvXFwvLCQsL1swXFx0bnIiJ10vKX0se21hdGNoOnQoL1xcLywkLC91XHtbMC05YS1mQS1GXXsxLDh9XH0vKX1dfSksdWU9KCQ9IiIpPT4oe2NsYXNzTmFtZToic3Vic3QiLG1hdGNoOnQoL1xcLywkLC9bXHQgXSooPzpbXHJcbl18XHJcbikvKX0pLE1lPSgkPSIiKT0+KHtjbGFzc05hbWU6InN1YnN0IixsYWJlbDoiaW50ZXJwb2wiLGJlZ2luOnQoL1xcLywkLC9cKC8pLGVuZDovXCkvfSksZmU9KCQ9IiIpPT4oe2JlZ2luOnQoJCwvIiIiLyksZW5kOnQoLyIiIi8sJCksY29udGFpbnM6W2hlKCQpLHVlKCQpLE1lKCQpXX0pLE5lPSgkPSIiKT0+KHtiZWdpbjp0KCQsLyIvKSxlbmQ6dCgvIi8sJCksY29udGFpbnM6W2hlKCQpLE1lKCQpXX0pLENlPXtjbGFzc05hbWU6InN0cmluZyIsdmFyaWFudHM6W2ZlKCksZmUoIiMiKSxmZSgiIyMiKSxmZSgiIyMjIiksTmUoKSxOZSgiIyIpLE5lKCIjIyIpLE5lKCIjIyMiKV19LFZlPXttYXRjaDp0KC9gLyxmLC9gLyl9LGplPXtjbGFzc05hbWU6InZhcmlhYmxlIixtYXRjaDovXCRcZCsvfSxldD17Y2xhc3NOYW1lOiJ2YXJpYWJsZSIsbWF0Y2g6YFxcJCR7Yn0rYH0sTGU9W1ZlLGplLGV0XSx0dD17bWF0Y2g6LyhAfCMpYXZhaWxhYmxlLyxjbGFzc05hbWU6ImtleXdvcmQiLHN0YXJ0czp7Y29udGFpbnM6W3tiZWdpbjovXCgvLGVuZDovXCkvLGtleXdvcmRzOkQsY29udGFpbnM6Wy4uLmdlLGRlLENlXX1dfX0sbnQ9e2NsYXNzTmFtZToia2V5d29yZCIsbWF0Y2g6dCgvQC8sbiguLi5PKSl9LGF0PXtjbGFzc05hbWU6Im1ldGEiLG1hdGNoOnQoL0AvLGYpfSx2ZT1bdHQsbnQsYXRdLFRlPXttYXRjaDplKC9cYltBLVpdLykscmVsZXZhbmNlOjAsY29udGFpbnM6W3tjbGFzc05hbWU6InR5cGUiLG1hdGNoOnQoLyhBVnxDQXxDRnxDR3xDSXxDTHxDTXxDTnxDVHxNS3xNUHxNVEt8TVRMfE5TfFNDTnxTS3xVSXxXS3xYQykvLGIsIisiKX0se2NsYXNzTmFtZToidHlwZSIsbWF0Y2g6QyxyZWxldmFuY2U6MH0se21hdGNoOi9bPyFdKy8scmVsZXZhbmNlOjB9LHttYXRjaDovXC5cLlwuLyxyZWxldmFuY2U6MH0se21hdGNoOnQoL1xzKyZccysvLGUoQykpLHJlbGV2YW5jZTowfV19LGl0PXtiZWdpbjovPC8sZW5kOi8+LyxrZXl3b3JkczpaLGNvbnRhaW5zOlsuLi5GLC4uLkosLi4udmUsRGUsVGVdfTtUZS5jb250YWlucy5wdXNoKGl0KTtjb25zdCBydD17bWF0Y2g6dChmLC9ccyo6Lyksa2V5d29yZHM6Il98MCIscmVsZXZhbmNlOjB9LHFlPXtiZWdpbjovXCgvLGVuZDovXCkvLHJlbGV2YW5jZTowLGtleXdvcmRzOlosY29udGFpbnM6WyJzZWxmIixydCwuLi5GLC4uLkosLi4uX2UsLi4uZ2UsZGUsQ2UsLi4uTGUsLi4udmUsVGVdfSxvdD17YmVnaW5LZXl3b3JkczoiZnVuYyIsY29udGFpbnM6W3tjbGFzc05hbWU6InRpdGxlIixtYXRjaDpuKFZlLm1hdGNoLGYsUyksZW5kc1BhcmVudDohMCxyZWxldmFuY2U6MH0sa119LHhlPXtiZWdpbjovPC8sZW5kOi8+Lyxjb250YWluczpbLi4uRixUZV19LFdlPXtiZWdpbjpuKGUodChmLC9ccyo6LykpLGUodChmLC9ccysvLGYsL1xzKjovKSkpLGVuZDovOi8scmVsZXZhbmNlOjAsY29udGFpbnM6W3tjbGFzc05hbWU6ImtleXdvcmQiLG1hdGNoOi9cYl9cYi99LHtjbGFzc05hbWU6InBhcmFtcyIsbWF0Y2g6Zn1dfSx6ZT17YmVnaW46L1woLyxlbmQ6L1wpLyxrZXl3b3JkczpaLGNvbnRhaW5zOltXZSwuLi5GLC4uLkosLi4uZ2UsZGUsQ2UsLi4udmUsVGUscWVdLGVuZHNQYXJlbnQ6ITAsaWxsZWdhbDovWyInXS99LEtlPXtjbGFzc05hbWU6ImZ1bmN0aW9uIixtYXRjaDplKC9cYmZ1bmNcYi8pLGNvbnRhaW5zOltvdCx4ZSx6ZSxrXSxpbGxlZ2FsOlsvXFsvLC8lL119LGtlPXtjbGFzc05hbWU6ImZ1bmN0aW9uIixtYXRjaDovXGIoc3Vic2NyaXB0fGluaXRbPyFdPylccyooPz1bPChdKS8sa2V5d29yZHM6e2tleXdvcmQ6InN1YnNjcmlwdCBpbml0IGluaXQ/IGluaXQhIiwkcGF0dGVybjovXHcrWz8hXT8vfSxjb250YWluczpbeGUsemUsa10saWxsZWdhbDovXFt8JS99LCRlPXtiZWdpbktleXdvcmRzOiJvcGVyYXRvciIsZW5kOkEuTUFUQ0hfTk9USElOR19SRSxjb250YWluczpbe2NsYXNzTmFtZToidGl0bGUiLG1hdGNoOlMsZW5kc1BhcmVudDohMCxyZWxldmFuY2U6MH1dfSxsZT17YmVnaW5LZXl3b3JkczoicHJlY2VkZW5jZWdyb3VwIixlbmQ6QS5NQVRDSF9OT1RISU5HX1JFLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJ0aXRsZSIsbWF0Y2g6QyxyZWxldmFuY2U6MH0se2JlZ2luOi97LyxlbmQ6L30vLHJlbGV2YW5jZTowLGVuZHNQYXJlbnQ6ITAsa2V5d29yZHM6Wy4uLmQsLi4uX10sY29udGFpbnM6W1RlXX1dfTtmb3IoY29uc3QgJCBvZiBDZS52YXJpYW50cyl7Y29uc3QgRmU9JC5jb250YWlucy5maW5kKEV0PT5FdC5sYWJlbD09PSJpbnRlcnBvbCIpO0ZlLmtleXdvcmRzPVo7Y29uc3QgQmU9Wy4uLkosLi4uX2UsLi4uZ2UsZGUsQ2UsLi4uTGVdO0ZlLmNvbnRhaW5zPVsuLi5CZSx7YmVnaW46L1woLyxlbmQ6L1wpLyxjb250YWluczpbInNlbGYiLC4uLkJlXX1dfXJldHVybntuYW1lOiJTd2lmdCIsa2V5d29yZHM6Wixjb250YWluczpbLi4uRixLZSxrZSx7Y2xhc3NOYW1lOiJjbGFzcyIsYmVnaW5LZXl3b3Jkczoic3RydWN0IHByb3RvY29sIGNsYXNzIGV4dGVuc2lvbiBlbnVtIixlbmQ6IlxceyIsZXhjbHVkZUVuZDohMCxrZXl3b3JkczpaLGNvbnRhaW5zOltBLmluaGVyaXQoQS5USVRMRV9NT0RFLHtiZWdpbjovW0EtWmEteiRfXVtcdTAwQzAtXHUwMkI4MC05QS1aYS16JF9dKi99KSwuLi5KXX0sJGUsbGUse2JlZ2luS2V5d29yZHM6ImltcG9ydCIsZW5kOi8kLyxjb250YWluczpbLi4uRl0scmVsZXZhbmNlOjB9LC4uLkosLi4uX2UsLi4uZ2UsZGUsQ2UsLi4uTGUsLi4udmUsVGUscWVdfX1zLmV4cG9ydHM9eX0sOTUwMzU6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihlKXtyZXR1cm57bmFtZToiVGFnZ2VyIFNjcmlwdCIsY29udGFpbnM6W3tjbGFzc05hbWU6ImNvbW1lbnQiLGJlZ2luOi9cJG5vb3BcKC8sZW5kOi9cKS8sY29udGFpbnM6W3tiZWdpbjovXCgvLGVuZDovXCkvLGNvbnRhaW5zOlsic2VsZiIse2JlZ2luOi9cXC4vfV19XSxyZWxldmFuY2U6MTB9LHtjbGFzc05hbWU6ImtleXdvcmQiLGJlZ2luOi9cJCg/IW5vb3ApW2EtekEtWl1bX2EtekEtWjAtOV0qLyxlbmQ6L1woLyxleGNsdWRlRW5kOiEwfSx7Y2xhc3NOYW1lOiJ2YXJpYWJsZSIsYmVnaW46LyVbX2EtekEtWjAtOTpdKi8sZW5kOiIlIn0se2NsYXNzTmFtZToic3ltYm9sIixiZWdpbjovXFwuL31dfX1zLmV4cG9ydHM9cn0sMzAxNjM6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihlKXtyZXR1cm57bmFtZToiVGVzdCBBbnl0aGluZyBQcm90b2NvbCIsY2FzZV9pbnNlbnNpdGl2ZTohMCxjb250YWluczpbZS5IQVNIX0NPTU1FTlRfTU9ERSx7Y2xhc3NOYW1lOiJtZXRhIix2YXJpYW50czpbe2JlZ2luOiJeVEFQIHZlcnNpb24gKFxcZCspJCJ9LHtiZWdpbjoiXjFcXC5cXC4oXFxkKykkIn1dfSx7YmVnaW46Ly0tLSQvLGVuZDoiXFwuXFwuXFwuJCIsc3ViTGFuZ3VhZ2U6InlhbWwiLHJlbGV2YW5jZTowfSx7Y2xhc3NOYW1lOiJudW1iZXIiLGJlZ2luOiIgKFxcZCspICJ9LHtjbGFzc05hbWU6InN5bWJvbCIsdmFyaWFudHM6W3tiZWdpbjoiXm9rIn0se2JlZ2luOiJebm90IG9rIn1dfV19fXMuZXhwb3J0cz1yfSwyMzE4MDpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGEpe3JldHVybiBhP3R5cGVvZiBhPT0ic3RyaW5nIj9hOmEuc291cmNlOm51bGx9ZnVuY3Rpb24gZShhKXtyZXR1cm4gdCgiKCIsYSwiKT8iKX1mdW5jdGlvbiB0KC4uLmEpe3JldHVybiBhLm1hcChvPT5yKG8pKS5qb2luKCIiKX1mdW5jdGlvbiBuKGEpe2NvbnN0IGk9L1thLXpBLVpfXVthLXpBLVowLTlfXSovLG89e2NsYXNzTmFtZToibnVtYmVyIix2YXJpYW50czpbYS5CSU5BUllfTlVNQkVSX01PREUsYS5DX05VTUJFUl9NT0RFXX07cmV0dXJue25hbWU6IlRjbCIsYWxpYXNlczpbInRrIl0sa2V5d29yZHM6ImFmdGVyIGFwcGVuZCBhcHBseSBhcnJheSBhdXRvX2V4ZWNvayBhdXRvX2ltcG9ydCBhdXRvX2xvYWQgYXV0b19ta2luZGV4IGF1dG9fbWtpbmRleF9vbGQgYXV0b19xdWFsaWZ5IGF1dG9fcmVzZXQgYmdlcnJvciBiaW5hcnkgYnJlYWsgY2F0Y2ggY2QgY2hhbiBjbG9jayBjbG9zZSBjb25jYXQgY29udGludWUgZGRlIGRpY3QgZW5jb2RpbmcgZW9mIGVycm9yIGV2YWwgZXhlYyBleGl0IGV4cHIgZmJsb2NrZWQgZmNvbmZpZ3VyZSBmY29weSBmaWxlIGZpbGVldmVudCBmaWxlbmFtZSBmbHVzaCBmb3IgZm9yZWFjaCBmb3JtYXQgZ2V0cyBnbG9iIGdsb2JhbCBoaXN0b3J5IGh0dHAgaWYgaW5jciBpbmZvIGludGVycCBqb2luIGxhcHBlbmR8MTAgbGFzc2lnbnwxMCBsaW5kZXh8MTAgbGluc2VydHwxMCBsaXN0IGxsZW5ndGh8MTAgbG9hZCBscmFuZ2V8MTAgbHJlcGVhdHwxMCBscmVwbGFjZXwxMCBscmV2ZXJzZXwxMCBsc2VhcmNofDEwIGxzZXR8MTAgbHNvcnR8MTAgbWF0aGZ1bmMgbWF0aG9wIG1lbW9yeSBtc2djYXQgbmFtZXNwYWNlIG9wZW4gcGFja2FnZSBwYXJyYXkgcGlkIHBrZzo6Y3JlYXRlIHBrZ19ta0luZGV4IHBsYXRmb3JtIHBsYXRmb3JtOjpzaGVsbCBwcm9jIHB1dHMgcHdkIHJlYWQgcmVmY2hhbiByZWdleHAgcmVnaXN0cnkgcmVnc3VifDEwIHJlbmFtZSByZXR1cm4gc2FmZSBzY2FuIHNlZWsgc2V0IHNvY2tldCBzb3VyY2Ugc3BsaXQgc3RyaW5nIHN1YnN0IHN3aXRjaCB0Y2xfZW5kT2ZXb3JkIHRjbF9maW5kTGlicmFyeSB0Y2xfc3RhcnRPZk5leHRXb3JkIHRjbF9zdGFydE9mUHJldmlvdXNXb3JkIHRjbF93b3JkQnJlYWtBZnRlciB0Y2xfd29yZEJyZWFrQmVmb3JlIHRjbHRlc3QgdGNsdmFycyB0ZWxsIHRpbWUgdG0gdHJhY2UgdW5rbm93biB1bmxvYWQgdW5zZXQgdXBkYXRlIHVwbGV2ZWwgdXB2YXIgdmFyaWFibGUgdndhaXQgd2hpbGUiLGNvbnRhaW5zOlthLkNPTU1FTlQoIjtbIFxcdF0qIyIsIiQiKSxhLkNPTU1FTlQoIl5bIFxcdF0qIyIsIiQiKSx7YmVnaW5LZXl3b3JkczoicHJvYyIsZW5kOiJbXFx7XSIsZXhjbHVkZUVuZDohMCxjb250YWluczpbe2NsYXNzTmFtZToidGl0bGUiLGJlZ2luOiJbIFxcdFxcblxccl0rKDo6KT9bYS16QS1aX10oKDo6KT9bYS16QS1aMC05X10pKiIsZW5kOiJbIFxcdFxcblxccl0iLGVuZHNXaXRoUGFyZW50OiEwLGV4Y2x1ZGVFbmQ6ITB9XX0se2NsYXNzTmFtZToidmFyaWFibGUiLHZhcmlhbnRzOlt7YmVnaW46dCgvXCQvLGUoLzo6LyksaSwiKDo6IixpLCIpKiIpfSx7YmVnaW46IlxcJFxceyg6Oik/W2EtekEtWl9dKCg6Oik/W2EtekEtWjAtOV9dKSoiLGVuZDoiXFx9Iixjb250YWluczpbb119XX0se2NsYXNzTmFtZToic3RyaW5nIixjb250YWluczpbYS5CQUNLU0xBU0hfRVNDQVBFXSx2YXJpYW50czpbYS5pbmhlcml0KGEuUVVPVEVfU1RSSU5HX01PREUse2lsbGVnYWw6bnVsbH0pXX0sb119fXMuZXhwb3J0cz1ufSw4Njg0MDpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGUpe2NvbnN0IHQ9ImJvb2wgYnl0ZSBpMTYgaTMyIGk2NCBkb3VibGUgc3RyaW5nIGJpbmFyeSI7cmV0dXJue25hbWU6IlRocmlmdCIsa2V5d29yZHM6e2tleXdvcmQ6Im5hbWVzcGFjZSBjb25zdCB0eXBlZGVmIHN0cnVjdCBlbnVtIHNlcnZpY2UgZXhjZXB0aW9uIHZvaWQgb25ld2F5IHNldCBsaXN0IG1hcCByZXF1aXJlZCBvcHRpb25hbCIsYnVpbHRfaW46dCxsaXRlcmFsOiJ0cnVlIGZhbHNlIn0sY29udGFpbnM6W2UuUVVPVEVfU1RSSU5HX01PREUsZS5OVU1CRVJfTU9ERSxlLkNfTElORV9DT01NRU5UX01PREUsZS5DX0JMT0NLX0NPTU1FTlRfTU9ERSx7Y2xhc3NOYW1lOiJjbGFzcyIsYmVnaW5LZXl3b3Jkczoic3RydWN0IGVudW0gc2VydmljZSBleGNlcHRpb24iLGVuZDovXHsvLGlsbGVnYWw6L1xuLyxjb250YWluczpbZS5pbmhlcml0KGUuVElUTEVfTU9ERSx7c3RhcnRzOntlbmRzV2l0aFBhcmVudDohMCxleGNsdWRlRW5kOiEwfX0pXX0se2JlZ2luOiJcXGIoc2V0fGxpc3R8bWFwKVxccyo8IixlbmQ6Ij4iLGtleXdvcmRzOnQsY29udGFpbnM6WyJzZWxmIl19XX19cy5leHBvcnRzPXJ9LDEyMzM1OmZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHIoZSl7Y29uc3QgdD17Y2xhc3NOYW1lOiJudW1iZXIiLGJlZ2luOiJbMS05XVswLTldKiIscmVsZXZhbmNlOjB9LG49e2NsYXNzTmFtZToic3ltYm9sIixiZWdpbjoiOlteXFxdXSsifSxhPXtjbGFzc05hbWU6ImJ1aWx0X2luIixiZWdpbjoiKEFSfFB8UEFZTE9BRHxQUnxSfFNSfFJTUnxMQkx8VlJ8VUFMTXxNRVNTQUdFfFVUT09MfFVGUkFNRXxUSU1FUnxUSU1FUl9PVkVSRkxPV3xKT0lOVF9NQVhfU1BFRUR8UkVTVU1FX1BST0d8RElBR19SRUMpXFxbIixlbmQ6IlxcXSIsY29udGFpbnM6WyJzZWxmIix0LG5dfSxpPXtjbGFzc05hbWU6ImJ1aWx0X2luIixiZWdpbjoiKEFJfEFPfERJfERPfEZ8Ukl8Uk98VUl8VU98R0l8R098U0l8U08pXFxbIixlbmQ6IlxcXSIsY29udGFpbnM6WyJzZWxmIix0LGUuUVVPVEVfU1RSSU5HX01PREUsbl19O3JldHVybntuYW1lOiJUUCIsa2V5d29yZHM6e2tleXdvcmQ6IkFCT1JUIEFDQyBBREpVU1QgQU5EIEFQX0xEIEJSRUFLIENBTEwgQ05UIENPTCBDT05ESVRJT04gQ09ORklHIERBIERCIERJViBERVRFQ1QgRUxTRSBFTkQgRU5ERk9SIEVSUl9OVU0gRVJST1JfUFJPRyBGSU5FIEZPUiBHUCBHVUFSRCBJTkMgSUYgSk1QIExJTkVBUl9NQVhfU1BFRUQgTE9DSyBNT0QgTU9OSVRPUiBPRkZTRVQgT2Zmc2V0IE9SIE9WRVJSSURFIFBBVVNFIFBSRUcgUFRIIFJUX0xEIFJVTiBTRUxFQ1QgU0tJUCBTa2lwIFRBIFRCIFRPIFRPT0xfT0ZGU0VUIFRvb2xfT2Zmc2V0IFVGIFVUIFVGUkFNRV9OVU0gVVRPT0xfTlVNIFVOTE9DSyBXQUlUIFggWSBaIFcgUCBSIFNUUkxFTiBTVUJTVFIgRklORFNUUiBWT0ZGU0VUIFBST0cgQVRUUiBNTiBQT1MiLGxpdGVyYWw6Ik9OIE9GRiBtYXhfc3BlZWQgTFBPUyBKUE9TIEVOQUJMRSBESVNBQkxFIFNUQVJUIFNUT1AgUkVTRVQifSxjb250YWluczpbYSxpLHtjbGFzc05hbWU6ImtleXdvcmQiLGJlZ2luOiIvKFBST0d8QVRUUnxNTnxQT1N8RU5EKVxcYiJ9LHtjbGFzc05hbWU6ImtleXdvcmQiLGJlZ2luOiIoQ0FMTHxSVU58UE9JTlRfTE9HSUN8TEJMKVxcYiJ9LHtjbGFzc05hbWU6ImtleXdvcmQiLGJlZ2luOiJcXGIoQUNDfENOVHxTa2lwfE9mZnNldHxQU1BEfFJUX0xEfEFQX0xEfFRvb2xfT2Zmc2V0KSJ9LHtjbGFzc05hbWU6Im51bWJlciIsYmVnaW46IlxcZCsoc2VjfG1zZWN8bW0vc2VjfGNtL21pbnxpbmNoL21pbnxkZWcvc2VjfG1tfGlufGNtKT9cXGIiLHJlbGV2YW5jZTowfSxlLkNPTU1FTlQoIi8vIiwiWzskXSIpLGUuQ09NTUVOVCgiISIsIls7JF0iKSxlLkNPTU1FTlQoIi0tZWc6IiwiJCIpLGUuUVVPVEVfU1RSSU5HX01PREUse2NsYXNzTmFtZToic3RyaW5nIixiZWdpbjoiJyIsZW5kOiInIn0sZS5DX05VTUJFUl9NT0RFLHtjbGFzc05hbWU6InZhcmlhYmxlIixiZWdpbjoiXFwkW0EtWmEtejAtOV9dKyJ9XX19cy5leHBvcnRzPXJ9LDYzMTI3OmZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHIoZSl7dmFyIHQ9e2NsYXNzTmFtZToicGFyYW1zIixiZWdpbjoiXFwoIixlbmQ6IlxcKSJ9LG49ImF0dHJpYnV0ZSBibG9jayBjb25zdGFudCBjeWNsZSBkYXRlIGR1bXAgaW5jbHVkZSBtYXggbWluIHBhcmVudCByYW5kb20gcmFuZ2Ugc291cmNlIHRlbXBsYXRlX2Zyb21fc3RyaW5nIixhPXtiZWdpbktleXdvcmRzOm4sa2V5d29yZHM6e25hbWU6bn0scmVsZXZhbmNlOjAsY29udGFpbnM6W3RdfSxpPXtiZWdpbjovXHxbQS1aYS16X10rOj8vLGtleXdvcmRzOiJhYnMgYmF0Y2ggY2FwaXRhbGl6ZSBjb2x1bW4gY29udmVydF9lbmNvZGluZyBkYXRlIGRhdGVfbW9kaWZ5IGRlZmF1bHQgZXNjYXBlIGZpbHRlciBmaXJzdCBmb3JtYXQgaW5reV90b19odG1sIGlubGluZV9jc3Mgam9pbiBqc29uX2VuY29kZSBrZXlzIGxhc3QgbGVuZ3RoIGxvd2VyIG1hcCBtYXJrZG93biBtZXJnZSBubDJiciBudW1iZXJfZm9ybWF0IHJhdyByZWR1Y2UgcmVwbGFjZSByZXZlcnNlIHJvdW5kIHNsaWNlIHNvcnQgc3BhY2VsZXNzIHNwbGl0IHN0cmlwdGFncyB0aXRsZSB0cmltIHVwcGVyIHVybF9lbmNvZGUiLGNvbnRhaW5zOlthXX0sbz0iYXBwbHkgYXV0b2VzY2FwZSBibG9jayBkZXByZWNhdGVkIGRvIGVtYmVkIGV4dGVuZHMgZmlsdGVyIGZsdXNoIGZvciBmcm9tIGlmIGltcG9ydCBpbmNsdWRlIG1hY3JvIHNhbmRib3ggc2V0IHVzZSB2ZXJiYXRpbSB3aXRoIjtyZXR1cm4gbz1vKyIgIitvLnNwbGl0KCIgIikubWFwKGZ1bmN0aW9uKGwpe3JldHVybiJlbmQiK2x9KS5qb2luKCIgIikse25hbWU6IlR3aWciLGFsaWFzZXM6WyJjcmFmdGNtcyJdLGNhc2VfaW5zZW5zaXRpdmU6ITAsc3ViTGFuZ3VhZ2U6InhtbCIsY29udGFpbnM6W2UuQ09NTUVOVCgvXHsjLywvI1x9Lykse2NsYXNzTmFtZToidGVtcGxhdGUtdGFnIixiZWdpbjovXHslLyxlbmQ6LyVcfS8sY29udGFpbnM6W3tjbGFzc05hbWU6Im5hbWUiLGJlZ2luOi9cdysvLGtleXdvcmRzOm8sc3RhcnRzOntlbmRzV2l0aFBhcmVudDohMCxjb250YWluczpbaSxhXSxyZWxldmFuY2U6MH19XX0se2NsYXNzTmFtZToidGVtcGxhdGUtdmFyaWFibGUiLGJlZ2luOi9ce1x7LyxlbmQ6L1x9XH0vLGNvbnRhaW5zOlsic2VsZiIsaSxhXX1dfX1zLmV4cG9ydHM9cn0sNDkyMTI6ZnVuY3Rpb24ocyl7Y29uc3Qgcj0iW0EtWmEteiRfXVswLTlBLVphLXokX10qIixlPVsiYXMiLCJpbiIsIm9mIiwiaWYiLCJmb3IiLCJ3aGlsZSIsImZpbmFsbHkiLCJ2YXIiLCJuZXciLCJmdW5jdGlvbiIsImRvIiwicmV0dXJuIiwidm9pZCIsImVsc2UiLCJicmVhayIsImNhdGNoIiwiaW5zdGFuY2VvZiIsIndpdGgiLCJ0aHJvdyIsImNhc2UiLCJkZWZhdWx0IiwidHJ5Iiwic3dpdGNoIiwiY29udGludWUiLCJ0eXBlb2YiLCJkZWxldGUiLCJsZXQiLCJ5aWVsZCIsImNvbnN0IiwiY2xhc3MiLCJkZWJ1Z2dlciIsImFzeW5jIiwiYXdhaXQiLCJzdGF0aWMiLCJpbXBvcnQiLCJmcm9tIiwiZXhwb3J0IiwiZXh0ZW5kcyJdLHQ9WyJ0cnVlIiwiZmFsc2UiLCJudWxsIiwidW5kZWZpbmVkIiwiTmFOIiwiSW5maW5pdHkiXSxuPVsiSW50bCIsIkRhdGFWaWV3IiwiTnVtYmVyIiwiTWF0aCIsIkRhdGUiLCJTdHJpbmciLCJSZWdFeHAiLCJPYmplY3QiLCJGdW5jdGlvbiIsIkJvb2xlYW4iLCJFcnJvciIsIlN5bWJvbCIsIlNldCIsIk1hcCIsIldlYWtTZXQiLCJXZWFrTWFwIiwiUHJveHkiLCJSZWZsZWN0IiwiSlNPTiIsIlByb21pc2UiLCJGbG9hdDY0QXJyYXkiLCJJbnQxNkFycmF5IiwiSW50MzJBcnJheSIsIkludDhBcnJheSIsIlVpbnQxNkFycmF5IiwiVWludDMyQXJyYXkiLCJGbG9hdDMyQXJyYXkiLCJBcnJheSIsIlVpbnQ4QXJyYXkiLCJVaW50OENsYW1wZWRBcnJheSIsIkFycmF5QnVmZmVyIiwiQmlnSW50NjRBcnJheSIsIkJpZ1VpbnQ2NEFycmF5IiwiQmlnSW50Il0sYT1bIkV2YWxFcnJvciIsIkludGVybmFsRXJyb3IiLCJSYW5nZUVycm9yIiwiUmVmZXJlbmNlRXJyb3IiLCJTeW50YXhFcnJvciIsIlR5cGVFcnJvciIsIlVSSUVycm9yIl0saT1bInNldEludGVydmFsIiwic2V0VGltZW91dCIsImNsZWFySW50ZXJ2YWwiLCJjbGVhclRpbWVvdXQiLCJyZXF1aXJlIiwiZXhwb3J0cyIsImV2YWwiLCJpc0Zpbml0ZSIsImlzTmFOIiwicGFyc2VGbG9hdCIsInBhcnNlSW50IiwiZGVjb2RlVVJJIiwiZGVjb2RlVVJJQ29tcG9uZW50IiwiZW5jb2RlVVJJIiwiZW5jb2RlVVJJQ29tcG9uZW50IiwiZXNjYXBlIiwidW5lc2NhcGUiXSxvPVsiYXJndW1lbnRzIiwidGhpcyIsInN1cGVyIiwiY29uc29sZSIsIndpbmRvdyIsImRvY3VtZW50IiwibG9jYWxTdG9yYWdlIiwibW9kdWxlIiwiZ2xvYmFsIl0sbD1bXS5jb25jYXQoaSxvLG4sYSk7ZnVuY3Rpb24gYyh1KXtyZXR1cm4gdT90eXBlb2YgdT09InN0cmluZyI/dTp1LnNvdXJjZTpudWxsfWZ1bmN0aW9uIF8odSl7cmV0dXJuIGQoIig/PSIsdSwiKSIpfWZ1bmN0aW9uIGQoLi4udSl7cmV0dXJuIHUubWFwKFM9PmMoUykpLmpvaW4oIiIpfWZ1bmN0aW9uIGcodSl7Y29uc3QgbT0oSix7YWZ0ZXI6b2V9KT0+e2NvbnN0IHNlPSI8LyIrSlswXS5zbGljZSgxKTtyZXR1cm4gSi5pbnB1dC5pbmRleE9mKHNlLG9lKSE9PS0xfSxTPXIsVD17YmVnaW46Ijw+IixlbmQ6IjwvPiJ9LGI9e2JlZ2luOi88W0EtWmEtejAtOVxcLl86LV0rLyxlbmQ6L1wvW0EtWmEtejAtOVxcLl86LV0rPnxcLz4vLGlzVHJ1bHlPcGVuaW5nVGFnOihKLG9lKT0+e2NvbnN0IHNlPUpbMF0ubGVuZ3RoK0ouaW5kZXgsX2U9Si5pbnB1dFtzZV07aWYoX2U9PT0iPCIpe29lLmlnbm9yZU1hdGNoKCk7cmV0dXJufV9lPT09Ij4iJiYobShKLHthZnRlcjpzZX0pfHxvZS5pZ25vcmVNYXRjaCgpKX19LGY9eyRwYXR0ZXJuOnIsa2V5d29yZDplLGxpdGVyYWw6dCxidWlsdF9pbjpsfSxDPSJbMC05XShfP1swLTldKSoiLE89YFxcLigke0N9KWAsRD0iMHxbMS05XShfP1swLTldKSp8MFswLTddKls4OV1bMC05XSoiLHk9e2NsYXNzTmFtZToibnVtYmVyIix2YXJpYW50czpbe2JlZ2luOmAoXFxiKCR7RH0pKCgke099KXxcXC4pP3woJHtPfSkpW2VFXVsrLV0/KCR7Q30pXFxiYH0se2JlZ2luOmBcXGIoJHtEfSlcXGIoKCR7T30pXFxifFxcLik/fCgke099KVxcYmB9LHtiZWdpbjoiXFxiKDB8WzEtOV0oXz9bMC05XSkqKW5cXGIifSx7YmVnaW46IlxcYjBbeFhdWzAtOWEtZkEtRl0oXz9bMC05YS1mQS1GXSkqbj9cXGIifSx7YmVnaW46IlxcYjBbYkJdWzAtMV0oXz9bMC0xXSkqbj9cXGIifSx7YmVnaW46IlxcYjBbb09dWzAtN10oXz9bMC03XSkqbj9cXGIifSx7YmVnaW46IlxcYjBbMC03XStuP1xcYiJ9XSxyZWxldmFuY2U6MH0sQT17Y2xhc3NOYW1lOiJzdWJzdCIsYmVnaW46IlxcJFxceyIsZW5kOiJcXH0iLGtleXdvcmRzOmYsY29udGFpbnM6W119LGs9e2JlZ2luOiJodG1sYCIsZW5kOiIiLHN0YXJ0czp7ZW5kOiJgIixyZXR1cm5FbmQ6ITEsY29udGFpbnM6W3UuQkFDS1NMQVNIX0VTQ0FQRSxBXSxzdWJMYW5ndWFnZToieG1sIn19LEI9e2JlZ2luOiJjc3NgIixlbmQ6IiIsc3RhcnRzOntlbmQ6ImAiLHJldHVybkVuZDohMSxjb250YWluczpbdS5CQUNLU0xBU0hfRVNDQVBFLEFdLHN1Ykxhbmd1YWdlOiJjc3MifX0sRj17Y2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOiJgIixlbmQ6ImAiLGNvbnRhaW5zOlt1LkJBQ0tTTEFTSF9FU0NBUEUsQV19LHc9e2NsYXNzTmFtZToiY29tbWVudCIsdmFyaWFudHM6W3UuQ09NTUVOVCgvXC9cKlwqKD8hXC8pLywiXFwqLyIse3JlbGV2YW5jZTowLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJkb2N0YWciLGJlZ2luOiJAW0EtWmEtel0rIixjb250YWluczpbe2NsYXNzTmFtZToidHlwZSIsYmVnaW46IlxceyIsZW5kOiJcXH0iLHJlbGV2YW5jZTowfSx7Y2xhc3NOYW1lOiJ2YXJpYWJsZSIsYmVnaW46UysiKD89XFxzKigtKXwkKSIsZW5kc1BhcmVudDohMCxyZWxldmFuY2U6MH0se2JlZ2luOi8oPz1bXlxuXSlccy8scmVsZXZhbmNlOjB9XX1dfSksdS5DX0JMT0NLX0NPTU1FTlRfTU9ERSx1LkNfTElORV9DT01NRU5UX01PREVdfSxYPVt1LkFQT1NfU1RSSU5HX01PREUsdS5RVU9URV9TVFJJTkdfTU9ERSxrLEIsRix5LHUuUkVHRVhQX01PREVdO0EuY29udGFpbnM9WC5jb25jYXQoe2JlZ2luOi9cey8sZW5kOi9cfS8sa2V5d29yZHM6Zixjb250YWluczpbInNlbGYiXS5jb25jYXQoWCl9KTtjb25zdCBjZT1bXS5jb25jYXQodyxBLmNvbnRhaW5zKSxhZT1jZS5jb25jYXQoW3tiZWdpbjovXCgvLGVuZDovXCkvLGtleXdvcmRzOmYsY29udGFpbnM6WyJzZWxmIl0uY29uY2F0KGNlKX1dKSxaPXtjbGFzc05hbWU6InBhcmFtcyIsYmVnaW46L1woLyxlbmQ6L1wpLyxleGNsdWRlQmVnaW46ITAsZXhjbHVkZUVuZDohMCxrZXl3b3JkczpmLGNvbnRhaW5zOmFlfTtyZXR1cm57bmFtZToiSmF2YXNjcmlwdCIsYWxpYXNlczpbImpzIiwianN4IiwibWpzIiwiY2pzIl0sa2V5d29yZHM6ZixleHBvcnRzOntQQVJBTVNfQ09OVEFJTlM6YWV9LGlsbGVnYWw6LyMoPyFbJF9BLXpdKS8sY29udGFpbnM6W3UuU0hFQkFORyh7bGFiZWw6InNoZWJhbmciLGJpbmFyeToibm9kZSIscmVsZXZhbmNlOjV9KSx7bGFiZWw6InVzZV9zdHJpY3QiLGNsYXNzTmFtZToibWV0YSIscmVsZXZhbmNlOjEwLGJlZ2luOi9eXHMqWyciXXVzZSAoc3RyaWN0fGFzbSlbJyJdL30sdS5BUE9TX1NUUklOR19NT0RFLHUuUVVPVEVfU1RSSU5HX01PREUsayxCLEYsdyx5LHtiZWdpbjpkKC9beyxcbl1ccyovLF8oZCgvKCgoXC9cLy4qJCl8KFwvXCooXCpbXi9dfFteKl0pKlwqXC8pKVxzKikqLyxTKyJcXHMqOiIpKSkscmVsZXZhbmNlOjAsY29udGFpbnM6W3tjbGFzc05hbWU6ImF0dHIiLGJlZ2luOlMrXygiXFxzKjoiKSxyZWxldmFuY2U6MH1dfSx7YmVnaW46IigiK3UuUkVfU1RBUlRFUlNfUkUrInxcXGIoY2FzZXxyZXR1cm58dGhyb3cpXFxiKVxccyoiLGtleXdvcmRzOiJyZXR1cm4gdGhyb3cgY2FzZSIsY29udGFpbnM6W3csdS5SRUdFWFBfTU9ERSx7Y2xhc3NOYW1lOiJmdW5jdGlvbiIsYmVnaW46IihcXChbXigpXSooXFwoW14oKV0qKFxcKFteKCldKlxcKVteKCldKikqXFwpW14oKV0qKSpcXCl8Iit1LlVOREVSU0NPUkVfSURFTlRfUkUrIilcXHMqPT4iLHJldHVybkJlZ2luOiEwLGVuZDoiXFxzKj0+Iixjb250YWluczpbe2NsYXNzTmFtZToicGFyYW1zIix2YXJpYW50czpbe2JlZ2luOnUuVU5ERVJTQ09SRV9JREVOVF9SRSxyZWxldmFuY2U6MH0se2NsYXNzTmFtZTpudWxsLGJlZ2luOi9cKFxzKlwpLyxza2lwOiEwfSx7YmVnaW46L1woLyxlbmQ6L1wpLyxleGNsdWRlQmVnaW46ITAsZXhjbHVkZUVuZDohMCxrZXl3b3JkczpmLGNvbnRhaW5zOmFlfV19XX0se2JlZ2luOi8sLyxyZWxldmFuY2U6MH0se2NsYXNzTmFtZToiIixiZWdpbjovXHMvLGVuZDovXHMqLyxza2lwOiEwfSx7dmFyaWFudHM6W3tiZWdpbjpULmJlZ2luLGVuZDpULmVuZH0se2JlZ2luOmIuYmVnaW4sIm9uOmJlZ2luIjpiLmlzVHJ1bHlPcGVuaW5nVGFnLGVuZDpiLmVuZH1dLHN1Ykxhbmd1YWdlOiJ4bWwiLGNvbnRhaW5zOlt7YmVnaW46Yi5iZWdpbixlbmQ6Yi5lbmQsc2tpcDohMCxjb250YWluczpbInNlbGYiXX1dfV0scmVsZXZhbmNlOjB9LHtjbGFzc05hbWU6ImZ1bmN0aW9uIixiZWdpbktleXdvcmRzOiJmdW5jdGlvbiIsZW5kOi9beztdLyxleGNsdWRlRW5kOiEwLGtleXdvcmRzOmYsY29udGFpbnM6WyJzZWxmIix1LmluaGVyaXQodS5USVRMRV9NT0RFLHtiZWdpbjpTfSksWl0saWxsZWdhbDovJS99LHtiZWdpbktleXdvcmRzOiJ3aGlsZSBpZiBzd2l0Y2ggY2F0Y2ggZm9yIn0se2NsYXNzTmFtZToiZnVuY3Rpb24iLGJlZ2luOnUuVU5ERVJTQ09SRV9JREVOVF9SRSsiXFwoW14oKV0qKFxcKFteKCldKihcXChbXigpXSpcXClbXigpXSopKlxcKVteKCldKikqXFwpXFxzKlxceyIscmV0dXJuQmVnaW46ITAsY29udGFpbnM6W1osdS5pbmhlcml0KHUuVElUTEVfTU9ERSx7YmVnaW46U30pXX0se3ZhcmlhbnRzOlt7YmVnaW46IlxcLiIrU30se2JlZ2luOiJcXCQiK1N9XSxyZWxldmFuY2U6MH0se2NsYXNzTmFtZToiY2xhc3MiLGJlZ2luS2V5d29yZHM6ImNsYXNzIixlbmQ6L1t7Oz1dLyxleGNsdWRlRW5kOiEwLGlsbGVnYWw6L1s6IltcXV0vLGNvbnRhaW5zOlt7YmVnaW5LZXl3b3JkczoiZXh0ZW5kcyJ9LHUuVU5ERVJTQ09SRV9USVRMRV9NT0RFXX0se2JlZ2luOi9cYig/PWNvbnN0cnVjdG9yKS8sZW5kOi9beztdLyxleGNsdWRlRW5kOiEwLGNvbnRhaW5zOlt1LmluaGVyaXQodS5USVRMRV9NT0RFLHtiZWdpbjpTfSksInNlbGYiLFpdfSx7YmVnaW46IihnZXR8c2V0KVxccysoPz0iK1MrIlxcKCkiLGVuZDovXHsvLGtleXdvcmRzOiJnZXQgc2V0Iixjb250YWluczpbdS5pbmhlcml0KHUuVElUTEVfTU9ERSx7YmVnaW46U30pLHtiZWdpbjovXChcKS99LFpdfSx7YmVnaW46L1wkWyguXS99XX19ZnVuY3Rpb24gRSh1KXtjb25zdCBtPXIsUz17YmVnaW5LZXl3b3JkczoibmFtZXNwYWNlIixlbmQ6L1x7LyxleGNsdWRlRW5kOiEwfSxUPXtiZWdpbktleXdvcmRzOiJpbnRlcmZhY2UiLGVuZDovXHsvLGV4Y2x1ZGVFbmQ6ITAsa2V5d29yZHM6ImludGVyZmFjZSBleHRlbmRzIn0sYj17Y2xhc3NOYW1lOiJtZXRhIixyZWxldmFuY2U6MTAsYmVnaW46L15ccypbJyJddXNlIHN0cmljdFsnIl0vfSxmPVsiYW55Iiwidm9pZCIsIm51bWJlciIsImJvb2xlYW4iLCJzdHJpbmciLCJvYmplY3QiLCJuZXZlciIsImVudW0iXSxDPVsidHlwZSIsIm5hbWVzcGFjZSIsInR5cGVkZWYiLCJpbnRlcmZhY2UiLCJwdWJsaWMiLCJwcml2YXRlIiwicHJvdGVjdGVkIiwiaW1wbGVtZW50cyIsImRlY2xhcmUiLCJhYnN0cmFjdCIsInJlYWRvbmx5Il0sTz17JHBhdHRlcm46cixrZXl3b3JkOmUuY29uY2F0KEMpLGxpdGVyYWw6dCxidWlsdF9pbjpsLmNvbmNhdChmKX0sRD17Y2xhc3NOYW1lOiJtZXRhIixiZWdpbjoiQCIrbX0seT0oQixGLEspPT57Y29uc3Qgdz1CLmNvbnRhaW5zLmZpbmRJbmRleChYPT5YLmxhYmVsPT09Rik7aWYodz09PS0xKXRocm93IG5ldyBFcnJvcigiY2FuIG5vdCBmaW5kIG1vZGUgdG8gcmVwbGFjZSIpO0IuY29udGFpbnMuc3BsaWNlKHcsMSxLKX0sQT1nKHUpO09iamVjdC5hc3NpZ24oQS5rZXl3b3JkcyxPKSxBLmV4cG9ydHMuUEFSQU1TX0NPTlRBSU5TLnB1c2goRCksQS5jb250YWlucz1BLmNvbnRhaW5zLmNvbmNhdChbRCxTLFRdKSx5KEEsInNoZWJhbmciLHUuU0hFQkFORygpKSx5KEEsInVzZV9zdHJpY3QiLGIpO2NvbnN0IGs9QS5jb250YWlucy5maW5kKEI9PkIuY2xhc3NOYW1lPT09ImZ1bmN0aW9uIik7cmV0dXJuIGsucmVsZXZhbmNlPTAsT2JqZWN0LmFzc2lnbihBLHtuYW1lOiJUeXBlU2NyaXB0IixhbGlhc2VzOlsidHMiLCJ0c3giXX0pLEF9cy5leHBvcnRzPUV9LDQxMzAwOmZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHIoZSl7cmV0dXJue25hbWU6IlZhbGEiLGtleXdvcmRzOntrZXl3b3JkOiJjaGFyIHVjaGFyIHVuaWNoYXIgaW50IHVpbnQgbG9uZyB1bG9uZyBzaG9ydCB1c2hvcnQgaW50OCBpbnQxNiBpbnQzMiBpbnQ2NCB1aW50OCB1aW50MTYgdWludDMyIHVpbnQ2NCBmbG9hdCBkb3VibGUgYm9vbCBzdHJ1Y3QgZW51bSBzdHJpbmcgdm9pZCB3ZWFrIHVub3duZWQgb3duZWQgYXN5bmMgc2lnbmFsIHN0YXRpYyBhYnN0cmFjdCBpbnRlcmZhY2Ugb3ZlcnJpZGUgdmlydHVhbCBkZWxlZ2F0ZSBpZiB3aGlsZSBkbyBmb3IgZm9yZWFjaCBlbHNlIHN3aXRjaCBjYXNlIGJyZWFrIGRlZmF1bHQgcmV0dXJuIHRyeSBjYXRjaCBwdWJsaWMgcHJpdmF0ZSBwcm90ZWN0ZWQgaW50ZXJuYWwgdXNpbmcgbmV3IHRoaXMgZ2V0IHNldCBjb25zdCBzdGRvdXQgc3RkaW4gc3RkZXJyIHZhciIsYnVpbHRfaW46IkRCdXMgR0xpYiBDQ29kZSBHZWUgT2JqZWN0IEd0ayBQb3NpeCIsbGl0ZXJhbDoiZmFsc2UgdHJ1ZSBudWxsIn0sY29udGFpbnM6W3tjbGFzc05hbWU6ImNsYXNzIixiZWdpbktleXdvcmRzOiJjbGFzcyBpbnRlcmZhY2UgbmFtZXNwYWNlIixlbmQ6L1x7LyxleGNsdWRlRW5kOiEwLGlsbGVnYWw6IlteLDpcXG5cXHNcXC5dIixjb250YWluczpbZS5VTkRFUlNDT1JFX1RJVExFX01PREVdfSxlLkNfTElORV9DT01NRU5UX01PREUsZS5DX0JMT0NLX0NPTU1FTlRfTU9ERSx7Y2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOiciIiInLGVuZDonIiIiJyxyZWxldmFuY2U6NX0sZS5BUE9TX1NUUklOR19NT0RFLGUuUVVPVEVfU1RSSU5HX01PREUsZS5DX05VTUJFUl9NT0RFLHtjbGFzc05hbWU6Im1ldGEiLGJlZ2luOiJeIyIsZW5kOiIkIixyZWxldmFuY2U6Mn1dfX1zLmV4cG9ydHM9cn0sNzA3Mjc6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihhKXtyZXR1cm4gYT90eXBlb2YgYT09InN0cmluZyI/YTphLnNvdXJjZTpudWxsfWZ1bmN0aW9uIGUoLi4uYSl7cmV0dXJuIGEubWFwKG89PnIobykpLmpvaW4oIiIpfWZ1bmN0aW9uIHQoLi4uYSl7cmV0dXJuIigiK2EubWFwKG89PnIobykpLmpvaW4oInwiKSsiKSJ9ZnVuY3Rpb24gbihhKXtjb25zdCBpPXtjbGFzc05hbWU6InN0cmluZyIsYmVnaW46LyIoIiJ8W14vbl0pIkNcYi99LG89e2NsYXNzTmFtZToic3RyaW5nIixiZWdpbjovIi8sZW5kOi8iLyxpbGxlZ2FsOi9cbi8sY29udGFpbnM6W3tiZWdpbjovIiIvfV19LGw9L1xkezEsMn1cL1xkezEsMn1cL1xkezR9LyxjPS9cZHs0fS1cZHsxLDJ9LVxkezEsMn0vLF89LyhcZHwxWzAxMl0pKDpcZCspezAsMn0gKihBTXxQTSkvLGQ9L1xkezEsMn0oOlxkezEsMn0pezEsMn0vLGc9e2NsYXNzTmFtZToibGl0ZXJhbCIsdmFyaWFudHM6W3tiZWdpbjplKC8jICovLHQoYyxsKSwvICojLyl9LHtiZWdpbjplKC8jICovLGQsLyAqIy8pfSx7YmVnaW46ZSgvIyAqLyxfLC8gKiMvKX0se2JlZ2luOmUoLyMgKi8sdChjLGwpLC8gKy8sdChfLGQpLC8gKiMvKX1dfSxFPXtjbGFzc05hbWU6Im51bWJlciIscmVsZXZhbmNlOjAsdmFyaWFudHM6W3tiZWdpbjovXGJcZFtcZF9dKigoXC5bXGRfXSsoRVsrLV0/W1xkX10rKT8pfChFWystXT9bXGRfXSspKVtSRkRAISNdPy99LHtiZWdpbjovXGJcZFtcZF9dKigoVT9bU0lMXSl8WyUmXSk/L30se2JlZ2luOi8mSFtcZEEtRl9dKygoVT9bU0lMXSl8WyUmXSk/L30se2JlZ2luOi8mT1swLTdfXSsoKFU/W1NJTF0pfFslJl0pPy99LHtiZWdpbjovJkJbMDFfXSsoKFU/W1NJTF0pfFslJl0pPy99XX0sdT17Y2xhc3NOYW1lOiJsYWJlbCIsYmVnaW46L15cdys6L30sbT1hLkNPTU1FTlQoLycnJy8sLyQvLHtjb250YWluczpbe2NsYXNzTmFtZToiZG9jdGFnIixiZWdpbjovPFwvPy8sZW5kOi8+L31dfSksUz1hLkNPTU1FTlQobnVsbCwvJC8se3ZhcmlhbnRzOlt7YmVnaW46LycvfSx7YmVnaW46LyhbXHQgXXxeKVJFTSg/PVxzKS99XX0pO3JldHVybntuYW1lOiJWaXN1YWwgQmFzaWMgLk5FVCIsYWxpYXNlczpbInZiIl0sY2FzZV9pbnNlbnNpdGl2ZTohMCxjbGFzc05hbWVBbGlhc2VzOntsYWJlbDoic3ltYm9sIn0sa2V5d29yZHM6e2tleXdvcmQ6ImFkZGhhbmRsZXIgYWxpYXMgYWdncmVnYXRlIGFuc2kgYXMgYXN5bmMgYXNzZW1ibHkgYXV0byBiaW5hcnkgYnkgYnlyZWYgYnl2YWwgY2FsbCBjYXNlIGNhdGNoIGNsYXNzIGNvbXBhcmUgY29uc3QgY29udGludWUgY3VzdG9tIGRlY2xhcmUgZGVmYXVsdCBkZWxlZ2F0ZSBkaW0gZGlzdGluY3QgZG8gZWFjaCBlcXVhbHMgZWxzZSBlbHNlaWYgZW5kIGVudW0gZXJhc2UgZXJyb3IgZXZlbnQgZXhpdCBleHBsaWNpdCBmaW5hbGx5IGZvciBmcmllbmQgZnJvbSBmdW5jdGlvbiBnZXQgZ2xvYmFsIGdvdG8gZ3JvdXAgaGFuZGxlcyBpZiBpbXBsZW1lbnRzIGltcG9ydHMgaW4gaW5oZXJpdHMgaW50ZXJmYWNlIGludG8gaXRlcmF0b3Igam9pbiBrZXkgbGV0IGxpYiBsb29wIG1lIG1pZCBtb2R1bGUgbXVzdGluaGVyaXQgbXVzdG92ZXJyaWRlIG15YmFzZSBteWNsYXNzIG5hbWVzcGFjZSBuYXJyb3dpbmcgbmV3IG5leHQgbm90aW5oZXJpdGFibGUgbm90b3ZlcnJpZGFibGUgb2Ygb2ZmIG9uIG9wZXJhdG9yIG9wdGlvbiBvcHRpb25hbCBvcmRlciBvdmVybG9hZHMgb3ZlcnJpZGFibGUgb3ZlcnJpZGVzIHBhcmFtYXJyYXkgcGFydGlhbCBwcmVzZXJ2ZSBwcml2YXRlIHByb3BlcnR5IHByb3RlY3RlZCBwdWJsaWMgcmFpc2VldmVudCByZWFkb25seSByZWRpbSByZW1vdmVoYW5kbGVyIHJlc3VtZSByZXR1cm4gc2VsZWN0IHNldCBzaGFkb3dzIHNoYXJlZCBza2lwIHN0YXRpYyBzdGVwIHN0b3Agc3RydWN0dXJlIHN0cmljdCBzdWIgc3luY2xvY2sgdGFrZSB0ZXh0IHRoZW4gdGhyb3cgdG8gdHJ5IHVuaWNvZGUgdW50aWwgdXNpbmcgd2hlbiB3aGVyZSB3aGlsZSB3aWRlbmluZyB3aXRoIHdpdGhldmVudHMgd3JpdGVvbmx5IHlpZWxkIixidWlsdF9pbjoiYWRkcmVzc29mIGFuZCBhbmRhbHNvIGF3YWl0IGRpcmVjdGNhc3QgZ2V0dHlwZSBnZXR4bWxuYW1lc3BhY2UgaXMgaXNmYWxzZSBpc25vdCBpc3RydWUgbGlrZSBtb2QgbmFtZW9mIG5ldyBub3Qgb3Igb3JlbHNlIHRyeWNhc3QgdHlwZW9mIHhvciBjYm9vbCBjYnl0ZSBjY2hhciBjZGF0ZSBjZGJsIGNkZWMgY2ludCBjbG5nIGNvYmogY3NieXRlIGNzaG9ydCBjc25nIGNzdHIgY3VpbnQgY3VsbmcgY3VzaG9ydCIsdHlwZToiYm9vbGVhbiBieXRlIGNoYXIgZGF0ZSBkZWNpbWFsIGRvdWJsZSBpbnRlZ2VyIGxvbmcgb2JqZWN0IHNieXRlIHNob3J0IHNpbmdsZSBzdHJpbmcgdWludGVnZXIgdWxvbmcgdXNob3J0IixsaXRlcmFsOiJ0cnVlIGZhbHNlIG5vdGhpbmcifSxpbGxlZ2FsOiIvL3xcXHt8XFx9fGVuZGlmfGdvc3VifHZhcmlhbnR8d2VuZHxeXFwkICIsY29udGFpbnM6W2ksbyxnLEUsdSxtLFMse2NsYXNzTmFtZToibWV0YSIsYmVnaW46L1tcdCBdKiMoY29uc3R8ZGlzYWJsZXxlbHNlfGVsc2VpZnxlbmFibGV8ZW5kfGV4dGVybmFsc291cmNlfGlmfHJlZ2lvbilcYi8sZW5kOi8kLyxrZXl3b3Jkczp7Im1ldGEta2V5d29yZCI6ImNvbnN0IGRpc2FibGUgZWxzZSBlbHNlaWYgZW5hYmxlIGVuZCBleHRlcm5hbHNvdXJjZSBpZiByZWdpb24gdGhlbiJ9LGNvbnRhaW5zOltTXX1dfX1zLmV4cG9ydHM9bn0sMTE2NzQ6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihlKXtyZXR1cm57bmFtZToiVkJTY3JpcHQgaW4gSFRNTCIsc3ViTGFuZ3VhZ2U6InhtbCIsY29udGFpbnM6W3tiZWdpbjoiPCUiLGVuZDoiJT4iLHN1Ykxhbmd1YWdlOiJ2YnNjcmlwdCJ9XX19cy5leHBvcnRzPXJ9LDkwMTkwOmZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHIoYSl7cmV0dXJuIGE/dHlwZW9mIGE9PSJzdHJpbmciP2E6YS5zb3VyY2U6bnVsbH1mdW5jdGlvbiBlKC4uLmEpe3JldHVybiBhLm1hcChvPT5yKG8pKS5qb2luKCIiKX1mdW5jdGlvbiB0KC4uLmEpe3JldHVybiIoIithLm1hcChvPT5yKG8pKS5qb2luKCJ8IikrIikifWZ1bmN0aW9uIG4oYSl7Y29uc3QgaT0ibGNhc2UgbW9udGggdmFydHlwZSBpbnN0cnJldiB1Ym91bmQgc2V0bG9jYWxlIGdldG9iamVjdCByZ2IgZ2V0cmVmIHN0cmluZyB3ZWVrZGF5bmFtZSBybmQgZGF0ZWFkZCBtb250aG5hbWUgbm93IGRheSBtaW51dGUgaXNhcnJheSBjYm9vbCByb3VuZCBmb3JtYXRjdXJyZW5jeSBjb252ZXJzaW9ucyBjc25nIHRpbWV2YWx1ZSBzZWNvbmQgeWVhciBzcGFjZSBhYnMgY2xuZyB0aW1lc2VyaWFsIGZpeHMgbGVuIGFzYyBpc2VtcHR5IG1hdGhzIGRhdGVzZXJpYWwgYXRuIHRpbWVyIGlzb2JqZWN0IGZpbHRlciB3ZWVrZGF5IGRhdGV2YWx1ZSBjY3VyIGlzZGF0ZSBpbnN0ciBkYXRlZGlmZiBmb3JtYXRkYXRldGltZSByZXBsYWNlIGlzbnVsbCByaWdodCBzZ24gYXJyYXkgc251bWVyaWMgbG9nIGNkYmwgaGV4IGNociBsYm91bmQgbXNnYm94IHVjYXNlIGdldGxvY2FsZSBjb3MgY2RhdGUgY2J5dGUgcnRyaW0gam9pbiBob3VyIG9jdCB0eXBlbmFtZSB0cmltIHN0cmNvbXAgaW50IGNyZWF0ZW9iamVjdCBsb2FkcGljdHVyZSB0YW4gZm9ybWF0bnVtYmVyIG1pZCBzcGxpdCAgY2ludCBzaW4gZGF0ZXBhcnQgbHRyaW0gc3FyIHRpbWUgZGVyaXZlZCBldmFsIGRhdGUgZm9ybWF0cGVyY2VudCBleHAgaW5wdXRib3ggbGVmdCBhc2N3IGNocncgcmVnZXhwIGNzdHIgZXJyIi5zcGxpdCgiICIpLG89WyJzZXJ2ZXIiLCJyZXNwb25zZSIsInJlcXVlc3QiLCJzY3JpcHRlbmdpbmUiLCJzY3JpcHRlbmdpbmVidWlsZHZlcnNpb24iLCJzY3JpcHRlbmdpbmVtaW5vcnZlcnNpb24iLCJzY3JpcHRlbmdpbmVtYWpvcnZlcnNpb24iXSxsPXtiZWdpbjplKHQoLi4uaSksIlxccypcXCgiKSxyZWxldmFuY2U6MCxrZXl3b3Jkczp7YnVpbHRfaW46aX19O3JldHVybntuYW1lOiJWQlNjcmlwdCIsYWxpYXNlczpbInZicyJdLGNhc2VfaW5zZW5zaXRpdmU6ITAsa2V5d29yZHM6e2tleXdvcmQ6ImNhbGwgY2xhc3MgY29uc3QgZGltIGRvIGxvb3AgZXJhc2UgZXhlY3V0ZSBleGVjdXRlZ2xvYmFsIGV4aXQgZm9yIGVhY2ggbmV4dCBmdW5jdGlvbiBpZiB0aGVuIGVsc2Ugb24gZXJyb3Igb3B0aW9uIGV4cGxpY2l0IG5ldyBwcml2YXRlIHByb3BlcnR5IGxldCBnZXQgcHVibGljIHJhbmRvbWl6ZSByZWRpbSByZW0gc2VsZWN0IGNhc2Ugc2V0IHN0b3Agc3ViIHdoaWxlIHdlbmQgd2l0aCBlbmQgdG8gZWxzZWlmIGlzIG9yIHhvciBhbmQgbm90IGNsYXNzX2luaXRpYWxpemUgY2xhc3NfdGVybWluYXRlIGRlZmF1bHQgcHJlc2VydmUgaW4gbWUgYnl2YWwgYnlyZWYgc3RlcCByZXN1bWUgZ290byIsYnVpbHRfaW46byxsaXRlcmFsOiJ0cnVlIGZhbHNlIG51bGwgbm90aGluZyBlbXB0eSJ9LGlsbGVnYWw6Ii8vIixjb250YWluczpbbCxhLmluaGVyaXQoYS5RVU9URV9TVFJJTkdfTU9ERSx7Y29udGFpbnM6W3tiZWdpbjonIiInfV19KSxhLkNPTU1FTlQoLycvLC8kLyx7cmVsZXZhbmNlOjB9KSxhLkNfTlVNQkVSX01PREVdfX1zLmV4cG9ydHM9bn0sMTMxMDY6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihlKXtyZXR1cm57bmFtZToiVmVyaWxvZyIsYWxpYXNlczpbInYiLCJzdiIsInN2aCJdLGNhc2VfaW5zZW5zaXRpdmU6ITEsa2V5d29yZHM6eyRwYXR0ZXJuOi9bXHdcJF0rLyxrZXl3b3JkOiJhY2NlcHRfb24gYWxpYXMgYWx3YXlzIGFsd2F5c19jb21iIGFsd2F5c19mZiBhbHdheXNfbGF0Y2ggYW5kIGFzc2VydCBhc3NpZ24gYXNzdW1lIGF1dG9tYXRpYyBiZWZvcmUgYmVnaW4gYmluZCBiaW5zIGJpbnNvZiBiaXQgYnJlYWsgYnVmfDAgYnVmaWYwIGJ1ZmlmMSBieXRlIGNhc2UgY2FzZXggY2FzZXogY2VsbCBjaGFuZGxlIGNoZWNrZXIgY2xhc3MgY2xvY2tpbmcgY21vcyBjb25maWcgY29uc3QgY29uc3RyYWludCBjb250ZXh0IGNvbnRpbnVlIGNvdmVyIGNvdmVyZ3JvdXAgY292ZXJwb2ludCBjcm9zcyBkZWFzc2lnbiBkZWZhdWx0IGRlZnBhcmFtIGRlc2lnbiBkaXNhYmxlIGRpc3QgZG8gZWRnZSBlbHNlIGVuZCBlbmRjYXNlIGVuZGNoZWNrZXIgZW5kY2xhc3MgZW5kY2xvY2tpbmcgZW5kY29uZmlnIGVuZGZ1bmN0aW9uIGVuZGdlbmVyYXRlIGVuZGdyb3VwIGVuZGludGVyZmFjZSBlbmRtb2R1bGUgZW5kcGFja2FnZSBlbmRwcmltaXRpdmUgZW5kcHJvZ3JhbSBlbmRwcm9wZXJ0eSBlbmRzcGVjaWZ5IGVuZHNlcXVlbmNlIGVuZHRhYmxlIGVuZHRhc2sgZW51bSBldmVudCBldmVudHVhbGx5IGV4cGVjdCBleHBvcnQgZXh0ZW5kcyBleHRlcm4gZmluYWwgZmlyc3RfbWF0Y2ggZm9yIGZvcmNlIGZvcmVhY2ggZm9yZXZlciBmb3JrIGZvcmtqb2luIGZ1bmN0aW9uIGdlbmVyYXRlfDUgZ2VudmFyIGdsb2JhbCBoaWdoejAgaGlnaHoxIGlmIGlmZiBpZm5vbmUgaWdub3JlX2JpbnMgaWxsZWdhbF9iaW5zIGltcGxlbWVudHMgaW1wbGllcyBpbXBvcnQgaW5jZGlyIGluY2x1ZGUgaW5pdGlhbCBpbm91dCBpbnB1dCBpbnNpZGUgaW5zdGFuY2UgaW50IGludGVnZXIgaW50ZXJjb25uZWN0IGludGVyZmFjZSBpbnRlcnNlY3Qgam9pbiBqb2luX2FueSBqb2luX25vbmUgbGFyZ2UgbGV0IGxpYmxpc3QgbGlicmFyeSBsb2NhbCBsb2NhbHBhcmFtIGxvZ2ljIGxvbmdpbnQgbWFjcm9tb2R1bGUgbWF0Y2hlcyBtZWRpdW0gbW9kcG9ydCBtb2R1bGUgbmFuZCBuZWdlZGdlIG5ldHR5cGUgbmV3IG5leHR0aW1lIG5tb3Mgbm9yIG5vc2hvd2NhbmNlbGxlZCBub3Qgbm90aWYwIG5vdGlmMSBvciBvdXRwdXQgcGFja2FnZSBwYWNrZWQgcGFyYW1ldGVyIHBtb3MgcG9zZWRnZSBwcmltaXRpdmUgcHJpb3JpdHkgcHJvZ3JhbSBwcm9wZXJ0eSBwcm90ZWN0ZWQgcHVsbDAgcHVsbDEgcHVsbGRvd24gcHVsbHVwIHB1bHNlc3R5bGVfb25kZXRlY3QgcHVsc2VzdHlsZV9vbmV2ZW50IHB1cmUgcmFuZCByYW5kYyByYW5kY2FzZSByYW5kc2VxdWVuY2UgcmNtb3MgcmVhbCByZWFsdGltZSByZWYgcmVnIHJlamVjdF9vbiByZWxlYXNlIHJlcGVhdCByZXN0cmljdCByZXR1cm4gcm5tb3MgcnBtb3MgcnRyYW4gcnRyYW5pZjAgcnRyYW5pZjEgc19hbHdheXMgc19ldmVudHVhbGx5IHNfbmV4dHRpbWUgc191bnRpbCBzX3VudGlsX3dpdGggc2NhbGFyZWQgc2VxdWVuY2Ugc2hvcnRpbnQgc2hvcnRyZWFsIHNob3djYW5jZWxsZWQgc2lnbmVkIHNtYWxsIHNvZnQgc29sdmUgc3BlY2lmeSBzcGVjcGFyYW0gc3RhdGljIHN0cmluZyBzdHJvbmcgc3Ryb25nMCBzdHJvbmcxIHN0cnVjdCBzdXBlciBzdXBwbHkwIHN1cHBseTEgc3luY19hY2NlcHRfb24gc3luY19yZWplY3Rfb24gdGFibGUgdGFnZ2VkIHRhc2sgdGhpcyB0aHJvdWdob3V0IHRpbWUgdGltZXByZWNpc2lvbiB0aW1ldW5pdCB0cmFuIHRyYW5pZjAgdHJhbmlmMSB0cmkgdHJpMCB0cmkxIHRyaWFuZCB0cmlvciB0cmlyZWcgdHlwZSB0eXBlZGVmIHVuaW9uIHVuaXF1ZSB1bmlxdWUwIHVuc2lnbmVkIHVudGlsIHVudGlsX3dpdGggdW50eXBlZCB1c2UgdXdpcmUgdmFyIHZlY3RvcmVkIHZpcnR1YWwgdm9pZCB3YWl0IHdhaXRfb3JkZXIgd2FuZCB3ZWFrIHdlYWswIHdlYWsxIHdoaWxlIHdpbGRjYXJkIHdpcmUgd2l0aCB3aXRoaW4gd29yIHhub3IgeG9yIixsaXRlcmFsOiJudWxsIixidWlsdF9pbjoiJGZpbmlzaCAkc3RvcCAkZXhpdCAkZmF0YWwgJGVycm9yICR3YXJuaW5nICRpbmZvICRyZWFsdGltZSAkdGltZSAkcHJpbnR0aW1lc2NhbGUgJGJpdHN0b3JlYWwgJGJpdHN0b3Nob3J0cmVhbCAkaXRvciAkc2lnbmVkICRjYXN0ICRiaXRzICRzdGltZSAkdGltZWZvcm1hdCAkcmVhbHRvYml0cyAkc2hvcnRyZWFsdG9iaXRzICRydG9pICR1bnNpZ25lZCAkYXNzZXJ0b24gJGFzc2VydGtpbGwgJGFzc2VydHBhc3NvbiAkYXNzZXJ0ZmFpbG9uICRhc3NlcnRub252YWN1b3Vzb24gJGFzc2VydG9mZiAkYXNzZXJ0Y29udHJvbCAkYXNzZXJ0cGFzc29mZiAkYXNzZXJ0ZmFpbG9mZiAkYXNzZXJ0dmFjdW91c29mZiAkaXN1bmJvdW5kZWQgJHNhbXBsZWQgJGZlbGwgJGNoYW5nZWQgJHBhc3RfZ2NsayAkZmVsbF9nY2xrICRjaGFuZ2VkX2djbGsgJHJpc2luZ19nY2xrICRzdGVhZHlfZ2NsayAkY292ZXJhZ2VfY29udHJvbCAkY292ZXJhZ2VfZ2V0ICRjb3ZlcmFnZV9zYXZlICRzZXRfY292ZXJhZ2VfZGJfbmFtZSAkcm9zZSAkc3RhYmxlICRwYXN0ICRyb3NlX2djbGsgJHN0YWJsZV9nY2xrICRmdXR1cmVfZ2NsayAkZmFsbGluZ19nY2xrICRjaGFuZ2luZ19nY2xrICRkaXNwbGF5ICRjb3ZlcmFnZV9nZXRfbWF4ICRjb3ZlcmFnZV9tZXJnZSAkZ2V0X2NvdmVyYWdlICRsb2FkX2NvdmVyYWdlX2RiICR0eXBlbmFtZSAkdW5wYWNrZWRfZGltZW5zaW9ucyAkbGVmdCAkbG93ICRpbmNyZW1lbnQgJGNsb2cyICRsbiAkbG9nMTAgJGV4cCAkc3FydCAkcG93ICRmbG9vciAkY2VpbCAkc2luICRjb3MgJHRhbiAkY291bnRiaXRzICRvbmVob3QgJGlzdW5rbm93biAkZmF0YWwgJHdhcm5pbmcgJGRpbWVuc2lvbnMgJHJpZ2h0ICRoaWdoICRzaXplICRhc2luICRhY29zICRhdGFuICRhdGFuMiAkaHlwb3QgJHNpbmggJGNvc2ggJHRhbmggJGFzaW5oICRhY29zaCAkYXRhbmggJGNvdW50b25lcyAkb25laG90MCAkZXJyb3IgJGluZm8gJHJhbmRvbSAkZGlzdF9jaGlfc3F1YXJlICRkaXN0X2VybGFuZyAkZGlzdF9leHBvbmVudGlhbCAkZGlzdF9ub3JtYWwgJGRpc3RfcG9pc3NvbiAkZGlzdF90ICRkaXN0X3VuaWZvcm0gJHFfaW5pdGlhbGl6ZSAkcV9yZW1vdmUgJHFfZXhhbSAkYXN5bmMkYW5kJGFycmF5ICRhc3luYyRuYW5kJGFycmF5ICRhc3luYyRvciRhcnJheSAkYXN5bmMkbm9yJGFycmF5ICRzeW5jJGFuZCRhcnJheSAkc3luYyRuYW5kJGFycmF5ICRzeW5jJG9yJGFycmF5ICRzeW5jJG5vciRhcnJheSAkcV9hZGQgJHFfZnVsbCAkcHNwcmludGYgJGFzeW5jJGFuZCRwbGFuZSAkYXN5bmMkbmFuZCRwbGFuZSAkYXN5bmMkb3IkcGxhbmUgJGFzeW5jJG5vciRwbGFuZSAkc3luYyRhbmQkcGxhbmUgJHN5bmMkbmFuZCRwbGFuZSAkc3luYyRvciRwbGFuZSAkc3luYyRub3IkcGxhbmUgJHN5c3RlbSAkZGlzcGxheSAkZGlzcGxheWIgJGRpc3BsYXloICRkaXNwbGF5byAkc3Ryb2JlICRzdHJvYmViICRzdHJvYmVoICRzdHJvYmVvICR3cml0ZSAkcmVhZG1lbWIgJHJlYWRtZW1oICR3cml0ZW1lbWggJHZhbHVlJHBsdXNhcmdzICRkdW1wdmFycyAkZHVtcG9uICRkdW1wbGltaXQgJGR1bXBwb3J0cyAkZHVtcHBvcnRzb24gJGR1bXBwb3J0c2xpbWl0ICR3cml0ZWIgJHdyaXRlaCAkd3JpdGVvICRtb25pdG9yICRtb25pdG9yYiAkbW9uaXRvcmggJG1vbml0b3JvICR3cml0ZW1lbWIgJGR1bXBmaWxlICRkdW1wb2ZmICRkdW1wYWxsICRkdW1wZmx1c2ggJGR1bXBwb3J0c29mZiAkZHVtcHBvcnRzYWxsICRkdW1wcG9ydHNmbHVzaCAkZmNsb3NlICRmZGlzcGxheSAkZmRpc3BsYXliICRmZGlzcGxheWggJGZkaXNwbGF5byAkZnN0cm9iZSAkZnN0cm9iZWIgJGZzdHJvYmVoICRmc3Ryb2JlbyAkc3dyaXRlICRzd3JpdGViICRzd3JpdGVoICRzd3JpdGVvICRmc2NhbmYgJGZyZWFkICRmc2VlayAkZmZsdXNoICRmZW9mICRmb3BlbiAkZndyaXRlICRmd3JpdGViICRmd3JpdGVoICRmd3JpdGVvICRmbW9uaXRvciAkZm1vbml0b3JiICRmbW9uaXRvcmggJGZtb25pdG9ybyAkc2Zvcm1hdCAkc2Zvcm1hdGYgJGZnZXRjICR1bmdldGMgJGZnZXRzICRzc2NhbmYgJHJld2luZCAkZnRlbGwgJGZlcnJvciJ9LGNvbnRhaW5zOltlLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLGUuQ19MSU5FX0NPTU1FTlRfTU9ERSxlLlFVT1RFX1NUUklOR19NT0RFLHtjbGFzc05hbWU6Im51bWJlciIsY29udGFpbnM6W2UuQkFDS1NMQVNIX0VTQ0FQRV0sdmFyaWFudHM6W3tiZWdpbjoiXFxiKChcXGQrJyhifGh8b3xkfEJ8SHxPfEQpKVswLTl4elhaYS1mQS1GX10rKSJ9LHtiZWdpbjoiXFxCKCgnKGJ8aHxvfGR8QnxIfE98RCkpWzAtOXh6WFphLWZBLUZfXSspIn0se2JlZ2luOiJcXGIoWzAtOV9dKSsiLHJlbGV2YW5jZTowfV19LHtjbGFzc05hbWU6InZhcmlhYmxlIix2YXJpYW50czpbe2JlZ2luOiIjXFwoKD8hcGFyYW1ldGVyKS4rXFwpIn0se2JlZ2luOiJcXC5cXHcrIixyZWxldmFuY2U6MH1dfSx7Y2xhc3NOYW1lOiJtZXRhIixiZWdpbjoiYCIsZW5kOiIkIixrZXl3b3Jkczp7Im1ldGEta2V5d29yZCI6ImRlZmluZSBfX0ZJTEVfXyBfX0xJTkVfXyBiZWdpbl9rZXl3b3JkcyBjZWxsZGVmaW5lIGRlZmF1bHRfbmV0dHlwZSBkZWZpbmUgZWxzZSBlbHNpZiBlbmRfa2V5d29yZHMgZW5kY2VsbGRlZmluZSBlbmRpZiBpZmRlZiBpZm5kZWYgaW5jbHVkZSBsaW5lIG5vdW5jb25uZWN0ZWRfZHJpdmUgcHJhZ21hIHJlc2V0YWxsIHRpbWVzY2FsZSB1bmNvbm5lY3RlZF9kcml2ZSB1bmRlZiB1bmRlZmluZWFsbCJ9LHJlbGV2YW5jZTowfV19fXMuZXhwb3J0cz1yfSwxMzg1MzpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGUpe2NvbnN0IHQ9IlxcZChffFxcZCkqIixuPSJbZUVdWy0rXT8iK3QsYT10KyIoXFwuIit0KyIpPygiK24rIik/IixpPSJcXHcrIixsPSJcXGIoIisodCsiIyIraSsiKFxcLiIraSsiKT8jKCIrbisiKT8iKSsifCIrYSsiKSI7cmV0dXJue25hbWU6IlZIREwiLGNhc2VfaW5zZW5zaXRpdmU6ITAsa2V5d29yZHM6e2tleXdvcmQ6ImFicyBhY2Nlc3MgYWZ0ZXIgYWxpYXMgYWxsIGFuZCBhcmNoaXRlY3R1cmUgYXJyYXkgYXNzZXJ0IGFzc3VtZSBhc3N1bWVfZ3VhcmFudGVlIGF0dHJpYnV0ZSBiZWdpbiBibG9jayBib2R5IGJ1ZmZlciBidXMgY2FzZSBjb21wb25lbnQgY29uZmlndXJhdGlvbiBjb25zdGFudCBjb250ZXh0IGNvdmVyIGRpc2Nvbm5lY3QgZG93bnRvIGRlZmF1bHQgZWxzZSBlbHNpZiBlbmQgZW50aXR5IGV4aXQgZmFpcm5lc3MgZmlsZSBmb3IgZm9yY2UgZnVuY3Rpb24gZ2VuZXJhdGUgZ2VuZXJpYyBncm91cCBndWFyZGVkIGlmIGltcHVyZSBpbiBpbmVydGlhbCBpbm91dCBpcyBsYWJlbCBsaWJyYXJ5IGxpbmthZ2UgbGl0ZXJhbCBsb29wIG1hcCBtb2QgbmFuZCBuZXcgbmV4dCBub3Igbm90IG51bGwgb2Ygb24gb3BlbiBvciBvdGhlcnMgb3V0IHBhY2thZ2UgcGFyYW1ldGVyIHBvcnQgcG9zdHBvbmVkIHByb2NlZHVyZSBwcm9jZXNzIHByb3BlcnR5IHByb3RlY3RlZCBwdXJlIHJhbmdlIHJlY29yZCByZWdpc3RlciByZWplY3QgcmVsZWFzZSByZW0gcmVwb3J0IHJlc3RyaWN0IHJlc3RyaWN0X2d1YXJhbnRlZSByZXR1cm4gcm9sIHJvciBzZWxlY3Qgc2VxdWVuY2Ugc2V2ZXJpdHkgc2hhcmVkIHNpZ25hbCBzbGEgc2xsIHNyYSBzcmwgc3Ryb25nIHN1YnR5cGUgdGhlbiB0byB0cmFuc3BvcnQgdHlwZSB1bmFmZmVjdGVkIHVuaXRzIHVudGlsIHVzZSB2YXJpYWJsZSB2aWV3IHZtb2RlIHZwcm9wIHZ1bml0IHdhaXQgd2hlbiB3aGlsZSB3aXRoIHhub3IgeG9yIixidWlsdF9pbjoiYm9vbGVhbiBiaXQgY2hhcmFjdGVyIGludGVnZXIgdGltZSBkZWxheV9sZW5ndGggbmF0dXJhbCBwb3NpdGl2ZSBzdHJpbmcgYml0X3ZlY3RvciBmaWxlX29wZW5fa2luZCBmaWxlX29wZW5fc3RhdHVzIHN0ZF9sb2dpYyBzdGRfbG9naWNfdmVjdG9yIHVuc2lnbmVkIHNpZ25lZCBib29sZWFuX3ZlY3RvciBpbnRlZ2VyX3ZlY3RvciBzdGRfdWxvZ2ljIHN0ZF91bG9naWNfdmVjdG9yIHVucmVzb2x2ZWRfdW5zaWduZWQgdV91bnNpZ25lZCB1bnJlc29sdmVkX3NpZ25lZCB1X3NpZ25lZCByZWFsX3ZlY3RvciB0aW1lX3ZlY3RvciIsbGl0ZXJhbDoiZmFsc2UgdHJ1ZSBub3RlIHdhcm5pbmcgZXJyb3IgZmFpbHVyZSBsaW5lIHRleHQgc2lkZSB3aWR0aCJ9LGlsbGVnYWw6L1x7Lyxjb250YWluczpbZS5DX0JMT0NLX0NPTU1FTlRfTU9ERSxlLkNPTU1FTlQoIi0tIiwiJCIpLGUuUVVPVEVfU1RSSU5HX01PREUse2NsYXNzTmFtZToibnVtYmVyIixiZWdpbjpsLHJlbGV2YW5jZTowfSx7Y2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOiInKFV8WHwwfDF8WnxXfEx8SHwtKSciLGNvbnRhaW5zOltlLkJBQ0tTTEFTSF9FU0NBUEVdfSx7Y2xhc3NOYW1lOiJzeW1ib2wiLGJlZ2luOiInW0EtWmEtel0oXz9bQS1aYS16MC05XSkqIixjb250YWluczpbZS5CQUNLU0xBU0hfRVNDQVBFXX1dfX1zLmV4cG9ydHM9cn0sMzQwNTU6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihlKXtyZXR1cm57bmFtZToiVmltIFNjcmlwdCIsa2V5d29yZHM6eyRwYXR0ZXJuOi9bISNAXHddKy8sa2V5d29yZDoiTnwwIFB8MCBYfDAgYXwwIGFiIGFiYyBhYm8gYWwgYW0gYW58MCBhciBhcmdhIGFyZ2QgYXJnZSBhcmdkbyBhcmdnIGFyZ2wgYXJndSBhcyBhdSBhdWcgYXVuIGJ8MCBiTiBiYSBiYWQgYmQgYmUgYmVsIGJmIGJsIGJtIGJuIGJvIGJwIGJyIGJyZWEgYnJlYWthIGJyZWFrZCBicmVha2wgYnJvIGJ1ZmRvIGJ1ZmZlcnMgYnVuIGJ3IGN8MCBjTiBjTmYgY2EgY2FiYyBjYWRkYiBjYWQgY2FkZGYgY2FsIGNhdCBjYiBjYyBjY2wgY2QgY2UgY2V4IGNmIGNmaXIgY2dldGIgY2dldGUgY2cgY2hhbmdlcyBjaGQgY2hlIGNoZWNrdCBjbCBjbGEgY2xvIGNtIGNtYXBjIGNtZSBjbiBjbmV3IGNuZiBjbm8gY25vcmVhIGNub3JlbWUgY28gY29sIGNvbG8gY29tIGNvbWMgY29tcCBjb24gY29uZiBjb3BlIGNwIGNwZiBjcSBjciBjcyBjc3QgY3UgY3VuYSBjdW5tZSBjdyBkZWxtIGRlYiBkZWJ1Z2cgZGVsYyBkZWxmIGRpZiBkaWZmZyBkaWZmbyBkaWZmcCBkaWZmcHUgZGlmZnMgZGlmZnRoaXMgZGlnIGRpIGRsIGRlbGwgZGogZGxpIGRvIGRvYXV0b2EgZHAgZHIgZHMgZHNwIGV8MCBlYSBlYyBlY2hvZSBlY2hvaCBlY2hvbSBlY2hvbiBlbCBlbHNlaSBlbSBlbiBlbmRmbyBlbmRmIGVuZHQgZW5kdyBlbmUgZXggZXhlIGV4aSBleHUgZnwwIGZpbGVzIGZpbGV0IGZpbiBmaW5hIGZpbmkgZmlyIGZpeCBmbyBmb2xkYyBmb2xkZCBmb2xkZG9jIGZvbGRvIGZvciBmdSBnbyBnciBncmVwYSBndSBndiBoYSBoZWxwZiBoZWxwZyBoZWxwdCBoaSBoaWQgaGlzIGlhIGlhYmMgaWYgaWogaWwgaW0gaW1hcGMgaW1lIGlubyBpbm9yZWEgaW5vcmVtZSBpbnQgaXMgaXNwIGl1IGl1bmEgaXVubWUganwwIGp1IGt8MCBrZWVwYSBrZWUga2VlcGogbE4gbE5mIGx8MCBsYWQgbGFkZGIgbGFkZGYgbGEgbGFuIGxhdCBsYiBsYyBsY2ggbGNsIGxjcyBsZSBsZWZ0YSBsZXQgbGV4IGxmIGxmaXIgbGdldGIgbGdldGUgbGcgbGdyIGxncmVwYSBsaCBsbCBsbGEgbGxpIGxtYWsgbG0gbG1hcGMgbG5lIGxuZXcgbG5mIGxuIGxvYWRrIGxvIGxvYyBsb2NrdiBsb2wgbG9wZSBscCBscGYgbHIgbHMgbHQgbHUgbHVhIGx1YWQgbHVhZiBsdiBsdmltZ3JlcGEgbHcgbXwwIG1hIG1hayBtYXAgbWFwYyBtYXJrcyBtYXQgbWUgbWVudXQgbWVzIG1rIG1rcyBta3NwIG1rdiBta3ZpZSBtb2QgbXogbXpmIG5iYyBuYiBuYnMgbmV3IG5tIG5tYXBjIG5tZSBubiBubm9yZW1lIG5vYSBubyBub2ggbm9yZWEgbm9yZW1lIG5vcm0gbnUgbnVuIG51bm1lIG9sIG98MCBvbSBvbWFwYyBvbWUgb24gb25vIG9ub3JlbWUgb3B0IG91IG91bm1lIG93IHB8MCBwcm9mZCBwcm9mIHBybyBwcm9tcHRyIHBjIHBlZCBwZSBwZXJsZCBwbyBwb3B1IHBwIHByZSBwcmV2IHBzIHB0IHB0TiBwdGYgcHRqIHB0bCBwdG4gcHRwIHB0ciBwdHMgcHUgcHcgcHkzIHB5dGhvbjMgcHkzZCBweTNmIHB5IHB5ZCBweWYgcXVpdGEgcWEgcmVjIHJlZCByZWRpIHJlZHIgcmVkcmF3cyByZWcgcmVzIHJldCByZXR1IHJldyByaSByaWdodGIgcnViIHJ1YnlkIHJ1YnlmIHJ1bmQgcnUgcnYgc04gc2FuIHNhIHNhbCBzYXYgc2Igc2JOIHNiYSBzYmYgc2JsIHNibSBzYm4gc2JwIHNiciBzY3JpcCBzY3JpcHRlIHNjcyBzZSBzZXRmIHNldGcgc2V0bCBzZiBzZmlyIHNoIHNpbSBzaWcgc2lsIHNsIHNsYSBzbSBzbWFwIHNtYXBjIHNtZSBzbiBzbmkgc25vIHNub3Igc25vcmVtZSBzb3Igc28gc3BlbGxkIHNwZSBzcGVsbGkgc3BlbGxyIHNwZWxsdSBzcGVsbHcgc3Agc3ByIHNyZSBzdCBzdGEgc3RhcnRnIHN0YXJ0ciBzdGFyIHN0b3BpIHN0aiBzdHMgc3VuIHN1bm0gc3VubWUgc3VzIHN2IHN3IHN5IHN5bnRpIHN5bmMgdE4gdGFiTiB0YWJjIHRhYmRvIHRhYmUgdGFiZiB0YWJmaXIgdGFibCB0YWJtIHRhYm5ldyB0YWJuIHRhYm8gdGFicCB0YWJyIHRhYnMgdGFiIHRhIHRhZ3MgdGMgdGNsZCB0Y2xmIHRlIHRmIHRoIHRqIHRsIHRtIHRuIHRvIHRwIHRyIHRyeSB0cyB0dSB1fDAgdW5kb2ogdW5kb2wgdW5hIHVuaCB1bmwgdW5sbyB1bm0gdW5tZSB1bnMgdXAgdmUgdmVyYiB2ZXJ0IHZpbSB2aW1ncmVwYSB2aSB2aXUgdmllIHZtIHZtYXBjIHZtZSB2bmUgdm4gdm5vcmVtZSB2cyB2dSB2dW5tZSB3aW5kbyB3fDAgd04gd2Egd2ggd2kgd2luYyB3aW5wIHduIHdwIHdxIHdxYSB3cyB3dSB3diB4fDAgeGEgeG1hcGMgeG0geG1lIHhuIHhub3JlbWUgeHUgeHVubWUgeXwwIHp8MCB+IE5leHQgUHJpbnQgYXBwZW5kIGFiYnJldmlhdGUgYWJjbGVhciBhYm92ZWxlZnQgYWxsIGFtZW51IGFub3JlbWVudSBhcmdzIGFyZ2FkZCBhcmdkZWxldGUgYXJnZWRpdCBhcmdnbG9iYWwgYXJnbG9jYWwgYXJndW1lbnQgYXNjaWkgYXV0b2NtZCBhdWdyb3VwIGF1bm1lbnUgYnVmZmVyIGJOZXh0IGJhbGwgYmFkZCBiZGVsZXRlIGJlaGF2ZSBiZWxvd3JpZ2h0IGJmaXJzdCBibGFzdCBibW9kaWZpZWQgYm5leHQgYm90cmlnaHQgYnByZXZpb3VzIGJyZXdpbmQgYnJlYWsgYnJlYWthZGQgYnJlYWtkZWwgYnJlYWtsaXN0IGJyb3dzZSBidW5sb2FkIGJ3aXBlb3V0IGNoYW5nZSBjTmV4dCBjTmZpbGUgY2FiYnJldiBjYWJjbGVhciBjYWRkYnVmZmVyIGNhZGRleHByIGNhZGRmaWxlIGNhbGwgY2F0Y2ggY2J1ZmZlciBjY2xvc2UgY2VudGVyIGNleHByIGNmaWxlIGNmaXJzdCBjZ2V0YnVmZmVyIGNnZXRleHByIGNnZXRmaWxlIGNoZGlyIGNoZWNrcGF0aCBjaGVja3RpbWUgY2xpc3QgY2xhc3QgY2xvc2UgY21hcCBjbWFwY2xlYXIgY21lbnUgY25leHQgY25ld2VyIGNuZmlsZSBjbm9yZW1hcCBjbm9yZWFiYnJldiBjbm9yZW1lbnUgY29weSBjb2xkZXIgY29sb3JzY2hlbWUgY29tbWFuZCBjb21jbGVhciBjb21waWxlciBjb250aW51ZSBjb25maXJtIGNvcGVuIGNwcmV2aW91cyBjcGZpbGUgY3F1aXQgY3Jld2luZCBjc2NvcGUgY3N0YWcgY3VubWFwIGN1bmFiYnJldiBjdW5tZW51IGN3aW5kb3cgZGVsZXRlIGRlbG1hcmtzIGRlYnVnIGRlYnVnZ3JlZWR5IGRlbGNvbW1hbmQgZGVsZnVuY3Rpb24gZGlmZnVwZGF0ZSBkaWZmZ2V0IGRpZmZvZmYgZGlmZnBhdGNoIGRpZmZwdXQgZGlmZnNwbGl0IGRpZ3JhcGhzIGRpc3BsYXkgZGVsZXRlbCBkanVtcCBkbGlzdCBkb2F1dG9jbWQgZG9hdXRvYWxsIGRlbGV0ZXAgZHJvcCBkc2VhcmNoIGRzcGxpdCBlZGl0IGVhcmxpZXIgZWNobyBlY2hvZXJyIGVjaG9obCBlY2hvbXNnIGVsc2UgZWxzZWlmIGVtZW51IGVuZGlmIGVuZGZvciBlbmRmdW5jdGlvbiBlbmR0cnkgZW5kd2hpbGUgZW5ldyBleGVjdXRlIGV4aXQgZXh1c2FnZSBmaWxlIGZpbGV0eXBlIGZpbmQgZmluYWxseSBmaW5pc2ggZmlyc3QgZml4ZGVsIGZvbGQgZm9sZGNsb3NlIGZvbGRkb29wZW4gZm9sZGRvY2xvc2VkIGZvbGRvcGVuIGZ1bmN0aW9uIGdsb2JhbCBnb3RvIGdyZXAgZ3JlcGFkZCBndWkgZ3ZpbSBoYXJkY29weSBoZWxwIGhlbHBmaW5kIGhlbHBncmVwIGhlbHB0YWdzIGhpZ2hsaWdodCBoaWRlIGhpc3RvcnkgaW5zZXJ0IGlhYmJyZXYgaWFiY2xlYXIgaWp1bXAgaWxpc3QgaW1hcCBpbWFwY2xlYXIgaW1lbnUgaW5vcmVtYXAgaW5vcmVhYmJyZXYgaW5vcmVtZW51IGludHJvIGlzZWFyY2ggaXNwbGl0IGl1bm1hcCBpdW5hYmJyZXYgaXVubWVudSBqb2luIGp1bXBzIGtlZXBhbHQga2VlcG1hcmtzIGtlZXBqdW1wcyBsTmV4dCBsTmZpbGUgbGlzdCBsYWRkZXhwciBsYWRkYnVmZmVyIGxhZGRmaWxlIGxhc3QgbGFuZ3VhZ2UgbGF0ZXIgbGJ1ZmZlciBsY2QgbGNoZGlyIGxjbG9zZSBsY3Njb3BlIGxlZnQgbGVmdGFib3ZlIGxleHByIGxmaWxlIGxmaXJzdCBsZ2V0YnVmZmVyIGxnZXRleHByIGxnZXRmaWxlIGxncmVwIGxncmVwYWRkIGxoZWxwZ3JlcCBsbGFzdCBsbGlzdCBsbWFrZSBsbWFwIGxtYXBjbGVhciBsbmV4dCBsbmV3ZXIgbG5maWxlIGxub3JlbWFwIGxvYWRrZXltYXAgbG9hZHZpZXcgbG9ja21hcmtzIGxvY2t2YXIgbG9sZGVyIGxvcGVuIGxwcmV2aW91cyBscGZpbGUgbHJld2luZCBsdGFnIGx1bm1hcCBsdWFkbyBsdWFmaWxlIGx2aW1ncmVwIGx2aW1ncmVwYWRkIGx3aW5kb3cgbW92ZSBtYXJrIG1ha2UgbWFwY2xlYXIgbWF0Y2ggbWVudSBtZW51dHJhbnNsYXRlIG1lc3NhZ2VzIG1rZXhyYyBta3Nlc3Npb24gbWtzcGVsbCBta3ZpbXJjIG1rdmlldyBtb2RlIG16c2NoZW1lIG16ZmlsZSBuYmNsb3NlIG5ia2V5IG5ic2FydCBuZXh0IG5tYXAgbm1hcGNsZWFyIG5tZW51IG5ub3JlbWFwIG5ub3JlbWVudSBub2F1dG9jbWQgbm9yZW1hcCBub2hsc2VhcmNoIG5vcmVhYmJyZXYgbm9yZW1lbnUgbm9ybWFsIG51bWJlciBudW5tYXAgbnVubWVudSBvbGRmaWxlcyBvcGVuIG9tYXAgb21hcGNsZWFyIG9tZW51IG9ubHkgb25vcmVtYXAgb25vcmVtZW51IG9wdGlvbnMgb3VubWFwIG91bm1lbnUgb3duc3ludGF4IHByaW50IHByb2ZkZWwgcHJvZmlsZSBwcm9tcHRmaW5kIHByb21wdHJlcGwgcGNsb3NlIHBlZGl0IHBlcmwgcGVybGRvIHBvcCBwb3B1cCBwcG9wIHByZXNlcnZlIHByZXZpb3VzIHBzZWFyY2ggcHRhZyBwdE5leHQgcHRmaXJzdCBwdGp1bXAgcHRsYXN0IHB0bmV4dCBwdHByZXZpb3VzIHB0cmV3aW5kIHB0c2VsZWN0IHB1dCBwd2QgcHkzZG8gcHkzZmlsZSBweXRob24gcHlkbyBweWZpbGUgcXVpdCBxdWl0YWxsIHFhbGwgcmVhZCByZWNvdmVyIHJlZG8gcmVkaXIgcmVkcmF3IHJlZHJhd3N0YXR1cyByZWdpc3RlcnMgcmVzaXplIHJldGFiIHJldHVybiByZXdpbmQgcmlnaHQgcmlnaHRiZWxvdyBydWJ5IHJ1YnlkbyBydWJ5ZmlsZSBydW5kbyBydW50aW1lIHJ2aW1pbmZvIHN1YnN0aXR1dGUgc05leHQgc2FuZGJveCBzYXJndW1lbnQgc2FsbCBzYXZlYXMgc2J1ZmZlciBzYk5leHQgc2JhbGwgc2JmaXJzdCBzYmxhc3Qgc2Jtb2RpZmllZCBzYm5leHQgc2JwcmV2aW91cyBzYnJld2luZCBzY3JpcHRuYW1lcyBzY3JpcHRlbmNvZGluZyBzY3Njb3BlIHNldCBzZXRmaWxldHlwZSBzZXRnbG9iYWwgc2V0bG9jYWwgc2ZpbmQgc2ZpcnN0IHNoZWxsIHNpbWFsdCBzaWduIHNpbGVudCBzbGVlcCBzbGFzdCBzbWFnaWMgc21hcGNsZWFyIHNtZW51IHNuZXh0IHNuaWZmIHNub21hZ2ljIHNub3JlbWFwIHNub3JlbWVudSBzb3J0IHNvdXJjZSBzcGVsbGR1bXAgc3BlbGxnb29kIHNwZWxsaW5mbyBzcGVsbHJlcGFsbCBzcGVsbHVuZG8gc3BlbGx3cm9uZyBzcGxpdCBzcHJldmlvdXMgc3Jld2luZCBzdG9wIHN0YWcgc3RhcnRncmVwbGFjZSBzdGFydHJlcGxhY2Ugc3RhcnRpbnNlcnQgc3RvcGluc2VydCBzdGp1bXAgc3RzZWxlY3Qgc3VuaGlkZSBzdW5tYXAgc3VubWVudSBzdXNwZW5kIHN2aWV3IHN3YXBuYW1lIHN5bnRheCBzeW50aW1lIHN5bmNiaW5kIHROZXh0IHRhYk5leHQgdGFiY2xvc2UgdGFiZWRpdCB0YWJmaW5kIHRhYmZpcnN0IHRhYmxhc3QgdGFibW92ZSB0YWJuZXh0IHRhYm9ubHkgdGFicHJldmlvdXMgdGFicmV3aW5kIHRhZyB0Y2wgdGNsZG8gdGNsZmlsZSB0ZWFyb2ZmIHRmaXJzdCB0aHJvdyB0anVtcCB0bGFzdCB0bWVudSB0bmV4dCB0b3BsZWZ0IHRwcmV2aW91cyB0cmV3aW5kIHRzZWxlY3QgdHVubWVudSB1bmRvIHVuZG9qb2luIHVuZG9saXN0IHVuYWJicmV2aWF0ZSB1bmhpZGUgdW5sZXQgdW5sb2NrdmFyIHVubWFwIHVubWVudSB1bnNpbGVudCB1cGRhdGUgdmdsb2JhbCB2ZXJzaW9uIHZlcmJvc2UgdmVydGljYWwgdmltZ3JlcCB2aW1ncmVwYWRkIHZpc3VhbCB2aXVzYWdlIHZpZXcgdm1hcCB2bWFwY2xlYXIgdm1lbnUgdm5ldyB2bm9yZW1hcCB2bm9yZW1lbnUgdnNwbGl0IHZ1bm1hcCB2dW5tZW51IHdyaXRlIHdOZXh0IHdhbGwgd2hpbGUgd2luc2l6ZSB3aW5jbWQgd2lucG9zIHduZXh0IHdwcmV2aW91cyB3cWFsbCB3c3ZlcmIgd3VuZG8gd3ZpbWluZm8geGl0IHhhbGwgeG1hcGNsZWFyIHhtYXAgeG1lbnUgeG5vcmVtYXAgeG5vcmVtZW51IHh1bm1hcCB4dW5tZW51IHlhbmsiLGJ1aWx0X2luOiJzeW5JRHRyYW5zIGF0YW4yIHJhbmdlIG1hdGNoYXJnIGRpZF9maWxldHlwZSBhc2luIGZlZWRrZXlzIHhvciBhcmd2IGNvbXBsZXRlX2NoZWNrIGFkZCBnZXR3aW5wb3N4IGdldHFmbGlzdCBnZXR3aW5wb3N5IHNjcmVlbmNvbCBjbGVhcm1hdGNoZXMgZW1wdHkgZXh0ZW5kIGdldGNtZHBvcyBtemV2YWwgZ2FyYmFnZWNvbGxlY3Qgc2V0cmVnIGNlaWwgc3FydCBkaWZmX2hsSUQgaW5wdXRzZWNyZXQgZ2V0IGdldGZwZXJtIGdldHBpZCBmaWxld3JpdGFibGUgc2hpZnR3aWR0aCBtYXggc2luaCBpc2RpcmVjdG9yeSBzeW5JRCBzeXN0ZW0gaW5wdXRyZXN0b3JlIHdpbmxpbmUgYXRhbiB2aXN1YWxtb2RlIGlucHV0bGlzdCB0YWJwYWdld2lubnIgcm91bmQgZ2V0cmVndHlwZSBtYXBjaGVjayBoYXNtYXB0byBoaXN0ZGVsIGFyZ2lkeCBmaW5kZmlsZSBzaGEyNTYgZXhpc3RzIHRvdXBwZXIgZ2V0Y21kbGluZSB0YWdsaXN0IHN0cmluZyBnZXRtYXRjaGVzIGJ1Zm5yIHN0cmZ0aW1lIHdpbndpZHRoIGJ1ZmV4aXN0cyBzdHJ0cmFucyB0YWJwYWdlYnVmbGlzdCBzZXRjbWRwb3MgcmVtb3RlX3JlYWQgcHJpbnRmIHNldGxvY2xpc3QgZ2V0cG9zIGdldGxpbmUgYnVmd2lubnIgZmxvYXQybnIgbGVuIGdldGNtZHR5cGUgZGlmZl9maWxsZXIgbHVhZXZhbCByZXNvbHZlIGxpYmNhbGxuciBmb2xkY2xvc2VkZW5kIHJldmVyc2UgZmlsdGVyIGhhc19rZXkgYnVmbmFtZSBzdHIyZmxvYXQgc3RybGVuIHNldGxpbmUgZ2V0Y2hhcm1vZCBzZXRidWZ2YXIgaW5kZXggc2VhcmNocG9zIHNoZWxsZXNjYXBlIHVuZG9maWxlIGZvbGRjbG9zZWQgc2V0cWZsaXN0IGJ1Zmxpc3RlZCBzdHJjaGFycyBzdHIybnIgdmlydGNvbCBmbG9vciByZW1vdmUgdW5kb3RyZWUgcmVtb3RlX2V4cHIgd2luaGVpZ2h0IGdldHRhYndpbnZhciByZWx0aW1lIGN1cnNvciB0YWJwYWdlbnIgZmluZGRpciBsb2NhbHRpbWUgYWNvcyBnZXRsb2NsaXN0IHNlYXJjaCB0YW5oIG1hdGNoZW5kIHJlbmFtZSBnZXR0YWJ2YXIgc3RyZGlzcGxheXdpZHRoIHR5cGUgYWJzIHB5M2V2YWwgc2V0d2ludmFyIHRvbG93ZXIgd2lsZG1lbnVtb2RlIGxvZzEwIHNwZWxsc3VnZ2VzdCBidWZsb2FkZWQgc3luY29uY2VhbGVkIG5leHRub25ibGFuayBzZXJ2ZXIyY2xpZW50IGNvbXBsZXRlIHNldHRhYndpbnZhciBleGVjdXRhYmxlIGlucHV0IHdpbmNvbCBzZXRtYXRjaGVzIGdldGZ0eXBlIGhsSUQgaW5wdXRzYXZlIHNlYXJjaHBhaXIgb3Igc2NyZWVucm93IGxpbmUgc2V0dGFidmFyIGhpc3RhZGQgZGVlcGNvcHkgc3RycGFydCByZW1vdGVfcGVlayBhbmQgZXZhbCBnZXRmdGltZSBzdWJtYXRjaCBzY3JlZW5jaGFyIHdpbnNhdmV2aWV3IG1hdGNoYWRkIG1rZGlyIHNjcmVlbmF0dHIgZ2V0Zm9udG5hbWUgbGliY2FsbCByZWx0aW1lc3RyIGdldGZzaXplIHdpbm5yIGludmVydCBwb3cgZ2V0YnVmbGluZSBieXRlMmxpbmUgc291bmRmb2xkIHJlcGVhdCBmbmFtZWVzY2FwZSB0YWdmaWxlcyBzaW4gc3Ryd2lkdGggc3BlbGxiYWR3b3JkIHRydW5jIG1hcGFyZyBsb2cgbGlzcGluZGVudCBob3N0bmFtZSBzZXRwb3MgZ2xvYnBhdGggcmVtb3RlX2ZvcmVncm91bmQgZ2V0Y2hhciBzeW5JRGF0dHIgZm5hbWVtb2RpZnkgY3Njb3BlX2Nvbm5lY3Rpb24gc3RyaWR4IHdpbmJ1Zm5yIGluZGVudCBtaW4gY29tcGxldGVfYWRkIG5yMmNoYXIgc2VhcmNocGFpcnBvcyBpbnB1dGRpYWxvZyB2YWx1ZXMgbWF0Y2hsaXN0IGl0ZW1zIGhsZXhpc3RzIHN0cnJpZHggYnJvd3NlZGlyIGV4cGFuZCBmbW9kIHBhdGhzaG9ydGVuIGxpbmUyYnl0ZSBhcmdjIGNvdW50IGdldHdpbnZhciBnbG9iIGZvbGR0ZXh0cmVzdWx0IGdldHJlZyBmb3JlZ3JvdW5kIGNvc2ggbWF0Y2hkZWxldGUgaGFzIGNoYXIybnIgc2ltcGxpZnkgaGlzdGdldCBzZWFyY2hkZWNsIGljb252IHdpbnJlc3RjbWQgcHVtdmlzaWJsZSB3cml0ZWZpbGUgZm9sZGxldmVsIGhhc2xvY2FsZGlyIGtleXMgY29zIG1hdGNoc3RyIGZvbGR0ZXh0IGhpc3RuciB0YW4gdGVtcG5hbWUgZ2V0Y3dkIGJ5dGVpZHggZ2V0YnVmdmFyIGlzbG9ja2VkIGVzY2FwZSBldmVudGhhbmRsZXIgcmVtb3RlX3NlbmQgc2VydmVybGlzdCB3aW5yZXN0dmlldyBzeW5zdGFjayBweWV2YWwgcHJldm5vbmJsYW5rIHJlYWRmaWxlIGNpbmRlbnQgZmlsZXJlYWRhYmxlIGNoYW5nZW5yIGV4cCJ9LGlsbGVnYWw6LzsvLGNvbnRhaW5zOltlLk5VTUJFUl9NT0RFLHtjbGFzc05hbWU6InN0cmluZyIsYmVnaW46IiciLGVuZDoiJyIsaWxsZWdhbDoiXFxuIn0se2NsYXNzTmFtZToic3RyaW5nIixiZWdpbjovIihcXCJ8XG5cXHxbXiJcbl0pKiIvfSxlLkNPTU1FTlQoJyInLCIkIikse2NsYXNzTmFtZToidmFyaWFibGUiLGJlZ2luOi9bYnd0Z2xzYXZdOltcd1xkX10qL30se2NsYXNzTmFtZToiZnVuY3Rpb24iLGJlZ2luS2V5d29yZHM6ImZ1bmN0aW9uIGZ1bmN0aW9uISIsZW5kOiIkIixyZWxldmFuY2U6MCxjb250YWluczpbZS5USVRMRV9NT0RFLHtjbGFzc05hbWU6InBhcmFtcyIsYmVnaW46IlxcKCIsZW5kOiJcXCkifV19LHtjbGFzc05hbWU6InN5bWJvbCIsYmVnaW46LzxbXHctXSs+L31dfX1zLmV4cG9ydHM9cn0sMjUwMjM6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihlKXtyZXR1cm57bmFtZToiSW50ZWwgeDg2IEFzc2VtYmx5IixjYXNlX2luc2Vuc2l0aXZlOiEwLGtleXdvcmRzOnskcGF0dGVybjoiWy4lXT8iK2UuSURFTlRfUkUsa2V5d29yZDoibG9jayByZXAgcmVwZSByZXB6IHJlcG5lIHJlcG56IHhhcXVpcmUgeHJlbGVhc2UgYm5kIG5vYm5kIGFhYSBhYWQgYWFtIGFhcyBhZGMgYWRkIGFuZCBhcnBsIGJiMF9yZXNldCBiYjFfcmVzZXQgYm91bmQgYnNmIGJzciBic3dhcCBidCBidGMgYnRyIGJ0cyBjYWxsIGNidyBjZHEgY2RxZSBjbGMgY2xkIGNsaSBjbHRzIGNtYyBjbXAgY21wc2IgY21wc2QgY21wc3EgY21wc3cgY21weGNoZyBjbXB4Y2hnNDg2IGNtcHhjaGc4YiBjbXB4Y2hnMTZiIGNwdWlkIGNwdV9yZWFkIGNwdV93cml0ZSBjcW8gY3dkIGN3ZGUgZGFhIGRhcyBkZWMgZGl2IGRtaW50IGVtbXMgZW50ZXIgZXF1IGYyeG0xIGZhYnMgZmFkZCBmYWRkcCBmYmxkIGZic3RwIGZjaHMgZmNsZXggZmNtb3ZiIGZjbW92YmUgZmNtb3ZlIGZjbW92bmIgZmNtb3ZuYmUgZmNtb3ZuZSBmY21vdm51IGZjbW92dSBmY29tIGZjb21pIGZjb21pcCBmY29tcCBmY29tcHAgZmNvcyBmZGVjc3RwIGZkaXNpIGZkaXYgZmRpdnAgZmRpdnIgZmRpdnJwIGZlbW1zIGZlbmkgZmZyZWUgZmZyZWVwIGZpYWRkIGZpY29tIGZpY29tcCBmaWRpdiBmaWRpdnIgZmlsZCBmaW11bCBmaW5jc3RwIGZpbml0IGZpc3QgZmlzdHAgZmlzdHRwIGZpc3ViIGZpc3ViciBmbGQgZmxkMSBmbGRjdyBmbGRlbnYgZmxkbDJlIGZsZGwydCBmbGRsZzIgZmxkbG4yIGZsZHBpIGZsZHogZm11bCBmbXVscCBmbmNsZXggZm5kaXNpIGZuZW5pIGZuaW5pdCBmbm9wIGZuc2F2ZSBmbnN0Y3cgZm5zdGVudiBmbnN0c3cgZnBhdGFuIGZwcmVtIGZwcmVtMSBmcHRhbiBmcm5kaW50IGZyc3RvciBmc2F2ZSBmc2NhbGUgZnNldHBtIGZzaW4gZnNpbmNvcyBmc3FydCBmc3QgZnN0Y3cgZnN0ZW52IGZzdHAgZnN0c3cgZnN1YiBmc3VicCBmc3ViciBmc3VicnAgZnRzdCBmdWNvbSBmdWNvbWkgZnVjb21pcCBmdWNvbXAgZnVjb21wcCBmeGFtIGZ4Y2ggZnh0cmFjdCBmeWwyeCBmeWwyeHAxIGhsdCBpYnRzIGljZWJwIGlkaXYgaW11bCBpbiBpbmMgaW5jYmluIGluc2IgaW5zZCBpbnN3IGludCBpbnQwMSBpbnQxIGludDAzIGludDMgaW50byBpbnZkIGludnBjaWQgaW52bHBnIGludmxwZ2EgaXJldCBpcmV0ZCBpcmV0cSBpcmV0dyBqY3h6IGplY3h6IGpyY3h6IGptcCBqbXBlIGxhaGYgbGFyIGxkcyBsZWEgbGVhdmUgbGVzIGxmZW5jZSBsZnMgbGdkdCBsZ3MgbGlkdCBsbGR0IGxtc3cgbG9hZGFsbCBsb2FkYWxsMjg2IGxvZHNiIGxvZHNkIGxvZHNxIGxvZHN3IGxvb3AgbG9vcGUgbG9vcG5lIGxvb3BueiBsb29weiBsc2wgbHNzIGx0ciBtZmVuY2UgbW9uaXRvciBtb3YgbW92ZCBtb3ZxIG1vdnNiIG1vdnNkIG1vdnNxIG1vdnN3IG1vdnN4IG1vdnN4ZCBtb3Z6eCBtdWwgbXdhaXQgbmVnIG5vcCBub3Qgb3Igb3V0IG91dHNiIG91dHNkIG91dHN3IHBhY2tzc2R3IHBhY2tzc3diIHBhY2t1c3diIHBhZGRiIHBhZGRkIHBhZGRzYiBwYWRkc2l3IHBhZGRzdyBwYWRkdXNiIHBhZGR1c3cgcGFkZHcgcGFuZCBwYW5kbiBwYXVzZSBwYXZlYiBwYXZndXNiIHBjbXBlcWIgcGNtcGVxZCBwY21wZXF3IHBjbXBndGIgcGNtcGd0ZCBwY21wZ3R3IHBkaXN0aWIgcGYyaWQgcGZhY2MgcGZhZGQgcGZjbXBlcSBwZmNtcGdlIHBmY21wZ3QgcGZtYXggcGZtaW4gcGZtdWwgcGZyY3AgcGZyY3BpdDEgcGZyY3BpdDIgcGZyc3FpdDEgcGZyc3FydCBwZnN1YiBwZnN1YnIgcGkyZmQgcG1hY2hyaXcgcG1hZGR3ZCBwbWFndyBwbXVsaHJpdyBwbXVsaHJ3YSBwbXVsaHJ3YyBwbXVsaHcgcG11bGx3IHBtdmdlemIgcG12bHpiIHBtdm56YiBwbXZ6YiBwb3AgcG9wYSBwb3BhZCBwb3BhdyBwb3BmIHBvcGZkIHBvcGZxIHBvcGZ3IHBvciBwcmVmZXRjaCBwcmVmZXRjaHcgcHNsbGQgcHNsbHEgcHNsbHcgcHNyYWQgcHNyYXcgcHNybGQgcHNybHEgcHNybHcgcHN1YmIgcHN1YmQgcHN1YnNiIHBzdWJzaXcgcHN1YnN3IHBzdWJ1c2IgcHN1YnVzdyBwc3VidyBwdW5wY2toYncgcHVucGNraGRxIHB1bnBja2h3ZCBwdW5wY2tsYncgcHVucGNrbGRxIHB1bnBja2x3ZCBwdXNoIHB1c2hhIHB1c2hhZCBwdXNoYXcgcHVzaGYgcHVzaGZkIHB1c2hmcSBwdXNoZncgcHhvciByY2wgcmNyIHJkc2hyIHJkbXNyIHJkcG1jIHJkdHNjIHJkdHNjcCByZXQgcmV0ZiByZXRuIHJvbCByb3IgcmRtIHJzZGMgcnNsZHQgcnNtIHJzdHMgc2FoZiBzYWwgc2FsYyBzYXIgc2JiIHNjYXNiIHNjYXNkIHNjYXNxIHNjYXN3IHNmZW5jZSBzZ2R0IHNobCBzaGxkIHNociBzaHJkIHNpZHQgc2xkdCBza2luaXQgc21pIHNtaW50IHNtaW50b2xkIHNtc3cgc3RjIHN0ZCBzdGkgc3Rvc2Igc3Rvc2Qgc3Rvc3Egc3Rvc3cgc3RyIHN1YiBzdmRjIHN2bGR0IHN2dHMgc3dhcGdzIHN5c2NhbGwgc3lzZW50ZXIgc3lzZXhpdCBzeXNyZXQgdGVzdCB1ZDAgdWQxIHVkMmIgdWQyIHVkMmEgdW1vdiB2ZXJyIHZlcncgZndhaXQgd2JpbnZkIHdyc2hyIHdybXNyIHhhZGQgeGJ0cyB4Y2hnIHhsYXRiIHhsYXQgeG9yIGNtb3ZlIGNtb3Z6IGNtb3ZuZSBjbW92bnogY21vdmEgY21vdm5iZSBjbW92YWUgY21vdm5iIGNtb3ZiIGNtb3ZuYWUgY21vdmJlIGNtb3ZuYSBjbW92ZyBjbW92bmxlIGNtb3ZnZSBjbW92bmwgY21vdmwgY21vdm5nZSBjbW92bGUgY21vdm5nIGNtb3ZjIGNtb3ZuYyBjbW92byBjbW92bm8gY21vdnMgY21vdm5zIGNtb3ZwIGNtb3ZwZSBjbW92bnAgY21vdnBvIGplIGp6IGpuZSBqbnogamEgam5iZSBqYWUgam5iIGpiIGpuYWUgamJlIGpuYSBqZyBqbmxlIGpnZSBqbmwgamwgam5nZSBqbGUgam5nIGpjIGpuYyBqbyBqbm8ganMgam5zIGpwbyBqbnAganBlIGpwIHNldGUgc2V0eiBzZXRuZSBzZXRueiBzZXRhIHNldG5iZSBzZXRhZSBzZXRuYiBzZXRuYyBzZXRiIHNldG5hZSBzZXRjc2V0IHNldGJlIHNldG5hIHNldGcgc2V0bmxlIHNldGdlIHNldG5sIHNldGwgc2V0bmdlIHNldGxlIHNldG5nIHNldHMgc2V0bnMgc2V0byBzZXRubyBzZXRwZSBzZXRwIHNldHBvIHNldG5wIGFkZHBzIGFkZHNzIGFuZG5wcyBhbmRwcyBjbXBlcXBzIGNtcGVxc3MgY21wbGVwcyBjbXBsZXNzIGNtcGx0cHMgY21wbHRzcyBjbXBuZXFwcyBjbXBuZXFzcyBjbXBubGVwcyBjbXBubGVzcyBjbXBubHRwcyBjbXBubHRzcyBjbXBvcmRwcyBjbXBvcmRzcyBjbXB1bm9yZHBzIGNtcHVub3Jkc3MgY21wcHMgY21wc3MgY29taXNzIGN2dHBpMnBzIGN2dHBzMnBpIGN2dHNpMnNzIGN2dHNzMnNpIGN2dHRwczJwaSBjdnR0c3Myc2kgZGl2cHMgZGl2c3MgbGRteGNzciBtYXhwcyBtYXhzcyBtaW5wcyBtaW5zcyBtb3ZhcHMgbW92aHBzIG1vdmxocHMgbW92bHBzIG1vdmhscHMgbW92bXNrcHMgbW92bnRwcyBtb3ZzcyBtb3Z1cHMgbXVscHMgbXVsc3Mgb3JwcyByY3BwcyByY3BzcyByc3FydHBzIHJzcXJ0c3Mgc2h1ZnBzIHNxcnRwcyBzcXJ0c3Mgc3RteGNzciBzdWJwcyBzdWJzcyB1Y29taXNzIHVucGNraHBzIHVucGNrbHBzIHhvcnBzIGZ4cnN0b3IgZnhyc3RvcjY0IGZ4c2F2ZSBmeHNhdmU2NCB4Z2V0YnYgeHNldGJ2IHhzYXZlIHhzYXZlNjQgeHNhdmVvcHQgeHNhdmVvcHQ2NCB4cnN0b3IgeHJzdG9yNjQgcHJlZmV0Y2hudGEgcHJlZmV0Y2h0MCBwcmVmZXRjaHQxIHByZWZldGNodDIgbWFza21vdnEgbW92bnRxIHBhdmdiIHBhdmd3IHBleHRydyBwaW5zcncgcG1heHN3IHBtYXh1YiBwbWluc3cgcG1pbnViIHBtb3Ztc2tiIHBtdWxodXcgcHNhZGJ3IHBzaHVmdyBwZjJpdyBwZm5hY2MgcGZwbmFjYyBwaTJmdyBwc3dhcGQgbWFza21vdmRxdSBjbGZsdXNoIG1vdm50ZHEgbW92bnRpIG1vdm50cGQgbW92ZHFhIG1vdmRxdSBtb3ZkcTJxIG1vdnEyZHEgcGFkZHEgcG11bHVkcSBwc2h1ZmQgcHNodWZodyBwc2h1Zmx3IHBzbGxkcSBwc3JsZHEgcHN1YnEgcHVucGNraHFkcSBwdW5wY2tscWRxIGFkZHBkIGFkZHNkIGFuZG5wZCBhbmRwZCBjbXBlcXBkIGNtcGVxc2QgY21wbGVwZCBjbXBsZXNkIGNtcGx0cGQgY21wbHRzZCBjbXBuZXFwZCBjbXBuZXFzZCBjbXBubGVwZCBjbXBubGVzZCBjbXBubHRwZCBjbXBubHRzZCBjbXBvcmRwZCBjbXBvcmRzZCBjbXB1bm9yZHBkIGNtcHVub3Jkc2QgY21wcGQgY29taXNkIGN2dGRxMnBkIGN2dGRxMnBzIGN2dHBkMmRxIGN2dHBkMnBpIGN2dHBkMnBzIGN2dHBpMnBkIGN2dHBzMmRxIGN2dHBzMnBkIGN2dHNkMnNpIGN2dHNkMnNzIGN2dHNpMnNkIGN2dHNzMnNkIGN2dHRwZDJwaSBjdnR0cGQyZHEgY3Z0dHBzMmRxIGN2dHRzZDJzaSBkaXZwZCBkaXZzZCBtYXhwZCBtYXhzZCBtaW5wZCBtaW5zZCBtb3ZhcGQgbW92aHBkIG1vdmxwZCBtb3Ztc2twZCBtb3Z1cGQgbXVscGQgbXVsc2Qgb3JwZCBzaHVmcGQgc3FydHBkIHNxcnRzZCBzdWJwZCBzdWJzZCB1Y29taXNkIHVucGNraHBkIHVucGNrbHBkIHhvcnBkIGFkZHN1YnBkIGFkZHN1YnBzIGhhZGRwZCBoYWRkcHMgaHN1YnBkIGhzdWJwcyBsZGRxdSBtb3ZkZHVwIG1vdnNoZHVwIG1vdnNsZHVwIGNsZ2kgc3RnaSB2bWNhbGwgdm1jbGVhciB2bWZ1bmMgdm1sYXVuY2ggdm1sb2FkIHZtbWNhbGwgdm1wdHJsZCB2bXB0cnN0IHZtcmVhZCB2bXJlc3VtZSB2bXJ1biB2bXNhdmUgdm13cml0ZSB2bXhvZmYgdm14b24gaW52ZXB0IGludnZwaWQgcGFic2IgcGFic3cgcGFic2QgcGFsaWduciBwaGFkZHcgcGhhZGRkIHBoYWRkc3cgcGhzdWJ3IHBoc3ViZCBwaHN1YnN3IHBtYWRkdWJzdyBwbXVsaHJzdyBwc2h1ZmIgcHNpZ25iIHBzaWdudyBwc2lnbmQgZXh0cnEgaW5zZXJ0cSBtb3ZudHNkIG1vdm50c3MgbHpjbnQgYmxlbmRwZCBibGVuZHBzIGJsZW5kdnBkIGJsZW5kdnBzIGRwcGQgZHBwcyBleHRyYWN0cHMgaW5zZXJ0cHMgbW92bnRkcWEgbXBzYWRidyBwYWNrdXNkdyBwYmxlbmR2YiBwYmxlbmR3IHBjbXBlcXEgcGV4dHJiIHBleHRyZCBwZXh0cnEgcGhtaW5wb3N1dyBwaW5zcmIgcGluc3JkIHBpbnNycSBwbWF4c2IgcG1heHNkIHBtYXh1ZCBwbWF4dXcgcG1pbnNiIHBtaW5zZCBwbWludWQgcG1pbnV3IHBtb3ZzeGJ3IHBtb3ZzeGJkIHBtb3ZzeGJxIHBtb3ZzeHdkIHBtb3ZzeHdxIHBtb3ZzeGRxIHBtb3Z6eGJ3IHBtb3Z6eGJkIHBtb3Z6eGJxIHBtb3Z6eHdkIHBtb3Z6eHdxIHBtb3Z6eGRxIHBtdWxkcSBwbXVsbGQgcHRlc3Qgcm91bmRwZCByb3VuZHBzIHJvdW5kc2Qgcm91bmRzcyBjcmMzMiBwY21wZXN0cmkgcGNtcGVzdHJtIHBjbXBpc3RyaSBwY21waXN0cm0gcGNtcGd0cSBwb3BjbnQgZ2V0c2VjIHBmcmNwdiBwZnJzcXJ0diBtb3ZiZSBhZXNlbmMgYWVzZW5jbGFzdCBhZXNkZWMgYWVzZGVjbGFzdCBhZXNpbWMgYWVza2V5Z2VuYXNzaXN0IHZhZXNlbmMgdmFlc2VuY2xhc3QgdmFlc2RlYyB2YWVzZGVjbGFzdCB2YWVzaW1jIHZhZXNrZXlnZW5hc3Npc3QgdmFkZHBkIHZhZGRwcyB2YWRkc2QgdmFkZHNzIHZhZGRzdWJwZCB2YWRkc3VicHMgdmFuZHBkIHZhbmRwcyB2YW5kbnBkIHZhbmRucHMgdmJsZW5kcGQgdmJsZW5kcHMgdmJsZW5kdnBkIHZibGVuZHZwcyB2YnJvYWRjYXN0c3MgdmJyb2FkY2FzdHNkIHZicm9hZGNhc3RmMTI4IHZjbXBlcV9vc3BkIHZjbXBlcXBkIHZjbXBsdF9vc3BkIHZjbXBsdHBkIHZjbXBsZV9vc3BkIHZjbXBsZXBkIHZjbXB1bm9yZF9xcGQgdmNtcHVub3JkcGQgdmNtcG5lcV91cXBkIHZjbXBuZXFwZCB2Y21wbmx0X3VzcGQgdmNtcG5sdHBkIHZjbXBubGVfdXNwZCB2Y21wbmxlcGQgdmNtcG9yZF9xcGQgdmNtcG9yZHBkIHZjbXBlcV91cXBkIHZjbXBuZ2VfdXNwZCB2Y21wbmdlcGQgdmNtcG5ndF91c3BkIHZjbXBuZ3RwZCB2Y21wZmFsc2Vfb3FwZCB2Y21wZmFsc2VwZCB2Y21wbmVxX29xcGQgdmNtcGdlX29zcGQgdmNtcGdlcGQgdmNtcGd0X29zcGQgdmNtcGd0cGQgdmNtcHRydWVfdXFwZCB2Y21wdHJ1ZXBkIHZjbXBsdF9vcXBkIHZjbXBsZV9vcXBkIHZjbXB1bm9yZF9zcGQgdmNtcG5lcV91c3BkIHZjbXBubHRfdXFwZCB2Y21wbmxlX3VxcGQgdmNtcG9yZF9zcGQgdmNtcGVxX3VzcGQgdmNtcG5nZV91cXBkIHZjbXBuZ3RfdXFwZCB2Y21wZmFsc2Vfb3NwZCB2Y21wbmVxX29zcGQgdmNtcGdlX29xcGQgdmNtcGd0X29xcGQgdmNtcHRydWVfdXNwZCB2Y21wcGQgdmNtcGVxX29zcHMgdmNtcGVxcHMgdmNtcGx0X29zcHMgdmNtcGx0cHMgdmNtcGxlX29zcHMgdmNtcGxlcHMgdmNtcHVub3JkX3FwcyB2Y21wdW5vcmRwcyB2Y21wbmVxX3VxcHMgdmNtcG5lcXBzIHZjbXBubHRfdXNwcyB2Y21wbmx0cHMgdmNtcG5sZV91c3BzIHZjbXBubGVwcyB2Y21wb3JkX3FwcyB2Y21wb3JkcHMgdmNtcGVxX3VxcHMgdmNtcG5nZV91c3BzIHZjbXBuZ2VwcyB2Y21wbmd0X3VzcHMgdmNtcG5ndHBzIHZjbXBmYWxzZV9vcXBzIHZjbXBmYWxzZXBzIHZjbXBuZXFfb3FwcyB2Y21wZ2Vfb3NwcyB2Y21wZ2VwcyB2Y21wZ3Rfb3NwcyB2Y21wZ3RwcyB2Y21wdHJ1ZV91cXBzIHZjbXB0cnVlcHMgdmNtcGx0X29xcHMgdmNtcGxlX29xcHMgdmNtcHVub3JkX3NwcyB2Y21wbmVxX3VzcHMgdmNtcG5sdF91cXBzIHZjbXBubGVfdXFwcyB2Y21wb3JkX3NwcyB2Y21wZXFfdXNwcyB2Y21wbmdlX3VxcHMgdmNtcG5ndF91cXBzIHZjbXBmYWxzZV9vc3BzIHZjbXBuZXFfb3NwcyB2Y21wZ2Vfb3FwcyB2Y21wZ3Rfb3FwcyB2Y21wdHJ1ZV91c3BzIHZjbXBwcyB2Y21wZXFfb3NzZCB2Y21wZXFzZCB2Y21wbHRfb3NzZCB2Y21wbHRzZCB2Y21wbGVfb3NzZCB2Y21wbGVzZCB2Y21wdW5vcmRfcXNkIHZjbXB1bm9yZHNkIHZjbXBuZXFfdXFzZCB2Y21wbmVxc2QgdmNtcG5sdF91c3NkIHZjbXBubHRzZCB2Y21wbmxlX3Vzc2QgdmNtcG5sZXNkIHZjbXBvcmRfcXNkIHZjbXBvcmRzZCB2Y21wZXFfdXFzZCB2Y21wbmdlX3Vzc2QgdmNtcG5nZXNkIHZjbXBuZ3RfdXNzZCB2Y21wbmd0c2QgdmNtcGZhbHNlX29xc2QgdmNtcGZhbHNlc2QgdmNtcG5lcV9vcXNkIHZjbXBnZV9vc3NkIHZjbXBnZXNkIHZjbXBndF9vc3NkIHZjbXBndHNkIHZjbXB0cnVlX3Vxc2QgdmNtcHRydWVzZCB2Y21wbHRfb3FzZCB2Y21wbGVfb3FzZCB2Y21wdW5vcmRfc3NkIHZjbXBuZXFfdXNzZCB2Y21wbmx0X3Vxc2QgdmNtcG5sZV91cXNkIHZjbXBvcmRfc3NkIHZjbXBlcV91c3NkIHZjbXBuZ2VfdXFzZCB2Y21wbmd0X3Vxc2QgdmNtcGZhbHNlX29zc2QgdmNtcG5lcV9vc3NkIHZjbXBnZV9vcXNkIHZjbXBndF9vcXNkIHZjbXB0cnVlX3Vzc2QgdmNtcHNkIHZjbXBlcV9vc3NzIHZjbXBlcXNzIHZjbXBsdF9vc3NzIHZjbXBsdHNzIHZjbXBsZV9vc3NzIHZjbXBsZXNzIHZjbXB1bm9yZF9xc3MgdmNtcHVub3Jkc3MgdmNtcG5lcV91cXNzIHZjbXBuZXFzcyB2Y21wbmx0X3Vzc3MgdmNtcG5sdHNzIHZjbXBubGVfdXNzcyB2Y21wbmxlc3MgdmNtcG9yZF9xc3MgdmNtcG9yZHNzIHZjbXBlcV91cXNzIHZjbXBuZ2VfdXNzcyB2Y21wbmdlc3MgdmNtcG5ndF91c3NzIHZjbXBuZ3RzcyB2Y21wZmFsc2Vfb3FzcyB2Y21wZmFsc2VzcyB2Y21wbmVxX29xc3MgdmNtcGdlX29zc3MgdmNtcGdlc3MgdmNtcGd0X29zc3MgdmNtcGd0c3MgdmNtcHRydWVfdXFzcyB2Y21wdHJ1ZXNzIHZjbXBsdF9vcXNzIHZjbXBsZV9vcXNzIHZjbXB1bm9yZF9zc3MgdmNtcG5lcV91c3NzIHZjbXBubHRfdXFzcyB2Y21wbmxlX3Vxc3MgdmNtcG9yZF9zc3MgdmNtcGVxX3Vzc3MgdmNtcG5nZV91cXNzIHZjbXBuZ3RfdXFzcyB2Y21wZmFsc2Vfb3NzcyB2Y21wbmVxX29zc3MgdmNtcGdlX29xc3MgdmNtcGd0X29xc3MgdmNtcHRydWVfdXNzcyB2Y21wc3MgdmNvbWlzZCB2Y29taXNzIHZjdnRkcTJwZCB2Y3Z0ZHEycHMgdmN2dHBkMmRxIHZjdnRwZDJwcyB2Y3Z0cHMyZHEgdmN2dHBzMnBkIHZjdnRzZDJzaSB2Y3Z0c2Qyc3MgdmN2dHNpMnNkIHZjdnRzaTJzcyB2Y3Z0c3Myc2QgdmN2dHNzMnNpIHZjdnR0cGQyZHEgdmN2dHRwczJkcSB2Y3Z0dHNkMnNpIHZjdnR0c3Myc2kgdmRpdnBkIHZkaXZwcyB2ZGl2c2QgdmRpdnNzIHZkcHBkIHZkcHBzIHZleHRyYWN0ZjEyOCB2ZXh0cmFjdHBzIHZoYWRkcGQgdmhhZGRwcyB2aHN1YnBkIHZoc3VicHMgdmluc2VydGYxMjggdmluc2VydHBzIHZsZGRxdSB2bGRxcXUgdmxkbXhjc3Igdm1hc2ttb3ZkcXUgdm1hc2ttb3ZwcyB2bWFza21vdnBkIHZtYXhwZCB2bWF4cHMgdm1heHNkIHZtYXhzcyB2bWlucGQgdm1pbnBzIHZtaW5zZCB2bWluc3Mgdm1vdmFwZCB2bW92YXBzIHZtb3ZkIHZtb3ZxIHZtb3ZkZHVwIHZtb3ZkcWEgdm1vdnFxYSB2bW92ZHF1IHZtb3ZxcXUgdm1vdmhscHMgdm1vdmhwZCB2bW92aHBzIHZtb3ZsaHBzIHZtb3ZscGQgdm1vdmxwcyB2bW92bXNrcGQgdm1vdm1za3BzIHZtb3ZudGRxIHZtb3ZudHFxIHZtb3ZudGRxYSB2bW92bnRwZCB2bW92bnRwcyB2bW92c2Qgdm1vdnNoZHVwIHZtb3ZzbGR1cCB2bW92c3Mgdm1vdnVwZCB2bW92dXBzIHZtcHNhZGJ3IHZtdWxwZCB2bXVscHMgdm11bHNkIHZtdWxzcyB2b3JwZCB2b3JwcyB2cGFic2IgdnBhYnN3IHZwYWJzZCB2cGFja3Nzd2IgdnBhY2tzc2R3IHZwYWNrdXN3YiB2cGFja3VzZHcgdnBhZGRiIHZwYWRkdyB2cGFkZGQgdnBhZGRxIHZwYWRkc2IgdnBhZGRzdyB2cGFkZHVzYiB2cGFkZHVzdyB2cGFsaWduciB2cGFuZCB2cGFuZG4gdnBhdmdiIHZwYXZndyB2cGJsZW5kdmIgdnBibGVuZHcgdnBjbXBlc3RyaSB2cGNtcGVzdHJtIHZwY21waXN0cmkgdnBjbXBpc3RybSB2cGNtcGVxYiB2cGNtcGVxdyB2cGNtcGVxZCB2cGNtcGVxcSB2cGNtcGd0YiB2cGNtcGd0dyB2cGNtcGd0ZCB2cGNtcGd0cSB2cGVybWlscGQgdnBlcm1pbHBzIHZwZXJtMmYxMjggdnBleHRyYiB2cGV4dHJ3IHZwZXh0cmQgdnBleHRycSB2cGhhZGR3IHZwaGFkZGQgdnBoYWRkc3cgdnBobWlucG9zdXcgdnBoc3VidyB2cGhzdWJkIHZwaHN1YnN3IHZwaW5zcmIgdnBpbnNydyB2cGluc3JkIHZwaW5zcnEgdnBtYWRkd2QgdnBtYWRkdWJzdyB2cG1heHNiIHZwbWF4c3cgdnBtYXhzZCB2cG1heHViIHZwbWF4dXcgdnBtYXh1ZCB2cG1pbnNiIHZwbWluc3cgdnBtaW5zZCB2cG1pbnViIHZwbWludXcgdnBtaW51ZCB2cG1vdm1za2IgdnBtb3ZzeGJ3IHZwbW92c3hiZCB2cG1vdnN4YnEgdnBtb3ZzeHdkIHZwbW92c3h3cSB2cG1vdnN4ZHEgdnBtb3Z6eGJ3IHZwbW92enhiZCB2cG1vdnp4YnEgdnBtb3Z6eHdkIHZwbW92enh3cSB2cG1vdnp4ZHEgdnBtdWxodXcgdnBtdWxocnN3IHZwbXVsaHcgdnBtdWxsdyB2cG11bGxkIHZwbXVsdWRxIHZwbXVsZHEgdnBvciB2cHNhZGJ3IHZwc2h1ZmIgdnBzaHVmZCB2cHNodWZodyB2cHNodWZsdyB2cHNpZ25iIHZwc2lnbncgdnBzaWduZCB2cHNsbGRxIHZwc3JsZHEgdnBzbGx3IHZwc2xsZCB2cHNsbHEgdnBzcmF3IHZwc3JhZCB2cHNybHcgdnBzcmxkIHZwc3JscSB2cHRlc3QgdnBzdWJiIHZwc3VidyB2cHN1YmQgdnBzdWJxIHZwc3Vic2IgdnBzdWJzdyB2cHN1YnVzYiB2cHN1YnVzdyB2cHVucGNraGJ3IHZwdW5wY2tod2QgdnB1bnBja2hkcSB2cHVucGNraHFkcSB2cHVucGNrbGJ3IHZwdW5wY2tsd2QgdnB1bnBja2xkcSB2cHVucGNrbHFkcSB2cHhvciB2cmNwcHMgdnJjcHNzIHZyc3FydHBzIHZyc3FydHNzIHZyb3VuZHBkIHZyb3VuZHBzIHZyb3VuZHNkIHZyb3VuZHNzIHZzaHVmcGQgdnNodWZwcyB2c3FydHBkIHZzcXJ0cHMgdnNxcnRzZCB2c3FydHNzIHZzdG14Y3NyIHZzdWJwZCB2c3VicHMgdnN1YnNkIHZzdWJzcyB2dGVzdHBzIHZ0ZXN0cGQgdnVjb21pc2QgdnVjb21pc3MgdnVucGNraHBkIHZ1bnBja2hwcyB2dW5wY2tscGQgdnVucGNrbHBzIHZ4b3JwZCB2eG9ycHMgdnplcm9hbGwgdnplcm91cHBlciBwY2xtdWxscWxxZHEgcGNsbXVsaHFscWRxIHBjbG11bGxxaHFkcSBwY2xtdWxocWhxZHEgcGNsbXVscWRxIHZwY2xtdWxscWxxZHEgdnBjbG11bGhxbHFkcSB2cGNsbXVsbHFocWRxIHZwY2xtdWxocWhxZHEgdnBjbG11bHFkcSB2Zm1hZGQxMzJwcyB2Zm1hZGQxMzJwZCB2Zm1hZGQzMTJwcyB2Zm1hZGQzMTJwZCB2Zm1hZGQyMTNwcyB2Zm1hZGQyMTNwZCB2Zm1hZGQxMjNwcyB2Zm1hZGQxMjNwZCB2Zm1hZGQyMzFwcyB2Zm1hZGQyMzFwZCB2Zm1hZGQzMjFwcyB2Zm1hZGQzMjFwZCB2Zm1hZGRzdWIxMzJwcyB2Zm1hZGRzdWIxMzJwZCB2Zm1hZGRzdWIzMTJwcyB2Zm1hZGRzdWIzMTJwZCB2Zm1hZGRzdWIyMTNwcyB2Zm1hZGRzdWIyMTNwZCB2Zm1hZGRzdWIxMjNwcyB2Zm1hZGRzdWIxMjNwZCB2Zm1hZGRzdWIyMzFwcyB2Zm1hZGRzdWIyMzFwZCB2Zm1hZGRzdWIzMjFwcyB2Zm1hZGRzdWIzMjFwZCB2Zm1zdWIxMzJwcyB2Zm1zdWIxMzJwZCB2Zm1zdWIzMTJwcyB2Zm1zdWIzMTJwZCB2Zm1zdWIyMTNwcyB2Zm1zdWIyMTNwZCB2Zm1zdWIxMjNwcyB2Zm1zdWIxMjNwZCB2Zm1zdWIyMzFwcyB2Zm1zdWIyMzFwZCB2Zm1zdWIzMjFwcyB2Zm1zdWIzMjFwZCB2Zm1zdWJhZGQxMzJwcyB2Zm1zdWJhZGQxMzJwZCB2Zm1zdWJhZGQzMTJwcyB2Zm1zdWJhZGQzMTJwZCB2Zm1zdWJhZGQyMTNwcyB2Zm1zdWJhZGQyMTNwZCB2Zm1zdWJhZGQxMjNwcyB2Zm1zdWJhZGQxMjNwZCB2Zm1zdWJhZGQyMzFwcyB2Zm1zdWJhZGQyMzFwZCB2Zm1zdWJhZGQzMjFwcyB2Zm1zdWJhZGQzMjFwZCB2Zm5tYWRkMTMycHMgdmZubWFkZDEzMnBkIHZmbm1hZGQzMTJwcyB2Zm5tYWRkMzEycGQgdmZubWFkZDIxM3BzIHZmbm1hZGQyMTNwZCB2Zm5tYWRkMTIzcHMgdmZubWFkZDEyM3BkIHZmbm1hZGQyMzFwcyB2Zm5tYWRkMjMxcGQgdmZubWFkZDMyMXBzIHZmbm1hZGQzMjFwZCB2Zm5tc3ViMTMycHMgdmZubXN1YjEzMnBkIHZmbm1zdWIzMTJwcyB2Zm5tc3ViMzEycGQgdmZubXN1YjIxM3BzIHZmbm1zdWIyMTNwZCB2Zm5tc3ViMTIzcHMgdmZubXN1YjEyM3BkIHZmbm1zdWIyMzFwcyB2Zm5tc3ViMjMxcGQgdmZubXN1YjMyMXBzIHZmbm1zdWIzMjFwZCB2Zm1hZGQxMzJzcyB2Zm1hZGQxMzJzZCB2Zm1hZGQzMTJzcyB2Zm1hZGQzMTJzZCB2Zm1hZGQyMTNzcyB2Zm1hZGQyMTNzZCB2Zm1hZGQxMjNzcyB2Zm1hZGQxMjNzZCB2Zm1hZGQyMzFzcyB2Zm1hZGQyMzFzZCB2Zm1hZGQzMjFzcyB2Zm1hZGQzMjFzZCB2Zm1zdWIxMzJzcyB2Zm1zdWIxMzJzZCB2Zm1zdWIzMTJzcyB2Zm1zdWIzMTJzZCB2Zm1zdWIyMTNzcyB2Zm1zdWIyMTNzZCB2Zm1zdWIxMjNzcyB2Zm1zdWIxMjNzZCB2Zm1zdWIyMzFzcyB2Zm1zdWIyMzFzZCB2Zm1zdWIzMjFzcyB2Zm1zdWIzMjFzZCB2Zm5tYWRkMTMyc3MgdmZubWFkZDEzMnNkIHZmbm1hZGQzMTJzcyB2Zm5tYWRkMzEyc2QgdmZubWFkZDIxM3NzIHZmbm1hZGQyMTNzZCB2Zm5tYWRkMTIzc3MgdmZubWFkZDEyM3NkIHZmbm1hZGQyMzFzcyB2Zm5tYWRkMjMxc2QgdmZubWFkZDMyMXNzIHZmbm1hZGQzMjFzZCB2Zm5tc3ViMTMyc3MgdmZubXN1YjEzMnNkIHZmbm1zdWIzMTJzcyB2Zm5tc3ViMzEyc2QgdmZubXN1YjIxM3NzIHZmbm1zdWIyMTNzZCB2Zm5tc3ViMTIzc3MgdmZubXN1YjEyM3NkIHZmbm1zdWIyMzFzcyB2Zm5tc3ViMjMxc2QgdmZubXN1YjMyMXNzIHZmbm1zdWIzMjFzZCByZGZzYmFzZSByZGdzYmFzZSByZHJhbmQgd3Jmc2Jhc2Ugd3Jnc2Jhc2UgdmN2dHBoMnBzIHZjdnRwczJwaCBhZGN4IGFkb3ggcmRzZWVkIGNsYWMgc3RhYyB4c3RvcmUgeGNyeXB0ZWNiIHhjcnlwdGNiYyB4Y3J5cHRjdHIgeGNyeXB0Y2ZiIHhjcnlwdG9mYiBtb250bXVsIHhzaGExIHhzaGEyNTYgbGx3cGNiIHNsd3BjYiBsd3B2YWwgbHdwaW5zIHZmbWFkZHBkIHZmbWFkZHBzIHZmbWFkZHNkIHZmbWFkZHNzIHZmbWFkZHN1YnBkIHZmbWFkZHN1YnBzIHZmbXN1YmFkZHBkIHZmbXN1YmFkZHBzIHZmbXN1YnBkIHZmbXN1YnBzIHZmbXN1YnNkIHZmbXN1YnNzIHZmbm1hZGRwZCB2Zm5tYWRkcHMgdmZubWFkZHNkIHZmbm1hZGRzcyB2Zm5tc3VicGQgdmZubXN1YnBzIHZmbm1zdWJzZCB2Zm5tc3Vic3MgdmZyY3pwZCB2ZnJjenBzIHZmcmN6c2QgdmZyY3pzcyB2cGNtb3YgdnBjb21iIHZwY29tZCB2cGNvbXEgdnBjb211YiB2cGNvbXVkIHZwY29tdXEgdnBjb211dyB2cGNvbXcgdnBoYWRkYmQgdnBoYWRkYnEgdnBoYWRkYncgdnBoYWRkZHEgdnBoYWRkdWJkIHZwaGFkZHVicSB2cGhhZGR1YncgdnBoYWRkdWRxIHZwaGFkZHV3ZCB2cGhhZGR1d3EgdnBoYWRkd2QgdnBoYWRkd3EgdnBoc3ViYncgdnBoc3ViZHEgdnBoc3Vid2QgdnBtYWNzZGQgdnBtYWNzZHFoIHZwbWFjc2RxbCB2cG1hY3NzZGQgdnBtYWNzc2RxaCB2cG1hY3NzZHFsIHZwbWFjc3N3ZCB2cG1hY3Nzd3cgdnBtYWNzd2QgdnBtYWNzd3cgdnBtYWRjc3N3ZCB2cG1hZGNzd2QgdnBwZXJtIHZwcm90YiB2cHJvdGQgdnByb3RxIHZwcm90dyB2cHNoYWIgdnBzaGFkIHZwc2hhcSB2cHNoYXcgdnBzaGxiIHZwc2hsZCB2cHNobHEgdnBzaGx3IHZicm9hZGNhc3RpMTI4IHZwYmxlbmRkIHZwYnJvYWRjYXN0YiB2cGJyb2FkY2FzdHcgdnBicm9hZGNhc3RkIHZwYnJvYWRjYXN0cSB2cGVybWQgdnBlcm1wZCB2cGVybXBzIHZwZXJtcSB2cGVybTJpMTI4IHZleHRyYWN0aTEyOCB2aW5zZXJ0aTEyOCB2cG1hc2ttb3ZkIHZwbWFza21vdnEgdnBzbGx2ZCB2cHNsbHZxIHZwc3JhdmQgdnBzcmx2ZCB2cHNybHZxIHZnYXRoZXJkcGQgdmdhdGhlcnFwZCB2Z2F0aGVyZHBzIHZnYXRoZXJxcHMgdnBnYXRoZXJkZCB2cGdhdGhlcnFkIHZwZ2F0aGVyZHEgdnBnYXRoZXJxcSB4YWJvcnQgeGJlZ2luIHhlbmQgeHRlc3QgYW5kbiBiZXh0ciBibGNpIGJsY2ljIGJsc2kgYmxzaWMgYmxjZmlsbCBibHNmaWxsIGJsY21zayBibHNtc2sgYmxzciBibGNzIGJ6aGkgbXVseCBwZGVwIHBleHQgcm9yeCBzYXJ4IHNobHggc2hyeCB0emNudCB0em1zayB0MW1za2MgdmFsaWduZCB2YWxpZ25xIHZibGVuZG1wZCB2YmxlbmRtcHMgdmJyb2FkY2FzdGYzMng0IHZicm9hZGNhc3RmNjR4NCB2YnJvYWRjYXN0aTMyeDQgdmJyb2FkY2FzdGk2NHg0IHZjb21wcmVzc3BkIHZjb21wcmVzc3BzIHZjdnRwZDJ1ZHEgdmN2dHBzMnVkcSB2Y3Z0c2QydXNpIHZjdnRzczJ1c2kgdmN2dHRwZDJ1ZHEgdmN2dHRwczJ1ZHEgdmN2dHRzZDJ1c2kgdmN2dHRzczJ1c2kgdmN2dHVkcTJwZCB2Y3Z0dWRxMnBzIHZjdnR1c2kyc2QgdmN2dHVzaTJzcyB2ZXhwYW5kcGQgdmV4cGFuZHBzIHZleHRyYWN0ZjMyeDQgdmV4dHJhY3RmNjR4NCB2ZXh0cmFjdGkzMng0IHZleHRyYWN0aTY0eDQgdmZpeHVwaW1tcGQgdmZpeHVwaW1tcHMgdmZpeHVwaW1tc2QgdmZpeHVwaW1tc3MgdmdldGV4cHBkIHZnZXRleHBwcyB2Z2V0ZXhwc2QgdmdldGV4cHNzIHZnZXRtYW50cGQgdmdldG1hbnRwcyB2Z2V0bWFudHNkIHZnZXRtYW50c3Mgdmluc2VydGYzMng0IHZpbnNlcnRmNjR4NCB2aW5zZXJ0aTMyeDQgdmluc2VydGk2NHg0IHZtb3ZkcWEzMiB2bW92ZHFhNjQgdm1vdmRxdTMyIHZtb3ZkcXU2NCB2cGFic3EgdnBhbmRkIHZwYW5kbmQgdnBhbmRucSB2cGFuZHEgdnBibGVuZG1kIHZwYmxlbmRtcSB2cGNtcGx0ZCB2cGNtcGxlZCB2cGNtcG5lcWQgdnBjbXBubHRkIHZwY21wbmxlZCB2cGNtcGQgdnBjbXBsdHEgdnBjbXBsZXEgdnBjbXBuZXFxIHZwY21wbmx0cSB2cGNtcG5sZXEgdnBjbXBxIHZwY21wZXF1ZCB2cGNtcGx0dWQgdnBjbXBsZXVkIHZwY21wbmVxdWQgdnBjbXBubHR1ZCB2cGNtcG5sZXVkIHZwY21wdWQgdnBjbXBlcXVxIHZwY21wbHR1cSB2cGNtcGxldXEgdnBjbXBuZXF1cSB2cGNtcG5sdHVxIHZwY21wbmxldXEgdnBjbXB1cSB2cGNvbXByZXNzZCB2cGNvbXByZXNzcSB2cGVybWkyZCB2cGVybWkycGQgdnBlcm1pMnBzIHZwZXJtaTJxIHZwZXJtdDJkIHZwZXJtdDJwZCB2cGVybXQycHMgdnBlcm10MnEgdnBleHBhbmRkIHZwZXhwYW5kcSB2cG1heHNxIHZwbWF4dXEgdnBtaW5zcSB2cG1pbnVxIHZwbW92ZGIgdnBtb3ZkdyB2cG1vdnFiIHZwbW92cWQgdnBtb3ZxdyB2cG1vdnNkYiB2cG1vdnNkdyB2cG1vdnNxYiB2cG1vdnNxZCB2cG1vdnNxdyB2cG1vdnVzZGIgdnBtb3Z1c2R3IHZwbW92dXNxYiB2cG1vdnVzcWQgdnBtb3Z1c3F3IHZwb3JkIHZwb3JxIHZwcm9sZCB2cHJvbHEgdnByb2x2ZCB2cHJvbHZxIHZwcm9yZCB2cHJvcnEgdnByb3J2ZCB2cHJvcnZxIHZwc2NhdHRlcmRkIHZwc2NhdHRlcmRxIHZwc2NhdHRlcnFkIHZwc2NhdHRlcnFxIHZwc3JhcSB2cHNyYXZxIHZwdGVybmxvZ2QgdnB0ZXJubG9ncSB2cHRlc3RtZCB2cHRlc3RtcSB2cHRlc3RubWQgdnB0ZXN0bm1xIHZweG9yZCB2cHhvcnEgdnJjcDE0cGQgdnJjcDE0cHMgdnJjcDE0c2QgdnJjcDE0c3MgdnJuZHNjYWxlcGQgdnJuZHNjYWxlcHMgdnJuZHNjYWxlc2QgdnJuZHNjYWxlc3MgdnJzcXJ0MTRwZCB2cnNxcnQxNHBzIHZyc3FydDE0c2QgdnJzcXJ0MTRzcyB2c2NhbGVmcGQgdnNjYWxlZnBzIHZzY2FsZWZzZCB2c2NhbGVmc3MgdnNjYXR0ZXJkcGQgdnNjYXR0ZXJkcHMgdnNjYXR0ZXJxcGQgdnNjYXR0ZXJxcHMgdnNodWZmMzJ4NCB2c2h1ZmY2NHgyIHZzaHVmaTMyeDQgdnNodWZpNjR4MiBrYW5kbncga2FuZHcga21vdncga25vdHcga29ydGVzdHcga29ydyBrc2hpZnRsdyBrc2hpZnRydyBrdW5wY2tidyBreG5vcncga3hvcncgdnBicm9hZGNhc3RtYjJxIHZwYnJvYWRjYXN0bXcyZCB2cGNvbmZsaWN0ZCB2cGNvbmZsaWN0cSB2cGx6Y250ZCB2cGx6Y250cSB2ZXhwMnBkIHZleHAycHMgdnJjcDI4cGQgdnJjcDI4cHMgdnJjcDI4c2QgdnJjcDI4c3MgdnJzcXJ0MjhwZCB2cnNxcnQyOHBzIHZyc3FydDI4c2QgdnJzcXJ0MjhzcyB2Z2F0aGVycGYwZHBkIHZnYXRoZXJwZjBkcHMgdmdhdGhlcnBmMHFwZCB2Z2F0aGVycGYwcXBzIHZnYXRoZXJwZjFkcGQgdmdhdGhlcnBmMWRwcyB2Z2F0aGVycGYxcXBkIHZnYXRoZXJwZjFxcHMgdnNjYXR0ZXJwZjBkcGQgdnNjYXR0ZXJwZjBkcHMgdnNjYXR0ZXJwZjBxcGQgdnNjYXR0ZXJwZjBxcHMgdnNjYXR0ZXJwZjFkcGQgdnNjYXR0ZXJwZjFkcHMgdnNjYXR0ZXJwZjFxcGQgdnNjYXR0ZXJwZjFxcHMgcHJlZmV0Y2h3dDEgYm5kbWsgYm5kY2wgYm5kY3UgYm5kY24gYm5kbW92IGJuZGxkeCBibmRzdHggc2hhMXJuZHM0IHNoYTFuZXh0ZSBzaGExbXNnMSBzaGExbXNnMiBzaGEyNTZybmRzMiBzaGEyNTZtc2cxIHNoYTI1Nm1zZzIgaGludF9ub3AwIGhpbnRfbm9wMSBoaW50X25vcDIgaGludF9ub3AzIGhpbnRfbm9wNCBoaW50X25vcDUgaGludF9ub3A2IGhpbnRfbm9wNyBoaW50X25vcDggaGludF9ub3A5IGhpbnRfbm9wMTAgaGludF9ub3AxMSBoaW50X25vcDEyIGhpbnRfbm9wMTMgaGludF9ub3AxNCBoaW50X25vcDE1IGhpbnRfbm9wMTYgaGludF9ub3AxNyBoaW50X25vcDE4IGhpbnRfbm9wMTkgaGludF9ub3AyMCBoaW50X25vcDIxIGhpbnRfbm9wMjIgaGludF9ub3AyMyBoaW50X25vcDI0IGhpbnRfbm9wMjUgaGludF9ub3AyNiBoaW50X25vcDI3IGhpbnRfbm9wMjggaGludF9ub3AyOSBoaW50X25vcDMwIGhpbnRfbm9wMzEgaGludF9ub3AzMiBoaW50X25vcDMzIGhpbnRfbm9wMzQgaGludF9ub3AzNSBoaW50X25vcDM2IGhpbnRfbm9wMzcgaGludF9ub3AzOCBoaW50X25vcDM5IGhpbnRfbm9wNDAgaGludF9ub3A0MSBoaW50X25vcDQyIGhpbnRfbm9wNDMgaGludF9ub3A0NCBoaW50X25vcDQ1IGhpbnRfbm9wNDYgaGludF9ub3A0NyBoaW50X25vcDQ4IGhpbnRfbm9wNDkgaGludF9ub3A1MCBoaW50X25vcDUxIGhpbnRfbm9wNTIgaGludF9ub3A1MyBoaW50X25vcDU0IGhpbnRfbm9wNTUgaGludF9ub3A1NiBoaW50X25vcDU3IGhpbnRfbm9wNTggaGludF9ub3A1OSBoaW50X25vcDYwIGhpbnRfbm9wNjEgaGludF9ub3A2MiBoaW50X25vcDYzIixidWlsdF9pbjoiaXAgZWlwIHJpcCBhbCBhaCBibCBiaCBjbCBjaCBkbCBkaCBzaWwgZGlsIGJwbCBzcGwgcjhiIHI5YiByMTBiIHIxMWIgcjEyYiByMTNiIHIxNGIgcjE1YiBheCBieCBjeCBkeCBzaSBkaSBicCBzcCByOHcgcjl3IHIxMHcgcjExdyByMTJ3IHIxM3cgcjE0dyByMTV3IGVheCBlYnggZWN4IGVkeCBlc2kgZWRpIGVicCBlc3AgZWlwIHI4ZCByOWQgcjEwZCByMTFkIHIxMmQgcjEzZCByMTRkIHIxNWQgcmF4IHJieCByY3ggcmR4IHJzaSByZGkgcmJwIHJzcCByOCByOSByMTAgcjExIHIxMiByMTMgcjE0IHIxNSBjcyBkcyBlcyBmcyBncyBzcyBzdCBzdDAgc3QxIHN0MiBzdDMgc3Q0IHN0NSBzdDYgc3Q3IG1tMCBtbTEgbW0yIG1tMyBtbTQgbW01IG1tNiBtbTcgeG1tMCAgeG1tMSAgeG1tMiAgeG1tMyAgeG1tNCAgeG1tNSAgeG1tNiAgeG1tNyAgeG1tOCAgeG1tOSB4bW0xMCAgeG1tMTEgeG1tMTIgeG1tMTMgeG1tMTQgeG1tMTUgeG1tMTYgeG1tMTcgeG1tMTggeG1tMTkgeG1tMjAgeG1tMjEgeG1tMjIgeG1tMjMgeG1tMjQgeG1tMjUgeG1tMjYgeG1tMjcgeG1tMjggeG1tMjkgeG1tMzAgeG1tMzEgeW1tMCAgeW1tMSAgeW1tMiAgeW1tMyAgeW1tNCAgeW1tNSAgeW1tNiAgeW1tNyAgeW1tOCAgeW1tOSB5bW0xMCAgeW1tMTEgeW1tMTIgeW1tMTMgeW1tMTQgeW1tMTUgeW1tMTYgeW1tMTcgeW1tMTggeW1tMTkgeW1tMjAgeW1tMjEgeW1tMjIgeW1tMjMgeW1tMjQgeW1tMjUgeW1tMjYgeW1tMjcgeW1tMjggeW1tMjkgeW1tMzAgeW1tMzEgem1tMCAgem1tMSAgem1tMiAgem1tMyAgem1tNCAgem1tNSAgem1tNiAgem1tNyAgem1tOCAgem1tOSB6bW0xMCAgem1tMTEgem1tMTIgem1tMTMgem1tMTQgem1tMTUgem1tMTYgem1tMTcgem1tMTggem1tMTkgem1tMjAgem1tMjEgem1tMjIgem1tMjMgem1tMjQgem1tMjUgem1tMjYgem1tMjcgem1tMjggem1tMjkgem1tMzAgem1tMzEgazAgazEgazIgazMgazQgazUgazYgazcgYm5kMCBibmQxIGJuZDIgYm5kMyBjcjAgY3IxIGNyMiBjcjMgY3I0IGNyOCBkcjAgZHIxIGRyMiBkcjMgZHI4IHRyMyB0cjQgdHI1IHRyNiB0cjcgcjAgcjEgcjIgcjMgcjQgcjUgcjYgcjcgcjBiIHIxYiByMmIgcjNiIHI0YiByNWIgcjZiIHI3YiByMHcgcjF3IHIydyByM3cgcjR3IHI1dyByNncgcjd3IHIwZCByMWQgcjJkIHIzZCByNGQgcjVkIHI2ZCByN2QgcjBoIHIxaCByMmggcjNoIHIwbCByMWwgcjJsIHIzbCByNGwgcjVsIHI2bCByN2wgcjhsIHI5bCByMTBsIHIxMWwgcjEybCByMTNsIHIxNGwgcjE1bCBkYiBkdyBkZCBkcSBkdCBkZHEgZG8gZHkgZHogcmVzYiByZXN3IHJlc2QgcmVzcSByZXN0IHJlc2RxIHJlc28gcmVzeSByZXN6IGluY2JpbiBlcXUgdGltZXMgYnl0ZSB3b3JkIGR3b3JkIHF3b3JkIG5vc3BsaXQgcmVsIGFicyBzZWcgd3J0IHN0cmljdCBuZWFyIGZhciBhMzIgcHRyIixtZXRhOiIlZGVmaW5lICV4ZGVmaW5lICUrICV1bmRlZiAlZGVmc3RyICVkZWZ0b2sgJWFzc2lnbiAlc3RyY2F0ICVzdHJsZW4gJXN1YnN0ciAlcm90YXRlICVlbGlmICVlbHNlICVlbmRpZiAlaWYgJWlmbWFjcm8gJWlmY3R4ICVpZmlkbiAlaWZpZG5pICVpZmlkICVpZm51bSAlaWZzdHIgJWlmdG9rZW4gJWlmZW1wdHkgJWlmZW52ICVlcnJvciAld2FybmluZyAlZmF0YWwgJXJlcCAlZW5kcmVwICVpbmNsdWRlICVwdXNoICVwb3AgJXJlcGwgJXBhdGhzZWFyY2ggJWRlcGVuZCAldXNlICVhcmcgJXN0YWNrc2l6ZSAlbG9jYWwgJWxpbmUgJWNvbW1lbnQgJWVuZGNvbW1lbnQgLm5vbGlzdCBfX0ZJTEVfXyBfX0xJTkVfXyBfX1NFQ1RfXyAgX19CSVRTX18gX19PVVRQVVRfRk9STUFUX18gX19EQVRFX18gX19USU1FX18gX19EQVRFX05VTV9fIF9fVElNRV9OVU1fXyBfX1VUQ19EQVRFX18gX19VVENfVElNRV9fIF9fVVRDX0RBVEVfTlVNX18gX19VVENfVElNRV9OVU1fXyAgX19QQVNTX18gc3RydWMgZW5kc3RydWMgaXN0cnVjIGF0IGllbmQgYWxpZ24gYWxpZ25iIHNlY3RhbGlnbiBkYXogbm9kYXogdXAgZG93biB6ZXJvIGRlZmF1bHQgb3B0aW9uIGFzc3VtZSBwdWJsaWMgYml0cyB1c2UxNiB1c2UzMiB1c2U2NCBkZWZhdWx0IHNlY3Rpb24gc2VnbWVudCBhYnNvbHV0ZSBleHRlcm4gZ2xvYmFsIGNvbW1vbiBjcHUgZmxvYXQgX191dGYxNl9fIF9fdXRmMTZsZV9fIF9fdXRmMTZiZV9fIF9fdXRmMzJfXyBfX3V0ZjMybGVfXyBfX3V0ZjMyYmVfXyBfX2Zsb2F0OF9fIF9fZmxvYXQxNl9fIF9fZmxvYXQzMl9fIF9fZmxvYXQ2NF9fIF9fZmxvYXQ4MG1fXyBfX2Zsb2F0ODBlX18gX19mbG9hdDEyOGxfXyBfX2Zsb2F0MTI4aF9fIF9fSW5maW5pdHlfXyBfX1FOYU5fXyBfX1NOYU5fXyBJbmYgTmFOIFFOYU4gU05hTiBmbG9hdDggZmxvYXQxNiBmbG9hdDMyIGZsb2F0NjQgZmxvYXQ4MG0gZmxvYXQ4MGUgZmxvYXQxMjhsIGZsb2F0MTI4aCBfX0ZMT0FUX0RBWl9fIF9fRkxPQVRfUk9VTkRfXyBfX0ZMT0FUX18ifSxjb250YWluczpbZS5DT01NRU5UKCI7IiwiJCIse3JlbGV2YW5jZTowfSkse2NsYXNzTmFtZToibnVtYmVyIix2YXJpYW50czpbe2JlZ2luOiJcXGIoPzooWzAtOV1bMC05X10qKT9cXC5bMC05X10qKD86W2VFXVsrLV0/WzAtOV9dKyk/fCgwW1h4XSk/WzAtOV1bMC05X10qKFxcLlswLTlfXSopPyg/OltwUF0oPzpbKy1dP1swLTlfXSspPyk/KVxcYiIscmVsZXZhbmNlOjB9LHtiZWdpbjoiXFwkWzAtOV1bMC05QS1GYS1mXSoiLHJlbGV2YW5jZTowfSx7YmVnaW46IlxcYig/OlswLTlBLUZhLWZdWzAtOUEtRmEtZl9dKltIaF18WzAtOV1bMC05X10qW0RkVHRdP3xbMC03XVswLTdfXSpbUXFPb118WzAtMV1bMC0xX10qW0JiWXldKVxcYiJ9LHtiZWdpbjoiXFxiKD86MFtYeF1bMC05QS1GYS1mX10rfDBbRGRUdF1bMC05X10rfDBbUXFPb11bMC03X10rfDBbQmJZeV1bMC0xX10rKVxcYiJ9XX0sZS5RVU9URV9TVFJJTkdfTU9ERSx7Y2xhc3NOYW1lOiJzdHJpbmciLHZhcmlhbnRzOlt7YmVnaW46IiciLGVuZDoiW15cXFxcXScifSx7YmVnaW46ImAiLGVuZDoiW15cXFxcXWAifV0scmVsZXZhbmNlOjB9LHtjbGFzc05hbWU6InN5bWJvbCIsdmFyaWFudHM6W3tiZWdpbjoiXlxccypbQS1aYS16Ll8/XVtBLVphLXowLTlfJCNAfi4/XSooOnxcXHMrbGFiZWwpIn0se2JlZ2luOiJeXFxzKiUlW0EtWmEtejAtOV8kI0B+Lj9dKjoifV0scmVsZXZhbmNlOjB9LHtjbGFzc05hbWU6InN1YnN0IixiZWdpbjoiJVswLTldKyIscmVsZXZhbmNlOjB9LHtjbGFzc05hbWU6InN1YnN0IixiZWdpbjoiJSFTKyIscmVsZXZhbmNlOjB9LHtjbGFzc05hbWU6Im1ldGEiLGJlZ2luOi9eXHMqXC5bXHdfLV0rL31dfX1zLmV4cG9ydHM9cn0sNjYzNjk6ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gcihlKXtjb25zdCBuPXskcGF0dGVybjovW2EtekEtWl1bYS16QS1aMC05Xz9dKi8sa2V5d29yZDoiaWYgdGhlbiBlbHNlIGRvIHdoaWxlIHVudGlsIGZvciBsb29wIGltcG9ydCB3aXRoIGlzIGFzIHdoZXJlIHdoZW4gYnkgZGF0YSBjb25zdGFudCBpbnRlZ2VyIHJlYWwgdGV4dCBuYW1lIGJvb2xlYW4gc3ltYm9sIGluZml4IHByZWZpeCBwb3N0Zml4IGJsb2NrIHRyZWUiLGxpdGVyYWw6InRydWUgZmFsc2UgbmlsIixidWlsdF9pbjoiaW4gbW9kIHJlbSBhbmQgb3IgeG9yIG5vdCBhYnMgc2lnbiBmbG9vciBjZWlsIHNxcnQgc2luIGNvcyB0YW4gYXNpbiBhY29zIGF0YW4gZXhwIGV4cG0xIGxvZyBsb2cyIGxvZzEwIGxvZzFwIHBpIGF0IHRleHRfbGVuZ3RoIHRleHRfcmFuZ2UgdGV4dF9maW5kIHRleHRfcmVwbGFjZSBjb250YWlucyBwYWdlIHNsaWRlIGJhc2ljX3NsaWRlIHRpdGxlX3NsaWRlIHRpdGxlIHN1YnRpdGxlIGZhZGVfaW4gZmFkZV9vdXQgZmFkZV9hdCBjbGVhcl9jb2xvciBjb2xvciBsaW5lX2NvbG9yIGxpbmVfd2lkdGggdGV4dHVyZV93cmFwIHRleHR1cmVfdHJhbnNmb3JtIHRleHR1cmUgc2NhbGVfP3ggc2NhbGVfP3kgc2NhbGVfP3o/IHRyYW5zbGF0ZV8/eCB0cmFuc2xhdGVfP3kgdHJhbnNsYXRlXz96PyByb3RhdGVfP3ggcm90YXRlXz95IHJvdGF0ZV8/ej8gcmVjdGFuZ2xlIGNpcmNsZSBlbGxpcHNlIHNwaGVyZSBwYXRoIGxpbmVfdG8gbW92ZV90byBxdWFkX3RvIGN1cnZlX3RvIHRoZW1lIGJhY2tncm91bmQgY29udGVudHMgbG9jYWxseSB0aW1lIG1vdXNlXz94IG1vdXNlXz95IG1vdXNlX2J1dHRvbnMgIisiT2JqZWN0TG9hZGVyIEFuaW1hdGUgTW92aWVDcmVkaXRzIFNsaWRlcyBGaWx0ZXJzIFNoYWRpbmcgTWF0ZXJpYWxzIExlbnNGbGFyZSBNYXBwaW5nIFZMQ0F1ZGlvVmlkZW8gU3RlcmVvRGVjb2RlciBQb2ludENsb3VkIE5ldHdvcmtBY2Nlc3MgUmVtb3RlQ29udHJvbCBSZWdFeHAgQ2hyb21hS2V5IFNub3dmYWxsIE5vZGVKUyBTcGVlY2ggQ2hhcnRzIn0sYT17Y2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOiciJyxlbmQ6JyInLGlsbGVnYWw6IlxcbiJ9LGk9e2NsYXNzTmFtZToic3RyaW5nIixiZWdpbjoiJyIsZW5kOiInIixpbGxlZ2FsOiJcXG4ifSxvPXtjbGFzc05hbWU6InN0cmluZyIsYmVnaW46Ijw8IixlbmQ6Ij4+In0sbD17Y2xhc3NOYW1lOiJudW1iZXIiLGJlZ2luOiJbMC05XSsjWzAtOUEtWl9dKyhcXC5bMC05LUEtWl9dKyk/Iz8oW0VlXVsrLV0/WzAtOV0rKT8ifSxjPXtiZWdpbktleXdvcmRzOiJpbXBvcnQiLGVuZDoiJCIsa2V5d29yZHM6bixjb250YWluczpbYV19LF89e2NsYXNzTmFtZToiZnVuY3Rpb24iLGJlZ2luOi9bYS16XVteXG5dKi0+LyxyZXR1cm5CZWdpbjohMCxlbmQ6Ly0+Lyxjb250YWluczpbZS5pbmhlcml0KGUuVElUTEVfTU9ERSx7c3RhcnRzOntlbmRzV2l0aFBhcmVudDohMCxrZXl3b3JkczpufX0pXX07cmV0dXJue25hbWU6IlhMIixhbGlhc2VzOlsidGFvIl0sa2V5d29yZHM6bixjb250YWluczpbZS5DX0xJTkVfQ09NTUVOVF9NT0RFLGUuQ19CTE9DS19DT01NRU5UX01PREUsYSxpLG8sXyxjLGwsZS5OVU1CRVJfTU9ERV19fXMuZXhwb3J0cz1yfSwyMjY3MjpmdW5jdGlvbihzKXtmdW5jdGlvbiByKG8pe3JldHVybiBvP3R5cGVvZiBvPT0ic3RyaW5nIj9vOm8uc291cmNlOm51bGx9ZnVuY3Rpb24gZShvKXtyZXR1cm4gbigiKD89IixvLCIpIil9ZnVuY3Rpb24gdChvKXtyZXR1cm4gbigiKCIsbywiKT8iKX1mdW5jdGlvbiBuKC4uLm8pe3JldHVybiBvLm1hcChjPT5yKGMpKS5qb2luKCIiKX1mdW5jdGlvbiBhKC4uLm8pe3JldHVybiIoIitvLm1hcChjPT5yKGMpKS5qb2luKCJ8IikrIikifWZ1bmN0aW9uIGkobyl7Y29uc3QgbD1uKC9bQS1aX10vLHQoL1tBLVowLTlfLi1dKjovKSwvW0EtWjAtOV8uLV0qLyksYz0vW0EtWmEtejAtOS5fOi1dKy8sXz17Y2xhc3NOYW1lOiJzeW1ib2wiLGJlZ2luOi8mW2Etel0rO3wmI1swLTldKzt8JiN4W2EtZjAtOV0rOy99LGQ9e2JlZ2luOi9ccy8sY29udGFpbnM6W3tjbGFzc05hbWU6Im1ldGEta2V5d29yZCIsYmVnaW46LyM/W2Etel9dW2EtejEtOV8tXSsvLGlsbGVnYWw6L1xuL31dfSxnPW8uaW5oZXJpdChkLHtiZWdpbjovXCgvLGVuZDovXCkvfSksRT1vLmluaGVyaXQoby5BUE9TX1NUUklOR19NT0RFLHtjbGFzc05hbWU6Im1ldGEtc3RyaW5nIn0pLHU9by5pbmhlcml0KG8uUVVPVEVfU1RSSU5HX01PREUse2NsYXNzTmFtZToibWV0YS1zdHJpbmcifSksbT17ZW5kc1dpdGhQYXJlbnQ6ITAsaWxsZWdhbDovPC8scmVsZXZhbmNlOjAsY29udGFpbnM6W3tjbGFzc05hbWU6ImF0dHIiLGJlZ2luOmMscmVsZXZhbmNlOjB9LHtiZWdpbjovPVxzKi8scmVsZXZhbmNlOjAsY29udGFpbnM6W3tjbGFzc05hbWU6InN0cmluZyIsZW5kc1BhcmVudDohMCx2YXJpYW50czpbe2JlZ2luOi8iLyxlbmQ6LyIvLGNvbnRhaW5zOltfXX0se2JlZ2luOi8nLyxlbmQ6LycvLGNvbnRhaW5zOltfXX0se2JlZ2luOi9bXlxzIic9PD5gXSsvfV19XX1dfTtyZXR1cm57bmFtZToiSFRNTCwgWE1MIixhbGlhc2VzOlsiaHRtbCIsInhodG1sIiwicnNzIiwiYXRvbSIsInhqYiIsInhzZCIsInhzbCIsInBsaXN0Iiwid3NmIiwic3ZnIl0sY2FzZV9pbnNlbnNpdGl2ZTohMCxjb250YWluczpbe2NsYXNzTmFtZToibWV0YSIsYmVnaW46LzwhW2Etel0vLGVuZDovPi8scmVsZXZhbmNlOjEwLGNvbnRhaW5zOltkLHUsRSxnLHtiZWdpbjovXFsvLGVuZDovXF0vLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJtZXRhIixiZWdpbjovPCFbYS16XS8sZW5kOi8+Lyxjb250YWluczpbZCxnLHUsRV19XX1dfSxvLkNPTU1FTlQoLzwhLS0vLC8tLT4vLHtyZWxldmFuY2U6MTB9KSx7YmVnaW46LzwhXFtDREFUQVxbLyxlbmQ6L1xdXF0+LyxyZWxldmFuY2U6MTB9LF8se2NsYXNzTmFtZToibWV0YSIsYmVnaW46LzxcP3htbC8sZW5kOi9cPz4vLHJlbGV2YW5jZToxMH0se2NsYXNzTmFtZToidGFnIixiZWdpbjovPHN0eWxlKD89XHN8PikvLGVuZDovPi8sa2V5d29yZHM6e25hbWU6InN0eWxlIn0sY29udGFpbnM6W21dLHN0YXJ0czp7ZW5kOi88XC9zdHlsZT4vLHJldHVybkVuZDohMCxzdWJMYW5ndWFnZTpbImNzcyIsInhtbCJdfX0se2NsYXNzTmFtZToidGFnIixiZWdpbjovPHNjcmlwdCg/PVxzfD4pLyxlbmQ6Lz4vLGtleXdvcmRzOntuYW1lOiJzY3JpcHQifSxjb250YWluczpbbV0sc3RhcnRzOntlbmQ6LzxcL3NjcmlwdD4vLHJldHVybkVuZDohMCxzdWJMYW5ndWFnZTpbImphdmFzY3JpcHQiLCJoYW5kbGViYXJzIiwieG1sIl19fSx7Y2xhc3NOYW1lOiJ0YWciLGJlZ2luOi88Pnw8XC8+L30se2NsYXNzTmFtZToidGFnIixiZWdpbjpuKC88LyxlKG4obCxhKC9cLz4vLC8+LywvXHMvKSkpKSxlbmQ6L1wvPz4vLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJuYW1lIixiZWdpbjpsLHJlbGV2YW5jZTowLHN0YXJ0czptfV19LHtjbGFzc05hbWU6InRhZyIsYmVnaW46bigvPFwvLyxlKG4obCwvPi8pKSksY29udGFpbnM6W3tjbGFzc05hbWU6Im5hbWUiLGJlZ2luOmwscmVsZXZhbmNlOjB9LHtiZWdpbjovPi8scmVsZXZhbmNlOjAsZW5kc1BhcmVudDohMH1dfV19fXMuZXhwb3J0cz1pfSwyNzE3OTpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGUpe3JldHVybntuYW1lOiJYUXVlcnkiLGFsaWFzZXM6WyJ4cGF0aCIsInhxIl0sY2FzZV9pbnNlbnNpdGl2ZTohMSxpbGxlZ2FsOi8ocHJvYyl8KGFic3RyYWN0KXwoZXh0ZW5kcyl8KHVudGlsKXwoIykvLGtleXdvcmRzOnskcGF0dGVybjovW2EtekEtWiRdW2EtekEtWjAtOV86LV0qLyxrZXl3b3JkOiJtb2R1bGUgc2NoZW1hIG5hbWVzcGFjZSBib3VuZGFyeS1zcGFjZSBwcmVzZXJ2ZSBuby1wcmVzZXJ2ZSBzdHJpcCBkZWZhdWx0IGNvbGxhdGlvbiBiYXNlLXVyaSBvcmRlcmluZyBjb250ZXh0IGRlY2ltYWwtZm9ybWF0IGRlY2ltYWwtc2VwYXJhdG9yIGNvcHktbmFtZXNwYWNlcyBlbXB0eS1zZXF1ZW5jZSBleGNlcHQgZXhwb25lbnQtc2VwYXJhdG9yIGV4dGVybmFsIGdyb3VwaW5nLXNlcGFyYXRvciBpbmhlcml0IG5vLWluaGVyaXQgbGF4IG1pbnVzLXNpZ24gcGVyLW1pbGxlIHBlcmNlbnQgc2NoZW1hLWF0dHJpYnV0ZSBzY2hlbWEtZWxlbWVudCBzdHJpY3QgdW5vcmRlcmVkIHplcm8tZGlnaXQgZGVjbGFyZSBpbXBvcnQgb3B0aW9uIGZ1bmN0aW9uIHZhbGlkYXRlIHZhcmlhYmxlIGZvciBhdCBpbiBsZXQgd2hlcmUgb3JkZXIgZ3JvdXAgYnkgcmV0dXJuIGlmIHRoZW4gZWxzZSB0dW1ibGluZyBzbGlkaW5nIHdpbmRvdyBzdGFydCB3aGVuIG9ubHkgZW5kIHByZXZpb3VzIG5leHQgc3RhYmxlIGFzY2VuZGluZyBkZXNjZW5kaW5nIGFsbG93aW5nIGVtcHR5IGdyZWF0ZXN0IGxlYXN0IHNvbWUgZXZlcnkgc2F0aXNmaWVzIHN3aXRjaCBjYXNlIHR5cGVzd2l0Y2ggdHJ5IGNhdGNoIGFuZCBvciB0byB1bmlvbiBpbnRlcnNlY3QgaW5zdGFuY2Ugb2YgdHJlYXQgYXMgY2FzdGFibGUgY2FzdCBtYXAgYXJyYXkgZGVsZXRlIGluc2VydCBpbnRvIHJlcGxhY2UgdmFsdWUgcmVuYW1lIGNvcHkgbW9kaWZ5IHVwZGF0ZSIsdHlwZToiaXRlbSBkb2N1bWVudC1ub2RlIG5vZGUgYXR0cmlidXRlIGRvY3VtZW50IGVsZW1lbnQgY29tbWVudCBuYW1lc3BhY2UgbmFtZXNwYWNlLW5vZGUgcHJvY2Vzc2luZy1pbnN0cnVjdGlvbiB0ZXh0IGNvbnN0cnVjdGlvbiB4czphbnlBdG9taWNUeXBlIHhzOnVudHlwZWRBdG9taWMgeHM6ZHVyYXRpb24geHM6dGltZSB4czpkZWNpbWFsIHhzOmZsb2F0IHhzOmRvdWJsZSB4czpnWWVhck1vbnRoIHhzOmdZZWFyIHhzOmdNb250aERheSB4czpnTW9udGggeHM6Z0RheSB4czpib29sZWFuIHhzOmJhc2U2NEJpbmFyeSB4czpoZXhCaW5hcnkgeHM6YW55VVJJIHhzOlFOYW1lIHhzOk5PVEFUSU9OIHhzOmRhdGVUaW1lIHhzOmRhdGVUaW1lU3RhbXAgeHM6ZGF0ZSB4czpzdHJpbmcgeHM6bm9ybWFsaXplZFN0cmluZyB4czp0b2tlbiB4czpsYW5ndWFnZSB4czpOTVRPS0VOIHhzOk5hbWUgeHM6TkNOYW1lIHhzOklEIHhzOklEUkVGIHhzOkVOVElUWSB4czppbnRlZ2VyIHhzOm5vblBvc2l0aXZlSW50ZWdlciB4czpuZWdhdGl2ZUludGVnZXIgeHM6bG9uZyB4czppbnQgeHM6c2hvcnQgeHM6Ynl0ZSB4czpub25OZWdhdGl2ZUludGVnZXIgeHM6dW5pc2lnbmVkTG9uZyB4czp1bnNpZ25lZEludCB4czp1bnNpZ25lZFNob3J0IHhzOnVuc2lnbmVkQnl0ZSB4czpwb3NpdGl2ZUludGVnZXIgeHM6eWVhck1vbnRoRHVyYXRpb24geHM6ZGF5VGltZUR1cmF0aW9uIixsaXRlcmFsOiJlcSBuZSBsdCBsZSBndCBnZSBpcyBzZWxmOjogY2hpbGQ6OiBkZXNjZW5kYW50OjogZGVzY2VuZGFudC1vci1zZWxmOjogYXR0cmlidXRlOjogZm9sbG93aW5nOjogZm9sbG93aW5nLXNpYmxpbmc6OiBwYXJlbnQ6OiBhbmNlc3Rvcjo6IGFuY2VzdG9yLW9yLXNlbGY6OiBwcmVjZWRpbmc6OiBwcmVjZWRpbmctc2libGluZzo6IE5hTiJ9LGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJ2YXJpYWJsZSIsYmVnaW46L1skXVtcd1wtOl0rL30se2NsYXNzTmFtZToiYnVpbHRfaW4iLHZhcmlhbnRzOlt7YmVnaW46L1xiYXJyYXk6LyxlbmQ6Lyg/OmFwcGVuZHxmaWx0ZXJ8ZmxhdHRlbnxmb2xkLSg/OmxlZnR8cmlnaHQpfGZvci1lYWNoKD86LXBhaXIpP3xnZXR8aGVhZHxpbnNlcnQtYmVmb3JlfGpvaW58cHV0fHJlbW92ZXxyZXZlcnNlfHNpemV8c29ydHxzdWJhcnJheXx0YWlsKVxiL30se2JlZ2luOi9cYm1hcDovLGVuZDovKD86Y29udGFpbnN8ZW50cnl8ZmluZHxmb3ItZWFjaHxnZXR8a2V5c3xtZXJnZXxwdXR8cmVtb3ZlfHNpemUpXGIvfSx7YmVnaW46L1xibWF0aDovLGVuZDovKD86YSg/OmNvc3xzaW58dGFuWzJdPyl8Y29zfGV4cCg/OjEwKT98bG9nKD86MTApP3xwaXxwb3d8c2lufHNxcnR8dGFuKVxiL30se2JlZ2luOi9cYm9wOi8sZW5kOi9cKC8sZXhjbHVkZUVuZDohMH0se2JlZ2luOi9cYmZuOi8sZW5kOi9cKC8sZXhjbHVkZUVuZDohMH0se2JlZ2luOi9bXjwvJDonIi1dXGIoPzphYnN8YWNjdW11bGF0b3ItKD86YWZ0ZXJ8YmVmb3JlKXxhZGp1c3QtKD86ZGF0ZSg/OlRpbWUpP3x0aW1lKS10by10aW1lem9uZXxhbmFseXplLXN0cmluZ3xhcHBseXxhdmFpbGFibGUtKD86ZW52aXJvbm1lbnQtdmFyaWFibGVzfHN5c3RlbS1wcm9wZXJ0aWVzKXxhdmd8YmFzZS11cml8Ym9vbGVhbnxjZWlsaW5nfGNvZGVwb2ludHM/LSg/OmVxdWFsfHRvLXN0cmluZyl8Y29sbGF0aW9uLWtleXxjb2xsZWN0aW9ufGNvbXBhcmV8Y29uY2F0fGNvbnRhaW5zKD86LXRva2VuKT98Y29weS1vZnxjb3VudHxjdXJyZW50KD86LSk/KD86ZGF0ZSg/OlRpbWUpP3x0aW1lfGdyb3VwKD86aW5nLWtleSk/fG91dHB1dC11cml8bWVyZ2UtKD86Z3JvdXB8a2V5KSk/ZGF0YXxkYXRlVGltZXxkYXlzPy1mcm9tLSg/OmRhdGUoPzpUaW1lKT98ZHVyYXRpb24pfGRlZXAtZXF1YWx8ZGVmYXVsdC0oPzpjb2xsYXRpb258bGFuZ3VhZ2UpfGRpc3RpbmN0LXZhbHVlc3xkb2N1bWVudCg/Oi11cmkpP3xkb2MoPzotYXZhaWxhYmxlKT98ZWxlbWVudC0oPzphdmFpbGFibGV8d2l0aC1pZCl8ZW1wdHl8ZW5jb2RlLWZvci11cml8ZW5kcy13aXRofGVudmlyb25tZW50LXZhcmlhYmxlfGVycm9yfGVzY2FwZS1odG1sLXVyaXxleGFjdGx5LW9uZXxleGlzdHN8ZmFsc2V8ZmlsdGVyfGZsb29yfGZvbGQtKD86bGVmdHxyaWdodCl8Zm9yLWVhY2goPzotcGFpcik/fGZvcm1hdC0oPzpkYXRlKD86VGltZSk/fHRpbWV8aW50ZWdlcnxudW1iZXIpfGZ1bmN0aW9uLSg/OmFyaXR5fGF2YWlsYWJsZXxsb29rdXB8bmFtZSl8Z2VuZXJhdGUtaWR8aGFzLWNoaWxkcmVufGhlYWR8aG91cnMtZnJvbS0oPzpkYXRlVGltZXxkdXJhdGlvbnx0aW1lKXxpZCg/OnJlZik/fGltcGxpY2l0LXRpbWV6b25lfGluLXNjb3BlLXByZWZpeGVzfGluZGV4LW9mfGlubmVybW9zdHxpbnNlcnQtYmVmb3JlfGlyaS10by11cml8anNvbi0oPzpkb2N8dG8teG1sKXxrZXl8bGFuZ3xsYXN0fGxvYWQteHF1ZXJ5LW1vZHVsZXxsb2NhbC1uYW1lKD86LWZyb20tUU5hbWUpP3woPzpsb3dlcnx1cHBlciktY2FzZXxtYXRjaGVzfG1heHxtaW51dGVzLWZyb20tKD86ZGF0ZVRpbWV8ZHVyYXRpb258dGltZSl8bWlufG1vbnRocz8tZnJvbS0oPzpkYXRlKD86VGltZSk/fGR1cmF0aW9uKXxuYW1lKD86c3BhY2UtdXJpLT8oPzpmb3ItcHJlZml4fGZyb20tUU5hbWUpPyk/fG5pbGxlZHxub2RlLW5hbWV8bm9ybWFsaXplLSg/OnNwYWNlfHVuaWNvZGUpfG5vdHxudW1iZXJ8b25lLW9yLW1vcmV8b3V0ZXJtb3N0fHBhcnNlLSg/OmlldGYtZGF0ZXxqc29uKXxwYXRofHBvc2l0aW9ufCg/OnByZWZpeC1mcm9tLSk/UU5hbWV8cmFuZG9tLW51bWJlci1nZW5lcmF0b3J8cmVnZXgtZ3JvdXB8cmVtb3ZlfHJlcGxhY2V8cmVzb2x2ZS0oPzpRTmFtZXx1cmkpfHJldmVyc2V8cm9vdHxyb3VuZCg/Oi1oYWxmLXRvLWV2ZW4pP3xzZWNvbmRzLWZyb20tKD86ZGF0ZVRpbWV8ZHVyYXRpb258dGltZSl8c25hcHNob3R8c29ydHxzdGFydHMtd2l0aHxzdGF0aWMtYmFzZS11cml8c3RyZWFtLWF2YWlsYWJsZXxzdHJpbmctPyg/OmpvaW58bGVuZ3RofHRvLWNvZGVwb2ludHMpP3xzdWJzZXF1ZW5jZXxzdWJzdHJpbmctPyg/OmFmdGVyfGJlZm9yZSk/fHN1bXxzeXN0ZW0tcHJvcGVydHl8dGFpbHx0aW1lem9uZS1mcm9tLSg/OmRhdGUoPzpUaW1lKT98dGltZSl8dG9rZW5pemV8dHJhY2V8dHJhbnMoPzpmb3JtfGxhdGUpfHRydWV8dHlwZS1hdmFpbGFibGV8dW5vcmRlcmVkfHVucGFyc2VkLSg/OmVudGl0eXx0ZXh0KT8tPyg/OnB1YmxpYy1pZHx1cml8YXZhaWxhYmxlfGxpbmVzKT98dXJpLWNvbGxlY3Rpb258eG1sLXRvLWpzb258eWVhcnM/LWZyb20tKD86ZGF0ZSg/OlRpbWUpP3xkdXJhdGlvbil8emVyby1vci1vbmUpXGIvfSx7YmVnaW46L1xibG9jYWw6LyxlbmQ6L1woLyxleGNsdWRlRW5kOiEwfSx7YmVnaW46L1xiemlwOi8sZW5kOi8oPzp6aXAtZmlsZXwoPzp4bWx8aHRtbHx0ZXh0fGJpbmFyeSktZW50cnl8ICg/OnVwZGF0ZS0pP2VudHJpZXMpXGIvfSx7YmVnaW46L1xiKD86dXRpbHxkYnxmdW5jdHh8YXBwfHhkbXB8eG1sZGIpOi8sZW5kOi9cKC8sZXhjbHVkZUVuZDohMH1dfSx7Y2xhc3NOYW1lOiJzdHJpbmciLHZhcmlhbnRzOlt7YmVnaW46LyIvLGVuZDovIi8sY29udGFpbnM6W3tiZWdpbjovIiIvLHJlbGV2YW5jZTowfV19LHtiZWdpbjovJy8sZW5kOi8nLyxjb250YWluczpbe2JlZ2luOi8nJy8scmVsZXZhbmNlOjB9XX1dfSx7Y2xhc3NOYW1lOiJudW1iZXIiLGJlZ2luOi8oXGIwWzAtN19dKyl8KFxiMHhbMC05YS1mQS1GX10rKXwoXGJbMS05XVswLTlfXSooXC5bMC05X10rKT8pfFswX11cYi8scmVsZXZhbmNlOjB9LHtjbGFzc05hbWU6ImNvbW1lbnQiLGJlZ2luOi9cKDovLGVuZDovOlwpLyxyZWxldmFuY2U6MTAsY29udGFpbnM6W3tjbGFzc05hbWU6ImRvY3RhZyIsYmVnaW46L0BcdysvfV19LHtjbGFzc05hbWU6Im1ldGEiLGJlZ2luOi8lW1x3XC06XSsvfSx7Y2xhc3NOYW1lOiJ0aXRsZSIsYmVnaW46L1xieHF1ZXJ5IHZlcnNpb24gIlsxM11cLlswMV0iXHM/KD86ZW5jb2RpbmcgIi4rIik/LyxlbmQ6LzsvfSx7YmVnaW5LZXl3b3JkczoiZWxlbWVudCBhdHRyaWJ1dGUgY29tbWVudCBkb2N1bWVudCBwcm9jZXNzaW5nLWluc3RydWN0aW9uIixlbmQ6L1x7LyxleGNsdWRlRW5kOiEwfSx7YmVnaW46LzwoW1x3Ll86LV0rKShccytcUyo9KCd8IikuKignfCIpKT8+LyxlbmQ6LyhcL1tcdy5fOi1dKz4pLyxzdWJMYW5ndWFnZToieG1sIixjb250YWluczpbe2JlZ2luOi9cey8sZW5kOi9cfS8sc3ViTGFuZ3VhZ2U6InhxdWVyeSJ9LCJzZWxmIl19XX19cy5leHBvcnRzPXJ9LDkwMjA3OmZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHIoZSl7dmFyIHQ9InRydWUgZmFsc2UgeWVzIG5vIG51bGwiLG49IltcXHcjOy8/OkAmPSskLC5+KicoKVtcXF1dKyIsYT17Y2xhc3NOYW1lOiJhdHRyIix2YXJpYW50czpbe2JlZ2luOiJcXHdbXFx3IDpcXC8uLV0qOig/PVsgCV18JCkifSx7YmVnaW46JyJcXHdbXFx3IDpcXC8uLV0qIjooPz1bIAldfCQpJ30se2JlZ2luOiInXFx3W1xcdyA6XFwvLi1dKic6KD89WyAJXXwkKSJ9XX0saT17Y2xhc3NOYW1lOiJ0ZW1wbGF0ZS12YXJpYWJsZSIsdmFyaWFudHM6W3tiZWdpbjovXHtcey8sZW5kOi9cfVx9L30se2JlZ2luOi8lXHsvLGVuZDovXH0vfV19LG89e2NsYXNzTmFtZToic3RyaW5nIixyZWxldmFuY2U6MCx2YXJpYW50czpbe2JlZ2luOi8nLyxlbmQ6LycvfSx7YmVnaW46LyIvLGVuZDovIi99LHtiZWdpbjovXFMrL31dLGNvbnRhaW5zOltlLkJBQ0tTTEFTSF9FU0NBUEUsaV19LGw9ZS5pbmhlcml0KG8se3ZhcmlhbnRzOlt7YmVnaW46LycvLGVuZDovJy99LHtiZWdpbjovIi8sZW5kOi8iL30se2JlZ2luOi9bXlxzLHt9W1xdXSsvfV19KSxjPSJbMC05XXs0fSgtWzAtOV1bMC05XSl7MCwyfSIsXz0iKFtUdCBcXHRdWzAtOV1bMC05XT8oOlswLTldWzAtOV0pezJ9KT8iLGQ9IihcXC5bMC05XSopPyIsZz0iKFsgXFx0XSkqKFp8Wy0rXVswLTldWzAtOV0/KDpbMC05XVswLTldKT8pPyIsRT17Y2xhc3NOYW1lOiJudW1iZXIiLGJlZ2luOiJcXGIiK2MrXytkK2crIlxcYiJ9LHU9e2VuZDoiLCIsZW5kc1dpdGhQYXJlbnQ6ITAsZXhjbHVkZUVuZDohMCxrZXl3b3Jkczp0LHJlbGV2YW5jZTowfSxtPXtiZWdpbjovXHsvLGVuZDovXH0vLGNvbnRhaW5zOlt1XSxpbGxlZ2FsOiJcXG4iLHJlbGV2YW5jZTowfSxTPXtiZWdpbjoiXFxbIixlbmQ6IlxcXSIsY29udGFpbnM6W3VdLGlsbGVnYWw6IlxcbiIscmVsZXZhbmNlOjB9LFQ9W2Ese2NsYXNzTmFtZToibWV0YSIsYmVnaW46Il4tLS1cXHMqJCIscmVsZXZhbmNlOjEwfSx7Y2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOiJbXFx8Pl0oWzEtOV0/WystXSk/WyBdKlxcbiggKylbXiBdW15cXG5dKlxcbihcXDJbXlxcbl0rXFxuPykqIn0se2JlZ2luOiI8JVslPS1dPyIsZW5kOiJbJS1dPyU+IixzdWJMYW5ndWFnZToicnVieSIsZXhjbHVkZUJlZ2luOiEwLGV4Y2x1ZGVFbmQ6ITAscmVsZXZhbmNlOjB9LHtjbGFzc05hbWU6InR5cGUiLGJlZ2luOiIhXFx3KyEiK259LHtjbGFzc05hbWU6InR5cGUiLGJlZ2luOiIhPCIrbisiPiJ9LHtjbGFzc05hbWU6InR5cGUiLGJlZ2luOiIhIitufSx7Y2xhc3NOYW1lOiJ0eXBlIixiZWdpbjoiISEiK259LHtjbGFzc05hbWU6Im1ldGEiLGJlZ2luOiImIitlLlVOREVSU0NPUkVfSURFTlRfUkUrIiQifSx7Y2xhc3NOYW1lOiJtZXRhIixiZWdpbjoiXFwqIitlLlVOREVSU0NPUkVfSURFTlRfUkUrIiQifSx7Y2xhc3NOYW1lOiJidWxsZXQiLGJlZ2luOiItKD89WyBdfCQpIixyZWxldmFuY2U6MH0sZS5IQVNIX0NPTU1FTlRfTU9ERSx7YmVnaW5LZXl3b3Jkczp0LGtleXdvcmRzOntsaXRlcmFsOnR9fSxFLHtjbGFzc05hbWU6Im51bWJlciIsYmVnaW46ZS5DX05VTUJFUl9SRSsiXFxiIixyZWxldmFuY2U6MH0sbSxTLG9dLGI9Wy4uLlRdO3JldHVybiBiLnBvcCgpLGIucHVzaChsKSx1LmNvbnRhaW5zPWIse25hbWU6IllBTUwiLGNhc2VfaW5zZW5zaXRpdmU6ITAsYWxpYXNlczpbInltbCJdLGNvbnRhaW5zOlR9fXMuZXhwb3J0cz1yfSwyNTI3MjpmdW5jdGlvbihzKXtmdW5jdGlvbiByKGUpe2NvbnN0IHQ9e2NsYXNzTmFtZToic3RyaW5nIixjb250YWluczpbZS5CQUNLU0xBU0hfRVNDQVBFXSx2YXJpYW50czpbZS5pbmhlcml0KGUuQVBPU19TVFJJTkdfTU9ERSx7aWxsZWdhbDpudWxsfSksZS5pbmhlcml0KGUuUVVPVEVfU1RSSU5HX01PREUse2lsbGVnYWw6bnVsbH0pXX0sbj1lLlVOREVSU0NPUkVfVElUTEVfTU9ERSxhPXt2YXJpYW50czpbZS5CSU5BUllfTlVNQkVSX01PREUsZS5DX05VTUJFUl9NT0RFXX0saT0ibmFtZXNwYWNlIGNsYXNzIGludGVyZmFjZSB1c2UgZXh0ZW5kcyBmdW5jdGlvbiByZXR1cm4gYWJzdHJhY3QgZmluYWwgcHVibGljIHByb3RlY3RlZCBwcml2YXRlIHN0YXRpYyBkZXByZWNhdGVkIHRocm93IHRyeSBjYXRjaCBFeGNlcHRpb24gZWNobyBlbXB0eSBpc3NldCBpbnN0YW5jZW9mIHVuc2V0IGxldCB2YXIgbmV3IGNvbnN0IHNlbGYgcmVxdWlyZSBpZiBlbHNlIGVsc2VpZiBzd2l0Y2ggY2FzZSBkZWZhdWx0IGRvIHdoaWxlIGxvb3AgZm9yIGNvbnRpbnVlIGJyZWFrIGxpa2VseSB1bmxpa2VseSBfX0xJTkVfXyBfX0ZJTEVfXyBfX0RJUl9fIF9fRlVOQ1RJT05fXyBfX0NMQVNTX18gX19UUkFJVF9fIF9fTUVUSE9EX18gX19OQU1FU1BBQ0VfXyBhcnJheSBib29sZWFuIGZsb2F0IGRvdWJsZSBpbnRlZ2VyIG9iamVjdCByZXNvdXJjZSBzdHJpbmcgY2hhciBsb25nIHVuc2lnbmVkIGJvb2wgaW50IHVpbnQgdWxvbmcgdWNoYXIgdHJ1ZSBmYWxzZSBudWxsIHVuZGVmaW5lZCI7cmV0dXJue25hbWU6IlplcGhpciIsYWxpYXNlczpbInplcCJdLGtleXdvcmRzOmksY29udGFpbnM6W2UuQ19MSU5FX0NPTU1FTlRfTU9ERSxlLkNPTU1FTlQoL1wvXCovLC9cKlwvLyx7Y29udGFpbnM6W3tjbGFzc05hbWU6ImRvY3RhZyIsYmVnaW46L0BbQS1aYS16XSsvfV19KSx7Y2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOi88PDxbJyJdP1x3K1snIl0/JC8sZW5kOi9eXHcrOy8sY29udGFpbnM6W2UuQkFDS1NMQVNIX0VTQ0FQRV19LHtiZWdpbjovKDo6fC0+KStbYS16QS1aX1x4N2YtXHhmZl1bYS16QS1aMC05X1x4N2YtXHhmZl0qL30se2NsYXNzTmFtZToiZnVuY3Rpb24iLGJlZ2luS2V5d29yZHM6ImZ1bmN0aW9uIGZuIixlbmQ6L1s7e10vLGV4Y2x1ZGVFbmQ6ITAsaWxsZWdhbDovXCR8XFt8JS8sY29udGFpbnM6W24se2NsYXNzTmFtZToicGFyYW1zIixiZWdpbjovXCgvLGVuZDovXCkvLGtleXdvcmRzOmksY29udGFpbnM6WyJzZWxmIixlLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLHQsYV19XX0se2NsYXNzTmFtZToiY2xhc3MiLGJlZ2luS2V5d29yZHM6ImNsYXNzIGludGVyZmFjZSIsZW5kOi9cey8sZXhjbHVkZUVuZDohMCxpbGxlZ2FsOi9bOigkIl0vLGNvbnRhaW5zOlt7YmVnaW5LZXl3b3JkczoiZXh0ZW5kcyBpbXBsZW1lbnRzIn0sbl19LHtiZWdpbktleXdvcmRzOiJuYW1lc3BhY2UiLGVuZDovOy8saWxsZWdhbDovWy4nXS8sY29udGFpbnM6W25dfSx7YmVnaW5LZXl3b3JkczoidXNlIixlbmQ6LzsvLGNvbnRhaW5zOltuXX0se2JlZ2luOi89Pi99LHQsYV19fXMuZXhwb3J0cz1yfX1dKTsKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvMjg3My4wYjU4NzNhMi5hc3luYy5qcyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvMjg3My4wYjU4NzNhMi5hc3luYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNWEyMmEzCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy8yODczLjBiNTg3M2EyLmFzeW5jLmpzCkBAIC0wLDAgKzEgQEAKKyJ1c2Ugc3RyaWN0Ijsoc2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Bybz1zZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvfHxbXSkucHVzaChbWzI4NzNdLHs1Mjg3MzpmdW5jdGlvbihtLHUsYSl7YS5yKHUpO3ZhciBpPWEoNjcyOTQpLGw9YSgxNzc4OCkscz1hKDI2NDEyKSx0PWEoNzY3NzIpLG49YSg2MTMxNCksZT1hKDg1ODkzKSxwPWZ1bmN0aW9uKHIpe3ZhciBkLG89ci52YWx1ZXMsZz1yLmJ1c2luZXNzVHlwZU9wdGlvbnMsTT1yLm9wZXJhdG9yVHlwZU9wdGlvbnMsXz1yLnN0YXR1c09wdGlvbnMsYz0oMCx0LnVzZUludGwpKCksQz1mdW5jdGlvbigpe30sRj1mdW5jdGlvbigpe3Iub25DYW5jZWwoKX07cmV0dXJuKDAsZS5qc3gpKGwuWix7d2lkdGg6NjQwLHRpdGxlOmMuZm9ybWF0TWVzc2FnZSh7aWQ6Im1vbml0b3Iub3BlcmxvZy50aXRsZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1N0YxNlx1OEY5MVx1NjRDRFx1NEY1Q1x1NjVFNVx1NUZEN1x1OEJCMFx1NUY1NSJ9KSxvcGVuOnIub3BlbixkZXN0cm95T25DbG9zZTohMCxvbk9rOkMsb25DYW5jZWw6RixjaGlsZHJlbjooMCxlLmpzeHMpKHMuWix7Y29sdW1uOjI0LGNoaWxkcmVuOlsoMCxlLmpzeCkocy5aLkl0ZW0se3NwYW46MTIsbGFiZWw6KDAsZS5qc3gpKHQuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3Iub3BlcmxvZy5tb2R1bGUiLGRlZmF1bHRNZXNzYWdlOiJcdTY0Q0RcdTRGNUNcdTZBMjFcdTU3NTcifSksY2hpbGRyZW46IiIuY29uY2F0KG8udGl0bGUsIi8iKS5jb25jYXQoKDAsbi5uKShnLG8uYnVzaW5lc3NUeXBlKSl9KSwoMCxlLmpzeCkocy5aLkl0ZW0se3NwYW46MTIsbGFiZWw6KDAsZS5qc3gpKHQuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3Iub3BlcmxvZy5yZXF1ZXN0X21ldGhvZCIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1NkM0Mlx1NjVCOVx1NUYwRiJ9KSxjaGlsZHJlbjpvLnJlcXVlc3RNZXRob2R9KSwoMCxlLmpzeCkocy5aLkl0ZW0se3NwYW46MTIsbGFiZWw6KDAsZS5qc3gpKHQuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3Iub3BlcmxvZy5vcGVyX25hbWUiLGRlZmF1bHRNZXNzYWdlOiJcdTY0Q0RcdTRGNUNcdTRFQkFcdTU0NTgifSksY2hpbGRyZW46IiIuY29uY2F0KG8ub3Blck5hbWUsIi8iKS5jb25jYXQoby5vcGVySXApfSksKDAsZS5qc3gpKHMuWi5JdGVtLHtzcGFuOjEyLGxhYmVsOigwLGUuanN4KSh0LkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJtb25pdG9yLm9wZXJsb2cub3BlcmF0b3JfdHlwZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjRDRFx1NEY1Q1x1N0M3Qlx1NTIyQiJ9KSxjaGlsZHJlbjooMCxuLm4pKE0sby5vcGVyYXRvclR5cGUpfSksKDAsZS5qc3gpKHMuWi5JdGVtLHtzcGFuOjI0LGxhYmVsOigwLGUuanN4KSh0LkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJtb25pdG9yLm9wZXJsb2cubWV0aG9kIixkZWZhdWx0TWVzc2FnZToiXHU2NUI5XHU2Q0Q1XHU1NDBEXHU3OUYwIn0pLGNoaWxkcmVuOm8ubWV0aG9kfSksKDAsZS5qc3gpKHMuWi5JdGVtLHtzcGFuOjI0LGxhYmVsOigwLGUuanN4KSh0LkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJtb25pdG9yLm9wZXJsb2cub3Blcl91cmwiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdTZDNDJVUkwifSksY2hpbGRyZW46by5vcGVyVXJsfSksKDAsZS5qc3gpKHMuWi5JdGVtLHtzcGFuOjI0LGxhYmVsOigwLGUuanN4KSh0LkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJtb25pdG9yLm9wZXJsb2cub3Blcl9wYXJhbSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1NkM0Mlx1NTNDMlx1NjU3MCJ9KSxjaGlsZHJlbjpvLm9wZXJQYXJhbX0pLCgwLGUuanN4KShzLlouSXRlbSx7c3BhbjoyNCxsYWJlbDooMCxlLmpzeCkodC5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoibW9uaXRvci5vcGVybG9nLmpzb25fcmVzdWx0IixkZWZhdWx0TWVzc2FnZToiXHU4RkQ0XHU1NkRFXHU1M0MyXHU2NTcwIn0pLGNoaWxkcmVuOm8uanNvblJlc3VsdH0pLCgwLGUuanN4KShzLlouSXRlbSx7c3BhbjoyNCxsYWJlbDooMCxlLmpzeCkodC5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoibW9uaXRvci5vcGVybG9nLmVycm9yX21zZyIsZGVmYXVsdE1lc3NhZ2U6Ilx1OTUxOVx1OEJFRlx1NkQ4OFx1NjA2RiJ9KSxjaGlsZHJlbjpvLmVycm9yTXNnfSksKDAsZS5qc3gpKHMuWi5JdGVtLHtzcGFuOjEyLGxhYmVsOigwLGUuanN4KSh0LkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJtb25pdG9yLm9wZXJsb2cuc3RhdHVzIixkZWZhdWx0TWVzc2FnZToiXHU2NENEXHU0RjVDXHU3MkI2XHU2MDAxIn0pLGNoaWxkcmVuOigwLG4ubikoXyxvLnN0YXR1cyl9KSwoMCxlLmpzeCkocy5aLkl0ZW0se3NwYW46MTIsbGFiZWw6KDAsZS5qc3gpKHQuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3Iub3BlcmxvZy5vcGVyX3RpbWUiLGRlZmF1bHRNZXNzYWdlOiJcdTY0Q0RcdTRGNUNcdTY1RjZcdTk1RjQifSksY2hpbGRyZW46KGQ9by5vcGVyVGltZSk9PT1udWxsfHxkPT09dm9pZCAwP3ZvaWQgMDpkLnRvU3RyaW5nKCl9KV19KX0pfTt1LmRlZmF1bHQ9cH0sNjEzMTQ6ZnVuY3Rpb24obSx1LGEpe2EuZCh1LHtuOmZ1bmN0aW9uKCl7cmV0dXJuIGl9fSk7ZnVuY3Rpb24gaShsLHMsdCl7aWYocyE9PXZvaWQgMCl7dmFyIG49bFtzXTtpZihuKXJldHVybiBuLnRleHR9cmV0dXJuIHR8fHN9fX1dKTsKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvMzA1OC4zODgxYTFiYi5hc3luYy5qcyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvMzA1OC4zODgxYTFiYi5hc3luYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNTZlNGRlCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy8zMDU4LjM4ODFhMWJiLmFzeW5jLmpzCkBAIC0wLDAgKzEgQEAKKyJ1c2Ugc3RyaWN0Ijsoc2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Bybz1zZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvfHxbXSkucHVzaChbWzMwNThdLHs5MzA1ODpmdW5jdGlvbihtLGwsYSl7YS5yKGwpO3ZhciBpPWEoNjcyOTQpLHU9YSgxNzc4OCkscz1hKDI2NDEyKSx0PWEoNzY3NzIpLG49YSg2MTMxNCksZT1hKDg1ODkzKSxwPWZ1bmN0aW9uKHIpe3ZhciBkLG89ci52YWx1ZXMsZz1yLmJ1c2luZXNzVHlwZU9wdGlvbnMsTT1yLm9wZXJhdG9yVHlwZU9wdGlvbnMsYz1yLnN0YXR1c09wdGlvbnMsXz0oMCx0LnVzZUludGwpKCksQz1mdW5jdGlvbigpe2NvbnNvbGUubG9nKCJoYW5kbGUgb2siKX0sRj1mdW5jdGlvbigpe3Iub25DYW5jZWwoKX07cmV0dXJuKDAsZS5qc3gpKHUuWix7d2lkdGg6NjQwLHRpdGxlOl8uZm9ybWF0TWVzc2FnZSh7aWQ6Im1vbml0b3Iub3BlcmxvZy50aXRsZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1N0YxNlx1OEY5MVx1NjRDRFx1NEY1Q1x1NjVFNVx1NUZEN1x1OEJCMFx1NUY1NSJ9KSxvcGVuOnIub3BlbixkZXN0cm95T25DbG9zZTohMCxvbk9rOkMsb25DYW5jZWw6RixjaGlsZHJlbjooMCxlLmpzeHMpKHMuWix7Y29sdW1uOjI0LGNoaWxkcmVuOlsoMCxlLmpzeCkocy5aLkl0ZW0se3NwYW46MTIsbGFiZWw6KDAsZS5qc3gpKHQuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3Iub3BlcmxvZy5tb2R1bGUiLGRlZmF1bHRNZXNzYWdlOiJcdTY0Q0RcdTRGNUNcdTZBMjFcdTU3NTcifSksY2hpbGRyZW46IiIuY29uY2F0KG8udGl0bGUsIi8iKS5jb25jYXQoKDAsbi5uKShnLG8uYnVzaW5lc3NUeXBlKSl9KSwoMCxlLmpzeCkocy5aLkl0ZW0se3NwYW46MTIsbGFiZWw6KDAsZS5qc3gpKHQuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3Iub3BlcmxvZy5yZXF1ZXN0X21ldGhvZCIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1NkM0Mlx1NjVCOVx1NUYwRiJ9KSxjaGlsZHJlbjpvLnJlcXVlc3RNZXRob2R9KSwoMCxlLmpzeCkocy5aLkl0ZW0se3NwYW46MTIsbGFiZWw6KDAsZS5qc3gpKHQuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3Iub3BlcmxvZy5vcGVyX25hbWUiLGRlZmF1bHRNZXNzYWdlOiJcdTY0Q0RcdTRGNUNcdTRFQkFcdTU0NTgifSksY2hpbGRyZW46IiIuY29uY2F0KG8ub3Blck5hbWUsIi8iKS5jb25jYXQoby5vcGVySXApfSksKDAsZS5qc3gpKHMuWi5JdGVtLHtzcGFuOjEyLGxhYmVsOigwLGUuanN4KSh0LkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJtb25pdG9yLm9wZXJsb2cub3BlcmF0b3JfdHlwZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjRDRFx1NEY1Q1x1N0M3Qlx1NTIyQiJ9KSxjaGlsZHJlbjooMCxuLm4pKE0sby5vcGVyYXRvclR5cGUpfSksKDAsZS5qc3gpKHMuWi5JdGVtLHtzcGFuOjI0LGxhYmVsOigwLGUuanN4KSh0LkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJtb25pdG9yLm9wZXJsb2cubWV0aG9kIixkZWZhdWx0TWVzc2FnZToiXHU2NUI5XHU2Q0Q1XHU1NDBEXHU3OUYwIn0pLGNoaWxkcmVuOm8ubWV0aG9kfSksKDAsZS5qc3gpKHMuWi5JdGVtLHtzcGFuOjI0LGxhYmVsOigwLGUuanN4KSh0LkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJtb25pdG9yLm9wZXJsb2cub3Blcl91cmwiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdTZDNDJVUkwifSksY2hpbGRyZW46by5vcGVyVXJsfSksKDAsZS5qc3gpKHMuWi5JdGVtLHtzcGFuOjI0LGxhYmVsOigwLGUuanN4KSh0LkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJtb25pdG9yLm9wZXJsb2cub3Blcl9wYXJhbSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1NkM0Mlx1NTNDMlx1NjU3MCJ9KSxjaGlsZHJlbjpvLm9wZXJQYXJhbX0pLCgwLGUuanN4KShzLlouSXRlbSx7c3BhbjoyNCxsYWJlbDooMCxlLmpzeCkodC5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoibW9uaXRvci5vcGVybG9nLmpzb25fcmVzdWx0IixkZWZhdWx0TWVzc2FnZToiXHU4RkQ0XHU1NkRFXHU1M0MyXHU2NTcwIn0pLGNoaWxkcmVuOm8uanNvblJlc3VsdH0pLCgwLGUuanN4KShzLlouSXRlbSx7c3BhbjoyNCxsYWJlbDooMCxlLmpzeCkodC5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoibW9uaXRvci5vcGVybG9nLmVycm9yX21zZyIsZGVmYXVsdE1lc3NhZ2U6Ilx1OTUxOVx1OEJFRlx1NkQ4OFx1NjA2RiJ9KSxjaGlsZHJlbjpvLmVycm9yTXNnfSksKDAsZS5qc3gpKHMuWi5JdGVtLHtzcGFuOjEyLGxhYmVsOigwLGUuanN4KSh0LkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJtb25pdG9yLm9wZXJsb2cuc3RhdHVzIixkZWZhdWx0TWVzc2FnZToiXHU2NENEXHU0RjVDXHU3MkI2XHU2MDAxIn0pLGNoaWxkcmVuOigwLG4ubikoYyxvLnN0YXR1cyl9KSwoMCxlLmpzeCkocy5aLkl0ZW0se3NwYW46MTIsbGFiZWw6KDAsZS5qc3gpKHQuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3Iub3BlcmxvZy5vcGVyX3RpbWUiLGRlZmF1bHRNZXNzYWdlOiJcdTY0Q0RcdTRGNUNcdTY1RjZcdTk1RjQifSksY2hpbGRyZW46KGQ9by5vcGVyVGltZSk9PT1udWxsfHxkPT09dm9pZCAwP3ZvaWQgMDpkLnRvU3RyaW5nKCl9KV19KX0pfTtsLmRlZmF1bHQ9cH0sNjEzMTQ6ZnVuY3Rpb24obSxsLGEpe2EuZChsLHtuOmZ1bmN0aW9uKCl7cmV0dXJuIGl9fSk7ZnVuY3Rpb24gaSh1LHMsdCl7aWYocyE9PXZvaWQgMCl7dmFyIG49dVtzXTtpZihuKXJldHVybiBuLnRleHR9cmV0dXJuIHR8fHN9fX1dKTsKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvMzI3Mi4xNzg1N2M1MC5hc3luYy5qcyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvMzI3Mi4xNzg1N2M1MC5hc3luYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYjJlYTZhCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy8zMjcyLjE3ODU3YzUwLmFzeW5jLmpzCkBAIC0wLDAgKzEgQEAKKyJ1c2Ugc3RyaWN0Ijsoc2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Bybz1zZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvfHxbXSkucHVzaChbWzMyNzJdLHszMzI3MjpmdW5jdGlvbihILGksbil7bi5yKGkpO3ZhciBUPW4oMTUwMDkpLGQ9bi5uKFQpLGo9big5OTI4OSksZj1uLm4oaiksQz1uKDU1NzQpLHU9bi5uKEMpLHI9big2NzI5NCksTT1uKDk2NjkpLEE9bi5uKE0pLGU9big4NTg5MyksTz1mdW5jdGlvbihtKXt2YXIgYz1tLnVzZXJMZXZlbCxTPW0ucmVxdWlyZWRMZXZlbCxXPSgwLHIudXNlU3RhdGUpKG51bGwpLG89dSgpKFcsMiksTD1vWzBdLHg9b1sxXSxCPSgwLHIudXNlU3RhdGUpKCIiKSxoPXUoKShCLDIpLHA9aFswXSxSPWhbMV0sVT0oMCxyLnVzZVN0YXRlKSgiIiksZz11KCkoVSwyKSxiPWdbMF0seT1nWzFdLEk9KDAsci51c2VTdGF0ZSkoIiIpLHY9dSgpKEksMiksRT12WzBdLGw9dlsxXSxLPWZ1bmN0aW9uKGEpe3goYS50YXJnZXQuZmlsZXNbMF0pfSxGPWZ1bmN0aW9uKCl7dmFyIHQ9ZigpKGQoKSgpLm1hcmsoZnVuY3Rpb24gYShEKXt2YXIgcyxQO3JldHVybiBkKCkoKS53cmFwKGZ1bmN0aW9uKF8pe2Zvcig7Oylzd2l0Y2goXy5wcmV2PV8ubmV4dCl7Y2FzZSAwOmlmKEQucHJldmVudERlZmF1bHQoKSwhKGM8Uykpe18ubmV4dD00O2JyZWFrfXJldHVybiBsKCJcdTYwQThcdTc2ODRcdTc1MjhcdTYyMzdcdTdCNDlcdTdFQTdcdTRFMERcdThEQjNcdUZGMENcdTY1RTBcdTZDRDVcdTRFMEFcdTRGMjBcdTc5Q0RcdTVCNTBcdTMwMDIiKSxfLmFicnVwdCgicmV0dXJuIik7Y2FzZSA0OnJldHVybiBzPW5ldyBGb3JtRGF0YSxzLmFwcGVuZCgiZmlsZSIsTCkscy5hcHBlbmQoInNlZWROYW1lIixwKSxzLmFwcGVuZCgidGFncyIsYiksXy5wcmV2PTgsXy5uZXh0PTExLEEoKS5wb3N0KCIvYXBpL3VwbG9hZCIscyx7aGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6Im11bHRpcGFydC9mb3JtLWRhdGEifX0pO2Nhc2UgMTE6UD1fLnNlbnQsbChQLmRhdGEubWVzc2FnZSksXy5uZXh0PTE4O2JyZWFrO2Nhc2UgMTU6Xy5wcmV2PTE1LF8udDA9Xy5jYXRjaCg4KSxsKCJcdTRFMEFcdTRGMjBcdTU5MzFcdThEMjVcdUZGMENcdThCRjdcdTkxQ0RcdThCRDVcdTMwMDIiKTtjYXNlIDE4OmNhc2UiZW5kIjpyZXR1cm4gXy5zdG9wKCl9fSxhLG51bGwsW1s4LDE1XV0pfSkpO3JldHVybiBmdW5jdGlvbihEKXtyZXR1cm4gdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpO3JldHVybigwLGUuanN4cykoImRpdiIse2NoaWxkcmVuOlsoMCxlLmpzeCkoImgxIix7Y2hpbGRyZW46Ilx1OEQ0NFx1NkU5MFx1NEUwQVx1NEYyMCJ9KSwoMCxlLmpzeHMpKCJmb3JtIix7b25TdWJtaXQ6RixjaGlsZHJlbjpbKDAsZS5qc3hzKSgiZGl2Iix7Y2hpbGRyZW46WygwLGUuanN4KSgibGFiZWwiLHtjaGlsZHJlbjoiXHU3OUNEXHU1QjUwXHU1NDBEXHU3OUYwOiJ9KSwoMCxlLmpzeCkoImlucHV0Iix7dHlwZToidGV4dCIsdmFsdWU6cCxvbkNoYW5nZTpmdW5jdGlvbihhKXtyZXR1cm4gUihhLnRhcmdldC52YWx1ZSl9LHJlcXVpcmVkOiEwfSldfSksKDAsZS5qc3hzKSgiZGl2Iix7Y2hpbGRyZW46WygwLGUuanN4KSgibGFiZWwiLHtjaGlsZHJlbjoiXHU2ODA3XHU3QjdFOiJ9KSwoMCxlLmpzeCkoImlucHV0Iix7dHlwZToidGV4dCIsdmFsdWU6YixvbkNoYW5nZTpmdW5jdGlvbihhKXtyZXR1cm4geShhLnRhcmdldC52YWx1ZSl9fSldfSksKDAsZS5qc3hzKSgiZGl2Iix7Y2hpbGRyZW46WygwLGUuanN4KSgibGFiZWwiLHtjaGlsZHJlbjoiXHU5MDA5XHU2MkU5XHU2NTg3XHU0RUY2OiJ9KSwoMCxlLmpzeCkoImlucHV0Iix7dHlwZToiZmlsZSIsb25DaGFuZ2U6SyxyZXF1aXJlZDohMH0pXX0pLCgwLGUuanN4KSgiYnV0dG9uIix7dHlwZToic3VibWl0IixjaGlsZHJlbjoiXHU0RTBBXHU0RjIwIn0pXX0pLEUmJigwLGUuanN4KSgicCIse2NoaWxkcmVuOkV9KV19KX07aS5kZWZhdWx0PU99fV0pOwpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy8zNDg0LjRmMTM3ZGUzLmFzeW5jLmpzIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy8zNDg0LjRmMTM3ZGUzLmFzeW5jLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcwMWQ2ZjgKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzM0ODQuNGYxMzdkZTMuYXN5bmMuanMKQEAgLTAsMCArMSBAQAorInVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvPXNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm98fFtdKS5wdXNoKFtbMzQ4NF0sezk0MTYyOmZ1bmN0aW9uKEYsaixuKXt2YXIgXz1uKDY0NTk5KSxhPW4ubihfKSxPPW4oNjcyOTQpLHQ9big2NjMwOSksdj1uKDg1ODkzKSx5PWZ1bmN0aW9uKG0pe2Z1bmN0aW9uIFcoaSl7c3dpdGNoKGkpe2Nhc2UicHJpbWFyeSI6cmV0dXJuImJsdWUiO2Nhc2Uic3VjY2VzcyI6cmV0dXJuInN1Y2Nlc3MiO2Nhc2UiaW5mbyI6cmV0dXJuImdyZWVuIjtjYXNlIndhcm5pbmciOnJldHVybiJ3YXJuaW5nIjtjYXNlImRhbmdlciI6cmV0dXJuImVycm9yIjtjYXNlImRlZmF1bHQiOmRlZmF1bHQ6cmV0dXJuImRlZmF1bHQifX1mdW5jdGlvbiBVKGkpe2lmKGk9PT12b2lkIDApcmV0dXJuIiI7aWYobS5lbnVtcyl7dmFyIGg9bS5lbnVtc1tpXTtyZXR1cm4gaC5sYWJlbH1pZihtLm9wdGlvbnMpe2lmKCFBcnJheS5pc0FycmF5KG0ub3B0aW9ucykpcmV0dXJuIGNvbnNvbGUubG9nKCJEaWN0VGFnIG9wdGlvbnMgaXMgbm8gYXJyYXkhIiksIiI7dmFyIHU9YSgpKG0ub3B0aW9ucyksYjt0cnl7Zm9yKHUucygpOyEoYj11Lm4oKSkuZG9uZTspe3ZhciBDPWIudmFsdWU7aWYoQy52YWx1ZT09PWkpcmV0dXJuIEMudGV4dH19Y2F0Y2gobCl7dS5lKGwpfWZpbmFsbHl7dS5mKCl9fXJldHVybiBTdHJpbmcobS52YWx1ZSl9ZnVuY3Rpb24gTChpKXtpZihpPT09dm9pZCAwKXJldHVybiJkZWZhdWx0IjtpZihtLmVudW1zKXt2YXIgaD1tLmVudW1zW2ldO3JldHVybiBoLmxpc3RDbGFzc3x8ImRlZmF1bHQifWlmKG0ub3B0aW9ucyl7aWYoIUFycmF5LmlzQXJyYXkobS5vcHRpb25zKSlyZXR1cm4gY29uc29sZS5sb2coIkRpY3RUYWcgb3B0aW9ucyBpcyBubyBhcnJheSEiKSwiZGVmYXVsdCI7dmFyIHU9YSgpKG0ub3B0aW9ucyksYjt0cnl7Zm9yKHUucygpOyEoYj11Lm4oKSkuZG9uZTspe3ZhciBDPWIudmFsdWU7aWYoQy52YWx1ZT09PWkpcmV0dXJuIEMubGlzdENsYXNzfHwiZGVmYXVsdCJ9fWNhdGNoKGwpe3UuZShsKX1maW5hbGx5e3UuZigpfX1yZXR1cm4gU3RyaW5nKG0udmFsdWUpfXZhciBNPWZ1bmN0aW9uKCl7cmV0dXJuIFcoTChtLnZhbHVlKS50b0xvd2VyQ2FzZSgpKX0sQT1mdW5jdGlvbigpe3JldHVybiBVKG0udmFsdWUpfTtyZXR1cm4oMCx2LmpzeCkodC5aLHtjb2xvcjpNKCksY2hpbGRyZW46QSgpfSl9O2ouWj15fSwzMzg2NzpmdW5jdGlvbihGLGosbil7bi5kKGose2lLOmZ1bmN0aW9uKCl7cmV0dXJuIF99LHpjOmZ1bmN0aW9uKCl7cmV0dXJuIE99fSk7dmFyIF89ZnVuY3Rpb24odCl7cmV0dXJuIHRbdC5TVUNDRVNTPTIwMF09IlNVQ0NFU1MiLHRbdC5FUlJPUj0tMV09IkVSUk9SIix0W3QuVElNRU9VVD00MDFdPSJUSU1FT1VUIix0LlRZUEU9InN1Y2Nlc3MiLHR9KHt9KSxhPWZ1bmN0aW9uKHQpe3JldHVybiB0LkdFVD0iR0VUIix0LlBPU1Q9IlBPU1QiLHQuUFVUPSJQVVQiLHQuREVMRVRFPSJERUxFVEUiLHR9KHt9KSxPPWZ1bmN0aW9uKHQpe3JldHVybiB0LkpTT049ImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCIsdC5GT1JNX1VSTEVOQ09ERUQ9ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PVVURi04Iix0LkZPUk1fREFUQT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YTtjaGFyc2V0PVVURi04Iix0fSh7fSl9LDMyNTk3OmZ1bmN0aW9uKEYsaixuKXtuLmQoaix7RzY6ZnVuY3Rpb24oKXtyZXR1cm4gQ30sSE06ZnVuY3Rpb24oKXtyZXR1cm4gTX0sUm86ZnVuY3Rpb24oKXtyZXR1cm4gaX0sWGU6ZnVuY3Rpb24oKXtyZXR1cm4gdX0sczg6ZnVuY3Rpb24oKXtyZXR1cm4gRH0semc6ZnVuY3Rpb24oKXtyZXR1cm4gVX19KTt2YXIgXz1uKDE1MDA5KSxhPW4ubihfKSxPPW4oOTkyODkpLHQ9bi5uKE8pLHY9big3Njc3MikseT1uKDMwOTY0KTtmdW5jdGlvbiBEKGwpe3JldHVybiBtLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBtKCl7cmV0dXJuIG09dCgpKGEoKSgpLm1hcmsoZnVuY3Rpb24gbChUKXtyZXR1cm4gYSgpKCkud3JhcChmdW5jdGlvbihwKXtmb3IoOzspc3dpdGNoKHAucHJldj1wLm5leHQpe2Nhc2UgMDpyZXR1cm4gcC5hYnJ1cHQoInJldHVybiIsKDAsdi5yZXF1ZXN0KSgiL2FwaS9tb25pdG9yL29wZXJsb2cvbGlzdCIse21ldGhvZDoiR0VUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In0scGFyYW1zOlR9KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gcC5zdG9wKCl9fSxsKX0pKSxtLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBXKGwpe3JldHVybiByZXF1ZXN0KCIvYXBpL21vbml0b3Ivb3BlcmxvZy8iLmNvbmNhdChsKSx7bWV0aG9kOiJHRVQifSl9ZnVuY3Rpb24gVShsKXtyZXR1cm4gTC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gTCgpe3JldHVybiBMPXQoKShhKCkoKS5tYXJrKGZ1bmN0aW9uIGwoVCl7cmV0dXJuIGEoKSgpLndyYXAoZnVuY3Rpb24ocCl7Zm9yKDs7KXN3aXRjaChwLnByZXY9cC5uZXh0KXtjYXNlIDA6cmV0dXJuIHAuYWJydXB0KCJyZXR1cm4iLCgwLHYucmVxdWVzdCkoIi9hcGkvbW9uaXRvci9vcGVybG9nIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In0sZGF0YTpUfSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIHAuc3RvcCgpfX0sbCl9KSksTC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gTShsKXtyZXR1cm4gQS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gQSgpe3JldHVybiBBPXQoKShhKCkoKS5tYXJrKGZ1bmN0aW9uIGwoVCl7cmV0dXJuIGEoKSgpLndyYXAoZnVuY3Rpb24ocCl7Zm9yKDs7KXN3aXRjaChwLnByZXY9cC5uZXh0KXtjYXNlIDA6cmV0dXJuIHAuYWJydXB0KCJyZXR1cm4iLCgwLHYucmVxdWVzdCkoIi9hcGkvbW9uaXRvci9vcGVybG9nIix7bWV0aG9kOiJQVVQiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgifSxkYXRhOlR9KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gcC5zdG9wKCl9fSxsKX0pKSxBLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBpKGwpe3JldHVybiBoLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBoKCl7cmV0dXJuIGg9dCgpKGEoKSgpLm1hcmsoZnVuY3Rpb24gbChUKXtyZXR1cm4gYSgpKCkud3JhcChmdW5jdGlvbihwKXtmb3IoOzspc3dpdGNoKHAucHJldj1wLm5leHQpe2Nhc2UgMDpyZXR1cm4gcC5hYnJ1cHQoInJldHVybiIsKDAsdi5yZXF1ZXN0KSgiL2FwaS9tb25pdG9yL29wZXJsb2cvIi5jb25jYXQoVCkse21ldGhvZDoiREVMRVRFIn0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBwLnN0b3AoKX19LGwpfSkpLGguYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHUoKXtyZXR1cm4gYi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gYigpe3JldHVybiBiPXQoKShhKCkoKS5tYXJrKGZ1bmN0aW9uIGwoKXtyZXR1cm4gYSgpKCkud3JhcChmdW5jdGlvbihnKXtmb3IoOzspc3dpdGNoKGcucHJldj1nLm5leHQpe2Nhc2UgMDpyZXR1cm4gZy5hYnJ1cHQoInJldHVybiIsKDAsdi5yZXF1ZXN0KSgiL2FwaS9tb25pdG9yL29wZXJsb2cvY2xlYW4iLHttZXRob2Q6IkRFTEVURSJ9KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gZy5zdG9wKCl9fSxsKX0pKSxiLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBDKGwpe3JldHVybigwLHkuc3UpKCIvYXBpL21vbml0b3Ivb3BlcmxvZy9leHBvcnQiLHtwYXJhbXM6bH0sIm9wZXJsb2dfIi5jb25jYXQobmV3IERhdGUoKS5nZXRUaW1lKCksIi54bHN4IikpfX0sOTI5ODI6ZnVuY3Rpb24oRixqLG4pe24uZChqLHtIcjpmdW5jdGlvbigpe3JldHVybiBofSxRSzpmdW5jdGlvbigpe3JldHVybiBKfSxWZDpmdW5jdGlvbigpe3JldHVybiBNfSxhNzpmdW5jdGlvbigpe3JldHVybiBsfSxqSzpmdW5jdGlvbigpe3JldHVybiBVfSxuMjpmdW5jdGlvbigpe3JldHVybiBRfSxvSDpmdW5jdGlvbigpe3JldHVybiBifSxwWDpmdW5jdGlvbigpe3JldHVybiBBfSxzRjpmdW5jdGlvbigpe3JldHVybiBnfX0pO3ZhciBfPW4oMTUwMDkpLGE9bi5uKF8pLE89big5Nzg1NyksdD1uLm4oTyksdj1uKDk5Mjg5KSx5PW4ubih2KSxEPW4oNzY3NzIpLG09bigzMzg2NyksVz1uKDMwOTY0KTtmdW5jdGlvbiBVKGMpe3JldHVybiBMLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBMKCl7cmV0dXJuIEw9eSgpKGEoKSgpLm1hcmsoZnVuY3Rpb24gYyhFKXtyZXR1cm4gYSgpKCkud3JhcChmdW5jdGlvbihzKXtmb3IoOzspc3dpdGNoKHMucHJldj1zLm5leHQpe2Nhc2UgMDpyZXR1cm4gcy5hYnJ1cHQoInJldHVybiIsKDAsRC5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vZGljdC90eXBlL2xpc3QiLHtwYXJhbXM6dCgpKHt9LEUpLG1ldGhvZDoiR0VUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In19KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gcy5zdG9wKCl9fSxjKX0pKSxMLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBNKGMpe3JldHVybigwLEQucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RpY3QvdHlwZS8iLmNvbmNhdChjKSx7bWV0aG9kOiJHRVQifSl9ZnVuY3Rpb24gQShjLEUpe3JldHVybiBpLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBpKCl7cmV0dXJuIGk9eSgpKGEoKSgpLm1hcmsoZnVuY3Rpb24gYyhFLEkpe3ZhciBzLCQ7cmV0dXJuIGEoKSgpLndyYXAoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIGUubmV4dD0yLCgwLEQucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RpY3QvZGF0YS90eXBlLyIuY29uY2F0KEUpLHttZXRob2Q6IkdFVCJ9KTtjYXNlIDI6aWYocz1lLnNlbnQscy5jb2RlIT09bS5pSy5TVUNDRVNTKXtlLm5leHQ9OTticmVha31yZXR1cm4gJD17fSxzLmRhdGEuZm9yRWFjaChmdW5jdGlvbihyKXskW3IuZGljdFZhbHVlXT17dGV4dDpyLmRpY3RMYWJlbCxsYWJlbDpyLmRpY3RMYWJlbCx2YWx1ZTpJP051bWJlcihyLmRpY3RWYWx1ZSk6ci5kaWN0VmFsdWUsa2V5OnIuZGljdENvZGUsbGlzdENsYXNzOnIubGlzdENsYXNzLHN0YXR1czpyLmxpc3RDbGFzc319KSxlLmFicnVwdCgicmV0dXJuIiwkKTtjYXNlIDk6cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLHt9KTtjYXNlIDEwOmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSxjKX0pKSxpLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBoKGMsRSl7cmV0dXJuIHUuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHUoKXtyZXR1cm4gdT15KCkoYSgpKCkubWFyayhmdW5jdGlvbiBjKEUsSSl7dmFyIHMsJDtyZXR1cm4gYSgpKCkud3JhcChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gZS5uZXh0PTIsKDAsRC5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vZGljdC9kYXRhL3R5cGUvIi5jb25jYXQoRSkse21ldGhvZDoiR0VUIn0pO2Nhc2UgMjppZihzPWUuc2VudCxzLmNvZGUhPT0yMDApe2UubmV4dD02O2JyZWFrfXJldHVybiAkPXMuZGF0YS5tYXAoZnVuY3Rpb24ocil7cmV0dXJue3RleHQ6ci5kaWN0TGFiZWwsbGFiZWw6ci5kaWN0TGFiZWwsdmFsdWU6ST9OdW1iZXIoci5kaWN0VmFsdWUpOnIuZGljdFZhbHVlLGtleTpyLmRpY3RDb2RlLGxpc3RDbGFzczpyLmxpc3RDbGFzcyxzdGF0dXM6ci5saXN0Q2xhc3N9fSksZS5hYnJ1cHQoInJldHVybiIsJCk7Y2FzZSA2OnJldHVybiBlLmFicnVwdCgicmV0dXJuIixbXSk7Y2FzZSA3OmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSxjKX0pKSx1LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBiKGMpe3JldHVybiBDLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBDKCl7cmV0dXJuIEM9eSgpKGEoKSgpLm1hcmsoZnVuY3Rpb24gYyhFKXtyZXR1cm4gYSgpKCkud3JhcChmdW5jdGlvbihzKXtmb3IoOzspc3dpdGNoKHMucHJldj1zLm5leHQpe2Nhc2UgMDpyZXR1cm4gcy5hYnJ1cHQoInJldHVybiIsKDAsRC5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vZGljdC90eXBlIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In0sZGF0YTpFfSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIHMuc3RvcCgpfX0sYyl9KSksQy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gbChjKXtyZXR1cm4gVC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gVCgpe3JldHVybiBUPXkoKShhKCkoKS5tYXJrKGZ1bmN0aW9uIGMoRSl7cmV0dXJuIGEoKSgpLndyYXAoZnVuY3Rpb24ocyl7Zm9yKDs7KXN3aXRjaChzLnByZXY9cy5uZXh0KXtjYXNlIDA6cmV0dXJuIHMuYWJydXB0KCJyZXR1cm4iLCgwLEQucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RpY3QvdHlwZSIse21ldGhvZDoiUFVUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In0sZGF0YTpFfSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIHMuc3RvcCgpfX0sYyl9KSksVC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gZyhjKXtyZXR1cm4gcC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gcCgpe3JldHVybiBwPXkoKShhKCkoKS5tYXJrKGZ1bmN0aW9uIGMoRSl7cmV0dXJuIGEoKSgpLndyYXAoZnVuY3Rpb24ocyl7Zm9yKDs7KXN3aXRjaChzLnByZXY9cy5uZXh0KXtjYXNlIDA6cmV0dXJuIHMuYWJydXB0KCJyZXR1cm4iLCgwLEQucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RpY3QvdHlwZS8iLmNvbmNhdChFKSx7bWV0aG9kOiJERUxFVEUifSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIHMuc3RvcCgpfX0sYyl9KSkscC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gUShjKXtyZXR1cm4oMCxXLnN1KSgiL2FwaS9zeXN0ZW0vZGljdC90eXBlL2V4cG9ydCIse3BhcmFtczpjfSwiZGljdF90eXBlXyIuY29uY2F0KG5ldyBEYXRlKCkuZ2V0VGltZSgpLCIueGxzeCIpKX1mdW5jdGlvbiBKKGMpe3JldHVybiBHLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBHKCl7cmV0dXJuIEc9eSgpKGEoKSgpLm1hcmsoZnVuY3Rpb24gYyhFKXtyZXR1cm4gYSgpKCkud3JhcChmdW5jdGlvbihzKXtmb3IoOzspc3dpdGNoKHMucHJldj1zLm5leHQpe2Nhc2UgMDpyZXR1cm4gcy5hYnJ1cHQoInJldHVybiIsKDAsRC5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vZGljdC90eXBlL29wdGlvbnNlbGVjdCIse3BhcmFtczp0KCkoe30sRSksbWV0aG9kOiJHRVQiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgifX0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBzLnN0b3AoKX19LGMpfSkpLEcuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0sMzA5NjQ6ZnVuY3Rpb24oRixqLG4pe24uZChqLHtwNjpmdW5jdGlvbigpe3JldHVybiBVfSxzdTpmdW5jdGlvbigpe3JldHVybiBMfX0pO3ZhciBfPW4oMTUwMDkpLGE9bi5uKF8pLE89big5Nzg1NyksdD1uLm4oTyksdj1uKDk5Mjg5KSx5PW4ubih2KSxEPW4oNzY3NzIpLG09e3hsc3g6ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0Iix6aXA6ImFwcGxpY2F0aW9uL3ppcCJ9O2Z1bmN0aW9uIFcoaSxoKXt2YXIgdT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIiksYj1uZXcgQmxvYihbaS5kYXRhXSx7dHlwZTpofSksQz1uZXcgUmVnRXhwKCJmaWxlbmFtZT0oW147XStcXC5bXlxcLjtdKyk7KiIpLGw9ZGVjb2RlVVJJKGkuaGVhZGVyc1siY29udGVudC1kaXNwb3NpdGlvbiJdKSxUPUMuZXhlYyhsKSxnPVQ/VFsxXToiZmlsZSI7Zz1nLnJlcGxhY2UoLyIvZywiIiksdS5zdHlsZS5kaXNwbGF5PSJub25lIix1LmhyZWY9VVJMLmNyZWF0ZU9iamVjdFVSTChiKSx1LnNldEF0dHJpYnV0ZSgiZG93bmxvYWQiLGcpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodSksdS5jbGljaygpLFVSTC5yZXZva2VPYmplY3RVUkwodS5ocmVmKSxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHUpfWZ1bmN0aW9uIFUoaSl7KDAsRC5yZXF1ZXN0KShpLHttZXRob2Q6IkdFVCIscmVzcG9uc2VUeXBlOiJibG9iIixnZXRSZXNwb25zZTohMH0pLnRoZW4oZnVuY3Rpb24oaCl7VyhoLG0uemlwKX0pfWZ1bmN0aW9uIEwoaSxoLHUpe3JldHVybiBNLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBNKCl7cmV0dXJuIE09eSgpKGEoKSgpLm1hcmsoZnVuY3Rpb24gaShoLHUsYil7cmV0dXJuIGEoKSgpLndyYXAoZnVuY3Rpb24obCl7Zm9yKDs7KXN3aXRjaChsLnByZXY9bC5uZXh0KXtjYXNlIDA6cmV0dXJuIGwuYWJydXB0KCJyZXR1cm4iLCgwLEQucmVxdWVzdCkoaCx0KCkodCgpKHt9LHUpLHt9LHttZXRob2Q6IlBPU1QiLHJlc3BvbnNlVHlwZToiYmxvYiJ9KSkudGhlbihmdW5jdGlvbihUKXt2YXIgZz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIikscD1UO2cuc3R5bGUuZGlzcGxheT0ibm9uZSIsZy5ocmVmPVVSTC5jcmVhdGVPYmplY3RVUkwocCksZy5zZXRBdHRyaWJ1dGUoImRvd25sb2FkIixiKSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGcpLGcuY2xpY2soKSxVUkwucmV2b2tlT2JqZWN0VVJMKGcuaHJlZiksZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChnKX0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBsLnN0b3AoKX19LGkpfSkpLE0uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEEoaSl7d2luZG93LmxvY2F0aW9uLmhyZWY9Ii9hcGkvY29tbW9uL2Rvd25sb2FkP2ZpbGVOYW1lPSIuY29uY2F0KGVuY29kZVVSSShpKSwiJmRlbGV0ZT0iLCEwKX19LDYxMzE0OmZ1bmN0aW9uKEYsaixuKXtuLmQoaix7bjpmdW5jdGlvbigpe3JldHVybiBffX0pO2Z1bmN0aW9uIF8oYSxPLHQpe2lmKE8hPT12b2lkIDApe3ZhciB2PWFbT107aWYodilyZXR1cm4gdi50ZXh0fXJldHVybiB0fHxPfX0sNjYzMDk6ZnVuY3Rpb24oRixqLG4pe24uZChqLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIFl9fSk7dmFyIF89big2NzI5NCksYT1uKDkzOTY3KSxPPW4ubihhKSx0PW4oOTg0MjMpLHY9big5ODc4NykseT1uKDY5NzYwKSxEPW4oOTYxNTkpLG09big0NTM1MyksVz1uKDUzMTI0KSxVPW4oMTE1NjgpLEw9bigxNTA2MyksTT1uKDE0NzQ3KSxBPW4oODMyNjIpLGk9big4MzU1OSk7Y29uc3QgaD1lPT57Y29uc3R7cGFkZGluZ1hYUzpyLGxpbmVXaWR0aDpmLHRhZ1BhZGRpbmdIb3Jpem9udGFsOm8sY29tcG9uZW50Q2xzOmQsY2FsYzpSfT1lLFA9UihvKS5zdWIoZikuZXF1YWwoKSxLPVIocikuc3ViKGYpLmVxdWFsKCk7cmV0dXJue1tkXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sKDAsTS5XZikoZSkpLHtkaXNwbGF5OiJpbmxpbmUtYmxvY2siLGhlaWdodDoiYXV0byIsbWFyZ2luSW5saW5lRW5kOmUubWFyZ2luWFMscGFkZGluZ0lubGluZTpQLGZvbnRTaXplOmUudGFnRm9udFNpemUsbGluZUhlaWdodDplLnRhZ0xpbmVIZWlnaHQsd2hpdGVTcGFjZToibm93cmFwIixiYWNrZ3JvdW5kOmUuZGVmYXVsdEJnLGJvcmRlcjpgJHsoMCxVLmJmKShlLmxpbmVXaWR0aCl9ICR7ZS5saW5lVHlwZX0gJHtlLmNvbG9yQm9yZGVyfWAsYm9yZGVyUmFkaXVzOmUuYm9yZGVyUmFkaXVzU00sb3BhY2l0eToxLHRyYW5zaXRpb246YGFsbCAke2UubW90aW9uRHVyYXRpb25NaWR9YCx0ZXh0QWxpZ246InN0YXJ0Iixwb3NpdGlvbjoicmVsYXRpdmUiLFtgJiR7ZH0tcnRsYF06e2RpcmVjdGlvbjoicnRsIn0sIiYsIGEsIGE6aG92ZXIiOntjb2xvcjplLmRlZmF1bHRDb2xvcn0sW2Ake2R9LWNsb3NlLWljb25gXTp7bWFyZ2luSW5saW5lU3RhcnQ6Syxmb250U2l6ZTplLnRhZ0ljb25TaXplLGNvbG9yOmUuY29sb3JUZXh0RGVzY3JpcHRpb24sY3Vyc29yOiJwb2ludGVyIix0cmFuc2l0aW9uOmBhbGwgJHtlLm1vdGlvbkR1cmF0aW9uTWlkfWAsIiY6aG92ZXIiOntjb2xvcjplLmNvbG9yVGV4dEhlYWRpbmd9fSxbYCYke2R9LWhhcy1jb2xvcmBdOntib3JkZXJDb2xvcjoidHJhbnNwYXJlbnQiLFtgJiwgYSwgYTpob3ZlciwgJHtlLmljb25DbHN9LWNsb3NlLCAke2UuaWNvbkNsc30tY2xvc2U6aG92ZXJgXTp7Y29sb3I6ZS5jb2xvclRleHRMaWdodFNvbGlkfX0sIiYtY2hlY2thYmxlIjp7YmFja2dyb3VuZENvbG9yOiJ0cmFuc3BhcmVudCIsYm9yZGVyQ29sb3I6InRyYW5zcGFyZW50IixjdXJzb3I6InBvaW50ZXIiLFtgJjpub3QoJHtkfS1jaGVja2FibGUtY2hlY2tlZCk6aG92ZXJgXTp7Y29sb3I6ZS5jb2xvclByaW1hcnksYmFja2dyb3VuZENvbG9yOmUuY29sb3JGaWxsU2Vjb25kYXJ5fSwiJjphY3RpdmUsICYtY2hlY2tlZCI6e2NvbG9yOmUuY29sb3JUZXh0TGlnaHRTb2xpZH0sIiYtY2hlY2tlZCI6e2JhY2tncm91bmRDb2xvcjplLmNvbG9yUHJpbWFyeSwiJjpob3ZlciI6e2JhY2tncm91bmRDb2xvcjplLmNvbG9yUHJpbWFyeUhvdmVyfX0sIiY6YWN0aXZlIjp7YmFja2dyb3VuZENvbG9yOmUuY29sb3JQcmltYXJ5QWN0aXZlfX0sIiYtaGlkZGVuIjp7ZGlzcGxheToibm9uZSJ9LFtgPiAke2UuaWNvbkNsc30gKyBzcGFuLCA+IHNwYW4gKyAke2UuaWNvbkNsc31gXTp7bWFyZ2luSW5saW5lU3RhcnQ6UH19KSxbYCR7ZH0tYm9yZGVybGVzc2BdOntib3JkZXJDb2xvcjoidHJhbnNwYXJlbnQiLGJhY2tncm91bmQ6ZS50YWdCb3JkZXJsZXNzQmd9fX0sdT1lPT57Y29uc3R7bGluZVdpZHRoOnIsZm9udFNpemVJY29uOmYsY2FsYzpvfT1lLGQ9ZS5mb250U2l6ZVNNO3JldHVybigwLEEuSVgpKGUse3RhZ0ZvbnRTaXplOmQsdGFnTGluZUhlaWdodDooMCxVLmJmKShvKGUubGluZUhlaWdodFNNKS5tdWwoZCkuZXF1YWwoKSksdGFnSWNvblNpemU6byhmKS5zdWIobyhyKS5tdWwoMikpLmVxdWFsKCksdGFnUGFkZGluZ0hvcml6b250YWw6OCx0YWdCb3JkZXJsZXNzQmc6ZS5kZWZhdWx0Qmd9KX0sYj1lPT4oe2RlZmF1bHRCZzpuZXcgTC50KGUuY29sb3JGaWxsUXVhdGVybmFyeSkub25CYWNrZ3JvdW5kKGUuY29sb3JCZ0NvbnRhaW5lcikudG9IZXhTdHJpbmcoKSxkZWZhdWx0Q29sb3I6ZS5jb2xvclRleHR9KTt2YXIgQz0oMCxpLkkkKSgiVGFnIixlPT57Y29uc3Qgcj11KGUpO3JldHVybiBoKHIpfSxiKSxsPWZ1bmN0aW9uKGUscil7dmFyIGY9e307Zm9yKHZhciBvIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsbykmJnIuaW5kZXhPZihvKTwwJiYoZltvXT1lW29dKTtpZihlIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIGQ9MCxvPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7ZDxvLmxlbmd0aDtkKyspci5pbmRleE9mKG9bZF0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLG9bZF0pJiYoZltvW2RdXT1lW29bZF1dKTtyZXR1cm4gZn0sZz1fLmZvcndhcmRSZWYoKGUscik9Pntjb25zdHtwcmVmaXhDbHM6ZixzdHlsZTpvLGNsYXNzTmFtZTpkLGNoZWNrZWQ6UixvbkNoYW5nZTpQLG9uQ2xpY2s6S309ZSxCPWwoZSxbInByZWZpeENscyIsInN0eWxlIiwiY2xhc3NOYW1lIiwiY2hlY2tlZCIsIm9uQ2hhbmdlIiwib25DbGljayJdKSx7Z2V0UHJlZml4Q2xzOlYsdGFnOnh9PV8udXNlQ29udGV4dChXLkVfKSxYPVo9PntQPT1udWxsfHxQKCFSKSxLPT1udWxsfHxLKFopfSxIPVYoInRhZyIsZiksW2sscSx3XT1DKEgpLGVlPU8oKShILGAke0h9LWNoZWNrYWJsZWAse1tgJHtIfS1jaGVja2FibGUtY2hlY2tlZGBdOlJ9LHg9PW51bGw/dm9pZCAwOnguY2xhc3NOYW1lLGQscSx3KTtyZXR1cm4gayhfLmNyZWF0ZUVsZW1lbnQoInNwYW4iLE9iamVjdC5hc3NpZ24oe30sQix7cmVmOnIsc3R5bGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG8pLHg9PW51bGw/dm9pZCAwOnguc3R5bGUpLGNsYXNzTmFtZTplZSxvbkNsaWNrOlh9KSkpfSkscD1uKDk4NzE5KTtjb25zdCBRPWU9PigwLHAuWikoZSwocixmKT0+e2xldHt0ZXh0Q29sb3I6byxsaWdodEJvcmRlckNvbG9yOmQsbGlnaHRDb2xvcjpSLGRhcmtDb2xvcjpQfT1mO3JldHVybntbYCR7ZS5jb21wb25lbnRDbHN9JHtlLmNvbXBvbmVudENsc30tJHtyfWBdOntjb2xvcjpvLGJhY2tncm91bmQ6Uixib3JkZXJDb2xvcjpkLCImLWludmVyc2UiOntjb2xvcjplLmNvbG9yVGV4dExpZ2h0U29saWQsYmFja2dyb3VuZDpQLGJvcmRlckNvbG9yOlB9LFtgJiR7ZS5jb21wb25lbnRDbHN9LWJvcmRlcmxlc3NgXTp7Ym9yZGVyQ29sb3I6InRyYW5zcGFyZW50In19fX0pO3ZhciBKPSgwLGkuYmspKFsiVGFnIiwicHJlc2V0Il0sZT0+e2NvbnN0IHI9dShlKTtyZXR1cm4gUShyKX0sYik7ZnVuY3Rpb24gRyhlKXtyZXR1cm4gdHlwZW9mIGUhPSJzdHJpbmciP2U6ZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStlLnNsaWNlKDEpfWNvbnN0IGM9KGUscixmKT0+e2NvbnN0IG89RyhmKTtyZXR1cm57W2Ake2UuY29tcG9uZW50Q2xzfSR7ZS5jb21wb25lbnRDbHN9LSR7cn1gXTp7Y29sb3I6ZVtgY29sb3Ike2Z9YF0sYmFja2dyb3VuZDplW2Bjb2xvciR7b31CZ2BdLGJvcmRlckNvbG9yOmVbYGNvbG9yJHtvfUJvcmRlcmBdLFtgJiR7ZS5jb21wb25lbnRDbHN9LWJvcmRlcmxlc3NgXTp7Ym9yZGVyQ29sb3I6InRyYW5zcGFyZW50In19fX07dmFyIEU9KDAsaS5iaykoWyJUYWciLCJzdGF0dXMiXSxlPT57Y29uc3Qgcj11KGUpO3JldHVybltjKHIsInN1Y2Nlc3MiLCJTdWNjZXNzIiksYyhyLCJwcm9jZXNzaW5nIiwiSW5mbyIpLGMociwiZXJyb3IiLCJFcnJvciIpLGMociwid2FybmluZyIsIldhcm5pbmciKV19LGIpLEk9ZnVuY3Rpb24oZSxyKXt2YXIgZj17fTtmb3IodmFyIG8gaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxvKSYmci5pbmRleE9mKG8pPDAmJihmW29dPWVbb10pO2lmKGUhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgZD0wLG89T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtkPG8ubGVuZ3RoO2QrKylyLmluZGV4T2Yob1tkXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsb1tkXSkmJihmW29bZF1dPWVbb1tkXV0pO3JldHVybiBmfTtjb25zdCAkPV8uZm9yd2FyZFJlZigoZSxyKT0+e2NvbnN0e3ByZWZpeENsczpmLGNsYXNzTmFtZTpvLHJvb3RDbGFzc05hbWU6ZCxzdHlsZTpSLGNoaWxkcmVuOlAsaWNvbjpLLGNvbG9yOkIsb25DbG9zZTpWLGJvcmRlcmVkOng9ITAsdmlzaWJsZTpYfT1lLEg9SShlLFsicHJlZml4Q2xzIiwiY2xhc3NOYW1lIiwicm9vdENsYXNzTmFtZSIsInN0eWxlIiwiY2hpbGRyZW4iLCJpY29uIiwiY29sb3IiLCJvbkNsb3NlIiwiYm9yZGVyZWQiLCJ2aXNpYmxlIl0pLHtnZXRQcmVmaXhDbHM6ayxkaXJlY3Rpb246cSx0YWc6d309Xy51c2VDb250ZXh0KFcuRV8pLFtlZSxaXT1fLnVzZVN0YXRlKCEwKSx1ZT0oMCx0LlopKEgsWyJjbG9zZUljb24iLCJjbG9zYWJsZSJdKTtfLnVzZUVmZmVjdCgoKT0+e1ghPT12b2lkIDAmJlooWCl9LFtYXSk7Y29uc3QgdGU9KDAsdi5vMikoQiksYWU9KDAsdi55VCkoQiksbmU9dGV8fGFlLGNlPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7YmFja2dyb3VuZENvbG9yOkImJiFuZT9COnZvaWQgMH0sdz09bnVsbD92b2lkIDA6dy5zdHlsZSksUiksUz1rKCJ0YWciLGYpLFtkZSxfZSxwZV09QyhTKSxtZT1PKCkoUyx3PT1udWxsP3ZvaWQgMDp3LmNsYXNzTmFtZSx7W2Ake1N9LSR7Qn1gXTpuZSxbYCR7U30taGFzLWNvbG9yYF06QiYmIW5lLFtgJHtTfS1oaWRkZW5gXTohZWUsW2Ake1N9LXJ0bGBdOnE9PT0icnRsIixbYCR7U30tYm9yZGVybGVzc2BdOiF4fSxvLGQsX2UscGUpLG9lPXo9Pnt6LnN0b3BQcm9wYWdhdGlvbigpLFY9PW51bGx8fFYoeiksIXouZGVmYXVsdFByZXZlbnRlZCYmWighMSl9LFssZ2VdPSgwLHkuWikoKDAseS53KShlKSwoMCx5LncpKHcpLHtjbG9zYWJsZTohMSxjbG9zZUljb25SZW5kZXI6ej0+e2NvbnN0IGhlPV8uY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpgJHtTfS1jbG9zZS1pY29uYCxvbkNsaWNrOm9lfSx6KTtyZXR1cm4oMCxELndtKSh6LGhlLE49Pih7b25DbGljazppZT0+e3ZhciByZTsocmU9Tj09bnVsbD92b2lkIDA6Ti5vbkNsaWNrKT09PW51bGx8fHJlPT09dm9pZCAwfHxyZS5jYWxsKE4saWUpLG9lKGllKX0sY2xhc3NOYW1lOk8oKShOPT1udWxsP3ZvaWQgMDpOLmNsYXNzTmFtZSxgJHtTfS1jbG9zZS1pY29uYCl9KSl9fSksZmU9dHlwZW9mIEgub25DbGljaz09ImZ1bmN0aW9uInx8UCYmUC50eXBlPT09ImEiLHNlPUt8fG51bGwsYmU9c2U/Xy5jcmVhdGVFbGVtZW50KF8uRnJhZ21lbnQsbnVsbCxzZSxQJiZfLmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwsUCkpOlAsbGU9Xy5jcmVhdGVFbGVtZW50KCJzcGFuIixPYmplY3QuYXNzaWduKHt9LHVlLHtyZWY6cixjbGFzc05hbWU6bWUsc3R5bGU6Y2V9KSxiZSxnZSx0ZSYmXy5jcmVhdGVFbGVtZW50KEose2tleToicHJlc2V0IixwcmVmaXhDbHM6U30pLGFlJiZfLmNyZWF0ZUVsZW1lbnQoRSx7a2V5OiJzdGF0dXMiLHByZWZpeENsczpTfSkpO3JldHVybiBkZShmZT9fLmNyZWF0ZUVsZW1lbnQobS5aLHtjb21wb25lbnQ6IlRhZyJ9LGxlKTpsZSl9KTskLkNoZWNrYWJsZVRhZz1nO3ZhciBZPSR9fV0pOwpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy8zNTQyLmIyMzk0MjMyLmFzeW5jLmpzIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy8zNTQyLmIyMzk0MjMyLmFzeW5jLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg2NTQwZDIKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzM1NDIuYjIzOTQyMzIuYXN5bmMuanMKQEAgLTAsMCArMSBAQAorKHNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W10pLnB1c2goW1szNTQyXSx7MTM1NDI6ZnVuY3Rpb24oKXt9fV0pOwpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy8zNTUzLjM4Y2QxYjIxLmFzeW5jLmpzIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy8zNTUzLjM4Y2QxYjIxLmFzeW5jLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFmNTEwZGUKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzM1NTMuMzhjZDFiMjEuYXN5bmMuanMKQEAgLTAsMCArMSBAQAorInVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvPXNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm98fFtdKS5wdXNoKFtbMzU1MywzNjI4LDgyMTMsMTMxNiwxMjU2XSx7MzExOTk6ZnVuY3Rpb24oWCxELG8pe3ZhciByPW8oMTQxMyksUD1vKDkxKSxnPW8oNjcyOTQpLGY9byg5MjE3OSksTT1vKDg1ODkzKSx4PVsiZmllbGRQcm9wcyIsIm1pbiIsInByb0ZpZWxkUHJvcHMiLCJtYXgiXSx5PWZ1bmN0aW9uKGksUyl7dmFyIEY9aS5maWVsZFByb3BzLHY9aS5taW4sYz1pLnByb0ZpZWxkUHJvcHMscD1pLm1heCxkPSgwLFAuWikoaSx4KTtyZXR1cm4oMCxNLmpzeCkoZi5aLCgwLHIuWikoe3ZhbHVlVHlwZToiZGlnaXQiLGZpZWxkUHJvcHM6KDAsci5aKSh7bWluOnYsbWF4OnB9LEYpLHJlZjpTLGZpbGVkQ29uZmlnOntkZWZhdWx0UHJvcHM6e3dpZHRoOiIxMDAlIn19LHByb0ZpZWxkUHJvcHM6Y30sZCkpfSxiPWcuZm9yd2FyZFJlZih5KTtELlo9Yn0sODY2MTU6ZnVuY3Rpb24oWCxELG8pe3ZhciByPW8oMTQxMyksUD1vKDkxKSxnPW8oMjIyNzApLGY9byg3ODA0NSksTT1vKDY3Mjk0KSx4PW8oOTA3ODkpLHk9byg5MjE3OSksYj1vKDg1ODkzKSxfPVsiZmllbGRQcm9wcyIsIm9wdGlvbnMiLCJyYWRpb1R5cGUiLCJsYXlvdXQiLCJwcm9GaWVsZFByb3BzIiwidmFsdWVFbnVtIl0saT1NLmZvcndhcmRSZWYoZnVuY3Rpb24oYyxwKXt2YXIgZD1jLmZpZWxkUHJvcHMsRT1jLm9wdGlvbnMsST1jLnJhZGlvVHlwZSxzPWMubGF5b3V0LG49Yy5wcm9GaWVsZFByb3BzLGg9Yy52YWx1ZUVudW0sbT0oMCxQLlopKGMsXyk7cmV0dXJuKDAsYi5qc3gpKHkuWiwoMCxyLlopKCgwLHIuWikoe3ZhbHVlVHlwZTpJPT09ImJ1dHRvbiI/InJhZGlvQnV0dG9uIjoicmFkaW8iLHJlZjpwLHZhbHVlRW51bTooMCxnLmgpKGgsdm9pZCAwKX0sbSkse30se2ZpZWxkUHJvcHM6KDAsci5aKSh7b3B0aW9uczpFLGxheW91dDpzfSxkKSxwcm9GaWVsZFByb3BzOm4sZmlsZWRDb25maWc6e2N1c3RvbUxpZ2h0TW9kZTohMH19KSl9KSxTPU0uZm9yd2FyZFJlZihmdW5jdGlvbihjLHApe3ZhciBkPWMuZmllbGRQcm9wcyxFPWMuY2hpbGRyZW47cmV0dXJuKDAsYi5qc3gpKGYuWlAsKDAsci5aKSgoMCxyLlopKHt9LGQpLHt9LHtyZWY6cCxjaGlsZHJlbjpFfSkpfSksRj0oMCx4LkcpKFMse3ZhbHVlUHJvcE5hbWU6ImNoZWNrZWQiLGlnbm9yZVdpZHRoOiEwfSksdj1GO3YuR3JvdXA9aSx2LkJ1dHRvbj1mLlpQLkJ1dHRvbix2LmRpc3BsYXlOYW1lPSJQcm9Gb3JtQ29tcG9uZW50IixELlo9dn0sNjQzMTc6ZnVuY3Rpb24oWCxELG8pe3ZhciByPW8oMTQxMyksUD1vKDkxKSxnPW8oMjIyNzApLGY9byg2NzI5NCksTT1vKDY2NzU4KSx4PW8oOTIxNzkpLHk9byg4NTg5MyksYj1bImZpZWxkUHJvcHMiLCJjaGlsZHJlbiIsInBhcmFtcyIsInByb0ZpZWxkUHJvcHMiLCJtb2RlIiwidmFsdWVFbnVtIiwicmVxdWVzdCIsInNob3dTZWFyY2giLCJvcHRpb25zIl0sXz1bImZpZWxkUHJvcHMiLCJjaGlsZHJlbiIsInBhcmFtcyIsInByb0ZpZWxkUHJvcHMiLCJtb2RlIiwidmFsdWVFbnVtIiwicmVxdWVzdCIsIm9wdGlvbnMiXSxpPWZ1bmN0aW9uKGQsRSl7dmFyIEk9ZC5maWVsZFByb3BzLHM9ZC5jaGlsZHJlbixuPWQucGFyYW1zLGg9ZC5wcm9GaWVsZFByb3BzLG09ZC5tb2RlLFo9ZC52YWx1ZUVudW0sVz1kLnJlcXVlc3Qsaj1kLnNob3dTZWFyY2gsQz1kLm9wdGlvbnMsTD0oMCxQLlopKGQsYiksQT0oMCxmLnVzZUNvbnRleHQpKE0uWik7cmV0dXJuKDAseS5qc3gpKHguWiwoMCxyLlopKCgwLHIuWikoe3ZhbHVlRW51bTooMCxnLmgpKFopLHJlcXVlc3Q6VyxwYXJhbXM6bix2YWx1ZVR5cGU6InNlbGVjdCIsZmlsZWRDb25maWc6e2N1c3RvbUxpZ2h0TW9kZTohMH0sZmllbGRQcm9wczooMCxyLlopKHtvcHRpb25zOkMsbW9kZTptLHNob3dTZWFyY2g6aixnZXRQb3B1cENvbnRhaW5lcjpBLmdldFBvcHVwQ29udGFpbmVyfSxJKSxyZWY6RSxwcm9GaWVsZFByb3BzOmh9LEwpLHt9LHtjaGlsZHJlbjpzfSkpfSxTPWYuZm9yd2FyZFJlZihmdW5jdGlvbihwLGQpe3ZhciBFPXAuZmllbGRQcm9wcyxJPXAuY2hpbGRyZW4scz1wLnBhcmFtcyxuPXAucHJvRmllbGRQcm9wcyxoPXAubW9kZSxtPXAudmFsdWVFbnVtLFo9cC5yZXF1ZXN0LFc9cC5vcHRpb25zLGo9KDAsUC5aKShwLF8pLEM9KDAsci5aKSh7b3B0aW9uczpXLG1vZGU6aHx8Im11bHRpcGxlIixsYWJlbEluVmFsdWU6ITAsc2hvd1NlYXJjaDohMCxzdWZmaXhJY29uOm51bGwsYXV0b0NsZWFyU2VhcmNoVmFsdWU6ITAsb3B0aW9uTGFiZWxQcm9wOiJsYWJlbCJ9LEUpLEw9KDAsZi51c2VDb250ZXh0KShNLlopO3JldHVybigwLHkuanN4KSh4LlosKDAsci5aKSgoMCxyLlopKHt2YWx1ZUVudW06KDAsZy5oKShtKSxyZXF1ZXN0OloscGFyYW1zOnMsdmFsdWVUeXBlOiJzZWxlY3QiLGZpbGVkQ29uZmlnOntjdXN0b21MaWdodE1vZGU6ITB9LGZpZWxkUHJvcHM6KDAsci5aKSh7Z2V0UG9wdXBDb250YWluZXI6TC5nZXRQb3B1cENvbnRhaW5lcn0sQykscmVmOmQscHJvRmllbGRQcm9wczpufSxqKSx7fSx7Y2hpbGRyZW46SX0pKX0pLEY9Zi5mb3J3YXJkUmVmKGkpLHY9UyxjPUY7Yy5TZWFyY2hTZWxlY3Q9dixjLmRpc3BsYXlOYW1lPSJQcm9Gb3JtQ29tcG9uZW50IixELlo9Y30sOTA2NzI6ZnVuY3Rpb24oWCxELG8pe3ZhciByPW8oMTQxMyksUD1vKDkxKSxnPW8oNjcyOTQpLGY9byg5MjE3OSksTT1vKDg1ODkzKSx4PVsiZmllbGRQcm9wcyIsInByb0ZpZWxkUHJvcHMiXSx5PWZ1bmN0aW9uKF8saSl7dmFyIFM9Xy5maWVsZFByb3BzLEY9Xy5wcm9GaWVsZFByb3BzLHY9KDAsUC5aKShfLHgpO3JldHVybigwLE0uanN4KShmLlosKDAsci5aKSh7cmVmOmksdmFsdWVUeXBlOiJ0ZXh0YXJlYSIsZmllbGRQcm9wczpTLHByb0ZpZWxkUHJvcHM6Rn0sdikpfTtELlo9Zy5mb3J3YXJkUmVmKHkpfSw1OTY2OmZ1bmN0aW9uKFgsRCxvKXt2YXIgcj1vKDk3Njg1KSxQPW8oMTQxMyksZz1vKDkxKSxmPW8oMjE3NzApLE09byg5OTg1OSkseD1vKDU1MjQxKSx5PW8oOTg0MjMpLGI9byg2NzI5NCksXz1vKDkyMTc5KSxpPW8oODU4OTMpLFM9WyJmaWVsZFByb3BzIiwicHJvRmllbGRQcm9wcyJdLEY9WyJmaWVsZFByb3BzIiwicHJvRmllbGRQcm9wcyJdLHY9InRleHQiLGM9ZnVuY3Rpb24ocyl7dmFyIG49cy5maWVsZFByb3BzLGg9cy5wcm9GaWVsZFByb3BzLG09KDAsZy5aKShzLFMpO3JldHVybigwLGkuanN4KShfLlosKDAsUC5aKSh7dmFsdWVUeXBlOnYsZmllbGRQcm9wczpuLGZpbGVkQ29uZmlnOnt2YWx1ZVR5cGU6dn0scHJvRmllbGRQcm9wczpofSxtKSl9LHA9ZnVuY3Rpb24ocyl7dmFyIG49KDAsZi5aKShzLm9wZW58fCExLHt2YWx1ZTpzLm9wZW4sb25DaGFuZ2U6cy5vbk9wZW5DaGFuZ2V9KSxoPSgwLHIuWikobiwyKSxtPWhbMF0sWj1oWzFdO3JldHVybigwLGkuanN4KShNLlouSXRlbSx7c2hvdWxkVXBkYXRlOiEwLG5vU3R5bGU6ITAsY2hpbGRyZW46ZnVuY3Rpb24oail7dmFyIEMsTD1qLmdldEZpZWxkVmFsdWUocy5uYW1lfHxbXSk7cmV0dXJuKDAsaS5qc3gpKHguWiwoMCxQLlopKCgwLFAuWikoe2dldFBvcHVwQ29udGFpbmVyOmZ1bmN0aW9uKE8pe3JldHVybiBPJiZPLnBhcmVudE5vZGU/Ty5wYXJlbnROb2RlOk99LG9uT3BlbkNoYW5nZTpmdW5jdGlvbihPKXtyZXR1cm4gWihPKX0sY29udGVudDooMCxpLmpzeHMpKCJkaXYiLHtzdHlsZTp7cGFkZGluZzoiNHB4IDAifSxjaGlsZHJlbjpbKEM9cy5zdGF0dXNSZW5kZXIpPT09bnVsbHx8Qz09PXZvaWQgMD92b2lkIDA6Qy5jYWxsKHMsTCkscy5zdHJlbmd0aFRleHQ/KDAsaS5qc3gpKCJkaXYiLHtzdHlsZTp7bWFyZ2luVG9wOjEwfSxjaGlsZHJlbjooMCxpLmpzeCkoInNwYW4iLHtjaGlsZHJlbjpzLnN0cmVuZ3RoVGV4dH0pfSk6bnVsbF19KSxvdmVybGF5U3R5bGU6e3dpZHRoOjI0MH0scGxhY2VtZW50OiJyaWdodFRvcCJ9LHMucG9wb3ZlclByb3BzKSx7fSx7b3BlbjptLGNoaWxkcmVuOnMuY2hpbGRyZW59KSl9fSl9LGQ9ZnVuY3Rpb24ocyl7dmFyIG49cy5maWVsZFByb3BzLGg9cy5wcm9GaWVsZFByb3BzLG09KDAsZy5aKShzLEYpLFo9KDAsYi51c2VTdGF0ZSkoITEpLFc9KDAsci5aKShaLDIpLGo9V1swXSxDPVdbMV07cmV0dXJuIG4hPW51bGwmJm4uc3RhdHVzUmVuZGVyJiZtLm5hbWU/KDAsaS5qc3gpKHAse25hbWU6bS5uYW1lLHN0YXR1c1JlbmRlcjpuPT1udWxsP3ZvaWQgMDpuLnN0YXR1c1JlbmRlcixwb3BvdmVyUHJvcHM6bj09bnVsbD92b2lkIDA6bi5wb3BvdmVyUHJvcHMsc3RyZW5ndGhUZXh0Om49PW51bGw/dm9pZCAwOm4uc3RyZW5ndGhUZXh0LG9wZW46aixvbk9wZW5DaGFuZ2U6QyxjaGlsZHJlbjooMCxpLmpzeCkoImRpdiIse2NoaWxkcmVuOigwLGkuanN4KShfLlosKDAsUC5aKSh7dmFsdWVUeXBlOiJwYXNzd29yZCIsZmllbGRQcm9wczooMCxQLlopKCgwLFAuWikoe30sKDAseS5aKShuLFsic3RhdHVzUmVuZGVyIiwicG9wb3ZlclByb3BzIiwic3RyZW5ndGhUZXh0Il0pKSx7fSx7b25CbHVyOmZ1bmN0aW9uKEEpe3ZhciBPO249PW51bGx8fChPPW4ub25CbHVyKT09PW51bGx8fE89PT12b2lkIDB8fE8uY2FsbChuLEEpLEMoITEpfSxvbkNsaWNrOmZ1bmN0aW9uKEEpe3ZhciBPO249PW51bGx8fChPPW4ub25DbGljayk9PT1udWxsfHxPPT09dm9pZCAwfHxPLmNhbGwobixBKSxDKCEwKX19KSxwcm9GaWVsZFByb3BzOmgsZmlsZWRDb25maWc6e3ZhbHVlVHlwZTp2fX0sbSkpfSl9KTooMCxpLmpzeCkoXy5aLCgwLFAuWikoe3ZhbHVlVHlwZToicGFzc3dvcmQiLGZpZWxkUHJvcHM6bixwcm9GaWVsZFByb3BzOmgsZmlsZWRDb25maWc6e3ZhbHVlVHlwZTp2fX0sbSkpfSxFPWM7RS5QYXNzd29yZD1kLEUuZGlzcGxheU5hbWU9IlByb0Zvcm1Db21wb25lbnQiLEQuWj1FfSw2NjMwOTpmdW5jdGlvbihYLEQsbyl7by5kKEQse1o6ZnVuY3Rpb24oKXtyZXR1cm4gaWV9fSk7dmFyIHI9byg2NzI5NCksUD1vKDkzOTY3KSxnPW8ubihQKSxmPW8oOTg0MjMpLE09byg5ODc4NykseD1vKDY5NzYwKSx5PW8oOTYxNTkpLGI9byg0NTM1MyksXz1vKDUzMTI0KSxpPW8oMTE1NjgpLFM9bygxNTA2MyksRj1vKDE0NzQ3KSx2PW8oODMyNjIpLGM9byg4MzU1OSk7Y29uc3QgcD1lPT57Y29uc3R7cGFkZGluZ1hYUzphLGxpbmVXaWR0aDp1LHRhZ1BhZGRpbmdIb3Jpem9udGFsOnQsY29tcG9uZW50Q2xzOmwsY2FsYzpSfT1lLFQ9Uih0KS5zdWIodSkuZXF1YWwoKSxOPVIoYSkuc3ViKHUpLmVxdWFsKCk7cmV0dXJue1tsXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sKDAsRi5XZikoZSkpLHtkaXNwbGF5OiJpbmxpbmUtYmxvY2siLGhlaWdodDoiYXV0byIsbWFyZ2luSW5saW5lRW5kOmUubWFyZ2luWFMscGFkZGluZ0lubGluZTpULGZvbnRTaXplOmUudGFnRm9udFNpemUsbGluZUhlaWdodDplLnRhZ0xpbmVIZWlnaHQsd2hpdGVTcGFjZToibm93cmFwIixiYWNrZ3JvdW5kOmUuZGVmYXVsdEJnLGJvcmRlcjpgJHsoMCxpLmJmKShlLmxpbmVXaWR0aCl9ICR7ZS5saW5lVHlwZX0gJHtlLmNvbG9yQm9yZGVyfWAsYm9yZGVyUmFkaXVzOmUuYm9yZGVyUmFkaXVzU00sb3BhY2l0eToxLHRyYW5zaXRpb246YGFsbCAke2UubW90aW9uRHVyYXRpb25NaWR9YCx0ZXh0QWxpZ246InN0YXJ0Iixwb3NpdGlvbjoicmVsYXRpdmUiLFtgJiR7bH0tcnRsYF06e2RpcmVjdGlvbjoicnRsIn0sIiYsIGEsIGE6aG92ZXIiOntjb2xvcjplLmRlZmF1bHRDb2xvcn0sW2Ake2x9LWNsb3NlLWljb25gXTp7bWFyZ2luSW5saW5lU3RhcnQ6Tixmb250U2l6ZTplLnRhZ0ljb25TaXplLGNvbG9yOmUuY29sb3JUZXh0RGVzY3JpcHRpb24sY3Vyc29yOiJwb2ludGVyIix0cmFuc2l0aW9uOmBhbGwgJHtlLm1vdGlvbkR1cmF0aW9uTWlkfWAsIiY6aG92ZXIiOntjb2xvcjplLmNvbG9yVGV4dEhlYWRpbmd9fSxbYCYke2x9LWhhcy1jb2xvcmBdOntib3JkZXJDb2xvcjoidHJhbnNwYXJlbnQiLFtgJiwgYSwgYTpob3ZlciwgJHtlLmljb25DbHN9LWNsb3NlLCAke2UuaWNvbkNsc30tY2xvc2U6aG92ZXJgXTp7Y29sb3I6ZS5jb2xvclRleHRMaWdodFNvbGlkfX0sIiYtY2hlY2thYmxlIjp7YmFja2dyb3VuZENvbG9yOiJ0cmFuc3BhcmVudCIsYm9yZGVyQ29sb3I6InRyYW5zcGFyZW50IixjdXJzb3I6InBvaW50ZXIiLFtgJjpub3QoJHtsfS1jaGVja2FibGUtY2hlY2tlZCk6aG92ZXJgXTp7Y29sb3I6ZS5jb2xvclByaW1hcnksYmFja2dyb3VuZENvbG9yOmUuY29sb3JGaWxsU2Vjb25kYXJ5fSwiJjphY3RpdmUsICYtY2hlY2tlZCI6e2NvbG9yOmUuY29sb3JUZXh0TGlnaHRTb2xpZH0sIiYtY2hlY2tlZCI6e2JhY2tncm91bmRDb2xvcjplLmNvbG9yUHJpbWFyeSwiJjpob3ZlciI6e2JhY2tncm91bmRDb2xvcjplLmNvbG9yUHJpbWFyeUhvdmVyfX0sIiY6YWN0aXZlIjp7YmFja2dyb3VuZENvbG9yOmUuY29sb3JQcmltYXJ5QWN0aXZlfX0sIiYtaGlkZGVuIjp7ZGlzcGxheToibm9uZSJ9LFtgPiAke2UuaWNvbkNsc30gKyBzcGFuLCA+IHNwYW4gKyAke2UuaWNvbkNsc31gXTp7bWFyZ2luSW5saW5lU3RhcnQ6VH19KSxbYCR7bH0tYm9yZGVybGVzc2BdOntib3JkZXJDb2xvcjoidHJhbnNwYXJlbnQiLGJhY2tncm91bmQ6ZS50YWdCb3JkZXJsZXNzQmd9fX0sZD1lPT57Y29uc3R7bGluZVdpZHRoOmEsZm9udFNpemVJY29uOnUsY2FsYzp0fT1lLGw9ZS5mb250U2l6ZVNNO3JldHVybigwLHYuSVgpKGUse3RhZ0ZvbnRTaXplOmwsdGFnTGluZUhlaWdodDooMCxpLmJmKSh0KGUubGluZUhlaWdodFNNKS5tdWwobCkuZXF1YWwoKSksdGFnSWNvblNpemU6dCh1KS5zdWIodChhKS5tdWwoMikpLmVxdWFsKCksdGFnUGFkZGluZ0hvcml6b250YWw6OCx0YWdCb3JkZXJsZXNzQmc6ZS5kZWZhdWx0Qmd9KX0sRT1lPT4oe2RlZmF1bHRCZzpuZXcgUy50KGUuY29sb3JGaWxsUXVhdGVybmFyeSkub25CYWNrZ3JvdW5kKGUuY29sb3JCZ0NvbnRhaW5lcikudG9IZXhTdHJpbmcoKSxkZWZhdWx0Q29sb3I6ZS5jb2xvclRleHR9KTt2YXIgST0oMCxjLkkkKSgiVGFnIixlPT57Y29uc3QgYT1kKGUpO3JldHVybiBwKGEpfSxFKSxzPWZ1bmN0aW9uKGUsYSl7dmFyIHU9e307Zm9yKHZhciB0IGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsdCkmJmEuaW5kZXhPZih0KTwwJiYodVt0XT1lW3RdKTtpZihlIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIGw9MCx0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7bDx0Lmxlbmd0aDtsKyspYS5pbmRleE9mKHRbbF0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLHRbbF0pJiYodVt0W2xdXT1lW3RbbF1dKTtyZXR1cm4gdX0saD1yLmZvcndhcmRSZWYoKGUsYSk9Pntjb25zdHtwcmVmaXhDbHM6dSxzdHlsZTp0LGNsYXNzTmFtZTpsLGNoZWNrZWQ6UixvbkNoYW5nZTpULG9uQ2xpY2s6Tn09ZSxVPXMoZSxbInByZWZpeENscyIsInN0eWxlIiwiY2xhc3NOYW1lIiwiY2hlY2tlZCIsIm9uQ2hhbmdlIiwib25DbGljayJdKSx7Z2V0UHJlZml4Q2xzOkcsdGFnOkt9PXIudXNlQ29udGV4dChfLkVfKSxRPXc9PntUPT1udWxsfHxUKCFSKSxOPT1udWxsfHxOKHcpfSx6PUcoInRhZyIsdSksW0osWSwkXT1JKHopLGs9ZygpKHosYCR7en0tY2hlY2thYmxlYCx7W2Ake3p9LWNoZWNrYWJsZS1jaGVja2VkYF06Un0sSz09bnVsbD92b2lkIDA6Sy5jbGFzc05hbWUsbCxZLCQpO3JldHVybiBKKHIuY3JlYXRlRWxlbWVudCgic3BhbiIsT2JqZWN0LmFzc2lnbih7fSxVLHtyZWY6YSxzdHlsZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCksSz09bnVsbD92b2lkIDA6Sy5zdHlsZSksY2xhc3NOYW1lOmssb25DbGljazpRfSkpKX0pLG09byg5ODcxOSk7Y29uc3QgWj1lPT4oMCxtLlopKGUsKGEsdSk9PntsZXR7dGV4dENvbG9yOnQsbGlnaHRCb3JkZXJDb2xvcjpsLGxpZ2h0Q29sb3I6UixkYXJrQ29sb3I6VH09dTtyZXR1cm57W2Ake2UuY29tcG9uZW50Q2xzfSR7ZS5jb21wb25lbnRDbHN9LSR7YX1gXTp7Y29sb3I6dCxiYWNrZ3JvdW5kOlIsYm9yZGVyQ29sb3I6bCwiJi1pbnZlcnNlIjp7Y29sb3I6ZS5jb2xvclRleHRMaWdodFNvbGlkLGJhY2tncm91bmQ6VCxib3JkZXJDb2xvcjpUfSxbYCYke2UuY29tcG9uZW50Q2xzfS1ib3JkZXJsZXNzYF06e2JvcmRlckNvbG9yOiJ0cmFuc3BhcmVudCJ9fX19KTt2YXIgVz0oMCxjLmJrKShbIlRhZyIsInByZXNldCJdLGU9Pntjb25zdCBhPWQoZSk7cmV0dXJuIFooYSl9LEUpO2Z1bmN0aW9uIGooZSl7cmV0dXJuIHR5cGVvZiBlIT0ic3RyaW5nIj9lOmUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrZS5zbGljZSgxKX1jb25zdCBDPShlLGEsdSk9Pntjb25zdCB0PWoodSk7cmV0dXJue1tgJHtlLmNvbXBvbmVudENsc30ke2UuY29tcG9uZW50Q2xzfS0ke2F9YF06e2NvbG9yOmVbYGNvbG9yJHt1fWBdLGJhY2tncm91bmQ6ZVtgY29sb3Ike3R9QmdgXSxib3JkZXJDb2xvcjplW2Bjb2xvciR7dH1Cb3JkZXJgXSxbYCYke2UuY29tcG9uZW50Q2xzfS1ib3JkZXJsZXNzYF06e2JvcmRlckNvbG9yOiJ0cmFuc3BhcmVudCJ9fX19O3ZhciBMPSgwLGMuYmspKFsiVGFnIiwic3RhdHVzIl0sZT0+e2NvbnN0IGE9ZChlKTtyZXR1cm5bQyhhLCJzdWNjZXNzIiwiU3VjY2VzcyIpLEMoYSwicHJvY2Vzc2luZyIsIkluZm8iKSxDKGEsImVycm9yIiwiRXJyb3IiKSxDKGEsIndhcm5pbmciLCJXYXJuaW5nIildfSxFKSxBPWZ1bmN0aW9uKGUsYSl7dmFyIHU9e307Zm9yKHZhciB0IGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsdCkmJmEuaW5kZXhPZih0KTwwJiYodVt0XT1lW3RdKTtpZihlIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIGw9MCx0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7bDx0Lmxlbmd0aDtsKyspYS5pbmRleE9mKHRbbF0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLHRbbF0pJiYodVt0W2xdXT1lW3RbbF1dKTtyZXR1cm4gdX07Y29uc3Qgb2U9ci5mb3J3YXJkUmVmKChlLGEpPT57Y29uc3R7cHJlZml4Q2xzOnUsY2xhc3NOYW1lOnQscm9vdENsYXNzTmFtZTpsLHN0eWxlOlIsY2hpbGRyZW46VCxpY29uOk4sY29sb3I6VSxvbkNsb3NlOkcsYm9yZGVyZWQ6Sz0hMCx2aXNpYmxlOlF9PWUsej1BKGUsWyJwcmVmaXhDbHMiLCJjbGFzc05hbWUiLCJyb290Q2xhc3NOYW1lIiwic3R5bGUiLCJjaGlsZHJlbiIsImljb24iLCJjb2xvciIsIm9uQ2xvc2UiLCJib3JkZXJlZCIsInZpc2libGUiXSkse2dldFByZWZpeENsczpKLGRpcmVjdGlvbjpZLHRhZzokfT1yLnVzZUNvbnRleHQoXy5FXyksW2ssd109ci51c2VTdGF0ZSghMCksZGU9KDAsZi5aKSh6LFsiY2xvc2VJY29uIiwiY2xvc2FibGUiXSk7ci51c2VFZmZlY3QoKCk9PntRIT09dm9pZCAwJiZ3KFEpfSxbUV0pO2NvbnN0IHJlPSgwLE0ubzIpKFUpLHRlPSgwLE0ueVQpKFUpLHE9cmV8fHRlLGNlPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7YmFja2dyb3VuZENvbG9yOlUmJiFxP1U6dm9pZCAwfSwkPT1udWxsP3ZvaWQgMDokLnN0eWxlKSxSKSxCPUooInRhZyIsdSksW3VlLHBlLFBlXT1JKEIpLHZlPWcoKShCLCQ9PW51bGw/dm9pZCAwOiQuY2xhc3NOYW1lLHtbYCR7Qn0tJHtVfWBdOnEsW2Ake0J9LWhhcy1jb2xvcmBdOlUmJiFxLFtgJHtCfS1oaWRkZW5gXTohayxbYCR7Qn0tcnRsYF06WT09PSJydGwiLFtgJHtCfS1ib3JkZXJsZXNzYF06IUt9LHQsbCxwZSxQZSksbmU9Vj0+e1Yuc3RvcFByb3BhZ2F0aW9uKCksRz09bnVsbHx8RyhWKSwhVi5kZWZhdWx0UHJldmVudGVkJiZ3KCExKX0sWyxtZV09KDAseC5aKSgoMCx4LncpKGUpLCgwLHgudykoJCkse2Nsb3NhYmxlOiExLGNsb3NlSWNvblJlbmRlcjpWPT57Y29uc3QgZmU9ci5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmAke0J9LWNsb3NlLWljb25gLG9uQ2xpY2s6bmV9LFYpO3JldHVybigwLHkud20pKFYsZmUsSD0+KHtvbkNsaWNrOnNlPT57dmFyIGVlOyhlZT1IPT1udWxsP3ZvaWQgMDpILm9uQ2xpY2spPT09bnVsbHx8ZWU9PT12b2lkIDB8fGVlLmNhbGwoSCxzZSksbmUoc2UpfSxjbGFzc05hbWU6ZygpKEg9PW51bGw/dm9pZCAwOkguY2xhc3NOYW1lLGAke0J9LWNsb3NlLWljb25gKX0pKX19KSxDZT10eXBlb2Ygei5vbkNsaWNrPT0iZnVuY3Rpb24ifHxUJiZULnR5cGU9PT0iYSIsbGU9Tnx8bnVsbCxnZT1sZT9yLmNyZWF0ZUVsZW1lbnQoci5GcmFnbWVudCxudWxsLGxlLFQmJnIuY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCxUKSk6VCxhZT1yLmNyZWF0ZUVsZW1lbnQoInNwYW4iLE9iamVjdC5hc3NpZ24oe30sZGUse3JlZjphLGNsYXNzTmFtZTp2ZSxzdHlsZTpjZX0pLGdlLG1lLHJlJiZyLmNyZWF0ZUVsZW1lbnQoVyx7a2V5OiJwcmVzZXQiLHByZWZpeENsczpCfSksdGUmJnIuY3JlYXRlRWxlbWVudChMLHtrZXk6InN0YXR1cyIscHJlZml4Q2xzOkJ9KSk7cmV0dXJuIHVlKENlP3IuY3JlYXRlRWxlbWVudChiLlose2NvbXBvbmVudDoiVGFnIn0sYWUpOmFlKX0pO29lLkNoZWNrYWJsZVRhZz1oO3ZhciBpZT1vZX19XSk7CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzM2MjguOTc0ODIxMzEuYXN5bmMuanMgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzM2MjguOTc0ODIxMzEuYXN5bmMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzU4NmQ0YQotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvMzYyOC45NzQ4MjEzMS5hc3luYy5qcwpAQCAtMCwwICsxIEBACisidXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W10pLnB1c2goW1szNjI4LDM1NTMsODIxMywxMzE2LDEyNTZdLHszMTE5OTpmdW5jdGlvbihYLEQsbyl7dmFyIHI9bygxNDEzKSxQPW8oOTEpLGc9byg2NzI5NCksZj1vKDkyMTc5KSxNPW8oODU4OTMpLHg9WyJmaWVsZFByb3BzIiwibWluIiwicHJvRmllbGRQcm9wcyIsIm1heCJdLHk9ZnVuY3Rpb24oaSxTKXt2YXIgRj1pLmZpZWxkUHJvcHMsdj1pLm1pbixjPWkucHJvRmllbGRQcm9wcyxwPWkubWF4LGQ9KDAsUC5aKShpLHgpO3JldHVybigwLE0uanN4KShmLlosKDAsci5aKSh7dmFsdWVUeXBlOiJkaWdpdCIsZmllbGRQcm9wczooMCxyLlopKHttaW46dixtYXg6cH0sRikscmVmOlMsZmlsZWRDb25maWc6e2RlZmF1bHRQcm9wczp7d2lkdGg6IjEwMCUifX0scHJvRmllbGRQcm9wczpjfSxkKSl9LGI9Zy5mb3J3YXJkUmVmKHkpO0QuWj1ifSw4NjYxNTpmdW5jdGlvbihYLEQsbyl7dmFyIHI9bygxNDEzKSxQPW8oOTEpLGc9bygyMjI3MCksZj1vKDc4MDQ1KSxNPW8oNjcyOTQpLHg9byg5MDc4OSkseT1vKDkyMTc5KSxiPW8oODU4OTMpLF89WyJmaWVsZFByb3BzIiwib3B0aW9ucyIsInJhZGlvVHlwZSIsImxheW91dCIsInByb0ZpZWxkUHJvcHMiLCJ2YWx1ZUVudW0iXSxpPU0uZm9yd2FyZFJlZihmdW5jdGlvbihjLHApe3ZhciBkPWMuZmllbGRQcm9wcyxFPWMub3B0aW9ucyxJPWMucmFkaW9UeXBlLHM9Yy5sYXlvdXQsbj1jLnByb0ZpZWxkUHJvcHMsaD1jLnZhbHVlRW51bSxtPSgwLFAuWikoYyxfKTtyZXR1cm4oMCxiLmpzeCkoeS5aLCgwLHIuWikoKDAsci5aKSh7dmFsdWVUeXBlOkk9PT0iYnV0dG9uIj8icmFkaW9CdXR0b24iOiJyYWRpbyIscmVmOnAsdmFsdWVFbnVtOigwLGcuaCkoaCx2b2lkIDApfSxtKSx7fSx7ZmllbGRQcm9wczooMCxyLlopKHtvcHRpb25zOkUsbGF5b3V0OnN9LGQpLHByb0ZpZWxkUHJvcHM6bixmaWxlZENvbmZpZzp7Y3VzdG9tTGlnaHRNb2RlOiEwfX0pKX0pLFM9TS5mb3J3YXJkUmVmKGZ1bmN0aW9uKGMscCl7dmFyIGQ9Yy5maWVsZFByb3BzLEU9Yy5jaGlsZHJlbjtyZXR1cm4oMCxiLmpzeCkoZi5aUCwoMCxyLlopKCgwLHIuWikoe30sZCkse30se3JlZjpwLGNoaWxkcmVuOkV9KSl9KSxGPSgwLHguRykoUyx7dmFsdWVQcm9wTmFtZToiY2hlY2tlZCIsaWdub3JlV2lkdGg6ITB9KSx2PUY7di5Hcm91cD1pLHYuQnV0dG9uPWYuWlAuQnV0dG9uLHYuZGlzcGxheU5hbWU9IlByb0Zvcm1Db21wb25lbnQiLEQuWj12fSw2NDMxNzpmdW5jdGlvbihYLEQsbyl7dmFyIHI9bygxNDEzKSxQPW8oOTEpLGc9bygyMjI3MCksZj1vKDY3Mjk0KSxNPW8oNjY3NTgpLHg9byg5MjE3OSkseT1vKDg1ODkzKSxiPVsiZmllbGRQcm9wcyIsImNoaWxkcmVuIiwicGFyYW1zIiwicHJvRmllbGRQcm9wcyIsIm1vZGUiLCJ2YWx1ZUVudW0iLCJyZXF1ZXN0Iiwic2hvd1NlYXJjaCIsIm9wdGlvbnMiXSxfPVsiZmllbGRQcm9wcyIsImNoaWxkcmVuIiwicGFyYW1zIiwicHJvRmllbGRQcm9wcyIsIm1vZGUiLCJ2YWx1ZUVudW0iLCJyZXF1ZXN0Iiwib3B0aW9ucyJdLGk9ZnVuY3Rpb24oZCxFKXt2YXIgST1kLmZpZWxkUHJvcHMscz1kLmNoaWxkcmVuLG49ZC5wYXJhbXMsaD1kLnByb0ZpZWxkUHJvcHMsbT1kLm1vZGUsWj1kLnZhbHVlRW51bSxXPWQucmVxdWVzdCxqPWQuc2hvd1NlYXJjaCxDPWQub3B0aW9ucyxMPSgwLFAuWikoZCxiKSxBPSgwLGYudXNlQ29udGV4dCkoTS5aKTtyZXR1cm4oMCx5LmpzeCkoeC5aLCgwLHIuWikoKDAsci5aKSh7dmFsdWVFbnVtOigwLGcuaCkoWikscmVxdWVzdDpXLHBhcmFtczpuLHZhbHVlVHlwZToic2VsZWN0IixmaWxlZENvbmZpZzp7Y3VzdG9tTGlnaHRNb2RlOiEwfSxmaWVsZFByb3BzOigwLHIuWikoe29wdGlvbnM6Qyxtb2RlOm0sc2hvd1NlYXJjaDpqLGdldFBvcHVwQ29udGFpbmVyOkEuZ2V0UG9wdXBDb250YWluZXJ9LEkpLHJlZjpFLHByb0ZpZWxkUHJvcHM6aH0sTCkse30se2NoaWxkcmVuOnN9KSl9LFM9Zi5mb3J3YXJkUmVmKGZ1bmN0aW9uKHAsZCl7dmFyIEU9cC5maWVsZFByb3BzLEk9cC5jaGlsZHJlbixzPXAucGFyYW1zLG49cC5wcm9GaWVsZFByb3BzLGg9cC5tb2RlLG09cC52YWx1ZUVudW0sWj1wLnJlcXVlc3QsVz1wLm9wdGlvbnMsaj0oMCxQLlopKHAsXyksQz0oMCxyLlopKHtvcHRpb25zOlcsbW9kZTpofHwibXVsdGlwbGUiLGxhYmVsSW5WYWx1ZTohMCxzaG93U2VhcmNoOiEwLHN1ZmZpeEljb246bnVsbCxhdXRvQ2xlYXJTZWFyY2hWYWx1ZTohMCxvcHRpb25MYWJlbFByb3A6ImxhYmVsIn0sRSksTD0oMCxmLnVzZUNvbnRleHQpKE0uWik7cmV0dXJuKDAseS5qc3gpKHguWiwoMCxyLlopKCgwLHIuWikoe3ZhbHVlRW51bTooMCxnLmgpKG0pLHJlcXVlc3Q6WixwYXJhbXM6cyx2YWx1ZVR5cGU6InNlbGVjdCIsZmlsZWRDb25maWc6e2N1c3RvbUxpZ2h0TW9kZTohMH0sZmllbGRQcm9wczooMCxyLlopKHtnZXRQb3B1cENvbnRhaW5lcjpMLmdldFBvcHVwQ29udGFpbmVyfSxDKSxyZWY6ZCxwcm9GaWVsZFByb3BzOm59LGopLHt9LHtjaGlsZHJlbjpJfSkpfSksRj1mLmZvcndhcmRSZWYoaSksdj1TLGM9RjtjLlNlYXJjaFNlbGVjdD12LGMuZGlzcGxheU5hbWU9IlByb0Zvcm1Db21wb25lbnQiLEQuWj1jfSw5MDY3MjpmdW5jdGlvbihYLEQsbyl7dmFyIHI9bygxNDEzKSxQPW8oOTEpLGc9byg2NzI5NCksZj1vKDkyMTc5KSxNPW8oODU4OTMpLHg9WyJmaWVsZFByb3BzIiwicHJvRmllbGRQcm9wcyJdLHk9ZnVuY3Rpb24oXyxpKXt2YXIgUz1fLmZpZWxkUHJvcHMsRj1fLnByb0ZpZWxkUHJvcHMsdj0oMCxQLlopKF8seCk7cmV0dXJuKDAsTS5qc3gpKGYuWiwoMCxyLlopKHtyZWY6aSx2YWx1ZVR5cGU6InRleHRhcmVhIixmaWVsZFByb3BzOlMscHJvRmllbGRQcm9wczpGfSx2KSl9O0QuWj1nLmZvcndhcmRSZWYoeSl9LDU5NjY6ZnVuY3Rpb24oWCxELG8pe3ZhciByPW8oOTc2ODUpLFA9bygxNDEzKSxnPW8oOTEpLGY9bygyMTc3MCksTT1vKDk5ODU5KSx4PW8oNTUyNDEpLHk9byg5ODQyMyksYj1vKDY3Mjk0KSxfPW8oOTIxNzkpLGk9byg4NTg5MyksUz1bImZpZWxkUHJvcHMiLCJwcm9GaWVsZFByb3BzIl0sRj1bImZpZWxkUHJvcHMiLCJwcm9GaWVsZFByb3BzIl0sdj0idGV4dCIsYz1mdW5jdGlvbihzKXt2YXIgbj1zLmZpZWxkUHJvcHMsaD1zLnByb0ZpZWxkUHJvcHMsbT0oMCxnLlopKHMsUyk7cmV0dXJuKDAsaS5qc3gpKF8uWiwoMCxQLlopKHt2YWx1ZVR5cGU6dixmaWVsZFByb3BzOm4sZmlsZWRDb25maWc6e3ZhbHVlVHlwZTp2fSxwcm9GaWVsZFByb3BzOmh9LG0pKX0scD1mdW5jdGlvbihzKXt2YXIgbj0oMCxmLlopKHMub3Blbnx8ITEse3ZhbHVlOnMub3BlbixvbkNoYW5nZTpzLm9uT3BlbkNoYW5nZX0pLGg9KDAsci5aKShuLDIpLG09aFswXSxaPWhbMV07cmV0dXJuKDAsaS5qc3gpKE0uWi5JdGVtLHtzaG91bGRVcGRhdGU6ITAsbm9TdHlsZTohMCxjaGlsZHJlbjpmdW5jdGlvbihqKXt2YXIgQyxMPWouZ2V0RmllbGRWYWx1ZShzLm5hbWV8fFtdKTtyZXR1cm4oMCxpLmpzeCkoeC5aLCgwLFAuWikoKDAsUC5aKSh7Z2V0UG9wdXBDb250YWluZXI6ZnVuY3Rpb24oTyl7cmV0dXJuIE8mJk8ucGFyZW50Tm9kZT9PLnBhcmVudE5vZGU6T30sb25PcGVuQ2hhbmdlOmZ1bmN0aW9uKE8pe3JldHVybiBaKE8pfSxjb250ZW50OigwLGkuanN4cykoImRpdiIse3N0eWxlOntwYWRkaW5nOiI0cHggMCJ9LGNoaWxkcmVuOlsoQz1zLnN0YXR1c1JlbmRlcik9PT1udWxsfHxDPT09dm9pZCAwP3ZvaWQgMDpDLmNhbGwocyxMKSxzLnN0cmVuZ3RoVGV4dD8oMCxpLmpzeCkoImRpdiIse3N0eWxlOnttYXJnaW5Ub3A6MTB9LGNoaWxkcmVuOigwLGkuanN4KSgic3BhbiIse2NoaWxkcmVuOnMuc3RyZW5ndGhUZXh0fSl9KTpudWxsXX0pLG92ZXJsYXlTdHlsZTp7d2lkdGg6MjQwfSxwbGFjZW1lbnQ6InJpZ2h0VG9wIn0scy5wb3BvdmVyUHJvcHMpLHt9LHtvcGVuOm0sY2hpbGRyZW46cy5jaGlsZHJlbn0pKX19KX0sZD1mdW5jdGlvbihzKXt2YXIgbj1zLmZpZWxkUHJvcHMsaD1zLnByb0ZpZWxkUHJvcHMsbT0oMCxnLlopKHMsRiksWj0oMCxiLnVzZVN0YXRlKSghMSksVz0oMCxyLlopKFosMiksaj1XWzBdLEM9V1sxXTtyZXR1cm4gbiE9bnVsbCYmbi5zdGF0dXNSZW5kZXImJm0ubmFtZT8oMCxpLmpzeCkocCx7bmFtZTptLm5hbWUsc3RhdHVzUmVuZGVyOm49PW51bGw/dm9pZCAwOm4uc3RhdHVzUmVuZGVyLHBvcG92ZXJQcm9wczpuPT1udWxsP3ZvaWQgMDpuLnBvcG92ZXJQcm9wcyxzdHJlbmd0aFRleHQ6bj09bnVsbD92b2lkIDA6bi5zdHJlbmd0aFRleHQsb3BlbjpqLG9uT3BlbkNoYW5nZTpDLGNoaWxkcmVuOigwLGkuanN4KSgiZGl2Iix7Y2hpbGRyZW46KDAsaS5qc3gpKF8uWiwoMCxQLlopKHt2YWx1ZVR5cGU6InBhc3N3b3JkIixmaWVsZFByb3BzOigwLFAuWikoKDAsUC5aKSh7fSwoMCx5LlopKG4sWyJzdGF0dXNSZW5kZXIiLCJwb3BvdmVyUHJvcHMiLCJzdHJlbmd0aFRleHQiXSkpLHt9LHtvbkJsdXI6ZnVuY3Rpb24oQSl7dmFyIE87bj09bnVsbHx8KE89bi5vbkJsdXIpPT09bnVsbHx8Tz09PXZvaWQgMHx8Ty5jYWxsKG4sQSksQyghMSl9LG9uQ2xpY2s6ZnVuY3Rpb24oQSl7dmFyIE87bj09bnVsbHx8KE89bi5vbkNsaWNrKT09PW51bGx8fE89PT12b2lkIDB8fE8uY2FsbChuLEEpLEMoITApfX0pLHByb0ZpZWxkUHJvcHM6aCxmaWxlZENvbmZpZzp7dmFsdWVUeXBlOnZ9fSxtKSl9KX0pOigwLGkuanN4KShfLlosKDAsUC5aKSh7dmFsdWVUeXBlOiJwYXNzd29yZCIsZmllbGRQcm9wczpuLHByb0ZpZWxkUHJvcHM6aCxmaWxlZENvbmZpZzp7dmFsdWVUeXBlOnZ9fSxtKSl9LEU9YztFLlBhc3N3b3JkPWQsRS5kaXNwbGF5TmFtZT0iUHJvRm9ybUNvbXBvbmVudCIsRC5aPUV9LDY2MzA5OmZ1bmN0aW9uKFgsRCxvKXtvLmQoRCx7WjpmdW5jdGlvbigpe3JldHVybiBpZX19KTt2YXIgcj1vKDY3Mjk0KSxQPW8oOTM5NjcpLGc9by5uKFApLGY9byg5ODQyMyksTT1vKDk4Nzg3KSx4PW8oNjk3NjApLHk9byg5NjE1OSksYj1vKDQ1MzUzKSxfPW8oNTMxMjQpLGk9bygxMTU2OCksUz1vKDE1MDYzKSxGPW8oMTQ3NDcpLHY9byg4MzI2MiksYz1vKDgzNTU5KTtjb25zdCBwPWU9Pntjb25zdHtwYWRkaW5nWFhTOmEsbGluZVdpZHRoOnUsdGFnUGFkZGluZ0hvcml6b250YWw6dCxjb21wb25lbnRDbHM6bCxjYWxjOlJ9PWUsVD1SKHQpLnN1Yih1KS5lcXVhbCgpLE49UihhKS5zdWIodSkuZXF1YWwoKTtyZXR1cm57W2xdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwoMCxGLldmKShlKSkse2Rpc3BsYXk6ImlubGluZS1ibG9jayIsaGVpZ2h0OiJhdXRvIixtYXJnaW5JbmxpbmVFbmQ6ZS5tYXJnaW5YUyxwYWRkaW5nSW5saW5lOlQsZm9udFNpemU6ZS50YWdGb250U2l6ZSxsaW5lSGVpZ2h0OmUudGFnTGluZUhlaWdodCx3aGl0ZVNwYWNlOiJub3dyYXAiLGJhY2tncm91bmQ6ZS5kZWZhdWx0QmcsYm9yZGVyOmAkeygwLGkuYmYpKGUubGluZVdpZHRoKX0gJHtlLmxpbmVUeXBlfSAke2UuY29sb3JCb3JkZXJ9YCxib3JkZXJSYWRpdXM6ZS5ib3JkZXJSYWRpdXNTTSxvcGFjaXR5OjEsdHJhbnNpdGlvbjpgYWxsICR7ZS5tb3Rpb25EdXJhdGlvbk1pZH1gLHRleHRBbGlnbjoic3RhcnQiLHBvc2l0aW9uOiJyZWxhdGl2ZSIsW2AmJHtsfS1ydGxgXTp7ZGlyZWN0aW9uOiJydGwifSwiJiwgYSwgYTpob3ZlciI6e2NvbG9yOmUuZGVmYXVsdENvbG9yfSxbYCR7bH0tY2xvc2UtaWNvbmBdOnttYXJnaW5JbmxpbmVTdGFydDpOLGZvbnRTaXplOmUudGFnSWNvblNpemUsY29sb3I6ZS5jb2xvclRleHREZXNjcmlwdGlvbixjdXJzb3I6InBvaW50ZXIiLHRyYW5zaXRpb246YGFsbCAke2UubW90aW9uRHVyYXRpb25NaWR9YCwiJjpob3ZlciI6e2NvbG9yOmUuY29sb3JUZXh0SGVhZGluZ319LFtgJiR7bH0taGFzLWNvbG9yYF06e2JvcmRlckNvbG9yOiJ0cmFuc3BhcmVudCIsW2AmLCBhLCBhOmhvdmVyLCAke2UuaWNvbkNsc30tY2xvc2UsICR7ZS5pY29uQ2xzfS1jbG9zZTpob3ZlcmBdOntjb2xvcjplLmNvbG9yVGV4dExpZ2h0U29saWR9fSwiJi1jaGVja2FibGUiOntiYWNrZ3JvdW5kQ29sb3I6InRyYW5zcGFyZW50Iixib3JkZXJDb2xvcjoidHJhbnNwYXJlbnQiLGN1cnNvcjoicG9pbnRlciIsW2AmOm5vdCgke2x9LWNoZWNrYWJsZS1jaGVja2VkKTpob3ZlcmBdOntjb2xvcjplLmNvbG9yUHJpbWFyeSxiYWNrZ3JvdW5kQ29sb3I6ZS5jb2xvckZpbGxTZWNvbmRhcnl9LCImOmFjdGl2ZSwgJi1jaGVja2VkIjp7Y29sb3I6ZS5jb2xvclRleHRMaWdodFNvbGlkfSwiJi1jaGVja2VkIjp7YmFja2dyb3VuZENvbG9yOmUuY29sb3JQcmltYXJ5LCImOmhvdmVyIjp7YmFja2dyb3VuZENvbG9yOmUuY29sb3JQcmltYXJ5SG92ZXJ9fSwiJjphY3RpdmUiOntiYWNrZ3JvdW5kQ29sb3I6ZS5jb2xvclByaW1hcnlBY3RpdmV9fSwiJi1oaWRkZW4iOntkaXNwbGF5OiJub25lIn0sW2A+ICR7ZS5pY29uQ2xzfSArIHNwYW4sID4gc3BhbiArICR7ZS5pY29uQ2xzfWBdOnttYXJnaW5JbmxpbmVTdGFydDpUfX0pLFtgJHtsfS1ib3JkZXJsZXNzYF06e2JvcmRlckNvbG9yOiJ0cmFuc3BhcmVudCIsYmFja2dyb3VuZDplLnRhZ0JvcmRlcmxlc3NCZ319fSxkPWU9Pntjb25zdHtsaW5lV2lkdGg6YSxmb250U2l6ZUljb246dSxjYWxjOnR9PWUsbD1lLmZvbnRTaXplU007cmV0dXJuKDAsdi5JWCkoZSx7dGFnRm9udFNpemU6bCx0YWdMaW5lSGVpZ2h0OigwLGkuYmYpKHQoZS5saW5lSGVpZ2h0U00pLm11bChsKS5lcXVhbCgpKSx0YWdJY29uU2l6ZTp0KHUpLnN1Yih0KGEpLm11bCgyKSkuZXF1YWwoKSx0YWdQYWRkaW5nSG9yaXpvbnRhbDo4LHRhZ0JvcmRlcmxlc3NCZzplLmRlZmF1bHRCZ30pfSxFPWU9Pih7ZGVmYXVsdEJnOm5ldyBTLnQoZS5jb2xvckZpbGxRdWF0ZXJuYXJ5KS5vbkJhY2tncm91bmQoZS5jb2xvckJnQ29udGFpbmVyKS50b0hleFN0cmluZygpLGRlZmF1bHRDb2xvcjplLmNvbG9yVGV4dH0pO3ZhciBJPSgwLGMuSSQpKCJUYWciLGU9Pntjb25zdCBhPWQoZSk7cmV0dXJuIHAoYSl9LEUpLHM9ZnVuY3Rpb24oZSxhKXt2YXIgdT17fTtmb3IodmFyIHQgaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSx0KSYmYS5pbmRleE9mKHQpPDAmJih1W3RdPWVbdF0pO2lmKGUhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgbD0wLHQ9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtsPHQubGVuZ3RoO2wrKylhLmluZGV4T2YodFtsXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsdFtsXSkmJih1W3RbbF1dPWVbdFtsXV0pO3JldHVybiB1fSxoPXIuZm9yd2FyZFJlZigoZSxhKT0+e2NvbnN0e3ByZWZpeENsczp1LHN0eWxlOnQsY2xhc3NOYW1lOmwsY2hlY2tlZDpSLG9uQ2hhbmdlOlQsb25DbGljazpOfT1lLFU9cyhlLFsicHJlZml4Q2xzIiwic3R5bGUiLCJjbGFzc05hbWUiLCJjaGVja2VkIiwib25DaGFuZ2UiLCJvbkNsaWNrIl0pLHtnZXRQcmVmaXhDbHM6Ryx0YWc6S309ci51c2VDb250ZXh0KF8uRV8pLFE9dz0+e1Q9PW51bGx8fFQoIVIpLE49PW51bGx8fE4odyl9LHo9RygidGFnIix1KSxbSixZLCRdPUkoeiksaz1nKCkoeixgJHt6fS1jaGVja2FibGVgLHtbYCR7en0tY2hlY2thYmxlLWNoZWNrZWRgXTpSfSxLPT1udWxsP3ZvaWQgMDpLLmNsYXNzTmFtZSxsLFksJCk7cmV0dXJuIEooci5jcmVhdGVFbGVtZW50KCJzcGFuIixPYmplY3QuYXNzaWduKHt9LFUse3JlZjphLHN0eWxlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSxLPT1udWxsP3ZvaWQgMDpLLnN0eWxlKSxjbGFzc05hbWU6ayxvbkNsaWNrOlF9KSkpfSksbT1vKDk4NzE5KTtjb25zdCBaPWU9PigwLG0uWikoZSwoYSx1KT0+e2xldHt0ZXh0Q29sb3I6dCxsaWdodEJvcmRlckNvbG9yOmwsbGlnaHRDb2xvcjpSLGRhcmtDb2xvcjpUfT11O3JldHVybntbYCR7ZS5jb21wb25lbnRDbHN9JHtlLmNvbXBvbmVudENsc30tJHthfWBdOntjb2xvcjp0LGJhY2tncm91bmQ6Uixib3JkZXJDb2xvcjpsLCImLWludmVyc2UiOntjb2xvcjplLmNvbG9yVGV4dExpZ2h0U29saWQsYmFja2dyb3VuZDpULGJvcmRlckNvbG9yOlR9LFtgJiR7ZS5jb21wb25lbnRDbHN9LWJvcmRlcmxlc3NgXTp7Ym9yZGVyQ29sb3I6InRyYW5zcGFyZW50In19fX0pO3ZhciBXPSgwLGMuYmspKFsiVGFnIiwicHJlc2V0Il0sZT0+e2NvbnN0IGE9ZChlKTtyZXR1cm4gWihhKX0sRSk7ZnVuY3Rpb24gaihlKXtyZXR1cm4gdHlwZW9mIGUhPSJzdHJpbmciP2U6ZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStlLnNsaWNlKDEpfWNvbnN0IEM9KGUsYSx1KT0+e2NvbnN0IHQ9aih1KTtyZXR1cm57W2Ake2UuY29tcG9uZW50Q2xzfSR7ZS5jb21wb25lbnRDbHN9LSR7YX1gXTp7Y29sb3I6ZVtgY29sb3Ike3V9YF0sYmFja2dyb3VuZDplW2Bjb2xvciR7dH1CZ2BdLGJvcmRlckNvbG9yOmVbYGNvbG9yJHt0fUJvcmRlcmBdLFtgJiR7ZS5jb21wb25lbnRDbHN9LWJvcmRlcmxlc3NgXTp7Ym9yZGVyQ29sb3I6InRyYW5zcGFyZW50In19fX07dmFyIEw9KDAsYy5iaykoWyJUYWciLCJzdGF0dXMiXSxlPT57Y29uc3QgYT1kKGUpO3JldHVybltDKGEsInN1Y2Nlc3MiLCJTdWNjZXNzIiksQyhhLCJwcm9jZXNzaW5nIiwiSW5mbyIpLEMoYSwiZXJyb3IiLCJFcnJvciIpLEMoYSwid2FybmluZyIsIldhcm5pbmciKV19LEUpLEE9ZnVuY3Rpb24oZSxhKXt2YXIgdT17fTtmb3IodmFyIHQgaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSx0KSYmYS5pbmRleE9mKHQpPDAmJih1W3RdPWVbdF0pO2lmKGUhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgbD0wLHQ9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtsPHQubGVuZ3RoO2wrKylhLmluZGV4T2YodFtsXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsdFtsXSkmJih1W3RbbF1dPWVbdFtsXV0pO3JldHVybiB1fTtjb25zdCBvZT1yLmZvcndhcmRSZWYoKGUsYSk9Pntjb25zdHtwcmVmaXhDbHM6dSxjbGFzc05hbWU6dCxyb290Q2xhc3NOYW1lOmwsc3R5bGU6UixjaGlsZHJlbjpULGljb246Tixjb2xvcjpVLG9uQ2xvc2U6Ryxib3JkZXJlZDpLPSEwLHZpc2libGU6UX09ZSx6PUEoZSxbInByZWZpeENscyIsImNsYXNzTmFtZSIsInJvb3RDbGFzc05hbWUiLCJzdHlsZSIsImNoaWxkcmVuIiwiaWNvbiIsImNvbG9yIiwib25DbG9zZSIsImJvcmRlcmVkIiwidmlzaWJsZSJdKSx7Z2V0UHJlZml4Q2xzOkosZGlyZWN0aW9uOlksdGFnOiR9PXIudXNlQ29udGV4dChfLkVfKSxbayx3XT1yLnVzZVN0YXRlKCEwKSxkZT0oMCxmLlopKHosWyJjbG9zZUljb24iLCJjbG9zYWJsZSJdKTtyLnVzZUVmZmVjdCgoKT0+e1EhPT12b2lkIDAmJncoUSl9LFtRXSk7Y29uc3QgcmU9KDAsTS5vMikoVSksdGU9KDAsTS55VCkoVSkscT1yZXx8dGUsY2U9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHtiYWNrZ3JvdW5kQ29sb3I6VSYmIXE/VTp2b2lkIDB9LCQ9PW51bGw/dm9pZCAwOiQuc3R5bGUpLFIpLEI9SigidGFnIix1KSxbdWUscGUsUGVdPUkoQiksdmU9ZygpKEIsJD09bnVsbD92b2lkIDA6JC5jbGFzc05hbWUse1tgJHtCfS0ke1V9YF06cSxbYCR7Qn0taGFzLWNvbG9yYF06VSYmIXEsW2Ake0J9LWhpZGRlbmBdOiFrLFtgJHtCfS1ydGxgXTpZPT09InJ0bCIsW2Ake0J9LWJvcmRlcmxlc3NgXTohS30sdCxsLHBlLFBlKSxuZT1WPT57Vi5zdG9wUHJvcGFnYXRpb24oKSxHPT1udWxsfHxHKFYpLCFWLmRlZmF1bHRQcmV2ZW50ZWQmJncoITEpfSxbLG1lXT0oMCx4LlopKCgwLHgudykoZSksKDAseC53KSgkKSx7Y2xvc2FibGU6ITEsY2xvc2VJY29uUmVuZGVyOlY9Pntjb25zdCBmZT1yLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6YCR7Qn0tY2xvc2UtaWNvbmAsb25DbGljazpuZX0sVik7cmV0dXJuKDAseS53bSkoVixmZSxIPT4oe29uQ2xpY2s6c2U9Pnt2YXIgZWU7KGVlPUg9PW51bGw/dm9pZCAwOkgub25DbGljayk9PT1udWxsfHxlZT09PXZvaWQgMHx8ZWUuY2FsbChILHNlKSxuZShzZSl9LGNsYXNzTmFtZTpnKCkoSD09bnVsbD92b2lkIDA6SC5jbGFzc05hbWUsYCR7Qn0tY2xvc2UtaWNvbmApfSkpfX0pLENlPXR5cGVvZiB6Lm9uQ2xpY2s9PSJmdW5jdGlvbiJ8fFQmJlQudHlwZT09PSJhIixsZT1OfHxudWxsLGdlPWxlP3IuY3JlYXRlRWxlbWVudChyLkZyYWdtZW50LG51bGwsbGUsVCYmci5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLFQpKTpULGFlPXIuY3JlYXRlRWxlbWVudCgic3BhbiIsT2JqZWN0LmFzc2lnbih7fSxkZSx7cmVmOmEsY2xhc3NOYW1lOnZlLHN0eWxlOmNlfSksZ2UsbWUscmUmJnIuY3JlYXRlRWxlbWVudChXLHtrZXk6InByZXNldCIscHJlZml4Q2xzOkJ9KSx0ZSYmci5jcmVhdGVFbGVtZW50KEwse2tleToic3RhdHVzIixwcmVmaXhDbHM6Qn0pKTtyZXR1cm4gdWUoQ2U/ci5jcmVhdGVFbGVtZW50KGIuWix7Y29tcG9uZW50OiJUYWcifSxhZSk6YWUpfSk7b2UuQ2hlY2thYmxlVGFnPWg7dmFyIGllPW9lfX1dKTsKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvMzc5OS4wNDYyNzg4NC5hc3luYy5qcyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvMzc5OS4wNDYyNzg4NC5hc3luYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YjczYTY1Ci0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy8zNzk5LjA0NjI3ODg0LmFzeW5jLmpzCkBAIC0wLDAgKzEsMjEgQEAKKyJ1c2Ugc3RyaWN0Ijsoc2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Bybz1zZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvfHxbXSkucHVzaChbWzM3OTldLHsyMzc5OTpmdW5jdGlvbihkcixRZSxtKXttLmQoUWUse1o6ZnVuY3Rpb24oKXtyZXR1cm4ga3R9fSk7dmFyIGw9bSg2NzI5NCksaz1tKDc0OTAyKSxSZT1tKDczOTM1KSxxZT1tKDkzOTY3KSx6PW0ubihxZSksd2U9bSg4NzQ2MiksamU9bSgxNTY3MSksVWU9bSg0MzE0NCksWD1tKDk3MzI2KSxOZT1tKDYwMTM2KSxMZT1tKDI5Mzg4KSxOPW0oNDk0Miksa2U9bSgxNDEzKSxfZT1tKDkxKSxldD1tKDcxMDAyKSxXPW0oNzQxNjUpLHBlPW0oMTU4NjEpLHR0PW0oNjQyMTcpLHJ0PW0oODAzMzQpLENlPWZ1bmN0aW9uKGUscil7aWYoZSYmcil7dmFyIGE9QXJyYXkuaXNBcnJheShyKT9yOnIuc3BsaXQoIiwiKSxuPWUubmFtZXx8IiIsbz1lLnR5cGV8fCIiLGk9by5yZXBsYWNlKC9cLy4qJC8sIiIpO3JldHVybiBhLnNvbWUoZnVuY3Rpb24ocyl7dmFyIHQ9cy50cmltKCk7aWYoL15cKihcL1wqKT8kLy50ZXN0KHMpKXJldHVybiEwO2lmKHQuY2hhckF0KDApPT09Ii4iKXt2YXIgcD1uLnRvTG93ZXJDYXNlKCksZD10LnRvTG93ZXJDYXNlKCksdT1bZF07cmV0dXJuKGQ9PT0iLmpwZyJ8fGQ9PT0iLmpwZWciKSYmKHU9WyIuanBnIiwiLmpwZWciXSksdS5zb21lKGZ1bmN0aW9uKGYpe3JldHVybiBwLmVuZHNXaXRoKGYpfSl9cmV0dXJuL1wvXCokLy50ZXN0KHQpP2k9PT10LnJlcGxhY2UoL1wvLiokLywiIik6bz09PXQ/ITA6L15cdyskLy50ZXN0KHQpPygoMCxydC5aUCkoITEsIlVwbG9hZCB0YWtlcyBhbiBpbnZhbGlkYXRlICdhY2NlcHQnIHR5cGUgJyIuY29uY2F0KHQsIicuU2tpcCBmb3IgY2hlY2suIikpLCEwKTohMX0pfXJldHVybiEwfTtmdW5jdGlvbiBudChlLHIpe3ZhciBhPSJjYW5ub3QgIi5jb25jYXQoZS5tZXRob2QsIiAiKS5jb25jYXQoZS5hY3Rpb24sIiAiKS5jb25jYXQoci5zdGF0dXMsIiciKSxuPW5ldyBFcnJvcihhKTtyZXR1cm4gbi5zdGF0dXM9ci5zdGF0dXMsbi5tZXRob2Q9ZS5tZXRob2Qsbi51cmw9ZS5hY3Rpb24sbn1mdW5jdGlvbiBUZShlKXt2YXIgcj1lLnJlc3BvbnNlVGV4dHx8ZS5yZXNwb25zZTtpZighcilyZXR1cm4gcjt0cnl7cmV0dXJuIEpTT04ucGFyc2Uocil9Y2F0Y2goYSl7cmV0dXJuIHJ9fWZ1bmN0aW9uIGF0KGUpe3ZhciByPW5ldyBYTUxIdHRwUmVxdWVzdDtlLm9uUHJvZ3Jlc3MmJnIudXBsb2FkJiYoci51cGxvYWQub25wcm9ncmVzcz1mdW5jdGlvbihpKXtpLnRvdGFsPjAmJihpLnBlcmNlbnQ9aS5sb2FkZWQvaS50b3RhbCoxMDApLGUub25Qcm9ncmVzcyhpKX0pO3ZhciBhPW5ldyBGb3JtRGF0YTtlLmRhdGEmJk9iamVjdC5rZXlzKGUuZGF0YSkuZm9yRWFjaChmdW5jdGlvbihvKXt2YXIgaT1lLmRhdGFbb107aWYoQXJyYXkuaXNBcnJheShpKSl7aS5mb3JFYWNoKGZ1bmN0aW9uKHMpe2EuYXBwZW5kKCIiLmNvbmNhdChvLCJbXSIpLHMpfSk7cmV0dXJufWEuYXBwZW5kKG8saSl9KSxlLmZpbGUgaW5zdGFuY2VvZiBCbG9iP2EuYXBwZW5kKGUuZmlsZW5hbWUsZS5maWxlLGUuZmlsZS5uYW1lKTphLmFwcGVuZChlLmZpbGVuYW1lLGUuZmlsZSksci5vbmVycm9yPWZ1bmN0aW9uKGkpe2Uub25FcnJvcihpKX0sci5vbmxvYWQ9ZnVuY3Rpb24oKXtyZXR1cm4gci5zdGF0dXM8MjAwfHxyLnN0YXR1cz49MzAwP2Uub25FcnJvcihudChlLHIpLFRlKHIpKTplLm9uU3VjY2VzcyhUZShyKSxyKX0sci5vcGVuKGUubWV0aG9kLGUuYWN0aW9uLCEwKSxlLndpdGhDcmVkZW50aWFscyYmIndpdGhDcmVkZW50aWFscyJpbiByJiYoci53aXRoQ3JlZGVudGlhbHM9ITApO3ZhciBuPWUuaGVhZGVyc3x8e307cmV0dXJuIG5bIlgtUmVxdWVzdGVkLVdpdGgiXSE9PW51bGwmJnIuc2V0UmVxdWVzdEhlYWRlcigiWC1SZXF1ZXN0ZWQtV2l0aCIsIlhNTEh0dHBSZXF1ZXN0IiksT2JqZWN0LmtleXMobikuZm9yRWFjaChmdW5jdGlvbihvKXtuW29dIT09bnVsbCYmci5zZXRSZXF1ZXN0SGVhZGVyKG8sbltvXSl9KSxyLnNlbmQoYSkse2Fib3J0OmZ1bmN0aW9uKCl7ci5hYm9ydCgpfX19dmFyIG90PWZ1bmN0aW9uKCl7dmFyIGU9KDAscGUuWikoKDAsVy5aKSgpLm1hcmsoZnVuY3Rpb24gcihhLG4pe3ZhciBvLGkscyx0LHAsZCx1LGY7cmV0dXJuKDAsVy5aKSgpLndyYXAoZnVuY3Rpb24oJCl7Zm9yKDs7KXN3aXRjaCgkLnByZXY9JC5uZXh0KXtjYXNlIDA6ZD1mdW5jdGlvbigpe3JldHVybiBkPSgwLHBlLlopKCgwLFcuWikoKS5tYXJrKGZ1bmN0aW9uIHcoQyl7cmV0dXJuKDAsVy5aKSgpLndyYXAoZnVuY3Rpb24oUyl7Zm9yKDs7KXN3aXRjaChTLnByZXY9Uy5uZXh0KXtjYXNlIDA6cmV0dXJuIFMuYWJydXB0KCJyZXR1cm4iLG5ldyBQcm9taXNlKGZ1bmN0aW9uKEYpe0MuZmlsZShmdW5jdGlvbihJKXtuKEkpPyhDLmZ1bGxQYXRoJiYhSS53ZWJraXRSZWxhdGl2ZVBhdGgmJihPYmplY3QuZGVmaW5lUHJvcGVydGllcyhJLHt3ZWJraXRSZWxhdGl2ZVBhdGg6e3dyaXRhYmxlOiEwfX0pLEkud2Via2l0UmVsYXRpdmVQYXRoPUMuZnVsbFBhdGgucmVwbGFjZSgvXlwvLywiIiksT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoSSx7d2Via2l0UmVsYXRpdmVQYXRoOnt3cml0YWJsZTohMX19KSksRihJKSk6RihudWxsKX0pfSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIFMuc3RvcCgpfX0sdyl9KSksZC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LHA9ZnVuY3Rpb24odyl7cmV0dXJuIGQuYXBwbHkodGhpcyxhcmd1bWVudHMpfSx0PWZ1bmN0aW9uKCl7cmV0dXJuIHQ9KDAscGUuWikoKDAsVy5aKSgpLm1hcmsoZnVuY3Rpb24gdyhDKXt2YXIgTyxTLEYsSSxjO3JldHVybigwLFcuWikoKS53cmFwKGZ1bmN0aW9uKEUpe2Zvcig7Oylzd2l0Y2goRS5wcmV2PUUubmV4dCl7Y2FzZSAwOk89Qy5jcmVhdGVSZWFkZXIoKSxTPVtdO2Nhc2UgMjpyZXR1cm4gRS5uZXh0PTUsbmV3IFByb21pc2UoZnVuY3Rpb24oQil7Ty5yZWFkRW50cmllcyhCLGZ1bmN0aW9uKCl7cmV0dXJuIEIoW10pfSl9KTtjYXNlIDU6aWYoRj1FLnNlbnQsST1GLmxlbmd0aCxJKXtFLm5leHQ9OTticmVha31yZXR1cm4gRS5hYnJ1cHQoImJyZWFrIiwxMik7Y2FzZSA5OmZvcihjPTA7YzxJO2MrKylTLnB1c2goRltjXSk7RS5uZXh0PTI7YnJlYWs7Y2FzZSAxMjpyZXR1cm4gRS5hYnJ1cHQoInJldHVybiIsUyk7Y2FzZSAxMzpjYXNlImVuZCI6cmV0dXJuIEUuc3RvcCgpfX0sdyl9KSksdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LHM9ZnVuY3Rpb24odyl7cmV0dXJuIHQuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxvPVtdLGk9W10sYS5mb3JFYWNoKGZ1bmN0aW9uKGIpe3JldHVybiBpLnB1c2goYi53ZWJraXRHZXRBc0VudHJ5KCkpfSksdT1mdW5jdGlvbigpe3ZhciBiPSgwLHBlLlopKCgwLFcuWikoKS5tYXJrKGZ1bmN0aW9uIHcoQyxPKXt2YXIgUyxGO3JldHVybigwLFcuWikoKS53cmFwKGZ1bmN0aW9uKGMpe2Zvcig7Oylzd2l0Y2goYy5wcmV2PWMubmV4dCl7Y2FzZSAwOmlmKEMpe2MubmV4dD0yO2JyZWFrfXJldHVybiBjLmFicnVwdCgicmV0dXJuIik7Y2FzZSAyOmlmKEMucGF0aD1PfHwiIiwhQy5pc0ZpbGUpe2MubmV4dD0xMDticmVha31yZXR1cm4gYy5uZXh0PTYscChDKTtjYXNlIDY6Uz1jLnNlbnQsUyYmby5wdXNoKFMpLGMubmV4dD0xNTticmVhaztjYXNlIDEwOmlmKCFDLmlzRGlyZWN0b3J5KXtjLm5leHQ9MTU7YnJlYWt9cmV0dXJuIGMubmV4dD0xMyxzKEMpO2Nhc2UgMTM6Rj1jLnNlbnQsaS5wdXNoLmFwcGx5KGksKDAsay5aKShGKSk7Y2FzZSAxNTpjYXNlImVuZCI6cmV0dXJuIGMuc3RvcCgpfX0sdyl9KSk7cmV0dXJuIGZ1bmN0aW9uKEMsTyl7cmV0dXJuIGIuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSxmPTA7Y2FzZSA5OmlmKCEoZjxpLmxlbmd0aCkpeyQubmV4dD0xNTticmVha31yZXR1cm4gJC5uZXh0PTEyLHUoaVtmXSk7Y2FzZSAxMjpmKyssJC5uZXh0PTk7YnJlYWs7Y2FzZSAxNTpyZXR1cm4gJC5hYnJ1cHQoInJldHVybiIsbyk7Y2FzZSAxNjpjYXNlImVuZCI6cmV0dXJuICQuc3RvcCgpfX0scil9KSk7cmV0dXJuIGZ1bmN0aW9uKGEsbil7cmV0dXJuIGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSxpdD1vdCxzdD0rbmV3IERhdGUsbHQ9MDtmdW5jdGlvbiBTZSgpe3JldHVybiJyYy11cGxvYWQtIi5jb25jYXQoc3QsIi0iKS5jb25jYXQoKytsdCl9dmFyIGN0PVsiY29tcG9uZW50IiwicHJlZml4Q2xzIiwiY2xhc3NOYW1lIiwiY2xhc3NOYW1lcyIsImRpc2FibGVkIiwiaWQiLCJuYW1lIiwic3R5bGUiLCJzdHlsZXMiLCJtdWx0aXBsZSIsImFjY2VwdCIsImNhcHR1cmUiLCJjaGlsZHJlbiIsImRpcmVjdG9yeSIsIm9wZW5GaWxlRGlhbG9nT25DbGljayIsIm9uTW91c2VFbnRlciIsIm9uTW91c2VMZWF2ZSIsImhhc0NvbnRyb2xJbnNpZGUiXSxkdD1mdW5jdGlvbihlKXsoMCxOZS5aKShhLGUpO3ZhciByPSgwLExlLlopKGEpO2Z1bmN0aW9uIGEoKXt2YXIgbjsoMCxqZS5aKSh0aGlzLGEpO2Zvcih2YXIgbz1hcmd1bWVudHMubGVuZ3RoLGk9bmV3IEFycmF5KG8pLHM9MDtzPG87cysrKWlbc109YXJndW1lbnRzW3NdO3JldHVybiBuPXIuY2FsbC5hcHBseShyLFt0aGlzXS5jb25jYXQoaSkpLCgwLE4uWikoKDAsWC5aKShuKSwic3RhdGUiLHt1aWQ6U2UoKX0pLCgwLE4uWikoKDAsWC5aKShuKSwicmVxcyIse30pLCgwLE4uWikoKDAsWC5aKShuKSwiZmlsZUlucHV0Iix2b2lkIDApLCgwLE4uWikoKDAsWC5aKShuKSwiX2lzTW91bnRlZCIsdm9pZCAwKSwoMCxOLlopKCgwLFguWikobiksIm9uQ2hhbmdlIixmdW5jdGlvbih0KXt2YXIgcD1uLnByb3BzLGQ9cC5hY2NlcHQsdT1wLmRpcmVjdG9yeSxmPXQudGFyZ2V0LmZpbGVzLGg9KDAsay5aKShmKS5maWx0ZXIoZnVuY3Rpb24oJCl7cmV0dXJuIXV8fENlKCQsZCl9KTtuLnVwbG9hZEZpbGVzKGgpLG4ucmVzZXQoKX0pLCgwLE4uWikoKDAsWC5aKShuKSwib25DbGljayIsZnVuY3Rpb24odCl7dmFyIHA9bi5maWxlSW5wdXQ7aWYocCl7dmFyIGQ9dC50YXJnZXQsdT1uLnByb3BzLm9uQ2xpY2s7aWYoZCYmZC50YWdOYW1lPT09IkJVVFRPTiIpe3ZhciBmPXAucGFyZW50Tm9kZTtmLmZvY3VzKCksZC5ibHVyKCl9cC5jbGljaygpLHUmJnUodCl9fSksKDAsTi5aKSgoMCxYLlopKG4pLCJvbktleURvd24iLGZ1bmN0aW9uKHQpe3Qua2V5PT09IkVudGVyIiYmbi5vbkNsaWNrKHQpfSksKDAsTi5aKSgoMCxYLlopKG4pLCJvbkZpbGVEcm9wIixmdW5jdGlvbigpe3ZhciB0PSgwLHBlLlopKCgwLFcuWikoKS5tYXJrKGZ1bmN0aW9uIHAoZCl7dmFyIHUsZixoO3JldHVybigwLFcuWikoKS53cmFwKGZ1bmN0aW9uKGIpe2Zvcig7Oylzd2l0Y2goYi5wcmV2PWIubmV4dCl7Y2FzZSAwOmlmKHU9bi5wcm9wcy5tdWx0aXBsZSxkLnByZXZlbnREZWZhdWx0KCksZC50eXBlIT09ImRyYWdvdmVyIil7Yi5uZXh0PTQ7YnJlYWt9cmV0dXJuIGIuYWJydXB0KCJyZXR1cm4iKTtjYXNlIDQ6aWYoIW4ucHJvcHMuZGlyZWN0b3J5KXtiLm5leHQ9MTE7YnJlYWt9cmV0dXJuIGIubmV4dD03LGl0KEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGQuZGF0YVRyYW5zZmVyLml0ZW1zKSxmdW5jdGlvbih3KXtyZXR1cm4gQ2UodyxuLnByb3BzLmFjY2VwdCl9KTtjYXNlIDc6Zj1iLnNlbnQsbi51cGxvYWRGaWxlcyhmKSxiLm5leHQ9MTQ7YnJlYWs7Y2FzZSAxMTpoPSgwLGsuWikoZC5kYXRhVHJhbnNmZXIuZmlsZXMpLmZpbHRlcihmdW5jdGlvbih3KXtyZXR1cm4gQ2UodyxuLnByb3BzLmFjY2VwdCl9KSx1PT09ITEmJihoPWguc2xpY2UoMCwxKSksbi51cGxvYWRGaWxlcyhoKTtjYXNlIDE0OmNhc2UiZW5kIjpyZXR1cm4gYi5zdG9wKCl9fSxwKX0pKTtyZXR1cm4gZnVuY3Rpb24ocCl7cmV0dXJuIHQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSksKDAsTi5aKSgoMCxYLlopKG4pLCJ1cGxvYWRGaWxlcyIsZnVuY3Rpb24odCl7dmFyIHA9KDAsay5aKSh0KSxkPXAubWFwKGZ1bmN0aW9uKHUpe3JldHVybiB1LnVpZD1TZSgpLG4ucHJvY2Vzc0ZpbGUodSxwKX0pO1Byb21pc2UuYWxsKGQpLnRoZW4oZnVuY3Rpb24odSl7dmFyIGY9bi5wcm9wcy5vbkJhdGNoU3RhcnQ7Zj09bnVsbHx8Zih1Lm1hcChmdW5jdGlvbihoKXt2YXIgJD1oLm9yaWdpbixiPWgucGFyc2VkRmlsZTtyZXR1cm57ZmlsZTokLHBhcnNlZEZpbGU6Yn19KSksdS5maWx0ZXIoZnVuY3Rpb24oaCl7cmV0dXJuIGgucGFyc2VkRmlsZSE9PW51bGx9KS5mb3JFYWNoKGZ1bmN0aW9uKGgpe24ucG9zdChoKX0pfSl9KSwoMCxOLlopKCgwLFguWikobiksInByb2Nlc3NGaWxlIixmdW5jdGlvbigpe3ZhciB0PSgwLHBlLlopKCgwLFcuWikoKS5tYXJrKGZ1bmN0aW9uIHAoZCx1KXt2YXIgZixoLCQsYix3LEMsTyxTLEY7cmV0dXJuKDAsVy5aKSgpLndyYXAoZnVuY3Rpb24oYyl7Zm9yKDs7KXN3aXRjaChjLnByZXY9Yy5uZXh0KXtjYXNlIDA6aWYoZj1uLnByb3BzLmJlZm9yZVVwbG9hZCxoPWQsIWYpe2MubmV4dD0xNDticmVha31yZXR1cm4gYy5wcmV2PTMsYy5uZXh0PTYsZihkLHUpO2Nhc2UgNjpoPWMuc2VudCxjLm5leHQ9MTI7YnJlYWs7Y2FzZSA5OmMucHJldj05LGMudDA9Yy5jYXRjaCgzKSxoPSExO2Nhc2UgMTI6aWYoaCE9PSExKXtjLm5leHQ9MTQ7YnJlYWt9cmV0dXJuIGMuYWJydXB0KCJyZXR1cm4iLHtvcmlnaW46ZCxwYXJzZWRGaWxlOm51bGwsYWN0aW9uOm51bGwsZGF0YTpudWxsfSk7Y2FzZSAxNDppZigkPW4ucHJvcHMuYWN0aW9uLHR5cGVvZiAkIT0iZnVuY3Rpb24iKXtjLm5leHQ9MjE7YnJlYWt9cmV0dXJuIGMubmV4dD0xOCwkKGQpO2Nhc2UgMTg6Yj1jLnNlbnQsYy5uZXh0PTIyO2JyZWFrO2Nhc2UgMjE6Yj0kO2Nhc2UgMjI6aWYodz1uLnByb3BzLmRhdGEsdHlwZW9mIHchPSJmdW5jdGlvbiIpe2MubmV4dD0yOTticmVha31yZXR1cm4gYy5uZXh0PTI2LHcoZCk7Y2FzZSAyNjpDPWMuc2VudCxjLm5leHQ9MzA7YnJlYWs7Y2FzZSAyOTpDPXc7Y2FzZSAzMDpyZXR1cm4gTz0oKDAsZXQuWikoaCk9PT0ib2JqZWN0Inx8dHlwZW9mIGg9PSJzdHJpbmciKSYmaD9oOmQsTyBpbnN0YW5jZW9mIEZpbGU/Uz1POlM9bmV3IEZpbGUoW09dLGQubmFtZSx7dHlwZTpkLnR5cGV9KSxGPVMsRi51aWQ9ZC51aWQsYy5hYnJ1cHQoInJldHVybiIse29yaWdpbjpkLGRhdGE6QyxwYXJzZWRGaWxlOkYsYWN0aW9uOmJ9KTtjYXNlIDM1OmNhc2UiZW5kIjpyZXR1cm4gYy5zdG9wKCl9fSxwLG51bGwsW1szLDldXSl9KSk7cmV0dXJuIGZ1bmN0aW9uKHAsZCl7cmV0dXJuIHQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSksKDAsTi5aKSgoMCxYLlopKG4pLCJzYXZlRmlsZUlucHV0IixmdW5jdGlvbih0KXtuLmZpbGVJbnB1dD10fSksbn1yZXR1cm4oMCxVZS5aKShhLFt7a2V5OiJjb21wb25lbnREaWRNb3VudCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl9pc01vdW50ZWQ9ITB9fSx7a2V5OiJjb21wb25lbnRXaWxsVW5tb3VudCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl9pc01vdW50ZWQ9ITEsdGhpcy5hYm9ydCgpfX0se2tleToicG9zdCIsdmFsdWU6ZnVuY3Rpb24obyl7dmFyIGk9dGhpcyxzPW8uZGF0YSx0PW8ub3JpZ2luLHA9by5hY3Rpb24sZD1vLnBhcnNlZEZpbGU7aWYodGhpcy5faXNNb3VudGVkKXt2YXIgdT10aGlzLnByb3BzLGY9dS5vblN0YXJ0LGg9dS5jdXN0b21SZXF1ZXN0LCQ9dS5uYW1lLGI9dS5oZWFkZXJzLHc9dS53aXRoQ3JlZGVudGlhbHMsQz11Lm1ldGhvZCxPPXQudWlkLFM9aHx8YXQsRj17YWN0aW9uOnAsZmlsZW5hbWU6JCxkYXRhOnMsZmlsZTpkLGhlYWRlcnM6Yix3aXRoQ3JlZGVudGlhbHM6dyxtZXRob2Q6Q3x8InBvc3QiLG9uUHJvZ3Jlc3M6ZnVuY3Rpb24oYyl7dmFyIEw9aS5wcm9wcy5vblByb2dyZXNzO0w9PW51bGx8fEwoYyxkKX0sb25TdWNjZXNzOmZ1bmN0aW9uKGMsTCl7dmFyIEU9aS5wcm9wcy5vblN1Y2Nlc3M7RT09bnVsbHx8RShjLGQsTCksZGVsZXRlIGkucmVxc1tPXX0sb25FcnJvcjpmdW5jdGlvbihjLEwpe3ZhciBFPWkucHJvcHMub25FcnJvcjtFPT1udWxsfHxFKGMsTCxkKSxkZWxldGUgaS5yZXFzW09dfX07Zih0KSx0aGlzLnJlcXNbT109UyhGKX19fSx7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnNldFN0YXRlKHt1aWQ6U2UoKX0pfX0se2tleToiYWJvcnQiLHZhbHVlOmZ1bmN0aW9uKG8pe3ZhciBpPXRoaXMucmVxcztpZihvKXt2YXIgcz1vLnVpZD9vLnVpZDpvO2lbc10mJmlbc10uYWJvcnQmJmlbc10uYWJvcnQoKSxkZWxldGUgaVtzXX1lbHNlIE9iamVjdC5rZXlzKGkpLmZvckVhY2goZnVuY3Rpb24odCl7aVt0XSYmaVt0XS5hYm9ydCYmaVt0XS5hYm9ydCgpLGRlbGV0ZSBpW3RdfSl9fSx7a2V5OiJyZW5kZXIiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIG89dGhpcy5wcm9wcyxpPW8uY29tcG9uZW50LHM9by5wcmVmaXhDbHMsdD1vLmNsYXNzTmFtZSxwPW8uY2xhc3NOYW1lcyxkPXA9PT12b2lkIDA/e306cCx1PW8uZGlzYWJsZWQsZj1vLmlkLGg9by5uYW1lLCQ9by5zdHlsZSxiPW8uc3R5bGVzLHc9Yj09PXZvaWQgMD97fTpiLEM9by5tdWx0aXBsZSxPPW8uYWNjZXB0LFM9by5jYXB0dXJlLEY9by5jaGlsZHJlbixJPW8uZGlyZWN0b3J5LGM9by5vcGVuRmlsZURpYWxvZ09uQ2xpY2ssTD1vLm9uTW91c2VFbnRlcixFPW8ub25Nb3VzZUxlYXZlLEI9by5oYXNDb250cm9sSW5zaWRlLFk9KDAsX2UuWikobyxjdCksSz16KCkoKDAsTi5aKSgoMCxOLlopKCgwLE4uWikoe30scywhMCksIiIuY29uY2F0KHMsIi1kaXNhYmxlZCIpLHUpLHQsdCkpLEE9ST97ZGlyZWN0b3J5OiJkaXJlY3RvcnkiLHdlYmtpdGRpcmVjdG9yeToid2Via2l0ZGlyZWN0b3J5In06e30sZWU9dT97fTp7b25DbGljazpjP3RoaXMub25DbGljazpmdW5jdGlvbigpe30sb25LZXlEb3duOmM/dGhpcy5vbktleURvd246ZnVuY3Rpb24oKXt9LG9uTW91c2VFbnRlcjpMLG9uTW91c2VMZWF2ZTpFLG9uRHJvcDp0aGlzLm9uRmlsZURyb3Asb25EcmFnT3Zlcjp0aGlzLm9uRmlsZURyb3AsdGFiSW5kZXg6Qj92b2lkIDA6IjAifTtyZXR1cm4gbC5jcmVhdGVFbGVtZW50KGksKDAsd2UuWikoe30sZWUse2NsYXNzTmFtZTpLLHJvbGU6Qj92b2lkIDA6ImJ1dHRvbiIsc3R5bGU6JH0pLGwuY3JlYXRlRWxlbWVudCgiaW5wdXQiLCgwLHdlLlopKHt9LCgwLHR0LlopKFkse2FyaWE6ITAsZGF0YTohMH0pLHtpZDpmLG5hbWU6aCxkaXNhYmxlZDp1LHR5cGU6ImZpbGUiLHJlZjp0aGlzLnNhdmVGaWxlSW5wdXQsb25DbGljazpmdW5jdGlvbihpZSl7cmV0dXJuIGllLnN0b3BQcm9wYWdhdGlvbigpfSxrZXk6dGhpcy5zdGF0ZS51aWQsc3R5bGU6KDAsa2UuWikoe2Rpc3BsYXk6Im5vbmUifSx3LmlucHV0KSxjbGFzc05hbWU6ZC5pbnB1dCxhY2NlcHQ6T30sQSx7bXVsdGlwbGU6QyxvbkNoYW5nZTp0aGlzLm9uQ2hhbmdlfSxTIT1udWxsP3tjYXB0dXJlOlN9Ont9KSksRil9fV0pLGF9KGwuQ29tcG9uZW50KSx1dD1kdDtmdW5jdGlvbiBJZSgpe312YXIgQWU9ZnVuY3Rpb24oZSl7KDAsTmUuWikoYSxlKTt2YXIgcj0oMCxMZS5aKShhKTtmdW5jdGlvbiBhKCl7dmFyIG47KDAsamUuWikodGhpcyxhKTtmb3IodmFyIG89YXJndW1lbnRzLmxlbmd0aCxpPW5ldyBBcnJheShvKSxzPTA7czxvO3MrKylpW3NdPWFyZ3VtZW50c1tzXTtyZXR1cm4gbj1yLmNhbGwuYXBwbHkocixbdGhpc10uY29uY2F0KGkpKSwoMCxOLlopKCgwLFguWikobiksInVwbG9hZGVyIix2b2lkIDApLCgwLE4uWikoKDAsWC5aKShuKSwic2F2ZVVwbG9hZGVyIixmdW5jdGlvbih0KXtuLnVwbG9hZGVyPXR9KSxufXJldHVybigwLFVlLlopKGEsW3trZXk6ImFib3J0Iix2YWx1ZTpmdW5jdGlvbihvKXt0aGlzLnVwbG9hZGVyLmFib3J0KG8pfX0se2tleToicmVuZGVyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBsLmNyZWF0ZUVsZW1lbnQodXQsKDAsd2UuWikoe30sdGhpcy5wcm9wcyx7cmVmOnRoaXMuc2F2ZVVwbG9hZGVyfSkpfX1dKSxhfShsLkNvbXBvbmVudCk7KDAsTi5aKShBZSwiZGVmYXVsdFByb3BzIix7Y29tcG9uZW50OiJzcGFuIixwcmVmaXhDbHM6InJjLXVwbG9hZCIsZGF0YTp7fSxoZWFkZXJzOnt9LG5hbWU6ImZpbGUiLG11bHRpcGFydDohMSxvblN0YXJ0OkllLG9uRXJyb3I6SWUsb25TdWNjZXNzOkllLG11bHRpcGxlOiExLGJlZm9yZVVwbG9hZDpudWxsLGN1c3RvbVJlcXVlc3Q6bnVsbCx3aXRoQ3JlZGVudGlhbHM6ITEsb3BlbkZpbGVEaWFsb2dPbkNsaWNrOiEwLGhhc0NvbnRyb2xJbnNpZGU6ITF9KTt2YXIgcHQ9QWUsTWU9cHQsbXQ9bSgyMTc3MCksRWU9bSg1MzEyNCksZnQ9bSg5ODg2NiksZ3Q9bSgxMDExMCksdnQ9bSgyNDQ1NyksZ2U9bSgxNDc0NyksaHQ9bSgzMzUwNyksYnQ9bSg4MzU1OSkseXQ9bSg4MzI2MiksVD1tKDExNTY4KSwkdD1lPT57Y29uc3R7Y29tcG9uZW50Q2xzOnIsaWNvbkNsczphfT1lO3JldHVybntbYCR7cn0td3JhcHBlcmBdOntbYCR7cn0tZHJhZ2BdOntwb3NpdGlvbjoicmVsYXRpdmUiLHdpZHRoOiIxMDAlIixoZWlnaHQ6IjEwMCUiLHRleHRBbGlnbjoiY2VudGVyIixiYWNrZ3JvdW5kOmUuY29sb3JGaWxsQWx0ZXIsYm9yZGVyOmAkeygwLFQuYmYpKGUubGluZVdpZHRoKX0gZGFzaGVkICR7ZS5jb2xvckJvcmRlcn1gLGJvcmRlclJhZGl1czplLmJvcmRlclJhZGl1c0xHLGN1cnNvcjoicG9pbnRlciIsdHJhbnNpdGlvbjpgYm9yZGVyLWNvbG9yICR7ZS5tb3Rpb25EdXJhdGlvblNsb3d9YCxbcl06e3BhZGRpbmc6ZS5wYWRkaW5nfSxbYCR7cn0tYnRuYF06e2Rpc3BsYXk6InRhYmxlIix3aWR0aDoiMTAwJSIsaGVpZ2h0OiIxMDAlIixvdXRsaW5lOiJub25lIixib3JkZXJSYWRpdXM6ZS5ib3JkZXJSYWRpdXNMRywiJjpmb2N1cy12aXNpYmxlIjp7b3V0bGluZTpgJHsoMCxULmJmKShlLmxpbmVXaWR0aEZvY3VzKX0gc29saWQgJHtlLmNvbG9yUHJpbWFyeUJvcmRlcn1gfX0sW2Ake3J9LWRyYWctY29udGFpbmVyYF06e2Rpc3BsYXk6InRhYmxlLWNlbGwiLHZlcnRpY2FsQWxpZ246Im1pZGRsZSJ9LFtgCisgICAgICAgICAgJjpub3QoJHtyfS1kaXNhYmxlZCk6aG92ZXIsCisgICAgICAgICAgJi1ob3Zlcjpub3QoJHtyfS1kaXNhYmxlZCkKKyAgICAgICAgYF06e2JvcmRlckNvbG9yOmUuY29sb3JQcmltYXJ5SG92ZXJ9LFtgcCR7cn0tZHJhZy1pY29uYF06e21hcmdpbkJvdHRvbTplLm1hcmdpbixbYV06e2NvbG9yOmUuY29sb3JQcmltYXJ5LGZvbnRTaXplOmUudXBsb2FkVGh1bWJuYWlsU2l6ZX19LFtgcCR7cn0tdGV4dGBdOnttYXJnaW46YDAgMCAkeygwLFQuYmYpKGUubWFyZ2luWFhTKX1gLGNvbG9yOmUuY29sb3JUZXh0SGVhZGluZyxmb250U2l6ZTplLmZvbnRTaXplTEd9LFtgcCR7cn0taGludGBdOntjb2xvcjplLmNvbG9yVGV4dERlc2NyaXB0aW9uLGZvbnRTaXplOmUuZm9udFNpemV9LFtgJiR7cn0tZGlzYWJsZWRgXTp7W2BwJHtyfS1kcmFnLWljb24gJHthfSwKKyAgICAgICAgICAgIHAke3J9LXRleHQsCisgICAgICAgICAgICBwJHtyfS1oaW50CisgICAgICAgICAgYF06e2NvbG9yOmUuY29sb3JUZXh0RGlzYWJsZWR9fX19fX0sd3Q9ZT0+e2NvbnN0e2NvbXBvbmVudENsczpyLGljb25DbHM6YSxmb250U2l6ZTpuLGxpbmVIZWlnaHQ6byxjYWxjOml9PWUscz1gJHtyfS1saXN0LWl0ZW1gLHQ9YCR7c30tYWN0aW9uc2AscD1gJHtzfS1hY3Rpb25gO3JldHVybntbYCR7cn0td3JhcHBlcmBdOntbYCR7cn0tbGlzdGBdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwoMCxnZS5kRikoKSkse2xpbmVIZWlnaHQ6ZS5saW5lSGVpZ2h0LFtzXTp7cG9zaXRpb246InJlbGF0aXZlIixoZWlnaHQ6aShlLmxpbmVIZWlnaHQpLm11bChuKS5lcXVhbCgpLG1hcmdpblRvcDplLm1hcmdpblhTLGZvbnRTaXplOm4sZGlzcGxheToiZmxleCIsYWxpZ25JdGVtczoiY2VudGVyIix0cmFuc2l0aW9uOmBiYWNrZ3JvdW5kLWNvbG9yICR7ZS5tb3Rpb25EdXJhdGlvblNsb3d9YCxib3JkZXJSYWRpdXM6ZS5ib3JkZXJSYWRpdXNTTSwiJjpob3ZlciI6e2JhY2tncm91bmRDb2xvcjplLmNvbnRyb2xJdGVtQmdIb3Zlcn0sW2Ake3N9LW5hbWVgXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZ2UudlMpLHtwYWRkaW5nOmAwICR7KDAsVC5iZikoZS5wYWRkaW5nWFMpfWAsbGluZUhlaWdodDpvLGZsZXg6ImF1dG8iLHRyYW5zaXRpb246YGFsbCAke2UubW90aW9uRHVyYXRpb25TbG93fWB9KSxbdF06e3doaXRlU3BhY2U6Im5vd3JhcCIsW3BdOntvcGFjaXR5OjB9LFthXTp7Y29sb3I6ZS5hY3Rpb25zQ29sb3IsdHJhbnNpdGlvbjpgYWxsICR7ZS5tb3Rpb25EdXJhdGlvblNsb3d9YH0sW2AKKyAgICAgICAgICAgICAgJHtwfTpmb2N1cy12aXNpYmxlLAorICAgICAgICAgICAgICAmLnBpY3R1cmUgJHtwfQorICAgICAgICAgICAgYF06e29wYWNpdHk6MX19LFtgJHtyfS1pY29uICR7YX1gXTp7Y29sb3I6ZS5jb2xvclRleHREZXNjcmlwdGlvbixmb250U2l6ZTpufSxbYCR7c30tcHJvZ3Jlc3NgXTp7cG9zaXRpb246ImFic29sdXRlIixib3R0b206ZS5jYWxjKGUudXBsb2FkUHJvZ3Jlc3NPZmZzZXQpLm11bCgtMSkuZXF1YWwoKSx3aWR0aDoiMTAwJSIscGFkZGluZ0lubGluZVN0YXJ0OmkobikuYWRkKGUucGFkZGluZ1hTKS5lcXVhbCgpLGZvbnRTaXplOm4sbGluZUhlaWdodDowLHBvaW50ZXJFdmVudHM6Im5vbmUiLCI+IGRpdiI6e21hcmdpbjowfX19LFtgJHtzfTpob3ZlciAke3B9YF06e29wYWNpdHk6MX0sW2Ake3N9LWVycm9yYF06e2NvbG9yOmUuY29sb3JFcnJvcixbYCR7c30tbmFtZSwgJHtyfS1pY29uICR7YX1gXTp7Y29sb3I6ZS5jb2xvckVycm9yfSxbdF06e1tgJHthfSwgJHthfTpob3ZlcmBdOntjb2xvcjplLmNvbG9yRXJyb3J9LFtwXTp7b3BhY2l0eToxfX19LFtgJHtyfS1saXN0LWl0ZW0tY29udGFpbmVyYF06e3RyYW5zaXRpb246YG9wYWNpdHkgJHtlLm1vdGlvbkR1cmF0aW9uU2xvd30sIGhlaWdodCAke2UubW90aW9uRHVyYXRpb25TbG93fWAsIiY6OmJlZm9yZSI6e2Rpc3BsYXk6InRhYmxlIix3aWR0aDowLGhlaWdodDowLGNvbnRlbnQ6JyIiJ319fSl9fX0sQ3Q9bSgxNjkzMiksU3Q9ZT0+e2NvbnN0e2NvbXBvbmVudENsczpyfT1lLGE9bmV3IFQuRTQoInVwbG9hZEFuaW1hdGVJbmxpbmVJbiIse2Zyb206e3dpZHRoOjAsaGVpZ2h0OjAscGFkZGluZzowLG9wYWNpdHk6MCxtYXJnaW46ZS5jYWxjKGUubWFyZ2luWFMpLmRpdigtMikuZXF1YWwoKX19KSxuPW5ldyBULkU0KCJ1cGxvYWRBbmltYXRlSW5saW5lT3V0Iix7dG86e3dpZHRoOjAsaGVpZ2h0OjAscGFkZGluZzowLG9wYWNpdHk6MCxtYXJnaW46ZS5jYWxjKGUubWFyZ2luWFMpLmRpdigtMikuZXF1YWwoKX19KSxvPWAke3J9LWFuaW1hdGUtaW5saW5lYDtyZXR1cm5be1tgJHtyfS13cmFwcGVyYF06e1tgJHtvfS1hcHBlYXIsICR7b30tZW50ZXIsICR7b30tbGVhdmVgXTp7YW5pbWF0aW9uRHVyYXRpb246ZS5tb3Rpb25EdXJhdGlvblNsb3csYW5pbWF0aW9uVGltaW5nRnVuY3Rpb246ZS5tb3Rpb25FYXNlSW5PdXRDaXJjLGFuaW1hdGlvbkZpbGxNb2RlOiJmb3J3YXJkcyJ9LFtgJHtvfS1hcHBlYXIsICR7b30tZW50ZXJgXTp7YW5pbWF0aW9uTmFtZTphfSxbYCR7b30tbGVhdmVgXTp7YW5pbWF0aW9uTmFtZTpufX19LHtbYCR7cn0td3JhcHBlcmBdOigwLEN0LkokKShlKX0sYSxuXX0semU9bSg4NDg5OCk7Y29uc3QgSXQ9ZT0+e2NvbnN0e2NvbXBvbmVudENsczpyLGljb25DbHM6YSx1cGxvYWRUaHVtYm5haWxTaXplOm4sdXBsb2FkUHJvZ3Jlc3NPZmZzZXQ6byxjYWxjOml9PWUscz1gJHtyfS1saXN0YCx0PWAke3N9LWl0ZW1gO3JldHVybntbYCR7cn0td3JhcHBlcmBdOntbYAorICAgICAgICAke3N9JHtzfS1waWN0dXJlLAorICAgICAgICAke3N9JHtzfS1waWN0dXJlLWNhcmQsCisgICAgICAgICR7c30ke3N9LXBpY3R1cmUtY2lyY2xlCisgICAgICBgXTp7W3RdOntwb3NpdGlvbjoicmVsYXRpdmUiLGhlaWdodDppKG4pLmFkZChpKGUubGluZVdpZHRoKS5tdWwoMikpLmFkZChpKGUucGFkZGluZ1hTKS5tdWwoMikpLmVxdWFsKCkscGFkZGluZzplLnBhZGRpbmdYUyxib3JkZXI6YCR7KDAsVC5iZikoZS5saW5lV2lkdGgpfSAke2UubGluZVR5cGV9ICR7ZS5jb2xvckJvcmRlcn1gLGJvcmRlclJhZGl1czplLmJvcmRlclJhZGl1c0xHLCImOmhvdmVyIjp7YmFja2dyb3VuZDoidHJhbnNwYXJlbnQifSxbYCR7dH0tdGh1bWJuYWlsYF06T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGdlLnZTKSx7d2lkdGg6bixoZWlnaHQ6bixsaW5lSGVpZ2h0OigwLFQuYmYpKGkobikuYWRkKGUucGFkZGluZ1NNKS5lcXVhbCgpKSx0ZXh0QWxpZ246ImNlbnRlciIsZmxleDoibm9uZSIsW2FdOntmb250U2l6ZTplLmZvbnRTaXplSGVhZGluZzIsY29sb3I6ZS5jb2xvclByaW1hcnl9LGltZzp7ZGlzcGxheToiYmxvY2siLHdpZHRoOiIxMDAlIixoZWlnaHQ6IjEwMCUiLG92ZXJmbG93OiJoaWRkZW4ifX0pLFtgJHt0fS1wcm9ncmVzc2BdOntib3R0b206byx3aWR0aDpgY2FsYygxMDAlIC0gJHsoMCxULmJmKShpKGUucGFkZGluZ1NNKS5tdWwoMikuZXF1YWwoKSl9KWAsbWFyZ2luVG9wOjAscGFkZGluZ0lubGluZVN0YXJ0OmkobikuYWRkKGUucGFkZGluZ1hTKS5lcXVhbCgpfX0sW2Ake3R9LWVycm9yYF06e2JvcmRlckNvbG9yOmUuY29sb3JFcnJvcixbYCR7dH0tdGh1bWJuYWlsICR7YX1gXTp7W2BzdmcgcGF0aFtmaWxsPScke3plLmJsdWVbMF19J11gXTp7ZmlsbDplLmNvbG9yRXJyb3JCZ30sW2BzdmcgcGF0aFtmaWxsPScke3plLmJsdWUucHJpbWFyeX0nXWBdOntmaWxsOmUuY29sb3JFcnJvcn19fSxbYCR7dH0tdXBsb2FkaW5nYF06e2JvcmRlclN0eWxlOiJkYXNoZWQiLFtgJHt0fS1uYW1lYF06e21hcmdpbkJvdHRvbTpvfX19LFtgJHtzfSR7c30tcGljdHVyZS1jaXJjbGUgJHt0fWBdOntbYCYsICY6OmJlZm9yZSwgJHt0fS10aHVtYm5haWxgXTp7Ym9yZGVyUmFkaXVzOiI1MCUifX19fX0sRXQ9ZT0+e2NvbnN0e2NvbXBvbmVudENsczpyLGljb25DbHM6YSxmb250U2l6ZUxHOm4sY29sb3JUZXh0TGlnaHRTb2xpZDpvLGNhbGM6aX09ZSxzPWAke3J9LWxpc3RgLHQ9YCR7c30taXRlbWAscD1lLnVwbG9hZFBpY0NhcmRTaXplO3JldHVybntbYAorICAgICAgJHtyfS13cmFwcGVyJHtyfS1waWN0dXJlLWNhcmQtd3JhcHBlciwKKyAgICAgICR7cn0td3JhcHBlciR7cn0tcGljdHVyZS1jaXJjbGUtd3JhcHBlcgorICAgIGBdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwoMCxnZS5kRikoKSkse2Rpc3BsYXk6ImJsb2NrIixbYCR7cn0ke3J9LXNlbGVjdGBdOnt3aWR0aDpwLGhlaWdodDpwLHRleHRBbGlnbjoiY2VudGVyIix2ZXJ0aWNhbEFsaWduOiJ0b3AiLGJhY2tncm91bmRDb2xvcjplLmNvbG9yRmlsbEFsdGVyLGJvcmRlcjpgJHsoMCxULmJmKShlLmxpbmVXaWR0aCl9IGRhc2hlZCAke2UuY29sb3JCb3JkZXJ9YCxib3JkZXJSYWRpdXM6ZS5ib3JkZXJSYWRpdXNMRyxjdXJzb3I6InBvaW50ZXIiLHRyYW5zaXRpb246YGJvcmRlci1jb2xvciAke2UubW90aW9uRHVyYXRpb25TbG93fWAsW2A+ICR7cn1gXTp7ZGlzcGxheToiZmxleCIsYWxpZ25JdGVtczoiY2VudGVyIixqdXN0aWZ5Q29udGVudDoiY2VudGVyIixoZWlnaHQ6IjEwMCUiLHRleHRBbGlnbjoiY2VudGVyIn0sW2AmOm5vdCgke3J9LWRpc2FibGVkKTpob3ZlcmBdOntib3JkZXJDb2xvcjplLmNvbG9yUHJpbWFyeX19LFtgJHtzfSR7c30tcGljdHVyZS1jYXJkLCAke3N9JHtzfS1waWN0dXJlLWNpcmNsZWBdOntkaXNwbGF5OiJmbGV4IixmbGV4V3JhcDoid3JhcCIsIkBzdXBwb3J0cyBub3QgKGdhcDogMXB4KSI6eyImID4gKiI6e21hcmdpbkJsb2NrRW5kOmUubWFyZ2luWFMsbWFyZ2luSW5saW5lRW5kOmUubWFyZ2luWFN9fSwiQHN1cHBvcnRzIChnYXA6IDFweCkiOntnYXA6ZS5tYXJnaW5YU30sW2Ake3N9LWl0ZW0tY29udGFpbmVyYF06e2Rpc3BsYXk6ImlubGluZS1ibG9jayIsd2lkdGg6cCxoZWlnaHQ6cCx2ZXJ0aWNhbEFsaWduOiJ0b3AifSwiJjo6YWZ0ZXIiOntkaXNwbGF5OiJub25lIn0sIiY6OmJlZm9yZSI6e2Rpc3BsYXk6Im5vbmUifSxbdF06e2hlaWdodDoiMTAwJSIsbWFyZ2luOjAsIiY6OmJlZm9yZSI6e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsekluZGV4OjEsd2lkdGg6YGNhbGMoMTAwJSAtICR7KDAsVC5iZikoaShlLnBhZGRpbmdYUykubXVsKDIpLmVxdWFsKCkpfSlgLGhlaWdodDpgY2FsYygxMDAlIC0gJHsoMCxULmJmKShpKGUucGFkZGluZ1hTKS5tdWwoMikuZXF1YWwoKSl9KWAsYmFja2dyb3VuZENvbG9yOmUuY29sb3JCZ01hc2ssb3BhY2l0eTowLHRyYW5zaXRpb246YGFsbCAke2UubW90aW9uRHVyYXRpb25TbG93fWAsY29udGVudDonIiAiJ319LFtgJHt0fTpob3ZlcmBdOntbYCY6OmJlZm9yZSwgJHt0fS1hY3Rpb25zYF06e29wYWNpdHk6MX19LFtgJHt0fS1hY3Rpb25zYF06e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsaW5zZXRJbmxpbmVTdGFydDowLHpJbmRleDoxMCx3aWR0aDoiMTAwJSIsd2hpdGVTcGFjZToibm93cmFwIix0ZXh0QWxpZ246ImNlbnRlciIsb3BhY2l0eTowLHRyYW5zaXRpb246YGFsbCAke2UubW90aW9uRHVyYXRpb25TbG93fWAsW2AKKyAgICAgICAgICAgICR7YX0tZXllLAorICAgICAgICAgICAgJHthfS1kb3dubG9hZCwKKyAgICAgICAgICAgICR7YX0tZGVsZXRlCisgICAgICAgICAgYF06e3pJbmRleDoxMCx3aWR0aDpuLG1hcmdpbjpgMCAkeygwLFQuYmYpKGUubWFyZ2luWFhTKX1gLGZvbnRTaXplOm4sY3Vyc29yOiJwb2ludGVyIix0cmFuc2l0aW9uOmBhbGwgJHtlLm1vdGlvbkR1cmF0aW9uU2xvd31gLGNvbG9yOm8sIiY6aG92ZXIiOntjb2xvcjpvfSxzdmc6e3ZlcnRpY2FsQWxpZ246ImJhc2VsaW5lIn19fSxbYCR7dH0tdGh1bWJuYWlsLCAke3R9LXRodW1ibmFpbCBpbWdgXTp7cG9zaXRpb246InN0YXRpYyIsZGlzcGxheToiYmxvY2siLHdpZHRoOiIxMDAlIixoZWlnaHQ6IjEwMCUiLG9iamVjdEZpdDoiY29udGFpbiJ9LFtgJHt0fS1uYW1lYF06e2Rpc3BsYXk6Im5vbmUiLHRleHRBbGlnbjoiY2VudGVyIn0sW2Ake3R9LWZpbGUgKyAke3R9LW5hbWVgXTp7cG9zaXRpb246ImFic29sdXRlIixib3R0b206ZS5tYXJnaW4sZGlzcGxheToiYmxvY2siLHdpZHRoOmBjYWxjKDEwMCUgLSAkeygwLFQuYmYpKGkoZS5wYWRkaW5nWFMpLm11bCgyKS5lcXVhbCgpKX0pYH0sW2Ake3R9LXVwbG9hZGluZ2BdOntbYCYke3R9YF06e2JhY2tncm91bmRDb2xvcjplLmNvbG9yRmlsbEFsdGVyfSxbYCY6OmJlZm9yZSwgJHthfS1leWUsICR7YX0tZG93bmxvYWQsICR7YX0tZGVsZXRlYF06e2Rpc3BsYXk6Im5vbmUifX0sW2Ake3R9LXByb2dyZXNzYF06e2JvdHRvbTplLm1hcmdpblhMLHdpZHRoOmBjYWxjKDEwMCUgLSAkeygwLFQuYmYpKGkoZS5wYWRkaW5nWFMpLm11bCgyKS5lcXVhbCgpKX0pYCxwYWRkaW5nSW5saW5lU3RhcnQ6MH19fSksW2Ake3J9LXdyYXBwZXIke3J9LXBpY3R1cmUtY2lyY2xlLXdyYXBwZXJgXTp7W2Ake3J9JHtyfS1zZWxlY3RgXTp7Ym9yZGVyUmFkaXVzOiI1MCUifX19fTt2YXIgWnQ9ZT0+e2NvbnN0e2NvbXBvbmVudENsczpyfT1lO3JldHVybntbYCR7cn0tcnRsYF06e2RpcmVjdGlvbjoicnRsIn19fTtjb25zdCBPdD1lPT57Y29uc3R7Y29tcG9uZW50Q2xzOnIsY29sb3JUZXh0RGlzYWJsZWQ6YX09ZTtyZXR1cm57W2Ake3J9LXdyYXBwZXJgXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sKDAsZ2UuV2YpKGUpKSx7W3JdOntvdXRsaW5lOjAsImlucHV0W3R5cGU9J2ZpbGUnXSI6e2N1cnNvcjoicG9pbnRlciJ9fSxbYCR7cn0tc2VsZWN0YF06e2Rpc3BsYXk6ImlubGluZS1ibG9jayJ9LFtgJHtyfS1oaWRkZW5gXTp7ZGlzcGxheToibm9uZSJ9LFtgJHtyfS1kaXNhYmxlZGBdOntjb2xvcjphLGN1cnNvcjoibm90LWFsbG93ZWQifX0pfX0sRnQ9ZT0+KHthY3Rpb25zQ29sb3I6ZS5jb2xvclRleHREZXNjcmlwdGlvbn0pO3ZhciBEdD0oMCxidC5JJCkoIlVwbG9hZCIsZT0+e2NvbnN0e2ZvbnRTaXplSGVhZGluZzM6cixmb250SGVpZ2h0OmEsbGluZVdpZHRoOm4sY29udHJvbEhlaWdodExHOm8sY2FsYzppfT1lLHM9KDAseXQuSVgpKGUse3VwbG9hZFRodW1ibmFpbFNpemU6aShyKS5tdWwoMikuZXF1YWwoKSx1cGxvYWRQcm9ncmVzc09mZnNldDppKGkoYSkuZGl2KDIpKS5hZGQobikuZXF1YWwoKSx1cGxvYWRQaWNDYXJkU2l6ZTppKG8pLm11bCgyLjU1KS5lcXVhbCgpfSk7cmV0dXJuW090KHMpLCR0KHMpLEl0KHMpLEV0KHMpLHd0KHMpLFN0KHMpLFp0KHMpLCgwLGh0LlopKHMpXX0sRnQpLHh0PW0oNTg4OTUpLFhlPW0oNTA4ODgpLFB0PW0oNTM5MiksUnQ9bSg4MjU0MyksWmU9bSgyOTM3MiksanQ9bSg5ODQyMyksVXQ9bSg1NzgzOCksTnQ9bSgzMzYwMyksQmU9bSg5NjE1OSksSGU9bSg4MzYyMik7ZnVuY3Rpb24geWUoZSl7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxlKSx7bGFzdE1vZGlmaWVkOmUubGFzdE1vZGlmaWVkLGxhc3RNb2RpZmllZERhdGU6ZS5sYXN0TW9kaWZpZWREYXRlLG5hbWU6ZS5uYW1lLHNpemU6ZS5zaXplLHR5cGU6ZS50eXBlLHVpZDplLnVpZCxwZXJjZW50OjAsb3JpZ2luRmlsZU9iajplfSl9ZnVuY3Rpb24gJGUoZSxyKXtjb25zdCBhPSgwLGsuWikociksbj1hLmZpbmRJbmRleChvPT57bGV0e3VpZDppfT1vO3JldHVybiBpPT09ZS51aWR9KTtyZXR1cm4gbj09PS0xP2EucHVzaChlKTphW25dPWUsYX1mdW5jdGlvbiBPZShlLHIpe2NvbnN0IGE9ZS51aWQhPT12b2lkIDA/InVpZCI6Im5hbWUiO3JldHVybiByLmZpbHRlcihuPT5uW2FdPT09ZVthXSlbMF19ZnVuY3Rpb24gTHQoZSxyKXtjb25zdCBhPWUudWlkIT09dm9pZCAwPyJ1aWQiOiJuYW1lIixuPXIuZmlsdGVyKG89Pm9bYV0hPT1lW2FdKTtyZXR1cm4gbi5sZW5ndGg9PT1yLmxlbmd0aD9udWxsOm59Y29uc3QgVHQ9ZnVuY3Rpb24oKXtjb25zdCByPShhcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXZvaWQgMD9hcmd1bWVudHNbMF06IiIpLnNwbGl0KCIvIiksbj1yW3IubGVuZ3RoLTFdLnNwbGl0KC8jfFw/LylbMF07cmV0dXJuKC9cLlteLi9cXF0qJC8uZXhlYyhuKXx8WyIiXSlbMF19LFdlPWU9PmUuaW5kZXhPZigiaW1hZ2UvIik9PT0wLEF0PWU9PntpZihlLnR5cGUmJiFlLnRodW1iVXJsKXJldHVybiBXZShlLnR5cGUpO2NvbnN0IHI9ZS50aHVtYlVybHx8ZS51cmx8fCIiLGE9VHQocik7cmV0dXJuL15kYXRhOmltYWdlXC8vLnRlc3Qocil8fC8od2VicHxzdmd8cG5nfGdpZnxqcGd8anBlZ3xqZmlmfGJtcHxkcGd8aWNvfGhlaWN8aGVpZikkL2kudGVzdChhKT8hMDohKC9eZGF0YTovLnRlc3Qocil8fGEpfSxfPTIwMDtmdW5jdGlvbiBNdChlKXtyZXR1cm4gbmV3IFByb21pc2Uocj0+e2lmKCFlLnR5cGV8fCFXZShlLnR5cGUpKXtyKCIiKTtyZXR1cm59Y29uc3QgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTthLndpZHRoPV8sYS5oZWlnaHQ9XyxhLnN0eWxlLmNzc1RleHQ9YHBvc2l0aW9uOiBmaXhlZDsgbGVmdDogMDsgdG9wOiAwOyB3aWR0aDogJHtffXB4OyBoZWlnaHQ6ICR7X31weDsgei1pbmRleDogOTk5OTsgZGlzcGxheTogbm9uZTtgLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSk7Y29uc3Qgbj1hLmdldENvbnRleHQoIjJkIiksbz1uZXcgSW1hZ2U7aWYoby5vbmxvYWQ9KCk9Pntjb25zdHt3aWR0aDppLGhlaWdodDpzfT1vO2xldCB0PV8scD1fLGQ9MCx1PTA7aT5zPyhwPXMqKF8vaSksdT0tKHAtdCkvMik6KHQ9aSooXy9zKSxkPS0odC1wKS8yKSxuLmRyYXdJbWFnZShvLGQsdSx0LHApO2NvbnN0IGY9YS50b0RhdGFVUkwoKTtkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGEpLHdpbmRvdy5VUkwucmV2b2tlT2JqZWN0VVJMKG8uc3JjKSxyKGYpfSxvLmNyb3NzT3JpZ2luPSJhbm9ueW1vdXMiLGUudHlwZS5zdGFydHNXaXRoKCJpbWFnZS9zdmcreG1sIikpe2NvbnN0IGk9bmV3IEZpbGVSZWFkZXI7aS5vbmxvYWQ9KCk9PntpLnJlc3VsdCYmdHlwZW9mIGkucmVzdWx0PT0ic3RyaW5nIiYmKG8uc3JjPWkucmVzdWx0KX0saS5yZWFkQXNEYXRhVVJMKGUpfWVsc2UgaWYoZS50eXBlLnN0YXJ0c1dpdGgoImltYWdlL2dpZiIpKXtjb25zdCBpPW5ldyBGaWxlUmVhZGVyO2kub25sb2FkPSgpPT57aS5yZXN1bHQmJnIoaS5yZXN1bHQpfSxpLnJlYWRBc0RhdGFVUkwoZSl9ZWxzZSBvLnNyYz13aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChlKX0pfXZhciB6dD1tKDQ4Njg5KSxYdD1tKDIzNDMwKSxCdD1tKDk5NjExKSxIdD1tKDM4NzAzKSxXdD1tKDgzMDYyKSxHdD1sLmZvcndhcmRSZWYoKGUscik9PntsZXR7cHJlZml4Q2xzOmEsY2xhc3NOYW1lOm4sc3R5bGU6byxsb2NhbGU6aSxsaXN0VHlwZTpzLGZpbGU6dCxpdGVtczpwLHByb2dyZXNzOmQsaWNvblJlbmRlcjp1LGFjdGlvbkljb25SZW5kZXI6ZixpdGVtUmVuZGVyOmgsaXNJbWdVcmw6JCxzaG93UHJldmlld0ljb246YixzaG93UmVtb3ZlSWNvbjp3LHNob3dEb3dubG9hZEljb246QyxwcmV2aWV3SWNvbjpPLHJlbW92ZUljb246Uyxkb3dubG9hZEljb246RixleHRyYTpJLG9uUHJldmlldzpjLG9uRG93bmxvYWQ6TCxvbkNsb3NlOkV9PWU7dmFyIEIsWTtjb25zdHtzdGF0dXM6S309dCxbQSxlZV09bC51c2VTdGF0ZShLKTtsLnVzZUVmZmVjdCgoKT0+e0shPT0icmVtb3ZlZCImJmVlKEspfSxbS10pO2NvbnN0W29lLGllXT1sLnVzZVN0YXRlKCExKTtsLnVzZUVmZmVjdCgoKT0+e2NvbnN0IFA9c2V0VGltZW91dCgoKT0+e2llKCEwKX0sMzAwKTtyZXR1cm4oKT0+e2NsZWFyVGltZW91dChQKX19LFtdKTtjb25zdCBzZT11KHQpO2xldCBHPWwuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmAke2F9LWljb25gfSxzZSk7aWYocz09PSJwaWN0dXJlInx8cz09PSJwaWN0dXJlLWNhcmQifHxzPT09InBpY3R1cmUtY2lyY2xlIilpZihBPT09InVwbG9hZGluZyJ8fCF0LnRodW1iVXJsJiYhdC51cmwpe2NvbnN0IFA9eigpKGAke2F9LWxpc3QtaXRlbS10aHVtYm5haWxgLHtbYCR7YX0tbGlzdC1pdGVtLWZpbGVgXTpBIT09InVwbG9hZGluZyJ9KTtHPWwuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOlB9LHNlKX1lbHNle2NvbnN0IFA9JCE9bnVsbCYmJCh0KT9sLmNyZWF0ZUVsZW1lbnQoImltZyIse3NyYzp0LnRodW1iVXJsfHx0LnVybCxhbHQ6dC5uYW1lLGNsYXNzTmFtZTpgJHthfS1saXN0LWl0ZW0taW1hZ2VgLGNyb3NzT3JpZ2luOnQuY3Jvc3NPcmlnaW59KTpzZSx4PXooKShgJHthfS1saXN0LWl0ZW0tdGh1bWJuYWlsYCx7W2Ake2F9LWxpc3QtaXRlbS1maWxlYF06JCYmISQodCl9KTtHPWwuY3JlYXRlRWxlbWVudCgiYSIse2NsYXNzTmFtZTp4LG9uQ2xpY2s6cT0+Yyh0LHEpLGhyZWY6dC51cmx8fHQudGh1bWJVcmwsdGFyZ2V0OiJfYmxhbmsiLHJlbDoibm9vcGVuZXIgbm9yZWZlcnJlciJ9LFApfWNvbnN0IFU9eigpKGAke2F9LWxpc3QtaXRlbWAsYCR7YX0tbGlzdC1pdGVtLSR7QX1gKSx0ZT10eXBlb2YgdC5saW5rUHJvcHM9PSJzdHJpbmciP0pTT04ucGFyc2UodC5saW5rUHJvcHMpOnQubGlua1Byb3BzLGxlPSh0eXBlb2Ygdz09ImZ1bmN0aW9uIj93KHQpOncpP2YoKHR5cGVvZiBTPT0iZnVuY3Rpb24iP1ModCk6Uyl8fGwuY3JlYXRlRWxlbWVudCh6dC5aLG51bGwpLCgpPT5FKHQpLGEsaS5yZW1vdmVGaWxlLCEwKTpudWxsLG1lPSh0eXBlb2YgQz09ImZ1bmN0aW9uIj9DKHQpOkMpJiZBPT09ImRvbmUiP2YoKHR5cGVvZiBGPT0iZnVuY3Rpb24iP0YodCk6Ril8fGwuY3JlYXRlRWxlbWVudChYdC5aLG51bGwpLCgpPT5MKHQpLGEsaS5kb3dubG9hZEZpbGUpOm51bGwscmU9cyE9PSJwaWN0dXJlLWNhcmQiJiZzIT09InBpY3R1cmUtY2lyY2xlIiYmbC5jcmVhdGVFbGVtZW50KCJzcGFuIix7a2V5OiJkb3dubG9hZC1kZWxldGUiLGNsYXNzTmFtZTp6KCkoYCR7YX0tbGlzdC1pdGVtLWFjdGlvbnNgLHtwaWN0dXJlOnM9PT0icGljdHVyZSJ9KX0sbWUsbGUpLEo9dHlwZW9mIEk9PSJmdW5jdGlvbiI/SSh0KTpJLGc9SiYmbC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmAke2F9LWxpc3QtaXRlbS1leHRyYWB9LEopLGo9eigpKGAke2F9LWxpc3QtaXRlbS1uYW1lYCksVj10LnVybD9sLmNyZWF0ZUVsZW1lbnQoImEiLE9iamVjdC5hc3NpZ24oe2tleToidmlldyIsdGFyZ2V0OiJfYmxhbmsiLHJlbDoibm9vcGVuZXIgbm9yZWZlcnJlciIsY2xhc3NOYW1lOmosdGl0bGU6dC5uYW1lfSx0ZSx7aHJlZjp0LnVybCxvbkNsaWNrOlA9PmModCxQKX0pLHQubmFtZSxnKTpsLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtrZXk6InZpZXciLGNsYXNzTmFtZTpqLG9uQ2xpY2s6UD0+Yyh0LFApLHRpdGxlOnQubmFtZX0sdC5uYW1lLGcpLEg9KHR5cGVvZiBiPT0iZnVuY3Rpb24iP2IodCk6YikmJih0LnVybHx8dC50aHVtYlVybCk/bC5jcmVhdGVFbGVtZW50KCJhIix7aHJlZjp0LnVybHx8dC50aHVtYlVybCx0YXJnZXQ6Il9ibGFuayIscmVsOiJub29wZW5lciBub3JlZmVycmVyIixvbkNsaWNrOlA9PmModCxQKSx0aXRsZTppLnByZXZpZXdGaWxlfSx0eXBlb2YgTz09ImZ1bmN0aW9uIj9PKHQpOk98fGwuY3JlYXRlRWxlbWVudChCdC5aLG51bGwpKTpudWxsLG5lPShzPT09InBpY3R1cmUtY2FyZCJ8fHM9PT0icGljdHVyZS1jaXJjbGUiKSYmQSE9PSJ1cGxvYWRpbmciJiZsLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6YCR7YX0tbGlzdC1pdGVtLWFjdGlvbnNgfSxILEE9PT0iZG9uZSImJm1lLGxlKSx7Z2V0UHJlZml4Q2xzOmFlfT1sLnVzZUNvbnRleHQoRWUuRV8pLGhlPWFlKCksUT1sLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpVfSxHLFYscmUsbmUsb2UmJmwuY3JlYXRlRWxlbWVudChaZS5aUCx7bW90aW9uTmFtZTpgJHtoZX0tZmFkZWAsdmlzaWJsZTpBPT09InVwbG9hZGluZyIsbW90aW9uRGVhZGxpbmU6MmUzfSxQPT57bGV0e2NsYXNzTmFtZTp4fT1QO2NvbnN0IHE9InBlcmNlbnQiaW4gdD9sLmNyZWF0ZUVsZW1lbnQoSHQuWixPYmplY3QuYXNzaWduKHt9LGQse3R5cGU6ImxpbmUiLHBlcmNlbnQ6dC5wZXJjZW50LCJhcmlhLWxhYmVsIjp0WyJhcmlhLWxhYmVsIl0sImFyaWEtbGFiZWxsZWRieSI6dFsiYXJpYS1sYWJlbGxlZGJ5Il19KSk6bnVsbDtyZXR1cm4gbC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6eigpKGAke2F9LWxpc3QtaXRlbS1wcm9ncmVzc2AseCl9LHEpfSkpLGNlPXQucmVzcG9uc2UmJnR5cGVvZiB0LnJlc3BvbnNlPT0ic3RyaW5nIj90LnJlc3BvbnNlOigoQj10LmVycm9yKT09PW51bGx8fEI9PT12b2lkIDA/dm9pZCAwOkIuc3RhdHVzVGV4dCl8fCgoWT10LmVycm9yKT09PW51bGx8fFk9PT12b2lkIDA/dm9pZCAwOlkubWVzc2FnZSl8fGkudXBsb2FkRXJyb3IsYmU9QT09PSJlcnJvciI/bC5jcmVhdGVFbGVtZW50KFd0Llose3RpdGxlOmNlLGdldFBvcHVwQ29udGFpbmVyOlA9PlAucGFyZW50Tm9kZX0sUSk6UTtyZXR1cm4gbC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6eigpKGAke2F9LWxpc3QtaXRlbS1jb250YWluZXJgLG4pLHN0eWxlOm8scmVmOnJ9LGg/aChiZSx0LHAse2Rvd25sb2FkOkwuYmluZChudWxsLHQpLHByZXZpZXc6Yy5iaW5kKG51bGwsdCkscmVtb3ZlOkUuYmluZChudWxsLHQpfSk6YmUpfSk7Y29uc3QgVnQ9KGUscik9Pntjb25zdHtsaXN0VHlwZTphPSJ0ZXh0IixwcmV2aWV3RmlsZTpuPU10LG9uUHJldmlldzpvLG9uRG93bmxvYWQ6aSxvblJlbW92ZTpzLGxvY2FsZTp0LGljb25SZW5kZXI6cCxpc0ltYWdlVXJsOmQ9QXQscHJlZml4Q2xzOnUsaXRlbXM6Zj1bXSxzaG93UHJldmlld0ljb246aD0hMCxzaG93UmVtb3ZlSWNvbjokPSEwLHNob3dEb3dubG9hZEljb246Yj0hMSxyZW1vdmVJY29uOncscHJldmlld0ljb246Qyxkb3dubG9hZEljb246TyxleHRyYTpTLHByb2dyZXNzOkY9e3NpemU6Wy0xLDJdLHNob3dJbmZvOiExfSxhcHBlbmRBY3Rpb246SSxhcHBlbmRBY3Rpb25WaXNpYmxlOmM9ITAsaXRlbVJlbmRlcjpMLGRpc2FibGVkOkV9PWUsQj0oMCxVdC5aKSgpLFtZLEtdPWwudXNlU3RhdGUoITEpLEE9WyJwaWN0dXJlLWNhcmQiLCJwaWN0dXJlLWNpcmNsZSJdLmluY2x1ZGVzKGEpO2wudXNlRWZmZWN0KCgpPT57YS5zdGFydHNXaXRoKCJwaWN0dXJlIikmJihmfHxbXSkuZm9yRWFjaChnPT57IShnLm9yaWdpbkZpbGVPYmogaW5zdGFuY2VvZiBGaWxlfHxnLm9yaWdpbkZpbGVPYmogaW5zdGFuY2VvZiBCbG9iKXx8Zy50aHVtYlVybCE9PXZvaWQgMHx8KGcudGh1bWJVcmw9IiIsbj09bnVsbHx8bihnLm9yaWdpbkZpbGVPYmopLnRoZW4oaj0+e2cudGh1bWJVcmw9anx8IiIsQigpfSkpfSl9LFthLGYsbl0pLGwudXNlRWZmZWN0KCgpPT57SyghMCl9LFtdKTtjb25zdCBlZT0oZyxqKT0+e2lmKG8pcmV0dXJuIGo9PW51bGx8fGoucHJldmVudERlZmF1bHQoKSxvKGcpfSxvZT1nPT57dHlwZW9mIGk9PSJmdW5jdGlvbiI/aShnKTpnLnVybCYmd2luZG93Lm9wZW4oZy51cmwpfSxpZT1nPT57cz09bnVsbHx8cyhnKX0sc2U9Zz0+e2lmKHApcmV0dXJuIHAoZyxhKTtjb25zdCBqPWcuc3RhdHVzPT09InVwbG9hZGluZyI7aWYoYS5zdGFydHNXaXRoKCJwaWN0dXJlIikpe2NvbnN0IFY9YT09PSJwaWN0dXJlIj9sLmNyZWF0ZUVsZW1lbnQoWGUuWixudWxsKTp0LnVwbG9hZGluZyxIPWQhPW51bGwmJmQoZyk/bC5jcmVhdGVFbGVtZW50KFJ0LlosbnVsbCk6bC5jcmVhdGVFbGVtZW50KHh0LlosbnVsbCk7cmV0dXJuIGo/VjpIfXJldHVybiBqP2wuY3JlYXRlRWxlbWVudChYZS5aLG51bGwpOmwuY3JlYXRlRWxlbWVudChQdC5aLG51bGwpfSxHPShnLGosVixILG5lKT0+e2NvbnN0IGFlPXt0eXBlOiJ0ZXh0IixzaXplOiJzbWFsbCIsdGl0bGU6SCxvbkNsaWNrOmhlPT57dmFyIFEsY2U7aigpLGwuaXNWYWxpZEVsZW1lbnQoZykmJigoY2U9KFE9Zy5wcm9wcykub25DbGljayk9PT1udWxsfHxjZT09PXZvaWQgMHx8Y2UuY2FsbChRLGhlKSl9LGNsYXNzTmFtZTpgJHtWfS1saXN0LWl0ZW0tYWN0aW9uYH07cmV0dXJuIG5lJiYoYWUuZGlzYWJsZWQ9RSksbC5pc1ZhbGlkRWxlbWVudChnKT9sLmNyZWF0ZUVsZW1lbnQoSGUuWlAsT2JqZWN0LmFzc2lnbih7fSxhZSx7aWNvbjooMCxCZS5UbSkoZyxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZy5wcm9wcykse29uQ2xpY2s6KCk9Pnt9fSkpfSkpOmwuY3JlYXRlRWxlbWVudChIZS5aUCxPYmplY3QuYXNzaWduKHt9LGFlKSxsLmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwsZykpfTtsLnVzZUltcGVyYXRpdmVIYW5kbGUociwoKT0+KHtoYW5kbGVQcmV2aWV3OmVlLGhhbmRsZURvd25sb2FkOm9lfSkpO2NvbnN0e2dldFByZWZpeENsczpVfT1sLnVzZUNvbnRleHQoRWUuRV8pLHRlPVUoInVwbG9hZCIsdSksbGU9VSgpLG1lPXooKShgJHt0ZX0tbGlzdGAsYCR7dGV9LWxpc3QtJHthfWApLHJlPWwudXNlTWVtbygoKT0+KDAsanQuWikoKDAsTnQuWikobGUpLFsib25BcHBlYXJFbmQiLCJvbkVudGVyRW5kIiwib25MZWF2ZUVuZCJdKSxbbGVdKSxKPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxBP3t9OnJlKSx7bW90aW9uRGVhZGxpbmU6MmUzLG1vdGlvbk5hbWU6YCR7dGV9LSR7QT8iYW5pbWF0ZS1pbmxpbmUiOiJhbmltYXRlIn1gLGtleXM6KDAsay5aKShmLm1hcChnPT4oe2tleTpnLnVpZCxmaWxlOmd9KSkpLG1vdGlvbkFwcGVhcjpZfSk7cmV0dXJuIGwuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOm1lfSxsLmNyZWF0ZUVsZW1lbnQoWmUuVjQsT2JqZWN0LmFzc2lnbih7fSxKLHtjb21wb25lbnQ6ITF9KSxnPT57bGV0e2tleTpqLGZpbGU6VixjbGFzc05hbWU6SCxzdHlsZTpuZX09ZztyZXR1cm4gbC5jcmVhdGVFbGVtZW50KEd0LHtrZXk6aixsb2NhbGU6dCxwcmVmaXhDbHM6dGUsY2xhc3NOYW1lOkgsc3R5bGU6bmUsZmlsZTpWLGl0ZW1zOmYscHJvZ3Jlc3M6RixsaXN0VHlwZTphLGlzSW1nVXJsOmQsc2hvd1ByZXZpZXdJY29uOmgsc2hvd1JlbW92ZUljb246JCxzaG93RG93bmxvYWRJY29uOmIscmVtb3ZlSWNvbjp3LHByZXZpZXdJY29uOkMsZG93bmxvYWRJY29uOk8sZXh0cmE6UyxpY29uUmVuZGVyOnNlLGFjdGlvbkljb25SZW5kZXI6RyxpdGVtUmVuZGVyOkwsb25QcmV2aWV3OmVlLG9uRG93bmxvYWQ6b2Usb25DbG9zZTppZX0pfSksSSYmbC5jcmVhdGVFbGVtZW50KFplLlpQLE9iamVjdC5hc3NpZ24oe30sSix7dmlzaWJsZTpjLGZvcmNlUmVuZGVyOiEwfSksZz0+e2xldHtjbGFzc05hbWU6aixzdHlsZTpWfT1nO3JldHVybigwLEJlLlRtKShJLEg9Pih7Y2xhc3NOYW1lOnooKShILmNsYXNzTmFtZSxqKSxzdHlsZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxWKSx7cG9pbnRlckV2ZW50czpqPyJub25lIjp2b2lkIDB9KSxILnN0eWxlKX0pKX0pKX07dmFyIEt0PWwuZm9yd2FyZFJlZihWdCksSnQ9ZnVuY3Rpb24oZSxyLGEsbil7ZnVuY3Rpb24gbyhpKXtyZXR1cm4gaSBpbnN0YW5jZW9mIGE/aTpuZXcgYShmdW5jdGlvbihzKXtzKGkpfSl9cmV0dXJuIG5ldyhhfHwoYT1Qcm9taXNlKSkoZnVuY3Rpb24oaSxzKXtmdW5jdGlvbiB0KHUpe3RyeXtkKG4ubmV4dCh1KSl9Y2F0Y2goZil7cyhmKX19ZnVuY3Rpb24gcCh1KXt0cnl7ZChuLnRocm93KHUpKX1jYXRjaChmKXtzKGYpfX1mdW5jdGlvbiBkKHUpe3UuZG9uZT9pKHUudmFsdWUpOm8odS52YWx1ZSkudGhlbih0LHApfWQoKG49bi5hcHBseShlLHJ8fFtdKSkubmV4dCgpKX0pfTtjb25zdCB2ZT1gX19MSVNUX0lHTk9SRV8ke0RhdGUubm93KCl9X19gLFl0PShlLHIpPT57Y29uc3R7ZmlsZUxpc3Q6YSxkZWZhdWx0RmlsZUxpc3Q6bixvblJlbW92ZTpvLHNob3dVcGxvYWRMaXN0Omk9ITAsbGlzdFR5cGU6cz0idGV4dCIsb25QcmV2aWV3OnQsb25Eb3dubG9hZDpwLG9uQ2hhbmdlOmQsb25Ecm9wOnUscHJldmlld0ZpbGU6ZixkaXNhYmxlZDpoLGxvY2FsZTokLGljb25SZW5kZXI6Yixpc0ltYWdlVXJsOncscHJvZ3Jlc3M6QyxwcmVmaXhDbHM6TyxjbGFzc05hbWU6Uyx0eXBlOkY9InNlbGVjdCIsY2hpbGRyZW46SSxzdHlsZTpjLGl0ZW1SZW5kZXI6TCxtYXhDb3VudDpFLGRhdGE6Qj17fSxtdWx0aXBsZTpZPSExLGhhc0NvbnRyb2xJbnNpZGU6Sz0hMCxhY3Rpb246QT0iIixhY2NlcHQ6ZWU9IiIsc3VwcG9ydFNlcnZlclJlbmRlcjpvZT0hMCxyb290Q2xhc3NOYW1lOmllfT1lLHNlPWwudXNlQ29udGV4dChmdC5aKSxHPWghPW51bGw/aDpzZSxbVSx0ZV09KDAsbXQuWikobnx8W10se3ZhbHVlOmEscG9zdFN0YXRlOnY9PnYhPW51bGw/djpbXX0pLFtsZSxtZV09bC51c2VTdGF0ZSgiZHJvcCIpLHJlPWwudXNlUmVmKG51bGwpLEo9bC51c2VSZWYobnVsbCk7bC51c2VNZW1vKCgpPT57Y29uc3Qgdj1EYXRlLm5vdygpOyhhfHxbXSkuZm9yRWFjaCgoWixSKT0+eyFaLnVpZCYmIU9iamVjdC5pc0Zyb3plbihaKSYmKFoudWlkPWBfX0FVVE9fXyR7dn1fJHtSfV9fYCl9KX0sW2FdKTtjb25zdCBnPSh2LFosUik9PntsZXQgeT0oMCxrLlopKFopLEQ9ITE7RT09PTE/eT15LnNsaWNlKC0xKTpFJiYoRD15Lmxlbmd0aD5FLHk9eS5zbGljZSgwLEUpKSwoMCxSZS5mbHVzaFN5bmMpKCgpPT57dGUoeSl9KTtjb25zdCBNPXtmaWxlOnYsZmlsZUxpc3Q6eX07UiYmKE0uZXZlbnQ9UiksKCFEfHx2LnN0YXR1cz09PSJyZW1vdmVkInx8eS5zb21lKGRlPT5kZS51aWQ9PT12LnVpZCkpJiYoMCxSZS5mbHVzaFN5bmMpKCgpPT57ZD09bnVsbHx8ZChNKX0pfSxqPSh2LFopPT5KdCh2b2lkIDAsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtjb25zdHtiZWZvcmVVcGxvYWQ6Uix0cmFuc2Zvcm1GaWxlOnl9PWU7bGV0IEQ9djtpZihSKXtjb25zdCBNPXlpZWxkIFIodixaKTtpZihNPT09ITEpcmV0dXJuITE7aWYoZGVsZXRlIHZbdmVdLE09PT12ZSlyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHYsdmUse3ZhbHVlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLCExO3R5cGVvZiBNPT0ib2JqZWN0IiYmTSYmKEQ9TSl9cmV0dXJuIHkmJihEPXlpZWxkIHkoRCkpLER9KSxWPXY9Pntjb25zdCBaPXYuZmlsdGVyKEQ9PiFELmZpbGVbdmVdKTtpZighWi5sZW5ndGgpcmV0dXJuO2NvbnN0IFI9Wi5tYXAoRD0+eWUoRC5maWxlKSk7bGV0IHk9KDAsay5aKShVKTtSLmZvckVhY2goRD0+e3k9JGUoRCx5KX0pLFIuZm9yRWFjaCgoRCxNKT0+e2xldCBkZT1EO2lmKFpbTV0ucGFyc2VkRmlsZSlELnN0YXR1cz0idXBsb2FkaW5nIjtlbHNle2NvbnN0e29yaWdpbkZpbGVPYmo6ZmV9PUQ7bGV0IHVlO3RyeXt1ZT1uZXcgRmlsZShbZmVdLGZlLm5hbWUse3R5cGU6ZmUudHlwZX0pfWNhdGNoKHlyKXt1ZT1uZXcgQmxvYihbZmVdLHt0eXBlOmZlLnR5cGV9KSx1ZS5uYW1lPWZlLm5hbWUsdWUubGFzdE1vZGlmaWVkRGF0ZT1uZXcgRGF0ZSx1ZS5sYXN0TW9kaWZpZWQ9bmV3IERhdGUoKS5nZXRUaW1lKCl9dWUudWlkPUQudWlkLGRlPXVlfWcoZGUseSl9KX0sSD0odixaLFIpPT57dHJ5e3R5cGVvZiB2PT0ic3RyaW5nIiYmKHY9SlNPTi5wYXJzZSh2KSl9Y2F0Y2goTSl7fWlmKCFPZShaLFUpKXJldHVybjtjb25zdCB5PXllKFopO3kuc3RhdHVzPSJkb25lIix5LnBlcmNlbnQ9MTAwLHkucmVzcG9uc2U9dix5Lnhocj1SO2NvbnN0IEQ9JGUoeSxVKTtnKHksRCl9LG5lPSh2LFopPT57aWYoIU9lKFosVSkpcmV0dXJuO2NvbnN0IFI9eWUoWik7Ui5zdGF0dXM9InVwbG9hZGluZyIsUi5wZXJjZW50PXYucGVyY2VudDtjb25zdCB5PSRlKFIsVSk7ZyhSLHksdil9LGFlPSh2LFosUik9PntpZighT2UoUixVKSlyZXR1cm47Y29uc3QgeT15ZShSKTt5LmVycm9yPXYseS5yZXNwb25zZT1aLHkuc3RhdHVzPSJlcnJvciI7Y29uc3QgRD0kZSh5LFUpO2coeSxEKX0saGU9dj0+e2xldCBaO1Byb21pc2UucmVzb2x2ZSh0eXBlb2Ygbz09ImZ1bmN0aW9uIj9vKHYpOm8pLnRoZW4oUj0+e3ZhciB5O2lmKFI9PT0hMSlyZXR1cm47Y29uc3QgRD1MdCh2LFUpO0QmJihaPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx2KSx7c3RhdHVzOiJyZW1vdmVkIn0pLFU9PW51bGx8fFUuZm9yRWFjaChNPT57Y29uc3QgZGU9Wi51aWQhPT12b2lkIDA/InVpZCI6Im5hbWUiO01bZGVdPT09WltkZV0mJiFPYmplY3QuaXNGcm96ZW4oTSkmJihNLnN0YXR1cz0icmVtb3ZlZCIpfSksKHk9cmUuY3VycmVudCk9PT1udWxsfHx5PT09dm9pZCAwfHx5LmFib3J0KFopLGcoWixEKSl9KX0sUT12PT57bWUodi50eXBlKSx2LnR5cGU9PT0iZHJvcCImJih1PT1udWxsfHx1KHYpKX07bC51c2VJbXBlcmF0aXZlSGFuZGxlKHIsKCk9Pih7b25CYXRjaFN0YXJ0OlYsb25TdWNjZXNzOkgsb25Qcm9ncmVzczpuZSxvbkVycm9yOmFlLGZpbGVMaXN0OlUsdXBsb2FkOnJlLmN1cnJlbnQsbmF0aXZlRWxlbWVudDpKLmN1cnJlbnR9KSk7Y29uc3R7Z2V0UHJlZml4Q2xzOmNlLGRpcmVjdGlvbjpiZSx1cGxvYWQ6UH09bC51c2VDb250ZXh0KEVlLkVfKSx4PWNlKCJ1cGxvYWQiLE8pLHE9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHtvbkJhdGNoU3RhcnQ6VixvbkVycm9yOmFlLG9uUHJvZ3Jlc3M6bmUsb25TdWNjZXNzOkh9LGUpLHtkYXRhOkIsbXVsdGlwbGU6WSxhY3Rpb246QSxhY2NlcHQ6ZWUsc3VwcG9ydFNlcnZlclJlbmRlcjpvZSxwcmVmaXhDbHM6eCxkaXNhYmxlZDpHLGJlZm9yZVVwbG9hZDpqLG9uQ2hhbmdlOnZvaWQgMCxoYXNDb250cm9sSW5zaWRlOkt9KTtkZWxldGUgcS5jbGFzc05hbWUsZGVsZXRlIHEuc3R5bGUsKCFJfHxHKSYmZGVsZXRlIHEuaWQ7Y29uc3QgVmU9YCR7eH0td3JhcHBlcmAsW0RlLEtlLF90XT1EdCh4LFZlKSxbZXJdPSgwLGd0LlopKCJVcGxvYWQiLHZ0LlouVXBsb2FkKSx7c2hvd1JlbW92ZUljb246SmUsc2hvd1ByZXZpZXdJY29uOnRyLHNob3dEb3dubG9hZEljb246cnIscmVtb3ZlSWNvbjpucixwcmV2aWV3SWNvbjphcixkb3dubG9hZEljb246b3IsZXh0cmE6aXJ9PXR5cGVvZiBpPT0iYm9vbGVhbiI/e306aSxzcj10eXBlb2YgSmU9PSJ1bmRlZmluZWQiPyFHOkplLHhlPSh2LFopPT5pP2wuY3JlYXRlRWxlbWVudChLdCx7cHJlZml4Q2xzOngsbGlzdFR5cGU6cyxpdGVtczpVLHByZXZpZXdGaWxlOmYsb25QcmV2aWV3OnQsb25Eb3dubG9hZDpwLG9uUmVtb3ZlOmhlLHNob3dSZW1vdmVJY29uOnNyLHNob3dQcmV2aWV3SWNvbjp0cixzaG93RG93bmxvYWRJY29uOnJyLHJlbW92ZUljb246bnIscHJldmlld0ljb246YXIsZG93bmxvYWRJY29uOm9yLGljb25SZW5kZXI6YixleHRyYTppcixsb2NhbGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGVyKSwkKSxpc0ltYWdlVXJsOncscHJvZ3Jlc3M6QyxhcHBlbmRBY3Rpb246dixhcHBlbmRBY3Rpb25WaXNpYmxlOlosaXRlbVJlbmRlcjpMLGRpc2FibGVkOkd9KTp2LFBlPXooKShWZSxTLGllLEtlLF90LFA9PW51bGw/dm9pZCAwOlAuY2xhc3NOYW1lLHtbYCR7eH0tcnRsYF06YmU9PT0icnRsIixbYCR7eH0tcGljdHVyZS1jYXJkLXdyYXBwZXJgXTpzPT09InBpY3R1cmUtY2FyZCIsW2Ake3h9LXBpY3R1cmUtY2lyY2xlLXdyYXBwZXJgXTpzPT09InBpY3R1cmUtY2lyY2xlIn0pLGxyPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxQPT1udWxsP3ZvaWQgMDpQLnN0eWxlKSxjKTtpZihGPT09ImRyYWciKXtjb25zdCB2PXooKShLZSx4LGAke3h9LWRyYWdgLHtbYCR7eH0tZHJhZy11cGxvYWRpbmdgXTpVLnNvbWUoWj0+Wi5zdGF0dXM9PT0idXBsb2FkaW5nIiksW2Ake3h9LWRyYWctaG92ZXJgXTpsZT09PSJkcmFnb3ZlciIsW2Ake3h9LWRpc2FibGVkYF06RyxbYCR7eH0tcnRsYF06YmU9PT0icnRsIn0pO3JldHVybiBEZShsLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6UGUscmVmOkp9LGwuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnYsc3R5bGU6bHIsb25Ecm9wOlEsb25EcmFnT3ZlcjpRLG9uRHJhZ0xlYXZlOlF9LGwuY3JlYXRlRWxlbWVudChNZSxPYmplY3QuYXNzaWduKHt9LHEse3JlZjpyZSxjbGFzc05hbWU6YCR7eH0tYnRuYH0pLGwuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmAke3h9LWRyYWctY29udGFpbmVyYH0sSSkpKSx4ZSgpKSl9Y29uc3QgY3I9eigpKHgsYCR7eH0tc2VsZWN0YCx7W2Ake3h9LWRpc2FibGVkYF06RyxbYCR7eH0taGlkZGVuYF06IUl9KSxZZT1sLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpjcn0sbC5jcmVhdGVFbGVtZW50KE1lLE9iamVjdC5hc3NpZ24oe30scSx7cmVmOnJlfSkpKTtyZXR1cm4gRGUocz09PSJwaWN0dXJlLWNhcmQifHxzPT09InBpY3R1cmUtY2lyY2xlIj9sLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6UGUscmVmOkp9LHhlKFllLCEhSSkpOmwuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpQZSxyZWY6Sn0sWWUseGUoKSkpfTt2YXIgR2U9bC5mb3J3YXJkUmVmKFl0KSxRdD1mdW5jdGlvbihlLHIpe3ZhciBhPXt9O2Zvcih2YXIgbiBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLG4pJiZyLmluZGV4T2Yobik8MCYmKGFbbl09ZVtuXSk7aWYoZSE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBvPTAsbj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO288bi5sZW5ndGg7bysrKXIuaW5kZXhPZihuW29dKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxuW29dKSYmKGFbbltvXV09ZVtuW29dXSk7cmV0dXJuIGF9LHF0PWwuZm9yd2FyZFJlZigoZSxyKT0+e3ZhcntzdHlsZTphLGhlaWdodDpuLGhhc0NvbnRyb2xJbnNpZGU6bz0hMX09ZSxpPVF0KGUsWyJzdHlsZSIsImhlaWdodCIsImhhc0NvbnRyb2xJbnNpZGUiXSk7cmV0dXJuIGwuY3JlYXRlRWxlbWVudChHZSxPYmplY3QuYXNzaWduKHtyZWY6cixoYXNDb250cm9sSW5zaWRlOm99LGkse3R5cGU6ImRyYWciLHN0eWxlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxhKSx7aGVpZ2h0Om59KX0pKX0pO2NvbnN0IEZlPUdlO0ZlLkRyYWdnZXI9cXQsRmUuTElTVF9JR05PUkU9dmU7dmFyIGt0PUZlfX1dKTsKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvMzg1Ni45MzhiZGIxYi5jaHVuay5jc3MgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzM4NTYuOTM4YmRiMWIuY2h1bmsuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRiZDJiMWMKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzM4NTYuOTM4YmRiMWIuY2h1bmsuY3NzCkBAIC0wLDAgKzEgQEAKKy5GSllTMzU1dlAwVDdnQmpNb2FZNXttYXgtd2lkdGg6MTIwMHB4O21hcmdpbjowIGF1dG87cGFkZGluZzoyNHB4O21pbi1oZWlnaHQ6MTAwdmg7YmFja2dyb3VuZDojZjVmNWY1fS5hVDdVVzZPMWtxQTNrTUZVVGx0dXtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyLXJhZGl1czo4cHg7Ym94LXNoYWRvdzowIDJweCA4cHggIzAwMDAwMDFhfS5RTU04aDJzSHFRU01tbXF3azRpQntwYWRkaW5nOjE2cHggMH0uQ2ZGaEhSdzNqYVFkYlhkQUhUWmJ7bWFyZ2luLWJvdHRvbToxNnB4O2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjthbGlnbi1pdGVtczpjZW50ZXJ9LlRtYmFOQU5FVl9NZFpNa0IwY29ke3RleHQtYWxpZ246Y2VudGVyO3BhZGRpbmc6NjBweCAwO2NvbG9yOiM5OTl9LlRtYmFOQU5FVl9NZFpNa0IwY29kIHB7bWFyZ2luLXRvcDoxNnB4O2ZvbnQtc2l6ZToxNnB4fS5tRWhnVm96Y19XZ1NGWlNTMTF3U3t0ZXh0LWFsaWduOmNlbnRlcn0uVlM4WHdvVmMyMzBoRUdDWUtZYjl7bWFyZ2luLWJvdHRvbToyNHB4O3BhZGRpbmc6MTZweDtiYWNrZ3JvdW5kOiNmOWY5Zjk7Ym9yZGVyLXJhZGl1czo4cHh9LlZTOFh3b1ZjMjMwaEVHQ1lLWWI5IGgze21hcmdpbjowIDAgOHB4O2NvbG9yOiMxODkwZmZ9LlZTOFh3b1ZjMjMwaEVHQ1lLWWI5IHB7bWFyZ2luOjRweCAwO2NvbG9yOiM2NjZ9LkttT2lac3V3amU0MGF3bGNFX2NQe21hcmdpbjoyNHB4IDB9LlRLMTdnSWNLalBVa01HaExFU2Fre3BhZGRpbmc6MjRweDtib3JkZXI6MnB4IGRhc2hlZCAjZDlkOWQ5O2JvcmRlci1yYWRpdXM6OHB4O2JhY2tncm91bmQ6I2ZhZmFmYX0uQWNYNG9OaU5OY2xsQkhHSl9IQkd7d2lkdGg6MTIwcHg7aGVpZ2h0OjEyMHB4O21hcmdpbjoxNnB4IGF1dG87Ym9yZGVyOjFweCBzb2xpZCAjZDlkOWQ5O2JvcmRlci1yYWRpdXM6OHB4O2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7YmFja2dyb3VuZDojZmZmfS5BY1g0b05pTk5jbGxCSEdKX0hCRyBwe21hcmdpbjo0cHggMDtmb250LXNpemU6MTJweDtjb2xvcjojNjY2fS5nT1RpY050Wk9lWVZVVjJ6d3dGOHttYXJnaW4tdG9wOjI0cHh9CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzM4NTYuYmY1ZDllMTguYXN5bmMuanMgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzM4NTYuYmY1ZDllMTguYXN5bmMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWJiZWEyYwotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvMzg1Ni5iZjVkOWUxOC5hc3luYy5qcwpAQCAtMCwwICsxIEBACisidXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W10pLnB1c2goW1szODU2XSx7MjM4NTY6ZnVuY3Rpb24odCxlLGEpe2EucihlKSxlLmRlZmF1bHQ9e3VzZXJDZW50ZXJDb250YWluZXI6IkZKWVMzNTV2UDBUN2dCak1vYVk1Iix1c2VyQ2VudGVyQ2FyZDoiYVQ3VVc2TzFrcUEza01GVVRsdHUiLHRhYkNvbnRlbnQ6IlFNTThoMnNIcVFTTW1tcXdrNGlCIix0YWJIZWFkZXI6IkNmRmhIUnczamFRZGJYZEFIVFpiIixlbXB0eVN0YXRlOiJUbWJhTkFORVZfTWRaTWtCMGNvZCIscGF5bWVudE1vZGFsOiJtRWhnVm96Y19XZ1NGWlNTMTF3UyIscGF5bWVudEluZm86IlZTOFh3b1ZjMjMwaEVHQ1lLWWI5IixxckNvZGU6IkttT2lac3V3amU0MGF3bGNFX2NQIixxckNvZGVQbGFjZWhvbGRlcjoiVEsxN2dJY0tqUFVrTUdoTEVTYWsiLG1vY2tRckNvZGU6IkFjWDRvTmlOTmNsbEJIR0pfSEJHIixwYXltZW50QWN0aW9uczoiZ09UaWNOdFpPZVlWVVYyend3RjgifX19XSk7CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzM5MjIuMTljNDVhN2QuYXN5bmMuanMgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzM5MjIuMTljNDVhN2QuYXN5bmMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTI5ZTUwMAotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvMzkyMi4xOWM0NWE3ZC5hc3luYy5qcwpAQCAtMCwwICsxIEBACisidXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W10pLnB1c2goW1szOTIyXSx7MzExOTk6ZnVuY3Rpb24oaixGLGUpe3ZhciBfPWUoMTQxMyksbD1lKDkxKSx2PWUoNjcyOTQpLEU9ZSg5MjE3OSksTT1lKDg1ODkzKSxnPVsiZmllbGRQcm9wcyIsIm1pbiIsInByb0ZpZWxkUHJvcHMiLCJtYXgiXSxPPWZ1bmN0aW9uKGEsUCl7dmFyIEI9YS5maWVsZFByb3BzLGk9YS5taW4sbj1hLnByb0ZpZWxkUHJvcHMsbz1hLm1heCxzPSgwLGwuWikoYSxnKTtyZXR1cm4oMCxNLmpzeCkoRS5aLCgwLF8uWikoe3ZhbHVlVHlwZToiZGlnaXQiLGZpZWxkUHJvcHM6KDAsXy5aKSh7bWluOmksbWF4Om99LEIpLHJlZjpQLGZpbGVkQ29uZmlnOntkZWZhdWx0UHJvcHM6e3dpZHRoOiIxMDAlIn19LHByb0ZpZWxkUHJvcHM6bn0scykpfSxEPXYuZm9yd2FyZFJlZihPKTtGLlo9RH0sODY2MTU6ZnVuY3Rpb24oaixGLGUpe3ZhciBfPWUoMTQxMyksbD1lKDkxKSx2PWUoMjIyNzApLEU9ZSg3ODA0NSksTT1lKDY3Mjk0KSxnPWUoOTA3ODkpLE89ZSg5MjE3OSksRD1lKDg1ODkzKSxmPVsiZmllbGRQcm9wcyIsIm9wdGlvbnMiLCJyYWRpb1R5cGUiLCJsYXlvdXQiLCJwcm9GaWVsZFByb3BzIiwidmFsdWVFbnVtIl0sYT1NLmZvcndhcmRSZWYoZnVuY3Rpb24obixvKXt2YXIgcz1uLmZpZWxkUHJvcHMsYz1uLm9wdGlvbnMsQT1uLnJhZGlvVHlwZSx1PW4ubGF5b3V0LHI9bi5wcm9GaWVsZFByb3BzLHA9bi52YWx1ZUVudW0sZD0oMCxsLlopKG4sZik7cmV0dXJuKDAsRC5qc3gpKE8uWiwoMCxfLlopKCgwLF8uWikoe3ZhbHVlVHlwZTpBPT09ImJ1dHRvbiI/InJhZGlvQnV0dG9uIjoicmFkaW8iLHJlZjpvLHZhbHVlRW51bTooMCx2LmgpKHAsdm9pZCAwKX0sZCkse30se2ZpZWxkUHJvcHM6KDAsXy5aKSh7b3B0aW9uczpjLGxheW91dDp1fSxzKSxwcm9GaWVsZFByb3BzOnIsZmlsZWRDb25maWc6e2N1c3RvbUxpZ2h0TW9kZTohMH19KSl9KSxQPU0uZm9yd2FyZFJlZihmdW5jdGlvbihuLG8pe3ZhciBzPW4uZmllbGRQcm9wcyxjPW4uY2hpbGRyZW47cmV0dXJuKDAsRC5qc3gpKEUuWlAsKDAsXy5aKSgoMCxfLlopKHt9LHMpLHt9LHtyZWY6byxjaGlsZHJlbjpjfSkpfSksQj0oMCxnLkcpKFAse3ZhbHVlUHJvcE5hbWU6ImNoZWNrZWQiLGlnbm9yZVdpZHRoOiEwfSksaT1CO2kuR3JvdXA9YSxpLkJ1dHRvbj1FLlpQLkJ1dHRvbixpLmRpc3BsYXlOYW1lPSJQcm9Gb3JtQ29tcG9uZW50IixGLlo9aX0sNTk2NjpmdW5jdGlvbihqLEYsZSl7dmFyIF89ZSg5NzY4NSksbD1lKDE0MTMpLHY9ZSg5MSksRT1lKDIxNzcwKSxNPWUoOTk4NTkpLGc9ZSg1NTI0MSksTz1lKDk4NDIzKSxEPWUoNjcyOTQpLGY9ZSg5MjE3OSksYT1lKDg1ODkzKSxQPVsiZmllbGRQcm9wcyIsInByb0ZpZWxkUHJvcHMiXSxCPVsiZmllbGRQcm9wcyIsInByb0ZpZWxkUHJvcHMiXSxpPSJ0ZXh0IixuPWZ1bmN0aW9uKHUpe3ZhciByPXUuZmllbGRQcm9wcyxwPXUucHJvRmllbGRQcm9wcyxkPSgwLHYuWikodSxQKTtyZXR1cm4oMCxhLmpzeCkoZi5aLCgwLGwuWikoe3ZhbHVlVHlwZTppLGZpZWxkUHJvcHM6cixmaWxlZENvbmZpZzp7dmFsdWVUeXBlOml9LHByb0ZpZWxkUHJvcHM6cH0sZCkpfSxvPWZ1bmN0aW9uKHUpe3ZhciByPSgwLEUuWikodS5vcGVufHwhMSx7dmFsdWU6dS5vcGVuLG9uQ2hhbmdlOnUub25PcGVuQ2hhbmdlfSkscD0oMCxfLlopKHIsMiksZD1wWzBdLFI9cFsxXTtyZXR1cm4oMCxhLmpzeCkoTS5aLkl0ZW0se3Nob3VsZFVwZGF0ZTohMCxub1N0eWxlOiEwLGNoaWxkcmVuOmZ1bmN0aW9uKG0pe3ZhciBULFc9bS5nZXRGaWVsZFZhbHVlKHUubmFtZXx8W10pO3JldHVybigwLGEuanN4KShnLlosKDAsbC5aKSgoMCxsLlopKHtnZXRQb3B1cENvbnRhaW5lcjpmdW5jdGlvbih0KXtyZXR1cm4gdCYmdC5wYXJlbnROb2RlP3QucGFyZW50Tm9kZTp0fSxvbk9wZW5DaGFuZ2U6ZnVuY3Rpb24odCl7cmV0dXJuIFIodCl9LGNvbnRlbnQ6KDAsYS5qc3hzKSgiZGl2Iix7c3R5bGU6e3BhZGRpbmc6IjRweCAwIn0sY2hpbGRyZW46WyhUPXUuc3RhdHVzUmVuZGVyKT09PW51bGx8fFQ9PT12b2lkIDA/dm9pZCAwOlQuY2FsbCh1LFcpLHUuc3RyZW5ndGhUZXh0PygwLGEuanN4KSgiZGl2Iix7c3R5bGU6e21hcmdpblRvcDoxMH0sY2hpbGRyZW46KDAsYS5qc3gpKCJzcGFuIix7Y2hpbGRyZW46dS5zdHJlbmd0aFRleHR9KX0pOm51bGxdfSksb3ZlcmxheVN0eWxlOnt3aWR0aDoyNDB9LHBsYWNlbWVudDoicmlnaHRUb3AifSx1LnBvcG92ZXJQcm9wcykse30se29wZW46ZCxjaGlsZHJlbjp1LmNoaWxkcmVufSkpfX0pfSxzPWZ1bmN0aW9uKHUpe3ZhciByPXUuZmllbGRQcm9wcyxwPXUucHJvRmllbGRQcm9wcyxkPSgwLHYuWikodSxCKSxSPSgwLEQudXNlU3RhdGUpKCExKSx4PSgwLF8uWikoUiwyKSxtPXhbMF0sVD14WzFdO3JldHVybiByIT1udWxsJiZyLnN0YXR1c1JlbmRlciYmZC5uYW1lPygwLGEuanN4KShvLHtuYW1lOmQubmFtZSxzdGF0dXNSZW5kZXI6cj09bnVsbD92b2lkIDA6ci5zdGF0dXNSZW5kZXIscG9wb3ZlclByb3BzOnI9PW51bGw/dm9pZCAwOnIucG9wb3ZlclByb3BzLHN0cmVuZ3RoVGV4dDpyPT1udWxsP3ZvaWQgMDpyLnN0cmVuZ3RoVGV4dCxvcGVuOm0sb25PcGVuQ2hhbmdlOlQsY2hpbGRyZW46KDAsYS5qc3gpKCJkaXYiLHtjaGlsZHJlbjooMCxhLmpzeCkoZi5aLCgwLGwuWikoe3ZhbHVlVHlwZToicGFzc3dvcmQiLGZpZWxkUHJvcHM6KDAsbC5aKSgoMCxsLlopKHt9LCgwLE8uWikocixbInN0YXR1c1JlbmRlciIsInBvcG92ZXJQcm9wcyIsInN0cmVuZ3RoVGV4dCJdKSkse30se29uQmx1cjpmdW5jdGlvbihoKXt2YXIgdDtyPT1udWxsfHwodD1yLm9uQmx1cik9PT1udWxsfHx0PT09dm9pZCAwfHx0LmNhbGwocixoKSxUKCExKX0sb25DbGljazpmdW5jdGlvbihoKXt2YXIgdDtyPT1udWxsfHwodD1yLm9uQ2xpY2spPT09bnVsbHx8dD09PXZvaWQgMHx8dC5jYWxsKHIsaCksVCghMCl9fSkscHJvRmllbGRQcm9wczpwLGZpbGVkQ29uZmlnOnt2YWx1ZVR5cGU6aX19LGQpKX0pfSk6KDAsYS5qc3gpKGYuWiwoMCxsLlopKHt2YWx1ZVR5cGU6InBhc3N3b3JkIixmaWVsZFByb3BzOnIscHJvRmllbGRQcm9wczpwLGZpbGVkQ29uZmlnOnt2YWx1ZVR5cGU6aX19LGQpKX0sYz1uO2MuUGFzc3dvcmQ9cyxjLmRpc3BsYXlOYW1lPSJQcm9Gb3JtQ29tcG9uZW50IixGLlo9Y30sMTkwNTQ6ZnVuY3Rpb24oaixGLGUpe3ZhciBfPWUoMTQxMyksbD1lKDkxKSx2PWUoNjcyOTQpLEU9ZSg5MjE3OSksTT1lKDg1ODkzKSxnPVsiZmllbGRQcm9wcyIsInJlcXVlc3QiLCJwYXJhbXMiLCJwcm9GaWVsZFByb3BzIl0sTz1mdW5jdGlvbihhLFApe3ZhciBCPWEuZmllbGRQcm9wcyxpPWEucmVxdWVzdCxuPWEucGFyYW1zLG89YS5wcm9GaWVsZFByb3BzLHM9KDAsbC5aKShhLGcpO3JldHVybigwLE0uanN4KShFLlosKDAsXy5aKSh7dmFsdWVUeXBlOiJ0cmVlU2VsZWN0IixmaWVsZFByb3BzOkIscmVmOlAscmVxdWVzdDppLHBhcmFtczpuLGZpbGVkQ29uZmlnOntjdXN0b21MaWdodE1vZGU6ITB9LHByb0ZpZWxkUHJvcHM6b30scykpfSxEPXYuZm9yd2FyZFJlZihPKTtGLlo9RH0sNjM5MjI6ZnVuY3Rpb24oaixGLGUpe2UucihGKTt2YXIgXz1lKDE1MDA5KSxsPWUubihfKSx2PWUoOTkyODkpLEU9ZS5uKHYpLE09ZSg1NTc0KSxnPWUubihNKSxPPWUoNjcyOTQpLEQ9ZSg5NzI2OSksZj1lKDMxMTk5KSxhPWUoMTkwNTQpLFA9ZSg1OTY2KSxCPWUoODY2MTUpLGk9ZSg5OTg1OSksbj1lKDE3Nzg4KSxvPWUoNzY3NzIpLHM9ZSg4NTg5MyksYz1mdW5jdGlvbih1KXt2YXIgcj1pLloudXNlRm9ybSgpLHA9ZygpKHIsMSksZD1wWzBdLFI9dS5zdGF0dXNPcHRpb25zLHg9dS5kZXB0VHJlZTsoMCxPLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtkLnJlc2V0RmllbGRzKCksZC5zZXRGaWVsZHNWYWx1ZSh7ZGVwdElkOnUudmFsdWVzLmRlcHRJZCxwYXJlbnRJZDp1LnZhbHVlcy5wYXJlbnRJZCxhbmNlc3RvcnM6dS52YWx1ZXMuYW5jZXN0b3JzLGRlcHROYW1lOnUudmFsdWVzLmRlcHROYW1lLG9yZGVyTnVtOnUudmFsdWVzLm9yZGVyTnVtLGxlYWRlcjp1LnZhbHVlcy5sZWFkZXIscGhvbmU6dS52YWx1ZXMucGhvbmUsZW1haWw6dS52YWx1ZXMuZW1haWwsc3RhdHVzOnUudmFsdWVzLnN0YXR1cyxkZWxGbGFnOnUudmFsdWVzLmRlbEZsYWcsY3JlYXRlQnk6dS52YWx1ZXMuY3JlYXRlQnksY3JlYXRlVGltZTp1LnZhbHVlcy5jcmVhdGVUaW1lLHVwZGF0ZUJ5OnUudmFsdWVzLnVwZGF0ZUJ5LHVwZGF0ZVRpbWU6dS52YWx1ZXMudXBkYXRlVGltZX0pfSxbZCx1XSk7dmFyIG09KDAsby51c2VJbnRsKSgpLFQ9ZnVuY3Rpb24oKXtkLnN1Ym1pdCgpfSxXPWZ1bmN0aW9uKCl7dS5vbkNhbmNlbCgpfSxoPWZ1bmN0aW9uKCl7dmFyIHQ9RSgpKGwoKSgpLm1hcmsoZnVuY3Rpb24gSShDKXtyZXR1cm4gbCgpKCkud3JhcChmdW5jdGlvbihaKXtmb3IoOzspc3dpdGNoKFoucHJldj1aLm5leHQpe2Nhc2UgMDp1Lm9uU3VibWl0KEMpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIFouc3RvcCgpfX0sSSl9KSk7cmV0dXJuIGZ1bmN0aW9uKEMpe3JldHVybiB0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCk7cmV0dXJuKDAscy5qc3gpKG4uWix7d2lkdGg6NjQwLHRpdGxlOm0uZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5kZXB0LnRpdGxlIixkZWZhdWx0TWVzc2FnZToiXHU3RjE2XHU4RjkxXHU5MEU4XHU5NUU4In0pLG9wZW46dS5vcGVuLGZvcmNlUmVuZGVyOiEwLGRlc3Ryb3lPbkNsb3NlOiEwLG9uT2s6VCxvbkNhbmNlbDpXLGNoaWxkcmVuOigwLHMuanN4cykoRC5BLHtmb3JtOmQsZ3JpZDohMCxzdWJtaXR0ZXI6ITEsbGF5b3V0OiJob3Jpem9udGFsIixvbkZpbmlzaDpoLGNoaWxkcmVuOlsoMCxzLmpzeCkoZi5aLHtuYW1lOiJkZXB0SWQiLGxhYmVsOm0uZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5kZXB0LmRlcHRfaWQiLGRlZmF1bHRNZXNzYWdlOiJcdTkwRThcdTk1RThpZCJ9KSxjb2xQcm9wczp7bWQ6MTIseGw6MTJ9LHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdTkwRThcdTk1RThpZCIsZGlzYWJsZWQ6ITAsaGlkZGVuOiEwLHJ1bGVzOlt7cmVxdWlyZWQ6ITEsbWVzc2FnZTooMCxzLmpzeCkoby5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU5MEU4XHU5NUU4aWRcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTkwRThcdTk1RThpZFx1RkYwMSJ9KX1dfSksKDAscy5qc3gpKGEuWix7bmFtZToicGFyZW50SWQiLGxhYmVsOm0uZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5kZXB0LnBhcmVudF9kZXB0IixkZWZhdWx0TWVzc2FnZToiXHU0RTBBXHU3RUE3XHU5MEU4XHU5NUU4OiJ9KSxyZXF1ZXN0OkUoKShsKCkoKS5tYXJrKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbCgpKCkud3JhcChmdW5jdGlvbihDKXtmb3IoOzspc3dpdGNoKEMucHJldj1DLm5leHQpe2Nhc2UgMDpyZXR1cm4gQy5hYnJ1cHQoInJldHVybiIseCk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gQy5zdG9wKCl9fSx0KX0pKSxwbGFjZWhvbGRlcjoiXHU4QkY3XHU5MDA5XHU2MkU5XHU0RTBBXHU3RUE3XHU5MEU4XHU5NUU4IixydWxlczpbe3JlcXVpcmVkOiEwLG1lc3NhZ2U6KDAscy5qc3gpKG8uRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NzUyOFx1NjIzN1x1NjYzNVx1NzlGMFx1RkYwMSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1OTAwOVx1NjJFOVx1NEUwQVx1N0VBN1x1OTBFOFx1OTVFOCEifSl9XX0pLCgwLHMuanN4KShQLlose25hbWU6ImRlcHROYW1lIixsYWJlbDptLmZvcm1hdE1lc3NhZ2Uoe2lkOiJzeXN0ZW0uZGVwdC5kZXB0X25hbWUiLGRlZmF1bHRNZXNzYWdlOiJcdTkwRThcdTk1RThcdTU0MERcdTc5RjAifSksY29sUHJvcHM6e21kOjEyLHhsOjEyfSxwbGFjZWhvbGRlcjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU5MEU4XHU5NUU4XHU1NDBEXHU3OUYwIixydWxlczpbe3JlcXVpcmVkOiExLG1lc3NhZ2U6KDAscy5qc3gpKG8uRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1OTBFOFx1OTVFOFx1NTQwRFx1NzlGMFx1RkYwMSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1OTBFOFx1OTVFOFx1NTQwRFx1NzlGMFx1RkYwMSJ9KX1dfSksKDAscy5qc3gpKGYuWix7bmFtZToib3JkZXJOdW0iLGxhYmVsOm0uZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5kZXB0Lm9yZGVyX251bSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjYzRVx1NzkzQVx1OTg3QVx1NUU4RiJ9KSxjb2xQcm9wczp7bWQ6MTIseGw6MTJ9LHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdTY2M0VcdTc5M0FcdTk4N0FcdTVFOEYiLHJ1bGVzOlt7cmVxdWlyZWQ6ITEsbWVzc2FnZTooMCxzLmpzeCkoby5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU2NjNFXHU3OTNBXHU5ODdBXHU1RThGXHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU2NjNFXHU3OTNBXHU5ODdBXHU1RThGXHVGRjAxIn0pfV19KSwoMCxzLmpzeCkoUC5aLHtuYW1lOiJsZWFkZXIiLGxhYmVsOm0uZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5kZXB0LmxlYWRlciIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEQxRlx1OEQyM1x1NEVCQSJ9KSxjb2xQcm9wczp7bWQ6MTIseGw6MTJ9LHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdThEMUZcdThEMjNcdTRFQkEiLHJ1bGVzOlt7cmVxdWlyZWQ6ITEsbWVzc2FnZTooMCxzLmpzeCkoby5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU4RDFGXHU4RDIzXHU0RUJBXHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU4RDFGXHU4RDIzXHU0RUJBXHVGRjAxIn0pfV19KSwoMCxzLmpzeCkoUC5aLHtuYW1lOiJwaG9uZSIsbGFiZWw6bS5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLmRlcHQucGhvbmUiLGRlZmF1bHRNZXNzYWdlOiJcdTgwNTRcdTdDRkJcdTc1MzVcdThCREQifSksY29sUHJvcHM6e21kOjEyLHhsOjEyfSxwbGFjZWhvbGRlcjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU4MDU0XHU3Q0ZCXHU3NTM1XHU4QkREIixydWxlczpbe3JlcXVpcmVkOiExLG1lc3NhZ2U6KDAscy5qc3gpKG8uRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1ODA1NFx1N0NGQlx1NzUzNVx1OEJERFx1RkYwMSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1ODA1NFx1N0NGQlx1NzUzNVx1OEJERFx1RkYwMSJ9KX1dfSksKDAscy5qc3gpKFAuWix7bmFtZToiZW1haWwiLGxhYmVsOm0uZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5kZXB0LmVtYWlsIixkZWZhdWx0TWVzc2FnZToiXHU5MEFFXHU3QkIxIn0pLGNvbFByb3BzOnttZDoxMix4bDoxMn0scGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1OTBBRVx1N0JCMSIscnVsZXM6W3tyZXF1aXJlZDohMSxtZXNzYWdlOigwLHMuanN4KShvLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTkwQUVcdTdCQjFcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTkwQUVcdTdCQjFcdUZGMDEifSl9XX0pLCgwLHMuanN4KShCLlouR3JvdXAse3ZhbHVlRW51bTpSLG5hbWU6InN0YXR1cyIsbGFiZWw6bS5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLmRlcHQuc3RhdHVzIixkZWZhdWx0TWVzc2FnZToiXHU5MEU4XHU5NUU4XHU3MkI2XHU2MDAxIn0pLGNvbFByb3BzOnttZDoxMix4bDoxMn0scGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1OTBFOFx1OTVFOFx1NzJCNlx1NjAwMSIscnVsZXM6W3tyZXF1aXJlZDohMSxtZXNzYWdlOigwLHMuanN4KShvLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTkwRThcdTk1RThcdTcyQjZcdTYwMDFcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTkwRThcdTk1RThcdTcyQjZcdTYwMDFcdUZGMDEifSl9XX0pXX0pfSl9O0YuZGVmYXVsdD1jfX1dKTsKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvMzk5My40OTljMGNiOS5hc3luYy5qcyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvMzk5My40OTljMGNiOS5hc3luYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jY2FkZjc0Ci0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy8zOTkzLjQ5OWMwY2I5LmFzeW5jLmpzCkBAIC0wLDAgKzEgQEAKKyJ1c2Ugc3RyaWN0Ijsoc2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Bybz1zZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvfHxbXSkucHVzaChbWzM5OTNdLHs1Mzk5MzpmdW5jdGlvbih1LG4sZSl7ZS5yKG4pO3ZhciBhPWUoNjcyOTQpLGM9ZSg4NTg5MyksZD1mdW5jdGlvbigpe3JldHVybigwLGEudXNlRWZmZWN0KShmdW5jdGlvbigpe3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJiZElmcmFtZSIpO2lmKHQpe3ZhciBpPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCxyPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQ7dC5zdHlsZS53aWR0aD0iIi5jb25jYXQoTnVtYmVyKGkpLTI2MCwicHgiKSx0LnN0eWxlLmhlaWdodD0iIi5jb25jYXQoTnVtYmVyKHIpLTEyMCwicHgiKX19KSwoMCxjLmpzeCkoImRpdiIse3N0eWxlOnt9LGNoaWxkcmVuOigwLGMuanN4KSgiaWZyYW1lIix7c3R5bGU6e3dpZHRoOiIxMDAlIixib3JkZXI6IjBweCIsaGVpZ2h0OiIxMDAlIn0sc3JjOiIvYXBpL3N3YWdnZXItdWkvaW5kZXguaHRtbCIsaWQ6ImJkSWZyYW1lIn0pfSl9O24uZGVmYXVsdD1kfX1dKTsKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNDIyOS4yMDg3MWVlOS5jaHVuay5jc3MgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzQyMjkuMjA4NzFlZTkuY2h1bmsuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdiMzY4NGEKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzQyMjkuMjA4NzFlZTkuY2h1bmsuY3NzCkBAIC0wLDAgKzEgQEAKKy5jYXJke21hcmdpbi1ib3R0b206MTJweH0ubWluaUNoYXJ0e3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCV9Lm1pbmlDaGFydCAuY2hhcnRDb250ZW50e3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTotMjhweDt3aWR0aDoxMDAlfS5taW5pQ2hhcnQgLmNoYXJ0Q29udGVudD5kaXZ7bWFyZ2luOjAgLTVweDtvdmVyZmxvdzpoaWRkZW59Lm1pbmlDaGFydCAuY2hhcnRMb2FkaW5ne3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxNnB4O2xlZnQ6NTAlO21hcmdpbi1sZWZ0Oi03cHh9CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzQyMjkuMzVhODY1YzguYXN5bmMuanMgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzQyMjkuMzVhODY1YzguYXN5bmMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWI5ZTAyYgotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNDIyOS4zNWE4NjVjOC5hc3luYy5qcwpAQCAtMCwwICsxIEBACisidXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W10pLnB1c2goW1s0MjI5XSx7MTQyMjk6ZnVuY3Rpb24ocyxlLG4pe24ucihlKX19XSk7CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzQyOTYuOGNiNjlmMjYuYXN5bmMuanMgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzQyOTYuOGNiNjlmMjYuYXN5bmMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGZkN2JhMwotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNDI5Ni44Y2I2OWYyNi5hc3luYy5qcwpAQCAtMCwwICsxIEBACisidXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W10pLnB1c2goW1s0Mjk2XSx7NTk2NjpmdW5jdGlvbihGLEIsZSl7dmFyIFI9ZSg5NzY4NSksbz1lKDE0MTMpLHk9ZSg5MSksZj1lKDIxNzcwKSxNPWUoOTk4NTkpLHY9ZSg1NTI0MSksUD1lKDk4NDIzKSxkPWUoNjcyOTQpLEM9ZSg5MjE3OSksbT1lKDg1ODkzKSxhPVsiZmllbGRQcm9wcyIsInByb0ZpZWxkUHJvcHMiXSxFPVsiZmllbGRQcm9wcyIsInByb0ZpZWxkUHJvcHMiXSxUPSJ0ZXh0Iix1PWZ1bmN0aW9uKHMpe3ZhciBuPXMuZmllbGRQcm9wcyxsPXMucHJvRmllbGRQcm9wcyxiPSgwLHkuWikocyxhKTtyZXR1cm4oMCxtLmpzeCkoQy5aLCgwLG8uWikoe3ZhbHVlVHlwZTpULGZpZWxkUHJvcHM6bixmaWxlZENvbmZpZzp7dmFsdWVUeXBlOlR9LHByb0ZpZWxkUHJvcHM6bH0sYikpfSxnPWZ1bmN0aW9uKHMpe3ZhciBuPSgwLGYuWikocy5vcGVufHwhMSx7dmFsdWU6cy5vcGVuLG9uQ2hhbmdlOnMub25PcGVuQ2hhbmdlfSksbD0oMCxSLlopKG4sMiksYj1sWzBdLFU9bFsxXTtyZXR1cm4oMCxtLmpzeCkoTS5aLkl0ZW0se3Nob3VsZFVwZGF0ZTohMCxub1N0eWxlOiEwLGNoaWxkcmVuOmZ1bmN0aW9uKGope3ZhciBELEw9ai5nZXRGaWVsZFZhbHVlKHMubmFtZXx8W10pO3JldHVybigwLG0uanN4KSh2LlosKDAsby5aKSgoMCxvLlopKHtnZXRQb3B1cENvbnRhaW5lcjpmdW5jdGlvbihyKXtyZXR1cm4gciYmci5wYXJlbnROb2RlP3IucGFyZW50Tm9kZTpyfSxvbk9wZW5DaGFuZ2U6ZnVuY3Rpb24ocil7cmV0dXJuIFUocil9LGNvbnRlbnQ6KDAsbS5qc3hzKSgiZGl2Iix7c3R5bGU6e3BhZGRpbmc6IjRweCAwIn0sY2hpbGRyZW46WyhEPXMuc3RhdHVzUmVuZGVyKT09PW51bGx8fEQ9PT12b2lkIDA/dm9pZCAwOkQuY2FsbChzLEwpLHMuc3RyZW5ndGhUZXh0PygwLG0uanN4KSgiZGl2Iix7c3R5bGU6e21hcmdpblRvcDoxMH0sY2hpbGRyZW46KDAsbS5qc3gpKCJzcGFuIix7Y2hpbGRyZW46cy5zdHJlbmd0aFRleHR9KX0pOm51bGxdfSksb3ZlcmxheVN0eWxlOnt3aWR0aDoyNDB9LHBsYWNlbWVudDoicmlnaHRUb3AifSxzLnBvcG92ZXJQcm9wcykse30se29wZW46YixjaGlsZHJlbjpzLmNoaWxkcmVufSkpfX0pfSxfPWZ1bmN0aW9uKHMpe3ZhciBuPXMuZmllbGRQcm9wcyxsPXMucHJvRmllbGRQcm9wcyxiPSgwLHkuWikocyxFKSxVPSgwLGQudXNlU3RhdGUpKCExKSxBPSgwLFIuWikoVSwyKSxqPUFbMF0sRD1BWzFdO3JldHVybiBuIT1udWxsJiZuLnN0YXR1c1JlbmRlciYmYi5uYW1lPygwLG0uanN4KShnLHtuYW1lOmIubmFtZSxzdGF0dXNSZW5kZXI6bj09bnVsbD92b2lkIDA6bi5zdGF0dXNSZW5kZXIscG9wb3ZlclByb3BzOm49PW51bGw/dm9pZCAwOm4ucG9wb3ZlclByb3BzLHN0cmVuZ3RoVGV4dDpuPT1udWxsP3ZvaWQgMDpuLnN0cmVuZ3RoVGV4dCxvcGVuOmosb25PcGVuQ2hhbmdlOkQsY2hpbGRyZW46KDAsbS5qc3gpKCJkaXYiLHtjaGlsZHJlbjooMCxtLmpzeCkoQy5aLCgwLG8uWikoe3ZhbHVlVHlwZToicGFzc3dvcmQiLGZpZWxkUHJvcHM6KDAsby5aKSgoMCxvLlopKHt9LCgwLFAuWikobixbInN0YXR1c1JlbmRlciIsInBvcG92ZXJQcm9wcyIsInN0cmVuZ3RoVGV4dCJdKSkse30se29uQmx1cjpmdW5jdGlvbihPKXt2YXIgcjtuPT1udWxsfHwocj1uLm9uQmx1cik9PT1udWxsfHxyPT09dm9pZCAwfHxyLmNhbGwobixPKSxEKCExKX0sb25DbGljazpmdW5jdGlvbihPKXt2YXIgcjtuPT1udWxsfHwocj1uLm9uQ2xpY2spPT09bnVsbHx8cj09PXZvaWQgMHx8ci5jYWxsKG4sTyksRCghMCl9fSkscHJvRmllbGRQcm9wczpsLGZpbGVkQ29uZmlnOnt2YWx1ZVR5cGU6VH19LGIpKX0pfSk6KDAsbS5qc3gpKEMuWiwoMCxvLlopKHt2YWx1ZVR5cGU6InBhc3N3b3JkIixmaWVsZFByb3BzOm4scHJvRmllbGRQcm9wczpsLGZpbGVkQ29uZmlnOnt2YWx1ZVR5cGU6VH19LGIpKX0sdD11O3QuUGFzc3dvcmQ9Xyx0LmRpc3BsYXlOYW1lPSJQcm9Gb3JtQ29tcG9uZW50IixCLlo9dH0sMzQyOTY6ZnVuY3Rpb24oRixCLGUpe2UucihCKTt2YXIgUj1lKDE1MDA5KSxvPWUubihSKSx5PWUoOTkyODkpLGY9ZS5uKHkpLE09ZSg1NTc0KSx2PWUubihNKSxQPWUoNjcyOTQpLGQ9ZSg5OTg1OSksQz1lKDI0NTMpLG09ZSg3Njc3MiksYT1lKDkwMjUpLEU9ZSg5NzI2OSksVD1lKDU5NjYpLHU9ZSg4NTg5MyksZz1mdW5jdGlvbigpe3ZhciB0PWQuWi51c2VGb3JtKCkscD12KCkodCwxKSxzPXBbMF0sbj0oMCxtLnVzZUludGwpKCksbD1mdW5jdGlvbigpe3ZhciBVPWYoKShvKCkoKS5tYXJrKGZ1bmN0aW9uIEEoail7dmFyIEQ7cmV0dXJuIG8oKSgpLndyYXAoZnVuY3Rpb24oTyl7Zm9yKDs7KXN3aXRjaChPLnByZXY9Ty5uZXh0KXtjYXNlIDA6cmV0dXJuIE8ubmV4dD0yLCgwLGEud3ApKGoub2xkUGFzc3dvcmQsai5uZXdQYXNzd29yZCk7Y2FzZSAyOkQ9Ty5zZW50LEQuY29kZT09PTIwMD9DLlpQLnN1Y2Nlc3MoIlx1NUJDNlx1NzgwMVx1OTFDRFx1N0Y2RVx1NjIxMFx1NTI5Rlx1MzAwMiIpOkMuWlAud2FybmluZyhELm1zZyk7Y2FzZSA0OmNhc2UiZW5kIjpyZXR1cm4gTy5zdG9wKCl9fSxBKX0pKTtyZXR1cm4gZnVuY3Rpb24oail7cmV0dXJuIFUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSxiPWZ1bmN0aW9uKEEsail7dmFyIEQ9cy5nZXRGaWVsZFZhbHVlKCJuZXdQYXNzd29yZCIpO3JldHVybiBqPT09RD9Qcm9taXNlLnJlc29sdmUoKTpQcm9taXNlLnJlamVjdChuZXcgRXJyb3IoIlx1NEUyNFx1NkIyMVx1NUJDNlx1NzgwMVx1OEY5M1x1NTE2NVx1NEUwRFx1NEUwMFx1ODFGNCIpKX07cmV0dXJuKDAsdS5qc3gpKHUuRnJhZ21lbnQse2NoaWxkcmVuOigwLHUuanN4cykoRS5BLHtmb3JtOnMsb25GaW5pc2g6bCxjaGlsZHJlbjpbKDAsdS5qc3gpKFQuWi5QYXNzd29yZCx7bmFtZToib2xkUGFzc3dvcmQiLGxhYmVsOm4uZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS51c2VyLm9sZF9wYXNzd29yZCIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjVFN1x1NUJDNlx1NzgwMSJ9KSx3aWR0aDoieGwiLHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdTY1RTdcdTVCQzZcdTc4MDEiLHJ1bGVzOlt7cmVxdWlyZWQ6ITAsbWVzc2FnZTooMCx1LmpzeCkobS5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU2NUU3XHU1QkM2XHU3ODAxXHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU2NUU3XHU1QkM2XHU3ODAxXHVGRjAxIn0pfV19KSwoMCx1LmpzeCkoVC5aLlBhc3N3b3JkLHtuYW1lOiJuZXdQYXNzd29yZCIsbGFiZWw6bi5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLnVzZXIubmV3X3Bhc3N3b3JkIixkZWZhdWx0TWVzc2FnZToiXHU2NUIwXHU1QkM2XHU3ODAxIn0pLHdpZHRoOiJ4bCIscGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NjVCMFx1NUJDNlx1NzgwMSIscnVsZXM6W3tyZXF1aXJlZDohMCxtZXNzYWdlOigwLHUuanN4KShtLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTY1QjBcdTVCQzZcdTc4MDFcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTY1QjBcdTVCQzZcdTc4MDFcdUZGMDEifSl9XX0pLCgwLHUuanN4KShULlouUGFzc3dvcmQse25hbWU6ImNvbmZpcm1QYXNzd29yZCIsbGFiZWw6bi5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLnVzZXIuY29uZmlybV9wYXNzd29yZCIsZGVmYXVsdE1lc3NhZ2U6Ilx1Nzg2RVx1OEJBNFx1NUJDNlx1NzgwMSJ9KSx3aWR0aDoieGwiLHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdTc4NkVcdThCQTRcdTVCQzZcdTc4MDEiLHJ1bGVzOlt7cmVxdWlyZWQ6ITAsbWVzc2FnZTooMCx1LmpzeCkobS5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU3ODZFXHU4QkE0XHU1QkM2XHU3ODAxXHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU3ODZFXHU4QkE0XHU1QkM2XHU3ODAxXHVGRjAxIn0pfSx7dmFsaWRhdG9yOmJ9XX0pXX0pfSl9O0IuZGVmYXVsdD1nfSw5MDI1OmZ1bmN0aW9uKEYsQixlKXtlLmQoQix7TGo6ZnVuY3Rpb24oKXtyZXR1cm4gYn0sTnE6ZnVuY3Rpb24oKXtyZXR1cm4gZ30sUFI6ZnVuY3Rpb24oKXtyZXR1cm4gRX0sX0w6ZnVuY3Rpb24oKXtyZXR1cm4gc30sYXo6ZnVuY3Rpb24oKXtyZXR1cm4gbn0sY246ZnVuY3Rpb24oKXtyZXR1cm4gVH0sZ2c6ZnVuY3Rpb24oKXtyZXR1cm4gan0sa1g6ZnVuY3Rpb24oKXtyZXR1cm4gdH0sbEU6ZnVuY3Rpb24oKXtyZXR1cm4gbX0sdFc6ZnVuY3Rpb24oKXtyZXR1cm4gTH0sd3A6ZnVuY3Rpb24oKXtyZXR1cm4gQX0seDc6ZnVuY3Rpb24oKXtyZXR1cm4gT30seEI6ZnVuY3Rpb24oKXtyZXR1cm4gVX19KTt2YXIgUj1lKDE1MDA5KSxvPWUubihSKSx5PWUoOTc4NTcpLGY9ZS5uKHkpLE09ZSg5OTI4OSksdj1lLm4oTSksUD1lKDMxOTgxKSxkPWUoNzY3NzIpLEM9ZSgzMDk2NCk7ZnVuY3Rpb24gbShyLGkpe3JldHVybiBhLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBhKCl7cmV0dXJuIGE9digpKG8oKSgpLm1hcmsoZnVuY3Rpb24gcihpLGgpe3JldHVybiBvKCkoKS53cmFwKGZ1bmN0aW9uKGMpe2Zvcig7Oylzd2l0Y2goYy5wcmV2PWMubmV4dCl7Y2FzZSAwOnJldHVybiBjLmFicnVwdCgicmV0dXJuIiwoMCxkLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS91c2VyL2xpc3QiLGYoKSh7bWV0aG9kOiJHRVQiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgifSxwYXJhbXM6aX0saHx8e30pKSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gYy5zdG9wKCl9fSxyKX0pKSxhLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBFKHIsaSl7cmV0dXJuKDAsZC5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vdXNlci8iLmNvbmNhdChyKSxmKCkoe21ldGhvZDoiR0VUIn0saXx8e30pKX1mdW5jdGlvbiBUKHIsaSl7cmV0dXJuIHUuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHUoKXtyZXR1cm4gdT12KCkobygpKCkubWFyayhmdW5jdGlvbiByKGksaCl7cmV0dXJuIG8oKSgpLndyYXAoZnVuY3Rpb24oYyl7Zm9yKDs7KXN3aXRjaChjLnByZXY9Yy5uZXh0KXtjYXNlIDA6cmV0dXJuIGMuYWJydXB0KCJyZXR1cm4iLCgwLGQucmVxdWVzdCkoIi9hcGkvc3lzdGVtL3VzZXIiLGYoKSh7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In0sZGF0YTppfSxofHx7fSkpKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBjLnN0b3AoKX19LHIpfSkpLHUuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGcocixpKXtyZXR1cm4gXy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gXygpe3JldHVybiBfPXYoKShvKCkoKS5tYXJrKGZ1bmN0aW9uIHIoaSxoKXtyZXR1cm4gbygpKCkud3JhcChmdW5jdGlvbihjKXtmb3IoOzspc3dpdGNoKGMucHJldj1jLm5leHQpe2Nhc2UgMDpyZXR1cm4gYy5hYnJ1cHQoInJldHVybiIsKDAsZC5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vdXNlciIsZigpKHttZXRob2Q6IlBVVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCJ9LGRhdGE6aX0saHx8e30pKSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gYy5zdG9wKCl9fSxyKX0pKSxfLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiB0KHIsaSl7cmV0dXJuIHAuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHAoKXtyZXR1cm4gcD12KCkobygpKCkubWFyayhmdW5jdGlvbiByKGksaCl7cmV0dXJuIG8oKSgpLndyYXAoZnVuY3Rpb24oYyl7Zm9yKDs7KXN3aXRjaChjLnByZXY9Yy5uZXh0KXtjYXNlIDA6cmV0dXJuIGMuYWJydXB0KCJyZXR1cm4iLCgwLGQucmVxdWVzdCkoIi9hcGkvc3lzdGVtL3VzZXIvIi5jb25jYXQoaSksZigpKHttZXRob2Q6IkRFTEVURSJ9LGh8fHt9KSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGMuc3RvcCgpfX0scil9KSkscC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gcyhyLGkpe3JldHVybigwLEMuc3UpKCIvYXBpL3N5c3RlbS91c2VyL2V4cG9ydCIse3BhcmFtczpyfSwidXNlcl8iLmNvbmNhdChuZXcgRGF0ZSgpLmdldFRpbWUoKSwiLnhsc3giKSl9ZnVuY3Rpb24gbihyLGkpe3ZhciBoPXt1c2VySWQ6cixzdGF0dXM6aX07cmV0dXJuKDAsZC5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vdXNlci9jaGFuZ2VTdGF0dXMiLHttZXRob2Q6InB1dCIsZGF0YTpofSl9ZnVuY3Rpb24gbCgpe3JldHVybiByZXF1ZXN0KCIvYXBpL3N5c3RlbS91c2VyL3Byb2ZpbGUiLHttZXRob2Q6ImdldCJ9KX1mdW5jdGlvbiBiKHIpe3JldHVybigwLGQucmVxdWVzdCkoIi9hcGkvc3lzdGVtL3VzZXIvcHJvZmlsZSIse21ldGhvZDoicHV0IixkYXRhOnJ9KX1mdW5jdGlvbiBVKHIsaSl7dmFyIGg9e3VzZXJJZDpyLHBhc3N3b3JkOml9O3JldHVybigwLGQucmVxdWVzdCkoIi9hcGkvc3lzdGVtL3VzZXIvcmVzZXRQd2QiLHttZXRob2Q6InB1dCIsZGF0YTpofSl9ZnVuY3Rpb24gQShyLGkpe3ZhciBoPXtvbGRQYXNzd29yZDpyLG5ld1Bhc3N3b3JkOml9O3JldHVybigwLGQucmVxdWVzdCkoIi9hcGkvc3lzdGVtL3VzZXIvcHJvZmlsZS91cGRhdGVQd2QiLHttZXRob2Q6InB1dCIscGFyYW1zOmh9KX1mdW5jdGlvbiBqKHIpe3JldHVybigwLGQucmVxdWVzdCkoIi9hcGkvc3lzdGVtL3VzZXIvcHJvZmlsZS9hdmF0YXIiLHttZXRob2Q6InBvc3QiLGRhdGE6cn0pfWZ1bmN0aW9uIEQocil7cmV0dXJuIHJlcXVlc3QoIi9zeXN0ZW0vdXNlci9hdXRoUm9sZS8iK3Ise21ldGhvZDoiZ2V0In0pfWZ1bmN0aW9uIEwocil7cmV0dXJuKDAsZC5yZXF1ZXN0KSgiL3N5c3RlbS91c2VyL2F1dGhSb2xlIix7bWV0aG9kOiJwdXQiLHBhcmFtczpyfSl9ZnVuY3Rpb24gTyhyKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oaSl7KDAsZC5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vdXNlci9kZXB0VHJlZSIse21ldGhvZDoiZ2V0IixwYXJhbXM6cn0pLnRoZW4oZnVuY3Rpb24oaCl7aWYoaCYmaC5jb2RlPT09MjAwKXt2YXIgVz0oMCxQLmx0KShoLmRhdGEpO2koVyl9ZWxzZSBpKFtdKX0pfSl9fSwzMDk2NDpmdW5jdGlvbihGLEIsZSl7ZS5kKEIse3A2OmZ1bmN0aW9uKCl7cmV0dXJuIG19LHN1OmZ1bmN0aW9uKCl7cmV0dXJuIGF9fSk7dmFyIFI9ZSgxNTAwOSksbz1lLm4oUikseT1lKDk3ODU3KSxmPWUubih5KSxNPWUoOTkyODkpLHY9ZS5uKE0pLFA9ZSg3Njc3MiksZD17eGxzeDoiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQiLHppcDoiYXBwbGljYXRpb24vemlwIn07ZnVuY3Rpb24gQyh1LGcpe3ZhciBfPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKSx0PW5ldyBCbG9iKFt1LmRhdGFdLHt0eXBlOmd9KSxwPW5ldyBSZWdFeHAoImZpbGVuYW1lPShbXjtdK1xcLlteXFwuO10rKTsqIikscz1kZWNvZGVVUkkodS5oZWFkZXJzWyJjb250ZW50LWRpc3Bvc2l0aW9uIl0pLG49cC5leGVjKHMpLGw9bj9uWzFdOiJmaWxlIjtsPWwucmVwbGFjZSgvIi9nLCIiKSxfLnN0eWxlLmRpc3BsYXk9Im5vbmUiLF8uaHJlZj1VUkwuY3JlYXRlT2JqZWN0VVJMKHQpLF8uc2V0QXR0cmlidXRlKCJkb3dubG9hZCIsbCksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChfKSxfLmNsaWNrKCksVVJMLnJldm9rZU9iamVjdFVSTChfLmhyZWYpLGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoXyl9ZnVuY3Rpb24gbSh1KXsoMCxQLnJlcXVlc3QpKHUse21ldGhvZDoiR0VUIixyZXNwb25zZVR5cGU6ImJsb2IiLGdldFJlc3BvbnNlOiEwfSkudGhlbihmdW5jdGlvbihnKXtDKGcsZC56aXApfSl9ZnVuY3Rpb24gYSh1LGcsXyl7cmV0dXJuIEUuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEUoKXtyZXR1cm4gRT12KCkobygpKCkubWFyayhmdW5jdGlvbiB1KGcsXyx0KXtyZXR1cm4gbygpKCkud3JhcChmdW5jdGlvbihzKXtmb3IoOzspc3dpdGNoKHMucHJldj1zLm5leHQpe2Nhc2UgMDpyZXR1cm4gcy5hYnJ1cHQoInJldHVybiIsKDAsUC5yZXF1ZXN0KShnLGYoKShmKCkoe30sXykse30se21ldGhvZDoiUE9TVCIscmVzcG9uc2VUeXBlOiJibG9iIn0pKS50aGVuKGZ1bmN0aW9uKG4pe3ZhciBsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKSxiPW47bC5zdHlsZS5kaXNwbGF5PSJub25lIixsLmhyZWY9VVJMLmNyZWF0ZU9iamVjdFVSTChiKSxsLnNldEF0dHJpYnV0ZSgiZG93bmxvYWQiLHQpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobCksbC5jbGljaygpLFVSTC5yZXZva2VPYmplY3RVUkwobC5ocmVmKSxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGwpfSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIHMuc3RvcCgpfX0sdSl9KSksRS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gVCh1KXt3aW5kb3cubG9jYXRpb24uaHJlZj0iL2FwaS9jb21tb24vZG93bmxvYWQ/ZmlsZU5hbWU9Ii5jb25jYXQoZW5jb2RlVVJJKHUpLCImZGVsZXRlPSIsITApfX0sMzE5ODE6ZnVuY3Rpb24oRixCLGUpe2UuZChCLHtDMjpmdW5jdGlvbigpe3JldHVybiBvfSxsdDpmdW5jdGlvbigpe3JldHVybiBmfX0pO3ZhciBSPWUoODc3MzUpO2Z1bmN0aW9uIG8oTSx2LFAsZCxDLG0pe3ZhciBhPXtpZDp2fHwiaWQiLG5hbWU6UHx8Im5hbWUiLHBhcmVudElkOmR8fCJwYXJlbnRJZCIscGFyZW50TmFtZTpDfHwicGFyZW50TmFtZSIsY2hpbGRyZW5MaXN0Om18fCJjaGlsZHJlbiJ9LEU9W10sVD1bXSx1PVtdO00uZm9yRWFjaChmdW5jdGlvbihfKXt2YXIgdD1fLHA9dFthLnBhcmVudElkXTtFW3BdfHwoRVtwXT1bXSksdC5rZXk9dFthLmlkXSx0LnRpdGxlPXRbYS5uYW1lXSx0LnZhbHVlPXRbYS5pZF0sdFthLmNoaWxkcmVuTGlzdF09bnVsbCxUW3RbYS5pZF1dPXQsRVtwXS5wdXNoKHQpfSksTS5mb3JFYWNoKGZ1bmN0aW9uKF8pe3ZhciB0PV8scD10W2EucGFyZW50SWRdO1RbcF18fCh0W2EucGFyZW50TmFtZV09IiIsdS5wdXNoKHQpKX0pO2Z1bmN0aW9uIGcoXyl7dmFyIHQ9XztFW3RbYS5pZF1dJiYodFthLmNoaWxkcmVuTGlzdF18fCh0W2EuY2hpbGRyZW5MaXN0XT1bXSksdFthLmNoaWxkcmVuTGlzdF09RVt0W2EuaWRdXSksdFthLmNoaWxkcmVuTGlzdF0mJnRbYS5jaGlsZHJlbkxpc3RdLmZvckVhY2goZnVuY3Rpb24ocCl7dmFyIHM9cDtzW2EucGFyZW50TmFtZV09dFthLm5hbWVdLGcocyl9KX1yZXR1cm4gdS5mb3JFYWNoKGZ1bmN0aW9uKF8pe2coXyl9KSx1fXZhciB5PWZ1bmN0aW9uKCl7cmV0dXJuIHBhcnNlKHdpbmRvdy5sb2NhdGlvbi5ocmVmLnNwbGl0KCI/IilbMV0pfTtmdW5jdGlvbiBmKE0pe3ZhciB2PU0ubWFwKGZ1bmN0aW9uKFApe3ZhciBkPXtpZDpQLmlkLHRpdGxlOlAubGFiZWwsa2V5OiIiLmNvbmNhdChQLmlkKSx2YWx1ZTpQLmlkfTtyZXR1cm4gUC5jaGlsZHJlbiYmKGQuY2hpbGRyZW49ZihQLmNoaWxkcmVuKSksZH0pO3JldHVybiB2fX19XSk7CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzQzNDYuY2MzMjllYTcuYXN5bmMuanMgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzQzNDYuY2MzMjllYTcuYXN5bmMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWY4ZGI0MwotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNDM0Ni5jYzMyOWVhNy5hc3luYy5qcwpAQCAtMCwwICsxLDI3IEBACishKGZ1bmN0aW9uKCl7dmFyIHpuPSh5ZSxKKT0+KEo9U3ltYm9sW3llXSk/SjpTeW1ib2wuZm9yKCJTeW1ib2wuIit5ZSksbG89eWU9Pnt0aHJvdyBUeXBlRXJyb3IoeWUpfTt2YXIgdW89ZnVuY3Rpb24oeWUsSil7dGhpc1swXT15ZSx0aGlzWzFdPUp9O3ZhciBGbj15ZT0+e3ZhciBKPXllW3puKCJhc3luY0l0ZXJhdG9yIildLGY9ITEsbCxZPXt9O3JldHVybiBKPT1udWxsPyhKPXllW3puKCJpdGVyYXRvciIpXSgpLGw9ZWU9PllbZWVdPWxlPT5KW2VlXShsZSkpOihKPUouY2FsbCh5ZSksbD1lZT0+WVtlZV09bGU9PntpZihmKXtpZihmPSExLGVlPT09InRocm93Iil0aHJvdyBsZTtyZXR1cm4gbGV9cmV0dXJuIGY9ITAse2RvbmU6ITEsdmFsdWU6bmV3IHVvKG5ldyBQcm9taXNlKEc9Pnt2YXIgcz1KW2VlXShsZSk7cyBpbnN0YW5jZW9mIE9iamVjdHx8bG8oIk9iamVjdCBleHBlY3RlZCIpLEcocyl9KSwxKX19KSxZW3puKCJpdGVyYXRvciIpXT0oKT0+WSxsKCJuZXh0IiksInRocm93ImluIEo/bCgidGhyb3ciKTpZLnRocm93PWVlPT57dGhyb3cgZWV9LCJyZXR1cm4iaW4gSiYmbCgicmV0dXJuIiksWX07KHNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W10pLnB1c2goW1s0MzQ2XSx7ODUwNDA6ZnVuY3Rpb24oeWUsSixmKXsidXNlIHN0cmljdCI7Zi5kKEose2Y6ZnVuY3Rpb24oKXtyZXR1cm4gS2F9fSk7dmFyIGw9Zig0OTQyKSxZPWYoNzQxNjUpLGVlPWYoMTU4NjEpLGxlPWYoOTEpLEc9Zig5NzY4NSkscz1mKDE0MTMpLHE9ZigxMDkxNSksUT1mKDIxNzcwKSxwPWYoNjcyOTQpO2Z1bmN0aW9uIHZlKHIpe3ZhciBlPXR5cGVvZiB3aW5kb3c9PSJ1bmRlZmluZWQiLG49KDAscC51c2VTdGF0ZSkoZnVuY3Rpb24oKXtyZXR1cm4gZT8hMTp3aW5kb3cubWF0Y2hNZWRpYShyKS5tYXRjaGVzfSksdD0oMCxHLlopKG4sMiksYT10WzBdLGk9dFsxXTtyZXR1cm4oMCxwLnVzZUxheW91dEVmZmVjdCkoZnVuY3Rpb24oKXtpZighZSl7dmFyIG89d2luZG93Lm1hdGNoTWVkaWEociksYz1mdW5jdGlvbih2KXtyZXR1cm4gaSh2Lm1hdGNoZXMpfTtyZXR1cm4gby5hZGRMaXN0ZW5lcihjKSxmdW5jdGlvbigpe3JldHVybiBvLnJlbW92ZUxpc3RlbmVyKGMpfX19LFtyXSksYX12YXIgZ2U9e3hzOnttYXhXaWR0aDo1NzUsbWF0Y2hNZWRpYToiKG1heC13aWR0aDogNTc1cHgpIn0sc206e21pbldpZHRoOjU3NixtYXhXaWR0aDo3NjcsbWF0Y2hNZWRpYToiKG1pbi13aWR0aDogNTc2cHgpIGFuZCAobWF4LXdpZHRoOiA3NjdweCkifSxtZDp7bWluV2lkdGg6NzY4LG1heFdpZHRoOjk5MSxtYXRjaE1lZGlhOiIobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDk5MXB4KSJ9LGxnOnttaW5XaWR0aDo5OTIsbWF4V2lkdGg6MTE5OSxtYXRjaE1lZGlhOiIobWluLXdpZHRoOiA5OTJweCkgYW5kIChtYXgtd2lkdGg6IDExOTlweCkifSx4bDp7bWluV2lkdGg6MTIwMCxtYXhXaWR0aDoxNTk5LG1hdGNoTWVkaWE6IihtaW4td2lkdGg6IDEyMDBweCkgYW5kIChtYXgtd2lkdGg6IDE1OTlweCkifSx4eGw6e21pbldpZHRoOjE2MDAsbWF0Y2hNZWRpYToiKG1pbi13aWR0aDogMTYwMHB4KSJ9fSxfZT1mdW5jdGlvbigpe3ZhciBlPXZvaWQgMDtpZih0eXBlb2Ygd2luZG93PT0idW5kZWZpbmVkIilyZXR1cm4gZTt2YXIgbj1PYmplY3Qua2V5cyhnZSkuZmluZChmdW5jdGlvbih0KXt2YXIgYT1nZVt0XS5tYXRjaE1lZGlhO3JldHVybiEhd2luZG93Lm1hdGNoTWVkaWEoYSkubWF0Y2hlc30pO3JldHVybiBlPW4sZX0sWmU9ZnVuY3Rpb24oKXt2YXIgZT12ZShnZS5tZC5tYXRjaE1lZGlhKSxuPXZlKGdlLmxnLm1hdGNoTWVkaWEpLHQ9dmUoZ2UueHhsLm1hdGNoTWVkaWEpLGE9dmUoZ2UueGwubWF0Y2hNZWRpYSksaT12ZShnZS5zbS5tYXRjaE1lZGlhKSxvPXZlKGdlLnhzLm1hdGNoTWVkaWEpLGM9KDAscC51c2VTdGF0ZSkoX2UoKSksZD0oMCxHLlopKGMsMiksdj1kWzBdLG09ZFsxXTtyZXR1cm4oMCxwLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtpZih0KXttKCJ4eGwiKTtyZXR1cm59aWYoYSl7bSgieGwiKTtyZXR1cm59aWYobil7bSgibGciKTtyZXR1cm59aWYoZSl7bSgibWQiKTtyZXR1cm59aWYoaSl7bSgic20iKTtyZXR1cm59aWYobyl7bSgieHMiKTtyZXR1cm59bSgibWQiKX0sW2Usbix0LGEsaSxvXSksdn0saGU9ZigxMjA0NCk7ZnVuY3Rpb24gSShyLGUpe3ZhciBuPXR5cGVvZiByLnBhZ2VOYW1lPT0ic3RyaW5nIj9yLnRpdGxlOmU7KDAscC51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7KDAsaGUuaikoKSYmbiYmKGRvY3VtZW50LnRpdGxlPW4pfSxbci50aXRsZSxuXSl9dmFyIGo9ZigxOTc3KSxSPWYoNzMxNzcpO2Z1bmN0aW9uIFUocil7aWYoKDAsai5uKSgoMCxSLmIpKCksIjUuNi4wIik8MClyZXR1cm4gcjt2YXIgZT17Y29sb3JHcm91cFRpdGxlOiJncm91cFRpdGxlQ29sb3IiLHJhZGl1c0l0ZW06Iml0ZW1Cb3JkZXJSYWRpdXMiLHJhZGl1c1N1Yk1lbnVJdGVtOiJzdWJNZW51SXRlbUJvcmRlclJhZGl1cyIsY29sb3JJdGVtVGV4dDoiaXRlbUNvbG9yIixjb2xvckl0ZW1UZXh0SG92ZXI6Iml0ZW1Ib3ZlckNvbG9yIixjb2xvckl0ZW1UZXh0SG92ZXJIb3Jpem9udGFsOiJob3Jpem9udGFsSXRlbUhvdmVyQ29sb3IiLGNvbG9ySXRlbVRleHRTZWxlY3RlZDoiaXRlbVNlbGVjdGVkQ29sb3IiLGNvbG9ySXRlbVRleHRTZWxlY3RlZEhvcml6b250YWw6Imhvcml6b250YWxJdGVtU2VsZWN0ZWRDb2xvciIsY29sb3JJdGVtVGV4dERpc2FibGVkOiJpdGVtRGlzYWJsZWRDb2xvciIsY29sb3JEYW5nZXJJdGVtVGV4dDoiZGFuZ2VySXRlbUNvbG9yIixjb2xvckRhbmdlckl0ZW1UZXh0SG92ZXI6ImRhbmdlckl0ZW1Ib3ZlckNvbG9yIixjb2xvckRhbmdlckl0ZW1UZXh0U2VsZWN0ZWQ6ImRhbmdlckl0ZW1TZWxlY3RlZENvbG9yIixjb2xvckRhbmdlckl0ZW1CZ0FjdGl2ZToiZGFuZ2VySXRlbUFjdGl2ZUJnIixjb2xvckRhbmdlckl0ZW1CZ1NlbGVjdGVkOiJkYW5nZXJJdGVtU2VsZWN0ZWRCZyIsY29sb3JJdGVtQmc6Iml0ZW1CZyIsY29sb3JJdGVtQmdIb3ZlcjoiaXRlbUhvdmVyQmciLGNvbG9yU3ViSXRlbUJnOiJzdWJNZW51SXRlbUJnIixjb2xvckl0ZW1CZ0FjdGl2ZToiaXRlbUFjdGl2ZUJnIixjb2xvckl0ZW1CZ1NlbGVjdGVkOiJpdGVtU2VsZWN0ZWRCZyIsY29sb3JJdGVtQmdTZWxlY3RlZEhvcml6b250YWw6Imhvcml6b250YWxJdGVtU2VsZWN0ZWRCZyIsY29sb3JBY3RpdmVCYXJXaWR0aDoiYWN0aXZlQmFyV2lkdGgiLGNvbG9yQWN0aXZlQmFySGVpZ2h0OiJhY3RpdmVCYXJIZWlnaHQiLGNvbG9yQWN0aXZlQmFyQm9yZGVyU2l6ZToiYWN0aXZlQmFyQm9yZGVyV2lkdGgifSxuPSgwLHMuWikoe30scik7cmV0dXJuIE9iamVjdC5rZXlzKGUpLmZvckVhY2goZnVuY3Rpb24odCl7blt0XSE9PXZvaWQgMCYmKG5bZVt0XV09blt0XSxkZWxldGUgblt0XSl9KSxufXZhciBjZT1mKDQ3OTMwKTtmdW5jdGlvbiBLKHIsZSl7cmV0dXJuIGU+Pj5yfGU8PDMyLXJ9ZnVuY3Rpb24gbmUocixlLG4pe3JldHVybiByJmVefnImbn1mdW5jdGlvbiBhZShyLGUsbil7cmV0dXJuIHImZV5yJm5eZSZufWZ1bmN0aW9uIHVlKHIpe3JldHVybiBLKDIscileSygxMyxyKV5LKDIyLHIpfWZ1bmN0aW9uIFoocil7cmV0dXJuIEsoNixyKV5LKDExLHIpXksoMjUscil9ZnVuY3Rpb24gQyhyKXtyZXR1cm4gSyg3LHIpXksoMTgscilecj4+PjN9ZnVuY3Rpb24gaChyKXtyZXR1cm4gSygxNyxyKV5LKDE5LHIpXnI+Pj4xMH1mdW5jdGlvbiBXKHIsZSl7cmV0dXJuIHJbZSYxNV0rPWgocltlKzE0JjE1XSkrcltlKzkmMTVdK0MocltlKzEmMTVdKX12YXIgXz1bMTExNjM1MjQwOCwxODk5NDQ3NDQxLDMwNDkzMjM0NzEsMzkyMTAwOTU3Myw5NjE5ODcxNjMsMTUwODk3MDk5MywyNDUzNjM1NzQ4LDI4NzA3NjMyMjEsMzYyNDM4MTA4MCwzMTA1OTg0MDEsNjA3MjI1Mjc4LDE0MjY4ODE5ODcsMTkyNTA3ODM4OCwyMTYyMDc4MjA2LDI2MTQ4ODgxMDMsMzI0ODIyMjU4MCwzODM1MzkwNDAxLDQwMjIyMjQ3NzQsMjY0MzQ3MDc4LDYwNDgwNzYyOCw3NzAyNTU5ODMsMTI0OTE1MDEyMiwxNTU1MDgxNjkyLDE5OTYwNjQ5ODYsMjU1NDIyMDg4MiwyODIxODM0MzQ5LDI5NTI5OTY4MDgsMzIxMDMxMzY3MSwzMzM2NTcxODkxLDM1ODQ1Mjg3MTEsMTEzOTI2OTkzLDMzODI0MTg5NSw2NjYzMDcyMDUsNzczNTI5OTEyLDEyOTQ3NTczNzIsMTM5NjE4MjI5MSwxNjk1MTgzNzAwLDE5ODY2NjEwNTEsMjE3NzAyNjM1MCwyNDU2OTU2MDM3LDI3MzA0ODU5MjEsMjgyMDMwMjQxMSwzMjU5NzMwODAwLDMzNDU3NjQ3NzEsMzUxNjA2NTgxNywzNjAwMzUyODA0LDQwOTQ1NzE5MDksMjc1NDIzMzQ0LDQzMDIyNzczNCw1MDY5NDg2MTYsNjU5MDYwNTU2LDg4Mzk5Nzg3Nyw5NTgxMzk1NzEsMTMyMjgyMjIxOCwxNTM3MDAyMDYzLDE3NDc4NzM3NzksMTk1NTU2MjIyMiwyMDI0MTA0ODE1LDIyMjc3MzA0NTIsMjM2MTg1MjQyNCwyNDI4NDM2NDc0LDI3NTY3MzQxODcsMzIwNDAzMTQ3OSwzMzI5MzI1Mjk4XSxiLCQsTSxkZT0iMDEyMzQ1Njc4OWFiY2RlZiI7ZnVuY3Rpb24gZmUocixlKXt2YXIgbj0ociY2NTUzNSkrKGUmNjU1MzUpLHQ9KHI+PjE2KSsoZT4+MTYpKyhuPj4xNik7cmV0dXJuIHQ8PDE2fG4mNjU1MzV9ZnVuY3Rpb24gRWUoKXtiPW5ldyBBcnJheSg4KSwkPW5ldyBBcnJheSgyKSxNPW5ldyBBcnJheSg2NCksJFswXT0kWzFdPTAsYlswXT0xNzc5MDMzNzAzLGJbMV09MzE0NDEzNDI3NyxiWzJdPTEwMTM5MDQyNDIsYlszXT0yNzczNDgwNzYyLGJbNF09MTM1OTg5MzExOSxiWzVdPTI2MDA4MjI5MjQsYls2XT01Mjg3MzQ2MzUsYls3XT0xNTQxNDU5MjI1fWZ1bmN0aW9uIHBlKCl7dmFyIHIsZSxuLHQsYSxpLG8sYyxkLHYsbT1uZXcgQXJyYXkoMTYpO3I9YlswXSxlPWJbMV0sbj1iWzJdLHQ9YlszXSxhPWJbNF0saT1iWzVdLG89Yls2XSxjPWJbN107Zm9yKHZhciBTPTA7UzwxNjtTKyspbVtTXT1NWyhTPDwyKSszXXxNWyhTPDwyKSsyXTw8OHxNWyhTPDwyKSsxXTw8MTZ8TVtTPDwyXTw8MjQ7Zm9yKHZhciB4PTA7eDw2NDt4KyspZD1jK1ooYSkrbmUoYSxpLG8pK19beF0seDwxNj9kKz1tW3hdOmQrPVcobSx4KSx2PXVlKHIpK2FlKHIsZSxuKSxjPW8sbz1pLGk9YSxhPWZlKHQsZCksdD1uLG49ZSxlPXIscj1mZShkLHYpO2JbMF0rPXIsYlsxXSs9ZSxiWzJdKz1uLGJbM10rPXQsYls0XSs9YSxiWzVdKz1pLGJbNl0rPW8sYls3XSs9Y31mdW5jdGlvbiBqZShyLGUpe3ZhciBuLHQsYT0wO3Q9JFswXT4+MyY2Mzt2YXIgaT1lJjYzO2ZvcigoJFswXSs9ZTw8Myk8ZTw8MyYmJFsxXSsrLCRbMV0rPWU+PjI5LG49MDtuKzYzPGU7bis9NjQpe2Zvcih2YXIgbz10O288NjQ7bysrKU1bb109ci5jaGFyQ29kZUF0KGErKyk7cGUoKSx0PTB9Zm9yKHZhciBjPTA7YzxpO2MrKylNW2NdPXIuY2hhckNvZGVBdChhKyspfWZ1bmN0aW9uIFRlKCl7dmFyIHI9JFswXT4+MyY2MztpZihNW3IrK109MTI4LHI8PTU2KWZvcih2YXIgZT1yO2U8NTY7ZSsrKU1bZV09MDtlbHNle2Zvcih2YXIgbj1yO248NjQ7bisrKU1bbl09MDtwZSgpO2Zvcih2YXIgdD0wO3Q8NTY7dCsrKU1bdF09MH1NWzU2XT0kWzFdPj4+MjQmMjU1LE1bNTddPSRbMV0+Pj4xNiYyNTUsTVs1OF09JFsxXT4+PjgmMjU1LE1bNTldPSRbMV0mMjU1LE1bNjBdPSRbMF0+Pj4yNCYyNTUsTVs2MV09JFswXT4+PjE2JjI1NSxNWzYyXT0kWzBdPj4+OCYyNTUsTVs2M109JFswXSYyNTUscGUoKX1mdW5jdGlvbiBEZSgpe2Zvcih2YXIgcj0wLGU9bmV3IEFycmF5KDMyKSxuPTA7bjw4O24rKyllW3IrK109YltuXT4+PjI0JjI1NSxlW3IrK109YltuXT4+PjE2JjI1NSxlW3IrK109YltuXT4+PjgmMjU1LGVbcisrXT1iW25dJjI1NTtyZXR1cm4gZX1mdW5jdGlvbiB6ZSgpe2Zvcih2YXIgcj1uZXcgU3RyaW5nLGU9MDtlPDg7ZSsrKWZvcih2YXIgbj0yODtuPj0wO24tPTQpcis9ZGUuY2hhckF0KGJbZV0+Pj5uJjE1KTtyZXR1cm4gcn1mdW5jdGlvbiBobihyKXtyZXR1cm4gRWUoKSxqZShyLHIubGVuZ3RoKSxUZSgpLHplKCl9dmFyIE1uPWhuO2Z1bmN0aW9uIG5uKHIpeyJAYmFiZWwvaGVscGVycyAtIHR5cGVvZiI7cmV0dXJuIG5uPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJnR5cGVvZiBTeW1ib2wuaXRlcmF0b3I9PSJzeW1ib2wiP2Z1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJnR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBlfSxubihyKX12YXIgRXQ9WyJwcm9fbGF5b3V0X3BhcmVudEtleXMiLCJjaGlsZHJlbiIsImljb24iLCJmbGF0TWVudSIsImluZGV4Um91dGUiLCJyb3V0ZXMiXTtmdW5jdGlvbiBqdChyLGUpe3JldHVybiBEdChyKXx8THQocixlKXx8Um4ocixlKXx8d3QoKX1mdW5jdGlvbiB3dCgpe3Rocm93IG5ldyBUeXBlRXJyb3IoYEludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuCitJbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuYCl9ZnVuY3Rpb24gTHQocixlKXt2YXIgbj1yPT1udWxsP251bGw6dHlwZW9mIFN5bWJvbCE9InVuZGVmaW5lZCImJnJbU3ltYm9sLml0ZXJhdG9yXXx8clsiQEBpdGVyYXRvciJdO2lmKG4hPW51bGwpe3ZhciB0PVtdLGE9ITAsaT0hMSxvLGM7dHJ5e2ZvcihuPW4uY2FsbChyKTshKGE9KG89bi5uZXh0KCkpLmRvbmUpJiYodC5wdXNoKG8udmFsdWUpLCEoZSYmdC5sZW5ndGg9PT1lKSk7YT0hMCk7fWNhdGNoKGQpe2k9ITAsYz1kfWZpbmFsbHl7dHJ5eyFhJiZuLnJldHVybiE9bnVsbCYmbi5yZXR1cm4oKX1maW5hbGx5e2lmKGkpdGhyb3cgY319cmV0dXJuIHR9fWZ1bmN0aW9uIER0KHIpe2lmKEFycmF5LmlzQXJyYXkocikpcmV0dXJuIHJ9ZnVuY3Rpb24gTnQocixlKXt2YXIgbj10eXBlb2YgU3ltYm9sIT0idW5kZWZpbmVkIiYmcltTeW1ib2wuaXRlcmF0b3JdfHxyWyJAQGl0ZXJhdG9yIl07aWYoIW4pe2lmKEFycmF5LmlzQXJyYXkocil8fChuPVJuKHIpKXx8ZSYmciYmdHlwZW9mIHIubGVuZ3RoPT0ibnVtYmVyIil7biYmKHI9bik7dmFyIHQ9MCxhPWZ1bmN0aW9uKCl7fTtyZXR1cm57czphLG46ZnVuY3Rpb24oKXtyZXR1cm4gdD49ci5sZW5ndGg/e2RvbmU6ITB9Ontkb25lOiExLHZhbHVlOnJbdCsrXX19LGU6ZnVuY3Rpb24odil7dGhyb3cgdn0sZjphfX10aHJvdyBuZXcgVHlwZUVycm9yKGBJbnZhbGlkIGF0dGVtcHQgdG8gaXRlcmF0ZSBub24taXRlcmFibGUgaW5zdGFuY2UuCitJbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuYCl9dmFyIGk9ITAsbz0hMSxjO3JldHVybntzOmZ1bmN0aW9uKCl7bj1uLmNhbGwocil9LG46ZnVuY3Rpb24oKXt2YXIgdj1uLm5leHQoKTtyZXR1cm4gaT12LmRvbmUsdn0sZTpmdW5jdGlvbih2KXtvPSEwLGM9dn0sZjpmdW5jdGlvbigpe3RyeXshaSYmbi5yZXR1cm4hPW51bGwmJm4ucmV0dXJuKCl9ZmluYWxseXtpZihvKXRocm93IGN9fX19ZnVuY3Rpb24gQXQocixlKXtpZighKHIgaW5zdGFuY2VvZiBlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBLbihyLGUpe2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgdD1lW25dO3QuZW51bWVyYWJsZT10LmVudW1lcmFibGV8fCExLHQuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB0JiYodC53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsdC5rZXksdCl9fWZ1bmN0aW9uIE90KHIsZSxuKXtyZXR1cm4gZSYmS24oci5wcm90b3R5cGUsZSksbiYmS24ocixuKSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxyfWZ1bmN0aW9uIEh0KHIsZSl7aWYodHlwZW9mIGUhPSJmdW5jdGlvbiImJmUhPT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ci5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlJiZlLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOnIsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGUmJnRuKHIsZSl9ZnVuY3Rpb24gJHQocil7dmFyIGU9VW4oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgdD1ybihyKSxhO2lmKGUpe3ZhciBpPXJuKHRoaXMpLmNvbnN0cnVjdG9yO2E9UmVmbGVjdC5jb25zdHJ1Y3QodCxhcmd1bWVudHMsaSl9ZWxzZSBhPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBXdCh0aGlzLGEpfX1mdW5jdGlvbiBXdChyLGUpe2lmKGUmJihubihlKT09PSJvYmplY3QifHx0eXBlb2YgZT09ImZ1bmN0aW9uIikpcmV0dXJuIGU7aWYoZSE9PXZvaWQgMCl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiB6dChyKX1mdW5jdGlvbiB6dChyKXtpZihyPT09dm9pZCAwKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIHJ9ZnVuY3Rpb24gSW4ocil7dmFyIGU9dHlwZW9mIE1hcD09ImZ1bmN0aW9uIj9uZXcgTWFwOnZvaWQgMDtyZXR1cm4gSW49ZnVuY3Rpb24odCl7aWYodD09PW51bGx8fCFGdCh0KSlyZXR1cm4gdDtpZih0eXBlb2YgdCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2lmKHR5cGVvZiBlIT0idW5kZWZpbmVkIil7aWYoZS5oYXModCkpcmV0dXJuIGUuZ2V0KHQpO2Uuc2V0KHQsYSl9ZnVuY3Rpb24gYSgpe3JldHVybiBnbih0LGFyZ3VtZW50cyxybih0aGlzKS5jb25zdHJ1Y3Rvcil9cmV0dXJuIGEucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodC5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTphLGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLHRuKGEsdCl9LEluKHIpfWZ1bmN0aW9uIGduKHIsZSxuKXtyZXR1cm4gVW4oKT9nbj1SZWZsZWN0LmNvbnN0cnVjdC5iaW5kKCk6Z249ZnVuY3Rpb24oYSxpLG8pe3ZhciBjPVtudWxsXTtjLnB1c2guYXBwbHkoYyxpKTt2YXIgZD1GdW5jdGlvbi5iaW5kLmFwcGx5KGEsYyksdj1uZXcgZDtyZXR1cm4gbyYmdG4odixvLnByb3RvdHlwZSksdn0sZ24uYXBwbHkobnVsbCxhcmd1bWVudHMpfWZ1bmN0aW9uIFVuKCl7aWYodHlwZW9mIFJlZmxlY3Q9PSJ1bmRlZmluZWQifHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYodHlwZW9mIFByb3h5PT0iZnVuY3Rpb24iKXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2gocil7cmV0dXJuITF9fWZ1bmN0aW9uIEZ0KHIpe3JldHVybiBGdW5jdGlvbi50b1N0cmluZy5jYWxsKHIpLmluZGV4T2YoIltuYXRpdmUgY29kZV0iKSE9PS0xfWZ1bmN0aW9uIHRuKHIsZSl7cmV0dXJuIHRuPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHQsYSl7cmV0dXJuIHQuX19wcm90b19fPWEsdH0sdG4ocixlKX1mdW5jdGlvbiBybihyKXtyZXR1cm4gcm49T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24obil7cmV0dXJuIG4uX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2Yobil9LHJuKHIpfWZ1bmN0aW9uIEduKHIpe3JldHVybiBHdChyKXx8VXQocil8fFJuKHIpfHxLdCgpfWZ1bmN0aW9uIEt0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcihgSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuCitJbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuYCl9ZnVuY3Rpb24gUm4ocixlKXtpZihyKXtpZih0eXBlb2Ygcj09InN0cmluZyIpcmV0dXJuIFRuKHIsZSk7dmFyIG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHIpLnNsaWNlKDgsLTEpO2lmKG49PT0iT2JqZWN0IiYmci5jb25zdHJ1Y3RvciYmKG49ci5jb25zdHJ1Y3Rvci5uYW1lKSxuPT09Ik1hcCJ8fG49PT0iU2V0IilyZXR1cm4gQXJyYXkuZnJvbShyKTtpZihuPT09IkFyZ3VtZW50cyJ8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pKXJldHVybiBUbihyLGUpfX1mdW5jdGlvbiBVdChyKXtpZih0eXBlb2YgU3ltYm9sIT0idW5kZWZpbmVkIiYmcltTeW1ib2wuaXRlcmF0b3JdIT1udWxsfHxyWyJAQGl0ZXJhdG9yIl0hPW51bGwpcmV0dXJuIEFycmF5LmZyb20ocil9ZnVuY3Rpb24gR3Qocil7aWYoQXJyYXkuaXNBcnJheShyKSlyZXR1cm4gVG4ocil9ZnVuY3Rpb24gVG4ocixlKXsoZT09bnVsbHx8ZT5yLmxlbmd0aCkmJihlPXIubGVuZ3RoKTtmb3IodmFyIG49MCx0PW5ldyBBcnJheShlKTtuPGU7bisrKXRbbl09cltuXTtyZXR1cm4gdH1mdW5jdGlvbiBYdChyLGUpe2lmKHI9PW51bGwpcmV0dXJue307dmFyIG49VnQocixlKSx0LGE7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGk9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhyKTtmb3IoYT0wO2E8aS5sZW5ndGg7YSsrKXQ9aVthXSwhKGUuaW5kZXhPZih0KT49MCkmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChyLHQpJiYoblt0XT1yW3RdKX1yZXR1cm4gbn1mdW5jdGlvbiBWdChyLGUpe2lmKHI9PW51bGwpcmV0dXJue307dmFyIG49e30sdD1PYmplY3Qua2V5cyhyKSxhLGk7Zm9yKGk9MDtpPHQubGVuZ3RoO2krKylhPXRbaV0sIShlLmluZGV4T2YoYSk+PTApJiYoblthXT1yW2FdKTtyZXR1cm4gbn1mdW5jdGlvbiBYbihyLGUpe3ZhciBuPU9iamVjdC5rZXlzKHIpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciB0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocik7ZSYmKHQ9dC5maWx0ZXIoZnVuY3Rpb24oYSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocixhKS5lbnVtZXJhYmxlfSkpLG4ucHVzaC5hcHBseShuLHQpfXJldHVybiBufWZ1bmN0aW9uIHhlKHIpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXSE9bnVsbD9hcmd1bWVudHNbZV06e307ZSUyP1huKE9iamVjdChuKSwhMCkuZm9yRWFjaChmdW5jdGlvbih0KXtrdChyLHQsblt0XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhyLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTpYbihPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSl9cmV0dXJuIHJ9ZnVuY3Rpb24ga3QocixlLG4pe3JldHVybiBlIGluIHI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsZSx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnJbZV09bixyfXZhciB3ZT0icm91dGVzIjtmdW5jdGlvbiBhbihyKXtyZXR1cm4gci5zcGxpdCgiPyIpWzBdLnNwbGl0KCIjIilbMF19dmFyIFBuPWZ1bmN0aW9uKGUpe2lmKCFlLnN0YXJ0c1dpdGgoImh0dHAiKSlyZXR1cm4hMTt0cnl7dmFyIG49bmV3IFVSTChlKTtyZXR1cm4hIW59Y2F0Y2godCl7cmV0dXJuITF9fSxRdD1mdW5jdGlvbihlKXt2YXIgbj1lLnBhdGg7aWYoIW58fG49PT0iLyIpdHJ5e3JldHVybiIvIi5jb25jYXQoTW4oSlNPTi5zdHJpbmdpZnkoZSkpKX1jYXRjaCh0KXt9cmV0dXJuIG4mJmFuKG4pfSxKdD1mdW5jdGlvbihlLG4pe3ZhciB0PWUubmFtZSxhPWUubG9jYWxlO3JldHVybiJsb2NhbGUiaW4gZSYmYT09PSExfHwhdD8hMTplLmxvY2FsZXx8IiIuY29uY2F0KG4sIi4iKS5jb25jYXQodCl9LFZuPWZ1bmN0aW9uKCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT12b2lkIDA/YXJndW1lbnRzWzBdOiIiLG49YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOiIvIjtyZXR1cm4gZS5lbmRzV2l0aCgiLyoiKT9lLnJlcGxhY2UoIi8qIiwiLyIpOihlfHxuKS5zdGFydHNXaXRoKCIvIil8fFBuKGUpP2U6Ii8iLmNvbmNhdChuLCIvIikuY29uY2F0KGUpLnJlcGxhY2UoL1wvXC8vZywiLyIpLnJlcGxhY2UoL1wvXC8vZywiLyIpfSxZdD1mdW5jdGlvbihlLG4pe3ZhciB0PWUubWVudSxhPXQ9PT12b2lkIDA/e306dCxpPWUuaW5kZXhSb3V0ZSxvPWUucGF0aCxjPW89PT12b2lkIDA/IiI6byxkPWUuY2hpbGRyZW58fFtdLHY9YS5uYW1lLG09dj09PXZvaWQgMD9lLm5hbWU6dixTPWEuaWNvbix4PVM9PT12b2lkIDA/ZS5pY29uOlMsUD1hLmhpZGVDaGlsZHJlbixOPVA9PT12b2lkIDA/ZS5oaWRlQ2hpbGRyZW46UCxEPWEuZmxhdE1lbnUsQj1EPT09dm9pZCAwP2UuZmxhdE1lbnU6RCx6PWkmJk9iamVjdC5rZXlzKGkpLmpvaW4oIiwiKSE9PSJyZWRpcmVjdCI/W3hlKHtwYXRoOmMsbWVudTphfSxpKV0uY29uY2F0KGR8fFtdKTpkLEg9eGUoe30sZSk7aWYobSYmKEgubmFtZT1tKSx4JiYoSC5pY29uPXgpLHomJnoubGVuZ3RoKXtpZihOKXJldHVybiBkZWxldGUgSC5jaGlsZHJlbixIO3ZhciBGPUJuKHhlKHhlKHt9LG4pLHt9LHtkYXRhOnp9KSxlKTtpZihCKXJldHVybiBGO2RlbGV0ZSBIW3dlXX1yZXR1cm4gSH0sWGU9ZnVuY3Rpb24oZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSkmJmUubGVuZ3RoPjB9O2Z1bmN0aW9uIEJuKHIpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTp7cGF0aDoiLyJ9LG49ci5kYXRhLHQ9ci5mb3JtYXRNZXNzYWdlLGE9ci5wYXJlbnROYW1lLGk9ci5sb2NhbGU7cmV0dXJuIW58fCFBcnJheS5pc0FycmF5KG4pP1tdOm4uZmlsdGVyKGZ1bmN0aW9uKG8pe3JldHVybiBvP1hlKG8uY2hpbGRyZW4pfHxvLnBhdGh8fG8ub3JpZ2luUGF0aHx8by5sYXlvdXQ/ITA6KG8ucmVkaXJlY3R8fG8udW5hY2Nlc3NpYmxlLCExKTohMX0pLmZpbHRlcihmdW5jdGlvbihvKXt2YXIgYyxkO3JldHVybiEobz09bnVsbHx8KGM9by5tZW51KT09PW51bGx8fGM9PT12b2lkIDApJiZjLm5hbWV8fG8hPW51bGwmJm8uZmxhdE1lbnV8fCEobz09bnVsbHx8KGQ9by5tZW51KT09PW51bGx8fGQ9PT12b2lkIDApJiZkLmZsYXRNZW51PyEwOm8ubWVudSE9PSExfSkubWFwKGZ1bmN0aW9uKG8pe3ZhciBjPXhlKHhlKHt9LG8pLHt9LHtwYXRoOm8ucGF0aHx8by5vcmlnaW5QYXRofSk7cmV0dXJuIWMuY2hpbGRyZW4mJmNbd2VdJiYoYy5jaGlsZHJlbj1jW3dlXSxkZWxldGUgY1t3ZV0pLGMudW5hY2Nlc3NpYmxlJiZkZWxldGUgYy5uYW1lLGMucGF0aD09PSIqIiYmKGMucGF0aD0iLiIpLGMucGF0aD09PSIvKiImJihjLnBhdGg9Ii4iKSwhYy5wYXRoJiZjLm9yaWdpblBhdGgmJihjLnBhdGg9Yy5vcmlnaW5QYXRoKSxjfSkubWFwKGZ1bmN0aW9uKCl7dmFyIG89YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT12b2lkIDA/YXJndW1lbnRzWzBdOntwYXRoOiIvIn0sYz1vLmNoaWxkcmVufHxvW3dlXXx8W10sZD1WbihvLnBhdGgsZT9lLnBhdGg6Ii8iKSx2PW8ubmFtZSxtPUp0KG8sYXx8Im1lbnUiKSxTPW0hPT0hMSYmaSE9PSExJiZ0JiZtP3Qoe2lkOm0sZGVmYXVsdE1lc3NhZ2U6dn0pOnYseD1lLnByb19sYXlvdXRfcGFyZW50S2V5cyxQPXg9PT12b2lkIDA/W106eCxOPWUuY2hpbGRyZW4sRD1lLmljb24sQj1lLmZsYXRNZW51LHo9ZS5pbmRleFJvdXRlLEg9ZS5yb3V0ZXMsRj1YdChlLEV0KSxMPW5ldyBTZXQoW10uY29uY2F0KEduKFApLEduKG8ucGFyZW50S2V5c3x8W10pKSk7ZS5rZXkmJkwuYWRkKGUua2V5KTt2YXIgQT14ZSh4ZSh4ZSh7fSxGKSx7fSx7bWVudTp2b2lkIDB9LG8pLHt9LHtwYXRoOmQsbG9jYWxlOm0sa2V5Om8ua2V5fHxRdCh4ZSh4ZSh7fSxvKSx7fSx7cGF0aDpkfSkpLHByb19sYXlvdXRfcGFyZW50S2V5czpBcnJheS5mcm9tKEwpLmZpbHRlcihmdW5jdGlvbihFKXtyZXR1cm4gRSYmRSE9PSIvIn0pfSk7aWYoUz9BLm5hbWU9UzpkZWxldGUgQS5uYW1lLEEubWVudT09PXZvaWQgMCYmZGVsZXRlIEEubWVudSxYZShjKSl7dmFyIHk9Qm4oeGUoeGUoe30scikse30se2RhdGE6YyxwYXJlbnROYW1lOm18fCIifSksQSk7WGUoeSkmJihBLmNoaWxkcmVuPXkpfXJldHVybiBZdChBLHIpfSkuZmxhdCgxKX12YXIgcXQ9ZnVuY3Rpb24gcigpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dm9pZCAwP2FyZ3VtZW50c1swXTpbXTtyZXR1cm4gZS5maWx0ZXIoZnVuY3Rpb24obil7cmV0dXJuIG4mJihuLm5hbWV8fFhlKG4uY2hpbGRyZW4pKSYmIW4uaGlkZUluTWVudSYmIW4ucmVkaXJlY3R9KS5tYXAoZnVuY3Rpb24obil7dmFyIHQ9eGUoe30sbiksYT10LmNoaWxkcmVufHxuW3dlXXx8W107aWYoZGVsZXRlIHRbd2VdLFhlKGEpJiYhdC5oaWRlQ2hpbGRyZW5Jbk1lbnUmJmEuc29tZShmdW5jdGlvbihvKXtyZXR1cm4gbyYmISFvLm5hbWV9KSl7dmFyIGk9cihhKTtpZihpLmxlbmd0aClyZXR1cm4geGUoeGUoe30sdCkse30se2NoaWxkcmVuOml9KX1yZXR1cm4geGUoe30sbil9KS5maWx0ZXIoZnVuY3Rpb24obil7cmV0dXJuIG59KX0sZXI9ZnVuY3Rpb24ocil7SHQobixyKTt2YXIgZT0kdChuKTtmdW5jdGlvbiBuKCl7cmV0dXJuIEF0KHRoaXMsbiksZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIE90KG4sW3trZXk6ImdldCIsdmFsdWU6ZnVuY3Rpb24oYSl7dmFyIGk7dHJ5e3ZhciBvPU50KHRoaXMuZW50cmllcygpKSxjO3RyeXtmb3Ioby5zKCk7IShjPW8ubigpKS5kb25lOyl7dmFyIGQ9anQoYy52YWx1ZSwyKSx2PWRbMF0sbT1kWzFdLFM9YW4odik7aWYoIVBuKHYpJiYoMCxjZS5CbykoUyxbXSkudGVzdChhKSl7aT1tO2JyZWFrfX19Y2F0Y2goeCl7by5lKHgpfWZpbmFsbHl7by5mKCl9fWNhdGNoKHgpe2k9dm9pZCAwfXJldHVybiBpfX1dKSxufShJbihNYXApKSxucj1mdW5jdGlvbihlKXt2YXIgbj1uZXcgZXIsdD1mdW5jdGlvbiBhKGksbyl7aS5mb3JFYWNoKGZ1bmN0aW9uKGMpe3ZhciBkPWMuY2hpbGRyZW58fGNbd2VdfHxbXTtYZShkKSYmYShkLGMpO3ZhciB2PVZuKGMucGF0aCxvP28ucGF0aDoiLyIpO24uc2V0KGFuKHYpLGMpfSl9O3JldHVybiB0KGUpLG59LHRyPWZ1bmN0aW9uIHIoKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXZvaWQgMD9hcmd1bWVudHNbMF06W107cmV0dXJuIGUubWFwKGZ1bmN0aW9uKG4pe3ZhciB0PW4uY2hpbGRyZW58fG5bd2VdO2lmKFhlKHQpKXt2YXIgYT1yKHQpO2lmKGEubGVuZ3RoKXJldHVybiB4ZSh7fSxuKX12YXIgaT14ZSh7fSxuKTtyZXR1cm4gZGVsZXRlIGlbd2VdLGRlbGV0ZSBpLmNoaWxkcmVuLGl9KS5maWx0ZXIoZnVuY3Rpb24obil7cmV0dXJuIG59KX0scnI9ZnVuY3Rpb24oZSxuLHQsYSl7dmFyIGk9Qm4oe2RhdGE6ZSxmb3JtYXRNZXNzYWdlOnQsbG9jYWxlOm59KSxvPWE/dHIoaSk6cXQoaSksYz1ucihpKTtyZXR1cm57YnJlYWRjcnVtYjpjLG1lbnVEYXRhOm99fSxhcj1ycjtmdW5jdGlvbiBrbihyLGUpe3ZhciBuPU9iamVjdC5rZXlzKHIpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciB0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocik7ZSYmKHQ9dC5maWx0ZXIoZnVuY3Rpb24oYSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocixhKS5lbnVtZXJhYmxlfSkpLG4ucHVzaC5hcHBseShuLHQpfXJldHVybiBufWZ1bmN0aW9uIG9uKHIpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXSE9bnVsbD9hcmd1bWVudHNbZV06e307ZSUyP2tuKE9iamVjdChuKSwhMCkuZm9yRWFjaChmdW5jdGlvbih0KXtvcihyLHQsblt0XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhyLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTprbihPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSl9cmV0dXJuIHJ9ZnVuY3Rpb24gb3IocixlLG4pe3JldHVybiBlIGluIHI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsZSx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnJbZV09bixyfXZhciBpcj1mdW5jdGlvbiByKCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT12b2lkIDA/YXJndW1lbnRzWzBdOltdLG49e307cmV0dXJuIGUuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgYT1vbih7fSx0KTtpZighKCFhfHwhYS5rZXkpKXshYS5jaGlsZHJlbiYmYVt3ZV0mJihhLmNoaWxkcmVuPWFbd2VdLGRlbGV0ZSBhW3dlXSk7dmFyIGk9YS5jaGlsZHJlbnx8W107blthbihhLnBhdGh8fGEua2V5fHwiLyIpXT1vbih7fSxhKSxuW2Eua2V5fHxhLnBhdGh8fCIvIl09b24oe30sYSksaSYmKG49b24ob24oe30sbikscihpKSkpfX0pLG59LGxyPWlyLHVyPWZ1bmN0aW9uKCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT12b2lkIDA/YXJndW1lbnRzWzBdOltdLG49YXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsdD1hcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMDtyZXR1cm4gZS5maWx0ZXIoZnVuY3Rpb24oYSl7aWYoYT09PSIvIiYmbj09PSIvIilyZXR1cm4hMDtpZihhIT09Ii8iJiZhIT09Ii8qIiYmYSYmIVBuKGEpKXt2YXIgaT1hbihhKTt0cnl7aWYodCYmKDAsY2UuQm8pKCIiLmNvbmNhdChpKSkudGVzdChuKXx8KDAsY2UuQm8pKCIiLmNvbmNhdChpKSxbXSkudGVzdChuKXx8KDAsY2UuQm8pKCIiLmNvbmNhdChpLCIvKC4qKSIpKS50ZXN0KG4pKXJldHVybiEwfWNhdGNoKG8pe319cmV0dXJuITF9KS5zb3J0KGZ1bmN0aW9uKGEsaSl7cmV0dXJuIGE9PT1uPzEwOmk9PT1uPy0xMDphLnN1YnN0cigxKS5zcGxpdCgiLyIpLmxlbmd0aC1pLnN1YnN0cigxKS5zcGxpdCgiLyIpLmxlbmd0aH0pfSxjcj1mdW5jdGlvbihlLG4sdCxhKXt2YXIgaT1scihuKSxvPU9iamVjdC5rZXlzKGkpLGM9dXIobyxlfHwiLyIsYSk7cmV0dXJuIWN8fGMubGVuZ3RoPDE/W106KHR8fChjPVtjW2MubGVuZ3RoLTFdXSksYy5tYXAoZnVuY3Rpb24oZCl7dmFyIHY9aVtkXXx8e3Byb19sYXlvdXRfcGFyZW50S2V5czoiIixrZXk6IiJ9LG09bmV3IE1hcCxTPSh2LnByb19sYXlvdXRfcGFyZW50S2V5c3x8W10pLm1hcChmdW5jdGlvbih4KXtyZXR1cm4gbS5oYXMoeCk/bnVsbDoobS5zZXQoeCwhMCksaVt4XSl9KS5maWx0ZXIoZnVuY3Rpb24oeCl7cmV0dXJuIHh9KTtyZXR1cm4gdi5rZXkmJlMucHVzaCh2KSxTfSkuZmxhdCgxKSl9LGRyPWNyLEhlPWYoMjE1MzIpLFZlPWYoMjYwNTgpLHNyPWYoOTM5NjcpLHRlPWYubihzciksUW49Zig5ODQyMyksdnI9Zig4MDMzNCksZnI9Zig1MDY4KSxtcj1mKDI1MjY5KSxocj1mKDc4MTY0KSx1PWYoODU4OTMpLGdyPWZ1bmN0aW9uKGUpe3ZhciBuPSgwLHAudXNlQ29udGV4dCkocS5MXyksdD1uLmhhc2hJZCxhPWUuc3R5bGUsaT1lLnByZWZpeENscyxvPWUuY2hpbGRyZW4sYz1lLmhhc1BhZ2VDb250YWluZXIsZD1jPT09dm9pZCAwPzA6Yyx2PXRlKCkoIiIuY29uY2F0KGksIi1jb250ZW50IiksdCwoMCxsLlopKCgwLGwuWikoe30sIiIuY29uY2F0KGksIi1oYXMtaGVhZGVyIiksZS5oYXNIZWFkZXIpLCIiLmNvbmNhdChpLCItY29udGVudC1oYXMtcGFnZS1jb250YWluZXIiKSxkPjApKSxtPWUuRXJyb3JCb3VuZGFyeXx8aHIuUztyZXR1cm4gZS5FcnJvckJvdW5kYXJ5PT09ITE/KDAsdS5qc3gpKFZlLlouQ29udGVudCx7Y2xhc3NOYW1lOnYsc3R5bGU6YSxjaGlsZHJlbjpvfSk6KDAsdS5qc3gpKG0se2NoaWxkcmVuOigwLHUuanN4KShWZS5aLkNvbnRlbnQse2NsYXNzTmFtZTp2LHN0eWxlOmEsY2hpbGRyZW46b30pfSl9LHByPWZ1bmN0aW9uKCl7cmV0dXJuKDAsdS5qc3hzKSgic3ZnIix7d2lkdGg6IjFlbSIsaGVpZ2h0OiIxZW0iLHZpZXdCb3g6IjAgMCAyMDAgMjAwIixjaGlsZHJlbjpbKDAsdS5qc3hzKSgiZGVmcyIse2NoaWxkcmVuOlsoMCx1LmpzeHMpKCJsaW5lYXJHcmFkaWVudCIse3gxOiI2Mi4xMDIzMjczJSIseTE6IjAlIix4MjoiMTA4LjE5NzE4JSIseTI6IjM3Ljg2MzU3NjQlIixpZDoibGluZWFyR3JhZGllbnQtMSIsY2hpbGRyZW46WygwLHUuanN4KSgic3RvcCIse3N0b3BDb2xvcjoiIzQyODVFQiIsb2Zmc2V0OiIwJSJ9KSwoMCx1LmpzeCkoInN0b3AiLHtzdG9wQ29sb3I6IiMyRUM3RkYiLG9mZnNldDoiMTAwJSJ9KV19KSwoMCx1LmpzeHMpKCJsaW5lYXJHcmFkaWVudCIse3gxOiI2OS42NDQxMTYlIix5MToiMCUiLHgyOiI1NC4wNDI4OTc1JSIseTI6IjEwOC40NTY3MTQlIixpZDoibGluZWFyR3JhZGllbnQtMiIsY2hpbGRyZW46WygwLHUuanN4KSgic3RvcCIse3N0b3BDb2xvcjoiIzI5Q0RGRiIsb2Zmc2V0OiIwJSJ9KSwoMCx1LmpzeCkoInN0b3AiLHtzdG9wQ29sb3I6IiMxNDhFRkYiLG9mZnNldDoiMzcuODYwMDY4NyUifSksKDAsdS5qc3gpKCJzdG9wIix7c3RvcENvbG9yOiIjMEE2MEZGIixvZmZzZXQ6IjEwMCUifSldfSksKDAsdS5qc3hzKSgibGluZWFyR3JhZGllbnQiLHt4MToiNjkuNjkwODE2NSUiLHkxOiItMTIuOTc0MzU4NyUiLHgyOiIxNi43MjI4OTgxJSIseTI6IjExNy4zOTEyNDglIixpZDoibGluZWFyR3JhZGllbnQtMyIsY2hpbGRyZW46WygwLHUuanN4KSgic3RvcCIse3N0b3BDb2xvcjoiI0ZBODE2RSIsb2Zmc2V0OiIwJSJ9KSwoMCx1LmpzeCkoInN0b3AiLHtzdG9wQ29sb3I6IiNGNzRBNUMiLG9mZnNldDoiNDEuNDcyNjA2JSJ9KSwoMCx1LmpzeCkoInN0b3AiLHtzdG9wQ29sb3I6IiNGNTFEMkMiLG9mZnNldDoiMTAwJSJ9KV19KSwoMCx1LmpzeHMpKCJsaW5lYXJHcmFkaWVudCIse3gxOiI2OC4xMjc5ODcyJSIseTE6Ii0zNS42OTA1NzM3JSIseDI6IjMwLjQ0MDA5MTQlIix5MjoiMTE0Ljk0MjY3OSUiLGlkOiJsaW5lYXJHcmFkaWVudC00IixjaGlsZHJlbjpbKDAsdS5qc3gpKCJzdG9wIix7c3RvcENvbG9yOiIjRkE4RTdEIixvZmZzZXQ6IjAlIn0pLCgwLHUuanN4KSgic3RvcCIse3N0b3BDb2xvcjoiI0Y3NEE1QyIsb2Zmc2V0OiI1MS4yNjM1MTkxJSJ9KSwoMCx1LmpzeCkoInN0b3AiLHtzdG9wQ29sb3I6IiNGNTFEMkMiLG9mZnNldDoiMTAwJSJ9KV19KV19KSwoMCx1LmpzeCkoImciLHtzdHJva2U6Im5vbmUiLHN0cm9rZVdpZHRoOjEsZmlsbDoibm9uZSIsZmlsbFJ1bGU6ImV2ZW5vZGQiLGNoaWxkcmVuOigwLHUuanN4KSgiZyIse3RyYW5zZm9ybToidHJhbnNsYXRlKC0yMC4wMDAwMDAsIC0yMC4wMDAwMDApIixjaGlsZHJlbjooMCx1LmpzeCkoImciLHt0cmFuc2Zvcm06InRyYW5zbGF0ZSgyMC4wMDAwMDAsIDIwLjAwMDAwMCkiLGNoaWxkcmVuOigwLHUuanN4cykoImciLHtjaGlsZHJlbjpbKDAsdS5qc3hzKSgiZyIse2ZpbGxSdWxlOiJub256ZXJvIixjaGlsZHJlbjpbKDAsdS5qc3hzKSgiZyIse2NoaWxkcmVuOlsoMCx1LmpzeCkoInBhdGgiLHtkOiJNOTEuNTg4MDg2Myw0LjE3NjUyODIzIEw0LjE3OTk2NTQ0LDkxLjUxMjc3MjggQy0wLjUxOTI0MDYwNSw5Ni4yMDgxMTQ2IC0wLjUxOTI0MDYwNSwxMDMuNzkxODg1IDQuMTc5OTY1NDQsMTA4LjQ4NzIyNyBMOTEuNTg4MDg2MywxOTUuODIzNDcyIEM5Ni4yODcyOTIzLDIwMC41MTg4MTQgMTAzLjg3NzMwNCwyMDAuNTE4ODE0IDEwOC41NzY1MSwxOTUuODIzNDcyIEwxNDUuMjI1NDg3LDE1OS4yMDQ2MzIgQzE0OS40MzM5NjksMTU0Ljk5OTYxMSAxNDkuNDMzOTY5LDE0OC4xODE5MjQgMTQ1LjIyNTQ4NywxNDMuOTc2OTAzIEMxNDEuMDE3MDA1LDEzOS43NzE4ODEgMTM0LjE5MzcwNywxMzkuNzcxODgxIDEyOS45ODUyMjUsMTQzLjk3NjkwMyBMMTAyLjIwMTkzLDE3MS43MzczNTIgQzEwMS4wMzIzMDUsMTcyLjkwNjAxNSA5OS4yNTcxNjA5LDE3Mi45MDYwMTUgOTguMDg3NTM1OSwxNzEuNzM3MzUyIEwyOC4yODU5MDgsMTAxLjk5MzEyMiBDMjcuMTE2MjgzMSwxMDAuODI0NDU5IDI3LjExNjI4MzEsOTkuMDUwNzc1IDI4LjI4NTkwOCw5Ny44ODIxMTE4IEw5OC4wODc1MzU5LDI4LjEzNzg4MjMgQzk5LjI1NzE2MDksMjYuOTY5MjE5MSAxMDEuMDMyMzA1LDI2Ljk2OTIxOTEgMTAyLjIwMTkzLDI4LjEzNzg4MjMgTDEyOS45ODUyMjUsNTUuODk4MzMxNCBDMTM0LjE5MzcwNyw2MC4xMDMzNTI4IDE0MS4wMTcwMDUsNjAuMTAzMzUyOCAxNDUuMjI1NDg3LDU1Ljg5ODMzMTQgQzE0OS40MzM5NjksNTEuNjkzMzEgMTQ5LjQzMzk2OSw0NC44NzU2MjMyIDE0NS4yMjU0ODcsNDAuNjcwNjAxOCBMMTA4LjU4MDU1LDQuMDU1NzQ1OTIgQzEwMy44NjIwNDksLTAuNTM3OTg2ODQ2IDk2LjI2OTI2MTgsLTAuNTAwNzk3OTA2IDkxLjU4ODA4NjMsNC4xNzY1MjgyMyBaIixmaWxsOiJ1cmwoI2xpbmVhckdyYWRpZW50LTEpIn0pLCgwLHUuanN4KSgicGF0aCIse2Q6Ik05MS41ODgwODYzLDQuMTc2NTI4MjMgTDQuMTc5OTY1NDQsOTEuNTEyNzcyOCBDLTAuNTE5MjQwNjA1LDk2LjIwODExNDYgLTAuNTE5MjQwNjA1LDEwMy43OTE4ODUgNC4xNzk5NjU0NCwxMDguNDg3MjI3IEw5MS41ODgwODYzLDE5NS44MjM0NzIgQzk2LjI4NzI5MjMsMjAwLjUxODgxNCAxMDMuODc3MzA0LDIwMC41MTg4MTQgMTA4LjU3NjUxLDE5NS44MjM0NzIgTDE0NS4yMjU0ODcsMTU5LjIwNDYzMiBDMTQ5LjQzMzk2OSwxNTQuOTk5NjExIDE0OS40MzM5NjksMTQ4LjE4MTkyNCAxNDUuMjI1NDg3LDE0My45NzY5MDMgQzE0MS4wMTcwMDUsMTM5Ljc3MTg4MSAxMzQuMTkzNzA3LDEzOS43NzE4ODEgMTI5Ljk4NTIyNSwxNDMuOTc2OTAzIEwxMDIuMjAxOTMsMTcxLjczNzM1MiBDMTAxLjAzMjMwNSwxNzIuOTA2MDE1IDk5LjI1NzE2MDksMTcyLjkwNjAxNSA5OC4wODc1MzU5LDE3MS43MzczNTIgTDI4LjI4NTkwOCwxMDEuOTkzMTIyIEMyNy4xMTYyODMxLDEwMC44MjQ0NTkgMjcuMTE2MjgzMSw5OS4wNTA3NzUgMjguMjg1OTA4LDk3Ljg4MjExMTggTDk4LjA4NzUzNTksMjguMTM3ODgyMyBDMTAwLjk5OTg2NCwyNS42MjcxODM2IDEwNS43NTE2NDIsMjAuNTQxODI0IDExMi43Mjk2NTIsMTkuMzUyNDQ4NyBDMTE3LjkxNTU4NSwxOC40Njg1MjYxIDEyMy41ODUyMTksMjAuNDE0MDIzOSAxMjkuNzM4NTU0LDI1LjE4ODk0MjQgQzEyNS42MjQ2NjMsMjEuMDc4NDI5MiAxMTguNTcxOTk1LDE0LjAzNDAzMDQgMTA4LjU4MDU1LDQuMDU1NzQ1OTIgQzEwMy44NjIwNDksLTAuNTM3OTg2ODQ2IDk2LjI2OTI2MTgsLTAuNTAwNzk3OTA2IDkxLjU4ODA4NjMsNC4xNzY1MjgyMyBaIixmaWxsOiJ1cmwoI2xpbmVhckdyYWRpZW50LTIpIn0pXX0pLCgwLHUuanN4KSgicGF0aCIse2Q6Ik0xNTMuNjg1NjMzLDEzNS44NTQ1NzkgQzE1Ny44OTQxMTUsMTQwLjA1OTYgMTY0LjcxNzQxMiwxNDAuMDU5NiAxNjguOTI1ODk0LDEzNS44NTQ1NzkgTDE5NS45NTk5NzcsMTA4Ljg0MjcyNiBDMjAwLjY1OTE4MywxMDQuMTQ3Mzg0IDIwMC42NTkxODMsOTYuNTYzNjEzMyAxOTUuOTYwNTI3LDkxLjg2ODgxOTQgTDE2OC42OTA3NzcsNjQuNzE4MTE1OSBDMTY0LjQ3MjMzMiw2MC41MTgwODU4IDE1Ny42NDY4NjgsNjAuNTI0MTQyNSAxNTMuNDM1ODk1LDY0LjczMTY1MjYgQzE0OS4yMjc0MTMsNjguOTM2Njc0IDE0OS4yMjc0MTMsNzUuNzU0MzYwNyAxNTMuNDM1ODk1LDc5Ljk1OTM4MjEgTDE3MS44NTQwMzUsOTguMzYyMzc2NSBDMTczLjAyMzY2LDk5LjUzMTAzOTYgMTczLjAyMzY2LDEwMS4zMDQ3MjQgMTcxLjg1NDAzNSwxMDIuNDczMzg3IEwxNTMuNjg1NjMzLDEyMC42MjY4NDkgQzE0OS40NzcxNSwxMjQuODMxODcgMTQ5LjQ3NzE1LDEzMS42NDk1NTcgMTUzLjY4NTYzMywxMzUuODU0NTc5IFoiLGZpbGw6InVybCgjbGluZWFyR3JhZGllbnQtMykifSldfSksKDAsdS5qc3gpKCJlbGxpcHNlIix7ZmlsbDoidXJsKCNsaW5lYXJHcmFkaWVudC00KSIsY3g6IjEwMC41MTkzMzkiLGN5OiIxMDAuNDM2NjgxIixyeDoiMjMuNjAwMTkyNiIscnk6IjIzLjU4MDc4NiJ9KV19KX0pfSl9KV19KX0seXI9ZigzMzE5NyksbG49Zig2MjgxMikseHI9Zig2MDUzMiksQ3I9Zig1NTI0MSksYnI9ZnVuY3Rpb24oKXtyZXR1cm4oMCx1LmpzeCkoInN2ZyIse3dpZHRoOiIxZW0iLGhlaWdodDoiMWVtIix2aWV3Qm94OiIwIDAgMTIgMTIiLGZpbGw6ImN1cnJlbnRDb2xvciIsImFyaWEtaGlkZGVuIjoidHJ1ZSIsY2hpbGRyZW46KDAsdS5qc3gpKCJwYXRoIix7ZDoiTTAgMGgzdjNIMFYwem00LjUgMGgzdjNoLTNWMHpNOSAwaDN2M0g5VjB6TTAgNC41aDN2M0gwdi0zem00LjUwMyAwaDN2M2gtM3YtM3pNOSA0LjVoM3YzSDl2LTN6TTAgOWgzdjNIMFY5em00LjUwMyAwaDN2M2gtM1Y5ek05IDloM3YzSDlWOXoifSl9KX0sU3I9ZnVuY3Rpb24gcihlKXt2YXIgbj1lLmFwcExpc3QsdD1lLmJhc2VDbGFzc05hbWUsYT1lLmhhc2hJZCxpPWUuaXRlbUNsaWNrO3JldHVybigwLHUuanN4KSgiZGl2Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdCh0LCItY29udGVudCAiKS5jb25jYXQoYSkudHJpbSgpLGNoaWxkcmVuOigwLHUuanN4KSgidWwiLHtjbGFzc05hbWU6IiIuY29uY2F0KHQsIi1jb250ZW50LWxpc3QgIikuY29uY2F0KGEpLnRyaW0oKSxjaGlsZHJlbjpuPT1udWxsP3ZvaWQgMDpuLm1hcChmdW5jdGlvbihvLGMpe3ZhciBkO3JldHVybiBvIT1udWxsJiYoZD1vLmNoaWxkcmVuKSE9PW51bGwmJmQhPT12b2lkIDAmJmQubGVuZ3RoPygwLHUuanN4cykoImRpdiIse2NsYXNzTmFtZToiIi5jb25jYXQodCwiLWNvbnRlbnQtbGlzdC1pdGVtLWdyb3VwICIpLmNvbmNhdChhKS50cmltKCksY2hpbGRyZW46WygwLHUuanN4KSgiZGl2Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdCh0LCItY29udGVudC1saXN0LWl0ZW0tZ3JvdXAtdGl0bGUgIikuY29uY2F0KGEpLnRyaW0oKSxjaGlsZHJlbjpvLnRpdGxlfSksKDAsdS5qc3gpKHIse2hhc2hJZDphLGl0ZW1DbGljazppLGFwcExpc3Q6bz09bnVsbD92b2lkIDA6by5jaGlsZHJlbixiYXNlQ2xhc3NOYW1lOnR9KV19LGMpOigwLHUuanN4KSgibGkiLHtjbGFzc05hbWU6IiIuY29uY2F0KHQsIi1jb250ZW50LWxpc3QtaXRlbSAiKS5jb25jYXQoYSkudHJpbSgpLG9uQ2xpY2s6ZnVuY3Rpb24obSl7bS5zdG9wUHJvcGFnYXRpb24oKSxpPT1udWxsfHxpKG8pfSxjaGlsZHJlbjooMCx1LmpzeHMpKCJhIix7aHJlZjppP3ZvaWQgMDpvLnVybCx0YXJnZXQ6by50YXJnZXQscmVsOiJub3JlZmVycmVyIixjaGlsZHJlbjpbRW4oby5pY29uKSwoMCx1LmpzeHMpKCJkaXYiLHtjaGlsZHJlbjpbKDAsdS5qc3gpKCJkaXYiLHtjaGlsZHJlbjpvLnRpdGxlfSksby5kZXNjPygwLHUuanN4KSgic3BhbiIse2NoaWxkcmVuOm8uZGVzY30pOm51bGxdfSldfSl9LGMpfSl9KX0pfSxfbj1mdW5jdGlvbihlKXtpZighZXx8IWUuc3RhcnRzV2l0aCgiaHR0cCIpKXJldHVybiExO3RyeXt2YXIgbj1uZXcgVVJMKGUpO3JldHVybiEhbn1jYXRjaCh0KXtyZXR1cm4hMX19LFpyPWZ1bmN0aW9uKGUsbil7aWYoZSYmdHlwZW9mIGU9PSJzdHJpbmciJiZfbihlKSlyZXR1cm4oMCx1LmpzeCkoImltZyIse3NyYzplLGFsdDoibG9nbyJ9KTtpZih0eXBlb2YgZT09ImZ1bmN0aW9uIilyZXR1cm4gZSgpO2lmKGUmJnR5cGVvZiBlPT0ic3RyaW5nIilyZXR1cm4oMCx1LmpzeCkoImRpdiIse2lkOiJhdmF0YXJMb2dvIixjaGlsZHJlbjplfSk7aWYoIWUmJm4mJnR5cGVvZiBuPT0ic3RyaW5nIil7dmFyIHQ9bi5zdWJzdHJpbmcoMCwxKTtyZXR1cm4oMCx1LmpzeCkoImRpdiIse2lkOiJhdmF0YXJMb2dvIixjaGlsZHJlbjp0fSl9cmV0dXJuIGV9LE1yPWZ1bmN0aW9uIHIoZSl7dmFyIG49ZS5hcHBMaXN0LHQ9ZS5iYXNlQ2xhc3NOYW1lLGE9ZS5oYXNoSWQsaT1lLml0ZW1DbGljaztyZXR1cm4oMCx1LmpzeCkoImRpdiIse2NsYXNzTmFtZToiIi5jb25jYXQodCwiLWNvbnRlbnQgIikuY29uY2F0KGEpLnRyaW0oKSxjaGlsZHJlbjooMCx1LmpzeCkoInVsIix7Y2xhc3NOYW1lOiIiLmNvbmNhdCh0LCItY29udGVudC1saXN0ICIpLmNvbmNhdChhKS50cmltKCksY2hpbGRyZW46bj09bnVsbD92b2lkIDA6bi5tYXAoZnVuY3Rpb24obyxjKXt2YXIgZDtyZXR1cm4gbyE9bnVsbCYmKGQ9by5jaGlsZHJlbikhPT1udWxsJiZkIT09dm9pZCAwJiZkLmxlbmd0aD8oMCx1LmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KHQsIi1jb250ZW50LWxpc3QtaXRlbS1ncm91cCAiKS5jb25jYXQoYSkudHJpbSgpLGNoaWxkcmVuOlsoMCx1LmpzeCkoImRpdiIse2NsYXNzTmFtZToiIi5jb25jYXQodCwiLWNvbnRlbnQtbGlzdC1pdGVtLWdyb3VwLXRpdGxlICIpLmNvbmNhdChhKS50cmltKCksY2hpbGRyZW46by50aXRsZX0pLCgwLHUuanN4KShyLHtoYXNoSWQ6YSxpdGVtQ2xpY2s6aSxhcHBMaXN0Om89PW51bGw/dm9pZCAwOm8uY2hpbGRyZW4sYmFzZUNsYXNzTmFtZTp0fSldfSxjKTooMCx1LmpzeCkoImxpIix7Y2xhc3NOYW1lOiIiLmNvbmNhdCh0LCItY29udGVudC1saXN0LWl0ZW0gIikuY29uY2F0KGEpLnRyaW0oKSxvbkNsaWNrOmZ1bmN0aW9uKG0pe20uc3RvcFByb3BhZ2F0aW9uKCksaT09bnVsbHx8aShvKX0sY2hpbGRyZW46KDAsdS5qc3hzKSgiYSIse2hyZWY6aT8iamF2YXNjcmlwdDo7IjpvLnVybCx0YXJnZXQ6by50YXJnZXQscmVsOiJub3JlZmVycmVyIixjaGlsZHJlbjpbWnIoby5pY29uLG8udGl0bGUpLCgwLHUuanN4KSgiZGl2Iix7Y2hpbGRyZW46KDAsdS5qc3gpKCJkaXYiLHtjaGlsZHJlbjpvLnRpdGxlfSl9KV19KX0sYyl9KX0pfSl9LFBlPWYoNjQ4NDcpLElyPWZ1bmN0aW9uKGUpe3JldHVybnsiJi1jb250ZW50Ijp7bWF4SGVpZ2h0OiJjYWxjKDEwMHZoIC0gNDhweCkiLG92ZXJmbG93OiJhdXRvIiwiJi1saXN0Ijp7Ym94U2l6aW5nOiJjb250ZW50LWJveCIsbWF4V2lkdGg6NjU2LG1hcmdpbkJsb2NrOjAsbWFyZ2luSW5saW5lOjAscGFkZGluZ0Jsb2NrOjAscGFkZGluZ0lubGluZTowLGxpc3RTdHlsZToibm9uZSIsIiYtaXRlbSI6e3Bvc2l0aW9uOiJyZWxhdGl2ZSIsZGlzcGxheToiaW5saW5lLWJsb2NrIix3aWR0aDozMjgsaGVpZ2h0OjcyLHBhZGRpbmdJbmxpbmU6MTYscGFkZGluZ0Jsb2NrOjE2LHZlcnRpY2FsQWxpZ246InRvcCIsbGlzdFN0eWxlVHlwZToibm9uZSIsdHJhbnNpdGlvbjoidHJhbnNmb3JtIDAuMnMgY3ViaWMtYmV6aWVyKDAuMzMzLCAwLCAwLCAxKSIsYm9yZGVyUmFkaXVzOmUuYm9yZGVyUmFkaXVzLCImLWdyb3VwIjp7bWFyZ2luQm90dG9tOjE2LCImLXRpdGxlIjp7bWFyZ2luOiIxNnB4IDAgOHB4IDEycHgiLGZvbnRXZWlnaHQ6NjAwLGNvbG9yOiJyZ2JhKDAsIDAsIDAsIDAuODgpIixmb250U2l6ZToxNixvcGFjaXR5Oi44NSxsaW5lSGVpZ2h0OjEuNSwiJjpmaXJzdC1jaGlsZCI6e21hcmdpblRvcDoxMn19fSwiJjpob3ZlciI6e2JhY2tncm91bmRDb2xvcjplLmNvbG9yQmdUZXh0SG92ZXJ9LCIqIGRpdiI6UGUuV2Y9PT1udWxsfHxQZS5XZj09PXZvaWQgMD92b2lkIDA6KDAsUGUuV2YpKGUpLGE6e2Rpc3BsYXk6ImZsZXgiLGhlaWdodDoiMTAwJSIsZm9udFNpemU6MTIsdGV4dERlY29yYXRpb246Im5vbmUiLCImID4gaW1nIjp7d2lkdGg6NDAsaGVpZ2h0OjQwfSwiJiA+IGRpdiI6e21hcmdpbklubGluZVN0YXJ0OjE0LGNvbG9yOmUuY29sb3JUZXh0SGVhZGluZyxmb250U2l6ZToxNCxsaW5lSGVpZ2h0OiIyMnB4Iix3aGl0ZVNwYWNlOiJub3dyYXAiLHRleHRPdmVyZmxvdzoiZWxsaXBzaXMifSwiJiA+IGRpdiA+IHNwYW4iOntjb2xvcjplLmNvbG9yVGV4dFNlY29uZGFyeSxmb250U2l6ZToxMixsaW5lSGVpZ2h0OiIyMHB4In19fX19fX0sUnI9ZnVuY3Rpb24oZSl7cmV0dXJueyImLWNvbnRlbnQiOnttYXhIZWlnaHQ6ImNhbGMoMTAwdmggLSA0OHB4KSIsb3ZlcmZsb3c6ImF1dG8iLCImLWxpc3QiOntib3hTaXppbmc6ImJvcmRlci1ib3giLG1heFdpZHRoOjM3NixtYXJnaW5CbG9jazowLG1hcmdpbklubGluZTowLHBhZGRpbmdCbG9jazowLHBhZGRpbmdJbmxpbmU6MCxsaXN0U3R5bGU6Im5vbmUiLCImLWl0ZW0iOntwb3NpdGlvbjoicmVsYXRpdmUiLGRpc3BsYXk6ImlubGluZS1ibG9jayIsd2lkdGg6MTA0LGhlaWdodDoxMDQsbWFyZ2luQmxvY2s6OCxtYXJnaW5JbmxpbmU6OCxwYWRkaW5nSW5saW5lOjI0LHBhZGRpbmdCbG9jazoyNCx2ZXJ0aWNhbEFsaWduOiJ0b3AiLGxpc3RTdHlsZVR5cGU6Im5vbmUiLHRyYW5zaXRpb246InRyYW5zZm9ybSAwLjJzIGN1YmljLWJlemllcigwLjMzMywgMCwgMCwgMSkiLGJvcmRlclJhZGl1czplLmJvcmRlclJhZGl1cywiJi1ncm91cCI6e21hcmdpbkJvdHRvbToxNiwiJi10aXRsZSI6e21hcmdpbjoiMTZweCAwIDhweCAxMnB4Iixmb250V2VpZ2h0OjYwMCxjb2xvcjoicmdiYSgwLCAwLCAwLCAwLjg4KSIsZm9udFNpemU6MTYsb3BhY2l0eTouODUsbGluZUhlaWdodDoxLjUsIiY6Zmlyc3QtY2hpbGQiOnttYXJnaW5Ub3A6MTJ9fX0sIiY6aG92ZXIiOntiYWNrZ3JvdW5kQ29sb3I6ZS5jb2xvckJnVGV4dEhvdmVyfSxhOntkaXNwbGF5OiJmbGV4IixmbGV4RGlyZWN0aW9uOiJjb2x1bW4iLGFsaWduSXRlbXM6ImNlbnRlciIsaGVpZ2h0OiIxMDAlIixmb250U2l6ZToxMix0ZXh0RGVjb3JhdGlvbjoibm9uZSIsIiYgPiAjYXZhdGFyTG9nbyI6e3dpZHRoOjQwLGhlaWdodDo0MCxtYXJnaW46IjAgYXV0byIsY29sb3I6ZS5jb2xvclByaW1hcnksZm9udFNpemU6MjIsbGluZUhlaWdodDoiNDBweCIsdGV4dEFsaWduOiJjZW50ZXIiLGJhY2tncm91bmRJbWFnZToibGluZWFyLWdyYWRpZW50KDE4MGRlZywgI0U4RjBGQiAwJSwgI0Y2RjhGQyAxMDAlKSIsYm9yZGVyUmFkaXVzOmUuYm9yZGVyUmFkaXVzfSwiJiA+IGltZyI6e3dpZHRoOjQwLGhlaWdodDo0MH0sIiYgPiBkaXYiOnttYXJnaW5CbG9ja1N0YXJ0OjUsbWFyZ2luSW5saW5lU3RhcnQ6MCxjb2xvcjplLmNvbG9yVGV4dEhlYWRpbmcsZm9udFNpemU6MTQsbGluZUhlaWdodDoiMjJweCIsd2hpdGVTcGFjZToibm93cmFwIix0ZXh0T3ZlcmZsb3c6ImVsbGlwc2lzIn0sIiYgPiBkaXYgPiBzcGFuIjp7Y29sb3I6ZS5jb2xvclRleHRTZWNvbmRhcnksZm9udFNpemU6MTIsbGluZUhlaWdodDoiMjBweCJ9fX19fX19LFRyPWZ1bmN0aW9uKGUpe3ZhciBuLHQsYSxpLG87cmV0dXJuKDAsbC5aKSh7fSxlLmNvbXBvbmVudENscyx7IiYtaWNvbiI6e2Rpc3BsYXk6ImlubGluZS1mbGV4IixhbGlnbkl0ZW1zOiJjZW50ZXIiLGp1c3RpZnlDb250ZW50OiJjZW50ZXIiLHBhZGRpbmdJbmxpbmU6NCxwYWRkaW5nQmxvY2s6MCxmb250U2l6ZToxNCxsaW5lSGVpZ2h0OiIxNHB4IixoZWlnaHQ6Mjgsd2lkdGg6MjgsY3Vyc29yOiJwb2ludGVyIixjb2xvcjoobj1lLmxheW91dCk9PT1udWxsfHxuPT09dm9pZCAwP3ZvaWQgMDpuLmNvbG9yVGV4dEFwcExpc3RJY29uLGJvcmRlclJhZGl1czplLmJvcmRlclJhZGl1cywiJjpob3ZlciI6e2NvbG9yOih0PWUubGF5b3V0KT09PW51bGx8fHQ9PT12b2lkIDA/dm9pZCAwOnQuY29sb3JUZXh0QXBwTGlzdEljb25Ib3ZlcixiYWNrZ3JvdW5kQ29sb3I6KGE9ZS5sYXlvdXQpPT09bnVsbHx8YT09PXZvaWQgMD92b2lkIDA6YS5jb2xvckJnQXBwTGlzdEljb25Ib3Zlcn0sIiYtYWN0aXZlIjp7Y29sb3I6KGk9ZS5sYXlvdXQpPT09bnVsbHx8aT09PXZvaWQgMD92b2lkIDA6aS5jb2xvclRleHRBcHBMaXN0SWNvbkhvdmVyLGJhY2tncm91bmRDb2xvcjoobz1lLmxheW91dCk9PT1udWxsfHxvPT09dm9pZCAwP3ZvaWQgMDpvLmNvbG9yQmdBcHBMaXN0SWNvbkhvdmVyfX0sIiYtaXRlbS10aXRsZSI6e21hcmdpbklubGluZVN0YXJ0OiIxNnB4IixtYXJnaW5JbmxpbmVFbmQ6IjhweCIsbWFyZ2luQmxvY2tTdGFydDowLG1hcmdpbkJsb2NrRW5kOiIxMnB4Iixmb250V2VpZ2h0OjYwMCxjb2xvcjoicmdiYSgwLCAwLCAwLCAwLjg4KSIsZm9udFNpemU6MTYsb3BhY2l0eTouODUsbGluZUhlaWdodDoxLjUsIiY6Zmlyc3QtY2hpbGQiOnttYXJnaW5CbG9ja1N0YXJ0OjEyfX0sIiYtcG9wb3ZlciI6KDAsbC5aKSh7fSwiIi5jb25jYXQoZS5hbnRDbHMsIi1wb3BvdmVyLWFycm93Iikse2Rpc3BsYXk6Im5vbmUifSksIiYtc2ltcGxlIjpScihlKSwiJi1kZWZhdWx0IjpJcihlKX0pfTtmdW5jdGlvbiBQcihyKXtyZXR1cm4oMCxQZS5YaikoIkFwcHNMb2dvQ29tcG9uZW50cyIsZnVuY3Rpb24oZSl7dmFyIG49KDAscy5aKSgoMCxzLlopKHt9LGUpLHt9LHtjb21wb25lbnRDbHM6Ii4iLmNvbmNhdChyKX0pO3JldHVybltUcihuKV19KX12YXIgRW49ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlPT0ic3RyaW5nIj8oMCx1LmpzeCkoImltZyIse3dpZHRoOiJhdXRvIixoZWlnaHQ6MjIsc3JjOmUsYWx0OiJsb2dvIn0pOnR5cGVvZiBlPT0iZnVuY3Rpb24iP2UoKTplfSxqbj1mdW5jdGlvbihlKXt2YXIgbix0PWUuYXBwTGlzdCxhPWUuYXBwTGlzdFJlbmRlcixpPWUucHJlZml4Q2xzLG89aT09PXZvaWQgMD8iYW50LXBybyI6aSxjPWUub25JdGVtQ2xpY2ssZD1wLnVzZVJlZihudWxsKSx2PXAudXNlUmVmKG51bGwpLG09IiIuY29uY2F0KG8sIi1sYXlvdXQtYXBwcyIpLFM9UHIobSkseD1TLndyYXBTU1IsUD1TLmhhc2hJZCxOPSgwLHAudXNlU3RhdGUpKCExKSxEPSgwLEcuWikoTiwyKSxCPURbMF0sej1EWzFdLEg9ZnVuY3Rpb24oRSl7Yz09bnVsbHx8YyhFLHYpfSxGPSgwLHAudXNlTWVtbykoZnVuY3Rpb24oKXt2YXIgeT10PT1udWxsP3ZvaWQgMDp0LnNvbWUoZnVuY3Rpb24oRSl7cmV0dXJuIShFIT1udWxsJiZFLmRlc2MpfSk7cmV0dXJuIHk/KDAsdS5qc3gpKE1yLHtoYXNoSWQ6UCxhcHBMaXN0OnQsaXRlbUNsaWNrOmM/SDp2b2lkIDAsYmFzZUNsYXNzTmFtZToiIi5jb25jYXQobSwiLXNpbXBsZSIpfSk6KDAsdS5qc3gpKFNyLHtoYXNoSWQ6UCxhcHBMaXN0OnQsaXRlbUNsaWNrOmM/SDp2b2lkIDAsYmFzZUNsYXNzTmFtZToiIi5jb25jYXQobSwiLWRlZmF1bHQiKX0pfSxbdCxtLFBdKTtpZighKGUhPW51bGwmJihuPWUuYXBwTGlzdCkhPT1udWxsJiZuIT09dm9pZCAwJiZuLmxlbmd0aCkpcmV0dXJuIG51bGw7dmFyIEw9YT9hKGU9PW51bGw/dm9pZCAwOmUuYXBwTGlzdCxGKTpGLEE9KDAsUi5YKSh2b2lkIDAsZnVuY3Rpb24oeSl7cmV0dXJuIHooeSl9KTtyZXR1cm4geCgoMCx1LmpzeHMpKHUuRnJhZ21lbnQse2NoaWxkcmVuOlsoMCx1LmpzeCkoImRpdiIse3JlZjpkLG9uQ2xpY2s6ZnVuY3Rpb24oRSl7RS5zdG9wUHJvcGFnYXRpb24oKSxFLnByZXZlbnREZWZhdWx0KCl9fSksKDAsdS5qc3gpKENyLlosKDAscy5aKSgoMCxzLlopKHtwbGFjZW1lbnQ6ImJvdHRvbVJpZ2h0Iix0cmlnZ2VyOlsiY2xpY2siXSx6SW5kZXg6OTk5OSxhcnJvdzohMX0sQSkse30se292ZXJsYXlDbGFzc05hbWU6IiIuY29uY2F0KG0sIi1wb3BvdmVyICIpLmNvbmNhdChQKS50cmltKCksY29udGVudDpMLGdldFBvcHVwQ29udGFpbmVyOmZ1bmN0aW9uKCl7cmV0dXJuIGQuY3VycmVudHx8ZG9jdW1lbnQuYm9keX0sY2hpbGRyZW46KDAsdS5qc3gpKCJzcGFuIix7cmVmOnYsb25DbGljazpmdW5jdGlvbihFKXtFLnN0b3BQcm9wYWdhdGlvbigpfSxjbGFzc05hbWU6dGUoKSgiIi5jb25jYXQobSwiLWljb24iKSxQLCgwLGwuWikoe30sIiIuY29uY2F0KG0sIi1pY29uLWFjdGl2ZSIpLEIpKSxjaGlsZHJlbjooMCx1LmpzeCkoYnIse30pfSl9KSldfSkpfSxKbj1mKDY4OTk3KSxCcj1mKDc4OTU3KSxZbj1mKDUwMTM2KTtmdW5jdGlvbiBfcigpe3JldHVybigwLHUuanN4KSgic3ZnIix7d2lkdGg6IjFlbSIsaGVpZ2h0OiIxZW0iLHZpZXdCb3g6IjAgMCAxMiAxMiIsZmlsbDoiY3VycmVudENvbG9yIiwiYXJpYS1oaWRkZW4iOiJ0cnVlIixjaGlsZHJlbjooMCx1LmpzeCkoInBhdGgiLHtkOiJNNi40MzIgNy45NjdhLjQ0OC40NDggMCAwMS0uMzE4LjEzM2gtLjIyOGEuNDYuNDYgMCAwMS0uMzE4LS4xMzNMMi40ODggNC44NWEuMzA1LjMwNSAwIDAxMC0uNDNsLjQyNy0uNDNhLjI5My4yOTMgMCAwMS40MiAwTDYgNi42ODdsMi42NjUtMi42OTlhLjI5OS4yOTkgMCAwMS40MjYgMGwuNDIuNDMxYS4zMDUuMzA1IDAgMDEwIC40M0w2LjQzMiA3Ljk2N3oifSl9KX12YXIgRXI9ZnVuY3Rpb24oZSl7dmFyIG4sdCxhO3JldHVybigwLGwuWikoe30sZS5jb21wb25lbnRDbHMse3Bvc2l0aW9uOiJhYnNvbHV0ZSIsaW5zZXRCbG9ja1N0YXJ0OiIxOHB4Iix6SW5kZXg6IjEwMSIsd2lkdGg6IjI0cHgiLGhlaWdodDoiMjRweCIsZm9udFNpemU6WyIxNHB4IiwiMTZweCJdLHRleHRBbGlnbjoiY2VudGVyIixib3JkZXJSYWRpdXM6IjQwcHgiLGluc2V0SW5saW5lRW5kOiItMTNweCIsdHJhbnNpdGlvbjoidHJhbnNmb3JtIDAuM3MiLGRpc3BsYXk6ImZsZXgiLGFsaWduSXRlbXM6ImNlbnRlciIsanVzdGlmeUNvbnRlbnQ6ImNlbnRlciIsY3Vyc29yOiJwb2ludGVyIixjb2xvcjoobj1lLmxheW91dCk9PT1udWxsfHxuPT09dm9pZCAwfHwobj1uLnNpZGVyKT09PW51bGx8fG49PT12b2lkIDA/dm9pZCAwOm4uY29sb3JUZXh0Q29sbGFwc2VkQnV0dG9uLGJhY2tncm91bmRDb2xvcjoodD1lLmxheW91dCk9PT1udWxsfHx0PT09dm9pZCAwfHwodD10LnNpZGVyKT09PW51bGx8fHQ9PT12b2lkIDA/dm9pZCAwOnQuY29sb3JCZ0NvbGxhcHNlZEJ1dHRvbixib3hTaGFkb3c6IjAgMnB4IDhweCAtMnB4IHJnYmEoMCwwLDAsMC4wNSksIDAgMXB4IDRweCAtMXB4IHJnYmEoMjUsMTUsMTUsMC4wNyksIDAgMCAxcHggMCByZ2JhKDAsMCwwLDAuMDgpIiwiJjpob3ZlciI6e2NvbG9yOihhPWUubGF5b3V0KT09PW51bGx8fGE9PT12b2lkIDB8fChhPWEuc2lkZXIpPT09bnVsbHx8YT09PXZvaWQgMD92b2lkIDA6YS5jb2xvclRleHRDb2xsYXBzZWRCdXR0b25Ib3Zlcixib3hTaGFkb3c6IjAgNHB4IDE2cHggLTRweCByZ2JhKDAsMCwwLDAuMDUpLCAwIDJweCA4cHggLTJweCByZ2JhKDI1LDE1LDE1LDAuMDcpLCAwIDFweCAycHggMCByZ2JhKDAsMCwwLDAuMDgpIn0sIi5hbnRpY29uIjp7Zm9udFNpemU6IjE0cHgifSwiJiA+IHN2ZyI6e3RyYW5zaXRpb246InRyYW5zZm9ybSAgMC4zcyIsdHJhbnNmb3JtOiJyb3RhdGUoOTBkZWcpIn0sIiYtY29sbGFwc2VkIjp7IiYgPiBzdmciOnt0cmFuc2Zvcm06InJvdGF0ZSgtOTBkZWcpIn19fSl9O2Z1bmN0aW9uIGpyKHIpe3JldHVybigwLFBlLlhqKSgiU2lkZXJNZW51Q29sbGFwc2VkSWNvbiIsZnVuY3Rpb24oZSl7dmFyIG49KDAscy5aKSgoMCxzLlopKHt9LGUpLHt9LHtjb21wb25lbnRDbHM6Ii4iLmNvbmNhdChyKX0pO3JldHVybltFcihuKV19KX12YXIgd3I9WyJpc01vYmlsZSIsImNvbGxhcHNlZCJdLExyPWZ1bmN0aW9uKGUpe3ZhciBuPWUuaXNNb2JpbGUsdD1lLmNvbGxhcHNlZCxhPSgwLGxlLlopKGUsd3IpLGk9anIoZS5jbGFzc05hbWUpLG89aS53cmFwU1NSLGM9aS5oYXNoSWQ7cmV0dXJuIG4mJnQ/bnVsbDpvKCgwLHUuanN4KSgiZGl2IiwoMCxzLlopKCgwLHMuWikoe30sYSkse30se2NsYXNzTmFtZTp0ZSgpKGUuY2xhc3NOYW1lLGMsKDAsbC5aKSgoMCxsLlopKHt9LCIiLmNvbmNhdChlLmNsYXNzTmFtZSwiLWNvbGxhcHNlZCIpLHQpLCIiLmNvbmNhdChlLmNsYXNzTmFtZSwiLWlzLW1vYmlsZSIpLG4pKSxjaGlsZHJlbjooMCx1LmpzeCkoX3Ise30pfSkpKX0scG49Zig3NDkwMiksRHI9Zig0MzE0NCksTnI9ZigxNTY3MSkscW49Zig5MTMyMSk7ZnVuY3Rpb24gQXIocil7cmV0dXJuL1x3Lihwbmd8anBnfGpwZWd8c3ZnfHdlYnB8Z2lmfGJtcCkkL2kudGVzdChyKX12YXIgT3I9Zig4MzA2MiksSHI9Zig0ODA1NCksZXQ9ZigxNDE5MiksJHI9ZnVuY3Rpb24oZSxuKXt2YXIgdCxhLGk9bi5pbmNsdWRlcygiaG9yaXpvbnRhbCIpPyh0PWUubGF5b3V0KT09PW51bGx8fHQ9PT12b2lkIDA/dm9pZCAwOnQuaGVhZGVyOihhPWUubGF5b3V0KT09PW51bGx8fGE9PT12b2lkIDA/dm9pZCAwOmEuc2lkZXI7cmV0dXJuKDAscy5aKSgoMCxzLlopKCgwLGwuWikoe30sIiIuY29uY2F0KGUuY29tcG9uZW50Q2xzKSwoMCxsLlopKCgwLGwuWikoKDAsbC5aKSgoMCxsLlopKCgwLGwuWikoKDAsbC5aKSgoMCxsLlopKCgwLGwuWikoKDAsbC5aKSh7YmFja2dyb3VuZDoidHJhbnNwYXJlbnQiLGNvbG9yOmk9PW51bGw/dm9pZCAwOmkuY29sb3JUZXh0TWVudSxib3JkZXI6Im5vbmUifSwiIi5jb25jYXQoZS5jb21wb25lbnRDbHMsIi1tZW51LWl0ZW0iKSx7dHJhbnNpdGlvbjoibm9uZSAhaW1wb3J0YW50In0pLCIiLmNvbmNhdChlLmNvbXBvbmVudENscywiLXN1Ym1lbnUtaGFzLWljb24iKSwoMCxsLlopKHt9LCI+ICIuY29uY2F0KGUuYW50Q2xzLCItbWVudS1zdWIiKSx7cGFkZGluZ0lubGluZVN0YXJ0OjEwfSkpLCIiLmNvbmNhdChlLmFudENscywiLW1lbnUtdGl0bGUtY29udGVudCIpLHt3aWR0aDoiMTAwJSIsaGVpZ2h0OiIxMDAlIixkaXNwbGF5OiJpbmxpbmUtZmxleCJ9KSwiIi5jb25jYXQoZS5hbnRDbHMsIi1tZW51LXRpdGxlLWNvbnRlbnQiKSx7IiY6Zmlyc3QtY2hpbGQiOnt3aWR0aDoiMTAwJSJ9fSksIiIuY29uY2F0KGUuY29tcG9uZW50Q2xzLCItaXRlbS1pY29uIikse2Rpc3BsYXk6ImZsZXgiLGFsaWduSXRlbXM6ImNlbnRlciJ9KSwiJiYtY29sbGFwc2VkIiwoMCxsLlopKCgwLGwuWikoKDAsbC5aKSh7fSwiIi5jb25jYXQoZS5hbnRDbHMsYC1tZW51LWl0ZW0sIAorICAgICAgICBgKS5jb25jYXQoZS5hbnRDbHMsIi1tZW51LWl0ZW0tZ3JvdXAgPiAiKS5jb25jYXQoZS5hbnRDbHMsIi1tZW51LWl0ZW0tZ3JvdXAtbGlzdCA+ICIpLmNvbmNhdChlLmFudENscyxgLW1lbnUtaXRlbSwgCisgICAgICAgIGApLmNvbmNhdChlLmFudENscywiLW1lbnUtaXRlbS1ncm91cCA+ICIpLmNvbmNhdChlLmFudENscywiLW1lbnUtaXRlbS1ncm91cC1saXN0ID4gIikuY29uY2F0KGUuYW50Q2xzLCItbWVudS1zdWJtZW51ID4gIikuY29uY2F0KGUuYW50Q2xzLGAtbWVudS1zdWJtZW51LXRpdGxlLCAKKyAgICAgICAgYCkuY29uY2F0KGUuYW50Q2xzLCItbWVudS1zdWJtZW51ID4gIikuY29uY2F0KGUuYW50Q2xzLCItbWVudS1zdWJtZW51LXRpdGxlIikse3BhZGRpbmdJbmxpbmU6IjAgIWltcG9ydGFudCIsbWFyZ2luQmxvY2s6IjRweCAhaW1wb3J0YW50In0pLCIiLmNvbmNhdChlLmFudENscywiLW1lbnUtaXRlbS1ncm91cCA+ICIpLmNvbmNhdChlLmFudENscywiLW1lbnUtaXRlbS1ncm91cC1saXN0ID4gIikuY29uY2F0KGUuYW50Q2xzLCItbWVudS1zdWJtZW51LXNlbGVjdGVkID4gIikuY29uY2F0KGUuYW50Q2xzLGAtbWVudS1zdWJtZW51LXRpdGxlLCAKKyAgICAgICAgYCkuY29uY2F0KGUuYW50Q2xzLCItbWVudS1zdWJtZW51LXNlbGVjdGVkID4gIikuY29uY2F0KGUuYW50Q2xzLCItbWVudS1zdWJtZW51LXRpdGxlIikse2JhY2tncm91bmRDb2xvcjppPT1udWxsP3ZvaWQgMDppLmNvbG9yQmdNZW51SXRlbVNlbGVjdGVkLGJvcmRlclJhZGl1czplLmJvcmRlclJhZGl1c0xHfSksIiIuY29uY2F0KGUuY29tcG9uZW50Q2xzLCItZ3JvdXAiKSwoMCxsLlopKHt9LCIiLmNvbmNhdChlLmFudENscywiLW1lbnUtaXRlbS1ncm91cC10aXRsZSIpLHtwYWRkaW5nSW5saW5lOjB9KSkpLCImLWl0ZW0tdGl0bGUiLCgwLGwuWikoKDAsbC5aKSgoMCxsLlopKCgwLGwuWikoKDAsbC5aKSh7ZGlzcGxheToiZmxleCIsZmxleERpcmVjdGlvbjoicm93IixhbGlnbkl0ZW1zOiJjZW50ZXIiLGdhcDplLm1hcmdpblhTfSwiIi5jb25jYXQoZS5jb21wb25lbnRDbHMsIi1pdGVtLXRleHQiKSx7bWF4V2lkdGg6IjEwMCUiLHRleHRPdmVyZmxvdzoiZWxsaXBzaXMiLG92ZXJmbG93OiJoaWRkZW4iLHdvcmRCcmVhazoiYnJlYWstYWxsIix3aGl0ZVNwYWNlOiJub3dyYXAifSksIiYtY29sbGFwc2VkIiwoMCxsLlopKCgwLGwuWikoe21pbldpZHRoOjQwLGhlaWdodDo0MH0sIiIuY29uY2F0KGUuY29tcG9uZW50Q2xzLCItaXRlbS1pY29uIikse2hlaWdodDoiMTZweCIsd2lkdGg6IjE2cHgiLGxpbmVIZWlnaHQ6IjE2cHggIWltcG9ydGFudCIsIi5hbnRpY29uIjp7bGluZUhlaWdodDoiMTZweCAhaW1wb3J0YW50IixoZWlnaHQ6IjE2cHgifX0pLCIiLmNvbmNhdChlLmNvbXBvbmVudENscywiLWl0ZW0tdGV4dC1oYXMtaWNvbiIpLHtkaXNwbGF5OiJub25lICFpbXBvcnRhbnQifSkpLCImLWNvbGxhcHNlZC1sZXZlbC0wIix7ZmxleERpcmVjdGlvbjoiY29sdW1uIixqdXN0aWZ5Q29udGVudDoiY2VudGVyIn0pLCImIi5jb25jYXQoZS5jb21wb25lbnRDbHMsIi1ncm91cC1pdGVtLXRpdGxlIikse2dhcDplLm1hcmdpblhTLGhlaWdodDoxOCxvdmVyZmxvdzoiaGlkZGVuIn0pLCImIi5jb25jYXQoZS5jb21wb25lbnRDbHMsIi1pdGVtLWNvbGxhcHNlZC1zaG93LXRpdGxlIiksKDAsbC5aKSh7bGluZUhlaWdodDoiMTZweCIsZ2FwOjB9LCImIi5jb25jYXQoZS5jb21wb25lbnRDbHMsIi1pdGVtLXRpdGxlLWNvbGxhcHNlZCIpLCgwLGwuWikoKDAsbC5aKSh7ZGlzcGxheToiZmxleCJ9LCIiLmNvbmNhdChlLmNvbXBvbmVudENscywiLWl0ZW0taWNvbiIpLHtoZWlnaHQ6IjE2cHgiLHdpZHRoOiIxNnB4IixsaW5lSGVpZ2h0OiIxNnB4ICFpbXBvcnRhbnQiLCIuYW50aWNvbiI6e2xpbmVIZWlnaHQ6IjE2cHghaW1wb3J0YW50IixoZWlnaHQ6IjE2cHgifX0pLCIiLmNvbmNhdChlLmNvbXBvbmVudENscywiLWl0ZW0tdGV4dCIpLHtvcGFjaXR5OiIxICFpbXBvcnRhbnQiLGRpc3BsYXk6ImlubGluZSAhaW1wb3J0YW50Iix0ZXh0QWxpZ246ImNlbnRlciIsZm9udFNpemU6MTIsaGVpZ2h0OjEyLGxpbmVIZWlnaHQ6IjEycHgiLG92ZXJmbG93OiJoaWRkZW4iLHRleHRPdmVyZmxvdzoiZWxsaXBzaXMiLHdoaXRlU3BhY2U6Im5vd3JhcCIsd2lkdGg6IjEwMCUiLG1hcmdpbjowLHBhZGRpbmc6MCxtYXJnaW5CbG9ja1N0YXJ0OjR9KSkpKSwiJi1ncm91cCIsKDAsbC5aKSh7fSwiIi5jb25jYXQoZS5hbnRDbHMsIi1tZW51LWl0ZW0tZ3JvdXAtdGl0bGUiKSx7Zm9udFNpemU6MTIsY29sb3I6ZS5jb2xvclRleHRMYWJlbCwiLmFudGljb24iOnttYXJnaW5JbmxpbmVFbmQ6OH19KSksIiYtZ3JvdXAtZGl2aWRlciIse2NvbG9yOmUuY29sb3JUZXh0U2Vjb25kYXJ5LGZvbnRTaXplOjEyLGxpbmVIZWlnaHQ6MjB9KSksbi5pbmNsdWRlcygiaG9yaXpvbnRhbCIpP3t9OigwLGwuWikoe30sIiIuY29uY2F0KGUuYW50Q2xzLCItbWVudS1zdWJtZW51IikuY29uY2F0KGUuYW50Q2xzLCItbWVudS1zdWJtZW51LXBvcHVwIiksKDAsbC5aKSh7fSwiIi5jb25jYXQoZS5jb21wb25lbnRDbHMsIi1pdGVtLXRpdGxlIikse2FsaWduSXRlbXM6ImZsZXgtc3RhcnQifSkpKSx7fSwoMCxsLlopKHt9LCIiLmNvbmNhdChlLmFudENscywiLW1lbnUtc3VibWVudS1wb3B1cCIpLHtiYWNrZ3JvdW5kQ29sb3I6InJnYmEoMjU1LCAyNTUsIDI1NSwgMC40MikiLCItd2Via2l0LWJhY2tkcm9wLWZpbHRlciI6ImJsdXIoOHB4KSIsYmFja2Ryb3BGaWx0ZXI6ImJsdXIoOHB4KSJ9KSl9O2Z1bmN0aW9uIFdyKHIsZSl7cmV0dXJuKDAsUGUuWGopKCJQcm9MYXlvdXRCYXNlTWVudSIrZSxmdW5jdGlvbihuKXt2YXIgdD0oMCxzLlopKCgwLHMuWikoe30sbikse30se2NvbXBvbmVudENsczoiLiIuY29uY2F0KHIpfSk7cmV0dXJuWyRyKHQsZXx8ImlubGluZSIpXX0pfXZhciBudD1mdW5jdGlvbihlKXt2YXIgbj0oMCxwLnVzZVN0YXRlKShlLmNvbGxhcHNlZCksdD0oMCxHLlopKG4sMiksYT10WzBdLGk9dFsxXSxvPSgwLHAudXNlU3RhdGUpKCExKSxjPSgwLEcuWikobywyKSxkPWNbMF0sdj1jWzFdO3JldHVybigwLHAudXNlRWZmZWN0KShmdW5jdGlvbigpe3YoITEpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtpKGUuY29sbGFwc2VkKX0sNDAwKX0sW2UuY29sbGFwc2VkXSksZS5kaXNhYmxlP2UuY2hpbGRyZW46KDAsdS5qc3gpKE9yLlose3RpdGxlOmUudGl0bGUsb3BlbjphJiZlLmNvbGxhcHNlZD9kOiExLHBsYWNlbWVudDoicmlnaHQiLG9uT3BlbkNoYW5nZTp2LGNoaWxkcmVuOmUuY2hpbGRyZW59KX0sdHQ9KDAscW4uWikoe3NjcmlwdFVybDpldC5oLmljb25mb250VXJsfSkscnQ9ZnVuY3Rpb24oZSl7dmFyIG49YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOiJpY29uLSIsdD1hcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMDtpZih0eXBlb2YgZT09InN0cmluZyImJmUhPT0iIil7aWYoX24oZSl8fEFyKGUpKXJldHVybigwLHUuanN4KSgiaW1nIix7d2lkdGg6MTYsc3JjOmUsYWx0OiJpY29uIixjbGFzc05hbWU6dH0sZSk7aWYoZS5zdGFydHNXaXRoKG4pKXJldHVybigwLHUuanN4KSh0dCx7dHlwZTplfSl9cmV0dXJuIGV9LGF0PWZ1bmN0aW9uKGUpe2lmKGUmJnR5cGVvZiBlPT0ic3RyaW5nIil7dmFyIG49ZS5zdWJzdHJpbmcoMCwxKS50b1VwcGVyQ2FzZSgpO3JldHVybiBufXJldHVybiBudWxsfSx6cj0oMCxEci5aKShmdW5jdGlvbiByKGUpe3ZhciBuPXRoaXM7KDAsTnIuWikodGhpcyxyKSwoMCxsLlopKHRoaXMsInByb3BzIix2b2lkIDApLCgwLGwuWikodGhpcywiZ2V0TmF2TWVudUl0ZW1zIixmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dm9pZCAwP2FyZ3VtZW50c1swXTpbXSxhPWFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLGk9YXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDA7cmV0dXJuIHQubWFwKGZ1bmN0aW9uKG8pe3JldHVybiBuLmdldFN1Yk1lbnVPckl0ZW0obyxhLGkpfSkuZmlsdGVyKGZ1bmN0aW9uKG8pe3JldHVybiBvfSkuZmxhdCgxKX0pLCgwLGwuWikodGhpcywiZ2V0U3ViTWVudU9ySXRlbSIsZnVuY3Rpb24odCxhLGkpe3ZhciBvPW4ucHJvcHMsYz1vLnN1Yk1lbnVJdGVtUmVuZGVyLGQ9by5iYXNlQ2xhc3NOYW1lLHY9by5wcmVmaXhDbHMsbT1vLmNvbGxhcHNlZCxTPW8ubWVudSx4PW8uaWNvblByZWZpeGVzLFA9by5sYXlvdXQsTj0oUz09bnVsbD92b2lkIDA6Uy50eXBlKT09PSJncm91cCImJlAhPT0idG9wIixEPW4ucHJvcHMudG9rZW4sQj1uLmdldEludGxOYW1lKHQpLHo9KHQ9PW51bGw/dm9pZCAwOnQuY2hpbGRyZW4pfHwodD09bnVsbD92b2lkIDA6dC5yb3V0ZXMpLEg9TiYmYT09PTA/Imdyb3VwIjp2b2lkIDA7aWYoQXJyYXkuaXNBcnJheSh6KSYmei5sZW5ndGg+MCl7dmFyIEYsTCxBLHksRSxWPWE9PT0wfHxOJiZhPT09MSxPPXJ0KHQuaWNvbix4LCIiLmNvbmNhdChkLCItaWNvbiAiKS5jb25jYXQoKEY9bi5wcm9wcyk9PT1udWxsfHxGPT09dm9pZCAwP3ZvaWQgMDpGLmhhc2hJZCkpLHc9bSYmVj9hdChCKTpudWxsLHJlPSgwLHUuanN4cykoImRpdiIse2NsYXNzTmFtZTp0ZSgpKCIiLmNvbmNhdChkLCItaXRlbS10aXRsZSIpLChMPW4ucHJvcHMpPT09bnVsbHx8TD09PXZvaWQgMD92b2lkIDA6TC5oYXNoSWQsKDAsbC5aKSgoMCxsLlopKCgwLGwuWikoKDAsbC5aKSh7fSwiIi5jb25jYXQoZCwiLWl0ZW0tdGl0bGUtY29sbGFwc2VkIiksbSksIiIuY29uY2F0KGQsIi1pdGVtLXRpdGxlLWNvbGxhcHNlZC1sZXZlbC0iKS5jb25jYXQoaSksbSksIiIuY29uY2F0KGQsIi1ncm91cC1pdGVtLXRpdGxlIiksSD09PSJncm91cCIpLCIiLmNvbmNhdChkLCItaXRlbS1jb2xsYXBzZWQtc2hvdy10aXRsZSIpLChTPT1udWxsP3ZvaWQgMDpTLmNvbGxhcHNlZFNob3dUaXRsZSkmJm0pKSxjaGlsZHJlbjpbSD09PSJncm91cCImJm0/bnVsbDpWJiZPPygwLHUuanN4KSgic3BhbiIse2NsYXNzTmFtZToiIi5jb25jYXQoZCwiLWl0ZW0taWNvbiAiKS5jb25jYXQoKEE9bi5wcm9wcyk9PT1udWxsfHxBPT09dm9pZCAwP3ZvaWQgMDpBLmhhc2hJZCkudHJpbSgpLGNoaWxkcmVuOk99KTp3LCgwLHUuanN4KSgic3BhbiIse2NsYXNzTmFtZTp0ZSgpKCIiLmNvbmNhdChkLCItaXRlbS10ZXh0IiksKHk9bi5wcm9wcyk9PT1udWxsfHx5PT09dm9pZCAwP3ZvaWQgMDp5Lmhhc2hJZCwoMCxsLlopKHt9LCIiLmNvbmNhdChkLCItaXRlbS10ZXh0LWhhcy1pY29uIiksSCE9PSJncm91cCImJlYmJihPfHx3KSkpLGNoaWxkcmVuOkJ9KV19KSxzZT1jP2MoKDAscy5aKSgoMCxzLlopKHt9LHQpLHt9LHtpc1VybDohMX0pLHJlLG4ucHJvcHMpOnJlO2lmKE4mJmE9PT0wJiZuLnByb3BzLmNvbGxhcHNlZCYmIVMuY29sbGFwc2VkU2hvd0dyb3VwVGl0bGUpcmV0dXJuIG4uZ2V0TmF2TWVudUl0ZW1zKHosYSsxLGEpO3ZhciBnPW4uZ2V0TmF2TWVudUl0ZW1zKHosYSsxLE4mJmE9PT0wJiZuLnByb3BzLmNvbGxhcHNlZD9hOmErMSk7cmV0dXJuW3t0eXBlOkgsa2V5OnQua2V5fHx0LnBhdGgsbGFiZWw6c2Usb25DbGljazpOP3ZvaWQgMDp0Lm9uVGl0bGVDbGljayxjaGlsZHJlbjpnLGNsYXNzTmFtZTp0ZSgpKCgwLGwuWikoKDAsbC5aKSgoMCxsLlopKHt9LCIiLmNvbmNhdChkLCItZ3JvdXAiKSxIPT09Imdyb3VwIiksIiIuY29uY2F0KGQsIi1zdWJtZW51IiksSCE9PSJncm91cCIpLCIiLmNvbmNhdChkLCItc3VibWVudS1oYXMtaWNvbiIpLEghPT0iZ3JvdXAiJiZWJiZPKSl9LE4mJmE9PT0wP3t0eXBlOiJkaXZpZGVyIixwcmVmaXhDbHM6dixjbGFzc05hbWU6IiIuY29uY2F0KGQsIi1kaXZpZGVyIiksa2V5Oih0LmtleXx8dC5wYXRoKSsiLWdyb3VwLWRpdmlkZXIiLHN0eWxlOntwYWRkaW5nOjAsYm9yZGVyQmxvY2tFbmQ6MCxtYXJnaW46bi5wcm9wcy5jb2xsYXBzZWQ/IjRweCI6IjZweCAxNnB4IixtYXJnaW5CbG9ja1N0YXJ0Om4ucHJvcHMuY29sbGFwc2VkPzQ6OCxib3JkZXJDb2xvcjpEPT1udWxsfHwoRT1ELmxheW91dCk9PT1udWxsfHxFPT09dm9pZCAwfHwoRT1FLnNpZGVyKT09PW51bGx8fEU9PT12b2lkIDA/dm9pZCAwOkUuY29sb3JNZW51SXRlbURpdmlkZXJ9fTp2b2lkIDBdLmZpbHRlcihCb29sZWFuKX1yZXR1cm57Y2xhc3NOYW1lOiIiLmNvbmNhdChkLCItbWVudS1pdGVtIiksZGlzYWJsZWQ6dC5kaXNhYmxlZCxrZXk6dC5rZXl8fHQucGF0aCxvbkNsaWNrOnQub25UaXRsZUNsaWNrLGxhYmVsOm4uZ2V0TWVudUl0ZW1QYXRoKHQsYSxpKX19KSwoMCxsLlopKHRoaXMsImdldEludGxOYW1lIixmdW5jdGlvbih0KXt2YXIgYT10Lm5hbWUsaT10LmxvY2FsZSxvPW4ucHJvcHMsYz1vLm1lbnUsZD1vLmZvcm1hdE1lc3NhZ2Usdj1hO3JldHVybiBpJiYoYz09bnVsbD92b2lkIDA6Yy5sb2NhbGUpIT09ITEmJih2PWQ9PW51bGw/dm9pZCAwOmQoe2lkOmksZGVmYXVsdE1lc3NhZ2U6YX0pKSxuLnByb3BzLm1lbnVUZXh0UmVuZGVyP24ucHJvcHMubWVudVRleHRSZW5kZXIodCx2LG4ucHJvcHMpOnZ9KSwoMCxsLlopKHRoaXMsImdldE1lbnVJdGVtUGF0aCIsZnVuY3Rpb24odCxhLGkpe3ZhciBvLGMsZCx2LG09bi5jb252ZXJzaW9uUGF0aCh0LnBhdGh8fCIvIiksUz1uLnByb3BzLHg9Uy5sb2NhdGlvbixQPXg9PT12b2lkIDA/e3BhdGhuYW1lOiIvIn06eCxOPVMuaXNNb2JpbGUsRD1TLm9uQ29sbGFwc2UsQj1TLm1lbnVJdGVtUmVuZGVyLHo9Uy5pY29uUHJlZml4ZXMsSD1uLmdldEludGxOYW1lKHQpLEY9bi5wcm9wcyxMPUYuYmFzZUNsYXNzTmFtZSxBPUYubWVudSx5PUYuY29sbGFwc2VkLEU9KEE9PW51bGw/dm9pZCAwOkEudHlwZSk9PT0iZ3JvdXAiLFY9YT09PTB8fEUmJmE9PT0xLE89Vj9ydCh0Lmljb24seiwiIi5jb25jYXQoTCwiLWljb24gIikuY29uY2F0KChvPW4ucHJvcHMpPT09bnVsbHx8bz09PXZvaWQgMD92b2lkIDA6by5oYXNoSWQpKTpudWxsLHc9eSYmVj9hdChIKTpudWxsLHJlPSgwLHUuanN4cykoImRpdiIse2NsYXNzTmFtZTp0ZSgpKCIiLmNvbmNhdChMLCItaXRlbS10aXRsZSIpLChjPW4ucHJvcHMpPT09bnVsbHx8Yz09PXZvaWQgMD92b2lkIDA6Yy5oYXNoSWQsKDAsbC5aKSgoMCxsLlopKCgwLGwuWikoe30sIiIuY29uY2F0KEwsIi1pdGVtLXRpdGxlLWNvbGxhcHNlZCIpLHkpLCIiLmNvbmNhdChMLCItaXRlbS10aXRsZS1jb2xsYXBzZWQtbGV2ZWwtIikuY29uY2F0KGkpLHkpLCIiLmNvbmNhdChMLCItaXRlbS1jb2xsYXBzZWQtc2hvdy10aXRsZSIpLChBPT1udWxsP3ZvaWQgMDpBLmNvbGxhcHNlZFNob3dUaXRsZSkmJnkpKSxjaGlsZHJlbjpbKDAsdS5qc3gpKCJzcGFuIix7Y2xhc3NOYW1lOiIiLmNvbmNhdChMLCItaXRlbS1pY29uICIpLmNvbmNhdCgoZD1uLnByb3BzKT09PW51bGx8fGQ9PT12b2lkIDA/dm9pZCAwOmQuaGFzaElkKS50cmltKCksc3R5bGU6e2Rpc3BsYXk6dz09PW51bGwmJiFPPyJub25lIjoiIn0sY2hpbGRyZW46T3x8KDAsdS5qc3gpKCJzcGFuIix7Y2xhc3NOYW1lOiJhbnRpY29uIixjaGlsZHJlbjp3fSl9KSwoMCx1LmpzeCkoInNwYW4iLHtjbGFzc05hbWU6dGUoKSgiIi5jb25jYXQoTCwiLWl0ZW0tdGV4dCIpLCh2PW4ucHJvcHMpPT09bnVsbHx8dj09PXZvaWQgMD92b2lkIDA6di5oYXNoSWQsKDAsbC5aKSh7fSwiIi5jb25jYXQoTCwiLWl0ZW0tdGV4dC1oYXMtaWNvbiIpLFYmJihPfHx3KSkpLGNoaWxkcmVuOkh9KV19LG0pLHNlPV9uKG0pO2lmKHNlKXt2YXIgZyxtZSxUO3JlPSgwLHUuanN4cykoInNwYW4iLHtvbkNsaWNrOmZ1bmN0aW9uKCl7dmFyIENlLGllOyhDZT13aW5kb3cpPT09bnVsbHx8Q2U9PT12b2lkIDB8fChpZT1DZS5vcGVuKT09PW51bGx8fGllPT09dm9pZCAwfHxpZS5jYWxsKENlLG0sIl9ibGFuayIpfSxjbGFzc05hbWU6dGUoKSgiIi5jb25jYXQoTCwiLWl0ZW0tdGl0bGUiKSwoZz1uLnByb3BzKT09PW51bGx8fGc9PT12b2lkIDA/dm9pZCAwOmcuaGFzaElkLCgwLGwuWikoKDAsbC5aKSgoMCxsLlopKCgwLGwuWikoe30sIiIuY29uY2F0KEwsIi1pdGVtLXRpdGxlLWNvbGxhcHNlZCIpLHkpLCIiLmNvbmNhdChMLCItaXRlbS10aXRsZS1jb2xsYXBzZWQtbGV2ZWwtIikuY29uY2F0KGkpLHkpLCIiLmNvbmNhdChMLCItaXRlbS1saW5rIiksITApLCIiLmNvbmNhdChMLCItaXRlbS1jb2xsYXBzZWQtc2hvdy10aXRsZSIpLChBPT1udWxsP3ZvaWQgMDpBLmNvbGxhcHNlZFNob3dUaXRsZSkmJnkpKSxjaGlsZHJlbjpbKDAsdS5qc3gpKCJzcGFuIix7Y2xhc3NOYW1lOiIiLmNvbmNhdChMLCItaXRlbS1pY29uICIpLmNvbmNhdCgobWU9bi5wcm9wcyk9PT1udWxsfHxtZT09PXZvaWQgMD92b2lkIDA6bWUuaGFzaElkKS50cmltKCksc3R5bGU6e2Rpc3BsYXk6dz09PW51bGwmJiFPPyJub25lIjoiIn0sY2hpbGRyZW46T3x8KDAsdS5qc3gpKCJzcGFuIix7Y2xhc3NOYW1lOiJhbnRpY29uIixjaGlsZHJlbjp3fSl9KSwoMCx1LmpzeCkoInNwYW4iLHtjbGFzc05hbWU6dGUoKSgiIi5jb25jYXQoTCwiLWl0ZW0tdGV4dCIpLChUPW4ucHJvcHMpPT09bnVsbHx8VD09PXZvaWQgMD92b2lkIDA6VC5oYXNoSWQsKDAsbC5aKSh7fSwiIi5jb25jYXQoTCwiLWl0ZW0tdGV4dC1oYXMtaWNvbiIpLFYmJihPfHx3KSkpLGNoaWxkcmVuOkh9KV19LG0pfWlmKEIpe3ZhciBrPSgwLHMuWikoKDAscy5aKSh7fSx0KSx7fSx7aXNVcmw6c2UsaXRlbVBhdGg6bSxpc01vYmlsZTpOLHJlcGxhY2U6bT09PVAucGF0aG5hbWUsb25DbGljazpmdW5jdGlvbigpe3JldHVybiBEJiZEKCEwKX0sY2hpbGRyZW46dm9pZCAwfSk7cmV0dXJuIGE9PT0wPygwLHUuanN4KShudCx7Y29sbGFwc2VkOnksdGl0bGU6SCxkaXNhYmxlOnQuZGlzYWJsZWRUb29sdGlwLGNoaWxkcmVuOkIoayxyZSxuLnByb3BzKX0pOkIoayxyZSxuLnByb3BzKX1yZXR1cm4gYT09PTA/KDAsdS5qc3gpKG50LHtjb2xsYXBzZWQ6eSx0aXRsZTpILGRpc2FibGU6dC5kaXNhYmxlZFRvb2x0aXAsY2hpbGRyZW46cmV9KTpyZX0pLCgwLGwuWikodGhpcywiY29udmVyc2lvblBhdGgiLGZ1bmN0aW9uKHQpe3JldHVybiB0JiZ0LmluZGV4T2YoImh0dHAiKT09PTA/dDoiLyIuY29uY2F0KHR8fCIiKS5yZXBsYWNlKC9cLysvZywiLyIpfSksdGhpcy5wcm9wcz1lfSksRnI9ZnVuY3Rpb24oZSxuKXt2YXIgdD1uLmxheW91dCxhPW4uY29sbGFwc2VkLGk9e307cmV0dXJuIGUmJiFhJiZbInNpZGUiLCJtaXgiXS5pbmNsdWRlcyh0fHwibWl4IikmJihpPXtvcGVuS2V5czplfSksaX0sb3Q9ZnVuY3Rpb24oZSl7dmFyIG49ZS5tb2RlLHQ9ZS5jbGFzc05hbWUsYT1lLmhhbmRsZU9wZW5DaGFuZ2UsaT1lLnN0eWxlLG89ZS5tZW51RGF0YSxjPWUucHJlZml4Q2xzLGQ9ZS5tZW51LHY9ZS5tYXRjaE1lbnVLZXlzLG09ZS5pY29uZm9udFVybCxTPWUuc2VsZWN0ZWRLZXlzLHg9ZS5vblNlbGVjdCxQPWUubWVudVJlbmRlclR5cGUsTj1lLm9wZW5LZXlzLEQ9KDAscC51c2VDb250ZXh0KShxLkxfKSxCPUQuZGFyayx6PUQudG9rZW4sSD0iIi5jb25jYXQoYywiLWJhc2UtbWVudS0iKS5jb25jYXQobiksRj0oMCxwLnVzZVJlZikoW10pLEw9KDAsUS5aKShkPT1udWxsP3ZvaWQgMDpkLmRlZmF1bHRPcGVuQWxsKSxBPSgwLEcuWikoTCwyKSx5PUFbMF0sRT1BWzFdLFY9KDAsUS5aKShmdW5jdGlvbigpe3JldHVybiBkIT1udWxsJiZkLmRlZmF1bHRPcGVuQWxsPygwLGxuLk83KShvKXx8W106Tj09PSExPyExOltdfSx7dmFsdWU6Tj09PSExP3ZvaWQgMDpOLG9uQ2hhbmdlOmF9KSxPPSgwLEcuWikoViwyKSx3PU9bMF0scmU9T1sxXSxzZT0oMCxRLlopKFtdLHt2YWx1ZTpTLG9uQ2hhbmdlOng/ZnVuY3Rpb24oU2Upe3gmJlNlJiZ4KFNlKX06dm9pZCAwfSksZz0oMCxHLlopKHNlLDIpLG1lPWdbMF0sVD1nWzFdOygwLHAudXNlRWZmZWN0KShmdW5jdGlvbigpe2QhPW51bGwmJmQuZGVmYXVsdE9wZW5BbGx8fE49PT0hMXx8diYmKHJlKHYpLFQodikpfSxbdi5qb2luKCItIildKSwoMCxwLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXttJiYodHQ9KDAscW4uWikoe3NjcmlwdFVybDptfSkpfSxbbV0pLCgwLHAudXNlRWZmZWN0KShmdW5jdGlvbigpe2lmKHYuam9pbigiLSIpIT09KG1lfHxbXSkuam9pbigiLSIpJiZUKHYpLCF5JiZOIT09ITEmJnYuam9pbigiLSIpIT09KHd8fFtdKS5qb2luKCItIikpe3ZhciBTZT12OyhkPT1udWxsP3ZvaWQgMDpkLmF1dG9DbG9zZSk9PT0hMSYmKFNlPUFycmF5LmZyb20obmV3IFNldChbXS5jb25jYXQoKDAscG4uWikodiksKDAscG4uWikod3x8W10pKSkpKSxyZShTZSl9ZWxzZSBkIT1udWxsJiZkLmlnbm9yZUZsYXRNZW51JiZ5P3JlKCgwLGxuLk83KShvKSk6RSghMSl9LFt2LmpvaW4oIi0iKV0pO3ZhciBrPSgwLHAudXNlTWVtbykoZnVuY3Rpb24oKXtyZXR1cm4gRnIodyxlKX0sW3cmJncuam9pbigiLCIpLGUubGF5b3V0LGUuY29sbGFwc2VkXSksb2U9V3IoSCxuKSxDZT1vZS53cmFwU1NSLGllPW9lLmhhc2hJZCxNZT0oMCxwLnVzZU1lbW8pKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB6cigoMCxzLlopKCgwLHMuWikoe30sZSkse30se3Rva2VuOnosbWVudVJlbmRlclR5cGU6UCxiYXNlQ2xhc3NOYW1lOkgsaGFzaElkOmllfSkpfSxbZSx6LFAsSCxpZV0pO2lmKGQhPW51bGwmJmQubG9hZGluZylyZXR1cm4oMCx1LmpzeCkoImRpdiIse3N0eWxlOm4hPW51bGwmJm4uaW5jbHVkZXMoImlubGluZSIpP3twYWRkaW5nOjI0fTp7bWFyZ2luQmxvY2tTdGFydDoxNn0sY2hpbGRyZW46KDAsdS5qc3gpKEhyLlose2FjdGl2ZTohMCx0aXRsZTohMSxwYXJhZ3JhcGg6e3Jvd3M6biE9bnVsbCYmbi5pbmNsdWRlcygiaW5saW5lIik/NjoxfX0pfSk7ZS5vcGVuS2V5cz09PSExJiYhZS5oYW5kbGVPcGVuQ2hhbmdlJiYoRi5jdXJyZW50PXYpO3ZhciBiZT1lLnBvc3RNZW51RGF0YT9lLnBvc3RNZW51RGF0YShvKTpvO3JldHVybiBiZSYmKGJlPT1udWxsP3ZvaWQgMDpiZS5sZW5ndGgpPDE/bnVsbDpDZSgoMCxwLmNyZWF0ZUVsZW1lbnQpKFluLlosKDAscy5aKSgoMCxzLlopKHt9LGspLHt9LHtfaW50ZXJuYWxEaXNhYmxlTWVudUl0ZW1UaXRsZVRvb2x0aXA6ITAsa2V5OiJNZW51Iixtb2RlOm4saW5saW5lSW5kZW50OjE2LGRlZmF1bHRPcGVuS2V5czpGLmN1cnJlbnQsdGhlbWU6Qj8iZGFyayI6ImxpZ2h0IixzZWxlY3RlZEtleXM6bWUsc3R5bGU6KDAscy5aKSh7YmFja2dyb3VuZENvbG9yOiJ0cmFuc3BhcmVudCIsYm9yZGVyOiJub25lIn0saSksY2xhc3NOYW1lOnRlKCkodCxpZSxILCgwLGwuWikoKDAsbC5aKSh7fSwiIi5jb25jYXQoSCwiLWhvcml6b250YWwiKSxuPT09Imhvcml6b250YWwiKSwiIi5jb25jYXQoSCwiLWNvbGxhcHNlZCIpLGUuY29sbGFwc2VkKSksaXRlbXM6TWUuZ2V0TmF2TWVudUl0ZW1zKGJlLDAsMCksb25PcGVuQ2hhbmdlOmZ1bmN0aW9uKE5lKXtlLmNvbGxhcHNlZHx8cmUoTmUpfX0sZS5tZW51UHJvcHMpKSl9O2Z1bmN0aW9uIEtyKHIsZSl7dmFyIG49ZS5zdHlsaXNoLHQ9ZS5wcm9MYXlvdXRDb2xsYXBzZWRXaWR0aDtyZXR1cm4oMCxQZS5YaikoIlByb0xheW91dFNpZGVyTWVudVN0eWxpc2giLGZ1bmN0aW9uKGEpe3ZhciBpPSgwLHMuWikoKDAscy5aKSh7fSxhKSx7fSx7Y29tcG9uZW50Q2xzOiIuIi5jb25jYXQocikscHJvTGF5b3V0Q29sbGFwc2VkV2lkdGg6dH0pO3JldHVybiBuP1soMCxsLlopKHt9LCJkaXYiLmNvbmNhdChhLnByb0NvbXBvbmVudHNDbHMsIi1sYXlvdXQiKSwoMCxsLlopKHt9LCIiLmNvbmNhdChpLmNvbXBvbmVudENscyksbj09bnVsbD92b2lkIDA6bihpKSkpXTpbXX0pfXZhciBVcj1bInRpdGxlIiwicmVuZGVyIl0sR3I9cC5tZW1vKGZ1bmN0aW9uKHIpe3JldHVybigwLHUuanN4KSh1LkZyYWdtZW50LHtjaGlsZHJlbjpyLmNoaWxkcmVufSl9KSxYcj1WZS5aLlNpZGVyLGl0PVZlLlouX0ludGVybmFsU2lkZXJDb250ZXh0LFZyPWl0PT09dm9pZCAwP3tQcm92aWRlcjpHcn06aXQsd249ZnVuY3Rpb24oZSl7dmFyIG49YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOiJtZW51SGVhZGVyUmVuZGVyIix0PWUubG9nbyxhPWUudGl0bGUsaT1lLmxheW91dCxvPWVbbl07aWYobz09PSExKXJldHVybiBudWxsO3ZhciBjPUVuKHQpLGQ9KDAsdS5qc3gpKCJoMSIse2NoaWxkcmVuOmEhPW51bGw/YToiQW50IERlc2lnbiBQcm8ifSk7cmV0dXJuIG8/byhjLGUuY29sbGFwc2VkP251bGw6ZCxlKTplLmlzTW9iaWxlP251bGw6aT09PSJtaXgiJiZuPT09Im1lbnVIZWFkZXJSZW5kZXIiPyExOmUuY29sbGFwc2VkPygwLHUuanN4KSgiYSIse2NoaWxkcmVuOmN9LCJ0aXRsZSIpOigwLHUuanN4cykoImEiLHtjaGlsZHJlbjpbYyxkXX0sInRpdGxlIil9LGx0PWZ1bmN0aW9uKGUpe3ZhciBuLHQ9ZS5jb2xsYXBzZWQsYT1lLm9yaWdpbkNvbGxhcHNlZCxpPWUuZml4U2lkZXJiYXIsbz1lLm1lbnVGb290ZXJSZW5kZXIsYz1lLm9uQ29sbGFwc2UsZD1lLnRoZW1lLHY9ZS5zaWRlcldpZHRoLG09ZS5pc01vYmlsZSxTPWUub25NZW51SGVhZGVyQ2xpY2sseD1lLmJyZWFrcG9pbnQsUD14PT09dm9pZCAwPyJsZyI6eCxOPWUuc3R5bGUsRD1lLmxheW91dCxCPWUubWVudUV4dHJhUmVuZGVyLHo9Qj09PXZvaWQgMD8hMTpCLEg9ZS5saW5rcyxGPWUubWVudUNvbnRlbnRSZW5kZXIsTD1lLmNvbGxhcHNlZEJ1dHRvblJlbmRlcixBPWUucHJlZml4Q2xzLHk9ZS5hdmF0YXJQcm9wcyxFPWUucmlnaHRDb250ZW50UmVuZGVyLFY9ZS5hY3Rpb25zUmVuZGVyLE89ZS5vbk9wZW5DaGFuZ2Usdz1lLnN0eWxpc2gscmU9ZS5sb2dvU3R5bGUsc2U9KDAscC51c2VDb250ZXh0KShxLkxfKSxnPXNlLmhhc2hJZCxtZT0oMCxwLnVzZU1lbW8pKGZ1bmN0aW9uKCl7cmV0dXJuIShtfHxEPT09Im1peCIpfSxbbSxEXSksVD0iIi5jb25jYXQoQSwiLXNpZGVyIiksaz02NCxvZT1LcigiIi5jb25jYXQoVCwiLiIpLmNvbmNhdChULCItc3R5bGlzaCIpLHtzdHlsaXNoOncscHJvTGF5b3V0Q29sbGFwc2VkV2lkdGg6a30pLENlPXRlKCkoIiIuY29uY2F0KFQpLGcsKDAsbC5aKSgoMCxsLlopKCgwLGwuWikoKDAsbC5aKSgoMCxsLlopKCgwLGwuWikoKDAsbC5aKSh7fSwiIi5jb25jYXQoVCwiLWZpeGVkIiksaSksIiIuY29uY2F0KFQsIi1maXhlZC1taXgiKSxEPT09Im1peCImJiFtJiZpKSwiIi5jb25jYXQoVCwiLWNvbGxhcHNlZCIpLGUuY29sbGFwc2VkKSwiIi5jb25jYXQoVCwiLWxheW91dC0iKS5jb25jYXQoRCksRCYmIW0pLCIiLmNvbmNhdChULCItbGlnaHQiKSxkIT09ImRhcmsiKSwiIi5jb25jYXQoVCwiLW1peCIpLEQ9PT0ibWl4IiYmIW0pLCIiLmNvbmNhdChULCItc3R5bGlzaCIpLCEhdykpLGllPXduKGUpLE1lPXomJnooZSksYmU9KDAscC51c2VNZW1vKShmdW5jdGlvbigpe3JldHVybiBGIT09ITEmJigwLHAuY3JlYXRlRWxlbWVudCkob3QsKDAscy5aKSgoMCxzLlopKHt9LGUpLHt9LHtrZXk6ImJhc2UtbWVudSIsbW9kZTp0JiYhbT8idmVydGljYWwiOiJpbmxpbmUiLGhhbmRsZU9wZW5DaGFuZ2U6TyxzdHlsZTp7d2lkdGg6IjEwMCUifSxjbGFzc05hbWU6IiIuY29uY2F0KFQsIi1tZW51ICIpLmNvbmNhdChnKS50cmltKCl9KSl9LFtULGcsRixPLGVdKSxTZT0oSHx8W10pLm1hcChmdW5jdGlvbihJZSxPZSl7cmV0dXJue2NsYXNzTmFtZToiIi5jb25jYXQoVCwiLWxpbmsiKSxsYWJlbDpJZSxrZXk6T2V9fSksTmU9KDAscC51c2VNZW1vKShmdW5jdGlvbigpe3JldHVybiBGP0YoZSxiZSk6YmV9LFtGLGJlLGVdKSxCZT0oMCxwLnVzZU1lbW8pKGZ1bmN0aW9uKCl7aWYoIXkpcmV0dXJuIG51bGw7dmFyIEllPXkudGl0bGUsT2U9eS5yZW5kZXIsQWU9KDAsbGUuWikoeSxVciksQ249KDAsdS5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdChULCItYWN0aW9ucy1hdmF0YXIiKSxjaGlsZHJlbjpbQWUhPW51bGwmJkFlLnNyY3x8QWUhPW51bGwmJkFlLnNyY1NldHx8QWUuaWNvbnx8QWUuY2hpbGRyZW4/KDAsdS5qc3gpKEpuLlosKDAscy5aKSh7c2l6ZToyOH0sQWUpKTpudWxsLHkudGl0bGUmJiF0JiYoMCx1LmpzeCkoInNwYW4iLHtjaGlsZHJlbjpJZX0pXX0pO3JldHVybiBPZT9PZSh5LENuLGUpOkNufSxbeSxULHRdKSxMZT0oMCxwLnVzZU1lbW8pKGZ1bmN0aW9uKCl7cmV0dXJuIFY/KDAsdS5qc3gpKEJyLlose2FsaWduOiJjZW50ZXIiLHNpemU6NCxkaXJlY3Rpb246dD8idmVydGljYWwiOiJob3Jpem9udGFsIixjbGFzc05hbWU6dGUoKShbIiIuY29uY2F0KFQsIi1hY3Rpb25zLWxpc3QiKSx0JiYiIi5jb25jYXQoVCwiLWFjdGlvbnMtbGlzdC1jb2xsYXBzZWQiKSxnXSksY2hpbGRyZW46W1Y9PW51bGw/dm9pZCAwOlYoZSldLmZsYXQoMSkubWFwKGZ1bmN0aW9uKEllLE9lKXtyZXR1cm4oMCx1LmpzeCkoImRpdiIse2NsYXNzTmFtZToiIi5jb25jYXQoVCwiLWFjdGlvbnMtbGlzdC1pdGVtICIpLmNvbmNhdChnKS50cmltKCksY2hpbGRyZW46SWV9LE9lKX0pfSk6bnVsbH0sW1YsVCx0XSksJGU9KDAscC51c2VNZW1vKShmdW5jdGlvbigpe3JldHVybigwLHUuanN4KShqbix7b25JdGVtQ2xpY2s6ZS5pdGVtQ2xpY2ssYXBwTGlzdFJlbmRlcjplLmFwcExpc3RSZW5kZXIsYXBwTGlzdDplLmFwcExpc3QscHJlZml4Q2xzOmUucHJlZml4Q2xzfSl9LFtlLmFwcExpc3QsZS5hcHBMaXN0UmVuZGVyLGUucHJlZml4Q2xzXSksRmU9KDAscC51c2VNZW1vKShmdW5jdGlvbigpe2lmKEw9PT0hMSlyZXR1cm4gbnVsbDt2YXIgSWU9KDAsdS5qc3gpKExyLHtpc01vYmlsZTptLGNvbGxhcHNlZDphLGNsYXNzTmFtZToiIi5jb25jYXQoVCwiLWNvbGxhcHNlZC1idXR0b24iKSxvbkNsaWNrOmZ1bmN0aW9uKCl7Yz09bnVsbHx8YyghYSl9fSk7cmV0dXJuIEw/TCh0LEllKTpJZX0sW0wsbSxhLFQsdCxjXSksS2U9KDAscC51c2VNZW1vKShmdW5jdGlvbigpe3JldHVybiFCZSYmIUxlP251bGw6KDAsdS5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOnRlKCkoIiIuY29uY2F0KFQsIi1hY3Rpb25zIiksZyx0JiYiIi5jb25jYXQoVCwiLWFjdGlvbnMtY29sbGFwc2VkIikpLGNoaWxkcmVuOltCZSxMZV19KX0sW0xlLEJlLFQsdCxnXSksVWU9KDAscC51c2VNZW1vKShmdW5jdGlvbigpe3ZhciBJZTtyZXR1cm4gZSE9bnVsbCYmKEllPWUubWVudSkhPT1udWxsJiZJZSE9PXZvaWQgMCYmSWUuaGlkZU1lbnVXaGVuQ29sbGFwc2VkJiZ0PyIiLmNvbmNhdChULCItaGlkZS1tZW51LWNvbGxhcHNlZCIpOm51bGx9LFtULHQsZT09bnVsbHx8KG49ZS5tZW51KT09PW51bGx8fG49PT12b2lkIDA/dm9pZCAwOm4uaGlkZU1lbnVXaGVuQ29sbGFwc2VkXSksdW49byYmKG89PW51bGw/dm9pZCAwOm8oZSkpLHhuPSgwLHUuanN4cykodS5GcmFnbWVudCx7Y2hpbGRyZW46W2llJiYoMCx1LmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6dGUoKShbdGUoKSgiIi5jb25jYXQoVCwiLWxvZ28iKSxnLCgwLGwuWikoe30sIiIuY29uY2F0KFQsIi1sb2dvLWNvbGxhcHNlZCIpLHQpKV0pLG9uQ2xpY2s6bWU/Uzp2b2lkIDAsaWQ6ImxvZ28iLHN0eWxlOnJlLGNoaWxkcmVuOltpZSwkZV19KSxNZSYmKDAsdS5qc3gpKCJkaXYiLHtjbGFzc05hbWU6dGUoKShbIiIuY29uY2F0KFQsIi1leHRyYSIpLCFpZSYmIiIuY29uY2F0KFQsIi1leHRyYS1uby1sb2dvIiksZ10pLGNoaWxkcmVuOk1lfSksKDAsdS5qc3gpKCJkaXYiLHtzdHlsZTp7ZmxleDoxLG92ZXJmbG93WToiYXV0byIsb3ZlcmZsb3dYOiJoaWRkZW4ifSxjaGlsZHJlbjpOZX0pLCgwLHUuanN4cykoVnIuUHJvdmlkZXIse3ZhbHVlOnt9LGNoaWxkcmVuOltIPygwLHUuanN4KSgiZGl2Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdChULCItbGlua3MgIikuY29uY2F0KGcpLnRyaW0oKSxjaGlsZHJlbjooMCx1LmpzeCkoWW4uWix7aW5saW5lSW5kZW50OjE2LGNsYXNzTmFtZToiIi5jb25jYXQoVCwiLWxpbmstbWVudSAiKS5jb25jYXQoZykudHJpbSgpLHNlbGVjdGVkS2V5czpbXSxvcGVuS2V5czpbXSx0aGVtZTpkLG1vZGU6ImlubGluZSIsaXRlbXM6U2V9KX0pOm51bGwsbWUmJigwLHUuanN4cykodS5GcmFnbWVudCx7Y2hpbGRyZW46W0tlLCFMZSYmRT8oMCx1LmpzeCkoImRpdiIse2NsYXNzTmFtZTp0ZSgpKCIiLmNvbmNhdChULCItYWN0aW9ucyIpLGcsKDAsbC5aKSh7fSwiIi5jb25jYXQoVCwiLWFjdGlvbnMtY29sbGFwc2VkIiksdCkpLGNoaWxkcmVuOkU9PW51bGw/dm9pZCAwOkUoZSl9KTpudWxsXX0pLHVuJiYoMCx1LmpzeCkoImRpdiIse2NsYXNzTmFtZTp0ZSgpKFsiIi5jb25jYXQoVCwiLWZvb3RlciIpLGcsKDAsbC5aKSh7fSwiIi5jb25jYXQoVCwiLWZvb3Rlci1jb2xsYXBzZWQiKSx0KV0pLGNoaWxkcmVuOnVufSldfSldfSk7cmV0dXJuIG9lLndyYXBTU1IoKDAsdS5qc3hzKSh1LkZyYWdtZW50LHtjaGlsZHJlbjpbaSYmIW0mJiFVZSYmKDAsdS5qc3gpKCJkaXYiLHtzdHlsZTooMCxzLlopKHt3aWR0aDp0P2s6dixvdmVyZmxvdzoiaGlkZGVuIixmbGV4OiIwIDAgIi5jb25jYXQodD9rOnYsInB4IiksbWF4V2lkdGg6dD9rOnYsbWluV2lkdGg6dD9rOnYsdHJhbnNpdGlvbjoiYWxsIDAuMnMgZWFzZSAwcyJ9LE4pfSksKDAsdS5qc3hzKShYcix7Y29sbGFwc2libGU6ITAsdHJpZ2dlcjpudWxsLGNvbGxhcHNlZDp0LGJyZWFrcG9pbnQ6UD09PSExP3ZvaWQgMDpQLG9uQ29sbGFwc2U6ZnVuY3Rpb24oT2Upe218fGM9PW51bGx8fGMoT2UpfSxjb2xsYXBzZWRXaWR0aDprLHN0eWxlOk4sdGhlbWU6ZCx3aWR0aDp2LGNsYXNzTmFtZTp0ZSgpKENlLGcsVWUpLGNoaWxkcmVuOltVZT8oMCx1LmpzeCkoImRpdiIse2NsYXNzTmFtZToiIi5jb25jYXQoVCwiLWhpZGUtd2hlbi1jb2xsYXBzZWQgIikuY29uY2F0KGcpLnRyaW0oKSxzdHlsZTp7aGVpZ2h0OiIxMDAlIix3aWR0aDoiMTAwJSIsb3BhY2l0eTpVZT8wOjF9LGNoaWxkcmVuOnhufSk6eG4sRmVdfSldfSkpfSxrcj1mKDEwMTc4KSxRcj1mKDQ4NTU1KSxKcj1mdW5jdGlvbihlKXt2YXIgbix0LGEsaSxvO3JldHVybigwLGwuWikoe30sZS5jb21wb25lbnRDbHMseyImLWhlYWRlci1hY3Rpb25zIjp7ZGlzcGxheToiZmxleCIsaGVpZ2h0OiIxMDAlIixhbGlnbkl0ZW1zOiJjZW50ZXIiLCImLWl0ZW0iOntkaXNwbGF5OiJpbmxpbmUtZmxleCIsYWxpZ25JdGVtczoiY2VudGVyIixqdXN0aWZ5Q29udGVudDoiY2VudGVyIixwYWRkaW5nQmxvY2s6MCxwYWRkaW5nSW5saW5lOjIsY29sb3I6KG49ZS5sYXlvdXQpPT09bnVsbHx8bj09PXZvaWQgMHx8KG49bi5oZWFkZXIpPT09bnVsbHx8bj09PXZvaWQgMD92b2lkIDA6bi5jb2xvclRleHRSaWdodEFjdGlvbnNJdGVtLGZvbnRTaXplOiIxNnB4IixjdXJzb3I6InBvaW50ZXIiLGJvcmRlclJhZGl1czplLmJvcmRlclJhZGl1cywiPiAqIjp7cGFkZGluZ0lubGluZTo2LHBhZGRpbmdCbG9jazo2LGJvcmRlclJhZGl1czplLmJvcmRlclJhZGl1cywiJjpob3ZlciI6e2JhY2tncm91bmRDb2xvcjoodD1lLmxheW91dCk9PT1udWxsfHx0PT09dm9pZCAwfHwodD10LmhlYWRlcik9PT1udWxsfHx0PT09dm9pZCAwP3ZvaWQgMDp0LmNvbG9yQmdSaWdodEFjdGlvbnNJdGVtSG92ZXJ9fX0sIiYtYXZhdGFyIjp7ZGlzcGxheToiaW5saW5lLWZsZXgiLGFsaWduSXRlbXM6ImNlbnRlciIsanVzdGlmeUNvbnRlbnQ6ImNlbnRlciIscGFkZGluZ0lubGluZVN0YXJ0OmUucGFkZGluZyxwYWRkaW5nSW5saW5lRW5kOmUucGFkZGluZyxjdXJzb3I6InBvaW50ZXIiLGNvbG9yOihhPWUubGF5b3V0KT09PW51bGx8fGE9PT12b2lkIDB8fChhPWEuaGVhZGVyKT09PW51bGx8fGE9PT12b2lkIDA/dm9pZCAwOmEuY29sb3JUZXh0UmlnaHRBY3Rpb25zSXRlbSwiPiBkaXYiOntoZWlnaHQ6IjQ0cHgiLGNvbG9yOihpPWUubGF5b3V0KT09PW51bGx8fGk9PT12b2lkIDB8fChpPWkuaGVhZGVyKT09PW51bGx8fGk9PT12b2lkIDA/dm9pZCAwOmkuY29sb3JUZXh0UmlnaHRBY3Rpb25zSXRlbSxwYWRkaW5nSW5saW5lOjgscGFkZGluZ0Jsb2NrOjgsY3Vyc29yOiJwb2ludGVyIixkaXNwbGF5OiJmbGV4IixhbGlnbkl0ZW1zOiJjZW50ZXIiLGxpbmVIZWlnaHQ6IjQ0cHgiLGJvcmRlclJhZGl1czplLmJvcmRlclJhZGl1cywiJjpob3ZlciI6e2JhY2tncm91bmRDb2xvcjoobz1lLmxheW91dCk9PT1udWxsfHxvPT09dm9pZCAwfHwobz1vLmhlYWRlcik9PT1udWxsfHxvPT09dm9pZCAwP3ZvaWQgMDpvLmNvbG9yQmdSaWdodEFjdGlvbnNJdGVtSG92ZXJ9fX19fSl9O2Z1bmN0aW9uIFlyKHIpe3JldHVybigwLFBlLlhqKSgiUHJvTGF5b3V0UmlnaHRDb250ZW50IixmdW5jdGlvbihlKXt2YXIgbj0oMCxzLlopKCgwLHMuWikoe30sZSkse30se2NvbXBvbmVudENsczoiLiIuY29uY2F0KHIpfSk7cmV0dXJuW0pyKG4pXX0pfXZhciBxcj1bInJpZ2h0Q29udGVudFJlbmRlciIsImF2YXRhclByb3BzIiwiYWN0aW9uc1JlbmRlciIsImhlYWRlckNvbnRlbnRSZW5kZXIiXSxlYT1bInRpdGxlIiwicmVuZGVyIl0sdXQ9ZnVuY3Rpb24oZSl7dmFyIG49ZS5yaWdodENvbnRlbnRSZW5kZXIsdD1lLmF2YXRhclByb3BzLGE9ZS5hY3Rpb25zUmVuZGVyLGk9ZS5oZWFkZXJDb250ZW50UmVuZGVyLG89KDAsbGUuWikoZSxxciksYz0oMCxwLnVzZUNvbnRleHQpKEhlLlpQLkNvbmZpZ0NvbnRleHQpLGQ9Yy5nZXRQcmVmaXhDbHMsdj0iIi5jb25jYXQoZCgpLCItcHJvLWdsb2JhbC1oZWFkZXIiKSxtPVlyKHYpLFM9bS53cmFwU1NSLHg9bS5oYXNoSWQsUD0oMCxwLnVzZVN0YXRlKSgiYXV0byIpLE49KDAsRy5aKShQLDIpLEQ9TlswXSxCPU5bMV0sej0oMCxwLnVzZU1lbW8pKGZ1bmN0aW9uKCl7aWYoIXQpcmV0dXJuIG51bGw7dmFyIEE9dC50aXRsZSx5PXQucmVuZGVyLEU9KDAsbGUuWikodCxlYSksVj1bRSE9bnVsbCYmRS5zcmN8fEUhPW51bGwmJkUuc3JjU2V0fHxFLmljb258fEUuY2hpbGRyZW4/KDAscC5jcmVhdGVFbGVtZW50KShKbi5aLCgwLHMuWikoKDAscy5aKSh7fSxFKSx7fSx7c2l6ZToyOCxrZXk6ImF2YXRhciJ9KSk6bnVsbCxBPygwLHUuanN4KSgic3BhbiIse3N0eWxlOnttYXJnaW5JbmxpbmVTdGFydDo4fSxjaGlsZHJlbjpBfSwibmFtZSIpOnZvaWQgMF07cmV0dXJuIHk/eSh0LCgwLHUuanN4KSgiZGl2Iix7Y2hpbGRyZW46Vn0pLG8pOigwLHUuanN4KSgiZGl2Iix7Y2hpbGRyZW46Vn0pfSxbdF0pLEg9YXx8ej9mdW5jdGlvbihBKXt2YXIgeT1hJiYoYT09bnVsbD92b2lkIDA6YShBKSk7cmV0dXJuIXkmJiF6P251bGw6QXJyYXkuaXNBcnJheSh5KT9TKCgwLHUuanN4cykoImRpdiIse2NsYXNzTmFtZToiIi5jb25jYXQodiwiLWhlYWRlci1hY3Rpb25zICIpLmNvbmNhdCh4KS50cmltKCksY2hpbGRyZW46W3kuZmlsdGVyKEJvb2xlYW4pLm1hcChmdW5jdGlvbihFLFYpe3ZhciBPPSExO2lmKHAuaXNWYWxpZEVsZW1lbnQoRSkpe3ZhciB3O089ISEoRSE9bnVsbCYmKHc9RS5wcm9wcykhPT1udWxsJiZ3IT09dm9pZCAwJiZ3WyJhcmlhLWhpZGRlbiJdKX1yZXR1cm4oMCx1LmpzeCkoImRpdiIse2NsYXNzTmFtZTp0ZSgpKCIiLmNvbmNhdCh2LCItaGVhZGVyLWFjdGlvbnMtaXRlbSAiKS5jb25jYXQoeCksKDAsbC5aKSh7fSwiIi5jb25jYXQodiwiLWhlYWRlci1hY3Rpb25zLWhvdmVyIiksIU8pKSxjaGlsZHJlbjpFfSxWKX0pLHomJigwLHUuanN4KSgic3BhbiIse2NsYXNzTmFtZToiIi5jb25jYXQodiwiLWhlYWRlci1hY3Rpb25zLWF2YXRhciAiKS5jb25jYXQoeCkudHJpbSgpLGNoaWxkcmVuOnp9KV19KSk6UygoMCx1LmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KHYsIi1oZWFkZXItYWN0aW9ucyAiKS5jb25jYXQoeCkudHJpbSgpLGNoaWxkcmVuOlt5LHomJigwLHUuanN4KSgic3BhbiIse2NsYXNzTmFtZToiIi5jb25jYXQodiwiLWhlYWRlci1hY3Rpb25zLWF2YXRhciAiKS5jb25jYXQoeCkudHJpbSgpLGNoaWxkcmVuOnp9KV19KSl9OnZvaWQgMCxGPSgwLGtyLkQpKGZ1bmN0aW9uKCl7dmFyIEE9KDAsZWUuWikoKDAsWS5aKSgpLm1hcmsoZnVuY3Rpb24geShFKXtyZXR1cm4oMCxZLlopKCkud3JhcChmdW5jdGlvbihPKXtmb3IoOzspc3dpdGNoKE8ucHJldj1PLm5leHQpe2Nhc2UgMDpCKEUpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIE8uc3RvcCgpfX0seSl9KSk7cmV0dXJuIGZ1bmN0aW9uKHkpe3JldHVybiBBLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksMTYwKSxMPUh8fG47cmV0dXJuKDAsdS5qc3gpKCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KHYsIi1yaWdodC1jb250ZW50ICIpLmNvbmNhdCh4KS50cmltKCksc3R5bGU6e21pbldpZHRoOkQsaGVpZ2h0OiIxMDAlIn0sY2hpbGRyZW46KDAsdS5qc3gpKCJkaXYiLHtzdHlsZTp7aGVpZ2h0OiIxMDAlIn0sY2hpbGRyZW46KDAsdS5qc3gpKFFyLlose29uUmVzaXplOmZ1bmN0aW9uKHkpe3ZhciBFPXkud2lkdGg7Ri5ydW4oRSl9LGNoaWxkcmVuOkw/KDAsdS5qc3gpKCJkaXYiLHtzdHlsZTp7ZGlzcGxheToiZmxleCIsYWxpZ25JdGVtczoiY2VudGVyIixoZWlnaHQ6IjEwMCUiLGp1c3RpZnlDb250ZW50OiJmbGV4LWVuZCJ9LGNoaWxkcmVuOkwoKDAscy5aKSgoMCxzLlopKHt9LG8pLHt9LHtyaWdodENvbnRlbnRTaXplOkR9KSl9KTpudWxsfSl9KX0pfSxuYT1mdW5jdGlvbihlKXt2YXIgbix0O3JldHVybigwLGwuWikoe30sZS5jb21wb25lbnRDbHMse3Bvc2l0aW9uOiJyZWxhdGl2ZSIsd2lkdGg6IjEwMCUiLGhlaWdodDoiMTAwJSIsYmFja2dyb3VuZENvbG9yOiJ0cmFuc3BhcmVudCIsIi5hbnRpY29uIjp7Y29sb3I6ImluaGVyaXQifSwiJi1tYWluIjp7ZGlzcGxheToiZmxleCIsaGVpZ2h0OiIxMDAlIixwYWRkaW5nSW5saW5lU3RhcnQ6IjE2cHgiLCImLWxlZnQiOigwLGwuWikoe2Rpc3BsYXk6ImZsZXgiLGFsaWduSXRlbXM6ImNlbnRlciJ9LCIiLmNvbmNhdChlLnByb0NvbXBvbmVudHNDbHMsIi1sYXlvdXQtYXBwcy1pY29uIikse21hcmdpbklubGluZUVuZDoxNixtYXJnaW5JbmxpbmVTdGFydDotOH0pfSwiJi13aWRlIjp7bWF4V2lkdGg6MTE1MixtYXJnaW46IjAgYXV0byJ9LCImLWxvZ28iOntwb3NpdGlvbjoicmVsYXRpdmUiLGRpc3BsYXk6ImZsZXgiLGhlaWdodDoiMTAwJSIsYWxpZ25JdGVtczoiY2VudGVyIixvdmVyZmxvdzoiaGlkZGVuIiwiPiAqOmZpcnN0LWNoaWxkIjp7ZGlzcGxheToiZmxleCIsYWxpZ25JdGVtczoiY2VudGVyIixtaW5IZWlnaHQ6IjIycHgiLGZvbnRTaXplOiIyMnB4In0sIj4gKjpmaXJzdC1jaGlsZCA+IGltZyI6e2Rpc3BsYXk6ImlubGluZS1ibG9jayIsaGVpZ2h0OiIzMnB4Iix2ZXJ0aWNhbEFsaWduOiJtaWRkbGUifSwiPiAqOmZpcnN0LWNoaWxkID4gaDEiOntkaXNwbGF5OiJpbmxpbmUtYmxvY2siLG1hcmdpbkJsb2NrOjAsbWFyZ2luSW5saW5lOjAsbGluZUhlaWdodDoiMjRweCIsbWFyZ2luSW5saW5lU3RhcnQ6Nixmb250V2VpZ2h0OiI2MDAiLGZvbnRTaXplOiIxNnB4Iixjb2xvcjoobj1lLmxheW91dCk9PT1udWxsfHxuPT09dm9pZCAwfHwobj1uLmhlYWRlcik9PT1udWxsfHxuPT09dm9pZCAwP3ZvaWQgMDpuLmNvbG9ySGVhZGVyVGl0bGUsdmVydGljYWxBbGlnbjoidG9wIn19LCImLW1lbnUiOnttaW5XaWR0aDowLGRpc3BsYXk6ImZsZXgiLGFsaWduSXRlbXM6ImNlbnRlciIscGFkZGluZ0lubGluZTo2LHBhZGRpbmdCbG9jazo2LGxpbmVIZWlnaHQ6IiIuY29uY2F0KE1hdGgubWF4KCgoKHQ9ZS5sYXlvdXQpPT09bnVsbHx8dD09PXZvaWQgMHx8KHQ9dC5oZWFkZXIpPT09bnVsbHx8dD09PXZvaWQgMD92b2lkIDA6dC5oZWlnaHRMYXlvdXRIZWFkZXIpfHw1NiktMTIsNDApLCJweCIpfX0pfTtmdW5jdGlvbiB0YShyKXtyZXR1cm4oMCxQZS5YaikoIlByb0xheW91dFRvcE5hdkhlYWRlciIsZnVuY3Rpb24oZSl7dmFyIG49KDAscy5aKSgoMCxzLlopKHt9LGUpLHt9LHtjb21wb25lbnRDbHM6Ii4iLmNvbmNhdChyKX0pO3JldHVybltuYShuKV19KX12YXIgY3Q9ZnVuY3Rpb24oZSl7dmFyIG4sdCxhLGksbyxjLGQsdj0oMCxwLnVzZVJlZikobnVsbCksbT1lLm9uTWVudUhlYWRlckNsaWNrLFM9ZS5jb250ZW50V2lkdGgseD1lLnJpZ2h0Q29udGVudFJlbmRlcixQPWUuY2xhc3NOYW1lLE49ZS5zdHlsZSxEPWUuaGVhZGVyQ29udGVudFJlbmRlcixCPWUubGF5b3V0LHo9ZS5hY3Rpb25zUmVuZGVyLEg9KDAscC51c2VDb250ZXh0KShIZS5aUC5Db25maWdDb250ZXh0KSxGPUguZ2V0UHJlZml4Q2xzLEw9KDAscC51c2VDb250ZXh0KShxLkxfKSxBPUwuZGFyayx5PSIiLmNvbmNhdChlLnByZWZpeENsc3x8RigicHJvIiksIi10b3AtbmF2LWhlYWRlciIpLEU9dGEoeSksVj1FLndyYXBTU1IsTz1FLmhhc2hJZCx3PXZvaWQgMDtlLm1lbnVIZWFkZXJSZW5kZXIhPT12b2lkIDA/dz0ibWVudUhlYWRlclJlbmRlciI6KEI9PT0ibWl4Inx8Qj09PSJ0b3AiKSYmKHc9ImhlYWRlclRpdGxlUmVuZGVyIik7dmFyIHJlPXduKCgwLHMuWikoKDAscy5aKSh7fSxlKSx7fSx7Y29sbGFwc2VkOiExfSksdyksc2U9KDAscC51c2VDb250ZXh0KShxLkxfKSxnPXNlLnRva2VuLG1lPSgwLHAudXNlTWVtbykoZnVuY3Rpb24oKXt2YXIgVCxrLG9lLENlLGllLE1lLGJlLFNlLE5lLEJlLExlLCRlLEZlLEtlPSgwLHUuanN4KShIZS5aUCx7dGhlbWU6e2hhc2hlZDooMCxxLm51KSgpLGNvbXBvbmVudHM6e0xheW91dDp7aGVhZGVyQmc6InRyYW5zcGFyZW50Iixib2R5Qmc6InRyYW5zcGFyZW50In0sTWVudTooMCxzLlopKHt9LFUoe2NvbG9ySXRlbUJnOigoVD1nLmxheW91dCk9PT1udWxsfHxUPT09dm9pZCAwfHwoVD1ULmhlYWRlcik9PT1udWxsfHxUPT09dm9pZCAwP3ZvaWQgMDpULmNvbG9yQmdIZWFkZXIpfHwidHJhbnNwYXJlbnQiLGNvbG9yU3ViSXRlbUJnOigoaz1nLmxheW91dCk9PT1udWxsfHxrPT09dm9pZCAwfHwoaz1rLmhlYWRlcik9PT1udWxsfHxrPT09dm9pZCAwP3ZvaWQgMDprLmNvbG9yQmdIZWFkZXIpfHwidHJhbnNwYXJlbnQiLHJhZGl1c0l0ZW06Zy5ib3JkZXJSYWRpdXMsY29sb3JJdGVtQmdTZWxlY3RlZDooKG9lPWcubGF5b3V0KT09PW51bGx8fG9lPT09dm9pZCAwfHwob2U9b2UuaGVhZGVyKT09PW51bGx8fG9lPT09dm9pZCAwP3ZvaWQgMDpvZS5jb2xvckJnTWVudUl0ZW1TZWxlY3RlZCl8fChnPT1udWxsP3ZvaWQgMDpnLmNvbG9yQmdUZXh0SG92ZXIpLGl0ZW1Ib3ZlckJnOigoQ2U9Zy5sYXlvdXQpPT09bnVsbHx8Q2U9PT12b2lkIDB8fChDZT1DZS5oZWFkZXIpPT09bnVsbHx8Q2U9PT12b2lkIDA/dm9pZCAwOkNlLmNvbG9yQmdNZW51SXRlbUhvdmVyKXx8KGc9PW51bGw/dm9pZCAwOmcuY29sb3JCZ1RleHRIb3ZlciksY29sb3JJdGVtQmdTZWxlY3RlZEhvcml6b250YWw6KChpZT1nLmxheW91dCk9PT1udWxsfHxpZT09PXZvaWQgMHx8KGllPWllLmhlYWRlcik9PT1udWxsfHxpZT09PXZvaWQgMD92b2lkIDA6aWUuY29sb3JCZ01lbnVJdGVtU2VsZWN0ZWQpfHwoZz09bnVsbD92b2lkIDA6Zy5jb2xvckJnVGV4dEhvdmVyKSxjb2xvckFjdGl2ZUJhcldpZHRoOjAsY29sb3JBY3RpdmVCYXJIZWlnaHQ6MCxjb2xvckFjdGl2ZUJhckJvcmRlclNpemU6MCxjb2xvckl0ZW1UZXh0OigoTWU9Zy5sYXlvdXQpPT09bnVsbHx8TWU9PT12b2lkIDB8fChNZT1NZS5oZWFkZXIpPT09bnVsbHx8TWU9PT12b2lkIDA/dm9pZCAwOk1lLmNvbG9yVGV4dE1lbnUpfHwoZz09bnVsbD92b2lkIDA6Zy5jb2xvclRleHRTZWNvbmRhcnkpLGNvbG9ySXRlbVRleHRIb3Zlckhvcml6b250YWw6KChiZT1nLmxheW91dCk9PT1udWxsfHxiZT09PXZvaWQgMHx8KGJlPWJlLmhlYWRlcik9PT1udWxsfHxiZT09PXZvaWQgMD92b2lkIDA6YmUuY29sb3JUZXh0TWVudUFjdGl2ZSl8fChnPT1udWxsP3ZvaWQgMDpnLmNvbG9yVGV4dCksY29sb3JJdGVtVGV4dFNlbGVjdGVkSG9yaXpvbnRhbDooKFNlPWcubGF5b3V0KT09PW51bGx8fFNlPT09dm9pZCAwfHwoU2U9U2UuaGVhZGVyKT09PW51bGx8fFNlPT09dm9pZCAwP3ZvaWQgMDpTZS5jb2xvclRleHRNZW51U2VsZWN0ZWQpfHwoZz09bnVsbD92b2lkIDA6Zy5jb2xvclRleHRCYXNlKSxob3Jpem9udGFsSXRlbUJvcmRlclJhZGl1czo0LGNvbG9ySXRlbVRleHRIb3ZlcjooKE5lPWcubGF5b3V0KT09PW51bGx8fE5lPT09dm9pZCAwfHwoTmU9TmUuaGVhZGVyKT09PW51bGx8fE5lPT09dm9pZCAwP3ZvaWQgMDpOZS5jb2xvclRleHRNZW51QWN0aXZlKXx8InJnYmEoMCwgMCwgMCwgMC44NSkiLGhvcml6b250YWxJdGVtSG92ZXJCZzooKEJlPWcubGF5b3V0KT09PW51bGx8fEJlPT09dm9pZCAwfHwoQmU9QmUuaGVhZGVyKT09PW51bGx8fEJlPT09dm9pZCAwP3ZvaWQgMDpCZS5jb2xvckJnTWVudUl0ZW1Ib3Zlcil8fCJyZ2JhKDAsIDAsIDAsIDAuMDQpIixjb2xvckl0ZW1UZXh0U2VsZWN0ZWQ6KChMZT1nLmxheW91dCk9PT1udWxsfHxMZT09PXZvaWQgMHx8KExlPUxlLmhlYWRlcik9PT1udWxsfHxMZT09PXZvaWQgMD92b2lkIDA6TGUuY29sb3JUZXh0TWVudVNlbGVjdGVkKXx8InJnYmEoMCwgMCwgMCwgMSkiLHBvcHVwQmc6Zz09bnVsbD92b2lkIDA6Zy5jb2xvckJnRWxldmF0ZWQsc3ViTWVudUl0ZW1CZzpnPT1udWxsP3ZvaWQgMDpnLmNvbG9yQmdFbGV2YXRlZCxkYXJrU3ViTWVudUl0ZW1CZzoidHJhbnNwYXJlbnQiLGRhcmtQb3B1cEJnOmc9PW51bGw/dm9pZCAwOmcuY29sb3JCZ0VsZXZhdGVkfSkpfSx0b2tlbjp7Y29sb3JCZ0VsZXZhdGVkOigoJGU9Zy5sYXlvdXQpPT09bnVsbHx8JGU9PT12b2lkIDB8fCgkZT0kZS5oZWFkZXIpPT09bnVsbHx8JGU9PT12b2lkIDA/dm9pZCAwOiRlLmNvbG9yQmdIZWFkZXIpfHwidHJhbnNwYXJlbnQifX0sY2hpbGRyZW46KDAsdS5qc3gpKG90LCgwLHMuWikoKDAscy5aKSgoMCxzLlopKHt0aGVtZTpBPyJkYXJrIjoibGlnaHQifSxlKSx7fSx7Y2xhc3NOYW1lOiIiLmNvbmNhdCh5LCItYmFzZS1tZW51ICIpLmNvbmNhdChPKS50cmltKCl9LGUubWVudVByb3BzKSx7fSx7c3R5bGU6KDAscy5aKSh7d2lkdGg6IjEwMCUifSwoRmU9ZS5tZW51UHJvcHMpPT09bnVsbHx8RmU9PT12b2lkIDA/dm9pZCAwOkZlLnN0eWxlKSxjb2xsYXBzZWQ6ITEsbWVudVJlbmRlclR5cGU6ImhlYWRlciIsbW9kZToiaG9yaXpvbnRhbCJ9KSl9KTtyZXR1cm4gRD9EKGUsS2UpOktlfSxbKG49Zy5sYXlvdXQpPT09bnVsbHx8bj09PXZvaWQgMHx8KG49bi5oZWFkZXIpPT09bnVsbHx8bj09PXZvaWQgMD92b2lkIDA6bi5jb2xvckJnSGVhZGVyLCh0PWcubGF5b3V0KT09PW51bGx8fHQ9PT12b2lkIDB8fCh0PXQuaGVhZGVyKT09PW51bGx8fHQ9PT12b2lkIDA/dm9pZCAwOnQuY29sb3JCZ01lbnVJdGVtU2VsZWN0ZWQsKGE9Zy5sYXlvdXQpPT09bnVsbHx8YT09PXZvaWQgMHx8KGE9YS5oZWFkZXIpPT09bnVsbHx8YT09PXZvaWQgMD92b2lkIDA6YS5jb2xvckJnTWVudUl0ZW1Ib3ZlciwoaT1nLmxheW91dCk9PT1udWxsfHxpPT09dm9pZCAwfHwoaT1pLmhlYWRlcik9PT1udWxsfHxpPT09dm9pZCAwP3ZvaWQgMDppLmNvbG9yVGV4dE1lbnUsKG89Zy5sYXlvdXQpPT09bnVsbHx8bz09PXZvaWQgMHx8KG89by5oZWFkZXIpPT09bnVsbHx8bz09PXZvaWQgMD92b2lkIDA6by5jb2xvclRleHRNZW51QWN0aXZlLChjPWcubGF5b3V0KT09PW51bGx8fGM9PT12b2lkIDB8fChjPWMuaGVhZGVyKT09PW51bGx8fGM9PT12b2lkIDA/dm9pZCAwOmMuY29sb3JUZXh0TWVudVNlbGVjdGVkLChkPWcubGF5b3V0KT09PW51bGx8fGQ9PT12b2lkIDB8fChkPWQuaGVhZGVyKT09PW51bGx8fGQ9PT12b2lkIDA/dm9pZCAwOmQuY29sb3JCZ01lbnVFbGV2YXRlZCxnLmJvcmRlclJhZGl1cyxnPT1udWxsP3ZvaWQgMDpnLmNvbG9yQmdUZXh0SG92ZXIsZz09bnVsbD92b2lkIDA6Zy5jb2xvclRleHRTZWNvbmRhcnksZz09bnVsbD92b2lkIDA6Zy5jb2xvclRleHQsZz09bnVsbD92b2lkIDA6Zy5jb2xvclRleHRCYXNlLGcuY29sb3JCZ0VsZXZhdGVkLEEsZSx5LE8sRF0pO3JldHVybiBWKCgwLHUuanN4KSgiZGl2Iix7Y2xhc3NOYW1lOnRlKCkoeSxPLFAsKDAsbC5aKSh7fSwiIi5jb25jYXQoeSwiLWxpZ2h0IiksITApKSxzdHlsZTpOLGNoaWxkcmVuOigwLHUuanN4cykoImRpdiIse3JlZjp2LGNsYXNzTmFtZTp0ZSgpKCIiLmNvbmNhdCh5LCItbWFpbiIpLE8sKDAsbC5aKSh7fSwiIi5jb25jYXQoeSwiLXdpZGUiKSxTPT09IkZpeGVkIiYmQj09PSJ0b3AiKSksY2hpbGRyZW46W3JlJiYoMCx1LmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6dGUoKSgiIi5jb25jYXQoeSwiLW1haW4tbGVmdCAiKS5jb25jYXQoTykpLG9uQ2xpY2s6bSxjaGlsZHJlbjpbKDAsdS5qc3gpKGpuLCgwLHMuWikoe30sZSkpLCgwLHUuanN4KSgiZGl2Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdCh5LCItbG9nbyAiKS5jb25jYXQoTykudHJpbSgpLGlkOiJsb2dvIixjaGlsZHJlbjpyZX0sImxvZ28iKV19KSwoMCx1LmpzeCkoImRpdiIse3N0eWxlOntmbGV4OjF9LGNsYXNzTmFtZToiIi5jb25jYXQoeSwiLW1lbnUgIikuY29uY2F0KE8pLnRyaW0oKSxjaGlsZHJlbjptZX0pLCh4fHx6fHxlLmF2YXRhclByb3BzKSYmKDAsdS5qc3gpKHV0LCgwLHMuWikoKDAscy5aKSh7cmlnaHRDb250ZW50UmVuZGVyOnh9LGUpLHt9LHtwcmVmaXhDbHM6eX0pKV19KX0pKX0scmE9ZnVuY3Rpb24oZSl7dmFyIG4sdCxhO3JldHVybigwLGwuWikoe30sZS5jb21wb25lbnRDbHMsKDAsbC5aKSgoMCxsLlopKCgwLGwuWikoKDAsbC5aKSh7cG9zaXRpb246InJlbGF0aXZlIixiYWNrZ3JvdW5kOiJ0cmFuc3BhcmVudCIsZGlzcGxheToiZmxleCIsYWxpZ25JdGVtczoiY2VudGVyIixtYXJnaW5CbG9jazowLG1hcmdpbklubGluZToxNixoZWlnaHQ6KChuPWUubGF5b3V0KT09PW51bGx8fG49PT12b2lkIDB8fChuPW4uaGVhZGVyKT09PW51bGx8fG49PT12b2lkIDA/dm9pZCAwOm4uaGVpZ2h0TGF5b3V0SGVhZGVyKXx8NTYsYm94U2l6aW5nOiJib3JkZXItYm94IiwiPiBhIjp7aGVpZ2h0OiIxMDAlIn19LCIiLmNvbmNhdChlLnByb0NvbXBvbmVudHNDbHMsIi1sYXlvdXQtYXBwcy1pY29uIikse21hcmdpbklubGluZUVuZDoxNn0pLCImLWNvbGxhcHNlZC1idXR0b24iLHttaW5IZWlnaHQ6IjIycHgiLGNvbG9yOih0PWUubGF5b3V0KT09PW51bGx8fHQ9PT12b2lkIDB8fCh0PXQuaGVhZGVyKT09PW51bGx8fHQ9PT12b2lkIDA/dm9pZCAwOnQuY29sb3JIZWFkZXJUaXRsZSxmb250U2l6ZToiMThweCIsbWFyZ2luSW5saW5lRW5kOiIxNnB4In0pLCImLWxvZ28iLHtwb3NpdGlvbjoicmVsYXRpdmUiLG1hcmdpbklubGluZUVuZDoiMTZweCIsYTp7ZGlzcGxheToiZmxleCIsYWxpZ25JdGVtczoiY2VudGVyIixoZWlnaHQ6IjEwMCUiLG1pbkhlaWdodDoiMjJweCIsZm9udFNpemU6IjIwcHgifSxpbWc6e2hlaWdodDoiMjhweCJ9LGgxOntoZWlnaHQ6IjMycHgiLG1hcmdpbkJsb2NrOjAsbWFyZ2luSW5saW5lOjAsbWFyZ2luSW5saW5lU3RhcnQ6OCxmb250V2VpZ2h0OiI2MDAiLGNvbG9yOigoYT1lLmxheW91dCk9PT1udWxsfHxhPT09dm9pZCAwfHwoYT1hLmhlYWRlcik9PT1udWxsfHxhPT09dm9pZCAwP3ZvaWQgMDphLmNvbG9ySGVhZGVyVGl0bGUpfHxlLmNvbG9yVGV4dEhlYWRpbmcsZm9udFNpemU6IjE4cHgiLGxpbmVIZWlnaHQ6IjMycHgifSwiJi1taXgiOntkaXNwbGF5OiJmbGV4IixhbGlnbkl0ZW1zOiJjZW50ZXIifX0pLCImLWxvZ28tbW9iaWxlIix7bWluV2lkdGg6IjI0cHgiLG1hcmdpbklubGluZUVuZDowfSkpfTtmdW5jdGlvbiBhYShyKXtyZXR1cm4oMCxQZS5YaikoIlByb0xheW91dEdsb2JhbEhlYWRlciIsZnVuY3Rpb24oZSl7dmFyIG49KDAscy5aKSgoMCxzLlopKHt9LGUpLHt9LHtjb21wb25lbnRDbHM6Ii4iLmNvbmNhdChyKX0pO3JldHVybltyYShuKV19KX12YXIgb2E9ZnVuY3Rpb24oZSxuKXtyZXR1cm4gZT09PSExP251bGw6ZT9lKG4sbnVsbCk6bn0saWE9ZnVuY3Rpb24oZSl7dmFyIG49ZS5pc01vYmlsZSx0PWUubG9nbyxhPWUuY29sbGFwc2VkLGk9ZS5vbkNvbGxhcHNlLG89ZS5yaWdodENvbnRlbnRSZW5kZXIsYz1lLm1lbnVIZWFkZXJSZW5kZXIsZD1lLm9uTWVudUhlYWRlckNsaWNrLHY9ZS5jbGFzc05hbWUsbT1lLnN0eWxlLFM9ZS5sYXlvdXQseD1lLmNoaWxkcmVuLFA9ZS5zcGxpdE1lbnVzLE49ZS5tZW51RGF0YSxEPWUucHJlZml4Q2xzLEI9KDAscC51c2VDb250ZXh0KShIZS5aUC5Db25maWdDb250ZXh0KSx6PUIuZ2V0UHJlZml4Q2xzLEg9Qi5kaXJlY3Rpb24sRj0iIi5jb25jYXQoRHx8eigicHJvIiksIi1nbG9iYWwtaGVhZGVyIiksTD1hYShGKSxBPUwud3JhcFNTUix5PUwuaGFzaElkLEU9dGUoKSh2LEYseSk7aWYoUz09PSJtaXgiJiYhbiYmUCl7dmFyIFY9KE58fFtdKS5tYXAoZnVuY3Rpb24oc2Upe3JldHVybigwLHMuWikoKDAscy5aKSh7fSxzZSkse30se2NoaWxkcmVuOnZvaWQgMCxyb3V0ZXM6dm9pZCAwfSl9KSxPPSgwLGxuLlFYKShWKTtyZXR1cm4oMCx1LmpzeCkoY3QsKDAscy5aKSgoMCxzLlopKHttb2RlOiJob3Jpem9udGFsIn0sZSkse30se3NwbGl0TWVudXM6ITEsbWVudURhdGE6T30pKX12YXIgdz10ZSgpKCIiLmNvbmNhdChGLCItbG9nbyIpLHksKDAsbC5aKSgoMCxsLlopKCgwLGwuWikoe30sIiIuY29uY2F0KEYsIi1sb2dvLXJ0bCIpLEg9PT0icnRsIiksIiIuY29uY2F0KEYsIi1sb2dvLW1peCIpLFM9PT0ibWl4IiksIiIuY29uY2F0KEYsIi1sb2dvLW1vYmlsZSIpLG4pKSxyZT0oMCx1LmpzeCkoInNwYW4iLHtjbGFzc05hbWU6dyxjaGlsZHJlbjooMCx1LmpzeCkoImEiLHtjaGlsZHJlbjpFbih0KX0pfSwibG9nbyIpO3JldHVybiBBKCgwLHUuanN4cykoImRpdiIse2NsYXNzTmFtZTpFLHN0eWxlOigwLHMuWikoe30sbSksY2hpbGRyZW46W24mJigwLHUuanN4KSgic3BhbiIse2NsYXNzTmFtZToiIi5jb25jYXQoRiwiLWNvbGxhcHNlZC1idXR0b24gIikuY29uY2F0KHkpLnRyaW0oKSxvbkNsaWNrOmZ1bmN0aW9uKCl7aT09bnVsbHx8aSghYSl9LGNoaWxkcmVuOigwLHUuanN4KSh4ci5aLHt9KX0pLG4mJm9hKGMscmUpLFM9PT0ibWl4IiYmIW4mJigwLHUuanN4cykodS5GcmFnbWVudCx7Y2hpbGRyZW46WygwLHUuanN4KShqbiwoMCxzLlopKHt9LGUpKSwoMCx1LmpzeCkoImRpdiIse2NsYXNzTmFtZTp3LG9uQ2xpY2s6ZCxjaGlsZHJlbjp3bigoMCxzLlopKCgwLHMuWikoe30sZSkse30se2NvbGxhcHNlZDohMX0pLCJoZWFkZXJUaXRsZVJlbmRlciIpfSldfSksKDAsdS5qc3gpKCJkaXYiLHtzdHlsZTp7ZmxleDoxfSxjaGlsZHJlbjp4fSksKG98fGUuYWN0aW9uc1JlbmRlcnx8ZS5hdmF0YXJQcm9wcykmJigwLHUuanN4KSh1dCwoMCxzLlopKHtyaWdodENvbnRlbnRSZW5kZXI6b30sZSkpXX0pKX0sbGE9ZnVuY3Rpb24oZSl7dmFyIG4sdCxhLGk7cmV0dXJuKDAsbC5aKSh7fSwiIi5jb25jYXQoZS5wcm9Db21wb25lbnRzQ2xzLCItbGF5b3V0IiksKDAsbC5aKSh7fSwiIi5jb25jYXQoZS5hbnRDbHMsIi1sYXlvdXQtaGVhZGVyIikuY29uY2F0KGUuY29tcG9uZW50Q2xzKSx7aGVpZ2h0Oigobj1lLmxheW91dCk9PT1udWxsfHxuPT09dm9pZCAwfHwobj1uLmhlYWRlcik9PT1udWxsfHxuPT09dm9pZCAwP3ZvaWQgMDpuLmhlaWdodExheW91dEhlYWRlcil8fDU2LGxpbmVIZWlnaHQ6IiIuY29uY2F0KCgodD1lLmxheW91dCk9PT1udWxsfHx0PT09dm9pZCAwfHwodD10LmhlYWRlcik9PT1udWxsfHx0PT09dm9pZCAwP3ZvaWQgMDp0LmhlaWdodExheW91dEhlYWRlcil8fDU2LCJweCIpLHpJbmRleDoxOSx3aWR0aDoiMTAwJSIscGFkZGluZ0Jsb2NrOjAscGFkZGluZ0lubGluZTowLGJvcmRlckJsb2NrRW5kOiIxcHggc29saWQgIi5jb25jYXQoZS5jb2xvclNwbGl0KSxiYWNrZ3JvdW5kQ29sb3I6KChhPWUubGF5b3V0KT09PW51bGx8fGE9PT12b2lkIDB8fChhPWEuaGVhZGVyKT09PW51bGx8fGE9PT12b2lkIDA/dm9pZCAwOmEuY29sb3JCZ0hlYWRlcil8fCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCkiLFdlYmtpdEJhY2tkcm9wRmlsdGVyOiJibHVyKDhweCkiLGJhY2tkcm9wRmlsdGVyOiJibHVyKDhweCkiLHRyYW5zaXRpb246ImJhY2tncm91bmQtY29sb3IgMC4zcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSkiLCImLWZpeGVkLWhlYWRlciI6e3Bvc2l0aW9uOiJmaXhlZCIsaW5zZXRCbG9ja1N0YXJ0OjAsd2lkdGg6IjEwMCUiLHpJbmRleDoxMDAsaW5zZXRJbmxpbmVFbmQ6MH0sIiYtZml4ZWQtaGVhZGVyLXNjcm9sbCI6e2JhY2tncm91bmRDb2xvcjooKGk9ZS5sYXlvdXQpPT09bnVsbHx8aT09PXZvaWQgMHx8KGk9aS5oZWFkZXIpPT09bnVsbHx8aT09PXZvaWQgMD92b2lkIDA6aS5jb2xvckJnU2Nyb2xsSGVhZGVyKXx8InJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KSJ9LCImLWhlYWRlci1hY3Rpb25zIjp7ZGlzcGxheToiZmxleCIsYWxpZ25JdGVtczoiY2VudGVyIixmb250U2l6ZToiMTYiLGN1cnNvcjoicG9pbnRlciIsIiYgJi1pdGVtIjp7cGFkZGluZ0Jsb2NrOjAscGFkZGluZ0lubGluZTo4LCImOmhvdmVyIjp7Y29sb3I6ZS5jb2xvclRleHR9fX0sIiYtaGVhZGVyLXJlYWxEYXJrIjp7Ym94U2hhZG93OiIwIDJweCA4cHggMCByZ2JhKDAsIDAsIDAsIDY1JSkifSwiJi1oZWFkZXItYWN0aW9ucy1oZWFkZXItYWN0aW9uIjp7dHJhbnNpdGlvbjoid2lkdGggMC4zcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSkifX0pKX07ZnVuY3Rpb24gdWEocil7cmV0dXJuKDAsUGUuWGopKCJQcm9MYXlvdXRIZWFkZXIiLGZ1bmN0aW9uKGUpe3ZhciBuPSgwLHMuWikoKDAscy5aKSh7fSxlKSx7fSx7Y29tcG9uZW50Q2xzOiIuIi5jb25jYXQocil9KTtyZXR1cm5bbGEobildfSl9ZnVuY3Rpb24gY2EocixlKXt2YXIgbj1lLnN0eWxpc2gsdD1lLnByb0xheW91dENvbGxhcHNlZFdpZHRoO3JldHVybigwLFBlLlhqKSgiUHJvTGF5b3V0SGVhZGVyU3R5bGlzaCIsZnVuY3Rpb24oYSl7dmFyIGk9KDAscy5aKSgoMCxzLlopKHt9LGEpLHt9LHtjb21wb25lbnRDbHM6Ii4iLmNvbmNhdChyKSxwcm9MYXlvdXRDb2xsYXBzZWRXaWR0aDp0fSk7cmV0dXJuIG4/WygwLGwuWikoe30sImRpdiIuY29uY2F0KGEucHJvQ29tcG9uZW50c0NscywiLWxheW91dCIpLCgwLGwuWikoe30sIiIuY29uY2F0KGkuY29tcG9uZW50Q2xzKSxuPT1udWxsP3ZvaWQgMDpuKGkpKSldOltdfSl9dmFyIGR0PVZlLlouSGVhZGVyLGRhPWZ1bmN0aW9uKGUpe3ZhciBuLHQsYSxpPWUuaXNNb2JpbGUsbz1lLmZpeGVkSGVhZGVyLGM9ZS5jbGFzc05hbWUsZD1lLnN0eWxlLHY9ZS5jb2xsYXBzZWQsbT1lLnByZWZpeENscyxTPWUub25Db2xsYXBzZSx4PWUubGF5b3V0LFA9ZS5oZWFkZXJSZW5kZXIsTj1lLmhlYWRlckNvbnRlbnRSZW5kZXIsRD0oMCxwLnVzZUNvbnRleHQpKHEuTF8pLEI9RC50b2tlbix6PSgwLHAudXNlQ29udGV4dCkoSGUuWlAuQ29uZmlnQ29udGV4dCksSD0oMCxwLnVzZVN0YXRlKSghMSksRj0oMCxHLlopKEgsMiksTD1GWzBdLEE9RlsxXSx5PW98fHg9PT0ibWl4IixFPSgwLHAudXNlQ2FsbGJhY2spKGZ1bmN0aW9uKCl7dmFyIFQ9eD09PSJ0b3AiLGs9KDAsbG4uUVgpKGUubWVudURhdGF8fFtdKSxvZT0oMCx1LmpzeCkoaWEsKDAscy5aKSgoMCxzLlopKHtvbkNvbGxhcHNlOlN9LGUpLHt9LHttZW51RGF0YTprLGNoaWxkcmVuOk4mJk4oZSxudWxsKX0pKTtyZXR1cm4gVCYmIWkmJihvZT0oMCx1LmpzeCkoY3QsKDAscy5aKSgoMCxzLlopKHttb2RlOiJob3Jpem9udGFsIixvbkNvbGxhcHNlOlN9LGUpLHt9LHttZW51RGF0YTprfSkpKSxQJiZ0eXBlb2YgUD09ImZ1bmN0aW9uIj9QKGUsb2UpOm9lfSxbTixQLGkseCxTLGVdKTsoMCxwLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXt2YXIgVCxrPSh6PT1udWxsfHwoVD16LmdldFRhcmdldENvbnRhaW5lcik9PT1udWxsfHxUPT09dm9pZCAwP3ZvaWQgMDpULmNhbGwoeikpfHxkb2N1bWVudC5ib2R5LG9lPWZ1bmN0aW9uKCl7dmFyIGllLE1lPWsuc2Nyb2xsVG9wO3JldHVybiBNZT4oKChpZT1CLmxheW91dCk9PT1udWxsfHxpZT09PXZvaWQgMHx8KGllPWllLmhlYWRlcik9PT1udWxsfHxpZT09PXZvaWQgMD92b2lkIDA6aWUuaGVpZ2h0TGF5b3V0SGVhZGVyKXx8NTYpJiYhTD8oQSghMCksITApOihMJiZBKCExKSwhMSl9O2lmKHkmJnR5cGVvZiB3aW5kb3chPSJ1bmRlZmluZWQiKXJldHVybiBrLmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsb2Use3Bhc3NpdmU6ITB9KSxmdW5jdGlvbigpe2sucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixvZSl9fSxbKG49Qi5sYXlvdXQpPT09bnVsbHx8bj09PXZvaWQgMHx8KG49bi5oZWFkZXIpPT09bnVsbHx8bj09PXZvaWQgMD92b2lkIDA6bi5oZWlnaHRMYXlvdXRIZWFkZXIseSxMXSk7dmFyIFY9eD09PSJ0b3AiLE89IiIuY29uY2F0KG0sIi1sYXlvdXQtaGVhZGVyIiksdz11YShPKSxyZT13LndyYXBTU1Isc2U9dy5oYXNoSWQsZz1jYSgiIi5jb25jYXQoTywiLiIpLmNvbmNhdChPLCItc3R5bGlzaCIpLHtwcm9MYXlvdXRDb2xsYXBzZWRXaWR0aDo2NCxzdHlsaXNoOmUuc3R5bGlzaH0pLG1lPXRlKCkoYyxzZSxPLCgwLGwuWikoKDAsbC5aKSgoMCxsLlopKCgwLGwuWikoKDAsbC5aKSgoMCxsLlopKCgwLGwuWikoe30sIiIuY29uY2F0KE8sIi1maXhlZC1oZWFkZXIiKSx5KSwiIi5jb25jYXQoTywiLWZpeGVkLWhlYWRlci1zY3JvbGwiKSxMKSwiIi5jb25jYXQoTywiLW1peCIpLHg9PT0ibWl4IiksIiIuY29uY2F0KE8sIi1maXhlZC1oZWFkZXItYWN0aW9uIiksIXYpLCIiLmNvbmNhdChPLCItdG9wLW1lbnUiKSxWKSwiIi5jb25jYXQoTywiLWhlYWRlciIpLCEwKSwiIi5jb25jYXQoTywiLXN0eWxpc2giKSwhIWUuc3R5bGlzaCkpO3JldHVybiB4PT09InNpZGUiJiYhaT9udWxsOmcud3JhcFNTUihyZSgoMCx1LmpzeCkodS5GcmFnbWVudCx7Y2hpbGRyZW46KDAsdS5qc3hzKShIZS5aUCx7dGhlbWU6e2hhc2hlZDooMCxxLm51KSgpLGNvbXBvbmVudHM6e0xheW91dDp7aGVhZGVyQmc6InRyYW5zcGFyZW50Iixib2R5Qmc6InRyYW5zcGFyZW50In19fSxjaGlsZHJlbjpbeSYmKDAsdS5qc3gpKGR0LHtzdHlsZTooMCxzLlopKHtoZWlnaHQ6KCh0PUIubGF5b3V0KT09PW51bGx8fHQ9PT12b2lkIDB8fCh0PXQuaGVhZGVyKT09PW51bGx8fHQ9PT12b2lkIDA/dm9pZCAwOnQuaGVpZ2h0TGF5b3V0SGVhZGVyKXx8NTYsbGluZUhlaWdodDoiIi5jb25jYXQoKChhPUIubGF5b3V0KT09PW51bGx8fGE9PT12b2lkIDB8fChhPWEuaGVhZGVyKT09PW51bGx8fGE9PT12b2lkIDA/dm9pZCAwOmEuaGVpZ2h0TGF5b3V0SGVhZGVyKXx8NTYsInB4IiksYmFja2dyb3VuZENvbG9yOiJ0cmFuc3BhcmVudCIsekluZGV4OjE5fSxkKX0pLCgwLHUuanN4KShkdCx7Y2xhc3NOYW1lOm1lLHN0eWxlOmQsY2hpbGRyZW46RSgpfSldfSl9KSkpfSxzYT1mKDgzODMyKSx2YT1mKDg1MjY1KSxmYT1mKDExNTY4KSxzdD1uZXcgZmEuRTQoImFudEJhZGdlTG9hZGluZ0NpcmNsZSIseyIwJSI6e2Rpc3BsYXk6Im5vbmUiLG9wYWNpdHk6MCxvdmVyZmxvdzoiaGlkZGVuIn0sIjgwJSI6e292ZXJmbG93OiJoaWRkZW4ifSwiMTAwJSI6e2Rpc3BsYXk6InVuc2V0IixvcGFjaXR5OjF9fSksbWE9ZnVuY3Rpb24oZSl7dmFyIG4sdCxhLGksbyxjLGQsdixtLFMseCxQO3JldHVybigwLGwuWikoe30sIiIuY29uY2F0KGUucHJvQ29tcG9uZW50c0NscywiLWxheW91dCIpLCgwLGwuWikoKDAsbC5aKSgoMCxsLlopKHt9LCIiLmNvbmNhdChlLmFudENscywiLWxheW91dC1zaWRlciIpLmNvbmNhdChlLmNvbXBvbmVudENscykse2JhY2tncm91bmQ6KChuPWUubGF5b3V0KT09PW51bGx8fG49PT12b2lkIDB8fChuPW4uc2lkZXIpPT09bnVsbHx8bj09PXZvaWQgMD92b2lkIDA6bi5jb2xvck1lbnVCYWNrZ3JvdW5kKXx8InRyYW5zcGFyZW50In0pLGUuY29tcG9uZW50Q2xzLCgwLGwuWikoKDAsbC5aKSgoMCxsLlopKCgwLGwuWikoKDAsbC5aKSgoMCxsLlopKCgwLGwuWikoKDAsbC5aKSgoMCxsLlopKHtwb3NpdGlvbjoicmVsYXRpdmUiLGJveFNpemluZzoiYm9yZGVyLWJveCIsIiYtbWVudSI6e3Bvc2l0aW9uOiJyZWxhdGl2ZSIsekluZGV4OjEwLG1pbkhlaWdodDoiMTAwJSJ9fSwiJiAiLmNvbmNhdChlLmFudENscywiLWxheW91dC1zaWRlci1jaGlsZHJlbiIpLHtwb3NpdGlvbjoicmVsYXRpdmUiLGRpc3BsYXk6ImZsZXgiLGZsZXhEaXJlY3Rpb246ImNvbHVtbiIsaGVpZ2h0OiIxMDAlIixwYWRkaW5nSW5saW5lOih0PWUubGF5b3V0KT09PW51bGx8fHQ9PT12b2lkIDB8fCh0PXQuc2lkZXIpPT09bnVsbHx8dD09PXZvaWQgMD92b2lkIDA6dC5wYWRkaW5nSW5saW5lTGF5b3V0TWVudSxwYWRkaW5nQmxvY2s6KGE9ZS5sYXlvdXQpPT09bnVsbHx8YT09PXZvaWQgMHx8KGE9YS5zaWRlcik9PT1udWxsfHxhPT09dm9pZCAwP3ZvaWQgMDphLnBhZGRpbmdCbG9ja0xheW91dE1lbnUsYm9yZGVySW5saW5lRW5kOiIxcHggc29saWQgIi5jb25jYXQoZS5jb2xvclNwbGl0KSxtYXJnaW5JbmxpbmVFbmQ6LTF9KSwiIi5jb25jYXQoZS5hbnRDbHMsIi1tZW51IiksKDAsbC5aKSgoMCxsLlopKHt9LCIiLmNvbmNhdChlLmFudENscywiLW1lbnUtaXRlbS1ncm91cC10aXRsZSIpLHtmb250U2l6ZTplLmZvbnRTaXplU00scGFkZGluZ0JvdHRvbTo0fSksIiIuY29uY2F0KGUuYW50Q2xzLCItbWVudS1pdGVtOm5vdCgiKS5jb25jYXQoZS5hbnRDbHMsIi1tZW51LWl0ZW0tc2VsZWN0ZWQpOmhvdmVyIikse2NvbG9yOihpPWUubGF5b3V0KT09PW51bGx8fGk9PT12b2lkIDB8fChpPWkuc2lkZXIpPT09bnVsbHx8aT09PXZvaWQgMD92b2lkIDA6aS5jb2xvclRleHRNZW51SXRlbUhvdmVyfSkpLCImLWxvZ28iLHtwb3NpdGlvbjoicmVsYXRpdmUiLGRpc3BsYXk6ImZsZXgiLGFsaWduSXRlbXM6ImNlbnRlciIsanVzdGlmeUNvbnRlbnQ6InNwYWNlLWJldHdlZW4iLHBhZGRpbmdJbmxpbmU6MTIscGFkZGluZ0Jsb2NrOjE2LGNvbG9yOihvPWUubGF5b3V0KT09PW51bGx8fG89PT12b2lkIDB8fChvPW8uc2lkZXIpPT09bnVsbHx8bz09PXZvaWQgMD92b2lkIDA6by5jb2xvclRleHRNZW51LGN1cnNvcjoicG9pbnRlciIsYm9yZGVyQmxvY2tFbmQ6IjFweCBzb2xpZCAiLmNvbmNhdCgoYz1lLmxheW91dCk9PT1udWxsfHxjPT09dm9pZCAwfHwoYz1jLnNpZGVyKT09PW51bGx8fGM9PT12b2lkIDA/dm9pZCAwOmMuY29sb3JNZW51SXRlbURpdmlkZXIpLCI+IGEiOntkaXNwbGF5OiJmbGV4IixhbGlnbkl0ZW1zOiJjZW50ZXIiLGp1c3RpZnlDb250ZW50OiJjZW50ZXIiLG1pbkhlaWdodDoyMixmb250U2l6ZToyMiwiPiBpbWciOntkaXNwbGF5OiJpbmxpbmUtYmxvY2siLGhlaWdodDoyMix2ZXJ0aWNhbEFsaWduOiJtaWRkbGUifSwiPiBoMSI6e2Rpc3BsYXk6ImlubGluZS1ibG9jayIsaGVpZ2h0OjIyLG1hcmdpbkJsb2NrOjAsbWFyZ2luSW5saW5lRW5kOjAsbWFyZ2luSW5saW5lU3RhcnQ6Nixjb2xvcjooZD1lLmxheW91dCk9PT1udWxsfHxkPT09dm9pZCAwfHwoZD1kLnNpZGVyKT09PW51bGx8fGQ9PT12b2lkIDA/dm9pZCAwOmQuY29sb3JUZXh0TWVudVRpdGxlLGFuaW1hdGlvbk5hbWU6c3QsYW5pbWF0aW9uRHVyYXRpb246Ii40cyIsYW5pbWF0aW9uVGltaW5nRnVuY3Rpb246ImVhc2UiLGZvbnRXZWlnaHQ6NjAwLGZvbnRTaXplOjE2LGxpbmVIZWlnaHQ6IjIycHgiLHZlcnRpY2FsQWxpZ246Im1pZGRsZSJ9fSwiJi1jb2xsYXBzZWQiOigwLGwuWikoe2ZsZXhEaXJlY3Rpb246ImNvbHVtbi1yZXZlcnNlIixtYXJnaW46MCxwYWRkaW5nOjEyfSwiIi5jb25jYXQoZS5wcm9Db21wb25lbnRzQ2xzLCItbGF5b3V0LWFwcHMtaWNvbiIpLHttYXJnaW5CbG9ja0VuZDo4LGZvbnRTaXplOjE2LHRyYW5zaXRpb246ImZvbnQtc2l6ZSAwLjJzIGVhc2UtaW4tb3V0LGNvbG9yIDAuMnMgZWFzZS1pbi1vdXQifSl9KSwiJi1hY3Rpb25zIix7ZGlzcGxheToiZmxleCIsYWxpZ25JdGVtczoiY2VudGVyIixqdXN0aWZ5Q29udGVudDoic3BhY2UtYmV0d2VlbiIsbWFyZ2luQmxvY2s6NCxtYXJnaW5JbmxpbmU6MCxjb2xvcjoodj1lLmxheW91dCk9PT1udWxsfHx2PT09dm9pZCAwfHwodj12LnNpZGVyKT09PW51bGx8fHY9PT12b2lkIDA/dm9pZCAwOnYuY29sb3JUZXh0TWVudSwiJi1jb2xsYXBzZWQiOntmbGV4RGlyZWN0aW9uOiJjb2x1bW4tcmV2ZXJzZSIscGFkZGluZ0Jsb2NrOjAscGFkZGluZ0lubGluZTo4LGZvbnRTaXplOjE2LHRyYW5zaXRpb246ImZvbnQtc2l6ZSAwLjNzIGVhc2UtaW4tb3V0In0sIiYtbGlzdCI6e2NvbG9yOihtPWUubGF5b3V0KT09PW51bGx8fG09PT12b2lkIDB8fChtPW0uc2lkZXIpPT09bnVsbHx8bT09PXZvaWQgMD92b2lkIDA6bS5jb2xvclRleHRNZW51U2Vjb25kYXJ5LCImLWNvbGxhcHNlZCI6e21hcmdpbkJsb2NrRW5kOjgsYW5pbWF0aW9uTmFtZToibm9uZSJ9LCImLWl0ZW0iOntwYWRkaW5nSW5saW5lOjYscGFkZGluZ0Jsb2NrOjYsbGluZUhlaWdodDoiMTZweCIsZm9udFNpemU6MTYsY3Vyc29yOiJwb2ludGVyIixib3JkZXJSYWRpdXM6ZS5ib3JkZXJSYWRpdXMsIiY6aG92ZXIiOntiYWNrZ3JvdW5kOmUuY29sb3JCZ1RleHRIb3Zlcn19fSwiJi1hdmF0YXIiOntmb250U2l6ZToxNCxwYWRkaW5nSW5saW5lOjgscGFkZGluZ0Jsb2NrOjgsZGlzcGxheToiZmxleCIsYWxpZ25JdGVtczoiY2VudGVyIixnYXA6ZS5tYXJnaW5YUyxib3JkZXJSYWRpdXM6ZS5ib3JkZXJSYWRpdXMsIiYgKiI6e2N1cnNvcjoicG9pbnRlciJ9LCImOmhvdmVyIjp7YmFja2dyb3VuZDplLmNvbG9yQmdUZXh0SG92ZXJ9fX0pLCImLWhpZGUtbWVudS1jb2xsYXBzZWQiLHtpbnNldElubGluZVN0YXJ0OiItIi5jb25jYXQoZS5wcm9MYXlvdXRDb2xsYXBzZWRXaWR0aC0xMiwicHgiKSxwb3NpdGlvbjoiYWJzb2x1dGUifSksIiYtZXh0cmEiLHttYXJnaW5CbG9ja0VuZDoxNixtYXJnaW5CbG9jazowLG1hcmdpbklubGluZToxNiwiJi1uby1sb2dvIjp7bWFyZ2luQmxvY2tTdGFydDoxNn19KSwiJi1saW5rcyIse3dpZHRoOiIxMDAlIix1bDp7aGVpZ2h0OiJhdXRvIn19KSwiJi1saW5rLW1lbnUiLHtib3JkZXI6Im5vbmUiLGJveFNoYWRvdzoibm9uZSIsYmFja2dyb3VuZDoidHJhbnNwYXJlbnQifSksIiYtZm9vdGVyIix7Y29sb3I6KFM9ZS5sYXlvdXQpPT09bnVsbHx8Uz09PXZvaWQgMHx8KFM9Uy5zaWRlcik9PT1udWxsfHxTPT09dm9pZCAwP3ZvaWQgMDpTLmNvbG9yVGV4dE1lbnVTZWNvbmRhcnkscGFkZGluZ0Jsb2NrRW5kOjE2LGZvbnRTaXplOmUuZm9udFNpemUsYW5pbWF0aW9uTmFtZTpzdCxhbmltYXRpb25EdXJhdGlvbjoiLjRzIixhbmltYXRpb25UaW1pbmdGdW5jdGlvbjoiZWFzZSJ9KSksIiIuY29uY2F0KGUuY29tcG9uZW50Q2xzKS5jb25jYXQoZS5jb21wb25lbnRDbHMsIi1maXhlZCIpLHtwb3NpdGlvbjoiZml4ZWQiLGluc2V0QmxvY2tTdGFydDowLGluc2V0SW5saW5lU3RhcnQ6MCx6SW5kZXg6IjEwMCIsaGVpZ2h0OiIxMDAlIiwiJi1taXgiOntoZWlnaHQ6ImNhbGMoMTAwJSAtICIuY29uY2F0KCgoeD1lLmxheW91dCk9PT1udWxsfHx4PT09dm9pZCAwfHwoeD14LmhlYWRlcik9PT1udWxsfHx4PT09dm9pZCAwP3ZvaWQgMDp4LmhlaWdodExheW91dEhlYWRlcil8fDU2LCJweCkiKSxpbnNldEJsb2NrU3RhcnQ6IiIuY29uY2F0KCgoUD1lLmxheW91dCk9PT1udWxsfHxQPT09dm9pZCAwfHwoUD1QLmhlYWRlcik9PT1udWxsfHxQPT09dm9pZCAwP3ZvaWQgMDpQLmhlaWdodExheW91dEhlYWRlcil8fDU2LCJweCIpfX0pKX07ZnVuY3Rpb24gaGEocixlKXt2YXIgbj1lLnByb0xheW91dENvbGxhcHNlZFdpZHRoO3JldHVybigwLFBlLlhqKSgiUHJvTGF5b3V0U2lkZXJNZW51IixmdW5jdGlvbih0KXt2YXIgYT0oMCxzLlopKCgwLHMuWikoe30sdCkse30se2NvbXBvbmVudENsczoiLiIuY29uY2F0KHIpLHByb0xheW91dENvbGxhcHNlZFdpZHRoOm59KTtyZXR1cm5bbWEoYSldfSl9dmFyIHZ0PWZ1bmN0aW9uKGUpe3ZhciBuLHQ9ZS5pc01vYmlsZSxhPWUuc2lkZXJXaWR0aCxpPWUuY29sbGFwc2VkLG89ZS5vbkNvbGxhcHNlLGM9ZS5zdHlsZSxkPWUuY2xhc3NOYW1lLHY9ZS5oaWRlLG09ZS5wcmVmaXhDbHMsUz1lLmdldENvbnRhaW5lcix4PSgwLHAudXNlQ29udGV4dCkocS5MXyksUD14LnRva2VuOygwLHAudXNlRWZmZWN0KShmdW5jdGlvbigpe3Q9PT0hMCYmKG89PW51bGx8fG8oITApKX0sW3RdKTt2YXIgTj0oMCxRbi5aKShlLFsiY2xhc3NOYW1lIiwic3R5bGUiXSksRD1wLnVzZUNvbnRleHQoSGUuWlAuQ29uZmlnQ29udGV4dCksQj1ELmRpcmVjdGlvbix6PWhhKCIiLmNvbmNhdChtLCItc2lkZXIiKSx7cHJvTGF5b3V0Q29sbGFwc2VkV2lkdGg6NjR9KSxIPXoud3JhcFNTUixGPXouaGFzaElkLEw9dGUoKSgiIi5jb25jYXQobSwiLXNpZGVyIiksZCxGKTtpZih2KXJldHVybiBudWxsO3ZhciBBPSgwLFIuWCkoIWksZnVuY3Rpb24oKXtyZXR1cm4gbz09bnVsbD92b2lkIDA6byghMCl9KTtyZXR1cm4gSCh0PygwLHUuanN4KSh2YS5aLCgwLHMuWikoKDAscy5aKSh7cGxhY2VtZW50OkI9PT0icnRsIj8icmlnaHQiOiJsZWZ0IixjbGFzc05hbWU6dGUoKSgiIi5jb25jYXQobSwiLWRyYXdlci1zaWRlciIpLGQpfSxBKSx7fSx7c3R5bGU6KDAscy5aKSh7cGFkZGluZzowLGhlaWdodDoiMTAwdmgifSxjKSxvbkNsb3NlOmZ1bmN0aW9uKCl7bz09bnVsbHx8byghMCl9LG1hc2tDbG9zYWJsZTohMCxjbG9zYWJsZTohMSxnZXRDb250YWluZXI6U3x8ITEsd2lkdGg6YSxzdHlsZXM6e2JvZHk6e2hlaWdodDoiMTAwdmgiLHBhZGRpbmc6MCxkaXNwbGF5OiJmbGV4IixmbGV4RGlyZWN0aW9uOiJyb3ciLGJhY2tncm91bmRDb2xvcjoobj1QLmxheW91dCk9PT1udWxsfHxuPT09dm9pZCAwfHwobj1uLnNpZGVyKT09PW51bGx8fG49PT12b2lkIDA/dm9pZCAwOm4uY29sb3JNZW51QmFja2dyb3VuZH19LGNoaWxkcmVuOigwLHUuanN4KShsdCwoMCxzLlopKCgwLHMuWikoe30sTikse30se2lzTW9iaWxlOiEwLGNsYXNzTmFtZTpMLGNvbGxhcHNlZDp0PyExOmksc3BsaXRNZW51czohMSxvcmlnaW5Db2xsYXBzZWQ6aX0pKX0pKTooMCx1LmpzeCkobHQsKDAscy5aKSgoMCxzLlopKHtjbGFzc05hbWU6TCxvcmlnaW5Db2xsYXBzZWQ6aX0sTikse30se3N0eWxlOmN9KSkpfSxmdD1mKDc2NTA5KSxMbj1mKDE2MzA1KSxnYT1mdW5jdGlvbihlLG4sdCl7aWYodCl7dmFyIGE9KDAscG4uWikodC5rZXlzKCkpLmZpbmQoZnVuY3Rpb24obyl7dHJ5e3JldHVybiBvLnN0YXJ0c1dpdGgoImh0dHAiKT8hMTooMCxMbi5FUSkobykoZSl9Y2F0Y2goYyl7cmV0dXJuIGNvbnNvbGUubG9nKCJrZXkiLG8sYyksITF9fSk7aWYoYSlyZXR1cm4gdC5nZXQoYSl9aWYobil7dmFyIGk9T2JqZWN0LmtleXMobikuZmluZChmdW5jdGlvbihvKXt0cnl7cmV0dXJuIG8hPW51bGwmJm8uc3RhcnRzV2l0aCgiaHR0cCIpPyExOigwLExuLkVRKShvKShlKX1jYXRjaChjKXtyZXR1cm4gY29uc29sZS5sb2coImtleSIsbyxjKSwhMX19KTtpZihpKXJldHVybiBuW2ldfXJldHVybntwYXRoOiIifX0sRG49ZnVuY3Rpb24oZSxuKXt2YXIgdD1lLnBhdGhuYW1lLGE9dD09PXZvaWQgMD8iLyI6dCxpPWUuYnJlYWRjcnVtYixvPWUuYnJlYWRjcnVtYk1hcCxjPWUuZm9ybWF0TWVzc2FnZSxkPWUudGl0bGUsdj1lLm1lbnUsbT12PT09dm9pZCAwP3tsb2NhbGU6ITF9OnYsUz1uPyIiOmR8fCIiLHg9Z2EoYSxpLG8pO2lmKCF4KXJldHVybnt0aXRsZTpTLGlkOiIiLHBhZ2VOYW1lOlN9O3ZhciBQPXgubmFtZTtyZXR1cm4gbS5sb2NhbGUhPT0hMSYmeC5sb2NhbGUmJmMmJihQPWMoe2lkOngubG9jYWxlfHwiIixkZWZhdWx0TWVzc2FnZTp4Lm5hbWV9KSksUD9ufHwhZD97dGl0bGU6UCxpZDp4LmxvY2FsZXx8IiIscGFnZU5hbWU6UH06e3RpdGxlOiIiLmNvbmNhdChQLCIgLSAiKS5jb25jYXQoZCksaWQ6eC5sb2NhbGV8fCIiLHBhZ2VOYW1lOlB9Ont0aXRsZTpTLGlkOngubG9jYWxlfHwiIixwYWdlTmFtZTpTfX0sY289ZnVuY3Rpb24oZSxuKXtyZXR1cm4gRG4oZSxuKS50aXRsZX0scGE9Zig1MjY3NikseW49Zig2NzE1OSksa2U9ZigzNDE1NSkseWE9ZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gdHlwZW9mIGtlPT0idW5kZWZpbmVkIj95bi5aOigoZT1rZSk9PT1udWxsfHxrZT09PXZvaWQgMHx8KGtlPXtOT0RFX0VOVjoicHJvZHVjdGlvbiIsUFVCTElDX1BBVEg6Ii8ifSk9PT1udWxsfHxrZT09PXZvaWQgMD92b2lkIDA6a2UuQU5URF9WRVJTSU9OKXx8eW4uWn0seGE9ZnVuY3Rpb24oZSl7dmFyIG4sdCxhLGksbyxjLGQsdixtLFMseCxQLE4sRCxCLHosSCxGLEwsQSx5LEUsVixPLHcscmUsc2UsZyxtZSxULGssb2U7cmV0dXJuKG49eWEoKSkhPT1udWxsJiZuIT09dm9pZCAwJiZuLnN0YXJ0c1dpdGgoIjUiKT97fTooMCxsLlopKCgwLGwuWikoKDAsbC5aKSh7fSxlLmNvbXBvbmVudENscywoMCxsLlopKCgwLGwuWikoe3dpZHRoOiIxMDAlIixoZWlnaHQ6IjEwMCUifSwiIi5jb25jYXQoZS5wcm9Db21wb25lbnRzQ2xzLCItYmFzZS1tZW51IiksKHk9e2NvbG9yOih0PWUubGF5b3V0KT09PW51bGx8fHQ9PT12b2lkIDB8fCh0PXQuc2lkZXIpPT09bnVsbHx8dD09PXZvaWQgMD92b2lkIDA6dC5jb2xvclRleHRNZW51fSwoMCxsLlopKCgwLGwuWikoKDAsbC5aKSgoMCxsLlopKCgwLGwuWikoKDAsbC5aKSgoMCxsLlopKCgwLGwuWikoKDAsbC5aKSgoMCxsLlopKHksIiIuY29uY2F0KGUuYW50Q2xzLCItbWVudS1zdWIiKSx7YmFja2dyb3VuZENvbG9yOiJ0cmFuc3BhcmVudCFpbXBvcnRhbnQiLGNvbG9yOihhPWUubGF5b3V0KT09PW51bGx8fGE9PT12b2lkIDB8fChhPWEuc2lkZXIpPT09bnVsbHx8YT09PXZvaWQgMD92b2lkIDA6YS5jb2xvclRleHRNZW51fSksIiYgIi5jb25jYXQoZS5hbnRDbHMsIi1sYXlvdXQiKSx7YmFja2dyb3VuZENvbG9yOiJ0cmFuc3BhcmVudCIsd2lkdGg6IjEwMCUifSksIiIuY29uY2F0KGUuYW50Q2xzLCItbWVudS1zdWJtZW51LWV4cGFuZC1pY29uLCAiKS5jb25jYXQoZS5hbnRDbHMsIi1tZW51LXN1Ym1lbnUtYXJyb3ciKSx7Y29sb3I6ImluaGVyaXQifSksIiYiLmNvbmNhdChlLmFudENscywiLW1lbnUiKSwoMCxsLlopKCgwLGwuWikoe2NvbG9yOihpPWUubGF5b3V0KT09PW51bGx8fGk9PT12b2lkIDB8fChpPWkuc2lkZXIpPT09bnVsbHx8aT09PXZvaWQgMD92b2lkIDA6aS5jb2xvclRleHRNZW51fSwiIi5jb25jYXQoZS5hbnRDbHMsIi1tZW51LWl0ZW0iKSx7IioiOnt0cmFuc2l0aW9uOiJub25lICFpbXBvcnRhbnQifX0pLCIiLmNvbmNhdChlLmFudENscywiLW1lbnUtaXRlbSBhIikse2NvbG9yOiJpbmhlcml0In0pKSwiJiIuY29uY2F0KGUuYW50Q2xzLCItbWVudS1pbmxpbmUiKSwoMCxsLlopKHt9LCIiLmNvbmNhdChlLmFudENscywiLW1lbnUtc2VsZWN0ZWQ6OmFmdGVyLCIpLmNvbmNhdChlLmFudENscywiLW1lbnUtaXRlbS1zZWxlY3RlZDo6YWZ0ZXIiKSx7ZGlzcGxheToibm9uZSJ9KSksIiIuY29uY2F0KGUuYW50Q2xzLCItbWVudS1zdWIgIikuY29uY2F0KGUuYW50Q2xzLCItbWVudS1pbmxpbmUiKSx7YmFja2dyb3VuZENvbG9yOiJ0cmFuc3BhcmVudCFpbXBvcnRhbnQifSksIiIuY29uY2F0KGUuYW50Q2xzLGAtbWVudS1pdGVtOmFjdGl2ZSwgCisgICAgICAgIGApLmNvbmNhdChlLmFudENscywiLW1lbnUtc3VibWVudS10aXRsZTphY3RpdmUiKSx7YmFja2dyb3VuZENvbG9yOiJ0cmFuc3BhcmVudCFpbXBvcnRhbnQifSksIiYiLmNvbmNhdChlLmFudENscywiLW1lbnUtbGlnaHQiKSwoMCxsLlopKHt9LCIiLmNvbmNhdChlLmFudENscyxgLW1lbnUtaXRlbTpob3ZlciwgCisgICAgICAgICAgICBgKS5jb25jYXQoZS5hbnRDbHMsYC1tZW51LWl0ZW0tYWN0aXZlLAorICAgICAgICAgICAgYCkuY29uY2F0KGUuYW50Q2xzLGAtbWVudS1zdWJtZW51LWFjdGl2ZSwgCisgICAgICAgICAgICBgKS5jb25jYXQoZS5hbnRDbHMsIi1tZW51LXN1Ym1lbnUtdGl0bGU6aG92ZXIiKSwoMCxsLlopKHtjb2xvcjoobz1lLmxheW91dCk9PT1udWxsfHxvPT09dm9pZCAwfHwobz1vLnNpZGVyKT09PW51bGx8fG89PT12b2lkIDA/dm9pZCAwOm8uY29sb3JUZXh0TWVudUFjdGl2ZSxib3JkZXJSYWRpdXM6ZS5ib3JkZXJSYWRpdXN9LCIiLmNvbmNhdChlLmFudENscywiLW1lbnUtc3VibWVudS1hcnJvdyIpLHtjb2xvcjooYz1lLmxheW91dCk9PT1udWxsfHxjPT09dm9pZCAwfHwoYz1jLnNpZGVyKT09PW51bGx8fGM9PT12b2lkIDA/dm9pZCAwOmMuY29sb3JUZXh0TWVudUFjdGl2ZX0pKSksIiYiLmNvbmNhdChlLmFudENscywiLW1lbnU6bm90KCIpLmNvbmNhdChlLmFudENscywiLW1lbnUtaG9yaXpvbnRhbCkiKSwoMCxsLlopKCgwLGwuWikoe30sIiIuY29uY2F0KGUuYW50Q2xzLCItbWVudS1pdGVtLXNlbGVjdGVkIikse2JhY2tncm91bmRDb2xvcjooZD1lLmxheW91dCk9PT1udWxsfHxkPT09dm9pZCAwfHwoZD1kLnNpZGVyKT09PW51bGx8fGQ9PT12b2lkIDA/dm9pZCAwOmQuY29sb3JCZ01lbnVJdGVtU2VsZWN0ZWQsYm9yZGVyUmFkaXVzOmUuYm9yZGVyUmFkaXVzfSksIiIuY29uY2F0KGUuYW50Q2xzLGAtbWVudS1pdGVtOmhvdmVyLCAKKyAgICAgICAgICAgIGApLmNvbmNhdChlLmFudENscyxgLW1lbnUtaXRlbS1hY3RpdmUsCisgICAgICAgICAgICBgKS5jb25jYXQoZS5hbnRDbHMsIi1tZW51LXN1Ym1lbnUtdGl0bGU6aG92ZXIiKSwoMCxsLlopKHtjb2xvcjoodj1lLmxheW91dCk9PT1udWxsfHx2PT09dm9pZCAwfHwodj12LnNpZGVyKT09PW51bGx8fHY9PT12b2lkIDA/dm9pZCAwOnYuY29sb3JUZXh0TWVudUFjdGl2ZSxib3JkZXJSYWRpdXM6ZS5ib3JkZXJSYWRpdXMsYmFja2dyb3VuZENvbG9yOiIiLmNvbmNhdCgobT1lLmxheW91dCk9PT1udWxsfHxtPT09dm9pZCAwfHwobT1tLmhlYWRlcik9PT1udWxsfHxtPT09dm9pZCAwP3ZvaWQgMDptLmNvbG9yQmdNZW51SXRlbUhvdmVyLCIgIWltcG9ydGFudCIpfSwiIi5jb25jYXQoZS5hbnRDbHMsIi1tZW51LXN1Ym1lbnUtYXJyb3ciKSx7Y29sb3I6KFM9ZS5sYXlvdXQpPT09bnVsbHx8Uz09PXZvaWQgMHx8KFM9Uy5zaWRlcik9PT1udWxsfHxTPT09dm9pZCAwP3ZvaWQgMDpTLmNvbG9yVGV4dE1lbnVBY3RpdmV9KSkpLCIiLmNvbmNhdChlLmFudENscywiLW1lbnUtaXRlbS1zZWxlY3RlZCIpLHtjb2xvcjooeD1lLmxheW91dCk9PT1udWxsfHx4PT09dm9pZCAwfHwoeD14LnNpZGVyKT09PW51bGx8fHg9PT12b2lkIDA/dm9pZCAwOnguY29sb3JUZXh0TWVudVNlbGVjdGVkfSksKDAsbC5aKSgoMCxsLlopKCgwLGwuWikoKDAsbC5aKSgoMCxsLlopKHksIiIuY29uY2F0KGUuYW50Q2xzLCItbWVudS1zdWJtZW51LXNlbGVjdGVkIikse2NvbG9yOihQPWUubGF5b3V0KT09PW51bGx8fFA9PT12b2lkIDB8fChQPVAuc2lkZXIpPT09bnVsbHx8UD09PXZvaWQgMD92b2lkIDA6UC5jb2xvclRleHRNZW51U2VsZWN0ZWR9KSwiJiIuY29uY2F0KGUuYW50Q2xzLCItbWVudTpub3QoIikuY29uY2F0KGUuYW50Q2xzLCItbWVudS1pbmxpbmUpICIpLmNvbmNhdChlLmFudENscywiLW1lbnUtc3VibWVudS1vcGVuIikse2NvbG9yOihOPWUubGF5b3V0KT09PW51bGx8fE49PT12b2lkIDB8fChOPU4uc2lkZXIpPT09bnVsbHx8Tj09PXZvaWQgMD92b2lkIDA6Ti5jb2xvclRleHRNZW51U2VsZWN0ZWR9KSwiJiIuY29uY2F0KGUuYW50Q2xzLCItbWVudS12ZXJ0aWNhbCIpLCgwLGwuWikoe30sIiIuY29uY2F0KGUuYW50Q2xzLCItbWVudS1zdWJtZW51LXNlbGVjdGVkIikse2JvcmRlclJhZGl1czplLmJvcmRlclJhZGl1cyxjb2xvcjooRD1lLmxheW91dCk9PT1udWxsfHxEPT09dm9pZCAwfHwoRD1ELnNpZGVyKT09PW51bGx8fEQ9PT12b2lkIDA/dm9pZCAwOkQuY29sb3JUZXh0TWVudVNlbGVjdGVkfSkpLCIiLmNvbmNhdChlLmFudENscywiLW1lbnUtc3VibWVudTpob3ZlciA+ICIpLmNvbmNhdChlLmFudENscywiLW1lbnUtc3VibWVudS10aXRsZSA+ICIpLmNvbmNhdChlLmFudENscywiLW1lbnUtc3VibWVudS1hcnJvdyIpLHtjb2xvcjooQj1lLmxheW91dCk9PT1udWxsfHxCPT09dm9pZCAwfHwoQj1CLnNpZGVyKT09PW51bGx8fEI9PT12b2lkIDA/dm9pZCAwOkIuY29sb3JUZXh0TWVudUFjdGl2ZX0pLCImIi5jb25jYXQoZS5hbnRDbHMsIi1tZW51LWhvcml6b250YWwiKSwoMCxsLlopKCgwLGwuWikoKDAsbC5aKSgoMCxsLlopKHt9LCIiLmNvbmNhdChlLmFudENscyxgLW1lbnUtaXRlbTpob3ZlciwKKyAgICAgICAgICBgKS5jb25jYXQoZS5hbnRDbHMsYC1tZW51LXN1Ym1lbnU6aG92ZXIsCisgICAgICAgICAgYCkuY29uY2F0KGUuYW50Q2xzLGAtbWVudS1pdGVtLWFjdGl2ZSwKKyAgICAgICAgICBgKS5jb25jYXQoZS5hbnRDbHMsIi1tZW51LXN1Ym1lbnUtYWN0aXZlIikse2JvcmRlclJhZGl1czo0LHRyYW5zaXRpb246Im5vbmUiLGNvbG9yOih6PWUubGF5b3V0KT09PW51bGx8fHo9PT12b2lkIDB8fCh6PXouaGVhZGVyKT09PW51bGx8fHo9PT12b2lkIDA/dm9pZCAwOnouY29sb3JUZXh0TWVudUFjdGl2ZSxiYWNrZ3JvdW5kQ29sb3I6IiIuY29uY2F0KChIPWUubGF5b3V0KT09PW51bGx8fEg9PT12b2lkIDB8fChIPUguaGVhZGVyKT09PW51bGx8fEg9PT12b2lkIDA/dm9pZCAwOkguY29sb3JCZ01lbnVJdGVtSG92ZXIsIiAhaW1wb3J0YW50Iil9KSwiIi5jb25jYXQoZS5hbnRDbHMsYC1tZW51LWl0ZW0tb3BlbiwKKyAgICAgICAgICBgKS5jb25jYXQoZS5hbnRDbHMsYC1tZW51LXN1Ym1lbnUtb3BlbiwKKyAgICAgICAgICBgKS5jb25jYXQoZS5hbnRDbHMsYC1tZW51LWl0ZW0tc2VsZWN0ZWQsCisgICAgICAgICAgYCkuY29uY2F0KGUuYW50Q2xzLCItbWVudS1zdWJtZW51LXNlbGVjdGVkIiksKDAsbC5aKSh7YmFja2dyb3VuZENvbG9yOihGPWUubGF5b3V0KT09PW51bGx8fEY9PT12b2lkIDB8fChGPUYuaGVhZGVyKT09PW51bGx8fEY9PT12b2lkIDA/dm9pZCAwOkYuY29sb3JCZ01lbnVJdGVtU2VsZWN0ZWQsYm9yZGVyUmFkaXVzOmUuYm9yZGVyUmFkaXVzLHRyYW5zaXRpb246Im5vbmUiLGNvbG9yOiIiLmNvbmNhdCgoTD1lLmxheW91dCk9PT1udWxsfHxMPT09dm9pZCAwfHwoTD1MLmhlYWRlcik9PT1udWxsfHxMPT09dm9pZCAwP3ZvaWQgMDpMLmNvbG9yVGV4dE1lbnVTZWxlY3RlZCwiICFpbXBvcnRhbnQiKX0sIiIuY29uY2F0KGUuYW50Q2xzLCItbWVudS1zdWJtZW51LWFycm93Iikse2NvbG9yOiIiLmNvbmNhdCgoQT1lLmxheW91dCk9PT1udWxsfHxBPT09dm9pZCAwfHwoQT1BLmhlYWRlcik9PT1udWxsfHxBPT09dm9pZCAwP3ZvaWQgMDpBLmNvbG9yVGV4dE1lbnVTZWxlY3RlZCwiICFpbXBvcnRhbnQiKX0pKSwiPiAiLmNvbmNhdChlLmFudENscywiLW1lbnUtaXRlbSwgPiAiKS5jb25jYXQoZS5hbnRDbHMsIi1tZW51LXN1Ym1lbnUiKSx7cGFkZGluZ0lubGluZToxNixtYXJnaW5JbmxpbmU6NH0pLCI+ICIuY29uY2F0KGUuYW50Q2xzLCItbWVudS1pdGVtOjphZnRlciwgPiAiKS5jb25jYXQoZS5hbnRDbHMsIi1tZW51LXN1Ym1lbnU6OmFmdGVyIikse2Rpc3BsYXk6Im5vbmUifSkpKSksIiIuY29uY2F0KGUucHJvQ29tcG9uZW50c0NscywiLXRvcC1uYXYtaGVhZGVyLWJhc2UtbWVudSIpLCgwLGwuWikoKDAsbC5aKSh7fSwiJiIuY29uY2F0KGUuYW50Q2xzLCItbWVudSIpLCgwLGwuWikoe2NvbG9yOihFPWUubGF5b3V0KT09PW51bGx8fEU9PT12b2lkIDB8fChFPUUuaGVhZGVyKT09PW51bGx8fEU9PT12b2lkIDA/dm9pZCAwOkUuY29sb3JUZXh0TWVudX0sIiIuY29uY2F0KGUuYW50Q2xzLCItbWVudS1pdGVtIGEiKSx7Y29sb3I6ImluaGVyaXQifSkpLCImIi5jb25jYXQoZS5hbnRDbHMsIi1tZW51LWxpZ2h0IiksKDAsbC5aKSgoMCxsLlopKHt9LCIiLmNvbmNhdChlLmFudENscyxgLW1lbnUtaXRlbTpob3ZlciwgCisgICAgICAgICAgICBgKS5jb25jYXQoZS5hbnRDbHMsYC1tZW51LWl0ZW0tYWN0aXZlLAorICAgICAgICAgICAgYCkuY29uY2F0KGUuYW50Q2xzLGAtbWVudS1zdWJtZW51LWFjdGl2ZSwgCisgICAgICAgICAgICBgKS5jb25jYXQoZS5hbnRDbHMsIi1tZW51LXN1Ym1lbnUtdGl0bGU6aG92ZXIiKSwoMCxsLlopKHtjb2xvcjooVj1lLmxheW91dCk9PT1udWxsfHxWPT09dm9pZCAwfHwoVj1WLmhlYWRlcik9PT1udWxsfHxWPT09dm9pZCAwP3ZvaWQgMDpWLmNvbG9yVGV4dE1lbnVBY3RpdmUsYm9yZGVyUmFkaXVzOmUuYm9yZGVyUmFkaXVzLHRyYW5zaXRpb246Im5vbmUiLGJhY2tncm91bmRDb2xvcjooTz1lLmxheW91dCk9PT1udWxsfHxPPT09dm9pZCAwfHwoTz1PLmhlYWRlcik9PT1udWxsfHxPPT09dm9pZCAwP3ZvaWQgMDpPLmNvbG9yQmdNZW51SXRlbVNlbGVjdGVkfSwiIi5jb25jYXQoZS5hbnRDbHMsIi1tZW51LXN1Ym1lbnUtYXJyb3ciKSx7Y29sb3I6KHc9ZS5sYXlvdXQpPT09bnVsbHx8dz09PXZvaWQgMHx8KHc9dy5oZWFkZXIpPT09bnVsbHx8dz09PXZvaWQgMD92b2lkIDA6dy5jb2xvclRleHRNZW51QWN0aXZlfSkpLCIiLmNvbmNhdChlLmFudENscywiLW1lbnUtaXRlbS1zZWxlY3RlZCIpLHtjb2xvcjoocmU9ZS5sYXlvdXQpPT09bnVsbHx8cmU9PT12b2lkIDB8fChyZT1yZS5oZWFkZXIpPT09bnVsbHx8cmU9PT12b2lkIDA/dm9pZCAwOnJlLmNvbG9yVGV4dE1lbnVTZWxlY3RlZCxib3JkZXJSYWRpdXM6ZS5ib3JkZXJSYWRpdXMsYmFja2dyb3VuZENvbG9yOihzZT1lLmxheW91dCk9PT1udWxsfHxzZT09PXZvaWQgMHx8KHNlPXNlLmhlYWRlcik9PT1udWxsfHxzZT09PXZvaWQgMD92b2lkIDA6c2UuY29sb3JCZ01lbnVJdGVtU2VsZWN0ZWR9KSkpKSwiIi5jb25jYXQoZS5hbnRDbHMsIi1tZW51LXN1YiIpLmNvbmNhdChlLmFudENscywiLW1lbnUtaW5saW5lIikse2JhY2tncm91bmRDb2xvcjoidHJhbnNwYXJlbnQhaW1wb3J0YW50In0pLCIiLmNvbmNhdChlLmFudENscywiLW1lbnUtc3VibWVudS1wb3B1cCIpLCgwLGwuWikoKDAsbC5aKSgoMCxsLlopKCgwLGwuWikoe2JhY2tncm91bmRDb2xvcjoicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQyKSIsIi13ZWJraXQtYmFja2Ryb3AtZmlsdGVyIjoiYmx1cig4cHgpIixiYWNrZHJvcEZpbHRlcjoiYmx1cig4cHgpIn0sIiIuY29uY2F0KGUuYW50Q2xzLCItbWVudSIpLCgwLGwuWikoe2JhY2tncm91bmQ6InRyYW5zcGFyZW50ICFpbXBvcnRhbnQiLGJhY2tncm91bmRDb2xvcjoidHJhbnNwYXJlbnQgIWltcG9ydGFudCJ9LCIiLmNvbmNhdChlLmFudENscyxgLW1lbnUtaXRlbTphY3RpdmUsIAorICAgICAgICBgKS5jb25jYXQoZS5hbnRDbHMsIi1tZW51LXN1Ym1lbnUtdGl0bGU6YWN0aXZlIikse2JhY2tncm91bmRDb2xvcjoidHJhbnNwYXJlbnQhaW1wb3J0YW50In0pKSwiIi5jb25jYXQoZS5hbnRDbHMsIi1tZW51LWl0ZW0tc2VsZWN0ZWQiKSx7Y29sb3I6KGc9ZS5sYXlvdXQpPT09bnVsbHx8Zz09PXZvaWQgMHx8KGc9Zy5zaWRlcik9PT1udWxsfHxnPT09dm9pZCAwP3ZvaWQgMDpnLmNvbG9yVGV4dE1lbnVTZWxlY3RlZH0pLCIiLmNvbmNhdChlLmFudENscywiLW1lbnUtc3VibWVudS1zZWxlY3RlZCIpLHtjb2xvcjoobWU9ZS5sYXlvdXQpPT09bnVsbHx8bWU9PT12b2lkIDB8fChtZT1tZS5zaWRlcik9PT1udWxsfHxtZT09PXZvaWQgMD92b2lkIDA6bWUuY29sb3JUZXh0TWVudVNlbGVjdGVkfSksIiIuY29uY2F0KGUuYW50Q2xzLCItbWVudTpub3QoIikuY29uY2F0KGUuYW50Q2xzLCItbWVudS1ob3Jpem9udGFsKSIpLCgwLGwuWikoKDAsbC5aKSh7fSwiIi5jb25jYXQoZS5hbnRDbHMsIi1tZW51LWl0ZW0tc2VsZWN0ZWQiKSx7YmFja2dyb3VuZENvbG9yOiJyZ2JhKDAsIDAsIDAsIDAuMDQpIixib3JkZXJSYWRpdXM6ZS5ib3JkZXJSYWRpdXMsY29sb3I6KFQ9ZS5sYXlvdXQpPT09bnVsbHx8VD09PXZvaWQgMHx8KFQ9VC5zaWRlcik9PT1udWxsfHxUPT09dm9pZCAwP3ZvaWQgMDpULmNvbG9yVGV4dE1lbnVTZWxlY3RlZH0pLCIiLmNvbmNhdChlLmFudENscyxgLW1lbnUtaXRlbTpob3ZlciwgCisgICAgICAgICAgYCkuY29uY2F0KGUuYW50Q2xzLGAtbWVudS1pdGVtLWFjdGl2ZSwKKyAgICAgICAgICBgKS5jb25jYXQoZS5hbnRDbHMsIi1tZW51LXN1Ym1lbnUtdGl0bGU6aG92ZXIiKSwoMCxsLlopKHtjb2xvcjooaz1lLmxheW91dCk9PT1udWxsfHxrPT09dm9pZCAwfHwoaz1rLnNpZGVyKT09PW51bGx8fGs9PT12b2lkIDA/dm9pZCAwOmsuY29sb3JUZXh0TWVudUFjdGl2ZSxib3JkZXJSYWRpdXM6ZS5ib3JkZXJSYWRpdXN9LCIiLmNvbmNhdChlLmFudENscywiLW1lbnUtc3VibWVudS1hcnJvdyIpLHtjb2xvcjoob2U9ZS5sYXlvdXQpPT09bnVsbHx8b2U9PT12b2lkIDB8fChvZT1vZS5zaWRlcik9PT1udWxsfHxvZT09PXZvaWQgMD92b2lkIDA6b2UuY29sb3JUZXh0TWVudUFjdGl2ZX0pKSkpfSxDYT1mdW5jdGlvbihlKXt2YXIgbix0LGEsaTtyZXR1cm4oMCxsLlopKCgwLGwuWikoe30sIiIuY29uY2F0KGUuYW50Q2xzLCItbGF5b3V0Iikse2JhY2tncm91bmRDb2xvcjoidHJhbnNwYXJlbnQgIWltcG9ydGFudCJ9KSxlLmNvbXBvbmVudENscywoMCxsLlopKCgwLGwuWikoKDAsbC5aKSgoMCxsLlopKHt9LCImICIuY29uY2F0KGUuYW50Q2xzLCItbGF5b3V0Iikse2Rpc3BsYXk6ImZsZXgiLGJhY2tncm91bmRDb2xvcjoidHJhbnNwYXJlbnQiLHdpZHRoOiIxMDAlIn0pLCIiLmNvbmNhdChlLmNvbXBvbmVudENscywiLWNvbnRlbnQiKSx7ZGlzcGxheToiZmxleCIsZmxleERpcmVjdGlvbjoiY29sdW1uIix3aWR0aDoiMTAwJSIsYmFja2dyb3VuZENvbG9yOigobj1lLmxheW91dCk9PT1udWxsfHxuPT09dm9pZCAwfHwobj1uLnBhZ2VDb250YWluZXIpPT09bnVsbHx8bj09PXZvaWQgMD92b2lkIDA6bi5jb2xvckJnUGFnZUNvbnRhaW5lcil8fCJ0cmFuc3BhcmVudCIscG9zaXRpb246InJlbGF0aXZlIixwYWRkaW5nQmxvY2s6KHQ9ZS5sYXlvdXQpPT09bnVsbHx8dD09PXZvaWQgMHx8KHQ9dC5wYWdlQ29udGFpbmVyKT09PW51bGx8fHQ9PT12b2lkIDA/dm9pZCAwOnQucGFkZGluZ0Jsb2NrUGFnZUNvbnRhaW5lckNvbnRlbnQscGFkZGluZ0lubGluZTooYT1lLmxheW91dCk9PT1udWxsfHxhPT09dm9pZCAwfHwoYT1hLnBhZ2VDb250YWluZXIpPT09bnVsbHx8YT09PXZvaWQgMD92b2lkIDA6YS5wYWRkaW5nSW5saW5lUGFnZUNvbnRhaW5lckNvbnRlbnQsIiYtaGFzLXBhZ2UtY29udGFpbmVyIjp7cGFkZGluZzowfX0pLCIiLmNvbmNhdChlLmNvbXBvbmVudENscywiLWNvbnRhaW5lciIpLHt3aWR0aDoiMTAwJSIsZGlzcGxheToiZmxleCIsZmxleERpcmVjdGlvbjoiY29sdW1uIixtaW5XaWR0aDowLG1pbkhlaWdodDowLGJhY2tncm91bmRDb2xvcjoidHJhbnNwYXJlbnQifSksIiIuY29uY2F0KGUuY29tcG9uZW50Q2xzLCItYmctbGlzdCIpLHtwb2ludGVyRXZlbnRzOiJub25lIixwb3NpdGlvbjoiZml4ZWQiLG92ZXJmbG93OiJoaWRkZW4iLGluc2V0QmxvY2tTdGFydDowLGluc2V0SW5saW5lU3RhcnQ6MCx6SW5kZXg6MCxoZWlnaHQ6IjEwMCUiLHdpZHRoOiIxMDAlIixiYWNrZ3JvdW5kOihpPWUubGF5b3V0KT09PW51bGx8fGk9PT12b2lkIDA/dm9pZCAwOmkuYmdMYXlvdXR9KSl9O2Z1bmN0aW9uIGJhKHIpe3JldHVybigwLFBlLlhqKSgiUHJvTGF5b3V0IixmdW5jdGlvbihlKXt2YXIgbj0oMCxzLlopKCgwLHMuWikoe30sZSkse30se2NvbXBvbmVudENsczoiLiIuY29uY2F0KHIpfSk7cmV0dXJuW0NhKG4pLHhhKG4pXX0pfWZ1bmN0aW9uIFNhKHIpe2lmKCFyfHxyPT09Ii8iKXJldHVyblsiLyJdO3ZhciBlPXIuc3BsaXQoIi8iKS5maWx0ZXIoZnVuY3Rpb24obil7cmV0dXJuIG59KTtyZXR1cm4gZS5tYXAoZnVuY3Rpb24obix0KXtyZXR1cm4iLyIuY29uY2F0KGUuc2xpY2UoMCx0KzEpLmpvaW4oIi8iKSl9KX12YXIgUWU9ZigzNDE1NSksWmE9ZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gdHlwZW9mIFFlPT0idW5kZWZpbmVkIj95bi5aOigoZT1RZSk9PT1udWxsfHxRZT09PXZvaWQgMHx8KFFlPXtOT0RFX0VOVjoicHJvZHVjdGlvbiIsUFVCTElDX1BBVEg6Ii8ifSk9PT1udWxsfHxRZT09PXZvaWQgMD92b2lkIDA6UWUuQU5URF9WRVJTSU9OKXx8eW4uWn0sTWE9ZnVuY3Rpb24oZSxuLHQpe3ZhciBhPWUsaT1hLmJyZWFkY3J1bWJOYW1lLG89YS50aXRsZSxjPWEucGF0aCxkPXQuZmluZEluZGV4KGZ1bmN0aW9uKHYpe3JldHVybiB2LmxpbmtQYXRoPT09ZS5wYXRofSk9PT10Lmxlbmd0aC0xO3JldHVybiBkPygwLHUuanN4KSgic3BhbiIse2NoaWxkcmVuOm98fGl9KTooMCx1LmpzeCkoInNwYW4iLHtvbkNsaWNrOmM/ZnVuY3Rpb24oKXtyZXR1cm4gbG9jYXRpb24uaHJlZj1jfTp2b2lkIDAsY2hpbGRyZW46b3x8aX0pfSxJYT1mdW5jdGlvbihlLG4pe3ZhciB0PW4uZm9ybWF0TWVzc2FnZSxhPW4ubWVudTtyZXR1cm4gZS5sb2NhbGUmJnQmJihhPT1udWxsP3ZvaWQgMDphLmxvY2FsZSkhPT0hMT90KHtpZDplLmxvY2FsZSxkZWZhdWx0TWVzc2FnZTplLm5hbWV9KTplLm5hbWV9LFJhPWZ1bmN0aW9uKGUsbil7dmFyIHQ9ZS5nZXQobik7aWYoIXQpe3ZhciBhPUFycmF5LmZyb20oZS5rZXlzKCkpfHxbXSxpPWEuZmluZChmdW5jdGlvbihvKXt0cnl7cmV0dXJuIG8hPW51bGwmJm8uc3RhcnRzV2l0aCgiaHR0cCIpPyExOigwLExuLkVRKShvLnJlcGxhY2UoIj8iLCIiKSkobil9Y2F0Y2goYyl7cmV0dXJuIGNvbnNvbGUubG9nKCJwYXRoIixvLGMpLCExfX0pO2kmJih0PWUuZ2V0KGkpKX1yZXR1cm4gdHx8e3BhdGg6IiJ9fSxUYT1mdW5jdGlvbihlKXt2YXIgbj1lLmxvY2F0aW9uLHQ9ZS5icmVhZGNydW1iTWFwO3JldHVybntsb2NhdGlvbjpuLGJyZWFkY3J1bWJNYXA6dH19LFBhPWZ1bmN0aW9uKGUsbix0KXt2YXIgYT1TYShlPT1udWxsP3ZvaWQgMDplLnBhdGhuYW1lKSxpPWEubWFwKGZ1bmN0aW9uKG8pe3ZhciBjPVJhKG4sbyksZD1JYShjLHQpLHY9Yy5oaWRlSW5CcmVhZGNydW1iO3JldHVybiBkJiYhdj97bGlua1BhdGg6byxicmVhZGNydW1iTmFtZTpkLHRpdGxlOmQsY29tcG9uZW50OmMuY29tcG9uZW50fTp7bGlua1BhdGg6IiIsYnJlYWRjcnVtYk5hbWU6IiIsdGl0bGU6IiJ9fSkuZmlsdGVyKGZ1bmN0aW9uKG8pe3JldHVybiBvJiZvLmxpbmtQYXRofSk7cmV0dXJuIGl9LEJhPWZ1bmN0aW9uKGUpe3ZhciBuPVRhKGUpLHQ9bi5sb2NhdGlvbixhPW4uYnJlYWRjcnVtYk1hcDtyZXR1cm4gdCYmdC5wYXRobmFtZSYmYT9QYSh0LGEsZSk6W119LF9hPWZ1bmN0aW9uKGUsbil7dmFyIHQ9ZS5icmVhZGNydW1iUmVuZGVyLGE9ZS5pdGVtUmVuZGVyLGk9bi5icmVhZGNydW1iUHJvcHN8fHt9LG89aS5taW5MZW5ndGgsYz1vPT09dm9pZCAwPzI6byxkPUJhKGUpLHY9ZnVuY3Rpb24oeCl7Zm9yKHZhciBQPWF8fE1hLE49YXJndW1lbnRzLmxlbmd0aCxEPW5ldyBBcnJheShOPjE/Ti0xOjApLEI9MTtCPE47QisrKURbQi0xXT1hcmd1bWVudHNbQl07cmV0dXJuIFA9PW51bGw/dm9pZCAwOlAuYXBwbHkodm9pZCAwLFsoMCxzLlopKCgwLHMuWikoe30seCkse30se3BhdGg6eC5saW5rUGF0aHx8eC5wYXRofSldLmNvbmNhdChEKSl9LG09ZDtyZXR1cm4gdCYmKG09dChtfHxbXSl8fHZvaWQgMCksKG0mJm0ubGVuZ3RoPGN8fHQ9PT0hMSkmJihtPXZvaWQgMCksKDAsai5uKShaYSgpLCI1LjMuMCIpPi0xP3tpdGVtczptLGl0ZW1SZW5kZXI6dn06e3JvdXRlczptLGl0ZW1SZW5kZXI6dn19O2Z1bmN0aW9uIEVhKHIpe3JldHVybigwLHBuLlopKHIpLnJlZHVjZShmdW5jdGlvbihlLG4pe3ZhciB0PSgwLEcuWikobiwyKSxhPXRbMF0saT10WzFdO3JldHVybiBlW2FdPWksZX0se30pfXZhciBqYT1mdW5jdGlvbiByKGUsbix0LGEpe3ZhciBpPWFyKGUsKG49PW51bGw/dm9pZCAwOm4ubG9jYWxlKXx8ITEsdCwhMCksbz1pLm1lbnVEYXRhLGM9aS5icmVhZGNydW1iO3JldHVybiBhP3IoYShvKSxuLHQsdm9pZCAwKTp7YnJlYWRjcnVtYjpFYShjKSxicmVhZGNydW1iTWFwOmMsbWVudURhdGE6b319LHdhPWYoNzEwMDIpLExhPWYoNTE4MTIpLERhPWZ1bmN0aW9uKGUpe3ZhciBuPSgwLHAudXNlU3RhdGUpKHt9KSx0PSgwLEcuWikobiwyKSxhPXRbMF0saT10WzFdO3JldHVybigwLHAudXNlRWZmZWN0KShmdW5jdGlvbigpe2koKDAsTGEuWSkoe2xheW91dDooMCx3YS5aKShlLmxheW91dCkhPT0ib2JqZWN0Ij9lLmxheW91dDp2b2lkIDAsbmF2VGhlbWU6ZS5uYXZUaGVtZSxtZW51UmVuZGVyOmUubWVudVJlbmRlcixmb290ZXJSZW5kZXI6ZS5mb290ZXJSZW5kZXIsbWVudUhlYWRlclJlbmRlcjplLm1lbnVIZWFkZXJSZW5kZXIsaGVhZGVyUmVuZGVyOmUuaGVhZGVyUmVuZGVyLGZpeFNpZGVyYmFyOmUuZml4U2lkZXJiYXJ9KSl9LFtlLmxheW91dCxlLm5hdlRoZW1lLGUubWVudVJlbmRlcixlLmZvb3RlclJlbmRlcixlLm1lbnVIZWFkZXJSZW5kZXIsZS5oZWFkZXJSZW5kZXIsZS5maXhTaWRlcmJhcl0pLGF9LE5hPVsiaWQiLCJkZWZhdWx0TWVzc2FnZSJdLEFhPVsiZml4U2lkZXJiYXIiLCJuYXZUaGVtZSIsImxheW91dCJdLG10PTAsT2E9ZnVuY3Rpb24oZSxuKXt2YXIgdDtyZXR1cm4gZS5oZWFkZXJSZW5kZXI9PT0hMXx8ZS5wdXJlP251bGw6KDAsdS5qc3gpKGRhLCgwLHMuWikoKDAscy5aKSh7bWF0Y2hNZW51S2V5czpufSxlKSx7fSx7c3R5bGlzaDoodD1lLnN0eWxpc2gpPT09bnVsbHx8dD09PXZvaWQgMD92b2lkIDA6dC5oZWFkZXJ9KSl9LEhhPWZ1bmN0aW9uKGUpe3JldHVybiBlLmZvb3RlclJlbmRlcj09PSExfHxlLnB1cmU/bnVsbDplLmZvb3RlclJlbmRlcj9lLmZvb3RlclJlbmRlcigoMCxzLlopKHt9LGUpLCgwLHUuanN4KSh5ci5xLHt9KSk6bnVsbH0sJGE9ZnVuY3Rpb24oZSxuKXt2YXIgdCxhPWUubGF5b3V0LGk9ZS5pc01vYmlsZSxvPWUuc2VsZWN0ZWRLZXlzLGM9ZS5vcGVuS2V5cyxkPWUuc3BsaXRNZW51cyx2PWUuc3VwcHJlc3NTaWRlcldoZW5NZW51RW1wdHksbT1lLm1lbnVSZW5kZXI7aWYoZS5tZW51UmVuZGVyPT09ITF8fGUucHVyZSlyZXR1cm4gbnVsbDt2YXIgUz1lLm1lbnVEYXRhO2lmKGQmJihjIT09ITF8fGE9PT0ibWl4IikmJiFpKXt2YXIgeD1vfHxuLFA9KDAsRy5aKSh4LDEpLE49UFswXTtpZihOKXt2YXIgRDtTPSgoRD1lLm1lbnVEYXRhKT09PW51bGx8fEQ9PT12b2lkIDB8fChEPUQuZmluZChmdW5jdGlvbihGKXtyZXR1cm4gRi5rZXk9PT1OfSkpPT09bnVsbHx8RD09PXZvaWQgMD92b2lkIDA6RC5jaGlsZHJlbil8fFtdfWVsc2UgUz1bXX12YXIgQj0oMCxsbi5RWCkoU3x8W10pO2lmKEImJihCPT1udWxsP3ZvaWQgMDpCLmxlbmd0aCk8MSYmKGR8fHYpKXJldHVybiBudWxsO2lmKGE9PT0idG9wIiYmIWkpe3ZhciB6O3JldHVybigwLHUuanN4KSh2dCwoMCxzLlopKCgwLHMuWikoe21hdGNoTWVudUtleXM6bn0sZSkse30se2hpZGU6ITAsc3R5bGlzaDooej1lLnN0eWxpc2gpPT09bnVsbHx8ej09PXZvaWQgMD92b2lkIDA6ei5zaWRlcn0pKX12YXIgSD0oMCx1LmpzeCkodnQsKDAscy5aKSgoMCxzLlopKHttYXRjaE1lbnVLZXlzOm59LGUpLHt9LHttZW51RGF0YTpCLHN0eWxpc2g6KHQ9ZS5zdHlsaXNoKT09PW51bGx8fHQ9PT12b2lkIDA/dm9pZCAwOnQuc2lkZXJ9KSk7cmV0dXJuIG0/bShlLEgpOkh9LFdhPWZ1bmN0aW9uKGUsbil7dmFyIHQ9bi5wYWdlVGl0bGVSZW5kZXIsYT1EbihlKTtpZih0PT09ITEpcmV0dXJue3RpdGxlOm4udGl0bGV8fCIiLGlkOiIiLHBhZ2VOYW1lOiIifTtpZih0KXt2YXIgaT10KGUsYS50aXRsZSxhKTtpZih0eXBlb2YgaT09InN0cmluZyIpcmV0dXJuIERuKCgwLHMuWikoKDAscy5aKSh7fSxhKSx7fSx7dGl0bGU6aX0pKTsoMCx2ci5aUCkodHlwZW9mIGk9PSJzdHJpbmciLCJwcm8tbGF5b3V0OiByZW5kZXJQYWdlVGl0bGUgcmV0dXJuIHZhbHVlIHNob3VsZCBiZSBhIHN0cmluZyIpfXJldHVybiBhfSx6YT1mdW5jdGlvbihlLG4sdCl7cmV0dXJuIGU/bj82NDp0OjB9LEZhPWZ1bmN0aW9uKGUpe3ZhciBuLHQsYSxpLG8sYyxkLHYsbSxTLHgsUCxOLEQsQj1lfHx7fSx6PUIuY2hpbGRyZW4sSD1CLm9uQ29sbGFwc2UsRj1CLmxvY2F0aW9uLEw9Rj09PXZvaWQgMD97cGF0aG5hbWU6Ii8ifTpGLEE9Qi5jb250ZW50U3R5bGUseT1CLnJvdXRlLEU9Qi5kZWZhdWx0Q29sbGFwc2VkLFY9Qi5zdHlsZSxPPUIuc2lkZXJXaWR0aCx3PUIubWVudSxyZT1CLnNpZGVyTWVudVR5cGUsc2U9Qi5pc0NoaWxkcmVuTGF5b3V0LGc9Qi5tZW51RGF0YVJlbmRlcixtZT1CLmFjdGlvblJlZixUPUIuYmdMYXlvdXRJbWdMaXN0LGs9Qi5mb3JtYXRNZXNzYWdlLG9lPUIubG9hZGluZyxDZT0oMCxwLnVzZU1lbW8pKGZ1bmN0aW9uKCl7cmV0dXJuIE98fChlLmxheW91dD09PSJtaXgiPzIxNToyNTYpfSxbZS5sYXlvdXQsT10pLGllPSgwLHAudXNlQ29udGV4dCkoSGUuWlAuQ29uZmlnQ29udGV4dCksTWU9KG49ZS5wcmVmaXhDbHMpIT09bnVsbCYmbiE9PXZvaWQgMD9uOmllLmdldFByZWZpeENscygicHJvIiksYmU9KDAsUS5aKSghMSx7dmFsdWU6dz09bnVsbD92b2lkIDA6dy5sb2FkaW5nLG9uQ2hhbmdlOnc9PW51bGw/dm9pZCAwOncub25Mb2FkaW5nQ2hhbmdlfSksU2U9KDAsRy5aKShiZSwyKSxOZT1TZVswXSxCZT1TZVsxXSxMZT0oMCxwLnVzZVN0YXRlKShmdW5jdGlvbigpe3JldHVybiBtdCs9MSwicHJvLWxheW91dC0iLmNvbmNhdChtdCl9KSwkZT0oMCxHLlopKExlLDEpLEZlPSRlWzBdLEtlPSgwLHAudXNlQ2FsbGJhY2spKGZ1bmN0aW9uKFJlKXt2YXIgR2U9UmUuaWQsWm49UmUuZGVmYXVsdE1lc3NhZ2UsZm49KDAsbGUuWikoUmUsTmEpO2lmKGspcmV0dXJuIGsoKDAscy5aKSh7aWQ6R2UsZGVmYXVsdE1lc3NhZ2U6Wm59LGZuKSk7dmFyIG1uPSgwLHBhLmUpKCk7cmV0dXJuIG1uW0dlXT9tbltHZV06Wm59LFtrXSksVWU9KDAsZnIuWlApKFtGZSx3PT1udWxsP3ZvaWQgMDp3LnBhcmFtc10sZnVuY3Rpb24oKXt2YXIgUmU9KDAsZWUuWikoKDAsWS5aKSgpLm1hcmsoZnVuY3Rpb24gR2UoWm4pe3ZhciBmbixtbixCdCxfdDtyZXR1cm4oMCxZLlopKCkud3JhcChmdW5jdGlvbihlbil7Zm9yKDs7KXN3aXRjaChlbi5wcmV2PWVuLm5leHQpe2Nhc2UgMDpyZXR1cm4gbW49KDAsRy5aKShabiwyKSxCdD1tblsxXSxCZSghMCksZW4ubmV4dD00LHc9PW51bGx8fChmbj13LnJlcXVlc3QpPT09bnVsbHx8Zm49PT12b2lkIDA/dm9pZCAwOmZuLmNhbGwodyxCdHx8e30sKHk9PW51bGw/dm9pZCAwOnkuY2hpbGRyZW4pfHwoeT09bnVsbD92b2lkIDA6eS5yb3V0ZXMpfHxbXSk7Y2FzZSA0OnJldHVybiBfdD1lbi5zZW50LEJlKCExKSxlbi5hYnJ1cHQoInJldHVybiIsX3QpO2Nhc2UgNzpjYXNlImVuZCI6cmV0dXJuIGVuLnN0b3AoKX19LEdlKX0pKTtyZXR1cm4gZnVuY3Rpb24oR2Upe3JldHVybiBSZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLHtyZXZhbGlkYXRlT25Gb2N1czohMSxzaG91bGRSZXRyeU9uRXJyb3I6ITEscmV2YWxpZGF0ZU9uUmVjb25uZWN0OiExfSksdW49VWUuZGF0YSx4bj1VZS5tdXRhdGUsSWU9VWUuaXNMb2FkaW5nOygwLHAudXNlRWZmZWN0KShmdW5jdGlvbigpe0JlKEllKX0sW0llXSk7dmFyIE9lPSgwLG1yLmtZKSgpLEFlPU9lLmNhY2hlOygwLHAudXNlRWZmZWN0KShmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbigpe0FlIGluc3RhbmNlb2YgTWFwJiZBZS5kZWxldGUoRmUpfX0sW10pO3ZhciBDbj0oMCxwLnVzZU1lbW8pKGZ1bmN0aW9uKCl7cmV0dXJuIGphKHVufHwoeT09bnVsbD92b2lkIDA6eS5jaGlsZHJlbil8fCh5PT1udWxsP3ZvaWQgMDp5LnJvdXRlcyl8fFtdLHcsS2UsZyl9LFtLZSx3LGcsdW4seT09bnVsbD92b2lkIDA6eS5jaGlsZHJlbix5PT1udWxsP3ZvaWQgMDp5LnJvdXRlc10pLE5uPUNufHx7fSxVYT1Obi5icmVhZGNydW1iLGh0PU5uLmJyZWFkY3J1bWJNYXAsZ3Q9Tm4ubWVudURhdGEsY249Z3Q9PT12b2lkIDA/W106Z3Q7bWUmJnchPT1udWxsJiZ3IT09dm9pZCAwJiZ3LnJlcXVlc3QmJihtZS5jdXJyZW50PXtyZWxvYWQ6ZnVuY3Rpb24oKXt4bigpfX0pO3ZhciBkbj0oMCxwLnVzZU1lbW8pKGZ1bmN0aW9uKCl7cmV0dXJuIGRyKEwucGF0aG5hbWV8fCIvIixjbnx8W10sITApfSxbTC5wYXRobmFtZSxjbl0pLEFuPSgwLHAudXNlTWVtbykoZnVuY3Rpb24oKXtyZXR1cm4gQXJyYXkuZnJvbShuZXcgU2V0KGRuLm1hcChmdW5jdGlvbihSZSl7cmV0dXJuIFJlLmtleXx8UmUucGF0aHx8IiJ9KSkpfSxbZG5dKSxwdD1kbltkbi5sZW5ndGgtMV18fHt9LHl0PURhKHB0KSxibj0oMCxzLlopKCgwLHMuWikoe30sZSkseXQpLEdhPWJuLmZpeFNpZGVyYmFyLHNvPWJuLm5hdlRoZW1lLHNuPWJuLmxheW91dCxYYT0oMCxsZS5aKShibixBYSksSmU9WmUoKSxZZT0oMCxwLnVzZU1lbW8pKGZ1bmN0aW9uKCl7cmV0dXJuKEplPT09InNtInx8SmU9PT0ieHMiKSYmIWUuZGlzYWJsZU1vYmlsZX0sW0plLGUuZGlzYWJsZU1vYmlsZV0pLFZhPXNuIT09InRvcCImJiFZZSxrYT0oMCxRLlopKGZ1bmN0aW9uKCl7cmV0dXJuIEUhPT12b2lkIDA/RTohIShZZXx8SmU9PT0ibWQiKX0se3ZhbHVlOmUuY29sbGFwc2VkLG9uQ2hhbmdlOkh9KSx4dD0oMCxHLlopKGthLDIpLHZuPXh0WzBdLEN0PXh0WzFdLHFlPSgwLFFuLlopKCgwLHMuWikoKDAscy5aKSgoMCxzLlopKHtwcmVmaXhDbHM6TWV9LGUpLHt9LHtzaWRlcldpZHRoOkNlfSx5dCkse30se2Zvcm1hdE1lc3NhZ2U6S2UsYnJlYWRjcnVtYjpVYSxtZW51OigwLHMuWikoKDAscy5aKSh7fSx3KSx7fSx7dHlwZTpyZXx8KHc9PW51bGw/dm9pZCAwOncudHlwZSksbG9hZGluZzpOZX0pLGxheW91dDpzbn0pLFsiY2xhc3NOYW1lIiwic3R5bGUiLCJicmVhZGNydW1iUmVuZGVyIl0pLE9uPVdhKCgwLHMuWikoKDAscy5aKSh7cGF0aG5hbWU6TC5wYXRobmFtZX0scWUpLHt9LHticmVhZGNydW1iTWFwOmh0fSksZSksUWE9X2EoKDAscy5aKSgoMCxzLlopKHt9LHFlKSx7fSx7YnJlYWRjcnVtYlJlbmRlcjplLmJyZWFkY3J1bWJSZW5kZXIsYnJlYWRjcnVtYk1hcDpodH0pLGUpLFNuPSRhKCgwLHMuWikoKDAscy5aKSh7fSxxZSkse30se21lbnVEYXRhOmNuLG9uQ29sbGFwc2U6Q3QsaXNNb2JpbGU6WWUsY29sbGFwc2VkOnZufSksQW4pLEhuPU9hKCgwLHMuWikoKDAscy5aKSh7fSxxZSkse30se2NoaWxkcmVuOm51bGwsaGFzU2lkZXJNZW51OiEhU24sbWVudURhdGE6Y24saXNNb2JpbGU6WWUsY29sbGFwc2VkOnZuLG9uQ29sbGFwc2U6Q3R9KSxBbiksYnQ9SGEoKDAscy5aKSh7aXNNb2JpbGU6WWUsY29sbGFwc2VkOnZufSxxZSkpLEphPSgwLHAudXNlQ29udGV4dCkoZnQuWCksWWE9SmEuaXNDaGlsZHJlbkxheW91dCwkbj1zZSE9PXZvaWQgMD9zZTpZYSxXZT0iIi5jb25jYXQoTWUsIi1sYXlvdXQiKSxTdD1iYShXZSkscWE9U3Qud3JhcFNTUixXbj1TdC5oYXNoSWQsZW89dGUoKShlLmNsYXNzTmFtZSxXbiwiYW50LWRlc2lnbi1wcm8iLFdlLCgwLGwuWikoKDAsbC5aKSgoMCxsLlopKCgwLGwuWikoKDAsbC5aKSh7fSwic2NyZWVuLSIuY29uY2F0KEplKSxKZSksIiIuY29uY2F0KFdlLCItdG9wLW1lbnUiKSxzbj09PSJ0b3AiKSwiIi5jb25jYXQoV2UsIi1pcy1jaGlsZHJlbiIpLCRuKSwiIi5jb25jYXQoV2UsIi1maXgtc2lkZXJiYXIiKSxHYSksIiIuY29uY2F0KFdlLCItIikuY29uY2F0KHNuKSxzbikpLG5vPXphKCEhVmEsdm4sQ2UpLFp0PXtwb3NpdGlvbjoicmVsYXRpdmUifTsoJG58fEEmJkEubWluSGVpZ2h0KSYmKFp0Lm1pbkhlaWdodD0wKSwoMCxwLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXt2YXIgUmU7KFJlPWUub25QYWdlQ2hhbmdlKT09PW51bGx8fFJlPT09dm9pZCAwfHxSZS5jYWxsKGUsZS5sb2NhdGlvbil9LFtMLnBhdGhuYW1lLCh0PUwucGF0aG5hbWUpPT09bnVsbHx8dD09PXZvaWQgMD92b2lkIDA6dC5zZWFyY2hdKTt2YXIgdG89KDAscC51c2VTdGF0ZSkoITEpLE10PSgwLEcuWikodG8sMiksSXQ9TXRbMF0scm89TXRbMV0sYW89KDAscC51c2VTdGF0ZSkoMCksUnQ9KDAsRy5aKShhbywyKSxUdD1SdFswXSxvbz1SdFsxXTtJKE9uLGUudGl0bGV8fCExKTt2YXIgaW89KDAscC51c2VDb250ZXh0KShxLkxfKSxYPWlvLnRva2VuLFB0PSgwLHAudXNlTWVtbykoZnVuY3Rpb24oKXtyZXR1cm4gVCYmVC5sZW5ndGg+MD9UPT1udWxsP3ZvaWQgMDpULm1hcChmdW5jdGlvbihSZSxHZSl7cmV0dXJuKDAsdS5qc3gpKCJpbWciLHtzcmM6UmUuc3JjLHN0eWxlOigwLHMuWikoe3Bvc2l0aW9uOiJhYnNvbHV0ZSJ9LFJlKX0sR2UpfSk6bnVsbH0sW1RdKTtyZXR1cm4gcWEoKDAsdS5qc3gpKGZ0LlguUHJvdmlkZXIse3ZhbHVlOigwLHMuWikoKDAscy5aKSh7fSxxZSkse30se2JyZWFkY3J1bWI6UWEsbWVudURhdGE6Y24saXNNb2JpbGU6WWUsY29sbGFwc2VkOnZuLGhhc1BhZ2VDb250YWluZXI6VHQsc2V0SGFzUGFnZUNvbnRhaW5lcjpvbyxpc0NoaWxkcmVuTGF5b3V0OiEwLHRpdGxlOk9uLnBhZ2VOYW1lLGhhc1NpZGVyTWVudTohIVNuLGhhc0hlYWRlcjohIUhuLHNpZGVyV2lkdGg6bm8saGFzRm9vdGVyOiEhYnQsaGFzRm9vdGVyVG9vbGJhcjpJdCxzZXRIYXNGb290ZXJUb29sYmFyOnJvLHBhZ2VUaXRsZUluZm86T24sbWF0Y2hNZW51czpkbixtYXRjaE1lbnVLZXlzOkFuLGN1cnJlbnRNZW51OnB0fSksY2hpbGRyZW46ZS5wdXJlPygwLHUuanN4KSh1LkZyYWdtZW50LHtjaGlsZHJlbjp6fSk6KDAsdS5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOmVvLGNoaWxkcmVuOltQdHx8KGE9WC5sYXlvdXQpIT09bnVsbCYmYSE9PXZvaWQgMCYmYS5iZ0xheW91dD8oMCx1LmpzeCkoImRpdiIse2NsYXNzTmFtZTp0ZSgpKCIiLmNvbmNhdChXZSwiLWJnLWxpc3QiKSxXbiksY2hpbGRyZW46UHR9KTpudWxsLCgwLHUuanN4cykoVmUuWix7c3R5bGU6KDAscy5aKSh7bWluSGVpZ2h0OiIxMDAlIixmbGV4RGlyZWN0aW9uOlNuPyJyb3ciOnZvaWQgMH0sViksY2hpbGRyZW46WygwLHUuanN4KShIZS5aUCx7dGhlbWU6e2hhc2hlZDooMCxxLm51KSgpLHRva2VuOntjb250cm9sSGVpZ2h0TEc6KChpPVgubGF5b3V0KT09PW51bGx8fGk9PT12b2lkIDB8fChpPWkuc2lkZXIpPT09bnVsbHx8aT09PXZvaWQgMD92b2lkIDA6aS5tZW51SGVpZ2h0KXx8KFg9PW51bGw/dm9pZCAwOlguY29udHJvbEhlaWdodExHKX0sY29tcG9uZW50czp7TWVudTpVKHtjb2xvckl0ZW1CZzooKG89WC5sYXlvdXQpPT09bnVsbHx8bz09PXZvaWQgMHx8KG89by5zaWRlcik9PT1udWxsfHxvPT09dm9pZCAwP3ZvaWQgMDpvLmNvbG9yTWVudUJhY2tncm91bmQpfHwidHJhbnNwYXJlbnQiLGNvbG9yU3ViSXRlbUJnOigoYz1YLmxheW91dCk9PT1udWxsfHxjPT09dm9pZCAwfHwoYz1jLnNpZGVyKT09PW51bGx8fGM9PT12b2lkIDA/dm9pZCAwOmMuY29sb3JNZW51QmFja2dyb3VuZCl8fCJ0cmFuc3BhcmVudCIscmFkaXVzSXRlbTpYLmJvcmRlclJhZGl1cyxjb2xvckl0ZW1CZ1NlbGVjdGVkOigoZD1YLmxheW91dCk9PT1udWxsfHxkPT09dm9pZCAwfHwoZD1kLnNpZGVyKT09PW51bGx8fGQ9PT12b2lkIDA/dm9pZCAwOmQuY29sb3JCZ01lbnVJdGVtU2VsZWN0ZWQpfHwoWD09bnVsbD92b2lkIDA6WC5jb2xvckJnVGV4dEhvdmVyKSxjb2xvckl0ZW1CZ0hvdmVyOigodj1YLmxheW91dCk9PT1udWxsfHx2PT09dm9pZCAwfHwodj12LnNpZGVyKT09PW51bGx8fHY9PT12b2lkIDA/dm9pZCAwOnYuY29sb3JCZ01lbnVJdGVtSG92ZXIpfHwoWD09bnVsbD92b2lkIDA6WC5jb2xvckJnVGV4dEhvdmVyKSxjb2xvckl0ZW1CZ0FjdGl2ZTooKG09WC5sYXlvdXQpPT09bnVsbHx8bT09PXZvaWQgMHx8KG09bS5zaWRlcik9PT1udWxsfHxtPT09dm9pZCAwP3ZvaWQgMDptLmNvbG9yQmdNZW51SXRlbUFjdGl2ZSl8fChYPT1udWxsP3ZvaWQgMDpYLmNvbG9yQmdUZXh0QWN0aXZlKSxjb2xvckl0ZW1CZ1NlbGVjdGVkSG9yaXpvbnRhbDooKFM9WC5sYXlvdXQpPT09bnVsbHx8Uz09PXZvaWQgMHx8KFM9Uy5zaWRlcik9PT1udWxsfHxTPT09dm9pZCAwP3ZvaWQgMDpTLmNvbG9yQmdNZW51SXRlbVNlbGVjdGVkKXx8KFg9PW51bGw/dm9pZCAwOlguY29sb3JCZ1RleHRIb3ZlciksY29sb3JBY3RpdmVCYXJXaWR0aDowLGNvbG9yQWN0aXZlQmFySGVpZ2h0OjAsY29sb3JBY3RpdmVCYXJCb3JkZXJTaXplOjAsY29sb3JJdGVtVGV4dDooKHg9WC5sYXlvdXQpPT09bnVsbHx8eD09PXZvaWQgMHx8KHg9eC5zaWRlcik9PT1udWxsfHx4PT09dm9pZCAwP3ZvaWQgMDp4LmNvbG9yVGV4dE1lbnUpfHwoWD09bnVsbD92b2lkIDA6WC5jb2xvclRleHRTZWNvbmRhcnkpLGNvbG9ySXRlbVRleHRIb3ZlcjooKFA9WC5sYXlvdXQpPT09bnVsbHx8UD09PXZvaWQgMHx8KFA9UC5zaWRlcik9PT1udWxsfHxQPT09dm9pZCAwP3ZvaWQgMDpQLmNvbG9yVGV4dE1lbnVJdGVtSG92ZXIpfHwicmdiYSgwLCAwLCAwLCAwLjg1KSIsY29sb3JJdGVtVGV4dFNlbGVjdGVkOigoTj1YLmxheW91dCk9PT1udWxsfHxOPT09dm9pZCAwfHwoTj1OLnNpZGVyKT09PW51bGx8fE49PT12b2lkIDA/dm9pZCAwOk4uY29sb3JUZXh0TWVudVNlbGVjdGVkKXx8InJnYmEoMCwgMCwgMCwgMSkiLHBvcHVwQmc6WD09bnVsbD92b2lkIDA6WC5jb2xvckJnRWxldmF0ZWQsc3ViTWVudUl0ZW1CZzpYPT1udWxsP3ZvaWQgMDpYLmNvbG9yQmdFbGV2YXRlZCxkYXJrU3ViTWVudUl0ZW1CZzoidHJhbnNwYXJlbnQiLGRhcmtQb3B1cEJnOlg9PW51bGw/dm9pZCAwOlguY29sb3JCZ0VsZXZhdGVkfSl9fSxjaGlsZHJlbjpTbn0pLCgwLHUuanN4cykoImRpdiIse3N0eWxlOlp0LGNsYXNzTmFtZToiIi5jb25jYXQoV2UsIi1jb250YWluZXIgIikuY29uY2F0KFduKS50cmltKCksY2hpbGRyZW46W0huLCgwLHUuanN4KShnciwoMCxzLlopKCgwLHMuWikoe2hhc1BhZ2VDb250YWluZXI6VHQsaXNDaGlsZHJlbkxheW91dDokbn0sWGEpLHt9LHtoYXNIZWFkZXI6ISFIbixwcmVmaXhDbHM6V2Usc3R5bGU6QSxjaGlsZHJlbjpvZT8oMCx1LmpzeCkoc2EuUyx7fSk6en0pKSxidCxJdCYmKDAsdS5qc3gpKCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KFdlLCItaGFzLWZvb3RlciIpLHN0eWxlOntoZWlnaHQ6NjQsbWFyZ2luQmxvY2tTdGFydDooRD1YLmxheW91dCk9PT1udWxsfHxEPT09dm9pZCAwfHwoRD1ELnBhZ2VDb250YWluZXIpPT09bnVsbHx8RD09PXZvaWQgMD92b2lkIDA6RC5wYWRkaW5nQmxvY2tQYWdlQ29udGFpbmVyQ29udGVudH19KV19KV19KV19KX0pKX0sS2E9ZnVuY3Rpb24oZSl7dmFyIG49ZS5jb2xvclByaW1hcnksdD1lLm5hdlRoZW1lIT09dm9pZCAwP3tkYXJrOmUubmF2VGhlbWU9PT0icmVhbERhcmsifTp7fTtyZXR1cm4oMCx1LmpzeCkoSGUuWlAse3RoZW1lOm4/e3Rva2VuOntjb2xvclByaW1hcnk6bn19OnZvaWQgMCxjaGlsZHJlbjooMCx1LmpzeCkocS5fWSwoMCxzLlopKCgwLHMuWikoe30sdCkse30se3Rva2VuOmUudG9rZW4scHJlZml4Q2xzOmUucHJlZml4Q2xzLGNoaWxkcmVuOigwLHUuanN4KShGYSwoMCxzLlopKCgwLHMuWikoe2xvZ286KDAsdS5qc3gpKHByLHt9KX0sZXQuaCkse30se2xvY2F0aW9uOigwLGhlLmopKCk/d2luZG93LmxvY2F0aW9uOnZvaWQgMH0sZSkpfSkpfSl9fSw4MzgzMjpmdW5jdGlvbih5ZSxKLGYpeyJ1c2Ugc3RyaWN0IjtmLmQoSix7UzpmdW5jdGlvbigpe3JldHVybiBxfX0pO3ZhciBsPWYoMTQxMyksWT1mKDkxKSxlZT1mKDU3MzgxKSxsZT1mKDY3Mjk0KSxHPWYoODU4OTMpLHM9WyJpc0xvYWRpbmciLCJwYXN0RGVsYXkiLCJ0aW1lZE91dCIsImVycm9yIiwicmV0cnkiXSxxPWZ1bmN0aW9uKHApe3ZhciB2ZT1wLmlzTG9hZGluZyxnZT1wLnBhc3REZWxheSxfZT1wLnRpbWVkT3V0LFplPXAuZXJyb3IsaGU9cC5yZXRyeSxJPSgwLFkuWikocCxzKTtyZXR1cm4oMCxHLmpzeCkoImRpdiIse3N0eWxlOntwYWRkaW5nQmxvY2tTdGFydDoxMDAsdGV4dEFsaWduOiJjZW50ZXIifSxjaGlsZHJlbjooMCxHLmpzeCkoZWUuWiwoMCxsLlopKHtzaXplOiJsYXJnZSJ9LEkpKX0pfX0sNzY1MDk6ZnVuY3Rpb24oeWUsSixmKXsidXNlIHN0cmljdCI7Zi5kKEose1g6ZnVuY3Rpb24oKXtyZXR1cm4gWX19KTt2YXIgbD1mKDY3Mjk0KSxZPSgwLGwuY3JlYXRlQ29udGV4dCkoe30pfSw3ODE2NDpmdW5jdGlvbih5ZSxKLGYpeyJ1c2Ugc3RyaWN0IjtmLmQoSix7UzpmdW5jdGlvbigpe3JldHVybiB2ZX19KTt2YXIgbD1mKDE1NjcxKSxZPWYoNDMxNDQpLGVlPWYoOTczMjYpLGxlPWYoNjAxMzYpLEc9ZigyOTM4OCkscz1mKDQ5NDIpLHE9Zig1OTcyMCksUT1mKDY3Mjk0KSxwPWYoODU4OTMpLHZlPWZ1bmN0aW9uKGdlKXsoMCxsZS5aKShaZSxnZSk7dmFyIF9lPSgwLEcuWikoWmUpO2Z1bmN0aW9uIFplKCl7dmFyIGhlOygwLGwuWikodGhpcyxaZSk7Zm9yKHZhciBJPWFyZ3VtZW50cy5sZW5ndGgsaj1uZXcgQXJyYXkoSSksUj0wO1I8STtSKyspaltSXT1hcmd1bWVudHNbUl07cmV0dXJuIGhlPV9lLmNhbGwuYXBwbHkoX2UsW3RoaXNdLmNvbmNhdChqKSksKDAscy5aKSgoMCxlZS5aKShoZSksInN0YXRlIix7aGFzRXJyb3I6ITEsZXJyb3JJbmZvOiIifSksaGV9cmV0dXJuKDAsWS5aKShaZSxbe2tleToiY29tcG9uZW50RGlkQ2F0Y2giLHZhbHVlOmZ1bmN0aW9uKEksail7Y29uc29sZS5sb2coSSxqKX19LHtrZXk6InJlbmRlciIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zdGF0ZS5oYXNFcnJvcj8oMCxwLmpzeCkocS5aUCx7c3RhdHVzOiJlcnJvciIsdGl0bGU6IlNvbWV0aGluZyB3ZW50IHdyb25nLiIsZXh0cmE6dGhpcy5zdGF0ZS5lcnJvckluZm99KTp0aGlzLnByb3BzLmNoaWxkcmVufX1dLFt7a2V5OiJnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IiLHZhbHVlOmZ1bmN0aW9uKEkpe3JldHVybntoYXNFcnJvcjohMCxlcnJvckluZm86SS5tZXNzYWdlfX19XSksWmV9KFEuQ29tcG9uZW50KX0sMTAxNzg6ZnVuY3Rpb24oeWUsSixmKXsidXNlIHN0cmljdCI7Zi5kKEose0Q6ZnVuY3Rpb24oKXtyZXR1cm4gR319KTt2YXIgbD1mKDc0MTY1KSxZPWYoMTU4NjEpLGVlPWYoNjcyOTQpLGxlPWYoNDgxNzEpO2Z1bmN0aW9uIEcocyxxKXt2YXIgUT0oMCxsZS5KKShzKSxwPSgwLGVlLnVzZVJlZikoKSx2ZT0oMCxlZS51c2VDYWxsYmFjaykoZnVuY3Rpb24oKXtwLmN1cnJlbnQmJihjbGVhclRpbWVvdXQocC5jdXJyZW50KSxwLmN1cnJlbnQ9bnVsbCl9LFtdKSxnZT0oMCxlZS51c2VDYWxsYmFjaykoKDAsWS5aKSgoMCxsLlopKCkubWFyayhmdW5jdGlvbiBfZSgpe3ZhciBaZSxoZSxJLGo9YXJndW1lbnRzO3JldHVybigwLGwuWikoKS53cmFwKGZ1bmN0aW9uKFUpe2Zvcig7Oylzd2l0Y2goVS5wcmV2PVUubmV4dCl7Y2FzZSAwOmZvcihaZT1qLmxlbmd0aCxoZT1uZXcgQXJyYXkoWmUpLEk9MDtJPFplO0krKyloZVtJXT1qW0ldO2lmKCEocT09PTB8fHE9PT12b2lkIDApKXtVLm5leHQ9MzticmVha31yZXR1cm4gVS5hYnJ1cHQoInJldHVybiIsUS5hcHBseSh2b2lkIDAsaGUpKTtjYXNlIDM6cmV0dXJuIHZlKCksVS5hYnJ1cHQoInJldHVybiIsbmV3IFByb21pc2UoZnVuY3Rpb24oY2Upe3AuY3VycmVudD1zZXRUaW1lb3V0KCgwLFkuWikoKDAsbC5aKSgpLm1hcmsoZnVuY3Rpb24gSygpe3JldHVybigwLGwuWikoKS53cmFwKGZ1bmN0aW9uKGFlKXtmb3IoOzspc3dpdGNoKGFlLnByZXY9YWUubmV4dCl7Y2FzZSAwOnJldHVybiBhZS50MD1jZSxhZS5uZXh0PTMsUS5hcHBseSh2b2lkIDAsaGUpO2Nhc2UgMzpyZXR1cm4gYWUudDE9YWUuc2VudCwoMCxhZS50MCkoYWUudDEpLGFlLmFicnVwdCgicmV0dXJuIik7Y2FzZSA2OmNhc2UiZW5kIjpyZXR1cm4gYWUuc3RvcCgpfX0sSyl9KSkscSl9KSk7Y2FzZSA1OmNhc2UiZW5kIjpyZXR1cm4gVS5zdG9wKCl9fSxfZSl9KSksW1EsdmUscV0pO3JldHVybigwLGVlLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtyZXR1cm4gdmV9LFt2ZV0pLHtydW46Z2UsY2FuY2VsOnZlfX19LDQ4MTcxOmZ1bmN0aW9uKHllLEosZil7InVzZSBzdHJpY3QiO2YuZChKLHtKOmZ1bmN0aW9uKCl7cmV0dXJuIGVlfX0pO3ZhciBsPWYoNzQ5MDIpLFk9Zig2NzI5NCksZWU9ZnVuY3Rpb24oRyl7dmFyIHM9KDAsWS51c2VSZWYpKG51bGwpO3JldHVybiBzLmN1cnJlbnQ9RywoMCxZLnVzZUNhbGxiYWNrKShmdW5jdGlvbigpe2Zvcih2YXIgcSxRPWFyZ3VtZW50cy5sZW5ndGgscD1uZXcgQXJyYXkoUSksdmU9MDt2ZTxRO3ZlKyspcFt2ZV09YXJndW1lbnRzW3ZlXTtyZXR1cm4ocT1zLmN1cnJlbnQpPT09bnVsbHx8cT09PXZvaWQgMD92b2lkIDA6cS5jYWxsLmFwcGx5KHEsW3NdLmNvbmNhdCgoMCxsLlopKHApKSl9LFtdKX19LDkwNTkxOmZ1bmN0aW9uKHllLEosZil7InVzZSBzdHJpY3QiO3ZhciBsPWYoMTQxMyksWT1mKDY3Mjk0KSxlZT1mKDcwMzkxKSxsZT1mKDI3NiksRz1mdW5jdGlvbihRLHApe3JldHVybiBZLmNyZWF0ZUVsZW1lbnQobGUuWiwoMCxsLlopKCgwLGwuWikoe30sUSkse30se3JlZjpwLGljb246ZWUuWn0pKX0scz1ZLmZvcndhcmRSZWYoRyk7Si5aPXN9LDQ3OTMwOmZ1bmN0aW9uKHllLEope3ZhciBmO2Z1bmN0aW9uIGwoSSl7IkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mIjtyZXR1cm4gbD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZ0eXBlb2YgU3ltYm9sLml0ZXJhdG9yPT0ic3ltYm9sIj9mdW5jdGlvbihqKXtyZXR1cm4gdHlwZW9mIGp9OmZ1bmN0aW9uKGope3JldHVybiBqJiZ0eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZqLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZqIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2Ygan0sbChJKX1mPXt2YWx1ZTohMH0sSi5Cbz1mPWY9Zj1mPWY9Zj12b2lkIDA7ZnVuY3Rpb24gWShJKXtmb3IodmFyIGo9W10sUj0wO1I8SS5sZW5ndGg7KXt2YXIgVT1JW1JdO2lmKFU9PT0iKiJ8fFU9PT0iKyJ8fFU9PT0iPyIpe2oucHVzaCh7dHlwZToiTU9ESUZJRVIiLGluZGV4OlIsdmFsdWU6SVtSKytdfSk7Y29udGludWV9aWYoVT09PSJcXCIpe2oucHVzaCh7dHlwZToiRVNDQVBFRF9DSEFSIixpbmRleDpSKyssdmFsdWU6SVtSKytdfSk7Y29udGludWV9aWYoVT09PSJ7Iil7ai5wdXNoKHt0eXBlOiJPUEVOIixpbmRleDpSLHZhbHVlOklbUisrXX0pO2NvbnRpbnVlfWlmKFU9PT0ifSIpe2oucHVzaCh7dHlwZToiQ0xPU0UiLGluZGV4OlIsdmFsdWU6SVtSKytdfSk7Y29udGludWV9aWYoVT09PSI6Iil7Zm9yKHZhciBjZT0iIixLPVIrMTtLPEkubGVuZ3RoOyl7dmFyIG5lPUkuY2hhckNvZGVBdChLKTtpZihuZT49NDgmJm5lPD01N3x8bmU+PTY1JiZuZTw9OTB8fG5lPj05NyYmbmU8PTEyMnx8bmU9PT05NSl7Y2UrPUlbSysrXTtjb250aW51ZX1icmVha31pZighY2UpdGhyb3cgbmV3IFR5cGVFcnJvcigiTWlzc2luZyBwYXJhbWV0ZXIgbmFtZSBhdCAiK1IpO2oucHVzaCh7dHlwZToiTkFNRSIsaW5kZXg6Uix2YWx1ZTpjZX0pLFI9Sztjb250aW51ZX1pZihVPT09IigiKXt2YXIgYWU9MSx1ZT0iIixLPVIrMTtpZihJW0tdPT09Ij8iKXRocm93IG5ldyBUeXBlRXJyb3IoJ1BhdHRlcm4gY2Fubm90IHN0YXJ0IHdpdGggIj8iIGF0ICcrSyk7Zm9yKDtLPEkubGVuZ3RoOyl7aWYoSVtLXT09PSJcXCIpe3VlKz1JW0srK10rSVtLKytdO2NvbnRpbnVlfWlmKElbS109PT0iKSIpe2lmKGFlLS0sYWU9PT0wKXtLKys7YnJlYWt9fWVsc2UgaWYoSVtLXT09PSIoIiYmKGFlKyssSVtLKzFdIT09Ij8iKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYXB0dXJpbmcgZ3JvdXBzIGFyZSBub3QgYWxsb3dlZCBhdCAiK0spO3VlKz1JW0srK119aWYoYWUpdGhyb3cgbmV3IFR5cGVFcnJvcigiVW5iYWxhbmNlZCBwYXR0ZXJuIGF0ICIrUik7aWYoIXVlKXRocm93IG5ldyBUeXBlRXJyb3IoIk1pc3NpbmcgcGF0dGVybiBhdCAiK1IpO2oucHVzaCh7dHlwZToiUEFUVEVSTiIsaW5kZXg6Uix2YWx1ZTp1ZX0pLFI9Sztjb250aW51ZX1qLnB1c2goe3R5cGU6IkNIQVIiLGluZGV4OlIsdmFsdWU6SVtSKytdfSl9cmV0dXJuIGoucHVzaCh7dHlwZToiRU5EIixpbmRleDpSLHZhbHVlOiIifSksan1mdW5jdGlvbiBlZShJLGope2o9PT12b2lkIDAmJihqPXt9KTtmb3IodmFyIFI9WShJKSxVPWoucHJlZml4ZXMsY2U9VT09PXZvaWQgMD8iLi8iOlUsSz0iW14iK1Eoai5kZWxpbWl0ZXJ8fCIvIz8iKSsiXSs/IixuZT1bXSxhZT0wLHVlPTAsWj0iIixDPWZ1bmN0aW9uKERlKXtpZih1ZTxSLmxlbmd0aCYmUlt1ZV0udHlwZT09PURlKXJldHVybiBSW3VlKytdLnZhbHVlfSxoPWZ1bmN0aW9uKERlKXt2YXIgemU9QyhEZSk7aWYoemUhPT12b2lkIDApcmV0dXJuIHplO3ZhciBobj1SW3VlXSxNbj1obi50eXBlLG5uPWhuLmluZGV4O3Rocm93IG5ldyBUeXBlRXJyb3IoIlVuZXhwZWN0ZWQgIitNbisiIGF0ICIrbm4rIiwgZXhwZWN0ZWQgIitEZSl9LFc9ZnVuY3Rpb24oKXtmb3IodmFyIERlPSIiLHplO3plPUMoIkNIQVIiKXx8QygiRVNDQVBFRF9DSEFSIik7KURlKz16ZTtyZXR1cm4gRGV9O3VlPFIubGVuZ3RoOyl7dmFyIF89QygiQ0hBUiIpLGI9QygiTkFNRSIpLCQ9QygiUEFUVEVSTiIpO2lmKGJ8fCQpe3ZhciBNPV98fCIiO2NlLmluZGV4T2YoTSk9PT0tMSYmKForPU0sTT0iIiksWiYmKG5lLnB1c2goWiksWj0iIiksbmUucHVzaCh7bmFtZTpifHxhZSsrLHByZWZpeDpNLHN1ZmZpeDoiIixwYXR0ZXJuOiR8fEssbW9kaWZpZXI6QygiTU9ESUZJRVIiKXx8IiJ9KTtjb250aW51ZX12YXIgZGU9X3x8QygiRVNDQVBFRF9DSEFSIik7aWYoZGUpe1orPWRlO2NvbnRpbnVlfVomJihuZS5wdXNoKFopLFo9IiIpO3ZhciBmZT1DKCJPUEVOIik7aWYoZmUpe3ZhciBNPVcoKSxFZT1DKCJOQU1FIil8fCIiLHBlPUMoIlBBVFRFUk4iKXx8IiIsamU9VygpO2goIkNMT1NFIiksbmUucHVzaCh7bmFtZTpFZXx8KHBlP2FlKys6IiIpLHBhdHRlcm46RWUmJiFwZT9LOnBlLHByZWZpeDpNLHN1ZmZpeDpqZSxtb2RpZmllcjpDKCJNT0RJRklFUiIpfHwiIn0pO2NvbnRpbnVlfWgoIkVORCIpfXJldHVybiBuZX1mPWVlO2Z1bmN0aW9uIGxlKEksail7cmV0dXJuIEcoZWUoSSxqKSxqKX1mPWxlO2Z1bmN0aW9uIEcoSSxqKXtqPT09dm9pZCAwJiYoaj17fSk7dmFyIFI9cChqKSxVPWouZW5jb2RlLGNlPVU9PT12b2lkIDA/ZnVuY3Rpb24odWUpe3JldHVybiB1ZX06VSxLPWoudmFsaWRhdGUsbmU9Sz09PXZvaWQgMD8hMDpLLGFlPUkubWFwKGZ1bmN0aW9uKHVlKXtpZihsKHVlKT09PSJvYmplY3QiKXJldHVybiBuZXcgUmVnRXhwKCJeKD86Iit1ZS5wYXR0ZXJuKyIpJCIsUil9KTtyZXR1cm4gZnVuY3Rpb24odWUpe2Zvcih2YXIgWj0iIixDPTA7QzxJLmxlbmd0aDtDKyspe3ZhciBoPUlbQ107aWYodHlwZW9mIGg9PSJzdHJpbmciKXtaKz1oO2NvbnRpbnVlfXZhciBXPXVlP3VlW2gubmFtZV06dm9pZCAwLF89aC5tb2RpZmllcj09PSI/Inx8aC5tb2RpZmllcj09PSIqIixiPWgubW9kaWZpZXI9PT0iKiJ8fGgubW9kaWZpZXI9PT0iKyI7aWYoQXJyYXkuaXNBcnJheShXKSl7aWYoIWIpdGhyb3cgbmV3IFR5cGVFcnJvcignRXhwZWN0ZWQgIicraC5uYW1lKyciIHRvIG5vdCByZXBlYXQsIGJ1dCBnb3QgYW4gYXJyYXknKTtpZihXLmxlbmd0aD09PTApe2lmKF8pY29udGludWU7dGhyb3cgbmV3IFR5cGVFcnJvcignRXhwZWN0ZWQgIicraC5uYW1lKyciIHRvIG5vdCBiZSBlbXB0eScpfWZvcih2YXIgJD0wOyQ8Vy5sZW5ndGg7JCsrKXt2YXIgTT1jZShXWyRdLGgpO2lmKG5lJiYhYWVbQ10udGVzdChNKSl0aHJvdyBuZXcgVHlwZUVycm9yKCdFeHBlY3RlZCBhbGwgIicraC5uYW1lKyciIHRvIG1hdGNoICInK2gucGF0dGVybisnIiwgYnV0IGdvdCAiJytNKyciJyk7Wis9aC5wcmVmaXgrTStoLnN1ZmZpeH1jb250aW51ZX1pZih0eXBlb2YgVz09InN0cmluZyJ8fHR5cGVvZiBXPT0ibnVtYmVyIil7dmFyIE09Y2UoU3RyaW5nKFcpLGgpO2lmKG5lJiYhYWVbQ10udGVzdChNKSl0aHJvdyBuZXcgVHlwZUVycm9yKCdFeHBlY3RlZCAiJytoLm5hbWUrJyIgdG8gbWF0Y2ggIicraC5wYXR0ZXJuKyciLCBidXQgZ290ICInK00rJyInKTtaKz1oLnByZWZpeCtNK2guc3VmZml4O2NvbnRpbnVlfWlmKCFfKXt2YXIgZGU9Yj8iYW4gYXJyYXkiOiJhIHN0cmluZyI7dGhyb3cgbmV3IFR5cGVFcnJvcignRXhwZWN0ZWQgIicraC5uYW1lKyciIHRvIGJlICcrZGUpfX1yZXR1cm4gWn19Zj1HO2Z1bmN0aW9uIHMoSSxqKXt2YXIgUj1bXSxVPWhlKEksUixqKTtyZXR1cm4gcShVLFIsail9Zj1zO2Z1bmN0aW9uIHEoSSxqLFIpe1I9PT12b2lkIDAmJihSPXt9KTt2YXIgVT1SLmRlY29kZSxjZT1VPT09dm9pZCAwP2Z1bmN0aW9uKEspe3JldHVybiBLfTpVO3JldHVybiBmdW5jdGlvbihLKXt2YXIgbmU9SS5leGVjKEspO2lmKCFuZSlyZXR1cm4hMTtmb3IodmFyIGFlPW5lWzBdLHVlPW5lLmluZGV4LFo9T2JqZWN0LmNyZWF0ZShudWxsKSxDPWZ1bmN0aW9uKF8pe2lmKG5lW19dPT09dm9pZCAwKXJldHVybiJjb250aW51ZSI7dmFyIGI9altfLTFdO2IubW9kaWZpZXI9PT0iKiJ8fGIubW9kaWZpZXI9PT0iKyI/WltiLm5hbWVdPW5lW19dLnNwbGl0KGIucHJlZml4K2Iuc3VmZml4KS5tYXAoZnVuY3Rpb24oJCl7cmV0dXJuIGNlKCQsYil9KTpaW2IubmFtZV09Y2UobmVbX10sYil9LGg9MTtoPG5lLmxlbmd0aDtoKyspQyhoKTtyZXR1cm57cGF0aDphZSxpbmRleDp1ZSxwYXJhbXM6Wn19fWY9cTtmdW5jdGlvbiBRKEkpe3JldHVybiBJLnJlcGxhY2UoLyhbLisqPz1eIToke30oKVtcXXwvXFxdKS9nLCJcXCQxIil9ZnVuY3Rpb24gcChJKXtyZXR1cm4gSSYmSS5zZW5zaXRpdmU/IiI6ImkifWZ1bmN0aW9uIHZlKEksail7aWYoIWopcmV0dXJuIEk7dmFyIFI9SS5zb3VyY2UubWF0Y2goL1woKD8hXD8pL2cpO2lmKFIpZm9yKHZhciBVPTA7VTxSLmxlbmd0aDtVKyspai5wdXNoKHtuYW1lOlUscHJlZml4OiIiLHN1ZmZpeDoiIixtb2RpZmllcjoiIixwYXR0ZXJuOiIifSk7cmV0dXJuIEl9ZnVuY3Rpb24gZ2UoSSxqLFIpe3ZhciBVPUkubWFwKGZ1bmN0aW9uKGNlKXtyZXR1cm4gaGUoY2UsaixSKS5zb3VyY2V9KTtyZXR1cm4gbmV3IFJlZ0V4cCgiKD86IitVLmpvaW4oInwiKSsiKSIscChSKSl9ZnVuY3Rpb24gX2UoSSxqLFIpe3JldHVybiBaZShlZShJLFIpLGosUil9ZnVuY3Rpb24gWmUoSSxqLFIpe1I9PT12b2lkIDAmJihSPXt9KTtmb3IodmFyIFU9Ui5zdHJpY3QsY2U9VT09PXZvaWQgMD8hMTpVLEs9Ui5zdGFydCxuZT1LPT09dm9pZCAwPyEwOkssYWU9Ui5lbmQsdWU9YWU9PT12b2lkIDA/ITA6YWUsWj1SLmVuY29kZSxDPVo9PT12b2lkIDA/ZnVuY3Rpb24oVGUpe3JldHVybiBUZX06WixoPSJbIitRKFIuZW5kc1dpdGh8fCIiKSsiXXwkIixXPSJbIitRKFIuZGVsaW1pdGVyfHwiLyM/IikrIl0iLF89bmU/Il4iOiIiLGI9MCwkPUk7YjwkLmxlbmd0aDtiKyspe3ZhciBNPSRbYl07aWYodHlwZW9mIE09PSJzdHJpbmciKV8rPVEoQyhNKSk7ZWxzZXt2YXIgZGU9UShDKE0ucHJlZml4KSksZmU9UShDKE0uc3VmZml4KSk7aWYoTS5wYXR0ZXJuKWlmKGomJmoucHVzaChNKSxkZXx8ZmUpaWYoTS5tb2RpZmllcj09PSIrInx8TS5tb2RpZmllcj09PSIqIil7dmFyIEVlPU0ubW9kaWZpZXI9PT0iKiI/Ij8iOiIiO18rPSIoPzoiK2RlKyIoKD86IitNLnBhdHRlcm4rIikoPzoiK2ZlK2RlKyIoPzoiK00ucGF0dGVybisiKSkqKSIrZmUrIikiK0VlfWVsc2UgXys9Iig/OiIrZGUrIigiK00ucGF0dGVybisiKSIrZmUrIikiK00ubW9kaWZpZXI7ZWxzZSBfKz0iKCIrTS5wYXR0ZXJuKyIpIitNLm1vZGlmaWVyO2Vsc2UgXys9Iig/OiIrZGUrZmUrIikiK00ubW9kaWZpZXJ9fWlmKHVlKWNlfHwoXys9VysiPyIpLF8rPVIuZW5kc1dpdGg/Iig/PSIraCsiKSI6IiQiO2Vsc2V7dmFyIHBlPUlbSS5sZW5ndGgtMV0samU9dHlwZW9mIHBlPT0ic3RyaW5nIj9XLmluZGV4T2YocGVbcGUubGVuZ3RoLTFdKT4tMTpwZT09PXZvaWQgMDtjZXx8KF8rPSIoPzoiK1crIig/PSIraCsiKSk/IiksamV8fChfKz0iKD89IitXKyJ8IitoKyIpIil9cmV0dXJuIG5ldyBSZWdFeHAoXyxwKFIpKX1mPVplO2Z1bmN0aW9uIGhlKEksaixSKXtyZXR1cm4gSSBpbnN0YW5jZW9mIFJlZ0V4cD92ZShJLGopOkFycmF5LmlzQXJyYXkoSSk/Z2UoSSxqLFIpOl9lKEksaixSKX1KLkJvPWhlfSwxNjMwNTpmdW5jdGlvbih5ZSxKKXsidXNlIHN0cmljdCI7dmFyIGY7Zj17dmFsdWU6ITB9LGY9dm9pZCAwLGY9X2UsZj1aZSxKLkVRPWosZj1SLGY9bmU7Y29uc3QgbD0iLyIsWT1aPT5aLGVlPS9eWyRfXHB7SURfU3RhcnR9XSQvdSxsZT0vXlskXHUyMDBjXHUyMDBkXHB7SURfQ29udGludWV9XSQvdSxHPSJodHRwczovL2dpdC5uZXcvcGF0aFRvUmVnZXhwRXJyb3IiLHM9eyJ7IjoieyIsIn0iOiJ9IiwiKCI6IigiLCIpIjoiKSIsIlsiOiJbIiwiXSI6Il0iLCIrIjoiKyIsIj8iOiI/IiwiISI6IiEifTtmdW5jdGlvbiBxKFope3JldHVybiBaLnJlcGxhY2UoL1t7fSgpXFtcXSs/IToqXS9nLCJcXCQmIil9ZnVuY3Rpb24gUShaKXtyZXR1cm4gWi5yZXBsYWNlKC9bLisqP14ke30oKVtcXXwvXFxdL2csIlxcJCYiKX1mdW5jdGlvbipwKFope2NvbnN0IEM9Wy4uLlpdO2xldCBoPTA7ZnVuY3Rpb24gVygpe2xldCBfPSIiO2lmKGVlLnRlc3QoQ1srK2hdKSlmb3IoXys9Q1toXTtsZS50ZXN0KENbKytoXSk7KV8rPUNbaF07ZWxzZSBpZihDW2hdPT09JyInKXtsZXQgYj1oO2Zvcig7aDxDLmxlbmd0aDspe2lmKENbKytoXT09PSciJyl7aCsrLGI9MDticmVha31DW2hdPT09IlxcIj9fKz1DWysraF06Xys9Q1toXX1pZihiKXRocm93IG5ldyBUeXBlRXJyb3IoYFVudGVybWluYXRlZCBxdW90ZSBhdCAke2J9OiAke0d9YCl9aWYoIV8pdGhyb3cgbmV3IFR5cGVFcnJvcihgTWlzc2luZyBwYXJhbWV0ZXIgbmFtZSBhdCAke2h9OiAke0d9YCk7cmV0dXJuIF99Zm9yKDtoPEMubGVuZ3RoOyl7Y29uc3QgXz1DW2hdLGI9c1tfXTtpZihiKXlpZWxke3R5cGU6YixpbmRleDpoKyssdmFsdWU6X307ZWxzZSBpZihfPT09IlxcIil5aWVsZHt0eXBlOiJFU0NBUEVEIixpbmRleDpoKyssdmFsdWU6Q1toKytdfTtlbHNlIGlmKF89PT0iOiIpe2NvbnN0ICQ9VygpO3lpZWxke3R5cGU6IlBBUkFNIixpbmRleDpoLHZhbHVlOiR9fWVsc2UgaWYoXz09PSIqIil7Y29uc3QgJD1XKCk7eWllbGR7dHlwZToiV0lMRENBUkQiLGluZGV4OmgsdmFsdWU6JH19ZWxzZSB5aWVsZHt0eXBlOiJDSEFSIixpbmRleDpoLHZhbHVlOkNbaCsrXX19cmV0dXJue3R5cGU6IkVORCIsaW5kZXg6aCx2YWx1ZToiIn19Y2xhc3MgdmV7Y29uc3RydWN0b3IoQyl7dGhpcy50b2tlbnM9Q31wZWVrKCl7aWYoIXRoaXMuX3BlZWspe2NvbnN0IEM9dGhpcy50b2tlbnMubmV4dCgpO3RoaXMuX3BlZWs9Qy52YWx1ZX1yZXR1cm4gdGhpcy5fcGVla310cnlDb25zdW1lKEMpe2NvbnN0IGg9dGhpcy5wZWVrKCk7aWYoaC50eXBlPT09QylyZXR1cm4gdGhpcy5fcGVlaz12b2lkIDAsaC52YWx1ZX1jb25zdW1lKEMpe2NvbnN0IGg9dGhpcy50cnlDb25zdW1lKEMpO2lmKGghPT12b2lkIDApcmV0dXJuIGg7Y29uc3R7dHlwZTpXLGluZGV4Ol99PXRoaXMucGVlaygpO3Rocm93IG5ldyBUeXBlRXJyb3IoYFVuZXhwZWN0ZWQgJHtXfSBhdCAke199LCBleHBlY3RlZCAke0N9OiAke0d9YCl9dGV4dCgpe2xldCBDPSIiLGg7Zm9yKDtoPXRoaXMudHJ5Q29uc3VtZSgiQ0hBUiIpfHx0aGlzLnRyeUNvbnN1bWUoIkVTQ0FQRUQiKTspQys9aDtyZXR1cm4gQ319Y2xhc3MgZ2V7Y29uc3RydWN0b3IoQyl7dGhpcy50b2tlbnM9Q319Zj1nZTtmdW5jdGlvbiBfZShaLEM9e30pe2NvbnN0e2VuY29kZVBhdGg6aD1ZfT1DLFc9bmV3IHZlKHAoWikpO2Z1bmN0aW9uIF8oJCl7Y29uc3QgTT1bXTtmb3IoOzspe2NvbnN0IGRlPVcudGV4dCgpO2RlJiZNLnB1c2goe3R5cGU6InRleHQiLHZhbHVlOmgoZGUpfSk7Y29uc3QgZmU9Vy50cnlDb25zdW1lKCJQQVJBTSIpO2lmKGZlKXtNLnB1c2goe3R5cGU6InBhcmFtIixuYW1lOmZlfSk7Y29udGludWV9Y29uc3QgRWU9Vy50cnlDb25zdW1lKCJXSUxEQ0FSRCIpO2lmKEVlKXtNLnB1c2goe3R5cGU6IndpbGRjYXJkIixuYW1lOkVlfSk7Y29udGludWV9aWYoVy50cnlDb25zdW1lKCJ7Iikpe00ucHVzaCh7dHlwZToiZ3JvdXAiLHRva2VuczpfKCJ9Iil9KTtjb250aW51ZX1yZXR1cm4gVy5jb25zdW1lKCQpLE19fWNvbnN0IGI9XygiRU5EIik7cmV0dXJuIG5ldyBnZShiKX1mdW5jdGlvbiBaZShaLEM9e30pe2NvbnN0e2VuY29kZTpoPWVuY29kZVVSSUNvbXBvbmVudCxkZWxpbWl0ZXI6Vz1sfT1DLF89WiBpbnN0YW5jZW9mIGdlP1o6X2UoWixDKSxiPWhlKF8udG9rZW5zLFcsaCk7cmV0dXJuIGZ1bmN0aW9uKE09e30pe2NvbnN0W2RlLC4uLmZlXT1iKE0pO2lmKGZlLmxlbmd0aCl0aHJvdyBuZXcgVHlwZUVycm9yKGBNaXNzaW5nIHBhcmFtZXRlcnM6ICR7ZmUuam9pbigiLCAiKX1gKTtyZXR1cm4gZGV9fWZ1bmN0aW9uIGhlKFosQyxoKXtjb25zdCBXPVoubWFwKF89PkkoXyxDLGgpKTtyZXR1cm4gXz0+e2NvbnN0IGI9WyIiXTtmb3IoY29uc3QgJCBvZiBXKXtjb25zdFtNLC4uLmRlXT0kKF8pO2JbMF0rPU0sYi5wdXNoKC4uLmRlKX1yZXR1cm4gYn19ZnVuY3Rpb24gSShaLEMsaCl7aWYoWi50eXBlPT09InRleHQiKXJldHVybigpPT5bWi52YWx1ZV07aWYoWi50eXBlPT09Imdyb3VwIil7Y29uc3QgXz1oZShaLnRva2VucyxDLGgpO3JldHVybiBiPT57Y29uc3RbJCwuLi5NXT1fKGIpO3JldHVybiBNLmxlbmd0aD9bIiJdOlskXX19Y29uc3QgVz1ofHxZO3JldHVybiBaLnR5cGU9PT0id2lsZGNhcmQiJiZoIT09ITE/Xz0+e2NvbnN0IGI9X1taLm5hbWVdO2lmKGI9PW51bGwpcmV0dXJuWyIiLFoubmFtZV07aWYoIUFycmF5LmlzQXJyYXkoYil8fGIubGVuZ3RoPT09MCl0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCAiJHtaLm5hbWV9IiB0byBiZSBhIG5vbi1lbXB0eSBhcnJheWApO3JldHVybltiLm1hcCgoJCxNKT0+e2lmKHR5cGVvZiAkIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCAiJHtaLm5hbWV9LyR7TX0iIHRvIGJlIGEgc3RyaW5nYCk7cmV0dXJuIFcoJCl9KS5qb2luKEMpXX06Xz0+e2NvbnN0IGI9X1taLm5hbWVdO2lmKGI9PW51bGwpcmV0dXJuWyIiLFoubmFtZV07aWYodHlwZW9mIGIhPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkICIke1oubmFtZX0iIHRvIGJlIGEgc3RyaW5nYCk7cmV0dXJuW1coYildfX1mdW5jdGlvbiBqKFosQz17fSl7Y29uc3R7ZGVjb2RlOmg9ZGVjb2RlVVJJQ29tcG9uZW50LGRlbGltaXRlcjpXPWx9PUMse3JlZ2V4cDpfLGtleXM6Yn09UihaLEMpLCQ9Yi5tYXAoTT0+aD09PSExP1k6TS50eXBlPT09InBhcmFtIj9oOmRlPT5kZS5zcGxpdChXKS5tYXAoaCkpO3JldHVybiBmdW5jdGlvbihkZSl7Y29uc3QgZmU9Xy5leGVjKGRlKTtpZighZmUpcmV0dXJuITE7Y29uc3QgRWU9ZmVbMF0scGU9T2JqZWN0LmNyZWF0ZShudWxsKTtmb3IobGV0IGplPTE7amU8ZmUubGVuZ3RoO2plKyspe2lmKGZlW2plXT09PXZvaWQgMCljb250aW51ZTtjb25zdCBUZT1iW2plLTFdLERlPSRbamUtMV07cGVbVGUubmFtZV09RGUoZmVbamVdKX1yZXR1cm57cGF0aDpFZSxwYXJhbXM6cGV9fX1mdW5jdGlvbiBSKFosQz17fSl7Y29uc3R7ZGVsaW1pdGVyOmg9bCxlbmQ6Vz0hMCxzZW5zaXRpdmU6Xz0hMSx0cmFpbGluZzpiPSEwfT1DLCQ9W10sTT1bXSxkZT1fPyIiOiJpIixFZT0oQXJyYXkuaXNBcnJheShaKT9aOltaXSkubWFwKFRlPT5UZSBpbnN0YW5jZW9mIGdlP1RlOl9lKFRlLEMpKTtmb3IoY29uc3R7dG9rZW5zOlRlfW9mIEVlKWZvcihjb25zdCBEZSBvZiBVKFRlLDAsW10pKXtjb25zdCB6ZT1jZShEZSxoLCQpO00ucHVzaCh6ZSl9bGV0IHBlPWBeKD86JHtNLmpvaW4oInwiKX0pYDtyZXR1cm4gYiYmKHBlKz1gKD86JHtRKGgpfSQpP2ApLHBlKz1XPyIkIjpgKD89JHtRKGgpfXwkKWAse3JlZ2V4cDpuZXcgUmVnRXhwKHBlLGRlKSxrZXlzOiR9fWZ1bmN0aW9uKlUoWixDLGgpe2lmKEM9PT1aLmxlbmd0aClyZXR1cm4geWllbGQgaDtjb25zdCBXPVpbQ107aWYoVy50eXBlPT09Imdyb3VwIil7Y29uc3QgXz1oLnNsaWNlKCk7Zm9yKGNvbnN0IGIgb2YgVShXLnRva2VucywwLF8pKXlpZWxkKkZuKFUoWixDKzEsYikpfWVsc2UgaC5wdXNoKFcpO3lpZWxkKkZuKFUoWixDKzEsaCkpfWZ1bmN0aW9uIGNlKFosQyxoKXtsZXQgVz0iIixfPSIiLGI9ITA7Zm9yKGxldCAkPTA7JDxaLmxlbmd0aDskKyspe2NvbnN0IE09WlskXTtpZihNLnR5cGU9PT0idGV4dCIpe1crPVEoTS52YWx1ZSksXys9TS52YWx1ZSxifHwoYj1NLnZhbHVlLmluY2x1ZGVzKEMpKTtjb250aW51ZX1pZihNLnR5cGU9PT0icGFyYW0ifHxNLnR5cGU9PT0id2lsZGNhcmQiKXtpZighYiYmIV8pdGhyb3cgbmV3IFR5cGVFcnJvcihgTWlzc2luZyB0ZXh0IGFmdGVyICIke00ubmFtZX0iOiAke0d9YCk7TS50eXBlPT09InBhcmFtIj9XKz1gKCR7SyhDLGI/IiI6Xyl9KylgOlcrPSIoW1xcc1xcU10rKSIsaC5wdXNoKE0pLF89IiIsYj0hMTtjb250aW51ZX19cmV0dXJuIFd9ZnVuY3Rpb24gSyhaLEMpe3JldHVybiBDLmxlbmd0aDwyP1oubGVuZ3RoPDI/YFteJHtRKForQyl9XWA6YCg/Oig/ISR7UShaKX0pW14ke1EoQyl9XSlgOloubGVuZ3RoPDI/YCg/Oig/ISR7UShDKX0pW14ke1EoWil9XSlgOmAoPzooPyEke1EoQyl9fCR7UShaKX0pW1xcc1xcU10pYH1mdW5jdGlvbiBuZShaKXtyZXR1cm4gWi50b2tlbnMubWFwKGZ1bmN0aW9uIEMoaCxXLF8pe2lmKGgudHlwZT09PSJ0ZXh0IilyZXR1cm4gcShoLnZhbHVlKTtpZihoLnR5cGU9PT0iZ3JvdXAiKXJldHVybmB7JHtoLnRva2Vucy5tYXAoQykuam9pbigiIil9fWA7Y29uc3QgJD1hZShoLm5hbWUpJiZ1ZShfW1crMV0pP2gubmFtZTpKU09OLnN0cmluZ2lmeShoLm5hbWUpO2lmKGgudHlwZT09PSJwYXJhbSIpcmV0dXJuYDokeyR9YDtpZihoLnR5cGU9PT0id2lsZGNhcmQiKXJldHVybmAqJHskfWA7dGhyb3cgbmV3IFR5cGVFcnJvcihgVW5leHBlY3RlZCB0b2tlbjogJHtofWApfSkuam9pbigiIil9ZnVuY3Rpb24gYWUoWil7Y29uc3RbQywuLi5oXT1aO3JldHVybiBlZS50ZXN0KEMpP2guZXZlcnkoVz0+bGUudGVzdChXKSk6ITF9ZnVuY3Rpb24gdWUoWil7cmV0dXJuKFo9PW51bGw/dm9pZCAwOloudHlwZSkhPT0idGV4dCI/ITA6IWxlLnRlc3QoWi52YWx1ZVswXSl9fX1dKTsKK30oKSk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy80MzkzLjEyYmYyNTdjLmFzeW5jLmpzIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy80MzkzLjEyYmYyNTdjLmFzeW5jLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkyZjcxZTkKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzQzOTMuMTJiZjI1N2MuYXN5bmMuanMKQEAgLTAsMCArMSwxMCBAQAorInVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvPXNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm98fFtdKS5wdXNoKFtbNDM5M10sezQzOTM6ZnVuY3Rpb24oRGUsRixnKXtnLmQoRix7WjpmdW5jdGlvbigpe3JldHVybiBiZX19KTt2YXIgbz1nKDY3Mjk0KSxLPWcoOTM5NjcpLG09Zy5uKEspLFo9Zyg5ODQyMyksRT1nKDUzMTI0KSxYPWcoOTg2NzUpLFY9Zyg0ODA1NCksVT1nKDkyMzk4KSxKPWZ1bmN0aW9uKGUsYSl7dmFyIGk9e307Zm9yKHZhciB0IGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsdCkmJmEuaW5kZXhPZih0KTwwJiYoaVt0XT1lW3RdKTtpZihlIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIHI9MCx0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7cjx0Lmxlbmd0aDtyKyspYS5pbmRleE9mKHRbcl0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLHRbcl0pJiYoaVt0W3JdXT1lW3Rbcl1dKTtyZXR1cm4gaX0sdz1lPT57dmFye3ByZWZpeENsczphLGNsYXNzTmFtZTppLGhvdmVyYWJsZTp0PSEwfT1lLHI9SihlLFsicHJlZml4Q2xzIiwiY2xhc3NOYW1lIiwiaG92ZXJhYmxlIl0pO2NvbnN0e2dldFByZWZpeENsczpsfT1vLnVzZUNvbnRleHQoRS5FXyksYj1sKCJjYXJkIixhKSx5PW0oKShgJHtifS1ncmlkYCxpLHtbYCR7Yn0tZ3JpZC1ob3ZlcmFibGVgXTp0fSk7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgiZGl2IixPYmplY3QuYXNzaWduKHt9LHIse2NsYXNzTmFtZTp5fSkpfSxuPWcoMTE1NjgpLHU9ZygxNDc0NyksUT1nKDgzNTU5KSxZPWcoODMyNjIpO2NvbnN0IHE9ZT0+e2NvbnN0e2FudENsczphLGNvbXBvbmVudENsczppLGhlYWRlckhlaWdodDp0LGhlYWRlclBhZGRpbmc6cix0YWJzTWFyZ2luQm90dG9tOmx9PWU7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7ZGlzcGxheToiZmxleCIsanVzdGlmeUNvbnRlbnQ6ImNlbnRlciIsZmxleERpcmVjdGlvbjoiY29sdW1uIixtaW5IZWlnaHQ6dCxtYXJnaW5Cb3R0b206LTEscGFkZGluZzpgMCAkeygwLG4uYmYpKHIpfWAsY29sb3I6ZS5jb2xvclRleHRIZWFkaW5nLGZvbnRXZWlnaHQ6ZS5mb250V2VpZ2h0U3Ryb25nLGZvbnRTaXplOmUuaGVhZGVyRm9udFNpemUsYmFja2dyb3VuZDplLmhlYWRlckJnLGJvcmRlckJvdHRvbTpgJHsoMCxuLmJmKShlLmxpbmVXaWR0aCl9ICR7ZS5saW5lVHlwZX0gJHtlLmNvbG9yQm9yZGVyU2Vjb25kYXJ5fWAsYm9yZGVyUmFkaXVzOmAkeygwLG4uYmYpKGUuYm9yZGVyUmFkaXVzTEcpfSAkeygwLG4uYmYpKGUuYm9yZGVyUmFkaXVzTEcpfSAwIDBgfSwoMCx1LmRGKSgpKSx7IiYtd3JhcHBlciI6e3dpZHRoOiIxMDAlIixkaXNwbGF5OiJmbGV4IixhbGlnbkl0ZW1zOiJjZW50ZXIifSwiJi10aXRsZSI6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHtkaXNwbGF5OiJpbmxpbmUtYmxvY2siLGZsZXg6MX0sdS52Uykse1tgCisgICAgICAgICAgPiAke2l9LXR5cG9ncmFwaHksCisgICAgICAgICAgPiAke2l9LXR5cG9ncmFwaHktZWRpdC1jb250ZW50CisgICAgICAgIGBdOntpbnNldElubGluZVN0YXJ0OjAsbWFyZ2luVG9wOjAsbWFyZ2luQm90dG9tOjB9fSksW2Ake2F9LXRhYnMtdG9wYF06e2NsZWFyOiJib3RoIixtYXJnaW5Cb3R0b206bCxjb2xvcjplLmNvbG9yVGV4dCxmb250V2VpZ2h0OiJub3JtYWwiLGZvbnRTaXplOmUuZm9udFNpemUsIiYtYmFyIjp7Ym9yZGVyQm90dG9tOmAkeygwLG4uYmYpKGUubGluZVdpZHRoKX0gJHtlLmxpbmVUeXBlfSAke2UuY29sb3JCb3JkZXJTZWNvbmRhcnl9YH19fSl9LF89ZT0+e2NvbnN0e2NhcmRQYWRkaW5nQmFzZTphLGNvbG9yQm9yZGVyU2Vjb25kYXJ5OmksY2FyZFNoYWRvdzp0LGxpbmVXaWR0aDpyfT1lO3JldHVybnt3aWR0aDoiMzMuMzMlIixwYWRkaW5nOmEsYm9yZGVyOjAsYm9yZGVyUmFkaXVzOjAsYm94U2hhZG93OmAKKyAgICAgICR7KDAsbi5iZikocil9IDAgMCAwICR7aX0sCisgICAgICAwICR7KDAsbi5iZikocil9IDAgMCAke2l9LAorICAgICAgJHsoMCxuLmJmKShyKX0gJHsoMCxuLmJmKShyKX0gMCAwICR7aX0sCisgICAgICAkeygwLG4uYmYpKHIpfSAwIDAgMCAke2l9IGluc2V0LAorICAgICAgMCAkeygwLG4uYmYpKHIpfSAwIDAgJHtpfSBpbnNldDsKKyAgICBgLHRyYW5zaXRpb246YGFsbCAke2UubW90aW9uRHVyYXRpb25NaWR9YCwiJi1ob3ZlcmFibGU6aG92ZXIiOntwb3NpdGlvbjoicmVsYXRpdmUiLHpJbmRleDoxLGJveFNoYWRvdzp0fX19LGs9ZT0+e2NvbnN0e2NvbXBvbmVudENsczphLGljb25DbHM6aSxhY3Rpb25zTGlNYXJnaW46dCxjYXJkQWN0aW9uc0ljb25TaXplOnIsY29sb3JCb3JkZXJTZWNvbmRhcnk6bCxhY3Rpb25zQmc6Yn09ZTtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHttYXJnaW46MCxwYWRkaW5nOjAsbGlzdFN0eWxlOiJub25lIixiYWNrZ3JvdW5kOmIsYm9yZGVyVG9wOmAkeygwLG4uYmYpKGUubGluZVdpZHRoKX0gJHtlLmxpbmVUeXBlfSAke2x9YCxkaXNwbGF5OiJmbGV4Iixib3JkZXJSYWRpdXM6YDAgMCAkeygwLG4uYmYpKGUuYm9yZGVyUmFkaXVzTEcpfSAkeygwLG4uYmYpKGUuYm9yZGVyUmFkaXVzTEcpfWB9LCgwLHUuZEYpKCkpLHsiJiA+IGxpIjp7bWFyZ2luOnQsY29sb3I6ZS5jb2xvclRleHREZXNjcmlwdGlvbix0ZXh0QWxpZ246ImNlbnRlciIsIj4gc3BhbiI6e3Bvc2l0aW9uOiJyZWxhdGl2ZSIsZGlzcGxheToiYmxvY2siLG1pbldpZHRoOmUuY2FsYyhlLmNhcmRBY3Rpb25zSWNvblNpemUpLm11bCgyKS5lcXVhbCgpLGZvbnRTaXplOmUuZm9udFNpemUsbGluZUhlaWdodDplLmxpbmVIZWlnaHQsY3Vyc29yOiJwb2ludGVyIiwiJjpob3ZlciI6e2NvbG9yOmUuY29sb3JQcmltYXJ5LHRyYW5zaXRpb246YGNvbG9yICR7ZS5tb3Rpb25EdXJhdGlvbk1pZH1gfSxbYGE6bm90KCR7YX0tYnRuKSwgPiAke2l9YF06e2Rpc3BsYXk6ImlubGluZS1ibG9jayIsd2lkdGg6IjEwMCUiLGNvbG9yOmUuY29sb3JUZXh0RGVzY3JpcHRpb24sbGluZUhlaWdodDooMCxuLmJmKShlLmZvbnRIZWlnaHQpLHRyYW5zaXRpb246YGNvbG9yICR7ZS5tb3Rpb25EdXJhdGlvbk1pZH1gLCImOmhvdmVyIjp7Y29sb3I6ZS5jb2xvclByaW1hcnl9fSxbYD4gJHtpfWBdOntmb250U2l6ZTpyLGxpbmVIZWlnaHQ6KDAsbi5iZikoZS5jYWxjKHIpLm11bChlLmxpbmVIZWlnaHQpLmVxdWFsKCkpfX0sIiY6bm90KDpsYXN0LWNoaWxkKSI6e2JvcmRlcklubGluZUVuZDpgJHsoMCxuLmJmKShlLmxpbmVXaWR0aCl9ICR7ZS5saW5lVHlwZX0gJHtsfWB9fX0pfSxlZT1lPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe21hcmdpbjpgJHsoMCxuLmJmKShlLmNhbGMoZS5tYXJnaW5YWFMpLm11bCgtMSkuZXF1YWwoKSl9IDBgLGRpc3BsYXk6ImZsZXgifSwoMCx1LmRGKSgpKSx7IiYtYXZhdGFyIjp7cGFkZGluZ0lubGluZUVuZDplLnBhZGRpbmd9LCImLWRldGFpbCI6e292ZXJmbG93OiJoaWRkZW4iLGZsZXg6MSwiPiBkaXY6bm90KDpsYXN0LWNoaWxkKSI6e21hcmdpbkJvdHRvbTplLm1hcmdpblhTfX0sIiYtdGl0bGUiOk9iamVjdC5hc3NpZ24oe2NvbG9yOmUuY29sb3JUZXh0SGVhZGluZyxmb250V2VpZ2h0OmUuZm9udFdlaWdodFN0cm9uZyxmb250U2l6ZTplLmZvbnRTaXplTEd9LHUudlMpLCImLWRlc2NyaXB0aW9uIjp7Y29sb3I6ZS5jb2xvclRleHREZXNjcmlwdGlvbn19KSxhZT1lPT57Y29uc3R7Y29tcG9uZW50Q2xzOmEsY29sb3JGaWxsQWx0ZXI6aSxoZWFkZXJQYWRkaW5nOnQsYm9keVBhZGRpbmc6cn09ZTtyZXR1cm57W2Ake2F9LWhlYWRgXTp7cGFkZGluZzpgMCAkeygwLG4uYmYpKHQpfWAsYmFja2dyb3VuZDppLCImLXRpdGxlIjp7Zm9udFNpemU6ZS5mb250U2l6ZX19LFtgJHthfS1ib2R5YF06e3BhZGRpbmc6YCR7KDAsbi5iZikoZS5wYWRkaW5nKX0gJHsoMCxuLmJmKShyKX1gfX19LHRlPWU9Pntjb25zdHtjb21wb25lbnRDbHM6YX09ZTtyZXR1cm57b3ZlcmZsb3c6ImhpZGRlbiIsW2Ake2F9LWJvZHlgXTp7dXNlclNlbGVjdDoibm9uZSJ9fX0scmU9ZT0+e2NvbnN0e2NvbXBvbmVudENsczphLGNhcmRTaGFkb3c6aSxjYXJkSGVhZFBhZGRpbmc6dCxjb2xvckJvcmRlclNlY29uZGFyeTpyLGJveFNoYWRvd1RlcnRpYXJ5OmwsYm9keVBhZGRpbmc6YixleHRyYUNvbG9yOnl9PWU7cmV0dXJue1thXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sKDAsdS5XZikoZSkpLHtwb3NpdGlvbjoicmVsYXRpdmUiLGJhY2tncm91bmQ6ZS5jb2xvckJnQ29udGFpbmVyLGJvcmRlclJhZGl1czplLmJvcmRlclJhZGl1c0xHLFtgJjpub3QoJHthfS1ib3JkZXJlZClgXTp7Ym94U2hhZG93Omx9LFtgJHthfS1oZWFkYF06cShlKSxbYCR7YX0tZXh0cmFgXTp7bWFyZ2luSW5saW5lU3RhcnQ6ImF1dG8iLGNvbG9yOnksZm9udFdlaWdodDoibm9ybWFsIixmb250U2l6ZTplLmZvbnRTaXplfSxbYCR7YX0tYm9keWBdOk9iamVjdC5hc3NpZ24oe3BhZGRpbmc6Yixib3JkZXJSYWRpdXM6YDAgMCAkeygwLG4uYmYpKGUuYm9yZGVyUmFkaXVzTEcpfSAkeygwLG4uYmYpKGUuYm9yZGVyUmFkaXVzTEcpfWB9LCgwLHUuZEYpKCkpLFtgJHthfS1ncmlkYF06XyhlKSxbYCR7YX0tY292ZXJgXTp7Ij4gKiI6e2Rpc3BsYXk6ImJsb2NrIix3aWR0aDoiMTAwJSIsYm9yZGVyUmFkaXVzOmAkeygwLG4uYmYpKGUuYm9yZGVyUmFkaXVzTEcpfSAkeygwLG4uYmYpKGUuYm9yZGVyUmFkaXVzTEcpfSAwIDBgfX0sW2Ake2F9LWFjdGlvbnNgXTprKGUpLFtgJHthfS1tZXRhYF06ZWUoZSl9KSxbYCR7YX0tYm9yZGVyZWRgXTp7Ym9yZGVyOmAkeygwLG4uYmYpKGUubGluZVdpZHRoKX0gJHtlLmxpbmVUeXBlfSAke3J9YCxbYCR7YX0tY292ZXJgXTp7bWFyZ2luVG9wOi0xLG1hcmdpbklubGluZVN0YXJ0Oi0xLG1hcmdpbklubGluZUVuZDotMX19LFtgJHthfS1ob3ZlcmFibGVgXTp7Y3Vyc29yOiJwb2ludGVyIix0cmFuc2l0aW9uOmBib3gtc2hhZG93ICR7ZS5tb3Rpb25EdXJhdGlvbk1pZH0sIGJvcmRlci1jb2xvciAke2UubW90aW9uRHVyYXRpb25NaWR9YCwiJjpob3ZlciI6e2JvcmRlckNvbG9yOiJ0cmFuc3BhcmVudCIsYm94U2hhZG93Oml9fSxbYCR7YX0tY29udGFpbi1ncmlkYF06e2JvcmRlclJhZGl1czpgJHsoMCxuLmJmKShlLmJvcmRlclJhZGl1c0xHKX0gJHsoMCxuLmJmKShlLmJvcmRlclJhZGl1c0xHKX0gMCAwIGAsW2Ake2F9LWJvZHlgXTp7ZGlzcGxheToiZmxleCIsZmxleFdyYXA6IndyYXAifSxbYCY6bm90KCR7YX0tbG9hZGluZykgJHthfS1ib2R5YF06e21hcmdpbkJsb2NrU3RhcnQ6ZS5jYWxjKGUubGluZVdpZHRoKS5tdWwoLTEpLmVxdWFsKCksbWFyZ2luSW5saW5lU3RhcnQ6ZS5jYWxjKGUubGluZVdpZHRoKS5tdWwoLTEpLmVxdWFsKCkscGFkZGluZzowfX0sW2Ake2F9LWNvbnRhaW4tdGFic2BdOntbYD4gZGl2JHthfS1oZWFkYF06e21pbkhlaWdodDowLFtgJHthfS1oZWFkLXRpdGxlLCAke2F9LWV4dHJhYF06e3BhZGRpbmdUb3A6dH19fSxbYCR7YX0tdHlwZS1pbm5lcmBdOmFlKGUpLFtgJHthfS1sb2FkaW5nYF06dGUoZSksW2Ake2F9LXJ0bGBdOntkaXJlY3Rpb246InJ0bCJ9fX0saWU9ZT0+e2NvbnN0e2NvbXBvbmVudENsczphLGJvZHlQYWRkaW5nU006aSxoZWFkZXJQYWRkaW5nU006dCxoZWFkZXJIZWlnaHRTTTpyLGhlYWRlckZvbnRTaXplU006bH09ZTtyZXR1cm57W2Ake2F9LXNtYWxsYF06e1tgPiAke2F9LWhlYWRgXTp7bWluSGVpZ2h0OnIscGFkZGluZzpgMCAkeygwLG4uYmYpKHQpfWAsZm9udFNpemU6bCxbYD4gJHthfS1oZWFkLXdyYXBwZXJgXTp7W2A+ICR7YX0tZXh0cmFgXTp7Zm9udFNpemU6ZS5mb250U2l6ZX19fSxbYD4gJHthfS1ib2R5YF06e3BhZGRpbmc6aX19LFtgJHthfS1zbWFsbCR7YX0tY29udGFpbi10YWJzYF06e1tgPiAke2F9LWhlYWRgXTp7W2Ake2F9LWhlYWQtdGl0bGUsICR7YX0tZXh0cmFgXTp7cGFkZGluZ1RvcDowLGRpc3BsYXk6ImZsZXgiLGFsaWduSXRlbXM6ImNlbnRlciJ9fX19fSxuZT1lPT57dmFyIGEsaTtyZXR1cm57aGVhZGVyQmc6InRyYW5zcGFyZW50IixoZWFkZXJGb250U2l6ZTplLmZvbnRTaXplTEcsaGVhZGVyRm9udFNpemVTTTplLmZvbnRTaXplLGhlYWRlckhlaWdodDplLmZvbnRTaXplTEcqZS5saW5lSGVpZ2h0TEcrZS5wYWRkaW5nKjIsaGVhZGVySGVpZ2h0U006ZS5mb250U2l6ZSplLmxpbmVIZWlnaHQrZS5wYWRkaW5nWFMqMixhY3Rpb25zQmc6ZS5jb2xvckJnQ29udGFpbmVyLGFjdGlvbnNMaU1hcmdpbjpgJHtlLnBhZGRpbmdTTX1weCAwYCx0YWJzTWFyZ2luQm90dG9tOi1lLnBhZGRpbmctZS5saW5lV2lkdGgsZXh0cmFDb2xvcjplLmNvbG9yVGV4dCxib2R5UGFkZGluZ1NNOjEyLGhlYWRlclBhZGRpbmdTTToxMixib2R5UGFkZGluZzooYT1lLmJvZHlQYWRkaW5nKSE9PW51bGwmJmEhPT12b2lkIDA/YTplLnBhZGRpbmdMRyxoZWFkZXJQYWRkaW5nOihpPWUuaGVhZGVyUGFkZGluZykhPT1udWxsJiZpIT09dm9pZCAwP2k6ZS5wYWRkaW5nTEd9fTt2YXIgb2U9KDAsUS5JJCkoIkNhcmQiLGU9Pntjb25zdCBhPSgwLFkuSVgpKGUse2NhcmRTaGFkb3c6ZS5ib3hTaGFkb3dDYXJkLGNhcmRIZWFkUGFkZGluZzplLnBhZGRpbmcsY2FyZFBhZGRpbmdCYXNlOmUucGFkZGluZ0xHLGNhcmRBY3Rpb25zSWNvblNpemU6ZS5mb250U2l6ZX0pO3JldHVybltyZShhKSxpZShhKV19LG5lKSxkZT1nKDI3ODMzKSxMPWZ1bmN0aW9uKGUsYSl7dmFyIGk9e307Zm9yKHZhciB0IGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsdCkmJmEuaW5kZXhPZih0KTwwJiYoaVt0XT1lW3RdKTtpZihlIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIHI9MCx0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7cjx0Lmxlbmd0aDtyKyspYS5pbmRleE9mKHRbcl0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLHRbcl0pJiYoaVt0W3JdXT1lW3Rbcl1dKTtyZXR1cm4gaX07Y29uc3Qgc2U9ZT0+e2NvbnN0e2FjdGlvbkNsYXNzZXM6YSxhY3Rpb25zOmk9W10sYWN0aW9uU3R5bGU6dH09ZTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJ1bCIse2NsYXNzTmFtZTphLHN0eWxlOnR9LGkubWFwKChyLGwpPT57Y29uc3QgYj1gYWN0aW9uLSR7bH1gO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoImxpIix7c3R5bGU6e3dpZHRoOmAkezEwMC9pLmxlbmd0aH0lYH0sa2V5OmJ9LG8uY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCxyKSl9KSl9O3ZhciBsZT1vLmZvcndhcmRSZWYoKGUsYSk9Pntjb25zdHtwcmVmaXhDbHM6aSxjbGFzc05hbWU6dCxyb290Q2xhc3NOYW1lOnIsc3R5bGU6bCxleHRyYTpiLGhlYWRTdHlsZTp5PXt9LGJvZHlTdHlsZTpoPXt9LHRpdGxlOiQsbG9hZGluZzp4LGJvcmRlcmVkOk8sdmFyaWFudDpqLHNpemU6Tix0eXBlOkgsY292ZXI6SSxhY3Rpb25zOnosdGFiTGlzdDpTLGNoaWxkcmVuOlAsYWN0aXZlVGFiS2V5OlIsZGVmYXVsdEFjdGl2ZVRhYktleTpmZSx0YWJCYXJFeHRyYUNvbnRlbnQ6bWUsaG92ZXJhYmxlOnVlLHRhYlByb3BzOnllPXt9LGNsYXNzTmFtZXM6QixzdHlsZXM6TX09ZSxoZT1MKGUsWyJwcmVmaXhDbHMiLCJjbGFzc05hbWUiLCJyb290Q2xhc3NOYW1lIiwic3R5bGUiLCJleHRyYSIsImhlYWRTdHlsZSIsImJvZHlTdHlsZSIsInRpdGxlIiwibG9hZGluZyIsImJvcmRlcmVkIiwidmFyaWFudCIsInNpemUiLCJ0eXBlIiwiY292ZXIiLCJhY3Rpb25zIiwidGFiTGlzdCIsImNoaWxkcmVuIiwiYWN0aXZlVGFiS2V5IiwiZGVmYXVsdEFjdGl2ZVRhYktleSIsInRhYkJhckV4dHJhQ29udGVudCIsImhvdmVyYWJsZSIsInRhYlByb3BzIiwiY2xhc3NOYW1lcyIsInN0eWxlcyJdKSx7Z2V0UHJlZml4Q2xzOnZlLGRpcmVjdGlvbjpwZSxjYXJkOmZ9PW8udXNlQ29udGV4dChFLkVfKSxbJGVdPSgwLGRlLlopKCJjYXJkIixqLE8pLFNlPWM9Pnt2YXIgZDsoZD1lLm9uVGFiQ2hhbmdlKT09PW51bGx8fGQ9PT12b2lkIDB8fGQuY2FsbChlLGMpfSx2PWM9Pnt2YXIgZDtyZXR1cm4gbSgpKChkPWY9PW51bGw/dm9pZCAwOmYuY2xhc3NOYW1lcyk9PT1udWxsfHxkPT09dm9pZCAwP3ZvaWQgMDpkW2NdLEI9PW51bGw/dm9pZCAwOkJbY10pfSxwPWM9Pnt2YXIgZDtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LChkPWY9PW51bGw/dm9pZCAwOmYuc3R5bGVzKT09PW51bGx8fGQ9PT12b2lkIDA/dm9pZCAwOmRbY10pLE09PW51bGw/dm9pZCAwOk1bY10pfSxDZT1vLnVzZU1lbW8oKCk9PntsZXQgYz0hMTtyZXR1cm4gby5DaGlsZHJlbi5mb3JFYWNoKFAsZD0+eyhkPT1udWxsP3ZvaWQgMDpkLnR5cGUpPT09dyYmKGM9ITApfSksY30sW1BdKSxzPXZlKCJjYXJkIixpKSxbeGUsT2UsamVdPW9lKHMpLHplPW8uY3JlYXRlRWxlbWVudChWLlose2xvYWRpbmc6ITAsYWN0aXZlOiEwLHBhcmFncmFwaDp7cm93czo0fSx0aXRsZTohMX0sUCksVz1SIT09dm9pZCAwLFBlPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx5ZSkse1tXPyJhY3RpdmVLZXkiOiJkZWZhdWx0QWN0aXZlS2V5Il06Vz9SOmZlLHRhYkJhckV4dHJhQ29udGVudDptZX0pO2xldCBEO2NvbnN0IEM9KDAsWC5aKShOKSxFZT0hQ3x8Qz09PSJkZWZhdWx0Ij8ibGFyZ2UiOkMsQT1TP28uY3JlYXRlRWxlbWVudChVLlosT2JqZWN0LmFzc2lnbih7c2l6ZTpFZX0sUGUse2NsYXNzTmFtZTpgJHtzfS1oZWFkLXRhYnNgLG9uQ2hhbmdlOlNlLGl0ZW1zOlMubWFwKGM9Pnt2YXJ7dGFiOmR9PWMsRz1MKGMsWyJ0YWIiXSk7cmV0dXJuIE9iamVjdC5hc3NpZ24oe2xhYmVsOmR9LEcpfSl9KSk6bnVsbDtpZigkfHxifHxBKXtjb25zdCBjPW0oKShgJHtzfS1oZWFkYCx2KCJoZWFkZXIiKSksZD1tKCkoYCR7c30taGVhZC10aXRsZWAsdigidGl0bGUiKSksRz1tKCkoYCR7c30tZXh0cmFgLHYoImV4dHJhIikpLFdlPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx5KSxwKCJoZWFkZXIiKSk7RD1vLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpjLHN0eWxlOldlfSxvLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpgJHtzfS1oZWFkLXdyYXBwZXJgfSwkJiZvLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpkLHN0eWxlOnAoInRpdGxlIil9LCQpLGImJm8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOkcsc3R5bGU6cCgiZXh0cmEiKX0sYikpLEEpfWNvbnN0IFRlPW0oKShgJHtzfS1jb3ZlcmAsdigiY292ZXIiKSksTmU9ST9vLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpUZSxzdHlsZTpwKCJjb3ZlciIpfSxJKTpudWxsLEJlPW0oKShgJHtzfS1ib2R5YCx2KCJib2R5IikpLE1lPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxoKSxwKCJib2R5IikpLEdlPW8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOkJlLHN0eWxlOk1lfSx4P3plOlApLHdlPW0oKShgJHtzfS1hY3Rpb25zYCx2KCJhY3Rpb25zIikpLExlPXohPW51bGwmJnoubGVuZ3RoP28uY3JlYXRlRWxlbWVudChzZSx7YWN0aW9uQ2xhc3Nlczp3ZSxhY3Rpb25TdHlsZTpwKCJhY3Rpb25zIiksYWN0aW9uczp6fSk6bnVsbCxIZT0oMCxaLlopKGhlLFsib25UYWJDaGFuZ2UiXSksSWU9bSgpKHMsZj09bnVsbD92b2lkIDA6Zi5jbGFzc05hbWUse1tgJHtzfS1sb2FkaW5nYF06eCxbYCR7c30tYm9yZGVyZWRgXTokZSE9PSJib3JkZXJsZXNzIixbYCR7c30taG92ZXJhYmxlYF06dWUsW2Ake3N9LWNvbnRhaW4tZ3JpZGBdOkNlLFtgJHtzfS1jb250YWluLXRhYnNgXTpTPT1udWxsP3ZvaWQgMDpTLmxlbmd0aCxbYCR7c30tJHtDfWBdOkMsW2Ake3N9LXR5cGUtJHtIfWBdOiEhSCxbYCR7c30tcnRsYF06cGU9PT0icnRsIn0sdCxyLE9lLGplKSxSZT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZj09bnVsbD92b2lkIDA6Zi5zdHlsZSksbCk7cmV0dXJuIHhlKG8uY3JlYXRlRWxlbWVudCgiZGl2IixPYmplY3QuYXNzaWduKHtyZWY6YX0sSGUse2NsYXNzTmFtZTpJZSxzdHlsZTpSZX0pLEQsTmUsR2UsTGUpKX0pLGNlPWZ1bmN0aW9uKGUsYSl7dmFyIGk9e307Zm9yKHZhciB0IGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsdCkmJmEuaW5kZXhPZih0KTwwJiYoaVt0XT1lW3RdKTtpZihlIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIHI9MCx0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7cjx0Lmxlbmd0aDtyKyspYS5pbmRleE9mKHRbcl0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLHRbcl0pJiYoaVt0W3JdXT1lW3Rbcl1dKTtyZXR1cm4gaX0sZ2U9ZT0+e2NvbnN0e3ByZWZpeENsczphLGNsYXNzTmFtZTppLGF2YXRhcjp0LHRpdGxlOnIsZGVzY3JpcHRpb246bH09ZSxiPWNlKGUsWyJwcmVmaXhDbHMiLCJjbGFzc05hbWUiLCJhdmF0YXIiLCJ0aXRsZSIsImRlc2NyaXB0aW9uIl0pLHtnZXRQcmVmaXhDbHM6eX09by51c2VDb250ZXh0KEUuRV8pLGg9eSgiY2FyZCIsYSksJD1tKCkoYCR7aH0tbWV0YWAsaSkseD10P28uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmAke2h9LW1ldGEtYXZhdGFyYH0sdCk6bnVsbCxPPXI/by5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YCR7aH0tbWV0YS10aXRsZWB9LHIpOm51bGwsaj1sP28uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmAke2h9LW1ldGEtZGVzY3JpcHRpb25gfSxsKTpudWxsLE49T3x8aj9vLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpgJHtofS1tZXRhLWRldGFpbGB9LE8saik6bnVsbDtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJkaXYiLE9iamVjdC5hc3NpZ24oe30sYix7Y2xhc3NOYW1lOiR9KSx4LE4pfTtjb25zdCBUPWxlO1QuR3JpZD13LFQuTWV0YT1nZTt2YXIgYmU9VH19XSk7CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzQ0NTMuMGUyMDc1M2MuYXN5bmMuanMgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzQ0NTMuMGUyMDc1M2MuYXN5bmMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTBlNGUxMQotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNDQ1My4wZTIwNzUzYy5hc3luYy5qcwpAQCAtMCwwICsxIEBACisidXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W10pLnB1c2goW1s0NDUzXSx7MzExOTk6ZnVuY3Rpb24oaixnLGUpe3ZhciBvPWUoMTQxMyksbj1lKDkxKSx2PWUoNjcyOTQpLHA9ZSg5MjE3OSksYz1lKDg1ODkzKSxEPVsiZmllbGRQcm9wcyIsIm1pbiIsInByb0ZpZWxkUHJvcHMiLCJtYXgiXSxCPWZ1bmN0aW9uKHIsQyl7dmFyIGg9ci5maWVsZFByb3BzLG09ci5taW4sbD1yLnByb0ZpZWxkUHJvcHMsZD1yLm1heCxhPSgwLG4uWikocixEKTtyZXR1cm4oMCxjLmpzeCkocC5aLCgwLG8uWikoe3ZhbHVlVHlwZToiZGlnaXQiLGZpZWxkUHJvcHM6KDAsby5aKSh7bWluOm0sbWF4OmR9LGgpLHJlZjpDLGZpbGVkQ29uZmlnOntkZWZhdWx0UHJvcHM6e3dpZHRoOiIxMDAlIn19LHByb0ZpZWxkUHJvcHM6bH0sYSkpfSxPPXYuZm9yd2FyZFJlZihCKTtnLlo9T30sODY2MTU6ZnVuY3Rpb24oaixnLGUpe3ZhciBvPWUoMTQxMyksbj1lKDkxKSx2PWUoMjIyNzApLHA9ZSg3ODA0NSksYz1lKDY3Mjk0KSxEPWUoOTA3ODkpLEI9ZSg5MjE3OSksTz1lKDg1ODkzKSxGPVsiZmllbGRQcm9wcyIsIm9wdGlvbnMiLCJyYWRpb1R5cGUiLCJsYXlvdXQiLCJwcm9GaWVsZFByb3BzIiwidmFsdWVFbnVtIl0scj1jLmZvcndhcmRSZWYoZnVuY3Rpb24obCxkKXt2YXIgYT1sLmZpZWxkUHJvcHMsdT1sLm9wdGlvbnMsVD1sLnJhZGlvVHlwZSx0PWwubGF5b3V0LHM9bC5wcm9GaWVsZFByb3BzLEU9bC52YWx1ZUVudW0sUD0oMCxuLlopKGwsRik7cmV0dXJuKDAsTy5qc3gpKEIuWiwoMCxvLlopKCgwLG8uWikoe3ZhbHVlVHlwZTpUPT09ImJ1dHRvbiI/InJhZGlvQnV0dG9uIjoicmFkaW8iLHJlZjpkLHZhbHVlRW51bTooMCx2LmgpKEUsdm9pZCAwKX0sUCkse30se2ZpZWxkUHJvcHM6KDAsby5aKSh7b3B0aW9uczp1LGxheW91dDp0fSxhKSxwcm9GaWVsZFByb3BzOnMsZmlsZWRDb25maWc6e2N1c3RvbUxpZ2h0TW9kZTohMH19KSl9KSxDPWMuZm9yd2FyZFJlZihmdW5jdGlvbihsLGQpe3ZhciBhPWwuZmllbGRQcm9wcyx1PWwuY2hpbGRyZW47cmV0dXJuKDAsTy5qc3gpKHAuWlAsKDAsby5aKSgoMCxvLlopKHt9LGEpLHt9LHtyZWY6ZCxjaGlsZHJlbjp1fSkpfSksaD0oMCxELkcpKEMse3ZhbHVlUHJvcE5hbWU6ImNoZWNrZWQiLGlnbm9yZVdpZHRoOiEwfSksbT1oO20uR3JvdXA9cixtLkJ1dHRvbj1wLlpQLkJ1dHRvbixtLmRpc3BsYXlOYW1lPSJQcm9Gb3JtQ29tcG9uZW50IixnLlo9bX0sNjQzMTc6ZnVuY3Rpb24oaixnLGUpe3ZhciBvPWUoMTQxMyksbj1lKDkxKSx2PWUoMjIyNzApLHA9ZSg2NzI5NCksYz1lKDY2NzU4KSxEPWUoOTIxNzkpLEI9ZSg4NTg5MyksTz1bImZpZWxkUHJvcHMiLCJjaGlsZHJlbiIsInBhcmFtcyIsInByb0ZpZWxkUHJvcHMiLCJtb2RlIiwidmFsdWVFbnVtIiwicmVxdWVzdCIsInNob3dTZWFyY2giLCJvcHRpb25zIl0sRj1bImZpZWxkUHJvcHMiLCJjaGlsZHJlbiIsInBhcmFtcyIsInByb0ZpZWxkUHJvcHMiLCJtb2RlIiwidmFsdWVFbnVtIiwicmVxdWVzdCIsIm9wdGlvbnMiXSxyPWZ1bmN0aW9uKGEsdSl7dmFyIFQ9YS5maWVsZFByb3BzLHQ9YS5jaGlsZHJlbixzPWEucGFyYW1zLEU9YS5wcm9GaWVsZFByb3BzLFA9YS5tb2RlLE09YS52YWx1ZUVudW0seD1hLnJlcXVlc3QsXz1hLnNob3dTZWFyY2gsZj1hLm9wdGlvbnMsUj0oMCxuLlopKGEsTyksVz0oMCxwLnVzZUNvbnRleHQpKGMuWik7cmV0dXJuKDAsQi5qc3gpKEQuWiwoMCxvLlopKCgwLG8uWikoe3ZhbHVlRW51bTooMCx2LmgpKE0pLHJlcXVlc3Q6eCxwYXJhbXM6cyx2YWx1ZVR5cGU6InNlbGVjdCIsZmlsZWRDb25maWc6e2N1c3RvbUxpZ2h0TW9kZTohMH0sZmllbGRQcm9wczooMCxvLlopKHtvcHRpb25zOmYsbW9kZTpQLHNob3dTZWFyY2g6XyxnZXRQb3B1cENvbnRhaW5lcjpXLmdldFBvcHVwQ29udGFpbmVyfSxUKSxyZWY6dSxwcm9GaWVsZFByb3BzOkV9LFIpLHt9LHtjaGlsZHJlbjp0fSkpfSxDPXAuZm9yd2FyZFJlZihmdW5jdGlvbihkLGEpe3ZhciB1PWQuZmllbGRQcm9wcyxUPWQuY2hpbGRyZW4sdD1kLnBhcmFtcyxzPWQucHJvRmllbGRQcm9wcyxFPWQubW9kZSxQPWQudmFsdWVFbnVtLE09ZC5yZXF1ZXN0LHg9ZC5vcHRpb25zLF89KDAsbi5aKShkLEYpLGY9KDAsby5aKSh7b3B0aW9uczp4LG1vZGU6RXx8Im11bHRpcGxlIixsYWJlbEluVmFsdWU6ITAsc2hvd1NlYXJjaDohMCxzdWZmaXhJY29uOm51bGwsYXV0b0NsZWFyU2VhcmNoVmFsdWU6ITAsb3B0aW9uTGFiZWxQcm9wOiJsYWJlbCJ9LHUpLFI9KDAscC51c2VDb250ZXh0KShjLlopO3JldHVybigwLEIuanN4KShELlosKDAsby5aKSgoMCxvLlopKHt2YWx1ZUVudW06KDAsdi5oKShQKSxyZXF1ZXN0Ok0scGFyYW1zOnQsdmFsdWVUeXBlOiJzZWxlY3QiLGZpbGVkQ29uZmlnOntjdXN0b21MaWdodE1vZGU6ITB9LGZpZWxkUHJvcHM6KDAsby5aKSh7Z2V0UG9wdXBDb250YWluZXI6Ui5nZXRQb3B1cENvbnRhaW5lcn0sZikscmVmOmEscHJvRmllbGRQcm9wczpzfSxfKSx7fSx7Y2hpbGRyZW46VH0pKX0pLGg9cC5mb3J3YXJkUmVmKHIpLG09QyxsPWg7bC5TZWFyY2hTZWxlY3Q9bSxsLmRpc3BsYXlOYW1lPSJQcm9Gb3JtQ29tcG9uZW50IixnLlo9bH0sOTA2NzI6ZnVuY3Rpb24oaixnLGUpe3ZhciBvPWUoMTQxMyksbj1lKDkxKSx2PWUoNjcyOTQpLHA9ZSg5MjE3OSksYz1lKDg1ODkzKSxEPVsiZmllbGRQcm9wcyIsInByb0ZpZWxkUHJvcHMiXSxCPWZ1bmN0aW9uKEYscil7dmFyIEM9Ri5maWVsZFByb3BzLGg9Ri5wcm9GaWVsZFByb3BzLG09KDAsbi5aKShGLEQpO3JldHVybigwLGMuanN4KShwLlosKDAsby5aKSh7cmVmOnIsdmFsdWVUeXBlOiJ0ZXh0YXJlYSIsZmllbGRQcm9wczpDLHByb0ZpZWxkUHJvcHM6aH0sbSkpfTtnLlo9di5mb3J3YXJkUmVmKEIpfSw1OTY2OmZ1bmN0aW9uKGosZyxlKXt2YXIgbz1lKDk3Njg1KSxuPWUoMTQxMyksdj1lKDkxKSxwPWUoMjE3NzApLGM9ZSg5OTg1OSksRD1lKDU1MjQxKSxCPWUoOTg0MjMpLE89ZSg2NzI5NCksRj1lKDkyMTc5KSxyPWUoODU4OTMpLEM9WyJmaWVsZFByb3BzIiwicHJvRmllbGRQcm9wcyJdLGg9WyJmaWVsZFByb3BzIiwicHJvRmllbGRQcm9wcyJdLG09InRleHQiLGw9ZnVuY3Rpb24odCl7dmFyIHM9dC5maWVsZFByb3BzLEU9dC5wcm9GaWVsZFByb3BzLFA9KDAsdi5aKSh0LEMpO3JldHVybigwLHIuanN4KShGLlosKDAsbi5aKSh7dmFsdWVUeXBlOm0sZmllbGRQcm9wczpzLGZpbGVkQ29uZmlnOnt2YWx1ZVR5cGU6bX0scHJvRmllbGRQcm9wczpFfSxQKSl9LGQ9ZnVuY3Rpb24odCl7dmFyIHM9KDAscC5aKSh0Lm9wZW58fCExLHt2YWx1ZTp0Lm9wZW4sb25DaGFuZ2U6dC5vbk9wZW5DaGFuZ2V9KSxFPSgwLG8uWikocywyKSxQPUVbMF0sTT1FWzFdO3JldHVybigwLHIuanN4KShjLlouSXRlbSx7c2hvdWxkVXBkYXRlOiEwLG5vU3R5bGU6ITAsY2hpbGRyZW46ZnVuY3Rpb24oXyl7dmFyIGYsUj1fLmdldEZpZWxkVmFsdWUodC5uYW1lfHxbXSk7cmV0dXJuKDAsci5qc3gpKEQuWiwoMCxuLlopKCgwLG4uWikoe2dldFBvcHVwQ29udGFpbmVyOmZ1bmN0aW9uKGkpe3JldHVybiBpJiZpLnBhcmVudE5vZGU/aS5wYXJlbnROb2RlOml9LG9uT3BlbkNoYW5nZTpmdW5jdGlvbihpKXtyZXR1cm4gTShpKX0sY29udGVudDooMCxyLmpzeHMpKCJkaXYiLHtzdHlsZTp7cGFkZGluZzoiNHB4IDAifSxjaGlsZHJlbjpbKGY9dC5zdGF0dXNSZW5kZXIpPT09bnVsbHx8Zj09PXZvaWQgMD92b2lkIDA6Zi5jYWxsKHQsUiksdC5zdHJlbmd0aFRleHQ/KDAsci5qc3gpKCJkaXYiLHtzdHlsZTp7bWFyZ2luVG9wOjEwfSxjaGlsZHJlbjooMCxyLmpzeCkoInNwYW4iLHtjaGlsZHJlbjp0LnN0cmVuZ3RoVGV4dH0pfSk6bnVsbF19KSxvdmVybGF5U3R5bGU6e3dpZHRoOjI0MH0scGxhY2VtZW50OiJyaWdodFRvcCJ9LHQucG9wb3ZlclByb3BzKSx7fSx7b3BlbjpQLGNoaWxkcmVuOnQuY2hpbGRyZW59KSl9fSl9LGE9ZnVuY3Rpb24odCl7dmFyIHM9dC5maWVsZFByb3BzLEU9dC5wcm9GaWVsZFByb3BzLFA9KDAsdi5aKSh0LGgpLE09KDAsTy51c2VTdGF0ZSkoITEpLHg9KDAsby5aKShNLDIpLF89eFswXSxmPXhbMV07cmV0dXJuIHMhPW51bGwmJnMuc3RhdHVzUmVuZGVyJiZQLm5hbWU/KDAsci5qc3gpKGQse25hbWU6UC5uYW1lLHN0YXR1c1JlbmRlcjpzPT1udWxsP3ZvaWQgMDpzLnN0YXR1c1JlbmRlcixwb3BvdmVyUHJvcHM6cz09bnVsbD92b2lkIDA6cy5wb3BvdmVyUHJvcHMsc3RyZW5ndGhUZXh0OnM9PW51bGw/dm9pZCAwOnMuc3RyZW5ndGhUZXh0LG9wZW46Xyxvbk9wZW5DaGFuZ2U6ZixjaGlsZHJlbjooMCxyLmpzeCkoImRpdiIse2NoaWxkcmVuOigwLHIuanN4KShGLlosKDAsbi5aKSh7dmFsdWVUeXBlOiJwYXNzd29yZCIsZmllbGRQcm9wczooMCxuLlopKCgwLG4uWikoe30sKDAsQi5aKShzLFsic3RhdHVzUmVuZGVyIiwicG9wb3ZlclByb3BzIiwic3RyZW5ndGhUZXh0Il0pKSx7fSx7b25CbHVyOmZ1bmN0aW9uKFcpe3ZhciBpO3M9PW51bGx8fChpPXMub25CbHVyKT09PW51bGx8fGk9PT12b2lkIDB8fGkuY2FsbChzLFcpLGYoITEpfSxvbkNsaWNrOmZ1bmN0aW9uKFcpe3ZhciBpO3M9PW51bGx8fChpPXMub25DbGljayk9PT1udWxsfHxpPT09dm9pZCAwfHxpLmNhbGwocyxXKSxmKCEwKX19KSxwcm9GaWVsZFByb3BzOkUsZmlsZWRDb25maWc6e3ZhbHVlVHlwZTptfX0sUCkpfSl9KTooMCxyLmpzeCkoRi5aLCgwLG4uWikoe3ZhbHVlVHlwZToicGFzc3dvcmQiLGZpZWxkUHJvcHM6cyxwcm9GaWVsZFByb3BzOkUsZmlsZWRDb25maWc6e3ZhbHVlVHlwZTptfX0sUCkpfSx1PWw7dS5QYXNzd29yZD1hLHUuZGlzcGxheU5hbWU9IlByb0Zvcm1Db21wb25lbnQiLGcuWj11fSwzNDQ1MzpmdW5jdGlvbihqLGcsZSl7ZS5yKGcpO3ZhciBvPWUoMTUwMDkpLG49ZS5uKG8pLHY9ZSg5OTI4OSkscD1lLm4odiksYz1lKDU1NzQpLEQ9ZS5uKGMpLEI9ZSg2NzI5NCksTz1lKDk3MjY5KSxGPWUoMzExOTkpLHI9ZSg1OTY2KSxDPWUoNjQzMTcpLGg9ZSg4NjYxNSksbT1lKDkwNjcyKSxsPWUoOTk4NTkpLGQ9ZSgxNzc4OCksYT1lKDc2NzcyKSx1PWUoODU4OTMpLFQ9ZnVuY3Rpb24ocyl7dmFyIEU9bC5aLnVzZUZvcm0oKSxQPUQoKShFLDEpLE09UFswXSx4PXMuc3RhdHVzT3B0aW9uczsoMCxCLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtNLnJlc2V0RmllbGRzKCksTS5zZXRGaWVsZHNWYWx1ZSh7ZGljdENvZGU6cy52YWx1ZXMuZGljdENvZGUsZGljdFNvcnQ6cy52YWx1ZXMuZGljdFNvcnQsZGljdExhYmVsOnMudmFsdWVzLmRpY3RMYWJlbCxkaWN0VmFsdWU6cy52YWx1ZXMuZGljdFZhbHVlLGRpY3RUeXBlOnMudmFsdWVzLmRpY3RUeXBlLGNzc0NsYXNzOnMudmFsdWVzLmNzc0NsYXNzLGxpc3RDbGFzczpzLnZhbHVlcy5saXN0Q2xhc3MsaXNEZWZhdWx0OnMudmFsdWVzLmlzRGVmYXVsdCxzdGF0dXM6cy52YWx1ZXMuc3RhdHVzLGNyZWF0ZUJ5OnMudmFsdWVzLmNyZWF0ZUJ5LGNyZWF0ZVRpbWU6cy52YWx1ZXMuY3JlYXRlVGltZSx1cGRhdGVCeTpzLnZhbHVlcy51cGRhdGVCeSx1cGRhdGVUaW1lOnMudmFsdWVzLnVwZGF0ZVRpbWUscmVtYXJrOnMudmFsdWVzLnJlbWFya30pfSxbTSxzXSk7dmFyIF89KDAsYS51c2VJbnRsKSgpLGY9ZnVuY3Rpb24oKXtNLnN1Ym1pdCgpfSxSPWZ1bmN0aW9uKCl7cy5vbkNhbmNlbCgpfSxXPWZ1bmN0aW9uKCl7dmFyIGk9cCgpKG4oKSgpLm1hcmsoZnVuY3Rpb24gWihMKXtyZXR1cm4gbigpKCkud3JhcChmdW5jdGlvbihBKXtmb3IoOzspc3dpdGNoKEEucHJldj1BLm5leHQpe2Nhc2UgMDpzLm9uU3VibWl0KEwpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIEEuc3RvcCgpfX0sWil9KSk7cmV0dXJuIGZ1bmN0aW9uKEwpe3JldHVybiBpLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCk7cmV0dXJuKDAsdS5qc3gpKGQuWix7d2lkdGg6NjQwLHRpdGxlOl8uZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5kaWN0LmRhdGEudGl0bGUiLGRlZmF1bHRNZXNzYWdlOiJcdTdGMTZcdThGOTFcdTVCNTdcdTUxNzhcdTY1NzBcdTYzNkUifSksb3BlbjpzLm9wZW4sZm9yY2VSZW5kZXI6ITAsZGVzdHJveU9uQ2xvc2U6ITAsb25PazpmLG9uQ2FuY2VsOlIsY2hpbGRyZW46KDAsdS5qc3hzKShPLkEse2Zvcm06TSxncmlkOiEwLHN1Ym1pdHRlcjohMSxsYXlvdXQ6Imhvcml6b250YWwiLG9uRmluaXNoOlcsY2hpbGRyZW46WygwLHUuanN4KShGLlose25hbWU6ImRpY3RDb2RlIixsYWJlbDpfLmZvcm1hdE1lc3NhZ2Uoe2lkOiJzeXN0ZW0uZGljdC5kYXRhLmRpY3RfY29kZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NUI1N1x1NTE3OFx1N0YxNlx1NzgwMSJ9KSxjb2xQcm9wczp7bWQ6MjQseGw6MjR9LHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdTVCNTdcdTUxNzhcdTdGMTZcdTc4MDEiLGRpc2FibGVkOiEwLGhpZGRlbjohMCxydWxlczpbe3JlcXVpcmVkOiExLG1lc3NhZ2U6KDAsdS5qc3gpKGEuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NUI1N1x1NTE3OFx1N0YxNlx1NzgwMVx1RkYwMSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NUI1N1x1NTE3OFx1N0YxNlx1NzgwMVx1RkYwMSJ9KX1dfSksKDAsdS5qc3gpKHIuWix7bmFtZToiZGljdFR5cGUiLGxhYmVsOl8uZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5kaWN0LmRhdGEuZGljdF90eXBlIixkZWZhdWx0TWVzc2FnZToiXHU1QjU3XHU1MTc4XHU3QzdCXHU1NzhCIn0pLGNvbFByb3BzOnttZDoxMix4bDoyNH0scGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NUI1N1x1NTE3OFx1N0M3Qlx1NTc4QiIsZGlzYWJsZWQ6ITAscnVsZXM6W3tyZXF1aXJlZDohMSxtZXNzYWdlOigwLHUuanN4KShhLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTVCNTdcdTUxNzhcdTdDN0JcdTU3OEJcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTVCNTdcdTUxNzhcdTdDN0JcdTU3OEJcdUZGMDEifSl9XX0pLCgwLHUuanN4KShyLlose25hbWU6ImRpY3RMYWJlbCIsbGFiZWw6Xy5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLmRpY3QuZGF0YS5kaWN0X2xhYmVsIixkZWZhdWx0TWVzc2FnZToiXHU1QjU3XHU1MTc4XHU2ODA3XHU3QjdFIn0pLGNvbFByb3BzOnttZDoxMix4bDoyNH0scGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NUI1N1x1NTE3OFx1NjgwN1x1N0I3RSIscnVsZXM6W3tyZXF1aXJlZDohMSxtZXNzYWdlOigwLHUuanN4KShhLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTVCNTdcdTUxNzhcdTY4MDdcdTdCN0VcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTVCNTdcdTUxNzhcdTY4MDdcdTdCN0VcdUZGMDEifSl9XX0pLCgwLHUuanN4KShyLlose25hbWU6ImRpY3RWYWx1ZSIsbGFiZWw6Xy5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLmRpY3QuZGF0YS5kaWN0X3ZhbHVlIixkZWZhdWx0TWVzc2FnZToiXHU1QjU3XHU1MTc4XHU5NTJFXHU1MDNDIn0pLGNvbFByb3BzOnttZDoxMix4bDoyNH0scGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NUI1N1x1NTE3OFx1OTUyRVx1NTAzQyIscnVsZXM6W3tyZXF1aXJlZDohMSxtZXNzYWdlOigwLHUuanN4KShhLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTVCNTdcdTUxNzhcdTk1MkVcdTUwM0NcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTVCNTdcdTUxNzhcdTk1MkVcdTUwM0NcdUZGMDEifSl9XX0pLCgwLHUuanN4KShyLlose25hbWU6ImNzc0NsYXNzIixsYWJlbDpfLmZvcm1hdE1lc3NhZ2Uoe2lkOiJzeXN0ZW0uZGljdC5kYXRhLmNzc19jbGFzcyIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjgzN1x1NUYwRlx1NUM1RVx1NjAyNyJ9KSxjb2xQcm9wczp7bWQ6MTIseGw6MjR9LHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdTY4MzdcdTVGMEZcdTVDNUVcdTYwMjciLHJ1bGVzOlt7cmVxdWlyZWQ6ITEsbWVzc2FnZTooMCx1LmpzeCkoYS5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU2ODM3XHU1RjBGXHU1QzVFXHU2MDI3XHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU2ODM3XHU1RjBGXHU1QzVFXHU2MDI3XHVGRjAxIn0pfV19KSwoMCx1LmpzeCkoQy5aLHtuYW1lOiJsaXN0Q2xhc3MiLGxhYmVsOl8uZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5kaWN0LmRhdGEubGlzdF9jbGFzcyIsZGVmYXVsdE1lc3NhZ2U6Ilx1NTZERVx1NjYzRVx1NjgzN1x1NUYwRiJ9KSxjb2xQcm9wczp7bWQ6MTIseGw6MjR9LHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdTU2REVcdTY2M0VcdTY4MzdcdTVGMEYiLHZhbHVlRW51bTp7ZGVmYXVsdDoiXHU5RUQ4XHU4QkE0IixwcmltYXJ5OiJcdTRFM0JcdTg5ODEiLHN1Y2Nlc3M6Ilx1NjIxMFx1NTI5RiIsaW5mbzoiXHU0RkUxXHU2MDZGIix3YXJuaW5nOiJcdThCNjZcdTU0NEEiLGRhbmdlcjoiXHU1MzcxXHU5NjY5In0scnVsZXM6W3tyZXF1aXJlZDohMSxtZXNzYWdlOigwLHUuanN4KShhLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTU2REVcdTY2M0VcdTY4MzdcdTVGMEZcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTU2REVcdTY2M0VcdTY4MzdcdTVGMEZcdUZGMDEifSl9XX0pLCgwLHUuanN4KShGLlose25hbWU6ImRpY3RTb3J0IixsYWJlbDpfLmZvcm1hdE1lc3NhZ2Uoe2lkOiJzeXN0ZW0uZGljdC5kYXRhLmRpY3Rfc29ydCIsZGVmYXVsdE1lc3NhZ2U6Ilx1NUI1N1x1NTE3OFx1NjM5Mlx1NUU4RiJ9KSxjb2xQcm9wczp7bWQ6MTIseGw6MTJ9LHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdTVCNTdcdTUxNzhcdTYzOTJcdTVFOEYiLHJ1bGVzOlt7cmVxdWlyZWQ6ITEsbWVzc2FnZTooMCx1LmpzeCkoYS5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU1QjU3XHU1MTc4XHU2MzkyXHU1RThGXHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU1QjU3XHU1MTc4XHU2MzkyXHU1RThGXHVGRjAxIn0pfV19KSwoMCx1LmpzeCkoaC5aLkdyb3VwLHtuYW1lOiJpc0RlZmF1bHQiLGxhYmVsOl8uZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5kaWN0LmRhdGEuaXNfZGVmYXVsdCIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjYyRlx1NTQyNlx1OUVEOFx1OEJBNCJ9KSx2YWx1ZUVudW06e1k6Ilx1NjYyRiIsTjoiXHU1NDI2In0saW5pdGlhbFZhbHVlOiJOIixjb2xQcm9wczp7bWQ6MTIseGw6MjR9LHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdTY2MkZcdTU0MjZcdTlFRDhcdThCQTQiLHJ1bGVzOlt7cmVxdWlyZWQ6ITEsbWVzc2FnZTooMCx1LmpzeCkoYS5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU2NjJGXHU1NDI2XHU5RUQ4XHU4QkE0XHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU2NjJGXHU1NDI2XHU5RUQ4XHU4QkE0XHVGRjAxIn0pfV19KSwoMCx1LmpzeCkoaC5aLkdyb3VwLHt2YWx1ZUVudW06eCxuYW1lOiJzdGF0dXMiLGxhYmVsOl8uZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5kaWN0LmRhdGEuc3RhdHVzIixkZWZhdWx0TWVzc2FnZToiXHU3MkI2XHU2MDAxIn0pLGluaXRpYWxWYWx1ZToiMCIsY29sUHJvcHM6e21kOjEyLHhsOjI0fSxwbGFjZWhvbGRlcjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU3MkI2XHU2MDAxIixydWxlczpbe3JlcXVpcmVkOiExLG1lc3NhZ2U6KDAsdS5qc3gpKGEuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NzJCNlx1NjAwMVx1RkYwMSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NzJCNlx1NjAwMVx1RkYwMSJ9KX1dfSksKDAsdS5qc3gpKG0uWix7bmFtZToicmVtYXJrIixsYWJlbDpfLmZvcm1hdE1lc3NhZ2Uoe2lkOiJzeXN0ZW0uZGljdC5kYXRhLnJlbWFyayIsZGVmYXVsdE1lc3NhZ2U6Ilx1NTkwN1x1NkNFOCJ9KSxjb2xQcm9wczp7bWQ6MjQseGw6MjR9LHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdTU5MDdcdTZDRTgiLHJ1bGVzOlt7cmVxdWlyZWQ6ITEsbWVzc2FnZTooMCx1LmpzeCkoYS5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU1OTA3XHU2Q0U4XHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU1OTA3XHU2Q0U4XHVGRjAxIn0pfV19KV19KX0pfTtnLmRlZmF1bHQ9VH19XSk7CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzQ0OC5jOTE4NDgyNC5hc3luYy5qcyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNDQ4LmM5MTg0ODI0LmFzeW5jLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1OTc3ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzQ0OC5jOTE4NDgyNC5hc3luYy5qcwpAQCAtMCwwICsxIEBACisidXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W10pLnB1c2goW1s0NDhdLHs2NDMxNzpmdW5jdGlvbihSLEQsZSl7dmFyIG49ZSgxNDEzKSxkPWUoOTEpLE09ZSgyMjI3MCksdD1lKDY3Mjk0KSxPPWUoNjY3NTgpLGc9ZSg5MjE3OSksQz1lKDg1ODkzKSxiPVsiZmllbGRQcm9wcyIsImNoaWxkcmVuIiwicGFyYW1zIiwicHJvRmllbGRQcm9wcyIsIm1vZGUiLCJ2YWx1ZUVudW0iLCJyZXF1ZXN0Iiwic2hvd1NlYXJjaCIsIm9wdGlvbnMiXSxmPVsiZmllbGRQcm9wcyIsImNoaWxkcmVuIiwicGFyYW1zIiwicHJvRmllbGRQcm9wcyIsIm1vZGUiLCJ2YWx1ZUVudW0iLCJyZXF1ZXN0Iiwib3B0aW9ucyJdLEE9ZnVuY3Rpb24obyxwKXt2YXIgUD1vLmZpZWxkUHJvcHMscz1vLmNoaWxkcmVuLGE9by5wYXJhbXMsRT1vLnByb0ZpZWxkUHJvcHMsaD1vLm1vZGUsYz1vLnZhbHVlRW51bSxfPW8ucmVxdWVzdCxsPW8uc2hvd1NlYXJjaCx1PW8ub3B0aW9ucyxUPSgwLGQuWikobyxiKSx2PSgwLHQudXNlQ29udGV4dCkoTy5aKTtyZXR1cm4oMCxDLmpzeCkoZy5aLCgwLG4uWikoKDAsbi5aKSh7dmFsdWVFbnVtOigwLE0uaCkoYykscmVxdWVzdDpfLHBhcmFtczphLHZhbHVlVHlwZToic2VsZWN0IixmaWxlZENvbmZpZzp7Y3VzdG9tTGlnaHRNb2RlOiEwfSxmaWVsZFByb3BzOigwLG4uWikoe29wdGlvbnM6dSxtb2RlOmgsc2hvd1NlYXJjaDpsLGdldFBvcHVwQ29udGFpbmVyOnYuZ2V0UG9wdXBDb250YWluZXJ9LFApLHJlZjpwLHByb0ZpZWxkUHJvcHM6RX0sVCkse30se2NoaWxkcmVuOnN9KSl9LEY9dC5mb3J3YXJkUmVmKGZ1bmN0aW9uKHIsbyl7dmFyIHA9ci5maWVsZFByb3BzLFA9ci5jaGlsZHJlbixzPXIucGFyYW1zLGE9ci5wcm9GaWVsZFByb3BzLEU9ci5tb2RlLGg9ci52YWx1ZUVudW0sYz1yLnJlcXVlc3QsXz1yLm9wdGlvbnMsbD0oMCxkLlopKHIsZiksdT0oMCxuLlopKHtvcHRpb25zOl8sbW9kZTpFfHwibXVsdGlwbGUiLGxhYmVsSW5WYWx1ZTohMCxzaG93U2VhcmNoOiEwLHN1ZmZpeEljb246bnVsbCxhdXRvQ2xlYXJTZWFyY2hWYWx1ZTohMCxvcHRpb25MYWJlbFByb3A6ImxhYmVsIn0scCksVD0oMCx0LnVzZUNvbnRleHQpKE8uWik7cmV0dXJuKDAsQy5qc3gpKGcuWiwoMCxuLlopKCgwLG4uWikoe3ZhbHVlRW51bTooMCxNLmgpKGgpLHJlcXVlc3Q6YyxwYXJhbXM6cyx2YWx1ZVR5cGU6InNlbGVjdCIsZmlsZWRDb25maWc6e2N1c3RvbUxpZ2h0TW9kZTohMH0sZmllbGRQcm9wczooMCxuLlopKHtnZXRQb3B1cENvbnRhaW5lcjpULmdldFBvcHVwQ29udGFpbmVyfSx1KSxyZWY6byxwcm9GaWVsZFByb3BzOmF9LGwpLHt9LHtjaGlsZHJlbjpQfSkpfSksVz10LmZvcndhcmRSZWYoQSksaT1GLG09VzttLlNlYXJjaFNlbGVjdD1pLG0uZGlzcGxheU5hbWU9IlByb0Zvcm1Db21wb25lbnQiLEQuWj1tfSw4MDQ0ODpmdW5jdGlvbihSLEQsZSl7ZS5yKEQpO3ZhciBuPWUoMTUwMDkpLGQ9ZS5uKG4pLE09ZSg5OTI4OSksdD1lLm4oTSksTz1lKDU1NzQpLGc9ZS5uKE8pLEM9ZSg2NzI5NCksYj1lKDk5ODU5KSxmPWUoMTc3ODgpLEE9ZSg3Njc3MiksRj1lKDk3MjY5KSxXPWUoNjQzMTcpLGk9ZSg4NTg5MyksbT1mdW5jdGlvbihvKXt2YXIgcD1iLloudXNlRm9ybSgpLFA9ZygpKHAsMSkscz1QWzBdOygwLEMudXNlRWZmZWN0KShmdW5jdGlvbigpe3MucmVzZXRGaWVsZHMoKSxzLnNldEZpZWxkVmFsdWUoInJvbGVJZHMiLG8ucm9sZUlkcyl9KTt2YXIgYT0oMCxBLnVzZUludGwpKCksRT1mdW5jdGlvbigpe3Muc3VibWl0KCl9LGg9ZnVuY3Rpb24oKXtvLm9uQ2FuY2VsKCl9LGM9ZnVuY3Rpb24oKXt2YXIgXz10KCkoZCgpKCkubWFyayhmdW5jdGlvbiBsKHUpe3JldHVybiBkKCkoKS53cmFwKGZ1bmN0aW9uKHYpe2Zvcig7Oylzd2l0Y2godi5wcmV2PXYubmV4dCl7Y2FzZSAwOm8ub25TdWJtaXQodSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gdi5zdG9wKCl9fSxsKX0pKTtyZXR1cm4gZnVuY3Rpb24odSl7cmV0dXJuIF8uYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKTtyZXR1cm4oMCxpLmpzeCkoZi5aLHt3aWR0aDo2NDAsdGl0bGU6YS5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLnVzZXIuYXV0aC5yb2xlIixkZWZhdWx0TWVzc2FnZToiXHU1MjA2XHU5MTREXHU4OUQyXHU4MjcyIn0pLG9wZW46by5vcGVuLGRlc3Ryb3lPbkNsb3NlOiEwLGZvcmNlUmVuZGVyOiEwLG9uT2s6RSxvbkNhbmNlbDpoLGNoaWxkcmVuOigwLGkuanN4KShGLkEse2Zvcm06cyxncmlkOiEwLGxheW91dDoiaG9yaXpvbnRhbCIsb25GaW5pc2g6Yyxpbml0aWFsVmFsdWVzOntsb2dpbl9wYXNzd29yZDoiIixjb25maXJtX3Bhc3N3b3JkOiIifSxjaGlsZHJlbjooMCxpLmpzeCkoVy5aLHtuYW1lOiJyb2xlSWRzIixtb2RlOiJtdWx0aXBsZSIsbGFiZWw6YS5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLnVzZXIucm9sZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1ODlEMlx1ODI3MiJ9KSxvcHRpb25zOm8ucm9sZXMscGxhY2Vob2xkZXI6Ilx1OEJGN1x1OTAwOVx1NjJFOVx1ODlEMlx1ODI3MiIscnVsZXM6W3tyZXF1aXJlZDohMCxtZXNzYWdlOiJcdThCRjdcdTkwMDlcdTYyRTlcdTg5RDJcdTgyNzIhIn1dfSl9KX0pfTtELmRlZmF1bHQ9bX19XSk7CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzQ5OTQuMzZkYjBiOTkuY2h1bmsuY3NzIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy80OTk0LjM2ZGIwYjk5LmNodW5rLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZGNhZTFjCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy80OTk0LjM2ZGIwYjk5LmNodW5rLmNzcwpAQCAtMCwwICsxIEBACisudnNPYkZtTWNiejRETVkxam9wdGp7bWluLWhlaWdodDoxMDB2aDtiYWNrZ3JvdW5kLWNvbG9yOiNmNWY1ZjV9LktQZTVNMkNPY3Y4NmxCSnhnZVBZe2JhY2tncm91bmQ6I2ZmZjtib3gtc2hhZG93OjAgMnB4IDhweCAjMDAwMDAwMWE7cGFkZGluZzowIDI0cHg7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtoZWlnaHQ6NjRweDtwb3NpdGlvbjpzdGlja3k7dG9wOjA7ei1pbmRleDoxMDB9LnBOeVVFYVpMUVp3UWtqVlZmT2NEe2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweH0uZU9xRVpqbTJqdElHdkxTWURQRnp7Ym9yZGVyOm5vbmU7Ym94LXNoYWRvdzpub25lO2ZvbnQtd2VpZ2h0OjUwMDtwYWRkaW5nOjhweCAxNnB4O2JvcmRlci1yYWRpdXM6NnB4O3RyYW5zaXRpb246YWxsIC4zcyBlYXNlfS5lT3FFWmptMmp0SUd2TFNZRFBGejpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNmMGYwZjB9Lnc1MmZEWVNBTVlYU3p2NVJhbndQe2ZsZXg6MSAxO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21heC13aWR0aDo0MDBweDttYXJnaW46MCAyNHB4fS5LaFpOZEZ3cmwyd3NVQVV3RVc3NHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMnB4fS5ISDF6cWNuZmhGSTIzc3cyQ2pKNnttYXJnaW46MjRweDtib3JkZXItcmFkaXVzOjEycHg7b3ZlcmZsb3c6aGlkZGVuO2JveC1zaGFkb3c6MCA0cHggMTJweCAjMDAwMDAwMWF9LnM1ZU1BaWRBRFFBckUyeGM2dTRoe3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6ZmxleCFpbXBvcnRhbnQ7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7bWluLWhlaWdodDozMDBweH0uaDRWRGFRZWI1a2tpb2JLejhySmp7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodHJhbnNwYXJlbnQsIzAwMGMpO2NvbG9yOiNmZmY7cGFkZGluZzo0MHB4IDQwcHggMjRweDt0ZXh0LWFsaWduOmxlZnR9LnJveEFWNWtDV2FSNTNSVjQwRWJke2ZvbnQtc2l6ZToyOHB4O2ZvbnQtd2VpZ2h0OjcwMDttYXJnaW46MCAwIDEycHg7dGV4dC1zaGFkb3c6MnB4IDJweCA0cHggcmdiYSgwLDAsMCwuNSl9LnJMbENJVGhoTVJjNjJZem5acWZhe2ZvbnQtc2l6ZToxNnB4O21hcmdpbjowIDAgMTZweDtvcGFjaXR5Oi45O2xpbmUtaGVpZ2h0OjEuNX0ubkNGSERQb3RRV2taSlkxN3VLejJ7ZGlzcGxheTpmbGV4O2dhcDoyNHB4O2ZvbnQtc2l6ZToxNHB4O29wYWNpdHk6Ljh9LlR3MG9pT0o0Q3pvUmRnRG1rV3Y4e3BhZGRpbmc6MjRweH0ubGFSeFNCNjFJVTBoQl9JemVLVkJ7bWFyZ2luLWJvdHRvbToyNHB4O3RleHQtYWxpZ246Y2VudGVyfS5sYVJ4U0I2MUlVMGhCX0l6ZUtWQiBoMntmb250LXNpemU6MjRweDttYXJnaW46MCAwIDhweDtjb2xvcjojMTg5MGZmfS5sYVJ4U0I2MUlVMGhCX0l6ZUtWQiBwe21hcmdpbjowO2NvbG9yOiM2NjY7Zm9udC1zaXplOjE0cHh9LlN4YXBtcVBrXzJFWk0xNEdocE94e21hcmdpbi1ib3R0b206MzJweH0uVjJ2dW9zUVhCZjRZUHdMTDBBWHN7ZGlzcGxheTpmbGV4O2hlaWdodDo0ODBweH0uVjJ2dW9zUVhCZjRZUHdMTDBBWHM+Knt3aWR0aDoxMDAlfS5pb3ZTd25qRHJ4YzJDTkJGTWRfcXt0ZXh0LWFsaWduOmNlbnRlcjtwYWRkaW5nOjYwcHggMDtjb2xvcjojOTk5O2ZvbnQtc2l6ZToxNnB4fS5pSm1sVHVid2lNWXlVaWd1dGF0cXtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjttYXJnaW4tdG9wOjMycHh9QG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KXsuS1BlNU0yQ09jdjg2bEJKeGdlUFl7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2hlaWdodDphdXRvO3BhZGRpbmc6MTJweDtnYXA6MTJweH0ucE55VUVhWkxRWndRa2pWVmZPY0R7ZmxleC13cmFwOndyYXA7anVzdGlmeS1jb250ZW50OmNlbnRlcn0udzUyZkRZU0FNWVhTenY1UmFud1B7bWFyZ2luOjA7bWF4LXdpZHRoOjEwMCV9LkhIMXpxY25maEZJMjNzdzJDako2e21hcmdpbjoxMnB4fS5oNFZEYVFlYjVra2lvYkt6OHJKantwYWRkaW5nOjIwcHh9LnJveEFWNWtDV2FSNTNSVjQwRWJke2ZvbnQtc2l6ZToyMHB4fS5yTGxDSVRoaE1SYzYyWXpuWnFmYXtmb250LXNpemU6MTRweH0ubkNGSERQb3RRV2taSlkxN3VLejJ7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDo4cHh9LlR3MG9pT0o0Q3pvUmRnRG1rV3Y4e3BhZGRpbmc6MTJweH19CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzQ5OTQuN2VkNTg4OGUuYXN5bmMuanMgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzQ5OTQuN2VkNTg4OGUuYXN5bmMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzVlMmNmOAotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNDk5NC43ZWQ1ODg4ZS5hc3luYy5qcwpAQCAtMCwwICsxIEBACisidXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W10pLnB1c2goW1s0OTk0XSx7MjQ5OTQ6ZnVuY3Rpb24obyxlLGEpe2EucihlKSxlLmRlZmF1bHQ9e3Bvc3RDZW50ZXJDb250YWluZXI6InZzT2JGbU1jYno0RE1ZMWpvcHRqIixoZWFkZXJOYXY6IktQZTVNMkNPY3Y4NmxCSnhnZVBZIixjYXRlZ29yeU1lbnU6InBOeVVFYVpMUVp3UWtqVlZmT2NEIixjYXRlZ29yeUJ1dHRvbjoiZU9xRVpqbTJqdElHdkxTWURQRnoiLHNlYXJjaENvbnRhaW5lcjoidzUyZkRZU0FNWVhTenY1UmFud1AiLHVzZXJDZW50ZXI6IktoWk5kRndybDJ3c1VBVXdFVzc0IixjYXJvdXNlbENvbnRhaW5lcjoiSEgxenFjbmZoRkkyM3N3MkNqSjYiLGNhcm91c2VsU2xpZGU6InM1ZU1BaWRBRFFBckUyeGM2dTRoIixjYXJvdXNlbE92ZXJsYXk6Img0VkRhUWViNWtraW9iS3o4ckpqIixjYXJvdXNlbFRpdGxlOiJyb3hBVjVrQ1dhUjUzUlY0MEViZCIsY2Fyb3VzZWxTdW1tYXJ5OiJyTGxDSVRoaE1SYzYyWXpuWnFmYSIsY2Fyb3VzZWxNZXRhOiJuQ0ZIRFBvdFFXa1pKWTE3dUt6MiIscG9zdHNTZWN0aW9uOiJUdzBvaU9KNEN6b1JkZ0Rta1d2OCIsY2F0ZWdvcnlUaXRsZToibGFSeFNCNjFJVTBoQl9JemVLVkIiLHBvc3RzUm93OiJTeGFwbXFQa18yRVpNMTRHaHBPeCIscG9zdENvbDoiVjJ2dW9zUVhCZjRZUHdMTDBBWHMiLGVtcHR5U3RhdGU6ImlvdlN3bmpEcnhjMkNOQkZNZF9xIixwYWdpbmF0aW9uQ29udGFpbmVyOiJpSm1sVHVid2lNWXlVaWd1dGF0cSJ9fX1dKTsKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNTI3OC5kOTY0Y2UzNi5hc3luYy5qcyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNTI3OC5kOTY0Y2UzNi5hc3luYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZmJhODUxCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy81Mjc4LmQ5NjRjZTM2LmFzeW5jLmpzCkBAIC0wLDAgKzEsMTUgQEAKKyJ1c2Ugc3RyaWN0Ijsoc2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Bybz1zZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvfHxbXSkucHVzaChbWzUyNzhdLHsyOTYxOmZ1bmN0aW9uKHJ0LFJlLHIpe3IuZChSZSx7WjpmdW5jdGlvbigpe3JldHVybiBkfX0pO3ZhciBhPXIoNjcyOTQpLEllPXIoOTM5NjcpLFg9ci5uKEllKSxpZT1yKDg3NDYyKSxhZT1yKDQ5NDIpLGVlPXIoMTQxMykscWU9cig3NDkwMiksdGU9cig5NzY4NSksdWU9cig5MSksUGU9cig2NzY1NiksZ2U9cig4MjIzNCksY2U9cig4Nzg4NykseGU9cigyMTc3MCksaGU9cig3MTAwMiksQWU9cig0ODU1NSksQ2U9cig4NDEwKSxkZT1yKDc1MTY0KSxaZT1gCisgIG1pbi1oZWlnaHQ6MCAhaW1wb3J0YW50OworICBtYXgtaGVpZ2h0Om5vbmUgIWltcG9ydGFudDsKKyAgaGVpZ2h0OjAgIWltcG9ydGFudDsKKyAgdmlzaWJpbGl0eTpoaWRkZW4gIWltcG9ydGFudDsKKyAgb3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnQ7CisgIHBvc2l0aW9uOmFic29sdXRlICFpbXBvcnRhbnQ7CisgIHotaW5kZXg6LTEwMDAgIWltcG9ydGFudDsKKyAgdG9wOjAgIWltcG9ydGFudDsKKyAgcmlnaHQ6MCAhaW1wb3J0YW50OworICBwb2ludGVyLWV2ZW50czogbm9uZSAhaW1wb3J0YW50OworYCxUZT1bImxldHRlci1zcGFjaW5nIiwibGluZS1oZWlnaHQiLCJwYWRkaW5nLXRvcCIsInBhZGRpbmctYm90dG9tIiwiZm9udC1mYW1pbHkiLCJmb250LXdlaWdodCIsImZvbnQtc2l6ZSIsImZvbnQtdmFyaWFudCIsInRleHQtcmVuZGVyaW5nIiwidGV4dC10cmFuc2Zvcm0iLCJ3aWR0aCIsInRleHQtaW5kZW50IiwicGFkZGluZy1sZWZ0IiwicGFkZGluZy1yaWdodCIsImJvcmRlci13aWR0aCIsImJveC1zaXppbmciLCJ3b3JkLWJyZWFrIiwid2hpdGUtc3BhY2UiXSxmZT17fSxMO2Z1bmN0aW9uIF9lKGUpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTohMSxuPWUuZ2V0QXR0cmlidXRlKCJpZCIpfHxlLmdldEF0dHJpYnV0ZSgiZGF0YS1yZWFjdGlkIil8fGUuZ2V0QXR0cmlidXRlKCJuYW1lIik7aWYodCYmZmVbbl0pcmV0dXJuIGZlW25dO3ZhciBzPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGUpLHY9cy5nZXRQcm9wZXJ0eVZhbHVlKCJib3gtc2l6aW5nIil8fHMuZ2V0UHJvcGVydHlWYWx1ZSgiLW1vei1ib3gtc2l6aW5nIil8fHMuZ2V0UHJvcGVydHlWYWx1ZSgiLXdlYmtpdC1ib3gtc2l6aW5nIiksbT1wYXJzZUZsb2F0KHMuZ2V0UHJvcGVydHlWYWx1ZSgicGFkZGluZy1ib3R0b20iKSkrcGFyc2VGbG9hdChzLmdldFByb3BlcnR5VmFsdWUoInBhZGRpbmctdG9wIikpLGM9cGFyc2VGbG9hdChzLmdldFByb3BlcnR5VmFsdWUoImJvcmRlci1ib3R0b20td2lkdGgiKSkrcGFyc2VGbG9hdChzLmdldFByb3BlcnR5VmFsdWUoImJvcmRlci10b3Atd2lkdGgiKSkseD1UZS5tYXAoZnVuY3Rpb24odSl7cmV0dXJuIiIuY29uY2F0KHUsIjoiKS5jb25jYXQocy5nZXRQcm9wZXJ0eVZhbHVlKHUpKX0pLmpvaW4oIjsiKSxDPXtzaXppbmdTdHlsZTp4LHBhZGRpbmdTaXplOm0sYm9yZGVyU2l6ZTpjLGJveFNpemluZzp2fTtyZXR1cm4gdCYmbiYmKGZlW25dPUMpLEN9ZnVuY3Rpb24gJGUoZSl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOiExLG49YXJndW1lbnRzLmxlbmd0aD4yJiZhcmd1bWVudHNbMl0hPT12b2lkIDA/YXJndW1lbnRzWzJdOm51bGwscz1hcmd1bWVudHMubGVuZ3RoPjMmJmFyZ3VtZW50c1szXSE9PXZvaWQgMD9hcmd1bWVudHNbM106bnVsbDtMfHwoTD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZXh0YXJlYSIpLEwuc2V0QXR0cmlidXRlKCJ0YWItaW5kZXgiLCItMSIpLEwuc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsInRydWUiKSxMLnNldEF0dHJpYnV0ZSgibmFtZSIsImhpZGRlblRleHRhcmVhIiksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChMKSksZS5nZXRBdHRyaWJ1dGUoIndyYXAiKT9MLnNldEF0dHJpYnV0ZSgid3JhcCIsZS5nZXRBdHRyaWJ1dGUoIndyYXAiKSk6TC5yZW1vdmVBdHRyaWJ1dGUoIndyYXAiKTt2YXIgdj1fZShlLHQpLG09di5wYWRkaW5nU2l6ZSxjPXYuYm9yZGVyU2l6ZSx4PXYuYm94U2l6aW5nLEM9di5zaXppbmdTdHlsZTtMLnNldEF0dHJpYnV0ZSgic3R5bGUiLCIiLmNvbmNhdChDLCI7IikuY29uY2F0KFplKSksTC52YWx1ZT1lLnZhbHVlfHxlLnBsYWNlaG9sZGVyfHwiIjt2YXIgdT12b2lkIDAsaD12b2lkIDAsWixwPUwuc2Nyb2xsSGVpZ2h0O2lmKHg9PT0iYm9yZGVyLWJveCI/cCs9Yzp4PT09ImNvbnRlbnQtYm94IiYmKHAtPW0pLG4hPT1udWxsfHxzIT09bnVsbCl7TC52YWx1ZT0iICI7dmFyIFA9TC5zY3JvbGxIZWlnaHQtbTtuIT09bnVsbCYmKHU9UCpuLHg9PT0iYm9yZGVyLWJveCImJih1PXUrbStjKSxwPU1hdGgubWF4KHUscCkpLHMhPT1udWxsJiYoaD1QKnMseD09PSJib3JkZXItYm94IiYmKGg9aCttK2MpLFo9cD5oPyIiOiJoaWRkZW4iLHA9TWF0aC5taW4oaCxwKSl9dmFyIEU9e2hlaWdodDpwLG92ZXJmbG93WTpaLHJlc2l6ZToibm9uZSJ9O3JldHVybiB1JiYoRS5taW5IZWlnaHQ9dSksaCYmKEUubWF4SGVpZ2h0PWgpLEV9dmFyIHdlPVsicHJlZml4Q2xzIiwiZGVmYXVsdFZhbHVlIiwidmFsdWUiLCJhdXRvU2l6ZSIsIm9uUmVzaXplIiwiY2xhc3NOYW1lIiwic3R5bGUiLCJkaXNhYmxlZCIsIm9uQ2hhbmdlIiwib25JbnRlcm5hbEF1dG9TaXplIl0sb2U9MCx2ZT0xLHllPTIsamU9YS5mb3J3YXJkUmVmKGZ1bmN0aW9uKGUsdCl7dmFyIG49ZSxzPW4ucHJlZml4Q2xzLHY9bi5kZWZhdWx0VmFsdWUsbT1uLnZhbHVlLGM9bi5hdXRvU2l6ZSx4PW4ub25SZXNpemUsQz1uLmNsYXNzTmFtZSx1PW4uc3R5bGUsaD1uLmRpc2FibGVkLFo9bi5vbkNoYW5nZSxwPW4ub25JbnRlcm5hbEF1dG9TaXplLFA9KDAsdWUuWikobix3ZSksRT0oMCx4ZS5aKSh2LHt2YWx1ZTptLHBvc3RTdGF0ZTpmdW5jdGlvbihSKXtyZXR1cm4gUiE9bnVsbD9SOiIifX0pLE49KDAsdGUuWikoRSwyKSxEPU5bMF0sTT1OWzFdLEs9ZnVuY3Rpb24oUil7TShSLnRhcmdldC52YWx1ZSksWj09bnVsbHx8WihSKX0sYj1hLnVzZVJlZigpO2EudXNlSW1wZXJhdGl2ZUhhbmRsZSh0LGZ1bmN0aW9uKCl7cmV0dXJue3RleHRBcmVhOmIuY3VycmVudH19KTt2YXIgVj1hLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4gYyYmKDAsaGUuWikoYyk9PT0ib2JqZWN0Ij9bYy5taW5Sb3dzLGMubWF4Um93c106W119LFtjXSksQT0oMCx0ZS5aKShWLDIpLGo9QVswXSxCPUFbMV0sVD0hIWMsRj1mdW5jdGlvbigpe3RyeXtpZihkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09Yi5jdXJyZW50KXt2YXIgUj1iLmN1cnJlbnQsST1SLnNlbGVjdGlvblN0YXJ0LGs9Ui5zZWxlY3Rpb25FbmQsWT1SLnNjcm9sbFRvcDtiLmN1cnJlbnQuc2V0U2VsZWN0aW9uUmFuZ2UoSSxrKSxiLmN1cnJlbnQuc2Nyb2xsVG9wPVl9fWNhdGNoKHNlKXt9fSxIPWEudXNlU3RhdGUoeWUpLEc9KDAsdGUuWikoSCwyKSxPPUdbMF0sJD1HWzFdLFc9YS51c2VTdGF0ZSgpLFM9KDAsdGUuWikoVywyKSxRPVNbMF0sbmU9U1sxXSxKPWZ1bmN0aW9uKCl7JChvZSl9OygwLENlLlopKGZ1bmN0aW9uKCl7VCYmSigpfSxbbSxqLEIsVF0pLCgwLENlLlopKGZ1bmN0aW9uKCl7aWYoTz09PW9lKSQodmUpO2Vsc2UgaWYoTz09PXZlKXt2YXIgZj0kZShiLmN1cnJlbnQsITEsaixCKTskKHllKSxuZShmKX1lbHNlIEYoKX0sW09dKTt2YXIgZz1hLnVzZVJlZigpLHo9ZnVuY3Rpb24oKXtkZS5aLmNhbmNlbChnLmN1cnJlbnQpfSxVPWZ1bmN0aW9uKFIpe089PT15ZSYmKHg9PW51bGx8fHgoUiksYyYmKHooKSxnLmN1cnJlbnQ9KDAsZGUuWikoZnVuY3Rpb24oKXtKKCl9KSkpfTthLnVzZUVmZmVjdChmdW5jdGlvbigpe3JldHVybiB6fSxbXSk7dmFyIGw9VD9ROm51bGwsaT0oMCxlZS5aKSgoMCxlZS5aKSh7fSx1KSxsKTtyZXR1cm4oTz09PW9lfHxPPT09dmUpJiYoaS5vdmVyZmxvd1k9ImhpZGRlbiIsaS5vdmVyZmxvd1g9ImhpZGRlbiIpLGEuY3JlYXRlRWxlbWVudChBZS5aLHtvblJlc2l6ZTpVLGRpc2FibGVkOiEoY3x8eCl9LGEuY3JlYXRlRWxlbWVudCgidGV4dGFyZWEiLCgwLGllLlopKHt9LFAse3JlZjpiLHN0eWxlOmksY2xhc3NOYW1lOlgoKShzLEMsKDAsYWUuWikoe30sIiIuY29uY2F0KHMsIi1kaXNhYmxlZCIpLGgpKSxkaXNhYmxlZDpoLHZhbHVlOkQsb25DaGFuZ2U6S30pKSl9KSxOZT1qZSxNZT1bImRlZmF1bHRWYWx1ZSIsInZhbHVlIiwib25Gb2N1cyIsIm9uQmx1ciIsIm9uQ2hhbmdlIiwiYWxsb3dDbGVhciIsIm1heExlbmd0aCIsIm9uQ29tcG9zaXRpb25TdGFydCIsIm9uQ29tcG9zaXRpb25FbmQiLCJzdWZmaXgiLCJwcmVmaXhDbHMiLCJzaG93Q291bnQiLCJjb3VudCIsImNsYXNzTmFtZSIsInN0eWxlIiwiZGlzYWJsZWQiLCJoaWRkZW4iLCJjbGFzc05hbWVzIiwic3R5bGVzIiwib25SZXNpemUiLCJvbkNsZWFyIiwib25QcmVzc0VudGVyIiwicmVhZE9ubHkiLCJhdXRvU2l6ZSIsIm9uS2V5RG93biJdLFZlPWEuZm9yd2FyZFJlZihmdW5jdGlvbihlLHQpe3ZhciBuLHM9ZS5kZWZhdWx0VmFsdWUsdj1lLnZhbHVlLG09ZS5vbkZvY3VzLGM9ZS5vbkJsdXIseD1lLm9uQ2hhbmdlLEM9ZS5hbGxvd0NsZWFyLHU9ZS5tYXhMZW5ndGgsaD1lLm9uQ29tcG9zaXRpb25TdGFydCxaPWUub25Db21wb3NpdGlvbkVuZCxwPWUuc3VmZml4LFA9ZS5wcmVmaXhDbHMsRT1QPT09dm9pZCAwPyJyYy10ZXh0YXJlYSI6UCxOPWUuc2hvd0NvdW50LEQ9ZS5jb3VudCxNPWUuY2xhc3NOYW1lLEs9ZS5zdHlsZSxiPWUuZGlzYWJsZWQsVj1lLmhpZGRlbixBPWUuY2xhc3NOYW1lcyxqPWUuc3R5bGVzLEI9ZS5vblJlc2l6ZSxUPWUub25DbGVhcixGPWUub25QcmVzc0VudGVyLEg9ZS5yZWFkT25seSxHPWUuYXV0b1NpemUsTz1lLm9uS2V5RG93biwkPSgwLHVlLlopKGUsTWUpLFc9KDAseGUuWikocyx7dmFsdWU6dixkZWZhdWx0VmFsdWU6c30pLFM9KDAsdGUuWikoVywyKSxRPVNbMF0sbmU9U1sxXSxKPVE9PW51bGw/IiI6U3RyaW5nKFEpLGc9YS51c2VTdGF0ZSghMSksej0oMCx0ZS5aKShnLDIpLFU9elswXSxsPXpbMV0saT1hLnVzZVJlZighMSksZj1hLnVzZVN0YXRlKG51bGwpLFI9KDAsdGUuWikoZiwyKSxJPVJbMF0saz1SWzFdLFk9KDAsYS51c2VSZWYpKG51bGwpLHNlPSgwLGEudXNlUmVmKShudWxsKSxxPWZ1bmN0aW9uKCl7dmFyIHk7cmV0dXJuKHk9c2UuY3VycmVudCk9PT1udWxsfHx5PT09dm9pZCAwP3ZvaWQgMDp5LnRleHRBcmVhfSxudD1mdW5jdGlvbigpe3EoKS5mb2N1cygpfTsoMCxhLnVzZUltcGVyYXRpdmVIYW5kbGUpKHQsZnVuY3Rpb24oKXt2YXIgdztyZXR1cm57cmVzaXphYmxlVGV4dEFyZWE6c2UuY3VycmVudCxmb2N1czpudCxibHVyOmZ1bmN0aW9uKCl7cSgpLmJsdXIoKX0sbmF0aXZlRWxlbWVudDooKHc9WS5jdXJyZW50KT09PW51bGx8fHc9PT12b2lkIDA/dm9pZCAwOncubmF0aXZlRWxlbWVudCl8fHEoKX19KSwoMCxhLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtsKGZ1bmN0aW9uKHcpe3JldHVybiFiJiZ3fSl9LFtiXSk7dmFyIHN0PWEudXNlU3RhdGUobnVsbCksYXQ9KDAsdGUuWikoc3QsMiksUWU9YXRbMF0sbHQ9YXRbMV07YS51c2VFZmZlY3QoZnVuY3Rpb24oKXtpZihRZSl7dmFyIHc7KHc9cSgpKS5zZXRTZWxlY3Rpb25SYW5nZS5hcHBseSh3LCgwLHFlLlopKFFlKSl9fSxbUWVdKTt2YXIgXz0oMCxnZS5aKShELE4pLG1lPShuPV8ubWF4KSE9PW51bGwmJm4hPT12b2lkIDA/bjp1LGl0PU51bWJlcihtZSk+MCxKZT1fLnN0cmF0ZWd5KEopLHV0PSEhbWUmJkplPm1lLG90PWZ1bmN0aW9uKHksbGUpe3ZhciBFZT1sZTshaS5jdXJyZW50JiZfLmV4Y2VlZEZvcm1hdHRlciYmXy5tYXgmJl8uc3RyYXRlZ3kobGUpPl8ubWF4JiYoRWU9Xy5leGNlZWRGb3JtYXR0ZXIobGUse21heDpfLm1heH0pLGxlIT09RWUmJmx0KFtxKCkuc2VsZWN0aW9uU3RhcnR8fDAscSgpLnNlbGVjdGlvbkVuZHx8MF0pKSxuZShFZSksKDAsY2UuckopKHkuY3VycmVudFRhcmdldCx5LHgsRWUpfSxjdD1mdW5jdGlvbih5KXtpLmN1cnJlbnQ9ITAsaD09bnVsbHx8aCh5KX0sZHQ9ZnVuY3Rpb24oeSl7aS5jdXJyZW50PSExLG90KHkseS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxaPT1udWxsfHxaKHkpfSxmdD1mdW5jdGlvbih5KXtvdCh5LHkudGFyZ2V0LnZhbHVlKX0sdnQ9ZnVuY3Rpb24oeSl7eS5rZXk9PT0iRW50ZXIiJiZGJiZGKHkpLE89PW51bGx8fE8oeSl9LG10PWZ1bmN0aW9uKHkpe2woITApLG09PW51bGx8fG0oeSl9LHB0PWZ1bmN0aW9uKHkpe2woITEpLGM9PW51bGx8fGMoeSl9LGd0PWZ1bmN0aW9uKHkpe25lKCIiKSxudCgpLCgwLGNlLnJKKShxKCkseSx4KX0sa2U9cCxwZTtfLnNob3cmJihfLnNob3dGb3JtYXR0ZXI/cGU9Xy5zaG93Rm9ybWF0dGVyKHt2YWx1ZTpKLGNvdW50OkplLG1heExlbmd0aDptZX0pOnBlPSIiLmNvbmNhdChKZSkuY29uY2F0KGl0PyIgLyAiLmNvbmNhdChtZSk6IiIpLGtlPWEuY3JlYXRlRWxlbWVudChhLkZyYWdtZW50LG51bGwsa2UsYS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOlgoKSgiIi5jb25jYXQoRSwiLWRhdGEtY291bnQiKSxBPT1udWxsP3ZvaWQgMDpBLmNvdW50KSxzdHlsZTpqPT1udWxsP3ZvaWQgMDpqLmNvdW50fSxwZSkpKTt2YXIgeHQ9ZnVuY3Rpb24oeSl7dmFyIGxlO0I9PW51bGx8fEIoeSksKGxlPXEoKSkhPT1udWxsJiZsZSE9PXZvaWQgMCYmbGUuc3R5bGUuaGVpZ2h0JiZrKCEwKX0saHQ9IUcmJiFOJiYhQztyZXR1cm4gYS5jcmVhdGVFbGVtZW50KFBlLlEse3JlZjpZLHZhbHVlOkosYWxsb3dDbGVhcjpDLGhhbmRsZVJlc2V0Omd0LHN1ZmZpeDprZSxwcmVmaXhDbHM6RSxjbGFzc05hbWVzOigwLGVlLlopKCgwLGVlLlopKHt9LEEpLHt9LHthZmZpeFdyYXBwZXI6WCgpKEE9PW51bGw/dm9pZCAwOkEuYWZmaXhXcmFwcGVyLCgwLGFlLlopKCgwLGFlLlopKHt9LCIiLmNvbmNhdChFLCItc2hvdy1jb3VudCIpLE4pLCIiLmNvbmNhdChFLCItdGV4dGFyZWEtYWxsb3ctY2xlYXIiKSxDKSl9KSxkaXNhYmxlZDpiLGZvY3VzZWQ6VSxjbGFzc05hbWU6WCgpKE0sdXQmJiIiLmNvbmNhdChFLCItb3V0LW9mLXJhbmdlIikpLHN0eWxlOigwLGVlLlopKCgwLGVlLlopKHt9LEspLEkmJiFodD97aGVpZ2h0OiJhdXRvIn06e30pLGRhdGFBdHRyczp7YWZmaXhXcmFwcGVyOnsiZGF0YS1jb3VudCI6dHlwZW9mIHBlPT0ic3RyaW5nIj9wZTp2b2lkIDB9fSxoaWRkZW46VixyZWFkT25seTpILG9uQ2xlYXI6VH0sYS5jcmVhdGVFbGVtZW50KE5lLCgwLGllLlopKHt9LCQse2F1dG9TaXplOkcsbWF4TGVuZ3RoOnUsb25LZXlEb3duOnZ0LG9uQ2hhbmdlOmZ0LG9uRm9jdXM6bXQsb25CbHVyOnB0LG9uQ29tcG9zaXRpb25TdGFydDpjdCxvbkNvbXBvc2l0aW9uRW5kOmR0LGNsYXNzTmFtZTpYKCkoQT09bnVsbD92b2lkIDA6QS50ZXh0YXJlYSksc3R5bGU6KDAsZWUuWikoKDAsZWUuWikoe30saj09bnVsbD92b2lkIDA6ai50ZXh0YXJlYSkse30se3Jlc2l6ZTpLPT1udWxsP3ZvaWQgMDpLLnJlc2l6ZX0pLGRpc2FibGVkOmIscHJlZml4Q2xzOkUsb25SZXNpemU6eHQscmVmOnNlLHJlYWRPbmx5Okh9KSkpfSksU2U9VmUsRmU9U2UsRGU9cig3ODI5MCksYmU9cig5NzA4KSxCZT1yKDUzMTI0KSxIZT1yKDk4ODY2KSxldD1yKDM1NzkyKSxMZT1yKDk4Njc1KSxLZT1yKDY1MjIzKSx6ZT1yKDI3ODMzKSxVZT1yKDQxNzMpLFhlPXIoNDc2NzMpLEdlPXIoODM1NTkpLHR0PXIoODMyNjIpLE9lPXIoMjAzNTMpO2NvbnN0IFdlPWU9Pntjb25zdHtjb21wb25lbnRDbHM6dCxwYWRkaW5nTEc6bn09ZSxzPWAke3R9LXRleHRhcmVhYDtyZXR1cm57W3NdOntwb3NpdGlvbjoicmVsYXRpdmUiLCImLXNob3ctY291bnQiOntbYD4gJHt0fWBdOntoZWlnaHQ6IjEwMCUifSxbYCR7dH0tZGF0YS1jb3VudGBdOntwb3NpdGlvbjoiYWJzb2x1dGUiLGJvdHRvbTplLmNhbGMoZS5mb250U2l6ZSkubXVsKGUubGluZUhlaWdodCkubXVsKC0xKS5lcXVhbCgpLGluc2V0SW5saW5lRW5kOjAsY29sb3I6ZS5jb2xvclRleHREZXNjcmlwdGlvbix3aGl0ZVNwYWNlOiJub3dyYXAiLHBvaW50ZXJFdmVudHM6Im5vbmUifX0sW2AKKyAgICAgICAgJi1hbGxvdy1jbGVhciA+ICR7dH0sCisgICAgICAgICYtYWZmaXgtd3JhcHBlciR7c30taGFzLWZlZWRiYWNrICR7dH0KKyAgICAgIGBdOntwYWRkaW5nSW5saW5lRW5kOm59LFtgJi1hZmZpeC13cmFwcGVyJHt0fS1hZmZpeC13cmFwcGVyYF06e3BhZGRpbmc6MCxbYD4gdGV4dGFyZWEke3R9YF06e2ZvbnRTaXplOiJpbmhlcml0Iixib3JkZXI6Im5vbmUiLG91dGxpbmU6Im5vbmUiLGJhY2tncm91bmQ6InRyYW5zcGFyZW50IixtaW5IZWlnaHQ6ZS5jYWxjKGUuY29udHJvbEhlaWdodCkuc3ViKGUuY2FsYyhlLmxpbmVXaWR0aCkubXVsKDIpKS5lcXVhbCgpLCImOmZvY3VzIjp7Ym94U2hhZG93OiJub25lICFpbXBvcnRhbnQifX0sW2Ake3R9LXN1ZmZpeGBdOnttYXJnaW46MCwiPiAqOm5vdCg6bGFzdC1jaGlsZCkiOnttYXJnaW5JbmxpbmU6MH0sW2Ake3R9LWNsZWFyLWljb25gXTp7cG9zaXRpb246ImFic29sdXRlIixpbnNldElubGluZUVuZDplLnBhZGRpbmdJbmxpbmUsaW5zZXRCbG9ja1N0YXJ0OmUucGFkZGluZ1hTfSxbYCR7c30tc3VmZml4YF06e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOjAsaW5zZXRJbmxpbmVFbmQ6ZS5wYWRkaW5nSW5saW5lLGJvdHRvbTowLHpJbmRleDoxLGRpc3BsYXk6ImlubGluZS1mbGV4IixhbGlnbkl0ZW1zOiJjZW50ZXIiLG1hcmdpbjoiYXV0byIscG9pbnRlckV2ZW50czoibm9uZSJ9fX0sW2AmLWFmZml4LXdyYXBwZXIke3R9LWFmZml4LXdyYXBwZXItc21gXTp7W2Ake3R9LXN1ZmZpeGBdOntbYCR7dH0tY2xlYXItaWNvbmBdOntpbnNldElubGluZUVuZDplLnBhZGRpbmdJbmxpbmVTTX19fX19fTt2YXIgcmU9KDAsR2UuSSQpKFsiSW5wdXQiLCJUZXh0QXJlYSJdLGU9Pntjb25zdCB0PSgwLHR0LklYKShlLCgwLE9lLmUpKGUpKTtyZXR1cm5bV2UodCldfSxPZS5ULHtyZXNldEZvbnQ6ITF9KSxZZT1mdW5jdGlvbihlLHQpe3ZhciBuPXt9O2Zvcih2YXIgcyBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHMpJiZ0LmluZGV4T2Yocyk8MCYmKG5bc109ZVtzXSk7aWYoZSE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciB2PTAscz1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3Y8cy5sZW5ndGg7disrKXQuaW5kZXhPZihzW3ZdKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxzW3ZdKSYmKG5bc1t2XV09ZVtzW3ZdXSk7cmV0dXJuIG59LGQ9KDAsYS5mb3J3YXJkUmVmKSgoZSx0KT0+e3ZhciBuO2NvbnN0e3ByZWZpeENsczpzLGJvcmRlcmVkOnY9ITAsc2l6ZTptLGRpc2FibGVkOmMsc3RhdHVzOngsYWxsb3dDbGVhcjpDLGNsYXNzTmFtZXM6dSxyb290Q2xhc3NOYW1lOmgsY2xhc3NOYW1lOlosc3R5bGU6cCxzdHlsZXM6UCx2YXJpYW50OkV9PWUsTj1ZZShlLFsicHJlZml4Q2xzIiwiYm9yZGVyZWQiLCJzaXplIiwiZGlzYWJsZWQiLCJzdGF0dXMiLCJhbGxvd0NsZWFyIiwiY2xhc3NOYW1lcyIsInJvb3RDbGFzc05hbWUiLCJjbGFzc05hbWUiLCJzdHlsZSIsInN0eWxlcyIsInZhcmlhbnQiXSkse2dldFByZWZpeENsczpELGRpcmVjdGlvbjpNLGFsbG93Q2xlYXI6SyxhdXRvQ29tcGxldGU6YixjbGFzc05hbWU6VixzdHlsZTpBLGNsYXNzTmFtZXM6aixzdHlsZXM6Qn09KDAsQmUuZGopKCJ0ZXh0QXJlYSIpLFQ9YS51c2VDb250ZXh0KEhlLlopLEY9YyE9bnVsbD9jOlQse3N0YXR1czpILGhhc0ZlZWRiYWNrOkcsZmVlZGJhY2tJY29uOk99PWEudXNlQ29udGV4dChLZS5hTSksJD0oMCxiZS5GKShILHgpLFc9YS51c2VSZWYobnVsbCk7YS51c2VJbXBlcmF0aXZlSGFuZGxlKHQsKCk9Pnt2YXIgaztyZXR1cm57cmVzaXphYmxlVGV4dEFyZWE6KGs9Vy5jdXJyZW50KT09PW51bGx8fGs9PT12b2lkIDA/dm9pZCAwOmsucmVzaXphYmxlVGV4dEFyZWEsZm9jdXM6WT0+e3ZhciBzZSxxOygwLGNlLm5IKSgocT0oc2U9Vy5jdXJyZW50KT09PW51bGx8fHNlPT09dm9pZCAwP3ZvaWQgMDpzZS5yZXNpemFibGVUZXh0QXJlYSk9PT1udWxsfHxxPT09dm9pZCAwP3ZvaWQgMDpxLnRleHRBcmVhLFkpfSxibHVyOigpPT57dmFyIFk7cmV0dXJuKFk9Vy5jdXJyZW50KT09PW51bGx8fFk9PT12b2lkIDA/dm9pZCAwOlkuYmx1cigpfX19KTtjb25zdCBTPUQoImlucHV0IixzKSxRPSgwLGV0LlopKFMpLFtuZSxKLGddPSgwLFhlLlRJKShTLGgpLFt6XT1yZShTLFEpLHtjb21wYWN0U2l6ZTpVLGNvbXBhY3RJdGVtQ2xhc3NuYW1lczpsfT0oMCxVZS5yaSkoUyxNKSxpPSgwLExlLlopKGs9Pnt2YXIgWTtyZXR1cm4oWT1tIT1udWxsP206VSkhPT1udWxsJiZZIT09dm9pZCAwP1k6a30pLFtmLFJdPSgwLHplLlopKCJ0ZXh0QXJlYSIsRSx2KSxJPSgwLERlLlopKEMhPW51bGw/QzpLKTtyZXR1cm4gbmUoeihhLmNyZWF0ZUVsZW1lbnQoRmUsT2JqZWN0LmFzc2lnbih7YXV0b0NvbXBsZXRlOmJ9LE4se3N0eWxlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxBKSxwKSxzdHlsZXM6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LEIpLFApLGRpc2FibGVkOkYsYWxsb3dDbGVhcjpJLGNsYXNzTmFtZTpYKCkoZyxRLFosaCxsLFYpLGNsYXNzTmFtZXM6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdSksaikse3RleHRhcmVhOlgoKSh7W2Ake1N9LXNtYF06aT09PSJzbWFsbCIsW2Ake1N9LWxnYF06aT09PSJsYXJnZSJ9LEosdT09bnVsbD92b2lkIDA6dS50ZXh0YXJlYSxqLnRleHRhcmVhKSx2YXJpYW50OlgoKSh7W2Ake1N9LSR7Zn1gXTpSfSwoMCxiZS5aKShTLCQpKSxhZmZpeFdyYXBwZXI6WCgpKGAke1N9LXRleHRhcmVhLWFmZml4LXdyYXBwZXJgLHtbYCR7U30tYWZmaXgtd3JhcHBlci1ydGxgXTpNPT09InJ0bCIsW2Ake1N9LWFmZml4LXdyYXBwZXItc21gXTppPT09InNtYWxsIixbYCR7U30tYWZmaXgtd3JhcHBlci1sZ2BdOmk9PT0ibGFyZ2UiLFtgJHtTfS10ZXh0YXJlYS1zaG93LWNvdW50YF06ZS5zaG93Q291bnR8fCgobj1lLmNvdW50KT09PW51bGx8fG49PT12b2lkIDA/dm9pZCAwOm4uc2hvdyl9LEopfSkscHJlZml4Q2xzOlMsc3VmZml4OkcmJmEuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpgJHtTfS10ZXh0YXJlYS1zdWZmaXhgfSxPKSxyZWY6V30pKSkpfSl9LDI1Mjc4OmZ1bmN0aW9uKHJ0LFJlLHIpe3IuZChSZSx7WjpmdW5jdGlvbigpe3JldHVybiBZZX19KTt2YXIgYT1yKDY3Mjk0KSxJZT1yKDkzOTY3KSxYPXIubihJZSksaWU9cig1MzEyNCksYWU9cig2NTIyMyksZWU9cig0NzY3MyksdGU9bz0+e2NvbnN0e2dldFByZWZpeENsczpkLGRpcmVjdGlvbjplfT0oMCxhLnVzZUNvbnRleHQpKGllLkVfKSx7cHJlZml4Q2xzOnQsY2xhc3NOYW1lOm59PW8scz1kKCJpbnB1dC1ncm91cCIsdCksdj1kKCJpbnB1dCIpLFttLGMseF09KDAsZWUuWlApKHYpLEM9WCgpKHMseCx7W2Ake3N9LWxnYF06by5zaXplPT09ImxhcmdlIixbYCR7c30tc21gXTpvLnNpemU9PT0ic21hbGwiLFtgJHtzfS1jb21wYWN0YF06by5jb21wYWN0LFtgJHtzfS1ydGxgXTplPT09InJ0bCJ9LGMsbiksdT0oMCxhLnVzZUNvbnRleHQpKGFlLmFNKSxoPSgwLGEudXNlTWVtbykoKCk9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx1KSx7aXNGb3JtSXRlbUlucHV0OiExfSksW3VdKTtyZXR1cm4gbShhLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6QyxzdHlsZTpvLnN0eWxlLG9uTW91c2VFbnRlcjpvLm9uTW91c2VFbnRlcixvbk1vdXNlTGVhdmU6by5vbk1vdXNlTGVhdmUsb25Gb2N1czpvLm9uRm9jdXMsb25CbHVyOm8ub25CbHVyfSxhLmNyZWF0ZUVsZW1lbnQoYWUuYU0uUHJvdmlkZXIse3ZhbHVlOmh9LG8uY2hpbGRyZW4pKSl9LHVlPXIoODI1ODYpLFBlPXIoNzQ5MDIpLGdlPXIoNjY2ODApLGNlPXIoNjQyMTcpLHhlPXIoOTcwOCksaGU9cig5ODY3NSksQWU9cig4MzU1OSksQ2U9cig4MzI2MiksZGU9cigyMDM1Myk7Y29uc3QgWmU9bz0+e2NvbnN0e2NvbXBvbmVudENsczpkLHBhZGRpbmdYUzplfT1vO3JldHVybntbZF06e2Rpc3BsYXk6ImlubGluZS1mbGV4IixhbGlnbkl0ZW1zOiJjZW50ZXIiLGZsZXhXcmFwOiJub3dyYXAiLGNvbHVtbkdhcDplLCImLXJ0bCI6e2RpcmVjdGlvbjoicnRsIn0sW2Ake2R9LWlucHV0YF06e3RleHRBbGlnbjoiY2VudGVyIixwYWRkaW5nSW5saW5lOm8ucGFkZGluZ1hYU30sW2AmJHtkfS1zbSAke2R9LWlucHV0YF06e3BhZGRpbmdJbmxpbmU6by5jYWxjKG8ucGFkZGluZ1hYUykuZGl2KDIpLmVxdWFsKCl9LFtgJiR7ZH0tbGcgJHtkfS1pbnB1dGBdOntwYWRkaW5nSW5saW5lOm8ucGFkZGluZ1hTfX19fTt2YXIgVGU9KDAsQWUuSSQpKFsiSW5wdXQiLCJPVFAiXSxvPT57Y29uc3QgZD0oMCxDZS5JWCkobywoMCxkZS5lKShvKSk7cmV0dXJuW1plKGQpXX0sZGUuVCksZmU9cig3NTE2NCksTD1mdW5jdGlvbihvLGQpe3ZhciBlPXt9O2Zvcih2YXIgdCBpbiBvKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvLHQpJiZkLmluZGV4T2YodCk8MCYmKGVbdF09b1t0XSk7aWYobyE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBuPTAsdD1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG8pO248dC5sZW5ndGg7bisrKWQuaW5kZXhPZih0W25dKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwobyx0W25dKSYmKGVbdFtuXV09b1t0W25dXSk7cmV0dXJuIGV9LCRlPWEuZm9yd2FyZFJlZigobyxkKT0+e2NvbnN0e3ZhbHVlOmUsb25DaGFuZ2U6dCxvbkFjdGl2ZUNoYW5nZTpuLGluZGV4OnMsbWFzazp2fT1vLG09TChvLFsidmFsdWUiLCJvbkNoYW5nZSIsIm9uQWN0aXZlQ2hhbmdlIiwiaW5kZXgiLCJtYXNrIl0pLGM9ZSYmdHlwZW9mIHY9PSJzdHJpbmciP3Y6ZSx4PXA9Pnt0KHMscC50YXJnZXQudmFsdWUpfSxDPWEudXNlUmVmKG51bGwpO2EudXNlSW1wZXJhdGl2ZUhhbmRsZShkLCgpPT5DLmN1cnJlbnQpO2NvbnN0IHU9KCk9PnsoMCxmZS5aKSgoKT0+e3ZhciBwO2NvbnN0IFA9KHA9Qy5jdXJyZW50KT09PW51bGx8fHA9PT12b2lkIDA/dm9pZCAwOnAuaW5wdXQ7ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PVAmJlAmJlAuc2VsZWN0KCl9KX0saD1wPT57Y29uc3R7a2V5OlAsY3RybEtleTpFLG1ldGFLZXk6Tn09cDtQPT09IkFycm93TGVmdCI/bihzLTEpOlA9PT0iQXJyb3dSaWdodCI/bihzKzEpOlA9PT0ieiImJihFfHxOKSYmcC5wcmV2ZW50RGVmYXVsdCgpLHUoKX0sWj1wPT57cC5rZXk9PT0iQmFja3NwYWNlIiYmIWUmJm4ocy0xKSx1KCl9O3JldHVybiBhLmNyZWF0ZUVsZW1lbnQodWUuWixPYmplY3QuYXNzaWduKHt0eXBlOnY9PT0hMD8icGFzc3dvcmQiOiJ0ZXh0In0sbSx7cmVmOkMsdmFsdWU6YyxvbklucHV0Ongsb25Gb2N1czp1LG9uS2V5RG93bjpoLG9uS2V5VXA6Wixvbk1vdXNlRG93bjp1LG9uTW91c2VVcDp1fSkpfSksd2U9ZnVuY3Rpb24obyxkKXt2YXIgZT17fTtmb3IodmFyIHQgaW4gbylPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobyx0KSYmZC5pbmRleE9mKHQpPDAmJihlW3RdPW9bdF0pO2lmKG8hPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgbj0wLHQ9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhvKTtuPHQubGVuZ3RoO24rKylkLmluZGV4T2YodFtuXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKG8sdFtuXSkmJihlW3Rbbl1dPW9bdFtuXV0pO3JldHVybiBlfTtmdW5jdGlvbiBvZShvKXtyZXR1cm4ob3x8IiIpLnNwbGl0KCIiKX1jb25zdCB2ZT1vPT57Y29uc3R7aW5kZXg6ZCxwcmVmaXhDbHM6ZSxzZXBhcmF0b3I6dH09byxuPXR5cGVvZiB0PT0iZnVuY3Rpb24iP3QoZCk6dDtyZXR1cm4gbj9hLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6YCR7ZX0tc2VwYXJhdG9yYH0sbik6bnVsbH07dmFyIGplPWEuZm9yd2FyZFJlZigobyxkKT0+e2NvbnN0e3ByZWZpeENsczplLGxlbmd0aDp0PTYsc2l6ZTpuLGRlZmF1bHRWYWx1ZTpzLHZhbHVlOnYsb25DaGFuZ2U6bSxmb3JtYXR0ZXI6YyxzZXBhcmF0b3I6eCx2YXJpYW50OkMsZGlzYWJsZWQ6dSxzdGF0dXM6aCxhdXRvRm9jdXM6WixtYXNrOnAsdHlwZTpQLG9uSW5wdXQ6RSxpbnB1dE1vZGU6Tn09byxEPXdlKG8sWyJwcmVmaXhDbHMiLCJsZW5ndGgiLCJzaXplIiwiZGVmYXVsdFZhbHVlIiwidmFsdWUiLCJvbkNoYW5nZSIsImZvcm1hdHRlciIsInNlcGFyYXRvciIsInZhcmlhbnQiLCJkaXNhYmxlZCIsInN0YXR1cyIsImF1dG9Gb2N1cyIsIm1hc2siLCJ0eXBlIiwib25JbnB1dCIsImlucHV0TW9kZSJdKSx7Z2V0UHJlZml4Q2xzOk0sZGlyZWN0aW9uOkt9PWEudXNlQ29udGV4dChpZS5FXyksYj1NKCJvdHAiLGUpLFY9KDAsY2UuWikoRCx7YXJpYTohMCxkYXRhOiEwLGF0dHI6ITB9KSxbQSxqLEJdPVRlKGIpLFQ9KDAsaGUuWikobD0+biE9bnVsbD9uOmwpLEY9YS51c2VDb250ZXh0KGFlLmFNKSxIPSgwLHhlLkYpKEYuc3RhdHVzLGgpLEc9YS51c2VNZW1vKCgpPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sRikse3N0YXR1czpILGhhc0ZlZWRiYWNrOiExLGZlZWRiYWNrSWNvbjpudWxsfSksW0YsSF0pLE89YS51c2VSZWYobnVsbCksJD1hLnVzZVJlZih7fSk7YS51c2VJbXBlcmF0aXZlSGFuZGxlKGQsKCk9Pih7Zm9jdXM6KCk9Pnt2YXIgbDsobD0kLmN1cnJlbnRbMF0pPT09bnVsbHx8bD09PXZvaWQgMHx8bC5mb2N1cygpfSxibHVyOigpPT57dmFyIGw7Zm9yKGxldCBpPTA7aTx0O2krPTEpKGw9JC5jdXJyZW50W2ldKT09PW51bGx8fGw9PT12b2lkIDB8fGwuYmx1cigpfSxuYXRpdmVFbGVtZW50Ok8uY3VycmVudH0pKTtjb25zdCBXPWw9PmM/YyhsKTpsLFtTLFFdPWEudXNlU3RhdGUoKCk9Pm9lKFcoc3x8IiIpKSk7YS51c2VFZmZlY3QoKCk9Pnt2IT09dm9pZCAwJiZRKG9lKHYpKX0sW3ZdKTtjb25zdCBuZT0oMCxnZS5aKShsPT57UShsKSxFJiZFKGwpLG0mJmwubGVuZ3RoPT09dCYmbC5ldmVyeShpPT5pKSYmbC5zb21lKChpLGYpPT5TW2ZdIT09aSkmJm0obC5qb2luKCIiKSl9KSxKPSgwLGdlLlopKChsLGkpPT57bGV0IGY9KDAsUGUuWikoUyk7Zm9yKGxldCBJPTA7STxsO0krPTEpZltJXXx8KGZbSV09IiIpO2kubGVuZ3RoPD0xP2ZbbF09aTpmPWYuc2xpY2UoMCxsKS5jb25jYXQob2UoaSkpLGY9Zi5zbGljZSgwLHQpO2ZvcihsZXQgST1mLmxlbmd0aC0xO0k+PTAmJiFmW0ldO0ktPTEpZi5wb3AoKTtjb25zdCBSPVcoZi5tYXAoST0+SXx8IiAiKS5qb2luKCIiKSk7cmV0dXJuIGY9b2UoUikubWFwKChJLGspPT5JPT09IiAiJiYhZltrXT9mW2tdOkkpLGZ9KSxnPShsLGkpPT57dmFyIGY7Y29uc3QgUj1KKGwsaSksST1NYXRoLm1pbihsK2kubGVuZ3RoLHQtMSk7SSE9PWwmJlJbbF0hPT12b2lkIDAmJigoZj0kLmN1cnJlbnRbSV0pPT09bnVsbHx8Zj09PXZvaWQgMHx8Zi5mb2N1cygpKSxuZShSKX0sej1sPT57dmFyIGk7KGk9JC5jdXJyZW50W2xdKT09PW51bGx8fGk9PT12b2lkIDB8fGkuZm9jdXMoKX0sVT17dmFyaWFudDpDLGRpc2FibGVkOnUsc3RhdHVzOkgsbWFzazpwLHR5cGU6UCxpbnB1dE1vZGU6Tn07cmV0dXJuIEEoYS5jcmVhdGVFbGVtZW50KCJkaXYiLE9iamVjdC5hc3NpZ24oe30sVix7cmVmOk8sY2xhc3NOYW1lOlgoKShiLHtbYCR7Yn0tc21gXTpUPT09InNtYWxsIixbYCR7Yn0tbGdgXTpUPT09ImxhcmdlIixbYCR7Yn0tcnRsYF06Sz09PSJydGwifSxCLGopfSksYS5jcmVhdGVFbGVtZW50KGFlLmFNLlByb3ZpZGVyLHt2YWx1ZTpHfSxBcnJheS5mcm9tKHtsZW5ndGg6dH0pLm1hcCgobCxpKT0+e2NvbnN0IGY9YG90cC0ke2l9YCxSPVNbaV18fCIiO3JldHVybiBhLmNyZWF0ZUVsZW1lbnQoYS5GcmFnbWVudCx7a2V5OmZ9LGEuY3JlYXRlRWxlbWVudCgkZSxPYmplY3QuYXNzaWduKHtyZWY6ST0+eyQuY3VycmVudFtpXT1JfSxpbmRleDppLHNpemU6VCxodG1sU2l6ZToxLGNsYXNzTmFtZTpgJHtifS1pbnB1dGAsb25DaGFuZ2U6Zyx2YWx1ZTpSLG9uQWN0aXZlQ2hhbmdlOnosYXV0b0ZvY3VzOmk9PT0wJiZafSxVKSksaTx0LTEmJmEuY3JlYXRlRWxlbWVudCh2ZSx7c2VwYXJhdG9yOngsaW5kZXg6aSxwcmVmaXhDbHM6Yn0pKX0pKSkpfSksTmU9cig5MDQyMCksTWU9cig5OTYxMSksVmU9cig5ODQyMyksU2U9cig0MjU1MCksRmU9cig5ODg2NiksRGU9cig3MjkyMiksYmU9ZnVuY3Rpb24obyxkKXt2YXIgZT17fTtmb3IodmFyIHQgaW4gbylPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobyx0KSYmZC5pbmRleE9mKHQpPDAmJihlW3RdPW9bdF0pO2lmKG8hPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgbj0wLHQ9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhvKTtuPHQubGVuZ3RoO24rKylkLmluZGV4T2YodFtuXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKG8sdFtuXSkmJihlW3Rbbl1dPW9bdFtuXV0pO3JldHVybiBlfTtjb25zdCBCZT1vPT5vP2EuY3JlYXRlRWxlbWVudChNZS5aLG51bGwpOmEuY3JlYXRlRWxlbWVudChOZS5aLG51bGwpLEhlPXtjbGljazoib25DbGljayIsaG92ZXI6Im9uTW91c2VPdmVyIn07dmFyIExlPWEuZm9yd2FyZFJlZigobyxkKT0+e2NvbnN0e2Rpc2FibGVkOmUsYWN0aW9uOnQ9ImNsaWNrIix2aXNpYmlsaXR5VG9nZ2xlOm49ITAsaWNvblJlbmRlcjpzPUJlfT1vLHY9YS51c2VDb250ZXh0KEZlLlopLG09ZSE9bnVsbD9lOnYsYz10eXBlb2Ygbj09Im9iamVjdCImJm4udmlzaWJsZSE9PXZvaWQgMCxbeCxDXT0oMCxhLnVzZVN0YXRlKSgoKT0+Yz9uLnZpc2libGU6ITEpLHU9KDAsYS51c2VSZWYpKG51bGwpO2EudXNlRWZmZWN0KCgpPT57YyYmQyhuLnZpc2libGUpfSxbYyxuXSk7Y29uc3QgaD0oMCxEZS5aKSh1KSxaPSgpPT57dmFyIFQ7aWYobSlyZXR1cm47eCYmaCgpO2NvbnN0IEY9IXg7QyhGKSx0eXBlb2Ygbj09Im9iamVjdCImJigoVD1uLm9uVmlzaWJsZUNoYW5nZSk9PT1udWxsfHxUPT09dm9pZCAwfHxULmNhbGwobixGKSl9LHA9VD0+e2NvbnN0IEY9SGVbdF18fCIiLEg9cyh4KSxHPXtbRl06WixjbGFzc05hbWU6YCR7VH0taWNvbmAsa2V5OiJwYXNzd29yZEljb24iLG9uTW91c2VEb3duOk89PntPLnByZXZlbnREZWZhdWx0KCl9LG9uTW91c2VVcDpPPT57Ty5wcmV2ZW50RGVmYXVsdCgpfX07cmV0dXJuIGEuY2xvbmVFbGVtZW50KGEuaXNWYWxpZEVsZW1lbnQoSCk/SDphLmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwsSCksRyl9LHtjbGFzc05hbWU6UCxwcmVmaXhDbHM6RSxpbnB1dFByZWZpeENsczpOLHNpemU6RH09byxNPWJlKG8sWyJjbGFzc05hbWUiLCJwcmVmaXhDbHMiLCJpbnB1dFByZWZpeENscyIsInNpemUiXSkse2dldFByZWZpeENsczpLfT1hLnVzZUNvbnRleHQoaWUuRV8pLGI9SygiaW5wdXQiLE4pLFY9SygiaW5wdXQtcGFzc3dvcmQiLEUpLEE9biYmcChWKSxqPVgoKShWLFAse1tgJHtWfS0ke0R9YF06ISFEfSksQj1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sKDAsVmUuWikoTSxbInN1ZmZpeCIsImljb25SZW5kZXIiLCJ2aXNpYmlsaXR5VG9nZ2xlIl0pKSx7dHlwZTp4PyJ0ZXh0IjoicGFzc3dvcmQiLGNsYXNzTmFtZTpqLHByZWZpeENsczpiLHN1ZmZpeDpBfSk7cmV0dXJuIEQmJihCLnNpemU9RCksYS5jcmVhdGVFbGVtZW50KHVlLlosT2JqZWN0LmFzc2lnbih7cmVmOigwLFNlLnNRKShkLHUpfSxCKSl9KSxLZT1yKDQ4Mjk2KSx6ZT1yKDk2MTU5KSxVZT1yKDgzNjIyKSxYZT1yKDQxNzMpLEdlPWZ1bmN0aW9uKG8sZCl7dmFyIGU9e307Zm9yKHZhciB0IGluIG8pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG8sdCkmJmQuaW5kZXhPZih0KTwwJiYoZVt0XT1vW3RdKTtpZihvIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIG49MCx0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMobyk7bjx0Lmxlbmd0aDtuKyspZC5pbmRleE9mKHRbbl0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChvLHRbbl0pJiYoZVt0W25dXT1vW3Rbbl1dKTtyZXR1cm4gZX0sT2U9YS5mb3J3YXJkUmVmKChvLGQpPT57Y29uc3R7cHJlZml4Q2xzOmUsaW5wdXRQcmVmaXhDbHM6dCxjbGFzc05hbWU6bixzaXplOnMsc3VmZml4OnYsZW50ZXJCdXR0b246bT0hMSxhZGRvbkFmdGVyOmMsbG9hZGluZzp4LGRpc2FibGVkOkMsb25TZWFyY2g6dSxvbkNoYW5nZTpoLG9uQ29tcG9zaXRpb25TdGFydDpaLG9uQ29tcG9zaXRpb25FbmQ6cH09byxQPUdlKG8sWyJwcmVmaXhDbHMiLCJpbnB1dFByZWZpeENscyIsImNsYXNzTmFtZSIsInNpemUiLCJzdWZmaXgiLCJlbnRlckJ1dHRvbiIsImFkZG9uQWZ0ZXIiLCJsb2FkaW5nIiwiZGlzYWJsZWQiLCJvblNlYXJjaCIsIm9uQ2hhbmdlIiwib25Db21wb3NpdGlvblN0YXJ0Iiwib25Db21wb3NpdGlvbkVuZCJdKSx7Z2V0UHJlZml4Q2xzOkUsZGlyZWN0aW9uOk59PWEudXNlQ29udGV4dChpZS5FXyksRD1hLnVzZVJlZighMSksTT1FKCJpbnB1dC1zZWFyY2giLGUpLEs9RSgiaW5wdXQiLHQpLHtjb21wYWN0U2l6ZTpifT0oMCxYZS5yaSkoTSxOKSxWPSgwLGhlLlopKGc9Pnt2YXIgejtyZXR1cm4oej1zIT1udWxsP3M6YikhPT1udWxsJiZ6IT09dm9pZCAwP3o6Z30pLEE9YS51c2VSZWYobnVsbCksaj1nPT57ZyE9bnVsbCYmZy50YXJnZXQmJmcudHlwZT09PSJjbGljayImJnUmJnUoZy50YXJnZXQudmFsdWUsZyx7c291cmNlOiJjbGVhciJ9KSxoPT1udWxsfHxoKGcpfSxCPWc9Pnt2YXIgejtkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09KCh6PUEuY3VycmVudCk9PT1udWxsfHx6PT09dm9pZCAwP3ZvaWQgMDp6LmlucHV0KSYmZy5wcmV2ZW50RGVmYXVsdCgpfSxUPWc9Pnt2YXIgeixVO3UmJnUoKFU9KHo9QS5jdXJyZW50KT09PW51bGx8fHo9PT12b2lkIDA/dm9pZCAwOnouaW5wdXQpPT09bnVsbHx8VT09PXZvaWQgMD92b2lkIDA6VS52YWx1ZSxnLHtzb3VyY2U6ImlucHV0In0pfSxGPWc9PntELmN1cnJlbnR8fHh8fFQoZyl9LEg9dHlwZW9mIG09PSJib29sZWFuIj9hLmNyZWF0ZUVsZW1lbnQoS2UuWixudWxsKTpudWxsLEc9YCR7TX0tYnV0dG9uYDtsZXQgTztjb25zdCAkPW18fHt9LFc9JC50eXBlJiYkLnR5cGUuX19BTlRfQlVUVE9OPT09ITA7V3x8JC50eXBlPT09ImJ1dHRvbiI/Tz0oMCx6ZS5UbSkoJCxPYmplY3QuYXNzaWduKHtvbk1vdXNlRG93bjpCLG9uQ2xpY2s6Zz0+e3ZhciB6LFU7KFU9KHo9JD09bnVsbD92b2lkIDA6JC5wcm9wcyk9PT1udWxsfHx6PT09dm9pZCAwP3ZvaWQgMDp6Lm9uQ2xpY2spPT09bnVsbHx8VT09PXZvaWQgMHx8VS5jYWxsKHosZyksVChnKX0sa2V5OiJlbnRlckJ1dHRvbiJ9LFc/e2NsYXNzTmFtZTpHLHNpemU6Vn06e30pKTpPPWEuY3JlYXRlRWxlbWVudChVZS5aUCx7Y2xhc3NOYW1lOkcsdHlwZTptPyJwcmltYXJ5Ijp2b2lkIDAsc2l6ZTpWLGRpc2FibGVkOkMsa2V5OiJlbnRlckJ1dHRvbiIsb25Nb3VzZURvd246QixvbkNsaWNrOlQsbG9hZGluZzp4LGljb246SH0sbSksYyYmKE89W08sKDAsemUuVG0pKGMse2tleToiYWRkb25BZnRlciJ9KV0pO2NvbnN0IFM9WCgpKE0se1tgJHtNfS1ydGxgXTpOPT09InJ0bCIsW2Ake019LSR7Vn1gXTohIVYsW2Ake019LXdpdGgtYnV0dG9uYF06ISFtfSxuKSxRPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxQKSx7Y2xhc3NOYW1lOlMscHJlZml4Q2xzOkssdHlwZToic2VhcmNoIn0pLG5lPWc9PntELmN1cnJlbnQ9ITAsWj09bnVsbHx8WihnKX0sSj1nPT57RC5jdXJyZW50PSExLHA9PW51bGx8fHAoZyl9O3JldHVybiBhLmNyZWF0ZUVsZW1lbnQodWUuWixPYmplY3QuYXNzaWduKHtyZWY6KDAsU2Uuc1EpKEEsZCksb25QcmVzc0VudGVyOkZ9LFEse3NpemU6VixvbkNvbXBvc2l0aW9uU3RhcnQ6bmUsb25Db21wb3NpdGlvbkVuZDpKLGFkZG9uQWZ0ZXI6TyxzdWZmaXg6dixvbkNoYW5nZTpqLGRpc2FibGVkOkN9KSl9KSxXZT1yKDI5NjEpO2NvbnN0IHJlPXVlLlo7cmUuR3JvdXA9dGUscmUuU2VhcmNoPU9lLHJlLlRleHRBcmVhPVdlLloscmUuUGFzc3dvcmQ9TGUscmUuT1RQPWplO3ZhciBZZT1yZX19XSk7CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzUzNDkuYjdhZjZiMWIuYXN5bmMuanMgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzUzNDkuYjdhZjZiMWIuYXN5bmMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzZjYjMyNgotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNTM0OS5iN2FmNmIxYi5hc3luYy5qcwpAQCAtMCwwICsxIEBACisidXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W10pLnB1c2goW1s1MzQ5XSx7NDUzNDk6ZnVuY3Rpb24oSGUsVix0KXt0LnIoViksdC5kKFYse2RlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4gVWV9fSk7dmFyIFg9dCgxNTAwOSksRT10Lm4oWCkscT10KDk5Mjg5KSxaPXQubihxKSxfPXQoNTU3NCksST10Lm4oXyksYz10KDY3Mjk0KSxlZT10KDk3MjY5KSxVPXQoMzExOTkpLGFlPXQoMTkwNTQpLFQ9dCg4NjYxNSksdGU9dCg2NDMxNyksUD10KDU5NjYpLHVlPXQoOTk4NTkpLFI9dCgxNzc4OCksZj10KDc2NzcyKSxuZT10KDgwNzYxKSxzZT10KDk3ODU3KSxpPXQubihzZSksdz10KDY1NjI0KSxPPXQoMTYxNjUpLHJlPXQoMzI5ODMpLGxlPXQoNzgwNDUpLG9lPXQoMjUyNzgpLGllPXQoMjMyNzkpLGNlPXQubihpZSksZGU9dCg5NzgzKSxtZT10Lm4oZGUpLHo9dCg4MzA2MiksRmU9dCg5Mzk2NyksZmU9dC5uKEZlKSxHPXtpY29uUGljU2VhcmNoZXI6Imljb25QaWNTZWFyY2hlcl9fX2hKZzREIiwiaWNvbi1waWMtYnRuIjoiaWNvbi1waWMtYnRuX19fTDR2MVMiLCJpY29uLXBpYy1wcmV2aWV3IjoiaWNvbi1waWMtcHJldmlld19fX2lsU0RoIiwiaWNvbi1waWMtc2VhcmNoLXJlc3VsdCI6Imljb24tcGljLXNlYXJjaC1yZXN1bHRfX19nSUdDaCIsInJlc3VsdC10aXAiOiJyZXN1bHQtdGlwX19fTHpSbWkiLCJjb2wtaWNvbiI6ImNvbC1pY29uX19fQlNZWmciLGFudGljb246ImFudGljb25fX19xTF9obSIsYW50aWNvbnNMaXN0OiJhbnRpY29uc0xpc3RfX19ITWlfYyIscnRsOiJydGxfX19FemkxMSIsYW50aWNvbkNsYXNzOiJhbnRpY29uQ2xhc3NfX19FaTlkbSIsImFudC1iYWRnZSI6ImFudC1iYWRnZV9fX1p2NWlnIixUd29Ub25lOiJUd29Ub25lX19fRVB5QmEiLGNvcGllZDoiY29waWVkX19fTkdkX2EiLCJjb3BpZWQtY29kZSI6ImNvcGllZC1jb2RlX19fd1c4dkQifSxlPXQoODU4OTMpLGhlPXcsZ2U9ZnVuY3Rpb24oYSl7dmFyIHI9YS5uYW1lLFM9YS5qdXN0Q29waWVkLGg9YS5vblNlbGVjdCxvPWEudGhlbWUsZz1mZSgpKG1lKCkoe2NvcGllZDpTPT09cn0sbywhIW8pKTtyZXR1cm4oMCxlLmpzeCkoImxpIix7Y2xhc3NOYW1lOmcsb25DbGljazpmdW5jdGlvbigpe2gmJmgobyxyKX0sY2hpbGRyZW46KDAsZS5qc3gpKHouWix7dGl0bGU6cixjaGlsZHJlbjpjLmNyZWF0ZUVsZW1lbnQoaGVbcl0se2NsYXNzTmFtZTpHLmFudGljb259KX0pfSl9LHZlPWdlLHBlPWZ1bmN0aW9uKGEpe3ZhciByPWEuaWNvbnMsUz1hLnRpdGxlLGg9YS5uZXdJY29ucyxvPWEudGhlbWUsZz0oMCxmLnVzZUludGwpKCksdj1jLnVzZVN0YXRlKG51bGwpLEI9SSgpKHYsMiksTT1CWzBdLHg9QlsxXSxwPWMudXNlUmVmKG51bGwpLHM9Yy51c2VDYWxsYmFjayhmdW5jdGlvbihuLGwpe3ZhciB1PWEub25TZWxlY3Q7dSYmdShuLGwpLHgobikscC5jdXJyZW50PXNldFRpbWVvdXQoZnVuY3Rpb24oKXt4KG51bGwpfSwyZTMpfSxbXSk7cmV0dXJuIGMudXNlRWZmZWN0KGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKCl7cC5jdXJyZW50JiZjbGVhclRpbWVvdXQoTnVtYmVyKHAuY3VycmVudCkpfX0sW10pLCgwLGUuanN4cykoImRpdiIse2NoaWxkcmVuOlsoMCxlLmpzeCkoImg0Iix7Y2hpbGRyZW46Zy5mb3JtYXRNZXNzYWdlKHtpZDoiYXBwLmRvY3MuY29tcG9uZW50cy5pY29uLmNhdGVnb3J5LiIuY29uY2F0KFMpLGRlZmF1bHRNZXNzYWdlOiJcdTRGRTFcdTYwNkYifSl9KSwoMCxlLmpzeCkoInVsIix7Y2xhc3NOYW1lOkcuYW50aWNvbnNMaXN0LGNoaWxkcmVuOnIubWFwKGZ1bmN0aW9uKG4pe3JldHVybigwLGUuanN4KSh2ZSx7bmFtZTpuLHRoZW1lOm8saXNOZXc6aC5pbmNsdWRlcyhuKSxqdXN0Q29waWVkOk0sb25TZWxlY3Q6c30sbil9KX0pXX0pfSxDZT1wZSx4ZT10KDIzNzk5KSxTZT10KDU1MjQxKSwkPXQoNTczODEpLGplPXQoMzg3MDMpLEJlPXQoNTk3MjApLE1lPXQoODg5MTYpLHllPXQoNjQwODIpLEllPXcsRGU9eGUuWi5EcmFnZ2VyLEVlPWZ1bmN0aW9uKCl7dmFyIGE9KDAsZi51c2VJbnRsKSgpLHI9YS5mb3JtYXRNZXNzYWdlLFM9KDAsYy51c2VTdGF0ZSkoe2xvYWRpbmc6ITEsbW9kYWxPcGVuOiExLHBvcG92ZXJWaXNpYmxlOiExLGljb25zOltdLGZpbGVMaXN0OltdLGVycm9yOiExLG1vZGVsTG9hZGVkOiExfSksaD1JKCkoUywyKSxvPWhbMF0sZz1oWzFdLHY9ZnVuY3Rpb24obil7dHJ5e3ZhciBsPXdpbmRvdy5hbnRkSWNvbkNsYXNzaWZpZXIucHJlZGljdChuKTtndGFnJiZsLmxlbmd0aCYmZ3RhZygiZXZlbnQiLCJpY29uIix7ZXZlbnRfY2F0ZWdvcnk6InNlYXJjaC1ieS1pbWFnZSIsZXZlbnRfbGFiZWw6bFswXS5jbGFzc05hbWV9KSxsPWwubWFwKGZ1bmN0aW9uKHUpe3JldHVybntzY29yZTp1LnNjb3JlLHR5cGU6dS5jbGFzc05hbWUucmVwbGFjZSgvXHMvZywiLSIpfX0pLGcoZnVuY3Rpb24odSl7cmV0dXJuIGkoKShpKCkoe30sdSkse30se2xvYWRpbmc6ITEsZXJyb3I6ITEsaWNvbnM6bH0pfSl9Y2F0Y2godSl7ZyhmdW5jdGlvbihtKXtyZXR1cm4gaSgpKGkoKSh7fSxtKSx7fSx7bG9hZGluZzohMSxlcnJvcjohMH0pfSl9fSxCPWZ1bmN0aW9uKG4pe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihsKXt2YXIgdT1uZXcgSW1hZ2U7dS5zZXRBdHRyaWJ1dGUoImNyb3NzT3JpZ2luIiwiYW5vbnltb3VzIiksdS5zcmM9bix1Lm9ubG9hZD1mdW5jdGlvbigpe2wodSl9fSl9LE09KDAsYy51c2VDYWxsYmFjaykoZnVuY3Rpb24ocyl7ZyhmdW5jdGlvbihsKXtyZXR1cm4gaSgpKGkoKSh7fSxsKSx7fSx7bG9hZGluZzohMH0pfSk7dmFyIG49bmV3IEZpbGVSZWFkZXI7bi5vbmxvYWQ9ZnVuY3Rpb24oKXtCKG4ucmVzdWx0KS50aGVuKHYpLGcoZnVuY3Rpb24obCl7cmV0dXJuIGkoKShpKCkoe30sbCkse30se2ZpbGVMaXN0Olt7dWlkOjEsbmFtZTpzLm5hbWUsc3RhdHVzOiJkb25lIix1cmw6bi5yZXN1bHR9XX0pfSl9LG4ucmVhZEFzRGF0YVVSTChzKX0sW10pLHg9KDAsYy51c2VDYWxsYmFjaykoZnVuY3Rpb24ocyl7dmFyIG49cy5jbGlwYm9hcmREYXRhJiZzLmNsaXBib2FyZERhdGEuaXRlbXMsbD1udWxsO2lmKG4mJm4ubGVuZ3RoKXtmb3IodmFyIHU9MDt1PG4ubGVuZ3RoO3UrKylpZihuW3VdLnR5cGUuaW5jbHVkZXMoImltYWdlIikpe2w9blt1XS5nZXRBc0ZpbGUoKTticmVha319bCYmTShsKX0sW10pLHA9KDAsYy51c2VDYWxsYmFjaykoZnVuY3Rpb24oKXtnKGZ1bmN0aW9uKHMpe3JldHVybiBpKCkoaSgpKHt9LHMpLHt9LHttb2RhbE9wZW46IXMubW9kYWxPcGVuLHBvcG92ZXJWaXNpYmxlOiExLGZpbGVMaXN0OltdLGljb25zOltdfSl9KSxsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgiZGlzYWJsZUljb25UaXAiKXx8bG9jYWxTdG9yYWdlLnNldEl0ZW0oImRpc2FibGVJY29uVGlwIiwidHJ1ZSIpfSxbXSk7cmV0dXJuKDAsYy51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7dmFyIHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7cmV0dXJuIHMub25sb2FkPVooKShFKCkoKS5tYXJrKGZ1bmN0aW9uIG4oKXtyZXR1cm4gRSgpKCkud3JhcChmdW5jdGlvbih1KXtmb3IoOzspc3dpdGNoKHUucHJldj11Lm5leHQpe2Nhc2UgMDpyZXR1cm4gdS5uZXh0PTIsd2luZG93LmFudGRJY29uQ2xhc3NpZmllci5sb2FkKCk7Y2FzZSAyOmcoZnVuY3Rpb24obSl7cmV0dXJuIGkoKShpKCkoe30sbSkse30se21vZGVsTG9hZGVkOiEwfSl9KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJwYXN0ZSIseCk7Y2FzZSA0OmNhc2UiZW5kIjpyZXR1cm4gdS5zdG9wKCl9fSxuKX0pKSxzLnNyYz0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L2doL2xld2lzNjE3L2FudGQtaWNvbi1jbGFzc2lmaWVyQDAuMC9kaXN0L21haW4uanMiLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQocyksZyhmdW5jdGlvbihuKXtyZXR1cm4gaSgpKGkoKSh7fSxuKSx7fSx7cG9wb3ZlclZpc2libGU6IWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJkaXNhYmxlSWNvblRpcCIpfSl9KSxmdW5jdGlvbigpe2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBhc3RlIix4KX19LFtdKSwoMCxlLmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6Imljb25QaWNTZWFyY2hlciIsY2hpbGRyZW46WygwLGUuanN4KShTZS5aLHtjb250ZW50OnIoe2lkOiJhcHAuZG9jcy5jb21wb25lbnRzLmljb24ucGljLXNlYXJjaGVyLmludHJvIn0pLG9wZW46by5wb3BvdmVyVmlzaWJsZSxjaGlsZHJlbjooMCxlLmpzeCkoTWUuWix7Y2xhc3NOYW1lOiJpY29uLXBpYy1idG4iLG9uQ2xpY2s6cH0pfSksKDAsZS5qc3hzKShSLlose3RpdGxlOmEuZm9ybWF0TWVzc2FnZSh7aWQ6ImFwcC5kb2NzLmNvbXBvbmVudHMuaWNvbi5waWMtc2VhcmNoZXIudGl0bGUiLGRlZmF1bHRNZXNzYWdlOiJcdTRGRTFcdTYwNkYifSksb3BlbjpvLm1vZGFsT3BlbixvbkNhbmNlbDpwLGZvb3RlcjpudWxsLGNoaWxkcmVuOltvLm1vZGVsTG9hZGVkfHwoMCxlLmpzeCkoJC5aLHtzcGlubmluZzohby5tb2RlbExvYWRlZCx0aXA6cih7aWQ6ImFwcC5kb2NzLmNvbXBvbmVudHMuaWNvbi5waWMtc2VhcmNoZXIubW9kZWxsb2FkaW5nIn0pLGNoaWxkcmVuOigwLGUuanN4KSgiZGl2Iix7c3R5bGU6e2hlaWdodDoxMDB9fSl9KSxvLm1vZGVsTG9hZGVkJiYoMCxlLmpzeHMpKERlLHthY2NlcHQ6ImltYWdlL2pwZWcsIGltYWdlL3BuZyIsbGlzdFR5cGU6InBpY3R1cmUiLGN1c3RvbVJlcXVlc3Q6ZnVuY3Rpb24obil7cmV0dXJuIE0obi5maWxlKX0sZmlsZUxpc3Q6by5maWxlTGlzdCxzaG93VXBsb2FkTGlzdDp7c2hvd1ByZXZpZXdJY29uOiExLHNob3dSZW1vdmVJY29uOiExfSxjaGlsZHJlbjpbKDAsZS5qc3gpKCJwIix7Y2xhc3NOYW1lOiJhbnQtdXBsb2FkLWRyYWctaWNvbiIsY2hpbGRyZW46KDAsZS5qc3gpKHllLlose30pfSksKDAsZS5qc3gpKCJwIix7Y2xhc3NOYW1lOiJhbnQtdXBsb2FkLXRleHQiLGNoaWxkcmVuOnIoe2lkOiJhcHAuZG9jcy5jb21wb25lbnRzLmljb24ucGljLXNlYXJjaGVyLnVwbG9hZC10ZXh0In0pfSksKDAsZS5qc3gpKCJwIix7Y2xhc3NOYW1lOiJhbnQtdXBsb2FkLWhpbnQiLGNoaWxkcmVuOnIoe2lkOiJhcHAuZG9jcy5jb21wb25lbnRzLmljb24ucGljLXNlYXJjaGVyLnVwbG9hZC1oaW50In0pfSldfSksKDAsZS5qc3gpKCQuWix7c3Bpbm5pbmc6by5sb2FkaW5nLHRpcDpyKHtpZDoiYXBwLmRvY3MuY29tcG9uZW50cy5pY29uLnBpYy1zZWFyY2hlci5tYXRjaGluZyJ9KSxjaGlsZHJlbjooMCxlLmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6Imljb24tcGljLXNlYXJjaC1yZXN1bHQiLGNoaWxkcmVuOltvLmljb25zLmxlbmd0aD4wJiYoMCxlLmpzeCkoImRpdiIse2NsYXNzTmFtZToicmVzdWx0LXRpcCIsY2hpbGRyZW46cih7aWQ6ImFwcC5kb2NzLmNvbXBvbmVudHMuaWNvbi5waWMtc2VhcmNoZXIucmVzdWx0LXRpcCJ9KX0pLCgwLGUuanN4cykoInRhYmxlIix7Y2hpbGRyZW46W28uaWNvbnMubGVuZ3RoPjAmJigwLGUuanN4KSgidGhlYWQiLHtjaGlsZHJlbjooMCxlLmpzeHMpKCJ0ciIse2NoaWxkcmVuOlsoMCxlLmpzeCkoInRoIix7Y2xhc3NOYW1lOiJjb2wtaWNvbiIsY2hpbGRyZW46cih7aWQ6ImFwcC5kb2NzLmNvbXBvbmVudHMuaWNvbi5waWMtc2VhcmNoZXIudGgtaWNvbiJ9KX0pLCgwLGUuanN4KSgidGgiLHtjaGlsZHJlbjpyKHtpZDoiYXBwLmRvY3MuY29tcG9uZW50cy5pY29uLnBpYy1zZWFyY2hlci50aC1zY29yZSJ9KX0pXX0pfSksKDAsZS5qc3gpKCJ0Ym9keSIse2NoaWxkcmVuOm8uaWNvbnMubWFwKGZ1bmN0aW9uKHMpe3ZhciBuPXMudHlwZSxsPSIiLmNvbmNhdChuLnNwbGl0KCItIikubWFwKGZ1bmN0aW9uKHUpe3JldHVybiIiLmNvbmNhdCh1WzBdLnRvVXBwZXJDYXNlKCkpLmNvbmNhdCh1LnNsaWNlKDEpKX0pLmpvaW4oIiIpLCJPdXRsaW5lZCIpO3JldHVybigwLGUuanN4cykoInRyIix7Y2hpbGRyZW46WygwLGUuanN4KSgidGQiLHtjbGFzc05hbWU6ImNvbC1pY29uIixjaGlsZHJlbjooMCxlLmpzeCkoei5aLHt0aXRsZTpzLnR5cGUscGxhY2VtZW50OiJyaWdodCIsY2hpbGRyZW46Yy5jcmVhdGVFbGVtZW50KEllW2xdKX0pfSksKDAsZS5qc3gpKCJ0ZCIse2NoaWxkcmVuOigwLGUuanN4KShqZS5aLHtwZXJjZW50Ok1hdGguY2VpbChzLnNjb3JlKjEwMCl9KX0pXX0sbCl9KX0pXX0pLG8uZXJyb3ImJigwLGUuanN4KShCZS5aUCx7c3RhdHVzOiI1MDAiLHRpdGxlOiI1MDMiLHN1YlRpdGxlOnIoe2lkOiJhcHAuZG9jcy5jb21wb25lbnRzLmljb24ucGljLXNlYXJjaGVyLnNlcnZlci1lcnJvciJ9KX0pXX0pfSldfSldfSl9LGJlPUVlLFRlPWZ1bmN0aW9uKGEpe3ZhciByPSJNODY0IDY0SDE2MEMxMDcgNjQgNjQgMTA3IDY0IDE2MHY3MDRjMCA1MyA0MyA5NiA5NiA5Nmg3MDRjNTMgMCA5Ni00MyA5Ni05NlYxNjBjMC01My00My05Ni05Ni05NnoiO3JldHVybigwLGUuanN4KSgic3ZnIixpKCkoaSgpKHt9LGEpLHt9LHt2aWV3Qm94OiIwIDAgMTAyNCAxMDI0IixjaGlsZHJlbjooMCxlLmpzeCkoInBhdGgiLHtkOnJ9KX0pKX0sUGU9ZnVuY3Rpb24oYSl7dmFyIHI9Ik04NjQgNjRIMTYwQzEwNyA2NCA2NCAxMDcgNjQgMTYwdjcwNGMwIDUzIDQzIDk2IDk2IDk2aDcwNGM1MyAwIDk2LTQzIDk2LTk2VjE2MGMwLTUzLTQzLTk2LTk2LTk2eiBtLTEyIDgwMEgxNzJjLTYuNiAwLTEyLTUuNC0xMi0xMlYxNzJjMC02LjYgNS40LTEyIDEyLTEyaDY4MGM2LjYgMCAxMiA1LjQgMTIgMTJ2NjgwYzAgNi42LTUuNCAxMi0xMiAxMnoiO3JldHVybigwLGUuanN4KSgic3ZnIixpKCkoaSgpKHt9LGEpLHt9LHt2aWV3Qm94OiIwIDAgMTAyNCAxMDI0IixjaGlsZHJlbjooMCxlLmpzeCkoInBhdGgiLHtkOnJ9KX0pKX0sQWU9ZnVuY3Rpb24oYSl7dmFyIHI9Ik0xNiA1MTJjMCAyNzMuOTMyIDIyMi4wNjYgNDk2IDQ5NiA0OTZzNDk2LTIyMi4wNjggNDk2LTQ5NlM3ODUuOTMyIDE2IDUxMiAxNiAxNiAyMzguMDY2IDE2IDUxMnogbTQ5NiAzNjhWMTQ0YzIwMy40MSAwIDM2OCAxNjQuNjIyIDM2OCAzNjggMCAyMDMuNDEtMTY0LjYyMiAzNjgtMzY4IDM2OHoiO3JldHVybigwLGUuanN4KSgic3ZnIixpKCkoaSgpKHt9LGEpLHt9LHt2aWV3Qm94OiIwIDAgMTAyNCAxMDI0IixjaGlsZHJlbjooMCxlLmpzeCkoInBhdGgiLHtkOnJ9KX0pKX0sTGU9dCg2MjgxNiksWmU9T2JqZWN0LmtleXMoTGUpLm1hcChmdW5jdGlvbihkKXtyZXR1cm4gZC5yZXBsYWNlKC8oT3V0bGluZWR8RmlsbGVkfFR3b1RvbmUpJC8sIiIpfSkuZmlsdGVyKGZ1bmN0aW9uKGQsYSxyKXtyZXR1cm4gci5pbmRleE9mKGQpPT09YX0pLEg9WyJTdGVwQmFja3dhcmQiLCJTdGVwRm9yd2FyZCIsIkZhc3RCYWNrd2FyZCIsIkZhc3RGb3J3YXJkIiwiU2hyaW5rIiwiQXJyb3dzQWx0IiwiRG93biIsIlVwIiwiTGVmdCIsIlJpZ2h0IiwiQ2FyZXRVcCIsIkNhcmV0RG93biIsIkNhcmV0TGVmdCIsIkNhcmV0UmlnaHQiLCJVcENpcmNsZSIsIkRvd25DaXJjbGUiLCJMZWZ0Q2lyY2xlIiwiUmlnaHRDaXJjbGUiLCJEb3VibGVSaWdodCIsIkRvdWJsZUxlZnQiLCJWZXJ0aWNhbExlZnQiLCJWZXJ0aWNhbFJpZ2h0IiwiVmVydGljYWxBbGlnblRvcCIsIlZlcnRpY2FsQWxpZ25NaWRkbGUiLCJWZXJ0aWNhbEFsaWduQm90dG9tIiwiRm9yd2FyZCIsIkJhY2t3YXJkIiwiUm9sbGJhY2siLCJFbnRlciIsIlJldHdlZXQiLCJTd2FwIiwiU3dhcExlZnQiLCJTd2FwUmlnaHQiLCJBcnJvd1VwIiwiQXJyb3dEb3duIiwiQXJyb3dMZWZ0IiwiQXJyb3dSaWdodCIsIlBsYXlDaXJjbGUiLCJVcFNxdWFyZSIsIkRvd25TcXVhcmUiLCJMZWZ0U3F1YXJlIiwiUmlnaHRTcXVhcmUiLCJMb2dpbiIsIkxvZ291dCIsIk1lbnVGb2xkIiwiTWVudVVuZm9sZCIsIkJvcmRlckJvdHRvbSIsIkJvcmRlckhvcml6b250YWwiLCJCb3JkZXJJbm5lciIsIkJvcmRlck91dGVyIiwiQm9yZGVyTGVmdCIsIkJvcmRlclJpZ2h0IiwiQm9yZGVyVG9wIiwiQm9yZGVyVmVydGljbGUiLCJQaWNDZW50ZXIiLCJQaWNMZWZ0IiwiUGljUmlnaHQiLCJSYWRpdXNCb3R0b21sZWZ0IiwiUmFkaXVzQm90dG9tcmlnaHQiLCJSYWRpdXNVcGxlZnQiLCJSYWRpdXNVcHJpZ2h0IiwiRnVsbHNjcmVlbiIsIkZ1bGxzY3JlZW5FeGl0Il0sVz1bIlF1ZXN0aW9uIiwiUXVlc3Rpb25DaXJjbGUiLCJQbHVzIiwiUGx1c0NpcmNsZSIsIlBhdXNlIiwiUGF1c2VDaXJjbGUiLCJNaW51cyIsIk1pbnVzQ2lyY2xlIiwiUGx1c1NxdWFyZSIsIk1pbnVzU3F1YXJlIiwiSW5mbyIsIkluZm9DaXJjbGUiLCJFeGNsYW1hdGlvbiIsIkV4Y2xhbWF0aW9uQ2lyY2xlIiwiQ2xvc2UiLCJDbG9zZUNpcmNsZSIsIkNsb3NlU3F1YXJlIiwiQ2hlY2siLCJDaGVja0NpcmNsZSIsIkNoZWNrU3F1YXJlIiwiQ2xvY2tDaXJjbGUiLCJXYXJuaW5nIiwiSXNzdWVzQ2xvc2UiLCJTdG9wIl0sSz1bIkVkaXQiLCJGb3JtIiwiQ29weSIsIlNjaXNzb3IiLCJEZWxldGUiLCJTbmlwcGV0cyIsIkRpZmYiLCJIaWdobGlnaHQiLCJBbGlnbkNlbnRlciIsIkFsaWduTGVmdCIsIkFsaWduUmlnaHQiLCJCZ0NvbG9ycyIsIkJvbGQiLCJJdGFsaWMiLCJVbmRlcmxpbmUiLCJTdHJpa2V0aHJvdWdoIiwiUmVkbyIsIlVuZG8iLCJab29tSW4iLCJab29tT3V0IiwiRm9udENvbG9ycyIsIkZvbnRTaXplIiwiTGluZUhlaWdodCIsIkRhc2giLCJTbWFsbERhc2giLCJTb3J0QXNjZW5kaW5nIiwiU29ydERlc2NlbmRpbmciLCJEcmFnIiwiT3JkZXJlZExpc3QiLCJVbm9yZGVyZWRMaXN0IiwiUmFkaXVzU2V0dGluZyIsIkNvbHVtbldpZHRoIiwiQ29sdW1uSGVpZ2h0Il0saz1bIkFyZWFDaGFydCIsIlBpZUNoYXJ0IiwiQmFyQ2hhcnQiLCJEb3RDaGFydCIsIkxpbmVDaGFydCIsIlJhZGFyQ2hhcnQiLCJIZWF0TWFwIiwiRmFsbCIsIlJpc2UiLCJTdG9jayIsIkJveFBsb3QiLCJGdW5kIiwiU2xpZGVycyJdLFk9WyJBbmRyb2lkIiwiQXBwbGUiLCJXaW5kb3dzIiwiSWUiLCJDaHJvbWUiLCJHaXRodWIiLCJBbGl3YW5nd2FuZyIsIkRpbmdkaW5nIiwiV2VpYm9TcXVhcmUiLCJXZWlib0NpcmNsZSIsIlRhb2Jhb0NpcmNsZSIsIkh0bWw1IiwiV2VpYm8iLCJUd2l0dGVyIiwiV2VjaGF0IiwiWW91dHViZSIsIkFsaXBheUNpcmNsZSIsIlRhb2JhbyIsIlNreXBlIiwiUXEiLCJNZWRpdW1Xb3JrbWFyayIsIkdpdGxhYiIsIk1lZGl1bSIsIkxpbmtlZGluIiwiR29vZ2xlUGx1cyIsIkRyb3Bib3giLCJGYWNlYm9vayIsIkNvZGVwZW4iLCJDb2RlU2FuZGJveCIsIkNvZGVTYW5kYm94Q2lyY2xlIiwiQW1hem9uIiwiR29vZ2xlIiwiQ29kZXBlbkNpcmNsZSIsIkFsaXBheSIsIkFudERlc2lnbiIsIkFudENsb3VkIiwiQWxpeXVuIiwiWmhpaHUiLCJTbGFjayIsIlNsYWNrU3F1YXJlIiwiQmVoYW5jZSIsIkJlaGFuY2VTcXVhcmUiLCJEcmliYmJsZSIsIkRyaWJiYmxlU3F1YXJlIiwiSW5zdGFncmFtIiwiWXVxdWUiLCJBbGliYWJhIiwiWWFob28iLCJSZWRkaXQiLCJTa2V0Y2giLCJXaGF0c0FwcCIsIkRpbmd0YWxrIl0sUmU9W10uY29uY2F0KEgsVyxLLGssWSksd2U9WmUuZmlsdGVyKGZ1bmN0aW9uKGQpe3JldHVybiFSZS5pbmNsdWRlcyhkKX0pLFE9e2RpcmVjdGlvbjpILHN1Z2dlc3Rpb246VyxlZGl0b3I6SyxkYXRhOmssbG9nbzpZLG90aGVyOndlfSxXZT1udWxsLEE9ZnVuY3Rpb24oZCl7cmV0dXJuIGQuRmlsbGVkPSJGaWxsZWQiLGQuT3V0bGluZWQ9Ik91dGxpbmVkIixkLlR3b1RvbmU9IlR3b1RvbmUiLGR9KHt9KSxKPXcsT2U9ZnVuY3Rpb24oYSl7dmFyIHI9YS5vblNlbGVjdCxTPWMudXNlU3RhdGUoe3RoZW1lOkEuT3V0bGluZWQsc2VhcmNoS2V5OiIifSksaD1JKCkoUywyKSxvPWhbMF0sZz1oWzFdLHY9W10sQj1jLnVzZUNhbGxiYWNrKGNlKCkoZnVuY3Rpb24ocCl7ZyhmdW5jdGlvbihzKXtyZXR1cm4gaSgpKGkoKSh7fSxzKSx7fSx7c2VhcmNoS2V5OnB9KX0pfSksW10pLE09Yy51c2VDYWxsYmFjayhmdW5jdGlvbihwKXtnKGZ1bmN0aW9uKHMpe3JldHVybiBpKCkoaSgpKHt9LHMpLHt9LHt0aGVtZTpwLnRhcmdldC52YWx1ZX0pfSl9LFtdKSx4PWMudXNlTWVtbyhmdW5jdGlvbigpe3ZhciBwPW8uc2VhcmNoS2V5LHM9cD09PXZvaWQgMD8iIjpwLG49by50aGVtZSxsPU9iamVjdC5rZXlzKFEpLm1hcChmdW5jdGlvbih1KXt2YXIgbT1RW3VdO2lmKHMpe3ZhciBiPXMucmVwbGFjZShuZXcgUmVnRXhwKCJePChbYS16QS1aXSopXFxzLz4kIiwiZ2kiKSxmdW5jdGlvbihDLEwpe3JldHVybiBMfSkucmVwbGFjZSgvKEZpbGxlZHxPdXRsaW5lZHxUd29Ub25lKSQvLCIiKS50b0xvd2VyQ2FzZSgpO209bS5maWx0ZXIoZnVuY3Rpb24oQyl7cmV0dXJuIEMudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhiKX0pfXJldHVybiBtPW0uZmlsdGVyKGZ1bmN0aW9uKEMpe3JldHVybiBDIT09IkNvcHlyaWdodENpcmNsZSJ9KSx7Y2F0ZWdvcnk6dSxpY29uczptLm1hcChmdW5jdGlvbihDKXtyZXR1cm4gQytufSkuZmlsdGVyKGZ1bmN0aW9uKEMpe3JldHVybiBKW0NdfSl9fSkuZmlsdGVyKGZ1bmN0aW9uKHUpe3ZhciBtPXUuaWNvbnM7cmV0dXJuISFtLmxlbmd0aH0pLm1hcChmdW5jdGlvbih1KXt2YXIgbT11LmNhdGVnb3J5LGI9dS5pY29ucztyZXR1cm4oMCxlLmpzeCkoQ2Use3RpdGxlOm0sdGhlbWU6bixpY29uczpiLG5ld0ljb25zOnYsb25TZWxlY3Q6ZnVuY3Rpb24oTCxGKXtyJiZyKEYsSltGXSl9fSxtKX0pO3JldHVybiBsLmxlbmd0aD09PTA/KDAsZS5qc3gpKHJlLlose3N0eWxlOnttYXJnaW46IjJlbSAwIn19KTpsfSxbby5zZWFyY2hLZXksby50aGVtZV0pO3JldHVybigwLGUuanN4cykoZS5GcmFnbWVudCx7Y2hpbGRyZW46WygwLGUuanN4cykoImRpdiIse3N0eWxlOntkaXNwbGF5OiJmbGV4IixqdXN0aWZ5Q29udGVudDoic3BhY2UtYmV0d2VlbiJ9LGNoaWxkcmVuOlsoMCxlLmpzeCkobGUuWlAuR3JvdXAse3ZhbHVlOm8udGhlbWUsb25DaGFuZ2U6TSxzaXplOiJsYXJnZSIsb3B0aW9uVHlwZToiYnV0dG9uIixidXR0b25TdHlsZToic29saWQiLG9wdGlvbnM6W3tsYWJlbDooMCxlLmpzeCkoTy5aLHtjb21wb25lbnQ6UGV9KSx2YWx1ZTpBLk91dGxpbmVkfSx7bGFiZWw6KDAsZS5qc3gpKE8uWix7Y29tcG9uZW50OlRlfSksdmFsdWU6QS5GaWxsZWR9LHtsYWJlbDooMCxlLmpzeCkoTy5aLHtjb21wb25lbnQ6QWV9KSx2YWx1ZTpBLlR3b1RvbmV9XX0pLCgwLGUuanN4KShvZS5aLlNlYXJjaCx7c3R5bGU6e21hcmdpbjoiMCAxMHB4IixmbGV4OjF9LGFsbG93Q2xlYXI6ITAsb25DaGFuZ2U6ZnVuY3Rpb24ocyl7cmV0dXJuIEIocy5jdXJyZW50VGFyZ2V0LnZhbHVlKX0sc2l6ZToibGFyZ2UiLGF1dG9Gb2N1czohMCxzdWZmaXg6KDAsZS5qc3gpKGJlLHt9KX0pXX0pLHhdfSl9LE5lPU9lLFZlPWZ1bmN0aW9uKGEpe3ZhciByPXVlLloudXNlRm9ybSgpLFM9SSgpKHIsMSksaD1TWzBdLG89KDAsYy51c2VTdGF0ZSkoIk0iKSxnPUkoKShvLDIpLHY9Z1swXSxCPWdbMV0sTT0oMCxjLnVzZVN0YXRlKSgpLHg9SSgpKE0sMikscD14WzBdLHM9eFsxXSxuPSgwLGMudXNlU3RhdGUpKCExKSxsPUkoKShuLDIpLHU9bFswXSxtPWxbMV0sYj1hLm1lbnVUcmVlLEM9YS52aXNpYmxlT3B0aW9ucyxMPWEuc3RhdHVzT3B0aW9uczsoMCxjLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtoLnJlc2V0RmllbGRzKCkscyhhLnZhbHVlcy5pY29uKSxoLnNldEZpZWxkc1ZhbHVlKHttZW51SWQ6YS52YWx1ZXMubWVudUlkLG1lbnVOYW1lOmEudmFsdWVzLm1lbnVOYW1lLHBhcmVudElkOmEudmFsdWVzLnBhcmVudElkLG9yZGVyTnVtOmEudmFsdWVzLm9yZGVyTnVtLHBhdGg6YS52YWx1ZXMucGF0aCxjb21wb25lbnQ6YS52YWx1ZXMuY29tcG9uZW50LHF1ZXJ5OmEudmFsdWVzLnF1ZXJ5LGlzRnJhbWU6YS52YWx1ZXMuaXNGcmFtZSxpc0NhY2hlOmEudmFsdWVzLmlzQ2FjaGUsbWVudVR5cGU6YS52YWx1ZXMubWVudVR5cGUsdmlzaWJsZTphLnZhbHVlcy52aXNpYmxlLHN0YXR1czphLnZhbHVlcy5zdGF0dXMscGVybXM6YS52YWx1ZXMucGVybXMsaWNvbjphLnZhbHVlcy5pY29uLGNyZWF0ZUJ5OmEudmFsdWVzLmNyZWF0ZUJ5LGNyZWF0ZVRpbWU6YS52YWx1ZXMuY3JlYXRlVGltZSx1cGRhdGVCeTphLnZhbHVlcy51cGRhdGVCeSx1cGRhdGVUaW1lOmEudmFsdWVzLnVwZGF0ZVRpbWUscmVtYXJrOmEudmFsdWVzLnJlbWFya30pfSxbaCxhXSk7dmFyIEY9KDAsZi51c2VJbnRsKSgpLHplPWZ1bmN0aW9uKCl7aC5zdWJtaXQoKX0sR2U9ZnVuY3Rpb24oKXthLm9uQ2FuY2VsKCl9LCRlPWZ1bmN0aW9uKCl7dmFyIGo9WigpKEUoKSgpLm1hcmsoZnVuY3Rpb24geShEKXtyZXR1cm4gRSgpKCkud3JhcChmdW5jdGlvbihOKXtmb3IoOzspc3dpdGNoKE4ucHJldj1OLm5leHQpe2Nhc2UgMDphLm9uU3VibWl0KEQpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIE4uc3RvcCgpfX0seSl9KSk7cmV0dXJuIGZ1bmN0aW9uKEQpe3JldHVybiBqLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCk7cmV0dXJuKDAsZS5qc3hzKShSLlose3dpZHRoOjY0MCx0aXRsZTpGLmZvcm1hdE1lc3NhZ2Uoe2lkOiJzeXN0ZW0ubWVudS50aXRsZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1N0YxNlx1OEY5MVx1ODNEQ1x1NTM1NVx1Njc0M1x1OTY1MCJ9KSxvcGVuOmEub3Blbixmb3JjZVJlbmRlcjohMCxkZXN0cm95T25DbG9zZTohMCxvbk9rOnplLG9uQ2FuY2VsOkdlLGNoaWxkcmVuOlsoMCxlLmpzeHMpKGVlLkEse2Zvcm06aCxncmlkOiEwLHN1Ym1pdHRlcjohMSxsYXlvdXQ6Imhvcml6b250YWwiLG9uRmluaXNoOiRlLGNoaWxkcmVuOlsoMCxlLmpzeCkoVS5aLHtuYW1lOiJtZW51SWQiLGxhYmVsOkYuZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5tZW51Lm1lbnVfaWQiLGRlZmF1bHRNZXNzYWdlOiJcdTgzRENcdTUzNTVcdTdGMTZcdTUzRjcifSkscGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1ODNEQ1x1NTM1NVx1N0YxNlx1NTNGNyIsZGlzYWJsZWQ6ITAsaGlkZGVuOiEwLHJ1bGVzOlt7cmVxdWlyZWQ6ITEsbWVzc2FnZTooMCxlLmpzeCkoZi5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU4M0RDXHU1MzU1XHU3RjE2XHU1M0Y3XHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU4M0RDXHU1MzU1XHU3RjE2XHU1M0Y3XHVGRjAxIn0pfV19KSwoMCxlLmpzeCkoYWUuWix7bmFtZToicGFyZW50SWQiLGxhYmVsOkYuZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5tZW51LnBhcmVudF9pZCIsZGVmYXVsdE1lc3NhZ2U6Ilx1NEUwQVx1N0VBN1x1ODNEQ1x1NTM1NSJ9KSxwYXJhbXM6e21lbnVUcmVlOmJ9LHJlcXVlc3Q6WigpKEUoKSgpLm1hcmsoZnVuY3Rpb24gaigpe3JldHVybiBFKCkoKS53cmFwKGZ1bmN0aW9uKEQpe2Zvcig7Oylzd2l0Y2goRC5wcmV2PUQubmV4dCl7Y2FzZSAwOnJldHVybiBELmFicnVwdCgicmV0dXJuIixiKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBELnN0b3AoKX19LGopfSkpLHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdTcyMzZcdTgzRENcdTUzNTVcdTdGMTZcdTUzRjciLHJ1bGVzOlt7cmVxdWlyZWQ6ITAsbWVzc2FnZTooMCxlLmpzeCkoZi5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU3MjM2XHU4M0RDXHU1MzU1XHU3RjE2XHU1M0Y3XHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU3MjM2XHU4M0RDXHU1MzU1XHU3RjE2XHU1M0Y3XHVGRjAxIn0pfV0sZmllbGRQcm9wczp7ZGVmYXVsdFZhbHVlOjB9fSksKDAsZS5qc3gpKFQuWi5Hcm91cCx7bmFtZToibWVudVR5cGUiLHZhbHVlRW51bTp7TToiXHU3NkVFXHU1RjU1IixDOiJcdTgzRENcdTUzNTUiLEY6Ilx1NjMwOVx1OTRBRSJ9LGxhYmVsOkYuZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5tZW51Lm1lbnVfdHlwZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1ODNEQ1x1NTM1NVx1N0M3Qlx1NTc4QiJ9KSxwbGFjZWhvbGRlcjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU4M0RDXHU1MzU1XHU3QzdCXHU1NzhCIixydWxlczpbe3JlcXVpcmVkOiExLG1lc3NhZ2U6KDAsZS5qc3gpKGYuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1ODNEQ1x1NTM1NVx1N0M3Qlx1NTc4Qlx1RkYwMSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1ODNEQ1x1NTM1NVx1N0M3Qlx1NTc4Qlx1RkYwMSJ9KX1dLGZpZWxkUHJvcHM6e2RlZmF1bHRWYWx1ZToiTSIsb25DaGFuZ2U6ZnVuY3Rpb24oeSl7Qih5LnRhcmdldC52YWx1ZSl9fX0pLCgwLGUuanN4KSh0ZS5aLHtuYW1lOiJpY29uIixsYWJlbDpGLmZvcm1hdE1lc3NhZ2Uoe2lkOiJzeXN0ZW0ubWVudS5pY29uIixkZWZhdWx0TWVzc2FnZToiXHU4M0RDXHU1MzU1XHU1NkZFXHU2ODA3In0pLHZhbHVlRW51bTp7fSxoaWRkZW46dj09PSJGIixhZGRvbkJlZm9yZTooMCxuZS5JKShwKSxmaWVsZFByb3BzOntvbkNsaWNrOmZ1bmN0aW9uKCl7bSghMCl9fSxwbGFjZWhvbGRlcjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU4M0RDXHU1MzU1XHU1NkZFXHU2ODA3IixydWxlczpbe3JlcXVpcmVkOiExLG1lc3NhZ2U6KDAsZS5qc3gpKGYuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1ODNEQ1x1NTM1NVx1NTZGRVx1NjgwN1x1RkYwMSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1ODNEQ1x1NTM1NVx1NTZGRVx1NjgwN1x1RkYwMSJ9KX1dfSksKDAsZS5qc3gpKFAuWix7bmFtZToibWVudU5hbWUiLGxhYmVsOkYuZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5tZW51Lm1lbnVfbmFtZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1ODNEQ1x1NTM1NVx1NTQwRFx1NzlGMCJ9KSxjb2xQcm9wczp7bWQ6MTIseGw6MTJ9LHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdTgzRENcdTUzNTVcdTU0MERcdTc5RjAiLHJ1bGVzOlt7cmVxdWlyZWQ6ITAsbWVzc2FnZTooMCxlLmpzeCkoZi5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU4M0RDXHU1MzU1XHU1NDBEXHU3OUYwXHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU4M0RDXHU1MzU1XHU1NDBEXHU3OUYwXHVGRjAxIn0pfV19KSwoMCxlLmpzeCkoVS5aLHtuYW1lOiJvcmRlck51bSIsbGFiZWw6Ri5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLm1lbnUub3JkZXJfbnVtIixkZWZhdWx0TWVzc2FnZToiXHU2NjNFXHU3OTNBXHU5ODdBXHU1RThGIn0pLHdpZHRoOiJsZyIsY29sUHJvcHM6e21kOjEyLHhsOjEyfSxwbGFjZWhvbGRlcjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU2NjNFXHU3OTNBXHU5ODdBXHU1RThGIixydWxlczpbe3JlcXVpcmVkOiExLG1lc3NhZ2U6KDAsZS5qc3gpKGYuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NjYzRVx1NzkzQVx1OTg3QVx1NUU4Rlx1RkYwMSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NjYzRVx1NzkzQVx1OTg3QVx1NUU4Rlx1RkYwMSJ9KX1dLGZpZWxkUHJvcHM6e2RlZmF1bHRWYWx1ZToxfX0pLCgwLGUuanN4KShULlouR3JvdXAse25hbWU6ImlzRnJhbWUiLHZhbHVlRW51bTp7MDoiXHU2NjJGIiwxOiJcdTU0MjYifSxpbml0aWFsVmFsdWU6IjEiLGxhYmVsOkYuZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5tZW51LmlzX2ZyYW1lIixkZWZhdWx0TWVzc2FnZToiXHU2NjJGXHU1NDI2XHU0RTNBXHU1OTE2XHU5NEZFIn0pLGNvbFByb3BzOnttZDoxMix4bDoxMn0scGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NjYyRlx1NTQyNlx1NEUzQVx1NTkxNlx1OTRGRSIsaGlkZGVuOnY9PT0iRiIscnVsZXM6W3tyZXF1aXJlZDohMSxtZXNzYWdlOigwLGUuanN4KShmLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTY2MkZcdTU0MjZcdTRFM0FcdTU5MTZcdTk0RkVcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTY2MkZcdTU0MjZcdTRFM0FcdTU5MTZcdTk0RkVcdUZGMDEifSl9XSxmaWVsZFByb3BzOntkZWZhdWx0VmFsdWU6IjEifX0pLCgwLGUuanN4KShQLlose25hbWU6InBhdGgiLGxhYmVsOkYuZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5tZW51LnBhdGgiLGRlZmF1bHRNZXNzYWdlOiJcdThERUZcdTc1MzFcdTU3MzBcdTU3NDAifSksd2lkdGg6ImxnIixjb2xQcm9wczp7bWQ6MTIseGw6MTJ9LHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdThERUZcdTc1MzFcdTU3MzBcdTU3NDAiLGhpZGRlbjp2PT09IkYiLHJ1bGVzOlt7cmVxdWlyZWQ6diE9PSJGIixtZXNzYWdlOigwLGUuanN4KShmLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdThERUZcdTc1MzFcdTU3MzBcdTU3NDBcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdThERUZcdTc1MzFcdTU3MzBcdTU3NDBcdUZGMDEifSl9XX0pLCgwLGUuanN4KShQLlose25hbWU6ImNvbXBvbmVudCIsbGFiZWw6Ri5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLm1lbnUuY29tcG9uZW50IixkZWZhdWx0TWVzc2FnZToiXHU3RUM0XHU0RUY2XHU4REVGXHU1Rjg0In0pLGNvbFByb3BzOnttZDoxMix4bDoxMn0scGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1N0VDNFx1NEVGNlx1OERFRlx1NUY4NCIsaGlkZGVuOnYhPT0iQyIscnVsZXM6W3tyZXF1aXJlZDohMSxtZXNzYWdlOigwLGUuanN4KShmLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTdFQzRcdTRFRjZcdThERUZcdTVGODRcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTdFQzRcdTRFRjZcdThERUZcdTVGODRcdUZGMDEifSl9XX0pLCgwLGUuanN4KShQLlose25hbWU6InF1ZXJ5IixsYWJlbDpGLmZvcm1hdE1lc3NhZ2Uoe2lkOiJzeXN0ZW0ubWVudS5xdWVyeSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OERFRlx1NzUzMVx1NTNDMlx1NjU3MCJ9KSxjb2xQcm9wczp7bWQ6MTIseGw6MTJ9LHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdThERUZcdTc1MzFcdTUzQzJcdTY1NzAiLGhpZGRlbjp2IT09IkMiLHJ1bGVzOlt7cmVxdWlyZWQ6ITEsbWVzc2FnZTooMCxlLmpzeCkoZi5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU4REVGXHU3NTMxXHU1M0MyXHU2NTcwXHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU4REVGXHU3NTMxXHU1M0MyXHU2NTcwXHVGRjAxIn0pfV19KSwoMCxlLmpzeCkoUC5aLHtuYW1lOiJwZXJtcyIsbGFiZWw6Ri5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLm1lbnUucGVybXMiLGRlZmF1bHRNZXNzYWdlOiJcdTY3NDNcdTk2NTBcdTY4MDdcdThCQzYifSksY29sUHJvcHM6e21kOjEyLHhsOjEyfSxwbGFjZWhvbGRlcjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU2NzQzXHU5NjUwXHU2ODA3XHU4QkM2IixoaWRkZW46dj09PSJNIixydWxlczpbe3JlcXVpcmVkOiExLG1lc3NhZ2U6KDAsZS5qc3gpKGYuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1Njc0M1x1OTY1MFx1NjgwN1x1OEJDNlx1RkYwMSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1Njc0M1x1OTY1MFx1NjgwN1x1OEJDNlx1RkYwMSJ9KX1dfSksKDAsZS5qc3gpKFQuWi5Hcm91cCx7bmFtZToiaXNDYWNoZSIsdmFsdWVFbnVtOnswOiJcdTdGMTNcdTVCNTgiLDE6Ilx1NEUwRFx1N0YxM1x1NUI1OCJ9LGxhYmVsOkYuZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5tZW51LmlzX2NhY2hlIixkZWZhdWx0TWVzc2FnZToiXHU2NjJGXHU1NDI2XHU3RjEzXHU1QjU4In0pLGNvbFByb3BzOnttZDoxMix4bDoxMn0scGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NjYyRlx1NTQyNlx1N0YxM1x1NUI1OCIsaGlkZGVuOnYhPT0iQyIscnVsZXM6W3tyZXF1aXJlZDohMSxtZXNzYWdlOigwLGUuanN4KShmLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTY2MkZcdTU0MjZcdTdGMTNcdTVCNThcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTY2MkZcdTU0MjZcdTdGMTNcdTVCNThcdUZGMDEifSl9XSxmaWVsZFByb3BzOntkZWZhdWx0VmFsdWU6MH19KSwoMCxlLmpzeCkoVC5aLkdyb3VwLHtuYW1lOiJ2aXNpYmxlIix2YWx1ZUVudW06QyxsYWJlbDpGLmZvcm1hdE1lc3NhZ2Uoe2lkOiJzeXN0ZW0ubWVudS52aXNpYmxlIixkZWZhdWx0TWVzc2FnZToiXHU2NjNFXHU3OTNBXHU3MkI2XHU2MDAxIn0pLGNvbFByb3BzOnttZDoxMix4bDoxMn0scGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NjYzRVx1NzkzQVx1NzJCNlx1NjAwMSIsaGlkZGVuOnY9PT0iRiIscnVsZXM6W3tyZXF1aXJlZDohMSxtZXNzYWdlOigwLGUuanN4KShmLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTY2M0VcdTc5M0FcdTcyQjZcdTYwMDFcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTY2M0VcdTc5M0FcdTcyQjZcdTYwMDFcdUZGMDEifSl9XSxmaWVsZFByb3BzOntkZWZhdWx0VmFsdWU6IjAifX0pLCgwLGUuanN4KShULlouR3JvdXAse3ZhbHVlRW51bTpMLG5hbWU6InN0YXR1cyIsbGFiZWw6Ri5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLm1lbnUuc3RhdHVzIixkZWZhdWx0TWVzc2FnZToiXHU4M0RDXHU1MzU1XHU3MkI2XHU2MDAxIn0pLGNvbFByb3BzOnttZDoxMix4bDoxMn0scGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1ODNEQ1x1NTM1NVx1NzJCNlx1NjAwMSIsaGlkZGVuOnY9PT0iRiIscnVsZXM6W3tyZXF1aXJlZDohMCxtZXNzYWdlOigwLGUuanN4KShmLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTgzRENcdTUzNTVcdTcyQjZcdTYwMDFcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTgzRENcdTUzNTVcdTcyQjZcdTYwMDFcdUZGMDEifSl9XSxmaWVsZFByb3BzOntkZWZhdWx0VmFsdWU6IjAifX0pXX0pLCgwLGUuanN4KShSLlose3dpZHRoOjgwMCxvcGVuOnUsb25DYW5jZWw6ZnVuY3Rpb24oKXttKCExKX0sZm9vdGVyOm51bGwsY2hpbGRyZW46KDAsZS5qc3gpKE5lLHtvblNlbGVjdDpmdW5jdGlvbih5KXtoLnNldEZpZWxkc1ZhbHVlKHtpY29uOnl9KSxzKHkpLG0oITEpfX0pfSldfSl9LFVlPVZlfX1dKTsKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNTM4NS5kZDZkYWRlNS5hc3luYy5qcyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNTM4NS5kZDZkYWRlNS5hc3luYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYmZjMjExCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy81Mzg1LmRkNmRhZGU1LmFzeW5jLmpzCkBAIC0wLDAgKzEsMyBAQAorInVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvPXNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm98fFtdKS5wdXNoKFtbNTM4NV0sezk1MjpmdW5jdGlvbihQdCxYbix2KXt2YXIgTD12KDk3MjY5KTtYbi5aUD1MLkF9LDY1Mzg1OmZ1bmN0aW9uKFB0LFhuLHYpe3YuZChYbix7WjpmdW5jdGlvbigpe3JldHVybiB2c319KTt2YXIgTD12KDc0MTY1KSxzZT12KDE1ODYxKSxabj12KDcxMDAyKSxmZT12KDk3Njg1KSxwPXYoNDk0MiksbW49dig3NDkwMiksbD12KDE0MTMpLHE9dig5MSksZW49dig5MDgxNCksZ249digxMjc5NSksZG49digyMTUzMiksSW49dig5MjM5OCksVm49digyNTM3OCksR249dig5Mzk2NyksWmU9di5uKEduKSxxZT12KDIxNzcwKSxwbj12KDk4NDIzKSxkPXYoNjcyOTQpLHVuPXYoNjQ4NDcpLEJuPWZ1bmN0aW9uKGUpe3ZhciByPWUuY29tcG9uZW50Q2xzLHQ9ZS5hbnRDbHM7cmV0dXJuKDAscC5aKSh7fSwiIi5jb25jYXQociwiLWFjdGlvbnMiKSwoMCxwLlopKCgwLHAuWikoe21hcmdpbkJsb2NrOjAsbWFyZ2luSW5saW5lOjAscGFkZGluZ0Jsb2NrOjAscGFkZGluZ0lubGluZTowLGxpc3RTdHlsZToibm9uZSIsZGlzcGxheToiZmxleCIsZ2FwOmUubWFyZ2luWFMsYmFja2dyb3VuZDplLmNvbG9yQmdDb250YWluZXIsYm9yZGVyQmxvY2tTdGFydDoiIi5jb25jYXQoZS5saW5lV2lkdGgsInB4ICIpLmNvbmNhdChlLmxpbmVUeXBlLCIgIikuY29uY2F0KGUuY29sb3JTcGxpdCksbWluSGVpZ2h0OjQyfSwiJiA+ICoiLHthbGlnbkl0ZW1zOiJjZW50ZXIiLGp1c3RpZnlDb250ZW50OiJjZW50ZXIiLGZsZXg6MSxkaXNwbGF5OiJmbGV4IixjdXJzb3I6InBvaW50ZXIiLGNvbG9yOmUuY29sb3JUZXh0U2Vjb25kYXJ5LHRyYW5zaXRpb246ImNvbG9yIDAuM3MiLCImOmhvdmVyIjp7Y29sb3I6ZS5jb2xvclByaW1hcnlIb3Zlcn19KSwiJiA+IGxpID4gZGl2Iix7ZmxleDoxLHdpZHRoOiIxMDAlIixtYXJnaW5CbG9jazplLm1hcmdpblNNLG1hcmdpbklubGluZTowLGNvbG9yOmUuY29sb3JUZXh0U2Vjb25kYXJ5LHRleHRBbGlnbjoiY2VudGVyIixhOntjb2xvcjplLmNvbG9yVGV4dFNlY29uZGFyeSx0cmFuc2l0aW9uOiJjb2xvciAwLjNzIiwiJjpob3ZlciI6e2NvbG9yOmUuY29sb3JQcmltYXJ5SG92ZXJ9fSxkaXY6KDAscC5aKSgoMCxwLlopKHtwb3NpdGlvbjoicmVsYXRpdmUiLGRpc3BsYXk6ImJsb2NrIixtaW5XaWR0aDozMixmb250U2l6ZTplLmZvbnRTaXplLGxpbmVIZWlnaHQ6ZS5saW5lSGVpZ2h0LGN1cnNvcjoicG9pbnRlciIsIiY6aG92ZXIiOntjb2xvcjplLmNvbG9yUHJpbWFyeUhvdmVyLHRyYW5zaXRpb246ImNvbG9yIDAuM3MifX0sImE6bm90KCIuY29uY2F0KHQsYC1idG4pLAorICAgICAgICAgICAgPiAuYW50aWNvbmApLHtkaXNwbGF5OiJpbmxpbmUtYmxvY2siLHdpZHRoOiIxMDAlIixjb2xvcjplLmNvbG9yVGV4dFNlY29uZGFyeSxsaW5lSGVpZ2h0OiIyMnB4Iix0cmFuc2l0aW9uOiJjb2xvciAwLjNzIiwiJjpob3ZlciI6e2NvbG9yOmUuY29sb3JQcmltYXJ5SG92ZXJ9fSksIi5hbnRpY29uIix7Zm9udFNpemU6ZS5jYXJkQWN0aW9uSWNvblNpemUsbGluZUhlaWdodDoiMjJweCJ9KSwiJjpub3QoOmxhc3QtY2hpbGQpIjp7Ym9yZGVySW5saW5lRW5kOiIiLmNvbmNhdChlLmxpbmVXaWR0aCwicHggIikuY29uY2F0KGUubGluZVR5cGUsIiAiKS5jb25jYXQoZS5jb2xvclNwbGl0KX19KSl9O2Z1bmN0aW9uIEFuKG4pe3JldHVybigwLHVuLlhqKSgiUHJvQ2FyZEFjdGlvbnMiLGZ1bmN0aW9uKGUpe3ZhciByPSgwLGwuWikoKDAsbC5aKSh7fSxlKSx7fSx7Y29tcG9uZW50Q2xzOiIuIi5jb25jYXQobiksY2FyZEFjdGlvbkljb25TaXplOjE2fSk7cmV0dXJuW0JuKHIpXX0pfXZhciBzPXYoODU4OTMpLEtlPWZ1bmN0aW9uKGUpe3ZhciByPWUuYWN0aW9ucyx0PWUucHJlZml4Q2xzLG89QW4odCksdT1vLndyYXBTU1IsaT1vLmhhc2hJZDtyZXR1cm4gQXJyYXkuaXNBcnJheShyKSYmciE9PW51bGwmJnIhPT12b2lkIDAmJnIubGVuZ3RoP3UoKDAscy5qc3gpKCJ1bCIse2NsYXNzTmFtZTpaZSgpKCIiLmNvbmNhdCh0LCItYWN0aW9ucyIpLGkpLGNoaWxkcmVuOnIubWFwKGZ1bmN0aW9uKGMsZyl7cmV0dXJuKDAscy5qc3gpKCJsaSIse3N0eWxlOnt3aWR0aDoiIi5jb25jYXQoMTAwL3IubGVuZ3RoLCIlIikscGFkZGluZzowLG1hcmdpbjowfSxjbGFzc05hbWU6WmUoKSgiIi5jb25jYXQodCwiLWFjdGlvbnMtaXRlbSIpLGkpLGNoaWxkcmVuOmN9LCJhY3Rpb24tIi5jb25jYXQoZykpfSl9KSk6dSgoMCxzLmpzeCkoInVsIix7Y2xhc3NOYW1lOlplKCkoIiIuY29uY2F0KHQsIi1hY3Rpb25zIiksaSksY2hpbGRyZW46cn0pKX0seWU9S2UsaG49dig3MTIzMCksUWU9digxNTc0NiksRm49digxMTU2OCksdWU9bmV3IEZuLkU0KCJjYXJkLWxvYWRpbmciLHsiMCUiOntiYWNrZ3JvdW5kUG9zaXRpb246IjAgNTAlIn0sIjUwJSI6e2JhY2tncm91bmRQb3NpdGlvbjoiMTAwJSA1MCUifSwiMTAwJSI6e2JhY2tncm91bmRQb3NpdGlvbjoiMCA1MCUifX0pLHplPWZ1bmN0aW9uKGUpe3JldHVybigwLHAuWikoe30sZS5jb21wb25lbnRDbHMsKDAscC5aKSgoMCxwLlopKHsiJi1sb2FkaW5nIjp7b3ZlcmZsb3c6ImhpZGRlbiJ9LCImLWxvYWRpbmcgJi1ib2R5Ijp7dXNlclNlbGVjdDoibm9uZSJ9fSwiIi5jb25jYXQoZS5jb21wb25lbnRDbHMsIi1sb2FkaW5nLWNvbnRlbnQiKSx7d2lkdGg6IjEwMCUiLHA6e21hcmdpbkJsb2NrOjAsbWFyZ2luSW5saW5lOjB9fSksIiIuY29uY2F0KGUuY29tcG9uZW50Q2xzLCItbG9hZGluZy1ibG9jayIpLHtoZWlnaHQ6IjE0cHgiLG1hcmdpbkJsb2NrOiI0cHgiLGJhY2tncm91bmQ6ImxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSg1NCwgNjEsIDY0LCAwLjIpLCByZ2JhKDU0LCA2MSwgNjQsIDAuNCksIHJnYmEoNTQsIDYxLCA2NCwgMC4yKSkiLGJhY2tncm91bmRTaXplOiI2MDAlIDYwMCUiLGJvcmRlclJhZGl1czplLmJvcmRlclJhZGl1cyxhbmltYXRpb25OYW1lOnVlLGFuaW1hdGlvbkR1cmF0aW9uOiIxLjRzIixhbmltYXRpb25UaW1pbmdGdW5jdGlvbjoiZWFzZSIsYW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6ImluZmluaXRlIn0pKX07ZnVuY3Rpb24ga2Uobil7cmV0dXJuKDAsdW4uWGopKCJQcm9DYXJkTG9hZGluZyIsZnVuY3Rpb24oZSl7dmFyIHI9KDAsbC5aKSgoMCxsLlopKHt9LGUpLHt9LHtjb21wb25lbnRDbHM6Ii4iLmNvbmNhdChuKX0pO3JldHVyblt6ZShyKV19KX12YXIgUmU9ZnVuY3Rpb24oZSl7dmFyIHI9ZS5zdHlsZSx0PWUucHJlZml4LG89a2UodHx8ImFudC1wcm8tY2FyZCIpLHU9by53cmFwU1NSO3JldHVybiB1KCgwLHMuanN4cykoImRpdiIse2NsYXNzTmFtZToiIi5jb25jYXQodCwiLWxvYWRpbmctY29udGVudCIpLHN0eWxlOnIsY2hpbGRyZW46WygwLHMuanN4KShobi5aLHtndXR0ZXI6OCxjaGlsZHJlbjooMCxzLmpzeCkoUWUuWix7c3BhbjoyMixjaGlsZHJlbjooMCxzLmpzeCkoImRpdiIse2NsYXNzTmFtZToiIi5jb25jYXQodCwiLWxvYWRpbmctYmxvY2siKX0pfSl9KSwoMCxzLmpzeHMpKGhuLlose2d1dHRlcjo4LGNoaWxkcmVuOlsoMCxzLmpzeCkoUWUuWix7c3Bhbjo4LGNoaWxkcmVuOigwLHMuanN4KSgiZGl2Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdCh0LCItbG9hZGluZy1ibG9jayIpfSl9KSwoMCxzLmpzeCkoUWUuWix7c3BhbjoxNSxjaGlsZHJlbjooMCxzLmpzeCkoImRpdiIse2NsYXNzTmFtZToiIi5jb25jYXQodCwiLWxvYWRpbmctYmxvY2siKX0pfSldfSksKDAscy5qc3hzKShobi5aLHtndXR0ZXI6OCxjaGlsZHJlbjpbKDAscy5qc3gpKFFlLlose3NwYW46NixjaGlsZHJlbjooMCxzLmpzeCkoImRpdiIse2NsYXNzTmFtZToiIi5jb25jYXQodCwiLWxvYWRpbmctYmxvY2siKX0pfSksKDAscy5qc3gpKFFlLlose3NwYW46MTgsY2hpbGRyZW46KDAscy5qc3gpKCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KHQsIi1sb2FkaW5nLWJsb2NrIil9KX0pXX0pLCgwLHMuanN4cykoaG4uWix7Z3V0dGVyOjgsY2hpbGRyZW46WygwLHMuanN4KShRZS5aLHtzcGFuOjEzLGNoaWxkcmVuOigwLHMuanN4KSgiZGl2Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdCh0LCItbG9hZGluZy1ibG9jayIpfSl9KSwoMCxzLmpzeCkoUWUuWix7c3Bhbjo5LGNoaWxkcmVuOigwLHMuanN4KSgiZGl2Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdCh0LCItbG9hZGluZy1ibG9jayIpfSl9KV19KSwoMCxzLmpzeHMpKGhuLlose2d1dHRlcjo4LGNoaWxkcmVuOlsoMCxzLmpzeCkoUWUuWix7c3Bhbjo0LGNoaWxkcmVuOigwLHMuanN4KSgiZGl2Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdCh0LCItbG9hZGluZy1ibG9jayIpfSl9KSwoMCxzLmpzeCkoUWUuWix7c3BhbjozLGNoaWxkcmVuOigwLHMuanN4KSgiZGl2Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdCh0LCItbG9hZGluZy1ibG9jayIpfSl9KSwoMCxzLmpzeCkoUWUuWix7c3BhbjoxNixjaGlsZHJlbjooMCxzLmpzeCkoImRpdiIse2NsYXNzTmFtZToiIi5jb25jYXQodCwiLWxvYWRpbmctYmxvY2siKX0pfSldfSldfSkpfSx4ZT1SZSxUbj12KDY3MTU5KSxKbj12KDUwMzQ0KSx3bj12KDgwMzM0KSxxbj12KDM0MTU1KSxrbj1bInRhYiIsImNoaWxkcmVuIl0sc3Q9WyJrZXkiLCJ0YWIiLCJ0YWJLZXkiLCJkaXNhYmxlZCIsImRlc3Ryb3lJbmFjdGl2ZVRhYlBhbmUiLCJjaGlsZHJlbiIsImNsYXNzTmFtZSIsInN0eWxlIiwiY2FyZFByb3BzIl07ZnVuY3Rpb24gTShuKXtyZXR1cm4gbi5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGV9KX1mdW5jdGlvbiBwZShuLGUscil7aWYobilyZXR1cm4gbi5tYXAoZnVuY3Rpb24obyl7cmV0dXJuKDAsbC5aKSgoMCxsLlopKHt9LG8pLHt9LHtjaGlsZHJlbjooMCxzLmpzeCkoRW4sKDAsbC5aKSgoMCxsLlopKHt9LHI9PW51bGw/dm9pZCAwOnIuY2FyZFByb3BzKSx7fSx7Y2hpbGRyZW46by5jaGlsZHJlbn0pKX0pfSk7KDAsd24uRVQpKCFyLCJUYWJzLlRhYlBhbmUgaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBgaXRlbXNgIGRpcmVjdGx5LiIpO3ZhciB0PSgwLEpuLlopKGUpLm1hcChmdW5jdGlvbihvKXtpZihkLmlzVmFsaWRFbGVtZW50KG8pKXt2YXIgdT1vLmtleSxpPW8ucHJvcHMsYz1pfHx7fSxnPWMudGFiLG09Yy5jaGlsZHJlbixTPSgwLHEuWikoYyxrbiksWj0oMCxsLlopKCgwLGwuWikoe2tleTpTdHJpbmcodSl9LFMpLHt9LHtjaGlsZHJlbjooMCxzLmpzeCkoRW4sKDAsbC5aKSgoMCxsLlopKHt9LHI9PW51bGw/dm9pZCAwOnIuY2FyZFByb3BzKSx7fSx7Y2hpbGRyZW46bX0pKSxsYWJlbDpnfSk7cmV0dXJuIFp9cmV0dXJuIG51bGx9KTtyZXR1cm4gTSh0KX12YXIgVmU9ZnVuY3Rpb24oZSl7dmFyIHI9KDAsZC51c2VDb250ZXh0KShkbi5aUC5Db25maWdDb250ZXh0KSx0PXIuZ2V0UHJlZml4Q2xzO2lmKFRuLlouc3RhcnRzV2l0aCgiNSIpKXJldHVybigwLHMuanN4KShzLkZyYWdtZW50LHt9KTt2YXIgbz1lLmtleSx1PWUudGFiLGk9ZS50YWJLZXksYz1lLmRpc2FibGVkLGc9ZS5kZXN0cm95SW5hY3RpdmVUYWJQYW5lLG09ZS5jaGlsZHJlbixTPWUuY2xhc3NOYW1lLFo9ZS5zdHlsZSx5PWUuY2FyZFByb3BzLHg9KDAscS5aKShlLHN0KSxoPXQoInByby1jYXJkLXRhYnBhbmUiKSxJPVplKCkoaCxTKTtyZXR1cm4oMCxzLmpzeCkoSW4uWi5UYWJQYW5lLCgwLGwuWikoKDAsbC5aKSh7dGFiS2V5OmksdGFiOnUsY2xhc3NOYW1lOkksc3R5bGU6WixkaXNhYmxlZDpjLGRlc3Ryb3lJbmFjdGl2ZVRhYlBhbmU6Z30seCkse30se2NoaWxkcmVuOigwLHMuanN4KShFbiwoMCxsLlopKCgwLGwuWikoe30seSkse30se2NoaWxkcmVuOm19KSl9KSxvKX0scm49VmUsbm49ZnVuY3Rpb24oZSl7cmV0dXJue2JhY2tncm91bmRDb2xvcjplLmNvbnRyb2xJdGVtQmdBY3RpdmUsYm9yZGVyQ29sb3I6ZS5jb250cm9sT3V0bGluZX19LFllPWZ1bmN0aW9uKGUpe3ZhciByPWUuY29tcG9uZW50Q2xzO3JldHVybigwLHAuWikoKDAscC5aKSgoMCxwLlopKHt9LHIsKDAsbC5aKSgoMCxsLlopKHtwb3NpdGlvbjoicmVsYXRpdmUiLGRpc3BsYXk6ImZsZXgiLGZsZXhEaXJlY3Rpb246ImNvbHVtbiIsYm94U2l6aW5nOiJib3JkZXItYm94Iix3aWR0aDoiMTAwJSIsbWFyZ2luQmxvY2s6MCxtYXJnaW5JbmxpbmU6MCxwYWRkaW5nQmxvY2s6MCxwYWRkaW5nSW5saW5lOjAsYmFja2dyb3VuZENvbG9yOmUuY29sb3JCZ0NvbnRhaW5lcixib3JkZXJSYWRpdXM6ZS5ib3JkZXJSYWRpdXMsdHJhbnNpdGlvbjoiYWxsIDAuM3MifSx1bi5XZj09PW51bGx8fHVuLldmPT09dm9pZCAwP3ZvaWQgMDooMCx1bi5XZikoZSkpLHt9LCgwLHAuWikoKDAscC5aKSgoMCxwLlopKCgwLHAuWikoKDAscC5aKSgoMCxwLlopKCgwLHAuWikoKDAscC5aKSgoMCxwLlopKCgwLHAuWikoeyImLWJveC1zaGFkb3ciOntib3hTaGFkb3c6IjAgMXB4IDJweCAtMnB4ICMwMDAwMDAyOSwgMCAzcHggNnB4ICMwMDAwMDAxZiwgMCA1cHggMTJweCA0cHggIzAwMDAwMDE3Iixib3JkZXJDb2xvcjoidHJhbnNwYXJlbnQifSwiJi1jb2wiOnt3aWR0aDoiMTAwJSJ9LCImLWJvcmRlciI6e2JvcmRlcjoiIi5jb25jYXQoZS5saW5lV2lkdGgsInB4ICIpLmNvbmNhdChlLmxpbmVUeXBlLCIgIikuY29uY2F0KGUuY29sb3JTcGxpdCl9LCImLWhvdmVyYWJsZSI6KDAscC5aKSh7Y3Vyc29yOiJwb2ludGVyIix0cmFuc2l0aW9uOiJib3gtc2hhZG93IDAuM3MsIGJvcmRlci1jb2xvciAwLjNzIiwiJjpob3ZlciI6e2JvcmRlckNvbG9yOiJ0cmFuc3BhcmVudCIsYm94U2hhZG93OiIwIDFweCAycHggLTJweCAjMDAwMDAwMjksIDAgM3B4IDZweCAjMDAwMDAwMWYsIDAgNXB4IDEycHggNHB4ICMwMDAwMDAxNyJ9fSwiJiIuY29uY2F0KHIsIi1jaGVja2VkOmhvdmVyIikse2JvcmRlckNvbG9yOmUuY29udHJvbE91dGxpbmV9KSwiJi1jaGVja2VkIjooMCxsLlopKCgwLGwuWikoe30sbm4oZSkpLHt9LHsiJjo6YWZ0ZXIiOnt2aXNpYmlsaXR5OiJ2aXNpYmxlIixwb3NpdGlvbjoiYWJzb2x1dGUiLGluc2V0QmxvY2tTdGFydDoyLGluc2V0SW5saW5lRW5kOjIsb3BhY2l0eToxLHdpZHRoOjAsaGVpZ2h0OjAsYm9yZGVyOiI2cHggc29saWQgIi5jb25jYXQoZS5jb2xvclByaW1hcnkpLGJvcmRlckJsb2NrRW5kOiI2cHggc29saWQgdHJhbnNwYXJlbnQiLGJvcmRlcklubGluZVN0YXJ0OiI2cHggc29saWQgdHJhbnNwYXJlbnQiLGJvcmRlclN0YXJ0RW5kUmFkaXVzOjIsY29udGVudDonIiInfX0pLCImOmZvY3VzIjooMCxsLlopKHt9LG5uKGUpKSwiJiYtZ2hvc3QiOigwLHAuWikoe2JhY2tncm91bmRDb2xvcjoidHJhbnNwYXJlbnQifSwiPiAiLmNvbmNhdChyKSx7IiYtaGVhZGVyIjp7cGFkZGluZ0lubGluZUVuZDowLHBhZGRpbmdCbG9ja0VuZDplLnBhZGRpbmcscGFkZGluZ0lubGluZVN0YXJ0OjB9LCImLWJvZHkiOntwYWRkaW5nQmxvY2s6MCxwYWRkaW5nSW5saW5lOjAsYmFja2dyb3VuZENvbG9yOiJ0cmFuc3BhcmVudCJ9fSksIiYmLXNwbGl0ID4gJi1ib2R5Ijp7cGFkZGluZ0Jsb2NrOjAscGFkZGluZ0lubGluZTowfSwiJiYtY29udGFpbi1jYXJkID4gJi1ib2R5Ijp7ZGlzcGxheToiZmxleCJ9fSwiIi5jb25jYXQociwiLWJvZHktZGlyZWN0aW9uLWNvbHVtbiIpLHtmbGV4RGlyZWN0aW9uOiJjb2x1bW4ifSksIiIuY29uY2F0KHIsIi1ib2R5LXdyYXAiKSx7ZmxleFdyYXA6IndyYXAifSksIiYmLWNvbGxhcHNlIiwoMCxwLlopKHt9LCI+ICIuY29uY2F0KHIpLHsiJi1oZWFkZXIiOntwYWRkaW5nQmxvY2tFbmQ6ZS5wYWRkaW5nLGJvcmRlckJsb2NrRW5kOjB9LCImLWJvZHkiOntkaXNwbGF5OiJub25lIn19KSksIiIuY29uY2F0KHIsIi1oZWFkZXIiKSx7ZGlzcGxheToiZmxleCIsYWxpZ25JdGVtczoiY2VudGVyIixqdXN0aWZ5Q29udGVudDoic3BhY2UtYmV0d2VlbiIscGFkZGluZ0lubGluZTplLnBhZGRpbmdMRyxwYWRkaW5nQmxvY2s6ZS5wYWRkaW5nLHBhZGRpbmdCbG9ja0VuZDowLCImLWJvcmRlciI6eyImIjp7cGFkZGluZ0Jsb2NrRW5kOmUucGFkZGluZ30sYm9yZGVyQmxvY2tFbmQ6IiIuY29uY2F0KGUubGluZVdpZHRoLCJweCAiKS5jb25jYXQoZS5saW5lVHlwZSwiICIpLmNvbmNhdChlLmNvbG9yU3BsaXQpfSwiJi1jb2xsYXBzaWJsZSI6e2N1cnNvcjoicG9pbnRlciJ9fSksIiIuY29uY2F0KHIsIi10aXRsZSIpLHtjb2xvcjplLmNvbG9yVGV4dCxmb250V2VpZ2h0OjUwMCxmb250U2l6ZTplLmZvbnRTaXplTEcsbGluZUhlaWdodDplLmxpbmVIZWlnaHR9KSwiIi5jb25jYXQociwiLWV4dHJhIikse2NvbG9yOmUuY29sb3JUZXh0fSksIiIuY29uY2F0KHIsIi10eXBlLWlubmVyIiksKDAscC5aKSh7fSwiIi5jb25jYXQociwiLWhlYWRlciIpLHtiYWNrZ3JvdW5kQ29sb3I6ZS5jb2xvckZpbGxBbHRlcn0pKSwiIi5jb25jYXQociwiLWNvbGxhcHNpYmxlLWljb24iKSx7bWFyZ2luSW5saW5lRW5kOmUubWFyZ2luWFMsY29sb3I6ZS5jb2xvckljb25Ib3ZlciwiOmhvdmVyIjp7Y29sb3I6ZS5jb2xvclByaW1hcnlIb3Zlcn0sIiYgc3ZnIjp7dHJhbnNpdGlvbjoidHJhbnNmb3JtICIuY29uY2F0KGUubW90aW9uRHVyYXRpb25NaWQpfX0pLCIiLmNvbmNhdChyLCItYm9keSIpLHtkaXNwbGF5OiJibG9jayIsYm94U2l6aW5nOiJib3JkZXItYm94IixoZWlnaHQ6IjEwMCUiLHBhZGRpbmdJbmxpbmU6ZS5wYWRkaW5nTEcscGFkZGluZ0Jsb2NrOmUucGFkZGluZywiJi1jZW50ZXIiOntkaXNwbGF5OiJmbGV4IixhbGlnbkl0ZW1zOiJjZW50ZXIiLGp1c3RpZnlDb250ZW50OiJjZW50ZXIifX0pLCImJi1zaXplLXNtYWxsIiwoMCxwLlopKCgwLHAuWikoe30scix7IiYtaGVhZGVyIjp7cGFkZGluZ0lubGluZTplLnBhZGRpbmdTTSxwYWRkaW5nQmxvY2s6ZS5wYWRkaW5nWFMscGFkZGluZ0Jsb2NrRW5kOjAsIiYtYm9yZGVyIjp7cGFkZGluZ0Jsb2NrRW5kOmUucGFkZGluZ1hTfX0sIiYtdGl0bGUiOntmb250U2l6ZTplLmZvbnRTaXplfSwiJi1ib2R5Ijp7cGFkZGluZ0lubGluZTplLnBhZGRpbmdTTSxwYWRkaW5nQmxvY2s6ZS5wYWRkaW5nU019fSksIiIuY29uY2F0KHIsIi1oZWFkZXIiKS5jb25jYXQociwiLWhlYWRlci1jb2xsYXBzaWJsZSIpLHtwYWRkaW5nQmxvY2s6ZS5wYWRkaW5nWFN9KSkpKSwiIi5jb25jYXQociwiLWNvbCIpLCgwLHAuWikoKDAscC5aKSh7fSwiJiIuY29uY2F0KHIsIi1zcGxpdC12ZXJ0aWNhbCIpLHtib3JkZXJJbmxpbmVFbmQ6IiIuY29uY2F0KGUubGluZVdpZHRoLCJweCAiKS5jb25jYXQoZS5saW5lVHlwZSwiICIpLmNvbmNhdChlLmNvbG9yU3BsaXQpfSksIiYiLmNvbmNhdChyLCItc3BsaXQtaG9yaXpvbnRhbCIpLHtib3JkZXJCbG9ja0VuZDoiIi5jb25jYXQoZS5saW5lV2lkdGgsInB4ICIpLmNvbmNhdChlLmxpbmVUeXBlLCIgIikuY29uY2F0KGUuY29sb3JTcGxpdCl9KSksIiIuY29uY2F0KHIsIi10YWJzIiksKDAscC5aKSgoMCxwLlopKCgwLHAuWikoKDAscC5aKSgoMCxwLlopKCgwLHAuWikoe30sIiIuY29uY2F0KGUuYW50Q2xzLCItdGFicy10b3AgPiAiKS5jb25jYXQoZS5hbnRDbHMsIi10YWJzLW5hdiIpLCgwLHAuWikoe21hcmdpbkJsb2NrRW5kOjB9LCIiLmNvbmNhdChlLmFudENscywiLXRhYnMtbmF2LWxpc3QiKSx7bWFyZ2luQmxvY2tTdGFydDplLm1hcmdpblhTLHBhZGRpbmdJbmxpbmVTdGFydDplLnBhZGRpbmd9KSksIiIuY29uY2F0KGUuYW50Q2xzLCItdGFicy1ib3R0b20gPiAiKS5jb25jYXQoZS5hbnRDbHMsIi10YWJzLW5hdiIpLCgwLHAuWikoe21hcmdpbkJsb2NrRW5kOjB9LCIiLmNvbmNhdChlLmFudENscywiLXRhYnMtbmF2LWxpc3QiKSx7cGFkZGluZ0lubGluZVN0YXJ0OmUucGFkZGluZ30pKSwiIi5jb25jYXQoZS5hbnRDbHMsIi10YWJzLWxlZnQiKSwoMCxwLlopKHt9LCIiLmNvbmNhdChlLmFudENscywiLXRhYnMtY29udGVudC1ob2xkZXIiKSwoMCxwLlopKHt9LCIiLmNvbmNhdChlLmFudENscywiLXRhYnMtY29udGVudCIpLCgwLHAuWikoe30sIiIuY29uY2F0KGUuYW50Q2xzLCItdGFicy10YWJwYW5lIikse3BhZGRpbmdJbmxpbmVTdGFydDowfSkpKSksIiIuY29uY2F0KGUuYW50Q2xzLCItdGFicy1sZWZ0ID4gIikuY29uY2F0KGUuYW50Q2xzLCItdGFicy1uYXYiKSwoMCxwLlopKHttYXJnaW5JbmxpbmVFbmQ6MH0sIiIuY29uY2F0KGUuYW50Q2xzLCItdGFicy1uYXYtbGlzdCIpLHtwYWRkaW5nQmxvY2tTdGFydDplLnBhZGRpbmd9KSksIiIuY29uY2F0KGUuYW50Q2xzLCItdGFicy1yaWdodCIpLCgwLHAuWikoe30sIiIuY29uY2F0KGUuYW50Q2xzLCItdGFicy1jb250ZW50LWhvbGRlciIpLCgwLHAuWikoe30sIiIuY29uY2F0KGUuYW50Q2xzLCItdGFicy1jb250ZW50IiksKDAscC5aKSh7fSwiIi5jb25jYXQoZS5hbnRDbHMsIi10YWJzLXRhYnBhbmUiKSx7cGFkZGluZ0lubGluZVN0YXJ0OjB9KSkpKSwiIi5jb25jYXQoZS5hbnRDbHMsIi10YWJzLXJpZ2h0ID4gIikuY29uY2F0KGUuYW50Q2xzLCItdGFicy1uYXYiKSwoMCxwLlopKHt9LCIiLmNvbmNhdChlLmFudENscywiLXRhYnMtbmF2LWxpc3QiKSx7cGFkZGluZ0Jsb2NrU3RhcnQ6ZS5wYWRkaW5nfSkpKX0sdm49MjQseW49ZnVuY3Rpb24oZSxyKXt2YXIgdD1yLmNvbXBvbmVudENscztyZXR1cm4gZT09PTA/KDAscC5aKSh7fSwiIi5jb25jYXQodCwiLWNvbC0wIikse2Rpc3BsYXk6Im5vbmUifSk6KDAscC5aKSh7fSwiIi5jb25jYXQodCwiLWNvbC0iKS5jb25jYXQoZSkse2ZsZXhTaHJpbms6MCx3aWR0aDoiIi5jb25jYXQoZS92bioxMDAsIiUiKX0pfSxMbj1mdW5jdGlvbihlKXtyZXR1cm4gQXJyYXkodm4rMSkuZmlsbCgxKS5tYXAoZnVuY3Rpb24ocix0KXtyZXR1cm4geW4odCxlKX0pfTtmdW5jdGlvbiBhbihuKXtyZXR1cm4oMCx1bi5YaikoIlByb0NhcmQiLGZ1bmN0aW9uKGUpe3ZhciByPSgwLGwuWikoKDAsbC5aKSh7fSxlKSx7fSx7Y29tcG9uZW50Q2xzOiIuIi5jb25jYXQobil9KTtyZXR1cm5bWWUociksTG4ocildfSl9dmFyIFNuPVsiY2xhc3NOYW1lIiwic3R5bGUiLCJib2R5U3R5bGUiLCJoZWFkU3R5bGUiLCJ0aXRsZSIsInN1YlRpdGxlIiwiZXh0cmEiLCJ3cmFwIiwibGF5b3V0IiwibG9hZGluZyIsImd1dHRlciIsInRvb2x0aXAiLCJzcGxpdCIsImhlYWRlckJvcmRlcmVkIiwiYm9yZGVyZWQiLCJib3hTaGFkb3ciLCJjaGlsZHJlbiIsInNpemUiLCJhY3Rpb25zIiwiZ2hvc3QiLCJob3ZlcmFibGUiLCJkaXJlY3Rpb24iLCJjb2xsYXBzZWQiLCJjb2xsYXBzaWJsZSIsImNvbGxhcHNpYmxlSWNvblJlbmRlciIsImNvbFN0eWxlIiwiZGVmYXVsdENvbGxhcHNlZCIsIm9uQ29sbGFwc2UiLCJjaGVja2VkIiwib25DaGVja2VkIiwidGFicyIsInR5cGUiXSxNbj1kLmZvcndhcmRSZWYoZnVuY3Rpb24obixlKXt2YXIgcix0PW4uY2xhc3NOYW1lLG89bi5zdHlsZSx1PW4uYm9keVN0eWxlLGk9bi5oZWFkU3R5bGUsYz1uLnRpdGxlLGc9bi5zdWJUaXRsZSxtPW4uZXh0cmEsUz1uLndyYXAsWj1TPT09dm9pZCAwPyExOlMseT1uLmxheW91dCx4PW4ubG9hZGluZyxoPW4uZ3V0dGVyLEk9aD09PXZvaWQgMD8wOmgsQz1uLnRvb2x0aXAsVD1uLnNwbGl0LFI9bi5oZWFkZXJCb3JkZXJlZCxZPVI9PT12b2lkIDA/ITE6UixHPW4uYm9yZGVyZWQsaz1HPT09dm9pZCAwPyExOkcsaWU9bi5ib3hTaGFkb3csdz1pZT09PXZvaWQgMD8hMTppZSx6PW4uY2hpbGRyZW4sQj1uLnNpemUsRT1uLmFjdGlvbnMsUD1uLmdob3N0LCQ9UD09PXZvaWQgMD8hMTpQLEo9bi5ob3ZlcmFibGUsRj1KPT09dm9pZCAwPyExOkosYj1uLmRpcmVjdGlvbixOPW4uY29sbGFwc2VkLEs9bi5jb2xsYXBzaWJsZSxYPUs9PT12b2lkIDA/ITE6SyxfPW4uY29sbGFwc2libGVJY29uUmVuZGVyLE89bi5jb2xTdHlsZSxXPW4uZGVmYXVsdENvbGxhcHNlZCxuZT1XPT09dm9pZCAwPyExOlcsZGU9bi5vbkNvbGxhcHNlLGNlPW4uY2hlY2tlZCxVPW4ub25DaGVja2VkLGFlPW4udGFicyxWPW4udHlwZSxyZT0oMCxxLlopKG4sU24pLFNlPSgwLGQudXNlQ29udGV4dCkoZG4uWlAuQ29uZmlnQ29udGV4dCksRmU9U2UuZ2V0UHJlZml4Q2xzLERlPSgwLFZuLlopKCl8fHtsZzohMCxtZDohMCxzbTohMCx4bDohMSx4czohMSx4eGw6ITF9LHRuPSgwLHFlLlopKG5lLHt2YWx1ZTpOLG9uQ2hhbmdlOmRlfSksY249KDAsZmUuWikodG4sMiksQ2U9Y25bMF0sQ249Y25bMV0sT249WyJ4eGwiLCJ4bCIsImxnIiwibWQiLCJzbSIsInhzIl0sYmU9cGUoYWU9PW51bGw/dm9pZCAwOmFlLml0ZW1zLHosYWUpLEE9ZnVuY3Rpb24oQmUpe3ZhciBEbj1bMCwwXSxHZT1BcnJheS5pc0FycmF5KEJlKT9CZTpbQmUsMF07cmV0dXJuIEdlLmZvckVhY2goZnVuY3Rpb24odHQscnQpe2lmKCgwLFpuLlopKHR0KT09PSJvYmplY3QiKWZvcih2YXIgQ3Q9MDtDdDxPbi5sZW5ndGg7Q3QrPTEpe3ZhciBadD1PbltDdF07aWYoRGVbWnRdJiZ0dFtadF0hPT12b2lkIDApe0RuW3J0XT10dFtadF07YnJlYWt9fWVsc2UgRG5bcnRdPXR0fHwwfSksRG59LEg9ZnVuY3Rpb24oQmUsRG4pe3JldHVybiBCZT9Ebjp7fX0saGU9ZnVuY3Rpb24oQmUpe3ZhciBEbj1CZTtpZigoMCxabi5aKShCZSk9PT0ib2JqZWN0Iilmb3IodmFyIEdlPTA7R2U8T24ubGVuZ3RoO0dlKz0xKXt2YXIgdHQ9T25bR2VdO2lmKERlIT1udWxsJiZEZVt0dF0mJihCZT09bnVsbD92b2lkIDA6QmVbdHRdKSE9PXZvaWQgMCl7RG49QmVbdHRdO2JyZWFrfX12YXIgcnQ9SCh0eXBlb2YgRG49PSJzdHJpbmciJiYvXGQlfFxkcHgvaS50ZXN0KERuKSx7d2lkdGg6RG4sZmxleFNocmluazowfSk7cmV0dXJue3NwYW46RG4sY29sU3BhblN0eWxlOnJ0fX0sdGU9RmUoInByby1jYXJkIiksWGU9YW4odGUpLExlPVhlLndyYXBTU1IsZm49WGUuaGFzaElkLFduPUEoSSksZ3Q9KDAsZmUuWikoV24sMiksaXQ9Z3RbMF0sVXQ9Z3RbMV0sQXQ9ITEsd3Q9ZC5DaGlsZHJlbi50b0FycmF5KHopLFh0PXd0Lm1hcChmdW5jdGlvbihRbixCZSl7dmFyIERuO2lmKFFuIT1udWxsJiYoRG49UW4udHlwZSkhPT1udWxsJiZEbiE9PXZvaWQgMCYmRG4uaXNQcm9DYXJkKXtBdD0hMDt2YXIgR2U9UW4ucHJvcHMuY29sU3Bhbix0dD1oZShHZSkscnQ9dHQuc3BhbixDdD10dC5jb2xTcGFuU3R5bGUsWnQ9WmUoKShbIiIuY29uY2F0KHRlLCItY29sIildLGZuLCgwLHAuWikoKDAscC5aKSgoMCxwLlopKHt9LCIiLmNvbmNhdCh0ZSwiLXNwbGl0LXZlcnRpY2FsIiksVD09PSJ2ZXJ0aWNhbCImJkJlIT09d3QubGVuZ3RoLTEpLCIiLmNvbmNhdCh0ZSwiLXNwbGl0LWhvcml6b250YWwiKSxUPT09Imhvcml6b250YWwiJiZCZSE9PXd0Lmxlbmd0aC0xKSwiIi5jb25jYXQodGUsIi1jb2wtIikuY29uY2F0KHJ0KSx0eXBlb2YgcnQ9PSJudW1iZXIiJiZydD49MCYmcnQ8PTI0KSksTXQ9TGUoKDAscy5qc3gpKCJkaXYiLHtzdHlsZTooMCxsLlopKCgwLGwuWikoKDAsbC5aKSgoMCxsLlopKHt9LEN0KSxIKGl0PjAse3BhZGRpbmdJbmxpbmVFbmQ6aXQvMixwYWRkaW5nSW5saW5lU3RhcnQ6aXQvMn0pKSxIKFV0PjAse3BhZGRpbmdCbG9ja1N0YXJ0OlV0LzIscGFkZGluZ0Jsb2NrRW5kOlV0LzJ9KSksTyksY2xhc3NOYW1lOlp0LGNoaWxkcmVuOmQuY2xvbmVFbGVtZW50KFFuKX0pKTtyZXR1cm4gZC5jbG9uZUVsZW1lbnQoTXQse2tleToicHJvLWNhcmQtY29sLSIuY29uY2F0KChRbj09bnVsbD92b2lkIDA6UW4ua2V5KXx8QmUpfSl9cmV0dXJuIFFufSkscHI9WmUoKSgiIi5jb25jYXQodGUpLHQsZm4sKHI9e30sKDAscC5aKSgoMCxwLlopKCgwLHAuWikoKDAscC5aKSgoMCxwLlopKCgwLHAuWikoKDAscC5aKSgoMCxwLlopKCgwLHAuWikoKDAscC5aKShyLCIiLmNvbmNhdCh0ZSwiLWJvcmRlciIpLGspLCIiLmNvbmNhdCh0ZSwiLWJveC1zaGFkb3ciKSx3KSwiIi5jb25jYXQodGUsIi1jb250YWluLWNhcmQiKSxBdCksIiIuY29uY2F0KHRlLCItbG9hZGluZyIpLHgpLCIiLmNvbmNhdCh0ZSwiLXNwbGl0IiksVD09PSJ2ZXJ0aWNhbCJ8fFQ9PT0iaG9yaXpvbnRhbCIpLCIiLmNvbmNhdCh0ZSwiLWdob3N0IiksJCksIiIuY29uY2F0KHRlLCItaG92ZXJhYmxlIiksRiksIiIuY29uY2F0KHRlLCItc2l6ZS0iKS5jb25jYXQoQiksQiksIiIuY29uY2F0KHRlLCItdHlwZS0iKS5jb25jYXQoViksViksIiIuY29uY2F0KHRlLCItY29sbGFwc2UiKSxDZSksKDAscC5aKShyLCIiLmNvbmNhdCh0ZSwiLWNoZWNrZWQiKSxjZSkpKSxucj1aZSgpKCIiLmNvbmNhdCh0ZSwiLWJvZHkiKSxmbiwoMCxwLlopKCgwLHAuWikoKDAscC5aKSh7fSwiIi5jb25jYXQodGUsIi1ib2R5LWNlbnRlciIpLHk9PT0iY2VudGVyIiksIiIuY29uY2F0KHRlLCItYm9keS1kaXJlY3Rpb24tY29sdW1uIiksVD09PSJob3Jpem9udGFsInx8Yj09PSJjb2x1bW4iKSwiIi5jb25jYXQodGUsIi1ib2R5LXdyYXAiKSxaJiZBdCkpLEx0PXUsS3Q9ZC5pc1ZhbGlkRWxlbWVudCh4KT94OigwLHMuanN4KSh4ZSx7cHJlZml4OnRlLHN0eWxlOih1PT1udWxsP3ZvaWQgMDp1LnBhZGRpbmcpPT09MHx8KHU9PW51bGw/dm9pZCAwOnUucGFkZGluZyk9PT0iMHB4Ij97cGFkZGluZzoyNH06dm9pZCAwfSksJHQ9WCYmTj09PXZvaWQgMCYmKF8/Xyh7Y29sbGFwc2VkOkNlfSk6KDAscy5qc3gpKGVuLlose3JvdGF0ZTpDZT92b2lkIDA6OTAsY2xhc3NOYW1lOiIiLmNvbmNhdCh0ZSwiLWNvbGxhcHNpYmxlLWljb24gIikuY29uY2F0KGZuKS50cmltKCl9KSk7cmV0dXJuIExlKCgwLHMuanN4cykoImRpdiIsKDAsbC5aKSgoMCxsLlopKHtjbGFzc05hbWU6cHIsc3R5bGU6byxyZWY6ZSxvbkNsaWNrOmZ1bmN0aW9uKEJlKXt2YXIgRG47VT09bnVsbHx8VShCZSkscmU9PW51bGx8fChEbj1yZS5vbkNsaWNrKT09PW51bGx8fERuPT09dm9pZCAwfHxEbi5jYWxsKHJlLEJlKX19LCgwLHBuLlopKHJlLFsicHJlZml4Q2xzIiwiY29sU3BhbiJdKSkse30se2NoaWxkcmVuOlsoY3x8bXx8JHQpJiYoMCxzLmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6WmUoKSgiIi5jb25jYXQodGUsIi1oZWFkZXIiKSxmbiwoMCxwLlopKCgwLHAuWikoe30sIiIuY29uY2F0KHRlLCItaGVhZGVyLWJvcmRlciIpLFl8fFY9PT0iaW5uZXIiKSwiIi5jb25jYXQodGUsIi1oZWFkZXItY29sbGFwc2libGUiKSwkdCkpLHN0eWxlOmksb25DbGljazpmdW5jdGlvbigpeyR0JiZDbighQ2UpfSxjaGlsZHJlbjpbKDAscy5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdCh0ZSwiLXRpdGxlICIpLmNvbmNhdChmbikudHJpbSgpLGNoaWxkcmVuOlskdCwoMCxzLmpzeCkoZ24uRyx7bGFiZWw6Yyx0b29sdGlwOkMsc3ViVGl0bGU6Z30pXX0pLG0mJigwLHMuanN4KSgiZGl2Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdCh0ZSwiLWV4dHJhICIpLmNvbmNhdChmbikudHJpbSgpLG9uQ2xpY2s6ZnVuY3Rpb24oQmUpe3JldHVybiBCZS5zdG9wUHJvcGFnYXRpb24oKX0sY2hpbGRyZW46bX0pXX0pLGFlPygwLHMuanN4KSgiZGl2Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdCh0ZSwiLXRhYnMgIikuY29uY2F0KGZuKS50cmltKCksY2hpbGRyZW46KDAscy5qc3gpKEluLlosKDAsbC5aKSgoMCxsLlopKHtvbkNoYW5nZTphZS5vbkNoYW5nZX0sKDAscG4uWikoYWUsWyJjYXJkUHJvcHMiXSkpLHt9LHtpdGVtczpiZSxjaGlsZHJlbjp4P0t0Onp9KSl9KTooMCxzLmpzeCkoImRpdiIse2NsYXNzTmFtZTpucixzdHlsZTpMdCxjaGlsZHJlbjp4P0t0Olh0fSksRT8oMCxzLmpzeCkoeWUse2FjdGlvbnM6RSxwcmVmaXhDbHM6dGV9KTpudWxsXX0pKSl9KSxFbj1Nbix4bj1mdW5jdGlvbihlKXt2YXIgcj1lLmNvbXBvbmVudENscztyZXR1cm4oMCxwLlopKHt9LHIseyImLWRpdmlkZXIiOntmbGV4OiJub25lIix3aWR0aDplLmxpbmVXaWR0aCxtYXJnaW5JbmxpbmU6ZS5tYXJnaW5YUyxtYXJnaW5CbG9jazplLm1hcmdpbkxHLGJhY2tncm91bmRDb2xvcjplLmNvbG9yU3BsaXQsIiYtaG9yaXpvbnRhbCI6e3dpZHRoOiJpbml0aWFsIixoZWlnaHQ6ZS5saW5lV2lkdGgsbWFyZ2luSW5saW5lOmUubWFyZ2luTEcsbWFyZ2luQmxvY2s6ZS5tYXJnaW5YU319LCImJi1zaXplLXNtYWxsICYtZGl2aWRlciI6e21hcmdpbkJsb2NrOmUubWFyZ2luTEcsbWFyZ2luSW5saW5lOmUubWFyZ2luWFMsIiYtaG9yaXpvbnRhbCI6e21hcmdpbkJsb2NrOmUubWFyZ2luWFMsbWFyZ2luSW5saW5lOmUubWFyZ2luTEd9fX0pfTtmdW5jdGlvbiBsbihuKXtyZXR1cm4oMCx1bi5YaikoIlByb0NhcmREaXZpZGVyIixmdW5jdGlvbihlKXt2YXIgcj0oMCxsLlopKCgwLGwuWikoe30sZSkse30se2NvbXBvbmVudENsczoiLiIuY29uY2F0KG4pfSk7cmV0dXJuW3huKHIpXX0pfXZhciBQbj1mdW5jdGlvbihlKXt2YXIgcj0oMCxkLnVzZUNvbnRleHQpKGRuLlpQLkNvbmZpZ0NvbnRleHQpLHQ9ci5nZXRQcmVmaXhDbHMsbz10KCJwcm8tY2FyZCIpLHU9IiIuY29uY2F0KG8sIi1kaXZpZGVyIiksaT1sbihvKSxjPWkud3JhcFNTUixnPWkuaGFzaElkLG09ZS5jbGFzc05hbWUsUz1lLnN0eWxlLFo9Uz09PXZvaWQgMD97fTpTLHk9ZS50eXBlLHg9WmUoKSh1LG0sZywoMCxwLlopKHt9LCIiLmNvbmNhdCh1LCItIikuY29uY2F0KHkpLHkpKTtyZXR1cm4gYygoMCxzLmpzeCkoImRpdiIse2NsYXNzTmFtZTp4LHN0eWxlOlp9KSl9LFVlPVBuLE5lPWZ1bmN0aW9uKGUpe3JldHVybigwLHMuanN4KShFbiwoMCxsLlopKHtib2R5U3R5bGU6e3BhZGRpbmc6MH19LGUpKX0sT2U9RW47T2UuaXNQcm9DYXJkPSEwLE9lLkRpdmlkZXI9VWUsT2UuVGFiUGFuZT1ybixPZS5Hcm91cD1OZTt2YXIgSWU9T2UsSGU9SWUsSG49digyNTE0KSxvbj12KDk1Miksd2U9digxMDkxNSksam49dig4NjY3MSksYT12KDUxODEyKSxmPXYoNTM5MTQpLGo9digyNzA2OCksRD12KDc4MTY0KSxtZT12KDk2MTU0KSxFZT12KDcyNzY0KSxfZT12KDE4NTEpLFVuPSgwLF9lLlopKE9iamVjdC5rZXlzLE9iamVjdCksc249VW4sTm49T2JqZWN0LnByb3RvdHlwZSxLbj1Obi5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiBfbihuKXtpZighKDAsRWUuWikobikpcmV0dXJuIHNuKG4pO3ZhciBlPVtdO2Zvcih2YXIgciBpbiBPYmplY3QobikpS24uY2FsbChuLHIpJiZyIT0iY29uc3RydWN0b3IiJiZlLnB1c2gocik7cmV0dXJuIGV9dmFyIGV0PV9uLG50PXYoNjI1MDgpLFBlPXYoNjYwOTIpLFE9KDAsbnQuWikoUGUuWiwiRGF0YVZpZXciKSxvZT1RLGdlPXYoODYxODMpLGVlPSgwLG50LlopKFBlLlosIlByb21pc2UiKSxUZT1lZSxqZT0oMCxudC5aKShQZS5aLCJTZXQiKSwkZT1qZSxBZT0oMCxudC5aKShQZS5aLCJXZWFrTWFwIiksTWU9QWUsYm49dig5MzU4OSksV2U9dig5MDAxOSksYXQ9IltvYmplY3QgTWFwXSIsdnQ9IltvYmplY3QgT2JqZWN0XSIsem49IltvYmplY3QgUHJvbWlzZV0iLHB0PSJbb2JqZWN0IFNldF0iLGZ0PSJbb2JqZWN0IFdlYWtNYXBdIix1dD0iW29iamVjdCBEYXRhVmlld10iLFluPSgwLFdlLlopKG9lKSwkbj0oMCxXZS5aKShnZS5aKSxodD0oMCxXZS5aKShUZSkseXQ9KDAsV2UuWikoJGUpLEd0PSgwLFdlLlopKE1lKSxTdD1ibi5aOyhvZSYmU3QobmV3IG9lKG5ldyBBcnJheUJ1ZmZlcigxKSkpIT11dHx8Z2UuWiYmU3QobmV3IGdlLlopIT1hdHx8VGUmJlN0KFRlLnJlc29sdmUoKSkhPXpufHwkZSYmU3QobmV3ICRlKSE9cHR8fE1lJiZTdChuZXcgTWUpIT1mdCkmJihTdD1mdW5jdGlvbihuKXt2YXIgZT0oMCxibi5aKShuKSxyPWU9PXZ0P24uY29uc3RydWN0b3I6dm9pZCAwLHQ9cj8oMCxXZS5aKShyKToiIjtpZih0KXN3aXRjaCh0KXtjYXNlIFluOnJldHVybiB1dDtjYXNlICRuOnJldHVybiBhdDtjYXNlIGh0OnJldHVybiB6bjtjYXNlIHl0OnJldHVybiBwdDtjYXNlIEd0OnJldHVybiBmdH1yZXR1cm4gZX0pO3ZhciBXdD1TdCxycj12KDI5MTY5KSxqdD12KDI3NzcxKSxGdD12KDUwNTg1KSxSdD12KDc3MDA4KSxIdD12KDcwOTA4KSxsdD0iW29iamVjdCBNYXBdIixJdD0iW29iamVjdCBTZXRdIixhcj1PYmplY3QucHJvdG90eXBlLG9hPWFyLmhhc093blByb3BlcnR5O2Z1bmN0aW9uIGlhKG4pe2lmKG49PW51bGwpcmV0dXJuITA7aWYoKDAsRnQuWikobikmJigoMCxqdC5aKShuKXx8dHlwZW9mIG49PSJzdHJpbmcifHx0eXBlb2Ygbi5zcGxpY2U9PSJmdW5jdGlvbiJ8fCgwLFJ0LlopKG4pfHwoMCxIdC5aKShuKXx8KDAscnIuWikobikpKXJldHVybiFuLmxlbmd0aDt2YXIgZT1XdChuKTtpZihlPT1sdHx8ZT09SXQpcmV0dXJuIW4uc2l6ZTtpZigoMCxFZS5aKShuKSlyZXR1cm4hZXQobikubGVuZ3RoO2Zvcih2YXIgciBpbiBuKWlmKG9hLmNhbGwobixyKSlyZXR1cm4hMTtyZXR1cm4hMH12YXIgc2E9aWEsbHI9digzMTY2NyksY2E9digzNzgzNCksdWE9Il9fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18iO2Z1bmN0aW9uIGRhKG4pe3JldHVybiB0aGlzLl9fZGF0YV9fLnNldChuLHVhKSx0aGlzfXZhciB2YT1kYTtmdW5jdGlvbiBmYShuKXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5oYXMobil9dmFyIG1hPWZhO2Z1bmN0aW9uIEp0KG4pe3ZhciBlPS0xLHI9bj09bnVsbD8wOm4ubGVuZ3RoO2Zvcih0aGlzLl9fZGF0YV9fPW5ldyBjYS5aOysrZTxyOyl0aGlzLmFkZChuW2VdKX1KdC5wcm90b3R5cGUuYWRkPUp0LnByb3RvdHlwZS5wdXNoPXZhLEp0LnByb3RvdHlwZS5oYXM9bWE7dmFyIGdhPUp0O2Z1bmN0aW9uIHBhKG4sZSl7Zm9yKHZhciByPS0xLHQ9bj09bnVsbD8wOm4ubGVuZ3RoOysrcjx0OylpZihlKG5bcl0scixuKSlyZXR1cm4hMDtyZXR1cm4hMX12YXIgaGE9cGE7ZnVuY3Rpb24geWEobixlKXtyZXR1cm4gbi5oYXMoZSl9dmFyIFNhPXlhLGJhPTEsQ2E9MjtmdW5jdGlvbiBaYShuLGUscix0LG8sdSl7dmFyIGk9ciZiYSxjPW4ubGVuZ3RoLGc9ZS5sZW5ndGg7aWYoYyE9ZyYmIShpJiZnPmMpKXJldHVybiExO3ZhciBtPXUuZ2V0KG4pLFM9dS5nZXQoZSk7aWYobSYmUylyZXR1cm4gbT09ZSYmUz09bjt2YXIgWj0tMSx5PSEwLHg9ciZDYT9uZXcgZ2E6dm9pZCAwO2Zvcih1LnNldChuLGUpLHUuc2V0KGUsbik7KytaPGM7KXt2YXIgaD1uW1pdLEk9ZVtaXTtpZih0KXZhciBDPWk/dChJLGgsWixlLG4sdSk6dChoLEksWixuLGUsdSk7aWYoQyE9PXZvaWQgMCl7aWYoQyljb250aW51ZTt5PSExO2JyZWFrfWlmKHgpe2lmKCFoYShlLGZ1bmN0aW9uKFQsUil7aWYoIVNhKHgsUikmJihoPT09VHx8byhoLFQscix0LHUpKSlyZXR1cm4geC5wdXNoKFIpfSkpe3k9ITE7YnJlYWt9fWVsc2UgaWYoIShoPT09SXx8byhoLEkscix0LHUpKSl7eT0hMTticmVha319cmV0dXJuIHUuZGVsZXRlKG4pLHUuZGVsZXRlKGUpLHl9dmFyIGhyPVphLHlyPXYoMTc2ODUpLFNyPXYoODQwNzMpLHhhPXYoNzk2NTEpO2Z1bmN0aW9uIFBhKG4pe3ZhciBlPS0xLHI9QXJyYXkobi5zaXplKTtyZXR1cm4gbi5mb3JFYWNoKGZ1bmN0aW9uKHQsbyl7clsrK2VdPVtvLHRdfSkscn12YXIgUmE9UGE7ZnVuY3Rpb24gSWEobil7dmFyIGU9LTEscj1BcnJheShuLnNpemUpO3JldHVybiBuLmZvckVhY2goZnVuY3Rpb24odCl7clsrK2VdPXR9KSxyfXZhciBUYT1JYSx3YT0xLEVhPTIsJGE9IltvYmplY3QgQm9vbGVhbl0iLE1hPSJbb2JqZWN0IERhdGVdIixqYT0iW29iamVjdCBFcnJvcl0iLEZhPSJbb2JqZWN0IE1hcF0iLE5hPSJbb2JqZWN0IE51bWJlcl0iLE9hPSJbb2JqZWN0IFJlZ0V4cF0iLERhPSJbb2JqZWN0IFNldF0iLEJhPSJbb2JqZWN0IFN0cmluZ10iLEFhPSJbb2JqZWN0IFN5bWJvbF0iLExhPSJbb2JqZWN0IEFycmF5QnVmZmVyXSIsS2E9IltvYmplY3QgRGF0YVZpZXddIixicj15ci5aP3lyLloucHJvdG90eXBlOnZvaWQgMCxvcj1icj9ici52YWx1ZU9mOnZvaWQgMDtmdW5jdGlvbiB6YShuLGUscix0LG8sdSxpKXtzd2l0Y2gocil7Y2FzZSBLYTppZihuLmJ5dGVMZW5ndGghPWUuYnl0ZUxlbmd0aHx8bi5ieXRlT2Zmc2V0IT1lLmJ5dGVPZmZzZXQpcmV0dXJuITE7bj1uLmJ1ZmZlcixlPWUuYnVmZmVyO2Nhc2UgTGE6cmV0dXJuIShuLmJ5dGVMZW5ndGghPWUuYnl0ZUxlbmd0aHx8IXUobmV3IFNyLloobiksbmV3IFNyLlooZSkpKTtjYXNlICRhOmNhc2UgTWE6Y2FzZSBOYTpyZXR1cm4oMCx4YS5aKSgrbiwrZSk7Y2FzZSBqYTpyZXR1cm4gbi5uYW1lPT1lLm5hbWUmJm4ubWVzc2FnZT09ZS5tZXNzYWdlO2Nhc2UgT2E6Y2FzZSBCYTpyZXR1cm4gbj09ZSsiIjtjYXNlIEZhOnZhciBjPVJhO2Nhc2UgRGE6dmFyIGc9dCZ3YTtpZihjfHwoYz1UYSksbi5zaXplIT1lLnNpemUmJiFnKXJldHVybiExO3ZhciBtPWkuZ2V0KG4pO2lmKG0pcmV0dXJuIG09PWU7dHw9RWEsaS5zZXQobixlKTt2YXIgUz1ocihjKG4pLGMoZSksdCxvLHUsaSk7cmV0dXJuIGkuZGVsZXRlKG4pLFM7Y2FzZSBBYTppZihvcilyZXR1cm4gb3IuY2FsbChuKT09b3IuY2FsbChlKX1yZXR1cm4hMX12YXIgV2E9emE7ZnVuY3Rpb24gSGEobixlKXtmb3IodmFyIHI9LTEsdD1lLmxlbmd0aCxvPW4ubGVuZ3RoOysrcjx0OyluW28rcl09ZVtyXTtyZXR1cm4gbn12YXIgVmE9SGE7ZnVuY3Rpb24gVWEobixlLHIpe3ZhciB0PWUobik7cmV0dXJuKDAsanQuWikobik/dDpWYSh0LHIobikpfXZhciBYYT1VYTtmdW5jdGlvbiBHYShuLGUpe2Zvcih2YXIgcj0tMSx0PW49PW51bGw/MDpuLmxlbmd0aCxvPTAsdT1bXTsrK3I8dDspe3ZhciBpPW5bcl07ZShpLHIsbikmJih1W28rK109aSl9cmV0dXJuIHV9dmFyIEphPUdhO2Z1bmN0aW9uIFlhKCl7cmV0dXJuW119dmFyIFFhPVlhLHFhPU9iamVjdC5wcm90b3R5cGUsa2E9cWEucHJvcGVydHlJc0VudW1lcmFibGUsQ3I9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyxfYT1Dcj9mdW5jdGlvbihuKXtyZXR1cm4gbj09bnVsbD9bXToobj1PYmplY3QobiksSmEoQ3IobiksZnVuY3Rpb24oZSl7cmV0dXJuIGthLmNhbGwobixlKX0pKX06UWEsZWw9X2Esbmw9dig4NzY2OCk7ZnVuY3Rpb24gdGwobil7cmV0dXJuKDAsRnQuWikobik/KDAsbmwuWikobik6ZXQobil9dmFyIHJsPXRsO2Z1bmN0aW9uIGFsKG4pe3JldHVybiBYYShuLHJsLGVsKX12YXIgWnI9YWwsbGw9MSxvbD1PYmplY3QucHJvdG90eXBlLGlsPW9sLmhhc093blByb3BlcnR5O2Z1bmN0aW9uIHNsKG4sZSxyLHQsbyx1KXt2YXIgaT1yJmxsLGM9WnIobiksZz1jLmxlbmd0aCxtPVpyKGUpLFM9bS5sZW5ndGg7aWYoZyE9UyYmIWkpcmV0dXJuITE7Zm9yKHZhciBaPWc7Wi0tOyl7dmFyIHk9Y1taXTtpZighKGk/eSBpbiBlOmlsLmNhbGwoZSx5KSkpcmV0dXJuITF9dmFyIHg9dS5nZXQobiksaD11LmdldChlKTtpZih4JiZoKXJldHVybiB4PT1lJiZoPT1uO3ZhciBJPSEwO3Uuc2V0KG4sZSksdS5zZXQoZSxuKTtmb3IodmFyIEM9aTsrK1o8Zzspe3k9Y1taXTt2YXIgVD1uW3ldLFI9ZVt5XTtpZih0KXZhciBZPWk/dChSLFQseSxlLG4sdSk6dChULFIseSxuLGUsdSk7aWYoIShZPT09dm9pZCAwP1Q9PT1SfHxvKFQsUixyLHQsdSk6WSkpe0k9ITE7YnJlYWt9Q3x8KEM9eT09ImNvbnN0cnVjdG9yIil9aWYoSSYmIUMpe3ZhciBHPW4uY29uc3RydWN0b3Isaz1lLmNvbnN0cnVjdG9yO0chPWsmJiJjb25zdHJ1Y3RvciJpbiBuJiYiY29uc3RydWN0b3IiaW4gZSYmISh0eXBlb2YgRz09ImZ1bmN0aW9uIiYmRyBpbnN0YW5jZW9mIEcmJnR5cGVvZiBrPT0iZnVuY3Rpb24iJiZrIGluc3RhbmNlb2YgaykmJihJPSExKX1yZXR1cm4gdS5kZWxldGUobiksdS5kZWxldGUoZSksSX12YXIgY2w9c2wsdWw9MSx4cj0iW29iamVjdCBBcmd1bWVudHNdIixQcj0iW29iamVjdCBBcnJheV0iLFl0PSJbb2JqZWN0IE9iamVjdF0iLGRsPU9iamVjdC5wcm90b3R5cGUsUnI9ZGwuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gdmwobixlLHIsdCxvLHUpe3ZhciBpPSgwLGp0LlopKG4pLGM9KDAsanQuWikoZSksZz1pP1ByOld0KG4pLG09Yz9QcjpXdChlKTtnPWc9PXhyP1l0OmcsbT1tPT14cj9ZdDptO3ZhciBTPWc9PVl0LFo9bT09WXQseT1nPT1tO2lmKHkmJigwLFJ0LlopKG4pKXtpZighKDAsUnQuWikoZSkpcmV0dXJuITE7aT0hMCxTPSExfWlmKHkmJiFTKXJldHVybiB1fHwodT1uZXcgbHIuWiksaXx8KDAsSHQuWikobik/aHIobixlLHIsdCxvLHUpOldhKG4sZSxnLHIsdCxvLHUpO2lmKCEociZ1bCkpe3ZhciB4PVMmJlJyLmNhbGwobiwiX193cmFwcGVkX18iKSxoPVomJlJyLmNhbGwoZSwiX193cmFwcGVkX18iKTtpZih4fHxoKXt2YXIgST14P24udmFsdWUoKTpuLEM9aD9lLnZhbHVlKCk6ZTtyZXR1cm4gdXx8KHU9bmV3IGxyLlopLG8oSSxDLHIsdCx1KX19cmV0dXJuIHk/KHV8fCh1PW5ldyBsci5aKSxjbChuLGUscix0LG8sdSkpOiExfXZhciBmbD12bCxJcj12KDE4NTMzKTtmdW5jdGlvbiBUcihuLGUscix0LG8pe3JldHVybiBuPT09ZT8hMDpuPT1udWxsfHxlPT1udWxsfHwhKDAsSXIuWikobikmJiEoMCxJci5aKShlKT9uIT09biYmZSE9PWU6ZmwobixlLHIsdCxUcixvKX12YXIgbWw9VHI7ZnVuY3Rpb24gZ2wobixlKXtyZXR1cm4gbWwobixlKX12YXIgcGw9Z2wsd3I9dig2NTMzMCkseXM9ZnVuY3Rpb24oZSl7cmV0dXJuIGUhPW51bGx9O2Z1bmN0aW9uIGhsKG4sZSxyKXt2YXIgdCxvO2lmKG49PT0hMSlyZXR1cm4hMTt2YXIgdT1lLnRvdGFsLGk9ZS5jdXJyZW50LGM9ZS5wYWdlU2l6ZSxnPWUuc2V0UGFnZUluZm8sbT0oMCxabi5aKShuKT09PSJvYmplY3QiP246e307cmV0dXJuKDAsbC5aKSgoMCxsLlopKHtzaG93VG90YWw6ZnVuY3Rpb24oWix5KXtyZXR1cm4iIi5jb25jYXQoci5nZXRNZXNzYWdlKCJwYWdpbmF0aW9uLnRvdGFsLnJhbmdlIiwiXHU3QjJDIiksIiAiKS5jb25jYXQoeVswXSwiLSIpLmNvbmNhdCh5WzFdLCIgIikuY29uY2F0KHIuZ2V0TWVzc2FnZSgicGFnaW5hdGlvbi50b3RhbC50b3RhbCIsIlx1Njc2MS9cdTYwM0JcdTUxNzEiKSwiICIpLmNvbmNhdChaLCIgIikuY29uY2F0KHIuZ2V0TWVzc2FnZSgicGFnaW5hdGlvbi50b3RhbC5pdGVtIiwiXHU2NzYxIikpfSx0b3RhbDp1fSxtKSx7fSx7Y3VycmVudDpuIT09ITAmJm4mJih0PW4uY3VycmVudCkhPT1udWxsJiZ0IT09dm9pZCAwP3Q6aSxwYWdlU2l6ZTpuIT09ITAmJm4mJihvPW4ucGFnZVNpemUpIT09bnVsbCYmbyE9PXZvaWQgMD9vOmMsb25DaGFuZ2U6ZnVuY3Rpb24oWix5KXt2YXIgeD1uLGg9eC5vbkNoYW5nZTtoPT1udWxsfHxoKFoseXx8MjApLCh5IT09Y3x8aSE9PVopJiZnKHtwYWdlU2l6ZTp5LGN1cnJlbnQ6Wn0pfX0pfWZ1bmN0aW9uIHlsKG4sZSxyKXt2YXIgdD0oMCxsLlopKCgwLGwuWikoe30sci5lZGl0YWJsZVV0aWxzKSx7fSx7cGFnZUluZm86ZS5wYWdlSW5mbyxyZWxvYWQ6ZnVuY3Rpb24oKXt2YXIgbz0oMCxzZS5aKSgoMCxMLlopKCkubWFyayhmdW5jdGlvbiBpKGMpe3JldHVybigwLEwuWikoKS53cmFwKGZ1bmN0aW9uKG0pe2Zvcig7Oylzd2l0Y2gobS5wcmV2PW0ubmV4dCl7Y2FzZSAwOmlmKCFjKXttLm5leHQ9MzticmVha31yZXR1cm4gbS5uZXh0PTMsZS5zZXRQYWdlSW5mbyh7Y3VycmVudDoxfSk7Y2FzZSAzOnJldHVybiBtLm5leHQ9NSxlPT1udWxsP3ZvaWQgMDplLnJlbG9hZCgpO2Nhc2UgNTpjYXNlImVuZCI6cmV0dXJuIG0uc3RvcCgpfX0saSl9KSk7ZnVuY3Rpb24gdShpKXtyZXR1cm4gby5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHV9KCkscmVsb2FkQW5kUmVzdDpmdW5jdGlvbigpe3ZhciBvPSgwLHNlLlopKCgwLEwuWikoKS5tYXJrKGZ1bmN0aW9uIGkoKXtyZXR1cm4oMCxMLlopKCkud3JhcChmdW5jdGlvbihnKXtmb3IoOzspc3dpdGNoKGcucHJldj1nLm5leHQpe2Nhc2UgMDpyZXR1cm4gci5vbkNsZWFuU2VsZWN0ZWQoKSxnLm5leHQ9MyxlLnNldFBhZ2VJbmZvKHtjdXJyZW50OjF9KTtjYXNlIDM6cmV0dXJuIGcubmV4dD01LGU9PW51bGw/dm9pZCAwOmUucmVsb2FkKCk7Y2FzZSA1OmNhc2UiZW5kIjpyZXR1cm4gZy5zdG9wKCl9fSxpKX0pKTtmdW5jdGlvbiB1KCl7cmV0dXJuIG8uYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB1fSgpLHJlc2V0OmZ1bmN0aW9uKCl7dmFyIG89KDAsc2UuWikoKDAsTC5aKSgpLm1hcmsoZnVuY3Rpb24gaSgpe3ZhciBjO3JldHVybigwLEwuWikoKS53cmFwKGZ1bmN0aW9uKG0pe2Zvcig7Oylzd2l0Y2gobS5wcmV2PW0ubmV4dCl7Y2FzZSAwOnJldHVybiBtLm5leHQ9MixyLnJlc2V0QWxsKCk7Y2FzZSAyOnJldHVybiBtLm5leHQ9NCxlPT1udWxsfHwoYz1lLnJlc2V0KT09PW51bGx8fGM9PT12b2lkIDA/dm9pZCAwOmMuY2FsbChlKTtjYXNlIDQ6cmV0dXJuIG0ubmV4dD02LGU9PW51bGw/dm9pZCAwOmUucmVsb2FkKCk7Y2FzZSA2OmNhc2UiZW5kIjpyZXR1cm4gbS5zdG9wKCl9fSxpKX0pKTtmdW5jdGlvbiB1KCl7cmV0dXJuIG8uYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB1fSgpLGZ1bGxTY3JlZW46ZnVuY3Rpb24oKXtyZXR1cm4gci5mdWxsU2NyZWVuKCl9LGNsZWFyU2VsZWN0ZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gci5vbkNsZWFuU2VsZWN0ZWQoKX0sc2V0UGFnZUluZm86ZnVuY3Rpb24odSl7cmV0dXJuIGUuc2V0UGFnZUluZm8odSl9fSk7bi5jdXJyZW50PXR9ZnVuY3Rpb24gU2wobixlKXtyZXR1cm4gZS5maWx0ZXIoZnVuY3Rpb24ocil7cmV0dXJuIHJ9KS5sZW5ndGg8MT9uOmUucmVkdWNlKGZ1bmN0aW9uKHIsdCl7cmV0dXJuIHQocil9LG4pfXZhciBFcj1mdW5jdGlvbihlLHIpe3JldHVybiByPT09dm9pZCAwPyExOnR5cGVvZiByPT0iYm9vbGVhbiI/cjpyW2VdfSxibD1mdW5jdGlvbihlKXt2YXIgcjtyZXR1cm4gZSYmKDAsWm4uWikoZSk9PT0ib2JqZWN0IiYmKGU9PW51bGx8fChyPWUucHJvcHMpPT09bnVsbHx8cj09PXZvaWQgMD92b2lkIDA6ci5jb2xTcGFuKX0sTnQ9ZnVuY3Rpb24oZSxyKXtyZXR1cm4gZT9BcnJheS5pc0FycmF5KGUpP2Uuam9pbigiLSIpOmUudG9TdHJpbmcoKToiIi5jb25jYXQocil9O2Z1bmN0aW9uIENsKG4pe3JldHVybiBBcnJheS5pc0FycmF5KG4pP24uam9pbigiLCIpOm49PW51bGw/dm9pZCAwOm4udG9TdHJpbmcoKX1mdW5jdGlvbiBabChuKXt2YXIgZT17fSxyPXt9O3JldHVybiBuLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIG89Q2wodC5kYXRhSW5kZXgpO2lmKG8pe2lmKHQuZmlsdGVycyl7dmFyIHU9dC5kZWZhdWx0RmlsdGVyZWRWYWx1ZTt1PT09dm9pZCAwP2Vbb109bnVsbDplW29dPXQuZGVmYXVsdEZpbHRlcmVkVmFsdWV9dC5zb3J0ZXImJnQuZGVmYXVsdFNvcnRPcmRlciYmKHJbb109dC5kZWZhdWx0U29ydE9yZGVyKX19KSx7c29ydDpyLGZpbHRlcjplfX1mdW5jdGlvbiB4bCgpe3ZhciBuLGUscix0LG8sdSxpPWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dm9pZCAwP2FyZ3VtZW50c1swXTp7fSxjPSgwLGQudXNlUmVmKSgpLGc9KDAsZC51c2VSZWYpKG51bGwpLG09KDAsZC51c2VSZWYpKCksUz0oMCxkLnVzZVJlZikoKSxaPSgwLGQudXNlU3RhdGUpKCIiKSx5PSgwLGZlLlopKFosMikseD15WzBdLGg9eVsxXSxJPSgwLGQudXNlUmVmKShbXSksQz0oMCxxZS5aKShmdW5jdGlvbigpe3JldHVybiBpLnNpemV8fGkuZGVmYXVsdFNpemV8fCJtaWRkbGUifSx7dmFsdWU6aS5zaXplLG9uQ2hhbmdlOmkub25TaXplQ2hhbmdlfSksVD0oMCxmZS5aKShDLDIpLFI9VFswXSxZPVRbMV0sRz0oMCxkLnVzZU1lbW8pKGZ1bmN0aW9uKCl7dmFyIFAsJDtpZihpIT1udWxsJiYoUD1pLmNvbHVtbnNTdGF0ZSkhPT1udWxsJiZQIT09dm9pZCAwJiZQLmRlZmF1bHRWYWx1ZSlyZXR1cm4gaS5jb2x1bW5zU3RhdGUuZGVmYXVsdFZhbHVlO3ZhciBKPXt9O3JldHVybigkPWkuY29sdW1ucyk9PT1udWxsfHwkPT09dm9pZCAwfHwkLmZvckVhY2goZnVuY3Rpb24oRixiKXt2YXIgTj1GLmtleSxLPUYuZGF0YUluZGV4LFg9Ri5maXhlZCxfPUYuZGlzYWJsZSxPPU50KE4hPW51bGw/TjpLLGIpO08mJihKW09dPXtzaG93OiEwLGZpeGVkOlgsZGlzYWJsZTpffSl9KSxKfSxbaS5jb2x1bW5zXSksaz0oMCxxZS5aKShmdW5jdGlvbigpe3ZhciBQLCQsSj1pLmNvbHVtbnNTdGF0ZXx8e30sRj1KLnBlcnNpc3RlbmNlVHlwZSxiPUoucGVyc2lzdGVuY2VLZXk7aWYoYiYmRiYmdHlwZW9mIHdpbmRvdyE9InVuZGVmaW5lZCIpe3ZhciBOPXdpbmRvd1tGXTt0cnl7dmFyIEs9Tj09bnVsbD92b2lkIDA6Ti5nZXRJdGVtKGIpO2lmKEspe3ZhciBYO2lmKGkhPW51bGwmJihYPWkuY29sdW1uc1N0YXRlKSE9PW51bGwmJlghPT12b2lkIDAmJlguZGVmYXVsdFZhbHVlKXt2YXIgXztyZXR1cm4oMCx3ci5aKSh7fSxpPT1udWxsfHwoXz1pLmNvbHVtbnNTdGF0ZSk9PT1udWxsfHxfPT09dm9pZCAwP3ZvaWQgMDpfLmRlZmF1bHRWYWx1ZSxKU09OLnBhcnNlKEspKX1yZXR1cm4gSlNPTi5wYXJzZShLKX19Y2F0Y2goTyl7Y29uc29sZS53YXJuKE8pfX1yZXR1cm4gaS5jb2x1bW5zU3RhdGVNYXB8fCgoUD1pLmNvbHVtbnNTdGF0ZSk9PT1udWxsfHxQPT09dm9pZCAwP3ZvaWQgMDpQLnZhbHVlKXx8KCgkPWkuY29sdW1uc1N0YXRlKT09PW51bGx8fCQ9PT12b2lkIDA/dm9pZCAwOiQuZGVmYXVsdFZhbHVlKXx8R30se3ZhbHVlOigobj1pLmNvbHVtbnNTdGF0ZSk9PT1udWxsfHxuPT09dm9pZCAwP3ZvaWQgMDpuLnZhbHVlKXx8aS5jb2x1bW5zU3RhdGVNYXAsb25DaGFuZ2U6KChlPWkuY29sdW1uc1N0YXRlKT09PW51bGx8fGU9PT12b2lkIDA/dm9pZCAwOmUub25DaGFuZ2UpfHxpLm9uQ29sdW1uc1N0YXRlQ2hhbmdlfSksaWU9KDAsZmUuWikoaywyKSx3PWllWzBdLHo9aWVbMV07KDAsZC51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7dmFyIFA9aS5jb2x1bW5zU3RhdGV8fHt9LCQ9UC5wZXJzaXN0ZW5jZVR5cGUsSj1QLnBlcnNpc3RlbmNlS2V5O2lmKEomJiQmJnR5cGVvZiB3aW5kb3chPSJ1bmRlZmluZWQiKXt2YXIgRj13aW5kb3dbJF07dHJ5e3ZhciBiPUY9PW51bGw/dm9pZCAwOkYuZ2V0SXRlbShKKTtpZihiKXt2YXIgTjtpZihpIT1udWxsJiYoTj1pLmNvbHVtbnNTdGF0ZSkhPT1udWxsJiZOIT09dm9pZCAwJiZOLmRlZmF1bHRWYWx1ZSl7dmFyIEs7eigoMCx3ci5aKSh7fSxpPT1udWxsfHwoSz1pLmNvbHVtbnNTdGF0ZSk9PT1udWxsfHxLPT09dm9pZCAwP3ZvaWQgMDpLLmRlZmF1bHRWYWx1ZSxKU09OLnBhcnNlKGIpKSl9ZWxzZSB6KEpTT04ucGFyc2UoYikpfWVsc2UgeihHKX1jYXRjaChYKXtjb25zb2xlLndhcm4oWCl9fX0sWyhyPWkuY29sdW1uc1N0YXRlKT09PW51bGx8fHI9PT12b2lkIDA/dm9pZCAwOnIucGVyc2lzdGVuY2VLZXksKHQ9aS5jb2x1bW5zU3RhdGUpPT09bnVsbHx8dD09PXZvaWQgMD92b2lkIDA6dC5wZXJzaXN0ZW5jZVR5cGUsR10pLCgwLHduLkVUKSghaS5jb2x1bW5zU3RhdGVNYXAsImNvbHVtbnNTdGF0ZU1hcFx1NURGMlx1N0VDRlx1NUU5Rlx1NUYwM1x1RkYwQ1x1OEJGN1x1NEY3Rlx1NzUyOCBjb2x1bW5zU3RhdGUudmFsdWUgXHU2NkZGXHU2MzYyIiksKDAsd24uRVQpKCFpLmNvbHVtbnNTdGF0ZU1hcCwiY29sdW1uc1N0YXRlTWFwIGhhcyBiZWVuIGRpc2NhcmRlZCwgcGxlYXNlIHVzZSBjb2x1bW5zU3RhdGUudmFsdWUgcmVwbGFjZW1lbnQiKTt2YXIgQj0oMCxkLnVzZUNhbGxiYWNrKShmdW5jdGlvbigpe3ZhciBQPWkuY29sdW1uc1N0YXRlfHx7fSwkPVAucGVyc2lzdGVuY2VUeXBlLEo9UC5wZXJzaXN0ZW5jZUtleTtpZighKCFKfHwhJHx8dHlwZW9mIHdpbmRvdz09InVuZGVmaW5lZCIpKXt2YXIgRj13aW5kb3dbJF07dHJ5e0Y9PW51bGx8fEYucmVtb3ZlSXRlbShKKX1jYXRjaChiKXtjb25zb2xlLndhcm4oYil9fX0sW2kuY29sdW1uc1N0YXRlXSk7KDAsZC51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7dmFyIFAsJDtpZighKCEoKFA9aS5jb2x1bW5zU3RhdGUpIT09bnVsbCYmUCE9PXZvaWQgMCYmUC5wZXJzaXN0ZW5jZUtleSl8fCEoKCQ9aS5jb2x1bW5zU3RhdGUpIT09bnVsbCYmJCE9PXZvaWQgMCYmJC5wZXJzaXN0ZW5jZVR5cGUpKSYmdHlwZW9mIHdpbmRvdyE9InVuZGVmaW5lZCIpe3ZhciBKPWkuY29sdW1uc1N0YXRlLEY9Si5wZXJzaXN0ZW5jZVR5cGUsYj1KLnBlcnNpc3RlbmNlS2V5LE49d2luZG93W0ZdO3RyeXtOPT1udWxsfHxOLnNldEl0ZW0oYixKU09OLnN0cmluZ2lmeSh3KSl9Y2F0Y2goSyl7Y29uc29sZS53YXJuKEspLEIoKX19fSxbKG89aS5jb2x1bW5zU3RhdGUpPT09bnVsbHx8bz09PXZvaWQgMD92b2lkIDA6by5wZXJzaXN0ZW5jZUtleSx3LCh1PWkuY29sdW1uc1N0YXRlKT09PW51bGx8fHU9PT12b2lkIDA/dm9pZCAwOnUucGVyc2lzdGVuY2VUeXBlXSk7dmFyIEU9e2FjdGlvbjpjLmN1cnJlbnQsc2V0QWN0aW9uOmZ1bmN0aW9uKCQpe2MuY3VycmVudD0kfSxzb3J0S2V5Q29sdW1uczpJLmN1cnJlbnQsc2V0U29ydEtleUNvbHVtbnM6ZnVuY3Rpb24oJCl7SS5jdXJyZW50PSR9LHByb3BzUmVmOlMsY29sdW1uc01hcDp3LGtleVdvcmRzOngsc2V0S2V5V29yZHM6ZnVuY3Rpb24oJCl7cmV0dXJuIGgoJCl9LHNldFRhYmxlU2l6ZTpZLHRhYmxlU2l6ZTpSLHByZWZpeE5hbWU6bS5jdXJyZW50LHNldFByZWZpeE5hbWU6ZnVuY3Rpb24oJCl7bS5jdXJyZW50PSR9LHNldENvbHVtbnNNYXA6eixjb2x1bW5zOmkuY29sdW1ucyxyb290RG9tUmVmOmcsY2xlYXJQZXJzaXN0ZW5jZVN0b3JhZ2U6QixkZWZhdWx0Q29sdW1uS2V5TWFwOkd9O3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoRSwicHJlZml4TmFtZSIse2dldDpmdW5jdGlvbigpe3JldHVybiBtLmN1cnJlbnR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEUsInNvcnRLZXlDb2x1bW5zIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEkuY3VycmVudH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoRSwiYWN0aW9uIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGMuY3VycmVudH19KSxFfXZhciBUdD0oMCxkLmNyZWF0ZUNvbnRleHQpKHt9KSxQbD1mdW5jdGlvbihlKXt2YXIgcj14bChlLmluaXRWYWx1ZSk7cmV0dXJuKDAscy5qc3gpKFR0LlByb3ZpZGVyLHt2YWx1ZTpyLGNoaWxkcmVuOmUuY2hpbGRyZW59KX0sT3Q9dig3ODk1NyksUmw9ZnVuY3Rpb24oZSl7cmV0dXJuKDAscC5aKSh7fSxlLmNvbXBvbmVudENscyx7bWFyZ2luQmxvY2tFbmQ6MTYsYmFja2dyb3VuZENvbG9yOigwLHVuLnVLKShlLmNvbG9yVGV4dEJhc2UsLjAyKSxib3JkZXJSYWRpdXM6ZS5ib3JkZXJSYWRpdXMsYm9yZGVyOiJub25lIiwiJi1jb250YWluZXIiOntwYWRkaW5nQmxvY2s6ZS5wYWRkaW5nU00scGFkZGluZ0lubGluZTplLnBhZGRpbmdMR30sIiYtaW5mbyI6e2Rpc3BsYXk6ImZsZXgiLGFsaWduSXRlbXM6ImNlbnRlciIsdHJhbnNpdGlvbjoiYWxsIDAuM3MiLGNvbG9yOmUuY29sb3JUZXh0VGVydGlhcnksIiYtY29udGVudCI6e2ZsZXg6MX0sIiYtb3B0aW9uIjp7bWluV2lkdGg6NDgscGFkZGluZ0lubGluZVN0YXJ0OjE2fX19KX07ZnVuY3Rpb24gSWwobil7cmV0dXJuKDAsdW4uWGopKCJQcm9UYWJsZUFsZXJ0IixmdW5jdGlvbihlKXt2YXIgcj0oMCxsLlopKCgwLGwuWikoe30sZSkse30se2NvbXBvbmVudENsczoiLiIuY29uY2F0KG4pfSk7cmV0dXJuW1JsKHIpXX0pfXZhciBUbD1mdW5jdGlvbihlKXt2YXIgcj1lLmludGwsdD1lLm9uQ2xlYW5TZWxlY3RlZDtyZXR1cm5bKDAscy5qc3gpKCJhIix7b25DbGljazp0LGNoaWxkcmVuOnIuZ2V0TWVzc2FnZSgiYWxlcnQuY2xlYXIiLCJcdTZFMDVcdTdBN0EiKX0sIjAiKV19O2Z1bmN0aW9uIHdsKG4pe3ZhciBlPW4uc2VsZWN0ZWRSb3dLZXlzLHI9ZT09PXZvaWQgMD9bXTplLHQ9bi5vbkNsZWFuU2VsZWN0ZWQsbz1uLmFsd2F5c1Nob3dBbGVydCx1PW4uc2VsZWN0ZWRSb3dzLGk9bi5hbGVydEluZm9SZW5kZXIsYz1pPT09dm9pZCAwP2Z1bmN0aW9uKFkpe3ZhciBHPVkuaW50bDtyZXR1cm4oMCxzLmpzeHMpKE90Llose2NoaWxkcmVuOltHLmdldE1lc3NhZ2UoImFsZXJ0LnNlbGVjdGVkIiwiXHU1REYyXHU5MDA5XHU2MkU5Iiksci5sZW5ndGgsRy5nZXRNZXNzYWdlKCJhbGVydC5pdGVtIiwiXHU5ODc5IiksIlx4QTBceEEwIl19KX06aSxnPW4uYWxlcnRPcHRpb25SZW5kZXIsbT1nPT09dm9pZCAwP1RsOmcsUz0oMCx3ZS5ZQikoKSxaPW0mJm0oe29uQ2xlYW5TZWxlY3RlZDp0LHNlbGVjdGVkUm93S2V5czpyLHNlbGVjdGVkUm93czp1LGludGw6U30pLHk9KDAsZC51c2VDb250ZXh0KShkbi5aUC5Db25maWdDb250ZXh0KSx4PXkuZ2V0UHJlZml4Q2xzLGg9eCgicHJvLXRhYmxlLWFsZXJ0IiksST1JbChoKSxDPUkud3JhcFNTUixUPUkuaGFzaElkO2lmKGM9PT0hMSlyZXR1cm4gbnVsbDt2YXIgUj1jKHtpbnRsOlMsc2VsZWN0ZWRSb3dLZXlzOnIsc2VsZWN0ZWRSb3dzOnUsb25DbGVhblNlbGVjdGVkOnR9KTtyZXR1cm4gUj09PSExfHxyLmxlbmd0aDwxJiYhbz9udWxsOkMoKDAscy5qc3gpKCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KGgsIiAiKS5jb25jYXQoVCkudHJpbSgpLGNoaWxkcmVuOigwLHMuanN4KSgiZGl2Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdChoLCItY29udGFpbmVyICIpLmNvbmNhdChUKS50cmltKCksY2hpbGRyZW46KDAscy5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdChoLCItaW5mbyAiKS5jb25jYXQoVCkudHJpbSgpLGNoaWxkcmVuOlsoMCxzLmpzeCkoImRpdiIse2NsYXNzTmFtZToiIi5jb25jYXQoaCwiLWluZm8tY29udGVudCAiKS5jb25jYXQoVCkudHJpbSgpLGNoaWxkcmVuOlJ9KSxaPygwLHMuanN4KSgiZGl2Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdChoLCItaW5mby1vcHRpb24gIikuY29uY2F0KFQpLnRyaW0oKSxjaGlsZHJlbjpafSk6bnVsbF19KX0pfSkpfXZhciBFbD13bCwkcj12KDQzMTQ0KSxNcj12KDE1NjcxKSxidD12KDk3MzI2KSxqcj12KDYwMTM2KSxGcj12KDI5Mzg4KSxOcj12KDYwMjQ5KTtmdW5jdGlvbiAkbCgpe3ZhciBuPSgwLGQudXNlU3RhdGUpKCEwKSxlPSgwLGZlLlopKG4sMikscj1lWzFdLHQ9KDAsZC51c2VDYWxsYmFjaykoZnVuY3Rpb24oKXtyZXR1cm4gcihmdW5jdGlvbihvKXtyZXR1cm4hb30pfSxbXSk7cmV0dXJuIHR9ZnVuY3Rpb24gTWwobixlKXt2YXIgcj0oMCxkLnVzZU1lbW8pKGZ1bmN0aW9uKCl7dmFyIHQ9e2N1cnJlbnQ6ZX07cmV0dXJuIG5ldyBQcm94eSh0LHtzZXQ6ZnVuY3Rpb24odSxpLGMpe3JldHVybiBPYmplY3QuaXModVtpXSxjKXx8KHVbaV09YyxuKHIpKSwhMH19KX0sW10pO3JldHVybiByfWZ1bmN0aW9uIGpsKG4pe3ZhciBlPSRsKCkscj1NbChlLG4pO3JldHVybiByfXZhciBPcj12KDUxMjgwKSxvdD12KDQ4MTcxKSxtdD12KDIyMjcwKSxEcj12KDc0MTM4KSxEdD12KDk5ODU5KSxpcj12KDEyMDQ0KSxzcj12KDczMTc3KSxGbD12KDg1MjY1KSxCcj12KDg4ODApLFF0PXYoNzM5MzUpLFZ0PXYoNzg3MzMpLE5sPWZ1bmN0aW9uKGUpe3JldHVybigwLHAuWikoe30sZS5jb21wb25lbnRDbHMseyImLXNpZGViYXItZHJhZ2dlciI6e3dpZHRoOiI1cHgiLGN1cnNvcjoiZXctcmVzaXplIixwYWRkaW5nOiI0cHggMCAwIixib3JkZXJUb3A6IjFweCBzb2xpZCB0cmFuc3BhcmVudCIscG9zaXRpb246ImFic29sdXRlIix0b3A6MCxsZWZ0OjAsYm90dG9tOjAsekluZGV4OjEwMCxiYWNrZ3JvdW5kQ29sb3I6InRyYW5zcGFyZW50IiwiJi1taW4tZGlzYWJsZWQiOntjdXJzb3I6InctcmVzaXplIn0sIiYtbWF4LWRpc2FibGVkIjp7Y3Vyc29yOiJlLXJlc2l6ZSJ9fX0pfTtmdW5jdGlvbiBPbChuKXtyZXR1cm4oMCx1bi5YaikoIkRyYXdlckZvcm0iLGZ1bmN0aW9uKGUpe3ZhciByPSgwLGwuWikoKDAsbC5aKSh7fSxlKSx7fSx7Y29tcG9uZW50Q2xzOiIuIi5jb25jYXQobil9KTtyZXR1cm5bTmwocildfSl9dmFyIERsPVsiY2hpbGRyZW4iLCJ0cmlnZ2VyIiwib25WaXNpYmxlQ2hhbmdlIiwiZHJhd2VyUHJvcHMiLCJvbkZpbmlzaCIsInN1Ym1pdFRpbWVvdXQiLCJ0aXRsZSIsIndpZHRoIiwicmVzaXplIiwib25PcGVuQ2hhbmdlIiwidmlzaWJsZSIsIm9wZW4iXTtmdW5jdGlvbiBCbChuKXt2YXIgZSxyLHQ9bi5jaGlsZHJlbixvPW4udHJpZ2dlcix1PW4ub25WaXNpYmxlQ2hhbmdlLGk9bi5kcmF3ZXJQcm9wcyxjPW4ub25GaW5pc2gsZz1uLnN1Ym1pdFRpbWVvdXQsbT1uLnRpdGxlLFM9bi53aWR0aCxaPW4ucmVzaXplLHk9bi5vbk9wZW5DaGFuZ2UseD1uLnZpc2libGUsaD1uLm9wZW4sST0oMCxxLlopKG4sRGwpOygwLHduLkVUKSghSS5mb290ZXJ8fCEoaSE9bnVsbCYmaS5mb290ZXIpLCJEcmF3ZXJGb3JtIFx1NjYyRlx1NEUwMFx1NEUyQSBQcm9Gb3JtIFx1NzY4NFx1NzI3OVx1NkI4QVx1NUUwM1x1NUM0MFx1RkYwQ1x1NTk4Mlx1Njc5Q1x1NjBGM1x1ODFFQVx1NUI5QVx1NEU0OVx1NjMwOVx1OTRBRVx1RkYwQ1x1OEJGN1x1NEY3Rlx1NzUyOCBzdWJtaXQucmVuZGVyIFx1ODFFQVx1NUI5QVx1NEU0OVx1MzAwMiIpO3ZhciBDPWQudXNlTWVtbyhmdW5jdGlvbigpe3ZhciBiZSxBLEgsaGU9e29uUmVzaXplOmZ1bmN0aW9uKCl7fSxtYXhXaWR0aDooMCxpci5qKSgpP3dpbmRvdy5pbm5lcldpZHRoKi44OnZvaWQgMCxtaW5XaWR0aDozMDB9O3JldHVybiB0eXBlb2YgWj09ImJvb2xlYW4iP1o/aGU6e306KDAsYS5ZKSh7b25SZXNpemU6KGJlPVo9PW51bGw/dm9pZCAwOloub25SZXNpemUpIT09bnVsbCYmYmUhPT12b2lkIDA/YmU6aGUub25SZXNpemUsbWF4V2lkdGg6KEE9Wj09bnVsbD92b2lkIDA6Wi5tYXhXaWR0aCkhPT1udWxsJiZBIT09dm9pZCAwP0E6aGUubWF4V2lkdGgsbWluV2lkdGg6KEg9Wj09bnVsbD92b2lkIDA6Wi5taW5XaWR0aCkhPT1udWxsJiZIIT09dm9pZCAwP0g6aGUubWluV2lkdGh9KX0sW1pdKSxUPSgwLGQudXNlQ29udGV4dCkoZG4uWlAuQ29uZmlnQ29udGV4dCksUj1ULmdldFByZWZpeENscygicHJvLWZvcm0tZHJhd2VyIiksWT1PbChSKSxHPVkud3JhcFNTUixrPVkuaGFzaElkLGllPWZ1bmN0aW9uKEEpe3JldHVybiIiLmNvbmNhdChSLCItIikuY29uY2F0KEEsIiAiKS5jb25jYXQoayl9LHc9KDAsZC51c2VTdGF0ZSkoW10pLHo9KDAsZmUuWikodywyKSxCPXpbMV0sRT0oMCxkLnVzZVN0YXRlKSghMSksUD0oMCxmZS5aKShFLDIpLCQ9UFswXSxKPVBbMV0sRj0oMCxkLnVzZVN0YXRlKSghMSksYj0oMCxmZS5aKShGLDIpLE49YlswXSxLPWJbMV0sWD0oMCxkLnVzZVN0YXRlKShTfHwoWj9DPT1udWxsP3ZvaWQgMDpDLm1pbldpZHRoOjgwMCkpLF89KDAsZmUuWikoWCwyKSxPPV9bMF0sVz1fWzFdLG5lPSgwLHFlLlopKCEheCx7dmFsdWU6aHx8eCxvbkNoYW5nZTp5fHx1fSksZGU9KDAsZmUuWikobmUsMiksY2U9ZGVbMF0sVT1kZVsxXSxhZT0oMCxkLnVzZVJlZikobnVsbCksVj0oMCxkLnVzZUNhbGxiYWNrKShmdW5jdGlvbihiZSl7YWUuY3VycmVudD09PW51bGwmJmJlJiZCKFtdKSxhZS5jdXJyZW50PWJlfSxbXSkscmU9KDAsZC51c2VSZWYpKCksU2U9KDAsZC51c2VDYWxsYmFjaykoZnVuY3Rpb24oKXt2YXIgYmUsQSxILGhlPShiZT0oQT0oSD1JLmZvcm1SZWYpPT09bnVsbHx8SD09PXZvaWQgMD92b2lkIDA6SC5jdXJyZW50KSE9PW51bGwmJkEhPT12b2lkIDA/QTpJLmZvcm0pIT09bnVsbCYmYmUhPT12b2lkIDA/YmU6cmUuY3VycmVudDtoZSYmaSE9PW51bGwmJmkhPT12b2lkIDAmJmkuZGVzdHJveU9uQ2xvc2UmJmhlLnJlc2V0RmllbGRzKCl9LFtpPT1udWxsP3ZvaWQgMDppLmRlc3Ryb3lPbkNsb3NlLEkuZm9ybSxJLmZvcm1SZWZdKTsoMCxkLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtjZSYmKGh8fHgpJiYoeT09bnVsbHx8eSghMCksdT09bnVsbHx8dSghMCkpLE4mJlcoQz09bnVsbD92b2lkIDA6Qy5taW5XaWR0aCl9LFt4LGNlLE5dKSwoMCxkLnVzZUltcGVyYXRpdmVIYW5kbGUpKEkuZm9ybVJlZixmdW5jdGlvbigpe3JldHVybiByZS5jdXJyZW50fSxbcmUuY3VycmVudF0pO3ZhciBGZT0oMCxkLnVzZU1lbW8pKGZ1bmN0aW9uKCl7cmV0dXJuIG8/ZC5jbG9uZUVsZW1lbnQobywoMCxsLlopKCgwLGwuWikoe2tleToidHJpZ2dlciJ9LG8ucHJvcHMpLHt9LHtvbkNsaWNrOmZ1bmN0aW9uKCl7dmFyIGJlPSgwLHNlLlopKCgwLEwuWikoKS5tYXJrKGZ1bmN0aW9uIEgoaGUpe3ZhciB0ZSxYZTtyZXR1cm4oMCxMLlopKCkud3JhcChmdW5jdGlvbihmbil7Zm9yKDs7KXN3aXRjaChmbi5wcmV2PWZuLm5leHQpe2Nhc2UgMDpVKCFjZSksSyghT2JqZWN0LmtleXMoQykpLCh0ZT1vLnByb3BzKT09PW51bGx8fHRlPT09dm9pZCAwfHwoWGU9dGUub25DbGljayk9PT1udWxsfHxYZT09PXZvaWQgMHx8WGUuY2FsbCh0ZSxoZSk7Y2FzZSAzOmNhc2UiZW5kIjpyZXR1cm4gZm4uc3RvcCgpfX0sSCl9KSk7ZnVuY3Rpb24gQShIKXtyZXR1cm4gYmUuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBBfSgpfSkpOm51bGx9LFtVLG8sY2UsSyxOXSksRGU9KDAsZC51c2VNZW1vKShmdW5jdGlvbigpe3ZhciBiZSxBLEgsaGUsdGU7cmV0dXJuIEkuc3VibWl0dGVyPT09ITE/ITE6KDAsQnIuVCkoe3NlYXJjaENvbmZpZzp7c3VibWl0VGV4dDooYmU9KEE9VC5sb2NhbGUpPT09bnVsbHx8QT09PXZvaWQgMHx8KEE9QS5Nb2RhbCk9PT1udWxsfHxBPT09dm9pZCAwP3ZvaWQgMDpBLm9rVGV4dCkhPT1udWxsJiZiZSE9PXZvaWQgMD9iZToiXHU3ODZFXHU4QkE0IixyZXNldFRleHQ6KEg9KGhlPVQubG9jYWxlKT09PW51bGx8fGhlPT09dm9pZCAwfHwoaGU9aGUuTW9kYWwpPT09bnVsbHx8aGU9PT12b2lkIDA/dm9pZCAwOmhlLmNhbmNlbFRleHQpIT09bnVsbCYmSCE9PXZvaWQgMD9IOiJcdTUzRDZcdTZEODgifSxyZXNldEJ1dHRvblByb3BzOntwcmV2ZW50RGVmYXVsdDohMCxkaXNhYmxlZDpnPyQ6dm9pZCAwLG9uQ2xpY2s6ZnVuY3Rpb24oTGUpe3ZhciBmbjtVKCExKSxpPT1udWxsfHwoZm49aS5vbkNsb3NlKT09PW51bGx8fGZuPT09dm9pZCAwfHxmbi5jYWxsKGksTGUpfX19LCh0ZT1JLnN1Ym1pdHRlcikhPT1udWxsJiZ0ZSE9PXZvaWQgMD90ZTp7fSl9LFtJLnN1Ym1pdHRlciwoZT1ULmxvY2FsZSk9PT1udWxsfHxlPT09dm9pZCAwfHwoZT1lLk1vZGFsKT09PW51bGx8fGU9PT12b2lkIDA/dm9pZCAwOmUub2tUZXh0LChyPVQubG9jYWxlKT09PW51bGx8fHI9PT12b2lkIDB8fChyPXIuTW9kYWwpPT09bnVsbHx8cj09PXZvaWQgMD92b2lkIDA6ci5jYW5jZWxUZXh0LGcsJCxVLGldKSx0bj0oMCxkLnVzZUNhbGxiYWNrKShmdW5jdGlvbihiZSxBKXtyZXR1cm4oMCxzLmpzeHMpKHMuRnJhZ21lbnQse2NoaWxkcmVuOltiZSxhZS5jdXJyZW50JiZBPygwLHMuanN4KShkLkZyYWdtZW50LHtjaGlsZHJlbjooMCxRdC5jcmVhdGVQb3J0YWwpKEEsYWUuY3VycmVudCl9LCJzdWJtaXR0ZXIiKTpBXX0pfSxbXSksY249KDAsb3QuSikoZnVuY3Rpb24oKXt2YXIgYmU9KDAsc2UuWikoKDAsTC5aKSgpLm1hcmsoZnVuY3Rpb24gQShIKXt2YXIgaGUsdGUsWGU7cmV0dXJuKDAsTC5aKSgpLndyYXAoZnVuY3Rpb24oZm4pe2Zvcig7Oylzd2l0Y2goZm4ucHJldj1mbi5uZXh0KXtjYXNlIDA6cmV0dXJuIGhlPWM9PW51bGw/dm9pZCAwOmMoSCksZyYmaGUgaW5zdGFuY2VvZiBQcm9taXNlJiYoSighMCksdGU9c2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiBKKCExKX0sZyksaGUuZmluYWxseShmdW5jdGlvbigpe2NsZWFyVGltZW91dCh0ZSksSighMSl9KSksZm4ubmV4dD00LGhlO2Nhc2UgNDpyZXR1cm4gWGU9Zm4uc2VudCxYZSYmVSghMSksZm4uYWJydXB0KCJyZXR1cm4iLFhlKTtjYXNlIDc6Y2FzZSJlbmQiOnJldHVybiBmbi5zdG9wKCl9fSxBKX0pKTtyZXR1cm4gZnVuY3Rpb24oQSl7cmV0dXJuIGJlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCkpLENlPSgwLHNyLlgpKGNlLHUpLENuPSgwLGQudXNlQ2FsbGJhY2spKGZ1bmN0aW9uKGJlKXt2YXIgQSxILGhlPShkb2N1bWVudC5ib2R5Lm9mZnNldFdpZHRofHwxZTMpLShiZS5jbGllbnRYLWRvY3VtZW50LmJvZHkub2Zmc2V0TGVmdCksdGU9KEE9Qz09bnVsbD92b2lkIDA6Qy5taW5XaWR0aCkhPT1udWxsJiZBIT09dm9pZCAwP0E6U3x8ODAwLFhlPShIPUM9PW51bGw/dm9pZCAwOkMubWF4V2lkdGgpIT09bnVsbCYmSCE9PXZvaWQgMD9IOndpbmRvdy5pbm5lcldpZHRoKi44O2lmKGhlPHRlKXtXKHRlKTtyZXR1cm59aWYoaGU+WGUpe1coWGUpO3JldHVybn1XKGhlKX0sW0M9PW51bGw/dm9pZCAwOkMubWF4V2lkdGgsQz09bnVsbD92b2lkIDA6Qy5taW5XaWR0aCxTXSksT249KDAsZC51c2VDYWxsYmFjaykoZnVuY3Rpb24oKXtkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLENuKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIixPbil9LFtDbl0pO3JldHVybiBHKCgwLHMuanN4cykocy5GcmFnbWVudCx7Y2hpbGRyZW46WygwLHMuanN4cykoRmwuWiwoMCxsLlopKCgwLGwuWikoKDAsbC5aKSh7dGl0bGU6bSx3aWR0aDpPfSxpKSxDZSkse30se2FmdGVyT3BlbkNoYW5nZTpmdW5jdGlvbihBKXt2YXIgSDtBfHxTZSgpLGk9PW51bGx8fChIPWkuYWZ0ZXJPcGVuQ2hhbmdlKT09PW51bGx8fEg9PT12b2lkIDB8fEguY2FsbChpLEEpfSxvbkNsb3NlOmZ1bmN0aW9uKEEpe3ZhciBIO2cmJiR8fChVKCExKSxpPT1udWxsfHwoSD1pLm9uQ2xvc2UpPT09bnVsbHx8SD09PXZvaWQgMHx8SC5jYWxsKGksQSkpfSxmb290ZXI6SS5zdWJtaXR0ZXIhPT0hMSYmKDAscy5qc3gpKCJkaXYiLHtyZWY6VixzdHlsZTp7ZGlzcGxheToiZmxleCIsanVzdGlmeUNvbnRlbnQ6ImZsZXgtZW5kIn19KSxjaGlsZHJlbjpbWj8oMCxzLmpzeCkoImRpdiIse2NsYXNzTmFtZTpaZSgpKGllKCJzaWRlYmFyLWRyYWdnZXIiKSxrLCgwLHAuWikoKDAscC5aKSh7fSxpZSgic2lkZWJhci1kcmFnZ2VyLW1pbi1kaXNhYmxlZCIpLE89PT0oQz09bnVsbD92b2lkIDA6Qy5taW5XaWR0aCkpLGllKCJzaWRlYmFyLWRyYWdnZXItbWF4LWRpc2FibGVkIiksTz09PShDPT1udWxsP3ZvaWQgMDpDLm1heFdpZHRoKSkpLG9uTW91c2VEb3duOmZ1bmN0aW9uKEEpe3ZhciBIO0M9PW51bGx8fChIPUMub25SZXNpemUpPT09bnVsbHx8SD09PXZvaWQgMHx8SC5jYWxsKEMpLEEuc3RvcFByb3BhZ2F0aW9uKCksQS5wcmV2ZW50RGVmYXVsdCgpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsQ24pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLE9uKSxLKCEwKX19KTpudWxsLCgwLHMuanN4KShzLkZyYWdtZW50LHtjaGlsZHJlbjooMCxzLmpzeCkoVnQuSSwoMCxsLlopKCgwLGwuWikoe2Zvcm1Db21wb25lbnRUeXBlOiJEcmF3ZXJGb3JtIixsYXlvdXQ6InZlcnRpY2FsIn0sSSkse30se2Zvcm1SZWY6cmUsb25Jbml0OmZ1bmN0aW9uKEEsSCl7dmFyIGhlO0kuZm9ybVJlZiYmKEkuZm9ybVJlZi5jdXJyZW50PUgpLEk9PW51bGx8fChoZT1JLm9uSW5pdCk9PT1udWxsfHxoZT09PXZvaWQgMHx8aGUuY2FsbChJLEEsSCkscmUuY3VycmVudD1IfSxzdWJtaXR0ZXI6RGUsb25GaW5pc2g6ZnVuY3Rpb24oKXt2YXIgYmU9KDAsc2UuWikoKDAsTC5aKSgpLm1hcmsoZnVuY3Rpb24gQShIKXt2YXIgaGU7cmV0dXJuKDAsTC5aKSgpLndyYXAoZnVuY3Rpb24oWGUpe2Zvcig7Oylzd2l0Y2goWGUucHJldj1YZS5uZXh0KXtjYXNlIDA6cmV0dXJuIFhlLm5leHQ9MixjbihIKTtjYXNlIDI6cmV0dXJuIGhlPVhlLnNlbnQsWGUuYWJydXB0KCJyZXR1cm4iLGhlKTtjYXNlIDQ6Y2FzZSJlbmQiOnJldHVybiBYZS5zdG9wKCl9fSxBKX0pKTtyZXR1cm4gZnVuY3Rpb24oQSl7cmV0dXJuIGJlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksY29udGVudFJlbmRlcjp0bixjaGlsZHJlbjp0fSkpfSldfSkpLEZlXX0pKX12YXIgQWw9digyNjAyNCksTGw9digyMTIyKSxLbD12KDEzMzYpLHpsPWZ1bmN0aW9uKGUpe3JldHVybigwLHAuWikoe30sZS5jb21wb25lbnRDbHMse2xpbmVIZWlnaHQ6IjMwcHgiLCImOjpiZWZvcmUiOntkaXNwbGF5OiJibG9jayIsaGVpZ2h0OjAsdmlzaWJpbGl0eToiaGlkZGVuIixjb250ZW50OiInLicifSwiJi1zbWFsbCI6e2xpbmVIZWlnaHQ6ZS5saW5lSGVpZ2h0fSwiJi1jb250YWluZXIiOntkaXNwbGF5OiJmbGV4IixmbGV4V3JhcDoid3JhcCIsZ2FwOmUubWFyZ2luWFN9LCImLWl0ZW0iOigwLHAuWikoe3doaXRlU3BhY2U6Im5vd3JhcCJ9LCIiLmNvbmNhdChlLmFudENscywiLWZvcm0taXRlbSIpLHttYXJnaW5CbG9jazowfSksIiYtbGluZSI6e21pbldpZHRoOiIxOThweCJ9LCImLWxpbmU6bm90KDpmaXJzdC1jaGlsZCkiOnttYXJnaW5CbG9ja1N0YXJ0OiIxNnB4IixtYXJnaW5CbG9ja0VuZDo4fSwiJi1jb2xsYXBzZS1pY29uIjp7d2lkdGg6ZS5jb250cm9sSGVpZ2h0LGhlaWdodDplLmNvbnRyb2xIZWlnaHQsYm9yZGVyUmFkaXVzOiI1MCUiLGRpc3BsYXk6ImZsZXgiLGFsaWduSXRlbXM6ImNlbnRlciIsanVzdGlmeUNvbnRlbnQ6ImNlbnRlciJ9LCImLWVmZmVjdGl2ZSI6KDAscC5aKSh7fSwiIi5jb25jYXQoZS5jb21wb25lbnRDbHMsIi1jb2xsYXBzZS1pY29uIikse2JhY2tncm91bmRDb2xvcjplLmNvbG9yQmdUZXh0SG92ZXJ9KX0pfTtmdW5jdGlvbiBXbChuKXtyZXR1cm4oMCx1bi5YaikoIkxpZ2h0RmlsdGVyIixmdW5jdGlvbihlKXt2YXIgcj0oMCxsLlopKCgwLGwuWikoe30sZSkse30se2NvbXBvbmVudENsczoiLiIuY29uY2F0KG4pfSk7cmV0dXJuW3psKHIpXX0pfXZhciBIbD1bInNpemUiLCJjb2xsYXBzZSIsImNvbGxhcHNlTGFiZWwiLCJpbml0aWFsVmFsdWVzIiwib25WYWx1ZXNDaGFuZ2UiLCJmb3JtIiwicGxhY2VtZW50IiwiZm9ybVJlZiIsImJvcmRlcmVkIiwiaWdub3JlUnVsZXMiLCJmb290ZXJSZW5kZXIiXSxWbD1mdW5jdGlvbihlKXt2YXIgcj1lLml0ZW1zLHQ9ZS5wcmVmaXhDbHMsbz1lLnNpemUsdT1vPT09dm9pZCAwPyJtaWRkbGUiOm8saT1lLmNvbGxhcHNlLGM9ZS5jb2xsYXBzZUxhYmVsLGc9ZS5vblZhbHVlc0NoYW5nZSxtPWUuYm9yZGVyZWQsUz1lLnZhbHVlcyxaPWUuZm9vdGVyUmVuZGVyLHk9ZS5wbGFjZW1lbnQseD0oMCx3ZS5ZQikoKSxoPSIiLmNvbmNhdCh0LCItbGlnaHQtZmlsdGVyIiksST1XbChoKSxDPUkud3JhcFNTUixUPUkuaGFzaElkLFI9KDAsZC51c2VTdGF0ZSkoITEpLFk9KDAsZmUuWikoUiwyKSxHPVlbMF0saz1ZWzFdLGllPSgwLGQudXNlU3RhdGUpKGZ1bmN0aW9uKCl7cmV0dXJuKDAsbC5aKSh7fSxTKX0pLHc9KDAsZmUuWikoaWUsMiksej13WzBdLEI9d1sxXTsoMCxkLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtCKCgwLGwuWikoe30sUykpfSxbU10pO3ZhciBFPSgwLGQudXNlTWVtbykoZnVuY3Rpb24oKXt2YXIgRj1bXSxiPVtdO3JldHVybiByLmZvckVhY2goZnVuY3Rpb24oTil7dmFyIEs9Ti5wcm9wc3x8e30sWD1LLnNlY29uZGFyeTtYfHxpP0YucHVzaChOKTpiLnB1c2goTil9KSx7Y29sbGFwc2VJdGVtczpGLG91dHNpZGVJdGVtczpifX0sW2UuaXRlbXNdKSxQPUUuY29sbGFwc2VJdGVtcywkPUUub3V0c2lkZUl0ZW1zLEo9ZnVuY3Rpb24oKXtyZXR1cm4gY3x8KGk/KDAscy5qc3gpKEFsLlose2NsYXNzTmFtZToiIi5jb25jYXQoaCwiLWNvbGxhcHNlLWljb24gIikuY29uY2F0KFQpLnRyaW0oKX0pOigwLHMuanN4KShMbC5RLHtzaXplOnUsbGFiZWw6eC5nZXRNZXNzYWdlKCJmb3JtLmxpZ2h0RmlsdGVyLm1vcmUiLCJcdTY2RjRcdTU5MUFcdTdCNUJcdTkwMDkiKX0pKX07cmV0dXJuIEMoKDAscy5qc3gpKCJkaXYiLHtjbGFzc05hbWU6WmUoKShoLFQsIiIuY29uY2F0KGgsIi0iKS5jb25jYXQodSksKDAscC5aKSh7fSwiIi5jb25jYXQoaCwiLWVmZmVjdGl2ZSIpLE9iamVjdC5rZXlzKFMpLnNvbWUoZnVuY3Rpb24oRil7cmV0dXJuIEFycmF5LmlzQXJyYXkoU1tGXSk/U1tGXS5sZW5ndGg+MDpTW0ZdfSkpKSxjaGlsZHJlbjooMCxzLmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KGgsIi1jb250YWluZXIgIikuY29uY2F0KFQpLnRyaW0oKSxjaGlsZHJlbjpbJC5tYXAoZnVuY3Rpb24oRixiKXtpZighKEYhPW51bGwmJkYucHJvcHMpKXJldHVybiBGO3ZhciBOPUYua2V5LEs9KEY9PW51bGw/dm9pZCAwOkYucHJvcHMpfHx7fSxYPUsuZmllbGRQcm9wcyxfPVghPW51bGwmJlgucGxhY2VtZW50P1g9PW51bGw/dm9pZCAwOlgucGxhY2VtZW50Onk7cmV0dXJuKDAscy5qc3gpKCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KGgsIi1pdGVtICIpLmNvbmNhdChUKS50cmltKCksY2hpbGRyZW46ZC5jbG9uZUVsZW1lbnQoRix7ZmllbGRQcm9wczooMCxsLlopKCgwLGwuWikoe30sRi5wcm9wcy5maWVsZFByb3BzKSx7fSx7cGxhY2VtZW50Ol99KSxwcm9GaWVsZFByb3BzOigwLGwuWikoKDAsbC5aKSh7fSxGLnByb3BzLnByb0ZpZWxkUHJvcHMpLHt9LHtsaWdodDohMCxsYWJlbDpGLnByb3BzLmxhYmVsLGJvcmRlcmVkOm19KSxib3JkZXJlZDptfSl9LE58fGIpfSksUC5sZW5ndGg/KDAscy5qc3gpKCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KGgsIi1pdGVtICIpLmNvbmNhdChUKS50cmltKCksY2hpbGRyZW46KDAscy5qc3gpKEtsLk0se3BhZGRpbmc6MjQsb3BlbjpHLG9uT3BlbkNoYW5nZTpmdW5jdGlvbihiKXtrKGIpfSxwbGFjZW1lbnQ6eSxsYWJlbDpKKCksZm9vdGVyUmVuZGVyOlosZm9vdGVyOntvbkNvbmZpcm06ZnVuY3Rpb24oKXtnKCgwLGwuWikoe30seikpLGsoITEpfSxvbkNsZWFyOmZ1bmN0aW9uKCl7dmFyIGI9e307UC5mb3JFYWNoKGZ1bmN0aW9uKE4pe3ZhciBLPU4ucHJvcHMubmFtZTtiW0tdPXZvaWQgMH0pLGcoYil9fSxjaGlsZHJlbjpQLm1hcChmdW5jdGlvbihGKXt2YXIgYj1GLmtleSxOPUYucHJvcHMsSz1OLm5hbWUsWD1OLmZpZWxkUHJvcHMsXz0oMCxsLlopKCgwLGwuWikoe30sWCkse30se29uQ2hhbmdlOmZ1bmN0aW9uKG5lKXtyZXR1cm4gQigoMCxsLlopKCgwLGwuWikoe30seikse30sKDAscC5aKSh7fSxLLG5lIT1udWxsJiZuZS50YXJnZXQ/bmUudGFyZ2V0LnZhbHVlOm5lKSkpLCExfX0pO3ouaGFzT3duUHJvcGVydHkoSykmJihfW0YucHJvcHMudmFsdWVQcm9wTmFtZXx8InZhbHVlIl09eltLXSk7dmFyIE89WCE9bnVsbCYmWC5wbGFjZW1lbnQ/WD09bnVsbD92b2lkIDA6WC5wbGFjZW1lbnQ6eTtyZXR1cm4oMCxzLmpzeCkoImRpdiIse2NsYXNzTmFtZToiIi5jb25jYXQoaCwiLWxpbmUgIikuY29uY2F0KFQpLnRyaW0oKSxjaGlsZHJlbjpkLmNsb25lRWxlbWVudChGLHtmaWVsZFByb3BzOigwLGwuWikoKDAsbC5aKSh7fSxfKSx7fSx7cGxhY2VtZW50Ok99KX0pfSxiKX0pfSl9LCJtb3JlIik6bnVsbF19KX0pKX07ZnVuY3Rpb24gVWwobil7dmFyIGU9bi5zaXplLHI9bi5jb2xsYXBzZSx0PW4uY29sbGFwc2VMYWJlbCxvPW4uaW5pdGlhbFZhbHVlcyx1PW4ub25WYWx1ZXNDaGFuZ2UsaT1uLmZvcm0sYz1uLnBsYWNlbWVudCxnPW4uZm9ybVJlZixtPW4uYm9yZGVyZWQsUz1uLmlnbm9yZVJ1bGVzLFo9bi5mb290ZXJSZW5kZXIseT0oMCxxLlopKG4sSGwpLHg9KDAsZC51c2VDb250ZXh0KShkbi5aUC5Db25maWdDb250ZXh0KSxoPXguZ2V0UHJlZml4Q2xzLEk9aCgicHJvLWZvcm0iKSxDPSgwLGQudXNlU3RhdGUpKGZ1bmN0aW9uKCl7cmV0dXJuKDAsbC5aKSh7fSxvKX0pLFQ9KDAsZmUuWikoQywyKSxSPVRbMF0sWT1UWzFdLEc9KDAsZC51c2VSZWYpKCk7cmV0dXJuKDAsZC51c2VJbXBlcmF0aXZlSGFuZGxlKShnLGZ1bmN0aW9uKCl7cmV0dXJuIEcuY3VycmVudH0sW0cuY3VycmVudF0pLCgwLHMuanN4KShWdC5JLCgwLGwuWikoKDAsbC5aKSh7c2l6ZTplLGluaXRpYWxWYWx1ZXM6byxmb3JtOmksY29udGVudFJlbmRlcjpmdW5jdGlvbihpZSl7cmV0dXJuKDAscy5qc3gpKFZsLHtwcmVmaXhDbHM6SSxpdGVtczppZT09bnVsbD92b2lkIDA6aWUuZmxhdE1hcChmdW5jdGlvbih3KXt2YXIgejtyZXR1cm4hd3x8ISh3IT1udWxsJiZ3LnR5cGUpP3c6KHc9PW51bGx8fCh6PXcudHlwZSk9PT1udWxsfHx6PT09dm9pZCAwP3ZvaWQgMDp6LmRpc3BsYXlOYW1lKT09PSJQcm9Gb3JtLUdyb3VwIj93LnByb3BzLmNoaWxkcmVuOnd9KSxzaXplOmUsYm9yZGVyZWQ6bSxjb2xsYXBzZTpyLGNvbGxhcHNlTGFiZWw6dCxwbGFjZW1lbnQ6Yyx2YWx1ZXM6Unx8e30sZm9vdGVyUmVuZGVyOlosb25WYWx1ZXNDaGFuZ2U6ZnVuY3Rpb24oeil7dmFyIEIsRSxQPSgwLGwuWikoKDAsbC5aKSh7fSxSKSx6KTtZKFApLChCPUcuY3VycmVudCk9PT1udWxsfHxCPT09dm9pZCAwfHxCLnNldEZpZWxkc1ZhbHVlKFApLChFPUcuY3VycmVudCk9PT1udWxsfHxFPT09dm9pZCAwfHxFLnN1Ym1pdCgpLHUmJnUoeixQKX19KX0sZm9ybVJlZjpHLGZvcm1JdGVtUHJvcHM6e2NvbG9uOiExLGxhYmVsQWxpZ246ImxlZnQifSxmaWVsZFByb3BzOntzdHlsZTp7d2lkdGg6dm9pZCAwfX19LCgwLHBuLlopKHksWyJsYWJlbFdpZHRoIl0pKSx7fSx7b25WYWx1ZXNDaGFuZ2U6ZnVuY3Rpb24oaWUsdyl7dmFyIHo7WSh3KSx1PT1udWxsfHx1KGllLHcpLCh6PUcuY3VycmVudCk9PT1udWxsfHx6PT09dm9pZCAwfHx6LnN1Ym1pdCgpfX0pKX12YXIgWGw9digxNzc4OCksR2w9WyJjaGlsZHJlbiIsInRyaWdnZXIiLCJvblZpc2libGVDaGFuZ2UiLCJvbk9wZW5DaGFuZ2UiLCJtb2RhbFByb3BzIiwib25GaW5pc2giLCJzdWJtaXRUaW1lb3V0IiwidGl0bGUiLCJ3aWR0aCIsInZpc2libGUiLCJvcGVuIl07ZnVuY3Rpb24gSmwobil7dmFyIGUscix0PW4uY2hpbGRyZW4sbz1uLnRyaWdnZXIsdT1uLm9uVmlzaWJsZUNoYW5nZSxpPW4ub25PcGVuQ2hhbmdlLGM9bi5tb2RhbFByb3BzLGc9bi5vbkZpbmlzaCxtPW4uc3VibWl0VGltZW91dCxTPW4udGl0bGUsWj1uLndpZHRoLHk9bi52aXNpYmxlLHg9bi5vcGVuLGg9KDAscS5aKShuLEdsKTsoMCx3bi5FVCkoIWguZm9vdGVyfHwhKGMhPW51bGwmJmMuZm9vdGVyKSwiTW9kYWxGb3JtIFx1NjYyRlx1NEUwMFx1NEUyQSBQcm9Gb3JtIFx1NzY4NFx1NzI3OVx1NkI4QVx1NUUwM1x1NUM0MFx1RkYwQ1x1NTk4Mlx1Njc5Q1x1NjBGM1x1ODFFQVx1NUI5QVx1NEU0OVx1NjMwOVx1OTRBRVx1RkYwQ1x1OEJGN1x1NEY3Rlx1NzUyOCBzdWJtaXQucmVuZGVyIFx1ODFFQVx1NUI5QVx1NEU0OVx1MzAwMiIpO3ZhciBJPSgwLGQudXNlQ29udGV4dCkoZG4uWlAuQ29uZmlnQ29udGV4dCksQz0oMCxkLnVzZVN0YXRlKShbXSksVD0oMCxmZS5aKShDLDIpLFI9VFsxXSxZPSgwLGQudXNlU3RhdGUpKCExKSxHPSgwLGZlLlopKFksMiksaz1HWzBdLGllPUdbMV0sdz0oMCxxZS5aKSghIXkse3ZhbHVlOnh8fHksb25DaGFuZ2U6aXx8dX0pLHo9KDAsZmUuWikodywyKSxCPXpbMF0sRT16WzFdLFA9KDAsZC51c2VSZWYpKG51bGwpLCQ9KDAsZC51c2VDYWxsYmFjaykoZnVuY3Rpb24oTyl7UC5jdXJyZW50PT09bnVsbCYmTyYmUihbXSksUC5jdXJyZW50PU99LFtdKSxKPSgwLGQudXNlUmVmKSgpLEY9KDAsZC51c2VDYWxsYmFjaykoZnVuY3Rpb24oKXt2YXIgTyxXLG5lLGRlPShPPShXPWguZm9ybSkhPT1udWxsJiZXIT09dm9pZCAwP1c6KG5lPWguZm9ybVJlZik9PT1udWxsfHxuZT09PXZvaWQgMD92b2lkIDA6bmUuY3VycmVudCkhPT1udWxsJiZPIT09dm9pZCAwP086Si5jdXJyZW50O2RlJiZjIT09bnVsbCYmYyE9PXZvaWQgMCYmYy5kZXN0cm95T25DbG9zZSYmZGUucmVzZXRGaWVsZHMoKX0sW2M9PW51bGw/dm9pZCAwOmMuZGVzdHJveU9uQ2xvc2UsaC5mb3JtLGguZm9ybVJlZl0pOygwLGQudXNlSW1wZXJhdGl2ZUhhbmRsZSkoaC5mb3JtUmVmLGZ1bmN0aW9uKCl7cmV0dXJuIEouY3VycmVudH0sW0ouY3VycmVudF0pLCgwLGQudXNlRWZmZWN0KShmdW5jdGlvbigpeyh4fHx5KSYmKGk9PW51bGx8fGkoITApLHU9PW51bGx8fHUoITApKX0sW3kseF0pO3ZhciBiPSgwLGQudXNlTWVtbykoZnVuY3Rpb24oKXtyZXR1cm4gbz9kLmNsb25lRWxlbWVudChvLCgwLGwuWikoKDAsbC5aKSh7a2V5OiJ0cmlnZ2VyIn0sby5wcm9wcykse30se29uQ2xpY2s6ZnVuY3Rpb24oKXt2YXIgTz0oMCxzZS5aKSgoMCxMLlopKCkubWFyayhmdW5jdGlvbiBuZShkZSl7dmFyIGNlLFU7cmV0dXJuKDAsTC5aKSgpLndyYXAoZnVuY3Rpb24oVil7Zm9yKDs7KXN3aXRjaChWLnByZXY9Vi5uZXh0KXtjYXNlIDA6RSghQiksKGNlPW8ucHJvcHMpPT09bnVsbHx8Y2U9PT12b2lkIDB8fChVPWNlLm9uQ2xpY2spPT09bnVsbHx8VT09PXZvaWQgMHx8VS5jYWxsKGNlLGRlKTtjYXNlIDI6Y2FzZSJlbmQiOnJldHVybiBWLnN0b3AoKX19LG5lKX0pKTtmdW5jdGlvbiBXKG5lKXtyZXR1cm4gTy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIFd9KCl9KSk6bnVsbH0sW0UsbyxCXSksTj0oMCxkLnVzZU1lbW8pKGZ1bmN0aW9uKCl7dmFyIE8sVyxuZSxkZSxjZSxVLGFlO3JldHVybiBoLnN1Ym1pdHRlcj09PSExPyExOigwLEJyLlQpKHtzZWFyY2hDb25maWc6e3N1Ym1pdFRleHQ6KE89KFc9Yz09bnVsbD92b2lkIDA6Yy5va1RleHQpIT09bnVsbCYmVyE9PXZvaWQgMD9XOihuZT1JLmxvY2FsZSk9PT1udWxsfHxuZT09PXZvaWQgMHx8KG5lPW5lLk1vZGFsKT09PW51bGx8fG5lPT09dm9pZCAwP3ZvaWQgMDpuZS5va1RleHQpIT09bnVsbCYmTyE9PXZvaWQgMD9POiJcdTc4NkVcdThCQTQiLHJlc2V0VGV4dDooZGU9KGNlPWM9PW51bGw/dm9pZCAwOmMuY2FuY2VsVGV4dCkhPT1udWxsJiZjZSE9PXZvaWQgMD9jZTooVT1JLmxvY2FsZSk9PT1udWxsfHxVPT09dm9pZCAwfHwoVT1VLk1vZGFsKT09PW51bGx8fFU9PT12b2lkIDA/dm9pZCAwOlUuY2FuY2VsVGV4dCkhPT1udWxsJiZkZSE9PXZvaWQgMD9kZToiXHU1M0Q2XHU2RDg4In0scmVzZXRCdXR0b25Qcm9wczp7cHJldmVudERlZmF1bHQ6ITAsZGlzYWJsZWQ6bT9rOnZvaWQgMCxvbkNsaWNrOmZ1bmN0aW9uKHJlKXt2YXIgU2U7RSghMSksYz09bnVsbHx8KFNlPWMub25DYW5jZWwpPT09bnVsbHx8U2U9PT12b2lkIDB8fFNlLmNhbGwoYyxyZSl9fX0sKGFlPWguc3VibWl0dGVyKSE9PW51bGwmJmFlIT09dm9pZCAwP2FlOnt9KX0sWyhlPUkubG9jYWxlKT09PW51bGx8fGU9PT12b2lkIDB8fChlPWUuTW9kYWwpPT09bnVsbHx8ZT09PXZvaWQgMD92b2lkIDA6ZS5jYW5jZWxUZXh0LChyPUkubG9jYWxlKT09PW51bGx8fHI9PT12b2lkIDB8fChyPXIuTW9kYWwpPT09bnVsbHx8cj09PXZvaWQgMD92b2lkIDA6ci5va1RleHQsYyxoLnN1Ym1pdHRlcixFLGssbV0pLEs9KDAsZC51c2VDYWxsYmFjaykoZnVuY3Rpb24oTyxXKXtyZXR1cm4oMCxzLmpzeHMpKHMuRnJhZ21lbnQse2NoaWxkcmVuOltPLFAuY3VycmVudCYmVz8oMCxzLmpzeCkoZC5GcmFnbWVudCx7Y2hpbGRyZW46KDAsUXQuY3JlYXRlUG9ydGFsKShXLFAuY3VycmVudCl9LCJzdWJtaXR0ZXIiKTpXXX0pfSxbXSksWD0oMCxkLnVzZUNhbGxiYWNrKShmdW5jdGlvbigpe3ZhciBPPSgwLHNlLlopKCgwLEwuWikoKS5tYXJrKGZ1bmN0aW9uIFcobmUpe3ZhciBkZSxjZSxVO3JldHVybigwLEwuWikoKS53cmFwKGZ1bmN0aW9uKFYpe2Zvcig7Oylzd2l0Y2goVi5wcmV2PVYubmV4dCl7Y2FzZSAwOnJldHVybiBkZT1nPT1udWxsP3ZvaWQgMDpnKG5lKSxtJiZkZSBpbnN0YW5jZW9mIFByb21pc2UmJihpZSghMCksY2U9c2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiBpZSghMSl9LG0pLGRlLmZpbmFsbHkoZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQoY2UpLGllKCExKX0pKSxWLm5leHQ9NCxkZTtjYXNlIDQ6cmV0dXJuIFU9Vi5zZW50LFUmJkUoITEpLFYuYWJydXB0KCJyZXR1cm4iLFUpO2Nhc2UgNzpjYXNlImVuZCI6cmV0dXJuIFYuc3RvcCgpfX0sVyl9KSk7cmV0dXJuIGZ1bmN0aW9uKFcpe3JldHVybiBPLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksW2csRSxtXSksXz0oMCxzci5YKShCKTtyZXR1cm4oMCxzLmpzeHMpKHMuRnJhZ21lbnQse2NoaWxkcmVuOlsoMCxzLmpzeCkoWGwuWiwoMCxsLlopKCgwLGwuWikoKDAsbC5aKSh7dGl0bGU6Uyx3aWR0aDpafHw4MDB9LGMpLF8pLHt9LHtvbkNhbmNlbDpmdW5jdGlvbihXKXt2YXIgbmU7bSYma3x8KEUoITEpLGM9PW51bGx8fChuZT1jLm9uQ2FuY2VsKT09PW51bGx8fG5lPT09dm9pZCAwfHxuZS5jYWxsKGMsVykpfSxhZnRlckNsb3NlOmZ1bmN0aW9uKCl7dmFyIFc7RigpLEImJkUoITEpLGM9PW51bGx8fChXPWMuYWZ0ZXJDbG9zZSk9PT1udWxsfHxXPT09dm9pZCAwfHxXLmNhbGwoYyl9LGZvb3RlcjpoLnN1Ym1pdHRlciE9PSExPygwLHMuanN4KSgiZGl2Iix7cmVmOiQsc3R5bGU6e2Rpc3BsYXk6ImZsZXgiLGp1c3RpZnlDb250ZW50OiJmbGV4LWVuZCJ9fSk6bnVsbCxjaGlsZHJlbjooMCxzLmpzeCkoVnQuSSwoMCxsLlopKCgwLGwuWikoe2Zvcm1Db21wb25lbnRUeXBlOiJNb2RhbEZvcm0iLGxheW91dDoidmVydGljYWwifSxoKSx7fSx7b25Jbml0OmZ1bmN0aW9uKFcsbmUpe3ZhciBkZTtoLmZvcm1SZWYmJihoLmZvcm1SZWYuY3VycmVudD1uZSksaD09bnVsbHx8KGRlPWgub25Jbml0KT09PW51bGx8fGRlPT09dm9pZCAwfHxkZS5jYWxsKGgsVyxuZSksSi5jdXJyZW50PW5lfSxmb3JtUmVmOkosc3VibWl0dGVyOk4sb25GaW5pc2g6ZnVuY3Rpb24oKXt2YXIgTz0oMCxzZS5aKSgoMCxMLlopKCkubWFyayhmdW5jdGlvbiBXKG5lKXt2YXIgZGU7cmV0dXJuKDAsTC5aKSgpLndyYXAoZnVuY3Rpb24oVSl7Zm9yKDs7KXN3aXRjaChVLnByZXY9VS5uZXh0KXtjYXNlIDA6cmV0dXJuIFUubmV4dD0yLFgobmUpO2Nhc2UgMjpyZXR1cm4gZGU9VS5zZW50LFUuYWJydXB0KCJyZXR1cm4iLGRlKTtjYXNlIDQ6Y2FzZSJlbmQiOnJldHVybiBVLnN0b3AoKX19LFcpfSkpO3JldHVybiBmdW5jdGlvbihXKXtyZXR1cm4gTy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLGNvbnRlbnRSZW5kZXI6SyxjaGlsZHJlbjp0fSkpfSkpLGJdfSl9dmFyIHF0PXYoOTcyNjkpLEFyPXYoNDg1NTUpLGNyPXYoODA4ODIpLExyPWZ1bmN0aW9uKGUpe2lmKGUmJmUhPT0hMClyZXR1cm4gZX0sWWw9ZnVuY3Rpb24oZSxyLHQsbyl7cmV0dXJuIGU/KDAscy5qc3hzKShzLkZyYWdtZW50LHtjaGlsZHJlbjpbdC5nZXRNZXNzYWdlKCJ0YWJsZUZvcm0uY29sbGFwc2VkIiwiXHU1QzU1XHU1RjAwIiksbyYmIigiLmNvbmNhdChvLCIpIiksKDAscy5qc3gpKGNyLlose3N0eWxlOnttYXJnaW5JbmxpbmVTdGFydDoiMC41ZW0iLHRyYW5zaXRpb246IjAuM3MgYWxsIix0cmFuc2Zvcm06InJvdGF0ZSgiLmNvbmNhdChlPzA6LjUsInR1cm4pIil9fSldfSk6KDAscy5qc3hzKShzLkZyYWdtZW50LHtjaGlsZHJlbjpbdC5nZXRNZXNzYWdlKCJ0YWJsZUZvcm0uZXhwYW5kIiwiXHU2NTM2XHU4RDc3IiksKDAscy5qc3gpKGNyLlose3N0eWxlOnttYXJnaW5JbmxpbmVTdGFydDoiMC41ZW0iLHRyYW5zaXRpb246IjAuM3MgYWxsIix0cmFuc2Zvcm06InJvdGF0ZSgiLmNvbmNhdChlPzA6LjUsInR1cm4pIil9fSldfSl9LFFsPWZ1bmN0aW9uKGUpe3ZhciByPWUuc2V0Q29sbGFwc2VkLHQ9ZS5jb2xsYXBzZWQsbz10PT09dm9pZCAwPyExOnQsdT1lLnN1Ym1pdHRlcixpPWUuc3R5bGUsYz1lLmhpZGRlbk51bSxnPSgwLGQudXNlQ29udGV4dCkoZG4uWlAuQ29uZmlnQ29udGV4dCksbT1nLmdldFByZWZpeENscyxTPSgwLHdlLllCKSgpLFo9KDAsZC51c2VDb250ZXh0KSh3ZS5MXykseT1aLmhhc2hJZCx4PUxyKGUuY29sbGFwc2VSZW5kZXIpfHxZbDtyZXR1cm4oMCxzLmpzeHMpKE90Llose3N0eWxlOmksc2l6ZToxNixjaGlsZHJlbjpbdSxlLmNvbGxhcHNlUmVuZGVyIT09ITEmJigwLHMuanN4KSgiYSIse2NsYXNzTmFtZToiIi5jb25jYXQobSgicHJvLXF1ZXJ5LWZpbHRlci1jb2xsYXBzZS1idXR0b24iKSwiICIpLmNvbmNhdCh5KS50cmltKCksb25DbGljazpmdW5jdGlvbigpe3JldHVybiByKCFvKX0sY2hpbGRyZW46eD09bnVsbD92b2lkIDA6eChvLGUsUyxjKX0pXX0pfSxxbD1RbCxrbD1mdW5jdGlvbihlKXtyZXR1cm4oMCxwLlopKHt9LGUuY29tcG9uZW50Q2xzLCgwLHAuWikoKDAscC5aKSgoMCxwLlopKCgwLHAuWikoeyImJiI6e3BhZGRpbmc6MjR9fSwiIi5jb25jYXQoZS5hbnRDbHMsIi1mb3JtLWl0ZW0iKSx7bWFyZ2luQmxvY2s6MH0pLCIiLmNvbmNhdChlLnByb0NvbXBvbmVudHNDbHMsIi1mb3JtLWdyb3VwLXRpdGxlIikse21hcmdpbkJsb2NrOjB9KSwiJi1yb3ciLHtyb3dHYXA6MjQsIiYtc3BsaXQiOigwLHAuWikoKDAscC5aKSh7fSwiIi5jb25jYXQoZS5wcm9Db21wb25lbnRzQ2xzLCItZm9ybS1ncm91cCIpLHtkaXNwbGF5OiJmbGV4IixhbGlnbkl0ZW1zOiJjZW50ZXIiLGdhcDplLm1hcmdpblhTfSksIiY6bGFzdC1jaGlsZCIse21hcmdpbkJsb2NrRW5kOjEyfSksIiYtc3BsaXQtbGluZSI6eyImOmFmdGVyIjp7cG9zaXRpb246ImFic29sdXRlIix3aWR0aDoiMTAwJSIsY29udGVudDonIiInLGhlaWdodDoxLGluc2V0QmxvY2tFbmQ6LTEyLGJvcmRlckJsb2NrRW5kOiIxcHggZGFzaGVkICIuY29uY2F0KGUuY29sb3JTcGxpdCl9fX0pLCImLWNvbGxhcHNlLWJ1dHRvbiIse2Rpc3BsYXk6ImZsZXgiLGFsaWduSXRlbXM6ImNlbnRlciIsY29sb3I6ZS5jb2xvclByaW1hcnl9KSl9O2Z1bmN0aW9uIF9sKG4pe3JldHVybigwLHVuLlhqKSgiUXVlcnlGaWx0ZXIiLGZ1bmN0aW9uKGUpe3ZhciByPSgwLGwuWikoKDAsbC5aKSh7fSxlKSx7fSx7Y29tcG9uZW50Q2xzOiIuIi5jb25jYXQobil9KTtyZXR1cm5ba2wocildfSl9dmFyIGVvPVsiY29sbGFwc2VkIiwibGF5b3V0IiwiZGVmYXVsdENvbGxhcHNlZCIsImRlZmF1bHRDb2xzTnVtYmVyIiwiZGVmYXVsdEZvcm1JdGVtc051bWJlciIsInNwYW4iLCJzZWFyY2hHdXR0ZXIiLCJzZWFyY2hUZXh0IiwicmVzZXRUZXh0Iiwib3B0aW9uUmVuZGVyIiwiY29sbGFwc2VSZW5kZXIiLCJvblJlc2V0Iiwib25Db2xsYXBzZSIsImxhYmVsV2lkdGgiLCJzdHlsZSIsInNwbGl0IiwicHJlc2VydmUiLCJpZ25vcmVSdWxlcyIsInNob3dIaWRkZW5OdW0iLCJzdWJtaXR0ZXJDb2xTcGFuUHJvcHMiXSxCdCxubz17eHM6NTEzLHNtOjUxMyxtZDo3ODUsbGc6OTkyLHhsOjEwNTcseHhsOjEvMH0sS3I9e3ZlcnRpY2FsOltbNTEzLDEsInZlcnRpY2FsIl0sWzc4NSwyLCJ2ZXJ0aWNhbCJdLFsxMDU3LDMsInZlcnRpY2FsIl0sWzEvMCw0LCJ2ZXJ0aWNhbCJdXSxkZWZhdWx0OltbNTEzLDEsInZlcnRpY2FsIl0sWzcwMSwyLCJ2ZXJ0aWNhbCJdLFsxMDYyLDMsImhvcml6b250YWwiXSxbMTM1MiwzLCJob3Jpem9udGFsIl0sWzEvMCw0LCJob3Jpem9udGFsIl1dfSx0bz1mdW5jdGlvbihlLHIsdCl7aWYodCYmdHlwZW9mIHQ9PSJudW1iZXIiKXJldHVybntzcGFuOnQsbGF5b3V0OmV9O3ZhciBvPXQ/WyJ4cyIsInNtIiwibWQiLCJsZyIsInhsIiwieHhsIl0ubWFwKGZ1bmN0aW9uKGkpe3JldHVybltub1tpXSwyNC90W2ldLCJob3Jpem9udGFsIl19KTpLcltlfHwiZGVmYXVsdCJdLHU9KG98fEtyLmRlZmF1bHQpLmZpbmQoZnVuY3Rpb24oaSl7cmV0dXJuIHI8aVswXSsxNn0pO3JldHVybiB1P3tzcGFuOjI0L3VbMV0sbGF5b3V0OnU9PW51bGw/dm9pZCAwOnVbMl19OntzcGFuOjgsbGF5b3V0OiJob3Jpem9udGFsIn19LHJvPWZ1bmN0aW9uKGUscil7cmV0dXJuIGU9PW51bGw/dm9pZCAwOmUuZmxhdE1hcChmdW5jdGlvbih0KXt2YXIgbyx1O2lmKCh0PT1udWxsfHwobz10LnR5cGUpPT09bnVsbHx8bz09PXZvaWQgMD92b2lkIDA6by5kaXNwbGF5TmFtZSk9PT0iUHJvRm9ybS1Hcm91cCImJiEoKHU9dC5wcm9wcykhPT1udWxsJiZ1IT09dm9pZCAwJiZ1LnRpdGxlKSlyZXR1cm4gdC5wcm9wcy5jaGlsZHJlbjtpZihyJiZkLmlzVmFsaWRFbGVtZW50KHQpKXt2YXIgaTtyZXR1cm4gZC5jbG9uZUVsZW1lbnQodCwoMCxsLlopKCgwLGwuWikoe30sdC5wcm9wcykse30se2Zvcm1JdGVtUHJvcHM6KDAsbC5aKSgoMCxsLlopKHt9LChpPXQucHJvcHMpPT09bnVsbHx8aT09PXZvaWQgMD92b2lkIDA6aS5mb3JtSXRlbVByb3BzKSx7fSx7cnVsZXM6W119KX0pKX1yZXR1cm4gdH0pfSxhbz1mdW5jdGlvbihlKXt2YXIgcix0LG8sdSxpPSgwLHdlLllCKSgpLGM9KDAsZC51c2VDb250ZXh0KSh3ZS5MXyksZz1jLmhhc2hJZCxtPWUucmVzZXRUZXh0fHxpLmdldE1lc3NhZ2UoInRhYmxlRm9ybS5yZXNldCIsIlx1OTFDRFx1N0Y2RSIpLFM9ZS5zZWFyY2hUZXh0fHxpLmdldE1lc3NhZ2UoInRhYmxlRm9ybS5zZWFyY2giLCJcdTY0MUNcdTdEMjIiKSxaPSgwLHFlLlopKGZ1bmN0aW9uKCl7cmV0dXJuIGUuZGVmYXVsdENvbGxhcHNlZCYmISFlLnN1Ym1pdHRlcn0se3ZhbHVlOmUuY29sbGFwc2VkLG9uQ2hhbmdlOmUub25Db2xsYXBzZX0pLHk9KDAsZmUuWikoWiwyKSx4PXlbMF0saD15WzFdLEk9ZS5vcHRpb25SZW5kZXIsQz1lLmNvbGxhcHNlUmVuZGVyLFQ9ZS5zcGxpdCxSPWUuaXRlbXMsWT1lLnNwYW5TaXplLEc9ZS5zaG93TGVuZ3RoLGs9ZS5zZWFyY2hHdXR0ZXIsaWU9ZS5zaG93SGlkZGVuTnVtLHc9KDAsZC51c2VNZW1vKShmdW5jdGlvbigpe3JldHVybiFlLnN1Ym1pdHRlcnx8ST09PSExP251bGw6ZC5jbG9uZUVsZW1lbnQoZS5zdWJtaXR0ZXIsKDAsbC5aKSh7c2VhcmNoQ29uZmlnOntyZXNldFRleHQ6bSxzdWJtaXRUZXh0OlN9LHJlbmRlcjpJJiZmdW5jdGlvbihPLFcpe3JldHVybiBJKCgwLGwuWikoKDAsbC5aKSh7fSxlKSx7fSx7cmVzZXRUZXh0Om0sc2VhcmNoVGV4dDpTfSksZSxXKX19LGUuc3VibWl0dGVyLnByb3BzKSl9LFtlLG0sUyxJXSksej0wLEI9MCxFPSExLFA9MCwkPTAsSj1ybyhSLGUuaWdub3JlUnVsZXMpLm1hcChmdW5jdGlvbihPLFcpe3ZhciBuZSxkZSxjZSxVLGFlPWQuaXNWYWxpZEVsZW1lbnQoTykmJihuZT1PPT1udWxsfHwoZGU9Ty5wcm9wcyk9PT1udWxsfHxkZT09PXZvaWQgMD92b2lkIDA6ZGUuY29sU2l6ZSkhPT1udWxsJiZuZSE9PXZvaWQgMD9uZToxLFY9TWF0aC5taW4oWS5zcGFuKihhZXx8MSksMjQpO2lmKHorPVYsUCs9YWUsVz09PTApe3ZhciByZTtFPVY9PT0yNCYmIShPIT1udWxsJiYocmU9Ty5wcm9wcykhPT1udWxsJiZyZSE9PXZvaWQgMCYmcmUuaGlkZGVuKX12YXIgU2U9KE89PW51bGx8fChjZT1PLnByb3BzKT09PW51bGx8fGNlPT09dm9pZCAwP3ZvaWQgMDpjZS5oaWRkZW4pfHx4JiYoRXx8UD5HKSYmISFXO0IrPTE7dmFyIEZlPWQuaXNWYWxpZEVsZW1lbnQoTykmJihPLmtleXx8IiIuY29uY2F0KChVPU8ucHJvcHMpPT09bnVsbHx8VT09PXZvaWQgMD92b2lkIDA6VS5uYW1lKSl8fFc7cmV0dXJuIGQuaXNWYWxpZEVsZW1lbnQoTykmJlNlP2UucHJlc2VydmU/e2l0ZW1Eb206ZC5jbG9uZUVsZW1lbnQoTyx7aGlkZGVuOiEwLGtleTpGZXx8V30pLGhpZGRlbjohMCxjb2xTcGFuOlZ9OntpdGVtRG9tOm51bGwsY29sU3BhbjowLGhpZGRlbjohMH06e2l0ZW1Eb206Tyxjb2xTcGFuOlYsaGlkZGVuOiExfX0pLEY9Si5tYXAoZnVuY3Rpb24oTyxXKXt2YXIgbmUsZGUsY2U9Ty5pdGVtRG9tLFU9Ty5jb2xTcGFuLGFlPWNlPT1udWxsfHwobmU9Y2UucHJvcHMpPT09bnVsbHx8bmU9PT12b2lkIDA/dm9pZCAwOm5lLmhpZGRlbjtpZihhZSlyZXR1cm4gY2U7dmFyIFY9ZC5pc1ZhbGlkRWxlbWVudChjZSkmJihjZS5rZXl8fCIiLmNvbmNhdCgoZGU9Y2UucHJvcHMpPT09bnVsbHx8ZGU9PT12b2lkIDA/dm9pZCAwOmRlLm5hbWUpKXx8VztyZXR1cm4gMjQtJCUyNDxVJiYoeis9MjQtJCUyNCwkKz0yNC0kJTI0KSwkKz1VLFQmJiQlMjQ9PT0wJiZXPEItMT8oMCxzLmpzeCkoUWUuWix7c3BhbjpVLGNsYXNzTmFtZToiIi5jb25jYXQoZS5iYXNlQ2xhc3NOYW1lLCItcm93LXNwbGl0LWxpbmUgIikuY29uY2F0KGUuYmFzZUNsYXNzTmFtZSwiLXJvdy1zcGxpdCAiKS5jb25jYXQoZykudHJpbSgpLGNoaWxkcmVuOmNlfSxWKTooMCxzLmpzeCkoUWUuWix7Y2xhc3NOYW1lOiIiLmNvbmNhdChlLmJhc2VDbGFzc05hbWUsIi1yb3ctc3BsaXQgIikuY29uY2F0KGcpLnRyaW0oKSxzcGFuOlUsY2hpbGRyZW46Y2V9LFYpfSksYj1pZSYmSi5maWx0ZXIoZnVuY3Rpb24oTyl7cmV0dXJuIE8uaGlkZGVufSkubGVuZ3RoLE49KDAsZC51c2VNZW1vKShmdW5jdGlvbigpe3JldHVybiEoejwyNHx8UDw9Ryl9LFtQLEcsel0pLEs9KDAsZC51c2VNZW1vKShmdW5jdGlvbigpe3ZhciBPLFcsbmU9JCUyNCsoKE89KFc9ZS5zdWJtaXR0ZXJDb2xTcGFuUHJvcHMpPT09bnVsbHx8Vz09PXZvaWQgMD92b2lkIDA6Vy5zcGFuKSE9PW51bGwmJk8hPT12b2lkIDA/TzpZLnNwYW4pO2lmKG5lPjI0KXt2YXIgZGUsY2U7cmV0dXJuIDI0LSgoZGU9KGNlPWUuc3VibWl0dGVyQ29sU3BhblByb3BzKT09PW51bGx8fGNlPT09dm9pZCAwP3ZvaWQgMDpjZS5zcGFuKSE9PW51bGwmJmRlIT09dm9pZCAwP2RlOlkuc3Bhbil9cmV0dXJuIDI0LW5lfSxbJCwkJTI0Kygocj0odD1lLnN1Ym1pdHRlckNvbFNwYW5Qcm9wcyk9PT1udWxsfHx0PT09dm9pZCAwP3ZvaWQgMDp0LnNwYW4pIT09bnVsbCYmciE9PXZvaWQgMD9yOlkuc3BhbiksKG89ZS5zdWJtaXR0ZXJDb2xTcGFuUHJvcHMpPT09bnVsbHx8bz09PXZvaWQgMD92b2lkIDA6by5zcGFuXSksWD0oMCxkLnVzZUNvbnRleHQpKGRuLlpQLkNvbmZpZ0NvbnRleHQpLF89WC5nZXRQcmVmaXhDbHMoInByby1xdWVyeS1maWx0ZXIiKTtyZXR1cm4oMCxzLmpzeHMpKGhuLlose2d1dHRlcjprLGp1c3RpZnk6InN0YXJ0IixjbGFzc05hbWU6WmUoKSgiIi5jb25jYXQoXywiLXJvdyIpLGcpLGNoaWxkcmVuOltGLHcmJigwLHMuanN4KShRZS5aLCgwLGwuWikoKDAsbC5aKSh7c3BhbjpZLnNwYW4sb2Zmc2V0OkssY2xhc3NOYW1lOlplKCkoKHU9ZS5zdWJtaXR0ZXJDb2xTcGFuUHJvcHMpPT09bnVsbHx8dT09PXZvaWQgMD92b2lkIDA6dS5jbGFzc05hbWUpfSxlLnN1Ym1pdHRlckNvbFNwYW5Qcm9wcykse30se3N0eWxlOnt0ZXh0QWxpZ246ImVuZCJ9LGNoaWxkcmVuOigwLHMuanN4KShEdC5aLkl0ZW0se2xhYmVsOiIgIixjb2xvbjohMSxzaG91bGRVcGRhdGU6ITEsY2xhc3NOYW1lOiIiLmNvbmNhdChfLCItYWN0aW9ucyAiKS5jb25jYXQoZykudHJpbSgpLGNoaWxkcmVuOigwLHMuanN4KShxbCx7aGlkZGVuTnVtOmIsY29sbGFwc2VkOngsY29sbGFwc2VSZW5kZXI6Tj9DOiExLHN1Ym1pdHRlcjp3LHNldENvbGxhcHNlZDpofSwicHJvLWZvcm0tcXVlcnktZmlsdGVyLWFjdGlvbnMiKX0pfSksInN1Ym1pdHRlciIpXX0sInJlc2l6ZS1vYnNlcnZlci1yb3ciKX0sbG89KDAsaXIuaikoKT8oQnQ9ZG9jdW1lbnQpPT09bnVsbHx8QnQ9PT12b2lkIDB8fChCdD1CdC5ib2R5KT09PW51bGx8fEJ0PT09dm9pZCAwP3ZvaWQgMDpCdC5jbGllbnRXaWR0aDoxMDI0O2Z1bmN0aW9uIG9vKG4pe3ZhciBlPW4uY29sbGFwc2VkLHI9bi5sYXlvdXQsdD1uLmRlZmF1bHRDb2xsYXBzZWQsbz10PT09dm9pZCAwPyEwOnQsdT1uLmRlZmF1bHRDb2xzTnVtYmVyLGk9bi5kZWZhdWx0Rm9ybUl0ZW1zTnVtYmVyLGM9bi5zcGFuLGc9bi5zZWFyY2hHdXR0ZXIsbT1nPT09dm9pZCAwPzI0OmcsUz1uLnNlYXJjaFRleHQsWj1uLnJlc2V0VGV4dCx5PW4ub3B0aW9uUmVuZGVyLHg9bi5jb2xsYXBzZVJlbmRlcixoPW4ub25SZXNldCxJPW4ub25Db2xsYXBzZSxDPW4ubGFiZWxXaWR0aCxUPUM9PT12b2lkIDA/IjgwIjpDLFI9bi5zdHlsZSxZPW4uc3BsaXQsRz1uLnByZXNlcnZlLGs9Rz09PXZvaWQgMD8hMDpHLGllPW4uaWdub3JlUnVsZXMsdz1uLnNob3dIaWRkZW5OdW0sej13PT09dm9pZCAwPyExOncsQj1uLnN1Ym1pdHRlckNvbFNwYW5Qcm9wcyxFPSgwLHEuWikobixlbyksUD0oMCxkLnVzZUNvbnRleHQpKGRuLlpQLkNvbmZpZ0NvbnRleHQpLCQ9UC5nZXRQcmVmaXhDbHMoInByby1xdWVyeS1maWx0ZXIiKSxKPV9sKCQpLEY9Si53cmFwU1NSLGI9Si5oYXNoSWQsTj0oMCxxZS5aKShmdW5jdGlvbigpe3JldHVybiB0eXBlb2YoUj09bnVsbD92b2lkIDA6Ui53aWR0aCk9PSJudW1iZXIiP1I9PW51bGw/dm9pZCAwOlIud2lkdGg6bG99KSxLPSgwLGZlLlopKE4sMiksWD1LWzBdLF89S1sxXSxPPSgwLGQudXNlTWVtbykoZnVuY3Rpb24oKXtyZXR1cm4gdG8ocixYKzE2LGMpfSxbcixYLGNdKSxXPSgwLGQudXNlTWVtbykoZnVuY3Rpb24oKXtpZihpIT09dm9pZCAwKXJldHVybiBpO2lmKHUhPT12b2lkIDApe3ZhciBkZT0yNC9PLnNwYW4tMTtyZXR1cm4gdT5kZT9kZTp1fXJldHVybiBNYXRoLm1heCgxLDI0L08uc3Bhbi0xKX0sW3UsaSxPLnNwYW5dKSxuZT0oMCxkLnVzZU1lbW8pKGZ1bmN0aW9uKCl7aWYoVCYmTy5sYXlvdXQhPT0idmVydGljYWwiJiZUIT09ImF1dG8iKXJldHVybntsYWJlbENvbDp7ZmxleDoiMCAwICIuY29uY2F0KFQsInB4Iil9LHdyYXBwZXJDb2w6e3N0eWxlOnttYXhXaWR0aDoiY2FsYygxMDAlIC0gIi5jb25jYXQoVCwicHgpIil9fSxzdHlsZTp7ZmxleFdyYXA6Im5vd3JhcCJ9fX0sW08ubGF5b3V0LFRdKTtyZXR1cm4gRigoMCxzLmpzeCkoQXIuWix7b25SZXNpemU6ZnVuY3Rpb24oY2Upe1ghPT1jZS53aWR0aCYmY2Uud2lkdGg+MTcmJl8oY2Uud2lkdGgpfSxjaGlsZHJlbjooMCxzLmpzeCkoVnQuSSwoMCxsLlopKCgwLGwuWikoe2lzS2V5UHJlc3NTdWJtaXQ6ITAscHJlc2VydmU6a30sRSkse30se2NsYXNzTmFtZTpaZSgpKCQsYixFLmNsYXNzTmFtZSksb25SZXNldDpoLHN0eWxlOlIsbGF5b3V0Ok8ubGF5b3V0LGZpZWxkUHJvcHM6e3N0eWxlOnt3aWR0aDoiMTAwJSJ9fSxmb3JtSXRlbVByb3BzOm5lLGdyb3VwUHJvcHM6e3RpdGxlU3R5bGU6e2Rpc3BsYXk6ImlubGluZS1ibG9jayIsbWFyZ2luSW5saW5lRW5kOjE2fX0sY29udGVudFJlbmRlcjpmdW5jdGlvbihjZSxVLGFlKXtyZXR1cm4oMCxzLmpzeCkoYW8se3NwYW5TaXplOk8sY29sbGFwc2VkOmUsZm9ybTphZSxzdWJtaXR0ZXJDb2xTcGFuUHJvcHM6Qixjb2xsYXBzZVJlbmRlcjp4LGRlZmF1bHRDb2xsYXBzZWQ6byxvbkNvbGxhcHNlOkksb3B0aW9uUmVuZGVyOnksc3VibWl0dGVyOlUsaXRlbXM6Y2Usc3BsaXQ6WSxiYXNlQ2xhc3NOYW1lOiQscmVzZXRUZXh0Om4ucmVzZXRUZXh0LHNlYXJjaFRleHQ6bi5zZWFyY2hUZXh0LHNlYXJjaEd1dHRlcjptLHByZXNlcnZlOmssaWdub3JlUnVsZXM6aWUsc2hvd0xlbmd0aDpXLHNob3dIaWRkZW5OdW06en0pfX0pKX0sInJlc2l6ZS1vYnNlcnZlciIpKX12YXIgaW89dig5MjIxMCksa3Q9digxOTc3KSx6cj12KDQyMTE5KSx1cj12KDgzNjIyKSxzbz1bIm9uRmluaXNoIiwic3RlcCIsImZvcm1SZWYiLCJ0aXRsZSIsInN0ZXBQcm9wcyJdO2Z1bmN0aW9uIGNvKG4pe3ZhciBlPSgwLGQudXNlUmVmKSgpLHI9KDAsZC51c2VDb250ZXh0KShXciksdD0oMCxkLnVzZUNvbnRleHQpKEhyKSxvPSgwLGwuWikoKDAsbC5aKSh7fSxuKSx0KSx1PW8ub25GaW5pc2gsaT1vLnN0ZXAsYz1vLmZvcm1SZWYsZz1vLnRpdGxlLG09by5zdGVwUHJvcHMsUz0oMCxxLlopKG8sc28pO3JldHVybigwLHduLkVUKSghUy5zdWJtaXR0ZXIsIlN0ZXBGb3JtIFx1NEUwRFx1NTMwNVx1NTQyQlx1NjNEMFx1NEVBNFx1NjMwOVx1OTRBRVx1RkYwQ1x1OEJGN1x1NTcyOCBTdGVwc0Zvcm0gXHU0RTBBIiksKDAsZC51c2VJbXBlcmF0aXZlSGFuZGxlKShjLGZ1bmN0aW9uKCl7cmV0dXJuIGUuY3VycmVudH0sW2M9PW51bGw/dm9pZCAwOmMuY3VycmVudF0pLCgwLGQudXNlRWZmZWN0KShmdW5jdGlvbigpe2lmKG8ubmFtZXx8by5zdGVwKXt2YXIgWj0oby5uYW1lfHxvLnN0ZXApLnRvU3RyaW5nKCk7cmV0dXJuIHI9PW51bGx8fHIucmVnRm9ybShaLG8pLGZ1bmN0aW9uKCl7cj09bnVsbHx8ci51blJlZ0Zvcm0oWil9fX0sW10pLHImJnIhPT1udWxsJiZyIT09dm9pZCAwJiZyLmZvcm1BcnJheVJlZiYmKHIuZm9ybUFycmF5UmVmLmN1cnJlbnRbaXx8MF09ZSksKDAscy5qc3gpKFZ0LkksKDAsbC5aKSh7Zm9ybVJlZjplLG9uRmluaXNoOmZ1bmN0aW9uKCl7dmFyIFo9KDAsc2UuWikoKDAsTC5aKSgpLm1hcmsoZnVuY3Rpb24geSh4KXt2YXIgaDtyZXR1cm4oMCxMLlopKCkud3JhcChmdW5jdGlvbihDKXtmb3IoOzspc3dpdGNoKEMucHJldj1DLm5leHQpe2Nhc2UgMDppZihTLm5hbWUmJihyPT1udWxsfHxyLm9uRm9ybUZpbmlzaChTLm5hbWUseCkpLCF1KXtDLm5leHQ9OTticmVha31yZXR1cm4gcj09bnVsbHx8ci5zZXRMb2FkaW5nKCEwKSxDLm5leHQ9NSx1PT1udWxsP3ZvaWQgMDp1KHgpO2Nhc2UgNTpyZXR1cm4gaD1DLnNlbnQsaCYmKHI9PW51bGx8fHIubmV4dCgpKSxyPT1udWxsfHxyLnNldExvYWRpbmcoITEpLEMuYWJydXB0KCJyZXR1cm4iKTtjYXNlIDk6ciE9bnVsbCYmci5sYXN0U3RlcHx8cj09bnVsbHx8ci5uZXh0KCk7Y2FzZSAxMDpjYXNlImVuZCI6cmV0dXJuIEMuc3RvcCgpfX0seSl9KSk7cmV0dXJuIGZ1bmN0aW9uKHkpe3JldHVybiBaLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksb25Jbml0OmZ1bmN0aW9uKHkseCl7dmFyIGg7ZS5jdXJyZW50PXgsciYmciE9PW51bGwmJnIhPT12b2lkIDAmJnIuZm9ybUFycmF5UmVmJiYoci5mb3JtQXJyYXlSZWYuY3VycmVudFtpfHwwXT1lKSxTPT1udWxsfHwoaD1TLm9uSW5pdCk9PT1udWxsfHxoPT09dm9pZCAwfHxoLmNhbGwoUyx5LHgpfSxsYXlvdXQ6InZlcnRpY2FsIn0sKDAscG4uWikoUyxbImxheW91dFR5cGUiLCJjb2x1bW5zIl0pKSl9dmFyIHVvPWNvLHZvPWZ1bmN0aW9uKGUpe3JldHVybigwLHAuWikoe30sZS5jb21wb25lbnRDbHMseyImLWNvbnRhaW5lciI6e3dpZHRoOiJtYXgtY29udGVudCIsbWluV2lkdGg6IjQyMHB4IixtYXhXaWR0aDoiMTAwJSIsbWFyZ2luOiJhdXRvIn0sIiYtc3RlcHMtY29udGFpbmVyIjooMCxwLlopKHttYXhXaWR0aDoiMTE2MHB4IixtYXJnaW46ImF1dG8ifSwiIi5jb25jYXQoZS5hbnRDbHMsIi1zdGVwcy12ZXJ0aWNhbCIpLHtoZWlnaHQ6IjEwMCUifSksIiYtc3RlcCI6e2Rpc3BsYXk6Im5vbmUiLG1hcmdpbkJsb2NrU3RhcnQ6IjMycHgiLCImLWFjdGl2ZSI6e2Rpc3BsYXk6ImJsb2NrIn0sIj4gZm9ybSI6e21heFdpZHRoOiIxMDAlIn19fSl9O2Z1bmN0aW9uIGZvKG4pe3JldHVybigwLHVuLlhqKSgiU3RlcHNGb3JtIixmdW5jdGlvbihlKXt2YXIgcj0oMCxsLlopKCgwLGwuWikoe30sZSkse30se2NvbXBvbmVudENsczoiLiIuY29uY2F0KG4pfSk7cmV0dXJuW3ZvKHIpXX0pfXZhciBtbz1bImN1cnJlbnQiLCJvbkN1cnJlbnRDaGFuZ2UiLCJzdWJtaXR0ZXIiLCJzdGVwc0Zvcm1SZW5kZXIiLCJzdGVwc1JlbmRlciIsInN0ZXBGb3JtUmVuZGVyIiwic3RlcHNQcm9wcyIsIm9uRmluaXNoIiwiZm9ybVByb3BzIiwiY29udGFpbmVyU3R5bGUiLCJmb3JtUmVmIiwiZm9ybU1hcFJlZiIsImxheW91dFJlbmRlciJdLFdyPWQuY3JlYXRlQ29udGV4dCh2b2lkIDApLGdvPXtob3Jpem9udGFsOmZ1bmN0aW9uKGUpe3ZhciByPWUuc3RlcHNEb20sdD1lLmZvcm1Eb207cmV0dXJuKDAscy5qc3hzKShzLkZyYWdtZW50LHtjaGlsZHJlbjpbKDAscy5qc3gpKGhuLlose2d1dHRlcjp7eHM6OCxzbToxNixtZDoyNH0sY2hpbGRyZW46KDAscy5qc3gpKFFlLlose3NwYW46MjQsY2hpbGRyZW46cn0pfSksKDAscy5qc3gpKGhuLlose2d1dHRlcjp7eHM6OCxzbToxNixtZDoyNH0sY2hpbGRyZW46KDAscy5qc3gpKFFlLlose3NwYW46MjQsY2hpbGRyZW46dH0pfSldfSl9LHZlcnRpY2FsOmZ1bmN0aW9uKGUpe3ZhciByPWUuc3RlcHNEb20sdD1lLmZvcm1Eb207cmV0dXJuKDAscy5qc3hzKShobi5aLHthbGlnbjoic3RyZXRjaCIsd3JhcDohMCxndXR0ZXI6e3hzOjgsc206MTYsbWQ6MjR9LGNoaWxkcmVuOlsoMCxzLmpzeCkoUWUuWix7eHhsOjQseGw6NixsZzo3LG1kOjgsc206MTAseHM6MTIsY2hpbGRyZW46ZC5jbG9uZUVsZW1lbnQocix7c3R5bGU6e2hlaWdodDoiMTAwJSJ9fSl9KSwoMCxzLmpzeCkoUWUuWix7Y2hpbGRyZW46KDAscy5qc3gpKCJkaXYiLHtzdHlsZTp7ZGlzcGxheToiZmxleCIsYWxpZ25JdGVtczoiY2VudGVyIix3aWR0aDoiMTAwJSIsaGVpZ2h0OiIxMDAlIn0sY2hpbGRyZW46dH0pfSldfSl9fSxIcj1kLmNyZWF0ZUNvbnRleHQobnVsbCk7ZnVuY3Rpb24gcG8obil7dmFyIGU9KDAsZC51c2VDb250ZXh0KShkbi5aUC5Db25maWdDb250ZXh0KSxyPWUuZ2V0UHJlZml4Q2xzLHQ9cigicHJvLXN0ZXBzLWZvcm0iKSxvPWZvKHQpLHU9by53cmFwU1NSLGk9by5oYXNoSWQsYz1uLmN1cnJlbnQsZz1uLm9uQ3VycmVudENoYW5nZSxtPW4uc3VibWl0dGVyLFM9bi5zdGVwc0Zvcm1SZW5kZXIsWj1uLnN0ZXBzUmVuZGVyLHk9bi5zdGVwRm9ybVJlbmRlcix4PW4uc3RlcHNQcm9wcyxoPW4ub25GaW5pc2gsST1uLmZvcm1Qcm9wcyxDPW4uY29udGFpbmVyU3R5bGUsVD1uLmZvcm1SZWYsUj1uLmZvcm1NYXBSZWYsWT1uLmxheW91dFJlbmRlcixHPSgwLHEuWikobixtbyksaz0oMCxkLnVzZVJlZikobmV3IE1hcCksaWU9KDAsZC51c2VSZWYpKG5ldyBNYXApLHc9KDAsZC51c2VSZWYpKFtdKSx6PSgwLGQudXNlU3RhdGUpKFtdKSxCPSgwLGZlLlopKHosMiksRT1CWzBdLFA9QlsxXSwkPSgwLGQudXNlU3RhdGUpKCExKSxKPSgwLGZlLlopKCQsMiksRj1KWzBdLGI9SlsxXSxOPSgwLHdlLllCKSgpLEs9KDAscWUuWikoMCx7dmFsdWU6bi5jdXJyZW50LG9uQ2hhbmdlOm4ub25DdXJyZW50Q2hhbmdlfSksWD0oMCxmZS5aKShLLDIpLF89WFswXSxPPVhbMV0sVz0oMCxkLnVzZU1lbW8pKGZ1bmN0aW9uKCl7cmV0dXJuIGdvWyh4PT1udWxsP3ZvaWQgMDp4LmRpcmVjdGlvbil8fCJob3Jpem9udGFsIl19LFt4PT1udWxsP3ZvaWQgMDp4LmRpcmVjdGlvbl0pLG5lPSgwLGQudXNlTWVtbykoZnVuY3Rpb24oKXtyZXR1cm4gXz09PUUubGVuZ3RoLTF9LFtFLmxlbmd0aCxfXSksZGU9KDAsZC51c2VDYWxsYmFjaykoZnVuY3Rpb24oQSxIKXtpZS5jdXJyZW50LmhhcyhBKXx8UChmdW5jdGlvbihoZSl7cmV0dXJuW10uY29uY2F0KCgwLG1uLlopKGhlKSxbQV0pfSksaWUuY3VycmVudC5zZXQoQSxIKX0sW10pLGNlPSgwLGQudXNlQ2FsbGJhY2spKGZ1bmN0aW9uKEEpe1AoZnVuY3Rpb24oSCl7cmV0dXJuIEguZmlsdGVyKGZ1bmN0aW9uKGhlKXtyZXR1cm4gaGUhPT1BfSl9KSxpZS5jdXJyZW50LmRlbGV0ZShBKSxrLmN1cnJlbnQuZGVsZXRlKEEpfSxbXSk7KDAsZC51c2VJbXBlcmF0aXZlSGFuZGxlKShSLGZ1bmN0aW9uKCl7cmV0dXJuIHcuY3VycmVudH0sW3cuY3VycmVudF0pLCgwLGQudXNlSW1wZXJhdGl2ZUhhbmRsZSkoVCxmdW5jdGlvbigpe3ZhciBBO3JldHVybihBPXcuY3VycmVudFtffHwwXSk9PT1udWxsfHxBPT09dm9pZCAwP3ZvaWQgMDpBLmN1cnJlbnR9LFtfLHcuY3VycmVudF0pO3ZhciBVPSgwLGQudXNlQ2FsbGJhY2spKGZ1bmN0aW9uKCl7dmFyIEE9KDAsc2UuWikoKDAsTC5aKSgpLm1hcmsoZnVuY3Rpb24gSChoZSx0ZSl7dmFyIFhlLExlO3JldHVybigwLEwuWikoKS53cmFwKGZ1bmN0aW9uKFduKXtmb3IoOzspc3dpdGNoKFduLnByZXY9V24ubmV4dCl7Y2FzZSAwOmlmKGsuY3VycmVudC5zZXQoaGUsdGUpLCEoIW5lfHwhaCkpe1duLm5leHQ9MzticmVha31yZXR1cm4gV24uYWJydXB0KCJyZXR1cm4iKTtjYXNlIDM6cmV0dXJuIGIoITApLFhlPWlvLlQuYXBwbHkodm9pZCAwLFt7fV0uY29uY2F0KCgwLG1uLlopKEFycmF5LmZyb20oay5jdXJyZW50LnZhbHVlcygpKSkpKSxXbi5wcmV2PTUsV24ubmV4dD04LGgoWGUpO2Nhc2UgODpMZT1Xbi5zZW50LExlJiYoTygwKSx3LmN1cnJlbnQuZm9yRWFjaChmdW5jdGlvbihndCl7dmFyIGl0O3JldHVybihpdD1ndC5jdXJyZW50KT09PW51bGx8fGl0PT09dm9pZCAwP3ZvaWQgMDppdC5yZXNldEZpZWxkcygpfSkpLFduLm5leHQ9MTU7YnJlYWs7Y2FzZSAxMjpXbi5wcmV2PTEyLFduLnQwPVduLmNhdGNoKDUpLGNvbnNvbGUubG9nKFduLnQwKTtjYXNlIDE1OnJldHVybiBXbi5wcmV2PTE1LGIoITEpLFduLmZpbmlzaCgxNSk7Y2FzZSAxODpjYXNlImVuZCI6cmV0dXJuIFduLnN0b3AoKX19LEgsbnVsbCxbWzUsMTIsMTUsMThdXSl9KSk7cmV0dXJuIGZ1bmN0aW9uKEgsaGUpe3JldHVybiBBLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksW25lLGgsYixPXSksYWU9KDAsZC51c2VNZW1vKShmdW5jdGlvbigpe3ZhciBBPSgwLGt0Lm4pKFRuLlosIjQuMjQuMCIpPi0xLEg9QT97aXRlbXM6RS5tYXAoZnVuY3Rpb24oaGUpe3ZhciB0ZT1pZS5jdXJyZW50LmdldChoZSk7cmV0dXJuKDAsbC5aKSh7a2V5OmhlLHRpdGxlOnRlPT1udWxsP3ZvaWQgMDp0ZS50aXRsZX0sdGU9PW51bGw/dm9pZCAwOnRlLnN0ZXBQcm9wcyl9KX06e307cmV0dXJuKDAscy5qc3gpKCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KHQsIi1zdGVwcy1jb250YWluZXIgIikuY29uY2F0KGkpLnRyaW0oKSxzdHlsZTp7bWF4V2lkdGg6TWF0aC5taW4oRS5sZW5ndGgqMzIwLDExNjApfSxjaGlsZHJlbjooMCxzLmpzeCkoenIuWiwoMCxsLlopKCgwLGwuWikoKDAsbC5aKSh7fSx4KSxIKSx7fSx7Y3VycmVudDpfLG9uQ2hhbmdlOnZvaWQgMCxjaGlsZHJlbjohQSYmRS5tYXAoZnVuY3Rpb24oaGUpe3ZhciB0ZT1pZS5jdXJyZW50LmdldChoZSk7cmV0dXJuKDAscy5qc3gpKHpyLlouU3RlcCwoMCxsLlopKHt0aXRsZTp0ZT09bnVsbD92b2lkIDA6dGUudGl0bGV9LHRlPT1udWxsP3ZvaWQgMDp0ZS5zdGVwUHJvcHMpLGhlKX0pfSkpfSl9LFtFLGksdCxfLHhdKSxWPSgwLG90LkopKGZ1bmN0aW9uKCl7dmFyIEEsSD13LmN1cnJlbnRbX107KEE9SC5jdXJyZW50KT09PW51bGx8fEE9PT12b2lkIDB8fEEuc3VibWl0KCl9KSxyZT0oMCxvdC5KKShmdW5jdGlvbigpe188MXx8TyhfLTEpfSksU2U9KDAsZC51c2VNZW1vKShmdW5jdGlvbigpe3JldHVybiBtIT09ITEmJigwLHMuanN4KSh1ci5aUCwoMCxsLlopKCgwLGwuWikoe3R5cGU6InByaW1hcnkiLGxvYWRpbmc6Rn0sbT09bnVsbD92b2lkIDA6bS5zdWJtaXRCdXR0b25Qcm9wcykse30se29uQ2xpY2s6ZnVuY3Rpb24oKXt2YXIgSDttPT1udWxsfHwoSD1tLm9uU3VibWl0KT09PW51bGx8fEg9PT12b2lkIDB8fEguY2FsbChtKSxWKCl9LGNoaWxkcmVuOk4uZ2V0TWVzc2FnZSgic3RlcHNGb3JtLm5leHQiLCJcdTRFMEJcdTRFMDBcdTZCNjUiKX0pLCJuZXh0Iil9LFtOLEYsVixtXSksRmU9KDAsZC51c2VNZW1vKShmdW5jdGlvbigpe3JldHVybiBtIT09ITEmJigwLHMuanN4KSh1ci5aUCwoMCxsLlopKCgwLGwuWikoe30sbT09bnVsbD92b2lkIDA6bS5yZXNldEJ1dHRvblByb3BzKSx7fSx7b25DbGljazpmdW5jdGlvbigpe3ZhciBIO3JlKCksbT09bnVsbHx8KEg9bS5vblJlc2V0KT09PW51bGx8fEg9PT12b2lkIDB8fEguY2FsbChtKX0sY2hpbGRyZW46Ti5nZXRNZXNzYWdlKCJzdGVwc0Zvcm0ucHJldiIsIlx1NEUwQVx1NEUwMFx1NkI2NSIpfSksInByZSIpfSxbTixyZSxtXSksRGU9KDAsZC51c2VNZW1vKShmdW5jdGlvbigpe3JldHVybiBtIT09ITEmJigwLHMuanN4KSh1ci5aUCwoMCxsLlopKCgwLGwuWikoe3R5cGU6InByaW1hcnkiLGxvYWRpbmc6Rn0sbT09bnVsbD92b2lkIDA6bS5zdWJtaXRCdXR0b25Qcm9wcykse30se29uQ2xpY2s6ZnVuY3Rpb24oKXt2YXIgSDttPT1udWxsfHwoSD1tLm9uU3VibWl0KT09PW51bGx8fEg9PT12b2lkIDB8fEguY2FsbChtKSxWKCl9LGNoaWxkcmVuOk4uZ2V0TWVzc2FnZSgic3RlcHNGb3JtLnN1Ym1pdCIsIlx1NjNEMFx1NEVBNCIpfSksInN1Ym1pdCIpfSxbTixGLFYsbV0pLHRuPSgwLG90LkopKGZ1bmN0aW9uKCl7Xz5FLmxlbmd0aC0yfHxPKF8rMSl9KSxjbj0oMCxkLnVzZU1lbW8pKGZ1bmN0aW9uKCl7dmFyIEE9W10sSD1ffHwwO2lmKEg8MT9FLmxlbmd0aD09PTE/QS5wdXNoKERlKTpBLnB1c2goU2UpOkgrMT09PUUubGVuZ3RoP0EucHVzaChGZSxEZSk6QS5wdXNoKEZlLFNlKSxBPUEuZmlsdGVyKGQuaXNWYWxpZEVsZW1lbnQpLG0mJm0ucmVuZGVyKXt2YXIgaGUsdGU9e2Zvcm06KGhlPXcuY3VycmVudFtfXSk9PT1udWxsfHxoZT09PXZvaWQgMD92b2lkIDA6aGUuY3VycmVudCxvblN1Ym1pdDpWLHN0ZXA6XyxvblByZTpyZX07cmV0dXJuIG0ucmVuZGVyKHRlLEEpfXJldHVybiBtJiYobT09bnVsbD92b2lkIDA6bS5yZW5kZXIpPT09ITE/bnVsbDpBfSxbRS5sZW5ndGgsU2UsVixGZSxyZSxfLERlLG1dKSxDZT0oMCxkLnVzZU1lbW8pKGZ1bmN0aW9uKCl7cmV0dXJuKDAsSm4uWikobi5jaGlsZHJlbikubWFwKGZ1bmN0aW9uKEEsSCl7dmFyIGhlPUEucHJvcHMsdGU9aGUubmFtZXx8IiIuY29uY2F0KEgpLFhlPV89PT1ILExlPVhlP3tjb250ZW50UmVuZGVyOnksc3VibWl0dGVyOiExfTp7fTtyZXR1cm4oMCxzLmpzeCkoImRpdiIse2NsYXNzTmFtZTpaZSgpKCIiLmNvbmNhdCh0LCItc3RlcCIpLGksKDAscC5aKSh7fSwiIi5jb25jYXQodCwiLXN0ZXAtYWN0aXZlIiksWGUpKSxjaGlsZHJlbjooMCxzLmpzeCkoSHIuUHJvdmlkZXIse3ZhbHVlOigwLGwuWikoKDAsbC5aKSgoMCxsLlopKCgwLGwuWikoe30sTGUpLEkpLGhlKSx7fSx7bmFtZTp0ZSxzdGVwOkh9KSxjaGlsZHJlbjpBfSl9LHRlKX0pfSxbSSxpLHQsbi5jaGlsZHJlbixfLHldKSxDbj0oMCxkLnVzZU1lbW8pKGZ1bmN0aW9uKCl7cmV0dXJuIFo/WihFLm1hcChmdW5jdGlvbihBKXt2YXIgSDtyZXR1cm57a2V5OkEsdGl0bGU6KEg9aWUuY3VycmVudC5nZXQoQSkpPT09bnVsbHx8SD09PXZvaWQgMD92b2lkIDA6SC50aXRsZX19KSxhZSk6YWV9LFtFLGFlLFpdKSxPbj0oMCxkLnVzZU1lbW8pKGZ1bmN0aW9uKCl7cmV0dXJuKDAscy5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdCh0LCItY29udGFpbmVyICIpLmNvbmNhdChpKS50cmltKCksc3R5bGU6QyxjaGlsZHJlbjpbQ2UsUz9udWxsOigwLHMuanN4KShPdC5aLHtjaGlsZHJlbjpjbn0pXX0pfSxbQyxDZSxpLHQsUyxjbl0pLGJlPSgwLGQudXNlTWVtbykoZnVuY3Rpb24oKXt2YXIgQT17c3RlcHNEb206Q24sZm9ybURvbTpPbn07cmV0dXJuIFM/UyhZP1koQSk6VyhBKSxjbik6WT9ZKEEpOlcoQSl9LFtDbixPbixXLFMsY24sWV0pO3JldHVybiB1KCgwLHMuanN4KSgiZGl2Iix7Y2xhc3NOYW1lOlplKCkodCxpKSxjaGlsZHJlbjooMCxzLmpzeCkoRHQuWi5Qcm92aWRlciwoMCxsLlopKCgwLGwuWikoe30sRykse30se2NoaWxkcmVuOigwLHMuanN4KShXci5Qcm92aWRlcix7dmFsdWU6e2xvYWRpbmc6RixzZXRMb2FkaW5nOmIscmVnRm9ybTpkZSxrZXlBcnJheTpFLG5leHQ6dG4sZm9ybUFycmF5UmVmOncsZm9ybU1hcFJlZjppZSxsYXN0U3RlcDpuZSx1blJlZ0Zvcm06Y2Usb25Gb3JtRmluaXNoOlV9LGNoaWxkcmVuOmJlfSl9KSl9KSl9ZnVuY3Rpb24gX3Qobil7cmV0dXJuKDAscy5qc3gpKHdlLl9ZLHtuZWVkRGVwczohMCxjaGlsZHJlbjooMCxzLmpzeCkocG8sKDAsbC5aKSh7fSxuKSl9KX1fdC5TdGVwRm9ybT11byxfdC51c2VGb3JtPUR0LloudXNlRm9ybTt2YXIgaG89WyJzdGVwcyIsImNvbHVtbnMiLCJmb3JjZVVwZGF0ZSIsImdyaWQiXSx5bz1mdW5jdGlvbihlKXt2YXIgcj1lLnN0ZXBzLHQ9ZS5jb2x1bW5zLG89ZS5mb3JjZVVwZGF0ZSx1PWUuZ3JpZCxpPSgwLHEuWikoZSxobyksYz0oMCxPci5kKShpKSxnPSgwLGQudXNlQ2FsbGJhY2spKGZ1bmN0aW9uKFMpe3ZhciBaLHk7KFo9KHk9Yy5jdXJyZW50KS5vbkN1cnJlbnRDaGFuZ2UpPT09bnVsbHx8Wj09PXZvaWQgMHx8Wi5jYWxsKHksUyksbyhbXSl9LFtvLGNdKSxtPSgwLGQudXNlTWVtbykoZnVuY3Rpb24oKXtyZXR1cm4gcj09bnVsbD92b2lkIDA6ci5tYXAoZnVuY3Rpb24oUyxaKXtyZXR1cm4oMCxkLmNyZWF0ZUVsZW1lbnQpKEdyLCgwLGwuWikoKDAsbC5aKSh7Z3JpZDp1fSxTKSx7fSx7a2V5OlosbGF5b3V0VHlwZToiU3RlcEZvcm0iLGNvbHVtbnM6dFtaXX0pKX0pfSxbdCx1LHJdKTtyZXR1cm4oMCxzLmpzeCkoX3QsKDAsbC5aKSgoMCxsLlopKHt9LGkpLHt9LHtvbkN1cnJlbnRDaGFuZ2U6ZyxjaGlsZHJlbjptfSkpfSxTbz15byxibz1mdW5jdGlvbihlKXt2YXIgcj1lLmNoaWxkcmVuO3JldHVybigwLHMuanN4KShzLkZyYWdtZW50LHtjaGlsZHJlbjpyfSl9LENvPWJvLFZyPXYoOTc0NjIpLFpvPWZ1bmN0aW9uKGUscil7aWYoZS52YWx1ZVR5cGU9PT0iZGVwZW5kZW5jeSIpe3ZhciB0LG8sdSxpPSh0PWUuZ2V0RmllbGRQcm9wcyk9PT1udWxsfHx0PT09dm9pZCAwP3ZvaWQgMDp0LmNhbGwoZSk7cmV0dXJuKDAsd24uRVQpKEFycmF5LmlzQXJyYXkoKG89ZS5uYW1lKSE9PW51bGwmJm8hPT12b2lkIDA/bzppPT1udWxsP3ZvaWQgMDppLm5hbWUpLCdTY2hlbWFGb3JtOiBmaWVsZFByb3BzLm5hbWUgc2hvdWxkIGJlIE5hbWVQYXRoW10gd2hlbiB2YWx1ZVR5cGUgaXMgImRlcGVuZGVuY3kiJyksKDAsd24uRVQpKHR5cGVvZiBlLmNvbHVtbnM9PSJmdW5jdGlvbiIsJ1NjaGVtYUZvcm06IGNvbHVtbnMgc2hvdWxkIGJlIGEgZnVuY3Rpb24gd2hlbiB2YWx1ZVR5cGUgaXMgImRlcGVuZGVuY3kiJyksQXJyYXkuaXNBcnJheSgodT1lLm5hbWUpIT09bnVsbCYmdSE9PXZvaWQgMD91Omk9PW51bGw/dm9pZCAwOmkubmFtZSk/KDAsZC5jcmVhdGVFbGVtZW50KShWci5aLCgwLGwuWikoKDAsbC5aKSh7bmFtZTplLm5hbWV9LGkpLHt9LHtrZXk6ZS5rZXl9KSxmdW5jdGlvbihjKXtyZXR1cm4hZS5jb2x1bW5zfHx0eXBlb2YgZS5jb2x1bW5zIT0iZnVuY3Rpb24iP251bGw6ci5nZW5JdGVtcyhlLmNvbHVtbnMoYykpfSk6bnVsbH1yZXR1cm4hMH0seG89dig5NjA3NCksUG89ZnVuY3Rpb24oZSl7aWYoZS52YWx1ZVR5cGU9PT0iZGl2aWRlciIpe3ZhciByO3JldHVybigwLGQuY3JlYXRlRWxlbWVudCkoeG8uWiwoMCxsLlopKCgwLGwuWikoe30sKHI9ZS5nZXRGaWVsZFByb3BzKT09PW51bGx8fHI9PT12b2lkIDA/dm9pZCAwOnIuY2FsbChlKSkse30se2tleTplLmtleX0pKX1yZXR1cm4hMH0sZXI9dig5MjE3OSksUm89WyJrZXkiXSxJbz1mdW5jdGlvbihlLHIpe3ZhciB0PXIuYWN0aW9uLG89ci5mb3JtUmVmLHU9ci50eXBlLGk9ci5vcmlnaW5JdGVtLGM9KDAsbC5aKSgoMCxsLlopKHt9LCgwLHBuLlopKGUsWyJkYXRhSW5kZXgiLCJ3aWR0aCIsInJlbmRlciIsInJlbmRlckZvcm1JdGVtIiwicmVuZGVyVGV4dCIsInRpdGxlIl0pKSx7fSx7bmFtZTplLm5hbWV8fGUua2V5fHxlLmRhdGFJbmRleCx3aWR0aDplLndpZHRoLHJlbmRlcjplIT1udWxsJiZlLnJlbmRlcj9mdW5jdGlvbihaLHkseCl7dmFyIGgsSSxDLFQ7cmV0dXJuIGU9PW51bGx8fChoPWUucmVuZGVyKT09PW51bGx8fGg9PT12b2lkIDA/dm9pZCAwOmguY2FsbChlLFoseSx4LHQ9PW51bGw/dm9pZCAwOnQuY3VycmVudCwoMCxsLlopKCgwLGwuWikoe3R5cGU6dX0sZSkse30se2tleTooST1lLmtleSk9PT1udWxsfHxJPT09dm9pZCAwP3ZvaWQgMDpJLnRvU3RyaW5nKCksZm9ybUl0ZW1Qcm9wczooQz1lLmdldEZvcm1JdGVtUHJvcHMpPT09bnVsbHx8Qz09PXZvaWQgMD92b2lkIDA6Qy5jYWxsKGUpLGZpZWxkUHJvcHM6KFQ9ZS5nZXRGaWVsZFByb3BzKT09PW51bGx8fFQ9PT12b2lkIDA/dm9pZCAwOlQuY2FsbChlKX0pKX06dm9pZCAwfSksZz1mdW5jdGlvbigpe3ZhciB5PWMua2V5LHg9KDAscS5aKShjLFJvKTtyZXR1cm4oMCxzLmpzeCkoZXIuWiwoMCxsLlopKCgwLGwuWikoe30seCkse30se2lnbm9yZUZvcm1JdGVtOiEwfSkseSl9LG09ZSE9bnVsbCYmZS5yZW5kZXJGb3JtSXRlbT9mdW5jdGlvbihaLHkpe3ZhciB4LGgsSSxDLFQ9KDAsYS5ZKSgoMCxsLlopKCgwLGwuWikoe30seSkse30se29uQ2hhbmdlOnZvaWQgMH0pKTtyZXR1cm4gZT09bnVsbHx8KHg9ZS5yZW5kZXJGb3JtSXRlbSk9PT1udWxsfHx4PT09dm9pZCAwP3ZvaWQgMDp4LmNhbGwoZSwoMCxsLlopKCgwLGwuWikoe3R5cGU6dX0sZSkse30se2tleTooaD1lLmtleSk9PT1udWxsfHxoPT09dm9pZCAwP3ZvaWQgMDpoLnRvU3RyaW5nKCksZm9ybUl0ZW1Qcm9wczooST1lLmdldEZvcm1JdGVtUHJvcHMpPT09bnVsbHx8ST09PXZvaWQgMD92b2lkIDA6SS5jYWxsKGUpLGZpZWxkUHJvcHM6KEM9ZS5nZXRGaWVsZFByb3BzKT09PW51bGx8fEM9PT12b2lkIDA/dm9pZCAwOkMuY2FsbChlKSxvcmlnaW5Qcm9wczppfSksKDAsbC5aKSgoMCxsLlopKHt9LFQpLHt9LHtkZWZhdWx0UmVuZGVyOmcsdHlwZTp1fSksby5jdXJyZW50KX06dm9pZCAwLFM9ZnVuY3Rpb24oKXtpZihlIT1udWxsJiZlLnJlbmRlckZvcm1JdGVtKXt2YXIgeT1tPT1udWxsP3ZvaWQgMDptKG51bGwse30pO2lmKCF5fHxlLmlnbm9yZUZvcm1JdGVtKXJldHVybiB5fXJldHVybigwLGQuY3JlYXRlRWxlbWVudCkoZXIuWiwoMCxsLlopKCgwLGwuWikoe30sYykse30se2tleTpbZS5rZXksZS5pbmRleHx8MF0uam9pbigiLSIpLHJlbmRlckZvcm1JdGVtOm19KSl9O3JldHVybiBlLmRlcGVuZGVuY2llcz8oMCxzLmpzeCkoVnIuWix7bmFtZTplLmRlcGVuZGVuY2llc3x8W10sY2hpbGRyZW46U30sZS5rZXkpOlMoKX0sVG89digxNzE4Niksd289ZnVuY3Rpb24oZSxyKXt2YXIgdD1yLmdlbkl0ZW1zO2lmKGUudmFsdWVUeXBlPT09ImZvcm1MaXN0IiYmZS5kYXRhSW5kZXgpe3ZhciBvLHU7cmV0dXJuIWUuY29sdW1uc3x8IUFycmF5LmlzQXJyYXkoZS5jb2x1bW5zKT9udWxsOigwLGQuY3JlYXRlRWxlbWVudCkoVG8udSwoMCxsLlopKCgwLGwuWikoe30sKG89ZS5nZXRGb3JtSXRlbVByb3BzKT09PW51bGx8fG89PT12b2lkIDA/dm9pZCAwOm8uY2FsbChlKSkse30se2tleTplLmtleSxuYW1lOmUuZGF0YUluZGV4LGxhYmVsOmUubGFiZWwsaW5pdGlhbFZhbHVlOmUuaW5pdGlhbFZhbHVlLGNvbFByb3BzOmUuY29sUHJvcHMscm93UHJvcHM6ZS5yb3dQcm9wc30sKHU9ZS5nZXRGaWVsZFByb3BzKT09PW51bGx8fHU9PT12b2lkIDA/dm9pZCAwOnUuY2FsbChlKSksdChlLmNvbHVtbnMpKX1yZXR1cm4hMH0sVXI9digyNTI3OCksRW89dig5MDc4OSksJG89WyJjaGlsZHJlbiIsInZhbHVlIiwidmFsdWVQcm9wTmFtZSIsIm9uQ2hhbmdlIiwiZmllbGRQcm9wcyIsInNwYWNlIiwidHlwZSIsInRyYW5zZm9ybSIsImNvbnZlcnRWYWx1ZSIsImxpZ2h0UHJvcHMiXSxNbz1bImNoaWxkcmVuIiwic3BhY2UiLCJ2YWx1ZVByb3BOYW1lIl0sam89e3NwYWNlOk90LlosZ3JvdXA6VXIuWi5Hcm91cH07ZnVuY3Rpb24gRm8obil7dmFyIGU9YXJndW1lbnRzLmxlbmd0aDw9MT92b2lkIDA6YXJndW1lbnRzWzFdO3JldHVybiBlJiZlLnRhcmdldCYmbiBpbiBlLnRhcmdldD9lLnRhcmdldFtuXTplfXZhciBObz1mdW5jdGlvbihlKXt2YXIgcj1lLmNoaWxkcmVuLHQ9ZS52YWx1ZSxvPXQ9PT12b2lkIDA/W106dCx1PWUudmFsdWVQcm9wTmFtZSxpPWUub25DaGFuZ2UsYz1lLmZpZWxkUHJvcHMsZz1lLnNwYWNlLG09ZS50eXBlLFM9bT09PXZvaWQgMD8ic3BhY2UiOm0sWj1lLnRyYW5zZm9ybSx5PWUuY29udmVydFZhbHVlLHg9ZS5saWdodFByb3BzLGg9KDAscS5aKShlLCRvKSxJPSgwLG90LkopKGZ1bmN0aW9uKHcseil7dmFyIEIsRT0oMCxtbi5aKShvKTtFW3pdPUZvKHV8fCJ2YWx1ZSIsdyksaT09bnVsbHx8aShFKSxjPT1udWxsfHwoQj1jLm9uQ2hhbmdlKT09PW51bGx8fEI9PT12b2lkIDB8fEIuY2FsbChjLEUpfSksQz0tMSxUPSgwLEpuLlopKCgwLG10LmgpKHIsbyxlKSkubWFwKGZ1bmN0aW9uKHcpe2lmKGQuaXNWYWxpZEVsZW1lbnQodykpe3ZhciB6LEIsRTtDKz0xO3ZhciBQPUMsJD0odz09bnVsbHx8KHo9dy50eXBlKT09PW51bGx8fHo9PT12b2lkIDA/dm9pZCAwOnouZGlzcGxheU5hbWUpPT09IlByb0Zvcm1Db21wb25lbnQifHwodz09bnVsbHx8KEI9dy5wcm9wcyk9PT1udWxsfHxCPT09dm9pZCAwP3ZvaWQgMDpCLnJlYWRvbmx5KSxKPSQ/KDAsbC5aKSgoMCxsLlopKHtrZXk6UCxpZ25vcmVGb3JtSXRlbTohMH0sdy5wcm9wc3x8e30pLHt9LHtmaWVsZFByb3BzOigwLGwuWikoKDAsbC5aKSh7fSx3PT1udWxsfHwoRT13LnByb3BzKT09PW51bGx8fEU9PT12b2lkIDA/dm9pZCAwOkUuZmllbGRQcm9wcykse30se29uQ2hhbmdlOmZ1bmN0aW9uKCl7SShhcmd1bWVudHMubGVuZ3RoPD0wP3ZvaWQgMDphcmd1bWVudHNbMF0sUCl9fSksdmFsdWU6bz09bnVsbD92b2lkIDA6b1tQXSxvbkNoYW5nZTp2b2lkIDB9KTooMCxsLlopKCgwLGwuWikoe2tleTpQfSx3LnByb3BzfHx7fSkse30se3ZhbHVlOm89PW51bGw/dm9pZCAwOm9bUF0sb25DaGFuZ2U6ZnVuY3Rpb24oYil7dmFyIE4sSztJKGIsUCksKE49KEs9dy5wcm9wcykub25DaGFuZ2UpPT09bnVsbHx8Tj09PXZvaWQgMHx8Ti5jYWxsKEssYil9fSk7cmV0dXJuIGQuY2xvbmVFbGVtZW50KHcsSil9cmV0dXJuIHd9KSxSPWpvW1NdLFk9KDAsSG4uengpKGgpLEc9WS5Sb3dXcmFwcGVyLGs9KDAsZC51c2VNZW1vKShmdW5jdGlvbigpe3JldHVybigwLGwuWikoe30sUz09PSJncm91cCI/e2NvbXBhY3Q6ITB9Ont9KX0sW1NdKSxpZT0oMCxkLnVzZUNhbGxiYWNrKShmdW5jdGlvbih3KXt2YXIgej13LmNoaWxkcmVuO3JldHVybigwLHMuanN4KShSLCgwLGwuWikoKDAsbC5aKSgoMCxsLlopKHt9LGspLGcpLHt9LHthbGlnbjoic3RhcnQiLHdyYXA6ITAsY2hpbGRyZW46en0pKX0sW1IsZyxrXSk7cmV0dXJuKDAscy5qc3gpKEcse1dyYXBwZXI6aWUsY2hpbGRyZW46VH0pfSxPbz1kLmZvcndhcmRSZWYoZnVuY3Rpb24obixlKXt2YXIgcj1uLmNoaWxkcmVuLHQ9bi5zcGFjZSxvPW4udmFsdWVQcm9wTmFtZSx1PSgwLHEuWikobixNbyk7cmV0dXJuKDAsZC51c2VJbXBlcmF0aXZlSGFuZGxlKShlLGZ1bmN0aW9uKCl7cmV0dXJue319KSwoMCxzLmpzeCkoTm8sKDAsbC5aKSgoMCxsLlopKCgwLGwuWikoe3NwYWNlOnQsdmFsdWVQcm9wTmFtZTpvfSx1LmZpZWxkUHJvcHMpLHt9LHtvbkNoYW5nZTp2b2lkIDB9LHUpLHt9LHtjaGlsZHJlbjpyfSkpfSksRG89KDAsRW8uRykoT28pLEJvPURvLEFvPWZ1bmN0aW9uKGUscil7dmFyIHQ9ci5nZW5JdGVtcztpZihlLnZhbHVlVHlwZT09PSJmb3JtU2V0IiYmZS5kYXRhSW5kZXgpe3ZhciBvLHU7cmV0dXJuIWUuY29sdW1uc3x8IUFycmF5LmlzQXJyYXkoZS5jb2x1bW5zKT9udWxsOigwLGQuY3JlYXRlRWxlbWVudCkoQm8sKDAsbC5aKSgoMCxsLlopKHt9LChvPWUuZ2V0Rm9ybUl0ZW1Qcm9wcyk9PT1udWxsfHxvPT09dm9pZCAwP3ZvaWQgMDpvLmNhbGwoZSkpLHt9LHtrZXk6ZS5rZXksaW5pdGlhbFZhbHVlOmUuaW5pdGlhbFZhbHVlLG5hbWU6ZS5kYXRhSW5kZXgsbGFiZWw6ZS5sYWJlbCxjb2xQcm9wczplLmNvbFByb3BzLHJvd1Byb3BzOmUucm93UHJvcHN9LCh1PWUuZ2V0RmllbGRQcm9wcyk9PT1udWxsfHx1PT09dm9pZCAwP3ZvaWQgMDp1LmNhbGwoZSkpLHQoZS5jb2x1bW5zKSl9cmV0dXJuITB9LExvPXF0LkEuR3JvdXAsS289ZnVuY3Rpb24oZSxyKXt2YXIgdD1yLmdlbkl0ZW1zO2lmKGUudmFsdWVUeXBlPT09Imdyb3VwIil7dmFyIG87cmV0dXJuIWUuY29sdW1uc3x8IUFycmF5LmlzQXJyYXkoZS5jb2x1bW5zKT9udWxsOigwLHMuanN4KShMbywoMCxsLlopKCgwLGwuWikoe2xhYmVsOmUubGFiZWwsY29sUHJvcHM6ZS5jb2xQcm9wcyxyb3dQcm9wczplLnJvd1Byb3BzfSwobz1lLmdldEZpZWxkUHJvcHMpPT09bnVsbHx8bz09PXZvaWQgMD92b2lkIDA6by5jYWxsKGUpKSx7fSx7Y2hpbGRyZW46dChlLmNvbHVtbnMpfSksZS5rZXkpfXJldHVybiEwfSx6bz1mdW5jdGlvbihlKXtyZXR1cm4gZS52YWx1ZVR5cGUmJnR5cGVvZiBlLnZhbHVlVHlwZT09InN0cmluZyImJlsiaW5kZXgiLCJpbmRleEJvcmRlciIsIm9wdGlvbiJdLmluY2x1ZGVzKGU9PW51bGw/dm9pZCAwOmUudmFsdWVUeXBlKT9udWxsOiEwfSxYcj1bem8sS28sd28sQW8sUG8sWm9dLFdvPWZ1bmN0aW9uKGUscil7Zm9yKHZhciB0PTA7dDxYci5sZW5ndGg7dCsrKXt2YXIgbz1Yclt0XSx1PW8oZSxyKTtpZih1IT09ITApcmV0dXJuIHV9cmV0dXJuIElvKGUscil9LEhvPVsiY29sdW1ucyIsImxheW91dFR5cGUiLCJ0eXBlIiwiYWN0aW9uIiwic2hvdWxkVXBkYXRlIiwiZm9ybVJlZiJdLFZvPXtEcmF3ZXJGb3JtOkJsLFF1ZXJ5RmlsdGVyOm9vLExpZ2h0RmlsdGVyOlVsLFN0ZXBGb3JtOl90LlN0ZXBGb3JtLFN0ZXBzRm9ybTpTbyxNb2RhbEZvcm06SmwsRW1iZWQ6Q28sRm9ybTpxdC5BfTtmdW5jdGlvbiBVbyhuKXt2YXIgZT1uLmNvbHVtbnMscj1uLmxheW91dFR5cGUsdD1yPT09dm9pZCAwPyJGb3JtIjpyLG89bi50eXBlLHU9bz09PXZvaWQgMD8iZm9ybSI6byxpPW4uYWN0aW9uLGM9bi5zaG91bGRVcGRhdGUsZz1jPT09dm9pZCAwP2Z1bmN0aW9uKEYsYil7cmV0dXJuKDAsZi5aUCkoRikhPT0oMCxmLlpQKShiKX06YyxtPW4uZm9ybVJlZixTPSgwLHEuWikobixIbyksWj1Wb1t0XXx8cXQuQSx5PUR0LloudXNlRm9ybSgpLHg9KDAsZmUuWikoeSwxKSxoPXhbMF0sST1EdC5aLnVzZUZvcm1JbnN0YW5jZSgpLEM9KDAsZC51c2VTdGF0ZSkoW10pLFQ9KDAsZmUuWikoQywyKSxSPVRbMV0sWT0oMCxkLnVzZVN0YXRlKShmdW5jdGlvbigpe3JldHVybltdfSksRz0oMCxmZS5aKShZLDIpLGs9R1swXSxpZT1HWzFdLHc9amwobi5mb3JtfHxJfHxoKSx6PSgwLGQudXNlUmVmKSgpLEI9KDAsT3IuZCkobiksRT0oMCxvdC5KKShmdW5jdGlvbihGKXtyZXR1cm4gRi5maWx0ZXIoZnVuY3Rpb24oYil7cmV0dXJuIShiLmhpZGVJbkZvcm0mJnU9PT0iZm9ybSIpfSkuc29ydChmdW5jdGlvbihiLE4pe3JldHVybiBOLm9yZGVyfHxiLm9yZGVyPyhOLm9yZGVyfHwwKS0oYi5vcmRlcnx8MCk6KE4uaW5kZXh8fDApLShiLmluZGV4fHwwKX0pLm1hcChmdW5jdGlvbihiLE4pe3ZhciBLPSgwLG10LmgpKGIudGl0bGUsYiwiZm9ybSIsKDAscy5qc3gpKGduLkcse2xhYmVsOmIudGl0bGUsdG9vbHRpcDpiLnRvb2x0aXB8fGIudGlwfSkpLFg9KDAsYS5ZKSh7dGl0bGU6SyxsYWJlbDpLLG5hbWU6Yi5uYW1lLHZhbHVlVHlwZTooMCxtdC5oKShiLnZhbHVlVHlwZSx7fSksa2V5OmIua2V5fHxiLmRhdGFJbmRleHx8Tixjb2x1bW5zOmIuY29sdW1ucyx2YWx1ZUVudW06Yi52YWx1ZUVudW0sZGF0YUluZGV4OmIuZGF0YUluZGV4fHxiLmtleSxpbml0aWFsVmFsdWU6Yi5pbml0aWFsVmFsdWUsd2lkdGg6Yi53aWR0aCxpbmRleDpiLmluZGV4LHJlYWRvbmx5OmIucmVhZG9ubHksY29sU2l6ZTpiLmNvbFNpemUsY29sUHJvcHM6Yi5jb2xQcm9wcyxyb3dQcm9wczpiLnJvd1Byb3BzLGNsYXNzTmFtZTpiLmNsYXNzTmFtZSx0b29sdGlwOmIudG9vbHRpcHx8Yi50aXAsZGVwZW5kZW5jaWVzOmIuZGVwZW5kZW5jaWVzLHByb0ZpZWxkUHJvcHM6Yi5wcm9GaWVsZFByb3BzLGlnbm9yZUZvcm1JdGVtOmIuaWdub3JlRm9ybUl0ZW0sZ2V0RmllbGRQcm9wczpiLmZpZWxkUHJvcHM/ZnVuY3Rpb24oKXtyZXR1cm4oMCxtdC5oKShiLmZpZWxkUHJvcHMsdy5jdXJyZW50LGIpfTp2b2lkIDAsZ2V0Rm9ybUl0ZW1Qcm9wczpiLmZvcm1JdGVtUHJvcHM/ZnVuY3Rpb24oKXtyZXR1cm4oMCxtdC5oKShiLmZvcm1JdGVtUHJvcHMsdy5jdXJyZW50LGIpfTp2b2lkIDAscmVuZGVyOmIucmVuZGVyLHJlbmRlckZvcm1JdGVtOmIucmVuZGVyRm9ybUl0ZW0scmVuZGVyVGV4dDpiLnJlbmRlclRleHQscmVxdWVzdDpiLnJlcXVlc3QscGFyYW1zOmIucGFyYW1zLHRyYW5zZm9ybTpiLnRyYW5zZm9ybSxjb252ZXJ0VmFsdWU6Yi5jb252ZXJ0VmFsdWUsZGVib3VuY2VUaW1lOmIuZGVib3VuY2VUaW1lLGRlZmF1bHRLZXlXb3JkczpiLmRlZmF1bHRLZXlXb3Jkc30pO3JldHVybiBXbyhYLHthY3Rpb246aSx0eXBlOnUsb3JpZ2luSXRlbTpiLGZvcm1SZWY6dyxnZW5JdGVtczpFfSl9KS5maWx0ZXIoZnVuY3Rpb24oYil7cmV0dXJuISFifSl9KSxQPSgwLGQudXNlQ2FsbGJhY2spKGZ1bmN0aW9uKEYsYil7dmFyIE49Qi5jdXJyZW50Lm9uVmFsdWVzQ2hhbmdlOyhnPT09ITB8fHR5cGVvZiBnPT0iZnVuY3Rpb24iJiZnKGIsei5jdXJyZW50KSkmJmllKFtdKSx6LmN1cnJlbnQ9YixOPT1udWxsfHxOKEYsYil9LFtCLGddKSwkPSgwLERyLlopKGZ1bmN0aW9uKCl7aWYody5jdXJyZW50JiYhKGUubGVuZ3RoJiZBcnJheS5pc0FycmF5KGVbMF0pKSlyZXR1cm4gRShlKX0sW2UsUz09bnVsbD92b2lkIDA6Uy5vcGVuLGksdSxrLCEhdy5jdXJyZW50XSksSj0oMCxEci5aKShmdW5jdGlvbigpe3JldHVybiB0PT09IlN0ZXBzRm9ybSI/e2ZvcmNlVXBkYXRlOlIsY29sdW1uczplfTp7fX0sW2UsdF0pO3JldHVybigwLGQudXNlSW1wZXJhdGl2ZUhhbmRsZSkobSxmdW5jdGlvbigpe3JldHVybiB3LmN1cnJlbnR9LFt3LmN1cnJlbnRdKSwoMCxzLmpzeCkoWiwoMCxsLlopKCgwLGwuWikoKDAsbC5aKSh7fSxKKSxTKSx7fSx7b25Jbml0OmZ1bmN0aW9uKGIsTil7dmFyIEs7bSYmKG0uY3VycmVudD1OKSxTPT1udWxsfHwoSz1TLm9uSW5pdCk9PT1udWxsfHxLPT09dm9pZCAwfHxLLmNhbGwoUyxiLE4pLHcuY3VycmVudD1OfSxmb3JtOm4uZm9ybXx8aCxmb3JtUmVmOncsb25WYWx1ZXNDaGFuZ2U6UCxjaGlsZHJlbjokfSkpfXZhciBHcj1VbztmdW5jdGlvbiBYbyhuKXt2YXIgZT1uLnJlcGxhY2UoL1tBLVpdL2csZnVuY3Rpb24ocil7cmV0dXJuIi0iLmNvbmNhdChyLnRvTG93ZXJDYXNlKCkpfSk7cmV0dXJuIGUuc3RhcnRzV2l0aCgiLSIpJiYoZT1lLnNsaWNlKDEpKSxlfXZhciBHbz1mdW5jdGlvbihlLHIpe3JldHVybiFlJiZyIT09ITE/KHI9PW51bGw/dm9pZCAwOnIuZmlsdGVyVHlwZSk9PT0ibGlnaHQiPyJMaWdodEZpbHRlciI6IlF1ZXJ5RmlsdGVyIjoiRm9ybSJ9LEpvPWZ1bmN0aW9uKGUscix0KXtyZXR1cm4hZSYmdD09PSJMaWdodEZpbHRlciI/KDAscG4uWikoKDAsbC5aKSh7fSxyKSxbImxhYmVsV2lkdGgiLCJkZWZhdWx0Q29sbGFwc2VkIiwiZmlsdGVyVHlwZSJdKTplP3t9OigwLHBuLlopKCgwLGwuWikoe2xhYmVsV2lkdGg6cj9yPT1udWxsP3ZvaWQgMDpyLmxhYmVsV2lkdGg6dm9pZCAwLGRlZmF1bHRDb2xsYXBzZWQ6ITB9LHIpLFsiZmlsdGVyVHlwZSJdKX0sWW89ZnVuY3Rpb24oZSxyKXtyZXR1cm4gZT8oMCxwbi5aKShyLFsiaWdub3JlUnVsZXMiXSk6KDAsbC5aKSh7aWdub3JlUnVsZXM6ITB9LHIpfSxRbz1mdW5jdGlvbihlKXt2YXIgcj1lLm9uU3VibWl0LHQ9ZS5mb3JtUmVmLG89ZS5kYXRlRm9ybWF0dGVyLHU9bz09PXZvaWQgMD8ic3RyaW5nIjpvLGk9ZS50eXBlLGM9ZS5jb2x1bW5zLGc9ZS5hY3Rpb24sbT1lLmdob3N0LFM9ZS5tYW51YWxSZXF1ZXN0LFo9ZS5vblJlc2V0LHk9ZS5zdWJtaXRCdXR0b25Mb2FkaW5nLHg9ZS5zZWFyY2gsaD1lLmZvcm0sST1lLmJvcmRlcmVkLEM9KDAsZC51c2VDb250ZXh0KSh3ZS5MXyksVD1DLmhhc2hJZCxSPWk9PT0iZm9ybSIsWT1mdW5jdGlvbigpe3ZhciBQPSgwLHNlLlopKCgwLEwuWikoKS5tYXJrKGZ1bmN0aW9uICQoSixGKXtyZXR1cm4oMCxMLlopKCkud3JhcChmdW5jdGlvbihOKXtmb3IoOzspc3dpdGNoKE4ucHJldj1OLm5leHQpe2Nhc2UgMDpyJiZyKEosRik7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gTi5zdG9wKCl9fSwkKX0pKTtyZXR1cm4gZnVuY3Rpb24oSixGKXtyZXR1cm4gUC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLEc9KDAsZC51c2VDb250ZXh0KShkbi5aUC5Db25maWdDb250ZXh0KSxrPUcuZ2V0UHJlZml4Q2xzLGllPSgwLGQudXNlTWVtbykoZnVuY3Rpb24oKXtyZXR1cm4gYy5maWx0ZXIoZnVuY3Rpb24oUCl7cmV0dXJuIShQPT09bWUuWi5FWFBBTkRfQ09MVU1OfHxQPT09bWUuWi5TRUxFQ1RJT05fQ09MVU1OfHwoUC5oaWRlSW5TZWFyY2h8fFAuc2VhcmNoPT09ITEpJiZpIT09ImZvcm0ifHxpPT09ImZvcm0iJiZQLmhpZGVJbkZvcm0pfSkubWFwKGZ1bmN0aW9uKFApe3ZhciAkLEo9IVAudmFsdWVUeXBlfHxbInRleHRhcmVhIiwianNvbkNvZGUiLCJjb2RlIl0uaW5jbHVkZXMoUD09bnVsbD92b2lkIDA6UC52YWx1ZVR5cGUpJiZpPT09InRhYmxlIj8idGV4dCI6UD09bnVsbD92b2lkIDA6UC52YWx1ZVR5cGUsRj0oUD09bnVsbD92b2lkIDA6UC5rZXkpfHwoUD09bnVsbHx8KCQ9UC5kYXRhSW5kZXgpPT09bnVsbHx8JD09PXZvaWQgMD92b2lkIDA6JC50b1N0cmluZygpKTtyZXR1cm4oMCxsLlopKCgwLGwuWikoKDAsbC5aKSh7fSxQKSx7fSx7d2lkdGg6dm9pZCAwfSxQLnNlYXJjaCYmKDAsWm4uWikoUC5zZWFyY2gpPT09Im9iamVjdCI/UC5zZWFyY2g6e30pLHt9LHt2YWx1ZVR5cGU6Sixwcm9GaWVsZFByb3BzOigwLGwuWikoKDAsbC5aKSh7fSxQLnByb0ZpZWxkUHJvcHMpLHt9LHtwcm9GaWVsZEtleTpGPyJ0YWJsZS1maWVsZC0iLmNvbmNhdChGKTp2b2lkIDB9KX0pfSl9LFtjLGldKSx3PWsoInByby10YWJsZS1zZWFyY2giKSx6PWsoInByby10YWJsZS1mb3JtIiksQj0oMCxkLnVzZU1lbW8pKGZ1bmN0aW9uKCl7cmV0dXJuIEdvKFIseCl9LFt4LFJdKSxFPSgwLGQudXNlTWVtbykoZnVuY3Rpb24oKXtyZXR1cm57c3VibWl0dGVyOntzdWJtaXRCdXR0b25Qcm9wczp7bG9hZGluZzp5fX19fSxbeV0pO3JldHVybigwLHMuanN4KSgiZGl2Iix7Y2xhc3NOYW1lOlplKCkoVCwoMCxwLlopKCgwLHAuWikoKDAscC5aKSgoMCxwLlopKCgwLHAuWikoKDAscC5aKSgoMCxwLlopKCgwLHAuWikoKDAscC5aKSh7fSxrKCJwcm8tY2FyZCIpLCEwKSwiIi5jb25jYXQoaygicHJvLWNhcmQiKSwiLWJvcmRlciIpLCEhSSksIiIuY29uY2F0KGsoInByby1jYXJkIiksIi1ib3JkZXJlZCIpLCEhSSksIiIuY29uY2F0KGsoInByby1jYXJkIiksIi1naG9zdCIpLCEhbSksdywhMCkseixSKSxrKCJwcm8tdGFibGUtc2VhcmNoLSIuY29uY2F0KFhvKEIpKSksITApLCIiLmNvbmNhdCh3LCItZ2hvc3QiKSxtKSx4PT1udWxsP3ZvaWQgMDp4LmNsYXNzTmFtZSx4IT09ITEmJih4PT1udWxsP3ZvaWQgMDp4LmNsYXNzTmFtZSkpKSxjaGlsZHJlbjooMCxzLmpzeCkoR3IsKDAsbC5aKSgoMCxsLlopKCgwLGwuWikoKDAsbC5aKSh7bGF5b3V0VHlwZTpCLGNvbHVtbnM6aWUsdHlwZTppfSxFKSxKbyhSLHgsQikpLFlvKFIsaHx8e30pKSx7fSx7Zm9ybVJlZjp0LGFjdGlvbjpnLGRhdGVGb3JtYXR0ZXI6dSxvbkluaXQ6ZnVuY3Rpb24oJCxKKXtpZih0LmN1cnJlbnQ9SixpIT09ImZvcm0iKXt2YXIgRixiLE4sSz0oRj1nLmN1cnJlbnQpPT09bnVsbHx8Rj09PXZvaWQgMD92b2lkIDA6Ri5wYWdlSW5mbyxYPSQsXz1YLmN1cnJlbnQsTz1fPT09dm9pZCAwP0s9PW51bGw/dm9pZCAwOksuY3VycmVudDpfLFc9WC5wYWdlU2l6ZSxuZT1XPT09dm9pZCAwP0s9PW51bGw/dm9pZCAwOksucGFnZVNpemU6VztpZigoYj1nLmN1cnJlbnQpPT09bnVsbHx8Yj09PXZvaWQgMHx8KE49Yi5zZXRQYWdlSW5mbyk9PT1udWxsfHxOPT09dm9pZCAwfHxOLmNhbGwoYiwoMCxsLlopKCgwLGwuWikoe30sSykse30se2N1cnJlbnQ6cGFyc2VJbnQoTywxMCkscGFnZVNpemU6cGFyc2VJbnQobmUsMTApfSkpLFMpcmV0dXJuO1koJCwhMCl9fSxvblJlc2V0OmZ1bmN0aW9uKCQpe1o9PW51bGx8fFooJCl9LG9uRmluaXNoOmZ1bmN0aW9uKCQpe1koJCwhMSl9LGluaXRpYWxWYWx1ZXM6aD09bnVsbD92b2lkIDA6aC5pbml0aWFsVmFsdWVzfSkpfSl9LHFvPVFvLGtvPWZ1bmN0aW9uKG4peygwLGpyLlopKHIsbik7dmFyIGU9KDAsRnIuWikocik7ZnVuY3Rpb24gcigpe3ZhciB0OygwLE1yLlopKHRoaXMscik7Zm9yKHZhciBvPWFyZ3VtZW50cy5sZW5ndGgsdT1uZXcgQXJyYXkobyksaT0wO2k8bztpKyspdVtpXT1hcmd1bWVudHNbaV07cmV0dXJuIHQ9ZS5jYWxsLmFwcGx5KGUsW3RoaXNdLmNvbmNhdCh1KSksKDAscC5aKSgoMCxidC5aKSh0KSwib25TdWJtaXQiLGZ1bmN0aW9uKGMsZyl7dmFyIG09dC5wcm9wcyxTPW0ucGFnaW5hdGlvbixaPW0uYmVmb3JlU2VhcmNoU3VibWl0LHk9Wj09PXZvaWQgMD9mdW5jdGlvbihrKXtyZXR1cm4ga306Wix4PW0uYWN0aW9uLGg9bS5vblN1Ym1pdCxJPW0ub25Gb3JtU2VhcmNoU3VibWl0LEM9Uz8oMCxhLlkpKHtjdXJyZW50OlMuY3VycmVudCxwYWdlU2l6ZTpTLnBhZ2VTaXplfSk6e30sVD0oMCxsLlopKCgwLGwuWikoe30sYykse30se190aW1lc3RhbXA6RGF0ZS5ub3coKX0sQyksUj0oMCxwbi5aKSh5KFQpLE9iamVjdC5rZXlzKEMpKTtpZihJKFIpLCFnKXt2YXIgWSxHOyhZPXguY3VycmVudCk9PT1udWxsfHxZPT09dm9pZCAwfHwoRz1ZLnNldFBhZ2VJbmZvKT09PW51bGx8fEc9PT12b2lkIDB8fEcuY2FsbChZLHtjdXJyZW50OjF9KX1oJiYhZyYmKGg9PW51bGx8fGgoYykpfSksKDAscC5aKSgoMCxidC5aKSh0KSwib25SZXNldCIsZnVuY3Rpb24oYyl7dmFyIGcsbSxTPXQucHJvcHMsWj1TLnBhZ2luYXRpb24seT1TLmJlZm9yZVNlYXJjaFN1Ym1pdCx4PXk9PT12b2lkIDA/ZnVuY3Rpb24oWSl7cmV0dXJuIFl9OnksaD1TLmFjdGlvbixJPVMub25Gb3JtU2VhcmNoU3VibWl0LEM9Uy5vblJlc2V0LFQ9Wj8oMCxhLlkpKHtjdXJyZW50OlouY3VycmVudCxwYWdlU2l6ZTpaLnBhZ2VTaXplfSk6e30sUj0oMCxwbi5aKSh4KCgwLGwuWikoKDAsbC5aKSh7fSxjKSxUKSksT2JqZWN0LmtleXMoVCkpO0koUiksKGc9aC5jdXJyZW50KT09PW51bGx8fGc9PT12b2lkIDB8fChtPWcuc2V0UGFnZUluZm8pPT09bnVsbHx8bT09PXZvaWQgMHx8bS5jYWxsKGcse2N1cnJlbnQ6MX0pLEM9PW51bGx8fEMoKX0pLCgwLHAuWikoKDAsYnQuWikodCksImlzRXF1YWwiLGZ1bmN0aW9uKGMpe3ZhciBnPXQucHJvcHMsbT1nLmNvbHVtbnMsUz1nLmxvYWRpbmcsWj1nLmZvcm1SZWYseT1nLnR5cGUseD1nLmNhcmRCb3JkZXJlZCxoPWcuZGF0ZUZvcm1hdHRlcixJPWcuZm9ybSxDPWcuc2VhcmNoLFQ9Zy5tYW51YWxSZXF1ZXN0LFI9e2NvbHVtbnM6bSxsb2FkaW5nOlMsZm9ybVJlZjpaLHR5cGU6eSxjYXJkQm9yZGVyZWQ6eCxkYXRlRm9ybWF0dGVyOmgsZm9ybTpJLHNlYXJjaDpDLG1hbnVhbFJlcXVlc3Q6VH07cmV0dXJuISgwLE5yLkEpKFIse2NvbHVtbnM6Yy5jb2x1bW5zLGZvcm1SZWY6Yy5mb3JtUmVmLGxvYWRpbmc6Yy5sb2FkaW5nLHR5cGU6Yy50eXBlLGNhcmRCb3JkZXJlZDpjLmNhcmRCb3JkZXJlZCxkYXRlRm9ybWF0dGVyOmMuZGF0ZUZvcm1hdHRlcixmb3JtOmMuZm9ybSxzZWFyY2g6Yy5zZWFyY2gsbWFudWFsUmVxdWVzdDpjLm1hbnVhbFJlcXVlc3R9KX0pLCgwLHAuWikoKDAsYnQuWikodCksInNob3VsZENvbXBvbmVudFVwZGF0ZSIsZnVuY3Rpb24oYyl7cmV0dXJuIHQuaXNFcXVhbChjKX0pLCgwLHAuWikoKDAsYnQuWikodCksInJlbmRlciIsZnVuY3Rpb24oKXt2YXIgYz10LnByb3BzLGc9Yy5jb2x1bW5zLG09Yy5sb2FkaW5nLFM9Yy5mb3JtUmVmLFo9Yy50eXBlLHk9Yy5hY3Rpb24seD1jLmNhcmRCb3JkZXJlZCxoPWMuZGF0ZUZvcm1hdHRlcixJPWMuZm9ybSxDPWMuc2VhcmNoLFQ9Yy5wYWdpbmF0aW9uLFI9Yy5naG9zdCxZPWMubWFudWFsUmVxdWVzdCxHPVQ/KDAsYS5ZKSh7Y3VycmVudDpULmN1cnJlbnQscGFnZVNpemU6VC5wYWdlU2l6ZX0pOnt9O3JldHVybigwLHMuanN4KShxbyx7c3VibWl0QnV0dG9uTG9hZGluZzptLGNvbHVtbnM6Zyx0eXBlOlosZ2hvc3Q6Uixmb3JtUmVmOlMsb25TdWJtaXQ6dC5vblN1Ym1pdCxtYW51YWxSZXF1ZXN0Olksb25SZXNldDp0Lm9uUmVzZXQsZGF0ZUZvcm1hdHRlcjpoLHNlYXJjaDpDLGZvcm06KDAsbC5aKSgoMCxsLlopKHthdXRvRm9jdXNGaXJzdElucHV0OiExfSxJKSx7fSx7ZXh0cmFVcmxQYXJhbXM6KDAsbC5aKSgoMCxsLlopKHt9LEcpLEk9PW51bGw/dm9pZCAwOkkuZXh0cmFVcmxQYXJhbXMpfSksYWN0aW9uOnksYm9yZGVyZWQ6RXIoInNlYXJjaCIseCl9KX0pLHR9cmV0dXJuKDAsJHIuWikocil9KGQuQ29tcG9uZW50KSxfbz1rbyxlaT12KDMzMTYwKSxFdD12KDgzMDYyKSxuaT12KDYyNjM1KSx0aT12KDUwNTg3KSxyaT12KDY2MDE3KSxhaT12KDQyOTUyKSxsaT12KDIwODYzKSxvaT12KDYwOTYwKSxpaT12KDU1MjQxKSxzaT12KDg0NTY3KSxjaT1mdW5jdGlvbihlKXtyZXR1cm4oMCxwLlopKCgwLHAuWikoKDAscC5aKSh7fSxlLmNvbXBvbmVudENscyx7d2lkdGg6ImF1dG8iLCImLXRpdGxlIjp7ZGlzcGxheToiZmxleCIsYWxpZ25JdGVtczoiY2VudGVyIixqdXN0aWZ5Q29udGVudDoic3BhY2UtYmV0d2VlbiIsaGVpZ2h0OiIzMnB4In0sIiYtb3ZlcmxheSI6KDAscC5aKSgoMCxwLlopKCgwLHAuWikoKDAscC5aKSh7fSwiIi5jb25jYXQoZS5hbnRDbHMsIi1wb3BvdmVyLWlubmVyLWNvbnRlbnQiKSx7d2lkdGg6IjIwMHB4IixwYWRkaW5nQmxvY2s6MCxwYWRkaW5nSW5saW5lOjAscGFkZGluZ0Jsb2NrRW5kOjh9KSwiIi5jb25jYXQoZS5hbnRDbHMsIi10cmVlLW5vZGUtY29udGVudC13cmFwcGVyOmhvdmVyIikse2JhY2tncm91bmRDb2xvcjoidHJhbnNwYXJlbnQifSksIiIuY29uY2F0KGUuYW50Q2xzLCItdHJlZS1kcmFnZ2FibGUtaWNvbiIpLHtjdXJzb3I6ImdyYWIifSksIiIuY29uY2F0KGUuYW50Q2xzLCItdHJlZS10cmVlbm9kZSIpLCgwLHAuWikoKDAscC5aKSh7YWxpZ25JdGVtczoiY2VudGVyIiwiJjpob3ZlciI6KDAscC5aKSh7fSwiIi5jb25jYXQoZS5jb21wb25lbnRDbHMsIi1saXN0LWl0ZW0tb3B0aW9uIikse2Rpc3BsYXk6ImJsb2NrIn0pfSwiIi5jb25jYXQoZS5hbnRDbHMsIi10cmVlLWNoZWNrYm94Iikse21hcmdpbklubGluZUVuZDoiNHB4In0pLCIiLmNvbmNhdChlLmFudENscywiLXRyZWUtdGl0bGUiKSx7d2lkdGg6IjEwMCUifSkpfSksIiIuY29uY2F0KGUuY29tcG9uZW50Q2xzLCItYWN0aW9uLXJlc3QtYnV0dG9uIikse2NvbG9yOmUuY29sb3JQcmltYXJ5fSksIiIuY29uY2F0KGUuY29tcG9uZW50Q2xzLCItbGlzdCIpLCgwLHAuWikoKDAscC5aKSgoMCxwLlopKHtkaXNwbGF5OiJmbGV4IixmbGV4RGlyZWN0aW9uOiJjb2x1bW4iLHdpZHRoOiIxMDAlIixwYWRkaW5nQmxvY2tTdGFydDo4fSwiJiIuY29uY2F0KGUuY29tcG9uZW50Q2xzLCItbGlzdC1ncm91cCIpLHtwYWRkaW5nQmxvY2tTdGFydDowfSksIiYtdGl0bGUiLHttYXJnaW5CbG9ja1N0YXJ0OiI2cHgiLG1hcmdpbkJsb2NrRW5kOiI2cHgiLHBhZGRpbmdJbmxpbmVTdGFydDoiMjRweCIsY29sb3I6ZS5jb2xvclRleHRTZWNvbmRhcnksZm9udFNpemU6IjEycHgifSksIiYtaXRlbSIse2Rpc3BsYXk6ImZsZXgiLGFsaWduSXRlbXM6ImNlbnRlciIsbWF4SGVpZ2h0OjI0LGp1c3RpZnlDb250ZW50OiJzcGFjZS1iZXR3ZWVuIiwiJi10aXRsZSI6e2ZsZXg6MSxtYXhXaWR0aDo4MCx0ZXh0T3ZlcmZsb3c6ImVsbGlwc2lzIixvdmVyZmxvdzoiaGlkZGVuIix3b3JkQnJlYWs6ImJyZWFrLWFsbCIsd2hpdGVTcGFjZToibm93cmFwIn0sIiYtb3B0aW9uIjp7ZGlzcGxheToibm9uZSIsZmxvYXQ6InJpZ2h0IixjdXJzb3I6InBvaW50ZXIiLCI+IHNwYW4iOnsiPiBzcGFuLmFudGljb24iOntjb2xvcjplLmNvbG9yUHJpbWFyeX19LCI+IHNwYW4gKyBzcGFuIjp7bWFyZ2luSW5saW5lU3RhcnQ6NH19fSkpfTtmdW5jdGlvbiB1aShuKXtyZXR1cm4oMCx1bi5YaikoIkNvbHVtblNldHRpbmciLGZ1bmN0aW9uKGUpe3ZhciByPSgwLGwuWikoKDAsbC5aKSh7fSxlKSx7fSx7Y29tcG9uZW50Q2xzOiIuIi5jb25jYXQobil9KTtyZXR1cm5bY2kocildfSl9dmFyIGRpPVsia2V5IiwiZGF0YUluZGV4IiwiY2hpbGRyZW4iXSx2aT1bImRpc2FibGVkIl0sZHI9ZnVuY3Rpb24oZSl7dmFyIHI9ZS50aXRsZSx0PWUuc2hvdyxvPWUuY2hpbGRyZW4sdT1lLmNvbHVtbktleSxpPWUuZml4ZWQsYz0oMCxkLnVzZUNvbnRleHQpKFR0KSxnPWMuY29sdW1uc01hcCxtPWMuc2V0Q29sdW1uc01hcDtyZXR1cm4gdD8oMCxzLmpzeCkoRXQuWix7dGl0bGU6cixjaGlsZHJlbjooMCxzLmpzeCkoInNwYW4iLHtvbkNsaWNrOmZ1bmN0aW9uKFope1ouc3RvcFByb3BhZ2F0aW9uKCksWi5wcmV2ZW50RGVmYXVsdCgpO3ZhciB5PWdbdV18fHt9LHg9KDAsbC5aKSgoMCxsLlopKHt9LGcpLHt9LCgwLHAuWikoe30sdSwoMCxsLlopKCgwLGwuWikoe30seSkse30se2ZpeGVkOml9KSkpO20oeCl9LGNoaWxkcmVuOm99KX0pOm51bGx9LGZpPWZ1bmN0aW9uKGUpe3ZhciByPWUuY29sdW1uS2V5LHQ9ZS5pc0xlYWYsbz1lLnRpdGxlLHU9ZS5jbGFzc05hbWUsaT1lLmZpeGVkLGM9ZS5zaG93TGlzdEl0ZW1PcHRpb24sZz0oMCx3ZS5ZQikoKSxtPSgwLGQudXNlQ29udGV4dCkod2UuTF8pLFM9bS5oYXNoSWQsWj0oMCxzLmpzeHMpKCJzcGFuIix7Y2xhc3NOYW1lOiIiLmNvbmNhdCh1LCItbGlzdC1pdGVtLW9wdGlvbiAiKS5jb25jYXQoUykudHJpbSgpLGNoaWxkcmVuOlsoMCxzLmpzeCkoZHIse2NvbHVtbktleTpyLGZpeGVkOiJsZWZ0Iix0aXRsZTpnLmdldE1lc3NhZ2UoInRhYmxlVG9vbEJhci5sZWZ0UGluIiwiXHU1NkZBXHU1QjlBXHU1NzI4XHU1MjE3XHU5OTk2Iiksc2hvdzppIT09ImxlZnQiLGNoaWxkcmVuOigwLHMuanN4KShuaS5aLHt9KX0pLCgwLHMuanN4KShkcix7Y29sdW1uS2V5OnIsZml4ZWQ6dm9pZCAwLHRpdGxlOmcuZ2V0TWVzc2FnZSgidGFibGVUb29sQmFyLm5vUGluIiwiXHU0RTBEXHU1NkZBXHU1QjlBIiksc2hvdzohIWksY2hpbGRyZW46KDAscy5qc3gpKHRpLlose30pfSksKDAscy5qc3gpKGRyLHtjb2x1bW5LZXk6cixmaXhlZDoicmlnaHQiLHRpdGxlOmcuZ2V0TWVzc2FnZSgidGFibGVUb29sQmFyLnJpZ2h0UGluIiwiXHU1NkZBXHU1QjlBXHU1NzI4XHU1MjE3XHU1QzNFIiksc2hvdzppIT09InJpZ2h0IixjaGlsZHJlbjooMCxzLmpzeCkocmkuWix7fSl9KV19KTtyZXR1cm4oMCxzLmpzeHMpKCJzcGFuIix7Y2xhc3NOYW1lOiIiLmNvbmNhdCh1LCItbGlzdC1pdGVtICIpLmNvbmNhdChTKS50cmltKCksY2hpbGRyZW46WygwLHMuanN4KSgiZGl2Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdCh1LCItbGlzdC1pdGVtLXRpdGxlICIpLmNvbmNhdChTKS50cmltKCksY2hpbGRyZW46b30pLGMmJiF0P1o6bnVsbF19LHIpfSx2cj1mdW5jdGlvbihlKXt2YXIgcix0LG8sdT1lLmxpc3QsaT1lLmRyYWdnYWJsZSxjPWUuY2hlY2thYmxlLGc9ZS5zaG93TGlzdEl0ZW1PcHRpb24sbT1lLmNsYXNzTmFtZSxTPWUuc2hvd1RpdGxlLFo9Uz09PXZvaWQgMD8hMDpTLHk9ZS50aXRsZSx4PWUubGlzdEhlaWdodCxoPXg9PT12b2lkIDA/MjgwOngsST0oMCxkLnVzZUNvbnRleHQpKHdlLkxfKSxDPUkuaGFzaElkLFQ9KDAsZC51c2VDb250ZXh0KShUdCksUj1ULmNvbHVtbnNNYXAsWT1ULnNldENvbHVtbnNNYXAsRz1ULnNvcnRLZXlDb2x1bW5zLGs9VC5zZXRTb3J0S2V5Q29sdW1ucyxpZT11JiZ1Lmxlbmd0aD4wLHc9KDAsZC51c2VNZW1vKShmdW5jdGlvbigpe2lmKCFpZSlyZXR1cm57fTt2YXIgUD1bXSwkPW5ldyBNYXAsSj1mdW5jdGlvbiBGKGIsTil7cmV0dXJuIGIubWFwKGZ1bmN0aW9uKEspe3ZhciBYLF89Sy5rZXksTz1LLmRhdGFJbmRleCxXPUsuY2hpbGRyZW4sbmU9KDAscS5aKShLLGRpKSxkZT1OdChfLFtOPT1udWxsP3ZvaWQgMDpOLmNvbHVtbktleSxuZS5pbmRleF0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oIi0iKSksY2U9UltkZXx8Im51bGwiXXx8e3Nob3c6ITB9O2NlLnNob3chPT0hMSYmIVcmJlAucHVzaChkZSk7dmFyIFU9KDAsbC5aKSgoMCxsLlopKHtrZXk6ZGV9LCgwLHBuLlopKG5lLFsiY2xhc3NOYW1lIl0pKSx7fSx7c2VsZWN0YWJsZTohMSxkaXNhYmxlZDpjZS5kaXNhYmxlPT09ITAsZGlzYWJsZUNoZWNrYm94OnR5cGVvZiBjZS5kaXNhYmxlPT0iYm9vbGVhbiI/Y2UuZGlzYWJsZTooWD1jZS5kaXNhYmxlKT09PW51bGx8fFg9PT12b2lkIDA/dm9pZCAwOlguY2hlY2tib3gsaXNMZWFmOk4/ITA6dm9pZCAwfSk7aWYoVyl7dmFyIGFlO1UuY2hpbGRyZW49RihXLCgwLGwuWikoKDAsbC5aKSh7fSxjZSkse30se2NvbHVtbktleTpkZX0pKSwoYWU9VS5jaGlsZHJlbikhPT1udWxsJiZhZSE9PXZvaWQgMCYmYWUuZXZlcnkoZnVuY3Rpb24oVil7cmV0dXJuIFA9PW51bGw/dm9pZCAwOlAuaW5jbHVkZXMoVi5rZXkpfSkmJlAucHVzaChkZSl9cmV0dXJuICQuc2V0KF8sVSksVX0pfTtyZXR1cm57bGlzdDpKKHUpLGtleXM6UCxtYXA6JH19LFtSLHUsaWVdKSx6PSgwLG90LkopKGZ1bmN0aW9uKFAsJCxKKXt2YXIgRj0oMCxsLlopKHt9LFIpLGI9KDAsbW4uWikoRyksTj1iLmZpbmRJbmRleChmdW5jdGlvbihPKXtyZXR1cm4gTz09PVB9KSxLPWIuZmluZEluZGV4KGZ1bmN0aW9uKE8pe3JldHVybiBPPT09JH0pLFg9Sj49TjtpZighKE48MCkpe3ZhciBfPWJbTl07Yi5zcGxpY2UoTiwxKSxKPT09MD9iLnVuc2hpZnQoXyk6Yi5zcGxpY2UoWD9LOksrMSwwLF8pLGIuZm9yRWFjaChmdW5jdGlvbihPLFcpe0ZbT109KDAsbC5aKSgoMCxsLlopKHt9LEZbT118fHt9KSx7fSx7b3JkZXI6V30pfSksWShGKSxrKGIpfX0pLEI9KDAsb3QuSikoZnVuY3Rpb24oUCl7dmFyICQ9KDAsbC5aKSh7fSxSKSxKPWZ1bmN0aW9uIEYoYil7dmFyIE4sSz0oMCxsLlopKHt9LCRbYl0pO2lmKEsuc2hvdz1QLmNoZWNrZWQsKE49dy5tYXApIT09bnVsbCYmTiE9PXZvaWQgMCYmKE49Ti5nZXQoYikpIT09bnVsbCYmTiE9PXZvaWQgMCYmTi5jaGlsZHJlbil7dmFyIFg7KFg9dy5tYXAuZ2V0KGIpKT09PW51bGx8fFg9PT12b2lkIDB8fChYPVguY2hpbGRyZW4pPT09bnVsbHx8WD09PXZvaWQgMHx8WC5mb3JFYWNoKGZ1bmN0aW9uKF8pe3JldHVybiBGKF8ua2V5KX0pfSRbYl09S307SihQLm5vZGUua2V5KSxZKCgwLGwuWikoe30sJCkpfSk7aWYoIWllKXJldHVybiBudWxsO3ZhciBFPSgwLHMuanN4KShsaS5aLHtpdGVtSGVpZ2h0OjI0LGRyYWdnYWJsZTppJiYhISgocj13Lmxpc3QpIT09bnVsbCYmciE9PXZvaWQgMCYmci5sZW5ndGgpJiYoKHQ9dy5saXN0KT09PW51bGx8fHQ9PT12b2lkIDA/dm9pZCAwOnQubGVuZ3RoKT4xLGNoZWNrYWJsZTpjLG9uRHJvcDpmdW5jdGlvbigkKXt2YXIgSj0kLm5vZGUua2V5LEY9JC5kcmFnTm9kZS5rZXksYj0kLmRyb3BQb3NpdGlvbixOPSQuZHJvcFRvR2FwLEs9Yj09PS0xfHwhTj9iKzE6Yjt6KEYsSixLKX0sYmxvY2tOb2RlOiEwLG9uQ2hlY2s6ZnVuY3Rpb24oJCxKKXtyZXR1cm4gQihKKX0sY2hlY2tlZEtleXM6dy5rZXlzLHNob3dMaW5lOiExLHRpdGxlUmVuZGVyOmZ1bmN0aW9uKCQpe3ZhciBKPSgwLGwuWikoKDAsbC5aKSh7fSwkKSx7fSx7Y2hpbGRyZW46dm9pZCAwfSk7aWYoIUoudGl0bGUpcmV0dXJuIG51bGw7dmFyIEY9KDAsbXQuaCkoSi50aXRsZSxKKSxiPSgwLHMuanN4KShvaS5aLlRleHQse3N0eWxlOnt3aWR0aDo4MH0sZWxsaXBzaXM6e3Rvb2x0aXA6Rn0sY2hpbGRyZW46Rn0pO3JldHVybigwLHMuanN4KShmaSwoMCxsLlopKCgwLGwuWikoe2NsYXNzTmFtZTptfSwoMCxwbi5aKShKLFsia2V5Il0pKSx7fSx7c2hvd0xpc3RJdGVtT3B0aW9uOmcsdGl0bGU6Yixjb2x1bW5LZXk6Si5rZXl9KSl9LGhlaWdodDpoLHRyZWVEYXRhOihvPXcubGlzdCk9PT1udWxsfHxvPT09dm9pZCAwP3ZvaWQgMDpvLm1hcChmdW5jdGlvbihQKXt2YXIgJD1QLmRpc2FibGVkLEo9KDAscS5aKShQLHZpKTtyZXR1cm4gSn0pfSk7cmV0dXJuKDAscy5qc3hzKShzLkZyYWdtZW50LHtjaGlsZHJlbjpbWiYmKDAscy5qc3gpKCJzcGFuIix7Y2xhc3NOYW1lOiIiLmNvbmNhdChtLCItbGlzdC10aXRsZSAiKS5jb25jYXQoQykudHJpbSgpLGNoaWxkcmVuOnl9KSxFXX0pfSxtaT1mdW5jdGlvbihlKXt2YXIgcj1lLmxvY2FsQ29sdW1ucyx0PWUuY2xhc3NOYW1lLG89ZS5kcmFnZ2FibGUsdT1lLmNoZWNrYWJsZSxpPWUuc2hvd0xpc3RJdGVtT3B0aW9uLGM9ZS5saXN0c0hlaWdodCxnPSgwLGQudXNlQ29udGV4dCkod2UuTF8pLG09Zy5oYXNoSWQsUz1bXSxaPVtdLHk9W10seD0oMCx3ZS5ZQikoKTtyLmZvckVhY2goZnVuY3Rpb24oQyl7aWYoIUMuaGlkZUluU2V0dGluZyl7dmFyIFQ9Qy5maXhlZDtpZihUPT09ImxlZnQiKXtaLnB1c2goQyk7cmV0dXJufWlmKFQ9PT0icmlnaHQiKXtTLnB1c2goQyk7cmV0dXJufXkucHVzaChDKX19KTt2YXIgaD1TJiZTLmxlbmd0aD4wLEk9WiYmWi5sZW5ndGg+MDtyZXR1cm4oMCxzLmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6WmUoKSgiIi5jb25jYXQodCwiLWxpc3QiKSxtLCgwLHAuWikoe30sIiIuY29uY2F0KHQsIi1saXN0LWdyb3VwIiksaHx8SSkpLGNoaWxkcmVuOlsoMCxzLmpzeCkodnIse3RpdGxlOnguZ2V0TWVzc2FnZSgidGFibGVUb29sQmFyLmxlZnRGaXhlZFRpdGxlIiwiXHU1NkZBXHU1QjlBXHU1NzI4XHU1REU2XHU0RkE3IiksbGlzdDpaLGRyYWdnYWJsZTpvLGNoZWNrYWJsZTp1LHNob3dMaXN0SXRlbU9wdGlvbjppLGNsYXNzTmFtZTp0LGxpc3RIZWlnaHQ6Y30pLCgwLHMuanN4KSh2cix7bGlzdDp5LGRyYWdnYWJsZTpvLGNoZWNrYWJsZTp1LHNob3dMaXN0SXRlbU9wdGlvbjppLHRpdGxlOnguZ2V0TWVzc2FnZSgidGFibGVUb29sQmFyLm5vRml4ZWRUaXRsZSIsIlx1NEUwRFx1NTZGQVx1NUI5QSIpLHNob3dUaXRsZTpJfHxoLGNsYXNzTmFtZTp0LGxpc3RIZWlnaHQ6Y30pLCgwLHMuanN4KSh2cix7dGl0bGU6eC5nZXRNZXNzYWdlKCJ0YWJsZVRvb2xCYXIucmlnaHRGaXhlZFRpdGxlIiwiXHU1NkZBXHU1QjlBXHU1NzI4XHU1M0YzXHU0RkE3IiksbGlzdDpTLGRyYWdnYWJsZTpvLGNoZWNrYWJsZTp1LHNob3dMaXN0SXRlbU9wdGlvbjppLGNsYXNzTmFtZTp0LGxpc3RIZWlnaHQ6Y30pXX0pfTtmdW5jdGlvbiBnaShuKXt2YXIgZSxyLHQsbyx1PSgwLGQudXNlUmVmKShudWxsKSxpPSgwLGQudXNlQ29udGV4dCkoVHQpLGM9bi5jb2x1bW5zLGc9bi5jaGVja2VkUmVzZXQsbT1nPT09dm9pZCAwPyEwOmcsUz1pLmNvbHVtbnNNYXAsWj1pLnNldENvbHVtbnNNYXAseT1pLmNsZWFyUGVyc2lzdGVuY2VTdG9yYWdlOygwLGQudXNlRWZmZWN0KShmdW5jdGlvbigpe3ZhciBCO2lmKChCPWkucHJvcHNSZWYuY3VycmVudCkhPT1udWxsJiZCIT09dm9pZCAwJiYoQj1CLmNvbHVtbnNTdGF0ZSkhPT1udWxsJiZCIT09dm9pZCAwJiZCLnZhbHVlKXt2YXIgRTt1LmN1cnJlbnQ9SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSgoKEU9aS5wcm9wc1JlZi5jdXJyZW50KT09PW51bGx8fEU9PT12b2lkIDB8fChFPUUuY29sdW1uc1N0YXRlKT09PW51bGx8fEU9PT12b2lkIDA/dm9pZCAwOkUudmFsdWUpfHx7fSkpfX0sW10pO3ZhciB4PSgwLG90LkopKGZ1bmN0aW9uKCl7dmFyIEI9YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT12b2lkIDA/YXJndW1lbnRzWzBdOiEwLEU9e30sUD1mdW5jdGlvbiAkKEope0ouZm9yRWFjaChmdW5jdGlvbihGKXt2YXIgYj1GLmtleSxOPUYuZml4ZWQsSz1GLmluZGV4LFg9Ri5jaGlsZHJlbixfPUYuZGlzYWJsZSxPPU50KGIsSyk7aWYoTyl7dmFyIFcsbmU7RVtPXT17c2hvdzpfPyhXPVNbT10pPT09bnVsbHx8Vz09PXZvaWQgMD92b2lkIDA6Vy5zaG93OkIsZml4ZWQ6TixkaXNhYmxlOl8sb3JkZXI6KG5lPVNbT10pPT09bnVsbHx8bmU9PT12b2lkIDA/dm9pZCAwOm5lLm9yZGVyfX1YJiYkKFgpfSl9O1AoYyksWihFKX0pLGg9KDAsb3QuSikoZnVuY3Rpb24oQil7Qi50YXJnZXQuY2hlY2tlZD94KCk6eCghMSl9KSxJPSgwLG90LkopKGZ1bmN0aW9uKCl7dmFyIEI7eT09bnVsbHx8eSgpLFooKChCPWkucHJvcHNSZWYuY3VycmVudCk9PT1udWxsfHxCPT09dm9pZCAwfHwoQj1CLmNvbHVtbnNTdGF0ZSk9PT1udWxsfHxCPT09dm9pZCAwP3ZvaWQgMDpCLmRlZmF1bHRWYWx1ZSl8fHUuY3VycmVudHx8aS5kZWZhdWx0Q29sdW1uS2V5TWFwKX0pLEM9T2JqZWN0LnZhbHVlcyhTKS5maWx0ZXIoZnVuY3Rpb24oQil7cmV0dXJuIUJ8fEIuc2hvdz09PSExfSksVD1DLmxlbmd0aD4wJiZDLmxlbmd0aCE9PWMubGVuZ3RoLFI9KDAsd2UuWUIpKCksWT0oMCxkLnVzZUNvbnRleHQpKGRuLlpQLkNvbmZpZ0NvbnRleHQpLEc9WS5nZXRQcmVmaXhDbHMsaz1HKCJwcm8tdGFibGUtY29sdW1uLXNldHRpbmciKSxpZT11aShrKSx3PWllLndyYXBTU1Isej1pZS5oYXNoSWQ7cmV0dXJuIHcoKDAscy5qc3gpKGlpLlose2Fycm93OiExLHRpdGxlOigwLHMuanN4cykoImRpdiIse2NsYXNzTmFtZToiIi5jb25jYXQoaywiLXRpdGxlICIpLmNvbmNhdCh6KS50cmltKCksY2hpbGRyZW46W24uY2hlY2thYmxlPT09ITE/KDAscy5qc3gpKCJkaXYiLHt9KTooMCxzLmpzeCkoc2kuWix7aW5kZXRlcm1pbmF0ZTpULGNoZWNrZWQ6Qy5sZW5ndGg9PT0wJiZDLmxlbmd0aCE9PWMubGVuZ3RoLG9uQ2hhbmdlOmZ1bmN0aW9uKEUpe2goRSl9LGNoaWxkcmVuOlIuZ2V0TWVzc2FnZSgidGFibGVUb29sQmFyLmNvbHVtbkRpc3BsYXkiLCJcdTUyMTdcdTVDNTVcdTc5M0EiKX0pLG0/KDAscy5qc3gpKCJhIix7b25DbGljazpJLGNsYXNzTmFtZToiIi5jb25jYXQoaywiLWFjdGlvbi1yZXN0LWJ1dHRvbiAiKS5jb25jYXQoeikudHJpbSgpLGNoaWxkcmVuOlIuZ2V0TWVzc2FnZSgidGFibGVUb29sQmFyLnJlc2V0IiwiXHU5MUNEXHU3RjZFIil9KTpudWxsLG4hPW51bGwmJm4uZXh0cmE/KDAscy5qc3gpKE90Llose3NpemU6MTIsYWxpZ246ImNlbnRlciIsY2hpbGRyZW46bi5leHRyYX0pOm51bGxdfSksb3ZlcmxheUNsYXNzTmFtZToiIi5jb25jYXQoaywiLW92ZXJsYXkgIikuY29uY2F0KHopLnRyaW0oKSx0cmlnZ2VyOiJjbGljayIscGxhY2VtZW50OiJib3R0b21SaWdodCIsY29udGVudDooMCxzLmpzeCkobWkse2NoZWNrYWJsZTooZT1uLmNoZWNrYWJsZSkhPT1udWxsJiZlIT09dm9pZCAwP2U6ITAsZHJhZ2dhYmxlOihyPW4uZHJhZ2dhYmxlKSE9PW51bGwmJnIhPT12b2lkIDA/cjohMCxzaG93TGlzdEl0ZW1PcHRpb246KHQ9bi5zaG93TGlzdEl0ZW1PcHRpb24pIT09bnVsbCYmdCE9PXZvaWQgMD90OiEwLGNsYXNzTmFtZTprLGxvY2FsQ29sdW1uczpjLGxpc3RzSGVpZ2h0Om4ubGlzdHNIZWlnaHR9KSxjaGlsZHJlbjpuLmNoaWxkcmVufHwoMCxzLmpzeCkoRXQuWix7dGl0bGU6Ui5nZXRNZXNzYWdlKCJ0YWJsZVRvb2xCYXIuY29sdW1uU2V0dGluZyIsIlx1NTIxN1x1OEJCRVx1N0Y2RSIpLGNoaWxkcmVuOihvPW4uc2V0dGluZ0ljb24pIT09bnVsbCYmbyE9PXZvaWQgMD9vOigwLHMuanN4KShhaS5aLHt9KX0pfSkpfXZhciBwaT1naSxoaT12KDUwMTM2KSxKcj1mdW5jdGlvbihlKXt2YXIgcj0oMCxrdC5uKSgoMCxzci5iKSgpLCI0LjI0LjAiKT4tMT97bWVudTplfTp7b3ZlcmxheTooMCxzLmpzeCkoaGkuWiwoMCxsLlopKHt9LGUpKX07cmV0dXJuKDAsYS5ZKShyKX0sWXI9dig4NTQxOCkseWk9ZnVuY3Rpb24oZSl7dmFyIHI9KDAsZC51c2VDb250ZXh0KSh3ZS5MXyksdD1yLmhhc2hJZCxvPWUuaXRlbXMsdT1vPT09dm9pZCAwP1tdOm8saT1lLnR5cGUsYz1pPT09dm9pZCAwPyJpbmxpbmUiOmksZz1lLnByZWZpeENscyxtPWUuYWN0aXZlS2V5LFM9ZS5kZWZhdWx0QWN0aXZlS2V5LFo9KDAscWUuWikobXx8Uyx7dmFsdWU6bSxvbkNoYW5nZTplLm9uQ2hhbmdlfSkseT0oMCxmZS5aKShaLDIpLHg9eVswXSxoPXlbMV07aWYodS5sZW5ndGg8MSlyZXR1cm4gbnVsbDt2YXIgST11LmZpbmQoZnVuY3Rpb24oVCl7cmV0dXJuIFQua2V5PT09eH0pfHx1WzBdO2lmKGM9PT0iaW5saW5lIilyZXR1cm4oMCxzLmpzeCkoImRpdiIse2NsYXNzTmFtZTpaZSgpKCIiLmNvbmNhdChnLCItbWVudSIpLCIiLmNvbmNhdChnLCItaW5saW5lLW1lbnUiKSx0KSxjaGlsZHJlbjp1Lm1hcChmdW5jdGlvbihULFIpe3JldHVybigwLHMuanN4KSgiZGl2Iix7b25DbGljazpmdW5jdGlvbigpe2goVC5rZXkpfSxjbGFzc05hbWU6WmUoKSgiIi5jb25jYXQoZywiLWlubGluZS1tZW51LWl0ZW0iKSxJLmtleT09PVQua2V5PyIiLmNvbmNhdChnLCItaW5saW5lLW1lbnUtaXRlbS1hY3RpdmUiKTp2b2lkIDAsdCksY2hpbGRyZW46VC5sYWJlbH0sVC5rZXl8fFIpfSl9KTtpZihjPT09InRhYiIpcmV0dXJuKDAscy5qc3gpKEluLlose2l0ZW1zOnUubWFwKGZ1bmN0aW9uKFQpe3ZhciBSO3JldHVybigwLGwuWikoKDAsbC5aKSh7fSxUKSx7fSx7a2V5OihSPVQua2V5KT09PW51bGx8fFI9PT12b2lkIDA/dm9pZCAwOlIudG9TdHJpbmcoKX0pfSksYWN0aXZlS2V5Okkua2V5LG9uVGFiQ2xpY2s6ZnVuY3Rpb24oUil7cmV0dXJuIGgoUil9LGNoaWxkcmVuOigwLGt0Lm4pKFRuLlosIjQuMjMuMCIpPDA/dT09bnVsbD92b2lkIDA6dS5tYXAoZnVuY3Rpb24oVCxSKXtyZXR1cm4oMCxkLmNyZWF0ZUVsZW1lbnQpKEluLlouVGFiUGFuZSwoMCxsLlopKCgwLGwuWikoe30sVCkse30se2tleTpULmtleXx8Uix0YWI6VC5sYWJlbH0pKX0pOm51bGx9KTt2YXIgQz1Kcih7c2VsZWN0ZWRLZXlzOltJLmtleV0sb25DbGljazpmdW5jdGlvbihSKXtoKFIua2V5KX0saXRlbXM6dS5tYXAoZnVuY3Rpb24oVCxSKXtyZXR1cm57a2V5OlQua2V5fHxSLGRpc2FibGVkOlQuZGlzYWJsZWQsbGFiZWw6VC5sYWJlbH19KX0pO3JldHVybigwLHMuanN4KSgiZGl2Iix7Y2xhc3NOYW1lOlplKCkoIiIuY29uY2F0KGcsIi1tZW51IiksIiIuY29uY2F0KGcsIi1kcm9wZG93bm1lbnUiKSksY2hpbGRyZW46KDAscy5qc3gpKFlyLlosKDAsbC5aKSgoMCxsLlopKHt0cmlnZ2VyOlsiY2xpY2siXX0sQykse30se2NoaWxkcmVuOigwLHMuanN4cykoT3QuWix7Y2xhc3NOYW1lOiIiLmNvbmNhdChnLCItZHJvcGRvd25tZW51LWxhYmVsIiksY2hpbGRyZW46W0kubGFiZWwsKDAscy5qc3gpKGNyLlose30pXX0pfSkpfSl9LFNpPXlpLGJpPWZ1bmN0aW9uKGUpe3JldHVybigwLHAuWikoe30sZS5jb21wb25lbnRDbHMsKDAscC5aKSgoMCxwLlopKCgwLHAuWikoe2xpbmVIZWlnaHQ6IjEiLCImLWNvbnRhaW5lciI6e2Rpc3BsYXk6ImZsZXgiLGp1c3RpZnlDb250ZW50OiJzcGFjZS1iZXR3ZWVuIixwYWRkaW5nQmxvY2s6ZS5wYWRkaW5nLHBhZGRpbmdJbmxpbmU6MCwiJi1tb2JpbGUiOntmbGV4RGlyZWN0aW9uOiJjb2x1bW4ifX0sIiYtdGl0bGUiOntkaXNwbGF5OiJmbGV4IixhbGlnbkl0ZW1zOiJjZW50ZXIiLGp1c3RpZnlDb250ZW50OiJmbGV4LXN0YXJ0Iixjb2xvcjplLmNvbG9yVGV4dEhlYWRpbmcsZm9udFdlaWdodDoiNTAwIixmb250U2l6ZTplLmZvbnRTaXplTEd9LCImLXNlYXJjaDpub3QoOmxhc3QtY2hpbGQpIjp7ZGlzcGxheToiZmxleCIsYWxpZ25JdGVtczoiY2VudGVyIixqdXN0aWZ5Q29udGVudDoiZmxleC1zdGFydCJ9LCImLXNldHRpbmctaXRlbSI6e21hcmdpbkJsb2NrOjAsbWFyZ2luSW5saW5lOjQsY29sb3I6ZS5jb2xvckljb25Ib3Zlcixmb250U2l6ZTplLmZvbnRTaXplTEcsY3Vyc29yOiJwb2ludGVyIiwiPiBzcGFuIjp7ZGlzcGxheToiYmxvY2siLHdpZHRoOiIxMDAlIixoZWlnaHQ6IjEwMCUifSwiJjpob3ZlciI6e2NvbG9yOmUuY29sb3JQcmltYXJ5fX0sIiYtbGVmdCI6KDAscC5aKSgoMCxwLlopKHtkaXNwbGF5OiJmbGV4IixmbGV4V3JhcDoid3JhcCIsYWxpZ25JdGVtczoiY2VudGVyIixnYXA6ZS5tYXJnaW5YUyxqdXN0aWZ5Q29udGVudDoiZmxleC1zdGFydCIsbWF4V2lkdGg6ImNhbGMoMTAwJSAtIDIwMHB4KSJ9LCIiLmNvbmNhdChlLmFudENscywiLXRhYnMiKSx7d2lkdGg6IjEwMCUifSksIiYtaGFzLXRhYnMiLHtvdmVyZmxvdzoiaGlkZGVuIn0pLCImLXJpZ2h0Ijp7ZmxleDoxLGRpc3BsYXk6ImZsZXgiLGZsZXhXcmFwOiJ3cmFwIixqdXN0aWZ5Q29udGVudDoiZmxleC1lbmQiLGdhcDplLm1hcmdpblhTfSwiJi1leHRyYS1saW5lIjp7bWFyZ2luQmxvY2tFbmQ6ZS5tYXJnaW59LCImLXNldHRpbmctaXRlbXMiOntkaXNwbGF5OiJmbGV4IixnYXA6ZS5tYXJnaW5YUyxsaW5lSGVpZ2h0OiIzMnB4IixhbGlnbkl0ZW1zOiJjZW50ZXIifSwiJi1maWx0ZXIiOigwLHAuWikoeyImOm5vdCg6bGFzdC1jaGlsZCkiOnttYXJnaW5JbmxpbmVFbmQ6ZS5tYXJnaW59LGRpc3BsYXk6ImZsZXgiLGFsaWduSXRlbXM6ImNlbnRlciJ9LCJkaXYkIi5jb25jYXQoZS5hbnRDbHMsIi1wcm8tdGFibGUtc2VhcmNoIikse21hcmdpbkJsb2NrOjAsbWFyZ2luSW5saW5lOjAscGFkZGluZ0Jsb2NrOjAscGFkZGluZ0lubGluZTowfSksIiYtaW5saW5lLW1lbnUtaXRlbSI6e2Rpc3BsYXk6ImlubGluZS1ibG9jayIsbWFyZ2luSW5saW5lRW5kOmUubWFyZ2luTEcsY3Vyc29yOiJwb2ludGVyIixvcGFjaXR5OiIwLjc1IiwiJi1hY3RpdmUiOntmb250V2VpZ2h0OiJib2xkIixvcGFjaXR5OiIxIn19fSwiIi5jb25jYXQoZS5hbnRDbHMsIi10YWJzLXRvcCA+ICIpLmNvbmNhdChlLmFudENscywiLXRhYnMtbmF2IiksKDAscC5aKSh7bWFyZ2luQmxvY2tFbmQ6MCwiJjo6YmVmb3JlIjp7Ym9yZGVyQmxvY2tFbmQ6MH19LCIiLmNvbmNhdChlLmFudENscywiLXRhYnMtbmF2LWxpc3QiKSx7bWFyZ2luQmxvY2tTdGFydDowLCIke3Rva2VuLmFudENsc30tdGFicy10YWIiOntwYWRkaW5nQmxvY2tTdGFydDowfX0pKSwiJi1kcm9wZG93bm1lbnUtbGFiZWwiLHtmb250V2VpZ2h0OiJib2xkIixmb250U2l6ZTplLmZvbnRTaXplSWNvbix0ZXh0QWxpZ246ImNlbnRlciIsY3Vyc29yOiJwb2ludGVyIn0pLCJAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIiwoMCxwLlopKHt9LGUuY29tcG9uZW50Q2xzLHsiJi1jb250YWluZXIiOntkaXNwbGF5OiJmbGV4IixmbGV4V3JhcDoid3JhcCIsZmxleERpcmVjdGlvbjoiY29sdW1uIn0sIiYtbGVmdCI6e21hcmdpbkJsb2NrRW5kOiIxNnB4IixtYXhXaWR0aDoiMTAwJSJ9fSkpKX07ZnVuY3Rpb24gQ2kobil7cmV0dXJuKDAsdW4uWGopKCJQcm9UYWJsZUxpc3RUb29sQmFyIixmdW5jdGlvbihlKXt2YXIgcj0oMCxsLlopKCgwLGwuWikoe30sZSkse30se2NvbXBvbmVudENsczoiLiIuY29uY2F0KG4pfSk7cmV0dXJuW2JpKHIpXX0pfWZ1bmN0aW9uIFppKG4pe2lmKGQuaXNWYWxpZEVsZW1lbnQobikpcmV0dXJuIG47aWYobil7dmFyIGU9bixyPWUuaWNvbix0PWUudG9vbHRpcCxvPWUub25DbGljayx1PWUua2V5O3JldHVybiByJiZ0PygwLHMuanN4KShFdC5aLHt0aXRsZTp0LGNoaWxkcmVuOigwLHMuanN4KSgic3BhbiIse29uQ2xpY2s6ZnVuY3Rpb24oKXtvJiZvKHUpfSxjaGlsZHJlbjpyfSx1KX0pOigwLHMuanN4KSgic3BhbiIse29uQ2xpY2s6ZnVuY3Rpb24oKXtvJiZvKHUpfSxjaGlsZHJlbjpyfSx1KX1yZXR1cm4gbnVsbH12YXIgeGk9ZnVuY3Rpb24oZSl7dmFyIHIsdD1lLnByZWZpeENscyxvPWUudGFicyx1PWUubXVsdGlwbGVMaW5lLGk9ZS5maWx0ZXJzTm9kZTtyZXR1cm4gdT8oMCxzLmpzeCkoImRpdiIse2NsYXNzTmFtZToiIi5jb25jYXQodCwiLWV4dHJhLWxpbmUiKSxjaGlsZHJlbjpvIT1udWxsJiZvLml0ZW1zJiZvIT09bnVsbCYmbyE9PXZvaWQgMCYmby5pdGVtcy5sZW5ndGg/KDAscy5qc3gpKEluLlose3N0eWxlOnt3aWR0aDoiMTAwJSJ9LGRlZmF1bHRBY3RpdmVLZXk6by5kZWZhdWx0QWN0aXZlS2V5LGFjdGl2ZUtleTpvLmFjdGl2ZUtleSxpdGVtczpvLml0ZW1zLm1hcChmdW5jdGlvbihjLGcpe3ZhciBtO3JldHVybigwLGwuWikoKDAsbC5aKSh7bGFiZWw6Yy50YWJ9LGMpLHt9LHtrZXk6KChtPWMua2V5KT09PW51bGx8fG09PT12b2lkIDA/dm9pZCAwOm0udG9TdHJpbmcoKSl8fChnPT1udWxsP3ZvaWQgMDpnLnRvU3RyaW5nKCkpfSl9KSxvbkNoYW5nZTpvLm9uQ2hhbmdlLHRhYkJhckV4dHJhQ29udGVudDppLGNoaWxkcmVuOihyPW8uaXRlbXMpPT09bnVsbHx8cj09PXZvaWQgMD92b2lkIDA6ci5tYXAoZnVuY3Rpb24oYyxnKXtyZXR1cm4oMCxrdC5uKShUbi5aLCI0LjIzLjAiKTwwPygwLGQuY3JlYXRlRWxlbWVudCkoSW4uWi5UYWJQYW5lLCgwLGwuWikoKDAsbC5aKSh7fSxjKSx7fSx7a2V5OmMua2V5fHxnLHRhYjpjLnRhYn0pKTpudWxsfSl9KTppfSk6bnVsbH0sUGk9ZnVuY3Rpb24oZSl7dmFyIHI9ZS5wcmVmaXhDbHMsdD1lLnRpdGxlLG89ZS5zdWJUaXRsZSx1PWUudG9vbHRpcCxpPWUuY2xhc3NOYW1lLGM9ZS5zdHlsZSxnPWUuc2VhcmNoLG09ZS5vblNlYXJjaCxTPWUubXVsdGlwbGVMaW5lLFo9Uz09PXZvaWQgMD8hMTpTLHk9ZS5maWx0ZXIseD1lLmFjdGlvbnMsaD14PT09dm9pZCAwP1tdOngsST1lLnNldHRpbmdzLEM9ST09PXZvaWQgMD9bXTpJLFQ9ZS50YWJzLFI9ZS5tZW51LFk9KDAsZC51c2VDb250ZXh0KShkbi5aUC5Db25maWdDb250ZXh0KSxHPVkuZ2V0UHJlZml4Q2xzLGs9dW4uT3cudXNlVG9rZW4oKSxpZT1rLnRva2VuLHc9RygicHJvLXRhYmxlLWxpc3QtdG9vbGJhciIsciksej1DaSh3KSxCPXoud3JhcFNTUixFPXouaGFzaElkLFA9KDAsd2UuWUIpKCksJD0oMCxkLnVzZVN0YXRlKSghMSksSj0oMCxmZS5aKSgkLDIpLEY9SlswXSxiPUpbMV0sTj1QLmdldE1lc3NhZ2UoInRhYmxlRm9ybS5pbnB1dFBsYWNlaG9sZGVyIiwiXHU4QkY3XHU4RjkzXHU1MTY1IiksSz0oMCxkLnVzZU1lbW8pKGZ1bmN0aW9uKCl7cmV0dXJuIGc/ZC5pc1ZhbGlkRWxlbWVudChnKT9nOigwLHMuanN4KShVci5aLlNlYXJjaCwoMCxsLlopKCgwLGwuWikoe3N0eWxlOnt3aWR0aDoyMDB9LHBsYWNlaG9sZGVyOk59LGcpLHt9LHtvblNlYXJjaDooMCxzZS5aKSgoMCxMLlopKCkubWFyayhmdW5jdGlvbiBhZSgpe3ZhciBWLHJlLFNlLEZlLERlLHRuLGNuPWFyZ3VtZW50cztyZXR1cm4oMCxMLlopKCkud3JhcChmdW5jdGlvbihDbil7Zm9yKDs7KXN3aXRjaChDbi5wcmV2PUNuLm5leHQpe2Nhc2UgMDpmb3IoU2U9Y24ubGVuZ3RoLEZlPW5ldyBBcnJheShTZSksRGU9MDtEZTxTZTtEZSsrKUZlW0RlXT1jbltEZV07cmV0dXJuIENuLm5leHQ9MywoVj0ocmU9Zykub25TZWFyY2gpPT09bnVsbHx8Vj09PXZvaWQgMD92b2lkIDA6Vi5jYWxsLmFwcGx5KFYsW3JlXS5jb25jYXQoRmUpKTtjYXNlIDM6dG49Q24uc2VudCx0biE9PSExJiYobT09bnVsbHx8bShGZT09bnVsbD92b2lkIDA6RmVbMF0pKTtjYXNlIDU6Y2FzZSJlbmQiOnJldHVybiBDbi5zdG9wKCl9fSxhZSl9KSl9KSk6bnVsbH0sW04sbSxnXSksWD0oMCxkLnVzZU1lbW8pKGZ1bmN0aW9uKCl7cmV0dXJuIHk/KDAscy5qc3gpKCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KHcsIi1maWx0ZXIgIikuY29uY2F0KEUpLnRyaW0oKSxjaGlsZHJlbjp5fSk6bnVsbH0sW3ksRSx3XSksXz0oMCxkLnVzZU1lbW8pKGZ1bmN0aW9uKCl7cmV0dXJuIFJ8fHR8fG98fHV9LFtSLG8sdCx1XSksTz0oMCxkLnVzZU1lbW8pKGZ1bmN0aW9uKCl7cmV0dXJuIEFycmF5LmlzQXJyYXkoaCk/aC5sZW5ndGg8MT9udWxsOigwLHMuanN4KSgiZGl2Iix7c3R5bGU6e2Rpc3BsYXk6ImZsZXgiLGFsaWduSXRlbXM6ImNlbnRlciIsZ2FwOmllLm1hcmdpblhTfSxjaGlsZHJlbjpoLm1hcChmdW5jdGlvbihhZSxWKXtyZXR1cm4gZC5pc1ZhbGlkRWxlbWVudChhZSk/ZC5jbG9uZUVsZW1lbnQoYWUsKDAsbC5aKSh7a2V5OlZ9LGFlPT1udWxsP3ZvaWQgMDphZS5wcm9wcykpOigwLHMuanN4KShkLkZyYWdtZW50LHtjaGlsZHJlbjphZX0sVil9KX0pOmh9LFtoXSksVz0oMCxkLnVzZU1lbW8pKGZ1bmN0aW9uKCl7cmV0dXJuISEoXyYmS3x8IVomJlh8fE98fEMhPW51bGwmJkMubGVuZ3RoKX0sW08sWCxfLFosSyxDPT1udWxsP3ZvaWQgMDpDLmxlbmd0aF0pLG5lPSgwLGQudXNlTWVtbykoZnVuY3Rpb24oKXtyZXR1cm4gdXx8dHx8b3x8Unx8IV8mJkt9LFtfLFIsSyxvLHQsdV0pLGRlPSgwLGQudXNlTWVtbykoZnVuY3Rpb24oKXtyZXR1cm4hbmUmJlc/KDAscy5qc3gpKCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KHcsIi1sZWZ0ICIpLmNvbmNhdChFKS50cmltKCl9KTohUiYmKF98fCFLKT8oMCxzLmpzeCkoImRpdiIse2NsYXNzTmFtZToiIi5jb25jYXQodywiLWxlZnQgIikuY29uY2F0KEUpLnRyaW0oKSxjaGlsZHJlbjooMCxzLmpzeCkoImRpdiIse2NsYXNzTmFtZToiIi5jb25jYXQodywiLXRpdGxlICIpLmNvbmNhdChFKS50cmltKCksY2hpbGRyZW46KDAscy5qc3gpKGduLkcse3Rvb2x0aXA6dSxsYWJlbDp0LHN1YlRpdGxlOm99KX0pfSk6KDAscy5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOlplKCkoIiIuY29uY2F0KHcsIi1sZWZ0IiksRSwoMCxwLlopKCgwLHAuWikoKDAscC5aKSh7fSwiIi5jb25jYXQodywiLWxlZnQtaGFzLXRhYnMiKSwoUj09bnVsbD92b2lkIDA6Ui50eXBlKT09PSJ0YWIiKSwiIi5jb25jYXQodywiLWxlZnQtaGFzLWRyb3Bkb3duIiksKFI9PW51bGw/dm9pZCAwOlIudHlwZSk9PT0iZHJvcGRvd24iKSwiIi5jb25jYXQodywiLWxlZnQtaGFzLWlubGluZS1tZW51IiksKFI9PW51bGw/dm9pZCAwOlIudHlwZSk9PT0iaW5saW5lIikpLGNoaWxkcmVuOltfJiYhUiYmKDAscy5qc3gpKCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KHcsIi10aXRsZSAiKS5jb25jYXQoRSkudHJpbSgpLGNoaWxkcmVuOigwLHMuanN4KShnbi5HLHt0b29sdGlwOnUsbGFiZWw6dCxzdWJUaXRsZTpvfSl9KSxSJiYoMCxzLmpzeCkoU2ksKDAsbC5aKSgoMCxsLlopKHt9LFIpLHt9LHtwcmVmaXhDbHM6d30pKSwhXyYmSz8oMCxzLmpzeCkoImRpdiIse2NsYXNzTmFtZToiIi5jb25jYXQodywiLXNlYXJjaCAiKS5jb25jYXQoRSkudHJpbSgpLGNoaWxkcmVuOkt9KTpudWxsXX0pfSxbbmUsVyxfLEUsUix3LEssbyx0LHVdKSxjZT0oMCxkLnVzZU1lbW8pKGZ1bmN0aW9uKCl7cmV0dXJuIFc/KDAscy5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdCh3LCItcmlnaHQgIikuY29uY2F0KEUpLnRyaW0oKSxzdHlsZTpGP3t9OnthbGlnbkl0ZW1zOiJjZW50ZXIifSxjaGlsZHJlbjpbWj9udWxsOlgsXyYmSz8oMCxzLmpzeCkoImRpdiIse2NsYXNzTmFtZToiIi5jb25jYXQodywiLXNlYXJjaCAiKS5jb25jYXQoRSkudHJpbSgpLGNoaWxkcmVuOkt9KTpudWxsLE8sQyE9bnVsbCYmQy5sZW5ndGg/KDAscy5qc3gpKCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KHcsIi1zZXR0aW5nLWl0ZW1zICIpLmNvbmNhdChFKS50cmltKCksY2hpbGRyZW46Qy5tYXAoZnVuY3Rpb24oYWUsVil7dmFyIHJlPVppKGFlKTtyZXR1cm4oMCxzLmpzeCkoImRpdiIse2NsYXNzTmFtZToiIi5jb25jYXQodywiLXNldHRpbmctaXRlbSAiKS5jb25jYXQoRSkudHJpbSgpLGNoaWxkcmVuOnJlfSxWKX0pfSk6bnVsbF19KTpudWxsfSxbVyx3LEUsRixfLEssWixYLE8sQ10pLFU9KDAsZC51c2VNZW1vKShmdW5jdGlvbigpe2lmKCFXJiYhbmUpcmV0dXJuIG51bGw7dmFyIGFlPVplKCkoIiIuY29uY2F0KHcsIi1jb250YWluZXIiKSxFLCgwLHAuWikoe30sIiIuY29uY2F0KHcsIi1jb250YWluZXItbW9iaWxlIiksRikpO3JldHVybigwLHMuanN4cykoImRpdiIse2NsYXNzTmFtZTphZSxjaGlsZHJlbjpbZGUsY2VdfSl9LFtuZSxXLEUsRixkZSx3LGNlXSk7cmV0dXJuIEIoKDAscy5qc3gpKEFyLlose29uUmVzaXplOmZ1bmN0aW9uKFYpe1Yud2lkdGg8Mzc1IT09RiYmYihWLndpZHRoPDM3NSl9LGNoaWxkcmVuOigwLHMuanN4cykoImRpdiIse3N0eWxlOmMsY2xhc3NOYW1lOlplKCkodyxFLGkpLGNoaWxkcmVuOltVLCgwLHMuanN4KSh4aSx7ZmlsdGVyc05vZGU6WCxwcmVmaXhDbHM6dyx0YWJzOlQsbXVsdGlwbGVMaW5lOlp9KV19KX0pKX0sUmk9UGksSWk9dig2ODg2OSksVGk9ZnVuY3Rpb24oZSl7dmFyIHI9ZS5pY29uLHQ9cj09PXZvaWQgMD8oMCxzLmpzeCkoSWkuWix7fSk6cixvPSgwLGQudXNlQ29udGV4dCkoVHQpLHU9KDAsd2UuWUIpKCksaT1Kcih7c2VsZWN0ZWRLZXlzOltvLnRhYmxlU2l6ZV0sb25DbGljazpmdW5jdGlvbihnKXt2YXIgbSxTPWcua2V5OyhtPW8uc2V0VGFibGVTaXplKT09PW51bGx8fG09PT12b2lkIDB8fG0uY2FsbChvLFMpfSxzdHlsZTp7d2lkdGg6ODB9LGl0ZW1zOlt7a2V5OiJsYXJnZSIsbGFiZWw6dS5nZXRNZXNzYWdlKCJ0YWJsZVRvb2xCYXIuZGVuc2l0eUxhcmdlciIsIlx1NUJCRFx1Njc3RSIpfSx7a2V5OiJtaWRkbGUiLGxhYmVsOnUuZ2V0TWVzc2FnZSgidGFibGVUb29sQmFyLmRlbnNpdHlNaWRkbGUiLCJcdTRFMkRcdTdCNDkiKX0se2tleToic21hbGwiLGxhYmVsOnUuZ2V0TWVzc2FnZSgidGFibGVUb29sQmFyLmRlbnNpdHlTbWFsbCIsIlx1N0QyN1x1NTFEMSIpfV19KTtyZXR1cm4oMCxzLmpzeCkoWXIuWiwoMCxsLlopKCgwLGwuWikoe30saSkse30se3RyaWdnZXI6WyJjbGljayJdLGNoaWxkcmVuOigwLHMuanN4KShFdC5aLHt0aXRsZTp1LmdldE1lc3NhZ2UoInRhYmxlVG9vbEJhci5kZW5zaXR5IiwiXHU4ODY4XHU2ODNDXHU1QkM2XHU1RUE2IiksY2hpbGRyZW46dH0pfSkpfSx3aT1kLm1lbW8oVGkpLEVpPXYoMTE3MTMpLCRpPXYoMjc3MzIpLE1pPWZ1bmN0aW9uKCl7dmFyIGU9KDAsd2UuWUIpKCkscj0oMCxkLnVzZVN0YXRlKSghMSksdD0oMCxmZS5aKShyLDIpLG89dFswXSx1PXRbMV07cmV0dXJuKDAsZC51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7KDAsaXIuaikoKSYmKGRvY3VtZW50Lm9uZnVsbHNjcmVlbmNoYW5nZT1mdW5jdGlvbigpe3UoISFkb2N1bWVudC5mdWxsc2NyZWVuRWxlbWVudCl9KX0sW10pLG8/KDAscy5qc3gpKEV0Llose3RpdGxlOmUuZ2V0TWVzc2FnZSgidGFibGVUb29sQmFyLmV4aXRGdWxsU2NyZWVuIiwiXHU1MTY4XHU1QzRGIiksY2hpbGRyZW46KDAscy5qc3gpKEVpLlose30pfSk6KDAscy5qc3gpKEV0Llose3RpdGxlOmUuZ2V0TWVzc2FnZSgidGFibGVUb29sQmFyLmZ1bGxTY3JlZW4iLCJcdTUxNjhcdTVDNEYiKSxjaGlsZHJlbjooMCxzLmpzeCkoJGkuWix7fSl9KX0sUXI9ZC5tZW1vKE1pKSxqaT1bImhlYWRlclRpdGxlIiwidG9vbHRpcCIsInRvb2xCYXJSZW5kZXIiLCJhY3Rpb24iLCJvcHRpb25zIiwic2VsZWN0ZWRSb3dLZXlzIiwic2VsZWN0ZWRSb3dzIiwidG9vbGJhciIsIm9uU2VhcmNoIiwiY29sdW1ucyIsIm9wdGlvbnNSZW5kZXIiXTtmdW5jdGlvbiBGaShuLGUpe3ZhciByLHQ9bi5pbnRsO3JldHVybntyZWxvYWQ6e3RleHQ6dC5nZXRNZXNzYWdlKCJ0YWJsZVRvb2xCYXIucmVsb2FkIiwiXHU1MjM3XHU2NUIwIiksaWNvbjoocj1lLnJlbG9hZEljb24pIT09bnVsbCYmciE9PXZvaWQgMD9yOigwLHMuanN4KShlaS5aLHt9KX0sZGVuc2l0eTp7dGV4dDp0LmdldE1lc3NhZ2UoInRhYmxlVG9vbEJhci5kZW5zaXR5IiwiXHU4ODY4XHU2ODNDXHU1QkM2XHU1RUE2IiksaWNvbjooMCxzLmpzeCkod2kse2ljb246ZS5kZW5zaXR5SWNvbn0pfSxmdWxsU2NyZWVuOnt0ZXh0OnQuZ2V0TWVzc2FnZSgidGFibGVUb29sQmFyLmZ1bGxTY3JlZW4iLCJcdTUxNjhcdTVDNEYiKSxpY29uOigwLHMuanN4KShRcix7fSl9fX1mdW5jdGlvbiBOaShuLGUscix0KXtyZXR1cm4gT2JqZWN0LmtleXMobikuZmlsdGVyKGZ1bmN0aW9uKG8pe3JldHVybiBvfSkubWFwKGZ1bmN0aW9uKG8pe3ZhciB1PW5bb107aWYoIXUpcmV0dXJuIG51bGw7dmFyIGk9dT09PSEwP2Vbb106ZnVuY3Rpb24oZyl7dT09bnVsbHx8dShnLHIuY3VycmVudCl9O2lmKHR5cGVvZiBpIT0iZnVuY3Rpb24iJiYoaT1mdW5jdGlvbigpe30pLG89PT0ic2V0dGluZyIpcmV0dXJuKDAsZC5jcmVhdGVFbGVtZW50KShwaSwoMCxsLlopKCgwLGwuWikoe30sbltvXSkse30se2NvbHVtbnM6dCxrZXk6b30pKTtpZihvPT09ImZ1bGxTY3JlZW4iKXJldHVybigwLHMuanN4KSgic3BhbiIse29uQ2xpY2s6aSxjaGlsZHJlbjooMCxzLmpzeCkoUXIse30pfSxvKTt2YXIgYz1GaShlLG4pW29dO3JldHVybiBjPygwLHMuanN4KSgic3BhbiIse29uQ2xpY2s6aSxjaGlsZHJlbjooMCxzLmpzeCkoRXQuWix7dGl0bGU6Yy50ZXh0LGNoaWxkcmVuOmMuaWNvbn0pfSxvKTpudWxsfSkuZmlsdGVyKGZ1bmN0aW9uKG8pe3JldHVybiBvfSl9ZnVuY3Rpb24gT2kobil7dmFyIGU9bi5oZWFkZXJUaXRsZSxyPW4udG9vbHRpcCx0PW4udG9vbEJhclJlbmRlcixvPW4uYWN0aW9uLHU9bi5vcHRpb25zLGk9bi5zZWxlY3RlZFJvd0tleXMsYz1uLnNlbGVjdGVkUm93cyxnPW4udG9vbGJhcixtPW4ub25TZWFyY2gsUz1uLmNvbHVtbnMsWj1uLm9wdGlvbnNSZW5kZXIseT0oMCxxLlopKG4samkpLHg9KDAsZC51c2VDb250ZXh0KShUdCksaD0oMCx3ZS5ZQikoKSxJPSgwLGQudXNlTWVtbykoZnVuY3Rpb24oKXt2YXIgUj17cmVsb2FkOmZ1bmN0aW9uKCl7dmFyIGllO3JldHVybiBvPT1udWxsfHwoaWU9by5jdXJyZW50KT09PW51bGx8fGllPT09dm9pZCAwP3ZvaWQgMDppZS5yZWxvYWQoKX0sZGVuc2l0eTohMCxzZXR0aW5nOiEwLHNlYXJjaDohMSxmdWxsU2NyZWVuOmZ1bmN0aW9uKCl7dmFyIGllLHc7cmV0dXJuIG89PW51bGx8fChpZT1vLmN1cnJlbnQpPT09bnVsbHx8aWU9PT12b2lkIDB8fCh3PWllLmZ1bGxTY3JlZW4pPT09bnVsbHx8dz09PXZvaWQgMD92b2lkIDA6dy5jYWxsKGllKX19O2lmKHU9PT0hMSlyZXR1cm5bXTt2YXIgWT0oMCxsLlopKCgwLGwuWikoe30sUikse30se2Z1bGxTY3JlZW46ITF9LHUpLEc9TmkoWSwoMCxsLlopKCgwLGwuWikoe30sUikse30se2ludGw6aH0pLG8sUyk7cmV0dXJuIFo/WigoMCxsLlopKHtoZWFkZXJUaXRsZTplLHRvb2x0aXA6cix0b29sQmFyUmVuZGVyOnQsYWN0aW9uOm8sb3B0aW9uczp1LHNlbGVjdGVkUm93S2V5czppLHNlbGVjdGVkUm93czpjLHRvb2xiYXI6ZyxvblNlYXJjaDptLGNvbHVtbnM6UyxvcHRpb25zUmVuZGVyOlp9LHkpLEcpOkd9LFtvLFMsZSxoLG0sWix1LHksaSxjLHQsZyxyXSksQz10P3Qobz09bnVsbD92b2lkIDA6by5jdXJyZW50LHtzZWxlY3RlZFJvd0tleXM6aSxzZWxlY3RlZFJvd3M6Y30pOltdLFQ9KDAsZC51c2VNZW1vKShmdW5jdGlvbigpe2lmKCF1fHwhdS5zZWFyY2gpcmV0dXJuITE7dmFyIFI9e3ZhbHVlOngua2V5V29yZHMsb25DaGFuZ2U6ZnVuY3Rpb24oRyl7cmV0dXJuIHguc2V0S2V5V29yZHMoRy50YXJnZXQudmFsdWUpfX07cmV0dXJuIHUuc2VhcmNoPT09ITA/UjooMCxsLlopKCgwLGwuWikoe30sUiksdS5zZWFyY2gpfSxbeCx1XSk7cmV0dXJuKDAsZC51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7eC5rZXlXb3Jkcz09PXZvaWQgMCYmKG09PW51bGx8fG0oIiIpKX0sW3gua2V5V29yZHMsbV0pLCgwLHMuanN4KShSaSwoMCxsLlopKHt0aXRsZTplLHRvb2x0aXA6cnx8eS50aXAsc2VhcmNoOlQsb25TZWFyY2g6bSxhY3Rpb25zOkMsc2V0dGluZ3M6SX0sZykpfXZhciBEaT1mdW5jdGlvbihuKXsoMCxqci5aKShyLG4pO3ZhciBlPSgwLEZyLlopKHIpO2Z1bmN0aW9uIHIoKXt2YXIgdDsoMCxNci5aKSh0aGlzLHIpO2Zvcih2YXIgbz1hcmd1bWVudHMubGVuZ3RoLHU9bmV3IEFycmF5KG8pLGk9MDtpPG87aSsrKXVbaV09YXJndW1lbnRzW2ldO3JldHVybiB0PWUuY2FsbC5hcHBseShlLFt0aGlzXS5jb25jYXQodSkpLCgwLHAuWikoKDAsYnQuWikodCksIm9uU2VhcmNoIixmdW5jdGlvbihjKXt2YXIgZyxtLFMsWix5PXQucHJvcHMseD15Lm9wdGlvbnMsaD15Lm9uRm9ybVNlYXJjaFN1Ym1pdCxJPXkuYWN0aW9uUmVmO2lmKCEoIXh8fCF4LnNlYXJjaCkpe3ZhciBDPXguc2VhcmNoPT09ITA/e306eC5zZWFyY2gsVD1DLm5hbWUsUj1UPT09dm9pZCAwPyJrZXl3b3JkIjpULFk9KGc9eC5zZWFyY2gpPT09bnVsbHx8Zz09PXZvaWQgMHx8KG09Zy5vblNlYXJjaCk9PT1udWxsfHxtPT09dm9pZCAwP3ZvaWQgMDptLmNhbGwoZyxjKTtZIT09ITEmJihJPT1udWxsfHwoUz1JLmN1cnJlbnQpPT09bnVsbHx8Uz09PXZvaWQgMHx8KFo9Uy5zZXRQYWdlSW5mbyk9PT1udWxsfHxaPT09dm9pZCAwfHxaLmNhbGwoUyx7Y3VycmVudDoxfSksaCgoMCxhLlkpKCgwLHAuWikoe190aW1lc3RhbXA6RGF0ZS5ub3coKX0sUixjKSkpKX19KSwoMCxwLlopKCgwLGJ0LlopKHQpLCJpc0VxdWFscyIsZnVuY3Rpb24oYyl7dmFyIGc9dC5wcm9wcyxtPWcuaGlkZVRvb2xiYXIsUz1nLnRhYmxlQ29sdW1uLFo9Zy5vcHRpb25zLHk9Zy50b29sdGlwLHg9Zy50b29sYmFyLGg9Zy5zZWxlY3RlZFJvd3MsST1nLnNlbGVjdGVkUm93S2V5cyxDPWcuaGVhZGVyVGl0bGUsVD1nLmFjdGlvblJlZixSPWcudG9vbEJhclJlbmRlcjtyZXR1cm4oMCxOci5BKSh7aGlkZVRvb2xiYXI6bSx0YWJsZUNvbHVtbjpTLG9wdGlvbnM6Wix0b29sdGlwOnksdG9vbGJhcjp4LHNlbGVjdGVkUm93czpoLHNlbGVjdGVkUm93S2V5czpJLGhlYWRlclRpdGxlOkMsYWN0aW9uUmVmOlQsdG9vbEJhclJlbmRlcjpSfSx7aGlkZVRvb2xiYXI6Yy5oaWRlVG9vbGJhcix0YWJsZUNvbHVtbjpjLnRhYmxlQ29sdW1uLG9wdGlvbnM6Yy5vcHRpb25zLHRvb2x0aXA6Yy50b29sdGlwLHRvb2xiYXI6Yy50b29sYmFyLHNlbGVjdGVkUm93czpjLnNlbGVjdGVkUm93cyxzZWxlY3RlZFJvd0tleXM6Yy5zZWxlY3RlZFJvd0tleXMsaGVhZGVyVGl0bGU6Yy5oZWFkZXJUaXRsZSxhY3Rpb25SZWY6Yy5hY3Rpb25SZWYsdG9vbEJhclJlbmRlcjpjLnRvb2xCYXJSZW5kZXJ9LFsicmVuZGVyIiwicmVuZGVyRm9ybUl0ZW0iXSl9KSwoMCxwLlopKCgwLGJ0LlopKHQpLCJzaG91bGRDb21wb25lbnRVcGRhdGUiLGZ1bmN0aW9uKGMpe3JldHVybiBjLnNlYXJjaE5vZGU/ITA6IXQuaXNFcXVhbHMoYyl9KSwoMCxwLlopKCgwLGJ0LlopKHQpLCJyZW5kZXIiLGZ1bmN0aW9uKCl7dmFyIGM9dC5wcm9wcyxnPWMuaGlkZVRvb2xiYXIsbT1jLnRhYmxlQ29sdW1uLFM9Yy5vcHRpb25zLFo9Yy5zZWFyY2hOb2RlLHk9Yy50b29sdGlwLHg9Yy50b29sYmFyLGg9Yy5zZWxlY3RlZFJvd3MsST1jLnNlbGVjdGVkUm93S2V5cyxDPWMuaGVhZGVyVGl0bGUsVD1jLmFjdGlvblJlZixSPWMudG9vbEJhclJlbmRlcixZPWMub3B0aW9uc1JlbmRlcjtyZXR1cm4gZz9udWxsOigwLHMuanN4KShPaSx7dG9vbHRpcDp5LGNvbHVtbnM6bSxvcHRpb25zOlMsaGVhZGVyVGl0bGU6QyxhY3Rpb246VCxvblNlYXJjaDp0Lm9uU2VhcmNoLHNlbGVjdGVkUm93czpoLHNlbGVjdGVkUm93S2V5czpJLHRvb2xCYXJSZW5kZXI6Uix0b29sYmFyOigwLGwuWikoe2ZpbHRlcjpafSx4KSxvcHRpb25zUmVuZGVyOll9KX0pLHR9cmV0dXJuKDAsJHIuWikocil9KGQuQ29tcG9uZW50KSxCaT1EaSxBaT1uZXcgRm4uRTQoInR1cm4iLHsiMCUiOnt0cmFuc2Zvcm06InJvdGF0ZSgwZGVnKSJ9LCIyNSUiOnt0cmFuc2Zvcm06InJvdGF0ZSg5MGRlZykifSwiNTAlIjp7dHJhbnNmb3JtOiJyb3RhdGUoMTgwZGVnKSJ9LCI3NSUiOnt0cmFuc2Zvcm06InJvdGF0ZSgyNzBkZWcpIn0sIjEwMCUiOnt0cmFuc2Zvcm06InJvdGF0ZSgzNjBkZWcpIn19KSxMaT1mdW5jdGlvbihlKXtyZXR1cm4oMCxwLlopKCgwLHAuWikoKDAscC5aKSh7fSxlLmNvbXBvbmVudENscywoMCxwLlopKCgwLHAuWikoKDAscC5aKSgoMCxwLlopKCgwLHAuWikoKDAscC5aKSgoMCxwLlopKCgwLHAuWikoKDAscC5aKSh7ekluZGV4OjF9LCIiLmNvbmNhdChlLmFudENscywiLXRhYmxlLXdyYXBwZXIgIikuY29uY2F0KGUuYW50Q2xzLCItdGFibGUtcGFnaW5hdGlvbiIpLmNvbmNhdChlLmFudENscywiLXBhZ2luYXRpb24iKSx7bWFyZ2luQmxvY2tFbmQ6MH0pLCImOm5vdCg6cm9vdCk6ZnVsbHNjcmVlbiIse21pbkhlaWdodDoiMTAwdmgiLG92ZXJmbG93OiJhdXRvIixiYWNrZ3JvdW5kOmUuY29sb3JCZ0NvbnRhaW5lcn0pLCImLWV4dHJhIix7bWFyZ2luQmxvY2tFbmQ6MTZ9KSwiJi1wb2xsaW5nIiwoMCxwLlopKHt9LCIiLmNvbmNhdChlLmNvbXBvbmVudENscywiLWxpc3QtdG9vbGJhci1zZXR0aW5nLWl0ZW0iKSx7Ii5hbnRpY29uLmFudGljb24tcmVsb2FkIjp7dHJhbnNmb3JtOiJyb3RhdGUoMGRlZykiLGFuaW1hdGlvbk5hbWU6QWksYW5pbWF0aW9uRHVyYXRpb246IjFzIixhbmltYXRpb25UaW1pbmdGdW5jdGlvbjoibGluZWFyIixhbmltYXRpb25JdGVyYXRpb25Db3VudDoiaW5maW5pdGUifX0pKSwidGQiLmNvbmNhdChlLmFudENscywiLXRhYmxlLWNlbGwiKSx7Ij5hIjp7Zm9udFNpemU6ZS5mb250U2l6ZX19KSwiIi5jb25jYXQoZS5hbnRDbHMsIi10YWJsZSIpLmNvbmNhdChlLmFudENscywiLXRhYmxlLXRib2R5IikuY29uY2F0KGUuYW50Q2xzLCItdGFibGUtd3JhcHBlcjpvbmx5LWNoaWxkIikuY29uY2F0KGUuYW50Q2xzLCItdGFibGUiKSx7bWFyZ2luQmxvY2s6MCxtYXJnaW5JbmxpbmU6MH0pLCIiLmNvbmNhdChlLmFudENscywiLXRhYmxlIikuY29uY2F0KGUuYW50Q2xzLCItdGFibGUtbWlkZGxlICIpLmNvbmNhdChlLmNvbXBvbmVudENscyksKDAscC5aKSh7bWFyZ2luQmxvY2s6MCxtYXJnaW5JbmxpbmU6LTh9LCIiLmNvbmNhdChlLnByb0NvbXBvbmVudHNDbHMsIi1jYXJkIikse2JhY2tncm91bmRDb2xvcjoiaW5pdGlhbCJ9KSksIiYgJi1zZWFyY2giLCgwLHAuWikoKDAscC5aKSgoMCxwLlopKCgwLHAuWikoe21hcmdpbkJsb2NrRW5kOiIxNnB4IixiYWNrZ3JvdW5kOmUuY29sb3JCZ0NvbnRhaW5lciwiJi1naG9zdCI6e2JhY2tncm91bmQ6InRyYW5zcGFyZW50In19LCImIi5jb25jYXQoZS5jb21wb25lbnRDbHMsIi1mb3JtIikse21hcmdpbkJsb2NrOjAsbWFyZ2luSW5saW5lOjAscGFkZGluZ0Jsb2NrOjAscGFkZGluZ0lubGluZToxNixvdmVyZmxvdzoidW5zZXQifSksIiYtbGlnaHQtZmlsdGVyIix7bWFyZ2luQmxvY2tFbmQ6MCxwYWRkaW5nQmxvY2s6MCxwYWRkaW5nSW5saW5lOjB9KSwiJi1mb3JtLW9wdGlvbiIsKDAscC5aKSgoMCxwLlopKCgwLHAuWikoe30sIiIuY29uY2F0KGUuYW50Q2xzLCItZm9ybS1pdGVtIikse30pLCIiLmNvbmNhdChlLmFudENscywiLWZvcm0taXRlbS1sYWJlbCIpLHt9KSwiIi5jb25jYXQoZS5hbnRDbHMsIi1mb3JtLWl0ZW0tY29udHJvbC1pbnB1dCIpLHt9KSksIkBtZWRpYSAobWF4LXdpZHRoOiA1NzVweCkiLCgwLHAuWikoe30sZS5jb21wb25lbnRDbHMsKDAscC5aKSh7aGVpZ2h0OiJhdXRvICFpbXBvcnRhbnQiLHBhZGRpbmdCbG9ja0VuZDoiMjRweCJ9LCIiLmNvbmNhdChlLmFudENscywiLWZvcm0taXRlbS1sYWJlbCIpLHttaW5XaWR0aDoiODBweCIsdGV4dEFsaWduOiJzdGFydCJ9KSkpKSwiJi10b29sYmFyIix7ZGlzcGxheToiZmxleCIsYWxpZ25JdGVtczoiY2VudGVyIixqdXN0aWZ5Q29udGVudDoic3BhY2UtYmV0d2VlbiIsaGVpZ2h0OiI2NHB4IixwYWRkaW5nSW5saW5lOjI0LHBhZGRpbmdCbG9jazowLCImLW9wdGlvbiI6e2Rpc3BsYXk6ImZsZXgiLGFsaWduSXRlbXM6ImNlbnRlciIsanVzdGlmeUNvbnRlbnQ6ImZsZXgtZW5kIn0sIiYtdGl0bGUiOntmbGV4OiIxIixjb2xvcjplLmNvbG9yVGV4dExhYmVsLGZvbnRXZWlnaHQ6IjUwMCIsZm9udFNpemU6IjE2cHgiLGxpbmVIZWlnaHQ6IjI0cHgiLG9wYWNpdHk6IjAuODUifX0pKSwiQG1lZGlhIChtYXgtd2lkdGg6ICIuY29uY2F0KGUuc2NyZWVuWFMsIilweCIpLCgwLHAuWikoe30sZS5jb21wb25lbnRDbHMsKDAscC5aKSh7fSwiIi5jb25jYXQoZS5hbnRDbHMsIi10YWJsZSIpLHt3aWR0aDoiMTAwJSIsb3ZlcmZsb3dYOiJhdXRvIiwiJi10aGVhZCA+IHRyLCYtdGJvZHkgPiB0ciI6eyI+IHRoLD4gdGQiOnt3aGl0ZVNwYWNlOiJwcmUiLCI+c3BhbiI6e2Rpc3BsYXk6ImJsb2NrIn19fX0pKSksIkBtZWRpYSAobWF4LXdpZHRoOiA1NzVweCkiLCgwLHAuWikoe30sIiIuY29uY2F0KGUuY29tcG9uZW50Q2xzLCItdG9vbGJhciIpLHtmbGV4RGlyZWN0aW9uOiJjb2x1bW4iLGFsaWduSXRlbXM6ImZsZXgtc3RhcnQiLGp1c3RpZnlDb250ZW50OiJmbGV4LXN0YXJ0IixoZWlnaHQ6ImF1dG8iLG1hcmdpbkJsb2NrRW5kOiIxNnB4IixtYXJnaW5JbmxpbmVTdGFydDoiMTZweCIscGFkZGluZ0Jsb2NrOjgscGFkZGluZ0lubGluZTo4LHBhZGRpbmdCbG9ja1N0YXJ0OiIxNnB4IixsaW5lSGVpZ2h0OiJub3JtYWwiLCImLXRpdGxlIjp7bWFyZ2luQmxvY2tFbmQ6MTZ9LCImLW9wdGlvbiI6e2Rpc3BsYXk6ImZsZXgiLGp1c3RpZnlDb250ZW50OiJzcGFjZS1iZXR3ZWVuIix3aWR0aDoiMTAwJSJ9LCImLWRlZmF1bHQtb3B0aW9uIjp7ZGlzcGxheToiZmxleCIsZmxleDoiMSIsYWxpZ25JdGVtczoiY2VudGVyIixqdXN0aWZ5Q29udGVudDoiZmxleC1lbmQifX0pKX07ZnVuY3Rpb24gS2kobil7cmV0dXJuKDAsdW4uWGopKCJQcm9UYWJsZSIsZnVuY3Rpb24oZSl7dmFyIHI9KDAsbC5aKSgoMCxsLlopKHt9LGUpLHt9LHtjb21wb25lbnRDbHM6Ii4iLmNvbmNhdChuKX0pO3JldHVybltMaShyKV19KX12YXIgZnI9digyNjM2OSksemk9digxMDE3OCksV2k9WyJkYXRhIiwic3VjY2VzcyIsInRvdGFsIl0sSGk9ZnVuY3Rpb24oZSl7dmFyIHI9ZS5wYWdlSW5mbztpZihyKXt2YXIgdD1yLmN1cnJlbnQsbz1yLmRlZmF1bHRDdXJyZW50LHU9ci5wYWdlU2l6ZSxpPXIuZGVmYXVsdFBhZ2VTaXplO3JldHVybntjdXJyZW50OnR8fG98fDEsdG90YWw6MCxwYWdlU2l6ZTp1fHxpfHwyMH19cmV0dXJue2N1cnJlbnQ6MSx0b3RhbDowLHBhZ2VTaXplOjIwfX0sVmk9ZnVuY3Rpb24oZSxyLHQpe3ZhciBvLHU9KDAsZC51c2VSZWYpKCExKSxpPSgwLGQudXNlUmVmKShudWxsKSxjPXR8fHt9LGc9Yy5vbkxvYWQsbT1jLm1hbnVhbCxTPWMucG9sbGluZyxaPWMub25SZXF1ZXN0RXJyb3IseT1jLmRlYm91bmNlVGltZSx4PXk9PT12b2lkIDA/MjA6eSxoPWMuZWZmZWN0cyxJPWg9PT12b2lkIDA/W106aCxDPSgwLGQudXNlUmVmKShtKSxUPSgwLGQudXNlUmVmKSgpLFI9KDAscWUuWikocix7dmFsdWU6dD09bnVsbD92b2lkIDA6dC5kYXRhU291cmNlLG9uQ2hhbmdlOnQ9PW51bGw/dm9pZCAwOnQub25EYXRhU291cmNlQ2hhbmdlfSksWT0oMCxmZS5aKShSLDIpLEc9WVswXSxrPVlbMV0saWU9KDAscWUuWikoITEse3ZhbHVlOigwLFpuLlopKHQ9PW51bGw/dm9pZCAwOnQubG9hZGluZyk9PT0ib2JqZWN0Ij90PT1udWxsfHwobz10LmxvYWRpbmcpPT09bnVsbHx8bz09PXZvaWQgMD92b2lkIDA6by5zcGlubmluZzp0PT1udWxsP3ZvaWQgMDp0LmxvYWRpbmcsb25DaGFuZ2U6dD09bnVsbD92b2lkIDA6dC5vbkxvYWRpbmdDaGFuZ2V9KSx3PSgwLGZlLlopKGllLDIpLHo9d1swXSxCPXdbMV0sRT0oMCxxZS5aKShmdW5jdGlvbigpe3JldHVybiBIaSh0KX0se29uQ2hhbmdlOnQ9PW51bGw/dm9pZCAwOnQub25QYWdlSW5mb0NoYW5nZX0pLFA9KDAsZmUuWikoRSwyKSwkPVBbMF0sSj1QWzFdLEY9KDAsb3QuSikoZnVuY3Rpb24oVil7KFYuY3VycmVudCE9PSQuY3VycmVudHx8Vi5wYWdlU2l6ZSE9PSQucGFnZVNpemV8fFYudG90YWwhPT0kLnRvdGFsKSYmSihWKX0pLGI9KDAscWUuWikoITEpLE49KDAsZmUuWikoYiwyKSxLPU5bMF0sWD1OWzFdLF89ZnVuY3Rpb24ocmUsU2UpeygwLFF0LnVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzKShmdW5jdGlvbigpe2socmUpLCgkPT1udWxsP3ZvaWQgMDokLnRvdGFsKSE9PVNlJiZGKCgwLGwuWikoKDAsbC5aKSh7fSwkKSx7fSx7dG90YWw6U2V8fHJlLmxlbmd0aH0pKX0pfSxPPSgwLGZyLkQpKCQ9PW51bGw/dm9pZCAwOiQuY3VycmVudCksVz0oMCxmci5EKSgkPT1udWxsP3ZvaWQgMDokLnBhZ2VTaXplKSxuZT0oMCxmci5EKShTKSxkZT0oMCxvdC5KKShmdW5jdGlvbigpeygwLFF0LnVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzKShmdW5jdGlvbigpe0IoITEpLFgoITEpfSl9KSxjZT1mdW5jdGlvbigpe3ZhciBWPSgwLHNlLlopKCgwLEwuWikoKS5tYXJrKGZ1bmN0aW9uIHJlKFNlKXt2YXIgRmUsRGUsdG4sY24sQ2UsQ24sT24sYmUsQSxILGhlLHRlO3JldHVybigwLEwuWikoKS53cmFwKGZ1bmN0aW9uKExlKXtmb3IoOzspc3dpdGNoKExlLnByZXY9TGUubmV4dCl7Y2FzZSAwOmlmKCFDLmN1cnJlbnQpe0xlLm5leHQ9MzticmVha31yZXR1cm4gQy5jdXJyZW50PSExLExlLmFicnVwdCgicmV0dXJuIik7Y2FzZSAzOnJldHVybiBTZT9YKCEwKTpCKCEwKSxGZT0kfHx7fSxEZT1GZS5wYWdlU2l6ZSx0bj1GZS5jdXJyZW50LExlLnByZXY9NSxjbj0odD09bnVsbD92b2lkIDA6dC5wYWdlSW5mbykhPT0hMT97Y3VycmVudDp0bixwYWdlU2l6ZTpEZX06dm9pZCAwLExlLm5leHQ9OSxlPT1udWxsP3ZvaWQgMDplKGNuKTtjYXNlIDk6aWYoTGUudDA9TGUuc2VudCxMZS50MCl7TGUubmV4dD0xMjticmVha31MZS50MD17fTtjYXNlIDEyOmlmKENlPUxlLnQwLENuPUNlLmRhdGEsT249Q249PT12b2lkIDA/W106Q24sYmU9Q2Uuc3VjY2VzcyxBPUNlLnRvdGFsLEg9QT09PXZvaWQgMD8wOkEsaGU9KDAscS5aKShDZSxXaSksYmUhPT0hMSl7TGUubmV4dD0yMTticmVha31yZXR1cm4gTGUuYWJydXB0KCJyZXR1cm4iLFtdKTtjYXNlIDIxOnJldHVybiB0ZT1TbChPbixbdC5wb3N0RGF0YV0uZmlsdGVyKGZ1bmN0aW9uKGZuKXtyZXR1cm4gZm59KSksXyh0ZSxIKSxnPT1udWxsfHxnKHRlLGhlKSxMZS5hYnJ1cHQoInJldHVybiIsdGUpO2Nhc2UgMjc6aWYoTGUucHJldj0yNyxMZS50MT1MZS5jYXRjaCg1KSxaIT09dm9pZCAwKXtMZS5uZXh0PTMxO2JyZWFrfXRocm93IG5ldyBFcnJvcihMZS50MSk7Y2FzZSAzMTpHPT09dm9pZCAwJiZrKFtdKSxaKExlLnQxKTtjYXNlIDMzOnJldHVybiBMZS5wcmV2PTMzLGRlKCksTGUuZmluaXNoKDMzKTtjYXNlIDM2OnJldHVybiBMZS5hYnJ1cHQoInJldHVybiIsW10pO2Nhc2UgMzc6Y2FzZSJlbmQiOnJldHVybiBMZS5zdG9wKCl9fSxyZSxudWxsLFtbNSwyNywzMywzNl1dKX0pKTtyZXR1cm4gZnVuY3Rpb24oU2Upe3JldHVybiBWLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksVT0oMCx6aS5EKShmdW5jdGlvbigpe3ZhciBWPSgwLHNlLlopKCgwLEwuWikoKS5tYXJrKGZ1bmN0aW9uIHJlKFNlKXt2YXIgRmUsRGUsdG47cmV0dXJuKDAsTC5aKSgpLndyYXAoZnVuY3Rpb24oQ2Upe2Zvcig7Oylzd2l0Y2goQ2UucHJldj1DZS5uZXh0KXtjYXNlIDA6aWYoVC5jdXJyZW50JiZjbGVhclRpbWVvdXQoVC5jdXJyZW50KSxlKXtDZS5uZXh0PTM7YnJlYWt9cmV0dXJuIENlLmFicnVwdCgicmV0dXJuIik7Y2FzZSAzOnJldHVybiBGZT1uZXcgQWJvcnRDb250cm9sbGVyLGkuY3VycmVudD1GZSxDZS5wcmV2PTUsQ2UubmV4dD04LFByb21pc2UucmFjZShbY2UoU2UpLG5ldyBQcm9taXNlKGZ1bmN0aW9uKENuLE9uKXt2YXIgYmUsQTsoYmU9aS5jdXJyZW50KT09PW51bGx8fGJlPT09dm9pZCAwfHwoYmU9YmUuc2lnbmFsKT09PW51bGx8fGJlPT09dm9pZCAwfHwoQT1iZS5hZGRFdmVudExpc3RlbmVyKT09PW51bGx8fEE9PT12b2lkIDB8fEEuY2FsbChiZSwiYWJvcnQiLGZ1bmN0aW9uKCl7T24oImFib3J0ZWQiKSxVLmNhbmNlbCgpLGRlKCl9KX0pXSk7Y2FzZSA4OmlmKERlPUNlLnNlbnQsIUZlLnNpZ25hbC5hYm9ydGVkKXtDZS5uZXh0PTExO2JyZWFrfXJldHVybiBDZS5hYnJ1cHQoInJldHVybiIpO2Nhc2UgMTE6cmV0dXJuIHRuPSgwLG10LmgpKFMsRGUpLHRuJiYhdS5jdXJyZW50JiYoVC5jdXJyZW50PXNldFRpbWVvdXQoZnVuY3Rpb24oKXtVLnJ1bih0bil9LE1hdGgubWF4KHRuLDJlMykpKSxDZS5hYnJ1cHQoInJldHVybiIsRGUpO2Nhc2UgMTY6aWYoQ2UucHJldj0xNixDZS50MD1DZS5jYXRjaCg1KSxDZS50MCE9PSJhYm9ydGVkIil7Q2UubmV4dD0yMDticmVha31yZXR1cm4gQ2UuYWJydXB0KCJyZXR1cm4iKTtjYXNlIDIwOnRocm93IENlLnQwO2Nhc2UgMjE6Y2FzZSJlbmQiOnJldHVybiBDZS5zdG9wKCl9fSxyZSxudWxsLFtbNSwxNl1dKX0pKTtyZXR1cm4gZnVuY3Rpb24ocmUpe3JldHVybiBWLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCkseHx8MzApLGFlPWZ1bmN0aW9uKCl7dmFyIHJlOyhyZT1pLmN1cnJlbnQpPT09bnVsbHx8cmU9PT12b2lkIDB8fHJlLmFib3J0KCksVS5jYW5jZWwoKSxkZSgpfTtyZXR1cm4oMCxkLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtyZXR1cm4gU3x8Y2xlYXJUaW1lb3V0KFQuY3VycmVudCksIW5lJiZTJiZVLnJ1bighMCksZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQoVC5jdXJyZW50KX19LFtTXSksKDAsZC51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7cmV0dXJuIHUuY3VycmVudD0hMSxmdW5jdGlvbigpe3UuY3VycmVudD0hMH19LFtdKSwoMCxkLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXt2YXIgVj0kfHx7fSxyZT1WLmN1cnJlbnQsU2U9Vi5wYWdlU2l6ZTsoIU98fE89PT1yZSkmJighV3x8Vz09PVNlKXx8dC5wYWdlSW5mbyYmRyYmKEc9PW51bGw/dm9pZCAwOkcubGVuZ3RoKT5TZXx8cmUhPT12b2lkIDAmJkcmJkcubGVuZ3RoPD1TZSYmKGFlKCksVS5ydW4oITEpKX0sWyQ9PW51bGw/dm9pZCAwOiQuY3VycmVudF0pLCgwLGQudXNlRWZmZWN0KShmdW5jdGlvbigpe1cmJihhZSgpLFUucnVuKCExKSl9LFskPT1udWxsP3ZvaWQgMDokLnBhZ2VTaXplXSksKDAsai5LVykoZnVuY3Rpb24oKXtyZXR1cm4gYWUoKSxVLnJ1bighMSksbXx8KEMuY3VycmVudD0hMSksZnVuY3Rpb24oKXthZSgpfX0sW10uY29uY2F0KCgwLG1uLlopKEkpLFttXSkpLHtkYXRhU291cmNlOkcsc2V0RGF0YVNvdXJjZTprLGxvYWRpbmc6KDAsWm4uWikodD09bnVsbD92b2lkIDA6dC5sb2FkaW5nKT09PSJvYmplY3QiPygwLGwuWikoKDAsbC5aKSh7fSx0PT1udWxsP3ZvaWQgMDp0LmxvYWRpbmcpLHt9LHtzcGlubmluZzp6fSk6eixyZWxvYWQ6ZnVuY3Rpb24oKXt2YXIgVj0oMCxzZS5aKSgoMCxMLlopKCkubWFyayhmdW5jdGlvbiBTZSgpe3JldHVybigwLEwuWikoKS53cmFwKGZ1bmN0aW9uKERlKXtmb3IoOzspc3dpdGNoKERlLnByZXY9RGUubmV4dCl7Y2FzZSAwOnJldHVybiBhZSgpLERlLmFicnVwdCgicmV0dXJuIixVLnJ1bighMSkpO2Nhc2UgMjpjYXNlImVuZCI6cmV0dXJuIERlLnN0b3AoKX19LFNlKX0pKTtmdW5jdGlvbiByZSgpe3JldHVybiBWLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gcmV9KCkscGFnZUluZm86JCxwb2xsaW5nTG9hZGluZzpLLHJlc2V0OmZ1bmN0aW9uKCl7dmFyIFY9KDAsc2UuWikoKDAsTC5aKSgpLm1hcmsoZnVuY3Rpb24gU2UoKXt2YXIgRmUsRGUsdG4sY24sQ2UsQ24sT24sYmU7cmV0dXJuKDAsTC5aKSgpLndyYXAoZnVuY3Rpb24oSCl7Zm9yKDs7KXN3aXRjaChILnByZXY9SC5uZXh0KXtjYXNlIDA6RmU9dHx8e30sRGU9RmUucGFnZUluZm8sdG49RGV8fHt9LGNuPXRuLmRlZmF1bHRDdXJyZW50LENlPWNuPT09dm9pZCAwPzE6Y24sQ249dG4uZGVmYXVsdFBhZ2VTaXplLE9uPUNuPT09dm9pZCAwPzIwOkNuLGJlPXtjdXJyZW50OkNlLHRvdGFsOjAscGFnZVNpemU6T259LEYoYmUpO2Nhc2UgNDpjYXNlImVuZCI6cmV0dXJuIEguc3RvcCgpfX0sU2UpfSkpO2Z1bmN0aW9uIHJlKCl7cmV0dXJuIFYuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiByZX0oKSxzZXRQYWdlSW5mbzpmdW5jdGlvbigpe3ZhciBWPSgwLHNlLlopKCgwLEwuWikoKS5tYXJrKGZ1bmN0aW9uIFNlKEZlKXtyZXR1cm4oMCxMLlopKCkud3JhcChmdW5jdGlvbih0bil7Zm9yKDs7KXN3aXRjaCh0bi5wcmV2PXRuLm5leHQpe2Nhc2UgMDpGKCgwLGwuWikoKDAsbC5aKSh7fSwkKSxGZSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIHRuLnN0b3AoKX19LFNlKX0pKTtmdW5jdGlvbiByZShTZSl7cmV0dXJuIFYuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiByZX0oKX19LFVpPVZpLFhpPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbihyLHQpe3ZhciBvLHUsaT1yLmZpeGVkLGM9ci5pbmRleCxnPXQuZml4ZWQsbT10LmluZGV4O2lmKGk9PT0ibGVmdCImJmchPT0ibGVmdCJ8fGc9PT0icmlnaHQiJiZpIT09InJpZ2h0IilyZXR1cm4tMjtpZihnPT09ImxlZnQiJiZpIT09ImxlZnQifHxpPT09InJpZ2h0IiYmZyE9PSJyaWdodCIpcmV0dXJuIDI7dmFyIFM9ci5rZXl8fCIiLmNvbmNhdChjKSxaPXQua2V5fHwiIi5jb25jYXQobSk7aWYoKG89ZVtTXSkhPT1udWxsJiZvIT09dm9pZCAwJiZvLm9yZGVyfHwodT1lW1pdKSE9PW51bGwmJnUhPT12b2lkIDAmJnUub3JkZXIpe3ZhciB5LHg7cmV0dXJuKCgoeT1lW1NdKT09PW51bGx8fHk9PT12b2lkIDA/dm9pZCAwOnkub3JkZXIpfHwwKS0oKCh4PWVbWl0pPT09bnVsbHx8eD09PXZvaWQgMD92b2lkIDA6eC5vcmRlcil8fDApfXJldHVybihyLmluZGV4fHwwKS0odC5pbmRleHx8MCl9fSxHaT12KDYwNjkyKSxKaT1mdW5jdGlvbihlKXt2YXIgcj17fTtyZXR1cm4gT2JqZWN0LmtleXMoZXx8e30pLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIG87QXJyYXkuaXNBcnJheShlW3RdKSYmKChvPWVbdF0pPT09bnVsbHx8bz09PXZvaWQgMD92b2lkIDA6by5sZW5ndGgpPT09MHx8ZVt0XSE9PXZvaWQgMCYmKHJbdF09ZVt0XSl9KSxyfSxZaT12KDc3Mzk4KSxRaT12KDc0NzYzKSxtcj12KDg4MzA2KSxxaT12KDY2NzU4KSxraT12KDkwMDgxKSxncj12KDIwMjYpLF9pPVsiY2hpbGRyZW4iXSxlcz1bIiIsbnVsbCx2b2lkIDBdLHFyPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPWFyZ3VtZW50cy5sZW5ndGgscj1uZXcgQXJyYXkoZSksdD0wO3Q8ZTt0Kyspclt0XT1hcmd1bWVudHNbdF07cmV0dXJuIHIuZmlsdGVyKGZ1bmN0aW9uKG8pe3JldHVybiBvIT09dm9pZCAwfSkubWFwKGZ1bmN0aW9uKG8pe3JldHVybiB0eXBlb2Ygbz09Im51bWJlciI/by50b1N0cmluZygpOm99KS5mbGF0KDEpfSxucz1mdW5jdGlvbihlKXt2YXIgcj0oMCxkLnVzZUNvbnRleHQpKHFpLnopLHQ9ZS5jb2x1bW5Qcm9wcyxvPWUucHJlZml4TmFtZSx1PWUudGV4dCxpPWUuY291bnRlcixjPWUucm93RGF0YSxnPWUuaW5kZXgsbT1lLnJlY29yZEtleSxTPWUuc3ViTmFtZSxaPWUucHJvRmllbGRQcm9wcyx5PWUuZWRpdGFibGVVdGlscyx4PXF0LkEudXNlRm9ybUluc3RhbmNlKCksaD1tfHxnLEk9KDAsZC51c2VNZW1vKShmdW5jdGlvbigpe3ZhciB6LEI7cmV0dXJuKHo9eT09bnVsbHx8KEI9eS5nZXRSZWFsSW5kZXgpPT09bnVsbHx8Qj09PXZvaWQgMD92b2lkIDA6Qi5jYWxsKHksYykpIT09bnVsbCYmeiE9PXZvaWQgMD96Omd9LFt5LGcsY10pLEM9KDAsZC51c2VTdGF0ZSkoZnVuY3Rpb24oKXt2YXIgeixCO3JldHVybiBxcihvLG8/UzpbXSxvP0k6aCwoej0oQj10PT1udWxsP3ZvaWQgMDp0LmtleSkhPT1udWxsJiZCIT09dm9pZCAwP0I6dD09bnVsbD92b2lkIDA6dC5kYXRhSW5kZXgpIT09bnVsbCYmeiE9PXZvaWQgMD96OmcpfSksVD0oMCxmZS5aKShDLDIpLFI9VFswXSxZPVRbMV0sRz0oMCxkLnVzZU1lbW8pKGZ1bmN0aW9uKCl7cmV0dXJuIFIuc2xpY2UoMCwtMSl9LFtSXSk7KDAsZC51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7dmFyIHosQixFPXFyKG8sbz9TOltdLG8/STpoLCh6PShCPXQ9PW51bGw/dm9pZCAwOnQua2V5KSE9PW51bGwmJkIhPT12b2lkIDA/Qjp0PT1udWxsP3ZvaWQgMDp0LmRhdGFJbmRleCkhPT1udWxsJiZ6IT09dm9pZCAwP3o6Zyk7RS5qb2luKCItIikhPT1SLmpvaW4oIi0iKSYmWShFKX0sW3Q9PW51bGw/dm9pZCAwOnQuZGF0YUluZGV4LHQ9PW51bGw/dm9pZCAwOnQua2V5LGcsbSxvLGgsUyxSLEldKTt2YXIgaz0oMCxkLnVzZU1lbW8pKGZ1bmN0aW9uKCl7cmV0dXJuW3gsKDAsbC5aKSgoMCxsLlopKHt9LHQpLHt9LHtyb3dLZXk6Ryxyb3dJbmRleDpnLGlzRWRpdGFibGU6ITB9KV19LFt0LHgsZyxHXSksaWU9KDAsZC51c2VDYWxsYmFjaykoZnVuY3Rpb24oeil7dmFyIEI9ei5jaGlsZHJlbixFPSgwLHEuWikoeixfaSk7cmV0dXJuKDAscy5qc3gpKGtpLlUsKDAsbC5aKSgoMCxsLlopKHtwb3BvdmVyUHJvcHM6e2dldFBvcHVwQ29udGFpbmVyOnIuZ2V0UG9wdXBDb250YWluZXJ8fGZ1bmN0aW9uKCl7cmV0dXJuIGkucm9vdERvbVJlZi5jdXJyZW50fHxkb2N1bWVudC5ib2R5fX0sZXJyb3JUeXBlOiJwb3BvdmVyIixuYW1lOlJ9LEUpLHt9LHtjaGlsZHJlbjpCfSksaCl9LFtoLFJdKSx3PSgwLGQudXNlQ2FsbGJhY2spKGZ1bmN0aW9uKCl7dmFyIHosQixFPSgwLGwuWikoe30sZ3Iudy5hcHBseSh2b2lkIDAsW3Q9PW51bGw/dm9pZCAwOnQuZm9ybUl0ZW1Qcm9wc10uY29uY2F0KCgwLG1uLlopKGspKSkpO0UubWVzc2FnZVZhcmlhYmxlcz0oMCxsLlopKHtsYWJlbDoodD09bnVsbD92b2lkIDA6dC50aXRsZSl8fCJcdTZCNjRcdTk4NzkiLHR5cGU6KHQ9PW51bGw/dm9pZCAwOnQudmFsdWVUeXBlKXx8Ilx1NjU4N1x1NjcyQyJ9LEU9PW51bGw/dm9pZCAwOkUubWVzc2FnZVZhcmlhYmxlcyksRS5pbml0aWFsVmFsdWU9KHo9KEI9bz9udWxsOnUpIT09bnVsbCYmQiE9PXZvaWQgMD9COkU9PW51bGw/dm9pZCAwOkUuaW5pdGlhbFZhbHVlKSE9PW51bGwmJnohPT12b2lkIDA/ejp0PT1udWxsP3ZvaWQgMDp0LmluaXRpYWxWYWx1ZTt2YXIgUD0oMCxzLmpzeCkoZXIuWiwoMCxsLlopKHtjYWNoZUZvclN3cjohMCxuYW1lOlIscHJvRm9ybUZpZWxkS2V5OmgsaWdub3JlRm9ybUl0ZW06ITAsZmllbGRQcm9wczpnci53LmFwcGx5KHZvaWQgMCxbdD09bnVsbD92b2lkIDA6dC5maWVsZFByb3BzXS5jb25jYXQoKDAsbW4uWikoaykpKX0sWiksUi5qb2luKCItIikpO3JldHVybiB0IT1udWxsJiZ0LnJlbmRlckZvcm1JdGVtJiYoUD10LnJlbmRlckZvcm1JdGVtKCgwLGwuWikoKDAsbC5aKSh7fSx0KSx7fSx7aW5kZXg6Zyxpc0VkaXRhYmxlOiEwLHR5cGU6InRhYmxlIn0pLHtkZWZhdWx0UmVuZGVyOmZ1bmN0aW9uKCl7cmV0dXJuKDAscy5qc3gpKHMuRnJhZ21lbnQse2NoaWxkcmVuOlB9KX0sdHlwZToiZm9ybSIscmVjb3JkS2V5Om0scmVjb3JkOigwLGwuWikoKDAsbC5aKSh7fSxjKSx4PT1udWxsP3ZvaWQgMDp4LmdldEZpZWxkVmFsdWUoW2hdKSksaXNFZGl0YWJsZTohMH0seCxlLmVkaXRhYmxlVXRpbHMpLHQuaWdub3JlRm9ybUl0ZW0pPygwLHMuanN4KShzLkZyYWdtZW50LHtjaGlsZHJlbjpQfSk6KDAscy5qc3gpKGllLCgwLGwuWikoKDAsbC5aKSh7fSxFKSx7fSx7Y2hpbGRyZW46UH0pLFIuam9pbigiLSIpKX0sW3QsayxvLHUsaCxSLFosaWUsZyxtLGMseCxlLmVkaXRhYmxlVXRpbHNdKTtyZXR1cm4gUi5sZW5ndGg9PT0wP251bGw6dHlwZW9mKHQ9PW51bGw/dm9pZCAwOnQucmVuZGVyRm9ybUl0ZW0pPT0iZnVuY3Rpb24ifHx0eXBlb2YodD09bnVsbD92b2lkIDA6dC5maWVsZFByb3BzKT09ImZ1bmN0aW9uInx8dHlwZW9mKHQ9PW51bGw/dm9pZCAwOnQuZm9ybUl0ZW1Qcm9wcyk9PSJmdW5jdGlvbiI/KDAscy5qc3gpKER0LlouSXRlbSx7bm9TdHlsZTohMCxzaG91bGRVcGRhdGU6ZnVuY3Rpb24oQixFKXtpZihCPT09RSlyZXR1cm4hMTt2YXIgUD1bR10uZmxhdCgxKTt0cnl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KCgwLG1yLlopKEIsUCkpIT09SlNPTi5zdHJpbmdpZnkoKDAsbXIuWikoRSxQKSl9Y2F0Y2goJCl7cmV0dXJuITB9fSxjaGlsZHJlbjpmdW5jdGlvbigpe3JldHVybiB3KCl9fSk6dygpfTtmdW5jdGlvbiBrcihuKXt2YXIgZSxyLHQ9bi50ZXh0LG89bi52YWx1ZVR5cGUsdT1uLnJvd0RhdGEsaT1uLmNvbHVtblByb3BzLGM9bi5pbmRleDtpZigoIW98fFsidGV4dGFyZWEiLCJ0ZXh0Il0uaW5jbHVkZXMoby50b1N0cmluZygpKSkmJiEoaSE9bnVsbCYmaS52YWx1ZUVudW0pJiZuLm1vZGU9PT0icmVhZCIpcmV0dXJuIGVzLmluY2x1ZGVzKHQpP24uY29sdW1uRW1wdHlUZXh0OnQ7aWYodHlwZW9mIG89PSJmdW5jdGlvbiImJnUpcmV0dXJuIGtyKCgwLGwuWikoKDAsbC5aKSh7fSxuKSx7fSx7dmFsdWVUeXBlOm8odSxuLnR5cGUpfHwidGV4dCJ9KSk7dmFyIGc9KGk9PW51bGw/dm9pZCAwOmkua2V5KXx8KGk9PW51bGx8fChlPWkuZGF0YUluZGV4KT09PW51bGx8fGU9PT12b2lkIDA/dm9pZCAwOmUudG9TdHJpbmcoKSksbT1pIT1udWxsJiZpLmRlcGVuZGVuY2llcz9bbi5wcmVmaXhOYW1lLG4ucHJlZml4TmFtZT9jPT1udWxsP3ZvaWQgMDpjLnRvU3RyaW5nKCk6KHI9bi5yZWNvcmRLZXkpPT09bnVsbHx8cj09PXZvaWQgMD92b2lkIDA6ci50b1N0cmluZygpLGk9PW51bGw/dm9pZCAwOmkuZGVwZW5kZW5jaWVzXS5maWx0ZXIoQm9vbGVhbikuZmxhdCgxKTpbXSxTPXt2YWx1ZUVudW06KDAsbXQuaCkoaT09bnVsbD92b2lkIDA6aS52YWx1ZUVudW0sdSkscmVxdWVzdDppPT1udWxsP3ZvaWQgMDppLnJlcXVlc3QsZGVwZW5kZW5jaWVzOmkhPW51bGwmJmkuZGVwZW5kZW5jaWVzP1ttXTp2b2lkIDAsb3JpZ2luRGVwZW5kZW5jaWVzOmkhPW51bGwmJmkuZGVwZW5kZW5jaWVzP1tpPT1udWxsP3ZvaWQgMDppLmRlcGVuZGVuY2llc106dm9pZCAwLHBhcmFtczooMCxtdC5oKShpPT1udWxsP3ZvaWQgMDppLnBhcmFtcyx1LGkpLHJlYWRvbmx5Omk9PW51bGw/dm9pZCAwOmkucmVhZG9ubHksdGV4dDpvPT09ImluZGV4Inx8bz09PSJpbmRleEJvcmRlciI/bi5pbmRleDp0LG1vZGU6bi5tb2RlLHJlbmRlckZvcm1JdGVtOnZvaWQgMCx2YWx1ZVR5cGU6byxyZWNvcmQ6dSxwcm9GaWVsZFByb3BzOntlbXB0eVRleHQ6bi5jb2x1bW5FbXB0eVRleHQscHJvRmllbGRLZXk6Zz8idGFibGUtZmllbGQtIi5jb25jYXQoZyk6dm9pZCAwfX07cmV0dXJuIG4ubW9kZSE9PSJlZGl0Ij8oMCxzLmpzeCkoZXIuWiwoMCxsLlopKHttb2RlOiJyZWFkIixpZ25vcmVGb3JtSXRlbTohMCxmaWVsZFByb3BzOigwLGdyLncpKGk9PW51bGw/dm9pZCAwOmkuZmllbGRQcm9wcyxudWxsLGkpfSxTKSk6KDAscy5qc3gpKG5zLCgwLGwuWikoKDAsbC5aKSh7fSxuKSx7fSx7cHJvRmllbGRQcm9wczpTfSksbi5yZWNvcmRLZXkpfXZhciB0cz1rcixycz1mdW5jdGlvbihlKXt2YXIgcix0PWUudGl0bGUsbz10eXBlb2YoZT09bnVsbD92b2lkIDA6ZS5lbGxpcHNpcyk9PSJib29sZWFuIj9lPT1udWxsP3ZvaWQgMDplLmVsbGlwc2lzOmU9PW51bGx8fChyPWUuZWxsaXBzaXMpPT09bnVsbHx8cj09PXZvaWQgMD92b2lkIDA6ci5zaG93VGl0bGU7cmV0dXJuIHQmJnR5cGVvZiB0PT0iZnVuY3Rpb24iP3QoZSwidGFibGUiLCgwLHMuanN4KShnbi5HLHtsYWJlbDpudWxsLHRvb2x0aXA6ZS50b29sdGlwfHxlLnRpcH0pKTooMCxzLmpzeCkoZ24uRyx7bGFiZWw6dCx0b29sdGlwOmUudG9vbHRpcHx8ZS50aXAsZWxsaXBzaXM6b30pfTtmdW5jdGlvbiBhcyhuLGUscix0KXtyZXR1cm4gdHlwZW9mIHQ9PSJib29sZWFuIj90PT09ITE6KHQ9PW51bGw/dm9pZCAwOnQobixlLHIpKT09PSExfXZhciBscz1mdW5jdGlvbihlLHIsdCl7dmFyIG89QXJyYXkuaXNBcnJheSh0KT8oMCxtci5aKShyLHQpOnJbdF0sdT1TdHJpbmcobyk7cmV0dXJuIFN0cmluZyh1KT09PVN0cmluZyhlKX07ZnVuY3Rpb24gb3Mobil7dmFyIGU9bi5jb2x1bW5Qcm9wcyxyPW4udGV4dCx0PW4ucm93RGF0YSxvPW4uaW5kZXgsdT1uLmNvbHVtbkVtcHR5VGV4dCxpPW4uY291bnRlcixjPW4udHlwZSxnPW4uc3ViTmFtZSxtPW4ubWFyZ2luU00sUz1uLmVkaXRhYmxlVXRpbHMsWj1pLmFjdGlvbix5PWkucHJlZml4TmFtZSx4PVMuaXNFZGl0YWJsZSgoMCxsLlopKCgwLGwuWikoe30sdCkse30se2luZGV4Om99KSksaD14LmlzRWRpdGFibGUsST14LnJlY29yZEtleSxDPWUucmVuZGVyVGV4dCxUPUM9PT12b2lkIDA/ZnVuY3Rpb24oeil7cmV0dXJuIHp9OkMsUj1UKHIsdCxvLFopLFk9aCYmIWFzKHIsdCxvLGU9PW51bGw/dm9pZCAwOmUuZWRpdGFibGUpPyJlZGl0IjoicmVhZCIsRz10cyh7dGV4dDpSLHZhbHVlVHlwZTplLnZhbHVlVHlwZXx8InRleHQiLGluZGV4Om8scm93RGF0YTp0LHN1Yk5hbWU6Zyxjb2x1bW5Qcm9wczooMCxsLlopKCgwLGwuWikoe30sZSkse30se2VudHJ5OnQsZW50aXR5OnR9KSxjb3VudGVyOmksY29sdW1uRW1wdHlUZXh0OnUsdHlwZTpjLHJlY29yZEtleTpJLG1vZGU6WSxwcmVmaXhOYW1lOnksZWRpdGFibGVVdGlsczpTfSksaz1ZPT09ImVkaXQiP0c6KDAsWWkuWCkoRyxlLFIpO2lmKFk9PT0iZWRpdCIpcmV0dXJuIGUudmFsdWVUeXBlPT09Im9wdGlvbiI/KDAscy5qc3gpKCJkaXYiLHtzdHlsZTp7ZGlzcGxheToiZmxleCIsYWxpZ25JdGVtczoiY2VudGVyIixnYXA6bSxqdXN0aWZ5Q29udGVudDplLmFsaWduPT09ImNlbnRlciI/ImNlbnRlciI6ImZsZXgtc3RhcnQifSxjaGlsZHJlbjpTLmFjdGlvblJlbmRlcigoMCxsLlopKCgwLGwuWikoe30sdCkse30se2luZGV4OmUuaW5kZXh8fG99KSl9KTprO2lmKCFlLnJlbmRlcil7dmFyIGllPWQuaXNWYWxpZEVsZW1lbnQoayl8fFsic3RyaW5nIiwibnVtYmVyIl0uaW5jbHVkZXMoKDAsWm4uWikoaykpO3JldHVybiEoMCxRaS5rKShrKSYmaWU/azpudWxsfXZhciB3PWUucmVuZGVyKGssdCxvLCgwLGwuWikoKDAsbC5aKSh7fSxaKSxTKSwoMCxsLlopKCgwLGwuWikoe30sZSkse30se2lzRWRpdGFibGU6aCx0eXBlOiJ0YWJsZSJ9KSk7cmV0dXJuIGJsKHcpP3c6dyYmZS52YWx1ZVR5cGU9PT0ib3B0aW9uIiYmQXJyYXkuaXNBcnJheSh3KT8oMCxzLmpzeCkoImRpdiIse3N0eWxlOntkaXNwbGF5OiJmbGV4IixhbGlnbkl0ZW1zOiJjZW50ZXIiLGp1c3RpZnlDb250ZW50OiJmbGV4LXN0YXJ0IixnYXA6OH0sY2hpbGRyZW46d30pOnd9ZnVuY3Rpb24gX3IobixlKXt2YXIgcix0PW4uY29sdW1ucyxvPW4uY291bnRlcix1PW4uY29sdW1uRW1wdHlUZXh0LGk9bi50eXBlLGM9bi5lZGl0YWJsZVV0aWxzLGc9bi5tYXJnaW5TTSxtPW4ucm93S2V5LFM9bT09PXZvaWQgMD8iaWQiOm0sWj1uLmNoaWxkcmVuQ29sdW1uTmFtZSx5PVo9PT12b2lkIDA/ImNoaWxkcmVuIjpaLHg9bmV3IE1hcDtyZXR1cm4gdD09bnVsbHx8KHI9dC5tYXAoZnVuY3Rpb24oaCxJKXtpZihoPT09bWUuWi5FWFBBTkRfQ09MVU1OfHxoPT09bWUuWi5TRUxFQ1RJT05fQ09MVU1OKXJldHVybiBoO3ZhciBDPWgsVD1DLmtleSxSPUMuZGF0YUluZGV4LFk9Qy52YWx1ZUVudW0sRz1DLnZhbHVlVHlwZSxrPUc9PT12b2lkIDA/InRleHQiOkcsaWU9Qy5jaGlsZHJlbix3PUMub25GaWx0ZXIsej1DLmZpbHRlcnMsQj16PT09dm9pZCAwP1tdOnosRT1OdChUfHwoUj09bnVsbD92b2lkIDA6Ui50b1N0cmluZygpKSxbZT09bnVsbD92b2lkIDA6ZS5rZXksSV0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oIi0iKSksUD0hWSYmIWsmJiFpZTtpZihQKXJldHVybigwLGwuWikoe2luZGV4Okl9LGgpO3ZhciAkPW8uY29sdW1uc01hcFtFXXx8e2ZpeGVkOmguZml4ZWR9LEo9ZnVuY3Rpb24oKXtyZXR1cm4gdz09PSEwP2Z1bmN0aW9uKEssWCl7cmV0dXJuIGxzKEssWCxSKX06THIodyl9LEY9UyxiPSgwLGwuWikoKDAsbC5aKSh7aW5kZXg6SSxrZXk6RX0saCkse30se3RpdGxlOnJzKGgpLHZhbHVlRW51bTpZLGZpbHRlcnM6Qj09PSEwPygwLEdpLk5BKSgoMCxtdC5oKShZLHZvaWQgMCkpLmZpbHRlcihmdW5jdGlvbihOKXtyZXR1cm4gTiYmTi52YWx1ZSE9PSJhbGwifSk6QixvbkZpbHRlcjpKKCksZml4ZWQ6JC5maXhlZCx3aWR0aDpoLndpZHRofHwoaC5maXhlZD8yMDA6dm9pZCAwKSxjaGlsZHJlbjpoLmNoaWxkcmVuP19yKCgwLGwuWikoKDAsbC5aKSh7fSxuKSx7fSx7Y29sdW1uczooaD09bnVsbD92b2lkIDA6aC5jaGlsZHJlbil8fFtdfSksKDAsbC5aKSgoMCxsLlopKHt9LGgpLHt9LHtrZXk6RX0pKTp2b2lkIDAscmVuZGVyOmZ1bmN0aW9uKEssWCxfKXt0eXBlb2YgUz09ImZ1bmN0aW9uIiYmKEY9UyhYLF8pKTt2YXIgTztpZigoMCxabi5aKShYKT09PSJvYmplY3QiJiZYIT09bnVsbCYmUmVmbGVjdC5oYXMoWCxGKSl7dmFyIFc7Tz1YW0ZdO3ZhciBuZT14LmdldChPKXx8W107KFc9WFt5XSk9PT1udWxsfHxXPT09dm9pZCAwfHxXLmZvckVhY2goZnVuY3Rpb24oY2Upe3ZhciBVPWNlW0ZdO3guaGFzKFUpfHx4LnNldChVLG5lLmNvbmNhdChbXyx5XSkpfSl9dmFyIGRlPXtjb2x1bW5Qcm9wczpoLHRleHQ6Syxyb3dEYXRhOlgsaW5kZXg6Xyxjb2x1bW5FbXB0eVRleHQ6dSxjb3VudGVyOm8sdHlwZTppLG1hcmdpblNNOmcsc3ViTmFtZTp4LmdldChPKSxlZGl0YWJsZVV0aWxzOmN9O3JldHVybiBvcyhkZSl9fSk7cmV0dXJuIEppKGIpfSkpPT09bnVsbHx8cj09PXZvaWQgMD92b2lkIDA6ci5maWx0ZXIoZnVuY3Rpb24oaCl7cmV0dXJuIWguaGlkZUluVGFibGV9KX12YXIgaXM9WyJyb3dLZXkiLCJ0YWJsZUNsYXNzTmFtZSIsImRlZmF1bHRDbGFzc05hbWUiLCJhY3Rpb24iLCJ0YWJsZUNvbHVtbiIsInR5cGUiLCJwYWdpbmF0aW9uIiwicm93U2VsZWN0aW9uIiwic2l6ZSIsImRlZmF1bHRTaXplIiwidGFibGVTdHlsZSIsInRvb2xiYXJEb20iLCJoaWRlVG9vbGJhciIsInNlYXJjaE5vZGUiLCJzdHlsZSIsImNhcmRQcm9wcyIsImFsZXJ0RG9tIiwibmFtZSIsIm9uU29ydENoYW5nZSIsIm9uRmlsdGVyQ2hhbmdlIiwib3B0aW9ucyIsImlzTGlnaHRGaWx0ZXIiLCJjbGFzc05hbWUiLCJjYXJkQm9yZGVyZWQiLCJlZGl0YWJsZVV0aWxzIiwiZ2V0Um93S2V5Il0sc3M9WyJjYXJkQm9yZGVyZWQiLCJyZXF1ZXN0IiwiY2xhc3NOYW1lIiwicGFyYW1zIiwiZGVmYXVsdERhdGEiLCJoZWFkZXJUaXRsZSIsInBvc3REYXRhIiwiZ2hvc3QiLCJwYWdpbmF0aW9uIiwiYWN0aW9uUmVmIiwiY29sdW1ucyIsInRvb2xCYXJSZW5kZXIiLCJvcHRpb25zUmVuZGVyIiwib25Mb2FkIiwib25SZXF1ZXN0RXJyb3IiLCJzdHlsZSIsImNhcmRQcm9wcyIsInRhYmxlU3R5bGUiLCJ0YWJsZUNsYXNzTmFtZSIsImNvbHVtbnNTdGF0ZU1hcCIsIm9uQ29sdW1uc1N0YXRlQ2hhbmdlIiwib3B0aW9ucyIsInNlYXJjaCIsIm5hbWUiLCJvbkxvYWRpbmdDaGFuZ2UiLCJyb3dTZWxlY3Rpb24iLCJiZWZvcmVTZWFyY2hTdWJtaXQiLCJ0YWJsZUFsZXJ0UmVuZGVyIiwiZGVmYXVsdENsYXNzTmFtZSIsImZvcm1SZWYiLCJ0eXBlIiwiY29sdW1uRW1wdHlUZXh0IiwidG9vbGJhciIsInJvd0tleSIsIm1hbnVhbFJlcXVlc3QiLCJwb2xsaW5nIiwidG9vbHRpcCIsInJldmFsaWRhdGVPbkZvY3VzIiwic2VhcmNoRm9ybVJlbmRlciJdO2Z1bmN0aW9uIGNzKG4pe3ZhciBlPW4ucm93S2V5LHI9bi50YWJsZUNsYXNzTmFtZSx0PW4uZGVmYXVsdENsYXNzTmFtZSxvPW4uYWN0aW9uLHU9bi50YWJsZUNvbHVtbixpPW4udHlwZSxjPW4ucGFnaW5hdGlvbixnPW4ucm93U2VsZWN0aW9uLG09bi5zaXplLFM9bi5kZWZhdWx0U2l6ZSxaPW4udGFibGVTdHlsZSx5PW4udG9vbGJhckRvbSx4PW4uaGlkZVRvb2xiYXIsaD1uLnNlYXJjaE5vZGUsST1uLnN0eWxlLEM9bi5jYXJkUHJvcHMsVD1uLmFsZXJ0RG9tLFI9bi5uYW1lLFk9bi5vblNvcnRDaGFuZ2UsRz1uLm9uRmlsdGVyQ2hhbmdlLGs9bi5vcHRpb25zLGllPW4uaXNMaWdodEZpbHRlcix3PW4uY2xhc3NOYW1lLHo9bi5jYXJkQm9yZGVyZWQsQj1uLmVkaXRhYmxlVXRpbHMsRT1uLmdldFJvd0tleSxQPSgwLHEuWikobixpcyksJD0oMCxkLnVzZUNvbnRleHQpKFR0KSxKPSgwLGQudXNlTWVtbykoZnVuY3Rpb24oKXt2YXIgVT1mdW5jdGlvbiBhZShWKXtyZXR1cm4gVi5tYXAoZnVuY3Rpb24ocmUpe3ZhciBTZT1OdChyZS5rZXkscmUuaW5kZXgpLEZlPSQuY29sdW1uc01hcFtTZV07cmV0dXJuIEZlJiZGZS5zaG93PT09ITE/ITE6cmUuY2hpbGRyZW4/KDAsbC5aKSgoMCxsLlopKHt9LHJlKSx7fSx7Y2hpbGRyZW46YWUocmUuY2hpbGRyZW4pfSk6cmV9KS5maWx0ZXIoQm9vbGVhbil9O3JldHVybiBVKHUpfSxbJC5jb2x1bW5zTWFwLHVdKSxGPSgwLGQudXNlTWVtbykoZnVuY3Rpb24oKXt2YXIgVT1bXSxhZT1mdW5jdGlvbiBWKHJlKXtmb3IodmFyIFNlPTA7U2U8cmUubGVuZ3RoO1NlKyspe3ZhciBGZT1yZVtTZV07RmUuY2hpbGRyZW4/VihGZS5jaGlsZHJlbik6VS5wdXNoKEZlKX19O3JldHVybiBhZShKKSxVPT1udWxsP3ZvaWQgMDpVLmV2ZXJ5KGZ1bmN0aW9uKFYpe3JldHVybiEhVi5maWx0ZXJzJiYhIVYub25GaWx0ZXJ8fFYuZmlsdGVycz09PXZvaWQgMCYmVi5vbkZpbHRlcj09PXZvaWQgMH0pfSxbSl0pLGI9ZnVuY3Rpb24oYWUpe3ZhciBWPUIubmV3TGluZVJlY29yZHx8e30scmU9Vi5vcHRpb25zLFNlPVYuZGVmYXVsdFZhbHVlLEZlPShyZT09bnVsbD92b2lkIDA6cmUucG9zaXRpb24pPT09InRvcCI7aWYocmUhPW51bGwmJnJlLnBhcmVudEtleSl7dmFyIERlLHRuLGNuPXtkYXRhOmFlLGdldFJvd0tleTpFLHJvdzooMCxsLlopKCgwLGwuWikoe30sU2UpLHt9LHttYXBfcm93X3BhcmVudEtleTooRGU9KDAsam4uc04pKHJlLnBhcmVudEtleSkpPT09bnVsbHx8RGU9PT12b2lkIDA/dm9pZCAwOkRlLnRvU3RyaW5nKCl9KSxrZXk6cmU9PW51bGw/dm9pZCAwOnJlLnJlY29yZEtleSxjaGlsZHJlbkNvbHVtbk5hbWU6KCh0bj1uLmV4cGFuZGFibGUpPT09bnVsbHx8dG49PT12b2lkIDA/dm9pZCAwOnRuLmNoaWxkcmVuQ29sdW1uTmFtZSl8fCJjaGlsZHJlbiJ9O3JldHVybigwLGpuLmN4KShjbixGZT8idG9wIjoidXBkYXRlIil9aWYoRmUpcmV0dXJuW1NlXS5jb25jYXQoKDAsbW4uWikoby5kYXRhU291cmNlKSk7aWYoYyYmYyE9PW51bGwmJmMhPT12b2lkIDAmJmMuY3VycmVudCYmYyE9PW51bGwmJmMhPT12b2lkIDAmJmMucGFnZVNpemUpe3ZhciBDZT0oMCxtbi5aKShvLmRhdGFTb3VyY2UpO3JldHVybihjPT1udWxsP3ZvaWQgMDpjLnBhZ2VTaXplKT5DZS5sZW5ndGg/KENlLnB1c2goU2UpLENlKTooQ2Uuc3BsaWNlKChjPT1udWxsP3ZvaWQgMDpjLmN1cnJlbnQpKihjPT1udWxsP3ZvaWQgMDpjLnBhZ2VTaXplKS0xLDAsU2UpLENlKX1yZXR1cm5bXS5jb25jYXQoKDAsbW4uWikoby5kYXRhU291cmNlKSxbU2VdKX0sTj1mdW5jdGlvbigpe3JldHVybigwLGwuWikoKDAsbC5aKSh7fSxQKSx7fSx7c2l6ZTptLHJvd1NlbGVjdGlvbjpnPT09ITE/dm9pZCAwOmcsY2xhc3NOYW1lOnIsc3R5bGU6Wixjb2x1bW5zOkosbG9hZGluZzpvLmxvYWRpbmcsZGF0YVNvdXJjZTpCLm5ld0xpbmVSZWNvcmQ/YihvLmRhdGFTb3VyY2UpOm8uZGF0YVNvdXJjZSxwYWdpbmF0aW9uOmMsb25DaGFuZ2U6ZnVuY3Rpb24oVixyZSxTZSxGZSl7dmFyIERlO2lmKChEZT1QLm9uQ2hhbmdlKT09PW51bGx8fERlPT09dm9pZCAwfHxEZS5jYWxsKFAsVixyZSxTZSxGZSksRnx8RygoMCxhLlkpKHJlKSksQXJyYXkuaXNBcnJheShTZSkpe3ZhciB0bj1TZS5yZWR1Y2UoZnVuY3Rpb24oT24sYmUpe3JldHVybigwLGwuWikoKDAsbC5aKSh7fSxPbikse30sKDAscC5aKSh7fSwiIi5jb25jYXQoYmUuZmllbGQpLGJlLm9yZGVyKSl9LHt9KTtZKCgwLGEuWSkodG4pKX1lbHNle3ZhciBjbixDZT0oY249U2UuY29sdW1uKT09PW51bGx8fGNuPT09dm9pZCAwP3ZvaWQgMDpjbi5zb3J0ZXIsQ249KENlPT1udWxsP3ZvaWQgMDpDZS50b1N0cmluZygpKT09PUNlO1koKDAsYS5ZKSgoMCxwLlopKHt9LCIiLmNvbmNhdChDbj9DZTpTZS5maWVsZCksU2Uub3JkZXIpKSl9fX0pfSxLPSgwLGQudXNlTWVtbykoZnVuY3Rpb24oKXtyZXR1cm4gbi5zZWFyY2g9PT0hMSYmIW4uaGVhZGVyVGl0bGUmJm4udG9vbEJhclJlbmRlcj09PSExfSxbXSksWD0oMCxzLmpzeCkoSG4uX3AuUHJvdmlkZXIse3ZhbHVlOntncmlkOiExLGNvbFByb3BzOnZvaWQgMCxyb3dQcm9wczp2b2lkIDB9LGNoaWxkcmVuOigwLHMuanN4KShtZS5aLCgwLGwuWikoKDAsbC5aKSh7fSxOKCkpLHt9LHtyb3dLZXk6ZX0pKX0pLF89bi50YWJsZVZpZXdSZW5kZXI/bi50YWJsZVZpZXdSZW5kZXIoKDAsbC5aKSgoMCxsLlopKHt9LE4oKSkse30se3Jvd1NlbGVjdGlvbjpnIT09ITE/Zzp2b2lkIDB9KSxYKTpYLE89KDAsZC51c2VNZW1vKShmdW5jdGlvbigpe2lmKG4uZWRpdGFibGUmJiFuLm5hbWUpe3ZhciBVLGFlLFY7cmV0dXJuKDAscy5qc3hzKShzLkZyYWdtZW50LHtjaGlsZHJlbjpbeSxULCgwLGQuY3JlYXRlRWxlbWVudCkob24uWlAsKDAsbC5aKSgoMCxsLlopKHt9LChVPW4uZWRpdGFibGUpPT09bnVsbHx8VT09PXZvaWQgMD92b2lkIDA6VS5mb3JtUHJvcHMpLHt9LHtmb3JtUmVmOihhZT1uLmVkaXRhYmxlKT09PW51bGx8fGFlPT09dm9pZCAwfHwoYWU9YWUuZm9ybVByb3BzKT09PW51bGx8fGFlPT09dm9pZCAwP3ZvaWQgMDphZS5mb3JtUmVmLGNvbXBvbmVudDohMSxmb3JtOihWPW4uZWRpdGFibGUpPT09bnVsbHx8Vj09PXZvaWQgMD92b2lkIDA6Vi5mb3JtLG9uVmFsdWVzQ2hhbmdlOkIub25WYWx1ZXNDaGFuZ2Usa2V5OiJ0YWJsZSIsc3VibWl0dGVyOiExLG9taXROaWw6ITEsZGF0ZUZvcm1hdHRlcjpuLmRhdGVGb3JtYXR0ZXJ9KSxfKV19KX1yZXR1cm4oMCxzLmpzeHMpKHMuRnJhZ21lbnQse2NoaWxkcmVuOlt5LFQsX119KX0sW1Qsbi5sb2FkaW5nLCEhbi5lZGl0YWJsZSxfLHldKSxXPSgwLGQudXNlTWVtbykoZnVuY3Rpb24oKXtyZXR1cm4gQz09PSExfHxLPT09ITB8fG4ubmFtZT97fTp4P3twYWRkaW5nOjB9Onk/e3BhZGRpbmdCbG9ja1N0YXJ0OjB9OnkmJmM9PT0hMT97cGFkZGluZ0Jsb2NrU3RhcnQ6MH06e3BhZGRpbmc6MH19LFtLLGMsbi5uYW1lLEMseSx4XSksbmU9Qz09PSExfHxLPT09ITB8fG4ubmFtZT9POigwLHMuanN4KShIZSwoMCxsLlopKCgwLGwuWikoe2dob3N0Om4uZ2hvc3QsYm9yZGVyZWQ6RXIoInRhYmxlIix6KSxib2R5U3R5bGU6V30sQykse30se2NoaWxkcmVuOk99KSksZGU9ZnVuY3Rpb24oKXtyZXR1cm4gbi50YWJsZVJlbmRlcj9uLnRhYmxlUmVuZGVyKG4sbmUse3Rvb2xiYXI6eXx8dm9pZCAwLGFsZXJ0OlR8fHZvaWQgMCx0YWJsZTpffHx2b2lkIDB9KTpuZX0sY2U9KDAscy5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOlplKCkodywoMCxwLlopKHt9LCIiLmNvbmNhdCh0LCItcG9sbGluZyIpLG8ucG9sbGluZ0xvYWRpbmcpKSxzdHlsZTpJLHJlZjokLnJvb3REb21SZWYsY2hpbGRyZW46W2llP251bGw6aCxpIT09ImZvcm0iJiZuLnRhYmxlRXh0cmFSZW5kZXImJigwLHMuanN4KSgiZGl2Iix7Y2xhc3NOYW1lOlplKCkodywiIi5jb25jYXQodCwiLWV4dHJhIikpLGNoaWxkcmVuOm4udGFibGVFeHRyYVJlbmRlcihuLG8uZGF0YVNvdXJjZXx8W10pfSksaSE9PSJmb3JtIiYmZGUoKV19KTtyZXR1cm4ha3x8IShrIT1udWxsJiZrLmZ1bGxTY3JlZW4pP2NlOigwLHMuanN4KShkbi5aUCx7Z2V0UG9wdXBDb250YWluZXI6ZnVuY3Rpb24oKXtyZXR1cm4gJC5yb290RG9tUmVmLmN1cnJlbnR8fGRvY3VtZW50LmJvZHl9LGNoaWxkcmVuOmNlfSl9dmFyIHVzPXt9LGRzPWZ1bmN0aW9uKGUpe3ZhciByLHQ9ZS5jYXJkQm9yZGVyZWQsbz1lLnJlcXVlc3QsdT1lLmNsYXNzTmFtZSxpPWUucGFyYW1zLGM9aT09PXZvaWQgMD91czppLGc9ZS5kZWZhdWx0RGF0YSxtPWUuaGVhZGVyVGl0bGUsUz1lLnBvc3REYXRhLFo9ZS5naG9zdCx5PWUucGFnaW5hdGlvbix4PWUuYWN0aW9uUmVmLGg9ZS5jb2x1bW5zLEk9aD09PXZvaWQgMD9bXTpoLEM9ZS50b29sQmFyUmVuZGVyLFQ9ZS5vcHRpb25zUmVuZGVyLFI9ZS5vbkxvYWQsWT1lLm9uUmVxdWVzdEVycm9yLEc9ZS5zdHlsZSxrPWUuY2FyZFByb3BzLGllPWUudGFibGVTdHlsZSx3PWUudGFibGVDbGFzc05hbWUsej1lLmNvbHVtbnNTdGF0ZU1hcCxCPWUub25Db2x1bW5zU3RhdGVDaGFuZ2UsRT1lLm9wdGlvbnMsUD1lLnNlYXJjaCwkPWUubmFtZSxKPWUub25Mb2FkaW5nQ2hhbmdlLEY9ZS5yb3dTZWxlY3Rpb24sYj1GPT09dm9pZCAwPyExOkYsTj1lLmJlZm9yZVNlYXJjaFN1Ym1pdCxLPWUudGFibGVBbGVydFJlbmRlcixYPWUuZGVmYXVsdENsYXNzTmFtZSxfPWUuZm9ybVJlZixPPWUudHlwZSxXPU89PT12b2lkIDA/InRhYmxlIjpPLG5lPWUuY29sdW1uRW1wdHlUZXh0LGRlPW5lPT09dm9pZCAwPyItIjpuZSxjZT1lLnRvb2xiYXIsVT1lLnJvd0tleSxhZT1lLm1hbnVhbFJlcXVlc3QsVj1lLnBvbGxpbmcscmU9ZS50b29sdGlwLFNlPWUucmV2YWxpZGF0ZU9uRm9jdXMsRmU9U2U9PT12b2lkIDA/ITE6U2UsRGU9ZS5zZWFyY2hGb3JtUmVuZGVyLHRuPSgwLHEuWikoZSxzcyksY249S2koZS5kZWZhdWx0Q2xhc3NOYW1lKSxDZT1jbi53cmFwU1NSLENuPWNuLmhhc2hJZCxPbj1aZSgpKFgsdSxDbiksYmU9KDAsZC51c2VSZWYpKCksQT0oMCxkLnVzZVJlZikoKSxIPV98fEE7KDAsZC51c2VJbXBlcmF0aXZlSGFuZGxlKSh4LGZ1bmN0aW9uKCl7cmV0dXJuIGJlLmN1cnJlbnR9KTt2YXIgaGU9KDAscWUuWikoYj8oYj09bnVsbD92b2lkIDA6Yi5kZWZhdWx0U2VsZWN0ZWRSb3dLZXlzKXx8W106dm9pZCAwLHt2YWx1ZTpiP2Iuc2VsZWN0ZWRSb3dLZXlzOnZvaWQgMH0pLHRlPSgwLGZlLlopKGhlLDIpLFhlPXRlWzBdLExlPXRlWzFdLGZuPSgwLHFlLlopKGZ1bmN0aW9uKCl7aWYoIShhZXx8UCE9PSExKSlyZXR1cm57fX0pLFduPSgwLGZlLlopKGZuLDIpLGd0PVduWzBdLGl0PVduWzFdLFV0PSgwLHFlLlopKHt9KSxBdD0oMCxmZS5aKShVdCwyKSx3dD1BdFswXSxYdD1BdFsxXSxwcj0oMCxxZS5aKSh7fSksbnI9KDAsZmUuWikocHIsMiksTHQ9bnJbMF0sS3Q9bnJbMV07KDAsZC51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7dmFyIGxlPVpsKEkpLHZlPWxlLnNvcnQsSmU9bGUuZmlsdGVyO1h0KEplKSxLdCh2ZSl9LFtdKTt2YXIgJHQ9KDAsd2UuWUIpKCksUW49KDAsWm4uWikoeSk9PT0ib2JqZWN0Ij95OntkZWZhdWx0Q3VycmVudDoxLGRlZmF1bHRQYWdlU2l6ZToyMCxwYWdlU2l6ZToyMCxjdXJyZW50OjF9LEJlPSgwLGQudXNlQ29udGV4dCkoVHQpLERuPSgwLGQudXNlTWVtbykoZnVuY3Rpb24oKXtpZihvKXJldHVybiBmdW5jdGlvbigpe3ZhciBsZT0oMCxzZS5aKSgoMCxMLlopKCkubWFyayhmdW5jdGlvbiB2ZShKZSl7dmFyIFJuLGN0O3JldHVybigwLEwuWikoKS53cmFwKGZ1bmN0aW9uKGR0KXtmb3IoOzspc3dpdGNoKGR0LnByZXY9ZHQubmV4dCl7Y2FzZSAwOnJldHVybiBSbj0oMCxsLlopKCgwLGwuWikoKDAsbC5aKSh7fSxKZXx8e30pLGd0KSxjKSxkZWxldGUgUm4uX3RpbWVzdGFtcCxkdC5uZXh0PTQsbyhSbixMdCx3dCk7Y2FzZSA0OnJldHVybiBjdD1kdC5zZW50LGR0LmFicnVwdCgicmV0dXJuIixjdCk7Y2FzZSA2OmNhc2UiZW5kIjpyZXR1cm4gZHQuc3RvcCgpfX0sdmUpfSkpO3JldHVybiBmdW5jdGlvbih2ZSl7cmV0dXJuIGxlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCl9LFtndCxjLHd0LEx0LG9dKSxHZT1VaShEbixnLHtwYWdlSW5mbzp5PT09ITE/ITE6UW4sbG9hZGluZzplLmxvYWRpbmcsZGF0YVNvdXJjZTplLmRhdGFTb3VyY2Usb25EYXRhU291cmNlQ2hhbmdlOmUub25EYXRhU291cmNlQ2hhbmdlLG9uTG9hZDpSLG9uTG9hZGluZ0NoYW5nZTpKLG9uUmVxdWVzdEVycm9yOlkscG9zdERhdGE6UyxyZXZhbGlkYXRlT25Gb2N1czpGZSxtYW51YWw6Z3Q9PT12b2lkIDAscG9sbGluZzpWLGVmZmVjdHM6WygwLGYuWlApKGMpLCgwLGYuWlApKGd0KSwoMCxmLlpQKSh3dCksKDAsZi5aUCkoTHQpXSxkZWJvdW5jZVRpbWU6ZS5kZWJvdW5jZVRpbWUsb25QYWdlSW5mb0NoYW5nZTpmdW5jdGlvbih2ZSl7dmFyIEplLFJuOyF5fHwhRG58fCh5PT1udWxsfHwoSmU9eS5vbkNoYW5nZSk9PT1udWxsfHxKZT09PXZvaWQgMHx8SmUuY2FsbCh5LHZlLmN1cnJlbnQsdmUucGFnZVNpemUpLHk9PW51bGx8fChSbj15Lm9uU2hvd1NpemVDaGFuZ2UpPT09bnVsbHx8Um49PT12b2lkIDB8fFJuLmNhbGwoeSx2ZS5jdXJyZW50LHZlLnBhZ2VTaXplKSl9fSk7KDAsZC51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7dmFyIGxlO2lmKCEoZS5tYW51YWxSZXF1ZXN0fHwhZS5yZXF1ZXN0fHwhRmV8fChsZT1lLmZvcm0pIT09bnVsbCYmbGUhPT12b2lkIDAmJmxlLmlnbm9yZVJ1bGVzKSl7dmFyIHZlPWZ1bmN0aW9uKCl7ZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlPT09InZpc2libGUiJiZHZS5yZWxvYWQoKX07cmV0dXJuIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLHZlKSxmdW5jdGlvbigpe3JldHVybiBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIix2ZSl9fX0sW10pO3ZhciB0dD1kLnVzZVJlZihuZXcgTWFwKSxydD1kLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4gdHlwZW9mIFU9PSJmdW5jdGlvbiI/VTpmdW5jdGlvbihsZSx2ZSl7dmFyIEplO3JldHVybiB2ZT09PS0xP2xlPT1udWxsP3ZvaWQgMDpsZVtVXTplLm5hbWU/dmU9PW51bGw/dm9pZCAwOnZlLnRvU3RyaW5nKCk6KEplPWxlPT1udWxsP3ZvaWQgMDpsZVtVXSkhPT1udWxsJiZKZSE9PXZvaWQgMD9KZTp2ZT09bnVsbD92b2lkIDA6dmUudG9TdHJpbmcoKX19LFtlLm5hbWUsVV0pOygwLGQudXNlTWVtbykoZnVuY3Rpb24oKXt2YXIgbGU7aWYoKGxlPUdlLmRhdGFTb3VyY2UpIT09bnVsbCYmbGUhPT12b2lkIDAmJmxlLmxlbmd0aCl7dmFyIHZlPUdlLmRhdGFTb3VyY2UubWFwKGZ1bmN0aW9uKEplKXt2YXIgUm49cnQoSmUsLTEpO3JldHVybiB0dC5jdXJyZW50LnNldChSbixKZSksUm59KTtyZXR1cm4gdmV9cmV0dXJuW119LFtHZS5kYXRhU291cmNlLHJ0XSk7dmFyIEN0PSgwLGQudXNlTWVtbykoZnVuY3Rpb24oKXt2YXIgbGU9eT09PSExPyExOigwLGwuWikoe30seSksdmU9KDAsbC5aKSgoMCxsLlopKHt9LEdlLnBhZ2VJbmZvKSx7fSx7c2V0UGFnZUluZm86ZnVuY3Rpb24oUm4pe3ZhciBjdD1Sbi5wYWdlU2l6ZSx4dD1Sbi5jdXJyZW50LGR0PUdlLnBhZ2VJbmZvO2lmKGN0PT09ZHQucGFnZVNpemV8fGR0LmN1cnJlbnQ9PT0xKXtHZS5zZXRQYWdlSW5mbyh7cGFnZVNpemU6Y3QsY3VycmVudDp4dH0pO3JldHVybn1vJiZHZS5zZXREYXRhU291cmNlKFtdKSxHZS5zZXRQYWdlSW5mbyh7cGFnZVNpemU6Y3QsY3VycmVudDpXPT09Imxpc3QiP3h0OjF9KX19KTtyZXR1cm4gbyYmbGUmJihkZWxldGUgbGUub25DaGFuZ2UsZGVsZXRlIGxlLm9uU2hvd1NpemVDaGFuZ2UpLGhsKGxlLHZlLCR0KX0sW3ksR2UsJHRdKTsoMCxqLktXKShmdW5jdGlvbigpe3ZhciBsZTtlLnJlcXVlc3QmJiFzYShjKSYmR2UuZGF0YVNvdXJjZSYmIXBsKEdlLmRhdGFTb3VyY2UsZykmJihHZT09bnVsbHx8KGxlPUdlLnBhZ2VJbmZvKT09PW51bGx8fGxlPT09dm9pZCAwP3ZvaWQgMDpsZS5jdXJyZW50KSE9PTEmJkdlLnNldFBhZ2VJbmZvKHtjdXJyZW50OjF9KX0sW2NdKSxCZS5zZXRQcmVmaXhOYW1lKGUubmFtZSk7dmFyIFp0PSgwLGQudXNlQ2FsbGJhY2spKGZ1bmN0aW9uKCl7YiYmYi5vbkNoYW5nZSYmYi5vbkNoYW5nZShbXSxbXSx7dHlwZToibm9uZSJ9KSxMZShbXSl9LFtiLExlXSk7QmUucHJvcHNSZWYuY3VycmVudD1lO3ZhciBNdD0oMCxqbi5DQikoKDAsbC5aKSgoMCxsLlopKHt9LGUuZWRpdGFibGUpLHt9LHt0YWJsZU5hbWU6ZS5uYW1lLGdldFJvd0tleTpydCxjaGlsZHJlbkNvbHVtbk5hbWU6KChyPWUuZXhwYW5kYWJsZSk9PT1udWxsfHxyPT09dm9pZCAwP3ZvaWQgMDpyLmNoaWxkcmVuQ29sdW1uTmFtZSl8fCJjaGlsZHJlbiIsZGF0YVNvdXJjZTpHZS5kYXRhU291cmNlfHxbXSxzZXREYXRhU291cmNlOmZ1bmN0aW9uKHZlKXt2YXIgSmUsUm47KEplPWUuZWRpdGFibGUpPT09bnVsbHx8SmU9PT12b2lkIDB8fChSbj1KZS5vblZhbHVlc0NoYW5nZSk9PT1udWxsfHxSbj09PXZvaWQgMHx8Um4uY2FsbChKZSx2b2lkIDAsdmUpLEdlLnNldERhdGFTb3VyY2UodmUpfX0pKSxmcz11bi5Pdz09PW51bGx8fHVuLk93PT09dm9pZCAwP3ZvaWQgMDp1bi5Pdy51c2VUb2tlbigpLG1zPWZzLnRva2VuO3lsKGJlLEdlLHtmdWxsU2NyZWVuOmZ1bmN0aW9uKCl7dmFyIHZlO2lmKCEoISgodmU9QmUucm9vdERvbVJlZikhPT1udWxsJiZ2ZSE9PXZvaWQgMCYmdmUuY3VycmVudCl8fCFkb2N1bWVudC5mdWxsc2NyZWVuRW5hYmxlZCkpaWYoZG9jdW1lbnQuZnVsbHNjcmVlbkVsZW1lbnQpZG9jdW1lbnQuZXhpdEZ1bGxzY3JlZW4oKTtlbHNle3ZhciBKZTsoSmU9QmUucm9vdERvbVJlZik9PT1udWxsfHxKZT09PXZvaWQgMHx8SmUuY3VycmVudC5yZXF1ZXN0RnVsbHNjcmVlbigpfX0sb25DbGVhblNlbGVjdGVkOmZ1bmN0aW9uKCl7WnQoKX0scmVzZXRBbGw6ZnVuY3Rpb24oKXt2YXIgdmU7WnQoKSxYdCh7fSksS3Qoe30pLEJlLnNldEtleVdvcmRzKHZvaWQgMCksR2Uuc2V0UGFnZUluZm8oe2N1cnJlbnQ6MX0pLEg9PW51bGx8fCh2ZT1ILmN1cnJlbnQpPT09bnVsbHx8dmU9PT12b2lkIDB8fHZlLnJlc2V0RmllbGRzKCksaXQoe30pfSxlZGl0YWJsZVV0aWxzOk10fSksQmUuc2V0QWN0aW9uKGJlLmN1cnJlbnQpO3ZhciB6dD0oMCxkLnVzZU1lbW8pKGZ1bmN0aW9uKCl7dmFyIGxlO3JldHVybiBfcih7Y29sdW1uczpJLGNvdW50ZXI6QmUsY29sdW1uRW1wdHlUZXh0OmRlLHR5cGU6VyxtYXJnaW5TTTptcy5tYXJnaW5TTSxlZGl0YWJsZVV0aWxzOk10LHJvd0tleTpVLGNoaWxkcmVuQ29sdW1uTmFtZToobGU9ZS5leHBhbmRhYmxlKT09PW51bGx8fGxlPT09dm9pZCAwP3ZvaWQgMDpsZS5jaGlsZHJlbkNvbHVtbk5hbWV9KS5zb3J0KFhpKEJlLmNvbHVtbnNNYXApKX0sW0ksQmU9PW51bGw/dm9pZCAwOkJlLnNvcnRLZXlDb2x1bW5zLEJlPT1udWxsP3ZvaWQgMDpCZS5jb2x1bW5zTWFwLGRlLFcsTXQuZWRpdGFibGVLZXlzJiZNdC5lZGl0YWJsZUtleXMuam9pbigiLCIpXSk7KDAsai5BdSkoZnVuY3Rpb24oKXtpZih6dCYmenQubGVuZ3RoPjApe3ZhciBsZT16dC5tYXAoZnVuY3Rpb24odmUpe3JldHVybiBOdCh2ZS5rZXksdmUuaW5kZXgpfSk7QmUuc2V0U29ydEtleUNvbHVtbnMobGUpfX0sW3p0XSxbInJlbmRlciIsInJlbmRlckZvcm1JdGVtIl0sMTAwKSwoMCxqLktXKShmdW5jdGlvbigpe3ZhciBsZT1HZS5wYWdlSW5mbyx2ZT15fHx7fSxKZT12ZS5jdXJyZW50LFJuPUplPT09dm9pZCAwP2xlPT1udWxsP3ZvaWQgMDpsZS5jdXJyZW50OkplLGN0PXZlLnBhZ2VTaXplLHh0PWN0PT09dm9pZCAwP2xlPT1udWxsP3ZvaWQgMDpsZS5wYWdlU2l6ZTpjdDt5JiYoUm58fHh0KSYmKHh0IT09KGxlPT1udWxsP3ZvaWQgMDpsZS5wYWdlU2l6ZSl8fFJuIT09KGxlPT1udWxsP3ZvaWQgMDpsZS5jdXJyZW50KSkmJkdlLnNldFBhZ2VJbmZvKHtwYWdlU2l6ZTp4dHx8bGUucGFnZVNpemUsY3VycmVudDpSbnx8bGUuY3VycmVudH0pfSxbeSYmeS5wYWdlU2l6ZSx5JiZ5LmN1cnJlbnRdKTt2YXIgZ3M9KDAsbC5aKSgoMCxsLlopKHtzZWxlY3RlZFJvd0tleXM6WGV9LGIpLHt9LHtvbkNoYW5nZTpmdW5jdGlvbih2ZSxKZSxSbil7YiYmYi5vbkNoYW5nZSYmYi5vbkNoYW5nZSh2ZSxKZSxSbiksTGUodmUpfX0pLHRyPVAhPT0hMSYmKFA9PW51bGw/dm9pZCAwOlAuZmlsdGVyVHlwZSk9PT0ibGlnaHQiLG5hPSgwLGQudXNlQ2FsbGJhY2spKGZ1bmN0aW9uKGxlKXtpZihFJiZFLnNlYXJjaCl7dmFyIHZlLEplLFJuPUUuc2VhcmNoPT09ITA/e306RS5zZWFyY2gsY3Q9Um4ubmFtZSx4dD1jdD09PXZvaWQgMD8ia2V5d29yZCI6Y3QsZHQ9KHZlPUUuc2VhcmNoKT09PW51bGx8fHZlPT09dm9pZCAwfHwoSmU9dmUub25TZWFyY2gpPT09bnVsbHx8SmU9PT12b2lkIDA/dm9pZCAwOkplLmNhbGwodmUsQmUua2V5V29yZHMpO2lmKGR0IT09ITEpe2l0KCgwLGwuWikoKDAsbC5aKSh7fSxsZSkse30sKDAscC5aKSh7fSx4dCxCZS5rZXlXb3JkcykpKTtyZXR1cm59fWl0KGxlKX0sW0JlLmtleVdvcmRzLEUsaXRdKSx0YT0oMCxkLnVzZU1lbW8pKGZ1bmN0aW9uKCl7aWYoKDAsWm4uWikoR2UubG9hZGluZyk9PT0ib2JqZWN0Iil7dmFyIGxlO3JldHVybigobGU9R2UubG9hZGluZyk9PT1udWxsfHxsZT09PXZvaWQgMD92b2lkIDA6bGUuc3Bpbm5pbmcpfHwhMX1yZXR1cm4gR2UubG9hZGluZ30sW0dlLmxvYWRpbmddKSxyYT0oMCxkLnVzZU1lbW8pKGZ1bmN0aW9uKCl7dmFyIGxlPVA9PT0hMSYmVyE9PSJmb3JtIj9udWxsOigwLHMuanN4KShfbyx7cGFnaW5hdGlvbjpDdCxiZWZvcmVTZWFyY2hTdWJtaXQ6TixhY3Rpb246YmUsY29sdW1uczpJLG9uRm9ybVNlYXJjaFN1Ym1pdDpmdW5jdGlvbihKZSl7bmEoSmUpfSxnaG9zdDpaLG9uUmVzZXQ6ZS5vblJlc2V0LG9uU3VibWl0OmUub25TdWJtaXQsbG9hZGluZzohIXRhLG1hbnVhbFJlcXVlc3Q6YWUsc2VhcmNoOlAsZm9ybTplLmZvcm0sZm9ybVJlZjpILHR5cGU6ZS50eXBlfHwidGFibGUiLGNhcmRCb3JkZXJlZDplLmNhcmRCb3JkZXJlZCxkYXRlRm9ybWF0dGVyOmUuZGF0ZUZvcm1hdHRlcn0pO3JldHVybiBEZSYmbGU/KDAscy5qc3gpKHMuRnJhZ21lbnQse2NoaWxkcmVuOkRlKGUsbGUpfSk6bGV9LFtOLEgsWix0YSxhZSxuYSxDdCxlLEksUCxEZSxXXSksYWE9KDAsZC51c2VNZW1vKShmdW5jdGlvbigpe3JldHVybiBYZT09bnVsbD92b2lkIDA6WGUubWFwKGZ1bmN0aW9uKGxlKXt2YXIgdmU7cmV0dXJuKHZlPXR0LmN1cnJlbnQpPT09bnVsbHx8dmU9PT12b2lkIDA/dm9pZCAwOnZlLmdldChsZSl9KX0sW0dlLmRhdGFTb3VyY2UsWGVdKSxsYT0oMCxkLnVzZU1lbW8pKGZ1bmN0aW9uKCl7cmV0dXJuIEU9PT0hMSYmIW0mJiFDJiYhY2UmJiF0cn0sW0UsbSxDLGNlLHRyXSkscHM9Qz09PSExP251bGw6KDAscy5qc3gpKEJpLHtoZWFkZXJUaXRsZTptLGhpZGVUb29sYmFyOmxhLHNlbGVjdGVkUm93czphYSxzZWxlY3RlZFJvd0tleXM6WGUsdGFibGVDb2x1bW46enQsdG9vbHRpcDpyZSx0b29sYmFyOmNlLG9uRm9ybVNlYXJjaFN1Ym1pdDpmdW5jdGlvbih2ZSl7aXQoKDAsbC5aKSgoMCxsLlopKHt9LGd0KSx2ZSkpfSxzZWFyY2hOb2RlOnRyP3JhOm51bGwsb3B0aW9uczpFLG9wdGlvbnNSZW5kZXI6VCxhY3Rpb25SZWY6YmUsdG9vbEJhclJlbmRlcjpDfSksaHM9YiE9PSExPygwLHMuanN4KShFbCx7c2VsZWN0ZWRSb3dLZXlzOlhlLHNlbGVjdGVkUm93czphYSxvbkNsZWFuU2VsZWN0ZWQ6WnQsYWxlcnRPcHRpb25SZW5kZXI6dG4udGFibGVBbGVydE9wdGlvblJlbmRlcixhbGVydEluZm9SZW5kZXI6SyxhbHdheXNTaG93QWxlcnQ6Yj09bnVsbD92b2lkIDA6Yi5hbHdheXNTaG93QWxlcnR9KTpudWxsO3JldHVybiBDZSgoMCxzLmpzeCkoY3MsKDAsbC5aKSgoMCxsLlopKHt9LGUpLHt9LHtuYW1lOiQsZGVmYXVsdENsYXNzTmFtZTpYLHNpemU6QmUudGFibGVTaXplLG9uU2l6ZUNoYW5nZTpCZS5zZXRUYWJsZVNpemUscGFnaW5hdGlvbjpDdCxzZWFyY2hOb2RlOnJhLHJvd1NlbGVjdGlvbjpiIT09ITE/Z3M6dm9pZCAwLGNsYXNzTmFtZTpPbix0YWJsZUNvbHVtbjp6dCxpc0xpZ2h0RmlsdGVyOnRyLGFjdGlvbjpHZSxhbGVydERvbTpocyx0b29sYmFyRG9tOnBzLGhpZGVUb29sYmFyOmxhLG9uU29ydENoYW5nZTpmdW5jdGlvbih2ZSl7THQhPT12ZSYmS3QodmUhPW51bGw/dmU6e30pfSxvbkZpbHRlckNoYW5nZTpmdW5jdGlvbih2ZSl7dmUhPT13dCYmWHQodmUpfSxlZGl0YWJsZVV0aWxzOk10LGdldFJvd0tleTpydH0pKSl9LGVhPWZ1bmN0aW9uKGUpe3ZhciByPSgwLGQudXNlQ29udGV4dCkoZG4uWlAuQ29uZmlnQ29udGV4dCksdD1yLmdldFByZWZpeENscyxvPWUuRXJyb3JCb3VuZGFyeT09PSExP2QuRnJhZ21lbnQ6ZS5FcnJvckJvdW5kYXJ5fHxELlM7cmV0dXJuKDAscy5qc3gpKFBsLHtpbml0VmFsdWU6ZSxjaGlsZHJlbjooMCxzLmpzeCkod2UuX1kse25lZWREZXBzOiEwLGNoaWxkcmVuOigwLHMuanN4KShvLHtjaGlsZHJlbjooMCxzLmpzeCkoZHMsKDAsbC5aKSh7ZGVmYXVsdENsYXNzTmFtZToiIi5jb25jYXQodCgicHJvLXRhYmxlIikpfSxlKSl9KX0pfSl9O2VhLlN1bW1hcnk9bWUuWi5TdW1tYXJ5O3ZhciB2cz1lYX0sNzgxNjQ6ZnVuY3Rpb24oUHQsWG4sdil7di5kKFhuLHtTOmZ1bmN0aW9uKCl7cmV0dXJuIGdufX0pO3ZhciBMPXYoMTU2NzEpLHNlPXYoNDMxNDQpLFpuPXYoOTczMjYpLGZlPXYoNjAxMzYpLHA9digyOTM4OCksbW49dig0OTQyKSxsPXYoNTk3MjApLHE9dig2NzI5NCksZW49dig4NTg5MyksZ249ZnVuY3Rpb24oZG4peygwLGZlLlopKFZuLGRuKTt2YXIgSW49KDAscC5aKShWbik7ZnVuY3Rpb24gVm4oKXt2YXIgR247KDAsTC5aKSh0aGlzLFZuKTtmb3IodmFyIFplPWFyZ3VtZW50cy5sZW5ndGgscWU9bmV3IEFycmF5KFplKSxwbj0wO3BuPFplO3BuKyspcWVbcG5dPWFyZ3VtZW50c1twbl07cmV0dXJuIEduPUluLmNhbGwuYXBwbHkoSW4sW3RoaXNdLmNvbmNhdChxZSkpLCgwLG1uLlopKCgwLFpuLlopKEduKSwic3RhdGUiLHtoYXNFcnJvcjohMSxlcnJvckluZm86IiJ9KSxHbn1yZXR1cm4oMCxzZS5aKShWbixbe2tleToiY29tcG9uZW50RGlkQ2F0Y2giLHZhbHVlOmZ1bmN0aW9uKFplLHFlKXtjb25zb2xlLmxvZyhaZSxxZSl9fSx7a2V5OiJyZW5kZXIiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc3RhdGUuaGFzRXJyb3I/KDAsZW4uanN4KShsLlpQLHtzdGF0dXM6ImVycm9yIix0aXRsZToiU29tZXRoaW5nIHdlbnQgd3JvbmcuIixleHRyYTp0aGlzLnN0YXRlLmVycm9ySW5mb30pOnRoaXMucHJvcHMuY2hpbGRyZW59fV0sW3trZXk6ImdldERlcml2ZWRTdGF0ZUZyb21FcnJvciIsdmFsdWU6ZnVuY3Rpb24oWmUpe3JldHVybntoYXNFcnJvcjohMCxlcnJvckluZm86WmUubWVzc2FnZX19fV0pLFZufShxLkNvbXBvbmVudCl9LDkwMDgxOmZ1bmN0aW9uKFB0LFhuLHYpe3YuZChYbix7VTpmdW5jdGlvbigpe3JldHVybiBBbn19KTt2YXIgTD12KDkxKSxzZT12KDE0MTMpLFpuPXYoOTc2ODUpLGZlPXYoNTA4ODgpLHA9dig2NDg0NyksbW49digyMTUzMiksbD12KDU1MjQxKSxxPXYoOTk4NTkpLGVuPXYoODgzMDYpLGduPXYoNjcyOTQpLGRuPXYoNzMxNzcpLEluPXYoNDk0MiksVm49ZnVuY3Rpb24oS2Upe3ZhciB5ZT0iIi5jb25jYXQoS2UuYW50Q2xzLCItcHJvZ3Jlc3MtYmciKTtyZXR1cm4oMCxJbi5aKSh7fSxLZS5jb21wb25lbnRDbHMseyImLW11bHRpcGxlIjp7cGFkZGluZ0Jsb2NrU3RhcnQ6NixwYWRkaW5nQmxvY2tFbmQ6MTIscGFkZGluZ0lubGluZTo4fSwiJi1wcm9ncmVzcyI6eyImLXN1Y2Nlc3MiOigwLEluLlopKHt9LHllLHtiYWNrZ3JvdW5kQ29sb3I6S2UuY29sb3JTdWNjZXNzfSksIiYtZXJyb3IiOigwLEluLlopKHt9LHllLHtiYWNrZ3JvdW5kQ29sb3I6S2UuY29sb3JFcnJvcn0pLCImLXdhcm5pbmciOigwLEluLlopKHt9LHllLHtiYWNrZ3JvdW5kQ29sb3I6S2UuY29sb3JXYXJuaW5nfSl9LCImLXJ1bGUiOntkaXNwbGF5OiJmbGV4IixhbGlnbkl0ZW1zOiJjZW50ZXIiLCImLWljb24iOnsiJi1kZWZhdWx0Ijp7ZGlzcGxheToiZmxleCIsYWxpZ25JdGVtczoiY2VudGVyIixqdXN0aWZ5Q29udGVudDoiY2VudGVyIix3aWR0aDoiMTRweCIsaGVpZ2h0OiIyMnB4IiwiJi1jaXJjbGUiOnt3aWR0aDoiNnB4IixoZWlnaHQ6IjZweCIsYmFja2dyb3VuZENvbG9yOktlLmNvbG9yVGV4dFNlY29uZGFyeSxib3JkZXJSYWRpdXM6IjRweCJ9fSwiJi1sb2FkaW5nIjp7Y29sb3I6S2UuY29sb3JQcmltYXJ5fSwiJi1lcnJvciI6e2NvbG9yOktlLmNvbG9yRXJyb3J9LCImLXN1Y2Nlc3MiOntjb2xvcjpLZS5jb2xvclN1Y2Nlc3N9fSwiJi10ZXh0Ijp7Y29sb3I6S2UuY29sb3JUZXh0fX19KX07ZnVuY3Rpb24gR24ocyl7cmV0dXJuKDAscC5YaikoIklubGluZUVycm9yRm9ybUl0ZW0iLGZ1bmN0aW9uKEtlKXt2YXIgeWU9KDAsc2UuWikoKDAsc2UuWikoe30sS2UpLHt9LHtjb21wb25lbnRDbHM6Ii4iLmNvbmNhdChzKX0pO3JldHVybltWbih5ZSldfSl9dmFyIFplPXYoODU4OTMpLHFlPVsicnVsZXMiLCJuYW1lIiwiY2hpbGRyZW4iLCJwb3BvdmVyUHJvcHMiXSxwbj1bImVycm9yVHlwZSIsInJ1bGVzIiwibmFtZSIsInBvcG92ZXJQcm9wcyIsImNoaWxkcmVuIl0sZD17bWFyZ2luQmxvY2tTdGFydDotNSxtYXJnaW5CbG9ja0VuZDotNSxtYXJnaW5JbmxpbmVTdGFydDowLG1hcmdpbklubGluZUVuZDowfSx1bj1mdW5jdGlvbihLZSl7dmFyIHllPUtlLmlucHV0UHJvcHMsaG49S2UuaW5wdXQsUWU9S2UuZXh0cmEsRm49S2UuZXJyb3JMaXN0LHVlPUtlLnBvcG92ZXJQcm9wcyx6ZT0oMCxnbi51c2VTdGF0ZSkoITEpLGtlPSgwLFpuLlopKHplLDIpLFJlPWtlWzBdLHhlPWtlWzFdLFRuPSgwLGduLnVzZVN0YXRlKShbXSksSm49KDAsWm4uWikoVG4sMiksd249Sm5bMF0scW49Sm5bMV0sa249KDAsZ24udXNlQ29udGV4dCkobW4uWlAuQ29uZmlnQ29udGV4dCksc3Q9a24uZ2V0UHJlZml4Q2xzLE09c3QoKSxwZT0oMCxwLmRRKSgpLFZlPUduKCIiLmNvbmNhdChNLCItZm9ybS1pdGVtLXdpdGgtaGVscCIpKSxybj1WZS53cmFwU1NSLG5uPVZlLmhhc2hJZDsoMCxnbi51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7eWUudmFsaWRhdGVTdGF0dXMhPT0idmFsaWRhdGluZyImJnFuKHllLmVycm9ycyl9LFt5ZS5lcnJvcnMseWUudmFsaWRhdGVTdGF0dXNdKTt2YXIgWWU9KDAsZG4uWCkod24ubGVuZ3RoPDE/ITE6UmUsZnVuY3Rpb24oeW4pe3luIT09UmUmJnhlKHluKX0pLHZuPXllLnZhbGlkYXRlU3RhdHVzPT09InZhbGlkYXRpbmciO3JldHVybigwLFplLmpzeCkobC5aLCgwLHNlLlopKCgwLHNlLlopKCgwLHNlLlopKHt0cmlnZ2VyOih1ZT09bnVsbD92b2lkIDA6dWUudHJpZ2dlcil8fFsiY2xpY2siXSxwbGFjZW1lbnQ6KHVlPT1udWxsP3ZvaWQgMDp1ZS5wbGFjZW1lbnQpfHwidG9wTGVmdCJ9LFllKSx7fSx7Z2V0UG9wdXBDb250YWluZXI6dWU9PW51bGw/dm9pZCAwOnVlLmdldFBvcHVwQ29udGFpbmVyLGdldFRvb2x0aXBDb250YWluZXI6dWU9PW51bGw/dm9pZCAwOnVlLmdldFRvb2x0aXBDb250YWluZXIsY29udGVudDpybigoMCxaZS5qc3gpKCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KE0sIi1mb3JtLWl0ZW0gIikuY29uY2F0KG5uLCIgIikuY29uY2F0KHBlLmhhc2hJZCkudHJpbSgpLHN0eWxlOnttYXJnaW46MCxwYWRkaW5nOjB9LGNoaWxkcmVuOigwLFplLmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KE0sIi1mb3JtLWl0ZW0td2l0aC1oZWxwICIpLmNvbmNhdChubiwiICIpLmNvbmNhdChwZS5oYXNoSWQpLnRyaW0oKSxjaGlsZHJlbjpbdm4/KDAsWmUuanN4KShmZS5aLHt9KTpudWxsLEZuXX0pfSkpfSx1ZSkse30se2NoaWxkcmVuOigwLFplLmpzeHMpKFplLkZyYWdtZW50LHtjaGlsZHJlbjpbaG4sUWVdfSl9KSwicG9wb3ZlciIpfSxCbj1mdW5jdGlvbihLZSl7dmFyIHllPUtlLnJ1bGVzLGhuPUtlLm5hbWUsUWU9S2UuY2hpbGRyZW4sRm49S2UucG9wb3ZlclByb3BzLHVlPSgwLEwuWikoS2UscWUpO3JldHVybigwLFplLmpzeCkocS5aLkl0ZW0sKDAsc2UuWikoKDAsc2UuWikoe25hbWU6aG4scnVsZXM6eWUsaGFzRmVlZGJhY2s6ITEsc2hvdWxkVXBkYXRlOmZ1bmN0aW9uKGtlLFJlKXtpZihrZT09PVJlKXJldHVybiExO3ZhciB4ZT1baG5dLmZsYXQoMSk7eGUubGVuZ3RoPjEmJnhlLnBvcCgpO3RyeXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoKDAsZW4uWikoa2UseGUpKSE9PUpTT04uc3RyaW5naWZ5KCgwLGVuLlopKFJlLHhlKSl9Y2F0Y2goVG4pe3JldHVybiEwfX0sX2ludGVybmFsSXRlbVJlbmRlcjp7bWFyazoicHJvX3RhYmxlX3JlbmRlciIscmVuZGVyOmZ1bmN0aW9uKGtlLFJlKXtyZXR1cm4oMCxaZS5qc3gpKHVuLCgwLHNlLlopKHtpbnB1dFByb3BzOmtlLHBvcG92ZXJQcm9wczpGbn0sUmUpKX19fSx1ZSkse30se3N0eWxlOigwLHNlLlopKCgwLHNlLlopKHt9LGQpLHVlPT1udWxsP3ZvaWQgMDp1ZS5zdHlsZSksY2hpbGRyZW46UWV9KSl9LEFuPWZ1bmN0aW9uKEtlKXt2YXIgeWU9S2UuZXJyb3JUeXBlLGhuPUtlLnJ1bGVzLFFlPUtlLm5hbWUsRm49S2UucG9wb3ZlclByb3BzLHVlPUtlLmNoaWxkcmVuLHplPSgwLEwuWikoS2UscG4pO3JldHVybiBRZSYmaG4hPT1udWxsJiZobiE9PXZvaWQgMCYmaG4ubGVuZ3RoJiZ5ZT09PSJwb3BvdmVyIj8oMCxaZS5qc3gpKEJuLCgwLHNlLlopKCgwLHNlLlopKHtuYW1lOlFlLHJ1bGVzOmhuLHBvcG92ZXJQcm9wczpGbn0semUpLHt9LHtjaGlsZHJlbjp1ZX0pKTooMCxaZS5qc3gpKHEuWi5JdGVtLCgwLHNlLlopKCgwLHNlLlopKHtydWxlczpobixzaG91bGRVcGRhdGU6UWU/ZnVuY3Rpb24oa2UsUmUpe2lmKGtlPT09UmUpcmV0dXJuITE7dmFyIHhlPVtRZV0uZmxhdCgxKTt4ZS5sZW5ndGg+MSYmeGUucG9wKCk7dHJ5e3JldHVybiBKU09OLnN0cmluZ2lmeSgoMCxlbi5aKShrZSx4ZSkpIT09SlNPTi5zdHJpbmdpZnkoKDAsZW4uWikoUmUseGUpKX1jYXRjaChUbil7cmV0dXJuITB9fTp2b2lkIDB9LHplKSx7fSx7c3R5bGU6KDAsc2UuWikoKDAsc2UuWikoe30sZCksemUuc3R5bGUpLG5hbWU6UWUsY2hpbGRyZW46dWV9KSl9fSw3NzM5ODpmdW5jdGlvbihQdCxYbix2KXt2LmQoWG4se1g6ZnVuY3Rpb24oKXtyZXR1cm4gbW59fSk7dmFyIEw9dig2MDk2MCksc2U9dig2NzI5NCksWm49dig4NTg5MyksZmU9ZnVuY3Rpb24ocSl7dmFyIGVuO3JldHVybiEhKHEhPW51bGwmJihlbj1xLnZhbHVlVHlwZSkhPT1udWxsJiZlbiE9PXZvaWQgMCYmZW4udG9TdHJpbmcoKS5zdGFydHNXaXRoKCJkYXRlIil8fChxPT1udWxsP3ZvaWQgMDpxLnZhbHVlVHlwZSk9PT0ic2VsZWN0Inx8cSE9bnVsbCYmcS52YWx1ZUVudW0pfSxwPWZ1bmN0aW9uKHEpe3ZhciBlbjtyZXR1cm4oKGVuPXEuZWxsaXBzaXMpPT09bnVsbHx8ZW49PT12b2lkIDA/dm9pZCAwOmVuLnNob3dUaXRsZSk9PT0hMT8hMTpxLmVsbGlwc2lzfSxtbj1mdW5jdGlvbihxLGVuLGduKXtpZihlbi5jb3B5YWJsZXx8ZW4uZWxsaXBzaXMpe3ZhciBkbj1lbi5jb3B5YWJsZSYmZ24/e3RleHQ6Z24sdG9vbHRpcHM6WyIiLCIiXX06dm9pZCAwLEluPWZlKGVuKSxWbj1wKGVuKSYmZ24/e3Rvb2x0aXA6KGVuPT1udWxsP3ZvaWQgMDplbi50b29sdGlwKSE9PSExJiZJbj8oMCxabi5qc3gpKCJkaXYiLHtjbGFzc05hbWU6InByby10YWJsZS10b29sdGlwLXRleHQiLGNoaWxkcmVuOnF9KTpnbn06ITE7cmV0dXJuKDAsWm4uanN4KShMLlouVGV4dCx7c3R5bGU6e3dpZHRoOiIxMDAlIixtYXJnaW46MCxwYWRkaW5nOjB9LHRpdGxlOiIiLGNvcHlhYmxlOmRuLGVsbGlwc2lzOlZuLGNoaWxkcmVuOnF9KX1yZXR1cm4gcX19LDIwMjY6ZnVuY3Rpb24oUHQsWG4sdil7di5kKFhuLHt3OmZ1bmN0aW9uKCl7cmV0dXJuIHNlfX0pO3ZhciBMPXYoMjIyNzApLHNlPWZ1bmN0aW9uKGZlLHAsbW4pe3JldHVybiBwPT09dm9pZCAwP2ZlOigwLEwuaCkoZmUscCxtbil9fSw4NjY3MTpmdW5jdGlvbihQdCxYbix2KXt2LmQoWG4se0NCOmZ1bmN0aW9uKCl7cmV0dXJuIHN0fSxhWDpmdW5jdGlvbigpe3JldHVybiBrbn0sY3g6ZnVuY3Rpb24oKXtyZXR1cm4gVG59LHNOOmZ1bmN0aW9uKCl7cmV0dXJuIHhlfX0pO3ZhciBMPXYoNzQ5MDIpLHNlPXYoNzQxNjUpLFpuPXYoODQ1MDYpLGZlPXYoMTU4NjEpLHA9dig5NzY4NSksbW49dig0OTQyKSxsPXYoOTEpLHE9digxNDEzKSxlbj12KDcxMDAyKSxnbj12KDUwODg4KSxkbj12KDEwOTE1KSxJbj12KDI0NTMpLFZuPXYoOTk4NTkpLEduPXYoODY3MzgpLFplPXYoODQxNjQpLHFlPXYoMjE3NzApLHBuPXYoODgzMDYpLGQ9dig4ODgwKSx1bj12KDgwMzM0KSxCbj12KDY3Mjk0KSxBbj12KDQ4MTcxKSxzPXYoMTAxNzgpLEtlPXYoNDEwMzYpLHllPXYoMjcwNjgpLGhuPXYoMjYzNjkpLFFlPXYoOTIyMTApLEZuPXYoODU4OTMpLHVlPVsibWFwX3Jvd19wYXJlbnRLZXkiXSx6ZT1bIm1hcF9yb3dfcGFyZW50S2V5IiwibWFwX3Jvd19rZXkiXSxrZT1bIm1hcF9yb3dfa2V5Il0sUmU9ZnVuY3Rpb24ocGUpe3JldHVybihJbi5aUC53YXJufHxJbi5aUC53YXJuaW5nKShwZSl9LHhlPWZ1bmN0aW9uKHBlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShwZSk/cGUuam9pbigiLCIpOnBlfTtmdW5jdGlvbiBUbihNLHBlKXt2YXIgVmUscm49TS5nZXRSb3dLZXksbm49TS5yb3csWWU9TS5kYXRhLHZuPU0uY2hpbGRyZW5Db2x1bW5OYW1lLHluPXZuPT09dm9pZCAwPyJjaGlsZHJlbiI6dm4sTG49KFZlPXhlKE0ua2V5KSk9PT1udWxsfHxWZT09PXZvaWQgMD92b2lkIDA6VmUudG9TdHJpbmcoKSxhbj1uZXcgTWFwO2Z1bmN0aW9uIFNuKEVuLHhuLGxuKXtFbi5mb3JFYWNoKGZ1bmN0aW9uKFBuLFVlKXt2YXIgTmU9KGxufHwwKSoxMCtVZSxPZT1ybihQbixOZSkudG9TdHJpbmcoKTtQbiYmKDAsZW4uWikoUG4pPT09Im9iamVjdCImJnluIGluIFBuJiZTbihQblt5bl18fFtdLE9lLE5lKTt2YXIgSWU9KDAscS5aKSgoMCxxLlopKHt9LFBuKSx7fSx7bWFwX3Jvd19rZXk6T2UsY2hpbGRyZW46dm9pZCAwLG1hcF9yb3dfcGFyZW50S2V5OnhufSk7ZGVsZXRlIEllLmNoaWxkcmVuLHhufHxkZWxldGUgSWUubWFwX3Jvd19wYXJlbnRLZXksYW4uc2V0KE9lLEllKX0pfXBlPT09InRvcCImJmFuLnNldChMbiwoMCxxLlopKCgwLHEuWikoe30sYW4uZ2V0KExuKSksbm4pKSxTbihZZSkscGU9PT0idXBkYXRlIiYmYW4uc2V0KExuLCgwLHEuWikoKDAscS5aKSh7fSxhbi5nZXQoTG4pKSxubikpLHBlPT09ImRlbGV0ZSImJmFuLmRlbGV0ZShMbik7dmFyIE1uPWZ1bmN0aW9uKHhuKXt2YXIgbG49bmV3IE1hcCxQbj1bXSxVZT1mdW5jdGlvbigpe3ZhciBPZT1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXZvaWQgMD9hcmd1bWVudHNbMF06ITE7eG4uZm9yRWFjaChmdW5jdGlvbihJZSl7aWYoSWUubWFwX3Jvd19wYXJlbnRLZXkmJiFJZS5tYXBfcm93X2tleSl7dmFyIEhlPUllLm1hcF9yb3dfcGFyZW50S2V5LEhuPSgwLGwuWikoSWUsdWUpO2lmKGxuLmhhcyhIZSl8fGxuLnNldChIZSxbXSksT2Upe3ZhciBvbjsob249bG4uZ2V0KEhlKSk9PT1udWxsfHxvbj09PXZvaWQgMHx8b24ucHVzaChIbil9fX0pfTtyZXR1cm4gVWUocGU9PT0idG9wIikseG4uZm9yRWFjaChmdW5jdGlvbihOZSl7aWYoTmUubWFwX3Jvd19wYXJlbnRLZXkmJk5lLm1hcF9yb3dfa2V5KXt2YXIgT2UsSWU9TmUubWFwX3Jvd19wYXJlbnRLZXksSGU9TmUubWFwX3Jvd19rZXksSG49KDAsbC5aKShOZSx6ZSk7bG4uaGFzKEhlKSYmKEhuW3luXT1sbi5nZXQoSGUpKSxsbi5oYXMoSWUpfHxsbi5zZXQoSWUsW10pLChPZT1sbi5nZXQoSWUpKT09PW51bGx8fE9lPT09dm9pZCAwfHxPZS5wdXNoKEhuKX19KSxVZShwZT09PSJ1cGRhdGUiKSx4bi5mb3JFYWNoKGZ1bmN0aW9uKE5lKXtpZighTmUubWFwX3Jvd19wYXJlbnRLZXkpe3ZhciBPZT1OZS5tYXBfcm93X2tleSxJZT0oMCxsLlopKE5lLGtlKTtpZihPZSYmbG4uaGFzKE9lKSl7dmFyIEhlPSgwLHEuWikoKDAscS5aKSh7fSxJZSkse30sKDAsbW4uWikoe30seW4sbG4uZ2V0KE9lKSkpO1BuLnB1c2goSGUpO3JldHVybn1Qbi5wdXNoKEllKX19KSxQbn07cmV0dXJuIE1uKGFuKX1mdW5jdGlvbiBKbihNLHBlKXt2YXIgVmU9TS5yZWNvcmRLZXkscm49TS5vblNhdmUsbm49TS5yb3csWWU9TS5jaGlsZHJlbix2bj1NLm5ld0xpbmVDb25maWcseW49TS5lZGl0b3JUeXBlLExuPU0udGFibGVOYW1lLGFuPSgwLEJuLnVzZUNvbnRleHQpKEtlLkopLFNuPVZuLloudXNlRm9ybUluc3RhbmNlKCksTW49KDAscWUuWikoITEpLEVuPSgwLHAuWikoTW4sMikseG49RW5bMF0sbG49RW5bMV0sUG49KDAsQW4uSikoKDAsZmUuWikoKDAsc2UuWikoKS5tYXJrKGZ1bmN0aW9uIFVlKCl7dmFyIE5lLE9lLEllLEhlLEhuLG9uLHdlLGpuLGE7cmV0dXJuKDAsc2UuWikoKS53cmFwKGZ1bmN0aW9uKGope2Zvcig7Oylzd2l0Y2goai5wcmV2PWoubmV4dCl7Y2FzZSAwOnJldHVybiBqLnByZXY9MCxPZT15bj09PSJNYXAiLEllPVtMbixBcnJheS5pc0FycmF5KFZlKT9WZVswXTpWZV0ubWFwKGZ1bmN0aW9uKEQpe3JldHVybiBEPT1udWxsP3ZvaWQgMDpELnRvU3RyaW5nKCl9KS5mbGF0KDEpLmZpbHRlcihCb29sZWFuKSxsbighMCksai5uZXh0PTYsU24udmFsaWRhdGVGaWVsZHMoSWUse3JlY3Vyc2l2ZTohMH0pO2Nhc2UgNjpyZXR1cm4gSGU9KGFuPT1udWxsfHwoTmU9YW4uZ2V0RmllbGRGb3JtYXRWYWx1ZSk9PT1udWxsfHxOZT09PXZvaWQgMD92b2lkIDA6TmUuY2FsbChhbixJZSkpfHxTbi5nZXRGaWVsZFZhbHVlKEllKSxBcnJheS5pc0FycmF5KFZlKSYmVmUubGVuZ3RoPjEmJihIbj0oMCxabi5aKShWZSksb249SG4uc2xpY2UoMSksd2U9KDAscG4uWikoSGUsb24pLCgwLGQuWikoSGUsb24sd2UpKSxqbj1PZT8oMCxkLlopKHt9LEllLEhlKTpIZSxqLm5leHQ9MTEscm49PW51bGw/dm9pZCAwOnJuKFZlLCgwLFFlLlQpKHt9LG5uLGpuKSxubix2bik7Y2FzZSAxMTpyZXR1cm4gYT1qLnNlbnQsbG4oITEpLGouYWJydXB0KCJyZXR1cm4iLGEpO2Nhc2UgMTY6dGhyb3cgai5wcmV2PTE2LGoudDA9ai5jYXRjaCgwKSxjb25zb2xlLmxvZyhqLnQwKSxsbighMSksai50MDtjYXNlIDIxOmNhc2UiZW5kIjpyZXR1cm4gai5zdG9wKCl9fSxVZSxudWxsLFtbMCwxNl1dKX0pKSk7cmV0dXJuKDAsQm4udXNlSW1wZXJhdGl2ZUhhbmRsZSkocGUsZnVuY3Rpb24oKXtyZXR1cm57c2F2ZTpQbn19LFtQbl0pLCgwLEZuLmpzeHMpKCJhIix7b25DbGljazpmdW5jdGlvbigpe3ZhciBVZT0oMCxmZS5aKSgoMCxzZS5aKSgpLm1hcmsoZnVuY3Rpb24gTmUoT2Upe3JldHVybigwLHNlLlopKCkud3JhcChmdW5jdGlvbihIZSl7Zm9yKDs7KXN3aXRjaChIZS5wcmV2PUhlLm5leHQpe2Nhc2UgMDpyZXR1cm4gT2Uuc3RvcFByb3BhZ2F0aW9uKCksT2UucHJldmVudERlZmF1bHQoKSxIZS5wcmV2PTIsSGUubmV4dD01LFBuKCk7Y2FzZSA1OkhlLm5leHQ9OTticmVhaztjYXNlIDc6SGUucHJldj03LEhlLnQwPUhlLmNhdGNoKDIpO2Nhc2UgOTpjYXNlImVuZCI6cmV0dXJuIEhlLnN0b3AoKX19LE5lLG51bGwsW1syLDddXSl9KSk7cmV0dXJuIGZ1bmN0aW9uKE5lKXtyZXR1cm4gVWUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSxjaGlsZHJlbjpbeG4/KDAsRm4uanN4KShnbi5aLHtzdHlsZTp7bWFyZ2luSW5saW5lRW5kOjh9fSk6bnVsbCxZZXx8Ilx1NEZERFx1NUI1OCJdfSwic2F2ZSIpfXZhciB3bj1mdW5jdGlvbihwZSl7dmFyIFZlPXBlLnJlY29yZEtleSxybj1wZS5vbkRlbGV0ZSxubj1wZS5wcmVFZGl0Um93UmVmLFllPXBlLnJvdyx2bj1wZS5jaGlsZHJlbix5bj1wZS5kZWxldGVQb3Bjb25maXJtTWVzc2FnZSxMbj0oMCxxZS5aKShmdW5jdGlvbigpe3JldHVybiExfSksYW49KDAscC5aKShMbiwyKSxTbj1hblswXSxNbj1hblsxXSxFbj0oMCxBbi5KKSgoMCxmZS5aKSgoMCxzZS5aKSgpLm1hcmsoZnVuY3Rpb24geG4oKXt2YXIgbG47cmV0dXJuKDAsc2UuWikoKS53cmFwKGZ1bmN0aW9uKFVlKXtmb3IoOzspc3dpdGNoKFVlLnByZXY9VWUubmV4dCl7Y2FzZSAwOnJldHVybiBVZS5wcmV2PTAsTW4oITApLFVlLm5leHQ9NCxybj09bnVsbD92b2lkIDA6cm4oVmUsWWUpO2Nhc2UgNDpyZXR1cm4gbG49VWUuc2VudCxNbighMSksVWUuYWJydXB0KCJyZXR1cm4iLGxuKTtjYXNlIDk6cmV0dXJuIFVlLnByZXY9OSxVZS50MD1VZS5jYXRjaCgwKSxjb25zb2xlLmxvZyhVZS50MCksTW4oITEpLFVlLmFicnVwdCgicmV0dXJuIixudWxsKTtjYXNlIDE0OnJldHVybiBVZS5wcmV2PTE0LG5uJiYobm4uY3VycmVudD1udWxsKSxVZS5maW5pc2goMTQpO2Nhc2UgMTc6Y2FzZSJlbmQiOnJldHVybiBVZS5zdG9wKCl9fSx4bixudWxsLFtbMCw5LDE0LDE3XV0pfSkpKTtyZXR1cm4gdm4hPT0hMT8oMCxGbi5qc3gpKEduLlose3RpdGxlOnluLG9uQ29uZmlybTpmdW5jdGlvbigpe3JldHVybiBFbigpfSxjaGlsZHJlbjooMCxGbi5qc3hzKSgiYSIse2NoaWxkcmVuOltTbj8oMCxGbi5qc3gpKGduLlose3N0eWxlOnttYXJnaW5JbmxpbmVFbmQ6OH19KTpudWxsLHZufHwiXHU1MjIwXHU5NjY0Il19KX0sImRlbGV0ZSIpOm51bGx9LHFuPWZ1bmN0aW9uKHBlKXt2YXIgVmU9cGUucmVjb3JkS2V5LHJuPXBlLnRhYmxlTmFtZSxubj1wZS5uZXdMaW5lQ29uZmlnLFllPXBlLmVkaXRvclR5cGUsdm49cGUub25DYW5jZWwseW49cGUuY2FuY2VsRWRpdGFibGUsTG49cGUucm93LGFuPXBlLmNhbmNlbFRleHQsU249cGUucHJlRWRpdFJvd1JlZixNbj0oMCxCbi51c2VDb250ZXh0KShLZS5KKSxFbj1Wbi5aLnVzZUZvcm1JbnN0YW5jZSgpO3JldHVybigwLEZuLmpzeCkoImEiLHtvbkNsaWNrOmZ1bmN0aW9uKCl7dmFyIHhuPSgwLGZlLlopKCgwLHNlLlopKCkubWFyayhmdW5jdGlvbiBsbihQbil7dmFyIFVlLE5lLE9lLEllLEhlLEhuLG9uO3JldHVybigwLHNlLlopKCkud3JhcChmdW5jdGlvbihqbil7Zm9yKDs7KXN3aXRjaChqbi5wcmV2PWpuLm5leHQpe2Nhc2UgMDpyZXR1cm4gUG4uc3RvcFByb3BhZ2F0aW9uKCksUG4ucHJldmVudERlZmF1bHQoKSxOZT1ZZT09PSJNYXAiLE9lPVtybixWZV0uZmxhdCgxKS5maWx0ZXIoQm9vbGVhbiksSWU9KE1uPT1udWxsfHwoVWU9TW4uZ2V0RmllbGRGb3JtYXRWYWx1ZSk9PT1udWxsfHxVZT09PXZvaWQgMD92b2lkIDA6VWUuY2FsbChNbixPZSkpfHwoRW49PW51bGw/dm9pZCAwOkVuLmdldEZpZWxkVmFsdWUoT2UpKSxIZT1OZT8oMCxkLlopKHt9LE9lLEllKTpJZSxqbi5uZXh0PTgsdm49PW51bGw/dm9pZCAwOnZuKFZlLEhlLExuLG5uKTtjYXNlIDg6cmV0dXJuIEhuPWpuLnNlbnQsam4ubmV4dD0xMSx5bihWZSk7Y2FzZSAxMTppZigoU249PW51bGw/dm9pZCAwOlNuLmN1cnJlbnQpPT09bnVsbCl7am4ubmV4dD0xNTticmVha31Fbi5zZXRGaWVsZHNWYWx1ZSgoMCxkLlopKHt9LE9lLFNuPT1udWxsP3ZvaWQgMDpTbi5jdXJyZW50KSksam4ubmV4dD0xNzticmVhaztjYXNlIDE1OnJldHVybiBqbi5uZXh0PTE3LChvbj1wZS5vbkRlbGV0ZSk9PT1udWxsfHxvbj09PXZvaWQgMD92b2lkIDA6b24uY2FsbChwZSxWZSxMbik7Y2FzZSAxNzpyZXR1cm4gU24mJihTbi5jdXJyZW50PW51bGwpLGpuLmFicnVwdCgicmV0dXJuIixIbik7Y2FzZSAxOTpjYXNlImVuZCI6cmV0dXJuIGpuLnN0b3AoKX19LGxuKX0pKTtyZXR1cm4gZnVuY3Rpb24obG4pe3JldHVybiB4bi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLGNoaWxkcmVuOmFufHwiXHU1M0Q2XHU2RDg4In0sImNhbmNlbCIpfTtmdW5jdGlvbiBrbihNLHBlKXt2YXIgVmU9cGUucmVjb3JkS2V5LHJuPXBlLm5ld0xpbmVDb25maWcsbm49cGUuc2F2ZVRleHQsWWU9cGUuZGVsZXRlVGV4dCx2bj0oMCxCbi5mb3J3YXJkUmVmKShKbikseW49KDAsQm4uY3JlYXRlUmVmKSgpO3JldHVybntzYXZlOigwLEZuLmpzeCkodm4sKDAscS5aKSgoMCxxLlopKHt9LHBlKSx7fSx7cm93Ok0scmVmOnluLGNoaWxkcmVuOm5ufSksInNhdmUiK1ZlKSxzYXZlUmVmOnluLGRlbGV0ZToocm49PW51bGw/dm9pZCAwOnJuLm9wdGlvbnMucmVjb3JkS2V5KSE9PVZlPygwLEZuLmpzeCkod24sKDAscS5aKSgoMCxxLlopKHt9LHBlKSx7fSx7cm93Ok0sY2hpbGRyZW46WWV9KSwiZGVsZXRlIitWZSk6dm9pZCAwLGNhbmNlbDooMCxGbi5qc3gpKHFuLCgwLHEuWikoKDAscS5aKSh7fSxwZSkse30se3JvdzpNfSksImNhbmNlbCIrVmUpfX1mdW5jdGlvbiBzdChNKXt2YXIgcGU9KDAsZG4uWUIpKCksVmU9KDAsQm4udXNlUmVmKShudWxsKSxybj0oMCxCbi51c2VTdGF0ZSkodm9pZCAwKSxubj0oMCxwLlopKHJuLDIpLFllPW5uWzBdLHZuPW5uWzFdLHluPWZ1bmN0aW9uKCl7dmFyIFE9bmV3IE1hcCxvZT1mdW5jdGlvbiBnZShlZSxUZSl7ZWU9PW51bGx8fGVlLmZvckVhY2goZnVuY3Rpb24oamUsJGUpe3ZhciBBZSxNZT1UZT09bnVsbD8kZS50b1N0cmluZygpOlRlKyJfIiskZS50b1N0cmluZygpO1Euc2V0KE1lLHhlKE0uZ2V0Um93S2V5KGplLC0xKSkpLFEuc2V0KChBZT14ZShNLmdldFJvd0tleShqZSwtMSkpKT09PW51bGx8fEFlPT09dm9pZCAwP3ZvaWQgMDpBZS50b1N0cmluZygpLE1lKSxNLmNoaWxkcmVuQ29sdW1uTmFtZSYmamUhPT1udWxsJiZqZSE9PXZvaWQgMCYmamVbTS5jaGlsZHJlbkNvbHVtbk5hbWVdJiZnZShqZVtNLmNoaWxkcmVuQ29sdW1uTmFtZV0sTWUpfSl9O3JldHVybiBvZShNLmRhdGFTb3VyY2UpLFF9LExuPSgwLEJuLnVzZU1lbW8pKGZ1bmN0aW9uKCl7cmV0dXJuIHluKCl9LFtdKSxhbj0oMCxCbi51c2VSZWYpKExuKSxTbj0oMCxCbi51c2VSZWYpKHZvaWQgMCk7KDAseWUuQXUpKGZ1bmN0aW9uKCl7YW4uY3VycmVudD15bigpfSxbTS5kYXRhU291cmNlXSksU24uY3VycmVudD1ZZTt2YXIgTW49TS50eXBlfHwic2luZ2xlIixFbj0oMCxaZS5aKShNLmRhdGFTb3VyY2UsImNoaWxkcmVuIixNLmdldFJvd0tleSkseG49KDAscC5aKShFbiwxKSxsbj14blswXSxQbj0oMCxxZS5aKShbXSx7dmFsdWU6TS5lZGl0YWJsZUtleXMsb25DaGFuZ2U6TS5vbkNoYW5nZT9mdW5jdGlvbihQZSl7dmFyIFEsb2UsZ2U7TT09bnVsbHx8KFE9TS5vbkNoYW5nZSk9PT1udWxsfHxRPT09dm9pZCAwfHxRLmNhbGwoTSwob2U9UGU9PW51bGw/dm9pZCAwOlBlLmZpbHRlcihmdW5jdGlvbihlZSl7cmV0dXJuIGVlIT09dm9pZCAwfSkpIT09bnVsbCYmb2UhPT12b2lkIDA/b2U6W10sKGdlPVBlPT1udWxsP3ZvaWQgMDpQZS5tYXAoZnVuY3Rpb24oZWUpe3JldHVybiBsbihlZSl9KS5maWx0ZXIoZnVuY3Rpb24oZWUpe3JldHVybiBlZSE9PXZvaWQgMH0pKSE9PW51bGwmJmdlIT09dm9pZCAwP2dlOltdKX06dm9pZCAwfSksVWU9KDAscC5aKShQbiwyKSxOZT1VZVswXSxPZT1VZVsxXSxJZT0oMCxCbi51c2VNZW1vKShmdW5jdGlvbigpe3ZhciBQZT1Nbj09PSJzaW5nbGUiP05lPT1udWxsP3ZvaWQgMDpOZS5zbGljZSgwLDEpOk5lO3JldHVybiBuZXcgU2V0KFBlKX0sWyhOZXx8W10pLmpvaW4oIiwiKSxNbl0pLEhlPSgwLGhuLkQpKE5lKSxIbj0oMCxBbi5KKShmdW5jdGlvbihQZSl7dmFyIFEsb2UsZ2UsZWUsVGU9KFE9TS5nZXRSb3dLZXkoUGUsUGUuaW5kZXgpKT09PW51bGx8fFE9PT12b2lkIDB8fChvZT1RLnRvU3RyaW5nKT09PW51bGx8fG9lPT09dm9pZCAwP3ZvaWQgMDpvZS5jYWxsKFEpLGplPShnZT1NLmdldFJvd0tleShQZSwtMSkpPT09bnVsbHx8Z2U9PT12b2lkIDB8fChlZT1nZS50b1N0cmluZyk9PT1udWxsfHxlZT09PXZvaWQgMD92b2lkIDA6ZWUuY2FsbChnZSksJGU9TmU9PW51bGw/dm9pZCAwOk5lLm1hcChmdW5jdGlvbihibil7cmV0dXJuIGJuPT1udWxsP3ZvaWQgMDpibi50b1N0cmluZygpfSksQWU9KEhlPT1udWxsP3ZvaWQgMDpIZS5tYXAoZnVuY3Rpb24oYm4pe3JldHVybiBibj09bnVsbD92b2lkIDA6Ym4udG9TdHJpbmcoKX0pKXx8W10sTWU9TS50YWJsZU5hbWUmJiEhKEFlIT1udWxsJiZBZS5pbmNsdWRlcyhqZSkpfHwhIShBZSE9bnVsbCYmQWUuaW5jbHVkZXMoVGUpKTtyZXR1cm57cmVjb3JkS2V5OmplLGlzRWRpdGFibGU6TS50YWJsZU5hbWUmJigkZT09bnVsbD92b2lkIDA6JGUuaW5jbHVkZXMoamUpKXx8KCRlPT1udWxsP3ZvaWQgMDokZS5pbmNsdWRlcyhUZSkpLHByZUlzRWRpdGFibGU6TWV9fSksb249KDAsQW4uSikoZnVuY3Rpb24oUGUsUSl7dmFyIG9lLGdlO3JldHVybiBJZS5zaXplPjAmJk1uPT09InNpbmdsZSImJk0ub25seU9uZUxpbmVFZGl0b3JBbGVydE1lc3NhZ2UhPT0hMT8oUmUoTS5vbmx5T25lTGluZUVkaXRvckFsZXJ0TWVzc2FnZXx8cGUuZ2V0TWVzc2FnZSgiZWRpdGFibGVUYWJsZS5vbmx5T25lTGluZUVkaXRvciIsIlx1NTNFQVx1ODBGRFx1NTQwQ1x1NjVGNlx1N0YxNlx1OEY5MVx1NEUwMFx1ODg0QyIpKSwhMSk6KEllLmFkZChQZSksT2UoQXJyYXkuZnJvbShJZSkpLFZlLmN1cnJlbnQ9KG9lPVEhPW51bGw/UTooZ2U9TS5kYXRhU291cmNlKT09PW51bGx8fGdlPT09dm9pZCAwP3ZvaWQgMDpnZS5maW5kKGZ1bmN0aW9uKGVlLFRlKXtyZXR1cm4gTS5nZXRSb3dLZXkoZWUsVGUpPT09UGV9KSkhPT1udWxsJiZvZSE9PXZvaWQgMD9vZTpudWxsLCEwKX0pLHdlPSgwLEFuLkopKGZ1bmN0aW9uKCl7dmFyIFBlPSgwLGZlLlopKCgwLHNlLlopKCkubWFyayhmdW5jdGlvbiBRKG9lLGdlKXt2YXIgZWUsVGU7cmV0dXJuKDAsc2UuWikoKS53cmFwKGZ1bmN0aW9uKCRlKXtmb3IoOzspc3dpdGNoKCRlLnByZXY9JGUubmV4dCl7Y2FzZSAwOmlmKGVlPXhlKG9lKS50b1N0cmluZygpLFRlPWFuLmN1cnJlbnQuZ2V0KGVlKSwhKCFJZS5oYXMoZWUpJiZUZSYmKGdlPT1udWxsfHxnZSkmJk0udGFibGVOYW1lKSl7JGUubmV4dD01O2JyZWFrfXJldHVybiB3ZShUZSwhMSksJGUuYWJydXB0KCJyZXR1cm4iKTtjYXNlIDU6cmV0dXJuIFllJiZZZS5vcHRpb25zLnJlY29yZEtleT09PW9lJiZ2bih2b2lkIDApLEllLmRlbGV0ZShlZSksSWUuZGVsZXRlKHhlKG9lKSksT2UoQXJyYXkuZnJvbShJZSkpLCRlLmFicnVwdCgicmV0dXJuIiwhMCk7Y2FzZSAxMDpjYXNlImVuZCI6cmV0dXJuICRlLnN0b3AoKX19LFEpfSkpO3JldHVybiBmdW5jdGlvbihRLG9lKXtyZXR1cm4gUGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSksam49KDAscy5EKSgoMCxmZS5aKSgoMCxzZS5aKSgpLm1hcmsoZnVuY3Rpb24gUGUoKXt2YXIgUSxvZSxnZSxlZSxUZT1hcmd1bWVudHM7cmV0dXJuKDAsc2UuWikoKS53cmFwKGZ1bmN0aW9uKCRlKXtmb3IoOzspc3dpdGNoKCRlLnByZXY9JGUubmV4dCl7Y2FzZSAwOmZvcihvZT1UZS5sZW5ndGgsZ2U9bmV3IEFycmF5KG9lKSxlZT0wO2VlPG9lO2VlKyspZ2VbZWVdPVRlW2VlXTsoUT1NLm9uVmFsdWVzQ2hhbmdlKT09PW51bGx8fFE9PT12b2lkIDB8fFEuY2FsbC5hcHBseShRLFtNXS5jb25jYXQoZ2UpKTtjYXNlIDI6Y2FzZSJlbmQiOnJldHVybiAkZS5zdG9wKCl9fSxQZSl9KSksNjQpLGE9KDAsQW4uSikoZnVuY3Rpb24oUGUsUSl7dmFyIG9lO2lmKE0ub25WYWx1ZXNDaGFuZ2Upe3ZhciBnZT1NLmRhdGFTb3VyY2U7TmU9PW51bGx8fE5lLmZvckVhY2goZnVuY3Rpb24oQWUpe2lmKChZZT09bnVsbD92b2lkIDA6WWUub3B0aW9ucy5yZWNvcmRLZXkpIT09QWUpe3ZhciBNZT1BZS50b1N0cmluZygpLGJuPSgwLHBuLlopKFEsW00udGFibGVOYW1lfHwiIixNZV0uZmxhdCgxKS5maWx0ZXIoZnVuY3Rpb24oV2Upe3JldHVybiBXZXx8V2U9PT0wfSkpO2JuJiYoZ2U9VG4oe2RhdGE6Z2UsZ2V0Um93S2V5Ok0uZ2V0Um93S2V5LHJvdzpibixrZXk6TWUsY2hpbGRyZW5Db2x1bW5OYW1lOk0uY2hpbGRyZW5Db2x1bW5OYW1lfHwiY2hpbGRyZW4ifSwidXBkYXRlIikpfX0pO3ZhciBlZT1QZSxUZT0ob2U9T2JqZWN0LmtleXMoZWV8fHt9KS5wb3AoKSk9PT1udWxsfHxvZT09PXZvaWQgMD92b2lkIDA6b2UudG9TdHJpbmcoKSxqZT0oMCxxLlopKCgwLHEuWikoe30sWWU9PW51bGw/dm9pZCAwOlllLmRlZmF1bHRWYWx1ZSksKDAscG4uWikoUSxbTS50YWJsZU5hbWV8fCIiLFRlLnRvU3RyaW5nKCldLmZsYXQoMSkuZmlsdGVyKGZ1bmN0aW9uKEFlKXtyZXR1cm4gQWV8fEFlPT09MH0pKSksJGU9YW4uY3VycmVudC5oYXMoeGUoVGUpKT9nZS5maW5kKGZ1bmN0aW9uKEFlLE1lKXt2YXIgYm4sV2U9KGJuPU0uZ2V0Um93S2V5KEFlLE1lKSk9PT1udWxsfHxibj09PXZvaWQgMD92b2lkIDA6Ym4udG9TdHJpbmcoKTtyZXR1cm4gV2U9PT1UZX0pOmplO2puLnJ1bigkZXx8amUsZ2UpfX0pLGY9KDAsQm4udXNlUmVmKShuZXcgTWFwKTsoMCxCbi51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7Zi5jdXJyZW50LmZvckVhY2goZnVuY3Rpb24oUGUsUSl7SWUuaGFzKFEpfHxmLmN1cnJlbnQuZGVsZXRlKFEpfSl9LFtmLEllXSk7dmFyIGo9KDAsQW4uSikoZnVuY3Rpb24oKXt2YXIgUGU9KDAsZmUuWikoKDAsc2UuWikoKS5tYXJrKGZ1bmN0aW9uIFEob2UsZ2Upe3ZhciBlZSxUZSxqZSwkZTtyZXR1cm4oMCxzZS5aKSgpLndyYXAoZnVuY3Rpb24oTWUpe2Zvcig7Oylzd2l0Y2goTWUucHJldj1NZS5uZXh0KXtjYXNlIDA6aWYoZWU9eGUob2UpLFRlPWFuLmN1cnJlbnQuZ2V0KG9lLnRvU3RyaW5nKCkpLCEoIUllLmhhcyhlZSkmJlRlJiYoZ2U9PW51bGx8fGdlKSYmTS50YWJsZU5hbWUpKXtNZS5uZXh0PTY7YnJlYWt9cmV0dXJuIE1lLm5leHQ9NSxqKFRlLCExKTtjYXNlIDU6cmV0dXJuIE1lLmFicnVwdCgicmV0dXJuIixNZS5zZW50KTtjYXNlIDY6cmV0dXJuIGplPWYuY3VycmVudC5nZXQoZWUpfHxmLmN1cnJlbnQuZ2V0KGVlLnRvU3RyaW5nKCkpLE1lLnByZXY9NyxNZS5uZXh0PTEwLGplPT1udWxsfHwoJGU9amUuY3VycmVudCk9PT1udWxsfHwkZT09PXZvaWQgMD92b2lkIDA6JGUuc2F2ZSgpO2Nhc2UgMTA6TWUubmV4dD0xNTticmVhaztjYXNlIDEyOnJldHVybiBNZS5wcmV2PTEyLE1lLnQwPU1lLmNhdGNoKDcpLE1lLmFicnVwdCgicmV0dXJuIiwhMSk7Y2FzZSAxNTpyZXR1cm4gSWUuZGVsZXRlKGVlKSxJZS5kZWxldGUoZWUudG9TdHJpbmcoKSksT2UoQXJyYXkuZnJvbShJZSkpLE1lLmFicnVwdCgicmV0dXJuIiwhMCk7Y2FzZSAxOTpjYXNlImVuZCI6cmV0dXJuIE1lLnN0b3AoKX19LFEsbnVsbCxbWzcsMTJdXSl9KSk7cmV0dXJuIGZ1bmN0aW9uKFEsb2Upe3JldHVybiBQZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpKSxEPSgwLEFuLkopKGZ1bmN0aW9uKFBlLFEpe2lmKFEhPW51bGwmJlEucGFyZW50S2V5JiYhYW4uY3VycmVudC5oYXMoeGUoUT09bnVsbD92b2lkIDA6US5wYXJlbnRLZXkpLnRvU3RyaW5nKCkpKXJldHVybiBjb25zb2xlLndhcm4oImNhbid0IGZpbmQgcmVjb3JkIGJ5IGtleSIsUT09bnVsbD92b2lkIDA6US5wYXJlbnRLZXkpLCExO2lmKFNuLmN1cnJlbnQmJk0ub25seUFkZE9uZUxpbmVBbGVydE1lc3NhZ2UhPT0hMSlyZXR1cm4gUmUoTS5vbmx5QWRkT25lTGluZUFsZXJ0TWVzc2FnZXx8cGUuZ2V0TWVzc2FnZSgiZWRpdGFibGVUYWJsZS5vbmx5QWRkT25lTGluZSIsIlx1NTNFQVx1ODBGRFx1NjVCMFx1NTg5RVx1NEUwMFx1ODg0QyIpKSwhMTtpZihJZS5zaXplPjAmJk1uPT09InNpbmdsZSImJk0ub25seU9uZUxpbmVFZGl0b3JBbGVydE1lc3NhZ2UhPT0hMSlyZXR1cm4gUmUoTS5vbmx5T25lTGluZUVkaXRvckFsZXJ0TWVzc2FnZXx8cGUuZ2V0TWVzc2FnZSgiZWRpdGFibGVUYWJsZS5vbmx5T25lTGluZUVkaXRvciIsIlx1NTNFQVx1ODBGRFx1NTQwQ1x1NjVGNlx1N0YxNlx1OEY5MVx1NEUwMFx1ODg0QyIpKSwhMTt2YXIgb2U9TS5nZXRSb3dLZXkoUGUsLTEpO2lmKCFvZSYmb2UhPT0wKXRocm93KDAsdW4uRVQpKCEhb2UsYFx1OEJGN1x1OEJCRVx1N0Y2RSByZWNvcmRDcmVhdG9yUHJvcHMucmVjb3JkIFx1NUU3Nlx1OEZENFx1NTZERVx1NEUwMFx1NEUyQVx1NTUyRlx1NEUwMFx1NzY4NGtleSAgCisgIGh0dHBzOi8vcHJvY29tcG9uZW50cy5hbnQuZGVzaWduL2NvbXBvbmVudHMvZWRpdGFibGUtdGFibGUjZWRpdGFibGUtJUU2JTk2JUIwJUU1JUJCJUJBJUU4JUExJThDYCksbmV3IEVycm9yKCJcdThCRjdcdThCQkVcdTdGNkUgcmVjb3JkQ3JlYXRvclByb3BzLnJlY29yZCBcdTVFNzZcdThGRDRcdTU2REVcdTRFMDBcdTRFMkFcdTU1MkZcdTRFMDBcdTc2ODRrZXkiKTtpZihJZS5hZGQob2UpLE9lKEFycmF5LmZyb20oSWUpKSwoUT09bnVsbD92b2lkIDA6US5uZXdSZWNvcmRUeXBlKT09PSJkYXRhU291cmNlInx8TS50YWJsZU5hbWUpe3ZhciBnZSxlZT17ZGF0YTpNLmRhdGFTb3VyY2UsZ2V0Um93S2V5Ok0uZ2V0Um93S2V5LHJvdzooMCxxLlopKCgwLHEuWikoe30sUGUpLHt9LHttYXBfcm93X3BhcmVudEtleTpRIT1udWxsJiZRLnBhcmVudEtleT8oZ2U9eGUoUT09bnVsbD92b2lkIDA6US5wYXJlbnRLZXkpKT09PW51bGx8fGdlPT09dm9pZCAwP3ZvaWQgMDpnZS50b1N0cmluZygpOnZvaWQgMH0pLGtleTpvZSxjaGlsZHJlbkNvbHVtbk5hbWU6TS5jaGlsZHJlbkNvbHVtbk5hbWV8fCJjaGlsZHJlbiJ9O00uc2V0RGF0YVNvdXJjZShUbihlZSwoUT09bnVsbD92b2lkIDA6US5wb3NpdGlvbik9PT0idG9wIj8idG9wIjoidXBkYXRlIikpfWVsc2Ugdm4oe2RlZmF1bHRWYWx1ZTpQZSxvcHRpb25zOigwLHEuWikoKDAscS5aKSh7fSxRKSx7fSx7cmVjb3JkS2V5Om9lfSl9KTtyZXR1cm4hMH0pLG1lPShNPT1udWxsP3ZvaWQgMDpNLnNhdmVUZXh0KXx8cGUuZ2V0TWVzc2FnZSgiZWRpdGFibGVUYWJsZS5hY3Rpb24uc2F2ZSIsIlx1NEZERFx1NUI1OCIpLEVlPShNPT1udWxsP3ZvaWQgMDpNLmRlbGV0ZVRleHQpfHxwZS5nZXRNZXNzYWdlKCJlZGl0YWJsZVRhYmxlLmFjdGlvbi5kZWxldGUiLCJcdTUyMjBcdTk2NjQiKSxfZT0oTT09bnVsbD92b2lkIDA6TS5jYW5jZWxUZXh0KXx8cGUuZ2V0TWVzc2FnZSgiZWRpdGFibGVUYWJsZS5hY3Rpb24uY2FuY2VsIiwiXHU1M0Q2XHU2RDg4IiksVW49KDAsQW4uSikoZnVuY3Rpb24oKXt2YXIgUGU9KDAsZmUuWikoKDAsc2UuWikoKS5tYXJrKGZ1bmN0aW9uIFEob2UsZ2UsZWUsVGUpe3ZhciBqZSwkZSxBZSxNZSxibixXZSxhdDtyZXR1cm4oMCxzZS5aKSgpLndyYXAoZnVuY3Rpb24oem4pe2Zvcig7Oylzd2l0Y2goem4ucHJldj16bi5uZXh0KXtjYXNlIDA6cmV0dXJuIHpuLm5leHQ9MixNPT1udWxsfHwoamU9TS5vblNhdmUpPT09bnVsbHx8amU9PT12b2lkIDA/dm9pZCAwOmplLmNhbGwoTSxvZSxnZSxlZSxUZSk7Y2FzZSAyOnJldHVybiBNZT16bi5zZW50LHpuLm5leHQ9NSx3ZShvZSk7Y2FzZSA1OmlmKGJuPVRlfHxTbi5jdXJyZW50fHx7fSxXZT1ibi5vcHRpb25zLCEoIShXZSE9bnVsbCYmV2UucGFyZW50S2V5KSYmKFdlPT1udWxsP3ZvaWQgMDpXZS5yZWNvcmRLZXkpPT09b2UpKXt6bi5uZXh0PTk7YnJlYWt9cmV0dXJuKFdlPT1udWxsP3ZvaWQgMDpXZS5wb3NpdGlvbik9PT0idG9wIj9NLnNldERhdGFTb3VyY2UoW2dlXS5jb25jYXQoKDAsTC5aKShNLmRhdGFTb3VyY2UpKSk6TS5zZXREYXRhU291cmNlKFtdLmNvbmNhdCgoMCxMLlopKE0uZGF0YVNvdXJjZSksW2dlXSkpLHpuLmFicnVwdCgicmV0dXJuIixNZSk7Y2FzZSA5OnJldHVybiBhdD17ZGF0YTpNLmRhdGFTb3VyY2UsZ2V0Um93S2V5Ok0uZ2V0Um93S2V5LHJvdzpXZT8oMCxxLlopKCgwLHEuWikoe30sZ2UpLHt9LHttYXBfcm93X3BhcmVudEtleTooJGU9eGUoKEFlPVdlPT1udWxsP3ZvaWQgMDpXZS5wYXJlbnRLZXkpIT09bnVsbCYmQWUhPT12b2lkIDA/QWU6IiIpKT09PW51bGx8fCRlPT09dm9pZCAwP3ZvaWQgMDokZS50b1N0cmluZygpfSk6Z2Usa2V5Om9lLGNoaWxkcmVuQ29sdW1uTmFtZTpNLmNoaWxkcmVuQ29sdW1uTmFtZXx8ImNoaWxkcmVuIn0sTS5zZXREYXRhU291cmNlKFRuKGF0LChXZT09bnVsbD92b2lkIDA6V2UucG9zaXRpb24pPT09InRvcCI/InRvcCI6InVwZGF0ZSIpKSx6bi5uZXh0PTEzLHdlKG9lKTtjYXNlIDEzOnJldHVybiB6bi5hYnJ1cHQoInJldHVybiIsTWUpO2Nhc2UgMTQ6Y2FzZSJlbmQiOnJldHVybiB6bi5zdG9wKCl9fSxRKX0pKTtyZXR1cm4gZnVuY3Rpb24oUSxvZSxnZSxlZSl7cmV0dXJuIFBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCkpLHNuPSgwLEFuLkopKGZ1bmN0aW9uKCl7dmFyIFBlPSgwLGZlLlopKCgwLHNlLlopKCkubWFyayhmdW5jdGlvbiBRKG9lLGdlKXt2YXIgZWUsVGUsamU7cmV0dXJuKDAsc2UuWikoKS53cmFwKGZ1bmN0aW9uKEFlKXtmb3IoOzspc3dpdGNoKEFlLnByZXY9QWUubmV4dCl7Y2FzZSAwOnJldHVybiBUZT17ZGF0YTpNLmRhdGFTb3VyY2UsZ2V0Um93S2V5Ok0uZ2V0Um93S2V5LHJvdzpnZSxrZXk6b2UsY2hpbGRyZW5Db2x1bW5OYW1lOk0uY2hpbGRyZW5Db2x1bW5OYW1lfHwiY2hpbGRyZW4ifSxBZS5uZXh0PTMsTT09bnVsbHx8KGVlPU0ub25EZWxldGUpPT09bnVsbHx8ZWU9PT12b2lkIDA/dm9pZCAwOmVlLmNhbGwoTSxvZSxnZSk7Y2FzZSAzOnJldHVybiBqZT1BZS5zZW50LEFlLm5leHQ9Nix3ZShvZSwhMSk7Y2FzZSA2OnJldHVybiBNLnNldERhdGFTb3VyY2UoVG4oVGUsImRlbGV0ZSIpKSxBZS5hYnJ1cHQoInJldHVybiIsamUpO2Nhc2UgODpjYXNlImVuZCI6cmV0dXJuIEFlLnN0b3AoKX19LFEpfSkpO3JldHVybiBmdW5jdGlvbihRLG9lKXtyZXR1cm4gUGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSksTm49KDAsQW4uSikoZnVuY3Rpb24oKXt2YXIgUGU9KDAsZmUuWikoKDAsc2UuWikoKS5tYXJrKGZ1bmN0aW9uIFEob2UsZ2UsZWUsVGUpe3ZhciBqZSwkZTtyZXR1cm4oMCxzZS5aKSgpLndyYXAoZnVuY3Rpb24oTWUpe2Zvcig7Oylzd2l0Y2goTWUucHJldj1NZS5uZXh0KXtjYXNlIDA6cmV0dXJuIE1lLm5leHQ9MixNPT1udWxsfHwoamU9TS5vbkNhbmNlbCk9PT1udWxsfHxqZT09PXZvaWQgMD92b2lkIDA6amUuY2FsbChNLG9lLGdlLGVlLFRlKTtjYXNlIDI6cmV0dXJuICRlPU1lLnNlbnQsTWUuYWJydXB0KCJyZXR1cm4iLCRlKTtjYXNlIDQ6Y2FzZSJlbmQiOnJldHVybiBNZS5zdG9wKCl9fSxRKX0pKTtyZXR1cm4gZnVuY3Rpb24oUSxvZSxnZSxlZSl7cmV0dXJuIFBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCkpLEtuPU0uYWN0aW9uUmVuZGVyJiZ0eXBlb2YgTS5hY3Rpb25SZW5kZXI9PSJmdW5jdGlvbiIsX249S24/TS5hY3Rpb25SZW5kZXI6ZnVuY3Rpb24oKXt9LGV0PSgwLEFuLkopKF9uKSxudD1mdW5jdGlvbihRKXt2YXIgb2U9TS5nZXRSb3dLZXkoUSxRLmluZGV4KSxnZT17c2F2ZVRleHQ6bWUsY2FuY2VsVGV4dDpfZSxkZWxldGVUZXh0OkVlLGFkZEVkaXRSZWNvcmQ6RCxyZWNvcmRLZXk6b2UsY2FuY2VsRWRpdGFibGU6d2UsaW5kZXg6US5pbmRleCx0YWJsZU5hbWU6TS50YWJsZU5hbWUsbmV3TGluZUNvbmZpZzpZZSxvbkNhbmNlbDpObixvbkRlbGV0ZTpzbixvblNhdmU6VW4sZWRpdGFibGVLZXlzOk5lLHNldEVkaXRhYmxlUm93S2V5czpPZSxwcmVFZGl0Um93UmVmOlZlLGRlbGV0ZVBvcGNvbmZpcm1NZXNzYWdlOk0uZGVsZXRlUG9wY29uZmlybU1lc3NhZ2V8fCIiLmNvbmNhdChwZS5nZXRNZXNzYWdlKCJkZWxldGVUaGlzTGluZSIsIlx1NTIyMFx1OTY2NFx1NkI2NFx1OTg3OSIpLCI/Iil9LGVlPWtuKFEsZ2UpO3JldHVybiBNLnRhYmxlTmFtZT9mLmN1cnJlbnQuc2V0KGFuLmN1cnJlbnQuZ2V0KHhlKG9lKSl8fHhlKG9lKSxlZS5zYXZlUmVmKTpmLmN1cnJlbnQuc2V0KHhlKG9lKSxlZS5zYXZlUmVmKSxLbj9ldChRLGdlLHtzYXZlOmVlLnNhdmUsZGVsZXRlOmVlLmRlbGV0ZSxjYW5jZWw6ZWUuY2FuY2VsfSk6W2VlLnNhdmUsZWUuZGVsZXRlLGVlLmNhbmNlbF19O3JldHVybntlZGl0YWJsZUtleXM6TmUsc2V0RWRpdGFibGVSb3dLZXlzOk9lLGlzRWRpdGFibGU6SG4sYWN0aW9uUmVuZGVyOm50LHN0YXJ0RWRpdGFibGU6b24sY2FuY2VsRWRpdGFibGU6d2UsYWRkRWRpdFJlY29yZDpELHNhdmVFZGl0YWJsZTpqLG5ld0xpbmVSZWNvcmQ6WWUscHJlRWRpdGFibGVLZXlzOkhlLG9uVmFsdWVzQ2hhbmdlOmEsZ2V0UmVhbEluZGV4Ok0uZ2V0UmVhbEluZGV4fX19LDg2NzM4OmZ1bmN0aW9uKFB0LFhuLHYpe3YuZChYbix7WjpmdW5jdGlvbigpe3JldHVybiBGbn19KTt2YXIgTD12KDY3Mjk0KSxzZT12KDIxNjQwKSxabj12KDkzOTY3KSxmZT12Lm4oWm4pLHA9digyMTc3MCksbW49dig5ODQyMyksbD12KDUzMTI0KSxxPXYoNTUyNDEpLGVuPXYoODY3NDMpLGduPXYoODE2NDMpLGRuPXYoODM2MjIpLEluPXYoMzM2NzEpLFZuPXYoMTAxMTApLEduPXYoMjQ0NTcpLFplPXYoNjYzMzApLHFlPXYoODM1NTkpO2NvbnN0IHBuPXVlPT57Y29uc3R7Y29tcG9uZW50Q2xzOnplLGljb25DbHM6a2UsYW50Q2xzOlJlLHpJbmRleFBvcHVwOnhlLGNvbG9yVGV4dDpUbixjb2xvcldhcm5pbmc6Sm4sbWFyZ2luWFhTOnduLG1hcmdpblhTOnFuLGZvbnRTaXplOmtuLGZvbnRXZWlnaHRTdHJvbmc6c3QsY29sb3JUZXh0SGVhZGluZzpNfT11ZTtyZXR1cm57W3plXTp7ekluZGV4OnhlLFtgJiR7UmV9LXBvcG92ZXJgXTp7Zm9udFNpemU6a259LFtgJHt6ZX0tbWVzc2FnZWBdOnttYXJnaW5Cb3R0b206cW4sZGlzcGxheToiZmxleCIsZmxleFdyYXA6Im5vd3JhcCIsYWxpZ25JdGVtczoic3RhcnQiLFtgPiAke3plfS1tZXNzYWdlLWljb24gJHtrZX1gXTp7Y29sb3I6Sm4sZm9udFNpemU6a24sbGluZUhlaWdodDoxLG1hcmdpbklubGluZUVuZDpxbn0sW2Ake3plfS10aXRsZWBdOntmb250V2VpZ2h0OnN0LGNvbG9yOk0sIiY6b25seS1jaGlsZCI6e2ZvbnRXZWlnaHQ6Im5vcm1hbCJ9fSxbYCR7emV9LWRlc2NyaXB0aW9uYF06e21hcmdpblRvcDp3bixjb2xvcjpUbn19LFtgJHt6ZX0tYnV0dG9uc2BdOnt0ZXh0QWxpZ246ImVuZCIsd2hpdGVTcGFjZToibm93cmFwIixidXR0b246e21hcmdpbklubGluZVN0YXJ0OnFufX19fX0sZD11ZT0+e2NvbnN0e3pJbmRleFBvcHVwQmFzZTp6ZX09dWU7cmV0dXJue3pJbmRleFBvcHVwOnplKzYwfX07dmFyIHVuPSgwLHFlLkkkKSgiUG9wY29uZmlybSIsdWU9PnBuKHVlKSxkLHtyZXNldFN0eWxlOiExfSksQm49ZnVuY3Rpb24odWUsemUpe3ZhciBrZT17fTtmb3IodmFyIFJlIGluIHVlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh1ZSxSZSkmJnplLmluZGV4T2YoUmUpPDAmJihrZVtSZV09dWVbUmVdKTtpZih1ZSE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciB4ZT0wLFJlPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModWUpO3hlPFJlLmxlbmd0aDt4ZSsrKXplLmluZGV4T2YoUmVbeGVdKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodWUsUmVbeGVdKSYmKGtlW1JlW3hlXV09dWVbUmVbeGVdXSk7cmV0dXJuIGtlfTtjb25zdCBBbj11ZT0+e2NvbnN0e3ByZWZpeENsczp6ZSxva0J1dHRvblByb3BzOmtlLGNhbmNlbEJ1dHRvblByb3BzOlJlLHRpdGxlOnhlLGRlc2NyaXB0aW9uOlRuLGNhbmNlbFRleHQ6Sm4sb2tUZXh0OnduLG9rVHlwZTpxbj0icHJpbWFyeSIsaWNvbjprbj1MLmNyZWF0ZUVsZW1lbnQoc2UuWixudWxsKSxzaG93Q2FuY2VsOnN0PSEwLGNsb3NlOk0sb25Db25maXJtOnBlLG9uQ2FuY2VsOlZlLG9uUG9wdXBDbGljazpybn09dWUse2dldFByZWZpeENsczpubn09TC51c2VDb250ZXh0KGwuRV8pLFtZZV09KDAsVm4uWikoIlBvcGNvbmZpcm0iLEduLlouUG9wY29uZmlybSksdm49KDAsZ24uWikoeGUpLHluPSgwLGduLlopKFRuKTtyZXR1cm4gTC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YCR7emV9LWlubmVyLWNvbnRlbnRgLG9uQ2xpY2s6cm59LEwuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmAke3plfS1tZXNzYWdlYH0sa24mJkwuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpgJHt6ZX0tbWVzc2FnZS1pY29uYH0sa24pLEwuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmAke3plfS1tZXNzYWdlLXRleHRgfSx2biYmTC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YCR7emV9LXRpdGxlYH0sdm4pLHluJiZMLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpgJHt6ZX0tZGVzY3JpcHRpb25gfSx5bikpKSxMLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpgJHt6ZX0tYnV0dG9uc2B9LHN0JiZMLmNyZWF0ZUVsZW1lbnQoZG4uWlAsT2JqZWN0LmFzc2lnbih7b25DbGljazpWZSxzaXplOiJzbWFsbCJ9LFJlKSxKbnx8KFllPT1udWxsP3ZvaWQgMDpZZS5jYW5jZWxUZXh0KSksTC5jcmVhdGVFbGVtZW50KGVuLlose2J1dHRvblByb3BzOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7c2l6ZToic21hbGwifSwoMCxJbi5ueCkocW4pKSxrZSksYWN0aW9uRm46cGUsY2xvc2U6TSxwcmVmaXhDbHM6bm4oImJ0biIpLHF1aXRPbk51bGxpc2hSZXR1cm5WYWx1ZTohMCxlbWl0RXZlbnQ6ITB9LHdufHwoWWU9PW51bGw/dm9pZCAwOlllLm9rVGV4dCkpKSl9O3ZhciBLZT11ZT0+e2NvbnN0e3ByZWZpeENsczp6ZSxwbGFjZW1lbnQ6a2UsY2xhc3NOYW1lOlJlLHN0eWxlOnhlfT11ZSxUbj1Cbih1ZSxbInByZWZpeENscyIsInBsYWNlbWVudCIsImNsYXNzTmFtZSIsInN0eWxlIl0pLHtnZXRQcmVmaXhDbHM6Sm59PUwudXNlQ29udGV4dChsLkVfKSx3bj1KbigicG9wY29uZmlybSIsemUpLFtxbl09dW4od24pO3JldHVybiBxbihMLmNyZWF0ZUVsZW1lbnQoWmUuWlAse3BsYWNlbWVudDprZSxjbGFzc05hbWU6ZmUoKSh3bixSZSksc3R5bGU6eGUsY29udGVudDpMLmNyZWF0ZUVsZW1lbnQoQW4sT2JqZWN0LmFzc2lnbih7cHJlZml4Q2xzOndufSxUbikpfSkpfSx5ZT1mdW5jdGlvbih1ZSx6ZSl7dmFyIGtlPXt9O2Zvcih2YXIgUmUgaW4gdWUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHVlLFJlKSYmemUuaW5kZXhPZihSZSk8MCYmKGtlW1JlXT11ZVtSZV0pO2lmKHVlIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIHhlPTAsUmU9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh1ZSk7eGU8UmUubGVuZ3RoO3hlKyspemUuaW5kZXhPZihSZVt4ZV0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh1ZSxSZVt4ZV0pJiYoa2VbUmVbeGVdXT11ZVtSZVt4ZV1dKTtyZXR1cm4ga2V9O2NvbnN0IFFlPUwuZm9yd2FyZFJlZigodWUsemUpPT57dmFyIGtlLFJlO2NvbnN0e3ByZWZpeENsczp4ZSxwbGFjZW1lbnQ6VG49InRvcCIsdHJpZ2dlcjpKbj0iY2xpY2siLG9rVHlwZTp3bj0icHJpbWFyeSIsaWNvbjpxbj1MLmNyZWF0ZUVsZW1lbnQoc2UuWixudWxsKSxjaGlsZHJlbjprbixvdmVybGF5Q2xhc3NOYW1lOnN0LG9uT3BlbkNoYW5nZTpNLG9uVmlzaWJsZUNoYW5nZTpwZSxvdmVybGF5U3R5bGU6VmUsc3R5bGVzOnJuLGNsYXNzTmFtZXM6bm59PXVlLFllPXllKHVlLFsicHJlZml4Q2xzIiwicGxhY2VtZW50IiwidHJpZ2dlciIsIm9rVHlwZSIsImljb24iLCJjaGlsZHJlbiIsIm92ZXJsYXlDbGFzc05hbWUiLCJvbk9wZW5DaGFuZ2UiLCJvblZpc2libGVDaGFuZ2UiLCJvdmVybGF5U3R5bGUiLCJzdHlsZXMiLCJjbGFzc05hbWVzIl0pLHtnZXRQcmVmaXhDbHM6dm4sY2xhc3NOYW1lOnluLHN0eWxlOkxuLGNsYXNzTmFtZXM6YW4sc3R5bGVzOlNufT0oMCxsLmRqKSgicG9wY29uZmlybSIpLFtNbixFbl09KDAscC5aKSghMSx7dmFsdWU6KGtlPXVlLm9wZW4pIT09bnVsbCYma2UhPT12b2lkIDA/a2U6dWUudmlzaWJsZSxkZWZhdWx0VmFsdWU6KFJlPXVlLmRlZmF1bHRPcGVuKSE9PW51bGwmJlJlIT09dm9pZCAwP1JlOnVlLmRlZmF1bHRWaXNpYmxlfSkseG49KG9uLHdlKT0+e0VuKG9uLCEwKSxwZT09bnVsbHx8cGUob24pLE09PW51bGx8fE0ob24sd2UpfSxsbj1vbj0+e3huKCExLG9uKX0sUG49b249Pnt2YXIgd2U7cmV0dXJuKHdlPXVlLm9uQ29uZmlybSk9PT1udWxsfHx3ZT09PXZvaWQgMD92b2lkIDA6d2UuY2FsbCh2b2lkIDAsb24pfSxVZT1vbj0+e3ZhciB3ZTt4bighMSxvbiksKHdlPXVlLm9uQ2FuY2VsKT09PW51bGx8fHdlPT09dm9pZCAwfHx3ZS5jYWxsKHZvaWQgMCxvbil9LE5lPShvbix3ZSk9Pntjb25zdHtkaXNhYmxlZDpqbj0hMX09dWU7am58fHhuKG9uLHdlKX0sT2U9dm4oInBvcGNvbmZpcm0iLHhlKSxJZT1mZSgpKE9lLHluLHN0LGFuLnJvb3Qsbm49PW51bGw/dm9pZCAwOm5uLnJvb3QpLEhlPWZlKCkoYW4uYm9keSxubj09bnVsbD92b2lkIDA6bm4uYm9keSksW0huXT11bihPZSk7cmV0dXJuIEhuKEwuY3JlYXRlRWxlbWVudChxLlosT2JqZWN0LmFzc2lnbih7fSwoMCxtbi5aKShZZSxbInRpdGxlIl0pLHt0cmlnZ2VyOkpuLHBsYWNlbWVudDpUbixvbk9wZW5DaGFuZ2U6TmUsb3BlbjpNbixyZWY6emUsY2xhc3NOYW1lczp7cm9vdDpJZSxib2R5OkhlfSxzdHlsZXM6e3Jvb3Q6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxTbi5yb290KSxMbiksVmUpLHJuPT1udWxsP3ZvaWQgMDpybi5yb290KSxib2R5Ok9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxTbi5ib2R5KSxybj09bnVsbD92b2lkIDA6cm4uYm9keSl9LGNvbnRlbnQ6TC5jcmVhdGVFbGVtZW50KEFuLE9iamVjdC5hc3NpZ24oe29rVHlwZTp3bixpY29uOnFufSx1ZSx7cHJlZml4Q2xzOk9lLGNsb3NlOmxuLG9uQ29uZmlybTpQbixvbkNhbmNlbDpVZX0pKSwiZGF0YS1wb3BvdmVyLWluamVjdCI6ITB9KSxrbikpfSk7UWUuX0ludGVybmFsUGFuZWxEb05vdFVzZU9yWW91V2lsbEJlRmlyZWQ9S2U7dmFyIEZuPVFlfSw0MjExOTpmdW5jdGlvbihQdCxYbix2KXt2LmQoWG4se1o6ZnVuY3Rpb24oKXtyZXR1cm4gam59fSk7dmFyIEw9dig2NzI5NCksc2U9dig2MzYwNiksWm49dig5NzkzNyksZmU9dig5Mzk2NykscD12Lm4oZmUpLG1uPXYoODc0NjIpLGw9digxNDEzKSxxPXYoNDk0MiksZW49dig5MSksZ249digxNTEwNSksZG49WyJjbGFzc05hbWUiLCJwcmVmaXhDbHMiLCJzdHlsZSIsImFjdGl2ZSIsInN0YXR1cyIsImljb25QcmVmaXgiLCJpY29uIiwid3JhcHBlclN0eWxlIiwic3RlcE51bWJlciIsImRpc2FibGVkIiwiZGVzY3JpcHRpb24iLCJ0aXRsZSIsInN1YlRpdGxlIiwicHJvZ3Jlc3NEb3QiLCJzdGVwSWNvbiIsInRhaWxDb250ZW50IiwiaWNvbnMiLCJzdGVwSW5kZXgiLCJvblN0ZXBDbGljayIsIm9uQ2xpY2siLCJyZW5kZXIiXTtmdW5jdGlvbiBJbihhKXtyZXR1cm4gdHlwZW9mIGE9PSJzdHJpbmcifWZ1bmN0aW9uIFZuKGEpe3ZhciBmLGo9YS5jbGFzc05hbWUsRD1hLnByZWZpeENscyxtZT1hLnN0eWxlLEVlPWEuYWN0aXZlLF9lPWEuc3RhdHVzLFVuPWEuaWNvblByZWZpeCxzbj1hLmljb24sTm49YS53cmFwcGVyU3R5bGUsS249YS5zdGVwTnVtYmVyLF9uPWEuZGlzYWJsZWQsZXQ9YS5kZXNjcmlwdGlvbixudD1hLnRpdGxlLFBlPWEuc3ViVGl0bGUsUT1hLnByb2dyZXNzRG90LG9lPWEuc3RlcEljb24sZ2U9YS50YWlsQ29udGVudCxlZT1hLmljb25zLFRlPWEuc3RlcEluZGV4LGplPWEub25TdGVwQ2xpY2ssJGU9YS5vbkNsaWNrLEFlPWEucmVuZGVyLE1lPSgwLGVuLlopKGEsZG4pLGJuPSEhamUmJiFfbixXZT17fTtibiYmKFdlLnJvbGU9ImJ1dHRvbiIsV2UudGFiSW5kZXg9MCxXZS5vbkNsaWNrPWZ1bmN0aW9uKHV0KXskZT09bnVsbHx8JGUodXQpLGplKFRlKX0sV2Uub25LZXlEb3duPWZ1bmN0aW9uKHV0KXt2YXIgWW49dXQud2hpY2g7KFluPT09Z24uWi5FTlRFUnx8WW49PT1nbi5aLlNQQUNFKSYmamUoVGUpfSk7dmFyIGF0PWZ1bmN0aW9uKCl7dmFyIFluLCRuLGh0PXAoKSgiIi5jb25jYXQoRCwiLWljb24iKSwiIi5jb25jYXQoVW4sImljb24iKSwoWW49e30sKDAscS5aKShZbiwiIi5jb25jYXQoVW4sImljb24tIikuY29uY2F0KHNuKSxzbiYmSW4oc24pKSwoMCxxLlopKFluLCIiLmNvbmNhdChVbiwiaWNvbi1jaGVjayIpLCFzbiYmX2U9PT0iZmluaXNoIiYmKGVlJiYhZWUuZmluaXNofHwhZWUpKSwoMCxxLlopKFluLCIiLmNvbmNhdChVbiwiaWNvbi1jcm9zcyIpLCFzbiYmX2U9PT0iZXJyb3IiJiYoZWUmJiFlZS5lcnJvcnx8IWVlKSksWW4pKSx5dD1MLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6IiIuY29uY2F0KEQsIi1pY29uLWRvdCIpfSk7cmV0dXJuIFE/dHlwZW9mIFE9PSJmdW5jdGlvbiI/JG49TC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiIiLmNvbmNhdChELCItaWNvbiIpfSxRKHl0LHtpbmRleDpLbi0xLHN0YXR1czpfZSx0aXRsZTpudCxkZXNjcmlwdGlvbjpldH0pKTokbj1MLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6IiIuY29uY2F0KEQsIi1pY29uIil9LHl0KTpzbiYmIUluKHNuKT8kbj1MLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6IiIuY29uY2F0KEQsIi1pY29uIil9LHNuKTplZSYmZWUuZmluaXNoJiZfZT09PSJmaW5pc2giPyRuPUwuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToiIi5jb25jYXQoRCwiLWljb24iKX0sZWUuZmluaXNoKTplZSYmZWUuZXJyb3ImJl9lPT09ImVycm9yIj8kbj1MLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6IiIuY29uY2F0KEQsIi1pY29uIil9LGVlLmVycm9yKTpzbnx8X2U9PT0iZmluaXNoInx8X2U9PT0iZXJyb3IiPyRuPUwuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpodH0pOiRuPUwuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToiIi5jb25jYXQoRCwiLWljb24iKX0sS24pLG9lJiYoJG49b2Uoe2luZGV4OktuLTEsc3RhdHVzOl9lLHRpdGxlOm50LGRlc2NyaXB0aW9uOmV0LG5vZGU6JG59KSksJG59LHZ0PV9lfHwid2FpdCIsem49cCgpKCIiLmNvbmNhdChELCItaXRlbSIpLCIiLmNvbmNhdChELCItaXRlbS0iKS5jb25jYXQodnQpLGosKGY9e30sKDAscS5aKShmLCIiLmNvbmNhdChELCItaXRlbS1jdXN0b20iKSxzbiksKDAscS5aKShmLCIiLmNvbmNhdChELCItaXRlbS1hY3RpdmUiKSxFZSksKDAscS5aKShmLCIiLmNvbmNhdChELCItaXRlbS1kaXNhYmxlZCIpLF9uPT09ITApLGYpKSxwdD0oMCxsLlopKHt9LG1lKSxmdD1MLmNyZWF0ZUVsZW1lbnQoImRpdiIsKDAsbW4uWikoe30sTWUse2NsYXNzTmFtZTp6bixzdHlsZTpwdH0pLEwuY3JlYXRlRWxlbWVudCgiZGl2IiwoMCxtbi5aKSh7b25DbGljazokZX0sV2Use2NsYXNzTmFtZToiIi5jb25jYXQoRCwiLWl0ZW0tY29udGFpbmVyIil9KSxMLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiIi5jb25jYXQoRCwiLWl0ZW0tdGFpbCIpfSxnZSksTC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KEQsIi1pdGVtLWljb24iKX0sYXQoKSksTC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KEQsIi1pdGVtLWNvbnRlbnQiKX0sTC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KEQsIi1pdGVtLXRpdGxlIil9LG50LFBlJiZMLmNyZWF0ZUVsZW1lbnQoImRpdiIse3RpdGxlOnR5cGVvZiBQZT09InN0cmluZyI/UGU6dm9pZCAwLGNsYXNzTmFtZToiIi5jb25jYXQoRCwiLWl0ZW0tc3VidGl0bGUiKX0sUGUpKSxldCYmTC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KEQsIi1pdGVtLWRlc2NyaXB0aW9uIil9LGV0KSkpKTtyZXR1cm4gQWUmJihmdD1BZShmdCl8fG51bGwpLGZ0fXZhciBHbj1WbixaZT1bInByZWZpeENscyIsInN0eWxlIiwiY2xhc3NOYW1lIiwiY2hpbGRyZW4iLCJkaXJlY3Rpb24iLCJ0eXBlIiwibGFiZWxQbGFjZW1lbnQiLCJpY29uUHJlZml4Iiwic3RhdHVzIiwic2l6ZSIsImN1cnJlbnQiLCJwcm9ncmVzc0RvdCIsInN0ZXBJY29uIiwiaW5pdGlhbCIsImljb25zIiwib25DaGFuZ2UiLCJpdGVtUmVuZGVyIiwiaXRlbXMiXTtmdW5jdGlvbiBxZShhKXt2YXIgZixqPWEucHJlZml4Q2xzLEQ9aj09PXZvaWQgMD8icmMtc3RlcHMiOmosbWU9YS5zdHlsZSxFZT1tZT09PXZvaWQgMD97fTptZSxfZT1hLmNsYXNzTmFtZSxVbj1hLmNoaWxkcmVuLHNuPWEuZGlyZWN0aW9uLE5uPXNuPT09dm9pZCAwPyJob3Jpem9udGFsIjpzbixLbj1hLnR5cGUsX249S249PT12b2lkIDA/ImRlZmF1bHQiOktuLGV0PWEubGFiZWxQbGFjZW1lbnQsbnQ9ZXQ9PT12b2lkIDA/Imhvcml6b250YWwiOmV0LFBlPWEuaWNvblByZWZpeCxRPVBlPT09dm9pZCAwPyJyYyI6UGUsb2U9YS5zdGF0dXMsZ2U9b2U9PT12b2lkIDA/InByb2Nlc3MiOm9lLGVlPWEuc2l6ZSxUZT1hLmN1cnJlbnQsamU9VGU9PT12b2lkIDA/MDpUZSwkZT1hLnByb2dyZXNzRG90LEFlPSRlPT09dm9pZCAwPyExOiRlLE1lPWEuc3RlcEljb24sYm49YS5pbml0aWFsLFdlPWJuPT09dm9pZCAwPzA6Ym4sYXQ9YS5pY29ucyx2dD1hLm9uQ2hhbmdlLHpuPWEuaXRlbVJlbmRlcixwdD1hLml0ZW1zLGZ0PXB0PT09dm9pZCAwP1tdOnB0LHV0PSgwLGVuLlopKGEsWmUpLFluPV9uPT09Im5hdmlnYXRpb24iLCRuPV9uPT09ImlubGluZSIsaHQ9JG58fEFlLHl0PSRuPyJob3Jpem9udGFsIjpObixHdD0kbj92b2lkIDA6ZWUsU3Q9aHQ/InZlcnRpY2FsIjpudCxXdD1wKCkoRCwiIi5jb25jYXQoRCwiLSIpLmNvbmNhdCh5dCksX2UsKGY9e30sKDAscS5aKShmLCIiLmNvbmNhdChELCItIikuY29uY2F0KEd0KSxHdCksKDAscS5aKShmLCIiLmNvbmNhdChELCItbGFiZWwtIikuY29uY2F0KFN0KSx5dD09PSJob3Jpem9udGFsIiksKDAscS5aKShmLCIiLmNvbmNhdChELCItZG90IiksISFodCksKDAscS5aKShmLCIiLmNvbmNhdChELCItbmF2aWdhdGlvbiIpLFluKSwoMCxxLlopKGYsIiIuY29uY2F0KEQsIi1pbmxpbmUiKSwkbiksZikpLHJyPWZ1bmN0aW9uKFJ0KXt2dCYmamUhPT1SdCYmdnQoUnQpfSxqdD1mdW5jdGlvbihSdCxIdCl7dmFyIGx0PSgwLGwuWikoe30sUnQpLEl0PVdlK0h0O3JldHVybiBnZT09PSJlcnJvciImJkh0PT09amUtMSYmKGx0LmNsYXNzTmFtZT0iIi5jb25jYXQoRCwiLW5leHQtZXJyb3IiKSksbHQuc3RhdHVzfHwoSXQ9PT1qZT9sdC5zdGF0dXM9Z2U6SXQ8amU/bHQuc3RhdHVzPSJmaW5pc2giOmx0LnN0YXR1cz0id2FpdCIpLCRuJiYobHQuaWNvbj12b2lkIDAsbHQuc3ViVGl0bGU9dm9pZCAwKSwhbHQucmVuZGVyJiZ6biYmKGx0LnJlbmRlcj1mdW5jdGlvbihhcil7cmV0dXJuIHpuKGx0LGFyKX0pLEwuY3JlYXRlRWxlbWVudChHbiwoMCxtbi5aKSh7fSxsdCx7YWN0aXZlOkl0PT09amUsc3RlcE51bWJlcjpJdCsxLHN0ZXBJbmRleDpJdCxrZXk6SXQscHJlZml4Q2xzOkQsaWNvblByZWZpeDpRLHdyYXBwZXJTdHlsZTpFZSxwcm9ncmVzc0RvdDpodCxzdGVwSWNvbjpNZSxpY29uczphdCxvblN0ZXBDbGljazp2dCYmcnJ9KSl9O3JldHVybiBMLmNyZWF0ZUVsZW1lbnQoImRpdiIsKDAsbW4uWikoe2NsYXNzTmFtZTpXdCxzdHlsZTpFZX0sdXQpLGZ0LmZpbHRlcihmdW5jdGlvbihGdCl7cmV0dXJuIEZ0fSkubWFwKGp0KSl9cWUuU3RlcD1Hbjt2YXIgcG49cWUsZD1wbix1bj12KDUzMTI0KSxCbj12KDk4Njc1KSxBbj12KDI1Mzc4KSxzPXYoMzg3MDMpLEtlPXYoODMwNjIpLHllPXYoMTE1NjgpLGhuPXYoMTQ3NDcpLFFlPXYoODM1NTkpLEZuPXYoODMyNjIpLHplPWE9Pntjb25zdHtjb21wb25lbnRDbHM6ZixjdXN0b21JY29uVG9wOmosY3VzdG9tSWNvblNpemU6RCxjdXN0b21JY29uRm9udFNpemU6bWV9PWE7cmV0dXJue1tgJHtmfS1pdGVtLWN1c3RvbWBdOntbYD4gJHtmfS1pdGVtLWNvbnRhaW5lciA+ICR7Zn0taXRlbS1pY29uYF06e2hlaWdodDoiYXV0byIsYmFja2dyb3VuZDoibm9uZSIsYm9yZGVyOjAsW2A+ICR7Zn0taWNvbmBdOnt0b3A6aix3aWR0aDpELGhlaWdodDpELGZvbnRTaXplOm1lLGxpbmVIZWlnaHQ6KDAseWUuYmYpKEQpfX19LFtgJjpub3QoJHtmfS12ZXJ0aWNhbClgXTp7W2Ake2Z9LWl0ZW0tY3VzdG9tYF06e1tgJHtmfS1pdGVtLWljb25gXTp7d2lkdGg6ImF1dG8iLGJhY2tncm91bmQ6Im5vbmUifX19fX0sUmU9YT0+e2NvbnN0e2NvbXBvbmVudENsczpmfT1hLGo9YCR7Zn0taXRlbWA7cmV0dXJue1tgJHtmfS1ob3Jpem9udGFsYF06e1tgJHtqfS10YWlsYF06e3RyYW5zZm9ybToidHJhbnNsYXRlWSgtNTAlKSJ9fX19LFRuPWE9Pntjb25zdHtjb21wb25lbnRDbHM6ZixpbmxpbmVEb3RTaXplOmosaW5saW5lVGl0bGVDb2xvcjpELGlubGluZVRhaWxDb2xvcjptZX09YSxFZT1hLmNhbGMoYS5wYWRkaW5nWFMpLmFkZChhLmxpbmVXaWR0aCkuZXF1YWwoKSxfZT17W2Ake2Z9LWl0ZW0tY29udGFpbmVyICR7Zn0taXRlbS1jb250ZW50ICR7Zn0taXRlbS10aXRsZWBdOntjb2xvcjpEfX07cmV0dXJue1tgJiR7Zn0taW5saW5lYF06e3dpZHRoOiJhdXRvIixkaXNwbGF5OiJpbmxpbmUtZmxleCIsW2Ake2Z9LWl0ZW1gXTp7ZmxleDoibm9uZSIsIiYtY29udGFpbmVyIjp7cGFkZGluZzpgJHsoMCx5ZS5iZikoRWUpfSAkeygwLHllLmJmKShhLnBhZGRpbmdYWFMpfSAwYCxtYXJnaW46YDAgJHsoMCx5ZS5iZikoYS5jYWxjKGEubWFyZ2luWFhTKS5kaXYoMikuZXF1YWwoKSl9YCxib3JkZXJSYWRpdXM6YS5ib3JkZXJSYWRpdXNTTSxjdXJzb3I6InBvaW50ZXIiLHRyYW5zaXRpb246YGJhY2tncm91bmQtY29sb3IgJHthLm1vdGlvbkR1cmF0aW9uTWlkfWAsIiY6aG92ZXIiOntiYWNrZ3JvdW5kOmEuY29udHJvbEl0ZW1CZ0hvdmVyfSwiJltyb2xlPSdidXR0b24nXTpob3ZlciI6e29wYWNpdHk6MX19LCImLWljb24iOnt3aWR0aDpqLGhlaWdodDpqLG1hcmdpbklubGluZVN0YXJ0OmBjYWxjKDUwJSAtICR7KDAseWUuYmYpKGEuY2FsYyhqKS5kaXYoMikuZXF1YWwoKSl9KWAsW2A+ICR7Zn0taWNvbmBdOnt0b3A6MH0sW2Ake2Z9LWljb24tZG90YF06e2JvcmRlclJhZGl1czphLmNhbGMoYS5mb250U2l6ZVNNKS5kaXYoNCkuZXF1YWwoKSwiJjo6YWZ0ZXIiOntkaXNwbGF5OiJub25lIn19fSwiJi1jb250ZW50Ijp7d2lkdGg6ImF1dG8iLG1hcmdpblRvcDphLmNhbGMoYS5tYXJnaW5YUykuc3ViKGEubGluZVdpZHRoKS5lcXVhbCgpfSwiJi10aXRsZSI6e2NvbG9yOkQsZm9udFNpemU6YS5mb250U2l6ZVNNLGxpbmVIZWlnaHQ6YS5saW5lSGVpZ2h0U00sZm9udFdlaWdodDoibm9ybWFsIixtYXJnaW5Cb3R0b206YS5jYWxjKGEubWFyZ2luWFhTKS5kaXYoMikuZXF1YWwoKX0sIiYtZGVzY3JpcHRpb24iOntkaXNwbGF5OiJub25lIn0sIiYtdGFpbCI6e21hcmdpbklubGluZVN0YXJ0OjAsdG9wOmEuY2FsYyhqKS5kaXYoMikuYWRkKEVlKS5lcXVhbCgpLHRyYW5zZm9ybToidHJhbnNsYXRlWSgtNTAlKSIsIiY6YWZ0ZXIiOnt3aWR0aDoiMTAwJSIsaGVpZ2h0OmEubGluZVdpZHRoLGJvcmRlclJhZGl1czowLG1hcmdpbklubGluZVN0YXJ0OjAsYmFja2dyb3VuZDptZX19LFtgJjpmaXJzdC1jaGlsZCAke2Z9LWl0ZW0tdGFpbGBdOnt3aWR0aDoiNTAlIixtYXJnaW5JbmxpbmVTdGFydDoiNTAlIn0sW2AmOmxhc3QtY2hpbGQgJHtmfS1pdGVtLXRhaWxgXTp7ZGlzcGxheToiYmxvY2siLHdpZHRoOiI1MCUifSwiJi13YWl0IjpPYmplY3QuYXNzaWduKHtbYCR7Zn0taXRlbS1pY29uICR7Zn0taWNvbiAke2Z9LWljb24tZG90YF06e2JhY2tncm91bmRDb2xvcjphLmNvbG9yQm9yZGVyQmcsYm9yZGVyOmAkeygwLHllLmJmKShhLmxpbmVXaWR0aCl9ICR7YS5saW5lVHlwZX0gJHttZX1gfX0sX2UpLCImLWZpbmlzaCI6T2JqZWN0LmFzc2lnbih7W2Ake2Z9LWl0ZW0tdGFpbDo6YWZ0ZXJgXTp7YmFja2dyb3VuZENvbG9yOm1lfSxbYCR7Zn0taXRlbS1pY29uICR7Zn0taWNvbiAke2Z9LWljb24tZG90YF06e2JhY2tncm91bmRDb2xvcjptZSxib3JkZXI6YCR7KDAseWUuYmYpKGEubGluZVdpZHRoKX0gJHthLmxpbmVUeXBlfSAke21lfWB9fSxfZSksIiYtZXJyb3IiOl9lLCImLWFjdGl2ZSwgJi1wcm9jZXNzIjpPYmplY3QuYXNzaWduKHtbYCR7Zn0taXRlbS1pY29uYF06e3dpZHRoOmosaGVpZ2h0OmosbWFyZ2luSW5saW5lU3RhcnQ6YGNhbGMoNTAlIC0gJHsoMCx5ZS5iZikoYS5jYWxjKGopLmRpdigyKS5lcXVhbCgpKX0pYCx0b3A6MH19LF9lKSxbYCY6bm90KCR7Zn0taXRlbS1hY3RpdmUpID4gJHtmfS1pdGVtLWNvbnRhaW5lcltyb2xlPSdidXR0b24nXTpob3ZlcmBdOntbYCR7Zn0taXRlbS10aXRsZWBdOntjb2xvcjpEfX19fX19LHduPWE9Pntjb25zdHtjb21wb25lbnRDbHM6ZixpY29uU2l6ZTpqLGxpbmVIZWlnaHQ6RCxpY29uU2l6ZVNNOm1lfT1hO3JldHVybntbYCYke2Z9LWxhYmVsLXZlcnRpY2FsYF06e1tgJHtmfS1pdGVtYF06e292ZXJmbG93OiJ2aXNpYmxlIiwiJi10YWlsIjp7bWFyZ2luSW5saW5lU3RhcnQ6YS5jYWxjKGopLmRpdigyKS5hZGQoYS5jb250cm9sSGVpZ2h0TEcpLmVxdWFsKCkscGFkZGluZzpgMCAkeygwLHllLmJmKShhLnBhZGRpbmdMRyl9YH0sIiYtY29udGVudCI6e2Rpc3BsYXk6ImJsb2NrIix3aWR0aDphLmNhbGMoaikuZGl2KDIpLmFkZChhLmNvbnRyb2xIZWlnaHRMRykubXVsKDIpLmVxdWFsKCksbWFyZ2luVG9wOmEubWFyZ2luU00sdGV4dEFsaWduOiJjZW50ZXIifSwiJi1pY29uIjp7ZGlzcGxheToiaW5saW5lLWJsb2NrIixtYXJnaW5JbmxpbmVTdGFydDphLmNvbnRyb2xIZWlnaHRMR30sIiYtdGl0bGUiOntwYWRkaW5nSW5saW5lRW5kOjAscGFkZGluZ0lubGluZVN0YXJ0OjAsIiY6OmFmdGVyIjp7ZGlzcGxheToibm9uZSJ9fSwiJi1zdWJ0aXRsZSI6e2Rpc3BsYXk6ImJsb2NrIixtYXJnaW5Cb3R0b206YS5tYXJnaW5YWFMsbWFyZ2luSW5saW5lU3RhcnQ6MCxsaW5lSGVpZ2h0OkR9fSxbYCYke2Z9LXNtYWxsOm5vdCgke2Z9LWRvdClgXTp7W2Ake2Z9LWl0ZW1gXTp7IiYtaWNvbiI6e21hcmdpbklubGluZVN0YXJ0OmEuY2FsYyhqKS5zdWIobWUpLmRpdigyKS5hZGQoYS5jb250cm9sSGVpZ2h0TEcpLmVxdWFsKCl9fX19fX0sa249YT0+e2NvbnN0e2NvbXBvbmVudENsczpmLG5hdkNvbnRlbnRNYXhXaWR0aDpqLG5hdkFycm93Q29sb3I6RCxzdGVwc05hdkFjdGl2ZUNvbG9yOm1lLG1vdGlvbkR1cmF0aW9uU2xvdzpFZX09YTtyZXR1cm57W2AmJHtmfS1uYXZpZ2F0aW9uYF06e3BhZGRpbmdUb3A6YS5wYWRkaW5nU00sW2AmJHtmfS1zbWFsbGBdOntbYCR7Zn0taXRlbWBdOnsiJi1jb250YWluZXIiOnttYXJnaW5JbmxpbmVTdGFydDphLmNhbGMoYS5tYXJnaW5TTSkubXVsKC0xKS5lcXVhbCgpfX19LFtgJHtmfS1pdGVtYF06e292ZXJmbG93OiJ2aXNpYmxlIix0ZXh0QWxpZ246ImNlbnRlciIsIiYtY29udGFpbmVyIjp7ZGlzcGxheToiaW5saW5lLWJsb2NrIixoZWlnaHQ6IjEwMCUiLG1hcmdpbklubGluZVN0YXJ0OmEuY2FsYyhhLm1hcmdpbikubXVsKC0xKS5lcXVhbCgpLHBhZGRpbmdCb3R0b206YS5wYWRkaW5nU00sdGV4dEFsaWduOiJzdGFydCIsdHJhbnNpdGlvbjpgb3BhY2l0eSAke0VlfWAsW2Ake2Z9LWl0ZW0tY29udGVudGBdOnttYXhXaWR0aDpqfSxbYCR7Zn0taXRlbS10aXRsZWBdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7bWF4V2lkdGg6IjEwMCUiLHBhZGRpbmdJbmxpbmVFbmQ6MH0saG4udlMpLHsiJjo6YWZ0ZXIiOntkaXNwbGF5OiJub25lIn19KX0sW2AmOm5vdCgke2Z9LWl0ZW0tYWN0aXZlKWBdOntbYCR7Zn0taXRlbS1jb250YWluZXJbcm9sZT0nYnV0dG9uJ11gXTp7Y3Vyc29yOiJwb2ludGVyIiwiJjpob3ZlciI6e29wYWNpdHk6Ljg1fX19LCImOmxhc3QtY2hpbGQiOntmbGV4OjEsIiY6OmFmdGVyIjp7ZGlzcGxheToibm9uZSJ9fSwiJjo6YWZ0ZXIiOntwb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDpgY2FsYyg1MCUgLSAkeygwLHllLmJmKShhLmNhbGMoYS5wYWRkaW5nU00pLmRpdigyKS5lcXVhbCgpKX0pYCxpbnNldElubGluZVN0YXJ0OiIxMDAlIixkaXNwbGF5OiJpbmxpbmUtYmxvY2siLHdpZHRoOmEuZm9udFNpemVJY29uLGhlaWdodDphLmZvbnRTaXplSWNvbixib3JkZXJUb3A6YCR7KDAseWUuYmYpKGEubGluZVdpZHRoKX0gJHthLmxpbmVUeXBlfSAke0R9YCxib3JkZXJCb3R0b206Im5vbmUiLGJvcmRlcklubGluZVN0YXJ0OiJub25lIixib3JkZXJJbmxpbmVFbmQ6YCR7KDAseWUuYmYpKGEubGluZVdpZHRoKX0gJHthLmxpbmVUeXBlfSAke0R9YCx0cmFuc2Zvcm06InRyYW5zbGF0ZVkoLTUwJSkgdHJhbnNsYXRlWCgtNTAlKSByb3RhdGUoNDVkZWcpIixjb250ZW50OiciIid9LCImOjpiZWZvcmUiOntwb3NpdGlvbjoiYWJzb2x1dGUiLGJvdHRvbTowLGluc2V0SW5saW5lU3RhcnQ6IjUwJSIsZGlzcGxheToiaW5saW5lLWJsb2NrIix3aWR0aDowLGhlaWdodDphLmxpbmVXaWR0aEJvbGQsYmFja2dyb3VuZENvbG9yOm1lLHRyYW5zaXRpb246YHdpZHRoICR7RWV9LCBpbnNldC1pbmxpbmUtc3RhcnQgJHtFZX1gLHRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbjoiZWFzZS1vdXQiLGNvbnRlbnQ6JyIiJ319LFtgJHtmfS1pdGVtJHtmfS1pdGVtLWFjdGl2ZTo6YmVmb3JlYF06e2luc2V0SW5saW5lU3RhcnQ6MCx3aWR0aDoiMTAwJSJ9fSxbYCYke2Z9LW5hdmlnYXRpb24ke2Z9LXZlcnRpY2FsYF06e1tgPiAke2Z9LWl0ZW1gXTp7bWFyZ2luSW5saW5lRW5kOjAsIiY6OmJlZm9yZSI6e2Rpc3BsYXk6Im5vbmUifSxbYCYke2Z9LWl0ZW0tYWN0aXZlOjpiZWZvcmVgXTp7dG9wOjAsaW5zZXRJbmxpbmVFbmQ6MCxpbnNldElubGluZVN0YXJ0OiJ1bnNldCIsZGlzcGxheToiYmxvY2siLHdpZHRoOmEuY2FsYyhhLmxpbmVXaWR0aCkubXVsKDMpLmVxdWFsKCksaGVpZ2h0OmBjYWxjKDEwMCUgLSAkeygwLHllLmJmKShhLm1hcmdpbkxHKX0pYH0sIiY6OmFmdGVyIjp7cG9zaXRpb246InJlbGF0aXZlIixpbnNldElubGluZVN0YXJ0OiI1MCUiLGRpc3BsYXk6ImJsb2NrIix3aWR0aDphLmNhbGMoYS5jb250cm9sSGVpZ2h0KS5tdWwoLjI1KS5lcXVhbCgpLGhlaWdodDphLmNhbGMoYS5jb250cm9sSGVpZ2h0KS5tdWwoLjI1KS5lcXVhbCgpLG1hcmdpbkJvdHRvbTphLm1hcmdpblhTLHRleHRBbGlnbjoiY2VudGVyIix0cmFuc2Zvcm06InRyYW5zbGF0ZVkoLTUwJSkgdHJhbnNsYXRlWCgtNTAlKSByb3RhdGUoMTM1ZGVnKSJ9LCImOmxhc3QtY2hpbGQiOnsiJjo6YWZ0ZXIiOntkaXNwbGF5OiJub25lIn19LFtgPiAke2Z9LWl0ZW0tY29udGFpbmVyID4gJHtmfS1pdGVtLXRhaWxgXTp7dmlzaWJpbGl0eToiaGlkZGVuIn19fSxbYCYke2Z9LW5hdmlnYXRpb24ke2Z9LWhvcml6b250YWxgXTp7W2A+ICR7Zn0taXRlbSA+ICR7Zn0taXRlbS1jb250YWluZXIgPiAke2Z9LWl0ZW0tdGFpbGBdOnt2aXNpYmlsaXR5OiJoaWRkZW4ifX19fSxNPWE9Pntjb25zdHthbnRDbHM6Zixjb21wb25lbnRDbHM6aixpY29uU2l6ZTpELGljb25TaXplU006bWUscHJvY2Vzc0ljb25Db2xvcjpFZSxtYXJnaW5YWFM6X2UsbGluZVdpZHRoQm9sZDpVbixsaW5lV2lkdGg6c24scGFkZGluZ1hYUzpObn09YSxLbj1hLmNhbGMoRCkuYWRkKGEuY2FsYyhVbikubXVsKDQpLmVxdWFsKCkpLmVxdWFsKCksX249YS5jYWxjKG1lKS5hZGQoYS5jYWxjKGEubGluZVdpZHRoKS5tdWwoNCkuZXF1YWwoKSkuZXF1YWwoKTtyZXR1cm57W2AmJHtqfS13aXRoLXByb2dyZXNzYF06e1tgJHtqfS1pdGVtYF06e3BhZGRpbmdUb3A6Tm4sW2AmLXByb2Nlc3MgJHtqfS1pdGVtLWNvbnRhaW5lciAke2p9LWl0ZW0taWNvbiAke2p9LWljb25gXTp7Y29sb3I6RWV9fSxbYCYke2p9LXZlcnRpY2FsID4gJHtqfS1pdGVtIGBdOntwYWRkaW5nSW5saW5lU3RhcnQ6Tm4sW2A+ICR7an0taXRlbS1jb250YWluZXIgPiAke2p9LWl0ZW0tdGFpbGBdOnt0b3A6X2UsaW5zZXRJbmxpbmVTdGFydDphLmNhbGMoRCkuZGl2KDIpLnN1YihzbikuYWRkKE5uKS5lcXVhbCgpfX0sW2AmLCAmJHtqfS1zbWFsbGBdOntbYCYke2p9LWhvcml6b250YWwgJHtqfS1pdGVtOmZpcnN0LWNoaWxkYF06e3BhZGRpbmdCb3R0b206Tm4scGFkZGluZ0lubGluZVN0YXJ0Ok5ufX0sW2AmJHtqfS1zbWFsbCR7an0tdmVydGljYWwgPiAke2p9LWl0ZW0gPiAke2p9LWl0ZW0tY29udGFpbmVyID4gJHtqfS1pdGVtLXRhaWxgXTp7aW5zZXRJbmxpbmVTdGFydDphLmNhbGMobWUpLmRpdigyKS5zdWIoc24pLmFkZChObikuZXF1YWwoKX0sW2AmJHtqfS1sYWJlbC12ZXJ0aWNhbCAke2p9LWl0ZW0gJHtqfS1pdGVtLXRhaWxgXTp7dG9wOmEuY2FsYyhEKS5kaXYoMikuYWRkKE5uKS5lcXVhbCgpfSxbYCR7an0taXRlbS1pY29uYF06e3Bvc2l0aW9uOiJyZWxhdGl2ZSIsW2Ake2Z9LXByb2dyZXNzYF06e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsaW5zZXRJbmxpbmVTdGFydDoiNTAlIix0b3A6IjUwJSIsdHJhbnNmb3JtOiJ0cmFuc2xhdGUoLTUwJSwgLTUwJSkiLCImLWlubmVyIjp7d2lkdGg6YCR7KDAseWUuYmYpKEtuKX0gIWltcG9ydGFudGAsaGVpZ2h0OmAkeygwLHllLmJmKShLbil9ICFpbXBvcnRhbnRgfX19LFtgJiR7an0tc21hbGxgXTp7W2AmJHtqfS1sYWJlbC12ZXJ0aWNhbCAke2p9LWl0ZW0gJHtqfS1pdGVtLXRhaWxgXTp7dG9wOmEuY2FsYyhtZSkuZGl2KDIpLmFkZChObikuZXF1YWwoKX0sW2Ake2p9LWl0ZW0taWNvbiAke2Z9LXByb2dyZXNzLWlubmVyYF06e3dpZHRoOmAkeygwLHllLmJmKShfbil9ICFpbXBvcnRhbnRgLGhlaWdodDpgJHsoMCx5ZS5iZikoX24pfSAhaW1wb3J0YW50YH19fX19LFZlPWE9Pntjb25zdHtjb21wb25lbnRDbHM6ZixkZXNjcmlwdGlvbk1heFdpZHRoOmosbGluZUhlaWdodDpELGRvdEN1cnJlbnRTaXplOm1lLGRvdFNpemU6RWUsbW90aW9uRHVyYXRpb25TbG93Ol9lfT1hO3JldHVybntbYCYke2Z9LWRvdCwgJiR7Zn0tZG90JHtmfS1zbWFsbGBdOntbYCR7Zn0taXRlbWBdOnsiJi10aXRsZSI6e2xpbmVIZWlnaHQ6RH0sIiYtdGFpbCI6e3RvcDphLmNhbGMoYS5kb3RTaXplKS5zdWIoYS5jYWxjKGEubGluZVdpZHRoKS5tdWwoMykuZXF1YWwoKSkuZGl2KDIpLmVxdWFsKCksd2lkdGg6IjEwMCUiLG1hcmdpblRvcDowLG1hcmdpbkJvdHRvbTowLG1hcmdpbklubGluZTpgJHsoMCx5ZS5iZikoYS5jYWxjKGopLmRpdigyKS5lcXVhbCgpKX0gMGAscGFkZGluZzowLCImOjphZnRlciI6e3dpZHRoOmBjYWxjKDEwMCUgLSAkeygwLHllLmJmKShhLmNhbGMoYS5tYXJnaW5TTSkubXVsKDIpLmVxdWFsKCkpfSlgLGhlaWdodDphLmNhbGMoYS5saW5lV2lkdGgpLm11bCgzKS5lcXVhbCgpLG1hcmdpbklubGluZVN0YXJ0OmEubWFyZ2luU019fSwiJi1pY29uIjp7d2lkdGg6RWUsaGVpZ2h0OkVlLG1hcmdpbklubGluZVN0YXJ0OmEuY2FsYyhhLmRlc2NyaXB0aW9uTWF4V2lkdGgpLnN1YihFZSkuZGl2KDIpLmVxdWFsKCkscGFkZGluZ0lubGluZUVuZDowLGxpbmVIZWlnaHQ6KDAseWUuYmYpKEVlKSxiYWNrZ3JvdW5kOiJ0cmFuc3BhcmVudCIsYm9yZGVyOjAsW2Ake2Z9LWljb24tZG90YF06e3Bvc2l0aW9uOiJyZWxhdGl2ZSIsZmxvYXQ6ImxlZnQiLHdpZHRoOiIxMDAlIixoZWlnaHQ6IjEwMCUiLGJvcmRlclJhZGl1czoxMDAsdHJhbnNpdGlvbjpgYWxsICR7X2V9YCwiJjo6YWZ0ZXIiOntwb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDphLmNhbGMoYS5tYXJnaW5TTSkubXVsKC0xKS5lcXVhbCgpLGluc2V0SW5saW5lU3RhcnQ6YS5jYWxjKEVlKS5zdWIoYS5jYWxjKGEuY29udHJvbEhlaWdodExHKS5tdWwoMS41KS5lcXVhbCgpKS5kaXYoMikuZXF1YWwoKSx3aWR0aDphLmNhbGMoYS5jb250cm9sSGVpZ2h0TEcpLm11bCgxLjUpLmVxdWFsKCksaGVpZ2h0OmEuY29udHJvbEhlaWdodCxiYWNrZ3JvdW5kOiJ0cmFuc3BhcmVudCIsY29udGVudDonIiInfX19LCImLWNvbnRlbnQiOnt3aWR0aDpqfSxbYCYtcHJvY2VzcyAke2Z9LWl0ZW0taWNvbmBdOntwb3NpdGlvbjoicmVsYXRpdmUiLHRvcDphLmNhbGMoRWUpLnN1YihtZSkuZGl2KDIpLmVxdWFsKCksd2lkdGg6bWUsaGVpZ2h0Om1lLGxpbmVIZWlnaHQ6KDAseWUuYmYpKG1lKSxiYWNrZ3JvdW5kOiJub25lIixtYXJnaW5JbmxpbmVTdGFydDphLmNhbGMoYS5kZXNjcmlwdGlvbk1heFdpZHRoKS5zdWIobWUpLmRpdigyKS5lcXVhbCgpfSxbYCYtcHJvY2VzcyAke2Z9LWljb25gXTp7W2AmOmZpcnN0LWNoaWxkICR7Zn0taWNvbi1kb3RgXTp7aW5zZXRJbmxpbmVTdGFydDowfX19fSxbYCYke2Z9LXZlcnRpY2FsJHtmfS1kb3RgXTp7W2Ake2Z9LWl0ZW0taWNvbmBdOnttYXJnaW5Ub3A6YS5jYWxjKGEuY29udHJvbEhlaWdodCkuc3ViKEVlKS5kaXYoMikuZXF1YWwoKSxtYXJnaW5JbmxpbmVTdGFydDowLGJhY2tncm91bmQ6Im5vbmUifSxbYCR7Zn0taXRlbS1wcm9jZXNzICR7Zn0taXRlbS1pY29uYF06e21hcmdpblRvcDphLmNhbGMoYS5jb250cm9sSGVpZ2h0KS5zdWIobWUpLmRpdigyKS5lcXVhbCgpLHRvcDowLGluc2V0SW5saW5lU3RhcnQ6YS5jYWxjKEVlKS5zdWIobWUpLmRpdigyKS5lcXVhbCgpLG1hcmdpbklubGluZVN0YXJ0OjB9LFtgJHtmfS1pdGVtID4gJHtmfS1pdGVtLWNvbnRhaW5lciA+ICR7Zn0taXRlbS10YWlsYF06e3RvcDphLmNhbGMoYS5jb250cm9sSGVpZ2h0KS5zdWIoRWUpLmRpdigyKS5lcXVhbCgpLGluc2V0SW5saW5lU3RhcnQ6MCxtYXJnaW46MCxwYWRkaW5nOmAkeygwLHllLmJmKShhLmNhbGMoRWUpLmFkZChhLnBhZGRpbmdYUykuZXF1YWwoKSl9IDAgJHsoMCx5ZS5iZikoYS5wYWRkaW5nWFMpfWAsIiY6OmFmdGVyIjp7bWFyZ2luSW5saW5lU3RhcnQ6YS5jYWxjKEVlKS5zdWIoYS5saW5lV2lkdGgpLmRpdigyKS5lcXVhbCgpfX0sW2AmJHtmfS1zbWFsbGBdOntbYCR7Zn0taXRlbS1pY29uYF06e21hcmdpblRvcDphLmNhbGMoYS5jb250cm9sSGVpZ2h0U00pLnN1YihFZSkuZGl2KDIpLmVxdWFsKCl9LFtgJHtmfS1pdGVtLXByb2Nlc3MgJHtmfS1pdGVtLWljb25gXTp7bWFyZ2luVG9wOmEuY2FsYyhhLmNvbnRyb2xIZWlnaHRTTSkuc3ViKG1lKS5kaXYoMikuZXF1YWwoKX0sW2Ake2Z9LWl0ZW0gPiAke2Z9LWl0ZW0tY29udGFpbmVyID4gJHtmfS1pdGVtLXRhaWxgXTp7dG9wOmEuY2FsYyhhLmNvbnRyb2xIZWlnaHRTTSkuc3ViKEVlKS5kaXYoMikuZXF1YWwoKX19LFtgJHtmfS1pdGVtOmZpcnN0LWNoaWxkICR7Zn0taWNvbi1kb3RgXTp7aW5zZXRJbmxpbmVTdGFydDowfSxbYCR7Zn0taXRlbS1jb250ZW50YF06e3dpZHRoOiJpbmhlcml0In19fX0sbm49YT0+e2NvbnN0e2NvbXBvbmVudENsczpmfT1hO3JldHVybntbYCYke2Z9LXJ0bGBdOntkaXJlY3Rpb246InJ0bCIsW2Ake2Z9LWl0ZW1gXTp7IiYtc3VidGl0bGUiOntmbG9hdDoibGVmdCJ9fSxbYCYke2Z9LW5hdmlnYXRpb25gXTp7W2Ake2Z9LWl0ZW06OmFmdGVyYF06e3RyYW5zZm9ybToicm90YXRlKC00NWRlZykifX0sW2AmJHtmfS12ZXJ0aWNhbGBdOntbYD4gJHtmfS1pdGVtYF06eyImOjphZnRlciI6e3RyYW5zZm9ybToicm90YXRlKDIyNWRlZykifSxbYCR7Zn0taXRlbS1pY29uYF06e2Zsb2F0OiJyaWdodCJ9fX0sW2AmJHtmfS1kb3RgXTp7W2Ake2Z9LWl0ZW0taWNvbiAke2Z9LWljb24tZG90LCAmJHtmfS1zbWFsbCAke2Z9LWl0ZW0taWNvbiAke2Z9LWljb24tZG90YF06e2Zsb2F0OiJyaWdodCJ9fX19fSx2bj1hPT57Y29uc3R7Y29tcG9uZW50Q2xzOmYsaWNvblNpemVTTTpqLGZvbnRTaXplU006RCxmb250U2l6ZTptZSxjb2xvclRleHREZXNjcmlwdGlvbjpFZX09YTtyZXR1cm57W2AmJHtmfS1zbWFsbGBdOntbYCYke2Z9LWhvcml6b250YWw6bm90KCR7Zn0tbGFiZWwtdmVydGljYWwpICR7Zn0taXRlbWBdOntwYWRkaW5nSW5saW5lU3RhcnQ6YS5wYWRkaW5nU00sIiY6Zmlyc3QtY2hpbGQiOntwYWRkaW5nSW5saW5lU3RhcnQ6MH19LFtgJHtmfS1pdGVtLWljb25gXTp7d2lkdGg6aixoZWlnaHQ6aixtYXJnaW5Ub3A6MCxtYXJnaW5Cb3R0b206MCxtYXJnaW5JbmxpbmU6YDAgJHsoMCx5ZS5iZikoYS5tYXJnaW5YUyl9YCxmb250U2l6ZTpELGxpbmVIZWlnaHQ6KDAseWUuYmYpKGopLHRleHRBbGlnbjoiY2VudGVyIixib3JkZXJSYWRpdXM6an0sW2Ake2Z9LWl0ZW0tdGl0bGVgXTp7cGFkZGluZ0lubGluZUVuZDphLnBhZGRpbmdTTSxmb250U2l6ZTptZSxsaW5lSGVpZ2h0OigwLHllLmJmKShqKSwiJjo6YWZ0ZXIiOnt0b3A6YS5jYWxjKGopLmRpdigyKS5lcXVhbCgpfX0sW2Ake2Z9LWl0ZW0tZGVzY3JpcHRpb25gXTp7Y29sb3I6RWUsZm9udFNpemU6bWV9LFtgJHtmfS1pdGVtLXRhaWxgXTp7dG9wOmEuY2FsYyhqKS5kaXYoMikuc3ViKGEucGFkZGluZ1hYUykuZXF1YWwoKX0sW2Ake2Z9LWl0ZW0tY3VzdG9tICR7Zn0taXRlbS1pY29uYF06e3dpZHRoOiJpbmhlcml0IixoZWlnaHQ6ImluaGVyaXQiLGxpbmVIZWlnaHQ6ImluaGVyaXQiLGJhY2tncm91bmQ6Im5vbmUiLGJvcmRlcjowLGJvcmRlclJhZGl1czowLFtgPiAke2Z9LWljb25gXTp7Zm9udFNpemU6aixsaW5lSGVpZ2h0OigwLHllLmJmKShqKSx0cmFuc2Zvcm06Im5vbmUifX19fX0sTG49YT0+e2NvbnN0e2NvbXBvbmVudENsczpmLGljb25TaXplU006aixpY29uU2l6ZTpEfT1hO3JldHVybntbYCYke2Z9LXZlcnRpY2FsYF06e2Rpc3BsYXk6ImZsZXgiLGZsZXhEaXJlY3Rpb246ImNvbHVtbiIsW2A+ICR7Zn0taXRlbWBdOntkaXNwbGF5OiJibG9jayIsZmxleDoiMSAwIGF1dG8iLHBhZGRpbmdJbmxpbmVTdGFydDowLG92ZXJmbG93OiJ2aXNpYmxlIixbYCR7Zn0taXRlbS1pY29uYF06e2Zsb2F0OiJsZWZ0IixtYXJnaW5JbmxpbmVFbmQ6YS5tYXJnaW59LFtgJHtmfS1pdGVtLWNvbnRlbnRgXTp7ZGlzcGxheToiYmxvY2siLG1pbkhlaWdodDphLmNhbGMoYS5jb250cm9sSGVpZ2h0KS5tdWwoMS41KS5lcXVhbCgpLG92ZXJmbG93OiJoaWRkZW4ifSxbYCR7Zn0taXRlbS10aXRsZWBdOntsaW5lSGVpZ2h0OigwLHllLmJmKShEKX0sW2Ake2Z9LWl0ZW0tZGVzY3JpcHRpb25gXTp7cGFkZGluZ0JvdHRvbTphLnBhZGRpbmdTTX19LFtgPiAke2Z9LWl0ZW0gPiAke2Z9LWl0ZW0tY29udGFpbmVyID4gJHtmfS1pdGVtLXRhaWxgXTp7cG9zaXRpb246ImFic29sdXRlIix0b3A6MCxpbnNldElubGluZVN0YXJ0OmEuY2FsYyhEKS5kaXYoMikuc3ViKGEubGluZVdpZHRoKS5lcXVhbCgpLHdpZHRoOmEubGluZVdpZHRoLGhlaWdodDoiMTAwJSIscGFkZGluZzpgJHsoMCx5ZS5iZikoYS5jYWxjKGEubWFyZ2luWFhTKS5tdWwoMS41KS5hZGQoRCkuZXF1YWwoKSl9IDAgJHsoMCx5ZS5iZikoYS5jYWxjKGEubWFyZ2luWFhTKS5tdWwoMS41KS5lcXVhbCgpKX1gLCImOjphZnRlciI6e3dpZHRoOmEubGluZVdpZHRoLGhlaWdodDoiMTAwJSJ9fSxbYD4gJHtmfS1pdGVtOm5vdCg6bGFzdC1jaGlsZCkgPiAke2Z9LWl0ZW0tY29udGFpbmVyID4gJHtmfS1pdGVtLXRhaWxgXTp7ZGlzcGxheToiYmxvY2sifSxbYCA+ICR7Zn0taXRlbSA+ICR7Zn0taXRlbS1jb250YWluZXIgPiAke2Z9LWl0ZW0tY29udGVudCA+ICR7Zn0taXRlbS10aXRsZWBdOnsiJjo6YWZ0ZXIiOntkaXNwbGF5OiJub25lIn19LFtgJiR7Zn0tc21hbGwgJHtmfS1pdGVtLWNvbnRhaW5lcmBdOntbYCR7Zn0taXRlbS10YWlsYF06e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOjAsaW5zZXRJbmxpbmVTdGFydDphLmNhbGMoaikuZGl2KDIpLnN1YihhLmxpbmVXaWR0aCkuZXF1YWwoKSxwYWRkaW5nOmAkeygwLHllLmJmKShhLmNhbGMoYS5tYXJnaW5YWFMpLm11bCgxLjUpLmFkZChqKS5lcXVhbCgpKX0gMCAkeygwLHllLmJmKShhLmNhbGMoYS5tYXJnaW5YWFMpLm11bCgxLjUpLmVxdWFsKCkpfWB9LFtgJHtmfS1pdGVtLXRpdGxlYF06e2xpbmVIZWlnaHQ6KDAseWUuYmYpKGopfX19fX07Y29uc3QgYW49IndhaXQiLFNuPSJwcm9jZXNzIixNbj0iZmluaXNoIixFbj0iZXJyb3IiLHhuPShhLGYpPT57Y29uc3Qgaj1gJHtmLmNvbXBvbmVudENsc30taXRlbWAsRD1gJHthfUljb25Db2xvcmAsbWU9YCR7YX1UaXRsZUNvbG9yYCxFZT1gJHthfURlc2NyaXB0aW9uQ29sb3JgLF9lPWAke2F9VGFpbENvbG9yYCxVbj1gJHthfUljb25CZ0NvbG9yYCxzbj1gJHthfUljb25Cb3JkZXJDb2xvcmAsTm49YCR7YX1Eb3RDb2xvcmA7cmV0dXJue1tgJHtqfS0ke2F9ICR7an0taWNvbmBdOntiYWNrZ3JvdW5kQ29sb3I6ZltVbl0sYm9yZGVyQ29sb3I6Zltzbl0sW2A+ICR7Zi5jb21wb25lbnRDbHN9LWljb25gXTp7Y29sb3I6ZltEXSxbYCR7Zi5jb21wb25lbnRDbHN9LWljb24tZG90YF06e2JhY2tncm91bmQ6ZltObl19fX0sW2Ake2p9LSR7YX0ke2p9LWN1c3RvbSAke2p9LWljb25gXTp7W2A+ICR7Zi5jb21wb25lbnRDbHN9LWljb25gXTp7Y29sb3I6ZltObl19fSxbYCR7an0tJHthfSA+ICR7an0tY29udGFpbmVyID4gJHtqfS1jb250ZW50ID4gJHtqfS10aXRsZWBdOntjb2xvcjpmW21lXSwiJjo6YWZ0ZXIiOntiYWNrZ3JvdW5kQ29sb3I6ZltfZV19fSxbYCR7an0tJHthfSA+ICR7an0tY29udGFpbmVyID4gJHtqfS1jb250ZW50ID4gJHtqfS1kZXNjcmlwdGlvbmBdOntjb2xvcjpmW0VlXX0sW2Ake2p9LSR7YX0gPiAke2p9LWNvbnRhaW5lciA+ICR7an0tdGFpbDo6YWZ0ZXJgXTp7YmFja2dyb3VuZENvbG9yOmZbX2VdfX19LGxuPWE9Pntjb25zdHtjb21wb25lbnRDbHM6Zixtb3Rpb25EdXJhdGlvblNsb3c6an09YSxEPWAke2Z9LWl0ZW1gLG1lPWAke0R9LWljb25gO3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7W0RdOntwb3NpdGlvbjoicmVsYXRpdmUiLGRpc3BsYXk6ImlubGluZS1ibG9jayIsZmxleDoxLG92ZXJmbG93OiJoaWRkZW4iLHZlcnRpY2FsQWxpZ246InRvcCIsIiY6bGFzdC1jaGlsZCI6e2ZsZXg6Im5vbmUiLFtgPiAke0R9LWNvbnRhaW5lciA+ICR7RH0tdGFpbCwgPiAke0R9LWNvbnRhaW5lciA+ICAke0R9LWNvbnRlbnQgPiAke0R9LXRpdGxlOjphZnRlcmBdOntkaXNwbGF5OiJub25lIn19fSxbYCR7RH0tY29udGFpbmVyYF06e291dGxpbmU6Im5vbmUiLCImOmZvY3VzLXZpc2libGUiOntbbWVdOk9iamVjdC5hc3NpZ24oe30sKDAsaG4ub04pKGEpKX19LFtgJHttZX0sICR7RH0tY29udGVudGBdOntkaXNwbGF5OiJpbmxpbmUtYmxvY2siLHZlcnRpY2FsQWxpZ246InRvcCJ9LFttZV06e3dpZHRoOmEuaWNvblNpemUsaGVpZ2h0OmEuaWNvblNpemUsbWFyZ2luVG9wOjAsbWFyZ2luQm90dG9tOjAsbWFyZ2luSW5saW5lU3RhcnQ6MCxtYXJnaW5JbmxpbmVFbmQ6YS5tYXJnaW5YUyxmb250U2l6ZTphLmljb25Gb250U2l6ZSxmb250RmFtaWx5OmEuZm9udEZhbWlseSxsaW5lSGVpZ2h0OigwLHllLmJmKShhLmljb25TaXplKSx0ZXh0QWxpZ246ImNlbnRlciIsYm9yZGVyUmFkaXVzOmEuaWNvblNpemUsYm9yZGVyOmAkeygwLHllLmJmKShhLmxpbmVXaWR0aCl9ICR7YS5saW5lVHlwZX0gdHJhbnNwYXJlbnRgLHRyYW5zaXRpb246YGJhY2tncm91bmQtY29sb3IgJHtqfSwgYm9yZGVyLWNvbG9yICR7an1gLFtgJHtmfS1pY29uYF06e3Bvc2l0aW9uOiJyZWxhdGl2ZSIsdG9wOmEuaWNvblRvcCxjb2xvcjphLmNvbG9yUHJpbWFyeSxsaW5lSGVpZ2h0OjF9fSxbYCR7RH0tdGFpbGBdOntwb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDphLmNhbGMoYS5pY29uU2l6ZSkuZGl2KDIpLmVxdWFsKCksaW5zZXRJbmxpbmVTdGFydDowLHdpZHRoOiIxMDAlIiwiJjo6YWZ0ZXIiOntkaXNwbGF5OiJpbmxpbmUtYmxvY2siLHdpZHRoOiIxMDAlIixoZWlnaHQ6YS5saW5lV2lkdGgsYmFja2dyb3VuZDphLmNvbG9yU3BsaXQsYm9yZGVyUmFkaXVzOmEubGluZVdpZHRoLHRyYW5zaXRpb246YGJhY2tncm91bmQgJHtqfWAsY29udGVudDonIiInfX0sW2Ake0R9LXRpdGxlYF06e3Bvc2l0aW9uOiJyZWxhdGl2ZSIsZGlzcGxheToiaW5saW5lLWJsb2NrIixwYWRkaW5nSW5saW5lRW5kOmEucGFkZGluZyxjb2xvcjphLmNvbG9yVGV4dCxmb250U2l6ZTphLmZvbnRTaXplTEcsbGluZUhlaWdodDooMCx5ZS5iZikoYS50aXRsZUxpbmVIZWlnaHQpLCImOjphZnRlciI6e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOmEuY2FsYyhhLnRpdGxlTGluZUhlaWdodCkuZGl2KDIpLmVxdWFsKCksaW5zZXRJbmxpbmVTdGFydDoiMTAwJSIsZGlzcGxheToiYmxvY2siLHdpZHRoOjk5OTksaGVpZ2h0OmEubGluZVdpZHRoLGJhY2tncm91bmQ6YS5wcm9jZXNzVGFpbENvbG9yLGNvbnRlbnQ6JyIiJ319LFtgJHtEfS1zdWJ0aXRsZWBdOntkaXNwbGF5OiJpbmxpbmUiLG1hcmdpbklubGluZVN0YXJ0OmEubWFyZ2luWFMsY29sb3I6YS5jb2xvclRleHREZXNjcmlwdGlvbixmb250V2VpZ2h0OiJub3JtYWwiLGZvbnRTaXplOmEuZm9udFNpemV9LFtgJHtEfS1kZXNjcmlwdGlvbmBdOntjb2xvcjphLmNvbG9yVGV4dERlc2NyaXB0aW9uLGZvbnRTaXplOmEuZm9udFNpemV9fSx4bihhbixhKSkseG4oU24sYSkpLHtbYCR7RH0tcHJvY2VzcyA+ICR7RH0tY29udGFpbmVyID4gJHtEfS10aXRsZWBdOntmb250V2VpZ2h0OmEuZm9udFdlaWdodFN0cm9uZ319KSx4bihNbixhKSkseG4oRW4sYSkpLHtbYCR7RH0ke2Z9LW5leHQtZXJyb3IgPiAke2Z9LWl0ZW0tdGl0bGU6OmFmdGVyYF06e2JhY2tncm91bmQ6YS5jb2xvckVycm9yfSxbYCR7RH0tZGlzYWJsZWRgXTp7Y3Vyc29yOiJub3QtYWxsb3dlZCJ9fSl9LFBuPWE9Pntjb25zdHtjb21wb25lbnRDbHM6Zixtb3Rpb25EdXJhdGlvblNsb3c6an09YTtyZXR1cm57W2AmICR7Zn0taXRlbWBdOntbYCY6bm90KCR7Zn0taXRlbS1hY3RpdmUpYF06e1tgJiA+ICR7Zn0taXRlbS1jb250YWluZXJbcm9sZT0nYnV0dG9uJ11gXTp7Y3Vyc29yOiJwb2ludGVyIixbYCR7Zn0taXRlbWBdOntbYCYtdGl0bGUsICYtc3VidGl0bGUsICYtZGVzY3JpcHRpb24sICYtaWNvbiAke2Z9LWljb25gXTp7dHJhbnNpdGlvbjpgY29sb3IgJHtqfWB9fSwiJjpob3ZlciI6e1tgJHtmfS1pdGVtYF06eyImLXRpdGxlLCAmLXN1YnRpdGxlLCAmLWRlc2NyaXB0aW9uIjp7Y29sb3I6YS5jb2xvclByaW1hcnl9fX19LFtgJjpub3QoJHtmfS1pdGVtLXByb2Nlc3MpYF06e1tgJiA+ICR7Zn0taXRlbS1jb250YWluZXJbcm9sZT0nYnV0dG9uJ106aG92ZXJgXTp7W2Ake2Z9LWl0ZW1gXTp7IiYtaWNvbiI6e2JvcmRlckNvbG9yOmEuY29sb3JQcmltYXJ5LFtgJHtmfS1pY29uYF06e2NvbG9yOmEuY29sb3JQcmltYXJ5fX19fX19fSxbYCYke2Z9LWhvcml6b250YWw6bm90KCR7Zn0tbGFiZWwtdmVydGljYWwpYF06e1tgJHtmfS1pdGVtYF06e3BhZGRpbmdJbmxpbmVTdGFydDphLnBhZGRpbmcsd2hpdGVTcGFjZToibm93cmFwIiwiJjpmaXJzdC1jaGlsZCI6e3BhZGRpbmdJbmxpbmVTdGFydDowfSxbYCY6bGFzdC1jaGlsZCAke2Z9LWl0ZW0tdGl0bGVgXTp7cGFkZGluZ0lubGluZUVuZDowfSwiJi10YWlsIjp7ZGlzcGxheToibm9uZSJ9LCImLWRlc2NyaXB0aW9uIjp7bWF4V2lkdGg6YS5kZXNjcmlwdGlvbk1heFdpZHRoLHdoaXRlU3BhY2U6Im5vcm1hbCJ9fX19fSxVZT1hPT57Y29uc3R7Y29tcG9uZW50Q2xzOmZ9PWE7cmV0dXJue1tmXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sKDAsaG4uV2YpKGEpKSx7ZGlzcGxheToiZmxleCIsd2lkdGg6IjEwMCUiLGZvbnRTaXplOjAsdGV4dEFsaWduOiJpbml0aWFsIn0pLGxuKGEpKSxQbihhKSksemUoYSkpLHZuKGEpKSxMbihhKSksUmUoYSkpLHduKGEpKSxWZShhKSksa24oYSkpLG5uKGEpKSxNKGEpKSxUbihhKSl9fSxOZT1hPT4oe3RpdGxlTGluZUhlaWdodDphLmNvbnRyb2xIZWlnaHQsY3VzdG9tSWNvblNpemU6YS5jb250cm9sSGVpZ2h0LGN1c3RvbUljb25Ub3A6MCxjdXN0b21JY29uRm9udFNpemU6YS5jb250cm9sSGVpZ2h0U00saWNvblNpemU6YS5jb250cm9sSGVpZ2h0LGljb25Ub3A6LS41LGljb25Gb250U2l6ZTphLmZvbnRTaXplLGljb25TaXplU006YS5mb250U2l6ZUhlYWRpbmczLGRvdFNpemU6YS5jb250cm9sSGVpZ2h0LzQsZG90Q3VycmVudFNpemU6YS5jb250cm9sSGVpZ2h0TEcvNCxuYXZBcnJvd0NvbG9yOmEuY29sb3JUZXh0RGlzYWJsZWQsbmF2Q29udGVudE1heFdpZHRoOiJhdXRvIixkZXNjcmlwdGlvbk1heFdpZHRoOjE0MCx3YWl0SWNvbkNvbG9yOmEud2lyZWZyYW1lP2EuY29sb3JUZXh0RGlzYWJsZWQ6YS5jb2xvclRleHRMYWJlbCx3YWl0SWNvbkJnQ29sb3I6YS53aXJlZnJhbWU/YS5jb2xvckJnQ29udGFpbmVyOmEuY29sb3JGaWxsQ29udGVudCx3YWl0SWNvbkJvcmRlckNvbG9yOmEud2lyZWZyYW1lP2EuY29sb3JUZXh0RGlzYWJsZWQ6InRyYW5zcGFyZW50IixmaW5pc2hJY29uQmdDb2xvcjphLndpcmVmcmFtZT9hLmNvbG9yQmdDb250YWluZXI6YS5jb250cm9sSXRlbUJnQWN0aXZlLGZpbmlzaEljb25Cb3JkZXJDb2xvcjphLndpcmVmcmFtZT9hLmNvbG9yUHJpbWFyeTphLmNvbnRyb2xJdGVtQmdBY3RpdmV9KTt2YXIgT2U9KDAsUWUuSSQpKCJTdGVwcyIsYT0+e2NvbnN0e2NvbG9yVGV4dERpc2FibGVkOmYsY29udHJvbEhlaWdodExHOmosY29sb3JUZXh0TGlnaHRTb2xpZDpELGNvbG9yVGV4dDptZSxjb2xvclByaW1hcnk6RWUsY29sb3JUZXh0RGVzY3JpcHRpb246X2UsY29sb3JUZXh0UXVhdGVybmFyeTpVbixjb2xvckVycm9yOnNuLGNvbG9yQm9yZGVyU2Vjb25kYXJ5Ok5uLGNvbG9yU3BsaXQ6S259PWEsX249KDAsRm4uSVgpKGEse3Byb2Nlc3NJY29uQ29sb3I6RCxwcm9jZXNzVGl0bGVDb2xvcjptZSxwcm9jZXNzRGVzY3JpcHRpb25Db2xvcjptZSxwcm9jZXNzSWNvbkJnQ29sb3I6RWUscHJvY2Vzc0ljb25Cb3JkZXJDb2xvcjpFZSxwcm9jZXNzRG90Q29sb3I6RWUscHJvY2Vzc1RhaWxDb2xvcjpLbix3YWl0VGl0bGVDb2xvcjpfZSx3YWl0RGVzY3JpcHRpb25Db2xvcjpfZSx3YWl0VGFpbENvbG9yOktuLHdhaXREb3RDb2xvcjpmLGZpbmlzaEljb25Db2xvcjpFZSxmaW5pc2hUaXRsZUNvbG9yOm1lLGZpbmlzaERlc2NyaXB0aW9uQ29sb3I6X2UsZmluaXNoVGFpbENvbG9yOkVlLGZpbmlzaERvdENvbG9yOkVlLGVycm9ySWNvbkNvbG9yOkQsZXJyb3JUaXRsZUNvbG9yOnNuLGVycm9yRGVzY3JpcHRpb25Db2xvcjpzbixlcnJvclRhaWxDb2xvcjpLbixlcnJvckljb25CZ0NvbG9yOnNuLGVycm9ySWNvbkJvcmRlckNvbG9yOnNuLGVycm9yRG90Q29sb3I6c24sc3RlcHNOYXZBY3RpdmVDb2xvcjpFZSxzdGVwc1Byb2dyZXNzU2l6ZTpqLGlubGluZURvdFNpemU6NixpbmxpbmVUaXRsZUNvbG9yOlVuLGlubGluZVRhaWxDb2xvcjpObn0pO3JldHVybltVZShfbildfSxOZSksSWU9dig1MDM0NCk7ZnVuY3Rpb24gSGUoYSl7cmV0dXJuIGEuZmlsdGVyKGY9PmYpfWZ1bmN0aW9uIEhuKGEsZil7aWYoYSlyZXR1cm4gYTtjb25zdCBqPSgwLEllLlopKGYpLm1hcChEPT57aWYoTC5pc1ZhbGlkRWxlbWVudChEKSl7Y29uc3R7cHJvcHM6bWV9PUQ7cmV0dXJuIE9iamVjdC5hc3NpZ24oe30sbWUpfXJldHVybiBudWxsfSk7cmV0dXJuIEhlKGopfXZhciBvbj1mdW5jdGlvbihhLGYpe3ZhciBqPXt9O2Zvcih2YXIgRCBpbiBhKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhLEQpJiZmLmluZGV4T2YoRCk8MCYmKGpbRF09YVtEXSk7aWYoYSE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBtZT0wLEQ9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhhKTttZTxELmxlbmd0aDttZSsrKWYuaW5kZXhPZihEW21lXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGEsRFttZV0pJiYoaltEW21lXV09YVtEW21lXV0pO3JldHVybiBqfTtjb25zdCB3ZT1hPT57Y29uc3R7cGVyY2VudDpmLHNpemU6aixjbGFzc05hbWU6RCxyb290Q2xhc3NOYW1lOm1lLGRpcmVjdGlvbjpFZSxpdGVtczpfZSxyZXNwb25zaXZlOlVuPSEwLGN1cnJlbnQ6c249MCxjaGlsZHJlbjpObixzdHlsZTpLbn09YSxfbj1vbihhLFsicGVyY2VudCIsInNpemUiLCJjbGFzc05hbWUiLCJyb290Q2xhc3NOYW1lIiwiZGlyZWN0aW9uIiwiaXRlbXMiLCJyZXNwb25zaXZlIiwiY3VycmVudCIsImNoaWxkcmVuIiwic3R5bGUiXSkse3hzOmV0fT0oMCxBbi5aKShVbikse2dldFByZWZpeENsczpudCxkaXJlY3Rpb246UGUsY2xhc3NOYW1lOlEsc3R5bGU6b2V9PSgwLHVuLmRqKSgic3RlcHMiKSxnZT1MLnVzZU1lbW8oKCk9PlVuJiZldD8idmVydGljYWwiOkVlLFtldCxFZV0pLGVlPSgwLEJuLlopKGopLFRlPW50KCJzdGVwcyIsYS5wcmVmaXhDbHMpLFtqZSwkZSxBZV09T2UoVGUpLE1lPWEudHlwZT09PSJpbmxpbmUiLGJuPW50KCIiLGEuaWNvblByZWZpeCksV2U9SG4oX2UsTm4pLGF0PU1lP3ZvaWQgMDpmLHZ0PU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxvZSksS24pLHpuPXAoKShRLHtbYCR7VGV9LXJ0bGBdOlBlPT09InJ0bCIsW2Ake1RlfS13aXRoLXByb2dyZXNzYF06YXQhPT12b2lkIDB9LEQsbWUsJGUsQWUpLHB0PXtmaW5pc2g6TC5jcmVhdGVFbGVtZW50KHNlLlose2NsYXNzTmFtZTpgJHtUZX0tZmluaXNoLWljb25gfSksZXJyb3I6TC5jcmVhdGVFbGVtZW50KFpuLlose2NsYXNzTmFtZTpgJHtUZX0tZXJyb3ItaWNvbmB9KX0sZnQ9WW49PntsZXR7bm9kZTokbixzdGF0dXM6aHR9PVluO2lmKGh0PT09InByb2Nlc3MiJiZhdCE9PXZvaWQgMCl7Y29uc3QgeXQ9ZWU9PT0ic21hbGwiPzMyOjQwO3JldHVybiBMLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpgJHtUZX0tcHJvZ3Jlc3MtaWNvbmB9LEwuY3JlYXRlRWxlbWVudChzLlose3R5cGU6ImNpcmNsZSIscGVyY2VudDphdCxzaXplOnl0LHN0cm9rZVdpZHRoOjQsZm9ybWF0OigpPT5udWxsfSksJG4pfXJldHVybiAkbn0sdXQ9KFluLCRuKT0+WW4uZGVzY3JpcHRpb24/TC5jcmVhdGVFbGVtZW50KEtlLlose3RpdGxlOlluLmRlc2NyaXB0aW9ufSwkbik6JG47cmV0dXJuIGplKEwuY3JlYXRlRWxlbWVudChkLE9iamVjdC5hc3NpZ24oe2ljb25zOnB0fSxfbix7c3R5bGU6dnQsY3VycmVudDpzbixzaXplOmVlLGl0ZW1zOldlLGl0ZW1SZW5kZXI6TWU/dXQ6dm9pZCAwLHN0ZXBJY29uOmZ0LGRpcmVjdGlvbjpnZSxwcmVmaXhDbHM6VGUsaWNvblByZWZpeDpibixjbGFzc05hbWU6em59KSkpfTt3ZS5TdGVwPWQuU3RlcDt2YXIgam49d2V9fV0pOwpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy81NDAwLjZiMzdiNGE4LmFzeW5jLmpzIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy81NDAwLjZiMzdiNGE4LmFzeW5jLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM3ODdiOTcKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzU0MDAuNmIzN2I0YTguYXN5bmMuanMKQEAgLTAsMCArMSBAQAorInVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvPXNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm98fFtdKS5wdXNoKFtbNTQwMCw3NjI5XSx7OTA2NzI6ZnVuY3Rpb24oVyxpLGUpe3ZhciBjPWUoMTQxMyksYT1lKDkxKSxoPWUoNjcyOTQpLE89ZSg5MjE3OSksaj1lKDg1ODkzKSxnPVsiZmllbGRQcm9wcyIsInByb0ZpZWxkUHJvcHMiXSx4PWZ1bmN0aW9uKGwsdCl7dmFyIE09bC5maWVsZFByb3BzLFQ9bC5wcm9GaWVsZFByb3BzLFA9KDAsYS5aKShsLGcpO3JldHVybigwLGouanN4KShPLlosKDAsYy5aKSh7cmVmOnQsdmFsdWVUeXBlOiJ0ZXh0YXJlYSIsZmllbGRQcm9wczpNLHByb0ZpZWxkUHJvcHM6VH0sUCkpfTtpLlo9aC5mb3J3YXJkUmVmKHgpfSw1OTY2OmZ1bmN0aW9uKFcsaSxlKXt2YXIgYz1lKDk3Njg1KSxhPWUoMTQxMyksaD1lKDkxKSxPPWUoMjE3NzApLGo9ZSg5OTg1OSksZz1lKDU1MjQxKSx4PWUoOTg0MjMpLG09ZSg2NzI5NCksbD1lKDkyMTc5KSx0PWUoODU4OTMpLE09WyJmaWVsZFByb3BzIiwicHJvRmllbGRQcm9wcyJdLFQ9WyJmaWVsZFByb3BzIiwicHJvRmllbGRQcm9wcyJdLFA9InRleHQiLEY9ZnVuY3Rpb24ocyl7dmFyIG49cy5maWVsZFByb3BzLG89cy5wcm9GaWVsZFByb3BzLHU9KDAsaC5aKShzLE0pO3JldHVybigwLHQuanN4KShsLlosKDAsYS5aKSh7dmFsdWVUeXBlOlAsZmllbGRQcm9wczpuLGZpbGVkQ29uZmlnOnt2YWx1ZVR5cGU6UH0scHJvRmllbGRQcm9wczpvfSx1KSl9LFI9ZnVuY3Rpb24ocyl7dmFyIG49KDAsTy5aKShzLm9wZW58fCExLHt2YWx1ZTpzLm9wZW4sb25DaGFuZ2U6cy5vbk9wZW5DaGFuZ2V9KSxvPSgwLGMuWikobiwyKSx1PW9bMF0scD1vWzFdO3JldHVybigwLHQuanN4KShqLlouSXRlbSx7c2hvdWxkVXBkYXRlOiEwLG5vU3R5bGU6ITAsY2hpbGRyZW46ZnVuY3Rpb24oRSl7dmFyIGQsWj1FLmdldEZpZWxkVmFsdWUocy5uYW1lfHxbXSk7cmV0dXJuKDAsdC5qc3gpKGcuWiwoMCxhLlopKCgwLGEuWikoe2dldFBvcHVwQ29udGFpbmVyOmZ1bmN0aW9uKF8pe3JldHVybiBfJiZfLnBhcmVudE5vZGU/Xy5wYXJlbnROb2RlOl99LG9uT3BlbkNoYW5nZTpmdW5jdGlvbihfKXtyZXR1cm4gcChfKX0sY29udGVudDooMCx0LmpzeHMpKCJkaXYiLHtzdHlsZTp7cGFkZGluZzoiNHB4IDAifSxjaGlsZHJlbjpbKGQ9cy5zdGF0dXNSZW5kZXIpPT09bnVsbHx8ZD09PXZvaWQgMD92b2lkIDA6ZC5jYWxsKHMsWikscy5zdHJlbmd0aFRleHQ/KDAsdC5qc3gpKCJkaXYiLHtzdHlsZTp7bWFyZ2luVG9wOjEwfSxjaGlsZHJlbjooMCx0LmpzeCkoInNwYW4iLHtjaGlsZHJlbjpzLnN0cmVuZ3RoVGV4dH0pfSk6bnVsbF19KSxvdmVybGF5U3R5bGU6e3dpZHRoOjI0MH0scGxhY2VtZW50OiJyaWdodFRvcCJ9LHMucG9wb3ZlclByb3BzKSx7fSx7b3Blbjp1LGNoaWxkcmVuOnMuY2hpbGRyZW59KSl9fSl9LGY9ZnVuY3Rpb24ocyl7dmFyIG49cy5maWVsZFByb3BzLG89cy5wcm9GaWVsZFByb3BzLHU9KDAsaC5aKShzLFQpLHA9KDAsbS51c2VTdGF0ZSkoITEpLHY9KDAsYy5aKShwLDIpLEU9dlswXSxkPXZbMV07cmV0dXJuIG4hPW51bGwmJm4uc3RhdHVzUmVuZGVyJiZ1Lm5hbWU/KDAsdC5qc3gpKFIse25hbWU6dS5uYW1lLHN0YXR1c1JlbmRlcjpuPT1udWxsP3ZvaWQgMDpuLnN0YXR1c1JlbmRlcixwb3BvdmVyUHJvcHM6bj09bnVsbD92b2lkIDA6bi5wb3BvdmVyUHJvcHMsc3RyZW5ndGhUZXh0Om49PW51bGw/dm9pZCAwOm4uc3RyZW5ndGhUZXh0LG9wZW46RSxvbk9wZW5DaGFuZ2U6ZCxjaGlsZHJlbjooMCx0LmpzeCkoImRpdiIse2NoaWxkcmVuOigwLHQuanN4KShsLlosKDAsYS5aKSh7dmFsdWVUeXBlOiJwYXNzd29yZCIsZmllbGRQcm9wczooMCxhLlopKCgwLGEuWikoe30sKDAseC5aKShuLFsic3RhdHVzUmVuZGVyIiwicG9wb3ZlclByb3BzIiwic3RyZW5ndGhUZXh0Il0pKSx7fSx7b25CbHVyOmZ1bmN0aW9uKEQpe3ZhciBfO249PW51bGx8fChfPW4ub25CbHVyKT09PW51bGx8fF89PT12b2lkIDB8fF8uY2FsbChuLEQpLGQoITEpfSxvbkNsaWNrOmZ1bmN0aW9uKEQpe3ZhciBfO249PW51bGx8fChfPW4ub25DbGljayk9PT1udWxsfHxfPT09dm9pZCAwfHxfLmNhbGwobixEKSxkKCEwKX19KSxwcm9GaWVsZFByb3BzOm8sZmlsZWRDb25maWc6e3ZhbHVlVHlwZTpQfX0sdSkpfSl9KTooMCx0LmpzeCkobC5aLCgwLGEuWikoe3ZhbHVlVHlwZToicGFzc3dvcmQiLGZpZWxkUHJvcHM6bixwcm9GaWVsZFByb3BzOm8sZmlsZWRDb25maWc6e3ZhbHVlVHlwZTpQfX0sdSkpfSxBPUY7QS5QYXNzd29yZD1mLEEuZGlzcGxheU5hbWU9IlByb0Zvcm1Db21wb25lbnQiLGkuWj1BfSwzNTQwMDpmdW5jdGlvbihXLGksZSl7ZS5yKGkpO3ZhciBjPWUoMTUwMDkpLGE9ZS5uKGMpLGg9ZSg5OTI4OSksTz1lLm4oaCksaj1lKDU1NzQpLGc9ZS5uKGopLHg9ZSg5OTg1OSksbT1lKDcxMjMwKSxsPWUoMTU3NDYpLHQ9ZSgyNDUzKSxNPWUoODM2MjIpLFQ9ZSg2NzI5NCksUD1lKDc2NzcyKSxGPWUoMTkwMzUpLFI9ZSg5NzI2OSksZj1lKDU5NjYpLEE9ZSg5MDY3Mikscj1lKDg1ODkzKSxzPWZ1bmN0aW9uKG8pe3ZhciB1LHAsdixFLGQsWj14LloudXNlRm9ybSgpLEQ9ZygpKFosMSksXz1EWzBdLFU9by5vblN0ZXBTdWJtaXQ7KDAsVC51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7Xy5yZXNldEZpZWxkcygpLF8uc2V0RmllbGRzVmFsdWUoe3RhYmxlTmFtZTpvLnZhbHVlcy50YWJsZU5hbWV9KX0pO3ZhciBLPWZ1bmN0aW9uKCl7dmFyIGI9TygpKGEoKSgpLm1hcmsoZnVuY3Rpb24gSSgpe3ZhciBDO3JldHVybiBhKCkoKS53cmFwKGZ1bmN0aW9uKEIpe2Zvcig7Oylzd2l0Y2goQi5wcmV2PUIubmV4dCl7Y2FzZSAwOnJldHVybiBCLm5leHQ9MixfLnZhbGlkYXRlRmllbGRzKCk7Y2FzZSAyOkM9Qi5zZW50LFUmJlUoImJhc2UiLEMpO2Nhc2UgNDpjYXNlImVuZCI6cmV0dXJuIEIuc3RvcCgpfX0sSSl9KSk7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGIuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKTtyZXR1cm4oMCxyLmpzeHMpKFQuRnJhZ21lbnQse2NoaWxkcmVuOlsoMCxyLmpzeCkobS5aLHtjaGlsZHJlbjooMCxyLmpzeCkobC5aLHtzcGFuOjI0LGNoaWxkcmVuOigwLHIuanN4cykoUi5BLHtmb3JtOl8sb25GaW5pc2g6TygpKGEoKSgpLm1hcmsoZnVuY3Rpb24gYigpe3JldHVybiBhKCkoKS53cmFwKGZ1bmN0aW9uKEMpe2Zvcig7Oylzd2l0Y2goQy5wcmV2PUMubmV4dCl7Y2FzZSAwOnQuWlAuc3VjY2VzcygiXHU2M0QwXHU0RUE0XHU2MjEwXHU1MjlGIik7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gQy5zdG9wKCl9fSxiKX0pKSxpbml0aWFsVmFsdWVzOnt0YWJsZU5hbWU6KHU9by52YWx1ZXMpPT09bnVsbHx8dT09PXZvaWQgMD92b2lkIDA6dS50YWJsZU5hbWUsdGFibGVDb21tZW50OihwPW8udmFsdWVzKT09PW51bGx8fHA9PT12b2lkIDA/dm9pZCAwOnAudGFibGVDb21tZW50LGNsYXNzTmFtZToodj1vLnZhbHVlcyk9PT1udWxsfHx2PT09dm9pZCAwP3ZvaWQgMDp2LmNsYXNzTmFtZSxmdW5jdGlvbkF1dGhvcjooRT1vLnZhbHVlcyk9PT1udWxsfHxFPT09dm9pZCAwP3ZvaWQgMDpFLmZ1bmN0aW9uQXV0aG9yLHJlbWFyazooZD1vLnZhbHVlcyk9PT1udWxsfHxkPT09dm9pZCAwP3ZvaWQgMDpkLnJlbWFya30sc3VibWl0dGVyOntyZXNldEJ1dHRvblByb3BzOntzdHlsZTp7ZGlzcGxheToibm9uZSJ9fSxzdWJtaXRCdXR0b25Qcm9wczp7c3R5bGU6e2Rpc3BsYXk6Im5vbmUifX19LGNoaWxkcmVuOlsoMCxyLmpzeHMpKG0uWix7Y2hpbGRyZW46WygwLHIuanN4KShsLlose3NwYW46MTIsb3JkZXI6MSxjaGlsZHJlbjooMCxyLmpzeCkoZi5aLHtuYW1lOiJ0YWJsZU5hbWUiLGxhYmVsOiJcdTg4NjhcdTU0MERcdTc5RjAiLHJ1bGVzOlt7cmVxdWlyZWQ6ITAsbWVzc2FnZToiXHU4ODY4XHU1NDBEXHU3OUYwXHU0RTBEXHU1M0VGXHU0RTNBXHU3QTdBXHUzMDAyIn1dfSl9KSwoMCxyLmpzeCkobC5aLHtzcGFuOjEyLG9yZGVyOjIsY2hpbGRyZW46KDAsci5qc3gpKGYuWix7bmFtZToidGFibGVDb21tZW50IixsYWJlbDoiXHU4ODY4XHU2M0NGXHU4RkYwIn0pfSldfSksKDAsci5qc3hzKShtLlose2NoaWxkcmVuOlsoMCxyLmpzeCkobC5aLHtzcGFuOjEyLG9yZGVyOjEsY2hpbGRyZW46KDAsci5qc3gpKGYuWix7bmFtZToiY2xhc3NOYW1lIixsYWJlbDoiXHU1QjlFXHU0RjUzXHU3QzdCXHU1NDBEXHU3OUYwIixydWxlczpbe3JlcXVpcmVkOiEwLG1lc3NhZ2U6Ilx1NUI5RVx1NEY1M1x1N0M3Qlx1NTQwRFx1NzlGMFx1NEUwRFx1NTNFRlx1NEUzQVx1N0E3QVx1MzAwMiJ9XX0pfSksKDAsci5qc3gpKGwuWix7c3BhbjoxMixvcmRlcjoyLGNoaWxkcmVuOigwLHIuanN4KShmLlose25hbWU6ImZ1bmN0aW9uQXV0aG9yIixsYWJlbDoiXHU0RjVDXHU4MDA1In0pfSldfSksKDAsci5qc3gpKG0uWix7Y2hpbGRyZW46KDAsci5qc3gpKGwuWix7c3BhbjoyNCxjaGlsZHJlbjooMCxyLmpzeCkoQS5aLHtuYW1lOiJyZW1hcmsiLGxhYmVsOiJcdTU5MDdcdTZDRTgifSl9KX0pXX0pfSl9KSwoMCxyLmpzeHMpKG0uWix7anVzdGlmeToiY2VudGVyIixjaGlsZHJlbjpbKDAsci5qc3gpKGwuWix7c3Bhbjo0LGNoaWxkcmVuOigwLHIuanN4KShNLlpQLHt0eXBlOiJwcmltYXJ5IixjbGFzc05hbWU6Ri5aLnN0ZXBfYnV0dG9ucyxvbkNsaWNrOmZ1bmN0aW9uKCl7UC5oaXN0b3J5LmJhY2soKX0sY2hpbGRyZW46Ilx1OEZENFx1NTZERSJ9KX0pLCgwLHIuanN4KShsLlose3NwYW46NCxjaGlsZHJlbjooMCxyLmpzeCkoTS5aUCx7dHlwZToicHJpbWFyeSIsb25DbGljazpLLGNoaWxkcmVuOiJcdTRFMEJcdTRFMDBcdTZCNjUifSl9KV19KV19KX07aS5kZWZhdWx0PXN9LDE5MDM1OmZ1bmN0aW9uKFcsaSl7aS5aPXtzdGVwczoic3RlcHNfX19fc3RaRCJ9fX1dKTsKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNTQwMC5mZDliM2FiOS5jaHVuay5jc3MgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzU0MDAuZmQ5YjNhYjkuY2h1bmsuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRjMjdmNDAKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzU0MDAuZmQ5YjNhYjkuY2h1bmsuY3NzCkBAIC0wLDAgKzEgQEAKKy5zdGVwc19fX19zdFpELmFudC1zdGVwc3ttYXgtd2lkdGg6NzUwcHg7bWFyZ2luOjE2cHggYXV0b30KZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNTQ0My45NTM2ODEyZC5hc3luYy5qcyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNTQ0My45NTM2ODEyZC5hc3luYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wY2JlNDA5Ci0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy81NDQzLjk1MzY4MTJkLmFzeW5jLmpzCkBAIC0wLDAgKzEgQEAKKyJ1c2Ugc3RyaWN0Ijsoc2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Bybz1zZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvfHxbXSkucHVzaChbWzU0NDNdLHszNTYwMzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDE4NEg3MTJ2LTY0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2NEgzODR2LTY0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2NEgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjE2YzAtMTcuNy0xNC4zLTMyLTMyLTMyek02NDguMyA0MjYuOGwtODcuNyAxNjEuMWg0NS43YzUuNSAwIDEwIDQuNSAxMCAxMHYyMS4zYzAgNS41LTQuNSAxMC0xMCAxMGgtNjMuNHYyOS43aDYzLjRjNS41IDAgMTAgNC41IDEwIDEwdjIxLjNjMCA1LjUtNC41IDEwLTEwIDEwaC02My40Vjc1MmMwIDUuNS00LjUgMTAtMTAgMTBoLTQxLjNjLTUuNSAwLTEwLTQuNS0xMC0xMHYtNTEuOGgtNjMuMWMtNS41IDAtMTAtNC41LTEwLTEwdi0yMS4zYzAtNS41IDQuNS0xMCAxMC0xMGg2My4xdi0yOS43aC02My4xYy01LjUgMC0xMC00LjUtMTAtMTB2LTIxLjNjMC01LjUgNC41LTEwIDEwLTEwaDQ1LjJsLTg4LTE2MS4xYy0yLjYtNC44LS45LTEwLjkgNC0xMy42IDEuNS0uOCAzLjEtMS4yIDQuOC0xLjJoNDZjMy44IDAgNy4yIDIuMSA4LjkgNS41bDcyLjkgMTQ0LjMgNzMuMi0xNDQuM2ExMCAxMCAwIDAxOC45LTUuNWg0NWM1LjUgMCAxMCA0LjUgMTAgMTAgLjEgMS43LS4zIDMuMy0xLjEgNC44eiJ9fV19LG5hbWU6ImFjY291bnQtYm9vayIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSwzMzYwMDpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDE4NEg3MTJ2LTY0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2NEgzODR2LTY0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2NEgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjE2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNjU2SDE4NFYyNTZoMTI4djQ4YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTQ4aDI1NnY0OGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di00OGgxMjh2NTg0ek02MzkuNSA0MTRoLTQ1Yy0zIDAtNS44IDEuNy03LjEgNC40TDUxNCA1NjMuOGgtMi44bC03My40LTE0NS40YTggOCAwIDAwLTcuMS00LjRoLTQ2Yy0xLjMgMC0yLjcuMy0zLjggMS0zLjkgMi4xLTUuMyA3LTMuMiAxMC45bDg5LjMgMTY0aC00OC42Yy00LjQgMC04IDMuNi04IDh2MjEuM2MwIDQuNCAzLjYgOCA4IDhoNjUuMXYzMy43aC02NS4xYy00LjQgMC04IDMuNi04IDh2MjEuM2MwIDQuNCAzLjYgOCA4IDhoNjUuMVY3NTJjMCA0LjQgMy42IDggOCA4aDQxLjNjNC40IDAgOC0zLjYgOC04di01My44aDY1LjRjNC40IDAgOC0zLjYgOC04di0yMS4zYzAtNC40LTMuNi04LTgtOGgtNjUuNHYtMzMuN2g2NS40YzQuNCAwIDgtMy42IDgtOHYtMjEuM2MwLTQuNC0zLjYtOC04LThoLTQ5LjFsODkuMy0xNjQuMWMuNi0xLjIgMS0yLjUgMS0zLjguMS00LjQtMy40LTgtNy45LTh6In19XX0sbmFtZToiYWNjb3VudC1ib29rIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sMTM2Nzk6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNzEyIDMwNGMwIDQuNC0zLjYgOC04IDhoLTU2Yy00LjQgMC04LTMuNi04LTh2LTQ4SDM4NHY0OGMwIDQuNC0zLjYgOC04IDhoLTU2Yy00LjQgMC04LTMuNi04LTh2LTQ4SDE4NHY1ODRoNjU2VjI1Nkg3MTJ2NDh6bS02NS42IDEyMS44bC04OS4zIDE2NC4xaDQ5LjFjNC40IDAgOCAzLjYgOCA4djIxLjNjMCA0LjQtMy42IDgtOCA4aC02NS40djMzLjdoNjUuNGM0LjQgMCA4IDMuNiA4IDh2MjEuM2MwIDQuNC0zLjYgOC04IDhoLTY1LjRWNzUyYzAgNC40LTMuNiA4LTggOGgtNDEuM2MtNC40IDAtOC0zLjYtOC04di01My44aC02NS4xYy00LjQgMC04LTMuNi04LTh2LTIxLjNjMC00LjQgMy42LTggOC04aDY1LjF2LTMzLjdoLTY1LjFjLTQuNCAwLTgtMy42LTgtOHYtMjEuM2MwLTQuNCAzLjYtOCA4LThINDY3bC04OS4zLTE2NGMtMi4xLTMuOS0uNy04LjggMy4yLTEwLjkgMS4xLS43IDIuNS0xIDMuOC0xaDQ2YTggOCAwIDAxNy4xIDQuNGw3My40IDE0NS40aDIuOGw3My40LTE0NS40YzEuMy0yLjcgNC4xLTQuNCA3LjEtNC40aDQ1YzQuNSAwIDggMy42IDcuOSA4IDAgMS4zLS40IDIuNi0xIDMuOHoiLGZpbGw6bn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNjM5LjUgNDE0aC00NWMtMyAwLTUuOCAxLjctNy4xIDQuNEw1MTQgNTYzLjhoLTIuOGwtNzMuNC0xNDUuNGE4IDggMCAwMC03LjEtNC40aC00NmMtMS4zIDAtMi43LjMtMy44IDEtMy45IDIuMS01LjMgNy0zLjIgMTAuOWw4OS4zIDE2NGgtNDguNmMtNC40IDAtOCAzLjYtOCA4djIxLjNjMCA0LjQgMy42IDggOCA4aDY1LjF2MzMuN2gtNjUuMWMtNC40IDAtOCAzLjYtOCA4djIxLjNjMCA0LjQgMy42IDggOCA4aDY1LjFWNzUyYzAgNC40IDMuNiA4IDggOGg0MS4zYzQuNCAwIDgtMy42IDgtOHYtNTMuOGg2NS40YzQuNCAwIDgtMy42IDgtOHYtMjEuM2MwLTQuNC0zLjYtOC04LThoLTY1LjR2LTMzLjdoNjUuNGM0LjQgMCA4LTMuNiA4LTh2LTIxLjNjMC00LjQtMy42LTgtOC04aC00OS4xbDg5LjMtMTY0LjFjLjYtMS4yIDEtMi41IDEtMy44LjEtNC40LTMuNC04LTcuOS04eiIsZmlsbDphfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMTg0SDcxMnYtNjRjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djY0SDM4NHYtNjRjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djY0SDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYyMTZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA2NTZIMTg0VjI1NmgxMjh2NDhjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNDhoMjU2djQ4YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTQ4aDEyOHY1ODR6IixmaWxsOmF9fV19fSxuYW1lOiJhY2NvdW50LWJvb2siLHRoZW1lOiJ0d290b25lIn07dC5kZWZhdWx0PWV9LDk4NTU4OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoiZGVmcyIsYXR0cnM6e30sY2hpbGRyZW46W3t0YWc6InN0eWxlIixhdHRyczp7fX1dfSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTk1MiA0NzRIODI5LjhDODEyLjUgMzI3LjYgNjk2LjQgMjExLjUgNTUwIDE5NC4yVjcyYzAtNC40LTMuNi04LTgtOGgtNjBjLTQuNCAwLTggMy42LTggOHYxMjIuMkMzMjcuNiAyMTEuNSAyMTEuNSAzMjcuNiAxOTQuMiA0NzRINzJjLTQuNCAwLTggMy42LTggOHY2MGMwIDQuNCAzLjYgOCA4IDhoMTIyLjJDMjExLjUgNjk2LjQgMzI3LjYgODEyLjUgNDc0IDgyOS44Vjk1MmMwIDQuNCAzLjYgOCA4IDhoNjBjNC40IDAgOC0zLjYgOC04VjgyOS44QzY5Ni40IDgxMi41IDgxMi41IDY5Ni40IDgyOS44IDU1MEg5NTJjNC40IDAgOC0zLjYgOC04di02MGMwLTQuNC0zLjYtOC04LTh6TTUxMiA3NTZjLTEzNC44IDAtMjQ0LTEwOS4yLTI0NC0yNDRzMTA5LjItMjQ0IDI0NC0yNDQgMjQ0IDEwOS4yIDI0NCAyNDQtMTA5LjIgMjQ0LTI0NCAyNDR6In19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDM5MmMtMzIuMSAwLTYyLjEgMTIuNC04NC44IDM1LjItMjIuNyAyMi43LTM1LjIgNTIuNy0zNS4yIDg0LjhzMTIuNSA2Mi4xIDM1LjIgODQuOEM0NDkuOSA2MTkuNCA0ODAgNjMyIDUxMiA2MzJzNjIuMS0xMi41IDg0LjgtMzUuMkM2MTkuNCA1NzQuMSA2MzIgNTQ0IDYzMiA1MTJzLTEyLjUtNjIuMS0zNS4yLTg0LjhBMTE4LjU3IDExOC41NyAwIDAwNTEyIDM5MnoifX1dfSxuYW1lOiJhaW0iLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSwxMTYxODpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDI0NGMxNzYuMTggMCAzMTkgMTQyLjgyIDMxOSAzMTl2MjMzYTMyIDMyIDAgMDEtMzIgMzJIMjI1YTMyIDMyIDAgMDEtMzItMzJWNTYzYzAtMTc2LjE4IDE0Mi44Mi0zMTkgMzE5LTMxOXpNNDg0IDY4aDU2YTggOCAwIDAxOCA4djk2YTggOCAwIDAxLTggOGgtNTZhOCA4IDAgMDEtOC04Vjc2YTggOCAwIDAxOC04ek0xNzcuMjUgMTkxLjY2YTggOCAwIDAxMTEuMzIgMGw2Ny44OCA2Ny44OGE4IDggMCAwMTAgMTEuMzFsLTM5LjYgMzkuNmE4IDggMCAwMS0xMS4zMSAwbC02Ny44OC02Ny44OGE4IDggMCAwMTAtMTEuMzFsMzkuNi0zOS42em02NjkuNiAwbDM5LjYgMzkuNmE4IDggMCAwMTAgMTEuM2wtNjcuODggNjcuOWE4IDggMCAwMS0xMS4zMiAwbC0zOS42LTM5LjZhOCA4IDAgMDEwLTExLjMybDY3Ljg5LTY3Ljg4YTggOCAwIDAxMTEuMzEgMHpNMTkyIDg5Mmg2NDBhMzIgMzIgMCAwMTMyIDMydjI0YTggOCAwIDAxLTggOEgxNjhhOCA4IDAgMDEtOC04di0yNGEzMiAzMiAwIDAxMzItMzJ6bTE0OC0zMTd2MjUzaDY0VjU3NWgtNjR6In19XX0sbmFtZToiYWxlcnQiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sOTIyODM6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTE5MyA3OTZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNTc0YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjU2M2MwLTE3Ni4yLTE0Mi44LTMxOS0zMTktMzE5UzE5MyAzODYuOCAxOTMgNTYzdjIzM3ptNzItMjMzYzAtMTM2LjQgMTEwLjYtMjQ3IDI0Ny0yNDdzMjQ3IDExMC42IDI0NyAyNDd2MTkzSDQwNFY1ODVjMC01LjUtNC41LTEwLTEwLTEwaC00NGMtNS41IDAtMTAgNC41LTEwIDEwdjE3MWgtNzVWNTYzem0tNDguMS0yNTIuNWwzOS42LTM5LjZjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM2wtNjcuOS02Ny45YTguMDMgOC4wMyAwIDAwLTExLjMgMGwtMzkuNiAzOS42YTguMDMgOC4wMyAwIDAwMCAxMS4zbDY3LjkgNjcuOWMzLjEgMy4xIDguMSAzLjEgMTEuMyAwem02NjkuNi03OS4ybC0zOS42LTM5LjZhOC4wMyA4LjAzIDAgMDAtMTEuMyAwbC02Ny45IDY3LjlhOC4wMyA4LjAzIDAgMDAwIDExLjNsMzkuNiAzOS42YzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBsNjcuOS02Ny45YzMuMS0zLjIgMy4xLTguMiAwLTExLjN6TTgzMiA4OTJIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnYyNGMwIDQuNCAzLjYgOCA4IDhoNjg4YzQuNCAwIDgtMy42IDgtOHYtMjRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTQ4NCAxODBoNTZjNC40IDAgOC0zLjYgOC04Vjc2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY5NmMwIDQuNCAzLjYgOCA4IDh6In19XX0sbmFtZToiYWxlcnQiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw0MjE5NzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjpmdW5jdGlvbihhLG4pe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0zNDAgNTg1YzAtNS41IDQuNS0xMCAxMC0xMGg0NGM1LjUgMCAxMCA0LjUgMTAgMTB2MTcxaDM1NVY1NjNjMC0xMzYuNC0xMTAuNi0yNDctMjQ3LTI0N1MyNjUgNDI2LjYgMjY1IDU2M3YxOTNoNzVWNTg1eiIsZmlsbDpufX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0yMTYuOSAzMTAuNWwzOS42LTM5LjZjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM2wtNjcuOS02Ny45YTguMDMgOC4wMyAwIDAwLTExLjMgMGwtMzkuNiAzOS42YTguMDMgOC4wMyAwIDAwMCAxMS4zbDY3LjkgNjcuOWMzLjEgMy4xIDguMSAzLjEgMTEuMyAwem02NjkuNi03OS4ybC0zOS42LTM5LjZhOC4wMyA4LjAzIDAgMDAtMTEuMyAwbC02Ny45IDY3LjlhOC4wMyA4LjAzIDAgMDAwIDExLjNsMzkuNiAzOS42YzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBsNjcuOS02Ny45YzMuMS0zLjIgMy4xLTguMiAwLTExLjN6TTQ4NCAxODBoNTZjNC40IDAgOC0zLjYgOC04Vjc2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY5NmMwIDQuNCAzLjYgOCA4IDh6bTM0OCA3MTJIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnYyNGMwIDQuNCAzLjYgOCA4IDhoNjg4YzQuNCAwIDgtMy42IDgtOHYtMjRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS02MzktOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNTc0YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjU2M2MwLTE3Ni4yLTE0Mi44LTMxOS0zMTktMzE5UzE5MyAzODYuOCAxOTMgNTYzdjIzM3ptNzItMjMzYzAtMTM2LjQgMTEwLjYtMjQ3IDI0Ny0yNDdzMjQ3IDExMC42IDI0NyAyNDd2MTkzSDQwNFY1ODVjMC01LjUtNC41LTEwLTEwLTEwaC00NGMtNS41IDAtMTAgNC41LTEwIDEwdjE3MWgtNzVWNTYzeiIsZmlsbDphfX1dfX0sbmFtZToiYWxlcnQiLHRoZW1lOiJ0d290b25lIn07dC5kZWZhdWx0PWV9LDkxNjcyOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02MDIuOSA2NjkuOGMtMzcuMiAyLjYtMzMuNi0xNy4zLTExLjUtNDYuMiA1MC40LTY3LjIgMTQzLjctMTU4LjUgMTQ3LjktMjI1LjIgNS44LTg2LjYtODEuMy0xMTMuNC0xNzEtMTEzLjQtNjIuNCAxLjYtMTI3IDE4LjktMTcxIDM0LjYtMTUxLjYgNTMuNS0yNDYuNiAxMzcuNS0zMDYuOSAyMzItNjIuNCA5My40LTQzIDE4My4yIDkxLjggMTg1LjggMTAxLjgtNC4yIDE3MC41LTMyLjUgMjM5LjctNjguMi41IDAtMTkyLjUgNTUuMS0yNjMuOSAxNC43LTcuOS00LjItMTUuNy0xMC0xNy44LTI2LjIgMC0zMy4xIDU0LjYtNjcuNyA4Ni42LTc4Ljd2LTU2LjdjNjQuNSAyMi42IDE0MC42IDE2LjMgMjA1LjctMzIgMi4xIDUuOCA0LjIgMTMuMSAzLjcgMjFoMTFjMi42LTIyLjYtMTIuNi00NC42LTM3LjgtNDYuMiA3LjMgNS44IDEyLjYgMTAuNSAxNS4yIDE0LjdsLTEgMS0uNS41Yy04My45IDU4LjgtMTY1LjMgMzEuNS0xNzMuMSAyOS45bDQ2LjctNDUuNy0xMy4xLTMzLjFjOTIuOS0zMi41IDE2OS41LTU2LjIgMjk2LjktNzguN2wtMjguNS0yMyAxNC43LTguOWM3NS41IDIxIDEyNi40IDM2LjcgMTIzLjggNzYuNi0xIDYuOC0zLjcgMTQuNy03LjkgMjMuMUM2NjAuMSA0NjYuMSA1OTQgNTM4IDU2Ny4yIDU2OWMtMTcuMyAyMC41LTM0LjYgMzkuNC00Ni43IDU4LjMtMTMuNiAxOS40LTIwLjUgMzcuMy0yMSA1My41IDIuNiAxMzEuOCAzOTEuNC02MS45IDQ2OC0xMTIuOS0xMTEuNyA0Ny44LTIzMi45IDkzLjUtMzY0LjYgMTAxLjl6bTg1LTMwMi45YzIuOCA1LjIgNC4xIDExLjYgNC4xIDE5LjEtLjEtNi44LTEuNC0xMy4zLTQuMS0xOS4xeiJ9fV19LG5hbWU6ImFsaWJhYmEiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSwxNTA1OTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMjY0IDIzMGg0OTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThIMjY0Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em00OTYgNDI0YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04SDI2NGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg0OTZ6bTE0NCAxNDBIMTIwYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC00MjRIMTIwYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHoifX1dfSxuYW1lOiJhbGlnbi1jZW50ZXIiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw2MDkzMTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMTIwIDIzMGg0OTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThIMTIwYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em0wIDQyNGg0OTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThIMTIwYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em03ODQgMTQwSDEyMGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg3ODRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtNDI0SDEyMGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg3ODRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6In19XX0sbmFtZToiYWxpZ24tbGVmdCIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDI0ODI1OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MDQgMTU4SDQwOGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg0OTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgNDI0SDQwOGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg0OTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgMjEySDEyMGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg3ODRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtNDI0SDEyMGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg3ODRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6In19XX0sbmFtZToiYWxpZ24tcmlnaHQiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw0MjE4MTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnsiZmlsbC1ydWxlIjoiZXZlbm9kZCIsdmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NGMyNDcuNDIgMCA0NDggMjAwLjU4IDQ0OCA0NDhTNzU5LjQyIDk2MCA1MTIgOTYwIDY0IDc1OS40MiA2NCA1MTIgMjY0LjU4IDY0IDUxMiA2NG0zMi41IDE2OGMtNjkuNjcgMC04Ni4wNiAxNi44NC04Ni43MiAzOS4wOGwtLjAyIDEuNDN2NDYuNjJIMjkxLjQ1Yy05LjkyIDAtMTQuMjggMjMuMDUtMTQuMjcgMzkuMyAwIDIuNyAyLjA4IDQuOTMgNC43NyA0LjkzaDE3NS44MXY1OC4zaC0xMTYuNWMtOS45NiAwLTE0LjMgMjMuNzYtMTQuMjcgMzkuNDdhNC43NyA0Ljc3IDAgMDA0Ljc3IDQuNzZoMjMzLjQ1Yy00LjUzIDQxLjA2LTE1LjQzIDc3LjU5LTMwLjcyIDEwOS4zMmwtMS4yMiAyLjUtLjMyLS4yOGMtNjAuMjQtMjguNDctMTIwLjQzLTUyLjU3LTE5NC40LTUyLjU3bC0yLjYyLjAxYy04NC45OCAxLjExLTE0NC43MSA1Ni41LTE0NS45MSAxMjcuMDRsLS4wMiAxLjIyLjAyIDIuMTNjMS4yNCA3MC40IDYzLjU2IDEyNi40NSAxNDguNTIgMTI2LjQ1IDYxLjI1IDAgMTE2LjM4LTE2Ljg1IDE2My40Ni00NS4wMmExMzguNTggMTM4LjU4IDAgMDAxNC4wNy03Ljk2IDM0NS42IDM0NS42IDAgMDA1MC4zLTQxLjE2bDkuNDUgNi4zNSAxMi40NiA4LjMyYzU3LjUzIDM4LjI2IDExMy43NiA3Mi42MiAxNjkuODYgNzkuMjdhMTQyLjYyIDE0Mi42MiAwIDAwMTguMzEgMS4xNmM0My4wMiAwIDU1LTUyLjY4IDU3LjM5LTk1LjUxbC4xNC0yLjg0Yy40LTguNDYtNi4yLTE1LjYtMTQuNjUtMTUuODYtNzUuNDYtMi4zNy0xMzYuNDUtMjIuMDUtMTkyLTQ2LjExbC02LjI3LTIuNzVjMzUuMTUtNTYuOCA1Ni42Ni0xMjEuODEgNTcuMTUtMTg2LjY2bC4wOS0xLjA4Yy40LTUuNTEtNC0xMC4yLTkuNTItMTAuMkg1NDkuMzN2LTU4LjNoMTY1LjczYzkuOTIgMCAxNC4yOC0yMi4xMiAxNC4yNy0zOS4zMWE0Ljg1IDQuODUgMCAwMC00Ljc4LTQuOTJINTQ5LjMydi04Mi4zNWE0LjggNC44IDAgMDAtNC44My00Ljc4TTMyOCA1ODMuODVjNTQuNjMgMCAxMDcuMDggMjIuNDEgMTU4LjEgNTIuMTlsNS43NiAzLjRjLTEwMy41NyAxMTkuODQtMjQ3LjE3IDk1LjktMjYxLjcyIDI2LjM3YTY2Ljg5IDY2Ljg5IDAgMDEtMS4xNC05LjgzbC0uMDYtMi4zNC4wMi0uOWMuOTctNDAuMTIgNDUuMzMtNjguOSA5OS4wNC02OC45In19XX0sbmFtZToiYWxpcGF5LWNpcmNsZSIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSwyMDI5MzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnsiZmlsbC1ydWxlIjoiZXZlbm9kZCIsdmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NGMyNDcuNDIgMCA0NDggMjAwLjU4IDQ0OCA0NDhTNzU5LjQyIDk2MCA1MTIgOTYwIDY0IDc1OS40MiA2NCA1MTIgMjY0LjU4IDY0IDUxMiA2NG0zMi41IDE2OGMtNjkuNjcgMC04Ni4wNiAxNi44NC04Ni43MiAzOS4wOGwtLjAyIDEuNDN2NDYuNjJIMjkxLjQ1Yy05LjkyIDAtMTQuMjggMjMuMDUtMTQuMjcgMzkuMyAwIDIuNyAyLjA4IDQuOTMgNC43NyA0LjkzaDE3NS44MXY1OC4zaC0xMTYuNWMtOS45NiAwLTE0LjMgMjMuNzYtMTQuMjcgMzkuNDdhNC43NyA0Ljc3IDAgMDA0Ljc3IDQuNzZoMjMzLjQ1Yy00LjUzIDQxLjA2LTE1LjQzIDc3LjU5LTMwLjcyIDEwOS4zMmwtMS4yMiAyLjUtLjMyLS4yOGMtNjAuMjQtMjguNDctMTIwLjQzLTUyLjU3LTE5NC40LTUyLjU3bC0yLjYyLjAxYy04NC45OCAxLjExLTE0NC43MSA1Ni41LTE0NS45MSAxMjcuMDRsLS4wMiAxLjIyLjAyIDIuMTNjMS4yNCA3MC40IDYzLjU2IDEyNi40NSAxNDguNTIgMTI2LjQ1IDYxLjI1IDAgMTE2LjM4LTE2Ljg1IDE2My40Ni00NS4wMmExMzguNTggMTM4LjU4IDAgMDAxNC4wNy03Ljk2IDM0NS42IDM0NS42IDAgMDA1MC4zLTQxLjE2bDkuNDUgNi4zNSAxMi40NiA4LjMyYzU3LjUzIDM4LjI2IDExMy43NiA3Mi42MiAxNjkuODYgNzkuMjdhMTQyLjYyIDE0Mi42MiAwIDAwMTguMzEgMS4xNmM0My4wMiAwIDU1LTUyLjY4IDU3LjM5LTk1LjUxbC4xNC0yLjg0Yy40LTguNDYtNi4yLTE1LjYtMTQuNjUtMTUuODYtNzUuNDYtMi4zNy0xMzYuNDUtMjIuMDUtMTkyLTQ2LjExbC02LjI3LTIuNzVjMzUuMTUtNTYuOCA1Ni42Ni0xMjEuODEgNTcuMTUtMTg2LjY2bC4wOS0xLjA4Yy40LTUuNTEtNC0xMC4yLTkuNTItMTAuMkg1NDkuMzN2LTU4LjNoMTY1LjczYzkuOTIgMCAxNC4yOC0yMi4xMiAxNC4yNy0zOS4zMWE0Ljg1IDQuODUgMCAwMC00Ljc4LTQuOTJINTQ5LjMydi04Mi4zNWE0LjggNC44IDAgMDAtNC44My00Ljc4TTMyOCA1ODMuODVjNTQuNjMgMCAxMDcuMDggMjIuNDEgMTU4LjEgNTIuMTlsNS43NiAzLjRjLTEwMy41NyAxMTkuODQtMjQ3LjE3IDk1LjktMjYxLjcyIDI2LjM3YTY2Ljg5IDY2Ljg5IDAgMDEtMS4xNC05LjgzbC0uMDYtMi4zNC4wMi0uOWMuOTctNDAuMTIgNDUuMzMtNjguOSA5OS4wNC02OC45In19XX0sbmFtZToiYWxpcGF5LWNpcmNsZSIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDYxOTI6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7ImZpbGwtcnVsZSI6ImV2ZW5vZGQiLHZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01NTcuMiAxMjlhNi42OCA2LjY4IDAgMDE2LjcyIDYuNjVWMjUwLjJoMjQzLjhhNi43NCA2Ljc0IDAgMDE2LjY1IDYuODRjLjAyIDIzLjkyLTYuMDUgNTQuNjktMTkuODUgNTQuNjlINTYzLjk0djgxLjFoMTY2LjE4YzcuNjkgMCAxMy44IDYuNTEgMTMuMjUgMTQuMThsLS4xMSAxLjUxYy0uNyA5MC4yLTMwLjYzIDE4MC42NC03OS41MiAyNTkuNjVsOC43MSAzLjgyYzc3LjMgMzMuNDggMTYyLjE1IDYwLjg1IDI2Ny4xNSA2NC4xNGEyMS4wOCAyMS4wOCAwIDAxMjAuMzggMjIuMDdsLS4yIDMuOTVjLTMuMzQgNTkuNTctMjAgMTMyLjg1LTc5Ljg1IDEzMi44NS04LjggMC0xNy4yOS0uNTUtMjUuNDgtMS42MS03OC4wNC05LjI1LTE1Ni4yOC01Ny4wNS0yMzYuMzItMTEwLjI3bC0xNy4zMy0xMS41Ny0xMy4xNS04LjgzYTQ4MC44MyA0ODAuODMgMCAwMS02OS45OSA1Ny4yNSAxOTIuOCAxOTIuOCAwIDAxLTE5LjU3IDExLjA4Yy02NS41MSAzOS4xOC0xNDIuMjEgNjIuNi0yMjcuNDIgNjIuNjItMTE4LjIgMC0yMDQuOTItNzcuOTctMjA2LjY0LTE3NS45bC0uMDMtMi45NS4wMy0xLjdjMS42Ni05OC4xMiA4NC43Ny0xNzUuMTggMjAzLTE3Ni43MmwzLjY0LS4wM2MxMDIuOTIgMCAxODYuNjYgMzMuNTQgMjcwLjQ4IDczLjE0bC40NC4zOCAxLjctMy40N2MyMS4yNy00NC4xNCAzNi40NC05NC45NSA0Mi43NC0xNTIuMDZoLTMyNC44YTYuNjQgNi42NCAwIDAxLTYuNjMtNi42MmMtLjA0LTIxLjg2IDYtNTQuOTEgMTkuODUtNTQuOTFoMTYyLjF2LTgxLjFIMTkxLjkyYTYuNzEgNi43MSAwIDAxLTYuNjQtNi44NWMtLjAxLTIyLjYxIDYuMDYtNTQuNjggMTkuODYtNTQuNjhoMjMxLjR2LTY0Ljg1bC4wMi0xLjk5Yy45LTMwLjkzIDIzLjcyLTU0LjM2IDEyMC42NC01NC4zNk0yNTYuOSA2MTljLTc0Ljc3IDAtMTM2LjUzIDM5LjkzLTEzNy44OCA5NS42bC0uMDIgMS4yNi4wOCAzLjI0YTkyLjU1IDkyLjU1IDAgMDAxLjU4IDEzLjY0YzIwLjI2IDk2LjUgMjIwLjE2IDEyOS43MSAzNjQuMzQtMzYuNTlsLTguMDMtNC43MkM0MDUuOTUgNjUwLjExIDMzMi45NCA2MTkgMjU2LjkgNjE5In19XX0sbmFtZToiYWxpcGF5Iix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sODU0NDE6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7ImZpbGwtcnVsZSI6ImV2ZW5vZGQiLHZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04OTQuNiAxMTYuNTRhMzAuOSAzMC45IDAgMDExMi44NiAxMi44NWMyLjk2IDUuNTQgNC41NCAxMS4wNCA0LjU0IDI2LjJWODY4LjRjMCAxNS4xNi0xLjU4IDIwLjY2LTQuNTQgMjYuMmEzMC45IDMwLjkgMCAwMS0xMi44NSAxMi44NWMtNS41NCAyLjk2LTExLjA0IDQuNTQtMjYuMiA0LjU0SDE1NS42Yy0xNS4xNiAwLTIwLjY2LTEuNTgtMjYuMi00LjU0YTMwLjkgMzAuOSAwIDAxLTEyLjg1LTEyLjg1Yy0yLjkyLTUuNDctNC41LTEwLjktNC41NC0yNS41OVYxNTUuNmMwLTE1LjE2IDEuNTgtMjAuNjYgNC41NC0yNi4yYTMwLjkgMzAuOSAwIDAxMTIuODUtMTIuODVjNS40Ny0yLjkyIDEwLjktNC41IDI1LjU5LTQuNTRIODY4LjRjMTUuMTYgMCAyMC42NiAxLjU4IDI2LjIgNC41NE01NDEgMjYyYy02Mi4yIDAtNzYuODMgMTUuMDQtNzcuNDIgMzQuOWwtLjAyIDEuMjd2NDEuNjJIMzE1LjA4Yy04Ljg2IDAtMTIuNzUgMjAuNTktMTIuNzQgMzUuMWE0LjMgNC4zIDAgMDA0LjI2IDQuNGgxNTYuOTd2NTIuMDVIMzU5LjU2Yy04LjkgMC0xMi43NyAyMS4yMi0xMi43NSAzNS4yNWE0LjI2IDQuMjYgMCAwMDQuMjYgNC4yNWgyMDguNDRjLTQuMDQgMzYuNjYtMTMuNzggNjkuMjctMjcuNDMgOTcuNmwtMS4wOSAyLjIzLS4yOC0uMjVjLTUzLjgtMjUuNDItMTA3LjUzLTQ2Ljk0LTE3My41OC00Ni45NGwtMi4zMy4wMWMtNzUuODggMS0xMjkuMjEgNTAuNDUtMTMwLjI4IDExMy40M2wtLjAyIDEuMS4wMiAxLjg5YzEuMSA2Mi44NSA1Ni43NSAxMTIuOSAxMzIuNiAxMTIuOSA1NC43IDAgMTAzLjkxLTE1LjA0IDE0NS45NS00MC4yYTEyMy43MyAxMjMuNzMgMCAwMDEyLjU2LTcuMSAzMDguNiAzMDguNiAwIDAwNDQuOTItMzYuNzVsOC40NCA1LjY3IDExLjEyIDcuNDNjNTEuMzYgMzQuMTUgMTAxLjU3IDY0LjgzIDE1MS42NiA3MC43N2ExMjcuMzQgMTI3LjM0IDAgMDAxNi4zNSAxLjA0YzM4LjQgMCA0OS4xLTQ3LjA0IDUxLjI0LTg1LjI4bC4xMy0yLjUzYTEzLjUzIDEzLjUzIDAgMDAtMTMuMDgtMTQuMTdjLTY3LjM5LTIuMS0xMjEuODQtMTkuNjgtMTcxLjQ0LTQxLjE3bC01LjYtMi40NGMzMS4zOS01MC43MiA1MC42LTEwOC43NyA1MS4wNC0xNjYuNjdsLjA3LS45NmE4LjUxIDguNTEgMCAwMC04LjUtOS4xSDU0NS4zM3YtNTIuMDZINjkzLjNjOC44NiAwIDEyLjc1LTE5Ljc1IDEyLjc1LTM1LjEtLjAxLTIuNC0xLjg3LTQuNC00LjI3LTQuNEg1NDUuMzJ2LTczLjUyYTQuMjkgNC4yOSAwIDAwLTQuMzEtNC4yN20tMTkzLjMgMzE0LjE1YzQ4Ljc3IDAgOTUuNiAyMC4wMSAxNDEuMTUgNDYuNmw1LjE1IDMuMDRjLTkyLjQ4IDEwNy0yMjAuNjkgODUuNjItMjMzLjY4IDIzLjU0YTU5LjcyIDU5LjcyIDAgMDEtMS4wMi04Ljc4bC0uMDUtMi4wOC4wMS0uODFjLjg3LTM1LjgyIDQwLjQ4LTYxLjUxIDg4LjQ0LTYxLjUxIn19XX0sbmFtZToiYWxpcGF5LXNxdWFyZSIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSwxMjc2OTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODY4LjIgMzc3LjRjLTE4LjktNDUuMS00Ni4zLTg1LjYtODEuMi0xMjAuNmEzNzcuMjYgMzc3LjI2IDAgMDAtMTIwLjUtODEuMkEzNzUuNjUgMzc1LjY1IDAgMDA1MTkgMTQ1LjhjLTQxLjkgMC04Mi45IDYuNy0xMjEuOSAyMEMzMDYgMTIzLjMgMjAwLjggMTIwIDE3MC42IDEyMGMtMi4yIDAtNy40IDAtOS40LjItMTEuOS40LTIyLjggNi41LTI5LjIgMTYuNC02LjUgOS45LTcuNyAyMi40LTMuNCAzMy41bDY0LjMgMTYxLjZhMzc4LjU5IDM3OC41OSAwIDAwLTUyLjggMTkzLjJjMCA1MS40IDEwIDEwMSAyOS44IDE0Ny42IDE4LjkgNDUgNDYuMiA4NS42IDgxLjIgMTIwLjUgMzQuNyAzNC44IDc1LjQgNjIuMSAxMjAuNSA4MS4yQzQxOC4zIDg5NCA0NjcuOSA5MDQgNTE5IDkwNGM1MS4zIDAgMTAwLjktMTAgMTQ3LjctMjkuOCA0NC45LTE4LjkgODUuNS00Ni4zIDEyMC40LTgxLjIgMzQuNy0zNC44IDYyLjEtNzUuNCA4MS4yLTEyMC42YTM3Ni41IDM3Ni41IDAgMDAyOS44LTE0Ny42Yy0uMi01MS4yLTEwLjEtMTAwLjgtMjkuOS0xNDcuNHptLTMyNS4yIDc5YzAgMjAuNC0xNi42IDM3LjEtMzcuMSAzNy4xLTIwLjQgMC0zNy4xLTE2LjctMzcuMS0zNy4xdi01NS4xYzAtMjAuNCAxNi42LTM3LjEgMzcuMS0zNy4xIDIwLjQgMCAzNy4xIDE2LjYgMzcuMSAzNy4xdjU1LjF6bTE3NS4yIDBjMCAyMC40LTE2LjYgMzcuMS0zNy4xIDM3LjFTNjQ0IDQ3Ni44IDY0NCA0NTYuNHYtNTUuMWMwLTIwLjQgMTYuNy0zNy4xIDM3LjEtMzcuMSAyMC40IDAgMzcuMSAxNi42IDM3LjEgMzcuMXY1NS4xeiJ9fV19LG5hbWU6ImFsaXdhbmd3YW5nIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDk2MDE2OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NjguMiAzNzcuNGMtMTguOS00NS4xLTQ2LjMtODUuNi04MS4yLTEyMC42YTM3Ny4yNiAzNzcuMjYgMCAwMC0xMjAuNS04MS4yQTM3NS42NSAzNzUuNjUgMCAwMDUxOSAxNDUuOGMtNDEuOSAwLTgyLjkgNi43LTEyMS45IDIwQzMwNiAxMjMuMyAyMDAuOCAxMjAgMTcwLjYgMTIwYy0yLjIgMC03LjQgMC05LjQuMi0xMS45LjQtMjIuOCA2LjUtMjkuMiAxNi40LTYuNSA5LjktNy43IDIyLjQtMy40IDMzLjVsNjQuMyAxNjEuNmEzNzguNTkgMzc4LjU5IDAgMDAtNTIuOCAxOTMuMmMwIDUxLjQgMTAgMTAxIDI5LjggMTQ3LjYgMTguOSA0NSA0Ni4yIDg1LjYgODEuMiAxMjAuNSAzNC43IDM0LjggNzUuNCA2Mi4xIDEyMC41IDgxLjJDNDE4LjMgODk0IDQ2Ny45IDkwNCA1MTkgOTA0YzUxLjMgMCAxMDAuOS0xMC4xIDE0Ny43LTI5LjggNDQuOS0xOC45IDg1LjUtNDYuMyAxMjAuNC04MS4yIDM0LjctMzQuOCA2Mi4xLTc1LjQgODEuMi0xMjAuNmEzNzYuNSAzNzYuNSAwIDAwMjkuOC0xNDcuNmMtLjItNTEuMi0xMC4xLTEwMC44LTI5LjktMTQ3LjR6bS02Ni40IDI2Ni41YTMwNy4wOCAzMDcuMDggMCAwMS02NS45IDk4Yy0yOC40IDI4LjUtNjEuMyA1MC43LTk3LjcgNjUuOWgtLjFjLTM4IDE2LTc4LjMgMjQuMi0xMTkuOSAyNC4yYTMwNi41MSAzMDYuNTEgMCAwMS0yMTcuNS05MC4yYy0yOC40LTI4LjUtNTAuNi02MS40LTY1LjgtOTcuOHYtLjFjLTE2LTM3LjgtMjQuMS03OC4yLTI0LjEtMTE5LjkgMC01NS40IDE0LjgtMTA5LjcgNDIuOC0xNTdsMTMuMi0yMi4xLTkuNS0yMy45TDIwNiAxOTJjMTQuOS42IDM1LjkgMi4xIDU5LjcgNS42IDQzLjggNi41IDgyLjUgMTcuNSAxMTQuOSAzMi42bDE5IDguOSAxOS45LTYuOGMzMS41LTEwLjggNjQuOC0xNi4yIDk4LjktMTYuMmEzMDYuNTEgMzA2LjUxIDAgMDEyMTcuNSA5MC4yYzI4LjQgMjguNSA1MC42IDYxLjQgNjUuOCA5Ny44bC4xLjEuMS4xYzE2IDM3LjYgMjQuMSA3OCAyNC4yIDExOS44LS4xIDQxLjctOC4zIDgyLTI0LjMgMTE5Ljh6TTY4MS4xIDM2NC4yYy0yMC40IDAtMzcuMSAxNi43LTM3LjEgMzcuMXY1NS4xYzAgMjAuNCAxNi42IDM3LjEgMzcuMSAzNy4xczM3LjEtMTYuNyAzNy4xLTM3LjF2LTU1LjFjMC0yMC41LTE2LjctMzcuMS0zNy4xLTM3LjF6bS0xNzUuMiAwYy0yMC41IDAtMzcuMSAxNi43LTM3LjEgMzcuMXY1NS4xYzAgMjAuNCAxNi43IDM3LjEgMzcuMSAzNy4xIDIwLjUgMCAzNy4xLTE2LjcgMzcuMS0zNy4xdi01NS4xYzAtMjAuNS0xNi43LTM3LjEtMzcuMS0zNy4xeiJ9fV19LG5hbWU6ImFsaXdhbmd3YW5nIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sODc5Mzc6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTk1OS4yIDM4My45Yy0uMy04Mi4xLTY2LjktMTQ4LjYtMTQ5LjEtMTQ4LjZINTc1LjlsMjEuNiA4NS4yIDIwMSA0My43YTQyLjU4IDQyLjU4IDAgMDEzMi45IDM5LjdjLjEuNS4xIDIxNi4xIDAgMjE2LjZhNDIuNTggNDIuNTggMCAwMS0zMi45IDM5LjdsLTIwMSA0My43LTIxLjYgODUuM2gyMzQuMmM4Mi4xIDAgMTQ4LjgtNjYuNSAxNDkuMS0xNDguNlYzODMuOXpNMjI1LjUgNjYwLjRhNDIuNTggNDIuNTggMCAwMS0zMi45LTM5LjdjLS4xLS42LS4xLTIxNi4xIDAtMjE2LjYuOC0xOS40IDE0LjYtMzUuNSAzMi45LTM5LjdsMjAxLTQzLjcgMjEuNi04NS4ySDIxMy44Yy04Mi4xIDAtMTQ4LjggNjYuNC0xNDkuMSAxNDguNlY2NDFjLjMgODIuMSA2NyAxNDguNiAxNDkuMSAxNDguNkg0NDhsLTIxLjYtODUuMy0yMDAuOS00My45em0yMDAuOS0xNTguOGgxNzF2MjEuM2gtMTcxeiJ9fV19LG5hbWU6ImFsaXl1biIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDY3MDU1OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00ODUgNDY3LjVjLTExLjYgNC45LTIwLjkgMTIuMi0yNy44IDIyLTYuOSA5LjgtMTAuNCAyMS42LTEwLjQgMzUuNSAwIDE3LjggNy41IDMxLjUgMjIuNCA0MS4yIDE0LjEgOS4xIDI4LjkgMTEuNCA0NC40IDYuOCAxNy45LTUuMiAzMC0xNy45IDM2LjQtMzguMSAzLTkuMyA0LjUtMTkuNyA0LjUtMzEuM3YtNTAuMmMtMTIuNi40LTI0LjQgMS42LTM1LjUgMy43LTExLjEgMi4xLTIyLjQgNS42LTM0IDEwLjR6TTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0zNS44IDI2Mi43Yy03LjItMTAuOS0yMC4xLTE2LjQtMzguNy0xNi40LTEuMyAwLTMgLjEtNS4zLjMtMi4yLjItNi42IDEuNS0xMi45IDMuN2E3OS40IDc5LjQgMCAwMC0xNy45IDkuMWMtNS41IDMuOC0xMS41IDEwLTE4IDE4LjQtNi40IDguNS0xMS41IDE4LjQtMTUuMyAyOS44bC05NC04LjRjMC0xMi40IDIuNC0yNC43IDctMzYuOSA0LjctMTIuMiAxMS44LTIzLjkgMjEuNC0zNSA5LjYtMTEuMiAyMS4xLTIxIDM0LjUtMjkuNCAxMy40LTguNSAyOS42LTE1LjIgNDguNC0yMC4zIDE4LjktNS4xIDM5LjEtNy42IDYwLjktNy42IDIxLjMgMCA0MC42IDIuNiA1Ny44IDcuNyAxNy4yIDUuMiAzMS4xIDExLjUgNDEuNCAxOS4xYTExNyAxMTcgMCAwMTI1LjkgMjUuN2M2LjkgOS42IDExLjcgMTguNSAxNC40IDI2LjcgMi43IDguMiA0IDE1LjcgNCAyMi44djE4Mi41YzAgNi40IDEuNCAxMyA0LjMgMTkuOCAyLjkgNi44IDYuMyAxMi44IDEwLjIgMTggMy45IDUuMiA3LjkgOS45IDEyIDE0LjMgNC4xIDQuMyA3LjYgNy43IDEwLjYgOS45bDQuMSAzLjQtNzIuNSA2OS40Yy04LjUtNy43LTE2LjktMTUuNC0yNS4yLTIzLjQtOC4zLTgtMTQuNS0xNC0xOC41LTE4LjFsLTYuMS02LjJjLTIuNC0yLjMtNS01LjctOC0xMC4yLTguMSAxMi4yLTE4LjUgMjIuOC0zMS4xIDMxLjgtMTIuNyA5LTI2LjMgMTUuNi00MC43IDE5LjctMTQuNSA0LjEtMjkuNCA2LjUtNDQuNyA3LjEtMTUuMy42LTMwLTEuNS00My45LTYuNS0xMy45LTUtMjYuNS0xMS43LTM3LjYtMjAuMy0xMS4xLTguNi0xOS45LTIwLjItMjYuNS0zNS02LjYtMTQuOC05LjktMzEuNS05LjktNTAuNCAwLTE3LjQgMy0zMy4zIDguOS00Ny43IDYtMTQuNSAxMy42LTI2LjUgMjMtMzYuMSA5LjQtOS42IDIwLjctMTguMiAzNC0yNS43czI2LjQtMTMuNCAzOS4yLTE3LjdjMTIuOC00LjIgMjYuNi03LjggNDEuNS0xMC43IDE0LjktMi45IDI3LjYtNC44IDM4LjItNS43IDEwLjYtLjkgMjEuMi0xLjYgMzEuOC0ydi0zOS40YzAtMTMuNS0yLjMtMjMuNS02LjctMzAuMXptMTgwLjUgMzc5LjZjLTIuOCAzLjMtNy41IDcuOC0xNC4xIDEzLjVzLTE2LjggMTIuNy0zMC41IDIxLjFjLTEzLjcgOC40LTI4LjggMTYtNDUgMjIuOS0xNi4zIDYuOS0zNi4zIDEyLjktNjAuMSAxOC0yMy43IDUuMS00OC4yIDcuNi03My4zIDcuNi0yNS40IDAtNTAuNy0zLjItNzYuMS05LjYtMjUuNC02LjQtNDcuNi0xNC4zLTY2LjgtMjMuNy0xOS4xLTkuNC0zNy42LTIwLjItNTUuMS0zMi4yLTE3LjYtMTIuMS0zMS43LTIyLjktNDIuNC0zMi41LTEwLjYtOS42LTE5LjYtMTguNy0yNi44LTI3LjEtMS43LTEuOS0yLjgtMy42LTMuMi01LjEtLjQtMS41LS4zLTIuOC4zLTMuNy42LS45IDEuNS0xLjYgMi42LTIuMmE3LjQyIDcuNDIgMCAwMTcuNC44YzQwLjkgMjQuMiA3Mi45IDQxLjMgOTUuOSA1MS40IDgyLjkgMzYuNCAxNjggNDUuNyAyNTUuMyAyNy45IDQwLjUtOC4zIDgyLjEtMjIuMiAxMjQuOS00MS44IDMuMi0xLjIgNi0xLjUgOC4zLS45IDIuMy42IDMuNSAyLjQgMy41IDUuNCAwIDIuOC0xLjYgNi4zLTQuOCAxMC4yem01OS45LTI5Yy0xLjggMTEuMS00LjkgMjEuNi05LjEgMzEuOC03LjIgMTcuMS0xNi4zIDMwLTI3LjEgMzguNC0zLjYgMi45LTYuNCAzLjgtOC4zIDIuOC0xLjktMS0xLjktMy41IDAtNy40IDQuNS05LjMgOS4yLTIxLjggMTQuMi0zNy43IDUtMTUuOCA1LjctMjYgMi4xLTMwLjUtMS4xLTEuNS0yLjctMi42LTUtMy42LTIuMi0uOS01LjEtMS41LTguNi0xLjlzLTYuNy0uNi05LjQtLjhjLTIuOC0uMi02LjUtLjItMTEuMiAwLTQuNy4yLTggLjQtMTAuMS42YTg3NC40IDg3NC40IDAgMDEtMTcuMSAxLjVjLTEuMy4yLTIuNy40LTQuMS41LTEuNS4xLTIuNy4yLTMuNS4zbC0yLjcuM2MtMSAuMS0xLjcuMi0yLjIuMmgtMy4ybC0xLS4yLS42LS41LS41LS45Yy0xLjMtMy4zIDMuNy03LjQgMTUtMTIuNHMyMi4zLTguMSAzMi45LTkuM2M5LjgtMS41IDIxLjMtMS41IDM0LjUtLjNzMjEuMyAzLjcgMjQuMyA3LjRjMi4zIDMuNSAyLjUgMTAuNy43IDIxLjd6In19XX0sbmFtZToiYW1hem9uLWNpcmNsZSIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw2MjAzODpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODI1IDc2OC45Yy0zLjMtLjktNy4zLS40LTExLjkgMS4zLTYxLjYgMjguMi0xMjEuNSA0OC4zLTE3OS43IDYwLjJDNTA3LjcgODU2IDM4NS4yIDg0Mi42IDI2NiA3OTAuM2MtMzMuMS0xNC42LTc5LjEtMzkuMi0xMzgtNzRhOS4zNiA5LjM2IDAgMDAtNS4zLTJjLTItLjEtMy43LjEtNS4zLjktMS42LjgtMi44IDEuOC0zLjcgMy4xLS45IDEuMy0xLjEgMy4xLS40IDUuNC42IDIuMiAyLjEgNC43IDQuNiA3LjQgMTAuNCAxMi4yIDIzLjMgMjUuMiAzOC42IDM5czM1LjYgMjkuNCA2MC45IDQ2LjhjMjUuMyAxNy40IDUxLjggMzIuOSA3OS4zIDQ2LjQgMjcuNiAxMy41IDU5LjYgMjQuOSA5Ni4xIDM0LjFzNzMgMTMuOCAxMDkuNCAxMy44YzM2LjIgMCA3MS40LTMuNyAxMDUuNS0xMC45IDM0LjItNy4zIDYzLTE1LjkgODYuNS0yNS45IDIzLjQtOS45IDQ1LTIxIDY0LjgtMzMgMTkuOC0xMiAzNC40LTIyLjIgNDMuOS0zMC4zIDkuNS04LjIgMTYuMy0xNC42IDIwLjItMTkuNCA0LjYtNS43IDYuOS0xMC42IDYuOS0xNC45LjEtNC41LTEuNy03LjEtNS03Ljl6TTUyNy40IDM0OC4xYy0xNS4yIDEuMy0zMy41IDQuMS01NSA4LjMtMjEuNSA0LjEtNDEuNCA5LjMtNTkuOCAxNS40cy0zNy4yIDE0LjYtNTYuMyAyNS40Yy0xOS4yIDEwLjgtMzUuNSAyMy4yLTQ5IDM3cy0yNC41IDMxLjEtMzMuMSA1MmMtOC42IDIwLjgtMTIuOSA0My43LTEyLjkgNjguNyAwIDI3LjEgNC43IDUxLjIgMTQuMyA3Mi41IDkuNSAyMS4zIDIyLjIgMzggMzguMiA1MC40IDE1LjkgMTIuNCAzNCAyMi4xIDU0IDI5LjIgMjAgNy4xIDQxLjIgMTAuMyA2My4yIDkuNCAyMi0uOSA0My41LTQuMyA2NC40LTEwLjMgMjAuOC01LjkgNDAuNC0xNS40IDU4LjYtMjguMyAxOC4yLTEyLjkgMzMuMS0yOC4yIDQ0LjgtNDUuNyA0LjMgNi42IDguMSAxMS41IDExLjUgMTQuN2w4LjcgOC45YzUuOCA1LjkgMTQuNyAxNC42IDI2LjcgMjYuMSAxMS45IDExLjUgMjQuMSAyMi43IDM2LjMgMzMuN2wxMDQuNC05OS45LTYtNC45Yy00LjMtMy4zLTkuNC04LTE1LjItMTQuMy01LjgtNi4yLTExLjYtMTMuMS0xNy4yLTIwLjUtNS43LTcuNC0xMC42LTE2LjEtMTQuNy0yNS45LTQuMS05LjgtNi4yLTE5LjMtNi4yLTI4LjVWMjU4LjdjMC0xMC4xLTEuOS0yMS01LjctMzIuOC0zLjktMTEuNy0xMC43LTI0LjUtMjAuNy0zOC4zLTEwLTEzLjgtMjIuNC0yNi4yLTM3LjItMzctMTQuOS0xMC44LTM0LjctMjAtNTkuNi0yNy40LTI0LjgtNy40LTUyLjYtMTEuMS04My4yLTExLjEtMzEuMyAwLTYwLjQgMy43LTg3LjYgMTAuOS0yNy4xIDcuMy01MC4zIDE3LTY5LjcgMjkuMi0xOS4zIDEyLjItMzUuOSAyNi4zLTQ5LjcgNDIuNC0xMy44IDE2LjEtMjQuMSAzMi45LTMwLjggNTAuNC02LjcgMTcuNS0xMC4xIDM1LjItMTAuMSA1My4xTDQwOCAzMTBjNS41LTE2LjQgMTIuOS0zMC42IDIyLTQyLjggOS4yLTEyLjIgMTcuOS0yMSAyNS44LTI2LjUgOC01LjUgMTYuNi05LjkgMjUuNy0xMy4yIDkuMi0zLjMgMTUuNC01IDE4LjYtNS40IDMuMi0uMyA1LjctLjQgNy42LS40IDI2LjcgMCA0NS4yIDcuOSA1NS42IDIzLjYgNi41IDkuNSA5LjcgMjMuOSA5LjcgNDMuM3Y1Ni42Yy0xNS4yLjYtMzAuNCAxLjYtNDUuNiAyLjl6TTU3My4xIDUwMGMwIDE2LjYtMi4yIDMxLjctNi41IDQ1LTkuMiAyOS4xLTI2LjcgNDcuNC01Mi40IDU0LjgtMjIuNCA2LjYtNDMuNyAzLjMtNjMuOS05LjgtMjEuNS0xNC0zMi4yLTMzLjgtMzIuMi01OS4zIDAtMTkuOSA1LTM2LjkgMTUtNTEuMSAxMC0xNC4xIDIzLjMtMjQuNyA0MC0zMS43czMzLTEyIDQ5LTE0LjljMTUuOS0zIDMzLTQuOCA1MS01LjRWNTAwem0zMzUuMiAyMTguOWMtNC4zLTUuNC0xNS45LTguOS0zNC45LTEwLjctMTktMS44LTM1LjUtMS43LTQ5LjcuNC0xNS4zIDEuOC0zMS4xIDYuMi00Ny4zIDEzLjQtMTYuMyA3LjEtMjMuNCAxMy4xLTIxLjYgMTcuOGwuNyAxLjMuOS43IDEuNC4yaDQuNmMuOCAwIDEuOC0uMSAzLjItLjIgMS40LS4xIDIuNy0uMyAzLjktLjQgMS4yLS4xIDIuOS0uMyA1LjEtLjQgMi4xLS4xIDQuMS0uNCA2LS43LjMgMCAzLjctLjMgMTAuMy0uOSA2LjYtLjYgMTEuNC0xIDE0LjMtMS4zIDIuOS0uMyA3LjgtLjYgMTQuNS0uOSA2LjctLjMgMTIuMS0uMyAxNi4xIDAgNCAuMyA4LjUuNyAxMy42IDEuMSA1LjEuNCA5LjIgMS4zIDEyLjQgMi43IDMuMiAxLjMgNS42IDMgNy4xIDUuMSA1LjIgNi42IDQuMiAyMS4yLTMgNDMuOXMtMTQgNDAuOC0yMC40IDU0LjJjLTIuOCA1LjctMi44IDkuMiAwIDEwLjdzNi43LjEgMTEuOS00YzE1LjYtMTIuMiAyOC42LTMwLjYgMzkuMS01NS4zIDYuMS0xNC42IDEwLjUtMjkuOCAxMy4xLTQ1LjcgMi40LTE1LjkgMi0yNi4yLTEuMy0zMXoifX1dfSxuYW1lOiJhbWF6b24iLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw2MjIwMzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek01NDcuOCAzMjYuN2MtNy4yLTEwLjktMjAuMS0xNi40LTM4LjctMTYuNC0xLjMgMC0zIC4xLTUuMy4zLTIuMi4yLTYuNiAxLjUtMTIuOSAzLjdhNzkuNCA3OS40IDAgMDAtMTcuOSA5LjFjLTUuNSAzLjgtMTEuNSAxMC0xOCAxOC40LTYuNCA4LjUtMTEuNSAxOC40LTE1LjMgMjkuOGwtOTQtOC40YzAtMTIuNCAyLjQtMjQuNyA3LTM2LjlzMTEuOC0yMy45IDIxLjQtMzVjOS42LTExLjIgMjEuMS0yMSAzNC41LTI5LjQgMTMuNC04LjUgMjkuNi0xNS4yIDQ4LjQtMjAuMyAxOC45LTUuMSAzOS4xLTcuNiA2MC45LTcuNiAyMS4zIDAgNDAuNiAyLjYgNTcuOCA3LjcgMTcuMiA1LjIgMzEuMSAxMS41IDQxLjQgMTkuMWExMTcgMTE3IDAgMDEyNS45IDI1LjdjNi45IDkuNiAxMS43IDE4LjUgMTQuNCAyNi43IDIuNyA4LjIgNCAxNS43IDQgMjIuOHYxODIuNWMwIDYuNCAxLjQgMTMgNC4zIDE5LjggMi45IDYuOCA2LjMgMTIuOCAxMC4yIDE4IDMuOSA1LjIgNy45IDkuOSAxMiAxNC4zIDQuMSA0LjMgNy42IDcuNyAxMC42IDkuOWw0LjEgMy40LTcyLjUgNjkuNGMtOC41LTcuNy0xNi45LTE1LjQtMjUuMi0yMy40LTguMy04LTE0LjUtMTQtMTguNS0xOC4xbC02LjEtNi4yYy0yLjQtMi4zLTUtNS43LTgtMTAuMi04LjEgMTIuMi0xOC41IDIyLjgtMzEuMSAzMS44LTEyLjcgOS0yNi4zIDE1LjYtNDAuNyAxOS43LTE0LjUgNC4xLTI5LjQgNi41LTQ0LjcgNy4xLTE1LjMuNi0zMC0xLjUtNDMuOS02LjUtMTMuOS01LTI2LjUtMTEuNy0zNy42LTIwLjMtMTEuMS04LjYtMTkuOS0yMC4yLTI2LjUtMzUtNi42LTE0LjgtOS45LTMxLjUtOS45LTUwLjQgMC0xNy40IDMtMzMuMyA4LjktNDcuNyA2LTE0LjUgMTMuNi0yNi41IDIzLTM2LjEgOS40LTkuNiAyMC43LTE4LjIgMzQtMjUuN3MyNi40LTEzLjQgMzkuMi0xNy43YzEyLjgtNC4yIDI2LjYtNy44IDQxLjUtMTAuNyAxNC45LTIuOSAyNy42LTQuOCAzOC4yLTUuNyAxMC42LS45IDIxLjItMS42IDMxLjgtMnYtMzkuNGMwLTEzLjUtMi4zLTIzLjUtNi43LTMwLjF6bTE4MC41IDM3OS42Yy0yLjggMy4zLTcuNSA3LjgtMTQuMSAxMy41cy0xNi44IDEyLjctMzAuNSAyMS4xYy0xMy43IDguNC0yOC44IDE2LTQ1IDIyLjktMTYuMyA2LjktMzYuMyAxMi45LTYwLjEgMTgtMjMuNyA1LjEtNDguMiA3LjYtNzMuMyA3LjYtMjUuNCAwLTUwLjctMy4yLTc2LjEtOS42LTI1LjQtNi40LTQ3LjYtMTQuMy02Ni44LTIzLjctMTkuMS05LjQtMzcuNi0yMC4yLTU1LjEtMzIuMi0xNy42LTEyLjEtMzEuNy0yMi45LTQyLjQtMzIuNS0xMC42LTkuNi0xOS42LTE4LjctMjYuOC0yNy4xLTEuNy0xLjktMi44LTMuNi0zLjItNS4xLS40LTEuNS0uMy0yLjguMy0zLjcuNi0uOSAxLjUtMS42IDIuNi0yLjJhNy40MiA3LjQyIDAgMDE3LjQuOGM0MC45IDI0LjIgNzIuOSA0MS4zIDk1LjkgNTEuNCA4Mi45IDM2LjQgMTY4IDQ1LjcgMjU1LjMgMjcuOSA0MC41LTguMyA4Mi4xLTIyLjIgMTI0LjktNDEuOCAzLjItMS4yIDYtMS41IDguMy0uOSAyLjMuNiAzLjUgMi40IDMuNSA1LjQgMCAyLjgtMS42IDYuMy00LjggMTAuMnptNTkuOS0yOWMtMS44IDExLjEtNC45IDIxLjYtOS4xIDMxLjgtNy4yIDE3LjEtMTYuMyAzMC0yNy4xIDM4LjQtMy42IDIuOS02LjQgMy44LTguMyAyLjgtMS45LTEtMS45LTMuNSAwLTcuNCA0LjUtOS4zIDkuMi0yMS44IDE0LjItMzcuNyA1LTE1LjggNS43LTI2IDIuMS0zMC41LTEuMS0xLjUtMi43LTIuNi01LTMuNi0yLjItLjktNS4xLTEuNS04LjYtMS45cy02LjctLjYtOS40LS44Yy0yLjgtLjItNi41LS4yLTExLjIgMC00LjcuMi04IC40LTEwLjEuNmE4NzQuNCA4NzQuNCAwIDAxLTE3LjEgMS41Yy0xLjMuMi0yLjcuNC00LjEuNS0xLjUuMS0yLjcuMi0zLjUuM2wtMi43LjNjLTEgLjEtMS43LjItMi4yLjJoLTMuMmwtMS0uMi0uNi0uNS0uNS0uOWMtMS4zLTMuMyAzLjctNy40IDE1LTEyLjRzMjIuMy04LjEgMzIuOS05LjNjOS44LTEuNSAyMS4zLTEuNSAzNC41LS4zczIxLjMgMy43IDI0LjMgNy40YzIuMyAzLjUgMi41IDEwLjcuNyAyMS43ek00ODUgNDY3LjVjLTExLjYgNC45LTIwLjkgMTIuMi0yNy44IDIyLTYuOSA5LjgtMTAuNCAyMS42LTEwLjQgMzUuNSAwIDE3LjggNy41IDMxLjUgMjIuNCA0MS4yIDE0LjEgOS4xIDI4LjkgMTEuNCA0NC40IDYuOCAxNy45LTUuMiAzMC0xNy45IDM2LjQtMzguMSAzLTkuMyA0LjUtMTkuNyA0LjUtMzEuM3YtNTAuMmMtMTIuNi40LTI0LjQgMS42LTM1LjUgMy43LTExLjEgMi4xLTIyLjQgNS42LTM0IDEwLjR6In19XX0sbmFtZToiYW1hem9uLXNxdWFyZSIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw2MjQ4OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0yNzAuMSA3NDEuN2MwIDIzLjQgMTkuMSA0Mi41IDQyLjYgNDIuNWg0OC43djEyMC40YzAgMzAuNSAyNC41IDU1LjQgNTQuNiA1NS40IDMwLjIgMCA1NC42LTI0LjggNTQuNi01NS40Vjc4NC4xaDg1djEyMC40YzAgMzAuNSAyNC41IDU1LjQgNTQuNiA1NS40IDMwLjIgMCA1NC42LTI0LjggNTQuNi01NS40Vjc4NC4xaDQ4LjdjMjMuNSAwIDQyLjYtMTkuMSA0Mi42LTQyLjVWMzQ2LjRoLTQ4NnYzOTUuM3ptMzU3LjEtNjAwLjFsNDQuOS02NWMyLjYtMy44IDItOC45LTEuNS0xMS40LTMuNS0yLjQtOC41LTEuMi0xMS4xIDIuNmwtNDYuNiA2Ny42Yy0zMC43LTEyLjEtNjQuOS0xOC44LTEwMC44LTE4LjgtMzUuOSAwLTcwLjEgNi43LTEwMC44IDE4LjhsLTQ2LjYtNjcuNWMtMi42LTMuOC03LjYtNS4xLTExLjEtMi42LTMuNSAyLjQtNC4xIDcuNC0xLjUgMTEuNGw0NC45IDY1Yy03MS40IDMzLjItMTIxLjQgOTYuMS0xMjcuOCAxNjkuNmg0ODZjLTYuNi03My42LTU2LjctMTM2LjUtMTI4LTE2OS43ek00MDkuNSAyNDQuMWEyNi45IDI2LjkgMCAxMTI2LjktMjYuOSAyNi45NyAyNi45NyAwIDAxLTI2LjkgMjYuOXptMjA4LjQgMGEyNi45IDI2LjkgMCAxMTI2LjktMjYuOSAyNi45NyAyNi45NyAwIDAxLTI2LjkgMjYuOXptMjIzLjQgMTAwLjdjLTMwLjIgMC01NC42IDI0LjgtNTQuNiA1NS40djIxNi40YzAgMzAuNSAyNC41IDU1LjQgNTQuNiA1NS40IDMwLjIgMCA1NC42LTI0LjggNTQuNi01NS40VjQwMC4xYy4xLTMwLjYtMjQuMy01NS4zLTU0LjYtNTUuM3ptLTY1OC42IDBjLTMwLjIgMC01NC42IDI0LjgtNTQuNiA1NS40djIxNi40YzAgMzAuNSAyNC41IDU1LjQgNTQuNiA1NS40IDMwLjIgMCA1NC42LTI0LjggNTQuNi01NS40VjQwMC4xYzAtMzAuNi0yNC41LTU1LjMtNTQuNi01NS4zeiJ9fV19LG5hbWU6ImFuZHJvaWQiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sMTE3MDQ6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQ0OC4zIDIyNS4yYy0xOC42IDAtMzIgMTMuNC0zMiAzMS45czEzLjUgMzEuOSAzMiAzMS45YzE4LjYgMCAzMi0xMy40IDMyLTMxLjkuMS0xOC40LTEzLjQtMzEuOS0zMi0zMS45em0zOTMuOSA5Ni40Yy0xMy44LTEzLjgtMzIuNy0yMS41LTUzLjItMjEuNS0zLjkgMC03LjQuNC0xMC43IDF2LTFoLTMuNmMtNS41LTMwLjYtMTguNi02MC41LTM4LjEtODcuNC0xOC43LTI1LjctNDMtNDcuOS03MC44LTY0LjlsMjUuMS0zNS44di0zLjNjMC0uOC40LTIuMy43LTMuOC42LTIuNCAxLjQtNS41IDEuNC04LjkgMC0xOC41LTEzLjUtMzEuOS0zMi0zMS45LTkuOCAwLTE5LjUgNS43LTI1LjkgMTUuNGwtMjkuMyA0Mi4xYy0zMC05LjgtNjIuNC0xNS05My44LTE1LTMxLjMgMC02My43IDUuMi05My44IDE1TDM4OSA3OS40Yy02LjYtOS42LTE2LjEtMTUuNC0yNi0xNS40LTE4LjYgMC0zMiAxMy40LTMyIDMxLjkgMCA2LjIgMi41IDEyLjggNi43IDE3LjRsMjIuNiAzMi4zYy0yOC43IDE3LTUzLjUgMzkuNC03Mi4yIDY1LjEtMTkuNCAyNi45LTMyIDU2LjgtMzYuNyA4Ny40aC01LjV2MWMtMy4yLS42LTYuNy0xLTEwLjctMS0yMC4zIDAtMzkuMiA3LjUtNTMuMSAyMS4zLTEzLjggMTMuOC0yMS41IDMyLjYtMjEuNSA1M3YyMzVjMCAyMC4zIDcuNSAzOS4xIDIxLjQgNTIuOSAxMy44IDEzLjggMzIuOCAyMS41IDUzLjIgMjEuNSAzLjkgMCA3LjQtLjQgMTAuNy0xdjkzLjVjMCAyOS4yIDIzLjkgNTMuMSA1My4yIDUzLjFIMzMxdjU4LjNjMCAyMC4zIDcuNSAzOS4xIDIxLjQgNTIuOSAxMy44IDEzLjggMzIuOCAyMS41IDUzLjIgMjEuNSAyMC4zIDAgMzkuMi03LjUgNTMuMS0yMS4zIDEzLjgtMTMuOCAyMS41LTMyLjYgMjEuNS01M3YtNTguMkg1NDR2NTguMWMwIDIwLjMgNy41IDM5LjEgMjEuNCA1Mi45IDEzLjggMTMuOCAzMi44IDIxLjUgNTMuMiAyMS41IDIwLjQgMCAzOS4yLTcuNSA1My4xLTIxLjYgMTMuOC0xMy44IDIxLjUtMzIuNiAyMS41LTUzdi01OC4yaDMxLjljMjkuMyAwIDUzLjItMjMuOCA1My4yLTUzLjF2LTkxLjRjMy4yLjYgNi43IDEgMTAuNyAxIDIwLjMgMCAzOS4yLTcuNSA1My4xLTIxLjMgMTMuOC0xMy44IDIxLjUtMzIuNiAyMS41LTUzdi0yMzVjLS4xLTIwLjMtNy42LTM5LTIxLjQtNTIuOXpNMjQ2IDYwOS42YzAgNi44LTMuOSAxMC42LTEwLjcgMTAuNi02LjggMC0xMC43LTMuOC0xMC43LTEwLjZWMzc0LjVjMC02LjggMy45LTEwLjYgMTAuNy0xMC42IDYuOCAwIDEwLjcgMy44IDEwLjcgMTAuNnYyMzUuMXptMTMxLjEtMzk2LjhjMzcuNS0yNy4zIDg1LjMtNDIuMyAxMzUtNDIuM3M5Ny41IDE1LjEgMTM1IDQyLjVjMzIuNCAyMy43IDU0LjIgNTQuMiA2Mi43IDg3LjVIMzE0LjRjOC41LTMzLjQgMzAuNS02NCA2Mi43LTg3Ljd6bTM5LjMgNjc0LjdjLS42IDUuNi00LjQgOC43LTEwLjUgOC43LTYuOCAwLTEwLjctMy44LTEwLjctMTAuNnYtNTguMmgyMS4ydjYwLjF6bTIwMi4zIDguN2MtNi44IDAtMTAuNy0zLjgtMTAuNy0xMC42di01OC4yaDIxLjJ2NjAuMWMtLjYgNS42LTQuMyA4LjctMTAuNSA4Ljd6bTk1LjgtMTMyLjZIMzA5LjlWMzY0aDQwNC42djM5OS42em04NS4yLTE1NGMwIDYuOC0zLjkgMTAuNi0xMC43IDEwLjYtNi44IDAtMTAuNy0zLjgtMTAuNy0xMC42VjM3NC41YzAtNi44IDMuOS0xMC42IDEwLjctMTAuNiA2LjggMCAxMC43IDMuOCAxMC43IDEwLjZ2MjM1LjF6TTU3Ni4xIDIyNS4yYy0xOC42IDAtMzIgMTMuNC0zMiAzMS45czEzLjUgMzEuOSAzMiAzMS45YzE4LjYgMCAzMi4xLTEzLjQgMzIuMS0zMi0uMS0xOC42LTEzLjQtMzEuOC0zMi4xLTMxLjh6In19XX0sbmFtZToiYW5kcm9pZCIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDIyNzU0OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0zNzguOSA3MzhjLTMuMSAwLTYuMS0uNS04LjgtMS41bDQuNCAzMC43aDI2LjNsLTE1LjUtMjkuOWMtMi4xLjUtNC4yLjctNi40Ljd6bTQyMS0yOTEuMmMtMTIuNiAwLTI0LjggMS41LTM2LjUgNC4yLTIxLjQtMzguNC02Mi4zLTY0LjMtMTA5LjMtNjQuMy02LjkgMC0xMy42LjYtMjAuMiAxLjYtMzUuNC03Ny40LTExMy40LTEzMS4xLTIwMy45LTEzMS4xLTExMi4zIDAtMjA1LjMgODIuNi0yMjEuNiAxOTAuNEMxMjcuMyA0NTUuNSA2NCA1MjMuOCA2NCA2MDdjMCA4OC40IDcxLjYgMTYwLjEgMTYwIDE2MC4yaDUwbDEzLjItMjcuNmMtMjYuMi04LjMtNDMuMy0yOS0zOS4xLTQ4LjggNC42LTIxLjYgMzIuOC0zMy45IDYzLjEtMjcuNSAyMi45IDQuOSA0MC40IDE5LjEgNDUuNSAzNS4xYTI2LjEgMjYuMSAwIDAxMjIuMS0xMi40aC4yYy0uOC0zLjItMS4yLTYuNS0xLjItOS45IDAtMjAuMSAxNC44LTM2LjcgMzQuMS0zOS42di0yNS40YzAtNC40IDMuNi04IDgtOHM4IDMuNiA4IDh2MjYuM2M0LjYgMS4yIDguOCAzLjIgMTIuNiA1LjhsMTkuNS0yMS40YzMtMy4zIDgtMy41IDExLjMtLjUgMy4zIDMgMy41IDggLjUgMTEuM2wtMjAgMjItLjIuMmE0MCA0MCAwIDAxLTQ2LjkgNTkuMmMtLjQgNS42LTIuNiAxMC43LTYgMTQuOGwyMCAzOC40SDgwNHYtLjFjODYuNS0yLjIgMTU2LTczIDE1Ni0xNjAuMSAwLTg4LjUtNzEuNy0xNjAuMi0xNjAuMS0xNjAuMnpNMzM4LjIgNzM3LjJsLTQuMyAzMGgyNC40bC01LjktNDEuNWMtMy41IDQuNi04LjMgOC41LTE0LjIgMTEuNXpNNzk3LjUgMzA1YTQ4IDQ4IDAgMTA5NiAwIDQ4IDQ4IDAgMTAtOTYgMHptLTY1LjcgNjEuM2EyNCAyNCAwIDEwNDggMCAyNCAyNCAwIDEwLTQ4IDB6TTMwMy40IDc0Mi45bC0xMS42IDI0LjNoMjZsMy41LTI0LjdjLTUuNy44LTExLjcgMS0xNy45LjR6In19XX0sbmFtZToiYW50LWNsb3VkIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sOTMwOTA6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTcxNi4zIDMxMy44YzE5LTE4LjkgMTktNDkuNyAwLTY4LjZsLTY5LjktNjkuOS4xLjFjLTE4LjUtMTguNS01MC4zLTUwLjMtOTUuMy05NS4yLTIxLjItMjAuNy01NS41LTIwLjUtNzYuNS41TDgwLjkgNDc0LjJhNTMuODQgNTMuODQgMCAwMDAgNzYuNEw0NzQuNiA5NDRhNTQuMTQgNTQuMTQgMCAwMDc2LjUgMGwxNjUuMS0xNjVjMTktMTguOSAxOS00OS43IDAtNjguNmE0OC43IDQ4LjcgMCAwMC02OC43IDBsLTEyNSAxMjUuMmMtNS4yIDUuMi0xMy4zIDUuMi0xOC41IDBMMTg5LjUgNTIxLjRjLTUuMi01LjItNS4yLTEzLjMgMC0xOC41bDMxNC40LTMxNC4yYy40LS40LjktLjcgMS4zLTEuMSA1LjItNC4xIDEyLjQtMy43IDE3LjIgMS4xbDEyNS4yIDEyNS4xYzE5IDE5IDQ5LjggMTkgNjguNyAwek00MDguNiA1MTQuNGExMDYuMyAxMDYuMiAwIDEwMjEyLjYgMCAxMDYuMyAxMDYuMiAwIDEwLTIxMi42IDB6bTUzNi4yLTM4LjZMODIxLjkgMzUzLjVjLTE5LTE4LjktNDkuOC0xOC45LTY4LjcuMWE0OC40IDQ4LjQgMCAwMDAgNjguNmw4MyA4Mi45YzUuMiA1LjIgNS4yIDEzLjMgMCAxOC41bC04MS44IDgxLjdhNDguNCA0OC40IDAgMDAwIDY4LjYgNDguNyA0OC43IDAgMDA2OC43IDBsMTIxLjgtMTIxLjdhNTMuOTMgNTMuOTMgMCAwMC0uMS03Ni40eiJ9fV19LG5hbWU6ImFudC1kZXNpZ24iLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw1MTE5NzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTA4IDY0MEg4MDRWNDg4YzAtNC40LTMuNi04LTgtOEg1NDh2LTk2aDEwOGM4LjggMCAxNi03LjIgMTYtMTZWODBjMC04LjgtNy4yLTE2LTE2LTE2SDM2OGMtOC44IDAtMTYgNy4yLTE2IDE2djI4OGMwIDguOCA3LjIgMTYgMTYgMTZoMTA4djk2SDIyOGMtNC40IDAtOCAzLjYtOCA4djE1MkgxMTZjLTguOCAwLTE2IDcuMi0xNiAxNnYyODhjMCA4LjggNy4yIDE2IDE2IDE2aDI4OGM4LjggMCAxNi03LjIgMTYtMTZWNjU2YzAtOC44LTcuMi0xNi0xNi0xNkgyOTJ2LTg4aDQ0MHY4OEg2MjBjLTguOCAwLTE2IDcuMi0xNiAxNnYyODhjMCA4LjggNy4yIDE2IDE2IDE2aDI4OGM4LjggMCAxNi03LjIgMTYtMTZWNjU2YzAtOC44LTcuMi0xNi0xNi0xNnptLTU2NCA3NnYxNjhIMTc2VjcxNmgxNjh6bTg0LTQwOFYxNDBoMTY4djE2OEg0Mjh6bTQyMCA1NzZINjgwVjcxNmgxNjh2MTY4eiJ9fV19LG5hbWU6ImFwYXJ0bWVudCIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDczMzg1OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MTcuNyAxNDguOGwtNDIuNC00Mi40Yy0xLjYtMS42LTMuNi0yLjMtNS43LTIuM3MtNC4xLjgtNS43IDIuM2wtNzYuMSA3Ni4xYTE5OS4yNyAxOTkuMjcgMCAwMC0xMTIuMS0zNC4zYy01MS4yIDAtMTAyLjQgMTkuNS0xNDEuNSA1OC42TDQzMi4zIDMwOC43YTguMDMgOC4wMyAwIDAwMCAxMS4zTDcwNCA1OTEuN2MxLjYgMS42IDMuNiAyLjMgNS43IDIuMyAyIDAgNC4xLS44IDUuNy0yLjNsMTAxLjktMTAxLjljNjguOS02OSA3Ny0xNzUuNyAyNC4zLTI1My41bDc2LjEtNzYuMWMzLjEtMy4yIDMuMS04LjMgMC0xMS40ek01NzguOSA1NDYuN2E4LjAzIDguMDMgMCAwMC0xMS4zIDBMNTAxIDYxMy4zIDQxMC43IDUyM2w2Ni43LTY2LjdjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM0w0NDEgNDA4LjZhOC4wMyA4LjAzIDAgMDAtMTEuMyAwTDM2MyA0NzUuM2wtNDMtNDNhNy44NSA3Ljg1IDAgMDAtNS43LTIuM2MtMiAwLTQuMS44LTUuNyAyLjNMMjA2LjggNTM0LjJjLTY4LjkgNjguOS03NyAxNzUuNy0yNC4zIDI1My41bC03Ni4xIDc2LjFhOC4wMyA4LjAzIDAgMDAwIDExLjNsNDIuNCA0Mi40YzEuNiAxLjYgMy42IDIuMyA1LjcgMi4zczQuMS0uOCA1LjctMi4zbDc2LjEtNzYuMWMzMy43IDIyLjkgNzIuOSAzNC4zIDExMi4xIDM0LjMgNTEuMiAwIDEwMi40LTE5LjUgMTQxLjUtNTguNmwxMDEuOS0xMDEuOWMzLjEtMy4xIDMuMS04LjIgMC0xMS4zbC00My00MyA2Ni43LTY2LjdjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM2wtMzYuNi0zNi4yeiJ9fV19LG5hbWU6ImFwaSIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSwzODcwOTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTE3LjcgMTQ4LjhsLTQyLjQtNDIuNGMtMS42LTEuNi0zLjYtMi4zLTUuNy0yLjNzLTQuMS44LTUuNyAyLjNsLTc2LjEgNzYuMWExOTkuMjcgMTk5LjI3IDAgMDAtMTEyLjEtMzQuM2MtNTEuMiAwLTEwMi40IDE5LjUtMTQxLjUgNTguNkw0MzIuMyAzMDguN2E4LjAzIDguMDMgMCAwMDAgMTEuM0w3MDQgNTkxLjdjMS42IDEuNiAzLjYgMi4zIDUuNyAyLjMgMiAwIDQuMS0uOCA1LjctMi4zbDEwMS45LTEwMS45YzY4LjktNjkgNzctMTc1LjcgMjQuMy0yNTMuNWw3Ni4xLTc2LjFjMy4xLTMuMiAzLjEtOC4zIDAtMTEuNHpNNzY5LjEgNDQxLjdsLTU5LjQgNTkuNC0xODYuOC0xODYuOCA1OS40LTU5LjRjMjQuOS0yNC45IDU4LjEtMzguNyA5My40LTM4LjcgMzUuMyAwIDY4LjQgMTMuNyA5My40IDM4LjcgMjQuOSAyNC45IDM4LjcgNTguMSAzOC43IDkzLjQgMCAzNS4zLTEzLjggNjguNC0zOC43IDkzLjR6bS0xOTAuMiAxMDVhOC4wMyA4LjAzIDAgMDAtMTEuMyAwTDUwMSA2MTMuMyA0MTAuNyA1MjNsNjYuNy02Ni43YzMuMS0zLjEgMy4xLTguMiAwLTExLjNMNDQxIDQwOC42YTguMDMgOC4wMyAwIDAwLTExLjMgMEwzNjMgNDc1LjNsLTQzLTQzYTcuODUgNy44NSAwIDAwLTUuNy0yLjNjLTIgMC00LjEuOC01LjcgMi4zTDIwNi44IDUzNC4yYy02OC45IDY5LTc3IDE3NS43LTI0LjMgMjUzLjVsLTc2LjEgNzYuMWE4LjAzIDguMDMgMCAwMDAgMTEuM2w0Mi40IDQyLjRjMS42IDEuNiAzLjYgMi4zIDUuNyAyLjNzNC4xLS44IDUuNy0yLjNsNzYuMS03Ni4xYzMzLjcgMjIuOSA3Mi45IDM0LjMgMTEyLjEgMzQuMyA1MS4yIDAgMTAyLjQtMTkuNSAxNDEuNS01OC42bDEwMS45LTEwMS45YzMuMS0zLjEgMy4xLTguMiAwLTExLjNsLTQzLTQzIDY2LjctNjYuN2MzLjEtMy4xIDMuMS04LjIgMC0xMS4zbC0zNi42LTM2LjJ6TTQ0MS43IDc2OS4xYTEzMS4zMiAxMzEuMzIgMCAwMS05My40IDM4LjdjLTM1LjMgMC02OC40LTEzLjctOTMuNC0zOC43YTEzMS4zMiAxMzEuMzIgMCAwMS0zOC43LTkzLjRjMC0zNS4zIDEzLjctNjguNCAzOC43LTkzLjRsNTkuNC01OS40IDE4Ni44IDE4Ni44LTU5LjQgNTkuNHoifX1dfSxuYW1lOiJhcGkiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw2MzQ1MzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjpmdW5jdGlvbihhLG4pe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0xNDguMiA2NzQuNnptMTA2LjctOTIuM2MtMjUgMjUtMzguNyA1OC4xLTM4LjcgOTMuNHMxMy44IDY4LjUgMzguNyA5My40YzI1IDI1IDU4LjEgMzguNyA5My40IDM4LjcgMzUuMyAwIDY4LjUtMTMuOCA5My40LTM4LjdsNTkuNC01OS40LTE4Ni44LTE4Ni44LTU5LjQgNTkuNHptNDIwLjgtMzY2LjFjLTM1LjMgMC02OC41IDEzLjgtOTMuNCAzOC43bC01OS40IDU5LjQgMTg2LjggMTg2LjggNTkuNC01OS40YzI0LjktMjUgMzguNy01OC4xIDM4LjctOTMuNHMtMTMuOC02OC41LTM4LjctOTMuNGMtMjUtMjUtNTguMS0zOC43LTkzLjQtMzguN3oiLGZpbGw6bn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTc4LjkgNTQ2LjdhOC4wMyA4LjAzIDAgMDAtMTEuMyAwTDUwMSA2MTMuMyA0MTAuNyA1MjNsNjYuNy02Ni43YzMuMS0zLjEgMy4xLTguMiAwLTExLjNMNDQxIDQwOC42YTguMDMgOC4wMyAwIDAwLTExLjMgMEwzNjMgNDc1LjNsLTQzLTQzYTcuODUgNy44NSAwIDAwLTUuNy0yLjNjLTIgMC00LjEuOC01LjcgMi4zTDIwNi44IDUzNC4yYTE5OS40NSAxOTkuNDUgMCAwMC01OC42IDE0MC40Yy0uMiAzOS41IDExLjIgNzkuMSAzNC4zIDExMy4xbC03Ni4xIDc2LjFhOC4wMyA4LjAzIDAgMDAwIDExLjNsNDIuNCA0Mi40YzEuNiAxLjYgMy42IDIuMyA1LjcgMi4zczQuMS0uOCA1LjctMi4zbDc2LjEtNzYuMWMzMy43IDIyLjkgNzIuOSAzNC4zIDExMi4xIDM0LjMgNTEuMiAwIDEwMi40LTE5LjUgMTQxLjUtNTguNmwxMDEuOS0xMDEuOWMzLjEtMy4xIDMuMS04LjIgMC0xMS4zbC00My00MyA2Ni43LTY2LjdjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM2wtMzYuNi0zNi4yek00NDEuNyA3NjkuMWExMzEuMzIgMTMxLjMyIDAgMDEtOTMuNCAzOC43Yy0zNS4zIDAtNjguNC0xMy43LTkzLjQtMzguNy0yNC45LTI0LjktMzguNy01OC4xLTM4LjctOTMuNHMxMy43LTY4LjQgMzguNy05My40bDU5LjQtNTkuNCAxODYuOCAxODYuOC01OS40IDU5LjR6bTQ3Ni02MjAuM2wtNDIuNC00Mi40Yy0xLjYtMS42LTMuNi0yLjMtNS43LTIuM3MtNC4xLjgtNS43IDIuM2wtNzYuMSA3Ni4xYTE5OS4yNyAxOTkuMjcgMCAwMC0xMTIuMS0zNC4zYy01MS4yIDAtMTAyLjQgMTkuNS0xNDEuNSA1OC42TDQzMi4zIDMwOC43YTguMDMgOC4wMyAwIDAwMCAxMS4zTDcwNCA1OTEuN2MxLjYgMS42IDMuNiAyLjMgNS43IDIuMyAyIDAgNC4xLS44IDUuNy0yLjNsMTAxLjktMTAxLjljNjguOS02OSA3Ny0xNzUuNyAyNC4zLTI1My41bDc2LjEtNzYuMWMzLjEtMy4yIDMuMS04LjMgMC0xMS40ek03NjkuMSA0NDEuN2wtNTkuNCA1OS40LTE4Ni44LTE4Ni44IDU5LjQtNTkuNGMyNC45LTI0LjkgNTguMS0zOC43IDkzLjQtMzguN3M2OC40IDEzLjcgOTMuNCAzOC43YzI0LjkgMjQuOSAzOC43IDU4LjEgMzguNyA5My40cy0xMy44IDY4LjQtMzguNyA5My40eiIsZmlsbDphfX1dfX0sbmFtZToiYXBpIix0aGVtZToidHdvdG9uZSJ9O3QuZGVmYXVsdD1lfSw1OTA5OTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNzQ3LjQgNTM1LjdjLS40LTY4LjIgMzAuNS0xMTkuNiA5Mi45LTE1Ny41LTM0LjktNTAtODcuNy03Ny41LTE1Ny4zLTgyLjgtNjUuOS01LjItMTM4IDM4LjQtMTY0LjQgMzguNC0yNy45IDAtOTEuNy0zNi42LTE0MS45LTM2LjZDMjczLjEgMjk4LjggMTYzIDM3OS44IDE2MyA1NDQuNmMwIDQ4LjcgOC45IDk5IDI2LjcgMTUwLjggMjMuOCA2OC4yIDEwOS42IDIzNS4zIDE5OS4xIDIzMi42IDQ2LjgtMS4xIDc5LjktMzMuMiAxNDAuOC0zMy4yIDU5LjEgMCA4OS43IDMzLjIgMTQxLjkgMzMuMiA5MC4zLTEuMyAxNjcuOS0xNTMuMiAxOTAuNS0yMjEuNi0xMjEuMS01Ny4xLTExNC42LTE2Ny4yLTExNC42LTE3MC43em0tMTA1LjEtMzA1YzUwLjctNjAuMiA0Ni4xLTExNSA0NC42LTEzNC43LTQ0LjggMi42LTk2LjYgMzAuNS0xMjYuMSA2NC44LTMyLjUgMzYuOC01MS42IDgyLjMtNDcuNSAxMzMuNiA0OC40IDMuNyA5Mi42LTIxLjIgMTI5LTYzLjd6In19XX0sbmFtZToiYXBwbGUiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sNzUwMTM6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTc0Ny40IDUzNS43Yy0uNC02OC4yIDMwLjUtMTE5LjYgOTIuOS0xNTcuNS0zNC45LTUwLTg3LjctNzcuNS0xNTcuMy04Mi44LTY1LjktNS4yLTEzOCAzOC40LTE2NC40IDM4LjQtMjcuOSAwLTkxLjctMzYuNi0xNDEuOS0zNi42QzI3My4xIDI5OC44IDE2MyAzNzkuOCAxNjMgNTQ0LjZjMCA0OC43IDguOSA5OSAyNi43IDE1MC44IDIzLjggNjguMiAxMDkuNiAyMzUuMyAxOTkuMSAyMzIuNiA0Ni44LTEuMSA3OS45LTMzLjIgMTQwLjgtMzMuMiA1OS4xIDAgODkuNyAzMy4yIDE0MS45IDMzLjIgOTAuMy0xLjMgMTY3LjktMTUzLjIgMTkwLjUtMjIxLjYtMTIxLjEtNTcuMS0xMTQuNi0xNjcuMi0xMTQuNi0xNzAuN3ptLTEwLjYgMjY3Yy0xNC4zIDE5LjktMjguNyAzNS42LTQxLjkgNDUuNy0xMC41IDgtMTguNiAxMS40LTI0IDExLjYtOS0uMS0xNy43LTIuMy0zNC43LTguOC0xLjItLjUtMi41LTEtNC4yLTEuNmwtNC40LTEuN2MtMTcuNC02LjctMjcuOC0xMC4zLTQxLjEtMTMuOC0xOC42LTQuOC0zNy4xLTcuNC01Ni45LTcuNC0yMC4yIDAtMzkuMiAyLjUtNTguMSA3LjItMTMuOSAzLjUtMjUuNiA3LjQtNDIuNyAxMy44LS43LjMtOC4xIDMuMS0xMC4yIDMuOS0zLjUgMS4zLTYuMiAyLjMtOC43IDMuMi0xMC40IDMuNi0xNyA1LjEtMjIuOSA1LjItLjcgMC0xLjMtLjEtMS44LS4yLTEuMS0uMi0yLjUtLjYtNC4xLTEuMy00LjUtMS44LTkuOS01LjEtMTYtOS44LTE0LTEwLjktMjkuNC0yOC00NS4xLTQ5LjktMjcuNS0zOC42LTUzLjUtODkuOC02Ni0xMjUuNy0xNS40LTQ0LjgtMjMtODcuNy0yMy0xMjguNiAwLTYwLjIgMTcuOC0xMDYgNDguNC0xMzcuMSAyNi4zLTI2LjYgNjEuNy00MS41IDk3LjgtNDIuMyA1LjkuMSAxNC41IDEuNSAyNS40IDQuNSA4LjYgMi4zIDE4IDUuNCAzMC43IDkuOSAzLjggMS40IDE2LjkgNi4xIDE4LjUgNi43IDcuNyAyLjggMTMuNSA0LjggMTkuMiA2LjYgMTguMiA1LjggMzIuMyA5IDQ3LjYgOSAxNS41IDAgMjguOC0zLjMgNDcuNy05LjggNy4xLTIuNCAzMi45LTEyIDM3LjUtMTMuNiAyNS42LTkuMSA0NC41LTE0IDYwLjgtMTUuMiA0LjgtLjQgOS4xLS40IDEzLjItLjEgMjIuNyAxLjggNDIuMSA2LjMgNTguNiAxMy44LTM3LjYgNDMuNC01NyA5Ni41LTU2LjkgMTU4LjQtLjMgMTQuNy45IDMxLjcgNS4xIDUxLjggNi40IDMwLjUgMTguNiA2MC43IDM3LjkgODkgMTQuNyAyMS41IDMyLjkgNDAuOSA1NC43IDU3LjgtMTEuNSAyMy43LTI1LjYgNDguMi00MC40IDY4Ljh6bS05NC41LTU3MmM1MC43LTYwLjIgNDYuMS0xMTUgNDQuNi0xMzQuNy00NC44IDIuNi05Ni42IDMwLjUtMTI2LjEgNjQuOC0zMi41IDM2LjgtNTEuNiA4Mi4zLTQ3LjUgMTMzLjYgNDguNCAzLjcgOTIuNi0yMS4yIDEyOS02My43eiJ9fV19LG5hbWU6ImFwcGxlIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sMTUzMjQ6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJkZWZzIixhdHRyczp7fSxjaGlsZHJlbjpbe3RhZzoic3R5bGUiLGF0dHJzOnt9fV19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNDY0IDE0NEgxNjBjLTguOCAwLTE2IDcuMi0xNiAxNnYzMDRjMCA4LjggNy4yIDE2IDE2IDE2aDMwNGM4LjggMCAxNi03LjIgMTYtMTZWMTYwYzAtOC44LTcuMi0xNi0xNi0xNnptLTUyIDI2OEgyMTJWMjEyaDIwMHYyMDB6bTQ1Mi0yNjhINTYwYy04LjggMC0xNiA3LjItMTYgMTZ2MzA0YzAgOC44IDcuMiAxNiAxNiAxNmgzMDRjOC44IDAgMTYtNy4yIDE2LTE2VjE2MGMwLTguOC03LjItMTYtMTYtMTZ6bS01MiAyNjhINjEyVjIxMmgyMDB2MjAwem01MiAxMzJINTYwYy04LjggMC0xNiA3LjItMTYgMTZ2MzA0YzAgOC44IDcuMiAxNiAxNiAxNmgzMDRjOC44IDAgMTYtNy4yIDE2LTE2VjU2MGMwLTguOC03LjItMTYtMTYtMTZ6bS01MiAyNjhINjEyVjYxMmgyMDB2MjAwek00MjQgNzEySDI5NlY1ODRjMC00LjQtMy42LTgtOC04aC00OGMtNC40IDAtOCAzLjYtOCA4djEyOEgxMDRjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMTI4djEyOGMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04Vjc3NmgxMjhjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6In19XX0sbmFtZToiYXBwc3RvcmUtYWRkIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNjg2NTQ6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg2NCAxNDRINTYwYy04LjggMC0xNiA3LjItMTYgMTZ2MzA0YzAgOC44IDcuMiAxNiAxNiAxNmgzMDRjOC44IDAgMTYtNy4yIDE2LTE2VjE2MGMwLTguOC03LjItMTYtMTYtMTZ6bTAgNDAwSDU2MGMtOC44IDAtMTYgNy4yLTE2IDE2djMwNGMwIDguOCA3LjIgMTYgMTYgMTZoMzA0YzguOCAwIDE2LTcuMiAxNi0xNlY1NjBjMC04LjgtNy4yLTE2LTE2LTE2ek00NjQgMTQ0SDE2MGMtOC44IDAtMTYgNy4yLTE2IDE2djMwNGMwIDguOCA3LjIgMTYgMTYgMTZoMzA0YzguOCAwIDE2LTcuMiAxNi0xNlYxNjBjMC04LjgtNy4yLTE2LTE2LTE2em0wIDQwMEgxNjBjLTguOCAwLTE2IDcuMi0xNiAxNnYzMDRjMCA4LjggNy4yIDE2IDE2IDE2aDMwNGM4LjggMCAxNi03LjIgMTYtMTZWNTYwYzAtOC44LTcuMi0xNi0xNi0xNnoifX1dfSxuYW1lOiJhcHBzdG9yZSIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw4MTE0NzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNDY0IDE0NEgxNjBjLTguOCAwLTE2IDcuMi0xNiAxNnYzMDRjMCA4LjggNy4yIDE2IDE2IDE2aDMwNGM4LjggMCAxNi03LjIgMTYtMTZWMTYwYzAtOC44LTcuMi0xNi0xNi0xNnptLTUyIDI2OEgyMTJWMjEyaDIwMHYyMDB6bTQ1Mi0yNjhINTYwYy04LjggMC0xNiA3LjItMTYgMTZ2MzA0YzAgOC44IDcuMiAxNiAxNiAxNmgzMDRjOC44IDAgMTYtNy4yIDE2LTE2VjE2MGMwLTguOC03LjItMTYtMTYtMTZ6bS01MiAyNjhINjEyVjIxMmgyMDB2MjAwek00NjQgNTQ0SDE2MGMtOC44IDAtMTYgNy4yLTE2IDE2djMwNGMwIDguOCA3LjIgMTYgMTYgMTZoMzA0YzguOCAwIDE2LTcuMiAxNi0xNlY1NjBjMC04LjgtNy4yLTE2LTE2LTE2em0tNTIgMjY4SDIxMlY2MTJoMjAwdjIwMHptNDUyLTI2OEg1NjBjLTguOCAwLTE2IDcuMi0xNiAxNnYzMDRjMCA4LjggNy4yIDE2IDE2IDE2aDMwNGM4LjggMCAxNi03LjIgMTYtMTZWNTYwYzAtOC44LTcuMi0xNi0xNi0xNnptLTUyIDI2OEg2MTJWNjEyaDIwMHYyMDB6In19XX0sbmFtZToiYXBwc3RvcmUiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw4MzE1NjpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjpmdW5jdGlvbihhLG4pe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NjQgMTQ0SDU2MGMtOC44IDAtMTYgNy4yLTE2IDE2djMwNGMwIDguOCA3LjIgMTYgMTYgMTZoMzA0YzguOCAwIDE2LTcuMiAxNi0xNlYxNjBjMC04LjgtNy4yLTE2LTE2LTE2em0tNTIgMjY4SDYxMlYyMTJoMjAwdjIwMHpNNDY0IDU0NEgxNjBjLTguOCAwLTE2IDcuMi0xNiAxNnYzMDRjMCA4LjggNy4yIDE2IDE2IDE2aDMwNGM4LjggMCAxNi03LjIgMTYtMTZWNTYwYzAtOC44LTcuMi0xNi0xNi0xNnptLTUyIDI2OEgyMTJWNjEyaDIwMHYyMDB6bTUyLTY2OEgxNjBjLTguOCAwLTE2IDcuMi0xNiAxNnYzMDRjMCA4LjggNy4yIDE2IDE2IDE2aDMwNGM4LjggMCAxNi03LjIgMTYtMTZWMTYwYzAtOC44LTcuMi0xNi0xNi0xNnptLTUyIDI2OEgyMTJWMjEyaDIwMHYyMDB6bTQ1MiAxMzJINTYwYy04LjggMC0xNiA3LjItMTYgMTZ2MzA0YzAgOC44IDcuMiAxNiAxNiAxNmgzMDRjOC44IDAgMTYtNy4yIDE2LTE2VjU2MGMwLTguOC03LjItMTYtMTYtMTZ6bS01MiAyNjhINjEyVjYxMmgyMDB2MjAweiIsZmlsbDphfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0yMTIgMjEyaDIwMHYyMDBIMjEyem00MDAgMGgyMDB2MjAwSDYxMnpNMjEyIDYxMmgyMDB2MjAwSDIxMnptNDAwIDBoMjAwdjIwMEg2MTJ6IixmaWxsOm59fV19fSxuYW1lOiJhcHBzdG9yZSIsdGhlbWU6InR3b3RvbmUifTt0LmRlZmF1bHQ9ZX0sNjA4NTM6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4OCA3OTJIMjAwVjE2OGMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2Njg4YzAgNC40IDMuNiA4IDggOGg3NTJjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS02MTYtNjRoNTM2YzQuNCAwIDgtMy42IDgtOFYyODRjMC03LjItOC43LTEwLjctMTMuNy01LjdMNTkyIDQ4OC42bC0xMjUuNC0xMjRhOC4wMyA4LjAzIDAgMDAtMTEuMyAwbC0xODkgMTg5LjZhNy44NyA3Ljg3IDAgMDAtMi4zIDUuNlY3MjBjMCA0LjQgMy42IDggOCA4eiJ9fV19LG5hbWU6ImFyZWEtY2hhcnQiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw2MjUzMzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODYyIDQ2NS4zaC04MWMtNC42IDAtOSAyLTEyLjEgNS41TDU1MCA3MjMuMVYxNjBjMC00LjQtMy42LTgtOC04aC02MGMtNC40IDAtOCAzLjYtOCA4djU2My4xTDI1NS4xIDQ3MC44Yy0zLTMuNS03LjQtNS41LTEyLjEtNS41aC04MWMtNi44IDAtMTAuNSA4LjEtNiAxMy4yTDQ4Ny45IDg2MWEzMS45NiAzMS45NiAwIDAwNDguMyAwTDg2OCA0NzguNWM0LjUtNS4yLjgtMTMuMi02LTEzLjJ6In19XX0sbmFtZToiYXJyb3ctZG93biIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDUzMTI5OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NjggNTQ1LjVMNTM2LjEgMTYzYTMxLjk2IDMxLjk2IDAgMDAtNDguMyAwTDE1NiA1NDUuNWE3Ljk3IDcuOTcgMCAwMDYgMTMuMmg4MWM0LjYgMCA5LTIgMTIuMS01LjVMNDc0IDMwMC45Vjg2NGMwIDQuNCAzLjYgOCA4IDhoNjBjNC40IDAgOC0zLjYgOC04VjMwMC45bDIxOC45IDI1Mi4zYzMgMy41IDcuNCA1LjUgMTIuMSA1LjVoODFjNi44IDAgMTAuNS04IDYtMTMuMnoifX1dfSxuYW1lOiJhcnJvdy11cCIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDIyNjAwOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NTUgMTYwLjFsLTE4OS4yIDIzLjVjLTYuNi44LTkuMyA4LjgtNC43IDEzLjVsNTQuNyA1NC43LTE1My41IDE1My41YTguMDMgOC4wMyAwIDAwMCAxMS4zbDQ1LjEgNDUuMWMzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDE1My42LTE1My42IDU0LjcgNTQuN2E3Ljk0IDcuOTQgMCAwMDEzLjUtNC43TDg2My45IDE2OWE3LjkgNy45IDAgMDAtOC45LTguOXpNNDE2LjYgNTYyLjNhOC4wMyA4LjAzIDAgMDAtMTEuMyAwTDI1MS44IDcxNS45bC01NC43LTU0LjdhNy45NCA3Ljk0IDAgMDAtMTMuNSA0LjdMMTYwLjEgODU1Yy0uNiA1LjIgMy43IDkuNSA4LjkgOC45bDE4OS4yLTIzLjVjNi42LS44IDkuMy04LjggNC43LTEzLjVsLTU0LjctNTQuNyAxNTMuNi0xNTMuNmMzLjEtMy4xIDMuMS04LjIgMC0xMS4zbC00NS4yLTQ1eiJ9fV19LG5hbWU6ImFycm93cy1hbHQiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw2Njg4NDpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDYyNGM5My45IDAgMTcwLTc1LjIgMTcwLTE2OFYyMzJjMC05Mi44LTc2LjEtMTY4LTE3MC0xNjhzLTE3MCA3NS4yLTE3MCAxNjh2MjI0YzAgOTIuOCA3Ni4xIDE2OCAxNzAgMTY4em0zMzAtMTcwYzAtNC40LTMuNi04LTgtOGgtNjBjLTQuNCAwLTggMy42LTggOCAwIDE0MC4zLTExMy43IDI1NC0yNTQgMjU0UzI1OCA1OTQuMyAyNTggNDU0YzAtNC40LTMuNi04LTgtOGgtNjBjLTQuNCAwLTggMy42LTggOCAwIDE2OC43IDEyNi42IDMwNy45IDI5MCAzMjcuNlY4ODRIMzI2LjdjLTEzLjcgMC0yNC43IDE0LjMtMjQuNyAzMnYzNmMwIDQuNCAyLjggOCA2LjIgOGg0MDcuNmMzLjQgMCA2LjItMy42IDYuMi04di0zNmMwLTE3LjctMTEtMzItMjQuNy0zMkg1NDhWNzgyLjFjMTY1LjMtMTggMjk0LTE1OCAyOTQtMzI4LjF6In19XX0sbmFtZToiYXVkaW8iLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sODkwMTY6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJkZWZzIixhdHRyczp7fSxjaGlsZHJlbjpbe3RhZzoic3R5bGUiLGF0dHJzOnt9fV19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNjgyIDQ1NVYzMTFsLTc2IDc2djY4Yy0uMSA1MC43LTQyIDkyLjEtOTQgOTJhOTUuOCA5NS44IDAgMDEtNTItMTVsLTU0IDU1YzI5LjEgMjIuNCA2NS45IDM2IDEwNiAzNiA5My44IDAgMTcwLTc1LjEgMTcwLTE2OHoifX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04MzMgNDQ2aC02MGMtNC40IDAtOCAzLjYtOCA4IDAgMTQwLjMtMTEzLjcgMjU0LTI1NCAyNTQtNjMgMC0xMjAuNy0yMy0xNjUtNjFsLTU0IDU0YTMzNC4wMSAzMzQuMDEgMCAwMDE3OSA4MXYxMDJIMzI2Yy0xMy45IDAtMjQuOSAxNC4zLTI1IDMydjM2Yy4xIDQuNCAyLjkgOCA2IDhoNDA4YzMuMiAwIDYtMy42IDYtOHYtMzZjMC0xNy43LTExLTMyLTI1LTMySDU0N1Y3ODJjMTY1LjMtMTcuOSAyOTQtMTU3LjkgMjk0LTMyOCAwLTQuNC0zLjYtOC04LTh6bTEzLjEtMzc3LjdsLTQzLjUtNDEuOWE4IDggMCAwMC0xMS4yLjFsLTEyOSAxMjlDNjM0LjMgMTAxLjIgNTc3IDY0IDUxMSA2NGMtOTMuOSAwLTE3MCA3NS4zLTE3MCAxNjh2MjI0YzAgNi43LjQgMTMuMyAxLjIgMTkuOGwtNjggNjhBMjUyLjMzIDI1Mi4zMyAwIDAxMjU4IDQ1NGMtLjItNC40LTMuOC04LTgtOGgtNjBjLTQuNCAwLTggMy42LTggOCAwIDUzIDEyLjUgMTAzIDM0LjYgMTQ3LjRsLTEzNyAxMzdhOC4wMyA4LjAzIDAgMDAwIDExLjNsNDIuNyA0Mi43YzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBMODQ2LjIgNzkuOGwuMS0uMWMzLjEtMy4yIDMtOC4zLS4yLTExLjR6TTQxNyA0MDFWMjMyYzAtNTAuNiA0MS45LTkyIDk0LTkyIDQ2IDAgODQuMSAzMi4zIDkyLjMgNzQuN0w0MTcgNDAxeiJ9fV19LG5hbWU6ImF1ZGlvLW11dGVkIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNTQwNjI6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg0MiA0NTRjMC00LjQtMy42LTgtOC04aC02MGMtNC40IDAtOCAzLjYtOCA4IDAgMTQwLjMtMTEzLjcgMjU0LTI1NCAyNTRTMjU4IDU5NC4zIDI1OCA0NTRjMC00LjQtMy42LTgtOC04aC02MGMtNC40IDAtOCAzLjYtOCA4IDAgMTY4LjcgMTI2LjYgMzA3LjkgMjkwIDMyNy42Vjg4NEgzMjYuN2MtMTMuNyAwLTI0LjcgMTQuMy0yNC43IDMydjM2YzAgNC40IDIuOCA4IDYuMiA4aDQwNy42YzMuNCAwIDYuMi0zLjYgNi4yLTh2LTM2YzAtMTcuNy0xMS0zMi0yNC43LTMySDU0OFY3ODIuMWMxNjUuMy0xOCAyOTQtMTU4IDI5NC0zMjguMXpNNTEyIDYyNGM5My45IDAgMTcwLTc1LjIgMTcwLTE2OFYyMzJjMC05Mi44LTc2LjEtMTY4LTE3MC0xNjhzLTE3MCA3NS4yLTE3MCAxNjh2MjI0YzAgOTIuOCA3Ni4xIDE2OCAxNzAgMTY4em0tOTQtMzkyYzAtNTAuNiA0MS45LTkyIDk0LTkyczk0IDQxLjQgOTQgOTJ2MjI0YzAgNTAuNi00MS45IDkyLTk0IDkycy05NC00MS40LTk0LTkyVjIzMnoifX1dfSxuYW1lOiJhdWRpbyIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDk1MjY6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDU1MmM1NC4zIDAgOTgtNDMuMiA5OC05NlYyMzJjMC01Mi44LTQzLjctOTYtOTgtOTZzLTk4IDQzLjItOTggOTZ2MjI0YzAgNTIuOCA0My43IDk2IDk4IDk2eiIsZmlsbDpufX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NDIgNDU0YzAtNC40LTMuNi04LTgtOGgtNjBjLTQuNCAwLTggMy42LTggOCAwIDE0MC4zLTExMy43IDI1NC0yNTQgMjU0UzI1OCA1OTQuMyAyNTggNDU0YzAtNC40LTMuNi04LTgtOGgtNjBjLTQuNCAwLTggMy42LTggOCAwIDE2OC43IDEyNi42IDMwNy45IDI5MCAzMjcuNlY4ODRIMzI2LjdjLTEzLjcgMC0yNC43IDE0LjMtMjQuNyAzMnYzNmMwIDQuNCAyLjggOCA2LjIgOGg0MDcuNmMzLjQgMCA2LjItMy42IDYuMi04di0zNmMwLTE3LjctMTEtMzItMjQuNy0zMkg1NDhWNzgyLjFjMTY1LjMtMTggMjk0LTE1OCAyOTQtMzI4LjF6IixmaWxsOmF9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2MjRjOTMuOSAwIDE3MC03NS4yIDE3MC0xNjhWMjMyYzAtOTIuOC03Ni4xLTE2OC0xNzAtMTY4cy0xNzAgNzUuMi0xNzAgMTY4djIyNGMwIDkyLjggNzYuMSAxNjggMTcwIDE2OHptLTk4LTM5MmMwLTUyLjggNDMuNy05NiA5OC05NnM5OCA0My4yIDk4IDk2djIyNGMwIDUyLjgtNDMuNyA5Ni05OCA5NnMtOTgtNDMuMi05OC05NlYyMzJ6IixmaWxsOmF9fV19fSxuYW1lOiJhdWRpbyIsdGhlbWU6InR3b3RvbmUifTt0LmRlZmF1bHQ9ZX0sMzkwNTU6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTI5NiAyNTBjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMzg0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04SDI5NnptMTg0IDE0NEgyOTZjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMTg0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04em0tNDggNDU4SDIwOFYxNDhoNTYwdjMyMGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04VjEwOGMwLTE3LjctMTQuMy0zMi0zMi0zMkgxNjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjc4NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmgyNjRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTQ0MC04OEg3Mjh2LTM2LjZjNDYuMy0xMy44IDgwLTU2LjYgODAtMTA3LjQgMC02MS45LTUwLjEtMTEyLTExMi0xMTJzLTExMiA1MC4xLTExMiAxMTJjMCA1MC43IDMzLjcgOTMuNiA4MCAxMDcuNFY3NjRINTIwYy04LjggMC0xNiA3LjItMTYgMTZ2MTUyYzAgOC44IDcuMiAxNiAxNiAxNmgzNTJjOC44IDAgMTYtNy4yIDE2LTE2Vjc4MGMwLTguOC03LjItMTYtMTYtMTZ6TTY0NiA2MjBjMC0yNy42IDIyLjQtNTAgNTAtNTBzNTAgMjIuNCA1MCA1MC0yMi40IDUwLTUwIDUwLTUwLTIyLjQtNTAtNTB6bTE4MCAyNjZINTY2di02MGgyNjB2NjB6In19XX0sbmFtZToiYXVkaXQiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSwxODk4NTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiIwIDAgMTAyNCAxMDI0Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNDg1LjYgMjQ5LjlMMTk4LjIgNDk4Yy04LjMgNy4xLTguMyAyMC44IDAgMjcuOWwyODcuNCAyNDguMmMxMC43IDkuMiAyNi40LjkgMjYuNC0xNFYyNjMuOGMwLTE0LjgtMTUuNy0yMy4yLTI2LjQtMTMuOXptMzIwIDBMNTE4LjIgNDk4YTE4LjYgMTguNiAwIDAwLTYuMiAxNGMwIDUuMiAyLjEgMTAuNCA2LjIgMTRsMjg3LjQgMjQ4LjJjMTAuNyA5LjIgMjYuNC45IDI2LjQtMTRWMjYzLjhjMC0xNC44LTE1LjctMjMuMi0yNi40LTEzLjl6In19XX0sbmFtZToiYmFja3dhcmQiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sNDM1OTc6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiMCAwIDEwMjQgMTAyNCIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQ4NS42IDI0OS45TDE5OC4yIDQ5OGMtOC4zIDcuMS04LjMgMjAuOCAwIDI3LjlsMjg3LjQgMjQ4LjJjMTAuNyA5LjIgMjYuNC45IDI2LjQtMTRWMjYzLjhjMC0xNC44LTE1LjctMjMuMi0yNi40LTEzLjl6bTMyMCAwTDUxOC4yIDQ5OGExOC42IDE4LjYgMCAwMC02LjIgMTRjMCA1LjIgMi4xIDEwLjQgNi4yIDE0bDI4Ny40IDI0OC4yYzEwLjcgOS4yIDI2LjQuOSAyNi40LTE0VjI2My44YzAtMTQuOC0xNS43LTIzLjItMjYuNC0xMy45eiJ9fV19LG5hbWU6ImJhY2t3YXJkIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sMzg1MDE6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7ImZpbGwtcnVsZSI6ImV2ZW5vZGQiLHZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0yNTAuMDIgNTQ3LjA0YzkyLjM3LTE5LjggNzkuNzctMTMwLjA3IDc2Ljk1LTE1NC4xOC00LjU2LTM3LjItNDguMjYtMTAyLjE2LTEwNy42My05Ny4wMi03NC43IDYuNy04NS42NSAxMTQuNTgtODUuNjUgMTE0LjU4LTEwLjA0IDQ5Ljg4IDI0LjIgMTU2LjQzIDExNi4zMyAxMzYuNjJtODQuNyAyMTQuMTRjMTAuMjggMzguNyA0My45NSA0MC40MyA0My45NSA0MC40M0g0MjdWNjgzLjU1aC01MS43NGMtMjMuMjIgNi45Ni0zNC41IDI1LjEtMzYuOTggMzIuOC0yLjc0IDcuOC04LjcxIDI3LjYtMy41NyA0NC44M20xNjkuMDctNTMxLjFjMC03Mi40Mi00MS4xMy0xMzEuMDgtOTIuMi0xMzEuMDgtNTAuOTIgMC05Mi4yMSA1OC42Ni05Mi4yMSAxMzEuMDcgMCA3Mi41IDQxLjMgMTMxLjE2IDkyLjIgMTMxLjE2IDUxLjA4IDAgOTIuMjEtNTguNjYgOTIuMjEtMTMxLjE2bTI0OC4xIDkuMWM4Ljg2LTU0LjkyLTM1LjA4LTExOC44OC04My4zNC0xMjkuODItNDguMzQtMTEuMS0xMDguNyA2Ni4yOC0xMTQuMTggMTE2Ljc0LTYuNTUgNjEuNzIgOC43OSAxMjMuMjggNzYuODYgMTMyLjA2IDY4LjE2IDguODcgMTEyLjAzLTYzLjg3IDEyMC42NS0xMTguOTdtNDYuMzUgNDMzLjAycy0xMDUuNDctODEuNTMtMTY3LTE2OS42Yy04My40LTEyOS45MS0yMDEuOTgtNzcuMDUtMjQxLjYyLTExLjAyLTM5LjQ3IDY2LjAzLTEwMSAxMDcuODctMTA5LjcgMTE4LjktOC44NyAxMC45My0xMjcuMzYgNzQuOC0xMDEuMDcgMTkxLjU1IDI2LjI4IDExNi42NSAxMTguNzMgMTE0LjUgMTE4LjczIDExNC41czY4LjA4IDYuNyAxNDcuMS0xMC45NEM1MjMuNyA4ODguMDMgNTkxLjcgOTEwIDU5MS43IDkxMHMxODQuNTcgNjEuNzIgMjM1LjA3LTU3LjE4YzUwLjQxLTExOC45Ny0yOC41My0xODAuNjEtMjguNTMtMTgwLjYxTTM2Mi40MiA4NDkuMTdjLTUxLjgzLTEwLjM2LTcyLjQ3LTQ1LjY1LTc1LjEzLTUxLjctMi41Ny02LjEzLTE3LjI0LTM0LjU1LTkuNDUtODIuODUgMjIuMzktNzIuNDEgODYuMjMtNzcuNjMgODYuMjMtNzcuNjNoNjMuODV2LTc4LjQ2bDU0LjQuODIuMDggMjg5Ljgyem0yMDUuMzgtLjgzYy01My41Ni0xMy43NS01Ni4wNS01MS43OC01Ni4wNS01MS43OFY2NDMuOTVsNTYuMDUtLjkydjEzNy4xMmMzLjQgMTQuNTkgMjEuNjUgMTcuMzIgMjEuNjUgMTcuMzJoNTYuODhWNjQzLjk1aDU5LjYydjIwNC4zOXptMzIzLjg0LTM5Ny43MmMwLTI2LjM1LTIxLjg5LTEwNS43Mi0xMDMuMTUtMTA1LjcyLTgxLjQzIDAtOTIuMjkgNzQuOS05Mi4yOSAxMjcuODQgMCA1MC41NCA0LjMxIDEyMS4xMyAxMDUuNCAxMTguOCAxMDEuMTUtMi4xNSA5MC4wNC0xMTQuNDEgOTAuMDQtMTQwLjkyIn19XX0sbmFtZToiYmFpZHUiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw4NjkwNjpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODk0IDQ2MmMzMC45IDAgNDMuOC0zOS43IDE4LjctNThMNTMwLjggMTI2LjJhMzEuODEgMzEuODEgMCAwMC0zNy42IDBMMTExLjMgNDA0Yy0yNS4xIDE4LjItMTIuMiA1OCAxOC44IDU4SDE5MnYzNzRoLTcyYy00LjQgMC04IDMuNi04IDh2NTJjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTUyYzAtNC40LTMuNi04LTgtOGgtNzJWNDYyaDYyek0zODEgODM2SDI2NFY0NjJoMTE3djM3NHptMTg5IDBINDUzVjQ2MmgxMTd2Mzc0em0xOTAgMEg2NDJWNDYyaDExOHYzNzR6In19XX0sbmFtZToiYmFuayIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw1NjUzMzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODk0IDQ2MmMzMC45IDAgNDMuOC0zOS43IDE4LjctNThMNTMwLjggMTI2LjJhMzEuODEgMzEuODEgMCAwMC0zNy42IDBMMTExLjMgNDA0Yy0yNS4xIDE4LjItMTIuMiA1OCAxOC44IDU4SDE5MnYzNzRoLTcyYy00LjQgMC04IDMuNi04IDh2NTJjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTUyYzAtNC40LTMuNi04LTgtOGgtNzJWNDYyaDYyek01MTIgMTk2LjdsMjcxLjEgMTk3LjJIMjQwLjlMNTEyIDE5Ni43ek0yNjQgNDYyaDExN3YzNzRIMjY0VjQ2MnptMTg5IDBoMTE3djM3NEg0NTNWNDYyem0zMDcgMzc0SDY0MlY0NjJoMTE4djM3NHoifX1dfSxuYW1lOiJiYW5rIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNDM3NTU6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMjQwLjkgMzkzLjloNTQyLjJMNTEyIDE5Ni43eiIsZmlsbDpufX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04OTQgNDYyYzMwLjkgMCA0My44LTM5LjcgMTguNy01OEw1MzAuOCAxMjYuMmEzMS44MSAzMS44MSAwIDAwLTM3LjYgMEwxMTEuMyA0MDRjLTI1LjEgMTguMi0xMi4yIDU4IDE4LjggNThIMTkydjM3NGgtNzJjLTQuNCAwLTggMy42LTggOHY1MmMwIDQuNCAzLjYgOCA4IDhoNzg0YzQuNCAwIDgtMy42IDgtOHYtNTJjMC00LjQtMy42LTgtOC04aC03MlY0NjJoNjJ6TTM4MSA4MzZIMjY0VjQ2MmgxMTd2Mzc0em0xODkgMEg0NTNWNDYyaDExN3YzNzR6bTE5MCAwSDY0MlY0NjJoMTE4djM3NHpNMjQwLjkgMzkzLjlMNTEyIDE5Ni43bDI3MS4xIDE5Ny4ySDI0MC45eiIsZmlsbDphfX1dfX0sbmFtZToiYmFuayIsdGhlbWU6InR3b3RvbmUifTt0LmRlZmF1bHQ9ZX0sODQwMDU6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4OCA3OTJIMjAwVjE2OGMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2Njg4YzAgNC40IDMuNiA4IDggOGg3NTJjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS02MDAtODBoNTZjNC40IDAgOC0zLjYgOC04VjU2MGMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2MTQ0YzAgNC40IDMuNiA4IDggOHptMTUyIDBoNTZjNC40IDAgOC0zLjYgOC04VjM4NGMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2MzIwYzAgNC40IDMuNiA4IDggOHptMTUyIDBoNTZjNC40IDAgOC0zLjYgOC04VjQ2MmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2MjQyYzAgNC40IDMuNiA4IDggOHptMTUyIDBoNTZjNC40IDAgOC0zLjYgOC04VjMwNGMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NDAwYzAgNC40IDMuNiA4IDggOHoifX1dfSxuYW1lOiJiYXItY2hhcnQiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw0NTg2NDpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMTIwIDE2MEg3MmMtNC40IDAtOCAzLjYtOCA4djY4OGMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04VjE2OGMwLTQuNC0zLjYtOC04LTh6bTgzMyAwaC00OGMtNC40IDAtOCAzLjYtOCA4djY4OGMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04VjE2OGMwLTQuNC0zLjYtOC04LTh6TTIwMCA3MzZoMTEyYzQuNCAwIDgtMy42IDgtOFYxNjhjMC00LjQtMy42LTgtOC04SDIwMGMtNC40IDAtOCAzLjYtOCA4djU2MGMwIDQuNCAzLjYgOCA4IDh6bTMyMSAwaDQ4YzQuNCAwIDgtMy42IDgtOFYxNjhjMC00LjQtMy42LTgtOC04aC00OGMtNC40IDAtOCAzLjYtOCA4djU2MGMwIDQuNCAzLjYgOCA4IDh6bTEyNiAwaDE3OGM0LjQgMCA4LTMuNiA4LThWMTY4YzAtNC40LTMuNi04LTgtOEg2NDdjLTQuNCAwLTggMy42LTggOHY1NjBjMCA0LjQgMy42IDggOCA4em0tMjU1IDBoNDhjNC40IDAgOC0zLjYgOC04VjE2OGMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2NTYwYzAgNC40IDMuNiA4IDggOHptLTc5IDY0SDIwMWMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgxMTJjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6bTI1NyAwaC00OGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOHptMjU2IDBINjQ4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDE3OGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOHptLTM4NSAwaC00OGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOHoifX1dfSxuYW1lOiJiYXJjb2RlIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sMjU0MTM6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiMCAwIDEwMjQgMTAyNCIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkxMiAxOTJIMzI4Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCAyODRIMzI4Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCAyODRIMzI4Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNMTA0IDIyOGE1NiA1NiAwIDEwMTEyIDAgNTYgNTYgMCAxMC0xMTIgMHptMCAyODRhNTYgNTYgMCAxMDExMiAwIDU2IDU2IDAgMTAtMTEyIDB6bTAgMjg0YTU2IDU2IDAgMTAxMTIgMCA1NiA1NiAwIDEwLTExMiAweiJ9fV19LG5hbWU6ImJhcnMiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw5ODk2ODpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNDIwLjMgNDcwLjNjOC43LTYuMyAxMi45LTE2LjcgMTIuOS0zMSAuMy02LjgtMS4xLTEzLjUtNC4xLTE5LjYtMi43LTQuOS02LjctOS0xMS42LTExLjlhNDQuOCA0NC44IDAgMDAtMTYuNi02Yy02LjQtMS4yLTEyLjktMS44LTE5LjMtMS43aC03MC4zdjc5LjdoNzYuMWMxMy4xLjEgMjQuMi0zLjEgMzIuOS05LjV6bTExLjggNzJjLTkuOC03LjUtMjIuOS0xMS4yLTM5LjItMTEuMmgtODEuOHY5NGg4MC4yYzcuNSAwIDE0LjQtLjcgMjEuMS0yLjFhNTAuNSA1MC41IDAgMDAxNy44LTcuMmM1LjEtMy4zIDkuMi03LjggMTIuMy0xMy42IDMtNS44IDQuNS0xMy4yIDQuNS0yMi4xIDAtMTcuNy01LTMwLjItMTQuOS0zNy44ek01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptODYuNSAyODYuOWgxMzguNHYzMy43SDU5OC41di0zMy43ek01MTIgNjI4LjhhODkuNTIgODkuNTIgMCAwMS0yNyAzMWMtMTEuOCA4LjItMjQuOSAxNC4yLTM4LjggMTcuN2ExNjcuNCAxNjcuNCAwIDAxLTQ0LjYgNS43SDIzNlYzNDIuMWgxNjFjMTYuMyAwIDMxLjEgMS41IDQ0LjYgNC4zIDEzLjQgMi44IDI0LjggNy42IDM0LjQgMTQuMSA5LjUgNi41IDE3IDE1LjIgMjIuMyAyNiA1LjIgMTAuNyA3LjkgMjQuMSA3LjkgNDAgMCAxNy4yLTMuOSAzMS40LTExLjcgNDIuOS03LjkgMTEuNS0xOS4zIDIwLjgtMzQuOCAyOC4xIDIxLjEgNiAzNi42IDE2LjcgNDYuOCAzMS43IDEwLjQgMTUuMiAxNS41IDMzLjQgMTUuNSA1NC44IDAgMTcuNC0zLjMgMzIuMy0xMCA0NC44ek03OTAuOCA1NzZINjEyLjRjMCAxOS40IDYuNyAzOCAxNi44IDQ4IDEwLjIgOS45IDI0LjggMTQuOSA0My45IDE0LjkgMTMuOCAwIDI1LjUtMy41IDM1LjUtMTAuNCA5LjktNi45IDE1LjktMTQuMiAxOC4xLTIxLjhoNTkuOGMtOS42IDI5LjctMjQuMiA1MC45LTQ0IDYzLjctMTkuNiAxMi44LTQzLjYgMTkuMi03MS41IDE5LjItMTkuNSAwLTM3LTMuMi01Mi43LTkuMy0xNS4xLTUuOS0yOC43LTE0LjktMzkuOS0yNi41YTEyMS4yIDEyMS4yIDAgMDEtMjUuMS00MS4yYy02LjEtMTYuOS05LjEtMzQuNy04LjktNTIuNiAwLTE4LjUgMy4xLTM1LjcgOS4xLTUxLjcgMTEuNS0zMS4xIDM1LjQtNTYgNjUuOS02OC45IDE2LjMtNi44IDMzLjgtMTAuMiA1MS41LTEwIDIxIDAgMzkuMiA0IDU1IDEyLjJhMTExLjYgMTExLjYgMCAwMTM4LjYgMzIuOGMxMC4xIDEzLjcgMTcuMiAyOS4zIDIxLjcgNDYuOSA0LjMgMTcuMyA1LjggMzUuNSA0LjYgNTQuN3ptLTEyMi05NS42Yy0xMC44IDAtMTkuOSAxLjktMjYuOSA1LjYtNyAzLjctMTIuOCA4LjMtMTcuMiAxMy42YTQ4LjQgNDguNCAwIDAwLTkuMSAxNy40Yy0xLjYgNS4zLTIuNyAxMC43LTMuMSAxNi4ySDcyM2MtMS42LTE3LjMtNy42LTMwLjEtMTUuNi0zOS4xLTguNC04LjktMjEuOS0xMy43LTM4LjYtMTMuN3oifX1dfSxuYW1lOiJiZWhhbmNlLWNpcmNsZSIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw2MTYyMjpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNjM0IDI5NC4zaDE5OS41djQ4LjRINjM0ek00MzQuMSA0ODUuOGM0NC4xLTIxLjEgNjcuMi01My4yIDY3LjItMTAyLjggMC05OC4xLTczLTEyMS45LTE1Ny4zLTEyMS45SDExMnY0OTIuNGgyMzguNWM4OS40IDAgMTczLjMtNDMgMTczLjMtMTQzIDAtNjEuOC0yOS4yLTEwNy41LTg5LjctMTI0Ljd6TTIyMC4yIDM0NS4xaDEwMS41YzM5LjEgMCA3NC4yIDEwLjkgNzQuMiA1Ni4zIDAgNDEuOC0yNy4zIDU4LjYtNjYgNTguNkgyMjAuMlYzNDUuMXptMTE1LjUgMzI0LjhIMjIwLjFWNTM0LjNIMzM4YzQ3LjYgMCA3Ny43IDE5LjkgNzcuNyA3MC4zIDAgNDkuNi0zNS45IDY1LjMtODAgNjUuM3ptNTc1LjgtODkuNWMwLTEwNS41LTYxLjctMTkzLjQtMTczLjMtMTkzLjQtMTA4LjUgMC0xODIuMyA4MS43LTE4Mi4zIDE4OC44IDAgMTExIDY5LjkgMTg3LjIgMTgyLjMgMTg3LjIgODUuMSAwIDE0MC4yLTM4LjMgMTY2LjctMTIwaC04Ni4zYy05LjQgMzAuNS00Ny42IDQ2LjUtNzcuMyA0Ni41LTU3LjQgMC04Ny40LTMzLjYtODcuNC05MC43aDI1Ni45Yy4zLTUuOS43LTEyLjEuNy0xOC40ek02NTMuOSA1MzdjMy4xLTQ2LjkgMzQuNC03Ni4yIDgxLjItNzYuMiA0OS4yIDAgNzMuOCAyOC45IDc4LjEgNzYuMkg2NTMuOXoifX1dfSxuYW1lOiJiZWhhbmNlIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNDkyMzc6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNTk4LjUgMzUwLjloMTM4LjR2MzMuN0g1OTguNXYtMzMuN3pNNTEyIDYyOC44YTg5LjUyIDg5LjUyIDAgMDEtMjcgMzFjLTExLjggOC4yLTI0LjkgMTQuMi0zOC44IDE3LjdhMTY3LjQgMTY3LjQgMCAwMS00NC42IDUuN0gyMzZWMzQyLjFoMTYxYzE2LjMgMCAzMS4xIDEuNSA0NC42IDQuMyAxMy40IDIuOCAyNC44IDcuNiAzNC40IDE0LjEgOS41IDYuNSAxNyAxNS4yIDIyLjMgMjYgNS4yIDEwLjcgNy45IDI0LjEgNy45IDQwIDAgMTcuMi0zLjkgMzEuNC0xMS43IDQyLjktNy45IDExLjUtMTkuMyAyMC44LTM0LjggMjguMSAyMS4xIDYgMzYuNiAxNi43IDQ2LjggMzEuNyAxMC40IDE1LjIgMTUuNSAzMy40IDE1LjUgNTQuOCAwIDE3LjQtMy4zIDMyLjMtMTAgNDQuOHpNNzkwLjggNTc2SDYxMi40YzAgMTkuNCA2LjcgMzggMTYuOCA0OCAxMC4yIDkuOSAyNC44IDE0LjkgNDMuOSAxNC45IDEzLjggMCAyNS41LTMuNSAzNS41LTEwLjQgOS45LTYuOSAxNS45LTE0LjIgMTguMS0yMS44aDU5LjhjLTkuNiAyOS43LTI0LjIgNTAuOS00NCA2My43LTE5LjYgMTIuOC00My42IDE5LjItNzEuNSAxOS4yLTE5LjUgMC0zNy0zLjItNTIuNy05LjMtMTUuMS01LjktMjguNy0xNC45LTM5LjktMjYuNWExMjEuMiAxMjEuMiAwIDAxLTI1LjEtNDEuMmMtNi4xLTE2LjktOS4xLTM0LjctOC45LTUyLjYgMC0xOC41IDMuMS0zNS43IDkuMS01MS43IDExLjUtMzEuMSAzNS40LTU2IDY1LjktNjguOSAxNi4zLTYuOCAzMy44LTEwLjIgNTEuNS0xMCAyMSAwIDM5LjIgNCA1NSAxMi4yYTExMS42IDExMS42IDAgMDEzOC42IDMyLjhjMTAuMSAxMy43IDE3LjIgMjkuMyAyMS43IDQ2LjkgNC4zIDE3LjMgNS44IDM1LjUgNC42IDU0Ljd6bS0xMjItOTUuNmMtMTAuOCAwLTE5LjkgMS45LTI2LjkgNS42LTcgMy43LTEyLjggOC4zLTE3LjIgMTMuNmE0OC40IDQ4LjQgMCAwMC05LjEgMTcuNGMtMS42IDUuMy0yLjcgMTAuNy0zLjEgMTYuMkg3MjNjLTEuNi0xNy4zLTcuNi0zMC4xLTE1LjYtMzkuMS04LjQtOC45LTIxLjktMTMuNy0zOC42LTEzLjd6bS0yNDguNS0xMC4xYzguNy02LjMgMTIuOS0xNi43IDEyLjktMzEgLjMtNi44LTEuMS0xMy41LTQuMS0xOS42LTIuNy00LjktNi43LTktMTEuNi0xMS45YTQ0LjggNDQuOCAwIDAwLTE2LjYtNmMtNi40LTEuMi0xMi45LTEuOC0xOS4zLTEuN2gtNzAuM3Y3OS43aDc2LjFjMTMuMS4xIDI0LjItMy4xIDMyLjktOS41em0xMS44IDcyYy05LjgtNy41LTIyLjktMTEuMi0zOS4yLTExLjJoLTgxLjh2OTRoODAuMmM3LjUgMCAxNC40LS43IDIxLjEtMi4xczEyLjctMy44IDE3LjgtNy4yYzUuMS0zLjMgOS4yLTcuOCAxMi4zLTEzLjYgMy01LjggNC41LTEzLjIgNC41LTIyLjEgMC0xNy43LTUtMzAuMi0xNC45LTM3Ljh6In19XX0sbmFtZToiYmVoYW5jZS1zcXVhcmUiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sMzQ4NDM6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNTk4LjUgMzUwLjloMTM4LjR2MzMuN0g1OTguNXYtMzMuN3pNNTEyIDYyOC44YTg5LjUyIDg5LjUyIDAgMDEtMjcgMzFjLTExLjggOC4yLTI0LjkgMTQuMi0zOC44IDE3LjdhMTY3LjQgMTY3LjQgMCAwMS00NC42IDUuN0gyMzZWMzQyLjFoMTYxYzE2LjMgMCAzMS4xIDEuNSA0NC42IDQuMyAxMy40IDIuOCAyNC44IDcuNiAzNC40IDE0LjEgOS41IDYuNSAxNyAxNS4yIDIyLjMgMjYgNS4yIDEwLjcgNy45IDI0LjEgNy45IDQwIDAgMTcuMi0zLjkgMzEuNC0xMS43IDQyLjktNy45IDExLjUtMTkuMyAyMC44LTM0LjggMjguMSAyMS4xIDYgMzYuNiAxNi43IDQ2LjggMzEuNyAxMC40IDE1LjIgMTUuNSAzMy40IDE1LjUgNTQuOCAwIDE3LjQtMy4zIDMyLjMtMTAgNDQuOHpNNzkwLjggNTc2SDYxMi40YzAgMTkuNCA2LjcgMzggMTYuOCA0OCAxMC4yIDkuOSAyNC44IDE0LjkgNDMuOSAxNC45IDEzLjggMCAyNS41LTMuNSAzNS41LTEwLjQgOS45LTYuOSAxNS45LTE0LjIgMTguMS0yMS44aDU5LjhjLTkuNiAyOS43LTI0LjIgNTAuOS00NCA2My43LTE5LjYgMTIuOC00My42IDE5LjItNzEuNSAxOS4yLTE5LjUgMC0zNy0zLjItNTIuNy05LjMtMTUuMS01LjktMjguNy0xNC45LTM5LjktMjYuNWExMjEuMiAxMjEuMiAwIDAxLTI1LjEtNDEuMmMtNi4xLTE2LjktOS4xLTM0LjctOC45LTUyLjYgMC0xOC41IDMuMS0zNS43IDkuMS01MS43IDExLjUtMzEuMSAzNS40LTU2IDY1LjktNjguOSAxNi4zLTYuOCAzMy44LTEwLjIgNTEuNS0xMCAyMSAwIDM5LjIgNCA1NSAxMi4yYTExMS42IDExMS42IDAgMDEzOC42IDMyLjhjMTAuMSAxMy43IDE3LjIgMjkuMyAyMS43IDQ2LjkgNC4zIDE3LjMgNS44IDM1LjUgNC42IDU0Ljd6bS0xMjItOTUuNmMtMTAuOCAwLTE5LjkgMS45LTI2LjkgNS42LTcgMy43LTEyLjggOC4zLTE3LjIgMTMuNmE0OC40IDQ4LjQgMCAwMC05LjEgMTcuNGMtMS42IDUuMy0yLjcgMTAuNy0zLjEgMTYuMkg3MjNjLTEuNi0xNy4zLTcuNi0zMC4xLTE1LjYtMzkuMS04LjQtOC45LTIxLjktMTMuNy0zOC42LTEzLjd6bS0yNDguNS0xMC4xYzguNy02LjMgMTIuOS0xNi43IDEyLjktMzEgLjMtNi44LTEuMS0xMy41LTQuMS0xOS42LTIuNy00LjktNi43LTktMTEuNi0xMS45YTQ0LjggNDQuOCAwIDAwLTE2LjYtNmMtNi40LTEuMi0xMi45LTEuOC0xOS4zLTEuN2gtNzAuM3Y3OS43aDc2LjFjMTMuMS4xIDI0LjItMy4xIDMyLjktOS41em0xMS44IDcyYy05LjgtNy41LTIyLjktMTEuMi0zOS4yLTExLjJoLTgxLjh2OTRoODAuMmM3LjUgMCAxNC40LS43IDIxLjEtMi4xczEyLjctMy44IDE3LjgtNy4yYzUuMS0zLjMgOS4yLTcuOCAxMi4zLTEzLjYgMy01LjggNC41LTEzLjIgNC41LTIyLjEgMC0xNy43LTUtMzAuMi0xNC45LTM3Ljh6In19XX0sbmFtZToiYmVoYW5jZS1zcXVhcmUiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw1MTQ0MDpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODE2IDc2OGgtMjRWNDI4YzAtMTQxLjEtMTA0LjMtMjU3LjgtMjQwLTI3Ny4yVjExMmMwLTIyLjEtMTcuOS00MC00MC00MHMtNDAgMTcuOS00MCA0MHYzOC44QzMzNi4zIDE3MC4yIDIzMiAyODYuOSAyMzIgNDI4djM0MGgtMjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjMyYzAgNC40IDMuNiA4IDggOGgyMTZjMCA2MS44IDUwLjIgMTEyIDExMiAxMTJzMTEyLTUwLjIgMTEyLTExMmgyMTZjNC40IDAgOC0zLjYgOC04di0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNTEyIDg4OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhoOTZjMCAyNi41LTIxLjUgNDgtNDggNDh6In19XX0sbmFtZToiYmVsbCIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw5ODY5NjpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODE2IDc2OGgtMjRWNDI4YzAtMTQxLjEtMTA0LjMtMjU3LjctMjQwLTI3Ny4xVjExMmMwLTIyLjEtMTcuOS00MC00MC00MHMtNDAgMTcuOS00MCA0MHYzOC45Yy0xMzUuNyAxOS40LTI0MCAxMzYtMjQwIDI3Ny4xdjM0MGgtMjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjMyYzAgNC40IDMuNiA4IDggOGgyMTZjMCA2MS44IDUwLjIgMTEyIDExMiAxMTJzMTEyLTUwLjIgMTEyLTExMmgyMTZjNC40IDAgOC0zLjYgOC04di0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNTEyIDg4OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhoOTZjMCAyNi41LTIxLjUgNDgtNDggNDh6TTMwNCA3NjhWNDI4YzAtNTUuNiAyMS42LTEwNy44IDYwLjktMTQ3LjFTNDU2LjQgMjIwIDUxMiAyMjBjNTUuNiAwIDEwNy44IDIxLjYgMTQ3LjEgNjAuOVM3MjAgMzcyLjQgNzIwIDQyOHYzNDBIMzA0eiJ9fV19LG5hbWU6ImJlbGwiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSwyMTEzOTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjpmdW5jdGlvbihhLG4pe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgMjIwYy01NS42IDAtMTA3LjggMjEuNi0xNDcuMSA2MC45UzMwNCAzNzIuNCAzMDQgNDI4djM0MGg0MTZWNDI4YzAtNTUuNi0yMS42LTEwNy44LTYwLjktMTQ3LjFTNTY3LjYgMjIwIDUxMiAyMjB6bTI4MCAyMDhjMC0xNDEuMS0xMDQuMy0yNTcuOC0yNDAtMjc3LjJ2LjFjMTM1LjcgMTkuNCAyNDAgMTM2IDI0MCAyNzcuMXpNNDcyIDE1MC45di0uMUMzMzYuMyAxNzAuMiAyMzIgMjg2LjkgMjMyIDQyOGMwLTE0MS4xIDEwNC4zLTI1Ny43IDI0MC0yNzcuMXoiLGZpbGw6bn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODE2IDc2OGgtMjRWNDI4YzAtMTQxLjEtMTA0LjMtMjU3LjctMjQwLTI3Ny4xVjExMmMwLTIyLjEtMTcuOS00MC00MC00MHMtNDAgMTcuOS00MCA0MHYzOC45Yy0xMzUuNyAxOS40LTI0MCAxMzYtMjQwIDI3Ny4xdjM0MGgtMjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjMyYzAgNC40IDMuNiA4IDggOGgyMTZjMCA2MS44IDUwLjIgMTEyIDExMiAxMTJzMTEyLTUwLjIgMTEyLTExMmgyMTZjNC40IDAgOC0zLjYgOC04di0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNTEyIDg4OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhoOTZjMCAyNi41LTIxLjUgNDgtNDggNDh6bTIwOC0xMjBIMzA0VjQyOGMwLTU1LjYgMjEuNi0xMDcuOCA2MC45LTE0Ny4xUzQ1Ni40IDIyMCA1MTIgMjIwYzU1LjYgMCAxMDcuOCAyMS42IDE0Ny4xIDYwLjlTNzIwIDM3Mi40IDcyMCA0Mjh2MzQweiIsZmlsbDphfX1dfX0sbmFtZToiYmVsbCIsdGhlbWU6InR3b3RvbmUifTt0LmRlZmF1bHQ9ZX0sNjI0NjY6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTc2Ni40IDc0NC4zYzQzLjcgMCA3OS40LTM2LjIgNzkuNC04MC41IDAtNTMuNS03OS40LTE0MC44LTc5LjQtMTQwLjhTNjg3IDYxMC4zIDY4NyA2NjMuOGMwIDQ0LjMgMzUuNyA4MC41IDc5LjQgODAuNXptLTM3Ny4xLTQ0LjFjNy4xIDcuMSAxOC42IDcuMSAyNS42IDBsMjU2LjEtMjU2YzcuMS03LjEgNy4xLTE4LjYgMC0yNS42bC0yNTYtMjU2Yy0uNi0uNi0xLjMtMS4yLTItMS43bC03OC4yLTc4LjJhOS4xMSA5LjExIDAgMDAtMTIuOCAwbC00OCA0OGE5LjExIDkuMTEgMCAwMDAgMTIuOGw2Ny4yIDY3LjItMjA3LjggMjA3LjljLTcuMSA3LjEtNy4xIDE4LjYgMCAyNS42bDI1NS45IDI1NnptMTIuOS00NDguNmwxNzguOSAxNzguOUgyMjMuNGwxNzguOC0xNzguOXpNOTA0IDgxNkgxMjBjLTQuNCAwLTggMy42LTggOHY4MGMwIDQuNCAzLjYgOCA4IDhoNzg0YzQuNCAwIDgtMy42IDgtOHYtODBjMC00LjQtMy42LTgtOC04eiJ9fV19LG5hbWU6ImJnLWNvbG9ycyIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDEwODg1OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6eyJmaWxsLXJ1bGUiOiJldmVub2RkIix2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMzEwLjEzIDU5Ni40NWMtOC00LjQ2LTE2LjUtOC40My0yNS0xMS45YTI3My41NSAyNzMuNTUgMCAwMC0yNi45OS03LjQ0Yy0yLjUtLjk5LTIuNSAxLTIuNSAxLjQ5IDAgNy45My41IDE4Ljg0IDEuNSAyNy43NyAxIDcuNDQgMiAxNS4zNyA0IDIyLjggMCAuNSAwIDEgLjUgMS41IDEgLjk5IDIgMS40OCAzIC40OSA4LTQuNDYgMTYtOC40MyAyMy0xMy4zOSA3LjUtNS40NSAxNS41LTExLjkgMjItMTguMzUgMS41LTEuNDggMC0yLjQ3LjUtMi45N20zMjMuOTUtMTEuOWEyNzMuNTUgMjczLjU1IDAgMDAtMjctNy40NGMtMi41LS45OS0yLjUgMS0yLjUgMS40OSAwIDcuOTMuNSAxOC44NCAxLjUgMjcuNzcgMSA3LjQzIDIgMTUuMzcgNCAyMi44IDAgLjUgMCAxIC41IDEuNSAxIC45OSAyIDEuNDggMyAuNDkgOC00LjQ2IDE2LTguNDMgMjMtMTMuMzkgNy41LTUuNDUgMTUuNS0xMS45IDIyLTE4LjM1IDItMS40OC41LTIuNDcuNS0yLjk3LTcuNS00LjQ2LTE2LjUtOC40My0yNS0xMS45In19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNzQxLjUgMTEySDI4M2MtOTQuNSAwLTE3MSA3Ni41LTE3MSAxNzEuNXY0NThjLjUgOTQgNzcgMTcwLjUgMTcxIDE3MC41aDQ1OGM5NC41IDAgMTcxLTc2LjUgMTcxLTE3MC41di00NThjLjUtOTUtNzYtMTcxLjUtMTcwLjUtMTcxLjVtOTUgMzQzLjVIODUydjQ4aC0xNS41ek03NDEgNDU0bDIgNDMtMTMuNSAxLjUtNS00NC41em0tMjMuNSAwbDQgNDUuNUw3MDcgNTAxbC02LjUtNDcuNWgxN3pNNDg3IDQ1NS41aDE1djQ4aC0xNXptLTk2LTEuNWwyIDQzLTEzLjUgMS41LTUtNDQuNXptLTIzLjUgMGw0IDQ1LjUtMTQuNSAyLTYtNDcuNXpNMzY0IDYwM2MtMjAuNSA2NS41LTE0OCA1OS41LTE1OS41IDU3LjUtOS0xNjEuNS0yMy0xOTYuNS0zNC41LTI3NS41bDU0LjUtMjIuNWMxIDcxLjUgOSAxODUgOSAxODVzMTA4LjUtMTUuNSAxMzIgNDdjLjUgMyAwIDYtMS41IDguNW0yMC41IDM1LjVsLTIzLjUtMTI0aDM1LjVsMTMgMTIzem00NC41LThsLTI3LTIzNSAzMy41LTEuNSAyMSAyMzZINDI5em0zNC0xNzVoMTcuNXY0OEg0Njd6bTQxIDE5MGgtMjYuNWwtOS41LTEyNmgzNnptMjEwLTQzQzY5My41IDY2OCA1NjYgNjYyIDU1NC41IDY2MGMtOS0xNjEtMjMtMTk2LTM0LjUtMjc1bDU0LjUtMjIuNWMxIDcxLjUgOSAxODUgOSAxODVTNjkyIDUzMiA3MTUuNSA1OTRjLjUgMyAwIDYtMS41IDguNW0xOS41IDM2bC0yMy0xMjRINzQ2bDEzIDEyM3ptNDUuNS04bC0yNy41LTIzNUw3ODUgMzk0bDIxIDIzNmgtMjd6bTMzLjUtMTc1SDgzMHY0OGgtMTN6bTQxIDE5MEg4MjdsLTkuNS0xMjZoMzZ6In19XX0sbmFtZToiYmlsaWJpbGkiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sODM3OTg6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7ImZpbGwtcnVsZSI6ImV2ZW5vZGQiLHZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0yMzUuNTIgNjE2LjU3YzE2LjczLS43NCAzMi4yOC0xLjc3IDQ3LjY5LTIuMDcgNjYuOC0xLjE4IDEzMi40IDYuODEgMTk0Ljc2IDMyIDMwLjUgMTIuMyA1OS45OCAyNi41MiA4Ni41IDQ2LjUxIDIxLjc2IDE2LjQ1IDI2LjUgMzYuOSAxNi41OCA2Ny4xMS02LjIyIDE4LjY3LTE4LjY2IDMyLjc0LTM0LjM2IDQ1LjA0LTM3LjAzIDI4Ljg4LTc1LjgzIDU0Ljk2LTEyMC40MSA2OS42MkE1OTUuODcgNTk1Ljg3IDAgMDEzMzAgODk4LjA0Yy00Mi44IDYuNjctODYuMiA5LjYzLTEyOS40NSAxMy42My04Ljg4Ljg5LTE3LjkyLS4zLTI2LjgtLjMtNC42IDAtNS43OC0yLjM3LTUuOTMtNi4zNy0xLjE4LTE5LjctMi4wNy0zOS41NS0zLjg1LTU5LjI1YTI2MDkuNDcgMjYwOS40NyAwIDAwLTcuNy03Ni4zYy00LTM1LjQtOC40NC03MC42Ni0xMi44OS0xMDUuOTItNC41OS0zNy4xOC05LjMzLTc0LjIxLTEzLjc3LTExMS40LTQuNDQtMzYuMy04LjQ0LTcyLjczLTEzLjE4LTEwOS4wMy01LjM0LTQxLjQ4LTExLjI2LTgyLjk2LTE2Ljg5LTEyNC40NC02LjY2LTQ5LjAzLTE1Ljg1LTk3LjYyLTI4LjQzLTE0NS40Ny0uNi0yLjA3IDEuMTgtNi42NyAyLjk2LTcuMjYgNDEuOTEtMTYuODkgODMuOTgtMzMuMzMgMTI1Ljg5LTUwLjA3IDEzLjkyLTUuNjMgMTUuMS03LjI2IDE1LjI1IDEwLjM3LjE1IDc1LjEuNDUgMTUwLjIxIDEuNjMgMjI1LjMyLjYgMzkuMTEgMi4wOCA3OC4yMiA0Ljc0IDExNy4xOCAzLjI2IDQ3LjU1IDguMyA5NS4xIDEyLjYgMTQyLjY2IDAgMi4wNy44OCA0IDEuMzMgNS4xOW04My42OCAyMTguMDZhNzQzNzIuMyA3NDM3Mi4zIDAgMDAxMTQuNzgtODYuOTZjLTQuNzQtNi44Mi0xMDkuMy00Ny44NS0xMzMuODktNTMuMzMgNi4yMiA0Ni4zNyAxMi41OSA5Mi41OSAxOS4xIDE0MC4yOW00MzQuMTMtMTQuMzljLTE5Ljk0LTIwMi4xNC0zNi43OC00MDYuNS03NS4zMi02MDkuNjcgMTIuNTUtMS40OCAyNS4xLTMuMjUgMzcuOC00LjMgMTQuNjMtMS4zMiAyOS40LTEuOTIgNDQuMDEtMy4xIDEyLjI2LTEuMDQgMTYuODQgMi4yMiAxNy41OCAxNC4yMiAyLjIxIDMyLjEzIDQuMTMgNjQuMjYgNi4zNSA5Ni40IDIuOTUgNDMuMzkgNi4wNSA4Ni45MiA5LjE1IDEzMC4zMSAyLjIyIDMxLjI1IDQuMTQgNjIuNjQgNi42NSA5My44OSAyLjggMzQuMiA1LjkgNjguMjcgOSAxMDIuNDcgMi4yMiAyNS4xOCA0LjMgNTAuNSA2LjggNzUuNjggMi42NiAyNy4yNCA1LjYxIDU0LjQ5IDguNDIgODEuNzQuNzQgNy44NSAxLjYyIDE1LjcgMi4yMSAyMy41NC4zIDQuMy0yLjA2IDQuODktNi4wNSA0LjQ1LTIxLjctMi4yMy00My40Mi0zLjg1LTY2LjYtNS42M001NzIgNTI3LjE1YzE3LjYyLTIuNTEgMzQuNjQtNS4zMiA1MS42Ni03LjI1IDEyLjI5LTEuNDggMjQuNzItMS42MyAzNy4wMS0yLjgxIDYuNjYtLjYgMTAuOTUgMS43NyAxMS45OSA4LjI5IDIuODEgMTcuMzIgNS43NyAzNC43OSA3Ljg1IDUyLjI2IDMuNCAyOS4wMiA2LjA3IDU4LjE4IDkuMTcgODcuMiAyLjY3IDI1LjQ2IDUuMzMgNTAuNzggOC4zIDc2LjI0IDMuMjUgMjcuMjQgNi44IDU0LjMzIDEwLjIgODEuNDIgMS4wNCA4IDEuNzggMTYuMTQgMi44MiAyNC44OGE5NTA3LjEgOTUwNy4xIDAgMDAtNzQuNzYgOS42MkM2MTQuOTMgNzQ3LjE1IDU5My42MSA2MzguMTkgNTcyIDUyNy4xNW0zODIgMzM4LjgzYy0yNC4wOCAwLTQ3LjI4LjE0LTcwLjQ3LS4zLTEuOTMgMC01LjM1LTMuNC01LjUtNS40OC0zLjU3LTM3LjA1LTYuNjktNzMuOTYtOS45Ni0xMTFsLTkuMzctMTAzLjE2Yy0zLjI3LTM1LjQyLTYuMzktNzAuODQtOS42Ni0xMDYuMjYtLjE1LTIuMDctLjYtNC0xLjA0LTcuMTEgOC42Mi0xLjA0IDE2LjgtMi42NyAyNS4xMi0yLjY3IDIyLjQ1IDAgNDQuOS42IDY3LjUgMS4xOSA1LjguMTQgOC4zMiA0IDguNjIgOS4zMy43NSAxMS4xMiAxLjc5IDIyLjA4IDEuNzkgMzMuMi4xNCA1Mi4xNy0uMTUgMTA0LjQ4LjMgMTU2LjY1LjQ0IDQxLjY1IDEuNzggODMuNDQgMi42NyAxMjUuMDh6TTYyMi4wNyA0ODBjLTUuMy00Mi41Ny0xMC42Mi04NC4xLTE2LjA3LTEyNy40IDEzLjg2LS4xNiAyNy43MS0uNiA0MS40Mi0uNiA0LjU3IDAgNi42NCAyLjUxIDcuMDggNy41NCAzLjY5IDM4LjcyIDcuNTIgNzcuNDUgMTEuNSAxMTcuNjUtMTQuMy43NC0yOS4wNCAxLjc4LTQzLjkzIDIuODFNOTAxIDM2NC4wN2MxMS45NCAwIDI0LjYyLS4xNSAzNy40NSAwIDYuNDIuMTQgOS41NSAyLjY3IDkuNTUgMTAuMjQtLjQ1IDM2LjIyLS4xNSA3Mi40NS0uMTUgMTA4LjUzVjQ5MWMtMTUuMzctLjc0LTMwLjE0LTEuNDktNDYuNy0yLjIzLS4xNS00MS4xMi0uMTUtODIuNC0uMTUtMTI0LjdNNTY4LjU3IDQ4OWMtNy40My00MS4yLTE1LTgyLjEtMjIuNTctMTI0LjAyIDEzLjUxLTIuMDcgMjcuMDItNC4yOSA0MC4zOS01LjkgNS45NC0uNzUgNC45IDQuNDIgNS4yIDcuNjcgMS42MyAxMy44OCAyLjgxIDI3LjYgNC4zIDQxLjQ5IDIuMzcgMjEuNyA0Ljc1IDQzLjQgNi45OCA2NC45Ni4zIDIuOCAwIDUuNzYgMCA4Ljg2LTExLjI5IDIuMzYtMjIuNTcgNC41OC0zNC4zIDYuOTRNODM5IDM2NS4xNmMxMi43MiAwIDI1LjQzLjE1IDM4LS4xNSA1LjY5LS4xNSA3Ljc4IDEuMDQgNy42MyA3LjU2LS40NCAxNy4zNi4xNSAzNC43LjMgNTIuMi4xNSAyMS41MSAwIDQzLjE3IDAgNjQuNTItMTIuODYgMS4zNC0yNC4wOSAyLjM3LTM2LjIgMy43MS0zLjE1LTQxLjk3LTYuNDQtODMuOC05LjczLTEyNy44NCJ9fV19LG5hbWU6ImJpbGliaWxpIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sMzcyMzc6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg1NiAzNzZINjQ4VjE2OGMwLTguOC03LjItMTYtMTYtMTZIMTY4Yy04LjggMC0xNiA3LjItMTYgMTZ2NDY0YzAgOC44IDcuMiAxNiAxNiAxNmgyMDh2MjA4YzAgOC44IDcuMiAxNiAxNiAxNmg0NjRjOC44IDAgMTYtNy4yIDE2LTE2VjM5MmMwLTguOC03LjItMTYtMTYtMTZ6bS00ODAgMTZ2MTg4SDIyMFYyMjBoMzYwdjE1NkgzOTJjLTguOCAwLTE2IDcuMi0xNiAxNnptMjA0IDUydjEzNkg0NDRWNDQ0aDEzNnptMjI0IDM2MEg0NDRWNjQ4aDE4OGM4LjggMCAxNi03LjIgMTYtMTZWNDQ0aDE1NnYzNjB6In19XX0sbmFtZToiYmxvY2siLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw5ODk1NjpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNjk3LjggNDgxLjRjMzMuNi0zNSA1NC4yLTgyLjMgNTQuMi0xMzQuM3YtMTAuMkM3NTIgMjI5LjMgNjYzLjkgMTQyIDU1NS4zIDE0MkgyNTkuNGMtMTUuMSAwLTI3LjQgMTIuMy0yNy40IDI3LjR2Njc5LjFjMCAxNi4zIDEzLjIgMjkuNSAyOS41IDI5LjVoMzE4LjdjMTE3IDAgMjExLjgtOTQuMiAyMTEuOC0yMTAuNXYtMTFjMC03My0zNy40LTEzNy4zLTk0LjItMTc1LjF6TTMyOCAyMzhoMjI0LjdjNTcuMSAwIDEwMy4zIDQ0LjQgMTAzLjMgOTkuM3Y5LjVjMCA1NC44LTQ2LjMgOTkuMy0xMDMuMyA5OS4zSDMyOFYyMzh6bTM2Ni42IDQyOS40YzAgNjIuOS01MS43IDExMy45LTExNS41IDExMy45SDMyOFY1NDIuN2gyNTEuMWM2My44IDAgMTE1LjUgNTEgMTE1LjUgMTEzLjl2MTAuOHoifX1dfSxuYW1lOiJib2xkIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNTg1OTg6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTgzMiA2NEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6TTY2OCAzNDUuOUw2MjEuNSAzMTIgNTcyIDM0Ny40VjEyNGg5NnYyMjEuOXoifX1dfSxuYW1lOiJib29rIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDI4ODM4OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04MzIgNjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tMjYwIDcyaDk2djIwOS45TDYyMS41IDMxMiA1NzIgMzQ3LjRWMTM2em0yMjAgNzUySDIzMlYxMzZoMjgwdjI5Ni45YzAgMy4zIDEgNi42IDMgOS4zYTE1LjkgMTUuOSAwIDAwMjIuMyAzLjdsODMuOC01OS45IDgxLjQgNTkuNGMyLjcgMiA2IDMuMSA5LjQgMy4xIDguOCAwIDE2LTcuMiAxNi0xNlYxMzZoNjR2NzUyeiJ9fV19LG5hbWU6ImJvb2siLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSwxMjczOTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjpmdW5jdGlvbihhLG4pe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04MzIgNjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tMjYwIDcyaDk2djIwOS45TDYyMS41IDMxMiA1NzIgMzQ3LjRWMTM2ek0yMzIgODg4VjEzNmgyODB2Mjk2LjljMCAzLjMgMSA2LjYgMyA5LjNhMTUuOSAxNS45IDAgMDAyMi4zIDMuN2w4My44LTU5LjkgODEuNCA1OS40YzIuNyAyIDYgMy4xIDkuNCAzLjEgOC44IDAgMTYtNy4yIDE2LTE2VjEzNmg2NHY3NTJIMjMyeiIsZmlsbDphfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02NjggMzQ1LjlWMTM2aC05NnYyMTEuNGw0OS41LTM1LjR6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTcyNy45IDEzNnYyOTYuNWMwIDguOC03LjIgMTYtMTYgMTYtMy40IDAtNi43LTEuMS05LjQtMy4xTDYyMS4xIDM4NmwtODMuOCA1OS45YTE1LjkgMTUuOSAwIDAxLTIyLjMtMy43Yy0yLTIuNy0zLTYtMy05LjNWMTM2SDIzMnY3NTJoNTU5LjlWMTM2aC02NHoiLGZpbGw6bn19XX19LG5hbWU6ImJvb2siLHRoZW1lOiJ0d290b25lIn07dC5kZWZhdWx0PWV9LDczNjMyOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NzIgODA4SDE1MmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg3MjBjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS03MjAtOTRoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em0wLTQ5OGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6bTAgMzMyaDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptMC0xNjZoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em0xNjYgMTY2aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptMC0zMzJoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em0zMzIgMGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6bTAgMzMyaDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptMjIyLTcyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptLTM4OCA3Mmg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6bTM4OC00MDRoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0tMzg4IDcyaDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptMzg4IDQyNmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS0zODggNzJoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em0zODgtNDA0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptLTM4OCA3Mmg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6In19XX0sbmFtZToiYm9yZGVyLWJvdHRvbSIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDMzNzQ0OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01NDAgMTQ0aC01NmMtNC40IDAtOCAzLjYtOCA4djcyMGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04VjE1MmMwLTQuNC0zLjYtOC04LTh6bS0xNjYgMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTQ5OCAwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptLTY2NCAwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptNDk4IDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04ek0yMDggMzEwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptNjY0IDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wIDMzMmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS02NjQgMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgMTY2aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC0zMzJoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em02NjQgMzMyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC0zMzJoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04ek0zNzQgODA4aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC0zMzJoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0zMzIgMzMyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC0zMzJoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04eiJ9fV19LG5hbWU6ImJvcmRlci1ob3Jpem9udGFsIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sOTYwMTM6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg3MiA0NzZINTQ4VjE0NGgtNzJ2MzMySDE1MmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGgzMjR2MzMyaDcyVjU0OGgzMjRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtMTY2aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCA0OThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wLTY2NGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgNDk4aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNNjUwIDIxNmg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6bTU2IDU5MmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS0zMzIgMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS01Ni01OTJoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em0tMTY2IDBoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em01NiA1OTJoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0tNTYtNDI2aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptNTYgMjYwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHoifX1dfSxuYW1lOiJib3JkZXItaW5uZXIiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw1OTUyOTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMjA4IDE0NGgtNTZjLTQuNCAwLTggMy42LTggOHY3MjBjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFYxNTJjMC00LjQtMy42LTgtOC04em0xNjYgMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTQ5OCAwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptLTMzMiAwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMTY2IDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04ek01NDAgMzEwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMzMyIDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wIDMzMmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS0zMzIgMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgMTY2aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC0zMzJoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0zMzIgMzMyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC0zMzJoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04ek0zNzQgODA4aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC0zMzJoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0zMzIgMzMyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC0zMzJoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04eiJ9fV19LG5hbWU6ImJvcmRlci1sZWZ0Iix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNjYxNzU6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6TTQ4NCAzNjZoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4ek0zMDIgNTQ4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptMzY0IDBoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em0tMTgyIDBoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em0wIDE4Mmg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6In19XX0sbmFtZToiYm9yZGVyLW91dGVyIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sMjgxNTY6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6In19XX0sbmFtZToiYm9yZGVyIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sMTUyMTE6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg3MiAxNDRoLTU2Yy00LjQgMC04IDMuNi04IDh2NzIwYzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LThWMTUyYzAtNC40LTMuNi04LTgtOHptLTE2NiAwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptLTQ5OCAwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMzMyIDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0tMTY2IDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0xNjYgMTY2aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptLTMzMiAwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCAzMzJoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0zMzIgMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgMTY2aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC0zMzJoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04ek0yMDggODA4aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC0zMzJoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em00OTggMzMyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC0zMzJoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04ek0zNzQgODA4aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC0zMzJoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04eiJ9fV19LG5hbWU6ImJvcmRlci1yaWdodCIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDMzODI0OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NzIgMTQ0SDE1MmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg3MjBjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6TTIwOCAzMTBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wIDQ5OGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtMzMyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCAxNjZoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0xNjYtMTY2aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCAzMzJoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0zMzIgMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtMzMyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMTY2IDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0tMzMyIDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0zMzIgMzMyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptLTMzMiAwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMzMyLTQ5OGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS0zMzIgMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTMzMiAzMzJoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0tMzMyIDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04eiJ9fV19LG5hbWU6ImJvcmRlci10b3AiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw1MDg0NDpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODcyIDQ3NkgxNTJjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNzIwYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wLTE2NmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgNDk4aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC02NjRoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wIDQ5OGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6TTY1MCAyMTZoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em01NiA1OTJoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0tMzMyIDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0tNTYtNTkyaDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptLTE2NiAwaDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptMzMyIDBoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4ek0yMDggODA4aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMzMyIDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04ek0xNTIgMzgyaDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptMzMyIDBoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4ek0yMDggNjQyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMzMyIDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04eiJ9fV19LG5hbWU6ImJvcmRlci12ZXJ0aWNsZSIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDYxNTcwOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoiZGVmcyIsYXR0cnM6e30sY2hpbGRyZW46W3t0YWc6InN0eWxlIixhdHRyczp7fX1dfSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTExNyAzNjhoMjMxdjY0SDExN3ptNTU5IDBoMjQxdjY0SDY3NnptLTI2NCAwaDIwMHY2NEg0MTJ6bTAgMjI0aDIwMHY2NEg0MTJ6bTI2NCAwaDI0MXY2NEg2NzZ6bS01NTkgMGgyMzF2NjRIMTE3em0yOTUtMTYwVjE3OWgtNjR2NjY2aDY0VjU5MnptMjY0LTY0VjE3OWgtNjR2NjY2aDY0VjQzMnoifX1dfSxuYW1lOiJib3JkZXJsZXNzLXRhYmxlIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sODAyMjc6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTk1MiAyMjRoLTUyYy00LjQgMC04IDMuNi04IDh2MjQ4aC05MlYzMDRjMC00LjQtMy42LTgtOC04SDQ0OHY0MzJoMzQ0YzQuNCAwIDgtMy42IDgtOFY1NDhoOTJ2MjQ0YzAgNC40IDMuNiA4IDggOGg1MmM0LjQgMCA4LTMuNiA4LThWMjMyYzAtNC40LTMuNi04LTgtOHptLTcyOCA4MHYxNzZoLTkyVjIzMmMwLTQuNC0zLjYtOC04LThINzJjLTQuNCAwLTggMy42LTggOHY1NjBjMCA0LjQgMy42IDggOCA4aDUyYzQuNCAwIDgtMy42IDgtOFY1NDhoOTJ2MTcyYzAgNC40IDMuNiA4IDggOGgxNTJWMjk2SDIzMmMtNC40IDAtOCAzLjYtOCA4eiJ9fV19LG5hbWU6ImJveC1wbG90Iix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDY4NzMxOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05NTIgMjI0aC01MmMtNC40IDAtOCAzLjYtOCA4djI0OGgtOTJWMzA0YzAtNC40LTMuNi04LTgtOEgyMzJjLTQuNCAwLTggMy42LTggOHYxNzZoLTkyVjIzMmMwLTQuNC0zLjYtOC04LThINzJjLTQuNCAwLTggMy42LTggOHY1NjBjMCA0LjQgMy42IDggOCA4aDUyYzQuNCAwIDgtMy42IDgtOFY1NDhoOTJ2MTcyYzAgNC40IDMuNiA4IDggOGg1NjBjNC40IDAgOC0zLjYgOC04VjU0OGg5MnYyNDRjMCA0LjQgMy42IDggOCA4aDUyYzQuNCAwIDgtMy42IDgtOFYyMzJjMC00LjQtMy42LTgtOC04ek0yOTYgMzY4aDg4djI4OGgtODhWMzY4em00MzIgMjg4SDQ0OFYzNjhoMjgwdjI4OHoifX1dfSxuYW1lOiJib3gtcGxvdCIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDUzNzUwOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOmZ1bmN0aW9uKGEsbil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTI5NiAzNjhoODh2Mjg4aC04OHptMTUyIDBoMjgwdjI4OEg0NDh6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTk1MiAyMjRoLTUyYy00LjQgMC04IDMuNi04IDh2MjQ4aC05MlYzMDRjMC00LjQtMy42LTgtOC04SDIzMmMtNC40IDAtOCAzLjYtOCA4djE3NmgtOTJWMjMyYzAtNC40LTMuNi04LTgtOEg3MmMtNC40IDAtOCAzLjYtOCA4djU2MGMwIDQuNCAzLjYgOCA4IDhoNTJjNC40IDAgOC0zLjYgOC04VjU0OGg5MnYxNzJjMCA0LjQgMy42IDggOCA4aDU2MGM0LjQgMCA4LTMuNiA4LThWNTQ4aDkydjI0NGMwIDQuNCAzLjYgOCA4IDhoNTJjNC40IDAgOC0zLjYgOC04VjIzMmMwLTQuNC0zLjYtOC04LTh6TTM4NCA2NTZoLTg4VjM2OGg4OHYyODh6bTM0NCAwSDQ0OFYzNjhoMjgwdjI4OHoiLGZpbGw6YX19XX19LG5hbWU6ImJveC1wbG90Iix0aGVtZToidHdvdG9uZSJ9O3QuZGVmYXVsdD1lfSw2MjM1NzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNzQwIDE2MWMtNjEuOCAwLTExMiA1MC4yLTExMiAxMTIgMCA1MC4xIDMzLjEgOTIuNiA3OC41IDEwNi45djk1LjlMMzIwIDYwMi40VjMxOC4xYzQ0LjItMTUgNzYtNTYuOSA3Ni0xMDYuMSAwLTYxLjgtNTAuMi0xMTItMTEyLTExMnMtMTEyIDUwLjItMTEyIDExMmMwIDQ5LjIgMzEuOCA5MSA3NiAxMDYuMVY3MDZjLTQ0LjIgMTUtNzYgNTYuOS03NiAxMDYuMSAwIDYxLjggNTAuMiAxMTIgMTEyIDExMnMxMTItNTAuMiAxMTItMTEyYzAtNDkuMi0zMS44LTkxLTc2LTEwNi4xdi0yNy44bDQyMy41LTEzOC43YTUwLjUyIDUwLjUyIDAgMDAzNC45LTQ4LjJWMzc4LjJjNDIuOS0xNS44IDczLjYtNTcgNzMuNi0xMDUuMiAwLTYxLjgtNTAuMi0xMTItMTEyLTExMnptLTUwNCA1MWE0OC4wMSA0OC4wMSAwIDAxOTYgMCA0OC4wMSA0OC4wMSAwIDAxLTk2IDB6bTk2IDYwMGE0OC4wMSA0OC4wMSAwIDAxLTk2IDAgNDguMDEgNDguMDEgMCAwMTk2IDB6bTQwOC00OTFhNDguMDEgNDguMDEgMCAwMTAtOTYgNDguMDEgNDguMDEgMCAwMTAgOTZ6In19XX0sbmFtZToiYnJhbmNoZXMiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw5NzcwMzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMzA0IDI4MGg0MTZjNC40IDAgOC0zLjYgOC04IDAtNDAtOC44LTc2LjctMjUuOS0xMDguMWExODQuMzEgMTg0LjMxIDAgMDAtNzQtNzRDNTk2LjcgNzIuOCA1NjAgNjQgNTIwIDY0aC0xNmMtNDAgMC03Ni43IDguOC0xMDguMSAyNS45YTE4NC4zMSAxODQuMzEgMCAwMC03NCA3NEMzMDQuOCAxOTUuMyAyOTYgMjMyIDI5NiAyNzJjMCA0LjQgMy42IDggOCA4eiJ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTk0MCA1MTJINzkyVjQxMmM3Ni44IDAgMTM5LTYyLjIgMTM5LTEzOSAwLTQuNC0zLjYtOC04LThoLTYwYy00LjQgMC04IDMuNi04IDhhNjMgNjMgMCAwMS02MyA2M0gyMzJhNjMgNjMgMCAwMS02My02M2MwLTQuNC0zLjYtOC04LThoLTYwYy00LjQgMC04IDMuNi04IDggMCA3Ni44IDYyLjIgMTM5IDEzOSAxMzl2MTAwSDg0Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDE0OHY5NmMwIDYuNS4yIDEzIC43IDE5LjNDMTY0LjEgNzI4LjYgMTE2IDc5Ni43IDExNiA4NzZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOCAwLTQ0LjIgMjMuOS04Mi45IDU5LjYtMTAzLjdhMjczIDI3MyAwIDAwMjIuNyA0OWMyNC4zIDQxLjUgNTkgNzYuMiAxMDAuNSAxMDAuNSAyOC45IDE2LjkgNjEgMjguOCA5NS4zIDM0LjUgNC40IDAgOC0zLjYgOC04VjQ4NGMwLTQuNCAzLjYtOCA4LThoNjBjNC40IDAgOCAzLjYgOCA4djQ2NC4yYzAgNC40IDMuNiA4IDggOCAzNC4zLTUuNyA2Ni40LTE3LjYgOTUuMy0zNC41YTI4MS4zOCAyODEuMzggMCAwMDEyMy4yLTE0OS41QTEyMC40IDEyMC40IDAgMDE4MzYgODc2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTggMC03OS4zLTQ4LjEtMTQ3LjQtMTE2LjctMTc2LjcuNC02LjQuNy0xMi44LjctMTkuM3YtOTZoMTQ4YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04eiJ9fV19LG5hbWU6ImJ1ZyIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSwxNjk1OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0zMDQgMjgwaDU2YzQuNCAwIDgtMy42IDgtOCAwLTI4LjMgNS45LTUzLjIgMTcuMS03My41IDEwLjYtMTkuNCAyNi0zNC44IDQ1LjQtNDUuNEM0NTAuOSAxNDIgNDc1LjcgMTM2IDUwNCAxMzZoMTZjMjguMyAwIDUzLjIgNS45IDczLjUgMTcuMSAxOS40IDEwLjYgMzQuOCAyNiA0NS40IDQ1LjRDNjUwIDIxOC45IDY1NiAyNDMuNyA2NTYgMjcyYzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTggMC00MC04LjgtNzYuNy0yNS45LTEwOC4xYTE4NC4zMSAxODQuMzEgMCAwMC03NC03NEM1OTYuNyA3Mi44IDU2MCA2NCA1MjAgNjRoLTE2Yy00MCAwLTc2LjcgOC44LTEwOC4xIDI1LjlhMTg0LjMxIDE4NC4zMSAwIDAwLTc0IDc0QzMwNC44IDE5NS4zIDI5NiAyMzIgMjk2IDI3MmMwIDQuNCAzLjYgOCA4IDh6In19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNOTQwIDUxMkg3OTJWNDEyYzc2LjggMCAxMzktNjIuMiAxMzktMTM5IDAtNC40LTMuNi04LTgtOGgtNjBjLTQuNCAwLTggMy42LTggOGE2MyA2MyAwIDAxLTYzIDYzSDIzMmE2MyA2MyAwIDAxLTYzLTYzYzAtNC40LTMuNi04LTgtOGgtNjBjLTQuNCAwLTggMy42LTggOCAwIDc2LjggNjIuMiAxMzkgMTM5IDEzOXYxMDBIODRjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoMTQ4djk2YzAgNi41LjIgMTMgLjcgMTkuM0MxNjQuMSA3MjguNiAxMTYgNzk2LjcgMTE2IDg3NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04IDAtNDQuMiAyMy45LTgyLjkgNTkuNi0xMDMuN2EyNzMgMjczIDAgMDAyMi43IDQ5YzI0LjMgNDEuNSA1OSA3Ni4yIDEwMC41IDEwMC41UzQ2MC41IDk2MCA1MTIgOTYwczk5LjgtMTMuOSAxNDEuMy0zOC4yYTI4MS4zOCAyODEuMzggMCAwMDEyMy4yLTE0OS41QTEyMCAxMjAgMCAwMTgzNiA4NzZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOCAwLTc5LjMtNDguMS0xNDcuNC0xMTYuNy0xNzYuNy40LTYuNC43LTEyLjguNy0xOS4zdi05NmgxNDhjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6TTcxNiA2ODBjMCAzNi44LTkuNyA3Mi0yNy44IDEwMi45LTE3LjcgMzAuMy00MyA1NS42LTczLjMgNzMuM0M1ODQgODc0LjMgNTQ4LjggODg0IDUxMiA4ODRzLTcyLTkuNy0xMDIuOS0yNy44Yy0zMC4zLTE3LjctNTUuNi00My03My4zLTczLjNBMjAyLjc1IDIwMi43NSAwIDAxMzA4IDY4MFY0MTJoNDA4djI2OHoifX1dfSxuYW1lOiJidWciLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw5MjQxOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOmZ1bmN0aW9uKGEsbil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTMwOCA0MTJ2MjY4YzAgMzYuNzggOS42OCA3MS45NiAyNy44IDEwMi45YTIwNS4zOSAyMDUuMzkgMCAwMDczLjMgNzMuM0EyMDIuNjggMjAyLjY4IDAgMDA1MTIgODg0YzM2Ljc4IDAgNzEuOTYtOS42OCAxMDIuOS0yNy44YTIwNS4zOSAyMDUuMzkgMCAwMDczLjMtNzMuM0EyMDIuNjggMjAyLjY4IDAgMDA3MTYgNjgwVjQxMkgzMDh6bTQ4NCAxNzJ2OTZjMCA2LjUtLjIyIDEyLjk1LS42NiAxOS4zNUM4NTkuOTQgNzI4LjY0IDkwOCA3OTYuNyA5MDggODc2YTggOCAwIDAxLTggOGgtNTZhOCA4IDAgMDEtOC04YzAtNDQuMjQtMjMuOTQtODIuODktNTkuNTctMTAzLjdhMjc4LjYzIDI3OC42MyAwIDAxLTIyLjY2IDQ5LjAyIDI4MS4zOSAyODEuMzkgMCAwMS0xMDAuNDUgMTAwLjQ1QzYxMS44NCA5NDYuMDcgNTYzLjU1IDk2MCA1MTIgOTYwcy05OS44NC0xMy45My0xNDEuMzItMzguMjNhMjgxLjM5IDI4MS4zOSAwIDAxLTEwMC40NS0xMDAuNDUgMjc4LjYzIDI3OC42MyAwIDAxLTIyLjY2LTQ5LjAyQTExOS45NSAxMTkuOTUgMCAwMDE4OCA4NzZhOCA4IDAgMDEtOCA4aC01NmE4IDggMCAwMS04LThjMC03OS4zIDQ4LjA3LTE0Ny4zNiAxMTYuNjYtMTc2LjY1QTI4NC4xMiAyODQuMTIgMCAwMTIzMiA2ODB2LTk2SDg0YTggOCAwIDAxLTgtOHYtNTZhOCA4IDAgMDE4LThoMTQ4VjQxMmMtNzYuNzcgMC0xMzktNjIuMjMtMTM5LTEzOWE4IDggMCAwMTgtOGg2MGE4IDggMCAwMTggOCA2MyA2MyAwIDAwNjMgNjNoNTYwYTYzIDYzIDAgMDA2My02MyA4IDggMCAwMTgtOGg2MGE4IDggMCAwMTggOGMwIDc2Ljc3LTYyLjIzIDEzOS0xMzkgMTM5djEwMGgxNDhhOCA4IDAgMDE4IDh2NTZhOCA4IDAgMDEtOCA4SDc5MnpNMzY4IDI3MmE4IDggMCAwMS04IDhoLTU2YTggOCAwIDAxLTgtOGMwLTQwLjA0IDguNzgtNzYuNzUgMjUuOS0xMDguMDdhMTg0LjU3IDE4NC41NyAwIDAxNzQuMDMtNzQuMDNDNDI3LjI1IDcyLjc4IDQ2My45NiA2NCA1MDQgNjRoMTZjNDAuMDQgMCA3Ni43NSA4Ljc4IDEwOC4wNyAyNS45YTE4NC41NyAxODQuNTcgMCAwMTc0LjAzIDc0LjAzQzcxOS4yMiAxOTUuMjUgNzI4IDIzMS45NiA3MjggMjcyYTggOCAwIDAxLTggOGgtNTZhOCA4IDAgMDEtOC04YzAtMjguMzMtNS45NC01My4xNS0xNy4wOC03My41M2ExMTIuNTYgMTEyLjU2IDAgMDAtNDUuMzktNDUuNEM1NzMuMTUgMTQxLjk1IDU0OC4zMyAxMzYgNTIwIDEzNmgtMTZjLTI4LjMzIDAtNTMuMTUgNS45NC03My41MyAxNy4wOGExMTIuNTYgMTEyLjU2IDAgMDAtNDUuNCA0NS4zOUMzNzMuOTUgMjE4Ljg1IDM2OCAyNDMuNjcgMzY4IDI3MnoiLGZpbGw6YX19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMzA4IDQxMnYyNjhjMCAzNi43OCA5LjY4IDcxLjk2IDI3LjggMTAyLjlhMjA1LjM5IDIwNS4zOSAwIDAwNzMuMyA3My4zQTIwMi42OCAyMDIuNjggMCAwMDUxMiA4ODRjMzYuNzggMCA3MS45Ni05LjY4IDEwMi45LTI3LjhhMjA1LjM5IDIwNS4zOSAwIDAwNzMuMy03My4zQTIwMi42OCAyMDIuNjggMCAwMDcxNiA2ODBWNDEySDMwOHoiLGZpbGw6bn19XX19LG5hbWU6ImJ1ZyIsdGhlbWU6InR3b3RvbmUifTt0LmRlZmF1bHQ9ZX0sNDMyODI6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkxNiAyMTBIMzc2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYyMzZIMTA4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYyNzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNTQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjU0NmgyMzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjQyYzAtMTcuNy0xNC4zLTMyLTMyLTMyek02MTIgNzQ2SDQxMlY1NDZoMjAwdjIwMHptMjY4LTI2OEg2ODBWMjc4aDIwMHYyMDB6In19XX0sbmFtZToiYnVpbGQiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sMzUyMzA6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkxNiAyMTBIMzc2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYyMzZIMTA4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYyNzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNTQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjU0NmgyMzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjQyYzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNTA0IDY4aDIwMHYyMDBINDEyVjI3OHptLTY4IDQ2OEgxNDRWNTQ2aDIwMHYyMDB6bTI2OCAwSDQxMlY1NDZoMjAwdjIwMHptMjY4LTI2OEg2ODBWMjc4aDIwMHYyMDB6In19XX0sbmFtZToiYnVpbGQiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw2MDU2OTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjpmdW5jdGlvbihhLG4pe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0xNDQgNTQ2aDIwMHYyMDBIMTQ0em0yNjgtMjY4aDIwMHYyMDBINDEyeiIsZmlsbDpufX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MTYgMjEwSDM3NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MjM2SDEwOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MjcyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDU0MGMxNy43IDAgMzItMTQuMyAzMi0zMlY1NDZoMjM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjI0MmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMzQ0IDc0NkgxNDRWNTQ2aDIwMHYyMDB6bTI2OCAwSDQxMlY1NDZoMjAwdjIwMHptMC0yNjhINDEyVjI3OGgyMDB2MjAwem0yNjggMEg2ODBWMjc4aDIwMHYyMDB6IixmaWxsOmF9fV19fSxuYW1lOiJidWlsZCIsdGhlbWU6InR3b3RvbmUifTt0LmRlZmF1bHQ9ZX0sMTcxMjI6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTM0OCA2NzYuMUMyNTAgNjE5LjQgMTg0IDUxMy40IDE4NCAzOTJjMC0xODEuMSAxNDYuOS0zMjggMzI4LTMyOHMzMjggMTQ2LjkgMzI4IDMyOGMwIDEyMS40LTY2IDIyNy40LTE2NCAyODQuMVY3OTJjMCAxNy43LTE0LjMgMzItMzIgMzJIMzgwYy0xNy43IDAtMzItMTQuMy0zMi0zMlY2NzYuMXpNMzkyIDg4OGgyNDBjNC40IDAgOCAzLjYgOCA4djMyYzAgMTcuNy0xNC4zIDMyLTMyIDMySDQxNmMtMTcuNyAwLTMyLTE0LjMtMzItMzJ2LTMyYzAtNC40IDMuNi04IDgtOHoifX1dfSxuYW1lOiJidWxiIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDQ4ODM4OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02MzIgODg4SDM5MmMtNC40IDAtOCAzLjYtOCA4djMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDE5MmMxNy43IDAgMzItMTQuMyAzMi0zMnYtMzJjMC00LjQtMy42LTgtOC04ek01MTIgNjRjLTE4MS4xIDAtMzI4IDE0Ni45LTMyOCAzMjggMCAxMjEuNCA2NiAyMjcuNCAxNjQgMjg0LjFWNzkyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDI2NGMxNy43IDAgMzItMTQuMyAzMi0zMlY2NzYuMWM5OC01Ni43IDE2NC0xNjIuNyAxNjQtMjg0LjEgMC0xODEuMS0xNDYuOS0zMjgtMzI4LTMyOHptMTI3LjkgNTQ5LjhMNjA0IDYzNC42Vjc1Mkg0MjBWNjM0LjZsLTM1LjktMjAuOEMzMDUuNCA1NjguMyAyNTYgNDg0LjUgMjU2IDM5MmMwLTE0MS40IDExNC42LTI1NiAyNTYtMjU2czI1NiAxMTQuNiAyNTYgMjU2YzAgOTIuNS00OS40IDE3Ni4zLTEyOC4xIDIyMS44eiJ9fV19LG5hbWU6ImJ1bGIiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw2NjQ6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDEzNmMtMTQxLjQgMC0yNTYgMTE0LjYtMjU2IDI1NiAwIDkyLjUgNDkuNCAxNzYuMyAxMjguMSAyMjEuOGwzNS45IDIwLjhWNzUyaDE4NFY2MzQuNmwzNS45LTIwLjhDNzE4LjYgNTY4LjMgNzY4IDQ4NC41IDc2OCAzOTJjMC0xNDEuNC0xMTQuNi0yNTYtMjU2LTI1NnoiLGZpbGw6bn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNjMyIDg4OEgzOTJjLTQuNCAwLTggMy42LTggOHYzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmgxOTJjMTcuNyAwIDMyLTE0LjMgMzItMzJ2LTMyYzAtNC40LTMuNi04LTgtOHpNNTEyIDY0Yy0xODEuMSAwLTMyOCAxNDYuOS0zMjggMzI4IDAgMTIxLjQgNjYgMjI3LjQgMTY0IDI4NC4xVjc5MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmgyNjRjMTcuNyAwIDMyLTE0LjMgMzItMzJWNjc2LjFjOTgtNTYuNyAxNjQtMTYyLjcgMTY0LTI4NC4xIDAtMTgxLjEtMTQ2LjktMzI4LTMyOC0zMjh6bTEyNy45IDU0OS44TDYwNCA2MzQuNlY3NTJINDIwVjYzNC42bC0zNS45LTIwLjhDMzA1LjQgNTY4LjMgMjU2IDQ4NC41IDI1NiAzOTJjMC0xNDEuNCAxMTQuNi0yNTYgMjU2LTI1NnMyNTYgMTE0LjYgMjU2IDI1NmMwIDkyLjUtNDkuNCAxNzYuMy0xMjguMSAyMjEuOHoiLGZpbGw6YX19XX19LG5hbWU6ImJ1bGIiLHRoZW1lOiJ0d290b25lIn07dC5kZWZhdWx0PWV9LDQ1NTg6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNDQwLjIgNzY1aC01MC44Yy0yLjIgMC00LjUtMS4xLTUuOS0yLjlMMzQ4IDcxOC42bC0zNS41IDQzLjVhNy4zOCA3LjM4IDAgMDEtNS45IDIuOWgtNTAuOGMtNi42IDAtMTAuMi03LjktNS44LTEzLjFsNjIuNy03Ni44LTYxLjItNzQuOWMtNC4zLTUuMi0uNy0xMy4xIDUuOS0xMy4xaDUwLjljMi4yIDAgNC41IDEuMSA1LjkgMi45bDM0IDQxLjYgMzQtNDEuNmMxLjUtMS45IDMuNi0yLjkgNS45LTIuOWg1MC44YzYuNiAwIDEwLjIgNy45IDUuOSAxMy4xTDM4My41IDY3NWw2Mi43IDc2LjhjNC4yIDUuMy42IDEzLjItNiAxMy4yem03LjgtMzgyYzAgMi4yLTEuNCA0LTMuMiA0SDM3NnY2OC43YzAgMS45LTEuOCAzLjMtNCAzLjNoLTQ4Yy0yLjIgMC00LTEuNC00LTMuMlYzODdoLTY4LjhjLTEuOCAwLTMuMi0xLjgtMy4yLTR2LTQ4YzAtMi4yIDEuNC00IDMuMi00SDMyMHYtNjguOGMwLTEuOCAxLjgtMy4yIDQtMy4yaDQ4YzIuMiAwIDQgMS40IDQgMy4yVjMzMWg2OC43YzEuOSAwIDMuMyAxLjggMy4zIDR2NDh6bTMyOCAzNjljMCAyLjItMS40IDQtMy4yIDRINTc5LjJjLTEuOCAwLTMuMi0xLjgtMy4yLTR2LTQ4YzAtMi4yIDEuNC00IDMuMi00aDE5My41YzEuOSAwIDMuMyAxLjggMy4zIDR2NDh6bTAtMTA0YzAgMi4yLTEuNCA0LTMuMiA0SDU3OS4yYy0xLjggMC0zLjItMS44LTMuMi00di00OGMwLTIuMiAxLjQtNCAzLjItNGgxOTMuNWMxLjkgMCAzLjMgMS44IDMuMyA0djQ4em0wLTI2NWMwIDIuMi0xLjQgNC0zLjIgNEg1NzkuMmMtMS44IDAtMy4yLTEuOC0zLjItNHYtNDhjMC0yLjIgMS40LTQgMy4yLTRoMTkzLjVjMS45IDAgMy4zIDEuOCAzLjMgNHY0OHoifX1dfSxuYW1lOiJjYWxjdWxhdG9yIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDk0NDI6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTI1MS4yIDM4N0gzMjB2NjguOGMwIDEuOCAxLjggMy4yIDQgMy4yaDQ4YzIuMiAwIDQtMS40IDQtMy4zVjM4N2g2OC44YzEuOCAwIDMuMi0xLjggMy4yLTR2LTQ4YzAtMi4yLTEuNC00LTMuMy00SDM3NnYtNjguOGMwLTEuOC0xLjgtMy4yLTQtMy4yaC00OGMtMi4yIDAtNCAxLjQtNCAzLjJWMzMxaC02OC44Yy0xLjggMC0zLjIgMS44LTMuMiA0djQ4YzAgMi4yIDEuNCA0IDMuMiA0em0zMjggMGgxOTMuNmMxLjggMCAzLjItMS44IDMuMi00di00OGMwLTIuMi0xLjQtNC0zLjMtNEg1NzkuMmMtMS44IDAtMy4yIDEuOC0zLjIgNHY0OGMwIDIuMiAxLjQgNCAzLjIgNHptMCAyNjVoMTkzLjZjMS44IDAgMy4yLTEuOCAzLjItNHYtNDhjMC0yLjItMS40LTQtMy4zLTRINTc5LjJjLTEuOCAwLTMuMiAxLjgtMy4yIDR2NDhjMCAyLjIgMS40IDQgMy4yIDR6bTAgMTA0aDE5My42YzEuOCAwIDMuMi0xLjggMy4yLTR2LTQ4YzAtMi4yLTEuNC00LTMuMy00SDU3OS4yYy0xLjggMC0zLjIgMS44LTMuMiA0djQ4YzAgMi4yIDEuNCA0IDMuMiA0em0tMTk1LjctODFsNjEuMi03NC45YzQuMy01LjIuNy0xMy4xLTUuOS0xMy4xSDM4OGMtMi4zIDAtNC41IDEtNS45IDIuOWwtMzQgNDEuNi0zNC00MS42YTcuODUgNy44NSAwIDAwLTUuOS0yLjloLTUwLjljLTYuNiAwLTEwLjIgNy45LTUuOSAxMy4xbDYxLjIgNzQuOS02Mi43IDc2LjhjLTQuNCA1LjItLjggMTMuMSA1LjggMTMuMWg1MC44YzIuMyAwIDQuNS0xIDUuOS0yLjlsMzUuNS00My41IDM1LjUgNDMuNWMxLjUgMS44IDMuNyAyLjkgNS45IDIuOWg1MC44YzYuNiAwIDEwLjItNy45IDUuOS0xMy4xTDM4My41IDY3NXpNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tMzYgNzMySDE4MFYxODBoNjY0djY2NHoifX1dfSxuYW1lOiJjYWxjdWxhdG9yIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNDQyMjE6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNzI4SDE4NFYxODRoNjU2djY1NnoiLGZpbGw6YX19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMTg0IDg0MGg2NTZWMTg0SDE4NHY2NTZ6bTI1Ni4yLTc1aC01MC44Yy0yLjIgMC00LjUtMS4xLTUuOS0yLjlMMzQ4IDcxOC42bC0zNS41IDQzLjVhNy4zOCA3LjM4IDAgMDEtNS45IDIuOWgtNTAuOGMtNi42IDAtMTAuMi03LjktNS44LTEzLjFsNjIuNy03Ni44LTYxLjItNzQuOWMtNC4zLTUuMi0uNy0xMy4xIDUuOS0xMy4xaDUwLjljMi4yIDAgNC41IDEuMSA1LjkgMi45bDM0IDQxLjYgMzQtNDEuNmMxLjUtMS45IDMuNi0yLjkgNS45LTIuOWg1MC44YzYuNiAwIDEwLjIgNy45IDUuOSAxMy4xTDM4My41IDY3NWw2Mi43IDc2LjhjNC4yIDUuMy42IDEzLjItNiAxMy4yek01NzYgMzM1YzAtMi4yIDEuNC00IDMuMi00aDE5My41YzEuOSAwIDMuMyAxLjggMy4zIDR2NDhjMCAyLjItMS40IDQtMy4yIDRINTc5LjJjLTEuOCAwLTMuMi0xLjgtMy4yLTR2LTQ4em0wIDI2NWMwLTIuMiAxLjQtNCAzLjItNGgxOTMuNWMxLjkgMCAzLjMgMS44IDMuMyA0djQ4YzAgMi4yLTEuNCA0LTMuMiA0SDU3OS4yYy0xLjggMC0zLjItMS44LTMuMi00di00OHptMCAxMDRjMC0yLjIgMS40LTQgMy4yLTRoMTkzLjVjMS45IDAgMy4zIDEuOCAzLjMgNHY0OGMwIDIuMi0xLjQgNC0zLjIgNEg1NzkuMmMtMS44IDAtMy4yLTEuOC0zLjItNHYtNDh6TTI0OCAzMzVjMC0yLjIgMS40LTQgMy4yLTRIMzIwdi02OC44YzAtMS44IDEuOC0zLjIgNC0zLjJoNDhjMi4yIDAgNCAxLjQgNCAzLjJWMzMxaDY4LjdjMS45IDAgMy4zIDEuOCAzLjMgNHY0OGMwIDIuMi0xLjQgNC0zLjIgNEgzNzZ2NjguN2MwIDEuOS0xLjggMy4zLTQgMy4zaC00OGMtMi4yIDAtNC0xLjQtNC0zLjJWMzg3aC02OC44Yy0xLjggMC0zLjItMS44LTMuMi00di00OHoiLGZpbGw6bn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMzgzLjUgNjc1bDYxLjMtNzQuOGM0LjMtNS4yLjctMTMuMS01LjktMTMuMWgtNTAuOGMtMi4zIDAtNC40IDEtNS45IDIuOWwtMzQgNDEuNi0zNC00MS42YTcuNjkgNy42OSAwIDAwLTUuOS0yLjloLTUwLjljLTYuNiAwLTEwLjIgNy45LTUuOSAxMy4xbDYxLjIgNzQuOS02Mi43IDc2LjhjLTQuNCA1LjItLjggMTMuMSA1LjggMTMuMWg1MC44YzIuMyAwIDQuNC0xIDUuOS0yLjlsMzUuNS00My41IDM1LjUgNDMuNWMxLjQgMS44IDMuNyAyLjkgNS45IDIuOWg1MC44YzYuNiAwIDEwLjItNy45IDYtMTMuMkwzODMuNSA2NzV6TTI1MS4yIDM4N0gzMjB2NjguOGMwIDEuOCAxLjggMy4yIDQgMy4yaDQ4YzIuMiAwIDQtMS40IDQtMy4zVjM4N2g2OC44YzEuOCAwIDMuMi0xLjggMy4yLTR2LTQ4YzAtMi4yLTEuNC00LTMuMy00SDM3NnYtNjguOGMwLTEuOC0xLjgtMy4yLTQtMy4yaC00OGMtMi4yIDAtNCAxLjQtNCAzLjJWMzMxaC02OC44Yy0xLjggMC0zLjIgMS44LTMuMiA0djQ4YzAgMi4yIDEuNCA0IDMuMiA0em0zMjggMzY5aDE5My42YzEuOCAwIDMuMi0xLjggMy4yLTR2LTQ4YzAtMi4yLTEuNC00LTMuMy00SDU3OS4yYy0xLjggMC0zLjIgMS44LTMuMiA0djQ4YzAgMi4yIDEuNCA0IDMuMiA0em0wLTEwNGgxOTMuNmMxLjggMCAzLjItMS44IDMuMi00di00OGMwLTIuMi0xLjQtNC0zLjMtNEg1NzkuMmMtMS44IDAtMy4yIDEuOC0zLjIgNHY0OGMwIDIuMiAxLjQgNCAzLjIgNHptMC0yNjVoMTkzLjZjMS44IDAgMy4yLTEuOCAzLjItNHYtNDhjMC0yLjItMS40LTQtMy4zLTRINTc5LjJjLTEuOCAwLTMuMiAxLjgtMy4yIDR2NDhjMCAyLjIgMS40IDQgMy4yIDR6IixmaWxsOmF9fV19fSxuYW1lOiJjYWxjdWxhdG9yIix0aGVtZToidHdvdG9uZSJ9O3QuZGVmYXVsdD1lfSwzMzI3ODpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMTEyIDg4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWNDYwSDExMnY0MjB6bTc2OC02OTZINzEydi02NGMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NjRIMzg0di02NGMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NjRIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYxNzZoODAwVjIxNmMwLTE3LjctMTQuMy0zMi0zMi0zMnoifX1dfSxuYW1lOiJjYWxlbmRhciIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSwxMDEyOTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDE4NEg3MTJ2LTY0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2NEgzODR2LTY0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2NEgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjE2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNjU2SDE4NFY0NjBoNjU2djM4MHpNMTg0IDM5MlYyNTZoMTI4djQ4YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTQ4aDI1NnY0OGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di00OGgxMjh2MTM2SDE4NHoifX1dfSxuYW1lOiJjYWxlbmRhciIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDUwNTQ2OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOmZ1bmN0aW9uKGEsbil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTcxMiAzMDRjMCA0LjQtMy42IDgtOCA4aC01NmMtNC40IDAtOC0zLjYtOC04di00OEgzODR2NDhjMCA0LjQtMy42IDgtOCA4aC01NmMtNC40IDAtOC0zLjYtOC04di00OEgxODR2MTM2aDY1NlYyNTZINzEydjQ4eiIsZmlsbDpufX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMTg0SDcxMnYtNjRjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djY0SDM4NHYtNjRjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djY0SDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYyMTZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA2NTZIMTg0VjQ2MGg2NTZ2Mzgwem0wLTQ0OEgxODRWMjU2aDEyOHY0OGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di00OGgyNTZ2NDhjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNDhoMTI4djEzNnoiLGZpbGw6YX19XX19LG5hbWU6ImNhbGVuZGFyIix0aGVtZToidHdvdG9uZSJ9O3QuZGVmYXVsdD1lfSwzNjA2NTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODY0IDI2MEg3MjhsLTMyLjQtOTAuOGEzMi4wNyAzMi4wNyAwIDAwLTMwLjItMjEuMkgzNTguNmMtMTMuNSAwLTI1LjYgOC41LTMwLjEgMjEuMkwyOTYgMjYwSDE2MGMtNDQuMiAwLTgwIDM1LjgtODAgODB2NDU2YzAgNDQuMiAzNS44IDgwIDgwIDgwaDcwNGM0NC4yIDAgODAtMzUuOCA4MC04MFYzNDBjMC00NC4yLTM1LjgtODAtODAtODB6TTUxMiA3MTZjLTg4LjQgMC0xNjAtNzEuNi0xNjAtMTYwczcxLjYtMTYwIDE2MC0xNjAgMTYwIDcxLjYgMTYwIDE2MC03MS42IDE2MC0xNjAgMTYwem0tOTYtMTYwYTk2IDk2IDAgMTAxOTIgMCA5NiA5NiAwIDEwLTE5MiAweiJ9fV19LG5hbWU6ImNhbWVyYSIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSwzOTUwNTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODY0IDI0OEg3MjhsLTMyLjQtOTAuOGEzMi4wNyAzMi4wNyAwIDAwLTMwLjItMjEuMkgzNTguNmMtMTMuNSAwLTI1LjYgOC41LTMwLjEgMjEuMkwyOTYgMjQ4SDE2MGMtNDQuMiAwLTgwIDM1LjgtODAgODB2NDU2YzAgNDQuMiAzNS44IDgwIDgwIDgwaDcwNGM0NC4yIDAgODAtMzUuOCA4MC04MFYzMjhjMC00NC4yLTM1LjgtODAtODAtODB6bTggNTM2YzAgNC40LTMuNiA4LTggOEgxNjBjLTQuNCAwLTgtMy42LTgtOFYzMjhjMC00LjQgMy42LTggOC04aDE4Ni43bDE3LjEtNDcuOCAyMi45LTY0LjJoMjUwLjVsMjIuOSA2NC4yIDE3LjEgNDcuOEg4NjRjNC40IDAgOCAzLjYgOCA4djQ1NnpNNTEyIDM4NGMtODguNCAwLTE2MCA3MS42LTE2MCAxNjBzNzEuNiAxNjAgMTYwIDE2MCAxNjAtNzEuNiAxNjAtMTYwLTcxLjYtMTYwLTE2MC0xNjB6bTAgMjU2Yy01MyAwLTk2LTQzLTk2LTk2czQzLTk2IDk2LTk2IDk2IDQzIDk2IDk2LTQzIDk2LTk2IDk2eiJ9fV19LG5hbWU6ImNhbWVyYSIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDQ0NTE1OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOmZ1bmN0aW9uKGEsbil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg2NCAzMjBINjc3LjJsLTE3LjEtNDcuOC0yMi45LTY0LjJIMzg2LjdsLTIyLjkgNjQuMi0xNy4xIDQ3LjhIMTYwYy00LjQgMC04IDMuNi04IDh2NDU2YzAgNC40IDMuNiA4IDggOGg3MDRjNC40IDAgOC0zLjYgOC04VjMyOGMwLTQuNC0zLjYtOC04LTh6TTUxMiA3MDRjLTg4LjQgMC0xNjAtNzEuNi0xNjAtMTYwczcxLjYtMTYwIDE2MC0xNjAgMTYwIDcxLjYgMTYwIDE2MC03MS42IDE2MC0xNjAgMTYweiIsZmlsbDpufX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgMzg0Yy04OC40IDAtMTYwIDcxLjYtMTYwIDE2MHM3MS42IDE2MCAxNjAgMTYwIDE2MC03MS42IDE2MC0xNjAtNzEuNi0xNjAtMTYwLTE2MHptMCAyNTZjLTUzIDAtOTYtNDMtOTYtOTZzNDMtOTYgOTYtOTYgOTYgNDMgOTYgOTYtNDMgOTYtOTYgOTZ6IixmaWxsOmF9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg2NCAyNDhINzI4bC0zMi40LTkwLjhhMzIuMDcgMzIuMDcgMCAwMC0zMC4yLTIxLjJIMzU4LjZjLTEzLjUgMC0yNS42IDguNS0zMC4xIDIxLjJMMjk2IDI0OEgxNjBjLTQ0LjIgMC04MCAzNS44LTgwIDgwdjQ1NmMwIDQ0LjIgMzUuOCA4MCA4MCA4MGg3MDRjNDQuMiAwIDgwLTM1LjggODAtODBWMzI4YzAtNDQuMi0zNS44LTgwLTgwLTgwem04IDUzNmMwIDQuNC0zLjYgOC04IDhIMTYwYy00LjQgMC04LTMuNi04LThWMzI4YzAtNC40IDMuNi04IDgtOGgxODYuN2wxNy4xLTQ3LjggMjIuOS02NC4yaDI1MC41bDIyLjkgNjQuMiAxNy4xIDQ3LjhIODY0YzQuNCAwIDggMy42IDggOHY0NTZ6IixmaWxsOmF9fV19fSxuYW1lOiJjYW1lcmEiLHRoZW1lOiJ0d290b25lIn07dC5kZWZhdWx0PWV9LDcwMTc4OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05NTkgNDEzLjRMOTM1LjMgMzcyYTggOCAwIDAwLTEwLjktMi45bC01MC43IDI5LjYtNzguMy0yMTYuMmE2My45IDYzLjkgMCAwMC02MC45LTQ0LjRIMzAxLjJjLTM0LjcgMC02NS41IDIyLjQtNzYuMiA1NS41bC03NC42IDIwNS4yLTUwLjgtMjkuNmE4IDggMCAwMC0xMC45IDIuOUw2NSA0MTMuNGMtMi4yIDMuOC0uOSA4LjYgMi45IDEwLjhsNjAuNCAzNS4yLTE0LjUgNDBjLTEuMiAzLjItMS44IDYuNi0xLjggMTB2MzQ4LjJjMCAxNS43IDExLjggMjguNCAyNi4zIDI4LjRoNjcuNmMxMi4zIDAgMjMtOS4zIDI1LjYtMjIuM2w3LjctMzcuN2g1NDUuNmw3LjcgMzcuN2MyLjcgMTMgMTMuMyAyMi4zIDI1LjYgMjIuM2g2Ny42YzE0LjUgMCAyNi4zLTEyLjcgMjYuMy0yOC40VjUwOS40YzAtMy40LS42LTYuOC0xLjgtMTBsLTE0LjUtNDAgNjAuMy0zNS4yYTggOCAwIDAwMy0xMC44ek0yNjQgNjIxYy0yMi4xIDAtNDAtMTcuOS00MC00MHMxNy45LTQwIDQwLTQwIDQwIDE3LjkgNDAgNDAtMTcuOSA0MC00MCA0MHptMzg4IDc1YzAgNC40LTMuNiA4LTggOEgzODBjLTQuNCAwLTgtMy42LTgtOHYtODRjMC00LjQgMy42LTggOC04aDQwYzQuNCAwIDggMy42IDggOHYzNmgxNjh2LTM2YzAtNC40IDMuNi04IDgtOGg0MGM0LjQgMCA4IDMuNiA4IDh2ODR6bTEwOC03NWMtMjIuMSAwLTQwLTE3LjktNDAtNDBzMTcuOS00MCA0MC00MCA0MCAxNy45IDQwIDQwLTE3LjkgNDAtNDAgNDB6TTIyMCA0MThsNzIuNy0xOTkuOS41LTEuMy40LTEuM2MxLjEtMy4zIDQuMS01LjUgNy42LTUuNWg0MjcuNmw3NS40IDIwOEgyMjB6In19XX0sbmFtZToiY2FyIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDc0MzE5OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0zODAgNzA0aDI2NGM0LjQgMCA4LTMuNiA4LTh2LTg0YzAtNC40LTMuNi04LTgtOGgtNDBjLTQuNCAwLTggMy42LTggOHYzNkg0Mjh2LTM2YzAtNC40LTMuNi04LTgtOGgtNDBjLTQuNCAwLTggMy42LTggOHY4NGMwIDQuNCAzLjYgOCA4IDh6bTM0MC0xMjNhNDAgNDAgMCAxMDgwIDAgNDAgNDAgMCAxMC04MCAwem0yMzktMTY3LjZMOTM1LjMgMzcyYTggOCAwIDAwLTEwLjktMi45bC01MC43IDI5LjYtNzguMy0yMTYuMmE2My45IDYzLjkgMCAwMC02MC45LTQ0LjRIMzAxLjJjLTM0LjcgMC02NS41IDIyLjQtNzYuMiA1NS41bC03NC42IDIwNS4yLTUwLjgtMjkuNmE4IDggMCAwMC0xMC45IDIuOUw2NSA0MTMuNGMtMi4yIDMuOC0uOSA4LjYgMi45IDEwLjhsNjAuNCAzNS4yLTE0LjUgNDBjLTEuMiAzLjItMS44IDYuNi0xLjggMTB2MzQ4LjJjMCAxNS43IDExLjggMjguNCAyNi4zIDI4LjRoNjcuNmMxMi4zIDAgMjMtOS4zIDI1LjYtMjIuM2w3LjctMzcuN2g1NDUuNmw3LjcgMzcuN2MyLjcgMTMgMTMuMyAyMi4zIDI1LjYgMjIuM2g2Ny42YzE0LjUgMCAyNi4zLTEyLjcgMjYuMy0yOC40VjUwOS40YzAtMy40LS42LTYuOC0xLjgtMTBsLTE0LjUtNDAgNjAuMy0zNS4yYTggOCAwIDAwMy0xMC44ek04NDAgNTE3djIzN0gxODRWNTE3bDE1LjYtNDNoNjI0LjhsMTUuNiA0M3pNMjkyLjcgMjE4LjFsLjUtMS4zLjQtMS4zYzEuMS0zLjMgNC4xLTUuNSA3LjYtNS41aDQyNy42bDc1LjQgMjA4SDIyMGw3Mi43LTE5OS45ek0yMjQgNTgxYTQwIDQwIDAgMTA4MCAwIDQwIDQwIDAgMTAtODAgMHoifX1dfSxuYW1lOiJjYXIiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSwxOTc0NDpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjpmdW5jdGlvbihhLG4pe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0xOTkuNiA0NzRMMTg0IDUxN3YyMzdoNjU2VjUxN2wtMTUuNi00M0gxOTkuNnpNMjY0IDYyMWMtMjIuMSAwLTQwLTE3LjktNDAtNDBzMTcuOS00MCA0MC00MCA0MCAxNy45IDQwIDQwLTE3LjkgNDAtNDAgNDB6bTM4OCA3NWMwIDQuNC0zLjYgOC04IDhIMzgwYy00LjQgMC04LTMuNi04LTh2LTg0YzAtNC40IDMuNi04IDgtOGg0MGM0LjQgMCA4IDMuNiA4IDh2MzZoMTY4di0zNmMwLTQuNCAzLjYtOCA4LThoNDBjNC40IDAgOCAzLjYgOCA4djg0em0xMDgtNzVjLTIyLjEgMC00MC0xNy45LTQwLTQwczE3LjktNDAgNDAtNDAgNDAgMTcuOSA0MCA0MC0xNy45IDQwLTQwIDQweiIsZmlsbDpufX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik03MjAgNTgxYTQwIDQwIDAgMTA4MCAwIDQwIDQwIDAgMTAtODAgMHoiLGZpbGw6YX19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNOTU5IDQxMy40TDkzNS4zIDM3MmE4IDggMCAwMC0xMC45LTIuOWwtNTAuNyAyOS42LTc4LjMtMjE2LjJhNjMuOSA2My45IDAgMDAtNjAuOS00NC40SDMwMS4yYy0zNC43IDAtNjUuNSAyMi40LTc2LjIgNTUuNWwtNzQuNiAyMDUuMi01MC44LTI5LjZhOCA4IDAgMDAtMTAuOSAyLjlMNjUgNDEzLjRjLTIuMiAzLjgtLjkgOC42IDIuOSAxMC44bDYwLjQgMzUuMi0xNC41IDQwYy0xLjIgMy4yLTEuOCA2LjYtMS44IDEwdjM0OC4yYzAgMTUuNyAxMS44IDI4LjQgMjYuMyAyOC40aDY3LjZjMTIuMyAwIDIzLTkuMyAyNS42LTIyLjNsNy43LTM3LjdoNTQ1LjZsNy43IDM3LjdjMi43IDEzIDEzLjMgMjIuMyAyNS42IDIyLjNoNjcuNmMxNC41IDAgMjYuMy0xMi43IDI2LjMtMjguNFY1MDkuNGMwLTMuNC0uNi02LjgtMS44LTEwbC0xNC41LTQwIDYwLjMtMzUuMmE4IDggMCAwMDMtMTAuOHpNMjkyLjcgMjE4LjFsLjUtMS4zLjQtMS4zYzEuMS0zLjMgNC4xLTUuNSA3LjYtNS41aDQyNy42bDc1LjQgMjA4SDIyMGw3Mi43LTE5OS45ek04NDAgNzU0SDE4NFY1MTdsMTUuNi00M2g2MjQuOGwxNS42IDQzdjIzN3oiLGZpbGw6YX19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMjI0IDU4MWE0MCA0MCAwIDEwODAgMCA0MCA0MCAwIDEwLTgwIDB6bTQyMCAyM2gtNDBjLTQuNCAwLTggMy42LTggOHYzNkg0Mjh2LTM2YzAtNC40LTMuNi04LTgtOGgtNDBjLTQuNCAwLTggMy42LTggOHY4NGMwIDQuNCAzLjYgOCA4IDhoMjY0YzQuNCAwIDgtMy42IDgtOHYtODRjMC00LjQtMy42LTgtOC04eiIsZmlsbDphfX1dfX0sbmFtZToiY2FyIix0aGVtZToidHdvdG9uZSJ9O3QuZGVmYXVsdD1lfSw3MjAyNTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiIwIDAgMTAyNCAxMDI0Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODQwLjQgMzAwSDE4My42Yy0xOS43IDAtMzAuNyAyMC44LTE4LjUgMzVsMzI4LjQgMzgwLjhjOS40IDEwLjkgMjcuNSAxMC45IDM3IDBMODU4LjkgMzM1YzEyLjItMTQuMiAxLjItMzUtMTguNS0zNXoifX1dfSxuYW1lOiJjYXJldC1kb3duIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDQzMDQ2OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjAgMCAxMDI0IDEwMjQiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NDAuNCAzMDBIMTgzLjZjLTE5LjcgMC0zMC43IDIwLjgtMTguNSAzNWwzMjguNCAzODAuOGM5LjQgMTAuOSAyNy41IDEwLjkgMzcgMEw4NTguOSAzMzVjMTIuMi0xNC4yIDEuMi0zNS0xOC41LTM1eiJ9fV19LG5hbWU6ImNhcmV0LWRvd24iLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw0MTQyNzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiIwIDAgMTAyNCAxMDI0Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNjg5IDE2NS4xTDMwOC4yIDQ5My41Yy0xMC45IDkuNC0xMC45IDI3LjUgMCAzN0w2ODkgODU4LjljMTQuMiAxMi4yIDM1IDEuMiAzNS0xOC41VjE4My42YzAtMTkuNy0yMC44LTMwLjctMzUtMTguNXoifX1dfSxuYW1lOiJjYXJldC1sZWZ0Iix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDUyNTQ6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiMCAwIDEwMjQgMTAyNCIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTY4OSAxNjUuMUwzMDguMiA0OTMuNWMtMTAuOSA5LjQtMTAuOSAyNy41IDAgMzdMNjg5IDg1OC45YzE0LjIgMTIuMiAzNSAxLjIgMzUtMTguNVYxODMuNmMwLTE5LjctMjAuOC0zMC43LTM1LTE4LjV6In19XX0sbmFtZToiY2FyZXQtbGVmdCIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDYzMDgzOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjAgMCAxMDI0IDEwMjQiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik03MTUuOCA0OTMuNUwzMzUgMTY1LjFjLTE0LjItMTIuMi0zNS0xLjItMzUgMTguNXY2NTYuOGMwIDE5LjcgMjAuOCAzMC43IDM1IDE4LjVsMzgwLjgtMzI4LjRjMTAuOS05LjQgMTAuOS0yNy42IDAtMzd6In19XX0sbmFtZToiY2FyZXQtcmlnaHQiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sNTQwNDQ6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiMCAwIDEwMjQgMTAyNCIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTcxNS44IDQ5My41TDMzNSAxNjUuMWMtMTQuMi0xMi4yLTM1LTEuMi0zNSAxOC41djY1Ni44YzAgMTkuNyAyMC44IDMwLjcgMzUgMTguNWwzODAuOC0zMjguNGMxMC45LTkuNCAxMC45LTI3LjYgMC0zN3oifX1dfSxuYW1lOiJjYXJldC1yaWdodCIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDYwMzE6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiMCAwIDEwMjQgMTAyNCIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg1OC45IDY4OUw1MzAuNSAzMDguMmMtOS40LTEwLjktMjcuNS0xMC45LTM3IDBMMTY1LjEgNjg5Yy0xMi4yIDE0LjItMS4yIDM1IDE4LjUgMzVoNjU2LjhjMTkuNyAwIDMwLjctMjAuOCAxOC41LTM1eiJ9fV19LG5hbWU6ImNhcmV0LXVwIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDk2ODQ3OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjAgMCAxMDI0IDEwMjQiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NTguOSA2ODlMNTMwLjUgMzA4LjJjLTkuNC0xMC45LTI3LjUtMTAuOS0zNyAwTDE2NS4xIDY4OWMtMTIuMiAxNC4yLTEuMiAzNSAxOC41IDM1aDY1Ni44YzE5LjcgMCAzMC43LTIwLjggMTguNS0zNXoifX1dfSxuYW1lOiJjYXJldC11cCIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDIxNTM5OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMTg0SDcxMnYtNjRjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djY0SDM4NHYtNjRjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djY0SDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYyMTZjMC0xNy43LTE0LjMtMzItMzItMzJ6TTY5NC41IDQzMi43TDQ4MS45IDcyNS40YTE2LjEgMTYuMSAwIDAxLTI2IDBsLTEyNi40LTE3NGMtMy44LTUuMyAwLTEyLjcgNi41LTEyLjdoNTUuMmM1LjEgMCAxMCAyLjUgMTMgNi42bDY0LjcgODkgMTUwLjktMjA3LjhjMy00LjEgNy44LTYuNiAxMy02LjZINjg4YzYuNS4xIDEwLjMgNy41IDYuNSAxMi44eiJ9fV19LG5hbWU6ImNhcnJ5LW91dCIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw4OTU5OTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDE4NEg3MTJ2LTY0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2NEgzODR2LTY0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2NEgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjE2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNjU2SDE4NFYyNTZoMTI4djQ4YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTQ4aDI1NnY0OGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di00OGgxMjh2NTg0ek02ODggNDIwaC01NS4yYy01LjEgMC0xMCAyLjUtMTMgNi42TDQ2OC45IDYzNC40bC02NC43LTg5Yy0zLTQuMS03LjgtNi42LTEzLTYuNkgzMzZjLTYuNSAwLTEwLjMgNy40LTYuNSAxMi43bDEyNi40IDE3NGExNi4xIDE2LjEgMCAwMDI2IDBsMjEyLjYtMjkyLjdjMy44LTUuNCAwLTEyLjgtNi41LTEyLjh6In19XX0sbmFtZToiY2Fycnktb3V0Iix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNDc2OTM6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDE4NEg3MTJ2LTY0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2NEgzODR2LTY0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2NEgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjE2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNjU2SDE4NFYyNTZoMTI4djQ4YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTQ4aDI1NnY0OGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di00OGgxMjh2NTg0eiIsZmlsbDphfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik03MTIgMzA0YzAgNC40LTMuNiA4LTggOGgtNTZjLTQuNCAwLTgtMy42LTgtOHYtNDhIMzg0djQ4YzAgNC40LTMuNiA4LTggOGgtNTZjLTQuNCAwLTgtMy42LTgtOHYtNDhIMTg0djU4NGg2NTZWMjU2SDcxMnY0OHptLTE3LjUgMTI4LjhMNDgxLjkgNzI1LjVhMTYuMSAxNi4xIDAgMDEtMjYgMGwtMTI2LjQtMTc0Yy0zLjgtNS4zIDAtMTIuNyA2LjUtMTIuN2g1NS4yYzUuMiAwIDEwIDIuNSAxMyA2LjZsNjQuNyA4OSAxNTAuOS0yMDcuOGMzLTQuMSA3LjktNi42IDEzLTYuNkg2ODhjNi41IDAgMTAuMyA3LjQgNi41IDEyLjh6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTY4OCA0MjBoLTU1LjJjLTUuMSAwLTEwIDIuNS0xMyA2LjZMNDY4LjkgNjM0LjRsLTY0LjctODljLTMtNC4xLTcuOC02LjYtMTMtNi42SDMzNmMtNi41IDAtMTAuMyA3LjQtNi41IDEyLjdsMTI2LjQgMTc0YTE2LjEgMTYuMSAwIDAwMjYgMGwyMTIuNi0yOTIuN2MzLjgtNS40IDAtMTIuOC02LjUtMTIuOHoiLGZpbGw6YX19XX19LG5hbWU6ImNhcnJ5LW91dCIsdGhlbWU6InR3b3RvbmUifTt0LmRlZmF1bHQ9ZX0sODUzNjg6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0xOTMuNSAzMDEuN2wtMjEwLjYgMjkyYTMxLjggMzEuOCAwIDAxLTUxLjcgMEwzMTguNSA0ODQuOWMtMy44LTUuMyAwLTEyLjcgNi41LTEyLjdoNDYuOWMxMC4yIDAgMTkuOSA0LjkgMjUuOSAxMy4zbDcxLjIgOTguOCAxNTcuMi0yMThjNi04LjMgMTUuNi0xMy4zIDI1LjktMTMuM0g2OTljNi41IDAgMTAuMyA3LjQgNi41IDEyLjd6In19XX0sbmFtZToiY2hlY2stY2lyY2xlIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDE2OTc2OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02OTkgMzUzaC00Ni45Yy0xMC4yIDAtMTkuOSA0LjktMjUuOSAxMy4zTDQ2OSA1ODQuM2wtNzEuMi05OC44Yy02LTguMy0xNS42LTEzLjMtMjUuOS0xMy4zSDMyNWMtNi41IDAtMTAuMyA3LjQtNi41IDEyLjdsMTI0LjYgMTcyLjhhMzEuOCAzMS44IDAgMDA1MS43IDBsMjEwLjYtMjkyYzMuOS01LjMuMS0xMi43LTYuNC0xMi43eiJ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnoifX1dfSxuYW1lOiJjaGVjay1jaXJjbGUiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw0Mzc1OTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjpmdW5jdGlvbihhLG4pe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6IixmaWxsOmF9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiAxNDBjLTIwNS40IDAtMzcyIDE2Ni42LTM3MiAzNzJzMTY2LjYgMzcyIDM3MiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzItMTY2LjYtMzcyLTM3Mi0zNzJ6bTE5My40IDIyNS43bC0yMTAuNiAyOTJhMzEuOCAzMS44IDAgMDEtNTEuNyAwTDMxOC41IDQ4NC45Yy0zLjgtNS4zIDAtMTIuNyA2LjUtMTIuN2g0Ni45YzEwLjMgMCAxOS45IDUgMjUuOSAxMy4zbDcxLjIgOTguOCAxNTcuMi0yMThjNi04LjQgMTUuNy0xMy4zIDI1LjktMTMuM0g2OTljNi41IDAgMTAuMyA3LjQgNi40IDEyLjd6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTY5OSAzNTNoLTQ2LjljLTEwLjIgMC0xOS45IDQuOS0yNS45IDEzLjNMNDY5IDU4NC4zbC03MS4yLTk4LjhjLTYtOC4zLTE1LjYtMTMuMy0yNS45LTEzLjNIMzI1Yy02LjUgMC0xMC4zIDcuNC02LjUgMTIuN2wxMjQuNiAxNzIuOGEzMS44IDMxLjggMCAwMDUxLjcgMGwyMTAuNi0yOTJjMy45LTUuMy4xLTEyLjctNi40LTEyLjd6IixmaWxsOmF9fV19fSxuYW1lOiJjaGVjay1jaXJjbGUiLHRoZW1lOiJ0d290b25lIn07dC5kZWZhdWx0PWV9LDI1MzMwOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MTIgMTkwaC02OS45Yy05LjggMC0xOS4xIDQuNS0yNS4xIDEyLjJMNDA0LjcgNzI0LjUgMjA3IDQ3NGEzMiAzMiAwIDAwLTI1LjEtMTIuMkgxMTJjLTYuNyAwLTEwLjQgNy43LTYuMyAxMi45bDI3My45IDM0N2MxMi44IDE2LjIgMzcuNCAxNi4yIDUwLjMgMGw0ODguNC02MTguOWM0LjEtNS4xLjQtMTIuOC02LjMtMTIuOHoifX1dfSxuYW1lOiJjaGVjayIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDk1MTI4OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTY5NS41IDM2NS43bC0yMTAuNiAyOTJhMzEuOCAzMS44IDAgMDEtNTEuNyAwTDMwOC41IDQ4NC45Yy0zLjgtNS4zIDAtMTIuNyA2LjUtMTIuN2g0Ni45YzEwLjIgMCAxOS45IDQuOSAyNS45IDEzLjNsNzEuMiA5OC44IDE1Ny4yLTIxOGM2LTguMyAxNS42LTEzLjMgMjUuOS0xMy4zSDY4OWM2LjUgMCAxMC4zIDcuNCA2LjUgMTIuN3oifX1dfSxuYW1lOiJjaGVjay1zcXVhcmUiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sODY4Mjk6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQzMy4xIDY1Ny43YTMxLjggMzEuOCAwIDAwNTEuNyAwbDIxMC42LTI5MmMzLjgtNS4zIDAtMTIuNy02LjUtMTIuN0g2NDJjLTEwLjIgMC0xOS45IDQuOS0yNS45IDEzLjNMNDU5IDU4NC4zbC03MS4yLTk4LjhjLTYtOC4zLTE1LjYtMTMuMy0yNS45LTEzLjNIMzE1Yy02LjUgMC0xMC4zIDcuNC02LjUgMTIuN2wxMjQuNiAxNzIuOHoifX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2eiJ9fV19LG5hbWU6ImNoZWNrLXNxdWFyZSIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDg4NzgxOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOmZ1bmN0aW9uKGEsbil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6IixmaWxsOmF9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTE4NCA4NDBoNjU2VjE4NEgxODR2NjU2em0xMzAtMzY3LjhoNDYuOWMxMC4yIDAgMTkuOSA0LjkgMjUuOSAxMy4zbDcxLjIgOTguOCAxNTcuMi0yMThjNi04LjMgMTUuNi0xMy4zIDI1LjktMTMuM0g2ODhjNi41IDAgMTAuMyA3LjQgNi41IDEyLjdsLTIxMC42IDI5MmEzMS44IDMxLjggMCAwMS01MS43IDBMMzA3LjUgNDg0LjljLTMuOC01LjMgMC0xMi43IDYuNS0xMi43eiIsZmlsbDpufX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00MzIuMiA2NTcuN2EzMS44IDMxLjggMCAwMDUxLjcgMGwyMTAuNi0yOTJjMy44LTUuMyAwLTEyLjctNi41LTEyLjdoLTQ2LjljLTEwLjMgMC0xOS45IDUtMjUuOSAxMy4zTDQ1OCA1ODQuM2wtNzEuMi05OC44Yy02LTguNC0xNS43LTEzLjMtMjUuOS0xMy4zSDMxNGMtNi41IDAtMTAuMyA3LjQtNi41IDEyLjdsMTI0LjcgMTcyLjh6IixmaWxsOmF9fV19fSxuYW1lOiJjaGVjay1zcXVhcmUiLHRoZW1lOiJ0d290b25lIn07dC5kZWZhdWx0PWV9LDY1ODpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMzcxLjggNTEyYzAgNzcuNSA2Mi43IDE0MC4yIDE0MC4yIDE0MC4yUzY1Mi4yIDU4OS41IDY1Mi4yIDUxMiA1ODkuNSAzNzEuOCA1MTIgMzcxLjggMzcxLjggNDM0LjQgMzcxLjggNTEyek05MDAgMzYyLjRsLTIzNC4zIDEyLjFjNjMuNiA3NC4zIDY0LjYgMTgxLjUgMTEuMSAyNjMuN2wtMTg4IDI4OS4yYzc4IDQuMiAxNTguNC0xMi45IDIzMS4yLTU1LjIgMTgwLTEwNCAyNTMtMzIyLjEgMTgwLTUwOS44ek0zMjAuMyA1OTEuOUwxNjMuOCAyODQuMUE0MTUuMzUgNDE1LjM1IDAgMDA5NiA1MTJjMCAyMDggMTUyLjMgMzgwLjMgMzUxLjQgNDEwLjhsMTA2LjktMjA5LjRjLTk2LjYgMTguMi0xODkuOS0zNC44LTIzNC0xMjEuNXptMjE4LjUtMjg1LjVsMzQ0LjQgMTguMUM4NDggMjU0LjcgNzkyLjYgMTk0IDcxOS44IDE1MS43IDY1My45IDExMy42IDU4MS41IDk1LjUgNTEwLjUgOTZjLTEyMi41LjUtMjQyLjIgNTUuMi0zMjIuMSAxNTQuNWwxMjguMiAxOTYuOWMzMi05MS45IDEyNC44LTE0Ni43IDIyMi4yLTE0MXoifX1dfSxuYW1lOiJjaHJvbWUiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sOTU5Mzk6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkyOCA1MTIuM3YtLjNjMC0yMjkuOC0xODYuMi00MTYtNDE2LTQxNlM5NiAyODIuMiA5NiA1MTJ2LjRjMCAyMjkuOCAxODYuMiA0MTYgNDE2IDQxNnM0MTYtMTg2LjIgNDE2LTQxNnYtLjMuMnptLTYuNy03NC42bC42IDMuMy0uNi0zLjN6TTY3Ni43IDYzOC4yYzUzLjUtODIuMiA1Mi41LTE4OS40LTExLjEtMjYzLjdsMTYyLjQtOC40YzIwLjUgNDQuNCAzMiA5My44IDMyIDE0NS45IDAgMTg1LjItMTQ0LjYgMzM2LjYtMzI3LjEgMzQ3LjRsMTQzLjgtMjIxLjJ6TTUxMiA2NTIuM2MtNzcuNSAwLTE0MC4yLTYyLjctMTQwLjItMTQwLjIgMC03Ny43IDYyLjctMTQwLjIgMTQwLjItMTQwLjJTNjUyLjIgNDM0LjUgNjUyLjIgNTEyIDU4OS41IDY1Mi4zIDUxMiA2NTIuM3ptMzY5LjItMzMxLjdsLTMtNS43IDMgNS43ek01MTIgMTY0YzEyMS4zIDAgMjI4LjIgNjIuMSAyOTAuNCAxNTYuMmwtMjYzLjYtMTMuOWMtOTcuNS01LjctMTkwLjIgNDkuMi0yMjIuMyAxNDEuMUwyMjcuOCAzMTFjNjMuMS04OC45IDE2Ni45LTE0NyAyODQuMi0xNDd6TTEwMi41IDU4NS44YzI2IDE0NSAxMjcuMSAyNjQgMjYxLjYgMzE1LjFDMjI5LjYgODUwIDEyOC41IDczMSAxMDIuNSA1ODUuOHpNMTY0IDUxMmMwLTU1LjkgMTMuMi0xMDguNyAzNi42LTE1NS41bDExOS43IDIzNS40YzQ0LjEgODYuNyAxMzcuNCAxMzkuNyAyMzQgMTIxLjZsLTc0IDE0NS4xQzMwMi45IDg0Mi41IDE2NCA2OTMuNSAxNjQgNTEyem0zMjQuNyA0MTUuNGM0IC4yIDggLjQgMTIgLjUtNC0uMi04LS4zLTEyLS41eiJ9fV19LG5hbWU6ImNocm9tZSIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDE1MTUzOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptLTYzLjYgNjU2Yy0xMDMgMC0xNjIuNC02OC42LTE2Mi40LTE4Mi42di00OUMyODYgMzczLjUgMzQ1LjQgMzA0IDQ0OC4zIDMwNGM4OC4zIDAgMTUyLjMgNTYuOSAxNTIuMyAxMzguMSAwIDIuNC0yIDQuNC00LjQgNC40aC01Mi42Yy00LjIgMC03LjYtMy4yLTgtNy40LTQtNDYuMS0zNy42LTc3LjYtODctNzcuNi02MS4xIDAtOTUuNiA0NS40LTk1LjYgMTI2Ljl2NDkuM2MwIDgwLjMgMzQuNSAxMjUuMSA5NS42IDEyNS4xIDQ5LjMgMCA4Mi44LTI5LjUgODctNzIuNC40LTQuMSAzLjgtNy4zIDgtNy4zaDUyLjdjMi40IDAgNC40IDIgNC40IDQuNCAwIDc3LjQtNjQuMyAxMzIuNS0xNTIuMyAxMzIuNXpNNzM4IDcwNC4xYzAgNC40LTMuNiA4LTggOGgtNTAuNGMtNC40IDAtOC0zLjYtOC04VjMxOS45YzAtNC40IDMuNi04IDgtOEg3MzBjNC40IDAgOCAzLjYgOCA4djM4NC4yeiJ9fV19LG5hbWU6ImNpLWNpcmNsZSIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw5NjkyNDpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyem0yMTgtNTcyLjFoLTUwLjRjLTQuNCAwLTggMy42LTggOHYzODQuMmMwIDQuNCAzLjYgOCA4IDhINzMwYzQuNCAwIDgtMy42IDgtOFYzMTkuOWMwLTQuNC0zLjYtOC04LTh6bS0yODEuNCA0OS42YzQ5LjUgMCA4My4xIDMxLjUgODcgNzcuNi40IDQuMiAzLjggNy40IDggNy40aDUyLjZjMi40IDAgNC40LTIgNC40LTQuNCAwLTgxLjItNjQtMTM4LjEtMTUyLjMtMTM4LjFDMzQ1LjQgMzA0IDI4NiAzNzMuNSAyODYgNDg4LjR2NDljMCAxMTQgNTkuNCAxODIuNiAxNjIuMyAxODIuNiA4OCAwIDE1Mi4zLTU1LjEgMTUyLjMtMTMyLjUgMC0yLjQtMi00LjQtNC40LTQuNGgtNTIuN2MtNC4yIDAtNy42IDMuMi04IDcuMy00LjIgNDMtMzcuNyA3Mi40LTg3IDcyLjQtNjEuMSAwLTk1LjYtNDQuOS05NS42LTEyNS4ydi00OS4zYy4xLTgxLjQgMzQuNi0xMjYuOCA5NS43LTEyNi44eiJ9fV19LG5hbWU6ImNpLWNpcmNsZSIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDU1Nzk4OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOmZ1bmN0aW9uKGEsbil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnoiLGZpbGw6YX19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDE0MGMtMjA1LjQgMC0zNzIgMTY2LjYtMzcyIDM3MnMxNjYuNiAzNzIgMzcyIDM3MiAzNzItMTY2LjYgMzcyLTM3Mi0xNjYuNi0zNzItMzcyLTM3MnptLTYzLjUgNTIyLjhjNDkuMyAwIDgyLjgtMjkuNCA4Ny03Mi40LjQtNC4xIDMuOC03LjMgOC03LjNoNTIuN2MyLjQgMCA0LjQgMiA0LjQgNC40IDAgNzcuNC02NC4zIDEzMi41LTE1Mi4zIDEzMi41QzM0NS40IDcyMCAyODYgNjUxLjQgMjg2IDUzNy40di00OUMyODYgMzczLjUgMzQ1LjQgMzA0IDQ0OC4zIDMwNGM4OC4zIDAgMTUyLjMgNTYuOSAxNTIuMyAxMzguMSAwIDIuNC0yIDQuNC00LjQgNC40aC01Mi42Yy00LjIgMC03LjYtMy4yLTgtNy40LTMuOS00Ni4xLTM3LjUtNzcuNi04Ny03Ny42LTYxLjEgMC05NS42IDQ1LjQtOTUuNyAxMjYuOHY0OS4zYzAgODAuMyAzNC41IDEyNS4yIDk1LjYgMTI1LjJ6TTczOCA3MDQuMWMwIDQuNC0zLjYgOC04IDhoLTUwLjRjLTQuNCAwLTgtMy42LTgtOFYzMTkuOWMwLTQuNCAzLjYtOCA4LThINzMwYzQuNCAwIDggMy42IDggOHYzODQuMnoiLGZpbGw6bn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNzMwIDMxMS45aC01MC40Yy00LjQgMC04IDMuNi04IDh2Mzg0LjJjMCA0LjQgMy42IDggOCA4SDczMGM0LjQgMCA4LTMuNiA4LThWMzE5LjljMC00LjQtMy42LTgtOC04em0tMjgxLjQgNDkuNmM0OS41IDAgODMuMSAzMS41IDg3IDc3LjYuNCA0LjIgMy44IDcuNCA4IDcuNGg1Mi42YzIuNCAwIDQuNC0yIDQuNC00LjQgMC04MS4yLTY0LTEzOC4xLTE1Mi4zLTEzOC4xQzM0NS40IDMwNCAyODYgMzczLjUgMjg2IDQ4OC40djQ5YzAgMTE0IDU5LjQgMTgyLjYgMTYyLjMgMTgyLjYgODggMCAxNTIuMy01NS4xIDE1Mi4zLTEzMi41IDAtMi40LTItNC40LTQuNC00LjRoLTUyLjdjLTQuMiAwLTcuNiAzLjItOCA3LjMtNC4yIDQzLTM3LjcgNzIuNC04NyA3Mi40LTYxLjEgMC05NS42LTQ0LjktOTUuNi0xMjUuMnYtNDkuM2MuMS04MS40IDM0LjYtMTI2LjggOTUuNy0xMjYuOHoiLGZpbGw6YX19XX19LG5hbWU6ImNpLWNpcmNsZSIsdGhlbWU6InR3b3RvbmUifTt0LmRlZmF1bHQ9ZX0sMzM1NDk6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnptMjE4LTU3Mi4xaC01MC40Yy00LjQgMC04IDMuNi04IDh2Mzg0LjJjMCA0LjQgMy42IDggOCA4SDczMGM0LjQgMCA4LTMuNiA4LThWMzE5LjljMC00LjQtMy42LTgtOC04em0tMjgxLjQgNDkuNmM0OS41IDAgODMuMSAzMS41IDg3IDc3LjYuNCA0LjIgMy44IDcuNCA4IDcuNGg1Mi42YzIuNCAwIDQuNC0yIDQuNC00LjQgMC04MS4yLTY0LTEzOC4xLTE1Mi4zLTEzOC4xQzM0NS40IDMwNCAyODYgMzczLjUgMjg2IDQ4OC40djQ5YzAgMTE0IDU5LjQgMTgyLjYgMTYyLjMgMTgyLjYgODggMCAxNTIuMy01NS4xIDE1Mi4zLTEzMi41IDAtMi40LTItNC40LTQuNC00LjRoLTUyLjdjLTQuMiAwLTcuNiAzLjItOCA3LjMtNC4yIDQzLTM3LjcgNzIuNC04NyA3Mi40LTYxLjEgMC05NS42LTQ0LjktOTUuNi0xMjUuMnYtNDkuM2MuMS04MS40IDM0LjYtMTI2LjggOTUuNy0xMjYuOHoifX1dfSxuYW1lOiJjaSIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDY1MzI4OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOmZ1bmN0aW9uKGEsbil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnoiLGZpbGw6YX19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDE0MGMtMjA1LjQgMC0zNzIgMTY2LjYtMzcyIDM3MnMxNjYuNiAzNzIgMzcyIDM3MiAzNzItMTY2LjYgMzcyLTM3Mi0xNjYuNi0zNzItMzcyLTM3MnptLTYzLjUgNTIyLjhjNDkuMyAwIDgyLjgtMjkuNCA4Ny03Mi40LjQtNC4xIDMuOC03LjMgOC03LjNoNTIuN2MyLjQgMCA0LjQgMiA0LjQgNC40IDAgNzcuNC02NC4zIDEzMi41LTE1Mi4zIDEzMi41QzM0NS40IDcyMCAyODYgNjUxLjQgMjg2IDUzNy40di00OUMyODYgMzczLjUgMzQ1LjQgMzA0IDQ0OC4zIDMwNGM4OC4zIDAgMTUyLjMgNTYuOSAxNTIuMyAxMzguMSAwIDIuNC0yIDQuNC00LjQgNC40aC01Mi42Yy00LjIgMC03LjYtMy4yLTgtNy40LTMuOS00Ni4xLTM3LjUtNzcuNi04Ny03Ny42LTYxLjEgMC05NS42IDQ1LjQtOTUuNyAxMjYuOHY0OS4zYzAgODAuMyAzNC41IDEyNS4yIDk1LjYgMTI1LjJ6TTczOCA3MDQuMWMwIDQuNC0zLjYgOC04IDhoLTUwLjRjLTQuNCAwLTgtMy42LTgtOFYzMTkuOWMwLTQuNCAzLjYtOCA4LThINzMwYzQuNCAwIDggMy42IDggOHYzODQuMnoiLGZpbGw6bn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNzMwIDMxMS45aC01MC40Yy00LjQgMC04IDMuNi04IDh2Mzg0LjJjMCA0LjQgMy42IDggOCA4SDczMGM0LjQgMCA4LTMuNiA4LThWMzE5LjljMC00LjQtMy42LTgtOC04em0tMjgxLjQgNDkuNmM0OS41IDAgODMuMSAzMS41IDg3IDc3LjYuNCA0LjIgMy44IDcuNCA4IDcuNGg1Mi42YzIuNCAwIDQuNC0yIDQuNC00LjQgMC04MS4yLTY0LTEzOC4xLTE1Mi4zLTEzOC4xQzM0NS40IDMwNCAyODYgMzczLjUgMjg2IDQ4OC40djQ5YzAgMTE0IDU5LjQgMTgyLjYgMTYyLjMgMTgyLjYgODggMCAxNTIuMy01NS4xIDE1Mi4zLTEzMi41IDAtMi40LTItNC40LTQuNC00LjRoLTUyLjdjLTQuMiAwLTcuNiAzLjItOCA3LjMtNC4yIDQzLTM3LjcgNzIuNC04NyA3Mi40LTYxLjEgMC05NS42LTQ0LjktOTUuNi0xMjUuMnYtNDkuM2MuMS04MS40IDM0LjYtMTI2LjggOTUuNy0xMjYuOHoiLGZpbGw6YX19XX19LG5hbWU6ImNpIix0aGVtZToidHdvdG9uZSJ9O3QuZGVmYXVsdD1lfSw2MzU4NzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6ImRlZnMiLGF0dHJzOnt9LGNoaWxkcmVuOlt7dGFnOiJzdHlsZSIsYXR0cnM6e319XX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04OTkuMSA4NjkuNmwtNTMtMzA1LjZIODY0YzE0LjQgMCAyNi0xMS42IDI2LTI2VjM0NmMwLTE0LjQtMTEuNi0yNi0yNi0yNkg2MThWMTM4YzAtMTQuNC0xMS42LTI2LTI2LTI2SDQzMmMtMTQuNCAwLTI2IDExLjYtMjYgMjZ2MTgySDE2MGMtMTQuNCAwLTI2IDExLjYtMjYgMjZ2MTkyYzAgMTQuNCAxMS42IDI2IDI2IDI2aDE3LjlsLTUzIDMwNS42YTI1Ljk1IDI1Ljk1IDAgMDAyNS42IDMwLjRoNzIzYzEuNSAwIDMtLjEgNC40LS40YTI1Ljg4IDI1Ljg4IDAgMDAyMS4yLTMwek0yMDQgMzkwaDI3MlYxODJoNzJ2MjA4aDI3MnYxMDRIMjA0VjM5MHptNDY4IDQ0MFY2NzRjMC00LjQtMy42LTgtOC04aC00OGMtNC40IDAtOCAzLjYtOCA4djE1Nkg0MTZWNjc0YzAtNC40LTMuNi04LTgtOGgtNDhjLTQuNCAwLTggMy42LTggOHYxNTZIMjAyLjhsNDUuMS0yNjBINzc2bDQ1LjEgMjYwSDY3MnoifX1dfSxuYW1lOiJjbGVhciIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDg4MzAyOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMTc2LjUgNTg1LjdsLTI4LjYgMzlhNy45OSA3Ljk5IDAgMDEtMTEuMiAxLjdMNDgzLjMgNTY5LjhhNy45MiA3LjkyIDAgMDEtMy4zLTYuNVYyODhjMC00LjQgMy42LTggOC04aDQ4LjFjNC40IDAgOCAzLjYgOCA4djI0Ny41bDE0Mi42IDEwMy4xYzMuNiAyLjUgNC40IDcuNSAxLjggMTEuMXoifX1dfSxuYW1lOiJjbG9jay1jaXJjbGUiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sNzgwMTY6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnoifX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02ODYuNyA2MzguNkw1NDQuMSA1MzUuNVYyODhjMC00LjQtMy42LTgtOC04SDQ4OGMtNC40IDAtOCAzLjYtOCA4djI3NS40YzAgMi42IDEuMiA1IDMuMyA2LjVsMTY1LjQgMTIwLjZjMy42IDIuNiA4LjYgMS44IDExLjItMS43bDI4LjYtMzljMi42LTMuNyAxLjgtOC43LTEuOC0xMS4yeiJ9fV19LG5hbWU6ImNsb2NrLWNpcmNsZSIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDg4NzY3OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOmZ1bmN0aW9uKGEsbil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnoiLGZpbGw6YX19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDE0MGMtMjA1LjQgMC0zNzIgMTY2LjYtMzcyIDM3MnMxNjYuNiAzNzIgMzcyIDM3MiAzNzItMTY2LjYgMzcyLTM3Mi0xNjYuNi0zNzItMzcyLTM3MnptMTc2LjUgNTA5LjdsLTI4LjYgMzlhNy45OSA3Ljk5IDAgMDEtMTEuMiAxLjdMNDgzLjMgNTY5LjhhNy45MiA3LjkyIDAgMDEtMy4zLTYuNVYyODhjMC00LjQgMy42LTggOC04aDQ4LjFjNC40IDAgOCAzLjYgOCA4djI0Ny41bDE0Mi42IDEwMy4xYzMuNiAyLjUgNC40IDcuNSAxLjggMTEuMXoiLGZpbGw6bn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNjg2LjcgNjM4LjZMNTQ0LjEgNTM1LjVWMjg4YzAtNC40LTMuNi04LTgtOEg0ODhjLTQuNCAwLTggMy42LTggOHYyNzUuM2MwIDIuNiAxLjIgNSAzLjMgNi41bDE2NS40IDEyMC42YzMuNiAyLjYgOC42IDEuOSAxMS4yLTEuN2wyOC42LTM5YzIuNi0zLjYgMS44LTguNi0xLjgtMTEuMXoiLGZpbGw6YX19XX19LG5hbWU6ImNsb2NrLWNpcmNsZSIsdGhlbWU6InR3b3RvbmUifTt0LmRlZmF1bHQ9ZX0sNjczMDM6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7ImZpbGwtcnVsZSI6ImV2ZW5vZGQiLHZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRjMjQ3LjQgMCA0NDggMjAwLjYgNDQ4IDQ0OFM3NTkuNCA5NjAgNTEyIDk2MCA2NCA3NTkuNCA2NCA1MTIgMjY0LjYgNjQgNTEyIDY0em0xMjcuOTggMjc0LjgyaC0uMDRsLS4wOC4wNkw1MTIgNDY2Ljc1IDM4NC4xNCAzMzguODhjLS4wNC0uMDUtLjA2LS4wNi0uMDgtLjA2YS4xMi4xMiAwIDAwLS4wNyAwYy0uMDMgMC0uMDUuMDEtLjA5LjA1bC00NS4wMiA0NS4wMmEuMi4yIDAgMDAtLjA1LjA5LjEyLjEyIDAgMDAwIC4wN3YuMDJhLjI3LjI3IDAgMDAuMDYuMDZMNDY2Ljc1IDUxMiAzMzguODggNjM5Ljg2Yy0uMDUuMDQtLjA2LjA2LS4wNi4wOGEuMTIuMTIgMCAwMDAgLjA3YzAgLjAzLjAxLjA1LjA1LjA5bDQ1LjAyIDQ1LjAyYS4yLjIgMCAwMC4wOS4wNS4xMi4xMiAwIDAwLjA3IDBjLjAyIDAgLjA0LS4wMS4wOC0uMDVMNTEyIDU1Ny4yNWwxMjcuODYgMTI3Ljg3Yy4wNC4wNC4wNi4wNS4wOC4wNWEuMTIuMTIgMCAwMC4wNyAwYy4wMyAwIC4wNS0uMDEuMDktLjA1bDQ1LjAyLTQ1LjAyYS4yLjIgMCAwMC4wNS0uMDkuMTIuMTIgMCAwMDAtLjA3di0uMDJhLjI3LjI3IDAgMDAtLjA1LS4wNkw1NTcuMjUgNTEybDEyNy44Ny0xMjcuODZjLjA0LS4wNC4wNS0uMDYuMDUtLjA4YS4xMi4xMiAwIDAwMC0uMDdjMC0uMDMtLjAxLS4wNS0uMDUtLjA5bC00NS4wMi00NS4wMmEuMi4yIDAgMDAtLjA5LS4wNS4xMi4xMiAwIDAwLS4wNyAweiJ9fV19LG5hbWU6ImNsb3NlLWNpcmNsZSIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw3NzM4NDpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnsiZmlsbC1ydWxlIjoiZXZlbm9kZCIsdmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NGMyNDcuNCAwIDQ0OCAyMDAuNiA0NDggNDQ4Uzc1OS40IDk2MCA1MTIgOTYwIDY0IDc1OS40IDY0IDUxMiAyNjQuNiA2NCA1MTIgNjR6bTAgNzZjLTIwNS40IDAtMzcyIDE2Ni42LTM3MiAzNzJzMTY2LjYgMzcyIDM3MiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzItMTY2LjYtMzcyLTM3Mi0zNzJ6bTEyOC4wMSAxOTguODNjLjAzIDAgLjA1LjAxLjA5LjA2bDQ1LjAyIDQ1LjAxYS4yLjIgMCAwMS4wNS4wOS4xMi4xMiAwIDAxMCAuMDdjMCAuMDItLjAxLjA0LS4wNS4wOEw1NTcuMjUgNTEybDEyNy44NyAxMjcuODZhLjI3LjI3IDAgMDEuMDUuMDZ2LjAyYS4xMi4xMiAwIDAxMCAuMDdjMCAuMDMtLjAxLjA1LS4wNS4wOWwtNDUuMDIgNDUuMDJhLjIuMiAwIDAxLS4wOS4wNS4xMi4xMiAwIDAxLS4wNyAwYy0uMDIgMC0uMDQtLjAxLS4wOC0uMDVMNTEyIDU1Ny4yNSAzODQuMTQgNjg1LjEyYy0uMDQuMDQtLjA2LjA1LS4wOC4wNWEuMTIuMTIgMCAwMS0uMDcgMGMtLjAzIDAtLjA1LS4wMS0uMDktLjA1bC00NS4wMi00NS4wMmEuMi4yIDAgMDEtLjA1LS4wOS4xMi4xMiAwIDAxMC0uMDdjMC0uMDIuMDEtLjA0LjA2LS4wOEw0NjYuNzUgNTEyIDMzOC44OCAzODQuMTRhLjI3LjI3IDAgMDEtLjA1LS4wNmwtLjAxLS4wMmEuMTIuMTIgMCAwMTAtLjA3YzAtLjAzLjAxLS4wNS4wNS0uMDlsNDUuMDItNDUuMDJhLjIuMiAwIDAxLjA5LS4wNS4xMi4xMiAwIDAxLjA3IDBjLjAyIDAgLjA0LjAxLjA4LjA2TDUxMiA0NjYuNzVsMTI3Ljg2LTEyNy44NmMuMDQtLjA1LjA2LS4wNi4wOC0uMDZhLjEyLjEyIDAgMDEuMDcgMHoifX1dfSxuYW1lOiJjbG9zZS1jaXJjbGUiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw2ODY5MDpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjpmdW5jdGlvbihhLG4pe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6IixmaWxsOmF9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiAxNDBjLTIwNS40IDAtMzcyIDE2Ni42LTM3MiAzNzJzMTY2LjYgMzcyIDM3MiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzItMTY2LjYtMzcyLTM3Mi0zNzJ6bTE3MS44IDUyNy4xYzEuMiAxLjUgMS45IDMuMyAxLjkgNS4yIDAgNC41LTMuNiA4LTggOGwtNjYtLjMtOTkuMy0xMTguNC05OS4zIDExOC41LTY2LjEuM2MtNC40IDAtOC0zLjYtOC04IDAtMS45LjctMy43IDEuOS01LjJMNDcxIDUxMi4zbC0xMzAuMS0xNTVhOC4zMiA4LjMyIDAgMDEtMS45LTUuMmMwLTQuNSAzLjYtOCA4LThsNjYuMS4zIDk5LjMgMTE4LjQgOTkuNC0xMTguNSA2Ni0uM2M0LjQgMCA4IDMuNiA4IDggMCAxLjktLjYgMy44LTEuOCA1LjJsLTEzMC4xIDE1NSAxMjkuOSAxNTQuOXoiLGZpbGw6bn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNjg1LjggMzUyYzAtNC40LTMuNi04LTgtOGwtNjYgLjMtOTkuNCAxMTguNS05OS4zLTExOC40LTY2LjEtLjNjLTQuNCAwLTggMy41LTggOCAwIDEuOS43IDMuNyAxLjkgNS4ybDEzMC4xIDE1NS0xMzAuMSAxNTQuOWE4LjMyIDguMzIgMCAwMC0xLjkgNS4yYzAgNC40IDMuNiA4IDggOGw2Ni4xLS4zIDk5LjMtMTE4LjVMNjExLjcgNjgwbDY2IC4zYzQuNCAwIDgtMy41IDgtOCAwLTEuOS0uNy0zLjctMS45LTUuMkw1NTMuOSA1MTIuMmwxMzAuMS0xNTVjMS4yLTEuNCAxLjgtMy4zIDEuOC01LjJ6IixmaWxsOmF9fV19fSxuYW1lOiJjbG9zZS1jaXJjbGUiLHRoZW1lOiJ0d290b25lIn07dC5kZWZhdWx0PWV9LDc5MjAzOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6eyJmaWxsLXJ1bGUiOiJldmVub2RkIix2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNzk5Ljg2IDE2Ni4zMWMuMDIgMCAuMDQuMDIuMDguMDZsNTcuNjkgNTcuN2MuMDQuMDMuMDUuMDUuMDYuMDhhLjEyLjEyIDAgMDEwIC4wNmMwIC4wMy0uMDIuMDUtLjA2LjA5TDU2OS45MyA1MTJsMjg3LjcgMjg3LjdjLjA0LjA0LjA1LjA2LjA2LjA5YS4xMi4xMiAwIDAxMCAuMDdjMCAuMDItLjAyLjA0LS4wNi4wOGwtNTcuNyA1Ny42OWMtLjAzLjA0LS4wNS4wNS0uMDcuMDZhLjEyLjEyIDAgMDEtLjA3IDBjLS4wMyAwLS4wNS0uMDItLjA5LS4wNkw1MTIgNTY5LjkzbC0yODcuNyAyODcuN2MtLjA0LjA0LS4wNi4wNS0uMDkuMDZhLjEyLjEyIDAgMDEtLjA3IDBjLS4wMiAwLS4wNC0uMDItLjA4LS4wNmwtNTcuNjktNTcuN2MtLjA0LS4wMy0uMDUtLjA1LS4wNi0uMDdhLjEyLjEyIDAgMDEwLS4wN2MwLS4wMy4wMi0uMDUuMDYtLjA5TDQ1NC4wNyA1MTJsLTI4Ny43LTI4Ny43Yy0uMDQtLjA0LS4wNS0uMDYtLjA2LS4wOWEuMTIuMTIgMCAwMTAtLjA3YzAtLjAyLjAyLS4wNC4wNi0uMDhsNTcuNy01Ny42OWMuMDMtLjA0LjA1LS4wNS4wNy0uMDZhLjEyLjEyIDAgMDEuMDcgMGMuMDMgMCAuMDUuMDIuMDkuMDZMNTEyIDQ1NC4wN2wyODcuNy0yODcuN2MuMDQtLjA0LjA2LS4wNS4wOS0uMDZhLjEyLjEyIDAgMDEuMDcgMHoifX1dfSxuYW1lOiJjbG9zZSIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDkyMjkxOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6eyJmaWxsLXJ1bGUiOiJldmVub2RkIix2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDExMmMxNy43IDAgMzIgMTQuMyAzMiAzMnY3MzZjMCAxNy43LTE0LjMgMzItMzIgMzJIMTQ0Yy0xNy43IDAtMzItMTQuMy0zMi0zMlYxNDRjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTYzOS45OCAzMzguODJoLS4wNGwtLjA4LjA2TDUxMiA0NjYuNzUgMzg0LjE0IDMzOC44OGMtLjA0LS4wNS0uMDYtLjA2LS4wOC0uMDZhLjEyLjEyIDAgMDAtLjA3IDBjLS4wMyAwLS4wNS4wMS0uMDkuMDVsLTQ1LjAyIDQ1LjAyYS4yLjIgMCAwMC0uMDUuMDkuMTIuMTIgMCAwMDAgLjA3di4wMmEuMjcuMjcgMCAwMC4wNi4wNkw0NjYuNzUgNTEyIDMzOC44OCA2MzkuODZjLS4wNS4wNC0uMDYuMDYtLjA2LjA4YS4xMi4xMiAwIDAwMCAuMDdjMCAuMDMuMDEuMDUuMDUuMDlsNDUuMDIgNDUuMDJhLjIuMiAwIDAwLjA5LjA1LjEyLjEyIDAgMDAuMDcgMGMuMDIgMCAuMDQtLjAxLjA4LS4wNUw1MTIgNTU3LjI1bDEyNy44NiAxMjcuODdjLjA0LjA0LjA2LjA1LjA4LjA1YS4xMi4xMiAwIDAwLjA3IDBjLjAzIDAgLjA1LS4wMS4wOS0uMDVsNDUuMDItNDUuMDJhLjIuMiAwIDAwLjA1LS4wOS4xMi4xMiAwIDAwMC0uMDd2LS4wMmEuMjcuMjcgMCAwMC0uMDUtLjA2TDU1Ny4yNSA1MTJsMTI3Ljg3LTEyNy44NmMuMDQtLjA0LjA1LS4wNi4wNS0uMDhhLjEyLjEyIDAgMDAwLS4wN2MwLS4wMy0uMDEtLjA1LS4wNS0uMDlsLTQ1LjAyLTQ1LjAyYS4yLjIgMCAwMC0uMDktLjA1LjEyLjEyIDAgMDAtLjA3IDB6In19XX0sbmFtZToiY2xvc2Utc3F1YXJlIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDYzMTgwOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6eyJmaWxsLXJ1bGUiOiJldmVub2RkIix2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDExMmMxNy43IDAgMzIgMTQuMyAzMiAzMnY3MzZjMCAxNy43LTE0LjMgMzItMzIgMzJIMTQ0Yy0xNy43IDAtMzItMTQuMy0zMi0zMlYxNDRjMC0xNy43IDE0LjMtMzIgMzItMzJ6bS00MCA3MkgxODR2NjU2aDY1NlYxODR6TTY0MC4wMSAzMzguODNjLjAzIDAgLjA1LjAxLjA5LjA2bDQ1LjAyIDQ1LjAxYS4yLjIgMCAwMS4wNS4wOS4xMi4xMiAwIDAxMCAuMDdjMCAuMDItLjAxLjA0LS4wNS4wOEw1NTcuMjUgNTEybDEyNy44NyAxMjcuODZhLjI3LjI3IDAgMDEuMDUuMDZ2LjAyYS4xMi4xMiAwIDAxMCAuMDdjMCAuMDMtLjAxLjA1LS4wNS4wOWwtNDUuMDIgNDUuMDJhLjIuMiAwIDAxLS4wOS4wNS4xMi4xMiAwIDAxLS4wNyAwYy0uMDIgMC0uMDQtLjAxLS4wOC0uMDVMNTEyIDU1Ny4yNSAzODQuMTQgNjg1LjEyYy0uMDQuMDQtLjA2LjA1LS4wOC4wNWEuMTIuMTIgMCAwMS0uMDcgMGMtLjAzIDAtLjA1LS4wMS0uMDktLjA1bC00NS4wMi00NS4wMmEuMi4yIDAgMDEtLjA1LS4wOS4xMi4xMiAwIDAxMC0uMDdjMC0uMDIuMDEtLjA0LjA2LS4wOEw0NjYuNzUgNTEyIDMzOC44OCAzODQuMTRhLjI3LjI3IDAgMDEtLjA1LS4wNmwtLjAxLS4wMmEuMTIuMTIgMCAwMTAtLjA3YzAtLjAzLjAxLS4wNS4wNS0uMDlsNDUuMDItNDUuMDJhLjIuMiAwIDAxLjA5LS4wNS4xMi4xMiAwIDAxLjA3IDBjLjAyIDAgLjA0LjAxLjA4LjA2TDUxMiA0NjYuNzVsMTI3Ljg2LTEyNy44NmMuMDQtLjA1LjA2LS4wNi4wOC0uMDZhLjEyLjEyIDAgMDEuMDcgMHoifX1dfSxuYW1lOiJjbG9zZS1zcXVhcmUiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw2MTk3OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOmZ1bmN0aW9uKGEsbil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6IixmaWxsOmF9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTE4NCA4NDBoNjU2VjE4NEgxODR2NjU2em0xNjMuOS00NzMuOUE3Ljk1IDcuOTUgMCAwMTM1NCAzNTNoNTguOWM0LjcgMCA5LjIgMi4xIDEyLjMgNS43TDUxMiA0NjIuMmw4Ni44LTEwMy41YzMtMy42IDcuNS01LjcgMTIuMy01LjdINjcwYzYuOCAwIDEwLjUgNy45IDYuMSAxMy4xTDU1My44IDUxMmwxMjIuMyAxNDUuOWM0LjQgNS4yLjcgMTMuMS02LjEgMTMuMWgtNTguOWMtNC43IDAtOS4yLTIuMS0xMi4zLTUuN0w1MTIgNTYxLjhsLTg2LjggMTAzLjVjLTMgMy42LTcuNSA1LjctMTIuMyA1LjdIMzU0Yy02LjggMC0xMC41LTcuOS02LjEtMTMuMUw0NzAuMiA1MTIgMzQ3LjkgMzY2LjF6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTM1NCA2NzFoNTguOWM0LjggMCA5LjMtMi4xIDEyLjMtNS43TDUxMiA1NjEuOGw4Ni44IDEwMy41YzMuMSAzLjYgNy42IDUuNyAxMi4zIDUuN0g2NzBjNi44IDAgMTAuNS03LjkgNi4xLTEzLjFMNTUzLjggNTEybDEyMi4zLTE0NS45YzQuNC01LjIuNy0xMy4xLTYuMS0xMy4xaC01OC45Yy00LjggMC05LjMgMi4xLTEyLjMgNS43TDUxMiA0NjIuMmwtODYuOC0xMDMuNWMtMy4xLTMuNi03LjYtNS43LTEyLjMtNS43SDM1NGMtNi44IDAtMTAuNSA3LjktNi4xIDEzLjFMNDcwLjIgNTEyIDM0Ny45IDY1Ny45QTcuOTUgNy45NSAwIDAwMzU0IDY3MXoiLGZpbGw6YX19XX19LG5hbWU6ImNsb3NlLXNxdWFyZSIsdGhlbWU6InR3b3RvbmUifTt0LmRlZmF1bHQ9ZX0sOTU3NjY6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTYyNCA3MDYuM2gtNzQuMVY0NjRjMC00LjQtMy42LTgtOC04aC02MGMtNC40IDAtOCAzLjYtOCA4djI0Mi4zSDQwMGMtNi43IDAtMTAuNCA3LjctNi4zIDEyLjlsMTEyIDE0MS43YTggOCAwIDAwMTIuNiAwbDExMi0xNDEuN2M0LjEtNS4yLjQtMTIuOS02LjMtMTIuOXoifX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04MTEuNCAzNjYuN0M3NjUuNiAyNDUuOSA2NDguOSAxNjAgNTEyLjIgMTYwUzI1OC44IDI0NS44IDIxMyAzNjYuNkMxMjcuMyAzODkuMSA2NCA0NjcuMiA2NCA1NjBjMCAxMTAuNSA4OS41IDIwMCAxOTkuOSAyMDBIMzA0YzQuNCAwIDgtMy42IDgtOHYtNjBjMC00LjQtMy42LTgtOC04aC00MC4xYy0zMy43IDAtNjUuNC0xMy40LTg5LTM3LjctMjMuNS0yNC4yLTM2LTU2LjgtMzQuOS05MC42LjktMjYuNCA5LjktNTEuMiAyNi4yLTcyLjEgMTYuNy0yMS4zIDQwLjEtMzYuOCA2Ni4xLTQzLjdsMzcuOS05LjkgMTMuOS0zNi42YzguNi0yMi44IDIwLjYtNDQuMSAzNS43LTYzLjRhMjQ1LjYgMjQ1LjYgMCAwMTUyLjQtNDkuOWM0MS4xLTI4LjkgODkuNS00NC4yIDE0MC00NC4yczk4LjkgMTUuMyAxNDAgNDQuMmMxOS45IDE0IDM3LjUgMzAuOCA1Mi40IDQ5LjkgMTUuMSAxOS4zIDI3LjEgNDAuNyAzNS43IDYzLjRsMTMuOCAzNi41IDM3LjggMTBDODQ2LjEgNDU0LjUgODg0IDUwMy44IDg4NCA1NjBjMCAzMy4xLTEyLjkgNjQuMy0zNi4zIDg3LjdhMTIzLjA3IDEyMy4wNyAwIDAxLTg3LjYgMzYuM0g3MjBjLTQuNCAwLTggMy42LTggOHY2MGMwIDQuNCAzLjYgOCA4IDhoNDAuMUM4NzAuNSA3NjAgOTYwIDY3MC41IDk2MCA1NjBjMC05Mi43LTYzLjEtMTcwLjctMTQ4LjYtMTkzLjN6In19XX0sbmFtZToiY2xvdWQtZG93bmxvYWQiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw5NDUzOTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODExLjQgNDE4LjdDNzY1LjYgMjk3LjkgNjQ4LjkgMjEyIDUxMi4yIDIxMlMyNTguOCAyOTcuOCAyMTMgNDE4LjZDMTI3LjMgNDQxLjEgNjQgNTE5LjEgNjQgNjEyYzAgMTEwLjUgODkuNSAyMDAgMTk5LjkgMjAwaDQ5Ni4yQzg3MC41IDgxMiA5NjAgNzIyLjUgOTYwIDYxMmMwLTkyLjctNjMuMS0xNzAuNy0xNDguNi0xOTMuM3oifX1dfSxuYW1lOiJjbG91ZCIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw5NDI6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTgxMS40IDQxOC43Qzc2NS42IDI5Ny45IDY0OC45IDIxMiA1MTIuMiAyMTJTMjU4LjggMjk3LjggMjEzIDQxOC42QzEyNy4zIDQ0MS4xIDY0IDUxOS4xIDY0IDYxMmMwIDExMC41IDg5LjUgMjAwIDE5OS45IDIwMGg0OTYuMkM4NzAuNSA4MTIgOTYwIDcyMi41IDk2MCA2MTJjMC05Mi43LTYzLjEtMTcwLjctMTQ4LjYtMTkzLjN6bTM2LjMgMjgxYTEyMy4wNyAxMjMuMDcgMCAwMS04Ny42IDM2LjNIMjYzLjljLTMzLjEgMC02NC4yLTEyLjktODcuNi0zNi4zQTEyMy4zIDEyMy4zIDAgMDExNDAgNjEyYzAtMjggOS4xLTU0LjMgMjYuMi03Ni4zYTEyNS43IDEyNS43IDAgMDE2Ni4xLTQzLjdsMzcuOS05LjkgMTMuOS0zNi42YzguNi0yMi44IDIwLjYtNDQuMSAzNS43LTYzLjRhMjQ1LjYgMjQ1LjYgMCAwMTUyLjQtNDkuOWM0MS4xLTI4LjkgODkuNS00NC4yIDE0MC00NC4yczk4LjkgMTUuMyAxNDAgNDQuMmMxOS45IDE0IDM3LjUgMzAuOCA1Mi40IDQ5LjkgMTUuMSAxOS4zIDI3LjEgNDAuNyAzNS43IDYzLjRsMTMuOCAzNi41IDM3LjggMTBjNTQuMyAxNC41IDkyLjEgNjMuOCA5Mi4xIDEyMCAwIDMzLjEtMTIuOSA2NC4zLTM2LjMgODcuN3oifX1dfSxuYW1lOiJjbG91ZCIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDI0NzczOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik03MDQgNDQ2SDMyMGMtNC40IDAtOCAzLjYtOCA4djQwMmMwIDQuNCAzLjYgOCA4IDhoMzg0YzQuNCAwIDgtMy42IDgtOFY0NTRjMC00LjQtMy42LTgtOC04em0tMzI4IDY0aDI3MnYxMTdIMzc2VjUxMHptMjcyIDI5MEgzNzZWNjgzaDI3MnYxMTd6In19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNDI0IDc0OGEzMiAzMiAwIDEwNjQgMCAzMiAzMiAwIDEwLTY0IDB6bTAtMTc4YTMyIDMyIDAgMTA2NCAwIDMyIDMyIDAgMTAtNjQgMHoifX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04MTEuNCAzNjguOUM3NjUuNiAyNDggNjQ4LjkgMTYyIDUxMi4yIDE2MlMyNTguOCAyNDcuOSAyMTMgMzY4LjhDMTI2LjkgMzkxLjUgNjMuNSA0NzAuMiA2NCA1NjMuNiA2NC42IDY2OCAxNDUuNiA3NTIuOSAyNDcuNiA3NjJjNC43LjQgOC43LTMuMyA4LjctOHYtNjAuNGMwLTQtMy03LjQtNy03LjktMjctMy40LTUyLjUtMTUuMi03Mi4xLTM0LjUtMjQtMjMuNS0zNy4yLTU1LjEtMzcuMi04OC42IDAtMjggOS4xLTU0LjQgMjYuMi03Ni40IDE2LjctMjEuNCA0MC4yLTM2LjkgNjYuMS00My43bDM3LjktMTAgMTMuOS0zNi43YzguNi0yMi44IDIwLjYtNDQuMiAzNS43LTYzLjUgMTQuOS0xOS4yIDMyLjYtMzYgNTIuNC01MCA0MS4xLTI4LjkgODkuNS00NC4yIDE0MC00NC4yczk4LjkgMTUuMyAxNDAgNDQuM2MxOS45IDE0IDM3LjUgMzAuOCA1Mi40IDUwIDE1LjEgMTkuMyAyNy4xIDQwLjcgMzUuNyA2My41bDEzLjggMzYuNiAzNy44IDEwYzU0LjIgMTQuNCA5Mi4xIDYzLjcgOTIuMSAxMjAgMCAzMy42LTEzLjIgNjUuMS0zNy4yIDg4LjYtMTkuNSAxOS4yLTQ0LjkgMzEuMS03MS45IDM0LjUtNCAuNS02LjkgMy45LTYuOSA3LjlWNzU0YzAgNC43IDQuMSA4LjQgOC44IDggMTAxLjctOS4yIDE4Mi41LTk0IDE4My4yLTE5OC4yLjYtOTMuNC02Mi43LTE3Mi4xLTE0OC42LTE5NC45eiJ9fV19LG5hbWU6ImNsb3VkLXNlcnZlciIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDM1NTU0OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04MTEuNCAzNjguOUM3NjUuNiAyNDggNjQ4LjkgMTYyIDUxMi4yIDE2MlMyNTguOCAyNDcuOSAyMTMgMzY4LjhDMTI2LjkgMzkxLjUgNjMuNSA0NzAuMiA2NCA1NjMuNiA2NC42IDY2OCAxNDUuNiA3NTIuOSAyNDcuNiA3NjJjNC43LjQgOC43LTMuMyA4LjctOHYtNjAuNGMwLTQtMy03LjQtNy03LjktMjctMy40LTUyLjUtMTUuMi03Mi4xLTM0LjUtMjQtMjMuNS0zNy4yLTU1LjEtMzcuMi04OC42IDAtMjggOS4xLTU0LjQgMjYuMi03Ni40IDE2LjctMjEuNCA0MC4yLTM2LjkgNjYuMS00My43bDM3LjktMTAgMTMuOS0zNi43YzguNi0yMi44IDIwLjYtNDQuMiAzNS43LTYzLjUgMTQuOS0xOS4yIDMyLjYtMzYgNTIuNC01MCA0MS4xLTI4LjkgODkuNS00NC4yIDE0MC00NC4yczk4LjkgMTUuMyAxNDAgNDQuM2MxOS45IDE0IDM3LjUgMzAuOCA1Mi40IDUwIDE1LjEgMTkuMyAyNy4xIDQwLjcgMzUuNyA2My41bDEzLjggMzYuNiAzNy44IDEwYzU0LjIgMTQuNCA5Mi4xIDYzLjcgOTIuMSAxMjAgMCAzMy42LTEzLjIgNjUuMS0zNy4yIDg4LjYtMTkuNSAxOS4yLTQ0LjkgMzEuMS03MS45IDM0LjUtNCAuNS02LjkgMy45LTYuOSA3LjlWNzU0YzAgNC43IDQuMSA4LjQgOC44IDggMTAxLjctOS4yIDE4Mi41LTk0IDE4My4yLTE5OC4yLjYtOTMuNC02Mi43LTE3Mi4xLTE0OC42LTE5NC45eiJ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTM3Ni45IDY1Ni40YzEuOC0zMy41IDE1LjctNjQuNyAzOS41LTg4LjYgMjUuNC0yNS41IDYwLTM5LjggOTYtMzkuOCAzNi4yIDAgNzAuMyAxNC4xIDk2IDM5LjggMS40IDEuNCAyLjcgMi44IDQuMSA0LjNsLTI1IDE5LjZhOCA4IDAgMDAzIDE0LjFsOTguMiAyNGM1IDEuMiA5LjktMi42IDkuOS03LjdsLjUtMTAxLjNjMC02LjctNy42LTEwLjUtMTIuOS02LjNMNjYzIDUzMi43Yy0zNi42LTQyLTkwLjQtNjguNi0xNTAuNS02OC42LTEwNy40IDAtMTk1IDg1LjEtMTk5LjQgMTkxLjctLjIgNC41IDMuNCA4LjMgOCA4LjNIMzY5YzQuMi0uMSA3LjctMy40IDcuOS03Ljd6TTcwMyA2NjRoLTQ3LjljLTQuMiAwLTcuNyAzLjMtOCA3LjYtMS44IDMzLjUtMTUuNyA2NC43LTM5LjUgODguNi0yNS40IDI1LjUtNjAgMzkuOC05NiAzOS44LTM2LjIgMC03MC4zLTE0LjEtOTYtMzkuOC0xLjQtMS40LTIuNy0yLjgtNC4xLTQuM2wyNS0xOS42YTggOCAwIDAwLTMtMTQuMWwtOTguMi0yNGMtNS0xLjItOS45IDIuNi05LjkgNy43bC0uNCAxMDEuNGMwIDYuNyA3LjYgMTAuNSAxMi45IDYuM2wyMy4yLTE4LjJjMzYuNiA0MiA5MC40IDY4LjYgMTUwLjUgNjguNiAxMDcuNCAwIDE5NS04NS4xIDE5OS40LTE5MS43LjItNC41LTMuNC04LjMtOC04LjN6In19XX0sbmFtZToiY2xvdWQtc3luYyIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDEwMTYzOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOmZ1bmN0aW9uKGEsbil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTc5MS45IDQ5MmwtMzcuOC0xMC0xMy44LTM2LjVjLTguNi0yMi43LTIwLjYtNDQuMS0zNS43LTYzLjRhMjQ1LjczIDI0NS43MyAwIDAwLTUyLjQtNDkuOWMtNDEuMS0yOC45LTg5LjUtNDQuMi0xNDAtNDQuMnMtOTguOSAxNS4zLTE0MCA0NC4yYTI0NS42IDI0NS42IDAgMDAtNTIuNCA0OS45IDI0MC40NyAyNDAuNDcgMCAwMC0zNS43IDYzLjRsLTEzLjkgMzYuNi0zNy45IDkuOWExMjUuNyAxMjUuNyAwIDAwLTY2LjEgNDMuN0ExMjMuMSAxMjMuMSAwIDAwMTQwIDYxMmMwIDMzLjEgMTIuOSA2NC4zIDM2LjMgODcuNyAyMy40IDIzLjQgNTQuNSAzNi4zIDg3LjYgMzYuM2g0OTYuMmMzMy4xIDAgNjQuMi0xMi45IDg3LjYtMzYuM0ExMjMuMyAxMjMuMyAwIDAwODg0IDYxMmMwLTU2LjItMzcuOC0xMDUuNS05Mi4xLTEyMHoiLGZpbGw6bn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODExLjQgNDE4LjdDNzY1LjYgMjk3LjkgNjQ4LjkgMjEyIDUxMi4yIDIxMlMyNTguOCAyOTcuOCAyMTMgNDE4LjZDMTI3LjMgNDQxLjEgNjQgNTE5LjEgNjQgNjEyYzAgMTEwLjUgODkuNSAyMDAgMTk5LjkgMjAwaDQ5Ni4yQzg3MC41IDgxMiA5NjAgNzIyLjUgOTYwIDYxMmMwLTkyLjctNjMuMS0xNzAuNy0xNDguNi0xOTMuM3ptMzYuMyAyODFhMTIzLjA3IDEyMy4wNyAwIDAxLTg3LjYgMzYuM0gyNjMuOWMtMzMuMSAwLTY0LjItMTIuOS04Ny42LTM2LjNBMTIzLjMgMTIzLjMgMCAwMTE0MCA2MTJjMC0yOCA5LjEtNTQuMyAyNi4yLTc2LjNhMTI1LjcgMTI1LjcgMCAwMTY2LjEtNDMuN2wzNy45LTkuOSAxMy45LTM2LjZjOC42LTIyLjggMjAuNi00NC4xIDM1LjctNjMuNGEyNDUuNiAyNDUuNiAwIDAxNTIuNC00OS45YzQxLjEtMjguOSA4OS41LTQ0LjIgMTQwLTQ0LjJzOTguOSAxNS4zIDE0MCA0NC4yYzE5LjkgMTQgMzcuNSAzMC44IDUyLjQgNDkuOSAxNS4xIDE5LjMgMjcuMSA0MC43IDM1LjcgNjMuNGwxMy44IDM2LjUgMzcuOCAxMGM1NC4zIDE0LjUgOTIuMSA2My44IDkyLjEgMTIwIDAgMzMuMS0xMi45IDY0LjMtMzYuMyA4Ny43eiIsZmlsbDphfX1dfX0sbmFtZToiY2xvdWQiLHRoZW1lOiJ0d290b25lIn07dC5kZWZhdWx0PWV9LDI4MzUxOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTguMyA0NTlhOCA4IDAgMDAtMTIuNiAwbC0xMTIgMTQxLjdhNy45OCA3Ljk4IDAgMDA2LjMgMTIuOWg3My45Vjg1NmMwIDQuNCAzLjYgOCA4IDhoNjBjNC40IDAgOC0zLjYgOC04VjYxMy43SDYyNGM2LjcgMCAxMC40LTcuNyA2LjMtMTIuOUw1MTguMyA0NTl6In19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODExLjQgMzY2LjdDNzY1LjYgMjQ1LjkgNjQ4LjkgMTYwIDUxMi4yIDE2MFMyNTguOCAyNDUuOCAyMTMgMzY2LjZDMTI3LjMgMzg5LjEgNjQgNDY3LjIgNjQgNTYwYzAgMTEwLjUgODkuNSAyMDAgMTk5LjkgMjAwSDMwNGM0LjQgMCA4LTMuNiA4LTh2LTYwYzAtNC40LTMuNi04LTgtOGgtNDAuMWMtMzMuNyAwLTY1LjQtMTMuNC04OS0zNy43LTIzLjUtMjQuMi0zNi01Ni44LTM0LjktOTAuNi45LTI2LjQgOS45LTUxLjIgMjYuMi03Mi4xIDE2LjctMjEuMyA0MC4xLTM2LjggNjYuMS00My43bDM3LjktOS45IDEzLjktMzYuNmM4LjYtMjIuOCAyMC42LTQ0LjEgMzUuNy02My40YTI0NS42IDI0NS42IDAgMDE1Mi40LTQ5LjljNDEuMS0yOC45IDg5LjUtNDQuMiAxNDAtNDQuMnM5OC45IDE1LjMgMTQwIDQ0LjJjMTkuOSAxNCAzNy41IDMwLjggNTIuNCA0OS45IDE1LjEgMTkuMyAyNy4xIDQwLjcgMzUuNyA2My40bDEzLjggMzYuNSAzNy44IDEwQzg0Ni4xIDQ1NC41IDg4NCA1MDMuOCA4ODQgNTYwYzAgMzMuMS0xMi45IDY0LjMtMzYuMyA4Ny43YTEyMy4wNyAxMjMuMDcgMCAwMS04Ny42IDM2LjNINzIwYy00LjQgMC04IDMuNi04IDh2NjBjMCA0LjQgMy42IDggOCA4aDQwLjFDODcwLjUgNzYwIDk2MCA2NzAuNSA5NjAgNTYwYzAtOTIuNy02My4xLTE3MC43LTE0OC42LTE5My4zeiJ9fV19LG5hbWU6ImNsb3VkLXVwbG9hZCIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDY4OTE1OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODggNjgwaC01NFY1NDBINTQ2di05MmgyMzhjOC44IDAgMTYtNy4yIDE2LTE2VjE2OGMwLTguOC03LjItMTYtMTYtMTZIMjQwYy04LjggMC0xNiA3LjItMTYgMTZ2MjY0YzAgOC44IDcuMiAxNiAxNiAxNmgyMzh2OTJIMTkwdjE0MGgtNTRjLTQuNCAwLTggMy42LTggOHYxNzZjMCA0LjQgMy42IDggOCA4aDE3NmM0LjQgMCA4LTMuNiA4LThWNjg4YzAtNC40LTMuNi04LTgtOGgtNTR2LTcyaDIyMHY3MmgtNTRjLTQuNCAwLTggMy42LTggOHYxNzZjMCA0LjQgMy42IDggOCA4aDE3NmM0LjQgMCA4LTMuNiA4LThWNjg4YzAtNC40LTMuNi04LTgtOGgtNTR2LTcyaDIyMHY3MmgtNTRjLTQuNCAwLTggMy42LTggOHYxNzZjMCA0LjQgMy42IDggOCA4aDE3NmM0LjQgMCA4LTMuNiA4LThWNjg4YzAtNC40LTMuNi04LTgtOHpNMjU2IDgwNS4zYzAgMS41LTEuMiAyLjctMi43IDIuN2gtNTguN2MtMS41IDAtMi43LTEuMi0yLjctMi43di01OC43YzAtMS41IDEuMi0yLjcgMi43LTIuN2g1OC43YzEuNSAwIDIuNyAxLjIgMi43IDIuN3Y1OC43em0yODggMGMwIDEuNS0xLjIgMi43LTIuNyAyLjdoLTU4LjdjLTEuNSAwLTIuNy0xLjItMi43LTIuN3YtNTguN2MwLTEuNSAxLjItMi43IDIuNy0yLjdoNTguN2MxLjUgMCAyLjcgMS4yIDIuNyAyLjd2NTguN3pNMjg4IDM4NFYyMTZoNDQ4djE2OEgyODh6bTU0NCA0MjEuM2MwIDEuNS0xLjIgMi43LTIuNyAyLjdoLTU4LjdjLTEuNSAwLTIuNy0xLjItMi43LTIuN3YtNTguN2MwLTEuNSAxLjItMi43IDIuNy0yLjdoNTguN2MxLjUgMCAyLjcgMS4yIDIuNyAyLjd2NTguN3pNMzYwIDMwMGE0MCA0MCAwIDEwODAgMCA0MCA0MCAwIDEwLTgwIDB6In19XX0sbmFtZToiY2x1c3RlciIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDM1MjA4OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTUxMy4xIDUxOC4xbC0xOTIgMTYxYy01LjIgNC40LTEzLjEuNy0xMy4xLTYuMXYtNjIuN2MwLTIuMyAxLjEtNC42IDIuOS02LjFMNDIwLjcgNTEybC0xMDkuOC05Mi4yYTcuNjMgNy42MyAwIDAxLTIuOS02LjFWMzUxYzAtNi44IDcuOS0xMC41IDEzLjEtNi4xbDE5MiAxNjAuOWMzLjkgMy4yIDMuOSA5LjEgMCAxMi4zek03MTYgNjczYzAgNC40LTMuNCA4LTcuNSA4aC0xODVjLTQuMSAwLTcuNS0zLjYtNy41LTh2LTQ4YzAtNC40IDMuNC04IDcuNS04aDE4NWM0LjEgMCA3LjUgMy42IDcuNSA4djQ4eiJ9fV19LG5hbWU6ImNvZGUiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sMzU4ODg6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxNiA2NzNjMCA0LjQgMy40IDggNy41IDhoMTg1YzQuMSAwIDcuNS0zLjYgNy41LTh2LTQ4YzAtNC40LTMuNC04LTcuNS04aC0xODVjLTQuMSAwLTcuNSAzLjYtNy41IDh2NDh6bS0xOTQuOSA2LjFsMTkyLTE2MWMzLjgtMy4yIDMuOC05LjEgMC0xMi4zbC0xOTItMTYwLjlBNy45NSA3Ljk1IDAgMDAzMDggMzUxdjYyLjdjMCAyLjQgMSA0LjYgMi45IDYuMUw0MjAuNyA1MTJsLTEwOS44IDkyLjJhOC4xIDguMSAwIDAwLTIuOSA2LjFWNjczYzAgNi44IDcuOSAxMC41IDEzLjEgNi4xek04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2eiJ9fV19LG5hbWU6ImNvZGUiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw3NTI5OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMjQzLjcgNTg5LjJMNTEyIDc5NCAyNjguMyA2NTMuMlYzNzEuOGwxMTAtNjMuNi0uNC0uMmguMkw1MTIgMjMxbDEzNCA3N2gtLjJsLS4zLjIgMTEwLjEgNjMuNnYyODEuNHpNMzA3LjkgNTM2LjdsODcuNiA0OS45VjY4MWw5Ni43IDU1LjlWNTI0LjhMMzA3LjkgNDE4LjR6bTIwMy45LTE1MS44TDQxOCAzMzFsLTkxLjEgNTIuNiAxODUuMiAxMDcgMTg1LjItMTA2LjktOTEuNC01Mi44em0yMCAzNTJsOTcuMy01Ni4ydi05NC4xbDg3LTQ5LjVWNDE4LjVMNTMxLjggNTI1eiJ9fV19LG5hbWU6ImNvZGUtc2FuZGJveC1jaXJjbGUiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sMjkzOTU6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTcwOS42IDIxMGwuNC0uMmguMkw1MTIgOTYgMzEzLjkgMjA5LjhoLS4ybC43LjNMMTUxLjUgMzA0djQxNkw1MTIgOTI4bDM2MC41LTIwOFYzMDRsLTE2Mi45LTk0ek00ODIuNyA4NDMuNkwzMzkuNiA3NjFWNjIxLjRMMjEwIDU0Ny44VjM3Mi45bDI3Mi43IDE1Ny4zdjMxMy40ek0yMzguMiAzMjEuNWwxMzQuNy03Ny44IDEzOC45IDc5LjcgMTM5LjEtNzkuOSAxMzUuMiA3OC0yNzMuOSAxNTgtMjc0LTE1OHpNODE0IDU0OC4zbC0xMjguOCA3My4xdjEzOS4xbC0xNDMuOSA4M1Y1MzAuNEw4MTQgMzczLjF2MTc1LjJ6In19XX0sbmFtZToiY29kZS1zYW5kYm94Iix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sMjEzNzM6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTMwNy45IDUzNi43bDg3LjYgNDkuOVY2ODFsOTYuNyA1NS45VjUyNC44TDMwNy45IDQxOC40ek04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTc1NS43IDY1My4yTDUxMiA3OTQgMjY4LjMgNjUzLjJWMzcxLjhsMTEwLTYzLjYtLjQtLjJoLjJMNTEyIDIzMWwxMzQgNzdoLS4ybC0uMy4yIDExMC4xIDYzLjZ2MjgxLjR6bS0yMjMuOSA4My43bDk3LjMtNTYuMnYtOTQuMWw4Ny00OS41VjQxOC41TDUzMS44IDUyNXptLTIwLTM1Mkw0MTggMzMxbC05MS4xIDUyLjYgMTg1LjIgMTA3IDE4NS4yLTEwNi45LTkxLjQtNTIuOHoifX1dfSxuYW1lOiJjb2RlLXNhbmRib3gtc3F1YXJlIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDY5NDY6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNzI4SDE4NFYxODRoNjU2djY1NnoiLGZpbGw6YX19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMTg0IDg0MGg2NTZWMTg0SDE4NHY2NTZ6bTMzOS41LTIyM2gxODVjNC4xIDAgNy41IDMuNiA3LjUgOHY0OGMwIDQuNC0zLjQgOC03LjUgOGgtMTg1Yy00LjEgMC03LjUtMy42LTcuNS04di00OGMwLTQuNCAzLjQtOCA3LjUtOHpNMzA4IDYxMC4zYzAtMi4zIDEuMS00LjYgMi45LTYuMUw0MjAuNyA1MTJsLTEwOS44LTkyLjJhNy42MyA3LjYzIDAgMDEtMi45LTYuMVYzNTFjMC02LjggNy45LTEwLjUgMTMuMS02LjFsMTkyIDE2MC45YzMuOSAzLjIgMy45IDkuMSAwIDEyLjNsLTE5MiAxNjFjLTUuMiA0LjQtMTMuMS43LTEzLjEtNi4xdi02Mi43eiIsZmlsbDpufX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0zMjEuMSA2NzkuMWwxOTItMTYxYzMuOS0zLjIgMy45LTkuMSAwLTEyLjNsLTE5Mi0xNjAuOUE3Ljk1IDcuOTUgMCAwMDMwOCAzNTF2NjIuN2MwIDIuNCAxIDQuNiAyLjkgNi4xTDQyMC43IDUxMmwtMTA5LjggOTIuMmE4LjEgOC4xIDAgMDAtMi45IDYuMVY2NzNjMCA2LjggNy45IDEwLjUgMTMuMSA2LjF6TTUxNiA2NzNjMCA0LjQgMy40IDggNy41IDhoMTg1YzQuMSAwIDcuNS0zLjYgNy41LTh2LTQ4YzAtNC40LTMuNC04LTcuNS04aC0xODVjLTQuMSAwLTcuNSAzLjYtNy41IDh2NDh6IixmaWxsOmF9fV19fSxuYW1lOiJjb2RlIix0aGVtZToidHdvdG9uZSJ9O3QuZGVmYXVsdD1lfSw3MjIwNTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNDg4LjEgNDE0LjdWMzAzLjRMMzAwLjkgNDI4bDgzLjYgNTUuOHptMjU0LjEgMTM3Ljd2LTc5LjhsLTU5LjggMzkuOXpNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTI3OCA1MzNjMCAxLjEtLjEgMi4xLS4yIDMuMSAwIC40LS4xLjctLjIgMWExNC4xNiAxNC4xNiAwIDAxLS44IDMuMmMtLjIuNi0uNCAxLjItLjYgMS43LS4yLjQtLjQuOC0uNSAxLjItLjMuNS0uNSAxLjEtLjggMS42LS4yLjQtLjQuNy0uNyAxLjEtLjMuNS0uNyAxLTEgMS41LS4zLjQtLjUuNy0uOCAxLS40LjQtLjguOS0xLjIgMS4zLS4zLjMtLjYuNi0xIC45LS40LjQtLjkuOC0xLjQgMS4xLS40LjMtLjcuNi0xLjEuOC0uMS4xLS4zLjItLjQuM0w1MjUuMiA3ODZjLTQgMi43LTguNiA0LTEzLjIgNC00LjcgMC05LjMtMS40LTEzLjMtNEwyNDQuNiA2MTYuOWMtLjEtLjEtLjMtLjItLjQtLjNsLTEuMS0uOGMtLjUtLjQtLjktLjctMS4zLTEuMS0uMy0uMy0uNi0uNi0xLS45LS40LS40LS44LS44LTEuMi0xLjNhNyA3IDAgMDEtLjgtMWMtLjQtLjUtLjctMS0xLTEuNS0uMi0uNC0uNS0uNy0uNy0xLjEtLjMtLjUtLjYtMS4xLS44LTEuNi0uMi0uNC0uNC0uOC0uNS0xLjItLjItLjYtLjQtMS4yLS42LTEuNy0uMS0uNC0uMy0uOC0uNC0xLjItLjItLjctLjMtMS4zLS40LTItLjEtLjMtLjEtLjctLjItMS0uMS0xLS4yLTIuMS0uMi0zLjFWNDI3LjljMC0xIC4xLTIuMS4yLTMuMS4xLS4zLjEtLjcuMi0xYTE0LjE2IDE0LjE2IDAgMDEuOC0zLjJjLjItLjYuNC0xLjIuNi0xLjcuMi0uNC40LS44LjUtMS4yLjItLjUuNS0xLjEuOC0xLjYuMi0uNC40LS43LjctMS4xLjYtLjkgMS4yLTEuNyAxLjgtMi41LjQtLjQuOC0uOSAxLjItMS4zLjMtLjMuNi0uNiAxLS45LjQtLjQuOS0uOCAxLjMtMS4xLjQtLjMuNy0uNiAxLjEtLjguMS0uMS4zLS4yLjQtLjNMNDk4LjcgMjM5YzgtNS4zIDE4LjUtNS4zIDI2LjUgMGwyNTQuMSAxNjkuMWMuMS4xLjMuMi40LjNsMS4xLjggMS40IDEuMWMuMy4zLjYuNiAxIC45LjQuNC44LjggMS4yIDEuMy43LjggMS4zIDEuNiAxLjggMi41LjIuNC41LjcuNyAxLjEuMy41LjYgMSAuOCAxLjYuMi40LjQuOC41IDEuMi4yLjYuNCAxLjIuNiAxLjcuMS40LjMuOC40IDEuMi4yLjcuMyAxLjMuNCAyIC4xLjMuMS43LjIgMSAuMSAxIC4yIDIuMS4yIDMuMVY1OTd6bS0yNTQuMSAxMy4zdjExMS4zTDcyMy4xIDU5N2wtODMuNi01NS44ek0yODEuOCA0NzIuNnY3OS44bDU5LjgtMzkuOXpNNTEyIDQ1Ni4xbC04NC41IDU2LjQgODQuNSA1Ni40IDg0LjUtNTYuNHpNNzIzLjEgNDI4TDUzNS45IDMwMy40djExMS4zbDEwMy42IDY5LjF6TTM4NC41IDU0MS4yTDMwMC45IDU5N2wxODcuMiAxMjQuNlY2MTAuM2wtMTAzLjYtNjkuMXoifX1dfSxuYW1lOiJjb2RlcGVuLWNpcmNsZSIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw4MzM0NjpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNDg4LjEgNDE0LjdWMzAzLjRMMzAwLjkgNDI4bDgzLjYgNTUuOHptMjU0LjEgMTM3Ljd2LTc5LjhsLTU5LjggMzkuOXpNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTI3OCA1MzNjMCAxLjEtLjEgMi4xLS4yIDMuMSAwIC40LS4xLjctLjIgMWExNC4xNiAxNC4xNiAwIDAxLS44IDMuMmMtLjIuNi0uNCAxLjItLjYgMS43LS4yLjQtLjQuOC0uNSAxLjItLjMuNS0uNSAxLjEtLjggMS42LS4yLjQtLjQuNy0uNyAxLjEtLjMuNS0uNyAxLTEgMS41LS4zLjQtLjUuNy0uOCAxLS40LjQtLjguOS0xLjIgMS4zLS4zLjMtLjYuNi0xIC45LS40LjQtLjkuOC0xLjQgMS4xLS40LjMtLjcuNi0xLjEuOC0uMS4xLS4zLjItLjQuM0w1MjUuMiA3ODZjLTQgMi43LTguNiA0LTEzLjIgNC00LjcgMC05LjMtMS40LTEzLjMtNEwyNDQuNiA2MTYuOWMtLjEtLjEtLjMtLjItLjQtLjNsLTEuMS0uOGMtLjUtLjQtLjktLjctMS4zLTEuMS0uMy0uMy0uNi0uNi0xLS45LS40LS40LS44LS44LTEuMi0xLjNhNyA3IDAgMDEtLjgtMWMtLjQtLjUtLjctMS0xLTEuNS0uMi0uNC0uNS0uNy0uNy0xLjEtLjMtLjUtLjYtMS4xLS44LTEuNi0uMi0uNC0uNC0uOC0uNS0xLjItLjItLjYtLjQtMS4yLS42LTEuNy0uMS0uNC0uMy0uOC0uNC0xLjItLjItLjctLjMtMS4zLS40LTItLjEtLjMtLjEtLjctLjItMS0uMS0xLS4yLTIuMS0uMi0zLjFWNDI3LjljMC0xIC4xLTIuMS4yLTMuMS4xLS4zLjEtLjcuMi0xYTE0LjE2IDE0LjE2IDAgMDEuOC0zLjJjLjItLjYuNC0xLjIuNi0xLjcuMi0uNC40LS44LjUtMS4yLjItLjUuNS0xLjEuOC0xLjYuMi0uNC40LS43LjctMS4xLjYtLjkgMS4yLTEuNyAxLjgtMi41LjQtLjQuOC0uOSAxLjItMS4zLjMtLjMuNi0uNiAxLS45LjQtLjQuOS0uOCAxLjMtMS4xLjQtLjMuNy0uNiAxLjEtLjguMS0uMS4zLS4yLjQtLjNMNDk4LjcgMjM5YzgtNS4zIDE4LjUtNS4zIDI2LjUgMGwyNTQuMSAxNjkuMWMuMS4xLjMuMi40LjNsMS4xLjggMS40IDEuMWMuMy4zLjYuNiAxIC45LjQuNC44LjggMS4yIDEuMy43LjggMS4zIDEuNiAxLjggMi41LjIuNC41LjcuNyAxLjEuMy41LjYgMSAuOCAxLjYuMi40LjQuOC41IDEuMi4yLjYuNCAxLjIuNiAxLjcuMS40LjMuOC40IDEuMi4yLjcuMyAxLjMuNCAyIC4xLjMuMS43LjIgMSAuMSAxIC4yIDIuMS4yIDMuMVY1OTd6bS0yNTQuMSAxMy4zdjExMS4zTDcyMy4xIDU5N2wtODMuNi01NS44ek0yODEuOCA0NzIuNnY3OS44bDU5LjgtMzkuOXpNNTEyIDQ1Ni4xbC04NC41IDU2LjQgODQuNSA1Ni40IDg0LjUtNTYuNHpNNzIzLjEgNDI4TDUzNS45IDMwMy40djExMS4zbDEwMy42IDY5LjF6TTM4NC41IDU0MS4yTDMwMC45IDU5N2wxODcuMiAxMjQuNlY2MTAuM2wtMTAzLjYtNjkuMXoifX1dfSxuYW1lOiJjb2RlcGVuLWNpcmNsZSIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDIxZTM6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkxMS43IDM4NS4zbC0uMy0xLjVjLS4yLTEtLjMtMS45LS42LTIuOS0uMi0uNi0uNC0xLjEtLjUtMS43LS4zLS44LS41LTEuNy0uOS0yLjUtLjItLjYtLjUtMS4xLS44LTEuNy0uNC0uOC0uOC0xLjUtMS4yLTIuMy0uMy0uNS0uNi0xLjEtMS0xLjYtLjgtMS4yLTEuNy0yLjQtMi42LTMuNi0uNS0uNi0xLjEtMS4zLTEuNy0xLjktLjQtLjUtLjktLjktMS40LTEuMy0uNi0uNi0xLjMtMS4xLTEuOS0xLjYtLjUtLjQtMS0uOC0xLjYtMS4yLS4yLS4xLS40LS4zLS42LS40TDUzMS4xIDExNy44YTM0LjMgMzQuMyAwIDAwLTM4LjEgMEwxMjcuMyAzNjEuM2MtLjIuMS0uNC4zLS42LjQtLjUuNC0xIC44LTEuNiAxLjItLjcuNS0xLjMgMS4xLTEuOSAxLjYtLjUuNC0uOS45LTEuNCAxLjMtLjYuNi0xLjIgMS4yLTEuNyAxLjktMSAxLjEtMS44IDIuMy0yLjYgMy42LS4zLjUtLjcgMS0xIDEuNi0uNC43LS44IDEuNS0xLjIgMi4zLS4zLjUtLjUgMS4xLS44IDEuNy0uMy44LS42IDEuNy0uOSAyLjUtLjIuNi0uNCAxLjEtLjUgMS43LS4yLjktLjQgMS45LS42IDIuOWwtLjMgMS41Yy0uMiAxLjUtLjMgMy0uMyA0LjV2MjQzLjVjMCAxLjUuMSAzIC4zIDQuNWwuMyAxLjUuNiAyLjljLjIuNi4zIDEuMS41IDEuNy4zLjkuNiAxLjcuOSAyLjUuMi42LjUgMS4xLjggMS43LjQuOC43IDEuNSAxLjIgMi4zLjMuNS42IDEuMSAxIDEuNi41LjcuOSAxLjQgMS41IDIuMWwxLjIgMS41Yy41LjYgMS4xIDEuMyAxLjcgMS45LjQuNS45LjkgMS40IDEuMy42LjYgMS4zIDEuMSAxLjkgMS42LjUuNCAxIC44IDEuNiAxLjIuMi4xLjQuMy42LjRMNDkzIDkwNS43YzUuNiAzLjggMTIuMyA1LjggMTkuMSA1LjggNi42IDAgMTMuMy0xLjkgMTkuMS01LjhsMzY1LjYtMjQzLjVjLjItLjEuNC0uMy42LS40LjUtLjQgMS0uOCAxLjYtMS4yLjctLjUgMS4zLTEuMSAxLjktMS42LjUtLjQuOS0uOSAxLjQtMS4zLjYtLjYgMS4yLTEuMiAxLjctMS45bDEuMi0xLjUgMS41LTIuMWMuMy0uNS43LTEgMS0xLjYuNC0uOC44LTEuNSAxLjItMi4zLjMtLjUuNS0xLjEuOC0xLjcuMy0uOC42LTEuNy45LTIuNS4yLS41LjQtMS4xLjUtMS43LjMtLjkuNC0xLjkuNi0yLjlsLjMtMS41Yy4yLTEuNS4zLTMgLjMtNC41VjM4OS44Yy0uMy0xLjUtLjQtMy0uNi00LjV6TTU0Ni40IDIxMC41bDI2OS40IDE3OS40LTEyMC4zIDgwLjQtMTQ5LTk5LjZWMjEwLjV6bS02OC44IDB2MTYwLjJsLTE0OSA5OS42LTEyMC4zLTgwLjQgMjY5LjMtMTc5LjR6TTE4MC43IDQ1NC4xbDg2IDU3LjUtODYgNTcuNXYtMTE1em0yOTYuOSAzNTguNUwyMDguMyA2MzMuMmwxMjAuMy04MC40IDE0OSA5OS42djE2MC4yek01MTIgNTkyLjhsLTEyMS42LTgxLjJMNTEyIDQzMC4zbDEyMS42IDgxLjJMNTEyIDU5Mi44em0zNC40IDIxOS44VjY1Mi40bDE0OS05OS42IDEyMC4zIDgwLjQtMjY5LjMgMTc5LjR6TTg0My4zIDU2OWwtODYtNTcuNSA4Ni01Ny41djExNXoifX1dfSxuYW1lOiJjb2RlcGVuIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sODU1NTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNzIzLjEgNDI4TDUzNS45IDMwMy40djExMS4zbDEwMy42IDY5LjF6TTUxMiA0NTYuMWwtODQuNSA1Ni40IDg0LjUgNTYuNCA4NC41LTU2LjR6bTIzLjkgMTU0LjJ2MTExLjNMNzIzLjEgNTk3bC04My42LTU1Ljh6bS0xNTEuNC02OS4xTDMwMC45IDU5N2wxODcuMiAxMjQuNlY2MTAuM2wtMTAzLjYtNjkuMXpNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tOTAgNDg1YzAgMS4xLS4xIDIuMS0uMiAzLjEgMCAuNC0uMS43LS4yIDFhMTQuMTYgMTQuMTYgMCAwMS0uOCAzLjJjLS4yLjYtLjQgMS4yLS42IDEuNy0uMi40LS40LjgtLjUgMS4yLS4zLjUtLjUgMS4xLS44IDEuNi0uMi40LS40LjctLjcgMS4xLS4zLjUtLjcgMS0xIDEuNS0uMy40LS41LjctLjggMS0uNC40LS44LjktMS4yIDEuMy0uMy4zLS42LjYtMSAuOS0uNC40LS45LjgtMS40IDEuMS0uNC4zLS43LjYtMS4xLjgtLjEuMS0uMy4yLS40LjNMNTI1LjIgNzg2Yy00IDIuNy04LjYgNC0xMy4yIDQtNC43IDAtOS4zLTEuNC0xMy4zLTRMMjQ0LjYgNjE2LjljLS4xLS4xLS4zLS4yLS40LS4zbC0xLjEtLjhjLS41LS40LS45LS43LTEuMy0xLjEtLjMtLjMtLjYtLjYtMS0uOS0uNC0uNC0uOC0uOC0xLjItMS4zYTcgNyAwIDAxLS44LTFjLS40LS41LS43LTEtMS0xLjUtLjItLjQtLjUtLjctLjctMS4xLS4zLS41LS42LTEuMS0uOC0xLjYtLjItLjQtLjQtLjgtLjUtMS4yLS4yLS42LS40LTEuMi0uNi0xLjctLjEtLjQtLjMtLjgtLjQtMS4yLS4yLS43LS4zLTEuMy0uNC0yLS4xLS4zLS4xLS43LS4yLTEtLjEtMS0uMi0yLjEtLjItMy4xVjQyNy45YzAtMSAuMS0yLjEuMi0zLjEuMS0uMy4xLS43LjItMWExNC4xNiAxNC4xNiAwIDAxLjgtMy4yYy4yLS42LjQtMS4yLjYtMS43LjItLjQuNC0uOC41LTEuMi4yLS41LjUtMS4xLjgtMS42LjItLjQuNC0uNy43LTEuMS42LS45IDEuMi0xLjcgMS44LTIuNS40LS40LjgtLjkgMS4yLTEuMy4zLS4zLjYtLjYgMS0uOS40LS40LjktLjggMS4zLTEuMS40LS4zLjctLjYgMS4xLS44LjEtLjEuMy0uMi40LS4zTDQ5OC43IDIzOWM4LTUuMyAxOC41LTUuMyAyNi41IDBsMjU0LjEgMTY5LjFjLjEuMS4zLjIuNC4zbDEuMS44IDEuNCAxLjFjLjMuMy42LjYgMSAuOS40LjQuOC44IDEuMiAxLjMuNy44IDEuMyAxLjYgMS44IDIuNS4yLjQuNS43LjcgMS4xLjMuNS42IDEgLjggMS42LjIuNC40LjguNSAxLjIuMi42LjQgMS4yLjYgMS43LjEuNC4zLjguNCAxLjIuMi43LjMgMS4zLjQgMiAuMS4zLjEuNy4yIDEgLjEgMSAuMiAyLjEuMiAzLjFWNTk3em0tNDcuOC00NC42di03OS44bC01OS44IDM5Ljl6bS00NjAuNC03OS44djc5LjhsNTkuOC0zOS45em0yMDYuMy01Ny45VjMwMy40TDMwMC45IDQyOGw4My42IDU1Ljh6In19XX0sbmFtZToiY29kZXBlbi1zcXVhcmUiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sMjA5MDA6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiMCAwIDEwMjQgMTAyNCIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTI3NSAyODFjMTkuOSAwIDM2LTE2LjEgMzYtMzZWMzZjMC0xOS45LTE2LjEtMzYtMzYtMzZzLTM2IDE2LjEtMzYgMzZ2MjA5YzAgMTkuOSAxNi4xIDM2IDM2IDM2em02MTMgMTQ0SDc2OGMwLTM5LjgtMzIuMi03Mi03Mi03MkgyMDBjLTM5LjggMC03MiAzMi4yLTcyIDcydjI0OGMwIDMuNC4yIDYuNy43IDkuOS0uNSA3LS43IDE0LS43IDIxLjEgMCAxNzYuNyAxNDMuMyAzMjAgMzIwIDMyMCAxNjAuMSAwIDI5Mi43LTExNy41IDMxNi4zLTI3MUg4ODhjMzkuOCAwIDcyLTMyLjIgNzItNzJWNDk3YzAtMzkuOC0zMi4yLTcyLTcyLTcyek02OTYgNjgxaC0xLjFjLjcgNy42IDEuMSAxNS4yIDEuMSAyMyAwIDEzNy0xMTEgMjQ4LTI0OCAyNDhTMjAwIDg0MSAyMDAgNzA0YzAtNy44LjQtMTUuNCAxLjEtMjNIMjAwVjQyNWg0OTZ2MjU2em0xOTItOEg3NzZWNDk3aDExMnYxNzZ6TTYxMyAyODFjMTkuOSAwIDM2LTE2LjEgMzYtMzZWMzZjMC0xOS45LTE2LjEtMzYtMzYtMzZzLTM2IDE2LjEtMzYgMzZ2MjA5YzAgMTkuOSAxNi4xIDM2IDM2IDM2em0tMTcwIDBjMTkuOSAwIDM2LTE2LjEgMzYtMzZWMzZjMC0xOS45LTE2LjEtMzYtMzYtMzZzLTM2IDE2LjEtMzYgMzZ2MjA5YzAgMTkuOSAxNi4xIDM2IDM2IDM2eiJ9fV19LG5hbWU6ImNvZmZlZSIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDUwNzIwOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NDAgODM2SDE4NGMtNC40IDAtOCAzLjYtOCA4djYwYzAgNC40IDMuNiA4IDggOGg2NTZjNC40IDAgOC0zLjYgOC04di02MGMwLTQuNC0zLjYtOC04LTh6bTAtNzI0SDE4NGMtNC40IDAtOCAzLjYtOCA4djYwYzAgNC40IDMuNiA4IDggOGg2NTZjNC40IDAgOC0zLjYgOC04di02MGMwLTQuNC0zLjYtOC04LTh6TTYxMC44IDM3OGM2IDAgOS40LTcgNS43LTExLjdMNTE1LjcgMjM4LjdhNy4xNCA3LjE0IDAgMDAtMTEuMyAwTDQwMy42IDM2Ni4zYTcuMjMgNy4yMyAwIDAwNS43IDExLjdINDc2djI2OGgtNjIuOGMtNiAwLTkuNCA3LTUuNyAxMS43bDEwMC44IDEyNy41YzIuOSAzLjcgOC41IDMuNyAxMS4zIDBsMTAwLjgtMTI3LjVjMy43LTQuNy40LTExLjctNS43LTExLjdINTQ4VjM3OGg2Mi44eiJ9fV19LG5hbWU6ImNvbHVtbi1oZWlnaHQiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSwxODExOTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMTgwIDE3NmgtNjBjLTQuNCAwLTggMy42LTggOHY2NTZjMCA0LjQgMy42IDggOCA4aDYwYzQuNCAwIDgtMy42IDgtOFYxODRjMC00LjQtMy42LTgtOC04em03MjQgMGgtNjBjLTQuNCAwLTggMy42LTggOHY2NTZjMCA0LjQgMy42IDggOCA4aDYwYzQuNCAwIDgtMy42IDgtOFYxODRjMC00LjQtMy42LTgtOC04ek03ODUuMyA1MDQuM0w2NTcuNyA0MDMuNmE3LjIzIDcuMjMgMCAwMC0xMS43IDUuN1Y0NzZIMzc4di02Mi44YzAtNi03LTkuNC0xMS43LTUuN0wyMzguNyA1MDguM2E3LjE0IDcuMTQgMCAwMDAgMTEuM2wxMjcuNSAxMDAuOGM0LjcgMy43IDExLjcuNCAxMS43LTUuN1Y1NDhoMjY4djYyLjhjMCA2IDcgOS40IDExLjcgNS43bDEyNy41LTEwMC44YzMuOC0yLjkgMy44LTguNS4yLTExLjR6In19XX0sbmFtZToiY29sdW1uLXdpZHRoIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNTQ1NTE6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJkZWZzIixhdHRyczp7fSxjaGlsZHJlbjpbe3RhZzoic3R5bGUiLGF0dHJzOnt9fV19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTczIDQyMWMtMjMuMSAwLTQxIDE3LjktNDEgNDBzMTcuOSA0MCA0MSA0MGMyMS4xIDAgMzktMTcuOSAzOS00MHMtMTcuOS00MC0zOS00MHptLTI4MCAwYy0yMy4xIDAtNDEgMTcuOS00MSA0MHMxNy45IDQwIDQxIDQwYzIxLjEgMCAzOS0xNy45IDM5LTQwcy0xNy45LTQwLTM5LTQweiJ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg5NCAzNDVhMzQzLjkyIDM0My45MiAwIDAwLTE4OS0xMzB2LjFjLTE3LjEtMTktMzYuNC0zNi41LTU4LTUyLjEtMTYzLjctMTE5LTM5My41LTgyLjctNTEzIDgxLTk2LjMgMTMzLTkyLjIgMzExLjkgNiA0MzlsLjggMTMyLjZjMCAzLjIuNSA2LjQgMS41IDkuNGEzMS45NSAzMS45NSAwIDAwNDAuMSAyMC45TDMwOSA4MDZjMzMuNSAxMS45IDY4LjEgMTguNyAxMDIuNSAyMC42bC0uNS40Yzg5LjEgNjQuOSAyMDUuOSA4NC40IDMxMyA0OWwxMjcuMSA0MS40YzMuMiAxIDYuNSAxLjYgOS45IDEuNiAxNy43IDAgMzItMTQuMyAzMi0zMlY3NTNjODguMS0xMTkuNiA5MC40LTI4NC45IDEtNDA4ek0zMjMgNzM1bC0xMi01LTk5IDMxLTEtMTA0LTgtOWMtODQuNi0xMDMuMi05MC4yLTI1MS45LTExLTM2MSA5Ni40LTEzMi4yIDI4MS4yLTE2MS40IDQxMy02NiAxMzIuMiA5Ni4xIDE2MS41IDI4MC42IDY2IDQxMi04MC4xIDEwOS45LTIyMy41IDE1MC41LTM0OCAxMDJ6bTUwNS0xN2wtOCAxMCAxIDEwNC05OC0zMy0xMiA1Yy01NiAyMC44LTExNS43IDIyLjUtMTcxIDdsLS4yLS4xQTM2Ny4zMSAzNjcuMzEgMCAwMDcyOSA2NzZjNzYuNC0xMDUuMyA4OC44LTIzNy42IDQ0LjQtMzUwLjRsLjYuNGMyMyAxNi41IDQ0LjEgMzcuMSA2MiA2MiA3Mi42IDk5LjYgNjguNSAyMzUuMi04IDMzMHoifX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00MzMgNDIxYy0yMy4xIDAtNDEgMTcuOS00MSA0MHMxNy45IDQwIDQxIDQwYzIxLjEgMCAzOS0xNy45IDM5LTQwcy0xNy45LTQwLTM5LTQweiJ9fV19LG5hbWU6ImNvbW1lbnQiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw2MTE0OTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6TTMyNy4zIDcwMi40Yy0yIC45LTQuNCAwLTUuMy0yLjEtLjQtMS0uNC0yLjIgMC0zLjJsOTguNy0yMjUuNSAxMzIuMSAxMzIuMS0yMjUuNSA5OC43em0zNzUuMS0zNzUuMWwtOTguNyAyMjUuNS0xMzIuMS0xMzIuMUw2OTcuMSAzMjJjMi0uOSA0LjQgMCA1LjMgMi4xLjQgMSAuNCAyLjEgMCAzLjJ6In19XX0sbmFtZToiY29tcGFzcyIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw2NzEzMDpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyem0xOTguNC01ODguMWEzMiAzMiAwIDAwLTI0LjUuNUw0MTQuOSA0MTUgMjk2LjQgNjg2Yy0zLjYgOC4yLTMuNiAxNy41IDAgMjUuNyAzLjQgNy44IDkuNyAxMy45IDE3LjcgMTcgMy44IDEuNSA3LjcgMi4yIDExLjcgMi4yIDQuNCAwIDguNy0uOSAxMi44LTIuN2wyNzEtMTE4LjYgMTE4LjUtMjcxYTMyLjA2IDMyLjA2IDAgMDAtMTcuNy00Mi43ek01NzYuOCA1MzQuNGwyNi4yIDI2LjItNDIuNCA0Mi40LTI2LjItMjYuMkwzODAgNjQ0LjQgNDQ3LjUgNDkwIDQyMiA0NjQuNGw0Mi40LTQyLjQgMjUuNSAyNS41TDY0NC40IDM4MGwtNjcuNiAxNTQuNHpNNDY0LjQgNDIyTDQyMiA0NjQuNGwyNS41IDI1LjYgODYuOSA4Ni44IDI2LjIgMjYuMiA0Mi40LTQyLjQtMjYuMi0yNi4yLTg2LjgtODYuOXoifX1dfSxuYW1lOiJjb21wYXNzIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sODA5MDA6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDE0MGMtMjA1LjQgMC0zNzIgMTY2LjYtMzcyIDM3MnMxNjYuNiAzNzIgMzcyIDM3MiAzNzItMTY2LjYgMzcyLTM3Mi0xNjYuNi0zNzItMzcyLTM3MnpNMzI3LjYgNzAxLjdjLTIgLjktNC40IDAtNS4zLTIuMS0uNC0xLS40LTIuMiAwLTMuMkw0MjEgNDcwLjkgNTUzLjEgNjAzbC0yMjUuNSA5OC43em0zNzUuMS0zNzUuMUw2MDQgNTUyLjEgNDcxLjkgNDIwbDIyNS41LTk4LjdjMi0uOSA0LjQgMCA1LjMgMi4xLjQgMSAuNCAyLjEgMCAzLjJ6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTMyMi4zIDY5Ni40Yy0uNCAxLS40IDIuMiAwIDMuMi45IDIuMSAzLjMgMyA1LjMgMi4xTDU1My4xIDYwMyA0MjEgNDcwLjlsLTk4LjcgMjI1LjV6bTM3NS4xLTM3NS4xTDQ3MS45IDQyMCA2MDQgNTUyLjFsOTguNy0yMjUuNWMuNC0xLjEuNC0yLjIgMC0zLjItLjktMi4xLTMuMy0zLTUuMy0yLjF6IixmaWxsOmF9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnoiLGZpbGw6YX19XX19LG5hbWU6ImNvbXBhc3MiLHRoZW1lOiJ0d290b25lIn07dC5kZWZhdWx0PWV9LDM0NTQzOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoiZGVmcyIsYXR0cnM6e30sY2hpbGRyZW46W3t0YWc6InN0eWxlIixhdHRyczp7fX1dfSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTMyNiA2NjRIMTA0Yy04LjggMC0xNiA3LjItMTYgMTZ2NDhjMCA4LjggNy4yIDE2IDE2IDE2aDE3NHYxNzZjMCA4LjggNy4yIDE2IDE2IDE2aDQ4YzguOCAwIDE2LTcuMiAxNi0xNlY2OTZjMC0xNy43LTE0LjMtMzItMzItMzJ6bTE2LTU3NmgtNDhjLTguOCAwLTE2IDcuMi0xNiAxNnYxNzZIMTA0Yy04LjggMC0xNiA3LjItMTYgMTZ2NDhjMCA4LjggNy4yIDE2IDE2IDE2aDIyMmMxNy43IDAgMzItMTQuMyAzMi0zMlYxMDRjMC04LjgtNy4yLTE2LTE2LTE2em01NzggNTc2SDY5OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MjI0YzAgOC44IDcuMiAxNiAxNiAxNmg0OGM4LjggMCAxNi03LjIgMTYtMTZWNzQ0aDE3NGM4LjggMCAxNi03LjIgMTYtMTZ2LTQ4YzAtOC44LTcuMi0xNi0xNi0xNnptMC0zODRINzQ2VjEwNGMwLTguOC03LjItMTYtMTYtMTZoLTQ4Yy04LjggMC0xNiA3LjItMTYgMTZ2MjI0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDIyMmM4LjggMCAxNi03LjIgMTYtMTZ2LTQ4YzAtOC44LTcuMi0xNi0xNi0xNnoifX1dfSxuYW1lOiJjb21wcmVzcyIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDU5MTIzOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoiZGVmcyIsYXR0cnM6e30sY2hpbGRyZW46W3t0YWc6InN0eWxlIixhdHRyczp7fX1dfSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTMwMS4zIDQ5Ni43Yy0yMy44IDAtNDAuMi0xMC41LTQxLjYtMjYuOUgyMDVjLjkgNDMuNCAzNi45IDcwLjMgOTMuOSA3MC4zIDU5LjEgMCA5NS0yOC40IDk1LTc1LjUgMC0zNS44LTIwLTU1LjktNjQuNS02NC41bC0yOS4xLTUuNmMtMjMuOC00LjctMzMuOC0xMS45LTMzLjgtMjQuMiAwLTE1IDEzLjMtMjQuNSAzMy40LTI0LjUgMjAuMSAwIDM1LjMgMTEuMSAzNi42IDI3aDUzYy0uOS00MS43LTM3LjUtNzAuMy05MC4zLTcwLjMtNTQuNCAwLTg5LjcgMjguOS04OS43IDczIDAgMzUuNSAyMS4yIDU4IDYyLjUgNjUuOGwyOS43IDUuOWMyNS44IDUuMiAzNS42IDExLjkgMzUuNiAyNC40LjEgMTQuNy0xNC41IDI1LjEtMzYgMjUuMXoifX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MjggMTQwSDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY0OTZjMCAxNy43IDE0LjMgMzIgMzIgMzJoMzgwdjExMkgzMDRjLTguOCAwLTE2IDcuMi0xNiAxNnY0OGMwIDQuNCAzLjYgOCA4IDhoNDMyYzQuNCAwIDgtMy42IDgtOHYtNDhjMC04LjgtNy4yLTE2LTE2LTE2SDU0OFY3MDBoMzgwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE3MmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDQ4OEgxMzZWMjEyaDc1MnY0MTZ6In19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODI4LjUgNDg2LjdoLTk1LjhWMzA4LjVoLTU3LjRWNTM0aDE1My4yem0tMjk4LjYgNTMuNGMxNC4xIDAgMjcuMi0yIDM5LjEtNS44bDEzLjMgMjAuM2g1My4zTDYwNy45IDUxMWMyMS4xLTIwIDMzLTUxLjEgMzMtODkuOCAwLTczLjMtNDMuMy0xMTguOC0xMTAuOS0xMTguOHMtMTExLjIgNDUuMy0xMTEuMiAxMTguOGMtLjEgNzMuNyA0MyAxMTguOSAxMTEuMSAxMTguOXptMC0xOTBjMzEuNiAwIDUyLjcgMjcuNyA1Mi43IDcxLjEgMCAxNi43LTMuNiAzMC42LTEwIDQwLjVsLTUuMi02LjloLTQ4LjhMNTQyIDQ5MWMtMy45LjktOCAxLjQtMTIuMiAxLjQtMzEuNyAwLTUyLjgtMjcuNS01Mi44LTcxLjIuMS00My42IDIxLjItNzEuMSA1Mi45LTcxLjF6In19XX0sbmFtZToiY29uc29sZS1zcWwiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw2MTU4MDpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTI4IDIyNEg3Njh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1Nkg1NDh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NkgzMjh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1Nkg5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NTc2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDgzMmMxNy43IDAgMzItMTQuMyAzMi0zMlYyNTZjMC0xNy43LTE0LjMtMzItMzItMzJ6TTY2MSA3MzZoLTQzLjljLTQuMiAwLTcuNi0zLjMtNy45LTcuNS0zLjgtNTAuNi00Ni05MC41LTk3LjItOTAuNXMtOTMuNCA0MC05Ny4yIDkwLjVjLS4zIDQuMi0zLjcgNy41LTcuOSA3LjVIMzYzYTggOCAwIDAxLTgtOC40YzIuOC01My4zIDMyLTk5LjcgNzQuNi0xMjYuMWExMTEuOCAxMTEuOCAwIDAxLTI5LjEtNzUuNWMwLTYxLjkgNDkuOS0xMTIgMTExLjQtMTEyIDYxLjUgMCAxMTEuNCA1MC4xIDExMS40IDExMiAwIDI5LjEtMTEgNTUuNS0yOS4xIDc1LjUgNDIuNyAyNi41IDcxLjggNzIuOCA3NC42IDEyNi4xLjQgNC42LTMuMiA4LjQtNy44IDguNHpNNTEyIDQ3NGMtMjguNSAwLTUxLjcgMjMuMy01MS43IDUyczIzLjIgNTIgNTEuNyA1MmMyOC41IDAgNTEuNy0yMy4zIDUxLjctNTJzLTIzLjItNTItNTEuNy01MnoifX1dfSxuYW1lOiJjb250YWN0cyIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw3MTQ4MjpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTk0LjMgNjAxLjVhMTExLjggMTExLjggMCAwMDI5LjEtNzUuNWMwLTYxLjktNDkuOS0xMTItMTExLjQtMTEycy0xMTEuNCA1MC4xLTExMS40IDExMmMwIDI5LjEgMTEgNTUuNSAyOS4xIDc1LjVhMTU4LjA5IDE1OC4wOSAwIDAwLTc0LjYgMTI2LjEgOCA4IDAgMDA4IDguNEg0MDdjNC4yIDAgNy42LTMuMyA3LjktNy41IDMuOC01MC42IDQ2LTkwLjUgOTcuMi05MC41czkzLjQgNDAgOTcuMiA5MC41Yy4zIDQuMiAzLjcgNy41IDcuOSA3LjVINjYxYTggOCAwIDAwOC04LjRjLTIuOC01My4zLTMyLTk5LjctNzQuNy0xMjYuMXpNNTEyIDU3OGMtMjguNSAwLTUxLjctMjMuMy01MS43LTUyczIzLjItNTIgNTEuNy01MiA1MS43IDIzLjMgNTEuNyA1Mi0yMy4yIDUyLTUxLjcgNTJ6bTQxNi0zNTRINzY4di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZINTQ4di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZIMzI4di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjU3NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg4MzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjU2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNTY4SDEzNlYyOTZoMTIwdjU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2aDE0OHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmgxNDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZoMTIwdjQ5NnoifX1dfSxuYW1lOiJjb250YWN0cyIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDkyMzkyOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOmZ1bmN0aW9uKGEsbil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQ2MC4zIDUyNmE1MS43IDUyIDAgMTAxMDMuNCAwIDUxLjcgNTIgMCAxMC0xMDMuNCAweiIsZmlsbDpufX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik03NjggMzUyYzAgNC40LTMuNiA4LTggOGgtNTZjLTQuNCAwLTgtMy42LTgtOHYtNTZINTQ4djU2YzAgNC40LTMuNiA4LTggOGgtNTZjLTQuNCAwLTgtMy42LTgtOHYtNTZIMzI4djU2YzAgNC40LTMuNiA4LTggOGgtNTZjLTQuNCAwLTgtMy42LTgtOHYtNTZIMTM2djQ5Nmg3NTJWMjk2SDc2OHY1NnpNNjYxIDczNmgtNDMuOGMtNC4yIDAtNy42LTMuMy03LjktNy41LTMuOC01MC41LTQ2LTkwLjUtOTcuMi05MC41cy05My40IDM5LjktOTcuMiA5MC41Yy0uMyA0LjItMy43IDcuNS03LjkgNy41aC00My45YTggOCAwIDAxLTgtOC40YzIuOC01My4zIDMxLjktOTkuNiA3NC42LTEyNi4xLTE4LjEtMjAtMjkuMS00Ni40LTI5LjEtNzUuNSAwLTYxLjkgNDkuOS0xMTIgMTExLjQtMTEyczExMS40IDUwLjEgMTExLjQgMTEyYzAgMjkuMS0xMSA1NS42LTI5LjEgNzUuNSA0Mi43IDI2LjQgNzEuOSA3Mi44IDc0LjcgMTI2LjFhOCA4IDAgMDEtOCA4LjR6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTU5NC4zIDYwMS41YTExMS44IDExMS44IDAgMDAyOS4xLTc1LjVjMC02MS45LTQ5LjktMTEyLTExMS40LTExMnMtMTExLjQgNTAuMS0xMTEuNCAxMTJjMCAyOS4xIDExIDU1LjUgMjkuMSA3NS41YTE1OC4wOSAxNTguMDkgMCAwMC03NC42IDEyNi4xIDggOCAwIDAwOCA4LjRINDA3YzQuMiAwIDcuNi0zLjMgNy45LTcuNSAzLjgtNTAuNiA0Ni05MC41IDk3LjItOTAuNXM5My40IDQwIDk3LjIgOTAuNWMuMyA0LjIgMy43IDcuNSA3LjkgNy41SDY2MWE4IDggMCAwMDgtOC40Yy0yLjgtNTMuMy0zMi05OS43LTc0LjctMTI2LjF6TTUxMiA1NzhjLTI4LjUgMC01MS43LTIzLjMtNTEuNy01MnMyMy4yLTUyIDUxLjctNTIgNTEuNyAyMy4zIDUxLjcgNTItMjMuMiA1Mi01MS43IDUyeiIsZmlsbDphfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MjggMjI0SDc2OHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2SDU0OHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2SDMyOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2SDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY1NzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoODMyYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjI1NmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDU2OEgxMzZWMjk2aDEyMHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmgxNDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZoMTQ4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2aDEyMHY0OTZ6IixmaWxsOmF9fV19fSxuYW1lOiJjb250YWN0cyIsdGhlbWU6InR3b3RvbmUifTt0LmRlZmF1bHQ9ZX0sOTk5NjI6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTgzMiA2NEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjUyOWMwLS42LjQtMSAxLTFoMjE5LjNsNS4yIDI0LjdDMzk3LjYgNzA4LjUgNDUwLjggNzUyIDUxMiA3NTJzMTE0LjQtNDMuNSAxMjYuNC0xMDMuM2w1LjItMjQuN0g4NjNjLjYgMCAxIC40IDEgMVY5NmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNzEyIDQ5M2MwIDQuNC0zLjYgOC04IDhIMzIwYy00LjQgMC04LTMuNi04LTh2LTQ4YzAtNC40IDMuNi04IDgtOGgzODRjNC40IDAgOCAzLjYgOCA4djQ4em0wLTE2MGMwIDQuNC0zLjYgOC04IDhIMzIwYy00LjQgMC04LTMuNi04LTh2LTQ4YzAtNC40IDMuNi04IDgtOGgzODRjNC40IDAgOCAzLjYgOCA4djQ4em0xNTEgMzU0SDY5NC4xYy0xMS42IDMyLjgtMzIgNjIuMy01OS4xIDg0LjctMzQuNSAyOC42LTc4LjIgNDQuMy0xMjMgNDQuM3MtODguNS0xNS44LTEyMy00NC4zYTE5NC4wMiAxOTQuMDIgMCAwMS01OS4xLTg0LjdIMTYxYy0uNiAwLTEtLjQtMS0xdjI0MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWNjg2YzAgLjYtLjQgMS0xIDF6In19XX0sbmFtZToiY29udGFpbmVyIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDc3NDg1OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04MzIgNjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgODI0SDIzMlY2ODdoOTcuOWMxMS42IDMyLjggMzIgNjIuMyA1OS4xIDg0LjcgMzQuNSAyOC41IDc4LjIgNDQuMyAxMjMgNDQuM3M4OC41LTE1LjcgMTIzLTQ0LjNjMjcuMS0yMi40IDQ3LjUtNTEuOSA1OS4xLTg0LjdINzkydi02M0g2NDMuNmwtNS4yIDI0LjdDNjI2LjQgNzA4LjUgNTczLjIgNzUyIDUxMiA3NTJzLTExNC40LTQzLjUtMTI2LjUtMTAzLjNsLTUuMi0yNC43SDIzMlYxMzZoNTYwdjc1MnpNMzIwIDM0MWgzODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThIMzIwYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4em0wIDE2MGgzODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThIMzIwYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4eiJ9fV19LG5hbWU6ImNvbnRhaW5lciIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDEzMDY4OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOmZ1bmN0aW9uKGEsbil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTYzNSA3NzEuN2MtMzQuNSAyOC42LTc4LjIgNDQuMy0xMjMgNDQuM3MtODguNS0xNS44LTEyMy00NC4zYTE5NC4wMiAxOTQuMDIgMCAwMS01OS4xLTg0LjdIMjMydjIwMWg1NjBWNjg3aC05Ny45Yy0xMS42IDMyLjgtMzIgNjIuMy01OS4xIDg0Ljd6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTMyMCA1MDFoMzg0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04SDMyMGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOHoiLGZpbGw6YX19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODMyIDY0SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlY5NmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDgyNEgyMzJWNjg3aDk3LjljMTEuNiAzMi44IDMyIDYyLjMgNTkuMSA4NC43IDM0LjUgMjguNSA3OC4yIDQ0LjMgMTIzIDQ0LjNzODguNS0xNS43IDEyMy00NC4zYzI3LjEtMjIuNCA0Ny41LTUxLjkgNTkuMS04NC43SDc5MnYyMDF6bTAtMjY0SDY0My42bC01LjIgMjQuN0M2MjYuNCA3MDguNSA1NzMuMiA3NTIgNTEyIDc1MnMtMTE0LjQtNDMuNS0xMjYuNS0xMDMuM2wtNS4yLTI0LjdIMjMyVjEzNmg1NjB2NDg4eiIsZmlsbDphfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0zMjAgMzQxaDM4NGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOEgzMjBjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDh6IixmaWxsOmF9fV19fSxuYW1lOiJjb250YWluZXIiLHRoZW1lOiJ0d290b25lIn07dC5kZWZhdWx0PWV9LDY3NTI4OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTQwNCA2ODN2NzdjMCA0LjQtMy42IDgtOCA4aC00OGMtNC40IDAtOC0zLjYtOC04di03N2MtNDEuNy0xMy42LTcyLTUyLjgtNzItOTlzMzAuMy04NS41IDcyLTk5VjI2NGMwLTQuNCAzLjYtOCA4LThoNDhjNC40IDAgOCAzLjYgOCA4djIyMWM0MS43IDEzLjYgNzIgNTIuOCA3MiA5OXMtMzAuMyA4NS41LTcyIDk5em0yNzkuNi0xNDMuOWMuMiAwIC4zLS4xLjQtLjF2MjIxYzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOFY1MzljLjIgMCAuMy4xLjQuMS00Mi0xMy40LTcyLjQtNTIuNy03Mi40LTk5LjEgMC00Ni40IDMwLjQtODUuNyA3Mi40LTk5LjEtLjIgMC0uMy4xLS40LjF2LTc3YzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh2NzdjLS4yIDAtLjMtLjEtLjQtLjEgNDIgMTMuNCA3Mi40IDUyLjcgNzIuNCA5OS4xIDAgNDYuNC0zMC40IDg1LjctNzIuNCA5OS4xek02MTYgNDQwYTM2IDM2IDAgMTA3MiAwIDM2IDM2IDAgMTAtNzIgMHpNNDAzLjQgNTY2LjVsLTEuNS0yLjRjMC0uMS0uMS0uMS0uMS0uMmwtLjktMS4yYy0uMS0uMS0uMi0uMi0uMi0uMy0xLTEuMy0yLTIuNS0zLjItMy42bC0uMi0uMmMtLjQtLjQtLjgtLjgtMS4yLTEuMS0uOC0uOC0xLjctMS41LTIuNi0yLjFoLS4xbC0xLjItLjljLS4xLS4xLS4zLS4yLS40LS4zLTEuMi0uOC0yLjUtMS42LTMuOS0yLjItLjItLjEtLjUtLjItLjctLjQtLjQtLjItLjctLjMtMS4xLS41LS4zLS4xLS43LS4zLTEtLjQtLjUtLjItMS0uNC0xLjUtLjUtLjQtLjEtLjktLjMtMS4zLS40bC0uOS0uMy0xLjQtLjNjLS4yLS4xLS41LS4xLS43LS4yLS43LS4xLTEuNC0uMy0yLjEtLjQtLjIgMC0uNCAwLS42LS4xLS42LS4xLTEuMS0uMS0xLjctLjItLjIgMC0uNCAwLS43LS4xLS44IDAtMS41LS4xLTIuMy0uMXMtMS41IDAtMi4zLjFjLS4yIDAtLjQgMC0uNy4xLS42IDAtMS4yLjEtMS43LjItLjIgMC0uNCAwLS42LjEtLjcuMS0xLjQuMi0yLjEuNC0uMi4xLS41LjEtLjcuMmwtMS40LjMtLjkuM2MtLjQuMS0uOS4zLTEuMy40LS41LjItMSAuNC0xLjUuNS0uMy4xLS43LjMtMSAuNC0uNC4yLS43LjMtMS4xLjUtLjIuMS0uNS4yLS43LjQtMS4zLjctMi42IDEuNC0zLjkgMi4yLS4xLjEtLjMuMi0uNC4zbC0xLjIuOWgtLjFjLS45LjctMS44IDEuNC0yLjYgMi4xLS40LjQtLjguNy0xLjIgMS4xbC0uMi4yYTU0LjggNTQuOCAwIDAwLTMuMiAzLjZjLS4xLjEtLjIuMi0uMi4zbC0uOSAxLjJjMCAuMS0uMS4xLS4xLjJsLTEuNSAyLjRjLS4xLjItLjIuMy0uMy41LTIuNyA1LjEtNC4zIDEwLjktNC4zIDE3czEuNiAxMiA0LjMgMTdjLjEuMi4yLjMuMy41bDEuNSAyLjRjMCAuMS4xLjEuMS4ybC45IDEuMmMuMS4xLjIuMi4yLjMgMSAxLjMgMiAyLjUgMy4yIDMuNmwuMi4yYy40LjQuOC44IDEuMiAxLjEuOC44IDEuNyAxLjUgMi42IDIuMWguMWwxLjIuOWMuMS4xLjMuMi40LjMgMS4yLjggMi41IDEuNiAzLjkgMi4yLjIuMS41LjIuNy40LjQuMi43LjMgMS4xLjUuMy4xLjcuMyAxIC40LjUuMiAxIC40IDEuNS41LjQuMS45LjMgMS4zLjRsLjkuMyAxLjQuM2MuMi4xLjUuMS43LjIuNy4xIDEuNC4zIDIuMS40LjIgMCAuNCAwIC42LjEuNi4xIDEuMS4xIDEuNy4yLjIgMCAuNCAwIC43LjEuOCAwIDEuNS4xIDIuMy4xczEuNSAwIDIuMy0uMWMuMiAwIC40IDAgLjctLjEuNiAwIDEuMi0uMSAxLjctLjIuMiAwIC40IDAgLjYtLjEuNy0uMSAxLjQtLjIgMi4xLS40LjItLjEuNS0uMS43LS4ybDEuNC0uMy45LS4zYy40LS4xLjktLjMgMS4zLS40LjUtLjIgMS0uNCAxLjUtLjUuMy0uMS43LS4zIDEtLjQuNC0uMi43LS4zIDEuMS0uNS4yLS4xLjUtLjIuNy0uNCAxLjMtLjcgMi42LTEuNCAzLjktMi4yLjEtLjEuMy0uMi40LS4zbDEuMi0uOWguMWMuOS0uNyAxLjgtMS40IDIuNi0yLjEuNC0uNC44LS43IDEuMi0xLjFsLjItLjJjMS4xLTEuMSAyLjItMi40IDMuMi0zLjYuMS0uMS4yLS4yLjItLjNsLjktMS4yYzAtLjEuMS0uMS4xLS4ybDEuNS0yLjRjLjEtLjIuMi0uMy4zLS41IDIuNy01LjEgNC4zLTEwLjkgNC4zLTE3cy0xLjYtMTItNC4zLTE3Yy0uMS0uMi0uMi0uNC0uMy0uNXoifX1dfSxuYW1lOiJjb250cm9sIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDIxODg2OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2ek0zNDAgNjgzdjc3YzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LTh2LTc3Yy0xMC4xIDMuMy0yMC44IDUtMzIgNXMtMjEuOS0xLjgtMzItNXptNjQtMTk4VjI2NGMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2MjIxYzEwLjEtMy4zIDIwLjgtNSAzMi01czIxLjkgMS44IDMyIDV6bS02NCAxOThjMTAuMSAzLjMgMjAuOCA1IDMyIDVzMjEuOS0xLjggMzItNWM0MS44LTEzLjUgNzItNTIuNyA3Mi05OXMtMzAuMi04NS41LTcyLTk5Yy0xMC4xLTMuMy0yMC44LTUtMzItNXMtMjEuOSAxLjgtMzIgNWMtNDEuOCAxMy41LTcyIDUyLjctNzIgOTlzMzAuMiA4NS41IDcyIDk5em0uMS0xMTUuN2MuMy0uNi43LTEuMiAxLTEuOHYtLjFsMS4yLTEuOGMuMS0uMi4yLS4zLjMtLjUuMy0uNS43LS45IDEtMS40LjEtLjEuMi0uMy4zLS40LjUtLjYuOS0xLjEgMS40LTEuNmwuMy0uMyAxLjItMS4yLjQtLjRjLjUtLjUgMS0uOSAxLjYtMS40LjYtLjUgMS4xLS45IDEuNy0xLjMuMi0uMS4zLS4yLjUtLjMuNS0uMy45LS43IDEuNC0xIC4xLS4xLjMtLjIuNC0uMy42LS40IDEuMi0uNyAxLjktMS4xLjEtLjEuMy0uMS40LS4yLjUtLjMgMS0uNSAxLjYtLjhsLjYtLjNjLjctLjMgMS4zLS42IDItLjguNy0uMyAxLjQtLjUgMi4xLS43LjItLjEuNC0uMS42LS4yLjYtLjIgMS4xLS4zIDEuNy0uNC4yIDAgLjMtLjEuNS0uMS43LS4yIDEuNS0uMyAyLjItLjQuMiAwIC4zIDAgLjUtLjEuNi0uMSAxLjItLjEgMS44LS4yaC42Yy44IDAgMS41LS4xIDIuMy0uMXMxLjUgMCAyLjMuMWguNmMuNiAwIDEuMi4xIDEuOC4yLjIgMCAuMyAwIC41LjEuNy4xIDEuNS4yIDIuMi40LjIgMCAuMy4xLjUuMS42LjEgMS4yLjMgMS43LjQuMi4xLjQuMS42LjIuNy4yIDEuNC40IDIuMS43LjcuMiAxLjMuNSAyIC44bC42LjNjLjUuMiAxLjEuNSAxLjYuOC4xLjEuMy4xLjQuMi42LjMgMS4zLjcgMS45IDEuMS4xLjEuMy4yLjQuMy41LjMgMSAuNiAxLjQgMSAuMi4xLjMuMi41LjMuNi40IDEuMi45IDEuNyAxLjNzMS4xLjkgMS42IDEuNGwuNC40IDEuMiAxLjIuMy4zYy41LjUgMSAxLjEgMS40IDEuNi4xLjEuMi4zLjMuNC40LjQuNy45IDEgMS40LjEuMi4yLjMuMy41bDEuMiAxLjhzMCAuMS4xLjFhMzYuMTggMzYuMTggMCAwMTUuMSAxOC41YzAgNi0xLjUgMTEuNy00LjEgMTYuNy0uMy42LS43IDEuMi0xIDEuOCAwIDAgMCAuMS0uMS4xbC0xLjIgMS44Yy0uMS4yLS4yLjMtLjMuNS0uMy41LS43LjktMSAxLjQtLjEuMS0uMi4zLS4zLjQtLjUuNi0uOSAxLjEtMS40IDEuNmwtLjMuMy0xLjIgMS4yLS40LjRjLS41LjUtMSAuOS0xLjYgMS40LS42LjUtMS4xLjktMS43IDEuMy0uMi4xLS4zLjItLjUuMy0uNS4zLS45LjctMS40IDEtLjEuMS0uMy4yLS40LjMtLjYuNC0xLjIuNy0xLjkgMS4xLS4xLjEtLjMuMS0uNC4yLS41LjMtMSAuNS0xLjYuOGwtLjYuM2MtLjcuMy0xLjMuNi0yIC44LS43LjMtMS40LjUtMi4xLjctLjIuMS0uNC4xLS42LjItLjYuMi0xLjEuMy0xLjcuNC0uMiAwLS4zLjEtLjUuMS0uNy4yLTEuNS4zLTIuMi40LS4yIDAtLjMgMC0uNS4xLS42LjEtMS4yLjEtMS44LjJoLS42Yy0uOCAwLTEuNS4xLTIuMy4xcy0xLjUgMC0yLjMtLjFoLS42Yy0uNiAwLTEuMi0uMS0xLjgtLjItLjIgMC0uMyAwLS41LS4xLS43LS4xLTEuNS0uMi0yLjItLjQtLjIgMC0uMy0uMS0uNS0uMS0uNi0uMS0xLjItLjMtMS43LS40LS4yLS4xLS40LS4xLS42LS4yLS43LS4yLTEuNC0uNC0yLjEtLjctLjctLjItMS4zLS41LTItLjhsLS42LS4zYy0uNS0uMi0xLjEtLjUtMS42LS44LS4xLS4xLS4zLS4xLS40LS4yLS42LS4zLTEuMy0uNy0xLjktMS4xLS4xLS4xLS4zLS4yLS40LS4zLS41LS4zLTEtLjYtMS40LTEtLjItLjEtLjMtLjItLjUtLjMtLjYtLjQtMS4yLS45LTEuNy0xLjNzLTEuMS0uOS0xLjYtMS40bC0uNC0uNC0xLjItMS4yLS4zLS4zYy0uNS0uNS0xLTEuMS0xLjQtMS42LS4xLS4xLS4yLS4zLS4zLS40LS40LS40LS43LS45LTEtMS40LS4xLS4yLS4yLS4zLS4zLS41bC0xLjItMS44di0uMWMtLjQtLjYtLjctMS4yLTEtMS44LTIuNi01LTQuMS0xMC43LTQuMS0xNi43czEuNS0xMS43IDQuMS0xNi43ek02MjAgNTM5djIyMWMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04VjUzOWMtMTAuMSAzLjMtMjAuOCA1LTMyIDVzLTIxLjktMS44LTMyLTV6bTY0LTE5OHYtNzdjMC00LjQtMy42LTgtOC04aC00OGMtNC40IDAtOCAzLjYtOCA4djc3YzEwLjEtMy4zIDIwLjgtNSAzMi01czIxLjkgMS44IDMyIDV6bS02NCAxOThjMTAuMSAzLjMgMjAuOCA1IDMyIDVzMjEuOS0xLjggMzItNWM0MS44LTEzLjUgNzItNTIuNyA3Mi05OXMtMzAuMi04NS41LTcyLTk5Yy0xMC4xLTMuMy0yMC44LTUtMzItNXMtMjEuOSAxLjgtMzIgNWMtNDEuOCAxMy41LTcyIDUyLjctNzIgOTlzMzAuMiA4NS41IDcyIDk5em0uMS0xMTUuN2MuMy0uNi43LTEuMiAxLTEuOHYtLjFsMS4yLTEuOGMuMS0uMi4yLS4zLjMtLjUuMy0uNS43LS45IDEtMS40LjEtLjEuMi0uMy4zLS40LjUtLjYuOS0xLjEgMS40LTEuNmwuMy0uMyAxLjItMS4yLjQtLjRjLjUtLjUgMS0uOSAxLjYtMS40LjYtLjUgMS4xLS45IDEuNy0xLjMuMi0uMS4zLS4yLjUtLjMuNS0uMy45LS43IDEuNC0xIC4xLS4xLjMtLjIuNC0uMy42LS40IDEuMi0uNyAxLjktMS4xLjEtLjEuMy0uMS40LS4yLjUtLjMgMS0uNSAxLjYtLjhsLjYtLjNjLjctLjMgMS4zLS42IDItLjguNy0uMyAxLjQtLjUgMi4xLS43LjItLjEuNC0uMS42LS4yLjYtLjIgMS4xLS4zIDEuNy0uNC4yIDAgLjMtLjEuNS0uMS43LS4yIDEuNS0uMyAyLjItLjQuMiAwIC4zIDAgLjUtLjEuNi0uMSAxLjItLjEgMS44LS4yaC42Yy44IDAgMS41LS4xIDIuMy0uMXMxLjUgMCAyLjMuMWguNmMuNiAwIDEuMi4xIDEuOC4yLjIgMCAuMyAwIC41LjEuNy4xIDEuNS4yIDIuMi40LjIgMCAuMy4xLjUuMS42LjEgMS4yLjMgMS43LjQuMi4xLjQuMS42LjIuNy4yIDEuNC40IDIuMS43LjcuMiAxLjMuNSAyIC44bC42LjNjLjUuMiAxLjEuNSAxLjYuOC4xLjEuMy4xLjQuMi42LjMgMS4zLjcgMS45IDEuMS4xLjEuMy4yLjQuMy41LjMgMSAuNiAxLjQgMSAuMi4xLjMuMi41LjMuNi40IDEuMi45IDEuNyAxLjNzMS4xLjkgMS42IDEuNGwuNC40IDEuMiAxLjIuMy4zYy41LjUgMSAxLjEgMS40IDEuNi4xLjEuMi4zLjMuNC40LjQuNy45IDEgMS40LjEuMi4yLjMuMy41bDEuMiAxLjh2LjFhMzYuMTggMzYuMTggMCAwMTUuMSAxOC41YzAgNi0xLjUgMTEuNy00LjEgMTYuNy0uMy42LS43IDEuMi0xIDEuOHYuMWwtMS4yIDEuOGMtLjEuMi0uMi4zLS4zLjUtLjMuNS0uNy45LTEgMS40LS4xLjEtLjIuMy0uMy40LS41LjYtLjkgMS4xLTEuNCAxLjZsLS4zLjMtMS4yIDEuMi0uNC40Yy0uNS41LTEgLjktMS42IDEuNC0uNi41LTEuMS45LTEuNyAxLjMtLjIuMS0uMy4yLS41LjMtLjUuMy0uOS43LTEuNCAxLS4xLjEtLjMuMi0uNC4zLS42LjQtMS4yLjctMS45IDEuMS0uMS4xLS4zLjEtLjQuMi0uNS4zLTEgLjUtMS42LjhsLS42LjNjLS43LjMtMS4zLjYtMiAuOC0uNy4zLTEuNC41LTIuMS43LS4yLjEtLjQuMS0uNi4yLS42LjItMS4xLjMtMS43LjQtLjIgMC0uMy4xLS41LjEtLjcuMi0xLjUuMy0yLjIuNC0uMiAwLS4zIDAtLjUuMS0uNi4xLTEuMi4xLTEuOC4yaC0uNmMtLjggMC0xLjUuMS0yLjMuMXMtMS41IDAtMi4zLS4xaC0uNmMtLjYgMC0xLjItLjEtMS44LS4yLS4yIDAtLjMgMC0uNS0uMS0uNy0uMS0xLjUtLjItMi4yLS40LS4yIDAtLjMtLjEtLjUtLjEtLjYtLjEtMS4yLS4zLTEuNy0uNC0uMi0uMS0uNC0uMS0uNi0uMi0uNy0uMi0xLjQtLjQtMi4xLS43LS43LS4yLTEuMy0uNS0yLS44bC0uNi0uM2MtLjUtLjItMS4xLS41LTEuNi0uOC0uMS0uMS0uMy0uMS0uNC0uMi0uNi0uMy0xLjMtLjctMS45LTEuMS0uMS0uMS0uMy0uMi0uNC0uMy0uNS0uMy0xLS42LTEuNC0xLS4yLS4xLS4zLS4yLS41LS4zLS42LS40LTEuMi0uOS0xLjctMS4zcy0xLjEtLjktMS42LTEuNGwtLjQtLjQtMS4yLTEuMi0uMy0uM2MtLjUtLjUtMS0xLjEtMS40LTEuNi0uMS0uMS0uMi0uMy0uMy0uNC0uNC0uNC0uNy0uOS0xLTEuNC0uMS0uMi0uMi0uMy0uMy0uNWwtMS4yLTEuOHYtLjFjLS40LS42LS43LTEuMi0xLTEuOC0yLjYtNS00LjEtMTAuNy00LjEtMTYuN3MxLjUtMTEuNyA0LjEtMTYuN3oifX1dfSxuYW1lOiJjb250cm9sIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sOTAwMTg6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNzI4SDE4NFYxODRoNjU2djY1NnoiLGZpbGw6YX19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNjE2IDQ0MGEzNiAzNiAwIDEwNzIgMCAzNiAzNiAwIDEwLTcyIDB6TTM0MC40IDYwMS41bDEuNSAyLjRjMCAuMS4xLjEuMS4ybC45IDEuMmMuMS4xLjIuMi4yLjMgMSAxLjMgMiAyLjUgMy4yIDMuNmwuMi4yYy40LjQuOC44IDEuMiAxLjEuOC44IDEuNyAxLjUgMi42IDIuMWguMWwxLjIuOWMuMS4xLjMuMi40LjMgMS4yLjggMi41IDEuNiAzLjkgMi4yLjIuMS41LjIuNy40LjQuMi43LjMgMS4xLjUuMy4xLjcuMyAxIC40LjUuMiAxIC40IDEuNS41LjQuMS45LjMgMS4zLjRsLjkuMyAxLjQuM2MuMi4xLjUuMS43LjIuNy4xIDEuNC4zIDIuMS40LjIgMCAuNCAwIC42LjEuNi4xIDEuMS4xIDEuNy4yLjIgMCAuNCAwIC43LjEuOCAwIDEuNS4xIDIuMy4xczEuNSAwIDIuMy0uMWMuMiAwIC40IDAgLjctLjEuNiAwIDEuMi0uMSAxLjctLjIuMiAwIC40IDAgLjYtLjEuNy0uMSAxLjQtLjIgMi4xLS40LjItLjEuNS0uMS43LS4ybDEuNC0uMy45LS4zYy40LS4xLjktLjMgMS4zLS40LjUtLjIgMS0uNCAxLjUtLjUuMy0uMS43LS4zIDEtLjQuNC0uMi43LS4zIDEuMS0uNS4yLS4xLjUtLjIuNy0uNCAxLjMtLjcgMi42LTEuNCAzLjktMi4yLjEtLjEuMy0uMi40LS4zbDEuMi0uOWguMWMuOS0uNyAxLjgtMS40IDIuNi0yLjEuNC0uNC44LS43IDEuMi0xLjFsLjItLjJjMS4xLTEuMSAyLjItMi40IDMuMi0zLjYuMS0uMS4yLS4yLjItLjNsLjktMS4yYzAtLjEuMS0uMS4xLS4ybDEuNS0yLjRjLjEtLjIuMi0uMy4zLS41IDIuNy01LjEgNC4zLTEwLjkgNC4zLTE3cy0xLjYtMTItNC4zLTE3Yy0uMS0uMi0uMi0uNC0uMy0uNWwtMS41LTIuNGMwLS4xLS4xLS4xLS4xLS4ybC0uOS0xLjJjLS4xLS4xLS4yLS4yLS4yLS4zLTEtMS4zLTItMi41LTMuMi0zLjZsLS4yLS4yYy0uNC0uNC0uOC0uOC0xLjItMS4xLS44LS44LTEuNy0xLjUtMi42LTIuMWgtLjFsLTEuMi0uOWMtLjEtLjEtLjMtLjItLjQtLjMtMS4yLS44LTIuNS0xLjYtMy45LTIuMi0uMi0uMS0uNS0uMi0uNy0uNC0uNC0uMi0uNy0uMy0xLjEtLjUtLjMtLjEtLjctLjMtMS0uNC0uNS0uMi0xLS40LTEuNS0uNS0uNC0uMS0uOS0uMy0xLjMtLjRsLS45LS4zLTEuNC0uM2MtLjItLjEtLjUtLjEtLjctLjItLjctLjEtMS40LS4zLTIuMS0uNC0uMiAwLS40IDAtLjYtLjEtLjYtLjEtMS4xLS4xLTEuNy0uMi0uMiAwLS40IDAtLjctLjEtLjggMC0xLjUtLjEtMi4zLS4xcy0xLjUgMC0yLjMuMWMtLjIgMC0uNCAwLS43LjEtLjYgMC0xLjIuMS0xLjcuMi0uMiAwLS40IDAtLjYuMS0uNy4xLTEuNC4yLTIuMS40LS4yLjEtLjUuMS0uNy4ybC0xLjQuMy0uOS4zYy0uNC4xLS45LjMtMS4zLjQtLjUuMi0xIC40LTEuNS41LS4zLjEtLjcuMy0xIC40LS40LjItLjcuMy0xLjEuNS0uMi4xLS41LjItLjcuNC0xLjMuNy0yLjYgMS40LTMuOSAyLjItLjEuMS0uMy4yLS40LjNsLTEuMi45aC0uMWMtLjkuNy0xLjggMS40LTIuNiAyLjEtLjQuNC0uOC43LTEuMiAxLjFsLS4yLjJhNTQuOCA1NC44IDAgMDAtMy4yIDMuNmMtLjEuMS0uMi4yLS4yLjNsLS45IDEuMmMwIC4xLS4xLjEtLjEuMmwtMS41IDIuNGMtLjEuMi0uMi4zLS4zLjUtMi43IDUuMS00LjMgMTAuOS00LjMgMTdzMS42IDEyIDQuMyAxN2MuMS4yLjIuMy4zLjV6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTE4NCA4NDBoNjU2VjE4NEgxODR2NjU2em00MzYuNC00OTkuMWMtLjIgMC0uMy4xLS40LjF2LTc3YzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh2NzdjLS4yIDAtLjMtLjEtLjQtLjEgNDIgMTMuNCA3Mi40IDUyLjcgNzIuNCA5OS4xIDAgNDYuNC0zMC40IDg1LjctNzIuNCA5OS4xLjIgMCAuMy0uMS40LS4xdjIyMWMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LThWNTM5Yy4yIDAgLjMuMS40LjEtNDItMTMuNC03Mi40LTUyLjctNzIuNC05OS4xIDAtNDYuNCAzMC40LTg1LjcgNzIuNC05OS4xek0zNDAgNDg1VjI2NGMwLTQuNCAzLjYtOCA4LThoNDhjNC40IDAgOCAzLjYgOCA4djIyMWM0MS43IDEzLjYgNzIgNTIuOCA3MiA5OXMtMzAuMyA4NS41LTcyIDk5djc3YzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOHYtNzdjLTQxLjctMTMuNi03Mi01Mi44LTcyLTk5czMwLjMtODUuNSA3Mi05OXoiLGZpbGw6bn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMzQwIDY4M3Y3N2MwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04di03N2M0MS43LTEzLjUgNzItNTIuOCA3Mi05OXMtMzAuMy04NS40LTcyLTk5VjI2NGMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2MjIxYy00MS43IDEzLjUtNzIgNTIuOC03MiA5OXMzMC4zIDg1LjQgNzIgOTl6bS4xLTExNmMuMS0uMi4yLS4zLjMtLjVsMS41LTIuNGMwLS4xLjEtLjEuMS0uMmwuOS0xLjJjMC0uMS4xLS4yLjItLjMgMS0xLjIgMi4xLTIuNSAzLjItMy42bC4yLS4yYy40LS40LjgtLjcgMS4yLTEuMS44LS43IDEuNy0xLjQgMi42LTIuMWguMWwxLjItLjljLjEtLjEuMy0uMi40LS4zIDEuMy0uOCAyLjYtMS41IDMuOS0yLjIuMi0uMi41LS4zLjctLjQuNC0uMi43LS4zIDEuMS0uNS4zLS4xLjctLjMgMS0uNC41LS4xIDEtLjMgMS41LS41LjQtLjEuOS0uMyAxLjMtLjRsLjktLjMgMS40LS4zYy4yLS4xLjUtLjEuNy0uMi43LS4yIDEuNC0uMyAyLjEtLjQuMi0uMS40LS4xLjYtLjEuNS0uMSAxLjEtLjIgMS43LS4yLjMtLjEuNS0uMS43LS4xLjgtLjEgMS41LS4xIDIuMy0uMXMxLjUuMSAyLjMuMWMuMy4xLjUuMS43LjEuNi4xIDEuMS4xIDEuNy4yLjIuMS40LjEuNi4xLjcuMSAxLjQuMyAyLjEuNC4yLjEuNS4xLjcuMmwxLjQuMy45LjNjLjQuMS45LjMgMS4zLjQuNS4xIDEgLjMgMS41LjUuMy4xLjcuMyAxIC40LjQuMi43LjMgMS4xLjUuMi4yLjUuMy43LjQgMS40LjYgMi43IDEuNCAzLjkgMi4yLjEuMS4zLjIuNC4zbDEuMi45aC4xYy45LjYgMS44IDEuMyAyLjYgMi4xLjQuMy44LjcgMS4yIDEuMWwuMi4yYzEuMiAxLjEgMi4yIDIuMyAzLjIgMy42IDAgLjEuMS4yLjIuM2wuOSAxLjJjMCAuMS4xLjEuMS4ybDEuNSAyLjRBMzYuMDMgMzYuMDMgMCAwMTQwOCA1ODRjMCA2LjEtMS42IDExLjktNC4zIDE3LS4xLjItLjIuMy0uMy41bC0xLjUgMi40YzAgLjEtLjEuMS0uMS4ybC0uOSAxLjJjMCAuMS0uMS4yLS4yLjMtMSAxLjItMi4xIDIuNS0zLjIgMy42bC0uMi4yYy0uNC40LS44LjctMS4yIDEuMS0uOC43LTEuNyAxLjQtMi42IDIuMWgtLjFsLTEuMi45Yy0uMS4xLS4zLjItLjQuMy0xLjMuOC0yLjYgMS41LTMuOSAyLjItLjIuMi0uNS4zLS43LjQtLjQuMi0uNy4zLTEuMS41LS4zLjEtLjcuMy0xIC40LS41LjEtMSAuMy0xLjUuNS0uNC4xLS45LjMtMS4zLjRsLS45LjMtMS40LjNjLS4yLjEtLjUuMS0uNy4yLS43LjItMS40LjMtMi4xLjQtLjIuMS0uNC4xLS42LjEtLjUuMS0xLjEuMi0xLjcuMi0uMy4xLS41LjEtLjcuMS0uOC4xLTEuNS4xLTIuMy4xcy0xLjUtLjEtMi4zLS4xYy0uMy0uMS0uNS0uMS0uNy0uMS0uNi0uMS0xLjEtLjEtMS43LS4yLS4yLS4xLS40LS4xLS42LS4xLS43LS4xLTEuNC0uMy0yLjEtLjQtLjItLjEtLjUtLjEtLjctLjJsLTEuNC0uMy0uOS0uM2MtLjQtLjEtLjktLjMtMS4zLS40LS41LS4xLTEtLjMtMS41LS41LS4zLS4xLS43LS4zLTEtLjQtLjQtLjItLjctLjMtMS4xLS41LS4yLS4yLS41LS4zLS43LS40LTEuNC0uNi0yLjctMS40LTMuOS0yLjItLjEtLjEtLjMtLjItLjQtLjNsLTEuMi0uOWgtLjFjLS45LS42LTEuOC0xLjMtMi42LTIuMS0uNC0uMy0uOC0uNy0xLjItMS4xbC0uMi0uMmMtMS4yLTEuMS0yLjItMi4zLTMuMi0zLjYgMC0uMS0uMS0uMi0uMi0uM2wtLjktMS4yYzAtLjEtLjEtLjEtLjEtLjJsLTEuNS0yLjRjLS4xLS4yLS4yLS4zLS4zLS41LTIuNy01LTQuMy0xMC45LTQuMy0xN3MxLjYtMTEuOSA0LjMtMTd6bTI4MC4zLTI3LjljLS4xIDAtLjItLjEtLjQtLjF2MjIxYzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LThWNTM5Yy0uMSAwLS4yLjEtLjQuMSA0Mi0xMy40IDcyLjQtNTIuNyA3Mi40LTk5LjEgMC00Ni40LTMwLjQtODUuNy03Mi40LTk5LjEuMSAwIC4yLjEuNC4xdi03N2MwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2NzdjLjEgMCAuMi0uMS40LS4xLTQyIDEzLjQtNzIuNCA1Mi43LTcyLjQgOTkuMSAwIDQ2LjQgMzAuNCA4NS43IDcyLjQgOTkuMXpNNjUyIDQwNGMxOS45IDAgMzYgMTYuMSAzNiAzNnMtMTYuMSAzNi0zNiAzNi0zNi0xNi4xLTM2LTM2IDE2LjEtMzYgMzYtMzZ6IixmaWxsOmF9fV19fSxuYW1lOiJjb250cm9sIix0aGVtZToidHdvdG9uZSJ9O3QuZGVmYXVsdD1lfSwxNzMwMTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODMyIDY0SDI5NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg0OTZ2Njg4YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LThWOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6TTcwNCAxOTJIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY1MzAuN2MwIDguNSAzLjQgMTYuNiA5LjQgMjIuNmwxNzMuMyAxNzMuM2MyLjIgMi4yIDQuNyA0IDcuNCA1LjV2MS45aDQuMmMzLjUgMS4zIDcuMiAyIDExIDJINzA0YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjIyNGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMzgyIDg5NmgtLjJMMjMyIDc0Ni4ydi0uMmgxNTB2MTUweiJ9fV19LG5hbWU6ImNvcHkiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sODM2NDc6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTgzMiA2NEgyOTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNDk2djY4OGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04Vjk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyek03MDQgMTkySDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NTMwLjdjMCA4LjUgMy40IDE2LjYgOS40IDIyLjZsMTczLjMgMTczLjNjMi4yIDIuMiA0LjcgNCA3LjQgNS41djEuOWg0LjJjMy41IDEuMyA3LjIgMiAxMSAySDcwNGMxNy43IDAgMzItMTQuMyAzMi0zMlYyMjRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTM1MCA4NTYuMkwyNjMuOSA3NzBIMzUwdjg2LjJ6TTY2NCA4ODhINDE0Vjc0NmMwLTIyLjEtMTcuOS00MC00MC00MEgyMzJWMjY0aDQzMnY2MjR6In19XX0sbmFtZToiY29weSIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDU1MzE6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMjMyIDcwNmgxNDJjMjIuMSAwIDQwIDE3LjkgNDAgNDB2MTQyaDI1MFYyNjRIMjMydjQ0MnoiLGZpbGw6bn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODMyIDY0SDI5NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg0OTZ2Njg4YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LThWOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6IixmaWxsOmF9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTcwNCAxOTJIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY1MzAuN2MwIDguNSAzLjQgMTYuNiA5LjQgMjIuNmwxNzMuMyAxNzMuM2MyLjIgMi4yIDQuNyA0IDcuNCA1LjV2MS45aDQuMmMzLjUgMS4zIDcuMiAyIDExIDJINzA0YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjIyNGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMzUwIDg1Ni4yTDI2My45IDc3MEgzNTB2ODYuMnpNNjY0IDg4OEg0MTRWNzQ2YzAtMjIuMS0xNy45LTQwLTQwLTQwSDIzMlYyNjRoNDMydjYyNHoiLGZpbGw6YX19XX19LG5hbWU6ImNvcHkiLHRoZW1lOiJ0d290b25lIn07dC5kZWZhdWx0PWV9LDY2Njc6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em01LjQgNjcwYy0xMTAgMC0xNzMuNC03My4yLTE3My40LTE5NC45di01Mi4zQzM0NCAzNjQuMiA0MDcuNCAyOTAgNTE3LjMgMjkwYzk0LjMgMCAxNjIuNyA2MC43IDE2Mi43IDE0Ny40IDAgMi42LTIuMSA0LjctNC43IDQuN2gtNTYuN2MtNC4yIDAtNy42LTMuMi04LTcuNC00LTQ5LjUtNDAtODMuNC05My04My40LTY1LjMgMC0xMDIuMSA0OC41LTEwMi4xIDEzNS41djUyLjZjMCA4NS43IDM2LjkgMTMzLjYgMTAyLjEgMTMzLjYgNTIuOCAwIDg4LjctMzEuNyA5My03Ny44LjQtNC4xIDMuOC03LjMgOC03LjNoNTYuOGMyLjYgMCA0LjcgMi4xIDQuNyA0LjcgMCA4Mi42LTY4LjcgMTQxLjQtMTYyLjcgMTQxLjR6In19XX0sbmFtZToiY29weXJpZ2h0LWNpcmNsZSIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw4MDIyOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6bTUuNi01MzIuN2M1MyAwIDg5IDMzLjggOTMgODMuNC4zIDQuMiAzLjggNy40IDggNy40aDU2LjdjMi42IDAgNC43LTIuMSA0LjctNC43IDAtODYuNy02OC40LTE0Ny40LTE2Mi43LTE0Ny40QzQwNy40IDI5MCAzNDQgMzY0LjIgMzQ0IDQ4Ni44djUyLjNDMzQ0IDY2MC44IDQwNy40IDczNCA1MTcuMyA3MzRjOTQgMCAxNjIuNy01OC44IDE2Mi43LTE0MS40IDAtMi42LTIuMS00LjctNC43LTQuN2gtNTYuOGMtNC4yIDAtNy42IDMuMi04IDcuMy00LjIgNDYuMS00MC4xIDc3LjgtOTMgNzcuOC02NS4zIDAtMTAyLjEtNDcuOS0xMDIuMS0xMzMuNnYtNTIuNmMuMS04NyAzNy0xMzUuNSAxMDIuMi0xMzUuNXoifX1dfSxuYW1lOiJjb3B5cmlnaHQtY2lyY2xlIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNDUzNjA6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeiIsZmlsbDphfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgMTQwYy0yMDUuNCAwLTM3MiAxNjYuNi0zNzIgMzcyczE2Ni42IDM3MiAzNzIgMzcyIDM3Mi0xNjYuNiAzNzItMzcyLTE2Ni42LTM3Mi0zNzItMzcyem01LjUgNTMzYzUyLjkgMCA4OC44LTMxLjcgOTMtNzcuOC40LTQuMSAzLjgtNy4zIDgtNy4zaDU2LjhjMi42IDAgNC43IDIuMSA0LjcgNC43IDAgODIuNi02OC43IDE0MS40LTE2Mi43IDE0MS40QzQwNy40IDczNCAzNDQgNjYwLjggMzQ0IDUzOS4xdi01Mi4zQzM0NCAzNjQuMiA0MDcuNCAyOTAgNTE3LjMgMjkwYzk0LjMgMCAxNjIuNyA2MC43IDE2Mi43IDE0Ny40IDAgMi42LTIuMSA0LjctNC43IDQuN2gtNTYuN2MtNC4yIDAtNy43LTMuMi04LTcuNC00LTQ5LjYtNDAtODMuNC05My04My40LTY1LjIgMC0xMDIuMSA0OC41LTEwMi4yIDEzNS41djUyLjZjMCA4NS43IDM2LjggMTMzLjYgMTAyLjEgMTMzLjZ6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxNy42IDM1MS4zYzUzIDAgODkgMzMuOCA5MyA4My40LjMgNC4yIDMuOCA3LjQgOCA3LjRoNTYuN2MyLjYgMCA0LjctMi4xIDQuNy00LjcgMC04Ni43LTY4LjQtMTQ3LjQtMTYyLjctMTQ3LjRDNDA3LjQgMjkwIDM0NCAzNjQuMiAzNDQgNDg2Ljh2NTIuM0MzNDQgNjYwLjggNDA3LjQgNzM0IDUxNy4zIDczNGM5NCAwIDE2Mi43LTU4LjggMTYyLjctMTQxLjQgMC0yLjYtMi4xLTQuNy00LjctNC43aC01Ni44Yy00LjIgMC03LjYgMy4yLTggNy4zLTQuMiA0Ni4xLTQwLjEgNzcuOC05MyA3Ny44LTY1LjMgMC0xMDIuMS00Ny45LTEwMi4xLTEzMy42di01Mi42Yy4xLTg3IDM3LTEzNS41IDEwMi4yLTEzNS41eiIsZmlsbDphfX1dfX0sbmFtZToiY29weXJpZ2h0LWNpcmNsZSIsdGhlbWU6InR3b3RvbmUifTt0LmRlZmF1bHQ9ZX0sMjAxMjI6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnptNS42LTUzMi43YzUzIDAgODkgMzMuOCA5MyA4My40LjMgNC4yIDMuOCA3LjQgOCA3LjRoNTYuN2MyLjYgMCA0LjctMi4xIDQuNy00LjcgMC04Ni43LTY4LjQtMTQ3LjQtMTYyLjctMTQ3LjRDNDA3LjQgMjkwIDM0NCAzNjQuMiAzNDQgNDg2Ljh2NTIuM0MzNDQgNjYwLjggNDA3LjQgNzM0IDUxNy4zIDczNGM5NCAwIDE2Mi43LTU4LjggMTYyLjctMTQxLjQgMC0yLjYtMi4xLTQuNy00LjctNC43aC01Ni44Yy00LjIgMC03LjYgMy4yLTggNy4zLTQuMiA0Ni4xLTQwLjEgNzcuOC05MyA3Ny44LTY1LjMgMC0xMDIuMS00Ny45LTEwMi4xLTEzMy42di01Mi42Yy4xLTg3IDM3LTEzNS41IDEwMi4yLTEzNS41eiJ9fV19LG5hbWU6ImNvcHlyaWdodCIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDY1NTE4OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOmZ1bmN0aW9uKGEsbil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnoiLGZpbGw6YX19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDE0MGMtMjA1LjQgMC0zNzIgMTY2LjYtMzcyIDM3MnMxNjYuNiAzNzIgMzcyIDM3MiAzNzItMTY2LjYgMzcyLTM3Mi0xNjYuNi0zNzItMzcyLTM3MnptNS41IDUzM2M1Mi45IDAgODguOC0zMS43IDkzLTc3LjguNC00LjEgMy44LTcuMyA4LTcuM2g1Ni44YzIuNiAwIDQuNyAyLjEgNC43IDQuNyAwIDgyLjYtNjguNyAxNDEuNC0xNjIuNyAxNDEuNEM0MDcuNCA3MzQgMzQ0IDY2MC44IDM0NCA1MzkuMXYtNTIuM0MzNDQgMzY0LjIgNDA3LjQgMjkwIDUxNy4zIDI5MGM5NC4zIDAgMTYyLjcgNjAuNyAxNjIuNyAxNDcuNCAwIDIuNi0yLjEgNC43LTQuNyA0LjdoLTU2LjdjLTQuMiAwLTcuNy0zLjItOC03LjQtNC00OS42LTQwLTgzLjQtOTMtODMuNC02NS4yIDAtMTAyLjEgNDguNS0xMDIuMiAxMzUuNXY1Mi42YzAgODUuNyAzNi44IDEzMy42IDEwMi4xIDEzMy42eiIsZmlsbDpufX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTcuNiAzNTEuM2M1MyAwIDg5IDMzLjggOTMgODMuNC4zIDQuMiAzLjggNy40IDggNy40aDU2LjdjMi42IDAgNC43LTIuMSA0LjctNC43IDAtODYuNy02OC40LTE0Ny40LTE2Mi43LTE0Ny40QzQwNy40IDI5MCAzNDQgMzY0LjIgMzQ0IDQ4Ni44djUyLjNDMzQ0IDY2MC44IDQwNy40IDczNCA1MTcuMyA3MzRjOTQgMCAxNjIuNy01OC44IDE2Mi43LTE0MS40IDAtMi42LTIuMS00LjctNC43LTQuN2gtNTYuOGMtNC4yIDAtNy42IDMuMi04IDcuMy00LjIgNDYuMS00MC4xIDc3LjgtOTMgNzcuOC02NS4zIDAtMTAyLjEtNDcuOS0xMDIuMS0xMzMuNnYtNTIuNmMuMS04NyAzNy0xMzUuNSAxMDIuMi0xMzUuNXoiLGZpbGw6YX19XX19LG5hbWU6ImNvcHlyaWdodCIsdGhlbWU6InR3b3RvbmUifTt0LmRlZmF1bHQ9ZX0sOTc4Mzg6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkyOCAxNjBIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjE2MGg4OTZWMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMyek02NCA4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoODMyYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjQ0MEg2NHYzOTJ6bTU3OS0xODRjMC00LjQgMy42LTggOC04aDE2NWM0LjQgMCA4IDMuNiA4IDh2NzJjMCA0LjQtMy42IDgtOCA4SDY1MWMtNC40IDAtOC0zLjYtOC04di03MnoifX1dfSxuYW1lOiJjcmVkaXQtY2FyZCIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw4MjI1ODpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTI4IDE2MEg5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjQwYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDgzMmMxNy43IDAgMzItMTQuMyAzMi0zMlYxOTJjMC0xNy43LTE0LjMtMzItMzItMzJ6bS03OTIgNzJoNzUydjEyMEgxMzZWMjMyem03NTIgNTYwSDEzNlY0NDBoNzUydjM1MnptLTIzNy02NGgxNjVjNC40IDAgOC0zLjYgOC04di03MmMwLTQuNC0zLjYtOC04LThINjUxYy00LjQgMC04IDMuNi04IDh2NzJjMCA0LjQgMy42IDggOCA4eiJ9fV19LG5hbWU6ImNyZWRpdC1jYXJkIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNjQzMzI6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMTM2IDc5Mmg3NTJWNDQwSDEzNnYzNTJ6bTUwNy0xNDRjMC00LjQgMy42LTggOC04aDE2NWM0LjQgMCA4IDMuNiA4IDh2NzJjMCA0LjQtMy42IDgtOCA4SDY1MWMtNC40IDAtOC0zLjYtOC04di03MnpNMTM2IDIzMmg3NTJ2MTIwSDEzNnoiLGZpbGw6bn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNjUxIDcyOGgxNjVjNC40IDAgOC0zLjYgOC04di03MmMwLTQuNC0zLjYtOC04LThINjUxYy00LjQgMC04IDMuNi04IDh2NzJjMCA0LjQgMy42IDggOCA4eiIsZmlsbDphfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MjggMTYwSDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY2NDBjMCAxNy43IDE0LjMgMzIgMzIgMzJoODMyYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE5MmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDYzMkgxMzZWNDQwaDc1MnYzNTJ6bTAtNDQwSDEzNlYyMzJoNzUydjEyMHoiLGZpbGw6YX19XX19LG5hbWU6ImNyZWRpdC1jYXJkIix0aGVtZToidHdvdG9uZSJ9O3QuZGVmYXVsdD1lfSw5NDUwMzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODk5LjYgMjc2LjVMNzA1IDM5Ni40IDUxOC40IDE0Ny41YTguMDYgOC4wNiAwIDAwLTEyLjkgMEwzMTkgMzk2LjQgMTI0LjMgMjc2LjVjLTUuNy0zLjUtMTMuMSAxLjItMTIuMiA3LjlMMTg4LjUgODY1YzEuMSA3LjkgNy45IDE0IDE2IDE0aDYxNS4xYzggMCAxNC45LTYgMTUuOS0xNGw3Ni40LTU4MC42Yy44LTYuNy02LjUtMTEuNC0xMi4zLTcuOXpNNTEyIDczNC4yYy02Mi4xIDAtMTEyLjYtNTAuNS0xMTIuNi0xMTIuNlM0NDkuOSA1MDkgNTEyIDUwOXMxMTIuNiA1MC41IDExMi42IDExMi42UzU3NC4xIDczNC4yIDUxMiA3MzQuMnptMC0xNjAuOWMtMjYuNiAwLTQ4LjIgMjEuNi00OC4yIDQ4LjMgMCAyNi42IDIxLjYgNDguMyA0OC4yIDQ4LjNzNDguMi0yMS42IDQ4LjItNDguM2MwLTI2LjYtMjEuNi00OC4zLTQ4LjItNDguM3oifX1dfSxuYW1lOiJjcm93biIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw2OTM6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg5OS42IDI3Ni41TDcwNSAzOTYuNCA1MTguNCAxNDcuNWE4LjA2IDguMDYgMCAwMC0xMi45IDBMMzE5IDM5Ni40IDEyNC4zIDI3Ni41Yy01LjctMy41LTEzLjEgMS4yLTEyLjIgNy45TDE4OC41IDg2NWMxLjEgNy45IDcuOSAxNCAxNiAxNGg2MTUuMWM4IDAgMTQuOS02IDE1LjktMTRsNzYuNC01ODAuNmMuOC02LjctNi41LTExLjQtMTIuMy03Ljl6bS0xMjYgNTM0LjFIMjUwLjNsLTUzLjgtNDA5LjQgMTM5LjggODYuMUw1MTIgMjUyLjlsMTc1LjcgMjM0LjQgMTM5LjgtODYuMS01My45IDQwOS40ek01MTIgNTA5Yy02Mi4xIDAtMTEyLjYgNTAuNS0xMTIuNiAxMTIuNlM0NDkuOSA3MzQuMiA1MTIgNzM0LjJzMTEyLjYtNTAuNSAxMTIuNi0xMTIuNlM1NzQuMSA1MDkgNTEyIDUwOXptMCAxNjAuOWMtMjYuNiAwLTQ4LjItMjEuNi00OC4yLTQ4LjMgMC0yNi42IDIxLjYtNDguMyA0OC4yLTQ4LjNzNDguMiAyMS42IDQ4LjIgNDguM2MwIDI2LjYtMjEuNiA0OC4zLTQ4LjIgNDguM3oifX1dfSxuYW1lOiJjcm93biIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDkxMDk5OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOmZ1bmN0aW9uKGEsbil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkxMS45IDI4My45di41TDgzNS41IDg2NWMtMSA4LTcuOSAxNC0xNS45IDE0SDIwNC41Yy04LjEgMC0xNC45LTYuMS0xNi0xNGwtNzYuNC01ODAuNnYtLjYgMS42TDE4OC41IDg2NmMxLjEgNy45IDcuOSAxNCAxNiAxNGg2MTUuMWM4IDAgMTQuOS02IDE1LjktMTRsNzYuNC01ODAuNmMuMS0uNS4xLTEgMC0xLjV6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTc3My42IDgxMC42bDUzLjktNDA5LjQtMTM5LjggODYuMUw1MTIgMjUyLjkgMzM2LjMgNDg3LjNsLTEzOS44LTg2LjEgNTMuOCA0MDkuNGg1MjMuM3ptLTM3NC4yLTE4OWMwLTYyLjEgNTAuNS0xMTIuNiAxMTIuNi0xMTIuNnMxMTIuNiA1MC41IDExMi42IDExMi42djFjMCA2Mi4xLTUwLjUgMTEyLjYtMTEyLjYgMTEyLjZzLTExMi42LTUwLjUtMTEyLjYtMTEyLjZ2LTF6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA3MzQuMmM2MS45IDAgMTEyLjMtNTAuMiAxMTIuNi0xMTIuMXYtLjVjMC02Mi4xLTUwLjUtMTEyLjYtMTEyLjYtMTEyLjZzLTExMi42IDUwLjUtMTEyLjYgMTEyLjZ2LjVjLjMgNjEuOSA1MC43IDExMi4xIDExMi42IDExMi4xem0wLTE2MC45YzI2LjYgMCA0OC4yIDIxLjYgNDguMiA0OC4zIDAgMjYuNi0yMS42IDQ4LjMtNDguMiA0OC4zcy00OC4yLTIxLjYtNDguMi00OC4zYzAtMjYuNiAyMS42LTQ4LjMgNDguMi00OC4zeiIsZmlsbDphfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0xODguNSA4NjVjMS4xIDcuOSA3LjkgMTQgMTYgMTRoNjE1LjFjOCAwIDE0LjktNiAxNS45LTE0bDc2LjQtNTgwLjZ2LS41Yy4zLTYuNC02LjctMTAuOC0xMi4zLTcuNEw3MDUgMzk2LjQgNTE4LjQgMTQ3LjVhOC4wNiA4LjA2IDAgMDAtMTIuOSAwTDMxOSAzOTYuNCAxMjQuMyAyNzYuNWMtNS41LTMuNC0xMi42LjktMTIuMiA3LjN2LjZMMTg4LjUgODY1em0xNDcuOC0zNzcuN0w1MTIgMjUyLjlsMTc1LjcgMjM0LjQgMTM5LjgtODYuMS01My45IDQwOS40SDI1MC4zbC01My44LTQwOS40IDEzOS44IDg2LjF6IixmaWxsOmF9fV19fSxuYW1lOiJjcm93biIsdGhlbWU6InR3b3RvbmUifTt0LmRlZmF1bHQ9ZX0sNDAzNDk6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiAxMjhjLTIxMi4xIDAtMzg0IDE3MS45LTM4NCAzODR2MzYwYzAgMTMuMyAxMC43IDI0IDI0IDI0aDE4NGMzNS4zIDAgNjQtMjguNyA2NC02NFY2MjRjMC0zNS4zLTI4LjctNjQtNjQtNjRIMjAwdi00OGMwLTE3Mi4zIDEzOS43LTMxMiAzMTItMzEyczMxMiAxMzkuNyAzMTIgMzEydjQ4SDY4OGMtMzUuMyAwLTY0IDI4LjctNjQgNjR2MjA4YzAgMzUuMyAyOC43IDY0IDY0IDY0aDE4NGMxMy4zIDAgMjQtMTAuNyAyNC0yNFY1MTJjMC0yMTIuMS0xNzEuOS0zODQtMzg0LTM4NHoifX1dfSxuYW1lOiJjdXN0b21lci1zZXJ2aWNlIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDcwMzA0OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgMTI4Yy0yMTIuMSAwLTM4NCAxNzEuOS0zODQgMzg0djM2MGMwIDEzLjMgMTAuNyAyNCAyNCAyNGgxODRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWNjI0YzAtMzUuMy0yOC43LTY0LTY0LTY0SDIwMHYtNDhjMC0xNzIuMyAxMzkuNy0zMTIgMzEyLTMxMnMzMTIgMTM5LjcgMzEyIDMxMnY0OEg2ODhjLTM1LjMgMC02NCAyOC43LTY0IDY0djIwOGMwIDM1LjMgMjguNyA2NCA2NCA2NGgxODRjMTMuMyAwIDI0LTEwLjcgMjQtMjRWNTEyYzAtMjEyLjEtMTcxLjktMzg0LTM4NC0zODR6TTMyOCA2MzJ2MTkySDIwMFY2MzJoMTI4em00OTYgMTkySDY5NlY2MzJoMTI4djE5MnoifX1dfSxuYW1lOiJjdXN0b21lci1zZXJ2aWNlIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sODE0NTA6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNjk2IDYzMmgxMjh2MTkySDY5NnptLTQ5NiAwaDEyOHYxOTJIMjAweiIsZmlsbDpufX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgMTI4Yy0yMTIuMSAwLTM4NCAxNzEuOS0zODQgMzg0djM2MGMwIDEzLjMgMTAuNyAyNCAyNCAyNGgxODRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWNjI0YzAtMzUuMy0yOC43LTY0LTY0LTY0SDIwMHYtNDhjMC0xNzIuMyAxMzkuNy0zMTIgMzEyLTMxMnMzMTIgMTM5LjcgMzEyIDMxMnY0OEg2ODhjLTM1LjMgMC02NCAyOC43LTY0IDY0djIwOGMwIDM1LjMgMjguNyA2NCA2NCA2NGgxODRjMTMuMyAwIDI0LTEwLjcgMjQtMjRWNTEyYzAtMjEyLjEtMTcxLjktMzg0LTM4NC0zODR6TTMyOCA2MzJ2MTkySDIwMFY2MzJoMTI4em00OTYgMTkySDY5NlY2MzJoMTI4djE5MnoiLGZpbGw6YX19XX19LG5hbWU6ImN1c3RvbWVyLXNlcnZpY2UiLHRoZW1lOiJ0d290b25lIn07dC5kZWZhdWx0PWV9LDg2MTE0OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0xMTIgNDc2aDE2MHY3MkgxMTJ6bTMyMCAwaDE2MHY3Mkg0MzJ6bTMyMCAwaDE2MHY3Mkg3NTJ6In19XX0sbmFtZToiZGFzaCIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDEwNTYwOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MjQuOCAzODUuNmE0NDYuNyA0NDYuNyAwIDAwLTk2LTE0Mi40IDQ0Ni43IDQ0Ni43IDAgMDAtMTQyLjQtOTZDNjMxLjEgMTIzLjggNTcyLjUgMTEyIDUxMiAxMTJzLTExOS4xIDExLjgtMTc0LjQgMzUuMmE0NDYuNyA0NDYuNyAwIDAwLTE0Mi40IDk2IDQ0Ni43IDQ0Ni43IDAgMDAtOTYgMTQyLjRDNzUuOCA0NDAuOSA2NCA0OTkuNSA2NCA1NjBjMCAxMzIuNyA1OC4zIDI1Ny43IDE1OS45IDM0My4xbDEuNyAxLjRjNS44IDQuOCAxMy4xIDcuNSAyMC42IDcuNWg1MzEuN2M3LjUgMCAxNC44LTIuNyAyMC42LTcuNWwxLjctMS40QzkwMS43IDgxNy43IDk2MCA2OTIuNyA5NjAgNTYwYzAtNjAuNS0xMS45LTExOS4xLTM1LjItMTc0LjR6TTQ4MiAyMzJjMC00LjQgMy42LTggOC04aDQ0YzQuNCAwIDggMy42IDggOHY4MGMwIDQuNC0zLjYgOC04IDhoLTQ0Yy00LjQgMC04LTMuNi04LTh2LTgwek0yNzAgNTgyYzAgNC40LTMuNiA4LTggOGgtODBjLTQuNCAwLTgtMy42LTgtOHYtNDRjMC00LjQgMy42LTggOC04aDgwYzQuNCAwIDggMy42IDggOHY0NHptOTAuNy0yMDQuNWwtMzEuMSAzMS4xYTguMDMgOC4wMyAwIDAxLTExLjMgMEwyNjEuNyAzNTJhOC4wMyA4LjAzIDAgMDEwLTExLjNsMzEuMS0zMS4xYzMuMS0zLjEgOC4yLTMuMSAxMS4zIDBsNTYuNiA1Ni42YzMuMSAzLjEgMy4xIDguMiAwIDExLjN6bTI5MS4xIDgzLjZsLTg0LjUgODQuNWM1IDE4LjcuMiAzOS40LTE0LjUgNTQuMWE1NS45NSA1NS45NSAwIDAxLTc5LjIgMCA1NS45NSA1NS45NSAwIDAxMC03OS4yIDU1Ljg3IDU1Ljg3IDAgMDE1NC4xLTE0LjVsODQuNS04NC41YzMuMS0zLjEgOC4yLTMuMSAxMS4zIDBsMjguMyAyOC4zYzMuMSAzLjEgMy4xIDguMSAwIDExLjN6bTQzLTUyLjRsLTMxLjEtMzEuMWE4LjAzIDguMDMgMCAwMTAtMTEuM2w1Ni42LTU2LjZjMy4xLTMuMSA4LjItMy4xIDExLjMgMGwzMS4xIDMxLjFjMy4xIDMuMSAzLjEgOC4yIDAgMTEuM2wtNTYuNiA1Ni42YTguMDMgOC4wMyAwIDAxLTExLjMgMHpNODQ2IDU4MmMwIDQuNC0zLjYgOC04IDhoLTgwYy00LjQgMC04LTMuNi04LTh2LTQ0YzAtNC40IDMuNi04IDgtOGg4MGM0LjQgMCA4IDMuNiA4IDh2NDR6In19XX0sbmFtZToiZGFzaGJvYXJkIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDM1ODE1OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MjQuOCAzODUuNmE0NDYuNyA0NDYuNyAwIDAwLTk2LTE0Mi40IDQ0Ni43IDQ0Ni43IDAgMDAtMTQyLjQtOTZDNjMxLjEgMTIzLjggNTcyLjUgMTEyIDUxMiAxMTJzLTExOS4xIDExLjgtMTc0LjQgMzUuMmE0NDYuNyA0NDYuNyAwIDAwLTE0Mi40IDk2IDQ0Ni43IDQ0Ni43IDAgMDAtOTYgMTQyLjRDNzUuOCA0NDAuOSA2NCA0OTkuNSA2NCA1NjBjMCAxMzIuNyA1OC4zIDI1Ny43IDE1OS45IDM0My4xbDEuNyAxLjRjNS44IDQuOCAxMy4xIDcuNSAyMC42IDcuNWg1MzEuN2M3LjUgMCAxNC44LTIuNyAyMC42LTcuNWwxLjctMS40QzkwMS43IDgxNy43IDk2MCA2OTIuNyA5NjAgNTYwYzAtNjAuNS0xMS45LTExOS4xLTM1LjItMTc0LjR6TTc2MS40IDgzNkgyNjIuNkEzNzEuMTIgMzcxLjEyIDAgMDExNDAgNTYwYzAtOTkuNCAzOC43LTE5Mi44IDEwOS0yNjMgNzAuMy03MC4zIDE2My43LTEwOSAyNjMtMTA5IDk5LjQgMCAxOTIuOCAzOC43IDI2MyAxMDkgNzAuMyA3MC4zIDEwOSAxNjMuNyAxMDkgMjYzIDAgMTA1LjYtNDQuNSAyMDUuNS0xMjIuNiAyNzZ6TTYyMy41IDQyMS41YTguMDMgOC4wMyAwIDAwLTExLjMgMEw1MjcuNyA1MDZjLTE4LjctNS0zOS40LS4yLTU0LjEgMTQuNWE1NS45NSA1NS45NSAwIDAwMCA3OS4yIDU1Ljk1IDU1Ljk1IDAgMDA3OS4yIDAgNTUuODcgNTUuODcgMCAwMDE0LjUtNTQuMWw4NC41LTg0LjVjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM2wtMjguMy0yOC4zek00OTAgMzIwaDQ0YzQuNCAwIDgtMy42IDgtOHYtODBjMC00LjQtMy42LTgtOC04aC00NGMtNC40IDAtOCAzLjYtOCA4djgwYzAgNC40IDMuNiA4IDggOHptMjYwIDIxOHY0NGMwIDQuNCAzLjYgOCA4IDhoODBjNC40IDAgOC0zLjYgOC04di00NGMwLTQuNC0zLjYtOC04LThoLTgwYy00LjQgMC04IDMuNi04IDh6bTEyLjctMTk3LjJsLTMxLjEtMzEuMWE4LjAzIDguMDMgMCAwMC0xMS4zIDBsLTU2LjYgNTYuNmE4LjAzIDguMDMgMCAwMDAgMTEuM2wzMS4xIDMxLjFjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGw1Ni42LTU2LjZjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM3ptLTQ1OC42LTMxLjFhOC4wMyA4LjAzIDAgMDAtMTEuMyAwbC0zMS4xIDMxLjFhOC4wMyA4LjAzIDAgMDAwIDExLjNsNTYuNiA1Ni42YzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBsMzEuMS0zMS4xYzMuMS0zLjEgMy4xLTguMiAwLTExLjNsLTU2LjYtNTYuNnpNMjYyIDUzMGgtODBjLTQuNCAwLTggMy42LTggOHY0NGMwIDQuNCAzLjYgOCA4IDhoODBjNC40IDAgOC0zLjYgOC04di00NGMwLTQuNC0zLjYtOC04LTh6In19XX0sbmFtZToiZGFzaGJvYXJkIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sODU4Mjc6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDE4OGMtOTkuMyAwLTE5Mi43IDM4LjctMjYzIDEwOS03MC4zIDcwLjItMTA5IDE2My42LTEwOSAyNjMgMCAxMDUuNiA0NC41IDIwNS41IDEyMi42IDI3Nmg0OTguOEEzNzEuMTIgMzcxLjEyIDAgMDA4ODQgNTYwYzAtOTkuMy0zOC43LTE5Mi43LTEwOS0yNjMtNzAuMi03MC4zLTE2My42LTEwOS0yNjMtMTA5em0tMzAgNDRjMC00LjQgMy42LTggOC04aDQ0YzQuNCAwIDggMy42IDggOHY4MGMwIDQuNC0zLjYgOC04IDhoLTQ0Yy00LjQgMC04LTMuNi04LTh2LTgwek0yNzAgNTgyYzAgNC40LTMuNiA4LTggOGgtODBjLTQuNCAwLTgtMy42LTgtOHYtNDRjMC00LjQgMy42LTggOC04aDgwYzQuNCAwIDggMy42IDggOHY0NHptOTAuNy0yMDQuNGwtMzEuMSAzMS4xYTguMDMgOC4wMyAwIDAxLTExLjMgMGwtNTYuNi01Ni42YTguMDMgOC4wMyAwIDAxMC0xMS4zbDMxLjEtMzEuMWMzLjEtMy4xIDguMi0zLjEgMTEuMyAwbDU2LjYgNTYuNmMzLjEgMy4xIDMuMSA4LjIgMCAxMS4zem0yOTEuMSA4My41bC04NC41IDg0LjVjNSAxOC43LjIgMzkuNC0xNC41IDU0LjFhNTUuOTUgNTUuOTUgMCAwMS03OS4yIDAgNTUuOTUgNTUuOTUgMCAwMTAtNzkuMiA1NS44NyA1NS44NyAwIDAxNTQuMS0xNC41bDg0LjUtODQuNWMzLjEtMy4xIDguMi0zLjEgMTEuMyAwbDI4LjMgMjguM2MzLjEgMy4xIDMuMSA4LjIgMCAxMS4zem00My01Mi40bC0zMS4xLTMxLjFhOC4wMyA4LjAzIDAgMDEwLTExLjNsNTYuNi01Ni42YzMuMS0zLjEgOC4yLTMuMSAxMS4zIDBsMzEuMSAzMS4xYzMuMSAzLjEgMy4xIDguMiAwIDExLjNsLTU2LjYgNTYuNmE4LjAzIDguMDMgMCAwMS0xMS4zIDB6TTg0NiA1Mzh2NDRjMCA0LjQtMy42IDgtOCA4aC04MGMtNC40IDAtOC0zLjYtOC04di00NGMwLTQuNCAzLjYtOCA4LThoODBjNC40IDAgOCAzLjYgOCA4eiIsZmlsbDpufX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02MjMuNSA0MjEuNWE4LjAzIDguMDMgMCAwMC0xMS4zIDBMNTI3LjcgNTA2Yy0xOC43LTUtMzkuNC0uMi01NC4xIDE0LjVhNTUuOTUgNTUuOTUgMCAwMDAgNzkuMiA1NS45NSA1NS45NSAwIDAwNzkuMiAwIDU1Ljg3IDU1Ljg3IDAgMDAxNC41LTU0LjFsODQuNS04NC41YzMuMS0zLjEgMy4xLTguMiAwLTExLjNsLTI4LjMtMjguM3pNNDkwIDMyMGg0NGM0LjQgMCA4LTMuNiA4LTh2LTgwYzAtNC40LTMuNi04LTgtOGgtNDRjLTQuNCAwLTggMy42LTggOHY4MGMwIDQuNCAzLjYgOCA4IDh6IixmaWxsOmF9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkyNC44IDM4NS42YTQ0Ni43IDQ0Ni43IDAgMDAtOTYtMTQyLjQgNDQ2LjcgNDQ2LjcgMCAwMC0xNDIuNC05NkM2MzEuMSAxMjMuOCA1NzIuNSAxMTIgNTEyIDExMnMtMTE5LjEgMTEuOC0xNzQuNCAzNS4yYTQ0Ni43IDQ0Ni43IDAgMDAtMTQyLjQgOTYgNDQ2LjcgNDQ2LjcgMCAwMC05NiAxNDIuNEM3NS44IDQ0MC45IDY0IDQ5OS41IDY0IDU2MGMwIDEzMi43IDU4LjMgMjU3LjcgMTU5LjkgMzQzLjFsMS43IDEuNGM1LjggNC44IDEzLjEgNy41IDIwLjYgNy41aDUzMS43YzcuNSAwIDE0LjgtMi43IDIwLjYtNy41bDEuNy0xLjRDOTAxLjcgODE3LjcgOTYwIDY5Mi43IDk2MCA1NjBjMC02MC41LTExLjktMTE5LjEtMzUuMi0xNzQuNHpNNzYxLjQgODM2SDI2Mi42QTM3MS4xMiAzNzEuMTIgMCAwMTE0MCA1NjBjMC05OS40IDM4LjctMTkyLjggMTA5LTI2MyA3MC4zLTcwLjMgMTYzLjctMTA5IDI2My0xMDkgOTkuNCAwIDE5Mi44IDM4LjcgMjYzIDEwOSA3MC4zIDcwLjMgMTA5IDE2My43IDEwOSAyNjMgMCAxMDUuNi00NC41IDIwNS41LTEyMi42IDI3NnoiLGZpbGw6YX19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNzYyLjcgMzQwLjhsLTMxLjEtMzEuMWE4LjAzIDguMDMgMCAwMC0xMS4zIDBsLTU2LjYgNTYuNmE4LjAzIDguMDMgMCAwMDAgMTEuM2wzMS4xIDMxLjFjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGw1Ni42LTU2LjZjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM3pNNzUwIDUzOHY0NGMwIDQuNCAzLjYgOCA4IDhoODBjNC40IDAgOC0zLjYgOC04di00NGMwLTQuNC0zLjYtOC04LThoLTgwYy00LjQgMC04IDMuNi04IDh6TTMwNC4xIDMwOS43YTguMDMgOC4wMyAwIDAwLTExLjMgMGwtMzEuMSAzMS4xYTguMDMgOC4wMyAwIDAwMCAxMS4zbDU2LjYgNTYuNmMzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDMxLjEtMzEuMWMzLjEtMy4xIDMuMS04LjIgMC0xMS4zbC01Ni42LTU2LjZ6TTI2MiA1MzBoLTgwYy00LjQgMC04IDMuNi04IDh2NDRjMCA0LjQgMy42IDggOCA4aDgwYzQuNCAwIDgtMy42IDgtOHYtNDRjMC00LjQtMy42LTgtOC04eiIsZmlsbDphfX1dfX0sbmFtZToiZGFzaGJvYXJkIix0aGVtZToidHdvdG9uZSJ9O3QuZGVmYXVsdD1lfSw0ODkzMTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODMyIDY0SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MjI0aDcwNFY5NmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMjg4IDIzMmMtMjIuMSAwLTQwLTE3LjktNDAtNDBzMTcuOS00MCA0MC00MCA0MCAxNy45IDQwIDQwLTE3LjkgNDAtNDAgNDB6TTE2MCA5MjhjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjcwNEgxNjB2MjI0em0xMjgtMTM2YzIyLjEgMCA0MCAxNy45IDQwIDQwcy0xNy45IDQwLTQwIDQwLTQwLTE3LjktNDAtNDAgMTcuOS00MCA0MC00MHpNMTYwIDY0MGg3MDRWMzg0SDE2MHYyNTZ6bTEyOC0xNjhjMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDAtNDAtMTcuOS00MC00MCAxNy45LTQwIDQwLTQweiJ9fV19LG5hbWU6ImRhdGFiYXNlIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDM2MzU2OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04MzIgNjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNjAwIDcyaDU2MHYyMDhIMjMyVjEzNnptNTYwIDQ4MEgyMzJWNDA4aDU2MHYyMDh6bTAgMjcySDIzMlY2ODBoNTYwdjIwOHpNMzA0IDI0MGE0MCA0MCAwIDEwODAgMCA0MCA0MCAwIDEwLTgwIDB6bTAgMjcyYTQwIDQwIDAgMTA4MCAwIDQwIDQwIDAgMTAtODAgMHptMCAyNzJhNDAgNDAgMCAxMDgwIDAgNDAgNDAgMCAxMC04MCAweiJ9fV19LG5hbWU6ImRhdGFiYXNlIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNzQ4NzY6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMjMyIDYxNmg1NjBWNDA4SDIzMnYyMDh6bTExMi0xNDRjMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDAtNDAtMTcuOS00MC00MCAxNy45LTQwIDQwLTQwek0yMzIgODg4aDU2MFY2ODBIMjMydjIwOHptMTEyLTE0NGMyMi4xIDAgNDAgMTcuOSA0MCA0MHMtMTcuOSA0MC00MCA0MC00MC0xNy45LTQwLTQwIDE3LjktNDAgNDAtNDB6TTIzMiAzNDRoNTYwVjEzNkgyMzJ2MjA4em0xMTItMTQ0YzIyLjEgMCA0MCAxNy45IDQwIDQwcy0xNy45IDQwLTQwIDQwLTQwLTE3LjktNDAtNDAgMTcuOS00MCA0MC00MHoiLGZpbGw6bn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMzA0IDUxMmE0MCA0MCAwIDEwODAgMCA0MCA0MCAwIDEwLTgwIDB6bTAgMjcyYTQwIDQwIDAgMTA4MCAwIDQwIDQwIDAgMTAtODAgMHptMC01NDRhNDAgNDAgMCAxMDgwIDAgNDAgNDAgMCAxMC04MCAweiIsZmlsbDphfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04MzIgNjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgODI0SDIzMlY2ODBoNTYwdjIwOHptMC0yNzJIMjMyVjQwOGg1NjB2MjA4em0wLTI3MkgyMzJWMTM2aDU2MHYyMDh6IixmaWxsOmF9fV19fSxuYW1lOiJkYXRhYmFzZSIsdGhlbWU6InR3b3RvbmUifTt0LmRlZmF1bHQ9ZX0sODAyOTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6ImRlZnMiLGF0dHJzOnt9LGNoaWxkcmVuOlt7dGFnOiJzdHlsZSIsYXR0cnM6e319XX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02NTEuMSA2NDEuOWE3Ljg0IDcuODQgMCAwMC01LjEtMS45aC01NC43Yy0yLjQgMC00LjYgMS4xLTYuMSAyLjlMNTEyIDczMC43bC03My4xLTg3LjhhOC4xIDguMSAwIDAwLTYuMS0yLjlIMzc4Yy0xLjkgMC0zLjcuNy01LjEgMS45YTcuOTcgNy45NyAwIDAwLTEgMTEuM0w0NzQuMiA3NzYgMzcxLjggODk4LjlhOC4wNiA4LjA2IDAgMDA2LjEgMTMuMmg1NC43YzIuNCAwIDQuNi0xLjEgNi4xLTIuOWw3My4xLTg3LjggNzMuMSA4Ny44YTguMSA4LjEgMCAwMDYuMSAyLjloNTVjMS45IDAgMy43LS43IDUuMS0xLjkgMy40LTIuOCAzLjktNy45IDEtMTEuM0w1NDkuOCA3NzZsMTAyLjQtMTIyLjljMi44LTMuNCAyLjMtOC40LTEuMS0xMS4yek00NzIgNTQ0aDgwYzQuNCAwIDgtMy42IDgtOFYxMjBjMC00LjQtMy42LTgtOC04aC04MGMtNC40IDAtOCAzLjYtOCA4djQxNmMwIDQuNCAzLjYgOCA4IDh6TTM1MCAzODZIMTg0VjEzNmMwLTMuMy0yLjctNi02LTZoLTYwYy0zLjMgMC02IDIuNy02IDZ2MjkyYzAgMTYuNiAxMy40IDMwIDMwIDMwaDIwOGMzLjMgMCA2LTIuNyA2LTZ2LTYwYzAtMy4zLTIuNy02LTYtNnptNTU2LTI1NmgtNjBjLTMuMyAwLTYgMi43LTYgNnYyNTBINjc0Yy0zLjMgMC02IDIuNy02IDZ2NjBjMCAzLjMgMi43IDYgNiA2aDIwOGMxNi42IDAgMzAtMTMuNCAzMC0zMFYxMzZjMC0zLjMtMi43LTYtNi02eiJ9fV19LG5hbWU6ImRlbGV0ZS1jb2x1bW4iLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw4NDMxMzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODY0IDI1Nkg3MzZ2LTgwYzAtMzUuMy0yOC43LTY0LTY0LTY0SDM1MmMtMzUuMyAwLTY0IDI4LjctNjQgNjR2ODBIMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnYzMmMwIDQuNCAzLjYgOCA4IDhoNjAuNGwyNC43IDUyM2MxLjYgMzQuMSAyOS44IDYxIDYzLjkgNjFoNDU0YzM0LjIgMCA2Mi4zLTI2LjggNjMuOS02MWwyNC43LTUyM0g4ODhjNC40IDAgOC0zLjYgOC04di0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTIwMCAwSDM2MHYtNzJoMzA0djcyeiJ9fV19LG5hbWU6ImRlbGV0ZSIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw5MzAwMzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMzYwIDE4NGgtOGM0LjQgMCA4LTMuNiA4LTh2OGgzMDR2LThjMCA0LjQgMy42IDggOCA4aC04djcyaDcydi04MGMwLTM1LjMtMjguNy02NC02NC02NEgzNTJjLTM1LjMgMC02NCAyOC43LTY0IDY0djgwaDcydi03MnptNTA0IDcySDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MzJjMCA0LjQgMy42IDggOCA4aDYwLjRsMjQuNyA1MjNjMS42IDM0LjEgMjkuOCA2MSA2My45IDYxaDQ1NGMzNC4yIDAgNjIuMy0yNi44IDYzLjktNjFsMjQuNy01MjNIODg4YzQuNCAwIDgtMy42IDgtOHYtMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTczMS4zIDg0MEgyOTIuN2wtMjQuMi01MTJoNDg3bC0yNC4yIDUxMnoifX1dfSxuYW1lOiJkZWxldGUiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw2NDQwNjpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6ImRlZnMiLGF0dHJzOnt9LGNoaWxkcmVuOlt7dGFnOiJzdHlsZSIsYXR0cnM6e319XX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04MTkuOCA1MTJsMTAyLjQtMTIyLjlhOC4wNiA4LjA2IDAgMDAtNi4xLTEzLjJoLTU0LjdjLTIuNCAwLTQuNiAxLjEtNi4xIDIuOUw3ODIgNDY2LjdsLTczLjEtODcuOGE4LjEgOC4xIDAgMDAtNi4xLTIuOUg2NDhjLTEuOSAwLTMuNy43LTUuMSAxLjlhNy45NyA3Ljk3IDAgMDAtMSAxMS4zTDc0NC4yIDUxMiA2NDEuOCA2MzQuOWE4LjA2IDguMDYgMCAwMDYuMSAxMy4yaDU0LjdjMi40IDAgNC42LTEuMSA2LjEtMi45bDczLjEtODcuOCA3My4xIDg3LjhhOC4xIDguMSAwIDAwNi4xIDIuOWg1NWMxLjkgMCAzLjctLjcgNS4xLTEuOSAzLjQtMi44IDMuOS03LjkgMS0xMS4zTDgxOS44IDUxMnpNNTM2IDQ2NEgxMjBjLTQuNCAwLTggMy42LTggOHY4MGMwIDQuNCAzLjYgOCA4IDhoNDE2YzQuNCAwIDgtMy42IDgtOHYtODBjMC00LjQtMy42LTgtOC04em0tODQgMjA0aC02MGMtMy4zIDAtNiAyLjctNiA2djE2NkgxMzZjLTMuMyAwLTYgMi43LTYgNnY2MGMwIDMuMyAyLjcgNiA2IDZoMjkyYzE2LjYgMCAzMC0xMy40IDMwLTMwVjY3NGMwLTMuMy0yLjctNi02LTZ6TTEzNiAxODRoMjUwdjE2NmMwIDMuMyAyLjcgNiA2IDZoNjBjMy4zIDAgNi0yLjcgNi02VjE0MmMwLTE2LjYtMTMuNC0zMC0zMC0zMEgxMzZjLTMuMyAwLTYgMi43LTYgNnY2MGMwIDMuMyAyLjcgNiA2IDZ6In19XX0sbmFtZToiZGVsZXRlLXJvdyIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDQ0MTY0OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOmZ1bmN0aW9uKGEsbil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTI5Mi43IDg0MGg0MzguNmwyNC4yLTUxMmgtNDg3eiIsZmlsbDpufX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NjQgMjU2SDczNnYtODBjMC0zNS4zLTI4LjctNjQtNjQtNjRIMzUyYy0zNS4zIDAtNjQgMjguNy02NCA2NHY4MEgxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjMyYzAgNC40IDMuNiA4IDggOGg2MC40bDI0LjcgNTIzYzEuNiAzNC4xIDI5LjggNjEgNjMuOSA2MWg0NTRjMzQuMiAwIDYyLjMtMjYuOCA2My45LTYxbDI0LjctNTIzSDg4OGM0LjQgMCA4LTMuNiA4LTh2LTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNTA0LTcyaDMwNHY3MkgzNjB2LTcyem0zNzEuMyA2NTZIMjkyLjdsLTI0LjItNTEyaDQ4N2wtMjQuMiA1MTJ6IixmaWxsOmF9fV19fSxuYW1lOiJkZWxldGUiLHRoZW1lOiJ0d290b25lIn07dC5kZWZhdWx0PWV9LDE1NDEyOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoiZGVmcyIsYXR0cnM6e30sY2hpbGRyZW46W3t0YWc6InN0eWxlIixhdHRyczp7fX1dfSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTYzMiA2OTguM2wxNDEuOS0xMTJhOCA4IDAgMDAwLTEyLjZMNjMyIDQ2MS43Yy01LjMtNC4yLTEzLS40LTEzIDYuM3Y3NkgyOTVjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoMzI0djc2YzAgNi43IDcuOCAxMC40IDEzIDYuM3ptMjYxLjMtNDA1TDczMC43IDEzMC43Yy03LjUtNy41LTE2LjctMTMtMjYuNy0xNlYxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYyNzhjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFYxODRoMTM2djEzNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmgzMjBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjA1LjhsMTM2IDEzNlY0MjJjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtODMuNWMwLTE3LTYuNy0zMy4yLTE4LjctNDUuMnpNNjQwIDI4OEgzODRWMTg0aDI1NnYxMDR6bTI2NCA0MzZoLTU2Yy00LjQgMC04IDMuNi04IDh2MTA4SDE4NFY3MzJjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djE0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWNzMyYzAtNC40LTMuNi04LTgtOHoifX1dfSxuYW1lOiJkZWxpdmVyZWQtcHJvY2VkdXJlIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sMzE2MjE6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4OC4zIDY5My4yYy00Mi41LTI0LjYtOTQuMy0xOC0xMjkuMiAxMi44bC01My0zMC43VjUyMy42YzAtMTUuNy04LjQtMzAuMy0yMi0zOC4xbC0xMzYtNzguM3YtNjcuMWM0NC4yLTE1IDc2LTU2LjggNzYtMTA2LjEgMC02MS45LTUwLjEtMTEyLTExMi0xMTJzLTExMiA1MC4xLTExMiAxMTJjMCA0OS4zIDMxLjggOTEuMSA3NiAxMDYuMXY2Ny4xbC0xMzYgNzguM2MtMTMuNiA3LjgtMjIgMjIuNC0yMiAzOC4xdjE1MS42bC01MyAzMC43Yy0zNC45LTMwLjgtODYuOC0zNy40LTEyOS4yLTEyLjgtNTMuNSAzMS03MS43IDk5LjQtNDEgMTUyLjkgMzAuOCA1My41IDk4LjkgNzEuOSAxNTIuMiA0MSA0Mi41LTI0LjYgNjIuNy03MyA1My42LTExOC44bDQ4LjctMjguMyAxNDAuNiA4MWM2LjggMy45IDE0LjQgNS45IDIyIDUuOXMxNS4yLTIgMjItNS45TDY3NC41IDc0MGw0OC43IDI4LjNjLTkuMSA0NS43IDExLjIgOTQuMiA1My42IDExOC44IDUzLjMgMzAuOSAxMjEuNSAxMi42IDE1Mi4yLTQxIDMwLjgtNTMuNiAxMi42LTEyMi00MC43LTE1Mi45em0tNjczIDEzOC40YTQ3LjYgNDcuNiAwIDAxLTY1LjItMTcuNmMtMTMuMi0yMi45LTUuNC01Mi4zIDE3LjUtNjUuNWE0Ny42IDQ3LjYgMCAwMTY1LjIgMTcuNmMxMy4yIDIyLjkgNS40IDUyLjMtMTcuNSA2NS41ek01MjIgNDYzLjh6TTQ2NCAyMzRhNDguMDEgNDguMDEgMCAwMTk2IDAgNDguMDEgNDguMDEgMCAwMS05NiAwem0xNzAgNDQ2LjJsLTEyMiA3MC4zLTEyMi03MC4zVjUzOS44bDEyMi03MC4zIDEyMiA3MC4zdjE0MC40em0yMzkuOSAxMzMuOWMtMTMuMiAyMi45LTQyLjQgMzAuOC02NS4yIDE3LjYtMjIuOC0xMy4yLTMwLjctNDIuNi0xNy41LTY1LjVzNDIuNC0zMC44IDY1LjItMTcuNmMyMi45IDEzLjIgMzAuNyA0Mi41IDE3LjUgNjUuNXoifX1dfSxuYW1lOiJkZXBsb3ltZW50LXVuaXQiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSwzOTMxODpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTI4IDE0MEg5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDM4MHYxMTJIMzA0Yy04LjggMC0xNiA3LjItMTYgMTZ2NDhjMCA0LjQgMy42IDggOCA4aDQzMmM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtOC44LTcuMi0xNi0xNi0xNkg1NDhWNzAwaDM4MGMxNy43IDAgMzItMTQuMyAzMi0zMlYxNzJjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA0ODhIMTM2VjIxMmg3NTJ2NDE2eiJ9fV19LG5hbWU6ImRlc2t0b3AiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSwyNDc3MTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODU0LjIgMzA2LjZMNjExLjMgNzIuOWMtNi01LjctMTMuOS04LjktMjIuMi04LjlIMjk2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDI3N2wyMTkgMjEwLjZWODI0YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LThWMzI5LjZjMC04LjctMy41LTE3LTkuOC0yM3pNNTUzLjQgMjAxLjRjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjcwNGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg1MTJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzk3LjNjMC04LjUtMy40LTE2LjYtOS40LTIyLjZMNTUzLjQgMjAxLjR6TTU2OCA3NTNjMCAzLjgtMy40IDctNy41IDdoLTIyNWMtNC4xIDAtNy41LTMuMi03LjUtN3YtNDJjMC0zLjggMy40LTcgNy41LTdoMjI1YzQuMSAwIDcuNSAzLjIgNy41IDd2NDJ6bTAtMjIwYzAgMy44LTMuNCA3LTcuNSA3SDQ3NnY4NC45YzAgMy45LTMuMSA3LjEtNyA3LjFoLTQyYy0zLjggMC03LTMuMi03LTcuMVY1NDBoLTg0LjVjLTQuMSAwLTcuNS0zLjItNy41LTd2LTQyYzAtMy45IDMuNC03IDcuNS03SDQyMHYtODQuOWMwLTMuOSAzLjItNy4xIDctNy4xaDQyYzMuOSAwIDcgMy4yIDcgNy4xVjQ4NGg4NC41YzQuMSAwIDcuNSAzLjEgNy41IDd2NDJ6In19XX0sbmFtZToiZGlmZiIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw1Njk1ODpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNDc2IDM5OS4xYzAtMy45LTMuMS03LjEtNy03LjFoLTQyYy0zLjggMC03IDMuMi03IDcuMVY0ODRoLTg0LjVjLTQuMSAwLTcuNSAzLjEtNy41IDd2NDJjMCAzLjggMy40IDcgNy41IDdINDIwdjg0LjljMCAzLjkgMy4yIDcuMSA3IDcuMWg0MmMzLjkgMCA3LTMuMiA3LTcuMVY1NDBoODQuNWM0LjEgMCA3LjUtMy4yIDcuNS03di00MmMwLTMuOS0zLjQtNy03LjUtN0g0NzZ2LTg0Ljl6TTU2MC41IDcwNGgtMjI1Yy00LjEgMC03LjUgMy4yLTcuNSA3djQyYzAgMy44IDMuNCA3IDcuNSA3aDIyNWM0LjEgMCA3LjUtMy4yIDcuNS03di00MmMwLTMuOC0zLjQtNy03LjUtN3ptLTcuMS01MDIuNmMtNi02LTE0LjEtOS40LTIyLjYtOS40SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzA0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDUxMmMxNy43IDAgMzItMTQuMyAzMi0zMlYzOTcuM2MwLTguNS0zLjQtMTYuNi05LjQtMjIuNkw1NTMuNCAyMDEuNHpNNjY0IDg4OEgyMzJWMjY0aDI4Mi4yTDY2NCA0MTMuOFY4ODh6bTE5MC4yLTU4MS40TDYxMS4zIDcyLjljLTYtNS43LTEzLjktOC45LTIyLjItOC45SDI5NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGgyNzdsMjE5IDIxMC42VjgyNGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04VjMyOS42YzAtOC43LTMuNS0xNy05LjgtMjN6In19XX0sbmFtZToiZGlmZiIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDg1MTcxOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOmZ1bmN0aW9uKGEsbil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTIzMiAyNjR2NjI0aDQzMlY0MTMuOEw1MTQuMiAyNjRIMjMyem0zMzYgNDg5YzAgMy44LTMuNCA3LTcuNSA3aC0yMjVjLTQuMSAwLTcuNS0zLjItNy41LTd2LTQyYzAtMy44IDMuNC03IDcuNS03aDIyNWM0LjEgMCA3LjUgMy4yIDcuNSA3djQyem0wLTI2MnY0MmMwIDMuOC0zLjQgNy03LjUgN0g0NzZ2ODQuOWMwIDMuOS0zLjEgNy4xLTcgNy4xaC00MmMtMy44IDAtNy0zLjItNy03LjFWNTQwaC04NC41Yy00LjEgMC03LjUtMy4yLTcuNS03di00MmMwLTMuOSAzLjQtNyA3LjUtN0g0MjB2LTg0LjljMC0zLjkgMy4yLTcuMSA3LTcuMWg0MmMzLjkgMCA3IDMuMiA3IDcuMVY0ODRoODQuNWM0LjEgMCA3LjUgMy4xIDcuNSA3eiIsZmlsbDpufX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NTQuMiAzMDYuNkw2MTEuMyA3Mi45Yy02LTUuNy0xMy45LTguOS0yMi4yLTguOUgyOTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoMjc3bDIxOSAyMTAuNlY4MjRjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFYzMjkuNmMwLTguNy0zLjUtMTctOS44LTIzeiIsZmlsbDphfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01NTMuNCAyMDEuNGMtNi02LTE0LjEtOS40LTIyLjYtOS40SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzA0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDUxMmMxNy43IDAgMzItMTQuMyAzMi0zMlYzOTcuM2MwLTguNS0zLjQtMTYuNi05LjQtMjIuNkw1NTMuNCAyMDEuNHpNNjY0IDg4OEgyMzJWMjY0aDI4Mi4yTDY2NCA0MTMuOFY4ODh6IixmaWxsOmF9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQ3NiAzOTkuMWMwLTMuOS0zLjEtNy4xLTctNy4xaC00MmMtMy44IDAtNyAzLjItNyA3LjFWNDg0aC04NC41Yy00LjEgMC03LjUgMy4xLTcuNSA3djQyYzAgMy44IDMuNCA3IDcuNSA3SDQyMHY4NC45YzAgMy45IDMuMiA3LjEgNyA3LjFoNDJjMy45IDAgNy0zLjIgNy03LjFWNTQwaDg0LjVjNC4xIDAgNy41LTMuMiA3LjUtN3YtNDJjMC0zLjktMy40LTctNy41LTdINDc2di04NC45ek01NjAuNSA3MDRoLTIyNWMtNC4xIDAtNy41IDMuMi03LjUgN3Y0MmMwIDMuOCAzLjQgNyA3LjUgN2gyMjVjNC4xIDAgNy41LTMuMiA3LjUtN3YtNDJjMC0zLjgtMy40LTctNy41LTd6IixmaWxsOmF9fV19fSxuYW1lOiJkaWZmIix0aGVtZToidHdvdG9uZSJ9O3QuZGVmYXVsdD1lfSw0NzAyNDpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTczLjcgMjUyLjVDNDIyLjUgMTk3LjQgMjAxLjMgOTYuNyAyMDEuMyA5Ni43Yy0xNS43LTQuMS0xNy45IDExLjEtMTcuOSAxMS4xLTUgNjEuMSAzMy42IDE2MC41IDUzLjYgMTgyLjggMTkuOSAyMi4zIDMxOS4xIDExMy43IDMxOS4xIDExMy43UzMyNiAzNTcuOSAyNzAuNSAzNDEuOWMtNTUuNi0xNi0zNy45IDE3LjgtMzcuOSAxNy44IDExLjQgNjEuNyA2NC45IDEzMS44IDEwNy4yIDEzOC40IDQyLjIgNi42IDIyMC4xIDQgMjIwLjEgNHMtMzUuNSA0LjEtOTMuMiAxMS45Yy00Mi43IDUuOC05NyAxMi41LTExMS4xIDE3LjgtMzMuMSAxMi41IDI0IDYyLjYgMjQgNjIuNiA4NC43IDc2LjggMTI5LjcgNTAuNSAxMjkuNyA1MC41IDMzLjMtMTAuNyA2MS40LTE4LjUgODUuMi0yNC4yTDU2NSA3NDMuMWg4NC42TDYwMyA5MjhsMjA1LjMtMjcxLjlINzAwLjhsMjIuMy0zOC43Yy4zLjUuNC44LjQuOFM3OTkuOCA0OTYuMSA4MjkgNDMzLjhsLjYtMWgtLjFjNS0xMC44IDguNi0xOS43IDEwLTI1LjggMTctNzEuMy0xMTQuNS05OS40LTI2NS44LTE1NC41eiJ9fV19LG5hbWU6ImRpbmdkaW5nIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sMjQxNDE6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0yMjcgMzg1LjNjLTEgNC4yLTMuNSAxMC40LTcgMTcuOGguMWwtLjQuN2MtMjAuMyA0My4xLTczLjEgMTI3LjctNzMuMSAxMjcuN3MtLjEtLjItLjMtLjVsLTE1LjUgMjYuOGg3NC41TDU3NS4xIDgxMGwzMi4zLTEyOGgtNTguNmwyMC40LTg0LjdjLTE2LjUgMy45LTM1LjkgOS40LTU5IDE2LjggMCAwLTMxLjIgMTguMi04OS45LTM1IDAgMC0zOS42LTM0LjctMTYuNi00My40IDkuOC0zLjcgNDcuNC04LjQgNzctMTIuMyA0MC01LjQgNjQuNi04LjIgNjQuNi04LjJTNDIyIDUxNyAzOTIuNyA1MTIuNWMtMjkuMy00LjYtNjYuNC01My4xLTc0LjMtOTUuOCAwIDAtMTIuMi0yMy40IDI2LjMtMTIuMyAzOC41IDExLjEgMTk3LjkgNDMuMiAxOTcuOSA0My4ycy0yMDcuNC02My4zLTIyMS4yLTc4LjdjLTEzLjgtMTUuNC00MC42LTg0LjItMzcuMS0xMjYuNSAwIDAgMS41LTEwLjUgMTIuNC03LjcgMCAwIDE1My4zIDY5LjcgMjU4LjEgMTA3LjkgMTA0LjggMzcuOSAxOTUuOSA1Ny4zIDE4NC4yIDEwNi43eiJ9fV19LG5hbWU6ImRpbmd0YWxrLWNpcmNsZSIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSwzMjMzMzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTczLjcgMjUyLjVDNDIyLjUgMTk3LjQgMjAxLjMgOTYuNyAyMDEuMyA5Ni43Yy0xNS43LTQuMS0xNy45IDExLjEtMTcuOSAxMS4xLTUgNjEuMSAzMy42IDE2MC41IDUzLjYgMTgyLjggMTkuOSAyMi4zIDMxOS4xIDExMy43IDMxOS4xIDExMy43UzMyNiAzNTcuOSAyNzAuNSAzNDEuOWMtNTUuNi0xNi0zNy45IDE3LjgtMzcuOSAxNy44IDExLjQgNjEuNyA2NC45IDEzMS44IDEwNy4yIDEzOC40IDQyLjIgNi42IDIyMC4xIDQgMjIwLjEgNHMtMzUuNSA0LjEtOTMuMiAxMS45Yy00Mi43IDUuOC05NyAxMi41LTExMS4xIDE3LjgtMzMuMSAxMi41IDI0IDYyLjYgMjQgNjIuNiA4NC43IDc2LjggMTI5LjcgNTAuNSAxMjkuNyA1MC41IDMzLjMtMTAuNyA2MS40LTE4LjUgODUuMi0yNC4yTDU2NSA3NDMuMWg4NC42TDYwMyA5MjhsMjA1LjMtMjcxLjlINzAwLjhsMjIuMy0zOC43Yy4zLjUuNC44LjQuOFM3OTkuOCA0OTYuMSA4MjkgNDMzLjhsLjYtMWgtLjFjNS0xMC44IDguNi0xOS43IDEwLTI1LjggMTctNzEuMy0xMTQuNS05OS40LTI2NS44LTE1NC41eiJ9fV19LG5hbWU6ImRpbmd0YWxrIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sODMxMzA6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNzM5IDQ0OS4zYy0xIDQuMi0zLjUgMTAuNC03IDE3LjhoLjFsLS40LjdjLTIwLjMgNDMuMS03My4xIDEyNy43LTczLjEgMTI3LjdzLS4xLS4yLS4zLS41bC0xNS41IDI2LjhoNzQuNUw1NzUuMSA4MTBsMzIuMy0xMjhoLTU4LjZsMjAuNC04NC43Yy0xNi41IDMuOS0zNS45IDkuNC01OSAxNi44IDAgMC0zMS4yIDE4LjItODkuOS0zNSAwIDAtMzkuNi0zNC43LTE2LjYtNDMuNCA5LjgtMy43IDQ3LjQtOC40IDc3LTEyLjMgNDAtNS40IDY0LjYtOC4yIDY0LjYtOC4yUzQyMiA1MTcgMzkyLjcgNTEyLjVjLTI5LjMtNC42LTY2LjQtNTMuMS03NC4zLTk1LjggMCAwLTEyLjItMjMuNCAyNi4zLTEyLjMgMzguNSAxMS4xIDE5Ny45IDQzLjIgMTk3LjkgNDMuMnMtMjA3LjQtNjMuMy0yMjEuMi03OC43Yy0xMy44LTE1LjQtNDAuNi04NC4yLTM3LjEtMTI2LjUgMCAwIDEuNS0xMC41IDEyLjQtNy43IDAgMCAxNTMuMyA2OS43IDI1OC4xIDEwNy45IDEwNC44IDM3LjkgMTk1LjkgNTcuMyAxODQuMiAxMDYuN3oifX1dfSxuYW1lOiJkaW5ndGFsay1zcXVhcmUiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sNTc2NTk6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTgzMi42IDE5MS40Yy04NC42LTg0LjYtMjIxLjUtODQuNi0zMDYgMGwtOTYuOSA5Ni45IDUxIDUxIDk2LjktOTYuOWM1My44LTUzLjggMTQ0LjYtNTkuNSAyMDQgMCA1OS41IDU5LjUgNTMuOCAxNTAuMiAwIDIwNGwtOTYuOSA5Ni45IDUxLjEgNTEuMSA5Ni45LTk2LjljODQuNC04NC42IDg0LjQtMjIxLjUtLjEtMzA2LjF6TTQ0Ni41IDc4MS42Yy01My44IDUzLjgtMTQ0LjYgNTkuNS0yMDQgMC01OS41LTU5LjUtNTMuOC0xNTAuMiAwLTIwNGw5Ni45LTk2LjktNTEuMS01MS4xLTk2LjkgOTYuOWMtODQuNiA4NC42LTg0LjYgMjIxLjUgMCAzMDZzMjIxLjUgODQuNiAzMDYgMGw5Ni45LTk2LjktNTEtNTEtOTYuOCA5N3pNMjYwLjMgMjA5LjRhOC4wMyA4LjAzIDAgMDAtMTEuMyAwTDIwOS40IDI0OWE4LjAzIDguMDMgMCAwMDAgMTEuM2w1NTQuNCA1NTQuNGMzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDM5LjYtMzkuNmMzLjEtMy4xIDMuMS04LjIgMC0xMS4zTDI2MC4zIDIwOS40eiJ9fV19LG5hbWU6ImRpc2Nvbm5lY3QiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSwyN2UzOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6eyJmaWxsLXJ1bGUiOiJldmVub2RkIix2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODExLjE1IDg3YzUxLjE2IDAgOTIuNDEgNDEuMzYgOTQuODUgOTAuMDNWOTYwbC05Ny40LTgyLjY4LTUzLjQ4LTQ4LjY3LTU4LjM1LTUwLjg1IDI0LjM3IDgwLjJIMjEwLjQxYy01MSAwLTkyLjQxLTM4Ljc0LTkyLjQxLTkwLjA2VjE3Ny4yMWMwLTQ4LjY3IDQxLjQ4LTkwLjEgOTIuNi05MC4xaDYwMC4zek01ODguMTYgMjk0LjFoLTEuMDlsLTcuMzQgNy4yOGM3NS4zOCAyMS44IDExMS44NSA1NS44NiAxMTEuODUgNTUuODYtNDguNTgtMjQuMjgtOTIuMzYtMzYuNDItMTM2LjE0LTQxLjMyLTMxLjY0LTQuOTEtNjMuMjgtMi4zMy05MCAwaC03LjI4Yy0xNy4wOSAwLTUzLjQ1IDcuMjctMTAyLjE4IDI2LjctMTYuOTggNy4zOS0yNi43MiAxMi4yMi0yNi43MiAxMi4yMnMzNi40My0zNi40MiAxMTYuNzItNTUuODZsLTQuOS00LjlzLTYwLjgtMi4zMy0xMjYuNDQgNDYuMTVjMCAwLTY1LjY0IDExNC4yNi02NS42NCAyNTUuMTMgMCAwIDM2LjM2IDYzLjI0IDEzNi4xMSA2NS42NCAwIDAgMTQuNTUtMTkuMzcgMjkuMjctMzYuNDItNTYtMTctNzcuODItNTEuMDItNzcuODItNTEuMDJzNC44OCAyLjQgMTIuMTkgNy4yN2gyLjE4YzEuMDkgMCAxLjYuNTQgMi4xOCAxLjA5di4yMWMuNTguNTkgMS4wOSAxLjEgMi4xOCAxLjEgMTIgNC45NCAyNCA5LjggMzMuODIgMTQuNTNhMjk3LjU4IDI5Ny41OCAwIDAwNjUuNDUgMTkuNDhjMzMuODIgNC45IDcyLjU5IDcuMjcgMTE2LjczIDAgMjEuODItNC45IDQzLjY0LTkuNyA2NS40Ni0xOS40NCAxNC4xOC03LjI3IDMxLjYzLTE0LjU0IDUwLjgtMjYuNzkgMCAwLTIxLjgyIDM0LjAyLTgwLjE5IDUxLjAzIDEyIDE2Ljk0IDI4LjkxIDM2LjM0IDI4LjkxIDM2LjM0IDk5Ljc5LTIuMTggMTM4LjU1LTY1LjQyIDE0MC43My02Mi43MyAwLTE0MC42NS02Ni0yNTUuMTMtNjYtMjU1LjEzLTU5LjQ1LTQ0LjEyLTExNS4wOS00NS44LTEyNC45MS00NS44bDIuMDQtLjcyek01OTUgNDU0YzI1LjQ2IDAgNDYgMjEuNzYgNDYgNDguNDEgMCAyNi44My0yMC42NSA0OC41OS00NiA0OC41OXMtNDYtMjEuNzYtNDYtNDguMzdjLjA3LTI2Ljg0IDIwLjc1LTQ4LjUyIDQ2LTQ4LjUyem0tMTY1Ljg1IDBjMjUuMzUgMCA0NS44NSAyMS43NiA0NS44NSA0OC40MSAwIDI2LjgzLTIwLjY1IDQ4LjU5LTQ2IDQ4LjU5cy00Ni0yMS43Ni00Ni00OC4zN2MwLTI2Ljg0IDIwLjY1LTQ4LjUyIDQ2LTQ4LjUyeiJ9fV19LG5hbWU6ImRpc2NvcmQiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sNzEzNDE6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7ImZpbGwtcnVsZSI6ImV2ZW5vZGQiLHZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00MDUgMTU4bC0yNSAzcy0xMTIuMTMgMTIuMjYtMTk0LjAyIDc4LjAyaC0uOTZsLTEuMDIuOTZjLTE4LjM3IDE2LjktMjYuMzcgMzcuNjctMzkgNjguMDRhOTgyLjA4IDk4Mi4wOCAwIDAwLTM4IDExMkM4My4yNyA1MDUuODcgNjQgNjA5Ljg3IDY0IDcwNXY4bDQgOGMyOS42MyA1MiA4Mi4yNCA4NS4xMiAxMzEgMTA4IDQ4Ljc0IDIyLjg4IDkwLjg5IDM1IDEyMCAzNmwxOS4wMi45OSA5Ljk4LTE3IDM1LTYyYzM3LjEzIDguMzggNzkuODggMTQgMTI5IDE0IDQ5LjEyIDAgOTEuODctNS42MiAxMjktMTRsMzUgNjIgMTAuMDIgMTcgMTguOTctMWMyOS4xMi0uOTggNzEuMjctMTMuMTEgMTIwLTM2IDQ4Ljc3LTIyLjg3IDEwMS4zOC01NiAxMzEuMDEtMTA4bDQtOHYtOGMwLTk1LjEzLTE5LjI2LTE5OS4xMy00My0yODQuOThhOTgyLjA4IDk4Mi4wOCAwIDAwLTM4LTExMmMtMTIuNjMtMzAuNC0yMC42My01MS4xNC0zOS02OGwtMS0xLjAzaC0xLjAyQzc1Ni4xNiAxNzMuMjYgNjQ0IDE2MS4wMSA2NDQgMTYxLjAxTDYxOSAxNThsLTkuMDIgMjNzLTkuMjQgMjMuMzctMTQuOTcgNTAuMDJhNjQzLjA0IDY0My4wNCAwIDAwLTgzLjAxLTYuMDFjLTE3LjEyIDAtNDYuNzIgMS4xMi04MyA2LjAxYTM1OS44NSAzNTkuODUgMCAwMC0xNS4wMi01MC4wMXptLTQ0IDczLjAyYzEuMzcgNC40OCAyLjc0IDguMzYgNCAxMi00MS4zOCAxMC4yNC04NS41MSAyNS44Ni0xMjYgNTAuOThsMzQgNTQuMDJDMzU2IDI5Ni41IDQ3NS4yMiAyODkgNTEyIDI4OWMzNi43NCAwIDE1NiA3LjQ5IDIzOSA1OUw3ODUgMjk0Yy00MC40OS0yNS4xMi04NC42Mi00MC43NC0xMjYtNTEgMS4yNi0zLjYyIDIuNjMtNy41IDQtMTIgMjkuODYgNiA4Ni44OSAxOS43NyAxMzQgNTcuMDItLjI2LjEyIDEyIDE4LjYyIDIzIDQ0Ljk5IDExLjI2IDI3LjEzIDIzLjc0IDYzLjI2IDM1IDEwNCAyMS42NCA3OC4xMSAzOC42MyAxNzMuMjUgNDAgMjU2Ljk5LTIwLjE1IDMwLjc1LTU3LjUgNTguNS05Ny4wMiA3Ny4wMkEzMTEuOCAzMTEuOCAwIDAxNzIwIDc5NS45OGwtMTYtMjYuOTdjOS41LTMuNTIgMTguODgtNy4zNiAyNy0xMS4wMSA0OS4yNi0yMS42MyA3Ni00NSA3Ni00NWwtNDItNDhzLTE4IDE2LjUyLTYwIDM1LjAyQzY2My4wMyA3MTguNTIgNTk4Ljg3IDczNyA1MTIgNzM3cy0xNTEtMTguNS0xOTMtMzdjLTQyLTE4LjQ5LTYwLTM1LTYwLTM1bC00MiA0OHMyNi43NCAyMy4zNiA3NiA0NC45OWE0MjQuNDcgNDI0LjQ3IDAgMDAyNyAxMWwtMTYgMjcuMDJhMzExLjggMzExLjggMCAwMS03OC4wMi0yNS4wM2MtMzkuNDgtMTguNS03Ni44Ni00Ni4yNC05Ni45Ni03Ni45OSAxLjM1LTgzLjc0IDE4LjM0LTE3OC44OCA0MC0yNTdBOTE3LjIyIDkxNy4yMiAwIDAxMjA0IDMzM2MxMS0yNi4zNiAyMy4yNi00NC44NiAyMy00NC45OCA0Ny4xMS0zNy4yNSAxMDQuMTQtNTEuMDEgMTM0LTU3bTM5IDIxNy45OWMtMjQuNzQgMC00Ni42MiAxNC4xMS02MCAzMi0xMy4zOCAxNy44OS0yMCAzOS44Ny0yMCA2NHM2LjYyIDQ2LjExIDIwIDY0YzEzLjM4IDE3Ljg5IDM1LjI2IDMyIDYwIDMyIDI0Ljc0IDAgNDYuNjItMTQuMTEgNjAtMzIgMTMuMzgtMTcuODkgMjAtMzkuODcgMjAtNjRzLTYuNjItNDYuMTEtMjAtNjRjLTEzLjM4LTE3Ljg5LTM1LjI2LTMyLTYwLTMybTIyNCAwYy0yNC43NCAwLTQ2LjYyIDE0LjExLTYwIDMyLTEzLjM4IDE3Ljg5LTIwIDM5Ljg3LTIwIDY0czYuNjIgNDYuMTEgMjAgNjRjMTMuMzggMTcuODkgMzUuMjYgMzIgNjAgMzIgMjQuNzQgMCA0Ni42Mi0xNC4xMSA2MC0zMiAxMy4zOC0xNy44OSAyMC0zOS44NyAyMC02NHMtNi42Mi00Ni4xMS0yMC02NGMtMTMuMzgtMTcuODktMzUuMjYtMzItNjAtMzJtLTIyNCA2NGMxLjc2IDAgNCAuNjQgOCA2LjAxIDQgNS4zNSA4IDE0LjcyIDggMjUuOTkgMCAxMS4yNi00IDIwLjY0LTggMjYuMDEtNCA1LjM1LTYuMjQgNS45OS04IDUuOTktMS43NiAwLTQtLjY0LTgtNi4wMmE0NC44MyA0NC44MyAwIDAxLTgtMjUuOThjMC0xMS4yNyA0LTIwLjY0IDgtMjYuMDIgNC01LjM0IDYuMjQtNS45OCA4LTUuOThtMjI0IDBjMS43NiAwIDQgLjY0IDggNi4wMSA0IDUuMzUgOCAxNC43MiA4IDI1Ljk5IDAgMTEuMjYtNCAyMC42NC04IDI2LjAxLTQgNS4zNS02LjI0IDUuOTktOCA1Ljk5LTEuNzYgMC00LS42NC04LTYuMDJhNDQuODMgNDQuODMgMCAwMS04LTI1Ljk4YzAtMTEuMjcgNC0yMC42NCA4LTI2LjAyIDQtNS4zNCA2LjI0LTUuOTggOC01Ljk4In19XX0sbmFtZToiZGlzY29yZCIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDUyMTAwOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODUuOSA0OTAuM2MzLjYtMTIgNS40LTI0LjQgNS40LTM3IDAtMjguMy05LjMtNTUuNS0yNi4xLTc3LjcgMy42LTEyIDUuNC0yNC40IDUuNC0zNyAwLTI4LjMtOS4zLTU1LjUtMjYuMS03Ny43IDMuNi0xMiA1LjQtMjQuNCA1LjQtMzcgMC01MS42LTMwLjctOTguMS03OC4zLTExOC40YTY2LjEgNjYuMSAwIDAwLTI2LjUtNS40SDI3M3Y0MjhoLjNsODUuOCAzMTAuOEMzNzIuOSA4ODkgNDE4LjkgOTI0IDQ3MC45IDkyNGMyOS43IDAgNTcuNC0xMS44IDc3LjktMzMuNCAyMC41LTIxLjUgMzEtNDkuNyAyOS41LTc5LjRsLTYtMTIyLjloMjM5LjljMTIuMSAwIDIzLjktMy4yIDM0LjMtOS4zIDQwLjQtMjMuNSA2NS41LTY2LjEgNjUuNS0xMTEgMC0yOC4zLTkuMy01NS41LTI2LjEtNzcuN3pNMTEyIDEzMnYzNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjVWMTAwaC02NWMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6In19XX0sbmFtZToiZGlzbGlrZSIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw5MDQwMTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODg1LjkgNDkwLjNjMy42LTEyIDUuNC0yNC40IDUuNC0zNyAwLTI4LjMtOS4zLTU1LjUtMjYuMS03Ny43IDMuNi0xMiA1LjQtMjQuNCA1LjQtMzcgMC0yOC4zLTkuMy01NS41LTI2LjEtNzcuNyAzLjYtMTIgNS40LTI0LjQgNS40LTM3IDAtNTEuNi0zMC43LTk4LjEtNzguMy0xMTguNGE2Ni4xIDY2LjEgMCAwMC0yNi41LTUuNEgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjM2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmgxMjkuM2w4NS44IDMxMC44QzM3Mi45IDg4OSA0MTguOSA5MjQgNDcwLjkgOTI0YzI5LjcgMCA1Ny40LTExLjggNzcuOS0zMy40IDIwLjUtMjEuNSAzMS00OS43IDI5LjUtNzkuNGwtNi0xMjIuOWgyMzkuOWMxMi4xIDAgMjMuOS0zLjIgMzQuMy05LjMgNDAuNC0yMy41IDY1LjUtNjYuMSA2NS41LTExMSAwLTI4LjMtOS4zLTU1LjUtMjYuMS03Ny43ek0xODQgNDU2VjE3Mmg4MXYyODRoLTgxem02MjcuMiAxNjAuNEg0OTYuOGw5LjYgMTk4LjRjLjYgMTEuOS00LjcgMjMuMS0xNC42IDMwLjUtNi4xIDQuNS0xMy42IDYuOC0yMS4xIDYuN2E0NC4yOCA0NC4yOCAwIDAxLTQyLjItMzIuM0wzMjkgNDU5LjJWMTcyaDQxNS40YTU2Ljg1IDU2Ljg1IDAgMDEzMy42IDUxLjhjMCA5LjctMi4zIDE4LjktNi45IDI3LjNsLTEzLjkgMjUuNCAyMS45IDE5YTU2Ljc2IDU2Ljc2IDAgMDExOS42IDQzYzAgOS43LTIuMyAxOC45LTYuOSAyNy4zbC0xMy45IDI1LjQgMjEuOSAxOWE1Ni43NiA1Ni43NiAwIDAxMTkuNiA0M2MwIDkuNy0yLjMgMTguOS02LjkgMjcuM2wtMTQgMjUuNSAyMS45IDE5YTU2Ljc2IDU2Ljc2IDAgMDExOS42IDQzYzAgMTkuMS0xMSAzNy41LTI4LjggNDguNHoifX1dfSxuYW1lOiJkaXNsaWtlIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sOTMxNzc6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMjczIDEwMC4xdjQyOGguM2wtLjMtNDI4ek04MjAuNCA1MjVsLTIxLjktMTkgMTQtMjUuNWE1Ni4yIDU2LjIgMCAwMDYuOS0yNy4zYzAtMTYuNS03LjEtMzIuMi0xOS42LTQzbC0yMS45LTE5IDEzLjktMjUuNGE1Ni4yIDU2LjIgMCAwMDYuOS0yNy4zYzAtMTYuNS03LjEtMzIuMi0xOS42LTQzbC0yMS45LTE5IDEzLjktMjUuNGE1Ni4yIDU2LjIgMCAwMDYuOS0yNy4zYzAtMjIuNC0xMy4yLTQyLjYtMzMuNi01MS44SDM0NXYzNDUuMmMxOC42IDY3LjIgNDYuNCAxNjggODMuNSAzMDIuNWE0NC4yOCA0NC4yOCAwIDAwNDIuMiAzMi4zYzcuNS4xIDE1LTIuMiAyMS4xLTYuNyA5LjktNy40IDE1LjItMTguNiAxNC42LTMwLjVsLTkuNi0xOTguNGgzMTQuNEM4MjkgNjA1LjUgODQwIDU4Ny4xIDg0MCA1NjhjMC0xNi41LTcuMS0zMi4yLTE5LjYtNDN6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTExMiAxMzJ2MzY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY1VjEwMGgtNjVjLTE3LjcgMC0zMiAxNC4zLTMyIDMyem03NzMuOSAzNTguM2MzLjYtMTIgNS40LTI0LjQgNS40LTM3IDAtMjguMy05LjMtNTUuNS0yNi4xLTc3LjcgMy42LTEyIDUuNC0yNC40IDUuNC0zNyAwLTI4LjMtOS4zLTU1LjUtMjYuMS03Ny43IDMuNi0xMiA1LjQtMjQuNCA1LjQtMzcgMC01MS42LTMwLjctOTguMS03OC4zLTExOC40YTY2LjEgNjYuMSAwIDAwLTI2LjUtNS40SDI3M2wuMyA0MjggODUuOCAzMTAuOEMzNzIuOSA4ODkgNDE4LjkgOTI0IDQ3MC45IDkyNGMyOS43IDAgNTcuNC0xMS44IDc3LjktMzMuNCAyMC41LTIxLjUgMzEtNDkuNyAyOS41LTc5LjRsLTYtMTIyLjloMjM5LjljMTIuMSAwIDIzLjktMy4yIDM0LjMtOS4zIDQwLjQtMjMuNSA2NS41LTY2LjEgNjUuNS0xMTEgMC0yOC4zLTkuMy01NS41LTI2LjEtNzcuN3ptLTc0LjcgMTI2LjFINDk2LjhsOS42IDE5OC40Yy42IDExLjktNC43IDIzLjEtMTQuNiAzMC41LTYuMSA0LjUtMTMuNiA2LjgtMjEuMSA2LjdhNDQuMjggNDQuMjggMCAwMS00Mi4yLTMyLjNjLTM3LjEtMTM0LjQtNjQuOS0yMzUuMi04My41LTMwMi41VjE3MmgzOTkuNGE1Ni44NSA1Ni44NSAwIDAxMzMuNiA1MS44YzAgOS43LTIuMyAxOC45LTYuOSAyNy4zbC0xMy45IDI1LjQgMjEuOSAxOWE1Ni43NiA1Ni43NiAwIDAxMTkuNiA0M2MwIDkuNy0yLjMgMTguOS02LjkgMjcuM2wtMTMuOSAyNS40IDIxLjkgMTlhNTYuNzYgNTYuNzYgMCAwMTE5LjYgNDNjMCA5LjctMi4zIDE4LjktNi45IDI3LjNsLTE0IDI1LjUgMjEuOSAxOWE1Ni43NiA1Ni43NiAwIDAxMTkuNiA0M2MwIDE5LjEtMTEgMzcuNS0yOC44IDQ4LjR6IixmaWxsOmF9fV19fSxuYW1lOiJkaXNsaWtlIix0aGVtZToidHdvdG9uZSJ9O3QuZGVmYXVsdD1lfSw2MjExMTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnsiZmlsbC1ydWxlIjoiZXZlbm9kZCIsdmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTU1NS44OCA0ODguMjRoLTkyLjYydi04Mi43OWg5Mi42MnptMC0yODYuMjRoLTkyLjYydjg1LjU5aDkyLjYyem0xMDkuNDUgMjAzLjQ1SDU3Mi43djgyLjc5aDkyLjYyem0tMjE4LjktMTAxLjAyaC05Mi42MXY4NC4xOGg5Mi42em0xMDkuNDUgMGgtOTIuNjF2ODQuMThoOTIuNnptMzg4LjY5IDE0MC4zYy0xOS42NS0xNC4wMi02Ny4zNi0xOC4yMy0xMDIuNDQtMTEuMjItNC4yLTMzLjY3LTIzLjg1LTYzLjE0LTU3LjUzLTg5LjhsLTE5LjY1LTEyLjYyLTEyLjYyIDE5LjY0Yy0yNS4yNiAzOS4yOS0zMi4yOCAxMDMuODMtNS42MiAxNDUuOTItMTIuNjMgNy4wMi0zNi40OCAxNS40NC02Ny4zNSAxNS40NEg2Ny41NmMtMTIuNjMgNzEuNTYgOC40MiAxNjQuMTYgNjEuNzQgMjI3LjNDMTgxLjIyIDgwMS4xMyAyNTkuOCA4MzIgMzYwLjgzIDgzMmMyMjAuMyAwIDM4NC40OC0xMDEuMDIgNDYwLjI1LTI4Ni4yNCAyOS40NyAwIDk1LjQyIDAgMTI3LjctNjMuMTQgMS40LTIuOCA5LjgyLTE4LjI0IDExLjIyLTIzLjg1em0tNzE3LjA0LTM5LjI4aC05Mi42MXY4Mi43OWg5Mi42em0xMDkuNDUgMGgtOTIuNjF2ODIuNzloOTIuNnptMTA5LjQ1IDBoLTkyLjYxdjgyLjc5aDkyLjZ6TTMzNi45OCAzMDQuNDNoLTkyLjYxdjg0LjE5aDkyLjZ6In19XX0sbmFtZToiZG9ja2VyIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNDE4MTk6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0yMi4zIDY2NS4ybC4yIDMxLjdjMCA0LjQtMy42IDguMS04IDguMWgtMjguNGMtNC40IDAtOC0zLjYtOC04di0zMS40QzQwMS4zIDcyMyAzNTkuNSA2NzIuNCAzNTUgNjE3LjRjLS40LTQuNyAzLjMtOC43IDgtOC43aDQ2LjJjMy45IDAgNy4zIDIuOCA3LjkgNi42IDUuMSAzMS43IDI5LjggNTUuNCA3NC4xIDYxLjNWNTMzLjlsLTI0LjctNi4zYy01Mi4zLTEyLjUtMTAyLjEtNDUuMS0xMDIuMS0xMTIuNyAwLTcyLjkgNTUuNC0xMTIuMSAxMjYuMi0xMTl2LTMzYzAtNC40IDMuNi04IDgtOGgyOC4xYzQuNCAwIDggMy42IDggOHYzMi43YzY4LjUgNi45IDExOS45IDQ2LjkgMTI1LjkgMTA5LjIuNSA0LjctMy4yIDguOC04IDguOGgtNDQuOWMtNCAwLTcuNC0zLTcuOS02LjktNC0yOS4yLTI3LjQtNTMtNjUuNS01OC4ydjEzNC4zbDI1LjQgNS45YzY0LjggMTYgMTA4LjkgNDcgMTA4LjkgMTE2LjQgMCA3NS4zLTU2IDExNy4zLTEzNC4zIDEyNC4xek00MjYuNiA0MTAuM2MwIDI1LjQgMTUuNyA0NS4xIDQ5LjUgNTcuMyA0LjcgMS45IDkuNCAzLjQgMTUgNXYtMTI0Yy0zNi45IDQuNy02NC41IDI1LjQtNjQuNSA2MS43em0xMTYuNSAxMzUuMmMtMi44LS42LTUuNi0xLjMtOC44LTIuMlY2NzdjNDIuNi0zLjggNzItMjcuMiA3Mi02Ni40IDAtMzAuNy0xNS45LTUwLjctNjMuMi02NS4xeiJ9fV19LG5hbWU6ImRvbGxhci1jaXJjbGUiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sMTYxNDU6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnptNDcuNy0zOTUuMmwtMjUuNC01LjlWMzQ4LjZjMzggNS4yIDYxLjUgMjkgNjUuNSA1OC4yLjUgNCAzLjkgNi45IDcuOSA2LjloNDQuOWM0LjcgMCA4LjQtNC4xIDgtOC44LTYuMS02Mi4zLTU3LjQtMTAyLjMtMTI1LjktMTA5LjJWMjYzYzAtNC40LTMuNi04LTgtOGgtMjguMWMtNC40IDAtOCAzLjYtOCA4djMzYy03MC44IDYuOS0xMjYuMiA0Ni0xMjYuMiAxMTkgMCA2Ny42IDQ5LjggMTAwLjIgMTAyLjEgMTEyLjdsMjQuNyA2LjN2MTQyLjdjLTQ0LjItNS45LTY5LTI5LjUtNzQuMS02MS4zLS42LTMuOC00LTYuNi03LjktNi42SDM2M2MtNC43IDAtOC40IDQtOCA4LjcgNC41IDU1IDQ2LjIgMTA1LjYgMTM1LjIgMTEyLjFWNzYxYzAgNC40IDMuNiA4IDggOGgyOC40YzQuNCAwIDgtMy42IDgtOC4xbC0uMi0zMS43Yzc4LjMtNi45IDEzNC4zLTQ4LjggMTM0LjMtMTI0LS4xLTY5LjQtNDQuMi0xMDAuNC0xMDktMTE2LjR6bS02OC42LTE2LjJjLTUuNi0xLjYtMTAuMy0zLjEtMTUtNS0zMy44LTEyLjItNDkuNS0zMS45LTQ5LjUtNTcuMyAwLTM2LjMgMjcuNS01NyA2NC41LTYxLjd2MTI0ek01MzQuMyA2NzdWNTQzLjNjMy4xLjkgNS45IDEuNiA4LjggMi4yIDQ3LjMgMTQuNCA2My4yIDM0LjQgNjMuMiA2NS4xIDAgMzkuMS0yOS40IDYyLjYtNzIgNjYuNHoifX1dfSxuYW1lOiJkb2xsYXItY2lyY2xlIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNTQ0MTI6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeiIsZmlsbDphfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00MjYuNiA0MTAuM2MwIDI1LjQgMTUuNyA0NS4xIDQ5LjUgNTcuMyA0LjcgMS45IDkuNCAzLjQgMTUgNXYtMTI0Yy0zNyA0LjctNjQuNSAyNS40LTY0LjUgNjEuN3ptMTE2LjUgMTM1LjJjLTIuOS0uNi01LjctMS4zLTguOC0yLjJWNjc3YzQyLjYtMy44IDcyLTI3LjMgNzItNjYuNCAwLTMwLjctMTUuOS01MC43LTYzLjItNjUuMXoiLGZpbGw6bn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDE0MGMtMjA1LjQgMC0zNzIgMTY2LjYtMzcyIDM3MnMxNjYuNiAzNzIgMzcyIDM3MiAzNzItMTY2LjYgMzcyLTM3Mi0xNjYuNi0zNzItMzcyLTM3MnptMjIuNCA1ODkuMmwuMiAzMS43YzAgNC41LTMuNiA4LjEtOCA4LjFoLTI4LjRjLTQuNCAwLTgtMy42LTgtOHYtMzEuNGMtODktNi41LTEzMC43LTU3LjEtMTM1LjItMTEyLjEtLjQtNC43IDMuMy04LjcgOC04LjdoNDYuMmMzLjkgMCA3LjMgMi44IDcuOSA2LjYgNS4xIDMxLjggMjkuOSA1NS40IDc0LjEgNjEuM1Y1MzRsLTI0LjctNi4zYy01Mi4zLTEyLjUtMTAyLjEtNDUuMS0xMDIuMS0xMTIuNyAwLTczIDU1LjQtMTEyLjEgMTI2LjItMTE5di0zM2MwLTQuNCAzLjYtOCA4LThoMjguMWM0LjQgMCA4IDMuNiA4IDh2MzIuN2M2OC41IDYuOSAxMTkuOCA0Ni45IDEyNS45IDEwOS4yYTguMSA4LjEgMCAwMS04IDguOGgtNDQuOWMtNCAwLTcuNC0yLjktNy45LTYuOS00LTI5LjItMjcuNS01My02NS41LTU4LjJ2MTM0LjNsMjUuNCA1LjljNjQuOCAxNiAxMDguOSA0NyAxMDkgMTE2LjQgMCA3NS4yLTU2IDExNy4xLTEzNC4zIDEyNHoiLGZpbGw6bn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTU5LjcgNDg4LjhsLTI1LjQtNS45VjM0OC42YzM4IDUuMiA2MS41IDI5IDY1LjUgNTguMi41IDQgMy45IDYuOSA3LjkgNi45aDQ0LjljNC43IDAgOC40LTQuMSA4LTguOC02LjEtNjIuMy01Ny40LTEwMi4zLTEyNS45LTEwOS4yVjI2M2MwLTQuNC0zLjYtOC04LThoLTI4LjFjLTQuNCAwLTggMy42LTggOHYzM2MtNzAuOCA2LjktMTI2LjIgNDYtMTI2LjIgMTE5IDAgNjcuNiA0OS44IDEwMC4yIDEwMi4xIDExMi43bDI0LjcgNi4zdjE0Mi43Yy00NC4yLTUuOS02OS0yOS41LTc0LjEtNjEuMy0uNi0zLjgtNC02LjYtNy45LTYuNkgzNjNjLTQuNyAwLTguNCA0LTggOC43IDQuNSA1NSA0Ni4yIDEwNS42IDEzNS4yIDExMi4xVjc2MWMwIDQuNCAzLjYgOCA4IDhoMjguNGM0LjQgMCA4LTMuNiA4LTguMWwtLjItMzEuN2M3OC4zLTYuOSAxMzQuMy00OC44IDEzNC4zLTEyNC0uMS02OS40LTQ0LjItMTAwLjQtMTA5LTExNi40em0tNjguNi0xNi4yYy01LjYtMS42LTEwLjMtMy4xLTE1LTUtMzMuOC0xMi4yLTQ5LjUtMzEuOS00OS41LTU3LjMgMC0zNi4zIDI3LjUtNTcgNjQuNS02MS43djEyNHpNNTM0LjMgNjc3VjU0My4zYzMuMS45IDUuOSAxLjYgOC44IDIuMiA0Ny4zIDE0LjQgNjMuMiAzNC40IDYzLjIgNjUuMSAwIDM5LjEtMjkuNCA2Mi42LTcyIDY2LjR6IixmaWxsOmF9fV19fSxuYW1lOiJkb2xsYXItY2lyY2xlIix0aGVtZToidHdvdG9uZSJ9O3QuZGVmYXVsdD1lfSw5MjY2ODpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyem00Ny43LTM5NS4ybC0yNS40LTUuOVYzNDguNmMzOCA1LjIgNjEuNSAyOSA2NS41IDU4LjIuNSA0IDMuOSA2LjkgNy45IDYuOWg0NC45YzQuNyAwIDguNC00LjEgOC04LjgtNi4xLTYyLjMtNTcuNC0xMDIuMy0xMjUuOS0xMDkuMlYyNjNjMC00LjQtMy42LTgtOC04aC0yOC4xYy00LjQgMC04IDMuNi04IDh2MzNjLTcwLjggNi45LTEyNi4yIDQ2LTEyNi4yIDExOSAwIDY3LjYgNDkuOCAxMDAuMiAxMDIuMSAxMTIuN2wyNC43IDYuM3YxNDIuN2MtNDQuMi01LjktNjktMjkuNS03NC4xLTYxLjMtLjYtMy44LTQtNi42LTcuOS02LjZIMzYzYy00LjcgMC04LjQgNC04IDguNyA0LjUgNTUgNDYuMiAxMDUuNiAxMzUuMiAxMTIuMVY3NjFjMCA0LjQgMy42IDggOCA4aDI4LjRjNC40IDAgOC0zLjYgOC04LjFsLS4yLTMxLjdjNzguMy02LjkgMTM0LjMtNDguOCAxMzQuMy0xMjQtLjEtNjkuNC00NC4yLTEwMC40LTEwOS0xMTYuNHptLTY4LjYtMTYuMmMtNS42LTEuNi0xMC4zLTMuMS0xNS01LTMzLjgtMTIuMi00OS41LTMxLjktNDkuNS01Ny4zIDAtMzYuMyAyNy41LTU3IDY0LjUtNjEuN3YxMjR6TTUzNC4zIDY3N1Y1NDMuM2MzLjEuOSA1LjkgMS42IDguOCAyLjIgNDcuMyAxNC40IDYzLjIgMzQuNCA2My4yIDY1LjEgMCAzOS4xLTI5LjQgNjIuNi03MiA2Ni40eiJ9fV19LG5hbWU6ImRvbGxhciIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDU3MjEyOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOmZ1bmN0aW9uKGEsbil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnoiLGZpbGw6YX19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNDI2LjYgNDEwLjNjMCAyNS40IDE1LjcgNDUuMSA0OS41IDU3LjMgNC43IDEuOSA5LjQgMy40IDE1IDV2LTEyNGMtMzcgNC43LTY0LjUgMjUuNC02NC41IDYxLjd6bTExNi41IDEzNS4yYy0yLjktLjYtNS43LTEuMy04LjgtMi4yVjY3N2M0Mi42LTMuOCA3Mi0yNy4zIDcyLTY2LjQgMC0zMC43LTE1LjktNTAuNy02My4yLTY1LjF6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiAxNDBjLTIwNS40IDAtMzcyIDE2Ni42LTM3MiAzNzJzMTY2LjYgMzcyIDM3MiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzItMTY2LjYtMzcyLTM3Mi0zNzJ6bTIyLjQgNTg5LjJsLjIgMzEuN2MwIDQuNS0zLjYgOC4xLTggOC4xaC0yOC40Yy00LjQgMC04LTMuNi04LTh2LTMxLjRjLTg5LTYuNS0xMzAuNy01Ny4xLTEzNS4yLTExMi4xLS40LTQuNyAzLjMtOC43IDgtOC43aDQ2LjJjMy45IDAgNy4zIDIuOCA3LjkgNi42IDUuMSAzMS44IDI5LjkgNTUuNCA3NC4xIDYxLjNWNTM0bC0yNC43LTYuM2MtNTIuMy0xMi41LTEwMi4xLTQ1LjEtMTAyLjEtMTEyLjcgMC03MyA1NS40LTExMi4xIDEyNi4yLTExOXYtMzNjMC00LjQgMy42LTggOC04aDI4LjFjNC40IDAgOCAzLjYgOCA4djMyLjdjNjguNSA2LjkgMTE5LjggNDYuOSAxMjUuOSAxMDkuMmE4LjEgOC4xIDAgMDEtOCA4LjhoLTQ0LjljLTQgMC03LjQtMi45LTcuOS02LjktNC0yOS4yLTI3LjUtNTMtNjUuNS01OC4ydjEzNC4zbDI1LjQgNS45YzY0LjggMTYgMTA4LjkgNDcgMTA5IDExNi40IDAgNzUuMi01NiAxMTcuMS0xMzQuMyAxMjR6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTU1OS43IDQ4OC44bC0yNS40LTUuOVYzNDguNmMzOCA1LjIgNjEuNSAyOSA2NS41IDU4LjIuNSA0IDMuOSA2LjkgNy45IDYuOWg0NC45YzQuNyAwIDguNC00LjEgOC04LjgtNi4xLTYyLjMtNTcuNC0xMDIuMy0xMjUuOS0xMDkuMlYyNjNjMC00LjQtMy42LTgtOC04aC0yOC4xYy00LjQgMC04IDMuNi04IDh2MzNjLTcwLjggNi45LTEyNi4yIDQ2LTEyNi4yIDExOSAwIDY3LjYgNDkuOCAxMDAuMiAxMDIuMSAxMTIuN2wyNC43IDYuM3YxNDIuN2MtNDQuMi01LjktNjktMjkuNS03NC4xLTYxLjMtLjYtMy44LTQtNi42LTcuOS02LjZIMzYzYy00LjcgMC04LjQgNC04IDguNyA0LjUgNTUgNDYuMiAxMDUuNiAxMzUuMiAxMTIuMVY3NjFjMCA0LjQgMy42IDggOCA4aDI4LjRjNC40IDAgOC0zLjYgOC04LjFsLS4yLTMxLjdjNzguMy02LjkgMTM0LjMtNDguOCAxMzQuMy0xMjQtLjEtNjkuNC00NC4yLTEwMC40LTEwOS0xMTYuNHptLTY4LjYtMTYuMmMtNS42LTEuNi0xMC4zLTMuMS0xNS01LTMzLjgtMTIuMi00OS41LTMxLjktNDkuNS01Ny4zIDAtMzYuMyAyNy41LTU3IDY0LjUtNjEuN3YxMjR6TTUzNC4zIDY3N1Y1NDMuM2MzLjEuOSA1LjkgMS42IDguOCAyLjIgNDcuMyAxNC40IDYzLjIgMzQuNCA2My4yIDY1LjEgMCAzOS4xLTI5LjQgNjIuNi03MiA2Ni40eiIsZmlsbDphfX1dfX0sbmFtZToiZG9sbGFyIix0aGVtZToidHdvdG9uZSJ9O3QuZGVmYXVsdD1lfSw0MDczOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODggNzkySDIwMFYxNjhjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djY4OGMwIDQuNCAzLjYgOCA4IDhoNzUyYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04ek0yODggNjA0YTY0IDY0IDAgMTAxMjggMCA2NCA2NCAwIDEwLTEyOCAwem0xMTgtMjI0YTQ4IDQ4IDAgMTA5NiAwIDQ4IDQ4IDAgMTAtOTYgMHptMTU4IDIyOGE5NiA5NiAwIDEwMTkyIDAgOTYgOTYgMCAxMC0xOTIgMHptMTQ4LTMxNGE1NiA1NiAwIDEwMTEyIDAgNTYgNTYgMCAxMC0xMTIgMHoifX1dfSxuYW1lOiJkb3QtY2hhcnQiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw0NDA1MjpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnsiZmlsbC1ydWxlIjoiZXZlbm9kZCIsdmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJnIixhdHRyczp7ImZpbGwtb3BhY2l0eSI6Ii44OCJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTEwMS4yOCA2NjJjLTEwLjY1IDAtMTkuNTMtMy4zLTI2LjYzLTkuODktNy4xLTYuNi0xMC42NS0xNC43LTEwLjY1LTI0LjMyIDAtOS44OSAzLjY1LTE4IDEwLjk2LTI0LjMxIDcuMy02LjMyIDE2LjQyLTkuNDggMjcuMzUtOS40OCAxMS4wNiAwIDIwLjEgMy4yIDI3LjE0IDkuNTggNy4wMyA2LjM5IDEwLjU1IDE0LjQ2IDEwLjU1IDI0LjIxIDAgMTAuMDMtMy41OCAxOC4yNC0xMC43NiAyNC42My03LjE3IDYuMzktMTYuNDkgOS41OC0yNy45NiA5LjU4TTQ1OCA2NTdoLTY2Ljk3bC0xMjEuNC0xODUuMzVjLTcuMTMtMTAuODQtMTIuMDYtMTktMTQuOC0yNC40OGgtLjgyYzEuMSAxMC40MiAxLjY1IDI2LjMzIDEuNjUgNDcuNzJWNjU3SDE5M1YzNjJoNzEuNDlsMTE2Ljg5IDE3OS42YTQyMy4yMyA0MjMuMjMgMCAwMTE0Ljc5IDI0LjA2aC44MmMtMS4xLTYuODYtMS42NC0yMC4zNy0xLjY0LTQwLjUzVjM2Mkg0NTh6TTcwMiA2NTdINTI1VjM2MmgxNzAuMnY1NC4xSDU5MS40OXY2NS42M0g2ODh2NTMuOWgtOTYuNTJ2NjcuNDdINzAyek05NjAgNDE2LjFoLTgzLjk1VjY1N2gtNjYuNVY0MTYuMUg3MjZWMzYyaDIzNHoifX1dfV19LG5hbWU6ImRvdC1uZXQiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw5MjQ3MzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMjcyLjkgNTEybDI2NS40LTMzOS4xYzQuMS01LjIuNC0xMi45LTYuMy0xMi45aC03Ny4zYy00LjkgMC05LjYgMi4zLTEyLjYgNi4xTDE4Ni44IDQ5Mi4zYTMxLjk5IDMxLjk5IDAgMDAwIDM5LjVsMjU1LjMgMzI2LjFjMyAzLjkgNy43IDYuMSAxMi42IDYuMUg1MzJjNi43IDAgMTAuNC03LjcgNi4zLTEyLjlMMjcyLjkgNTEyem0zMDQgMGwyNjUuNC0zMzkuMWM0LjEtNS4yLjQtMTIuOS02LjMtMTIuOWgtNzcuM2MtNC45IDAtOS42IDIuMy0xMi42IDYuMUw0OTAuOCA0OTIuM2EzMS45OSAzMS45OSAwIDAwMCAzOS41bDI1NS4zIDMyNi4xYzMgMy45IDcuNyA2LjEgMTIuNiA2LjFIODM2YzYuNyAwIDEwLjQtNy43IDYuMy0xMi45TDU3Ni45IDUxMnoifX1dfSxuYW1lOiJkb3VibGUtbGVmdCIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDU5NDYwOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MzMuMiA0OTIuM0wyNzcuOSAxNjYuMWMtMy0zLjktNy43LTYuMS0xMi42LTYuMUgxODhjLTYuNyAwLTEwLjQgNy43LTYuMyAxMi45TDQ0Ny4xIDUxMiAxODEuNyA4NTEuMUE3Ljk4IDcuOTggMCAwMDE4OCA4NjRoNzcuM2M0LjkgMCA5LjYtMi4zIDEyLjYtNi4xbDI1NS4zLTMyNi4xYzkuMS0xMS43IDkuMS0yNy45IDAtMzkuNXptMzA0IDBMNTgxLjkgMTY2LjFjLTMtMy45LTcuNy02LjEtMTIuNi02LjFINDkyYy02LjcgMC0xMC40IDcuNy02LjMgMTIuOUw3NTEuMSA1MTIgNDg1LjcgODUxLjFBNy45OCA3Ljk4IDAgMDA0OTIgODY0aDc3LjNjNC45IDAgOS42LTIuMyAxMi42LTYuMWwyNTUuMy0zMjYuMWM5LjEtMTEuNyA5LjEtMjcuOSAwLTM5LjV6In19XX0sbmFtZToiZG91YmxlLXJpZ2h0Iix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sMjg4NzI6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0xODQuNSAzNTMuN2wtMTc4IDI0NmE3Ljk1IDcuOTUgMCAwMS0xMi45IDBsLTE3OC0yNDZjLTMuOC01LjMgMC0xMi43IDYuNS0xMi43SDM4MWMxMC4yIDAgMTkuOSA0LjkgMjUuOSAxMy4yTDUxMiA1NjMuNmwxMDUuMi0xNDUuNGM2LTguMyAxNS42LTEzLjIgMjUuOS0xMy4ySDY5MGM2LjUgMCAxMC4zIDcuNCA2LjUgMTIuN3oifX1dfSxuYW1lOiJkb3duLWNpcmNsZSIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSwxNzk5NDpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNjkwIDQwNWgtNDYuOWMtMTAuMiAwLTE5LjkgNC45LTI1LjkgMTMuMkw1MTIgNTYzLjYgNDA2LjggNDE4LjJjLTYtOC4zLTE1LjYtMTMuMi0yNS45LTEzLjJIMzM0Yy02LjUgMC0xMC4zIDcuNC02LjUgMTIuN2wxNzggMjQ2YzMuMiA0LjQgOS43IDQuNCAxMi45IDBsMTc4LTI0NmMzLjktNS4zLjEtMTIuNy02LjQtMTIuN3oifX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6In19XX0sbmFtZToiZG93bi1jaXJjbGUiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw3NzMzOTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjpmdW5jdGlvbihhLG4pe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgMTQwYy0yMDUuNCAwLTM3MiAxNjYuNi0zNzIgMzcyczE2Ni42IDM3MiAzNzIgMzcyIDM3Mi0xNjYuNiAzNzItMzcyLTE2Ni42LTM3Mi0zNzItMzcyem0xODQuNCAyNzcuN2wtMTc4IDI0NmE3Ljk1IDcuOTUgMCAwMS0xMi45IDBsLTE3OC0yNDZjLTMuOC01LjMgMC0xMi43IDYuNS0xMi43aDQ2LjljMTAuMyAwIDE5LjkgNC45IDI1LjkgMTMuMkw1MTIgNTYzLjZsMTA1LjItMTQ1LjRjNi04LjMgMTUuNy0xMy4yIDI1LjktMTMuMkg2OTBjNi41IDAgMTAuMyA3LjQgNi40IDEyLjd6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnoiLGZpbGw6YX19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNjkwIDQwNWgtNDYuOWMtMTAuMiAwLTE5LjkgNC45LTI1LjkgMTMuMkw1MTIgNTYzLjYgNDA2LjggNDE4LjJjLTYtOC4zLTE1LjYtMTMuMi0yNS45LTEzLjJIMzM0Yy02LjUgMC0xMC4zIDcuNC02LjUgMTIuN2wxNzggMjQ2YzMuMiA0LjQgOS43IDQuNCAxMi45IDBsMTc4LTI0NmMzLjktNS4zLjEtMTIuNy02LjQtMTIuN3oiLGZpbGw6YX19XX19LG5hbWU6ImRvd24tY2lyY2xlIix0aGVtZToidHdvdG9uZSJ9O3QuZGVmYXVsdD1lfSw3MjY1MjpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODg0IDI1NmgtNzVjLTUuMSAwLTkuOSAyLjUtMTIuOSA2LjZMNTEyIDY1NC4yIDIyNy45IDI2Mi42Yy0zLTQuMS03LjgtNi42LTEyLjktNi42aC03NWMtNi41IDAtMTAuMyA3LjQtNi41IDEyLjdsMzUyLjYgNDg2LjFjMTIuOCAxNy42IDM5IDE3LjYgNTEuNyAwbDM1Mi42LTQ4Ni4xYzMuOS01LjMuMS0xMi43LTYuNC0xMi43eiJ9fV19LG5hbWU6ImRvd24iLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSwyMjA1OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTY5Ni41IDQxMi43bC0xNzggMjQ2YTcuOTUgNy45NSAwIDAxLTEyLjkgMGwtMTc4LTI0NmMtMy44LTUuMyAwLTEyLjcgNi41LTEyLjdIMzgxYzEwLjIgMCAxOS45IDQuOSAyNS45IDEzLjJMNTEyIDU1OC42bDEwNS4yLTE0NS40YzYtOC4zIDE1LjYtMTMuMiAyNS45LTEzLjJINjkwYzYuNSAwIDEwLjMgNy40IDYuNSAxMi43eiJ9fV19LG5hbWU6ImRvd24tc3F1YXJlIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDczMDY2OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MDUuNSA2NTguN2MzLjIgNC40IDkuNyA0LjQgMTIuOSAwbDE3OC0yNDZjMy44LTUuMyAwLTEyLjctNi41LTEyLjdINjQzYy0xMC4yIDAtMTkuOSA0LjktMjUuOSAxMy4yTDUxMiA1NTguNiA0MDYuOCA0MTMuMmMtNi04LjMtMTUuNi0xMy4yLTI1LjktMTMuMkgzMzRjLTYuNSAwLTEwLjMgNy40LTYuNSAxMi43bDE3OCAyNDZ6In19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNzI4SDE4NFYxODRoNjU2djY1NnoifX1dfSxuYW1lOiJkb3duLXNxdWFyZSIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDMzNjcyOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOmZ1bmN0aW9uKGEsbil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6IixmaWxsOmF9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTE4NCA4NDBoNjU2VjE4NEgxODR2NjU2em0xNTAtNDQwaDQ2LjljMTAuMyAwIDE5LjkgNC45IDI1LjkgMTMuMkw1MTIgNTU4LjZsMTA1LjItMTQ1LjRjNi04LjMgMTUuNy0xMy4yIDI1LjktMTMuMkg2OTBjNi41IDAgMTAuMyA3LjQgNi40IDEyLjdsLTE3OCAyNDZhNy45NSA3Ljk1IDAgMDEtMTIuOSAwbC0xNzgtMjQ2Yy0zLjgtNS4zIDAtMTIuNyA2LjUtMTIuN3oiLGZpbGw6bn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTA1LjUgNjU4LjdjMy4yIDQuNCA5LjcgNC40IDEyLjkgMGwxNzgtMjQ2YzMuOS01LjMuMS0xMi43LTYuNC0xMi43aC00Ni45Yy0xMC4yIDAtMTkuOSA0LjktMjUuOSAxMy4yTDUxMiA1NTguNiA0MDYuOCA0MTMuMmMtNi04LjMtMTUuNi0xMy4yLTI1LjktMTMuMkgzMzRjLTYuNSAwLTEwLjMgNy40LTYuNSAxMi43bDE3OCAyNDZ6IixmaWxsOmF9fV19fSxuYW1lOiJkb3duLXNxdWFyZSIsdGhlbWU6InR3b3RvbmUifTt0LmRlZmF1bHQ9ZX0sMjUwNzk6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUwNS43IDY2MWE4IDggMCAwMDEyLjYgMGwxMTItMTQxLjdjNC4xLTUuMi40LTEyLjktNi4zLTEyLjloLTc0LjFWMTY4YzAtNC40LTMuNi04LTgtOGgtNjBjLTQuNCAwLTggMy42LTggOHYzMzguM0g0MDBjLTYuNyAwLTEwLjQgNy43LTYuMyAxMi45bDExMiAxNDEuOHpNODc4IDYyNmgtNjBjLTQuNCAwLTggMy42LTggOHYxNTRIMjE0VjYzNGMwLTQuNC0zLjYtOC04LThoLTYwYy00LjQgMC04IDMuNi04IDh2MTk4YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY4NGMxNy43IDAgMzItMTQuMyAzMi0zMlY2MzRjMC00LjQtMy42LTgtOC04eiJ9fV19LG5hbWU6ImRvd25sb2FkIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sMzkxNTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTA5LjMgNTA2LjNMNzgxLjcgNDA1LjZhNy4yMyA3LjIzIDAgMDAtMTEuNyA1LjdWNDc2SDU0OFYyNTRoNjQuOGM2IDAgOS40LTcgNS43LTExLjdMNTE3LjcgMTE0LjdhNy4xNCA3LjE0IDAgMDAtMTEuMyAwTDQwNS42IDI0Mi4zYTcuMjMgNy4yMyAwIDAwNS43IDExLjdINDc2djIyMkgyNTR2LTY0LjhjMC02LTctOS40LTExLjctNS43TDExNC43IDUwNi4zYTcuMTQgNy4xNCAwIDAwMCAxMS4zbDEyNy41IDEwMC44YzQuNyAzLjcgMTEuNy40IDExLjctNS43VjU0OGgyMjJ2MjIyaC02NC44Yy02IDAtOS40IDctNS43IDExLjdsMTAwLjggMTI3LjVjMi45IDMuNyA4LjUgMy43IDExLjMgMGwxMDAuOC0xMjcuNWMzLjctNC43LjQtMTEuNy01LjctMTEuN0g1NDhWNTQ4aDIyMnY2NC44YzAgNiA3IDkuNCAxMS43IDUuN2wxMjcuNS0xMDAuOGE3LjMgNy4zIDAgMDAuMS0xMS40eiJ9fV19LG5hbWU6ImRyYWciLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw2ODc5MTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNjc1LjEgMzI4LjNhMjQ1LjIgMjQ1LjIgMCAwMC0yMjAuOC01NS4xYzYuOCA5LjEgNTEuNSA2OS45IDkxLjggMTQ0IDg3LjUtMzIuOCAxMjQuNS04Mi42IDEyOS04OC45ek01NTQgNTUyLjhjLTEzOC43IDQ4LjMtMTg4LjYgMTQ0LjYtMTkzIDE1My42IDQxLjcgMzIuNSA5NC4xIDUxLjkgMTUxIDUxLjkgMzQuMSAwIDY2LjYtNi45IDk2LjEtMTkuNS0zLjctMjEuNi0xNy45LTk2LjgtNTIuNS0xODYuNmwtMS42LjZ6bTQ3LjctMTEuOWMzMi4yIDg4LjQgNDUuMyAxNjAuNCA0Ny44IDE3NS40IDU1LjItMzcuMyA5NC41LTk2LjQgMTA1LjQtMTY0LjktOC40LTIuNi03Ni4xLTIyLjgtMTUzLjItMTAuNXpNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgNzM2Yy0xNTguOCAwLTI4OC0xMjkuMi0yODgtMjg4czEyOS4yLTI4OCAyODgtMjg4IDI4OCAxMjkuMiAyODggMjg4LTEyOS4yIDI4OC0yODggMjg4em01My4xLTM0Ni4yYzUuNyAxMS43IDExLjIgMjMuNiAxNi4zIDM1LjYgMS44IDQuMiAzLjYgOC40IDUuMyAxMi43IDgxLjgtMTAuMyAxNjMuMiA2LjIgMTcxLjMgNy45LS41LTU4LjEtMjEuMy0xMTEuNC01NS41LTE1My4zLTUuMyA3LjEtNDYuNSA2MC0xMzcuNCA5Ny4xek00OTguNiA0MzJjLTQwLjgtNzIuNS04NC43LTEzMy40LTkxLjItMTQyLjMtNjguOCAzMi41LTEyMC4zIDk1LjktMTM2LjIgMTcyLjIgMTEgLjIgMTEyLjQuNyAyMjcuNC0yOS45em0zMC42IDgyLjVjMy4yLTEgNi40LTIgOS43LTIuOS02LjItMTQtMTIuOS0yOC0xOS45LTQxLjctMTIyLjggMzYuOC0yNDIuMSAzNS4yLTI1Mi44IDM1LS4xIDIuNS0uMSA1LS4xIDcuNSAwIDYzLjIgMjMuOSAxMjAuOSA2My4yIDE2NC41IDUuNS05LjYgNzMtMTIxLjQgMTk5LjktMTYyLjR6In19XX0sbmFtZToiZHJpYmJibGUtY2lyY2xlIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDEwNjI2OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgOTZDMjgyLjYgOTYgOTYgMjgyLjYgOTYgNTEyczE4Ni42IDQxNiA0MTYgNDE2IDQxNi0xODYuNiA0MTYtNDE2Uzc0MS40IDk2IDUxMiA5NnptMjc1LjEgMTkxLjhjNDkuNSA2MC41IDc5LjUgMTM3LjUgODAuMiAyMjEuNC0xMS43LTIuNS0xMjkuMi0yNi4zLTI0Ny40LTExLjQtMi41LTYuMS01LTEyLjItNy42LTE4LjMtNy40LTE3LjMtMTUuMy0zNC42LTIzLjYtNTEuNUM3MjAgMzc0LjMgNzc5LjYgMjk4IDc4Ny4xIDI4Ny44ek01MTIgMTU3LjJjOTAuMyAwIDE3Mi44IDMzLjkgMjM1LjUgODkuNS02LjQgOS4xLTU5LjkgODEtMTg2LjIgMTI4LjQtNTguMi0xMDctMTIyLjctMTk0LjgtMTMyLjYtMjA4IDI3LjMtNi42IDU1LjItOS45IDgzLjMtOS45ek0zNjAuOSAxOTFjOS40IDEyLjggNzIuOSAxMDAuOSAxMzEuNyAyMDUuNUMzMjYuNCA0NDAuNiAxODAgNDQwIDE2NC4xIDQzOS44YzIzLjEtMTEwLjMgOTcuNC0yMDEuOSAxOTYuOC0yNDguOHpNMTU2LjcgNTEyLjVjMC0zLjYuMS03LjMuMi0xMC45IDE1LjUuMyAxODcuNyAyLjUgMzY1LjItNTAuNiAxMC4yIDE5LjkgMTkuOSA0MC4xIDI4LjggNjAuMy00LjcgMS4zLTkuNCAyLjctMTQgNC4yQzM1My42IDU3NC45IDI1Ni4xIDczNi40IDI0OCA3NTAuMWMtNTYuNy02My05MS4zLTE0Ni4zLTkxLjMtMjM3LjZ6TTUxMiA4NjcuOGMtODIuMiAwLTE1Ny45LTI4LTIxOC4xLTc1IDYuNC0xMy4xIDc4LjMtMTUyIDI3OC43LTIyMS45bDIuMy0uOGM0OS45IDEyOS42IDcwLjUgMjM4LjMgNzUuOCAyNjkuNUEzNTAuNDYgMzUwLjQ2IDAgMDE1MTIgODY3Ljh6bTE5OC41LTYwLjdjLTMuNi0yMS42LTIyLjUtMTI1LjYtNjktMjUzLjNDNzUyLjkgNTM2IDg1MC43IDU2NS4yIDg2Mi44IDU2OWMtMTUuOCA5OC44LTcyLjUgMTg0LjItMTUyLjMgMjM4LjF6In19XX0sbmFtZToiZHJpYmJibGUiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSwzMjE4NTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNDk4LjYgNDMyYy00MC44LTcyLjUtODQuNy0xMzMuNC05MS4yLTE0Mi4zLTY4LjggMzIuNS0xMjAuMyA5NS45LTEzNi4yIDE3Mi4yIDExIC4yIDExMi40LjcgMjI3LjQtMjkuOXptNjYuNSAyMS44YzUuNyAxMS43IDExLjIgMjMuNiAxNi4zIDM1LjYgMS44IDQuMiAzLjYgOC40IDUuMyAxMi43IDgxLjgtMTAuMyAxNjMuMiA2LjIgMTcxLjMgNy45LS41LTU4LjEtMjEuMy0xMTEuNC01NS41LTE1My4zLTUuMyA3LjEtNDYuNSA2MC0xMzcuNCA5Ny4xek04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTUxMiA4MDBjLTE1OC44IDAtMjg4LTEyOS4yLTI4OC0yODhzMTI5LjItMjg4IDI4OC0yODggMjg4IDEyOS4yIDI4OCAyODgtMTI5LjIgMjg4LTI4OCAyODh6bTg5LjctMjU5LjFjMzIuMiA4OC40IDQ1LjMgMTYwLjQgNDcuOCAxNzUuNCA1NS4yLTM3LjMgOTQuNS05Ni40IDEwNS40LTE2NC45LTguNC0yLjYtNzYuMS0yMi44LTE1My4yLTEwLjV6bS03Mi41LTI2LjRjMy4yLTEgNi40LTIgOS43LTIuOS02LjItMTQtMTIuOS0yOC0xOS45LTQxLjctMTIyLjggMzYuOC0yNDIuMSAzNS4yLTI1Mi44IDM1LS4xIDIuNS0uMSA1LS4xIDcuNSAwIDYzLjIgMjMuOSAxMjAuOSA2My4yIDE2NC41IDUuNS05LjYgNzMtMTIxLjQgMTk5LjktMTYyLjR6bTE0NS45LTE4Ni4yYTI0NS4yIDI0NS4yIDAgMDAtMjIwLjgtNTUuMWM2LjggOS4xIDUxLjUgNjkuOSA5MS44IDE0NCA4Ny41LTMyLjggMTI0LjUtODIuNiAxMjktODguOXpNNTU0IDU1Mi44Yy0xMzguNyA0OC4zLTE4OC42IDE0NC42LTE5MyAxNTMuNiA0MS43IDMyLjUgOTQuMSA1MS45IDE1MSA1MS45IDM0LjEgMCA2Ni42LTYuOSA5Ni4xLTE5LjUtMy43LTIxLjYtMTcuOS05Ni44LTUyLjUtMTg2LjZsLTEuNi42eiJ9fV19LG5hbWU6ImRyaWJiYmxlLXNxdWFyZSIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSwxOTIzNzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNDk4LjYgNDMyYy00MC44LTcyLjUtODQuNy0xMzMuNC05MS4yLTE0Mi4zLTY4LjggMzIuNS0xMjAuMyA5NS45LTEzNi4yIDE3Mi4yIDExIC4yIDExMi40LjcgMjI3LjQtMjkuOXptNjYuNSAyMS44YzUuNyAxMS43IDExLjIgMjMuNiAxNi4zIDM1LjYgMS44IDQuMiAzLjYgOC40IDUuMyAxMi43IDgxLjgtMTAuMyAxNjMuMiA2LjIgMTcxLjMgNy45LS41LTU4LjEtMjEuMy0xMTEuNC01NS41LTE1My4zLTUuMyA3LjEtNDYuNSA2MC0xMzcuNCA5Ny4xek04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTUxMiA4MDBjLTE1OC44IDAtMjg4LTEyOS4yLTI4OC0yODhzMTI5LjItMjg4IDI4OC0yODggMjg4IDEyOS4yIDI4OCAyODgtMTI5LjIgMjg4LTI4OCAyODh6bTg5LjctMjU5LjFjMzIuMiA4OC40IDQ1LjMgMTYwLjQgNDcuOCAxNzUuNCA1NS4yLTM3LjMgOTQuNS05Ni40IDEwNS40LTE2NC45LTguNC0yLjYtNzYuMS0yMi44LTE1My4yLTEwLjV6bS03Mi41LTI2LjRjMy4yLTEgNi40LTIgOS43LTIuOS02LjItMTQtMTIuOS0yOC0xOS45LTQxLjctMTIyLjggMzYuOC0yNDIuMSAzNS4yLTI1Mi44IDM1LS4xIDIuNS0uMSA1LS4xIDcuNSAwIDYzLjIgMjMuOSAxMjAuOSA2My4yIDE2NC41IDUuNS05LjYgNzMtMTIxLjQgMTk5LjktMTYyLjR6bTE0NS45LTE4Ni4yYTI0NS4yIDI0NS4yIDAgMDAtMjIwLjgtNTUuMWM2LjggOS4xIDUxLjUgNjkuOSA5MS44IDE0NCA4Ny41LTMyLjggMTI0LjUtODIuNiAxMjktODguOXpNNTU0IDU1Mi44Yy0xMzguNyA0OC4zLTE4OC42IDE0NC42LTE5MyAxNTMuNiA0MS43IDMyLjUgOTQuMSA1MS45IDE1MSA1MS45IDM0LjEgMCA2Ni42LTYuOSA5Ni4xLTE5LjUtMy43LTIxLjYtMTcuOS05Ni44LTUyLjUtMTg2LjZsLTEuNi42eiJ9fV19LG5hbWU6ImRyaWJiYmxlLXNxdWFyZSIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDU4MjI1OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02NjMuOCA0NTUuNXptLTE1MS41LTkzLjhsLTE1MS44IDkzLjggMTUxLjggOTMuOSAxNTEuNS05My45ek01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMTUxLjIgNTk1LjVMNTEyLjYgNzUwbC0xNTEtOTAuNXYtMzMuMWw0NS40IDI5LjQgMTA1LjYtODcuNyAxMDUuNiA4Ny43IDQ1LjEtMjkuNHYzMy4xem0tNDUuNi0yMi40bC0xMDUuMy04Ny43TDQwNyA2MzcuMWwtMTUxLTk5LjIgMTA0LjUtODIuNEwyNTYgMzcxLjIgNDA3IDI3NGwxMDUuMyA4Ny43TDYxNy42IDI3NCA3NjggMzcyLjFsLTEwNC4yIDgzLjVMNzY4IDUzOWwtMTUwLjQgOTguMXoifX1dfSxuYW1lOiJkcm9wYm94LWNpcmNsZSIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw2MTM4MjpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNjQgNTU2LjlsMjY0LjIgMTczLjVMNTEyLjUgNTc3IDI0Ni44IDQxMi43em04OTYtMjkwLjN6bTAgMEw2OTYuOCA5NSA1MTIuNSAyNDguNWwyNjUuMiAxNjQuMkw1MTIuNSA1NzdsMTg0LjMgMTUzLjRMOTYwIDU1OC44IDc3Ny43IDQxMi43ek01MTMgNjA5LjhMMzI4LjIgNzYzLjNsLTc5LjQtNTEuNXY1Ny44TDUxMyA5MjhsMjYzLjctMTU4LjR2LTU3LjhsLTc4LjkgNTEuNXpNMzI4LjIgOTVMNjQgMjY1LjFsMTgyLjggMTQ3LjYgMjY1LjctMTY0LjJ6TTY0IDU1Ni45eiJ9fV19LG5hbWU6ImRyb3Bib3giLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSwxODI0MDpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek02NjMuMiA2NTkuNUw1MTIuNiA3NTBsLTE1MS05MC41di0zMy4xbDQ1LjQgMjkuNCAxMDUuNi04Ny43IDEwNS42IDg3LjcgNDUuMS0yOS40djMzLjF6bS00NS42LTIyLjRsLTEwNS4zLTg3LjdMNDA3IDYzNy4xbC0xNTEtOTkuMiAxMDQuNS04Mi40TDI1NiAzNzEuMiA0MDcgMjc0bDEwNS4zIDg3LjdMNjE3LjYgMjc0IDc2OCAzNzIuMWwtMTA0LjIgODMuNUw3NjggNTM5bC0xNTAuNCA5OC4xek01MTIuMyAzNjEuN2wtMTUxLjggOTMuOCAxNTEuOCA5My45IDE1MS41LTkzLjl6bTE1MS41IDkzLjh6In19XX0sbmFtZToiZHJvcGJveC1zcXVhcmUiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sMzY1Njc6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCA4MzZIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYzNmMwIDQuNCAzLjYgOCA4IDhoNzg0YzQuNCAwIDgtMy42IDgtOHYtMzZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS02MjIuMy04NGMyIDAgNC0uMiA2LS41TDQzMS45IDcyMmMyLS40IDMuOS0xLjMgNS4zLTIuOGw0MjMuOS00MjMuOWE5Ljk2IDkuOTYgMCAwMDAtMTQuMUw2OTQuOSAxMTQuOWMtMS45LTEuOS00LjQtMi45LTcuMS0yLjlzLTUuMiAxLTcuMSAyLjlMMjU2LjggNTM4LjhjLTEuNSAxLjUtMi40IDMuMy0yLjggNS4zbC0yOS41IDE2OC4yYTMzLjUgMzMuNSAwIDAwOS40IDI5LjhjNi42IDYuNCAxNC45IDkuOSAyMy44IDkuOXoifX1dfSxuYW1lOiJlZGl0Iix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDU3NTgzOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0yNTcuNyA3NTJjMiAwIDQtLjIgNi0uNUw0MzEuOSA3MjJjMi0uNCAzLjktMS4zIDUuMy0yLjhsNDIzLjktNDIzLjlhOS45NiA5Ljk2IDAgMDAwLTE0LjFMNjk0LjkgMTE0LjljLTEuOS0xLjktNC40LTIuOS03LjEtMi45cy01LjIgMS03LjEgMi45TDI1Ni44IDUzOC44Yy0xLjUgMS41LTIuNCAzLjMtMi44IDUuM2wtMjkuNSAxNjguMmEzMy41IDMzLjUgMCAwMDkuNCAyOS44YzYuNiA2LjQgMTQuOSA5LjkgMjMuOCA5Ljl6bTY3LjQtMTc0LjRMNjg3LjggMjE1bDczLjMgNzMuMy0zNjIuNyAzNjIuNi04OC45IDE1LjcgMTUuNi04OXpNODgwIDgzNkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjM2YzAgNC40IDMuNiA4IDggOGg3ODRjNC40IDAgOC0zLjYgOC04di0zNmMwLTE3LjctMTQuMy0zMi0zMi0zMnoifX1dfSxuYW1lOiJlZGl0Iix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNjA1OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOmZ1bmN0aW9uKGEsbil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTc2MS4xIDI4OC4zTDY4Ny44IDIxNSAzMjUuMSA1NzcuNmwtMTUuNiA4OSA4OC45LTE1Ljd6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCA4MzZIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYzNmMwIDQuNCAzLjYgOCA4IDhoNzg0YzQuNCAwIDgtMy42IDgtOHYtMzZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS02MjIuMy04NGMyIDAgNC0uMiA2LS41TDQzMS45IDcyMmMyLS40IDMuOS0xLjMgNS4zLTIuOGw0MjMuOS00MjMuOWE5Ljk2IDkuOTYgMCAwMDAtMTQuMUw2OTQuOSAxMTQuOWMtMS45LTEuOS00LjQtMi45LTcuMS0yLjlzLTUuMiAxLTcuMSAyLjlMMjU2LjggNTM4LjhjLTEuNSAxLjUtMi40IDMuMy0yLjggNS4zbC0yOS41IDE2OC4yYTMzLjUgMzMuNSAwIDAwOS40IDI5LjhjNi42IDYuNCAxNC45IDkuOSAyMy44IDkuOXptNjcuNC0xNzQuNEw2ODcuOCAyMTVsNzMuMyA3My4zLTM2Mi43IDM2Mi42LTg4LjkgMTUuNyAxNS42LTg5eiIsZmlsbDphfX1dfX0sbmFtZToiZWRpdCIsdGhlbWU6InR3b3RvbmUifTt0LmRlZmF1bHQ9ZX0sMzMyODI6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTE3NiA1MTFhNTYgNTYgMCAxMDExMiAwIDU2IDU2IDAgMTAtMTEyIDB6bTI4MCAwYTU2IDU2IDAgMTAxMTIgMCA1NiA1NiAwIDEwLTExMiAwem0yODAgMGE1NiA1NiAwIDEwMTEyIDAgNTYgNTYgMCAxMC0xMTIgMHoifX1dfSxuYW1lOiJlbGxpcHNpcyIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDI5MjYwOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NjQgMTcwaC02MGMtNC40IDAtOCAzLjYtOCA4djUxOEgzMTB2LTczYzAtNi43LTcuOC0xMC41LTEzLTYuM2wtMTQxLjkgMTEyYTggOCAwIDAwMCAxMi42bDE0MS45IDExMmM1LjMgNC4yIDEzIC40IDEzLTYuM3YtNzVoNDk4YzM1LjMgMCA2NC0yOC43IDY0LTY0VjE3OGMwLTQuNC0zLjYtOC04LTh6In19XX0sbmFtZToiZW50ZXIiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw2NDQzMjpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDMyN2MtMjkuOSAwLTU4IDExLjYtNzkuMiAzMi44QTExMS42IDExMS42IDAgMDA0MDAgNDM5YzAgMjkuOSAxMS43IDU4IDMyLjggNzkuMkExMTEuNiAxMTEuNiAwIDAwNTEyIDU1MWMyOS45IDAgNTgtMTEuNyA3OS4yLTMyLjhDNjEyLjQgNDk3IDYyNCA0NjguOSA2MjQgNDM5YzAtMjkuOS0xMS42LTU4LTMyLjgtNzkuMlM1NDEuOSAzMjcgNTEyIDMyN3ptMzQyLjYtMzcuOWEzNjIuNDkgMzYyLjQ5IDAgMDAtNzkuOS0xMTUuNyAzNzAuODMgMzcwLjgzIDAgMDAtMTE4LjItNzcuOEM2MTAuNyA3Ni42IDU2Mi4xIDY3IDUxMiA2N2MtNTAuMSAwLTk4LjcgOS42LTE0NC41IDI4LjUtNDQuMyAxOC4zLTg0IDQ0LjUtMTE4LjIgNzcuOEEzNjMuNiAzNjMuNiAwIDAwMTY5LjQgMjg5Yy0xOS41IDQ1LTI5LjQgOTIuOC0yOS40IDE0MiAwIDcwLjYgMTYuOSAxNDAuOSA1MC4xIDIwOC43IDI2LjcgNTQuNSA2NCAxMDcuNiAxMTEgMTU4LjEgODAuMyA4Ni4yIDE2NC41IDEzOC45IDE4OC40IDE1M2E0My45IDQzLjkgMCAwMDIyLjQgNi4xYzcuOCAwIDE1LjUtMiAyMi40LTYuMSAyMy45LTE0LjEgMTA4LjEtNjYuOCAxODguNC0xNTMgNDctNTAuNCA4NC4zLTEwMy42IDExMS0xNTguMUM4NjcuMSA1NzIgODg0IDUwMS44IDg4NCA0MzEuMWMwLTQ5LjItOS45LTk3LTI5LjQtMTQyek01MTIgNjE1Yy05Ny4yIDAtMTc2LTc4LjgtMTc2LTE3NnM3OC44LTE3NiAxNzYtMTc2IDE3NiA3OC44IDE3NiAxNzYtNzguOCAxNzYtMTc2IDE3NnoifX1dfSxuYW1lOiJlbnZpcm9ubWVudCIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSwyMzA0MTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODU0LjYgMjg5LjFhMzYyLjQ5IDM2Mi40OSAwIDAwLTc5LjktMTE1LjcgMzcwLjgzIDM3MC44MyAwIDAwLTExOC4yLTc3LjhDNjEwLjcgNzYuNiA1NjIuMSA2NyA1MTIgNjdjLTUwLjEgMC05OC43IDkuNi0xNDQuNSAyOC41LTQ0LjMgMTguMy04NCA0NC41LTExOC4yIDc3LjhBMzYzLjYgMzYzLjYgMCAwMDE2OS40IDI4OWMtMTkuNSA0NS0yOS40IDkyLjgtMjkuNCAxNDIgMCA3MC42IDE2LjkgMTQwLjkgNTAuMSAyMDguNyAyNi43IDU0LjUgNjQgMTA3LjYgMTExIDE1OC4xIDgwLjMgODYuMiAxNjQuNSAxMzguOSAxODguNCAxNTNhNDMuOSA0My45IDAgMDAyMi40IDYuMWM3LjggMCAxNS41LTIgMjIuNC02LjEgMjMuOS0xNC4xIDEwOC4xLTY2LjggMTg4LjQtMTUzIDQ3LTUwLjQgODQuMy0xMDMuNiAxMTEtMTU4LjFDODY3LjEgNTcyIDg4NCA1MDEuOCA4ODQgNDMxLjFjMC00OS4yLTkuOS05Ny0yOS40LTE0MnpNNTEyIDg4MC4yYy02NS45LTQxLjktMzAwLTIwNy44LTMwMC00NDkuMSAwLTc3LjkgMzEuMS0xNTEuMSA4Ny42LTIwNi4zQzM1Ni4zIDE2OS41IDQzMS43IDEzOSA1MTIgMTM5czE1NS43IDMwLjUgMjEyLjQgODUuOUM3ODAuOSAyODAgODEyIDM1My4yIDgxMiA0MzEuMWMwIDI0MS4zLTIzNC4xIDQwNy4yLTMwMCA0NDkuMXptMC02MTcuMmMtOTcuMiAwLTE3NiA3OC44LTE3NiAxNzZzNzguOCAxNzYgMTc2IDE3NiAxNzYtNzguOCAxNzYtMTc2LTc4LjgtMTc2LTE3Ni0xNzZ6bTc5LjIgMjU1LjJBMTExLjYgMTExLjYgMCAwMTUxMiA1NTFjLTI5LjkgMC01OC0xMS43LTc5LjItMzIuOEExMTEuNiAxMTEuNiAwIDAxNDAwIDQzOWMwLTI5LjkgMTEuNy01OCAzMi44LTc5LjJDNDU0IDMzOC42IDQ4Mi4xIDMyNyA1MTIgMzI3YzI5LjkgMCA1OCAxMS42IDc5LjIgMzIuOEM2MTIuNCAzODEgNjI0IDQwOS4xIDYyNCA0MzljMCAyOS45LTExLjYgNTgtMzIuOCA3OS4yeiJ9fV19LG5hbWU6ImVudmlyb25tZW50Iix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sOTk3ODM6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNzI0LjQgMjI0LjlDNjY3LjcgMTY5LjUgNTkyLjMgMTM5IDUxMiAxMzlzLTE1NS43IDMwLjUtMjEyLjQgODUuOEMyNDMuMSAyODAgMjEyIDM1My4yIDIxMiA0MzEuMWMwIDI0MS4zIDIzNC4xIDQwNy4yIDMwMCA0NDkuMSA2NS45LTQxLjkgMzAwLTIwNy44IDMwMC00NDkuMSAwLTc3LjktMzEuMS0xNTEuMS04Ny42LTIwNi4yek01MTIgNjE1Yy05Ny4yIDAtMTc2LTc4LjgtMTc2LTE3NnM3OC44LTE3NiAxNzYtMTc2IDE3NiA3OC44IDE3NiAxNzYtNzguOCAxNzYtMTc2IDE3NnoiLGZpbGw6bn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDI2M2MtOTcuMiAwLTE3NiA3OC44LTE3NiAxNzZzNzguOCAxNzYgMTc2IDE3NiAxNzYtNzguOCAxNzYtMTc2LTc4LjgtMTc2LTE3Ni0xNzZ6bTc5LjIgMjU1LjJBMTExLjYgMTExLjYgMCAwMTUxMiA1NTFjLTI5LjkgMC01OC0xMS43LTc5LjItMzIuOEExMTEuNiAxMTEuNiAwIDAxNDAwIDQzOWMwLTI5LjkgMTEuNy01OCAzMi44LTc5LjJDNDU0IDMzOC42IDQ4Mi4xIDMyNyA1MTIgMzI3YzI5LjkgMCA1OCAxMS42IDc5LjIgMzIuOFM2MjQgNDA5LjEgNjI0IDQzOWMwIDI5LjktMTEuNiA1OC0zMi44IDc5LjJ6IixmaWxsOmF9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg1NC42IDI4OS4xYTM2Mi40OSAzNjIuNDkgMCAwMC03OS45LTExNS43IDM3MC44MyAzNzAuODMgMCAwMC0xMTguMi03Ny44QzYxMC43IDc2LjYgNTYyLjEgNjcgNTEyIDY3Yy01MC4xIDAtOTguNyA5LjYtMTQ0LjUgMjguNS00NC4zIDE4LjMtODQgNDQuNS0xMTguMiA3Ny44QTM2My42IDM2My42IDAgMDAxNjkuNCAyODljLTE5LjUgNDUtMjkuNCA5Mi44LTI5LjQgMTQyIDAgNzAuNiAxNi45IDE0MC45IDUwLjEgMjA4LjcgMjYuNyA1NC41IDY0IDEwNy42IDExMSAxNTguMSA4MC4zIDg2LjIgMTY0LjUgMTM4LjkgMTg4LjQgMTUzYTQzLjkgNDMuOSAwIDAwMjIuNCA2LjFjNy44IDAgMTUuNS0yIDIyLjQtNi4xIDIzLjktMTQuMSAxMDguMS02Ni44IDE4OC40LTE1MyA0Ny01MC40IDg0LjMtMTAzLjYgMTExLTE1OC4xQzg2Ny4xIDU3MiA4ODQgNTAxLjggODg0IDQzMS4xYzAtNDkuMi05LjktOTctMjkuNC0xNDJ6TTUxMiA4ODAuMmMtNjUuOS00MS45LTMwMC0yMDcuOC0zMDAtNDQ5LjEgMC03Ny45IDMxLjEtMTUxLjEgODcuNi0yMDYuM0MzNTYuMyAxNjkuNSA0MzEuNyAxMzkgNTEyIDEzOXMxNTUuNyAzMC41IDIxMi40IDg1LjlDNzgwLjkgMjgwIDgxMiAzNTMuMiA4MTIgNDMxLjFjMCAyNDEuMy0yMzQuMSA0MDcuMi0zMDAgNDQ5LjF6IixmaWxsOmF9fV19fSxuYW1lOiJlbnZpcm9ubWVudCIsdGhlbWU6InR3b3RvbmUifTt0LmRlZmF1bHQ9ZX0sMzE2NjQ6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em02My41IDM3NS44YzQuNCAwIDggMy42IDggOFY0NzVjMCA0LjQtMy42IDgtOCA4aC0xMzZjLS4zIDQuNC0uMyA5LjEtLjMgMTMuOHYzNmgxMzYuMmM0LjQgMCA4IDMuNiA4IDhWNTY4YzAgNC40LTMuNiA4LTggOEg0NDQuOWMxNS4zIDYyIDYxLjMgOTguNiAxMjkuOCA5OC42IDE5LjkgMCAzNy4xLTEuMiA1MS44LTQuMSA0LjktMSA5LjUgMi44IDkuNSA3Ljh2NDIuOGMwIDMuOC0yLjcgNy02LjQgNy44LTE1LjkgMy40LTM0LjMgNS4xLTU1LjMgNS4xLTEwOS44IDAtMTgzLTU4LjgtMjAwLjItMTU4SDM0NGMtNC40IDAtOC0zLjYtOC04di0yNy4yYzAtNC40IDMuNi04IDgtOGgyNi4xdi0zNi45YzAtNC40IDAtOC44LjMtMTIuOEgzNDRjLTQuNCAwLTgtMy42LTgtOHYtMjcuMmMwLTQuNCAzLjYtOCA4LThoMzEuN2MxOS43LTk0LjIgOTItMTQ5LjkgMTk4LjYtMTQ5LjkgMjAuOSAwIDM5LjQgMS45IDU1LjMgNS40IDMuNy44IDYuMyA0IDYuMyA3LjhWMzQ2aC4xYzAgNS4xLTQuNiA4LjgtOS42IDcuOC0xNC43LTIuOS0zMS44LTQuNC01MS43LTQuNC02NS40IDAtMTEwLjQgMzMuNS0xMjcuNiA5MC40aDEyOC40eiJ9fV19LG5hbWU6ImV1cm8tY2lyY2xlIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDY3ODE0OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6bTExNy43LTU4OC42Yy0xNS45LTMuNS0zNC40LTUuNC01NS4zLTUuNC0xMDYuNyAwLTE3OC45IDU1LjctMTk4LjYgMTQ5LjlIMzQ0Yy00LjQgMC04IDMuNi04IDh2MjcuMmMwIDQuNCAzLjYgOCA4IDhoMjYuNGMtLjMgNC4xLS4zIDguNC0uMyAxMi44djM2LjlIMzQ0Yy00LjQgMC04IDMuNi04IDhWNTY4YzAgNC40IDMuNiA4IDggOGgzMC4yYzE3LjIgOTkuMiA5MC40IDE1OCAyMDAuMiAxNTggMjAuOSAwIDM5LjQtMS43IDU1LjMtNS4xIDMuNy0uOCA2LjQtNCA2LjQtNy44di00Mi44YzAtNS00LjYtOC44LTkuNS03LjgtMTQuNyAyLjgtMzEuOSA0LjEtNTEuOCA0LjEtNjguNSAwLTExNC41LTM2LjYtMTI5LjgtOTguNmgxMzAuNmM0LjQgMCA4LTMuNiA4LTh2LTI3LjJjMC00LjQtMy42LTgtOC04SDQzOS4ydi0zNmMwLTQuNyAwLTkuNC4zLTEzLjhoMTM1LjljNC40IDAgOC0zLjYgOC04di0yNy4yYzAtNC40LTMuNi04LTgtOEg0NDcuMWMxNy4yLTU2LjkgNjIuMy05MC40IDEyNy42LTkwLjQgMTkuOSAwIDM3LjEgMS41IDUxLjcgNC40YTggOCAwIDAwOS42LTcuOHYtNDIuOGMwLTMuOC0yLjYtNy02LjMtNy44eiJ9fV19LG5hbWU6ImV1cm8tY2lyY2xlIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sMTI4NDY6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeiIsZmlsbDphfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgMTQwYy0yMDUuNCAwLTM3MiAxNjYuNi0zNzIgMzcyczE2Ni42IDM3MiAzNzIgMzcyIDM3Mi0xNjYuNiAzNzItMzcyLTE2Ni42LTM3Mi0zNzItMzcyem0xMTcuMSA1ODEuMWMwIDMuOC0yLjcgNy02LjQgNy44LTE1LjkgMy40LTM0LjQgNS4xLTU1LjMgNS4xLTEwOS44IDAtMTgzLTU4LjgtMjAwLjItMTU4SDMzN2MtNC40IDAtOC0zLjYtOC04di0yNy4yYzAtNC40IDMuNi04IDgtOGgyNi4xdi0zNi45YzAtNC40IDAtOC43LjMtMTIuOEgzMzdjLTQuNCAwLTgtMy42LTgtOHYtMjcuMmMwLTQuNCAzLjYtOCA4LThoMzEuOEMzODguNSAzNDUuNyA0NjAuNyAyOTAgNTY3LjQgMjkwYzIwLjkgMCAzOS40IDEuOSA1NS4zIDUuNCAzLjcuOCA2LjMgNCA2LjMgNy44VjM0NmE4IDggMCAwMS05LjYgNy44Yy0xNC42LTIuOS0zMS44LTQuNC01MS43LTQuNC02NS4zIDAtMTEwLjQgMzMuNS0xMjcuNiA5MC40aDEyOC4zYzQuNCAwIDggMy42IDggOFY0NzVjMCA0LjQtMy42IDgtOCA4SDQzMi41Yy0uMyA0LjQtLjMgOS4xLS4zIDEzLjh2MzZoMTM2LjRjNC40IDAgOCAzLjYgOCA4VjU2OGMwIDQuNC0zLjYgOC04IDhINDM4YzE1LjMgNjIgNjEuMyA5OC42IDEyOS44IDk4LjYgMTkuOSAwIDM3LjEtMS4zIDUxLjgtNC4xIDQuOS0xIDkuNSAyLjggOS41IDcuOHY0Mi44eiIsZmlsbDpufX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02MTkuNiA2NzAuNWMtMTQuNyAyLjgtMzEuOSA0LjEtNTEuOCA0LjEtNjguNSAwLTExNC41LTM2LjYtMTI5LjgtOTguNmgxMzAuNmM0LjQgMCA4LTMuNiA4LTh2LTI3LjJjMC00LjQtMy42LTgtOC04SDQzMi4ydi0zNmMwLTQuNyAwLTkuNC4zLTEzLjhoMTM1LjljNC40IDAgOC0zLjYgOC04di0yNy4yYzAtNC40LTMuNi04LTgtOEg0NDAuMWMxNy4yLTU2LjkgNjIuMy05MC40IDEyNy42LTkwLjQgMTkuOSAwIDM3LjEgMS41IDUxLjcgNC40YTggOCAwIDAwOS42LTcuOHYtNDIuOGMwLTMuOC0yLjYtNy02LjMtNy44LTE1LjktMy41LTM0LjQtNS40LTU1LjMtNS40LTEwNi43IDAtMTc4LjkgNTUuNy0xOTguNiAxNDkuOUgzMzdjLTQuNCAwLTggMy42LTggOHYyNy4yYzAgNC40IDMuNiA4IDggOGgyNi40Yy0uMyA0LjEtLjMgOC40LS4zIDEyLjh2MzYuOUgzMzdjLTQuNCAwLTggMy42LTggOFY1NjhjMCA0LjQgMy42IDggOCA4aDMwLjJjMTcuMiA5OS4yIDkwLjQgMTU4IDIwMC4yIDE1OCAyMC45IDAgMzkuNC0xLjcgNTUuMy01LjEgMy43LS44IDYuNC00IDYuNC03Ljh2LTQyLjhjMC01LTQuNi04LjgtOS41LTcuOHoiLGZpbGw6YX19XX19LG5hbWU6ImV1cm8tY2lyY2xlIix0aGVtZToidHdvdG9uZSJ9O3QuZGVmYXVsdD1lfSw5Mjg3MTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyem0xMTcuNy01ODguNmMtMTUuOS0zLjUtMzQuNC01LjQtNTUuMy01LjQtMTA2LjcgMC0xNzguOSA1NS43LTE5OC42IDE0OS45SDM0NGMtNC40IDAtOCAzLjYtOCA4djI3LjJjMCA0LjQgMy42IDggOCA4aDI2LjRjLS4zIDQuMS0uMyA4LjQtLjMgMTIuOHYzNi45SDM0NGMtNC40IDAtOCAzLjYtOCA4VjU2OGMwIDQuNCAzLjYgOCA4IDhoMzAuMmMxNy4yIDk5LjIgOTAuNCAxNTggMjAwLjIgMTU4IDIwLjkgMCAzOS40LTEuNyA1NS4zLTUuMSAzLjctLjggNi40LTQgNi40LTcuOHYtNDIuOGMwLTUtNC42LTguOC05LjUtNy44LTE0LjcgMi44LTMxLjkgNC4xLTUxLjggNC4xLTY4LjUgMC0xMTQuNS0zNi42LTEyOS44LTk4LjZoMTMwLjZjNC40IDAgOC0zLjYgOC04di0yNy4yYzAtNC40LTMuNi04LTgtOEg0MzkuMnYtMzZjMC00LjcgMC05LjQuMy0xMy44aDEzNS45YzQuNCAwIDgtMy42IDgtOHYtMjcuMmMwLTQuNC0zLjYtOC04LThINDQ3LjFjMTcuMi01Ni45IDYyLjMtOTAuNCAxMjcuNi05MC40IDE5LjkgMCAzNy4xIDEuNSA1MS43IDQuNGE4IDggMCAwMDkuNi03Ljh2LTQyLjhjMC0zLjgtMi42LTctNi4zLTcuOHoifX1dfSxuYW1lOiJldXJvIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNTA2NTc6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeiIsZmlsbDphfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgMTQwYy0yMDUuNCAwLTM3MiAxNjYuNi0zNzIgMzcyczE2Ni42IDM3MiAzNzIgMzcyIDM3Mi0xNjYuNiAzNzItMzcyLTE2Ni42LTM3Mi0zNzItMzcyem0xMTcuMSA1ODEuMWMwIDMuOC0yLjcgNy02LjQgNy44LTE1LjkgMy40LTM0LjQgNS4xLTU1LjMgNS4xLTEwOS44IDAtMTgzLTU4LjgtMjAwLjItMTU4SDMzN2MtNC40IDAtOC0zLjYtOC04di0yNy4yYzAtNC40IDMuNi04IDgtOGgyNi4xdi0zNi45YzAtNC40IDAtOC43LjMtMTIuOEgzMzdjLTQuNCAwLTgtMy42LTgtOHYtMjcuMmMwLTQuNCAzLjYtOCA4LThoMzEuOEMzODguNSAzNDUuNyA0NjAuNyAyOTAgNTY3LjQgMjkwYzIwLjkgMCAzOS40IDEuOSA1NS4zIDUuNCAzLjcuOCA2LjMgNCA2LjMgNy44VjM0NmE4IDggMCAwMS05LjYgNy44Yy0xNC42LTIuOS0zMS44LTQuNC01MS43LTQuNC02NS4zIDAtMTEwLjQgMzMuNS0xMjcuNiA5MC40aDEyOC4zYzQuNCAwIDggMy42IDggOFY0NzVjMCA0LjQtMy42IDgtOCA4SDQzMi41Yy0uMyA0LjQtLjMgOS4xLS4zIDEzLjh2MzZoMTM2LjRjNC40IDAgOCAzLjYgOCA4VjU2OGMwIDQuNC0zLjYgOC04IDhINDM4YzE1LjMgNjIgNjEuMyA5OC42IDEyOS44IDk4LjYgMTkuOSAwIDM3LjEtMS4zIDUxLjgtNC4xIDQuOS0xIDkuNSAyLjggOS41IDcuOHY0Mi44eiIsZmlsbDpufX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02MTkuNiA2NzAuNWMtMTQuNyAyLjgtMzEuOSA0LjEtNTEuOCA0LjEtNjguNSAwLTExNC41LTM2LjYtMTI5LjgtOTguNmgxMzAuNmM0LjQgMCA4LTMuNiA4LTh2LTI3LjJjMC00LjQtMy42LTgtOC04SDQzMi4ydi0zNmMwLTQuNyAwLTkuNC4zLTEzLjhoMTM1LjljNC40IDAgOC0zLjYgOC04di0yNy4yYzAtNC40LTMuNi04LTgtOEg0NDAuMWMxNy4yLTU2LjkgNjIuMy05MC40IDEyNy42LTkwLjQgMTkuOSAwIDM3LjEgMS41IDUxLjcgNC40YTggOCAwIDAwOS42LTcuOHYtNDIuOGMwLTMuOC0yLjYtNy02LjMtNy44LTE1LjktMy41LTM0LjQtNS40LTU1LjMtNS40LTEwNi43IDAtMTc4LjkgNTUuNy0xOTguNiAxNDkuOUgzMzdjLTQuNCAwLTggMy42LTggOHYyNy4yYzAgNC40IDMuNiA4IDggOGgyNi40Yy0uMyA0LjEtLjMgOC40LS4zIDEyLjh2MzYuOUgzMzdjLTQuNCAwLTggMy42LTggOFY1NjhjMCA0LjQgMy42IDggOCA4aDMwLjJjMTcuMiA5OS4yIDkwLjQgMTU4IDIwMC4yIDE1OCAyMC45IDAgMzkuNC0xLjcgNTUuMy01LjEgMy43LS44IDYuNC00IDYuNC03Ljh2LTQyLjhjMC01LTQuNi04LjgtOS41LTcuOHoiLGZpbGw6YX19XX19LG5hbWU6ImV1cm8iLHRoZW1lOiJ0d290b25lIn07dC5kZWZhdWx0PWV9LDY0NDY3OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02ODggMzEydi00OGMwLTQuNC0zLjYtOC04LThIMjk2Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDM4NGM0LjQgMCA4LTMuNiA4LTh6bS0zOTIgODhjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMTg0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04SDI5NnptMzc2IDExNmMtMTE5LjMgMC0yMTYgOTYuNy0yMTYgMjE2czk2LjcgMjE2IDIxNiAyMTYgMjE2LTk2LjcgMjE2LTIxNi05Ni43LTIxNi0yMTYtMjE2em0xMDcuNSAzMjMuNUM3NTAuOCA4NjguMiA3MTIuNiA4ODQgNjcyIDg4NHMtNzguOC0xNS44LTEwNy41LTQ0LjVDNTM1LjggODEwLjggNTIwIDc3Mi42IDUyMCA3MzJzMTUuOC03OC44IDQ0LjUtMTA3LjVDNTkzLjIgNTk1LjggNjMxLjQgNTgwIDY3MiA1ODBzNzguOCAxNS44IDEwNy41IDQ0LjVDODA4LjIgNjUzLjIgODI0IDY5MS40IDgyNCA3MzJzLTE1LjggNzguOC00NC41IDEwNy41ek02NDAgODEyYTMyIDMyIDAgMTA2NCAwIDMyIDMyIDAgMTAtNjQgMHptMTItNjRoNDBjNC40IDAgOC0zLjYgOC04VjYyOGMwLTQuNC0zLjYtOC04LThoLTQwYy00LjQgMC04IDMuNi04IDh2MTEyYzAgNC40IDMuNiA4IDggOHpNNDQwIDg1MkgyMDhWMTQ4aDU2MHYzNDRjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFYxMDhjMC0xNy43LTE0LjMtMzItMzItMzJIMTY4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3ODRjMCAxNy43IDE0LjMgMzIgMzIgMzJoMjcyYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04eiJ9fV19LG5hbWU6ImV4Y2VwdGlvbiIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDc4NTE1OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptLTMyIDIzMmMwLTQuNCAzLjYtOCA4LThoNDhjNC40IDAgOCAzLjYgOCA4djI3MmMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LThWMjk2em0zMiA0NDBhNDguMDEgNDguMDEgMCAwMTAtOTYgNDguMDEgNDguMDEgMCAwMTAgOTZ6In19XX0sbmFtZToiZXhjbGFtYXRpb24tY2lyY2xlIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDM0OTUwOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6In19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNDY0IDY4OGE0OCA0OCAwIDEwOTYgMCA0OCA0OCAwIDEwLTk2IDB6bTI0LTExMmg0OGM0LjQgMCA4LTMuNiA4LThWMjk2YzAtNC40LTMuNi04LTgtOGgtNDhjLTQuNCAwLTggMy42LTggOHYyNzJjMCA0LjQgMy42IDggOCA4eiJ9fV19LG5hbWU6ImV4Y2xhbWF0aW9uLWNpcmNsZSIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDhlNDpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjpmdW5jdGlvbihhLG4pe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6IixmaWxsOmF9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiAxNDBjLTIwNS40IDAtMzcyIDE2Ni42LTM3MiAzNzJzMTY2LjYgMzcyIDM3MiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzItMTY2LjYtMzcyLTM3Mi0zNzJ6bS0zMiAxNTZjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHYyNzJjMCA0LjQtMy42IDgtOCA4aC00OGMtNC40IDAtOC0zLjYtOC04VjI5NnptMzIgNDQwYTQ4LjAxIDQ4LjAxIDAgMDEwLTk2IDQ4LjAxIDQ4LjAxIDAgMDEwIDk2eiIsZmlsbDpufX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00ODggNTc2aDQ4YzQuNCAwIDgtMy42IDgtOFYyOTZjMC00LjQtMy42LTgtOC04aC00OGMtNC40IDAtOCAzLjYtOCA4djI3MmMwIDQuNCAzLjYgOCA4IDh6bS0yNCAxMTJhNDggNDggMCAxMDk2IDAgNDggNDggMCAxMC05NiAweiIsZmlsbDphfX1dfX0sbmFtZToiZXhjbGFtYXRpb24tY2lyY2xlIix0aGVtZToidHdvdG9uZSJ9O3QuZGVmYXVsdD1lfSw2NDc1MzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNDQ4IDgwNGE2NCA2NCAwIDEwMTI4IDAgNjQgNjQgMCAxMC0xMjggMHptMzItMTY4aDY0YzQuNCAwIDgtMy42IDgtOFYxNjRjMC00LjQtMy42LTgtOC04aC02NGMtNC40IDAtOCAzLjYtOCA4djQ2NGMwIDQuNCAzLjYgOCA4IDh6In19XX0sbmFtZToiZXhjbGFtYXRpb24iLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw2NzE1MTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODU1IDE2MC4xbC0xODkuMiAyMy41Yy02LjYuOC05LjMgOC44LTQuNyAxMy41bDU0LjcgNTQuNy0xNTMuNSAxNTMuNWE4LjAzIDguMDMgMCAwMDAgMTEuM2w0NS4xIDQ1LjFjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGwxNTMuNi0xNTMuNiA1NC43IDU0LjdhNy45NCA3Ljk0IDAgMDAxMy41LTQuN0w4NjMuOSAxNjlhNy45IDcuOSAwIDAwLTguOS04Ljl6TTQxNi42IDU2Mi4zYTguMDMgOC4wMyAwIDAwLTExLjMgMEwyNTEuOCA3MTUuOWwtNTQuNy01NC43YTcuOTQgNy45NCAwIDAwLTEzLjUgNC43TDE2MC4xIDg1NWMtLjYgNS4yIDMuNyA5LjUgOC45IDguOWwxODkuMi0yMy41YzYuNi0uOCA5LjMtOC44IDQuNy0xMy41bC01NC43LTU0LjcgMTUzLjYtMTUzLjZjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM2wtNDUuMi00NXoifX1dfSxuYW1lOiJleHBhbmQtYWx0Iix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNDAyNDY6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJkZWZzIixhdHRyczp7fSxjaGlsZHJlbjpbe3RhZzoic3R5bGUiLGF0dHJzOnt9fV19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMzQyIDg4SDEyMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MjI0YzAgOC44IDcuMiAxNiAxNiAxNmg0OGM4LjggMCAxNi03LjIgMTYtMTZWMTY4aDE3NGM4LjggMCAxNi03LjIgMTYtMTZ2LTQ4YzAtOC44LTcuMi0xNi0xNi0xNnptNTc4IDU3NmgtNDhjLTguOCAwLTE2IDcuMi0xNiAxNnYxNzZINjgyYy04LjggMC0xNiA3LjItMTYgMTZ2NDhjMCA4LjggNy4yIDE2IDE2IDE2aDIyMmMxNy43IDAgMzItMTQuMyAzMi0zMlY2ODBjMC04LjgtNy4yLTE2LTE2LTE2ek0zNDIgODU2SDE2OFY2ODBjMC04LjgtNy4yLTE2LTE2LTE2aC00OGMtOC44IDAtMTYgNy4yLTE2IDE2djIyNGMwIDE3LjcgMTQuMyAzMiAzMiAzMmgyMjJjOC44IDAgMTYtNy4yIDE2LTE2di00OGMwLTguOC03LjItMTYtMTYtMTZ6TTkwNCA4OEg2ODJjLTguOCAwLTE2IDcuMi0xNiAxNnY0OGMwIDguOCA3LjIgMTYgMTYgMTZoMTc0djE3NmMwIDguOCA3LjIgMTYgMTYgMTZoNDhjOC44IDAgMTYtNy4yIDE2LTE2VjEyMGMwLTE3LjctMTQuMy0zMi0zMi0zMnoifX1dfSxuYW1lOiJleHBhbmQiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw5NjYxMDpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMjE4LjkgNjM2LjNsNDIuNiAyNi42Yy4xLjEuMy4yLjQuM2wxMi43IDggLjMuM2ExODYuOSAxODYuOSAwIDAwOTQuMSAyNS4xYzQ0LjkgMCA4Ny4yLTE1LjcgMTIxLTQzLjhhMjU2LjI3IDI1Ni4yNyAwIDAxMTY0LjktNTkuOWM1Mi4zIDAgMTAyLjIgMTUuNyAxNDQuNiA0NC41bDcuOSA1LTExMS42LTI4OVYxNzkuOGg2My41YzQuNCAwIDgtMy42IDgtOFYxMjBjMC00LjQtMy42LTgtOC04SDI2NC43Yy00LjQgMC04IDMuNi04IDh2NTEuOWMwIDQuNCAzLjYgOCA4IDhoNjMuNXYxNzMuNkwyMTguOSA2MzYuM3ptMzMzLTIwMy4xYzIyIDAgMzkuOSAxNy45IDM5LjkgMzkuOVM1NzMuOSA1MTMgNTUxLjkgNTEzIDUxMiA0OTUuMSA1MTIgNDczLjFzMTcuOS0zOS45IDM5LjktMzkuOXpNODc4IDgyNS4xbC0yOS45LTc3LjQtODUuNy01My41LS4xLjFjLS43LS41LTEuNS0xLTIuMi0xLjVsLTguMS01LS4zLS4zYy0yOS0xNy41LTYyLjMtMjYuOC05Ny0yNi44LTQ0LjkgMC04Ny4yIDE1LjctMTIxIDQzLjhhMjU2LjI3IDI1Ni4yNyAwIDAxLTE2NC45IDU5LjljLTUzIDAtMTAzLjUtMTYuMS0xNDYuMi00NS42bC0yOC45LTE4LjFMMTQ2IDgyNS4xYy0yLjggNy40LTQuMyAxNS4yLTQuMyAyMyAwIDM1LjIgMjguNiA2My44IDYzLjggNjMuOGg2MTIuOWM3LjkgMCAxNS43LTEuNSAyMy00LjNhNjMuNiA2My42IDAgMDAzNi42LTgyLjV6In19XX0sbmFtZToiZXhwZXJpbWVudCIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw0MjIyNDpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDQ3MmE0MCA0MCAwIDEwODAgMCA0MCA0MCAwIDEwLTgwIDB6bTM2NyAzNTIuOUw2OTYuMyAzNTJWMTc4SDc2OHYtNjhIMjU2djY4aDcxLjd2MTc0TDE0NSA4MjQuOWMtMi44IDcuNC00LjMgMTUuMi00LjMgMjMuMSAwIDM1LjMgMjguNyA2NCA2NCA2NGg2MTQuNmM3LjkgMCAxNS43LTEuNSAyMy4xLTQuMyAzMy0xMi43IDQ5LjQtNDkuOCAzNi42LTgyLjh6TTM5NS43IDM2NC43VjE4MGgyMzIuNnYxODQuN0w3MTkuMiA2MDBjLTIwLjctNS4zLTQyLjEtOC02My45LTgtNjEuMiAwLTExOS4yIDIxLjUtMTY1LjMgNjBhMTg4Ljc4IDE4OC43OCAwIDAxLTEyMS4zIDQzLjljLTMyLjcgMC02NC4xLTguMy05MS44LTIzLjdsMTE4LjgtMzA3LjV6TTIxMC41IDg0NGw0MS43LTEwNy44YzM1LjcgMTguMSA3NS40IDI3LjggMTE2LjYgMjcuOCA2MS4yIDAgMTE5LjItMjEuNSAxNjUuMy02MCAzMy45LTI4LjIgNzYuMy00My45IDEyMS4zLTQzLjkgMzUgMCA2OC40IDkuNSA5Ny42IDI3LjFMODEzLjUgODQ0aC02MDN6In19XX0sbmFtZToiZXhwZXJpbWVudCIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDI1MTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjpmdW5jdGlvbihhLG4pe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01NTEuOSA1MTNjMTkuNiAwIDM1LjktMTQuMiAzOS4zLTMyLjhBNDAuMDIgNDAuMDIgMCAwMTU1MiA1MTJhNDAgNDAgMCAwMS00MC0zOS40di41YzAgMjIgMTcuOSAzOS45IDM5LjkgMzkuOXpNNzUyIDY4Ny44bC0uMy0uM2MtMjktMTcuNS02Mi4zLTI2LjgtOTctMjYuOC00NC45IDAtODcuMiAxNS43LTEyMSA0My44YTI1Ni4yNyAyNTYuMjcgMCAwMS0xNjQuOSA1OS45Yy00MS4yIDAtODEtOS44LTExNi43LTI4TDIxMC41IDg0NGg2MDNsLTU5LjktMTU1LjItMS42LTF6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg3OSA4MjQuOUw2OTYuMyAzNTJWMTc4SDc2OHYtNjhIMjU2djY4aDcxLjd2MTc0TDE0NSA4MjQuOWMtMi44IDcuNC00LjMgMTUuMi00LjMgMjMuMSAwIDM1LjMgMjguNyA2NCA2NCA2NGg2MTQuNmM3LjkgMCAxNS43LTEuNSAyMy4xLTQuMyAzMy0xMi43IDQ5LjQtNDkuOCAzNi42LTgyLjh6TTM5NS43IDM2NC43VjE4MGgyMzIuNnYxODQuN0w3MTkuMiA2MDBjLTIwLjctNS4zLTQyLjEtOC02My45LTgtNjEuMiAwLTExOS4yIDIxLjUtMTY1LjMgNjBhMTg4Ljc4IDE4OC43OCAwIDAxLTEyMS4zIDQzLjljLTMyLjcgMC02NC4xLTguMy05MS44LTIzLjdsMTE4LjgtMzA3LjV6TTIxMC41IDg0NGw0MS42LTEwNy42LjEtLjJjMzUuNyAxOC4xIDc1LjQgMjcuOCAxMTYuNiAyNy44IDYxLjIgMCAxMTkuMi0yMS41IDE2NS4zLTYwIDMzLjktMjguMiA3Ni4zLTQzLjkgMTIxLjMtNDMuOSAzNSAwIDY4LjQgOS41IDk3LjYgMjcuMWwuNiAxLjZMODEzLjUgODQ0aC02MDN6IixmaWxsOmF9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTU1MiA1MTJjMTkuMyAwIDM1LjQtMTMuNiAzOS4yLTMxLjguNi0yLjcuOC01LjQuOC04LjIgMC0yMi4xLTE3LjktNDAtNDAtNDBzLTQwIDE3LjktNDAgNDB2LjZhNDAgNDAgMCAwMDQwIDM5LjR6IixmaWxsOmF9fV19fSxuYW1lOiJleHBlcmltZW50Iix0aGVtZToidHdvdG9uZSJ9O3QuZGVmYXVsdD1lfSw0NTIzODpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnsiZmlsbC1ydWxlIjoiZXZlbm9kZCIsdmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCA5MTJIMTQ0Yy0xNy43IDAtMzItMTQuMy0zMi0zMlYxNDRjMC0xNy43IDE0LjMtMzIgMzItMzJoMzYwYzQuNCAwIDggMy42IDggOHY1NmMwIDQuNC0zLjYgOC04IDhIMTg0djY1Nmg2NTZWNTIwYzAtNC40IDMuNi04IDgtOGg1NmM0LjQgMCA4IDMuNiA4IDh2MzYwYzAgMTcuNy0xNC4zIDMyLTMyIDMyek03NzAuODcgMTk5LjEzbC01Mi4yLTUyLjJhOC4wMSA4LjAxIDAgMDE0LjctMTMuNmwxNzkuNC0yMWM1LjEtLjYgOS41IDMuNyA4LjkgOC45bC0yMSAxNzkuNGMtLjggNi42LTguOSA5LjQtMTMuNiA0LjdsLTUyLjQtNTIuNC0yNTYuMiAyNTYuMmE4LjAzIDguMDMgMCAwMS0xMS4zIDBsLTQyLjQtNDIuNGE4LjAzIDguMDMgMCAwMTAtMTEuM2wyNTYuMS0yNTYuM3oifX1dfSxuYW1lOiJleHBvcnQiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw0NDEwNTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMzk2IDUxMmExMTIgMTEyIDAgMTAyMjQgMCAxMTIgMTEyIDAgMTAtMjI0IDB6bTU0Ni4yLTI1LjhDODQ3LjQgMjg2LjUgNzA0LjEgMTg2IDUxMiAxODZjLTE5Mi4yIDAtMzM1LjQgMTAwLjUtNDMwLjIgMzAwLjNhNjAuMyA2MC4zIDAgMDAwIDUxLjVDMTc2LjYgNzM3LjUgMzE5LjkgODM4IDUxMiA4MzhjMTkyLjIgMCAzMzUuNC0xMDAuNSA0MzAuMi0zMDAuMyA3LjctMTYuMiA3LjctMzUgMC01MS41ek01MDggNjg4Yy05Ny4yIDAtMTc2LTc4LjgtMTc2LTE3NnM3OC44LTE3NiAxNzYtMTc2IDE3NiA3OC44IDE3NiAxNzYtNzguOCAxNzYtMTc2IDE3NnoifX1dfSxuYW1lOiJleWUiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sNTI1NTY6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUwOCA2MjRhMTEyIDExMiAwIDAwMTEyLTExMmMwLTMuMjgtLjE1LTYuNTMtLjQzLTkuNzRMNDk4LjI2IDYyMy41N2MzLjIxLjI4IDYuNDUuNDMgOS43NC40M3ptMzcwLjcyLTQ1OC40NEw4MzYgMTIyLjg4YTggOCAwIDAwLTExLjMxIDBMNzE1LjM3IDIzMi4yM1E2MjQuOTEgMTg2IDUxMiAxODZxLTI4OC4zIDAtNDMwLjIgMzAwLjNhNjAuMyA2MC4zIDAgMDAwIDUxLjVxNTYuNyAxMTkuNDMgMTM2LjU1IDE5MS40NUwxMTIuNTYgODM1YTggOCAwIDAwMCAxMS4zMUwxNTUuMjUgODg5YTggOCAwIDAwMTEuMzEgMGw3MTIuMTYtNzEyLjEyYTggOCAwIDAwMC0xMS4zMnpNMzMyIDUxMmExNzYgMTc2IDAgMDEyNTguODgtMTU1LjI4bC00OC42MiA0OC42MmExMTIuMDggMTEyLjA4IDAgMDAtMTQwLjkyIDE0MC45MmwtNDguNjIgNDguNjJBMTc1LjA5IDE3NS4wOSAwIDAxMzMyIDUxMnoifX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05NDIuMiA0ODYuMlE4ODkuNCAzNzUgODE2LjUxIDMwNC44NUw2NzIuMzcgNDQ5QTE3Ni4wOCAxNzYuMDggMCAwMTQ0NSA2NzYuMzdMMzIyLjc0IDc5OC42M1E0MDcuODIgODM4IDUxMiA4MzhxMjg4LjMgMCA0MzAuMi0zMDAuM2E2MC4yOSA2MC4yOSAwIDAwMC01MS41eiJ9fV19LG5hbWU6ImV5ZS1pbnZpc2libGUiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sMjU3NzA6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTk0Mi4yIDQ4Ni4yUTg4OS40NyAzNzUuMTEgODE2LjcgMzA1bC01MC44OCA1MC44OEM4MDcuMzEgMzk1LjUzIDg0My40NSA0NDcuNCA4NzQuNyA1MTIgNzkxLjUgNjg0LjIgNjczLjQgNzY2IDUxMiA3NjZxLTcyLjY3IDAtMTMzLjg3LTIyLjM4TDMyMyA3OTguNzVRNDA4IDgzOCA1MTIgODM4cTI4OC4zIDAgNDMwLjItMzAwLjNhNjAuMjkgNjAuMjkgMCAwMDAtNTEuNXptLTYzLjU3LTMyMC42NEw4MzYgMTIyLjg4YTggOCAwIDAwLTExLjMyIDBMNzE1LjMxIDIzMi4yUTYyNC44NiAxODYgNTEyIDE4NnEtMjg4LjMgMC00MzAuMiAzMDAuM2E2MC4zIDYwLjMgMCAwMDAgNTEuNXE1Ni42OSAxMTkuNCAxMzYuNSAxOTEuNDFMMTEyLjQ4IDgzNWE4IDggMCAwMDAgMTEuMzFMMTU1LjE3IDg4OWE4IDggMCAwMDExLjMxIDBsNzEyLjE1LTcxMi4xMmE4IDggMCAwMDAtMTEuMzJ6TTE0OS4zIDUxMkMyMzIuNiAzMzkuOCAzNTAuNyAyNTggNTEyIDI1OGM1NC41NCAwIDEwNC4xMyA5LjM2IDE0OS4xMiAyOC4zOWwtNzAuMyA3MC4zYTE3NiAxNzYgMCAwMC0yMzguMTMgMjM4LjEzbC04My40MiA4My40MkMyMjMuMSA2MzcuNDkgMTgzLjMgNTgyLjI4IDE0OS4zIDUxMnptMjQ2LjcgMGExMTIuMTEgMTEyLjExIDAgMDExNDYuMi0xMDYuNjlMNDAxLjMxIDU0Ni4yQTExMiAxMTIgMCAwMTM5NiA1MTJ6In19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTA4IDYyNGMtMy40NiAwLTYuODctLjE2LTEwLjI1LS40N2wtNTIuODIgNTIuODJhMTc2LjA5IDE3Ni4wOSAwIDAwMjI3LjQyLTIyNy40MmwtNTIuODIgNTIuODJjLjMxIDMuMzguNDcgNi43OS40NyAxMC4yNWExMTEuOTQgMTExLjk0IDAgMDEtMTEyIDExMnoifX1dfSxuYW1lOiJleWUtaW52aXNpYmxlIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNzgwMzI6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMjU0Ljg5IDc1OC44NWwxMjUuNTctMTI1LjU3YTE3NiAxNzYgMCAwMTI0OC44Mi0yNDguODJMNzU3IDI1Ni43MlE2NTEuNjkgMTg2LjA3IDUxMiAxODZxLTI4OC4zIDAtNDMwLjIgMzAwLjNhNjAuMyA2MC4zIDAgMDAwIDUxLjVxNjkuMjcgMTQ1LjkxIDE3My4wOSAyMjEuMDV6TTk0Mi4yIDQ4Ni4yUTg4OS40NiAzNzUuMTEgODE2LjcgMzA1TDY3Mi40OCA0NDkuMjdhMTc2LjA5IDE3Ni4wOSAwIDAxLTIyNy4yMiAyMjcuMjFMMzIzIDc5OC43NVE0MDggODM4IDUxMiA4MzhxMjg4LjMgMCA0MzAuMi0zMDAuM2E2MC4yOSA2MC4yOSAwIDAwMC01MS41eiIsZmlsbDpufX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05NDIuMiA0ODYuMlE4ODkuNDcgMzc1LjExIDgxNi43IDMwNWwtNTAuODggNTAuODhDODA3LjMxIDM5NS41MyA4NDMuNDUgNDQ3LjQgODc0LjcgNTEyIDc5MS41IDY4NC4yIDY3My40IDc2NiA1MTIgNzY2cS03Mi42NyAwLTEzMy44Ny0yMi4zOEwzMjMgNzk4Ljc1UTQwOCA4MzggNTEyIDgzOHEyODguMyAwIDQzMC4yLTMwMC4zYTYwLjI5IDYwLjI5IDAgMDAwLTUxLjV6TTg3OC42MyAxNjUuNTZMODM2IDEyMi44OGE4IDggMCAwMC0xMS4zMiAwTDcxNS4zMSAyMzIuMlE2MjQuODYgMTg2IDUxMiAxODZxLTI4OC4zIDAtNDMwLjIgMzAwLjNhNjAuMyA2MC4zIDAgMDAwIDUxLjVxNTYuNjkgMTE5LjQgMTM2LjUgMTkxLjQxTDExMi40OCA4MzVhOCA4IDAgMDAwIDExLjMxTDE1NS4xNyA4ODlhOCA4IDAgMDAxMS4zMSAwbDcxMi4xNS03MTIuMTJhOCA4IDAgMDAwLTExLjMyek0xNDkuMyA1MTJDMjMyLjYgMzM5LjggMzUwLjcgMjU4IDUxMiAyNThjNTQuNTQgMCAxMDQuMTMgOS4zNiAxNDkuMTIgMjguMzlsLTcwLjMgNzAuM2ExNzYgMTc2IDAgMDAtMjM4LjEzIDIzOC4xM2wtODMuNDIgODMuNDJDMjIzLjEgNjM3LjQ5IDE4My4zIDU4Mi4yOCAxNDkuMyA1MTJ6bTI0Ni43IDBhMTEyLjExIDExMi4xMSAwIDAxMTQ2LjItMTA2LjY5TDQwMS4zMSA1NDYuMkExMTIgMTEyIDAgMDEzOTYgNTEyeiIsZmlsbDphfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MDggNjI0Yy0zLjQ2IDAtNi44Ny0uMTYtMTAuMjUtLjQ3bC01Mi44MiA1Mi44MmExNzYuMDkgMTc2LjA5IDAgMDAyMjcuNDItMjI3LjQybC01Mi44MiA1Mi44MmMuMzEgMy4zOC40NyA2Ljc5LjQ3IDEwLjI1YTExMS45NCAxMTEuOTQgMCAwMS0xMTIgMTEyeiIsZmlsbDphfX1dfX0sbmFtZToiZXllLWludmlzaWJsZSIsdGhlbWU6InR3b3RvbmUifTt0LmRlZmF1bHQ9ZX0sMTM4NjQ6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTk0Mi4yIDQ4Ni4yQzg0Ny40IDI4Ni41IDcwNC4xIDE4NiA1MTIgMTg2Yy0xOTIuMiAwLTMzNS40IDEwMC41LTQzMC4yIDMwMC4zYTYwLjMgNjAuMyAwIDAwMCA1MS41QzE3Ni42IDczNy41IDMxOS45IDgzOCA1MTIgODM4YzE5Mi4yIDAgMzM1LjQtMTAwLjUgNDMwLjItMzAwLjMgNy43LTE2LjIgNy43LTM1IDAtNTEuNXpNNTEyIDc2NmMtMTYxLjMgMC0yNzkuNC04MS44LTM2Mi43LTI1NEMyMzIuNiAzMzkuOCAzNTAuNyAyNTggNTEyIDI1OGMxNjEuMyAwIDI3OS40IDgxLjggMzYyLjcgMjU0Qzc5MS41IDY4NC4yIDY3My40IDc2NiA1MTIgNzY2em0tNC00MzBjLTk3LjIgMC0xNzYgNzguOC0xNzYgMTc2czc4LjggMTc2IDE3NiAxNzYgMTc2LTc4LjggMTc2LTE3Ni03OC44LTE3Ni0xNzYtMTc2em0wIDI4OGMtNjEuOSAwLTExMi01MC4xLTExMi0xMTJzNTAuMS0xMTIgMTEyLTExMiAxMTIgNTAuMSAxMTIgMTEyLTUwLjEgMTEyLTExMiAxMTJ6In19XX0sbmFtZToiZXllIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNTc3MjpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjpmdW5jdGlvbihhLG4pe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04MS44IDUzNy44YTYwLjMgNjAuMyAwIDAxMC01MS41QzE3Ni42IDI4Ni41IDMxOS44IDE4NiA1MTIgMTg2Yy0xOTIuMiAwLTMzNS40IDEwMC41LTQzMC4yIDMwMC4zYTYwLjMgNjAuMyAwIDAwMCA1MS41QzE3Ni42IDczNy41IDMxOS45IDgzOCA1MTIgODM4Yy0xOTIuMSAwLTMzNS40LTEwMC41LTQzMC4yLTMwMC4yeiIsZmlsbDpufX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgMjU4Yy0xNjEuMyAwLTI3OS40IDgxLjgtMzYyLjcgMjU0QzIzMi42IDY4NC4yIDM1MC43IDc2NiA1MTIgNzY2YzE2MS40IDAgMjc5LjUtODEuOCAzNjIuNy0yNTRDNzkxLjQgMzM5LjggNjczLjMgMjU4IDUxMiAyNTh6bS00IDQzMGMtOTcuMiAwLTE3Ni03OC44LTE3Ni0xNzZzNzguOC0xNzYgMTc2LTE3NiAxNzYgNzguOCAxNzYgMTc2LTc4LjggMTc2LTE3NiAxNzZ6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTk0Mi4yIDQ4Ni4yQzg0Ny40IDI4Ni41IDcwNC4xIDE4NiA1MTIgMTg2Yy0xOTIuMiAwLTMzNS40IDEwMC41LTQzMC4yIDMwMC4zYTYwLjMgNjAuMyAwIDAwMCA1MS41QzE3Ni42IDczNy41IDMxOS45IDgzOCA1MTIgODM4YzE5Mi4yIDAgMzM1LjQtMTAwLjUgNDMwLjItMzAwLjMgNy43LTE2LjIgNy43LTM1IDAtNTEuNXpNNTEyIDc2NmMtMTYxLjMgMC0yNzkuNC04MS44LTM2Mi43LTI1NEMyMzIuNiAzMzkuOCAzNTAuNyAyNTggNTEyIDI1OHMyNzkuNCA4MS44IDM2Mi43IDI1NEM3OTEuNSA2ODQuMiA2NzMuNCA3NjYgNTEyIDc2NnoiLGZpbGw6YX19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTA4IDMzNmMtOTcuMiAwLTE3NiA3OC44LTE3NiAxNzZzNzguOCAxNzYgMTc2IDE3NiAxNzYtNzguOCAxNzYtMTc2LTc4LjgtMTc2LTE3Ni0xNzZ6bTAgMjg4Yy02MS45IDAtMTEyLTUwLjEtMTEyLTExMnM1MC4xLTExMiAxMTItMTEyIDExMiA1MC4xIDExMiAxMTItNTAuMSAxMTItMTEyIDExMnoiLGZpbGw6YX19XX19LG5hbWU6ImV5ZSIsdGhlbWU6InR3b3RvbmUifTt0LmRlZmF1bHQ9ZX0sOTAwNTU6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTkyLjQgMjMzLjVoLTYzLjljLTUwLjEgMC01OS44IDIzLjgtNTkuOCA1OC44djc3LjFoMTE5LjZsLTE1LjYgMTIwLjdoLTEwNFY5MTJINTM5LjJWNjAyLjJINDM0LjlWNDgxLjRoMTA0LjN2LTg5YzAtMTAzLjMgNjMuMS0xNTkuNiAxNTUuMy0xNTkuNiA0NC4yIDAgODIuMSAzLjMgOTMuMiA0Ljh2MTA3Ljl6In19XX0sbmFtZToiZmFjZWJvb2siLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sNjMxMzk6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTMyIDczNkg2NjMuOVY2MDIuMmgxMDRsMTUuNi0xMjAuN0g2NjMuOXYtNzcuMWMwLTM1IDkuNy01OC44IDU5LjgtNTguOGg2My45di0xMDhjLTExLjEtMS41LTQ5LTQuOC05My4yLTQuOC05Mi4yIDAtMTU1LjMgNTYuMy0xNTUuMyAxNTkuNnY4OUg0MzQuOXYxMjAuN2gxMDQuM1Y4NDhIMTc2VjE3Nmg2NzJ2NjcyeiJ9fV19LG5hbWU6ImZhY2Vib29rIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sMzY2MTk6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkyNS45IDgwNGwtMjQtMTk5LjJjLS44LTYuNi04LjktOS40LTEzLjYtNC43TDgyOSA2NTkuNSA1NTcuNyAzODguM2MtNi4zLTYuMi0xNi40LTYuMi0yMi42IDBMNDMzLjMgNDkwIDE1Ni42IDIxMy4zYTguMDMgOC4wMyAwIDAwLTExLjMgMGwtNDUgNDUuMmE4LjAzIDguMDMgMCAwMDAgMTEuM0w0MjIgNTkxLjdjNi4yIDYuMyAxNi40IDYuMyAyMi42IDBMNTQ2LjQgNDkwbDIyNi4xIDIyNi01OS4zIDU5LjNhOC4wMSA4LjAxIDAgMDA0LjcgMTMuNmwxOTkuMiAyNGM1LjEuNyA5LjUtMy43IDguOC04Ljl6In19XX0sbmFtZToiZmFsbCIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDM3MTgzOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjAgMCAxMDI0IDEwMjQiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTcuNiAyNzMuNUwyMzAuMiA0OTkuM2ExNi4xNCAxNi4xNCAwIDAwMCAyNS40bDI4Ny40IDIyNS44YzEwLjcgOC40IDI2LjQuOCAyNi40LTEyLjdWMjg2LjJjMC0xMy41LTE1LjctMjEuMS0yNi40LTEyLjd6bTMyMCAwTDU1MC4yIDQ5OS4zYTE2LjE0IDE2LjE0IDAgMDAwIDI1LjRsMjg3LjQgMjI1LjhjMTAuNyA4LjQgMjYuNC44IDI2LjQtMTIuN1YyODYuMmMwLTEzLjUtMTUuNy0yMS4xLTI2LjQtMTIuN3ptLTYyMC0yNS41aC01MS4yYy0zLjUgMC02LjQgMi43LTYuNCA2djUxNmMwIDMuMyAyLjkgNiA2LjQgNmg1MS4yYzMuNSAwIDYuNC0yLjcgNi40LTZWMjU0YzAtMy4zLTIuOS02LTYuNC02eiJ9fV19LG5hbWU6ImZhc3QtYmFja3dhcmQiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sODkwNjU6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiMCAwIDEwMjQgMTAyNCIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxNy42IDI3My41TDIzMC4yIDQ5OS4zYTE2LjE0IDE2LjE0IDAgMDAwIDI1LjRsMjg3LjQgMjI1LjhjMTAuNyA4LjQgMjYuNC44IDI2LjQtMTIuN1YyODYuMmMwLTEzLjUtMTUuNy0yMS4xLTI2LjQtMTIuN3ptMzIwIDBMNTUwLjIgNDk5LjNhMTYuMTQgMTYuMTQgMCAwMDAgMjUuNGwyODcuNCAyMjUuOGMxMC43IDguNCAyNi40LjggMjYuNC0xMi43VjI4Ni4yYzAtMTMuNS0xNS43LTIxLjEtMjYuNC0xMi43em0tNjIwLTI1LjVoLTUxLjJjLTMuNSAwLTYuNCAyLjctNi40IDZ2NTE2YzAgMy4zIDIuOSA2IDYuNCA2aDUxLjJjMy41IDAgNi40LTIuNyA2LjQtNlYyNTRjMC0zLjMtMi45LTYtNi40LTZ6In19XX0sbmFtZToiZmFzdC1iYWNrd2FyZCIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDM3MTMwOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjAgMCAxMDI0IDEwMjQiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik03OTMuOCA0OTkuM0w1MDYuNCAyNzMuNWMtMTAuNy04LjQtMjYuNC0uOC0yNi40IDEyLjd2NDUxLjZjMCAxMy41IDE1LjcgMjEuMSAyNi40IDEyLjdsMjg3LjQtMjI1LjhhMTYuMTQgMTYuMTQgMCAwMDAtMjUuNHptLTMyMCAwTDE4Ni40IDI3My41Yy0xMC43LTguNC0yNi40LS44LTI2LjQgMTIuN3Y0NTEuNWMwIDEzLjUgMTUuNyAyMS4xIDI2LjQgMTIuN2wyODcuNC0yMjUuOGM0LjEtMy4yIDYuMi04IDYuMi0xMi43IDAtNC42LTIuMS05LjQtNi4yLTEyLjZ6TTg1Ny42IDI0OGgtNTEuMmMtMy41IDAtNi40IDIuNy02LjQgNnY1MTZjMCAzLjMgMi45IDYgNi40IDZoNTEuMmMzLjUgMCA2LjQtMi43IDYuNC02VjI1NGMwLTMuMy0yLjktNi02LjQtNnoifX1dfSxuYW1lOiJmYXN0LWZvcndhcmQiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sMjE5MTM6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiMCAwIDEwMjQgMTAyNCIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTc5My44IDQ5OS4zTDUwNi40IDI3My41Yy0xMC43LTguNC0yNi40LS44LTI2LjQgMTIuN3Y0NTEuNmMwIDEzLjUgMTUuNyAyMS4xIDI2LjQgMTIuN2wyODcuNC0yMjUuOGExNi4xNCAxNi4xNCAwIDAwMC0yNS40em0tMzIwIDBMMTg2LjQgMjczLjVjLTEwLjctOC40LTI2LjQtLjgtMjYuNCAxMi43djQ1MS41YzAgMTMuNSAxNS43IDIxLjEgMjYuNCAxMi43bDI4Ny40LTIyNS44YzQuMS0zLjIgNi4yLTggNi4yLTEyLjcgMC00LjYtMi4xLTkuNC02LjItMTIuNnpNODU3LjYgMjQ4aC01MS4yYy0zLjUgMC02LjQgMi43LTYuNCA2djUxNmMwIDMuMyAyLjkgNiA2LjQgNmg1MS4yYzMuNSAwIDYuNC0yLjcgNi40LTZWMjU0YzAtMy4zLTIuOS02LTYuNC02eiJ9fV19LG5hbWU6ImZhc3QtZm9yd2FyZCIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDMzMzA6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJkZWZzIixhdHRyczp7fSxjaGlsZHJlbjpbe3RhZzoic3R5bGUiLGF0dHJzOnt9fV19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNjAwIDM5NS40aDkxVjY0OWg3OVYyNjdjMC00LjQtMy42LTgtOC04aC00OC4yYy0zLjcgMC03IDIuNi03LjcgNi4zLTIuNiAxMi4xLTYuOSAyMi4zLTEyLjkgMzAuOWE4Ni4xNCA4Ni4xNCAwIDAxLTI2LjMgMjQuNGMtMTAuMyA2LjItMjIgMTAuNS0zNSAxMi45LTEwLjQgMS45LTIxIDMtMzIgMy4xYTggOCAwIDAwLTcuOSA4djQyLjhjMCA0LjQgMy42IDggOCA4ek04NzEgNzAySDU2N2MtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgzMDRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6TTQ0My45IDMxMi43Yy0xNi4xLTE5LTM0LjQtMzIuNC01NS4yLTQwLjQtMjEuMy04LjItNDQuMS0xMi4zLTY4LjQtMTIuMy0yMy45IDAtNDYuNCA0LjEtNjcuNyAxMi4zLTIwLjggOC0zOSAyMS40LTU0LjggNDAuMy0xNS45IDE5LjEtMjguNyA0NC43LTM4LjMgNzctOS42IDMyLjUtMTQuNSA3My0xNC41IDEyMS41IDAgNDkuOSA0LjkgOTEuNCAxNC41IDEyNC40IDkuNiAzMi44IDIyLjQgNTguNyAzOC4zIDc3LjcgMTUuOCAxOC45IDM0IDMyLjMgNTQuOCA0MC4zIDIxLjMgOC4yIDQzLjggMTIuMyA2Ny43IDEyLjMgMjQuNCAwIDQ3LjItNC4xIDY4LjQtMTIuMyAyMC44LTggMzkuMi0yMS40IDU1LjItNDAuNCAxNi4xLTE5IDI5LTQ0LjkgMzguNi03Ny43IDkuNi0zMyAxNC41LTc0LjUgMTQuNS0xMjQuNCAwLTQ4LjQtNC45LTg4LjktMTQuNS0xMjEuNS05LjUtMzIuMS0yMi40LTU3LjctMzguNi03Ni44em0tMjkuNSAyNTEuN2MtMSAyMS40LTQuMiA0Mi05LjUgNjEuOS01LjUgMjAuNy0xNC41IDM4LjUtMjcgNTMuNC0xMy42IDE2LjMtMzMuMiAyNC4zLTU3LjYgMjQuMy0yNCAwLTQzLjItOC4xLTU2LjctMjQuNC0xMi4yLTE0LjgtMjEuMS0zMi42LTI2LjYtNTMuMy01LjMtMTkuOS04LjUtNDAuNi05LjUtNjEuOS0xLTIwLjgtMS41LTM4LjUtMS41LTUzLjIgMC04LjguMS0xOS40LjQtMzEuOC4yLTEyLjcgMS4xLTI1LjggMi42LTM5LjIgMS41LTEzLjYgNC0yNy4xIDcuNi00MC41IDMuNy0xMy44IDguOC0yNi4zIDE1LjQtMzcuNCA2LjktMTEuNiAxNS44LTIxLjEgMjYuNy0yOC4zIDExLjQtNy42IDI1LjMtMTEuMyA0MS41LTExLjMgMTYuMSAwIDMwLjEgMy43IDQxLjcgMTEuMmE4Ny45NCA4Ny45NCAwIDAxMjcuNCAyOC4yYzYuOSAxMS4yIDEyLjEgMjMuOCAxNS42IDM3LjcgMy4zIDEzLjIgNS44IDI2LjYgNy41IDQwLjEgMS44IDEzLjUgMi44IDI2LjYgMyAzOS40LjIgMTIuNC40IDIzIC40IDMxLjguMSAxNC44LS40IDMyLjUtMS40IDUzLjN6In19XX0sbmFtZToiZmllbGQtYmluYXJ5Iix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNTI5Mjk6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJkZWZzIixhdHRyczp7fSxjaGlsZHJlbjpbe3RhZzoic3R5bGUiLGF0dHJzOnt9fV19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTA4IDI4MGgtNjMuM2MtMy4zIDAtNiAyLjctNiA2djM0MC4ySDQzM0wxOTcuNCAyODIuNmMtMS4xLTEuNi0zLTIuNi00LjktMi42SDEyNmMtMy4zIDAtNiAyLjctNiA2djQ2NGMwIDMuMyAyLjcgNiA2IDZoNjIuN2MzLjMgMCA2LTIuNyA2LTZWNDA1LjFoNS43bDIzOC4yIDM0OC4zYzEuMSAxLjYgMyAyLjYgNSAyLjZINTA4YzMuMyAwIDYtMi43IDYtNlYyODZjMC0zLjMtMi43LTYtNi02em0zNzggNDEzSDU4MmMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgzMDRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6bS0xNTIuMi02M2M1Mi45IDAgOTUuMi0xNy4yIDEyNi4yLTUxLjcgMjkuNC0zMi45IDQ0LTc1LjggNDQtMTI4LjggMC01My4xLTE0LjYtOTYuNS00NC0xMjkuMy0zMC45LTM0LjgtNzMuMi01Mi4yLTEyNi4yLTUyLjItNTMuNyAwLTk1LjkgMTcuNS0xMjYuMyA1Mi44LTI5LjIgMzMuMS00My40IDc1LjktNDMuNCAxMjguNyAwIDUyLjQgMTQuMyA5NS4yIDQzLjUgMTI4LjMgMzAuNiAzNC43IDczIDUyLjIgMTI2LjIgNTIuMnptLTcxLjUtMjYzLjdjMTYuOS0yMC42IDQwLjMtMzAuOSA3MS40LTMwLjkgMzEuNSAwIDU0LjggOS42IDcxIDI5LjEgMTYuNCAyMC4zIDI0LjkgNDguNiAyNC45IDg0LjkgMCAzNi4zLTguNCA2NC4xLTI0LjggODMuOS0xNi41IDE5LjQtNDAgMjkuMi03MS4xIDI5LjItMzEuMiAwLTU1LTEwLjMtNzEuNC0zMC40LTE2LjMtMjAuMS0yNC41LTQ3LjMtMjQuNS04Mi42LjEtMzUuOCA4LjItNjMgMjQuNS04My4yeiJ9fV19LG5hbWU6ImZpZWxkLW51bWJlciIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDk0MTczOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoiZGVmcyIsYXR0cnM6e30sY2hpbGRyZW46W3t0YWc6InN0eWxlIixhdHRyczp7fX1dfSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg3NS42IDUxNS45YzIuMS44IDQuNC0uMyA1LjItMi40LjItLjQuMi0uOS4yLTEuNHYtNTguM2MwLTEuOC0xLjEtMy4zLTIuOC0zLjgtNi0xLjgtMTcuMi0zLTI3LjItMy0zMi45IDAtNjEuNyAxNi43LTczLjUgNDEuMnYtMjguNmMwLTQuNC0zLjYtOC04LThINzE3Yy00LjQgMC04IDMuNi04IDhWNzI5YzAgNC40IDMuNiA4IDggOGg1NC44YzQuNCAwIDgtMy42IDgtOFY1NzIuN2MwLTM2LjIgMjYuMS02MC4yIDY1LjEtNjAuMiAxMC40LjEgMjYuNiAxLjggMzAuNyAzLjR6bS01MzctNDAuNWwtNTQuNy0xMi42Yy02MS4yLTE0LjItODcuNy0zNC44LTg3LjctNzAuNyAwLTQ0LjYgMzkuMS03My41IDk2LjktNzMuNSA1Mi44IDAgOTEuNCAyNi41IDk5LjkgNjguOWg3MEM0NTUuOSAzMTEuNiAzODcuNiAyNTkgMjkzLjQgMjU5Yy0xMDMuMyAwLTE3MSA1NS41LTE3MSAxMzkgMCA2OC42IDM4LjYgMTA5LjUgMTIyLjIgMTI4LjVsNjEuNiAxNC4zYzYzLjYgMTQuOSA5MS42IDM3LjEgOTEuNiA3NS4xIDAgNDQuMS00My41IDc1LjItMTAyLjUgNzUuMi02MC42IDAtMTA0LjUtMjcuMi0xMTIuOC03MC41SDExMWM3LjIgNzkuOSA3NS42IDEzMC40IDE3OS4xIDEzMC40QzQwMi4zIDc1MSA0NzEgNjk1LjIgNDcxIDYwNS4zYzAtNzAuMi0zOC42LTEwOC41LTEzMi40LTEyOS45ek04NDEgNzI5YTM2IDM2IDAgMTA3MiAwIDM2IDM2IDAgMTAtNzIgMHpNNjUzIDQ1Ny44aC01MS40VjM5NmMwLTQuNC0zLjYtOC04LThoLTU0LjdjLTQuNCAwLTggMy42LTggOHY2MS44SDQ5NWMtNC40IDAtOCAzLjYtOCA4djQyLjNjMCA0LjQgMy42IDggOCA4aDM1Ljl2MTQ3LjVjMCA1Ni4yIDI3LjQgNzkuNCA5My4xIDc5LjQgMTEuNyAwIDIzLjYtMS4yIDMzLjgtMy4xIDEuOS0uMyAzLjItMiAzLjItMy45di00OS4zYzAtMi4yLTEuOC00LTQtNGgtLjRjLTQuOS41LTYuMi42LTguMy44LTQuMS4zLTcuOC41LTEyLjYuNS0yNC4xIDAtMzQuMS0xMC4zLTM0LjEtMzUuNlY1MTYuMUg2NTNjNC40IDAgOC0zLjYgOC04di00Mi4zYzAtNC40LTMuNi04LTgtOHoifX1dfSxuYW1lOiJmaWVsZC1zdHJpbmciLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw1ODg2OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoiZGVmcyIsYXR0cnM6e30sY2hpbGRyZW46W3t0YWc6InN0eWxlIixhdHRyczp7fX1dfSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTk0NSA0MTJINjg5Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDI1NmM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOHpNODExIDU0OEg2ODljLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMTIyYzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04ek00NzcuMyAzMjIuNUg0MzRjLTYuMiAwLTExLjIgNS0xMS4yIDExLjJ2MjQ4YzAgMy42IDEuNyA2LjkgNC42IDlsMTQ4LjkgMTA4LjZjNSAzLjYgMTIgMi42IDE1LjYtMi40bDI1LjctMzUuMXYtLjFjMy42LTUgMi41LTEyLTIuNS0xNS42bC0xMjYuNy05MS42VjMzMy43Yy4xLTYuMi01LTExLjItMTEuMS0xMS4yeiJ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTgwNC44IDY3My45SDc0N2MtNS42IDAtMTAuOSAyLjktMTMuOSA3LjdhMzIxIDMyMSAwIDAxLTQ0LjUgNTUuNyAzMTcuMTcgMzE3LjE3IDAgMDEtMTAxLjMgNjguM2MtMzkuMyAxNi42LTgxIDI1LTEyNCAyNS00My4xIDAtODQuOC04LjQtMTI0LTI1LTM3LjktMTYtNzItMzktMTAxLjMtNjguM3MtNTIuMy02My40LTY4LjMtMTAxLjNjLTE2LjYtMzkuMi0yNS04MC45LTI1LTEyNCAwLTQzLjEgOC40LTg0LjcgMjUtMTI0IDE2LTM3LjkgMzktNzIgNjguMy0xMDEuMyAyOS4zLTI5LjMgNjMuNC01Mi4zIDEwMS4zLTY4LjMgMzkuMi0xNi42IDgxLTI1IDEyNC0yNSA0My4xIDAgODQuOCA4LjQgMTI0IDI1IDM3LjkgMTYgNzIgMzkgMTAxLjMgNjguM2EzMjEgMzIxIDAgMDE0NC41IDU1LjdjMyA0LjggOC4zIDcuNyAxMy45IDcuN2g1Ny44YzYuOSAwIDExLjMtNy4yIDguMi0xMy4zLTY1LjItMTI5LjctMTk3LjQtMjE0LTM0NS0yMTUuNy0yMTYuMS0yLjctMzk1LjYgMTc0LjItMzk2IDM5MC4xQzcxLjYgNzI3LjUgMjQ2LjkgOTAzIDQ2My4yIDkwM2MxNDkuNSAwIDI4My45LTg0LjYgMzQ5LjgtMjE1LjhhOS4xOCA5LjE4IDAgMDAtOC4yLTEzLjN6In19XX0sbmFtZToiZmllbGQtdGltZSIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDk0NjU3OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00ODAgNTgwSDM3MmE4IDggMCAwMC04IDh2NDhhOCA4IDAgMDA4IDhoMTA4djEwOGE4IDggMCAwMDggOGg0OGE4IDggMCAwMDgtOFY2NDRoMTA4YTggOCAwIDAwOC04di00OGE4IDggMCAwMC04LThINTQ0VjQ3MmE4IDggMCAwMC04LThoLTQ4YTggOCAwIDAwLTggOHYxMDh6bTM3NC42LTI5MS4zYzYgNiA5LjQgMTQuMSA5LjQgMjIuNlY5MjhjMCAxNy43LTE0LjMgMzItMzIgMzJIMTkyYy0xNy43IDAtMzItMTQuMy0zMi0zMlY5NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmg0MjQuN2M4LjUgMCAxNi43IDMuNCAyMi43IDkuNGwyMTUuMiAyMTUuM3pNNzkwLjIgMzI2TDYwMiAxMzcuOFYzMjZoMTg4LjJ6In19XX0sbmFtZToiZmlsZS1hZGQiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sNjAyNjA6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg1NC42IDI4OC42TDYzOS40IDczLjRjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzExLjNjMC04LjUtMy40LTE2LjctOS40LTIyLjd6TTc5MC4yIDMyNkg2MDJWMTM3LjhMNzkwLjIgMzI2em0xLjggNTYySDIzMlYxMzZoMzAydjIxNmE0MiA0MiAwIDAwNDIgNDJoMjE2djQ5NHpNNTQ0IDQ3MmMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2MTA4SDM3MmMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgxMDh2MTA4YzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LThWNjQ0aDEwOGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOEg1NDRWNDcyeiJ9fV19LG5hbWU6ImZpbGUtYWRkIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sMzczODA6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTM0IDM1MlYxMzZIMjMydjc1Mmg1NjBWMzk0SDU3NmE0MiA0MiAwIDAxLTQyLTQyem0xMjYgMjM2djQ4YzAgNC40LTMuNiA4LTggOEg1NDR2MTA4YzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOFY2NDRIMzcyYy00LjQgMC04LTMuNi04LTh2LTQ4YzAtNC40IDMuNi04IDgtOGgxMDhWNDcyYzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh2MTA4aDEwOGM0LjQgMCA4IDMuNiA4IDh6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg1NC42IDI4OC42TDYzOS40IDczLjRjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzExLjNjMC04LjUtMy40LTE2LjctOS40LTIyLjd6TTYwMiAxMzcuOEw3OTAuMiAzMjZINjAyVjEzNy44ek03OTIgODg4SDIzMlYxMzZoMzAydjIxNmE0MiA0MiAwIDAwNDIgNDJoMjE2djQ5NHoiLGZpbGw6YX19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTQ0IDQ3MmMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2MTA4SDM3MmMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgxMDh2MTA4YzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LThWNjQ0aDEwOGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOEg1NDRWNDcyeiIsZmlsbDphfX1dfX0sbmFtZToiZmlsZS1hZGQiLHRoZW1lOiJ0d290b25lIn07dC5kZWZhdWx0PWV9LDQyMDA2OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02ODggMzEydi00OGMwLTQuNC0zLjYtOC04LThIMjk2Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDM4NGM0LjQgMCA4LTMuNiA4LTh6bS0zOTIgODhjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMTg0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04SDI5NnptMzc2IDExNmMtMTE5LjMgMC0yMTYgOTYuNy0yMTYgMjE2czk2LjcgMjE2IDIxNiAyMTYgMjE2LTk2LjcgMjE2LTIxNi05Ni43LTIxNi0yMTYtMjE2em0xMDcuNSAzMjMuNUM3NTAuOCA4NjguMiA3MTIuNiA4ODQgNjcyIDg4NHMtNzguOC0xNS44LTEwNy41LTQ0LjVDNTM1LjggODEwLjggNTIwIDc3Mi42IDUyMCA3MzJzMTUuOC03OC44IDQ0LjUtMTA3LjVDNTkzLjIgNTk1LjggNjMxLjQgNTgwIDY3MiA1ODBzNzguOCAxNS44IDEwNy41IDQ0LjVDODA4LjIgNjUzLjIgODI0IDY5MS40IDgyNCA3MzJzLTE1LjggNzguOC00NC41IDEwNy41ek03NjEgNjU2aC00NC4zYy0yLjYgMC01IDEuMi02LjUgMy4zbC02My41IDg3LjgtMjMuMS0zMS45YTcuOTIgNy45MiAwIDAwLTYuNS0zLjNINTczYy02LjUgMC0xMC4zIDcuNC02LjUgMTIuN2w3My44IDEwMi4xYzMuMiA0LjQgOS43IDQuNCAxMi45IDBsMTE0LjItMTU4YzMuOS01LjMuMS0xMi43LTYuNC0xMi43ek00NDAgODUySDIwOFYxNDhoNTYwdjM0NGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04VjEwOGMwLTE3LjctMTQuMy0zMi0zMi0zMkgxNjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjc4NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmgyNzJjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6In19XX0sbmFtZToiZmlsZS1kb25lIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNjI0MzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODU0LjYgMjg4LjdjNiA2IDkuNCAxNC4xIDkuNCAyMi42VjkyOGMwIDE3LjctMTQuMyAzMi0zMiAzMkgxOTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyaDQyNC43YzguNSAwIDE2LjcgMy40IDIyLjcgOS40bDIxNS4yIDIxNS4zek03OTAuMiAzMjZMNjAyIDEzNy44VjMyNmgxODguMnpNNTc1LjM0IDQ3Ny44NGwtNjEuMjIgMTAyLjNMNDUyLjMgNDc3LjhhMTIgMTIgMCAwMC0xMC4yNy01Ljc5aC0zOC40NGExMiAxMiAwIDAwLTYuNCAxLjg1IDEyIDEyIDAgMDAtMy43NSAxNi41Nmw4Mi4zNCAxMzAuNDItODMuNDUgMTMyLjc4YTEyIDEyIDAgMDAtMS44NCA2LjM5IDEyIDEyIDAgMDAxMiAxMmgzNC40NmExMiAxMiAwIDAwMTAuMjEtNS43bDYyLjctMTAxLjQ3IDYyLjMgMTAxLjQ1YTEyIDEyIDAgMDAxMC4yMyA1LjcyaDM3LjQ4YTEyIDEyIDAgMDA2LjQ4LTEuOSAxMiAxMiAwIDAwMy42Mi0xNi41OGwtODMuODMtMTMwLjU1IDg1LjMtMTMyLjQ3YTEyIDEyIDAgMDAxLjktNi41IDEyIDEyIDAgMDAtMTItMTJoLTM1LjdhMTIgMTIgMCAwMC0xMC4yOSA1Ljg0eiJ9fV19LG5hbWU6ImZpbGUtZXhjZWwiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sNDA1OTI6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg1NC42IDI4OC42TDYzOS40IDczLjRjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzExLjNjMC04LjUtMy40LTE2LjctOS40LTIyLjd6TTc5MC4yIDMyNkg2MDJWMTM3LjhMNzkwLjIgMzI2em0xLjggNTYySDIzMlYxMzZoMzAydjIxNmE0MiA0MiAwIDAwNDIgNDJoMjE2djQ5NHpNNTE0LjEgNTgwLjFsLTYxLjgtMTAyLjRjLTIuMi0zLjYtNi4xLTUuOC0xMC4zLTUuOGgtMzguNGMtMi4zIDAtNC41LjYtNi40IDEuOS01LjYgMy41LTcuMyAxMC45LTMuNyAxNi42bDgyLjMgMTMwLjQtODMuNCAxMzIuOGExMi4wNCAxMi4wNCAwIDAwMTAuMiAxOC40aDM0LjVjNC4yIDAgOC0yLjIgMTAuMi01LjdMNTEwIDY2NC44bDYyLjMgMTAxLjRjMi4yIDMuNiA2LjEgNS43IDEwLjIgNS43SDYyMGMyLjMgMCA0LjUtLjcgNi41LTEuOSA1LjYtMy42IDcuMi0xMSAzLjYtMTYuNmwtODQtMTMwLjQgODUuMy0xMzIuNWExMi4wNCAxMi4wNCAwIDAwLTEwLjEtMTguNWgtMzUuN2MtNC4yIDAtOC4xIDIuMi0xMC4zIDUuOGwtNjEuMiAxMDIuM3oifX1dfSxuYW1lOiJmaWxlLWV4Y2VsIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sMzcyMjM6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTM0IDM1MlYxMzZIMjMydjc1Mmg1NjBWMzk0SDU3NmE0MiA0MiAwIDAxLTQyLTQyem01MS42IDEyMGgzNS43YTEyLjA0IDEyLjA0IDAgMDExMC4xIDE4LjVMNTQ2LjEgNjIzbDg0IDEzMC40YzMuNiA1LjYgMiAxMy0zLjYgMTYuNi0yIDEuMi00LjIgMS45LTYuNSAxLjloLTM3LjVjLTQuMSAwLTgtMi4xLTEwLjItNS43TDUxMCA2NjQuOGwtNjIuNyAxMDEuNWMtMi4yIDMuNS02IDUuNy0xMC4yIDUuN2gtMzQuNWExMi4wNCAxMi4wNCAwIDAxLTEwLjItMTguNGw4My40LTEzMi44LTgyLjMtMTMwLjRjLTMuNi01LjctMS45LTEzLjEgMy43LTE2LjYgMS45LTEuMyA0LjEtMS45IDYuNC0xLjlINDQyYzQuMiAwIDguMSAyLjIgMTAuMyA1LjhsNjEuOCAxMDIuNCA2MS4yLTEwMi4zYzIuMi0zLjYgNi4xLTUuOCAxMC4zLTUuOHoiLGZpbGw6bn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODU0LjYgMjg4LjZMNjM5LjQgNzMuNGMtNi02LTE0LjEtOS40LTIyLjYtOS40SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlYzMTEuM2MwLTguNS0zLjQtMTYuNy05LjQtMjIuN3pNNjAyIDEzNy44TDc5MC4yIDMyNkg2MDJWMTM3Ljh6TTc5MiA4ODhIMjMyVjEzNmgzMDJ2MjE2YTQyIDQyIDAgMDA0MiA0MmgyMTZ2NDk0eiIsZmlsbDphfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTQuMSA1ODAuMWwtNjEuOC0xMDIuNGMtMi4yLTMuNi02LjEtNS44LTEwLjMtNS44aC0zOC40Yy0yLjMgMC00LjUuNi02LjQgMS45LTUuNiAzLjUtNy4zIDEwLjktMy43IDE2LjZsODIuMyAxMzAuNC04My40IDEzMi44YTEyLjA0IDEyLjA0IDAgMDAxMC4yIDE4LjRoMzQuNWM0LjIgMCA4LTIuMiAxMC4yLTUuN0w1MTAgNjY0LjhsNjIuMyAxMDEuNGMyLjIgMy42IDYuMSA1LjcgMTAuMiA1LjdINjIwYzIuMyAwIDQuNS0uNyA2LjUtMS45IDUuNi0zLjYgNy4yLTExIDMuNi0xNi42bC04NC0xMzAuNCA4NS4zLTEzMi41YTEyLjA0IDEyLjA0IDAgMDAtMTAuMS0xOC41aC0zNS43Yy00LjIgMC04LjEgMi4yLTEwLjMgNS44bC02MS4yIDEwMi4zeiIsZmlsbDphfX1dfX0sbmFtZToiZmlsZS1leGNlbCIsdGhlbWU6InR3b3RvbmUifTt0LmRlZmF1bHQ9ZX0sNzEyMzE6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg1NC42IDI4OC43YzYgNiA5LjQgMTQuMSA5LjQgMjIuNlY5MjhjMCAxNy43LTE0LjMgMzItMzIgMzJIMTkyYy0xNy43IDAtMzItMTQuMy0zMi0zMlY5NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmg0MjQuN2M4LjUgMCAxNi43IDMuNCAyMi43IDkuNGwyMTUuMiAyMTUuM3pNNzkwLjIgMzI2TDYwMiAxMzcuOFYzMjZoMTg4LjJ6TTUxMiA3ODRhNDAgNDAgMCAxMDAtODAgNDAgNDAgMCAwMDAgODB6bTMyLTE1MlY0NDhhOCA4IDAgMDAtOC04aC00OGE4IDggMCAwMC04IDh2MTg0YTggOCAwIDAwOCA4aDQ4YTggOCAwIDAwOC04eiJ9fV19LG5hbWU6ImZpbGUtZXhjbGFtYXRpb24iLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sMTU2NjQ6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg1NC42IDI4OC42TDYzOS40IDczLjRjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzExLjNjMC04LjUtMy40LTE2LjctOS40LTIyLjd6TTc5MC4yIDMyNkg2MDJWMTM3LjhMNzkwLjIgMzI2em0xLjggNTYySDIzMlYxMzZoMzAydjIxNmE0MiA0MiAwIDAwNDIgNDJoMjE2djQ5NHpNNDcyIDc0NGE0MCA0MCAwIDEwODAgMCA0MCA0MCAwIDEwLTgwIDB6bTE2LTEwNGg0OGM0LjQgMCA4LTMuNiA4LThWNDQ4YzAtNC40LTMuNi04LTgtOGgtNDhjLTQuNCAwLTggMy42LTggOHYxODRjMCA0LjQgMy42IDggOCA4eiJ9fV19LG5hbWU6ImZpbGUtZXhjbGFtYXRpb24iLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw3MDAxMDpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjpmdW5jdGlvbihhLG4pe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MzQgMzUyVjEzNkgyMzJ2NzUyaDU2MFYzOTRINTc2YTQyIDQyIDAgMDEtNDItNDJ6bS01NCA5NmMwLTQuNCAzLjYtOCA4LThoNDhjNC40IDAgOCAzLjYgOCA4djE4NGMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LThWNDQ4em0zMiAzMzZjLTIyLjEgMC00MC0xNy45LTQwLTQwczE3LjktNDAgNDAtNDAgNDAgMTcuOSA0MCA0MC0xNy45IDQwLTQwIDQweiIsZmlsbDpufX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NTQuNiAyODguNkw2MzkuNCA3My40Yy02LTYtMTQuMS05LjQtMjIuNi05LjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMxMS4zYzAtOC41LTMuNC0xNi43LTkuNC0yMi43ek02MDIgMTM3LjhMNzkwLjIgMzI2SDYwMlYxMzcuOHpNNzkyIDg4OEgyMzJWMTM2aDMwMnYyMTZhNDIgNDIgMCAwMDQyIDQyaDIxNnY0OTR6IixmaWxsOmF9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQ4OCA2NDBoNDhjNC40IDAgOC0zLjYgOC04VjQ0OGMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2MTg0YzAgNC40IDMuNiA4IDggOHptLTE2IDEwNGE0MCA0MCAwIDEwODAgMCA0MCA0MCAwIDEwLTgwIDB6IixmaWxsOmF9fV19fSxuYW1lOiJmaWxlLWV4Y2xhbWF0aW9uIix0aGVtZToidHdvdG9uZSJ9O3QuZGVmYXVsdD1lfSw2MDQ4ODpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODU0LjYgMjg4LjdjNiA2IDkuNCAxNC4xIDkuNCAyMi42VjkyOGMwIDE3LjctMTQuMyAzMi0zMiAzMkgxOTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyaDQyNC43YzguNSAwIDE2LjcgMy40IDIyLjcgOS40bDIxNS4yIDIxNS4zek03OTAuMiAzMjZMNjAyIDEzNy44VjMyNmgxODguMnoifX1dfSxuYW1lOiJmaWxlIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDk5MTM6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJkZWZzIixhdHRyczp7fSxjaGlsZHJlbjpbe3RhZzoic3R5bGUiLGF0dHJzOnt9fV19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTUxLjUgNDkwLjVINTIxYy00LjYgMC04LjQgMy43LTguNCA4LjRWNzIwYzAgNC42IDMuNyA4LjQgOC40IDguNGgzMC41YzQuNiAwIDguNC0zLjcgOC40LTguNFY0OTguOWMtLjEtNC42LTMuOC04LjQtOC40LTguNHpNNDc3LjMgNjAwaC04OC4xYy00LjYgMC04LjQgMy43LTguNCA4LjR2MjMuOGMwIDQuNiAzLjcgOC40IDguNCA4LjRoNDcuNnYuN2MtLjYgMjkuOS0yMyA0OS44LTU2LjUgNDkuOC0zOS4yIDAtNjMuNi0zMC43LTYzLjYtODEuNCAwLTUwLjEgMjMuOS04MC42IDYyLjMtODAuNiAyOC4xIDAgNDcuNSAxMy41IDU1LjQgMzguM2wuOSAyLjhoNDkuMmwtLjctNC42QzQ3NS45IDUxNS45IDQzNC43IDQ4NCAzNzkgNDg0Yy02OC44IDAtMTEzIDQ5LjQtMTEzIDEyNS45IDAgNzcuNSA0My43IDEyNi4xIDExMy42IDEyNi4xIDY0LjQgMCAxMDYtNDAuMyAxMDYtMTAyLjl2LTI0LjhjMC00LjYtMy43LTguMy04LjMtOC4zeiJ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg1NC42IDI4OC42TDYzOS40IDczLjRjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzExLjNjMC04LjUtMy40LTE2LjctOS40LTIyLjd6TTYwMiAxMzcuOEw3OTAuMiAzMjZINjAyVjEzNy44ek03OTIgODg4SDIzMlYxMzZoMzAydjIxNmE0MiA0MiAwIDAwNDIgNDJoMjE2djQ5NHoifX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02MDguMiA3MjcuOGgzMi4zYzQuNiAwIDguNC0zLjcgOC40LTguNHYtODQuOGg4Ny44YzQuNiAwIDguNC0zLjcgOC40LTguNHYtMjUuNWMwLTQuNi0zLjctOC40LTguNC04LjRoLTg3Ljh2LTU4LjloOTYuOGM0LjYgMCA4LjQtMy43IDguNC04LjR2LTI2LjhjMC00LjYtMy43LTguNC04LjQtOC40SDYwOC4yYy00LjYgMC04LjQgMy43LTguNCA4LjR2MjIxLjFjMCA0LjggMy44IDguNSA4LjQgOC41eiJ9fV19LG5hbWU6ImZpbGUtZ2lmIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sMzI5NjQ6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg1NC42IDI4OC43TDYzOS40IDczLjRjLTYtNi0xNC4yLTkuNC0yMi43LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzExLjNjMC04LjUtMy40LTE2LjYtOS40LTIyLjZ6TTQwMCA0MDJjMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDAtNDAtMTcuOS00MC00MCAxNy45LTQwIDQwLTQwem0yOTYgMjk0SDMyOGMtNi43IDAtMTAuNC03LjctNi4zLTEyLjlsOTkuOC0xMjcuMmE4IDggMCAwMTEyLjYgMGw0MS4xIDUyLjQgNzcuOC05OS4yYTggOCAwIDAxMTIuNiAwbDEzNi41IDE3NGM0LjMgNS4yLjUgMTIuOS02LjEgMTIuOXptLTk0LTM3MFYxMzcuOEw3OTAuMiAzMjZINjAyeiJ9fV19LG5hbWU6ImZpbGUtaW1hZ2UiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sNzM2ODk6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTU1My4xIDUwOS4xbC03Ny44IDk5LjItNDEuMS01Mi40YTggOCAwIDAwLTEyLjYgMGwtOTkuOCAxMjcuMmE3Ljk4IDcuOTggMCAwMDYuMyAxMi45SDY5NmM2LjcgMCAxMC40LTcuNyA2LjMtMTIuOWwtMTM2LjUtMTc0YTguMSA4LjEgMCAwMC0xMi43IDB6TTM2MCA0NDJhNDAgNDAgMCAxMDgwIDAgNDAgNDAgMCAxMC04MCAwem00OTQuNi0xNTMuNEw2MzkuNCA3My40Yy02LTYtMTQuMS05LjQtMjIuNi05LjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMxMS4zYzAtOC41LTMuNC0xNi43LTkuNC0yMi43ek03OTAuMiAzMjZINjAyVjEzNy44TDc5MC4yIDMyNnptMS44IDU2MkgyMzJWMTM2aDMwMnYyMTZhNDIgNDIgMCAwMDQyIDQyaDIxNnY0OTR6In19XX0sbmFtZToiZmlsZS1pbWFnZSIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDcxNDU2OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOmZ1bmN0aW9uKGEsbil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUzNCAzNTJWMTM2SDIzMnY3NTJoNTYwVjM5NEg1NzZhNDIgNDIgMCAwMS00Mi00MnptLTEzNCA1MGMyMi4xIDAgNDAgMTcuOSA0MCA0MHMtMTcuOSA0MC00MCA0MC00MC0xNy45LTQwLTQwIDE3LjktNDAgNDAtNDB6bTI5NiAyOTRIMzI4LjFjLTYuNyAwLTEwLjQtNy43LTYuMy0xMi45bDk5LjgtMTI3LjJhOCA4IDAgMDExMi42IDBsNDEuMSA1Mi40IDc3LjgtOTkuMmE4LjEgOC4xIDAgMDExMi43IDBsMTM2LjUgMTc0YzQuMSA1LjIuNCAxMi45LTYuMyAxMi45eiIsZmlsbDpufX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NTQuNiAyODguNkw2MzkuNCA3My40Yy02LTYtMTQuMS05LjQtMjIuNi05LjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMxMS4zYzAtOC41LTMuNC0xNi43LTkuNC0yMi43ek02MDIgMTM3LjhMNzkwLjIgMzI2SDYwMlYxMzcuOHpNNzkyIDg4OEgyMzJWMTM2aDMwMnYyMTZhNDIgNDIgMCAwMDQyIDQyaDIxNnY0OTR6IixmaWxsOmF9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTU1My4xIDUwOS4xbC03Ny44IDk5LjItNDEuMS01Mi40YTggOCAwIDAwLTEyLjYgMGwtOTkuOCAxMjcuMmE3Ljk4IDcuOTggMCAwMDYuMyAxMi45SDY5NmM2LjcgMCAxMC40LTcuNyA2LjMtMTIuOWwtMTM2LjUtMTc0YTguMSA4LjEgMCAwMC0xMi43IDB6TTM2MCA0NDJhNDAgNDAgMCAxMDgwIDAgNDAgNDAgMCAxMC04MCAweiIsZmlsbDphfX1dfX0sbmFtZToiZmlsZS1pbWFnZSIsdGhlbWU6InR3b3RvbmUifTt0LmRlZmF1bHQ9ZX0sNTI1Nzg6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiMCAwIDEwMjQgMTAyNCIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg3NC42IDMwMS44TDU5Ni44IDIxLjNjLTQuNS00LjUtOS40LTguMy0xNC43LTExLjUtMS40LS44LTIuOC0xLjYtNC4zLTIuMy0uOS0uNS0xLjktLjktMi44LTEuMy05LTQtMTguOS02LjItMjktNi4ySDIwMWMtMzkuOCAwLTczIDMyLjItNzMgNzJ2ODgwYzAgMzkuOCAzMy4yIDcyIDczIDcyaDYyM2MzOS44IDAgNzEtMzIuMiA3MS03MlYzNTIuNWMwLTE5LTctMzcuMi0yMC40LTUwLjd6TTU4MyAxMTAuNEw3ODMuOCAzMTJINTgzVjExMC40ek04MjMgOTUySDIwMFY3MmgzMTF2MjQwYzAgMzkuOCAzMy4yIDcyIDczIDcyaDIzOXY1Njh6TTM1MCA2OTYuNWMwIDI0LjItNy41IDMxLjQtMjEuOSAzMS40LTkgMC0xOC40LTUuOC0yNC44LTE4LjVMMjcyLjkgNzMyYzEzLjQgMjIuOSAzMi4zIDM0LjIgNjEuMyAzNC4yIDQxLjYgMCA2MC44LTI5LjkgNjAuOC02Ni4yVjU3N2gtNDV2MTE5LjV6TTUwMS4zIDU3N0g0Mzd2MTg2aDQ0di02MmgyMS42YzM5LjEgMCA3My4xLTE5LjYgNzMuMS02My42IDAtNDUuOC0zMy41LTYwLjQtNzQuNC02MC40em0tLjggODlINDgxdi01M2gxOC4yYzIxLjUgMCAzMy40IDYuMiAzMy40IDI0LjkgMCAxOC4xLTEwLjUgMjguMS0zMi4xIDI4LjF6bTE4Mi41LTl2MzZoMzB2MzAuMWMtNCAyLjktMTEgNC43LTE3LjcgNC43LTM0LjMgMC01MC43LTIxLjQtNTAuNy01OC4yIDAtMzYuMSAxOS43LTU3LjQgNDcuMS01Ny40IDE1LjMgMCAyNSA2LjIgMzQgMTQuNGwyMy43LTI4LjNjLTEyLjctMTIuOC0zMi4xLTI0LjItNTkuMi0yNC4yLTQ5LjYgMC05MS4xIDM1LjMtOTEuMSA5NyAwIDYyLjcgNDAgOTUuMSA5MS41IDk1LjEgMjUuOSAwIDQ5LjItMTAuMiA2MS41LTIyLjZWNjU3SDY4M3oifX1dfSxuYW1lOiJmaWxlLWpwZyIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDY5OTc0OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NTQuNiAyODguN2M2IDYgOS40IDE0LjEgOS40IDIyLjZWOTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMySDE5MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWOTZjMC0xNy43IDE0LjMtMzIgMzItMzJoNDI0LjdjOC41IDAgMTYuNyAzLjQgMjIuNyA5LjRsMjE1LjIgMjE1LjN6TTc5MC4yIDMyNkw2MDIgMTM3LjhWMzI2aDE4OC4yek00MjYuMTMgNjAwLjkzbDU5LjExIDEzMi45N2ExNiAxNiAwIDAwMTQuNjIgOS41aDI0LjA2YTE2IDE2IDAgMDAxNC42My05LjUxbDU5LjEtMTMzLjM1Vjc1OGExNiAxNiAwIDAwMTYuMDEgMTZINjQxYTE2IDE2IDAgMDAxNi0xNlY0ODZhMTYgMTYgMCAwMC0xNi0xNmgtMzQuNzVhMTYgMTYgMCAwMC0xNC42NyA5LjYyTDUxMi4xIDY2Mi4ybC03OS40OC0xODIuNTlhMTYgMTYgMCAwMC0xNC42Ny05LjYxSDM4M2ExNiAxNiAwIDAwLTE2IDE2djI3MmExNiAxNiAwIDAwMTYgMTZoMjcuMTNhMTYgMTYgMCAwMDE2LTE2VjYwMC45M3oifX1dfSxuYW1lOiJmaWxlLW1hcmtkb3duIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDI5NzM6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg1NC42IDI4OC42TDYzOS40IDczLjRjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzExLjNjMC04LjUtMy40LTE2LjctOS40LTIyLjd6TTc5MC4yIDMyNkg2MDJWMTM3LjhMNzkwLjIgMzI2em0xLjggNTYySDIzMlYxMzZoMzAydjIxNmE0MiA0MiAwIDAwNDIgNDJoMjE2djQ5NHpNNDI5IDQ4MS4yYy0xLjktNC40LTYuMi03LjItMTEtNy4yaC0zNWMtNi42IDAtMTIgNS40LTEyIDEydjI3MmMwIDYuNiA1LjQgMTIgMTIgMTJoMjcuMWM2LjYgMCAxMi01LjQgMTItMTJWNTgyLjFsNjYuOCAxNTAuMmExMiAxMiAwIDAwMTEgNy4xSDUyNGM0LjcgMCA5LTIuOCAxMS03LjFsNjYuOC0xNTAuNlY3NThjMCA2LjYgNS40IDEyIDEyIDEySDY0MWM2LjYgMCAxMi01LjQgMTItMTJWNDg2YzAtNi42LTUuNC0xMi0xMi0xMmgtMzQuN2MtNC44IDAtOS4xIDIuOC0xMSA3LjJsLTgzLjEgMTkxLTgzLjItMTkxeiJ9fV19LG5hbWU6ImZpbGUtbWFya2Rvd24iLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw5NDkwMzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjpmdW5jdGlvbihhLG4pe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MzQgMzUyVjEzNkgyMzJ2NzUyaDU2MFYzOTRINTc2YTQyIDQyIDAgMDEtNDItNDJ6bTcyLjMgMTIySDY0MWM2LjYgMCAxMiA1LjQgMTIgMTJ2MjcyYzAgNi42LTUuNCAxMi0xMiAxMmgtMjcuMmMtNi42IDAtMTItNS40LTEyLTEyVjU4MS43TDUzNSA3MzIuM2MtMiA0LjMtNi4zIDcuMS0xMSA3LjFoLTI0LjFhMTIgMTIgMCAwMS0xMS03LjFsLTY2LjgtMTUwLjJWNzU4YzAgNi42LTUuNCAxMi0xMiAxMkgzODNjLTYuNiAwLTEyLTUuNC0xMi0xMlY0ODZjMC02LjYgNS40LTEyIDEyLTEyaDM1YzQuOCAwIDkuMSAyLjggMTEgNy4ybDgzLjIgMTkxIDgzLjEtMTkxYzEuOS00LjQgNi4yLTcuMiAxMS03LjJ6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg1NC42IDI4OC42TDYzOS40IDczLjRjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzExLjNjMC04LjUtMy40LTE2LjctOS40LTIyLjd6TTYwMiAxMzcuOEw3OTAuMiAzMjZINjAyVjEzNy44ek03OTIgODg4SDIzMlYxMzZoMzAydjIxNmE0MiA0MiAwIDAwNDIgNDJoMjE2djQ5NHoiLGZpbGw6YX19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNDI5IDQ4MS4yYy0xLjktNC40LTYuMi03LjItMTEtNy4yaC0zNWMtNi42IDAtMTIgNS40LTEyIDEydjI3MmMwIDYuNiA1LjQgMTIgMTIgMTJoMjcuMWM2LjYgMCAxMi01LjQgMTItMTJWNTgyLjFsNjYuOCAxNTAuMmExMiAxMiAwIDAwMTEgNy4xSDUyNGM0LjcgMCA5LTIuOCAxMS03LjFsNjYuOC0xNTAuNlY3NThjMCA2LjYgNS40IDEyIDEyIDEySDY0MWM2LjYgMCAxMi01LjQgMTItMTJWNDg2YzAtNi42LTUuNC0xMi0xMi0xMmgtMzQuN2MtNC44IDAtOS4xIDIuOC0xMSA3LjJsLTgzLjEgMTkxLTgzLjItMTkxeiIsZmlsbDphfX1dfX0sbmFtZToiZmlsZS1tYXJrZG93biIsdGhlbWU6InR3b3RvbmUifTt0LmRlZmF1bHQ9ZX0sNTE5OTA6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg1NC42IDI4OC42TDYzOS40IDczLjRjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzExLjNjMC04LjUtMy40LTE2LjctOS40LTIyLjd6TTc5MC4yIDMyNkg2MDJWMTM3LjhMNzkwLjIgMzI2em0xLjggNTYySDIzMlYxMzZoMzAydjIxNmE0MiA0MiAwIDAwNDIgNDJoMjE2djQ5NHoifX1dfSxuYW1lOiJmaWxlIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sODk3NDc6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg1NC42IDI4OC43YzYgNiA5LjQgMTQuMSA5LjQgMjIuNlY5MjhjMCAxNy43LTE0LjMgMzItMzIgMzJIMTkyYy0xNy43IDAtMzItMTQuMy0zMi0zMlY5NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmg0MjQuN2M4LjUgMCAxNi43IDMuNCAyMi43IDkuNGwyMTUuMiAyMTUuM3pNNzkwLjIgMzI2TDYwMiAxMzcuOFYzMjZoMTg4LjJ6TTYzMy4yMiA2MzcuMjZjLTE1LjE4LS41LTMxLjMyLjY3LTQ5LjY1IDIuOTYtMjQuMy0xNC45OS00MC42Ni0zNS41OC01Mi4yOC02NS44M2wxLjA3LTQuMzggMS4yNC01LjE4YzQuMy0xOC4xMyA2LjYxLTMxLjM2IDcuMy00NC43LjUyLTEwLjA3LS4wNC0xOS4zNi0xLjgzLTI3Ljk3LTMuMy0xOC41OS0xNi40NS0yOS40Ni0zMy4wMi0zMC4xMy0xNS40NS0uNjMtMjkuNjUgOC0zMy4yOCAyMS4zNy01LjkxIDIxLjYyLTIuNDUgNTAuMDcgMTAuMDggOTguNTktMTUuOTYgMzguMDUtMzcuMDUgODIuNjYtNTEuMiAxMDcuNTQtMTguODkgOS43NC0zMy42IDE4LjYtNDUuOTYgMjguNDItMTYuMyAxMi45Ny0yNi40OCAyNi4zLTI5LjI4IDQwLjMtMS4zNiA2LjQ5LjY5IDE0Ljk3IDUuMzYgMjEuOTIgNS4zIDcuODggMTMuMjggMTMgMjIuODUgMTMuNzQgMjQuMTUgMS44NyA1My44My0yMy4wMyA4Ni42LTc5LjI2IDMuMjktMS4xIDYuNzctMi4yNiAxMS4wMi0zLjdsMTEuOS00LjAyYzcuNTMtMi41NCAxMi45OS00LjM2IDE4LjM5LTYuMTEgMjMuNC03LjYyIDQxLjEtMTIuNDMgNTcuMi0xNS4xNyAyNy45OCAxNC45OCA2MC4zMiAyNC44IDgyLjEgMjQuOCAxNy45OCAwIDMwLjEzLTkuMzIgMzQuNTItMjMuOTkgMy44NS0xMi44OC44LTI3LjgyLTcuNDgtMzYuMDgtOC41Ni04LjQxLTI0LjMtMTIuNDMtNDUuNjUtMTMuMTJ6TTM4NS4yMyA3NjUuNjh2LS4zNmwuMTMtLjM0YTU0Ljg2IDU0Ljg2IDAgMDE1LjYtMTAuNzZjNC4yOC02LjU4IDEwLjE3LTEzLjUgMTcuNDctMjAuODcgMy45Mi0zLjk1IDgtNy44IDEyLjc5LTEyLjEyIDEuMDctLjk2IDcuOTEtNy4wNSA5LjE5LTguMjVsMTEuMTctMTAuNC04LjEyIDEyLjkzYy0xMi4zMiAxOS42NC0yMy40NiAzMy43OC0zMyA0My0zLjUxIDMuNC02LjYgNS45LTkuMSA3LjUxYTE2LjQzIDE2LjQzIDAgMDEtMi42MSAxLjQyYy0uNDEuMTctLjc3LjI3LTEuMTMuM2EyLjIgMi4yIDAgMDEtMS4xMi0uMTUgMi4wNyAyLjA3IDAgMDEtMS4yNy0xLjkxek01MTEuMTcgNTQ3LjRsLTIuMjYgNC0xLjQtNC4zOGMtMy4xLTkuODMtNS4zOC0yNC42NC02LjAxLTM4LS43Mi0xNS4yLjQ5LTI0LjMyIDUuMjktMjQuMzIgNi43NCAwIDkuODMgMTAuOCAxMC4wNyAyNy4wNS4yMiAxNC4yOC0yLjAzIDI5LjE0LTUuNyAzNS42NXptLTUuODEgNTguNDZsMS41My00LjA1IDIuMDkgMy44YzExLjY5IDIxLjI0IDI2Ljg2IDM4Ljk2IDQzLjU0IDUxLjMxbDMuNiAyLjY2LTQuMzkuOWMtMTYuMzMgMy4zOC0zMS41NCA4LjQ2LTUyLjM0IDE2Ljg1IDIuMTctLjg4LTIxLjYyIDguODYtMjcuNjQgMTEuMTdsLTUuMjUgMi4wMSAyLjgtNC44OGMxMi4zNS0yMS41IDIzLjc2LTQ3LjMyIDM2LjA1LTc5Ljc3em0xNTcuNjIgNzYuMjZjLTcuODYgMy4xLTI0Ljc4LjMzLTU0LjU3LTEyLjM5bC03LjU2LTMuMjIgOC4yLS42YzIzLjMtMS43MyAzOS44LS40NSA0OS40MiAzLjA3IDQuMSAxLjUgNi44MyAzLjM5IDguMDQgNS41NWE0LjY0IDQuNjQgMCAwMS0xLjM2IDYuMzEgNi43IDYuNyAwIDAxLTIuMTcgMS4yOHoifX1dfSxuYW1lOiJmaWxlLXBkZiIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw1NTk5NDpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTMxLjMgNTc0LjRsLjMtMS40YzUuOC0yMy45IDEzLjEtNTMuNyA3LjQtODAuNy0zLjgtMjEuMy0xOS41LTI5LjYtMzIuOS0zMC4yLTE1LjgtLjctMjkuOSA4LjMtMzMuNCAyMS40LTYuNiAyNC0uNyA1Ni44IDEwLjEgOTguNi0xMy42IDMyLjQtMzUuMyA3OS41LTUxLjIgMTA3LjUtMjkuNiAxNS4zLTY5LjMgMzguOS03NS4yIDY4LjctMS4yIDUuNS4yIDEyLjUgMy41IDE4LjggMy43IDcgOS42IDEyLjQgMTYuNSAxNSAzIDEuMSA2LjYgMiAxMC44IDIgMTcuNiAwIDQ2LjEtMTQuMiA4NC4xLTc5LjQgNS44LTEuOSAxMS44LTMuOSAxNy42LTUuOSAyNy4yLTkuMiA1NS40LTE4LjggODAuOS0yMy4xIDI4LjIgMTUuMSA2MC4zIDI0LjggODIuMSAyNC44IDIxLjYgMCAzMC4xLTEyLjggMzMuMy0yMC41IDUuNi0xMy41IDIuOS0zMC41LTYuMi0zOS42LTEzLjItMTMtNDUuMy0xNi40LTk1LjMtMTAuMi0yNC42LTE1LTQwLjctMzUuNC01Mi40LTY1Ljh6TTQyMS42IDcyNi4zYy0xMy45IDIwLjItMjQuNCAzMC4zLTMwLjEgMzQuNyA2LjctMTIuMyAxOS44LTI1LjMgMzAuMS0zNC43em04Ny42LTIzNS41YzUuMiA4LjkgNC41IDM1LjguNSA0OS40LTQuOS0xOS45LTUuNi00OC4xLTIuNy01MS40LjguMSAxLjUuNyAyLjIgMnptLTEuNiAxMjAuNWMxMC43IDE4LjUgMjQuMiAzNC40IDM5LjEgNDYuMi0yMS42IDQuOS00MS4zIDEzLTU4LjkgMjAuMi00LjIgMS43LTguMyAzLjQtMTIuMyA1IDEzLjMtMjQuMSAyNC40LTUxLjQgMzIuMS03MS40em0xNTUuNiA2NS41Yy4xLjIuMi41LS40LjloLS4ybC0uMi4zYy0uOC41LTkgNS4zLTQ0LjMtOC42IDQwLjYtMS45IDQ1IDcuMyA0NS4xIDcuNHptMTkxLjQtMzg4LjJMNjM5LjQgNzMuNGMtNi02LTE0LjEtOS40LTIyLjYtOS40SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlYzMTEuM2MwLTguNS0zLjQtMTYuNy05LjQtMjIuN3pNNzkwLjIgMzI2SDYwMlYxMzcuOEw3OTAuMiAzMjZ6bTEuOCA1NjJIMjMyVjEzNmgzMDJ2MjE2YTQyIDQyIDAgMDA0MiA0MmgyMTZ2NDk0eiJ9fV19LG5hbWU6ImZpbGUtcGRmIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sODUyMjY6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTA5LjIgNDkwLjhjLS43LTEuMy0xLjQtMS45LTIuMi0yLTIuOSAzLjMtMi4yIDMxLjUgMi43IDUxLjQgNC0xMy42IDQuNy00MC41LS41LTQ5LjR6bS0xLjYgMTIwLjVjLTcuNyAyMC0xOC44IDQ3LjMtMzIuMSA3MS40IDQtMS42IDguMS0zLjMgMTIuMy01IDE3LjYtNy4yIDM3LjMtMTUuMyA1OC45LTIwLjItMTQuOS0xMS44LTI4LjQtMjcuNy0zOS4xLTQ2LjJ6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUzNCAzNTJWMTM2SDIzMnY3NTJoNTYwVjM5NEg1NzZhNDIgNDIgMCAwMS00Mi00MnptNTUgMjg3LjZjMTYuMS0xLjkgMzAuNi0yLjggNDQuMy0yLjMgMTIuOC40IDIzLjYgMiAzMiA1LjEuMi4xLjMuMS41LjIuNC4yLjguMyAxLjIuNS41LjIgMS4xLjQgMS42LjcuMS4xLjMuMS40LjIgNC4xIDEuOCA3LjUgNCAxMC4xIDYuNiA5LjEgOS4xIDExLjggMjYuMSA2LjIgMzkuNi0zLjIgNy43LTExLjcgMjAuNS0zMy4zIDIwLjUtMjEuOCAwLTUzLjktOS43LTgyLjEtMjQuOC0yNS41IDQuMy01My43IDEzLjktODAuOSAyMy4xLTUuOCAyLTExLjggNC0xNy42IDUuOS0zOCA2NS4yLTY2LjUgNzkuNC04NC4xIDc5LjQtNC4yIDAtNy44LS45LTEwLjgtMi02LjktMi42LTEyLjgtOC0xNi41LTE1LS45LTEuNy0xLjYtMy40LTIuMi01LjItMS42LTQuOC0yLjEtOS42LTEuMy0xMy42bC42LTIuN2MuMS0uMi4xLS40LjItLjYuMi0uNy40LTEuNC43LTIuMSAwLS4xLjEtLjIuMS0uMyA0LjEtMTEuOSAxMy42LTIzLjQgMjcuNy0zNC42IDEyLjMtOS44IDI3LjEtMTguNyA0NS45LTI4LjQgMTUuOS0yOCAzNy42LTc1LjEgNTEuMi0xMDcuNC0xMC44LTQxLjgtMTYuNy03NC42LTEwLjEtOTguNi45LTMuMyAyLjUtNi40IDQuNi05LjEuMi0uMi4zLS40LjUtLjYuMS0uMS4xLS4yLjItLjIgNi4zLTcuNSAxNi45LTExLjkgMjguMS0xMS41IDE2LjYuNyAyOS43IDExLjUgMzMgMzAuMSAxLjcgOCAyLjIgMTYuNSAxLjkgMjUuN3YuN2MwIC41IDAgMS0uMSAxLjUtLjcgMTMuMy0zIDI2LjYtNy4zIDQ0LjctLjQgMS42LS44IDMuMi0xLjIgNS4ybC0xIDQuMS0uMS4zYy4xLjIuMS4zLjIuNWwxLjggNC41Yy4xLjMuMy43LjQgMSAuNyAxLjYgMS40IDMuMyAyLjEgNC44di4xYzguNyAxOC44IDE5LjcgMzMuNCAzMy45IDQ1LjEgNC4zIDMuNSA4LjkgNi43IDEzLjkgOS44IDEuOC0uNSAzLjUtLjcgNS4zLS45eiIsZmlsbDpufX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0zOTEuNSA3NjFjNS43LTQuNCAxNi4yLTE0LjUgMzAuMS0zNC43LTEwLjMgOS40LTIzLjQgMjIuNC0zMC4xIDM0Ljd6bTI3MC45LTgzbC4yLS4zaC4yYy42LS40LjUtLjcuNC0uOS0uMS0uMS00LjUtOS4zLTQ1LjEtNy40IDM1LjMgMTMuOSA0My41IDkuMSA0NC4zIDguNnoiLGZpbGw6bn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODU0LjYgMjg4LjZMNjM5LjQgNzMuNGMtNi02LTE0LjEtOS40LTIyLjYtOS40SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlYzMTEuM2MwLTguNS0zLjQtMTYuNy05LjQtMjIuN3pNNjAyIDEzNy44TDc5MC4yIDMyNkg2MDJWMTM3Ljh6TTc5MiA4ODhIMjMyVjEzNmgzMDJ2MjE2YTQyIDQyIDAgMDA0MiA0MmgyMTZ2NDk0eiIsZmlsbDphfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MzUuOSA1ODUuM2MtLjgtMS43LTEuNS0zLjMtMi4yLTQuOS0uMS0uMy0uMy0uNy0uNC0xbC0xLjgtNC41Yy0uMS0uMi0uMS0uMy0uMi0uNWwuMS0uMy4yLTEuMWM0LTE2LjMgOC42LTM1LjMgOS40LTU0LjR2LS43Yy4zLTguNi0uMi0xNy4yLTItMjUuNi0zLjgtMjEuMy0xOS41LTI5LjYtMzIuOS0zMC4yLTExLjMtLjUtMjEuOCA0LTI4LjEgMTEuNC0uMS4xLS4xLjItLjIuMi0uMi4yLS40LjQtLjUuNi0yLjEgMi43LTMuNyA1LjgtNC42IDkuMS02LjYgMjQtLjcgNTYuOCAxMC4xIDk4LjYtMTMuNiAzMi40LTM1LjMgNzkuNC01MS4yIDEwNy40di4xYy0yNy43IDE0LjMtNjQuMSAzNS44LTczLjYgNjIuOSAwIC4xLS4xLjItLjEuMy0uMi43LS41IDEuNC0uNyAyLjEtLjEuMi0uMS40LS4yLjYtLjIuOS0uNSAxLjgtLjYgMi43LS45IDQtLjQgOC44IDEuMyAxMy42LjYgMS44IDEuMyAzLjUgMi4yIDUuMiAzLjcgNyA5LjYgMTIuNCAxNi41IDE1IDMgMS4xIDYuNiAyIDEwLjggMiAxNy42IDAgNDYuMS0xNC4yIDg0LjEtNzkuNCA1LjgtMS45IDExLjgtMy45IDE3LjYtNS45IDI3LjItOS4yIDU1LjQtMTguOCA4MC45LTIzLjEgMjguMiAxNS4xIDYwLjMgMjQuOCA4Mi4xIDI0LjggMjEuNiAwIDMwLjEtMTIuOCAzMy4zLTIwLjUgNS42LTEzLjUgMi45LTMwLjUtNi4yLTM5LjYtMi42LTIuNi02LTQuOC0xMC4xLTYuNi0uMS0uMS0uMy0uMS0uNC0uMi0uNS0uMi0xLjEtLjQtMS42LS43LS40LS4yLS44LS4zLTEuMi0uNS0uMi0uMS0uMy0uMS0uNS0uMi0xNi4yLTUuOC00MS43LTYuNy03Ni4zLTIuOGwtNS4zLjZjLTUtMy05LjYtNi4zLTEzLjktOS44LTE0LjItMTEuMy0yNS4xLTI1LjgtMzMuOC00NC43ek0zOTEuNSA3NjFjNi43LTEyLjMgMTkuOC0yNS4zIDMwLjEtMzQuNy0xMy45IDIwLjItMjQuNCAzMC4zLTMwLjEgMzQuN3pNNTA3IDQ4OC44Yy44LjEgMS41LjcgMi4yIDIgNS4yIDguOSA0LjUgMzUuOC41IDQ5LjQtNC45LTE5LjktNS42LTQ4LjEtMi43LTUxLjR6bS0xOS4yIDE4OC45Yy00LjIgMS43LTguMyAzLjQtMTIuMyA1IDEzLjMtMjQuMSAyNC40LTUxLjQgMzIuMS03MS40IDEwLjcgMTguNSAyNC4yIDM0LjQgMzkuMSA0Ni4yLTIxLjYgNC45LTQxLjMgMTMtNTguOSAyMC4yem0xNzUuNC0uOWMuMS4yLjIuNS0uNC45aC0uMmwtLjIuM2MtLjguNS05IDUuMy00NC4zLTguNiA0MC42LTEuOSA0NSA3LjMgNDUuMSA3LjR6IixmaWxsOmF9fV19fSxuYW1lOiJmaWxlLXBkZiIsdGhlbWU6InR3b3RvbmUifTt0LmRlZmF1bHQ9ZX0sMTAwMjY6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg1NC42IDI4OC43YzYgNiA5LjQgMTQuMSA5LjQgMjIuNlY5MjhjMCAxNy43LTE0LjMgMzItMzIgMzJIMTkyYy0xNy43IDAtMzItMTQuMy0zMi0zMlY5NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmg0MjQuN2M4LjUgMCAxNi43IDMuNCAyMi43IDkuNGwyMTUuMiAyMTUuM3pNNzkwLjIgMzI2TDYwMiAxMzcuOFYzMjZoMTg4LjJ6TTQ2OC41MyA3NjB2LTkxLjU0aDU5LjI3YzYwLjU3IDAgMTAwLjItMzkuNjUgMTAwLjItOTguMTIgMC01OC4yMi0zOS41OC05OC4zNC05OS45OC05OC4zNEg0MjRhMTIgMTIgMCAwMC0xMiAxMnYyNzZhMTIgMTIgMCAwMDEyIDEyaDMyLjUzYTEyIDEyIDAgMDAxMi0xMnptMC0xMzkuMzNoMzQuOWM0Ny44MiAwIDY3LjE5LTEyLjkzIDY3LjE5LTUwLjMzIDAtMzIuMDUtMTguMTItNTAuMTItNDkuODctNTAuMTJoLTUyLjIydjEwMC40NXoifX1dfSxuYW1lOiJmaWxlLXBwdCIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw1NzUxOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00MjQgNDc2Yy00LjQgMC04IDMuNi04IDh2Mjc2YzAgNC40IDMuNiA4IDggOGgzMi41YzQuNCAwIDgtMy42IDgtOHYtOTUuNWg2My4zYzU5LjQgMCA5Ni4yLTM4LjkgOTYuMi05NC4xIDAtNTQuNS0zNi4zLTk0LjMtOTYtOTQuM0g0MjR6bTE1MC42IDk0LjNjMCA0My40LTI2LjUgNTQuMy03MS4yIDU0LjNoLTM4LjlWNTE2LjJoNTYuMmMzMy44IDAgNTMuOSAxOS43IDUzLjkgNTQuMXptMjgwLTI4MS43TDYzOS40IDczLjRjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzExLjNjMC04LjUtMy40LTE2LjctOS40LTIyLjd6TTc5MC4yIDMyNkg2MDJWMTM3LjhMNzkwLjIgMzI2em0xLjggNTYySDIzMlYxMzZoMzAydjIxNmE0MiA0MiAwIDAwNDIgNDJoMjE2djQ5NHoifX1dfSxuYW1lOiJmaWxlLXBwdCIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDE0NTU6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNDY0LjUgNTE2LjJ2MTA4LjRoMzguOWM0NC43IDAgNzEuMi0xMC45IDcxLjItNTQuMyAwLTM0LjQtMjAuMS01NC4xLTUzLjktNTQuMWgtNTYuMnoiLGZpbGw6bn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTM0IDM1MlYxMzZIMjMydjc1Mmg1NjBWMzk0SDU3NmE0MiA0MiAwIDAxLTQyLTQyem05MCAyMTguNGMwIDU1LjItMzYuOCA5NC4xLTk2LjIgOTQuMWgtNjMuM1Y3NjBjMCA0LjQtMy42IDgtOCA4SDQyNGMtNC40IDAtOC0zLjYtOC04VjQ4NGMwLTQuNCAzLjYtOCA4LTh2LjFoMTA0YzU5LjcgMCA5NiAzOS44IDk2IDk0LjN6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg1NC42IDI4OC42TDYzOS40IDczLjRjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzExLjNjMC04LjUtMy40LTE2LjctOS40LTIyLjd6TTYwMiAxMzcuOEw3OTAuMiAzMjZINjAyVjEzNy44ek03OTIgODg4SDIzMlYxMzZoMzAydjIxNmE0MiA0MiAwIDAwNDIgNDJoMjE2djQ5NHoiLGZpbGw6YX19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNDI0IDQ3Ni4xYy00LjQtLjEtOCAzLjUtOCA3Ljl2Mjc2YzAgNC40IDMuNiA4IDggOGgzMi41YzQuNCAwIDgtMy42IDgtOHYtOTUuNWg2My4zYzU5LjQgMCA5Ni4yLTM4LjkgOTYuMi05NC4xIDAtNTQuNS0zNi4zLTk0LjMtOTYtOTQuM0g0MjR6bTE1MC42IDk0LjJjMCA0My40LTI2LjUgNTQuMy03MS4yIDU0LjNoLTM4LjlWNTE2LjJoNTYuMmMzMy44IDAgNTMuOSAxOS43IDUzLjkgNTQuMXoiLGZpbGw6YX19XX19LG5hbWU6ImZpbGUtcHB0Iix0aGVtZToidHdvdG9uZSJ9O3QuZGVmYXVsdD1lfSw4OTU3NzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNjQ0LjcgNjY5LjJhNy45MiA3LjkyIDAgMDAtNi41LTMuM0g1OTRjLTYuNSAwLTEwLjMgNy40LTYuNSAxMi43bDczLjggMTAyLjFjMy4yIDQuNCA5LjcgNC40IDEyLjkgMGwxMTQuMi0xNThjMy44LTUuMyAwLTEyLjctNi41LTEyLjdoLTQ0LjNjLTIuNiAwLTUgMS4yLTYuNSAzLjNsLTYzLjUgODcuOC0yMi45LTMxLjl6TTY4OCAzMDZ2LTQ4YzAtNC40LTMuNi04LTgtOEgyOTZjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMzg0YzQuNCAwIDgtMy42IDgtOHptLTM5MiA4OGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgxODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThIMjk2em0xODQgNDU4SDIwOFYxNDhoNTYwdjI5NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04VjEwOGMwLTE3LjctMTQuMy0zMi0zMi0zMkgxNjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjc4NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmgzMTJjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTQwMi42LTMyMC44bC0xOTItNjYuN2MtLjktLjMtMS43LS40LTIuNi0uNHMtMS44LjEtMi42LjRsLTE5MiA2Ni43YTcuOTYgNy45NiAwIDAwLTUuNCA3LjV2MjUxLjFjMCAyLjUgMS4xIDQuOCAzLjEgNi4zbDE5MiAxNTAuMmMxLjQgMS4xIDMuMiAxLjcgNC45IDEuN3MzLjUtLjYgNC45LTEuN2wxOTItMTUwLjJjMS45LTEuNSAzLjEtMy44IDMuMS02LjNWNTM4LjdjMC0zLjQtMi4yLTYuNC01LjQtNy41ek04MjYgNzYzLjdMNjg4IDg3MS42IDU1MCA3NjMuN1Y1NzdsMTM4LTQ4IDEzOCA0OHYxODYuN3oifX1dfSxuYW1lOiJmaWxlLXByb3RlY3QiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw4MzE4OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02ODggMzEydi00OGMwLTQuNC0zLjYtOC04LThIMjk2Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDM4NGM0LjQgMCA4LTMuNiA4LTh6bS0zOTIgODhjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMTg0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04SDI5NnptMTQ0IDQ1MkgyMDhWMTQ4aDU2MHYzNDRjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFYxMDhjMC0xNy43LTE0LjMtMzItMzItMzJIMTY4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3ODRjMCAxNy43IDE0LjMgMzIgMzIgMzJoMjcyYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em00NDUuNyA1MS41bC05My4zLTkzLjNDODE0LjcgNzgwLjcgODI4IDc0My45IDgyOCA3MDRjMC05Ny4yLTc4LjgtMTc2LTE3Ni0xNzZzLTE3NiA3OC44LTE3NiAxNzYgNzguOCAxNzYgMTc2IDE3NmMzNS44IDAgNjktMTAuNyA5Ni44LTI5bDk0LjcgOTQuN2MxLjYgMS42IDMuNiAyLjMgNS42IDIuM3M0LjEtLjggNS42LTIuM2wzMS0zMWE3LjkgNy45IDAgMDAwLTExLjJ6TTY1MiA4MTZjLTYxLjkgMC0xMTItNTAuMS0xMTItMTEyczUwLjEtMTEyIDExMi0xMTIgMTEyIDUwLjEgMTEyIDExMi01MC4xIDExMi0xMTIgMTEyeiJ9fV19LG5hbWU6ImZpbGUtc2VhcmNoIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNTIxNjU6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTI5NiAyNTZjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMzg0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04SDI5NnptMTkyIDIwMHYtNDhjMC00LjQtMy42LTgtOC04SDI5NmMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgxODRjNC40IDAgOC0zLjYgOC04em0tNDggMzk2SDIwOFYxNDhoNTYwdjM0NGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04VjEwOGMwLTE3LjctMTQuMy0zMi0zMi0zMkgxNjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjc4NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmgyNzJjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTEwNC4xLTExNS42YzEuOC0zNC41IDE2LjItNjYuOCA0MC44LTkxLjQgMjYuMi0yNi4yIDYyLTQxIDk5LjEtNDEgMzcuNCAwIDcyLjYgMTQuNiA5OS4xIDQxIDMuMiAzLjIgNi4zIDYuNiA5LjIgMTAuMUw3NjkuMiA2NzNhOCA4IDAgMDAzIDE0LjFsOTMuMyAyMi41YzUgMS4yIDkuOC0yLjYgOS45LTcuN2wuNi05NS40YTggOCAwIDAwLTEyLjktNi40bC0yMC4zIDE1LjhDODA1LjQgNTY5LjYgNzQ4LjEgNTQwIDY4NCA1NDBjLTEwOS45IDAtMTk5LjYgODYuOS0yMDQgMTk1LjctLjIgNC41IDMuNSA4LjMgOCA4LjNoNDguMWM0LjMgMCA3LjgtMy4zIDgtNy42ek04ODAgNzQ0aC00OC4xYy00LjMgMC03LjggMy4zLTggNy42LTEuOCAzNC41LTE2LjIgNjYuOC00MC44IDkxLjQtMjYuMiAyNi4yLTYyIDQxLTk5LjEgNDEtMzcuNCAwLTcyLjYtMTQuNi05OS4xLTQxLTMuMi0zLjItNi4zLTYuNi05LjItMTAuMWwyMy4xLTE3LjlhOCA4IDAgMDAtMy0xNC4xbC05My4zLTIyLjVjLTUtMS4yLTkuOCAyLjYtOS45IDcuN2wtLjYgOTUuNGE4IDggMCAwMDEyLjkgNi40bDIwLjMtMTUuOEM1NjIuNiA5MTguNCA2MTkuOSA5NDggNjg0IDk0OGMxMDkuOSAwIDE5OS42LTg2LjkgMjA0LTE5NS43LjItNC41LTMuNS04LjMtOC04LjN6In19XX0sbmFtZToiZmlsZS1zeW5jIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNTMwOTQ6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg1NC42IDI4OC43YzYgNiA5LjQgMTQuMSA5LjQgMjIuNlY5MjhjMCAxNy43LTE0LjMgMzItMzIgMzJIMTkyYy0xNy43IDAtMzItMTQuMy0zMi0zMlY5NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmg0MjQuN2M4LjUgMCAxNi43IDMuNCAyMi43IDkuNGwyMTUuMiAyMTUuM3pNNzkwLjIgMzI2TDYwMiAxMzcuOFYzMjZoMTg4LjJ6TTMyMCA0ODJhOCA4IDAgMDAtOCA4djQ4YTggOCAwIDAwOCA4aDM4NGE4IDggMCAwMDgtOHYtNDhhOCA4IDAgMDAtOC04SDMyMHptMCAxMzZhOCA4IDAgMDAtOCA4djQ4YTggOCAwIDAwOCA4aDE4NGE4IDggMCAwMDgtOHYtNDhhOCA4IDAgMDAtOC04SDMyMHoifX1dfSxuYW1lOiJmaWxlLXRleHQiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sODAxODU6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg1NC42IDI4OC42TDYzOS40IDczLjRjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzExLjNjMC04LjUtMy40LTE2LjctOS40LTIyLjd6TTc5MC4yIDMyNkg2MDJWMTM3LjhMNzkwLjIgMzI2em0xLjggNTYySDIzMlYxMzZoMzAydjIxNmE0MiA0MiAwIDAwNDIgNDJoMjE2djQ5NHpNNTA0IDYxOEgzMjBjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMTg0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04ek0zMTIgNDkwdjQ4YzAgNC40IDMuNiA4IDggOGgzODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThIMzIwYy00LjQgMC04IDMuNi04IDh6In19XX0sbmFtZToiZmlsZS10ZXh0Iix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNDgyNjQ6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTM0IDM1MlYxMzZIMjMydjc1Mmg1NjBWMzk0SDU3NmE0MiA0MiAwIDAxLTQyLTQyem0tMjIgMzIyYzAgNC40LTMuNiA4LTggOEgzMjBjLTQuNCAwLTgtMy42LTgtOHYtNDhjMC00LjQgMy42LTggOC04aDE4NGM0LjQgMCA4IDMuNiA4IDh2NDh6bTIwMC0xODR2NDhjMCA0LjQtMy42IDgtOCA4SDMyMGMtNC40IDAtOC0zLjYtOC04di00OGMwLTQuNCAzLjYtOCA4LThoMzg0YzQuNCAwIDggMy42IDggOHoiLGZpbGw6bn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODU0LjYgMjg4LjZMNjM5LjQgNzMuNGMtNi02LTE0LjEtOS40LTIyLjYtOS40SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlYzMTEuM2MwLTguNS0zLjQtMTYuNy05LjQtMjIuN3pNNjAyIDEzNy44TDc5MC4yIDMyNkg2MDJWMTM3Ljh6TTc5MiA4ODhIMjMyVjEzNmgzMDJ2MjE2YTQyIDQyIDAgMDA0MiA0MmgyMTZ2NDk0eiIsZmlsbDphfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0zMTIgNDkwdjQ4YzAgNC40IDMuNiA4IDggOGgzODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThIMzIwYy00LjQgMC04IDMuNi04IDh6bTE5MiAxMjhIMzIwYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDE4NGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOHoiLGZpbGw6YX19XX19LG5hbWU6ImZpbGUtdGV4dCIsdGhlbWU6InR3b3RvbmUifTt0LmRlZmF1bHQ9ZX0sOTM1Njc6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTM0IDM1MlYxMzZIMjMydjc1Mmg1NjBWMzk0SDU3NmE0MiA0MiAwIDAxLTQyLTQyeiIsZmlsbDpufX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NTQuNiAyODguNkw2MzkuNCA3My40Yy02LTYtMTQuMS05LjQtMjIuNi05LjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMxMS4zYzAtOC41LTMuNC0xNi43LTkuNC0yMi43ek02MDIgMTM3LjhMNzkwLjIgMzI2SDYwMlYxMzcuOHpNNzkyIDg4OEgyMzJWMTM2aDMwMnYyMTZhNDIgNDIgMCAwMDQyIDQyaDIxNnY0OTR6IixmaWxsOmF9fV19fSxuYW1lOiJmaWxlIix0aGVtZToidHdvdG9uZSJ9O3QuZGVmYXVsdD1lfSw0ODM3ODpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODU0LjYgMjg4LjdjNiA2IDkuNCAxNC4xIDkuNCAyMi42VjkyOGMwIDE3LjctMTQuMyAzMi0zMiAzMkgxOTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyaDQyNC43YzguNSAwIDE2LjcgMy40IDIyLjcgOS40bDIxNS4yIDIxNS4zek03OTAuMiAzMjZMNjAyIDEzNy44VjMyNmgxODguMnpNNDAyIDU0OWMwIDUuNCA0LjQgOS41IDkuOCA5LjVoMzIuNGM1LjQgMCA5LjgtNC4yIDkuOC05LjQgMC0yOC4yIDI1LjgtNTEuNiA1OC01MS42czU4IDIzLjQgNTggNTEuNWMwIDI1LjMtMjEgNDcuMi00OS4zIDUwLjktMTkuMyAyLjgtMzQuNSAyMC4zLTM0LjcgNDAuMXYzMmMwIDUuNSA0LjUgMTAgMTAgMTBoMzJjNS41IDAgMTAtNC41IDEwLTEwdi0xMi4yYzAtNiA0LTExLjUgOS43LTEzLjMgNDQuNi0xNC40IDc1LTU0IDc0LjMtOTguOS0uOC01NS41LTQ5LjItMTAwLjgtMTA4LjUtMTAxLjYtNjEuNC0uNy0xMTEuNSA0NS42LTExMS41IDEwM3ptMTEwIDIyN2EzMiAzMiAwIDEwMC02NCAzMiAzMiAwIDAwMCA2NHoifX1dfSxuYW1lOiJmaWxlLXVua25vd24iLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sNjI0OTk6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg1NC42IDI4OC43TDYzOS40IDczLjRjLTYtNi0xNC4yLTkuNC0yMi43LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzExLjNjMC04LjUtMy40LTE2LjYtOS40LTIyLjZ6TTc5MC4yIDMyNkg2MDJWMTM3LjhMNzkwLjIgMzI2em0xLjggNTYySDIzMlYxMzZoMzAydjIxNmE0MiA0MiAwIDAwNDIgNDJoMjE2djQ5NHpNNDAyIDU0OWMwIDUuNCA0LjQgOS41IDkuOCA5LjVoMzIuNGM1LjQgMCA5LjgtNC4yIDkuOC05LjQgMC0yOC4yIDI1LjgtNTEuNiA1OC01MS42czU4IDIzLjQgNTggNTEuNWMwIDI1LjMtMjEgNDcuMi00OS4zIDUwLjktMTkuMyAyLjgtMzQuNSAyMC4zLTM0LjcgNDAuMXYzMmMwIDUuNSA0LjUgMTAgMTAgMTBoMzJjNS41IDAgMTAtNC41IDEwLTEwdi0xMi4yYzAtNiA0LTExLjUgOS43LTEzLjMgNDQuNi0xNC40IDc1LTU0IDc0LjMtOTguOS0uOC01NS41LTQ5LjItMTAwLjgtMTA4LjUtMTAxLjYtNjEuNC0uNy0xMTEuNSA0NS42LTExMS41IDEwM3ptNzggMTk1YTMyIDMyIDAgMTA2NCAwIDMyIDMyIDAgMTAtNjQgMHoifX1dfSxuYW1lOiJmaWxlLXVua25vd24iLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSwxMzY5OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOmZ1bmN0aW9uKGEsbil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUzNCAzNTJWMTM2SDIzMnY3NTJoNTYwVjM5NEg1NzZhNDIgNDIgMCAwMS00Mi00MnptLTIyIDQyNGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzJ6bTExMC0yMjguNGMuNyA0NC45LTI5LjcgODQuNS03NC4zIDk4LjktNS43IDEuOC05LjcgNy4zLTkuNyAxMy4zVjY3MmMwIDUuNS00LjUgMTAtMTAgMTBoLTMyYy01LjUgMC0xMC00LjUtMTAtMTB2LTMyYy4yLTE5LjggMTUuNC0zNy4zIDM0LjctNDAuMUM1NDkgNTk2LjIgNTcwIDU3NC4zIDU3MCA1NDljMC0yOC4xLTI1LjgtNTEuNS01OC01MS41cy01OCAyMy40LTU4IDUxLjZjMCA1LjItNC40IDkuNC05LjggOS40aC0zMi40Yy01LjQgMC05LjgtNC4xLTkuOC05LjUgMC01Ny40IDUwLjEtMTAzLjcgMTExLjUtMTAzIDU5LjMuOCAxMDcuNyA0Ni4xIDEwOC41IDEwMS42eiIsZmlsbDpufX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NTQuNiAyODguN0w2MzkuNCA3My40Yy02LTYtMTQuMi05LjQtMjIuNy05LjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMxMS4zYzAtOC41LTMuNC0xNi42LTkuNC0yMi42ek02MDIgMTM3LjhMNzkwLjIgMzI2SDYwMlYxMzcuOHpNNzkyIDg4OEgyMzJWMTM2aDMwMnYyMTZhNDIgNDIgMCAwMDQyIDQyaDIxNnY0OTR6IixmaWxsOmF9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQ4MCA3NDRhMzIgMzIgMCAxMDY0IDAgMzIgMzIgMCAxMC02NCAwem0tNzgtMTk1YzAgNS40IDQuNCA5LjUgOS44IDkuNWgzMi40YzUuNCAwIDkuOC00LjIgOS44LTkuNCAwLTI4LjIgMjUuOC01MS42IDU4LTUxLjZzNTggMjMuNCA1OCA1MS41YzAgMjUuMy0yMSA0Ny4yLTQ5LjMgNTAuOS0xOS4zIDIuOC0zNC41IDIwLjMtMzQuNyA0MC4xdjMyYzAgNS41IDQuNSAxMCAxMCAxMGgzMmM1LjUgMCAxMC00LjUgMTAtMTB2LTEyLjJjMC02IDQtMTEuNSA5LjctMTMuMyA0NC42LTE0LjQgNzUtNTQgNzQuMy05OC45LS44LTU1LjUtNDkuMi0xMDAuOC0xMDguNS0xMDEuNi02MS40LS43LTExMS41IDQ1LjYtMTExLjUgMTAzeiIsZmlsbDphfX1dfX0sbmFtZToiZmlsZS11bmtub3duIix0aGVtZToidHdvdG9uZSJ9O3QuZGVmYXVsdD1lfSw1ODgxOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NTQuNiAyODguN2M2IDYgOS40IDE0LjEgOS40IDIyLjZWOTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMySDE5MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWOTZjMC0xNy43IDE0LjMtMzIgMzItMzJoNDI0LjdjOC41IDAgMTYuNyAzLjQgMjIuNyA5LjRsMjE1LjIgMjE1LjN6TTc5MC4yIDMyNkw2MDIgMTM3LjhWMzI2aDE4OC4yek01MTIgNTY2LjFsNTIuODEgMTk3YTEyIDEyIDAgMDAxMS42IDguOWgzMS43N2ExMiAxMiAwIDAwMTEuNi04Ljg4bDc0LjM3LTI3NmExMiAxMiAwIDAwLjQtMy4xMiAxMiAxMiAwIDAwLTEyLTEyaC0zNS41N2ExMiAxMiAwIDAwLTExLjcgOS4zMWwtNDUuNzggMTk5LjEtNDkuNzYtMTk5LjMyQTEyIDEyIDAgMDA1MjguMSA0NzJoLTMyLjJhMTIgMTIgMCAwMC0xMS42NCA5LjFMNDM0LjYgNjgwLjAxIDM4OC41IDQ4MS4zYTEyIDEyIDAgMDAtMTEuNjgtOS4yOWgtMzUuMzlhMTIgMTIgMCAwMC0zLjExLjQxIDEyIDEyIDAgMDAtOC40NyAxNC43bDc0LjE3IDI3NkExMiAxMiAwIDAwNDE1LjYgNzcyaDMxLjk5YTEyIDEyIDAgMDAxMS41OS04LjlsNTIuODEtMTk3eiJ9fV19LG5hbWU6ImZpbGUtd29yZCIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw0NDYzNzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODU0LjYgMjg4LjZMNjM5LjQgNzMuNGMtNi02LTE0LjEtOS40LTIyLjYtOS40SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlYzMTEuM2MwLTguNS0zLjQtMTYuNy05LjQtMjIuN3pNNzkwLjIgMzI2SDYwMlYxMzcuOEw3OTAuMiAzMjZ6bTEuOCA1NjJIMjMyVjEzNmgzMDJ2MjE2YTQyIDQyIDAgMDA0MiA0MmgyMTZ2NDk0ek01MjguMSA0NzJoLTMyLjJjLTUuNSAwLTEwLjMgMy43LTExLjYgOS4xTDQzNC42IDY4MGwtNDYuMS0xOTguN2MtMS4zLTUuNC02LjEtOS4zLTExLjctOS4zaC0zNS40YTEyLjAyIDEyLjAyIDAgMDAtMTEuNiAxNS4xbDc0LjIgMjc2YzEuNCA1LjIgNi4yIDguOSAxMS42IDguOWgzMmM1LjQgMCAxMC4yLTMuNiAxMS42LTguOWw1Mi44LTE5NyA1Mi44IDE5N2MxLjQgNS4yIDYuMiA4LjkgMTEuNiA4LjloMzEuOGM1LjQgMCAxMC4yLTMuNiAxMS42LTguOWw3NC40LTI3NmExMi4wNCAxMi4wNCAwIDAwLTExLjYtMTUuMUg2NDdjLTUuNiAwLTEwLjQgMy45LTExLjcgOS4zbC00NS44IDE5OS4xLTQ5LjgtMTk5LjNjLTEuMy01LjQtNi4xLTkuMS0xMS42LTkuMXoifX1dfSxuYW1lOiJmaWxlLXdvcmQiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSwxMjQzODpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjpmdW5jdGlvbihhLG4pe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MzQgMzUyVjEzNkgyMzJ2NzUyaDU2MFYzOTRINTc2YTQyIDQyIDAgMDEtNDItNDJ6bTEwMS4zIDEyOS4zYzEuMy01LjQgNi4xLTkuMyAxMS43LTkuM2gzNS42YTEyLjA0IDEyLjA0IDAgMDExMS42IDE1LjFsLTc0LjQgMjc2Yy0xLjQgNS4zLTYuMiA4LjktMTEuNiA4LjloLTMxLjhjLTUuNCAwLTEwLjItMy43LTExLjYtOC45bC01Mi44LTE5Ny01Mi44IDE5N2MtMS40IDUuMy02LjIgOC45LTExLjYgOC45aC0zMmMtNS40IDAtMTAuMi0zLjctMTEuNi04LjlsLTc0LjItMjc2YTEyLjAyIDEyLjAyIDAgMDExMS42LTE1LjFoMzUuNGM1LjYgMCAxMC40IDMuOSAxMS43IDkuM0w0MzQuNiA2ODBsNDkuNy0xOTguOWMxLjMtNS40IDYuMS05LjEgMTEuNi05LjFoMzIuMmM1LjUgMCAxMC4zIDMuNyAxMS42IDkuMWw0OS44IDE5OS4zIDQ1LjgtMTk5LjF6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg1NC42IDI4OC42TDYzOS40IDczLjRjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzExLjNjMC04LjUtMy40LTE2LjctOS40LTIyLjd6TTYwMiAxMzcuOEw3OTAuMiAzMjZINjAyVjEzNy44ek03OTIgODg4SDIzMlYxMzZoMzAydjIxNmE0MiA0MiAwIDAwNDIgNDJoMjE2djQ5NHoiLGZpbGw6YX19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTI4LjEgNDcyaC0zMi4yYy01LjUgMC0xMC4zIDMuNy0xMS42IDkuMUw0MzQuNiA2ODBsLTQ2LjEtMTk4LjdjLTEuMy01LjQtNi4xLTkuMy0xMS43LTkuM2gtMzUuNGExMi4wMiAxMi4wMiAwIDAwLTExLjYgMTUuMWw3NC4yIDI3NmMxLjQgNS4yIDYuMiA4LjkgMTEuNiA4LjloMzJjNS40IDAgMTAuMi0zLjYgMTEuNi04LjlsNTIuOC0xOTcgNTIuOCAxOTdjMS40IDUuMiA2LjIgOC45IDExLjYgOC45aDMxLjhjNS40IDAgMTAuMi0zLjYgMTEuNi04LjlsNzQuNC0yNzZhMTIuMDQgMTIuMDQgMCAwMC0xMS42LTE1LjFINjQ3Yy01LjYgMC0xMC40IDMuOS0xMS43IDkuM2wtNDUuOCAxOTkuMS00OS44LTE5OS4zYy0xLjMtNS40LTYuMS05LjEtMTEuNi05LjF6IixmaWxsOmF9fV19fSxuYW1lOiJmaWxlLXdvcmQiLHRoZW1lOiJ0d290b25lIn07dC5kZWZhdWx0PWV9LDM4NDk1OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NTQuNiAyODguN2M2IDYgOS40IDE0LjEgOS40IDIyLjZWOTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMySDE5MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWOTZjMC0xNy43IDE0LjMtMzIgMzItMzJoNDI0LjdjOC41IDAgMTYuNyAzLjQgMjIuNyA5LjRsMjE1LjIgMjE1LjN6TTc5MC4yIDMyNkw2MDIgMTM3LjhWMzI2aDE4OC4yek0yOTYgMTM2djY0aDY0di02NGgtNjR6bTY0IDY0djY0aDY0di02NGgtNjR6bS02NCA2NHY2NGg2NHYtNjRoLTY0em02NCA2NHY2NGg2NHYtNjRoLTY0em0tNjQgNjR2NjRoNjR2LTY0aC02NHptNjQgNjR2NjRoNjR2LTY0aC02NHptLTY0IDY0djY0aDY0di02NGgtNjR6bTAgNjR2MTYwaDEyOFY1ODRIMjk2em00OCA0OGgzMnY2NGgtMzJ2LTY0eiJ9fV19LG5hbWU6ImZpbGUtemlwIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDkxODkzOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0yOTYgMzkyaDY0djY0aC02NHptMCAxOTB2MTYwaDEyOFY1ODJoLTY0di02MmgtNjR2NjJ6bTgwIDQ4djY0aC0zMnYtNjRoMzJ6bS0xNi0zMDJoNjR2NjRoLTY0em0tNjQtNjRoNjR2NjRoLTY0em02NCAxOTJoNjR2NjRoLTY0em0wLTI1Nmg2NHY2NGgtNjR6bTQ5NC42IDg4LjZMNjM5LjQgNzMuNGMtNi02LTE0LjEtOS40LTIyLjYtOS40SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlYzMTEuM2MwLTguNS0zLjQtMTYuNy05LjQtMjIuN3pNNzkwLjIgMzI2SDYwMlYxMzcuOEw3OTAuMiAzMjZ6bTEuOCA1NjJIMjMyVjEzNmg2NHY2NGg2NHYtNjRoMTc0djIxNmE0MiA0MiAwIDAwNDIgNDJoMjE2djQ5NHoifX1dfSxuYW1lOiJmaWxlLXppcCIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDY4OTQ4OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOmZ1bmN0aW9uKGEsbil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTM0NCA2MzBoMzJ2MmgtMzJ6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUzNCAzNTJWMTM2SDM2MHY2NGg2NHY2NGgtNjR2NjRoNjR2NjRoLTY0djY0aDY0djY0aC02NHY2Mmg2NHYxNjBIMjk2VjUyMGg2NHYtNjRoLTY0di02NGg2NHYtNjRoLTY0di02NGg2NHYtNjRoLTY0di02NGgtNjR2NzUyaDU2MFYzOTRINTc2YTQyIDQyIDAgMDEtNDItNDJ6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg1NC42IDI4OC42TDYzOS40IDczLjRjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzExLjNjMC04LjUtMy40LTE2LjctOS40LTIyLjd6TTYwMiAxMzcuOEw3OTAuMiAzMjZINjAyVjEzNy44ek03OTIgODg4SDIzMlYxMzZoNjR2NjRoNjR2LTY0aDE3NHYyMTZhNDIgNDIgMCAwMDQyIDQyaDIxNnY0OTR6IixmaWxsOmF9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTI5NiAzOTJoNjR2NjRoLTY0em0wLTEyOGg2NHY2NGgtNjR6bTAgMzE4djE2MGgxMjhWNTgyaC02NHYtNjJoLTY0djYyem00OCA1MHYtMmgzMnY2NGgtMzJ2LTYyem0xNi00MzJoNjR2NjRoLTY0em0wIDI1Nmg2NHY2NGgtNjR6bTAtMTI4aDY0djY0aC02NHoiLGZpbGw6YX19XX19LG5hbWU6ImZpbGUtemlwIix0aGVtZToidHdvdG9uZSJ9O3QuZGVmYXVsdD1lfSwxNTE1NTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMzQ5IDgzOGMwIDE3LjcgMTQuMiAzMiAzMS44IDMyaDI2Mi40YzE3LjYgMCAzMS44LTE0LjMgMzEuOC0zMlY2NDJIMzQ5djE5NnptNTMxLjEtNjg0SDE0My45Yy0yNC41IDAtMzkuOCAyNi43LTI3LjUgNDhsMjIxLjMgMzc2aDM0OC44bDIyMS4zLTM3NmMxMi4xLTIxLjMtMy4yLTQ4LTI3LjctNDh6In19XX0sbmFtZToiZmlsdGVyIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDgzNjA4OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAuMSAxNTRIMTQzLjljLTI0LjUgMC0zOS44IDI2LjctMjcuNSA0OEwzNDkgNTk3LjRWODM4YzAgMTcuNyAxNC4yIDMyIDMxLjggMzJoMjYyLjRjMTcuNiAwIDMxLjgtMTQuMyAzMS44LTMyVjU5Ny40TDkwNy43IDIwMmMxMi4yLTIxLjMtMy4xLTQ4LTI3LjYtNDh6TTYwMy40IDc5OEg0MjAuNlY2NDJoMTgyLjl2MTU2em05LjYtMjM2LjZsLTkuNSAxNi42aC0xODNsLTkuNS0xNi42TDIxMi43IDIyNmg1OTguNkw2MTMgNTYxLjR6In19XX0sbmFtZToiZmlsdGVyIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNzk4NjE6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNDIwLjYgNzk4aDE4Mi45VjY0Mkg0MjAuNnpNNDExIDU2MS40bDkuNSAxNi42aDE4M2w5LjUtMTYuNkw4MTEuMyAyMjZIMjEyLjd6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MC4xIDE1NEgxNDMuOWMtMjQuNSAwLTM5LjggMjYuNy0yNy41IDQ4TDM0OSA1OTcuNFY4MzhjMCAxNy43IDE0LjIgMzIgMzEuOCAzMmgyNjIuNGMxNy42IDAgMzEuOC0xNC4zIDMxLjgtMzJWNTk3LjRMOTA3LjcgMjAyYzEyLjItMjEuMy0zLjEtNDgtMjcuNi00OHpNNjAzLjUgNzk4SDQyMC42VjY0MmgxODIuOXYxNTZ6bTkuNS0yMzYuNmwtOS41IDE2LjZoLTE4M2wtOS41LTE2LjZMMjEyLjcgMjI2aDU5OC42TDYxMyA1NjEuNHoiLGZpbGw6YX19XX19LG5hbWU6ImZpbHRlciIsdGhlbWU6InR3b3RvbmUifTt0LmRlZmF1bHQ9ZX0sNTg1MTM6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTgzNC4xIDQ2OS4yQTM0Ny40OSAzNDcuNDkgMCAwMDc1MS4yIDM1NGwtMjkuMS0yNi43YTguMDkgOC4wOSAwIDAwLTEzIDMuM2wtMTMgMzcuM2MtOC4xIDIzLjQtMjMgNDcuMy00NC4xIDcwLjgtMS40IDEuNS0zIDEuOS00LjEgMi0xLjEuMS0yLjgtLjEtNC4zLTEuNS0xLjQtMS4yLTIuMS0zLTItNC44IDMuNy02MC4yLTE0LjMtMTI4LjEtNTMuNy0yMDJDNTU1LjMgMTcxIDUxMCAxMjMuMSA0NTMuNCA4OS43bC00MS4zLTI0LjNjLTUuNC0zLjItMTIuMyAxLTEyIDcuM2wyLjIgNDhjMS41IDMyLjgtMi4zIDYxLjgtMTEuMyA4NS45LTExIDI5LjUtMjYuOCA1Ni45LTQ3IDgxLjVhMjk1LjY0IDI5NS42NCAwIDAxLTQ3LjUgNDYuMSAzNTIuNiAzNTIuNiAwIDAwLTEwMC4zIDEyMS41QTM0Ny43NSAzNDcuNzUgMCAwMDE2MCA2MTBjMCA0Ny4yIDkuMyA5Mi45IDI3LjcgMTM2YTM0OS40IDM0OS40IDAgMDA3NS41IDExMC45YzMyLjQgMzIgNzAgNTcuMiAxMTEuOSA3NC43QzQxOC41IDk0OS44IDQ2NC41IDk1OSA1MTIgOTU5czkzLjUtOS4yIDEzNi45LTI3LjNBMzQ4LjYgMzQ4LjYgMCAwMDc2MC44IDg1N2MzMi40LTMyIDU3LjgtNjkuNCA3NS41LTExMC45YTM0NC4yIDM0NC4yIDAgMDAyNy43LTEzNmMwLTQ4LjgtMTAtOTYuMi0yOS45LTE0MC45eiJ9fV19LG5hbWU6ImZpcmUiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sMTI3NjQ6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTgzNC4xIDQ2OS4yQTM0Ny40OSAzNDcuNDkgMCAwMDc1MS4yIDM1NGwtMjkuMS0yNi43YTguMDkgOC4wOSAwIDAwLTEzIDMuM2wtMTMgMzcuM2MtOC4xIDIzLjQtMjMgNDcuMy00NC4xIDcwLjgtMS40IDEuNS0zIDEuOS00LjEgMi0xLjEuMS0yLjgtLjEtNC4zLTEuNS0xLjQtMS4yLTIuMS0zLTItNC44IDMuNy02MC4yLTE0LjMtMTI4LjEtNTMuNy0yMDJDNTU1LjMgMTcxIDUxMCAxMjMuMSA0NTMuNCA4OS43bC00MS4zLTI0LjNjLTUuNC0zLjItMTIuMyAxLTEyIDcuM2wyLjIgNDhjMS41IDMyLjgtMi4zIDYxLjgtMTEuMyA4NS45LTExIDI5LjUtMjYuOCA1Ni45LTQ3IDgxLjVhMjk1LjY0IDI5NS42NCAwIDAxLTQ3LjUgNDYuMSAzNTIuNiAzNTIuNiAwIDAwLTEwMC4zIDEyMS41QTM0Ny43NSAzNDcuNzUgMCAwMDE2MCA2MTBjMCA0Ny4yIDkuMyA5Mi45IDI3LjcgMTM2YTM0OS40IDM0OS40IDAgMDA3NS41IDExMC45YzMyLjQgMzIgNzAgNTcuMiAxMTEuOSA3NC43QzQxOC41IDk0OS44IDQ2NC41IDk1OSA1MTIgOTU5czkzLjUtOS4yIDEzNi45LTI3LjNBMzQ4LjYgMzQ4LjYgMCAwMDc2MC44IDg1N2MzMi40LTMyIDU3LjgtNjkuNCA3NS41LTExMC45YTM0NC4yIDM0NC4yIDAgMDAyNy43LTEzNmMwLTQ4LjgtMTAtOTYuMi0yOS45LTE0MC45ek03MTMgODA4LjVjLTUzLjcgNTMuMi0xMjUgODIuNC0yMDEgODIuNHMtMTQ3LjMtMjkuMi0yMDEtODIuNGMtNTMuNS01My4xLTgzLTEyMy41LTgzLTE5OC40IDAtNDMuNSA5LjgtODUuMiAyOS4xLTEyNCAxOC44LTM3LjkgNDYuOC03MS44IDgwLjgtOTcuOWEzNDkuNiAzNDkuNiAwIDAwNTguNi01Ni44YzI1LTMwLjUgNDQuNi02NC41IDU4LjItMTAxYTI0MCAyNDAgMCAwMDEyLjEtNDYuNWMyNC4xIDIyLjIgNDQuMyA0OSA2MS4yIDgwLjQgMzMuNCA2Mi42IDQ4LjggMTE4LjMgNDUuOCAxNjUuN2E3NC4wMSA3NC4wMSAwIDAwMjQuNCA1OS44IDczLjM2IDczLjM2IDAgMDA1My40IDE4LjhjMTkuNy0xIDM3LjgtOS43IDUxLTI0LjQgMTMuMy0xNC45IDI0LjgtMzAuMSAzNC40LTQ1LjYgMTQgMTcuOSAyNS43IDM3LjQgMzUgNTguNCAxNS45IDM1LjggMjQgNzMuOSAyNCAxMTMuMSAwIDc0LjktMjkuNSAxNDUuNC04MyAxOTguNHoifX1dfSxuYW1lOiJmaXJlIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNjU5MjE6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNzM3IDQzOC42Yy05LjYgMTUuNS0yMS4xIDMwLjctMzQuNCA0NS42YTczLjEgNzMuMSAwIDAxLTUxIDI0LjQgNzMuMzYgNzMuMzYgMCAwMS01My40LTE4LjggNzQuMDEgNzQuMDEgMCAwMS0yNC40LTU5LjhjMy00Ny40LTEyLjQtMTAzLjEtNDUuOC0xNjUuNy0xNi45LTMxLjQtMzcuMS01OC4yLTYxLjItODAuNGEyNDAgMjQwIDAgMDEtMTIuMSA0Ni41IDM1NC4yNiAzNTQuMjYgMCAwMS01OC4yIDEwMSAzNDkuNiAzNDkuNiAwIDAxLTU4LjYgNTYuOGMtMzQgMjYuMS02MiA2MC04MC44IDk3LjlhMjc1Ljk2IDI3NS45NiAwIDAwLTI5LjEgMTI0YzAgNzQuOSAyOS41IDE0NS4zIDgzIDE5OC40IDUzLjcgNTMuMiAxMjUgODIuNCAyMDEgODIuNHMxNDcuMy0yOS4yIDIwMS04Mi40YzUzLjUtNTMgODMtMTIzLjUgODMtMTk4LjQgMC0zOS4yLTguMS03Ny4zLTI0LTExMy4xLTkuMy0yMS0yMS00MC41LTM1LTU4LjR6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTgzNC4xIDQ2OS4yQTM0Ny40OSAzNDcuNDkgMCAwMDc1MS4yIDM1NGwtMjkuMS0yNi43YTguMDkgOC4wOSAwIDAwLTEzIDMuM2wtMTMgMzcuM2MtOC4xIDIzLjQtMjMgNDcuMy00NC4xIDcwLjgtMS40IDEuNS0zIDEuOS00LjEgMi0xLjEuMS0yLjgtLjEtNC4zLTEuNS0xLjQtMS4yLTIuMS0zLTItNC44IDMuNy02MC4yLTE0LjMtMTI4LjEtNTMuNy0yMDJDNTU1LjMgMTcxIDUxMCAxMjMuMSA0NTMuNCA4OS43bC00MS4zLTI0LjNjLTUuNC0zLjItMTIuMyAxLTEyIDcuM2wyLjIgNDhjMS41IDMyLjgtMi4zIDYxLjgtMTEuMyA4NS45LTExIDI5LjUtMjYuOCA1Ni45LTQ3IDgxLjVhMjk1LjY0IDI5NS42NCAwIDAxLTQ3LjUgNDYuMSAzNTIuNiAzNTIuNiAwIDAwLTEwMC4zIDEyMS41QTM0Ny43NSAzNDcuNzUgMCAwMDE2MCA2MTBjMCA0Ny4yIDkuMyA5Mi45IDI3LjcgMTM2YTM0OS40IDM0OS40IDAgMDA3NS41IDExMC45YzMyLjQgMzIgNzAgNTcuMiAxMTEuOSA3NC43QzQxOC41IDk0OS44IDQ2NC41IDk1OSA1MTIgOTU5czkzLjUtOS4yIDEzNi45LTI3LjNBMzQ4LjYgMzQ4LjYgMCAwMDc2MC44IDg1N2MzMi40LTMyIDU3LjgtNjkuNCA3NS41LTExMC45YTM0NC4yIDM0NC4yIDAgMDAyNy43LTEzNmMwLTQ4LjgtMTAtOTYuMi0yOS45LTE0MC45ek03MTMgODA4LjVjLTUzLjcgNTMuMi0xMjUgODIuNC0yMDEgODIuNHMtMTQ3LjMtMjkuMi0yMDEtODIuNGMtNTMuNS01My4xLTgzLTEyMy41LTgzLTE5OC40IDAtNDMuNSA5LjgtODUuMiAyOS4xLTEyNCAxOC44LTM3LjkgNDYuOC03MS44IDgwLjgtOTcuOWEzNDkuNiAzNDkuNiAwIDAwNTguNi01Ni44YzI1LTMwLjUgNDQuNi02NC41IDU4LjItMTAxYTI0MCAyNDAgMCAwMDEyLjEtNDYuNWMyNC4xIDIyLjIgNDQuMyA0OSA2MS4yIDgwLjQgMzMuNCA2Mi42IDQ4LjggMTE4LjMgNDUuOCAxNjUuN2E3NC4wMSA3NC4wMSAwIDAwMjQuNCA1OS44IDczLjM2IDczLjM2IDAgMDA1My40IDE4LjhjMTkuNy0xIDM3LjgtOS43IDUxLTI0LjQgMTMuMy0xNC45IDI0LjgtMzAuMSAzNC40LTQ1LjYgMTQgMTcuOSAyNS43IDM3LjQgMzUgNTguNCAxNS45IDM1LjggMjQgNzMuOSAyNCAxMTMuMSAwIDc0LjktMjkuNSAxNDUuNC04MyAxOTguNHoiLGZpbGw6YX19XX19LG5hbWU6ImZpcmUiLHRoZW1lOiJ0d290b25lIn07dC5kZWZhdWx0PWV9LDkwODA5OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMzA1SDYyNFYxOTJjMC0xNy43LTE0LjMtMzItMzItMzJIMTg0di00MGMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2Nzg0YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LThWNjQwaDI0OHYxMTNjMCAxNy43IDE0LjMgMzIgMzIgMzJoNDE2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMzN2MwLTE3LjctMTQuMy0zMi0zMi0zMnoifX1dfSxuYW1lOiJmbGFnIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDM3NTU6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAzMDVINjI0VjE5MmMwLTE3LjctMTQuMy0zMi0zMi0zMkgxODR2LTQwYzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY3ODRjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFY2NDBoMjQ4djExM2MwIDE3LjcgMTQuMyAzMiAzMiAzMmg0MTZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzM3YzAtMTcuNy0xNC4zLTMyLTMyLTMyek0xODQgNTY4VjIzMmgzNjh2MzM2SDE4NHptNjU2IDE0NUg1MDR2LTczaDExMmM0LjQgMCA4LTMuNiA4LThWMzc3aDIxNnYzMzZ6In19XX0sbmFtZToiZmxhZyIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDcwODcwOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOmZ1bmN0aW9uKGEsbil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTE4NCAyMzJoMzY4djMzNkgxODR6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTYyNCA2MzJjMCA0LjQtMy42IDgtOCA4SDUwNHY3M2gzMzZWMzc3SDYyNHYyNTV6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAzMDVINjI0VjE5MmMwLTE3LjctMTQuMy0zMi0zMi0zMkgxODR2LTQwYzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY3ODRjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFY2NDBoMjQ4djExM2MwIDE3LjcgMTQuMyAzMiAzMiAzMmg0MTZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzM3YzAtMTcuNy0xNC4zLTMyLTMyLTMyek0xODQgNTY4VjIzMmgzNjh2MzM2SDE4NHptNjU2IDE0NUg1MDR2LTczaDExMmM0LjQgMCA4LTMuNiA4LThWMzc3aDIxNnYzMzZ6IixmaWxsOmF9fV19fSxuYW1lOiJmbGFnIix0aGVtZToidHdvdG9uZSJ9O3QuZGVmYXVsdD1lfSw0NjM5ODpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDI5OC40SDUyMUw0MDMuNyAxODYuMmE4LjE1IDguMTUgMCAwMC01LjUtMi4ySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NTkyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYzMzAuNGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNjMyIDU3N2MwIDMuOC0zLjQgNy03LjUgN0g1NDB2ODQuOWMwIDMuOS0zLjIgNy4xLTcgNy4xaC00MmMtMy44IDAtNy0zLjItNy03LjFWNTg0aC04NC41Yy00LjEgMC03LjUtMy4yLTcuNS03di00MmMwLTMuOCAzLjQtNyA3LjUtN0g0ODR2LTg0LjljMC0zLjkgMy4yLTcuMSA3LTcuMWg0MmMzLjggMCA3IDMuMiA3IDcuMVY1MjhoODQuNWM0LjEgMCA3LjUgMy4yIDcuNSA3djQyeiJ9fV19LG5hbWU6ImZvbGRlci1hZGQiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sMzc3NDM6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQ4NCA0NDMuMVY1MjhoLTg0LjVjLTQuMSAwLTcuNSAzLjEtNy41IDd2NDJjMCAzLjggMy40IDcgNy41IDdINDg0djg0LjljMCAzLjkgMy4yIDcuMSA3IDcuMWg0MmMzLjkgMCA3LTMuMiA3LTcuMVY1ODRoODQuNWM0LjEgMCA3LjUtMy4yIDcuNS03di00MmMwLTMuOS0zLjQtNy03LjUtN0g1NDB2LTg0LjljMC0zLjktMy4xLTcuMS03LTcuMWgtNDJjLTMuOCAwLTcgMy4yLTcgNy4xem0zOTYtMTQ0LjdINTIxTDQwMy43IDE4Ni4yYTguMTUgOC4xNSAwIDAwLTUuNS0yLjJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY1OTJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMzMC40YzAtMTcuNy0xNC4zLTMyLTMyLTMyek04NDAgNzY4SDE4NFYyNTZoMTg4LjVsMTE5LjYgMTE0LjRIODQwVjc2OHoifX1dfSxuYW1lOiJmb2xkZXItYWRkIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNDM4MzU6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMzcyLjUgMjU2SDE4NHY1MTJoNjU2VjM3MC40SDQ5Mi4xTDM3Mi41IDI1NnpNNTQwIDQ0My4xVjUyOGg4NC41YzQuMSAwIDcuNSAzLjEgNy41IDd2NDJjMCAzLjgtMy40IDctNy41IDdINTQwdjg0LjljMCAzLjktMy4xIDcuMS03IDcuMWgtNDJjLTMuOCAwLTctMy4yLTctNy4xVjU4NGgtODQuNWMtNC4xIDAtNy41LTMuMi03LjUtN3YtNDJjMC0zLjkgMy40LTcgNy41LTdINDg0di04NC45YzAtMy45IDMuMi03LjEgNy03LjFoNDJjMy45IDAgNyAzLjIgNyA3LjF6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAyOTguNEg1MjFMNDAzLjcgMTg2LjJhOC4xNSA4LjE1IDAgMDAtNS41LTIuMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjU5MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzMwLjRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTg0MCA3NjhIMTg0VjI1NmgxODguNWwxMTkuNiAxMTQuNEg4NDBWNzY4eiIsZmlsbDphfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00ODQgNDQzLjFWNTI4aC04NC41Yy00LjEgMC03LjUgMy4xLTcuNSA3djQyYzAgMy44IDMuNCA3IDcuNSA3SDQ4NHY4NC45YzAgMy45IDMuMiA3LjEgNyA3LjFoNDJjMy45IDAgNy0zLjIgNy03LjFWNTg0aDg0LjVjNC4xIDAgNy41LTMuMiA3LjUtN3YtNDJjMC0zLjktMy40LTctNy41LTdINTQwdi04NC45YzAtMy45LTMuMS03LjEtNy03LjFoLTQyYy0zLjggMC03IDMuMi03IDcuMXoiLGZpbGw6YX19XX19LG5hbWU6ImZvbGRlci1hZGQiLHRoZW1lOiJ0d290b25lIn07dC5kZWZhdWx0PWV9LDkzMDYzOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMjk4LjRINTIxTDQwMy43IDE4Ni4yYTguMTUgOC4xNSAwIDAwLTUuNS0yLjJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY1OTJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMzMC40YzAtMTcuNy0xNC4zLTMyLTMyLTMyeiJ9fV19LG5hbWU6ImZvbGRlciIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSwzOTAyMjpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTI4IDQ0NEg4MjBWMzMwLjRjMC0xNy43LTE0LjMtMzItMzItMzJINDczTDM1NS43IDE4Ni4yYTguMTUgOC4xNSAwIDAwLTUuNS0yLjJIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjU5MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2OThjMTMgMCAyNC44LTcuOSAyOS43LTIwbDEzNC0zMzJjMS41LTMuOCAyLjMtNy45IDIuMy0xMiAwLTE3LjctMTQuMy0zMi0zMi0zMnptLTE4MCAwSDIzOGMtMTMgMC0yNC44IDcuOS0yOS43IDIwTDEzNiA2NDMuMlYyNTZoMTg4LjVsMTE5LjYgMTE0LjRINzQ4VjQ0NHoifX1dfSxuYW1lOiJmb2xkZXItb3BlbiIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSwxNjEyMDpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTI4IDQ0NEg4MjBWMzMwLjRjMC0xNy43LTE0LjMtMzItMzItMzJINDczTDM1NS43IDE4Ni4yYTguMTUgOC4xNSAwIDAwLTUuNS0yLjJIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjU5MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2OThjMTMgMCAyNC44LTcuOSAyOS43LTIwbDEzNC0zMzJjMS41LTMuOCAyLjMtNy45IDIuMy0xMiAwLTE3LjctMTQuMy0zMi0zMi0zMnpNMTM2IDI1NmgxODguNWwxMTkuNiAxMTQuNEg3NDhWNDQ0SDIzOGMtMTMgMC0yNC44IDcuOS0yOS43IDIwTDEzNiA2NDMuMlYyNTZ6bTYzNS4zIDUxMkgxNTlsMTAzLjMtMjU2aDYxMi40TDc3MS4zIDc2OHoifX1dfSxuYW1lOiJmb2xkZXItb3BlbiIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDIyODA1OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOmZ1bmN0aW9uKGEsbil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTE1OSA3NjhoNjEyLjNsMTAzLjQtMjU2SDI2Mi4zeiIsZmlsbDpufX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MjggNDQ0SDgyMFYzMzAuNGMwLTE3LjctMTQuMy0zMi0zMi0zMkg0NzNMMzU1LjcgMTg2LjJhOC4xNSA4LjE1IDAgMDAtNS41LTIuMkg5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NTkyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY5OGMxMyAwIDI0LjgtNy45IDI5LjctMjBsMTM0LTMzMmMxLjUtMy44IDIuMy03LjkgMi4zLTEyIDAtMTcuNy0xNC4zLTMyLTMyLTMyek0xMzYgMjU2aDE4OC41bDExOS42IDExNC40SDc0OFY0NDRIMjM4Yy0xMyAwLTI0LjggNy45LTI5LjcgMjBMMTM2IDY0My4yVjI1NnptNjM1LjMgNTEySDE1OWwxMDMuMy0yNTZoNjEyLjRMNzcxLjMgNzY4eiIsZmlsbDphfX1dfX0sbmFtZToiZm9sZGVyLW9wZW4iLHRoZW1lOiJ0d290b25lIn07dC5kZWZhdWx0PWV9LDQxOTczOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMjk4LjRINTIxTDQwMy43IDE4Ni4yYTguMTUgOC4xNSAwIDAwLTUuNS0yLjJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY1OTJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMzMC40YzAtMTcuNy0xNC4zLTMyLTMyLTMyek04NDAgNzY4SDE4NFYyNTZoMTg4LjVsMTE5LjYgMTE0LjRIODQwVjc2OHoifX1dfSxuYW1lOiJmb2xkZXIiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw1MTU0MTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjpmdW5jdGlvbihhLG4pe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMjk4LjRINTIxTDQwMy43IDE4Ni4yYTguMTUgOC4xNSAwIDAwLTUuNS0yLjJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY1OTJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMzMC40YzAtMTcuNy0xNC4zLTMyLTMyLTMyek04NDAgNzY4SDE4NFYyNTZoMTg4LjVsMTE5LjYgMTE0LjRIODQwVjc2OHoiLGZpbGw6YX19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMzcyLjUgMjU2SDE4NHY1MTJoNjU2VjM3MC40SDQ5Mi4xeiIsZmlsbDpufX1dfX0sbmFtZToiZm9sZGVyIix0aGVtZToidHdvdG9uZSJ9O3QuZGVmYXVsdD1lfSw3Njk4NjpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6ImRlZnMiLGF0dHJzOnt9LGNoaWxkcmVuOlt7dGFnOiJzdHlsZSIsYXR0cnM6e319XX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0zMDkuMSA1NTQuM2E0Mi45MiA0Mi45MiAwIDAwMCAzNi40QzM1My4zIDY4NCA0MjEuNiA3MzIgNTEyLjUgNzMyczE1OS4yLTQ4LjEgMjAzLjQtMTQxLjNjNS40LTExLjUgNS40LTI0LjguMS0zNi4zbC0uMS0uMS0uMS0uMUM2NzEuNyA0NjEgNjAzLjQgNDEzIDUxMi41IDQxM3MtMTU5LjIgNDguMS0yMDMuNCAxNDEuM3pNNTEyLjUgNDc3YzYyLjEgMCAxMDcuNCAzMCAxNDEuMSA5NS41QzYyMCA2MzggNTc0LjYgNjY4IDUxMi41IDY2OHMtMTA3LjQtMzAtMTQxLjEtOTUuNWMzMy43LTY1LjUgNzktOTUuNSAxNDEuMS05NS41eiJ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQ1NyA1NzNhNTYgNTYgMCAxMDExMiAwIDU2IDU2IDAgMTAtMTEyIDB6In19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDI5OC40SDUyMUw0MDMuNyAxODYuMmE4LjE1IDguMTUgMCAwMC01LjUtMi4ySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NTkyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYzMzAuNGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNODQwIDc2OEgxODRWMjU2aDE4OC41bDExOS42IDExNC40SDg0MFY3Njh6In19XX0sbmFtZToiZm9sZGVyLXZpZXciLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw5NjU4NTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTA0IDgxNkgxMjBjLTQuNCAwLTggMy42LTggOHY4MGMwIDQuNCAzLjYgOCA4IDhoNzg0YzQuNCAwIDgtMy42IDgtOHYtODBjMC00LjQtMy42LTgtOC04em0tNjUwLjMtODBoODVjNC4yIDAgOC0yLjcgOS4zLTYuOGw1My43LTE2NmgyMTkuMmw1My4yIDE2NmMxLjMgNCA1IDYuOCA5LjMgNi44aDg5LjFjMS4xIDAgMi4yLS4yIDMuMi0uNWE5LjcgOS43IDAgMDA2LTEyLjRMNTczLjYgMTE4LjZhOS45IDkuOSAwIDAwLTkuMi02LjZINDYyLjFjLTQuMiAwLTcuOSAyLjYtOS4yIDYuNkwyNDQuNSA3MjMuMWMtLjQgMS0uNSAyLjEtLjUgMy4yLS4xIDUuMyA0LjMgOS43IDkuNyA5Ljd6bTI1NS45LTUxNi4xaDQuMWw4My44IDI2My44SDQyNC45bDg0LjctMjYzLjh6In19XX0sbmFtZToiZm9udC1jb2xvcnMiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw3NDg2MzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTIwIDQxNkg2MTZjLTQuNCAwLTggMy42LTggOHYxMTJjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOHYtNTZoNjB2MzIwaC00NmMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgxNjRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThoLTQ2VjQ4MGg2MHY1NmMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04VjQyNGMwLTQuNC0zLjYtOC04LTh6TTY1NiAyOTZWMTY4YzAtNC40LTMuNi04LTgtOEgxMDRjLTQuNCAwLTggMy42LTggOHYxMjhjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNjRoMTY4djU2MGgtOTJjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoMjY0YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC05MlYyMzJoMTY4djY0YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh6In19XX0sbmFtZToiZm9udC1zaXplIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNjQ2MjM6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTc1MiAxMDBjLTYxLjggMC0xMTIgNTAuMi0xMTIgMTEyIDAgNDcuNyAyOS45IDg4LjUgNzIgMTA0LjZ2MjcuNkw1MTIgNjAxLjQgMzEyIDM0NC4ydi0yNy42YzQyLjEtMTYuMSA3Mi01Ni45IDcyLTEwNC42IDAtNjEuOC01MC4yLTExMi0xMTItMTEycy0xMTIgNTAuMi0xMTIgMTEyYzAgNTAuNiAzMy44IDkzLjUgODAgMTA3LjN2MzQuNGMwIDkuNyAzLjMgMTkuMyA5LjMgMjdMNDc2IDY3Mi4zdjMzLjZjLTQ0LjIgMTUtNzYgNTYuOS03NiAxMDYuMSAwIDYxLjggNTAuMiAxMTIgMTEyIDExMnMxMTItNTAuMiAxMTItMTEyYzAtNDkuMi0zMS44LTkxLTc2LTEwNi4xdi0zMy42bDIyNi43LTI5MS42YzYtNy43IDkuMy0xNy4zIDkuMy0yN3YtMzQuNGM0Ni4yLTEzLjggODAtNTYuNyA4MC0xMDcuMyAwLTYxLjgtNTAuMi0xMTItMTEyLTExMnpNMjI0IDIxMmE0OC4wMSA0OC4wMSAwIDAxOTYgMCA0OC4wMSA0OC4wMSAwIDAxLTk2IDB6bTMzNiA2MDBhNDguMDEgNDguMDEgMCAwMS05NiAwIDQ4LjAxIDQ4LjAxIDAgMDE5NiAwem0xOTItNTUyYTQ4LjAxIDQ4LjAxIDAgMDEwLTk2IDQ4LjAxIDQ4LjAxIDAgMDEwIDk2eiJ9fV19LG5hbWU6ImZvcmsiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw0MTk1NDpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTA0IDUxMmgtNTZjLTQuNCAwLTggMy42LTggOHYzMjBIMTg0VjE4NGgzMjBjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjUyMGMwLTQuNC0zLjYtOC04LTh6In19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMzU1LjkgNTM0LjlMMzU0IDY1My44Yy0uMSA4LjkgNy4xIDE2LjIgMTYgMTYuMmguNGwxMTgtMi45YzItLjEgNC0uOSA1LjQtMi4zbDQxNS45LTQxNWMzLjEtMy4xIDMuMS04LjIgMC0xMS4zTDc4NS40IDExNC4zYy0xLjYtMS42LTMuNi0yLjMtNS43LTIuM3MtNC4xLjgtNS43IDIuM2wtNDE1LjggNDE1YTguMyA4LjMgMCAwMC0yLjMgNS42em02My41IDIzLjZMNzc5LjcgMTk5bDQ1LjIgNDUuMS0zNjAuNSAzNTkuNy00NS43IDEuMS43LTQ2LjR6In19XX0sbmFtZToiZm9ybSIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDMzMTI2OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoiZGVmcyIsYXR0cnM6e30sY2hpbGRyZW46W3t0YWc6InN0eWxlIixhdHRyczp7fX1dfSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg0MCAxOTJoLTU2di03MmMwLTEzLjMtMTAuNy0yNC0yNC0yNEgxNjhjLTEzLjMgMC0yNCAxMC43LTI0IDI0djI3MmMwIDEzLjMgMTAuNyAyNCAyNCAyNGg1OTJjMTMuMyAwIDI0LTEwLjcgMjQtMjRWMjU2aDMydjIwMEg0NjVjLTIyLjEgMC00MCAxNy45LTQwIDQwdjEzNmgtNDRjLTQuNCAwLTggMy42LTggOHYyMjhjMCAxLjEuMiAyLjIuNiAzLjEtLjQgMS42LS42IDMuMi0uNiA0LjkgMCA0Ni40IDM3LjYgODQgODQgODRzODQtMzcuNiA4NC04NGMwLTEuNy0uMi0zLjMtLjYtNC45LjQtMSAuNi0yIC42LTMuMVY2NDBjMC00LjQtMy42LTgtOC04aC00NFY1MjBoMzUxYzIyLjEgMCA0MC0xNy45IDQwLTQwVjIzMmMwLTIyLjEtMTcuOS00MC00MC00MHoifX1dfSxuYW1lOiJmb3JtYXQtcGFpbnRlciIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw1MTQ0MzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6ImRlZnMiLGF0dHJzOnt9LGNoaWxkcmVuOlt7dGFnOiJzdHlsZSIsYXR0cnM6e319XX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NDAgMTkyaC01NnYtNzJjMC0xMy4zLTEwLjctMjQtMjQtMjRIMTY4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHYyNzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRoNTkyYzEzLjMgMCAyNC0xMC43IDI0LTI0VjI1NmgzMnYyMDBINDY1Yy0yMi4xIDAtNDAgMTcuOS00MCA0MHYxMzZoLTQ0Yy00LjQgMC04IDMuNi04IDh2MjI4YzAgLjYuMSAxLjMuMiAxLjlBODMuOTkgODMuOTkgMCAwMDQ1NyA5NjBjNDYuNCAwIDg0LTM3LjYgODQtODQgMC0yLjEtLjEtNC4xLS4yLTYuMS4xLS42LjItMS4yLjItMS45VjY0MGMwLTQuNC0zLjYtOC04LThoLTQ0VjUyMGgzNTFjMjIuMSAwIDQwLTE3LjkgNDAtNDBWMjMyYzAtMjIuMS0xNy45LTQwLTQwLTQwek03MjAgMzUySDIwOFYxNjBoNTEydjE5MnpNNDc3IDg3NmMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBWNjk2aDQwdjE4MHoifX1dfSxuYW1lOiJmb3JtYXQtcGFpbnRlciIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDI2OTY3OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjAgMCAxMDI0IDEwMjQiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04MjUuOCA0OThMNTM4LjQgMjQ5LjljLTEwLjctOS4yLTI2LjQtLjktMjYuNCAxNHY0OTYuM2MwIDE0LjkgMTUuNyAyMy4yIDI2LjQgMTRMODI1LjggNTI2YzguMy03LjIgOC4zLTIwLjggMC0yOHptLTMyMCAwTDIxOC40IDI0OS45Yy0xMC43LTkuMi0yNi40LS45LTI2LjQgMTR2NDk2LjNjMCAxNC45IDE1LjcgMjMuMiAyNi40IDE0TDUwNS44IDUyNmM0LjEtMy42IDYuMi04LjggNi4yLTE0IDAtNS4yLTIuMS0xMC40LTYuMi0xNHoifX1dfSxuYW1lOiJmb3J3YXJkIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDQwMTA5OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjAgMCAxMDI0IDEwMjQiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04MjUuOCA0OThMNTM4LjQgMjQ5LjljLTEwLjctOS4yLTI2LjQtLjktMjYuNCAxNHY0OTYuM2MwIDE0LjkgMTUuNyAyMy4yIDI2LjQgMTRMODI1LjggNTI2YzguMy03LjIgOC4zLTIwLjggMC0yOHptLTMyMCAwTDIxOC40IDI0OS45Yy0xMC43LTkuMi0yNi40LS45LTI2LjQgMTR2NDk2LjNjMCAxNC45IDE1LjcgMjMuMiAyNi40IDE0TDUwNS44IDUyNmM0LjEtMy42IDYuMi04LjggNi4yLTE0IDAtNS4yLTIuMS0xMC40LTYuMi0xNHoifX1dfSxuYW1lOiJmb3J3YXJkIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sODM2NDU6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0ek0yODggNDIxYTQ4LjAxIDQ4LjAxIDAgMDE5NiAwIDQ4LjAxIDQ4LjAxIDAgMDEtOTYgMHptMzc2IDI3MmgtNDguMWMtNC4yIDAtNy44LTMuMi04LjEtNy40QzYwNCA2MzYuMSA1NjIuNSA1OTcgNTEyIDU5N3MtOTIuMSAzOS4xLTk1LjggODguNmMtLjMgNC4yLTMuOSA3LjQtOC4xIDcuNEgzNjBhOCA4IDAgMDEtOC04LjRjNC40LTg0LjMgNzQuNS0xNTEuNiAxNjAtMTUxLjZzMTU1LjYgNjcuMyAxNjAgMTUxLjZhOCA4IDAgMDEtOCA4LjR6bTI0LTIyNGE0OC4wMSA0OC4wMSAwIDAxMC05NiA0OC4wMSA0OC4wMSAwIDAxMCA5NnoifX1dfSxuYW1lOiJmcm93biIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw1NDQ1OTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMjg4IDQyMWE0OCA0OCAwIDEwOTYgMCA0OCA0OCAwIDEwLTk2IDB6bTM1MiAwYTQ4IDQ4IDAgMTA5NiAwIDQ4IDQ4IDAgMTAtOTYgMHpNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTI2MyA3MTFjLTM0LjIgMzQuMi03NCA2MS0xMTguMyA3OS44QzYxMSA4NzQuMiA1NjIuMyA4ODQgNTEyIDg4NGMtNTAuMyAwLTk5LTkuOC0xNDQuOC0yOS4yQTM3MC40IDM3MC40IDAgMDEyNDguOSA3NzVjLTM0LjItMzQuMi02MS03NC03OS44LTExOC4zQzE0OS44IDYxMSAxNDAgNTYyLjMgMTQwIDUxMnM5LjgtOTkgMjkuMi0xNDQuOEEzNzAuNCAzNzAuNCAwIDAxMjQ5IDI0OC45YzM0LjItMzQuMiA3NC02MSAxMTguMy03OS44QzQxMyAxNDkuOCA0NjEuNyAxNDAgNTEyIDE0MGM1MC4zIDAgOTkgOS44IDE0NC44IDI5LjJBMzcwLjQgMzcwLjQgMCAwMTc3NS4xIDI0OWMzNC4yIDM0LjIgNjEgNzQgNzkuOCAxMTguM0M4NzQuMiA0MTMgODg0IDQ2MS43IDg4NCA1MTJzLTkuOCA5OS0yOS4yIDE0NC44QTM2OC44OSAzNjguODkgMCAwMTc3NSA3NzV6TTUxMiA1MzNjLTg1LjUgMC0xNTUuNiA2Ny4zLTE2MCAxNTEuNmE4IDggMCAwMDggOC40aDQ4LjFjNC4yIDAgNy44LTMuMiA4LjEtNy40QzQyMCA2MzYuMSA0NjEuNSA1OTcgNTEyIDU5N3M5Mi4xIDM5LjEgOTUuOCA4OC42Yy4zIDQuMiAzLjkgNy40IDguMSA3LjRINjY0YTggOCAwIDAwOC04LjRDNjY3LjYgNjAwLjMgNTk3LjUgNTMzIDUxMiA1MzN6In19XX0sbmFtZToiZnJvd24iLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw3MjUyMzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjpmdW5jdGlvbihhLG4pe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6IixmaWxsOmF9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiAxNDBjLTIwNS40IDAtMzcyIDE2Ni42LTM3MiAzNzJzMTY2LjYgMzcyIDM3MiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzItMTY2LjYtMzcyLTM3Mi0zNzJ6TTI4OCA0MjFhNDguMDEgNDguMDEgMCAwMTk2IDAgNDguMDEgNDguMDEgMCAwMS05NiAwem0zNzYgMjcyaC00OC4xYy00LjIgMC03LjgtMy4yLTguMS03LjRDNjA0IDYzNi4xIDU2Mi41IDU5NyA1MTIgNTk3cy05Mi4xIDM5LjEtOTUuOCA4OC42Yy0uMyA0LjItMy45IDcuNC04LjEgNy40SDM2MGE4IDggMCAwMS04LTguNGM0LjQtODQuMyA3NC41LTE1MS42IDE2MC0xNTEuNnMxNTUuNiA2Ny4zIDE2MCAxNTEuNmE4IDggMCAwMS04IDguNHptMjQtMjI0YTQ4LjAxIDQ4LjAxIDAgMDEwLTk2IDQ4LjAxIDQ4LjAxIDAgMDEwIDk2eiIsZmlsbDpufX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0yODggNDIxYTQ4IDQ4IDAgMTA5NiAwIDQ4IDQ4IDAgMTAtOTYgMHptMjI0IDExMmMtODUuNSAwLTE1NS42IDY3LjMtMTYwIDE1MS42YTggOCAwIDAwOCA4LjRoNDguMWM0LjIgMCA3LjgtMy4yIDguMS03LjQgMy43LTQ5LjUgNDUuMy04OC42IDk1LjgtODguNnM5MiAzOS4xIDk1LjggODguNmMuMyA0LjIgMy45IDcuNCA4LjEgNy40SDY2NGE4IDggMCAwMDgtOC40QzY2Ny42IDYwMC4zIDU5Ny41IDUzMyA1MTIgNTMzem0xMjgtMTEyYTQ4IDQ4IDAgMTA5NiAwIDQ4IDQ4IDAgMTAtOTYgMHoiLGZpbGw6YX19XX19LG5hbWU6ImZyb3duIix0aGVtZToidHdvdG9uZSJ9O3QuZGVmYXVsdD1lfSw5MzUyMDpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMzkxIDI0MC45Yy0uOC02LjYtOC45LTkuNC0xMy42LTQuN2wtNDMuNyA0My43TDIwMCAxNDYuM2E4LjAzIDguMDMgMCAwMC0xMS4zIDBsLTQyLjQgNDIuM2E4LjAzIDguMDMgMCAwMDAgMTEuM0wyODAgMzMzLjZsLTQzLjkgNDMuOWE4LjAxIDguMDEgMCAwMDQuNyAxMy42TDQwMSA0MTBjNS4xLjYgOS41LTMuNyA4LjktOC45TDM5MSAyNDAuOXptMTAuMSAzNzMuMkwyNDAuOCA2MzNjLTYuNi44LTkuNCA4LjktNC43IDEzLjZsNDMuOSA0My45TDE0Ni4zIDgyNGE4LjAzIDguMDMgMCAwMDAgMTEuM2w0Mi40IDQyLjNjMy4xIDMuMSA4LjIgMy4xIDExLjMgMEwzMzMuNyA3NDRsNDMuNyA0My43QTguMDEgOC4wMSAwIDAwMzkxIDc4M2wxOC45LTE2MC4xYy42LTUuMS0zLjctOS40LTguOC04Ljh6bTIyMS44LTIwNC4yTDc4My4yIDM5MWM2LjYtLjggOS40LTguOSA0LjctMTMuNkw3NDQgMzMzLjYgODc3LjcgMjAwYzMuMS0zLjEgMy4xLTguMiAwLTExLjNsLTQyLjQtNDIuM2E4LjAzIDguMDMgMCAwMC0xMS4zIDBMNjkwLjMgMjc5LjlsLTQzLjctNDMuN2E4LjAxIDguMDEgMCAwMC0xMy42IDQuN0w2MTQuMSA0MDFjLS42IDUuMiAzLjcgOS41IDguOCA4Ljl6TTc0NCA2OTAuNGw0My45LTQzLjlhOC4wMSA4LjAxIDAgMDAtNC43LTEzLjZMNjIzIDYxNGMtNS4xLS42LTkuNSAzLjctOC45IDguOUw2MzMgNzgzLjFjLjggNi42IDguOSA5LjQgMTMuNiA0LjdsNDMuNy00My43TDgyNCA4NzcuN2MzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDQyLjQtNDIuM2MzLjEtMy4xIDMuMS04LjIgMC0xMS4zTDc0NCA2OTAuNHoifX1dfSxuYW1lOiJmdWxsc2NyZWVuLWV4aXQiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw4OTU5NzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMjkwIDIzNi40bDQzLjktNDMuOWE4LjAxIDguMDEgMCAwMC00LjctMTMuNkwxNjkgMTYwYy01LjEtLjYtOS41IDMuNy04LjkgOC45TDE3OSAzMjkuMWMuOCA2LjYgOC45IDkuNCAxMy42IDQuN2w0My43LTQzLjdMMzcwIDQyMy43YzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBsNDIuNC00Mi4zYzMuMS0zLjEgMy4xLTguMiAwLTExLjNMMjkwIDIzNi40em0zNTIuNyAxODcuM2MzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDEzMy43LTEzMy42IDQzLjcgNDMuN2E4LjAxIDguMDEgMCAwMDEzLjYtNC43TDg2My45IDE2OWMuNi01LjEtMy43LTkuNS04LjktOC45TDY5NC44IDE3OWMtNi42LjgtOS40IDguOS00LjcgMTMuNmw0My45IDQzLjlMNjAwLjMgMzcwYTguMDMgOC4wMyAwIDAwMCAxMS4zbDQyLjQgNDIuNHpNODQ1IDY5NC45Yy0uOC02LjYtOC45LTkuNC0xMy42LTQuN2wtNDMuNyA0My43TDY1NCA2MDAuM2E4LjAzIDguMDMgMCAwMC0xMS4zIDBsLTQyLjQgNDIuM2E4LjAzIDguMDMgMCAwMDAgMTEuM0w3MzQgNzg3LjZsLTQzLjkgNDMuOWE4LjAxIDguMDEgMCAwMDQuNyAxMy42TDg1NSA4NjRjNS4xLjYgOS41LTMuNyA4LjktOC45TDg0NSA2OTQuOXptLTQ2My43LTk0LjZhOC4wMyA4LjAzIDAgMDAtMTEuMyAwTDIzNi4zIDczMy45bC00My43LTQzLjdhOC4wMSA4LjAxIDAgMDAtMTMuNiA0LjdMMTYwLjEgODU1Yy0uNiA1LjEgMy43IDkuNSA4LjkgOC45TDMyOS4yIDg0NWM2LjYtLjggOS40LTguOSA0LjctMTMuNkwyOTAgNzg3LjYgNDIzLjcgNjU0YzMuMS0zLjEgMy4xLTguMiAwLTExLjNsLTQyLjQtNDIuNHoifX1dfSxuYW1lOiJmdWxsc2NyZWVuIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNzA0OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoiZGVmcyIsYXR0cnM6e30sY2hpbGRyZW46W3t0YWc6InN0eWxlIixhdHRyczp7fX1dfSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg0MSAzNzBjMy0zLjMgMi43LTguMy0uNi0xMS4zYTguMjQgOC4yNCAwIDAwLTUuMy0yLjFoLTcyLjZjLTIuNCAwLTQuNiAxLTYuMSAyLjhMNjMzLjUgNTA0LjZhNy45NiA3Ljk2IDAgMDEtMTMuNC0xLjlsLTYzLjUtMTQxLjNhNy45IDcuOSAwIDAwLTcuMy00LjdIMzgwLjdsLjktNC43IDgtNDIuM2MxMC41LTU1LjQgMzgtODEuNCA4NS44LTgxLjQgMTguNiAwIDM1LjUgMS43IDQ4LjggNC43bDE0LjEtNjYuOGMtMjIuNi00LjctMzUuMi02LjEtNTQuOS02LjEtMTAzLjMgMC0xNTYuNCA0NC4zLTE3NS45IDE0Ny4zbC05LjQgNDkuNGgtOTcuNmMtMy44IDAtNy4xIDIuNy03LjggNi40TDE4MS45IDQxNWE4LjA3IDguMDcgMCAwMDcuOCA5LjdIMjg0bC04OSA0MjkuOWE4LjA3IDguMDcgMCAwMDcuOCA5LjdIMjY5YzMuOCAwIDcuMS0yLjcgNy44LTYuNGw4OS43LTQzMy4xaDEzNS44bDY4LjIgMTM5LjFjMS40IDIuOSAxIDYuNC0xLjIgOC44bC0xODAuNiAyMDNjLTIuOSAzLjMtMi42IDguNC43IDExLjMgMS41IDEuMyAzLjQgMiA1LjMgMmg3Mi43YzIuNCAwIDQuNi0xIDYuMS0yLjhsMTIzLjctMTQ2LjdjMi44LTMuNCA3LjktMy44IDExLjMtMSAuOS44IDEuNiAxLjcgMi4xIDIuOEw2NzYuNCA3ODRjMS4zIDIuOCA0LjEgNC43IDcuMyA0LjdoNjQuNmE4LjAyIDguMDIgMCAwMDcuMi0xMS41bC05NS4yLTE5OC45Yy0xLjQtMi45LS45LTYuNCAxLjMtOC44TDg0MSAzNzB6In19XX0sbmFtZToiZnVuY3Rpb24iLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw3Njk2OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MjYgMTY0SDk0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY2NDBjMCAxNy43IDE0LjMgMzIgMzIgMzJoODMyYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE5NmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTkyLjMgMTk0LjRsLTI5NyAyOTcuMmE4LjAzIDguMDMgMCAwMS0xMS4zIDBMNDEwLjkgNTQxLjEgMjM4LjQgNzEzLjdhOC4wMyA4LjAzIDAgMDEtMTEuMyAwbC0zNi44LTM2LjhhOC4wMyA4LjAzIDAgMDEwLTExLjNsMjE0LjktMjE1YzMuMS0zLjEgOC4yLTMuMSAxMS4zIDBMNTMxIDU2NWwyNTQuNS0yNTQuNmMzLjEtMy4xIDguMi0zLjEgMTEuMyAwbDM2LjggMzYuOGMzLjIgMyAzLjIgOC4xLjEgMTEuMnoifX1dfSxuYW1lOiJmdW5kIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDkyODI3OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MjYgMTY0SDk0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY2NDBjMCAxNy43IDE0LjMgMzIgMzIgMzJoODMyYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE5NmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDYzMkgxMzRWMjM2aDc1MnY1NjB6bS02NTguOS04Mi4zYzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBsMTcyLjUtMTcyLjUgMTE0LjQgMTE0LjVjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGwyOTctMjk3LjJjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM2wtMzYuOC0zNi44YTguMDMgOC4wMyAwIDAwLTExLjMgMEw1MzEgNTY1IDQxNi42IDQ1MC41YTguMDMgOC4wMyAwIDAwLTExLjMgMGwtMjE0LjkgMjE1YTguMDMgOC4wMyAwIDAwMCAxMS4zbDM2LjcgMzYuOXoifX1dfSxuYW1lOiJmdW5kIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sODU2OTc6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJkZWZzIixhdHRyczp7fSxjaGlsZHJlbjpbe3RhZzoic3R5bGUiLGF0dHJzOnt9fV19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMzEyLjEgNTkxLjVjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGwxMDEuOC0xMDEuOCA4Ni4xIDg2LjJjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGwyMjYuMy0yMjYuNWMzLjEtMy4xIDMuMS04LjIgMC0xMS4zbC0zNi44LTM2LjhhOC4wMyA4LjAzIDAgMDAtMTEuMyAwTDUxNyA0ODUuM2wtODYuMS04Ni4yYTguMDMgOC4wMyAwIDAwLTExLjMgMEwyNzUuMyA1NDMuNGE4LjAzIDguMDMgMCAwMDAgMTEuM2wzNi44IDM2Ljh6In19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNOTA0IDE2MEg1NDhWOTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djY0SDEyMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NTIwYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDM1Ni40djMyTDMxMS42IDg4NC4xYTcuOTIgNy45MiAwIDAwLTIuMyAxMWwzMC4zIDQ3LjJ2LjFjMi40IDMuNyA3LjQgNC43IDExLjEgMi4zTDUxMiA4MzguOWwxNjEuMyAxMDUuOGMzLjcgMi40IDguNyAxLjQgMTEuMS0yLjN2LS4xbDMwLjMtNDcuMmE4IDggMCAwMC0yLjMtMTFMNTQ4IDc3Ni4zVjc0NGgzNTZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNTEySDE2MFYyMzJoNzA0djQ0MHoifX1dfSxuYW1lOiJmdW5kLXByb2plY3Rpb24tc2NyZWVuIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNzAyNTA6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTI4IDE2MEg5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjQwYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDgzMmMxNy43IDAgMzItMTQuMyAzMi0zMlYxOTJjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA2MzJIMTM2VjIzMmg3NTJ2NTYweiIsZmlsbDphfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0xMzYgNzkyaDc1MlYyMzJIMTM2djU2MHptNTYuNC0xMzAuNWwyMTQuOS0yMTVjMy4xLTMuMSA4LjItMy4xIDExLjMgMEw1MzMgNTYxbDI1NC41LTI1NC42YzMuMS0zLjEgOC4yLTMuMSAxMS4zIDBsMzYuOCAzNi44YzMuMSAzLjEgMy4xIDguMiAwIDExLjNsLTI5NyAyOTcuMmE4LjAzIDguMDMgMCAwMS0xMS4zIDBMNDEyLjkgNTM3LjIgMjQwLjQgNzA5LjdhOC4wMyA4LjAzIDAgMDEtMTEuMyAwbC0zNi43LTM2LjlhOC4wMyA4LjAzIDAgMDEwLTExLjN6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTIyOS4xIDcwOS43YzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBsMTcyLjUtMTcyLjUgMTE0LjQgMTE0LjVjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGwyOTctMjk3LjJjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM2wtMzYuOC0zNi44YTguMDMgOC4wMyAwIDAwLTExLjMgMEw1MzMgNTYxIDQxOC42IDQ0Ni41YTguMDMgOC4wMyAwIDAwLTExLjMgMGwtMjE0LjkgMjE1YTguMDMgOC4wMyAwIDAwMCAxMS4zbDM2LjcgMzYuOXoiLGZpbGw6YX19XX19LG5hbWU6ImZ1bmQiLHRoZW1lOiJ0d290b25lIn07dC5kZWZhdWx0PWV9LDU5NjA2OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoiZGVmcyIsYXR0cnM6e30sY2hpbGRyZW46W3t0YWc6InN0eWxlIixhdHRyczp7fX1dfSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTk1NiA2ODYuNWwtLjEtLjEtLjEtLjFDOTExLjcgNTkzIDg0My40IDU0NSA3NTIuNSA1NDVzLTE1OS4yIDQ4LjEtMjAzLjQgMTQxLjN2LjFhNDIuOTIgNDIuOTIgMCAwMDAgMzYuNEM1OTMuMyA4MTYgNjYxLjYgODY0IDc1Mi41IDg2NHMxNTkuMi00OC4xIDIwMy40LTE0MS4zYzUuNC0xMS41IDUuNC0yNC44LjEtMzYuMnpNNzUyLjUgODAwYy02Mi4xIDAtMTA3LjQtMzAtMTQxLjEtOTUuNUM2NDUgNjM5IDY5MC40IDYwOSA3NTIuNSA2MDljNjIuMSAwIDEwNy40IDMwIDE0MS4xIDk1LjVDODYwIDc3MCA4MTQuNiA4MDAgNzUyLjUgODAweiJ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTY5NyA3MDVhNTYgNTYgMCAxMDExMiAwIDU2IDU2IDAgMTAtMTEyIDB6TTEzNiAyMzJoNzA0djI1M2g3MlYxOTJjMC0xNy43LTE0LjMtMzItMzItMzJIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjUyMGMwIDE3LjcgMTQuMyAzMiAzMiAzMmgzNTJ2LTcySDEzNlYyMzJ6In19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNzI0LjkgMzM4LjFsLTM2LjgtMzYuOGE4LjAzIDguMDMgMCAwMC0xMS4zIDBMNDkzIDQ4NS4zbC04Ni4xLTg2LjJhOC4wMyA4LjAzIDAgMDAtMTEuMyAwTDI1MS4zIDU0My40YTguMDMgOC4wMyAwIDAwMCAxMS4zbDM2LjggMzYuOGMzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDEwMS44LTEwMS44IDg2LjEgODYuMmMzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDIyNi4zLTIyNi41YzMuMi0zLjEgMy4yLTguMiAwLTExLjN6In19XX0sbmFtZToiZnVuZC12aWV3Iix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNjI5NTA6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTMzNi43IDU4NmgzNTAuNmw4NC45LTE0OEgyNTEuOHptNTQzLjQtNDMySDE0My45Yy0yNC41IDAtMzkuOCAyNi43LTI3LjUgNDhMMjE1IDM3NGg1OTRsOTguNy0xNzJjMTIuMi0yMS4zLTMuMS00OC0yNy42LTQ4ek0zNDkgODM4YzAgMTcuNyAxNC4yIDMyIDMxLjggMzJoMjYyLjRjMTcuNiAwIDMxLjgtMTQuMyAzMS44LTMyVjY1MEgzNDl2MTg4eiJ9fV19LG5hbWU6ImZ1bm5lbC1wbG90Iix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDE3NDM0OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAuMSAxNTRIMTQzLjljLTI0LjUgMC0zOS44IDI2LjctMjcuNSA0OEwzNDkgNjA3LjRWODM4YzAgMTcuNyAxNC4yIDMyIDMxLjggMzJoMjYyLjRjMTcuNiAwIDMxLjgtMTQuMyAzMS44LTMyVjYwNy40TDkwNy43IDIwMmMxMi4yLTIxLjMtMy4xLTQ4LTI3LjYtNDh6TTYwMy40IDc5OEg0MjAuNlY2NTBoMTgyLjl2MTQ4em05LjYtMjI2LjZsLTguNCAxNC42SDQxOS4zbC04LjQtMTQuNkwzMzQuNCA0MzhoMzU1LjJMNjEzIDU3MS40ek03MjYuMyAzNzRIMjk3LjdsLTg1LTE0OGg1OTguNmwtODUgMTQ4eiJ9fV19LG5hbWU6ImZ1bm5lbC1wbG90Iix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sMTMyNTg6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNDIwLjYgNzk4aDE4Mi45VjY1MEg0MjAuNnpNMjk3LjcgMzc0aDQyOC42bDg1LTE0OEgyMTIuN3ptMTEzLjIgMTk3LjRsOC40IDE0LjZoMTg1LjNsOC40LTE0LjZMNjg5LjYgNDM4SDMzNC40eiIsZmlsbDpufX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAuMSAxNTRIMTQzLjljLTI0LjUgMC0zOS44IDI2LjctMjcuNSA0OEwzNDkgNjA3LjRWODM4YzAgMTcuNyAxNC4yIDMyIDMxLjggMzJoMjYyLjRjMTcuNiAwIDMxLjgtMTQuMyAzMS44LTMyVjYwNy40TDkwNy43IDIwMmMxMi4yLTIxLjMtMy4xLTQ4LTI3LjYtNDh6TTYwMy41IDc5OEg0MjAuNlY2NTBoMTgyLjl2MTQ4em05LjUtMjI2LjZsLTguNCAxNC42SDQxOS4zbC04LjQtMTQuNkwzMzQuNCA0MzhoMzU1LjJMNjEzIDU3MS40ek03MjYuMyAzNzRIMjk3LjdsLTg1LTE0OGg1OTguNmwtODUgMTQ4eiIsZmlsbDphfX1dfX0sbmFtZToiZnVubmVsLXBsb3QiLHRoZW1lOiJ0d290b25lIn07dC5kZWZhdWx0PWV9LDQ4ODExOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MjggMzkyYzguOCAwIDE2LTcuMiAxNi0xNlYxOTJjMC04LjgtNy4yLTE2LTE2LTE2SDc0NGMtOC44IDAtMTYgNy4yLTE2IDE2djU2SDI5NnYtNTZjMC04LjgtNy4yLTE2LTE2LTE2SDk2Yy04LjggMC0xNiA3LjItMTYgMTZ2MTg0YzAgOC44IDcuMiAxNiAxNiAxNmg1NnYyNDBIOTZjLTguOCAwLTE2IDcuMi0xNiAxNnYxODRjMCA4LjggNy4yIDE2IDE2IDE2aDE4NGM4LjggMCAxNi03LjIgMTYtMTZ2LTU2aDQzMnY1NmMwIDguOCA3LjIgMTYgMTYgMTZoMTg0YzguOCAwIDE2LTcuMiAxNi0xNlY2NDhjMC04LjgtNy4yLTE2LTE2LTE2aC01NlYzOTJoNTZ6TTc5MiAyNDBoODh2ODhoLTg4di04OHptLTY0OCA4OHYtODhoODh2ODhoLTg4em04OCA0NTZoLTg4di04OGg4OHY4OHptNjQ4LTg4djg4aC04OHYtODhoODh6bS04MC02NGgtNTZjLTguOCAwLTE2IDcuMi0xNiAxNnY1NkgyOTZ2LTU2YzAtOC44LTcuMi0xNi0xNi0xNmgtNTZWMzkyaDU2YzguOCAwIDE2LTcuMiAxNi0xNnYtNTZoNDMydjU2YzAgOC44IDcuMiAxNiAxNiAxNmg1NnYyNDB6In19XX0sbmFtZToiZ2F0ZXdheSIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDIwNzcxOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoiZGVmcyIsYXR0cnM6e30sY2hpbGRyZW46W3t0YWc6InN0eWxlIixhdHRyczp7fX1dfSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTk0NCAyOTlINjkyYy00LjQgMC04IDMuNi04IDh2NDA2YzAgNC40IDMuNiA4IDggOGg1OS4yYzQuNCAwIDgtMy42IDgtOFY1NDkuOWgxNjguMmM0LjQgMCA4LTMuNiA4LThWNDk1YzAtNC40LTMuNi04LTgtOEg3NTkuMlYzNjQuMkg5NDRjNC40IDAgOC0zLjYgOC04VjMwN2MwLTQuNC0zLjYtOC04LTh6bS0zNTYgMWgtNTZjLTQuNCAwLTggMy42LTggOHY0MDZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFYzMDhjMC00LjQtMy42LTgtOC04ek00NTIgNTAwLjlIMjkwLjVjLTQuNCAwLTggMy42LTggOHY0My43YzAgNC40IDMuNiA4IDggOGg5NC45bC0uMyA4LjljLTEuMiA1OC44LTQ1LjYgOTguNS0xMTAuOSA5OC41LTc2LjIgMC0xMjMuOS01OS43LTEyMy45LTE1Ni43IDAtOTUuOCA0Ni44LTE1NS4yIDEyMS41LTE1NS4yIDU0LjggMCA5My4xIDI2LjkgMTA4LjUgNzUuNGg3Ni4yYy0xMy42LTg3LjItODYtMTQzLjQtMTg0LjctMTQzLjRDMTUwIDI4OCA3MiAzNzUuMiA3MiA1MTEuOSA3MiA2NTAuMiAxNDkuMSA3MzYgMjczIDczNmMxMTQuMSAwIDE4Ny03MC43IDE4Ny0xODEuNnYtNDUuNWMwLTQuNC0zLjYtOC04LTh6In19XX0sbmFtZToiZ2lmIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNzA2Mzk6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTE2MCA4OTRjMCAxNy43IDE0LjMgMzIgMzIgMzJoMjg2VjU1MEgxNjB2MzQ0em0zODYgMzJoMjg2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjU1MEg1NDZ2Mzc2em0zMzQtNjE2SDczMi40YzEzLjYtMjEuNCAyMS42LTQ2LjggMjEuNi03NCAwLTc2LjEtNjEuOS0xMzgtMTM4LTEzOC00MS40IDAtNzguNyAxOC40LTEwNCA0Ny40LTI1LjMtMjktNjIuNi00Ny40LTEwNC00Ny40LTc2LjEgMC0xMzggNjEuOS0xMzggMTM4IDAgMjcuMiA3LjkgNTIuNiAyMS42IDc0SDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MTQwaDM2NlYzMTBoNjh2MTcyaDM2NlYzNDJjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MDItNGgtNzBjLTM4LjYgMC03MC0zMS40LTcwLTcwczMxLjQtNzAgNzAtNzAgNzAgMzEuNCA3MCA3MHY3MHptMTM4IDBoLTcwdi03MGMwLTM4LjYgMzEuNC03MCA3MC03MHM3MCAzMS40IDcwIDcwLTMxLjQgNzAtNzAgNzB6In19XX0sbmFtZToiZ2lmdCIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSwzMTA2OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMzEwSDczMi40YzEzLjYtMjEuNCAyMS42LTQ2LjggMjEuNi03NCAwLTc2LjEtNjEuOS0xMzgtMTM4LTEzOC00MS40IDAtNzguNyAxOC40LTEwNCA0Ny40LTI1LjMtMjktNjIuNi00Ny40LTEwNC00Ny40LTc2LjEgMC0xMzggNjEuOS0xMzggMTM4IDAgMjcuMiA3LjkgNTIuNiAyMS42IDc0SDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MjAwYzAgNC40IDMuNiA4IDggOGg0MHYzNDRjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjU1MGg0MGM0LjQgMCA4LTMuNiA4LThWMzQyYzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tMzM0LTc0YzAtMzguNiAzMS40LTcwIDcwLTcwczcwIDMxLjQgNzAgNzAtMzEuNCA3MC03MCA3MGgtNzB2LTcwem0tMTM4LTcwYzM4LjYgMCA3MCAzMS40IDcwIDcwdjcwaC03MGMtMzguNiAwLTcwLTMxLjQtNzAtNzBzMzEuNC03MCA3MC03MHpNMTgwIDQ4MlYzNzhoMjk4djEwNEgxODB6bTQ4IDY4aDI1MHYzMDhIMjI4VjU1MHptNTY4IDMwOEg1NDZWNTUwaDI1MHYzMDh6bTQ4LTM3Nkg1NDZWMzc4aDI5OHYxMDR6In19XX0sbmFtZToiZ2lmdCIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDUyNjE4OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOmZ1bmN0aW9uKGEsbil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTU0NiAzNzhoMjk4djEwNEg1NDZ6TTIyOCA1NTBoMjUwdjMwOEgyMjh6bS00OC0xNzJoMjk4djEwNEgxODB6bTM2NiAxNzJoMjUwdjMwOEg1NDZ6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAzMTBINzMyLjRjMTMuNi0yMS40IDIxLjYtNDYuOCAyMS42LTc0IDAtNzYuMS02MS45LTEzOC0xMzgtMTM4LTQxLjQgMC03OC43IDE4LjQtMTA0IDQ3LjQtMjUuMy0yOS02Mi42LTQ3LjQtMTA0LTQ3LjQtNzYuMSAwLTEzOCA2MS45LTEzOCAxMzggMCAyNy4yIDcuOSA1Mi42IDIxLjYgNzRIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYyMDBjMCA0LjQgMy42IDggOCA4aDQwdjM0NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWNTUwaDQwYzQuNCAwIDgtMy42IDgtOFYzNDJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTQ3OCA4NThIMjI4VjU1MGgyNTB2MzA4em0wLTM3NkgxODBWMzc4aDI5OHYxMDR6bTAtMTc2aC03MGMtMzguNiAwLTcwLTMxLjQtNzAtNzBzMzEuNC03MCA3MC03MCA3MCAzMS40IDcwIDcwdjcwem02OC03MGMwLTM4LjYgMzEuNC03MCA3MC03MHM3MCAzMS40IDcwIDcwLTMxLjQgNzAtNzAgNzBoLTcwdi03MHptMjUwIDYyMkg1NDZWNTUwaDI1MHYzMDh6bTQ4LTM3Nkg1NDZWMzc4aDI5OHYxMDR6IixmaWxsOmF9fV19fSxuYW1lOiJnaWZ0Iix0aGVtZToidHdvdG9uZSJ9O3QuZGVmYXVsdD1lfSw5MDU2OTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTExLjYgNzYuM0MyNjQuMyA3Ni4yIDY0IDI3Ni40IDY0IDUyMy41IDY0IDcxOC45IDE4OS4zIDg4NSAzNjMuOCA5NDZjMjMuNSA1LjkgMTkuOS0xMC44IDE5LjktMjIuMnYtNzcuNWMtMTM1LjcgMTUuOS0xNDEuMi03My45LTE1MC4zLTg4LjlDMjE1IDcyNiAxNzEuNSA3MTggMTg0LjUgNzAzYzMwLjktMTUuOSA2Mi40IDQgOTguOSA1Ny45IDI2LjQgMzkuMSA3Ny45IDMyLjUgMTA0IDI2IDUuNy0yMy41IDE3LjktNDQuNSAzNC43LTYwLjgtMTQwLjYtMjUuMi0xOTkuMi0xMTEtMTk5LjItMjEzIDAtNDkuNSAxNi4zLTk1IDQ4LjMtMTMxLjctMjAuNC02MC41IDEuOS0xMTIuMyA0LjktMTIwIDU4LjEtNS4yIDExOC41IDQxLjYgMTIzLjIgNDUuMyAzMy04LjkgNzAuNy0xMy42IDExMi45LTEzLjYgNDIuNCAwIDgwLjIgNC45IDExMy41IDEzLjkgMTEuMy04LjYgNjcuMy00OC44IDEyMS4zLTQzLjkgMi45IDcuNyAyNC43IDU4LjMgNS41IDExOCAzMi40IDM2LjggNDguOSA4Mi43IDQ4LjkgMTMyLjMgMCAxMDIuMi01OSAxODguMS0yMDAgMjEyLjlhMTI3LjUgMTI3LjUgMCAwMTM4LjEgOTF2MTEyLjVjLjggOSAwIDE3LjkgMTUgMTcuOSAxNzcuMS01OS43IDMwNC42LTIyNyAzMDQuNi00MjQuMSAwLTI0Ny4yLTIwMC40LTQ0Ny4zLTQ0Ny41LTQ0Ny4zeiJ9fV19LG5hbWU6ImdpdGh1YiIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSwzOTE2ODpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTExLjYgNzYuM0MyNjQuMyA3Ni4yIDY0IDI3Ni40IDY0IDUyMy41IDY0IDcxOC45IDE4OS4zIDg4NSAzNjMuOCA5NDZjMjMuNSA1LjkgMTkuOS0xMC44IDE5LjktMjIuMnYtNzcuNWMtMTM1LjcgMTUuOS0xNDEuMi03My45LTE1MC4zLTg4LjlDMjE1IDcyNiAxNzEuNSA3MTggMTg0LjUgNzAzYzMwLjktMTUuOSA2Mi40IDQgOTguOSA1Ny45IDI2LjQgMzkuMSA3Ny45IDMyLjUgMTA0IDI2IDUuNy0yMy41IDE3LjktNDQuNSAzNC43LTYwLjgtMTQwLjYtMjUuMi0xOTkuMi0xMTEtMTk5LjItMjEzIDAtNDkuNSAxNi4zLTk1IDQ4LjMtMTMxLjctMjAuNC02MC41IDEuOS0xMTIuMyA0LjktMTIwIDU4LjEtNS4yIDExOC41IDQxLjYgMTIzLjIgNDUuMyAzMy04LjkgNzAuNy0xMy42IDExMi45LTEzLjYgNDIuNCAwIDgwLjIgNC45IDExMy41IDEzLjkgMTEuMy04LjYgNjcuMy00OC44IDEyMS4zLTQzLjkgMi45IDcuNyAyNC43IDU4LjMgNS41IDExOCAzMi40IDM2LjggNDguOSA4Mi43IDQ4LjkgMTMyLjMgMCAxMDIuMi01OSAxODguMS0yMDAgMjEyLjlhMTI3LjUgMTI3LjUgMCAwMTM4LjEgOTF2MTEyLjVjLjggOSAwIDE3LjkgMTUgMTcuOSAxNzcuMS01OS43IDMwNC42LTIyNyAzMDQuNi00MjQuMSAwLTI0Ny4yLTIwMC40LTQ0Ny4zLTQ0Ny41LTQ0Ny4zeiJ9fV19LG5hbWU6ImdpdGh1YiIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDMxNDAzOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MTAuNSA1NTMuMmwtMTA5LTM3MC44Yy02LjgtMjAuNC0yMy4xLTM0LjEtNDQuOS0zNC4xcy0zOS41IDEyLjMtNDYuMyAzMi43bC03Mi4yIDIxNS40SDM4Ni4yTDMxNCAxODEuMWMtNi44LTIwLjQtMjQuNS0zMi43LTQ2LjMtMzIuN3MtMzkuNSAxMy42LTQ0LjkgMzQuMUwxMTMuOSA1NTMuMmMtNC4xIDEzLjYgMS40IDI4LjYgMTIuMyAzNi44bDM4NS40IDI4OSAzODYuNy0yODljMTAuOC04LjEgMTYuMy0yMy4xIDEyLjItMzYuOHoifX1dfSxuYW1lOiJnaXRsYWIiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sNjE0NzE6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkxMy45IDU1Mi4yTDgwNSAxODEuNHYtLjFjLTcuNi0yMi45LTI1LjctMzYuNS00OC4zLTM2LjUtMjMuNCAwLTQyLjUgMTMuNS00OS43IDM1LjJsLTcxLjQgMjEzSDM4OC44bC03MS40LTIxM2MtNy4yLTIxLjctMjYuMy0zNS4yLTQ5LjctMzUuMi0yMy4xIDAtNDIuNSAxNC44LTQ4LjQgMzYuNkwxMTAuNSA1NTIuMmMtNC40IDE0LjcgMS4yIDMxLjQgMTMuNSA0MC43bDM2OC41IDI3Ni40YzIuNiAzLjYgNi4yIDYuMyAxMC40IDcuOGw4LjYgNi40IDguNS02LjRjNC45LTEuNyA5LTQuNyAxMS45LTguOWwzNjguNC0yNzUuNGMxMi40LTkuMiAxOC0yNS45IDEzLjYtNDAuNnpNNzUxLjcgMTkzLjRjMS0xLjggMi45LTEuOSAzLjUtMS45IDEuMSAwIDIuNS4zIDMuNCAzTDgxOCAzOTQuM0g2ODQuNWw2Ny4yLTIwMC45em0tNDg3LjQgMWMuOS0yLjYgMi4zLTIuOSAzLjQtMi45IDIuNyAwIDIuOS4xIDMuNCAxLjdsNjcuMyAyMDEuMkgyMDYuNWw1Ny44LTIwMHpNMTU4LjggNTU4LjdsMjguMi05Ny4zIDIwMi40IDI3MC4yLTIzMC42LTE3Mi45em03My45LTExNi40aDEyMi4xbDkwLjggMjg0LjMtMjEyLjktMjg0LjN6TTUxMi45IDc3Nkw0MDUuNyA0NDIuM0g2MjBMNTEyLjkgNzc2em0xNTcuOS0zMzMuN2gxMTkuNUw1ODAgNzIzLjFsOTAuOC0yODAuOHptLTQwLjcgMjkzLjlsMjA3LjMtMjc2LjcgMjkuNSA5OS4yLTIzNi44IDE3Ny41eiJ9fV19LG5hbWU6ImdpdGxhYiIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDU0MzA6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg1NC40IDgwMC45Yy4yLS4zLjUtLjYuNy0uOUM5MjAuNiA3MjIuMSA5NjAgNjIxLjcgOTYwIDUxMnMtMzkuNC0yMTAuMS0xMDQuOC0yODhjLS4yLS4zLS41LS41LS43LS44LTEuMS0xLjMtMi4xLTIuNS0zLjItMy43LS40LS41LS44LS45LTEuMi0xLjRsLTQuMS00LjctLjEtLjFjLTEuNS0xLjctMy4xLTMuNC00LjYtNS4xbC0uMS0uMWMtMy4yLTMuNC02LjQtNi44LTkuNy0xMC4xbC0uMS0uMS00LjgtNC44LS4zLS4zYy0xLjUtMS41LTMtMi45LTQuNS00LjMtLjUtLjUtMS0xLTEuNi0xLjUtMS0xLTItMS45LTMtMi44LS4zLS4zLS43LS42LTEtMUM3MzYuNCAxMDkuMiA2MjkuNSA2NCA1MTIgNjRzLTIyNC40IDQ1LjItMzA0LjMgMTE5LjJjLS4zLjMtLjcuNi0xIDEtMSAuOS0yIDEuOS0zIDIuOS0uNS41LTEgMS0xLjYgMS41LTEuNSAxLjQtMyAyLjktNC41IDQuM2wtLjMuMy00LjggNC44LS4xLjFjLTMuMyAzLjMtNi41IDYuNy05LjcgMTAuMWwtLjEuMWMtMS42IDEuNy0zLjEgMy40LTQuNiA1LjFsLS4xLjFjLTEuNCAxLjUtMi44IDMuMS00LjEgNC43LS40LjUtLjguOS0xLjIgMS40LTEuMSAxLjItMi4xIDIuNS0zLjIgMy43LS4yLjMtLjUuNS0uNy44QzEwMy40IDMwMS45IDY0IDQwMi4zIDY0IDUxMnMzOS40IDIxMC4xIDEwNC44IDI4OGMuMi4zLjUuNi43LjlsMy4xIDMuN2MuNC41LjguOSAxLjIgMS40bDQuMSA0LjdjMCAuMS4xLjEuMS4yIDEuNSAxLjcgMyAzLjQgNC42IDVsLjEuMWMzLjIgMy40IDYuNCA2LjggOS42IDEwLjFsLjEuMWMxLjYgMS42IDMuMSAzLjIgNC43IDQuN2wuMy4zYzMuMyAzLjMgNi43IDYuNSAxMC4xIDkuNiA4MC4xIDc0IDE4NyAxMTkuMiAzMDQuNSAxMTkuMnMyMjQuNC00NS4yIDMwNC4zLTExOS4yYTMwMCAzMDAgMCAwMDEwLTkuNmwuMy0uM2MxLjYtMS42IDMuMi0zLjEgNC43LTQuN2wuMS0uMWMzLjMtMy4zIDYuNS02LjcgOS42LTEwLjFsLjEtLjFjMS41LTEuNyAzLjEtMy4zIDQuNi01IDAtLjEuMS0uMS4xLS4yIDEuNC0xLjUgMi44LTMuMSA0LjEtNC43LjQtLjUuOC0uOSAxLjItMS40YTk5IDk5IDAgMDAzLjMtMy43em00LjEtMTQyLjZjLTEzLjggMzIuNi0zMiA2Mi44LTU0LjIgOTAuMmE0NDQuMDcgNDQ0LjA3IDAgMDAtODEuNS01NS45YzExLjYtNDYuOSAxOC44LTk4LjQgMjAuNy0xNTIuNkg4ODdjLTMgNDAuOS0xMi42IDgwLjYtMjguNSAxMTguM3pNODg3IDQ4NEg3NDMuNWMtMS45LTU0LjItOS4xLTEwNS43LTIwLjctMTUyLjYgMjkuMy0xNS42IDU2LjYtMzQuNCA4MS41LTU1LjlBMzczLjg2IDM3My44NiAwIDAxODg3IDQ4NHpNNjU4LjMgMTY1LjVjMzkuNyAxNi44IDc1LjggNDAgMTA3LjYgNjkuMmEzOTQuNzIgMzk0LjcyIDAgMDEtNTkuNCA0MS44Yy0xNS43LTQ1LTM1LjgtODQuMS01OS4yLTExNS40IDMuNyAxLjQgNy40IDIuOSAxMSA0LjR6bS05MC42IDcwMC42Yy05LjIgNy4yLTE4LjQgMTIuNy0yNy43IDE2LjRWNjk3YTM4OS4xIDM4OS4xIDAgMDExMTUuNyAyNi4yYy04LjMgMjQuNi0xNy45IDQ3LjMtMjkgNjcuOC0xNy40IDMyLjQtMzcuOCA1OC4zLTU5IDc1LjF6bTU5LTYzMy4xYzExIDIwLjYgMjAuNyA0My4zIDI5IDY3LjhBMzg5LjEgMzg5LjEgMCAwMTU0MCAzMjdWMTQxLjZjOS4yIDMuNyAxOC41IDkuMSAyNy43IDE2LjQgMjEuMiAxNi43IDQxLjYgNDIuNiA1OSA3NXpNNTQwIDY0MC45VjU0MGgxNDcuNWMtMS42IDQ0LjItNy4xIDg3LjEtMTYuMyAxMjcuOGwtLjMgMS4yQTQ0NS4wMiA0NDUuMDIgMCAwMDU0MCA2NDAuOXptMC0xNTYuOVYzODMuMWM0NS44LTIuOCA4OS44LTEyLjUgMTMwLjktMjguMWwuMyAxLjJjOS4yIDQwLjcgMTQuNyA4My41IDE2LjMgMTI3LjhINTQwem0tNTYgNTZ2MTAwLjljLTQ1LjggMi44LTg5LjggMTIuNS0xMzAuOSAyOC4xbC0uMy0xLjJjLTkuMi00MC43LTE0LjctODMuNS0xNi4zLTEyNy44SDQ4NHptLTE0Ny41LTU2YzEuNi00NC4yIDcuMS04Ny4xIDE2LjMtMTI3LjhsLjMtMS4yYzQxLjEgMTUuNiA4NSAyNS4zIDEzMC45IDI4LjFWNDg0SDMzNi41ek00ODQgNjk3djE4NS40Yy05LjItMy43LTE4LjUtOS4xLTI3LjctMTYuNC0yMS4yLTE2LjctNDEuNy00Mi43LTU5LjEtNzUuMS0xMS0yMC42LTIwLjctNDMuMy0yOS02Ny44IDM3LjItMTQuNiA3NS45LTIzLjMgMTE1LjgtMjYuMXptMC0zNzBhMzg5LjEgMzg5LjEgMCAwMS0xMTUuNy0yNi4yYzguMy0yNC42IDE3LjktNDcuMyAyOS02Ny44IDE3LjQtMzIuNCAzNy44LTU4LjQgNTkuMS03NS4xIDkuMi03LjIgMTguNC0xMi43IDI3LjctMTYuNFYzMjd6TTM2NS43IDE2NS41YzMuNy0xLjUgNy4zLTMgMTEtNC40LTIzLjQgMzEuMy00My41IDcwLjQtNTkuMiAxMTUuNC0yMS0xMi00MC45LTI2LTU5LjQtNDEuOCAzMS44LTI5LjIgNjcuOS01Mi40IDEwNy42LTY5LjJ6TTE2NS41IDM2NS43YzEzLjgtMzIuNiAzMi02Mi44IDU0LjItOTAuMiAyNC45IDIxLjUgNTIuMiA0MC4zIDgxLjUgNTUuOS0xMS42IDQ2LjktMTguOCA5OC40LTIwLjcgMTUyLjZIMTM3YzMtNDAuOSAxMi42LTgwLjYgMjguNS0xMTguM3pNMTM3IDU0MGgxNDMuNWMxLjkgNTQuMiA5LjEgMTA1LjcgMjAuNyAxNTIuNmE0NDQuMDcgNDQ0LjA3IDAgMDAtODEuNSA1NS45QTM3My44NiAzNzMuODYgMCAwMTEzNyA1NDB6bTIyOC43IDMxOC41Yy0zOS43LTE2LjgtNzUuOC00MC0xMDcuNi02OS4yIDE4LjUtMTUuOCAzOC40LTI5LjcgNTkuNC00MS44IDE1LjcgNDUgMzUuOCA4NC4xIDU5LjIgMTE1LjQtMy43LTEuNC03LjQtMi45LTExLTQuNHptMjkyLjYgMGMtMy43IDEuNS03LjMgMy0xMSA0LjQgMjMuNC0zMS4zIDQzLjUtNzAuNCA1OS4yLTExNS40IDIxIDEyIDQwLjkgMjYgNTkuNCA0MS44YTM3My44MSAzNzMuODEgMCAwMS0xMDcuNiA2OS4yeiJ9fV19LG5hbWU6Imdsb2JhbCIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDUyNDYyOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MDUuOSA4MDYuN2wtNDAuMi0yNDhjLS42LTMuOS00LTYuNy03LjktNi43SDU5Ni4yYy0zLjkgMC03LjMgMi44LTcuOSA2LjdsLTQwLjIgMjQ4Yy0uMS40LS4xLjktLjEgMS4zIDAgNC40IDMuNiA4IDggOGgzNDJjLjQgMCAuOSAwIDEuMy0uMSA0LjMtLjcgNy4zLTQuOCA2LjYtOS4yem0tNDcwLjItMjQ4Yy0uNi0zLjktNC02LjctNy45LTYuN0gxNjYuMmMtMy45IDAtNy4zIDIuOC03LjkgNi43bC00MC4yIDI0OGMtLjEuNC0uMS45LS4xIDEuMyAwIDQuNCAzLjYgOCA4IDhoMzQyYy40IDAgLjkgMCAxLjMtLjEgNC40LS43IDcuMy00LjggNi42LTkuMmwtNDAuMi0yNDh6TTM0MiA0NzJoMzQyYy40IDAgLjkgMCAxLjMtLjEgNC40LS43IDcuMy00LjggNi42LTkuMmwtNDAuMi0yNDhjLS42LTMuOS00LTYuNy03LjktNi43SDM4Mi4yYy0zLjkgMC03LjMgMi44LTcuOSA2LjdsLTQwLjIgMjQ4Yy0uMS40LS4xLjktLjEgMS4zIDAgNC40IDMuNiA4IDggOHoifX1dfSxuYW1lOiJnb2xkIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDU0MTgzOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0zNDIgNDcyaDM0MmMuNCAwIC45IDAgMS4zLS4xIDQuNC0uNyA3LjMtNC44IDYuNi05LjJsLTQwLjItMjQ4Yy0uNi0zLjktNC02LjctNy45LTYuN0gzODIuMmMtMy45IDAtNy4zIDIuOC03LjkgNi43bC00MC4yIDI0OGMtLjEuNC0uMS45LS4xIDEuMyAwIDQuNCAzLjYgOCA4IDh6bTkxLjItMTk2aDE1OS41bDIwLjcgMTI4aC0yMDFsMjAuOC0xMjh6bTIuNSAyODIuN2MtLjYtMy45LTQtNi43LTcuOS02LjdIMTY2LjJjLTMuOSAwLTcuMyAyLjgtNy45IDYuN2wtNDAuMiAyNDhjLS4xLjQtLjEuOS0uMSAxLjMgMCA0LjQgMy42IDggOCA4aDM0MmMuNCAwIC45IDAgMS4zLS4xIDQuNC0uNyA3LjMtNC44IDYuNi05LjJsLTQwLjItMjQ4ek0xOTYuNSA3NDhsMjAuNy0xMjhoMTU5LjVsMjAuNyAxMjhIMTk2LjV6bTcwOS40IDU4LjdsLTQwLjItMjQ4Yy0uNi0zLjktNC02LjctNy45LTYuN0g1OTYuMmMtMy45IDAtNy4zIDIuOC03LjkgNi43bC00MC4yIDI0OGMtLjEuNC0uMS45LS4xIDEuMyAwIDQuNCAzLjYgOCA4IDhoMzQyYy40IDAgLjkgMCAxLjMtLjEgNC4zLS43IDcuMy00LjggNi42LTkuMnpNNjI2LjUgNzQ4bDIwLjctMTI4aDE1OS41bDIwLjcgMTI4SDYyNi41eiJ9fV19LG5hbWU6ImdvbGQiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSwxNjI2MDpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjpmdW5jdGlvbihhLG4pe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00MzUuNyA1NTguN2MtLjYtMy45LTQtNi43LTcuOS02LjdIMTY2LjJjLTMuOSAwLTcuMyAyLjgtNy45IDYuN2wtNDAuMiAyNDhjLS4xLjQtLjEuOS0uMSAxLjMgMCA0LjQgMy42IDggOCA4aDM0MmMuNCAwIC45IDAgMS4zLS4xIDQuNC0uNyA3LjMtNC44IDYuNi05LjJsLTQwLjItMjQ4ek0xOTYuNSA3NDhsMjAuNy0xMjhoMTU5LjVsMjAuNyAxMjhIMTk2LjV6bTcwOS40IDU4LjdsLTQwLjItMjQ4Yy0uNi0zLjktNC02LjctNy45LTYuN0g1OTYuMmMtMy45IDAtNy4zIDIuOC03LjkgNi43bC00MC4yIDI0OGMtLjEuNC0uMS45LS4xIDEuMyAwIDQuNCAzLjYgOCA4IDhoMzQyYy40IDAgLjkgMCAxLjMtLjEgNC4zLS43IDcuMy00LjggNi42LTkuMnpNNjI2LjUgNzQ4bDIwLjctMTI4aDE1OS41bDIwLjcgMTI4SDYyNi41ek0zNDIgNDcyaDM0MmMuNCAwIC45IDAgMS4zLS4xIDQuNC0uNyA3LjMtNC44IDYuNi05LjJsLTQwLjItMjQ4Yy0uNi0zLjktNC02LjctNy45LTYuN0gzODIuMmMtMy45IDAtNy4zIDIuOC03LjkgNi43bC00MC4yIDI0OGMtLjEuNC0uMS45LS4xIDEuMyAwIDQuNCAzLjYgOCA4IDh6bTkxLjItMTk2aDE1OS41bDIwLjcgMTI4aC0yMDFsMjAuOC0xMjh6IixmaWxsOmF9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTU5Mi43IDI3Nkg0MzMuMmwtMjAuOCAxMjhoMjAxek0yMTcuMiA2MjBsLTIwLjcgMTI4aDIwMC45bC0yMC43LTEyOHptNDMwIDBsLTIwLjcgMTI4aDIwMC45bC0yMC43LTEyOHoiLGZpbGw6bn19XX19LG5hbWU6ImdvbGQiLHRoZW1lOiJ0d290b25lIn07dC5kZWZhdWx0PWV9LDE1NjcwOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MDUuOSA4MDYuN2wtNDAuMi0yNDhjLS42LTMuOS00LTYuNy03LjktNi43SDU5Ni4yYy0zLjkgMC03LjMgMi44LTcuOSA2LjdsLTQwLjIgMjQ4Yy0uMS40LS4xLjktLjEgMS4zIDAgNC40IDMuNiA4IDggOGgzNDJjLjQgMCAuOSAwIDEuMy0uMSA0LjMtLjcgNy4zLTQuOCA2LjYtOS4yem0tNDcwLjItMjQ4Yy0uNi0zLjktNC02LjctNy45LTYuN0gxNjYuMmMtMy45IDAtNy4zIDIuOC03LjkgNi43bC00MC4yIDI0OGMtLjEuNC0uMS45LS4xIDEuMyAwIDQuNCAzLjYgOCA4IDhoMzQyYy40IDAgLjkgMCAxLjMtLjEgNC40LS43IDcuMy00LjggNi42LTkuMmwtNDAuMi0yNDh6TTM0MiA0NzJoMzQyYy40IDAgLjkgMCAxLjMtLjEgNC40LS43IDcuMy00LjggNi42LTkuMmwtNDAuMi0yNDhjLS42LTMuOS00LTYuNy03LjktNi43SDM4Mi4yYy0zLjkgMC03LjMgMi44LTcuOSA2LjdsLTQwLjIgMjQ4Yy0uMS40LS4xLjktLjEgMS4zIDAgNC40IDMuNiA4IDggOHoifX1dfSxuYW1lOiJnb2xkZW4iLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sNDAwNzA6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0xNjcgNjMzLjZDNjM4LjQgNzM1IDU4MyA3NTcgNTE2LjkgNzU3Yy05NS43IDAtMTc4LjUtNTQuOS0yMTguOC0xMzQuOUMyODEuNSA1ODkgMjcyIDU1MS42IDI3MiA1MTJzOS41LTc3IDI2LjEtMTEwLjFjNDAuMy04MC4xIDEyMy4xLTEzNSAyMTguOC0xMzUgNjYgMCAxMjEuNCAyNC4zIDE2My45IDYzLjhMNjEwLjYgNDAxYy0yNS40LTI0LjMtNTcuNy0zNi42LTkzLjYtMzYuNi02My44IDAtMTE3LjggNDMuMS0xMzcuMSAxMDEtNC45IDE0LjctNy43IDMwLjQtNy43IDQ2LjZzMi44IDMxLjkgNy43IDQ2LjZjMTkuMyA1Ny45IDczLjMgMTAxIDEzNyAxMDEgMzMgMCA2MS04LjcgODIuOS0yMy40IDI2LTE3LjQgNDMuMi00My4zIDQ4LjktNzRINTE2Ljl2LTk0LjhoMjMwLjdjMi45IDE2LjEgNC40IDMyLjggNC40IDUwLjEgMCA3NC43LTI2LjcgMTM3LjQtNzMgMTgwLjF6In19XX0sbmFtZToiZ29vZ2xlLWNpcmNsZSIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw5NjcxNzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODgxIDQ0Mi40SDUxOS43djE0OC41aDIwNi40Yy04LjkgNDgtMzUuOSA4OC42LTc2LjYgMTE1LjgtMzQuNCAyMy03OC4zIDM2LjYtMTI5LjkgMzYuNi05OS45IDAtMTg0LjQtNjcuNS0yMTQuNi0xNTguMi03LjYtMjMtMTItNDcuNi0xMi03Mi45czQuNC00OS45IDEyLTcyLjljMzAuMy05MC42IDExNC44LTE1OC4xIDIxNC43LTE1OC4xIDU2LjMgMCAxMDYuOCAxOS40IDE0Ni42IDU3LjRsMTEwLTExMC4xYy02Ni41LTYyLTE1My4yLTEwMC0yNTYuNi0xMDAtMTQ5LjkgMC0yNzkuNiA4Ni0zNDIuNyAyMTEuNC0yNiA1MS44LTQwLjggMTEwLjQtNDAuOCAxNzIuNFMxNTEgNjMyLjggMTc3IDY4NC42QzI0MC4xIDgxMCAzNjkuOCA4OTYgNTE5LjcgODk2YzEwMy42IDAgMTkwLjQtMzQuNCAyNTMuOC05MyA3Mi41LTY2LjggMTE0LjQtMTY1LjIgMTE0LjQtMjgyLjEgMC0yNy4yLTIuNC01My4zLTYuOS03OC41eiJ9fV19LG5hbWU6Imdvb2dsZSIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDEwMTIwOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMzYuNSA1NTguOGMtNDMuOSA2MS44LTEzMi4xIDc5LjgtMjAwLjkgNTMuMy02OS0yNi4zLTExOC05OS4yLTExMi4xLTE3My41IDEuNS05MC45IDg1LjItMTcwLjYgMTc2LjEtMTY3LjUgNDMuNi0yIDg0LjYgMTYuOSAxMTggNDMuNi0xNC4zIDE2LjItMjkgMzEuOC00NC44IDQ2LjMtNDAuMS0yNy43LTk3LjItMzUuNi0xMzcuMy0zLjYtNTcuNCAzOS43LTYwIDEzMy40LTQuOCAxNzYuMSA1My43IDQ4LjcgMTU1LjIgMjQuNSAxNzAuMS01MC4xLTMzLjYtLjUtNjcuNCAwLTEwMS0xLjEtLjEtMjAuMS0uMi00MC4xLS4xLTYwLjIgNTYuMi0uMiAxMTIuNS0uMyAxNjguOC4yIDMuMyA0Ny4zLTMgOTcuNS0zMiAxMzYuNXpNNzkxIDUzNi41Yy0xNi44LjItMzMuNi4zLTUwLjQuNC0uMiAxNi44LS4zIDMzLjYtLjMgNTAuNEg2OTBjLS4yLTE2LjgtLjItMzMuNS0uMy01MC4zLTE2LjgtLjItMzMuNi0uMy01MC40LS41di01MC4xYzE2LjgtLjIgMzMuNi0uMyA1MC40LS4zLjEtMTYuOC4zLTMzLjYuNC01MC40aDUwLjJsLjMgNTAuNGMxNi44LjIgMzMuNi4yIDUwLjQuM3Y1MC4xeiJ9fV19LG5hbWU6Imdvb2dsZS1wbHVzLWNpcmNsZSIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSwyNzExODpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODc5LjUgNDcwLjRjLS4zLTI3LS40LTU0LjItLjUtODEuM2gtODAuOGMtLjMgMjctLjUgNTQuMS0uNyA4MS4zLTI3LjIuMS01NC4yLjMtODEuMi42djgwLjljMjcgLjMgNTQuMi41IDgxLjIuOC4zIDI3IC4zIDU0LjEuNSA4MS4xaDgwLjljLjEtMjcgLjMtNTQuMS41LTgxLjMgMjcuMi0uMyA1NC4yLS40IDgxLjItLjd2LTgwLjljLTI2LjktLjItNTQuMS0uMi04MS4xLS41em0tNTMwIC40Yy0uMSAzMi4zIDAgNjQuNy4xIDk3IDU0LjIgMS44IDEwOC41IDEgMTYyLjcgMS44LTIzLjkgMTIwLjMtMTg3LjQgMTU5LjMtMjczLjkgODAuNy04OS02OC45LTg0LjgtMjIwIDcuNy0yODQgNjQuNy01MS42IDE1Ni42LTM4LjkgMjIxLjMgNS44IDI1LjQtMjMuNSA0OS4yLTQ4LjcgNzIuMS03NC43LTUzLjgtNDIuOS0xMTkuOC03My41LTE5MC03MC4zLTE0Ni42LTQuOS0yODEuMyAxMjMuNS0yODMuNyAyNzAuMi05LjQgMTE5LjkgNjkuNCAyMzcuNCAxODAuNiAyNzkuOCAxMTAuOCA0Mi43IDI1Mi45IDEzLjYgMzIzLjctODYgNDYuNy02Mi45IDU2LjgtMTQzLjkgNTEuMy0yMjAtOTAuNy0uNy0xODEuMy0uNi0yNzEuOS0uM3oifX1dfSxuYW1lOiJnb29nbGUtcGx1cyIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDYwMzIzOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTU0OC41IDYyMi44Yy00My45IDYxLjgtMTMyLjEgNzkuOC0yMDAuOSA1My4zLTY5LTI2LjMtMTE4LTk5LjItMTEyLjEtMTczLjUgMS41LTkwLjkgODUuMi0xNzAuNiAxNzYuMS0xNjcuNSA0My42LTIgODQuNiAxNi45IDExOCA0My42LTE0LjMgMTYuMi0yOSAzMS44LTQ0LjggNDYuMy00MC4xLTI3LjctOTcuMi0zNS42LTEzNy4zLTMuNi01Ny40IDM5LjctNjAgMTMzLjQtNC44IDE3Ni4xIDUzLjcgNDguNyAxNTUuMiAyNC41IDE3MC4xLTUwLjEtMzMuNi0uNS02Ny40IDAtMTAxLTEuMS0uMS0yMC4xLS4yLTQwLjEtLjEtNjAuMiA1Ni4yLS4yIDExMi41LS4zIDE2OC44LjIgMy4zIDQ3LjMtMyA5Ny41LTMyIDEzNi41ek03OTEgNTM2LjVjLTE2LjguMi0zMy42LjMtNTAuNC40LS4yIDE2LjgtLjMgMzMuNi0uMyA1MC40SDY5MGMtLjItMTYuOC0uMi0zMy41LS4zLTUwLjMtMTYuOC0uMi0zMy42LS4zLTUwLjQtLjV2LTUwLjFjMTYuOC0uMiAzMy42LS4zIDUwLjQtLjMuMS0xNi44LjMtMzMuNi40LTUwLjRoNTAuMmwuMyA1MC40YzE2LjguMiAzMy42LjIgNTAuNC4zdjUwLjF6In19XX0sbmFtZToiZ29vZ2xlLXBsdXMtc3F1YXJlIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDU3NzM5OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTY3OSA2OTcuNkM2MzguNCA3MzUgNTgzIDc1NyA1MTYuOSA3NTdjLTk1LjcgMC0xNzguNS01NC45LTIxOC44LTEzNC45QTI0NS4wMiAyNDUuMDIgMCAwMTI3MiA1MTJjMC0zOS42IDkuNS03NyAyNi4xLTExMC4xIDQwLjMtODAuMSAxMjMuMS0xMzUgMjE4LjgtMTM1IDY2IDAgMTIxLjQgMjQuMyAxNjMuOSA2My44TDYxMC42IDQwMWMtMjUuNC0yNC4zLTU3LjctMzYuNi05My42LTM2LjYtNjMuOCAwLTExNy44IDQzLjEtMTM3LjEgMTAxLTQuOSAxNC43LTcuNyAzMC40LTcuNyA0Ni42czIuOCAzMS45IDcuNyA0Ni42YzE5LjMgNTcuOSA3My4zIDEwMSAxMzcgMTAxIDMzIDAgNjEtOC43IDgyLjktMjMuNCAyNi0xNy40IDQzLjItNDMuMyA0OC45LTc0SDUxNi45di05NC44aDIzMC43YzIuOSAxNi4xIDQuNCAzMi44IDQuNCA1MC4xIDAgNzQuNy0yNi43IDEzNy40LTczIDE4MC4xeiJ9fV19LG5hbWU6Imdvb2dsZS1zcXVhcmUiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sMzgyMzI6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJkZWZzIixhdHRyczp7fSxjaGlsZHJlbjpbe3RhZzoic3R5bGUiLGF0dHJzOnt9fV19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNOTEyIDgyMC4xVjIwMy45YzI4LTkuOSA0OC0zNi42IDQ4LTY3LjkgMC0zOS44LTMyLjItNzItNzItNzItMzEuMyAwLTU4IDIwLTY3LjkgNDhIMjAzLjlDMTk0IDg0IDE2Ny4zIDY0IDEzNiA2NGMtMzkuOCAwLTcyIDMyLjItNzIgNzIgMCAzMS4zIDIwIDU4IDQ4IDY3Ljl2NjE2LjJDODQgODMwIDY0IDg1Ni43IDY0IDg4OGMwIDM5LjggMzIuMiA3MiA3MiA3MiAzMS4zIDAgNTgtMjAgNjcuOS00OGg2MTYuMmM5LjkgMjggMzYuNiA0OCA2Ny45IDQ4IDM5LjggMCA3Mi0zMi4yIDcyLTcyIDAtMzEuMy0yMC01OC00OC02Ny45ek04ODggMTEyYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0LTI0LTEwLjctMjQtMjQgMTAuNy0yNCAyNC0yNHpNMTM2IDkxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNCAyNCAxMC43IDI0IDI0LTEwLjcgMjQtMjQgMjR6bTAtNzUyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0IDI0IDEwLjcgMjQgMjQtMTAuNyAyNC0yNCAyNHptNzA0IDY4MEgxODRWMTg0aDY1NnY2NTZ6bTQ4IDcyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0IDI0IDEwLjcgMjQgMjQtMTAuNyAyNC0yNCAyNHoifX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0yODggNDc0aDQ0OGM4LjggMCAxNi03LjIgMTYtMTZWMjgyYzAtOC44LTcuMi0xNi0xNi0xNkgyODhjLTguOCAwLTE2IDcuMi0xNiAxNnYxNzZjMCA4LjggNy4yIDE2IDE2IDE2em01Ni0xMzZoMzM2djY0SDM0NHYtNjR6bS01NiA0MjBoNDQ4YzguOCAwIDE2LTcuMiAxNi0xNlY1NjZjMC04LjgtNy4yLTE2LTE2LTE2SDI4OGMtOC44IDAtMTYgNy4yLTE2IDE2djE3NmMwIDguOCA3LjIgMTYgMTYgMTZ6bTU2LTEzNmgzMzZ2NjRIMzQ0di02NHoifX1dfSxuYW1lOiJncm91cCIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDcxMzA2OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6eyJmaWxsLXJ1bGUiOiJldmVub2RkIix2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTExLjUgNjVDNzE5Ljk5IDY1IDg4OSAyMzQuMDEgODg5IDQ0Mi41UzcxOS45OSA4MjAgNTExLjUgODIwIDEzNCA2NTAuOTkgMTM0IDQ0Mi41IDMwMy4wMSA2NSA1MTEuNSA2NW0wIDY0QzMzOC4zNiAxMjkgMTk4IDI2OS4zNiAxOTggNDQyLjVTMzM4LjM2IDc1NiA1MTEuNSA3NTYgODI1IDYxNS42NCA4MjUgNDQyLjUgNjg0LjY0IDEyOSA1MTEuNSAxMjlNNzQ1IDg4OXY3MkgyNzh2LTcyeiJ9fV19LG5hbWU6Imhhcm1vbnktby1zIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sOTI0ODA6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTgzMiA2NEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjIyNGg3MDRWOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6TTQ1NiAyMTZjMCA0LjQtMy42IDgtOCA4SDI2NGMtNC40IDAtOC0zLjYtOC04di00OGMwLTQuNCAzLjYtOCA4LThoMTg0YzQuNCAwIDggMy42IDggOHY0OHpNMTYwIDkyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWNzA0SDE2MHYyMjR6bTU3Ni0xMzZjMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDAtNDAtMTcuOS00MC00MCAxNy45LTQwIDQwLTQwek0xNjAgNjQwaDcwNFYzODRIMTYwdjI1NnptOTYtMTUyYzAtNC40IDMuNi04IDgtOGgxODRjNC40IDAgOCAzLjYgOCA4djQ4YzAgNC40LTMuNiA4LTggOEgyNjRjLTQuNCAwLTgtMy42LTgtOHYtNDh6In19XX0sbmFtZToiaGRkIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDUzNTA4OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04MzIgNjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNjAwIDcyaDU2MHYyMDhIMjMyVjEzNnptNTYwIDQ4MEgyMzJWNDA4aDU2MHYyMDh6bTAgMjcySDIzMlY2ODBoNTYwdjIwOHpNNDk2IDIwOEgzMTJjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMTg0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04ek0zMTIgNTQ0aDE4NGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOEgzMTJjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDh6bTMyOCAyNDRhNDAgNDAgMCAxMDgwIDAgNDAgNDAgMCAxMC04MCAweiJ9fV19LG5hbWU6ImhkZCIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDM1MDI1OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOmZ1bmN0aW9uKGEsbil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTIzMiA4ODhoNTYwVjY4MEgyMzJ2MjA4em00NDgtMTQwYzIyLjEgMCA0MCAxNy45IDQwIDQwcy0xNy45IDQwLTQwIDQwLTQwLTE3LjktNDAtNDAgMTcuOS00MCA0MC00MHpNMjMyIDYxNmg1NjBWNDA4SDIzMnYyMDh6bTcyLTEyOGMwLTQuNCAzLjYtOCA4LThoMTg0YzQuNCAwIDggMy42IDggOHY0OGMwIDQuNC0zLjYgOC04IDhIMzEyYy00LjQgMC04LTMuNi04LTh2LTQ4em0tNzItMTQ0aDU2MFYxMzZIMjMydjIwOHptNzItMTI4YzAtNC40IDMuNi04IDgtOGgxODRjNC40IDAgOCAzLjYgOCA4djQ4YzAgNC40LTMuNiA4LTggOEgzMTJjLTQuNCAwLTgtMy42LTgtOHYtNDh6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTgzMiA2NEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA4MjRIMjMyVjY4MGg1NjB2MjA4em0wLTI3MkgyMzJWNDA4aDU2MHYyMDh6bTAtMjcySDIzMlYxMzZoNTYwdjIwOHoiLGZpbGw6YX19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMzEyIDU0NGgxODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThIMzEyYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4em0wLTI3MmgxODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThIMzEyYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4em0zMjggNTE2YTQwIDQwIDAgMTA4MCAwIDQwIDQwIDAgMTAtODAgMHoiLGZpbGw6YX19XX19LG5hbWU6ImhkZCIsdGhlbWU6InR3b3RvbmUifTt0LmRlZmF1bHQ9ZX0sODk5NDM6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkyMyAyODMuNmEyNjAuMDQgMjYwLjA0IDAgMDAtNTYuOS04Mi44IDI2NC40IDI2NC40IDAgMDAtODQtNTUuNUEyNjUuMzQgMjY1LjM0IDAgMDA2NzkuNyAxMjVjLTQ5LjMgMC05Ny40IDEzLjUtMTM5LjIgMzktMTAgNi4xLTE5LjUgMTIuOC0yOC41IDIwLjEtOS03LjMtMTguNS0xNC0yOC41LTIwLjEtNDEuOC0yNS41LTg5LjktMzktMTM5LjItMzktMzUuNSAwLTY5LjkgNi44LTEwMi40IDIwLjMtMzEuNCAxMy01OS43IDMxLjctODQgNTUuNWEyNTguNDQgMjU4LjQ0IDAgMDAtNTYuOSA4Mi44Yy0xMy45IDMyLjMtMjEgNjYuNi0yMSAxMDEuOSAwIDMzLjMgNi44IDY4IDIwLjMgMTAzLjMgMTEuMyAyOS41IDI3LjUgNjAuMSA0OC4yIDkxIDMyLjggNDguOSA3Ny45IDk5LjkgMTMzLjkgMTUxLjYgOTIuOCA4NS43IDE4NC43IDE0NC45IDE4OC42IDE0Ny4zbDIzLjcgMTUuMmMxMC41IDYuNyAyNCA2LjcgMzQuNSAwbDIzLjctMTUuMmMzLjktMi41IDk1LjctNjEuNiAxODguNi0xNDcuMyA1Ni01MS43IDEwMS4xLTEwMi43IDEzMy45LTE1MS42IDIwLjctMzAuOSAzNy02MS41IDQ4LjItOTEgMTMuNS0zNS4zIDIwLjMtNzAgMjAuMy0xMDMuMy4xLTM1LjMtNy02OS42LTIwLjktMTAxLjl6In19XX0sbmFtZToiaGVhcnQiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sMzkxMDk6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkyMyAyODMuNmEyNjAuMDQgMjYwLjA0IDAgMDAtNTYuOS04Mi44IDI2NC40IDI2NC40IDAgMDAtODQtNTUuNUEyNjUuMzQgMjY1LjM0IDAgMDA2NzkuNyAxMjVjLTQ5LjMgMC05Ny40IDEzLjUtMTM5LjIgMzktMTAgNi4xLTE5LjUgMTIuOC0yOC41IDIwLjEtOS03LjMtMTguNS0xNC0yOC41LTIwLjEtNDEuOC0yNS41LTg5LjktMzktMTM5LjItMzktMzUuNSAwLTY5LjkgNi44LTEwMi40IDIwLjMtMzEuNCAxMy01OS43IDMxLjctODQgNTUuNWEyNTguNDQgMjU4LjQ0IDAgMDAtNTYuOSA4Mi44Yy0xMy45IDMyLjMtMjEgNjYuNi0yMSAxMDEuOSAwIDMzLjMgNi44IDY4IDIwLjMgMTAzLjMgMTEuMyAyOS41IDI3LjUgNjAuMSA0OC4yIDkxIDMyLjggNDguOSA3Ny45IDk5LjkgMTMzLjkgMTUxLjYgOTIuOCA4NS43IDE4NC43IDE0NC45IDE4OC42IDE0Ny4zbDIzLjcgMTUuMmMxMC41IDYuNyAyNCA2LjcgMzQuNSAwbDIzLjctMTUuMmMzLjktMi41IDk1LjctNjEuNiAxODguNi0xNDcuMyA1Ni01MS43IDEwMS4xLTEwMi43IDEzMy45LTE1MS42IDIwLjctMzAuOSAzNy02MS41IDQ4LjItOTEgMTMuNS0zNS4zIDIwLjMtNzAgMjAuMy0xMDMuMy4xLTM1LjMtNy02OS42LTIwLjktMTAxLjl6TTUxMiA4MTQuOFMxNTYgNTg2LjcgMTU2IDM4NS41QzE1NiAyODMuNiAyNDAuMyAyMDEgMzQ0LjMgMjAxYzczLjEgMCAxMzYuNSA0MC44IDE2Ny43IDEwMC40QzU0My4yIDI0MS44IDYwNi42IDIwMSA2NzkuNyAyMDFjMTA0IDAgMTg4LjMgODIuNiAxODguMyAxODQuNSAwIDIwMS4yLTM1NiA0MjkuMy0zNTYgNDI5LjN6In19XX0sbmFtZToiaGVhcnQiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSwzMzE5MDpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjpmdW5jdGlvbihhLG4pe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MjMgMjgzLjZhMjYwLjA0IDI2MC4wNCAwIDAwLTU2LjktODIuOCAyNjQuNCAyNjQuNCAwIDAwLTg0LTU1LjVBMjY1LjM0IDI2NS4zNCAwIDAwNjc5LjcgMTI1Yy00OS4zIDAtOTcuNCAxMy41LTEzOS4yIDM5LTEwIDYuMS0xOS41IDEyLjgtMjguNSAyMC4xLTktNy4zLTE4LjUtMTQtMjguNS0yMC4xLTQxLjgtMjUuNS04OS45LTM5LTEzOS4yLTM5LTM1LjUgMC02OS45IDYuOC0xMDIuNCAyMC4zLTMxLjQgMTMtNTkuNyAzMS43LTg0IDU1LjVhMjU4LjQ0IDI1OC40NCAwIDAwLTU2LjkgODIuOGMtMTMuOSAzMi4zLTIxIDY2LjYtMjEgMTAxLjkgMCAzMy4zIDYuOCA2OCAyMC4zIDEwMy4zIDExLjMgMjkuNSAyNy41IDYwLjEgNDguMiA5MSAzMi44IDQ4LjkgNzcuOSA5OS45IDEzMy45IDE1MS42IDkyLjggODUuNyAxODQuNyAxNDQuOSAxODguNiAxNDcuM2wyMy43IDE1LjJjMTAuNSA2LjcgMjQgNi43IDM0LjUgMGwyMy43LTE1LjJjMy45LTIuNSA5NS43LTYxLjYgMTg4LjYtMTQ3LjMgNTYtNTEuNyAxMDEuMS0xMDIuNyAxMzMuOS0xNTEuNiAyMC43LTMwLjkgMzctNjEuNSA0OC4yLTkxIDEzLjUtMzUuMyAyMC4zLTcwIDIwLjMtMTAzLjMuMS0zNS4zLTctNjkuNi0yMC45LTEwMS45ek01MTIgODE0LjhTMTU2IDU4Ni43IDE1NiAzODUuNUMxNTYgMjgzLjYgMjQwLjMgMjAxIDM0NC4zIDIwMWM3My4xIDAgMTM2LjUgNDAuOCAxNjcuNyAxMDAuNEM1NDMuMiAyNDEuOCA2MDYuNiAyMDEgNjc5LjcgMjAxYzEwNCAwIDE4OC4zIDgyLjYgMTg4LjMgMTg0LjUgMCAyMDEuMi0zNTYgNDI5LjMtMzU2IDQyOS4zeiIsZmlsbDphfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02NzkuNyAyMDFjLTczLjEgMC0xMzYuNSA0MC44LTE2Ny43IDEwMC40QzQ4MC44IDI0MS44IDQxNy40IDIwMSAzNDQuMyAyMDFjLTEwNCAwLTE4OC4zIDgyLjYtMTg4LjMgMTg0LjUgMCAyMDEuMiAzNTYgNDI5LjMgMzU2IDQyOS4zczM1Ni0yMjguMSAzNTYtNDI5LjNDODY4IDI4My42IDc4My43IDIwMSA2NzkuNyAyMDF6IixmaWxsOm59fV19fSxuYW1lOiJoZWFydCIsdGhlbWU6InR3b3RvbmUifTt0LmRlZmF1bHQ9ZX0sOTkzOTQ6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTk1NS43IDg1NmwtNDE2LTcyMGMtNi4yLTEwLjctMTYuOS0xNi0yNy43LTE2cy0yMS42IDUuMy0yNy43IDE2bC00MTYgNzIwQzU2IDg3Ny40IDcxLjQgOTA0IDk2IDkwNGg4MzJjMjQuNiAwIDQwLTI2LjYgMjcuNy00OHptLTc5MC40LTIzLjlMNTEyIDIzMS45IDg1OC43IDgzMkgxNjUuM3ptMzE5LTQ3NC4xbC0yMjggMzk0Yy0xMi4zIDIxLjMgMy4xIDQ4IDI3LjcgNDhoNDU1LjhjMjQuNyAwIDQwLjEtMjYuNyAyNy43LTQ4TDUzOS43IDM1OGMtNi4yLTEwLjctMTctMTYtMjcuNy0xNi0xMC44IDAtMjEuNiA1LjMtMjcuNyAxNnptMjE0IDM4NkgzMjUuN0w1MTIgNDIybDE4Ni4zIDMyMnptLTIxNC0xOTQuMWwtNTcgOTguNEM0MTUgNjY5LjUgNDMwLjQgNjk2IDQ1NSA2OTZoMTE0YzI0LjYgMCAzOS45LTI2LjUgMjcuNy00Ny43bC01Ny05OC40Yy02LjEtMTAuNi0xNi45LTE1LjktMjcuNy0xNS45cy0yMS41IDUuMy0yNy43IDE1Ljl6bTU3LjEgOTguNGgtNTguN2wyOS40LTUwLjcgMjkuMyA1MC43eiJ9fV19LG5hbWU6ImhlYXQtbWFwIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNTE3ODE6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTk1Ny42IDUwNy40TDYwMy4yIDE1OC4yYTcuOSA3LjkgMCAwMC0xMS4yIDBMMzUzLjMgMzkzLjRhOC4wMyA4LjAzIDAgMDAtLjEgMTEuM2wuMS4xIDQwIDM5LjQtMTE3LjIgMTE1LjNhOC4wMyA4LjAzIDAgMDAtLjEgMTEuM2wuMS4xIDM5LjUgMzguOS0xODkuMSAxODdINzIuMWMtNC40IDAtOC4xIDMuNi04LjEgOFY4NjBjMCA0LjQgMy42IDggOCA4aDM0NC45YzIuMSAwIDQuMS0uOCA1LjYtMi4zbDc2LjEtNzUuNiA0MC40IDM5LjhhNy45IDcuOSAwIDAwMTEuMiAwbDExNy4xLTExNS42IDQwLjEgMzkuNWE3LjkgNy45IDAgMDAxMS4yIDBsMjM4LjctMjM1LjJjMy40LTMgMy40LTggLjMtMTEuMnoifX1dfSxuYW1lOiJoaWdobGlnaHQiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sMzc2NjU6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTk1Ny42IDUwNy40TDYwMy4yIDE1OC4yYTcuOSA3LjkgMCAwMC0xMS4yIDBMMzUzLjMgMzkzLjRhOC4wMyA4LjAzIDAgMDAtLjEgMTEuM2wuMS4xIDQwIDM5LjQtMTE3LjIgMTE1LjNhOC4wMyA4LjAzIDAgMDAtLjEgMTEuM2wuMS4xIDM5LjUgMzguOS0xODkuMSAxODdINzIuMWMtNC40IDAtOC4xIDMuNi04LjEgOFY4NjBjMCA0LjQgMy42IDggOCA4aDM0NC45YzIuMSAwIDQuMS0uOCA1LjYtMi4zbDc2LjEtNzUuNiA0MC40IDM5LjhhNy45IDcuOSAwIDAwMTEuMiAwbDExNy4xLTExNS42IDQwLjEgMzkuNWE3LjkgNy45IDAgMDAxMS4yIDBsMjM4LjctMjM1LjJjMy40LTMgMy40LTggLjMtMTEuMnpNMzg5LjggNzk2LjJIMjI5LjZsMTM0LjQtMTMzIDgwLjEgNzguOS01NC4zIDU0LjF6bTE1NC44LTYyLjFMMzczLjIgNTY1LjJsNjguNi02Ny42IDE3MS40IDE2OC45LTY4LjYgNjcuNnpNNzEzLjEgNjU4TDQ1MC4zIDM5OS4xIDU5Ny42IDI1NGwyNjIuOCAyNTktMTQ3LjMgMTQ1eiJ9fV19LG5hbWU6ImhpZ2hsaWdodCIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDUzNzE0OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOmZ1bmN0aW9uKGEsbil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTIyOS42IDc5Ni4zaDE2MC4ybDU0LjMtNTQuMS04MC4xLTc4Ljl6bTIyMC43LTM5Ny4xbDI2Mi44IDI1OC45IDE0Ny4zLTE0NS0yNjIuOC0yNTl6bS03Ny4xIDE2Ni4xbDE3MS40IDE2OC45IDY4LjYtNjcuNi0xNzEuNC0xNjguOXoiLGZpbGw6bn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNOTU3LjYgNTA3LjVMNjAzLjIgMTU4LjNhNy45IDcuOSAwIDAwLTExLjIgMEwzNTMuMyAzOTMuNWE4LjAzIDguMDMgMCAwMC0uMSAxMS4zbC4xLjEgNDAgMzkuNC0xMTcuMiAxMTUuM2E4LjAzIDguMDMgMCAwMC0uMSAxMS4zbC4xLjEgMzkuNSAzOC45LTE4OS4xIDE4N0g3Mi4xYy00LjQgMC04LjEgMy42LTguMSA4djU1LjJjMCA0LjQgMy42IDggOCA4aDM0NC45YzIuMSAwIDQuMS0uOCA1LjYtMi4zbDc2LjEtNzUuNkw1MzkgODMwYTcuOSA3LjkgMCAwMDExLjIgMGwxMTcuMS0xMTUuNiA0MC4xIDM5LjVhNy45IDcuOSAwIDAwMTEuMiAwbDIzOC43LTIzNS4yYzMuNC0zIDMuNC04IC4zLTExLjJ6TTM4OS44IDc5Ni4zSDIyOS42bDEzNC40LTEzMyA4MC4xIDc4LjktNTQuMyA1NC4xem0xNTQuOC02Mi4xTDM3My4yIDU2NS4zbDY4LjYtNjcuNiAxNzEuNCAxNjguOS02OC42IDY3LjZ6bTE2OC41LTc2LjFMNDUwLjMgMzk5LjJsMTQ3LjMtMTQ1LjEgMjYyLjggMjU5LTE0Ny4zIDE0NXoiLGZpbGw6YX19XX19LG5hbWU6ImhpZ2hsaWdodCIsdGhlbWU6InR3b3RvbmUifTt0LmRlZmF1bHQ9ZX0sNjQyNjk6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUzNi4xIDI3M0g0ODhjLTQuNCAwLTggMy42LTggOHYyNzUuM2MwIDIuNiAxLjIgNSAzLjMgNi41bDE2NS4zIDEyMC43YzMuNiAyLjYgOC42IDEuOSAxMS4yLTEuN2wyOC42LTM5YzIuNy0zLjcgMS45LTguNy0xLjctMTEuMkw1NDQuMSA1MjguNVYyODFjMC00LjQtMy42LTgtOC04em0yMTkuOCA3NS4ybDE1Ni44IDM4LjNjNSAxLjIgOS45LTIuNiA5LjktNy43bC44LTE2MS41YzAtNi43LTcuNy0xMC41LTEyLjktNi4zTDc1Mi45IDMzNC4xYTggOCAwIDAwMyAxNC4xem0xNjcuNyAzMDEuMWwtNTYuNy0xOS41YTggOCAwIDAwLTEwLjEgNC44Yy0xLjkgNS4xLTMuOSAxMC4xLTYgMTUuMS0xNy44IDQyLjEtNDMuMyA4MC03NS45IDExMi41YTM1MyAzNTMgMCAwMS0xMTIuNSA3NS45IDM1Mi4xOCAzNTIuMTggMCAwMS0xMzcuNyAyNy44Yy00Ny44IDAtOTQuMS05LjMtMTM3LjctMjcuOGEzNTMgMzUzIDAgMDEtMTEyLjUtNzUuOWMtMzIuNS0zMi41LTU4LTcwLjQtNzUuOS0xMTIuNUEzNTMuNDQgMzUzLjQ0IDAgMDExNzEgNTEyYzAtNDcuOCA5LjMtOTQuMiAyNy44LTEzNy44IDE3LjgtNDIuMSA0My4zLTgwIDc1LjktMTEyLjVhMzUzIDM1MyAwIDAxMTEyLjUtNzUuOUM0MzAuNiAxNjcuMyA0NzcgMTU4IDUyNC44IDE1OHM5NC4xIDkuMyAxMzcuNyAyNy44QTM1MyAzNTMgMCAwMTc3NSAyNjEuN2MxMC4yIDEwLjMgMTkuOCAyMSAyOC42IDMyLjNsNTkuOC00Ni44Qzc4NC43IDE0Ni42IDY2Mi4yIDgxLjkgNTI0LjYgODIgMjg1IDgyLjEgOTIuNiAyNzYuNyA5NSA1MTYuNCA5Ny40IDc1MS45IDI4OC45IDk0MiA1MjQuOCA5NDJjMTg1LjUgMCAzNDMuNS0xMTcuNiA0MDMuNy0yODIuMyAxLjUtNC4yLS43LTguOS00LjktMTAuNHoifX1dfSxuYW1lOiJoaXN0b3J5Iix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sMzM2OTY6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTMwMCAyNzYuNWE1NiA1NiAwIDEwNTYtOTcgNTYgNTYgMCAwMC01NiA5N3ptMCAyODRhNTYgNTYgMCAxMDU2LTk3IDU2IDU2IDAgMDAtNTYgOTd6TTY0MCAyMjhhNTYgNTYgMCAxMDExMiAwIDU2IDU2IDAgMDAtMTEyIDB6bTAgMjg0YTU2IDU2IDAgMTAxMTIgMCA1NiA1NiAwIDAwLTExMiAwek0zMDAgODQ0LjVhNTYgNTYgMCAxMDU2LTk3IDU2IDU2IDAgMDAtNTYgOTd6TTY0MCA3OTZhNTYgNTYgMCAxMDExMiAwIDU2IDU2IDAgMDAtMTEyIDB6In19XX0sbmFtZToiaG9sZGVyIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNTU5MjM6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTk0Ni41IDUwNUw1MzQuNiA5My40YTMxLjkzIDMxLjkzIDAgMDAtNDUuMiAwTDc3LjUgNTA1Yy0xMiAxMi0xOC44IDI4LjMtMTguOCA0NS4zIDAgMzUuMyAyOC43IDY0IDY0IDY0aDQzLjRWOTA4YzAgMTcuNyAxNC4zIDMyIDMyIDMySDQ0OFY3MTZoMTEydjIyNGgyNjUuOWMxNy43IDAgMzItMTQuMyAzMi0zMlY2MTQuM2g0My40YzE3IDAgMzMuMy02LjcgNDUuMy0xOC44IDI0LjktMjUgMjQuOS02NS41LS4xLTkwLjV6In19XX0sbmFtZToiaG9tZSIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw0MzQyMDpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTQ2LjUgNTA1TDU2MC4xIDExOC44bC0yNS45LTI1LjlhMzEuNSAzMS41IDAgMDAtNDQuNCAwTDc3LjUgNTA1YTYzLjkgNjMuOSAwIDAwLTE4LjggNDZjLjQgMzUuMiAyOS43IDYzLjMgNjQuOSA2My4zaDQyLjVWOTQwaDY5MS44VjYxNC4zaDQzLjRjMTcuMSAwIDMzLjItNi43IDQ1LjMtMTguOGE2My42IDYzLjYgMCAwMDE4LjctNDUuM2MwLTE3LTYuNy0zMy4xLTE4LjgtNDUuMnpNNTY4IDg2OEg0NTZWNjY0aDExMnYyMDR6bTIxNy45LTMyNS43Vjg2OEg2MzJWNjQwYzAtMjIuMS0xNy45LTQwLTQwLTQwSDQzMmMtMjIuMSAwLTQwIDE3LjktNDAgNDB2MjI4SDIzOC4xVjU0Mi4zaC05NmwzNzAtMzY5LjcgMjMuMSAyMy4xTDg4MiA1NDIuM2gtOTYuMXoifX1dfSxuYW1lOiJob21lIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNzAzODk6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyLjEgMTcyLjZsLTM3MCAzNjkuN2g5NlY4NjhIMzkyVjY0MGMwLTIyLjEgMTcuOS00MCA0MC00MGgxNjBjMjIuMSAwIDQwIDE3LjkgNDAgNDB2MjI4aDE1My45VjU0Mi4zSDg4Mkw1MzUuMiAxOTUuN2wtMjMuMS0yMy4xem00MzQuNSA0MjIuOWMtNiA2LTEzLjEgMTAuOC0yMC44IDEzLjkgNy43LTMuMiAxNC44LTcuOSAyMC44LTEzLjl6bS04ODctMzQuN2M1IDMwLjMgMzEuNCA1My41IDYzLjEgNTMuNWguOWMtMzEuOSAwLTU4LjktMjMtNjQtNTMuNXptLS45LTEwLjV2LTEuOSAxLjl6bS4xLTIuNmMuMS0zLjEuNS02LjEgMS05LjEtLjYgMi45LS45IDYtMSA5LjF6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTk1MSA1MTBjMC0uMS0uMS0uMS0uMS0uMmwtMS44LTIuMWMtLjEtLjEtLjItLjMtLjQtLjQtLjctLjgtMS41LTEuNi0yLjItMi40TDU2MC4xIDExOC44bC0yNS45LTI1LjlhMzEuNSAzMS41IDAgMDAtNDQuNCAwTDc3LjUgNTA1YTYzLjYgNjMuNiAwIDAwLTE2IDI2LjZsLS42IDIuMS0uMyAxLjEtLjMgMS4yYy0uMi43LS4zIDEuNC0uNCAyLjEgMCAuMSAwIC4zLS4xLjQtLjYgMy0uOSA2LTEgOS4xdjMuM2MwIC41IDAgMSAuMSAxLjUgMCAuNSAwIC45LjEgMS40IDAgLjUuMSAxIC4xIDEuNSAwIC42LjEgMS4yLjIgMS44IDAgLjMuMS42LjEuOWwuMyAyLjV2LjFjNS4xIDMwLjUgMzIuMiA1My41IDY0IDUzLjVoNDIuNVY5NDBoNjkxLjdWNjE0LjNoNDMuNGM4LjYgMCAxNi45LTEuNyAyNC41LTQuOXMxNC43LTcuOSAyMC44LTEzLjlhNjMuNiA2My42IDAgMDAxOC43LTQ1LjNjMC0xNC43LTUtMjguOC0xNC4zLTQwLjJ6TTU2OCA4NjhINDU2VjY2NGgxMTJ2MjA0em0yMTcuOS0zMjUuN1Y4NjhINjMyVjY0MGMwLTIyLjEtMTcuOS00MC00MC00MEg0MzJjLTIyLjEgMC00MCAxNy45LTQwIDQwdjIyOEgyMzguMVY1NDIuM2gtOTZsMzcwLTM2OS43IDIzLjEgMjMuMUw4ODIgNTQyLjNoLTk2LjF6IixmaWxsOmF9fV19fSxuYW1lOiJob21lIix0aGVtZToidHdvdG9uZSJ9O3QuZGVmYXVsdD1lfSw4Mzk4MjpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNzQyIDMxOFYxODRoODZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThIMTk2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDg2djEzNGMwIDgxLjUgNDIuNCAxNTMuMiAxMDYuNCAxOTQtNjQgNDAuOC0xMDYuNCAxMTIuNS0xMDYuNCAxOTR2MTM0aC04NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg2MzJjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTg2VjcwNmMwLTgxLjUtNDIuNC0xNTMuMi0xMDYuNC0xOTQgNjQtNDAuOCAxMDYuNC0xMTIuNSAxMDYuNC0xOTR6In19XX0sbmFtZToiaG91cmdsYXNzIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDc2NTY6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTc0MiAzMThWMTg0aDg2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04SDE5NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg4NnYxMzRjMCA4MS41IDQyLjQgMTUzLjIgMTA2LjQgMTk0LTY0IDQwLjgtMTA2LjQgMTEyLjUtMTA2LjQgMTk0djEzNGgtODZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNjMyYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC04NlY3MDZjMC04MS41LTQyLjQtMTUzLjItMTA2LjQtMTk0IDY0LTQwLjggMTA2LjQtMTEyLjUgMTA2LjQtMTk0em0tNzIgMzg4djEzNEgzNTRWNzA2YzAtNDIuMiAxNi40LTgxLjkgNDYuMy0xMTEuN0M0MzAuMSA1NjQuNCA0NjkuOCA1NDggNTEyIDU0OHM4MS45IDE2LjQgMTExLjcgNDYuM0M2NTMuNiA2MjQuMSA2NzAgNjYzLjggNjcwIDcwNnptMC0zODhjMCA0Mi4yLTE2LjQgODEuOS00Ni4zIDExMS43QzU5My45IDQ1OS42IDU1NC4yIDQ3NiA1MTIgNDc2cy04MS45LTE2LjQtMTExLjctNDYuM0ExNTYuNjMgMTU2LjYzIDAgMDEzNTQgMzE4VjE4NGgzMTZ2MTM0eiJ9fV19LG5hbWU6ImhvdXJnbGFzcyIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDY1MTE6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDU0OGMtNDIuMiAwLTgxLjkgMTYuNC0xMTEuNyA0Ni4zQTE1Ni42MyAxNTYuNjMgMCAwMDM1NCA3MDZ2MTM0aDMxNlY3MDZjMC00Mi4yLTE2LjQtODEuOS00Ni4zLTExMS43QTE1Ni42MyAxNTYuNjMgMCAwMDUxMiA1NDh6TTM1NCAzMThjMCA0Mi4yIDE2LjQgODEuOSA0Ni4zIDExMS43QzQzMC4xIDQ1OS42IDQ2OS44IDQ3NiA1MTIgNDc2czgxLjktMTYuNCAxMTEuNy00Ni4zQzY1My42IDM5OS45IDY3MCAzNjAuMiA2NzAgMzE4VjE4NEgzNTR2MTM0eiIsZmlsbDpufX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik03NDIgMzE4VjE4NGg4NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOEgxOTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoODZ2MTM0YzAgODEuNSA0Mi40IDE1My4yIDEwNi40IDE5NC02NCA0MC44LTEwNi40IDExMi41LTEwNi40IDE5NHYxMzRoLTg2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDYzMmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtODZWNzA2YzAtODEuNS00Mi40LTE1My4yLTEwNi40LTE5NCA2NC00MC44IDEwNi40LTExMi41IDEwNi40LTE5NHptLTcyIDM4OHYxMzRIMzU0VjcwNmMwLTQyLjIgMTYuNC04MS45IDQ2LjMtMTExLjdDNDMwLjEgNTY0LjQgNDY5LjggNTQ4IDUxMiA1NDhzODEuOSAxNi40IDExMS43IDQ2LjNDNjUzLjYgNjI0LjEgNjcwIDY2My44IDY3MCA3MDZ6bTAtMzg4YzAgNDIuMi0xNi40IDgxLjktNDYuMyAxMTEuN0M1OTMuOSA0NTkuNiA1NTQuMiA0NzYgNTEyIDQ3NnMtODEuOS0xNi40LTExMS43LTQ2LjNBMTU2LjYzIDE1Ni42MyAwIDAxMzU0IDMxOFYxODRoMzE2djEzNHoiLGZpbGw6YX19XX19LG5hbWU6ImhvdXJnbGFzcyIsdGhlbWU6InR3b3RvbmUifTt0LmRlZmF1bHQ9ZX0sNjkzNDc6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTE0NS4yIDk2bDY2IDc0Ni42TDUxMiA5MjhsMjk5LjYtODUuNEw4NzguOSA5NkgxNDUuMnptNTk1IDE3Ny4xbC00LjggNDcuMi0xLjcgMTkuNUgzODIuM2w4LjIgOTQuMmgzMzUuMWwtMy4zIDI0LjMtMjEuMiAyNDIuMi0xLjcgMTYuMi0xODcgNTEuNnYuM2gtMS4ybC0uMy4xdi0uMWgtLjFsLTE4OC42LTUyTDMxMC44IDU3Mmg5MS4xbDYuNSA3My4yIDEwMi40IDI3LjdoLjRsMTAyLTI3LjYgMTEuNC0xMTguNkg1MTAuOXYtLjFIMzA2bC0yMi44LTI1My41LTEuNy0yNC4zaDQ2MC4zbC0xLjYgMjQuM3oifX1dfSxuYW1lOiJodG1sNSIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw4NDczODpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMTQ1IDk2bDY2IDc0Ni42TDUxMS44IDkyOGwyOTkuNi04NS40TDg3OC43IDk2SDE0NXptNjEwLjkgNzAwLjZsLTI0NC4xIDY5LjYtMjQ1LjItNjkuNi01Ni43LTY0MS4yaDYwMy44bC01Ny44IDY0MS4yek0yODEgMjQ5bDEuNyAyNC4zIDIyLjcgMjUzLjVoMjA2LjV2LS4xaDExMi45bC0xMS40IDExOC41TDUxMSA2NzIuOXYuMmgtLjhsLTEwMi40LTI3LjctNi41LTczLjJoLTkxbDExLjMgMTQ0LjcgMTg4LjYgNTJoMS43di0uNGwxODcuNy01MS43IDEuNy0xNi4zIDIxLjItMjQyLjIgMy4yLTI0LjNINTExdi4ySDM4OS45bC04LjItOTQuMmgzNTIuMWwxLjctMTkuNSA0LjgtNDcuMkw3NDIgMjQ5SDUxMXoifX1dfSxuYW1lOiJodG1sNSIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDE3NjU1OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOmZ1bmN0aW9uKGEsbil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTE0NSA5Nmw2NiA3NDYuNkw1MTEuOCA5MjhsMjk5LjYtODUuNEw4NzguNyA5NkgxNDV6bTYxMC45IDcwMC42bC0yNDQuMSA2OS42LTI0NS4yLTY5LjYtNTYuNy02NDEuMmg2MDMuOGwtNTcuOCA2NDEuMnoiLGZpbGw6YX19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMjA5LjkgMTU1LjRsNTYuNyA2NDEuMiAyNDUuMiA2OS42IDI0NC4xLTY5LjYgNTcuOC02NDEuMkgyMDkuOXptNTMwLjQgMTE3LjlsLTQuOCA0Ny4yLTEuNyAxOS41SDM4MS43bDguMiA5NC4ySDUxMXYtLjJoMjE0LjdsLTMuMiAyNC4zLTIxLjIgMjQyLjItMS43IDE2LjMtMTg3LjcgNTEuN3YuNGgtMS43bC0xODguNi01Mi0xMS4zLTE0NC43aDkxbDYuNSA3My4yIDEwMi40IDI3LjdoLjh2LS4ybDEwMi40LTI3LjcgMTEuNC0xMTguNUg1MTEuOXYuMUgzMDUuNGwtMjIuNy0yNTMuNUwyODEgMjQ5aDQ2MWwtMS43IDI0LjN6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTI4MSAyNDlsMS43IDI0LjMgMjIuNyAyNTMuNWgyMDYuNXYtLjFoMTEyLjlsLTExLjQgMTE4LjVMNTExIDY3Mi45di4yaC0uOGwtMTAyLjQtMjcuNy02LjUtNzMuMmgtOTFsMTEuMyAxNDQuNyAxODguNiA1MmgxLjd2LS40bDE4Ny43LTUxLjcgMS43LTE2LjMgMjEuMi0yNDIuMiAzLjItMjQuM0g1MTF2LjJIMzg5LjlsLTguMi05NC4yaDM1Mi4xbDEuNy0xOS41IDQuOC00Ny4yTDc0MiAyNDlINTExeiIsZmlsbDphfX1dfX0sbmFtZToiaHRtbDUiLHRoZW1lOiJ0d290b25lIn07dC5kZWZhdWx0PWV9LDU0Nzc6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTM3MyA0MTFjLTI4LjUgMC01MS43IDIzLjMtNTEuNyA1MnMyMy4yIDUyIDUxLjcgNTIgNTEuNy0yMy4zIDUxLjctNTItMjMuMi01Mi01MS43LTUyem01NTUtMjUxSDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY2NDBjMCAxNy43IDE0LjMgMzIgMzIgMzJoODMyYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE5MmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNjA4IDQyMGMwLTQuNCAxLTggMi4zLThoMTIzLjRjMS4zIDAgMi4zIDMuNiAyLjMgOHY0OGMwIDQuNC0xIDgtMi4zIDhINjEwLjNjLTEuMyAwLTIuMy0zLjYtMi4zLTh2LTQ4em0tODYgMjUzaC00My45Yy00LjIgMC03LjYtMy4zLTcuOS03LjUtMy44LTUwLjUtNDYtOTAuNS05Ny4yLTkwLjVzLTkzLjQgNDAtOTcuMiA5MC41Yy0uMyA0LjItMy43IDcuNS03LjkgNy41SDIyNGE4IDggMCAwMS04LTguNGMyLjgtNTMuMyAzMi05OS43IDc0LjYtMTI2LjFhMTExLjggMTExLjggMCAwMS0yOS4xLTc1LjVjMC02MS45IDQ5LjktMTEyIDExMS40LTExMnMxMTEuNCA1MC4xIDExMS40IDExMmMwIDI5LjEtMTEgNTUuNS0yOS4xIDc1LjUgNDIuNyAyNi41IDcxLjggNzIuOCA3NC42IDEyNi4xLjQgNC42LTMuMiA4LjQtNy44IDguNHptMjc4LjktNTNINjE1LjFjLTMuOSAwLTcuMS0zLjYtNy4xLTh2LTQ4YzAtNC40IDMuMi04IDcuMS04aDE4NS43YzMuOSAwIDcuMSAzLjYgNy4xIDh2NDhoLjFjMCA0LjQtMy4yIDgtNy4xIDh6In19XX0sbmFtZToiaWRjYXJkIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDQzNzE0OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MjggMTYwSDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY2NDBjMCAxNy43IDE0LjMgMzIgMzIgMzJoODMyYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE5MmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDYzMkgxMzZWMjMyaDc1MnY1NjB6TTYxMC4zIDQ3NmgxMjMuNGMxLjMgMCAyLjMtMy42IDIuMy04di00OGMwLTQuNC0xLTgtMi4zLThINjEwLjNjLTEuMyAwLTIuMyAzLjYtMi4zIDh2NDhjMCA0LjQgMSA4IDIuMyA4em00LjggMTQ0aDE4NS43YzMuOSAwIDcuMS0zLjYgNy4xLTh2LTQ4YzAtNC40LTMuMi04LTcuMS04SDYxNS4xYy0zLjkgMC03LjEgMy42LTcuMSA4djQ4YzAgNC40IDMuMiA4IDcuMSA4ek0yMjQgNjczaDQzLjljNC4yIDAgNy42LTMuMyA3LjktNy41IDMuOC01MC41IDQ2LTkwLjUgOTcuMi05MC41czkzLjQgNDAgOTcuMiA5MC41Yy4zIDQuMiAzLjcgNy41IDcuOSA3LjVINTIyYTggOCAwIDAwOC04LjRjLTIuOC01My4zLTMyLTk5LjctNzQuNi0xMjYuMWExMTEuOCAxMTEuOCAwIDAwMjkuMS03NS41YzAtNjEuOS00OS45LTExMi0xMTEuNC0xMTJzLTExMS40IDUwLjEtMTExLjQgMTEyYzAgMjkuMSAxMSA1NS41IDI5LjEgNzUuNWExNTguMDkgMTU4LjA5IDAgMDAtNzQuNiAxMjYuMWMtLjQgNC42IDMuMiA4LjQgNy44IDguNHptMTQ5LTI2MmMyOC41IDAgNTEuNyAyMy4zIDUxLjcgNTJzLTIzLjIgNTItNTEuNyA1Mi01MS43LTIzLjMtNTEuNy01MiAyMy4yLTUyIDUxLjctNTJ6In19XX0sbmFtZToiaWRjYXJkIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sMTQzMjQ6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTI4IDE2MEg5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjQwYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDgzMmMxNy43IDAgMzItMTQuMyAzMi0zMlYxOTJjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA2MzJIMTM2VjIzMmg3NTJ2NTYweiIsZmlsbDphfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0xMzYgNzkyaDc1MlYyMzJIMTM2djU2MHptNDcyLTM3MmMwLTQuNCAxLTggMi4zLThoMTIzLjRjMS4zIDAgMi4zIDMuNiAyLjMgOHY0OGMwIDQuNC0xIDgtMi4zIDhINjEwLjNjLTEuMyAwLTIuMy0zLjYtMi4zLTh2LTQ4em0wIDE0NGMwLTQuNCAzLjItOCA3LjEtOGgxODUuN2MzLjkgMCA3LjEgMy42IDcuMSA4djQ4YzAgNC40LTMuMiA4LTcuMSA4SDYxNS4xYy0zLjkgMC03LjEtMy42LTcuMS04di00OHpNMjE2LjIgNjY0LjZjMi44LTUzLjMgMzEuOS05OS42IDc0LjYtMTI2LjEtMTguMS0yMC0yOS4xLTQ2LjQtMjkuMS03NS41IDAtNjEuOSA0OS45LTExMiAxMTEuNC0xMTJzMTExLjQgNTAuMSAxMTEuNCAxMTJjMCAyOS4xLTExIDU1LjYtMjkuMSA3NS41IDQyLjYgMjYuNCA3MS44IDcyLjggNzQuNiAxMjYuMWE4IDggMCAwMS04IDguNGgtNDMuOWMtNC4yIDAtNy42LTMuMy03LjktNy41LTMuOC01MC41LTQ2LTkwLjUtOTcuMi05MC41cy05My40IDQwLTk3LjIgOTAuNWMtLjMgNC4yLTMuNyA3LjUtNy45IDcuNUgyMjRjLTQuNiAwLTguMi0zLjgtNy44LTguNHoiLGZpbGw6bn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMzIxLjMgNDYzYTUxLjcgNTIgMCAxMDEwMy40IDAgNTEuNyA1MiAwIDEwLTEwMy40IDB6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTYxMC4zIDQ3NmgxMjMuNGMxLjMgMCAyLjMtMy42IDIuMy04di00OGMwLTQuNC0xLTgtMi4zLThINjEwLjNjLTEuMyAwLTIuMyAzLjYtMi4zIDh2NDhjMCA0LjQgMSA4IDIuMyA4em00LjggMTQ0aDE4NS43YzMuOSAwIDcuMS0zLjYgNy4xLTh2LTQ4YzAtNC40LTMuMi04LTcuMS04SDYxNS4xYy0zLjkgMC03LjEgMy42LTcuMSA4djQ4YzAgNC40IDMuMiA4IDcuMSA4ek0yMjQgNjczaDQzLjljNC4yIDAgNy42LTMuMyA3LjktNy41IDMuOC01MC41IDQ2LTkwLjUgOTcuMi05MC41czkzLjQgNDAgOTcuMiA5MC41Yy4zIDQuMiAzLjcgNy41IDcuOSA3LjVINTIyYTggOCAwIDAwOC04LjRjLTIuOC01My4zLTMyLTk5LjctNzQuNi0xMjYuMWExMTEuOCAxMTEuOCAwIDAwMjkuMS03NS41YzAtNjEuOS00OS45LTExMi0xMTEuNC0xMTJzLTExMS40IDUwLjEtMTExLjQgMTEyYzAgMjkuMSAxMSA1NS41IDI5LjEgNzUuNWExNTguMDkgMTU4LjA5IDAgMDAtNzQuNiAxMjYuMWMtLjQgNC42IDMuMiA4LjQgNy44IDguNHptMTQ5LTI2MmMyOC41IDAgNTEuNyAyMy4zIDUxLjcgNTJzLTIzLjIgNTItNTEuNyA1Mi01MS43LTIzLjMtNTEuNy01MiAyMy4yLTUyIDUxLjctNTJ6IixmaWxsOmF9fV19fSxuYW1lOiJpZGNhcmQiLHRoZW1lOiJ0d290b25lIn07dC5kZWZhdWx0PWV9LDI4NDAzOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02OTMuNiAyODQuNGMtMjQgMC01MS4xIDExLjctNzIuNiAyMiA0Ni4zIDE4IDg2IDU3LjMgMTEyLjMgOTkuNiA3LjEtMTguOSAxNC42LTQ3LjkgMTQuNi02Ny45IDAtMzItMjIuOC01My43LTU0LjMtNTMuN3pNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTI1My45IDQ5Mi45SDQzNy4xYzAgMTAwLjQgMTQ0LjMgMTM2IDE5Ni44IDQ3LjRoMTIwLjhjLTMyLjYgOTEuNy0xMTkuNyAxNDYtMjE2LjggMTQ2LTM1LjEgMC03MC4zLS4xLTEwMS43LTE1LjYtODcuNCA0NC41LTE4MC4zIDU2LjYtMTgwLjMtNDIgMC00NS44IDIzLjItMTA3LjEgNDQtMTQ1QzMzNSA0ODQgMzgxLjMgNDIyLjggNDM1LjYgMzc0LjVjLTQzLjcgMTguOS05MS4xIDY2LjMtMTIyIDEwMS4yIDI1LjktMTEyLjggMTI5LjUtMTkzLjYgMjM3LjEtMTg2LjUgMTMwLTU5LjggMjA5LjctMzQuMSAyMDkuNyAzOC42IDAgMjcuNC0xMC42IDYzLjMtMjEuNCA4Ny45IDI1LjIgNDUuNSAzMy4zIDk3LjYgMjYuOSAxNDEuMnpNNTQwLjUgMzk5LjFjLTUzLjcgMC0xMDIgMzkuNy0xMDQgOTQuOWgyMDhjLTItNTUuMS01MC42LTk0LjktMTA0LTk0Ljl6TTMyMC42IDYwMi45Yy03MyAxNTIuNCAxMS41IDE3Mi4yIDEwMC4zIDEyMy4zLTQ2LjYtMjcuNS04Mi42LTcyLjItMTAwLjMtMTIzLjN6In19XX0sbmFtZToiaWUtY2lyY2xlIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDQ1OTcyOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NTIuNiAzNjcuNmMxNi4zLTM2LjkgMzIuMS05MC43IDMyLjEtMTMxLjggMC0xMDkuMS0xMTkuNS0xNDcuNi0zMTQuNS01Ny45LTE2MS40LTEwLjgtMzE2LjggMTEwLjUtMzU1LjYgMjc5LjcgNDYuMy01Mi4zIDExNy40LTEyMy40IDE4My0xNTEuN0MzMTYuMSAzNzguMyAyNDYuNyA0NzAgMTk0IDU2NS42Yy0zMS4xIDU2LjktNjYgMTQ4LjgtNjYgMjE3LjUgMCAxNDcuOSAxMzkuMyAxMjkuOCAyNzAuNCA2MyA0Ny4xIDIzLjEgOTkuOCAyMy40IDE1Mi41IDIzLjQgMTQ1LjcgMCAyNzYuNC04MS40IDMyNS4yLTIxOUg2OTQuOWMtNzguOCAxMzIuOS0yOTUuMiA3OS41LTI5NS4yLTcxLjJoNDkzLjJjOS42LTY1LjQtMi41LTE0My42LTQwLjMtMjExLjd6TTIyNC44IDY0OC4zYzI2LjYgNzYuNyA4MC42IDE0My44IDE1MC40IDE4NS0xMzMuMSA3My40LTI1OS45IDQzLjYtMTUwLjQtMTg1em0xNzQtMTYzLjNjMy04Mi43IDc1LjQtMTQyLjMgMTU2LTE0Mi4zIDgwLjEgMCAxNTMgNTkuNiAxNTYgMTQyLjNoLTMxMnptMjc2LjgtMjgxLjRjMzIuMS0xNS40IDcyLjgtMzMgMTA4LjgtMzMgNDcuMSAwIDgxLjQgMzIuNiA4MS40IDgwLjYgMCAzMC0xMS4xIDczLjUtMjEuOSAxMDEuOC0zOS4zLTYzLjUtOTguOS0xMjIuNC0xNjguMy0xNDkuNHoifX1dfSxuYW1lOiJpZSIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDMyODpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek03NjUuOSA1NTYuOUg0MzcuMWMwIDEwMC40IDE0NC4zIDEzNiAxOTYuOCA0Ny40aDEyMC44Yy0zMi42IDkxLjctMTE5LjcgMTQ2LTIxNi44IDE0Ni0zNS4xIDAtNzAuMy0uMS0xMDEuNy0xNS42LTg3LjQgNDQuNS0xODAuMyA1Ni42LTE4MC4zLTQyIDAtNDUuOCAyMy4yLTEwNy4xIDQ0LTE0NUMzMzUgNDg0IDM4MS4zIDQyMi44IDQzNS42IDM3NC41Yy00My43IDE4LjktOTEuMSA2Ni4zLTEyMiAxMDEuMiAyNS45LTExMi44IDEyOS41LTE5My42IDIzNy4xLTE4Ni41IDEzMC01OS44IDIwOS43LTM0LjEgMjA5LjcgMzguNiAwIDI3LjQtMTAuNiA2My4zLTIxLjQgODcuOSAyNS4yIDQ1LjUgMzMuMyA5Ny42IDI2LjkgMTQxLjJ6bS03Mi4zLTI3Mi41Yy0yNCAwLTUxLjEgMTEuNy03Mi42IDIyIDQ2LjMgMTggODYgNTcuMyAxMTIuMyA5OS42IDcuMS0xOC45IDE0LjYtNDcuOSAxNC42LTY3LjkgMC0zMi0yMi44LTUzLjctNTQuMy01My43ek01NDAuNSAzOTkuMWMtNTMuNyAwLTEwMiAzOS43LTEwNCA5NC45aDIwOGMtMi01NS4xLTUwLjYtOTQuOS0xMDQtOTQuOXpNMzIwLjYgNjAyLjljLTczIDE1Mi40IDExLjUgMTcyLjIgMTAwLjMgMTIzLjMtNDYuNi0yNy41LTgyLjYtNzIuMi0xMDAuMy0xMjMuM3oifX1dfSxuYW1lOiJpZS1zcXVhcmUiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sNDU2MDQ6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7ImZpbGwtcnVsZSI6ImV2ZW5vZGQiLHZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgOTEySDE0NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMTQ0YzAtMTcuNyAxNC4zLTMyIDMyLTMyaDM2MGM0LjQgMCA4IDMuNiA4IDh2NTZjMCA0LjQtMy42IDgtOCA4SDE4NHY2NTZoNjU2VjUyMGMwLTQuNCAzLjYtOCA4LThoNTZjNC40IDAgOCAzLjYgOCA4djM2MGMwIDE3LjctMTQuMyAzMi0zMiAzMnpNNjUzLjMgNDI0LjZsNTIuMiA1Mi4yYTguMDEgOC4wMSAwIDAxLTQuNyAxMy42bC0xNzkuNCAyMWMtNS4xLjYtOS41LTMuNy04LjktOC45bDIxLTE3OS40Yy44LTYuNiA4LjktOS40IDEzLjYtNC43bDUyLjQgNTIuNCAyNTYuMi0yNTYuMmMzLjEtMy4xIDguMi0zLjEgMTEuMyAwbDQyLjQgNDIuNGMzLjEgMy4xIDMuMSA4LjIgMCAxMS4zTDY1My4zIDQyNC42eiJ9fV19LG5hbWU6ImltcG9ydCIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDIyMTE3OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjAgMCAxMDI0IDEwMjQiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODUuMiA0NDYuM2wtLjItLjgtMTEyLjItMjg1LjFjLTUtMTYuMS0xOS45LTI3LjItMzYuOC0yNy4ySDI4MS4yYy0xNyAwLTMyLjEgMTEuMy0zNi45IDI3LjZMMTM5LjQgNDQzbC0uMy43LS4yLjhjLTEuMyA0LjktMS43IDkuOS0xIDE0LjgtLjEgMS42LS4yIDMuMi0uMiA0LjhWODMwYTYwLjkgNjAuOSAwIDAwNjAuOCA2MC44aDYyNy4yYzMzLjUgMCA2MC44LTI3LjMgNjAuOS02MC44VjQ2NC4xYzAtMS4zIDAtMi42LS4xLTMuNy40LTQuOSAwLTkuNi0xLjMtMTQuMXptLTI5NS44LTQzbC0uMyAxNS43Yy0uOCA0NC45LTMxLjggNzUuMS03Ny4xIDc1LjEtMjIuMSAwLTQxLjEtNy4xLTU0LjgtMjAuNlM0MzYgNDQxLjIgNDM1LjYgNDE5bC0uMy0xNS43SDIyOS41TDMwOSAyMTBoMzk5LjJsODEuNyAxOTMuM0g1ODkuNHptLTM3NSA3Ni44aDE1Ny4zYzI0LjMgNTcuMSA3NiA5MC44IDE0MC40IDkwLjggMzMuNyAwIDY1LTkuNCA5MC4zLTI3LjIgMjIuMi0xNS42IDM5LjUtMzcuNCA1MC43LTYzLjZoMTU2LjVWODE0SDIxNC40VjQ4MC4xeiJ9fV19LG5hbWU6ImluYm94Iix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sMTUzNjk6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0zMiA2NjRjMCA0LjQtMy42IDgtOCA4aC00OGMtNC40IDAtOC0zLjYtOC04VjQ1NmMwLTQuNCAzLjYtOCA4LThoNDhjNC40IDAgOCAzLjYgOCA4djI3MnptLTMyLTM0NGE0OC4wMSA0OC4wMSAwIDAxMC05NiA0OC4wMSA0OC4wMSAwIDAxMCA5NnoifX1dfSxuYW1lOiJpbmZvLWNpcmNsZSIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSwyMDcwMjpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeiJ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQ2NCAzMzZhNDggNDggMCAxMDk2IDAgNDggNDggMCAxMC05NiAwem03MiAxMTJoLTQ4Yy00LjQgMC04IDMuNi04IDh2MjcyYzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LThWNDU2YzAtNC40LTMuNi04LTgtOHoifX1dfSxuYW1lOiJpbmZvLWNpcmNsZSIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDU2NDY3OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOmZ1bmN0aW9uKGEsbil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnoiLGZpbGw6YX19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDE0MGMtMjA1LjQgMC0zNzIgMTY2LjYtMzcyIDM3MnMxNjYuNiAzNzIgMzcyIDM3MiAzNzItMTY2LjYgMzcyLTM3Mi0xNjYuNi0zNzItMzcyLTM3MnptMzIgNTg4YzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOFY0NTZjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHYyNzJ6bS0zMi0zNDRhNDguMDEgNDguMDEgMCAwMTAtOTYgNDguMDEgNDguMDEgMCAwMTAgOTZ6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQ2NCAzMzZhNDggNDggMCAxMDk2IDAgNDggNDggMCAxMC05NiAwem03MiAxMTJoLTQ4Yy00LjQgMC04IDMuNi04IDh2MjcyYzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LThWNDU2YzAtNC40LTMuNi04LTgtOHoiLGZpbGw6YX19XX19LG5hbWU6ImluZm8tY2lyY2xlIix0aGVtZToidHdvdG9uZSJ9O3QuZGVmYXVsdD1lfSw0MzE0NzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNDQ4IDIyNGE2NCA2NCAwIDEwMTI4IDAgNjQgNjQgMCAxMC0xMjggMHptOTYgMTY4aC02NGMtNC40IDAtOCAzLjYtOCA4djQ2NGMwIDQuNCAzLjYgOCA4IDhoNjRjNC40IDAgOC0zLjYgOC04VjQwMGMwLTQuNC0zLjYtOC04LTh6In19XX0sbmFtZToiaW5mbyIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDIzNDk3OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoiZGVmcyIsYXR0cnM6e30sY2hpbGRyZW46W3t0YWc6InN0eWxlIixhdHRyczp7fX1dfSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg3OC43IDMzNkgxNDUuM2MtMTguNCAwLTMzLjMgMTQuMy0zMy4zIDMydjQ2NGMwIDE3LjcgMTQuOSAzMiAzMy4zIDMyaDczMy4zYzE4LjQgMCAzMy4zLTE0LjMgMzMuMy0zMlYzNjhjLjEtMTcuNy0xNC44LTMyLTMzLjItMzJ6TTM2MCA3OTJIMTg0VjYzMmgxNzZ2MTYwem0wLTIyNEgxODRWNDA4aDE3NnYxNjB6bTI0MCAyMjRINDI0VjYzMmgxNzZ2MTYwem0wLTIyNEg0MjRWNDA4aDE3NnYxNjB6bTI0MCAyMjRINjY0VjYzMmgxNzZ2MTYwem0wLTIyNEg2NjRWNDA4aDE3NnYxNjB6bTY0LTQwOEgxMjBjLTQuNCAwLTggMy42LTggOHY4MGMwIDQuNCAzLjYgOCA4IDhoNzg0YzQuNCAwIDgtMy42IDgtOHYtODBjMC00LjQtMy42LTgtOC04eiJ9fV19LG5hbWU6Imluc2VydC1yb3ctYWJvdmUiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw5NTk3NDpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6ImRlZnMiLGF0dHJzOnt9LGNoaWxkcmVuOlt7dGFnOiJzdHlsZSIsYXR0cnM6e319XX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MDQgNzY4SDEyMGMtNC40IDAtOCAzLjYtOCA4djgwYzAgNC40IDMuNiA4IDggOGg3ODRjNC40IDAgOC0zLjYgOC04di04MGMwLTQuNC0zLjYtOC04LTh6bS0yNS4zLTYwOEgxNDUuM2MtMTguNCAwLTMzLjMgMTQuMy0zMy4zIDMydjQ2NGMwIDE3LjcgMTQuOSAzMiAzMy4zIDMyaDczMy4zYzE4LjQgMCAzMy4zLTE0LjMgMzMuMy0zMlYxOTJjLjEtMTcuNy0xNC44LTMyLTMzLjItMzJ6TTM2MCA2MTZIMTg0VjQ1NmgxNzZ2MTYwem0wLTIyNEgxODRWMjMyaDE3NnYxNjB6bTI0MCAyMjRINDI0VjQ1NmgxNzZ2MTYwem0wLTIyNEg0MjRWMjMyaDE3NnYxNjB6bTI0MCAyMjRINjY0VjQ1NmgxNzZ2MTYwem0wLTIyNEg2NjRWMjMyaDE3NnYxNjB6In19XX0sbmFtZToiaW5zZXJ0LXJvdy1iZWxvdyIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDk3MDc2OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoiZGVmcyIsYXR0cnM6e30sY2hpbGRyZW46W3t0YWc6InN0eWxlIixhdHRyczp7fX1dfSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTI0OCAxMTJoLTgwYy00LjQgMC04IDMuNi04IDh2Nzg0YzAgNC40IDMuNiA4IDggOGg4MGM0LjQgMCA4LTMuNiA4LThWMTIwYzAtNC40LTMuNi04LTgtOHptNTg0IDBIMzY4Yy0xNy43IDAtMzIgMTQuOS0zMiAzMy4zdjczMy4zYzAgMTguNCAxNC4zIDMzLjMgMzIgMzMuM2g0NjRjMTcuNyAwIDMyLTE0LjkgMzItMzMuM1YxNDUuM2MwLTE4LjQtMTQuMy0zMy4zLTMyLTMzLjN6TTU2OCA4NDBINDA4VjY2NGgxNjB2MTc2em0wLTI0MEg0MDhWNDI0aDE2MHYxNzZ6bTAtMjQwSDQwOFYxODRoMTYwdjE3NnptMjI0IDQ4MEg2MzJWNjY0aDE2MHYxNzZ6bTAtMjQwSDYzMlY0MjRoMTYwdjE3NnptMC0yNDBINjMyVjE4NGgxNjB2MTc2eiJ9fV19LG5hbWU6Imluc2VydC1yb3ctbGVmdCIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDU3NzExOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoiZGVmcyIsYXR0cnM6e30sY2hpbGRyZW46W3t0YWc6InN0eWxlIixhdHRyczp7fX1dfSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg1NiAxMTJoLTgwYy00LjQgMC04IDMuNi04IDh2Nzg0YzAgNC40IDMuNiA4IDggOGg4MGM0LjQgMCA4LTMuNiA4LThWMTIwYzAtNC40LTMuNi04LTgtOHptLTIwMCAwSDE5MmMtMTcuNyAwLTMyIDE0LjktMzIgMzMuM3Y3MzMuM2MwIDE4LjQgMTQuMyAzMy4zIDMyIDMzLjNoNDY0YzE3LjcgMCAzMi0xNC45IDMyLTMzLjNWMTQ1LjNjMC0xOC40LTE0LjMtMzMuMy0zMi0zMy4zek0zOTIgODQwSDIzMlY2NjRoMTYwdjE3NnptMC0yNDBIMjMyVjQyNGgxNjB2MTc2em0wLTI0MEgyMzJWMTg0aDE2MHYxNzZ6bTIyNCA0ODBINDU2VjY2NGgxNjB2MTc2em0wLTI0MEg0NTZWNDI0aDE2MHYxNzZ6bTAtMjQwSDQ1NlYxODRoMTYwdjE3NnoifX1dfSxuYW1lOiJpbnNlcnQtcm93LXJpZ2h0Iix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNzg0OTk6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiAzNzguN2MtNzMuNCAwLTEzMy4zIDU5LjktMTMzLjMgMTMzLjNTNDM4LjYgNjQ1LjMgNTEyIDY0NS4zIDY0NS4zIDU4NS40IDY0NS4zIDUxMiA1ODUuNCAzNzguNyA1MTIgMzc4Ljd6TTkxMS44IDUxMmMwLTU1LjIuNS0xMDkuOS0yLjYtMTY1LTMuMS02NC0xNy43LTEyMC44LTY0LjUtMTY3LjYtNDYuOS00Ni45LTEwMy42LTYxLjQtMTY3LjYtNjQuNS01NS4yLTMuMS0xMDkuOS0yLjYtMTY1LTIuNi01NS4yIDAtMTA5LjktLjUtMTY1IDIuNi02NCAzLjEtMTIwLjggMTcuNy0xNjcuNiA2NC41QzEzMi42IDIyNi4zIDExOC4xIDI4MyAxMTUgMzQ3Yy0zLjEgNTUuMi0yLjYgMTA5LjktMi42IDE2NXMtLjUgMTA5LjkgMi42IDE2NWMzLjEgNjQgMTcuNyAxMjAuOCA2NC41IDE2Ny42IDQ2LjkgNDYuOSAxMDMuNiA2MS40IDE2Ny42IDY0LjUgNTUuMiAzLjEgMTA5LjkgMi42IDE2NSAyLjYgNTUuMiAwIDEwOS45LjUgMTY1LTIuNiA2NC0zLjEgMTIwLjgtMTcuNyAxNjcuNi02NC41IDQ2LjktNDYuOSA2MS40LTEwMy42IDY0LjUtMTY3LjYgMy4yLTU1LjEgMi42LTEwOS44IDIuNi0xNjV6TTUxMiA3MTcuMWMtMTEzLjUgMC0yMDUuMS05MS42LTIwNS4xLTIwNS4xUzM5OC41IDMwNi45IDUxMiAzMDYuOSA3MTcuMSAzOTguNSA3MTcuMSA1MTIgNjI1LjUgNzE3LjEgNTEyIDcxNy4xem0yMTMuNS0zNzAuN2MtMjYuNSAwLTQ3LjktMjEuNC00Ny45LTQ3LjlzMjEuNC00Ny45IDQ3LjktNDcuOSA0Ny45IDIxLjQgNDcuOSA0Ny45YTQ3Ljg0IDQ3Ljg0IDAgMDEtNDcuOSA0Ny45eiJ9fV19LG5hbWU6Imluc3RhZ3JhbSIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw5NTcyOTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDMwNi45Yy0xMTMuNSAwLTIwNS4xIDkxLjYtMjA1LjEgMjA1LjFTMzk4LjUgNzE3LjEgNTEyIDcxNy4xIDcxNy4xIDYyNS41IDcxNy4xIDUxMiA2MjUuNSAzMDYuOSA1MTIgMzA2Ljl6bTAgMzM4LjRjLTczLjQgMC0xMzMuMy01OS45LTEzMy4zLTEzMy4zUzQzOC42IDM3OC43IDUxMiAzNzguNyA2NDUuMyA0MzguNiA2NDUuMyA1MTIgNTg1LjQgNjQ1LjMgNTEyIDY0NS4zem0yMTMuNS0zOTQuNmMtMjYuNSAwLTQ3LjkgMjEuNC00Ny45IDQ3LjlzMjEuNCA0Ny45IDQ3LjkgNDcuOSA0Ny45LTIxLjMgNDcuOS00Ny45YTQ3Ljg0IDQ3Ljg0IDAgMDAtNDcuOS00Ny45ek05MTEuOCA1MTJjMC01NS4yLjUtMTA5LjktMi42LTE2NS0zLjEtNjQtMTcuNy0xMjAuOC02NC41LTE2Ny42LTQ2LjktNDYuOS0xMDMuNi02MS40LTE2Ny42LTY0LjUtNTUuMi0zLjEtMTA5LjktMi42LTE2NS0yLjYtNTUuMiAwLTEwOS45LS41LTE2NSAyLjYtNjQgMy4xLTEyMC44IDE3LjctMTY3LjYgNjQuNUMxMzIuNiAyMjYuMyAxMTguMSAyODMgMTE1IDM0N2MtMy4xIDU1LjItMi42IDEwOS45LTIuNiAxNjVzLS41IDEwOS45IDIuNiAxNjVjMy4xIDY0IDE3LjcgMTIwLjggNjQuNSAxNjcuNiA0Ni45IDQ2LjkgMTAzLjYgNjEuNCAxNjcuNiA2NC41IDU1LjIgMy4xIDEwOS45IDIuNiAxNjUgMi42IDU1LjIgMCAxMDkuOS41IDE2NS0yLjYgNjQtMy4xIDEyMC44LTE3LjcgMTY3LjYtNjQuNSA0Ni45LTQ2LjkgNjEuNC0xMDMuNiA2NC41LTE2Ny42IDMuMi01NS4xIDIuNi0xMDkuOCAyLjYtMTY1em0tODggMjM1LjhjLTcuMyAxOC4yLTE2LjEgMzEuOC0zMC4yIDQ1LjgtMTQuMSAxNC4xLTI3LjYgMjIuOS00NS44IDMwLjJDNjk1LjIgODQ0LjcgNTcwLjMgODQwIDUxMiA4NDBjLTU4LjMgMC0xODMuMyA0LjctMjM1LjktMTYuMS0xOC4yLTcuMy0zMS44LTE2LjEtNDUuOC0zMC4yLTE0LjEtMTQuMS0yMi45LTI3LjYtMzAuMi00NS44QzE3OS4zIDY5NS4yIDE4NCA1NzAuMyAxODQgNTEyYzAtNTguMy00LjctMTgzLjMgMTYuMS0yMzUuOSA3LjMtMTguMiAxNi4xLTMxLjggMzAuMi00NS44czI3LjYtMjIuOSA0NS44LTMwLjJDMzI4LjcgMTc5LjMgNDUzLjcgMTg0IDUxMiAxODRzMTgzLjMtNC43IDIzNS45IDE2LjFjMTguMiA3LjMgMzEuOCAxNi4xIDQ1LjggMzAuMiAxNC4xIDE0LjEgMjIuOSAyNy42IDMwLjIgNDUuOEM4NDQuNyAzMjguNyA4NDAgNDUzLjcgODQwIDUxMmMwIDU4LjMgNC43IDE4My4yLTE2LjIgMjM1Ljh6In19XX0sbmFtZToiaW5zdGFncmFtIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNDMwNTI6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxOS45IDM1OC44aDk3Ljl2NDEuNmgtOTcuOXptMzQ3LTE4OC45TDUyNy4xIDU0LjFDNTIzIDUyLjcgNTE3LjUgNTIgNTEyIDUycy0xMSAuNy0xNS4xIDIuMUwxNTcuMSAxNjkuOWMtOC4zIDIuOC0xNS4xIDEyLjQtMTUuMSAyMS4ydjQ4Mi40YzAgOC44IDUuNyAyMC40IDEyLjYgMjUuOUw0OTkuMyA5NjhjMy41IDIuNyA4IDQuMSAxMi42IDQuMXM5LjItMS40IDEyLjYtNC4xbDM0NC43LTI2OC42YzYuOS01LjQgMTIuNi0xNyAxMi42LTI1LjlWMTkxLjFjLjItOC44LTYuNi0xOC4zLTE0LjktMjEuMnpNNDExLjMgNjU2aC0uMmMwIDQuNC0zLjYgOC04IDhoLTM3LjNjLTQuNCAwLTgtMy42LTgtOFY0NzEuNGMtNy43IDkuMi0xNS40IDE3LjktMjMuMSAyNmE2LjA0IDYuMDQgMCAwMS0xMC4yLTIuNGwtMTMuMi00My41Yy0uNi0yLS4yLTQuMSAxLjItNS42IDM3LTQzLjQgNjQuNy05NS4xIDgyLjItMTUzLjYgMS4xLTMuNSA1LTUuMyA4LjQtMy43bDM4LjYgMTguM2MyLjcgMS4zIDQuMSA0LjQgMy4yIDcuMmE0MjkuMiA0MjkuMiAwIDAxLTMzLjYgNzlWNjU2em0yOTYuNS00OS4ybC0yNi4zIDM1LjNhNS45MiA1LjkyIDAgMDEtOC45LjdjLTMwLjYtMjkuMy01Ni44LTY1LjItNzguMS0xMDYuOVY2NTZjMCA0LjQtMy42IDgtOCA4aC0zNi4yYy00LjQgMC04LTMuNi04LThWNTM2Yy0yMiA0NC43LTQ5IDgwLjgtODAuNiAxMDcuNmE1LjkgNS45IDAgMDEtOC45LTEuNEw0MzAgNjA1LjdhNiA2IDAgMDExLjYtOC4xYzI4LjYtMjAuMyA1MS45LTQ1LjIgNzEtNzZoLTU1LjFjLTQuNCAwLTgtMy42LTgtOFY0NzhjMC00LjQgMy42LTggOC04aDk0Ljl2LTE4LjZoLTY1LjljLTQuNCAwLTgtMy42LTgtOFYzMTZjMC00LjQgMy42LTggOC04aDE4NC43YzQuNCAwIDggMy42IDggOHYxMjcuMmMwIDQuNC0zLjYgOC04IDhoLTY2Ljd2MTguNmg5OC44YzQuNCAwIDggMy42IDggOHYzNS42YzAgNC40LTMuNiA4LTggOGgtNTljMTguMSAyOS4xIDQxLjggNTQuMyA3Mi4zIDc2LjkgMi42IDIuMSAzLjIgNS45IDEuMiA4LjV6In19XX0sbmFtZToiaW5zdXJhbmNlIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDgzNDkwOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00NDEuNiAzMDYuOEw0MDMgMjg4LjZhNi4xIDYuMSAwIDAwLTguNCAzLjdjLTE3LjUgNTguNS00NS4yIDExMC4xLTgyLjIgMTUzLjZhNi4wNSA2LjA1IDAgMDAtMS4yIDUuNmwxMy4yIDQzLjVjMS4zIDQuNCA3IDUuNyAxMC4yIDIuNCA3LjctOC4xIDE1LjQtMTYuOSAyMy4xLTI2VjY1NmMwIDQuNCAzLjYgOCA4IDhINDAzYzQuNCAwIDgtMy42IDgtOFYzOTMuMWE0MjkuMiA0MjkuMiAwIDAwMzMuNi03OWMxLTIuOS0uMy02LTMtNy4zem0yNi44IDkuMnYxMjcuMmMwIDQuNCAzLjYgOCA4IDhoNjUuOXYxOC42aC05NC45Yy00LjQgMC04IDMuNi04IDh2MzUuNmMwIDQuNCAzLjYgOCA4IDhoNTUuMWMtMTkuMSAzMC44LTQyLjQgNTUuNy03MSA3NmE2IDYgMCAwMC0xLjYgOC4xbDIyLjggMzYuNWMxLjkgMy4xIDYuMiAzLjggOC45IDEuNCAzMS42LTI2LjggNTguNy02Mi45IDgwLjYtMTA3LjZ2MTIwYzAgNC40IDMuNiA4IDggOGgzNi4yYzQuNCAwIDgtMy42IDgtOFY1MzZjMjEuMyA0MS43IDQ3LjUgNzcuNSA3OC4xIDEwNi45IDIuNiAyLjUgNi44IDIuMSA4LjktLjdsMjYuMy0zNS4zYzItMi43IDEuNC02LjUtMS4yLTguNC0zMC41LTIyLjYtNTQuMi00Ny44LTcyLjMtNzYuOWg1OWM0LjQgMCA4LTMuNiA4LThWNDc4YzAtNC40LTMuNi04LTgtOGgtOTguOHYtMTguNmg2Ni43YzQuNCAwIDgtMy42IDgtOFYzMTZjMC00LjQtMy42LTgtOC04SDQ3Ni40Yy00LjQgMC04IDMuNi04IDh6bTUxLjUgNDIuOGg5Ny45djQxLjZoLTk3Ljl2LTQxLjZ6bTM0Ny0xODguOUw1MjcuMSA1NC4xQzUyMyA1Mi43IDUxNy41IDUyIDUxMiA1MnMtMTEgLjctMTUuMSAyLjFMMTU3LjEgMTY5LjljLTguMyAyLjgtMTUuMSAxMi40LTE1LjEgMjEuMnY0ODIuNGMwIDguOCA1LjcgMjAuNCAxMi42IDI1LjlMNDk5LjMgOTY4YzMuNSAyLjcgOCA0LjEgMTIuNiA0LjFzOS4yLTEuNCAxMi42LTQuMWwzNDQuNy0yNjguNmM2LjktNS40IDEyLjYtMTcgMTIuNi0yNS45VjE5MS4xYy4yLTguOC02LjYtMTguMy0xNC45LTIxLjJ6TTgxMCA2NTQuM0w1MTIgODg2LjUgMjE0IDY1NC4zVjIyNi43bDI5OC0xMDEuNiAyOTggMTAxLjZ2NDI3LjZ6In19XX0sbmFtZToiaW5zdXJhbmNlIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sMjcyODpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjpmdW5jdGlvbihhLG4pe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NjYuOSAxNjkuOUw1MjcuMSA1NC4xQzUyMyA1Mi43IDUxNy41IDUyIDUxMiA1MnMtMTEgLjctMTUuMSAyLjFMMTU3LjEgMTY5LjljLTguMyAyLjgtMTUuMSAxMi40LTE1LjEgMjEuMnY0ODIuNGMwIDguOCA1LjcgMjAuNCAxMi42IDI1LjlMNDk5LjMgOTY4YzMuNSAyLjcgOCA0LjEgMTIuNiA0LjFzOS4yLTEuNCAxMi42LTQuMWwzNDQuNy0yNjguNmM2LjktNS40IDEyLjYtMTcgMTIuNi0yNS45VjE5MS4xYy4yLTguOC02LjYtMTguMy0xNC45LTIxLjJ6TTgxMCA2NTQuM0w1MTIgODg2LjUgMjE0IDY1NC4zVjIyNi43bDI5OC0xMDEuNiAyOTggMTAxLjZ2NDI3LjZ6IixmaWxsOmF9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUyMS45IDM1OC44aDk3Ljl2NDEuNmgtOTcuOXoiLGZpbGw6bn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMjE0IDIyNi43djQyNy42bDI5OCAyMzIuMiAyOTgtMjMyLjJWMjI2LjdMNTEyIDEyNS4xIDIxNCAyMjYuN3pNNDEzLjMgNjU2aC0uMmMwIDQuNC0zLjYgOC04IDhoLTM3LjNjLTQuNCAwLTgtMy42LTgtOFY0NzEuNGMtNy43IDkuMi0xNS40IDE3LjktMjMuMSAyNmE2LjA0IDYuMDQgMCAwMS0xMC4yLTIuNGwtMTMuMi00My41Yy0uNi0yLS4yLTQuMSAxLjItNS42IDM3LTQzLjQgNjQuNy05NS4xIDgyLjItMTUzLjYgMS4xLTMuNSA1LTUuMyA4LjQtMy43bDM4LjYgMTguM2MyLjcgMS4zIDQuMSA0LjQgMy4yIDcuMmE0MjkuMiA0MjkuMiAwIDAxLTMzLjYgNzlWNjU2em0yNTcuOS0zNDB2MTI3LjJjMCA0LjQtMy42IDgtOCA4aC02Ni43djE4LjZoOTguOGM0LjQgMCA4IDMuNiA4IDh2MzUuNmMwIDQuNC0zLjYgOC04IDhoLTU5YzE4LjEgMjkuMSA0MS44IDU0LjMgNzIuMyA3Ni45IDIuNiAyLjEgMy4yIDUuOSAxLjIgOC41bC0yNi4zIDM1LjNhNS45MiA1LjkyIDAgMDEtOC45LjdjLTMwLjYtMjkuMy01Ni44LTY1LjItNzguMS0xMDYuOVY2NTZjMCA0LjQtMy42IDgtOCA4aC0zNi4yYy00LjQgMC04LTMuNi04LThWNTM2Yy0yMiA0NC43LTQ5IDgwLjgtODAuNiAxMDcuNmE2LjM4IDYuMzggMCAwMS00LjggMS40Yy0xLjctLjMtMy4yLTEuMy00LjEtMi44TDQzMiA2MDUuN2E2IDYgMCAwMTEuNi04LjFjMjguNi0yMC4zIDUxLjktNDUuMiA3MS03NmgtNTUuMWMtNC40IDAtOC0zLjYtOC04VjQ3OGMwLTQuNCAzLjYtOCA4LThoOTQuOXYtMTguNmgtNjUuOWMtNC40IDAtOC0zLjYtOC04VjMxNmMwLTQuNCAzLjYtOCA4LThoMTg0LjdjNC40IDAgOCAzLjYgOCA4eiIsZmlsbDpufX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00NDMuNyAzMDYuOWwtMzguNi0xOC4zYy0zLjQtMS42LTcuMy4yLTguNCAzLjctMTcuNSA1OC41LTQ1LjIgMTEwLjItODIuMiAxNTMuNmE1LjcgNS43IDAgMDAtMS4yIDUuNmwxMy4yIDQzLjVjMS40IDQuNSA3IDUuOCAxMC4yIDIuNCA3LjctOC4xIDE1LjQtMTYuOCAyMy4xLTI2VjY1NmMwIDQuNCAzLjYgOCA4IDhoMzcuM2M0LjQgMCA4LTMuNiA4LThoLjJWMzkzLjFhNDI5LjIgNDI5LjIgMCAwMDMzLjYtNzljLjktMi44LS41LTUuOS0zLjItNy4yem0yNi44IDkuMXYxMjcuNGMwIDQuNCAzLjYgOCA4IDhoNjUuOVY0NzBoLTk0LjljLTQuNCAwLTggMy42LTggOHYzNS42YzAgNC40IDMuNiA4IDggOGg1NS4xYy0xOS4xIDMwLjgtNDIuNCA1NS43LTcxIDc2YTYgNiAwIDAwLTEuNiA4LjFsMjIuOCAzNi41Yy45IDEuNSAyLjQgMi41IDQuMSAyLjggMS43LjMgMy41LS4yIDQuOC0xLjQgMzEuNi0yNi44IDU4LjYtNjIuOSA4MC42LTEwNy42djEyMGMwIDQuNCAzLjYgOCA4IDhoMzYuMmM0LjQgMCA4LTMuNiA4LThWNTM1LjljMjEuMyA0MS43IDQ3LjUgNzcuNiA3OC4xIDEwNi45IDIuNiAyLjUgNi43IDIuMiA4LjktLjdsMjYuMy0zNS4zYzItMi42IDEuNC02LjQtMS4yLTguNS0zMC41LTIyLjYtNTQuMi00Ny44LTcyLjMtNzYuOWg1OWM0LjQgMCA4LTMuNiA4LTh2LTM1LjZjMC00LjQtMy42LTgtOC04aC05OC44di0xOC42aDY2LjdjNC40IDAgOC0zLjYgOC04VjMxNmMwLTQuNC0zLjYtOC04LThINDc4LjVjLTQuNCAwLTggMy42LTggOHptNTEuNCA0Mi44aDk3Ljl2NDEuNmgtOTcuOXYtNDEuNnoiLGZpbGw6YX19XX19LG5hbWU6Imluc3VyYW5jZSIsdGhlbWU6InR3b3RvbmUifTt0LmRlZmF1bHQ9ZX0sOTg4MjA6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNzI2IDU4NS43YzAgNTUuMy00NC43IDEwMC4xLTk5LjcgMTAwLjFINDIwLjZ2NTMuNGMwIDUuNy02LjUgOC44LTEwLjkgNS4zbC0xMDkuMS04NS43Yy0zLjUtMi43LTMuNS04IDAtMTAuN2wxMDkuMS04NS43YzQuNC0zLjUgMTAuOS0uMyAxMC45IDUuM3Y1My40aDIwNS43YzE5LjYgMCAzNS41LTE2IDM1LjUtMzUuNnYtNzguOWMwLTMuNyAzLTYuOCA2LjgtNi44aDUwLjdjMy43IDAgNi44IDMgNi44IDYuOHY3OS4xem0tMi42LTIwOS45bC0xMDkuMSA4NS43Yy00LjQgMy41LTEwLjkuMy0xMC45LTUuM3YtNTMuNEgzOTcuN2MtMTkuNiAwLTM1LjUgMTYtMzUuNSAzNS42djc4LjljMCAzLjctMyA2LjgtNi44IDYuOGgtNTAuN2MtMy43IDAtNi44LTMtNi44LTYuOHYtNzguOWMwLTU1LjMgNDQuNy0xMDAuMSA5OS43LTEwMC4xaDIwNS43di01My40YzAtNS43IDYuNS04LjggMTAuOS01LjNsMTA5LjEgODUuN2MzLjYgMi41IDMuNiA3LjguMSAxMC41eiJ9fV19LG5hbWU6ImludGVyYWN0aW9uIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDkzMjMzOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2ek0zMDQuOCA1MjRoNTAuN2MzLjcgMCA2LjgtMyA2LjgtNi44di03OC45YzAtMTkuNyAxNS45LTM1LjYgMzUuNS0zNS42aDIwNS43djUzLjRjMCA1LjcgNi41IDguOCAxMC45IDUuM2wxMDkuMS04NS43YzMuNS0yLjcgMy41LTggMC0xMC43bC0xMDkuMS04NS43Yy00LjQtMy41LTEwLjktLjMtMTAuOSA1LjNWMzM4SDM5Ny43Yy01NS4xIDAtOTkuNyA0NC44LTk5LjcgMTAwLjFWNTE3YzAgNCAzIDcgNi44IDd6bS00LjIgMTM0LjlsMTA5LjEgODUuN2M0LjQgMy41IDEwLjkuMyAxMC45LTUuM3YtNTMuNGgyMDUuN2M1NS4xIDAgOTkuNy00NC44IDk5LjctMTAwLjF2LTc4LjljMC0zLjctMy02LjgtNi44LTYuOGgtNTAuN2MtMy43IDAtNi44IDMtNi44IDYuOHY3OC45YzAgMTkuNy0xNS45IDM1LjYtMzUuNSAzNS42SDQyMC42VjU2OGMwLTUuNy02LjUtOC44LTEwLjktNS4zbC0xMDkuMSA4NS43Yy0zLjUgMi41LTMuNSA3LjggMCAxMC41eiJ9fV19LG5hbWU6ImludGVyYWN0aW9uIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sMzg2OTM6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNzI4SDE4NFYxODRoNjU2djY1NnoiLGZpbGw6YX19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMTg0IDg0MGg2NTZWMTg0SDE4NHY2NTZ6bTExNC00MDEuOWMwLTU1LjMgNDQuNi0xMDAuMSA5OS43LTEwMC4xaDIwNS44di01My40YzAtNS42IDYuNS04LjggMTAuOS01LjNMNzIzLjUgMzY1YzMuNSAyLjcgMy41IDggMCAxMC43bC0xMDkuMSA4NS43Yy00LjQgMy41LTEwLjkuNC0xMC45LTUuM3YtNTMuNEgzOTcuOGMtMTkuNiAwLTM1LjUgMTUuOS0zNS41IDM1LjZ2NzguOWMwIDMuOC0zLjEgNi44LTYuOCA2LjhoLTUwLjdjLTMuOCAwLTYuOC0zLTYuOC03di03OC45em0yLjYgMjEwLjNsMTA5LjEtODUuN2M0LjQtMy41IDEwLjktLjQgMTAuOSA1LjN2NTMuNGgyMDUuNmMxOS42IDAgMzUuNS0xNS45IDM1LjUtMzUuNnYtNzguOWMwLTMuOCAzLjEtNi44IDYuOC02LjhoNTAuN2MzLjggMCA2LjggMy4xIDYuOCA2Ljh2NzguOWMwIDU1LjMtNDQuNiAxMDAuMS05OS43IDEwMC4xSDQyMC42djUzLjRjMCA1LjYtNi41IDguOC0xMC45IDUuM2wtMTA5LjEtODUuN2MtMy41LTIuNy0zLjUtOCAwLTEwLjV6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTMwNC44IDUyNGg1MC43YzMuNyAwIDYuOC0zIDYuOC02Ljh2LTc4LjljMC0xOS43IDE1LjktMzUuNiAzNS41LTM1LjZoMjA1Ljd2NTMuNGMwIDUuNyA2LjUgOC44IDEwLjkgNS4zbDEwOS4xLTg1LjdjMy41LTIuNyAzLjUtOCAwLTEwLjdsLTEwOS4xLTg1LjdjLTQuNC0zLjUtMTAuOS0uMy0xMC45IDUuM1YzMzhIMzk3LjdjLTU1LjEgMC05OS43IDQ0LjgtOTkuNyAxMDAuMVY1MTdjMCA0IDMgNyA2LjggN3ptLTQuMiAxMzQuOWwxMDkuMSA4NS43YzQuNCAzLjUgMTAuOS4zIDEwLjktNS4zdi01My40aDIwNS43YzU1LjEgMCA5OS43LTQ0LjggOTkuNy0xMDAuMXYtNzguOWMwLTMuNy0zLTYuOC02LjgtNi44aC01MC43Yy0zLjcgMC02LjggMy02LjggNi44djc4LjljMCAxOS43LTE1LjkgMzUuNi0zNS41IDM1LjZINDIwLjZWNTY4YzAtNS43LTYuNS04LjgtMTAuOS01LjNsLTEwOS4xIDg1LjdjLTMuNSAyLjUtMy41IDcuOCAwIDEwLjV6IixmaWxsOmF9fV19fSxuYW1lOiJpbnRlcmFjdGlvbiIsdGhlbWU6InR3b3RvbmUifTt0LmRlZmF1bHQ9ZX0sMjIwODpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNDY0IDY4OGE0OCA0OCAwIDEwOTYgMCA0OCA0OCAwIDEwLTk2IDB6bTcyLTExMmM0LjQgMCA4LTMuNiA4LThWMjk2YzAtNC40LTMuNi04LTgtOGgtNDhjLTQuNCAwLTggMy42LTggOHYyNzJjMCA0LjQgMy42IDggOCA4aDQ4em00MDAtMTg4aC01OS4zYy0yLjYgMC01IDEuMi02LjUgMy4zTDc2My43IDUzOC4xbC00OS45LTY4LjhhNy45MiA3LjkyIDAgMDAtNi41LTMuM0g2NDhjLTYuNSAwLTEwLjMgNy40LTYuNSAxMi43bDEwOS4yIDE1MC43YTE2LjEgMTYuMSAwIDAwMjYgMGwxNjUuOC0yMjguN2MzLjgtNS4zIDAtMTIuNy02LjUtMTIuN3ptLTQ0IDMwNmgtNjQuMmMtNS41IDAtMTAuNiAyLjktMTMuNiA3LjVhMzUyLjIgMzUyLjIgMCAwMS00OS44IDYyLjJBMzU1LjkyIDM1NS45MiAwIDAxNjUxLjEgODQwYTM1NSAzNTUgMCAwMS0xMzguNyAyNy45Yy00OC4xIDAtOTQuOC05LjQtMTM4LjctMjcuOWEzNTUuOTIgMzU1LjkyIDAgMDEtMTEzLjMtNzYuM0EzNTMuMDYgMzUzLjA2IDAgMDExODQgNjUwLjVjLTE4LjYtNDMuOC0yOC05MC41LTI4LTEzOC41czkuNC05NC43IDI4LTEzOC41YzE3LjktNDIuNCA0My42LTgwLjUgNzYuNC0xMTMuMiAzMi44LTMyLjcgNzAuOS01OC40IDExMy4zLTc2LjNhMzU1IDM1NSAwIDAxMTM4LjctMjcuOWM0OC4xIDAgOTQuOCA5LjQgMTM4LjcgMjcuOSA0Mi40IDE3LjkgODAuNSA0My42IDExMy4zIDc2LjMgMTkgMTkgMzUuNiAzOS44IDQ5LjggNjIuMiAyLjkgNC43IDguMSA3LjUgMTMuNiA3LjVIODkyYzYgMCA5LjgtNi4zIDcuMi0xMS42QzgyOC44IDE3OC41IDY4NC43IDgyIDUxNy43IDgwIDI3OC45IDc3LjIgODAuNSAyNzIuNSA4MCA1MTEuMiA3OS41IDc1MC4xIDI3My4zIDk0NCA1MTIuNCA5NDRjMTY5LjIgMCAzMTUuNi05NyAzODYuNy0yMzguNEE4IDggMCAwMDg5MiA2OTR6In19XX0sbmFtZToiaXNzdWVzLWNsb3NlIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNjYxNDI6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTc5OCAxNjBIMzY2Yy00LjQgMC04IDMuNi04IDh2NjRjMCA0LjQgMy42IDggOCA4aDE4MS4ybC0xNTYgNTQ0SDIyOWMtNC40IDAtOCAzLjYtOCA4djY0YzAgNC40IDMuNiA4IDggOGg0MzJjNC40IDAgOC0zLjYgOC04di02NGMwLTQuNC0zLjYtOC04LThINDc0LjRsMTU2LTU0NEg3OThjNC40IDAgOC0zLjYgOC04di02NGMwLTQuNC0zLjYtOC04LTh6In19XX0sbmFtZToiaXRhbGljIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sMjE2NTc6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7ImZpbGwtcnVsZSI6ImV2ZW5vZGQiLHZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0zOTQuNjggNzU2Ljk5cy0zNC4zMyAxOS45NSAyNC4zNCAyNi42YzcxLjEgOC4wNSAxMDcuMzUgNyAxODUuNjQtNy44NyAwIDAgMjAuNjYgMTIuOTQgNDkuMzggMjQuMTQtMTc1LjQ3IDc1LjA4LTM5Ny4xOC00LjM3LTI1OS4zNi00Mi44N20tMjEuMzctOTguMTdzLTM4LjM1IDI4LjM1IDIwLjMyIDM0LjQ3Yzc1LjgzIDcuODggMTM1LjkgOC40IDIzOS41Ny0xMS41NSAwIDAgMTQuMzYgMTQuNTMgMzYuOTUgMjIuNC0yMTIuNDMgNjIuMTMtNDQ4Ljg0IDUuMDgtMjk2Ljg0LTQ1LjMybTE4MC43My0xNjYuNDNjNDMuMjYgNDkuNy0xMS4zOCA5NC41LTExLjM4IDk0LjVzMTA5LjgtNTYuNyA1OS4zNy0xMjcuNTdjLTQ3LjExLTY2LjE1LTgzLjE5LTk5LjA1IDExMi4yNS0yMTIuMjcuMTggMC0zMDYuODIgNzYuNjUtMTYwLjI0IDI0NS4zNW0yMzIuMjIgMzM3LjA0czI1LjQgMjAuODItMjcuODUgMzcuMWMtMTAxLjQgMzAuNjItNDIxLjcgMzkuOS01MTAuNjYgMS4yMi0zMi4wNS0xMy44MiAyOC4wMi0zMy4yNSA0Ni45My0zNy4yNyAxOS42Mi00LjIgMzEtMy41IDMxLTMuNS0zNS41NS0yNS4wMy0yMjkuOTQgNDkuMTctOTguNzcgNzAuMzUgMzU3LjYgNTguMSA2NTIuMTYtMjYuMDggNTU5LjM1LTY3LjltLTM3NS4xMi0yNzIuM3MtMTYzLjA0IDM4LjY4LTU3Ljc5IDUyLjY4YzQ0LjQ4IDUuOTUgMTMzLjEgNC41NSAyMTUuNTgtMi4yOCA2Ny40Mi01LjYgMTM1LjItMTcuODUgMTM1LjItMTcuODVzLTIzLjgyIDEwLjE1LTQwLjk4IDIxLjg4Yy0xNjUuNSA0My41Ny00ODUuMSAyMy4yNy0zOTMuMTYtMjEuMTggNzcuOTMtMzcuNDUgMTQxLjE1LTMzLjI1IDE0MS4xNS0zMy4yNU03MDMuNiA3MjAuNDJjMTY4LjMtODcuMzMgOTAuMzctMTcxLjMzIDM2LjA4LTE1OS45NS0xMy4zMSAyLjgtMTkuMjcgNS4yNS0xOS4yNyA1LjI1czQuOS03LjcgMTQuMzYtMTEuMDNDODQyLjEyIDUxNi45IDkyNC43OCA2NjYgNzAwLjEgNzI0Ljk3YzAtLjE4IDIuNjMtMi40NSAzLjUtNC41NU02MDIuMDMgNjRzOTMuMTYgOTMuMS04OC40NCAyMzYuMjVjLTE0NS41MyAxMTQuOC0zMy4yNyAxODAuNDIgMCAyNTUuMTQtODQuOTQtNzYuNjUtMTQ3LjI4LTE0NC4wMi0xMDUuNDItMjA2Ljg0QzQ2OS42MyAyNTYuNjcgNjM5LjY4IDIxMS44NyA2MDIuMDMgNjRNNDI3Ljc4IDk1Ny4xOUM1ODkuMjQgOTY3LjUgODM3LjIyIDk1MS40IDg0MyA4NzUuMWMwIDAtMTEuMiAyOC44OC0xMzMuNDQgNTEuOTgtMTM3LjgzIDI1LjktMzA3Ljg3IDIyLjkyLTQwOC41NyA2LjMgMC0uMTggMjAuNjYgMTYuOTcgMTI2Ljc5IDIzLjgifX1dfSxuYW1lOiJqYXZhIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sMzA1MzA6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7ImZpbGwtcnVsZSI6ImV2ZW5vZGQiLHZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00MTYgMTc2SDI1NS41NHY0MjUuNjJjMCAxMDUuMy0zNi4xNiAxMzQuNzEtOTkuMSAxMzQuNzEtMjkuNSAwLTU2LjA1LTUuMDUtNzYuNzItMTIuMTRMNjMgODQ4Ljc5QzkyLjQ4IDg1OC45MSAxMzcuNzMgODY1IDE3My4xMyA4NjUgMzE3LjYzIDg2NSA0MTYgNzk3LjE2IDQxNiA2MDIuNjZ6bTM0OS40OS0xNkM2MTAuMjYgMTYwIDUxMiAyNDguMTMgNTEyIDM2NC42YzAgMTAwLjMyIDc1LjY3IDE2My4xMyAxODUuNyAyMDMuNjQgNzkuNTcgMjguMzYgMTExLjAzIDUzLjcgMTExLjAzIDk1LjIyIDAgNDUuNTctMzYuMzYgNzQuOTYtMTA1LjEzIDc0Ljk2LTYzLjg3IDAtMTIxLjg1LTIxLjMxLTE2MS4xNS00Mi41OHYtLjA0TDUxMiA4MjIuNDNDNTQ5LjM2IDg0My43MyA2MTkuMTIgODY1IDY5NC43NCA4NjUgODc2LjUyIDg2NSA5NjEgNzY3Ljc1IDk2MSA2NTMuM2MwLTk3LjI1LTU0LjA0LTE2MC4wNC0xNzAuOTQtMjA0LjYzLTg2LjQ3LTM0LjQ0LTEyMi44MS01My42Ny0xMjIuODEtOTcuMjMgMC0zNC40NSAzMS40NS02NS44NCA5Ni4zLTY1Ljg0IDYzLjgzIDAgMTA3LjczIDIxLjQ1IDEzMy4zIDM0LjY0bDM4LjM0LTEyOC4xOUM4OTUuMSAxNzQuNDYgODQxLjExIDE2MCA3NjUuNSAxNjAifX1dfSxuYW1lOiJqYXZhLXNjcmlwdCIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDcwOTI6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTYwOCAxMTJjLTE2Ny45IDAtMzA0IDEzNi4xLTMwNCAzMDQgMCA3MC4zIDIzLjkgMTM1IDYzLjkgMTg2LjVsLTQxLjEgNDEuMS02Mi4zLTYyLjNhOC4xNSA4LjE1IDAgMDAtMTEuNCAwbC0zOS44IDM5LjhhOC4xNSA4LjE1IDAgMDAwIDExLjRsNjIuMyA2Mi4zLTQ0LjkgNDQuOS02Mi4zLTYyLjNhOC4xNSA4LjE1IDAgMDAtMTEuNCAwbC0zOS44IDM5LjhhOC4xNSA4LjE1IDAgMDAwIDExLjRsNjIuMyA2Mi4zLTY1LjMgNjUuM2E4LjAzIDguMDMgMCAwMDAgMTEuM2w0Mi4zIDQyLjNjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGwyNTMuNi0yNTMuNkEzMDQuMDYgMzA0LjA2IDAgMDA2MDggNzIwYzE2Ny45IDAgMzA0LTEzNi4xIDMwNC0zMDRTNzc1LjkgMTEyIDYwOCAxMTJ6bTE2MS4yIDQ2NS4yQzcyNi4yIDYyMC4zIDY2OC45IDY0NCA2MDggNjQ0Yy02MC45IDAtMTE4LjItMjMuNy0xNjEuMi02Ni44LTQzLjEtNDMtNjYuOC0xMDAuMy02Ni44LTE2MS4yIDAtNjAuOSAyMy43LTExOC4yIDY2LjgtMTYxLjIgNDMtNDMuMSAxMDAuMy02Ni44IDE2MS4yLTY2LjggNjAuOSAwIDExOC4yIDIzLjcgMTYxLjIgNjYuOCA0My4xIDQzIDY2LjggMTAwLjMgNjYuOCAxNjEuMiAwIDYwLjktMjMuNyAxMTguMi02Ni44IDE2MS4yeiJ9fV19LG5hbWU6ImtleSIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDU5OTI4OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6eyJmaWxsLXJ1bGUiOiJldmVub2RkIix2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTExLjk5IDExMWE2MS41NSA2MS41NSAwIDAwLTI2LjggNi4xM2wtMjcxLjMgMTMxYTYxLjcxIDYxLjcxIDAgMDAtMzMuMzIgNDEuODVMMTEzLjUzIDU4NC41YTYxLjc3IDYxLjc3IDAgMDAxMS44NiA1Mi4wNkwzMTMuMiA4NzIuNzFhNjEuNjggNjEuNjggMCAwMDQ4LjI2IDIzLjI3aDMwMS4wNWE2MS42OCA2MS42OCAwIDAwNDguMjYtMjMuMjdsMTg3LjgxLTIzNi4xMnYtLjAzYTYxLjczIDYxLjczIDAgMDAxMS45LTUyLjAzdi0uMDNMODQzLjQgMjg5Ljk4di0uMDRhNjEuNzIgNjEuNzIgMCAwMC0zMy4zLTQxLjhsLTI3MS4yOC0xMzFhMTcuNDMgMTcuNDMgMCAwMC0uMDMtLjA0IDYxLjc2IDYxLjc2IDAgMDAtMjYuOC02LjFtMCAzNS4xYzMuOTQgMCA3Ljg3Ljg3IDExLjU1IDIuNjRsMjcxLjMgMTMxYTI2LjU0IDI2LjU0IDAgMDExNC4zNiAxOC4wMmw2Ny4wNCAyOTQuNTJhMjYuNTYgMjYuNTYgMCAwMS01LjEgMjIuNDVMNjgzLjMxIDg1MC44OGEyNi41MSAyNi41MSAwIDAxLTIwLjggMTBIMzYxLjQ1YTI2LjQ1IDI2LjQ1IDAgMDEtMjAuNzctMTBMMTUyLjg4IDYxNC43M2EyNi41OSAyNi41OSAwIDAxLTUuMTQtMjIuNDVsNjcuMDctMjk0LjQ5YTI2LjUxIDI2LjUxIDAgMDExNC4zMi0xOC4wMnYtLjA0bDI3MS4zLTEzMUEyNi41MiAyNi41MiAwIDAxNTEyIDE0Ni4xbS0uMTQgNzMuODJjLTIuNDggMC00Ljk5LjUtNy40IDEuNTEtOS42NSA0LjIxLTE0LjIyIDE1LjQ0LTEwLjAxIDI1LjA5IDQuMDQgOS40OCA1LjQyIDE4Ljk0IDYuNDggMjguNDEuMzUgNC45Mi41NSA5LjY2LjM3IDE0LjQuNTMgNC43NC0xLjk0IDkuNDgtNS40NSAxNC4yMi0zLjY4IDQuNzQtNC4wMyA5LjQ5LTQuNTUgMTQuMjMtNDguMTYgNC43Mi05MS41MSAyNS44My0xMjQuNjUgNTcuNTRsLS4zMS0uMTdjLTQuMDQtMi42My03Ljg4LTUuMjctMTQuMDItNS40NS01Ljc5LS4zNS0xMS4wNi0xLjQtMTQuNC00LjktMy42OC0yLjgtNy4zNS01Ljk1LTEwLjY5LTkuMjktNi44NC02LjY3LTEzLjM2LTEzLjg3LTE4LjEtMjNhMTkuNjYgMTkuNjYgMCAwMC0xMS41OC05LjUgMTkuMjcgMTkuMjcgMCAwMC0yMy42OCAxMy4xN2MtMi45OCAxMCAyLjk4IDIwLjcgMTMuMTYgMjMuNTEgOS44MyAyLjk5IDE4LjA4IDcuOSAyNi4xNSAxMy4xNmExMjcuMzggMTI3LjM4IDAgMDExMS4yNCA4LjZjNC4wNCAyLjY0IDYuMTMgNy41NSA3LjcxIDEzLjE3IDEuMTYgNS42MiA0LjM5IDguODggNy41NCAxMi4wM2EyMDkuMjYgMjA5LjI2IDAgMDAtMzcuMDggMTQyLjYxYy0zLjk0IDEuMzgtNy44MyAyLjg4LTExLjE3IDYuODItMy44NiA0LjM5LTguMDggNy44OC0xMi44MiA4LjIzYTk0LjAzIDk0LjAzIDAgMDEtMTQuMDIgMi42NGMtOS40NyAxLjIzLTE5LjEzIDEuOTMtMjkuMTMtLjE3YTE5LjUzIDE5LjUzIDAgMDAtMTQuNzQgMy4zMmMtOC42IDUuOTctMTAuNTIgMTcuOS00LjU2IDI2LjVhMTkuMTMgMTkuMTMgMCAwMDI2LjY3IDQuNTljOC40Mi01Ljk3IDE3LjM3LTkuMzIgMjYuNS0xMi4zIDQuNTUtMS40MSA5LjEzLTIuNjIgMTMuODctMy41IDQuNTYtMS41OCA5LjY0LS4yIDE1LjA4IDIuMDkgNC41MiAyLjMzIDguNTIgMi4xNSAxMi40OCAxLjc1IDE1LjQ0IDUwLjA4IDQ5LjIyIDkyLjAzIDkzLjMyIDExOC41Mi0xLjUgNC4yMS0yLjkyIDguNi0xLjU3IDE0LjE1IDEuMDUgNS44IDEuMjIgMTEuMjUtMS4yNCAxNS4yOWExNzIuNTggMTcyLjU4IDAgMDEtNi4zIDEyLjc4Yy00LjkyIDguMDctMTAuMTcgMTYuMTUtMTcuOSAyMy4xN2ExOC45NyAxOC45NyAwIDAwLTYuMzMgMTMuNSAxOS4wNiAxOS4wNiAwIDAwMTguNDMgMTkuNjhBMTkuMjEgMTkuMjEgMCAwMDQwOSA3ODcuODhjLjE3LTEwLjM1IDIuOTctMTkuNDYgNi4xMy0yOC41OSAxLjU4LTQuMzggMy41Mi04Ljc3IDUuNjItMTIuOTkgMS41OC00LjU2IDUuNzgtNy45MiAxMC44Ny0xMC43MiA1LjA3LTIuNjIgNy4zNS02LjMyIDkuNjMtMTAuMjJhMjA5LjA5IDIwOS4wOSAwIDAwNzAuNzQgMTIuNTFjMjUuMjYgMCA0OS40LTQuNzIgNzEuODctMTIuOTIgMi4zNyA0LjA2IDQuODIgNy45MSA5LjkgMTAuNjMgNS4xIDIuOTggOS4yOSA2LjE2IDEwLjg3IDEwLjcyIDIuMSA0LjQgMy44NyA4Ljc4IDUuNDUgMTMuMTcgMy4xNSA5LjEyIDUuNzggMTguMjMgNi4xMyAyOC41OCAwIDUuMDkgMi4xIDEwLjAyIDYuMTQgMTMuNzFhMTkuMzIgMTkuMzIgMCAwMDI3LjA0LTEuMjMgMTkuMzIgMTkuMzIgMCAwMC0xLjI0LTI3LjA1Yy03LjcyLTYuODQtMTIuOTgtMTUuMDktMTcuNzItMjMuMzQtMi4yOC00LjAzLTQuMzctOC40LTYuMy0xMi42LTIuNDYtNC4yMi0yLjMtOS41LTEuMDYtMTUuMyAxLjQtNS45Ni0uMTgtMTAuMzQtMS41OC0xNC45bC0uMTQtLjQ1YzQzLjc2LTI2Ljc1IDc3LjA5LTY4LjgzIDkyLjItMTE4LjlsLjU4LjA0YzQuOTEuMzUgOS42NC44NSAxNC45LTIuMTMgNS4yNy0yLjQ2IDEwLjU2LTMuODcgMTUuMTItMi40NyA0LjU2LjcgOS4yOSAxLjc2IDEzLjg1IDIuOTkgOS4xMiAyLjYzIDE4LjI3IDUuNzkgMjYuODcgMTEuNThhMTkuNSAxOS41IDAgMDAxNC43MyAyLjY0IDE4Ljk5IDE4Ljk5IDAgMDAxNC41Ny0yMi42MiAxOS4xMSAxOS4xMSAwIDAwLTIyLjgyLTE0LjU3Yy0xMC4xOCAyLjI4LTE5LjY2IDEuOS0yOS4zIDEuMDMtNC43NS0uNTMtOS4zMi0xLjItMTQuMDYtMi4yNi00Ljc0LS4zNS04LjkyLTMuNS0xMi45Ni03LjcxLTQuMDMtNC43NC04LjYtNS45Ny0xMy4xNi03LjM3bC0uMy0uMWMuNi02LjUxLjk5LTEzLjA4Ljk5LTE5Ljc1IDAtNDMuNS0xMy4yOC04My45OS0zNS45OS0xMTcuNiAzLjMzLTMuNSA2LjctNi44MiA3LjkyLTEyLjc4IDEuNTgtNS42MSAzLjY4LTEwLjUzIDcuNzEtMTMuMTYgMy41MS0zLjE2IDcuMzgtNS45NiAxMS4yNC04Ljc3IDcuOS01LjI3IDE2LjE2LTEwLjM2IDI1Ljk4LTEzLjE2YTE4LjUgMTguNSAwIDAwMTEuNTUtOS42NyAxOC44IDE4LjggMCAwMC04LjIyLTI1LjYgMTguODQgMTguODQgMCAwMC0yNS42NCA4LjIyYy00Ljc0IDkuMTMtMTEuMjIgMTYuMzMtMTcuODkgMjMtMy41MSAzLjM0LTcgNi41MS0xMC43IDkuNS0zLjMzIDMuNS04LjYgNC41NS0xNC4zOSA0LjktNi4xNC4xNy0xMC4wMSAyLjk5LTE0LjA1IDUuNjJhMjEwIDIxMCAwIDAwLTEyNy40LTYwLjAyYy0uNTItNC43My0uODctOS40OC00LjU1LTE0LjIyLTMuNTEtNC43NC01Ljk4LTkuNDgtNS40NS0xNC4yMi0uMTctNC43NC4wMy05LjQ4LjM4LTE0LjQgMS4wNS05LjQ3IDIuNDQtMTguOTQgNi40OC0yOC40MSAxLjkzLTQuNTYgMi4xLTEwIDAtMTUuMDhhMTkuMjMgMTkuMjMgMCAwMC0xNy42OS0xMS41Mm0tMjUuMTYgMTMzLjkxbC0uODUgNi43NWMtMi40NiAxOC45Ni00LjIxIDM4LjA4LTUuOTcgNTcuMDRhODc2IDg3NiAwIDAwLTIuNjQgMzAuMmMtOC42LTYuMTUtMTcuMi0xMi42Ni0yNi4zMi0xOC40NS0xNS43OS0xMC43LTMxLjYtMjEuNDItNDcuOTEtMzEuNmwtNS41Mi0zLjQzYTE3NC40MyAxNzQuNDMgMCAwMTg5LjIxLTQwLjVtNTAuNTkgMGExNzQuMzggMTc0LjM4IDAgMDE5Mi4xNiA0My4yMWwtNS44NiAzLjdjLTE2LjE0IDEwLjM1LTMxLjc0IDIxLjA3LTQ3LjU0IDMxLjc3YTQ5MS4yOCA0OTEuMjggMCAwMC0xOC40NCAxMyA3LjMgNy4zIDAgMDEtMTEuNTgtNS40NmMtLjUzLTcuNTQtMS4yMi0xNC45LTEuOTItMjIuNDUtMS43NS0xOC45NS0zLjUtMzguMDgtNS45Ni01Ny4wM3ptLTE3MyA3OC44Mmw1LjU4IDUuODNjMTMuMzMgMTMuODYgMjYuODYgMjcuMiA0MC41NCA0MC43MSA1LjggNS44IDExLjU4IDExLjI2IDE3LjU1IDE2LjdhNy4xOSA3LjE5IDAgMDEtMi44MSAxMi4yN2MtOC42IDIuNjMtMTcuMjEgNS4wNy0yNS44IDcuODgtMTguMDggNS45Ny0zNi4zMiAxMS42LTU0LjQgMTguMWwtNy45NSAyLjc3Yy0uMTctMy4yLS40OC02LjM3LS40OC05LjYzIDAtMzQuOTIgMTAuMjctNjcuMzMgMjcuNzYtOTQuNjNtMjk3LjUyIDMuNDZhMTc0LjY3IDE3NC42NyAwIDAxMjUuNjcgOTEuMTdjMCAyLjkzLS4zIDUuNzgtLjQ0IDguNjdsLTYuMjQtMS45OGMtMTguMjUtNS45Ny0zNi40OC0xMS4wOS01NC45LTE2LjM1YTkwMC41NCA5MDAuNTQgMCAwMC0zNS44Mi05LjYzYzguOTUtOC42IDE4LjI3LTE3LjA0IDI2Ljg3LTI1LjgxIDEzLjUxLTEzLjUxIDI3LTI3LjAyIDQwLjE3LTQxLjA2ek01MDEuMTIgNDkyLjJoMjEuMzljMy4zMyAwIDYuNSAxLjU4IDguMjYgNC4wNGwxMy42NyAxNy4yYTEwLjY1IDEwLjY1IDAgMDEyLjEzIDguNTdsLTQuOTQgMjEuMjVjLS41MiAzLjM0LTIuODEgNS45Ni01LjYyIDcuNTRsLTE5LjY0IDkuMTJhOS4zNiA5LjM2IDAgMDEtOS4xMSAwbC0xOS42Ny05LjEyYy0yLjgxLTEuNTgtNS4yNy00LjItNS42My03LjU0bC00LjktMjEuMjVjLS41Mi0yLjk4LjItNi4yOCAyLjEzLTguNTZsMTMuNjctMTcuMmExMC4yNSAxMC4yNSAwIDAxOC4yNi00LjA1bS02My4zNyA4My43YzUuNDQtLjg4IDkuODUgNC41NyA3Ljc1IDkuNjZhNzg0LjI4IDc4NC4yOCAwIDAwLTkuNSAyNi4xNSAxOTc2Ljg0IDE5NzYuODQgMCAwMC0xOC43OCA1NC4yMmwtMi40IDcuNTRhMTc1LjI2IDE3NS4yNiAwIDAxLTY4LTg3LjNsOS4zMy0uNzhjMTkuMTMtMS43NiAzNy45LTQuMDYgNTcuMDMtNi4zNCA4LjI1LS44OCAxNi4zMy0yLjEgMjQuNTctMy4xNm0xNTEuNjMgMi40N2M4LjI0Ljg4IDE2LjMyIDEuNzcgMjQuNTcgMi40NyAxOS4xMyAxLjc1IDM4LjA3IDMuNSA1Ny4yIDQuNzNsNi4xLjM0YTE3NS4yNSAxNzUuMjUgMCAwMS02Ni42IDg2LjU4bC0xLjk4LTYuMzhjLTUuNzktMTguMjUtMTIuMS0zNi4zMi0xOC4yMy01NC4yMmE5NTEuNTggOTUxLjU4IDAgMDAtOC42LTIzLjg1IDcuMTYgNy4xNiAwIDAxNy41NC05LjY3bS03Ni4xIDM0LjYyYzIuNSAwIDUuMDEgMS4yNiA2LjQyIDMuOGE1MjYuNDcgNTI2LjQ3IDAgMDAxMi4xMyAyMS43N2M5LjQ4IDE2LjUgMTguOTIgMzMuMTcgMjkuMSA0OS4zMmw0LjE1IDYuNzFhMTc2LjAzIDE3Ni4wMyAwIDAxLTUzLjEgOC4yIDE3Ni4xNCAxNzYuMTQgMCAwMS01MS41Ny03LjcybDQuMzgtNy4wMmMxMC4xOC0xNi4xNSAxOS44My0zMi42NiAyOS40OC00OS4xNWE0NTEuNTggNDUxLjU4IDAgMDAxMi42NS0yMi4xIDcuMiA3LjIgMCAwMTYuMzctMy44MSJ9fV19LG5hbWU6Imt1YmVybmV0ZXMiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw0ODMyNDpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTU2LjkgODQ1LjFMODk2LjQgNjMyVjE2OGMwLTE3LjctMTQuMy0zMi0zMi0zMmgtNzA0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY0NjRMNjcuOSA4NDUuMUM2MC40IDg2NiA3NS44IDg4OCA5OCA4ODhoODI4LjhjMjIuMiAwIDM3LjYtMjIgMzAuMS00Mi45ek0yMDAuNCAyMDhoNjI0djM5NWgtNjI0VjIwOHptMjI4LjMgNjA4bDguMS0zN2gxNTAuM2w4LjEgMzdINDI4Ljd6bTIyNCAwbC0xOS4xLTg2LjdjLS44LTMuNy00LjEtNi4zLTcuOC02LjNIMzk4LjJjLTMuOCAwLTcgMi42LTcuOCA2LjNMMzcxLjMgODE2SDE1MWw0Mi4zLTE0OWg2MzguMmw0Mi4zIDE0OUg2NTIuN3oifX1dfSxuYW1lOiJsYXB0b3AiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSwzMjk3ODpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMzg0IDkxMmg0OTZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzQwSDM4NHY1NzJ6bTQ5Ni04MDBIMzg0djE2NGg1MjhWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNzY4IDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmgxNzZWMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6In19XX0sbmFtZToibGF5b3V0Iix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDIxOTE4OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS02OTYgNzJoMTM2djY1NkgxODRWMTg0em02NTYgNjU2SDM4NFYzODRoNDU2djQ1NnpNMzg0IDMyMFYxODRoNDU2djEzNkgzODR6In19XX0sbmFtZToibGF5b3V0Iix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sMzgxMTU6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMzg0IDE4NWg0NTZ2MTM2SDM4NHptLTIwMCAwaDEzNnY2NTZIMTg0em02OTYtNzNIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYxYzAtMTcuNyAxNC4zLTMyIDMyLTMyaDczNmMxNy43IDAgMzIgMTQuMyAzMiAzMnYtMWMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMzg0IDM4NWg0NTZ2NDU2SDM4NHoiLGZpbGw6bn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDExM0gxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ1YzAtMTcuNy0xNC4zLTMyLTMyLTMyek0zMjAgODQxSDE4NFYxODVoMTM2djY1NnptNTIwIDBIMzg0VjM4NWg0NTZ2NDU2em0wLTUyMEgzODRWMTg1aDQ1NnYxMzZ6IixmaWxsOmF9fV19fSxuYW1lOiJsYXlvdXQiLHRoZW1lOiJ0d290b25lIn07dC5kZWZhdWx0PWV9LDc2NjIwOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMTA0IDMxNi45YzAgMTAuMi00LjkgMTkuOS0xMy4yIDI1LjlMNDU3LjQgNTEybDE0NS40IDEwNS4yYzguMyA2IDEzLjIgMTUuNiAxMy4yIDI1LjlWNjkwYzAgNi41LTcuNCAxMC4zLTEyLjcgNi41bC0yNDYtMTc4YTcuOTUgNy45NSAwIDAxMC0xMi45bDI0Ni0xNzhhOCA4IDAgMDExMi43IDYuNXY0Ni44eiJ9fV19LG5hbWU6ImxlZnQtY2lyY2xlIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDUxMjU1OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02MDMuMyAzMjcuNWwtMjQ2IDE3OGE3Ljk1IDcuOTUgMCAwMDAgMTIuOWwyNDYgMTc4YzUuMyAzLjggMTIuNyAwIDEyLjctNi41VjY0M2MwLTEwLjItNC45LTE5LjktMTMuMi0yNS45TDQ1Ny40IDUxMmwxNDUuNC0xMDUuMmM4LjMtNiAxMy4yLTE1LjYgMTMuMi0yNS45VjMzNGMwLTYuNS03LjQtMTAuMy0xMi43LTYuNXoifX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6In19XX0sbmFtZToibGVmdC1jaXJjbGUiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSwyMzk3MzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjpmdW5jdGlvbihhLG4pe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgMTQwYy0yMDUuNCAwLTM3MiAxNjYuNi0zNzIgMzcyczE2Ni42IDM3MiAzNzIgMzcyIDM3Mi0xNjYuNiAzNzItMzcyLTE2Ni42LTM3Mi0zNzItMzcyem0xMDQgMjQwLjljMCAxMC4zLTQuOSAxOS45LTEzLjIgMjUuOUw0NTcuNCA1MTJsMTQ1LjQgMTA1LjFjOC4zIDYgMTMuMiAxNS43IDEzLjIgMjUuOXY0Ni45YzAgNi41LTcuNCAxMC4zLTEyLjcgNi41bC0yNDYtMTc4YTcuOTUgNy45NSAwIDAxMC0xMi45bDI0Ni0xNzhjNS4zLTMuOCAxMi43IDAgMTIuNyA2LjV2NDYuOXoiLGZpbGw6bn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeiIsZmlsbDphfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02MDMuMyAzMjcuNWwtMjQ2IDE3OGE3Ljk1IDcuOTUgMCAwMDAgMTIuOWwyNDYgMTc4YzUuMyAzLjggMTIuNyAwIDEyLjctNi41VjY0M2MwLTEwLjItNC45LTE5LjktMTMuMi0yNS45TDQ1Ny40IDUxMmwxNDUuNC0xMDUuMmM4LjMtNiAxMy4yLTE1LjYgMTMuMi0yNS45VjMzNGMwLTYuNS03LjQtMTAuMy0xMi43LTYuNXoiLGZpbGw6YX19XX19LG5hbWU6ImxlZnQtY2lyY2xlIix0aGVtZToidHdvdG9uZSJ9O3QuZGVmYXVsdD1lfSw2NTk0OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik03MjQgMjE4LjNWMTQxYzAtNi43LTcuNy0xMC40LTEyLjktNi4zTDI2MC4zIDQ4Ni44YTMxLjg2IDMxLjg2IDAgMDAwIDUwLjNsNDUwLjggMzUyLjFjNS4zIDQuMSAxMi45LjQgMTIuOS02LjN2LTc3LjNjMC00LjktMi4zLTkuNi02LjEtMTIuNmwtMzYwLTI4MSAzNjAtMjgxLjFjMy44LTMgNi4xLTcuNyA2LjEtMTIuNnoifX1dfSxuYW1lOiJsZWZ0Iix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNjIzMDA6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNjI0IDM4MC45YzAgMTAuMi00LjkgMTkuOS0xMy4yIDI1LjlMNDY1LjQgNTEybDE0NS40IDEwNS4yYzguMyA2IDEzLjIgMTUuNiAxMy4yIDI1LjlWNjkwYzAgNi41LTcuNCAxMC4zLTEyLjcgNi41bC0yNDYtMTc4YTcuOTUgNy45NSAwIDAxMC0xMi45bDI0Ni0xNzhjNS4zLTMuOCAxMi43IDAgMTIuNyA2LjV2NDYuOHoifX1dfSxuYW1lOiJsZWZ0LXNxdWFyZSIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw2Mzk5ODpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMzY1LjMgNTE4LjVsMjQ2IDE3OGM1LjMgMy44IDEyLjcgMCAxMi43LTYuNXYtNDYuOWMwLTEwLjItNC45LTE5LjktMTMuMi0yNS45TDQ2NS40IDUxMmwxNDUuNC0xMDUuMmM4LjMtNiAxMy4yLTE1LjYgMTMuMi0yNS45VjMzNGMwLTYuNS03LjQtMTAuMy0xMi43LTYuNWwtMjQ2IDE3OGE4LjA1IDguMDUgMCAwMDAgMTN6In19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNzI4SDE4NFYxODRoNjU2djY1NnoifX1dfSxuYW1lOiJsZWZ0LXNxdWFyZSIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDg2NTg4OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOmZ1bmN0aW9uKGEsbil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6IixmaWxsOmF9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTE4NCA4NDBoNjU2VjE4NEgxODR2NjU2em0xODEuMy0zMzQuNWwyNDYtMTc4YzUuMy0zLjggMTIuNyAwIDEyLjcgNi41djQ2LjljMCAxMC4zLTQuOSAxOS45LTEzLjIgMjUuOUw0NjUuNCA1MTJsMTQ1LjQgMTA1LjJjOC4zIDYgMTMuMiAxNS43IDEzLjIgMjUuOVY2OTBjMCA2LjUtNy40IDEwLjMtMTIuNyA2LjRsLTI0Ni0xNzhhNy45NSA3Ljk1IDAgMDEwLTEyLjl6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTM2NS4zIDUxOC40bDI0NiAxNzhjNS4zIDMuOSAxMi43LjEgMTIuNy02LjR2LTQ2LjljMC0xMC4yLTQuOS0xOS45LTEzLjItMjUuOUw0NjUuNCA1MTJsMTQ1LjQtMTA1LjJjOC4zLTYgMTMuMi0xNS42IDEzLjItMjUuOVYzMzRjMC02LjUtNy40LTEwLjMtMTIuNy02LjVsLTI0NiAxNzhhNy45NSA3Ljk1IDAgMDAwIDEyLjl6IixmaWxsOmF9fV19fSxuYW1lOiJsZWZ0LXNxdWFyZSIsdGhlbWU6InR3b3RvbmUifTt0LmRlZmF1bHQ9ZX0sNzA3ODk6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4NS45IDUzMy43YzE2LjgtMjIuMiAyNi4xLTQ5LjQgMjYuMS03Ny43IDAtNDQuOS0yNS4xLTg3LjQtNjUuNS0xMTEuMWE2Ny42NyA2Ny42NyAwIDAwLTM0LjMtOS4zSDU3Mi40bDYtMTIyLjljMS40LTI5LjctOS4xLTU3LjktMjkuNS03OS40QTEwNi42MiAxMDYuNjIgMCAwMDQ3MSA5OS45Yy01MiAwLTk4IDM1LTExMS44IDg1LjFsLTg1LjkgMzExaC0uM3Y0MjhoNDcyLjNjOS4yIDAgMTguMi0xLjggMjYuNS01LjQgNDcuNi0yMC4zIDc4LjMtNjYuOCA3OC4zLTExOC40IDAtMTIuNi0xLjgtMjUtNS40LTM3IDE2LjgtMjIuMiAyNi4xLTQ5LjQgMjYuMS03Ny43IDAtMTIuNi0xLjgtMjUtNS40LTM3IDE2LjgtMjIuMiAyNi4xLTQ5LjQgMjYuMS03Ny43LS4yLTEyLjYtMi0yNS4xLTUuNi0zNy4xek0xMTIgNTI4djM2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NVY0OTZoLTY1Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnoifX1dfSxuYW1lOiJsaWtlIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDExOTYyOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODUuOSA1MzMuN2MxNi44LTIyLjIgMjYuMS00OS40IDI2LjEtNzcuNyAwLTQ0LjktMjUuMS04Ny40LTY1LjUtMTExLjFhNjcuNjcgNjcuNjcgMCAwMC0zNC4zLTkuM0g1NzIuNGw2LTEyMi45YzEuNC0yOS43LTkuMS01Ny45LTI5LjUtNzkuNEExMDYuNjIgMTA2LjYyIDAgMDA0NzEgOTkuOWMtNTIgMC05OCAzNS0xMTEuOCA4NS4xbC04NS45IDMxMUgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjM2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2MDEuM2M5LjIgMCAxOC4yLTEuOCAyNi41LTUuNCA0Ny42LTIwLjMgNzguMy02Ni44IDc4LjMtMTE4LjQgMC0xMi42LTEuOC0yNS01LjQtMzcgMTYuOC0yMi4yIDI2LjEtNDkuNCAyNi4xLTc3LjcgMC0xMi42LTEuOC0yNS01LjQtMzcgMTYuOC0yMi4yIDI2LjEtNDkuNCAyNi4xLTc3LjctLjItMTIuNi0yLTI1LjEtNS42LTM3LjF6TTE4NCA4NTJWNTY4aDgxdjI4NGgtODF6bTYzNi40LTM1M2wtMjEuOSAxOSAxMy45IDI1LjRhNTYuMiA1Ni4yIDAgMDE2LjkgMjcuM2MwIDE2LjUtNy4yIDMyLjItMTkuNiA0M2wtMjEuOSAxOSAxMy45IDI1LjRhNTYuMiA1Ni4yIDAgMDE2LjkgMjcuM2MwIDE2LjUtNy4yIDMyLjItMTkuNiA0M2wtMjEuOSAxOSAxMy45IDI1LjRhNTYuMiA1Ni4yIDAgMDE2LjkgMjcuM2MwIDIyLjQtMTMuMiA0Mi42LTMzLjYgNTEuOEgzMjlWNTY0LjhsOTkuNS0zNjAuNWE0NC4xIDQ0LjEgMCAwMTQyLjItMzIuM2M3LjYgMCAxNS4xIDIuMiAyMS4xIDYuNyA5LjkgNy40IDE1LjIgMTguNiAxNC42IDMwLjVsLTkuNiAxOTguNGgzMTQuNEM4MjkgNDE4LjUgODQwIDQzNi45IDg0MCA0NTZjMCAxNi41LTcuMiAzMi4xLTE5LjYgNDN6In19XX0sbmFtZToibGlrZSIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDMyODAyOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOmZ1bmN0aW9uKGEsbil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTI3MyA0OTUuOXY0MjhsLjMtNDI4em01MzguMi04OC4zSDQ5Ni44bDkuNi0xOTguNGMuNi0xMS45LTQuNy0yMy4xLTE0LjYtMzAuNS02LjEtNC41LTEzLjYtNi44LTIxLjEtNi43LTE5LjYuMS0zNi45IDEzLjQtNDIuMiAzMi4zLTM3LjEgMTM0LjQtNjQuOSAyMzUuMi04My41IDMwMi41Vjg1MmgzOTkuNGE1Ni44NSA1Ni44NSAwIDAwMzMuNi01MS44YzAtOS43LTIuMy0xOC45LTYuOS0yNy4zbC0xMy45LTI1LjQgMjEuOS0xOWE1Ni43NiA1Ni43NiAwIDAwMTkuNi00M2MwLTkuNy0yLjMtMTguOS02LjktMjcuM2wtMTMuOS0yNS40IDIxLjktMTlhNTYuNzYgNTYuNzYgMCAwMDE5LjYtNDNjMC05LjctMi4zLTE4LjktNi45LTI3LjNsLTE0LTI1LjUgMjEuOS0xOWE1Ni43NiA1Ni43NiAwIDAwMTkuNi00M2MwLTE5LjEtMTEtMzcuNS0yOC44LTQ4LjR6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTExMiA1Mjh2MzY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY1VjQ5NmgtNjVjLTE3LjcgMC0zMiAxNC4zLTMyIDMyem03NzMuOSA1LjdjMTYuOC0yMi4yIDI2LjEtNDkuNCAyNi4xLTc3LjcgMC00NC45LTI1LjEtODcuNS02NS41LTExMWE2Ny42NyA2Ny42NyAwIDAwLTM0LjMtOS4zSDU3Mi4zbDYtMTIyLjljMS41LTI5LjctOS01Ny45LTI5LjUtNzkuNGExMDYuNCAxMDYuNCAwIDAwLTc3LjktMzMuNGMtNTIgMC05OCAzNS0xMTEuOCA4NS4xbC04NS44IDMxMC44LS4zIDQyOGg0NzIuMWM5LjMgMCAxOC4yLTEuOCAyNi41LTUuNCA0Ny42LTIwLjMgNzguMy02Ni44IDc4LjMtMTE4LjQgMC0xMi42LTEuOC0yNS01LjQtMzcgMTYuOC0yMi4yIDI2LjEtNDkuNCAyNi4xLTc3LjcgMC0xMi42LTEuOC0yNS01LjQtMzcgMTYuOC0yMi4yIDI2LjEtNDkuNCAyNi4xLTc3LjcgMC0xMi42LTEuOC0yNS01LjQtMzd6TTgyMC40IDQ5OWwtMjEuOSAxOSAxNCAyNS41YTU2LjIgNTYuMiAwIDAxNi45IDI3LjNjMCAxNi41LTcuMSAzMi4yLTE5LjYgNDNsLTIxLjkgMTkgMTMuOSAyNS40YTU2LjIgNTYuMiAwIDAxNi45IDI3LjNjMCAxNi41LTcuMSAzMi4yLTE5LjYgNDNsLTIxLjkgMTkgMTMuOSAyNS40YTU2LjIgNTYuMiAwIDAxNi45IDI3LjNjMCAyMi40LTEzLjIgNDIuNi0zMy42IDUxLjhIMzQ1VjUwNi44YzE4LjYtNjcuMiA0Ni40LTE2OCA4My41LTMwMi41YTQ0LjI4IDQ0LjI4IDAgMDE0Mi4yLTMyLjNjNy41LS4xIDE1IDIuMiAyMS4xIDYuNyA5LjkgNy40IDE1LjIgMTguNiAxNC42IDMwLjVsLTkuNiAxOTguNGgzMTQuNEM4MjkgNDE4LjUgODQwIDQzNi45IDg0MCA0NTZjMCAxNi41LTcuMSAzMi4yLTE5LjYgNDN6IixmaWxsOmF9fV19fSxuYW1lOiJsaWtlIix0aGVtZToidHdvdG9uZSJ9O3QuZGVmYXVsdD1lfSw1MjYwOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODggNzkySDIwMFYxNjhjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djY4OGMwIDQuNCAzLjYgOCA4IDhoNzUyYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04ek0zMDUuOCA2MzcuN2MzLjEgMy4xIDguMSAzLjEgMTEuMyAwbDEzOC4zLTEzNy42TDU4MyA2MjguNWMzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDI3NS40LTI3NS4zYzMuMS0zLjEgMy4xLTguMiAwLTExLjNsLTM5LjYtMzkuNmE4LjAzIDguMDMgMCAwMC0xMS4zIDBsLTIzMCAyMjkuOUw0NjEuNCA0MDRhOC4wMyA4LjAzIDAgMDAtMTEuMyAwTDI2Ni4zIDU4Ni43YTguMDMgOC4wMyAwIDAwMCAxMS4zbDM5LjUgMzkuN3oifX1dfSxuYW1lOiJsaW5lLWNoYXJ0Iix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNzM1MjA6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTY0OCAxNjBIMTA0Yy00LjQgMC04IDMuNi04IDh2MTI4YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTY0aDE2OHY1NjBoLTkyYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDI2NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtOTJWMjMyaDE2OHY2NGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04VjE2OGMwLTQuNC0zLjYtOC04LTh6bTI3Mi44IDU0Nkg4NTZWMzE4aDY0LjhjNiAwIDkuNC03IDUuNy0xMS43TDgyNS43IDE3OC43YTcuMTQgNy4xNCAwIDAwLTExLjMgMEw3MTMuNiAzMDYuM2E3LjIzIDcuMjMgMCAwMDUuNyAxMS43SDc4NHYzODhoLTY0LjhjLTYgMC05LjQgNy01LjcgMTEuN2wxMDAuOCAxMjcuNWMyLjkgMy43IDguNSAzLjcgMTEuMyAwbDEwMC44LTEyNy41YTcuMiA3LjIgMCAwMC01LjYtMTEuN3oifX1dfSxuYW1lOiJsaW5lLWhlaWdodCIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDg4NTA1OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MDQgNDc2SDEyMGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg3ODRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6In19XX0sbmFtZToibGluZSIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDYzNzAxOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01NzQgNjY1LjRhOC4wMyA4LjAzIDAgMDAtMTEuMyAwTDQ0Ni41IDc4MS42Yy01My44IDUzLjgtMTQ0LjYgNTkuNS0yMDQgMC01OS41LTU5LjUtNTMuOC0xNTAuMiAwLTIwNGwxMTYuMi0xMTYuMmMzLjEtMy4xIDMuMS04LjIgMC0xMS4zbC0zOS44LTM5LjhhOC4wMyA4LjAzIDAgMDAtMTEuMyAwTDE5MS40IDUyNi41Yy04NC42IDg0LjYtODQuNiAyMjEuNSAwIDMwNnMyMjEuNSA4NC42IDMwNiAwbDExNi4yLTExNi4yYzMuMS0zLjEgMy4xLTguMiAwLTExLjNMNTc0IDY2NS40em0yNTguNi00NzRjLTg0LjYtODQuNi0yMjEuNS04NC42LTMwNiAwTDQxMC4zIDMwNy42YTguMDMgOC4wMyAwIDAwMCAxMS4zbDM5LjcgMzkuN2MzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDExNi4yLTExNi4yYzUzLjgtNTMuOCAxNDQuNi01OS41IDIwNCAwIDU5LjUgNTkuNSA1My44IDE1MC4yIDAgMjA0TDY2NS4zIDU2Mi42YTguMDMgOC4wMyAwIDAwMCAxMS4zbDM5LjggMzkuOGMzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDExNi4yLTExNi4yYzg0LjUtODQuNiA4NC41LTIyMS41IDAtMzA2LjF6TTYxMC4xIDM3Mi4zYTguMDMgOC4wMyAwIDAwLTExLjMgMEwzNzIuMyA1OTguN2E4LjAzIDguMDMgMCAwMDAgMTEuM2wzOS42IDM5LjZjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGwyMjYuNC0yMjYuNGMzLjEtMy4xIDMuMS04LjIgMC0xMS4zbC0zOS41LTM5LjZ6In19XX0sbmFtZToibGluayIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDI1MTYyOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTM0OS4zIDc5My43SDIzMC42VjQxMS45aDExOC43djM4MS44em0tNTkuMy00MzRhNjguOCA2OC44IDAgMTE2OC44LTY4LjhjLS4xIDM4LTMwLjkgNjguOC02OC44IDY4Ljh6bTUwMy43IDQzNEg2NzUuMVY2MDhjMC00NC4zLS44LTEwMS4yLTYxLjctMTAxLjItNjEuNyAwLTcxLjIgNDguMi03MS4yIDk4djE4OC45SDQyMy43VjQxMS45aDExMy44djUyLjJoMS42YzE1LjgtMzAgNTQuNS02MS43IDExMi4zLTYxLjcgMTIwLjIgMCAxNDIuMyA3OS4xIDE0Mi4zIDE4MS45djIwOS40eiJ9fV19LG5hbWU6ImxpbmtlZGluIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDUzNTY4OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NDcuNyAxMTJIMTc2LjNjLTM1LjUgMC02NC4zIDI4LjgtNjQuMyA2NC4zdjY3MS40YzAgMzUuNSAyOC44IDY0LjMgNjQuMyA2NC4zaDY3MS40YzM1LjUgMCA2NC4zLTI4LjggNjQuMy02NC4zVjE3Ni4zYzAtMzUuNS0yOC44LTY0LjMtNjQuMy02NC4zem0wIDczNmMtNDQ3LjgtLjEtNjcxLjctLjItNjcxLjctLjMuMS00NDcuOC4yLTY3MS43LjMtNjcxLjcgNDQ3LjguMSA2NzEuNy4yIDY3MS43LjMtLjEgNDQ3LjgtLjIgNjcxLjctLjMgNjcxLjd6TTIzMC42IDQxMS45aDExOC43djM4MS44SDIzMC42em01OS40LTUyLjJjMzcuOSAwIDY4LjgtMzAuOCA2OC44LTY4LjhhNjguOCA2OC44IDAgMTAtMTM3LjYgMGMtLjEgMzggMzAuNyA2OC44IDY4LjggNjguOHptMjUyLjMgMjQ1LjFjMC00OS44IDkuNS05OCA3MS4yLTk4IDYwLjggMCA2MS43IDU2LjkgNjEuNyAxMDEuMnYxODUuN2gxMTguNlY1ODQuM2MwLTEwMi44LTIyLjItMTgxLjktMTQyLjMtMTgxLjktNTcuNyAwLTk2LjQgMzEuNy0xMTIuMyA2MS43aC0xLjZ2LTUyLjJINDIzLjd2MzgxLjhoMTE4LjZWNjA0Ljh6In19XX0sbmFtZToibGlua2VkaW4iLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSwzMjM0NzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnsiZmlsbC1ydWxlIjoiZXZlbm9kZCIsdmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUzMC44IDY0Yy01Ljc5IDAtMTEuNzYuMy0xNy44OC43OC0xNTcuOCAxMi40NC0xMTUuOTUgMTc5LjQ1LTExOC4zNCAyMzUuMTEtMi44OCA0MC44LTExLjIgNzIuOTUtMzkuMjQgMTEyLjc4LTMzLjAzIDM5LjIzLTc5LjQgMTAyLjY2LTEwMS4zOSAxNjguNzctMTAuMzcgMzEuMDYtMTUuMyA2Mi44Ny0xMC43MSA5Mi45MmExNS44MyAxNS44MyAwIDAwLTQuMTQgNS4wNGMtOS43IDEwLTE2Ljc2IDIyLjQzLTI0LjcyIDMxLjMyLTcuNDIgNy40My0xOC4xIDkuOTYtMjkuNzUgMTQuOTMtMTEuNjggNS4wOC0yNC41NiAxMC4wNC0zMi4yNSAyNS40MmE0OS43IDQ5LjcgMCAwMC00LjkzIDIyLjQzYzAgNy40MyAxIDE0Ljk3IDIuMDUgMjAuMDEgMi4xNyAxNC45IDQuMzMgMjcuMjIgMS40NiAzNi4yMS05LjI2IDI1LjM5LTEwLjQyIDQyLjc5LTMuOTIgNTUuNDQgNi41IDEyLjQ3IDE5Ljk3IDE3LjUxIDM1LjA1IDIyLjQ0IDMwLjI4IDcuNDYgNzEuMyA1LjA0IDEwMy42IDIyLjM2IDM0LjU2IDE3LjQzIDY5LjY2IDI1LjA1IDk3LjY1IDE3LjU0YTY2LjAxIDY2LjAxIDAgMDA0NS4xLTM1LjI3YzIxLjkxLS4xMiA0NS45Mi0xMC4wNSA4NC4zNy0xMi40NyAyNi4wOS0yLjE3IDU4Ljc1IDkuOTcgOTYuMjMgNy40My45NCA1LjA0IDIuMzYgNy40MyA0LjI2IDEyLjQ3bC4xMS4xYzE0LjYgMjkuMDUgNDEuNTUgNDIuMjcgNzAuMzMgMzkuOTkgMjguNzgtMi4yNCA1OS40My0yMC4wMSA4NC4yNi00OC43NiAyMy41NS0yOC41NSA2Mi44My00MC40NiA4OC43Ny01Ni4xIDEyLjk5LTcuNDMgMjMuNDgtMTcuNTEgMjQuMjMtMzEuODUuODYtMTQuOTMtNy40My0zMC4zLTI2LjY2LTUxLjR2LTMuNjJsLS4xLS4xMWMtNi4zNS03LjQ3LTkuMzQtMTkuOTgtMTIuNjMtMzQuNTctMy4xNy0xNC45Ny02LjgtMjkuMzQtMTguMzYtMzkuMDVoLS4xMWMtMi4yLTIuMDItNC42LTIuNS03LjAyLTUuMDRhMTMuMzMgMTMuMzMgMCAwMC03LjEtMi4zOWMxNi4xLTQ3LjcgOS44Ni05NS4yLTYuNDUtMTM3LjktMTkuOS01Mi42My01NC43LTk4LjQ4LTgxLjItMTMwLjAyLTI5LjcxLTM3LjUyLTU4LjgzLTczLjA2LTU4LjI3LTEyNS43NyAxLTgwLjMzIDguODUtMjI4Ljk1LTEzMi4zLTIyOS4xN20xOS43NSAxMjcuMTFoLjQ4YzcuOTUgMCAxNC43OSAyLjMxIDIxLjggNy40IDcuMTMgNS4wMyAxMi4zMiAxMi4zOSAxNi40IDE5Ljg5IDMuOTEgOS42NyA1Ljg5IDE3LjEzIDYuMTkgMjcuMDMgMC0uNzUuMjItMS41LjIyLTIuMnYzLjg4YTMuMjEgMy4yMSAwIDAxLS4xNS0uNzlsLS4xNS0uOWE2Ny40NiA2Ny40NiAwIDAxLTUuNiAyNi4zNiAzNS41OCAzNS41OCAwIDAxLTcuOTUgMTIuNSAyNi41IDI2LjUgMCAwMC0zLjI4LTEuNTZjLTMuOTItMS42OC03LjQzLTIuMzktMTAuNjQtNC45NmE0OC45OCA0OC45OCAwIDAwLTguMTgtMi40N2MxLjgzLTIuMiA1LjQyLTQuOTYgNi44LTcuMzlhNDQuMjIgNDQuMjIgMCAwMDMuMjgtMTV2LS43MmE0NS4xNyA0NS4xNyAwIDAwLTIuMjctMTQuOTNjLTEuNjgtNS4wNC0zLjc3LTcuNS02Ljg0LTEyLjQ3LTMuMTMtMi40Ni02LjIzLTQuOTItOS45Ni00LjkyaC0uNmMtMy40NyAwLTYuNTcgMS4xMi05Ljc4IDQuOTJhMjkuODYgMjkuODYgMCAwMC03LjY1IDEyLjQ3IDQ0LjA1IDQ0LjA1IDAgMDAtMy4zNiAxNC45M3YuNzFjLjA3IDMuMzMuMyA2LjY5Ljc0IDkuOTctNy4yLTIuNS0xNi4zNS01LjA0LTIyLjY2LTcuNTQtLjM3LTIuNDYtLjYtNC45NC0uNjctNy40M3YtLjc1YTY2LjE1IDY2LjE1IDAgMDE1LjYtMjguNyA0MC40NSA0MC40NSAwIDAxMTYuMDUtMTkuOSAzNi43NyAzNi43NyAwIDAxMjIuMTgtNy40M20tMTEwLjU4IDIuMmgxLjM1YzUuMyAwIDEwLjA4IDEuOCAxNC45IDUuMDRhNTEuNiA1MS42IDAgMDExMi44MyAxNy4zNmMzLjM2IDcuNDMgNS4yNyAxNC45NyA1LjcyIDI0Ljl2LjE1Yy4yNiA1IC4yMiA3LjUtLjA4IDkuOTN2Mi45OWMtMS4xMi4yNi0yLjA5LjY3LTMuMS45LTUuNjcgMi4wNS0xMC4yMyA1LjAzLTE0LjY3IDcuNDYuNDUtMy4zMi40OS02LjY4LjExLTkuOTd2LS41NmMtLjQ0LTQuOTYtMS40NS03LjQzLTMuMDYtMTIuNDNhMjIuODggMjIuODggMCAwMC02LjItOS45NyA5LjI2IDkuMjYgMCAwMC02LjgzLTIuMzloLS43OGMtMi42NS4yMy00Ljg1IDEuNTMtNi45NCA0LjkzYTIwLjYgMjAuNiAwIDAwLTQuNDggMTAuMDggMzUuMjQgMzUuMjQgMCAwMC0uODYgMTIuMzZ2LjUyYy40NSA1LjA0IDEuMzggNy41IDMuMDIgMTIuNDcgMS42OCA1IDMuNjIgNy40NiA2LjE2IDEwIC40MS4zNC43OS42NyAxLjI3LjktMi42MSAyLjEzLTQuMzcgMi42MS02LjU3IDUuMDhhMTEuMzkgMTEuMzkgMCAwMS00Ljg5IDIuNTMgOTcuODQgOTcuODQgMCAwMS0xMC4yNy0xNSA2Ni4xNSA2Ni4xNSAwIDAxLTUuNzgtMjQuOSA2NS42NyA2NS42NyAwIDAxMi45OC0yNC45NCA1My4zOCA1My4zOCAwIDAxMTAuNTctMTkuOTdjNC43OC00Ljk3IDkuNy03LjQ3IDE1LjYtNy40N000OTEuMTUgMjU3YzEyLjM2IDAgMjcuMzMgMi40MyA0NS4zNiAxNC45IDEwLjk0IDcuNDYgMTkuNTIgMTAuMDQgMzkuMzEgMTcuNDdoLjExYzkuNTIgNS4wNyAxNS4xMiA5LjkzIDE3Ljg0IDE0Ljl2LTQuOWEyMS4zMiAyMS4zMiAwIDAxLjYgMTcuNTVjLTQuNTkgMTEuNi0xOS4yNiAyNC4wNC0zOS43MiAzMS40N3YuMDdjLTEwIDUuMDQtMTguNyAxMi40My0yOC45MyAxNy4zNi0xMC4zIDUuMDQtMjEuOTUgMTAuOS0zNy43OCA5Ljk3YTQyLjUyIDQyLjUyIDAgMDEtMTYuNzItMi41IDEzMy4xMiAxMzMuMTIgMCAwMS0xMi4wMi03LjRjLTcuMjgtNS4wNC0xMy41NS0xMi4zOS0yMi44NS0xNy4zNnYtLjE4aC0uMTljLTE0LjkzLTkuMTktMjIuOTktMTkuMTItMjUuNi0yNi41NC0yLjU4LTEwLS4xOS0xNy41MSA3LjItMjIuNCA4LjM2LTUuMDQgMTQuMTktMTAuMTIgMTguMDMtMTIuNTUgMy44OC0yLjc2IDUuMzQtMy44IDYuNTctNC44OWguMDh2LS4xYzYuMy03LjU1IDE2LjI3LTE3LjUyIDMxLjMyLTIyLjQ0YTY4LjY1IDY4LjY1IDAgMDExNy40LTIuNDNtMTA0LjQ4IDgwYzEzLjQgNTIuOSA0NC42OSAxMjkuNzIgNjQuOCAxNjYuOTggMTAuNjggMTkuOTMgMzEuOTMgNjEuOTMgNDEuMTUgMTEyLjg5IDUuODItLjE5IDEyLjI4LjY3IDE5LjE1IDIuMzkgMjQuMTEtNjIuMzgtMjAuMzktMTI5LjQzLTQwLjY2LTE0OC4wNi04LjI1LTcuNS04LjY2LTEyLjUtNC41OS0xMi41IDIxLjk5IDE5LjkzIDUwLjk2IDU4LjY4IDYxLjQ1IDEwMi45MiA0LjgxIDE5Ljk3IDUuOTMgNDEuMjEuNzggNjIuMzQgMi41IDEuMDUgNS4wNCAyLjI4IDcuNjUgMi41IDM4LjUzIDE5Ljk0IDUyLjc1IDM1LjAyIDQ1LjkyIDU3LjM4di0xLjZjLTIuMjctLjEyLTQuNDggMC02Ljc1IDBoLS41NmM1LjYzLTE3LjQ0LTYuOC0zMC44LTM5Ljc2LTQ1LjctMzQuMTYtMTQuOTMtNjEuNDUtMTIuNTQtNjYuMTEgMTcuMzYtLjI3IDEuNi0uNDUgMi40Ni0uNjQgNS4wNC0yLjU0Ljg2LTUuMTkgMS45OC03LjggMi4zOS0xNi4wNSAxMC0yNC43MSAyNC45Ny0yOS42IDQ0LjMxLTQuODYgMTkuOS02LjM1IDQzLjE2LTcuNjYgNjkuNzd2LjExYy0uNzggMTIuNDctNi4zOCAzMS4yOS0xMS45IDUwLjQ0LTU2IDQwLjAxLTEzMy42NSA1Ny40MS0xOTkuNjkgMTIuNDZhOTguNzQgOTguNzQgMCAwMC0xNS0xOS45IDU0LjEzIDU0LjEzIDAgMDAtMTAuMjctMTIuNDZjNi44IDAgMTIuNjItMS4wOCAxNy4zNi0yLjVhMjIuOTYgMjIuOTYgMCAwMDExLjcyLTEyLjQ3YzQuMDMtOS45NyAwLTI2LjAyLTEyLjg4LTQzLjQyQzM5OC44NyA3MzAuMjQgMzc3IDcxMC41MyAzNDUgNjkwLjljLTIzLjUxLTE0Ljg5LTM2LjgtMzIuNDctNDIuOTMtNTIuMS02LjE2LTE5Ljk0LTUuMzMtNDAuNTEtLjU2LTYxLjQyIDkuMTUtMzkuOTQgMzIuNi03OC43NyA0Ny41Ni0xMDMuMTQgNC0yLjQzIDEuMzggNS4wNC0xNS4yMyAzNi4zNi0xNC43OCAyOC4wMy00Mi42IDkzLjIxLTQuNTUgMTQzLjg3YTMwMy4yNyAzMDMuMjcgMCAwMTI0LjE1LTEwNy4zNmMyMS4wNi00Ny43MSA2NS4wNy0xMzAuODEgNjguNTQtMTk2LjY2IDEuOCAxLjM0IDguMSA1LjA0IDEwLjc5IDcuNTQgOC4xNCA0Ljk2IDE0LjE4IDEyLjQzIDIyLjAyIDE3LjM2IDcuODggNy41IDE3LjgxIDEyLjUgMzIuNyAxMi41IDEuNDYuMTIgMi44LjIzIDQuMTUuMjMgMTUuMzQgMCAyNy4yMS01IDM3LjE4LTEwIDEwLjgzLTUgMTkuNDUtMTIuNDggMjcuNjMtMTQuOTRoLjE4YzE3LjQ0LTUuMDQgMzEuMjEtMTUgMzkuMDEtMjYuMTNtODEuNiAzMzQuNGMxLjM5IDIyLjQ0IDEyLjgxIDQ2LjQ4IDMyLjkzIDUxLjQxIDIxLjk1IDUgNTMuNTMtMTIuNDMgNjYuODYtMjguNTZsNy44OC0uMzNjMTEuNzYtLjMgMjEuNTQuMzcgMzEuNjIgOS45N2wuMS4xYzcuNzcgNy40NCAxMS40IDE5LjgzIDE0LjYgMzIuNyAzLjE4IDE0Ljk4IDUuNzUgMjkuMTMgMTUuMjcgMzkuOCAxOC4xNSAxOS42OCAyNC4wOCAzMy44MiAyMy43NSA0Mi41NmwuMS0uMjJ2LjY3bC0uMS0uNDVjLS41NiA5Ljc4LTYuOTEgMTQuNzgtMTguNiAyMi4yMS0yMy41MSAxNC45Ny02NS4xNyAyNi41OC05MS43MiA1OC42MS0yMy4wNyAyNy41MS01MS4xOCA0Mi41Mi03NiA0NC40Ni0yNC43OSAxLjk4LTQ2LjE4LTcuNDYtNTguNzYtMzMuNTJsLS4xOS0uMTFjLTcuODQtMTQuOTctNC40OC0zOC4yNyAyLjEtNjMuMSA2LjU2LTI0LjkzIDE1Ljk3LTUwLjIgMTcuMjgtNzAuODUgMS4zOC0yNi42NSAyLjgzLTQ5LjgzIDcuMjgtNjcuNzEgNC40OC0xNy4zNiAxMS41LTI5Ljc2IDIzLjkzLTM2Ljc0bDEuNjgtLjgyem0tNDAzLjcyIDEuODRoLjM3YzEuOTggMCAzLjkyLjE4IDUuODYuNTIgMTQuMDQgMi4wNSAyNi4zNSAxMi40MyAzOC4xOSAyOC4wN2wzMy45NyA2Mi4xMi4xMS4xMWM5LjA3IDE5LjkgMjguMTUgMzkuNzIgNDQuMzkgNjEuMTUgMTYuMiAyMi4zMiAyOC43NCA0Mi4yMiAyNy4yMSA1OC42MXYuMjJjLTIuMTMgMjcuNzgtMTcuODggNDIuODYtNDIgNDguMy0yNC4wNyA1LjA1LTU2Ljc0LjA4LTg5LjQtMTcuMzEtMzYuMTQtMjAuMDEtNzkuMDctMTcuNTEtMTA2LjY2LTIyLjQ4LTEzLjc3LTIuNDYtMjIuOC03LjUtMjYuOTktMTQuOTctNC4xNC03LjQyLTQuMjEtMjIuNDMgNC42LTQ1Ljkxdi0uMTFsLjA3LS4xMmM0LjM3LTEyLjQ2IDEuMTItMjguMS0xLTQxLjc3LTIuMDYtMTQuOTctMy4xLTI2LjQ3IDEuNi0zNS4wOSA1Ljk3LTEyLjQ3IDE0Ljc4LTE0LjkgMjUuNzItMTkuOSAxMS4wMS01LjA0IDIzLjkzLTcuNTQgMzQuMi0xNy41aC4wN3YtLjEyYzkuNTUtMTAgMTYuNjEtMjIuNDMgMjQuOTMtMzEuMjggNy4xLTcuNSAxNC4xOS0xMi41NCAyNC43NS0xMi41NE01NDAuNzYgMzM0LjVjLTE2LjI0IDcuNS0zNS4yNyAxOS45Ny01NS41NCAxOS45Ny0yMC4yNCAwLTM2LjIxLTkuOTctNDcuNzUtMTcuNC01Ljc5LTUtMTAuNDUtMTAtMTMuOTYtMTIuNS02LjEyLTUtNS4zOC0xMi40Ny0yLjc2LTEyLjQ3IDQuMDcuNiA0LjgxIDUuMDQgNy40MyA3LjUgMy41OCAyLjQ3IDguMDIgNy40MyAxMy40NyAxMi40MyAxMC44NiA3LjQ3IDI1LjM5IDE3LjQ0IDQzLjUzIDE3LjQ0IDE4LjEgMCAzOS4zLTkuOTcgNTIuMTktMTcuNCA3LjI4LTUuMDQgMTYuNi0xMi40NyAyNC4xOS0xNy40MyA1LjgyLTUuMTIgNS41Ni0xMCAxMC40MS0xMCA0LjgyLjYgMS4yNyA1LTUuNDggMTIuNDJhMzAyLjMgMzAyLjMgMCAwMS0yNS43NiAxNy40N3YtLjAzem0tNDAuMzktNTkuMTN2LS44M2MtLjIyLS43LjQ5LTEuNTYgMS4wOS0xLjg2IDIuNzYtMS42IDYuNzItMS4wMSA5LjcuMTUgMi4zNSAwIDUuOTcgMi41IDUuNiA1LjA0LS4yMiAxLjgzLTMuMTcgMi40Ni01LjA0IDIuNDYtMi4wNSAwLTMuNDMtMS42LTUuMjYtMi41NC0xLjk0LS42Ny01LjQ1LS4zLTYuMDktMi40Mm0tMjAuNTcgMGMtLjc0IDIuMTYtNC4yMiAxLjgyLTYuMiAyLjQ2LTEuNzUuOTMtMy4yIDIuNTQtNS4xOCAyLjU0LTEuOSAwLTQuOS0uNzEtNS4xMi0yLjU0LS4zMy0yLjQ3IDMuMjktNC45NyA1LjYtNC45NyAzLjAzLTEuMTUgNi44Ny0xLjc1IDkuNjctLjE4LjcxLjMzIDEuMzUgMS4xMiAxLjEyIDEuODZ2Ljc5aC4xMXoifX1dfSxuYW1lOiJsaW51eCIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDgxNzUyOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjAgMCAxMDI0IDEwMjQiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgMTAyNGMtNjkuMSAwLTEzNi4yLTEzLjUtMTk5LjMtNDAuMkMyNTEuNyA5NTggMTk3IDkyMSAxNTAgODc0Yy00Ny00Ny04NC0xMDEuNy0xMDkuOC0xNjIuN0MxMy41IDY0OC4yIDAgNTgxLjEgMCA1MTJjMC0xOS45IDE2LjEtMzYgMzYtMzZzMzYgMTYuMSAzNiAzNmMwIDU5LjQgMTEuNiAxMTcgMzQuNiAxNzEuMyAyMi4yIDUyLjQgNTMuOSA5OS41IDk0LjMgMTM5LjkgNDAuNCA0MC40IDg3LjUgNzIuMiAxMzkuOSA5NC4zQzM5NSA5NDAuNCA0NTIuNiA5NTIgNTEyIDk1MmM1OS40IDAgMTE3LTExLjYgMTcxLjMtMzQuNiA1Mi40LTIyLjIgOTkuNS01My45IDEzOS45LTk0LjMgNDAuNC00MC40IDcyLjItODcuNSA5NC4zLTEzOS45Qzk0MC40IDYyOSA5NTIgNTcxLjQgOTUyIDUxMmMwLTU5LjQtMTEuNi0xMTctMzQuNi0xNzEuM2E0NDAuNDUgNDQwLjQ1IDAgMDAtOTQuMy0xMzkuOSA0MzcuNzEgNDM3LjcxIDAgMDAtMTM5LjktOTQuM0M2MjkgODMuNiA1NzEuNCA3MiA1MTIgNzJjLTE5LjkgMC0zNi0xNi4xLTM2LTM2czE2LjEtMzYgMzYtMzZjNjkuMSAwIDEzNi4yIDEzLjUgMTk5LjMgNDAuMkM3NzIuMyA2NiA4MjcgMTAzIDg3NCAxNTBjNDcgNDcgODMuOSAxMDEuOCAxMDkuNyAxNjIuNyAyNi43IDYzLjEgNDAuMiAxMzAuMiA0MC4yIDE5OS4zcy0xMy41IDEzNi4yLTQwLjIgMTk5LjNDOTU4IDc3Mi4zIDkyMSA4MjcgODc0IDg3NGMtNDcgNDctMTAxLjggODMuOS0xNjIuNyAxMDkuNy02My4xIDI2LjgtMTMwLjIgNDAuMy0xOTkuMyA0MC4zeiJ9fV19LG5hbWU6ImxvYWRpbmctMy1xdWFydGVycyIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDI1ODI4OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjAgMCAxMDI0IDEwMjQiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05ODggNTQ4Yy0xOS45IDAtMzYtMTYuMS0zNi0zNiAwLTU5LjQtMTEuNi0xMTctMzQuNi0xNzEuM2E0NDAuNDUgNDQwLjQ1IDAgMDAtOTQuMy0xMzkuOSA0MzcuNzEgNDM3LjcxIDAgMDAtMTM5LjktOTQuM0M2MjkgODMuNiA1NzEuNCA3MiA1MTIgNzJjLTE5LjkgMC0zNi0xNi4xLTM2LTM2czE2LjEtMzYgMzYtMzZjNjkuMSAwIDEzNi4yIDEzLjUgMTk5LjMgNDAuM0M3NzIuMyA2NiA4MjcgMTAzIDg3NCAxNTBjNDcgNDcgODMuOSAxMDEuOCAxMDkuNyAxNjIuNyAyNi43IDYzLjEgNDAuMiAxMzAuMiA0MC4yIDE5OS4zLjEgMTkuOS0xNiAzNi0zNS45IDM2eiJ9fV19LG5hbWU6ImxvYWRpbmciLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw4NDU1MDpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODMyIDQ2NGgtNjhWMjQwYzAtNzAuNy01Ny4zLTEyOC0xMjgtMTI4SDM4OGMtNzAuNyAwLTEyOCA1Ny4zLTEyOCAxMjh2MjI0aC02OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2Mzg0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlY0OTZjMC0xNy43LTE0LjMtMzItMzItMzJ6TTU0MCA3MDF2NTNjMCA0LjQtMy42IDgtOCA4aC00MGMtNC40IDAtOC0zLjYtOC04di01M2E0OC4wMSA0OC4wMSAwIDExNTYgMHptMTUyLTIzN0gzMzJWMjQwYzAtMzAuOSAyNS4xLTU2IDU2LTU2aDI0OGMzMC45IDAgNTYgMjUuMSA1NiA1NnYyMjR6In19XX0sbmFtZToibG9jayIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSwzMTY4MjpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODMyIDQ2NGgtNjhWMjQwYzAtNzAuNy01Ny4zLTEyOC0xMjgtMTI4SDM4OGMtNzAuNyAwLTEyOCA1Ny4zLTEyOCAxMjh2MjI0aC02OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2Mzg0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlY0OTZjMC0xNy43LTE0LjMtMzItMzItMzJ6TTMzMiAyNDBjMC0zMC45IDI1LjEtNTYgNTYtNTZoMjQ4YzMwLjkgMCA1NiAyNS4xIDU2IDU2djIyNEgzMzJWMjQwem00NjAgNjAwSDIzMlY1MzZoNTYwdjMwNHpNNDg0IDcwMXY1M2MwIDQuNCAzLjYgOCA4IDhoNDBjNC40IDAgOC0zLjYgOC04di01M2E0OC4wMSA0OC4wMSAwIDEwLTU2IDB6In19XX0sbmFtZToibG9jayIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDMyMDE3OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOmZ1bmN0aW9uKGEsbil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTgzMiA0NjRoLTY4VjI0MGMwLTcwLjctNTcuMy0xMjgtMTI4LTEyOEgzODhjLTcwLjcgMC0xMjggNTcuMy0xMjggMTI4djIyNGgtNjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjM4NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWNDk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyek0zMzIgMjQwYzAtMzAuOSAyNS4xLTU2IDU2LTU2aDI0OGMzMC45IDAgNTYgMjUuMSA1NiA1NnYyMjRIMzMyVjI0MHptNDYwIDYwMEgyMzJWNTM2aDU2MHYzMDR6IixmaWxsOmF9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTIzMiA4NDBoNTYwVjUzNkgyMzJ2MzA0em0yODAtMjI2YTQ4LjAxIDQ4LjAxIDAgMDEyOCA4N3Y1M2MwIDQuNC0zLjYgOC04IDhoLTQwYy00LjQgMC04LTMuNi04LTh2LTUzYTQ4LjAxIDQ4LjAxIDAgMDEyOC04N3oiLGZpbGw6bn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNDg0IDcwMXY1M2MwIDQuNCAzLjYgOCA4IDhoNDBjNC40IDAgOC0zLjYgOC04di01M2E0OC4wMSA0OC4wMSAwIDEwLTU2IDB6IixmaWxsOmF9fV19fSxuYW1lOiJsb2NrIix0aGVtZToidHdvdG9uZSJ9O3QuZGVmYXVsdD1lfSw2MzE6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJkZWZzIixhdHRyczp7fSxjaGlsZHJlbjpbe3RhZzoic3R5bGUiLGF0dHJzOnt9fV19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTIxLjcgODJjLTE1Mi41LS40LTI4Ni43IDc4LjUtMzYzLjQgMTk3LjctMy40IDUuMy40IDEyLjMgNi43IDEyLjNoNzAuM2M0LjggMCA5LjMtMi4xIDEyLjMtNS44IDctOC41IDE0LjUtMTYuNyAyMi40LTI0LjUgMzIuNi0zMi41IDcwLjUtNTguMSAxMTIuNy03NS45IDQzLjYtMTguNCA5MC0yNy44IDEzNy45LTI3LjggNDcuOSAwIDk0LjMgOS4zIDEzNy45IDI3LjggNDIuMiAxNy44IDgwLjEgNDMuNCAxMTIuNyA3NS45IDMyLjYgMzIuNSA1OC4xIDcwLjQgNzYgMTEyLjVDODY1LjcgNDE3LjggODc1IDQ2NC4xIDg3NSA1MTJjMCA0Ny45LTkuNCA5NC4yLTI3LjggMTM3LjgtMTcuOCA0Mi4xLTQzLjQgODAtNzYgMTEyLjVzLTcwLjUgNTguMS0xMTIuNyA3NS45QTM1Mi44IDM1Mi44IDAgMDE1MjAuNiA4NjZjLTQ3LjkgMC05NC4zLTkuNC0xMzcuOS0yNy44QTM1My44NCAzNTMuODQgMCAwMTI3MCA3NjIuM2MtNy45LTcuOS0xNS4zLTE2LjEtMjIuNC0yNC41LTMtMy43LTcuNi01LjgtMTIuMy01LjhIMTY1Yy02LjMgMC0xMC4yIDctNi43IDEyLjNDMjM0LjkgODYzLjIgMzY4LjUgOTQyIDUyMC42IDk0MmMyMzYuMiAwIDQyOC0xOTAuMSA0MzAuNC00MjUuNkM5NTMuNCAyNzcuMSA3NjEuMyA4Mi42IDUyMS43IDgyek0zOTUuMDIgNjI0di03NmgtMzE0Yy00LjQgMC04LTMuNi04LTh2LTU2YzAtNC40IDMuNi04IDgtOGgzMTR2LTc2YzAtNi43IDcuOC0xMC41IDEzLTYuM2wxNDEuOSAxMTJhOCA4IDAgMDEwIDEyLjZsLTE0MS45IDExMmMtNS4yIDQuMS0xMyAuNC0xMy02LjN6In19XX0sbmFtZToibG9naW4iLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSwzNzQ2MzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODY4IDczMmgtNzAuM2MtNC44IDAtOS4zIDIuMS0xMi4zIDUuOC03IDguNS0xNC41IDE2LjctMjIuNCAyNC41YTM1My44NCAzNTMuODQgMCAwMS0xMTIuNyA3NS45QTM1Mi44IDM1Mi44IDAgMDE1MTIuNCA4NjZjLTQ3LjkgMC05NC4zLTkuNC0xMzcuOS0yNy44YTM1My44NCAzNTMuODQgMCAwMS0xMTIuNy03NS45IDM1My4yOCAzNTMuMjggMCAwMS03Ni0xMTIuNUMxNjcuMyA2MDYuMiAxNTggNTU5LjkgMTU4IDUxMnM5LjQtOTQuMiAyNy44LTEzNy44YzE3LjgtNDIuMSA0My40LTgwIDc2LTExMi41czcwLjUtNTguMSAxMTIuNy03NS45YzQzLjYtMTguNCA5MC0yNy44IDEzNy45LTI3LjggNDcuOSAwIDk0LjMgOS4zIDEzNy45IDI3LjggNDIuMiAxNy44IDgwLjEgNDMuNCAxMTIuNyA3NS45IDcuOSA3LjkgMTUuMyAxNi4xIDIyLjQgMjQuNSAzIDMuNyA3LjYgNS44IDEyLjMgNS44SDg2OGM2LjMgMCAxMC4yLTcgNi43LTEyLjNDNzk4IDE2MC41IDY2My44IDgxLjYgNTExLjMgODIgMjcxLjcgODIuNiA3OS42IDI3Ny4xIDgyIDUxNi40IDg0LjQgNzUxLjkgMjc2LjIgOTQyIDUxMi40IDk0MmMxNTIuMSAwIDI4NS43LTc4LjggMzYyLjMtMTk3LjcgMy40LTUuMy0uNC0xMi4zLTYuNy0xMi4zem04OC45LTIyNi4zTDgxNSAzOTMuN2MtNS4zLTQuMi0xMy0uNC0xMyA2LjN2NzZINDg4Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDMxNHY3NmMwIDYuNyA3LjggMTAuNSAxMyA2LjNsMTQxLjktMTEyYTggOCAwIDAwMC0xMi42eiJ9fV19LG5hbWU6ImxvZ291dCIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDg0NDgwOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoiZGVmcyIsYXR0cnM6e30sY2hpbGRyZW46W3t0YWc6InN0eWxlIixhdHRyczp7fX1dfSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTYyNCA2NzJhNDguMDEgNDguMDEgMCAwMDk2IDBjMC0yNi41LTIxLjUtNDgtNDgtNDhoLTQ4djQ4em05Ni0zMjBhNDguMDEgNDguMDEgMCAwMC05NiAwdjQ4aDQ4YzI2LjUgMCA0OC0yMS41IDQ4LTQ4eiJ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkyOCA2NEg5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDgzMmMxNy43IDAgMzItMTQuMyAzMi0zMlY5NmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNjcyIDU2MGM2MS45IDAgMTEyIDUwLjEgMTEyIDExMnMtNTAuMSAxMTItMTEyIDExMi0xMTItNTAuMS0xMTItMTEydi00OGgtOTZ2NDhjMCA2MS45LTUwLjEgMTEyLTExMiAxMTJzLTExMi01MC4xLTExMi0xMTIgNTAuMS0xMTIgMTEyLTExMmg0OHYtOTZoLTQ4Yy02MS45IDAtMTEyLTUwLjEtMTEyLTExMnM1MC4xLTExMiAxMTItMTEyIDExMiA1MC4xIDExMiAxMTJ2NDhoOTZ2LTQ4YzAtNjEuOSA1MC4xLTExMiAxMTItMTEyczExMiA1MC4xIDExMiAxMTItNTAuMSAxMTItMTEyIDExMmgtNDh2OTZoNDh6In19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNDY0IDQ2NGg5NnY5NmgtOTZ6TTM1MiAzMDRhNDguMDEgNDguMDEgMCAwMDAgOTZoNDh2LTQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4em0tNDggMzY4YTQ4LjAxIDQ4LjAxIDAgMDA5NiAwdi00OGgtNDhjLTI2LjUgMC00OCAyMS41LTQ4IDQ4eiJ9fV19LG5hbWU6Im1hYy1jb21tYW5kIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDc2MjUwOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoiZGVmcyIsYXR0cnM6e30sY2hpbGRyZW46W3t0YWc6InN0eWxlIixhdHRyczp7fX1dfSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6In19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMzcwLjggNTU0LjRjLTU0LjYgMC05OC44IDQ0LjItOTguOCA5OC44czQ0LjIgOTguOCA5OC44IDk4LjggOTguOC00NC4yIDk4LjgtOTguOHYtNDIuNGg4NC43djQyLjRjMCA1NC42IDQ0LjIgOTguOCA5OC44IDk4LjhzOTguOC00NC4yIDk4LjgtOTguOC00NC4yLTk4LjgtOTguOC05OC44aC00Mi40di04NC43aDQyLjRjNTQuNiAwIDk4LjgtNDQuMiA5OC44LTk4LjggMC01NC42LTQ0LjItOTguOC05OC44LTk4LjhzLTk4LjggNDQuMi05OC44IDk4Ljh2NDIuNGgtODQuN3YtNDIuNGMwLTU0LjYtNDQuMi05OC44LTk4LjgtOTguOFMyNzIgMzE2LjIgMjcyIDM3MC44czQ0LjIgOTguOCA5OC44IDk4LjhoNDIuNHY4NC43aC00Mi40em00Mi40IDk4LjhjMCAyMy40LTE5IDQyLjQtNDIuNCA0Mi40cy00Mi40LTE5LTQyLjQtNDIuNCAxOS00Mi40IDQyLjQtNDIuNGg0Mi40djQyLjR6bTE5Ny42LTI4Mi40YzAtMjMuNCAxOS00Mi40IDQyLjQtNDIuNHM0Mi40IDE5IDQyLjQgNDIuNC0xOSA0Mi40LTQyLjQgNDIuNGgtNDIuNHYtNDIuNHptMCAyNDBoNDIuNGMyMy40IDAgNDIuNCAxOSA0Mi40IDQyLjRzLTE5IDQyLjQtNDIuNCA0Mi40LTQyLjQtMTktNDIuNC00Mi40di00Mi40ek00NjkuNiA0NjkuNmg4NC43djg0LjdoLTg0Ljd2LTg0Ljd6bS05OC44LTU2LjRjLTIzLjQgMC00Mi40LTE5LTQyLjQtNDIuNHMxOS00Mi40IDQyLjQtNDIuNCA0Mi40IDE5IDQyLjQgNDIuNHY0Mi40aC00Mi40eiJ9fV19LG5hbWU6Im1hYy1jb21tYW5kIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sMjE1NDpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTI4IDE2MEg5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjQwYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDgzMmMxNy43IDAgMzItMTQuMyAzMi0zMlYxOTJjMC0xNy43LTE0LjMtMzItMzItMzJ6bS04MC44IDEwOC45TDUzMS43IDUxNC40Yy03LjggNi4xLTE4LjcgNi4xLTI2LjUgMEwxODkuNiAyNjguOUE3LjIgNy4yIDAgMDExOTQgMjU2aDY0OC44YTcuMiA3LjIgMCAwMTQuNCAxMi45eiJ9fV19LG5hbWU6Im1haWwiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sODA3NTQ6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkyOCAxNjBIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY0MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg4MzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgMTEwLjhWNzkySDEzNlYyNzAuOGwtMjcuNi0yMS41IDM5LjMtNTAuNSA0Mi44IDMzLjNoNjQzLjFsNDIuOC0zMy4zIDM5LjMgNTAuNS0yNy43IDIxLjV6TTgzMy42IDIzMkw1MTIgNDgyIDE5MC40IDIzMmwtNDIuOC0zMy4zLTM5LjMgNTAuNSAyNy42IDIxLjUgMzQxLjYgMjY1LjZhNTUuOTkgNTUuOTkgMCAwMDY4LjcgMEw4ODggMjcwLjhsMjcuNi0yMS41LTM5LjMtNTAuNS00Mi43IDMzLjJ6In19XX0sbmFtZToibWFpbCIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDE4OTcxOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOmZ1bmN0aW9uKGEsbil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQ3Ny41IDUzNi4zTDEzNS45IDI3MC43bC0yNy41LTIxLjQgMjcuNiAyMS41Vjc5Mmg3NTJWMjcwLjhMNTQ2LjIgNTM2LjNhNTUuOTkgNTUuOTkgMCAwMS02OC43IDB6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg3Ni4zIDE5OC44bDM5LjMgNTAuNS0yNy42IDIxLjUgMjcuNy0yMS41LTM5LjMtNTAuNXoiLGZpbGw6bn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNOTI4IDE2MEg5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjQwYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDgzMmMxNy43IDAgMzItMTQuMyAzMi0zMlYxOTJjMC0xNy43LTE0LjMtMzItMzItMzJ6bS05NC41IDcyLjFMNTEyIDQ4MiAxOTAuNSAyMzIuMWg2NDN6bTU0LjUgMzguN1Y3OTJIMTM2VjI3MC44bC0yNy42LTIxLjUgMjcuNSAyMS40IDM0MS42IDI2NS42YTU1Ljk5IDU1Ljk5IDAgMDA2OC43IDBMODg4IDI3MC44bDI3LjYtMjEuNS0zOS4zLTUwLjVoLjFsMzkuMyA1MC41LTI3LjcgMjEuNXoiLGZpbGw6YX19XX19LG5hbWU6Im1haWwiLHRoZW1lOiJ0d290b25lIn07dC5kZWZhdWx0PWV9LDc0MzA5OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NzQgMTIwSDYyMmMtMy4zIDAtNiAyLjctNiA2djU2YzAgMy4zIDIuNyA2IDYgNmgxNjAuNEw1ODMuMSAzODcuM2MtNTAtMzguNS0xMTEtNTkuMy0xNzUuMS01OS4zLTc2LjkgMC0xNDkuMyAzMC0yMDMuNiA4NC40UzEyMCA1MzkuMSAxMjAgNjE2czMwIDE0OS4zIDg0LjQgMjAzLjZDMjU4LjcgODc0IDMzMS4xIDkwNCA0MDggOTA0czE0OS4zLTMwIDIwMy42LTg0LjRDNjY2IDc2NS4zIDY5NiA2OTIuOSA2OTYgNjE2YzAtNjQuMS0yMC44LTEyNC45LTU5LjItMTc0LjlMODM2IDI0MS45VjQwMmMwIDMuMyAyLjcgNiA2IDZoNTZjMy4zIDAgNi0yLjcgNi02VjE1MGMwLTE2LjUtMTMuNS0zMC0zMC0zMHpNNDA4IDgyOGMtMTE2LjkgMC0yMTItOTUuMS0yMTItMjEyczk1LjEtMjEyIDIxMi0yMTIgMjEyIDk1LjEgMjEyIDIxMi05NS4xIDIxMi0yMTIgMjEyeiJ9fV19LG5hbWU6Im1hbiIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDIxMTI2OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04MzkuMiAyNzguMWEzMiAzMiAwIDAwLTMwLjQtMjIuMUg3MzZWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMySDMyMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MTEyaC03Mi44YTMxLjkgMzEuOSAwIDAwLTMwLjQgMjIuMUwxMTIgNTAydjM3OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWNTAybC03Mi44LTIyMy45ek02NjAgNjI4YzAgNC40LTMuNiA4LTggOEg1NDR2MTA4YzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOFY2MzZIMzcyYy00LjQgMC04LTMuNi04LTh2LTQ4YzAtNC40IDMuNi04IDgtOGgxMDhWNDY0YzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh2MTA4aDEwOGM0LjQgMCA4IDMuNiA4IDh2NDh6bTQtMzcySDM2MHYtNzJoMzA0djcyeiJ9fV19LG5hbWU6Im1lZGljaW5lLWJveCIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw3NDAxODpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODM5LjIgMjc4LjFhMzIgMzIgMCAwMC0zMC40LTIyLjFINzM2VjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMkgzMjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjExMmgtNzIuOGEzMS45IDMxLjkgMCAwMC0zMC40IDIyLjFMMTEyIDUwMnYzNzhjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjUwMmwtNzIuOC0yMjMuOXpNMzYwIDE4NGgzMDR2NzJIMzYwdi03MnptNDgwIDY1NkgxODRWNTEzLjRMMjQ0LjMgMzI4aDUzNS40TDg0MCA1MTMuNFY4NDB6TTY1MiA1NzJINTQ0VjQ2NGMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2MTA4SDM3MmMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgxMDh2MTA4YzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LThWNjM2aDEwOGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOHoifX1dfSxuYW1lOiJtZWRpY2luZS1ib3giLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw1NjU2ODpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjpmdW5jdGlvbihhLG4pe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0yNDQuMyAzMjhMMTg0IDUxMy40Vjg0MGg2NTZWNTEzLjRMNzc5LjcgMzI4SDI0NC4zek02NjAgNjI4YzAgNC40LTMuNiA4LTggOEg1NDR2MTA4YzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOFY2MzZIMzcyYy00LjQgMC04LTMuNi04LTh2LTQ4YzAtNC40IDMuNi04IDgtOGgxMDhWNDY0YzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh2MTA4aDEwOGM0LjQgMCA4IDMuNiA4IDh2NDh6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTY1MiA1NzJINTQ0VjQ2NGMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2MTA4SDM3MmMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgxMDh2MTA4YzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LThWNjM2aDEwOGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOHoiLGZpbGw6YX19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODM5LjIgMjc4LjFhMzIgMzIgMCAwMC0zMC40LTIyLjFINzM2VjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMkgzMjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjExMmgtNzIuOGEzMS45IDMxLjkgMCAwMC0zMC40IDIyLjFMMTEyIDUwMnYzNzhjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjUwMmwtNzIuOC0yMjMuOXpNMzYwIDE4NGgzMDR2NzJIMzYwdi03MnptNDgwIDY1NkgxODRWNTEzLjRMMjQ0LjMgMzI4aDUzNS40TDg0MCA1MTMuNFY4NDB6IixmaWxsOmF9fV19fSxuYW1lOiJtZWRpY2luZS1ib3giLHRoZW1lOiJ0d290b25lIn07dC5kZWZhdWx0PWV9LDUyMzM0OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMjU2IDI1My43bC00MC44IDM5LjFjLTMuNiAyLjctNS4zIDcuMS00LjYgMTEuNHYyODcuN2MtLjcgNC40IDEgOC44IDQuNiAxMS40bDQwIDM5LjF2OC43SDU2Ni40di04LjNsNDEuMy00MC4xYzQuMS00LjEgNC4xLTUuMyA0LjEtMTEuNFY0MjIuNWwtMTE1IDI5MS42aC0xNS41TDM0Ny41IDQyMi41VjYxOGMtMS4yIDguMiAxLjcgMTYuNSA3LjUgMjIuNGw1My44IDY1LjF2OC43SDI1NnYtOC43bDUzLjgtNjUuMWEyNi4xIDI2LjEgMCAwMDctMjIuNFYzOTJjLjctNi4zLTEuNy0xMi40LTYuNS0xNi43bC00Ny44LTU3LjZWMzA5SDQxMWwxMTQuNiAyNTEuNSAxMDAuOS0yNTEuM0g3Njh2OC41eiJ9fV19LG5hbWU6Im1lZGl1bS1jaXJjbGUiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sNjE0MjE6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTgzNC43IDI3OS44bDYxLjMtNTguOVYyMDhINjgzLjdMNTMyLjQgNTg2LjQgMzYwLjMgMjA4SDEzNy43djEyLjlsNzEuNiA4Ni42YzcgNi40IDEwLjYgMTUuOCA5LjcgMjUuMlY2NzNjMi4yIDEyLjMtMS43IDI0LjgtMTAuMyAzMy43TDEyOCA4MDV2MTIuN2gyMjguNnYtMTIuOWwtODAuNi05OGEzOS45OSAzOS45OSAwIDAxLTExLjEtMzMuN1YzNzguN2wyMDAuNyA0MzkuMmgyMy4zbDE3Mi42LTQzOS4ydjM0OS45YzAgOS4yIDAgMTEuMS02IDE3LjJsLTYyLjEgNjAuM1Y4MTloMzAxLjJ2LTEyLjlsLTU5LjktNTguOWMtNS4yLTQtNy45LTEwLjctNi44LTE3LjJWMjk3YTE4LjEgMTguMSAwIDAxNi44LTE3LjJ6In19XX0sbmFtZToibWVkaXVtIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sMjYwNzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek03NjggMzE3LjdsLTQwLjggMzkuMWMtMy42IDIuNy01LjMgNy4xLTQuNiAxMS40djI4Ny43Yy0uNyA0LjQgMSA4LjggNC42IDExLjRsNDAgMzkuMXY4LjdINTY2LjR2LTguM2w0MS4zLTQwLjFjNC4xLTQuMSA0LjEtNS4zIDQuMS0xMS40VjQyMi41bC0xMTUgMjkxLjZoLTE1LjVMMzQ3LjUgNDIyLjVWNjE4Yy0xLjIgOC4yIDEuNyAxNi41IDcuNSAyMi40bDUzLjggNjUuMXY4LjdIMjU2di04LjdsNTMuOC02NS4xYTI2LjEgMjYuMSAwIDAwNy0yMi40VjM5MmMuNy02LjMtMS43LTEyLjQtNi41LTE2LjdsLTQ3LjgtNTcuNlYzMDlINDExbDExNC42IDI1MS41IDEwMC45LTI1MS4zSDc2OHY4LjV6In19XX0sbmFtZToibWVkaXVtLXNxdWFyZSIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw3OTc0NTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiIwIDAgMTAyNCAxMDI0Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTE3LjIgNTkwLjU1YzAgMy41NSAwIDQuMzYgMi40IDYuNTVsMTMuNDMgMTMuMjV2LjU3aC01OS41N3YtMjUuNDdhNDEuNDQgNDEuNDQgMCAwMS0zOS41IDI3LjY1Yy0zMC42MSAwLTUyLjg0LTI0LjI1LTUyLjg0LTY4Ljg3IDAtNDEuOCAyMy45OS02OS42OSA1Ny42NS02OS42OWEzNS4xNSAzNS4xNSAwIDAxMzQuNjEgMjEuNjd2LTU2LjE5YTYuOTkgNi45OSAwIDAwLTIuNzEtNi43OWwtMTIuOC0xMi40NXYtLjU2bDU5LjMzLTcuMDR2MTc3LjM3em0tNDMuNzQtOC4wOXYtODMuODNhMjIuMiAyMi4yIDAgMDAtMTcuNzQtOC40Yy0xNC40OCAwLTI4LjQ3IDEzLjI1LTI4LjQ3IDUyLjYyIDAgMzYuODYgMTIuMDcgNDkuODggMjcuMSA0OS44OGEyMy45MSAyMy45MSAwIDAwMTkuMTEtMTAuMjd6bTgzLjIzIDI4LjQ2VjQ5Ny43NGE3LjY1IDcuNjUgMCAwMC0yLjQtNi43OWwtMTMuMTktMTMuNzR2LS41N2g1OS41NnYxMTQuOGMwIDMuNTUgMCA0LjM2IDIuNCA2LjU0bDEzLjEyIDEyLjQ1di41N2wtNTkuNDktLjA4em0tMi4xNi0xNzUuNjdjMC0xMy40IDEwLjc0LTI0LjI1IDIzLjk5LTI0LjI1IDEzLjI1IDAgMjMuOTggMTAuODYgMjMuOTggMjQuMjUgMCAxMy40LTEwLjczIDI0LjI1LTIzLjk4IDI0LjI1cy0yMy45OS0xMC44NS0yMy45OS0yNC4yNXptMjA2LjgzIDE1NS4wNmMwIDMuNTUgMCA0LjYgMi40IDYuNzlsMTMuNDMgMTMuMjV2LjU3aC01OS44OFY1ODEuOWE0My40IDQzLjQgMCAwMS00MS4wMSAzMS4yYy0yNi41NSAwLTQwLjc4LTE5LjU2LTQwLjc4LTU2LjU5IDAtMTcuODYgMC0zNy40My41Ni01OS40MWE2LjkxIDYuOTEgMCAwMC0yLjQtNi41NUw2MjAuNSA0NzcuMnYtLjU3aDU5LjA5djczLjgxYzAgMjQuMjUgMy41MSA0MC40MiAxOC41NCA0MC40MmEyMy45NiAyMy45NiAwIDAwMTkuMzUtMTIuMnYtODAuODVhNy42NSA3LjY1IDAgMDAtMi40LTYuNzlsLTEzLjI3LTEzLjgydi0uNTdoNTkuNTZWNTkwLjN6bTIwMi43NiAyMC42YzAtNC4zNi44LTU5Ljk3LjgtNzIuNzUgMC0yNC4yNS0zLjc2LTQwLjk4LTIwLjYzLTQwLjk4YTI2LjcgMjYuNyAwIDAwLTIxLjE5IDExLjY0IDk5LjY4IDk5LjY4IDAgMDEyLjQgMjMuMDRjMCAxNi44MS0uNTYgMzguMjMtLjggNTkuNjZhNi45MSA2LjkxIDAgMDAyLjQgNi41NWwxMy40MyAxMi40NXYuNTZoLTYwLjEyYzAtNC4wNC44LTU5Ljk4LjgtNzIuNzYgMC0yNC42NS0zLjc2LTQwLjk4LTIwLjM5LTQwLjk4LTguMi4zLTE1LjY4IDQuOC0xOS44MyAxMS45NnY4Mi40NmMwIDMuNTYgMCA0LjM3IDIuNCA2LjU1bDEzLjExIDEyLjQ1di41NmgtNTkuNDhWNDk4LjE1YTcuNjUgNy42NSAwIDAwLTIuNC02LjhsLTEzLjE5LTE0LjE0di0uNTdIODQxdjI4Ljc4YzUuNTMtMTkgMjMuMTMtMzEuNzYgNDIuNy0zMC45NiAxOS44MiAwIDMzLjI2IDExLjE2IDM4LjkzIDMyLjM0YTQ2LjQxIDQ2LjQxIDAgMDE0NC43Ny0zMi4zNGMyNi41NSAwIDQxLjU4IDE5LjggNDEuNTggNTcuMjMgMCAxNy44Ny0uNTYgMzguMjQtLjggNTkuNjZhNi41IDYuNSAwIDAwMi43MiA2LjU1bDEzLjExIDEyLjQ1di41N2gtNTkuODh6TTIxNS44NyA1OTMuM2wxNy42NiAxNy4wNXYuNTdoLTg5LjYydi0uNTdsMTcuOTktMTcuMDVhNi45MSA2LjkxIDAgMDAyLjQtNi41NVY0NzcuNjljMC00LjYgMC0xMC44My44LTE2LjE2TDEwNC42NiA2MTMuMWgtLjcybC02Mi42LTEzOS40NWMtMS4zNy0zLjQ3LTEuNzctMy43Mi0yLjY1LTYuMDZ2OTEuNDNhMzIuMDggMzIuMDggMCAwMDIuOTYgMTcuODdsMjUuMTkgMzMuNDZ2LjU3SDB2LS41N2wyNS4xOC0zMy41NWEzMi4xNiAzMi4xNiAwIDAwMi45Ni0xNy43OFY0NTcuOTdBMTkuNzEgMTkuNzEgMCAwMDI0IDQ0NC4xNUw2LjE2IDQyMC43OHYtLjU2aDYzLjk2bDUzLjU2IDExOC4xIDQ3LjE3LTExOC4xaDYyLjZ2LjU2bC0xNy41OCAxOS44YTYuOTkgNi45OSAwIDAwLTIuNzIgNi44djEzOS4zN2E2LjUgNi41IDAgMDAyLjcyIDYuNTV6bTcwLjExLTU0LjY1di41NmMwIDM0LjYgMTcuNjcgNDguNSAzOC4zOCA0OC41YTQzLjUgNDMuNSAwIDAwNDAuNzctMjQuOTdoLjU2Yy03LjIgMzQuMi0yOC4xNCA1MC4zNi01OS40OCA1MC4zNi0zMy44MiAwLTY1LjcyLTIwLjYxLTY1LjcyLTY4LjM5IDAtNTAuMiAzMS45OC03MC4yNSA2Ny4zMi03MC4yNSAyOC40NiAwIDU4Ljc2IDEzLjU4IDU4Ljc2IDU3LjI0djYuOTVoLTgwLjU5em0wLTYuOTVoMzkuNDJ2LTcuMDRjMC0zNS41Ny03LjI4LTQ1LjAzLTE4LjIzLTQ1LjAzLTEzLjI3IDAtMjEuMzUgMTQuMTUtMjEuMzUgNTIuMDdoLjE2eiJ9fV19LG5hbWU6Im1lZGl1bS13b3JrbWFyayIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDc3MTE1OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHpNMjg4IDQyMWE0OC4wMSA0OC4wMSAwIDAxOTYgMCA0OC4wMSA0OC4wMSAwIDAxLTk2IDB6bTM4NCAyMDBjMCA0LjQtMy42IDgtOCA4SDM2MGMtNC40IDAtOC0zLjYtOC04di00OGMwLTQuNCAzLjYtOCA4LThoMzA0YzQuNCAwIDggMy42IDggOHY0OHptMTYtMTUyYTQ4LjAxIDQ4LjAxIDAgMDEwLTk2IDQ4LjAxIDQ4LjAxIDAgMDEwIDk2eiJ9fV19LG5hbWU6Im1laCIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw1Mjk1MjpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMjg4IDQyMWE0OCA0OCAwIDEwOTYgMCA0OCA0OCAwIDEwLTk2IDB6bTM1MiAwYTQ4IDQ4IDAgMTA5NiAwIDQ4IDQ4IDAgMTAtOTYgMHpNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTI2MyA3MTFjLTM0LjIgMzQuMi03NCA2MS0xMTguMyA3OS44QzYxMSA4NzQuMiA1NjIuMyA4ODQgNTEyIDg4NGMtNTAuMyAwLTk5LTkuOC0xNDQuOC0yOS4yQTM3MC40IDM3MC40IDAgMDEyNDguOSA3NzVjLTM0LjItMzQuMi02MS03NC03OS44LTExOC4zQzE0OS44IDYxMSAxNDAgNTYyLjMgMTQwIDUxMnM5LjgtOTkgMjkuMi0xNDQuOEEzNzAuNCAzNzAuNCAwIDAxMjQ5IDI0OC45YzM0LjItMzQuMiA3NC02MSAxMTguMy03OS44QzQxMyAxNDkuOCA0NjEuNyAxNDAgNTEyIDE0MGM1MC4zIDAgOTkgOS44IDE0NC44IDI5LjJBMzcwLjQgMzcwLjQgMCAwMTc3NS4xIDI0OWMzNC4yIDM0LjIgNjEgNzQgNzkuOCAxMTguM0M4NzQuMiA0MTMgODg0IDQ2MS43IDg4NCA1MTJzLTkuOCA5OS0yOS4yIDE0NC44QTM2OC44OSAzNjguODkgMCAwMTc3NSA3NzV6TTY2NCA1NjVIMzYwYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDMwNGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOHoifX1dfSxuYW1lOiJtZWgiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSwxMzM4ODpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjpmdW5jdGlvbihhLG4pe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6IixmaWxsOmF9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiAxNDBjLTIwNS40IDAtMzcyIDE2Ni42LTM3MiAzNzJzMTY2LjYgMzcyIDM3MiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzItMTY2LjYtMzcyLTM3Mi0zNzJ6TTI4OCA0MjFhNDguMDEgNDguMDEgMCAwMTk2IDAgNDguMDEgNDguMDEgMCAwMS05NiAwem0zODQgMjAwYzAgNC40LTMuNiA4LTggOEgzNjBjLTQuNCAwLTgtMy42LTgtOHYtNDhjMC00LjQgMy42LTggOC04aDMwNGM0LjQgMCA4IDMuNiA4IDh2NDh6bTE2LTE1MmE0OC4wMSA0OC4wMSAwIDAxMC05NiA0OC4wMSA0OC4wMSAwIDAxMCA5NnoiLGZpbGw6bn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMjg4IDQyMWE0OCA0OCAwIDEwOTYgMCA0OCA0OCAwIDEwLTk2IDB6bTM3NiAxNDRIMzYwYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDMwNGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOHptLTI0LTE0NGE0OCA0OCAwIDEwOTYgMCA0OCA0OCAwIDEwLTk2IDB6IixmaWxsOmF9fV19fSxuYW1lOiJtZWgiLHRoZW1lOiJ0d290b25lIn07dC5kZWZhdWx0PWV9LDc5NzM3OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00MDggNDQyaDQ4MGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOEg0MDhjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6bS04IDIwNGMwIDQuNCAzLjYgOCA4IDhoNDgwYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04SDQwOGMtNC40IDAtOCAzLjYtOCA4djU2em01MDQtNDg2SDEyMGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg3ODRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgNjMySDEyMGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg3ODRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6TTExNS40IDUxOC45TDI3MS43IDY0MmM1LjggNC42IDE0LjQuNSAxNC40LTYuOVYzODguOWMwLTcuNC04LjUtMTEuNS0xNC40LTYuOUwxMTUuNCA1MDUuMWE4Ljc0IDguNzQgMCAwMDAgMTMuOHoifX1dfSxuYW1lOiJtZW51LWZvbGQiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw2MzM5NDpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTA0IDE2MEgxMjBjLTQuNCAwLTggMy42LTggOHY2NGMwIDQuNCAzLjYgOCA4IDhoNzg0YzQuNCAwIDgtMy42IDgtOHYtNjRjMC00LjQtMy42LTgtOC04em0wIDYyNEgxMjBjLTQuNCAwLTggMy42LTggOHY2NGMwIDQuNCAzLjYgOCA4IDhoNzg0YzQuNCAwIDgtMy42IDgtOHYtNjRjMC00LjQtMy42LTgtOC04em0wLTMxMkgxMjBjLTQuNCAwLTggMy42LTggOHY2NGMwIDQuNCAzLjYgOCA4IDhoNzg0YzQuNCAwIDgtMy42IDgtOHYtNjRjMC00LjQtMy42LTgtOC04eiJ9fV19LG5hbWU6Im1lbnUiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw2MjI2NjpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNDA4IDQ0Mmg0ODBjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThINDA4Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em0tOCAyMDRjMCA0LjQgMy42IDggOCA4aDQ4MGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOEg0MDhjLTQuNCAwLTggMy42LTggOHY1NnptNTA0LTQ4NkgxMjBjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNzg0YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wIDYzMkgxMjBjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNzg0YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04ek0xNDIuNCA2NDIuMUwyOTguNyA1MTlhOC44NCA4Ljg0IDAgMDAwLTEzLjlMMTQyLjQgMzgxLjljLTUuOC00LjYtMTQuNC0uNS0xNC40IDYuOXYyNDYuM2E4LjkgOC45IDAgMDAxNC40IDd6In19XX0sbmFtZToibWVudS11bmZvbGQiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw4MzM2MzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6ImRlZnMiLGF0dHJzOnt9LGNoaWxkcmVuOlt7dGFnOiJzdHlsZSIsYXR0cnM6e319XX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00ODIuMiA1MDguNEwzMzEuMyAzODljLTMtMi40LTcuMy0uMi03LjMgMy42VjQ3OEgxODRWMTg0aDIwNHYxMjhjMCAyLjIgMS44IDQgNCA0aDYwYzIuMiAwIDQtMS44IDQtNFYxNDRjMC0xNS41LTEyLjUtMjgtMjgtMjhIMTQ0Yy0xNS41IDAtMjggMTIuNS0yOCAyOHY3MzZjMCAxNS41IDEyLjUgMjggMjggMjhoMjg0YzE1LjUgMCAyOC0xMi41IDI4LTI4VjcxMmMwLTIuMi0xLjgtNC00LTRoLTYwYy0yLjIgMC00IDEuOC00IDR2MTI4SDE4NFY1NDZoMTQwdjg1LjRjMCAzLjggNC40IDYgNy4zIDMuNmwxNTAuOS0xMTkuNGE0LjUgNC41IDAgMDAwLTcuMnpNODgwIDExNkg1OTZjLTE1LjUgMC0yOCAxMi41LTI4IDI4djE2OGMwIDIuMiAxLjggNCA0IDRoNjBjMi4yIDAgNC0xLjggNC00VjE4NGgyMDR2Mjk0SDcwMHYtODUuNGMwLTMuOC00LjMtNi03LjMtMy42bC0xNTEgMTE5LjRhNC41MiA0LjUyIDAgMDAwIDcuMWwxNTEgMTE5LjVjMi45IDIuMyA3LjMuMiA3LjMtMy42VjU0NmgxNDB2Mjk0SDYzNlY3MTJjMC0yLjItMS44LTQtNC00aC02MGMtMi4yIDAtNCAxLjgtNCA0djE2OGMwIDE1LjUgMTIuNSAyOCAyOCAyOGgyODRjMTUuNSAwIDI4LTEyLjUgMjgtMjhWMTQ0YzAtMTUuNS0xMi41LTI4LTI4LTI4eiJ9fV19LG5hbWU6Im1lcmdlLWNlbGxzIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNzAzNTA6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7ImZpbGwtcnVsZSI6ImV2ZW5vZGQiLHZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0yODQgOTI0YzYxLjg2IDAgMTEyLTUwLjE0IDExMi0xMTIgMC00OS4yNi0zMS44LTkxLjEtNzYtMTA2LjA5VjQyMS42M2wzODYuNDkgMTI2LjU1LjAxIDk1LjkyQzY2MSA2NTguMzQgNjI4IDcwMC44IDYyOCA3NTFjMCA2MS44NiA1MC4xNCAxMTIgMTEyIDExMnMxMTItNTAuMTQgMTEyLTExMmMwLTQ4LjMzLTMwLjYtODkuNS03My41LTEwNS4ybC0uMDEtMTEzLjA0YTUwLjczIDUwLjczIDAgMDAtMzQuOTUtNDguMkwzMjAgMzQ1Ljg1VjMxOC4xYzQzLjY0LTE0LjggNzUuMi01NS43OCA3NS45OS0xMDQuMjRMMzk2IDIxMmMwLTYxLjg2LTUwLjE0LTExMi0xMTItMTEycy0xMTIgNTAuMTQtMTEyIDExMmMwIDQ5LjI2IDMxLjggOTEuMSA3NiAxMDYuMDlWNzA1LjljLTQ0LjIgMTUtNzYgNTYuODMtNzYgMTA2LjA5IDAgNjEuODYgNTAuMTQgMTEyIDExMiAxMTIifX1dfSxuYW1lOiJtZXJnZSIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw4MzEyMzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnsiZmlsbC1ydWxlIjoiZXZlbm9kZCIsdmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTI0OCA3NTJoNzJWMjY0aC03MnoifX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik03NDAgODYzYzYxLjg2IDAgMTEyLTUwLjE0IDExMi0xMTIgMC00OC4zMy0zMC42LTg5LjUtNzMuNS0xMDUuMmwtLjAxLTExMy4wNGE1MC43MyA1MC43MyAwIDAwLTM0Ljk1LTQ4LjJsLTQzNC45LTE0Mi40MS0yMi40IDY4LjQyIDQyMC4yNSAxMzcuNjEuMDEgOTUuOTJDNjYxIDY1OC4zNCA2MjggNzAwLjggNjI4IDc1MWMwIDYxLjg2IDUwLjE0IDExMiAxMTIgMTEybS00NTYgNjFjNjEuODYgMCAxMTItNTAuMTQgMTEyLTExMnMtNTAuMTQtMTEyLTExMi0xMTItMTEyIDUwLjE0LTExMiAxMTIgNTAuMTQgMTEyIDExMiAxMTJtNDU2LTEyNWE0OCA0OCAwIDExMC05NiA0OCA0OCAwIDAxMCA5Nm0tNDU2IDYxYTQ4IDQ4IDAgMTEwLTk2IDQ4IDQ4IDAgMDEwIDk2bTAtNTM2YzYxLjg2IDAgMTEyLTUwLjE0IDExMi0xMTJzLTUwLjE0LTExMi0xMTItMTEyLTExMiA1MC4xNC0xMTIgMTEyIDUwLjE0IDExMiAxMTIgMTEybTAtNjRhNDggNDggMCAxMTAtOTYgNDggNDggMCAwMTAgOTYifX1dfSxuYW1lOiJtZXJnZSIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDk5ODQwOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MjQuMyAzMzguNGE0NDcuNTcgNDQ3LjU3IDAgMDAtOTYuMS0xNDMuMyA0NDMuMDkgNDQzLjA5IDAgMDAtMTQzLTk2LjNBNDQzLjkxIDQ0My45MSAwIDAwNTEyIDY0aC0yYy02MC41LjMtMTE5IDEyLjMtMTc0LjEgMzUuOWE0NDQuMDggNDQ0LjA4IDAgMDAtMTQxLjcgOTYuNSA0NDUgNDQ1IDAgMDAtOTUgMTQyLjhBNDQ5Ljg5IDQ0OS44OSAwIDAwNjUgNTE0LjFjLjMgNjkuNCAxNi45IDEzOC4zIDQ3LjkgMTk5Ljl2MTUyYzAgMjUuNCAyMC42IDQ2IDQ1LjkgNDZoMTUxLjhhNDQ3LjcyIDQ0Ny43MiAwIDAwMTk5LjUgNDhoMi4xYzU5LjggMCAxMTcuNy0xMS42IDE3Mi4zLTM0LjNBNDQzLjIgNDQzLjIgMCAwMDgyNyA4MzAuNWM0MS4yLTQwLjkgNzMuNi04OC43IDk2LjMtMTQyIDIzLjUtNTUuMiAzNS41LTExMy45IDM1LjgtMTc0LjUuMi02MC45LTExLjYtMTIwLTM0LjgtMTc1LjZ6TTMxMi40IDU2MGMtMjYuNCAwLTQ3LjktMjEuNS00Ny45LTQ4czIxLjUtNDggNDcuOS00OCA0Ny45IDIxLjUgNDcuOSA0OC0yMS40IDQ4LTQ3LjkgNDh6bTE5OS42IDBjLTI2LjQgMC00Ny45LTIxLjUtNDcuOS00OHMyMS41LTQ4IDQ3LjktNDggNDcuOSAyMS41IDQ3LjkgNDgtMjEuNSA0OC00Ny45IDQ4em0xOTkuNiAwYy0yNi40IDAtNDcuOS0yMS41LTQ3LjktNDhzMjEuNS00OCA0Ny45LTQ4IDQ3LjkgMjEuNSA0Ny45IDQ4LTIxLjUgNDgtNDcuOSA0OHoifX1dfSxuYW1lOiJtZXNzYWdlIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDcyMDQ4OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00NjQgNTEyYTQ4IDQ4IDAgMTA5NiAwIDQ4IDQ4IDAgMTAtOTYgMHptMjAwIDBhNDggNDggMCAxMDk2IDAgNDggNDggMCAxMC05NiAwem0tNDAwIDBhNDggNDggMCAxMDk2IDAgNDggNDggMCAxMC05NiAwem02NjEuMi0xNzMuNmMtMjIuNi01My43LTU1LTEwMS45LTk2LjMtMTQzLjNhNDQ0LjM1IDQ0NC4zNSAwIDAwLTE0My4zLTk2LjNDNjMwLjYgNzUuNyA1NzIuMiA2NCA1MTIgNjRoLTJjLTYwLjYuMy0xMTkuMyAxMi4zLTE3NC41IDM1LjlhNDQ1LjM1IDQ0NS4zNSAwIDAwLTE0MiA5Ni41Yy00MC45IDQxLjMtNzMgODkuMy05NS4yIDE0Mi44LTIzIDU1LjQtMzQuNiAxMTQuMy0zNC4zIDE3NC45QTQ0OS40IDQ0OS40IDAgMDAxMTIgNzE0djE1MmE0NiA0NiAwIDAwNDYgNDZoMTUyLjFBNDQ5LjQgNDQ5LjQgMCAwMDUxMCA5NjBoMi4xYzU5LjkgMCAxMTgtMTEuNiAxNzIuNy0zNC4zYTQ0NC40OCA0NDQuNDggMCAwMDE0Mi44LTk1LjJjNDEuMy00MC45IDczLjgtODguNyA5Ni41LTE0MiAyMy42LTU1LjIgMzUuNi0xMTMuOSAzNS45LTE3NC41LjMtNjAuOS0xMS41LTEyMC0zNC44LTE3NS42em0tMTUxLjEgNDM4QzcwNCA4NDUuOCA2MTEgODg0IDUxMiA4ODRoLTEuN2MtNjAuMy0uMy0xMjAuMi0xNS4zLTE3My4xLTQzLjVsLTguNC00LjVIMTg4VjY5NS4ybC00LjUtOC40QzE1NS4zIDYzMy45IDE0MC4zIDU3NCAxNDAgNTEzLjdjLS40LTk5LjcgMzcuNy0xOTMuMyAxMDcuNi0yNjMuOCA2OS44LTcwLjUgMTYzLjEtMTA5LjUgMjYyLjgtMTA5LjloMS43YzUwIDAgOTguNSA5LjcgMTQ0LjIgMjguOSA0NC42IDE4LjcgODQuNiA0NS42IDExOSA4MCAzNC4zIDM0LjMgNjEuMyA3NC40IDgwIDExOSAxOS40IDQ2LjIgMjkuMSA5NS4yIDI4LjkgMTQ1LjgtLjYgOTkuNi0zOS43IDE5Mi45LTExMC4xIDI2Mi43eiJ9fV19LG5hbWU6Im1lc3NhZ2UiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw3NDU0MTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjpmdW5jdGlvbihhLG4pe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik03NzUuMyAyNDguOWEzNjkuNjIgMzY5LjYyIDAgMDAtMTE5LTgwQTM3MC4yIDM3MC4yIDAgMDA1MTIuMSAxNDBoLTEuN2MtOTkuNy40LTE5MyAzOS40LTI2Mi44IDEwOS45LTY5LjkgNzAuNS0xMDggMTY0LjEtMTA3LjYgMjYzLjguMyA2MC4zIDE1LjMgMTIwLjIgNDMuNSAxNzMuMWw0LjUgOC40VjgzNmgxNDAuOGw4LjQgNC41YzUyLjkgMjguMiAxMTIuOCA0My4yIDE3My4xIDQzLjVoMS43Yzk5IDAgMTkyLTM4LjIgMjYyLjEtMTA3LjYgNzAuNC02OS44IDEwOS41LTE2My4xIDExMC4xLTI2Mi43LjItNTAuNi05LjUtOTkuNi0yOC45LTE0NS44YTM3MC4xNSAzNzAuMTUgMCAwMC04MC0xMTl6TTMxMiA1NjBhNDguMDEgNDguMDEgMCAwMTAtOTYgNDguMDEgNDguMDEgMCAwMTAgOTZ6bTIwMCAwYTQ4LjAxIDQ4LjAxIDAgMDEwLTk2IDQ4LjAxIDQ4LjAxIDAgMDEwIDk2em0yMDAgMGE0OC4wMSA0OC4wMSAwIDAxMC05NiA0OC4wMSA0OC4wMSAwIDAxMCA5NnoiLGZpbGw6bn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNjY0IDUxMmE0OCA0OCAwIDEwOTYgMCA0OCA0OCAwIDEwLTk2IDB6bS00MDAgMGE0OCA0OCAwIDEwOTYgMCA0OCA0OCAwIDEwLTk2IDB6IixmaWxsOmF9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkyNS4yIDMzOC40Yy0yMi42LTUzLjctNTUtMTAxLjktOTYuMy0xNDMuM2E0NDQuMzUgNDQ0LjM1IDAgMDAtMTQzLjMtOTYuM0M2MzAuNiA3NS43IDU3Mi4yIDY0IDUxMiA2NGgtMmMtNjAuNi4zLTExOS4zIDEyLjMtMTc0LjUgMzUuOWE0NDUuMzUgNDQ1LjM1IDAgMDAtMTQyIDk2LjVjLTQwLjkgNDEuMy03MyA4OS4zLTk1LjIgMTQyLjgtMjMgNTUuNC0zNC42IDExNC4zLTM0LjMgMTc0LjlBNDQ5LjQgNDQ5LjQgMCAwMDExMiA3MTR2MTUyYTQ2IDQ2IDAgMDA0NiA0NmgxNTIuMUE0NDkuNCA0NDkuNCAwIDAwNTEwIDk2MGgyLjFjNTkuOSAwIDExOC0xMS42IDE3Mi43LTM0LjNhNDQ0LjQ4IDQ0NC40OCAwIDAwMTQyLjgtOTUuMmM0MS4zLTQwLjkgNzMuOC04OC43IDk2LjUtMTQyIDIzLjYtNTUuMiAzNS42LTExMy45IDM1LjktMTc0LjUuMy02MC45LTExLjUtMTIwLTM0LjgtMTc1LjZ6bS0xNTEuMSA0MzhDNzA0IDg0NS44IDYxMSA4ODQgNTEyIDg4NGgtMS43Yy02MC4zLS4zLTEyMC4yLTE1LjMtMTczLjEtNDMuNWwtOC40LTQuNUgxODhWNjk1LjJsLTQuNS04LjRDMTU1LjMgNjMzLjkgMTQwLjMgNTc0IDE0MCA1MTMuN2MtLjQtOTkuNyAzNy43LTE5My4zIDEwNy42LTI2My44IDY5LjgtNzAuNSAxNjMuMS0xMDkuNSAyNjIuOC0xMDkuOWgxLjdjNTAgMCA5OC41IDkuNyAxNDQuMiAyOC45IDQ0LjYgMTguNyA4NC42IDQ1LjYgMTE5IDgwIDM0LjMgMzQuMyA2MS4zIDc0LjQgODAgMTE5IDE5LjQgNDYuMiAyOS4xIDk1LjIgMjguOSAxNDUuOC0uNiA5OS42LTM5LjcgMTkyLjktMTEwLjEgMjYyLjd6IixmaWxsOmF9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQ2NCA1MTJhNDggNDggMCAxMDk2IDAgNDggNDggMCAxMC05NiAweiIsZmlsbDphfX1dfX0sbmFtZToibWVzc2FnZSIsdGhlbWU6InR3b3RvbmUifTt0LmRlZmF1bHQ9ZX0sOTI5Nzk6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0xOTIgNDcyYzAgNC40LTMuNiA4LTggOEgzMjhjLTQuNCAwLTgtMy42LTgtOHYtNDhjMC00LjQgMy42LTggOC04aDM2OGM0LjQgMCA4IDMuNiA4IDh2NDh6In19XX0sbmFtZToibWludXMtY2lyY2xlIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDg5NTY5OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02OTYgNDgwSDMyOGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgzNjhjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6In19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeiJ9fV19LG5hbWU6Im1pbnVzLWNpcmNsZSIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDMzNjk4OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOmZ1bmN0aW9uKGEsbil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnoiLGZpbGw6YX19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDE0MGMtMjA1LjQgMC0zNzIgMTY2LjYtMzcyIDM3MnMxNjYuNiAzNzIgMzcyIDM3MiAzNzItMTY2LjYgMzcyLTM3Mi0xNjYuNi0zNzItMzcyLTM3MnptMTkyIDM5NmMwIDQuNC0zLjYgOC04IDhIMzI4Yy00LjQgMC04LTMuNi04LTh2LTQ4YzAtNC40IDMuNi04IDgtOGgzNjhjNC40IDAgOCAzLjYgOCA4djQ4eiIsZmlsbDpufX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02OTYgNDgwSDMyOGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgzNjhjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6IixmaWxsOmF9fV19fSxuYW1lOiJtaW51cy1jaXJjbGUiLHRoZW1lOiJ0d290b25lIn07dC5kZWZhdWx0PWV9LDk5OTI6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg3MiA0NzRIMTUyYy00LjQgMC04IDMuNi04IDh2NjBjMCA0LjQgMy42IDggOCA4aDcyMGM0LjQgMCA4LTMuNiA4LTh2LTYwYzAtNC40LTMuNi04LTgtOHoifX1dfSxuYW1lOiJtaW51cyIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDUyMzQ2OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTcwNCA1MzZjMCA0LjQtMy42IDgtOCA4SDMyOGMtNC40IDAtOC0zLjYtOC04di00OGMwLTQuNCAzLjYtOCA4LThoMzY4YzQuNCAwIDggMy42IDggOHY0OHoifX1dfSxuYW1lOiJtaW51cy1zcXVhcmUiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sNTIzNjQ6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTMyOCA1NDRoMzY4YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04SDMyOGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOHoifX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2eiJ9fV19LG5hbWU6Im1pbnVzLXNxdWFyZSIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDI2OTI2OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOmZ1bmN0aW9uKGEsbil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6IixmaWxsOmF9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTE4NCA4NDBoNjU2VjE4NEgxODR2NjU2em0xMzYtMzUyYzAtNC40IDMuNi04IDgtOGgzNjhjNC40IDAgOCAzLjYgOCA4djQ4YzAgNC40LTMuNiA4LTggOEgzMjhjLTQuNCAwLTgtMy42LTgtOHYtNDh6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTMyOCA1NDRoMzY4YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04SDMyOGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOHoiLGZpbGw6YX19XX19LG5hbWU6Im1pbnVzLXNxdWFyZSIsdGhlbWU6InR3b3RvbmUifTt0LmRlZmF1bHQ9ZX0sMzA3Nzk6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTc0NCA2MkgyODBjLTM1LjMgMC02NCAyOC43LTY0IDY0djc2OGMwIDM1LjMgMjguNyA2NCA2NCA2NGg0NjRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTI2YzAtMzUuMy0yOC43LTY0LTY0LTY0ek01MTIgODI0Yy0yMi4xIDAtNDAtMTcuOS00MC00MHMxNy45LTQwIDQwLTQwIDQwIDE3LjkgNDAgNDAtMTcuOSA0MC00MCA0MHoifX1dfSxuYW1lOiJtb2JpbGUiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sNjMwMTA6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTc0NCA2MkgyODBjLTM1LjMgMC02NCAyOC43LTY0IDY0djc2OGMwIDM1LjMgMjguNyA2NCA2NCA2NGg0NjRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTI2YzAtMzUuMy0yOC43LTY0LTY0LTY0em0tOCA4MjRIMjg4VjEzNGg0NDh2NzUyek00NzIgNzg0YTQwIDQwIDAgMTA4MCAwIDQwIDQwIDAgMTAtODAgMHoifX1dfSxuYW1lOiJtb2JpbGUiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw3Njk1NTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjpmdW5jdGlvbihhLG4pe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik03NDQgNjRIMjgwYy0zNS4zIDAtNjQgMjguNy02NCA2NHY3NjhjMCAzNS4zIDI4LjcgNjQgNjQgNjRoNDY0YzM1LjMgMCA2NC0yOC43IDY0LTY0VjEyOGMwLTM1LjMtMjguNy02NC02NC02NHptLTggODI0SDI4OFYxMzZoNDQ4djc1MnoiLGZpbGw6YX19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMjg4IDg4OGg0NDhWMTM2SDI4OHY3NTJ6bTIyNC0xNDJjMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDAtNDAtMTcuOS00MC00MCAxNy45LTQwIDQwLTQweiIsZmlsbDpufX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00NzIgNzg2YTQwIDQwIDAgMTA4MCAwIDQwIDQwIDAgMTAtODAgMHoiLGZpbGw6YX19XX19LG5hbWU6Im1vYmlsZSIsdGhlbWU6InR3b3RvbmUifTt0LmRlZmF1bHQ9ZX0sOTkwNTA6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkxMS41IDY5OS43YTggOCAwIDAwLTEwLjMtNC44TDg0MCA3MTcuMlYxNzljMC0zNy42LTMwLjQtNjgtNjgtNjhIMjUyYy0zNy42IDAtNjggMzAuNC02OCA2OHY1MzguMmwtNjEuMy0yMi4zYy0uOS0uMy0xLjgtLjUtMi43LS41LTQuNCAwLTggMy42LTggOFY3NjJjMCAzLjMgMi4xIDYuMyA1LjMgNy41TDUwMSA5MDkuMWM3LjEgMi42IDE0LjggMi42IDIxLjkgMGwzODMuOC0xMzkuNWMzLjItMS4yIDUuMy00LjIgNS4zLTcuNXYtNTkuNmMwLTEtLjItMS45LS41LTIuOHptLTI0My44LTM3N0w1NjQgNTE0LjNoNTcuNmM0LjQgMCA4IDMuNiA4IDh2MjcuMWMwIDQuNC0zLjYgOC04IDhoLTc2LjN2MzloNzYuM2M0LjQgMCA4IDMuNiA4IDh2MjcuMWMwIDQuNC0zLjYgOC04IDhoLTc2LjNWNzAzYzAgNC40LTMuNiA4LTggOGgtNDkuOWMtNC40IDAtOC0zLjYtOC04di02My40aC03NmMtNC40IDAtOC0zLjYtOC04di0yNy4xYzAtNC40IDMuNi04IDgtOGg3NnYtMzloLTc2Yy00LjQgMC04LTMuNi04LTh2LTI3LjFjMC00LjQgMy42LTggOC04aDU3TDM1Ni41IDMyMi44Yy0yLjEtMy44LS43LTguNyAzLjItMTAuOCAxLjItLjcgMi41LTEgMy44LTFoNTUuN2E4IDggMCAwMTcuMSA0LjRMNTExIDQ4NC4yaDMuM0w1OTkgMzE1LjRjMS4zLTIuNyA0LjEtNC40IDcuMS00LjRoNTQuNWM0LjQgMCA4IDMuNiA4LjEgNy45IDAgMS4zLS40IDIuNi0xIDMuOHoifX1dfSxuYW1lOiJtb25leS1jb2xsZWN0Iix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDY3MTM6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkxMS41IDcwMC43YTggOCAwIDAwLTEwLjMtNC44TDg0MCA3MTguMlYxODBjMC0zNy42LTMwLjQtNjgtNjgtNjhIMjUyYy0zNy42IDAtNjggMzAuNC02OCA2OHY1MzguMmwtNjEuMy0yMi4zYy0uOS0uMy0xLjgtLjUtMi43LS41LTQuNCAwLTggMy42LTggOFY3NjNjMCAzLjMgMi4xIDYuMyA1LjMgNy41TDUwMSA5MTAuMWM3LjEgMi42IDE0LjggMi42IDIxLjkgMGwzODMuOC0xMzkuNWMzLjItMS4yIDUuMy00LjIgNS4zLTcuNXYtNTkuNmMwLTEtLjItMS45LS41LTIuOHpNNTEyIDgzNy41bC0yNTYtOTMuMVYxODRoNTEydjU2MC40bC0yNTYgOTMuMXpNNjYwLjYgMzEyaC01NC41Yy0zIDAtNS44IDEuNy03LjEgNC40bC04NC43IDE2OC44SDUxMWwtODQuNy0xNjguOGE4IDggMCAwMC03LjEtNC40aC01NS43Yy0xLjMgMC0yLjYuMy0zLjggMS0zLjkgMi4xLTUuMyA3LTMuMiAxMC44bDEwMy45IDE5MS42aC01N2MtNC40IDAtOCAzLjYtOCA4djI3LjFjMCA0LjQgMy42IDggOCA4aDc2djM5aC03NmMtNC40IDAtOCAzLjYtOCA4djI3LjFjMCA0LjQgMy42IDggOCA4aDc2VjcwNGMwIDQuNCAzLjYgOCA4IDhoNDkuOWM0LjQgMCA4LTMuNiA4LTh2LTYzLjVoNzYuM2M0LjQgMCA4LTMuNiA4LTh2LTI3LjFjMC00LjQtMy42LTgtOC04aC03Ni4zdi0zOWg3Ni4zYzQuNCAwIDgtMy42IDgtOHYtMjcuMWMwLTQuNC0zLjYtOC04LThINTY0bDEwMy43LTE5MS42Yy42LTEuMiAxLTIuNSAxLTMuOC0uMS00LjMtMy43LTcuOS04LjEtNy45eiJ9fV19LG5hbWU6Im1vbmV5LWNvbGxlY3QiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSwxMjQ4OTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjpmdW5jdGlvbihhLG4pe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0yNTYgNzQ0LjRsMjU2IDkzLjEgMjU2LTkzLjFWMTg0SDI1NnY1NjAuNHpNMzU5LjcgMzEzYzEuMi0uNyAyLjUtMSAzLjgtMWg1NS43YTggOCAwIDAxNy4xIDQuNEw1MTEgNDg1LjJoMy4zTDU5OSAzMTYuNGMxLjMtMi43IDQuMS00LjQgNy4xLTQuNGg1NC41YzQuNCAwIDggMy42IDguMSA3LjkgMCAxLjMtLjQgMi42LTEgMy44TDU2NCA1MTUuM2g1Ny42YzQuNCAwIDggMy42IDggOHYyNy4xYzAgNC40LTMuNiA4LTggOGgtNzYuM3YzOWg3Ni4zYzQuNCAwIDggMy42IDggOHYyNy4xYzAgNC40LTMuNiA4LTggOGgtNzYuM1Y3MDRjMCA0LjQtMy42IDgtOCA4aC00OS45Yy00LjQgMC04LTMuNi04LTh2LTYzLjRoLTc2Yy00LjQgMC04LTMuNi04LTh2LTI3LjFjMC00LjQgMy42LTggOC04aDc2di0zOWgtNzZjLTQuNCAwLTgtMy42LTgtOHYtMjcuMWMwLTQuNCAzLjYtOCA4LThoNTdMMzU2LjUgMzIzLjhjLTIuMS0zLjgtLjctOC43IDMuMi0xMC44eiIsZmlsbDpufX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MTEuNSA3MDAuN2E4IDggMCAwMC0xMC4zLTQuOEw4NDAgNzE4LjJWMTgwYzAtMzcuNi0zMC40LTY4LTY4LTY4SDI1MmMtMzcuNiAwLTY4IDMwLjQtNjggNjh2NTM4LjJsLTYxLjMtMjIuM2MtLjktLjMtMS44LS41LTIuNy0uNS00LjQgMC04IDMuNi04IDhWNzYzYzAgMy4zIDIuMSA2LjMgNS4zIDcuNUw1MDEgOTEwLjFjNy4xIDIuNiAxNC44IDIuNiAyMS45IDBsMzgzLjgtMTM5LjVjMy4yLTEuMiA1LjMtNC4yIDUuMy03LjV2LTU5LjZjMC0xLS4yLTEuOS0uNS0yLjh6TTc2OCA3NDQuNGwtMjU2IDkzLjEtMjU2LTkzLjFWMTg0aDUxMnY1NjAuNHoiLGZpbGw6YX19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNDYwLjQgNTE1LjRoLTU3Yy00LjQgMC04IDMuNi04IDh2MjcuMWMwIDQuNCAzLjYgOCA4IDhoNzZ2MzloLTc2Yy00LjQgMC04IDMuNi04IDh2MjcuMWMwIDQuNCAzLjYgOCA4IDhoNzZWNzA0YzAgNC40IDMuNiA4IDggOGg0OS45YzQuNCAwIDgtMy42IDgtOHYtNjMuNWg3Ni4zYzQuNCAwIDgtMy42IDgtOHYtMjcuMWMwLTQuNC0zLjYtOC04LThoLTc2LjN2LTM5aDc2LjNjNC40IDAgOC0zLjYgOC04di0yNy4xYzAtNC40LTMuNi04LTgtOEg1NjRsMTAzLjctMTkxLjZjLjYtMS4yIDEtMi41IDEtMy44LS4xLTQuMy0zLjctNy45LTguMS03LjloLTU0LjVjLTMgMC01LjggMS43LTcuMSA0LjRsLTg0LjcgMTY4LjhINTExbC04NC43LTE2OC44YTggOCAwIDAwLTcuMS00LjRoLTU1LjdjLTEuMyAwLTIuNi4zLTMuOCAxLTMuOSAyLjEtNS4zIDctMy4yIDEwLjhsMTAzLjkgMTkxLjZ6IixmaWxsOmF9fV19fSxuYW1lOiJtb25leS1jb2xsZWN0Iix0aGVtZToidHdvdG9uZSJ9O3QuZGVmYXVsdD1lfSwzMjc4MTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNjkyLjggNDEyLjdsLjItLjItMzQuNi00NC4zYTcuOTcgNy45NyAwIDAwLTExLjItMS40bC01MC40IDM5LjMtNzAuNS05MC4xYTcuOTcgNy45NyAwIDAwLTExLjItMS40bC0zNy45IDI5LjdhNy45NyA3Ljk3IDAgMDAtMS40IDExLjJsNzAuNSA5MC4yLS4yLjEgMzQuNiA0NC4zYzIuNyAzLjUgNy43IDQuMSAxMS4yIDEuNGw1MC40LTM5LjMgNjQuMSA4MmMyLjcgMy41IDcuNyA0LjEgMTEuMiAxLjRsMzcuOS0yOS42YzMuNS0yLjcgNC4xLTcuNyAxLjQtMTEuMmwtNjQuMS04Mi4xek02MDggMTEyYy0xNjcuOSAwLTMwNCAxMzYuMS0zMDQgMzA0IDAgNzAuMyAyMy45IDEzNSA2My45IDE4Ni41TDExNC4zIDg1Ni4xYTguMDMgOC4wMyAwIDAwMCAxMS4zbDQyLjMgNDIuM2MzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDI1My42LTI1My42QzQ3MyA2OTYuMSA1MzcuNyA3MjAgNjA4IDcyMGMxNjcuOSAwIDMwNC0xMzYuMSAzMDQtMzA0Uzc3NS45IDExMiA2MDggMTEyem0xNjEuMiA0NjUuMkM3MjYuMiA2MjAuMyA2NjguOSA2NDQgNjA4IDY0NHMtMTE4LjItMjMuNy0xNjEuMi02Ni44QzQwMy43IDUzNC4yIDM4MCA0NzYuOSAzODAgNDE2czIzLjctMTE4LjIgNjYuOC0xNjEuMmM0My00My4xIDEwMC4zLTY2LjggMTYxLjItNjYuOHMxMTguMiAyMy43IDE2MS4yIDY2LjhjNDMuMSA0MyA2Ni44IDEwMC4zIDY2LjggMTYxLjJzLTIzLjcgMTE4LjItNjYuOCAxNjEuMnoifX1dfSxuYW1lOiJtb25pdG9yIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sOTgwMjE6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7ImZpbGwtcnVsZSI6ImV2ZW5vZGQiLHZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00ODkuNSAxMTEuNjZjMzAuNjUtMS44IDQ1Ljk4IDM2LjQ0IDIyLjU4IDU2LjMzQTI0My4zNSAyNDMuMzUgMCAwMDQyNiAzNTRjMCAxMzQuNzYgMTA5LjI0IDI0NCAyNDQgMjQ0IDcyLjU4IDAgMTM5LjktMzEuODMgMTg2LjAxLTg2LjA4IDE5Ljg3LTIzLjM4IDU4LjA3LTguMSA1Ni4zNCAyMi41M0M5MDAuNCA3NDUuODIgNzI1LjE1IDkxMiA1MTIuNSA5MTIgMjkxLjMxIDkxMiAxMTIgNzMyLjY5IDExMiA1MTEuNWMwLTIxMS4zOSAxNjQuMjktMzg2LjAyIDM3NC4yLTM5OS42NWwuMi0uMDF6In19XX0sbmFtZToibW9vbiIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSwxMTkyNTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnsiZmlsbC1ydWxlIjoiZXZlbm9kZCIsdmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQ4OS41IDExMS42NmMzMC42NS0xLjggNDUuOTggMzYuNDQgMjIuNTggNTYuMzNBMjQzLjM1IDI0My4zNSAwIDAwNDI2IDM1NGMwIDEzNC43NiAxMDkuMjQgMjQ0IDI0NCAyNDQgNzIuNTggMCAxMzkuOS0zMS44MyAxODYuMDEtODYuMDggMTkuODctMjMuMzggNTguMDctOC4xIDU2LjM0IDIyLjUzQzkwMC40IDc0NS44MiA3MjUuMTUgOTEyIDUxMi41IDkxMiAyOTEuMzEgOTEyIDExMiA3MzIuNjkgMTEyIDUxMS41YzAtMjExLjM5IDE2NC4yOS0zODYuMDIgMzc0LjItMzk5LjY1bC4yLS4wMXptLTgxLjE1IDc5Ljc1bC00LjExIDEuMzZDMjcxLjEgMjM3Ljk0IDE3NiAzNjQuMDkgMTc2IDUxMS41IDE3NiA2OTcuMzQgMzI2LjY2IDg0OCA1MTIuNSA4NDhjMTQ4LjI4IDAgMjc0Ljk0LTk2LjIgMzE5LjQ1LTIzMC40MWwuNjMtMS45My0uMTEuMDdhMzA3LjA2IDMwNy4wNiAwIDAxLTE1OS43MyA0Ni4yNkw2NzAgNjYyYy0xNzAuMSAwLTMwOC0xMzcuOS0zMDgtMzA4IDAtNTguNiAxNi40OC0xMTQuNTQgNDYuMjctMTYyLjQ3eiJ9fV19LG5hbWU6Im1vb24iLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw4Mjk6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQ1NiAyMzFhNTYgNTYgMCAxMDExMiAwIDU2IDU2IDAgMTAtMTEyIDB6bTAgMjgwYTU2IDU2IDAgMTAxMTIgMCA1NiA1NiAwIDEwLTExMiAwem0wIDI4MGE1NiA1NiAwIDEwMTEyIDAgNTYgNTYgMCAxMC0xMTIgMHoifX1dfSxuYW1lOiJtb3JlIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sMTAzNTM6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7ImZpbGwtcnVsZSI6ImV2ZW5vZGQiLHZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik03NzEuOTEgMTE1YTMxLjY1IDMxLjY1IDAgMDAtMTcuNDIgNS4yN0w0MDAgMzUxLjk3SDIzNmExNiAxNiAwIDAwLTE2IDE2djI4OC4wNmExNiAxNiAwIDAwMTYgMTZoMTY0bDM1NC41IDIzMS43YTMxLjY2IDMxLjY2IDAgMDAxNy40MiA1LjI3YzE2LjY1IDAgMzIuMDgtMTMuMjUgMzIuMDgtMzIuMDZWMTQ3LjA2YzAtMTguOC0xNS40NC0zMi4wNi0zMi4wOS0zMi4wNiJ9fV19LG5hbWU6Im11dGVkIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDgyODkyOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6eyJmaWxsLXJ1bGUiOiJldmVub2RkIix2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNzcxLjkxIDExNWEzMS42NSAzMS42NSAwIDAwLTE3LjQyIDUuMjdMNDAwIDM1MS45N0gyMzZhMTYgMTYgMCAwMC0xNiAxNnYyODguMDZhMTYgMTYgMCAwMDE2IDE2aDE2NGwzNTQuNSAyMzEuN2EzMS42NiAzMS42NiAwIDAwMTcuNDIgNS4yN2MxNi42NSAwIDMyLjA4LTEzLjI1IDMyLjA4LTMyLjA2VjE0Ny4wNmMwLTE4LjgtMTUuNDQtMzIuMDYtMzIuMDktMzIuMDZNNzMyIDIyMXY1ODJMNDM5LjM5IDYxMS43NWwtMTcuOTUtMTEuNzNIMjkyVjQyMy45OGgxMjkuNDRsMTcuOTUtMTEuNzN6In19XX0sbmFtZToibXV0ZWQiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw0OTI0NTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6ImRlZnMiLGF0dHJzOnt9LGNoaWxkcmVuOlt7dGFnOiJzdHlsZSIsYXR0cnM6e319XX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05NTIgNjEyYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04SDI5OGE5NS45MiA5NS45MiAwIDAwLTg5LTYwYy01MyAwLTk2IDQzLTk2IDk2czQzIDk2IDk2IDk2YzQwLjMgMCA3NC44LTI0LjggODktNjBoMTUwLjN2MTUyYzAgNTUuMiA0NC44IDEwMCAxMDAgMTAwSDk1MmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOEg1NDguM2MtMTUuNSAwLTI4LTEyLjUtMjgtMjhWNjEySDk1MnpNNDUxLjcgMzEzLjdsMTcyLjUgMTM2LjJjNi4zIDUuMSAxNS44LjUgMTUuOC03LjdWMzQ0aDI2NGM0LjQgMCA4LTMuNiA4LTh2LTYwYzAtNC40LTMuNi04LTgtOEg2NDB2LTk4LjJjMC04LjEtOS40LTEyLjgtMTUuOC03LjdMNDUxLjcgMjk4LjNhOS45IDkuOSAwIDAwMCAxNS40eiJ9fV19LG5hbWU6Im5vZGUtY29sbGFwc2UiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw5NTUwODpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6ImRlZnMiLGF0dHJzOnt9LGNoaWxkcmVuOlt7dGFnOiJzdHlsZSIsYXR0cnM6e319XX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05NTIgNjEyYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04SDI5OGE5NS45MiA5NS45MiAwIDAwLTg5LTYwYy01MyAwLTk2IDQzLTk2IDk2czQzIDk2IDk2IDk2YzQwLjMgMCA3NC44LTI0LjggODktNjBoMTUwLjN2MTUyYzAgNTUuMiA0NC44IDEwMCAxMDAgMTAwSDk1MmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOEg1NDguM2MtMTUuNSAwLTI4LTEyLjUtMjgtMjhWNjEySDk1MnpNNDU2IDM0NGgyNjR2OTguMmMwIDguMSA5LjUgMTIuOCAxNS44IDcuN2wxNzIuNS0xMzYuMmM1LTMuOSA1LTExLjQgMC0xNS4zTDczNS44IDE2Mi4xYy02LjQtNS4xLTE1LjgtLjUtMTUuOCA3LjdWMjY4SDQ1NmMtNC40IDAtOCAzLjYtOCA4djYwYzAgNC40IDMuNiA4IDggOHoifX1dfSxuYW1lOiJub2RlLWV4cGFuZCIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDM2MzAzOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoiZGVmcyIsYXR0cnM6e30sY2hpbGRyZW46W3t0YWc6InN0eWxlIixhdHRyczp7fX1dfSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg0My41IDczNy40Yy0xMi40LTc1LjItNzkuMi0xMjkuMS0xNTUuMy0xMjUuNFM1NTAuOSA2NzYgNTQ2IDc1MmMtMTUzLjUtNC44LTIwOC00MC43LTE5OS4xLTExMy43IDMuMy0yNy4zIDE5LjgtNDEuOSA1MC4xLTQ5IDE4LjQtNC4zIDM4LjgtNC45IDU3LjMtMy4yIDEuNy4yIDMuNS4zIDUuMi41IDExLjMgMi43IDIyLjggNSAzNC4zIDYuOCAzNC4xIDUuNiA2OC44IDguNCAxMDEuOCA2LjYgOTIuOC01IDE1Ni00NS45IDE1OS4yLTEzMi43IDMuMS04NC4xLTU0LjctMTQzLjctMTQ3LjktMTgzLjYtMjkuOS0xMi44LTYxLjYtMjIuNy05My4zLTMwLjItMTQuMy0zLjQtMjYuMy01LjctMzUuMi03LjItNy45LTc1LjktNzEuNS0xMzMuOC0xNDcuOC0xMzQuNC03Ni4zLS42LTE0MC45IDU2LjEtMTUwLjEgMTMxLjlzNDAgMTQ2LjMgMTE0LjIgMTYzLjljNzQuMiAxNy42IDE0OS45LTIzLjMgMTc1LjctOTUuMSA5LjQgMS43IDE4LjcgMy42IDI4IDUuOCAyOC4yIDYuNiA1Ni40IDE1LjQgODIuNCAyNi42IDcwLjcgMzAuMiAxMDkuMyA3MC4xIDEwNy41IDExOS45LTEuNiA0NC42LTMzLjYgNjUuMi05Ni4yIDY4LjYtMjcuNSAxLjUtNTcuNi0uOS04Ny4zLTUuOC04LjMtMS40LTE1LjktMi44LTIyLjYtNC4zLTMuOS0uOC02LjYtMS41LTcuOC0xLjhsLTMuMS0uNmMtMi4yLS4zLTUuOS0uOC0xMC43LTEuMy0yNS0yLjMtNTIuMS0xLjUtNzguNSA0LjYtNTUuMiAxMi45LTkzLjkgNDcuMi0xMDEuMSAxMDUuOC0xNS43IDEyNi4yIDc4LjYgMTg0LjcgMjc2IDE4OC45IDI5LjEgNzAuNCAxMDYuNCAxMDcuOSAxNzkuNiA4NyA3My4zLTIwLjkgMTE5LjMtOTMuNCAxMDYuOS0xNjguNnpNMzI5LjEgMzQ1LjJhODMuMyA4My4zIDAgMTEuMDEtMTY2LjYxIDgzLjMgODMuMyAwIDAxLS4wMSAxNjYuNjF6TTY5NS42IDg0NWE4My4zIDgzLjMgMCAxMS4wMS0xNjYuNjFBODMuMyA4My4zIDAgMDE2OTUuNiA4NDV6In19XX0sbmFtZToibm9kZS1pbmRleCIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDI5MzUzOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMTEyYy0zLjggMC03LjcuNy0xMS42IDIuM0wyOTIgMzQ1LjlIMTI4Yy04LjggMC0xNiA3LjQtMTYgMTYuNnYyOTljMCA5LjIgNy4yIDE2LjYgMTYgMTYuNmgxMDEuNmMtMy43IDExLjYtNS42IDIzLjktNS42IDM2LjQgMCA2NS45IDUzLjggMTE5LjUgMTIwIDExOS41IDU1LjQgMCAxMDIuMS0zNy42IDExNS45LTg4LjRsNDA4LjYgMTY0LjJjMy45IDEuNSA3LjggMi4zIDExLjYgMi4zIDE2LjkgMCAzMi0xNC4yIDMyLTMzLjJWMTQ1LjJDOTEyIDEyNi4yIDg5NyAxMTIgODgwIDExMnpNMzQ0IDc2Mi4zYy0yNi41IDAtNDgtMjEuNC00OC00Ny44IDAtMTEuMiAzLjktMjEuOSAxMS0zMC40bDg0LjkgMzQuMWMtMiAyNC42LTIyLjcgNDQuMS00Ny45IDQ0LjF6In19XX0sbmFtZToibm90aWZpY2F0aW9uIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDMyODg3OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMTEyYy0zLjggMC03LjcuNy0xMS42IDIuM0wyOTIgMzQ1LjlIMTI4Yy04LjggMC0xNiA3LjQtMTYgMTYuNnYyOTljMCA5LjIgNy4yIDE2LjYgMTYgMTYuNmgxMDEuN2MtMy43IDExLjYtNS43IDIzLjktNS43IDM2LjQgMCA2NS45IDUzLjggMTE5LjUgMTIwIDExOS41IDU1LjQgMCAxMDIuMS0zNy42IDExNS45LTg4LjRsNDA4LjYgMTY0LjJjMy45IDEuNSA3LjggMi4zIDExLjYgMi4zIDE2LjkgMCAzMi0xNC4yIDMyLTMzLjJWMTQ1LjJDOTEyIDEyNi4yIDg5NyAxMTIgODgwIDExMnpNMzQ0IDc2Mi4zYy0yNi41IDAtNDgtMjEuNC00OC00Ny44IDAtMTEuMiAzLjktMjEuOSAxMS0zMC40bDg0LjkgMzQuMWMtMiAyNC42LTIyLjcgNDQuMS00Ny45IDQ0LjF6bTQ5NiA1OC40TDMxOC44IDYxMS4zbC0xMi45LTUuMkgxODRWNDE3LjloMTIxLjlsMTIuOS01LjJMODQwIDIwMy4zdjYxNy40eiJ9fV19LG5hbWU6Im5vdGlmaWNhdGlvbiIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDQxMjQyOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOmZ1bmN0aW9uKGEsbil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTIyOS42IDY3OC4xYy0zLjcgMTEuNi01LjYgMjMuOS01LjYgMzYuNCAwLTEyLjUgMi0yNC44IDUuNy0zNi40aC0uMXptNzYuMy0yNjAuMkgxODR2MTg4LjJoMTIxLjlsMTIuOSA1LjJMODQwIDgyMC43VjIwMy4zTDMxOC44IDQxMi43eiIsZmlsbDpufX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMTEyYy0zLjggMC03LjcuNy0xMS42IDIuM0wyOTIgMzQ1LjlIMTI4Yy04LjggMC0xNiA3LjQtMTYgMTYuNnYyOTljMCA5LjIgNy4yIDE2LjYgMTYgMTYuNmgxMDEuN2MtMy43IDExLjYtNS43IDIzLjktNS43IDM2LjQgMCA2NS45IDUzLjggMTE5LjUgMTIwIDExOS41IDU1LjQgMCAxMDIuMS0zNy42IDExNS45LTg4LjRsNDA4LjYgMTY0LjJjMy45IDEuNSA3LjggMi4zIDExLjYgMi4zIDE2LjkgMCAzMi0xNC4yIDMyLTMzLjJWMTQ1LjJDOTEyIDEyNi4yIDg5NyAxMTIgODgwIDExMnpNMzQ0IDc2Mi4zYy0yNi41IDAtNDgtMjEuNC00OC00Ny44IDAtMTEuMiAzLjktMjEuOSAxMS0zMC40bDg0LjkgMzQuMWMtMiAyNC42LTIyLjcgNDQuMS00Ny45IDQ0LjF6bTQ5NiA1OC40TDMxOC44IDYxMS4zbC0xMi45LTUuMkgxODRWNDE3LjloMTIxLjlsMTIuOS01LjJMODQwIDIwMy4zdjYxNy40eiIsZmlsbDphfX1dfX0sbmFtZToibm90aWZpY2F0aW9uIix0aGVtZToidHdvdG9uZSJ9O3QuZGVmYXVsdD1lfSw3NjUwMDpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODcyIDM5NGM0LjQgMCA4LTMuNiA4LTh2LTYwYzAtNC40LTMuNi04LTgtOEg3MDhWMTUyYzAtNC40LTMuNi04LTgtOGgtNjRjLTQuNCAwLTggMy42LTggOHYxNjZINDAwVjE1MmMwLTQuNC0zLjYtOC04LThoLTY0Yy00LjQgMC04IDMuNi04IDh2MTY2SDE1MmMtNC40IDAtOCAzLjYtOCA4djYwYzAgNC40IDMuNiA4IDggOGgxNjh2MjM2SDE1MmMtNC40IDAtOCAzLjYtOCA4djYwYzAgNC40IDMuNiA4IDggOGgxNjh2MTY2YzAgNC40IDMuNiA4IDggOGg2NGM0LjQgMCA4LTMuNiA4LThWNzA2aDIyOHYxNjZjMCA0LjQgMy42IDggOCA4aDY0YzQuNCAwIDgtMy42IDgtOFY3MDZoMTY0YzQuNCAwIDgtMy42IDgtOHYtNjBjMC00LjQtMy42LTgtOC04SDcwOFYzOTRoMTY0ek02MjggNjMwSDQwMFYzOTRoMjI4djIzNnoifX1dfSxuYW1lOiJudW1iZXIiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw0MTc3NzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6ImRlZnMiLGF0dHJzOnt9LGNoaWxkcmVuOlt7dGFnOiJzdHlsZSIsYXR0cnM6e319XX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0zMTYgNjcyaDYwYzQuNCAwIDgtMy42IDgtOFYzNjBjMC00LjQtMy42LTgtOC04aC02MGMtNC40IDAtOCAzLjYtOCA4djMwNGMwIDQuNCAzLjYgOCA4IDh6bTE5Ni01MGMyMi4xIDAgNDAtMTcuOSA0MC0zOSAwLTIzLjEtMTcuOS00MS00MC00MXMtNDAgMTcuOS00MCA0MWMwIDIxLjEgMTcuOSAzOSA0MCAzOXptMC0xNDBjMjIuMSAwIDQwLTE3LjkgNDAtMzkgMC0yMy4xLTE3LjktNDEtNDAtNDFzLTQwIDE3LjktNDAgNDFjMCAyMS4xIDE3LjkgMzkgNDAgMzl6In19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNzI4SDE4NFYxODRoNjU2djY1NnoifX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02NDggNjcyaDYwYzQuNCAwIDgtMy42IDgtOFYzNjBjMC00LjQtMy42LTgtOC04aC02MGMtNC40IDAtOCAzLjYtOCA4djMwNGMwIDQuNCAzLjYgOCA4IDh6In19XX0sbmFtZToib25lLXRvLW9uZSIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDU1NjI1OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6eyJmaWxsLXJ1bGUiOiJldmVub2RkIix2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNDc1LjYgMTEyYy03NC4wMyAwLTEzOS43MiA0Mi4zOC0xNzIuOTIgMTA0LjU4djIzNy4yOGw5Mi4yNyA1Ni40OCAzLjM4LTIzNS43IDE4OS0xMjcuNDVBMTk0LjMzIDE5NC4zMyAwIDAwNDc1LjYgMTEybTIwMi45IDYyLjI1Yy0xMy4xNyAwLTI2LjA1IDEuNzYtMzguOCA0LjM2TDQ1My4yIDMwNC4zNmwtMS4zNyA5Ni4xNSAxODYuNTgtMTI1LjI1IDIzMS4yMiAxMzcuMjhhMTk1LjUgMTk1LjUgMCAwMDQuODctNDIuMzNjMC0xMDguMDQtODcuOTMtMTk1Ljk2LTE5NS45OS0xOTUuOTZNMjQ3LjM0IDI2NkMxNjcuMzQgMjkwLjcgMTA5IDM2NS4yMiAxMDkgNDUzLjJjMCAyNy45MiA1LjkgNTQuODMgMTYuNzkgNzkuMzZsMjQ1LjQ4IDEzOS43NyA5MC41OC01Ni4xMi0yMTQuNS0xMzEuMzh6bTM5Mi44OCA3NC42N2wtNzIuNyA0OC44NUw3NzEuNSA1MTcuNTggNzk3LjMgNzUzQzg2Ny40MSA3MjMuMTEgOTE2IDY1My45NyA5MTYgNTczLjFjMC0yNy41NS01Ljg2LTU0LjEyLTE2LjU3LTc4LjUzem0tMTIzIDgyLjZsLTY2LjM2IDQ0LjU2LTEuMDUgNzYuMTIgNjQuNyAzOS42NiA2OS41NC00My4wNC0xLjg0LTc2LjQ4em0xMjEuMiA3Ni4xMmw1Ljg3IDI0OC4zNEw0NDMgODY2LjlBMTk1LjY1IDE5NS42NSAwIDAwNTY3Ljg0IDkxMmM3OS4yMiAwIDE0Ny44LTQ2LjUyIDE3OC42Mi0xMTQuOTlMNzE5LjQgNTUwLjIyem0tNTIuODYgMTA1LjNMMzcyLjQzIDczNi42OCAxNjkuNTYgNjIxLjE1YTE5NS4zNSAxOTUuMzUgMCAwMC01LjIyIDQ0LjE2YzAgMTAyLjk0IDc5Ljg0IDE4Ny40MSAxODAuODEgMTk1LjE4TDU4OC4yIDcxNi42eiJ9fV19LG5hbWU6Im9wZW4tYS1pIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDQzNDkxOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6eyJmaWxsLXJ1bGUiOiJldmVub2RkIix2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNDgyLjg4IDEyOGMtODQuMzUgMC0xNTYuNTggNTIuOC0xODUuNjggMTI2Ljk4LTYwLjg5IDguMTMtMTE1LjMgNDMuNjMtMTQ2LjYgOTcuODQtNDIuMTYgNzMtMzIuNTUgMTYxLjg4IDE3LjE0IDIyNC4xNi0yMy4zOCA1Ni43NS0xOS44NSAxMjEuNiAxMS40MiAxNzUuNzggNDIuMTggNzMuMDIgMTI0LjEgMTA5LjE1IDIwMi45NCA5Ny4yM0M0MTkuNTggODk4LjYzIDQ3Ny41MSA5MjggNTQwLjEyIDkyOGM4NC4zNSAwIDE1Ni41OC01Mi44IDE4NS42OC0xMjYuOTggNjAuODktOC4xMyAxMTUuMy00My42MiAxNDYuNi05Ny44NCA0Mi4xNi03MyAzMi41NS0xNjEuODgtMTcuMTQtMjI0LjE2IDIzLjM4LTU2Ljc1IDE5Ljg1LTEyMS42LTExLjQyLTE3NS43OC00Mi4xOC03My4wMi0xMjQuMS0xMDkuMTUtMjAyLjk0LTk3LjIzQzYwMy40MiAxNTcuMzggNTQ1LjQ5IDEyOCA0ODIuODggMTI4bTAgNjEuNTRjMzUuNiAwIDY4Ljk3IDEzLjk5IDk0LjIyIDM3Ljc0LTEuOTMgMS4wMy0zLjkyIDEuODQtNS44MyAyLjk0bC0xMzYuNjggNzguOTFhNDYuMTEgNDYuMTEgMCAwMC0yMy4wOSAzOS43OGwtLjg0IDE4My42LTY1LjcyLTM4LjM0VjMyNy40YzAtNzYgNjEuOS0xMzcuODYgMTM3Ljk0LTEzNy44Nm0xOTcuNyA3NS45YzQ0LjE5IDMuMTQgODYuMTYgMjcuNDQgMTA5LjkyIDY4LjU3IDE3LjggMzAuOCAyMi4zOCA2Ni43IDE0LjQzIDEwMC40Mi0xLjg4LTEuMTctMy42LTIuNDktNS41My0zLjZsLTEzNi43My03OC45MWE0Ni4yMyA0Ni4yMyAwIDAwLTQ2LS4wNmwtMTU5LjQ3IDkxLjEuMzYtNzYuMDIgMTQ0LjUtODMuNDFhMTM3LjE5IDEzNy4xOSAwIDAxNzguNTMtMTguMDltLTM5Ni45MiA1NS40Yy0uMDcgMi4yLS4zIDQuMzUtLjMgNi41NnYxNTcuNzVhNDYuMTkgNDYuMTkgMCAwMDIyLjkxIDM5LjlsMTU4LjY4IDkyLjUtNjYuMDIgMzcuNjctMTQ0LjU1LTgzLjM1Yy02NS44Ni0zOC04OC40Ny0xMjIuNTMtNTAuNDUtMTg4LjM0IDE3Ljc4LTMwLjc4IDQ2LjU1LTUyLjY5IDc5LjczLTYyLjY4bTM0MC40IDc5LjkzbDE0NC41NCA4My4zNWM2NS44NiAzOCA4OC40NyAxMjIuNTMgNTAuNDUgMTg4LjM0LTE3Ljc4IDMwLjc4LTQ2LjU1IDUyLjY5LTc5LjczIDYyLjY4LjA3LTIuMTkuMy00LjM0LjMtNi41NVY1NzAuODVhNDYuMTkgNDYuMTkgMCAwMC0yMi45LTM5LjlsLTE1OC42OS05Mi41ek01MTEuOCA0NjQuODRsNTQuNTQgMzEuNzktLjMgNjMuMjItNTQuODQgMzEuMzEtNTQuNTQtMzEuODUuMy02My4xNnptMTAwLjU0IDU4LjY1bDY1LjcyIDM4LjM1VjcyOC42YzAgNzYtNjEuOSAxMzcuODYtMTM3Ljk0IDEzNy44Ni0zNS42IDAtNjguOTctMTMuOTktOTQuMjItMzcuNzQgMS45My0xLjAzIDMuOTItMS44NCA1LjgzLTIuOTRsMTM2LjY4LTc4LjlhNDYuMTEgNDYuMTEgMCAwMDIzLjA5LTM5Ljh6bS00Ni41NCA4OS41NWwtLjM2IDc2LjAyLTE0NC41IDgzLjQxYy02NS44NSAzOC0xNTAuNDIgMTUuMzQtMTg4LjQ0LTUwLjQ4LTE3LjgtMzAuOC0yMi4zOC02Ni43LTE0LjQzLTEwMC40MiAxLjg4IDEuMTcgMy42IDIuNSA1LjUzIDMuNmwxMzYuNzQgNzguOTFhNDYuMjMgNDYuMjMgMCAwMDQ2IC4wNnoifX1dfSxuYW1lOiJvcGVuLWEtaSIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDc1MjQyOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MjAgNzYwSDMzNmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1ODRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtNTY4SDMzNmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1ODRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgMjg0SDMzNmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1ODRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6TTIxNiA3MTJIMTAwYy0yLjIgMC00IDEuOC00IDR2MzRjMCAyLjIgMS44IDQgNCA0aDcyLjR2MjAuNWgtMzUuN2MtMi4yIDAtNCAxLjgtNCA0djM0YzAgMi4yIDEuOCA0IDQgNGgzNS43VjgzOEgxMDBjLTIuMiAwLTQgMS44LTQgNHYzNGMwIDIuMiAxLjggNCA0IDRoMTE2YzIuMiAwIDQtMS44IDQtNFY3MTZjMC0yLjItMS44LTQtNC00ek0xMDAgMTg4aDM4djEyMGMwIDIuMiAxLjggNCA0IDRoNDBjMi4yIDAgNC0xLjggNC00VjE1MmMwLTQuNC0zLjYtOC04LThoLTc4Yy0yLjIgMC00IDEuOC00IDR2MzZjMCAyLjIgMS44IDQgNCA0em0xMTYgMjQwSDEwMGMtMi4yIDAtNCAxLjgtNCA0djM2YzAgMi4yIDEuOCA0IDQgNGg2OC40bC03MC4zIDc3LjdhOC4zIDguMyAwIDAwLTIuMSA1LjRWNTkyYzAgMi4yIDEuOCA0IDQgNGgxMTZjMi4yIDAgNC0xLjggNC00di0zNmMwLTIuMi0xLjgtNC00LTRoLTY4LjRsNzAuMy03Ny43YTguMyA4LjMgMCAwMDIuMS01LjRWNDMyYzAtMi4yLTEuOC00LTQtNHoifX1dfSxuYW1lOiJvcmRlcmVkLWxpc3QiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw1MDU1NDpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNzc5LjMgMTk2LjZjLTk0LjItOTQuMi0yNDcuNi05NC4yLTM0MS43IDBsLTI2MSAyNjAuOGMtMS43IDEuNy0yLjYgNC0yLjYgNi40cy45IDQuNyAyLjYgNi40bDM2LjkgMzYuOWE5IDkgMCAwMDEyLjcgMGwyNjEtMjYwLjhjMzIuNC0zMi40IDc1LjUtNTAuMiAxMjEuMy01MC4yczg4LjkgMTcuOCAxMjEuMiA1MC4yYzMyLjQgMzIuNCA1MC4yIDc1LjUgNTAuMiAxMjEuMiAwIDQ1LjgtMTcuOCA4OC44LTUwLjIgMTIxLjJsLTI2NiAyNjUuOS00My4xIDQzLjFjLTQwLjMgNDAuMy0xMDUuOCA0MC4zLTE0Ni4xIDAtMTkuNS0xOS41LTMwLjItNDUuNC0zMC4yLTczczEwLjctNTMuNSAzMC4yLTczbDI2My45LTI2My44YzYuNy02LjYgMTUuNS0xMC4zIDI0LjktMTAuM2guMWM5LjQgMCAxOC4xIDMuNyAyNC43IDEwLjMgNi43IDYuNyAxMC4zIDE1LjUgMTAuMyAyNC45IDAgOS4zLTMuNyAxOC4xLTEwLjMgMjQuN0wzNzIuNCA2NTNjLTEuNyAxLjctMi42IDQtMi42IDYuNHMuOSA0LjcgMi42IDYuNGwzNi45IDM2LjlhOSA5IDAgMDAxMi43IDBsMjE1LjYtMjE1LjZjMTkuOS0xOS45IDMwLjgtNDYuMyAzMC44LTc0LjRzLTExLTU0LjYtMzAuOC03NC40Yy00MS4xLTQxLjEtMTA3LjktNDEtMTQ5IDBMNDYzIDM2NCAyMjQuOCA2MDIuMUExNzIuMjIgMTcyLjIyIDAgMDAxNzQgNzI0LjhjMCA0Ni4zIDE4LjEgODkuOCA1MC44IDEyMi41IDMzLjkgMzMuOCA3OC4zIDUwLjcgMTIyLjcgNTAuNyA0NC40IDAgODguOC0xNi45IDEyMi42LTUwLjdsMzA5LjItMzA5QzgyNC44IDQ5Mi43IDg1MCA0MzIgODUwIDM2Ny41Yy4xLTY0LjYtMjUuMS0xMjUuMy03MC43LTE3MC45eiJ9fV19LG5hbWU6InBhcGVyLWNsaXAiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw0ODcxMjpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6ImRlZnMiLGF0dHJzOnt9LGNoaWxkcmVuOlt7dGFnOiJzdHlsZSIsYXR0cnM6e319XX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02NDAuNiA0MjkuOGgyNTcuMWM3LjkgMCAxNC4zLTYuNCAxNC4zLTE0LjNWMTU4LjNjMC03LjktNi40LTE0LjMtMTQuMy0xNC4zSDY0MC42Yy03LjkgMC0xNC4zIDYuNC0xNC4zIDE0LjN2OTIuOUg0OTAuNmMtMy45IDAtNy4xIDMuMi03LjEgNy4xdjIyMS41aC04NS43di05Ni41YzAtNy45LTYuNC0xNC4zLTE0LjMtMTQuM0gxMjYuM2MtNy45IDAtMTQuMyA2LjQtMTQuMyAxNC4zdjI1Ny4yYzAgNy45IDYuNCAxNC4zIDE0LjMgMTQuM2gyNTcuMWM3LjkgMCAxNC4zLTYuNCAxNC4zLTE0LjNWNTQ0aDg1Ljd2MjIxLjVjMCAzLjkgMy4yIDcuMSA3LjEgNy4xaDEzNS43djkyLjljMCA3LjkgNi40IDE0LjMgMTQuMyAxNC4zaDI1Ny4xYzcuOSAwIDE0LjMtNi40IDE0LjMtMTQuM3YtMjU3YzAtNy45LTYuNC0xNC4zLTE0LjMtMTQuM2gtMjU3Yy03LjkgMC0xNC4zIDYuNC0xNC4zIDE0LjN2MTAwaC03OC42di0zOTNoNzguNnYxMDBjMCA3LjkgNi40IDE0LjMgMTQuMyAxNC4zem01My41LTIxNy45aDE1MFYzNjJoLTE1MFYyMTEuOXpNMzI5LjkgNTg3aC0xNTBWNDM3aDE1MHYxNTB6bTM2NC4yIDc1LjFoMTUwdjE1MC4xaC0xNTBWNjYyLjF6In19XX0sbmFtZToicGFydGl0aW9uIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sMjUwMDE6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0tODAgNjAwYzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOFYzNjBjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHYzMDR6bTIyNCAwYzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOFYzNjBjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHYzMDR6In19XX0sbmFtZToicGF1c2UtY2lyY2xlIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDYxNDY4OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6bS04OC01MzJoLTQ4Yy00LjQgMC04IDMuNi04IDh2MzA0YzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LThWMzYwYzAtNC40LTMuNi04LTgtOHptMjI0IDBoLTQ4Yy00LjQgMC04IDMuNi04IDh2MzA0YzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LThWMzYwYzAtNC40LTMuNi04LTgtOHoifX1dfSxuYW1lOiJwYXVzZS1jaXJjbGUiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSwyNTY5NDpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjpmdW5jdGlvbihhLG4pe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6IixmaWxsOmF9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiAxNDBjLTIwNS40IDAtMzcyIDE2Ni42LTM3MiAzNzJzMTY2LjYgMzcyIDM3MiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzItMTY2LjYtMzcyLTM3Mi0zNzJ6bS04MCA1MjRjMCA0LjQtMy42IDgtOCA4aC00OGMtNC40IDAtOC0zLjYtOC04VjM2MGMwLTQuNCAzLjYtOCA4LThoNDhjNC40IDAgOCAzLjYgOCA4djMwNHptMjI0IDBjMCA0LjQtMy42IDgtOCA4aC00OGMtNC40IDAtOC0zLjYtOC04VjM2MGMwLTQuNCAzLjYtOCA4LThoNDhjNC40IDAgOCAzLjYgOCA4djMwNHoiLGZpbGw6bn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNDI0IDM1MmgtNDhjLTQuNCAwLTggMy42LTggOHYzMDRjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOFYzNjBjMC00LjQtMy42LTgtOC04em0yMjQgMGgtNDhjLTQuNCAwLTggMy42LTggOHYzMDRjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOFYzNjBjMC00LjQtMy42LTgtOC04eiIsZmlsbDphfX1dfX0sbmFtZToicGF1c2UtY2lyY2xlIix0aGVtZToidHdvdG9uZSJ9O3QuZGVmYXVsdD1lfSw5MTk5NzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMzA0IDE3Nmg4MHY2NzJoLTgwem00MDggMGgtNjRjLTQuNCAwLTggMy42LTggOHY2NTZjMCA0LjQgMy42IDggOCA4aDY0YzQuNCAwIDgtMy42IDgtOFYxODRjMC00LjQtMy42LTgtOC04eiJ9fV19LG5hbWU6InBhdXNlIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sMzYyMTc6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0xNjYuNiAyNDYuOEw1NjcuNSA1MTUuNmg2MmM0LjQgMCA4IDMuNiA4IDh2MjkuOWMwIDQuNC0zLjYgOC04IDhoLTgyVjYwM2g4MmM0LjQgMCA4IDMuNiA4IDh2MjkuOWMwIDQuNC0zLjYgOC04IDhoLTgyVjcxN2MwIDQuNC0zLjYgOC04IDhoLTU0LjNjLTQuNCAwLTgtMy42LTgtOHYtNjguMWgtODEuN2MtNC40IDAtOC0zLjYtOC04VjYxMWMwLTQuNCAzLjYtOCA4LThoODEuN3YtNDEuNWgtODEuN2MtNC40IDAtOC0zLjYtOC04di0yOS45YzAtNC40IDMuNi04IDgtOGg2MS40TDM0NS40IDMxMC44YTguMDcgOC4wNyAwIDAxNy0xMS45aDYwLjdjMyAwIDUuOCAxLjcgNy4xIDQuNGw5MC42IDE4MGgzLjRsOTAuNi0xODBhOCA4IDAgMDE3LjEtNC40aDU5LjVjNC40IDAgOCAzLjYgOCA4IC4yIDEuNC0uMiAyLjctLjggMy45eiJ9fV19LG5hbWU6InBheS1jaXJjbGUiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sODM4MjE6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnptMTU5LjYtNTg1aC01OS41Yy0zIDAtNS44IDEuNy03LjEgNC40bC05MC42IDE4MEg1MTFsLTkwLjYtMTgwYTggOCAwIDAwLTcuMS00LjRoLTYwLjdjLTEuMyAwLTIuNi4zLTMuOCAxLTMuOSAyLjEtNS4zIDctMy4yIDEwLjlMNDU3IDUxNS43aC02MS40Yy00LjQgMC04IDMuNi04IDh2MjkuOWMwIDQuNCAzLjYgOCA4IDhoODEuN1Y2MDNoLTgxLjdjLTQuNCAwLTggMy42LTggOHYyOS45YzAgNC40IDMuNiA4IDggOGg4MS43VjcxN2MwIDQuNCAzLjYgOCA4IDhoNTQuM2M0LjQgMCA4LTMuNiA4LTh2LTY4LjFoODJjNC40IDAgOC0zLjYgOC04VjYxMWMwLTQuNC0zLjYtOC04LThoLTgydi00MS41aDgyYzQuNCAwIDgtMy42IDgtOHYtMjkuOWMwLTQuNC0zLjYtOC04LThoLTYybDExMS4xLTIwNC44Yy42LTEuMiAxLTIuNSAxLTMuOC0uMS00LjQtMy43LTgtOC4xLTh6In19XX0sbmFtZToicGF5LWNpcmNsZSIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDQ1OTQ1OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NTUuNyAyMTAuOGwtNDIuNC00Mi40YTguMDMgOC4wMyAwIDAwLTExLjMgMEwxNjguMyA4MDEuOWE4LjAzIDguMDMgMCAwMDAgMTEuM2w0Mi40IDQyLjRjMy4xIDMuMSA4LjIgMy4xIDExLjMgMEw4NTUuNiAyMjJjMy4yLTMgMy4yLTguMS4xLTExLjJ6TTMwNCA0NDhjNzkuNCAwIDE0NC02NC42IDE0NC0xNDRzLTY0LjYtMTQ0LTE0NC0xNDQtMTQ0IDY0LjYtMTQ0IDE0NCA2NC42IDE0NCAxNDQgMTQ0em0wLTIxNmMzOS43IDAgNzIgMzIuMyA3MiA3MnMtMzIuMyA3Mi03MiA3Mi03Mi0zMi4zLTcyLTcyIDMyLjMtNzIgNzItNzJ6bTQxNiAzNDRjLTc5LjQgMC0xNDQgNjQuNi0xNDQgMTQ0czY0LjYgMTQ0IDE0NCAxNDQgMTQ0LTY0LjYgMTQ0LTE0NC02NC42LTE0NC0xNDQtMTQ0em0wIDIxNmMtMzkuNyAwLTcyLTMyLjMtNzItNzJzMzIuMy03MiA3Mi03MiA3MiAzMi4zIDcyIDcyLTMyLjMgNzItNzIgNzJ6In19XX0sbmFtZToicGVyY2VudGFnZSIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDM4MTcyOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODUuNiAyMzAuMkw3NzkuMSAxMjMuOGE4MC44MyA4MC44MyAwIDAwLTU3LjMtMjMuOGMtMjEuNyAwLTQyLjEgOC41LTU3LjQgMjMuOEw1NDkuOCAyMzguNGE4MC44MyA4MC44MyAwIDAwLTIzLjggNTcuM2MwIDIxLjcgOC41IDQyLjEgMjMuOCA1Ny40bDgzLjggODMuOEEzOTMuODIgMzkzLjgyIDAgMDE1NTMuMSA1NTMgMzk1LjM0IDM5NS4zNCAwIDAxNDM3IDYzMy44TDM1My4yIDU1MGE4MC44MyA4MC44MyAwIDAwLTU3LjMtMjMuOGMtMjEuNyAwLTQyLjEgOC41LTU3LjQgMjMuOEwxMjMuOCA2NjQuNWE4MC44OSA4MC44OSAwIDAwLTIzLjggNTcuNGMwIDIxLjcgOC41IDQyLjEgMjMuOCA1Ny40bDEwNi4zIDEwNi4zYzI0LjQgMjQuNSA1OC4xIDM4LjQgOTIuNyAzOC40IDcuMyAwIDE0LjMtLjYgMjEuMi0xLjggMTM0LjgtMjIuMiAyNjguNS05My45IDM3Ni40LTIwMS43QzgyOC4yIDYxMi44IDg5OS44IDQ3OS4yIDkyMi4zIDM0NGM2LjgtNDEuMy02LjktODMuOC0zNi43LTExMy44eiJ9fV19LG5hbWU6InBob25lIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDEyMTY5OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NzcuMSAyMzguN0w3NzAuNiAxMzIuM2MtMTMtMTMtMzAuNC0yMC4zLTQ4LjgtMjAuM3MtMzUuOCA3LjItNDguOCAyMC4zTDU1OC4zIDI0Ni44Yy0xMyAxMy0yMC4zIDMwLjUtMjAuMyA0OC45IDAgMTguNSA3LjIgMzUuOCAyMC4zIDQ4LjlsODkuNiA4OS43YTQwNS40NiA0MDUuNDYgMCAwMS04Ni40IDEyNy4zYy0zNi43IDM2LjktNzkuNiA2Ni0xMjcuMiA4Ni42bC04OS42LTg5LjdjLTEzLTEzLTMwLjQtMjAuMy00OC44LTIwLjNhNjguMiA2OC4yIDAgMDAtNDguOCAyMC4zTDEzMi4zIDY3M2MtMTMgMTMtMjAuMyAzMC41LTIwLjMgNDguOSAwIDE4LjUgNy4yIDM1LjggMjAuMyA0OC45bDEwNi40IDEwNi40YzIyLjIgMjIuMiA1Mi44IDM0LjkgODQuMiAzNC45IDYuNSAwIDEyLjgtLjUgMTkuMi0xLjYgMTMyLjQtMjEuOCAyNjMuOC05Mi4zIDM2OS45LTE5OC4zQzgxOCA2MDYgODg4LjQgNDc0LjYgOTEwLjQgMzQyLjFjNi4zLTM3LjYtNi4zLTc2LjMtMzMuMy0xMDMuNHptLTM3LjYgOTEuNWMtMTkuNSAxMTcuOS04Mi45IDIzNS41LTE3OC40IDMzMXMtMjEzIDE1OC45LTMzMC45IDE3OC40Yy0xNC44IDIuNS0zMC0yLjUtNDAuOC0xMy4yTDE4NC45IDcyMS45IDI5NS43IDYxMWwxMTkuOCAxMjAgLjkuOSAyMS42LThhNDgxLjI5IDQ4MS4yOSAwIDAwMjg1LjctMjg1LjhsOC0yMS42LTEyMC44LTEyMC43IDExMC44LTExMC45IDEwNC41IDEwNC41YzEwLjggMTAuOCAxNS44IDI2IDEzLjMgNDAuOHoifX1dfSxuYW1lOiJwaG9uZSIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDQxODYzOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOmZ1bmN0aW9uKGEsbil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTcyMS43IDE4NC45TDYxMC45IDI5NS44bDEyMC44IDEyMC43LTggMjEuNkE0ODEuMjkgNDgxLjI5IDAgMDE0MzggNzIzLjlsLTIxLjYgOC0uOS0uOS0xMTkuOC0xMjAtMTEwLjggMTEwLjkgMTA0LjUgMTA0LjVjMTAuOCAxMC43IDI2IDE1LjcgNDAuOCAxMy4yIDExNy45LTE5LjUgMjM1LjQtODIuOSAzMzAuOS0xNzguNHMxNTguOS0yMTMuMSAxNzguNC0zMzFjMi41LTE0LjgtMi41LTMwLTEzLjMtNDAuOEw3MjEuNyAxODQuOXoiLGZpbGw6bn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODc3LjEgMjM4LjdMNzcwLjYgMTMyLjNjLTEzLTEzLTMwLjQtMjAuMy00OC44LTIwLjNzLTM1LjggNy4yLTQ4LjggMjAuM0w1NTguMyAyNDYuOGMtMTMgMTMtMjAuMyAzMC41LTIwLjMgNDguOSAwIDE4LjUgNy4yIDM1LjggMjAuMyA0OC45bDg5LjYgODkuN2E0MDUuNDYgNDA1LjQ2IDAgMDEtODYuNCAxMjcuM2MtMzYuNyAzNi45LTc5LjYgNjYtMTI3LjIgODYuNmwtODkuNi04OS43Yy0xMy0xMy0zMC40LTIwLjMtNDguOC0yMC4zYTY4LjIgNjguMiAwIDAwLTQ4LjggMjAuM0wxMzIuMyA2NzNjLTEzIDEzLTIwLjMgMzAuNS0yMC4zIDQ4LjkgMCAxOC41IDcuMiAzNS44IDIwLjMgNDguOWwxMDYuNCAxMDYuNGMyMi4yIDIyLjIgNTIuOCAzNC45IDg0LjIgMzQuOSA2LjUgMCAxMi44LS41IDE5LjItMS42IDEzMi40LTIxLjggMjYzLjgtOTIuMyAzNjkuOS0xOTguM0M4MTggNjA2IDg4OC40IDQ3NC42IDkxMC40IDM0Mi4xYzYuMy0zNy42LTYuMy03Ni4zLTMzLjMtMTAzLjR6bS0zNy42IDkxLjVjLTE5LjUgMTE3LjktODIuOSAyMzUuNS0xNzguNCAzMzFzLTIxMyAxNTguOS0zMzAuOSAxNzguNGMtMTQuOCAyLjUtMzAtMi41LTQwLjgtMTMuMkwxODQuOSA3MjEuOSAyOTUuNyA2MTFsMTE5LjggMTIwIC45LjkgMjEuNi04YTQ4MS4yOSA0ODEuMjkgMCAwMDI4NS43LTI4NS44bDgtMjEuNi0xMjAuOC0xMjAuNyAxMTAuOC0xMTAuOSAxMDQuNSAxMDQuNWMxMC44IDEwLjggMTUuOCAyNiAxMy4zIDQwLjh6IixmaWxsOmF9fV19fSxuYW1lOiJwaG9uZSIsdGhlbWU6InR3b3RvbmUifTt0LmRlZmF1bHQ9ZX0sNTE4MzA6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTk1MiA3OTJINzJjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoODgwYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wLTYzMkg3MmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg4ODBjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6TTg0OCA2NjBjOC44IDAgMTYtNy4yIDE2LTE2VjM4MGMwLTguOC03LjItMTYtMTYtMTZIMTc2Yy04LjggMC0xNiA3LjItMTYgMTZ2MjY0YzAgOC44IDcuMiAxNiAxNiAxNmg2NzJ6TTIzMiA0MzZoNTYwdjE1MkgyMzJWNDM2eiJ9fV19LG5hbWU6InBpYy1jZW50ZXIiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw5NjczOTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTUyIDc5Mkg3MmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg4ODBjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtNjMySDcyYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDg4MGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNNjA4IDY2MGM4LjggMCAxNi03LjIgMTYtMTZWMzgwYzAtOC44LTcuMi0xNi0xNi0xNkg5NmMtOC44IDAtMTYgNy4yLTE2IDE2djI2NGMwIDguOCA3LjIgMTYgMTYgMTZoNTEyek0xNTIgNDM2aDQwMHYxNTJIMTUyVjQzNnptNTUyIDIxMGMwIDQuNCAzLjYgOCA4IDhoMjI0YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04SDcxMmMtNC40IDAtOCAzLjYtOCA4djU2em04LTIwNGgyMjRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThINzEyYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4eiJ9fV19LG5hbWU6InBpYy1sZWZ0Iix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sMTY4MjA6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTk1MiA3OTJINzJjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoODgwYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wLTYzMkg3MmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg4ODBjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS0yNCA1MDBjOC44IDAgMTYtNy4yIDE2LTE2VjM4MGMwLTguOC03LjItMTYtMTYtMTZINDE2Yy04LjggMC0xNiA3LjItMTYgMTZ2MjY0YzAgOC44IDcuMiAxNiAxNiAxNmg1MTJ6TTQ3MiA0MzZoNDAwdjE1Mkg0NzJWNDM2ek04MCA2NDZjMCA0LjQgMy42IDggOCA4aDIyNGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOEg4OGMtNC40IDAtOCAzLjYtOCA4djU2em04LTIwNGgyMjRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThIODhjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6In19XX0sbmFtZToicGljLXJpZ2h0Iix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNzIyNzM6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkyOCAxNjBIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY0MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg4MzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMyek0zMzggMzA0YzM1LjMgMCA2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0LTY0LTI4LjctNjQtNjQgMjguNy02NCA2NC02NHptNTEzLjkgNDM3LjFhOC4xMSA4LjExIDAgMDEtNS4yIDEuOUgxNzcuMmMtNC40IDAtOC0zLjYtOC04IDAtMS45LjctMy43IDEuOS01LjJsMTcwLjMtMjAyYzIuOC0zLjQgNy45LTMuOCAxMS4zLTEgLjMuMy43LjYgMSAxbDk5LjQgMTE4IDE1OC4xLTE4Ny41YzIuOC0zLjQgNy45LTMuOCAxMS4zLTEgLjMuMy43LjYgMSAxbDIyOS42IDI3MS42YzIuNiAzLjMgMi4yIDguNC0xLjIgMTEuMnoifX1dfSxuYW1lOiJwaWN0dXJlIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDM3MTUzOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MjggMTYwSDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY2NDBjMCAxNy43IDE0LjMgMzIgMzIgMzJoODMyYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE5MmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDYzMkgxMzZ2LTM5LjlsMTM4LjUtMTY0LjMgMTUwLjEgMTc4TDY1OC4xIDQ4OSA4ODggNzYxLjZWNzkyem0wLTEyOS44TDY2NC4yIDM5Ni44Yy0zLjItMy44LTktMy44LTEyLjIgMEw0MjQuNiA2NjYuNGwtMTQ0LTE3MC43Yy0zLjItMy44LTktMy44LTEyLjIgMEwxMzYgNjUyLjdWMjMyaDc1MnY0MzAuMnpNMzA0IDQ1NmE4OCA4OCAwIDEwMC0xNzYgODggODggMCAwMDAgMTc2em0wLTExNmMxNS41IDAgMjggMTIuNSAyOCAyOHMtMTIuNSAyOC0yOCAyOC0yOC0xMi41LTI4LTI4IDEyLjUtMjggMjgtMjh6In19XX0sbmFtZToicGljdHVyZSIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDk4OTA3OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOmZ1bmN0aW9uKGEsbil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkyOCAxNjBIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY0MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg4MzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNjMySDEzNnYtMzkuOWwxMzguNS0xNjQuMyAxNTAuMSAxNzhMNjU4LjEgNDg5IDg4OCA3NjEuNlY3OTJ6bTAtMTI5LjhMNjY0LjIgMzk2LjhjLTMuMi0zLjgtOS0zLjgtMTIuMiAwTDQyNC42IDY2Ni40bC0xNDQtMTcwLjdjLTMuMi0zLjgtOS0zLjgtMTIuMiAwTDEzNiA2NTIuN1YyMzJoNzUydjQzMC4yeiIsZmlsbDphfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00MjQuNiA3NjUuOGwtMTUwLjEtMTc4TDEzNiA3NTIuMVY3OTJoNzUydi0zMC40TDY1OC4xIDQ4OXoiLGZpbGw6bn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMTM2IDY1Mi43bDEzMi40LTE1N2MzLjItMy44IDktMy44IDEyLjIgMGwxNDQgMTcwLjdMNjUyIDM5Ni44YzMuMi0zLjggOS0zLjggMTIuMiAwTDg4OCA2NjIuMlYyMzJIMTM2djQyMC43ek0zMDQgMjgwYTg4IDg4IDAgMTEwIDE3NiA4OCA4OCAwIDAxMC0xNzZ6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTI3NiAzNjhhMjggMjggMCAxMDU2IDAgMjggMjggMCAxMC01NiAweiIsZmlsbDpufX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0zMDQgNDU2YTg4IDg4IDAgMTAwLTE3NiA4OCA4OCAwIDAwMCAxNzZ6bTAtMTE2YzE1LjUgMCAyOCAxMi41IDI4IDI4cy0xMi41IDI4LTI4IDI4LTI4LTEyLjUtMjgtMjggMTIuNS0yOCAyOC0yOHoiLGZpbGw6YX19XX19LG5hbWU6InBpY3R1cmUiLHRoZW1lOiJ0d290b25lIn07dC5kZWZhdWx0PWV9LDg2NzYxOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NjMuMSA1MTguNUg1MDUuNVYxNjAuOWMwLTQuNC0zLjYtOC04LThoLTI2YTM5OC41NyAzOTguNTcgMCAwMC0yODIuNSAxMTcgMzk3LjQ3IDM5Ny40NyAwIDAwLTg1LjYgMTI3QzgyLjYgNDQ2LjIgNzIgNDk4LjUgNzIgNTUyLjVTODIuNiA2NTguNyAxMDMuNCA3MDhjMjAuMSA0Ny41IDQ4LjkgOTAuMyA4NS42IDEyNyAzNi43IDM2LjcgNzkuNCA2NS41IDEyNyA4NS42YTM5Ni42NCAzOTYuNjQgMCAwMDE1NS42IDMxLjUgMzk4LjU3IDM5OC41NyAwIDAwMjgyLjUtMTE3YzM2LjctMzYuNyA2NS41LTc5LjQgODUuNi0xMjdhMzk2LjY0IDM5Ni42NCAwIDAwMzEuNS0xNTUuNnYtMjZjLS4xLTQuNC0zLjctOC04LjEtOHpNOTUxIDQ2M2wtMi42LTI4LjJjLTguNS05Mi00OS4zLTE3OC44LTExNS4xLTI0NC4zQTM5OC41IDM5OC41IDAgMDA1ODguNCA3NS42TDU2MC4xIDczYy00LjctLjQtOC43IDMuMi04LjcgNy45djM4My43YzAgNC40IDMuNiA4IDggOGwzODMuNi0xYzQuNy0uMSA4LjQtNCA4LTguNnoifX1dfSxuYW1lOiJwaWUtY2hhcnQiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sNDg1MDU6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg2NCA1MThINTA2VjE2MGMwLTQuNC0zLjYtOC04LThoLTI2YTM5OC40NiAzOTguNDYgMCAwMC0yODIuOCAxMTcuMSAzOTguMTkgMzk4LjE5IDAgMDAtODUuNyAxMjcuMUEzOTcuNjEgMzk3LjYxIDAgMDA3MiA1NTJhMzk4LjQ2IDM5OC40NiAwIDAwMTE3LjEgMjgyLjhjMzYuNyAzNi43IDc5LjUgNjUuNiAxMjcuMSA4NS43QTM5Ny42MSAzOTcuNjEgMCAwMDQ3MiA5NTJhMzk4LjQ2IDM5OC40NiAwIDAwMjgyLjgtMTE3LjFjMzYuNy0zNi43IDY1LjYtNzkuNSA4NS43LTEyNy4xQTM5Ny42MSAzOTcuNjEgMCAwMDg3MiA1NTJ2LTI2YzAtNC40LTMuNi04LTgtOHpNNzA1LjcgNzg3LjhBMzMxLjU5IDMzMS41OSAwIDAxNDcwLjQgODg0Yy04OC4xLS40LTE3MC45LTM0LjktMjMzLjItOTcuMkMxNzQuNSA3MjQuMSAxNDAgNjQwLjcgMTQwIDU1MmMwLTg4LjcgMzQuNS0xNzIuMSA5Ny4yLTIzNC44IDU0LjYtNTQuNiAxMjQuOS04Ny45IDIwMC44LTk1LjVWNTg2aDM2NC4zYy03LjcgNzYuMy00MS4zIDE0Ny05Ni42IDIwMS44ek05NTIgNDYyLjRsLTIuNi0yOC4yYy04LjUtOTIuMS00OS40LTE3OS0xMTUuMi0yNDQuNkEzOTkuNCAzOTkuNCAwIDAwNTg5IDc0LjZMNTYwLjcgNzJjLTQuNy0uNC04LjcgMy4yLTguNyA3LjlWNDY0YzAgNC40IDMuNiA4IDggOGwzODQtMWM0LjcgMCA4LjQtNCA4LTguNnptLTMzMi4yLTU4LjJWMTQ3LjZhMzMyLjI0IDMzMi4yNCAwIDAxMTY2LjQgODkuOGM0NS43IDQ1LjYgNzcgMTAzLjYgOTAgMTY2LjFsLTI1Ni40Ljd6In19XX0sbmFtZToicGllLWNoYXJ0Iix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sMTMyODY6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMzE2LjIgOTIwLjVjLTQ3LjYtMjAuMS05MC40LTQ5LTEyNy4xLTg1LjdhMzk4LjE5IDM5OC4xOSAwIDAxLTg1LjctMTI3LjFBMzk3LjEyIDM5Ny4xMiAwIDAxNzIgNTUyLjJ2LjJhMzk4LjU3IDM5OC41NyAwIDAwMTE3IDI4Mi41YzM2LjcgMzYuNyA3OS40IDY1LjUgMTI3IDg1LjZBMzk2LjY0IDM5Ni42NCAwIDAwNDcxLjYgOTUyYzI3IDAgNTMuNi0yLjcgNzkuNy03LjktMjUuOSA1LjItNTIuNCA3LjgtNzkuMyA3LjgtNTQgLjEtMTA2LjQtMTAuNS0xNTUuOC0zMS40ek01NjAgNDcyYy00LjQgMC04LTMuNi04LThWNzkuOWMwLTEuMy4zLTIuNS45LTMuNi0uOSAxLjMtMS41IDIuOS0xLjUgNC42djM4My43YzAgNC40IDMuNiA4IDggOGwzODMuNi0xYzEuNiAwIDMuMS0uNSA0LjQtMS4zLTEgLjUtMi4yLjctMy40LjdsLTM4NCAxeiIsZmlsbDpufX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02MTkuOCAxNDcuNnYyNTYuNmwyNTYuNC0uN2MtMTMtNjIuNS00NC4zLTEyMC41LTkwLTE2Ni4xYTMzMi4yNCAzMzIuMjQgMCAwMC0xNjYuNC04OS44eiIsZmlsbDpufX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00MzggMjIxLjdjLTc1LjkgNy42LTE0Ni4yIDQwLjktMjAwLjggOTUuNUMxNzQuNSAzNzkuOSAxNDAgNDYzLjMgMTQwIDU1MnMzNC41IDE3Mi4xIDk3LjIgMjM0LjhjNjIuMyA2Mi4zIDE0NS4xIDk2LjggMjMzLjIgOTcuMiA4OC4yLjQgMTcyLjctMzQuMSAyMzUuMy05Ni4yQzc2MSA3MzMgNzk0LjYgNjYyLjMgODAyLjMgNTg2SDQzOFYyMjEuN3oiLGZpbGw6bn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODY0IDUxOEg1MDZWMTYwYzAtNC40LTMuNi04LTgtOGgtMjZhMzk4LjQ2IDM5OC40NiAwIDAwLTI4Mi44IDExNy4xIDM5OC4xOSAzOTguMTkgMCAwMC04NS43IDEyNy4xQTM5Ny42MSAzOTcuNjEgMCAwMDcyIDU1MnYuMmMwIDUzLjkgMTAuNiAxMDYuMiAzMS40IDE1NS41IDIwLjEgNDcuNiA0OSA5MC40IDg1LjcgMTI3LjEgMzYuNyAzNi43IDc5LjUgNjUuNiAxMjcuMSA4NS43QTM5Ny42MSAzOTcuNjEgMCAwMDQ3MiA5NTJjMjYuOSAwIDUzLjQtMi42IDc5LjMtNy44IDI2LjEtNS4zIDUxLjctMTMuMSA3Ni40LTIzLjYgNDcuNi0yMC4xIDkwLjQtNDkgMTI3LjEtODUuNyAzNi43LTM2LjcgNjUuNi03OS41IDg1LjctMTI3LjFBMzk3LjYxIDM5Ny42MSAwIDAwODcyIDU1MnYtMjZjMC00LjQtMy42LTgtOC04ek03MDUuNyA3ODcuOEEzMzEuNTkgMzMxLjU5IDAgMDE0NzAuNCA4ODRjLTg4LjEtLjQtMTcwLjktMzQuOS0yMzMuMi05Ny4yQzE3NC41IDcyNC4xIDE0MCA2NDAuNyAxNDAgNTUyczM0LjUtMTcyLjEgOTcuMi0yMzQuOGM1NC42LTU0LjYgMTI0LjktODcuOSAyMDAuOC05NS41VjU4NmgzNjQuM2MtNy43IDc2LjMtNDEuMyAxNDctOTYuNiAyMDEuOHoiLGZpbGw6YX19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNOTUyIDQ2Mi40bC0yLjYtMjguMmMtOC41LTkyLjEtNDkuNC0xNzktMTE1LjItMjQ0LjZBMzk5LjQgMzk5LjQgMCAwMDU4OSA3NC42TDU2MC43IDcyYy0zLjQtLjMtNi40IDEuNS03LjggNC4zYTguNyA4LjcgMCAwMC0uOSAzLjZWNDY0YzAgNC40IDMuNiA4IDggOGwzODQtMWMxLjIgMCAyLjMtLjMgMy40LS43YTguMSA4LjEgMCAwMDQuNi03Ljl6bS0zMzIuMi01OC4yVjE0Ny42YTMzMi4yNCAzMzIuMjQgMCAwMTE2Ni40IDg5LjhjNDUuNyA0NS42IDc3IDEwMy42IDkwIDE2Ni4xbC0yNTYuNC43eiIsZmlsbDphfX1dfX0sbmFtZToicGllLWNoYXJ0Iix0aGVtZToidHdvdG9uZSJ9O3QuZGVmYXVsdD1lfSw3NjkwNzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnsiZmlsbC1ydWxlIjoiZXZlbm9kZCIsdmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuOTcgNjQgNjQgMjY0Ljk3IDY0IDUxMmMwIDE5Mi41MyAxMjIuMDggMzU3LjA0IDI5Mi44OCA0MjAuMjgtNC45Mi00My44Ni00LjE0LTExNS42OCAzLjk3LTE1MC40NiA3LjYtMzIuNjYgNDkuMTEtMjA4LjE2IDQ5LjExLTIwOC4xNnMtMTIuNTMtMjUuMS0xMi41My02Mi4xNmMwLTU4LjI0IDMzLjc0LTEwMS43IDc1Ljc3LTEwMS43IDM1Ljc0IDAgNTIuOTcgMjYuODMgNTIuOTcgNTguOTggMCAzNS45Ni0yMi44NSA4OS42Ni0zNC43IDEzOS40My05Ljg3IDQxLjcgMjAuOTEgNzUuNyA2Mi4wMiA3NS43IDc0LjQzIDAgMTMxLjY0LTc4LjUgMTMxLjY0LTE5MS43NyAwLTEwMC4yNy03Mi4wMy0xNzAuMzgtMTc0LjktMTcwLjM4LTExOS4xNSAwLTE4OS4wOCA4OS4zOC0xODkuMDggMTgxLjc1IDAgMzUuOTggMTMuODUgNzQuNTggMzEuMTYgOTUuNTggMy40MiA0LjE2IDMuOTIgNy43OCAyLjkgMTItMy4xNyAxMy4yMi0xMC4yMiA0MS42Ny0xMS42MyA0Ny41LTEuODIgNy42OC02LjA3IDkuMjgtMTQgNS41OS01Mi4zLTI0LjM2LTg1LTEwMC44MS04NS0xNjIuMjUgMC0xMzIuMSA5NS45Ni0yNTMuNDMgMjc2LjcxLTI1My40MyAxNDUuMjkgMCAyNTguMTggMTAzLjUgMjU4LjE4IDI0MS44OCAwIDE0NC4zNC05MS4wMiAyNjAuNDktMjE3LjMxIDI2MC40OS00Mi40NCAwLTgyLjMzLTIyLjA1LTk1Ljk3LTQ4LjEgMCAwLTIxIDc5Ljk2LTI2LjEgOTkuNTYtOC44MiAzMy45LTQ2LjU1IDEwNC4xMy02NS40OSAxMzYuMDNBNDQ2LjE2IDQ0Ni4xNiAwIDAwNTEyIDk2MGMyNDcuMDQgMCA0NDgtMjAwLjk3IDQ0OC00NDhTNzU5LjA0IDY0IDUxMiA2NCJ9fV19LG5hbWU6InBpbnRlcmVzdCIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw2MjgxNDpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnsiZmlsbC1ydWxlIjoiZXZlbm9kZCIsdmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuOCA2NCA2NCAyNjQuOCA2NCA1MTJzMjAwLjggNDQ4IDQ0OCA0NDggNDQ4LTIwMC44IDQ0OC00NDhTNzU5LjIgNjQgNTEyIDY0bTAgMzguOTZjMjI2LjE0IDAgNDA5LjA0IDE4Mi45IDQwOS4wNCA0MDkuMDQgMCAyMjYuMTQtMTgyLjkgNDA5LjA0LTQwOS4wNCA0MDkuMDQtNDEuMzcgMC04MS4yNy02LjE5LTExOC44OS0xNy41NyAxNi43Ni0yOC4wMiAzOC40LTY4LjA2IDQ2Ljk5LTEwMS4xMiA1LjEtMTkuNiAyNi4xLTk5LjU2IDI2LjEtOTkuNTYgMTMuNjQgMjYuMDQgNTMuNSA0OC4wOSA5NS45NCA0OC4wOSAxMjYuMyAwIDIxNy4zNC0xMTYuMTUgMjE3LjM0LTI2MC40OSAwLTEzOC4zNy0xMTIuOTEtMjQxLjg4LTI1OC4yLTI0MS44OC0xODAuNzUgMC0yNzYuNjkgMTIxLjMyLTI3Ni42OSAyNTMuNCAwIDYxLjQ0IDMyLjY4IDEzNy45MSA4NSAxNjIuMjYgNy45MiAzLjcgMTIuMTcgMi4xIDE0LTUuNTkgMS40LTUuODMgOC40Ni0zNC4yNSAxMS42My00Ny40OCAxLjAyLTQuMjIuNTMtNy44Ni0yLjg5LTEyLjAyLTE3LjMxLTIxLTMxLjItNTkuNTgtMzEuMi05NS41NiAwLTkyLjM4IDY5Ljk0LTE4MS43OCAxODkuMDgtMTgxLjc4IDEwMi44OCAwIDE3NC45MyA3MC4xMyAxNzQuOTMgMTcwLjQgMCAxMTMuMjgtNTcuMiAxOTEuNzgtMTMxLjYzIDE5MS43OC00MS4xMSAwLTcxLjg5LTM0LTYyLjAyLTc1LjcgMTEuODQtNDkuNzggMzQuNy0xMDMuNDkgMzQuNy0xMzkuNDQgMC0zMi4xNS0xNy4yNS01OC45Ny01My01OC45Ny00Mi4wMiAwLTc1Ljc4IDQzLjQ1LTc1Ljc4IDEwMS43IDAgMzcuMDYgMTIuNTYgNjIuMTYgMTIuNTYgNjIuMTZzLTQxLjUxIDE3NS41LTQ5LjEyIDIwOC4xN2MtNy42MiAzMi42NC01LjU4IDc2LjYtMi40MyAxMDkuMzRDMjA4LjU1IDgzMC41MiAxMDIuOTYgNjgzLjc4IDEwMi45NiA1MTJjMC0yMjYuMTQgMTgyLjktNDA5LjA0IDQwOS4wNC00MDkuMDQifX1dfSxuYW1lOiJwaW50ZXJlc3QiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw5NjQzMTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTE0NC4xIDQ1NC45TDQzNy43IDY3Ny44YTguMDIgOC4wMiAwIDAxLTEyLjctNi41VjM1My43YTggOCAwIDAxMTIuNy02LjVMNjU2LjEgNTA2YTcuOSA3LjkgMCAwMTAgMTIuOXoifX1dfSxuYW1lOiJwbGF5LWNpcmNsZSIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw4NzMyNDpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeiJ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTcxOS40IDQ5OS4xbC0yOTYuMS0yMTVBMTUuOSAxNS45IDAgMDAzOTggMjk3djQzMGMwIDEzLjEgMTQuOCAyMC41IDI1LjMgMTIuOWwyOTYuMS0yMTVhMTUuOSAxNS45IDAgMDAwLTI1Ljh6bS0yNTcuNiAxMzRWMzkwLjlMNjI4LjUgNTEyIDQ2MS44IDYzMy4xeiJ9fV19LG5hbWU6InBsYXktY2lyY2xlIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sMzcyMzI6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeiIsZmlsbDphfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgMTQwYy0yMDUuNCAwLTM3MiAxNjYuNi0zNzIgMzcyczE2Ni42IDM3MiAzNzIgMzcyIDM3Mi0xNjYuNiAzNzItMzcyLTE2Ni42LTM3Mi0zNzItMzcyem0xNjQuMSAzNzguMkw0NTcuNyA2NzcuMWE4LjAyIDguMDIgMCAwMS0xMi43LTYuNVYzNTNhOCA4IDAgMDExMi43LTYuNWwyMTguNCAxNTguOGE3LjkgNy45IDAgMDEwIDEyLjl6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTY3Ni4xIDUwNS4zTDQ1Ny43IDM0Ni41QTggOCAwIDAwNDQ1IDM1M3YzMTcuNmE4LjAyIDguMDIgMCAwMDEyLjcgNi41bDIxOC40LTE1OC45YTcuOSA3LjkgMCAwMDAtMTIuOXoiLGZpbGw6YX19XX19LG5hbWU6InBsYXktY2lyY2xlIix0aGVtZToidHdvdG9uZSJ9O3QuZGVmYXVsdD1lfSw1NTg4MDpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek02NDEuNyA1MjAuOEw0NDIuMyA2NzcuNmMtNy40IDUuOC0xOC4zLjYtMTguMy04LjhWMzU1LjNjMC05LjQgMTAuOS0xNC43IDE4LjMtOC44bDE5OS40IDE1Ni43YTExLjIgMTEuMiAwIDAxMCAxNy42eiJ9fV19LG5hbWU6InBsYXktc3F1YXJlIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDU1MDg6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQ0Mi4zIDY3Ny42bDE5OS40LTE1Ni43YTExLjMgMTEuMyAwIDAwMC0xNy43TDQ0Mi4zIDM0Ni40Yy03LjQtNS44LTE4LjMtLjYtMTguMyA4Ljh2MzEzLjVjMCA5LjQgMTAuOSAxNC43IDE4LjMgOC45eiJ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6In19XX0sbmFtZToicGxheS1zcXVhcmUiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSwyMTk4ODpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjpmdW5jdGlvbihhLG4pe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2eiIsZmlsbDphfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0xODQgODQwaDY1NlYxODRIMTg0djY1NnptMjQwLTQ4NC43YzAtOS40IDEwLjktMTQuNyAxOC4zLTguOGwxOTkuNCAxNTYuN2ExMS4yIDExLjIgMCAwMTAgMTcuNkw0NDIuMyA2NzcuNmMtNy40IDUuOC0xOC4zLjYtMTguMy04LjhWMzU1LjN6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQ0Mi4zIDY3Ny42bDE5OS40LTE1Ni44YTExLjIgMTEuMiAwIDAwMC0xNy42TDQ0Mi4zIDM0Ni41Yy03LjQtNS45LTE4LjMtLjYtMTguMyA4Ljh2MzEzLjVjMCA5LjQgMTAuOSAxNC42IDE4LjMgOC44eiIsZmlsbDphfX1dfX0sbmFtZToicGxheS1zcXVhcmUiLHRoZW1lOiJ0d290b25lIn07dC5kZWZhdWx0PWV9LDU2MzMwOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMTkyIDQ3MmMwIDQuNC0zLjYgOC04IDhINTQ0djE1MmMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LThWNTQ0SDMyOGMtNC40IDAtOC0zLjYtOC04di00OGMwLTQuNCAzLjYtOCA4LThoMTUyVjMyOGMwLTQuNCAzLjYtOCA4LThoNDhjNC40IDAgOCAzLjYgOCA4djE1MmgxNTJjNC40IDAgOCAzLjYgOCA4djQ4eiJ9fV19LG5hbWU6InBsdXMtY2lyY2xlIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDM1NTExOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02OTYgNDgwSDU0NFYzMjhjMC00LjQtMy42LTgtOC04aC00OGMtNC40IDAtOCAzLjYtOCA4djE1MkgzMjhjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMTUydjE1MmMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04VjU0NGgxNTJjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6In19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeiJ9fV19LG5hbWU6InBsdXMtY2lyY2xlIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNTczMzM6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeiIsZmlsbDphfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgMTQwYy0yMDUuNCAwLTM3MiAxNjYuNi0zNzIgMzcyczE2Ni42IDM3MiAzNzIgMzcyIDM3Mi0xNjYuNiAzNzItMzcyLTE2Ni42LTM3Mi0zNzItMzcyem0xOTIgMzk2YzAgNC40LTMuNiA4LTggOEg1NDR2MTUyYzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOFY1NDRIMzI4Yy00LjQgMC04LTMuNi04LTh2LTQ4YzAtNC40IDMuNi04IDgtOGgxNTJWMzI4YzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh2MTUyaDE1MmM0LjQgMCA4IDMuNiA4IDh2NDh6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTY5NiA0ODBINTQ0VjMyOGMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2MTUySDMyOGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgxNTJ2MTUyYzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LThWNTQ0aDE1MmM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOHoiLGZpbGw6YX19XX19LG5hbWU6InBsdXMtY2lyY2xlIix0aGVtZToidHdvdG9uZSJ9O3QuZGVmYXVsdD1lfSw1NzA5NjpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNDgyIDE1Mmg2MHE4IDAgOCA4djcwNHEwIDgtOCA4aC02MHEtOCAwLTgtOFYxNjBxMC04IDgtOHoifX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0xOTIgNDc0aDY3MnE4IDAgOCA4djYwcTAgOC04IDhIMTYwcS04IDAtOC04di02MHEwLTggOC04eiJ9fV19LG5hbWU6InBsdXMiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw3NDAyMjpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek03MDQgNTM2YzAgNC40LTMuNiA4LTggOEg1NDR2MTUyYzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOFY1NDRIMzI4Yy00LjQgMC04LTMuNi04LTh2LTQ4YzAtNC40IDMuNi04IDgtOGgxNTJWMzI4YzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh2MTUyaDE1MmM0LjQgMCA4IDMuNiA4IDh2NDh6In19XX0sbmFtZToicGx1cy1zcXVhcmUiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sMjg3MDY6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTMyOCA1NDRoMTUydjE1MmMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04VjU0NGgxNTJjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThINTQ0VjMyOGMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2MTUySDMyOGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOHoifX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2eiJ9fV19LG5hbWU6InBsdXMtc3F1YXJlIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sMzk3MTU6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNzI4SDE4NFYxODRoNjU2djY1NnoiLGZpbGw6YX19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMTg0IDg0MGg2NTZWMTg0SDE4NHY2NTZ6bTEzNi0zNTJjMC00LjQgMy42LTggOC04aDE1MlYzMjhjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHYxNTJoMTUyYzQuNCAwIDggMy42IDggOHY0OGMwIDQuNC0zLjYgOC04IDhINTQ0djE1MmMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LThWNTQ0SDMyOGMtNC40IDAtOC0zLjYtOC04di00OHoiLGZpbGw6bn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMzI4IDU0NGgxNTJ2MTUyYzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LThWNTQ0aDE1MmM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOEg1NDRWMzI4YzAtNC40LTMuNi04LTgtOGgtNDhjLTQuNCAwLTggMy42LTggOHYxNTJIMzI4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4eiIsZmlsbDphfX1dfX0sbmFtZToicGx1cy1zcXVhcmUiLHRoZW1lOiJ0d290b25lIn07dC5kZWZhdWx0PWV9LDk3MzI1OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMTQ2IDY1OGMwIDQuNC0zLjYgOC04IDhIMzc2LjJjLTQuNCAwLTgtMy42LTgtOHYtMzguNWMwLTMuNyAyLjUtNi45IDYuMS03LjggNDQtMTAuOSA3Mi44LTQ5IDcyLjgtOTQuMiAwLTE0LjctMi41LTI5LjQtNS45LTQ0LjJIMzc0Yy00LjQgMC04LTMuNi04LTh2LTMwYzAtNC40IDMuNi04IDgtOGg1My43Yy03LjgtMjUuMS0xNC42LTUwLjctMTQuNi03Ny4xIDAtNzUuOCA1OC42LTEyMC4zIDE1MS41LTEyMC4zIDI2LjUgMCA1MS40IDUuNSA3MC4zIDEyLjcgMy4xIDEuMiA1LjIgNC4yIDUuMiA3LjV2MzkuNWE4IDggMCAwMS0xMC42IDcuNmMtMTcuOS02LjQtMzktMTAuNS02MC40LTEwLjUtNTMuMyAwLTg3LjMgMjYuNi04Ny4zIDcwLjIgMCAyNC43IDYuMiA0Ny45IDEzLjQgNzAuNWgxMTJjNC40IDAgOCAzLjYgOCA4djMwYzAgNC40LTMuNiA4LTggOGgtOTguNmMzLjEgMTMuMiA1LjMgMjYuOSA1LjMgNDEgMCA0MC43LTE2LjUgNzMuOS00My45IDkxLjF2NC43aDE4MGM0LjQgMCA4IDMuNiA4IDhWNzIyeiJ9fV19LG5hbWU6InBvdW5kLWNpcmNsZSIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSwzMDM0MzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyem0xMzgtMjA5LjhINDY5Ljh2LTQuN2MyNy40LTE3LjIgNDMuOS01MC40IDQzLjktOTEuMSAwLTE0LjEtMi4yLTI3LjktNS4zLTQxSDYwN2M0LjQgMCA4LTMuNiA4LTh2LTMwYzAtNC40LTMuNi04LTgtOEg0OTVjLTcuMi0yMi42LTEzLjQtNDUuNy0xMy40LTcwLjUgMC00My41IDM0LTcwLjIgODcuMy03MC4yIDIxLjUgMCA0Mi41IDQuMSA2MC40IDEwLjUgNS4yIDEuOSAxMC42LTIgMTAuNi03LjZ2LTM5LjVjMC0zLjMtMi4xLTYuMy01LjItNy41LTE4LjgtNy4yLTQzLjgtMTIuNy03MC4zLTEyLjctOTIuOSAwLTE1MS41IDQ0LjUtMTUxLjUgMTIwLjMgMCAyNi4zIDYuOSA1MiAxNC42IDc3LjFIMzc0Yy00LjQgMC04IDMuNi04IDh2MzBjMCA0LjQgMy42IDggOCA4aDY3LjFjMy40IDE0LjcgNS45IDI5LjQgNS45IDQ0LjIgMCA0NS4yLTI4LjggODMuMy03Mi44IDk0LjItMy42LjktNi4xIDQuMS02LjEgNy44VjcyMmMwIDQuNCAzLjYgOCA4IDhINjUwYzQuNCAwIDgtMy42IDgtOHYtMzkuOGMwLTQuNC0zLjYtOC04LTh6In19XX0sbmFtZToicG91bmQtY2lyY2xlIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sODIzMjk6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeiIsZmlsbDphfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgMTQwYy0yMDUuNCAwLTM3MiAxNjYuNi0zNzIgMzcyczE2Ni42IDM3MiAzNzIgMzcyIDM3Mi0xNjYuNiAzNzItMzcyLTE2Ni42LTM3Mi0zNzItMzcyem0xNDYgNTgyLjFjMCA0LjQtMy42IDgtOCA4SDM3Ni4yYy00LjQgMC04LTMuNi04LTh2LTM4LjVjMC0zLjcgMi41LTYuOSA2LjEtNy44IDQ0LTEwLjkgNzIuOC00OSA3Mi44LTk0LjIgMC0xNC43LTIuNS0yOS40LTUuOS00NC4ySDM3NGMtNC40IDAtOC0zLjYtOC04di0zMGMwLTQuNCAzLjYtOCA4LThoNTMuN2MtNy44LTI1LjEtMTQuNi01MC43LTE0LjYtNzcuMSAwLTc1LjggNTguNi0xMjAuMyAxNTEuNS0xMjAuMyAyNi41IDAgNTEuNCA1LjUgNzAuMyAxMi43IDMuMSAxLjIgNS4yIDQuMiA1LjIgNy41djM5LjVhOCA4IDAgMDEtMTAuNiA3LjZjLTE3LjktNi40LTM5LTEwLjUtNjAuNC0xMC41LTUzLjMgMC04Ny4zIDI2LjYtODcuMyA3MC4yIDAgMjQuNyA2LjIgNDcuOSAxMy40IDcwLjVoMTEyYzQuNCAwIDggMy42IDggOHYzMGMwIDQuNC0zLjYgOC04IDhoLTk4LjZjMy4xIDEzLjIgNS4zIDI2LjkgNS4zIDQxIDAgNDAuNy0xNi41IDczLjktNDMuOSA5MS4xdjQuN2gxODBjNC40IDAgOCAzLjYgOCA4djM5Ljh6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTY1MCA2NzQuM0g0NzB2LTQuN2MyNy40LTE3LjIgNDMuOS01MC40IDQzLjktOTEuMSAwLTE0LjEtMi4yLTI3LjgtNS4zLTQxaDk4LjZjNC40IDAgOC0zLjYgOC04di0zMGMwLTQuNC0zLjYtOC04LThoLTExMmMtNy4yLTIyLjYtMTMuNC00NS44LTEzLjQtNzAuNSAwLTQzLjYgMzQtNzAuMiA4Ny4zLTcwLjIgMjEuNCAwIDQyLjUgNC4xIDYwLjQgMTAuNWE4IDggMCAwMDEwLjYtNy42di0zOS41YzAtMy4zLTIuMS02LjMtNS4yLTcuNS0xOC45LTcuMi00My44LTEyLjctNzAuMy0xMi43LTkyLjkgMC0xNTEuNSA0NC41LTE1MS41IDEyMC4zIDAgMjYuNCA2LjggNTIgMTQuNiA3Ny4xSDM3NGMtNC40IDAtOCAzLjYtOCA4djMwYzAgNC40IDMuNiA4IDggOGg2Ny4yYzMuNCAxNC44IDUuOSAyOS41IDUuOSA0NC4yIDAgNDUuMi0yOC44IDgzLjMtNzIuOCA5NC4yLTMuNi45LTYuMSA0LjEtNi4xIDcuOHYzOC41YzAgNC40IDMuNiA4IDggOEg2NTBjNC40IDAgOC0zLjYgOC04di0zOS44YzAtNC40LTMuNi04LTgtOHoiLGZpbGw6YX19XX19LG5hbWU6InBvdW5kLWNpcmNsZSIsdGhlbWU6InR3b3RvbmUifTt0LmRlZmF1bHQ9ZX0sNzkyNDY6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnptMTM4LTIwOS44SDQ2OS44di00LjdjMjcuNC0xNy4yIDQzLjktNTAuNCA0My45LTkxLjEgMC0xNC4xLTIuMi0yNy45LTUuMy00MUg2MDdjNC40IDAgOC0zLjYgOC04di0zMGMwLTQuNC0zLjYtOC04LThINDk1Yy03LjItMjIuNi0xMy40LTQ1LjctMTMuNC03MC41IDAtNDMuNSAzNC03MC4yIDg3LjMtNzAuMiAyMS41IDAgNDIuNSA0LjEgNjAuNCAxMC41IDUuMiAxLjkgMTAuNi0yIDEwLjYtNy42di0zOS41YzAtMy4zLTIuMS02LjMtNS4yLTcuNS0xOC44LTcuMi00My44LTEyLjctNzAuMy0xMi43LTkyLjkgMC0xNTEuNSA0NC41LTE1MS41IDEyMC4zIDAgMjYuMyA2LjkgNTIgMTQuNiA3Ny4xSDM3NGMtNC40IDAtOCAzLjYtOCA4djMwYzAgNC40IDMuNiA4IDggOGg2Ny4xYzMuNCAxNC43IDUuOSAyOS40IDUuOSA0NC4yIDAgNDUuMi0yOC44IDgzLjMtNzIuOCA5NC4yLTMuNi45LTYuMSA0LjEtNi4xIDcuOFY3MjJjMCA0LjQgMy42IDggOCA4SDY1MGM0LjQgMCA4LTMuNiA4LTh2LTM5LjhjMC00LjQtMy42LTgtOC04eiJ9fV19LG5hbWU6InBvdW5kIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sOTA5MTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNzA1LjYgMTI0LjlhOCA4IDAgMDAtMTEuNiA3LjJ2NjQuMmMwIDUuNSAyLjkgMTAuNiA3LjUgMTMuNmEzNTIuMiAzNTIuMiAwIDAxNjIuMiA0OS44YzMyLjcgMzIuOCA1OC40IDcwLjkgNzYuMyAxMTMuM2EzNTUgMzU1IDAgMDEyNy45IDEzOC43YzAgNDguMS05LjQgOTQuOC0yNy45IDEzOC43YTM1NS45MiAzNTUuOTIgMCAwMS03Ni4zIDExMy4zIDM1My4wNiAzNTMuMDYgMCAwMS0xMTMuMiA3Ni40Yy00My44IDE4LjYtOTAuNSAyOC0xMzguNSAyOHMtOTQuNy05LjQtMTM4LjUtMjhhMzUzLjA2IDM1My4wNiAwIDAxLTExMy4yLTc2LjRBMzU1LjkyIDM1NS45MiAwIDAxMTg0IDY1MC40YTM1NSAzNTUgMCAwMS0yNy45LTEzOC43YzAtNDguMSA5LjQtOTQuOCAyNy45LTEzOC43IDE3LjktNDIuNCA0My42LTgwLjUgNzYuMy0xMTMuMyAxOS0xOSAzOS44LTM1LjYgNjIuMi00OS44IDQuNy0yLjkgNy41LTguMSA3LjUtMTMuNlYxMzJjMC02LTYuMy05LjgtMTEuNi03LjJDMTc4LjUgMTk1LjIgODIgMzM5LjMgODAgNTA2LjMgNzcuMiA3NDUuMSAyNzIuNSA5NDMuNSA1MTEuMiA5NDRjMjM5IC41IDQzMi44LTE5My4zIDQzMi44LTQzMi40IDAtMTY5LjItOTctMzE1LjctMjM4LjQtMzg2Ljd6TTQ4MCA1NjBoNjRjNC40IDAgOC0zLjYgOC04Vjg4YzAtNC40LTMuNi04LTgtOGgtNjRjLTQuNCAwLTggMy42LTggOHY0NjRjMCA0LjQgMy42IDggOCA4eiJ9fV19LG5hbWU6InBvd2Vyb2ZmIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNTMwNzI6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTczMiAxMjBjMC00LjQtMy42LTgtOC04SDMwMGMtNC40IDAtOCAzLjYtOCA4djE0OGg0NDBWMTIwem0xMjAgMjEySDE3MmMtNDQuMiAwLTgwIDM1LjgtODAgODB2MzI4YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDE2OHYxMzJjMCA0LjQgMy42IDggOCA4aDQyNGM0LjQgMCA4LTMuNiA4LThWNzcyaDE2OGMxNy43IDAgMzItMTQuMyAzMi0zMlY0MTJjMC00NC4yLTM1LjgtODAtODAtODB6TTY2NCA4NDRIMzYwVjU2OGgzMDR2Mjc2em0xNjQtMzYwYzAgNC40LTMuNiA4LTggOGgtNDBjLTQuNCAwLTgtMy42LTgtOHYtNDBjMC00LjQgMy42LTggOC04aDQwYzQuNCAwIDggMy42IDggOHY0MHoifX1dfSxuYW1lOiJwcmludGVyIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDQ3NjYyOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04MjAgNDM2aC00MGMtNC40IDAtOCAzLjYtOCA4djQwYzAgNC40IDMuNiA4IDggOGg0MGM0LjQgMCA4LTMuNiA4LTh2LTQwYzAtNC40LTMuNi04LTgtOHptMzItMTA0SDczMlYxMjBjMC00LjQtMy42LTgtOC04SDMwMGMtNC40IDAtOCAzLjYtOCA4djIxMkgxNzJjLTQ0LjIgMC04MCAzNS44LTgwIDgwdjMyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMmgxNjh2MTMyYzAgNC40IDMuNiA4IDggOGg0MjRjNC40IDAgOC0zLjYgOC04Vjc3MmgxNjhjMTcuNyAwIDMyLTE0LjMgMzItMzJWNDEyYzAtNDQuMi0zNS44LTgwLTgwLTgwek0zNjAgMTgwaDMwNHYxNTJIMzYwVjE4MHptMzA0IDY2NEgzNjBWNTY4aDMwNHYyNzZ6bTIwMC0xNDBINzMyVjUwMEgyOTJ2MjA0SDE2MFY0MTJjMC02LjYgNS40LTEyIDEyLTEyaDY4MGM2LjYgMCAxMiA1LjQgMTIgMTJ2MjkyeiJ9fV19LG5hbWU6InByaW50ZXIiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw0OTUxNTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjpmdW5jdGlvbihhLG4pe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0zNjAgMTgwaDMwNHYxNTJIMzYwem00OTIgMjIwSDE3MmMtNi42IDAtMTIgNS40LTEyIDEydjI5MmgxMzJWNTAwaDQ0MHYyMDRoMTMyVjQxMmMwLTYuNi01LjQtMTItMTItMTJ6bS0yNCA4NGMwIDQuNC0zLjYgOC04IDhoLTQwYy00LjQgMC04LTMuNi04LTh2LTQwYzAtNC40IDMuNi04IDgtOGg0MGM0LjQgMCA4IDMuNiA4IDh2NDB6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg1MiAzMzJINzMyVjEyMGMwLTQuNC0zLjYtOC04LThIMzAwYy00LjQgMC04IDMuNi04IDh2MjEySDE3MmMtNDQuMiAwLTgwIDM1LjgtODAgODB2MzI4YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDE2OHYxMzJjMCA0LjQgMy42IDggOCA4aDQyNGM0LjQgMCA4LTMuNiA4LThWNzcyaDE2OGMxNy43IDAgMzItMTQuMyAzMi0zMlY0MTJjMC00NC4yLTM1LjgtODAtODAtODB6TTM2MCAxODBoMzA0djE1MkgzNjBWMTgwem0zMDQgNjY0SDM2MFY1NjhoMzA0djI3NnptMjAwLTE0MEg3MzJWNTAwSDI5MnYyMDRIMTYwVjQxMmMwLTYuNiA1LjQtMTIgMTItMTJoNjgwYzYuNiAwIDEyIDUuNCAxMiAxMnYyOTJ6IixmaWxsOmF9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTgyMCA0MzZoLTQwYy00LjQgMC04IDMuNi04IDh2NDBjMCA0LjQgMy42IDggOCA4aDQwYzQuNCAwIDgtMy42IDgtOHYtNDBjMC00LjQtMy42LTgtOC04eiIsZmlsbDphfX1dfX0sbmFtZToicHJpbnRlciIsdGhlbWU6InR3b3RvbmUifTt0LmRlZmF1bHQ9ZX0sNjc4OTM6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7ImZpbGwtcnVsZSI6ImV2ZW5vZGQiLHZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0xNjAgMTQ0aDMwNGExNiAxNiAwIDAxMTYgMTZ2MzA0YTE2IDE2IDAgMDEtMTYgMTZIMTYwYTE2IDE2IDAgMDEtMTYtMTZWMTYwYTE2IDE2IDAgMDExNi0xNm01NjQuMzEtMjUuMzNsMTgxLjAyIDE4MS4wMmExNiAxNiAwIDAxMCAyMi42Mkw3MjQuMzEgNTAzLjMzYTE2IDE2IDAgMDEtMjIuNjIgMEw1MjAuNjcgMzIyLjMxYTE2IDE2IDAgMDEwLTIyLjYybDE4MS4wMi0xODEuMDJhMTYgMTYgMCAwMTIyLjYyIDBNMTYwIDU0NGgzMDRhMTYgMTYgMCAwMTE2IDE2djMwNGExNiAxNiAwIDAxLTE2IDE2SDE2MGExNiAxNiAwIDAxLTE2LTE2VjU2MGExNiAxNiAwIDAxMTYtMTZtNDAwIDBoMzA0YTE2IDE2IDAgMDExNiAxNnYzMDRhMTYgMTYgMCAwMS0xNiAxNkg1NjBhMTYgMTYgMCAwMS0xNi0xNlY1NjBhMTYgMTYgMCAwMTE2LTE2In19XX0sbmFtZToicHJvZHVjdCIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw0NzE4NzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnsiZmlsbC1ydWxlIjoiZXZlbm9kZCIsdmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQ2NCAxNDRhMTYgMTYgMCAwMTE2IDE2djMwNGExNiAxNiAwIDAxLTE2IDE2SDE2MGExNiAxNiAwIDAxLTE2LTE2VjE2MGExNiAxNiAwIDAxMTYtMTZ6bS01MiA2OEgyMTJ2MjAwaDIwMHptNDkzLjMzIDg3LjY5YTE2IDE2IDAgMDEwIDIyLjYyTDcyNC4zMSA1MDMuMzNhMTYgMTYgMCAwMS0yMi42MiAwTDUyMC42NyAzMjIuMzFhMTYgMTYgMCAwMTAtMjIuNjJsMTgxLjAyLTE4MS4wMmExNiAxNiAwIDAxMjIuNjIgMHptLTg0Ljg1IDExLjNMNzEzIDIwMy41MyA2MDUuNTIgMzExIDcxMyA0MTguNDh6TTQ2NCA1NDRhMTYgMTYgMCAwMTE2IDE2djMwNGExNiAxNiAwIDAxLTE2IDE2SDE2MGExNiAxNiAwIDAxLTE2LTE2VjU2MGExNiAxNiAwIDAxMTYtMTZ6bS01MiA2OEgyMTJ2MjAwaDIwMHptNDUyLTY4YTE2IDE2IDAgMDExNiAxNnYzMDRhMTYgMTYgMCAwMS0xNiAxNkg1NjBhMTYgMTYgMCAwMS0xNi0xNlY1NjBhMTYgMTYgMCAwMTE2LTE2em0tNTIgNjhINjEydjIwMGgyMDB6In19XX0sbmFtZToicHJvZHVjdCIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDQ0MDcxOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTM4MCA2OTZjLTIyLjEgMC00MC0xNy45LTQwLTQwczE3LjktNDAgNDAtNDAgNDAgMTcuOSA0MCA0MC0xNy45IDQwLTQwIDQwem0wLTE0NGMtMjIuMSAwLTQwLTE3LjktNDAtNDBzMTcuOS00MCA0MC00MCA0MCAxNy45IDQwIDQwLTE3LjkgNDAtNDAgNDB6bTAtMTQ0Yy0yMi4xIDAtNDAtMTcuOS00MC00MHMxNy45LTQwIDQwLTQwIDQwIDE3LjkgNDAgNDAtMTcuOSA0MC00MCA0MHptMzA0IDI3MmMwIDQuNC0zLjYgOC04IDhINDkyYy00LjQgMC04LTMuNi04LTh2LTQ4YzAtNC40IDMuNi04IDgtOGgxODRjNC40IDAgOCAzLjYgOCA4djQ4em0wLTE0NGMwIDQuNC0zLjYgOC04IDhINDkyYy00LjQgMC04LTMuNi04LTh2LTQ4YzAtNC40IDMuNi04IDgtOGgxODRjNC40IDAgOCAzLjYgOCA4djQ4em0wLTE0NGMwIDQuNC0zLjYgOC04IDhINDkyYy00LjQgMC04LTMuNi04LTh2LTQ4YzAtNC40IDMuNi04IDgtOGgxODRjNC40IDAgOCAzLjYgOCA4djQ4eiJ9fV19LG5hbWU6InByb2ZpbGUiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sMzg5ODI6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6TTQ5MiA0MDBoMTg0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04SDQ5MmMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOHptMCAxNDRoMTg0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04SDQ5MmMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOHptMCAxNDRoMTg0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04SDQ5MmMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOHpNMzQwIDM2OGE0MCA0MCAwIDEwODAgMCA0MCA0MCAwIDEwLTgwIDB6bTAgMTQ0YTQwIDQwIDAgMTA4MCAwIDQwIDQwIDAgMTAtODAgMHptMCAxNDRhNDAgNDAgMCAxMDgwIDAgNDAgNDAgMCAxMC04MCAweiJ9fV19LG5hbWU6InByb2ZpbGUiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSwxMjYzMDpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjpmdW5jdGlvbihhLG4pe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2eiIsZmlsbDphfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0xODQgODQwaDY1NlYxODRIMTg0djY1NnptMzAwLTQ5NmMwLTQuNCAzLjYtOCA4LThoMTg0YzQuNCAwIDggMy42IDggOHY0OGMwIDQuNC0zLjYgOC04IDhINDkyYy00LjQgMC04LTMuNi04LTh2LTQ4em0wIDE0NGMwLTQuNCAzLjYtOCA4LThoMTg0YzQuNCAwIDggMy42IDggOHY0OGMwIDQuNC0zLjYgOC04IDhINDkyYy00LjQgMC04LTMuNi04LTh2LTQ4em0wIDE0NGMwLTQuNCAzLjYtOCA4LThoMTg0YzQuNCAwIDggMy42IDggOHY0OGMwIDQuNC0zLjYgOC04IDhINDkyYy00LjQgMC04LTMuNi04LTh2LTQ4ek0zODAgMzI4YzIyLjEgMCA0MCAxNy45IDQwIDQwcy0xNy45IDQwLTQwIDQwLTQwLTE3LjktNDAtNDAgMTcuOS00MCA0MC00MHptMCAxNDRjMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDAtNDAtMTcuOS00MC00MCAxNy45LTQwIDQwLTQwem0wIDE0NGMyMi4xIDAgNDAgMTcuOSA0MCA0MHMtMTcuOSA0MC00MCA0MC00MC0xNy45LTQwLTQwIDE3LjktNDAgNDAtNDB6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTM0MCA2NTZhNDAgNDAgMCAxMDgwIDAgNDAgNDAgMCAxMC04MCAwem0wLTE0NGE0MCA0MCAwIDEwODAgMCA0MCA0MCAwIDEwLTgwIDB6bTAtMTQ0YTQwIDQwIDAgMTA4MCAwIDQwIDQwIDAgMTAtODAgMHptMTUyIDMyMGgxODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThINDkyYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4em0wLTE0NGgxODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThINDkyYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4em0wLTE0NGgxODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThINDkyYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4eiIsZmlsbDphfX1dfX0sbmFtZToicHJvZmlsZSIsdGhlbWU6InR3b3RvbmUifTt0LmRlZmF1bHQ9ZX0sODgwNjI6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMzY4IDc0NGMwIDQuNC0zLjYgOC04IDhoLTgwYy00LjQgMC04LTMuNi04LThWMjgwYzAtNC40IDMuNi04IDgtOGg4MGM0LjQgMCA4IDMuNiA4IDh2NDY0em0xOTItMjgwYzAgNC40LTMuNiA4LTggOGgtODBjLTQuNCAwLTgtMy42LTgtOFYyODBjMC00LjQgMy42LTggOC04aDgwYzQuNCAwIDggMy42IDggOHYxODR6bTE5MiA3MmMwIDQuNC0zLjYgOC04IDhoLTgwYy00LjQgMC04LTMuNi04LThWMjgwYzAtNC40IDMuNi04IDgtOGg4MGM0LjQgMCA4IDMuNiA4IDh2MjU2eiJ9fV19LG5hbWU6InByb2plY3QiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sOTA1ODg6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTI4MCA3NTJoODBjNC40IDAgOC0zLjYgOC04VjI4MGMwLTQuNC0zLjYtOC04LThoLTgwYy00LjQgMC04IDMuNi04IDh2NDY0YzAgNC40IDMuNiA4IDggOHptMTkyLTI4MGg4MGM0LjQgMCA4LTMuNiA4LThWMjgwYzAtNC40LTMuNi04LTgtOGgtODBjLTQuNCAwLTggMy42LTggOHYxODRjMCA0LjQgMy42IDggOCA4em0xOTIgNzJoODBjNC40IDAgOC0zLjYgOC04VjI4MGMwLTQuNC0zLjYtOC04LThoLTgwYy00LjQgMC04IDMuNi04IDh2MjU2YzAgNC40IDMuNiA4IDggOHptMjE2LTQzMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNzI4SDE4NFYxODRoNjU2djY1NnoifX1dfSxuYW1lOiJwcm9qZWN0Iix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNjI2MTk6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNzI4SDE4NFYxODRoNjU2djY1NnoiLGZpbGw6YX19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMTg0IDg0MGg2NTZWMTg0SDE4NHY2NTZ6bTQ3Mi01NjBjMC00LjQgMy42LTggOC04aDgwYzQuNCAwIDggMy42IDggOHYyNTZjMCA0LjQtMy42IDgtOCA4aC04MGMtNC40IDAtOC0zLjYtOC04VjI4MHptLTE5MiAwYzAtNC40IDMuNi04IDgtOGg4MGM0LjQgMCA4IDMuNiA4IDh2MTg0YzAgNC40LTMuNiA4LTggOGgtODBjLTQuNCAwLTgtMy42LTgtOFYyODB6bS0xOTIgMGMwLTQuNCAzLjYtOCA4LThoODBjNC40IDAgOCAzLjYgOCA4djQ2NGMwIDQuNC0zLjYgOC04IDhoLTgwYy00LjQgMC04LTMuNi04LThWMjgweiIsZmlsbDpufX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0yODAgNzUyaDgwYzQuNCAwIDgtMy42IDgtOFYyODBjMC00LjQtMy42LTgtOC04aC04MGMtNC40IDAtOCAzLjYtOCA4djQ2NGMwIDQuNCAzLjYgOCA4IDh6bTE5Mi0yODBoODBjNC40IDAgOC0zLjYgOC04VjI4MGMwLTQuNC0zLjYtOC04LThoLTgwYy00LjQgMC04IDMuNi04IDh2MTg0YzAgNC40IDMuNiA4IDggOHptMTkyIDcyaDgwYzQuNCAwIDgtMy42IDgtOFYyODBjMC00LjQtMy42LTgtOC04aC04MGMtNC40IDAtOCAzLjYtOCA4djI1NmMwIDQuNCAzLjYgOCA4IDh6IixmaWxsOmF9fV19fSxuYW1lOiJwcm9qZWN0Iix0aGVtZToidHdvdG9uZSJ9O3QuZGVmYXVsdD1lfSw3ODUwNDpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODY2LjkgMTY5LjlMNTI3LjEgNTQuMUM1MjMgNTIuNyA1MTcuNSA1MiA1MTIgNTJzLTExIC43LTE1LjEgMi4xTDE1Ny4xIDE2OS45Yy04LjMgMi44LTE1LjEgMTIuNC0xNS4xIDIxLjJ2NDgyLjRjMCA4LjggNS43IDIwLjQgMTIuNiAyNS45TDQ5OS4zIDk2OGMzLjUgMi43IDggNC4xIDEyLjYgNC4xczkuMi0xLjQgMTIuNi00LjFsMzQ0LjctMjY4LjZjNi45LTUuNCAxMi42LTE3IDEyLjYtMjUuOVYxOTEuMWMuMi04LjgtNi42LTE4LjMtMTQuOS0yMS4yek02NDguMyAzMzIuOGwtODcuNyAxNjEuMWg0NS43YzUuNSAwIDEwIDQuNSAxMCAxMHYyMS4zYzAgNS41LTQuNSAxMC0xMCAxMGgtNjMuNHYyOS43aDYzLjRjNS41IDAgMTAgNC41IDEwIDEwdjIxLjNjMCA1LjUtNC41IDEwLTEwIDEwaC02My40VjY1OGMwIDUuNS00LjUgMTAtMTAgMTBoLTQxLjNjLTUuNSAwLTEwLTQuNS0xMC0xMHYtNTEuOGgtNjMuMWMtNS41IDAtMTAtNC41LTEwLTEwdi0yMS4zYzAtNS41IDQuNS0xMCAxMC0xMGg2My4xdi0yOS43aC02My4xYy01LjUgMC0xMC00LjUtMTAtMTB2LTIxLjNjMC01LjUgNC41LTEwIDEwLTEwaDQ1LjJsLTg4LTE2MS4xYy0yLjYtNC44LS45LTEwLjkgNC0xMy42IDEuNS0uOCAzLjEtMS4yIDQuOC0xLjJoNDZjMy44IDAgNy4yIDIuMSA4LjkgNS41bDcyLjkgMTQ0LjMgNzMuMi0xNDQuM2ExMCAxMCAwIDAxOC45LTUuNWg0NWM1LjUgMCAxMCA0LjUgMTAgMTAgLjEgMS43LS4zIDMuMy0xLjEgNC44eiJ9fV19LG5hbWU6InByb3BlcnR5LXNhZmV0eSIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw3Nzc4MzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODY2LjkgMTY5LjlMNTI3LjEgNTQuMUM1MjMgNTIuNyA1MTcuNSA1MiA1MTIgNTJzLTExIC43LTE1LjEgMi4xTDE1Ny4xIDE2OS45Yy04LjMgMi44LTE1LjEgMTIuNC0xNS4xIDIxLjJ2NDgyLjRjMCA4LjggNS43IDIwLjQgMTIuNiAyNS45TDQ5OS4zIDk2OGMzLjUgMi43IDggNC4xIDEyLjYgNC4xczkuMi0xLjQgMTIuNi00LjFsMzQ0LjctMjY4LjZjNi45LTUuNCAxMi42LTE3IDEyLjYtMjUuOVYxOTEuMWMuMi04LjgtNi42LTE4LjMtMTQuOS0yMS4yek04MTAgNjU0LjNMNTEyIDg4Ni41IDIxNCA2NTQuM1YyMjYuN2wyOTgtMTAxLjYgMjk4IDEwMS42djQyNy42ek00MzAuNSAzMThoLTQ2Yy0xLjcgMC0zLjMuNC00LjggMS4yYTEwLjEgMTAuMSAwIDAwLTQgMTMuNmw4OCAxNjEuMWgtNDUuMmMtNS41IDAtMTAgNC41LTEwIDEwdjIxLjNjMCA1LjUgNC41IDEwIDEwIDEwaDYzLjF2MjkuN2gtNjMuMWMtNS41IDAtMTAgNC41LTEwIDEwdjIxLjNjMCA1LjUgNC41IDEwIDEwIDEwaDYzLjFWNjU4YzAgNS41IDQuNSAxMCAxMCAxMGg0MS4zYzUuNSAwIDEwLTQuNSAxMC0xMHYtNTEuOGg2My40YzUuNSAwIDEwLTQuNSAxMC0xMHYtMjEuM2MwLTUuNS00LjUtMTAtMTAtMTBoLTYzLjR2LTI5LjdoNjMuNGM1LjUgMCAxMC00LjUgMTAtMTB2LTIxLjNjMC01LjUtNC41LTEwLTEwLTEwaC00NS43bDg3LjctMTYxLjFhMTAuMDUgMTAuMDUgMCAwMC04LjgtMTQuOGgtNDVjLTMuOCAwLTcuMiAyLjEtOC45IDUuNWwtNzMuMiAxNDQuMy03Mi45LTE0NC4zYy0xLjctMy40LTUuMi01LjUtOS01LjV6In19XX0sbmFtZToicHJvcGVydHktc2FmZXR5Iix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sOTAwNjE6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODY2LjkgMTY5LjlMNTI3LjEgNTQuMUM1MjMgNTIuNyA1MTcuNSA1MiA1MTIgNTJzLTExIC43LTE1LjEgMi4xTDE1Ny4xIDE2OS45Yy04LjMgMi44LTE1LjEgMTIuNC0xNS4xIDIxLjJ2NDgyLjRjMCA4LjggNS43IDIwLjQgMTIuNiAyNS45TDQ5OS4zIDk2OGMzLjUgMi43IDggNC4xIDEyLjYgNC4xczkuMi0xLjQgMTIuNi00LjFsMzQ0LjctMjY4LjZjNi45LTUuNCAxMi42LTE3IDEyLjYtMjUuOVYxOTEuMWMuMi04LjgtNi42LTE4LjMtMTQuOS0yMS4yek04MTAgNjU0LjNMNTEyIDg4Ni41IDIxNCA2NTQuM1YyMjYuN2wyOTgtMTAxLjYgMjk4IDEwMS42djQyNy42eiIsZmlsbDphfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0yMTQgMjI2Ljd2NDI3LjZsMjk4IDIzMi4yIDI5OC0yMzIuMlYyMjYuN0w1MTIgMTI1LjEgMjE0IDIyNi43ek01OTMuOSAzMThoNDVjNS41IDAgMTAgNC41IDEwIDEwIC4xIDEuNy0uMyAzLjMtMS4xIDQuOGwtODcuNyAxNjEuMWg0NS43YzUuNSAwIDEwIDQuNSAxMCAxMHYyMS4zYzAgNS41LTQuNSAxMC0xMCAxMGgtNjMuNHYyOS43aDYzLjRjNS41IDAgMTAgNC41IDEwIDEwdjIxLjNjMCA1LjUtNC41IDEwLTEwIDEwaC02My40VjY1OGMwIDUuNS00LjUgMTAtMTAgMTBoLTQxLjNjLTUuNSAwLTEwLTQuNS0xMC0xMHYtNTEuOEg0MThjLTUuNSAwLTEwLTQuNS0xMC0xMHYtMjEuM2MwLTUuNSA0LjUtMTAgMTAtMTBoNjMuMXYtMjkuN0g0MThjLTUuNSAwLTEwLTQuNS0xMC0xMHYtMjEuM2MwLTUuNSA0LjUtMTAgMTAtMTBoNDUuMmwtODgtMTYxLjFjLTIuNi00LjgtLjktMTAuOSA0LTEzLjYgMS41LS44IDMuMS0xLjIgNC44LTEuMmg0NmMzLjggMCA3LjIgMi4xIDguOSA1LjVsNzIuOSAxNDQuM0w1ODUgMzIzLjVhMTAgMTAgMCAwMTguOS01LjV6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQzOC45IDMyMy41YTkuODggOS44OCAwIDAwLTguOS01LjVoLTQ2Yy0xLjcgMC0zLjMuNC00LjggMS4yLTQuOSAyLjctNi42IDguOC00IDEzLjZsODggMTYxLjFINDE4Yy01LjUgMC0xMCA0LjUtMTAgMTB2MjEuM2MwIDUuNSA0LjUgMTAgMTAgMTBoNjMuMXYyOS43SDQxOGMtNS41IDAtMTAgNC41LTEwIDEwdjIxLjNjMCA1LjUgNC41IDEwIDEwIDEwaDYzLjFWNjU4YzAgNS41IDQuNSAxMCAxMCAxMGg0MS4zYzUuNSAwIDEwLTQuNSAxMC0xMHYtNTEuOGg2My40YzUuNSAwIDEwLTQuNSAxMC0xMHYtMjEuM2MwLTUuNS00LjUtMTAtMTAtMTBoLTYzLjR2LTI5LjdoNjMuNGM1LjUgMCAxMC00LjUgMTAtMTB2LTIxLjNjMC01LjUtNC41LTEwLTEwLTEwaC00NS43bDg3LjctMTYxLjFjLjgtMS41IDEuMi0zLjEgMS4xLTQuOCAwLTUuNS00LjUtMTAtMTAtMTBoLTQ1YTEwIDEwIDAgMDAtOC45IDUuNWwtNzMuMiAxNDQuMy03Mi45LTE0NC4zeiIsZmlsbDphfX1dfX0sbmFtZToicHJvcGVydHktc2FmZXR5Iix0aGVtZToidHdvdG9uZSJ9O3QuZGVmYXVsdD1lfSwzNjA1MDpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNzg4IDcwNS45VjE5MmMwLTguOC03LjItMTYtMTYtMTZINjAydi02OC44YzAtNi03LTkuNC0xMS43LTUuN0w0NjIuNyAyMDIuM2E3LjE0IDcuMTQgMCAwMDAgMTEuM2wxMjcuNSAxMDAuOGM0LjcgMy43IDExLjcuNCAxMS43LTUuN1YyNDBoMTE0djQ2NS45Yy00NC4yIDE1LTc2IDU2LjktNzYgMTA2LjEgMCA2MS44IDUwLjIgMTEyIDExMiAxMTJzMTEyLTUwLjIgMTEyLTExMmMuMS00OS4yLTMxLjctOTEtNzUuOS0xMDYuMXpNNzUyIDg2MGE0OC4wMSA0OC4wMSAwIDAxMC05NiA0OC4wMSA0OC4wMSAwIDAxMCA5NnpNMzg0IDIxMmMwLTYxLjgtNTAuMi0xMTItMTEyLTExMnMtMTEyIDUwLjItMTEyIDExMmMwIDQ5LjIgMzEuOCA5MSA3NiAxMDYuMVY3MDZjLTQ0LjIgMTUtNzYgNTYuOS03NiAxMDYuMSAwIDYxLjggNTAuMiAxMTIgMTEyIDExMnMxMTItNTAuMiAxMTItMTEyYzAtNDkuMi0zMS44LTkxLTc2LTEwNi4xVjMxOC4xYzQ0LjItMTUuMSA3Ni01Ni45IDc2LTEwNi4xem0tMTYwIDBhNDguMDEgNDguMDEgMCAwMTk2IDAgNDguMDEgNDguMDEgMCAwMS05NiAwem05NiA2MDBhNDguMDEgNDguMDEgMCAwMS05NiAwIDQ4LjAxIDQ4LjAxIDAgMDE5NiAweiJ9fV19LG5hbWU6InB1bGwtcmVxdWVzdCIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDM1NTc1OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NzguMyAzOTIuMUw2MzEuOSAxNDUuN2MtNi41LTYuNS0xNS05LjctMjMuNS05LjdzLTE3IDMuMi0yMy41IDkuN0w0MjMuOCAzMDYuOWMtMTIuMi0xLjQtMjQuNS0yLTM2LjgtMi03My4yIDAtMTQ2LjQgMjQuMS0yMDYuNSA3Mi4zLTE1LjQgMTIuMy0xNi42IDM1LjQtMi43IDQ5LjRsMTgxLjcgMTgxLjctMjE1LjQgMjE1LjJhMTUuOCAxNS44IDAgMDAtNC42IDkuOGwtMy40IDM3LjJjLS45IDkuNCA2LjYgMTcuNCAxNS45IDE3LjQuNSAwIDEgMCAxLjUtLjFsMzcuMi0zLjRjMy43LS4zIDcuMi0yIDkuOC00LjZsMjE1LjQtMjE1LjQgMTgxLjcgMTgxLjdjNi41IDYuNSAxNSA5LjcgMjMuNSA5LjcgOS43IDAgMTkuMy00LjIgMjUuOS0xMi40IDU2LjMtNzAuMyA3OS43LTE1OC4zIDcwLjItMjQzLjRsMTYxLjEtMTYxLjFjMTIuOS0xMi44IDEyLjktMzMuOCAwLTQ2Ljh6In19XX0sbmFtZToicHVzaHBpbiIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSwxNDA1OTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODc4LjMgMzkyLjFMNjMxLjkgMTQ1LjdjLTYuNS02LjUtMTUtOS43LTIzLjUtOS43cy0xNyAzLjItMjMuNSA5LjdMNDIzLjggMzA2LjljLTEyLjItMS40LTI0LjUtMi0zNi44LTItNzMuMiAwLTE0Ni40IDI0LjEtMjA2LjUgNzIuM2EzMy4yMyAzMy4yMyAwIDAwLTIuNyA0OS40bDE4MS43IDE4MS43LTIxNS40IDIxNS4yYTE1LjggMTUuOCAwIDAwLTQuNiA5LjhsLTMuNCAzNy4yYy0uOSA5LjQgNi42IDE3LjQgMTUuOSAxNy40LjUgMCAxIDAgMS41LS4xbDM3LjItMy40YzMuNy0uMyA3LjItMiA5LjgtNC42bDIxNS40LTIxNS40IDE4MS43IDE4MS43YzYuNSA2LjUgMTUgOS43IDIzLjUgOS43IDkuNyAwIDE5LjMtNC4yIDI1LjktMTIuNCA1Ni4zLTcwLjMgNzkuNy0xNTguMyA3MC4yLTI0My40bDE2MS4xLTE2MS4xYzEyLjktMTIuOCAxMi45LTMzLjggMC00Ni44ek02NjYuMiA1NDkuM2wtMjQuNSAyNC41IDMuOCAzNC40YTI1OS45MiAyNTkuOTIgMCAwMS0zMC40IDE1My45TDI2MiA0MDguOGMxMi45LTcuMSAyNi4zLTEzLjEgNDAuMy0xNy45IDI3LjItOS40IDU1LjctMTQuMSA4NC43LTE0LjEgOS42IDAgMTkuMy41IDI4LjkgMS42bDM0LjQgMy44IDI0LjUtMjQuNUw2MDguNSAyMjQgODAwIDQxNS41IDY2Ni4yIDU0OS4zeiJ9fV19LG5hbWU6InB1c2hwaW4iLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw5NDU1NDpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjpmdW5jdGlvbihhLG4pe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00NzQuOCAzNTcuN2wtMjQuNSAyNC41LTM0LjQtMy44Yy05LjYtMS4xLTE5LjMtMS42LTI4LjktMS42LTI5IDAtNTcuNSA0LjctODQuNyAxNC4xLTE0IDQuOC0yNy40IDEwLjgtNDAuMyAxNy45bDM1My4xIDM1My4zYTI1OS45MiAyNTkuOTIgMCAwMDMwLjQtMTUzLjlsLTMuOC0zNC40IDI0LjUtMjQuNUw4MDAgNDE1LjUgNjA4LjUgMjI0IDQ3NC44IDM1Ny43eiIsZmlsbDpufX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NzguMyAzOTIuMUw2MzEuOSAxNDUuN2MtNi41LTYuNS0xNS05LjctMjMuNS05LjdzLTE3IDMuMi0yMy41IDkuN0w0MjMuOCAzMDYuOWMtMTIuMi0xLjQtMjQuNS0yLTM2LjgtMi03My4yIDAtMTQ2LjQgMjQuMS0yMDYuNSA3Mi4zYTMzLjIzIDMzLjIzIDAgMDAtMi43IDQ5LjRsMTgxLjcgMTgxLjctMjE1LjQgMjE1LjJhMTUuOCAxNS44IDAgMDAtNC42IDkuOGwtMy40IDM3LjJjLS45IDkuNCA2LjYgMTcuNCAxNS45IDE3LjQuNSAwIDEgMCAxLjUtLjFsMzcuMi0zLjRjMy43LS4zIDcuMi0yIDkuOC00LjZsMjE1LjQtMjE1LjQgMTgxLjcgMTgxLjdjNi41IDYuNSAxNSA5LjcgMjMuNSA5LjcgOS43IDAgMTkuMy00LjIgMjUuOS0xMi40IDU2LjMtNzAuMyA3OS43LTE1OC4zIDcwLjItMjQzLjRsMTYxLjEtMTYxLjFjMTIuOS0xMi44IDEyLjktMzMuOCAwLTQ2Ljh6TTY2Ni4yIDU0OS4zbC0yNC41IDI0LjUgMy44IDM0LjRhMjU5LjkyIDI1OS45MiAwIDAxLTMwLjQgMTUzLjlMMjYyIDQwOC44YzEyLjktNy4xIDI2LjMtMTMuMSA0MC4zLTE3LjkgMjcuMi05LjQgNTUuNy0xNC4xIDg0LjctMTQuMSA5LjYgMCAxOS4zLjUgMjguOSAxLjZsMzQuNCAzLjggMjQuNS0yNC41TDYwOC41IDIyNCA4MDAgNDE1LjUgNjY2LjIgNTQ5LjN6IixmaWxsOmF9fV19fSxuYW1lOiJwdXNocGluIix0aGVtZToidHdvdG9uZSJ9O3QuZGVmYXVsdD1lfSw3NDA5ODpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnsiZmlsbC1ydWxlIjoiZXZlbm9kZCIsdmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTU1NSA3OTAuNWEyOC41IDI4LjUgMCAxMDU3IDAgMjguNSAyOC41IDAgMDAtNTcgMG0tMTQzLTU1N2EyOC41IDI4LjUgMCAxMDU3IDAgMjguNSAyOC41IDAgMDAtNTcgMCJ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTgyMS41MiAyOTcuNzFINzI2LjN2LTk1LjIzYzAtNDkuOS00MC41OC05MC40OC05MC40OC05MC40OEgzODguMTljLTQ5LjkgMC05MC40OCA0MC41Ny05MC40OCA5MC40OHY5NS4yM2gtOTUuMjNjLTQ5LjkgMC05MC40OCA0MC41OC05MC40OCA5MC40OHYyNDcuNjJjMCA0OS45IDQwLjU3IDkwLjQ4IDkwLjQ4IDkwLjQ4aDk1LjIzdjk1LjIzYzAgNDkuOSA0MC41OCA5MC40OCA5MC40OCA5MC40OGgyNDcuNjJjNDkuOSAwIDkwLjQ4LTQwLjU3IDkwLjQ4LTkwLjQ4VjcyNi4zaDk1LjIzYzQ5LjkgMCA5MC40OC00MC41OCA5MC40OC05MC40OFYzODguMTljMC00OS45LTQwLjU3LTkwLjQ4LTkwLjQ4LTkwLjQ4TTIwMi40OCA2NjkuMTRhMzMuMzcgMzMuMzcgMCAwMS0zMy4zNC0zMy4zM1YzODguMTlhMzMuMzcgMzMuMzcgMCAwMTMzLjM0LTMzLjMzaDI3OC41N2EyOC41MyAyOC41MyAwIDAwMjguNTctMjguNTcgMjguNTMgMjguNTMgMCAwMC0yOC41Ny0yOC41OGgtMTI2LjJ2LTk1LjIzYTMzLjM3IDMzLjM3IDAgMDEzMy4zNC0zMy4zNGgyNDcuNjJhMzMuMzcgMzMuMzcgMCAwMTMzLjMzIDMzLjM0djI1Ni40N2EyNC40NyAyNC40NyAwIDAxLTI0LjQ3IDI0LjQ4SDM3OS4zM2MtNDUuMDQgMC04MS42MiAzNi42Ni04MS42MiA4MS42MnYxMDQuMXptNjUyLjM4LTMzLjMzYTMzLjM3IDMzLjM3IDAgMDEtMzMuMzQgMzMuMzNINTQyLjk1YTI4LjUzIDI4LjUzIDAgMDAtMjguNTcgMjguNTcgMjguNTMgMjguNTMgMCAwMDI4LjU3IDI4LjU4aDEyNi4ydjk1LjIzYTMzLjM3IDMzLjM3IDAgMDEtMzMuMzQgMzMuMzRIMzg4LjE5YTMzLjM3IDMzLjM3IDAgMDEtMzMuMzMtMzMuMzRWNTY1LjA1YTI0LjQ3IDI0LjQ3IDAgMDEyNC40Ny0yNC40OGgyNjUuMzRjNDUuMDQgMCA4MS42Mi0zNi42NyA4MS42Mi04MS42MnYtMTA0LjFoOTUuMjNhMzMuMzcgMzMuMzcgMCAwMTMzLjM0IDMzLjM0eiJ9fV19LG5hbWU6InB5dGhvbiIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDEwOTk5OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMjEwLjUgNjEyLjRjLTExLjUgMS40LTQ0LjktNTIuNy00NC45LTUyLjcgMCAzMS4zLTE2LjIgNzIuMi01MS4xIDEwMS44IDE2LjkgNS4yIDU0LjkgMTkuMiA0NS45IDM0LjQtNy4zIDEyLjMtMTI1LjYgNy45LTE1OS44IDQtMzQuMiAzLjgtMTUyLjUgOC4zLTE1OS44LTQtOS4xLTE1LjIgMjguOS0yOS4yIDQ1LjgtMzQuNC0zNS0yOS41LTUxLjEtNzAuNC01MS4xLTEwMS44IDAgMC0zMy40IDU0LjEtNDQuOSA1Mi43LTUuNC0uNy0xMi40LTI5LjYgOS40LTk5LjcgMTAuMy0zMyAyMi02MC41IDQwLjItMTA1LjgtMy4xLTExNi45IDQ1LjMtMjE1IDE2MC40LTIxNSAxMTMuOSAwIDE2My4zIDk2LjEgMTYwLjQgMjE1IDE4LjEgNDUuMiAyOS45IDcyLjggNDAuMiAxMDUuOCAyMS43IDcwLjEgMTQuNiA5OS4xIDkuMyA5OS43eiJ9fV19LG5hbWU6InFxLWNpcmNsZSIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw4ODEzMzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODI0LjggNjEzLjJjLTE2LTUxLjQtMzQuNC05NC42LTYyLjctMTY1LjNDNzY2LjUgMjYyLjIgNjg5LjMgMTEyIDUxMS41IDExMiAzMzEuNyAxMTIgMjU2LjIgMjY1LjIgMjYxIDQ0Ny45Yy0yOC40IDcwLjgtNDYuNyAxMTMuNy02Mi43IDE2NS4zLTM0IDEwOS41LTIzIDE1NC44LTE0LjYgMTU1LjggMTggMi4yIDcwLjEtODIuNCA3MC4xLTgyLjQgMCA0OSAyNS4yIDExMi45IDc5LjggMTU5LTI2LjQgOC4xLTg1LjcgMjkuOS03MS42IDUzLjggMTEuNCAxOS4zIDE5Ni4yIDEyLjMgMjQ5LjUgNi4zIDUzLjMgNiAyMzguMSAxMyAyNDkuNS02LjMgMTQuMS0yMy44LTQ1LjMtNDUuNy03MS42LTUzLjggNTQuNi00Ni4yIDc5LjgtMTEwLjEgNzkuOC0xNTkgMCAwIDUyLjEgODQuNiA3MC4xIDgyLjQgOC41LTEuMSAxOS41LTQ2LjQtMTQuNS0xNTUuOHoifX1dfSxuYW1lOiJxcSIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDI0OTkzOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTcyMi41IDY3Ni40Yy0xMS41IDEuNC00NC45LTUyLjctNDQuOS01Mi43IDAgMzEuMy0xNi4yIDcyLjItNTEuMSAxMDEuOCAxNi45IDUuMiA1NC45IDE5LjIgNDUuOSAzNC40LTcuMyAxMi4zLTEyNS42IDcuOS0xNTkuOCA0LTM0LjIgMy44LTE1Mi41IDguMy0xNTkuOC00LTkuMS0xNS4yIDI4LjktMjkuMiA0NS44LTM0LjQtMzUtMjkuNS01MS4xLTcwLjQtNTEuMS0xMDEuOCAwIDAtMzMuNCA1NC4xLTQ0LjkgNTIuNy01LjQtLjctMTIuNC0yOS42IDkuNC05OS43IDEwLjMtMzMgMjItNjAuNSA0MC4yLTEwNS44LTMuMS0xMTYuOSA0NS4zLTIxNSAxNjAuNC0yMTUgMTEzLjkgMCAxNjMuMyA5Ni4xIDE2MC40IDIxNSAxOC4xIDQ1LjIgMjkuOSA3Mi44IDQwLjIgMTA1LjggMjEuNyA3MC4xIDE0LjYgOTkuMSA5LjMgOTkuN3oifX1dfSxuYW1lOiJxcS1zcXVhcmUiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sNDI1MjY6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQ2OCAxMjhIMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnYzMDhjMCA0LjQgMy42IDggOCA4aDMzMmM0LjQgMCA4LTMuNiA4LThWMTM2YzAtNC40LTMuNi04LTgtOHptLTU2IDI4NEgxOTJWMTkyaDIyMHYyMjB6bS0xMzgtNzRoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em0xOTQgMjEwSDEzNmMtNC40IDAtOCAzLjYtOCA4djMwOGMwIDE3LjcgMTQuMyAzMiAzMiAzMmgzMDhjNC40IDAgOC0zLjYgOC04VjU1NmMwLTQuNC0zLjYtOC04LTh6bS01NiAyODRIMTkyVjYxMmgyMjB2MjIwem0tMTM4LTc0aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptNTkwLTYzMEg1NTZjLTQuNCAwLTggMy42LTggOHYzMzJjMCA0LjQgMy42IDggOCA4aDMzMmM0LjQgMCA4LTMuNiA4LThWMTYwYzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tMzIgMjg0SDYxMlYxOTJoMjIwdjIyMHptLTEzOC03NGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6bTE5NCAyMTBoLTQ4Yy00LjQgMC04IDMuNi04IDh2MTM0aC03OFY1NTZjMC00LjQtMy42LTgtOC04SDU1NmMtNC40IDAtOCAzLjYtOCA4djMzMmMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04VjY0NGg3OHYxMDJjMCA0LjQgMy42IDggOCA4aDE5MGM0LjQgMCA4LTMuNiA4LThWNTU2YzAtNC40LTMuNi04LTgtOHpNNzQ2IDgzMmgtNDhjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6bTE0MiAwaC00OGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOHoifX1dfSxuYW1lOiJxcmNvZGUiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw3OTQ0OTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgNzA4Yy0yMi4xIDAtNDAtMTcuOS00MC00MHMxNy45LTQwIDQwLTQwIDQwIDE3LjkgNDAgNDAtMTcuOSA0MC00MCA0MHptNjIuOS0yMTkuNWE0OC4zIDQ4LjMgMCAwMC0zMC45IDQ0LjhWNjIwYzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOHYtMjEuNWMwLTIzLjEgNi43LTQ1LjkgMTkuOS02NC45IDEyLjktMTguNiAzMC45LTMyLjggNTIuMS00MC45IDM0LTEzLjEgNTYtNDEuNiA1Ni03Mi43IDAtNDQuMS00My4xLTgwLTk2LTgwcy05NiAzNS45LTk2IDgwdjcuNmMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LThWNDIwYzAtMzkuMyAxNy4yLTc2IDQ4LjQtMTAzLjNDNDMwLjQgMjkwLjQgNDcwIDI3NiA1MTIgMjc2czgxLjYgMTQuNSAxMTEuNiA0MC43QzY1NC44IDM0NCA2NzIgMzgwLjcgNjcyIDQyMGMwIDU3LjgtMzguMSAxMDkuOC05Ny4xIDEzMi41eiJ9fV19LG5hbWU6InF1ZXN0aW9uLWNpcmNsZSIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSwzNDYwNzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeiJ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTYyMy42IDMxNi43QzU5My42IDI5MC40IDU1NCAyNzYgNTEyIDI3NnMtODEuNiAxNC41LTExMS42IDQwLjdDMzY5LjIgMzQ0IDM1MiAzODAuNyAzNTIgNDIwdjcuNmMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04VjQyMGMwLTQ0LjEgNDMuMS04MCA5Ni04MHM5NiAzNS45IDk2IDgwYzAgMzEuMS0yMiA1OS42LTU2LjEgNzIuNy0yMS4yIDguMS0zOS4yIDIyLjMtNTIuMSA0MC45LTEzLjEgMTktMTkuOSA0MS44LTE5LjkgNjQuOVY2MjBjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOHYtMjIuN2E0OC4zIDQ4LjMgMCAwMTMwLjktNDQuOGM1OS0yMi43IDk3LjEtNzQuNyA5Ny4xLTEzMi41LjEtMzkuMy0xNy4xLTc2LTQ4LjMtMTAzLjN6TTQ3MiA3MzJhNDAgNDAgMCAxMDgwIDAgNDAgNDAgMCAxMC04MCAweiJ9fV19LG5hbWU6InF1ZXN0aW9uLWNpcmNsZSIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDI1MTUyOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOmZ1bmN0aW9uKGEsbil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnoiLGZpbGw6YX19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDE0MGMtMjA1LjQgMC0zNzIgMTY2LjYtMzcyIDM3MnMxNjYuNiAzNzIgMzcyIDM3MiAzNzItMTY2LjYgMzcyLTM3Mi0xNjYuNi0zNzItMzcyLTM3MnptMCA2MzJjLTIyLjEgMC00MC0xNy45LTQwLTQwczE3LjktNDAgNDAtNDAgNDAgMTcuOSA0MCA0MC0xNy45IDQwLTQwIDQwem02Mi45LTIxOS41YTQ4LjMgNDguMyAwIDAwLTMwLjkgNDQuOFY2MjBjMCA0LjQtMy42IDgtOCA4aC00OGMtNC40IDAtOC0zLjYtOC04di0yMS41YzAtMjMuMSA2LjctNDUuOSAxOS45LTY0LjkgMTIuOS0xOC42IDMwLjktMzIuOCA1Mi4xLTQwLjkgMzQtMTMuMSA1Ni00MS42IDU2LTcyLjcgMC00NC4xLTQzLjEtODAtOTYtODBzLTk2IDM1LjktOTYgODB2Ny42YzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOFY0MjBjMC0zOS4zIDE3LjItNzYgNDguNC0xMDMuM0M0MzAuNCAyOTAuNCA0NzAgMjc2IDUxMiAyNzZzODEuNiAxNC41IDExMS42IDQwLjdDNjU0LjggMzQ0IDY3MiAzODAuNyA2NzIgNDIwYzAgNTcuOC0zOC4xIDEwOS44LTk3LjEgMTMyLjV6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQ3MiA3MzJhNDAgNDAgMCAxMDgwIDAgNDAgNDAgMCAxMC04MCAwem0xNTEuNi00MTUuM0M1OTMuNiAyOTAuNSA1NTQgMjc2IDUxMiAyNzZzLTgxLjYgMTQuNC0xMTEuNiA0MC43QzM2OS4yIDM0NCAzNTIgMzgwLjcgMzUyIDQyMHY3LjZjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOFY0MjBjMC00NC4xIDQzLjEtODAgOTYtODBzOTYgMzUuOSA5NiA4MGMwIDMxLjEtMjIgNTkuNi01NiA3Mi43LTIxLjIgOC4xLTM5LjIgMjIuMy01Mi4xIDQwLjktMTMuMiAxOS0xOS45IDQxLjgtMTkuOSA2NC45VjYyMGMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04di0yMi43YTQ4LjMgNDguMyAwIDAxMzAuOS00NC44YzU5LTIyLjcgOTcuMS03NC43IDk3LjEtMTMyLjUgMC0zOS4zLTE3LjItNzYtNDguNC0xMDMuM3oiLGZpbGw6YX19XX19LG5hbWU6InF1ZXN0aW9uLWNpcmNsZSIsdGhlbWU6InR3b3RvbmUifTt0LmRlZmF1bHQ9ZX0sODM0ODc6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTc2NCAyODAuOWMtMTQtMzAuNi0zMy45LTU4LjEtNTkuMy04MS42QzY1My4xIDE1MS40IDU4NC42IDEyNSA1MTIgMTI1cy0xNDEuMSAyNi40LTE5Mi43IDc0LjJjLTI1LjQgMjMuNi00NS4zIDUxLTU5LjMgODEuNy0xNC42IDMyLTIyIDY1LjktMjIgMTAwLjl2MjdjMCA2LjIgNSAxMS4yIDExLjIgMTEuMmg1NGM2LjIgMCAxMS4yLTUgMTEuMi0xMS4ydi0yN2MwLTk5LjUgODguNi0xODAuNCAxOTcuNi0xODAuNHMxOTcuNiA4MC45IDE5Ny42IDE4MC40YzAgNDAuOC0xNC41IDc5LjItNDIgMTExLjItMjcuMiAzMS43LTY1LjYgNTQuNC0xMDguMSA2NC0yNC4zIDUuNS00Ni4yIDE5LjItNjEuNyAzOC44YTExMC44NSAxMTAuODUgMCAwMC0yMy45IDY4LjZ2MzEuNGMwIDYuMiA1IDExLjIgMTEuMiAxMS4yaDU0YzYuMiAwIDExLjItNSAxMS4yLTExLjJ2LTMxLjRjMC0xNS43IDEwLjktMjkuNSAyNi0zMi45IDU4LjQtMTMuMiAxMTEuNC00NC43IDE0OS4zLTg4LjcgMTkuMS0yMi4zIDM0LTQ3LjEgNDQuMy03NCAxMC43LTI3LjkgMTYuMS01Ny4yIDE2LjEtODcgMC0zNS03LjQtNjktMjItMTAwLjl6TTUxMiA3ODdjLTMwLjkgMC01NiAyNS4xLTU2IDU2czI1LjEgNTYgNTYgNTYgNTYtMjUuMSA1Ni01Ni0yNS4xLTU2LTU2LTU2eiJ9fV19LG5hbWU6InF1ZXN0aW9uIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sMjg0NDU6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkyNi44IDM5Ny4xbC0zOTYtMjg4YTMxLjgxIDMxLjgxIDAgMDAtMzcuNiAwbC0zOTYgMjg4YTMxLjk5IDMxLjk5IDAgMDAtMTEuNiAzNS44bDE1MS4zIDQ2NmEzMiAzMiAwIDAwMzAuNCAyMi4xaDQ4OS41YzEzLjkgMCAyNi4xLTguOSAzMC40LTIyLjFsMTUxLjMtNDY2YzQuMi0xMy4yLS41LTI3LjYtMTEuNy0zNS44ek04MzguNiA0MTdsLTk4LjUgMzItMjAwLTE0NC43VjE5OS45TDgzOC42IDQxN3pNNDY2IDU2Ny4ybC04OS4xIDEyMi4zLTU1LjItMTY5LjJMNDY2IDU2Ny4yem0tMTE2LjMtOTYuOEw0ODQgMzczLjN2MTQwLjhsLTEzNC4zLTQzLjd6TTUxMiA1OTkuMmw5My45IDEyOC45SDQxOC4xTDUxMiA1OTkuMnptMjguMS0yMjUuOWwxMzQuMiA5Ny4xTDU0MC4xIDUxNFYzNzMuM3pNNTU4IDU2Ny4ybDE0NC4zLTQ2LjktNTUuMiAxNjkuMkw1NTggNTY3LjJ6bS03NC0zNjcuM3YxMDQuNEwyODMuOSA0NDlsLTk4LjUtMzJMNDg0IDE5OS45ek0xNjkuMyA0NzAuOGw4Ni41IDI4LjEgODAuNCAyNDYuNC01My44IDczLjktMTEzLjEtMzQ4LjR6TTMyNy4xIDg1M2w1MC4zLTY5aDI2OS4zbDUwLjMgNjlIMzI3LjF6bTQxNC41LTMzLjhsLTUzLjgtNzMuOSA4MC40LTI0Ni40IDg2LjUtMjguMS0xMTMuMSAzNDguNHoifX1dfSxuYW1lOiJyYWRhci1jaGFydCIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDUwNjQwOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik03MTIgODI0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMi02OTZoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04ek0xMzYgMzc0aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptMC0xNzRoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em03NTIgNjI0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC0xNzRoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wLTE3NGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtMTc0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC0xNzRoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0tMzQ4IDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0tMjMwIDcyaDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptMjMwIDYyNEgzNThjLTg3LjMgMC0xNTgtNzAuNy0xNTgtMTU4VjQ4NGMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2MTgyYzAgMTI3IDEwMyAyMzAgMjMwIDIzMGgxODJjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6In19XX0sbmFtZToicmFkaXVzLWJvdHRvbWxlZnQiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw5NzAyNzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMzY4IDgyNGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS01OC02MjRoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em01NzggMTAyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC0xNzRoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04ek0xOTIgODI0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC0xNzRoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wLTE3NGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtMTc0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC0xNzRoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0yOTIgNzJoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em0xNzQgMGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6bTIzMCAyNzZoLTU2Yy00LjQgMC04IDMuNi04IDh2MTgyYzAgODcuMy03MC43IDE1OC0xNTggMTU4SDQ4NGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGgxODJjMTI3IDAgMjMwLTEwMyAyMzAtMjMwVjQ4NGMwLTQuNC0zLjYtOC04LTh6In19XX0sbmFtZToicmFkaXVzLWJvdHRvbXJpZ2h0Iix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sOTg3MDE6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTM5NiAxNDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0tNDQgNjg0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptNTI0LTIwNGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6TTE5MiAzNDRoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wIDE2MGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgMTYwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCAxNjBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0zMjAgMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTE2MCAwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMTQwLTI4NGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04VjM3MGMwLTEyNy0xMDMtMjMwLTIzMC0yMzBINDg0Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDE3MGM4Ny4zIDAgMTU4IDcwLjcgMTU4IDE1OHYxNzB6TTIzNiA5Nkg5MmMtNC40IDAtOCAzLjYtOCA4djE0NGMwIDQuNCAzLjYgOCA4IDhoMTQ0YzQuNCAwIDgtMy42IDgtOFYxMDRjMC00LjQtMy42LTgtOC04em0tNDggMTAxLjZjMCAxLjMtMS4xIDIuNC0yLjQgMi40aC00My4yYy0xLjMgMC0yLjQtMS4xLTIuNC0yLjR2LTQzLjJjMC0xLjMgMS4xLTIuNCAyLjQtMi40aDQzLjJjMS4zIDAgMi40IDEuMSAyLjQgMi40djQzLjJ6TTkyMCA3ODBINzc2Yy00LjQgMC04IDMuNi04IDh2MTQ0YzAgNC40IDMuNiA4IDggOGgxNDRjNC40IDAgOC0zLjYgOC04Vjc4OGMwLTQuNC0zLjYtOC04LTh6bS00OCAxMDEuNmMwIDEuMy0xLjEgMi40LTIuNCAyLjRoLTQzLjJjLTEuMyAwLTIuNC0xLjEtMi40LTIuNHYtNDMuMmMwLTEuMyAxLjEtMi40IDIuNC0yLjRoNDMuMmMxLjMgMCAyLjQgMS4xIDIuNCAyLjR2NDMuMnoifX1dfSxuYW1lOiJyYWRpdXMtc2V0dGluZyIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDgxOTMwOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02NTYgMjAwaDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptNTggNjI0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNMTkyIDY1MGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgMTc0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptNjk2LTY5NmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgMTc0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCAxNzRoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wIDE3NGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgMTc0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptLTM0OCAwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptLTE3NCAwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMTc0LTY5NkgzNThjLTEyNyAwLTIzMCAxMDMtMjMwIDIzMHYxODJjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFYzNThjMC04Ny4zIDcwLjctMTU4IDE1OC0xNThoMTgyYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04eiJ9fV19LG5hbWU6InJhZGl1cy11cGxlZnQiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw1ODMwOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0zNjggMTI4aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptLTIgNjk2aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptNTIyLTE3NGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgMTc0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNMTkyIDEyOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgMTc0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCAxNzRoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wIDE3NGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgMTc0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMzQ4IDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0xNzQgMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS00OC02OTZINDg0Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDE4MmM4Ny4zIDAgMTU4IDcwLjcgMTU4IDE1OHYxODJjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFYzNThjMC0xMjctMTAzLTIzMC0yMzAtMjMweiJ9fV19LG5hbWU6InJhZGl1cy11cHJpZ2h0Iix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNjY2MTg6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkyOCAxNjFINjk5LjJjLTQ5LjEgMC05Ny4xIDE0LjEtMTM4LjQgNDAuN0w1MTIgMjMzbC00OC44LTMxLjNBMjU1LjIgMjU1LjIgMCAwMDMyNC44IDE2MUg5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NTY4YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDIyOC44YzQ5LjEgMCA5Ny4xIDE0LjEgMTM4LjQgNDAuN2w0NC40IDI4LjZjMS4zLjggMi44IDEuMyA0LjMgMS4zczMtLjQgNC4zLTEuM2w0NC40LTI4LjZDNjAyIDgwNy4xIDY1MC4xIDc5MyA2OTkuMiA3OTNIOTI4YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE5M2MwLTE3LjctMTQuMy0zMi0zMi0zMnpNNDA0IDU1My41YzAgNC4xLTMuMiA3LjUtNy4xIDcuNUgyMTEuMWMtMy45IDAtNy4xLTMuNC03LjEtNy41di00NWMwLTQuMSAzLjItNy41IDcuMS03LjVoMTg1LjdjMy45IDAgNy4xIDMuNCA3LjEgNy41djQ1em0wLTE0MGMwIDQuMS0zLjIgNy41LTcuMSA3LjVIMjExLjFjLTMuOSAwLTcuMS0zLjQtNy4xLTcuNXYtNDVjMC00LjEgMy4yLTcuNSA3LjEtNy41aDE4NS43YzMuOSAwIDcuMSAzLjQgNy4xIDcuNXY0NXptNDE2IDE0MGMwIDQuMS0zLjIgNy41LTcuMSA3LjVINjI3LjFjLTMuOSAwLTcuMS0zLjQtNy4xLTcuNXYtNDVjMC00LjEgMy4yLTcuNSA3LjEtNy41aDE4NS43YzMuOSAwIDcuMSAzLjQgNy4xIDcuNXY0NXptMC0xNDBjMCA0LjEtMy4yIDcuNS03LjEgNy41SDYyNy4xYy0zLjkgMC03LjEtMy40LTcuMS03LjV2LTQ1YzAtNC4xIDMuMi03LjUgNy4xLTcuNWgxODUuN2MzLjkgMCA3LjEgMy40IDcuMSA3LjV2NDV6In19XX0sbmFtZToicmVhZCIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw1MjY4MzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTI4IDE2MUg2OTkuMmMtNDkuMSAwLTk3LjEgMTQuMS0xMzguNCA0MC43TDUxMiAyMzNsLTQ4LjgtMzEuM0EyNTUuMiAyNTUuMiAwIDAwMzI0LjggMTYxSDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY1NjhjMCAxNy43IDE0LjMgMzIgMzIgMzJoMjI4LjhjNDkuMSAwIDk3LjEgMTQuMSAxMzguNCA0MC43bDQ0LjQgMjguNmMxLjMuOCAyLjggMS4zIDQuMyAxLjNzMy0uNCA0LjMtMS4zbDQ0LjQtMjguNkM2MDIgODA3LjEgNjUwLjEgNzkzIDY5OS4yIDc5M0g5MjhjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTkzYzAtMTcuNy0xNC4zLTMyLTMyLTMyek0zMjQuOCA3MjFIMTM2VjIzM2gxODguOGMzNS40IDAgNjkuOCAxMC4xIDk5LjUgMjkuMmw0OC44IDMxLjMgNi45IDQuNXY0NjJjLTQ3LjYtMjUuNi0xMDAuOC0zOS0xNTUuMi0zOXptNTYzLjIgMEg2OTkuMmMtNTQuNCAwLTEwNy42IDEzLjQtMTU1LjIgMzlWMjk4bDYuOS00LjUgNDguOC0zMS4zYzI5LjctMTkuMSA2NC4xLTI5LjIgOTkuNS0yOS4ySDg4OHY0ODh6TTM5Ni45IDM2MUgyMTEuMWMtMy45IDAtNy4xIDMuNC03LjEgNy41djQ1YzAgNC4xIDMuMiA3LjUgNy4xIDcuNWgxODUuN2MzLjkgMCA3LjEtMy40IDcuMS03LjV2LTQ1Yy4xLTQuMS0zLjEtNy41LTctNy41em0yMjMuMSA3LjV2NDVjMCA0LjEgMy4yIDcuNSA3LjEgNy41aDE4NS43YzMuOSAwIDcuMS0zLjQgNy4xLTcuNXYtNDVjMC00LjEtMy4yLTcuNS03LjEtNy41SDYyNy4xYy0zLjkgMC03LjEgMy40LTcuMSA3LjV6TTM5Ni45IDUwMUgyMTEuMWMtMy45IDAtNy4xIDMuNC03LjEgNy41djQ1YzAgNC4xIDMuMiA3LjUgNy4xIDcuNWgxODUuN2MzLjkgMCA3LjEtMy40IDcuMS03LjV2LTQ1Yy4xLTQuMS0zLjEtNy41LTctNy41em00MTYgMEg2MjcuMWMtMy45IDAtNy4xIDMuNC03LjEgNy41djQ1YzAgNC4xIDMuMiA3LjUgNy4xIDcuNWgxODUuN2MzLjkgMCA3LjEtMy40IDcuMS03LjV2LTQ1Yy4xLTQuMS0zLjEtNy41LTctNy41eiJ9fV19LG5hbWU6InJlYWQiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw1NTY5ODpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNjc2IDYyM2MtMTguOCAwLTM0IDE1LjItMzQgMzRzMTUuMiAzNCAzNCAzNCAzNC0xNS4yIDM0LTM0LTE1LjItMzQtMzQtMzR6bTIwNC00NTVINjY4YzAtMzAuOS0yNS4xLTU2LTU2LTU2aC04MGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZIMjY0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYyMDBoLTg4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJoMzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMydi0xNmgzNjhjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjAwYzAtMTcuNy0xNC4zLTMyLTMyLTMyek00NDggODQ4SDE3NlY2MTZoMjcydjIzMnptMC0yOTZIMTc2di04OGgyNzJ2ODh6bTIwLTI3MnYtNDhoNzJ2LTU2aDY0djU2aDcydjQ4SDQ2OHptMTgwIDE2OHY1NmMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LTh2LTU2YzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh6bTI4IDMwMWMtNTAuOCAwLTkyLTQxLjItOTItOTJzNDEuMi05MiA5Mi05MiA5MiA0MS4yIDkyIDkyLTQxLjIgOTItOTIgOTJ6bTkyLTI0NWMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LTh2LTk2YzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh2OTZ6bS05MiA2MWMtNTAuOCAwLTkyIDQxLjItOTIgOTJzNDEuMiA5MiA5MiA5MiA5Mi00MS4yIDkyLTkyLTQxLjItOTItOTItOTJ6bTAgMTI2Yy0xOC44IDAtMzQtMTUuMi0zNC0zNHMxNS4yLTM0IDM0LTM0IDM0IDE1LjIgMzQgMzQtMTUuMiAzNC0zNCAzNHoifX1dfSxuYW1lOiJyZWNvbmNpbGlhdGlvbiIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw0NzgxOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02NzYgNTY1Yy01MC44IDAtOTIgNDEuMi05MiA5MnM0MS4yIDkyIDkyIDkyIDkyLTQxLjIgOTItOTItNDEuMi05Mi05Mi05MnptMCAxMjZjLTE4LjggMC0zNC0xNS4yLTM0LTM0czE1LjItMzQgMzQtMzQgMzQgMTUuMiAzNCAzNC0xNS4yIDM0LTM0IDM0em0yMDQtNTIzSDY2OGMwLTMwLjktMjUuMS01Ni01Ni01NmgtODBjLTMwLjkgMC01NiAyNS4xLTU2IDU2SDI2NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MjAwaC04OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDMzNmMxNy43IDAgMzItMTQuMyAzMi0zMnYtMTZoMzY4YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjIwMGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQxMiA2NGg3MnYtNTZoNjR2NTZoNzJ2NDhINDY4di00OHptLTIwIDYxNkgxNzZWNjE2aDI3MnYyMzJ6bTAtMjk2SDE3NnYtODhoMjcydjg4em0zOTIgMjQwSDUxMlY0MzJjMC0xNy43LTE0LjMtMzItMzItMzJIMzA0VjI0MGgxMDB2MTA0aDMzNlYyNDBoMTAwdjU1MnpNNzA0IDQwOHY5NmMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04di05NmMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh6TTU5MiA1MTJoNDhjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4eiJ9fV19LG5hbWU6InJlY29uY2lsaWF0aW9uIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sMTcyODc6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNzQwIDM0NEg0MDRWMjQwSDMwNHYxNjBoMTc2YzE3LjcgMCAzMiAxNC4zIDMyIDMydjM2MGgzMjhWMjQwSDc0MHYxMDR6TTU4NCA0NDhjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHY1NmMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LTh2LTU2em05MiAzMDFjLTUwLjggMC05Mi00MS4yLTkyLTkyczQxLjItOTIgOTItOTIgOTIgNDEuMiA5MiA5Mi00MS4yIDkyLTkyIDkyem05Mi0zNDF2OTZjMCA0LjQtMy42IDgtOCA4aC00OGMtNC40IDAtOC0zLjYtOC04di05NmMwLTQuNCAzLjYtOCA4LThoNDhjNC40IDAgOCAzLjYgOCA4eiIsZmlsbDpufX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02NDIgNjU3YTM0IDM0IDAgMTA2OCAwIDM0IDM0IDAgMTAtNjggMHoiLGZpbGw6bn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTkyIDUxMmg0OGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtNDhjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6bTExMi0xMDR2OTZjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOHYtOTZjMC00LjQtMy42LTgtOC04aC00OGMtNC40IDAtOCAzLjYtOCA4eiIsZmlsbDphfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMTY4SDY2OGMwLTMwLjktMjUuMS01Ni01Ni01NmgtODBjLTMwLjkgMC01NiAyNS4xLTU2IDU2SDI2NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MjAwaC04OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDMzNmMxNy43IDAgMzItMTQuMyAzMi0zMnYtMTZoMzY4YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjIwMGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQxMiA2NGg3MnYtNTZoNjR2NTZoNzJ2NDhINDY4di00OHptLTIwIDYxNkgxNzZWNjE2aDI3MnYyMzJ6bTAtMjk2SDE3NnYtODhoMjcydjg4em0zOTIgMjQwSDUxMlY0MzJjMC0xNy43LTE0LjMtMzItMzItMzJIMzA0VjI0MGgxMDB2MTA0aDMzNlYyNDBoMTAwdjU1MnoiLGZpbGw6YX19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNjc2IDU2NWMtNTAuOCAwLTkyIDQxLjItOTIgOTJzNDEuMiA5MiA5MiA5MiA5Mi00MS4yIDkyLTkyLTQxLjItOTItOTItOTJ6bTAgMTI2Yy0xOC44IDAtMzQtMTUuMi0zNC0zNHMxNS4yLTM0IDM0LTM0IDM0IDE1LjIgMzQgMzQtMTUuMiAzNC0zNCAzNHoiLGZpbGw6YX19XX19LG5hbWU6InJlY29uY2lsaWF0aW9uIix0aGVtZToidHdvdG9uZSJ9O3QuZGVmYXVsdD1lfSw5MzY3OTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODMyIDY0SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlY5NmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNjQ3IDQ3MC40bC04Ny4yIDE2MWg0NS45YzQuNiAwIDguNCAzLjggOC40IDguNHYyNS4xYzAgNC42LTMuOCA4LjQtOC40IDguNGgtNjMuM3YyOC42aDYzLjNjNC42IDAgOC40IDMuOCA4LjQgOC40djI1Yy4yIDQuNi0zLjYgOC41LTguMiA4LjVoLTYzLjN2NDkuOWMwIDQuNi0zLjggOC40LTguNCA4LjRoLTQzLjdjLTQuNiAwLTguNC0zLjgtOC40LTguNHYtNDkuOWgtNjNjLTQuNiAwLTguNC0zLjgtOC40LTguNHYtMjUuMWMwLTQuNiAzLjgtOC40IDguNC04LjRoNjN2LTI4LjZoLTYzYy00LjYgMC04LjQtMy44LTguNC04LjR2LTI1LjFjMC00LjYgMy44LTguNCA4LjQtOC40aDQ1LjRsLTg3LjUtMTYxYy0yLjItNC4xLS43LTkuMSAzLjQtMTEuNCAxLjMtLjYgMi42LTEgMy45LTFoNDguOGMzLjIgMCA2LjEgMS44IDcuNSA0LjZsNzEuOSAxNDEuOCA3MS45LTE0MS45YTguNSA4LjUgMCAwMTcuNS00LjZoNDcuOGM0LjYgMCA4LjQgMy44IDguNCA4LjQtLjEgMS41LS41IDIuOS0xLjEgNC4xek01MTIuNiAzMjNMMjg5IDE0OGg0NDZMNTEyLjYgMzIzeiJ9fV19LG5hbWU6InJlZC1lbnZlbG9wZSIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSwyOTk2MjpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNDQwLjYgNDYyLjZhOC4zOCA4LjM4IDAgMDAtNy41LTQuNmgtNDguOGMtMS4zIDAtMi42LjQtMy45IDFhOC40IDguNCAwIDAwLTMuNCAxMS40bDg3LjQgMTYxLjFINDE5Yy00LjYgMC04LjQgMy44LTguNCA4LjRWNjY1YzAgNC42IDMuOCA4LjQgOC40IDguNGg2M1Y3MDJoLTYzYy00LjYgMC04LjQgMy44LTguNCA4LjR2MjUuMWMwIDQuNiAzLjggOC40IDguNCA4LjRoNjN2NDkuOWMwIDQuNiAzLjggOC40IDguNCA4LjRoNDMuN2M0LjYgMCA4LjQtMy44IDguNC04LjR2LTQ5LjloNjMuM2M0LjcgMCA4LjQtMy44IDguMi04LjV2LTI1YzAtNC42LTMuOC04LjQtOC40LTguNGgtNjMuM3YtMjguNmg2My4zYzQuNiAwIDguNC0zLjggOC40LTguNHYtMjUuMWMwLTQuNi0zLjgtOC40LTguNC04LjRoLTQ1LjlsODcuMi0xNjFhOC40NSA4LjQ1IDAgMDAtNy40LTEyLjRoLTQ3LjhjLTMuMSAwLTYgMS44LTcuNSA0LjZsLTcxLjkgMTQxLjktNzEuNy0xNDJ6TTgzMiA2NEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA4MjRIMjMyVjE5My4xbDI2MC4zIDIwNC4xYzExLjYgOS4xIDI3LjkgOS4xIDM5LjUgMEw3OTIgMTkzLjFWODg4em0wLTc1MS4zaC0zMS43TDUxMiAzMzEuMyAyNjMuNyAxMzYuN0gyMzJ2LS43aDU2MHYuN3oifX1dfSxuYW1lOiJyZWQtZW52ZWxvcGUiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw1NzM2NTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjpmdW5jdGlvbihhLG4pe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04MzIgNjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgODI0SDIzMlYxOTMuMWwyNjAuMyAyMDQuMWMxMS42IDkuMSAyNy45IDkuMSAzOS41IDBMNzkyIDE5My4xVjg4OHptMC03NTEuM2gtMzEuN0w1MTIgMzMxLjMgMjYzLjcgMTM2LjdIMjMydi0uN2g1NjB2Ljd6IixmaWxsOmF9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQ5Mi4zIDM5Ny4yTDIzMiAxOTMuMVY4ODhoNTYwVjE5My4xTDUzMS44IDM5Ny4yYTMxLjk5IDMxLjk5IDAgMDEtMzkuNSAwem05OS40IDYwLjloNDcuOGE4LjQ1IDguNDUgMCAwMTcuNCAxMi40bC04Ny4yIDE2MWg0NS45YzQuNiAwIDguNCAzLjggOC40IDguNFY2NjVjMCA0LjYtMy44IDguNC04LjQgOC40aC02My4zVjcwMmg2My4zYzQuNiAwIDguNCAzLjggOC40IDguNHYyNWMuMiA0LjctMy41IDguNS04LjIgOC41aC02My4zdjQ5LjljMCA0LjYtMy44IDguNC04LjQgOC40aC00My43Yy00LjYgMC04LjQtMy44LTguNC04LjR2LTQ5LjloLTYzYy00LjYgMC04LjQtMy44LTguNC04LjR2LTI1LjFjMC00LjYgMy44LTguNCA4LjQtOC40aDYzdi0yOC42aC02M2MtNC42IDAtOC40LTMuOC04LjQtOC40di0yNS4xYzAtNC42IDMuOC04LjQgOC40LTguNGg0NS40TDM3NyA0NzAuNGE4LjQgOC40IDAgMDEzLjQtMTEuNGMxLjMtLjYgMi42LTEgMy45LTFoNDguOGMzLjIgMCA2LjEgMS44IDcuNSA0LjZsNzEuNyAxNDIgNzEuOS0xNDEuOWE4LjYgOC42IDAgMDE3LjUtNC42eiIsZmlsbDpufX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0yMzIgMTM2LjdoMzEuN0w1MTIgMzMxLjNsMjQ4LjMtMTk0LjZINzkydi0uN0gyMzJ6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQ0MC42IDQ2Mi42YTguMzggOC4zOCAwIDAwLTcuNS00LjZoLTQ4LjhjLTEuMyAwLTIuNi40LTMuOSAxYTguNCA4LjQgMCAwMC0zLjQgMTEuNGw4Ny40IDE2MS4xSDQxOWMtNC42IDAtOC40IDMuOC04LjQgOC40VjY2NWMwIDQuNiAzLjggOC40IDguNCA4LjRoNjNWNzAyaC02M2MtNC42IDAtOC40IDMuOC04LjQgOC40djI1LjFjMCA0LjYgMy44IDguNCA4LjQgOC40aDYzdjQ5LjljMCA0LjYgMy44IDguNCA4LjQgOC40aDQzLjdjNC42IDAgOC40LTMuOCA4LjQtOC40di00OS45aDYzLjNjNC43IDAgOC40LTMuOCA4LjItOC41di0yNWMwLTQuNi0zLjgtOC40LTguNC04LjRoLTYzLjN2LTI4LjZoNjMuM2M0LjYgMCA4LjQtMy44IDguNC04LjR2LTI1LjFjMC00LjYtMy44LTguNC04LjQtOC40aC00NS45bDg3LjItMTYxYTguNDUgOC40NSAwIDAwLTcuNC0xMi40aC00Ny44Yy0zLjEgMC02IDEuOC03LjUgNC42bC03MS45IDE0MS45LTcxLjctMTQyeiIsZmlsbDphfX1dfX0sbmFtZToicmVkLWVudmVsb3BlIix0aGVtZToidHdvdG9uZSJ9O3QuZGVmYXVsdD1lfSwzMjMwOTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTg0IDU0OGEzNiAzNiAwIDEwNzIgMCAzNiAzNiAwIDEwLTcyIDB6bTE0NC0xMDhhMzUuOSAzNS45IDAgMDAtMzIuNSAyMC42YzE4LjggMTQuMyAzNC40IDMwLjcgNDUuOSA0OC44QTM1Ljk4IDM1Ljk4IDAgMDA3MjggNDQwek01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMjQ1IDQ3Ny45YzQuNiAxMy41IDcgMjcuNiA3IDQyLjEgMCA5OS40LTExMi44IDE4MC0yNTIgMTgwcy0yNTItODAuNi0yNTItMTgwYzAtMTQuNSAyLjQtMjguNiA3LTQyLjFBNzIuMDEgNzIuMDEgMCAwMTI5NiA0MDRjMjcuMSAwIDUwLjYgMTQuOSA2Mi45IDM3IDM2LjItMTkuOCA4MC4yLTMyLjggMTI4LjEtMzYuMWw1OC40LTEzMS4xYzQuMy05LjggMTUuMi0xNC44IDI1LjUtMTEuOGw5MS42IDI2LjVhNTQuMDMgNTQuMDMgMCAwMTEwMS42IDI1LjZjMCAyOS44LTI0LjIgNTQtNTQgNTQtMjMuNSAwLTQzLjUtMTUuMS01MC45LTM2LjFMNTc3IDMwOC4zbC00MyA5Ni41YzQ5LjEgMyA5NC4yIDE2LjEgMTMxLjIgMzYuMyAxMi4zLTIyLjEgMzUuOC0zNyA2Mi45LTM3IDM5LjggMCA3MiAzMi4yIDcyIDcyLS4xIDI5LjMtMTcuOCA1NC42LTQzLjEgNjUuOHptLTE3MS4zIDgzYy0xNC45IDExLjctNDQuMyAyNC4zLTczLjcgMjQuM3MtNTguOS0xMi42LTczLjctMjQuM2MtOS4zLTcuMy0yMi43LTUuNy0zMCAzLjYtNy4zIDkuMy01LjcgMjIuNyAzLjYgMzAgMjUuNyAyMC40IDY1IDMzLjUgMTAwLjEgMzMuNSAzNS4xIDAgNzQuNC0xMy4xIDEwMC4yLTMzLjUgOS4zLTcuMyAxMC45LTIwLjggMy42LTMwYTIxLjQ2IDIxLjQ2IDAgMDAtMzAuMS0zLjZ6TTI5NiA0NDBhMzUuOTggMzUuOTggMCAwMC0xMy40IDY5LjRjMTEuNS0xOC4xIDI3LjEtMzQuNSA0NS45LTQ4LjhBMzUuOSAzNS45IDAgMDAyOTYgNDQwem03MiAxMDhhMzYgMzYgMCAxMDcyIDAgMzYgMzYgMCAxMC03MiAweiJ9fV19LG5hbWU6InJlZGRpdC1jaXJjbGUiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sOTYyOTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMjg4IDU2OGE1NiA1NiAwIDEwMTEyIDAgNTYgNTYgMCAxMC0xMTIgMHptMzM4LjcgMTE5LjdjLTIzLjEgMTguMi02OC45IDM3LjgtMTE0LjcgMzcuOHMtOTEuNi0xOS42LTExNC43LTM3LjhjLTE0LjQtMTEuMy0zNS4zLTguOS00Ni43IDUuNXMtOC45IDM1LjMgNS41IDQ2LjdDMzk2LjMgNzcxLjYgNDU3LjUgNzkyIDUxMiA3OTJzMTE1LjctMjAuNCAxNTUuOS01Mi4xYTMzLjI1IDMzLjI1IDAgMTAtNDEuMi01Mi4yek05NjAgNDU2YzAtNjEuOS01MC4xLTExMi0xMTItMTEyLTQyLjEgMC03OC43IDIzLjItOTcuOSA1Ny42LTU3LjYtMzEuNS0xMjcuNy01MS44LTIwNC4xLTU2LjVMNjEyLjkgMTk1bDEyNy45IDM2LjljMTEuNSAzMi42IDQyLjYgNTYuMSA3OS4yIDU2LjEgNDYuNCAwIDg0LTM3LjYgODQtODRzLTM3LjYtODQtODQtODRjLTMyIDAtNTkuOCAxNy45LTc0IDQ0LjJMNjAzLjUgMTIzYTMzLjIgMzMuMiAwIDAwLTM5LjYgMTguNGwtOTAuOCAyMDMuOWMtNzQuNSA1LjItMTQyLjkgMjUuNC0xOTkuMiA1Ni4yQTExMS45NCAxMTEuOTQgMCAwMDE3NiAzNDRjLTYxLjkgMC0xMTIgNTAuMS0xMTIgMTEyIDAgNDUuOCAyNy41IDg1LjEgNjYuOCAxMDIuNS03LjEgMjEtMTAuOCA0My0xMC44IDY1LjUgMCAxNTQuNiAxNzUuNSAyODAgMzkyIDI4MHMzOTItMTI1LjQgMzkyLTI4MGMwLTIyLjYtMy44LTQ0LjUtMTAuOC02NS41QzkzMi41IDU0MS4xIDk2MCA1MDEuOCA5NjAgNDU2ek04MjAgMTcyLjVhMzEuNSAzMS41IDAgMTEwIDYzIDMxLjUgMzEuNSAwIDAxMC02M3pNMTIwIDQ1NmMwLTMwLjkgMjUuMS01NiA1Ni01NmE1NiA1NiAwIDAxNTAuNiAzMi4xYy0yOS4zIDIyLjItNTMuNSA0Ny44LTcxLjUgNzUuOWE1Ni4yMyA1Ni4yMyAwIDAxLTM1LjEtNTJ6bTM5MiAzODEuNWMtMTc5LjggMC0zMjUuNS05NS42LTMyNS41LTIxMy41UzMzMi4yIDQxMC41IDUxMiA0MTAuNSA4MzcuNSA1MDYuMSA4MzcuNSA2MjQgNjkxLjggODM3LjUgNTEyIDgzNy41ek04NjguOCA1MDhjLTE3LjktMjguMS00Mi4yLTUzLjctNzEuNS03NS45IDktMTguOSAyOC4zLTMyLjEgNTAuNi0zMi4xIDMwLjkgMCA1NiAyNS4xIDU2IDU2IC4xIDIzLjUtMTQuNSA0My43LTM1LjEgNTJ6TTYyNCA1NjhhNTYgNTYgMCAxMDExMiAwIDU2IDU2IDAgMTAtMTEyIDB6In19XX0sbmFtZToicmVkZGl0Iix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNDY3MTc6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTI5NiA0NDBhMzUuOTggMzUuOTggMCAwMC0xMy40IDY5LjRjMTEuNS0xOC4xIDI3LjEtMzQuNSA0NS45LTQ4LjhBMzUuOSAzNS45IDAgMDAyOTYgNDQwem0yODkuNyAxODQuOWMtMTQuOSAxMS43LTQ0LjMgMjQuMy03My43IDI0LjNzLTU4LjktMTIuNi03My43LTI0LjNjLTkuMy03LjMtMjIuNy01LjctMzAgMy42LTcuMyA5LjMtNS43IDIyLjcgMy42IDMwIDI1LjcgMjAuNCA2NSAzMy41IDEwMC4xIDMzLjUgMzUuMSAwIDc0LjQtMTMuMSAxMDAuMi0zMy41IDkuMy03LjMgMTAuOS0yMC44IDMuNi0zMGEyMS40NiAyMS40NiAwIDAwLTMwLjEtMy42ek04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTc1NyA1NDEuOWM0LjYgMTMuNSA3IDI3LjYgNyA0Mi4xIDAgOTkuNC0xMTIuOCAxODAtMjUyIDE4MHMtMjUyLTgwLjYtMjUyLTE4MGMwLTE0LjUgMi40LTI4LjYgNy00Mi4xQTcyLjAxIDcyLjAxIDAgMDEyOTYgNDA0YzI3LjEgMCA1MC42IDE0LjkgNjIuOSAzNyAzNi4yLTE5LjggODAuMi0zMi44IDEyOC4xLTM2LjFsNTguNC0xMzEuMWM0LjMtOS44IDE1LjItMTQuOCAyNS41LTExLjhsOTEuNiAyNi41YTU0LjAzIDU0LjAzIDAgMDExMDEuNiAyNS42YzAgMjkuOC0yNC4yIDU0LTU0IDU0LTIzLjUgMC00My41LTE1LjEtNTAuOS0zNi4xTDU3NyAzMDguM2wtNDMgOTYuNWM0OS4xIDMgOTQuMiAxNi4xIDEzMS4yIDM2LjMgMTIuMy0yMi4xIDM1LjgtMzcgNjIuOS0zNyAzOS44IDAgNzIgMzIuMiA3MiA3Mi0uMSAyOS4zLTE3LjggNTQuNi00My4xIDY1Ljh6TTU4NCA1NDhhMzYgMzYgMCAxMDcyIDAgMzYgMzYgMCAxMC03MiAwem0xNDQtMTA4YTM1LjkgMzUuOSAwIDAwLTMyLjUgMjAuNmMxOC44IDE0LjMgMzQuNCAzMC43IDQ1LjkgNDguOEEzNS45OCAzNS45OCAwIDAwNzI4IDQ0MHpNMzY4IDU0OGEzNiAzNiAwIDEwNzIgMCAzNiAzNiAwIDEwLTcyIDB6In19XX0sbmFtZToicmVkZGl0LXNxdWFyZSIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw0NTY1OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik03NTguMiA4MzkuMUM4NTEuOCA3NjUuOSA5MTIgNjUxLjkgOTEyIDUyMy45IDkxMiAzMDMgNzMzLjUgMTI0LjMgNTEyLjYgMTI0IDI5MS40IDEyMy43IDExMiAzMDIuOCAxMTIgNTIzLjljMCAxMjUuMiA1Ny41IDIzNi45IDE0Ny42IDMxMC4yIDMuNSAyLjggOC42IDIuMiAxMS40LTEuM2wzOS40LTUwLjVjMi43LTMuNCAyLjEtOC4zLTEuMi0xMS4xLTguMS02LjYtMTUuOS0xMy43LTIzLjQtMjEuMmEzMTguNjQgMzE4LjY0IDAgMDEtNjguNi0xMDEuN0MyMDAuNCA2MDkgMTkyIDU2Ny4xIDE5MiA1MjMuOXM4LjQtODUuMSAyNS4xLTEyNC41YzE2LjEtMzguMSAzOS4yLTcyLjMgNjguNi0xMDEuNyAyOS40LTI5LjQgNjMuNi01Mi41IDEwMS43LTY4LjZDNDI2LjkgMjEyLjQgNDY4LjggMjA0IDUxMiAyMDRzODUuMSA4LjQgMTI0LjUgMjUuMWMzOC4xIDE2LjEgNzIuMyAzOS4yIDEwMS43IDY4LjYgMjkuNCAyOS40IDUyLjUgNjMuNiA2OC42IDEwMS43IDE2LjcgMzkuNCAyNS4xIDgxLjMgMjUuMSAxMjQuNXMtOC40IDg1LjEtMjUuMSAxMjQuNWEzMTguNjQgMzE4LjY0IDAgMDEtNjguNiAxMDEuN2MtOS4zIDkuMy0xOS4xIDE4LTI5LjMgMjZMNjY4LjIgNzI0YTggOCAwIDAwLTE0LjEgM2wtMzkuNiAxNjIuMmMtMS4yIDUgMi42IDkuOSA3LjcgOS45bDE2NyAuOGM2LjcgMCAxMC41LTcuNyA2LjMtMTIuOWwtMzcuMy00Ny45eiJ9fV19LG5hbWU6InJlZG8iLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw2MDk1MDpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTA5LjEgMjA5LjNsLTU2LjQgNDQuMUM3NzUuOCAxNTUuMSA2NTYuMiA5MiA1MjEuOSA5MiAyOTAgOTIgMTAyLjMgMjc5LjUgMTAyIDUxMS41IDEwMS43IDc0My43IDI4OS44IDkzMiA1MjEuOSA5MzJjMTgxLjMgMCAzMzUuOC0xMTUgMzk0LjYtMjc2LjEgMS41LTQuMi0uNy04LjktNC45LTEwLjNsLTU2LjctMTkuNWE4IDggMCAwMC0xMC4xIDQuOGMtMS44IDUtMy44IDEwLTUuOSAxNC45LTE3LjMgNDEtNDIuMSA3Ny44LTczLjcgMTA5LjRBMzQ0Ljc3IDM0NC43NyAwIDAxNjU1LjkgODI5Yy00Mi4zIDE3LjktODcuNCAyNy0xMzMuOCAyNy00Ni41IDAtOTEuNS05LjEtMTMzLjgtMjdBMzQxLjUgMzQxLjUgMCAwMTI3OSA3NTUuMmEzNDIuMTYgMzQyLjE2IDAgMDEtNzMuNy0xMDkuNGMtMTcuOS00Mi40LTI3LTg3LjQtMjctMTMzLjlzOS4xLTkxLjUgMjctMTMzLjljMTcuMy00MSA0Mi4xLTc3LjggNzMuNy0xMDkuNCAzMS42LTMxLjYgNjguNC01Ni40IDEwOS4zLTczLjggNDIuMy0xNy45IDg3LjQtMjcgMTMzLjgtMjcgNDYuNSAwIDkxLjUgOS4xIDEzMy44IDI3YTM0MS41IDM0MS41IDAgMDExMDkuMyA3My44YzkuOSA5LjkgMTkuMiAyMC40IDI3LjggMzEuNGwtNjAuMiA0N2E4IDggMCAwMDMgMTQuMWwxNzUuNiA0M2M1IDEuMiA5LjktMi42IDkuOS03LjdsLjgtMTgwLjljLS4xLTYuNi03LjgtMTAuMy0xMy02LjJ6In19XX0sbmFtZToicmVsb2FkIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNjYwMzg6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTgzMiAyNTZoLTI4LjFsLTM1LjctMTIwLjljLTQtMTMuNy0xNi41LTIzLjEtMzAuNy0yMy4xaC00NTFjLTE0LjMgMC0yNi44IDkuNC0zMC43IDIzLjFMMjIwLjEgMjU2SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MjhjMCA0LjQgMy42IDggOCA4aDQ1LjhsNDcuNyA1NTguN2EzMiAzMiAwIDAwMzEuOSAyOS4zaDQyOS4yYTMyIDMyIDAgMDAzMS45LTI5LjNMODAyLjIgMzI0SDg1NmM0LjQgMCA4LTMuNiA4LTh2LTI4YzAtMTcuNy0xNC4zLTMyLTMyLTMyek01MDggNzA0Yy03OS41IDAtMTQ0LTY0LjUtMTQ0LTE0NHM2NC41LTE0NCAxNDQtMTQ0IDE0NCA2NC41IDE0NCAxNDQtNjQuNSAxNDQtMTQ0IDE0NHpNMjkxIDI1NmwyMi40LTc2aDM5Ny4ybDIyLjQgNzZIMjkxem0xMzcgMzA0YTgwIDgwIDAgMTAxNjAgMCA4MCA4MCAwIDEwLTE2MCAweiJ9fV19LG5hbWU6InJlc3QiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sOTgzMzM6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJkZWZzIixhdHRyczp7fSxjaGlsZHJlbjpbe3RhZzoic3R5bGUiLGF0dHJzOnt9fV19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTA4IDcwNGM3OS41IDAgMTQ0LTY0LjUgMTQ0LTE0NHMtNjQuNS0xNDQtMTQ0LTE0NC0xNDQgNjQuNS0xNDQgMTQ0IDY0LjUgMTQ0IDE0NCAxNDR6bTAtMjI0YzQ0LjIgMCA4MCAzNS44IDgwIDgwcy0zNS44IDgwLTgwIDgwLTgwLTM1LjgtODAtODAgMzUuOC04MCA4MC04MHoifX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04MzIgMjU2aC0yOC4xbC0zNS43LTEyMC45Yy00LTEzLjctMTYuNS0yMy4xLTMwLjctMjMuMWgtNDUxYy0xNC4zIDAtMjYuOCA5LjQtMzAuNyAyMy4xTDIyMC4xIDI1NkgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjI4YzAgNC40IDMuNiA4IDggOGg0NS44bDQ3LjcgNTU4LjdhMzIgMzIgMCAwMDMxLjkgMjkuM2g0MjkuMmEzMiAzMiAwIDAwMzEuOS0yOS4zTDgwMi4yIDMyNEg4NTZjNC40IDAgOC0zLjYgOC04di0yOGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTUxOC42LTc2aDM5Ny4ybDIyLjQgNzZIMjkxbDIyLjQtNzZ6bTM3Ni4yIDY2NEgzMjYuNEwyODIgMzI0aDQ1MS45bC00NC4zIDUyMHoifX1dfSxuYW1lOiJyZXN0Iix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sMzcxNjE6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMzI2LjQgODQ0aDM2My4ybDQ0LjMtNTIwSDI4Mmw0NC40IDUyMHpNNTA4IDQxNmM3OS41IDAgMTQ0IDY0LjUgMTQ0IDE0NHMtNjQuNSAxNDQtMTQ0IDE0NC0xNDQtNjQuNS0xNDQtMTQ0IDY0LjUtMTQ0IDE0NC0xNDR6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUwOCA3MDRjNzkuNSAwIDE0NC02NC41IDE0NC0xNDRzLTY0LjUtMTQ0LTE0NC0xNDQtMTQ0IDY0LjUtMTQ0IDE0NCA2NC41IDE0NCAxNDQgMTQ0em0wLTIyNGM0NC4yIDAgODAgMzUuOCA4MCA4MHMtMzUuOCA4MC04MCA4MC04MC0zNS44LTgwLTgwIDM1LjgtODAgODAtODB6IixmaWxsOmF9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTgzMiAyNTZoLTI4LjFsLTM1LjctMTIwLjljLTQtMTMuNy0xNi41LTIzLjEtMzAuNy0yMy4xaC00NTFjLTE0LjMgMC0yNi44IDkuNC0zMC43IDIzLjFMMjIwLjEgMjU2SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MjhjMCA0LjQgMy42IDggOCA4aDQ1LjhsNDcuNyA1NTguN2EzMiAzMiAwIDAwMzEuOSAyOS4zaDQyOS4yYTMyIDMyIDAgMDAzMS45LTI5LjNMODAyLjIgMzI0SDg1NmM0LjQgMCA4LTMuNiA4LTh2LTI4YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNTE4LjYtNzZoMzk3LjJsMjIuNCA3NkgyOTFsMjIuNC03NnptMzc2LjIgNjY0SDMyNi40TDI4MiAzMjRoNDUxLjlsLTQ0LjMgNTIweiIsZmlsbDphfX1dfX0sbmFtZToicmVzdCIsdGhlbWU6InR3b3RvbmUifTt0LmRlZmF1bHQ9ZX0sNjY2MzY6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiMCAwIDEwMjQgMTAyNCIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTEzNiA1NTJoNjMuNmM0LjQgMCA4LTMuNiA4LThWMjg4LjdoNTI4LjZ2NzIuNmMwIDEuOS42IDMuNyAxLjggNS4yYTguMyA4LjMgMCAwMDExLjcgMS40TDg5MyAyNTUuNGM0LjMtNSAzLjYtMTAuMyAwLTEzLjJMNzQ5LjcgMTI5LjhhOC4yMiA4LjIyIDAgMDAtNS4yLTEuOGMtNC42IDAtOC40IDMuOC04LjQgOC40VjIwOUgxOTkuN2MtMzkuNSAwLTcxLjcgMzIuMi03MS43IDcxLjhWNTQ0YzAgNC40IDMuNiA4IDggOHptNzUyLTgwaC02My42Yy00LjQgMC04IDMuNi04IDh2MjU1LjNIMjg3Ljh2LTcyLjZjMC0xLjktLjYtMy43LTEuOC01LjJhOC4zIDguMyAwIDAwLTExLjctMS40TDEzMSA3NjguNmMtNC4zIDUtMy42IDEwLjMgMCAxMy4ybDE0My4zIDExMi40YzEuNSAxLjIgMy4zIDEuOCA1LjIgMS44IDQuNiAwIDguNC0zLjggOC40LTguNFY4MTVoNTM2LjZjMzkuNSAwIDcxLjctMzIuMiA3MS43LTcxLjhWNDgwYy0uMi00LjQtMy44LTgtOC4yLTh6In19XX0sbmFtZToicmV0d2VldCIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDMwMTcxOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMTU0LjcgNDU0LjVsLTI0NiAxNzhjLTUuMyAzLjgtMTIuNyAwLTEyLjctNi41di00Ni45YzAtMTAuMiA0LjktMTkuOSAxMy4yLTI1LjlMNTY2LjYgNTEyIDQyMS4yIDQwNi44Yy04LjMtNi0xMy4yLTE1LjYtMTMuMi0yNS45VjMzNGMwLTYuNSA3LjQtMTAuMyAxMi43LTYuNWwyNDYgMTc4YzQuNCAzLjIgNC40IDkuOCAwIDEzeiJ9fV19LG5hbWU6InJpZ2h0LWNpcmNsZSIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSwxMzI0NjpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNjY2LjcgNTA1LjVsLTI0Ni0xNzhBOCA4IDAgMDA0MDggMzM0djQ2LjljMCAxMC4yIDQuOSAxOS45IDEzLjIgMjUuOUw1NjYuNiA1MTIgNDIxLjIgNjE3LjJjLTguMyA2LTEzLjIgMTUuNi0xMy4yIDI1LjlWNjkwYzAgNi41IDcuNCAxMC4zIDEyLjcgNi41bDI0Ni0xNzhjNC40LTMuMiA0LjQtOS44IDAtMTN6In19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeiJ9fV19LG5hbWU6InJpZ2h0LWNpcmNsZSIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDYyODQ5OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOmZ1bmN0aW9uKGEsbil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiAxNDBjLTIwNS40IDAtMzcyIDE2Ni42LTM3MiAzNzJzMTY2LjYgMzcyIDM3MiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzItMTY2LjYtMzcyLTM3Mi0zNzJ6bTE1NC43IDM3OC40bC0yNDYgMTc4Yy01LjMgMy44LTEyLjcgMC0xMi43LTYuNVY2NDNjMC0xMC4yIDQuOS0xOS45IDEzLjItMjUuOUw1NjYuNiA1MTIgNDIxLjIgNDA2LjhjLTguMy02LTEzLjItMTUuNi0xMy4yLTI1LjlWMzM0YzAtNi41IDcuNC0xMC4zIDEyLjctNi41bDI0NiAxNzhjNC40IDMuMiA0LjQgOS43IDAgMTIuOXoiLGZpbGw6bn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeiIsZmlsbDphfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02NjYuNyA1MDUuNWwtMjQ2LTE3OGMtNS4zLTMuOC0xMi43IDAtMTIuNyA2LjV2NDYuOWMwIDEwLjMgNC45IDE5LjkgMTMuMiAyNS45TDU2Ni42IDUxMiA0MjEuMiA2MTcuMWMtOC4zIDYtMTMuMiAxNS43LTEzLjIgMjUuOXY0Ni45YzAgNi41IDcuNCAxMC4zIDEyLjcgNi41bDI0Ni0xNzhjNC40LTMuMiA0LjQtOS43IDAtMTIuOXoiLGZpbGw6YX19XX19LG5hbWU6InJpZ2h0LWNpcmNsZSIsdGhlbWU6InR3b3RvbmUifTt0LmRlZmF1bHQ9ZX0sNzczMDc6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTc2NS43IDQ4Ni44TDMxNC45IDEzNC43QTcuOTcgNy45NyAwIDAwMzAyIDE0MXY3Ny4zYzAgNC45IDIuMyA5LjYgNi4xIDEyLjZsMzYwIDI4MS4xLTM2MCAyODEuMWMtMy45IDMtNi4xIDcuNy02LjEgMTIuNlY4ODNjMCA2LjcgNy43IDEwLjQgMTIuOSA2LjNsNDUwLjgtMzUyLjFhMzEuOTYgMzEuOTYgMCAwMDAtNTAuNHoifX1dfSxuYW1lOiJyaWdodCIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDQ2NDAyOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTY1OC43IDUxOC41bC0yNDYgMTc4Yy01LjMgMy44LTEyLjcgMC0xMi43LTYuNXYtNDYuOWMwLTEwLjIgNC45LTE5LjkgMTMuMi0yNS45TDU1OC42IDUxMiA0MTMuMiA0MDYuOGMtOC4zLTYtMTMuMi0xNS42LTEzLjItMjUuOVYzMzRjMC02LjUgNy40LTEwLjMgMTIuNy02LjVsMjQ2IDE3OGM0LjQgMy4yIDQuNCA5LjggMCAxM3oifX1dfSxuYW1lOiJyaWdodC1zcXVhcmUiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sNjI2ODY6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQxMi43IDY5Ni41bDI0Ni0xNzhjNC40LTMuMiA0LjQtOS43IDAtMTIuOWwtMjQ2LTE3OGMtNS4zLTMuOC0xMi43IDAtMTIuNyA2LjVWMzgxYzAgMTAuMiA0LjkgMTkuOSAxMy4yIDI1LjlMNTU4LjYgNTEyIDQxMy4yIDYxNy4yYy04LjMgNi0xMy4yIDE1LjYtMTMuMiAyNS45VjY5MGMwIDYuNSA3LjQgMTAuMyAxMi43IDYuNXoifX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2eiJ9fV19LG5hbWU6InJpZ2h0LXNxdWFyZSIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDI5Nzk0OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOmZ1bmN0aW9uKGEsbil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6IixmaWxsOmF9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTE4NCA4NDBoNjU2VjE4NEgxODR2NjU2em0yMTYtMTk2LjljMC0xMC4yIDQuOS0xOS45IDEzLjItMjUuOUw1NTguNiA1MTIgNDEzLjIgNDA2LjhjLTguMy02LTEzLjItMTUuNi0xMy4yLTI1LjlWMzM0YzAtNi41IDcuNC0xMC4zIDEyLjctNi41bDI0NiAxNzhjNC40IDMuMiA0LjQgOS43IDAgMTIuOWwtMjQ2IDE3OGMtNS4zIDMuOS0xMi43LjEtMTIuNy02LjR2LTQ2Ljl6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQxMi43IDY5Ni40bDI0Ni0xNzhjNC40LTMuMiA0LjQtOS43IDAtMTIuOWwtMjQ2LTE3OGMtNS4zLTMuOC0xMi43IDAtMTIuNyA2LjV2NDYuOWMwIDEwLjMgNC45IDE5LjkgMTMuMiAyNS45TDU1OC42IDUxMiA0MTMuMiA2MTcuMmMtOC4zIDYtMTMuMiAxNS43LTEzLjIgMjUuOVY2OTBjMCA2LjUgNy40IDEwLjMgMTIuNyA2LjR6IixmaWxsOmF9fV19fSxuYW1lOiJyaWdodC1zcXVhcmUiLHRoZW1lOiJ0d290b25lIn07dC5kZWZhdWx0PWV9LDc2Mjc3OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MTcgMjExLjFsLTE5OS4yIDI0Yy02LjYuOC05LjQgOC45LTQuNyAxMy42bDU5LjMgNTkuMy0yMjYgMjI2LTEwMS44LTEwMS43Yy02LjMtNi4zLTE2LjQtNi4yLTIyLjYgMEwxMDAuMyA3NTQuMWE4LjAzIDguMDMgMCAwMDAgMTEuM2w0NSA0NS4yYzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBMNDMzLjMgNTM0IDUzNSA2MzUuN2M2LjMgNi4yIDE2LjQgNi4yIDIyLjYgMEw4MjkgMzY0LjVsNTkuMyA1OS4zYTguMDEgOC4wMSAwIDAwMTMuNi00LjdsMjQtMTk5LjJjLjctNS4xLTMuNy05LjUtOC45LTguOHoifX1dfSxuYW1lOiJyaXNlIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sMjI5OTc6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJkZWZzIixhdHRyczp7fSxjaGlsZHJlbjpbe3RhZzoic3R5bGUiLGF0dHJzOnt9fV19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODUyIDY0SDE3MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY4MGMxNy43IDAgMzItMTQuMyAzMi0zMlY5NmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMzAwIDMyOGMwLTMzLjEgMjYuOS02MCA2MC02MHM2MCAyNi45IDYwIDYwLTI2LjkgNjAtNjAgNjAtNjAtMjYuOS02MC02MHptMzcyIDI0OGMwIDQuNC0zLjYgOC04IDhIMzYwYy00LjQgMC04LTMuNi04LTh2LTYwYzAtNC40IDMuNi04IDgtOGgzMDRjNC40IDAgOCAzLjYgOCA4djYwem0tOC0xODhjLTMzLjEgMC02MC0yNi45LTYwLTYwczI2LjktNjAgNjAtNjAgNjAgMjYuOSA2MCA2MC0yNi45IDYwLTYwIDYwem0xMzUgNDc2SDIyNWMtMTMuOCAwLTI1IDE0LjMtMjUgMzJ2NTZjMCA0LjQgMi44IDggNi4yIDhoNjExLjVjMy40IDAgNi4yLTMuNiA2LjItOHYtNTZjLjEtMTcuNy0xMS4xLTMyLTI0LjktMzJ6In19XX0sbmFtZToicm9ib3QiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sNjY4NDE6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTMwMCAzMjhhNjAgNjAgMCAxMDEyMCAwIDYwIDYwIDAgMTAtMTIwIDB6TTg1MiA2NEgxNzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2ODBjMTcuNyAwIDMyLTE0LjMgMzItMzJWOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS0zMiA2NjBIMjA0VjEyOGg2MTZ2NTk2ek02MDQgMzI4YTYwIDYwIDAgMTAxMjAgMCA2MCA2MCAwIDEwLTEyMCAwem0yNTAuMiA1NTZIMTY5LjhjLTE2LjUgMC0yOS44IDE0LjMtMjkuOCAzMnYzNmMwIDQuNCAzLjMgOCA3LjQgOGg3MjkuMWM0LjEgMCA3LjQtMy42IDcuNC04di0zNmMuMS0xNy43LTEzLjItMzItMjkuNy0zMnpNNjY0IDUwOEgzNjBjLTQuNCAwLTggMy42LTggOHY2MGMwIDQuNCAzLjYgOCA4IDhoMzA0YzQuNCAwIDgtMy42IDgtOHYtNjBjMC00LjQtMy42LTgtOC04eiJ9fV19LG5hbWU6InJvYm90Iix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNDQ5ODg6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg2NCA3MzZjMC0xMTEuNi02NS40LTIwOC0xNjAtMjUyLjlWMzE3LjNjMC0xNS4xLTUuMy0yOS43LTE1LjEtNDEuMkw1MzYuNSA5NS40QzUzMC4xIDg3LjggNTIxIDg0IDUxMiA4NHMtMTguMSAzLjgtMjQuNSAxMS40TDMzNS4xIDI3Ni4xYTYzLjk3IDYzLjk3IDAgMDAtMTUuMSA0MS4ydjE2NS44QzIyNS40IDUyOCAxNjAgNjI0LjQgMTYwIDczNmgxNTYuNWMtMi4zIDcuMi0zLjUgMTUtMy41IDIzLjggMCAyMi4xIDcuNiA0My43IDIxLjQgNjAuOGE5Ny4yIDk3LjIgMCAwMDQzLjEgMzAuNmMyMy4xIDU0IDc1LjYgODguOCAxMzQuNSA4OC44IDI5LjEgMCA1Ny4zLTguNiA4MS40LTI0LjggMjMuNi0xNS44IDQxLjktMzcuOSA1My02NGE5NyA5NyAwIDAwNDMuMS0zMC41IDk3LjUyIDk3LjUyIDAgMDAyMS40LTYwLjhjMC04LjQtMS4xLTE2LjQtMy4xLTIzLjhMODY0IDczNnpNNTEyIDM1MmE0OC4wMSA0OC4wMSAwIDAxMCA5NiA0OC4wMSA0OC4wMSAwIDAxMC05NnptMTE2LjEgNDMyLjJjLTUuMiAzLTExLjIgNC4yLTE3LjEgMy40bC0xOS41LTIuNC0yLjggMTkuNGMtNS40IDM3LjktMzguNCA2Ni41LTc2LjcgNjYuNXMtNzEuMy0yOC42LTc2LjctNjYuNWwtMi44LTE5LjUtMTkuNSAyLjVhMjcuNyAyNy43IDAgMDEtMTcuMS0zLjVjLTguNy01LTE0LjEtMTQuMy0xNC4xLTI0LjQgMC0xMC42IDUuOS0xOS40IDE0LjYtMjMuOGgyMzEuM2M4LjggNC41IDE0LjYgMTMuMyAxNC42IDIzLjgtLjEgMTAuMi01LjUgMTkuNi0xNC4yIDI0LjV6In19XX0sbmFtZToicm9ja2V0Iix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDU2ODQzOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NjQgNzM2YzAtMTExLjYtNjUuNC0yMDgtMTYwLTI1Mi45VjMxNy4zYzAtMTUuMS01LjMtMjkuNy0xNS4xLTQxLjJMNTM2LjUgOTUuNEM1MzAuMSA4Ny44IDUyMSA4NCA1MTIgODRzLTE4LjEgMy44LTI0LjUgMTEuNEwzMzUuMSAyNzYuMWE2My45NyA2My45NyAwIDAwLTE1LjEgNDEuMnYxNjUuOEMyMjUuNCA1MjggMTYwIDYyNC40IDE2MCA3MzZoMTU2LjVjLTIuMyA3LjItMy41IDE1LTMuNSAyMy44IDAgMjIuMSA3LjYgNDMuNyAyMS40IDYwLjhhOTcuMiA5Ny4yIDAgMDA0My4xIDMwLjZjMjMuMSA1NCA3NS42IDg4LjggMTM0LjUgODguOCAyOS4xIDAgNTcuMy04LjYgODEuNC0yNC44IDIzLjYtMTUuOCA0MS45LTM3LjkgNTMtNjRhOTcgOTcgMCAwMDQzLjEtMzAuNSA5Ny41MiA5Ny41MiAwIDAwMjEuNC02MC44YzAtOC40LTEuMS0xNi40LTMuMS0yMy44SDg2NHpNNzYyLjMgNjIxLjRjOS40IDE0LjYgMTcgMzAuMyAyMi41IDQ2LjZINzAwVjU1OC43YTIxMS42IDIxMS42IDAgMDE2Mi4zIDYyLjd6TTM4OCA0ODMuMVYzMTguOGwxMjQtMTQ3IDEyNCAxNDdWNjY4SDM4OFY0ODMuMXpNMjM5LjIgNjY4YzUuNS0xNi4zIDEzLjEtMzIgMjIuNS00Ni42IDE2LjMtMjUuMiAzNy41LTQ2LjUgNjIuMy02Mi43VjY2OGgtODQuOHptMzg4LjkgMTE2LjJjLTUuMiAzLTExLjIgNC4yLTE3LjEgMy40bC0xOS41LTIuNC0yLjggMTkuNGMtNS40IDM3LjktMzguNCA2Ni41LTc2LjcgNjYuNS0zOC4zIDAtNzEuMy0yOC42LTc2LjctNjYuNWwtMi44LTE5LjUtMTkuNSAyLjVhMjcuNyAyNy43IDAgMDEtMTcuMS0zLjVjLTguNy01LTE0LjEtMTQuMy0xNC4xLTI0LjQgMC0xMC42IDUuOS0xOS40IDE0LjYtMjMuOGgyMzEuM2M4LjggNC41IDE0LjYgMTMuMyAxNC42IDIzLjgtLjEgMTAuMi01LjUgMTkuNi0xNC4yIDI0LjV6TTQ2NCA0MDBhNDggNDggMCAxMDk2IDAgNDggNDggMCAxMC05NiAweiJ9fV19LG5hbWU6InJvY2tldCIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDQyMTQwOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOmZ1bmN0aW9uKGEsbil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTI2MS43IDYyMS40Yy05LjQgMTQuNi0xNyAzMC4zLTIyLjUgNDYuNkgzMjRWNTU4LjdjLTI0LjggMTYuMi00NiAzNy41LTYyLjMgNjIuN3pNNzAwIDU1OC43VjY2OGg4NC44Yy01LjUtMTYuMy0xMy4xLTMyLTIyLjUtNDYuNmEyMTEuNiAyMTEuNiAwIDAwLTYyLjMtNjIuN3ptLTY0LTIzOS45bC0xMjQtMTQ3LTEyNCAxNDdWNjY4aDI0OFYzMTguOHpNNTEyIDQ0OGE0OC4wMSA0OC4wMSAwIDAxMC05NiA0OC4wMSA0OC4wMSAwIDAxMCA5NnoiLGZpbGw6bn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODY0IDczNmMwLTExMS42LTY1LjQtMjA4LTE2MC0yNTIuOVYzMTcuM2MwLTE1LjEtNS4zLTI5LjctMTUuMS00MS4yTDUzNi41IDk1LjRDNTMwLjEgODcuOCA1MjEgODQgNTEyIDg0cy0xOC4xIDMuOC0yNC41IDExLjRMMzM1LjEgMjc2LjFhNjMuOTcgNjMuOTcgMCAwMC0xNS4xIDQxLjJ2MTY1LjhDMjI1LjQgNTI4IDE2MCA2MjQuNCAxNjAgNzM2aDE1Ni41Yy0yLjMgNy4yLTMuNSAxNS0zLjUgMjMuOCAwIDIyLjEgNy42IDQzLjcgMjEuNCA2MC44YTk3LjIgOTcuMiAwIDAwNDMuMSAzMC42YzIzLjEgNTQgNzUuNiA4OC44IDEzNC41IDg4LjggMjkuMSAwIDU3LjMtOC42IDgxLjQtMjQuOCAyMy42LTE1LjggNDEuOS0zNy45IDUzLTY0YTk3IDk3IDAgMDA0My4xLTMwLjUgOTcuNTIgOTcuNTIgMCAwMDIxLjQtNjAuOGMwLTguNC0xLjEtMTYuNC0zLjEtMjMuOEw4NjQgNzM2em0tNTQwLTY4aC04NC44YzUuNS0xNi4zIDEzLjEtMzIgMjIuNS00Ni42IDE2LjMtMjUuMiAzNy41LTQ2LjUgNjIuMy02Mi43VjY2OHptNjQtMTg0LjlWMzE4LjhsMTI0LTE0NyAxMjQgMTQ3VjY2OEgzODhWNDgzLjF6bTI0MC4xIDMwMS4xYy01LjIgMy0xMS4yIDQuMi0xNy4xIDMuNGwtMTkuNS0yLjQtMi44IDE5LjRjLTUuNCAzNy45LTM4LjQgNjYuNS03Ni43IDY2LjVzLTcxLjMtMjguNi03Ni43LTY2LjVsLTIuOC0xOS41LTE5LjUgMi41YTI3LjcgMjcuNyAwIDAxLTE3LjEtMy41Yy04LjctNS0xNC4xLTE0LjMtMTQuMS0yNC40IDAtMTAuNiA1LjktMTkuNCAxNC42LTIzLjhoMjMxLjNjOC44IDQuNSAxNC42IDEzLjMgMTQuNiAyMy44LS4xIDEwLjItNS41IDE5LjYtMTQuMiAyNC41ek03MDAgNjY4VjU1OC43YTIxMS42IDIxMS42IDAgMDE2Mi4zIDYyLjdjOS40IDE0LjYgMTcgMzAuMyAyMi41IDQ2LjZINzAweiIsZmlsbDphfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00NjQgNDAwYTQ4IDQ4IDAgMTA5NiAwIDQ4IDQ4IDAgMTAtOTYgMHoiLGZpbGw6YX19XX19LG5hbWU6InJvY2tldCIsdGhlbWU6InR3b3RvbmUifTt0LmRlZmF1bHQ9ZX0sNDQ2MjpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNzkzIDI0MkgzNjZ2LTc0YzAtNi43LTcuNy0xMC40LTEyLjktNi4zbC0xNDIgMTEyYTggOCAwIDAwMCAxMi42bDE0MiAxMTJjNS4yIDQuMSAxMi45LjQgMTIuOS02LjN2LTc0aDQxNXY0NzBIMTc1Yy00LjQgMC04IDMuNi04IDh2NjBjMCA0LjQgMy42IDggOCA4aDYxOGMzNS4zIDAgNjQtMjguNyA2NC02NFYzMDZjMC0zNS4zLTI4LjctNjQtNjQtNjR6In19XX0sbmFtZToicm9sbGJhY2siLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw3Nzk1MjpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6ImRlZnMiLGF0dHJzOnt9LGNoaWxkcmVuOlt7dGFnOiJzdHlsZSIsYXR0cnM6e319XX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02NzIgNDE4SDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NDE0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDUyOGMxNy43IDAgMzItMTQuMyAzMi0zMlY0NTBjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00NCA0MDJIMTg4VjQ5NGg0NDB2MzI2eiJ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTgxOS4zIDMyOC41Yy03OC44LTEwMC43LTE5Ni0xNTMuNi0zMTQuNi0xNTQuMmwtLjItNjRjMC02LjUtNy42LTEwLjEtMTIuNi02LjFsLTEyOCAxMDFjLTQgMy4xLTMuOSA5LjEgMCAxMi4zTDQ5MiAzMTguNmM1LjEgNCAxMi43LjQgMTIuNi02LjF2LTYzLjljMTIuOS4xIDI1LjkuOSAzOC44IDIuNSA0Mi4xIDUuMiA4Mi4xIDE4LjIgMTE5IDM4LjcgMzguMSAyMS4yIDcxLjIgNDkuNyA5OC40IDg0LjMgMjcuMSAzNC43IDQ2LjcgNzMuNyA1OC4xIDExNS44YTMyNS45NSAzMjUuOTUgMCAwMTYuNSAxNDAuOWg3NC45YzE0LjgtMTAzLjYtMTEuMy0yMTMtODEtMzAyLjN6In19XX0sbmFtZToicm90YXRlLWxlZnQiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw2MDI4MzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6ImRlZnMiLGF0dHJzOnt9LGNoaWxkcmVuOlt7dGFnOiJzdHlsZSIsYXR0cnM6e319XX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00ODAuNSAyNTEuMmMxMy0xLjYgMjUuOS0yLjQgMzguOC0yLjV2NjMuOWMwIDYuNSA3LjUgMTAuMSAxMi42IDYuMUw2NjAgMjE3LjZjNC0zLjIgNC05LjIgMC0xMi4zbC0xMjgtMTAxYy01LjEtNC0xMi42LS40LTEyLjYgNi4xbC0uMiA2NGMtMTE4LjYuNS0yMzUuOCA1My40LTMxNC42IDE1NC4yQTM5OS43NSAzOTkuNzUgMCAwMDEyMy41IDYzMWg3NC45Yy0uOS01LjMtMS43LTEwLjctMi40LTE2LjEtNS4xLTQyLjEtMi4xLTg0LjEgOC45LTEyNC44IDExLjQtNDIuMiAzMS04MS4xIDU4LjEtMTE1LjggMjcuMi0zNC43IDYwLjMtNjMuMiA5OC40LTg0LjMgMzctMjAuNiA3Ni45LTMzLjYgMTE5LjEtMzguOHoifX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgNDE4SDM1MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NDE0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDUyOGMxNy43IDAgMzItMTQuMyAzMi0zMlY0NTBjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00NCA0MDJIMzk2VjQ5NGg0NDB2MzI2eiJ9fV19LG5hbWU6InJvdGF0ZS1yaWdodCIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDkxNjI2OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6eyJmaWxsLXJ1bGUiOiJldmVub2RkIix2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTA5LjgxIDExMi4wMmMtLjczLjA1LTEuNDYuMTItMi4yLjIxaC00LjMybC0zLjQgMS43YTM2LjMzIDM2LjMzIDAgMDAtOC44OCA0LjRsLTE0NS45NiA3My4wMi0xNTMuNyAxNTMuNy03Mi42NSAxNDUuMjRhMzYuMzMgMzYuMzMgMCAwMC00LjkgOS44NmwtMS41NiAzLjEydjMuOThhMzYuMzMgMzYuMzMgMCAwMDAgOC4zdjI5OC4yM2w2Ljg4IDkuNWExOTguNyAxOTguNyAwIDAwMjAuNTggMjQuNDJjMzcuODYgMzcuODUgODcuNjYgNTcuMTYgMTQyLjYyIDYyLjAxYTM2LjM0IDM2LjM0IDAgMDAxMS41NyAxLjc3aDU3NS43NWMzLjE0LjU0IDYuMzQuNjYgOS41MS4zNmEzNi4zNCAzNi4zNCAwIDAwMi41Ni0uMzVoMjkuOHYtMjkuOTVhMzYuMzMgMzYuMzMgMCAwMDAtMTEuOTJWMjkzLjg4YTM2LjMzIDM2LjMzIDAgMDAtMS43OC0xMS41N2MtNC44NC01NC45NS0yNC4xNi0xMDQuNzUtNjIuMDEtMTQyLjYyaC0uMDd2LS4wN2EyMDMuOTIgMjAzLjkyIDAgMDAtMjQuMjctMjAuNDNsLTkuNTgtNi45Nkg1MTUuMTRhMzYuMzQgMzYuMzQgMCAwMC01LjMyLS4yMU02NDMgMTg0Ljg5aDE0NS45NmMyLjQ3IDIuMDggNS4yNSA0LjA2IDcuNDUgNi4yNSAyNi41OSAyNi42MyA0MC45NyA2NC43NCA0Mi4zIDExMS4xOHpNNTEwLjMxIDE5MGw2NS43MSAzOS4zOC0yNS40NyAxNTYuMS02NC4zNiA2NC4zNi0xMDAuNyAxMDAuNjlMMjI5LjQgNTc2bC0zOS4zOC02NS43IDYxLjEtMTIyLjI2IDEzNi45NC0xMzYuOTV6bTEzMi43NiA3OS42MWwxMjMuMTkgNzMuOTQtMTM4LjA5IDE3LjI0ek04MjEuOSA0MDkuODJjLTIxLjIxIDY4LjI1LTYyLjY2IDE0Mi41OC0xMjIuNCAyMTEuODhsLTY1Ljg1LTE4OC40em0tMjUyLjU0IDU5LjZsNTMuNjQgMTUzLjU2LTE1My41NS01My42NSA2OC4xMi02OC4xMnptMjY5LjUgODEuMDR2MjM3TDczOC40NCA2ODcuMDRjNDAuMS00My43NCA3My43My04OS44MyAxMDAuNC0xMzYuNTltLTQ3OC4wNCA3Ny43bC0xNy4yNCAxMzguMDgtNzMuOTQtMTIzLjE4em03Mi41MiA1LjQ2bDE4OC4zMiA2NS44NWMtNjkuMjggNTkuNzEtMTQzLjU3IDEwMS4yLTIxMS44IDEyMi40ek0xODQuOSA2NDNsMTE3LjQzIDE5NS43Yy00Ni41LTEuMzMtODQuNjMtMTUuNzQtMTExLjI2LTQyLjM3LTIuMTYtMi4xNi00LjExLTQuOTMtNi4xNy03LjM4em01MDIuMTcgOTUuNDNsMTAwLjQgMTAwLjRoLTIzN2M0Ni43Ny0yNi42NyA5Mi44Ni02MC4zIDEzNi42LTEwMC40In19XX0sbmFtZToicnVieSIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDkzNjkxOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NjYuOSAxNjkuOUw1MjcuMSA1NC4xQzUyMyA1Mi43IDUxNy41IDUyIDUxMiA1MnMtMTEgLjctMTUuMSAyLjFMMTU3LjEgMTY5LjljLTguMyAyLjgtMTUuMSAxMi40LTE1LjEgMjEuMnY0ODIuNGMwIDguOCA1LjcgMjAuNCAxMi42IDI1LjlMNDk5LjMgOTY4YzMuNSAyLjcgOCA0LjEgMTIuNiA0LjFzOS4yLTEuNCAxMi42LTQuMWwzNDQuNy0yNjguNmM2LjktNS40IDEyLjYtMTcgMTIuNi0yNS45VjE5MS4xYy4yLTguOC02LjYtMTguMy0xNC45LTIxLjJ6TTY5NC41IDM0MC43TDQ4MS45IDYzMy40YTE2LjEgMTYuMSAwIDAxLTI2IDBsLTEyNi40LTE3NGMtMy44LTUuMyAwLTEyLjcgNi41LTEyLjdoNTUuMmM1LjEgMCAxMCAyLjUgMTMgNi42bDY0LjcgODkgMTUwLjktMjA3LjhjMy00LjEgNy44LTYuNiAxMy02LjZINjg4YzYuNS4xIDEwLjMgNy41IDYuNSAxMi44eiJ9fV19LG5hbWU6InNhZmV0eS1jZXJ0aWZpY2F0ZSIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw5NTk3NTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODY2LjkgMTY5LjlMNTI3LjEgNTQuMUM1MjMgNTIuNyA1MTcuNSA1MiA1MTIgNTJzLTExIC43LTE1LjEgMi4xTDE1Ny4xIDE2OS45Yy04LjMgMi44LTE1LjEgMTIuNC0xNS4xIDIxLjJ2NDgyLjRjMCA4LjggNS43IDIwLjQgMTIuNiAyNS45TDQ5OS4zIDk2OGMzLjUgMi43IDggNC4xIDEyLjYgNC4xczkuMi0xLjQgMTIuNi00LjFsMzQ0LjctMjY4LjZjNi45LTUuNCAxMi42LTE3IDEyLjYtMjUuOVYxOTEuMWMuMi04LjgtNi42LTE4LjMtMTQuOS0yMS4yek04MTAgNjU0LjNMNTEyIDg4Ni41IDIxNCA2NTQuM1YyMjYuN2wyOTgtMTAxLjYgMjk4IDEwMS42djQyNy42em0tNDA1LjgtMjAxYy0zLTQuMS03LjgtNi42LTEzLTYuNkgzMzZjLTYuNSAwLTEwLjMgNy40LTYuNSAxMi43bDEyNi40IDE3NGExNi4xIDE2LjEgMCAwMDI2IDBsMjEyLjYtMjkyLjdjMy44LTUuMyAwLTEyLjctNi41LTEyLjdoLTU1LjJjLTUuMSAwLTEwIDIuNS0xMyA2LjZMNDY4LjkgNTQyLjRsLTY0LjctODkuMXoifX1dfSxuYW1lOiJzYWZldHktY2VydGlmaWNhdGUiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw1NTAwNjpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjpmdW5jdGlvbihhLG4pe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NjYuOSAxNjkuOUw1MjcuMSA1NC4xQzUyMyA1Mi43IDUxNy41IDUyIDUxMiA1MnMtMTEgLjctMTUuMSAyLjFMMTU3LjEgMTY5LjljLTguMyAyLjgtMTUuMSAxMi40LTE1LjEgMjEuMnY0ODIuNGMwIDguOCA1LjcgMjAuNCAxMi42IDI1LjlMNDk5LjMgOTY4YzMuNSAyLjcgOCA0LjEgMTIuNiA0LjFzOS4yLTEuNCAxMi42LTQuMWwzNDQuNy0yNjguNmM2LjktNS40IDEyLjYtMTcgMTIuNi0yNS45VjE5MS4xYy4yLTguOC02LjYtMTguMy0xNC45LTIxLjJ6TTgxMCA2NTQuM0w1MTIgODg2LjUgMjE0IDY1NC4zVjIyNi43bDI5OC0xMDEuNiAyOTggMTAxLjZ2NDI3LjZ6IixmaWxsOmF9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTIxNCAyMjYuN3Y0MjcuNmwyOTggMjMyLjIgMjk4LTIzMi4yVjIyNi43TDUxMiAxMjUuMSAyMTQgMjI2Ljd6TTYzMi44IDMyOEg2ODhjNi41IDAgMTAuMyA3LjQgNi41IDEyLjdMNDgxLjkgNjMzLjRhMTYuMSAxNi4xIDAgMDEtMjYgMGwtMTI2LjQtMTc0Yy0zLjgtNS4zIDAtMTIuNyA2LjUtMTIuN2g1NS4yYzUuMiAwIDEwIDIuNSAxMyA2LjZsNjQuNyA4OS4xIDE1MC45LTIwNy44YzMtNC4xIDcuOS02LjYgMTMtNi42eiIsZmlsbDpufX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00MDQuMiA0NTMuM2MtMy00LjEtNy44LTYuNi0xMy02LjZIMzM2Yy02LjUgMC0xMC4zIDcuNC02LjUgMTIuN2wxMjYuNCAxNzRhMTYuMSAxNi4xIDAgMDAyNiAwbDIxMi42LTI5Mi43YzMuOC01LjMgMC0xMi43LTYuNS0xMi43aC01NS4yYy01LjEgMC0xMCAyLjUtMTMgNi42TDQ2OC45IDU0Mi40bC02NC43LTg5LjF6IixmaWxsOmF9fV19fSxuYW1lOiJzYWZldHktY2VydGlmaWNhdGUiLHRoZW1lOiJ0d290b25lIn07dC5kZWZhdWx0PWV9LDU0MTM0OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjAgMCAxMDI0IDEwMjQiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRMMTI4IDE5MnYzODRjMCAyMTIuMSAxNzEuOSAzODQgMzg0IDM4NHMzODQtMTcxLjkgMzg0LTM4NFYxOTJMNTEyIDY0em0zMTIgNTEyYzAgMTcyLjMtMTM5LjcgMzEyLTMxMiAzMTJTMjAwIDc0OC4zIDIwMCA1NzZWMjQ2bDMxMi0xMTAgMzEyIDExMHYzMzB6In19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMzc4LjQgNDc1LjFhMzUuOTEgMzUuOTEgMCAwMC01MC45IDAgMzUuOTEgMzUuOTEgMCAwMDAgNTAuOWwxMjkuNCAxMjkuNCAyLjEgMi4xYTMzLjk4IDMzLjk4IDAgMDA0OC4xIDBMNzMwLjYgNDM0YTMzLjk4IDMzLjk4IDAgMDAwLTQ4LjFsLTIuOC0yLjhhMzMuOTggMzMuOTggMCAwMC00OC4xIDBMNDgzIDU3OS43IDM3OC40IDQ3NS4xeiJ9fV19LG5hbWU6InNhZmV0eSIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDQ0NzU5OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04OTMuMyAyOTMuM0w3MzAuNyAxMzAuN2MtMTItMTItMjguMy0xOC43LTQ1LjMtMTguN0gxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzM4LjVjMC0xNy02LjctMzMuMi0xOC43LTQ1LjJ6TTM4NCAxNzZoMjU2djExMkgzODRWMTc2em0xMjggNTU0Yy03OS41IDAtMTQ0LTY0LjUtMTQ0LTE0NHM2NC41LTE0NCAxNDQtMTQ0IDE0NCA2NC41IDE0NCAxNDQtNjQuNSAxNDQtMTQ0IDE0NHptMC0yMjRjLTQ0LjIgMC04MCAzNS44LTgwIDgwczM1LjggODAgODAgODAgODAtMzUuOCA4MC04MC0zNS44LTgwLTgwLTgweiJ9fV19LG5hbWU6InNhdmUiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sNTE1ODM6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg5My4zIDI5My4zTDczMC43IDEzMC43Yy03LjUtNy41LTE2LjctMTMtMjYuNy0xNlYxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMzOC41YzAtMTctNi43LTMzLjItMTguNy00NS4yek0zODQgMTg0aDI1NnYxMDRIMzg0VjE4NHptNDU2IDY1NkgxODRWMTg0aDEzNnYxMzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoMzIwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjIwNS44bDEzNiAxMzZWODQwek01MTIgNDQyYy03OS41IDAtMTQ0IDY0LjUtMTQ0IDE0NHM2NC41IDE0NCAxNDQgMTQ0IDE0NC02NC41IDE0NC0xNDQtNjQuNS0xNDQtMTQ0LTE0NHptMCAyMjRjLTQ0LjIgMC04MC0zNS44LTgwLTgwczM1LjgtODAgODAtODAgODAgMzUuOCA4MCA4MC0zNS44IDgwLTgwIDgweiJ9fV19LG5hbWU6InNhdmUiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSwzOTM5MTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjpmdW5jdGlvbihhLG4pe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik03MDQgMzIwYzAgMTcuNy0xNC4zIDMyLTMyIDMySDM1MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMTg0SDE4NHY2NTZoNjU2VjM0MS44bC0xMzYtMTM2VjMyMHpNNTEyIDczMGMtNzkuNSAwLTE0NC02NC41LTE0NC0xNDRzNjQuNS0xNDQgMTQ0LTE0NCAxNDQgNjQuNSAxNDQgMTQ0LTY0LjUgMTQ0LTE0NCAxNDR6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA0NDJjLTc5LjUgMC0xNDQgNjQuNS0xNDQgMTQ0czY0LjUgMTQ0IDE0NCAxNDQgMTQ0LTY0LjUgMTQ0LTE0NC02NC41LTE0NC0xNDQtMTQ0em0wIDIyNGMtNDQuMiAwLTgwLTM1LjgtODAtODBzMzUuOC04MCA4MC04MCA4MCAzNS44IDgwIDgwLTM1LjggODAtODAgODB6IixmaWxsOmF9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg5My4zIDI5My4zTDczMC43IDEzMC43Yy0uNy0uNy0xLjQtMS4zLTIuMS0yLS4xLS4xLS4zLS4yLS40LS4zLS43LS43LTEuNS0xLjMtMi4yLTEuOWE2NCA2NCAwIDAwLTIyLTExLjdWMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYzMzguNWMwLTE3LTYuNy0zMy4yLTE4LjctNDUuMnpNMzg0IDE4NGgyNTZ2MTA0SDM4NFYxODR6bTQ1NiA2NTZIMTg0VjE4NGgxMzZ2MTM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDMyMGMxNy43IDAgMzItMTQuMyAzMi0zMlYyMDUuOGwxMzYgMTM2Vjg0MHoiLGZpbGw6YX19XX19LG5hbWU6InNhdmUiLHRoZW1lOiJ0d290b25lIn07dC5kZWZhdWx0PWV9LDU4NzU5OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0xMzYgMzg0aDU2YzQuNCAwIDgtMy42IDgtOFYyMDBoMTc2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04SDE5NmMtMzcuNiAwLTY4IDMwLjQtNjggNjh2MTgwYzAgNC40IDMuNiA4IDggOHptNTEyLTE4NGgxNzZ2MTc2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LThWMTk2YzAtMzcuNi0zMC40LTY4LTY4LTY4SDY0OGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHpNMzc2IDgyNEgyMDBWNjQ4YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHYxODBjMCAzNy42IDMwLjQgNjggNjggNjhoMTgwYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em01MTItMTg0aC01NmMtNC40IDAtOCAzLjYtOCA4djE3Nkg2NDhjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoMTgwYzM3LjYgMCA2OC0zMC40IDY4LTY4VjY0OGMwLTQuNC0zLjYtOC04LTh6bTE2LTE2NEgxMjBjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNzg0YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04eiJ9fV19LG5hbWU6InNjYW4iLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSwyMzIxNzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTI4IDIyNEg3Njh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1Nkg1NDh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NkgzMjh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1Nkg5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NTc2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDgzMmMxNy43IDAgMzItMTQuMyAzMi0zMlYyNTZjMC0xNy43LTE0LjMtMzItMzItMzJ6TTQyNCA2ODhjMCA0LjQtMy42IDgtOCA4SDIzMmMtNC40IDAtOC0zLjYtOC04di00OGMwLTQuNCAzLjYtOCA4LThoMTg0YzQuNCAwIDggMy42IDggOHY0OHptMC0xMzZjMCA0LjQtMy42IDgtOCA4SDIzMmMtNC40IDAtOC0zLjYtOC04di00OGMwLTQuNCAzLjYtOCA4LThoMTg0YzQuNCAwIDggMy42IDggOHY0OHptMzc0LjUtOTEuM2wtMTY1IDIyOC43YTE1LjkgMTUuOSAwIDAxLTI1LjggMEw0OTMuNSA1MzEuMmMtMy44LTUuMyAwLTEyLjcgNi41LTEyLjdoNTQuOWM1LjEgMCA5LjkgMi41IDEyLjkgNi42bDUyLjggNzMuMSAxMDMuNy0xNDMuN2MzLTQuMiA3LjgtNi42IDEyLjktNi42SDc5MmM2LjUuMSAxMC4zIDcuNSA2LjUgMTIuOHoifX1dfSxuYW1lOiJzY2hlZHVsZSIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSwzNTk3NDpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTI4IDIyNEg3Njh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1Nkg1NDh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NkgzMjh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1Nkg5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NTc2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDgzMmMxNy43IDAgMzItMTQuMyAzMi0zMlYyNTZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA1NjhIMTM2VjI5NmgxMjB2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZoMTQ4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2aDE0OHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmgxMjB2NDk2ek00MTYgNDk2SDIzMmMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgxODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6bTAgMTM2SDIzMmMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgxODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6bTMwOC4yLTE3Ny40TDYyMC42IDU5OC4zbC01Mi44LTczLjFjLTMtNC4yLTcuOC02LjYtMTIuOS02LjZINTAwYy02LjUgMC0xMC4zIDcuNC02LjUgMTIuN2wxMTQuMSAxNTguMmExNS45IDE1LjkgMCAwMDI1LjggMGwxNjUtMjI4LjdjMy44LTUuMyAwLTEyLjctNi41LTEyLjdINzM3Yy01LS4xLTkuOCAyLjQtMTIuOCA2LjV6In19XX0sbmFtZToic2NoZWR1bGUiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSwxMzU0OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOmZ1bmN0aW9uKGEsbil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTc2OCAzNTJjMCA0LjQtMy42IDgtOCA4aC01NmMtNC40IDAtOC0zLjYtOC04di01Nkg1NDh2NTZjMCA0LjQtMy42IDgtOCA4aC01NmMtNC40IDAtOC0zLjYtOC04di01NkgzMjh2NTZjMCA0LjQtMy42IDgtOCA4aC01NmMtNC40IDAtOC0zLjYtOC04di01NkgxMzZ2NDk2aDc1MlYyOTZINzY4djU2ek00MjQgNjg4YzAgNC40LTMuNiA4LTggOEgyMzJjLTQuNCAwLTgtMy42LTgtOHYtNDhjMC00LjQgMy42LTggOC04aDE4NGM0LjQgMCA4IDMuNiA4IDh2NDh6bTAtMTM2YzAgNC40LTMuNiA4LTggOEgyMzJjLTQuNCAwLTgtMy42LTgtOHYtNDhjMC00LjQgMy42LTggOC04aDE4NGM0LjQgMCA4IDMuNiA4IDh2NDh6bTM3NC40LTkxLjJsLTE2NSAyMjguN2ExNS45IDE1LjkgMCAwMS0yNS44IDBMNDkzLjUgNTMxLjNjLTMuOC01LjMgMC0xMi43IDYuNS0xMi43aDU0LjljNS4xIDAgOS45IDIuNCAxMi45IDYuNmw1Mi44IDczLjEgMTAzLjYtMTQzLjdjMy00LjEgNy44LTYuNiAxMi44LTYuNWg1NC45YzYuNSAwIDEwLjMgNy40IDYuNSAxMi43eiIsZmlsbDpufX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik03MjQuMiA0NTQuNkw2MjAuNiA1OTguM2wtNTIuOC03My4xYy0zLTQuMi03LjgtNi42LTEyLjktNi42SDUwMGMtNi41IDAtMTAuMyA3LjQtNi41IDEyLjdsMTE0LjEgMTU4LjJhMTUuOSAxNS45IDAgMDAyNS44IDBsMTY1LTIyOC43YzMuOC01LjMgMC0xMi43LTYuNS0xMi43SDczN2MtNS0uMS05LjggMi40LTEyLjggNi41ek00MTYgNDk2SDIzMmMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgxODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6IixmaWxsOmF9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkyOCAyMjRINzY4di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZINTQ4di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZIMzI4di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjU3NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg4MzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjU2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNTY4SDEzNlYyOTZoMTIwdjU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2aDE0OHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmgxNDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZoMTIwdjQ5NnoiLGZpbGw6YX19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNDE2IDYzMkgyMzJjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMTg0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04eiIsZmlsbDphfX1dfX0sbmFtZToic2NoZWR1bGUiLHRoZW1lOiJ0d290b25lIn07dC5kZWZhdWx0PWV9LDkwNTg2OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01NjcuMSA1MTJsMzE4LjUtMzE5LjNjNS01IDEuNS0xMy43LTUuNi0xMy43aC05MC41Yy0yLjEgMC00LjIuOC01LjYgMi4zbC0yNzMuMyAyNzQtOTAuMi05MC41YzEyLjUtMjIuMSAxOS43LTQ3LjYgMTkuNy03NC44IDAtODMuOS02OC4xLTE1Mi0xNTItMTUycy0xNTIgNjguMS0xNTIgMTUyIDY4LjEgMTUyIDE1MiAxNTJjMjcuNyAwIDUzLjYtNy40IDc1LjktMjAuM2w5MCA5MC4zLTkwLjEgOTAuM0ExNTEuMDQgMTUxLjA0IDAgMDAyODggNTgyYy04My45IDAtMTUyIDY4LjEtMTUyIDE1MnM2OC4xIDE1MiAxNTIgMTUyIDE1Mi02OC4xIDE1Mi0xNTJjMC0yNy4yLTcuMi01Mi43LTE5LjctNzQuOGw5MC4yLTkwLjUgMjczLjMgMjc0YzEuNSAxLjUgMy41IDIuMyA1LjYgMi4zSDg4MGM3LjEgMCAxMC43LTguNiA1LjYtMTMuN0w1NjcuMSA1MTJ6TTI4OCAzNzBjLTQ0LjEgMC04MC0zNS45LTgwLTgwczM1LjktODAgODAtODAgODAgMzUuOSA4MCA4MC0zNS45IDgwLTgwIDgwem0wIDQ0NGMtNDQuMSAwLTgwLTM1LjktODAtODBzMzUuOS04MCA4MC04MCA4MCAzNS45IDgwIDgwLTM1LjkgODAtODAgODB6In19XX0sbmFtZToic2Npc3NvciIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDY2NTk4OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MDkuNiA4NTQuNUw2NDkuOSA1OTQuOEM2OTAuMiA1NDIuNyA3MTIgNDc5IDcxMiA0MTJjMC04MC4yLTMxLjMtMTU1LjQtODcuOS0yMTIuMS01Ni42LTU2LjctMTMyLTg3LjktMjEyLjEtODcuOXMtMTU1LjUgMzEuMy0yMTIuMSA4Ny45QzE0My4yIDI1Ni41IDExMiAzMzEuOCAxMTIgNDEyYzAgODAuMSAzMS4zIDE1NS41IDg3LjkgMjEyLjFDMjU2LjUgNjgwLjggMzMxLjggNzEyIDQxMiA3MTJjNjcgMCAxMzAuNi0yMS44IDE4Mi43LTYybDI1OS43IDI1OS42YTguMiA4LjIgMCAwMDExLjYgMGw0My42LTQzLjVhOC4yIDguMiAwIDAwMC0xMS42ek01NzAuNCA1NzAuNEM1MjggNjEyLjcgNDcxLjggNjM2IDQxMiA2MzZzLTExNi0yMy4zLTE1OC40LTY1LjZDMjExLjMgNTI4IDE4OCA0NzEuOCAxODggNDEyczIzLjMtMTE2LjEgNjUuNi0xNTguNEMyOTYgMjExLjMgMzUyLjIgMTg4IDQxMiAxODhzMTE2LjEgMjMuMiAxNTguNCA2NS42UzYzNiAzNTIuMiA2MzYgNDEycy0yMy4zIDExNi4xLTY1LjYgMTU4LjR6In19XX0sbmFtZToic2VhcmNoIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNTQ0MjM6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg2Ni45IDE2OS45TDUyNy4xIDU0LjFDNTIzIDUyLjcgNTE3LjUgNTIgNTEyIDUycy0xMSAuNy0xNS4xIDIuMUwxNTcuMSAxNjkuOWMtOC4zIDIuOC0xNS4xIDEyLjQtMTUuMSAyMS4ydjQ4Mi40YzAgOC44IDUuNyAyMC40IDEyLjYgMjUuOUw0OTkuMyA5NjhjMy41IDIuNyA4IDQuMSAxMi42IDQuMXM5LjItMS40IDEyLjYtNC4xbDM0NC43LTI2OC42YzYuOS01LjQgMTIuNi0xNyAxMi42LTI1LjlWMTkxLjFjLjItOC44LTYuNi0xOC4zLTE0LjktMjEuMnpNNjI2LjggNTU0Yy00OC41IDQ4LjUtMTIzIDU1LjItMTc4LjYgMjAuMWwtNzcuNSA3Ny41YTguMDMgOC4wMyAwIDAxLTExLjMgMGwtMzQtMzRhOC4wMyA4LjAzIDAgMDEwLTExLjNsNzcuNS03Ny41Yy0zNS4xLTU1LjctMjguNC0xMzAuMSAyMC4xLTE3OC42IDU2LjMtNTYuMyAxNDcuNS01Ni4zIDIwMy44IDAgNTYuMyA1Ni4zIDU2LjMgMTQ3LjUgMCAyMDMuOHptLTE1OC41NC00NS4yN2E4MC4xIDgwLjEgMCAxMDExMy4yNy0xMTMuMjggODAuMSA4MC4xIDAgMTAtMTEzLjI3IDExMy4yOHoifX1dfSxuYW1lOiJzZWN1cml0eS1zY2FuIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDg0ODU5OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NjYuOSAxNjkuOUw1MjcuMSA1NC4xQzUyMyA1Mi43IDUxNy41IDUyIDUxMiA1MnMtMTEgLjctMTUuMSAyLjFMMTU3LjEgMTY5LjljLTguMyAyLjgtMTUuMSAxMi40LTE1LjEgMjEuMnY0ODIuNGMwIDguOCA1LjcgMjAuNCAxMi42IDI1LjlMNDk5LjMgOTY4YzMuNSAyLjcgOCA0LjEgMTIuNiA0LjFzOS4yLTEuNCAxMi42LTQuMWwzNDQuNy0yNjguNmM2LjktNS40IDEyLjYtMTcgMTIuNi0yNS45VjE5MS4xYy4yLTguOC02LjYtMTguMy0xNC45LTIxLjJ6TTgxMCA2NTQuM0w1MTIgODg2LjUgMjE0IDY1NC4zVjIyNi43bDI5OC0xMDEuNiAyOTggMTAxLjZ2NDI3LjZ6TTQwMi45IDUyOC44bC03Ny41IDc3LjVhOC4wMyA4LjAzIDAgMDAwIDExLjNsMzQgMzRjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGw3Ny41LTc3LjVjNTUuNyAzNS4xIDEzMC4xIDI4LjQgMTc4LjYtMjAuMSA1Ni4zLTU2LjMgNTYuMy0xNDcuNSAwLTIwMy44LTU2LjMtNTYuMy0xNDcuNS01Ni4zLTIwMy44IDAtNDguNSA0OC41LTU1LjIgMTIzLTIwLjEgMTc4LjZ6bTY1LjQtMTMzLjNjMzEuMy0zMS4zIDgyLTMxLjMgMTEzLjIgMCAzMS4zIDMxLjMgMzEuMyA4MiAwIDExMy4yLTMxLjMgMzEuMy04MiAzMS4zLTExMy4yIDBzLTMxLjMtODEuOSAwLTExMy4yeiJ9fV19LG5hbWU6InNlY3VyaXR5LXNjYW4iLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw5MTM0NTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjpmdW5jdGlvbihhLG4pe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NjYuOSAxNjkuOUw1MjcuMSA1NC4xQzUyMyA1Mi43IDUxNy41IDUyIDUxMiA1MnMtMTEgLjctMTUuMSAyLjFMMTU3LjEgMTY5LjljLTguMyAyLjgtMTUuMSAxMi40LTE1LjEgMjEuMnY0ODIuNGMwIDguOCA1LjcgMjAuNCAxMi42IDI1LjlMNDk5LjMgOTY4YzMuNSAyLjcgOCA0LjEgMTIuNiA0LjFzOS4yLTEuNCAxMi42LTQuMWwzNDQuNy0yNjguNmM2LjktNS40IDEyLjYtMTcgMTIuNi0yNS45VjE5MS4xYy4yLTguOC02LjYtMTguMy0xNC45LTIxLjJ6TTgxMCA2NTQuM0w1MTIgODg2LjUgMjE0IDY1NC4zVjIyNi43bDI5OC0xMDEuNiAyOTggMTAxLjZ2NDI3LjZ6IixmaWxsOmF9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQ2MC43IDQ1MS4xYTgwLjEgODAuMSAwIDEwMTYwLjIgMCA4MC4xIDgwLjEgMCAxMC0xNjAuMiAweiIsZmlsbDpufX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0yMTQgMjI2Ljd2NDI3LjZsMjk4IDIzMi4yIDI5OC0yMzIuMlYyMjYuN0w1MTIgMTI1LjEgMjE0IDIyNi43em00MjguNyAxMjIuNWM1Ni4zIDU2LjMgNTYuMyAxNDcuNSAwIDIwMy44LTQ4LjUgNDguNS0xMjMgNTUuMi0xNzguNiAyMC4xbC03Ny41IDc3LjVhOC4wMyA4LjAzIDAgMDEtMTEuMyAwbC0zNC0zNGE4LjAzIDguMDMgMCAwMTAtMTEuM2w3Ny41LTc3LjVjLTM1LjEtNTUuNy0yOC40LTEzMC4xIDIwLjEtMTc4LjYgNTYuMy01Ni4zIDE0Ny41LTU2LjMgMjAzLjggMHoiLGZpbGw6bn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNDE4LjggNTI3LjhsLTc3LjUgNzcuNWE4LjAzIDguMDMgMCAwMDAgMTEuM2wzNCAzNGMzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDc3LjUtNzcuNWM1NS42IDM1LjEgMTMwLjEgMjguNCAxNzguNi0yMC4xIDU2LjMtNTYuMyA1Ni4zLTE0Ny41IDAtMjAzLjgtNTYuMy01Ni4zLTE0Ny41LTU2LjMtMjAzLjggMC00OC41IDQ4LjUtNTUuMiAxMjIuOS0yMC4xIDE3OC42em02NS40LTEzMy4zYTgwLjEgODAuMSAwIDAxMTEzLjMgMCA4MC4xIDgwLjEgMCAwMTAgMTEzLjNjLTMxLjMgMzEuMy04MiAzMS4zLTExMy4zIDBzLTMxLjMtODIgMC0xMTMuM3oiLGZpbGw6YX19XX19LG5hbWU6InNlY3VyaXR5LXNjYW4iLHRoZW1lOiJ0d290b25lIn07dC5kZWZhdWx0PWV9LDc0MDgzOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDM2MGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOEgxODRWMTg0aDY1NnYzMjBjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTY1My4zIDU5OS40bDUyLjItNTIuMmE4LjAxIDguMDEgMCAwMC00LjctMTMuNmwtMTc5LjQtMjFjLTUuMS0uNi05LjUgMy43LTguOSA4LjlsMjEgMTc5LjRjLjggNi42IDguOSA5LjQgMTMuNiA0LjdsNTIuNC01Mi40IDI1Ni4yIDI1Ni4yYzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBsNDIuNC00Mi40YzMuMS0zLjEgMy4xLTguMiAwLTExLjNMNjUzLjMgNTk5LjR6In19XX0sbmFtZToic2VsZWN0Iix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNDIzOTk6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJkZWZzIixhdHRyczp7fSxjaGlsZHJlbjpbe3RhZzoic3R5bGUiLGF0dHJzOnt9fV19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNOTMxLjQgNDk4LjlMOTQuOSA3OS41Yy0zLjQtMS43LTcuMy0yLjEtMTEtMS4yYTE1Ljk5IDE1Ljk5IDAgMDAtMTEuNyAxOS4zbDg2LjIgMzUyLjJjMS4zIDUuMyA1LjIgOS42IDEwLjQgMTEuM2wxNDcuNyA1MC43LTE0Ny42IDUwLjdjLTUuMiAxLjgtOS4xIDYtMTAuMyAxMS4zTDcyLjIgOTI2LjVjLS45IDMuNy0uNSA3LjYgMS4yIDEwLjkgMy45IDcuOSAxMy41IDExLjEgMjEuNSA3LjJsODM2LjUtNDE3YzMuMS0xLjUgNS42LTQuMSA3LjItNy4xIDMuOS04IC43LTE3LjYtNy4yLTIxLjZ6TTE3MC44IDgyNi4zbDUwLjMtMjA1LjYgMjk1LjItMTAxLjNjMi4zLS44IDQuMi0yLjYgNS01IDEuNC00LjItLjgtOC43LTUtMTAuMkwyMjEuMSA0MDMgMTcxIDE5OC4ybDYyOCAzMTQuOS02MjguMiAzMTMuMnoifX1dfSxuYW1lOiJzZW5kIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sMjk4OTY6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMi41IDM5MC42Yy0yOS45IDAtNTcuOSAxMS42LTc5LjEgMzIuOC0yMS4xIDIxLjItMzIuOCA0OS4yLTMyLjggNzkuMSAwIDI5LjkgMTEuNyA1Ny45IDMyLjggNzkuMSAyMS4yIDIxLjEgNDkuMiAzMi44IDc5LjEgMzIuOCAyOS45IDAgNTcuOS0xMS43IDc5LjEtMzIuOCAyMS4xLTIxLjIgMzIuOC00OS4yIDMyLjgtNzkuMSAwLTI5LjktMTEuNy01Ny45LTMyLjgtNzkuMWExMTAuOTYgMTEwLjk2IDAgMDAtNzkuMS0zMi44em00MTIuMyAyMzUuNWwtNjUuNC01NS45YzMuMS0xOSA0LjctMzguNCA0LjctNTcuN3MtMS42LTM4LjgtNC43LTU3LjdsNjUuNC01NS45YTMyLjAzIDMyLjAzIDAgMDA5LjMtMzUuMmwtLjktMi42YTQ0Mi41IDQ0Mi41IDAgMDAtNzkuNi0xMzcuN2wtMS44LTIuMWEzMi4xMiAzMi4xMiAwIDAwLTM1LjEtOS41bC04MS4yIDI4LjljLTMwLTI0LjYtNjMuNC00NC05OS42LTU3LjVsLTE1LjctODQuOWEzMi4wNSAzMi4wNSAwIDAwLTI1LjgtMjUuN2wtMi43LS41Yy01Mi05LjQtMTA2LjgtOS40LTE1OC44IDBsLTIuNy41YTMyLjA1IDMyLjA1IDAgMDAtMjUuOCAyNS43bC0xNS44IDg1LjNhMzUzLjQ0IDM1My40NCAwIDAwLTk4LjkgNTcuM2wtODEuOC0yOS4xYTMyIDMyIDAgMDAtMzUuMSA5LjVsLTEuOCAyLjFhNDQ1LjkzIDQ0NS45MyAwIDAwLTc5LjYgMTM3LjdsLS45IDIuNmMtNC41IDEyLjUtLjggMjYuNSA5LjMgMzUuMmw2Ni4yIDU2LjVjLTMuMSAxOC44LTQuNiAzOC00LjYgNTcgMCAxOS4yIDEuNSAzOC40IDQuNiA1N2wtNjYgNTYuNWEzMi4wMyAzMi4wMyAwIDAwLTkuMyAzNS4ybC45IDIuNmMxOC4xIDUwLjMgNDQuOCA5Ni44IDc5LjYgMTM3LjdsMS44IDIuMWEzMi4xMiAzMi4xMiAwIDAwMzUuMSA5LjVsODEuOC0yOS4xYzI5LjggMjQuNSA2MyA0My45IDk4LjkgNTcuM2wxNS44IDg1LjNhMzIuMDUgMzIuMDUgMCAwMDI1LjggMjUuN2wyLjcuNWE0NDguMjcgNDQ4LjI3IDAgMDAxNTguOCAwbDIuNy0uNWEzMi4wNSAzMi4wNSAwIDAwMjUuOC0yNS43bDE1LjctODQuOWMzNi4yLTEzLjYgNjkuNi0zMi45IDk5LjYtNTcuNWw4MS4yIDI4LjlhMzIgMzIgMCAwMDM1LjEtOS41bDEuOC0yLjFjMzQuOC00MS4xIDYxLjUtODcuNCA3OS42LTEzNy43bC45LTIuNmM0LjMtMTIuNC42LTI2LjMtOS41LTM1em0tNDEyLjMgNTIuMmMtOTcuMSAwLTE3NS44LTc4LjctMTc1LjgtMTc1LjhzNzguNy0xNzUuOCAxNzUuOC0xNzUuOCAxNzUuOCA3OC43IDE3NS44IDE3NS44LTc4LjcgMTc1LjgtMTc1LjggMTc1Ljh6In19XX0sbmFtZToic2V0dGluZyIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw1MjY1NzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTI0LjggNjI1LjdsLTY1LjUtNTZjMy4xLTE5IDQuNy0zOC40IDQuNy01Ny44cy0xLjYtMzguOC00LjctNTcuOGw2NS41LTU2YTMyLjAzIDMyLjAzIDAgMDA5LjMtMzUuMmwtLjktMi42YTQ0My43NCA0NDMuNzQgMCAwMC03OS43LTEzNy45bC0xLjgtMi4xYTMyLjEyIDMyLjEyIDAgMDAtMzUuMS05LjVsLTgxLjMgMjguOWMtMzAtMjQuNi02My41LTQ0LTk5LjctNTcuNmwtMTUuNy04NWEzMi4wNSAzMi4wNSAwIDAwLTI1LjgtMjUuN2wtMi43LS41Yy01Mi4xLTkuNC0xMDYuOS05LjQtMTU5IDBsLTIuNy41YTMyLjA1IDMyLjA1IDAgMDAtMjUuOCAyNS43bC0xNS44IDg1LjRhMzUxLjg2IDM1MS44NiAwIDAwLTk5IDU3LjRsLTgxLjktMjkuMWEzMiAzMiAwIDAwLTM1LjEgOS41bC0xLjggMi4xYTQ0Ni4wMiA0NDYuMDIgMCAwMC03OS43IDEzNy45bC0uOSAyLjZjLTQuNSAxMi41LS44IDI2LjUgOS4zIDM1LjJsNjYuMyA1Ni42Yy0zLjEgMTguOC00LjYgMzgtNC42IDU3LjEgMCAxOS4yIDEuNSAzOC40IDQuNiA1Ny4xTDk5IDYyNS41YTMyLjAzIDMyLjAzIDAgMDAtOS4zIDM1LjJsLjkgMi42YzE4LjEgNTAuNCA0NC45IDk2LjkgNzkuNyAxMzcuOWwxLjggMi4xYTMyLjEyIDMyLjEyIDAgMDAzNS4xIDkuNWw4MS45LTI5LjFjMjkuOCAyNC41IDYzLjEgNDMuOSA5OSA1Ny40bDE1LjggODUuNGEzMi4wNSAzMi4wNSAwIDAwMjUuOCAyNS43bDIuNy41YTQ0OS40IDQ0OS40IDAgMDAxNTkgMGwyLjctLjVhMzIuMDUgMzIuMDUgMCAwMDI1LjgtMjUuN2wxNS43LTg1YTM1MCAzNTAgMCAwMDk5LjctNTcuNmw4MS4zIDI4LjlhMzIgMzIgMCAwMDM1LjEtOS41bDEuOC0yLjFjMzQuOC00MS4xIDYxLjYtODcuNSA3OS43LTEzNy45bC45LTIuNmM0LjUtMTIuMy44LTI2LjMtOS4zLTM1ek03ODguMyA0NjUuOWMyLjUgMTUuMSAzLjggMzAuNiAzLjggNDYuMXMtMS4zIDMxLTMuOCA0Ni4xbC02LjYgNDAuMSA3NC43IDYzLjlhMzcwLjAzIDM3MC4wMyAwIDAxLTQyLjYgNzMuNkw3MjEgNzAyLjhsLTMxLjQgMjUuOGMtMjMuOSAxOS42LTUwLjUgMzUtNzkuMyA0NS44bC0zOC4xIDE0LjMtMTcuOSA5N2EzNzcuNSAzNzcuNSAwIDAxLTg1IDBsLTE3LjktOTcuMi0zNy44LTE0LjVjLTI4LjUtMTAuOC01NS0yNi4yLTc4LjctNDUuN2wtMzEuNC0yNS45LTkzLjQgMzMuMmMtMTctMjIuOS0zMS4yLTQ3LjYtNDIuNi03My42bDc1LjUtNjQuNS02LjUtNDBjLTIuNC0xNC45LTMuNy0zMC4zLTMuNy00NS41IDAtMTUuMyAxLjItMzAuNiAzLjctNDUuNWw2LjUtNDAtNzUuNS02NC41YzExLjMtMjYuMSAyNS42LTUwLjcgNDIuNi03My42bDkzLjQgMzMuMiAzMS40LTI1LjljMjMuNy0xOS41IDUwLjItMzQuOSA3OC43LTQ1LjdsMzcuOS0xNC4zIDE3LjktOTcuMmMyOC4xLTMuMiA1Ni44LTMuMiA4NSAwbDE3LjkgOTcgMzguMSAxNC4zYzI4LjcgMTAuOCA1NS40IDI2LjIgNzkuMyA0NS44bDMxLjQgMjUuOCA5Mi44LTMyLjljMTcgMjIuOSAzMS4yIDQ3LjYgNDIuNiA3My42TDc4MS44IDQyNmw2LjUgMzkuOXpNNTEyIDMyNmMtOTcuMiAwLTE3NiA3OC44LTE3NiAxNzZzNzguOCAxNzYgMTc2IDE3NiAxNzYtNzguOCAxNzYtMTc2LTc4LjgtMTc2LTE3Ni0xNzZ6bTc5LjIgMjU1LjJBMTExLjYgMTExLjYgMCAwMTUxMiA2MTRjLTI5LjkgMC01OC0xMS43LTc5LjItMzIuOEExMTEuNiAxMTEuNiAwIDAxNDAwIDUwMmMwLTI5LjkgMTEuNy01OCAzMi44LTc5LjJDNDU0IDQwMS42IDQ4Mi4xIDM5MCA1MTIgMzkwYzI5LjkgMCA1OCAxMS42IDc5LjIgMzIuOEExMTEuNiAxMTEuNiAwIDAxNjI0IDUwMmMwIDI5LjktMTEuNyA1OC0zMi44IDc5LjJ6In19XX0sbmFtZToic2V0dGluZyIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDYwMDc1OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOmZ1bmN0aW9uKGEsbil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg1OS4zIDU2OS43bC4yLjFjMy4xLTE4LjkgNC42LTM4LjIgNC42LTU3LjMgMC0xNy4xLTEuMy0zNC4zLTMuNy01MS4xIDIuNCAxNi43IDMuNiAzMy42IDMuNiA1MC41IDAgMTkuNC0xLjYgMzguOC00LjcgNTcuOHpNOTkgMzk4LjFjLS41LS40LS45LS44LTEuNC0xLjMuNy43IDEuNCAxLjQgMi4yIDIuMWw2NS41IDU1Ljl2LS4xTDk5IDM5OC4xem01MzYuNi0yMTZoLjFsLTE1LjUtODMuOGMtLjItMS0uNC0xLjktLjctMi44LjEuNS4zIDEuMS40IDEuNmwxNS43IDg1em01NCA1NDYuNWwzMS40LTI1LjggOTIuOCAzMi45YzE3LTIyLjkgMzEuMy00Ny41IDQyLjYtNzMuNmwtNzQuNy02My45IDYuNi00MC4xYzIuNS0xNS4xIDMuOC0zMC42IDMuOC00Ni4xcy0xLjMtMzEtMy44LTQ2LjFsLTYuNS0zOS45IDc0LjctNjMuOWMtMTEuNC0yNi0yNS42LTUwLjctNDIuNi03My42bC05Mi44IDMyLjktMzEuNC0yNS44Yy0yMy45LTE5LjYtNTAuNi0zNS03OS4zLTQ1LjhsLTM4LjEtMTQuMy0xNy45LTk3YTM3Ny41IDM3Ny41IDAgMDAtODUgMGwtMTcuOSA5Ny4yLTM3LjkgMTQuM2MtMjguNSAxMC44LTU1IDI2LjItNzguNyA0NS43bC0zMS40IDI1LjktOTMuNC0zMy4yYy0xNyAyMi45LTMxLjMgNDcuNS00Mi42IDczLjZsNzUuNSA2NC41LTYuNSA0MGMtMi41IDE0LjktMy43IDMwLjItMy43IDQ1LjUgMCAxNS4yIDEuMyAzMC42IDMuNyA0NS41bDYuNSA0MC03NS41IDY0LjVjMTEuNCAyNiAyNS42IDUwLjcgNDIuNiA3My42bDkzLjQtMzMuMiAzMS40IDI1LjljMjMuNyAxOS41IDUwLjIgMzQuOSA3OC43IDQ1LjdsMzcuOCAxNC41IDE3LjkgOTcuMmMyOC4yIDMuMiA1Ni45IDMuMiA4NSAwbDE3LjktOTcgMzguMS0xNC4zYzI4LjgtMTAuOCA1NS40LTI2LjIgNzkuMy00NS44em0tMTc3LjEtNTAuM2MtMzAuNSAwLTU5LjItNy44LTg0LjMtMjEuNUMzNzMuMyA2MjcgMzM2IDU2OC45IDMzNiA1MDJjMC05Ny4yIDc4LjgtMTc2IDE3Ni0xNzYgNjYuOSAwIDEyNSAzNy4zIDE1NC44IDkyLjIgMTMuNyAyNSAyMS41IDUzLjcgMjEuNSA4NC4zIDAgOTcuMS03OC43IDE3NS44LTE3NS44IDE3NS44ek0yMDcuMiA4MTIuOGMtNS41IDEuOS0xMS4yIDIuMy0xNi42IDEuMiA1LjcgMS4yIDExLjcgMSAxNy41LTFsODEuNC0yOWMtLjEtLjEtLjMtLjItLjQtLjNsLTgxLjkgMjkuMXptNzE3LjYtNDE0LjdsLTY1LjUgNTZjMCAuMi4xLjUuMS43bDY1LjQtNTUuOWM3LjEtNi4xIDExLjEtMTQuOSAxMS4yLTI0LS4zIDguOC00LjMgMTcuMy0xMS4yIDIzLjJ6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkzNS44IDY0Ni42Yy41IDQuNyAwIDkuNS0xLjcgMTQuMWwtLjkgMi42YTQ0Ni4wMiA0NDYuMDIgMCAwMS03OS43IDEzNy45bC0xLjggMi4xYTMyIDMyIDAgMDEtMzUuMSA5LjVsLTgxLjMtMjguOWEzNTAgMzUwIDAgMDEtOTkuNyA1Ny42bC0xNS43IDg1YTMyLjA1IDMyLjA1IDAgMDEtMjUuOCAyNS43bC0yLjcuNWE0NDUuMiA0NDUuMiAwIDAxLTc5LjIgNy4xaC4zYzI2LjcgMCA1My40LTIuNCA3OS40LTcuMWwyLjctLjVhMzIuMDUgMzIuMDUgMCAwMDI1LjgtMjUuN2wxNS43LTg0LjljMzYuMi0xMy42IDY5LjYtMzIuOSA5OS42LTU3LjVsODEuMiAyOC45YTMyIDMyIDAgMDAzNS4xLTkuNWwxLjgtMi4xYzM0LjgtNDEuMSA2MS41LTg3LjQgNzkuNi0xMzcuN2wuOS0yLjZjMS42LTQuNyAyLjEtOS43IDEuNS0xNC41eiIsZmlsbDpufX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02ODggNTAyYzAtMzAuMy03LjctNTguOS0yMS4yLTgzLjhDNjM3IDM2My4zIDU3OC45IDMyNiA1MTIgMzI2Yy05Ny4yIDAtMTc2IDc4LjgtMTc2IDE3NiAwIDY2LjkgMzcuMyAxMjUgOTIuMiAxNTQuOCAyNC45IDEzLjUgNTMuNCAyMS4yIDgzLjggMjEuMiA5Ny4yIDAgMTc2LTc4LjggMTc2LTE3NnptLTI4OCAwYzAtMjkuOSAxMS43LTU4IDMyLjgtNzkuMkM0NTQgNDAxLjYgNDgyLjEgMzkwIDUxMiAzOTBjMjkuOSAwIDU4IDExLjYgNzkuMiAzMi44QTExMS42IDExMS42IDAgMDE2MjQgNTAyYzAgMjkuOS0xMS43IDU4LTMyLjggNzkuMkExMTEuNiAxMTEuNiAwIDAxNTEyIDYxNGMtMjkuOSAwLTU4LTExLjctNzkuMi0zMi44QTExMS42IDExMS42IDAgMDE0MDAgNTAyeiIsZmlsbDphfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01OTQuMSA5NTIuMmEzMi4wNSAzMi4wNSAwIDAwMjUuOC0yNS43bDE1LjctODVhMzUwIDM1MCAwIDAwOTkuNy01Ny42bDgxLjMgMjguOWEzMiAzMiAwIDAwMzUuMS05LjVsMS44LTIuMWMzNC44LTQxLjEgNjEuNi04Ny41IDc5LjctMTM3LjlsLjktMi42YzEuNy00LjYgMi4yLTkuNCAxLjctMTQuMS0uOS03LjktNC43LTE1LjQtMTEtMjAuOWwtNjUuMy01NS45LS4yLS4xYzMuMS0xOSA0LjctMzguNCA0LjctNTcuOCAwLTE2LjktMS4yLTMzLjktMy42LTUwLjUtLjMtMi4yLS43LTQuNC0xLTYuNiAwLS4yLS4xLS41LS4xLS43bDY1LjUtNTZjNi45LTUuOSAxMC45LTE0LjQgMTEuMi0yMy4yLjEtNC0uNS04LjEtMS45LTEybC0uOS0yLjZhNDQzLjc0IDQ0My43NCAwIDAwLTc5LjctMTM3LjlsLTEuOC0yLjFhMzIuMTIgMzIuMTIgMCAwMC0zNS4xLTkuNWwtODEuMyAyOC45Yy0zMC0yNC42LTYzLjQtNDQtOTkuNi01Ny42aC0uMWwtMTUuNy04NWMtLjEtLjUtLjItMS4xLS40LTEuNmEzMi4wOCAzMi4wOCAwIDAwLTI1LjQtMjQuMWwtMi43LS41Yy01Mi4xLTkuNC0xMDYuOS05LjQtMTU5IDBsLTIuNy41YTMyLjA1IDMyLjA1IDAgMDAtMjUuOCAyNS43bC0xNS44IDg1LjRhMzUxLjg2IDM1MS44NiAwIDAwLTk5IDU3LjRsLTgxLjktMjkuMWEzMiAzMiAwIDAwLTM1LjEgOS41bC0xLjggMi4xYTQ0Ni4wMiA0NDYuMDIgMCAwMC03OS43IDEzNy45bC0uOSAyLjZhMzIuMDkgMzIuMDkgMCAwMDcuOSAzMy45Yy41LjQuOS45IDEuNCAxLjNsNjYuMyA1Ni42di4xYy0zLjEgMTguOC00LjYgMzcuOS00LjYgNTcgMCAxOS4yIDEuNSAzOC40IDQuNiA1Ny4xTDk5IDYyNS41YTMyLjAzIDMyLjAzIDAgMDAtOS4zIDM1LjJsLjkgMi42YzE4LjEgNTAuNCA0NC45IDk2LjkgNzkuNyAxMzcuOWwxLjggMi4xYzQuOSA1LjcgMTEuNCA5LjQgMTguNSAxMC43IDUuNCAxIDExLjEuNyAxNi42LTEuMmw4MS45LTI5LjFjLjEuMS4zLjIuNC4zIDI5LjcgMjQuMyA2Mi44IDQzLjYgOTguNiA1Ny4xbDE1LjggODUuNGEzMi4wNSAzMi4wNSAwIDAwMjUuOCAyNS43bDIuNy41YzI2LjEgNC43IDUyLjggNy4xIDc5LjUgNy4xaC4zYzI2LjYgMCA1My4zLTIuNCA3OS4yLTcuMWwyLjctLjV6bS0zOS44LTY2LjVhMzc3LjUgMzc3LjUgMCAwMS04NSAwbC0xNy45LTk3LjItMzcuOC0xNC41Yy0yOC41LTEwLjgtNTUtMjYuMi03OC43LTQ1LjdsLTMxLjQtMjUuOS05My40IDMzLjJjLTE3LTIyLjktMzEuMi00Ny42LTQyLjYtNzMuNmw3NS41LTY0LjUtNi41LTQwYy0yLjQtMTQuOS0zLjctMzAuMy0zLjctNDUuNSAwLTE1LjMgMS4yLTMwLjYgMy43LTQ1LjVsNi41LTQwLTc1LjUtNjQuNWMxMS4zLTI2LjEgMjUuNi01MC43IDQyLjYtNzMuNmw5My40IDMzLjIgMzEuNC0yNS45YzIzLjctMTkuNSA1MC4yLTM0LjkgNzguNy00NS43bDM3LjktMTQuMyAxNy45LTk3LjJjMjguMS0zLjIgNTYuOC0zLjIgODUgMGwxNy45IDk3IDM4LjEgMTQuM2MyOC43IDEwLjggNTUuNCAyNi4yIDc5LjMgNDUuOGwzMS40IDI1LjggOTIuOC0zMi45YzE3IDIyLjkgMzEuMiA0Ny42IDQyLjYgNzMuNkw3ODEuOCA0MjZsNi41IDM5LjljMi41IDE1LjEgMy44IDMwLjYgMy44IDQ2LjFzLTEuMyAzMS0zLjggNDYuMWwtNi42IDQwLjEgNzQuNyA2My45YTM3MC4wMyAzNzAuMDMgMCAwMS00Mi42IDczLjZMNzIxIDcwMi44bC0zMS40IDI1LjhjLTIzLjkgMTkuNi01MC41IDM1LTc5LjMgNDUuOGwtMzguMSAxNC4zLTE3LjkgOTd6IixmaWxsOmF9fV19fSxuYW1lOiJzZXR0aW5nIix0aGVtZToidHdvdG9uZSJ9O3QuZGVmYXVsdD1lfSwyNDY5NTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMzI0IDY2NmE0OCA0OCAwIDEwOTYgMCA0OCA0OCAwIDEwLTk2IDB6bTYxNi43LTMwOS42TDY2Ny42IDgzLjJDNjU1LjIgNzAuOSA2MzguNyA2NCA2MjEuMSA2NHMtMzQuMSA2LjgtNDYuNSAxOS4yTDgzLjMgNTc0LjVhNjUuODUgNjUuODUgMCAwMDAgOTMuMWwyNzMuMiAyNzMuMmMxMi4zIDEyLjMgMjguOSAxOS4yIDQ2LjUgMTkuMnMzNC4xLTYuOCA0Ni41LTE5LjJsNDkxLjMtNDkxLjNjMjUuNi0yNS43IDI1LjYtNjcuNS0uMS05My4xek00MDMgODgwLjFMMTQzLjkgNjIxbDQ3Ny4yLTQ3Ny4yIDI1OSAyNTkuMkw0MDMgODgwLjF6TTE1Mi44IDM3My43YTcuOSA3LjkgMCAwMDExLjIgMEwzNzMuNyAxNjRhNy45IDcuOSAwIDAwMC0xMS4ybC0zOC40LTM4LjRhNy45IDcuOSAwIDAwLTExLjIgMEwxMTQuMyAzMjMuOWE3LjkgNy45IDAgMDAwIDExLjJsMzguNSAzOC42em03MTguNiAyNzYuNmE3LjkgNy45IDAgMDAtMTEuMiAwTDY1MC4zIDg2MC4xYTcuOSA3LjkgMCAwMDAgMTEuMmwzOC40IDM4LjRhNy45IDcuOSAwIDAwMTEuMiAwTDkwOS43IDcwMGE3LjkgNy45IDAgMDAwLTExLjJsLTM4LjMtMzguNXoifX1dfSxuYW1lOiJzaGFrZSIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDQ1ODQzOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik03NTIgNjY0Yy0yOC41IDAtNTQuOCAxMC03NS40IDI2LjdMNDY5LjQgNTQwLjhhMTYwLjY4IDE2MC42OCAwIDAwMC01Ny42bDIwNy4yLTE0OS45QzY5Ny4yIDM1MCA3MjMuNSAzNjAgNzUyIDM2MGM2Ni4yIDAgMTIwLTUzLjggMTIwLTEyMHMtNTMuOC0xMjAtMTIwLTEyMC0xMjAgNTMuOC0xMjAgMTIwYzAgMTEuNiAxLjYgMjIuNyA0LjcgMzMuM0w0MzkuOSA0MTUuOEM0MTAuNyAzNzcuMSAzNjQuMyAzNTIgMzEyIDM1MmMtODguNCAwLTE2MCA3MS42LTE2MCAxNjBzNzEuNiAxNjAgMTYwIDE2MGM1Mi4zIDAgOTguNy0yNS4xIDEyNy45LTYzLjhsMTk2LjggMTQyLjVjLTMuMSAxMC42LTQuNyAyMS44LTQuNyAzMy4zIDAgNjYuMiA1My44IDEyMCAxMjAgMTIwczEyMC01My44IDEyMC0xMjAtNTMuOC0xMjAtMTIwLTEyMHptMC00NzZjMjguNyAwIDUyIDIzLjMgNTIgNTJzLTIzLjMgNTItNTIgNTItNTItMjMuMy01Mi01MiAyMy4zLTUyIDUyLTUyek0zMTIgNjAwYy00OC41IDAtODgtMzkuNS04OC04OHMzOS41LTg4IDg4LTg4IDg4IDM5LjUgODggODgtMzkuNSA4OC04OCA4OHptNDQwIDIzNmMtMjguNyAwLTUyLTIzLjMtNTItNTJzMjMuMy01MiA1Mi01MiA1MiAyMy4zIDUyIDUyLTIzLjMgNTItNTIgNTJ6In19XX0sbmFtZToic2hhcmUtYWx0Iix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sODEzOTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODgyIDI3Mi4xVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMkgxNzRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjEyOC4xYy0xNi43IDEtMzAgMTQuOS0zMCAzMS45djEzMS43YTE3NyAxNzcgMCAwMDE0LjQgNzAuNGM0LjMgMTAuMiA5LjYgMTkuOCAxNS42IDI4Ljl2MzQ1YzAgMTcuNiAxNC4zIDMyIDMyIDMyaDI3NFY3MzZoMTI4djE3NmgyNzRjMTcuNyAwIDMyLTE0LjMgMzItMzJWNTM1YTE3NSAxNzUgMCAwMDE1LjYtMjguOWM5LjUtMjIuMyAxNC40LTQ2IDE0LjQtNzAuNFYzMDRjMC0xNy0xMy4zLTMwLjktMzAtMzEuOXptLTcyIDU2OEg2NDBWNzA0YzAtMTcuNy0xNC4zLTMyLTMyLTMySDQxNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MTM2LjFIMjE0VjU5Ny45YzIuOSAxLjQgNS45IDIuOCA5IDQgMjIuMyA5LjQgNDYgMTQuMSA3MC40IDE0LjFzNDgtNC43IDcwLjQtMTQuMWMxMy44LTUuOCAyNi44LTEzLjIgMzguNy0yMi4xLjItLjEuNC0uMS42IDBhMTgwLjQgMTgwLjQgMCAwMDM4LjcgMjIuMWMyMi4zIDkuNCA0NiAxNC4xIDcwLjQgMTQuMSAyNC40IDAgNDgtNC43IDcwLjQtMTQuMSAxMy44LTUuOCAyNi44LTEzLjIgMzguNy0yMi4xLjItLjEuNC0uMS42IDBhMTgwLjQgMTgwLjQgMCAwMDM4LjcgMjIuMWMyMi4zIDkuNCA0NiAxNC4xIDcwLjQgMTQuMSAyNC40IDAgNDgtNC43IDcwLjQtMTQuMSAzLTEuMyA2LTIuNiA5LTR2MjQyLjJ6bTAtNTY4LjFIMjE0di04OGg1OTZ2ODh6In19XX0sbmFtZToic2hvcCIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSwyMzk0OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODIgMjcyLjFWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMySDE3NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MTI4LjFjLTE2LjcgMS0zMCAxNC45LTMwIDMxLjl2MTMxLjdhMTc3IDE3NyAwIDAwMTQuNCA3MC40YzQuMyAxMC4yIDkuNiAxOS44IDE1LjYgMjguOXYzNDVjMCAxNy42IDE0LjMgMzIgMzIgMzJoNjc2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjUzNWExNzUgMTc1IDAgMDAxNS42LTI4LjljOS41LTIyLjMgMTQuNC00NiAxNC40LTcwLjRWMzA0YzAtMTctMTMuMy0zMC45LTMwLTMxLjl6TTIxNCAxODRoNTk2djg4SDIxNHYtODh6bTM2MiA2NTYuMUg0NDhWNzM2aDEyOHYxMDQuMXptMjM0IDBINjQwVjcwNGMwLTE3LjctMTQuMy0zMi0zMi0zMkg0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjEzNi4xSDIxNFY1OTcuOWMyLjkgMS40IDUuOSAyLjggOSA0IDIyLjMgOS40IDQ2IDE0LjEgNzAuNCAxNC4xczQ4LTQuNyA3MC40LTE0LjFjMTMuOC01LjggMjYuOC0xMy4yIDM4LjctMjIuMS4yLS4xLjQtLjEuNiAwYTE4MC40IDE4MC40IDAgMDAzOC43IDIyLjFjMjIuMyA5LjQgNDYgMTQuMSA3MC40IDE0LjEgMjQuNCAwIDQ4LTQuNyA3MC40LTE0LjEgMTMuOC01LjggMjYuOC0xMy4yIDM4LjctMjIuMS4yLS4xLjQtLjEuNiAwYTE4MC40IDE4MC40IDAgMDAzOC43IDIyLjFjMjIuMyA5LjQgNDYgMTQuMSA3MC40IDE0LjEgMjQuNCAwIDQ4LTQuNyA3MC40LTE0LjEgMy0xLjMgNi0yLjYgOS00djI0Mi4yem0zMC00MDQuNGMwIDU5LjgtNDkgMTA4LjMtMTA5LjMgMTA4LjMtNDAuOCAwLTc2LjQtMjIuMS05NS4yLTU0LjktMi45LTUtOC4xLTguMS0xMy45LTguMWgtLjZjLTUuNyAwLTExIDMuMS0xMy45IDguMUExMDkuMjQgMTA5LjI0IDAgMDE1MTIgNTQ0Yy00MC43IDAtNzYuMi0yMi05NS01NC43LTMtNS4xLTguNC04LjMtMTQuMy04LjNzLTExLjQgMy4yLTE0LjMgOC4zYTEwOS42MyAxMDkuNjMgMCAwMS05NS4xIDU0LjdDMjMzIDU0NCAxODQgNDk1LjUgMTg0IDQzNS43di05MS4yYzAtLjMuMi0uNS41LS41aDY1NWMuMyAwIC41LjIuNS41djkxLjJ6In19XX0sbmFtZToic2hvcCIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDQ2MTkxOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOmZ1bmN0aW9uKGEsbil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTgzOS41IDM0NGgtNjU1Yy0uMyAwLS41LjItLjUuNXY5MS4yYzAgNTkuOCA0OSAxMDguMyAxMDkuMyAxMDguMyA0MC43IDAgNzYuMi0yMiA5NS4xLTU0LjcgMi45LTUuMSA4LjQtOC4zIDE0LjMtOC4zczExLjMgMy4yIDE0LjMgOC4zYzE4LjggMzIuNyA1NC4zIDU0LjcgOTUgNTQuNyA0MC44IDAgNzYuNC0yMi4xIDk1LjEtNTQuOSAyLjktNSA4LjItOC4xIDEzLjktOC4xaC42YzUuOCAwIDExIDMuMSAxMy45IDguMSAxOC44IDMyLjggNTQuNCA1NC45IDk1LjIgNTQuOUM3OTEgNTQ0IDg0MCA0OTUuNSA4NDAgNDM1Ljd2LTkxLjJjMC0uMy0uMi0uNS0uNS0uNXoiLGZpbGw6bn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODgyIDI3Mi4xVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMkgxNzRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjEyOC4xYy0xNi43IDEtMzAgMTQuOS0zMCAzMS45djEzMS43YTE3NyAxNzcgMCAwMDE0LjQgNzAuNGM0LjMgMTAuMiA5LjYgMTkuOCAxNS42IDI4Ljl2MzQ1YzAgMTcuNiAxNC4zIDMyIDMyIDMyaDY3NmMxNy43IDAgMzItMTQuMyAzMi0zMlY1MzVhMTc1IDE3NSAwIDAwMTUuNi0yOC45YzkuNS0yMi4zIDE0LjQtNDYgMTQuNC03MC40VjMwNGMwLTE3LTEzLjMtMzAuOS0zMC0zMS45ek0yMTQgMTg0aDU5NnY4OEgyMTR2LTg4em0zNjIgNjU2LjFINDQ4VjczNmgxMjh2MTA0LjF6bTIzNC40IDBINjQwVjcwNGMwLTE3LjctMTQuMy0zMi0zMi0zMkg0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjEzNi4xSDIxNFY1OTcuOWMyLjkgMS40IDUuOSAyLjggOSA0IDIyLjMgOS40IDQ2IDE0LjEgNzAuNCAxNC4xIDI0LjQgMCA0OC00LjcgNzAuNC0xNC4xIDEzLjgtNS44IDI2LjgtMTMuMiAzOC43LTIyLjEuMi0uMS40LS4xLjYgMGExODAuNCAxODAuNCAwIDAwMzguNyAyMi4xYzIyLjMgOS40IDQ2IDE0LjEgNzAuNCAxNC4xczQ4LTQuNyA3MC40LTE0LjFjMTMuOC01LjggMjYuOC0xMy4yIDM4LjctMjIuMS4yLS4xLjQtLjEuNiAwYTE4MC40IDE4MC40IDAgMDAzOC43IDIyLjFjMjIuMyA5LjQgNDYgMTQuMSA3MC40IDE0LjFzNDgtNC43IDcwLjQtMTQuMWMzLTEuMyA2LTIuNiA5LTR2MjQyLjJ6TTg0MCA0MzUuN2MwIDU5LjgtNDkgMTA4LjMtMTA5LjMgMTA4LjMtNDAuOCAwLTc2LjQtMjIuMS05NS4yLTU0LjktMi45LTUtOC4xLTguMS0xMy45LTguMWgtLjZjLTUuNyAwLTExIDMuMS0xMy45IDguMUExMDkuMjQgMTA5LjI0IDAgMDE1MTIgNTQ0Yy00MC43IDAtNzYuMi0yMi05NS01NC43LTMtNS4xLTguNC04LjMtMTQuMy04LjNzLTExLjQgMy4yLTE0LjMgOC4zYTEwOS42MyAxMDkuNjMgMCAwMS05NS4xIDU0LjdDMjMzIDU0NCAxODQgNDk1LjUgMTg0IDQzNS43di05MS4yYzAtLjMuMi0uNS41LS41aDY1NWMuMyAwIC41LjIuNS41djkxLjJ6IixmaWxsOmF9fV19fSxuYW1lOiJzaG9wIix0aGVtZToidHdvdG9uZSJ9O3QuZGVmYXVsdD1lfSwyODUyOTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiIwIDAgMTAyNCAxMDI0Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTIyLjkgNzAxLjlIMzI3LjRsMjkuOS02MC45IDQ5Ni44LS45YzE2LjggMCAzMS4yLTEyIDM0LjItMjguNmw2OC44LTM4NS4xYzEuOC0xMC4xLS45LTIwLjUtNy41LTI4LjRhMzQuOTkgMzQuOTkgMCAwMC0yNi42LTEyLjVsLTYzMi0yLjEtNS40LTI1LjRjLTMuNC0xNi4yLTE4LTI4LTM0LjYtMjhIOTYuNWEzNS4zIDM1LjMgMCAxMDAgNzAuNmgxMjUuOUwyNDYgMzEyLjhsNTguMSAyODEuMy03NC44IDEyMi4xYTM0Ljk2IDM0Ljk2IDAgMDAtMyAzNi44YzYgMTEuOSAxOC4xIDE5LjQgMzEuNSAxOS40aDYyLjhhMTAyLjQzIDEwMi40MyAwIDAwLTIwLjYgNjEuN2MwIDU2LjYgNDYgMTAyLjYgMTAyLjYgMTAyLjZzMTAyLjYtNDYgMTAyLjYtMTAyLjZjMC0yMi4zLTcuNC00NC0yMC42LTYxLjdoMTYxLjFhMTAyLjQzIDEwMi40MyAwIDAwLTIwLjYgNjEuN2MwIDU2LjYgNDYgMTAyLjYgMTAyLjYgMTAyLjZzMTAyLjYtNDYgMTAyLjYtMTAyLjZjMC0yMi4zLTcuNC00NC0yMC42LTYxLjdIOTIzYzE5LjQgMCAzNS4zLTE1LjggMzUuMy0zNS4zYTM1LjQyIDM1LjQyIDAgMDAtMzUuNC0zNS4yek0zMDUuNyAyNTNsNTc1LjggMS45LTU2LjQgMzE1LjgtNDUyLjMuOEwzMDUuNyAyNTN6bTk2LjkgNjEyLjdjLTE3LjQgMC0zMS42LTE0LjItMzEuNi0zMS42IDAtMTcuNCAxNC4yLTMxLjYgMzEuNi0zMS42czMxLjYgMTQuMiAzMS42IDMxLjZhMzEuNiAzMS42IDAgMDEtMzEuNiAzMS42em0zMjUuMSAwYy0xNy40IDAtMzEuNi0xNC4yLTMxLjYtMzEuNiAwLTE3LjQgMTQuMi0zMS42IDMxLjYtMzEuNnMzMS42IDE0LjIgMzEuNiAzMS42YTMxLjYgMzEuNiAwIDAxLTMxLjYgMzEuNnoifX1dfSxuYW1lOiJzaG9wcGluZy1jYXJ0Iix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNjc1NTc6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTgzMiAzMTJINjk2di0xNmMwLTEwMS42LTgyLjQtMTg0LTE4NC0xODRzLTE4NCA4Mi40LTE4NCAxODR2MTZIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY1MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjM0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTIwOCAwSDQwMHYtMTZjMC02MS45IDUwLjEtMTEyIDExMi0xMTJzMTEyIDUwLjEgMTEyIDExMnYxNnoifX1dfSxuYW1lOiJzaG9wcGluZyIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw5MTQ3MDpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODMyIDMxMkg2OTZ2LTE2YzAtMTAxLjYtODIuNC0xODQtMTg0LTE4NHMtMTg0IDgyLjQtMTg0IDE4NHYxNkgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjUzNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDMyLTE2YzAtNjEuOSA1MC4xLTExMiAxMTItMTEyczExMiA1MC4xIDExMiAxMTJ2MTZINDAwdi0xNnptMzkyIDU0NEgyMzJWMzg0aDk2djg4YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTg4aDIyNHY4OGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di04OGg5NnY0NTZ6In19XX0sbmFtZToic2hvcHBpbmciLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw1Mzk2NjpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjpmdW5jdGlvbihhLG4pe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02OTYgNDcyYzAgNC40LTMuNiA4LTggOGgtNTZjLTQuNCAwLTgtMy42LTgtOHYtODhINDAwdjg4YzAgNC40LTMuNiA4LTggOGgtNTZjLTQuNCAwLTgtMy42LTgtOHYtODhoLTk2djQ1Nmg1NjBWMzg0aC05NnY4OHoiLGZpbGw6bn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODMyIDMxMkg2OTZ2LTE2YzAtMTAxLjYtODIuNC0xODQtMTg0LTE4NHMtMTg0IDgyLjQtMTg0IDE4NHYxNkgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjUzNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDMyLTE2YzAtNjEuOSA1MC4xLTExMiAxMTItMTEyczExMiA1MC4xIDExMiAxMTJ2MTZINDAwdi0xNnptMzkyIDU0NEgyMzJWMzg0aDk2djg4YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTg4aDIyNHY4OGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di04OGg5NnY0NTZ6IixmaWxsOmF9fV19fSxuYW1lOiJzaG9wcGluZyIsdGhlbWU6InR3b3RvbmUifTt0LmRlZmF1bHQ9ZX0sNTI0NDQ6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MS43IDE4Ny40bC00NS4xLTQ1LjFhOC4wMyA4LjAzIDAgMDAtMTEuMyAwTDY2Ny44IDI5OS45bC01NC43LTU0LjdhNy45NCA3Ljk0IDAgMDAtMTMuNSA0LjdMNTc2LjEgNDM5Yy0uNiA1LjIgMy43IDkuNSA4LjkgOC45bDE4OS4yLTIzLjVjNi42LS44IDkuMy04LjggNC43LTEzLjVsLTU0LjctNTQuNyAxNTcuNi0xNTcuNmMzLTMgMy04LjEtLjEtMTEuMnpNNDM5IDU3Ni4xbC0xODkuMiAyMy41Yy02LjYuOC05LjMgOC45LTQuNyAxMy41bDU0LjcgNTQuNy0xNTcuNSAxNTcuNWE4LjAzIDguMDMgMCAwMDAgMTEuM2w0NS4xIDQ1LjFjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGwxNTcuNi0xNTcuNiA1NC43IDU0LjdhNy45NCA3Ljk0IDAgMDAxMy41LTQuN0w0NDcuOSA1ODVhNy45IDcuOSAwIDAwLTguOS04Ljl6In19XX0sbmFtZToic2hyaW5rIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNDEwODA6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJkZWZzIixhdHRyczp7fSxjaGlsZHJlbjpbe3RhZzoic3R5bGUiLGF0dHJzOnt9fV19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTg0IDM1Mkg0NDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjU0NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmgxNDRjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzg0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek04OTIgNjRINzQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoMTQ0YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyek0yNzYgNjQwSDEzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MjU2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDE0NGMxNy43IDAgMzItMTQuMyAzMi0zMlY2NzJjMC0xNy43LTE0LjMtMzItMzItMzJ6In19XX0sbmFtZToic2lnbmFsIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDYxNjQxOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6eyJmaWxsLXJ1bGUiOiJldmVub2RkIix2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMTQ1LjcxIDc1MmMyIDAgNC0uMiA1Ljk4LS41TDMxOS45IDcyMmMxLjk5LS40IDMuODgtMS4zIDUuMjgtMi44bDQyMy45MS00MjMuODdhOS45MyA5LjkzIDAgMDAwLTE0LjA2TDU4Mi44OCAxMTQuOUM1ODEgMTEzIDU3OC41IDExMiA1NzUuODIgMTEycy01LjE4IDEtNy4wOCAyLjlMMTQ0LjgyIDUzOC43NmMtMS41IDEuNS0yLjQgMy4yOS0yLjggNS4yOGwtMjkuNSAxNjguMTdhMzMuNTkgMzMuNTkgMCAwMDkuMzcgMjkuODFjNi41OCA2LjQ4IDE0Ljk1IDkuOTcgMjMuODIgOS45N200NTMuMTItMTg0LjA3YzI3LjY5LTE0LjgxIDU3LjI5LTIwLjg1IDg1LjU0LTE1LjUyIDMyLjM3IDYuMSA1OS43MiAyNi41MyA3OC45NiA1OS40IDI5Ljk3IDUxLjIyIDIxLjY0IDEwMi4zNC0xOC40OCAxNDQuMjYtMTcuNTggMTguMzYtNDEuMDcgMzUuMDEtNzAgNTAuM2wtLjMuMTUuODYuMjZhMTQ3Ljg4IDE0Ny44OCAwIDAwNDEuNTQgNi4ybDEuMTcuMDFjNjEuMDcgMCAxMDAuOTgtMjIuMSAxMjUuMjgtNjcuODdhMzYgMzYgMCAwMTYzLjYgMzMuNzZDODY5LjcgODQ5LjEgODA0LjkgODg1IDcxOC4xMiA4ODVjLTQ3LjY5IDAtOTEuOTQtMTUuMDMtMTI4LjE5LTQxLjM2bC0xLjA1LS43OC0xLjM2LjQ3Yy00Ni4xOCAxNi05OC43NCAyOS45NS0xNTUuMzcgNDEuOTRsLTIuMjQuNDdhMTkzMS4xIDE5MzEuMSAwIDAxLTEzOS4xNiAyMy45NiAzNiAzNiAwIDExLTkuNS03MS4zOCAxODYwLjEgMTg2MC4xIDAgMDAxMzMuODQtMjMuMDRjNDIuOC05IDgzLTE5LjEzIDExOS4zNS0zMC4zNGwuMjQtLjA4LS40NC0uNjljLTE2LjQ2LTI2LjQ1LTI1Ljg2LTU1LjQzLTI2LjE0LTgzLjI0di0xLjNjMC00OS45IDM5LjU1LTEwNC4zMiA5MC43My0xMzEuN002NzEgNjIzLjE3Yy0xMC43NC0yLjAzLTI0LjEuNy0zOC4yMiA4LjI2LTI5LjU1IDE1LjgtNTIuNyA0Ny42NC01Mi43IDY4LjIgMCAxOC4yIDguOSA0MC4xNCAyNC43MSA1OS43M2wuMjQuMyAxLjIyLS41MmMzOS4xNy0xNi41OCA2OC40OS0zNC4yNyA4NS45My01Mi4xOGwuNjQtLjY3YzE4Ljc0LTE5LjU3IDIxLjM5LTM1Ljg0IDguMzYtNTguMS05LjA2LTE1LjQ3LTE5LjAzLTIyLjkyLTMwLjE4LTI1LjAyIn19XX0sbmFtZToic2lnbmF0dXJlIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDM3NDA0OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6eyJmaWxsLXJ1bGUiOiJldmVub2RkIix2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMTQ1LjcxIDc1MmMyIDAgNC0uMiA1Ljk4LS41TDMxOS45IDcyMmMxLjk5LS40IDMuODgtMS4zIDUuMjgtMi44bDQyMy45MS00MjMuODdhOS45MyA5LjkzIDAgMDAwLTE0LjA2TDU4Mi44OCAxMTQuOUM1ODEgMTEzIDU3OC41IDExMiA1NzUuODIgMTEycy01LjE4IDEtNy4wOCAyLjlMMTQ0LjgyIDUzOC43NmMtMS41IDEuNS0yLjQgMy4yOS0yLjggNS4yOGwtMjkuNSAxNjguMTdhMzMuNTkgMzMuNTkgMCAwMDkuMzcgMjkuODFjNi41OCA2LjQ4IDE0Ljk1IDkuOTcgMjMuODIgOS45N201MS43NS04NS40M2wxNS42NS04OC45MiAzNjIuNy0zNjIuNjcgNzMuMjggNzMuMjctMzYyLjcgMzYyLjY3em00MDEuMzctOTguNjRjMjcuNjktMTQuODEgNTcuMjktMjAuODUgODUuNTQtMTUuNTIgMzIuMzcgNi4xIDU5LjcyIDI2LjUzIDc4Ljk2IDU5LjQgMjkuOTcgNTEuMjIgMjEuNjQgMTAyLjM0LTE4LjQ4IDE0NC4yNi0xNy41OCAxOC4zNi00MS4wNyAzNS4wMS03MCA1MC4zbC0uMy4xNS44Ni4yNmExNDcuODggMTQ3Ljg4IDAgMDA0MS41NCA2LjJsMS4xNy4wMWM2MS4wNyAwIDEwMC45OC0yMi4xIDEyNS4yOC02Ny44N2EzNiAzNiAwIDAxNjMuNiAzMy43NkM4NjkuNyA4NDkuMSA4MDQuOSA4ODUgNzE4LjEyIDg4NWMtNDcuNjkgMC05MS45NC0xNS4wMy0xMjguMTktNDEuMzZsLTEuMDUtLjc4LTEuMzYuNDdjLTQ2LjE4IDE2LTk4Ljc0IDI5Ljk1LTE1NS4zNyA0MS45NGwtMi4yNC40N2ExOTMxLjEgMTkzMS4xIDAgMDEtMTM5LjE2IDIzLjk2IDM2IDM2IDAgMTEtOS41LTcxLjM4IDE4NjAuMSAxODYwLjEgMCAwMDEzMy44NC0yMy4wNGM0Mi44LTkgODMtMTkuMTMgMTE5LjM1LTMwLjM0bC4yNC0uMDgtLjQ0LS42OWMtMTYuNDYtMjYuNDUtMjUuODYtNTUuNDMtMjYuMTQtODMuMjR2LTEuM2MwLTQ5LjkgMzkuNTUtMTA0LjMyIDkwLjczLTEzMS43TTY3MSA2MjMuMTdjLTEwLjc0LTIuMDMtMjQuMS43LTM4LjIyIDguMjYtMjkuNTUgMTUuOC01Mi43IDQ3LjY0LTUyLjcgNjguMiAwIDE4LjIgOC45IDQwLjE0IDI0LjcxIDU5LjczbC4yNC4zIDEuMjItLjUyYzM5LjE3LTE2LjU4IDY4LjQ5LTM0LjI3IDg1LjkzLTUyLjE4bC42NC0uNjdjMTguNzQtMTkuNTcgMjEuMzktMzUuODQgOC4zNi01OC4xLTkuMDYtMTUuNDctMTkuMDMtMjIuOTItMzAuMTgtMjUuMDIifX1dfSxuYW1lOiJzaWduYXR1cmUiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw2MjcyNTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6ImRlZnMiLGF0dHJzOnt9LGNoaWxkcmVuOlt7dGFnOiJzdHlsZSIsYXR0cnM6e319XX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02NzIgNDMyYy0xMjAuMyAwLTIxOS45IDg4LjUtMjM3LjMgMjA0SDMyMGMtMTUuNSAwLTI4LTEyLjUtMjgtMjhWMjQ0aDI5MWMxNC4yIDM1LjIgNDguNyA2MCA4OSA2MCA1MyAwIDk2LTQzIDk2LTk2cy00My05Ni05Ni05NmMtNDAuMyAwLTc0LjggMjQuOC04OSA2MEgxMTJ2NzJoMTA4djM2NGMwIDU1LjIgNDQuOCAxMDAgMTAwIDEwMGgxMTQuN2MxNy40IDExNS41IDExNyAyMDQgMjM3LjMgMjA0IDEzMi41IDAgMjQwLTEwNy41IDI0MC0yNDBTODA0LjUgNDMyIDY3MiA0MzJ6bTEyOCAyNjZjMCA0LjQtMy42IDgtOCA4aC04NnY4NmMwIDQuNC0zLjYgOC04IDhoLTUyYy00LjQgMC04LTMuNi04LTh2LTg2aC04NmMtNC40IDAtOC0zLjYtOC04di01MmMwLTQuNCAzLjYtOCA4LThoODZ2LTg2YzAtNC40IDMuNi04IDgtOGg1MmM0LjQgMCA4IDMuNiA4IDh2ODZoODZjNC40IDAgOCAzLjYgOCA4djUyeiJ9fV19LG5hbWU6InNpc3Rlcm5vZGUiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSwzMDA1NTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTgyLjMgNjI1LjZsMTQ3LjktMTY2LjNoLTYzLjR6bTkwLTIwMi4zaDYyLjVsLTkyLjEtMTE1LjF6bS0yNzQuNyAzNkw1MTIgNjg0LjVsMTE0LjQtMjI1LjJ6TTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0yODYuNyAzODAuMkw1MTUuOCA3NjIuM2MtMSAxLjEtMi40IDEuNy0zLjggMS43cy0yLjgtLjYtMy44LTEuN0wyMjUuMyA0NDQuMmE1LjE0IDUuMTQgMCAwMS0uMi02LjZMMzY1LjYgMjYyYzEtMS4yIDIuNC0xLjkgNC0xLjloMjg0LjZjMS42IDAgMyAuNyA0IDEuOWwxNDAuNSAxNzUuNmE0LjkgNC45IDAgMDEwIDYuNnptLTE5MC41LTIwLjlMNTEyIDMyNi4xbC05Ni4yIDk3LjJ6TTQyMC4zIDMwMS4xbC0yMy4xIDg5LjggODguOC04OS44em0xODMuNCAwSDUzOGw4OC44IDg5Ljh6bS0yMjIuNCA3LjFsLTkyLjEgMTE1LjFoNjIuNXptLTg3LjUgMTUxLjFsMTQ3LjkgMTY2LjMtODQuNS0xNjYuM3oifX1dfSxuYW1lOiJza2V0Y2gtY2lyY2xlIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDEwNTY5OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MjUuNiA0MDUuMWwtMjAzLTI1My43YTYuNSA2LjUgMCAwMC01LTIuNEgzMDYuNGMtMS45IDAtMy44LjktNSAyLjRsLTIwMyAyNTMuN2E2LjUgNi41IDAgMDAuMiA4LjNsNDA4LjYgNDU5LjVjMS4yIDEuNCAzIDIuMSA0LjggMi4xIDEuOCAwIDMuNS0uOCA0LjgtMi4xbDQwOC42LTQ1OS41YTYuNSA2LjUgMCAwMC4yLTguM3pNNjQ1LjIgMjA2LjRsMzQuNCAxMzMuOS0xMzIuNS0xMzMuOWg5OC4xem04LjIgMTc4LjVIMzcwLjZMNTEyIDI0MmwxNDEuNCAxNDIuOXpNMzc4LjggMjA2LjRoOTguMUwzNDQuMyAzNDAuM2wzNC41LTEzMy45em0tNTMuNCA3bC00NC4xIDE3MS41aC05My4xbDEzNy4yLTE3MS41ek0xOTQuNiA0MzQuOUgyODlsMTI1LjggMjQ3LjctMjIwLjItMjQ3Ljd6TTUxMiA3NjMuNEwzNDUuMSA0MzQuOWgzMzMuN0w1MTIgNzYzLjR6bTk3LjEtODAuOEw3MzUgNDM0LjloOTQuNEw2MDkuMSA2ODIuNnptMTMzLjYtMjk3LjdsLTQ0LjEtMTcxLjUgMTM3LjIgMTcxLjVoLTkzLjF6In19XX0sbmFtZToic2tldGNoIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNjczNzU6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTYwOC4yIDQyMy4zTDUxMiAzMjYuMWwtOTYuMiA5Ny4yem0tMjUuOSAyMDIuM2wxNDcuOS0xNjYuM2gtNjMuNHptOTAtMjAyLjNoNjIuNWwtOTIuMS0xMTUuMXpNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tODEuMyAzMzIuMkw1MTUuOCA3NjIuM2MtMSAxLjEtMi40IDEuNy0zLjggMS43cy0yLjgtLjYtMy44LTEuN0wyMjUuMyA0NDQuMmE1LjE0IDUuMTQgMCAwMS0uMi02LjZMMzY1LjYgMjYyYzEtMS4yIDIuNC0xLjkgNC0xLjloMjg0LjZjMS42IDAgMyAuNyA0IDEuOWwxNDAuNSAxNzUuNmE0LjkgNC45IDAgMDEwIDYuNnptLTQwMS4xIDE1LjFMNTEyIDY4NC41bDExNC40LTIyNS4yem0tMTYuMy0xNTEuMWwtOTIuMSAxMTUuMWg2Mi41em0tODcuNSAxNTEuMWwxNDcuOSAxNjYuMy04NC41LTE2Ni4zem0xMjYuNS0xNTguMmwtMjMuMSA4OS44IDg4LjgtODkuOHptMTgzLjQgMEg1MzhsODguOCA4OS44eiJ9fV19LG5hbWU6InNrZXRjaC1zcXVhcmUiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sNzgwOTQ6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg3MCAxMjZINjYzLjhjLTE3LjQgMC0zMi45IDExLjktMzcgMjkuM0M2MTQuMyAyMDguMSA1NjcgMjQ2IDUxMiAyNDZzLTEwMi4zLTM3LjktMTE0LjgtOTAuN2EzNy45MyAzNy45MyAwIDAwLTM3LTI5LjNIMTU0YTQ0IDQ0IDAgMDAtNDQgNDR2MjUyYTQ0IDQ0IDAgMDA0NCA0NGg3NXYzODhhNDQgNDQgMCAwMDQ0IDQ0aDQ3OGE0NCA0NCAwIDAwNDQtNDRWNDY2aDc1YTQ0IDQ0IDAgMDA0NC00NFYxNzBhNDQgNDQgMCAwMC00NC00NHoifX1dfSxuYW1lOiJza2luIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDUzMjYwOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NzAgMTI2SDY2My44Yy0xNy40IDAtMzIuOSAxMS45LTM3IDI5LjNDNjE0LjMgMjA4LjEgNTY3IDI0NiA1MTIgMjQ2cy0xMDIuMy0zNy45LTExNC44LTkwLjdhMzcuOTMgMzcuOTMgMCAwMC0zNy0yOS4zSDE1NGE0NCA0NCAwIDAwLTQ0IDQ0djI1MmE0NCA0NCAwIDAwNDQgNDRoNzV2Mzg4YTQ0IDQ0IDAgMDA0NCA0NGg0NzhhNDQgNDQgMCAwMDQ0LTQ0VjQ2Nmg3NWE0NCA0NCAwIDAwNDQtNDRWMTcwYTQ0IDQ0IDAgMDAtNDQtNDR6bS0yOCAyNjhINzIzdjQzMkgzMDFWMzk0SDE4MlYxOThoMTUzLjNjMjguMiA3MS4yIDk3LjUgMTIwIDE3Ni43IDEyMHMxNDguNS00OC44IDE3Ni43LTEyMEg4NDJ2MTk2eiJ9fV19LG5hbWU6InNraW4iLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw1ODMyMTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjpmdW5jdGlvbihhLG4pe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgMzE4Yy03OS4yIDAtMTQ4LjUtNDguOC0xNzYuNy0xMjBIMTgydjE5NmgxMTl2NDMyaDQyMlYzOTRoMTE5VjE5OEg2ODguN2MtMjguMiA3MS4yLTk3LjUgMTIwLTE3Ni43IDEyMHoiLGZpbGw6bn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODcwIDEyNkg2NjMuOGMtMTcuNCAwLTMyLjkgMTEuOS0zNyAyOS4zQzYxNC4zIDIwOC4xIDU2NyAyNDYgNTEyIDI0NnMtMTAyLjMtMzcuOS0xMTQuOC05MC43YTM3LjkzIDM3LjkzIDAgMDAtMzctMjkuM0gxNTRhNDQgNDQgMCAwMC00NCA0NHYyNTJhNDQgNDQgMCAwMDQ0IDQ0aDc1djM4OGE0NCA0NCAwIDAwNDQgNDRoNDc4YTQ0IDQ0IDAgMDA0NC00NFY0NjZoNzVhNDQgNDQgMCAwMDQ0LTQ0VjE3MGE0NCA0NCAwIDAwLTQ0LTQ0em0tMjggMjY4SDcyM3Y0MzJIMzAxVjM5NEgxODJWMTk4aDE1My4zYzI4LjIgNzEuMiA5Ny41IDEyMCAxNzYuNyAxMjBzMTQ4LjUtNDguOCAxNzYuNy0xMjBIODQydjE5NnoiLGZpbGw6YX19XX19LG5hbWU6InNraW4iLHRoZW1lOiJ0d290b25lIn07dC5kZWZhdWx0PWV9LDUwMjE1OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODMuNyA1NzguNmM0LjEtMjIuNSA2LjMtNDUuNSA2LjMtNjguNSAwLTUxLTEwLTEwMC41LTI5LjctMTQ3LTE5LTQ1LTQ2LjMtODUuNC04MS0xMjAuMWEzNzUuNzkgMzc1Ljc5IDAgMDAtMTIwLjEtODAuOWMtNDYuNi0xOS43LTk2LTI5LjctMTQ3LTI5LjctMjQgMC00OC4xIDIuMy03MS41IDYuOEEyMjUuMSAyMjUuMSAwIDAwMzM1LjYgMTEzYy01OS43IDAtMTE1LjkgMjMuMy0xNTguMSA2NS41QTIyMi4yNSAyMjIuMjUgMCAwMDExMiAzMzYuNmMwIDM4IDkuOCA3NS40IDI4LjEgMTA4LjQtMy43IDIxLjQtNS43IDQzLjMtNS43IDY1LjEgMCA1MSAxMCAxMDAuNSAyOS43IDE0NyAxOSA0NSA0Ni4yIDg1LjQgODAuOSAxMjAuMSAzNC43IDM0LjcgNzUuMSA2MS45IDEyMC4xIDgwLjkgNDYuNiAxOS43IDk2IDI5LjcgMTQ3IDI5LjcgMjIuMiAwIDQ0LjQtMiA2Ni4yLTUuOSAzMy41IDE4LjkgNzEuMyAyOSAxMTAgMjkgNTkuNyAwIDExNS45LTIzLjIgMTU4LjEtNjUuNSA0Mi4zLTQyLjIgNjUuNS05OC40IDY1LjUtMTU4LjEuMS0zOC05LjctNzUuNS0yOC4yLTEwOC43em0tMzcwIDE2Mi45Yy0xMzQuMiAwLTE5NC4yLTY2LTE5NC4yLTExNS40IDAtMjUuNCAxOC43LTQzLjEgNDQuNS00My4xIDU3LjQgMCA0Mi42IDgyLjUgMTQ5LjcgODIuNSA1NC45IDAgODUuMi0yOS44IDg1LjItNjAuMyAwLTE4LjMtOS0zOC43LTQ1LjItNDcuNmwtMTE5LjQtMjkuOGMtOTYuMS0yNC4xLTExMy42LTc2LjEtMTEzLjYtMTI0LjkgMC0xMDEuNCA5NS41LTEzOS41IDE4NS4yLTEzOS41IDgyLjYgMCAxODAgNDUuNyAxODAgMTA2LjUgMCAyNi4xLTIyLjYgNDEuMi00OC40IDQxLjItNDkgMC00MC02Ny44LTEzOC43LTY3LjgtNDkgMC03Ni4xIDIyLjItNzYuMSA1My45czM4LjcgNDEuOCA3Mi4zIDQ5LjVsODguNCAxOS42Yzk2LjggMjEuNiAxMjEuMyA3OC4xIDEyMS4zIDEzMS4zIDAgODIuMy02My4zIDE0My45LTE5MSAxNDMuOXoifX1dfSxuYW1lOiJza3lwZSIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw3Nzg1ODpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODgzLjcgNTc4LjZjNC4xLTIyLjUgNi4zLTQ1LjUgNi4zLTY4LjUgMC01MS0xMC0xMDAuNS0yOS43LTE0Ny0xOS00NS00Ni4zLTg1LjQtODEtMTIwLjFhMzc1Ljc5IDM3NS43OSAwIDAwLTEyMC4xLTgwLjljLTQ2LjYtMTkuNy05Ni0yOS43LTE0Ny0yOS43LTI0IDAtNDguMSAyLjMtNzEuNSA2LjhBMjI1LjEgMjI1LjEgMCAwMDMzNS42IDExM2MtNTkuNyAwLTExNS45IDIzLjMtMTU4LjEgNjUuNUEyMjIuMjUgMjIyLjI1IDAgMDAxMTIgMzM2LjZjMCAzOCA5LjggNzUuNCAyOC4xIDEwOC40LTMuNyAyMS40LTUuNyA0My4zLTUuNyA2NS4xIDAgNTEgMTAgMTAwLjUgMjkuNyAxNDcgMTkgNDUgNDYuMiA4NS40IDgwLjkgMTIwLjEgMzQuNyAzNC43IDc1LjEgNjEuOSAxMjAuMSA4MC45IDQ2LjYgMTkuNyA5NiAyOS43IDE0NyAyOS43IDIyLjIgMCA0NC40LTIgNjYuMi01LjkgMzMuNSAxOC45IDcxLjMgMjkgMTEwIDI5IDU5LjcgMCAxMTUuOS0yMy4yIDE1OC4xLTY1LjUgNDIuMy00Mi4yIDY1LjUtOTguNCA2NS41LTE1OC4xLjEtMzgtOS43LTc1LjUtMjguMi0xMDguN3ptLTg4LjEgMjE2Qzc2Ni45IDgyMy40IDcyOSA4MzkgNjg4LjQgODM5Yy0yNi4xIDAtNTEuOC02LjgtNzQuNi0xOS43bC0yMi41LTEyLjctMjUuNSA0LjVjLTE3LjggMy4yLTM1LjggNC44LTUzLjYgNC44LTQxLjQgMC04MS4zLTguMS0xMTkuMS0yNC4xLTM2LjMtMTUuMy02OS0zNy4zLTk3LjItNjUuNWEzMDQuMjkgMzA0LjI5IDAgMDEtNjUuNS05Ny4xYy0xNi0zNy43LTI0LTc3LjYtMjQtMTE5IDAtMTcuNCAxLjYtMzUuMiA0LjYtNTIuOGw0LjQtMjUuMUwyMDMgNDEwYTE1MS4wMiAxNTEuMDIgMCAwMS0xOS4xLTczLjRjMC00MC42IDE1LjctNzguNSA0NC40LTEwNy4yQzI1Ny4xIDIwMC43IDI5NSAxODUgMzM1LjYgMTg1YTE1MyAxNTMgMCAwMTcxLjQgMTcuOWwyMi40IDExLjggMjQuOC00LjhjMTguOS0zLjYgMzguNC01LjUgNTgtNS41IDQxLjQgMCA4MS4zIDguMSAxMTkgMjQgMzYuNSAxNS40IDY5LjEgMzcuNCA5Ny4yIDY1LjUgMjguMiAyOC4xIDUwLjIgNjAuOCA2NS42IDk3LjIgMTYgMzcuNyAyNCA3Ny42IDI0IDExOSAwIDE4LjQtMS43IDM3LTUuMSA1NS41bC00LjcgMjUuNSAxMi42IDIyLjZjMTIuNiAyMi41IDE5LjIgNDggMTkuMiA3My43IDAgNDAuNy0xNS43IDc4LjUtNDQuNCAxMDcuMnpNNTgzLjQgNDY2LjJMNDk1IDQ0Ni42Yy0zMy42LTcuNy03Mi4zLTE3LjgtNzIuMy00OS41czI3LjEtNTMuOSA3Ni4xLTUzLjljOTguNyAwIDg5LjcgNjcuOCAxMzguNyA2Ny44IDI1LjggMCA0OC40LTE1LjIgNDguNC00MS4yIDAtNjAuOC05Ny40LTEwNi41LTE4MC0xMDYuNS04OS43IDAtMTg1LjIgMzguMS0xODUuMiAxMzkuNSAwIDQ4LjggMTcuNCAxMDAuOCAxMTMuNiAxMjQuOWwxMTkuNCAyOS44YzM2LjEgOC45IDQ1LjIgMjkuMiA0NS4yIDQ3LjYgMCAzMC41LTMwLjMgNjAuMy04NS4yIDYwLjMtMTA3LjIgMC05Mi4zLTgyLjUtMTQ5LjctODIuNS0yNS44IDAtNDQuNSAxNy44LTQ0LjUgNDMuMSAwIDQ5LjQgNjAgMTE1LjQgMTk0LjIgMTE1LjQgMTI3LjcgMCAxOTEtNjEuNSAxOTEtMTQ0IDAtNTMuMS0yNC41LTEwOS42LTEyMS4zLTEzMS4yeiJ9fV19LG5hbWU6InNreXBlIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNDkxMDQ6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0ek0zNjEuNSA1ODAuMmMwIDI3LjgtMjIuNSA1MC40LTUwLjMgNTAuNGE1MC4zNSA1MC4zNSAwIDAxLTUwLjMtNTAuNGMwLTI3LjggMjIuNS01MC40IDUwLjMtNTAuNGg1MC4zdjUwLjR6bTEzNCAxMzQuNGMwIDI3LjgtMjIuNSA1MC40LTUwLjMgNTAuNC0yNy44IDAtNTAuMy0yMi42LTUwLjMtNTAuNFY1ODAuMmMwLTI3LjggMjIuNS01MC40IDUwLjMtNTAuNGE1MC4zNSA1MC4zNSAwIDAxNTAuMyA1MC40djEzNC40em0tNTAuMi0yMTguNGgtMTM0Yy0yNy44IDAtNTAuMy0yMi42LTUwLjMtNTAuNCAwLTI3LjggMjIuNS01MC40IDUwLjMtNTAuNGgxMzRjMjcuOCAwIDUwLjMgMjIuNiA1MC4zIDUwLjQtLjEgMjcuOS0yMi42IDUwLjQtNTAuMyA1MC40em0wLTEzNC40Yy0xMy4zIDAtMjYuMS01LjMtMzUuNi0xNC44UzM5NSAzMjQuOCAzOTUgMzExLjRjMC0yNy44IDIyLjUtNTAuNCA1MC4zLTUwLjQgMjcuOCAwIDUwLjMgMjIuNiA1MC4zIDUwLjR2NTAuNGgtNTAuM3ptODMuNy01MC40YzAtMjcuOCAyMi41LTUwLjQgNTAuMy01MC40IDI3LjggMCA1MC4zIDIyLjYgNTAuMyA1MC40djEzNC40YzAgMjcuOC0yMi41IDUwLjQtNTAuMyA1MC40LTI3LjggMC01MC4zLTIyLjYtNTAuMy01MC40VjMxMS40ek01NzkuMyA3NjVjLTI3LjggMC01MC4zLTIyLjYtNTAuMy01MC40di01MC40aDUwLjNjMjcuOCAwIDUwLjMgMjIuNiA1MC4zIDUwLjQgMCAyNy44LTIyLjUgNTAuNC01MC4zIDUwLjR6bTEzNC0xMzQuNGgtMTM0Yy0xMy4zIDAtMjYuMS01LjMtMzUuNi0xNC44UzUyOSA1OTMuNiA1MjkgNTgwLjJjMC0yNy44IDIyLjUtNTAuNCA1MC4zLTUwLjRoMTM0YzI3LjggMCA1MC4zIDIyLjYgNTAuMyA1MC40IDAgMjcuOC0yMi41IDUwLjQtNTAuMyA1MC40em0wLTEzNC40SDY2M3YtNTAuNGMwLTI3LjggMjIuNS01MC40IDUwLjMtNTAuNHM1MC4zIDIyLjYgNTAuMyA1MC40YzAgMjcuOC0yMi41IDUwLjQtNTAuMyA1MC40eiJ9fV19LG5hbWU6InNsYWNrLWNpcmNsZSIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw1MTA0MjpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNDA5LjQgMTI4Yy00Mi40IDAtNzYuNyAzNC40LTc2LjcgNzYuOCAwIDIwLjMgOC4xIDM5LjkgMjIuNCA1NC4zYTc2Ljc0IDc2Ljc0IDAgMDA1NC4zIDIyLjVoNzYuN3YtNzYuOGMwLTQyLjMtMzQuMy03Ni43LTc2LjctNzYuOHptMCAyMDQuOEgyMDQuN2MtNDIuNCAwLTc2LjcgMzQuNC03Ni43IDc2LjhzMzQuNCA3Ni44IDc2LjcgNzYuOGgyMDQuNmM0Mi40IDAgNzYuNy0zNC40IDc2LjctNzYuOC4xLTQyLjQtMzQuMy03Ni44LTc2LjYtNzYuOHpNNjE0IDQ4Ni40YzQyLjQgMCA3Ni44LTM0LjQgNzYuNy03Ni44VjIwNC44YzAtNDIuNC0zNC4zLTc2LjgtNzYuNy03Ni44LTQyLjQgMC03Ni43IDM0LjQtNzYuNyA3Ni44djIwNC44YzAgNDIuNSAzNC4zIDc2LjggNzYuNyA3Ni44em0yODEuNC03Ni44YzAtNDIuNC0zNC40LTc2LjgtNzYuNy03Ni44Uzc0MiAzNjcuMiA3NDIgNDA5LjZ2NzYuOGg3Ni43YzQyLjMgMCA3Ni43LTM0LjQgNzYuNy03Ni44em0tNzYuOCAxMjhINjE0Yy00Mi40IDAtNzYuNyAzNC40LTc2LjcgNzYuOCAwIDIwLjMgOC4xIDM5LjkgMjIuNCA1NC4zYTc2Ljc0IDc2Ljc0IDAgMDA1NC4zIDIyLjVoMjA0LjZjNDIuNCAwIDc2LjctMzQuNCA3Ni43LTc2LjguMS00Mi40LTM0LjMtNzYuNy03Ni43LTc2Ljh6TTYxNCA3NDIuNGgtNzYuN3Y3Ni44YzAgNDIuNCAzNC40IDc2LjggNzYuNyA3Ni44IDQyLjQgMCA3Ni44LTM0LjQgNzYuNy03Ni44LjEtNDIuNC0zNC4zLTc2LjctNzYuNy03Ni44ek00MDkuNCA1MzcuNmMtNDIuNCAwLTc2LjcgMzQuNC03Ni43IDc2Ljh2MjA0LjhjMCA0Mi40IDM0LjQgNzYuOCA3Ni43IDc2LjggNDIuNCAwIDc2LjgtMzQuNCA3Ni43LTc2LjhWNjE0LjRjMC0yMC4zLTguMS0zOS45LTIyLjQtNTQuM2E3Ni45MiA3Ni45MiAwIDAwLTU0LjMtMjIuNXpNMTI4IDYxNC40YzAgMjAuMyA4LjEgMzkuOSAyMi40IDU0LjNhNzYuNzQgNzYuNzQgMCAwMDU0LjMgMjIuNWM0Mi40IDAgNzYuOC0zNC40IDc2LjctNzYuOHYtNzYuOGgtNzYuN2MtNDIuMyAwLTc2LjcgMzQuNC03Ni43IDc2Ljh6In19XX0sbmFtZToic2xhY2siLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw2OTk1MDpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek01MjkgMzExLjRjMC0yNy44IDIyLjUtNTAuNCA1MC4zLTUwLjQgMjcuOCAwIDUwLjMgMjIuNiA1MC4zIDUwLjR2MTM0LjRjMCAyNy44LTIyLjUgNTAuNC01MC4zIDUwLjQtMjcuOCAwLTUwLjMtMjIuNi01MC4zLTUwLjRWMzExLjR6TTM2MS41IDU4MC4yYzAgMjcuOC0yMi41IDUwLjQtNTAuMyA1MC40YTUwLjM1IDUwLjM1IDAgMDEtNTAuMy01MC40YzAtMjcuOCAyMi41LTUwLjQgNTAuMy01MC40aDUwLjN2NTAuNHptMTM0IDEzNC40YzAgMjcuOC0yMi41IDUwLjQtNTAuMyA1MC40LTI3LjggMC01MC4zLTIyLjYtNTAuMy01MC40VjU4MC4yYzAtMjcuOCAyMi41LTUwLjQgNTAuMy01MC40YTUwLjM1IDUwLjM1IDAgMDE1MC4zIDUwLjR2MTM0LjR6bS01MC4yLTIxOC40aC0xMzRjLTI3LjggMC01MC4zLTIyLjYtNTAuMy01MC40IDAtMjcuOCAyMi41LTUwLjQgNTAuMy01MC40aDEzNGMyNy44IDAgNTAuMyAyMi42IDUwLjMgNTAuNC0uMSAyNy45LTIyLjYgNTAuNC01MC4zIDUwLjR6bTAtMTM0LjRjLTEzLjMgMC0yNi4xLTUuMy0zNS42LTE0LjhTMzk1IDMyNC44IDM5NSAzMTEuNGMwLTI3LjggMjIuNS01MC40IDUwLjMtNTAuNCAyNy44IDAgNTAuMyAyMi42IDUwLjMgNTAuNHY1MC40aC01MC4zem0xMzQgNDAzLjJjLTI3LjggMC01MC4zLTIyLjYtNTAuMy01MC40di01MC40aDUwLjNjMjcuOCAwIDUwLjMgMjIuNiA1MC4zIDUwLjQgMCAyNy44LTIyLjUgNTAuNC01MC4zIDUwLjR6bTEzNC0xMzQuNGgtMTM0YTUwLjM1IDUwLjM1IDAgMDEtNTAuMy01MC40YzAtMjcuOCAyMi41LTUwLjQgNTAuMy01MC40aDEzNGMyNy44IDAgNTAuMyAyMi42IDUwLjMgNTAuNCAwIDI3LjgtMjIuNSA1MC40LTUwLjMgNTAuNHptMC0xMzQuNEg2NjN2LTUwLjRjMC0yNy44IDIyLjUtNTAuNCA1MC4zLTUwLjRzNTAuMyAyMi42IDUwLjMgNTAuNGMwIDI3LjgtMjIuNSA1MC40LTUwLjMgNTAuNHoifX1dfSxuYW1lOiJzbGFjay1zcXVhcmUiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sMjY3NjA6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNTI5IDMxMS40YzAtMjcuOCAyMi41LTUwLjQgNTAuMy01MC40IDI3LjggMCA1MC4zIDIyLjYgNTAuMyA1MC40djEzNC40YzAgMjcuOC0yMi41IDUwLjQtNTAuMyA1MC40LTI3LjggMC01MC4zLTIyLjYtNTAuMy01MC40VjMxMS40ek0zNjEuNSA1ODAuMmMwIDI3LjgtMjIuNSA1MC40LTUwLjMgNTAuNGE1MC4zNSA1MC4zNSAwIDAxLTUwLjMtNTAuNGMwLTI3LjggMjIuNS01MC40IDUwLjMtNTAuNGg1MC4zdjUwLjR6bTEzNCAxMzQuNGMwIDI3LjgtMjIuNSA1MC40LTUwLjMgNTAuNC0yNy44IDAtNTAuMy0yMi42LTUwLjMtNTAuNFY1ODAuMmMwLTI3LjggMjIuNS01MC40IDUwLjMtNTAuNGE1MC4zNSA1MC4zNSAwIDAxNTAuMyA1MC40djEzNC40em0tNTAuMi0yMTguNGgtMTM0Yy0yNy44IDAtNTAuMy0yMi42LTUwLjMtNTAuNCAwLTI3LjggMjIuNS01MC40IDUwLjMtNTAuNGgxMzRjMjcuOCAwIDUwLjMgMjIuNiA1MC4zIDUwLjQtLjEgMjcuOS0yMi42IDUwLjQtNTAuMyA1MC40em0wLTEzNC40Yy0xMy4zIDAtMjYuMS01LjMtMzUuNi0xNC44UzM5NSAzMjQuOCAzOTUgMzExLjRjMC0yNy44IDIyLjUtNTAuNCA1MC4zLTUwLjQgMjcuOCAwIDUwLjMgMjIuNiA1MC4zIDUwLjR2NTAuNGgtNTAuM3ptMTM0IDQwMy4yYy0yNy44IDAtNTAuMy0yMi42LTUwLjMtNTAuNHYtNTAuNGg1MC4zYzI3LjggMCA1MC4zIDIyLjYgNTAuMyA1MC40IDAgMjcuOC0yMi41IDUwLjQtNTAuMyA1MC40em0xMzQtMTM0LjRoLTEzNGE1MC4zNSA1MC4zNSAwIDAxLTUwLjMtNTAuNGMwLTI3LjggMjIuNS01MC40IDUwLjMtNTAuNGgxMzRjMjcuOCAwIDUwLjMgMjIuNiA1MC4zIDUwLjQgMCAyNy44LTIyLjUgNTAuNC01MC4zIDUwLjR6bTAtMTM0LjRINjYzdi01MC40YzAtMjcuOCAyMi41LTUwLjQgNTAuMy01MC40czUwLjMgMjIuNiA1MC4zIDUwLjRjMCAyNy44LTIyLjUgNTAuNC01MC4zIDUwLjR6In19XX0sbmFtZToic2xhY2stc3F1YXJlIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNTgxMTM6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkwNCAyOTZoLTY2di05NmMwLTQuNC0zLjYtOC04LThoLTUyYy00LjQgMC04IDMuNi04IDh2OTZoLTY2Yy00LjQgMC04IDMuNi04IDh2NDE2YzAgNC40IDMuNiA4IDggOGg2NnY5NmMwIDQuNCAzLjYgOCA4IDhoNTJjNC40IDAgOC0zLjYgOC04di05Nmg2NmM0LjQgMCA4LTMuNiA4LThWMzA0YzAtNC40LTMuNi04LTgtOHptLTU4NC03MmgtNjZ2LTU2YzAtNC40LTMuNi04LTgtOGgtNTJjLTQuNCAwLTggMy42LTggOHY1NmgtNjZjLTQuNCAwLTggMy42LTggOHY1NjBjMCA0LjQgMy42IDggOCA4aDY2djU2YzAgNC40IDMuNiA4IDggOGg1MmM0LjQgMCA4LTMuNiA4LTh2LTU2aDY2YzQuNCAwIDgtMy42IDgtOFYyMzJjMC00LjQtMy42LTgtOC04em0yOTIgMTgwaC02NlYyMzJjMC00LjQtMy42LTgtOC04aC01MmMtNC40IDAtOCAzLjYtOCA4djE3MmgtNjZjLTQuNCAwLTggMy42LTggOHYyMDBjMCA0LjQgMy42IDggOCA4aDY2djE3MmMwIDQuNCAzLjYgOCA4IDhoNTJjNC40IDAgOC0zLjYgOC04VjYyMGg2NmM0LjQgMCA4LTMuNiA4LThWNDEyYzAtNC40LTMuNi04LTgtOHoifX1dfSxuYW1lOiJzbGlkZXJzIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDg1MTI5OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0zMjAgMjI0aC02NnYtNTZjMC00LjQtMy42LTgtOC04aC01MmMtNC40IDAtOCAzLjYtOCA4djU2aC02NmMtNC40IDAtOCAzLjYtOCA4djU2MGMwIDQuNCAzLjYgOCA4IDhoNjZ2NTZjMCA0LjQgMy42IDggOCA4aDUyYzQuNCAwIDgtMy42IDgtOHYtNTZoNjZjNC40IDAgOC0zLjYgOC04VjIzMmMwLTQuNC0zLjYtOC04LTh6bS02MCA1MDhoLTgwVjI5Mmg4MHY0NDB6bTY0NC00MzZoLTY2di05NmMwLTQuNC0zLjYtOC04LThoLTUyYy00LjQgMC04IDMuNi04IDh2OTZoLTY2Yy00LjQgMC04IDMuNi04IDh2NDE2YzAgNC40IDMuNiA4IDggOGg2NnY5NmMwIDQuNCAzLjYgOCA4IDhoNTJjNC40IDAgOC0zLjYgOC04di05Nmg2NmM0LjQgMCA4LTMuNiA4LThWMzA0YzAtNC40LTMuNi04LTgtOHptLTYwIDM2NGgtODBWMzY0aDgwdjI5NnpNNjEyIDQwNGgtNjZWMjMyYzAtNC40LTMuNi04LTgtOGgtNTJjLTQuNCAwLTggMy42LTggOHYxNzJoLTY2Yy00LjQgMC04IDMuNi04IDh2MjAwYzAgNC40IDMuNiA4IDggOGg2NnYxNzJjMCA0LjQgMy42IDggOCA4aDUyYzQuNCAwIDgtMy42IDgtOFY2MjBoNjZjNC40IDAgOC0zLjYgOC04VjQxMmMwLTQuNC0zLjYtOC04LTh6bS02MCAxNDVhMyAzIDAgMDEtMyAzaC03NGEzIDMgMCAwMS0zLTN2LTc0YTMgMyAwIDAxMy0zaDc0YTMgMyAwIDAxMyAzdjc0eiJ9fV19LG5hbWU6InNsaWRlcnMiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw5MDAzNDpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjpmdW5jdGlvbihhLG4pe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0xODAgMjkyaDgwdjQ0MGgtODB6bTM2OSAxODBoLTc0YTMgMyAwIDAwLTMgM3Y3NGEzIDMgMCAwMDMgM2g3NGEzIDMgMCAwMDMtM3YtNzRhMyAzIDAgMDAtMy0zem0yMTUtMTA4aDgwdjI5NmgtODB6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkwNCAyOTZoLTY2di05NmMwLTQuNC0zLjYtOC04LThoLTUyYy00LjQgMC04IDMuNi04IDh2OTZoLTY2Yy00LjQgMC04IDMuNi04IDh2NDE2YzAgNC40IDMuNiA4IDggOGg2NnY5NmMwIDQuNCAzLjYgOCA4IDhoNTJjNC40IDAgOC0zLjYgOC04di05Nmg2NmM0LjQgMCA4LTMuNiA4LThWMzA0YzAtNC40LTMuNi04LTgtOHptLTYwIDM2NGgtODBWMzY0aDgwdjI5NnpNNjEyIDQwNGgtNjZWMjMyYzAtNC40LTMuNi04LTgtOGgtNTJjLTQuNCAwLTggMy42LTggOHYxNzJoLTY2Yy00LjQgMC04IDMuNi04IDh2MjAwYzAgNC40IDMuNiA4IDggOGg2NnYxNzJjMCA0LjQgMy42IDggOCA4aDUyYzQuNCAwIDgtMy42IDgtOFY2MjBoNjZjNC40IDAgOC0zLjYgOC04VjQxMmMwLTQuNC0zLjYtOC04LTh6bS02MCAxNDVhMyAzIDAgMDEtMyAzaC03NGEzIDMgMCAwMS0zLTN2LTc0YTMgMyAwIDAxMy0zaDc0YTMgMyAwIDAxMyAzdjc0ek0zMjAgMjI0aC02NnYtNTZjMC00LjQtMy42LTgtOC04aC01MmMtNC40IDAtOCAzLjYtOCA4djU2aC02NmMtNC40IDAtOCAzLjYtOCA4djU2MGMwIDQuNCAzLjYgOCA4IDhoNjZ2NTZjMCA0LjQgMy42IDggOCA4aDUyYzQuNCAwIDgtMy42IDgtOHYtNTZoNjZjNC40IDAgOC0zLjYgOC04VjIzMmMwLTQuNC0zLjYtOC04LTh6bS02MCA1MDhoLTgwVjI5Mmg4MHY0NDB6IixmaWxsOmF9fV19fSxuYW1lOiJzbGlkZXJzIix0aGVtZToidHdvdG9uZSJ9O3QuZGVmYXVsdD1lfSwzMTU2NTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMTEyIDQ3Nmg3MnY3MmgtNzJ6bTE4MiAwaDcydjcyaC03MnptMzY0IDBoNzJ2NzJoLTcyem0xODIgMGg3MnY3MmgtNzJ6bS0zNjQgMGg3MnY3MmgtNzJ6In19XX0sbmFtZToic21hbGwtZGFzaCIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDc1NjMxOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHpNMjg4IDQyMWE0OC4wMSA0OC4wMSAwIDAxOTYgMCA0OC4wMSA0OC4wMSAwIDAxLTk2IDB6bTIyNCAyNzJjLTg1LjUgMC0xNTUuNi02Ny4zLTE2MC0xNTEuNmE4IDggMCAwMTgtOC40aDQ4LjFjNC4yIDAgNy44IDMuMiA4LjEgNy40QzQyMCA1ODkuOSA0NjEuNSA2MjkgNTEyIDYyOXM5Mi4xLTM5LjEgOTUuOC04OC42Yy4zLTQuMiAzLjktNy40IDguMS03LjRINjY0YTggOCAwIDAxOCA4LjRDNjY3LjYgNjI1LjcgNTk3LjUgNjkzIDUxMiA2OTN6bTE3Ni0yMjRhNDguMDEgNDguMDEgMCAwMTAtOTYgNDguMDEgNDguMDEgMCAwMTAgOTZ6In19XX0sbmFtZToic21pbGUiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sNDE1ODU6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTI4OCA0MjFhNDggNDggMCAxMDk2IDAgNDggNDggMCAxMC05NiAwem0zNTIgMGE0OCA0OCAwIDEwOTYgMCA0OCA0OCAwIDEwLTk2IDB6TTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0yNjMgNzExYy0zNC4yIDM0LjItNzQgNjEtMTE4LjMgNzkuOEM2MTEgODc0LjIgNTYyLjMgODg0IDUxMiA4ODRjLTUwLjMgMC05OS05LjgtMTQ0LjgtMjkuMkEzNzAuNCAzNzAuNCAwIDAxMjQ4LjkgNzc1Yy0zNC4yLTM0LjItNjEtNzQtNzkuOC0xMTguM0MxNDkuOCA2MTEgMTQwIDU2Mi4zIDE0MCA1MTJzOS44LTk5IDI5LjItMTQ0LjhBMzcwLjQgMzcwLjQgMCAwMTI0OSAyNDguOWMzNC4yLTM0LjIgNzQtNjEgMTE4LjMtNzkuOEM0MTMgMTQ5LjggNDYxLjcgMTQwIDUxMiAxNDBjNTAuMyAwIDk5IDkuOCAxNDQuOCAyOS4yQTM3MC40IDM3MC40IDAgMDE3NzUuMSAyNDljMzQuMiAzNC4yIDYxIDc0IDc5LjggMTE4LjNDODc0LjIgNDEzIDg4NCA0NjEuNyA4ODQgNTEycy05LjggOTktMjkuMiAxNDQuOEEzNjguODkgMzY4Ljg5IDAgMDE3NzUgNzc1ek02NjQgNTMzaC00OC4xYy00LjIgMC03LjggMy4yLTguMSA3LjRDNjA0IDU4OS45IDU2Mi41IDYyOSA1MTIgNjI5cy05Mi4xLTM5LjEtOTUuOC04OC42Yy0uMy00LjItMy45LTcuNC04LjEtNy40SDM2MGE4IDggMCAwMC04IDguNGM0LjQgODQuMyA3NC41IDE1MS42IDE2MCAxNTEuNnMxNTUuNi02Ny4zIDE2MC0xNTEuNmE4IDggMCAwMC04LTguNHoifX1dfSxuYW1lOiJzbWlsZSIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDYzNzY2OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOmZ1bmN0aW9uKGEsbil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnoiLGZpbGw6YX19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDE0MGMtMjA1LjQgMC0zNzIgMTY2LjYtMzcyIDM3MnMxNjYuNiAzNzIgMzcyIDM3MiAzNzItMTY2LjYgMzcyLTM3Mi0xNjYuNi0zNzItMzcyLTM3MnpNMjg4IDQyMWE0OC4wMSA0OC4wMSAwIDAxOTYgMCA0OC4wMSA0OC4wMSAwIDAxLTk2IDB6bTIyNCAyNzJjLTg1LjUgMC0xNTUuNi02Ny4zLTE2MC0xNTEuNmE4IDggMCAwMTgtOC40aDQ4LjFjNC4yIDAgNy44IDMuMiA4LjEgNy40QzQyMCA1ODkuOSA0NjEuNSA2MjkgNTEyIDYyOXM5Mi4xLTM5LjEgOTUuOC04OC42Yy4zLTQuMiAzLjktNy40IDguMS03LjRINjY0YTggOCAwIDAxOCA4LjRDNjY3LjYgNjI1LjcgNTk3LjUgNjkzIDUxMiA2OTN6bTE3Ni0yMjRhNDguMDEgNDguMDEgMCAwMTAtOTYgNDguMDEgNDguMDEgMCAwMTAgOTZ6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTI4OCA0MjFhNDggNDggMCAxMDk2IDAgNDggNDggMCAxMC05NiAwem0zNzYgMTEyaC00OC4xYy00LjIgMC03LjggMy4yLTguMSA3LjQtMy43IDQ5LjUtNDUuMyA4OC42LTk1LjggODguNnMtOTItMzkuMS05NS44LTg4LjZjLS4zLTQuMi0zLjktNy40LTguMS03LjRIMzYwYTggOCAwIDAwLTggOC40YzQuNCA4NC4zIDc0LjUgMTUxLjYgMTYwIDE1MS42czE1NS42LTY3LjMgMTYwLTE1MS42YTggOCAwIDAwLTgtOC40em0tMjQtMTEyYTQ4IDQ4IDAgMTA5NiAwIDQ4IDQ4IDAgMTAtOTYgMHoiLGZpbGw6YX19XX19LG5hbWU6InNtaWxlIix0aGVtZToidHdvdG9uZSJ9O3QuZGVmYXVsdD1lfSw5MjU3NTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODMyIDExMkg3MjRWNzJjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djQwSDUwMFY3MmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NDBIMzIwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnYxMjBoLTk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY2MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNTEyYzE3LjcgMCAzMi0xNC4zIDMyLTMydi05Nmg5NmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTY2NCA0ODZINTE0VjMzNmguMkw2NjQgNDg1Ljh2LjJ6bTEyOCAyNzRoLTU2VjQ1Nkw1NDQgMjY0SDM2MHYtODBoNjh2MzJjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtMzJoMTUydjMyYzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTMyaDY4djU3NnoifX1dfSxuYW1lOiJzbmlwcGV0cyIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw2NTQzNTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODMyIDExMkg3MjRWNzJjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djQwSDUwMFY3MmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NDBIMzIwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnYxMjBoLTk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY2MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNTEyYzE3LjcgMCAzMi0xNC4zIDMyLTMydi05Nmg5NmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTY2NCA4ODhIMjMyVjMzNmgyMTh2MTc0YzAgMjIuMSAxNy45IDQwIDQwIDQwaDE3NHYzMzh6bTAtNDAySDUxNFYzMzZoLjJMNjY0IDQ4NS44di4yem0xMjggMjc0aC01NlY0NTZMNTQ0IDI2NEgzNjB2LTgwaDY4djMyYzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTMyaDE1MnYzMmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di0zMmg2OHY1NzZ6In19XX0sbmFtZToic25pcHBldHMiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSwxMzU0NDpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjpmdW5jdGlvbihhLG4pe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00NTAgNTEwVjMzNkgyMzJ2NTUyaDQzMlY1NTBINDkwYy0yMi4xIDAtNDAtMTcuOS00MC00MHoiLGZpbGw6bn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODMyIDExMkg3MjRWNzJjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djQwSDUwMFY3MmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NDBIMzIwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnYxMjBoLTk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY2MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNTEyYzE3LjcgMCAzMi0xNC4zIDMyLTMydi05Nmg5NmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTY2NCA4ODhIMjMyVjMzNmgyMTh2MTc0YzAgMjIuMSAxNy45IDQwIDQwIDQwaDE3NHYzMzh6bTAtNDAySDUxNFYzMzZoLjJMNjY0IDQ4NS44di4yem0xMjggMjc0aC01NlY0NTZMNTQ0IDI2NEgzNjB2LTgwaDY4djMyYzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTMyaDE1MnYzMmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di0zMmg2OHY1NzZ6IixmaWxsOmF9fV19fSxuYW1lOiJzbmlwcGV0cyIsdGhlbWU6InR3b3RvbmUifTt0LmRlZmF1bHQ9ZX0sNjcyODE6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTY4OCAyNjRjMC00LjQtMy42LTgtOC04SDI5NmMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgzODRjNC40IDAgOC0zLjYgOC04di00OHptLTggMTM2SDI5NmMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgzODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6TTQ4MCA1NDRIMjk2Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDE4NGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOHptLTQ4IDMwOEgyMDhWMTQ4aDU2MHYzNDRjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFYxMDhjMC0xNy43LTE0LjMtMzItMzItMzJIMTY4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3ODRjMCAxNy43IDE0LjMgMzIgMzIgMzJoMjY0YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0zNTYuOC03NC40YzI5LTI2LjMgNDcuMi02NC4zIDQ3LjItMTA2LjYgMC03OS41LTY0LjUtMTQ0LTE0NC0xNDRzLTE0NCA2NC41LTE0NCAxNDRjMCA0Mi4zIDE4LjIgODAuMyA0Ny4yIDEwNi42LTU3IDMyLjUtOTYuMiA5Mi43LTk5LjIgMTYyLjEtLjIgNC41IDMuNSA4LjMgOCA4LjNoNDguMWM0LjIgMCA3LjctMy4zIDgtNy42QzU2NCA4NzEuMiA2MjEuNyA4MTYgNjkyIDgxNnMxMjggNTUuMiAxMzEuOSAxMjQuNGMuMiA0LjIgMy43IDcuNiA4IDcuNkg4ODBjNC42IDAgOC4yLTMuOCA4LTguMy0yLjktNjkuNS00Mi4yLTEyOS42LTk5LjItMTYyLjF6TTY5MiA1OTFjNDQuMiAwIDgwIDM1LjggODAgODBzLTM1LjggODAtODAgODAtODAtMzUuOC04MC04MCAzNS44LTgwIDgwLTgweiJ9fV19LG5hbWU6InNvbHV0aW9uIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNjE0NjE6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTgzOS42IDQzMy44TDc0OSAxNTAuNWE5LjI0IDkuMjQgMCAwMC04LjktNi41aC03Ny40Yy00LjEgMC03LjYgMi42LTguOSA2LjVsLTkxLjMgMjgzLjNjLS4zLjktLjUgMS45LS41IDIuOSAwIDUuMSA0LjIgOS4zIDkuMyA5LjNoNTYuNGM0LjIgMCA3LjgtMi44IDktNi44bDE3LjUtNjEuNmg4OWwxNy4zIDYxLjVjMS4xIDQgNC44IDYuOCA5IDYuOGg2MS4yYzEgMCAxLjktLjEgMi44LS40IDIuNC0uOCA0LjMtMi40IDUuNS00LjYgMS4xLTIuMiAxLjMtNC43LjYtNy4xek02NjMuMyAzMjUuNWwzMi44LTExNi45aDYuM2wzMi4xIDExNi45aC03MS4yem0xNDMuNSA0OTIuOUg2NzcuMnYtLjRsMTMyLjYtMTg4LjljMS4xLTEuNiAxLjctMy40IDEuNy01LjR2LTM2LjRjMC01LjEtNC4yLTkuMy05LjMtOS4zaC0yMDRjLTUuMSAwLTkuMyA0LjItOS4zIDkuM3Y0M2MwIDUuMSA0LjIgOS4zIDkuMyA5LjNoMTIyLjZ2LjRMNTg3LjcgODI4LjlhOS4zNSA5LjM1IDAgMDAtMS43IDUuNHYzNi40YzAgNS4xIDQuMiA5LjMgOS4zIDkuM2gyMTEuNGM1LjEgMCA5LjMtNC4yIDkuMy05LjN2LTQzYTkuMiA5LjIgMCAwMC05LjItOS4zek00MTYgNzAyaC03NlYxNzJjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djUzMGgtNzZjLTYuNyAwLTEwLjUgNy44LTYuMyAxM2wxMTIgMTQxLjlhOCA4IDAgMDAxMi42IDBsMTEyLTE0MS45YzQuMS01LjIuNC0xMy02LjMtMTN6In19XX0sbmFtZToic29ydC1hc2NlbmRpbmciLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw5NzA2MzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODM5LjYgNDMzLjhMNzQ5IDE1MC41YTkuMjQgOS4yNCAwIDAwLTguOS02LjVoLTc3LjRjLTQuMSAwLTcuNiAyLjYtOC45IDYuNWwtOTEuMyAyODMuM2MtLjMuOS0uNSAxLjktLjUgMi45IDAgNS4xIDQuMiA5LjMgOS4zIDkuM2g1Ni40YzQuMiAwIDcuOC0yLjggOS02LjhsMTcuNS02MS42aDg5bDE3LjMgNjEuNWMxLjEgNCA0LjggNi44IDkgNi44aDYxLjJjMSAwIDEuOS0uMSAyLjgtLjQgMi40LS44IDQuMy0yLjQgNS41LTQuNiAxLjEtMi4yIDEuMy00LjcuNi03LjF6TTY2My4zIDMyNS41bDMyLjgtMTE2LjloNi4zbDMyLjEgMTE2LjloLTcxLjJ6bTE0My41IDQ5Mi45SDY3Ny4ydi0uNGwxMzIuNi0xODguOWMxLjEtMS42IDEuNy0zLjQgMS43LTUuNHYtMzYuNGMwLTUuMS00LjItOS4zLTkuMy05LjNoLTIwNGMtNS4xIDAtOS4zIDQuMi05LjMgOS4zdjQzYzAgNS4xIDQuMiA5LjMgOS4zIDkuM2gxMjIuNnYuNEw1ODcuNyA4MjguOWE5LjM1IDkuMzUgMCAwMC0xLjcgNS40djM2LjRjMCA1LjEgNC4yIDkuMyA5LjMgOS4zaDIxMS40YzUuMSAwIDkuMy00LjIgOS4zLTkuM3YtNDNhOS4yIDkuMiAwIDAwLTkuMi05LjN6TTMxMC4zIDE2Ny4xYTggOCAwIDAwLTEyLjYgMEwxODUuNyAzMDljLTQuMiA1LjMtLjQgMTMgNi4zIDEzaDc2djUzMGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04VjMyMmg3NmM2LjcgMCAxMC41LTcuOCA2LjMtMTNsLTExMi0xNDEuOXoifX1dfSxuYW1lOiJzb3J0LWRlc2NlbmRpbmciLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw3Mjc2NjpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODkyLjEgNzM3LjhsLTExMC4zLTYzLjdhMTUuOSAxNS45IDAgMDAtMjEuNyA1LjlsLTE5LjkgMzQuNWMtNC40IDcuNi0xLjggMTcuNCA1LjggMjEuOEw4NTYuMyA4MDBhMTUuOSAxNS45IDAgMDAyMS43LTUuOWwxOS45LTM0LjVjNC40LTcuNiAxLjctMTcuNC01LjgtMjEuOHpNNzYwIDM0NGExNS45IDE1LjkgMCAwMDIxLjcgNS45TDg5MiAyODYuMmM3LjYtNC40IDEwLjItMTQuMiA1LjgtMjEuOEw4NzggMjMwYTE1LjkgMTUuOSAwIDAwLTIxLjctNS45TDc0NiAyODcuOGExNS45OSAxNS45OSAwIDAwLTUuOCAyMS44TDc2MCAzNDR6bTE3NCAxMzJIODA2Yy04LjggMC0xNiA3LjItMTYgMTZ2NDBjMCA4LjggNy4yIDE2IDE2IDE2aDEyOGM4LjggMCAxNi03LjIgMTYtMTZ2LTQwYzAtOC44LTcuMi0xNi0xNi0xNnpNNjI1LjkgMTE1Yy01LjkgMC0xMS45IDEuNi0xNy40IDUuM0wyNTQgMzUySDkwYy04LjggMC0xNiA3LjItMTYgMTZ2Mjg4YzAgOC44IDcuMiAxNiAxNiAxNmgxNjRsMzU0LjUgMjMxLjdjNS41IDMuNiAxMS42IDUuMyAxNy40IDUuMyAxNi43IDAgMzIuMS0xMy4zIDMyLjEtMzIuMVYxNDcuMWMwLTE4LjgtMTUuNC0zMi4xLTMyLjEtMzIuMXoifX1dfSxuYW1lOiJzb3VuZCIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSwxNjUyOTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNjI1LjkgMTE1Yy01LjkgMC0xMS45IDEuNi0xNy40IDUuM0wyNTQgMzUySDkwYy04LjggMC0xNiA3LjItMTYgMTZ2Mjg4YzAgOC44IDcuMiAxNiAxNiAxNmgxNjRsMzU0LjUgMjMxLjdjNS41IDMuNiAxMS42IDUuMyAxNy40IDUuMyAxNi43IDAgMzIuMS0xMy4zIDMyLjEtMzIuMVYxNDcuMWMwLTE4LjgtMTUuNC0zMi4xLTMyLjEtMzIuMXpNNTg2IDgwM0wyOTMuNCA2MTEuN2wtMTgtMTEuN0gxNDZWNDI0aDEyOS40bDE3LjktMTEuN0w1ODYgMjIxdjU4MnptMzQ4LTMyN0g4MDZjLTguOCAwLTE2IDcuMi0xNiAxNnY0MGMwIDguOCA3LjIgMTYgMTYgMTZoMTI4YzguOCAwIDE2LTcuMiAxNi0xNnYtNDBjMC04LjgtNy4yLTE2LTE2LTE2em0tNDEuOSAyNjEuOGwtMTEwLjMtNjMuN2ExNS45IDE1LjkgMCAwMC0yMS43IDUuOWwtMTkuOSAzNC41Yy00LjQgNy42LTEuOCAxNy40IDUuOCAyMS44TDg1Ni4zIDgwMGExNS45IDE1LjkgMCAwMDIxLjctNS45bDE5LjktMzQuNWM0LjQtNy42IDEuNy0xNy40LTUuOC0yMS44ek03NjAgMzQ0YTE1LjkgMTUuOSAwIDAwMjEuNyA1LjlMODkyIDI4Ni4yYzcuNi00LjQgMTAuMi0xNC4yIDUuOC0yMS44TDg3OCAyMzBhMTUuOSAxNS45IDAgMDAtMjEuNy01LjlMNzQ2IDI4Ny44YTE1Ljk5IDE1Ljk5IDAgMDAtNS44IDIxLjhMNzYwIDM0NHoifX1dfSxuYW1lOiJzb3VuZCIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDk2OTEyOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOmZ1bmN0aW9uKGEsbil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTI3NS40IDQyNEgxNDZ2MTc2aDEyOS40bDE4IDExLjdMNTg2IDgwM1YyMjFMMjkzLjMgNDEyLjN6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg5Mi4xIDczNy44bC0xMTAuMy02My43YTE1LjkgMTUuOSAwIDAwLTIxLjcgNS45bC0xOS45IDM0LjVjLTQuNCA3LjYtMS44IDE3LjQgNS44IDIxLjhMODU2LjMgODAwYTE1LjkgMTUuOSAwIDAwMjEuNy01LjlsMTkuOS0zNC41YzQuNC03LjYgMS43LTE3LjQtNS44LTIxLjh6TTkzNCA0NzZIODA2Yy04LjggMC0xNiA3LjItMTYgMTZ2NDBjMCA4LjggNy4yIDE2IDE2IDE2aDEyOGM4LjggMCAxNi03LjIgMTYtMTZ2LTQwYzAtOC44LTcuMi0xNi0xNi0xNnpNNzYwIDM0NGExNS45IDE1LjkgMCAwMDIxLjcgNS45TDg5MiAyODYuMmM3LjYtNC40IDEwLjItMTQuMiA1LjgtMjEuOEw4NzggMjMwYTE1LjkgMTUuOSAwIDAwLTIxLjctNS45TDc0NiAyODcuOGExNS45OSAxNS45OSAwIDAwLTUuOCAyMS44TDc2MCAzNDR6TTYyNS45IDExNWMtNS45IDAtMTEuOSAxLjYtMTcuNCA1LjNMMjU0IDM1Mkg5MGMtOC44IDAtMTYgNy4yLTE2IDE2djI4OGMwIDguOCA3LjIgMTYgMTYgMTZoMTY0bDM1NC41IDIzMS43YzUuNSAzLjYgMTEuNiA1LjMgMTcuNCA1LjMgMTYuNyAwIDMyLjEtMTMuMyAzMi4xLTMyLjFWMTQ3LjFjMC0xOC44LTE1LjQtMzIuMS0zMi4xLTMyLjF6TTU4NiA4MDNMMjkzLjQgNjExLjdsLTE4LTExLjdIMTQ2VjQyNGgxMjkuNGwxNy45LTExLjdMNTg2IDIyMXY1ODJ6IixmaWxsOmF9fV19fSxuYW1lOiJzb3VuZCIsdGhlbWU6InR3b3RvbmUifTt0LmRlZmF1bHQ9ZX0sNjM1MTY6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJkZWZzIixhdHRyczp7fSxjaGlsZHJlbjpbe3RhZzoic3R5bGUiLGF0dHJzOnt9fV19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNOTM4LjIgNTA4LjRMNzg3LjMgMzg5Yy0zLTIuNC03LjMtLjItNy4zIDMuNlY0NzhINjM2VjE4NGgyMDR2MTI4YzAgMi4yIDEuOCA0IDQgNGg2MGMyLjIgMCA0LTEuOCA0LTRWMTQ0YzAtMTUuNS0xMi41LTI4LTI4LTI4SDU5NmMtMTUuNSAwLTI4IDEyLjUtMjggMjh2NzM2YzAgMTUuNSAxMi41IDI4IDI4IDI4aDI4NGMxNS41IDAgMjgtMTIuNSAyOC0yOFY3MTJjMC0yLjItMS44LTQtNC00aC02MGMtMi4yIDAtNCAxLjgtNCA0djEyOEg2MzZWNTQ2aDE0NHY4NS40YzAgMy44IDQuNCA2IDcuMyAzLjZsMTUwLjktMTE5LjRhNC41IDQuNSAwIDAwMC03LjJ6TTQyOCAxMTZIMTQ0Yy0xNS41IDAtMjggMTIuNS0yOCAyOHYxNjhjMCAyLjIgMS44IDQgNCA0aDYwYzIuMiAwIDQtMS44IDQtNFYxODRoMjA0djI5NEgyNDR2LTg1LjRjMC0zLjgtNC4zLTYtNy4zLTMuNmwtMTUxIDExOS40YTQuNTIgNC41MiAwIDAwMCA3LjFsMTUxIDExOS41YzIuOSAyLjMgNy4zLjIgNy4zLTMuNlY1NDZoMTQ0djI5NEgxODRWNzEyYzAtMi4yLTEuOC00LTQtNGgtNjBjLTIuMiAwLTQgMS44LTQgNHYxNjhjMCAxNS41IDEyLjUgMjggMjggMjhoMjg0YzE1LjUgMCAyOC0xMi41IDI4LTI4VjE0NGMwLTE1LjUtMTIuNS0yOC0yOC0yOHoifX1dfSxuYW1lOiJzcGxpdC1jZWxscyIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDE1MDc1OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6eyJmaWxsLXJ1bGUiOiJldmVub2RkIix2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNzIxLjQyIDY5NS4xN2MwLTEyLjQ1LTUuODQtMjIuMzYtMTcuNS0yOS43NS03NS4wNi00NC43My0xNjEuOTgtNjcuMDktMjYwLjc1LTY3LjA5LTUxLjczIDAtMTA3LjUzIDYuNjEtMTY3LjQyIDE5Ljg0LTE2LjMzIDMuNS0yNC41IDEzLjYtMjQuNSAzMC4zMyAwIDcuNzggMi42MyAxNC40OSA3Ljg4IDIwLjEzIDUuMjUgNS42MyAxMi4xNSA4LjQ1IDIwLjcgOC40NSAxLjk1IDAgOS4xNC0xLjU1IDIxLjU5LTQuNjYgNTEuMzMtMTAuNSA5OC41OC0xNS43NSAxNDEuNzUtMTUuNzUgODcuODkgMCAxNjUuMDggMjAuMDIgMjMxLjU4IDYwLjA4IDcuMzkgNC4yOCAxMy44IDYuNDIgMTkuMjUgNi40MiA3LjM5IDAgMTMuOC0yLjYzIDE5LjI1LTcuODggNS40NC01LjI1IDguMTctMTEuOTYgOC4xNy0yMC4xMm01Ni0xMjUuNDJjMC0xNS41Ni02LjgtMjcuNDItMjAuNDItMzUuNTgtOTIuMTctNTQuODQtMTk4LjcyLTgyLjI1LTMxOS42Ny04Mi4yNS01OS41IDAtMTE4LjQxIDguMTYtMTc2Ljc1IDI0LjUtMTguNjYgNS4wNS0yOCAxNy41LTI4IDM3LjMzIDAgOS43MiAzLjQgMTcuOTkgMTAuMjEgMjQuOCA2LjggNi44IDE1LjA3IDEwLjIgMjQuOCAxMC4yIDIuNzIgMCA5LjkxLTEuNTYgMjEuNTgtNC42N2E1NTguMjcgNTU4LjI3IDAgMDExNDYuNDEtMTkuMjVjMTA4LjUgMCAyMDMuNCAyNC4xMSAyODQuNjcgNzIuMzQgOS4zMyA1LjA1IDE2LjcyIDcuNTggMjIuMTcgNy41OCA5LjcyIDAgMTcuOTgtMy40IDI0Ljc5LTEwLjIgNi44LTYuODEgMTAuMi0xNS4wOCAxMC4yLTI0LjhtNjMtMTQ0LjY3YzAtMTguMjctNy43Ny0zMS44OS0yMy4zMy00MC44My00OS0yOC4zOS0xMDUuOTctNDkuODgtMTcwLjkxLTY0LjQ2LTY0Ljk1LTE0LjU4LTEzMS42NC0yMS44Ny0yMDAuMDktMjEuODctNzkuMzMgMC0xNTAuMSA5LjE0LTIxMi4zMyAyNy40MWE0Ni4zIDQ2LjMgMCAwMC0yMi40NiAxNC44OGMtNi4wMyA3LjItOS4wNCAxNi42Mi05LjA0IDI4LjI5IDAgMTIuMDYgMy45OSAyMi4xNyAxMS45NiAzMC4zMyA3Ljk3IDguMTcgMTcuOTggMTIuMjUgMzAuMDQgMTIuMjUgNC4yOCAwIDEyLjA2LTEuNTUgMjMuMzMtNC42NiA1MS43My0xNC40IDExMS40Mi0yMS41OSAxNzkuMDktMjEuNTkgNjEuODMgMCAxMjIuMDEgNi42MSAxODAuNTQgMTkuODQgNTguNTMgMTMuMjIgMTA3LjgyIDMxLjcgMTQ3Ljg3IDU1LjQxIDguMTcgNC42NyAxNS45NSA3IDIzLjM0IDcgMTEuMjcgMCAyMS4xLTMuOTggMjkuNDYtMTEuOTYgOC4zNi03Ljk3IDEyLjU0LTE3Ljk4IDEyLjU0LTMwLjA0TTk2MCA1MTJjMCA4MS4yOC0yMC4wMyAxNTYuMjQtNjAuMDggMjI0Ljg4LTQwLjA2IDY4LjYzLTk0LjQgMTIyLjk4LTE2My4wNCAxNjMuMDRDNjY4LjI0IDkzOS45NyA1OTMuMjcgOTYwIDUxMiA5NjBzLTE1Ni4yNC0yMC4wMy0yMjQuODgtNjAuMDhjLTY4LjYzLTQwLjA2LTEyMi45OC05NC40LTE2My4wNC0xNjMuMDRDODQuMDMgNjY4LjI0IDY0IDU5My4yNyA2NCA1MTJzMjAuMDMtMTU2LjI0IDYwLjA4LTIyNC44OGM0MC4wNi02OC42MyA5NC40LTEyMi45OCAxNjMuMDUtMTYzLjA0QzM1NS43NSA4NC4wMyA0MzAuNzMgNjQgNTEyIDY0YzgxLjI4IDAgMTU2LjI0IDIwLjAzIDIyNC44OCA2MC4wOCA2OC42MyA0MC4wNiAxMjIuOTggOTQuNCAxNjMuMDQgMTYzLjA1QzkzOS45NyAzNTUuNzUgOTYwIDQzMC43MyA5NjAgNTEyIn19XX0sbmFtZToic3BvdGlmeSIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSwzMjEwOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6eyJmaWxsLXJ1bGUiOiJldmVub2RkIix2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC41MiA2NCA2NCAyNjQuNTIgNjQgNTEyczIwMC41MiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjUyIDQ0OC00NDhTNzU5LjQ4IDY0IDUxMiA2NG0wIDc0LjY2YTM3MS44NiAzNzEuODYgMCAwMTI2NC40MyAxMDguOTFBMzcxLjg2IDM3MS44NiAwIDAxODg1LjMzIDUxMmEzNzEuODYgMzcxLjg2IDAgMDEtMTA4LjkgMjY0LjQzQTM3MS44NiAzNzEuODYgMCAwMTUxMiA4ODUuMzNhMzcxLjg2IDM3MS44NiAwIDAxLTI2NC40My0xMDguOUEzNzEuODYgMzcxLjg2IDAgMDExMzguNjcgNTEyYTM3MS44NiAzNzEuODYgMCAwMTEwOC45LTI2NC40M0EzNzEuODYgMzcxLjg2IDAgMDE1MTIgMTM4LjY3TTQ1Mi40OSAzMTZjLTcyLjYxIDAtMTM1LjkgNi43Mi0xOTYgMjUuNjgtMTUuOSAzLjE4LTI5LjE2IDE1LjE2LTI5LjE2IDM3LjM0IDAgMjIuMTQgMTYuMzUgNDEuNyAzOC41IDM4LjQ1IDkuNDggMCAxNS45LTMuNDcgMjIuMTctMy40NyA1MC41OS0xMi43IDEwNy42My0xOC42NyAxNjQuNDktMTguNjcgMTEwLjU1IDAgMjI0IDI0LjY0IDI5OS44MiA2OC44NSA5LjQ5IDMuMiAxMi43IDYuOTggMjIuMTggNi45OCAyMi4xOCAwIDM3LjYzLTE2LjMyIDQwLjg0LTM4LjUgMC0xOC45Ni05LjQ4LTMxLjA2LTIyLjE3LTM3LjMzQzY5OC4zNiAzNDEuNjUgNTcyLjUyIDMxNiA0NTIuNDkgMzE2TTQ0MiA0NTQuODRjLTY2LjM0IDAtMTEzLjYgOS40OS0xNjEuMDIgMjIuMTgtMTUuNzIgNi4yMy0yNC40OSAxNi4wNS0yNC40OSAzNC45OCAwIDE1Ljc2IDEyLjU0IDMxLjUxIDMxLjUxIDMxLjUxIDYuNDIgMCA5LjE4LS4zIDE4LjY3LTMuNTEgMzQuNzItOS40OCA4Mi40LTE1LjE2IDEzMy4wMi0xNS4xNiAxMDQuMjMgMCAxOTQuOTUgMjUuMzkgMjYxLjMzIDY2LjUgNi4yMyAzLjIgMTIuNyA1LjgyIDIyLjE0IDUuODIgMTguOTYgMCAzMS41LTE2LjA2IDMxLjUtMzQuOTggMC0xMi43LTUuOTctMjUuMjQtMTguNjYtMzEuNTEtODIuMTMtNTAuNTktMTg2LjUyLTc1LjgzLTI5NC03NS44M20xMC40OSAxMzYuNWMtNTMuNjUgMC0xMDQuNTMgNS45Ny0xNTUuMTYgMTguNjYtMTIuNjkgMy4yMS0yMi4xNyAxMi4yNC0yMi4xNyAyOCAwIDEyLjcgOS45MyAyNS42OCAyNS42OCAyNS42OCAzLjIxIDAgMTIuNC0zLjUgMTguNjctMy41YTU4MS43MyA1ODEuNzMgMCAwMTEyOS41LTE1LjJjNzguOSAwIDE1MS4wNiAxOC45NyAyMTEuMTcgNTMuNjkgNi40MiAzLjIgMTMuNTUgNS44MiAxOS44MiA1LjgyIDEyLjcgMCAyNC43OS05LjQ4IDI4LTIyLjE0IDAtMTUuOS02Ljg3LTIxLjc2LTE2LjM1LTI4LTY5LjU1LTQxLjE0LTE1MC44LTYzLjAyLTIzOS4xNi02My4wMiJ9fV19LG5hbWU6InNwb3RpZnkiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw4MTA3NjpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTA4LjEgMzUzLjFsLTI1My45LTM2LjlMNTQwLjcgODYuMWMtMy4xLTYuMy04LjItMTEuNC0xNC41LTE0LjUtMTUuOC03LjgtMzUtMS4zLTQyLjkgMTQuNUwzNjkuOCAzMTYuMmwtMjUzLjkgMzYuOWMtNyAxLTEzLjQgNC4zLTE4LjMgOS4zYTMyLjA1IDMyLjA1IDAgMDAuNiA0NS4zbDE4My43IDE3OS4xLTQzLjQgMjUyLjlhMzEuOTUgMzEuOTUgMCAwMDQ2LjQgMzMuN0w1MTIgNzU0bDIyNy4xIDExOS40YzYuMiAzLjMgMTMuNCA0LjQgMjAuMyAzLjIgMTcuNC0zIDI5LjEtMTkuNSAyNi4xLTM2LjlsLTQzLjQtMjUyLjkgMTgzLjctMTc5LjFjNS00LjkgOC4zLTExLjMgOS4zLTE4LjMgMi43LTE3LjUtOS41LTMzLjctMjctMzYuM3oifX1dfSxuYW1lOiJzdGFyIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDQ4NTIyOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MDguMSAzNTMuMWwtMjUzLjktMzYuOUw1NDAuNyA4Ni4xYy0zLjEtNi4zLTguMi0xMS40LTE0LjUtMTQuNS0xNS44LTcuOC0zNS0xLjMtNDIuOSAxNC41TDM2OS44IDMxNi4ybC0yNTMuOSAzNi45Yy03IDEtMTMuNCA0LjMtMTguMyA5LjNhMzIuMDUgMzIuMDUgMCAwMC42IDQ1LjNsMTgzLjcgMTc5LjEtNDMuNCAyNTIuOWEzMS45NSAzMS45NSAwIDAwNDYuNCAzMy43TDUxMiA3NTRsMjI3LjEgMTE5LjRjNi4yIDMuMyAxMy40IDQuNCAyMC4zIDMuMiAxNy40LTMgMjkuMS0xOS41IDI2LjEtMzYuOWwtNDMuNC0yNTIuOSAxODMuNy0xNzkuMWM1LTQuOSA4LjMtMTEuMyA5LjMtMTguMyAyLjctMTcuNS05LjUtMzMuNy0yNy0zNi4zek02NjQuOCA1NjEuNmwzNi4xIDIxMC4zTDUxMiA2NzIuNyAzMjMuMSA3NzJsMzYuMS0yMTAuMy0xNTIuOC0xNDlMNDE3LjYgMzgyIDUxMiAxOTAuNyA2MDYuNCAzODJsMjExLjIgMzAuNy0xNTIuOCAxNDguOXoifX1dfSxuYW1lOiJzdGFyIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNTI0ODQ6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyLjUgMTkwLjRsLTk0LjQgMTkxLjMtMjExLjIgMzAuNyAxNTIuOCAxNDktMzYuMSAyMTAuMyAxODguOS05OS4zIDE4OC45IDk5LjItMzYuMS0yMTAuMyAxNTIuOC0xNDguOS0yMTEuMi0zMC43eiIsZmlsbDpufX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MDguNiAzNTIuOGwtMjUzLjktMzYuOUw1NDEuMiA4NS44Yy0zLjEtNi4zLTguMi0xMS40LTE0LjUtMTQuNS0xNS44LTcuOC0zNS0xLjMtNDIuOSAxNC41TDM3MC4zIDMxNS45bC0yNTMuOSAzNi45Yy03IDEtMTMuNCA0LjMtMTguMyA5LjNhMzIuMDUgMzIuMDUgMCAwMC42IDQ1LjNsMTgzLjcgMTc5LjFMMjM5IDgzOS40YTMxLjk1IDMxLjk1IDAgMDA0Ni40IDMzLjdsMjI3LjEtMTE5LjQgMjI3LjEgMTE5LjRjNi4yIDMuMyAxMy40IDQuNCAyMC4zIDMuMiAxNy40LTMgMjkuMS0xOS41IDI2LjEtMzYuOWwtNDMuNC0yNTIuOSAxODMuNy0xNzkuMWM1LTQuOSA4LjMtMTEuMyA5LjMtMTguMyAyLjctMTcuNS05LjUtMzMuNy0yNy0zNi4zek02NjUuMyA1NjEuM2wzNi4xIDIxMC4zLTE4OC45LTk5LjItMTg4LjkgOTkuMyAzNi4xLTIxMC4zLTE1Mi44LTE0OSAyMTEuMi0zMC43IDk0LjQtMTkxLjMgOTQuNCAxOTEuMyAyMTEuMiAzMC43LTE1Mi44IDE0OC45eiIsZmlsbDphfX1dfX0sbmFtZToic3RhciIsdGhlbWU6InR3b3RvbmUifTt0LmRlZmF1bHQ9ZX0sMTgzOTE6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiMCAwIDEwMjQgMTAyNCIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTM0Ny42IDUyOC45NWwzODMuMiAzMDEuMDJjMTQuMjUgMTEuMiAzNS4yIDEuMSAzNS4yLTE2Ljk1VjIxMC45N2MwLTE4LjA1LTIwLjk1LTI4LjE0LTM1LjItMTYuOTRMMzQ3LjYgNDk1LjA1YTIxLjUzIDIxLjUzIDAgMDAwIDMzLjlNMzMwIDg2NGgtNjRhOCA4IDAgMDEtOC04VjE2OGE4IDggMCAwMTgtOGg2NGE4IDggMCAwMTggOHY2ODhhOCA4IDAgMDEtOCA4In19XX0sbmFtZToic3RlcC1iYWNrd2FyZCIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSwzMjc0OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjAgMCAxMDI0IDEwMjQiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0zNDcuNiA1MjguOTVsMzgzLjIgMzAxLjAyYzE0LjI1IDExLjIgMzUuMiAxLjEgMzUuMi0xNi45NVYyMTAuOTdjMC0xOC4wNS0yMC45NS0yOC4xNC0zNS4yLTE2Ljk0TDM0Ny42IDQ5NS4wNWEyMS41MyAyMS41MyAwIDAwMCAzMy45TTMzMCA4NjRoLTY0YTggOCAwIDAxLTgtOFYxNjhhOCA4IDAgMDE4LThoNjRhOCA4IDAgMDE4IDh2Njg4YTggOCAwIDAxLTggOCJ9fV19LG5hbWU6InN0ZXAtYmFja3dhcmQiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw5NTkzMjpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiIwIDAgMTAyNCAxMDI0Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNjc2LjQgNTI4Ljk1TDI5My4yIDgyOS45N2MtMTQuMjUgMTEuMi0zNS4yIDEuMS0zNS4yLTE2Ljk1VjIxMC45N2MwLTE4LjA1IDIwLjk1LTI4LjE0IDM1LjItMTYuOTRsMzgzLjIgMzAxLjAyYTIxLjUzIDIxLjUzIDAgMDEwIDMzLjlNNjk0IDg2NGg2NGE4IDggMCAwMDgtOFYxNjhhOCA4IDAgMDAtOC04aC02NGE4IDggMCAwMC04IDh2Njg4YTggOCAwIDAwOCA4In19XX0sbmFtZToic3RlcC1mb3J3YXJkIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDcyMzQzOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjAgMCAxMDI0IDEwMjQiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02NzYuNCA1MjguOTVMMjkzLjIgODI5Ljk3Yy0xNC4yNSAxMS4yLTM1LjIgMS4xLTM1LjItMTYuOTVWMjEwLjk3YzAtMTguMDUgMjAuOTUtMjguMTQgMzUuMi0xNi45NGwzODMuMiAzMDEuMDJhMjEuNTMgMjEuNTMgMCAwMTAgMzMuOU02OTQgODY0aDY0YTggOCAwIDAwOC04VjE2OGE4IDggMCAwMC04LThoLTY0YTggOCAwIDAwLTggOHY2ODhhOCA4IDAgMDA4IDgifX1dfSxuYW1lOiJzdGVwLWZvcndhcmQiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw0Nzg4MjpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTA0IDc0N0gxMjBjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNzg0YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04ek0xNjUuNyA2MjEuOGwzOS43IDM5LjVjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGwyMzQuNy0yMzMuOSA5Ny42IDk3LjNhMzIuMTEgMzIuMTEgMCAwMDQ1LjIgMGwyNjQuMi0yNjMuMmMzLjEtMy4xIDMuMS04LjIgMC0xMS4zbC0zOS43LTM5LjZhOC4wMyA4LjAzIDAgMDAtMTEuMyAwbC0yMzUuNyAyMzUtOTcuNy05Ny4zYTMyLjExIDMyLjExIDAgMDAtNDUuMiAwTDE2NS43IDYxMC41YTcuOTQgNy45NCAwIDAwMCAxMS4zeiJ9fV19LG5hbWU6InN0b2NrIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sMTE0NTE6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0yMzQuOCA3MzYuNUwyMjMuNSAyNzcuMmMxNi0xOS43IDM0LTM3LjcgNTMuNy01My43bDUyMy4zIDUyMy4zYy0xNiAxOS42LTM0IDM3LjctNTMuNyA1My43eiJ9fV19LG5hbWU6InN0b3AiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sMzk2Mzc6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MiAwLTg5IDMxLjMtMTcwLjggODMuNS0yMzQuOGw1MjMuMyA1MjMuM0M2ODIuOCA4NTIuNyA2MDEgODg0IDUxMiA4ODR6bTI4OC41LTEzNy4yTDI3Ny4yIDIyMy41QzM0MS4yIDE3MS4zIDQyMyAxNDAgNTEyIDE0MGMyMDUuNCAwIDM3MiAxNjYuNiAzNzIgMzcyIDAgODktMzEuMyAxNzAuOC04My41IDIzNC44eiJ9fV19LG5hbWU6InN0b3AiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw3NzE4MDpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjpmdW5jdGlvbihhLG4pe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMjg4LjUgNjgyLjhMMjc3LjcgMjI0QzI1OCAyNDAgMjQwIDI1OCAyMjQgMjc3LjdsNTIyLjggNTIyLjhDNjgyLjggODUyLjcgNjAxIDg4NCA1MTIgODg0Yy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyYzAgODktMzEuMyAxNzAuOC04My41IDIzNC44eiIsZmlsbDphfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgMTQwYy0yMDUuNCAwLTM3MiAxNjYuNi0zNzIgMzcyczE2Ni42IDM3MiAzNzIgMzcyYzg5IDAgMTcwLjgtMzEuMyAyMzQuOC04My41TDIyNCAyNzcuN2MxNi0xOS43IDM0LTM3LjcgNTMuNy01My43bDUyMi44IDUyMi44Qzg1Mi43IDY4Mi44IDg4NCA2MDEgODg0IDUxMmMwLTIwNS40LTE2Ni42LTM3Mi0zNzItMzcyeiIsZmlsbDpufX1dfX0sbmFtZToic3RvcCIsdGhlbWU6InR3b3RvbmUifTt0LmRlZmF1bHQ9ZX0sNjUwNjI6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTk1MiA0NzRINTY5LjljLTEwLTItMjAuNS00LTMxLjYtNi0xNS45LTIuOS0yMi4yLTQuMS0zMC44LTUuOC01MS4zLTEwLTgyLjItMjAtMTA2LjgtMzQuMi0zNS4xLTIwLjUtNTIuMi00OC4zLTUyLjItODUuMSAwLTM3IDE1LjItNjcuNyA0NC04OSAyOC40LTIxIDY4LjgtMzIuMSAxMTYuOC0zMi4xIDU0LjggMCA5Ny4xIDE0LjQgMTI1LjggNDIuOCAxNC42IDE0LjQgMjUuMyAzMi4xIDMxLjggNTIuNiAxLjMgNC4xIDIuOCAxMCA0LjMgMTcuOC45IDQuOCA1LjIgOC4yIDkuOSA4LjJoNzIuOGM1LjYgMCAxMC4xLTQuNiAxMC4xLTEwLjF2LTFjLS43LTYuOC0xLjMtMTIuMS0yLTE2LTcuMy00My41LTI4LTgxLjctNTkuNy0xMTAuMy00NC40LTQwLjUtMTA5LjctNjEuOC0xODguNy02MS44LTcyLjMgMC0xMzcuNCAxOC4xLTE4My4zIDUwLjktMjUuNiAxOC40LTQ1LjQgNDEuMi01OC42IDY3LjctMTMuNSAyNy4xLTIwLjMgNTguNC0yMC4zIDkyLjkgMCAyOS41IDUuNyA1NC41IDE3LjMgNzYuNSA4LjMgMTUuNyAxOS42IDI5LjUgMzQuMSA0Mkg3MmMtNC40IDAtOCAzLjYtOCA4djYwYzAgNC40IDMuNiA4IDggOGg0MzMuMmMyLjEuNCAzLjkuOCA1LjkgMS4yIDMwLjkgNi4yIDQ5LjUgMTAuNCA2Ni42IDE1LjIgMjMgNi41IDQwLjYgMTMuMyA1NS4yIDIxLjUgMzUuOCAyMC4yIDUzLjMgNDkuMiA1My4zIDg5IDAgMzUuMy0xNS41IDY2LjgtNDMuNiA4OC44LTMwLjUgMjMuOS03NS42IDM2LjQtMTMwLjUgMzYuNC00My43IDAtODAuNy04LjUtMTEwLjItMjUtMjkuMS0xNi4zLTQ5LjEtMzkuOC01OS43LTY5LjUtLjgtMi4yLTEuNy01LjItMi43LTktMS4yLTQuNC01LjMtNy41LTkuNy03LjVoLTc5LjdjLTUuNiAwLTEwLjEgNC42LTEwLjEgMTAuMXYxYy4yIDIuMy40IDQuMi42IDUuNyA2LjUgNDguOCAzMC4zIDg4LjggNzAuNyAxMTguOCA0Ny4xIDM0LjggMTEzLjQgNTMuMiAxOTEuOCA1My4yIDg0LjIgMCAxNTQuOC0xOS44IDIwNC4yLTU3LjMgMjUtMTguOSA0NC4yLTQyLjIgNTcuMS02OSAxMy0yNy4xIDE5LjctNTcuOSAxOS43LTkxLjUgMC0zMS44LTUuOC01OC40LTE3LjgtODEuNC01LjgtMTEuMi0xMy4xLTIxLjUtMjEuOC0zMC44SDk1MmM0LjQgMCA4LTMuNiA4LTh2LTYwYTggOCAwIDAwLTgtNy45eiJ9fV19LG5hbWU6InN0cmlrZXRocm91Z2giLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSwzNTQzNTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6ImRlZnMiLGF0dHJzOnt9LGNoaWxkcmVuOlt7dGFnOiJzdHlsZSIsYXR0cnM6e319XX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02ODggMjQwYy0xMzggMC0yNTIgMTAyLjgtMjY5LjYgMjM2SDI0OWE5NS45MiA5NS45MiAwIDAwLTg5LTYwYy01MyAwLTk2IDQzLTk2IDk2czQzIDk2IDk2IDk2YzQwLjMgMCA3NC44LTI0LjggODktNjBoMTY5LjNDNDM2IDY4MS4yIDU1MCA3ODQgNjg4IDc4NGMxNTAuMiAwIDI3Mi0xMjEuOCAyNzItMjcyUzgzOC4yIDI0MCA2ODggMjQwem0xMjggMjk4YzAgNC40LTMuNiA4LTggOGgtODZ2ODZjMCA0LjQtMy42IDgtOCA4aC01MmMtNC40IDAtOC0zLjYtOC04di04NmgtODZjLTQuNCAwLTgtMy42LTgtOHYtNTJjMC00LjQgMy42LTggOC04aDg2di04NmMwLTQuNCAzLjYtOCA4LThoNTJjNC40IDAgOCAzLjYgOCA4djg2aDg2YzQuNCAwIDggMy42IDggOHY1MnoifX1dfSxuYW1lOiJzdWJub2RlIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sMzg0ODY6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7ImZpbGwtcnVsZSI6ImV2ZW5vZGQiLHZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01NDggODE4djEyNmExNiAxNiAwIDAxLTE2IDE2aC00MGExNiAxNiAwIDAxLTE2LTE2VjgxOGMxNS44NSAxLjY0IDI3Ljg0IDIuNDYgMzYgMi40NiA4LjE1IDAgMjAuMTYtLjgyIDM2LTIuNDZtMjA1LjI1LTExNS42Nmw4OS4xIDg5LjFhMTYgMTYgMCAwMTAgMjIuNjJsLTI4LjI5IDI4LjI5YTE2IDE2IDAgMDEtMjIuNjIgMGwtODkuMS04OS4xYzEyLjM3LTEwLjA0IDIxLjQzLTE3Ljk1IDI3LjItMjMuNzEgNS43Ni01Ljc3IDEzLjY3LTE0Ljg0IDIzLjcxLTI3LjJtLTQ4Mi41IDBjMTAuMDQgMTIuMzYgMTcuOTUgMjEuNDMgMjMuNzEgMjcuMiA1Ljc3IDUuNzYgMTQuODQgMTMuNjcgMjcuMiAyMy43MWwtODkuMSA4OS4xYTE2IDE2IDAgMDEtMjIuNjIgMGwtMjguMjktMjguMjlhMTYgMTYgMCAwMTAtMjIuNjN6TTUxMiAyNzhjMTI5LjI0IDAgMjM0IDEwNC43NyAyMzQgMjM0UzY0MS4yNCA3NDYgNTEyIDc0NiAyNzggNjQxLjI0IDI3OCA1MTJzMTA0Ljc3LTIzNCAyMzQtMjM0TTIwNiA0NzZjLTEuNjQgMTUuODUtMi40NiAyNy44NC0yLjQ2IDM2IDAgOC4xNS44MiAyMC4xNiAyLjQ2IDM2SDgwYTE2IDE2IDAgMDEtMTYtMTZ2LTQwYTE2IDE2IDAgMDExNi0xNnptNzM4IDBhMTYgMTYgMCAwMTE2IDE2djQwYTE2IDE2IDAgMDEtMTYgMTZIODE4YzEuNjQtMTUuODUgMi40Ni0yNy44NCAyLjQ2LTM2IDAtOC4xNS0uODItMjAuMTYtMi40Ni0zNnpNODE0LjA2IDE4MC42NWwyOC4yOSAyOC4yOWExNiAxNiAwIDAxMCAyMi42M2wtODkuMSA4OS4wOWMtMTAuMDQtMTIuMzctMTcuOTUtMjEuNDMtMjMuNzEtMjcuMi01Ljc3LTUuNzYtMTQuODQtMTMuNjctMjcuMi0yMy43MWw4OS4xLTg5LjFhMTYgMTYgMCAwMTIyLjYyIDBtLTU4MS41IDBsODkuMSA4OS4xYy0xMi4zNyAxMC4wNC0yMS40MyAxNy45NS0yNy4yIDIzLjcxLTUuNzYgNS43Ny0xMy42NyAxNC44NC0yMy43MSAyNy4ybC04OS4xLTg5LjFhMTYgMTYgMCAwMTAtMjIuNjJsMjguMjktMjguMjlhMTYgMTYgMCAwMTIyLjYyIDBNNTMyIDY0YTE2IDE2IDAgMDExNiAxNnYxMjZjLTE1Ljg1LTEuNjQtMjcuODQtMi40Ni0zNi0yLjQ2LTguMTUgMC0yMC4xNi44Mi0zNiAyLjQ2VjgwYTE2IDE2IDAgMDExNi0xNnoifX1dfSxuYW1lOiJzdW4iLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sODk5MTA6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7ImZpbGwtcnVsZSI6ImV2ZW5vZGQiLHZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01NDggODE4djEyNmExNiAxNiAwIDAxLTE2IDE2aC00MGExNiAxNiAwIDAxLTE2LTE2VjgxOGMxNS44NSAxLjY0IDI3Ljg0IDIuNDYgMzYgMi40NiA4LjE1IDAgMjAuMTYtLjgyIDM2LTIuNDZtMjA1LjI1LTExNS42Nmw4OS4xIDg5LjFhMTYgMTYgMCAwMTAgMjIuNjJsLTI4LjI5IDI4LjI5YTE2IDE2IDAgMDEtMjIuNjIgMGwtODkuMS04OS4xYzEyLjM3LTEwLjA0IDIxLjQzLTE3Ljk1IDI3LjItMjMuNzEgNS43Ni01Ljc3IDEzLjY3LTE0Ljg0IDIzLjcxLTI3LjJtLTQ4Mi41IDBjMTAuMDQgMTIuMzYgMTcuOTUgMjEuNDMgMjMuNzEgMjcuMiA1Ljc3IDUuNzYgMTQuODQgMTMuNjcgMjcuMiAyMy43MWwtODkuMSA4OS4xYTE2IDE2IDAgMDEtMjIuNjIgMGwtMjguMjktMjguMjlhMTYgMTYgMCAwMTAtMjIuNjN6TTUxMiAyNzhjMTI5LjI0IDAgMjM0IDEwNC43NyAyMzQgMjM0UzY0MS4yNCA3NDYgNTEyIDc0NiAyNzggNjQxLjI0IDI3OCA1MTJzMTA0Ljc3LTIzNCAyMzQtMjM0bTAgNzJjLTg5LjQ3IDAtMTYyIDcyLjUzLTE2MiAxNjJzNzIuNTMgMTYyIDE2MiAxNjIgMTYyLTcyLjUzIDE2Mi0xNjItNzIuNTMtMTYyLTE2Mi0xNjJNMjA2IDQ3NmMtMS42NCAxNS44NS0yLjQ2IDI3Ljg0LTIuNDYgMzYgMCA4LjE1LjgyIDIwLjE2IDIuNDYgMzZIODBhMTYgMTYgMCAwMS0xNi0xNnYtNDBhMTYgMTYgMCAwMTE2LTE2em03MzggMGExNiAxNiAwIDAxMTYgMTZ2NDBhMTYgMTYgMCAwMS0xNiAxNkg4MThjMS42NC0xNS44NSAyLjQ2LTI3Ljg0IDIuNDYtMzYgMC04LjE1LS44Mi0yMC4xNi0yLjQ2LTM2ek04MTQuMDYgMTgwLjY1bDI4LjI5IDI4LjI5YTE2IDE2IDAgMDEwIDIyLjYzbC04OS4xIDg5LjA5Yy0xMC4wNC0xMi4zNy0xNy45NS0yMS40My0yMy43MS0yNy4yLTUuNzctNS43Ni0xNC44NC0xMy42Ny0yNy4yLTIzLjcxbDg5LjEtODkuMWExNiAxNiAwIDAxMjIuNjIgMG0tNTgxLjUgMGw4OS4xIDg5LjFjLTEyLjM3IDEwLjA0LTIxLjQzIDE3Ljk1LTI3LjIgMjMuNzEtNS43NiA1Ljc3LTEzLjY3IDE0Ljg0LTIzLjcxIDI3LjJsLTg5LjEtODkuMWExNiAxNiAwIDAxMC0yMi42MmwyOC4yOS0yOC4yOWExNiAxNiAwIDAxMjIuNjIgME01MzIgNjRhMTYgMTYgMCAwMTE2IDE2djEyNmMtMTUuODUtMS42NC0yNy44NC0yLjQ2LTM2LTIuNDYtOC4xNSAwLTIwLjE2LjgyLTM2IDIuNDZWODBhMTYgMTYgMCAwMTE2LTE2eiJ9fV19LG5hbWU6InN1biIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDkzMzQyOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjAgMCAxMDI0IDEwMjQiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NzIgNTcySDI2Ni44bDE0NC4zLTE4M2M0LjEtNS4yLjQtMTMtNi4zLTEzSDM0MGMtOS44IDAtMTkuMSA0LjUtMjUuMSAxMi4ybC0xNjQgMjA4Yy0xNi41IDIxLTEuNiA1MS44IDI1LjEgNTEuOGg2OTZjNC40IDAgOC0zLjYgOC04di02MGMwLTQuNC0zLjYtOC04LTh6In19XX0sbmFtZToic3dhcC1sZWZ0Iix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNDA1MDQ6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg0Ny45IDU5MkgxNTJjLTQuNCAwLTggMy42LTggOHY2MGMwIDQuNCAzLjYgOCA4IDhoNjA1LjJMNjEyLjkgODUxYy00LjEgNS4yLS40IDEzIDYuMyAxM2g3Mi41YzQuOSAwIDkuNS0yLjIgMTIuNi02LjFsMTY4LjgtMjE0LjFjMTYuNS0yMSAxLjYtNTEuOC0yNS4yLTUxLjh6TTg3MiAzNTZIMjY2LjhsMTQ0LjMtMTgzYzQuMS01LjIuNC0xMy02LjMtMTNoLTcyLjVjLTQuOSAwLTkuNSAyLjItMTIuNiA2LjFMMTUwLjkgMzgwLjJjLTE2LjUgMjEtMS42IDUxLjggMjUuMSA1MS44aDY5NmM0LjQgMCA4LTMuNiA4LTh2LTYwYzAtNC40LTMuNi04LTgtOHoifX1dfSxuYW1lOiJzd2FwIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNjI0OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjAgMCAxMDI0IDEwMjQiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NzMuMSA1OTYuMmwtMTY0LTIwOEEzMiAzMiAwIDAwNjg0IDM3NmgtNjQuOGMtNi43IDAtMTAuNCA3LjctNi4zIDEzbDE0NC4zIDE4M0gxNTJjLTQuNCAwLTggMy42LTggOHY2MGMwIDQuNCAzLjYgOCA4IDhoNjk1LjljMjYuOCAwIDQxLjctMzAuOCAyNS4yLTUxLjh6In19XX0sbmFtZToic3dhcC1yaWdodCIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDg5MTM0OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik03NTIgMjQwSDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjA4YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDYwOGMxNy43IDAgMzItMTQuMyAzMi0zMlYyNzJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTU5NiA2MDZjMCA0LjQtMy42IDgtOCA4SDMwOGMtNC40IDAtOC0zLjYtOC04di00OGMwLTQuNCAzLjYtOCA4LThoMjgwYzQuNCAwIDggMy42IDggOHY0OHptMjg0LTQ5NEgyNjRjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTc2djU3NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04VjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnoifX1dfSxuYW1lOiJzd2l0Y2hlciIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw5MTMwODpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNzUyIDI0MEgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjYwOGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2MDhjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjcyYzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNjAwSDE4NFYzMTJoNTI4djUyOHptMTY4LTcyOEgyNjRjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTc2djU3NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04VjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMzAwIDU1MGgyOTZ2NjRIMzAweiJ9fV19LG5hbWU6InN3aXRjaGVyIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sMjQwOTU6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMTg0IDg0MGg1MjhWMzEySDE4NHY1Mjh6bTExNi0yOTBoMjk2djY0SDMwMHYtNjR6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxMTJIMjY0Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU3NnY1NzZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6IixmaWxsOmF9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTc1MiAyNDBIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY2MDhjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjA4YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjI3MmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDYwMEgxODRWMzEyaDUyOHY1Mjh6IixmaWxsOmF9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTMwMCA1NTBoMjk2djY0SDMwMHoiLGZpbGw6YX19XX19LG5hbWU6InN3aXRjaGVyIix0aGVtZToidHdvdG9uZSJ9O3QuZGVmYXVsdD1lfSwzODc4MzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMTY4IDUwNC4yYzEtNDMuNyAxMC04Ni4xIDI2LjktMTI2IDE3LjMtNDEgNDIuMS03Ny43IDczLjctMTA5LjRTMzM3IDIxMi4zIDM3OCAxOTVjNDIuNC0xNy45IDg3LjQtMjcgMTMzLjktMjdzOTEuNSA5LjEgMTMzLjggMjdBMzQxLjUgMzQxLjUgMCAwMTc1NSAyNjguOGM5LjkgOS45IDE5LjIgMjAuNCAyNy44IDMxLjRsLTYwLjIgNDdhOCA4IDAgMDAzIDE0LjFsMTc1LjcgNDNjNSAxLjIgOS45LTIuNiA5LjktNy43bC44LTE4MC45YzAtNi43LTcuNy0xMC41LTEyLjktNi4zbC01Ni40IDQ0LjFDNzY1LjggMTU1LjEgNjQ2LjIgOTIgNTExLjggOTIgMjgyLjcgOTIgOTYuMyAyNzUuNiA5MiA1MDMuOGE4IDggMCAwMDggOC4yaDYwYzQuNCAwIDcuOS0zLjUgOC03Ljh6bTc1NiA3LjhoLTYwYy00LjQgMC03LjkgMy41LTggNy44LTEgNDMuNy0xMCA4Ni4xLTI2LjkgMTI2LTE3LjMgNDEtNDIuMSA3Ny44LTczLjcgMTA5LjRBMzQyLjQ1IDM0Mi40NSAwIDAxNTEyLjEgODU2YTM0Mi4yNCAzNDIuMjQgMCAwMS0yNDMuMi0xMDAuOGMtOS45LTkuOS0xOS4yLTIwLjQtMjcuOC0zMS40bDYwLjItNDdhOCA4IDAgMDAtMy0xNC4xbC0xNzUuNy00M2MtNS0xLjItOS45IDIuNi05LjkgNy43bC0uNyAxODFjMCA2LjcgNy43IDEwLjUgMTIuOSA2LjNsNTYuNC00NC4xQzI1OC4yIDg2OC45IDM3Ny44IDkzMiA1MTIuMiA5MzJjMjI5LjIgMCA0MTUuNS0xODMuNyA0MTkuOC00MTEuOGE4IDggMCAwMC04LTguMnoifX1dfSxuYW1lOiJzeW5jIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sOTA5ODE6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkyOCAxNjBIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY0MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg4MzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgMjA4SDY3NlYyMzJoMjEydjEzNnptMCAyMjRINjc2VjQzMmgyMTJ2MTYwek00MTIgNDMyaDIwMHYxNjBINDEyVjQzMnptMjAwLTY0SDQxMlYyMzJoMjAwdjEzNnptLTQ3NiA2NGgyMTJ2MTYwSDEzNlY0MzJ6bTAtMjAwaDIxMnYxMzZIMTM2VjIzMnptMCA0MjRoMjEydjEzNkgxMzZWNjU2em0yNzYgMGgyMDB2MTM2SDQxMlY2NTZ6bTQ3NiAxMzZINjc2VjY1NmgyMTJ2MTM2eiJ9fV19LG5hbWU6InRhYmxlIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sODYxMjY6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTgwMCA2NEgyMjRjLTM1LjMgMC02NCAyOC43LTY0IDY0djc2OGMwIDM1LjMgMjguNyA2NCA2NCA2NGg1NzZjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTI4YzAtMzUuMy0yOC43LTY0LTY0LTY0ek01MTIgODI0Yy0yMi4xIDAtNDAtMTcuOS00MC00MHMxNy45LTQwIDQwLTQwIDQwIDE3LjkgNDAgNDAtMTcuOSA0MC00MCA0MHoifX1dfSxuYW1lOiJ0YWJsZXQiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sOTg0NTM6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTgwMCA2NEgyMjRjLTM1LjMgMC02NCAyOC43LTY0IDY0djc2OGMwIDM1LjMgMjguNyA2NCA2NCA2NGg1NzZjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTI4YzAtMzUuMy0yOC43LTY0LTY0LTY0em0tOCA4MjRIMjMyVjEzNmg1NjB2NzUyek00NzIgNzg0YTQwIDQwIDAgMTA4MCAwIDQwIDQwIDAgMTAtODAgMHoifX1dfSxuYW1lOiJ0YWJsZXQiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw4MDY5OTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjpmdW5jdGlvbihhLG4pe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04MDAgNjRIMjI0Yy0zNS4zIDAtNjQgMjguNy02NCA2NHY3NjhjMCAzNS4zIDI4LjcgNjQgNjQgNjRoNTc2YzM1LjMgMCA2NC0yOC43IDY0LTY0VjEyOGMwLTM1LjMtMjguNy02NC02NC02NHptLTggODI0SDIzMlYxMzZoNTYwdjc1MnoiLGZpbGw6YX19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMjMyIDg4OGg1NjBWMTM2SDIzMnY3NTJ6bTI4MC0xNDRjMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDAtNDAtMTcuOS00MC00MCAxNy45LTQwIDQwLTQweiIsZmlsbDpufX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00NzIgNzg0YTQwIDQwIDAgMTA4MCAwIDQwIDQwIDAgMTAtODAgMHoiLGZpbGw6YX19XX19LG5hbWU6InRhYmxldCIsdGhlbWU6InR3b3RvbmUifTt0LmRlZmF1bHQ9ZX0sOTQ4MTk6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkzOCA0NTguOGwtMjkuNi0zMTIuNmMtMS41LTE2LjItMTQuNC0yOS0zMC42LTMwLjZMNTY1LjIgODZoLS40Yy0zLjIgMC01LjcgMS03LjYgMi45TDg4LjkgNTU3LjJhOS45NiA5Ljk2IDAgMDAwIDE0LjFsMzYzLjggMzYzLjhjMS45IDEuOSA0LjQgMi45IDcuMSAyLjlzNS4yLTEgNy4xLTIuOWw0NjguMy00NjguM2MyLTIuMSAzLTUgMi44LTh6TTY5OSAzODdjLTM1LjMgMC02NC0yOC43LTY0LTY0czI4LjctNjQgNjQtNjQgNjQgMjguNyA2NCA2NC0yOC43IDY0LTY0IDY0eiJ9fV19LG5hbWU6InRhZyIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw2MjkyMTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTM4IDQ1OC44bC0yOS42LTMxMi42Yy0xLjUtMTYuMi0xNC40LTI5LTMwLjYtMzAuNkw1NjUuMiA4NmgtLjRjLTMuMiAwLTUuNyAxLTcuNiAyLjlMODguOSA1NTcuMmE5Ljk2IDkuOTYgMCAwMDAgMTQuMWwzNjMuOCAzNjMuOGMxLjkgMS45IDQuNCAyLjkgNy4xIDIuOXM1LjItMSA3LjEtMi45bDQ2OC4zLTQ2OC4zYzItMi4xIDMtNSAyLjgtOHpNNDU5LjcgODM0LjdMMTg5LjMgNTY0LjMgNTg5IDE2NC42IDgzNiAxODhsMjMuNCAyNDctMzk5LjcgMzk5Ljd6TTY4MCAyNTZjLTQ4LjUgMC04OCAzOS41LTg4IDg4czM5LjUgODggODggODggODgtMzkuNSA4OC04OC0zOS41LTg4LTg4LTg4em0wIDEyMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzJ6In19XX0sbmFtZToidGFnIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNzUzMzY6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTg5IDE2NC42TDE4OS4zIDU2NC4zbDI3MC40IDI3MC40TDg1OS40IDQzNSA4MzYgMTg4bC0yNDctMjMuNHpNNjgwIDQzMmMtNDguNSAwLTg4LTM5LjUtODgtODhzMzkuNS04OCA4OC04OCA4OCAzOS41IDg4IDg4LTM5LjUgODgtODggODh6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTY4MCAyNTZjLTQ4LjUgMC04OCAzOS41LTg4IDg4czM5LjUgODggODggODggODgtMzkuNSA4OC04OC0zOS41LTg4LTg4LTg4em0wIDEyMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzJ6IixmaWxsOmF9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkzOCA0NTguOGwtMjkuNi0zMTIuNmMtMS41LTE2LjItMTQuNC0yOS0zMC42LTMwLjZMNTY1LjIgODZoLS40Yy0zLjIgMC01LjcgMS03LjYgMi45TDg4LjkgNTU3LjJhOS45NiA5Ljk2IDAgMDAwIDE0LjFsMzYzLjggMzYzLjhhOS45IDkuOSAwIDAwNy4xIDIuOWMyLjcgMCA1LjItMSA3LjEtMi45bDQ2OC4zLTQ2OC4zYzItMi4xIDMtNSAyLjgtOHpNNDU5LjcgODM0LjdMMTg5LjMgNTY0LjMgNTg5IDE2NC42IDgzNiAxODhsMjMuNCAyNDctMzk5LjcgMzk5Ljd6IixmaWxsOmF9fV19fSxuYW1lOiJ0YWciLHRoZW1lOiJ0d290b25lIn07dC5kZWZhdWx0PWV9LDE2ODQ2OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00ODMuMiA3OTAuM0w4NjEuNCA0MTJjMS43LTEuNyAyLjUtNCAyLjMtNi4zbC0yNS41LTMwMS40Yy0uNy03LjgtNi44LTEzLjktMTQuNi0xNC42TDUyMi4yIDY0LjNjLTIuMy0uMi00LjcuNi02LjMgMi4zTDEzNy43IDQ0NC44YTguMDMgOC4wMyAwIDAwMCAxMS4zbDMzNC4yIDMzNC4yYzMuMSAzLjIgOC4yIDMuMiAxMS4zIDB6bTEyMi43LTUzMy40YzE4LjctMTguNyA0OS4xLTE4LjcgNjcuOSAwIDE4LjcgMTguNyAxOC43IDQ5LjEgMCA2Ny45LTE4LjcgMTguNy00OS4xIDE4LjctNjcuOSAwLTE4LjctMTguNy0xOC43LTQ5LjEgMC02Ny45em0yODMuOCAyODIuOWwtMzkuNi0zOS41YTguMDMgOC4wMyAwIDAwLTExLjMgMGwtMzYyIDM2MS4zLTIzNy42LTIzN2E4LjAzIDguMDMgMCAwMC0xMS4zIDBsLTM5LjYgMzkuNWE4LjAzIDguMDMgMCAwMDAgMTEuM2wyNDMuMiAyNDIuOCAzOS42IDM5LjVjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGw0MDcuMy00MDYuNmMzLjEtMy4xIDMuMS04LjIgMC0xMS4zeiJ9fV19LG5hbWU6InRhZ3MiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sMjgxODU6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQ4My4yIDc5MC4zTDg2MS40IDQxMmMxLjctMS43IDIuNS00IDIuMy02LjNsLTI1LjUtMzAxLjRjLS43LTcuOC02LjgtMTMuOS0xNC42LTE0LjZMNTIyLjIgNjQuM2MtMi4zLS4yLTQuNy42LTYuMyAyLjNMMTM3LjcgNDQ0LjhhOC4wMyA4LjAzIDAgMDAwIDExLjNsMzM0LjIgMzM0LjJjMy4xIDMuMiA4LjIgMy4yIDExLjMgMHptNjIuNi02NTEuN2wyMjQuNiAxOSAxOSAyMjQuNkw0NzcuNSA2OTQgMjMzLjkgNDUwLjVsMzExLjktMzExLjl6bTYwLjE2IDE4Ni4yM2E0OCA0OCAwIDEwNjcuODgtNjcuODkgNDggNDggMCAxMC02Ny44OCA2Ny44OXpNODg5LjcgNTM5LjhsLTM5LjYtMzkuNWE4LjAzIDguMDMgMCAwMC0xMS4zIDBsLTM2MiAzNjEuMy0yMzcuNi0yMzdhOC4wMyA4LjAzIDAgMDAtMTEuMyAwbC0zOS42IDM5LjVhOC4wMyA4LjAzIDAgMDAwIDExLjNsMjQzLjIgMjQyLjggMzkuNiAzOS41YzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBsNDA3LjMtNDA2LjZjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM3oifX1dfSxuYW1lOiJ0YWdzIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNTI2Mjg6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNDc3LjUgNjk0bDMxMS45LTMxMS44LTE5LTIyNC42LTIyNC42LTE5LTMxMS45IDMxMS45TDQ3Ny41IDY5NHptMTE2LTQxNS41YTQ3LjgxIDQ3LjgxIDAgMDEzMy45LTMzLjljMTYuNi00LjQgMzQuMi4zIDQ2LjQgMTIuNGE0Ny45MyA0Ny45MyAwIDAxMTIuNCA0Ni40IDQ3LjgxIDQ3LjgxIDAgMDEtMzMuOSAzMy45Yy0xNi42IDQuNC0zNC4yLS4zLTQ2LjQtMTIuNGE0OC4zIDQ4LjMgMCAwMS0xMi40LTQ2LjR6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQ3Ni42IDc5Mi42Yy0xLjctLjItMy40LTEtNC43LTIuM0wxMzcuNyA0NTYuMWE4LjAzIDguMDMgMCAwMTAtMTEuM0w1MTUuOSA2Ni42YzEuMi0xLjMgMi45LTIuMSA0LjctMi4zaC0uNGMtMi4zLS4yLTQuNy42LTYuMyAyLjNMMTM1LjcgNDQ0LjhhOC4wMyA4LjAzIDAgMDAwIDExLjNsMzM0LjIgMzM0LjJjMS44IDEuOSA0LjMgMi42IDYuNyAyLjN6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4OS43IDUzOS44bC0zOS42LTM5LjVhOC4wMyA4LjAzIDAgMDAtMTEuMyAwbC0zNjIgMzYxLjMtMjM3LjYtMjM3YTguMDMgOC4wMyAwIDAwLTExLjMgMGwtMzkuNiAzOS41YTguMDMgOC4wMyAwIDAwMCAxMS4zbDI0My4yIDI0Mi44IDM5LjYgMzkuNWMzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDQwNy4zLTQwNi42YzMuMS0zLjEgMy4xLTguMiAwLTExLjN6TTY1Mi4zIDMzNy4zYTQ3LjgxIDQ3LjgxIDAgMDAzMy45LTMzLjljNC40LTE2LjYtLjMtMzQuMi0xMi40LTQ2LjRhNDcuOTMgNDcuOTMgMCAwMC00Ni40LTEyLjQgNDcuODEgNDcuODEgMCAwMC0zMy45IDMzLjljLTQuNCAxNi42LjMgMzQuMiAxMi40IDQ2LjRhNDguMyA0OC4zIDAgMDA0Ni40IDEyLjR6IixmaWxsOmF9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTEzNy43IDQ0NC44YTguMDMgOC4wMyAwIDAwMCAxMS4zbDMzNC4yIDMzNC4yYzEuMyAxLjMgMi45IDIuMSA0LjcgMi4zIDIuNC4zIDQuOC0uNSA2LjYtMi4zTDg2MS40IDQxMmMxLjctMS43IDIuNS00IDIuMy02LjNsLTI1LjUtMzAxLjRjLS43LTcuOC02LjgtMTMuOS0xNC42LTE0LjZMNTIyLjIgNjQuM2gtMS42Yy0xLjguMi0zLjQgMS00LjcgMi4zTDEzNy43IDQ0NC44em00MDguMS0zMDYuMmwyMjQuNiAxOSAxOSAyMjQuNkw0NzcuNSA2OTQgMjMzLjkgNDUwLjVsMzExLjktMzExLjl6IixmaWxsOmF9fV19fSxuYW1lOiJ0YWdzIix0aGVtZToidHdvdG9uZSJ9O3QuZGVmYXVsdD1lfSw0ODUxNTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6TTMxNS43IDI5MS41YzI3LjMgMCA0OS41IDIyLjEgNDkuNSA0OS40cy0yMi4xIDQ5LjQtNDkuNSA0OS40YTQ5LjQgNDkuNCAwIDExMC05OC44ek0zNjYuOSA1NzhjLTEzLjYgNDIuMy0xMC4yIDI2LjctNjQuNCAxNDQuNWwtNzguNS00OXM4Ny43LTc5LjggMTA1LjYtMTE2LjJjMTkuMi0zOC40LTIxLjEtNTguOS0yMS4xLTU4LjlsLTYwLjItMzcuNSAzMi43LTUwLjJjNDUuNCAzMy43IDQ4LjcgMzYuNiA3OS4yIDY3LjIgMjMuOCAyMy45IDIwLjcgNTYuOCA2LjcgMTAwLjF6bTQyNy4yIDU1Yy0xNS4zIDE0My44LTIwMi40IDkwLjMtMjAyLjQgOTAuM2wxMC4yLTQxLjEgNDMuMyA5LjNjODAgNSA3Mi4zLTY0LjkgNzIuMy02NC45VjQyM2MuNi03Ny4zLTcyLjYtODUuNC0yMDQuMi0zOC4zbDMwLjYgOC4zYy0yLjUgOS0xMi41IDIzLjItMjUuMiAzOC42aDE3NnYzNS42aC05OS4xdjQ0LjVoOTguN3YzNS43aC05OC43VjYyMmMxNC45LTQuOCAyOC42LTExLjUgNDAuNS0yMC41bC04LjctMzIuNSA0Ni41LTE0LjQgMzguOCA5NC45LTU3LjMgMjMuOS0xMC4yLTM3LjhjLTI1LjYgMTkuNS03OC44IDQ4LTE3MS44IDQ1LjQtOTkuMiAyLjYtNzMuNy0xMTItNzMuNy0xMTJsMi41LTEuM0g0NzJjLS41IDE0LjctNi42IDM4LjcgMS43IDUxLjggNi44IDEwLjggMjQuMiAxMi42IDM1LjMgMTMuMSAxLjMuMSAyLjYuMSAzLjkuMXYtODUuM2gtMTAxdi0zNS43aDEwMXYtNDQuNUg0ODdjLTIyLjcgMjQuMS00My41IDQ0LjEtNDMuNSA0NC4xbC0zMC42LTI2LjdjMjEuNy0yMi45IDQzLjMtNTkuMSA1Ni44LTgzLjItMTAuOSA0LjQtMjIgOS4yLTMzLjYgMTQuMi0xMS4yIDE0LjMtMjQuMiAyOS0zOC43IDQzLjUuNS44LTUwLTI4LjQtNTAtMjguNCA1Mi4yLTQ0LjQgODEuNC0xMzkuOSA4MS40LTEzOS45bDcyLjUgMjAuNHMtNS45IDE0LTE4LjQgMzUuNmMyOTAuMy04Mi4zIDMwNy40IDUwLjUgMzA3LjQgNTAuNXMxOS4xIDkxLjggMy44IDIzNS43eiJ9fV19LG5hbWU6InRhb2Jhby1jaXJjbGUiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sODg2NDM6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0ek0zMTUuNyAyOTEuNWMyNy4zIDAgNDkuNSAyMi4xIDQ5LjUgNDkuNHMtMjIuMSA0OS40LTQ5LjUgNDkuNGE0OS40IDQ5LjQgMCAxMTAtOTguOHpNMzY2LjkgNTc4Yy0xMy42IDQyLjMtMTAuMiAyNi43LTY0LjQgMTQ0LjVsLTc4LjUtNDlzODcuNy03OS44IDEwNS42LTExNi4yYzE5LjItMzguNC0yMS4xLTU4LjktMjEuMS01OC45bC02MC4yLTM3LjUgMzIuNy01MC4yYzQ1LjQgMzMuNyA0OC43IDM2LjYgNzkuMiA2Ny4yIDIzLjggMjMuOSAyMC43IDU2LjggNi43IDEwMC4xem00MjcuMiA1NWMtMTUuMyAxNDMuOC0yMDIuNCA5MC4zLTIwMi40IDkwLjNsMTAuMi00MS4xIDQzLjMgOS4zYzgwIDUgNzIuMy02NC45IDcyLjMtNjQuOVY0MjNjLjYtNzcuMy03Mi42LTg1LjQtMjA0LjItMzguM2wzMC42IDguM2MtMi41IDktMTIuNSAyMy4yLTI1LjIgMzguNmgxNzZ2MzUuNmgtOTkuMXY0NC41aDk4Ljd2MzUuN2gtOTguN1Y2MjJjMTQuOS00LjggMjguNi0xMS41IDQwLjUtMjAuNWwtOC43LTMyLjUgNDYuNS0xNC40IDM4LjggOTQuOS01Ny4zIDIzLjktMTAuMi0zNy44Yy0yNS42IDE5LjUtNzguOCA0OC0xNzEuOCA0NS40LTk5LjIgMi42LTczLjctMTEyLTczLjctMTEybDIuNS0xLjNINDcyYy0uNSAxNC43LTYuNiAzOC43IDEuNyA1MS44IDYuOCAxMC44IDI0LjIgMTIuNiAzNS4zIDEzLjEgMS4zLjEgMi42LjEgMy45LjF2LTg1LjNoLTEwMXYtMzUuN2gxMDF2LTQ0LjVINDg3Yy0yMi43IDI0LjEtNDMuNSA0NC4xLTQzLjUgNDQuMWwtMzAuNi0yNi43YzIxLjctMjIuOSA0My4zLTU5LjEgNTYuOC04My4yLTEwLjkgNC40LTIyIDkuMi0zMy42IDE0LjItMTEuMiAxNC4zLTI0LjIgMjktMzguNyA0My41LjUuOC01MC0yOC40LTUwLTI4LjQgNTIuMi00NC40IDgxLjQtMTM5LjkgODEuNC0xMzkuOWw3Mi41IDIwLjRzLTUuOSAxNC0xOC40IDM1LjZjMjkwLjMtODIuMyAzMDcuNCA1MC41IDMwNy40IDUwLjVzMTkuMSA5MS44IDMuOCAyMzUuN3oifX1dfSxuYW1lOiJ0YW9iYW8tY2lyY2xlIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNTYwNjc6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTE2OC41IDI3My43YTY4LjcgNjguNyAwIDEwMTM3LjQgMCA2OC43IDY4LjcgMCAxMC0xMzcuNCAwem03MzAgNzkuMnMtMjMuNy0xODQuNC00MjYuOS03MC4xYzE3LjMtMzAgMjUuNi00OS41IDI1LjYtNDkuNUwzOTYuNCAyMDVzLTQwLjYgMTMyLjYtMTEzIDE5NC40YzAgMCA3MC4xIDQwLjYgNjkuNCAzOS40IDIwLjEtMjAuMSAzOC4yLTQwLjYgNTMuNy02MC40IDE2LjEtNyAzMS41LTEzLjYgNDYuNy0xOS44LTE4LjYgMzMuNS00OC43IDgzLjgtNzguOCAxMTUuNmw0Mi40IDM3czI4LjgtMjcuNyA2MC40LTYxLjJoMzZ2NjEuOEgzNzIuOXY0OS41aDE0MC4zdjExOC41Yy0xLjcgMC0zLjYgMC01LjQtLjItMTUuNC0uNy0zOS41LTMuMy00OS0xOC4yLTExLjUtMTguMS0zLTUxLjUtMi40LTcxLjloLTk3bC0zLjQgMS44cy0zNS41IDE1OS4xIDEwMi4zIDE1NS41YzEyOS4xIDMuNiAyMDMtMzYgMjM4LjYtNjMuMWwxNC4yIDUyLjYgNzkuNi0zMy4yLTUzLjktMTMxLjktNjQuNiAyMC4xIDEyLjEgNDUuMmMtMTYuNiAxMi40LTM1LjYgMjEuNy01Ni4yIDI4LjRWNTYxLjNoMTM3LjF2LTQ5LjVINjI4LjFWNDUwaDEzNy42di00OS41SDUyMS4zYzE3LjYtMjEuNCAzMS41LTQxLjEgMzUtNTMuNmwtNDIuNS0xMS42YzE4Mi44LTY1LjUgMjg0LjUtNTQuMiAyODMuNiA1My4ydjI4Mi44czEwLjggOTcuMS0xMDAuNCA5MC4xbC02MC4yLTEyLjktMTQuMiA1Ny4xUzg4Mi41IDg4MCA5MDMuNyA2ODAuMmMyMS4zLTIwMC01LjItMzI3LjMtNS4yLTMyNy4zem0tNzA3LjQgMTguM2wtNDUuNCA2OS43IDgzLjYgNTIuMXM1NiAyOC41IDI5LjQgODEuOUMyMzMuOCA2MjUuNSAxMTIgNzM2LjMgMTEyIDczNi4zbDEwOSA2OC4xYzc1LjQtMTYzLjcgNzAuNS0xNDIgODkuNS0yMDAuNyAxOS41LTYwLjEgMjMuNy0xMDUuOS05LjQtMTM5LjEtNDIuNC00Mi42LTQ3LTQ2LjYtMTEwLTkzLjR6In19XX0sbmFtZToidGFvYmFvIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sOTA3OTA6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMzE1LjcgMjkxLjVjMjcuMyAwIDQ5LjUgMjIuMSA0OS41IDQ5LjRzLTIyLjEgNDkuNC00OS41IDQ5LjRhNDkuNCA0OS40IDAgMTEwLTk4Ljh6TTM2Ni45IDU3OGMtMTMuNiA0Mi4zLTEwLjIgMjYuNy02NC40IDE0NC41bC03OC41LTQ5czg3LjctNzkuOCAxMDUuNi0xMTYuMmMxOS4yLTM4LjQtMjEuMS01OC45LTIxLjEtNTguOWwtNjAuMi0zNy41IDMyLjctNTAuMmM0NS40IDMzLjcgNDguNyAzNi42IDc5LjIgNjcuMiAyMy44IDIzLjkgMjAuNyA1Ni44IDYuNyAxMDAuMXptNDI3LjIgNTVjLTE1LjMgMTQzLjgtMjAyLjQgOTAuMy0yMDIuNCA5MC4zbDEwLjItNDEuMSA0My4zIDkuM2M4MCA1IDcyLjMtNjQuOSA3Mi4zLTY0LjlWNDIzYy42LTc3LjMtNzIuNi04NS40LTIwNC4yLTM4LjNsMzAuNiA4LjNjLTIuNSA5LTEyLjUgMjMuMi0yNS4yIDM4LjZoMTc2djM1LjZoLTk5LjF2NDQuNWg5OC43djM1LjdoLTk4LjdWNjIyYzE0LjktNC44IDI4LjYtMTEuNSA0MC41LTIwLjVsLTguNy0zMi41IDQ2LjUtMTQuNCAzOC44IDk0LjktNTcuMyAyMy45LTEwLjItMzcuOGMtMjUuNiAxOS41LTc4LjggNDgtMTcxLjggNDUuNC05OS4yIDIuNi03My43LTExMi03My43LTExMmwyLjUtMS4zSDQ3MmMtLjUgMTQuNy02LjYgMzguNyAxLjcgNTEuOCA2LjggMTAuOCAyNC4yIDEyLjYgMzUuMyAxMy4xIDEuMy4xIDIuNi4xIDMuOS4xdi04NS4zaC0xMDF2LTM1LjdoMTAxdi00NC41SDQ4N2MtMjIuNyAyNC4xLTQzLjUgNDQuMS00My41IDQ0LjFsLTMwLjYtMjYuN2MyMS43LTIyLjkgNDMuMy01OS4xIDU2LjgtODMuMi0xMC45IDQuNC0yMiA5LjItMzMuNiAxNC4yLTExLjIgMTQuMy0yNC4yIDI5LTM4LjcgNDMuNS41LjgtNTAtMjguNC01MC0yOC40IDUyLjItNDQuNCA4MS40LTEzOS45IDgxLjQtMTM5LjlsNzIuNSAyMC40cy01LjkgMTQtMTguNCAzNS42YzI5MC4zLTgyLjMgMzA3LjQgNTAuNSAzMDcuNCA1MC41czE5LjEgOTEuOCAzLjggMjM1Ljd6In19XX0sbmFtZToidGFvYmFvLXNxdWFyZSIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSwxOTA3MzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODI0LjIgNjk5LjlhMzAxLjU1IDMwMS41NSAwIDAwLTg2LjQtNjAuNEM3ODMuMSA2MDIuOCA4MTIgNTQ2LjggODEyIDQ4NGMwLTExMC44LTkyLjQtMjAxLjctMjAzLjItMjAwLTEwOS4xIDEuNy0xOTcgOTAuNi0xOTcgMjAwIDAgNjIuOCAyOSAxMTguOCA3NC4yIDE1NS41YTMwMC45NSAzMDAuOTUgMCAwMC04Ni40IDYwLjRDMzQ1IDc1NC42IDMxNCA4MjYuOCAzMTIgOTAzLjhhOCA4IDAgMDA4IDguMmg1NmM0LjMgMCA3LjktMy40IDgtNy43IDEuOS01OCAyNS40LTExMi4zIDY2LjctMTUzLjVBMjI2LjYyIDIyNi42MiAwIDAxNjEyIDY4NGM2MC45IDAgMTE4LjIgMjMuNyAxNjEuMyA2Ni44QzgxNC41IDc5MiA4MzggODQ2LjMgODQwIDkwNC4zYy4xIDQuMyAzLjcgNy43IDggNy43aDU2YTggOCAwIDAwOC04LjJjLTItNzctMzMtMTQ5LjItODcuOC0yMDMuOXpNNjEyIDYxMmMtMzQuMiAwLTY2LjQtMTMuMy05MC41LTM3LjVhMTI2Ljg2IDEyNi44NiAwIDAxLTM3LjUtOTEuOGMuMy0zMi44IDEzLjQtNjQuNSAzNi4zLTg4IDI0LTI0LjYgNTYuMS0zOC4zIDkwLjQtMzguNyAzMy45LS4zIDY2LjggMTIuOSA5MSAzNi42IDI0LjggMjQuMyAzOC40IDU2LjggMzguNCA5MS40IDAgMzQuMi0xMy4zIDY2LjMtMzcuNSA5MC41QTEyNy4zIDEyNy4zIDAgMDE2MTIgNjEyek0zNjEuNSA1MTAuNGMtLjktOC43LTEuNC0xNy41LTEuNC0yNi40IDAtMTUuOSAxLjUtMzEuNCA0LjMtNDYuNS43LTMuNi0xLjItNy4zLTQuNS04LjgtMTMuNi02LjEtMjYuMS0xNC41LTM2LjktMjUuMWExMjcuNTQgMTI3LjU0IDAgMDEtMzguNy05NS40Yy45LTMyLjEgMTMuOC02Mi42IDM2LjMtODUuNiAyNC43LTI1LjMgNTcuOS0zOS4xIDkzLjItMzguNyAzMS45LjMgNjIuNyAxMi42IDg2IDM0LjQgNy45IDcuNCAxNC43IDE1LjYgMjAuNCAyNC40IDIgMy4xIDUuOSA0LjQgOS4zIDMuMiAxNy42LTYuMSAzNi4yLTEwLjQgNTUuMy0xMi40IDUuNi0uNiA4LjgtNi42IDYuMy0xMS42LTMyLjUtNjQuMy05OC45LTEwOC43LTE3NS43LTEwOS45LTExMC45LTEuNy0yMDMuMyA4OS4yLTIwMy4zIDE5OS45IDAgNjIuOCAyOC45IDExOC44IDc0LjIgMTU1LjUtMzEuOCAxNC43LTYxLjEgMzUtODYuNSA2MC40LTU0LjggNTQuNy04NS44IDEyNi45LTg3LjggMjA0YTggOCAwIDAwOCA4LjJoNTYuMWM0LjMgMCA3LjktMy40IDgtNy43IDEuOS01OCAyNS40LTExMi4zIDY2LjctMTUzLjUgMjkuNC0yOS40IDY1LjQtNDkuOCAxMDQuNy01OS43IDMuOS0xIDYuNS00LjcgNi04Ljd6In19XX0sbmFtZToidGVhbSIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDMwOTgyOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NDggMzU5LjNINjI3LjdMODI1LjggMTA5YzQuMS01LjMuNC0xMy02LjMtMTNINDM2Yy0yLjggMC01LjUgMS41LTYuOSA0TDE3MCA1NDcuNWMtMy4xIDUuMy43IDEyIDYuOSAxMmgxNzQuNGwtODkuNCAzNTcuNmMtMS45IDcuOCA3LjUgMTMuMyAxMy4zIDcuN0w4NTMuNSAzNzNjNS4yLTQuOSAxLjctMTMuNy01LjUtMTMuN3oifX1dfSxuYW1lOiJ0aHVuZGVyYm9sdCIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw0NDQ5NjpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODQ4IDM1OS4zSDYyNy43TDgyNS44IDEwOWM0LjEtNS4zLjQtMTMtNi4zLTEzSDQzNmMtMi44IDAtNS41IDEuNS02LjkgNEwxNzAgNTQ3LjVjLTMuMSA1LjMuNyAxMiA2LjkgMTJoMTc0LjRsLTg5LjQgMzU3LjZjLTEuOSA3LjggNy41IDEzLjMgMTMuMyA3LjdMODUzLjUgMzczYzUuMi00LjkgMS43LTEzLjctNS41LTEzLjd6TTM3OC4yIDczMi41bDYwLjMtMjQxSDI4MS4xbDE4OS42LTMyNy40aDIyNC42TDQ4NyA0MjcuNGgyMTFMMzc4LjIgNzMyLjV6In19XX0sbmFtZToidGh1bmRlcmJvbHQiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSwzODM3MDpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjpmdW5jdGlvbihhLG4pe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02OTUuNCAxNjQuMUg0NzAuOEwyODEuMiA0OTEuNWgxNTcuNGwtNjAuMyAyNDEgMzE5LjgtMzA1LjFoLTIxMXoiLGZpbGw6bn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODQ4LjEgMzU5LjNINjI3LjhMODI1LjkgMTA5YzQuMS01LjMuNC0xMy02LjMtMTNINDM2LjFjLTIuOCAwLTUuNSAxLjUtNi45IDRMMTcwLjEgNTQ3LjVjLTMuMSA1LjMuNyAxMiA2LjkgMTJoMTc0LjRMMjYyIDkxNy4xYy0xLjkgNy44IDcuNSAxMy4zIDEzLjMgNy43TDg1My42IDM3M2M1LjItNC45IDEuNy0xMy43LTUuNS0xMy43ek0zNzguMyA3MzIuNWw2MC4zLTI0MUgyODEuMmwxODkuNi0zMjcuNGgyMjQuNkw0ODcuMSA0MjcuNGgyMTFMMzc4LjMgNzMyLjV6IixmaWxsOmF9fV19fSxuYW1lOiJ0aHVuZGVyYm9sdCIsdGhlbWU6InR3b3RvbmUifTt0LmRlZmF1bHQ9ZX0sNzM1MjI6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7ImZpbGwtcnVsZSI6ImV2ZW5vZGQiLHZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MTIgMjI0Ljk2QzkxMiAxNjIuNTcgODYxLjQyIDExMiA3OTkuMDQgMTEySDIyNC45NkMxNjIuNTcgMTEyIDExMiAxNjIuNTcgMTEyIDIyNC45NnY1NzQuMDhDMTEyIDg2MS40MyAxNjIuNTggOTEyIDIyNC45NiA5MTJoNTc0LjA4Qzg2MS40MiA5MTIgOTEyIDg2MS40MyA5MTIgNzk5LjA0ek03NzQuNzYgNDYwLjkyYy01MS42Mi41Ny05OS43MS0xNS4wMy0xNDEuOTQtNDMuOTN2MjAyLjg3YTE5Mi4zIDE5Mi4zIDAgMDEtMTQ5IDE4Ny44NWMtMTE5LjA2IDI3LjE3LTIxOS44Ni01OC45NS0yMzIuNTctMTYxLjgzLTEzLjMtMTAyLjg5IDUyLjMyLTE5My4wNiAxNTIuODktMjEzLjI5IDE5LjY1LTQuMDQgNDkuMi00LjA0IDY0LjQ2LS41N3YxMDguNjZjLTQuNy0xLjE1LTkuMDktMi4zMS0xMy43MS0yLjg5LTM5LjMtNi45NC03Ny4zNyAxMi43Mi05Mi45OCA0OC41NS0xNS42IDM1Ljg0LTUuMTYgNzcuNDUgMjYuNjMgMTAxLjczIDI2LjU5IDIwLjggNTYuMDkgMjMuNyA4Ni4xNCA5LjgyIDMwLjA2LTEzLjI5IDQ2LjIxLTM3LjU2IDQ5LjY4LTcwLjUuNTgtNC42My41NC05Ljg0LjU0LTE1LjA0VjIyMi4yMWMwLTEwLjk5LjA5LTEwLjUgMTEuMDctMTAuNWg4Ni4xMmM2LjM2IDAgOC42Ny45IDkuMjUgOC40MyA0LjYyIDY3LjA0IDU1LjUzIDEyNC4xNCAxMjAuODQgMTMyLjgxIDYuOTQgMS4xNiAxNC4zNyAxLjYyIDIyLjU4IDIuMnoifX1dfSxuYW1lOiJ0aWstdG9rIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDkyMTI3OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6eyJmaWxsLXJ1bGUiOiJldmVub2RkIix2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTMwLjAxIDExMi42N2M0My42Ny0uNjcgODctLjM0IDEzMC4zMy0uNjcgMi42NyA1MSAyMSAxMDMgNTguMzMgMTM5IDM3LjMzIDM3IDkwIDU0IDE0MS4zMyA1OS42NlY0NDVjLTQ4LTEuNjctOTYuMzMtMTEuNjctMTQwLTMyLjM0LTE5LTguNjYtMzYuNjYtMTkuNjYtNTQtMzEtLjMzIDk3LjMzLjM0IDE5NC42Ny0uNjYgMjkxLjY3LTIuNjcgNDYuNjYtMTggOTMtNDUgMTMxLjMzLTQzLjY2IDY0LTExOS4zMiAxMDUuNjYtMTk2Ljk5IDEwNy00Ny42NiAyLjY2LTk1LjMzLTEwLjM0LTEzNi0zNC4zNEMyMjAuMDQgODM3LjY2IDE3Mi43IDc2NSAxNjUuNyA2ODdjLS42Ny0xNi42Ni0xLTMzLjMzLS4zNC00OS42NiA2LTYzLjM0IDM3LjMzLTEyNCA4Ni0xNjUuMzQgNTUuMzMtNDggMTMyLjY2LTcxIDIwNC45OS01Ny4zMy42NyA0OS4zNC0xLjMzIDk4LjY3LTEuMzMgMTQ4LTMzLTEwLjY3LTcxLjY3LTcuNjctMTAwLjY3IDEyLjMzLTIxIDEzLjY3LTM3IDM0LjY3LTQ1LjMzIDU4LjM0LTcgMTctNSAzNS42Ni00LjY2IDUzLjY2IDggNTQuNjcgNjAuNjYgMTAwLjY3IDExNi42NiA5NS42NyAzNy4zMy0uMzQgNzMtMjIgOTIuMzMtNTMuNjcgNi4zMy0xMSAxMy4zMy0yMi4zMyAxMy42Ni0zNS4zMyAzLjM0LTU5LjY3IDItMTE5IDIuMzQtMTc4LjY2LjMzLTEzNC4zNC0uMzQtMjY4LjMzLjY2LTQwMi4zMyJ9fV19LG5hbWU6InRpay10b2siLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSwxODQwNjpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODg1IDc4MEgxNjVjLTQuNCAwLTggMy42LTggOHY2MGMwIDQuNCAzLjYgOCA4IDhoNzIwYzQuNCAwIDgtMy42IDgtOHYtNjBjMC00LjQtMy42LTgtOC04ek00MDAgMzI1LjdoNzMuOVY2NjRjMCA0LjQgMy42IDggOCA4aDYwYzQuNCAwIDgtMy42IDgtOFYzMjUuN0g2MjRjNi43IDAgMTAuNC03LjcgNi4zLTEyLjlMNTE4LjMgMTcxYTggOCAwIDAwLTEyLjYgMGwtMTEyIDE0MS43Yy00LjEgNS4zLS40IDEzIDYuMyAxM3oifX1dfSxuYW1lOiJ0by10b3AiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw1NTE5MzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODY1LjMgMjQ0LjdjLS4zLS4zLTYxLjEgNTkuOC0xODIuMSAxODAuNmwtODQuOS04NC45IDE4MC45LTE4MC45Yy05NS4yLTU3LjMtMjE3LjUtNDIuNi0yOTYuOCAzNi43QTI0NC40MiAyNDQuNDIgMCAwMDQxOSA0MzJsMS44IDYuNy0yODMuNSAyODMuNGMtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZsMTQxLjQgMTQxLjRjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBsMjgzLjMtMjgzLjMgNi43IDEuOGM4My43IDIyLjMgMTczLjYtLjkgMjM2LTYzLjMgNzkuNC03OS4zIDk0LjEtMjAxLjYgMzgtMjk2LjZ6In19XX0sbmFtZToidG9vbCIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw2OTMwODpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODc2LjYgMjM5LjVjLS41LS45LTEuMi0xLjgtMi0yLjUtNS01LTEzLjEtNS0xOC4xIDBMNjg0LjIgNDA5LjNsLTY3LjktNjcuOUw3ODguNyAxNjljLjgtLjggMS40LTEuNiAyLTIuNSAzLjYtNi4xIDEuNi0xMy45LTQuNS0xNy41LTk4LjItNTgtMjI2LjgtNDQuNy0zMTEuMyAzOS43LTY3IDY3LTg5LjIgMTYyLTY2LjUgMjQ3LjRsLTI5MyAyOTNjLTMgMy0yLjggNy45LjMgMTFsMTY5LjcgMTY5LjdjMy4xIDMuMSA4LjEgMy4zIDExIC4zbDI5Mi45LTI5Mi45Yzg1LjUgMjIuOCAxODAuNS43IDI0Ny42LTY2LjQgODQuNC04NC41IDk3LjctMjEzLjEgMzkuNy0zMTEuM3pNNzg2IDQ5OS44Yy01OC4xIDU4LjEtMTQ1LjMgNjkuMy0yMTQuNiAzMy42bC04LjggOC44LS4xLS4xLTI3NCAyNzQuMS03OS4yLTc5LjIgMjMwLjEtMjMwLjFzMCAuMS4xLjFsNTIuOC01Mi44Yy0zNS43LTY5LjMtMjQuNS0xNTYuNSAzMy42LTIxNC42YTE4NC4yIDE4NC4yIDAgMDExNDQtNTMuNUw1MzcgMzE4LjlhMzIuMDUgMzIuMDUgMCAwMDAgNDUuM2wxMjQuNSAxMjQuNWEzMi4wNSAzMi4wNSAwIDAwNDUuMyAwbDEzMi44LTEzMi44YzMuNyA1MS44LTE0LjQgMTA0LjgtNTMuNiAxNDMuOXoifX1dfSxuYW1lOiJ0b29sIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNjM1NjA6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNzA2LjggNDg4LjdhMzIuMDUgMzIuMDUgMCAwMS00NS4zIDBMNTM3IDM2NC4yYTMyLjA1IDMyLjA1IDAgMDEwLTQ1LjNsMTMyLjktMTMyLjhhMTg0LjIgMTg0LjIgMCAwMC0xNDQgNTMuNWMtNTguMSA1OC4xLTY5LjMgMTQ1LjMtMzMuNiAyMTQuNkw0MzkuNSA1MDdjLS4xIDAtLjEtLjEtLjEtLjFMMjA5LjMgNzM3bDc5LjIgNzkuMiAyNzQtMjc0LjEuMS4xIDguOC04LjhjNjkuMyAzNS43IDE1Ni41IDI0LjUgMjE0LjYtMzMuNiAzOS4yLTM5LjEgNTcuMy05Mi4xIDUzLjYtMTQzLjlMNzA2LjggNDg4Ljd6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg3Ni42IDIzOS41Yy0uNS0uOS0xLjItMS44LTItMi41LTUtNS0xMy4xLTUtMTguMSAwTDY4NC4yIDQwOS4zbC02Ny45LTY3LjlMNzg4LjcgMTY5Yy44LS44IDEuNC0xLjYgMi0yLjUgMy42LTYuMSAxLjYtMTMuOS00LjUtMTcuNS05OC4yLTU4LTIyNi44LTQ0LjctMzExLjMgMzkuNy02NyA2Ny04OS4yIDE2Mi02Ni41IDI0Ny40bC0yOTMgMjkzYy0zIDMtMi44IDcuOS4zIDExbDE2OS43IDE2OS43YzMuMSAzLjEgOC4xIDMuMyAxMSAuM2wyOTIuOS0yOTIuOWM4NS41IDIyLjggMTgwLjUuNyAyNDcuNi02Ni40IDg0LjQtODQuNSA5Ny43LTIxMy4xIDM5LjctMzExLjN6TTc4NiA0OTkuOGMtNTguMSA1OC4xLTE0NS4zIDY5LjMtMjE0LjYgMzMuNmwtOC44IDguOC0uMS0uMS0yNzQgMjc0LjEtNzkuMi03OS4yIDIzMC4xLTIzMC4xczAgLjEuMS4xbDUyLjgtNTIuOGMtMzUuNy02OS4zLTI0LjUtMTU2LjUgMzMuNi0yMTQuNmExODQuMiAxODQuMiAwIDAxMTQ0LTUzLjVMNTM3IDMxOC45YTMyLjA1IDMyLjA1IDAgMDAwIDQ1LjNsMTI0LjUgMTI0LjVhMzIuMDUgMzIuMDUgMCAwMDQ1LjMgMGwxMzIuOC0xMzIuOGMzLjcgNTEuOC0xNC40IDEwNC44LTUzLjYgMTQzLjl6IixmaWxsOmF9fV19fSxuYW1lOiJ0b29sIix0aGVtZToidHdvdG9uZSJ9O3QuZGVmYXVsdD1lfSw1NTk0NjpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTE2NC43IDY2MC4yYy0xLjEuNS0yLjMuOC0zLjUuOGgtNjJjLTMuMSAwLTUuOS0xLjgtNy4yLTQuNmwtNzQuNi0xNTkuMmgtODguN1Y3MTdjMCA0LjQtMy42IDgtOCA4SDM3OGMtNC40IDAtOC0zLjYtOC04VjMwN2MwLTQuNCAzLjYtOCA4LThoMTU1LjZjOTguOCAwIDE0NC4yIDU5LjkgMTQ0LjIgMTMxLjEgMCA3MC4yLTQzLjYgMTA2LjQtNzguNCAxMTkuMmw4MC44IDE2NC4yYzIuMSAzLjkuNCA4LjctMy41IDEwLjd6TTUyMy45IDM1N2gtODMuNHYxNDhINTIyYzUzIDAgODIuOC0yNS42IDgyLjgtNzIuNCAwLTUwLjMtMzIuOS03NS42LTgwLjktNzUuNnoifX1dfSxuYW1lOiJ0cmFkZW1hcmstY2lyY2xlIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDI1MDU4OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6bTg3LjUtMzM0LjdjMzQuOC0xMi44IDc4LjQtNDkgNzguNC0xMTkuMiAwLTcxLjItNDUuNS0xMzEuMS0xNDQuMi0xMzEuMUgzNzhjLTQuNCAwLTggMy42LTggOHY0MTBjMCA0LjQgMy42IDggOCA4aDU0LjVjNC40IDAgOC0zLjYgOC04VjU2MS4yaDg4LjdsNzQuNiAxNTkuMmMxLjMgMi44IDQuMSA0LjYgNy4yIDQuNmg2MmE3LjkgNy45IDAgMDA3LjEtMTEuNWwtODAuNi0xNjQuMnpNNTIyIDUwNWgtODEuNVYzNTdoODMuNGM0OCAwIDgwLjkgMjUuMyA4MC45IDc1LjUgMCA0Ni45LTI5LjggNzIuNS04Mi44IDcyLjV6In19XX0sbmFtZToidHJhZGVtYXJrLWNpcmNsZSIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDczMzAxOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOmZ1bmN0aW9uKGEsbil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnoiLGZpbGw6YX19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDE0MGMtMjA1LjQgMC0zNzIgMTY2LjYtMzcyIDM3MnMxNjYuNiAzNzIgMzcyIDM3MiAzNzItMTY2LjYgMzcyLTM3Mi0xNjYuNi0zNzItMzcyLTM3MnptMTcwLjcgNTg0LjJjLTEuMS41LTIuMy44LTMuNS44aC02MmMtMy4xIDAtNS45LTEuOC03LjItNC42bC03NC42LTE1OS4yaC04OC43VjcxN2MwIDQuNC0zLjYgOC04IDhIMzg0Yy00LjQgMC04LTMuNi04LThWMzA3YzAtNC40IDMuNi04IDgtOGgxNTUuNmM5OC44IDAgMTQ0LjIgNTkuOSAxNDQuMiAxMzEuMSAwIDcwLjItNDMuNiAxMDYuNC03OC40IDExOS4ybDgwLjggMTY0LjJjMi4xIDMuOS40IDguNy0zLjUgMTAuN3oiLGZpbGw6bn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTI5LjkgMzU3aC04My40djE0OEg1MjhjNTMgMCA4Mi44LTI1LjYgODIuOC03Mi40IDAtNTAuMy0zMi45LTc1LjYtODAuOS03NS42eiIsZmlsbDpufX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02MDUuNCA1NDkuM2MzNC44LTEyLjggNzguNC00OSA3OC40LTExOS4yIDAtNzEuMi00NS40LTEzMS4xLTE0NC4yLTEzMS4xSDM4NGMtNC40IDAtOCAzLjYtOCA4djQxMGMwIDQuNCAzLjYgOCA4IDhoNTQuN2M0LjQgMCA4LTMuNiA4LThWNTYxLjJoODguN0w2MTAgNzIwLjRjMS4zIDIuOCA0LjEgNC42IDcuMiA0LjZoNjJjMS4yIDAgMi40LS4zIDMuNS0uOCAzLjktMiA1LjYtNi44IDMuNS0xMC43bC04MC44LTE2NC4yek01MjggNTA1aC04MS41VjM1N2g4My40YzQ4IDAgODAuOSAyNS4zIDgwLjkgNzUuNiAwIDQ2LjgtMjkuOCA3Mi40LTgyLjggNzIuNHoiLGZpbGw6YX19XX19LG5hbWU6InRyYWRlbWFyay1jaXJjbGUiLHRoZW1lOiJ0d290b25lIn07dC5kZWZhdWx0PWV9LDQ4ODQ4OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6bTg3LjUtMzM0LjdjMzQuOC0xMi44IDc4LjQtNDkgNzguNC0xMTkuMiAwLTcxLjItNDUuNS0xMzEuMS0xNDQuMi0xMzEuMUgzNzhjLTQuNCAwLTggMy42LTggOHY0MTBjMCA0LjQgMy42IDggOCA4aDU0LjVjNC40IDAgOC0zLjYgOC04VjU2MS4yaDg4LjdsNzQuNiAxNTkuMmMxLjMgMi44IDQuMSA0LjYgNy4yIDQuNmg2MmE3LjkgNy45IDAgMDA3LjEtMTEuNWwtODAuNi0xNjQuMnpNNTIyIDUwNWgtODEuNVYzNTdoODMuNGM0OCAwIDgwLjkgMjUuMyA4MC45IDc1LjUgMCA0Ni45LTI5LjggNzIuNS04Mi44IDcyLjV6In19XX0sbmFtZToidHJhZGVtYXJrIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sOTQyMzk6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTY2OC42IDMyMGMwLTQuNC0zLjYtOC04LThoLTU0LjVjLTMgMC01LjggMS43LTcuMSA0LjRsLTg0LjcgMTY4LjhINTExbC04NC43LTE2OC44YTggOCAwIDAwLTcuMS00LjRoLTU1LjdjLTEuMyAwLTIuNi4zLTMuOCAxLTMuOSAyLjEtNS4zIDctMy4yIDEwLjhsMTAzLjkgMTkxLjZoLTU3Yy00LjQgMC04IDMuNi04IDh2MjcuMWMwIDQuNCAzLjYgOCA4IDhoNzZ2MzloLTc2Yy00LjQgMC04IDMuNi04IDh2MjcuMWMwIDQuNCAzLjYgOCA4IDhoNzZWNzA0YzAgNC40IDMuNiA4IDggOGg0OS45YzQuNCAwIDgtMy42IDgtOHYtNjMuNWg3Ni4zYzQuNCAwIDgtMy42IDgtOHYtMjcuMWMwLTQuNC0zLjYtOC04LThoLTc2LjN2LTM5aDc2LjNjNC40IDAgOC0zLjYgOC04di0yNy4xYzAtNC40LTMuNi04LTgtOEg1NjRsMTAzLjctMTkxLjZjLjUtMS4xLjktMi40LjktMy43ek0xNTcuOSA1MDQuMmEzNTIuNyAzNTIuNyAwIDAxMTAzLjUtMjQyLjRjMzIuNS0zMi41IDcwLjMtNTguMSAxMTIuNC03NS45IDQzLjYtMTguNCA4OS45LTI3LjggMTM3LjYtMjcuOCA0Ny44IDAgOTQuMSA5LjMgMTM3LjYgMjcuOCA0Mi4xIDE3LjggNzkuOSA0My40IDExMi40IDc1LjkgMTAgMTAgMTkuMyAyMC41IDI3LjkgMzEuNGwtNTAgMzkuMWE4IDggMCAwMDMgMTQuMWwxNTYuOCAzOC4zYzUgMS4yIDkuOS0yLjYgOS45LTcuN2wuOC0xNjEuNWMwLTYuNy03LjctMTAuNS0xMi45LTYuM2wtNDcuOCAzNy40Qzc3MC43IDE0Ni4zIDY0OC42IDgyIDUxMS41IDgyIDI3NyA4MiA4Ni4zIDI3MC4xIDgyIDUwMy44YTggOCAwIDAwOCA4LjJoNjBjNC4zIDAgNy44LTMuNSA3LjktNy44ek05MzQgNTEyaC02MGMtNC4zIDAtNy45IDMuNS04IDcuOGEzNTIuNyAzNTIuNyAwIDAxLTEwMy41IDI0Mi40IDM1Mi41NyAzNTIuNTcgMCAwMS0xMTIuNCA3NS45Yy00My42IDE4LjQtODkuOSAyNy44LTEzNy42IDI3LjhzLTk0LjEtOS4zLTEzNy42LTI3LjhhMzUyLjU3IDM1Mi41NyAwIDAxLTExMi40LTc1LjljLTEwLTEwLTE5LjMtMjAuNS0yNy45LTMxLjRsNDkuOS0zOS4xYTggOCAwIDAwLTMtMTQuMWwtMTU2LjgtMzguM2MtNS0xLjItOS45IDIuNi05LjkgNy43bC0uOCAxNjEuN2MwIDYuNyA3LjcgMTAuNSAxMi45IDYuM2w0Ny44LTM3LjRDMjUzLjMgODc3LjcgMzc1LjQgOTQyIDUxMi41IDk0MiA3NDcgOTQyIDkzNy43IDc1My45IDk0MiA1MjAuMmE4IDggMCAwMC04LTguMnoifX1dfSxuYW1lOiJ0cmFuc2FjdGlvbiIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDY5NTQyOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoiZGVmcyIsYXR0cnM6e30sY2hpbGRyZW46W3t0YWc6InN0eWxlIixhdHRyczp7fX1dfSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTE0MCAxODhoNTg0djE2NGg3NlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg1NDR2LTc2SDE0MFYxODh6In19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNDE0LjMgMjU2aC02MC42Yy0zLjQgMC02LjQgMi4yLTcuNiA1LjRMMjE5IDYyOS40Yy0uMy44LS40IDEuNy0uNCAyLjYgMCA0LjQgMy42IDggOCA4aDU1LjFjMy40IDAgNi40LTIuMiA3LjYtNS40TDMyMiA1NDBoMTk2LjJMNDIyIDI2MS40YTguNDIgOC40MiAwIDAwLTcuNy01LjR6bTEyLjQgMjI4aC04NS41TDM4NCAzNjAuMiA0MjYuNyA0ODR6TTkzNiA1MjhIODAwdi05M2MwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2OTNINTkyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHYxNzZjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMTM2djE1MmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04Vjc1MmgxMzZjMTMuMyAwIDI0LTEwLjcgMjQtMjRWNTUyYzAtMTMuMy0xMC43LTI0LTI0LTI0ek03MjggNjgwaC04OHYtODBoODh2ODB6bTE2MCAwaC04OHYtODBoODh2ODB6In19XX0sbmFtZToidHJhbnNsYXRpb24iLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw4MjUzNzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODY4IDE2MGgtOTJ2LTQwYzAtNC40LTMuNi04LTgtOEgyNTZjLTQuNCAwLTggMy42LTggOHY0MGgtOTJhNDQgNDQgMCAwMC00NCA0NHYxNDhjMCA4MS43IDYwIDE0OS42IDEzOC4yIDE2MkMyNjUuNiA2MzAuMiAzNTkgNzIxLjggNDc2IDczNC41djEwNS4ySDI4MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJWOTA0YzAgNC40IDMuNiA4IDggOGg1MTJjNC40IDAgOC0zLjYgOC04di0zMi4zYzAtMTcuNy0xNC4zLTMyLTMyLTMySDU0OFY3MzQuNUM2NjUgNzIxLjggNzU4LjQgNjMwLjIgNzczLjggNTE0IDg1MiA1MDEuNiA5MTIgNDMzLjcgOTEyIDM1MlYyMDRhNDQgNDQgMCAwMC00NC00NHpNMjQ4IDQzOS42Yy0zNy4xLTExLjktNjQtNDYuNy02NC04Ny42VjIzMmg2NHYyMDcuNnpNODQwIDM1MmMwIDQxLTI2LjkgNzUuOC02NCA4Ny42VjIzMmg2NHYxMjB6In19XX0sbmFtZToidHJvcGh5Iix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDIzNTQ3OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NjggMTYwaC05MnYtNDBjMC00LjQtMy42LTgtOC04SDI1NmMtNC40IDAtOCAzLjYtOCA4djQwaC05MmE0NCA0NCAwIDAwLTQ0IDQ0djE0OGMwIDgxLjcgNjAgMTQ5LjYgMTM4LjIgMTYyQzI2NS43IDYzMC4yIDM1OSA3MjEuNyA0NzYgNzM0LjV2MTA1LjJIMjgwYy0xNy43IDAtMzIgMTQuMy0zMiAzMlY5MDRjMCA0LjQgMy42IDggOCA4aDUxMmM0LjQgMCA4LTMuNiA4LTh2LTMyLjNjMC0xNy43LTE0LjMtMzItMzItMzJINTQ4VjczNC41QzY2NSA3MjEuNyA3NTguMyA2MzAuMiA3NzMuOCA1MTQgODUyIDUwMS42IDkxMiA0MzMuNyA5MTIgMzUyVjIwNGE0NCA0NCAwIDAwLTQ0LTQ0ek0xODQgMzUyVjIzMmg2NHYyMDcuNmE5MS45OSA5MS45OSAwIDAxLTY0LTg3LjZ6bTUyMCAxMjhjMCA0OS4xLTE5LjEgOTUuNC01My45IDEzMC4xLTM0LjggMzQuOC04MSA1My45LTEzMC4xIDUzLjloLTE2Yy00OS4xIDAtOTUuNC0xOS4xLTEzMC4xLTUzLjktMzQuOC0zNC44LTUzLjktODEtNTMuOS0xMzAuMVYxODRoMzg0djI5NnptMTM2LTEyOGMwIDQxLTI2LjkgNzUuOC02NCA4Ny42VjIzMmg2NHYxMjB6In19XX0sbmFtZToidHJvcGh5Iix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNjY0MDg6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMzIwIDQ4MGMwIDQ5LjEgMTkuMSA5NS4zIDUzLjkgMTMwLjEgMzQuNyAzNC44IDgxIDUzLjkgMTMwLjEgNTMuOWgxNmM0OS4xIDAgOTUuMy0xOS4xIDEzMC4xLTUzLjkgMzQuOC0zNC43IDUzLjktODEgNTMuOS0xMzAuMVYxODRIMzIwdjI5NnpNMTg0IDM1MmMwIDQxIDI2LjkgNzUuOCA2NCA4Ny42LTM3LjEtMTEuOS02NC00Ni43LTY0LTg3LjZ6bTM2NCAzODIuNUM2NjUgNzIxLjggNzU4LjQgNjMwLjIgNzczLjggNTE0IDc1OC4zIDYzMC4yIDY2NSA3MjEuNyA1NDggNzM0LjV6TTI1MC4yIDUxNEMyNjUuNiA2MzAuMiAzNTkgNzIxLjggNDc2IDczNC41IDM1OSA3MjEuNyAyNjUuNyA2MzAuMiAyNTAuMiA1MTR6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg2OCAxNjBoLTkydi00MGMwLTQuNC0zLjYtOC04LThIMjU2Yy00LjQgMC04IDMuNi04IDh2NDBoLTkyYTQ0IDQ0IDAgMDAtNDQgNDR2MTQ4YzAgODEuNyA2MCAxNDkuNiAxMzguMiAxNjJDMjY1LjcgNjMwLjIgMzU5IDcyMS43IDQ3NiA3MzQuNXYxMDUuMkgyODBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyVjkwNGMwIDQuNCAzLjYgOCA4IDhoNTEyYzQuNCAwIDgtMy42IDgtOHYtMzIuM2MwLTE3LjctMTQuMy0zMi0zMi0zMkg1NDhWNzM0LjVDNjY1IDcyMS43IDc1OC4zIDYzMC4yIDc3My44IDUxNCA4NTIgNTAxLjYgOTEyIDQzMy43IDkxMiAzNTJWMjA0YTQ0IDQ0IDAgMDAtNDQtNDR6TTI0OCA0MzkuNmE5MS45OSA5MS45OSAwIDAxLTY0LTg3LjZWMjMyaDY0djIwNy42ek03MDQgNDgwYzAgNDkuMS0xOS4xIDk1LjQtNTMuOSAxMzAuMS0zNC44IDM0LjgtODEgNTMuOS0xMzAuMSA1My45aC0xNmMtNDkuMSAwLTk1LjQtMTkuMS0xMzAuMS01My45LTM0LjgtMzQuOC01My45LTgxLTUzLjktMTMwLjFWMTg0aDM4NHYyOTZ6bTEzNi0xMjhjMCA0MS0yNi45IDc1LjgtNjQgODcuNlYyMzJoNjR2MTIweiIsZmlsbDphfX1dfX0sbmFtZToidHJvcGh5Iix0aGVtZToidHdvdG9uZSJ9O3QuZGVmYXVsdD1lfSw3MDYxNzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnsiZmlsbC1ydWxlIjoiZXZlbm9kZCIsdmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTYwOCAxOTJhMzIgMzIgMCAwMTMyIDMydjE2MGgxNzQuODFhMzIgMzIgMCAwMTI2LjY4IDE0LjMzbDExMy4xOSAxNzAuODRhMzIgMzIgMCAwMTUuMzIgMTcuNjhWNjcyYTMyIDMyIDAgMDEtMzIgMzJoLTk2YzAgNzAuNy01Ny4zIDEyOC0xMjggMTI4cy0xMjgtNTcuMy0xMjgtMTI4SDM4NGMwIDcwLjctNTcuMyAxMjgtMTI4IDEyOHMtMTI4LTU3LjMtMTI4LTEyOEg5NmEzMiAzMiAwIDAxLTMyLTMyVjIyNGEzMiAzMiAwIDAxMzItMzJ6TTI1NiA2NDBhNjQgNjQgMCAwMDAgMTI4aDEuMDZBNjQgNjQgMCAwMDI1NiA2NDBtNDQ4IDBhNjQgNjQgMCAwMDAgMTI4aDEuMDZBNjQgNjQgMCAwMDcwNCA2NDBtOTMuNjMtMTkySDY0MHYxNDUuMTJBMTI3LjQzIDEyNy40MyAwIDAxNzA0IDU3NmM0Ny4zOCAwIDg4Ljc1IDI1Ljc0IDExMC44OCA2NEg4OTZ2LTQzLjUyek01MDAgNDQ4SDMzMmExMiAxMiAwIDAwLTEyIDEydjQwYTEyIDEyIDAgMDAxMiAxMmgxNjhhMTIgMTIgMCAwMDEyLTEydi00MGExMiAxMiAwIDAwLTEyLTEyTTMwOCAzMjBIMjA0YTEyIDEyIDAgMDAtMTIgMTJ2NDBhMTIgMTIgMCAwMDEyIDEyaDEwNGExMiAxMiAwIDAwMTItMTJ2LTQwYTEyIDEyIDAgMDAtMTItMTIifX1dfSxuYW1lOiJ0cnVjayIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw4Njc2NjpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnsiZmlsbC1ydWxlIjoiZXZlbm9kZCIsdmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTYwOCAxOTJhMzIgMzIgMCAwMTMyIDMydjE2MGgxNzQuODFhMzIgMzIgMCAwMTI2LjY4IDE0LjMzbDExMy4xOSAxNzAuODRhMzIgMzIgMCAwMTUuMzIgMTcuNjhWNjcyYTMyIDMyIDAgMDEtMzIgMzJoLTk2YzAgNzAuNy01Ny4zIDEyOC0xMjggMTI4cy0xMjgtNTcuMy0xMjgtMTI4SDM4NGMwIDcwLjctNTcuMyAxMjgtMTI4IDEyOHMtMTI4LTU3LjMtMTI4LTEyOEg5NmEzMiAzMiAwIDAxLTMyLTMyVjIyNGEzMiAzMiAwIDAxMzItMzJ6TTI1NiA2NDBhNjQgNjQgMCAwMDAgMTI4aDEuMDZBNjQgNjQgMCAwMDI1NiA2NDBtNDQ4IDBhNjQgNjQgMCAwMDAgMTI4aDEuMDZBNjQgNjQgMCAwMDcwNCA2NDBNNTc2IDI1NkgxMjh2Mzg0aDE3LjEyYzIyLjEzLTM4LjI2IDYzLjUtNjQgMTEwLjg4LTY0IDQ3LjM4IDAgODguNzUgMjUuNzQgMTEwLjg4IDY0SDU3NnptMjIxLjYzIDE5Mkg2NDB2MTQ1LjEyQTEyNy40MyAxMjcuNDMgMCAwMTcwNCA1NzZjNDcuMzggMCA4OC43NSAyNS43NCAxMTAuODggNjRIODk2di00My41MnpNNTAwIDQ0OGExMiAxMiAwIDAxMTIgMTJ2NDBhMTIgMTIgMCAwMS0xMiAxMkgzMzJhMTIgMTIgMCAwMS0xMi0xMnYtNDBhMTIgMTIgMCAwMTEyLTEyek0zMDggMzIwYTEyIDEyIDAgMDExMiAxMnY0MGExMiAxMiAwIDAxLTEyIDEySDIwNGExMiAxMiAwIDAxLTEyLTEydi00MGExMiAxMiAwIDAxMTItMTJ6In19XX0sbmFtZToidHJ1Y2siLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSwxMTI3NTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnsiZmlsbC1ydWxlIjoiZXZlbm9kZCIsdmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJkZWZzIixhdHRyczp7fSxjaGlsZHJlbjpbe3RhZzoiZmlsdGVyIixhdHRyczp7ZmlsdGVyVW5pdHM6Im9iamVjdEJvdW5kaW5nQm94IixoZWlnaHQ6IjEwMi4zJSIsaWQ6ImEiLHdpZHRoOiIxMDIuMyUiLHg6Ii0xLjIlIix5OiItMS4yJSJ9LGNoaWxkcmVuOlt7dGFnOiJmZU9mZnNldCIsYXR0cnM6e2R5OiIyIixpbjoiU291cmNlQWxwaGEiLHJlc3VsdDoic2hhZG93T2Zmc2V0T3V0ZXIxIn19LHt0YWc6ImZlR2F1c3NpYW5CbHVyIixhdHRyczp7aW46InNoYWRvd09mZnNldE91dGVyMSIscmVzdWx0OiJzaGFkb3dCbHVyT3V0ZXIxIixzdGREZXZpYXRpb246IjIifX0se3RhZzoiZmVDb2xvck1hdHJpeCIsYXR0cnM6e2luOiJzaGFkb3dCbHVyT3V0ZXIxIixyZXN1bHQ6InNoYWRvd01hdHJpeE91dGVyMSIsdmFsdWVzOiIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwLjUgMCJ9fSx7dGFnOiJmZU1lcmdlIixhdHRyczp7fSxjaGlsZHJlbjpbe3RhZzoiZmVNZXJnZU5vZGUiLGF0dHJzOntpbjoic2hhZG93TWF0cml4T3V0ZXIxIn19LHt0YWc6ImZlTWVyZ2VOb2RlIixhdHRyczp7aW46IlNvdXJjZUdyYXBoaWMifX1dfV19XX0se3RhZzoiZyIsYXR0cnM6e2ZpbHRlcjoidXJsKCNhKSIsdHJhbnNmb3JtOiJ0cmFuc2xhdGUoOSA5KSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTE4NS4xNCAxMTJMMTI4IDI1NC44NlY3OTcuN2gxNzEuNDNWOTEySDQxMy43TDUyOCA3OTcuNzFoMTQyLjg2bDIwMC0yMDBWMTEyem0zMTQuMjkgNDI4LjU3SDQxMy43VjMxMC4yMWg4NS43MnptMjAwIDBINjEzLjdWMzEwLjIxaDg1LjcyeiJ9fV19XX0sbmFtZToidHdpdGNoIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDg2MTM4OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6eyJmaWxsLXJ1bGUiOiJldmVub2RkIix2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMTY2LjEzIDExMkwxMTQgMjUxLjE3djU1Ni40NmgxOTEuMlY5MTJoMTA0LjRsMTA0LjIzLTEwNC40aDE1Ni41TDg3OSA1OTlWMTEyem02OS41NCA2OS41SDgwOS41djM4Mi42M0w2ODcuNzcgNjg1Ljg3SDQ5Ni41TDM5Mi4yNyA3OTAuMVY2ODUuODdoLTE1Ni42ek00MjcgNTI5LjRoNjkuNVYzMjAuNzNINDI3em0xOTEuMTcgMGg2OS41M1YzMjAuNzNoLTY5LjUzeiJ9fV19LG5hbWU6InR3aXRjaCIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDQ5MDcyOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMjE1LjMgMzM3LjdjLjMgNC43LjMgOS42LjMgMTQuNCAwIDE0Ni44LTExMS44IDMxNS45LTMxNi4xIDMxNS45LTYzIDAtMTIxLjQtMTguMy0xNzAuNi00OS44IDkgMSAxNy42IDEuNCAyNi44IDEuNCA1MiAwIDk5LjgtMTcuNiAxMzcuOS00Ny40LTQ4LjgtMS04OS44LTMzLTEwMy44LTc3IDE3LjEgMi41IDMyLjUgMi41IDUwLjEtMmExMTEgMTExIDAgMDEtODguOS0xMDl2LTEuNGMxNC43IDguMyAzMiAxMy40IDUwLjEgMTQuMWExMTEuMTMgMTExLjEzIDAgMDEtNDkuNS05Mi40YzAtMjAuNyA1LjQtMzkuNiAxNS4xLTU2YTMxNS4yOCAzMTUuMjggMCAwMDIyOSAxMTYuMUM0OTIgMzUzLjEgNTQ4LjQgMjkyIDYxNi4yIDI5MmMzMiAwIDYwLjggMTMuNCA4MS4xIDM1IDI1LjEtNC43IDQ5LjEtMTQuMSA3MC41LTI2LjctOC4zIDI1LjctMjUuNyA0Ny40LTQ4LjggNjEuMSAyMi40LTIuNCA0NC04LjYgNjQtMTcuMy0xNS4xIDIyLjItMzQgNDEuOS01NS43IDU3LjZ6In19XX0sbmFtZToidHdpdHRlci1jaXJjbGUiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sMTIyOTM6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkyOCAyNTQuM2MtMzAuNiAxMy4yLTYzLjkgMjIuNy05OC4yIDI2LjRhMTcwLjEgMTcwLjEgMCAwMDc1LTk0IDMzNi42NCAzMzYuNjQgMCAwMS0xMDguMiA0MS4yQTE3MC4xIDE3MC4xIDAgMDA2NzIgMTc0Yy05NC41IDAtMTcwLjUgNzYuNi0xNzAuNSAxNzAuNiAwIDEzLjIgMS42IDI2LjQgNC4yIDM5LjEtMTQxLjUtNy40LTI2Ny43LTc1LTM1MS42LTE3OC41YTE2OS4zMiAxNjkuMzIgMCAwMC0yMy4yIDg2LjFjMCA1OS4yIDMwLjEgMTExLjQgNzYgMTQyLjFhMTcyIDE3MiAwIDAxLTc3LjEtMjEuN3YyLjFjMCA4Mi45IDU4LjYgMTUxLjYgMTM2LjcgMTY3LjRhMTgwLjYgMTgwLjYgMCAwMS00NC45IDUuOGMtMTEuMSAwLTIxLjYtMS4xLTMyLjItMi42QzIxMSA2NTIgMjczLjkgNzAxLjEgMzQ4LjggNzAyLjdjLTU4LjYgNDUuOS0xMzIgNzIuOS0yMTEuNyA3Mi45LTE0LjMgMC0yNy41LS41LTQxLjItMi4xQzE3MS41IDgyMiAyNjEuMiA4NTAgMzU3LjggODUwIDY3MS40IDg1MCA4NDMgNTkwLjIgODQzIDM2NC43YzAtNy40IDAtMTQuOC0uNS0yMi4yIDMzLjItMjQuMyA2Mi4zLTU0LjQgODUuNS04OC4yeiJ9fV19LG5hbWU6InR3aXR0ZXIiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw2MDAwNzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek03MjcuMyA0MDEuN2MuMyA0LjcuMyA5LjYuMyAxNC40IDAgMTQ2LjgtMTExLjggMzE1LjktMzE2LjEgMzE1LjktNjMgMC0xMjEuNC0xOC4zLTE3MC42LTQ5LjggOSAxIDE3LjYgMS40IDI2LjggMS40IDUyIDAgOTkuOC0xNy42IDEzNy45LTQ3LjQtNDguOC0xLTg5LjgtMzMtMTAzLjgtNzcgMTcuMSAyLjUgMzIuNSAyLjUgNTAuMS0yYTExMSAxMTEgMCAwMS04OC45LTEwOXYtMS40YzE0LjcgOC4zIDMyIDEzLjQgNTAuMSAxNC4xYTExMS4xMyAxMTEuMTMgMCAwMS00OS41LTkyLjRjMC0yMC43IDUuNC0zOS42IDE1LjEtNTZhMzE1LjI4IDMxNS4yOCAwIDAwMjI5IDExNi4xQzQ5MiAzNTMuMSA1NDguNCAyOTIgNjE2LjIgMjkyYzMyIDAgNjAuOCAxMy40IDgxLjEgMzUgMjUuMS00LjcgNDkuMS0xNC4xIDcwLjUtMjYuNy04LjMgMjUuNy0yNS43IDQ3LjQtNDguOCA2MS4xIDIyLjQtMi40IDQ0LTguNiA2NC0xNy4zLTE1LjEgMjIuMi0zNCA0MS45LTU1LjcgNTcuNnoifX1dfSxuYW1lOiJ0d2l0dGVyLXNxdWFyZSIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw3NjA5MDpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODI0IDgwNEgyMDBjLTQuNCAwLTggMy40LTggNy42djYwLjhjMCA0LjIgMy42IDcuNiA4IDcuNmg2MjRjNC40IDAgOC0zLjQgOC03LjZ2LTYwLjhjMC00LjItMy42LTcuNi04LTcuNnptLTMxMi03NmM2OS40IDAgMTM0LjYtMjcuMSAxODMuOC03Ni4yQzc0NSA2MDIuNyA3NzIgNTM3LjQgNzcyIDQ2OFYxNTZjMC02LjYtNS40LTEyLTEyLTEyaC02MGMtNi42IDAtMTIgNS40LTEyIDEydjMxMmMwIDk3LTc5IDE3Ni0xNzYgMTc2cy0xNzYtNzktMTc2LTE3NlYxNTZjMC02LjYtNS40LTEyLTEyLTEyaC02MGMtNi42IDAtMTIgNS40LTEyIDEydjMxMmMwIDY5LjQgMjcuMSAxMzQuNiA3Ni4yIDE4My44QzM3Ny4zIDcwMSA0NDIuNiA3MjggNTEyIDcyOHoifX1dfSxuYW1lOiJ1bmRlcmxpbmUiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSwyOTI5MzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTExLjQgMTI0QzI5MC41IDEyNC4zIDExMiAzMDMgMTEyIDUyMy45YzAgMTI4IDYwLjIgMjQyIDE1My44IDMxNS4ybC0zNy41IDQ4Yy00LjEgNS4zLS4zIDEzIDYuMyAxMi45bDE2Ny0uOGM1LjIgMCA5LTQuOSA3LjctOS45TDM2OS44IDcyN2E4IDggMCAwMC0xNC4xLTNMMzE1IDc3Ni4xYy0xMC4yLTgtMjAtMTYuNy0yOS4zLTI2YTMxOC42NCAzMTguNjQgMCAwMS02OC42LTEwMS43QzIwMC40IDYwOSAxOTIgNTY3LjEgMTkyIDUyMy45czguNC04NS4xIDI1LjEtMTI0LjVjMTYuMS0zOC4xIDM5LjItNzIuMyA2OC42LTEwMS43IDI5LjQtMjkuNCA2My42LTUyLjUgMTAxLjctNjguNkM0MjYuOSAyMTIuNCA0NjguOCAyMDQgNTEyIDIwNHM4NS4xIDguNCAxMjQuNSAyNS4xYzM4LjEgMTYuMSA3Mi4zIDM5LjIgMTAxLjcgNjguNiAyOS40IDI5LjQgNTIuNSA2My42IDY4LjYgMTAxLjcgMTYuNyAzOS40IDI1LjEgODEuMyAyNS4xIDEyNC41cy04LjQgODUuMS0yNS4xIDEyNC41YTMxOC42NCAzMTguNjQgMCAwMS02OC42IDEwMS43Yy03LjUgNy41LTE1LjMgMTQuNS0yMy40IDIxLjJhNy45MyA3LjkzIDAgMDAtMS4yIDExLjFsMzkuNCA1MC41YzIuOCAzLjUgNy45IDQuMSAxMS40IDEuM0M4NTQuNSA3NjAuOCA5MTIgNjQ5LjEgOTEyIDUyMy45YzAtMjIxLjEtMTc5LjQtNDAwLjItNDAwLjYtMzk5Ljl6In19XX0sbmFtZToidW5kbyIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDk3MzU6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJkZWZzIixhdHRyczp7fSxjaGlsZHJlbjpbe3RhZzoic3R5bGUiLGF0dHJzOnt9fV19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNzM2IDU1MEgyODhjLTguOCAwLTE2IDcuMi0xNiAxNnYxNzZjMCA4LjggNy4yIDE2IDE2IDE2aDQ0OGM4LjggMCAxNi03LjIgMTYtMTZWNTY2YzAtOC44LTcuMi0xNi0xNi0xNnptLTU2IDEzNkgzNDR2LTY0aDMzNnY2NHptMjA4IDEzMGMtMzkuOCAwLTcyIDMyLjItNzIgNzJzMzIuMiA3MiA3MiA3MiA3Mi0zMi4yIDcyLTcyLTMyLjItNzItNzItNzJ6bTAgOTZjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjQgMjQgMTAuNyAyNCAyNC0xMC43IDI0LTI0IDI0ek03MzYgMjY2SDI4OGMtOC44IDAtMTYgNy4yLTE2IDE2djE3NmMwIDguOCA3LjIgMTYgMTYgMTZoNDQ4YzguOCAwIDE2LTcuMiAxNi0xNlYyODJjMC04LjgtNy4yLTE2LTE2LTE2em0tNTYgMTM2SDM0NHYtNjRoMzM2djY0em0yMDgtMTk0YzM5LjggMCA3Mi0zMi4yIDcyLTcycy0zMi4yLTcyLTcyLTcyLTcyIDMyLjItNzIgNzIgMzIuMiA3MiA3MiA3MnptMC05NmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNC0yNC0xMC43LTI0LTI0IDEwLjctMjQgMjQtMjR6TTEzNiA2NGMtMzkuOCAwLTcyIDMyLjItNzIgNzJzMzIuMiA3MiA3MiA3MiA3Mi0zMi4yIDcyLTcyLTMyLjItNzItNzItNzJ6bTAgOTZjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjQgMjQgMTAuNyAyNCAyNC0xMC43IDI0LTI0IDI0em0wIDY1NmMtMzkuOCAwLTcyIDMyLjItNzIgNzJzMzIuMiA3MiA3MiA3MiA3Mi0zMi4yIDcyLTcyLTMyLjItNzItNzItNzJ6bTAgOTZjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjQgMjQgMTAuNyAyNCAyNC0xMC43IDI0LTI0IDI0eiJ9fV19LG5hbWU6InVuZ3JvdXAiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw0NTc4NDpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODMyIDQ2NEgzMzJWMjQwYzAtMzAuOSAyNS4xLTU2IDU2LTU2aDI0OGMzMC45IDAgNTYgMjUuMSA1NiA1NnY2OGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di02OGMwLTcwLjctNTcuMy0xMjgtMTI4LTEyOEgzODhjLTcwLjcgMC0xMjggNTcuMy0xMjggMTI4djIyNGgtNjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjM4NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWNDk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyek01NDAgNzAxdjUzYzAgNC40LTMuNiA4LTggOGgtNDBjLTQuNCAwLTgtMy42LTgtOHYtNTNhNDguMDEgNDguMDEgMCAxMTU2IDB6In19XX0sbmFtZToidW5sb2NrIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDQ1MTc0OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04MzIgNDY0SDMzMlYyNDBjMC0zMC45IDI1LjEtNTYgNTYtNTZoMjQ4YzMwLjkgMCA1NiAyNS4xIDU2IDU2djY4YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTY4YzAtNzAuNy01Ny4zLTEyOC0xMjgtMTI4SDM4OGMtNzAuNyAwLTEyOCA1Ny4zLTEyOCAxMjh2MjI0aC02OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2Mzg0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlY0OTZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCAzNzZIMjMyVjUzNmg1NjB2MzA0ek00ODQgNzAxdjUzYzAgNC40IDMuNiA4IDggOGg0MGM0LjQgMCA4LTMuNiA4LTh2LTUzYTQ4LjAxIDQ4LjAxIDAgMTAtNTYgMHoifX1dfSxuYW1lOiJ1bmxvY2siLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSwzMjEwOTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjpmdW5jdGlvbihhLG4pe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0yMzIgODQwaDU2MFY1MzZIMjMydjMwNHptMjgwLTIyNmE0OC4wMSA0OC4wMSAwIDAxMjggODd2NTNjMCA0LjQtMy42IDgtOCA4aC00MGMtNC40IDAtOC0zLjYtOC04di01M2E0OC4wMSA0OC4wMSAwIDAxMjgtODd6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQ4NCA3MDF2NTNjMCA0LjQgMy42IDggOCA4aDQwYzQuNCAwIDgtMy42IDgtOHYtNTNhNDguMDEgNDguMDEgMCAxMC01NiAweiIsZmlsbDphfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04MzIgNDY0SDMzMlYyNDBjMC0zMC45IDI1LjEtNTYgNTYtNTZoMjQ4YzMwLjkgMCA1NiAyNS4xIDU2IDU2djY4YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTY4YzAtNzAuNy01Ny4zLTEyOC0xMjgtMTI4SDM4OGMtNzAuNyAwLTEyOCA1Ny4zLTEyOCAxMjh2MjI0aC02OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2Mzg0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlY0OTZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCAzNzZIMjMyVjUzNmg1NjB2MzA0eiIsZmlsbDphfX1dfX0sbmFtZToidW5sb2NrIix0aGVtZToidHdvdG9uZSJ9O3QuZGVmYXVsdD1lfSw5MzI4MjpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTEyIDE5MkgzMjhjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTg0YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wIDI4NEgzMjhjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTg0YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wIDI4NEgzMjhjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTg0YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04ek0xMDQgMjI4YTU2IDU2IDAgMTAxMTIgMCA1NiA1NiAwIDEwLTExMiAwem0wIDI4NGE1NiA1NiAwIDEwMTEyIDAgNTYgNTYgMCAxMC0xMTIgMHptMCAyODRhNTYgNTYgMCAxMDExMiAwIDU2IDU2IDAgMTAtMTEyIDB6In19XX0sbmFtZToidW5vcmRlcmVkLWxpc3QiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSwyMDM3OTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTE3OCA1NTVoLTQ2LjljLTEwLjIgMC0xOS45LTQuOS0yNS45LTEzLjJMNTEyIDQ2MC40IDQwNi44IDYwNS44Yy02IDguMy0xNS42IDEzLjItMjUuOSAxMy4ySDMzNGMtNi41IDAtMTAuMy03LjQtNi41LTEyLjdsMTc4LTI0NmMzLjItNC40IDkuNy00LjQgMTIuOSAwbDE3OCAyNDZjMy45IDUuMy4xIDEyLjctNi40IDEyLjd6In19XX0sbmFtZToidXAtY2lyY2xlIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDc2ODY0OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTguNSAzNjAuM2E3Ljk1IDcuOTUgMCAwMC0xMi45IDBsLTE3OCAyNDZjLTMuOCA1LjMgMCAxMi43IDYuNSAxMi43SDM4MWMxMC4yIDAgMTkuOS00LjkgMjUuOS0xMy4yTDUxMiA0NjAuNGwxMDUuMiAxNDUuNGM2IDguMyAxNS42IDEzLjIgMjUuOSAxMy4ySDY5MGM2LjUgMCAxMC4zLTcuNCA2LjUtMTIuN2wtMTc4LTI0NnoifX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6In19XX0sbmFtZToidXAtY2lyY2xlIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sMTU0NTE6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDE0MGMtMjA1LjQgMC0zNzIgMTY2LjYtMzcyIDM3MnMxNjYuNiAzNzIgMzcyIDM3MiAzNzItMTY2LjYgMzcyLTM3Mi0xNjYuNi0zNzItMzcyLTM3MnptMTc4IDQ3OWgtNDYuOWMtMTAuMiAwLTE5LjktNC45LTI1LjktMTMuMkw1MTIgNDYwLjQgNDA2LjggNjA1LjhjLTYgOC4zLTE1LjYgMTMuMi0yNS45IDEzLjJIMzM0Yy02LjUgMC0xMC4zLTcuNC02LjUtMTIuN2wxNzgtMjQ2YzMuMi00LjQgOS43LTQuNCAxMi45IDBsMTc4IDI0NmMzLjkgNS4zLjEgMTIuNy02LjQgMTIuN3oiLGZpbGw6bn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeiIsZmlsbDphfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTguNCAzNjAuM2E3Ljk1IDcuOTUgMCAwMC0xMi45IDBsLTE3OCAyNDZjLTMuOCA1LjMgMCAxMi43IDYuNSAxMi43aDQ2LjljMTAuMyAwIDE5LjktNC45IDI1LjktMTMuMkw1MTIgNDYwLjRsMTA1LjIgMTQ1LjRjNiA4LjMgMTUuNyAxMy4yIDI1LjkgMTMuMkg2OTBjNi41IDAgMTAuMy03LjQgNi40LTEyLjdsLTE3OC0yNDZ6IixmaWxsOmF9fV19fSxuYW1lOiJ1cC1jaXJjbGUiLHRoZW1lOiJ0d290b25lIn07dC5kZWZhdWx0PWV9LDI2ODAzOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04OTAuNSA3NTUuM0w1MzcuOSAyNjkuMmMtMTIuOC0xNy42LTM5LTE3LjYtNTEuNyAwTDEzMy41IDc1NS4zQTggOCAwIDAwMTQwIDc2OGg3NWM1LjEgMCA5LjktMi41IDEyLjktNi42TDUxMiAzNjkuOGwyODQuMSAzOTEuNmMzIDQuMSA3LjggNi42IDEyLjkgNi42aDc1YzYuNSAwIDEwLjMtNy40IDYuNS0xMi43eiJ9fV19LG5hbWU6InVwIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sODU0NzU6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNjkwIDYyNGgtNDYuOWMtMTAuMiAwLTE5LjktNC45LTI1LjktMTMuMkw1MTIgNDY1LjQgNDA2LjggNjEwLjhjLTYgOC4zLTE1LjYgMTMuMi0yNS45IDEzLjJIMzM0Yy02LjUgMC0xMC4zLTcuNC02LjUtMTIuN2wxNzgtMjQ2YzMuMi00LjQgOS43LTQuNCAxMi45IDBsMTc4IDI0NmMzLjkgNS4zLjEgMTIuNy02LjQgMTIuN3oifX1dfSxuYW1lOiJ1cC1zcXVhcmUiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sNDE0MDU6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTMzNCA2MjRoNDYuOWMxMC4yIDAgMTkuOS00LjkgMjUuOS0xMy4yTDUxMiA0NjUuNGwxMDUuMiAxNDUuNGM2IDguMyAxNS42IDEzLjIgMjUuOSAxMy4ySDY5MGM2LjUgMCAxMC4zLTcuNCA2LjUtMTIuN2wtMTc4LTI0NmE3Ljk1IDcuOTUgMCAwMC0xMi45IDBsLTE3OCAyNDZBNy45NiA3Ljk2IDAgMDAzMzQgNjI0eiJ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6In19XX0sbmFtZToidXAtc3F1YXJlIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNTc4MjU6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNzI4SDE4NFYxODRoNjU2djY1NnoiLGZpbGw6YX19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMTg0IDg0MGg2NTZWMTg0SDE4NHY2NTZ6bTE0My41LTIyOC43bDE3OC0yNDZjMy4yLTQuNCA5LjctNC40IDEyLjkgMGwxNzggMjQ2YzMuOSA1LjMuMSAxMi43LTYuNCAxMi43aC00Ni45Yy0xMC4yIDAtMTkuOS00LjktMjUuOS0xMy4yTDUxMiA0NjUuNCA0MDYuOCA2MTAuOGMtNiA4LjMtMTUuNiAxMy4yLTI1LjkgMTMuMkgzMzRjLTYuNSAwLTEwLjMtNy40LTYuNS0xMi43eiIsZmlsbDpufX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0zMzQgNjI0aDQ2LjljMTAuMyAwIDE5LjktNC45IDI1LjktMTMuMkw1MTIgNDY1LjRsMTA1LjIgMTQ1LjRjNiA4LjMgMTUuNyAxMy4yIDI1LjkgMTMuMkg2OTBjNi41IDAgMTAuMy03LjQgNi40LTEyLjdsLTE3OC0yNDZhNy45NSA3Ljk1IDAgMDAtMTIuOSAwbC0xNzggMjQ2Yy0zLjggNS4zIDAgMTIuNyA2LjUgMTIuN3oiLGZpbGw6YX19XX19LG5hbWU6InVwLXNxdWFyZSIsdGhlbWU6InR3b3RvbmUifTt0LmRlZmF1bHQ9ZX0sOTAzMDY6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQwMCAzMTcuN2g3My45VjY1NmMwIDQuNCAzLjYgOCA4IDhoNjBjNC40IDAgOC0zLjYgOC04VjMxNy43SDYyNGM2LjcgMCAxMC40LTcuNyA2LjMtMTIuOUw1MTguMyAxNjNhOCA4IDAgMDAtMTIuNiAwbC0xMTIgMTQxLjdjLTQuMSA1LjMtLjQgMTMgNi4zIDEzek04NzggNjI2aC02MGMtNC40IDAtOCAzLjYtOCA4djE1NEgyMTRWNjM0YzAtNC40LTMuNi04LTgtOGgtNjBjLTQuNCAwLTggMy42LTggOHYxOThjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjg0YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjYzNGMwLTQuNC0zLjYtOC04LTh6In19XX0sbmFtZToidXBsb2FkIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sMjMwMjg6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQwOCAzMTJoNDhjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4em0zNTIgMTIwVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMkgyOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjI4OGMtNjYuMiAwLTEyMCA1Mi4xLTEyMCAxMTZ2MzU2YzAgNC40IDMuNiA4IDggOGg3MjBjNC40IDAgOC0zLjYgOC04VjU0OGMwLTYzLjktNTMuOC0xMTYtMTIwLTExNnptLTcyIDBIMzM2VjE4NGgzNTJ2MjQ4ek01NjggMzEyaDQ4YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04aC00OGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOHoifX1dfSxuYW1lOiJ1c2IiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sMTk1OTE6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTc2MCA0MzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMySDI5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2Mjg4Yy02Ni4yIDAtMTIwIDUyLjEtMTIwIDExNnYzNTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFY1NDhjMC0yNC4zIDIxLjYtNDQgNDguMS00NGg0OTUuOGMyNi41IDAgNDguMSAxOS43IDQ4LjEgNDR2MzU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LThWNTQ4YzAtNjMuOS01My44LTExNi0xMjAtMTE2em0tNDI0IDBWMTg0aDM1MnYyNDhIMzM2em0xMjAtMTg0aC00OGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOHptMTYwIDBoLTQ4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04eiJ9fV19LG5hbWU6InVzYiIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDUwMjkzOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOmZ1bmN0aW9uKGEsbil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTc1OS45IDUwNEgyNjQuMWMtMjYuNSAwLTQ4LjEgMTkuNy00OC4xIDQ0djI5Mmg1OTJWNTQ4YzAtMjQuMy0yMS42LTQ0LTQ4LjEtNDR6IixmaWxsOm59fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQ1NiAyNDhoLTQ4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04em0xNjAgMGgtNDhjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6IixmaWxsOmF9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTc2MCA0MzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMySDI5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2Mjg4Yy02Ni4yIDAtMTIwIDUyLjEtMTIwIDExNnYzNTZjMCA0LjQgMy42IDggOCA4aDcyMGM0LjQgMCA4LTMuNiA4LThWNTQ4YzAtNjMuOS01My44LTExNi0xMjAtMTE2ek0zMzYgMTg0aDM1MnYyNDhIMzM2VjE4NHptNDcyIDY1NkgyMTZWNTQ4YzAtMjQuMyAyMS42LTQ0IDQ4LjEtNDRoNDk1LjhjMjYuNSAwIDQ4LjEgMTkuNyA0OC4xIDQ0djI5MnoiLGZpbGw6YX19XX19LG5hbWU6InVzYiIsdGhlbWU6InR3b3RvbmUifTt0LmRlZmF1bHQ9ZX0sNDg1ODg6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTY3OC4zIDY0Mi40YzI0LjItMTMgNTEuOS0yMC40IDgxLjQtMjAuNGguMWMzIDAgNC40LTMuNiAyLjItNS42YTM3MS42NyAzNzEuNjcgMCAwMC0xMDMuNy02NS44Yy0uNC0uMi0uOC0uMy0xLjItLjVDNzE5LjIgNTA1IDc1OS42IDQzMS43IDc1OS42IDM0OWMwLTEzNy0xMTAuOC0yNDgtMjQ3LjUtMjQ4UzI2NC43IDIxMiAyNjQuNyAzNDljMCA4Mi43IDQwLjQgMTU2IDEwMi42IDIwMS4xLS40LjItLjguMy0xLjIuNS00NC43IDE4LjktODQuOCA0Ni0xMTkuMyA4MC42YTM3My40MiAzNzMuNDIgMCAwMC04MC40IDExOS41QTM3My42IDM3My42IDAgMDAxMzcgODg4LjhhOCA4IDAgMDA4IDguMmg1OS45YzQuMyAwIDcuOS0zLjUgOC03LjggMi03Ny4yIDMyLjktMTQ5LjUgODcuNi0yMDQuM0MzNTcgNjI4LjIgNDMyLjIgNTk3IDUxMi4yIDU5N2M1Ni43IDAgMTExLjEgMTUuNyAxNTggNDUuMWE4LjEgOC4xIDAgMDA4LjEuM3pNNTEyLjIgNTIxYy00NS44IDAtODguOS0xNy45LTEyMS40LTUwLjRBMTcxLjIgMTcxLjIgMCAwMTM0MC41IDM0OWMwLTQ1LjkgMTcuOS04OS4xIDUwLjMtMTIxLjZTNDY2LjMgMTc3IDUxMi4yIDE3N3M4OC45IDE3LjkgMTIxLjQgNTAuNEExNzEuMiAxNzEuMiAwIDAxNjgzLjkgMzQ5YzAgNDUuOS0xNy45IDg5LjEtNTAuMyAxMjEuNkM2MDEuMSA1MDMuMSA1NTggNTIxIDUxMi4yIDUyMXpNODgwIDc1OWgtODR2LTg0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY4NGgtODRjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoODR2ODRjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtODRoODRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6In19XX0sbmFtZToidXNlci1hZGQiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSwzMDA0MzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNjc4LjMgNjU1LjRjMjQuMi0xMyA1MS45LTIwLjQgODEuNC0yMC40aC4xYzMgMCA0LjQtMy42IDIuMi01LjZhMzcxLjY3IDM3MS42NyAwIDAwLTEwMy43LTY1LjhjLS40LS4yLS44LS4zLTEuMi0uNUM3MTkuMiA1MTggNzU5LjYgNDQ0LjcgNzU5LjYgMzYyYzAtMTM3LTExMC44LTI0OC0yNDcuNS0yNDhTMjY0LjcgMjI1IDI2NC43IDM2MmMwIDgyLjcgNDAuNCAxNTYgMTAyLjYgMjAxLjEtLjQuMi0uOC4zLTEuMi41LTQ0LjcgMTguOS04NC44IDQ2LTExOS4zIDgwLjZhMzczLjQyIDM3My40MiAwIDAwLTgwLjQgMTE5LjVBMzczLjYgMzczLjYgMCAwMDEzNyA5MDEuOGE4IDggMCAwMDggOC4yaDU5LjljNC4zIDAgNy45LTMuNSA4LTcuOCAyLTc3LjIgMzIuOS0xNDkuNSA4Ny42LTIwNC4zQzM1NyA2NDEuMiA0MzIuMiA2MTAgNTEyLjIgNjEwYzU2LjcgMCAxMTEuMSAxNS43IDE1OCA0NS4xYTguMSA4LjEgMCAwMDguMS4zek01MTIuMiA1MzRjLTQ1LjggMC04OC45LTE3LjktMTIxLjQtNTAuNEExNzEuMiAxNzEuMiAwIDAxMzQwLjUgMzYyYzAtNDUuOSAxNy45LTg5LjEgNTAuMy0xMjEuNlM0NjYuMyAxOTAgNTEyLjIgMTkwczg4LjkgMTcuOSAxMjEuNCA1MC40QTE3MS4yIDE3MS4yIDAgMDE2ODMuOSAzNjJjMCA0NS45LTE3LjkgODkuMS01MC4zIDEyMS42QzYwMS4xIDUxNi4xIDU1OCA1MzQgNTEyLjIgNTM0ek04ODAgNzcySDY0MGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGgyNDBjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6In19XX0sbmFtZToidXNlci1kZWxldGUiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw4MDA4MzpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODU4LjUgNzYzLjZhMzc0IDM3NCAwIDAwLTgwLjYtMTE5LjUgMzc1LjYzIDM3NS42MyAwIDAwLTExOS41LTgwLjZjLS40LS4yLS44LS4zLTEuMi0uNUM3MTkuNSA1MTggNzYwIDQ0NC43IDc2MCAzNjJjMC0xMzctMTExLTI0OC0yNDgtMjQ4UzI2NCAyMjUgMjY0IDM2MmMwIDgyLjcgNDAuNSAxNTYgMTAyLjggMjAxLjEtLjQuMi0uOC4zLTEuMi41LTQ0LjggMTguOS04NSA0Ni0xMTkuNSA4MC42YTM3NS42MyAzNzUuNjMgMCAwMC04MC42IDExOS41QTM3MS43IDM3MS43IDAgMDAxMzYgOTAxLjhhOCA4IDAgMDA4IDguMmg2MGM0LjQgMCA3LjktMy41IDgtNy44IDItNzcuMiAzMy0xNDkuNSA4Ny44LTIwNC4zIDU2LjctNTYuNyAxMzItODcuOSAyMTIuMi04Ny45czE1NS41IDMxLjIgMjEyLjIgODcuOUM3NzkgNzUyLjcgODEwIDgyNSA4MTIgOTAyLjJjLjEgNC40IDMuNiA3LjggOCA3LjhoNjBhOCA4IDAgMDA4LTguMmMtMS00Ny44LTEwLjktOTQuMy0yOS41LTEzOC4yek01MTIgNTM0Yy00NS45IDAtODkuMS0xNy45LTEyMS42LTUwLjRTMzQwIDQwNy45IDM0MCAzNjJjMC00NS45IDE3LjktODkuMSA1MC40LTEyMS42UzQ2Ni4xIDE5MCA1MTIgMTkwczg5LjEgMTcuOSAxMjEuNiA1MC40UzY4NCAzMTYuMSA2ODQgMzYyYzAgNDUuOS0xNy45IDg5LjEtNTAuNCAxMjEuNlM1NTcuOSA1MzQgNTEyIDUzNHoifX1dfSxuYW1lOiJ1c2VyIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sMTE3NzY6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJkZWZzIixhdHRyczp7fSxjaGlsZHJlbjpbe3RhZzoic3R5bGUiLGF0dHJzOnt9fV19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNzU5IDMzNWMwLTEzNy0xMTEtMjQ4LTI0OC0yNDhTMjYzIDE5OCAyNjMgMzM1YzAgODIuOCA0MC42IDE1Ni4yIDEwMyAyMDEuMi0uNC4yLS43LjMtLjkuNC00NC43IDE4LjktODQuOCA0Ni0xMTkuMyA4MC42YTM3My40MiAzNzMuNDIgMCAwMC04MC40IDExOS41QTM3My42IDM3My42IDAgMDAxMzYgODc0LjhhOCA4IDAgMDA4IDguMmg1OS45YzQuMyAwIDcuOS0zLjUgOC03LjggMi03Ny4yIDMyLjktMTQ5LjUgODcuNi0yMDQuM0MzNTYgNjE0LjIgNDMxIDU4MyA1MTEgNTgzYzEzNyAwIDI0OC0xMTEgMjQ4LTI0OHpNNTExIDUwN2MtOTUgMC0xNzItNzctMTcyLTE3MnM3Ny0xNzIgMTcyLTE3MiAxNzIgNzcgMTcyIDE3Mi03NyAxNzItMTcyIDE3MnptMTA1IDIyMWgyNjRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThINzAzLjVsNDcuMi02MC4xYTguMSA4LjEgMCAwMDEuNy00LjljMC00LjQtMy42LTgtOC04aC03Mi42Yy00LjkgMC05LjUgMi4zLTEyLjYgNi4xbC02OC41IDg3LjFjLTQuNCA1LjYtNi44IDEyLjYtNi44IDE5LjguMSAxNy43IDE0LjQgMzIgMzIuMSAzMnptMjQwIDY0SDU5MmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGgxNzYuNWwtNDcuMiA2MC4xYTguMSA4LjEgMCAwMC0xLjcgNC45YzAgNC40IDMuNiA4IDggOGg3Mi42YzQuOSAwIDkuNS0yLjMgMTIuNi02LjFsNjguNS04Ny4xYzQuNC01LjYgNi44LTEyLjYgNi44LTE5LjgtLjEtMTcuNy0xNC40LTMyLTMyLjEtMzJ6In19XX0sbmFtZToidXNlci1zd2l0Y2giLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw1MjI3MTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODkyIDc3MmgtODB2LTgwYzAtNC40LTMuNi04LTgtOGgtNDhjLTQuNCAwLTggMy42LTggOHY4MGgtODBjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoODB2ODBjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOHYtODBoODBjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6TTM3My41IDQ5OC40Yy0uOS04LjctMS40LTE3LjUtMS40LTI2LjQgMC0xNS45IDEuNS0zMS40IDQuMy00Ni41LjctMy42LTEuMi03LjMtNC41LTguOC0xMy42LTYuMS0yNi4xLTE0LjUtMzYuOS0yNS4xYTEyNy41NCAxMjcuNTQgMCAwMS0zOC43LTk1LjRjLjktMzIuMSAxMy44LTYyLjYgMzYuMy04NS42IDI0LjctMjUuMyA1Ny45LTM5LjEgOTMuMi0zOC43IDMxLjkuMyA2Mi43IDEyLjYgODYgMzQuNCA3LjkgNy40IDE0LjcgMTUuNiAyMC40IDI0LjQgMiAzLjEgNS45IDQuNCA5LjMgMy4yIDE3LjYtNi4xIDM2LjItMTAuNCA1NS4zLTEyLjQgNS42LS42IDguOC02LjYgNi4zLTExLjYtMzIuNS02NC4zLTk4LjktMTA4LjctMTc1LjctMTA5LjktMTEwLjgtMS43LTIwMy4yIDg5LjItMjAzLjIgMjAwIDAgNjIuOCAyOC45IDExOC44IDc0LjIgMTU1LjUtMzEuOCAxNC43LTYxLjEgMzUtODYuNSA2MC40LTU0LjggNTQuNy04NS44IDEyNi45LTg3LjggMjA0YTggOCAwIDAwOCA4LjJoNTYuMWM0LjMgMCA3LjktMy40IDgtNy43IDEuOS01OCAyNS40LTExMi4zIDY2LjctMTUzLjUgMjkuNC0yOS40IDY1LjQtNDkuOCAxMDQuNy01OS43IDMuOC0xLjEgNi40LTQuOCA1LjktOC44ek04MjQgNDcyYzAtMTA5LjQtODcuOS0xOTguMy0xOTYuOS0yMDBDNTE2LjMgMjcwLjMgNDI0IDM2MS4yIDQyNCA0NzJjMCA2Mi44IDI5IDExOC44IDc0LjIgMTU1LjVhMzAwLjk1IDMwMC45NSAwIDAwLTg2LjQgNjAuNEMzNTcgNzQyLjYgMzI2IDgxNC44IDMyNCA4OTEuOGE4IDggMCAwMDggOC4yaDU2YzQuMyAwIDcuOS0zLjQgOC03LjcgMS45LTU4IDI1LjQtMTEyLjMgNjYuNy0xNTMuNUM1MDUuOCA2OTUuNyA1NjMgNjcyIDYyNCA2NzJjMTEwLjQgMCAyMDAtODkuNSAyMDAtMjAwem0tMTA5LjUgOTAuNUM2OTAuMyA1ODYuNyA2NTguMiA2MDAgNjI0IDYwMHMtNjYuMy0xMy4zLTkwLjUtMzcuNWExMjcuMjYgMTI3LjI2IDAgMDEtMzcuNS05MS44Yy4zLTMyLjggMTMuNC02NC41IDM2LjMtODggMjQtMjQuNiA1Ni4xLTM4LjMgOTAuNC0zOC43IDMzLjktLjMgNjYuOCAxMi45IDkxIDM2LjYgMjQuOCAyNC4zIDM4LjQgNTYuOCAzOC40IDkxLjQtLjEgMzQuMi0xMy40IDY2LjMtMzcuNiA5MC41eiJ9fV19LG5hbWU6InVzZXJncm91cC1hZGQiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSwyMjk3MjpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODg4IDc4NEg2NjRjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMjI0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04ek0zNzMuNSA1MTAuNGMtLjktOC43LTEuNC0xNy41LTEuNC0yNi40IDAtMTUuOSAxLjUtMzEuNCA0LjMtNDYuNS43LTMuNi0xLjItNy4zLTQuNS04LjgtMTMuNi02LjEtMjYuMS0xNC41LTM2LjktMjUuMWExMjcuNTQgMTI3LjU0IDAgMDEtMzguNy05NS40Yy45LTMyLjEgMTMuOC02Mi42IDM2LjMtODUuNiAyNC43LTI1LjMgNTcuOS0zOS4xIDkzLjItMzguNyAzMS45LjMgNjIuNyAxMi42IDg2IDM0LjQgNy45IDcuNCAxNC43IDE1LjYgMjAuNCAyNC40IDIgMy4xIDUuOSA0LjQgOS4zIDMuMiAxNy42LTYuMSAzNi4yLTEwLjQgNTUuMy0xMi40IDUuNi0uNiA4LjgtNi42IDYuMy0xMS42LTMyLjUtNjQuMy05OC45LTEwOC43LTE3NS43LTEwOS45LTExMC45LTEuNy0yMDMuMyA4OS4yLTIwMy4zIDE5OS45IDAgNjIuOCAyOC45IDExOC44IDc0LjIgMTU1LjUtMzEuOCAxNC43LTYxLjEgMzUtODYuNSA2MC40LTU0LjggNTQuNy04NS44IDEyNi45LTg3LjggMjA0YTggOCAwIDAwOCA4LjJoNTYuMWM0LjMgMCA3LjktMy40IDgtNy43IDEuOS01OCAyNS40LTExMi4zIDY2LjctMTUzLjUgMjkuNC0yOS40IDY1LjQtNDkuOCAxMDQuNy01OS43IDMuOS0xIDYuNS00LjcgNi04Ljd6TTgyNCA0ODRjMC0xMDkuNC04Ny45LTE5OC4zLTE5Ni45LTIwMEM1MTYuMyAyODIuMyA0MjQgMzczLjIgNDI0IDQ4NGMwIDYyLjggMjkgMTE4LjggNzQuMiAxNTUuNWEzMDAuOTUgMzAwLjk1IDAgMDAtODYuNCA2MC40QzM1NyA3NTQuNiAzMjYgODI2LjggMzI0IDkwMy44YTggOCAwIDAwOCA4LjJoNTZjNC4zIDAgNy45LTMuNCA4LTcuNyAxLjktNTggMjUuNC0xMTIuMyA2Ni43LTE1My41QzUwNS44IDcwNy43IDU2MyA2ODQgNjI0IDY4NGMxMTAuNCAwIDIwMC04OS41IDIwMC0yMDB6bS0xMDkuNSA5MC41QzY5MC4zIDU5OC43IDY1OC4yIDYxMiA2MjQgNjEycy02Ni4zLTEzLjMtOTAuNS0zNy41YTEyNy4yNiAxMjcuMjYgMCAwMS0zNy41LTkxLjhjLjMtMzIuOCAxMy40LTY0LjUgMzYuMy04OCAyNC0yNC42IDU2LjEtMzguMyA5MC40LTM4LjcgMzMuOS0uMyA2Ni44IDEyLjkgOTEgMzYuNiAyNC44IDI0LjMgMzguNCA1Ni44IDM4LjQgOTEuNC0uMSAzNC4yLTEzLjQgNjYuMy0zNy42IDkwLjV6In19XX0sbmFtZToidXNlcmdyb3VwLWRlbGV0ZSIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDI4NzAxOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoiZGVmcyIsYXR0cnM6e30sY2hpbGRyZW46W3t0YWc6InN0eWxlIixhdHRyczp7fX1dfSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQ0Ny44IDU4OC44bC03LjMtMzIuNWMtLjItMS0uNi0xLjktMS4xLTIuN2E3Ljk0IDcuOTQgMCAwMC0xMS4xLTIuMkw0MDUgNTY3VjQxMWMwLTQuNC0zLjYtOC04LThoLTgxYy00LjQgMC04IDMuNi04IDh2MzZjMCA0LjQgMy42IDggOCA4aDM3djE5Mi40YTggOCAwIDAwMTIuNyA2LjVsNzktNTYuOGMyLjYtMS45IDMuOC01LjEgMy4xLTguM3ptLTU2LjctMjE2LjZsLjIuMmMzLjIgMyA4LjMgMi44IDExLjMtLjVsMjQuMS0yNi4yYTguMSA4LjEgMCAwMC0uMy0xMS4ybC01My43LTUyLjFhOCA4IDAgMDAtMTEuMi4xbC0yNC43IDI0LjdjLTMuMSAzLjEtMy4xIDguMi4xIDExLjNsNTQuMiA1My43eiJ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg2Ni45IDE2OS45TDUyNy4xIDU0LjFDNTIzIDUyLjcgNTE3LjUgNTIgNTEyIDUycy0xMSAuNy0xNS4xIDIuMUwxNTcuMSAxNjkuOWMtOC4zIDIuOC0xNS4xIDEyLjQtMTUuMSAyMS4ydjQ4Mi40YzAgOC44IDUuNyAyMC40IDEyLjYgMjUuOUw0OTkuMyA5NjhjMy41IDIuNyA4IDQuMSAxMi42IDQuMXM5LjItMS40IDEyLjYtNC4xbDM0NC43LTI2OC42YzYuOS01LjQgMTIuNi0xNyAxMi42LTI1LjlWMTkxLjFjLjItOC44LTYuNi0xOC4zLTE0LjktMjEuMnpNODEwIDY1NC4zTDUxMiA4ODYuNSAyMTQgNjU0LjNWMjI2LjdsMjk4LTEwMS42IDI5OCAxMDEuNnY0MjcuNnoifX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00NTIgMjk3djM2YzAgNC40IDMuNiA4IDggOGgxMDh2Mjc0aC0zOFY0MDVjMC00LjQtMy42LTgtOC04aC0zNWMtNC40IDAtOCAzLjYtOCA4djIxMGgtMzFjLTQuNCAwLTggMy42LTggOHYzN2MwIDQuNCAzLjYgOCA4IDhoMjQ0YzQuNCAwIDgtMy42IDgtOHYtMzdjMC00LjQtMy42LTgtOC04aC03MlY0OTNoNThjNC40IDAgOC0zLjYgOC04di0zNWMwLTQuNC0zLjYtOC04LThoLTU4VjM0MWg2M2M0LjQgMCA4LTMuNiA4LTh2LTM2YzAtNC40LTMuNi04LTgtOEg0NjBjLTQuNCAwLTggMy42LTggOHoifX1dfSxuYW1lOiJ2ZXJpZmllZCIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDM3NzExOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NTkuOSA3ODBIMTY0LjFjLTQuNSAwLTguMSAzLjYtOC4xIDh2NjBjMCA0LjQgMy42IDggOC4xIDhoNjk1LjhjNC41IDAgOC4xLTMuNiA4LjEtOHYtNjBjMC00LjQtMy42LTgtOC4xLTh6TTUwNS43IDY2OWE4IDggMCAwMDEyLjYgMGwxMTItMTQxLjdjNC4xLTUuMi40LTEyLjktNi4zLTEyLjloLTc0LjFWMTc2YzAtNC40LTMuNi04LTgtOGgtNjBjLTQuNCAwLTggMy42LTggOHYzMzguM0g0MDBjLTYuNyAwLTEwLjQgNy43LTYuMyAxMi45bDExMiAxNDEuOHoifX1dfSxuYW1lOiJ2ZXJ0aWNhbC1hbGlnbi1ib3R0b20iLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw0MjA2NTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODU5LjkgNDc0SDE2NC4xYy00LjUgMC04LjEgMy42LTguMSA4djYwYzAgNC40IDMuNiA4IDguMSA4aDY5NS44YzQuNSAwIDguMS0zLjYgOC4xLTh2LTYwYzAtNC40LTMuNi04LTguMS04em0tMzUzLjYtNzQuN2MyLjkgMy43IDguNSAzLjcgMTEuMyAwbDEwMC44LTEyNy41YzMuNy00LjcuNC0xMS43LTUuNy0xMS43SDU1MFYxMDRjMC00LjQtMy42LTgtOC04aC02MGMtNC40IDAtOCAzLjYtOCA4djE1NmgtNjIuOGMtNiAwLTkuNCA3LTUuNyAxMS43bDEwMC44IDEyNy42em0xMS40IDIyNS40YTcuMTQgNy4xNCAwIDAwLTExLjMgMEw0MDUuNiA3NTIuM2E3LjIzIDcuMjMgMCAwMDUuNyAxMS43SDQ3NHYxNTZjMCA0LjQgMy42IDggOCA4aDYwYzQuNCAwIDgtMy42IDgtOFY3NjRoNjIuOGM2IDAgOS40LTcgNS43LTExLjdMNTE3LjcgNjI0Ljd6In19XX0sbmFtZToidmVydGljYWwtYWxpZ24tbWlkZGxlIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNDEwODU6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg1OS45IDE2OEgxNjQuMWMtNC41IDAtOC4xIDMuNi04LjEgOHY2MGMwIDQuNCAzLjYgOCA4LjEgOGg2OTUuOGM0LjUgMCA4LjEtMy42IDguMS04di02MGMwLTQuNC0zLjYtOC04LjEtOHpNNTE4LjMgMzU1YTggOCAwIDAwLTEyLjYgMGwtMTEyIDE0MS43YTcuOTggNy45OCAwIDAwNi4zIDEyLjloNzMuOVY4NDhjMCA0LjQgMy42IDggOCA4aDYwYzQuNCAwIDgtMy42IDgtOFY1MDkuN0g2MjRjNi43IDAgMTAuNC03LjcgNi4zLTEyLjlMNTE4LjMgMzU1eiJ9fV19LG5hbWU6InZlcnRpY2FsLWFsaWduLXRvcCIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDgzNjM2OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik03NjIgMTY0aC02NGMtNC40IDAtOCAzLjYtOCA4djY4OGMwIDQuNCAzLjYgOCA4IDhoNjRjNC40IDAgOC0zLjYgOC04VjE3MmMwLTQuNC0zLjYtOC04LTh6bS01MDggMHY3Mi40YzAgOS41IDQuMiAxOC40IDExLjQgMjQuNUw1NjQuNiA1MTIgMjY1LjQgNzYzLjFjLTcuMiA2LjEtMTEuNCAxNS0xMS40IDI0LjVWODYwYzAgNi44IDcuOSAxMC41IDEzLjEgNi4xTDY4OSA1MTIgMjY3LjEgMTU3LjlBNy45NSA3Ljk1IDAgMDAyNTQgMTY0eiJ9fV19LG5hbWU6InZlcnRpY2FsLWxlZnQiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSwzMTEwMjpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMzI2IDE2NGgtNjRjLTQuNCAwLTggMy42LTggOHY2ODhjMCA0LjQgMy42IDggOCA4aDY0YzQuNCAwIDgtMy42IDgtOFYxNzJjMC00LjQtMy42LTgtOC04em00NDQgNzIuNFYxNjRjMC02LjgtNy45LTEwLjUtMTMuMS02LjFMMzM1IDUxMmw0MjEuOSAzNTQuMWM1LjIgNC40IDEzLjEuNyAxMy4xLTYuMXYtNzIuNGMwLTkuNC00LjItMTguNC0xMS40LTI0LjVMNDU5LjQgNTEybDI5OS4yLTI1MS4xYzcuMi02LjEgMTEuNC0xNS4xIDExLjQtMjQuNXoifX1dfSxuYW1lOiJ2ZXJ0aWNhbC1yaWdodCIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDY2NDUzOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoiZGVmcyIsYXR0cnM6e30sY2hpbGRyZW46W3t0YWc6InN0eWxlIixhdHRyczp7fX1dfSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTM2OCA3MjRIMjUyVjYwOGMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2MTE2SDcyYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDExNnYxMTZjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOFY3ODhoMTE2YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04eiJ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkxMiAzMDIuM0w3ODQgMzc2VjIyNGMwLTM1LjMtMjguNy02NC02NC02NEgxMjhjLTM1LjMgMC02NCAyOC43LTY0IDY0djM1Mmg3MlYyMzJoNTc2djU2MEg0NDh2NzJoMjcyYzM1LjMgMCA2NC0yOC43IDY0LTY0VjY0OGwxMjggNzMuN2MyMS4zIDEyLjMgNDgtMy4xIDQ4LTI3LjZWMzMwYzAtMjQuNi0yNi43LTQwLTQ4LTI3Ljd6TTg4OCA2MjVsLTEwNC01OS44VjQ1OC45TDg4OCAzOTl2MjI2eiJ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTMyMCAzNjBjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThIMjA4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDExMnoifX1dfSxuYW1lOiJ2aWRlby1jYW1lcmEtYWRkIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sMTg5OTU6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkxMiAzMDIuM0w3ODQgMzc2VjIyNGMwLTM1LjMtMjguNy02NC02NC02NEgxMjhjLTM1LjMgMC02NCAyOC43LTY0IDY0djU3NmMwIDM1LjMgMjguNyA2NCA2NCA2NGg1OTJjMzUuMyAwIDY0LTI4LjcgNjQtNjRWNjQ4bDEyOCA3My43YzIxLjMgMTIuMyA0OC0zLjEgNDgtMjcuNlYzMzBjMC0yNC42LTI2LjctNDAtNDgtMjcuN3pNMzI4IDM1MmMwIDQuNC0zLjYgOC04IDhIMjA4Yy00LjQgMC04LTMuNi04LTh2LTQ4YzAtNC40IDMuNi04IDgtOGgxMTJjNC40IDAgOCAzLjYgOCA4djQ4em01NjAgMjczbC0xMDQtNTkuOFY0NTguOUw4ODggMzk5djIyNnoifX1dfSxuYW1lOiJ2aWRlby1jYW1lcmEiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sMzk4Nzc6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkxMiAzMDIuM0w3ODQgMzc2VjIyNGMwLTM1LjMtMjguNy02NC02NC02NEgxMjhjLTM1LjMgMC02NCAyOC43LTY0IDY0djU3NmMwIDM1LjMgMjguNyA2NCA2NCA2NGg1OTJjMzUuMyAwIDY0LTI4LjcgNjQtNjRWNjQ4bDEyOCA3My43YzIxLjMgMTIuMyA0OC0zLjEgNDgtMjcuNlYzMzBjMC0yNC42LTI2LjctNDAtNDgtMjcuN3pNNzEyIDc5MkgxMzZWMjMyaDU3NnY1NjB6bTE3Ni0xNjdsLTEwNC01OS44VjQ1OC45TDg4OCAzOTl2MjI2ek0yMDggMzYwaDExMmM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOEgyMDhjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDh6In19XX0sbmFtZToidmlkZW8tY2FtZXJhIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sMTMxOTc6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMTM2IDc5Mmg1NzZWMjMySDEzNnY1NjB6bTY0LTQ4OGMwLTQuNCAzLjYtOCA4LThoMTEyYzQuNCAwIDggMy42IDggOHY0OGMwIDQuNC0zLjYgOC04IDhIMjA4Yy00LjQgMC04LTMuNi04LTh2LTQ4eiIsZmlsbDpufX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MTIgMzAyLjNMNzg0IDM3NlYyMjRjMC0zNS4zLTI4LjctNjQtNjQtNjRIMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NHY1NzZjMCAzNS4zIDI4LjcgNjQgNjQgNjRoNTkyYzM1LjMgMCA2NC0yOC43IDY0LTY0VjY0OGwxMjggNzMuN2MyMS4zIDEyLjMgNDgtMy4xIDQ4LTI3LjZWMzMwYzAtMjQuNi0yNi43LTQwLTQ4LTI3Ljd6TTcxMiA3OTJIMTM2VjIzMmg1NzZ2NTYwem0xNzYtMTY3bC0xMDQtNTkuOFY0NTguOUw4ODggMzk5djIyNnoiLGZpbGw6YX19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMjA4IDM2MGgxMTJjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThIMjA4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4eiIsZmlsbDphfX1dfX0sbmFtZToidmlkZW8tY2FtZXJhIix0aGVtZToidHdvdG9uZSJ9O3QuZGVmYXVsdD1lfSw2NDcwNDpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tMzIgNDY0SDUyOFY0NDhoMzIwdjEyOHptLTI2OC02NGE0MCA0MCAwIDEwODAgMCA0MCA0MCAwIDEwLTgwIDB6In19XX0sbmFtZToid2FsbGV0Iix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDU0NDAzOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA0NjRINTI4VjQ0OGgzMTJ2MTI4em0wIDI2NEgxODRWMTg0aDY1NnYyMDBINDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYxOTJjMCAxNy43IDE0LjMgMzIgMzIgMzJoMzQ0djIwMHpNNTgwIDUxMmE0MCA0MCAwIDEwODAgMCA0MCA0MCAwIDEwLTgwIDB6In19XX0sbmFtZToid2FsbGV0Iix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNTY4NjM6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNDY0SDUyOFY0NDhoMzEydjEyOHptMC0xOTJINDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYxOTJjMCAxNy43IDE0LjMgMzIgMzIgMzJoMzQ0djIwMEgxODRWMTg0aDY1NnYyMDB6IixmaWxsOmF9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUyOCA1NzZoMzEyVjQ0OEg1Mjh2MTI4em05Mi0xMDRjMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDAtNDAtMTcuOS00MC00MCAxNy45LTQwIDQwLTQweiIsZmlsbDpufX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01ODAgNTEyYTQwIDQwIDAgMTA4MCAwIDQwIDQwIDAgMTAtODAgMHoiLGZpbGw6YX19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMTg0IDg0MGg2NTZWNjQwSDQ5NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWNDE2YzAtMTcuNyAxNC4zLTMyIDMyLTMyaDM0NFYxODRIMTg0djY1NnoiLGZpbGw6bn19XX19LG5hbWU6IndhbGxldCIsdGhlbWU6InR3b3RvbmUifTt0LmRlZmF1bHQ9ZX0sNjY3NjQ6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTk1NS43IDg1NmwtNDE2LTcyMGMtNi4yLTEwLjctMTYuOS0xNi0yNy43LTE2cy0yMS42IDUuMy0yNy43IDE2bC00MTYgNzIwQzU2IDg3Ny40IDcxLjQgOTA0IDk2IDkwNGg4MzJjMjQuNiAwIDQwLTI2LjYgMjcuNy00OHpNNDgwIDQxNmMwLTQuNCAzLjYtOCA4LThoNDhjNC40IDAgOCAzLjYgOCA4djE4NGMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LThWNDE2em0zMiAzNTJhNDguMDEgNDguMDEgMCAwMTAtOTYgNDguMDEgNDguMDEgMCAwMTAgOTZ6In19XX0sbmFtZToid2FybmluZyIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw1NTQ0MDpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNDY0IDcyMGE0OCA0OCAwIDEwOTYgMCA0OCA0OCAwIDEwLTk2IDB6bTE2LTMwNHYxODRjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOFY0MTZjMC00LjQtMy42LTgtOC04aC00OGMtNC40IDAtOCAzLjYtOCA4em00NzUuNyA0NDBsLTQxNi03MjBjLTYuMi0xMC43LTE2LjktMTYtMjcuNy0xNnMtMjEuNiA1LjMtMjcuNyAxNmwtNDE2IDcyMEM1NiA4NzcuNCA3MS40IDkwNCA5NiA5MDRoODMyYzI0LjYgMCA0MC0yNi42IDI3LjctNDh6bS03ODMuNS0yNy45TDUxMiAyMzkuOWwzMzkuOCA1ODguMkgxNzIuMnoifX1dfSxuYW1lOiJ3YXJuaW5nIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNjc1OTU6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246ZnVuY3Rpb24oYSxuKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTU1LjcgODU2bC00MTYtNzIwYy02LjItMTAuNy0xNi45LTE2LTI3LjctMTZzLTIxLjYgNS4zLTI3LjcgMTZsLTQxNiA3MjBDNTYgODc3LjQgNzEuNCA5MDQgOTYgOTA0aDgzMmMyNC42IDAgNDAtMjYuNiAyNy43LTQ4em0tNzgzLjUtMjcuOUw1MTIgMjM5LjlsMzM5LjggNTg4LjJIMTcyLjJ6IixmaWxsOmF9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTE3Mi4yIDgyOC4xaDY3OS42TDUxMiAyMzkuOSAxNzIuMiA4MjguMXpNNTYwIDcyMGE0OC4wMSA0OC4wMSAwIDAxLTk2IDAgNDguMDEgNDguMDEgMCAwMTk2IDB6bS0xNi0zMDR2MTg0YzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOFY0MTZjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHoiLGZpbGw6bn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNDY0IDcyMGE0OCA0OCAwIDEwOTYgMCA0OCA0OCAwIDEwLTk2IDB6bTE2LTMwNHYxODRjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOFY0MTZjMC00LjQtMy42LTgtOC04aC00OGMtNC40IDAtOCAzLjYtOCA4eiIsZmlsbDphfX1dfX0sbmFtZToid2FybmluZyIsdGhlbWU6InR3b3RvbmUifTt0LmRlZmF1bHQ9ZX0sODQ0ODk6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTY5MC4xIDM3Ny40YzUuOSAwIDExLjguMiAxNy42LjUtMjQuNC0xMjguNy0xNTguMy0yMjcuMS0zMTkuOS0yMjcuMUMyMDkgMTUwLjggNjQgMjcxLjQgNjQgNDIwLjJjMCA4MS4xIDQzLjYgMTU0LjIgMTExLjkgMjAzLjZhMjEuNSAyMS41IDAgMDE5LjEgMTcuNmMwIDIuNC0uNSA0LjYtMS4xIDYuOS01LjUgMjAuMy0xNC4yIDUyLjgtMTQuNiA1NC4zLS43IDIuNi0xLjcgNS4yLTEuNyA3LjkgMCA1LjkgNC44IDEwLjggMTAuOCAxMC44IDIuMyAwIDQuMi0uOSA2LjItMmw3MC45LTQwLjljNS4zLTMuMSAxMS01IDE3LjItNSAzLjIgMCA2LjQuNSA5LjUgMS40IDMzLjEgOS41IDY4LjggMTQuOCAxMDUuNyAxNC44IDYgMCAxMS45LS4xIDE3LjgtLjQtNy4xLTIxLTEwLjktNDMuMS0xMC45LTY2IDAtMTM1LjggMTMyLjItMjQ1LjggMjk1LjMtMjQ1Ljh6bS0xOTQuMy04Ni41YzIzLjggMCA0My4yIDE5LjMgNDMuMiA0My4xcy0xOS4zIDQzLjEtNDMuMiA0My4xYy0yMy44IDAtNDMuMi0xOS4zLTQzLjItNDMuMXMxOS40LTQzLjEgNDMuMi00My4xem0tMjE1LjkgODYuMmMtMjMuOCAwLTQzLjItMTkuMy00My4yLTQzLjFzMTkuMy00My4xIDQzLjItNDMuMSA0My4yIDE5LjMgNDMuMiA0My4xLTE5LjQgNDMuMS00My4yIDQzLjF6bTU4Ni44IDQxNS42YzU2LjktNDEuMiA5My4yLTEwMiA5My4yLTE2OS43IDAtMTI0LTEyMC44LTIyNC41LTI2OS45LTIyNC41LTE0OSAwLTI2OS45IDEwMC41LTI2OS45IDIyNC41UzU0MC45IDg0Ny41IDY5MCA4NDcuNWMzMC44IDAgNjAuNi00LjQgODguMS0xMi4zIDIuNi0uOCA1LjItMS4yIDcuOS0xLjIgNS4yIDAgOS45IDEuNiAxNC4zIDQuMWw1OS4xIDM0YzEuNyAxIDMuMyAxLjcgNS4yIDEuN2E5IDkgMCAwMDYuNC0yLjYgOSA5IDAgMDAyLjYtNi40YzAtMi4yLS45LTQuNC0xLjQtNi42LS4zLTEuMi03LjYtMjguMy0xMi4yLTQ1LjMtLjUtMS45LS45LTMuOC0uOS01LjcuMS01LjkgMy4xLTExLjIgNy42LTE0LjV6TTYwMC4yIDU4Ny4yYy0xOS45IDAtMzYtMTYuMS0zNi0zNS45IDAtMTkuOCAxNi4xLTM1LjkgMzYtMzUuOXMzNiAxNi4xIDM2IDM1LjljMCAxOS44LTE2LjIgMzUuOS0zNiAzNS45em0xNzkuOSAwYy0xOS45IDAtMzYtMTYuMS0zNi0zNS45IDAtMTkuOCAxNi4xLTM1LjkgMzYtMzUuOXMzNiAxNi4xIDM2IDM1LjlhMzYuMDggMzYuMDggMCAwMS0zNiAzNS45eiJ9fV19LG5hbWU6IndlY2hhdCIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSwzNzk3OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02OTAuMSAzNzcuNGM1LjkgMCAxMS44LjIgMTcuNi41LTI0LjQtMTI4LjctMTU4LjMtMjI3LjEtMzE5LjktMjI3LjFDMjA5IDE1MC44IDY0IDI3MS40IDY0IDQyMC4yYzAgODEuMSA0My42IDE1NC4yIDExMS45IDIwMy42YTIxLjUgMjEuNSAwIDAxOS4xIDE3LjZjMCAyLjQtLjUgNC42LTEuMSA2LjktNS41IDIwLjMtMTQuMiA1Mi44LTE0LjYgNTQuMy0uNyAyLjYtMS43IDUuMi0xLjcgNy45IDAgNS45IDQuOCAxMC44IDEwLjggMTAuOCAyLjMgMCA0LjItLjkgNi4yLTJsNzAuOS00MC45YzUuMy0zLjEgMTEtNSAxNy4yLTUgMy4yIDAgNi40LjUgOS41IDEuNCAzMy4xIDkuNSA2OC44IDE0LjggMTA1LjcgMTQuOCA2IDAgMTEuOS0uMSAxNy44LS40LTcuMS0yMS0xMC45LTQzLjEtMTAuOS02NiAwLTEzNS44IDEzMi4yLTI0NS44IDI5NS4zLTI0NS44em0tMTk0LjMtODYuNWMyMy44IDAgNDMuMiAxOS4zIDQzLjIgNDMuMXMtMTkuMyA0My4xLTQzLjIgNDMuMWMtMjMuOCAwLTQzLjItMTkuMy00My4yLTQzLjFzMTkuNC00My4xIDQzLjItNDMuMXptLTIxNS45IDg2LjJjLTIzLjggMC00My4yLTE5LjMtNDMuMi00My4xczE5LjMtNDMuMSA0My4yLTQzLjEgNDMuMiAxOS4zIDQzLjIgNDMuMS0xOS40IDQzLjEtNDMuMiA0My4xem01ODYuOCA0MTUuNmM1Ni45LTQxLjIgOTMuMi0xMDIgOTMuMi0xNjkuNyAwLTEyNC0xMjAuOC0yMjQuNS0yNjkuOS0yMjQuNS0xNDkgMC0yNjkuOSAxMDAuNS0yNjkuOSAyMjQuNVM1NDAuOSA4NDcuNSA2OTAgODQ3LjVjMzAuOCAwIDYwLjYtNC40IDg4LjEtMTIuMyAyLjYtLjggNS4yLTEuMiA3LjktMS4yIDUuMiAwIDkuOSAxLjYgMTQuMyA0LjFsNTkuMSAzNGMxLjcgMSAzLjMgMS43IDUuMiAxLjdhOSA5IDAgMDA2LjQtMi42IDkgOSAwIDAwMi42LTYuNGMwLTIuMi0uOS00LjQtMS40LTYuNi0uMy0xLjItNy42LTI4LjMtMTIuMi00NS4zLS41LTEuOS0uOS0zLjgtLjktNS43LjEtNS45IDMuMS0xMS4yIDcuNi0xNC41ek02MDAuMiA1ODcuMmMtMTkuOSAwLTM2LTE2LjEtMzYtMzUuOSAwLTE5LjggMTYuMS0zNS45IDM2LTM1LjlzMzYgMTYuMSAzNiAzNS45YzAgMTkuOC0xNi4yIDM1LjktMzYgMzUuOXptMTc5LjkgMGMtMTkuOSAwLTM2LTE2LjEtMzYtMzUuOSAwLTE5LjggMTYuMS0zNS45IDM2LTM1LjlzMzYgMTYuMSAzNiAzNS45YTM2LjA4IDM2LjA4IDAgMDEtMzYgMzUuOXoifX1dfSxuYW1lOiJ3ZWNoYXQiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSwzNTY2NTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnsiZmlsbC1ydWxlIjoiZXZlbm9kZCIsdmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTgwNS4zMyAxMTJIMjE4LjY3QzE1OS43NiAxMTIgMTEyIDE1OS43NiAxMTIgMjE4LjY3djU4Ni42NkMxMTIgODY0LjI0IDE1OS43NiA5MTIgMjE4LjY3IDkxMmg1ODYuNjZDODY0LjI0IDkxMiA5MTIgODY0LjI0IDkxMiA4MDUuMzNWMjE4LjY3QzkxMiAxNTkuNzYgODY0LjI0IDExMiA4MDUuMzMgMTEybS05OC4xNyA0MTcuODZhMTAyLjEzIDEwMi4xMyAwIDAwMjguMSA1Mi40NmwyLjEzIDIuMDZjLjQxLjI3LjguNTcgMS4xNi45bC41NS42NC4yLjAyYTcuOTYgNy45NiAwIDAxLS45OCAxMC44MiA3Ljk2IDcuOTYgMCAwMS0xMC44NS0uMThjLTEuMS0xLjA1LTIuMTQtMi4xNC0zLjI0LTMuMjRhMTAyLjQ5IDEwMi40OSAwIDAwLTUzLjgyLTI4LjM2bC0yLS4yN2MtLjY2LS4xMi0xLjM0LS4zOS0xLjk4LS4zOWEzMy4yNyAzMy4yNyAwIDExNDAuMzctMzcuNjZjLjE3IDEuMDkuMzYgMi4xNi4zNiAzLjJtLTIxMy4xIDE1My44MmEyNzYuNzggMjc2Ljc4IDAgMDEtNjEuNy4xNyAyNjcuMyAyNjcuMyAwIDAxLTQ0LjY3LTguNmwtNjguNDQgMzQuNGMtLjMzLjI0LS43Ny40My0xLjE1LjcxaC0uMjdhMTguMjkgMTguMjkgMCAwMS0yNy41Mi0xNS45Yy4wMy0uNTkuMS0xLjE3LjItMS43NC4xMy0xLjk3LjYtMy45IDEuMzctNS43MmwyLjc1LTExLjE1IDkuNTYtMzkuNTZhMjc3LjU3IDI3Ny41NyAwIDAxLTQ5LjI1LTU0LjY3QTE4NS45OSAxODUuOTkgMCAwMTIyMy4xIDQ3OC4xYTE4Mi40MiAxODIuNDIgMCAwMTE5LjA4LTgxLjA0IDIwMy45OCAyMDMuOTggMCAwMTM3LjE5LTUyLjMyYzM4LjkxLTM5Ljk0IDkzLjI2LTY1LjUyIDE1My4xLTcyLjAzYTI3OC4yNSAyNzguMjUgMCAwMTMwLjE3LTEuNjRjMTAuNS4wMyAyMC45OS42NSAzMS40MiAxLjg2IDU5LjU4IDYuNzkgMTEzLjY1IDMyLjQ4IDE1Mi4yNiA3Mi4zNmEyMDIuOTYgMjAyLjk2IDAgMDEzNyA1Mi40OCAxODIuMyAxODIuMyAwIDAxMTguMTcgOTQuNjdjLS41Mi0uNTctMS4wMi0xLjItMS41Ny0xLjc2YTMzLjI2IDMzLjI2IDAgMDAtNDAuODQtNC44Yy4yMi0yLjI2LjIyLTQuNTQuMjItNi43OWExNDMuNjQgMTQzLjY0IDAgMDAtMTQuNzYtNjMuMzggMTY0LjA3IDE2NC4wNyAwIDAwLTI5LjY4LTQyLjE1Yy0zMS43OC0zMi43Ni03Ni40Ny01My45NS0xMjUuODktNTkuNTVhMjM0LjM3IDIzNC4zNyAwIDAwLTUxLjY3LS4xNGMtNDkuNjEgNS40MS05NC42IDI2LjQ1LTEyNi41NyA1OS4yNmExNjMuNjMgMTYzLjYzIDAgMDAtMjkuODIgNDEuOTUgMTQzLjQ0IDE0My40NCAwIDAwLTE1LjEyIDYzLjkzIDE0Ny4xNiAxNDcuMTYgMCAwMDI1LjI5IDgxLjUxIDE3MC41IDE3MC41IDAgMDAyNC45MyAyOS40IDE3Mi4zMSAxNzIuMzEgMCAwMDE3LjU2IDE0Ljc1IDE3LjYgMTcuNiAwIDAxNi4zNSAxOS42MmwtNi40OSAyNC42Ny0xLjg2IDcuMTQtMS42MiA2LjQ1YTIuODUgMi44NSAwIDAwMi43NyAyLjg4IDMuOTkgMy45OSAwIDAwMS45My0uNjhsNDMuODYtMjUuOTMgMS40NC0uNzhhMjMuMiAyMy4yIDAgMDExOC4yNC0xLjg0IDIyNy4zOCAyMjcuMzggMCAwMDMzLjg3IDcuMTJsNS4yMi42OWEyMjcuMjYgMjI3LjI2IDAgMDA1MS42Ny0uMTQgMjI2LjU4IDIyNi41OCAwIDAwNDIuNzUtOS4wNyAzMy4yIDMzLjIgMCAwMDIyLjcyIDM0Ljc2IDI2OS4yNyAyNjkuMjcgMCAwMS02MC4zNyAxNC4xMm04OS4wNy0yNC44N2EzMy4zMyAzMy4zMyAwIDAxLTMzLjc2LTE4Ljc1IDMzLjMyIDMzLjMyIDAgMDE2LjY0LTM4LjAzIDMzLjE2IDMzLjE2IDAgMDExOC4yNi05LjMxYzEuMDctLjE0IDIuMTktLjM2IDMuMjQtLjM2YTEwMi4zNyAxMDIuMzcgMCAwMDUyLjQ3LTI4LjA1bDIuMi0yLjMzYTEwLjIxIDEwLjIxIDAgMDExLjU3LTEuNjh2LS4wM2E3Ljk3IDcuOTcgMCAxMTEwLjY0IDExLjgxbC0zLjI0IDMuMjRhMTAyLjQ0IDEwMi40NCAwIDAwLTI4LjU2IDUzLjc0Yy0uMDkuNjMtLjI4IDEuMzUtLjI4IDJsLS4zOSAyLjAxYTMzLjMgMzMuMyAwIDAxLTI4Ljc5IDI1Ljc0bTk0LjQ0IDkzLjg3YTMzLjMgMzMuMyAwIDAxLTM2LjE4LTI0LjI1IDI4IDI4IDAgMDEtMS4xLTYuNzMgMTAyLjQgMTAyLjQgMCAwMC0yOC4xNS01Mi4zOWwtMi4zLTIuMjVhNy4yIDcuMiAwIDAxLTEuMTEtLjlsLS41NC0uNmgtLjAzdi4wNWE3Ljk2IDcuOTYgMCAwMS45Ni0xMC44MiA3Ljk2IDcuOTYgMCAwMTEwLjg1LjE4bDMuMjIgMy4yNGExMDIuMjkgMTAyLjI5IDAgMDA1My44IDI4LjM1bDIgLjI4YTMzLjI3IDMzLjI3IDAgMTEtMS40MiA2NS44NG0xMTMuNjctMTAzLjM0YTMyLjg0IDMyLjg0IDAgMDEtMTguMjggOS4zMSAyNi4zNiAyNi4zNiAwIDAxLTMuMjQuMzYgMTAyLjMyIDEwMi4zMiAwIDAwLTUyLjQ0IDI4LjEgNDkuNTcgNDkuNTcgMCAwMC0zLjE0IDMuNDFsLS42OC41NmguMDJsLjA5LjA1YTcuOTQgNy45NCAwIDExLTEwLjYtMTEuODFsMy4yMy0zLjI0YTEwMi4wNSAxMDIuMDUgMCAwMDI4LjM3LTUzLjcgMzMuMjYgMzMuMjYgMCAxMTYyLjQtMTIuMSAzMy4yMSAzMy4yMSAwIDAxLTUuNzMgMzkuMDYifX1dfSxuYW1lOiJ3ZWNoYXQtd29yayIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw2NTg4MjpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnsiZmlsbC1ydWxlIjoiZXZlbm9kZCIsdmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkwOS43OCA3MjkuNTlhMTM1Ljg3IDEzNS44NyAwIDAwLTQ3LjA0IDE5LjA0IDExNC4yNCAxMTQuMjQgMCAwMS01MS40IDMxLjA4IDc2LjI5IDc2LjI5IDAgMDEyNC40NS00NS40MiAxNjkuMyAxNjkuMyAwIDAwMjMuNC01NS4wMiA1MC40MSA1MC40MSAwIDExNTAuNiA1MC4zMnptLTkyLjIxLTEyMC43NmExNjguODMgMTY4LjgzIDAgMDAtNTQuODEtMjMuNjggNTAuNDEgNTAuNDEgMCAwMS01MC40LTUwLjQyIDUwLjQxIDUwLjQxIDAgMTExMDAuOCAwIDEzNy41IDEzNy41IDAgMDAxOC44MiA0Ny4yIDExNC44IDExNC44IDAgMDEzMC43NiA1MS42NiA3Ni4wOCA3Ni4wOCAwIDAxLTQ1LjAyLTI0Ljc2aC0uMTl6bS04My4wNC0xNzcuNzFjLTE1LjE5LTEyNy4zMy0xNDYuOTgtMjI3LjEtMzA2LjQ0LTIyNy4xLTE2OS44NyAwLTMwOC4wOSAxMTMuMS0zMDguMDkgMjUyLjJBMjM1LjgxIDIzNS44MSAwIDAwMjMwLjA2IDY0Ny42YTMxMS4yOCAzMTEuMjggMCAwMDMzLjYgMjEuNTlMMjUwIDcyMy43NmM0LjkzIDIuMzEgOS43IDQuNzggMTQuNzUgNi45bDY5LTM0LjVjMTAuMDcgMi42MSAyMC42OCA0LjMgMzEuMiA2LjA4IDYuNzMgMS4yIDEzLjQ1IDIuNDMgMjAuMzUgMy4yNWEzNTQuODMgMzU0LjgzIDAgMDAxMjguODEtNy40IDI0OC44OCAyNDguODggMCAwMDEwLjE1IDU1LjA2IDQyNS42NCA0MjUuNjQgMCAwMS05Ni4xNyAxMS4yNCA0MTcuOTggNDE3Ljk4IDAgMDEtODYuNC05LjUyTDIxNi41MiA4MTcuNGEyNy42MiAyNy42MiAwIDAxLTI5Ljk4LTMuMTQgMjguMDIgMjguMDIgMCAwMS05LjY3LTI4LjYxbDIyLjQtOTAuMjRBMjkyLjI2IDI5Mi4yNiAwIDAxNjQgNDU2LjIxQzY0IDI4NS45OCAyMjcgMTQ4IDQyOC4wOSAxNDhjMTkwLjkzIDAgMzQ3LjI5IDEyNC41MyAzNjIuNTIgMjgyLjgyYTI0NC45NyAyNDQuOTcgMCAwMC0yNi40Ny0yLjYyYy05LjkuMzgtMTkuNzkgMS4zMS0yOS42IDIuODh6bS0xMTYuMyAxOTguODFhMTM1Ljc2IDEzNS43NiAwIDAwNDcuMDUtMTkuMDQgMTE0LjI0IDExNC4yNCAwIDAxNTEuNDUtMzEgNzYuNDcgNzYuNDcgMCAwMS0yNC41IDQ1LjM0IDE2OS40OCAxNjkuNDggMCAwMC0yMy40IDU1LjA1IDUwLjQxIDUwLjQxIDAgMDEtMTAwLjguMjMgNTAuNDEgNTAuNDEgMCAwMTUwLjItNTAuNThtOTAuOCAxMjEuMzJhMTY4LjYgMTY4LjYgMCAwMDU0LjY2IDIzLjkgNTAuNDQgNTAuNDQgMCAwMTM1LjY0IDg2LjA4IDUwLjM4IDUwLjM4IDAgMDEtODYuMDQtMzUuNjYgMTM2Ljc0IDEzNi43NCAwIDAwLTE4LjY3LTQ3LjI4IDExNC43MSAxMTQuNzEgMCAwMS0zMC41NC01MS44IDc2IDc2IDAgMDE0NC45NSAyNS4wNnoifX1dfSxuYW1lOiJ3ZWNoYXQtd29yayIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDg5NTkxOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptLTQ0LjQgNjcyQzM1My4xIDczNiAyMzYgNjgwLjQgMjM2IDU4OC45YzAtNDcuOCAzMC4yLTEwMy4xIDgyLjMtMTU1LjMgNjkuNS02OS42IDE1MC42LTEwMS40IDE4MS4xLTcwLjggMTMuNSAxMy41IDE0LjggMzYuOCA2LjEgNjQuNi00LjUgMTQgMTMuMSA2LjMgMTMuMSA2LjMgNTYuMi0yMy42IDEwNS4yLTI1IDEyMy4xLjcgOS42IDEzLjcgOC42IDMyLjgtLjIgNTUuMS00LjEgMTAuMiAxLjMgMTEuOCA5IDE0LjEgMzEuNyA5LjggNjYuOSAzMy42IDY2LjkgNzUuNS4yIDY5LjUtOTkuNyAxNTYuOS0yNDkuOCAxNTYuOXptMjA3LjMtMjkwLjhhMzQuOSAzNC45IDAgMDAtNy4yLTM0LjEgMzQuNjggMzQuNjggMCAwMC0zMy4xLTEwLjcgMTguMjQgMTguMjQgMCAwMS03LjYtMzUuN2MyNC4xLTUuMSA1MC4xIDIuMyA2Ny43IDIxLjkgMTcuNyAxOS42IDIyLjQgNDYuMyAxNC45IDY5LjhhMTguMTMgMTguMTMgMCAwMS0yMi45IDExLjcgMTguMTggMTguMTggMCAwMS0xMS44LTIyLjl6bTEwNiAzNC4zczAgLjEgMCAwYTIxLjEgMjEuMSAwIDAxLTI2LjYgMTMuNyAyMS4xOSAyMS4xOSAwIDAxLTEzLjYtMjYuN2MxMS0zNC4yIDQtNzMuMi0yMS43LTEwMS44YTEwNC4wNCAxMDQuMDQgMCAwMC05OC45LTMyLjEgMjEuMTQgMjEuMTQgMCAwMS0yNS4xLTE2LjMgMjEuMDcgMjEuMDcgMCAwMTE2LjItMjUuMWM0OS40LTEwLjUgMTAyLjggNC44IDEzOS4xIDQ1LjEgMzYuMyA0MC4yIDQ2LjEgOTUuMSAzMC42IDE0My4yem0tMzM0LjUgNi4xYy05MS40IDktMTYwLjcgNjUuMS0xNTQuNyAxMjUuMiA1LjkgNjAuMSA4NC44IDEwMS41IDE3Ni4yIDkyLjUgOTEuNC05LjEgMTYwLjctNjUuMSAxNTQuNy0xMjUuMy01LjktNjAuMS04NC44LTEwMS41LTE3Ni4yLTkyLjR6bTgwLjIgMTQxLjdjLTE4LjcgNDIuMy03Mi4zIDY0LjgtMTE3LjggNTAuMS00My45LTE0LjItNjIuNS01Ny43LTQzLjMtOTYuOCAxOC45LTM4LjQgNjgtNjAuMSAxMTEuNS00OC44IDQ1IDExLjcgNjggNTQuMiA0OS42IDk1LjV6bS05My0zMi4yYy0xNC4yLTUuOS0zMi40LjItNDEuMiAxMy45LTguOCAxMy44LTQuNyAzMC4yIDkuMyAzNi42IDE0LjMgNi41IDMzLjIuMyA0Mi0xMy44IDguOC0xNC4zIDQuMi0zMC42LTEwLjEtMzYuN3ptMzQuOS0xNC41Yy01LjQtMi4yLTEyLjIuNS0xNS40IDUuOC0zLjEgNS40LTEuNCAxMS41IDQuMSAxMy44IDUuNSAyLjMgMTIuNi0uMyAxNS44LTUuOCAzLTUuNiAxLTExLjgtNC41LTEzLjh6In19XX0sbmFtZToid2VpYm8tY2lyY2xlIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDEwNDE6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0tNDQuNCA2NzJDMzUzLjEgNzM2IDIzNiA2ODAuNCAyMzYgNTg4LjljMC00Ny44IDMwLjItMTAzLjEgODIuMy0xNTUuMyA2OS41LTY5LjYgMTUwLjYtMTAxLjQgMTgxLjEtNzAuOCAxMy41IDEzLjUgMTQuOCAzNi44IDYuMSA2NC42LTQuNSAxNCAxMy4xIDYuMyAxMy4xIDYuMyA1Ni4yLTIzLjYgMTA1LjItMjUgMTIzLjEuNyA5LjYgMTMuNyA4LjYgMzIuOC0uMiA1NS4xLTQuMSAxMC4yIDEuMyAxMS44IDkgMTQuMSAzMS43IDkuOCA2Ni45IDMzLjYgNjYuOSA3NS41LjIgNjkuNS05OS43IDE1Ni45LTI0OS44IDE1Ni45em0yMDcuMy0yOTAuOGEzNC45IDM0LjkgMCAwMC03LjItMzQuMSAzNC42OCAzNC42OCAwIDAwLTMzLjEtMTAuNyAxOC4yNCAxOC4yNCAwIDAxLTcuNi0zNS43YzI0LjEtNS4xIDUwLjEgMi4zIDY3LjcgMjEuOSAxNy43IDE5LjYgMjIuNCA0Ni4zIDE0LjkgNjkuOGExOC4xMyAxOC4xMyAwIDAxLTIyLjkgMTEuNyAxOC4xOCAxOC4xOCAwIDAxLTExLjgtMjIuOXptMTA2IDM0LjNzMCAuMSAwIDBhMjEuMSAyMS4xIDAgMDEtMjYuNiAxMy43IDIxLjE5IDIxLjE5IDAgMDEtMTMuNi0yNi43YzExLTM0LjIgNC03My4yLTIxLjctMTAxLjhhMTA0LjA0IDEwNC4wNCAwIDAwLTk4LjktMzIuMSAyMS4xNCAyMS4xNCAwIDAxLTI1LjEtMTYuMyAyMS4wNyAyMS4wNyAwIDAxMTYuMi0yNS4xYzQ5LjQtMTAuNSAxMDIuOCA0LjggMTM5LjEgNDUuMSAzNi4zIDQwLjIgNDYuMSA5NS4xIDMwLjYgMTQzLjJ6bS0zMzQuNSA2LjFjLTkxLjQgOS0xNjAuNyA2NS4xLTE1NC43IDEyNS4yIDUuOSA2MC4xIDg0LjggMTAxLjUgMTc2LjIgOTIuNSA5MS40LTkuMSAxNjAuNy02NS4xIDE1NC43LTEyNS4zLTUuOS02MC4xLTg0LjgtMTAxLjUtMTc2LjItOTIuNHptODAuMiAxNDEuN2MtMTguNyA0Mi4zLTcyLjMgNjQuOC0xMTcuOCA1MC4xLTQzLjktMTQuMi02Mi41LTU3LjctNDMuMy05Ni44IDE4LjktMzguNCA2OC02MC4xIDExMS41LTQ4LjggNDUgMTEuNyA2OCA1NC4yIDQ5LjYgOTUuNXptLTkzLTMyLjJjLTE0LjItNS45LTMyLjQuMi00MS4yIDEzLjktOC44IDEzLjgtNC43IDMwLjIgOS4zIDM2LjYgMTQuMyA2LjUgMzMuMi4zIDQyLTEzLjggOC44LTE0LjMgNC4yLTMwLjYtMTAuMS0zNi43em0zNC45LTE0LjVjLTUuNC0yLjItMTIuMi41LTE1LjQgNS44LTMuMSA1LjQtMS40IDExLjUgNC4xIDEzLjggNS41IDIuMyAxMi42LS4zIDE1LjgtNS44IDMtNS42IDEtMTEuOC00LjUtMTMuOHoifX1dfSxuYW1lOiJ3ZWliby1jaXJjbGUiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw1NTgyOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00NTcuMyA1NDNjLTY4LjEtMTcuNy0xNDUgMTYuMi0xNzQuNiA3Ni4yLTMwLjEgNjEuMi0xIDEyOS4xIDY3LjggMTUxLjMgNzEuMiAyMyAxNTUuMi0xMi4yIDE4NC40LTc4LjMgMjguNy02NC42LTcuMi0xMzEtNzcuNi0xNDkuMnptLTUyIDE1Ni4yYy0xMy44IDIyLjEtNDMuNSAzMS43LTY1LjggMjEuNi0yMi0xMC0yOC41LTM1LjctMTQuNi01Ny4yIDEzLjctMjEuNCA0Mi4zLTMxIDY0LjQtMjEuNyAyMi40IDkuNSAyOS42IDM1IDE2IDU3LjN6bTQ1LjUtNTguNWMtNSA4LjYtMTYuMSAxMi43LTI0LjcgOS4xLTguNS0zLjUtMTEuMi0xMy4xLTYuNC0yMS41IDUtOC40IDE1LjYtMTIuNCAyNC4xLTkuMSA4LjcgMy4yIDExLjggMTIuOSA3IDIxLjV6bTMzNC41LTE5Ny4yYzE1IDQuOCAzMS0zLjQgMzUuOS0xOC4zIDExLjgtMzYuNiA0LjQtNzguNC0yMy4yLTEwOWExMTEuMzkgMTExLjM5IDAgMDAtMTA2LTM0LjMgMjguNDUgMjguNDUgMCAwMC0yMS45IDMzLjggMjguMzkgMjguMzkgMCAwMDMzLjggMjEuOGMxOC40LTMuOSAzOC4zIDEuOCA1MS45IDE2LjdhNTQuMiA1NC4yIDAgMDExMS4zIDUzLjMgMjguNDUgMjguNDUgMCAwMDE4LjIgMzZ6bTk5LjgtMjA2Yy01Ni43LTYyLjktMTQwLjQtODYuOS0yMTcuNy03MC41YTMyLjk4IDMyLjk4IDAgMDAtMjUuNCAzOS4zIDMzLjEyIDMzLjEyIDAgMDAzOS4zIDI1LjVjNTUtMTEuNyAxMTQuNCA1LjQgMTU0LjggNTAuMSA0MC4zIDQ0LjcgNTEuMiAxMDUuNyAzNCAxNTkuMS01LjYgMTcuNCAzLjkgMzYgMjEuMyA0MS43IDE3LjQgNS42IDM2LTMuOSA0MS42LTIxLjJ2LS4xYzI0LjEtNzUuNCA4LjktMTYxLjEtNDcuOS0yMjMuOXpNNzI5IDQ5OWMtMTIuMi0zLjYtMjAuNS02LjEtMTQuMS0yMi4xIDEzLjgtMzQuNyAxNS4yLTY0LjcuMy04Ni0yOC00MC4xLTEwNC44LTM3LjktMTkyLjgtMS4xIDAgMC0yNy42IDEyLjEtMjAuNi05LjggMTMuNS00My41IDExLjUtNzkuOS05LjYtMTAxLTQ3LjctNDcuOC0xNzQuNiAxLjgtMjgzLjUgMTEwLjZDMTI3LjMgNDcxLjEgODAgNTU3LjUgODAgNjMyLjIgODAgNzc1LjEgMjYzLjIgODYyIDQ0Mi41IDg2MmMyMzUgMCAzOTEuMy0xMzYuNSAzOTEuMy0yNDUgMC02NS41LTU1LjItMTAyLjYtMTA0LjgtMTE4ek00NDMgODEwLjhjLTE0MyAxNC4xLTI2Ni41LTUwLjUtMjc1LjgtMTQ0LjUtOS4zLTkzLjkgOTkuMi0xODEuNSAyNDIuMi0xOTUuNiAxNDMtMTQuMiAyNjYuNSA1MC41IDI3NS44IDE0NC40QzY5NC40IDcwOSA1ODYgNzk2LjYgNDQzIDgxMC44eiJ9fV19LG5hbWU6IndlaWJvIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNTk2Njk6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQzMy42IDU5NS4xYy0xNC4yLTUuOS0zMi40LjItNDEuMiAxMy45LTguOCAxMy44LTQuNyAzMC4yIDkuMyAzNi42IDE0LjMgNi41IDMzLjIuMyA0Mi0xMy44IDguOC0xNC4zIDQuMi0zMC42LTEwLjEtMzYuN3pNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek00NjcuNiA3MzZDMzUzLjEgNzM2IDIzNiA2ODAuNCAyMzYgNTg4LjljMC00Ny44IDMwLjItMTAzLjEgODIuMy0xNTUuMyA2OS41LTY5LjYgMTUwLjYtMTAxLjQgMTgxLjEtNzAuOCAxMy41IDEzLjUgMTQuOCAzNi44IDYuMSA2NC42LTQuNSAxNCAxMy4xIDYuMyAxMy4xIDYuMyA1Ni4yLTIzLjYgMTA1LjItMjUgMTIzLjEuNyA5LjYgMTMuNyA4LjYgMzIuOC0uMiA1NS4xLTQuMSAxMC4yIDEuMyAxMS44IDkgMTQuMSAzMS43IDkuOCA2Ni45IDMzLjYgNjYuOSA3NS41LjIgNjkuNS05OS43IDE1Ni45LTI0OS44IDE1Ni45em0yMDcuMy0yOTAuOGEzNC45IDM0LjkgMCAwMC03LjItMzQuMSAzNC42OCAzNC42OCAwIDAwLTMzLjEtMTAuNyAxOC4yNCAxOC4yNCAwIDAxLTcuNi0zNS43YzI0LjEtNS4xIDUwLjEgMi4zIDY3LjcgMjEuOSAxNy43IDE5LjYgMjIuNCA0Ni4zIDE0LjkgNjkuOGExOC4xMyAxOC4xMyAwIDAxLTIyLjkgMTEuNyAxOC4xOCAxOC4xOCAwIDAxLTExLjgtMjIuOXptMTA2IDM0LjNzMCAuMSAwIDBhMjEuMSAyMS4xIDAgMDEtMjYuNiAxMy43IDIxLjE5IDIxLjE5IDAgMDEtMTMuNi0yNi43YzExLTM0LjIgNC03My4yLTIxLjctMTAxLjhhMTA0LjA0IDEwNC4wNCAwIDAwLTk4LjktMzIuMSAyMS4xNCAyMS4xNCAwIDAxLTI1LjEtMTYuMyAyMS4wNyAyMS4wNyAwIDAxMTYuMi0yNS4xYzQ5LjQtMTAuNSAxMDIuOCA0LjggMTM5LjEgNDUuMSAzNi4zIDQwLjIgNDYuMSA5NS4xIDMwLjYgMTQzLjJ6bS0zMzQuNSA2LjFjLTkxLjQgOS0xNjAuNyA2NS4xLTE1NC43IDEyNS4yIDUuOSA2MC4xIDg0LjggMTAxLjUgMTc2LjIgOTIuNSA5MS40LTkuMSAxNjAuNy02NS4xIDE1NC43LTEyNS4zLTUuOS02MC4xLTg0LjgtMTAxLjUtMTc2LjItOTIuNHptODAuMiAxNDEuN2MtMTguNyA0Mi4zLTcyLjMgNjQuOC0xMTcuOCA1MC4xLTQzLjktMTQuMi02Mi41LTU3LjctNDMuMy05Ni44IDE4LjktMzguNCA2OC02MC4xIDExMS41LTQ4LjggNDUgMTEuNyA2OCA1NC4yIDQ5LjYgOTUuNXptLTU4LjEtNDYuN2MtNS40LTIuMi0xMi4yLjUtMTUuNCA1LjgtMy4xIDUuNC0xLjQgMTEuNSA0LjEgMTMuOCA1LjUgMi4zIDEyLjYtLjMgMTUuOC01LjggMy01LjYgMS0xMS44LTQuNS0xMy44eiJ9fV19LG5hbWU6IndlaWJvLXNxdWFyZSIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw3MjUwOTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNDMzLjYgNTk1LjFjLTE0LjItNS45LTMyLjQuMi00MS4yIDEzLjktOC44IDEzLjgtNC43IDMwLjIgOS4zIDM2LjYgMTQuMyA2LjUgMzMuMi4zIDQyLTEzLjggOC44LTE0LjMgNC4yLTMwLjYtMTAuMS0zNi43ek04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTQ2Ny42IDczNkMzNTMuMSA3MzYgMjM2IDY4MC40IDIzNiA1ODguOWMwLTQ3LjggMzAuMi0xMDMuMSA4Mi4zLTE1NS4zIDY5LjUtNjkuNiAxNTAuNi0xMDEuNCAxODEuMS03MC44IDEzLjUgMTMuNSAxNC44IDM2LjggNi4xIDY0LjYtNC41IDE0IDEzLjEgNi4zIDEzLjEgNi4zIDU2LjItMjMuNiAxMDUuMi0yNSAxMjMuMS43IDkuNiAxMy43IDguNiAzMi44LS4yIDU1LjEtNC4xIDEwLjIgMS4zIDExLjggOSAxNC4xIDMxLjcgOS44IDY2LjkgMzMuNiA2Ni45IDc1LjUuMiA2OS41LTk5LjcgMTU2LjktMjQ5LjggMTU2Ljl6bTIwNy4zLTI5MC44YTM0LjkgMzQuOSAwIDAwLTcuMi0zNC4xIDM0LjY4IDM0LjY4IDAgMDAtMzMuMS0xMC43IDE4LjI0IDE4LjI0IDAgMDEtNy42LTM1LjdjMjQuMS01LjEgNTAuMSAyLjMgNjcuNyAyMS45IDE3LjcgMTkuNiAyMi40IDQ2LjMgMTQuOSA2OS44YTE4LjEzIDE4LjEzIDAgMDEtMjIuOSAxMS43IDE4LjE4IDE4LjE4IDAgMDEtMTEuOC0yMi45em0xMDYgMzQuM3MwIC4xIDAgMGEyMS4xIDIxLjEgMCAwMS0yNi42IDEzLjcgMjEuMTkgMjEuMTkgMCAwMS0xMy42LTI2LjdjMTEtMzQuMiA0LTczLjItMjEuNy0xMDEuOGExMDQuMDQgMTA0LjA0IDAgMDAtOTguOS0zMi4xIDIxLjE0IDIxLjE0IDAgMDEtMjUuMS0xNi4zIDIxLjA3IDIxLjA3IDAgMDExNi4yLTI1LjFjNDkuNC0xMC41IDEwMi44IDQuOCAxMzkuMSA0NS4xIDM2LjMgNDAuMiA0Ni4xIDk1LjEgMzAuNiAxNDMuMnptLTMzNC41IDYuMWMtOTEuNCA5LTE2MC43IDY1LjEtMTU0LjcgMTI1LjIgNS45IDYwLjEgODQuOCAxMDEuNSAxNzYuMiA5Mi41IDkxLjQtOS4xIDE2MC43LTY1LjEgMTU0LjctMTI1LjMtNS45LTYwLjEtODQuOC0xMDEuNS0xNzYuMi05Mi40em04MC4yIDE0MS43Yy0xOC43IDQyLjMtNzIuMyA2NC44LTExNy44IDUwLjEtNDMuOS0xNC4yLTYyLjUtNTcuNy00My4zLTk2LjggMTguOS0zOC40IDY4LTYwLjEgMTExLjUtNDguOCA0NSAxMS43IDY4IDU0LjIgNDkuNiA5NS41em0tNTguMS00Ni43Yy01LjQtMi4yLTEyLjIuNS0xNS40IDUuOC0zLjEgNS40LTEuNCAxMS41IDQuMSAxMy44IDUuNSAyLjMgMTIuNi0uMyAxNS44LTUuOCAzLTUuNiAxLTExLjgtNC41LTEzLjh6In19XX0sbmFtZToid2VpYm8tc3F1YXJlIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sMzE3ODQ6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJkZWZzIixhdHRyczp7fSxjaGlsZHJlbjpbe3RhZzoic3R5bGUiLGF0dHJzOnt9fV19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNzEzLjUgNTk5LjljLTEwLjktNS42LTY1LjItMzIuMi03NS4zLTM1LjgtMTAuMS0zLjgtMTcuNS01LjYtMjQuOCA1LjYtNy40IDExLjEtMjguNCAzNS44LTM1IDQzLjMtNi40IDcuNC0xMi45IDguMy0yMy44IDIuOC02NC44LTMyLjQtMTA3LjMtNTcuOC0xNTAtMTMxLjEtMTEuMy0xOS41IDExLjMtMTguMSAzMi40LTYwLjIgMy42LTcuNCAxLjgtMTMuNy0xLTE5LjMtMi44LTUuNi0yNC44LTU5LjgtMzQtODEuOS04LjktMjEuNS0xOC4xLTE4LjUtMjQuOC0xOC45LTYuNC0uNC0xMy43LS40LTIxLjEtLjQtNy40IDAtMTkuMyAyLjgtMjkuNCAxMy43LTEwLjEgMTEuMS0zOC42IDM3LjgtMzguNiA5MnMzOS41IDEwNi43IDQ0LjkgMTE0LjFjNS42IDcuNCA3Ny43IDExOC42IDE4OC40IDE2Ni41IDcwIDMwLjIgOTcuNCAzMi44IDEzMi40IDI3LjYgMjEuMy0zLjIgNjUuMi0yNi42IDc0LjMtNTIuNSA5LjEtMjUuOCA5LjEtNDcuOSA2LjQtNTIuNS0yLjctNC45LTEwLjEtNy43LTIxLTEzeiJ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkyNS4yIDMzOC40Yy0yMi42LTUzLjctNTUtMTAxLjktOTYuMy0xNDMuM2E0NDQuMzUgNDQ0LjM1IDAgMDAtMTQzLjMtOTYuM0M2MzAuNiA3NS43IDU3Mi4yIDY0IDUxMiA2NGgtMmMtNjAuNi4zLTExOS4zIDEyLjMtMTc0LjUgMzUuOWE0NDUuMzUgNDQ1LjM1IDAgMDAtMTQyIDk2LjVjLTQwLjkgNDEuMy03MyA4OS4zLTk1LjIgMTQyLjgtMjMgNTUuNC0zNC42IDExNC4zLTM0LjMgMTc0LjlBNDQ5LjQgNDQ5LjQgMCAwMDExMiA3MTR2MTUyYTQ2IDQ2IDAgMDA0NiA0NmgxNTIuMUE0NDkuNCA0NDkuNCAwIDAwNTEwIDk2MGgyLjFjNTkuOSAwIDExOC0xMS42IDE3Mi43LTM0LjNhNDQ0LjQ4IDQ0NC40OCAwIDAwMTQyLjgtOTUuMmM0MS4zLTQwLjkgNzMuOC04OC43IDk2LjUtMTQyIDIzLjYtNTUuMiAzNS42LTExMy45IDM1LjktMTc0LjUuMy02MC45LTExLjUtMTIwLTM0LjgtMTc1LjZ6bS0xNTEuMSA0MzhDNzA0IDg0NS44IDYxMSA4ODQgNTEyIDg4NGgtMS43Yy02MC4zLS4zLTEyMC4yLTE1LjMtMTczLjEtNDMuNWwtOC40LTQuNUgxODhWNjk1LjJsLTQuNS04LjRDMTU1LjMgNjMzLjkgMTQwLjMgNTc0IDE0MCA1MTMuN2MtLjQtOTkuNyAzNy43LTE5My4zIDEwNy42LTI2My44IDY5LjgtNzAuNSAxNjMuMS0xMDkuNSAyNjIuOC0xMDkuOWgxLjdjNTAgMCA5OC41IDkuNyAxNDQuMiAyOC45IDQ0LjYgMTguNyA4NC42IDQ1LjYgMTE5IDgwIDM0LjMgMzQuMyA2MS4zIDc0LjQgODAgMTE5IDE5LjQgNDYuMiAyOS4xIDk1LjIgMjguOSAxNDUuOC0uNiA5OS42LTM5LjcgMTkyLjktMTEwLjEgMjYyLjd6In19XX0sbmFtZToid2hhdHMtYXBwIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sOTI5ODM6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTcyMyA2MjAuNUM2NjYuOCA1NzEuNiA1OTMuNCA1NDIgNTEzIDU0MnMtMTUzLjggMjkuNi0yMTAuMSA3OC42YTguMSA4LjEgMCAwMC0uOCAxMS4ybDM2IDQyLjljMi45IDMuNCA4IDMuOCAxMS40LjlDMzkzLjEgNjM3LjIgNDUwLjMgNjE0IDUxMyA2MTRzMTE5LjkgMjMuMiAxNjMuNSA2MS41YzMuNCAyLjkgOC41IDIuNSAxMS40LS45bDM2LTQyLjljMi44LTMuMyAyLjQtOC4zLS45LTExLjJ6bTExNy40LTE0MC4xQzc1MS43IDQwNi41IDYzNy42IDM2MiA1MTMgMzYycy0yMzguNyA0NC41LTMyNy41IDExOC40YTguMDUgOC4wNSAwIDAwLTEgMTEuM2wzNiA0Mi45YzIuOCAzLjQgNy45IDMuOCAxMS4yIDFDMzA4IDQ3Mi4yIDQwNi4xIDQzNCA1MTMgNDM0czIwNSAzOC4yIDI4MS4yIDEwMS42YzMuNCAyLjggOC40IDIuNCAxMS4yLTFsMzYtNDIuOWMyLjgtMy40IDIuNC04LjUtMS0xMS4zem0xMTYuNy0xMzlDODM1LjcgMjQxLjggNjgwLjMgMTgyIDUxMSAxODJjLTE2OC4yIDAtMzIyLjYgNTktNDQzLjcgMTU3LjRhOCA4IDAgMDAtMS4xIDExLjRsMzYgNDIuOWMyLjggMy4zIDcuOCAzLjggMTEuMSAxLjFDMjIyIDMwNi43IDM2MC4zIDI1NCA1MTEgMjU0YzE1MS44IDAgMjkxIDUzLjUgNDAwIDE0Mi43IDMuNCAyLjggOC40IDIuMyAxMS4yLTEuMWwzNi00Mi45YzIuOS0zLjQgMi40LTguNS0xLjEtMTEuM3pNNDQ4IDc3OGE2NCA2NCAwIDEwMTI4IDAgNjQgNjQgMCAxMC0xMjggMHoifX1dfSxuYW1lOiJ3aWZpIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNjk1Mzc6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUyMy44IDE5MS40djI4OC45aDM4MlYxMjguMXptMCA2NDIuMmwzODIgNjIuMnYtMzUyaC0zODJ6TTEyMC4xIDQ4MC4ySDQ0M1YyMDEuOWwtMzIyLjkgNTMuNXptMCAyOTAuNEw0NDMgODIzLjJWNTQzLjhIMTIwLjF6In19XX0sbmFtZToid2luZG93cyIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSw4MDY1MTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMTIwLjEgNzcwLjZMNDQzIDgyMy4yVjU0My44SDEyMC4xdjIyNi44em02My40LTE2My41aDE5Ni4ydjE0MS42bC0xOTYuMi0zMS45VjYwNy4xem0zNDAuMyAyMjYuNWwzODIgNjIuMnYtMzUyaC0zODJ2Mjg5Ljh6bTYzLjQtMjI2LjVoMjU1LjN2MjE0LjRsLTI1NS4zLTQxLjZWNjA3LjF6bS02My40LTQxNS43djI4OC44aDM4MlYxMjguMWwtMzgyIDYzLjN6bTMxOC43IDIyNS41SDU4Ny4zVjI0NWwyNTUuMy00Mi4zdjIxNC4yem0tNzIyLjQgNjMuM0g0NDNWMjAxLjlsLTMyMi45IDUzLjV2MjI0Ljh6TTE4My41IDMwOWwxOTYuMi0zMi41djE0MC40SDE4My41VjMwOXoifX1dfSxuYW1lOiJ3aW5kb3dzIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNDMxOTY6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTcxMi44IDU0OC44YzUzLjYtNTMuNiA4My4yLTEyNSA4My4yLTIwMC44IDAtNzUuOS0yOS41LTE0Ny4yLTgzLjItMjAwLjhDNjU5LjIgOTMuNiA1ODcuOCA2NCA1MTIgNjRzLTE0Ny4yIDI5LjUtMjAwLjggODMuMkMyNTcuNiAyMDAuOSAyMjggMjcyLjEgMjI4IDM0OGMwIDYzLjggMjAuOSAxMjQuNCA1OS40IDE3My45IDcuMyA5LjQgMTUuMiAxOC4zIDIzLjcgMjYuOSA4LjUgOC41IDE3LjUgMTYuNCAyNi44IDIzLjcgMzkuNiAzMC44IDg2LjMgNTAuNCAxMzYuMSA1N1Y3MzZIMzYwYy00LjQgMC04IDMuNi04IDh2NjBjMCA0LjQgMy42IDggOCA4aDExNHYxNDBjMCA0LjQgMy42IDggOCA4aDYwYzQuNCAwIDgtMy42IDgtOFY4MTJoMTE0YzQuNCAwIDgtMy42IDgtOHYtNjBjMC00LjQtMy42LTgtOC04SDU1MFY2MjkuNWM2MS41LTguMiAxMTguMi0zNi4xIDE2Mi44LTgwLjd6TTUxMiA1NTZjLTU1LjYgMC0xMDcuNy0yMS42LTE0Ny4xLTYwLjlDMzI1LjYgNDU1LjggMzA0IDQwMy42IDMwNCAzNDhzMjEuNi0xMDcuNyA2MC45LTE0Ny4xQzQwNC4yIDE2MS41IDQ1Ni40IDE0MCA1MTIgMTQwczEwNy43IDIxLjYgMTQ3LjEgNjAuOUM2OTguNCAyNDAuMiA3MjAgMjkyLjQgNzIwIDM0OHMtMjEuNiAxMDcuNy02MC45IDE0Ny4xQzYxOS43IDUzNC40IDU2Ny42IDU1NiA1MTIgNTU2eiJ9fV19LG5hbWU6IndvbWFuIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sNjMxOTpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6ImciLGF0dHJzOnsiZmlsbC1ydWxlIjoiZXZlbm9kZCJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTgyMy4xMSA5MTJIMjAwLjlBODguOSA4OC45IDAgMDExMTIgODIzLjExVjIwMC45QTg4LjkgODguOSAwIDAxMjAwLjg5IDExMkg4MjMuMUE4OC45IDg4LjkgMCAwMTkxMiAyMDAuODlWODIzLjFBODguOSA4OC45IDAgMDE4MjMuMTEgOTEyIn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNzQwIDczNUg1OTYuOTRMMjg2IDI5MWgxNDMuMDZ6bS0xMjYuMDEtMzcuNjVoNTYuOTZMNDEyIDMyOC42NWgtNTYuOTZ6IiwiZmlsbC1ydWxlIjoibm9uemVybyJ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTMzMS4zIDczNUw0OTEgNTQ5LjczIDQ3MC4xMSA1MjIgMjg2IDczNXpNNTIxIDQ2MC4zOUw1NDEuMjEgNDg5IDcxNSAyODloLTQ0LjY3eiIsImZpbGwtcnVsZSI6Im5vbnplcm8ifX1dfV19LG5hbWU6IngiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sOTQ5NzQ6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7ImZpbGwtcnVsZSI6ImV2ZW5vZGQiLHZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MjEgOTEyTDYwMS4xMSA0NDUuNzVsLjU1LjQzTDg5MC4wOCAxMTJINzkzLjdMNTU4Ljc0IDM4NCAzNzIuMTUgMTEySDExOS4zN2wyOTguNjUgNDM1LjMxLS4wNC0uMDRMMTAzIDkxMmg5Ni4zOUw0NjAuNiA2MDkuMzggNjY4LjIgOTEyek0zMzMuOTYgMTg0LjczbDQ0OC44MyA2NTQuNTRINzA2LjRMMjU3LjIgMTg0LjczeiJ9fV19LG5hbWU6IngiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSwyMjQ0MDpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTM3LjMgMjMxSDgyNC43Yy0xNS41IDAtMjcuNyAxMi42LTI3LjEgMjguMWwxMy4xIDM2Nmg4NC40bDY1LjQtMzY2LjRjMi43LTE1LjItNy44LTI3LjctMjMuMi0yNy43em0tNzcuNCA0NTAuNGgtMTQuMWMtMjcuMSAwLTQ5LjIgMjIuMi00OS4yIDQ5LjN2MTQuMWMwIDI3LjEgMjIuMiA0OS4zIDQ5LjIgNDkuM2gxNC4xYzI3LjEgMCA0OS4yLTIyLjIgNDkuMi00OS4zdi0xNC4xYzAtMjcuMS0yMi4yLTQ5LjMtNDkuMi00OS4zek00MDIuNiAyMzFDMjE2LjIgMjMxIDY1IDM1NyA2NSA1MTIuNVMyMTYuMiA3OTQgNDAyLjYgNzk0czMzNy42LTEyNiAzMzcuNi0yODEuNVM1ODkuMSAyMzEgNDAyLjYgMjMxem0yMjUuMiAyMjUuMmgtNjUuM0w0NTguOSA1NTkuOHY2NS4zaDg0LjR2NTYuM0gzMTguMnYtNTYuM2g4NC40di02NS4zTDI0Mi45IDM5OS45aC0zN3YtNTYuM2gxNjguNXY1Ni4zaC0zN2w5My40IDkzLjUgMjguMS0yOC4xVjQwMGgxNjguOHY1Ni4yeiJ9fV19LG5hbWU6InlhaG9vIix0aGVtZToiZmlsbGVkIn07dC5kZWZhdWx0PWV9LDE0NjIxOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NTkuOSA2ODEuNGgtMTQuMWMtMjcuMSAwLTQ5LjIgMjIuMi00OS4yIDQ5LjN2MTQuMWMwIDI3LjEgMjIuMiA0OS4zIDQ5LjIgNDkuM2gxNC4xYzI3LjEgMCA0OS4yLTIyLjIgNDkuMi00OS4zdi0xNC4xYzAtMjcuMS0yMi4yLTQ5LjMtNDkuMi00OS4zek00MDIuNiAyMzFDMjE2LjIgMjMxIDY1IDM1NyA2NSA1MTIuNVMyMTYuMiA3OTQgNDAyLjYgNzk0czMzNy42LTEyNiAzMzcuNi0yODEuNVM1ODkuMSAyMzEgNDAyLjYgMjMxem0wIDUwN0MyNDUuMSA3MzggMTIxIDYzNC42IDEyMSA1MTIuNWMwLTYyLjMgMzIuMy0xMTkuNyA4NC45LTE2MXY0OC40aDM3bDE1OS44IDE1OS45djY1LjNoLTg0LjR2NTYuM2gyMjUuMXYtNTYuM0g0NTl2LTY1LjNsMTAzLjUtMTAzLjZoNjUuM3YtNTYuM0g0NTl2NjUuM2wtMjguMSAyOC4xLTkzLjQtOTMuNWgzN3YtNTYuM0gyMTYuNGM0OS40LTM1IDExNC4zLTU2LjYgMTg2LjItNTYuNiAxNTcuNiAwIDI4MS42IDEwMy40IDI4MS42IDIyNS41UzU2MC4yIDczOCA0MDIuNiA3Mzh6bTUzNC43LTUwN0g4MjQuN2MtMTUuNSAwLTI3LjcgMTIuNi0yNy4xIDI4LjFsMTMuMSAzNjZoODQuNGw2NS40LTM2Ni40YzIuNy0xNS4yLTcuOC0yNy43LTIzLjItMjcuN3oifX1dfSxuYW1lOiJ5YWhvbyIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDcwNzY1OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05NDEuMyAyOTYuMWExMTIuMyAxMTIuMyAwIDAwLTc5LjItNzkuM0M3OTIuMiAxOTggNTEyIDE5OCA1MTIgMTk4cy0yODAuMiAwLTM1MC4xIDE4LjdBMTEyLjEyIDExMi4xMiAwIDAwODIuNyAyOTZDNjQgMzY2IDY0IDUxMiA2NCA1MTJzMCAxNDYgMTguNyAyMTUuOWMxMC4zIDM4LjYgNDAuNyA2OSA3OS4yIDc5LjNDMjMxLjggODI2IDUxMiA4MjYgNTEyIDgyNnMyODAuMiAwIDM1MC4xLTE4LjhjMzguNi0xMC4zIDY4LjktNDAuNyA3OS4yLTc5LjNDOTYwIDY1OCA5NjAgNTEyIDk2MCA1MTJzMC0xNDYtMTguNy0yMTUuOXpNNDIzIDY0NlYzNzhsMjMyIDEzMy0yMzIgMTM1eiJ9fV19LG5hbWU6InlvdXR1YmUiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sNjAzOmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05NjAgNTA5LjJjMC0yLjIgMC00LjctLjEtNy42LS4xLTguMS0uMy0xNy4yLS41LTI2LjktLjgtMjcuOS0yLjItNTUuNy00LjQtODEuOS0zLTM2LjEtNy40LTY2LjItMTMuNC04OC44YTEzOS41MiAxMzkuNTIgMCAwMC05OC4zLTk4LjVjLTI4LjMtNy42LTgzLjctMTIuMy0xNjEuNy0xNS4yLTM3LjEtMS40LTc2LjgtMi4zLTExNi41LTIuOC0xMy45LS4yLTI2LjgtLjMtMzguNC0uNGgtMjkuNGMtMTEuNi4xLTI0LjUuMi0zOC40LjQtMzkuNy41LTc5LjQgMS40LTExNi41IDIuOC03OCAzLTEzMy41IDcuNy0xNjEuNyAxNS4yQTEzOS4zNSAxMzkuMzUgMCAwMDgyLjQgMzA0Qzc2LjMgMzI2LjYgNzIgMzU2LjcgNjkgMzkyLjhjLTIuMiAyNi4yLTMuNiA1NC00LjQgODEuOS0uMyA5LjctLjQgMTguOC0uNSAyNi45IDAgMi45LS4xIDUuNC0uMSA3LjZ2NS42YzAgMi4yIDAgNC43LjEgNy42LjEgOC4xLjMgMTcuMi41IDI2LjkuOCAyNy45IDIuMiA1NS43IDQuNCA4MS45IDMgMzYuMSA3LjQgNjYuMiAxMy40IDg4LjggMTIuOCA0Ny45IDUwLjQgODUuNyA5OC4zIDk4LjUgMjguMiA3LjYgODMuNyAxMi4zIDE2MS43IDE1LjIgMzcuMSAxLjQgNzYuOCAyLjMgMTE2LjUgMi44IDEzLjkuMiAyNi44LjMgMzguNC40aDI5LjRjMTEuNi0uMSAyNC41LS4yIDM4LjQtLjQgMzkuNy0uNSA3OS40LTEuNCAxMTYuNS0yLjggNzgtMyAxMzMuNS03LjcgMTYxLjctMTUuMiA0Ny45LTEyLjggODUuNS01MC41IDk4LjMtOTguNSA2LjEtMjIuNiAxMC40LTUyLjcgMTMuNC04OC44IDIuMi0yNi4yIDMuNi01NCA0LjQtODEuOS4zLTkuNy40LTE4LjguNS0yNi45IDAtMi45LjEtNS40LjEtNy42di01LjZ6bS03MiA1LjJjMCAyLjEgMCA0LjQtLjEgNy4xLS4xIDcuOC0uMyAxNi40LS41IDI1LjctLjcgMjYuNi0yLjEgNTMuMi00LjIgNzcuOS0yLjcgMzIuMi02LjUgNTguNi0xMS4yIDc2LjMtNi4yIDIzLjEtMjQuNCA0MS40LTQ3LjQgNDcuNS0yMSA1LjYtNzMuOSAxMC4xLTE0NS44IDEyLjgtMzYuNCAxLjQtNzUuNiAyLjMtMTE0LjcgMi44LTEzLjcuMi0yNi40LjMtMzcuOC4zaC0yOC42bC0zNy44LS4zYy0zOS4xLS41LTc4LjItMS40LTExNC43LTIuOC03MS45LTIuOC0xMjQuOS03LjItMTQ1LjgtMTIuOC0yMy02LjItNDEuMi0yNC40LTQ3LjQtNDcuNS00LjctMTcuNy04LjUtNDQuMS0xMS4yLTc2LjMtMi4xLTI0LjctMy40LTUxLjMtNC4yLTc3LjktLjMtOS4zLS40LTE4LS41LTI1LjcgMC0yLjctLjEtNS4xLS4xLTcuMXYtNC44YzAtMi4xIDAtNC40LjEtNy4xLjEtNy44LjMtMTYuNC41LTI1LjcuNy0yNi42IDIuMS01My4yIDQuMi03Ny45IDIuNy0zMi4yIDYuNS01OC42IDExLjItNzYuMyA2LjItMjMuMSAyNC40LTQxLjQgNDcuNC00Ny41IDIxLTUuNiA3My45LTEwLjEgMTQ1LjgtMTIuOCAzNi40LTEuNCA3NS42LTIuMyAxMTQuNy0yLjggMTMuNy0uMiAyNi40LS4zIDM3LjgtLjNoMjguNmwzNy44LjNjMzkuMS41IDc4LjIgMS40IDExNC43IDIuOCA3MS45IDIuOCAxMjQuOSA3LjIgMTQ1LjggMTIuOCAyMyA2LjIgNDEuMiAyNC40IDQ3LjQgNDcuNSA0LjcgMTcuNyA4LjUgNDQuMSAxMS4yIDc2LjMgMi4xIDI0LjcgMy40IDUxLjMgNC4yIDc3LjkuMyA5LjMuNCAxOCAuNSAyNS43IDAgMi43LjEgNS4xLjEgNy4xdjQuOHpNNDIzIDY0NmwyMzItMTM1LTIzMi0xMzN6In19XX0sbmFtZToieW91dHViZSIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDQ2Mzg1OmZ1bmN0aW9uKHYsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NTQuNiAzNzAuNmMtOS45LTM5LjQgOS45LTEwMi4yIDczLjQtMTI0LjRsLTY3LjktMy42cy0yNS43LTkwLTE0My42LTk4Yy0xMTcuOS04LjEtMTk1LTMtMTk1LTNzODcuNCA1NS42IDUyLjQgMTU0LjdjLTI1LjYgNTIuNS02NS44IDk1LjYtMTA4LjggMTQ0LjctMS4zIDEuMy0yLjUgMi42LTMuNSAzLjdDMzE5LjQgNjA1IDk2IDg2MCA5NiA4NjBjMjQ1LjkgNjQuNCA0MTAuNy02LjMgNTA4LjItOTEuMSAyMC41LS4yIDM1LjktLjMgNDYuMy0uMyAxMzUuOCAwIDI1MC42LTExNy42IDI0NS45LTI0OC40LTMuMi04OS45LTMxLjktMTEwLjItNDEuOC0xNDkuNnoifX1dfSxuYW1lOiJ5dXF1ZSIsdGhlbWU6ImZpbGxlZCJ9O3QuZGVmYXVsdD1lfSwxMTk1NDpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODU0LjYgMzcwLjZjLTkuOS0zOS40IDkuOS0xMDIuMiA3My40LTEyNC40bC02Ny45LTMuNnMtMjUuNy05MC0xNDMuNi05OGMtMTE3LjgtOC4xLTE5NC45LTMtMTk1LTMgLjEgMCA4Ny40IDU1LjYgNTIuNCAxNTQuNy0yNS42IDUyLjUtNjUuOCA5NS42LTEwOC44IDE0NC43LTEuMyAxLjMtMi41IDIuNi0zLjUgMy43QzMxOS40IDYwNSA5NiA4NjAgOTYgODYwYzI0NS45IDY0LjQgNDEwLjctNi4zIDUwOC4yLTkxLjEgMjAuNS0uMiAzNS45LS4zIDQ2LjMtLjMgMTM1LjggMCAyNTAuNi0xMTcuNiAyNDUuOS0yNDguNC0zLjItODkuOS0zMS45LTExMC4yLTQxLjgtMTQ5LjZ6bS0yMDQuMSAzMzRjLTEwLjYgMC0yNi4yLjEtNDYuOC4zbC0yMy42LjItMTcuOCAxNS41Yy00Ny4xIDQxLTEwNC40IDcxLjUtMTcxLjQgODcuNi01Mi41IDEyLjYtMTEwIDE2LjItMTcyLjcgOS42IDE4LTIwLjUgMzYuNS00MS42IDU1LjQtNjMuMSA5Mi0xMDQuNiAxNzMuOC0xOTcuNSAyMzYuOS0yNjguNWwxLjQtMS40IDEuMy0xLjVjNC4xLTQuNiAyMC42LTIzLjMgMjQuNy0yOC4xIDkuNy0xMS4xIDE3LjMtMTkuOSAyNC41LTI4LjYgMzAuNy0zNi43IDUyLjItNjcuOCA2OS0xMDIuMmwxLjYtMy4zIDEuMi0zLjRjMTMuNy0zOC44IDE1LjQtNzYuOSA2LjItMTEyLjggMjIuNS43IDQ2LjUgMS45IDcxLjcgMy42IDMzLjMgMi4zIDU1LjUgMTIuOSA3MS4xIDI5LjIgNS44IDYgMTAuMiAxMi41IDEzLjQgMTguNyAxIDIgMS43IDMuNiAyLjMgNWw1IDE3LjdjLTE1LjcgMzQuNS0xOS45IDczLjMtMTEuNCAxMDcuMiAzIDExLjggNi45IDIyLjQgMTIuMyAzNC40IDIuMSA0LjcgOS41IDIwLjEgMTEgMjMuMyAxMC4zIDIyLjcgMTUuNCA0MyAxNi43IDc4LjcgMy4zIDk0LjYtODIuNyAxODEuOS0xODIgMTgxLjl6In19XX0sbmFtZToieXVxdWUiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw5OTk3NDpmdW5jdGlvbih2LHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bS05MC43IDQ3Ny44bC0uMSAxLjVjLTEuNSAyMC40LTYuMyA0My45LTEyLjkgNjcuNmwyNC0xOC4xIDcxIDgwLjdjOS4yIDMzLTMuMyA2My4xLTMuMyA2My4xbC05NS43LTExMS45di0uMWMtOC45IDI5LTIwLjEgNTcuMy0zMy4zIDg0LjctMjIuNiA0NS43LTU1LjIgNTQuNy04OS41IDU3LjctMzQuNCAzLTIzLjMtNS4zLTIzLjMtNS4zIDY4LTU1LjUgNzgtODcuOCA5Ni44LTEyMy4xIDExLjktMjIuMyAyMC40LTY0LjMgMjUuMy05Ni44SDI2NC4xczQuOC0zMS4yIDE5LjItNDEuN2gxMDEuNmMuNi0xNS4zLTEuMy0xMDIuOC0yLTEzMS40aC00OS40Yy05LjIgNDUtNDEgNTYuNy00OC4xIDYwLjEtNyAzLjQtMjMuNiA3LjEtMjEuMSAwIDIuNi03LjEgMjctNDYuMiA0My4yLTExMC43IDE2LjMtNjQuNiA2My45LTYyIDYzLjktNjItMTIuOCAyMi41LTIyLjQgNzMuNi0yMi40IDczLjZoMTU5LjdjMTAuMSAwIDEwLjYgMzkgMTAuNiAzOWgtOTAuOGMtLjcgMjIuNy0yLjggODMuOC01IDEzMS40SDUxOXMxMi4yIDE1LjQgMTIuMiA0MS43SDQyMS4zem0zNDYuNSAxNjdoLTg3LjZsLTY5LjUgNDYuNi0xNi40LTQ2LjZoLTQwLjFWMzIxLjVoMjEzLjZ2Mzg3LjN6TTQwOC4yIDYxMXMwLS4xIDAgMHptMjE2IDk0LjNsNTYuOC0zOC4xaDQ1LjYtLjFWMzY0LjdINTk2Ljd2MzAyLjVoMTQuMXoifX1dfSxuYW1lOiJ6aGlodS1jaXJjbGUiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sMjM0NDY6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTU2NC43IDIzMC4xVjgwM2g2MGwyNS4yIDcxLjRMNzU2LjMgODAzaDEzMS41VjIzMC4xSDU2NC43em0yNDcuNyA0OTdoLTU5LjlsLTc1LjEgNTAuNC0xNy44LTUwLjRoLTE4VjMwOC4zaDE3MC43djQxOC44ek01MjYuMSA0ODYuOUgzOTMuM2MyLjEtNDQuOSA0LjMtMTA0LjMgNi42LTE3Mi45aDEzMC45bC0uMS04LjFjMC0uNi0uMi0xNC43LTIuMy0yOS4xLTIuMS0xNS02LjYtMzQuOS0yMS0zNC45SDI4Ny44YzQuNC0yMC42IDE1LjctNjkuNyAyOS40LTkzLjhsNi40LTExLjItMTIuOS0uN2MtLjggMC0xOS42LS45LTQxLjQgMTAuNi0zNS43IDE5LTUxLjcgNTYuNC01OC43IDg0LjQtMTguNCA3My4xLTQ0LjYgMTIzLjktNTUuNyAxNDUuNi0zLjMgNi40LTUuMyAxMC4yLTYuMiAxMi44LTEuOCA0LjktLjggOS44IDIuOCAxMyAxMC41IDkuNSAzOC4yLTIuOSAzOC41LTMgLjYtLjMgMS4zLS42IDIuMi0xIDEzLjktNi4zIDU1LjEtMjUgNjkuOC04NC41aDU2LjdjLjcgMzIuMiAzLjEgMTM4LjQgMi45IDE3Mi45aC0xNDFsLTIuMSAxLjVjLTIzLjEgMTYuOS0zMC41IDYzLjItMzAuOCA2NS4ybC0xLjQgOS4yaDE2N2MtMTIuMyA3OC4zLTI2LjUgMTEzLjQtMzQgMTI3LjQtMy43IDctNy4zIDE0LTEwLjcgMjAuOC0yMS4zIDQyLjItNDMuNCA4NS44LTEyNi4zIDE1My42LTMuNiAyLjgtNyA4LTQuOCAxMy43IDIuNCA2LjMgOS4zIDkuMSAyNC42IDkuMSA1LjQgMCAxMS44LS4zIDE5LjQtMSA0OS45LTQuNCAxMDAuOC0xOCAxMzUuMS04Ny42IDE3LTM1LjEgMzEuNy03MS43IDQzLjktMTA4LjlMNDk3IDg1MGw1LTEyYy44LTEuOSAxOS00Ni4zIDUuMS05NS45bC0uNS0xLjgtMTA4LjEtMTIzLTIyIDE2LjZjNi40LTI2LjEgMTAuNi00OS45IDEyLjUtNzEuMWgxNTguN3YtOGMwLTQwLjEtMTguNS02My45LTE5LjItNjQuOWwtMi40LTN6In19XX0sbmFtZToiemhpaHUiLHRoZW1lOiJvdXRsaW5lZCJ9O3QuZGVmYXVsdD1lfSw3Njk6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNDMyLjMgNTkyLjhsNzEgODAuN2M5LjIgMzMtMy4zIDYzLjEtMy4zIDYzLjFsLTk1LjctMTExLjl2LS4xYy04LjkgMjktMjAuMSA1Ny4zLTMzLjMgODQuNy0yMi42IDQ1LjctNTUuMiA1NC43LTg5LjUgNTcuNy0zNC40IDMtMjMuMy01LjMtMjMuMy01LjMgNjgtNTUuNSA3OC04Ny44IDk2LjgtMTIzLjEgMTEuOS0yMi4zIDIwLjQtNjQuMyAyNS4zLTk2LjhIMjY0LjFzNC44LTMxLjIgMTkuMi00MS43aDEwMS42Yy42LTE1LjMtMS4zLTEwMi44LTItMTMxLjRoLTQ5LjRjLTkuMiA0NS00MSA1Ni43LTQ4LjEgNjAuMS03IDMuNC0yMy42IDcuMS0yMS4xIDAgMi42LTcuMSAyNy00Ni4yIDQzLjItMTEwLjcgMTYuMy02NC42IDYzLjktNjIgNjMuOS02Mi0xMi44IDIyLjUtMjIuNCA3My42LTIyLjQgNzMuNmgxNTkuN2MxMC4xIDAgMTAuNiAzOSAxMC42IDM5aC05MC44Yy0uNyAyMi43LTIuOCA4My44LTUgMTMxLjRINTE5czEyLjIgMTUuNCAxMi4yIDQxLjdoLTExMGwtLjEgMS41Yy0xLjUgMjAuNC02LjMgNDMuOS0xMi45IDY3LjZsMjQuMS0xOC4xem0zMzUuNSAxMTZoLTg3LjZsLTY5LjUgNDYuNi0xNi40LTQ2LjZoLTQwLjFWMzIxLjVoMjEzLjZ2Mzg3LjN6TTQwOC4yIDYxMXMwLS4xIDAgMHptMjE2IDk0LjNsNTYuOC0zOC4xaDQ1LjYtLjFWMzY0LjdINTk2Ljd2MzAyLjVoMTQuMXoifX1dfSxuYW1lOiJ6aGlodS1zcXVhcmUiLHRoZW1lOiJmaWxsZWQifTt0LmRlZmF1bHQ9ZX0sMjA4NTQ6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTYzNyA0NDNINTE5VjMwOWMwLTQuNC0zLjYtOC04LThoLTYwYy00LjQgMC04IDMuNi04IDh2MTM0SDMyNWMtNC40IDAtOCAzLjYtOCA4djYwYzAgNC40IDMuNiA4IDggOGgxMTh2MTM0YzAgNC40IDMuNiA4IDggOGg2MGM0LjQgMCA4LTMuNiA4LThWNTE5aDExOGM0LjQgMCA4LTMuNiA4LTh2LTYwYzAtNC40LTMuNi04LTgtOHptMjg0IDQyNEw3NzUgNzIxYzEyMi4xLTE0OC45IDExMy42LTM2OS41LTI2LTUwOS0xNDgtMTQ4LjEtMzg4LjQtMTQ4LjEtNTM3IDAtMTQ4LjEgMTQ4LjYtMTQ4LjEgMzg5IDAgNTM3IDEzOS41IDEzOS42IDM2MC4xIDE0OC4xIDUwOSAyNmwxNDYgMTQ2YzMuMiAyLjggOC4zIDIuOCAxMSAwbDQzLTQzYzIuOC0yLjcgMi44LTcuOCAwLTExek02OTYgNjk2Yy0xMTguOCAxMTguNy0zMTEuMiAxMTguNy00MzAgMC0xMTguNy0xMTguOC0xMTguNy0zMTEuMiAwLTQzMCAxMTguOC0xMTguNyAzMTEuMi0xMTguNyA0MzAgMCAxMTguNyAxMTguOCAxMTguNyAzMTEuMiAwIDQzMHoifX1dfSxuYW1lOiJ6b29tLWluIix0aGVtZToib3V0bGluZWQifTt0LmRlZmF1bHQ9ZX0sMTkyNzM6ZnVuY3Rpb24odix0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTYzNyA0NDNIMzI1Yy00LjQgMC04IDMuNi04IDh2NjBjMCA0LjQgMy42IDggOCA4aDMxMmM0LjQgMCA4LTMuNiA4LTh2LTYwYzAtNC40LTMuNi04LTgtOHptMjg0IDQyNEw3NzUgNzIxYzEyMi4xLTE0OC45IDExMy42LTM2OS41LTI2LTUwOS0xNDgtMTQ4LjEtMzg4LjQtMTQ4LjEtNTM3IDAtMTQ4LjEgMTQ4LjYtMTQ4LjEgMzg5IDAgNTM3IDEzOS41IDEzOS42IDM2MC4xIDE0OC4xIDUwOSAyNmwxNDYgMTQ2YzMuMiAyLjggOC4zIDIuOCAxMSAwbDQzLTQzYzIuOC0yLjcgMi44LTcuOCAwLTExek02OTYgNjk2Yy0xMTguOCAxMTguNy0zMTEuMiAxMTguNy00MzAgMC0xMTguNy0xMTguOC0xMTguNy0zMTEuMiAwLTQzMCAxMTguOC0xMTguNyAzMTEuMi0xMTguNyA0MzAgMCAxMTguNyAxMTguOCAxMTguNyAzMTEuMiAwIDQzMHoifX1dfSxuYW1lOiJ6b29tLW91dCIsdGhlbWU6Im91dGxpbmVkIn07dC5kZWZhdWx0PWV9LDkwMDI5OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDM1NjAzKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMzY3NTQ6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMzM2MDApKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwxOTk1NTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgxMzY3OSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDcxNDc0OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDk4NTU4KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMzI4MzE6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMTE2MTgpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwxNDUyNzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg5MjI4MykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDk0MjYxOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDQyMTk3KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNjM0NTU6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoOTE2NzIpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw0MzA4ODpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgxNTA1OSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDQ2NDQwOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDYwOTMxKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNjk0MzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgyNDgyNSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDQxMzcyOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDQyMTgxKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNTI1Mjg6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMjAyOTMpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw4MTc1OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDYxOTIpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwzNzczNDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg4NTQ0MSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDE5NTIxOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDEyNzY5KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNTExNDY6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoOTYwMTYpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw1MzYzMDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg4NzkzNykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDEzMDY1OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDY3MDU1KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sOTcxMjM6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNjIwMzgpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwxNzY0OTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg2MjIwMykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDcyMjQyOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDYyNDgpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw5MDkzNTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgxMTcwNCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDI5OTYxOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDIyNzU0KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMzQyMTI6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoOTMwOTApKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwzMDA4NDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg1MTE5NykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDYzNTA1OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDczMzg1KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sOTc5MzU6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMzg3MDkpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw5Mjk3NTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg2MzQ1MykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDE2ODY1OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDU5MDk5KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMjAzODg6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNzUwMTMpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw2NTU0NDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgxNTMyNCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDY2NzA5OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDY4NjU0KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNjAwNzc6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoODExNDcpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw3NDk5MjpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg4MzE1NikpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDE1MjM5OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDYwODUzKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNTYzNjM6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNjI1MzMpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw5MzMxNTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg1MzEyOSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDkyNTExOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDIyNjAwKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sODg4MTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg2Njg4NCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDY0ODk0OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDg5MDE2KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMTA5MTI6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNTQwNjIpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw2MDAzNjpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg5NTI2KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMTQ1NTI6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMzkwNTUpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw3NzU5MTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgxODk4NSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDc5MjYyOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDQzNTk3KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sOTAyNDE6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMzg1MDEpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw5MTQxMTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg4NjkwNikpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDc4MTg3OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDU2NTMzKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNzY2MjU6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNDM3NTUpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw2NTEyMzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg4NDAwNSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDUzNDUzOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDQ1ODY0KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNDU3OTk6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMjU0MTMpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw4MzU1NzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg5ODk2OCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDI3OTQ1OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDYxNjIyKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNjU0NzU6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNDkyMzcpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw4ODM0OTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgzNDg0MykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDM2OTUyOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDUxNDQwKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMjU1OTQ6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoOTg2OTYpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw0MDE1MDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgyMTEzOSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDY1NzcyOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDYyNDY2KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNDQ3NzE6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMTA4ODUpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw5Njk2NjpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg4Mzc5OCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDg0ODMxOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDM3MjM3KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMjI2OTY6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoOTg5NTYpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw0NTUzMjpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg1ODU5OCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDkwNzk2OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDI4ODM4KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNjM5OTI6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMTI3MzkpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw1ODkwOTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg3MzYzMikpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDcxODAxOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDMzNzQ0KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNTU1NzM6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoOTYwMTMpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwyMTE1MTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg1OTUyOSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDYxMjIxOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDY2MTc1KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sOTk3NTM6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMjgxNTYpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwzODUxOTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgxNTIxMSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDY2NDczOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDMzODI0KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNzY4NDI6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNTA4NDQpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwzMjI0NjpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg2MTU3MCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDk2NTYyOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDgwMjI3KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMjc2Mjc6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNjg3MzEpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwzMjY3ODpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg1Mzc1MCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDU1MzczOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDYyMzU3KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNzA1Nzk6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoOTc3MDMpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw1NzY0NzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgxNjk1KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNTUwMDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg5MjQxKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNDE1MTc6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNDMyODIpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw2Njk0NzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgzNTIzMCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDgzODcwOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDYwNTY5KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMjY0OTk6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMTcxMjIpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwyOTE6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNDg4MzgpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw0MDc1NDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg2NjQpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw0MTI1NDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg0NTU4KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNDg2OTA6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoOTQ0MikpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDc5OTg2OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDQ0MjIxKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sODA5NTk6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMzMyNzgpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwzMjI1MzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgxMDEyOSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDY0NzU5OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDUwNTQ2KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sODcwNjc6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMzYwNjUpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwyNjQwMTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgzOTUwNSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDc5NTUwOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDQ0NTE1KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sODU0MjY6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNzAxNzgpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw3Nzc0MjpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg3NDMxOSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDUzNTA5OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDE5NzQ0KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNzYwNDg6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNzIwMjUpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwxMjU1NjpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg0MzA0NikpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDU2NzY6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNDE0MjcpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw0NjI3MTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg1MjU0KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNDg3OTk6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNjMwODMpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw4ODc1MjpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg1NDA0NCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDEyNjUwOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDYwMzEpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw4NTY3MzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg5Njg0NykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDUzOTEzOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDIxNTM5KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNTQwMDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg4OTU5OSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDc0NjYyOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDQ3NjkzKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sOTUxODM6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoODUzNjgpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw0ODEzODpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgxNjk3NikpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDkyOTY2OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDQzNzU5KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNzk2ODY6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMjUzMzApKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw4Nzc5MzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg5NTEyOCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDYwNzEzOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDg2ODI5KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNzE3NjY6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoODg3ODEpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwxODA5MzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg2NTgpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwyMDQ1MDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg5NTkzOSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDg5Mzc5OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDE1MTUzKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sODQ3ODpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg5NjkyNCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDg0NDc5OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDU1Nzk4KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMTkzNzA6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMzM1NDkpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw3OTcwMTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg2NTMyOCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDY1NDkyOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDYzNTg3KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNzMzMTA6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoODgzMDIpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw5NTY0MjpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg3ODAxNikpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDE2MzAwOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDg4NzY3KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sODYyNjY6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNjczMDMpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw5MjAxODpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg3NzM4NCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDkwNTg1OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDY4NjkwKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sODM0ODI6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNzkyMDMpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw2MzM2OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDkyMjkxKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sOTUyODY6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNjMxODApKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw0NjAzNTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg2MTk3KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNzIwNzg6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoOTU3NjYpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw0NzcyMTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg5NDUzOSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDM3NzM4OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDk0MikpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDkxNjA6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMjQ3NzMpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwyNDc3NTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgzNTU1NCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDQzMzE6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMTAxNjMpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw5NDI5MzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgyODM1MSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDE0NjY2OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDY4OTE1KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sODgxOTU6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMzUyMDgpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwzOTI3MTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgzNTg4OCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDc2Njk2OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDc1MjkpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw1MDY4NTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgyOTM5NSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDY2MzM4OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDIxMzczKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sOTMxMjE6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNjk0NikpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDQ1NTg3OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDcyMjA1KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMTQzMDc6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoODMzNDYpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw4MTY1MzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgyMWUzKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sOTE1NTM6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoODU1NSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDEzNzA0OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDIwOTAwKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMzc3NjM6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNTA3MjApKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwyOTI1NzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgxODExOSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDYzNTIxOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDU0NTUxKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMjQ1NTg6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNjExNDkpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwxNTI2NzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg2NzEzMCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDg5NzI1OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDgwOTAwKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNjI2ODE6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMzQ1NDMpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwzOTgzMTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg1OTEyMykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDY1MjQ6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNjE1ODApKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw5NTk4NzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg3MTQ4MikpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDYwOTMwOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDkyMzkyKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMjc0Nzg6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoOTk5NjIpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw5MzUxMjpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg3NzQ4NSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDI1MzA5OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDEzMDY4KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMTQ1ODc6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNjc1MjgpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw1NTk4NDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgyMTg4NikpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDIxMzcyOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDkwMDE4KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNjIwNTU6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMTczMDEpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw1Nzk4NDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg4MzY0NykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDU2Nzg3OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDU1MzEpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwzNDE0NjpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg2NjY3KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMzA3NTk6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoODAyMikpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDExOTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg0NTM2MCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDI5Mjk5OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDIwMTIyKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNTQ4MjI6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNjU1MTgpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw2Mzc4MDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg5NzgzOCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDM5MjcyOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDgyMjU4KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNjg5MjpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg2NDMzMikpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDE1NDg1OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDk0NTAzKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMTkzNTE6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNjkzKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sODE3NDU6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoOTEwOTkpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwzNDY5NzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg0MDM0OSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDIzMTY3OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDcwMzA0KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNjMyMzg6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoODE0NTApKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw5MTExNTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg4NjExNCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDQ4NTM1OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDEwNTYwKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMjYyMTM6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMzU4MTUpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw2MTYzNDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg4NTgyNykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDYzMjUzOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDQ4OTMxKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMTMxMzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgzNjM1NikpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDU5ODQwOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDc0ODc2KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sOTg1OTY6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoODAyOSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDQ3NTUwOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDg0MzEzKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMTk3MDI6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoOTMwMDMpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw0Mzg6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNjQ0MDYpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw4NTQ3OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDQ0MTY0KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMTkzNTM6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMTU0MTIpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwzNDc0MzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgzMTYyMSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDkxNTg5OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDM5MzE4KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sODEwOTQ6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMjQ3NzEpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwzNDgzMTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg1Njk1OCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDM0MDI5OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDg1MTcxKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMjEzNjpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg0NzAyNCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDM5NjMwOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDI0MTQxKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMzYwMzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgzMjMzMykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDgyODg2OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDgzMTMwKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMTg4NTI6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNTc2NTkpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw4NDQ1MzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgyN2UzKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNTIxMjg6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNzEzNDEpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw3NjgwNTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg1MjEwMCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDEzNjQzOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDkwNDAxKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNzYyNzk6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoOTMxNzcpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw5NTQ6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNjIxMTEpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw4ODI1MDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg0MTgxOSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDY0NTczOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDE2MTQ1KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sOTAzMjM6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNTQ0MTIpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw1MDk1MDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg5MjY2OCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDc5MjYwOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDU3MjEyKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMjk3OTA6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNDA3MykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDk5Njc3OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDQ0MDUyKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNTMxNDE6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoOTI0NzMpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw0MDI4NzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg1OTQ2MCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDM1MTA4OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDI4ODcyKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sOTAzNDA6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMTc5OTQpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwxMTc4MTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg3NzMzOSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDc2NzIwOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDcyNjUyKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMjE3MTA6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMjIwNSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDg1OTk2OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDczMDY2KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMTY2MjI6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMzM2NzIpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwzMDc0NDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgyNTA3OSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDEyMDE6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMzkxNSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDc2MTQwOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDY4NzkxKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMjkyOTg6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMTA2MjYpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwzNjkzNjpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgzMjE4NSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDMzOTI6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMTkyMzcpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwxODE1MzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg1ODIyNSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDgyOTM2OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDYxMzgyKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMjQ1MTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgxODI0MCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDg5MzY0OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDM2NTY3KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNTg0NTI6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNTc1ODMpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw3ODI3NTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg2MDUpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw2NzcwMTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgzMzI4MikpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDczNzY0OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDI5MjYwKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNDQ1OTQ6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNjQ0MzIpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw3OTYzNjpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgyMzA0MSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDg2NDE2OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDk5NzgzKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sOTIwODQ6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMzE2NjQpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw2ODQxMjpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg2NzgxNCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDk2MTQ2OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDEyODQ2KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sOTU0MzY6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoOTI4NzEpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw5MDk2NDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg1MDY1NykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDc5NzEwOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDY0NDY3KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNzc5OTg6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNzg1MTUpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwzODU1OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDM0OTUwKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMzE5Nzg6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoOGU0KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sODI2Mjc6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNjQ3NTMpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw5NDQwMTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg2NzE1MSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDg5ODgyOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDQwMjQ2KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNTY0NzI6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoOTY2MTApKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwyOTQ1MDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg0MjIyNCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDYwNTY4OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDI1MSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDc3MDE3OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDQ1MjM4KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNzc5NTA6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNDQxMDUpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw1MDcxOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDUyNTU2KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMzQyNjU6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMjU3NzApKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwyMDQ2OTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg3ODAzMikpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDQyNDE5OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDEzODY0KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sOTc3NDY6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNTc3MikpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDkxMjUxOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDkwMDU1KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMzQyODc6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNjMxMzkpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw5NDk1MDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgzNjYxOSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDk2Nzg5OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDM3MTgzKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNjUzMzg6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoODkwNjUpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw2NDA1OTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgzNzEzMCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDkzNDE0OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDIxOTEzKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNDUxNDQ6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMzMzMCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDE1Njc6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNTI5MjkpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwzNjk4NDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg5NDE3MykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDc5MjUxOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDU4ODYpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw5NTQ4NzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg5NDY1NykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDIxNjMyOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDYwMjYwKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sODAzNDc6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMzczODApKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw2NzY4OTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg0MjAwNikpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDIyMjkwOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDYyNDMpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwyNDc3MjpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg0MDU5MikpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDMyMzY6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMzcyMjMpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw2Mzg0OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDcxMjMxKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNzk1MTg6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMTU2NjQpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw3NzE2MzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg3MDAxMCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDYyOTA5OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDYwNDg4KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNDAzODA6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoOTkxMykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDIyMzczOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDMyOTY0KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNzY2MzU6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNzM2ODkpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw3OTAxODpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg3MTQ1NikpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDc2NjE1OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDUyNTc4KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNDU4MDA6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNjk5NzQpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw0NDUwNTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgyOTczKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sODMzMzQ6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoOTQ5MDMpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw4OTA1MjpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg1MTk5MCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDg5ODYyOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDg5NzQ3KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMTk0Mzc6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNTU5OTQpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwxMDE5NDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg4NTIyNikpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDU3NDE6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMTAwMjYpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw0ODIwMTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg1NzUxKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMzc1NzM6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMTQ1NSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDgwODc0OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDg5NTc3KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNjUxMzI6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoODMxOCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDI0NTA4OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDUyMTY1KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMjA0ODE6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNTMwOTQpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw0MDkyMDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg4MDE4NSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDU0NDQ5OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDQ4MjY0KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMTU4Mzk6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoOTM1NjcpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw0NDM6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNDgzNzgpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwyNzA2NTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg2MjQ5OSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDE5MDcyOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDEzNjkpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwyNjM4NDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg1ODgxKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNzAxNzQ6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNDQ2MzcpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwyNTA3NDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgxMjQzOCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDM1NDc5OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDM4NDk1KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNjc1NjY6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoOTE4OTMpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwzODI4OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDY4OTQ4KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNDI1Mjg6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMTUxNTUpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwxOTI3OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDgzNjA4KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMjE2NzM6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNzk4NjEpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwxNDMyODpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg1ODUxMykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDgzODMxOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDEyNzY0KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMzkzNDY6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNjU5MjEpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw0MTM4MjpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg5MDgwOSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDQwMTM5OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDM3NTUpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw4MzU1NTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg3MDg3MCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDkyMDA5OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDQ2Mzk4KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMTk3NjI6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMzc3NDMpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw3ODcxNzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg0MzgzNSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDY1NzI0OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDkzMDYzKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNzg6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMzkwMjIpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw0MDc5MDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgxNjEyMCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDE0NDE3OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDIyODA1KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNjgwODQ6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNDE5NzMpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw5MjI4MDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg1MTU0MSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDcwODU4OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDc2OTg2KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMjI3MDI6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoOTY1ODUpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwyMjE0NzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg3NDg2MykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDEyMDY2OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDY0NjIzKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMzIxOTQ6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNDE5NTQpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw0NjI5NDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgzMzEyNikpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDcxNzcyOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDUxNDQzKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMjcwMDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgyNjk2NykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDI1ODMwOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDQwMTA5KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMjMxMjM6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoODM2NDUpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwxNzI2NDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg1NDQ1OSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDQwMTA6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNzI1MjMpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw3MzI2NTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg5MzUyMCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDgzODQ4OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDg5NTk3KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNTEzMDk6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNzA0KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sODg4MzU6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNzY5NikpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDYwNTgxOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDkyODI3KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNTQ4MzE6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoODU2OTcpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwzNTY1NzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg3MDI1MCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDk1NTcyOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDU5NjA2KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMjgwOTc6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNjI5NTApKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw1NTI5NzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgxNzQzNCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDE2NzcyOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDEzMjU4KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNzQ0MjM6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNDg4MTEpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwyMjU0MjpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgyMDc3MSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDc2OTYxOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDcwNjM5KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMzEwNDc6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMzEwNikpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDQyNjk2OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDUyNjE4KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sODg4MTc6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoOTA1NjkpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw1Mzc0MjpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgzOTE2OCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDQ3NzU5OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDMxNDAzKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMjYyNzg6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNjE0NzEpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwyMTM1ODpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg1NDMwKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMzY0MzU6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNTI0NjIpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwyMjYyMDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg1NDE4MykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDI1NTYxOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDE2MjYwKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMjQxMTg6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMTU2NzApKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw5ODg5MzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg0MDA3MCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDMwOTU5OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDk2NzE3KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMzQ5MTA6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMTAxMjApKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw5NTc5MTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgyNzExOCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDQ5Njc5OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDYwMzIzKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMjIzODY6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNTc3MzkpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw0NDI2OTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgzODIzMikpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDQ1MjkxOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDcxMzA2KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNDM4MzQ6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoOTI0ODApKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw2NDg2MDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg1MzUwOCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDk4Mzg0OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDM1MDI1KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNjk5NTg6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoODk5NDMpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw4NzY2MzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgzOTEwOSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDIxNTI0OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDMzMTkwKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNzc0MjU6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoOTkzOTQpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw2NjYyOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDUxNzgxKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNDQxMjU6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMzc2NjUpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw4ODA0OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDUzNzE0KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sOTI2MTE6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNjQyNjkpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw1NTM5MzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgzMzY5NikpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDg1MTE6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNTU5MjMpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw1MDA1OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDQzNDIwKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sODEwMzk6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNzAzODkpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw3MzQxMTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg4Mzk4MikpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDEwOTAwOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDc2NTYpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw2OTYwOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDY1MTEpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw3NzQxOTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg2OTM0NykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDE4MDU5OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDg0NzM4KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMzQ1MTE6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMTc2NTUpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw5ODA2ODpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg1NDc3KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNjM0MDA6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNDM3MTQpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwzMzIzMjpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgxNDMyNCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDQ4ODM3OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDI4NDAzKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMTYxMzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg0NTk3MikpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDc1NzI5OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDMyOCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDQ0NzYwOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDQ1NjA0KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMTkzNjk6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMjIxMTcpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw0NjU2NDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgxNTM2OSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDM0MTA2OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDIwNzAyKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNDMzNDA6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNTY0NjcpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw1MTczOTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg0MzE0NykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDEyOTQ6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMjM0OTcpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw1OTQ1MDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg5NTk3NCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDc0NzUzOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDk3MDc2KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNzA3OTQ6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNTc3MTEpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw0Njg0MjpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg3ODQ5OSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDI2MDU3OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDk1NzI5KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNTUyNDU6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNDMwNTIpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw2MjI2OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDgzNDkwKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNzk4MTQ6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMjcyOCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDM3Mzk5OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDk4ODIwKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNjM2NDY6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoOTMyMzMpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw4ODY6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMzg2OTMpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwyNTY2NTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgyMjA4KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNDA3OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDY2MTQyKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMzI0OTc6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMjE2NTcpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw2Mzc5NTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgzMDUzMCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDg0MzExOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDcwOTIpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw5MjQ5NDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg1OTkyOCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDY5NDk3OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDQ4MzI0KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sODAzMjpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgzMjk3OCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDc5MjY1OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDIxOTE4KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNjkyNjQ6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMzgxMTUpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw4NjY1NjpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg3NjYyMCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDE3NTk2OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDUxMjU1KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMjA1MTY6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMjM5NzMpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw3NTAwOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDY1OTQpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwzNTU2OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDYyMzAwKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNTk4NjpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg2Mzk5OCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDQ3ODk4OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDg2NTg4KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNTc4MzQ6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNzA3ODkpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwyNTc1NjpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgxMTk2MikpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDQ3NzU3OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDMyODAyKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMzQ3MDA6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNTI2MCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDY4MjA5OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDczNTIwKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMjAzNDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg4ODUwNSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDIzNTM0OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDYzNzAxKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMjc5ODQ6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMjUxNjIpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwyMjk2MjpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg1MzU2OCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDU4NDA3OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDMyMzQ3KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNzg1OTU6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoODE3NTIpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw0ODUxOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDI1ODI4KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNTAyMDE6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoODQ1NTApKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw3OTczOTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgzMTY4MikpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDE2NjU6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMzIwMTcpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwyMjM0NTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg2MzEpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw3ODM5MDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgzNzQ2MykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDU5ODE0OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDg0NDgwKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sODkzNDI6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNzYyNTApKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw0Njk5OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDIxNTQpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw5NDExOTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg4MDc1NCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDY0NTI5OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDE4OTcxKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNzU2NzY6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNzQzMDkpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw0Mzk4OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDIxMTI2KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNzg1OTc6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNzQwMTgpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw5NDQ4MDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg1NjU2OCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDIzNDg1OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDUyMzM0KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sODY5NTk6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNjE0MjEpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw0NzYwNDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgyNjA3KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNjM5MDg6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNzk3NDUpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwzNzcwMjpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg3NzExNSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDk4NjE3OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDUyOTUyKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNjU2MDk6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMTMzODgpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw1MjkyNDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg3OTczNykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDc1NzQ2OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDYzMzk0KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMjcxNjc6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNjIyNjYpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw0NzUzNzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg4MzM2MykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDE2ODY6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNzAzNTApKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw3NTIxMTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg4MzEyMykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDg3NjI6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoOTk4NDApKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw4MzQ1MjpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg3MjA0OCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDE2NDY2OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDc0NTQxKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sODg0MzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg5Mjk3OSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDEyMzYyOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDg5NTY5KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMzEzMDU6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMzM2OTgpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw0MzE4NzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg5OTkyKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sODMyMDA6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNTIzNDYpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw2NjM0MjpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg1MjM2NCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDMxMzUyOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDI2OTI2KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNjM3NTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgzMDc3OSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDgzMDI3OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDYzMDEwKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMzQ3Njg6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNzY5NTUpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwzODEyNjpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg5OTA1MCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDEwMTU2OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDY3MTMpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw4NTc3MDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgxMjQ4OSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDQzMzUyOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDMyNzgxKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMjk3MTc6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoOTgwMjEpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw1NjgwMzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgxMTkyNSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDQ3MjQyOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDgyOSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDk0NjYyOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDEwMzUzKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMzgzNzU6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoODI4OTIpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwyMTk0ODpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg0OTI0NSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDYyODIzOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDk1NTA4KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMTA1MjY6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMzYzMDMpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw3MzcyMTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgyOTM1MykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDE0NTQyOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDMyODg3KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNzkzNTA6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNDEyNDIpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwyMjI0MDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg3NjUwMCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDU4MDY1OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDQxNzc3KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNDI1MDk6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNTU2MjUpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw1MzU0NTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg0MzQ5MSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDUzNTk4OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDc1MjQyKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMzMzMjpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg1MDU1NCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDk5NjIzOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDQ4NzEyKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNTQyOTU6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMjUwMDEpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw4NzkyMjpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg2MTQ2OCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDkwNzczOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDI1Njk0KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNjc0Njc6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoOTE5OTcpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw5Njk1ODpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgzNjIxNykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDcyMTIzOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDgzODIxKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMzUwNDQ6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNDU5NDUpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw0ODcxNTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgzODE3MikpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDI0NzMyOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDEyMTY5KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNjA4OTI6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNDE4NjMpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwxNDMyMTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg1MTgzMCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDUzMDg0OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDk2NzM5KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sOTc4MTI6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMTY4MjApKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw5NzEwNDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg3MjI3MykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDQxOTcwOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDM3MTUzKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNzA5NzA6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoOTg5MDcpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwyMjU1NTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg4Njc2MSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDk2NjIxOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDQ4NTA1KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMjUzNTg6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMTMyODYpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw4MjUzMDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg3NjkwNykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDg4MjE1OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDYyODE0KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNzgzMjc6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoOTY0MzEpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw1MjA1MTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg4NzMyNCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDE5NzkxOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDM3MjMyKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMzk3ODU6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNTU4ODApKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwxNjM5MTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg1NTA4KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sODMxOTk6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMjE5ODgpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw5MTU4OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDU2MzMwKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNjEwOTM6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMzU1MTEpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwxODkxNDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg1NzMzMykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDMyNjE1OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDU3MDk2KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMTY3MDI6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNzQwMjIpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw5MTg3MzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgyODcwNikpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDg0MTY5OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDM5NzE1KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNjk4NjA6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoOTczMjUpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw3NDM1MzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgzMDM0MykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDczMDQyOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDgyMzI5KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNDY0NjpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg3OTI0NikpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDkyNjg6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoOTA5MSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDY4NzY2OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDUzMDcyKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNDc1MjpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg0NzY2MikpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDY4MjYxOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDQ5NTE1KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMzIzMzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg2Nzg5MykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDgwNzAwOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDQ3MTg3KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNzE2MTg6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNDQwNzEpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw4MDAyMzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgzODk4MikpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDUwMjQ6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMTI2MzApKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwyNTk0MzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg4ODA2MikpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDQ0ODg4OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDkwNTg4KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMjU4MDk6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNjI2MTkpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwyMzgzMDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg3ODUwNCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDMxMDU3OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDc3NzgzKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMjY4NDg6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoOTAwNjEpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw3ODc5OTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgzNjA1MCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDI1MTUzOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDM1NTc1KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sOTQ3MDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgxNDA1OSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDgyNDY3OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDk0NTU0KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNTAzNTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg3NDA5OCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDYxNjcwOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDEwOTk5KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNTI0MjQ6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoODgxMzMpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwxMDk4MTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgyNDk5MykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDQ4NjA6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNDI1MjYpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw2MDI1OTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg3OTQ0OSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDU0NDM0OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDM0NjA3KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNjUzMDM6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMjUxNTIpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw3MzkyOTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg4MzQ4NykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDMxNzA5OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDI4NDQ1KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMTMyMzE6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNTA2NDApKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw5MzQzNzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg5NzAyNykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDUyODc4OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDk4NzAxKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNjY5MTI6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoODE5MzApKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwyOTA1MTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg1ODMwKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNDU2MTU6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNjY2MTgpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw0MTI4MTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg1MjY4MykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDM3NzQwOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDU1Njk4KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNTcwMjY6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNDc4MSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDE2ODE5OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDE3Mjg3KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMzc5NjQ6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoOTM2NzkpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw2MzU4MjpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgyOTk2MikpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDg1OTA0OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDU3MzY1KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNzUzODI6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMzIzMDkpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw0ODgyMTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg5NjI5KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNzgwNzk6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNDY3MTcpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwzOTg4ODpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg0NTY1KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sODA4NDI6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNjA5NTApKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw2OTU2MjpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg2NjAzOCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDY1MjYzOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDk4MzMzKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNzM5MTg6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMzcxNjEpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwyMDg5MTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg2NjYzNikpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDc4MTUzOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDMwMTcxKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNTgyNDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgxMzI0NikpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDU4MjEzOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDYyODQ5KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sODY5OTQ6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNzczMDcpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw5NTE4OTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg0NjQwMikpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDExMDg0OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDYyNjg2KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sOTg4NTM6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMjk3OTQpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw3MDU4MzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg3NjI3NykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDU3MjE3OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDIyOTk3KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMjQzNDI6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNjY4NDEpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw0ODA2NTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg0NDk4OCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDQ2NjUwOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDU2ODQzKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNjEwMDE6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNDIxNDApKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwyNDgyMDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg0NDYyKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sODI0MTA6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNzc5NTIpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw5NDg3MzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg2MDI4MykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDkxOTMwOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDkxNjI2KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMjM1MzU6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoOTM2OTEpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwxMDA4NjpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg5NTk3NSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDUzNTQ0OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDU1MDA2KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sODQ5ODE6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNTQxMzQpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw1NDQwNzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg0NDc1OSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDUxOTQyOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDUxNTgzKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNDA0MTA6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMzkzOTEpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw0OTA0NjpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg1ODc1OSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDEzODA6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMjMyMTcpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw3OTI3MDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgzNTk3NCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDkwMDY2OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDEzNTQpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw4MTQ1MTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg5MDU4NikpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDc3Mzc6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNjY1OTgpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwyMzk1NjpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg1NDQyMykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDY0ODE2OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDg0ODU5KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMzQxOTY6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoOTEzNDUpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw1NTUwODpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg3NDA4MykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDg4NDgyOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDQyMzk5KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMzUxNzM6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMjk4OTYpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwzNTc0MTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg1MjY1NykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDE5MzgzOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDYwMDc1KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sOTUwOTY6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMjQ2OTUpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw2OTY1MDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg0NTg0MykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDYwNjpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg4MTM5KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNzc1MDM6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMjM5NCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDEyNDk6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNDYxOTEpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw0MjQ1OTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgyODUyOSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDkyODQ6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNjc1NTcpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwzMzk4NzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg5MTQ3MCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDc1MzM4OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDUzOTY2KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNTU1MzE6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNTI0NDQpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwyMzIzMDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg0MTA4MCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDcyMDk6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNjE2NDEpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw2NTkxNTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgzNzQwNCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDIwMDI2OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDYyNzI1KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNDg3NTc6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMzAwNTUpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw3Nzc4ODpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgxMDU2OSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDMzNTQ2OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDY3Mzc1KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNjIxNzQ6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNzgwOTQpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw2MzcyMjpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg1MzI2MCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDgzOTM4OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDU4MzIxKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sODAwMTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg1MDIxNSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDQyODgyOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDc3ODU4KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMTE3ODU6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNDkxMDQpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw2MjgzMDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg1MTA0MikpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDc0Mzk6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNjk5NTApKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw1OTA2NTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgyNjc2MCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDE3OTIxOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDU4MTEzKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMTk4MDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg4NTEyOSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDU0NjI2OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDkwMDM0KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNTk4Nzc6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMzE1NjUpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwzMTcxODpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg3NTYzMSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDk3MzYyOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDQxNTg1KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNTY3OTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg2Mzc2NikpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDc0NDU3OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDkyNTc1KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMzY5NTM6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNjU0MzUpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw1MjAxODpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgxMzU0NCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDM2MTI2OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDY3MjgxKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNDU0NjM6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNjE0NjEpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw3NTgzNDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg5NzA2MykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDcxOTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg3Mjc2NikpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDE3NjU6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMTY1MjkpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw1MzU0MzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg5NjkxMikpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDkzOTU5OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDYzNTE2KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMzk0NzY6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMTUwNzUpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw5NTQ4ODpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgzMjEwKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNjMwMzE6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoODEwNzYpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwxNDY3MTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg0ODUyMikpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDcxNDM3OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDUyNDg0KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sODczNDg6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMTgzOTEpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw1ODU0MTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgzMjc0KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNzUwNTQ6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoOTU5MzIpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwxMTc1NzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg3MjM0MykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDI3NDUyOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDQ3ODgyKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sOTYyNjc6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMTE0NTEpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwyNTI1NjpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgzOTYzNykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDQ2MDc3OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDc3MTgwKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNTMyNzc6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNjUwNjIpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwxNzQ5OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDM1NDM1KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sODYxMzY6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMzg0ODYpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw1MjI2MTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg4OTkxMCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDg2OTU2OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDkzMzQyKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNDkwMzE6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNDA1MDQpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwxNDI5ODpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg2MjQpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw3NTY5OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDg5MTM0KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMzIzNjQ6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoOTEzMDgpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwxMTIzMDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgyNDA5NSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDkyMTY3OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDM4NzgzKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNzczNjc6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoOTA5ODEpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwzOTU3NDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg4NjEyNikpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDkyNTg6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoOTg0NTMpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw3NzQ3OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDgwNjk5KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNjA2MDY6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoOTQ4MTkpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwxNzE2MDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg2MjkyMSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDMxOTQ6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNzUzMzYpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwyOTcyMzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgxNjg0NikpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDM1Mzc1OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDI4MTg1KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNDgxNjU6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNTI2MjgpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwyNDYwMzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg0ODUxNSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDc1MjY6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoODg2NDMpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwyMDUzODpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg1NjA2NykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDk5NTQ3OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDkwNzkwKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNzI3MDg6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMTkwNzMpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw4MzA4OTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgzMDk4MikpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDQ2OTcwOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDQ0NDk2KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNjUxOTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgzODM3MCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDE4OTQ1OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDczNTIyKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNTA4NDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg5MjEyNykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDgyNDAwOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDE4NDA2KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sOTEzMjI6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNTUxOTMpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwxMjMyMjpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg2OTMwOCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDU1NzIwOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDYzNTYwKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMjQ2NTY6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNTU5NDYpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw1NTk1NjpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgyNTA1OCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDEwMDQ4OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDczMzAxKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNzA1MDk6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNDg4NDgpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw2MTkzMzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg5NDIzOSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDUwNzIxOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDY5NTQyKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMzE0NzE6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoODI1MzcpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw0ODQyOTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgyMzU0NykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDQyMzA0OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDY2NDA4KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNDg0OTA6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNzA2MTcpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw1OTg5MDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg4Njc2NikpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDYxMzY2OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDExMjc1KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNjY4OTI6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoODYxMzgpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwzOTkyODpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg0OTA3MikpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDQ1MzczOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDEyMjkzKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNzEwODI6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNjAwMDcpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw4OTIxNjpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg3NjA5MCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDE3MTA3OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDI5MjkzKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNTMzNDI6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoOTczNSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDY2MTUyOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDQ1Nzg0KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sOTc0NzY6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNDUxNzQpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw0Mzk1NjpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgzMjEwOSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDE1NzM3OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDkzMjgyKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNjYxNDc6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMjAzNzkpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwxMzQ0NzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg3Njg2NCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDIzOTEwOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDE1NDUxKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNTY2MTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgyNjgwMykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDI0ODkwOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDg1NDc1KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNTI5ODM6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNDE0MDUpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwyMzEwMzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg1NzgyNSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDM1ODU1OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDkwMzA2KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMjE1MTg6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMjMwMjgpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw1NTgyMjpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgxOTU5MSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDU5NjYxOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDUwMjkzKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMzI3NDY6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNDg1ODgpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw4MjA5ODpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgzMDA0MykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDQ2NDAzOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDgwMDgzKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNTA5OTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgxMTc3NikpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDIzMTQ3OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDUyMjcxKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sODcwMzk6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMjI5NzIpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwxMzEwNDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgyODcwMSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDU4ODA2OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDM3NzExKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNDQ3MzI6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNDIwNjUpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwzOTkwNjpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg0MTA4NSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDI4NDMwOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDgzNjM2KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMjY5MTA6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMzExMDIpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwyNzMwMjpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg2NjQ1MykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDk5Njc5OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDE4OTk1KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNTkxODA6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMzk4NzcpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw2NDkxMjpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgxMzE5NykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDUxNDgwOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDY0NzA0KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNTcwNDA6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNTQ0MDMpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwxMjg4NTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg1Njg2MykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDE4NzgxOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDY2NzY0KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMzM2NDk6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNTU0NDApKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw1NTkwNTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg2NzU5NSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDQ2Mjg1OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDg0NDg5KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMzAzOTI6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMzc5NykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDM4Njc1OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDM1NjY1KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMjEwNjI6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNjU4ODIpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwxOTg3NzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg4OTU5MSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDMwODg0OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDEwNDEpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw4Mjg4OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDU1ODIpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw2MjY2MDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg1OTY2OSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDUzNTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg3MjUwOSkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDQ4MjI2OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDMxNzg0KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMTcxNDA6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoOTI5ODMpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw1NTE2OTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg2OTUzNykpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDg3ODgxOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDgwNjUxKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMzkwODM6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNDMxOTYpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwxNzEzMzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg2MzE5KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMzU2MzQ6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoOTQ5NzQpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwzOTgwMjpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgyMjQ0MCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDY4NjcyOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDE0NjIxKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNzM4NDE6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoNzA3NjUpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwzMjc0NDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg2MDMpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwxOTc1OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDQ2Mzg1KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sODcyODE6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMTE5NTQpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw4MjM3OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDk5OTc0KSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sMTM2Mjg6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNzUyNjMpLmRlZmF1bHQsYT1lKDY0ODM2KS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZSgxMDQzNCkpLGQ9bChlKDY3Mjk0KSksdT1hKGUoMjM0NDYpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSwxMDAxMTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSg3NjkpKSxmPWEoZSg5MjA3NCkpLGM9ZnVuY3Rpb24obyxpKXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGYuZGVmYXVsdCwoMCxuLmRlZmF1bHQpKHt9LG8se3JlZjppLGljb246dS5kZWZhdWx0fSkpfSxyPWQuZm9yd2FyZFJlZihjKSxoPXQuZGVmYXVsdD1yfSw2NTg0ODpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSg3NTI2MykuZGVmYXVsdCxhPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG49YShlKDEwNDM0KSksZD1sKGUoNjcyOTQpKSx1PWEoZSgyMDg1NCkpLGY9YShlKDkyMDc0KSksYz1mdW5jdGlvbihvLGkpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZi5kZWZhdWx0LCgwLG4uZGVmYXVsdCkoe30sbyx7cmVmOmksaWNvbjp1LmRlZmF1bHR9KSl9LHI9ZC5mb3J3YXJkUmVmKGMpLGg9dC5kZWZhdWx0PXJ9LDM0NDYzOmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDc1MjYzKS5kZWZhdWx0LGE9ZSg2NDgzNikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj1hKGUoMTA0MzQpKSxkPWwoZSg2NzI5NCkpLHU9YShlKDE5MjczKSksZj1hKGUoOTIwNzQpKSxjPWZ1bmN0aW9uKG8saSl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChmLmRlZmF1bHQsKDAsbi5kZWZhdWx0KSh7fSxvLHtyZWY6aSxpY29uOnUuZGVmYXVsdH0pKX0scj1kLmZvcndhcmRSZWYoYyksaD10LmRlZmF1bHQ9cn0sNjI4MTY6ZnVuY3Rpb24odix0LGUpe3ZhciBsPWUoNjQ4MzYpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJBY2NvdW50Qm9va0ZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGEuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQWNjb3VudEJvb2tPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG4uZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQWNjb3VudEJvb2tUd29Ub25lIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJBaW1PdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHUuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQWxlcnRGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBmLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkFsZXJ0T3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBjLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkFsZXJ0VHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHIuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQWxpYmFiYU91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gaC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJBbGlnbkNlbnRlck91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcy5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJBbGlnbkxlZnRPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG8uZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQWxpZ25SaWdodE91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gaS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJBbGlwYXlDaXJjbGVGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBQLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkFsaXBheUNpcmNsZU91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJBbGlwYXlPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHouZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQWxpcGF5U3F1YXJlRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gUi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJBbGl3YW5nd2FuZ0ZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFQuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQWxpd2FuZ3dhbmdPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFYuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQWxpeXVuT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBPLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkFtYXpvbkNpcmNsZUZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGcuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQW1hem9uT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBILmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkFtYXpvblNxdWFyZUZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHkuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQW5kcm9pZEZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEkuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQW5kcm9pZE91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gQy5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJBbnRDbG91ZE91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gQS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJBbnREZXNpZ25PdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEYuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQXBhcnRtZW50T3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBiLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkFwaUZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEwuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQXBpT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBqLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkFwaVR3b1RvbmUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBELmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkFwcGxlRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gQi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJBcHBsZU91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gUy5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJBcHBzdG9yZUFkZE91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gRS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJBcHBzdG9yZUZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFcuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQXBwc3RvcmVPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFUuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQXBwc3RvcmVUd29Ub25lIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gRy5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJBcmVhQ2hhcnRPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFouZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQXJyb3dEb3duT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBRLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkFycm93TGVmdE91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJBcnJvd1JpZ2h0T3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBLLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkFycm93VXBPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFkuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQXJyb3dzQWx0T3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBKLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkF1ZGlvRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJBdWRpb011dGVkT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiAkLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkF1ZGlvT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB3LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkF1ZGlvVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHAuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQXVkaXRPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHguZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQmFja3dhcmRGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBrLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkJhY2t3YXJkT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBxLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkJhaWR1T3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBfLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkJhbmtGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBlZS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJCYW5rT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0ZS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJCYW5rVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGFlLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkJhckNoYXJ0T3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBsZS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJCYXJjb2RlT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBkZS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJCYXJzT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBuZS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJCZWhhbmNlQ2lyY2xlRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdWUuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQmVoYW5jZU91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZmUuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQmVoYW5jZVNxdWFyZUZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNlLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkJlaGFuY2VTcXVhcmVPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHJlLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkJlbGxGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBvZS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJCZWxsT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBpZS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJCZWxsVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHZlLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkJnQ29sb3JzT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBzZS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJCaWxpYmlsaUZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGhlLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkJpbGliaWxpT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBtZS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJCbG9ja091dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZ2UuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQm9sZE91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gT2UuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQm9va0ZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFJlLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkJvb2tPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE1lLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkJvb2tUd29Ub25lIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gemUuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQm9yZGVyQm90dG9tT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBQZS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJCb3JkZXJIb3Jpem9udGFsT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB5ZS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJCb3JkZXJJbm5lck91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gamUuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQm9yZGVyTGVmdE91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSGUuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQm9yZGVyT3V0ZXJPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFRlLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkJvcmRlck91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gRmUuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQm9yZGVyUmlnaHRPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFZlLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkJvcmRlclRvcE91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSWUuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQm9yZGVyVmVydGljbGVPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIENlLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkJvcmRlcmxlc3NUYWJsZU91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gQWUuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQm94UGxvdEZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGJlLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkJveFBsb3RPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIExlLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkJveFBsb3RUd29Ub25lIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gRGUuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQnJhbmNoZXNPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEJlLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkJ1Z0ZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFNlLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkJ1Z091dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gRWUuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQnVnVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFdlLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkJ1aWxkRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gVWUuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQnVpbGRPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEdlLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkJ1aWxkVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFplLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkJ1bGJGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBRZS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJCdWxiT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBOZS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJCdWxiVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEtlLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkNhbGN1bGF0b3JGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBZZS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJDYWxjdWxhdG9yT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBKZS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJDYWxjdWxhdG9yVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFhlLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkNhbGVuZGFyRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gJGUuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQ2FsZW5kYXJPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHdlLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkNhbGVuZGFyVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHBlLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkNhbWVyYUZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHhlLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkNhbWVyYU91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4ga2UuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQ2FtZXJhVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHFlLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkNhckZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIF9lLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkNhck91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZTQuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQ2FyVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHQ0LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkNhcmV0RG93bkZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGE0LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkNhcmV0RG93bk91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbDQuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQ2FyZXRMZWZ0RmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZDQuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQ2FyZXRMZWZ0T3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBuNC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJDYXJldFJpZ2h0RmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdTQuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQ2FyZXRSaWdodE91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZjQuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQ2FyZXRVcEZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGM0LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkNhcmV0VXBPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHI0LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkNhcnJ5T3V0RmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbzQuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQ2FycnlPdXRPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGk0LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkNhcnJ5T3V0VHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHY0LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkNoZWNrQ2lyY2xlRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gczQuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQ2hlY2tDaXJjbGVPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGg0LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkNoZWNrQ2lyY2xlVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG00LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkNoZWNrT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBnNC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJDaGVja1NxdWFyZUZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE80LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkNoZWNrU3F1YXJlT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBSNC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJDaGVja1NxdWFyZVR3b1RvbmUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBNNC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJDaHJvbWVGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB6NC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJDaHJvbWVPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFA0LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkNpQ2lyY2xlRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4geTQuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQ2lDaXJjbGVPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGo0LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkNpQ2lyY2xlVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEg0LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkNpT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBUNC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJDaVR3b1RvbmUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBGNC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJDbGVhck91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gVjQuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQ2xvY2tDaXJjbGVGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBJNC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJDbG9ja0NpcmNsZU91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gQzQuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQ2xvY2tDaXJjbGVUd29Ub25lIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gQTQuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQ2xvc2VDaXJjbGVGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBiNC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJDbG9zZUNpcmNsZU91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTDQuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQ2xvc2VDaXJjbGVUd29Ub25lIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gRDQuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQ2xvc2VPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEI0LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkNsb3NlU3F1YXJlRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gUzQuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQ2xvc2VTcXVhcmVPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEU0LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkNsb3NlU3F1YXJlVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFc0LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkNsb3VkRG93bmxvYWRPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFU0LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkNsb3VkRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gRzQuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQ2xvdWRPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFo0LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkNsb3VkU2VydmVyT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBRNC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJDbG91ZFN5bmNPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE40LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkNsb3VkVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEs0LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkNsb3VkVXBsb2FkT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBZNC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJDbHVzdGVyT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBKNC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJDb2RlRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWDQuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQ29kZU91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gJDQuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQ29kZVNhbmRib3hDaXJjbGVGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB3NC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJDb2RlU2FuZGJveE91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcDQuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQ29kZVNhbmRib3hTcXVhcmVGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB4NC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJDb2RlVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGs0LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkNvZGVwZW5DaXJjbGVGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBxNC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJDb2RlcGVuQ2lyY2xlT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBfNC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJDb2RlcGVuT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBlMS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJDb2RlcGVuU3F1YXJlRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdDEuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQ29mZmVlT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBhMS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJDb2x1bW5IZWlnaHRPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGwxLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkNvbHVtbldpZHRoT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBkMS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJDb21tZW50T3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBuMS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJDb21wYXNzRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdTEuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQ29tcGFzc091dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZjEuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQ29tcGFzc1R3b1RvbmUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBjMS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJDb21wcmVzc091dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcjEuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQ29uc29sZVNxbE91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbzEuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQ29udGFjdHNGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBpMS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJDb250YWN0c091dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdjEuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQ29udGFjdHNUd29Ub25lIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gczEuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQ29udGFpbmVyRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gaDEuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQ29udGFpbmVyT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBtMS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJDb250YWluZXJUd29Ub25lIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZzEuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQ29udHJvbEZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE8xLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkNvbnRyb2xPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFIxLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkNvbnRyb2xUd29Ub25lIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTTEuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQ29weUZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHoxLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkNvcHlPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFAxLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkNvcHlUd29Ub25lIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4geTEuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQ29weXJpZ2h0Q2lyY2xlRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gajEuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQ29weXJpZ2h0Q2lyY2xlT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBIMS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJDb3B5cmlnaHRDaXJjbGVUd29Ub25lIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gVDEuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQ29weXJpZ2h0T3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBGMS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJDb3B5cmlnaHRUd29Ub25lIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gVjEuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQ3JlZGl0Q2FyZEZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEkxLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkNyZWRpdENhcmRPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEMxLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkNyZWRpdENhcmRUd29Ub25lIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gQTEuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQ3Jvd25GaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBiMS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJDcm93bk91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTDEuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQ3Jvd25Ud29Ub25lIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gRDEuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQ3VzdG9tZXJTZXJ2aWNlRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gQjEuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiQ3VzdG9tZXJTZXJ2aWNlT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBTMS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJDdXN0b21lclNlcnZpY2VUd29Ub25lIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gRTEuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRGFzaE91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gVzEuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRGFzaGJvYXJkRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gVTEuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRGFzaGJvYXJkT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBHMS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJEYXNoYm9hcmRUd29Ub25lIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWjEuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRGF0YWJhc2VGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBRMS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJEYXRhYmFzZU91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTjEuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRGF0YWJhc2VUd29Ub25lIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSzEuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRGVsZXRlQ29sdW1uT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBZMS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJEZWxldGVGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBKMS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJEZWxldGVPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFgxLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkRlbGV0ZVJvd091dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gJDEuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRGVsZXRlVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHcxLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkRlbGl2ZXJlZFByb2NlZHVyZU91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcDEuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRGVwbG95bWVudFVuaXRPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHgxLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkRlc2t0b3BPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGsxLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkRpZmZGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBxMS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJEaWZmT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBfMS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJEaWZmVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGUyLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkRpbmdkaW5nT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0Mi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJEaW5ndGFsa0NpcmNsZUZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGEyLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkRpbmd0YWxrT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBsMi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJEaW5ndGFsa1NxdWFyZUZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGQyLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkRpc2Nvbm5lY3RPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG4yLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkRpc2NvcmRGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB1Mi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJEaXNjb3JkT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBmMi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJEaXNsaWtlRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYzIuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRGlzbGlrZU91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcjIuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRGlzbGlrZVR3b1RvbmUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBvMi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJEb2NrZXJPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGkyLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkRvbGxhckNpcmNsZUZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHYyLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkRvbGxhckNpcmNsZU91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gczIuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRG9sbGFyQ2lyY2xlVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGgyLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkRvbGxhck91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbTIuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRG9sbGFyVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGcyLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkRvdENoYXJ0T3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBPMi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJEb3ROZXRPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFIyLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkRvdWJsZUxlZnRPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE0yLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkRvdWJsZVJpZ2h0T3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB6Mi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJEb3duQ2lyY2xlRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gUDIuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRG93bkNpcmNsZU91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4geTIuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRG93bkNpcmNsZVR3b1RvbmUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBqMi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJEb3duT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBIMi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJEb3duU3F1YXJlRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gVDIuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRG93blNxdWFyZU91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gRjIuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRG93blNxdWFyZVR3b1RvbmUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBWMi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJEb3dubG9hZE91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSTIuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRHJhZ091dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gQzIuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRHJpYmJibGVDaXJjbGVGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBBMi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJEcmliYmJsZU91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYjIuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRHJpYmJibGVTcXVhcmVGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBMMi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJEcmliYmJsZVNxdWFyZU91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gRDIuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRHJvcGJveENpcmNsZUZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEIyLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkRyb3Bib3hPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFMyLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkRyb3Bib3hTcXVhcmVGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBFMi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJFZGl0RmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gVzIuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRWRpdE91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gVTIuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRWRpdFR3b1RvbmUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBHMi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJFbGxpcHNpc091dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWjIuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRW50ZXJPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFEyLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkVudmlyb25tZW50RmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTjIuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRW52aXJvbm1lbnRPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEsyLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkVudmlyb25tZW50VHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFkyLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkV1cm9DaXJjbGVGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBKMi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJFdXJvQ2lyY2xlT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBYMi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJFdXJvQ2lyY2xlVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuICQyLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkV1cm9PdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHcyLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkV1cm9Ud29Ub25lIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcDIuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRXhjZXB0aW9uT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB4Mi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJFeGNsYW1hdGlvbkNpcmNsZUZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGsyLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkV4Y2xhbWF0aW9uQ2lyY2xlT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBxMi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJFeGNsYW1hdGlvbkNpcmNsZVR3b1RvbmUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBfMi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJFeGNsYW1hdGlvbk91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZXQuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRXhwYW5kQWx0T3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0dC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJFeHBhbmRPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGF0LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkV4cGVyaW1lbnRGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBsdC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJFeHBlcmltZW50T3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBkdC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJFeHBlcmltZW50VHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG50LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkV4cG9ydE91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdXQuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRXllRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZnQuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRXllSW52aXNpYmxlRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY3QuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRXllSW52aXNpYmxlT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBydC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJFeWVJbnZpc2libGVUd29Ub25lIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gb3QuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRXllT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBpdC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJFeWVUd29Ub25lIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdnQuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRmFjZWJvb2tGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBzdC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJGYWNlYm9va091dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gaHQuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRmFsbE91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbXQuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRmFzdEJhY2t3YXJkRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZ3QuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRmFzdEJhY2t3YXJkT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBPdC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJGYXN0Rm9yd2FyZEZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFJ0LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkZhc3RGb3J3YXJkT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBNdC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJGaWVsZEJpbmFyeU91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4genQuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRmllbGROdW1iZXJPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFB0LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkZpZWxkU3RyaW5nT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB5dC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJGaWVsZFRpbWVPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGp0LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkZpbGVBZGRGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBIdC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJGaWxlQWRkT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBUdC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJGaWxlQWRkVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEZ0LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkZpbGVEb25lT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBWdC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJGaWxlRXhjZWxGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBJdC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJGaWxlRXhjZWxPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEN0LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkZpbGVFeGNlbFR3b1RvbmUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBBdC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJGaWxlRXhjbGFtYXRpb25GaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBidC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJGaWxlRXhjbGFtYXRpb25PdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEx0LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkZpbGVFeGNsYW1hdGlvblR3b1RvbmUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBEdC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJGaWxlRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gQnQuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRmlsZUdpZk91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gU3QuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRmlsZUltYWdlRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gRXQuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRmlsZUltYWdlT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBXdC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJGaWxlSW1hZ2VUd29Ub25lIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gVXQuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRmlsZUpwZ091dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gR3QuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRmlsZU1hcmtkb3duRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWnQuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRmlsZU1hcmtkb3duT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBRdC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJGaWxlTWFya2Rvd25Ud29Ub25lIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTnQuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRmlsZU91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gS3QuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRmlsZVBkZkZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFl0LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkZpbGVQZGZPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEp0LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkZpbGVQZGZUd29Ub25lIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWHQuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRmlsZVBwdEZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuICR0LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkZpbGVQcHRPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHd0LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkZpbGVQcHRUd29Ub25lIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcHQuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRmlsZVByb3RlY3RPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHh0LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkZpbGVTZWFyY2hPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGt0LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkZpbGVTeW5jT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBxdC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJGaWxlVGV4dEZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIF90LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkZpbGVUZXh0T3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBlMy5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJGaWxlVGV4dFR3b1RvbmUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0My5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJGaWxlVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGEzLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkZpbGVVbmtub3duRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbDMuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRmlsZVVua25vd25PdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGQzLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkZpbGVVbmtub3duVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG4zLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkZpbGVXb3JkRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdTMuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRmlsZVdvcmRPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGYzLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkZpbGVXb3JkVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGMzLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkZpbGVaaXBGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiByMy5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJGaWxlWmlwT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBvMy5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJGaWxlWmlwVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGkzLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkZpbHRlckZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHYzLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkZpbHRlck91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gczMuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRmlsdGVyVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGgzLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkZpcmVGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBtMy5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJGaXJlT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBnMy5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJGaXJlVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE8zLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkZsYWdGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBSMy5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJGbGFnT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBNMy5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJGbGFnVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHozLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkZvbGRlckFkZEZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFAzLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkZvbGRlckFkZE91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4geTMuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRm9sZGVyQWRkVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGozLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkZvbGRlckZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEgzLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkZvbGRlck9wZW5GaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBUMy5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJGb2xkZXJPcGVuT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBGMy5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJGb2xkZXJPcGVuVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFYzLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkZvbGRlck91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSTMuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRm9sZGVyVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEMzLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkZvbGRlclZpZXdPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEEzLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkZvbnRDb2xvcnNPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGIzLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkZvbnRTaXplT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBMMy5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJGb3JrT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBEMy5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJGb3JtT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBCMy5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJGb3JtYXRQYWludGVyRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gUzMuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRm9ybWF0UGFpbnRlck91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gRTMuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRm9yd2FyZEZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFczLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkZvcndhcmRPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFUzLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkZyb3duRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gRzMuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRnJvd25PdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFozLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkZyb3duVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFEzLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkZ1bGxzY3JlZW5FeGl0T3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBOMy5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJGdWxsc2NyZWVuT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBLMy5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJGdW5jdGlvbk91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWTMuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRnVuZEZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEozLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkZ1bmRPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFgzLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkZ1bmRQcm9qZWN0aW9uU2NyZWVuT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiAkMy5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJGdW5kVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHczLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkZ1bmRWaWV3T3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBwMy5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJGdW5uZWxQbG90RmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4geDMuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRnVubmVsUGxvdE91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gazMuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiRnVubmVsUGxvdFR3b1RvbmUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBxMy5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJHYXRld2F5T3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBfMy5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJHaWZPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGU2LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkdpZnRGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0Ni5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJHaWZ0T3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBhNi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJHaWZ0VHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGw2LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkdpdGh1YkZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGQ2LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkdpdGh1Yk91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbjYuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiR2l0bGFiRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdTYuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiR2l0bGFiT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBmNi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJHbG9iYWxPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGM2LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkdvbGRGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiByNi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJHb2xkT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBvNi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJHb2xkVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGk2LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkdvbGRlbkZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHY2LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkdvb2dsZUNpcmNsZUZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHM2LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkdvb2dsZU91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gaDYuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiR29vZ2xlUGx1c0NpcmNsZUZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG02LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkdvb2dsZVBsdXNPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGc2LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkdvb2dsZVBsdXNTcXVhcmVGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBPNi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJHb29nbGVTcXVhcmVGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBSNi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJHcm91cE91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTTYuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiSGFybW9ueU9TT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB6Ni5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJIZGRGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBQNi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJIZGRPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHk2LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkhkZFR3b1RvbmUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBqNi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJIZWFydEZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEg2LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkhlYXJ0T3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBUNi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJIZWFydFR3b1RvbmUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBGNi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJIZWF0TWFwT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBWNi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJIaWdobGlnaHRGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBJNi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJIaWdobGlnaHRPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEM2LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkhpZ2hsaWdodFR3b1RvbmUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBBNi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJIaXN0b3J5T3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBiNi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJIb2xkZXJPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEw2LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkhvbWVGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBENi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJIb21lT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBCNi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJIb21lVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFM2LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkhvdXJnbGFzc0ZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEU2LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkhvdXJnbGFzc091dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gVzYuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiSG91cmdsYXNzVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFU2LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkh0bWw1RmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gRzYuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiSHRtbDVPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFo2LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkh0bWw1VHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFE2LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIklkY2FyZEZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE42LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIklkY2FyZE91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSzYuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiSWRjYXJkVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFk2LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkllQ2lyY2xlRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSjYuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiSWVPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFg2LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkllU3F1YXJlRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gJDYuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiSW1wb3J0T3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB3Ni5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJJbmJveE91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcDYuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiSW5mb0NpcmNsZUZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHg2LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkluZm9DaXJjbGVPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGs2LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkluZm9DaXJjbGVUd29Ub25lIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcTYuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiSW5mb091dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gXzYuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiSW5zZXJ0Um93QWJvdmVPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGU4LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkluc2VydFJvd0JlbG93T3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0OC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJJbnNlcnRSb3dMZWZ0T3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBhOC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJJbnNlcnRSb3dSaWdodE91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbDguZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiSW5zdGFncmFtRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZDguZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiSW5zdGFncmFtT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBuOC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJJbnN1cmFuY2VGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB1OC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJJbnN1cmFuY2VPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGY4LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkluc3VyYW5jZVR3b1RvbmUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBjOC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJJbnRlcmFjdGlvbkZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHI4LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkludGVyYWN0aW9uT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBvOC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJJbnRlcmFjdGlvblR3b1RvbmUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBpOC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJJc3N1ZXNDbG9zZU91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdjguZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiSXRhbGljT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBzOC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJKYXZhT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBoOC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJKYXZhU2NyaXB0T3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBtOC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJLZXlPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGc4LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkt1YmVybmV0ZXNPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE84LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkxhcHRvcE91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gUjguZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiTGF5b3V0RmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTTguZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiTGF5b3V0T3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB6OC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJMYXlvdXRUd29Ub25lIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gUDguZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiTGVmdENpcmNsZUZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHk4LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkxlZnRDaXJjbGVPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGo4LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkxlZnRDaXJjbGVUd29Ub25lIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSDguZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiTGVmdE91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gVDguZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiTGVmdFNxdWFyZUZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEY4LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkxlZnRTcXVhcmVPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFY4LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkxlZnRTcXVhcmVUd29Ub25lIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSTguZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiTGlrZUZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEM4LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkxpa2VPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEE4LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkxpa2VUd29Ub25lIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYjguZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiTGluZUNoYXJ0T3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBMOC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJMaW5lSGVpZ2h0T3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBEOC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJMaW5lT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBCOC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJMaW5rT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBTOC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJMaW5rZWRpbkZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEU4LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkxpbmtlZGluT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBXOC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJMaW51eE91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gVTguZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiTG9hZGluZzNRdWFydGVyc091dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gRzguZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiTG9hZGluZ091dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWjguZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiTG9ja0ZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFE4LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkxvY2tPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE44LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkxvY2tUd29Ub25lIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSzguZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiTG9naW5PdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFk4LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkxvZ291dE91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSjguZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiTWFjQ29tbWFuZEZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFg4LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIk1hY0NvbW1hbmRPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuICQ4LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIk1haWxGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB3OC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJNYWlsT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBwOC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJNYWlsVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHg4LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIk1hbk91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gazguZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiTWVkaWNpbmVCb3hGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBxOC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJNZWRpY2luZUJveE91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gXzguZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiTWVkaWNpbmVCb3hUd29Ub25lIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZTAuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiTWVkaXVtQ2lyY2xlRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdDAuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiTWVkaXVtT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBhMC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJNZWRpdW1TcXVhcmVGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBsMC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJNZWRpdW1Xb3JrbWFya091dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZDAuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiTWVoRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbjAuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiTWVoT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB1MC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJNZWhUd29Ub25lIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZjAuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiTWVudUZvbGRPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGMwLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIk1lbnVPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHIwLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIk1lbnVVbmZvbGRPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG8wLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIk1lcmdlQ2VsbHNPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGkwLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIk1lcmdlRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdjAuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiTWVyZ2VPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHMwLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIk1lc3NhZ2VGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBoMC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJNZXNzYWdlT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBtMC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJNZXNzYWdlVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGcwLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIk1pbnVzQ2lyY2xlRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTzAuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiTWludXNDaXJjbGVPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFIwLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIk1pbnVzQ2lyY2xlVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE0wLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIk1pbnVzT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB6MC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJNaW51c1NxdWFyZUZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFAwLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIk1pbnVzU3F1YXJlT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB5MC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJNaW51c1NxdWFyZVR3b1RvbmUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBqMC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJNb2JpbGVGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBIMC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJNb2JpbGVPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFQwLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIk1vYmlsZVR3b1RvbmUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBGMC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJNb25leUNvbGxlY3RGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBWMC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJNb25leUNvbGxlY3RPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEkwLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIk1vbmV5Q29sbGVjdFR3b1RvbmUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBDMC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJNb25pdG9yT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBBMC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJNb29uRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYjAuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiTW9vbk91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTDAuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiTW9yZU91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gRDAuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiTXV0ZWRGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBCMC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJNdXRlZE91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gUzAuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiTm9kZUNvbGxhcHNlT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBFMC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJOb2RlRXhwYW5kT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBXMC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJOb2RlSW5kZXhPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFUwLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIk5vdGlmaWNhdGlvbkZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEcwLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIk5vdGlmaWNhdGlvbk91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWjAuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiTm90aWZpY2F0aW9uVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFEwLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIk51bWJlck91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTjAuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiT25lVG9PbmVPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEswLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIk9wZW5BSUZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFkwLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIk9wZW5BSU91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSjAuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiT3JkZXJlZExpc3RPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFgwLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlBhcGVyQ2xpcE91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gJDAuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiUGFydGl0aW9uT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB3MC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJQYXVzZUNpcmNsZUZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHAwLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlBhdXNlQ2lyY2xlT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB4MC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJQYXVzZUNpcmNsZVR3b1RvbmUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBrMC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJQYXVzZU91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcTAuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiUGF5Q2lyY2xlRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gXzAuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiUGF5Q2lyY2xlT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBlYS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJQZXJjZW50YWdlT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0YS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJQaG9uZUZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGFhLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlBob25lT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBsYS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJQaG9uZVR3b1RvbmUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBkYS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJQaWNDZW50ZXJPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG5hLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlBpY0xlZnRPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHVhLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlBpY1JpZ2h0T3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBmYS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJQaWN0dXJlRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY2EuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiUGljdHVyZU91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcmEuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiUGljdHVyZVR3b1RvbmUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBvYS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJQaWVDaGFydEZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGlhLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlBpZUNoYXJ0T3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB2YS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJQaWVDaGFydFR3b1RvbmUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBzYS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJQaW50ZXJlc3RGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBoYS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJQaW50ZXJlc3RPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG1hLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlBsYXlDaXJjbGVGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBnYS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJQbGF5Q2lyY2xlT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBPYS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJQbGF5Q2lyY2xlVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFJhLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlBsYXlTcXVhcmVGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBNYS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJQbGF5U3F1YXJlT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB6YS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJQbGF5U3F1YXJlVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFBhLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlBsdXNDaXJjbGVGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB5YS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJQbHVzQ2lyY2xlT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBqYS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJQbHVzQ2lyY2xlVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEhhLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlBsdXNPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFRhLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlBsdXNTcXVhcmVGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBGYS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJQbHVzU3F1YXJlT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBWYS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJQbHVzU3F1YXJlVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIElhLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlBvdW5kQ2lyY2xlRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gQ2EuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiUG91bmRDaXJjbGVPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEFhLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlBvdW5kQ2lyY2xlVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGJhLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlBvdW5kT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBMYS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJQb3dlcm9mZk91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gRGEuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiUHJpbnRlckZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEJhLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlByaW50ZXJPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFNhLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlByaW50ZXJUd29Ub25lIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gRWEuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiUHJvZHVjdEZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFdhLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlByb2R1Y3RPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFVhLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlByb2ZpbGVGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBHYS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJQcm9maWxlT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBaYS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJQcm9maWxlVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFFhLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlByb2plY3RGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBOYS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJQcm9qZWN0T3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBLYS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJQcm9qZWN0VHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFlhLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlByb3BlcnR5U2FmZXR5RmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSmEuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiUHJvcGVydHlTYWZldHlPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFhhLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlByb3BlcnR5U2FmZXR5VHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuICRhLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlB1bGxSZXF1ZXN0T3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB3YS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJQdXNocGluRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcGEuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiUHVzaHBpbk91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4geGEuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiUHVzaHBpblR3b1RvbmUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBrYS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJQeXRob25PdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHFhLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlFxQ2lyY2xlRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gX2EuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiUXFPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGVsLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlFxU3F1YXJlRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGwuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiUXJjb2RlT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBhbC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJRdWVzdGlvbkNpcmNsZUZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGxsLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlF1ZXN0aW9uQ2lyY2xlT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBkbC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJRdWVzdGlvbkNpcmNsZVR3b1RvbmUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBubC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJRdWVzdGlvbk91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdWwuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiUmFkYXJDaGFydE91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZmwuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiUmFkaXVzQm90dG9tbGVmdE91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY2wuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiUmFkaXVzQm90dG9tcmlnaHRPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHJsLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlJhZGl1c1NldHRpbmdPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG9sLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlJhZGl1c1VwbGVmdE91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gaWwuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiUmFkaXVzVXByaWdodE91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdmwuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiUmVhZEZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHNsLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlJlYWRPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGhsLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlJlY29uY2lsaWF0aW9uRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbWwuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiUmVjb25jaWxpYXRpb25PdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGdsLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlJlY29uY2lsaWF0aW9uVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE9sLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlJlZEVudmVsb3BlRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gUmwuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiUmVkRW52ZWxvcGVPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE1sLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlJlZEVudmVsb3BlVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHpsLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlJlZGRpdENpcmNsZUZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFBsLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlJlZGRpdE91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4geWwuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiUmVkZGl0U3F1YXJlRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gamwuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiUmVkb091dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSGwuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiUmVsb2FkT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBUbC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJSZXN0RmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gRmwuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiUmVzdE91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gVmwuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiUmVzdFR3b1RvbmUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBJbC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJSZXR3ZWV0T3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBDbC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJSaWdodENpcmNsZUZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEFsLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlJpZ2h0Q2lyY2xlT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBibC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJSaWdodENpcmNsZVR3b1RvbmUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBMbC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJSaWdodE91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gRGwuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiUmlnaHRTcXVhcmVGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBCbC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJSaWdodFNxdWFyZU91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gU2wuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiUmlnaHRTcXVhcmVUd29Ub25lIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gRWwuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiUmlzZU91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gV2wuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiUm9ib3RGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBVbC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJSb2JvdE91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gR2wuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiUm9ja2V0RmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWmwuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiUm9ja2V0T3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBRbC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJSb2NrZXRUd29Ub25lIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTmwuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiUm9sbGJhY2tPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEtsLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlJvdGF0ZUxlZnRPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFlsLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlJvdGF0ZVJpZ2h0T3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBKbC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJSdWJ5T3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBYbC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJTYWZldHlDZXJ0aWZpY2F0ZUZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuICRsLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlNhZmV0eUNlcnRpZmljYXRlT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB3bC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJTYWZldHlDZXJ0aWZpY2F0ZVR3b1RvbmUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBwbC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJTYWZldHlPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHhsLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlNhdmVGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBrbC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJTYXZlT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBxbC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJTYXZlVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIF9sLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlNjYW5PdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGVkLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlNjaGVkdWxlRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGQuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiU2NoZWR1bGVPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGFkLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlNjaGVkdWxlVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGxkLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlNjaXNzb3JPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGRkLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlNlYXJjaE91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbmQuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiU2VjdXJpdHlTY2FuRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdWQuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiU2VjdXJpdHlTY2FuT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBmZC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJTZWN1cml0eVNjYW5Ud29Ub25lIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY2QuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiU2VsZWN0T3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiByZC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJTZW5kT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBvZC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJTZXR0aW5nRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gaWQuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiU2V0dGluZ091dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdmQuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiU2V0dGluZ1R3b1RvbmUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBzZC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJTaGFrZU91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gaGQuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiU2hhcmVBbHRPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG1kLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlNob3BGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBnZC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJTaG9wT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBPZC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJTaG9wVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFJkLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlNob3BwaW5nQ2FydE91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTWQuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiU2hvcHBpbmdGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB6ZC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJTaG9wcGluZ091dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gUGQuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiU2hvcHBpbmdUd29Ub25lIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4geWQuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiU2hyaW5rT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBqZC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJTaWduYWxGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBIZC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJTaWduYXR1cmVGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBUZC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJTaWduYXR1cmVPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEZkLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlNpc3Rlcm5vZGVPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFZkLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlNrZXRjaENpcmNsZUZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIElkLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlNrZXRjaE91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gQ2QuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiU2tldGNoU3F1YXJlRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gQWQuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiU2tpbkZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGJkLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlNraW5PdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIExkLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlNraW5Ud29Ub25lIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gRGQuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiU2t5cGVGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBCZC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJTa3lwZU91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gU2QuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiU2xhY2tDaXJjbGVGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBFZC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJTbGFja091dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gV2QuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiU2xhY2tTcXVhcmVGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBVZC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJTbGFja1NxdWFyZU91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gR2QuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiU2xpZGVyc0ZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFpkLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlNsaWRlcnNPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFFkLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlNsaWRlcnNUd29Ub25lIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTmQuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiU21hbGxEYXNoT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBLZC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJTbWlsZUZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFlkLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlNtaWxlT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBKZC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJTbWlsZVR3b1RvbmUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBYZC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJTbmlwcGV0c0ZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuICRkLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlNuaXBwZXRzT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB3ZC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJTbmlwcGV0c1R3b1RvbmUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBwZC5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJTb2x1dGlvbk91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4geGQuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiU29ydEFzY2VuZGluZ091dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4ga2QuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiU29ydERlc2NlbmRpbmdPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHFkLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlNvdW5kRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gX2QuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiU291bmRPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGVuLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlNvdW5kVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRuLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlNwbGl0Q2VsbHNPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGFuLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlNwb3RpZnlGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBsbi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJTcG90aWZ5T3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBkbi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJTdGFyRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbm4uZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiU3Rhck91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdW4uZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiU3RhclR3b1RvbmUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBmbi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJTdGVwQmFja3dhcmRGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBjbi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJTdGVwQmFja3dhcmRPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHJuLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlN0ZXBGb3J3YXJkRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gb24uZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiU3RlcEZvcndhcmRPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHZuLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlN0b2NrT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBzbi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJTdG9wRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gaG4uZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiU3RvcE91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbW4uZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiU3RvcFR3b1RvbmUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBnbi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJTdHJpa2V0aHJvdWdoT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBPbi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJTdWJub2RlT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBSbi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJTdW5GaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBNbi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJTdW5PdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHpuLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlN3YXBMZWZ0T3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBQbi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJTd2FwT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB5bi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJTd2FwUmlnaHRPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGpuLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlN3aXRjaGVyRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSG4uZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiU3dpdGNoZXJPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFRuLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlN3aXRjaGVyVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEZuLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlN5bmNPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFZuLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlRhYmxlT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBJbi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJUYWJsZXRGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBDbi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJUYWJsZXRPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEFuLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlRhYmxldFR3b1RvbmUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBibi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJUYWdGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBMbi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJUYWdPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIERuLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlRhZ1R3b1RvbmUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBCbi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJUYWdzRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gU24uZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiVGFnc091dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gRW4uZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiVGFnc1R3b1RvbmUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBXbi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJUYW9iYW9DaXJjbGVGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBVbi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJUYW9iYW9DaXJjbGVPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEduLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlRhb2Jhb091dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWm4uZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiVGFvYmFvU3F1YXJlRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gUW4uZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiVGVhbU91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTm4uZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiVGh1bmRlcmJvbHRGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBLbi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJUaHVuZGVyYm9sdE91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWW4uZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiVGh1bmRlcmJvbHRUd29Ub25lIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSm4uZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiVGlrVG9rRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWG4uZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiVGlrVG9rT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiAkbi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJUb1RvcE91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gd24uZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiVG9vbEZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHBuLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlRvb2xPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHhuLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlRvb2xUd29Ub25lIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4ga24uZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiVHJhZGVtYXJrQ2lyY2xlRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcW4uZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiVHJhZGVtYXJrQ2lyY2xlT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBfbi5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJUcmFkZW1hcmtDaXJjbGVUd29Ub25lIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZXUuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiVHJhZGVtYXJrT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0dS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJUcmFuc2FjdGlvbk91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYXUuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiVHJhbnNsYXRpb25PdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGx1LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlRyb3BoeUZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGR1LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlRyb3BoeU91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbnUuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiVHJvcGh5VHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHV1LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlRydWNrRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZnUuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiVHJ1Y2tPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGN1LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlR3aXRjaEZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHJ1LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlR3aXRjaE91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gb3UuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiVHdpdHRlckNpcmNsZUZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGl1LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlR3aXR0ZXJPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHZ1LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlR3aXR0ZXJTcXVhcmVGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBzdS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJVbmRlcmxpbmVPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGh1LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlVuZG9PdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG11LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlVuZ3JvdXBPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGd1LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlVubG9ja0ZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE91LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlVubG9ja091dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gUnUuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiVW5sb2NrVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE11LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlVub3JkZXJlZExpc3RPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHp1LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlVwQ2lyY2xlRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gUHUuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiVXBDaXJjbGVPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHl1LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlVwQ2lyY2xlVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGp1LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlVwT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBIdS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJVcFNxdWFyZUZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFR1LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlVwU3F1YXJlT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBGdS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJVcFNxdWFyZVR3b1RvbmUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBWdS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJVcGxvYWRPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEl1LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlVzYkZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEN1LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlVzYk91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gQXUuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiVXNiVHdvVG9uZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGJ1LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlVzZXJBZGRPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEx1LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlVzZXJEZWxldGVPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIER1LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlVzZXJPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEJ1LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlVzZXJTd2l0Y2hPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFN1LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlVzZXJncm91cEFkZE91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gRXUuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiVXNlcmdyb3VwRGVsZXRlT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBXdS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJWZXJpZmllZE91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gVXUuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiVmVydGljYWxBbGlnbkJvdHRvbU91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gR3UuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiVmVydGljYWxBbGlnbk1pZGRsZU91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWnUuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiVmVydGljYWxBbGlnblRvcE91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gUXUuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiVmVydGljYWxMZWZ0T3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBOdS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJWZXJ0aWNhbFJpZ2h0T3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBLdS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJWaWRlb0NhbWVyYUFkZE91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWXUuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiVmlkZW9DYW1lcmFGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBKdS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJWaWRlb0NhbWVyYU91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWHUuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiVmlkZW9DYW1lcmFUd29Ub25lIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gJHUuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiV2FsbGV0RmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gd3UuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiV2FsbGV0T3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBwdS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJXYWxsZXRUd29Ub25lIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4geHUuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiV2FybmluZ0ZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGt1LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIldhcm5pbmdPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHF1LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIldhcm5pbmdUd29Ub25lIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gX3UuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiV2VjaGF0RmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZTcuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiV2VjaGF0T3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0Ny5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJXZWNoYXRXb3JrRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYTcuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiV2VjaGF0V29ya091dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbDcuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiV2VpYm9DaXJjbGVGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBkNy5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJXZWlib0NpcmNsZU91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbjcuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiV2VpYm9PdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHU3LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIldlaWJvU3F1YXJlRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZjcuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiV2VpYm9TcXVhcmVPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGM3LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIldoYXRzQXBwT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiByNy5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJXaWZpT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBvNy5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJXaW5kb3dzRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gaTcuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiV2luZG93c091dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdjcuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiV29tYW5PdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHM3LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlhGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBoNy5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJYT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBtNy5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJZYWhvb0ZpbGxlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGc3LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIllhaG9vT3V0bGluZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBPNy5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJZb3V0dWJlRmlsbGVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gUjcuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiWW91dHViZU91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTTcuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiWXVxdWVGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB6Ny5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJZdXF1ZU91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gUDcuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiWmhpaHVDaXJjbGVGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB5Ny5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJaaGlodU91dGxpbmVkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gajcuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiWmhpaHVTcXVhcmVGaWxsZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBINy5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJab29tSW5PdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFQ3LmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlpvb21PdXRPdXRsaW5lZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEY3LmRlZmF1bHR9fSk7dmFyIGE9bChlKDkwMDI5KSksbj1sKGUoMzY3NTQpKSxkPWwoZSgxOTk1NSkpLHU9bChlKDcxNDc0KSksZj1sKGUoMzI4MzEpKSxjPWwoZSgxNDUyNykpLHI9bChlKDk0MjYxKSksaD1sKGUoNjM0NTUpKSxzPWwoZSg0MzA4OCkpLG89bChlKDQ2NDQwKSksaT1sKGUoNjk0MykpLFA9bChlKDQxMzcyKSksTT1sKGUoNTI1MjgpKSx6PWwoZSg4MTc1KSksUj1sKGUoMzc3MzQpKSxUPWwoZSgxOTUyMSkpLFY9bChlKDUxMTQ2KSksTz1sKGUoNTM2MzApKSxnPWwoZSgxMzA2NSkpLEg9bChlKDk3MTIzKSkseT1sKGUoMTc2NDkpKSxJPWwoZSg3MjI0MikpLEM9bChlKDkwOTM1KSksQT1sKGUoMjk5NjEpKSxGPWwoZSgzNDIxMikpLGI9bChlKDMwMDg0KSksTD1sKGUoNjM1MDUpKSxqPWwoZSg5NzkzNSkpLEQ9bChlKDkyOTc1KSksQj1sKGUoMTY4NjUpKSxTPWwoZSgyMDM4OCkpLEU9bChlKDY1NTQ0KSksVz1sKGUoNjY3MDkpKSxVPWwoZSg2MDA3NykpLEc9bChlKDc0OTkyKSksWj1sKGUoMTUyMzkpKSxRPWwoZSg1NjM2MykpLE49bChlKDg1MzE3KSksSz1sKGUoOTE3MjQpKSxZPWwoZSg5MzMxNSkpLEo9bChlKDkyNTExKSksWD1sKGUoODg4MSkpLCQ9bChlKDY0ODk0KSksdz1sKGUoMTA5MTIpKSxwPWwoZSg2MDAzNikpLHg9bChlKDE0NTUyKSksaz1sKGUoNzc1OTEpKSxxPWwoZSg3OTI2MikpLF89bChlKDkwMjQxKSksZWU9bChlKDkxNDExKSksdGU9bChlKDc4MTg3KSksYWU9bChlKDc2NjI1KSksbGU9bChlKDY1MTIzKSksZGU9bChlKDUzNDUzKSksbmU9bChlKDQ1Nzk5KSksdWU9bChlKDgzNTU3KSksZmU9bChlKDI3OTQ1KSksY2U9bChlKDY1NDc1KSkscmU9bChlKDg4MzQ5KSksb2U9bChlKDM2OTUyKSksaWU9bChlKDI1NTk0KSksdmU9bChlKDQwMTUwKSksc2U9bChlKDY1NzcyKSksaGU9bChlKDQ0NzcxKSksbWU9bChlKDk2OTY2KSksZ2U9bChlKDg0ODMxKSksT2U9bChlKDIyNjk2KSksUmU9bChlKDQ1NTMyKSksTWU9bChlKDkwNzk2KSksemU9bChlKDYzOTkyKSksUGU9bChlKDU4OTA5KSkseWU9bChlKDcxODAxKSksamU9bChlKDU1NTczKSksSGU9bChlKDIxMTUxKSksVGU9bChlKDYxMjIxKSksRmU9bChlKDk5NzUzKSksVmU9bChlKDM4NTE5KSksSWU9bChlKDY2NDczKSksQ2U9bChlKDc2ODQyKSksQWU9bChlKDMyMjQ2KSksYmU9bChlKDk2NTYyKSksTGU9bChlKDI3NjI3KSksRGU9bChlKDMyNjc4KSksQmU9bChlKDU1MzczKSksU2U9bChlKDcwNTc5KSksRWU9bChlKDU3NjQ3KSksV2U9bChlKDU1MDApKSxVZT1sKGUoNDE1MTcpKSxHZT1sKGUoNjY5NDcpKSxaZT1sKGUoODM4NzApKSxRZT1sKGUoMjY0OTkpKSxOZT1sKGUoMjkxKSksS2U9bChlKDQwNzU0KSksWWU9bChlKDQxMjU0KSksSmU9bChlKDQ4NjkwKSksWGU9bChlKDc5OTg2KSksJGU9bChlKDgwOTU5KSksd2U9bChlKDMyMjUzKSkscGU9bChlKDY0NzU5KSkseGU9bChlKDg3MDY3KSksa2U9bChlKDI2NDAxKSkscWU9bChlKDc5NTUwKSksX2U9bChlKDg1NDI2KSksZTQ9bChlKDc3NzQyKSksdDQ9bChlKDUzNTA5KSksYTQ9bChlKDc2MDQ4KSksbDQ9bChlKDEyNTU2KSksZDQ9bChlKDU2NzYpKSxuND1sKGUoNDYyNzEpKSx1ND1sKGUoNDg3OTkpKSxmND1sKGUoODg3NTIpKSxjND1sKGUoMTI2NTApKSxyND1sKGUoODU2NzMpKSxvND1sKGUoNTM5MTMpKSxpND1sKGUoNTQwMCkpLHY0PWwoZSg3NDY2MikpLHM0PWwoZSg5NTE4MykpLGg0PWwoZSg0ODEzOCkpLG00PWwoZSg5Mjk2NikpLGc0PWwoZSg3OTY4NikpLE80PWwoZSg4Nzc5MykpLFI0PWwoZSg2MDcxMykpLE00PWwoZSg3MTc2NikpLHo0PWwoZSgxODA5MykpLFA0PWwoZSgyMDQ1MCkpLHk0PWwoZSg4OTM3OSkpLGo0PWwoZSg4NDc4KSksSDQ9bChlKDg0NDc5KSksVDQ9bChlKDE5MzcwKSksRjQ9bChlKDc5NzAxKSksVjQ9bChlKDY1NDkyKSksSTQ9bChlKDczMzEwKSksQzQ9bChlKDk1NjQyKSksQTQ9bChlKDE2MzAwKSksYjQ9bChlKDg2MjY2KSksTDQ9bChlKDkyMDE4KSksRDQ9bChlKDkwNTg1KSksQjQ9bChlKDgzNDgyKSksUzQ9bChlKDYzMzYpKSxFND1sKGUoOTUyODYpKSxXND1sKGUoNDYwMzUpKSxVND1sKGUoNzIwNzgpKSxHND1sKGUoNDc3MjEpKSxaND1sKGUoMzc3MzgpKSxRND1sKGUoOTE2MCkpLE40PWwoZSgyNDc3NSkpLEs0PWwoZSg0MzMxKSksWTQ9bChlKDk0MjkzKSksSjQ9bChlKDE0NjY2KSksWDQ9bChlKDg4MTk1KSksJDQ9bChlKDM5MjcxKSksdzQ9bChlKDc2Njk2KSkscDQ9bChlKDUwNjg1KSkseDQ9bChlKDY2MzM4KSksazQ9bChlKDkzMTIxKSkscTQ9bChlKDQ1NTg3KSksXzQ9bChlKDE0MzA3KSksZTE9bChlKDgxNjUzKSksdDE9bChlKDkxNTUzKSksYTE9bChlKDEzNzA0KSksbDE9bChlKDM3NzYzKSksZDE9bChlKDI5MjU3KSksbjE9bChlKDYzNTIxKSksdTE9bChlKDI0NTU4KSksZjE9bChlKDE1MjY3KSksYzE9bChlKDg5NzI1KSkscjE9bChlKDYyNjgxKSksbzE9bChlKDM5ODMxKSksaTE9bChlKDY1MjQpKSx2MT1sKGUoOTU5ODcpKSxzMT1sKGUoNjA5MzApKSxoMT1sKGUoMjc0NzgpKSxtMT1sKGUoOTM1MTIpKSxnMT1sKGUoMjUzMDkpKSxPMT1sKGUoMTQ1ODcpKSxSMT1sKGUoNTU5ODQpKSxNMT1sKGUoMjEzNzIpKSx6MT1sKGUoNjIwNTUpKSxQMT1sKGUoNTc5ODQpKSx5MT1sKGUoNTY3ODcpKSxqMT1sKGUoMzQxNDYpKSxIMT1sKGUoMzA3NTkpKSxUMT1sKGUoMTE5KSksRjE9bChlKDI5Mjk5KSksVjE9bChlKDU0ODIyKSksSTE9bChlKDYzNzgwKSksQzE9bChlKDM5MjcyKSksQTE9bChlKDY4OTIpKSxiMT1sKGUoMTU0ODUpKSxMMT1sKGUoMTkzNTEpKSxEMT1sKGUoODE3NDUpKSxCMT1sKGUoMzQ2OTcpKSxTMT1sKGUoMjMxNjcpKSxFMT1sKGUoNjMyMzgpKSxXMT1sKGUoOTExMTUpKSxVMT1sKGUoNDg1MzUpKSxHMT1sKGUoMjYyMTMpKSxaMT1sKGUoNjE2MzQpKSxRMT1sKGUoNjMyNTMpKSxOMT1sKGUoMTMxMykpLEsxPWwoZSg1OTg0MCkpLFkxPWwoZSg5ODU5NikpLEoxPWwoZSg0NzU1MCkpLFgxPWwoZSgxOTcwMikpLCQxPWwoZSg0MzgpKSx3MT1sKGUoODU0NykpLHAxPWwoZSgxOTM1MykpLHgxPWwoZSgzNDc0MykpLGsxPWwoZSg5MTU4OSkpLHExPWwoZSg4MTA5NCkpLF8xPWwoZSgzNDgzMSkpLGUyPWwoZSgzNDAyOSkpLHQyPWwoZSgyMTM2KSksYTI9bChlKDM5NjMwKSksbDI9bChlKDM2MDMpKSxkMj1sKGUoODI4ODYpKSxuMj1sKGUoMTg4NTIpKSx1Mj1sKGUoODQ0NTMpKSxmMj1sKGUoNTIxMjgpKSxjMj1sKGUoNzY4MDUpKSxyMj1sKGUoMTM2NDMpKSxvMj1sKGUoNzYyNzkpKSxpMj1sKGUoOTU0KSksdjI9bChlKDg4MjUwKSksczI9bChlKDY0NTczKSksaDI9bChlKDkwMzIzKSksbTI9bChlKDUwOTUwKSksZzI9bChlKDc5MjYwKSksTzI9bChlKDI5NzkwKSksUjI9bChlKDk5Njc3KSksTTI9bChlKDUzMTQxKSksejI9bChlKDQwMjg3KSksUDI9bChlKDM1MTA4KSkseTI9bChlKDkwMzQwKSksajI9bChlKDExNzgxKSksSDI9bChlKDc2NzIwKSksVDI9bChlKDIxNzEwKSksRjI9bChlKDg1OTk2KSksVjI9bChlKDE2NjIyKSksSTI9bChlKDMwNzQ0KSksQzI9bChlKDEyMDEpKSxBMj1sKGUoNzYxNDApKSxiMj1sKGUoMjkyOTgpKSxMMj1sKGUoMzY5MzYpKSxEMj1sKGUoMzM5MikpLEIyPWwoZSgxODE1MykpLFMyPWwoZSg4MjkzNikpLEUyPWwoZSgyNDUxKSksVzI9bChlKDg5MzY0KSksVTI9bChlKDU4NDUyKSksRzI9bChlKDc4Mjc1KSksWjI9bChlKDY3NzAxKSksUTI9bChlKDczNzY0KSksTjI9bChlKDQ0NTk0KSksSzI9bChlKDc5NjM2KSksWTI9bChlKDg2NDE2KSksSjI9bChlKDkyMDg0KSksWDI9bChlKDY4NDEyKSksJDI9bChlKDk2MTQ2KSksdzI9bChlKDk1NDM2KSkscDI9bChlKDkwOTY0KSkseDI9bChlKDc5NzEwKSksazI9bChlKDc3OTk4KSkscTI9bChlKDM4NTUpKSxfMj1sKGUoMzE5NzgpKSxldD1sKGUoODI2MjcpKSx0dD1sKGUoOTQ0MDEpKSxhdD1sKGUoODk4ODIpKSxsdD1sKGUoNTY0NzIpKSxkdD1sKGUoMjk0NTApKSxudD1sKGUoNjA1NjgpKSx1dD1sKGUoNzcwMTcpKSxmdD1sKGUoNzc5NTApKSxjdD1sKGUoNTA3MSkpLHJ0PWwoZSgzNDI2NSkpLG90PWwoZSgyMDQ2OSkpLGl0PWwoZSg0MjQxOSkpLHZ0PWwoZSg5Nzc0NikpLHN0PWwoZSg5MTI1MSkpLGh0PWwoZSgzNDI4NykpLG10PWwoZSg5NDk1MCkpLGd0PWwoZSg5Njc4OSkpLE90PWwoZSg2NTMzOCkpLFJ0PWwoZSg2NDA1OSkpLE10PWwoZSg5MzQxNCkpLHp0PWwoZSg0NTE0NCkpLFB0PWwoZSgxNTY3KSkseXQ9bChlKDM2OTg0KSksanQ9bChlKDc5MjUxKSksSHQ9bChlKDk1NDg3KSksVHQ9bChlKDIxNjMyKSksRnQ9bChlKDgwMzQ3KSksVnQ9bChlKDY3Njg5KSksSXQ9bChlKDIyMjkwKSksQ3Q9bChlKDI0NzcyKSksQXQ9bChlKDMyMzYpKSxidD1sKGUoNjM4NCkpLEx0PWwoZSg3OTUxOCkpLER0PWwoZSg3NzE2MykpLEJ0PWwoZSg2MjkwOSkpLFN0PWwoZSg0MDM4MCkpLEV0PWwoZSgyMjM3MykpLFd0PWwoZSg3NjYzNSkpLFV0PWwoZSg3OTAxOCkpLEd0PWwoZSg3NjYxNSkpLFp0PWwoZSg0NTgwMCkpLFF0PWwoZSg0NDUwNSkpLE50PWwoZSg4MzMzNCkpLEt0PWwoZSg4OTA1MikpLFl0PWwoZSg4OTg2MikpLEp0PWwoZSgxOTQzNykpLFh0PWwoZSgxMDE5NCkpLCR0PWwoZSg1NzQxKSksd3Q9bChlKDQ4MjAxKSkscHQ9bChlKDM3NTczKSkseHQ9bChlKDgwODc0KSksa3Q9bChlKDY1MTMyKSkscXQ9bChlKDI0NTA4KSksX3Q9bChlKDIwNDgxKSksZTM9bChlKDQwOTIwKSksdDM9bChlKDU0NDQ5KSksYTM9bChlKDE1ODM5KSksbDM9bChlKDQ0MykpLGQzPWwoZSgyNzA2NSkpLG4zPWwoZSgxOTA3MikpLHUzPWwoZSgyNjM4NCkpLGYzPWwoZSg3MDE3NCkpLGMzPWwoZSgyNTA3NCkpLHIzPWwoZSgzNTQ3OSkpLG8zPWwoZSg2NzU2NikpLGkzPWwoZSgzODI4KSksdjM9bChlKDQyNTI4KSksczM9bChlKDE5MjcpKSxoMz1sKGUoMjE2NzMpKSxtMz1sKGUoMTQzMjgpKSxnMz1sKGUoODM4MzEpKSxPMz1sKGUoMzkzNDYpKSxSMz1sKGUoNDEzODIpKSxNMz1sKGUoNDAxMzkpKSx6Mz1sKGUoODM1NTUpKSxQMz1sKGUoOTIwMDkpKSx5Mz1sKGUoMTk3NjIpKSxqMz1sKGUoNzg3MTcpKSxIMz1sKGUoNjU3MjQpKSxUMz1sKGUoNzgpKSxGMz1sKGUoNDA3OTApKSxWMz1sKGUoMTQ0MTcpKSxJMz1sKGUoNjgwODQpKSxDMz1sKGUoOTIyODApKSxBMz1sKGUoNzA4NTgpKSxiMz1sKGUoMjI3MDIpKSxMMz1sKGUoMjIxNDcpKSxEMz1sKGUoMTIwNjYpKSxCMz1sKGUoMzIxOTQpKSxTMz1sKGUoNDYyOTQpKSxFMz1sKGUoNzE3NzIpKSxXMz1sKGUoMjcwMCkpLFUzPWwoZSgyNTgzMCkpLEczPWwoZSgyMzEyMykpLFozPWwoZSgxNzI2NCkpLFEzPWwoZSg0MDEwKSksTjM9bChlKDczMjY1KSksSzM9bChlKDgzODQ4KSksWTM9bChlKDUxMzA5KSksSjM9bChlKDg4ODM1KSksWDM9bChlKDYwNTgxKSksJDM9bChlKDU0ODMxKSksdzM9bChlKDM1NjU3KSkscDM9bChlKDk1NTcyKSkseDM9bChlKDI4MDk3KSksazM9bChlKDU1Mjk3KSkscTM9bChlKDE2NzcyKSksXzM9bChlKDc0NDIzKSksZTY9bChlKDIyNTQyKSksdDY9bChlKDc2OTYxKSksYTY9bChlKDMxMDQ3KSksbDY9bChlKDQyNjk2KSksZDY9bChlKDg4ODE3KSksbjY9bChlKDUzNzQyKSksdTY9bChlKDQ3NzU5KSksZjY9bChlKDI2Mjc4KSksYzY9bChlKDIxMzU4KSkscjY9bChlKDM2NDM1KSksbzY9bChlKDIyNjIwKSksaTY9bChlKDI1NTYxKSksdjY9bChlKDI0MTE4KSksczY9bChlKDk4ODkzKSksaDY9bChlKDMwOTU5KSksbTY9bChlKDM0OTEwKSksZzY9bChlKDk1NzkxKSksTzY9bChlKDQ5Njc5KSksUjY9bChlKDIyMzg2KSksTTY9bChlKDQ0MjY5KSksejY9bChlKDQ1MjkxKSksUDY9bChlKDQzODM0KSkseTY9bChlKDY0ODYwKSksajY9bChlKDk4Mzg0KSksSDY9bChlKDY5OTU4KSksVDY9bChlKDg3NjYzKSksRjY9bChlKDIxNTI0KSksVjY9bChlKDc3NDI1KSksSTY9bChlKDY2NjIpKSxDNj1sKGUoNDQxMjUpKSxBNj1sKGUoODgwNCkpLGI2PWwoZSg5MjYxMSkpLEw2PWwoZSg1NTM5MykpLEQ2PWwoZSg4NTExKSksQjY9bChlKDUwMDUpKSxTNj1sKGUoODEwMzkpKSxFNj1sKGUoNzM0MTEpKSxXNj1sKGUoMTA5MDApKSxVNj1sKGUoNjk2MCkpLEc2PWwoZSg3NzQxOSkpLFo2PWwoZSgxODA1OSkpLFE2PWwoZSgzNDUxMSkpLE42PWwoZSg5ODA2OCkpLEs2PWwoZSg2MzQwMCkpLFk2PWwoZSgzMzIzMikpLEo2PWwoZSg0ODgzNykpLFg2PWwoZSgxNjEzKSksJDY9bChlKDc1NzI5KSksdzY9bChlKDQ0NzYwKSkscDY9bChlKDE5MzY5KSkseDY9bChlKDQ2NTY0KSksazY9bChlKDM0MTA2KSkscTY9bChlKDQzMzQwKSksXzY9bChlKDUxNzM5KSksZTg9bChlKDEyOTQpKSx0OD1sKGUoNTk0NTApKSxhOD1sKGUoNzQ3NTMpKSxsOD1sKGUoNzA3OTQpKSxkOD1sKGUoNDY4NDIpKSxuOD1sKGUoMjYwNTcpKSx1OD1sKGUoNTUyNDUpKSxmOD1sKGUoNjIyNikpLGM4PWwoZSg3OTgxNCkpLHI4PWwoZSgzNzM5OSkpLG84PWwoZSg2MzY0NikpLGk4PWwoZSg4ODYpKSx2OD1sKGUoMjU2NjUpKSxzOD1sKGUoNDA3KSksaDg9bChlKDMyNDk3KSksbTg9bChlKDYzNzk1KSksZzg9bChlKDg0MzExKSksTzg9bChlKDkyNDk0KSksUjg9bChlKDY5NDk3KSksTTg9bChlKDgwMzIpKSx6OD1sKGUoNzkyNjUpKSxQOD1sKGUoNjkyNjQpKSx5OD1sKGUoODY2NTYpKSxqOD1sKGUoMTc1OTYpKSxIOD1sKGUoMjA1MTYpKSxUOD1sKGUoNzUwMCkpLEY4PWwoZSgzNTU2KSksVjg9bChlKDU5ODYpKSxJOD1sKGUoNDc4OTgpKSxDOD1sKGUoNTc4MzQpKSxBOD1sKGUoMjU3NTYpKSxiOD1sKGUoNDc3NTcpKSxMOD1sKGUoMzQ3MDApKSxEOD1sKGUoNjgyMDkpKSxCOD1sKGUoMjAzNCkpLFM4PWwoZSgyMzUzNCkpLEU4PWwoZSgyNzk4NCkpLFc4PWwoZSgyMjk2MikpLFU4PWwoZSg1ODQwNykpLEc4PWwoZSg3ODU5NSkpLFo4PWwoZSg0ODUxKSksUTg9bChlKDUwMjAxKSksTjg9bChlKDc5NzM5KSksSzg9bChlKDE2NjUpKSxZOD1sKGUoMjIzNDUpKSxKOD1sKGUoNzgzOTApKSxYOD1sKGUoNTk4MTQpKSwkOD1sKGUoODkzNDIpKSx3OD1sKGUoNDY5OSkpLHA4PWwoZSg5NDExOSkpLHg4PWwoZSg2NDUyOSkpLGs4PWwoZSg3NTY3NikpLHE4PWwoZSg0Mzk4KSksXzg9bChlKDc4NTk3KSksZTA9bChlKDk0NDgwKSksdDA9bChlKDIzNDg1KSksYTA9bChlKDg2OTU5KSksbDA9bChlKDQ3NjA0KSksZDA9bChlKDYzOTA4KSksbjA9bChlKDM3NzAyKSksdTA9bChlKDk4NjE3KSksZjA9bChlKDY1NjA5KSksYzA9bChlKDUyOTI0KSkscjA9bChlKDc1NzQ2KSksbzA9bChlKDI3MTY3KSksaTA9bChlKDQ3NTM3KSksdjA9bChlKDE2ODYpKSxzMD1sKGUoNzUyMTEpKSxoMD1sKGUoODc2MikpLG0wPWwoZSg4MzQ1MikpLGcwPWwoZSgxNjQ2NikpLE8wPWwoZSg4ODQzKSksUjA9bChlKDEyMzYyKSksTTA9bChlKDMxMzA1KSksejA9bChlKDQzMTg3KSksUDA9bChlKDgzMjAwKSkseTA9bChlKDY2MzQyKSksajA9bChlKDMxMzUyKSksSDA9bChlKDYzNzUpKSxUMD1sKGUoODMwMjcpKSxGMD1sKGUoMzQ3NjgpKSxWMD1sKGUoMzgxMjYpKSxJMD1sKGUoMTAxNTYpKSxDMD1sKGUoODU3NzApKSxBMD1sKGUoNDMzNTIpKSxiMD1sKGUoMjk3MTcpKSxMMD1sKGUoNTY4MDMpKSxEMD1sKGUoNDcyNDIpKSxCMD1sKGUoOTQ2NjIpKSxTMD1sKGUoMzgzNzUpKSxFMD1sKGUoMjE5NDgpKSxXMD1sKGUoNjI4MjMpKSxVMD1sKGUoMTA1MjYpKSxHMD1sKGUoNzM3MjEpKSxaMD1sKGUoMTQ1NDIpKSxRMD1sKGUoNzkzNTApKSxOMD1sKGUoMjIyNDApKSxLMD1sKGUoNTgwNjUpKSxZMD1sKGUoNDI1MDkpKSxKMD1sKGUoNTM1NDUpKSxYMD1sKGUoNTM1OTgpKSwkMD1sKGUoMzMzMikpLHcwPWwoZSg5OTYyMykpLHAwPWwoZSg1NDI5NSkpLHgwPWwoZSg4NzkyMikpLGswPWwoZSg5MDc3MykpLHEwPWwoZSg2NzQ2NykpLF8wPWwoZSg5Njk1OCkpLGVhPWwoZSg3MjEyMykpLHRhPWwoZSgzNTA0NCkpLGFhPWwoZSg0ODcxNSkpLGxhPWwoZSgyNDczMikpLGRhPWwoZSg2MDg5MikpLG5hPWwoZSgxNDMyMSkpLHVhPWwoZSg1MzA4NCkpLGZhPWwoZSg5NzgxMikpLGNhPWwoZSg5NzEwNCkpLHJhPWwoZSg0MTk3MCkpLG9hPWwoZSg3MDk3MCkpLGlhPWwoZSgyMjU1NSkpLHZhPWwoZSg5NjYyMSkpLHNhPWwoZSgyNTM1OCkpLGhhPWwoZSg4MjUzMCkpLG1hPWwoZSg4ODIxNSkpLGdhPWwoZSg3ODMyNykpLE9hPWwoZSg1MjA1MSkpLFJhPWwoZSgxOTc5MSkpLE1hPWwoZSgzOTc4NSkpLHphPWwoZSgxNjM5MSkpLFBhPWwoZSg4MzE5OSkpLHlhPWwoZSg5MTU4KSksamE9bChlKDYxMDkzKSksSGE9bChlKDE4OTE0KSksVGE9bChlKDMyNjE1KSksRmE9bChlKDE2NzAyKSksVmE9bChlKDkxODczKSksSWE9bChlKDg0MTY5KSksQ2E9bChlKDY5ODYwKSksQWE9bChlKDc0MzUzKSksYmE9bChlKDczMDQyKSksTGE9bChlKDQ2NDYpKSxEYT1sKGUoOTI2OCkpLEJhPWwoZSg2ODc2NikpLFNhPWwoZSg0NzUyKSksRWE9bChlKDY4MjYxKSksV2E9bChlKDMyMzMpKSxVYT1sKGUoODA3MDApKSxHYT1sKGUoNzE2MTgpKSxaYT1sKGUoODAwMjMpKSxRYT1sKGUoNTAyNCkpLE5hPWwoZSgyNTk0MykpLEthPWwoZSg0NDg4OCkpLFlhPWwoZSgyNTgwOSkpLEphPWwoZSgyMzgzMCkpLFhhPWwoZSgzMTA1NykpLCRhPWwoZSgyNjg0OCkpLHdhPWwoZSg3ODc5OSkpLHBhPWwoZSgyNTE1MykpLHhhPWwoZSg5NDcwKSksa2E9bChlKDgyNDY3KSkscWE9bChlKDUwMzUpKSxfYT1sKGUoNjE2NzApKSxlbD1sKGUoNTI0MjQpKSx0bD1sKGUoMTA5ODEpKSxhbD1sKGUoNDg2MCkpLGxsPWwoZSg2MDI1OSkpLGRsPWwoZSg1NDQzNCkpLG5sPWwoZSg2NTMwMykpLHVsPWwoZSg3MzkyOSkpLGZsPWwoZSgzMTcwOSkpLGNsPWwoZSgxMzIzMSkpLHJsPWwoZSg5MzQzNykpLG9sPWwoZSg1Mjg3OCkpLGlsPWwoZSg2NjkxMikpLHZsPWwoZSgyOTA1MSkpLHNsPWwoZSg0NTYxNSkpLGhsPWwoZSg0MTI4MSkpLG1sPWwoZSgzNzc0MCkpLGdsPWwoZSg1NzAyNikpLE9sPWwoZSgxNjgxOSkpLFJsPWwoZSgzNzk2NCkpLE1sPWwoZSg2MzU4MikpLHpsPWwoZSg4NTkwNCkpLFBsPWwoZSg3NTM4MikpLHlsPWwoZSg0ODgyMSkpLGpsPWwoZSg3ODA3OSkpLEhsPWwoZSgzOTg4OCkpLFRsPWwoZSg4MDg0MikpLEZsPWwoZSg2OTU2MikpLFZsPWwoZSg2NTI2MykpLElsPWwoZSg3MzkxOCkpLENsPWwoZSgyMDg5MSkpLEFsPWwoZSg3ODE1MykpLGJsPWwoZSg1ODI0KSksTGw9bChlKDU4MjEzKSksRGw9bChlKDg2OTk0KSksQmw9bChlKDk1MTg5KSksU2w9bChlKDExMDg0KSksRWw9bChlKDk4ODUzKSksV2w9bChlKDcwNTgzKSksVWw9bChlKDU3MjE3KSksR2w9bChlKDI0MzQyKSksWmw9bChlKDQ4MDY1KSksUWw9bChlKDQ2NjUwKSksTmw9bChlKDYxMDAxKSksS2w9bChlKDI0ODIwKSksWWw9bChlKDgyNDEwKSksSmw9bChlKDk0ODczKSksWGw9bChlKDkxOTMwKSksJGw9bChlKDIzNTM1KSksd2w9bChlKDEwMDg2KSkscGw9bChlKDUzNTQ0KSkseGw9bChlKDg0OTgxKSksa2w9bChlKDU0NDA3KSkscWw9bChlKDUxOTQyKSksX2w9bChlKDQwNDEwKSksZWQ9bChlKDQ5MDQ2KSksdGQ9bChlKDEzODApKSxhZD1sKGUoNzkyNzApKSxsZD1sKGUoOTAwNjYpKSxkZD1sKGUoODE0NTEpKSxuZD1sKGUoNzczNykpLHVkPWwoZSgyMzk1NikpLGZkPWwoZSg2NDgxNikpLGNkPWwoZSgzNDE5NikpLHJkPWwoZSg1NTUwOCkpLG9kPWwoZSg4ODQ4MikpLGlkPWwoZSgzNTE3MykpLHZkPWwoZSgzNTc0MSkpLHNkPWwoZSgxOTM4MykpLGhkPWwoZSg5NTA5NikpLG1kPWwoZSg2OTY1MCkpLGdkPWwoZSg2MDYpKSxPZD1sKGUoNzc1MDMpKSxSZD1sKGUoMTI0OSkpLE1kPWwoZSg0MjQ1OSkpLHpkPWwoZSg5Mjg0KSksUGQ9bChlKDMzOTg3KSkseWQ9bChlKDc1MzM4KSksamQ9bChlKDU1NTMxKSksSGQ9bChlKDIzMjMwKSksVGQ9bChlKDcyMDkpKSxGZD1sKGUoNjU5MTUpKSxWZD1sKGUoMjAwMjYpKSxJZD1sKGUoNDg3NTcpKSxDZD1sKGUoNzc3ODgpKSxBZD1sKGUoMzM1NDYpKSxiZD1sKGUoNjIxNzQpKSxMZD1sKGUoNjM3MjIpKSxEZD1sKGUoODM5MzgpKSxCZD1sKGUoODAwMSkpLFNkPWwoZSg0Mjg4MikpLEVkPWwoZSgxMTc4NSkpLFdkPWwoZSg2MjgzMCkpLFVkPWwoZSg3NDM5KSksR2Q9bChlKDU5MDY1KSksWmQ9bChlKDE3OTIxKSksUWQ9bChlKDE5ODApKSxOZD1sKGUoNTQ2MjYpKSxLZD1sKGUoNTk4NzcpKSxZZD1sKGUoMzE3MTgpKSxKZD1sKGUoOTczNjIpKSxYZD1sKGUoNTY3OSkpLCRkPWwoZSg3NDQ1NykpLHdkPWwoZSgzNjk1MykpLHBkPWwoZSg1MjAxOCkpLHhkPWwoZSgzNjEyNikpLGtkPWwoZSg0NTQ2MykpLHFkPWwoZSg3NTgzNCkpLF9kPWwoZSg3MTkpKSxlbj1sKGUoMTc2NSkpLHRuPWwoZSg1MzU0MykpLGFuPWwoZSg5Mzk1OSkpLGxuPWwoZSgzOTQ3NikpLGRuPWwoZSg5NTQ4OCkpLG5uPWwoZSg2MzAzMSkpLHVuPWwoZSgxNDY3MSkpLGZuPWwoZSg3MTQzNykpLGNuPWwoZSg4NzM0OCkpLHJuPWwoZSg1ODU0MSkpLG9uPWwoZSg3NTA1NCkpLHZuPWwoZSgxMTc1NykpLHNuPWwoZSgyNzQ1MikpLGhuPWwoZSg5NjI2NykpLG1uPWwoZSgyNTI1NikpLGduPWwoZSg0NjA3NykpLE9uPWwoZSg1MzI3NykpLFJuPWwoZSgxNzQ5KSksTW49bChlKDg2MTM2KSksem49bChlKDUyMjYxKSksUG49bChlKDg2OTU2KSkseW49bChlKDQ5MDMxKSksam49bChlKDE0Mjk4KSksSG49bChlKDc1NjkpKSxUbj1sKGUoMzIzNjQpKSxGbj1sKGUoMTEyMzApKSxWbj1sKGUoOTIxNjcpKSxJbj1sKGUoNzczNjcpKSxDbj1sKGUoMzk1NzQpKSxBbj1sKGUoOTI1OCkpLGJuPWwoZSg3NzQ3KSksTG49bChlKDYwNjA2KSksRG49bChlKDE3MTYwKSksQm49bChlKDMxOTQpKSxTbj1sKGUoMjk3MjMpKSxFbj1sKGUoMzUzNzUpKSxXbj1sKGUoNDgxNjUpKSxVbj1sKGUoMjQ2MDMpKSxHbj1sKGUoNzUyNikpLFpuPWwoZSgyMDUzOCkpLFFuPWwoZSg5OTU0NykpLE5uPWwoZSg3MjcwOCkpLEtuPWwoZSg4MzA4OSkpLFluPWwoZSg0Njk3MCkpLEpuPWwoZSg2NTE5KSksWG49bChlKDE4OTQ1KSksJG49bChlKDUwODQpKSx3bj1sKGUoODI0MDApKSxwbj1sKGUoOTEzMjIpKSx4bj1sKGUoMTIzMjIpKSxrbj1sKGUoNTU3MjApKSxxbj1sKGUoMjQ2NTYpKSxfbj1sKGUoNTU5NTYpKSxldT1sKGUoMTAwNDgpKSx0dT1sKGUoNzA1MDkpKSxhdT1sKGUoNjE5MzMpKSxsdT1sKGUoNTA3MjEpKSxkdT1sKGUoMzE0NzEpKSxudT1sKGUoNDg0MjkpKSx1dT1sKGUoNDIzMDQpKSxmdT1sKGUoNDg0OTApKSxjdT1sKGUoNTk4OTApKSxydT1sKGUoNjEzNjYpKSxvdT1sKGUoNjY4OTIpKSxpdT1sKGUoMzk5MjgpKSx2dT1sKGUoNDUzNzMpKSxzdT1sKGUoNzEwODIpKSxodT1sKGUoODkyMTYpKSxtdT1sKGUoMTcxMDcpKSxndT1sKGUoNTMzNDIpKSxPdT1sKGUoNjYxNTIpKSxSdT1sKGUoOTc0NzYpKSxNdT1sKGUoNDM5NTYpKSx6dT1sKGUoMTU3MzcpKSxQdT1sKGUoNjYxNDcpKSx5dT1sKGUoMTM0NDcpKSxqdT1sKGUoMjM5MTApKSxIdT1sKGUoNTY2MSkpLFR1PWwoZSgyNDg5MCkpLEZ1PWwoZSg1Mjk4MykpLFZ1PWwoZSgyMzEwMykpLEl1PWwoZSgzNTg1NSkpLEN1PWwoZSgyMTUxOCkpLEF1PWwoZSg1NTgyMikpLGJ1PWwoZSg1OTY2MSkpLEx1PWwoZSgzMjc0NikpLER1PWwoZSg4MjA5OCkpLEJ1PWwoZSg0NjQwMykpLFN1PWwoZSg1MDk5KSksRXU9bChlKDIzMTQ3KSksV3U9bChlKDg3MDM5KSksVXU9bChlKDEzMTA0KSksR3U9bChlKDU4ODA2KSksWnU9bChlKDQ0NzMyKSksUXU9bChlKDM5OTA2KSksTnU9bChlKDI4NDMwKSksS3U9bChlKDI2OTEwKSksWXU9bChlKDI3MzAyKSksSnU9bChlKDk5Njc5KSksWHU9bChlKDU5MTgwKSksJHU9bChlKDY0OTEyKSksd3U9bChlKDUxNDgwKSkscHU9bChlKDU3MDQwKSkseHU9bChlKDEyODg1KSksa3U9bChlKDE4NzgxKSkscXU9bChlKDMzNjQ5KSksX3U9bChlKDU1OTA1KSksZTc9bChlKDQ2Mjg1KSksdDc9bChlKDMwMzkyKSksYTc9bChlKDM4Njc1KSksbDc9bChlKDIxMDYyKSksZDc9bChlKDE5ODc3KSksbjc9bChlKDMwODg0KSksdTc9bChlKDgyODgpKSxmNz1sKGUoNjI2NjApKSxjNz1sKGUoNTM1KSkscjc9bChlKDQ4MjI2KSksbzc9bChlKDE3MTQwKSksaTc9bChlKDU1MTY5KSksdjc9bChlKDg3ODgxKSksczc9bChlKDM5MDgzKSksaDc9bChlKDE3MTMzKSksbTc9bChlKDM1NjM0KSksZzc9bChlKDM5ODAyKSksTzc9bChlKDY4NjcyKSksUjc9bChlKDczODQxKSksTTc9bChlKDMyNzQ0KSksejc9bChlKDE5NzUpKSxQNz1sKGUoODcyODEpKSx5Nz1sKGUoODIzNykpLGo3PWwoZSgxMzYyOCkpLEg3PWwoZSgxMDAxMSkpLFQ3PWwoZSg2NTg0OCkpLEY3PWwoZSgzNDQ2MykpfSwzMTE5OTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSgxNDEzKSxhPWUoOTEpLG49ZSg2NzI5NCksZD1lKDkyMTc5KSx1PWUoODU4OTMpLGY9WyJmaWVsZFByb3BzIiwibWluIiwicHJvRmllbGRQcm9wcyIsIm1heCJdLGM9ZnVuY3Rpb24ocyxvKXt2YXIgaT1zLmZpZWxkUHJvcHMsUD1zLm1pbixNPXMucHJvRmllbGRQcm9wcyx6PXMubWF4LFI9KDAsYS5aKShzLGYpO3JldHVybigwLHUuanN4KShkLlosKDAsbC5aKSh7dmFsdWVUeXBlOiJkaWdpdCIsZmllbGRQcm9wczooMCxsLlopKHttaW46UCxtYXg6en0saSkscmVmOm8sZmlsZWRDb25maWc6e2RlZmF1bHRQcm9wczp7d2lkdGg6IjEwMCUifX0scHJvRmllbGRQcm9wczpNfSxSKSl9LHI9bi5mb3J3YXJkUmVmKGMpO3QuWj1yfSw4NjYxNTpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSgxNDEzKSxhPWUoOTEpLG49ZSgyMjI3MCksZD1lKDc4MDQ1KSx1PWUoNjcyOTQpLGY9ZSg5MDc4OSksYz1lKDkyMTc5KSxyPWUoODU4OTMpLGg9WyJmaWVsZFByb3BzIiwib3B0aW9ucyIsInJhZGlvVHlwZSIsImxheW91dCIsInByb0ZpZWxkUHJvcHMiLCJ2YWx1ZUVudW0iXSxzPXUuZm9yd2FyZFJlZihmdW5jdGlvbihNLHope3ZhciBSPU0uZmllbGRQcm9wcyxUPU0ub3B0aW9ucyxWPU0ucmFkaW9UeXBlLE89TS5sYXlvdXQsZz1NLnByb0ZpZWxkUHJvcHMsSD1NLnZhbHVlRW51bSx5PSgwLGEuWikoTSxoKTtyZXR1cm4oMCxyLmpzeCkoYy5aLCgwLGwuWikoKDAsbC5aKSh7dmFsdWVUeXBlOlY9PT0iYnV0dG9uIj8icmFkaW9CdXR0b24iOiJyYWRpbyIscmVmOnosdmFsdWVFbnVtOigwLG4uaCkoSCx2b2lkIDApfSx5KSx7fSx7ZmllbGRQcm9wczooMCxsLlopKHtvcHRpb25zOlQsbGF5b3V0Ok99LFIpLHByb0ZpZWxkUHJvcHM6ZyxmaWxlZENvbmZpZzp7Y3VzdG9tTGlnaHRNb2RlOiEwfX0pKX0pLG89dS5mb3J3YXJkUmVmKGZ1bmN0aW9uKE0seil7dmFyIFI9TS5maWVsZFByb3BzLFQ9TS5jaGlsZHJlbjtyZXR1cm4oMCxyLmpzeCkoZC5aUCwoMCxsLlopKCgwLGwuWikoe30sUikse30se3JlZjp6LGNoaWxkcmVuOlR9KSl9KSxpPSgwLGYuRykobyx7dmFsdWVQcm9wTmFtZToiY2hlY2tlZCIsaWdub3JlV2lkdGg6ITB9KSxQPWk7UC5Hcm91cD1zLFAuQnV0dG9uPWQuWlAuQnV0dG9uLFAuZGlzcGxheU5hbWU9IlByb0Zvcm1Db21wb25lbnQiLHQuWj1QfSw2NDMxNzpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSgxNDEzKSxhPWUoOTEpLG49ZSgyMjI3MCksZD1lKDY3Mjk0KSx1PWUoNjY3NTgpLGY9ZSg5MjE3OSksYz1lKDg1ODkzKSxyPVsiZmllbGRQcm9wcyIsImNoaWxkcmVuIiwicGFyYW1zIiwicHJvRmllbGRQcm9wcyIsIm1vZGUiLCJ2YWx1ZUVudW0iLCJyZXF1ZXN0Iiwic2hvd1NlYXJjaCIsIm9wdGlvbnMiXSxoPVsiZmllbGRQcm9wcyIsImNoaWxkcmVuIiwicGFyYW1zIiwicHJvRmllbGRQcm9wcyIsIm1vZGUiLCJ2YWx1ZUVudW0iLCJyZXF1ZXN0Iiwib3B0aW9ucyJdLHM9ZnVuY3Rpb24oUixUKXt2YXIgVj1SLmZpZWxkUHJvcHMsTz1SLmNoaWxkcmVuLGc9Ui5wYXJhbXMsSD1SLnByb0ZpZWxkUHJvcHMseT1SLm1vZGUsST1SLnZhbHVlRW51bSxDPVIucmVxdWVzdCxBPVIuc2hvd1NlYXJjaCxGPVIub3B0aW9ucyxiPSgwLGEuWikoUixyKSxMPSgwLGQudXNlQ29udGV4dCkodS5aKTtyZXR1cm4oMCxjLmpzeCkoZi5aLCgwLGwuWikoKDAsbC5aKSh7dmFsdWVFbnVtOigwLG4uaCkoSSkscmVxdWVzdDpDLHBhcmFtczpnLHZhbHVlVHlwZToic2VsZWN0IixmaWxlZENvbmZpZzp7Y3VzdG9tTGlnaHRNb2RlOiEwfSxmaWVsZFByb3BzOigwLGwuWikoe29wdGlvbnM6Rixtb2RlOnksc2hvd1NlYXJjaDpBLGdldFBvcHVwQ29udGFpbmVyOkwuZ2V0UG9wdXBDb250YWluZXJ9LFYpLHJlZjpULHByb0ZpZWxkUHJvcHM6SH0sYikse30se2NoaWxkcmVuOk99KSl9LG89ZC5mb3J3YXJkUmVmKGZ1bmN0aW9uKHosUil7dmFyIFQ9ei5maWVsZFByb3BzLFY9ei5jaGlsZHJlbixPPXoucGFyYW1zLGc9ei5wcm9GaWVsZFByb3BzLEg9ei5tb2RlLHk9ei52YWx1ZUVudW0sST16LnJlcXVlc3QsQz16Lm9wdGlvbnMsQT0oMCxhLlopKHosaCksRj0oMCxsLlopKHtvcHRpb25zOkMsbW9kZTpIfHwibXVsdGlwbGUiLGxhYmVsSW5WYWx1ZTohMCxzaG93U2VhcmNoOiEwLHN1ZmZpeEljb246bnVsbCxhdXRvQ2xlYXJTZWFyY2hWYWx1ZTohMCxvcHRpb25MYWJlbFByb3A6ImxhYmVsIn0sVCksYj0oMCxkLnVzZUNvbnRleHQpKHUuWik7cmV0dXJuKDAsYy5qc3gpKGYuWiwoMCxsLlopKCgwLGwuWikoe3ZhbHVlRW51bTooMCxuLmgpKHkpLHJlcXVlc3Q6SSxwYXJhbXM6Tyx2YWx1ZVR5cGU6InNlbGVjdCIsZmlsZWRDb25maWc6e2N1c3RvbUxpZ2h0TW9kZTohMH0sZmllbGRQcm9wczooMCxsLlopKHtnZXRQb3B1cENvbnRhaW5lcjpiLmdldFBvcHVwQ29udGFpbmVyfSxGKSxyZWY6Uixwcm9GaWVsZFByb3BzOmd9LEEpLHt9LHtjaGlsZHJlbjpWfSkpfSksaT1kLmZvcndhcmRSZWYocyksUD1vLE09aTtNLlNlYXJjaFNlbGVjdD1QLE0uZGlzcGxheU5hbWU9IlByb0Zvcm1Db21wb25lbnQiLHQuWj1NfSw1OTY2OmZ1bmN0aW9uKHYsdCxlKXt2YXIgbD1lKDk3Njg1KSxhPWUoMTQxMyksbj1lKDkxKSxkPWUoMjE3NzApLHU9ZSg5OTg1OSksZj1lKDU1MjQxKSxjPWUoOTg0MjMpLHI9ZSg2NzI5NCksaD1lKDkyMTc5KSxzPWUoODU4OTMpLG89WyJmaWVsZFByb3BzIiwicHJvRmllbGRQcm9wcyJdLGk9WyJmaWVsZFByb3BzIiwicHJvRmllbGRQcm9wcyJdLFA9InRleHQiLE09ZnVuY3Rpb24oTyl7dmFyIGc9Ty5maWVsZFByb3BzLEg9Ty5wcm9GaWVsZFByb3BzLHk9KDAsbi5aKShPLG8pO3JldHVybigwLHMuanN4KShoLlosKDAsYS5aKSh7dmFsdWVUeXBlOlAsZmllbGRQcm9wczpnLGZpbGVkQ29uZmlnOnt2YWx1ZVR5cGU6UH0scHJvRmllbGRQcm9wczpIfSx5KSl9LHo9ZnVuY3Rpb24oTyl7dmFyIGc9KDAsZC5aKShPLm9wZW58fCExLHt2YWx1ZTpPLm9wZW4sb25DaGFuZ2U6Ty5vbk9wZW5DaGFuZ2V9KSxIPSgwLGwuWikoZywyKSx5PUhbMF0sST1IWzFdO3JldHVybigwLHMuanN4KSh1LlouSXRlbSx7c2hvdWxkVXBkYXRlOiEwLG5vU3R5bGU6ITAsY2hpbGRyZW46ZnVuY3Rpb24oQSl7dmFyIEYsYj1BLmdldEZpZWxkVmFsdWUoTy5uYW1lfHxbXSk7cmV0dXJuKDAscy5qc3gpKGYuWiwoMCxhLlopKCgwLGEuWikoe2dldFBvcHVwQ29udGFpbmVyOmZ1bmN0aW9uKGope3JldHVybiBqJiZqLnBhcmVudE5vZGU/ai5wYXJlbnROb2RlOmp9LG9uT3BlbkNoYW5nZTpmdW5jdGlvbihqKXtyZXR1cm4gSShqKX0sY29udGVudDooMCxzLmpzeHMpKCJkaXYiLHtzdHlsZTp7cGFkZGluZzoiNHB4IDAifSxjaGlsZHJlbjpbKEY9Ty5zdGF0dXNSZW5kZXIpPT09bnVsbHx8Rj09PXZvaWQgMD92b2lkIDA6Ri5jYWxsKE8sYiksTy5zdHJlbmd0aFRleHQ/KDAscy5qc3gpKCJkaXYiLHtzdHlsZTp7bWFyZ2luVG9wOjEwfSxjaGlsZHJlbjooMCxzLmpzeCkoInNwYW4iLHtjaGlsZHJlbjpPLnN0cmVuZ3RoVGV4dH0pfSk6bnVsbF19KSxvdmVybGF5U3R5bGU6e3dpZHRoOjI0MH0scGxhY2VtZW50OiJyaWdodFRvcCJ9LE8ucG9wb3ZlclByb3BzKSx7fSx7b3Blbjp5LGNoaWxkcmVuOk8uY2hpbGRyZW59KSl9fSl9LFI9ZnVuY3Rpb24oTyl7dmFyIGc9Ty5maWVsZFByb3BzLEg9Ty5wcm9GaWVsZFByb3BzLHk9KDAsbi5aKShPLGkpLEk9KDAsci51c2VTdGF0ZSkoITEpLEM9KDAsbC5aKShJLDIpLEE9Q1swXSxGPUNbMV07cmV0dXJuIGchPW51bGwmJmcuc3RhdHVzUmVuZGVyJiZ5Lm5hbWU/KDAscy5qc3gpKHose25hbWU6eS5uYW1lLHN0YXR1c1JlbmRlcjpnPT1udWxsP3ZvaWQgMDpnLnN0YXR1c1JlbmRlcixwb3BvdmVyUHJvcHM6Zz09bnVsbD92b2lkIDA6Zy5wb3BvdmVyUHJvcHMsc3RyZW5ndGhUZXh0Omc9PW51bGw/dm9pZCAwOmcuc3RyZW5ndGhUZXh0LG9wZW46QSxvbk9wZW5DaGFuZ2U6RixjaGlsZHJlbjooMCxzLmpzeCkoImRpdiIse2NoaWxkcmVuOigwLHMuanN4KShoLlosKDAsYS5aKSh7dmFsdWVUeXBlOiJwYXNzd29yZCIsZmllbGRQcm9wczooMCxhLlopKCgwLGEuWikoe30sKDAsYy5aKShnLFsic3RhdHVzUmVuZGVyIiwicG9wb3ZlclByb3BzIiwic3RyZW5ndGhUZXh0Il0pKSx7fSx7b25CbHVyOmZ1bmN0aW9uKEwpe3ZhciBqO2c9PW51bGx8fChqPWcub25CbHVyKT09PW51bGx8fGo9PT12b2lkIDB8fGouY2FsbChnLEwpLEYoITEpfSxvbkNsaWNrOmZ1bmN0aW9uKEwpe3ZhciBqO2c9PW51bGx8fChqPWcub25DbGljayk9PT1udWxsfHxqPT09dm9pZCAwfHxqLmNhbGwoZyxMKSxGKCEwKX19KSxwcm9GaWVsZFByb3BzOkgsZmlsZWRDb25maWc6e3ZhbHVlVHlwZTpQfX0seSkpfSl9KTooMCxzLmpzeCkoaC5aLCgwLGEuWikoe3ZhbHVlVHlwZToicGFzc3dvcmQiLGZpZWxkUHJvcHM6Zyxwcm9GaWVsZFByb3BzOkgsZmlsZWRDb25maWc6e3ZhbHVlVHlwZTpQfX0seSkpfSxUPU07VC5QYXNzd29yZD1SLFQuZGlzcGxheU5hbWU9IlByb0Zvcm1Db21wb25lbnQiLHQuWj1UfSwxOTA1NDpmdW5jdGlvbih2LHQsZSl7dmFyIGw9ZSgxNDEzKSxhPWUoOTEpLG49ZSg2NzI5NCksZD1lKDkyMTc5KSx1PWUoODU4OTMpLGY9WyJmaWVsZFByb3BzIiwicmVxdWVzdCIsInBhcmFtcyIsInByb0ZpZWxkUHJvcHMiXSxjPWZ1bmN0aW9uKHMsbyl7dmFyIGk9cy5maWVsZFByb3BzLFA9cy5yZXF1ZXN0LE09cy5wYXJhbXMsej1zLnByb0ZpZWxkUHJvcHMsUj0oMCxhLlopKHMsZik7cmV0dXJuKDAsdS5qc3gpKGQuWiwoMCxsLlopKHt2YWx1ZVR5cGU6InRyZWVTZWxlY3QiLGZpZWxkUHJvcHM6aSxyZWY6byxyZXF1ZXN0OlAscGFyYW1zOk0sZmlsZWRDb25maWc6e2N1c3RvbUxpZ2h0TW9kZTohMH0scHJvRmllbGRQcm9wczp6fSxSKSl9LHI9bi5mb3J3YXJkUmVmKGMpO3QuWj1yfX1dKTsKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNTQ2NC43NmM1NmVhZC5hc3luYy5qcyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNTQ2NC43NmM1NmVhZC5hc3luYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MTU4MDkwCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy81NDY0Ljc2YzU2ZWFkLmFzeW5jLmpzCkBAIC0wLDAgKzEgQEAKKyJ1c2Ugc3RyaWN0Ijsoc2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Bybz1zZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvfHxbXSkucHVzaChbWzU0NjRdLHs5NDE2MjpmdW5jdGlvbihWLGosdCl7dmFyIGQ9dCg2NDU5OSksYz10Lm4oZCksRD10KDY3Mjk0KSxvPXQoNjYzMDkpLEM9dCg4NTg5MyksZj1mdW5jdGlvbihfKXtmdW5jdGlvbiBnKGwpe3N3aXRjaChsKXtjYXNlInByaW1hcnkiOnJldHVybiJibHVlIjtjYXNlInN1Y2Nlc3MiOnJldHVybiJzdWNjZXNzIjtjYXNlImluZm8iOnJldHVybiJncmVlbiI7Y2FzZSJ3YXJuaW5nIjpyZXR1cm4id2FybmluZyI7Y2FzZSJkYW5nZXIiOnJldHVybiJlcnJvciI7Y2FzZSJkZWZhdWx0IjpkZWZhdWx0OnJldHVybiJkZWZhdWx0In19ZnVuY3Rpb24geChsKXtpZihsPT09dm9pZCAwKXJldHVybiIiO2lmKF8uZW51bXMpe3ZhciBiPV8uZW51bXNbbF07cmV0dXJuIGIubGFiZWx9aWYoXy5vcHRpb25zKXtpZighQXJyYXkuaXNBcnJheShfLm9wdGlvbnMpKXJldHVybiBjb25zb2xlLmxvZygiRGljdFRhZyBvcHRpb25zIGlzIG5vIGFycmF5ISIpLCIiO3ZhciB1PWMoKShfLm9wdGlvbnMpLGg7dHJ5e2Zvcih1LnMoKTshKGg9dS5uKCkpLmRvbmU7KXt2YXIgVD1oLnZhbHVlO2lmKFQudmFsdWU9PT1sKXJldHVybiBULnRleHR9fWNhdGNoKHYpe3UuZSh2KX1maW5hbGx5e3UuZigpfX1yZXR1cm4gU3RyaW5nKF8udmFsdWUpfWZ1bmN0aW9uIEwobCl7aWYobD09PXZvaWQgMClyZXR1cm4iZGVmYXVsdCI7aWYoXy5lbnVtcyl7dmFyIGI9Xy5lbnVtc1tsXTtyZXR1cm4gYi5saXN0Q2xhc3N8fCJkZWZhdWx0In1pZihfLm9wdGlvbnMpe2lmKCFBcnJheS5pc0FycmF5KF8ub3B0aW9ucykpcmV0dXJuIGNvbnNvbGUubG9nKCJEaWN0VGFnIG9wdGlvbnMgaXMgbm8gYXJyYXkhIiksImRlZmF1bHQiO3ZhciB1PWMoKShfLm9wdGlvbnMpLGg7dHJ5e2Zvcih1LnMoKTshKGg9dS5uKCkpLmRvbmU7KXt2YXIgVD1oLnZhbHVlO2lmKFQudmFsdWU9PT1sKXJldHVybiBULmxpc3RDbGFzc3x8ImRlZmF1bHQifX1jYXRjaCh2KXt1LmUodil9ZmluYWxseXt1LmYoKX19cmV0dXJuIFN0cmluZyhfLnZhbHVlKX12YXIgTz1mdW5jdGlvbigpe3JldHVybiBnKEwoXy52YWx1ZSkudG9Mb3dlckNhc2UoKSl9LEI9ZnVuY3Rpb24oKXtyZXR1cm4geChfLnZhbHVlKX07cmV0dXJuKDAsQy5qc3gpKG8uWix7Y29sb3I6TygpLGNoaWxkcmVuOkIoKX0pfTtqLlo9Zn0sMzM4Njc6ZnVuY3Rpb24oVixqLHQpe3QuZChqLHtpSzpmdW5jdGlvbigpe3JldHVybiBkfSx6YzpmdW5jdGlvbigpe3JldHVybiBEfX0pO3ZhciBkPWZ1bmN0aW9uKG8pe3JldHVybiBvW28uU1VDQ0VTUz0yMDBdPSJTVUNDRVNTIixvW28uRVJST1I9LTFdPSJFUlJPUiIsb1tvLlRJTUVPVVQ9NDAxXT0iVElNRU9VVCIsby5UWVBFPSJzdWNjZXNzIixvfSh7fSksYz1mdW5jdGlvbihvKXtyZXR1cm4gby5HRVQ9IkdFVCIsby5QT1NUPSJQT1NUIixvLlBVVD0iUFVUIixvLkRFTEVURT0iREVMRVRFIixvfSh7fSksRD1mdW5jdGlvbihvKXtyZXR1cm4gby5KU09OPSJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgiLG8uRk9STV9VUkxFTkNPREVEPSJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD1VVEYtOCIsby5GT1JNX0RBVEE9Im11bHRpcGFydC9mb3JtLWRhdGE7Y2hhcnNldD1VVEYtOCIsb30oe30pfSwyNTQ2NDpmdW5jdGlvbihWLGosdCl7dC5yKGopO3ZhciBkPXQoNTU3NCksYz10Lm4oZCksRD10KDY3Mjk0KSxvPXQoMTc3ODgpLEM9dCg3Njc3MiksZj10KDY1Mzg1KSxFPXQoOTI5ODIpLF89dCg5NDE2MiksZz10KDg1ODkzKSx4PWZ1bmN0aW9uKE8pe3ZhciBCPSgwLEQudXNlUmVmKSgpLGw9KDAsRC51c2VTdGF0ZSkoW10pLGI9YygpKGwsMiksdT1iWzBdLGg9YlsxXSxUPSgwLEQudXNlU3RhdGUpKFtdKSx2PWMoKShULDIpLFM9dlswXSx5PXZbMV07KDAsRC51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7KDAsRS5wWCkoInN5c19ub3JtYWxfZGlzYWJsZSIpLnRoZW4oZnVuY3Rpb24ocil7eShyKX0pfSxbT10pO3ZhciBBPSgwLEMudXNlSW50bCkoKSxHPWZ1bmN0aW9uKCl7Ty5vblN1Ym1pdCh1KX0sWj1mdW5jdGlvbigpe08ub25DYW5jZWwoKX0sRj1be3RpdGxlOigwLGcuanN4KShDLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJzeXN0ZW0udXNlci51c2VyX2lkIixkZWZhdWx0TWVzc2FnZToiXHU3NTI4XHU2MjM3XHU3RjE2XHU1M0Y3In0pLGRhdGFJbmRleDoidXNlcklkIix2YWx1ZVR5cGU6InRleHQiLGhpZGVJblNlYXJjaDohMH0se3RpdGxlOigwLGcuanN4KShDLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJzeXN0ZW0udXNlci51c2VyX25hbWUiLGRlZmF1bHRNZXNzYWdlOiJcdTc1MjhcdTYyMzdcdThEMjZcdTUzRjcifSksZGF0YUluZGV4OiJ1c2VyTmFtZSIsdmFsdWVUeXBlOiJ0ZXh0In0se3RpdGxlOigwLGcuanN4KShDLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJzeXN0ZW0udXNlci5uaWNrX25hbWUiLGRlZmF1bHRNZXNzYWdlOiJcdTc1MjhcdTYyMzdcdTY2MzVcdTc5RjAifSksZGF0YUluZGV4OiJuaWNrTmFtZSIsdmFsdWVUeXBlOiJ0ZXh0IixoaWRlSW5TZWFyY2g6ITB9LHt0aXRsZTooMCxnLmpzeCkoQy5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoic3lzdGVtLnVzZXIucGhvbmVudW1iZXIiLGRlZmF1bHRNZXNzYWdlOiJcdTYyNEJcdTY3M0FcdTUzRjdcdTc4MDEifSksZGF0YUluZGV4OiJwaG9uZW51bWJlciIsdmFsdWVUeXBlOiJ0ZXh0In0se3RpdGxlOigwLGcuanN4KShDLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJzeXN0ZW0udXNlci5zdGF0dXMiLGRlZmF1bHRNZXNzYWdlOiJcdTVFMTBcdTUzRjdcdTcyQjZcdTYwMDEifSksZGF0YUluZGV4OiJzdGF0dXMiLHZhbHVlVHlwZToic2VsZWN0IixoaWRlSW5TZWFyY2g6ITAsdmFsdWVFbnVtOlMscmVuZGVyOmZ1bmN0aW9uKG0sTSl7cmV0dXJuKDAsZy5qc3gpKF8uWix7ZW51bXM6Uyx2YWx1ZTpNLnN0YXR1c30pfX0se3RpdGxlOigwLGcuanN4KShDLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJzeXN0ZW0udXNlci5jcmVhdGVfdGltZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NTIxQlx1NUVGQVx1NjVGNlx1OTVGNCJ9KSxkYXRhSW5kZXg6ImNyZWF0ZVRpbWUiLHZhbHVlVHlwZToiZGF0ZVJhbmdlIixoaWRlSW5TZWFyY2g6ITAscmVuZGVyOmZ1bmN0aW9uKG0sTSl7cmV0dXJuKDAsZy5qc3hzKSgic3BhbiIse2NoaWxkcmVuOltNLmNyZWF0ZVRpbWUudG9TdHJpbmcoKSwiICJdfSl9fV07cmV0dXJuKDAsZy5qc3gpKG8uWix7d2lkdGg6ODAwLHRpdGxlOkEuZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5yb2xlLmF1dGgudXNlciIsZGVmYXVsdE1lc3NhZ2U6Ilx1OTAwOVx1NjJFOVx1NzUyOFx1NjIzNyJ9KSxvcGVuOk8ub3BlbixkZXN0cm95T25DbG9zZTohMCxvbk9rOkcsb25DYW5jZWw6WixjaGlsZHJlbjooMCxnLmpzeCkoZi5aLHtoZWFkZXJUaXRsZTpBLmZvcm1hdE1lc3NhZ2Uoe2lkOiJwYWdlcy5zZWFyY2hUYWJsZS50aXRsZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NEZFMVx1NjA2RiJ9KSxhY3Rpb25SZWY6Qixyb3dLZXk6InVzZXJJZCIsc2VhcmNoOntsYWJlbFdpZHRoOjEyMH0sdG9vbGJhcjp7fSxwYXJhbXM6Ty5wYXJhbXMscmVxdWVzdDpPLnJlcXVlc3QsY29sdW1uczpGLHJvd1NlbGVjdGlvbjp7b25DaGFuZ2U6ZnVuY3Rpb24obSl7aChtKX19fSwidXNlckxpc3QiKX0pfTtqLmRlZmF1bHQ9eH0sOTI5ODI6ZnVuY3Rpb24oVixqLHQpe3QuZChqLHtIcjpmdW5jdGlvbigpe3JldHVybiBifSxRSzpmdW5jdGlvbigpe3JldHVybiBafSxWZDpmdW5jdGlvbigpe3JldHVybiBPfSxhNzpmdW5jdGlvbigpe3JldHVybiB2fSxqSzpmdW5jdGlvbigpe3JldHVybiB4fSxuMjpmdW5jdGlvbigpe3JldHVybiBHfSxvSDpmdW5jdGlvbigpe3JldHVybiBofSxwWDpmdW5jdGlvbigpe3JldHVybiBCfSxzRjpmdW5jdGlvbigpe3JldHVybiB5fX0pO3ZhciBkPXQoMTUwMDkpLGM9dC5uKGQpLEQ9dCg5Nzg1Nyksbz10Lm4oRCksQz10KDk5Mjg5KSxmPXQubihDKSxFPXQoNzY3NzIpLF89dCgzMzg2NyksZz10KDMwOTY0KTtmdW5jdGlvbiB4KHIpe3JldHVybiBMLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBMKCl7cmV0dXJuIEw9ZigpKGMoKSgpLm1hcmsoZnVuY3Rpb24gcihtKXtyZXR1cm4gYygpKCkud3JhcChmdW5jdGlvbihzKXtmb3IoOzspc3dpdGNoKHMucHJldj1zLm5leHQpe2Nhc2UgMDpyZXR1cm4gcy5hYnJ1cHQoInJldHVybiIsKDAsRS5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vZGljdC90eXBlL2xpc3QiLHtwYXJhbXM6bygpKHt9LG0pLG1ldGhvZDoiR0VUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In19KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gcy5zdG9wKCl9fSxyKX0pKSxMLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBPKHIpe3JldHVybigwLEUucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RpY3QvdHlwZS8iLmNvbmNhdChyKSx7bWV0aG9kOiJHRVQifSl9ZnVuY3Rpb24gQihyLG0pe3JldHVybiBsLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBsKCl7cmV0dXJuIGw9ZigpKGMoKSgpLm1hcmsoZnVuY3Rpb24gcihtLE0pe3ZhciBzLFI7cmV0dXJuIGMoKSgpLndyYXAoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIGUubmV4dD0yLCgwLEUucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RpY3QvZGF0YS90eXBlLyIuY29uY2F0KG0pLHttZXRob2Q6IkdFVCJ9KTtjYXNlIDI6aWYocz1lLnNlbnQscy5jb2RlIT09Xy5pSy5TVUNDRVNTKXtlLm5leHQ9OTticmVha31yZXR1cm4gUj17fSxzLmRhdGEuZm9yRWFjaChmdW5jdGlvbihuKXtSW24uZGljdFZhbHVlXT17dGV4dDpuLmRpY3RMYWJlbCxsYWJlbDpuLmRpY3RMYWJlbCx2YWx1ZTpNP051bWJlcihuLmRpY3RWYWx1ZSk6bi5kaWN0VmFsdWUsa2V5Om4uZGljdENvZGUsbGlzdENsYXNzOm4ubGlzdENsYXNzLHN0YXR1czpuLmxpc3RDbGFzc319KSxlLmFicnVwdCgicmV0dXJuIixSKTtjYXNlIDk6cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLHt9KTtjYXNlIDEwOmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSxyKX0pKSxsLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBiKHIsbSl7cmV0dXJuIHUuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHUoKXtyZXR1cm4gdT1mKCkoYygpKCkubWFyayhmdW5jdGlvbiByKG0sTSl7dmFyIHMsUjtyZXR1cm4gYygpKCkud3JhcChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gZS5uZXh0PTIsKDAsRS5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vZGljdC9kYXRhL3R5cGUvIi5jb25jYXQobSkse21ldGhvZDoiR0VUIn0pO2Nhc2UgMjppZihzPWUuc2VudCxzLmNvZGUhPT0yMDApe2UubmV4dD02O2JyZWFrfXJldHVybiBSPXMuZGF0YS5tYXAoZnVuY3Rpb24obil7cmV0dXJue3RleHQ6bi5kaWN0TGFiZWwsbGFiZWw6bi5kaWN0TGFiZWwsdmFsdWU6TT9OdW1iZXIobi5kaWN0VmFsdWUpOm4uZGljdFZhbHVlLGtleTpuLmRpY3RDb2RlLGxpc3RDbGFzczpuLmxpc3RDbGFzcyxzdGF0dXM6bi5saXN0Q2xhc3N9fSksZS5hYnJ1cHQoInJldHVybiIsUik7Y2FzZSA2OnJldHVybiBlLmFicnVwdCgicmV0dXJuIixbXSk7Y2FzZSA3OmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSxyKX0pKSx1LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBoKHIpe3JldHVybiBULmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBUKCl7cmV0dXJuIFQ9ZigpKGMoKSgpLm1hcmsoZnVuY3Rpb24gcihtKXtyZXR1cm4gYygpKCkud3JhcChmdW5jdGlvbihzKXtmb3IoOzspc3dpdGNoKHMucHJldj1zLm5leHQpe2Nhc2UgMDpyZXR1cm4gcy5hYnJ1cHQoInJldHVybiIsKDAsRS5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vZGljdC90eXBlIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In0sZGF0YTptfSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIHMuc3RvcCgpfX0scil9KSksVC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gdihyKXtyZXR1cm4gUy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gUygpe3JldHVybiBTPWYoKShjKCkoKS5tYXJrKGZ1bmN0aW9uIHIobSl7cmV0dXJuIGMoKSgpLndyYXAoZnVuY3Rpb24ocyl7Zm9yKDs7KXN3aXRjaChzLnByZXY9cy5uZXh0KXtjYXNlIDA6cmV0dXJuIHMuYWJydXB0KCJyZXR1cm4iLCgwLEUucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RpY3QvdHlwZSIse21ldGhvZDoiUFVUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In0sZGF0YTptfSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIHMuc3RvcCgpfX0scil9KSksUy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24geShyKXtyZXR1cm4gQS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gQSgpe3JldHVybiBBPWYoKShjKCkoKS5tYXJrKGZ1bmN0aW9uIHIobSl7cmV0dXJuIGMoKSgpLndyYXAoZnVuY3Rpb24ocyl7Zm9yKDs7KXN3aXRjaChzLnByZXY9cy5uZXh0KXtjYXNlIDA6cmV0dXJuIHMuYWJydXB0KCJyZXR1cm4iLCgwLEUucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RpY3QvdHlwZS8iLmNvbmNhdChtKSx7bWV0aG9kOiJERUxFVEUifSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIHMuc3RvcCgpfX0scil9KSksQS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gRyhyKXtyZXR1cm4oMCxnLnN1KSgiL2FwaS9zeXN0ZW0vZGljdC90eXBlL2V4cG9ydCIse3BhcmFtczpyfSwiZGljdF90eXBlXyIuY29uY2F0KG5ldyBEYXRlKCkuZ2V0VGltZSgpLCIueGxzeCIpKX1mdW5jdGlvbiBaKHIpe3JldHVybiBGLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBGKCl7cmV0dXJuIEY9ZigpKGMoKSgpLm1hcmsoZnVuY3Rpb24gcihtKXtyZXR1cm4gYygpKCkud3JhcChmdW5jdGlvbihzKXtmb3IoOzspc3dpdGNoKHMucHJldj1zLm5leHQpe2Nhc2UgMDpyZXR1cm4gcy5hYnJ1cHQoInJldHVybiIsKDAsRS5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vZGljdC90eXBlL29wdGlvbnNlbGVjdCIse3BhcmFtczpvKCkoe30sbSksbWV0aG9kOiJHRVQiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgifX0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBzLnN0b3AoKX19LHIpfSkpLEYuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0sMzA5NjQ6ZnVuY3Rpb24oVixqLHQpe3QuZChqLHtwNjpmdW5jdGlvbigpe3JldHVybiB4fSxzdTpmdW5jdGlvbigpe3JldHVybiBMfX0pO3ZhciBkPXQoMTUwMDkpLGM9dC5uKGQpLEQ9dCg5Nzg1Nyksbz10Lm4oRCksQz10KDk5Mjg5KSxmPXQubihDKSxFPXQoNzY3NzIpLF89e3hsc3g6ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0Iix6aXA6ImFwcGxpY2F0aW9uL3ppcCJ9O2Z1bmN0aW9uIGcobCxiKXt2YXIgdT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIiksaD1uZXcgQmxvYihbbC5kYXRhXSx7dHlwZTpifSksVD1uZXcgUmVnRXhwKCJmaWxlbmFtZT0oW147XStcXC5bXlxcLjtdKyk7KiIpLHY9ZGVjb2RlVVJJKGwuaGVhZGVyc1siY29udGVudC1kaXNwb3NpdGlvbiJdKSxTPVQuZXhlYyh2KSx5PVM/U1sxXToiZmlsZSI7eT15LnJlcGxhY2UoLyIvZywiIiksdS5zdHlsZS5kaXNwbGF5PSJub25lIix1LmhyZWY9VVJMLmNyZWF0ZU9iamVjdFVSTChoKSx1LnNldEF0dHJpYnV0ZSgiZG93bmxvYWQiLHkpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodSksdS5jbGljaygpLFVSTC5yZXZva2VPYmplY3RVUkwodS5ocmVmKSxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHUpfWZ1bmN0aW9uIHgobCl7KDAsRS5yZXF1ZXN0KShsLHttZXRob2Q6IkdFVCIscmVzcG9uc2VUeXBlOiJibG9iIixnZXRSZXNwb25zZTohMH0pLnRoZW4oZnVuY3Rpb24oYil7ZyhiLF8uemlwKX0pfWZ1bmN0aW9uIEwobCxiLHUpe3JldHVybiBPLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBPKCl7cmV0dXJuIE89ZigpKGMoKSgpLm1hcmsoZnVuY3Rpb24gbChiLHUsaCl7cmV0dXJuIGMoKSgpLndyYXAoZnVuY3Rpb24odil7Zm9yKDs7KXN3aXRjaCh2LnByZXY9di5uZXh0KXtjYXNlIDA6cmV0dXJuIHYuYWJydXB0KCJyZXR1cm4iLCgwLEUucmVxdWVzdCkoYixvKCkobygpKHt9LHUpLHt9LHttZXRob2Q6IlBPU1QiLHJlc3BvbnNlVHlwZToiYmxvYiJ9KSkudGhlbihmdW5jdGlvbihTKXt2YXIgeT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIiksQT1TO3kuc3R5bGUuZGlzcGxheT0ibm9uZSIseS5ocmVmPVVSTC5jcmVhdGVPYmplY3RVUkwoQSkseS5zZXRBdHRyaWJ1dGUoImRvd25sb2FkIixoKSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHkpLHkuY2xpY2soKSxVUkwucmV2b2tlT2JqZWN0VVJMKHkuaHJlZiksZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh5KX0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiB2LnN0b3AoKX19LGwpfSkpLE8uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEIobCl7d2luZG93LmxvY2F0aW9uLmhyZWY9Ii9hcGkvY29tbW9uL2Rvd25sb2FkP2ZpbGVOYW1lPSIuY29uY2F0KGVuY29kZVVSSShsKSwiJmRlbGV0ZT0iLCEwKX19LDY2MzA5OmZ1bmN0aW9uKFYsaix0KXt0LmQoaix7WjpmdW5jdGlvbigpe3JldHVybiBZfX0pO3ZhciBkPXQoNjcyOTQpLGM9dCg5Mzk2NyksRD10Lm4oYyksbz10KDk4NDIzKSxDPXQoOTg3ODcpLGY9dCg2OTc2MCksRT10KDk2MTU5KSxfPXQoNDUzNTMpLGc9dCg1MzEyNCkseD10KDExNTY4KSxMPXQoMTUwNjMpLE89dCgxNDc0NyksQj10KDgzMjYyKSxsPXQoODM1NTkpO2NvbnN0IGI9ZT0+e2NvbnN0e3BhZGRpbmdYWFM6bixsaW5lV2lkdGg6cCx0YWdQYWRkaW5nSG9yaXpvbnRhbDphLGNvbXBvbmVudENsczppLGNhbGM6VX09ZSxQPVUoYSkuc3ViKHApLmVxdWFsKCksdz1VKG4pLnN1YihwKS5lcXVhbCgpO3JldHVybntbaV06T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCgwLE8uV2YpKGUpKSx7ZGlzcGxheToiaW5saW5lLWJsb2NrIixoZWlnaHQ6ImF1dG8iLG1hcmdpbklubGluZUVuZDplLm1hcmdpblhTLHBhZGRpbmdJbmxpbmU6UCxmb250U2l6ZTplLnRhZ0ZvbnRTaXplLGxpbmVIZWlnaHQ6ZS50YWdMaW5lSGVpZ2h0LHdoaXRlU3BhY2U6Im5vd3JhcCIsYmFja2dyb3VuZDplLmRlZmF1bHRCZyxib3JkZXI6YCR7KDAseC5iZikoZS5saW5lV2lkdGgpfSAke2UubGluZVR5cGV9ICR7ZS5jb2xvckJvcmRlcn1gLGJvcmRlclJhZGl1czplLmJvcmRlclJhZGl1c1NNLG9wYWNpdHk6MSx0cmFuc2l0aW9uOmBhbGwgJHtlLm1vdGlvbkR1cmF0aW9uTWlkfWAsdGV4dEFsaWduOiJzdGFydCIscG9zaXRpb246InJlbGF0aXZlIixbYCYke2l9LXJ0bGBdOntkaXJlY3Rpb246InJ0bCJ9LCImLCBhLCBhOmhvdmVyIjp7Y29sb3I6ZS5kZWZhdWx0Q29sb3J9LFtgJHtpfS1jbG9zZS1pY29uYF06e21hcmdpbklubGluZVN0YXJ0OncsZm9udFNpemU6ZS50YWdJY29uU2l6ZSxjb2xvcjplLmNvbG9yVGV4dERlc2NyaXB0aW9uLGN1cnNvcjoicG9pbnRlciIsdHJhbnNpdGlvbjpgYWxsICR7ZS5tb3Rpb25EdXJhdGlvbk1pZH1gLCImOmhvdmVyIjp7Y29sb3I6ZS5jb2xvclRleHRIZWFkaW5nfX0sW2AmJHtpfS1oYXMtY29sb3JgXTp7Ym9yZGVyQ29sb3I6InRyYW5zcGFyZW50IixbYCYsIGEsIGE6aG92ZXIsICR7ZS5pY29uQ2xzfS1jbG9zZSwgJHtlLmljb25DbHN9LWNsb3NlOmhvdmVyYF06e2NvbG9yOmUuY29sb3JUZXh0TGlnaHRTb2xpZH19LCImLWNoZWNrYWJsZSI6e2JhY2tncm91bmRDb2xvcjoidHJhbnNwYXJlbnQiLGJvcmRlckNvbG9yOiJ0cmFuc3BhcmVudCIsY3Vyc29yOiJwb2ludGVyIixbYCY6bm90KCR7aX0tY2hlY2thYmxlLWNoZWNrZWQpOmhvdmVyYF06e2NvbG9yOmUuY29sb3JQcmltYXJ5LGJhY2tncm91bmRDb2xvcjplLmNvbG9yRmlsbFNlY29uZGFyeX0sIiY6YWN0aXZlLCAmLWNoZWNrZWQiOntjb2xvcjplLmNvbG9yVGV4dExpZ2h0U29saWR9LCImLWNoZWNrZWQiOntiYWNrZ3JvdW5kQ29sb3I6ZS5jb2xvclByaW1hcnksIiY6aG92ZXIiOntiYWNrZ3JvdW5kQ29sb3I6ZS5jb2xvclByaW1hcnlIb3Zlcn19LCImOmFjdGl2ZSI6e2JhY2tncm91bmRDb2xvcjplLmNvbG9yUHJpbWFyeUFjdGl2ZX19LCImLWhpZGRlbiI6e2Rpc3BsYXk6Im5vbmUifSxbYD4gJHtlLmljb25DbHN9ICsgc3BhbiwgPiBzcGFuICsgJHtlLmljb25DbHN9YF06e21hcmdpbklubGluZVN0YXJ0OlB9fSksW2Ake2l9LWJvcmRlcmxlc3NgXTp7Ym9yZGVyQ29sb3I6InRyYW5zcGFyZW50IixiYWNrZ3JvdW5kOmUudGFnQm9yZGVybGVzc0JnfX19LHU9ZT0+e2NvbnN0e2xpbmVXaWR0aDpuLGZvbnRTaXplSWNvbjpwLGNhbGM6YX09ZSxpPWUuZm9udFNpemVTTTtyZXR1cm4oMCxCLklYKShlLHt0YWdGb250U2l6ZTppLHRhZ0xpbmVIZWlnaHQ6KDAseC5iZikoYShlLmxpbmVIZWlnaHRTTSkubXVsKGkpLmVxdWFsKCkpLHRhZ0ljb25TaXplOmEocCkuc3ViKGEobikubXVsKDIpKS5lcXVhbCgpLHRhZ1BhZGRpbmdIb3Jpem9udGFsOjgsdGFnQm9yZGVybGVzc0JnOmUuZGVmYXVsdEJnfSl9LGg9ZT0+KHtkZWZhdWx0Qmc6bmV3IEwudChlLmNvbG9yRmlsbFF1YXRlcm5hcnkpLm9uQmFja2dyb3VuZChlLmNvbG9yQmdDb250YWluZXIpLnRvSGV4U3RyaW5nKCksZGVmYXVsdENvbG9yOmUuY29sb3JUZXh0fSk7dmFyIFQ9KDAsbC5JJCkoIlRhZyIsZT0+e2NvbnN0IG49dShlKTtyZXR1cm4gYihuKX0saCksdj1mdW5jdGlvbihlLG4pe3ZhciBwPXt9O2Zvcih2YXIgYSBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLGEpJiZuLmluZGV4T2YoYSk8MCYmKHBbYV09ZVthXSk7aWYoZSE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBpPTAsYT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2k8YS5sZW5ndGg7aSsrKW4uaW5kZXhPZihhW2ldKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxhW2ldKSYmKHBbYVtpXV09ZVthW2ldXSk7cmV0dXJuIHB9LHk9ZC5mb3J3YXJkUmVmKChlLG4pPT57Y29uc3R7cHJlZml4Q2xzOnAsc3R5bGU6YSxjbGFzc05hbWU6aSxjaGVja2VkOlUsb25DaGFuZ2U6UCxvbkNsaWNrOnd9PWUsJD12KGUsWyJwcmVmaXhDbHMiLCJzdHlsZSIsImNsYXNzTmFtZSIsImNoZWNrZWQiLCJvbkNoYW5nZSIsIm9uQ2xpY2siXSkse2dldFByZWZpeENsczpYLHRhZzpLfT1kLnVzZUNvbnRleHQoZy5FXyksUT1KPT57UD09bnVsbHx8UCghVSksdz09bnVsbHx8dyhKKX0sTj1YKCJ0YWciLHApLFtrLHEsV109VChOKSxlZT1EKCkoTixgJHtOfS1jaGVja2FibGVgLHtbYCR7Tn0tY2hlY2thYmxlLWNoZWNrZWRgXTpVfSxLPT1udWxsP3ZvaWQgMDpLLmNsYXNzTmFtZSxpLHEsVyk7cmV0dXJuIGsoZC5jcmVhdGVFbGVtZW50KCJzcGFuIixPYmplY3QuYXNzaWduKHt9LCQse3JlZjpuLHN0eWxlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxhKSxLPT1udWxsP3ZvaWQgMDpLLnN0eWxlKSxjbGFzc05hbWU6ZWUsb25DbGljazpRfSkpKX0pLEE9dCg5ODcxOSk7Y29uc3QgRz1lPT4oMCxBLlopKGUsKG4scCk9PntsZXR7dGV4dENvbG9yOmEsbGlnaHRCb3JkZXJDb2xvcjppLGxpZ2h0Q29sb3I6VSxkYXJrQ29sb3I6UH09cDtyZXR1cm57W2Ake2UuY29tcG9uZW50Q2xzfSR7ZS5jb21wb25lbnRDbHN9LSR7bn1gXTp7Y29sb3I6YSxiYWNrZ3JvdW5kOlUsYm9yZGVyQ29sb3I6aSwiJi1pbnZlcnNlIjp7Y29sb3I6ZS5jb2xvclRleHRMaWdodFNvbGlkLGJhY2tncm91bmQ6UCxib3JkZXJDb2xvcjpQfSxbYCYke2UuY29tcG9uZW50Q2xzfS1ib3JkZXJsZXNzYF06e2JvcmRlckNvbG9yOiJ0cmFuc3BhcmVudCJ9fX19KTt2YXIgWj0oMCxsLmJrKShbIlRhZyIsInByZXNldCJdLGU9Pntjb25zdCBuPXUoZSk7cmV0dXJuIEcobil9LGgpO2Z1bmN0aW9uIEYoZSl7cmV0dXJuIHR5cGVvZiBlIT0ic3RyaW5nIj9lOmUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrZS5zbGljZSgxKX1jb25zdCByPShlLG4scCk9Pntjb25zdCBhPUYocCk7cmV0dXJue1tgJHtlLmNvbXBvbmVudENsc30ke2UuY29tcG9uZW50Q2xzfS0ke259YF06e2NvbG9yOmVbYGNvbG9yJHtwfWBdLGJhY2tncm91bmQ6ZVtgY29sb3Ike2F9QmdgXSxib3JkZXJDb2xvcjplW2Bjb2xvciR7YX1Cb3JkZXJgXSxbYCYke2UuY29tcG9uZW50Q2xzfS1ib3JkZXJsZXNzYF06e2JvcmRlckNvbG9yOiJ0cmFuc3BhcmVudCJ9fX19O3ZhciBtPSgwLGwuYmspKFsiVGFnIiwic3RhdHVzIl0sZT0+e2NvbnN0IG49dShlKTtyZXR1cm5bcihuLCJzdWNjZXNzIiwiU3VjY2VzcyIpLHIobiwicHJvY2Vzc2luZyIsIkluZm8iKSxyKG4sImVycm9yIiwiRXJyb3IiKSxyKG4sIndhcm5pbmciLCJXYXJuaW5nIildfSxoKSxNPWZ1bmN0aW9uKGUsbil7dmFyIHA9e307Zm9yKHZhciBhIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsYSkmJm4uaW5kZXhPZihhKTwwJiYocFthXT1lW2FdKTtpZihlIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIGk9MCxhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7aTxhLmxlbmd0aDtpKyspbi5pbmRleE9mKGFbaV0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLGFbaV0pJiYocFthW2ldXT1lW2FbaV1dKTtyZXR1cm4gcH07Y29uc3QgUj1kLmZvcndhcmRSZWYoKGUsbik9Pntjb25zdHtwcmVmaXhDbHM6cCxjbGFzc05hbWU6YSxyb290Q2xhc3NOYW1lOmksc3R5bGU6VSxjaGlsZHJlbjpQLGljb246dyxjb2xvcjokLG9uQ2xvc2U6WCxib3JkZXJlZDpLPSEwLHZpc2libGU6UX09ZSxOPU0oZSxbInByZWZpeENscyIsImNsYXNzTmFtZSIsInJvb3RDbGFzc05hbWUiLCJzdHlsZSIsImNoaWxkcmVuIiwiaWNvbiIsImNvbG9yIiwib25DbG9zZSIsImJvcmRlcmVkIiwidmlzaWJsZSJdKSx7Z2V0UHJlZml4Q2xzOmssZGlyZWN0aW9uOnEsdGFnOld9PWQudXNlQ29udGV4dChnLkVfKSxbZWUsSl09ZC51c2VTdGF0ZSghMCksaWU9KDAsby5aKShOLFsiY2xvc2VJY29uIiwiY2xvc2FibGUiXSk7ZC51c2VFZmZlY3QoKCk9PntRIT09dm9pZCAwJiZKKFEpfSxbUV0pO2NvbnN0IHJlPSgwLEMubzIpKCQpLGFlPSgwLEMueVQpKCQpLHRlPXJlfHxhZSxjZT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe2JhY2tncm91bmRDb2xvcjokJiYhdGU/JDp2b2lkIDB9LFc9PW51bGw/dm9pZCAwOlcuc3R5bGUpLFUpLEk9aygidGFnIixwKSxbZGUsX2UsbWVdPVQoSSkscGU9RCgpKEksVz09bnVsbD92b2lkIDA6Vy5jbGFzc05hbWUse1tgJHtJfS0keyR9YF06dGUsW2Ake0l9LWhhcy1jb2xvcmBdOiQmJiF0ZSxbYCR7SX0taGlkZGVuYF06IWVlLFtgJHtJfS1ydGxgXTpxPT09InJ0bCIsW2Ake0l9LWJvcmRlcmxlc3NgXTohS30sYSxpLF9lLG1lKSxzZT16PT57ei5zdG9wUHJvcGFnYXRpb24oKSxYPT1udWxsfHxYKHopLCF6LmRlZmF1bHRQcmV2ZW50ZWQmJkooITEpfSxbLGdlXT0oMCxmLlopKCgwLGYudykoZSksKDAsZi53KShXKSx7Y2xvc2FibGU6ITEsY2xvc2VJY29uUmVuZGVyOno9Pntjb25zdCBoZT1kLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6YCR7SX0tY2xvc2UtaWNvbmAsb25DbGljazpzZX0seik7cmV0dXJuKDAsRS53bSkoeixoZSxIPT4oe29uQ2xpY2s6dWU9Pnt2YXIgbmU7KG5lPUg9PW51bGw/dm9pZCAwOkgub25DbGljayk9PT1udWxsfHxuZT09PXZvaWQgMHx8bmUuY2FsbChILHVlKSxzZSh1ZSl9LGNsYXNzTmFtZTpEKCkoSD09bnVsbD92b2lkIDA6SC5jbGFzc05hbWUsYCR7SX0tY2xvc2UtaWNvbmApfSkpfX0pLGZlPXR5cGVvZiBOLm9uQ2xpY2s9PSJmdW5jdGlvbiJ8fFAmJlAudHlwZT09PSJhIixvZT13fHxudWxsLGJlPW9lP2QuY3JlYXRlRWxlbWVudChkLkZyYWdtZW50LG51bGwsb2UsUCYmZC5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLFApKTpQLGxlPWQuY3JlYXRlRWxlbWVudCgic3BhbiIsT2JqZWN0LmFzc2lnbih7fSxpZSx7cmVmOm4sY2xhc3NOYW1lOnBlLHN0eWxlOmNlfSksYmUsZ2UscmUmJmQuY3JlYXRlRWxlbWVudChaLHtrZXk6InByZXNldCIscHJlZml4Q2xzOkl9KSxhZSYmZC5jcmVhdGVFbGVtZW50KG0se2tleToic3RhdHVzIixwcmVmaXhDbHM6SX0pKTtyZXR1cm4gZGUoZmU/ZC5jcmVhdGVFbGVtZW50KF8uWix7Y29tcG9uZW50OiJUYWcifSxsZSk6bGUpfSk7Ui5DaGVja2FibGVUYWc9eTt2YXIgWT1SfX1dKTsKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNTQ4Mi5kYmI2N2M2My5hc3luYy5qcyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNTQ4Mi5kYmI2N2M2My5hc3luYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zM2M5MDYyCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy81NDgyLmRiYjY3YzYzLmFzeW5jLmpzCkBAIC0wLDAgKzEgQEAKKyJ1c2Ugc3RyaWN0Ijsoc2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Bybz1zZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvfHxbXSkucHVzaChbWzU0ODJdLHszMTE5OTpmdW5jdGlvbih4LEUsZSl7dmFyIGw9ZSgxNDEzKSxfPWUoOTEpLHA9ZSg2NzI5NCksdj1lKDkyMTc5KSxNPWUoODU4OTMpLEQ9WyJmaWVsZFByb3BzIiwibWluIiwicHJvRmllbGRQcm9wcyIsIm1heCJdLE89ZnVuY3Rpb24ocyxUKXt2YXIgYz1zLmZpZWxkUHJvcHMsZD1zLm1pbixvPXMucHJvRmllbGRQcm9wcyxpPXMubWF4LGE9KDAsXy5aKShzLEQpO3JldHVybigwLE0uanN4KSh2LlosKDAsbC5aKSh7dmFsdWVUeXBlOiJkaWdpdCIsZmllbGRQcm9wczooMCxsLlopKHttaW46ZCxtYXg6aX0sYykscmVmOlQsZmlsZWRDb25maWc6e2RlZmF1bHRQcm9wczp7d2lkdGg6IjEwMCUifX0scHJvRmllbGRQcm9wczpvfSxhKSl9LGY9cC5mb3J3YXJkUmVmKE8pO0UuWj1mfSw4NjYxNTpmdW5jdGlvbih4LEUsZSl7dmFyIGw9ZSgxNDEzKSxfPWUoOTEpLHA9ZSgyMjI3MCksdj1lKDc4MDQ1KSxNPWUoNjcyOTQpLEQ9ZSg5MDc4OSksTz1lKDkyMTc5KSxmPWUoODU4OTMpLG09WyJmaWVsZFByb3BzIiwib3B0aW9ucyIsInJhZGlvVHlwZSIsImxheW91dCIsInByb0ZpZWxkUHJvcHMiLCJ2YWx1ZUVudW0iXSxzPU0uZm9yd2FyZFJlZihmdW5jdGlvbihvLGkpe3ZhciBhPW8uZmllbGRQcm9wcyxCPW8ub3B0aW9ucyxDPW8ucmFkaW9UeXBlLHI9by5sYXlvdXQsdD1vLnByb0ZpZWxkUHJvcHMsUD1vLnZhbHVlRW51bSxuPSgwLF8uWikobyxtKTtyZXR1cm4oMCxmLmpzeCkoTy5aLCgwLGwuWikoKDAsbC5aKSh7dmFsdWVUeXBlOkM9PT0iYnV0dG9uIj8icmFkaW9CdXR0b24iOiJyYWRpbyIscmVmOmksdmFsdWVFbnVtOigwLHAuaCkoUCx2b2lkIDApfSxuKSx7fSx7ZmllbGRQcm9wczooMCxsLlopKHtvcHRpb25zOkIsbGF5b3V0OnJ9LGEpLHByb0ZpZWxkUHJvcHM6dCxmaWxlZENvbmZpZzp7Y3VzdG9tTGlnaHRNb2RlOiEwfX0pKX0pLFQ9TS5mb3J3YXJkUmVmKGZ1bmN0aW9uKG8saSl7dmFyIGE9by5maWVsZFByb3BzLEI9by5jaGlsZHJlbjtyZXR1cm4oMCxmLmpzeCkodi5aUCwoMCxsLlopKCgwLGwuWikoe30sYSkse30se3JlZjppLGNoaWxkcmVuOkJ9KSl9KSxjPSgwLEQuRykoVCx7dmFsdWVQcm9wTmFtZToiY2hlY2tlZCIsaWdub3JlV2lkdGg6ITB9KSxkPWM7ZC5Hcm91cD1zLGQuQnV0dG9uPXYuWlAuQnV0dG9uLGQuZGlzcGxheU5hbWU9IlByb0Zvcm1Db21wb25lbnQiLEUuWj1kfSw5MDY3MjpmdW5jdGlvbih4LEUsZSl7dmFyIGw9ZSgxNDEzKSxfPWUoOTEpLHA9ZSg2NzI5NCksdj1lKDkyMTc5KSxNPWUoODU4OTMpLEQ9WyJmaWVsZFByb3BzIiwicHJvRmllbGRQcm9wcyJdLE89ZnVuY3Rpb24obSxzKXt2YXIgVD1tLmZpZWxkUHJvcHMsYz1tLnByb0ZpZWxkUHJvcHMsZD0oMCxfLlopKG0sRCk7cmV0dXJuKDAsTS5qc3gpKHYuWiwoMCxsLlopKHtyZWY6cyx2YWx1ZVR5cGU6InRleHRhcmVhIixmaWVsZFByb3BzOlQscHJvRmllbGRQcm9wczpjfSxkKSl9O0UuWj1wLmZvcndhcmRSZWYoTyl9LDU5NjY6ZnVuY3Rpb24oeCxFLGUpe3ZhciBsPWUoOTc2ODUpLF89ZSgxNDEzKSxwPWUoOTEpLHY9ZSgyMTc3MCksTT1lKDk5ODU5KSxEPWUoNTUyNDEpLE89ZSg5ODQyMyksZj1lKDY3Mjk0KSxtPWUoOTIxNzkpLHM9ZSg4NTg5MyksVD1bImZpZWxkUHJvcHMiLCJwcm9GaWVsZFByb3BzIl0sYz1bImZpZWxkUHJvcHMiLCJwcm9GaWVsZFByb3BzIl0sZD0idGV4dCIsbz1mdW5jdGlvbihyKXt2YXIgdD1yLmZpZWxkUHJvcHMsUD1yLnByb0ZpZWxkUHJvcHMsbj0oMCxwLlopKHIsVCk7cmV0dXJuKDAscy5qc3gpKG0uWiwoMCxfLlopKHt2YWx1ZVR5cGU6ZCxmaWVsZFByb3BzOnQsZmlsZWRDb25maWc6e3ZhbHVlVHlwZTpkfSxwcm9GaWVsZFByb3BzOlB9LG4pKX0saT1mdW5jdGlvbihyKXt2YXIgdD0oMCx2LlopKHIub3Blbnx8ITEse3ZhbHVlOnIub3BlbixvbkNoYW5nZTpyLm9uT3BlbkNoYW5nZX0pLFA9KDAsbC5aKSh0LDIpLG49UFswXSxSPVBbMV07cmV0dXJuKDAscy5qc3gpKE0uWi5JdGVtLHtzaG91bGRVcGRhdGU6ITAsbm9TdHlsZTohMCxjaGlsZHJlbjpmdW5jdGlvbihXKXt2YXIgZyxBPVcuZ2V0RmllbGRWYWx1ZShyLm5hbWV8fFtdKTtyZXR1cm4oMCxzLmpzeCkoRC5aLCgwLF8uWikoKDAsXy5aKSh7Z2V0UG9wdXBDb250YWluZXI6ZnVuY3Rpb24odSl7cmV0dXJuIHUmJnUucGFyZW50Tm9kZT91LnBhcmVudE5vZGU6dX0sb25PcGVuQ2hhbmdlOmZ1bmN0aW9uKHUpe3JldHVybiBSKHUpfSxjb250ZW50OigwLHMuanN4cykoImRpdiIse3N0eWxlOntwYWRkaW5nOiI0cHggMCJ9LGNoaWxkcmVuOlsoZz1yLnN0YXR1c1JlbmRlcik9PT1udWxsfHxnPT09dm9pZCAwP3ZvaWQgMDpnLmNhbGwocixBKSxyLnN0cmVuZ3RoVGV4dD8oMCxzLmpzeCkoImRpdiIse3N0eWxlOnttYXJnaW5Ub3A6MTB9LGNoaWxkcmVuOigwLHMuanN4KSgic3BhbiIse2NoaWxkcmVuOnIuc3RyZW5ndGhUZXh0fSl9KTpudWxsXX0pLG92ZXJsYXlTdHlsZTp7d2lkdGg6MjQwfSxwbGFjZW1lbnQ6InJpZ2h0VG9wIn0sci5wb3BvdmVyUHJvcHMpLHt9LHtvcGVuOm4sY2hpbGRyZW46ci5jaGlsZHJlbn0pKX19KX0sYT1mdW5jdGlvbihyKXt2YXIgdD1yLmZpZWxkUHJvcHMsUD1yLnByb0ZpZWxkUHJvcHMsbj0oMCxwLlopKHIsYyksUj0oMCxmLnVzZVN0YXRlKSghMSksRj0oMCxsLlopKFIsMiksVz1GWzBdLGc9RlsxXTtyZXR1cm4gdCE9bnVsbCYmdC5zdGF0dXNSZW5kZXImJm4ubmFtZT8oMCxzLmpzeCkoaSx7bmFtZTpuLm5hbWUsc3RhdHVzUmVuZGVyOnQ9PW51bGw/dm9pZCAwOnQuc3RhdHVzUmVuZGVyLHBvcG92ZXJQcm9wczp0PT1udWxsP3ZvaWQgMDp0LnBvcG92ZXJQcm9wcyxzdHJlbmd0aFRleHQ6dD09bnVsbD92b2lkIDA6dC5zdHJlbmd0aFRleHQsb3BlbjpXLG9uT3BlbkNoYW5nZTpnLGNoaWxkcmVuOigwLHMuanN4KSgiZGl2Iix7Y2hpbGRyZW46KDAscy5qc3gpKG0uWiwoMCxfLlopKHt2YWx1ZVR5cGU6InBhc3N3b3JkIixmaWVsZFByb3BzOigwLF8uWikoKDAsXy5aKSh7fSwoMCxPLlopKHQsWyJzdGF0dXNSZW5kZXIiLCJwb3BvdmVyUHJvcHMiLCJzdHJlbmd0aFRleHQiXSkpLHt9LHtvbkJsdXI6ZnVuY3Rpb24oaCl7dmFyIHU7dD09bnVsbHx8KHU9dC5vbkJsdXIpPT09bnVsbHx8dT09PXZvaWQgMHx8dS5jYWxsKHQsaCksZyghMSl9LG9uQ2xpY2s6ZnVuY3Rpb24oaCl7dmFyIHU7dD09bnVsbHx8KHU9dC5vbkNsaWNrKT09PW51bGx8fHU9PT12b2lkIDB8fHUuY2FsbCh0LGgpLGcoITApfX0pLHByb0ZpZWxkUHJvcHM6UCxmaWxlZENvbmZpZzp7dmFsdWVUeXBlOmR9fSxuKSl9KX0pOigwLHMuanN4KShtLlosKDAsXy5aKSh7dmFsdWVUeXBlOiJwYXNzd29yZCIsZmllbGRQcm9wczp0LHByb0ZpZWxkUHJvcHM6UCxmaWxlZENvbmZpZzp7dmFsdWVUeXBlOmR9fSxuKSl9LEI9bztCLlBhc3N3b3JkPWEsQi5kaXNwbGF5TmFtZT0iUHJvRm9ybUNvbXBvbmVudCIsRS5aPUJ9LDc1NDgyOmZ1bmN0aW9uKHgsRSxlKXtlLnIoRSk7dmFyIGw9ZSgxNTAwOSksXz1lLm4obCkscD1lKDk5Mjg5KSx2PWUubihwKSxNPWUoNTU3NCksRD1lLm4oTSksTz1lKDY3Mjk0KSxmPWUoOTcyNjkpLG09ZSgzMTE5OSkscz1lKDU5NjYpLFQ9ZSg4NjYxNSksYz1lKDkwNjcyKSxkPWUoOTk4NTkpLG89ZSgxNzc4OCksaT1lKDc2NzcyKSxhPWUoODU4OTMpLEI9ZnVuY3Rpb24ocil7dmFyIHQ9ZC5aLnVzZUZvcm0oKSxQPUQoKSh0LDEpLG49UFswXSxSPXIuc3RhdHVzT3B0aW9uczsoMCxPLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtuLnJlc2V0RmllbGRzKCksbi5zZXRGaWVsZHNWYWx1ZSh7ZGljdElkOnIudmFsdWVzLmRpY3RJZCxkaWN0TmFtZTpyLnZhbHVlcy5kaWN0TmFtZSxkaWN0VHlwZTpyLnZhbHVlcy5kaWN0VHlwZSxzdGF0dXM6ci52YWx1ZXMuc3RhdHVzLGNyZWF0ZUJ5OnIudmFsdWVzLmNyZWF0ZUJ5LGNyZWF0ZVRpbWU6ci52YWx1ZXMuY3JlYXRlVGltZSx1cGRhdGVCeTpyLnZhbHVlcy51cGRhdGVCeSx1cGRhdGVUaW1lOnIudmFsdWVzLnVwZGF0ZVRpbWUscmVtYXJrOnIudmFsdWVzLnJlbWFya30pfSxbbixyXSk7dmFyIEY9KDAsaS51c2VJbnRsKSgpLFc9ZnVuY3Rpb24oKXtuLnN1Ym1pdCgpfSxnPWZ1bmN0aW9uKCl7ci5vbkNhbmNlbCgpfSxBPWZ1bmN0aW9uKCl7dmFyIGg9digpKF8oKSgpLm1hcmsoZnVuY3Rpb24gdShJKXtyZXR1cm4gXygpKCkud3JhcChmdW5jdGlvbihqKXtmb3IoOzspc3dpdGNoKGoucHJldj1qLm5leHQpe2Nhc2UgMDpyLm9uU3VibWl0KEkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGouc3RvcCgpfX0sdSl9KSk7cmV0dXJuIGZ1bmN0aW9uKEkpe3JldHVybiBoLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCk7cmV0dXJuKDAsYS5qc3gpKG8uWix7d2lkdGg6NjQwLHRpdGxlOkYuZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5kaWN0LnRpdGxlIixkZWZhdWx0TWVzc2FnZToiXHU3RjE2XHU4RjkxXHU1QjU3XHU1MTc4XHU3QzdCXHU1NzhCIn0pLG9wZW46ci5vcGVuLGZvcmNlUmVuZGVyOiEwLGRlc3Ryb3lPbkNsb3NlOiEwLG9uT2s6VyxvbkNhbmNlbDpnLGNoaWxkcmVuOigwLGEuanN4cykoZi5BLHtmb3JtOm4sZ3JpZDohMCxzdWJtaXR0ZXI6ITEsbGF5b3V0OiJob3Jpem9udGFsIixvbkZpbmlzaDpBLGNoaWxkcmVuOlsoMCxhLmpzeCkobS5aLHtuYW1lOiJkaWN0SWQiLGxhYmVsOkYuZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5kaWN0LmRpY3RfaWQiLGRlZmF1bHRNZXNzYWdlOiJcdTVCNTdcdTUxNzhcdTRFM0JcdTk1MkUifSkscGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NUI1N1x1NTE3OFx1NEUzQlx1OTUyRSIsZGlzYWJsZWQ6ITAsaGlkZGVuOiEwLHJ1bGVzOlt7cmVxdWlyZWQ6ITEsbWVzc2FnZTooMCxhLmpzeCkoaS5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU1QjU3XHU1MTc4XHU0RTNCXHU5NTJFXHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU1QjU3XHU1MTc4XHU0RTNCXHU5NTJFXHVGRjAxIn0pfV19KSwoMCxhLmpzeCkocy5aLHtuYW1lOiJkaWN0TmFtZSIsbGFiZWw6Ri5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLmRpY3QuZGljdF9uYW1lIixkZWZhdWx0TWVzc2FnZToiXHU1QjU3XHU1MTc4XHU1NDBEXHU3OUYwIn0pLHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdTVCNTdcdTUxNzhcdTU0MERcdTc5RjAiLHJ1bGVzOlt7cmVxdWlyZWQ6ITEsbWVzc2FnZTooMCxhLmpzeCkoaS5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU1QjU3XHU1MTc4XHU1NDBEXHU3OUYwXHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU1QjU3XHU1MTc4XHU1NDBEXHU3OUYwXHVGRjAxIn0pfV19KSwoMCxhLmpzeCkocy5aLHtuYW1lOiJkaWN0VHlwZSIsbGFiZWw6Ri5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLmRpY3QuZGljdF90eXBlIixkZWZhdWx0TWVzc2FnZToiXHU1QjU3XHU1MTc4XHU3QzdCXHU1NzhCIn0pLHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdTVCNTdcdTUxNzhcdTdDN0JcdTU3OEIiLHJ1bGVzOlt7cmVxdWlyZWQ6ITEsbWVzc2FnZTooMCxhLmpzeCkoaS5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU1QjU3XHU1MTc4XHU3QzdCXHU1NzhCXHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU1QjU3XHU1MTc4XHU3QzdCXHU1NzhCXHVGRjAxIn0pfV19KSwoMCxhLmpzeCkoVC5aLkdyb3VwLHt2YWx1ZUVudW06UixuYW1lOiJzdGF0dXMiLGxhYmVsOkYuZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5kaWN0LnN0YXR1cyIsZGVmYXVsdE1lc3NhZ2U6Ilx1NzJCNlx1NjAwMSJ9KSxpbml0aWFsVmFsdWU6IjAiLHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdTcyQjZcdTYwMDEiLHJ1bGVzOlt7cmVxdWlyZWQ6ITEsbWVzc2FnZTooMCxhLmpzeCkoaS5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU3MkI2XHU2MDAxXHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU3MkI2XHU2MDAxXHVGRjAxIn0pfV19KSwoMCxhLmpzeCkoYy5aLHtuYW1lOiJyZW1hcmsiLGxhYmVsOkYuZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5kaWN0LnJlbWFyayIsZGVmYXVsdE1lc3NhZ2U6Ilx1NTkwN1x1NkNFOCJ9KSxwbGFjZWhvbGRlcjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU1OTA3XHU2Q0U4IixydWxlczpbe3JlcXVpcmVkOiExLG1lc3NhZ2U6KDAsYS5qc3gpKGkuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NTkwN1x1NkNFOFx1RkYwMSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NTkwN1x1NkNFOFx1RkYwMSJ9KX1dfSldfSl9KX07RS5kZWZhdWx0PUJ9fV0pOwpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy81NTAwLjRiNmQ2ZWE0LmFzeW5jLmpzIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy81NTAwLjRiNmQ2ZWE0LmFzeW5jLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ5NTIyMWYKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzU1MDAuNGI2ZDZlYTQuYXN5bmMuanMKQEAgLTAsMCArMSBAQAorKHNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W10pLnB1c2goW1s1NTAwXSx7ODU1MDA6ZnVuY3Rpb24oKXt9fV0pOwpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy81NTQ4LmY0NDM2NzIyLmFzeW5jLmpzIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy81NTQ4LmY0NDM2NzIyLmFzeW5jLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE4M2VmNzEKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzU1NDguZjQ0MzY3MjIuYXN5bmMuanMKQEAgLTAsMCArMSBAQAorInVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvPXNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm98fFtdKS5wdXNoKFtbNTU0OF0sezUyODczOmZ1bmN0aW9uKHNlLGIsYSl7YS5yKGIpO3ZhciBOPWEoNjcyOTQpLFA9YSgxNzc4OCksZz1hKDI2NDEyKSxyPWEoNzY3NzIpLEY9YSg2MTMxNCksdD1hKDg1ODkzKSxXPWZ1bmN0aW9uKF8pe3ZhciBvLG49Xy52YWx1ZXMsTz1fLmJ1c2luZXNzVHlwZU9wdGlvbnMsQT1fLm9wZXJhdG9yVHlwZU9wdGlvbnMsTD1fLnN0YXR1c09wdGlvbnMsVT0oMCxyLnVzZUludGwpKCksSz1mdW5jdGlvbigpe30sUj1mdW5jdGlvbigpe18ub25DYW5jZWwoKX07cmV0dXJuKDAsdC5qc3gpKFAuWix7d2lkdGg6NjQwLHRpdGxlOlUuZm9ybWF0TWVzc2FnZSh7aWQ6Im1vbml0b3Iub3BlcmxvZy50aXRsZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1N0YxNlx1OEY5MVx1NjRDRFx1NEY1Q1x1NjVFNVx1NUZEN1x1OEJCMFx1NUY1NSJ9KSxvcGVuOl8ub3BlbixkZXN0cm95T25DbG9zZTohMCxvbk9rOkssb25DYW5jZWw6UixjaGlsZHJlbjooMCx0LmpzeHMpKGcuWix7Y29sdW1uOjI0LGNoaWxkcmVuOlsoMCx0LmpzeCkoZy5aLkl0ZW0se3NwYW46MTIsbGFiZWw6KDAsdC5qc3gpKHIuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3Iub3BlcmxvZy5tb2R1bGUiLGRlZmF1bHRNZXNzYWdlOiJcdTY0Q0RcdTRGNUNcdTZBMjFcdTU3NTcifSksY2hpbGRyZW46IiIuY29uY2F0KG4udGl0bGUsIi8iKS5jb25jYXQoKDAsRi5uKShPLG4uYnVzaW5lc3NUeXBlKSl9KSwoMCx0LmpzeCkoZy5aLkl0ZW0se3NwYW46MTIsbGFiZWw6KDAsdC5qc3gpKHIuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3Iub3BlcmxvZy5yZXF1ZXN0X21ldGhvZCIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1NkM0Mlx1NjVCOVx1NUYwRiJ9KSxjaGlsZHJlbjpuLnJlcXVlc3RNZXRob2R9KSwoMCx0LmpzeCkoZy5aLkl0ZW0se3NwYW46MTIsbGFiZWw6KDAsdC5qc3gpKHIuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3Iub3BlcmxvZy5vcGVyX25hbWUiLGRlZmF1bHRNZXNzYWdlOiJcdTY0Q0RcdTRGNUNcdTRFQkFcdTU0NTgifSksY2hpbGRyZW46IiIuY29uY2F0KG4ub3Blck5hbWUsIi8iKS5jb25jYXQobi5vcGVySXApfSksKDAsdC5qc3gpKGcuWi5JdGVtLHtzcGFuOjEyLGxhYmVsOigwLHQuanN4KShyLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJtb25pdG9yLm9wZXJsb2cub3BlcmF0b3JfdHlwZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjRDRFx1NEY1Q1x1N0M3Qlx1NTIyQiJ9KSxjaGlsZHJlbjooMCxGLm4pKEEsbi5vcGVyYXRvclR5cGUpfSksKDAsdC5qc3gpKGcuWi5JdGVtLHtzcGFuOjI0LGxhYmVsOigwLHQuanN4KShyLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJtb25pdG9yLm9wZXJsb2cubWV0aG9kIixkZWZhdWx0TWVzc2FnZToiXHU2NUI5XHU2Q0Q1XHU1NDBEXHU3OUYwIn0pLGNoaWxkcmVuOm4ubWV0aG9kfSksKDAsdC5qc3gpKGcuWi5JdGVtLHtzcGFuOjI0LGxhYmVsOigwLHQuanN4KShyLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJtb25pdG9yLm9wZXJsb2cub3Blcl91cmwiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdTZDNDJVUkwifSksY2hpbGRyZW46bi5vcGVyVXJsfSksKDAsdC5qc3gpKGcuWi5JdGVtLHtzcGFuOjI0LGxhYmVsOigwLHQuanN4KShyLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJtb25pdG9yLm9wZXJsb2cub3Blcl9wYXJhbSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1NkM0Mlx1NTNDMlx1NjU3MCJ9KSxjaGlsZHJlbjpuLm9wZXJQYXJhbX0pLCgwLHQuanN4KShnLlouSXRlbSx7c3BhbjoyNCxsYWJlbDooMCx0LmpzeCkoci5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoibW9uaXRvci5vcGVybG9nLmpzb25fcmVzdWx0IixkZWZhdWx0TWVzc2FnZToiXHU4RkQ0XHU1NkRFXHU1M0MyXHU2NTcwIn0pLGNoaWxkcmVuOm4uanNvblJlc3VsdH0pLCgwLHQuanN4KShnLlouSXRlbSx7c3BhbjoyNCxsYWJlbDooMCx0LmpzeCkoci5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoibW9uaXRvci5vcGVybG9nLmVycm9yX21zZyIsZGVmYXVsdE1lc3NhZ2U6Ilx1OTUxOVx1OEJFRlx1NkQ4OFx1NjA2RiJ9KSxjaGlsZHJlbjpuLmVycm9yTXNnfSksKDAsdC5qc3gpKGcuWi5JdGVtLHtzcGFuOjEyLGxhYmVsOigwLHQuanN4KShyLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJtb25pdG9yLm9wZXJsb2cuc3RhdHVzIixkZWZhdWx0TWVzc2FnZToiXHU2NENEXHU0RjVDXHU3MkI2XHU2MDAxIn0pLGNoaWxkcmVuOigwLEYubikoTCxuLnN0YXR1cyl9KSwoMCx0LmpzeCkoZy5aLkl0ZW0se3NwYW46MTIsbGFiZWw6KDAsdC5qc3gpKHIuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3Iub3BlcmxvZy5vcGVyX3RpbWUiLGRlZmF1bHRNZXNzYWdlOiJcdTY0Q0RcdTRGNUNcdTY1RjZcdTk1RjQifSksY2hpbGRyZW46KG89bi5vcGVyVGltZSk9PT1udWxsfHxvPT09dm9pZCAwP3ZvaWQgMDpvLnRvU3RyaW5nKCl9KV19KX0pfTtiLmRlZmF1bHQ9V30sNTU1NDg6ZnVuY3Rpb24oc2UsYixhKXthLnIoYik7dmFyIE49YSg1NTc0KSxQPWEubihOKSxnPWEoMTUwMDkpLHI9YS5uKGcpLEY9YSg5Nzg1NyksdD1hLm4oRiksVz1hKDk5Mjg5KSxNPWEubihXKSxfPWEoNjcyOTQpLG89YSg3Njc3Miksbj1hKDI0NTMpLE89YSg4MzYyMiksQT1hKDE3Nzg4KSxMPWEoNjExMCksVT1hKDY1Mzg1KSxLPWEoMjIzNiksUj1hKDI0OTY5KSxTPWEoMTE0NzUpLHJlPWEoNDg2ODkpLHk9YSgzMjU5NyksYWU9YSg1Mjg3MyksJD1hKDkyOTgyKSx3PWEoOTQxNjIpLHM9YSg4NTg5MyksdGU9ZnVuY3Rpb24oKXt2YXIgRD1NKCkocigpKCkubWFyayhmdW5jdGlvbiBmKG0pe3ZhciBjLHU7cmV0dXJuIHIoKSgpLndyYXAoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIGM9bi5aUC5sb2FkaW5nKCJcdTZCNjNcdTU3MjhcdTZERkJcdTUyQTAiKSxlLnByZXY9MSxlLm5leHQ9NCwoMCx5LnpnKSh0KCkoe30sbSkpO2Nhc2UgNDpyZXR1cm4gdT1lLnNlbnQsYygpLHUuY29kZT09PTIwMD9uLlpQLnN1Y2Nlc3MoIlx1NkRGQlx1NTJBMFx1NjIxMFx1NTI5RiIpOm4uWlAuZXJyb3IodS5tc2cpLGUuYWJydXB0KCJyZXR1cm4iLCEwKTtjYXNlIDEwOnJldHVybiBlLnByZXY9MTAsZS50MD1lLmNhdGNoKDEpLGMoKSxuLlpQLmVycm9yKCJcdTZERkJcdTUyQTBcdTU5MzFcdThEMjVcdThCRjdcdTkxQ0RcdThCRDVcdUZGMDEiKSxlLmFicnVwdCgicmV0dXJuIiwhMSk7Y2FzZSAxNTpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0sZixudWxsLFtbMSwxMF1dKX0pKTtyZXR1cm4gZnVuY3Rpb24obSl7cmV0dXJuIEQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSxuZT1mdW5jdGlvbigpe3ZhciBEPU0oKShyKCkoKS5tYXJrKGZ1bmN0aW9uIGYobSl7dmFyIGMsdTtyZXR1cm4gcigpKCkud3JhcChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gYz1uLlpQLmxvYWRpbmcoIlx1NkI2M1x1NTcyOFx1NjZGNFx1NjVCMCIpLGUucHJldj0xLGUubmV4dD00LCgwLHkuSE0pKG0pO2Nhc2UgNDpyZXR1cm4gdT1lLnNlbnQsYygpLHUuY29kZT09PTIwMD9uLlpQLnN1Y2Nlc3MoIlx1NjZGNFx1NjVCMFx1NjIxMFx1NTI5RiIpOm4uWlAuZXJyb3IodS5tc2cpLGUuYWJydXB0KCJyZXR1cm4iLCEwKTtjYXNlIDEwOnJldHVybiBlLnByZXY9MTAsZS50MD1lLmNhdGNoKDEpLGMoKSxuLlpQLmVycm9yKCJcdTkxNERcdTdGNkVcdTU5MzFcdThEMjVcdThCRjdcdTkxQ0RcdThCRDVcdUZGMDEiKSxlLmFicnVwdCgicmV0dXJuIiwhMSk7Y2FzZSAxNTpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0sZixudWxsLFtbMSwxMF1dKX0pKTtyZXR1cm4gZnVuY3Rpb24obSl7cmV0dXJuIEQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSxWPWZ1bmN0aW9uKCl7dmFyIEQ9TSgpKHIoKSgpLm1hcmsoZnVuY3Rpb24gZihtKXt2YXIgYyx1O3JldHVybiByKCkoKS53cmFwKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOmlmKGM9bi5aUC5sb2FkaW5nKCJcdTZCNjNcdTU3MjhcdTUyMjBcdTk2NjQiKSxtKXtlLm5leHQ9MzticmVha31yZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsITApO2Nhc2UgMzpyZXR1cm4gZS5wcmV2PTMsZS5uZXh0PTYsKDAseS5SbykobS5tYXAoZnVuY3Rpb24oSCl7cmV0dXJuIEgub3BlcklkfSkuam9pbigiLCIpKTtjYXNlIDY6cmV0dXJuIHU9ZS5zZW50LGMoKSx1LmNvZGU9PT0yMDA/bi5aUC5zdWNjZXNzKCJcdTUyMjBcdTk2NjRcdTYyMTBcdTUyOUZcdUZGMENcdTUzNzNcdTVDMDZcdTUyMzdcdTY1QjAiKTpuLlpQLmVycm9yKHUubXNnKSxlLmFicnVwdCgicmV0dXJuIiwhMCk7Y2FzZSAxMjpyZXR1cm4gZS5wcmV2PTEyLGUudDA9ZS5jYXRjaCgzKSxjKCksbi5aUC5lcnJvcigiXHU1MjIwXHU5NjY0XHU1OTMxXHU4RDI1XHVGRjBDXHU4QkY3XHU5MUNEXHU4QkQ1IiksZS5hYnJ1cHQoInJldHVybiIsITEpO2Nhc2UgMTc6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19LGYsbnVsbCxbWzMsMTJdXSl9KSk7cmV0dXJuIGZ1bmN0aW9uKG0pe3JldHVybiBELmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksdWU9ZnVuY3Rpb24oKXt2YXIgRD1NKCkocigpKCkubWFyayhmdW5jdGlvbiBmKCl7dmFyIG07cmV0dXJuIHIoKSgpLndyYXAoZnVuY3Rpb24odSl7Zm9yKDs7KXN3aXRjaCh1LnByZXY9dS5uZXh0KXtjYXNlIDA6cmV0dXJuIG09bi5aUC5sb2FkaW5nKCJcdTZCNjNcdTU3MjhcdTVCRkNcdTUxRkEiKSx1LnByZXY9MSx1Lm5leHQ9NCwoMCx5Lkc2KSgpO2Nhc2UgNDpyZXR1cm4gbSgpLG4uWlAuc3VjY2VzcygiXHU1QkZDXHU1MUZBXHU2MjEwXHU1MjlGIiksdS5hYnJ1cHQoInJldHVybiIsITApO2Nhc2UgOTpyZXR1cm4gdS5wcmV2PTksdS50MD11LmNhdGNoKDEpLG0oKSxuLlpQLmVycm9yKCJcdTVCRkNcdTUxRkFcdTU5MzFcdThEMjVcdUZGMENcdThCRjdcdTkxQ0RcdThCRDUiKSx1LmFicnVwdCgicmV0dXJuIiwhMSk7Y2FzZSAxNDpjYXNlImVuZCI6cmV0dXJuIHUuc3RvcCgpfX0sZixudWxsLFtbMSw5XV0pfSkpO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBELmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksb2U9ZnVuY3Rpb24oKXt2YXIgZj0oMCxfLnVzZVJlZikoKSxtPSgwLF8udXNlU3RhdGUpKCExKSxjPVAoKShtLDIpLHU9Y1swXSxDPWNbMV0sZT0oMCxfLnVzZVJlZikoKSxIPSgwLF8udXNlU3RhdGUpKCksSj1QKCkoSCwyKSxsZT1KWzBdLHg9SlsxXSxpZT0oMCxfLnVzZVN0YXRlKShbXSksUT1QKCkoaWUsMiksRT1RWzBdLGs9UVsxXSxkZT0oMCxfLnVzZVN0YXRlKShbXSksWT1QKCkoZGUsMiksej1ZWzBdLF9lPVlbMV0scGU9KDAsXy51c2VTdGF0ZSkoW10pLHE9UCgpKHBlLDIpLEc9cVswXSxtZT1xWzFdLGNlPSgwLF8udXNlU3RhdGUpKFtdKSxlZT1QKCkoY2UsMiksWD1lZVswXSxnZT1lZVsxXSxJPSgwLG8udXNlQWNjZXNzKSgpLGZlPSgwLG8udXNlSW50bCkoKTsoMCxfLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXsoMCwkLnBYKSgic3lzX29wZXJfdHlwZSIsITApLnRoZW4oZnVuY3Rpb24oZCl7X2UoZCl9KSwoMCwkLnBYKSgic3lzX29wZXJfdHlwZSIsITApLnRoZW4oZnVuY3Rpb24oZCl7bWUoZCl9KSwoMCwkLnBYKSgic3lzX2NvbW1vbl9zdGF0dXMiLCEwKS50aGVuKGZ1bmN0aW9uKGQpe2dlKGQpfSl9LFtdKTt2YXIgaGU9W3t0aXRsZTooMCxzLmpzeCkoby5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoibW9uaXRvci5vcGVybG9nLm9wZXJfaWQiLGRlZmF1bHRNZXNzYWdlOiJcdTY1RTVcdTVGRDdcdTRFM0JcdTk1MkUifSksZGF0YUluZGV4OiJvcGVySWQiLHZhbHVlVHlwZToidGV4dCIsaGlkZUluU2VhcmNoOiEwfSx7dGl0bGU6KDAscy5qc3gpKG8uRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3Iub3BlcmxvZy50aXRsZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjRDRFx1NEY1Q1x1NkEyMVx1NTc1NyJ9KSxkYXRhSW5kZXg6InRpdGxlIix2YWx1ZVR5cGU6InRleHQifSx7dGl0bGU6KDAscy5qc3gpKG8uRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3Iub3BlcmxvZy5idXNpbmVzc190eXBlIixkZWZhdWx0TWVzc2FnZToiXHU0RTFBXHU1MkExXHU3QzdCXHU1NzhCIn0pLGRhdGFJbmRleDoiYnVzaW5lc3NUeXBlIix2YWx1ZVR5cGU6InNlbGVjdCIsdmFsdWVFbnVtOnoscmVuZGVyOmZ1bmN0aW9uKHAsbCl7cmV0dXJuKDAscy5qc3gpKHcuWix7ZW51bXM6eix2YWx1ZTpsLmJ1c2luZXNzVHlwZX0pfX0se3RpdGxlOigwLHMuanN4KShvLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJtb25pdG9yLm9wZXJsb2cucmVxdWVzdF9tZXRob2QiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdTZDNDJcdTY1QjlcdTVGMEYifSksZGF0YUluZGV4OiJyZXF1ZXN0TWV0aG9kIix2YWx1ZVR5cGU6InRleHQifSx7dGl0bGU6KDAscy5qc3gpKG8uRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3Iub3BlcmxvZy5vcGVyYXRvcl90eXBlIixkZWZhdWx0TWVzc2FnZToiXHU2NENEXHU0RjVDXHU3QzdCXHU1MjJCIn0pLGRhdGFJbmRleDoib3BlcmF0b3JUeXBlIix2YWx1ZVR5cGU6InNlbGVjdCIsdmFsdWVFbnVtOkcscmVuZGVyOmZ1bmN0aW9uKHAsbCl7cmV0dXJuKDAscy5qc3gpKHcuWix7ZW51bXM6Ryx2YWx1ZTpsLm9wZXJhdG9yVHlwZX0pfX0se3RpdGxlOigwLHMuanN4KShvLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJtb25pdG9yLm9wZXJsb2cub3Blcl9uYW1lIixkZWZhdWx0TWVzc2FnZToiXHU2NENEXHU0RjVDXHU0RUJBXHU1NDU4In0pLGRhdGFJbmRleDoib3Blck5hbWUiLHZhbHVlVHlwZToidGV4dCJ9LHt0aXRsZTooMCxzLmpzeCkoby5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoibW9uaXRvci5vcGVybG9nLm9wZXJfaXAiLGRlZmF1bHRNZXNzYWdlOiJcdTRFM0JcdTY3M0FcdTU3MzBcdTU3NDAifSksZGF0YUluZGV4OiJvcGVySXAiLHZhbHVlVHlwZToidGV4dCJ9LHt0aXRsZTooMCxzLmpzeCkoby5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoibW9uaXRvci5vcGVybG9nLm9wZXJfbG9jYXRpb24iLGRlZmF1bHRNZXNzYWdlOiJcdTY0Q0RcdTRGNUNcdTU3MzBcdTcwQjkifSksZGF0YUluZGV4OiJvcGVyTG9jYXRpb24iLHZhbHVlVHlwZToidGV4dCJ9LHt0aXRsZTooMCxzLmpzeCkoby5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoibW9uaXRvci5vcGVybG9nLnN0YXR1cyIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjRDRFx1NEY1Q1x1NzJCNlx1NjAwMSJ9KSxkYXRhSW5kZXg6InN0YXR1cyIsdmFsdWVUeXBlOiJzZWxlY3QiLHZhbHVlRW51bTpYLHJlbmRlcjpmdW5jdGlvbihwLGwpe3JldHVybigwLHMuanN4KSh3Llose2VudW1zOlgsdmFsdWU6bC5zdGF0dXN9LCJzdGF0dXMiKX19LHt0aXRsZTooMCxzLmpzeCkoby5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoibW9uaXRvci5vcGVybG9nLm9wZXJfdGltZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjRDRFx1NEY1Q1x1NjVGNlx1OTVGNCJ9KSxkYXRhSW5kZXg6Im9wZXJUaW1lIix2YWx1ZVR5cGU6ImRhdGVUaW1lIn0se3RpdGxlOigwLHMuanN4KShvLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJwYWdlcy5zZWFyY2hUYWJsZS50aXRsZU9wdGlvbiIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjRDRFx1NEY1QyJ9KSxkYXRhSW5kZXg6Im9wdGlvbiIsd2lkdGg6IjEyMHB4Iix2YWx1ZVR5cGU6Im9wdGlvbiIscmVuZGVyOmZ1bmN0aW9uKHAsbCl7cmV0dXJuWygwLHMuanN4KShPLlpQLHt0eXBlOiJsaW5rIixzaXplOiJzbWFsbCIsaGlkZGVuOiFJLmhhc1Blcm1zKCJzeXN0ZW06b3BlcmxvZzplZGl0Iiksb25DbGljazpmdW5jdGlvbigpe0MoITApLHgobCl9LGNoaWxkcmVuOiJcdThCRTZcdTdFQzYifSwiZWRpdCIpXX19XTtyZXR1cm4oMCxzLmpzeHMpKEwuX3ose2NoaWxkcmVuOlsoMCxzLmpzeCkoImRpdiIse3N0eWxlOnt3aWR0aDoiMTAwJSIsZmxvYXQ6InJpZ2h0In0sY2hpbGRyZW46KDAscy5qc3gpKFUuWix7aGVhZGVyVGl0bGU6ZmUuZm9ybWF0TWVzc2FnZSh7aWQ6InBhZ2VzLnNlYXJjaFRhYmxlLnRpdGxlIixkZWZhdWx0TWVzc2FnZToiXHU0RkUxXHU2MDZGIn0pLGFjdGlvblJlZjplLGZvcm1SZWY6Zixyb3dLZXk6Im9wZXJJZCIsc2VhcmNoOntsYWJlbFdpZHRoOjEyMH0sdG9vbEJhclJlbmRlcjpmdW5jdGlvbigpe3JldHVyblsoMCxzLmpzeHMpKE8uWlAse3R5cGU6InByaW1hcnkiLGhpZGRlbjohSS5oYXNQZXJtcygic3lzdGVtOm9wZXJsb2c6YWRkIiksb25DbGljazpNKCkocigpKCkubWFyayhmdW5jdGlvbiBwKCl7cmV0dXJuIHIoKSgpLndyYXAoZnVuY3Rpb24oaSl7Zm9yKDs7KXN3aXRjaChpLnByZXY9aS5uZXh0KXtjYXNlIDA6eCh2b2lkIDApLEMoITApO2Nhc2UgMjpjYXNlImVuZCI6cmV0dXJuIGkuc3RvcCgpfX0scCl9KSksY2hpbGRyZW46WygwLHMuanN4KShSLlose30pLCIgIiwoMCxzLmpzeCkoby5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoicGFnZXMuc2VhcmNoVGFibGUubmV3IixkZWZhdWx0TWVzc2FnZToiXHU2NUIwXHU1RUZBIn0pXX0sImFkZCIpLCgwLHMuanN4cykoTy5aUCx7dHlwZToicHJpbWFyeSIsZGFuZ2VyOiEwLGhpZGRlbjooRT09bnVsbD92b2lkIDA6RS5sZW5ndGgpPT09MHx8IUkuaGFzUGVybXMoInN5c3RlbTpvcGVybG9nOnJlbW92ZSIpLG9uQ2xpY2s6TSgpKHIoKSgpLm1hcmsoZnVuY3Rpb24gcCgpe3JldHVybiByKCkoKS53cmFwKGZ1bmN0aW9uKGkpe2Zvcig7Oylzd2l0Y2goaS5wcmV2PWkubmV4dCl7Y2FzZSAwOkEuWi5jb25maXJtKHt0aXRsZToiXHU2NjJGXHU1NDI2XHU3ODZFXHU4QkE0XHU1MjIwXHU5NjY0XHU2MjQwXHU5MDA5XHU2NTcwXHU2MzZFXHU5ODc5PyIsaWNvbjooMCxzLmpzeCkoUy5aLHt9KSxjb250ZW50OiJcdThCRjdcdThDMjhcdTYxNEVcdTY0Q0RcdTRGNUMiLG9uT2s6ZnVuY3Rpb24oKXtyZXR1cm4gTSgpKHIoKSgpLm1hcmsoZnVuY3Rpb24gaCgpe3ZhciBCLFQsajtyZXR1cm4gcigpKCkud3JhcChmdW5jdGlvbih2KXtmb3IoOzspc3dpdGNoKHYucHJldj12Lm5leHQpe2Nhc2UgMDpyZXR1cm4gdi5uZXh0PTIsVihFKTtjYXNlIDI6Qj12LnNlbnQsQiYmKGsoW10pLChUPWUuY3VycmVudCk9PT1udWxsfHxUPT09dm9pZCAwfHwoaj1ULnJlbG9hZEFuZFJlc3QpPT09bnVsbHx8aj09PXZvaWQgMHx8ai5jYWxsKFQpKTtjYXNlIDQ6Y2FzZSJlbmQiOnJldHVybiB2LnN0b3AoKX19LGgpfSkpKCl9LG9uQ2FuY2VsOmZ1bmN0aW9uKCl7fX0pO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGkuc3RvcCgpfX0scCl9KSksY2hpbGRyZW46WygwLHMuanN4KShyZS5aLHt9KSwoMCxzLmpzeCkoby5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoicGFnZXMuc2VhcmNoVGFibGUuZGVsZXRlIixkZWZhdWx0TWVzc2FnZToiXHU1MjIwXHU5NjY0In0pXX0sInJlbW92ZSIpLCgwLHMuanN4cykoTy5aUCx7dHlwZToicHJpbWFyeSIsaGlkZGVuOiFJLmhhc1Blcm1zKCJzeXN0ZW06b3BlcmxvZzpleHBvcnQiKSxvbkNsaWNrOk0oKShyKCkoKS5tYXJrKGZ1bmN0aW9uIHAoKXtyZXR1cm4gcigpKCkud3JhcChmdW5jdGlvbihpKXtmb3IoOzspc3dpdGNoKGkucHJldj1pLm5leHQpe2Nhc2UgMDp1ZSgpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGkuc3RvcCgpfX0scCl9KSksY2hpbGRyZW46WygwLHMuanN4KShSLlose30pLCgwLHMuanN4KShvLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJwYWdlcy5zZWFyY2hUYWJsZS5leHBvcnQiLGRlZmF1bHRNZXNzYWdlOiJcdTVCRkNcdTUxRkEifSldfSwiZXhwb3J0IildfSxyZXF1ZXN0OmZ1bmN0aW9uKHApe3JldHVybigwLHkuczgpKHQoKSh7fSxwKSkudGhlbihmdW5jdGlvbihsKXt2YXIgaT17ZGF0YTpsLnJvd3MsdG90YWw6bC50b3RhbCxzdWNjZXNzOiEwfTtyZXR1cm4gaX0pfSxjb2x1bW5zOmhlLHJvd1NlbGVjdGlvbjp7b25DaGFuZ2U6ZnVuY3Rpb24ocCxsKXtrKGwpfX19LCJvcGVybG9nTGlzdCIpfSksKEU9PW51bGw/dm9pZCAwOkUubGVuZ3RoKT4wJiYoMCxzLmpzeCkoSy5TLHtleHRyYTooMCxzLmpzeHMpKCJkaXYiLHtjaGlsZHJlbjpbKDAscy5qc3gpKG8uRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InBhZ2VzLnNlYXJjaFRhYmxlLmNob3NlbiIsZGVmYXVsdE1lc3NhZ2U6Ilx1NURGMlx1OTAwOVx1NjJFOSJ9KSwoMCxzLmpzeCkoImEiLHtzdHlsZTp7Zm9udFdlaWdodDo2MDB9LGNoaWxkcmVuOkUubGVuZ3RofSksKDAscy5qc3gpKG8uRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InBhZ2VzLnNlYXJjaFRhYmxlLml0ZW0iLGRlZmF1bHRNZXNzYWdlOiJcdTk4NzkifSldfSksY2hpbGRyZW46KDAscy5qc3gpKE8uWlAse2RhbmdlcjohMCxoaWRkZW46IUkuaGFzUGVybXMoInN5c3RlbTpvcGVybG9nOmRlbCIpLG9uQ2xpY2s6TSgpKHIoKSgpLm1hcmsoZnVuY3Rpb24gZCgpe3JldHVybiByKCkoKS53cmFwKGZ1bmN0aW9uKGwpe2Zvcig7Oylzd2l0Y2gobC5wcmV2PWwubmV4dCl7Y2FzZSAwOkEuWi5jb25maXJtKHt0aXRsZToiXHU1MjIwXHU5NjY0Iixjb250ZW50OiJcdTc4NkVcdTVCOUFcdTUyMjBcdTk2NjRcdThCRTVcdTk4NzlcdTU0MTdcdUZGMUYiLG9rVGV4dDoiXHU3ODZFXHU4QkE0IixjYW5jZWxUZXh0OiJcdTUzRDZcdTZEODgiLG9uT2s6ZnVuY3Rpb24oKXt2YXIgaT1NKCkocigpKCkubWFyayhmdW5jdGlvbiBoKCl7dmFyIEIsVCxqO3JldHVybiByKCkoKS53cmFwKGZ1bmN0aW9uKHYpe2Zvcig7Oylzd2l0Y2godi5wcmV2PXYubmV4dCl7Y2FzZSAwOnJldHVybiB2Lm5leHQ9MixWKEUpO2Nhc2UgMjpCPXYuc2VudCxCJiYoayhbXSksKFQ9ZS5jdXJyZW50KT09PW51bGx8fFQ9PT12b2lkIDB8fChqPVQucmVsb2FkQW5kUmVzdCk9PT1udWxsfHxqPT09dm9pZCAwfHxqLmNhbGwoVCkpO2Nhc2UgNDpjYXNlImVuZCI6cmV0dXJuIHYuc3RvcCgpfX0saCl9KSk7ZnVuY3Rpb24gWigpe3JldHVybiBpLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gWn0oKX0pO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGwuc3RvcCgpfX0sZCl9KSksY2hpbGRyZW46KDAscy5qc3gpKG8uRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InBhZ2VzLnNlYXJjaFRhYmxlLmJhdGNoRGVsZXRpb24iLGRlZmF1bHRNZXNzYWdlOiJcdTYyNzlcdTkxQ0ZcdTUyMjBcdTk2NjQifSl9LCJyZW1vdmUiKX0pLCgwLHMuanN4KShhZS5kZWZhdWx0LHtvblN1Ym1pdDpmdW5jdGlvbigpe3ZhciBkPU0oKShyKCkoKS5tYXJrKGZ1bmN0aW9uIHAobCl7dmFyIGk7cmV0dXJuIHIoKSgpLndyYXAoZnVuY3Rpb24oaCl7Zm9yKDs7KXN3aXRjaChoLnByZXY9aC5uZXh0KXtjYXNlIDA6aWYoaT0hMSwhbC5vcGVySWQpe2gubmV4dD03O2JyZWFrfXJldHVybiBoLm5leHQ9NCxuZSh0KCkoe30sbCkpO2Nhc2UgNDppPWguc2VudCxoLm5leHQ9MTA7YnJlYWs7Y2FzZSA3OnJldHVybiBoLm5leHQ9OSx0ZSh0KCkoe30sbCkpO2Nhc2UgOTppPWguc2VudDtjYXNlIDEwOmkmJihDKCExKSx4KHZvaWQgMCksZS5jdXJyZW50JiZlLmN1cnJlbnQucmVsb2FkKCkpO2Nhc2UgMTE6Y2FzZSJlbmQiOnJldHVybiBoLnN0b3AoKX19LHApfSkpO3JldHVybiBmdW5jdGlvbihwKXtyZXR1cm4gZC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLG9uQ2FuY2VsOmZ1bmN0aW9uKCl7QyghMSkseCh2b2lkIDApfSxvcGVuOnUsdmFsdWVzOmxlfHx7fSxidXNpbmVzc1R5cGVPcHRpb25zOnosb3BlcmF0b3JUeXBlT3B0aW9uczpHLHN0YXR1c09wdGlvbnM6WH0pXX0pfTtiLmRlZmF1bHQ9b2V9fV0pOwpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy81ODA4LjVlMGU5NGFhLmNodW5rLmNzcyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNTgwOC41ZTBlOTRhYS5jaHVuay5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjQ4ZGEwNQotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNTgwOC41ZTBlOTRhYS5jaHVuay5jc3MKQEAgLTAsMCArMSw3IEBACisvKiEKKyAgVGhlbWU6IE1hdGVyaWFsCisgIEF1dGhvcjogTmF0ZSBQZXRlcnNvbgorICBMaWNlbnNlOiB+IE1JVCAob3IgbW9yZSBwZXJtaXNzaXZlKSBbdmlhIGJhc2UxNi1zY2hlbWVzLXNvdXJjZV0KKyAgTWFpbnRhaW5lcjogQGhpZ2hsaWdodGpzL2NvcmUtdGVhbQorICBWZXJzaW9uOiAyMDIxLjA5LjAKKyovcHJlIGNvZGUuaGxqc3tkaXNwbGF5OmJsb2NrO292ZXJmbG93LXg6YXV0bztwYWRkaW5nOjFlbX1jb2RlLmhsanN7cGFkZGluZzozcHggNXB4fS5obGpze2NvbG9yOiNlZmY7YmFja2dyb3VuZDojMjYzMjM4fS5obGpzOjpzZWxlY3Rpb24sLmhsanMgOjpzZWxlY3Rpb257YmFja2dyb3VuZC1jb2xvcjojMzE0NTQ5O2NvbG9yOiNlZmZ9LmhsanMtY29tbWVudHtjb2xvcjojNTQ2ZTdhfS5obGpzLXRhZ3tjb2xvcjojYjJjY2Q2fS5obGpzLXN1YnN0LC5obGpzLXB1bmN0dWF0aW9uLC5obGpzLW9wZXJhdG9ye2NvbG9yOiNlZmZ9LmhsanMtb3BlcmF0b3J7b3BhY2l0eTouN30uaGxqcy1idWxsZXQsLmhsanMtdmFyaWFibGUsLmhsanMtdGVtcGxhdGUtdmFyaWFibGUsLmhsanMtc2VsZWN0b3ItdGFnLC5obGpzLW5hbWUsLmhsanMtZGVsZXRpb257Y29sb3I6I2YwNzE3OH0uaGxqcy1zeW1ib2wsLmhsanMtbnVtYmVyLC5obGpzLWxpbmssLmhsanMtYXR0ciwuaGxqcy12YXJpYWJsZS5jb25zdGFudF8sLmhsanMtbGl0ZXJhbHtjb2xvcjojZjc4YzZjfS5obGpzLXRpdGxlLC5obGpzLWNsYXNzIC5obGpzLXRpdGxlLC5obGpzLXRpdGxlLmNsYXNzX3tjb2xvcjojZmZjYjZifS5obGpzLXN0cm9uZ3tmb250LXdlaWdodDo3MDA7Y29sb3I6I2ZmY2I2Yn0uaGxqcy1jb2RlLC5obGpzLWFkZGl0aW9uLC5obGpzLXRpdGxlLmNsYXNzXy5pbmhlcml0ZWRfXywuaGxqcy1zdHJpbmd7Y29sb3I6I2MzZTg4ZH0uaGxqcy1idWlsdF9pbiwuaGxqcy1kb2N0YWcsLmhsanMtcXVvdGUsLmhsanMta2V5d29yZC5obGpzLWF0cnVsZSwuaGxqcy1yZWdleHB7Y29sb3I6Izg5ZGRmZn0uaGxqcy1mdW5jdGlvbiAuaGxqcy10aXRsZSwuaGxqcy1hdHRyaWJ1dGUsLnJ1YnkgLmhsanMtcHJvcGVydHksLmhsanMtdGl0bGUuZnVuY3Rpb25fLC5obGpzLXNlY3Rpb257Y29sb3I6IzgyYWFmZn0uaGxqcy10eXBlLC5obGpzLXRlbXBsYXRlLXRhZywuZGlmZiAuaGxqcy1tZXRhLC5obGpzLWtleXdvcmR7Y29sb3I6I2M3OTJlYX0uaGxqcy1lbXBoYXNpc3tjb2xvcjojYzc5MmVhO2ZvbnQtc3R5bGU6aXRhbGljfS5obGpzLW1ldGEsLmhsanMtbWV0YSAuaGxqcy1rZXl3b3JkLC5obGpzLW1ldGEgLmhsanMtc3RyaW5ne2NvbG9yOiNmZjUzNzB9LmhsanMtbWV0YSAuaGxqcy1rZXl3b3JkLC5obGpzLW1ldGEta2V5d29yZHtmb250LXdlaWdodDo3MDB9CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzU4MDguZGFlYjc2NGMuYXN5bmMuanMgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzU4MDguZGFlYjc2NGMuYXN5bmMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDQzMDIzMwotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNTgwOC5kYWViNzY0Yy5hc3luYy5qcwpAQCAtMCwwICsxIEBACisidXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W10pLnB1c2goW1s1ODA4XSx7NDI3MzQ6ZnVuY3Rpb24odixzLG4pe24ucihzKTt2YXIgXz1uKDY3Mjk0KSxpPW4oNzY3NzIpLGQ9bigxNzc4OCksRT1uKDkyMzk4KSxmPW4oNTM5NTEpLGM9big2NTg5OSksZT1uKDg1ODkzKSxvPWZ1bmN0aW9uKHQpe3ZhciBPPSgwLGkudXNlSW50bCkoKSxsPVtdLHU9T2JqZWN0LmtleXModC5kYXRhKTtyZXR1cm4gdS5mb3JFYWNoKGZ1bmN0aW9uKGEpe2wucHVzaCh7a2V5OmErIjEiLGxhYmVsOmEuc3Vic3RyaW5nKGEubGFzdEluZGV4T2YoIi8iKSsxLGEuaW5kZXhPZigiLnZtIikpLGNoaWxkcmVuOigwLGUuanN4KShmLmRlZmF1bHQse2NsYXNzTmFtZToiamF2YSIsY2hpbGRyZW46dC5kYXRhW2FdfSl9KX0pLCgwLF8udXNlRWZmZWN0KShmdW5jdGlvbigpe30sW10pLCgwLGUuanN4KShkLlose3dpZHRoOjkwMCx0aXRsZTpPLmZvcm1hdE1lc3NhZ2Uoe2lkOiJnZW4ucHJldmlldyIsZGVmYXVsdE1lc3NhZ2U6Ilx1OTg4NFx1ODlDOCJ9KSxvcGVuOnQub3BlbixkZXN0cm95T25DbG9zZTohMCxmb290ZXI6ITEsb25PazpmdW5jdGlvbigpe3Qub25IaWRlKCl9LG9uQ2FuY2VsOmZ1bmN0aW9uKCl7dC5vbkhpZGUoKX0sY2hpbGRyZW46KDAsZS5qc3gpKEUuWix7ZGVmYXVsdEFjdGl2ZUtleToiMSIsaXRlbXM6bH0pfSl9O3MuZGVmYXVsdD1vfX1dKTsKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNTgyNi4wYTA5NzYwOC5hc3luYy5qcyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNTgyNi4wYTA5NzYwOC5hc3luYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NDc2NmI0Ci0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy81ODI2LjBhMDk3NjA4LmFzeW5jLmpzCkBAIC0wLDAgKzEsMiBAQAorInVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvPXNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm98fFtdKS5wdXNoKFtbNTgyNl0sezg0NTY3OmZ1bmN0aW9uKEVlLFksbil7bi5kKFkse1o6ZnVuY3Rpb24oKXtyZXR1cm4gcGV9fSk7dmFyIHQ9big2NzI5NCksRz1uKDkzOTY3KSxnPW4ubihHKSxBPW4oNTAxMzIpLE49big0MjU1MCksVj1uKDQ1MzUzKSxIPW4oMTc0MTUpLF89big1MzEyNCksST1uKDk4ODY2KSxzZT1uKDM1NzkyKSx2ZT1uKDY1MjIzKSxkZT10LmNyZWF0ZUNvbnRleHQobnVsbCksbGU9big2MzE4NSkscT1uKDUyNzMpLENlPWZ1bmN0aW9uKGQsWil7dmFyICQ9e307Zm9yKHZhciBzIGluIGQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQscykmJlouaW5kZXhPZihzKTwwJiYoJFtzXT1kW3NdKTtpZihkIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIGM9MCxzPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZCk7YzxzLmxlbmd0aDtjKyspWi5pbmRleE9mKHNbY10pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChkLHNbY10pJiYoJFtzW2NdXT1kW3NbY11dKTtyZXR1cm4gJH07Y29uc3QgaGU9KGQsWik9Pnt2YXIgJDtjb25zdHtwcmVmaXhDbHM6cyxjbGFzc05hbWU6Yyxyb290Q2xhc3NOYW1lOmNlLGNoaWxkcmVuOlcsaW5kZXRlcm1pbmF0ZTp0ZT0hMSxzdHlsZTpuZSxvbk1vdXNlRW50ZXI6RSxvbk1vdXNlTGVhdmU6ayxza2lwR3JvdXA6dWU9ITEsZGlzYWJsZWQ6eGV9PWQsZj1DZShkLFsicHJlZml4Q2xzIiwiY2xhc3NOYW1lIiwicm9vdENsYXNzTmFtZSIsImNoaWxkcmVuIiwiaW5kZXRlcm1pbmF0ZSIsInN0eWxlIiwib25Nb3VzZUVudGVyIiwib25Nb3VzZUxlYXZlIiwic2tpcEdyb3VwIiwiZGlzYWJsZWQiXSkse2dldFByZWZpeENsczpiZSxkaXJlY3Rpb246bCxjaGVja2JveDphfT10LnVzZUNvbnRleHQoXy5FXykscj10LnVzZUNvbnRleHQoZGUpLHtpc0Zvcm1JdGVtSW5wdXQ6b309dC51c2VDb250ZXh0KHZlLmFNKSxlPXQudXNlQ29udGV4dChJLlopLHY9KCQ9KHI9PW51bGw/dm9pZCAwOnIuZGlzYWJsZWQpfHx4ZSkhPT1udWxsJiYkIT09dm9pZCAwPyQ6ZSxDPXQudXNlUmVmKGYudmFsdWUpLHk9dC51c2VSZWYobnVsbCksdT0oMCxOLnNRKShaLHkpO3QudXNlRWZmZWN0KCgpPT57cj09bnVsbHx8ci5yZWdpc3RlclZhbHVlKGYudmFsdWUpfSxbXSksdC51c2VFZmZlY3QoKCk9PntpZighdWUpcmV0dXJuIGYudmFsdWUhPT1DLmN1cnJlbnQmJihyPT1udWxsfHxyLmNhbmNlbFZhbHVlKEMuY3VycmVudCkscj09bnVsbHx8ci5yZWdpc3RlclZhbHVlKGYudmFsdWUpLEMuY3VycmVudD1mLnZhbHVlKSwoKT0+cj09bnVsbD92b2lkIDA6ci5jYW5jZWxWYWx1ZShmLnZhbHVlKX0sW2YudmFsdWVdKSx0LnVzZUVmZmVjdCgoKT0+e3ZhciBwOyEoKHA9eS5jdXJyZW50KT09PW51bGx8fHA9PT12b2lkIDApJiZwLmlucHV0JiYoeS5jdXJyZW50LmlucHV0LmluZGV0ZXJtaW5hdGU9dGUpfSxbdGVdKTtjb25zdCBoPWJlKCJjaGVja2JveCIscyksUD0oMCxzZS5aKShoKSxbTSx6LGpdPSgwLGxlLlpQKShoLFApLE89T2JqZWN0LmFzc2lnbih7fSxmKTtyJiYhdWUmJihPLm9uQ2hhbmdlPWZ1bmN0aW9uKCl7Zi5vbkNoYW5nZSYmZi5vbkNoYW5nZS5hcHBseShmLGFyZ3VtZW50cyksci50b2dnbGVPcHRpb24mJnIudG9nZ2xlT3B0aW9uKHtsYWJlbDpXLHZhbHVlOmYudmFsdWV9KX0sTy5uYW1lPXIubmFtZSxPLmNoZWNrZWQ9ci52YWx1ZS5pbmNsdWRlcyhmLnZhbHVlKSk7Y29uc3QgTD1nKCkoYCR7aH0td3JhcHBlcmAse1tgJHtofS1ydGxgXTpsPT09InJ0bCIsW2Ake2h9LXdyYXBwZXItY2hlY2tlZGBdOk8uY2hlY2tlZCxbYCR7aH0td3JhcHBlci1kaXNhYmxlZGBdOnYsW2Ake2h9LXdyYXBwZXItaW4tZm9ybS1pdGVtYF06b30sYT09bnVsbD92b2lkIDA6YS5jbGFzc05hbWUsYyxjZSxqLFAseiksaT1nKCkoe1tgJHtofS1pbmRldGVybWluYXRlYF06dGV9LEguQSx6KSxbbSxiXT0oMCxxLlopKE8ub25DbGljayk7cmV0dXJuIE0odC5jcmVhdGVFbGVtZW50KFYuWix7Y29tcG9uZW50OiJDaGVja2JveCIsZGlzYWJsZWQ6dn0sdC5jcmVhdGVFbGVtZW50KCJsYWJlbCIse2NsYXNzTmFtZTpMLHN0eWxlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxhPT1udWxsP3ZvaWQgMDphLnN0eWxlKSxuZSksb25Nb3VzZUVudGVyOkUsb25Nb3VzZUxlYXZlOmssb25DbGljazptfSx0LmNyZWF0ZUVsZW1lbnQoQS5aLE9iamVjdC5hc3NpZ24oe30sTyx7b25DbGljazpiLHByZWZpeENsczpoLGNsYXNzTmFtZTppLGRpc2FibGVkOnYscmVmOnV9KSksVyE9PXZvaWQgMCYmdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmAke2h9LWxhYmVsYH0sVykpKSl9O3ZhciBvZT10LmZvcndhcmRSZWYoaGUpLGFlPW4oNzQ5MDIpLFU9big5ODQyMyksRj1mdW5jdGlvbihkLFope3ZhciAkPXt9O2Zvcih2YXIgcyBpbiBkKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLHMpJiZaLmluZGV4T2Yocyk8MCYmKCRbc109ZFtzXSk7aWYoZCE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBjPTAscz1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGQpO2M8cy5sZW5ndGg7YysrKVouaW5kZXhPZihzW2NdKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZCxzW2NdKSYmKCRbc1tjXV09ZFtzW2NdXSk7cmV0dXJuICR9LG1lPXQuZm9yd2FyZFJlZigoZCxaKT0+e2NvbnN0e2RlZmF1bHRWYWx1ZTokLGNoaWxkcmVuOnMsb3B0aW9uczpjPVtdLHByZWZpeENsczpjZSxjbGFzc05hbWU6Vyxyb290Q2xhc3NOYW1lOnRlLHN0eWxlOm5lLG9uQ2hhbmdlOkV9PWQsaz1GKGQsWyJkZWZhdWx0VmFsdWUiLCJjaGlsZHJlbiIsIm9wdGlvbnMiLCJwcmVmaXhDbHMiLCJjbGFzc05hbWUiLCJyb290Q2xhc3NOYW1lIiwic3R5bGUiLCJvbkNoYW5nZSJdKSx7Z2V0UHJlZml4Q2xzOnVlLGRpcmVjdGlvbjp4ZX09dC51c2VDb250ZXh0KF8uRV8pLFtmLGJlXT10LnVzZVN0YXRlKGsudmFsdWV8fCR8fFtdKSxbbCxhXT10LnVzZVN0YXRlKFtdKTt0LnVzZUVmZmVjdCgoKT0+eyJ2YWx1ZSJpbiBrJiZiZShrLnZhbHVlfHxbXSl9LFtrLnZhbHVlXSk7Y29uc3Qgcj10LnVzZU1lbW8oKCk9PmMubWFwKGk9PnR5cGVvZiBpPT0ic3RyaW5nInx8dHlwZW9mIGk9PSJudW1iZXIiP3tsYWJlbDppLHZhbHVlOml9OmkpLFtjXSksbz1pPT57YShtPT5tLmZpbHRlcihiPT5iIT09aSkpfSxlPWk9PnthKG09PltdLmNvbmNhdCgoMCxhZS5aKShtKSxbaV0pKX0sdj1pPT57Y29uc3QgbT1mLmluZGV4T2YoaS52YWx1ZSksYj0oMCxhZS5aKShmKTttPT09LTE/Yi5wdXNoKGkudmFsdWUpOmIuc3BsaWNlKG0sMSksInZhbHVlImluIGt8fGJlKGIpLEU9PW51bGx8fEUoYi5maWx0ZXIocD0+bC5pbmNsdWRlcyhwKSkuc29ydCgocCxEKT0+e2NvbnN0IEs9ci5maW5kSW5kZXgoWD0+WC52YWx1ZT09PXApLHg9ci5maW5kSW5kZXgoWD0+WC52YWx1ZT09PUQpO3JldHVybiBLLXh9KSl9LEM9dWUoImNoZWNrYm94IixjZSkseT1gJHtDfS1ncm91cGAsdT0oMCxzZS5aKShDKSxbaCxQLE1dPSgwLGxlLlpQKShDLHUpLHo9KDAsVS5aKShrLFsidmFsdWUiLCJkaXNhYmxlZCJdKSxqPWMubGVuZ3RoP3IubWFwKGk9PnQuY3JlYXRlRWxlbWVudChvZSx7cHJlZml4Q2xzOkMsa2V5OmkudmFsdWUudG9TdHJpbmcoKSxkaXNhYmxlZDoiZGlzYWJsZWQiaW4gaT9pLmRpc2FibGVkOmsuZGlzYWJsZWQsdmFsdWU6aS52YWx1ZSxjaGVja2VkOmYuaW5jbHVkZXMoaS52YWx1ZSksb25DaGFuZ2U6aS5vbkNoYW5nZSxjbGFzc05hbWU6YCR7eX0taXRlbWAsc3R5bGU6aS5zdHlsZSx0aXRsZTppLnRpdGxlLGlkOmkuaWQscmVxdWlyZWQ6aS5yZXF1aXJlZH0saS5sYWJlbCkpOnMsTz17dG9nZ2xlT3B0aW9uOnYsdmFsdWU6ZixkaXNhYmxlZDprLmRpc2FibGVkLG5hbWU6ay5uYW1lLHJlZ2lzdGVyVmFsdWU6ZSxjYW5jZWxWYWx1ZTpvfSxMPWcoKSh5LHtbYCR7eX0tcnRsYF06eGU9PT0icnRsIn0sVyx0ZSxNLHUsUCk7cmV0dXJuIGgodC5jcmVhdGVFbGVtZW50KCJkaXYiLE9iamVjdC5hc3NpZ24oe2NsYXNzTmFtZTpMLHN0eWxlOm5lfSx6LHtyZWY6Wn0pLHQuY3JlYXRlRWxlbWVudChkZS5Qcm92aWRlcix7dmFsdWU6T30saikpKX0pO2NvbnN0IGVlPW9lO2VlLkdyb3VwPW1lLGVlLl9fQU5UX0NIRUNLQk9YPSEwO3ZhciBwZT1lZX0sNTI3MzpmdW5jdGlvbihFZSxZLG4pe24uZChZLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGd9fSk7dmFyIHQ9big2NzI5NCksRz1uKDc1MTY0KTtmdW5jdGlvbiBnKEEpe2NvbnN0IE49dC51c2VSZWYobnVsbCksVj0oKT0+e0cuWi5jYW5jZWwoTi5jdXJyZW50KSxOLmN1cnJlbnQ9bnVsbH07cmV0dXJuWygpPT57VigpLE4uY3VycmVudD0oMCxHLlopKCgpPT57Ti5jdXJyZW50PW51bGx9KX0sST0+e04uY3VycmVudCYmKEkuc3RvcFByb3BhZ2F0aW9uKCksVigpKSxBPT1udWxsfHxBKEkpfV19fSw3ODA0NTpmdW5jdGlvbihFZSxZLG4pe24uZChZLHtaUDpmdW5jdGlvbigpe3JldHVybiBiZX19KTt2YXIgdD1uKDY3Mjk0KSxHPW4oOTM5NjcpLGc9bi5uKEcpLEE9bigyMTc3MCksTj1uKDY0MjE3KSxWPW4oNTMxMjQpLEg9bigzNTc5MiksXz1uKDk4Njc1KTtjb25zdCBJPXQuY3JlYXRlQ29udGV4dChudWxsKSxzZT1JLlByb3ZpZGVyO3ZhciB2ZT1JO2NvbnN0IEI9dC5jcmVhdGVDb250ZXh0KG51bGwpLGRlPUIuUHJvdmlkZXI7dmFyIGxlPW4oNTAxMzIpLHE9big0MjU1MCksQ2U9big0NTM1MyksaGU9bigxNzQxNSksa2U9big1MjczKSxvZT1uKDk4ODY2KSxhZT1uKDY1MjIzKSxVPW4oMTE1NjgpLEY9bigxNDc0NyksZ2U9big4MzU1OSksbWU9big4MzI2Mik7Y29uc3QgZWU9bD0+e2NvbnN0e2NvbXBvbmVudENsczphLGFudENsczpyfT1sLG89YCR7YX0tZ3JvdXBgO3JldHVybntbb106T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCgwLEYuV2YpKGwpKSx7ZGlzcGxheToiaW5saW5lLWJsb2NrIixmb250U2l6ZTowLFtgJiR7b30tcnRsYF06e2RpcmVjdGlvbjoicnRsIn0sW2AmJHtvfS1ibG9ja2BdOntkaXNwbGF5OiJmbGV4In0sW2Ake3J9LWJhZGdlICR7cn0tYmFkZ2UtY291bnRgXTp7ekluZGV4OjF9LFtgPiAke3J9LWJhZGdlOm5vdCg6Zmlyc3QtY2hpbGQpID4gJHtyfS1idXR0b24td3JhcHBlcmBdOntib3JkZXJJbmxpbmVTdGFydDoibm9uZSJ9fSl9fSxwZT1sPT57Y29uc3R7Y29tcG9uZW50Q2xzOmEsd3JhcHBlck1hcmdpbklubGluZUVuZDpyLGNvbG9yUHJpbWFyeTpvLHJhZGlvU2l6ZTplLG1vdGlvbkR1cmF0aW9uU2xvdzp2LG1vdGlvbkR1cmF0aW9uTWlkOkMsbW90aW9uRWFzZUluT3V0Q2lyYzp5LGNvbG9yQmdDb250YWluZXI6dSxjb2xvckJvcmRlcjpoLGxpbmVXaWR0aDpQLGNvbG9yQmdDb250YWluZXJEaXNhYmxlZDpNLGNvbG9yVGV4dERpc2FibGVkOnoscGFkZGluZ1hTOmosZG90Q29sb3JEaXNhYmxlZDpPLGxpbmVUeXBlOkwscmFkaW9Db2xvcjppLHJhZGlvQmdDb2xvcjptLGNhbGM6Yn09bCxwPWAke2F9LWlubmVyYCxLPWIoZSkuc3ViKGIoNCkubXVsKDIpKSx4PWIoMSkubXVsKGUpLmVxdWFsKHt1bml0OiEwfSk7cmV0dXJue1tgJHthfS13cmFwcGVyYF06T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCgwLEYuV2YpKGwpKSx7ZGlzcGxheToiaW5saW5lLWZsZXgiLGFsaWduSXRlbXM6ImJhc2VsaW5lIixtYXJnaW5JbmxpbmVTdGFydDowLG1hcmdpbklubGluZUVuZDpyLGN1cnNvcjoicG9pbnRlciIsIiY6bGFzdC1jaGlsZCI6e21hcmdpbklubGluZUVuZDowfSxbYCYke2F9LXdyYXBwZXItcnRsYF06e2RpcmVjdGlvbjoicnRsIn0sIiYtZGlzYWJsZWQiOntjdXJzb3I6Im5vdC1hbGxvd2VkIixjb2xvcjpsLmNvbG9yVGV4dERpc2FibGVkfSwiJjo6YWZ0ZXIiOntkaXNwbGF5OiJpbmxpbmUtYmxvY2siLHdpZHRoOjAsb3ZlcmZsb3c6ImhpZGRlbiIsY29udGVudDonIlxcYTAiJ30sIiYtYmxvY2siOntmbGV4OjEsanVzdGlmeUNvbnRlbnQ6ImNlbnRlciJ9LFtgJHthfS1jaGVja2VkOjphZnRlcmBdOntwb3NpdGlvbjoiYWJzb2x1dGUiLGluc2V0QmxvY2tTdGFydDowLGluc2V0SW5saW5lU3RhcnQ6MCx3aWR0aDoiMTAwJSIsaGVpZ2h0OiIxMDAlIixib3JkZXI6YCR7KDAsVS5iZikoUCl9ICR7TH0gJHtvfWAsYm9yZGVyUmFkaXVzOiI1MCUiLHZpc2liaWxpdHk6ImhpZGRlbiIsb3BhY2l0eTowLGNvbnRlbnQ6JyIiJ30sW2FdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwoMCxGLldmKShsKSkse3Bvc2l0aW9uOiJyZWxhdGl2ZSIsZGlzcGxheToiaW5saW5lLWJsb2NrIixvdXRsaW5lOiJub25lIixjdXJzb3I6InBvaW50ZXIiLGFsaWduU2VsZjoiY2VudGVyIixib3JkZXJSYWRpdXM6IjUwJSJ9KSxbYCR7YX0td3JhcHBlcjpob3ZlciAmLAorICAgICAgICAmOmhvdmVyICR7cH1gXTp7Ym9yZGVyQ29sb3I6b30sW2Ake2F9LWlucHV0OmZvY3VzLXZpc2libGUgKyAke3B9YF06T2JqZWN0LmFzc2lnbih7fSwoMCxGLm9OKShsKSksW2Ake2F9OmhvdmVyOjphZnRlciwgJHthfS13cmFwcGVyOmhvdmVyICY6OmFmdGVyYF06e3Zpc2liaWxpdHk6InZpc2libGUifSxbYCR7YX0taW5uZXJgXTp7IiY6OmFmdGVyIjp7Ym94U2l6aW5nOiJib3JkZXItYm94Iixwb3NpdGlvbjoiYWJzb2x1dGUiLGluc2V0QmxvY2tTdGFydDoiNTAlIixpbnNldElubGluZVN0YXJ0OiI1MCUiLGRpc3BsYXk6ImJsb2NrIix3aWR0aDp4LGhlaWdodDp4LG1hcmdpbkJsb2NrU3RhcnQ6YigxKS5tdWwoZSkuZGl2KC0yKS5lcXVhbCh7dW5pdDohMH0pLG1hcmdpbklubGluZVN0YXJ0OmIoMSkubXVsKGUpLmRpdigtMikuZXF1YWwoe3VuaXQ6ITB9KSxiYWNrZ3JvdW5kQ29sb3I6aSxib3JkZXJCbG9ja1N0YXJ0OjAsYm9yZGVySW5saW5lU3RhcnQ6MCxib3JkZXJSYWRpdXM6eCx0cmFuc2Zvcm06InNjYWxlKDApIixvcGFjaXR5OjAsdHJhbnNpdGlvbjpgYWxsICR7dn0gJHt5fWAsY29udGVudDonIiInfSxib3hTaXppbmc6ImJvcmRlci1ib3giLHBvc2l0aW9uOiJyZWxhdGl2ZSIsaW5zZXRCbG9ja1N0YXJ0OjAsaW5zZXRJbmxpbmVTdGFydDowLGRpc3BsYXk6ImJsb2NrIix3aWR0aDp4LGhlaWdodDp4LGJhY2tncm91bmRDb2xvcjp1LGJvcmRlckNvbG9yOmgsYm9yZGVyU3R5bGU6InNvbGlkIixib3JkZXJXaWR0aDpQLGJvcmRlclJhZGl1czoiNTAlIix0cmFuc2l0aW9uOmBhbGwgJHtDfWB9LFtgJHthfS1pbnB1dGBdOntwb3NpdGlvbjoiYWJzb2x1dGUiLGluc2V0OjAsekluZGV4OjEsY3Vyc29yOiJwb2ludGVyIixvcGFjaXR5OjB9LFtgJHthfS1jaGVja2VkYF06e1twXTp7Ym9yZGVyQ29sb3I6byxiYWNrZ3JvdW5kQ29sb3I6bSwiJjo6YWZ0ZXIiOnt0cmFuc2Zvcm06YHNjYWxlKCR7bC5jYWxjKGwuZG90U2l6ZSkuZGl2KGUpLmVxdWFsKCl9KWAsb3BhY2l0eToxLHRyYW5zaXRpb246YGFsbCAke3Z9ICR7eX1gfX19LFtgJHthfS1kaXNhYmxlZGBdOntjdXJzb3I6Im5vdC1hbGxvd2VkIixbcF06e2JhY2tncm91bmRDb2xvcjpNLGJvcmRlckNvbG9yOmgsY3Vyc29yOiJub3QtYWxsb3dlZCIsIiY6OmFmdGVyIjp7YmFja2dyb3VuZENvbG9yOk99fSxbYCR7YX0taW5wdXRgXTp7Y3Vyc29yOiJub3QtYWxsb3dlZCJ9LFtgJHthfS1kaXNhYmxlZCArIHNwYW5gXTp7Y29sb3I6eixjdXJzb3I6Im5vdC1hbGxvd2VkIn0sW2AmJHthfS1jaGVja2VkYF06e1twXTp7IiY6OmFmdGVyIjp7dHJhbnNmb3JtOmBzY2FsZSgke2IoSykuZGl2KGUpLmVxdWFsKCl9KWB9fX19LFtgc3BhbiR7YX0gKyAqYF06e3BhZGRpbmdJbmxpbmVTdGFydDpqLHBhZGRpbmdJbmxpbmVFbmQ6an19KX19LGQ9bD0+e2NvbnN0e2J1dHRvbkNvbG9yOmEsY29udHJvbEhlaWdodDpyLGNvbXBvbmVudENsczpvLGxpbmVXaWR0aDplLGxpbmVUeXBlOnYsY29sb3JCb3JkZXI6Qyxtb3Rpb25EdXJhdGlvblNsb3c6eSxtb3Rpb25EdXJhdGlvbk1pZDp1LGJ1dHRvblBhZGRpbmdJbmxpbmU6aCxmb250U2l6ZTpQLGJ1dHRvbkJnOk0sZm9udFNpemVMRzp6LGNvbnRyb2xIZWlnaHRMRzpqLGNvbnRyb2xIZWlnaHRTTTpPLHBhZGRpbmdYUzpMLGJvcmRlclJhZGl1czppLGJvcmRlclJhZGl1c1NNOm0sYm9yZGVyUmFkaXVzTEc6YixidXR0b25DaGVja2VkQmc6cCxidXR0b25Tb2xpZENoZWNrZWRDb2xvcjpELGNvbG9yVGV4dERpc2FibGVkOkssY29sb3JCZ0NvbnRhaW5lckRpc2FibGVkOngsYnV0dG9uQ2hlY2tlZEJnRGlzYWJsZWQ6WCxidXR0b25DaGVja2VkQ29sb3JEaXNhYmxlZDp5ZSxjb2xvclByaW1hcnk6dyxjb2xvclByaW1hcnlIb3ZlcjpyZSxjb2xvclByaW1hcnlBY3RpdmU6UyxidXR0b25Tb2xpZENoZWNrZWRCZzpRLGJ1dHRvblNvbGlkQ2hlY2tlZEhvdmVyQmc6SixidXR0b25Tb2xpZENoZWNrZWRBY3RpdmVCZzppZSxjYWxjOlR9PWw7cmV0dXJue1tgJHtvfS1idXR0b24td3JhcHBlcmBdOntwb3NpdGlvbjoicmVsYXRpdmUiLGRpc3BsYXk6ImlubGluZS1ibG9jayIsaGVpZ2h0OnIsbWFyZ2luOjAscGFkZGluZ0lubGluZTpoLHBhZGRpbmdCbG9jazowLGNvbG9yOmEsZm9udFNpemU6UCxsaW5lSGVpZ2h0OigwLFUuYmYpKFQocikuc3ViKFQoZSkubXVsKDIpKS5lcXVhbCgpKSxiYWNrZ3JvdW5kOk0sYm9yZGVyOmAkeygwLFUuYmYpKGUpfSAke3Z9ICR7Q31gLGJvcmRlckJsb2NrU3RhcnRXaWR0aDpUKGUpLmFkZCguMDIpLmVxdWFsKCksYm9yZGVySW5saW5lU3RhcnRXaWR0aDowLGJvcmRlcklubGluZUVuZFdpZHRoOmUsY3Vyc29yOiJwb2ludGVyIix0cmFuc2l0aW9uOltgY29sb3IgJHt1fWAsYGJhY2tncm91bmQgJHt1fWAsYGJveC1zaGFkb3cgJHt1fWBdLmpvaW4oIiwiKSxhOntjb2xvcjphfSxbYD4gJHtvfS1idXR0b25gXTp7cG9zaXRpb246ImFic29sdXRlIixpbnNldEJsb2NrU3RhcnQ6MCxpbnNldElubGluZVN0YXJ0OjAsekluZGV4Oi0xLHdpZHRoOiIxMDAlIixoZWlnaHQ6IjEwMCUifSwiJjpub3QoOmZpcnN0LWNoaWxkKSI6eyImOjpiZWZvcmUiOntwb3NpdGlvbjoiYWJzb2x1dGUiLGluc2V0QmxvY2tTdGFydDpUKGUpLm11bCgtMSkuZXF1YWwoKSxpbnNldElubGluZVN0YXJ0OlQoZSkubXVsKC0xKS5lcXVhbCgpLGRpc3BsYXk6ImJsb2NrIixib3hTaXppbmc6ImNvbnRlbnQtYm94Iix3aWR0aDoxLGhlaWdodDoiMTAwJSIscGFkZGluZ0Jsb2NrOmUscGFkZGluZ0lubGluZTowLGJhY2tncm91bmRDb2xvcjpDLHRyYW5zaXRpb246YGJhY2tncm91bmQtY29sb3IgJHt5fWAsY29udGVudDonIiInfX0sIiY6Zmlyc3QtY2hpbGQiOntib3JkZXJJbmxpbmVTdGFydDpgJHsoMCxVLmJmKShlKX0gJHt2fSAke0N9YCxib3JkZXJTdGFydFN0YXJ0UmFkaXVzOmksYm9yZGVyRW5kU3RhcnRSYWRpdXM6aX0sIiY6bGFzdC1jaGlsZCI6e2JvcmRlclN0YXJ0RW5kUmFkaXVzOmksYm9yZGVyRW5kRW5kUmFkaXVzOml9LCImOmZpcnN0LWNoaWxkOmxhc3QtY2hpbGQiOntib3JkZXJSYWRpdXM6aX0sW2Ake299LWdyb3VwLWxhcmdlICZgXTp7aGVpZ2h0OmosZm9udFNpemU6eixsaW5lSGVpZ2h0OigwLFUuYmYpKFQoaikuc3ViKFQoZSkubXVsKDIpKS5lcXVhbCgpKSwiJjpmaXJzdC1jaGlsZCI6e2JvcmRlclN0YXJ0U3RhcnRSYWRpdXM6Yixib3JkZXJFbmRTdGFydFJhZGl1czpifSwiJjpsYXN0LWNoaWxkIjp7Ym9yZGVyU3RhcnRFbmRSYWRpdXM6Yixib3JkZXJFbmRFbmRSYWRpdXM6Yn19LFtgJHtvfS1ncm91cC1zbWFsbCAmYF06e2hlaWdodDpPLHBhZGRpbmdJbmxpbmU6VChMKS5zdWIoZSkuZXF1YWwoKSxwYWRkaW5nQmxvY2s6MCxsaW5lSGVpZ2h0OigwLFUuYmYpKFQoTykuc3ViKFQoZSkubXVsKDIpKS5lcXVhbCgpKSwiJjpmaXJzdC1jaGlsZCI6e2JvcmRlclN0YXJ0U3RhcnRSYWRpdXM6bSxib3JkZXJFbmRTdGFydFJhZGl1czptfSwiJjpsYXN0LWNoaWxkIjp7Ym9yZGVyU3RhcnRFbmRSYWRpdXM6bSxib3JkZXJFbmRFbmRSYWRpdXM6bX19LCImOmhvdmVyIjp7cG9zaXRpb246InJlbGF0aXZlIixjb2xvcjp3fSwiJjpoYXMoOmZvY3VzLXZpc2libGUpIjpPYmplY3QuYXNzaWduKHt9LCgwLEYub04pKGwpKSxbYCR7b30taW5uZXIsIGlucHV0W3R5cGU9J2NoZWNrYm94J10sIGlucHV0W3R5cGU9J3JhZGlvJ11gXTp7d2lkdGg6MCxoZWlnaHQ6MCxvcGFjaXR5OjAscG9pbnRlckV2ZW50czoibm9uZSJ9LFtgJi1jaGVja2VkOm5vdCgke299LWJ1dHRvbi13cmFwcGVyLWRpc2FibGVkKWBdOnt6SW5kZXg6MSxjb2xvcjp3LGJhY2tncm91bmQ6cCxib3JkZXJDb2xvcjp3LCImOjpiZWZvcmUiOntiYWNrZ3JvdW5kQ29sb3I6d30sIiY6Zmlyc3QtY2hpbGQiOntib3JkZXJDb2xvcjp3fSwiJjpob3ZlciI6e2NvbG9yOnJlLGJvcmRlckNvbG9yOnJlLCImOjpiZWZvcmUiOntiYWNrZ3JvdW5kQ29sb3I6cmV9fSwiJjphY3RpdmUiOntjb2xvcjpTLGJvcmRlckNvbG9yOlMsIiY6OmJlZm9yZSI6e2JhY2tncm91bmRDb2xvcjpTfX19LFtgJHtvfS1ncm91cC1zb2xpZCAmLWNoZWNrZWQ6bm90KCR7b30tYnV0dG9uLXdyYXBwZXItZGlzYWJsZWQpYF06e2NvbG9yOkQsYmFja2dyb3VuZDpRLGJvcmRlckNvbG9yOlEsIiY6aG92ZXIiOntjb2xvcjpELGJhY2tncm91bmQ6Sixib3JkZXJDb2xvcjpKfSwiJjphY3RpdmUiOntjb2xvcjpELGJhY2tncm91bmQ6aWUsYm9yZGVyQ29sb3I6aWV9fSwiJi1kaXNhYmxlZCI6e2NvbG9yOkssYmFja2dyb3VuZENvbG9yOngsYm9yZGVyQ29sb3I6QyxjdXJzb3I6Im5vdC1hbGxvd2VkIiwiJjpmaXJzdC1jaGlsZCwgJjpob3ZlciI6e2NvbG9yOkssYmFja2dyb3VuZENvbG9yOngsYm9yZGVyQ29sb3I6Q319LFtgJi1kaXNhYmxlZCR7b30tYnV0dG9uLXdyYXBwZXItY2hlY2tlZGBdOntjb2xvcjp5ZSxiYWNrZ3JvdW5kQ29sb3I6WCxib3JkZXJDb2xvcjpDLGJveFNoYWRvdzoibm9uZSJ9LCImLWJsb2NrIjp7ZmxleDoxLHRleHRBbGlnbjoiY2VudGVyIn19fX0sWj1sPT57Y29uc3R7d2lyZWZyYW1lOmEscGFkZGluZzpyLG1hcmdpblhTOm8sbGluZVdpZHRoOmUsZm9udFNpemVMRzp2LGNvbG9yVGV4dDpDLGNvbG9yQmdDb250YWluZXI6eSxjb2xvclRleHREaXNhYmxlZDp1LGNvbnRyb2xJdGVtQmdBY3RpdmVEaXNhYmxlZDpoLGNvbG9yVGV4dExpZ2h0U29saWQ6UCxjb2xvclByaW1hcnk6TSxjb2xvclByaW1hcnlIb3Zlcjp6LGNvbG9yUHJpbWFyeUFjdGl2ZTpqLGNvbG9yV2hpdGU6T309bCxMPTQsaT12LG09YT9pLUwqMjppLShMK2UpKjI7cmV0dXJue3JhZGlvU2l6ZTppLGRvdFNpemU6bSxkb3RDb2xvckRpc2FibGVkOnUsYnV0dG9uU29saWRDaGVja2VkQ29sb3I6UCxidXR0b25Tb2xpZENoZWNrZWRCZzpNLGJ1dHRvblNvbGlkQ2hlY2tlZEhvdmVyQmc6eixidXR0b25Tb2xpZENoZWNrZWRBY3RpdmVCZzpqLGJ1dHRvbkJnOnksYnV0dG9uQ2hlY2tlZEJnOnksYnV0dG9uQ29sb3I6QyxidXR0b25DaGVja2VkQmdEaXNhYmxlZDpoLGJ1dHRvbkNoZWNrZWRDb2xvckRpc2FibGVkOnUsYnV0dG9uUGFkZGluZ0lubGluZTpyLWUsd3JhcHBlck1hcmdpbklubGluZUVuZDpvLHJhZGlvQ29sb3I6YT9NOk8scmFkaW9CZ0NvbG9yOmE/eTpNfX07dmFyICQ9KDAsZ2UuSSQpKCJSYWRpbyIsbD0+e2NvbnN0e2NvbnRyb2xPdXRsaW5lOmEsY29udHJvbE91dGxpbmVXaWR0aDpyfT1sLG89YDAgMCAwICR7KDAsVS5iZikocil9ICR7YX1gLGU9byx2PSgwLG1lLklYKShsLHtyYWRpb0ZvY3VzU2hhZG93Om8scmFkaW9CdXR0b25Gb2N1c1NoYWRvdzplfSk7cmV0dXJuW2VlKHYpLHBlKHYpLGQodildfSxaLHt1bml0bGVzczp7cmFkaW9TaXplOiEwLGRvdFNpemU6ITB9fSkscz1mdW5jdGlvbihsLGEpe3ZhciByPXt9O2Zvcih2YXIgbyBpbiBsKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChsLG8pJiZhLmluZGV4T2Yobyk8MCYmKHJbb109bFtvXSk7aWYobCE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBlPTAsbz1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGwpO2U8by5sZW5ndGg7ZSsrKWEuaW5kZXhPZihvW2VdKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwobCxvW2VdKSYmKHJbb1tlXV09bFtvW2VdXSk7cmV0dXJuIHJ9O2NvbnN0IGM9KGwsYSk9Pnt2YXIgcixvO2NvbnN0IGU9dC51c2VDb250ZXh0KHZlKSx2PXQudXNlQ29udGV4dChCKSx7Z2V0UHJlZml4Q2xzOkMsZGlyZWN0aW9uOnkscmFkaW86dX09dC51c2VDb250ZXh0KFYuRV8pLGg9dC51c2VSZWYobnVsbCksUD0oMCxxLnNRKShhLGgpLHtpc0Zvcm1JdGVtSW5wdXQ6TX09dC51c2VDb250ZXh0KGFlLmFNKSx6PU9lPT57dmFyIFNlLGZlOyhTZT1sLm9uQ2hhbmdlKT09PW51bGx8fFNlPT09dm9pZCAwfHxTZS5jYWxsKGwsT2UpLChmZT1lPT1udWxsP3ZvaWQgMDplLm9uQ2hhbmdlKT09PW51bGx8fGZlPT09dm9pZCAwfHxmZS5jYWxsKGUsT2UpfSx7cHJlZml4Q2xzOmosY2xhc3NOYW1lOk8scm9vdENsYXNzTmFtZTpMLGNoaWxkcmVuOmksc3R5bGU6bSx0aXRsZTpifT1sLHA9cyhsLFsicHJlZml4Q2xzIiwiY2xhc3NOYW1lIiwicm9vdENsYXNzTmFtZSIsImNoaWxkcmVuIiwic3R5bGUiLCJ0aXRsZSJdKSxEPUMoInJhZGlvIixqKSxLPSgoZT09bnVsbD92b2lkIDA6ZS5vcHRpb25UeXBlKXx8dik9PT0iYnV0dG9uIix4PUs/YCR7RH0tYnV0dG9uYDpELFg9KDAsSC5aKShEKSxbeWUsdyxyZV09JChELFgpLFM9T2JqZWN0LmFzc2lnbih7fSxwKSxRPXQudXNlQ29udGV4dChvZS5aKTtlJiYoUy5uYW1lPWUubmFtZSxTLm9uQ2hhbmdlPXosUy5jaGVja2VkPWwudmFsdWU9PT1lLnZhbHVlLFMuZGlzYWJsZWQ9KHI9Uy5kaXNhYmxlZCkhPT1udWxsJiZyIT09dm9pZCAwP3I6ZS5kaXNhYmxlZCksUy5kaXNhYmxlZD0obz1TLmRpc2FibGVkKSE9PW51bGwmJm8hPT12b2lkIDA/bzpRO2NvbnN0IEo9ZygpKGAke3h9LXdyYXBwZXJgLHtbYCR7eH0td3JhcHBlci1jaGVja2VkYF06Uy5jaGVja2VkLFtgJHt4fS13cmFwcGVyLWRpc2FibGVkYF06Uy5kaXNhYmxlZCxbYCR7eH0td3JhcHBlci1ydGxgXTp5PT09InJ0bCIsW2Ake3h9LXdyYXBwZXItaW4tZm9ybS1pdGVtYF06TSxbYCR7eH0td3JhcHBlci1ibG9ja2BdOiEhKGUhPW51bGwmJmUuYmxvY2spfSx1PT1udWxsP3ZvaWQgMDp1LmNsYXNzTmFtZSxPLEwsdyxyZSxYKSxbaWUsVF09KDAsa2UuWikoUy5vbkNsaWNrKTtyZXR1cm4geWUodC5jcmVhdGVFbGVtZW50KENlLlose2NvbXBvbmVudDoiUmFkaW8iLGRpc2FibGVkOlMuZGlzYWJsZWR9LHQuY3JlYXRlRWxlbWVudCgibGFiZWwiLHtjbGFzc05hbWU6SixzdHlsZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdT09bnVsbD92b2lkIDA6dS5zdHlsZSksbSksb25Nb3VzZUVudGVyOmwub25Nb3VzZUVudGVyLG9uTW91c2VMZWF2ZTpsLm9uTW91c2VMZWF2ZSx0aXRsZTpiLG9uQ2xpY2s6aWV9LHQuY3JlYXRlRWxlbWVudChsZS5aLE9iamVjdC5hc3NpZ24oe30sUyx7Y2xhc3NOYW1lOmcoKShTLmNsYXNzTmFtZSx7W2hlLkFdOiFLfSksdHlwZToicmFkaW8iLHByZWZpeENsczp4LHJlZjpQLG9uQ2xpY2s6VH0pKSxpIT09dm9pZCAwP3QuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpgJHt4fS1sYWJlbGB9LGkpOm51bGwpKSl9O3ZhciBXPXQuZm9yd2FyZFJlZihjKSx0ZT1uKDcwMjgpO2NvbnN0IG5lPXQuZm9yd2FyZFJlZigobCxhKT0+e2NvbnN0e2dldFByZWZpeENsczpyLGRpcmVjdGlvbjpvfT10LnVzZUNvbnRleHQoVi5FXyksZT0oMCx0ZS5aKSgpLHtwcmVmaXhDbHM6dixjbGFzc05hbWU6Qyxyb290Q2xhc3NOYW1lOnksb3B0aW9uczp1LGJ1dHRvblN0eWxlOmg9Im91dGxpbmUiLGRpc2FibGVkOlAsY2hpbGRyZW46TSxzaXplOnosc3R5bGU6aixpZDpPLG9wdGlvblR5cGU6TCxuYW1lOmk9ZSxkZWZhdWx0VmFsdWU6bSx2YWx1ZTpiLGJsb2NrOnA9ITEsb25DaGFuZ2U6RCxvbk1vdXNlRW50ZXI6Syxvbk1vdXNlTGVhdmU6eCxvbkZvY3VzOlgsb25CbHVyOnllfT1sLFt3LHJlXT0oMCxBLlopKG0se3ZhbHVlOmJ9KSxTPXQudXNlQ2FsbGJhY2soUj0+e2NvbnN0IEJlPXcsUGU9Ui50YXJnZXQudmFsdWU7InZhbHVlImluIGx8fHJlKFBlKSxQZSE9PUJlJiYoRD09bnVsbHx8RChSKSl9LFt3LHJlLERdKSxRPXIoInJhZGlvIix2KSxKPWAke1F9LWdyb3VwYCxpZT0oMCxILlopKFEpLFtULE9lLFNlXT0kKFEsaWUpO2xldCBmZT1NO3UmJnUubGVuZ3RoPjAmJihmZT11Lm1hcChSPT50eXBlb2YgUj09InN0cmluZyJ8fHR5cGVvZiBSPT0ibnVtYmVyIj90LmNyZWF0ZUVsZW1lbnQoVyx7a2V5OlIudG9TdHJpbmcoKSxwcmVmaXhDbHM6USxkaXNhYmxlZDpQLHZhbHVlOlIsY2hlY2tlZDp3PT09Un0sUik6dC5jcmVhdGVFbGVtZW50KFcse2tleTpgcmFkaW8tZ3JvdXAtdmFsdWUtb3B0aW9ucy0ke1IudmFsdWV9YCxwcmVmaXhDbHM6USxkaXNhYmxlZDpSLmRpc2FibGVkfHxQLHZhbHVlOlIudmFsdWUsY2hlY2tlZDp3PT09Ui52YWx1ZSx0aXRsZTpSLnRpdGxlLHN0eWxlOlIuc3R5bGUsaWQ6Ui5pZCxyZXF1aXJlZDpSLnJlcXVpcmVkfSxSLmxhYmVsKSkpO2NvbnN0ICRlPSgwLF8uWikoeiksUmU9ZygpKEosYCR7Sn0tJHtofWAse1tgJHtKfS0keyRlfWBdOiRlLFtgJHtKfS1ydGxgXTpvPT09InJ0bCIsW2Ake0p9LWJsb2NrYF06cH0sQyx5LE9lLFNlLGllKSxJZT10LnVzZU1lbW8oKCk9Pih7b25DaGFuZ2U6Uyx2YWx1ZTp3LGRpc2FibGVkOlAsbmFtZTppLG9wdGlvblR5cGU6TCxibG9jazpwfSksW1MsdyxQLGksTCxwXSk7cmV0dXJuIFQodC5jcmVhdGVFbGVtZW50KCJkaXYiLE9iamVjdC5hc3NpZ24oe30sKDAsTi5aKShsLHthcmlhOiEwLGRhdGE6ITB9KSx7Y2xhc3NOYW1lOlJlLHN0eWxlOmosb25Nb3VzZUVudGVyOkssb25Nb3VzZUxlYXZlOngsb25Gb2N1czpYLG9uQmx1cjp5ZSxpZDpPLHJlZjphfSksdC5jcmVhdGVFbGVtZW50KHNlLHt2YWx1ZTpJZX0sZmUpKSl9KTt2YXIgRT10Lm1lbW8obmUpLGs9ZnVuY3Rpb24obCxhKXt2YXIgcj17fTtmb3IodmFyIG8gaW4gbClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobCxvKSYmYS5pbmRleE9mKG8pPDAmJihyW29dPWxbb10pO2lmKGwhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgZT0wLG89T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhsKTtlPG8ubGVuZ3RoO2UrKylhLmluZGV4T2Yob1tlXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGwsb1tlXSkmJihyW29bZV1dPWxbb1tlXV0pO3JldHVybiByfTtjb25zdCB1ZT0obCxhKT0+e2NvbnN0e2dldFByZWZpeENsczpyfT10LnVzZUNvbnRleHQoVi5FXykse3ByZWZpeENsczpvfT1sLGU9ayhsLFsicHJlZml4Q2xzIl0pLHY9cigicmFkaW8iLG8pO3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoZGUse3ZhbHVlOiJidXR0b24ifSx0LmNyZWF0ZUVsZW1lbnQoVyxPYmplY3QuYXNzaWduKHtwcmVmaXhDbHM6dn0sZSx7dHlwZToicmFkaW8iLHJlZjphfSkpKX07dmFyIHhlPXQuZm9yd2FyZFJlZih1ZSk7Y29uc3QgZj1XO2YuQnV0dG9uPXhlLGYuR3JvdXA9RSxmLl9fQU5UX1JBRElPPSEwO3ZhciBiZT1mfSw1MDEzMjpmdW5jdGlvbihFZSxZLG4pe3ZhciB0PW4oODc0NjIpLEc9bigxNDEzKSxnPW4oNDk0MiksQT1uKDk3Njg1KSxOPW4oOTEpLFY9big5Mzk2NyksSD1uLm4oViksXz1uKDIxNzcwKSxJPW4oNjcyOTQpLHNlPVsicHJlZml4Q2xzIiwiY2xhc3NOYW1lIiwic3R5bGUiLCJjaGVja2VkIiwiZGlzYWJsZWQiLCJkZWZhdWx0Q2hlY2tlZCIsInR5cGUiLCJ0aXRsZSIsIm9uQ2hhbmdlIl0sdmU9KDAsSS5mb3J3YXJkUmVmKShmdW5jdGlvbihCLGRlKXt2YXIgbGU9Qi5wcmVmaXhDbHMscT1sZT09PXZvaWQgMD8icmMtY2hlY2tib3giOmxlLENlPUIuY2xhc3NOYW1lLGhlPUIuc3R5bGUsa2U9Qi5jaGVja2VkLG9lPUIuZGlzYWJsZWQsYWU9Qi5kZWZhdWx0Q2hlY2tlZCxVPWFlPT09dm9pZCAwPyExOmFlLEY9Qi50eXBlLGdlPUY9PT12b2lkIDA/ImNoZWNrYm94IjpGLG1lPUIudGl0bGUsZWU9Qi5vbkNoYW5nZSxwZT0oMCxOLlopKEIsc2UpLGQ9KDAsSS51c2VSZWYpKG51bGwpLFo9KDAsSS51c2VSZWYpKG51bGwpLCQ9KDAsXy5aKShVLHt2YWx1ZTprZX0pLHM9KDAsQS5aKSgkLDIpLGM9c1swXSxjZT1zWzFdOygwLEkudXNlSW1wZXJhdGl2ZUhhbmRsZSkoZGUsZnVuY3Rpb24oKXtyZXR1cm57Zm9jdXM6ZnVuY3Rpb24oRSl7dmFyIGs7KGs9ZC5jdXJyZW50KT09PW51bGx8fGs9PT12b2lkIDB8fGsuZm9jdXMoRSl9LGJsdXI6ZnVuY3Rpb24oKXt2YXIgRTsoRT1kLmN1cnJlbnQpPT09bnVsbHx8RT09PXZvaWQgMHx8RS5ibHVyKCl9LGlucHV0OmQuY3VycmVudCxuYXRpdmVFbGVtZW50OlouY3VycmVudH19KTt2YXIgVz1IKCkocSxDZSwoMCxnLlopKCgwLGcuWikoe30sIiIuY29uY2F0KHEsIi1jaGVja2VkIiksYyksIiIuY29uY2F0KHEsIi1kaXNhYmxlZCIpLG9lKSksdGU9ZnVuY3Rpb24oRSl7b2V8fCgiY2hlY2tlZCJpbiBCfHxjZShFLnRhcmdldC5jaGVja2VkKSxlZT09bnVsbHx8ZWUoe3RhcmdldDooMCxHLlopKCgwLEcuWikoe30sQikse30se3R5cGU6Z2UsY2hlY2tlZDpFLnRhcmdldC5jaGVja2VkfSksc3RvcFByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7RS5zdG9wUHJvcGFnYXRpb24oKX0scHJldmVudERlZmF1bHQ6ZnVuY3Rpb24oKXtFLnByZXZlbnREZWZhdWx0KCl9LG5hdGl2ZUV2ZW50OkUubmF0aXZlRXZlbnR9KSl9O3JldHVybiBJLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Vyx0aXRsZTptZSxzdHlsZTpoZSxyZWY6Wn0sSS5jcmVhdGVFbGVtZW50KCJpbnB1dCIsKDAsdC5aKSh7fSxwZSx7Y2xhc3NOYW1lOiIiLmNvbmNhdChxLCItaW5wdXQiKSxyZWY6ZCxvbkNoYW5nZTp0ZSxkaXNhYmxlZDpvZSxjaGVja2VkOiEhYyx0eXBlOmdlfSkpLEkuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToiIi5jb25jYXQocSwiLWlubmVyIil9KSl9KTtZLlo9dmV9LDY0MDE5OmZ1bmN0aW9uKEVlLFksbil7bi5kKFkse1o6ZnVuY3Rpb24oKXtyZXR1cm4gR319KTt2YXIgdD1uKDczOTM1KTtmdW5jdGlvbiBHKGcsQSxOLFYpe3ZhciBIPXQudW5zdGFibGVfYmF0Y2hlZFVwZGF0ZXM/ZnVuY3Rpb24oSSl7dC51bnN0YWJsZV9iYXRjaGVkVXBkYXRlcyhOLEkpfTpOO3JldHVybiBnIT1udWxsJiZnLmFkZEV2ZW50TGlzdGVuZXImJmcuYWRkRXZlbnRMaXN0ZW5lcihBLEgsVikse3JlbW92ZTpmdW5jdGlvbigpe2chPW51bGwmJmcucmVtb3ZlRXZlbnRMaXN0ZW5lciYmZy5yZW1vdmVFdmVudExpc3RlbmVyKEEsSCxWKX19fX19XSk7CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzU4NzYuNDJhYzM4YjAuYXN5bmMuanMgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzU4NzYuNDJhYzM4YjAuYXN5bmMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzFlMGNkMAotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNTg3Ni40MmFjMzhiMC5hc3luYy5qcwpAQCAtMCwwICsxIEBACisidXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W10pLnB1c2goW1s1ODc2XSx7OTQxNjI6ZnVuY3Rpb24oSixVLGUpe3ZhciBTPWUoNjQ1OTkpLGw9ZS5uKFMpLHg9ZSg2NzI5NCkscj1lKDY2MzA5KSxHPWUoODU4OTMpLFA9ZnVuY3Rpb24oXyl7ZnVuY3Rpb24gQShvKXtzd2l0Y2gobyl7Y2FzZSJwcmltYXJ5IjpyZXR1cm4iYmx1ZSI7Y2FzZSJzdWNjZXNzIjpyZXR1cm4ic3VjY2VzcyI7Y2FzZSJpbmZvIjpyZXR1cm4iZ3JlZW4iO2Nhc2Uid2FybmluZyI6cmV0dXJuIndhcm5pbmciO2Nhc2UiZGFuZ2VyIjpyZXR1cm4iZXJyb3IiO2Nhc2UiZGVmYXVsdCI6ZGVmYXVsdDpyZXR1cm4iZGVmYXVsdCJ9fWZ1bmN0aW9uIGYobyl7aWYobz09PXZvaWQgMClyZXR1cm4iIjtpZihfLmVudW1zKXt2YXIgRT1fLmVudW1zW29dO3JldHVybiBFLmxhYmVsfWlmKF8ub3B0aW9ucyl7aWYoIUFycmF5LmlzQXJyYXkoXy5vcHRpb25zKSlyZXR1cm4gY29uc29sZS5sb2coIkRpY3RUYWcgb3B0aW9ucyBpcyBubyBhcnJheSEiKSwiIjt2YXIgdD1sKCkoXy5vcHRpb25zKSxGO3RyeXtmb3IodC5zKCk7IShGPXQubigpKS5kb25lOyl7dmFyIFI9Ri52YWx1ZTtpZihSLnZhbHVlPT09bylyZXR1cm4gUi50ZXh0fX1jYXRjaChjKXt0LmUoYyl9ZmluYWxseXt0LmYoKX19cmV0dXJuIFN0cmluZyhfLnZhbHVlKX1mdW5jdGlvbiBkKG8pe2lmKG89PT12b2lkIDApcmV0dXJuImRlZmF1bHQiO2lmKF8uZW51bXMpe3ZhciBFPV8uZW51bXNbb107cmV0dXJuIEUubGlzdENsYXNzfHwiZGVmYXVsdCJ9aWYoXy5vcHRpb25zKXtpZighQXJyYXkuaXNBcnJheShfLm9wdGlvbnMpKXJldHVybiBjb25zb2xlLmxvZygiRGljdFRhZyBvcHRpb25zIGlzIG5vIGFycmF5ISIpLCJkZWZhdWx0Ijt2YXIgdD1sKCkoXy5vcHRpb25zKSxGO3RyeXtmb3IodC5zKCk7IShGPXQubigpKS5kb25lOyl7dmFyIFI9Ri52YWx1ZTtpZihSLnZhbHVlPT09bylyZXR1cm4gUi5saXN0Q2xhc3N8fCJkZWZhdWx0In19Y2F0Y2goYyl7dC5lKGMpfWZpbmFsbHl7dC5mKCl9fXJldHVybiBTdHJpbmcoXy52YWx1ZSl9dmFyIEI9ZnVuY3Rpb24oKXtyZXR1cm4gQShkKF8udmFsdWUpLnRvTG93ZXJDYXNlKCkpfSwkPWZ1bmN0aW9uKCl7cmV0dXJuIGYoXy52YWx1ZSl9O3JldHVybigwLEcuanN4KShyLlose2NvbG9yOkIoKSxjaGlsZHJlbjokKCl9KX07VS5aPVB9LDMzODY3OmZ1bmN0aW9uKEosVSxlKXtlLmQoVSx7aUs6ZnVuY3Rpb24oKXtyZXR1cm4gU30semM6ZnVuY3Rpb24oKXtyZXR1cm4geH19KTt2YXIgUz1mdW5jdGlvbihyKXtyZXR1cm4gcltyLlNVQ0NFU1M9MjAwXT0iU1VDQ0VTUyIscltyLkVSUk9SPS0xXT0iRVJST1IiLHJbci5USU1FT1VUPTQwMV09IlRJTUVPVVQiLHIuVFlQRT0ic3VjY2VzcyIscn0oe30pLGw9ZnVuY3Rpb24ocil7cmV0dXJuIHIuR0VUPSJHRVQiLHIuUE9TVD0iUE9TVCIsci5QVVQ9IlBVVCIsci5ERUxFVEU9IkRFTEVURSIscn0oe30pLHg9ZnVuY3Rpb24ocil7cmV0dXJuIHIuSlNPTj0iYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04IixyLkZPUk1fVVJMRU5DT0RFRD0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9VVRGLTgiLHIuRk9STV9EQVRBPSJtdWx0aXBhcnQvZm9ybS1kYXRhO2NoYXJzZXQ9VVRGLTgiLHJ9KHt9KX0sNzU0ODI6ZnVuY3Rpb24oSixVLGUpe2UucihVKTt2YXIgUz1lKDE1MDA5KSxsPWUubihTKSx4PWUoOTkyODkpLHI9ZS5uKHgpLEc9ZSg1NTc0KSxQPWUubihHKSxDPWUoNjcyOTQpLF89ZSg5NzI2OSksQT1lKDMxMTk5KSxmPWUoNTk2NiksZD1lKDg2NjE1KSxCPWUoOTA2NzIpLCQ9ZSg5OTg1OSksbz1lKDE3Nzg4KSxFPWUoNzY3NzIpLHQ9ZSg4NTg5MyksRj1mdW5jdGlvbihjKXt2YXIgTT0kLloudXNlRm9ybSgpLE89UCgpKE0sMSksST1PWzBdLHM9Yy5zdGF0dXNPcHRpb25zOygwLEMudXNlRWZmZWN0KShmdW5jdGlvbigpe0kucmVzZXRGaWVsZHMoKSxJLnNldEZpZWxkc1ZhbHVlKHtkaWN0SWQ6Yy52YWx1ZXMuZGljdElkLGRpY3ROYW1lOmMudmFsdWVzLmRpY3ROYW1lLGRpY3RUeXBlOmMudmFsdWVzLmRpY3RUeXBlLHN0YXR1czpjLnZhbHVlcy5zdGF0dXMsY3JlYXRlQnk6Yy52YWx1ZXMuY3JlYXRlQnksY3JlYXRlVGltZTpjLnZhbHVlcy5jcmVhdGVUaW1lLHVwZGF0ZUJ5OmMudmFsdWVzLnVwZGF0ZUJ5LHVwZGF0ZVRpbWU6Yy52YWx1ZXMudXBkYXRlVGltZSxyZW1hcms6Yy52YWx1ZXMucmVtYXJrfSl9LFtJLGNdKTt2YXIgSD0oMCxFLnVzZUludGwpKCksTj1mdW5jdGlvbigpe0kuc3VibWl0KCl9LG09ZnVuY3Rpb24oKXtjLm9uQ2FuY2VsKCl9LHY9ZnVuY3Rpb24oKXt2YXIgVz1yKCkobCgpKCkubWFyayhmdW5jdGlvbiB1KFQpe3JldHVybiBsKCkoKS53cmFwKGZ1bmN0aW9uKGEpe2Zvcig7Oylzd2l0Y2goYS5wcmV2PWEubmV4dCl7Y2FzZSAwOmMub25TdWJtaXQoVCk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gYS5zdG9wKCl9fSx1KX0pKTtyZXR1cm4gZnVuY3Rpb24oVCl7cmV0dXJuIFcuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKTtyZXR1cm4oMCx0LmpzeCkoby5aLHt3aWR0aDo2NDAsdGl0bGU6SC5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLmRpY3QudGl0bGUiLGRlZmF1bHRNZXNzYWdlOiJcdTdGMTZcdThGOTFcdTVCNTdcdTUxNzhcdTdDN0JcdTU3OEIifSksb3BlbjpjLm9wZW4sZm9yY2VSZW5kZXI6ITAsZGVzdHJveU9uQ2xvc2U6ITAsb25PazpOLG9uQ2FuY2VsOm0sY2hpbGRyZW46KDAsdC5qc3hzKShfLkEse2Zvcm06SSxncmlkOiEwLHN1Ym1pdHRlcjohMSxsYXlvdXQ6Imhvcml6b250YWwiLG9uRmluaXNoOnYsY2hpbGRyZW46WygwLHQuanN4KShBLlose25hbWU6ImRpY3RJZCIsbGFiZWw6SC5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLmRpY3QuZGljdF9pZCIsZGVmYXVsdE1lc3NhZ2U6Ilx1NUI1N1x1NTE3OFx1NEUzQlx1OTUyRSJ9KSxwbGFjZWhvbGRlcjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU1QjU3XHU1MTc4XHU0RTNCXHU5NTJFIixkaXNhYmxlZDohMCxoaWRkZW46ITAscnVsZXM6W3tyZXF1aXJlZDohMSxtZXNzYWdlOigwLHQuanN4KShFLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTVCNTdcdTUxNzhcdTRFM0JcdTk1MkVcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTVCNTdcdTUxNzhcdTRFM0JcdTk1MkVcdUZGMDEifSl9XX0pLCgwLHQuanN4KShmLlose25hbWU6ImRpY3ROYW1lIixsYWJlbDpILmZvcm1hdE1lc3NhZ2Uoe2lkOiJzeXN0ZW0uZGljdC5kaWN0X25hbWUiLGRlZmF1bHRNZXNzYWdlOiJcdTVCNTdcdTUxNzhcdTU0MERcdTc5RjAifSkscGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NUI1N1x1NTE3OFx1NTQwRFx1NzlGMCIscnVsZXM6W3tyZXF1aXJlZDohMSxtZXNzYWdlOigwLHQuanN4KShFLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTVCNTdcdTUxNzhcdTU0MERcdTc5RjBcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTVCNTdcdTUxNzhcdTU0MERcdTc5RjBcdUZGMDEifSl9XX0pLCgwLHQuanN4KShmLlose25hbWU6ImRpY3RUeXBlIixsYWJlbDpILmZvcm1hdE1lc3NhZ2Uoe2lkOiJzeXN0ZW0uZGljdC5kaWN0X3R5cGUiLGRlZmF1bHRNZXNzYWdlOiJcdTVCNTdcdTUxNzhcdTdDN0JcdTU3OEIifSkscGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NUI1N1x1NTE3OFx1N0M3Qlx1NTc4QiIscnVsZXM6W3tyZXF1aXJlZDohMSxtZXNzYWdlOigwLHQuanN4KShFLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTVCNTdcdTUxNzhcdTdDN0JcdTU3OEJcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTVCNTdcdTUxNzhcdTdDN0JcdTU3OEJcdUZGMDEifSl9XX0pLCgwLHQuanN4KShkLlouR3JvdXAse3ZhbHVlRW51bTpzLG5hbWU6InN0YXR1cyIsbGFiZWw6SC5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLmRpY3Quc3RhdHVzIixkZWZhdWx0TWVzc2FnZToiXHU3MkI2XHU2MDAxIn0pLGluaXRpYWxWYWx1ZToiMCIscGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NzJCNlx1NjAwMSIscnVsZXM6W3tyZXF1aXJlZDohMSxtZXNzYWdlOigwLHQuanN4KShFLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTcyQjZcdTYwMDFcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTcyQjZcdTYwMDFcdUZGMDEifSl9XX0pLCgwLHQuanN4KShCLlose25hbWU6InJlbWFyayIsbGFiZWw6SC5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLmRpY3QucmVtYXJrIixkZWZhdWx0TWVzc2FnZToiXHU1OTA3XHU2Q0U4In0pLHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdTU5MDdcdTZDRTgiLHJ1bGVzOlt7cmVxdWlyZWQ6ITEsbWVzc2FnZTooMCx0LmpzeCkoRS5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU1OTA3XHU2Q0U4XHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU1OTA3XHU2Q0U4XHVGRjAxIn0pfV19KV19KX0pfTtVLmRlZmF1bHQ9Rn0sNDU4NzY6ZnVuY3Rpb24oSixVLGUpe2UucihVKTt2YXIgUz1lKDU1NzQpLGw9ZS5uKFMpLHg9ZSgxNTAwOSkscj1lLm4oeCksRz1lKDk3ODU3KSxQPWUubihHKSxDPWUoOTkyODkpLF89ZS5uKEMpLEE9ZSg2NzI5NCksZj1lKDc2NzcyKSxkPWUoMjQ1MyksQj1lKDgzNjIyKSwkPWUoMTc3ODgpLG89ZSg2MTEwKSxFPWUoNjUzODUpLHQ9ZSgyMjM2KSxGPWUoMjQ5NjkpLFI9ZSgxMTQ3NSksYz1lKDQ4Njg5KSxNPWUoOTI5ODIpLE89ZSg3NTQ4MiksST1lKDk0MTYyKSxzPWUoODU4OTMpLEg9ZnVuY3Rpb24oKXt2YXIgVD1fKCkocigpKCkubWFyayhmdW5jdGlvbiBEKGEpe3ZhciBpLHA7cmV0dXJuIHIoKSgpLndyYXAoZnVuY3Rpb24obil7Zm9yKDs7KXN3aXRjaChuLnByZXY9bi5uZXh0KXtjYXNlIDA6cmV0dXJuIGk9ZC5aUC5sb2FkaW5nKCJcdTZCNjNcdTU3MjhcdTZERkJcdTUyQTAiKSxuLnByZXY9MSxuLm5leHQ9NCwoMCxNLm9IKShQKCkoe30sYSkpO2Nhc2UgNDpyZXR1cm4gcD1uLnNlbnQsaSgpLHAuY29kZT09PTIwMD9kLlpQLnN1Y2Nlc3MoIlx1NkRGQlx1NTJBMFx1NjIxMFx1NTI5RiIpOmQuWlAuZXJyb3IocC5tc2cpLG4uYWJydXB0KCJyZXR1cm4iLCEwKTtjYXNlIDEwOnJldHVybiBuLnByZXY9MTAsbi50MD1uLmNhdGNoKDEpLGkoKSxkLlpQLmVycm9yKCJcdTZERkJcdTUyQTBcdTU5MzFcdThEMjVcdThCRjdcdTkxQ0RcdThCRDVcdUZGMDEiKSxuLmFicnVwdCgicmV0dXJuIiwhMSk7Y2FzZSAxNTpjYXNlImVuZCI6cmV0dXJuIG4uc3RvcCgpfX0sRCxudWxsLFtbMSwxMF1dKX0pKTtyZXR1cm4gZnVuY3Rpb24oYSl7cmV0dXJuIFQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSxOPWZ1bmN0aW9uKCl7dmFyIFQ9XygpKHIoKSgpLm1hcmsoZnVuY3Rpb24gRChhKXt2YXIgaSxwO3JldHVybiByKCkoKS53cmFwKGZ1bmN0aW9uKG4pe2Zvcig7Oylzd2l0Y2gobi5wcmV2PW4ubmV4dCl7Y2FzZSAwOnJldHVybiBpPWQuWlAubG9hZGluZygiXHU2QjYzXHU1NzI4XHU2NkY0XHU2NUIwIiksbi5wcmV2PTEsbi5uZXh0PTQsKDAsTS5hNykoYSk7Y2FzZSA0OnJldHVybiBwPW4uc2VudCxpKCkscC5jb2RlPT09MjAwP2QuWlAuc3VjY2VzcygiXHU2NkY0XHU2NUIwXHU2MjEwXHU1MjlGIik6ZC5aUC5lcnJvcihwLm1zZyksbi5hYnJ1cHQoInJldHVybiIsITApO2Nhc2UgMTA6cmV0dXJuIG4ucHJldj0xMCxuLnQwPW4uY2F0Y2goMSksaSgpLGQuWlAuZXJyb3IoIlx1OTE0RFx1N0Y2RVx1NTkzMVx1OEQyNVx1OEJGN1x1OTFDRFx1OEJENVx1RkYwMSIpLG4uYWJydXB0KCJyZXR1cm4iLCExKTtjYXNlIDE1OmNhc2UiZW5kIjpyZXR1cm4gbi5zdG9wKCl9fSxELG51bGwsW1sxLDEwXV0pfSkpO3JldHVybiBmdW5jdGlvbihhKXtyZXR1cm4gVC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLG09ZnVuY3Rpb24oKXt2YXIgVD1fKCkocigpKCkubWFyayhmdW5jdGlvbiBEKGEpe3ZhciBpLHA7cmV0dXJuIHIoKSgpLndyYXAoZnVuY3Rpb24obil7Zm9yKDs7KXN3aXRjaChuLnByZXY9bi5uZXh0KXtjYXNlIDA6aWYoaT1kLlpQLmxvYWRpbmcoIlx1NkI2M1x1NTcyOFx1NTIyMFx1OTY2NCIpLGEpe24ubmV4dD0zO2JyZWFrfXJldHVybiBuLmFicnVwdCgicmV0dXJuIiwhMCk7Y2FzZSAzOnJldHVybiBuLnByZXY9MyxuLm5leHQ9NiwoMCxNLnNGKShhLm1hcChmdW5jdGlvbih5KXtyZXR1cm4geS5kaWN0SWR9KS5qb2luKCIsIikpO2Nhc2UgNjpyZXR1cm4gcD1uLnNlbnQsaSgpLHAuY29kZT09PTIwMD9kLlpQLnN1Y2Nlc3MoIlx1NTIyMFx1OTY2NFx1NjIxMFx1NTI5Rlx1RkYwQ1x1NTM3M1x1NUMwNlx1NTIzN1x1NjVCMCIpOmQuWlAuZXJyb3IocC5tc2cpLG4uYWJydXB0KCJyZXR1cm4iLCEwKTtjYXNlIDEyOnJldHVybiBuLnByZXY9MTIsbi50MD1uLmNhdGNoKDMpLGkoKSxkLlpQLmVycm9yKCJcdTUyMjBcdTk2NjRcdTU5MzFcdThEMjVcdUZGMENcdThCRjdcdTkxQ0RcdThCRDUiKSxuLmFicnVwdCgicmV0dXJuIiwhMSk7Y2FzZSAxNzpjYXNlImVuZCI6cmV0dXJuIG4uc3RvcCgpfX0sRCxudWxsLFtbMywxMl1dKX0pKTtyZXR1cm4gZnVuY3Rpb24oYSl7cmV0dXJuIFQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSx2PWZ1bmN0aW9uKCl7dmFyIFQ9XygpKHIoKSgpLm1hcmsoZnVuY3Rpb24gRChhKXt2YXIgaSxwLHc7cmV0dXJuIHIoKSgpLndyYXAoZnVuY3Rpb24oeSl7Zm9yKDs7KXN3aXRjaCh5LnByZXY9eS5uZXh0KXtjYXNlIDA6aWYoaT1kLlpQLmxvYWRpbmcoIlx1NkI2M1x1NTcyOFx1NTIyMFx1OTY2NCIpLGEpe3kubmV4dD0zO2JyZWFrfXJldHVybiB5LmFicnVwdCgicmV0dXJuIiwhMCk7Y2FzZSAzOnJldHVybiB5LnByZXY9MyxwPVthLmRpY3RJZF0seS5uZXh0PTcsKDAsTS5zRikocC5qb2luKCIsIikpO2Nhc2UgNzpyZXR1cm4gdz15LnNlbnQsaSgpLHcuY29kZT09PTIwMD9kLlpQLnN1Y2Nlc3MoIlx1NTIyMFx1OTY2NFx1NjIxMFx1NTI5Rlx1RkYwQ1x1NTM3M1x1NUMwNlx1NTIzN1x1NjVCMCIpOmQuWlAuZXJyb3Iody5tc2cpLHkuYWJydXB0KCJyZXR1cm4iLCEwKTtjYXNlIDEzOnJldHVybiB5LnByZXY9MTMseS50MD15LmNhdGNoKDMpLGkoKSxkLlpQLmVycm9yKCJcdTUyMjBcdTk2NjRcdTU5MzFcdThEMjVcdUZGMENcdThCRjdcdTkxQ0RcdThCRDUiKSx5LmFicnVwdCgicmV0dXJuIiwhMSk7Y2FzZSAxODpjYXNlImVuZCI6cmV0dXJuIHkuc3RvcCgpfX0sRCxudWxsLFtbMywxM11dKX0pKTtyZXR1cm4gZnVuY3Rpb24oYSl7cmV0dXJuIFQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSxXPWZ1bmN0aW9uKCl7dmFyIFQ9XygpKHIoKSgpLm1hcmsoZnVuY3Rpb24gRCgpe3ZhciBhO3JldHVybiByKCkoKS53cmFwKGZ1bmN0aW9uKHApe2Zvcig7Oylzd2l0Y2gocC5wcmV2PXAubmV4dCl7Y2FzZSAwOnJldHVybiBhPWQuWlAubG9hZGluZygiXHU2QjYzXHU1NzI4XHU1QkZDXHU1MUZBIikscC5wcmV2PTEscC5uZXh0PTQsKDAsTS5uMikoKTtjYXNlIDQ6cmV0dXJuIGEoKSxkLlpQLnN1Y2Nlc3MoIlx1NUJGQ1x1NTFGQVx1NjIxMFx1NTI5RiIpLHAuYWJydXB0KCJyZXR1cm4iLCEwKTtjYXNlIDk6cmV0dXJuIHAucHJldj05LHAudDA9cC5jYXRjaCgxKSxhKCksZC5aUC5lcnJvcigiXHU1QkZDXHU1MUZBXHU1OTMxXHU4RDI1XHVGRjBDXHU4QkY3XHU5MUNEXHU4QkQ1IikscC5hYnJ1cHQoInJldHVybiIsITEpO2Nhc2UgMTQ6Y2FzZSJlbmQiOnJldHVybiBwLnN0b3AoKX19LEQsbnVsbCxbWzEsOV1dKX0pKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gVC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLHU9ZnVuY3Rpb24oKXt2YXIgRD0oMCxBLnVzZVJlZikoKSxhPSgwLEEudXNlU3RhdGUpKCExKSxpPWwoKShhLDIpLHA9aVswXSx3PWlbMV0sbj0oMCxBLnVzZVJlZikoKSx5PSgwLEEudXNlU3RhdGUpKCksYWU9bCgpKHksMiksdWU9YWVbMF0scT1hZVsxXSxpZT0oMCxBLnVzZVN0YXRlKShbXSksdGU9bCgpKGllLDIpLGs9dGVbMF0scmU9dGVbMV0sX2U9KDAsQS51c2VTdGF0ZSkoW10pLHNlPWwoKShfZSwyKSxuZT1zZVswXSxsZT1zZVsxXSxYPSgwLGYudXNlQWNjZXNzKSgpLGRlPSgwLGYudXNlSW50bCkoKTsoMCxBLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXsoMCxNLnBYKSgic3lzX25vcm1hbF9kaXNhYmxlIikudGhlbihmdW5jdGlvbihMKXtsZShMKX0pfSxbXSk7dmFyIG9lPVt7dGl0bGU6KDAscy5qc3gpKGYuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InN5c3RlbS5kaWN0LmRpY3RfaWQiLGRlZmF1bHRNZXNzYWdlOiJcdTVCNTdcdTUxNzhcdTdGMTZcdTUzRjcifSksZGF0YUluZGV4OiJkaWN0SWQiLHZhbHVlVHlwZToidGV4dCIsaGlkZUluU2VhcmNoOiEwfSx7dGl0bGU6KDAscy5qc3gpKGYuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InN5c3RlbS5kaWN0LmRpY3RfbmFtZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NUI1N1x1NTE3OFx1NTQwRFx1NzlGMCJ9KSxkYXRhSW5kZXg6ImRpY3ROYW1lIix2YWx1ZVR5cGU6InRleHQifSx7dGl0bGU6KDAscy5qc3gpKGYuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InN5c3RlbS5kaWN0LmRpY3RfdHlwZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NUI1N1x1NTE3OFx1N0M3Qlx1NTc4QiJ9KSxkYXRhSW5kZXg6ImRpY3RUeXBlIix2YWx1ZVR5cGU6InRleHQiLHJlbmRlcjpmdW5jdGlvbihiLGgpe3JldHVybigwLHMuanN4KSgiYSIse29uQ2xpY2s6ZnVuY3Rpb24oKXtmLmhpc3RvcnkucHVzaCgiL3N5c3RlbS9kaWN0LWRhdGEvaW5kZXgvIi5jb25jYXQoaC5kaWN0SWQpKX0sY2hpbGRyZW46Yn0pfX0se3RpdGxlOigwLHMuanN4KShmLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJzeXN0ZW0uZGljdC5zdGF0dXMiLGRlZmF1bHRNZXNzYWdlOiJcdTcyQjZcdTYwMDEifSksZGF0YUluZGV4OiJzdGF0dXMiLHZhbHVlVHlwZToic2VsZWN0Iix2YWx1ZUVudW06bmUscmVuZGVyOmZ1bmN0aW9uKGIsaCl7cmV0dXJuKDAscy5qc3gpKEkuWix7ZW51bXM6bmUsdmFsdWU6aC5zdGF0dXN9KX19LHt0aXRsZTooMCxzLmpzeCkoZi5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoic3lzdGVtLmRpY3QucmVtYXJrIixkZWZhdWx0TWVzc2FnZToiXHU1OTA3XHU2Q0U4In0pLGRhdGFJbmRleDoicmVtYXJrIix2YWx1ZVR5cGU6InRleHRhcmVhIixoaWRlSW5TZWFyY2g6ITB9LHt0aXRsZTooMCxzLmpzeCkoZi5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoic3lzdGVtLnJvbGUuY3JlYXRlX3RpbWUiLGRlZmF1bHRNZXNzYWdlOiJcdTUyMUJcdTVFRkFcdTY1RjZcdTk1RjQifSksZGF0YUluZGV4OiJjcmVhdGVUaW1lIix2YWx1ZVR5cGU6ImRhdGVSYW5nZSIscmVuZGVyOmZ1bmN0aW9uKGIsaCl7cmV0dXJuKDAscy5qc3hzKSgic3BhbiIse2NoaWxkcmVuOltoLmNyZWF0ZVRpbWUudG9TdHJpbmcoKSwiICJdfSl9LHNlYXJjaDp7dHJhbnNmb3JtOmZ1bmN0aW9uKGIpe3JldHVybnsicGFyYW1zW2JlZ2luVGltZV0iOmJbMF0sInBhcmFtc1tlbmRUaW1lXSI6YlsxXX19fX0se3RpdGxlOigwLHMuanN4KShmLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJwYWdlcy5zZWFyY2hUYWJsZS50aXRsZU9wdGlvbiIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjRDRFx1NEY1QyJ9KSxkYXRhSW5kZXg6Im9wdGlvbiIsd2lkdGg6IjIyMHB4Iix2YWx1ZVR5cGU6Im9wdGlvbiIscmVuZGVyOmZ1bmN0aW9uKGIsaCl7cmV0dXJuWygwLHMuanN4KShCLlpQLHt0eXBlOiJsaW5rIixzaXplOiJzbWFsbCIsaGlkZGVuOiFYLmhhc1Blcm1zKCJzeXN0ZW06ZGljdFR5cGU6ZWRpdCIpLG9uQ2xpY2s6ZnVuY3Rpb24oKXt3KCEwKSxxKGgpfSxjaGlsZHJlbjoiXHU3RjE2XHU4RjkxIn0sImVkaXQiKSwoMCxzLmpzeCkoQi5aUCx7dHlwZToibGluayIsc2l6ZToic21hbGwiLGRhbmdlcjohMCxoaWRkZW46IVguaGFzUGVybXMoInN5c3RlbTpkaWN0VHlwZTpyZW1vdmUiKSxvbkNsaWNrOl8oKShyKCkoKS5tYXJrKGZ1bmN0aW9uIGcoKXtyZXR1cm4gcigpKCkud3JhcChmdW5jdGlvbihqKXtmb3IoOzspc3dpdGNoKGoucHJldj1qLm5leHQpe2Nhc2UgMDokLlouY29uZmlybSh7dGl0bGU6Ilx1NTIyMFx1OTY2NCIsY29udGVudDoiXHU3ODZFXHU1QjlBXHU1MjIwXHU5NjY0XHU4QkU1XHU5ODc5XHU1NDE3XHVGRjFGIixva1RleHQ6Ilx1Nzg2RVx1OEJBNCIsY2FuY2VsVGV4dDoiXHU1M0Q2XHU2RDg4Iixvbk9rOmZ1bmN0aW9uKCl7dmFyIHo9XygpKHIoKSgpLm1hcmsoZnVuY3Rpb24gVigpe3ZhciBlZTtyZXR1cm4gcigpKCkud3JhcChmdW5jdGlvbihZKXtmb3IoOzspc3dpdGNoKFkucHJldj1ZLm5leHQpe2Nhc2UgMDpyZXR1cm4gWS5uZXh0PTIsdihoKTtjYXNlIDI6ZWU9WS5zZW50LGVlJiZuLmN1cnJlbnQmJm4uY3VycmVudC5yZWxvYWQoKTtjYXNlIDQ6Y2FzZSJlbmQiOnJldHVybiBZLnN0b3AoKX19LFYpfSkpO2Z1bmN0aW9uIFooKXtyZXR1cm4gei5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIFp9KCl9KTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBqLnN0b3AoKX19LGcpfSkpLGNoaWxkcmVuOiJcdTUyMjBcdTk2NjQifSwiYmF0Y2hSZW1vdmUiKV19fV07cmV0dXJuKDAscy5qc3hzKShvLl96LHtjaGlsZHJlbjpbKDAscy5qc3gpKCJkaXYiLHtzdHlsZTp7d2lkdGg6IjEwMCUiLGZsb2F0OiJyaWdodCJ9LGNoaWxkcmVuOigwLHMuanN4KShFLlose2hlYWRlclRpdGxlOmRlLmZvcm1hdE1lc3NhZ2Uoe2lkOiJwYWdlcy5zZWFyY2hUYWJsZS50aXRsZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NEZFMVx1NjA2RiJ9KSxhY3Rpb25SZWY6bixmb3JtUmVmOkQscm93S2V5OiJkaWN0SWQiLHNlYXJjaDp7bGFiZWxXaWR0aDoxMjB9LHRvb2xCYXJSZW5kZXI6ZnVuY3Rpb24oKXtyZXR1cm5bKDAscy5qc3hzKShCLlpQLHt0eXBlOiJwcmltYXJ5IixoaWRkZW46IVguaGFzUGVybXMoInN5c3RlbTpkaWN0VHlwZTphZGQiKSxvbkNsaWNrOl8oKShyKCkoKS5tYXJrKGZ1bmN0aW9uIGIoKXtyZXR1cm4gcigpKCkud3JhcChmdW5jdGlvbihnKXtmb3IoOzspc3dpdGNoKGcucHJldj1nLm5leHQpe2Nhc2UgMDpxKHZvaWQgMCksdyghMCk7Y2FzZSAyOmNhc2UiZW5kIjpyZXR1cm4gZy5zdG9wKCl9fSxiKX0pKSxjaGlsZHJlbjpbKDAscy5qc3gpKEYuWix7fSksIiAiLCgwLHMuanN4KShmLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJwYWdlcy5zZWFyY2hUYWJsZS5uZXciLGRlZmF1bHRNZXNzYWdlOiJcdTY1QjBcdTVFRkEifSldfSwiYWRkIiksKDAscy5qc3hzKShCLlpQLHt0eXBlOiJwcmltYXJ5IixkYW5nZXI6ITAsaGlkZGVuOihrPT1udWxsP3ZvaWQgMDprLmxlbmd0aCk9PT0wfHwhWC5oYXNQZXJtcygic3lzdGVtOmRpY3RUeXBlOnJlbW92ZSIpLG9uQ2xpY2s6XygpKHIoKSgpLm1hcmsoZnVuY3Rpb24gYigpe3JldHVybiByKCkoKS53cmFwKGZ1bmN0aW9uKGcpe2Zvcig7Oylzd2l0Y2goZy5wcmV2PWcubmV4dCl7Y2FzZSAwOiQuWi5jb25maXJtKHt0aXRsZToiXHU2NjJGXHU1NDI2XHU3ODZFXHU4QkE0XHU1MjIwXHU5NjY0XHU2MjQwXHU5MDA5XHU2NTcwXHU2MzZFXHU5ODc5PyIsaWNvbjooMCxzLmpzeCkoUi5aLHt9KSxjb250ZW50OiJcdThCRjdcdThDMjhcdTYxNEVcdTY0Q0RcdTRGNUMiLG9uT2s6ZnVuY3Rpb24oKXtyZXR1cm4gXygpKHIoKSgpLm1hcmsoZnVuY3Rpb24gaigpe3ZhciB6LFosVjtyZXR1cm4gcigpKCkud3JhcChmdW5jdGlvbihLKXtmb3IoOzspc3dpdGNoKEsucHJldj1LLm5leHQpe2Nhc2UgMDpyZXR1cm4gSy5uZXh0PTIsbShrKTtjYXNlIDI6ej1LLnNlbnQseiYmKHJlKFtdKSwoWj1uLmN1cnJlbnQpPT09bnVsbHx8Wj09PXZvaWQgMHx8KFY9Wi5yZWxvYWRBbmRSZXN0KT09PW51bGx8fFY9PT12b2lkIDB8fFYuY2FsbChaKSk7Y2FzZSA0OmNhc2UiZW5kIjpyZXR1cm4gSy5zdG9wKCl9fSxqKX0pKSgpfSxvbkNhbmNlbDpmdW5jdGlvbigpe319KTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBnLnN0b3AoKX19LGIpfSkpLGNoaWxkcmVuOlsoMCxzLmpzeCkoYy5aLHt9KSwoMCxzLmpzeCkoZi5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoicGFnZXMuc2VhcmNoVGFibGUuZGVsZXRlIixkZWZhdWx0TWVzc2FnZToiXHU1MjIwXHU5NjY0In0pXX0sInJlbW92ZSIpLCgwLHMuanN4cykoQi5aUCx7dHlwZToicHJpbWFyeSIsaGlkZGVuOiFYLmhhc1Blcm1zKCJzeXN0ZW06ZGljdFR5cGU6ZXhwb3J0Iiksb25DbGljazpfKCkocigpKCkubWFyayhmdW5jdGlvbiBiKCl7cmV0dXJuIHIoKSgpLndyYXAoZnVuY3Rpb24oZyl7Zm9yKDs7KXN3aXRjaChnLnByZXY9Zy5uZXh0KXtjYXNlIDA6VygpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGcuc3RvcCgpfX0sYil9KSksY2hpbGRyZW46WygwLHMuanN4KShGLlose30pLCgwLHMuanN4KShmLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJwYWdlcy5zZWFyY2hUYWJsZS5leHBvcnQiLGRlZmF1bHRNZXNzYWdlOiJcdTVCRkNcdTUxRkEifSldfSwiZXhwb3J0IildfSxyZXF1ZXN0OmZ1bmN0aW9uKGIpe3JldHVybigwLE0uakspKFAoKSh7fSxiKSkudGhlbihmdW5jdGlvbihoKXt2YXIgZz17ZGF0YTpoLnJvd3MsdG90YWw6aC50b3RhbCxzdWNjZXNzOiEwfTtyZXR1cm4gZ30pfSxjb2x1bW5zOm9lLHJvd1NlbGVjdGlvbjp7b25DaGFuZ2U6ZnVuY3Rpb24oYixoKXtyZShoKX19fSwiZGljdFR5cGVMaXN0Iil9KSwoaz09bnVsbD92b2lkIDA6ay5sZW5ndGgpPjAmJigwLHMuanN4KSh0LlMse2V4dHJhOigwLHMuanN4cykoImRpdiIse2NoaWxkcmVuOlsoMCxzLmpzeCkoZi5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoicGFnZXMuc2VhcmNoVGFibGUuY2hvc2VuIixkZWZhdWx0TWVzc2FnZToiXHU1REYyXHU5MDA5XHU2MkU5In0pLCgwLHMuanN4KSgiYSIse3N0eWxlOntmb250V2VpZ2h0OjYwMH0sY2hpbGRyZW46ay5sZW5ndGh9KSwoMCxzLmpzeCkoZi5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoicGFnZXMuc2VhcmNoVGFibGUuaXRlbSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OTg3OSJ9KV19KSxjaGlsZHJlbjooMCxzLmpzeCkoQi5aUCx7ZGFuZ2VyOiEwLGhpZGRlbjohWC5oYXNQZXJtcygic3lzdGVtOmRpY3RUeXBlOmRlbCIpLG9uQ2xpY2s6XygpKHIoKSgpLm1hcmsoZnVuY3Rpb24gTCgpe3JldHVybiByKCkoKS53cmFwKGZ1bmN0aW9uKGgpe2Zvcig7Oylzd2l0Y2goaC5wcmV2PWgubmV4dCl7Y2FzZSAwOiQuWi5jb25maXJtKHt0aXRsZToiXHU1MjIwXHU5NjY0Iixjb250ZW50OiJcdTc4NkVcdTVCOUFcdTUyMjBcdTk2NjRcdThCRTVcdTk4NzlcdTU0MTdcdUZGMUYiLG9rVGV4dDoiXHU3ODZFXHU4QkE0IixjYW5jZWxUZXh0OiJcdTUzRDZcdTZEODgiLG9uT2s6ZnVuY3Rpb24oKXt2YXIgZz1fKCkocigpKCkubWFyayhmdW5jdGlvbiBqKCl7dmFyIHosWixWO3JldHVybiByKCkoKS53cmFwKGZ1bmN0aW9uKEspe2Zvcig7Oylzd2l0Y2goSy5wcmV2PUsubmV4dCl7Y2FzZSAwOnJldHVybiBLLm5leHQ9MixtKGspO2Nhc2UgMjp6PUsuc2VudCx6JiYocmUoW10pLChaPW4uY3VycmVudCk9PT1udWxsfHxaPT09dm9pZCAwfHwoVj1aLnJlbG9hZEFuZFJlc3QpPT09bnVsbHx8Vj09PXZvaWQgMHx8Vi5jYWxsKFopKTtjYXNlIDQ6Y2FzZSJlbmQiOnJldHVybiBLLnN0b3AoKX19LGopfSkpO2Z1bmN0aW9uIFEoKXtyZXR1cm4gZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIFF9KCl9KTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBoLnN0b3AoKX19LEwpfSkpLGNoaWxkcmVuOigwLHMuanN4KShmLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJwYWdlcy5zZWFyY2hUYWJsZS5iYXRjaERlbGV0aW9uIixkZWZhdWx0TWVzc2FnZToiXHU2Mjc5XHU5MUNGXHU1MjIwXHU5NjY0In0pfSwicmVtb3ZlIil9KSwoMCxzLmpzeCkoTy5kZWZhdWx0LHtvblN1Ym1pdDpmdW5jdGlvbigpe3ZhciBMPV8oKShyKCkoKS5tYXJrKGZ1bmN0aW9uIGIoaCl7dmFyIGc7cmV0dXJuIHIoKSgpLndyYXAoZnVuY3Rpb24oail7Zm9yKDs7KXN3aXRjaChqLnByZXY9ai5uZXh0KXtjYXNlIDA6aWYoZz0hMSwhaC5kaWN0SWQpe2oubmV4dD03O2JyZWFrfXJldHVybiBqLm5leHQ9NCxOKFAoKSh7fSxoKSk7Y2FzZSA0Omc9ai5zZW50LGoubmV4dD0xMDticmVhaztjYXNlIDc6cmV0dXJuIGoubmV4dD05LEgoUCgpKHt9LGgpKTtjYXNlIDk6Zz1qLnNlbnQ7Y2FzZSAxMDpnJiYodyghMSkscSh2b2lkIDApLG4uY3VycmVudCYmbi5jdXJyZW50LnJlbG9hZCgpKTtjYXNlIDExOmNhc2UiZW5kIjpyZXR1cm4gai5zdG9wKCl9fSxiKX0pKTtyZXR1cm4gZnVuY3Rpb24oYil7cmV0dXJuIEwuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSxvbkNhbmNlbDpmdW5jdGlvbigpe3coITEpLHEodm9pZCAwKX0sb3BlbjpwLHZhbHVlczp1ZXx8e30sc3RhdHVzT3B0aW9uczpuZX0pXX0pfTtVLmRlZmF1bHQ9dX0sOTI5ODI6ZnVuY3Rpb24oSixVLGUpe2UuZChVLHtIcjpmdW5jdGlvbigpe3JldHVybiBFfSxRSzpmdW5jdGlvbigpe3JldHVybiBIfSxWZDpmdW5jdGlvbigpe3JldHVybiBCfSxhNzpmdW5jdGlvbigpe3JldHVybiBjfSxqSzpmdW5jdGlvbigpe3JldHVybiBmfSxuMjpmdW5jdGlvbigpe3JldHVybiBzfSxvSDpmdW5jdGlvbigpe3JldHVybiBGfSxwWDpmdW5jdGlvbigpe3JldHVybiAkfSxzRjpmdW5jdGlvbigpe3JldHVybiBPfX0pO3ZhciBTPWUoMTUwMDkpLGw9ZS5uKFMpLHg9ZSg5Nzg1Nykscj1lLm4oeCksRz1lKDk5Mjg5KSxQPWUubihHKSxDPWUoNzY3NzIpLF89ZSgzMzg2NyksQT1lKDMwOTY0KTtmdW5jdGlvbiBmKG0pe3JldHVybiBkLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBkKCl7cmV0dXJuIGQ9UCgpKGwoKSgpLm1hcmsoZnVuY3Rpb24gbSh2KXtyZXR1cm4gbCgpKCkud3JhcChmdW5jdGlvbih1KXtmb3IoOzspc3dpdGNoKHUucHJldj11Lm5leHQpe2Nhc2UgMDpyZXR1cm4gdS5hYnJ1cHQoInJldHVybiIsKDAsQy5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vZGljdC90eXBlL2xpc3QiLHtwYXJhbXM6cigpKHt9LHYpLG1ldGhvZDoiR0VUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In19KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gdS5zdG9wKCl9fSxtKX0pKSxkLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBCKG0pe3JldHVybigwLEMucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RpY3QvdHlwZS8iLmNvbmNhdChtKSx7bWV0aG9kOiJHRVQifSl9ZnVuY3Rpb24gJChtLHYpe3JldHVybiBvLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBvKCl7cmV0dXJuIG89UCgpKGwoKSgpLm1hcmsoZnVuY3Rpb24gbSh2LFcpe3ZhciB1LFQ7cmV0dXJuIGwoKSgpLndyYXAoZnVuY3Rpb24oYSl7Zm9yKDs7KXN3aXRjaChhLnByZXY9YS5uZXh0KXtjYXNlIDA6cmV0dXJuIGEubmV4dD0yLCgwLEMucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RpY3QvZGF0YS90eXBlLyIuY29uY2F0KHYpLHttZXRob2Q6IkdFVCJ9KTtjYXNlIDI6aWYodT1hLnNlbnQsdS5jb2RlIT09Xy5pSy5TVUNDRVNTKXthLm5leHQ9OTticmVha31yZXR1cm4gVD17fSx1LmRhdGEuZm9yRWFjaChmdW5jdGlvbihpKXtUW2kuZGljdFZhbHVlXT17dGV4dDppLmRpY3RMYWJlbCxsYWJlbDppLmRpY3RMYWJlbCx2YWx1ZTpXP051bWJlcihpLmRpY3RWYWx1ZSk6aS5kaWN0VmFsdWUsa2V5OmkuZGljdENvZGUsbGlzdENsYXNzOmkubGlzdENsYXNzLHN0YXR1czppLmxpc3RDbGFzc319KSxhLmFicnVwdCgicmV0dXJuIixUKTtjYXNlIDk6cmV0dXJuIGEuYWJydXB0KCJyZXR1cm4iLHt9KTtjYXNlIDEwOmNhc2UiZW5kIjpyZXR1cm4gYS5zdG9wKCl9fSxtKX0pKSxvLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBFKG0sdil7cmV0dXJuIHQuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHQoKXtyZXR1cm4gdD1QKCkobCgpKCkubWFyayhmdW5jdGlvbiBtKHYsVyl7dmFyIHUsVDtyZXR1cm4gbCgpKCkud3JhcChmdW5jdGlvbihhKXtmb3IoOzspc3dpdGNoKGEucHJldj1hLm5leHQpe2Nhc2UgMDpyZXR1cm4gYS5uZXh0PTIsKDAsQy5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vZGljdC9kYXRhL3R5cGUvIi5jb25jYXQodikse21ldGhvZDoiR0VUIn0pO2Nhc2UgMjppZih1PWEuc2VudCx1LmNvZGUhPT0yMDApe2EubmV4dD02O2JyZWFrfXJldHVybiBUPXUuZGF0YS5tYXAoZnVuY3Rpb24oaSl7cmV0dXJue3RleHQ6aS5kaWN0TGFiZWwsbGFiZWw6aS5kaWN0TGFiZWwsdmFsdWU6Vz9OdW1iZXIoaS5kaWN0VmFsdWUpOmkuZGljdFZhbHVlLGtleTppLmRpY3RDb2RlLGxpc3RDbGFzczppLmxpc3RDbGFzcyxzdGF0dXM6aS5saXN0Q2xhc3N9fSksYS5hYnJ1cHQoInJldHVybiIsVCk7Y2FzZSA2OnJldHVybiBhLmFicnVwdCgicmV0dXJuIixbXSk7Y2FzZSA3OmNhc2UiZW5kIjpyZXR1cm4gYS5zdG9wKCl9fSxtKX0pKSx0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBGKG0pe3JldHVybiBSLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBSKCl7cmV0dXJuIFI9UCgpKGwoKSgpLm1hcmsoZnVuY3Rpb24gbSh2KXtyZXR1cm4gbCgpKCkud3JhcChmdW5jdGlvbih1KXtmb3IoOzspc3dpdGNoKHUucHJldj11Lm5leHQpe2Nhc2UgMDpyZXR1cm4gdS5hYnJ1cHQoInJldHVybiIsKDAsQy5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vZGljdC90eXBlIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In0sZGF0YTp2fSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIHUuc3RvcCgpfX0sbSl9KSksUi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gYyhtKXtyZXR1cm4gTS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gTSgpe3JldHVybiBNPVAoKShsKCkoKS5tYXJrKGZ1bmN0aW9uIG0odil7cmV0dXJuIGwoKSgpLndyYXAoZnVuY3Rpb24odSl7Zm9yKDs7KXN3aXRjaCh1LnByZXY9dS5uZXh0KXtjYXNlIDA6cmV0dXJuIHUuYWJydXB0KCJyZXR1cm4iLCgwLEMucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RpY3QvdHlwZSIse21ldGhvZDoiUFVUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In0sZGF0YTp2fSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIHUuc3RvcCgpfX0sbSl9KSksTS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gTyhtKXtyZXR1cm4gSS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gSSgpe3JldHVybiBJPVAoKShsKCkoKS5tYXJrKGZ1bmN0aW9uIG0odil7cmV0dXJuIGwoKSgpLndyYXAoZnVuY3Rpb24odSl7Zm9yKDs7KXN3aXRjaCh1LnByZXY9dS5uZXh0KXtjYXNlIDA6cmV0dXJuIHUuYWJydXB0KCJyZXR1cm4iLCgwLEMucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RpY3QvdHlwZS8iLmNvbmNhdCh2KSx7bWV0aG9kOiJERUxFVEUifSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIHUuc3RvcCgpfX0sbSl9KSksSS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gcyhtKXtyZXR1cm4oMCxBLnN1KSgiL2FwaS9zeXN0ZW0vZGljdC90eXBlL2V4cG9ydCIse3BhcmFtczptfSwiZGljdF90eXBlXyIuY29uY2F0KG5ldyBEYXRlKCkuZ2V0VGltZSgpLCIueGxzeCIpKX1mdW5jdGlvbiBIKG0pe3JldHVybiBOLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBOKCl7cmV0dXJuIE49UCgpKGwoKSgpLm1hcmsoZnVuY3Rpb24gbSh2KXtyZXR1cm4gbCgpKCkud3JhcChmdW5jdGlvbih1KXtmb3IoOzspc3dpdGNoKHUucHJldj11Lm5leHQpe2Nhc2UgMDpyZXR1cm4gdS5hYnJ1cHQoInJldHVybiIsKDAsQy5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vZGljdC90eXBlL29wdGlvbnNlbGVjdCIse3BhcmFtczpyKCkoe30sdiksbWV0aG9kOiJHRVQiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgifX0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiB1LnN0b3AoKX19LG0pfSkpLE4uYXBwbHkodGhpcyxhcmd1bWVudHMpfX0sMzA5NjQ6ZnVuY3Rpb24oSixVLGUpe2UuZChVLHtwNjpmdW5jdGlvbigpe3JldHVybiBmfSxzdTpmdW5jdGlvbigpe3JldHVybiBkfX0pO3ZhciBTPWUoMTUwMDkpLGw9ZS5uKFMpLHg9ZSg5Nzg1Nykscj1lLm4oeCksRz1lKDk5Mjg5KSxQPWUubihHKSxDPWUoNzY3NzIpLF89e3hsc3g6ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0Iix6aXA6ImFwcGxpY2F0aW9uL3ppcCJ9O2Z1bmN0aW9uIEEobyxFKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIiksRj1uZXcgQmxvYihbby5kYXRhXSx7dHlwZTpFfSksUj1uZXcgUmVnRXhwKCJmaWxlbmFtZT0oW147XStcXC5bXlxcLjtdKyk7KiIpLGM9ZGVjb2RlVVJJKG8uaGVhZGVyc1siY29udGVudC1kaXNwb3NpdGlvbiJdKSxNPVIuZXhlYyhjKSxPPU0/TVsxXToiZmlsZSI7Tz1PLnJlcGxhY2UoLyIvZywiIiksdC5zdHlsZS5kaXNwbGF5PSJub25lIix0LmhyZWY9VVJMLmNyZWF0ZU9iamVjdFVSTChGKSx0LnNldEF0dHJpYnV0ZSgiZG93bmxvYWQiLE8pLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodCksdC5jbGljaygpLFVSTC5yZXZva2VPYmplY3RVUkwodC5ocmVmKSxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHQpfWZ1bmN0aW9uIGYobyl7KDAsQy5yZXF1ZXN0KShvLHttZXRob2Q6IkdFVCIscmVzcG9uc2VUeXBlOiJibG9iIixnZXRSZXNwb25zZTohMH0pLnRoZW4oZnVuY3Rpb24oRSl7QShFLF8uemlwKX0pfWZ1bmN0aW9uIGQobyxFLHQpe3JldHVybiBCLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBCKCl7cmV0dXJuIEI9UCgpKGwoKSgpLm1hcmsoZnVuY3Rpb24gbyhFLHQsRil7cmV0dXJuIGwoKSgpLndyYXAoZnVuY3Rpb24oYyl7Zm9yKDs7KXN3aXRjaChjLnByZXY9Yy5uZXh0KXtjYXNlIDA6cmV0dXJuIGMuYWJydXB0KCJyZXR1cm4iLCgwLEMucmVxdWVzdCkoRSxyKCkocigpKHt9LHQpLHt9LHttZXRob2Q6IlBPU1QiLHJlc3BvbnNlVHlwZToiYmxvYiJ9KSkudGhlbihmdW5jdGlvbihNKXt2YXIgTz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIiksST1NO08uc3R5bGUuZGlzcGxheT0ibm9uZSIsTy5ocmVmPVVSTC5jcmVhdGVPYmplY3RVUkwoSSksTy5zZXRBdHRyaWJ1dGUoImRvd25sb2FkIixGKSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKE8pLE8uY2xpY2soKSxVUkwucmV2b2tlT2JqZWN0VVJMKE8uaHJlZiksZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChPKX0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBjLnN0b3AoKX19LG8pfSkpLEIuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uICQobyl7d2luZG93LmxvY2F0aW9uLmhyZWY9Ii9hcGkvY29tbW9uL2Rvd25sb2FkP2ZpbGVOYW1lPSIuY29uY2F0KGVuY29kZVVSSShvKSwiJmRlbGV0ZT0iLCEwKX19fV0pOwpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy81OTU3LjUyNmEwYjE4LmFzeW5jLmpzIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy81OTU3LjUyNmEwYjE4LmFzeW5jLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZlNjk3YjcKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzU5NTcuNTI2YTBiMTguYXN5bmMuanMKQEAgLTAsMCArMSBAQAorInVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvPXNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm98fFtdKS5wdXNoKFtbNTk1N10sezk0MTYyOmZ1bmN0aW9uKGVlLHcsZSl7dmFyICQ9ZSg2NDU5OSksbT1lLm4oJCksSD1lKDY3Mjk0KSxuPWUoNjYzMDkpLE49ZSg4NTg5MyksUD1mdW5jdGlvbihhKXtmdW5jdGlvbiBBKGYpe3N3aXRjaChmKXtjYXNlInByaW1hcnkiOnJldHVybiJibHVlIjtjYXNlInN1Y2Nlc3MiOnJldHVybiJzdWNjZXNzIjtjYXNlImluZm8iOnJldHVybiJncmVlbiI7Y2FzZSJ3YXJuaW5nIjpyZXR1cm4id2FybmluZyI7Y2FzZSJkYW5nZXIiOnJldHVybiJlcnJvciI7Y2FzZSJkZWZhdWx0IjpkZWZhdWx0OnJldHVybiJkZWZhdWx0In19ZnVuY3Rpb24gZChmKXtpZihmPT09dm9pZCAwKXJldHVybiIiO2lmKGEuZW51bXMpe3ZhciBFPWEuZW51bXNbZl07cmV0dXJuIEUubGFiZWx9aWYoYS5vcHRpb25zKXtpZighQXJyYXkuaXNBcnJheShhLm9wdGlvbnMpKXJldHVybiBjb25zb2xlLmxvZygiRGljdFRhZyBvcHRpb25zIGlzIG5vIGFycmF5ISIpLCIiO3ZhciB0PW0oKShhLm9wdGlvbnMpLEI7dHJ5e2Zvcih0LnMoKTshKEI9dC5uKCkpLmRvbmU7KXt2YXIgTD1CLnZhbHVlO2lmKEwudmFsdWU9PT1mKXJldHVybiBMLnRleHR9fWNhdGNoKGMpe3QuZShjKX1maW5hbGx5e3QuZigpfX1yZXR1cm4gU3RyaW5nKGEudmFsdWUpfWZ1bmN0aW9uIG8oZil7aWYoZj09PXZvaWQgMClyZXR1cm4iZGVmYXVsdCI7aWYoYS5lbnVtcyl7dmFyIEU9YS5lbnVtc1tmXTtyZXR1cm4gRS5saXN0Q2xhc3N8fCJkZWZhdWx0In1pZihhLm9wdGlvbnMpe2lmKCFBcnJheS5pc0FycmF5KGEub3B0aW9ucykpcmV0dXJuIGNvbnNvbGUubG9nKCJEaWN0VGFnIG9wdGlvbnMgaXMgbm8gYXJyYXkhIiksImRlZmF1bHQiO3ZhciB0PW0oKShhLm9wdGlvbnMpLEI7dHJ5e2Zvcih0LnMoKTshKEI9dC5uKCkpLmRvbmU7KXt2YXIgTD1CLnZhbHVlO2lmKEwudmFsdWU9PT1mKXJldHVybiBMLmxpc3RDbGFzc3x8ImRlZmF1bHQifX1jYXRjaChjKXt0LmUoYyl9ZmluYWxseXt0LmYoKX19cmV0dXJuIFN0cmluZyhhLnZhbHVlKX12YXIgRD1mdW5jdGlvbigpe3JldHVybiBBKG8oYS52YWx1ZSkudG9Mb3dlckNhc2UoKSl9LFY9ZnVuY3Rpb24oKXtyZXR1cm4gZChhLnZhbHVlKX07cmV0dXJuKDAsTi5qc3gpKG4uWix7Y29sb3I6RCgpLGNoaWxkcmVuOlYoKX0pfTt3Llo9UH0sMzM4Njc6ZnVuY3Rpb24oZWUsdyxlKXtlLmQodyx7aUs6ZnVuY3Rpb24oKXtyZXR1cm4gJH0semM6ZnVuY3Rpb24oKXtyZXR1cm4gSH19KTt2YXIgJD1mdW5jdGlvbihuKXtyZXR1cm4gbltuLlNVQ0NFU1M9MjAwXT0iU1VDQ0VTUyIsbltuLkVSUk9SPS0xXT0iRVJST1IiLG5bbi5USU1FT1VUPTQwMV09IlRJTUVPVVQiLG4uVFlQRT0ic3VjY2VzcyIsbn0oe30pLG09ZnVuY3Rpb24obil7cmV0dXJuIG4uR0VUPSJHRVQiLG4uUE9TVD0iUE9TVCIsbi5QVVQ9IlBVVCIsbi5ERUxFVEU9IkRFTEVURSIsbn0oe30pLEg9ZnVuY3Rpb24obil7cmV0dXJuIG4uSlNPTj0iYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04IixuLkZPUk1fVVJMRU5DT0RFRD0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9VVRGLTgiLG4uRk9STV9EQVRBPSJtdWx0aXBhcnQvZm9ybS1kYXRhO2NoYXJzZXQ9VVRGLTgiLG59KHt9KX0sOTY3NjI6ZnVuY3Rpb24oZWUsdyxlKXtlLnIodyk7dmFyICQ9ZSgxNTAwOSksbT1lLm4oJCksSD1lKDk5Mjg5KSxuPWUubihIKSxOPWUoNTU3NCksUD1lLm4oTiksaj1lKDY3Mjk0KSxhPWUoOTcyNjkpLEE9ZSgzMTE5OSksZD1lKDU5NjYpLG89ZSg5MDY3MiksRD1lKDg2NjE1KSxWPWUoOTk4NTkpLGY9ZSgxNzc4OCksRT1lKDc2NzcyKSx0PWUoODU4OTMpLEI9ZnVuY3Rpb24oYyl7dmFyIFo9Vi5aLnVzZUZvcm0oKSxGPVAoKShaLDEpLEk9RlswXSxuZT1jLmNvbmZpZ1R5cGVPcHRpb25zOygwLGoudXNlRWZmZWN0KShmdW5jdGlvbigpe0kucmVzZXRGaWVsZHMoKSxJLnNldEZpZWxkc1ZhbHVlKHtjb25maWdJZDpjLnZhbHVlcy5jb25maWdJZCxjb25maWdOYW1lOmMudmFsdWVzLmNvbmZpZ05hbWUsY29uZmlnS2V5OmMudmFsdWVzLmNvbmZpZ0tleSxjb25maWdWYWx1ZTpjLnZhbHVlcy5jb25maWdWYWx1ZSxjb25maWdUeXBlOmMudmFsdWVzLmNvbmZpZ1R5cGUsY3JlYXRlQnk6Yy52YWx1ZXMuY3JlYXRlQnksY3JlYXRlVGltZTpjLnZhbHVlcy5jcmVhdGVUaW1lLHVwZGF0ZUJ5OmMudmFsdWVzLnVwZGF0ZUJ5LHVwZGF0ZVRpbWU6Yy52YWx1ZXMudXBkYXRlVGltZSxyZW1hcms6Yy52YWx1ZXMucmVtYXJrfSl9LFtJLGNdKTt2YXIgVz0oMCxFLnVzZUludGwpKCksWT1mdW5jdGlvbigpe0kuc3VibWl0KCl9LHA9ZnVuY3Rpb24oKXtjLm9uQ2FuY2VsKCl9LHk9ZnVuY3Rpb24oKXt2YXIgVT1uKCkobSgpKCkubWFyayhmdW5jdGlvbiB1KEspe3JldHVybiBtKCkoKS53cmFwKGZ1bmN0aW9uKFQpe2Zvcig7Oylzd2l0Y2goVC5wcmV2PVQubmV4dCl7Y2FzZSAwOmMub25TdWJtaXQoSyk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gVC5zdG9wKCl9fSx1KX0pKTtyZXR1cm4gZnVuY3Rpb24oSyl7cmV0dXJuIFUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKTtyZXR1cm4oMCx0LmpzeCkoZi5aLHt3aWR0aDo2NDAsdGl0bGU6Vy5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLmNvbmZpZy50aXRsZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1N0YxNlx1OEY5MVx1NTNDMlx1NjU3MFx1OTE0RFx1N0Y2RSJ9KSxvcGVuOmMub3Blbixmb3JjZVJlbmRlcjohMCxkZXN0cm95T25DbG9zZTohMCxvbk9rOlksb25DYW5jZWw6cCxjaGlsZHJlbjooMCx0LmpzeHMpKGEuQSx7Zm9ybTpJLGdyaWQ6ITAsc3VibWl0dGVyOiExLGxheW91dDoiaG9yaXpvbnRhbCIsb25GaW5pc2g6eSxjaGlsZHJlbjpbKDAsdC5qc3gpKEEuWix7bmFtZToiY29uZmlnSWQiLGxhYmVsOlcuZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5jb25maWcuY29uZmlnX2lkIixkZWZhdWx0TWVzc2FnZToiXHU1M0MyXHU2NTcwXHU0RTNCXHU5NTJFIn0pLGNvbFByb3BzOnttZDoyNH0scGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NTNDMlx1NjU3MFx1NEUzQlx1OTUyRSIsZGlzYWJsZWQ6ITAsaGlkZGVuOiEwLHJ1bGVzOlt7cmVxdWlyZWQ6ITEsbWVzc2FnZTooMCx0LmpzeCkoRS5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU1M0MyXHU2NTcwXHU0RTNCXHU5NTJFXHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU1M0MyXHU2NTcwXHU0RTNCXHU5NTJFXHVGRjAxIn0pfV19KSwoMCx0LmpzeCkoZC5aLHtuYW1lOiJjb25maWdOYW1lIixsYWJlbDpXLmZvcm1hdE1lc3NhZ2Uoe2lkOiJzeXN0ZW0uY29uZmlnLmNvbmZpZ19uYW1lIixkZWZhdWx0TWVzc2FnZToiXHU1M0MyXHU2NTcwXHU1NDBEXHU3OUYwIn0pLGNvbFByb3BzOnttZDoyNH0scGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NTNDMlx1NjU3MFx1NTQwRFx1NzlGMCIscnVsZXM6W3tyZXF1aXJlZDohMSxtZXNzYWdlOigwLHQuanN4KShFLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTUzQzJcdTY1NzBcdTU0MERcdTc5RjBcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTUzQzJcdTY1NzBcdTU0MERcdTc5RjBcdUZGMDEifSl9XX0pLCgwLHQuanN4KShkLlose25hbWU6ImNvbmZpZ0tleSIsbGFiZWw6Vy5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLmNvbmZpZy5jb25maWdfa2V5IixkZWZhdWx0TWVzc2FnZToiXHU1M0MyXHU2NTcwXHU5NTJFXHU1NDBEIn0pLGNvbFByb3BzOnttZDoyNH0scGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NTNDMlx1NjU3MFx1OTUyRVx1NTQwRCIscnVsZXM6W3tyZXF1aXJlZDohMSxtZXNzYWdlOigwLHQuanN4KShFLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTUzQzJcdTY1NzBcdTk1MkVcdTU0MERcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTUzQzJcdTY1NzBcdTk1MkVcdTU0MERcdUZGMDEifSl9XX0pLCgwLHQuanN4KShvLlose25hbWU6ImNvbmZpZ1ZhbHVlIixsYWJlbDpXLmZvcm1hdE1lc3NhZ2Uoe2lkOiJzeXN0ZW0uY29uZmlnLmNvbmZpZ192YWx1ZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NTNDMlx1NjU3MFx1OTUyRVx1NTAzQyJ9KSxjb2xQcm9wczp7bWQ6MjR9LHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdTUzQzJcdTY1NzBcdTk1MkVcdTUwM0MiLHJ1bGVzOlt7cmVxdWlyZWQ6ITEsbWVzc2FnZTooMCx0LmpzeCkoRS5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU1M0MyXHU2NTcwXHU5NTJFXHU1MDNDXHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU1M0MyXHU2NTcwXHU5NTJFXHU1MDNDXHVGRjAxIn0pfV19KSwoMCx0LmpzeCkoRC5aLkdyb3VwLHt2YWx1ZUVudW06bmUsbmFtZToiY29uZmlnVHlwZSIsbGFiZWw6Vy5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLmNvbmZpZy5jb25maWdfdHlwZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1N0NGQlx1N0VERlx1NTE4NVx1N0Y2RSJ9KSxjb2xQcm9wczp7bWQ6MjR9LHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdTdDRkJcdTdFREZcdTUxODVcdTdGNkUiLHJ1bGVzOlt7cmVxdWlyZWQ6ITEsbWVzc2FnZTooMCx0LmpzeCkoRS5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU3Q0ZCXHU3RURGXHU1MTg1XHU3RjZFXHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU3Q0ZCXHU3RURGXHU1MTg1XHU3RjZFXHVGRjAxIn0pfV19KSwoMCx0LmpzeCkoby5aLHtuYW1lOiJyZW1hcmsiLGxhYmVsOlcuZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5jb25maWcucmVtYXJrIixkZWZhdWx0TWVzc2FnZToiXHU1OTA3XHU2Q0U4In0pLGNvbFByb3BzOnttZDoyNH0scGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NTkwN1x1NkNFOCIscnVsZXM6W3tyZXF1aXJlZDohMSxtZXNzYWdlOigwLHQuanN4KShFLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTU5MDdcdTZDRThcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTU5MDdcdTZDRThcdUZGMDEifSl9XX0pXX0pfSl9O3cuZGVmYXVsdD1CfSwxNTk1NzpmdW5jdGlvbihlZSx3LGUpe2Uucih3KSxlLmQodyx7ZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybiB5ZX19KTt2YXIgJD1lKDU1NzQpLG09ZS5uKCQpLEg9ZSgxNTAwOSksbj1lLm4oSCksTj1lKDk3ODU3KSxQPWUubihOKSxqPWUoOTkyODkpLGE9ZS5uKGopLEE9ZSg2NzI5NCksZD1lKDc2NzcyKSxvPWUoMjQ1MyksRD1lKDgzNjIyKSxWPWUoMTc3ODgpLGY9ZSg2MTEwKSxFPWUoNjUzODUpLHQ9ZSgyMjM2KSxCPWUoMjQ5NjkpLEw9ZSgxMTQ3NSksYz1lKDQ4Njg5KSxaPWUoMjM0MzApLEY9ZSgzMzE2MCksST1lKDMwOTY0KTtmdW5jdGlvbiBuZShfKXtyZXR1cm4gVy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gVygpe3JldHVybiBXPWEoKShuKCkoKS5tYXJrKGZ1bmN0aW9uIF8oZyl7cmV0dXJuIG4oKSgpLndyYXAoZnVuY3Rpb24ocyl7Zm9yKDs7KXN3aXRjaChzLnByZXY9cy5uZXh0KXtjYXNlIDA6cmV0dXJuIHMuYWJydXB0KCJyZXR1cm4iLCgwLGQucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2NvbmZpZy9saXN0Iix7bWV0aG9kOiJHRVQiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgifSxwYXJhbXM6Z30pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBzLnN0b3AoKX19LF8pfSkpLFcuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIFkoXyl7cmV0dXJuIHJlcXVlc3QoIi9hcGkvc3lzdGVtL2NvbmZpZy8iLmNvbmNhdChfKSx7bWV0aG9kOiJHRVQifSl9ZnVuY3Rpb24gcChfKXtyZXR1cm4geS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24geSgpe3JldHVybiB5PWEoKShuKCkoKS5tYXJrKGZ1bmN0aW9uIF8oZyl7cmV0dXJuIG4oKSgpLndyYXAoZnVuY3Rpb24ocyl7Zm9yKDs7KXN3aXRjaChzLnByZXY9cy5uZXh0KXtjYXNlIDA6cmV0dXJuIHMuYWJydXB0KCJyZXR1cm4iLCgwLGQucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2NvbmZpZyIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCJ9LGRhdGE6Z30pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBzLnN0b3AoKX19LF8pfSkpLHkuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIFUoXyl7cmV0dXJuIHUuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHUoKXtyZXR1cm4gdT1hKCkobigpKCkubWFyayhmdW5jdGlvbiBfKGcpe3JldHVybiBuKCkoKS53cmFwKGZ1bmN0aW9uKHMpe2Zvcig7Oylzd2l0Y2gocy5wcmV2PXMubmV4dCl7Y2FzZSAwOnJldHVybiBzLmFicnVwdCgicmV0dXJuIiwoMCxkLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS9jb25maWciLHttZXRob2Q6IlBVVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCJ9LGRhdGE6Z30pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBzLnN0b3AoKX19LF8pfSkpLHUuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEsoXyl7cmV0dXJuIHEuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHEoKXtyZXR1cm4gcT1hKCkobigpKCkubWFyayhmdW5jdGlvbiBfKGcpe3JldHVybiBuKCkoKS53cmFwKGZ1bmN0aW9uKHMpe2Zvcig7Oylzd2l0Y2gocy5wcmV2PXMubmV4dCl7Y2FzZSAwOnJldHVybiBzLmFicnVwdCgicmV0dXJuIiwoMCxkLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS9jb25maWcvIi5jb25jYXQoZykse21ldGhvZDoiREVMRVRFIn0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBzLnN0b3AoKX19LF8pfSkpLHEuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIFQoXyl7cmV0dXJuKDAsSS5zdSkoIi9hcGkvc3lzdGVtL2NvbmZpZy9leHBvcnQiLHtwYXJhbXM6X30sImNvbmZpZ18iLmNvbmNhdChuZXcgRGF0ZSgpLmdldFRpbWUoKSwiLnhsc3giKSl9ZnVuY3Rpb24gQygpe3JldHVybigwLGQucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2NvbmZpZy9yZWZyZXNoQ2FjaGUiLHttZXRob2Q6ImRlbGV0ZSJ9KX12YXIgbWU9ZSg5Njc2MiksZmU9ZSg5Mjk4MikscGU9ZSg5NDE2MiksbD1lKDg1ODkzKSxfZT1mdW5jdGlvbigpe3ZhciBfPWEoKShuKCkoKS5tYXJrKGZ1bmN0aW9uIGcoaCl7dmFyIHMsaTtyZXR1cm4gbigpKCkud3JhcChmdW5jdGlvbihyKXtmb3IoOzspc3dpdGNoKHIucHJldj1yLm5leHQpe2Nhc2UgMDpyZXR1cm4gcz1vLlpQLmxvYWRpbmcoIlx1NkI2M1x1NTcyOFx1NkRGQlx1NTJBMCIpLHIucHJldj0xLHIubmV4dD00LHAoUCgpKHt9LGgpKTtjYXNlIDQ6cmV0dXJuIGk9ci5zZW50LHMoKSxpLmNvZGU9PT0yMDA/by5aUC5zdWNjZXNzKCJcdTZERkJcdTUyQTBcdTYyMTBcdTUyOUYiKTpvLlpQLmVycm9yKGkubXNnKSxyLmFicnVwdCgicmV0dXJuIiwhMCk7Y2FzZSAxMDpyZXR1cm4gci5wcmV2PTEwLHIudDA9ci5jYXRjaCgxKSxzKCksby5aUC5lcnJvcigiXHU2REZCXHU1MkEwXHU1OTMxXHU4RDI1XHU4QkY3XHU5MUNEXHU4QkQ1XHVGRjAxIiksci5hYnJ1cHQoInJldHVybiIsITEpO2Nhc2UgMTU6Y2FzZSJlbmQiOnJldHVybiByLnN0b3AoKX19LGcsbnVsbCxbWzEsMTBdXSl9KSk7cmV0dXJuIGZ1bmN0aW9uKGgpe3JldHVybiBfLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksZ2U9ZnVuY3Rpb24oKXt2YXIgXz1hKCkobigpKCkubWFyayhmdW5jdGlvbiBnKGgpe3ZhciBzLGk7cmV0dXJuIG4oKSgpLndyYXAoZnVuY3Rpb24ocil7Zm9yKDs7KXN3aXRjaChyLnByZXY9ci5uZXh0KXtjYXNlIDA6cmV0dXJuIHM9by5aUC5sb2FkaW5nKCJcdTZCNjNcdTU3MjhcdTY2RjRcdTY1QjAiKSxyLnByZXY9MSxyLm5leHQ9NCxVKGgpO2Nhc2UgNDpyZXR1cm4gaT1yLnNlbnQscygpLGkuY29kZT09PTIwMD9vLlpQLnN1Y2Nlc3MoIlx1NjZGNFx1NjVCMFx1NjIxMFx1NTI5RiIpOm8uWlAuZXJyb3IoaS5tc2cpLHIuYWJydXB0KCJyZXR1cm4iLCEwKTtjYXNlIDEwOnJldHVybiByLnByZXY9MTAsci50MD1yLmNhdGNoKDEpLHMoKSxvLlpQLmVycm9yKCJcdTkxNERcdTdGNkVcdTU5MzFcdThEMjVcdThCRjdcdTkxQ0RcdThCRDVcdUZGMDEiKSxyLmFicnVwdCgicmV0dXJuIiwhMSk7Y2FzZSAxNTpjYXNlImVuZCI6cmV0dXJuIHIuc3RvcCgpfX0sZyxudWxsLFtbMSwxMF1dKX0pKTtyZXR1cm4gZnVuY3Rpb24oaCl7cmV0dXJuIF8uYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSxsZT1mdW5jdGlvbigpe3ZhciBfPWEoKShuKCkoKS5tYXJrKGZ1bmN0aW9uIGcoaCl7dmFyIHMsaTtyZXR1cm4gbigpKCkud3JhcChmdW5jdGlvbihyKXtmb3IoOzspc3dpdGNoKHIucHJldj1yLm5leHQpe2Nhc2UgMDppZihzPW8uWlAubG9hZGluZygiXHU2QjYzXHU1NzI4XHU1MjIwXHU5NjY0IiksaCl7ci5uZXh0PTM7YnJlYWt9cmV0dXJuIHIuYWJydXB0KCJyZXR1cm4iLCEwKTtjYXNlIDM6cmV0dXJuIHIucHJldj0zLHIubmV4dD02LEsoaC5tYXAoZnVuY3Rpb24oTSl7cmV0dXJuIE0uY29uZmlnSWR9KS5qb2luKCIsIikpO2Nhc2UgNjpyZXR1cm4gaT1yLnNlbnQscygpLGkuY29kZT09PTIwMD9vLlpQLnN1Y2Nlc3MoIlx1NTIyMFx1OTY2NFx1NjIxMFx1NTI5Rlx1RkYwQ1x1NTM3M1x1NUMwNlx1NTIzN1x1NjVCMCIpOm8uWlAuZXJyb3IoaS5tc2cpLHIuYWJydXB0KCJyZXR1cm4iLCEwKTtjYXNlIDEyOnJldHVybiByLnByZXY9MTIsci50MD1yLmNhdGNoKDMpLHMoKSxvLlpQLmVycm9yKCJcdTUyMjBcdTk2NjRcdTU5MzFcdThEMjVcdUZGMENcdThCRjdcdTkxQ0RcdThCRDUiKSxyLmFicnVwdCgicmV0dXJuIiwhMSk7Y2FzZSAxNzpjYXNlImVuZCI6cmV0dXJuIHIuc3RvcCgpfX0sZyxudWxsLFtbMywxMl1dKX0pKTtyZXR1cm4gZnVuY3Rpb24oaCl7cmV0dXJuIF8uYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSxoZT1mdW5jdGlvbigpe3ZhciBfPWEoKShuKCkoKS5tYXJrKGZ1bmN0aW9uIGcoaCl7dmFyIHMsaSx4O3JldHVybiBuKCkoKS53cmFwKGZ1bmN0aW9uKE0pe2Zvcig7Oylzd2l0Y2goTS5wcmV2PU0ubmV4dCl7Y2FzZSAwOmlmKHM9by5aUC5sb2FkaW5nKCJcdTZCNjNcdTU3MjhcdTUyMjBcdTk2NjQiKSxoKXtNLm5leHQ9MzticmVha31yZXR1cm4gTS5hYnJ1cHQoInJldHVybiIsITApO2Nhc2UgMzpyZXR1cm4gTS5wcmV2PTMsaT1baC5jb25maWdJZF0sTS5uZXh0PTcsSyhpLmpvaW4oIiwiKSk7Y2FzZSA3OnJldHVybiB4PU0uc2VudCxzKCkseC5jb2RlPT09MjAwP28uWlAuc3VjY2VzcygiXHU1MjIwXHU5NjY0XHU2MjEwXHU1MjlGXHVGRjBDXHU1MzczXHU1QzA2XHU1MjM3XHU2NUIwIik6by5aUC5lcnJvcih4Lm1zZyksTS5hYnJ1cHQoInJldHVybiIsITApO2Nhc2UgMTM6cmV0dXJuIE0ucHJldj0xMyxNLnQwPU0uY2F0Y2goMykscygpLG8uWlAuZXJyb3IoIlx1NTIyMFx1OTY2NFx1NTkzMVx1OEQyNVx1RkYwQ1x1OEJGN1x1OTFDRFx1OEJENSIpLE0uYWJydXB0KCJyZXR1cm4iLCExKTtjYXNlIDE4OmNhc2UiZW5kIjpyZXR1cm4gTS5zdG9wKCl9fSxnLG51bGwsW1szLDEzXV0pfSkpO3JldHVybiBmdW5jdGlvbihoKXtyZXR1cm4gXy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLHZlPWZ1bmN0aW9uKCl7dmFyIF89YSgpKG4oKSgpLm1hcmsoZnVuY3Rpb24gZygpe3ZhciBoO3JldHVybiBuKCkoKS53cmFwKGZ1bmN0aW9uKGkpe2Zvcig7Oylzd2l0Y2goaS5wcmV2PWkubmV4dCl7Y2FzZSAwOnJldHVybiBoPW8uWlAubG9hZGluZygiXHU2QjYzXHU1NzI4XHU1QkZDXHU1MUZBIiksaS5wcmV2PTEsaS5uZXh0PTQsVCgpO2Nhc2UgNDpyZXR1cm4gaCgpLG8uWlAuc3VjY2VzcygiXHU1QkZDXHU1MUZBXHU2MjEwXHU1MjlGIiksaS5hYnJ1cHQoInJldHVybiIsITApO2Nhc2UgOTpyZXR1cm4gaS5wcmV2PTksaS50MD1pLmNhdGNoKDEpLGgoKSxvLlpQLmVycm9yKCJcdTVCRkNcdTUxRkFcdTU5MzFcdThEMjVcdUZGMENcdThCRjdcdTkxQ0RcdThCRDUiKSxpLmFicnVwdCgicmV0dXJuIiwhMSk7Y2FzZSAxNDpjYXNlImVuZCI6cmV0dXJuIGkuc3RvcCgpfX0sZyxudWxsLFtbMSw5XV0pfSkpO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBfLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksVGU9ZnVuY3Rpb24oKXt2YXIgXz1hKCkobigpKCkubWFyayhmdW5jdGlvbiBnKCl7dmFyIGg7cmV0dXJuIG4oKSgpLndyYXAoZnVuY3Rpb24oaSl7Zm9yKDs7KXN3aXRjaChpLnByZXY9aS5uZXh0KXtjYXNlIDA6cmV0dXJuIGg9by5aUC5sb2FkaW5nKCJcdTZCNjNcdTU3MjhcdTUyMzdcdTY1QjAiKSxpLnByZXY9MSxpLm5leHQ9NCxDKCk7Y2FzZSA0OnJldHVybiBoKCksby5aUC5zdWNjZXNzKCJcdTUyMzdcdTY1QjBcdTYyMTBcdTUyOUYiKSxpLmFicnVwdCgicmV0dXJuIiwhMCk7Y2FzZSA5OnJldHVybiBpLnByZXY9OSxpLnQwPWkuY2F0Y2goMSksaCgpLG8uWlAuZXJyb3IoIlx1NTIzN1x1NjVCMFx1NTkzMVx1OEQyNVx1RkYwQ1x1OEJGN1x1OTFDRFx1OEJENSIpLGkuYWJydXB0KCJyZXR1cm4iLCExKTtjYXNlIDE0OmNhc2UiZW5kIjpyZXR1cm4gaS5zdG9wKCl9fSxnLG51bGwsW1sxLDldXSl9KSk7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIF8uYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSxFZT1mdW5jdGlvbigpe3ZhciBnPSgwLEEudXNlUmVmKSgpLGg9KDAsQS51c2VTdGF0ZSkoITEpLHM9bSgpKGgsMiksaT1zWzBdLHg9c1sxXSxyPSgwLEEudXNlUmVmKSgpLE09KDAsQS51c2VTdGF0ZSkoKSxvZT1tKCkoTSwyKSxiZT1vZVswXSx0ZT1vZVsxXSxQZT0oMCxBLnVzZVN0YXRlKShbXSksZGU9bSgpKFBlLDIpLHo9ZGVbMF0sdWU9ZGVbMV0sQ2U9KDAsQS51c2VTdGF0ZSkoW10pLGNlPW0oKShDZSwyKSxpZT1jZVswXSxEZT1jZVsxXSxKPSgwLGQudXNlQWNjZXNzKSgpLEZlPSgwLGQudXNlSW50bCkoKTsoMCxBLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXsoMCxmZS5wWCkoInN5c195ZXNfbm8iKS50aGVuKGZ1bmN0aW9uKGspe0RlKGspfSl9LFtdKTt2YXIgTWU9W3t0aXRsZTooMCxsLmpzeCkoZC5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoic3lzdGVtLmNvbmZpZy5jb25maWdfaWQiLGRlZmF1bHRNZXNzYWdlOiJcdTUzQzJcdTY1NzBcdTRFM0JcdTk1MkUifSksZGF0YUluZGV4OiJjb25maWdJZCIsdmFsdWVUeXBlOiJ0ZXh0IixoaWRlSW5TZWFyY2g6ITB9LHt0aXRsZTooMCxsLmpzeCkoZC5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoic3lzdGVtLmNvbmZpZy5jb25maWdfbmFtZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NTNDMlx1NjU3MFx1NTQwRFx1NzlGMCJ9KSxkYXRhSW5kZXg6ImNvbmZpZ05hbWUiLHZhbHVlVHlwZToidGV4dCJ9LHt0aXRsZTooMCxsLmpzeCkoZC5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoic3lzdGVtLmNvbmZpZy5jb25maWdfa2V5IixkZWZhdWx0TWVzc2FnZToiXHU1M0MyXHU2NTcwXHU5NTJFXHU1NDBEIn0pLGRhdGFJbmRleDoiY29uZmlnS2V5Iix2YWx1ZVR5cGU6InRleHQifSx7dGl0bGU6KDAsbC5qc3gpKGQuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InN5c3RlbS5jb25maWcuY29uZmlnX3ZhbHVlIixkZWZhdWx0TWVzc2FnZToiXHU1M0MyXHU2NTcwXHU5NTJFXHU1MDNDIn0pLGRhdGFJbmRleDoiY29uZmlnVmFsdWUiLHZhbHVlVHlwZToidGV4dGFyZWEifSx7dGl0bGU6KDAsbC5qc3gpKGQuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InN5c3RlbS5jb25maWcuY29uZmlnX3R5cGUiLGRlZmF1bHRNZXNzYWdlOiJcdTdDRkJcdTdFREZcdTUxODVcdTdGNkUifSksZGF0YUluZGV4OiJjb25maWdUeXBlIix2YWx1ZVR5cGU6InNlbGVjdCIsdmFsdWVFbnVtOmllLHJlbmRlcjpmdW5jdGlvbihSLGIpe3JldHVybigwLGwuanN4KShwZS5aLHtlbnVtczppZSx2YWx1ZTpiLmNvbmZpZ1R5cGV9KX19LHt0aXRsZTooMCxsLmpzeCkoZC5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoic3lzdGVtLmNvbmZpZy5yZW1hcmsiLGRlZmF1bHRNZXNzYWdlOiJcdTU5MDdcdTZDRTgifSksZGF0YUluZGV4OiJyZW1hcmsiLHZhbHVlVHlwZToidGV4dGFyZWEiLGhpZGVJblNlYXJjaDohMH0se3RpdGxlOigwLGwuanN4KShkLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJwYWdlcy5zZWFyY2hUYWJsZS50aXRsZU9wdGlvbiIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjRDRFx1NEY1QyJ9KSxkYXRhSW5kZXg6Im9wdGlvbiIsd2lkdGg6IjEyMHB4Iix2YWx1ZVR5cGU6Im9wdGlvbiIscmVuZGVyOmZ1bmN0aW9uKFIsYil7cmV0dXJuWygwLGwuanN4KShELlpQLHt0eXBlOiJsaW5rIixzaXplOiJzbWFsbCIsaGlkZGVuOiFKLmhhc1Blcm1zKCJzeXN0ZW06Y29uZmlnOmVkaXQiKSxvbkNsaWNrOmZ1bmN0aW9uKCl7eCghMCksdGUoYil9LGNoaWxkcmVuOiJcdTdGMTZcdThGOTEifSwiZWRpdCIpLCgwLGwuanN4KShELlpQLHt0eXBlOiJsaW5rIixzaXplOiJzbWFsbCIsZGFuZ2VyOiEwLGhpZGRlbjohSi5oYXNQZXJtcygic3lzdGVtOmNvbmZpZzpyZW1vdmUiKSxvbkNsaWNrOmEoKShuKCkoKS5tYXJrKGZ1bmN0aW9uIHYoKXtyZXR1cm4gbigpKCkud3JhcChmdW5jdGlvbihPKXtmb3IoOzspc3dpdGNoKE8ucHJldj1PLm5leHQpe2Nhc2UgMDpWLlouY29uZmlybSh7dGl0bGU6Ilx1NTIyMFx1OTY2NCIsY29udGVudDoiXHU3ODZFXHU1QjlBXHU1MjIwXHU5NjY0XHU4QkU1XHU5ODc5XHU1NDE3XHVGRjFGIixva1RleHQ6Ilx1Nzg2RVx1OEJBNCIsY2FuY2VsVGV4dDoiXHU1M0Q2XHU2RDg4Iixvbk9rOmZ1bmN0aW9uKCl7dmFyIFE9YSgpKG4oKSgpLm1hcmsoZnVuY3Rpb24gWCgpe3ZhciBzZTtyZXR1cm4gbigpKCkud3JhcChmdW5jdGlvbihhZSl7Zm9yKDs7KXN3aXRjaChhZS5wcmV2PWFlLm5leHQpe2Nhc2UgMDpyZXR1cm4gYWUubmV4dD0yLGhlKGIpO2Nhc2UgMjpzZT1hZS5zZW50LHNlJiZyLmN1cnJlbnQmJnIuY3VycmVudC5yZWxvYWQoKTtjYXNlIDQ6Y2FzZSJlbmQiOnJldHVybiBhZS5zdG9wKCl9fSxYKX0pKTtmdW5jdGlvbiBHKCl7cmV0dXJuIFEuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBHfSgpfSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gTy5zdG9wKCl9fSx2KX0pKSxjaGlsZHJlbjoiXHU1MjIwXHU5NjY0In0sImJhdGNoUmVtb3ZlIildfX1dO3JldHVybigwLGwuanN4cykoZi5feix7Y2hpbGRyZW46WygwLGwuanN4KSgiZGl2Iix7c3R5bGU6e3dpZHRoOiIxMDAlIixmbG9hdDoicmlnaHQifSxjaGlsZHJlbjooMCxsLmpzeCkoRS5aLHtoZWFkZXJUaXRsZTpGZS5mb3JtYXRNZXNzYWdlKHtpZDoicGFnZXMuc2VhcmNoVGFibGUudGl0bGUiLGRlZmF1bHRNZXNzYWdlOiJcdTRGRTFcdTYwNkYifSksYWN0aW9uUmVmOnIsZm9ybVJlZjpnLHJvd0tleToiY29uZmlnSWQiLHNlYXJjaDp7bGFiZWxXaWR0aDoxMjB9LHRvb2xCYXJSZW5kZXI6ZnVuY3Rpb24oKXtyZXR1cm5bKDAsbC5qc3hzKShELlpQLHt0eXBlOiJwcmltYXJ5IixoaWRkZW46IUouaGFzUGVybXMoInN5c3RlbTpjb25maWc6YWRkIiksb25DbGljazphKCkobigpKCkubWFyayhmdW5jdGlvbiBSKCl7cmV0dXJuIG4oKSgpLndyYXAoZnVuY3Rpb24odil7Zm9yKDs7KXN3aXRjaCh2LnByZXY9di5uZXh0KXtjYXNlIDA6dGUodm9pZCAwKSx4KCEwKTtjYXNlIDI6Y2FzZSJlbmQiOnJldHVybiB2LnN0b3AoKX19LFIpfSkpLGNoaWxkcmVuOlsoMCxsLmpzeCkoQi5aLHt9KSwiICIsKDAsbC5qc3gpKGQuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InBhZ2VzLnNlYXJjaFRhYmxlLm5ldyIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjVCMFx1NUVGQSJ9KV19LCJhZGQiKSwoMCxsLmpzeHMpKEQuWlAse3R5cGU6InByaW1hcnkiLGRhbmdlcjohMCxoaWRkZW46KHo9PW51bGw/dm9pZCAwOnoubGVuZ3RoKT09PTB8fCFKLmhhc1Blcm1zKCJzeXN0ZW06Y29uZmlnOnJlbW92ZSIpLG9uQ2xpY2s6YSgpKG4oKSgpLm1hcmsoZnVuY3Rpb24gUigpe3JldHVybiBuKCkoKS53cmFwKGZ1bmN0aW9uKHYpe2Zvcig7Oylzd2l0Y2godi5wcmV2PXYubmV4dCl7Y2FzZSAwOlYuWi5jb25maXJtKHt0aXRsZToiXHU2NjJGXHU1NDI2XHU3ODZFXHU4QkE0XHU1MjIwXHU5NjY0XHU2MjQwXHU5MDA5XHU2NTcwXHU2MzZFXHU5ODc5PyIsaWNvbjooMCxsLmpzeCkoTC5aLHt9KSxjb250ZW50OiJcdThCRjdcdThDMjhcdTYxNEVcdTY0Q0RcdTRGNUMiLG9uT2s6ZnVuY3Rpb24oKXtyZXR1cm4gYSgpKG4oKSgpLm1hcmsoZnVuY3Rpb24gTygpe3ZhciBRLEcsWDtyZXR1cm4gbigpKCkud3JhcChmdW5jdGlvbihTKXtmb3IoOzspc3dpdGNoKFMucHJldj1TLm5leHQpe2Nhc2UgMDpyZXR1cm4gUy5uZXh0PTIsbGUoeik7Y2FzZSAyOlE9Uy5zZW50LFEmJih1ZShbXSksKEc9ci5jdXJyZW50KT09PW51bGx8fEc9PT12b2lkIDB8fChYPUcucmVsb2FkQW5kUmVzdCk9PT1udWxsfHxYPT09dm9pZCAwfHxYLmNhbGwoRykpO2Nhc2UgNDpjYXNlImVuZCI6cmV0dXJuIFMuc3RvcCgpfX0sTyl9KSkoKX0sb25DYW5jZWw6ZnVuY3Rpb24oKXt9fSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gdi5zdG9wKCl9fSxSKX0pKSxjaGlsZHJlbjpbKDAsbC5qc3gpKGMuWix7fSksKDAsbC5qc3gpKGQuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InBhZ2VzLnNlYXJjaFRhYmxlLmRlbGV0ZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NTIyMFx1OTY2NCJ9KV19LCJyZW1vdmUiKSwoMCxsLmpzeHMpKEQuWlAse3R5cGU6InByaW1hcnkiLGhpZGRlbjohSi5oYXNQZXJtcygic3lzdGVtOmNvbmZpZzpleHBvcnQiKSxvbkNsaWNrOmEoKShuKCkoKS5tYXJrKGZ1bmN0aW9uIFIoKXtyZXR1cm4gbigpKCkud3JhcChmdW5jdGlvbih2KXtmb3IoOzspc3dpdGNoKHYucHJldj12Lm5leHQpe2Nhc2UgMDp2ZSgpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIHYuc3RvcCgpfX0sUil9KSksY2hpbGRyZW46WygwLGwuanN4KShaLlose30pLCgwLGwuanN4KShkLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJwYWdlcy5zZWFyY2hUYWJsZS5leHBvcnQiLGRlZmF1bHRNZXNzYWdlOiJcdTVCRkNcdTUxRkEifSldfSwiZXhwb3J0IiksKDAsbC5qc3hzKShELlpQLHt0eXBlOiJwcmltYXJ5IixkYW5nZXI6ITAsaGlkZGVuOiFKLmhhc1Blcm1zKCJzeXN0ZW06Y29uZmlnOnJlbW92ZSIpLG9uQ2xpY2s6YSgpKG4oKSgpLm1hcmsoZnVuY3Rpb24gUigpe3JldHVybiBuKCkoKS53cmFwKGZ1bmN0aW9uKHYpe2Zvcig7Oylzd2l0Y2godi5wcmV2PXYubmV4dCl7Y2FzZSAwOlRlKCk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gdi5zdG9wKCl9fSxSKX0pKSxjaGlsZHJlbjpbKDAsbC5qc3gpKEYuWix7fSksKDAsbC5qc3gpKGQuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InN5c3RlbS5jb25maWcucmVmcmVzaENhY2hlIixkZWZhdWx0TWVzc2FnZToiXHU1MjM3XHU2NUIwXHU3RjEzXHU1QjU4In0pXX0sInJlZnJlc2giKV19LHJlcXVlc3Q6ZnVuY3Rpb24oUil7cmV0dXJuIG5lKFAoKSh7fSxSKSkudGhlbihmdW5jdGlvbihiKXt2YXIgdj17ZGF0YTpiLnJvd3MsdG90YWw6Yi50b3RhbCxzdWNjZXNzOiEwfTtyZXR1cm4gdn0pfSxjb2x1bW5zOk1lLHJvd1NlbGVjdGlvbjp7b25DaGFuZ2U6ZnVuY3Rpb24oUixiKXt1ZShiKX19fSwiY29uZmlnTGlzdCIpfSksKHo9PW51bGw/dm9pZCAwOnoubGVuZ3RoKT4wJiYoMCxsLmpzeCkodC5TLHtleHRyYTooMCxsLmpzeHMpKCJkaXYiLHtjaGlsZHJlbjpbKDAsbC5qc3gpKGQuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InBhZ2VzLnNlYXJjaFRhYmxlLmNob3NlbiIsZGVmYXVsdE1lc3NhZ2U6Ilx1NURGMlx1OTAwOVx1NjJFOSJ9KSwoMCxsLmpzeCkoImEiLHtzdHlsZTp7Zm9udFdlaWdodDo2MDB9LGNoaWxkcmVuOnoubGVuZ3RofSksKDAsbC5qc3gpKGQuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InBhZ2VzLnNlYXJjaFRhYmxlLml0ZW0iLGRlZmF1bHRNZXNzYWdlOiJcdTk4NzkifSldfSksY2hpbGRyZW46KDAsbC5qc3gpKEQuWlAse2RhbmdlcjohMCxoaWRkZW46IUouaGFzUGVybXMoInN5c3RlbTpjb25maWc6ZGVsIiksb25DbGljazphKCkobigpKCkubWFyayhmdW5jdGlvbiBrKCl7cmV0dXJuIG4oKSgpLndyYXAoZnVuY3Rpb24oYil7Zm9yKDs7KXN3aXRjaChiLnByZXY9Yi5uZXh0KXtjYXNlIDA6Vi5aLmNvbmZpcm0oe3RpdGxlOiJcdTUyMjBcdTk2NjQiLGNvbnRlbnQ6Ilx1Nzg2RVx1NUI5QVx1NTIyMFx1OTY2NFx1OEJFNVx1OTg3OVx1NTQxN1x1RkYxRiIsb2tUZXh0OiJcdTc4NkVcdThCQTQiLGNhbmNlbFRleHQ6Ilx1NTNENlx1NkQ4OCIsb25PazpmdW5jdGlvbigpe3ZhciB2PWEoKShuKCkoKS5tYXJrKGZ1bmN0aW9uIE8oKXt2YXIgUSxHLFg7cmV0dXJuIG4oKSgpLndyYXAoZnVuY3Rpb24oUyl7Zm9yKDs7KXN3aXRjaChTLnByZXY9Uy5uZXh0KXtjYXNlIDA6cmV0dXJuIFMubmV4dD0yLGxlKHopO2Nhc2UgMjpRPVMuc2VudCxRJiYodWUoW10pLChHPXIuY3VycmVudCk9PT1udWxsfHxHPT09dm9pZCAwfHwoWD1HLnJlbG9hZEFuZFJlc3QpPT09bnVsbHx8WD09PXZvaWQgMHx8WC5jYWxsKEcpKTtjYXNlIDQ6Y2FzZSJlbmQiOnJldHVybiBTLnN0b3AoKX19LE8pfSkpO2Z1bmN0aW9uIHJlKCl7cmV0dXJuIHYuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiByZX0oKX0pO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGIuc3RvcCgpfX0sayl9KSksY2hpbGRyZW46KDAsbC5qc3gpKGQuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InBhZ2VzLnNlYXJjaFRhYmxlLmJhdGNoRGVsZXRpb24iLGRlZmF1bHRNZXNzYWdlOiJcdTYyNzlcdTkxQ0ZcdTUyMjBcdTk2NjQifSl9LCJyZW1vdmUiKX0pLCgwLGwuanN4KShtZS5kZWZhdWx0LHtvblN1Ym1pdDpmdW5jdGlvbigpe3ZhciBrPWEoKShuKCkoKS5tYXJrKGZ1bmN0aW9uIFIoYil7dmFyIHY7cmV0dXJuIG4oKSgpLndyYXAoZnVuY3Rpb24oTyl7Zm9yKDs7KXN3aXRjaChPLnByZXY9Ty5uZXh0KXtjYXNlIDA6aWYodj0hMSwhYi5jb25maWdJZCl7Ty5uZXh0PTc7YnJlYWt9cmV0dXJuIE8ubmV4dD00LGdlKFAoKSh7fSxiKSk7Y2FzZSA0OnY9Ty5zZW50LE8ubmV4dD0xMDticmVhaztjYXNlIDc6cmV0dXJuIE8ubmV4dD05LF9lKFAoKSh7fSxiKSk7Y2FzZSA5OnY9Ty5zZW50O2Nhc2UgMTA6diYmKHgoITEpLHRlKHZvaWQgMCksci5jdXJyZW50JiZyLmN1cnJlbnQucmVsb2FkKCkpO2Nhc2UgMTE6Y2FzZSJlbmQiOnJldHVybiBPLnN0b3AoKX19LFIpfSkpO3JldHVybiBmdW5jdGlvbihSKXtyZXR1cm4gay5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLG9uQ2FuY2VsOmZ1bmN0aW9uKCl7eCghMSksdGUodm9pZCAwKX0sb3BlbjppLHZhbHVlczpiZXx8e30sY29uZmlnVHlwZU9wdGlvbnM6aWV9KV19KX0seWU9RWV9LDkyOTgyOmZ1bmN0aW9uKGVlLHcsZSl7ZS5kKHcse0hyOmZ1bmN0aW9uKCl7cmV0dXJuIEV9LFFLOmZ1bmN0aW9uKCl7cmV0dXJuIFd9LFZkOmZ1bmN0aW9uKCl7cmV0dXJuIER9LGE3OmZ1bmN0aW9uKCl7cmV0dXJuIGN9LGpLOmZ1bmN0aW9uKCl7cmV0dXJuIGR9LG4yOmZ1bmN0aW9uKCl7cmV0dXJuIG5lfSxvSDpmdW5jdGlvbigpe3JldHVybiBCfSxwWDpmdW5jdGlvbigpe3JldHVybiBWfSxzRjpmdW5jdGlvbigpe3JldHVybiBGfX0pO3ZhciAkPWUoMTUwMDkpLG09ZS5uKCQpLEg9ZSg5Nzg1Nyksbj1lLm4oSCksTj1lKDk5Mjg5KSxQPWUubihOKSxqPWUoNzY3NzIpLGE9ZSgzMzg2NyksQT1lKDMwOTY0KTtmdW5jdGlvbiBkKHApe3JldHVybiBvLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBvKCl7cmV0dXJuIG89UCgpKG0oKSgpLm1hcmsoZnVuY3Rpb24gcCh5KXtyZXR1cm4gbSgpKCkud3JhcChmdW5jdGlvbih1KXtmb3IoOzspc3dpdGNoKHUucHJldj11Lm5leHQpe2Nhc2UgMDpyZXR1cm4gdS5hYnJ1cHQoInJldHVybiIsKDAsai5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vZGljdC90eXBlL2xpc3QiLHtwYXJhbXM6bigpKHt9LHkpLG1ldGhvZDoiR0VUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In19KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gdS5zdG9wKCl9fSxwKX0pKSxvLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBEKHApe3JldHVybigwLGoucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RpY3QvdHlwZS8iLmNvbmNhdChwKSx7bWV0aG9kOiJHRVQifSl9ZnVuY3Rpb24gVihwLHkpe3JldHVybiBmLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBmKCl7cmV0dXJuIGY9UCgpKG0oKSgpLm1hcmsoZnVuY3Rpb24gcCh5LFUpe3ZhciB1LEs7cmV0dXJuIG0oKSgpLndyYXAoZnVuY3Rpb24oVCl7Zm9yKDs7KXN3aXRjaChULnByZXY9VC5uZXh0KXtjYXNlIDA6cmV0dXJuIFQubmV4dD0yLCgwLGoucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RpY3QvZGF0YS90eXBlLyIuY29uY2F0KHkpLHttZXRob2Q6IkdFVCJ9KTtjYXNlIDI6aWYodT1ULnNlbnQsdS5jb2RlIT09YS5pSy5TVUNDRVNTKXtULm5leHQ9OTticmVha31yZXR1cm4gSz17fSx1LmRhdGEuZm9yRWFjaChmdW5jdGlvbihDKXtLW0MuZGljdFZhbHVlXT17dGV4dDpDLmRpY3RMYWJlbCxsYWJlbDpDLmRpY3RMYWJlbCx2YWx1ZTpVP051bWJlcihDLmRpY3RWYWx1ZSk6Qy5kaWN0VmFsdWUsa2V5OkMuZGljdENvZGUsbGlzdENsYXNzOkMubGlzdENsYXNzLHN0YXR1czpDLmxpc3RDbGFzc319KSxULmFicnVwdCgicmV0dXJuIixLKTtjYXNlIDk6cmV0dXJuIFQuYWJydXB0KCJyZXR1cm4iLHt9KTtjYXNlIDEwOmNhc2UiZW5kIjpyZXR1cm4gVC5zdG9wKCl9fSxwKX0pKSxmLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBFKHAseSl7cmV0dXJuIHQuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHQoKXtyZXR1cm4gdD1QKCkobSgpKCkubWFyayhmdW5jdGlvbiBwKHksVSl7dmFyIHUsSztyZXR1cm4gbSgpKCkud3JhcChmdW5jdGlvbihUKXtmb3IoOzspc3dpdGNoKFQucHJldj1ULm5leHQpe2Nhc2UgMDpyZXR1cm4gVC5uZXh0PTIsKDAsai5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vZGljdC9kYXRhL3R5cGUvIi5jb25jYXQoeSkse21ldGhvZDoiR0VUIn0pO2Nhc2UgMjppZih1PVQuc2VudCx1LmNvZGUhPT0yMDApe1QubmV4dD02O2JyZWFrfXJldHVybiBLPXUuZGF0YS5tYXAoZnVuY3Rpb24oQyl7cmV0dXJue3RleHQ6Qy5kaWN0TGFiZWwsbGFiZWw6Qy5kaWN0TGFiZWwsdmFsdWU6VT9OdW1iZXIoQy5kaWN0VmFsdWUpOkMuZGljdFZhbHVlLGtleTpDLmRpY3RDb2RlLGxpc3RDbGFzczpDLmxpc3RDbGFzcyxzdGF0dXM6Qy5saXN0Q2xhc3N9fSksVC5hYnJ1cHQoInJldHVybiIsSyk7Y2FzZSA2OnJldHVybiBULmFicnVwdCgicmV0dXJuIixbXSk7Y2FzZSA3OmNhc2UiZW5kIjpyZXR1cm4gVC5zdG9wKCl9fSxwKX0pKSx0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBCKHApe3JldHVybiBMLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBMKCl7cmV0dXJuIEw9UCgpKG0oKSgpLm1hcmsoZnVuY3Rpb24gcCh5KXtyZXR1cm4gbSgpKCkud3JhcChmdW5jdGlvbih1KXtmb3IoOzspc3dpdGNoKHUucHJldj11Lm5leHQpe2Nhc2UgMDpyZXR1cm4gdS5hYnJ1cHQoInJldHVybiIsKDAsai5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vZGljdC90eXBlIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In0sZGF0YTp5fSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIHUuc3RvcCgpfX0scCl9KSksTC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gYyhwKXtyZXR1cm4gWi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gWigpe3JldHVybiBaPVAoKShtKCkoKS5tYXJrKGZ1bmN0aW9uIHAoeSl7cmV0dXJuIG0oKSgpLndyYXAoZnVuY3Rpb24odSl7Zm9yKDs7KXN3aXRjaCh1LnByZXY9dS5uZXh0KXtjYXNlIDA6cmV0dXJuIHUuYWJydXB0KCJyZXR1cm4iLCgwLGoucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RpY3QvdHlwZSIse21ldGhvZDoiUFVUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In0sZGF0YTp5fSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIHUuc3RvcCgpfX0scCl9KSksWi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gRihwKXtyZXR1cm4gSS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gSSgpe3JldHVybiBJPVAoKShtKCkoKS5tYXJrKGZ1bmN0aW9uIHAoeSl7cmV0dXJuIG0oKSgpLndyYXAoZnVuY3Rpb24odSl7Zm9yKDs7KXN3aXRjaCh1LnByZXY9dS5uZXh0KXtjYXNlIDA6cmV0dXJuIHUuYWJydXB0KCJyZXR1cm4iLCgwLGoucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RpY3QvdHlwZS8iLmNvbmNhdCh5KSx7bWV0aG9kOiJERUxFVEUifSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIHUuc3RvcCgpfX0scCl9KSksSS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gbmUocCl7cmV0dXJuKDAsQS5zdSkoIi9hcGkvc3lzdGVtL2RpY3QvdHlwZS9leHBvcnQiLHtwYXJhbXM6cH0sImRpY3RfdHlwZV8iLmNvbmNhdChuZXcgRGF0ZSgpLmdldFRpbWUoKSwiLnhsc3giKSl9ZnVuY3Rpb24gVyhwKXtyZXR1cm4gWS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gWSgpe3JldHVybiBZPVAoKShtKCkoKS5tYXJrKGZ1bmN0aW9uIHAoeSl7cmV0dXJuIG0oKSgpLndyYXAoZnVuY3Rpb24odSl7Zm9yKDs7KXN3aXRjaCh1LnByZXY9dS5uZXh0KXtjYXNlIDA6cmV0dXJuIHUuYWJydXB0KCJyZXR1cm4iLCgwLGoucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RpY3QvdHlwZS9vcHRpb25zZWxlY3QiLHtwYXJhbXM6bigpKHt9LHkpLG1ldGhvZDoiR0VUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In19KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gdS5zdG9wKCl9fSxwKX0pKSxZLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19LDMwOTY0OmZ1bmN0aW9uKGVlLHcsZSl7ZS5kKHcse3A2OmZ1bmN0aW9uKCl7cmV0dXJuIGR9LHN1OmZ1bmN0aW9uKCl7cmV0dXJuIG99fSk7dmFyICQ9ZSgxNTAwOSksbT1lLm4oJCksSD1lKDk3ODU3KSxuPWUubihIKSxOPWUoOTkyODkpLFA9ZS5uKE4pLGo9ZSg3Njc3MiksYT17eGxzeDoiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQiLHppcDoiYXBwbGljYXRpb24vemlwIn07ZnVuY3Rpb24gQShmLEUpe3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKSxCPW5ldyBCbG9iKFtmLmRhdGFdLHt0eXBlOkV9KSxMPW5ldyBSZWdFeHAoImZpbGVuYW1lPShbXjtdK1xcLlteXFwuO10rKTsqIiksYz1kZWNvZGVVUkkoZi5oZWFkZXJzWyJjb250ZW50LWRpc3Bvc2l0aW9uIl0pLFo9TC5leGVjKGMpLEY9Wj9aWzFdOiJmaWxlIjtGPUYucmVwbGFjZSgvIi9nLCIiKSx0LnN0eWxlLmRpc3BsYXk9Im5vbmUiLHQuaHJlZj1VUkwuY3JlYXRlT2JqZWN0VVJMKEIpLHQuc2V0QXR0cmlidXRlKCJkb3dubG9hZCIsRiksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0KSx0LmNsaWNrKCksVVJMLnJldm9rZU9iamVjdFVSTCh0LmhyZWYpLGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodCl9ZnVuY3Rpb24gZChmKXsoMCxqLnJlcXVlc3QpKGYse21ldGhvZDoiR0VUIixyZXNwb25zZVR5cGU6ImJsb2IiLGdldFJlc3BvbnNlOiEwfSkudGhlbihmdW5jdGlvbihFKXtBKEUsYS56aXApfSl9ZnVuY3Rpb24gbyhmLEUsdCl7cmV0dXJuIEQuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEQoKXtyZXR1cm4gRD1QKCkobSgpKCkubWFyayhmdW5jdGlvbiBmKEUsdCxCKXtyZXR1cm4gbSgpKCkud3JhcChmdW5jdGlvbihjKXtmb3IoOzspc3dpdGNoKGMucHJldj1jLm5leHQpe2Nhc2UgMDpyZXR1cm4gYy5hYnJ1cHQoInJldHVybiIsKDAsai5yZXF1ZXN0KShFLG4oKShuKCkoe30sdCkse30se21ldGhvZDoiUE9TVCIscmVzcG9uc2VUeXBlOiJibG9iIn0pKS50aGVuKGZ1bmN0aW9uKFope3ZhciBGPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKSxJPVo7Ri5zdHlsZS5kaXNwbGF5PSJub25lIixGLmhyZWY9VVJMLmNyZWF0ZU9iamVjdFVSTChJKSxGLnNldEF0dHJpYnV0ZSgiZG93bmxvYWQiLEIpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoRiksRi5jbGljaygpLFVSTC5yZXZva2VPYmplY3RVUkwoRi5ocmVmKSxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKEYpfSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGMuc3RvcCgpfX0sZil9KSksRC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gVihmKXt3aW5kb3cubG9jYXRpb24uaHJlZj0iL2FwaS9jb21tb24vZG93bmxvYWQ/ZmlsZU5hbWU9Ii5jb25jYXQoZW5jb2RlVVJJKGYpLCImZGVsZXRlPSIsITApfX19XSk7CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzYwNS4yOTAxMjgwOC5hc3luYy5qcyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNjA1LjI5MDEyODA4LmFzeW5jLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBhMjU4NjIKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzYwNS4yOTAxMjgwOC5hc3luYy5qcwpAQCAtMCwwICsxIEBACisidXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W10pLnB1c2goW1s2MDVdLHsxMDYwNTpmdW5jdGlvbihvZSxTLGUpe2UucihTKTt2YXIgTj1lKDE1MDA5KSxiPWUubihOKSxpPWUoOTkyODkpLE89ZS5uKGkpLHg9ZSg1NTc0KSxUPWUubih4KSxFPWUoNjcyOTQpLGM9ZSgyMDg2MyksSD1lKDI0NTMpLEM9ZSg5MDI1KSxvPWUoODU4OTMpLEs9Yy5aLkRpcmVjdG9yeVRyZWUsWj1mdW5jdGlvbihEKXt2YXIgbD0oMCxFLnVzZVN0YXRlKShbXSksdD1UKCkobCwyKSx5PXRbMF0saj10WzFdLCQ9KDAsRS51c2VTdGF0ZSkoW10pLFA9VCgpKCQsMiksej1QWzBdLFg9UFsxXSxZPSgwLEUudXNlU3RhdGUpKCEwKSxRPVQoKShZLDIpLHVlPVFbMF0sVj1RWzFdLGs9ZnVuY3Rpb24oKXt2YXIgbT1PKCkoYigpKCkubWFyayhmdW5jdGlvbiBMKCl7dmFyIGQ7cmV0dXJuIGIoKSgpLndyYXAoZnVuY3Rpb24oTSl7Zm9yKDs7KXN3aXRjaChNLnByZXY9TS5uZXh0KXtjYXNlIDA6cmV0dXJuIGQ9SC5aUC5sb2FkaW5nKCJcdTZCNjNcdTU3MjhcdTY3RTVcdThCRTIiKSxNLnByZXY9MSxNLm5leHQ9NCwoMCxDLng3KSh7fSkudGhlbihmdW5jdGlvbihzKXt2YXIgcD1bXTtwLnB1c2goIjEiKSxqKHMpLHAucHVzaChzWzBdLmNoaWxkcmVuWzBdLmlkKSxYKHApLEQub25TZWxlY3Qoc1swXS5jaGlsZHJlblswXSl9KTtjYXNlIDQ6cmV0dXJuIGQoKSxNLmFicnVwdCgicmV0dXJuIiwhMCk7Y2FzZSA4OnJldHVybiBNLnByZXY9OCxNLnQwPU0uY2F0Y2goMSksZCgpLE0uYWJydXB0KCJyZXR1cm4iLCExKTtjYXNlIDEyOmNhc2UiZW5kIjpyZXR1cm4gTS5zdG9wKCl9fSxMLG51bGwsW1sxLDhdXSl9KSk7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG0uYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKTsoMCxFLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtrKCl9LFtdKTt2YXIgbj1mdW5jdGlvbihMLGQpe0Qub25TZWxlY3QoZC5ub2RlKX0sdT1mdW5jdGlvbihMKXtYKEwpLFYoITEpfTtyZXR1cm4oMCxvLmpzeCkoSyx7ZGVmYXVsdEV4cGFuZEFsbDohMCxvbkV4cGFuZDp1LGV4cGFuZGVkS2V5czp6LGF1dG9FeHBhbmRQYXJlbnQ6dWUsb25TZWxlY3Q6bix0cmVlRGF0YTp5fSl9O1MuZGVmYXVsdD1afSw5MDI1OmZ1bmN0aW9uKG9lLFMsZSl7ZS5kKFMse0xqOmZ1bmN0aW9uKCl7cmV0dXJuIHp9LE5xOmZ1bmN0aW9uKCl7cmV0dXJuIER9LFBSOmZ1bmN0aW9uKCl7cmV0dXJuIEt9LF9MOmZ1bmN0aW9uKCl7cmV0dXJuIGp9LGF6OmZ1bmN0aW9uKCl7cmV0dXJuICR9LGNuOmZ1bmN0aW9uKCl7cmV0dXJuIFp9LGdnOmZ1bmN0aW9uKCl7cmV0dXJuIFF9LGtYOmZ1bmN0aW9uKCl7cmV0dXJuIHR9LGxFOmZ1bmN0aW9uKCl7cmV0dXJuIEN9LHRXOmZ1bmN0aW9uKCl7cmV0dXJuIFZ9LHdwOmZ1bmN0aW9uKCl7cmV0dXJuIFl9LHg3OmZ1bmN0aW9uKCl7cmV0dXJuIGt9LHhCOmZ1bmN0aW9uKCl7cmV0dXJuIFh9fSk7dmFyIE49ZSgxNTAwOSksYj1lLm4oTiksaT1lKDk3ODU3KSxPPWUubihpKSx4PWUoOTkyODkpLFQ9ZS5uKHgpLEU9ZSgzMTk4MSksYz1lKDc2NzcyKSxIPWUoMzA5NjQpO2Z1bmN0aW9uIEMobix1KXtyZXR1cm4gby5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gbygpe3JldHVybiBvPVQoKShiKCkoKS5tYXJrKGZ1bmN0aW9uIG4odSxtKXtyZXR1cm4gYigpKCkud3JhcChmdW5jdGlvbihkKXtmb3IoOzspc3dpdGNoKGQucHJldj1kLm5leHQpe2Nhc2UgMDpyZXR1cm4gZC5hYnJ1cHQoInJldHVybiIsKDAsYy5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vdXNlci9saXN0IixPKCkoe21ldGhvZDoiR0VUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In0scGFyYW1zOnV9LG18fHt9KSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGQuc3RvcCgpfX0sbil9KSksby5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gSyhuLHUpe3JldHVybigwLGMucmVxdWVzdCkoIi9hcGkvc3lzdGVtL3VzZXIvIi5jb25jYXQobiksTygpKHttZXRob2Q6IkdFVCJ9LHV8fHt9KSl9ZnVuY3Rpb24gWihuLHUpe3JldHVybiBnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBnKCl7cmV0dXJuIGc9VCgpKGIoKSgpLm1hcmsoZnVuY3Rpb24gbih1LG0pe3JldHVybiBiKCkoKS53cmFwKGZ1bmN0aW9uKGQpe2Zvcig7Oylzd2l0Y2goZC5wcmV2PWQubmV4dCl7Y2FzZSAwOnJldHVybiBkLmFicnVwdCgicmV0dXJuIiwoMCxjLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS91c2VyIixPKCkoe21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCJ9LGRhdGE6dX0sbXx8e30pKSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gZC5zdG9wKCl9fSxuKX0pKSxnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBEKG4sdSl7cmV0dXJuIGwuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGwoKXtyZXR1cm4gbD1UKCkoYigpKCkubWFyayhmdW5jdGlvbiBuKHUsbSl7cmV0dXJuIGIoKSgpLndyYXAoZnVuY3Rpb24oZCl7Zm9yKDs7KXN3aXRjaChkLnByZXY9ZC5uZXh0KXtjYXNlIDA6cmV0dXJuIGQuYWJydXB0KCJyZXR1cm4iLCgwLGMucmVxdWVzdCkoIi9hcGkvc3lzdGVtL3VzZXIiLE8oKSh7bWV0aG9kOiJQVVQiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgifSxkYXRhOnV9LG18fHt9KSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGQuc3RvcCgpfX0sbil9KSksbC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gdChuLHUpe3JldHVybiB5LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiB5KCl7cmV0dXJuIHk9VCgpKGIoKSgpLm1hcmsoZnVuY3Rpb24gbih1LG0pe3JldHVybiBiKCkoKS53cmFwKGZ1bmN0aW9uKGQpe2Zvcig7Oylzd2l0Y2goZC5wcmV2PWQubmV4dCl7Y2FzZSAwOnJldHVybiBkLmFicnVwdCgicmV0dXJuIiwoMCxjLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS91c2VyLyIuY29uY2F0KHUpLE8oKSh7bWV0aG9kOiJERUxFVEUifSxtfHx7fSkpKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBkLnN0b3AoKX19LG4pfSkpLHkuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGoobix1KXtyZXR1cm4oMCxILnN1KSgiL2FwaS9zeXN0ZW0vdXNlci9leHBvcnQiLHtwYXJhbXM6bn0sInVzZXJfIi5jb25jYXQobmV3IERhdGUoKS5nZXRUaW1lKCksIi54bHN4IikpfWZ1bmN0aW9uICQobix1KXt2YXIgbT17dXNlcklkOm4sc3RhdHVzOnV9O3JldHVybigwLGMucmVxdWVzdCkoIi9hcGkvc3lzdGVtL3VzZXIvY2hhbmdlU3RhdHVzIix7bWV0aG9kOiJwdXQiLGRhdGE6bX0pfWZ1bmN0aW9uIFAoKXtyZXR1cm4gcmVxdWVzdCgiL2FwaS9zeXN0ZW0vdXNlci9wcm9maWxlIix7bWV0aG9kOiJnZXQifSl9ZnVuY3Rpb24geihuKXtyZXR1cm4oMCxjLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS91c2VyL3Byb2ZpbGUiLHttZXRob2Q6InB1dCIsZGF0YTpufSl9ZnVuY3Rpb24gWChuLHUpe3ZhciBtPXt1c2VySWQ6bixwYXNzd29yZDp1fTtyZXR1cm4oMCxjLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS91c2VyL3Jlc2V0UHdkIix7bWV0aG9kOiJwdXQiLGRhdGE6bX0pfWZ1bmN0aW9uIFkobix1KXt2YXIgbT17b2xkUGFzc3dvcmQ6bixuZXdQYXNzd29yZDp1fTtyZXR1cm4oMCxjLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS91c2VyL3Byb2ZpbGUvdXBkYXRlUHdkIix7bWV0aG9kOiJwdXQiLHBhcmFtczptfSl9ZnVuY3Rpb24gUShuKXtyZXR1cm4oMCxjLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS91c2VyL3Byb2ZpbGUvYXZhdGFyIix7bWV0aG9kOiJwb3N0IixkYXRhOm59KX1mdW5jdGlvbiB1ZShuKXtyZXR1cm4gcmVxdWVzdCgiL3N5c3RlbS91c2VyL2F1dGhSb2xlLyIrbix7bWV0aG9kOiJnZXQifSl9ZnVuY3Rpb24gVihuKXtyZXR1cm4oMCxjLnJlcXVlc3QpKCIvc3lzdGVtL3VzZXIvYXV0aFJvbGUiLHttZXRob2Q6InB1dCIscGFyYW1zOm59KX1mdW5jdGlvbiBrKG4pe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbih1KXsoMCxjLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS91c2VyL2RlcHRUcmVlIix7bWV0aG9kOiJnZXQiLHBhcmFtczpufSkudGhlbihmdW5jdGlvbihtKXtpZihtJiZtLmNvZGU9PT0yMDApe3ZhciBMPSgwLEUubHQpKG0uZGF0YSk7dShMKX1lbHNlIHUoW10pfSl9KX19LDMwOTY0OmZ1bmN0aW9uKG9lLFMsZSl7ZS5kKFMse3A2OmZ1bmN0aW9uKCl7cmV0dXJuIEN9LHN1OmZ1bmN0aW9uKCl7cmV0dXJuIG99fSk7dmFyIE49ZSgxNTAwOSksYj1lLm4oTiksaT1lKDk3ODU3KSxPPWUubihpKSx4PWUoOTkyODkpLFQ9ZS5uKHgpLEU9ZSg3Njc3MiksYz17eGxzeDoiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQiLHppcDoiYXBwbGljYXRpb24vemlwIn07ZnVuY3Rpb24gSChnLEQpe3ZhciBsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKSx0PW5ldyBCbG9iKFtnLmRhdGFdLHt0eXBlOkR9KSx5PW5ldyBSZWdFeHAoImZpbGVuYW1lPShbXjtdK1xcLlteXFwuO10rKTsqIiksaj1kZWNvZGVVUkkoZy5oZWFkZXJzWyJjb250ZW50LWRpc3Bvc2l0aW9uIl0pLCQ9eS5leGVjKGopLFA9JD8kWzFdOiJmaWxlIjtQPVAucmVwbGFjZSgvIi9nLCIiKSxsLnN0eWxlLmRpc3BsYXk9Im5vbmUiLGwuaHJlZj1VUkwuY3JlYXRlT2JqZWN0VVJMKHQpLGwuc2V0QXR0cmlidXRlKCJkb3dubG9hZCIsUCksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsKSxsLmNsaWNrKCksVVJMLnJldm9rZU9iamVjdFVSTChsLmhyZWYpLGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQobCl9ZnVuY3Rpb24gQyhnKXsoMCxFLnJlcXVlc3QpKGcse21ldGhvZDoiR0VUIixyZXNwb25zZVR5cGU6ImJsb2IiLGdldFJlc3BvbnNlOiEwfSkudGhlbihmdW5jdGlvbihEKXtIKEQsYy56aXApfSl9ZnVuY3Rpb24gbyhnLEQsbCl7cmV0dXJuIEsuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEsoKXtyZXR1cm4gSz1UKCkoYigpKCkubWFyayhmdW5jdGlvbiBnKEQsbCx0KXtyZXR1cm4gYigpKCkud3JhcChmdW5jdGlvbihqKXtmb3IoOzspc3dpdGNoKGoucHJldj1qLm5leHQpe2Nhc2UgMDpyZXR1cm4gai5hYnJ1cHQoInJldHVybiIsKDAsRS5yZXF1ZXN0KShELE8oKShPKCkoe30sbCkse30se21ldGhvZDoiUE9TVCIscmVzcG9uc2VUeXBlOiJibG9iIn0pKS50aGVuKGZ1bmN0aW9uKCQpe3ZhciBQPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKSx6PSQ7UC5zdHlsZS5kaXNwbGF5PSJub25lIixQLmhyZWY9VVJMLmNyZWF0ZU9iamVjdFVSTCh6KSxQLnNldEF0dHJpYnV0ZSgiZG93bmxvYWQiLHQpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoUCksUC5jbGljaygpLFVSTC5yZXZva2VPYmplY3RVUkwoUC5ocmVmKSxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKFApfSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGouc3RvcCgpfX0sZyl9KSksSy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gWihnKXt3aW5kb3cubG9jYXRpb24uaHJlZj0iL2FwaS9jb21tb24vZG93bmxvYWQ/ZmlsZU5hbWU9Ii5jb25jYXQoZW5jb2RlVVJJKGcpLCImZGVsZXRlPSIsITApfX0sMzE5ODE6ZnVuY3Rpb24ob2UsUyxlKXtlLmQoUyx7QzI6ZnVuY3Rpb24oKXtyZXR1cm4gYn0sbHQ6ZnVuY3Rpb24oKXtyZXR1cm4gT319KTt2YXIgTj1lKDg3NzM1KTtmdW5jdGlvbiBiKHgsVCxFLGMsSCxDKXt2YXIgbz17aWQ6VHx8ImlkIixuYW1lOkV8fCJuYW1lIixwYXJlbnRJZDpjfHwicGFyZW50SWQiLHBhcmVudE5hbWU6SHx8InBhcmVudE5hbWUiLGNoaWxkcmVuTGlzdDpDfHwiY2hpbGRyZW4ifSxLPVtdLFo9W10sZz1bXTt4LmZvckVhY2goZnVuY3Rpb24obCl7dmFyIHQ9bCx5PXRbby5wYXJlbnRJZF07S1t5XXx8KEtbeV09W10pLHQua2V5PXRbby5pZF0sdC50aXRsZT10W28ubmFtZV0sdC52YWx1ZT10W28uaWRdLHRbby5jaGlsZHJlbkxpc3RdPW51bGwsWlt0W28uaWRdXT10LEtbeV0ucHVzaCh0KX0pLHguZm9yRWFjaChmdW5jdGlvbihsKXt2YXIgdD1sLHk9dFtvLnBhcmVudElkXTtaW3ldfHwodFtvLnBhcmVudE5hbWVdPSIiLGcucHVzaCh0KSl9KTtmdW5jdGlvbiBEKGwpe3ZhciB0PWw7S1t0W28uaWRdXSYmKHRbby5jaGlsZHJlbkxpc3RdfHwodFtvLmNoaWxkcmVuTGlzdF09W10pLHRbby5jaGlsZHJlbkxpc3RdPUtbdFtvLmlkXV0pLHRbby5jaGlsZHJlbkxpc3RdJiZ0W28uY2hpbGRyZW5MaXN0XS5mb3JFYWNoKGZ1bmN0aW9uKHkpe3ZhciBqPXk7altvLnBhcmVudE5hbWVdPXRbby5uYW1lXSxEKGopfSl9cmV0dXJuIGcuZm9yRWFjaChmdW5jdGlvbihsKXtEKGwpfSksZ312YXIgaT1mdW5jdGlvbigpe3JldHVybiBwYXJzZSh3aW5kb3cubG9jYXRpb24uaHJlZi5zcGxpdCgiPyIpWzFdKX07ZnVuY3Rpb24gTyh4KXt2YXIgVD14Lm1hcChmdW5jdGlvbihFKXt2YXIgYz17aWQ6RS5pZCx0aXRsZTpFLmxhYmVsLGtleToiIi5jb25jYXQoRS5pZCksdmFsdWU6RS5pZH07cmV0dXJuIEUuY2hpbGRyZW4mJihjLmNoaWxkcmVuPU8oRS5jaGlsZHJlbikpLGN9KTtyZXR1cm4gVH19LDIwODYzOmZ1bmN0aW9uKG9lLFMsZSl7ZS5kKFMse1o6ZnVuY3Rpb24oKXtyZXR1cm4gTX19KTt2YXIgTj1lKDcwNTkzKSxiPWUoNzQ5MDIpLGk9ZSg2NzI5NCksTz1lKDI2OTExKSx4PWUoOTU1OTEpLFQ9ZSgzMjMxOSksRT1lKDkzOTY3KSxjPWUubihFKSxIPWUoMTAyMjUpLEM9ZSgxMDg5KSxvPWUoNTMxMjQpLEs9ZSgyOTc1MSksWj1lKDMzNjAzKSxnPWUoMjk2OTEpLEQ9ZSg0MDU2MSk7Y29uc3QgbD00O2Z1bmN0aW9uIHQocyl7Y29uc3R7ZHJvcFBvc2l0aW9uOnAsZHJvcExldmVsT2Zmc2V0OmgscHJlZml4Q2xzOmEsaW5kZW50Ol8sZGlyZWN0aW9uOnI9Imx0ciJ9PXMsZj1yPT09Imx0ciI/ImxlZnQiOiJyaWdodCIsdj1yPT09Imx0ciI/InJpZ2h0IjoibGVmdCIsUj17W2ZdOi1oKl8rbCxbdl06MH07c3dpdGNoKHApe2Nhc2UtMTpSLnRvcD0tMzticmVhaztjYXNlIDE6Ui5ib3R0b209LTM7YnJlYWs7ZGVmYXVsdDpSLmJvdHRvbT0tMyxSW2ZdPV8rbDticmVha31yZXR1cm4gaS5jcmVhdGVFbGVtZW50KCJkaXYiLHtzdHlsZTpSLGNsYXNzTmFtZTpgJHthfS1kcm9wLWluZGljYXRvcmB9KX12YXIgeT10LGo9ZSg2MTYzOSksUD1pLmZvcndhcmRSZWYoKHMscCk9Pnt2YXIgaDtjb25zdHtnZXRQcmVmaXhDbHM6YSxkaXJlY3Rpb246Xyx2aXJ0dWFsOnIsdHJlZTpmfT1pLnVzZUNvbnRleHQoby5FXykse3ByZWZpeENsczp2LGNsYXNzTmFtZTpSLHNob3dJY29uOlU9ITEsc2hvd0xpbmU6dGUsc3dpdGNoZXJJY29uOmxlLHN3aXRjaGVyTG9hZGluZ0ljb246ZGUsYmxvY2tOb2RlOmNlPSExLGNoaWxkcmVuOnBlLGNoZWNrYWJsZTpuZT0hMSxzZWxlY3RhYmxlOnJlPSEwLGRyYWdnYWJsZTpKLG1vdGlvbjpzZSxzdHlsZTpmZX09cyx3PWEoInRyZWUiLHYpLGhlPWEoKSxhZT1zZSE9bnVsbD9zZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sKDAsWi5aKShoZSkpLHttb3Rpb25BcHBlYXI6ITF9KSxiZT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30scykse2NoZWNrYWJsZTpuZSxzZWxlY3RhYmxlOnJlLHNob3dJY29uOlUsbW90aW9uOmFlLGJsb2NrTm9kZTpjZSxzaG93TGluZTohIXRlLGRyb3BJbmRpY2F0b3JSZW5kZXI6eX0pLFtGLEksR109KDAsRC5aUCkodyksWyxxXT0oMCxnLlpQKSgpLGVlPXEucGFkZGluZ1hTLzIrKCgoaD1xLlRyZWUpPT09bnVsbHx8aD09PXZvaWQgMD92b2lkIDA6aC50aXRsZUhlaWdodCl8fHEuY29udHJvbEhlaWdodFNNKSxFZT1pLnVzZU1lbW8oKCk9PntpZighSilyZXR1cm4hMTtsZXQgQT17fTtzd2l0Y2godHlwZW9mIEope2Nhc2UiZnVuY3Rpb24iOkEubm9kZURyYWdnYWJsZT1KO2JyZWFrO2Nhc2Uib2JqZWN0IjpBPU9iamVjdC5hc3NpZ24oe30sSik7YnJlYWs7ZGVmYXVsdDpicmVha31yZXR1cm4gQS5pY29uIT09ITEmJihBLmljb249QS5pY29ufHxpLmNyZWF0ZUVsZW1lbnQoSy5aLG51bGwpKSxBfSxbSl0pLFc9QT0+aS5jcmVhdGVFbGVtZW50KGouWix7cHJlZml4Q2xzOncsc3dpdGNoZXJJY29uOmxlLHN3aXRjaGVyTG9hZGluZ0ljb246ZGUsdHJlZU5vZGVQcm9wczpBLHNob3dMaW5lOnRlfSk7cmV0dXJuIEYoaS5jcmVhdGVFbGVtZW50KE4uWlAsT2JqZWN0LmFzc2lnbih7aXRlbUhlaWdodDplZSxyZWY6cCx2aXJ0dWFsOnJ9LGJlLHtzdHlsZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZj09bnVsbD92b2lkIDA6Zi5zdHlsZSksZmUpLHByZWZpeENsczp3LGNsYXNzTmFtZTpjKCkoe1tgJHt3fS1pY29uLWhpZGVgXTohVSxbYCR7d30tYmxvY2stbm9kZWBdOmNlLFtgJHt3fS11bnNlbGVjdGFibGVgXTohcmUsW2Ake3d9LXJ0bGBdOl89PT0icnRsIn0sZj09bnVsbD92b2lkIDA6Zi5jbGFzc05hbWUsUixJLEcpLGRpcmVjdGlvbjpfLGNoZWNrYWJsZTpuZSYmaS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmAke3d9LWNoZWNrYm94LWlubmVyYH0pLHNlbGVjdGFibGU6cmUsc3dpdGNoZXJJY29uOlcsZHJhZ2dhYmxlOkVlfSkscGUpKX0pO2NvbnN0IHo9MCxYPTEsWT0yO2Z1bmN0aW9uIFEocyxwLGgpe2NvbnN0e2tleTphLGNoaWxkcmVuOl99PWg7ZnVuY3Rpb24gcihmKXtjb25zdCB2PWZbYV0sUj1mW19dO3AodixmKSE9PSExJiZRKFJ8fFtdLHAsaCl9cy5mb3JFYWNoKHIpfWZ1bmN0aW9uIHVlKHMpe2xldHt0cmVlRGF0YTpwLGV4cGFuZGVkS2V5czpoLHN0YXJ0S2V5OmEsZW5kS2V5Ol8sZmllbGROYW1lczpyfT1zO2NvbnN0IGY9W107bGV0IHY9ejtpZihhJiZhPT09XylyZXR1cm5bYV07aWYoIWF8fCFfKXJldHVybltdO2Z1bmN0aW9uIFIoVSl7cmV0dXJuIFU9PT1hfHxVPT09X31yZXR1cm4gUShwLFU9PntpZih2PT09WSlyZXR1cm4hMTtpZihSKFUpKXtpZihmLnB1c2goVSksdj09PXopdj1YO2Vsc2UgaWYodj09PVgpcmV0dXJuIHY9WSwhMX1lbHNlIHY9PT1YJiZmLnB1c2goVSk7cmV0dXJuIGguaW5jbHVkZXMoVSl9LCgwLEMudyQpKHIpKSxmfWZ1bmN0aW9uIFYocyxwLGgpe2NvbnN0IGE9KDAsYi5aKShwKSxfPVtdO3JldHVybiBRKHMsKHIsZik9Pntjb25zdCB2PWEuaW5kZXhPZihyKTtyZXR1cm4gdiE9PS0xJiYoXy5wdXNoKGYpLGEuc3BsaWNlKHYsMSkpLCEhYS5sZW5ndGh9LCgwLEMudyQpKGgpKSxffXZhciBrPWZ1bmN0aW9uKHMscCl7dmFyIGg9e307Zm9yKHZhciBhIGluIHMpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsYSkmJnAuaW5kZXhPZihhKTwwJiYoaFthXT1zW2FdKTtpZihzIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIF89MCxhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7XzxhLmxlbmd0aDtfKyspcC5pbmRleE9mKGFbX10pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLGFbX10pJiYoaFthW19dXT1zW2FbX11dKTtyZXR1cm4gaH07ZnVuY3Rpb24gbihzKXtjb25zdHtpc0xlYWY6cCxleHBhbmRlZDpofT1zO3JldHVybiBwP2kuY3JlYXRlRWxlbWVudChPLlosbnVsbCk6aD9pLmNyZWF0ZUVsZW1lbnQoeC5aLG51bGwpOmkuY3JlYXRlRWxlbWVudChULlosbnVsbCl9ZnVuY3Rpb24gdShzKXtsZXR7dHJlZURhdGE6cCxjaGlsZHJlbjpofT1zO3JldHVybiBwfHwoMCxDLnpuKShoKX1jb25zdCBtPShzLHApPT57dmFye2RlZmF1bHRFeHBhbmRBbGw6aCxkZWZhdWx0RXhwYW5kUGFyZW50OmEsZGVmYXVsdEV4cGFuZGVkS2V5czpffT1zLHI9ayhzLFsiZGVmYXVsdEV4cGFuZEFsbCIsImRlZmF1bHRFeHBhbmRQYXJlbnQiLCJkZWZhdWx0RXhwYW5kZWRLZXlzIl0pO2NvbnN0IGY9aS51c2VSZWYobnVsbCksdj1pLnVzZVJlZihudWxsKSxSPSgpPT57Y29uc3R7a2V5RW50aXRpZXM6Rn09KDAsQy5JOCkodShyKSk7bGV0IEk7cmV0dXJuIGg/ST1PYmplY3Qua2V5cyhGKTphP0k9KDAsSC5yNykoci5leHBhbmRlZEtleXN8fF98fFtdLEYpOkk9ci5leHBhbmRlZEtleXN8fF98fFtdLEl9LFtVLHRlXT1pLnVzZVN0YXRlKHIuc2VsZWN0ZWRLZXlzfHxyLmRlZmF1bHRTZWxlY3RlZEtleXN8fFtdKSxbbGUsZGVdPWkudXNlU3RhdGUoKCk9PlIoKSk7aS51c2VFZmZlY3QoKCk9Pnsic2VsZWN0ZWRLZXlzImluIHImJnRlKHIuc2VsZWN0ZWRLZXlzKX0sW3Iuc2VsZWN0ZWRLZXlzXSksaS51c2VFZmZlY3QoKCk9PnsiZXhwYW5kZWRLZXlzImluIHImJmRlKHIuZXhwYW5kZWRLZXlzKX0sW3IuZXhwYW5kZWRLZXlzXSk7Y29uc3QgY2U9KEYsSSk9Pnt2YXIgRztyZXR1cm4iZXhwYW5kZWRLZXlzImluIHJ8fGRlKEYpLChHPXIub25FeHBhbmQpPT09bnVsbHx8Rz09PXZvaWQgMD92b2lkIDA6Ry5jYWxsKHIsRixJKX0scGU9KEYsSSk9Pnt2YXIgRztjb25zdHttdWx0aXBsZTpxLGZpZWxkTmFtZXM6ZWV9PXIse25vZGU6RWUsbmF0aXZlRXZlbnQ6V309SSx7a2V5OkE9IiJ9PUVlLF9lPXUociksbWU9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LEkpLHtzZWxlY3RlZDohMH0pLGdlPShXPT1udWxsP3ZvaWQgMDpXLmN0cmxLZXkpfHwoVz09bnVsbD92b2lkIDA6Vy5tZXRhS2V5KSx2ZT1XPT1udWxsP3ZvaWQgMDpXLnNoaWZ0S2V5O2xldCBCO3EmJmdlPyhCPUYsZi5jdXJyZW50PUEsdi5jdXJyZW50PUIsbWUuc2VsZWN0ZWROb2Rlcz1WKF9lLEIsZWUpKTpxJiZ2ZT8oQj1BcnJheS5mcm9tKG5ldyBTZXQoW10uY29uY2F0KCgwLGIuWikodi5jdXJyZW50fHxbXSksKDAsYi5aKSh1ZSh7dHJlZURhdGE6X2UsZXhwYW5kZWRLZXlzOmxlLHN0YXJ0S2V5OkEsZW5kS2V5OmYuY3VycmVudCxmaWVsZE5hbWVzOmVlfSkpKSkpLG1lLnNlbGVjdGVkTm9kZXM9VihfZSxCLGVlKSk6KEI9W0FdLGYuY3VycmVudD1BLHYuY3VycmVudD1CLG1lLnNlbGVjdGVkTm9kZXM9VihfZSxCLGVlKSksKEc9ci5vblNlbGVjdCk9PT1udWxsfHxHPT09dm9pZCAwfHxHLmNhbGwocixCLG1lKSwic2VsZWN0ZWRLZXlzImluIHJ8fHRlKEIpfSx7Z2V0UHJlZml4Q2xzOm5lLGRpcmVjdGlvbjpyZX09aS51c2VDb250ZXh0KG8uRV8pLHtwcmVmaXhDbHM6SixjbGFzc05hbWU6c2Usc2hvd0ljb246ZmU9ITAsZXhwYW5kQWN0aW9uOnc9ImNsaWNrIn09cixoZT1rKHIsWyJwcmVmaXhDbHMiLCJjbGFzc05hbWUiLCJzaG93SWNvbiIsImV4cGFuZEFjdGlvbiJdKSxhZT1uZSgidHJlZSIsSiksYmU9YygpKGAke2FlfS1kaXJlY3RvcnlgLHtbYCR7YWV9LWRpcmVjdG9yeS1ydGxgXTpyZT09PSJydGwifSxzZSk7cmV0dXJuIGkuY3JlYXRlRWxlbWVudChQLE9iamVjdC5hc3NpZ24oe2ljb246bixyZWY6cCxibG9ja05vZGU6ITB9LGhlLHtzaG93SWNvbjpmZSxleHBhbmRBY3Rpb246dyxwcmVmaXhDbHM6YWUsY2xhc3NOYW1lOmJlLGV4cGFuZGVkS2V5czpsZSxzZWxlY3RlZEtleXM6VSxvblNlbGVjdDpwZSxvbkV4cGFuZDpjZX0pKX07dmFyIGQ9aS5mb3J3YXJkUmVmKG0pO2NvbnN0IGllPVA7aWUuRGlyZWN0b3J5VHJlZT1kLGllLlRyZWVOb2RlPU4uT0Y7dmFyIE09aWV9fV0pOwpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy82MTEwLjY1YjUzNWM0LmFzeW5jLmpzIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy82MTEwLjY1YjUzNWM0LmFzeW5jLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyYmNkYzkKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzYxMTAuNjViNTM1YzQuYXN5bmMuanMKQEAgLTAsMCArMSw0IEBACisidXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W10pLnB1c2goW1s2MTEwXSx7Nzc0MDQ6ZnVuY3Rpb24obGUseixsKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoeiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksei5kZWZhdWx0PXZvaWQgMDtjb25zdCBvPVUobCg4NTMxNykpO2Z1bmN0aW9uIFUoSyl7cmV0dXJuIEsmJksuX19lc01vZHVsZT9LOntkZWZhdWx0Okt9fWNvbnN0IGQ9bzt6LmRlZmF1bHQ9ZCxsZS5leHBvcnRzPWR9LDg2MDU2OmZ1bmN0aW9uKGxlLHosbCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHosIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHouZGVmYXVsdD12b2lkIDA7Y29uc3Qgbz1VKGwoOTE3MjQpKTtmdW5jdGlvbiBVKEspe3JldHVybiBLJiZLLl9fZXNNb2R1bGU/Szp7ZGVmYXVsdDpLfX1jb25zdCBkPW87ei5kZWZhdWx0PWQsbGUuZXhwb3J0cz1kfSwyMjM2OmZ1bmN0aW9uKGxlLHosbCl7bC5kKHose1M6ZnVuY3Rpb24oKXtyZXR1cm4gT2V9fSk7dmFyIG89bCgxNDEzKSxVPWwoNDk0MiksZD1sKDkxKSxLPWwoMTIwNDQpLGRlPWwoMjE1MzIpLG1lPWwoOTM5NjcpLHllPWwubihtZSksY2U9bCg5ODQyMyksaT1sKDY3Mjk0KSxCZT1sKDczOTM1KSxBPWwoNzY1MDkpLHJlPWwoNjQ4NDcpLFJlPWZ1bmN0aW9uKE4pe3JldHVybigwLFUuWikoe30sTi5jb21wb25lbnRDbHMse3Bvc2l0aW9uOiJmaXhlZCIsaW5zZXRJbmxpbmVFbmQ6MCxib3R0b206MCx6SW5kZXg6OTksZGlzcGxheToiZmxleCIsYWxpZ25JdGVtczoiY2VudGVyIix3aWR0aDoiMTAwJSIscGFkZGluZ0lubGluZToyNCxwYWRkaW5nQmxvY2s6MCxib3hTaXppbmc6ImJvcmRlci1ib3giLGxpbmVIZWlnaHQ6IjY0cHgiLGJhY2tncm91bmRDb2xvcjooMCxyZS51SykoTi5jb2xvckJnRWxldmF0ZWQsLjYpLGJvcmRlckJsb2NrU3RhcnQ6IjFweCBzb2xpZCAiLmNvbmNhdChOLmNvbG9yU3BsaXQpLCItd2Via2l0LWJhY2tkcm9wLWZpbHRlciI6ImJsdXIoOHB4KSIsYmFja2Ryb3BGaWx0ZXI6ImJsdXIoOHB4KSIsY29sb3I6Ti5jb2xvclRleHQsdHJhbnNpdGlvbjoiYWxsIDAuMnMgZWFzZSAwcyIsIiYtbGVmdCI6e2ZsZXg6MSxjb2xvcjpOLmNvbG9yVGV4dH0sIiYtcmlnaHQiOntjb2xvcjpOLmNvbG9yVGV4dCwiPiAqIjp7bWFyZ2luSW5saW5lRW5kOjgsIiY6bGFzdC1jaGlsZCI6e21hcmdpbkJsb2NrOjAsbWFyZ2luSW5saW5lOjB9fX19KX07ZnVuY3Rpb24gcGUoc2Upe3JldHVybigwLHJlLlhqKSgiUHJvTGF5b3V0Rm9vdGVyVG9vbGJhciIsZnVuY3Rpb24oTil7dmFyIF89KDAsby5aKSgoMCxvLlopKHt9LE4pLHt9LHtjb21wb25lbnRDbHM6Ii4iLmNvbmNhdChzZSl9KTtyZXR1cm5bUmUoXyldfSl9ZnVuY3Rpb24geGUoc2UsTil7dmFyIF89Ti5zdHlsaXNoO3JldHVybigwLHJlLlhqKSgiUHJvTGF5b3V0Rm9vdGVyVG9vbGJhclN0eWxpc2giLGZ1bmN0aW9uKGFlKXt2YXIgdWU9KDAsby5aKSgoMCxvLlopKHt9LGFlKSx7fSx7Y29tcG9uZW50Q2xzOiIuIi5jb25jYXQoc2UpfSk7cmV0dXJuIF8/WygwLFUuWikoe30sIiIuY29uY2F0KHVlLmNvbXBvbmVudENscyksXz09bnVsbD92b2lkIDA6Xyh1ZSkpXTpbXX0pfXZhciB0ZT1sKDg1ODkzKSxnZT1bImNoaWxkcmVuIiwiY2xhc3NOYW1lIiwiZXh0cmEiLCJwb3J0YWxEb20iLCJzdHlsZSIsInJlbmRlckNvbnRlbnQiXSxPZT1mdW5jdGlvbihOKXt2YXIgXz1OLmNoaWxkcmVuLGFlPU4uY2xhc3NOYW1lLHVlPU4uZXh0cmEsYmU9Ti5wb3J0YWxEb20sTGU9YmU9PT12b2lkIDA/ITA6YmUsRWU9Ti5zdHlsZSxOZT1OLnJlbmRlckNvbnRlbnQsVGU9KDAsZC5aKShOLGdlKSxTZT0oMCxpLnVzZUNvbnRleHQpKGRlLlpQLkNvbmZpZ0NvbnRleHQpLGtlPVNlLmdldFByZWZpeENscyxQZT1TZS5nZXRUYXJnZXRDb250YWluZXIsSGU9Ti5wcmVmaXhDbHN8fGtlKCJwcm8iKSxxPSIiLmNvbmNhdChIZSwiLWZvb3Rlci1iYXIiKSxHPXBlKHEpLFdlPUcud3JhcFNTUixaZT1HLmhhc2hJZCxjPSgwLGkudXNlQ29udGV4dCkoQS5YKSx3ZT0oMCxpLnVzZU1lbW8pKGZ1bmN0aW9uKCl7dmFyIG9lPWMuaGFzU2lkZXJNZW51LEFlPWMuaXNNb2JpbGUsRGU9Yy5zaWRlcldpZHRoO2lmKG9lKXJldHVybiBEZT9BZT8iMTAwJSI6ImNhbGMoMTAwJSAtICIuY29uY2F0KERlLCJweCkiKToiMTAwJSJ9LFtjLmNvbGxhcHNlZCxjLmhhc1NpZGVyTWVudSxjLmlzTW9iaWxlLGMuc2lkZXJXaWR0aF0pLHZlPSgwLGkudXNlTWVtbykoZnVuY3Rpb24oKXtyZXR1cm4gdHlwZW9mIHdpbmRvdz09InVuZGVmaW5lZCJ8fHR5cGVvZiBkb2N1bWVudD09InVuZGVmaW5lZCI/bnVsbDooUGU9PW51bGw/dm9pZCAwOlBlKCkpfHxkb2N1bWVudC5ib2R5fSxbXSksWGU9eGUoIiIuY29uY2F0KHEsIi4iKS5jb25jYXQocSwiLXN0eWxpc2giKSx7c3R5bGlzaDpOLnN0eWxpc2h9KSwkZT0oMCx0ZS5qc3hzKSh0ZS5GcmFnbWVudCx7Y2hpbGRyZW46WygwLHRlLmpzeCkoImRpdiIse2NsYXNzTmFtZToiIi5jb25jYXQocSwiLWxlZnQgIikuY29uY2F0KFplKS50cmltKCksY2hpbGRyZW46dWV9KSwoMCx0ZS5qc3gpKCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KHEsIi1yaWdodCAiKS5jb25jYXQoWmUpLnRyaW0oKSxjaGlsZHJlbjpffSldfSk7KDAsaS51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7cmV0dXJuIWN8fCEoYyE9bnVsbCYmYy5zZXRIYXNGb290ZXJUb29sYmFyKT9mdW5jdGlvbigpe306KGM9PW51bGx8fGMuc2V0SGFzRm9vdGVyVG9vbGJhcighMCksZnVuY3Rpb24oKXt2YXIgb2U7Yz09bnVsbHx8KG9lPWMuc2V0SGFzRm9vdGVyVG9vbGJhcik9PT1udWxsfHxvZT09PXZvaWQgMHx8b2UuY2FsbChjLCExKX0pfSxbXSk7dmFyIE1lPSgwLHRlLmpzeCkoImRpdiIsKDAsby5aKSgoMCxvLlopKHtjbGFzc05hbWU6eWUoKShhZSxaZSxxLCgwLFUuWikoe30sIiIuY29uY2F0KHEsIi1zdHlsaXNoIiksISFOLnN0eWxpc2gpKSxzdHlsZTooMCxvLlopKHt3aWR0aDp3ZX0sRWUpfSwoMCxjZS5aKShUZSxbInByZWZpeENscyJdKSkse30se2NoaWxkcmVuOk5lP05lKCgwLG8uWikoKDAsby5aKSgoMCxvLlopKHt9LE4pLGMpLHt9LHtsZWZ0V2lkdGg6d2V9KSwkZSk6JGV9KSksVWU9ISgwLEsuaikoKXx8IUxlfHwhdmU/TWU6KDAsQmUuY3JlYXRlUG9ydGFsKShNZSx2ZSxxKTtyZXR1cm4gWGUud3JhcFNTUihXZSgoMCx0ZS5qc3gpKGkuRnJhZ21lbnQse2NoaWxkcmVuOlVlfSxxKSkpfX0sNjExMDpmdW5jdGlvbihsZSx6LGwpe2wuZCh6LHtfejpmdW5jdGlvbigpe3JldHVybiB0bn19KTt2YXIgbz1sKDQ5NDIpLFU9bCg5MSksZD1sKDE0MTMpLEs9bCg3MTAwMiksZGU9bCgxMDkxNSksbWU9bCg5MjM5OCkseWU9bCg2NzE1OSksY2U9bCgyMTUzMiksaT1sKDY3Mjk0KSxCZT1sKDkzOTY3KSxBPWwubihCZSkscmU9bCg0ODU1NSksUmU9bCg3NDkwMikscGU9bCg3NTE2NCk7ZnVuY3Rpb24geGUodCl7bGV0IGU7Y29uc3Qgbj1hPT4oKT0+e2U9bnVsbCx0LmFwcGx5KHZvaWQgMCwoMCxSZS5aKShhKSl9LHI9ZnVuY3Rpb24oKXtpZihlPT1udWxsKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aCx1PW5ldyBBcnJheShhKSxzPTA7czxhO3MrKyl1W3NdPWFyZ3VtZW50c1tzXTtlPSgwLHBlLlopKG4odSkpfX07cmV0dXJuIHIuY2FuY2VsPSgpPT57cGUuWi5jYW5jZWwoZSksZT1udWxsfSxyfXZhciB0ZT14ZSxnZT1sKDUzMTI0KSxPZT1sKDgzNTU5KTtjb25zdCBzZT10PT57Y29uc3R7Y29tcG9uZW50Q2xzOmV9PXQ7cmV0dXJue1tlXTp7cG9zaXRpb246ImZpeGVkIix6SW5kZXg6dC56SW5kZXhQb3B1cH19fSxOPXQ9Pih7ekluZGV4UG9wdXA6dC56SW5kZXhCYXNlKzEwfSk7dmFyIF89KDAsT2UuSSQpKCJBZmZpeCIsc2UsTik7ZnVuY3Rpb24gYWUodCl7cmV0dXJuIHQhPT13aW5kb3c/dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTp7dG9wOjAsYm90dG9tOndpbmRvdy5pbm5lckhlaWdodH19ZnVuY3Rpb24gdWUodCxlLG4pe2lmKG4hPT12b2lkIDAmJk1hdGgucm91bmQoZS50b3ApPk1hdGgucm91bmQodC50b3ApLW4pcmV0dXJuIG4rZS50b3B9ZnVuY3Rpb24gYmUodCxlLG4pe2lmKG4hPT12b2lkIDAmJk1hdGgucm91bmQoZS5ib3R0b20pPE1hdGgucm91bmQodC5ib3R0b20pK24pe2NvbnN0IHI9d2luZG93LmlubmVySGVpZ2h0LWUuYm90dG9tO3JldHVybiBuK3J9fXZhciBMZT1mdW5jdGlvbih0LGUpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiZlLmluZGV4T2Yocik8MCYmKG5bcl09dFtyXSk7aWYodCE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBhPTAscj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2E8ci5sZW5ndGg7YSsrKWUuaW5kZXhPZihyW2FdKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodCxyW2FdKSYmKG5bclthXV09dFtyW2FdXSk7cmV0dXJuIG59O2NvbnN0IEVlPVsicmVzaXplIiwic2Nyb2xsIiwidG91Y2hzdGFydCIsInRvdWNobW92ZSIsInRvdWNoZW5kIiwicGFnZXNob3ciLCJsb2FkIl07ZnVuY3Rpb24gTmUoKXtyZXR1cm4gdHlwZW9mIHdpbmRvdyE9InVuZGVmaW5lZCI/d2luZG93Om51bGx9Y29uc3QgVGU9MCxTZT0xO3ZhciBQZT1pLmZvcndhcmRSZWYoKHQsZSk9Pnt2YXIgbjtjb25zdHtzdHlsZTpyLG9mZnNldFRvcDphLG9mZnNldEJvdHRvbTp1LHByZWZpeENsczpzLGNsYXNzTmFtZTp2LHJvb3RDbGFzc05hbWU6UCxjaGlsZHJlbjpoLHRhcmdldDpDLG9uQ2hhbmdlOm0sb25UZXN0VXBkYXRlUG9zaXRpb246Wn09dCx4PUxlKHQsWyJzdHlsZSIsIm9mZnNldFRvcCIsIm9mZnNldEJvdHRvbSIsInByZWZpeENscyIsImNsYXNzTmFtZSIsInJvb3RDbGFzc05hbWUiLCJjaGlsZHJlbiIsInRhcmdldCIsIm9uQ2hhbmdlIiwib25UZXN0VXBkYXRlUG9zaXRpb24iXSkse2dldFByZWZpeENsczp5LGdldFRhcmdldENvbnRhaW5lcjpmfT1pLnVzZUNvbnRleHQoZ2UuRV8pLHA9eSgiYWZmaXgiLHMpLFtnLEhdPWkudXNlU3RhdGUoITEpLFtqLEldPWkudXNlU3RhdGUoKSxbRixiXT1pLnVzZVN0YXRlKCksQj1pLnVzZVJlZihUZSksJD1pLnVzZVJlZihudWxsKSx3PWkudXNlUmVmKG51bGwpLFI9aS51c2VSZWYobnVsbCksTD1pLnVzZVJlZihudWxsKSxRPWkudXNlUmVmKG51bGwpLE89KG49QyE9bnVsbD9DOmYpIT09bnVsbCYmbiE9PXZvaWQgMD9uOk5lLFY9dT09PXZvaWQgMCYmYT09PXZvaWQgMD8wOmEsSj0oKT0+e2lmKEIuY3VycmVudCE9PVNlfHwhTC5jdXJyZW50fHwhUi5jdXJyZW50fHwhTylyZXR1cm47Y29uc3QgTT1PKCk7aWYoTSl7Y29uc3QgVD17c3RhdHVzOlRlfSxTPWFlKFIuY3VycmVudCk7aWYoUy50b3A9PT0wJiZTLmxlZnQ9PT0wJiZTLndpZHRoPT09MCYmUy5oZWlnaHQ9PT0wKXJldHVybjtjb25zdCBYPWFlKE0pLGs9dWUoUyxYLFYpLEZlPWJlKFMsWCx1KTtrIT09dm9pZCAwPyhULmFmZml4U3R5bGU9e3Bvc2l0aW9uOiJmaXhlZCIsdG9wOmssd2lkdGg6Uy53aWR0aCxoZWlnaHQ6Uy5oZWlnaHR9LFQucGxhY2Vob2xkZXJTdHlsZT17d2lkdGg6Uy53aWR0aCxoZWlnaHQ6Uy5oZWlnaHR9KTpGZSE9PXZvaWQgMCYmKFQuYWZmaXhTdHlsZT17cG9zaXRpb246ImZpeGVkIixib3R0b206RmUsd2lkdGg6Uy53aWR0aCxoZWlnaHQ6Uy5oZWlnaHR9LFQucGxhY2Vob2xkZXJTdHlsZT17d2lkdGg6Uy53aWR0aCxoZWlnaHQ6Uy5oZWlnaHR9KSxULmxhc3RBZmZpeD0hIVQuYWZmaXhTdHlsZSxnIT09VC5sYXN0QWZmaXgmJihtPT1udWxsfHxtKFQubGFzdEFmZml4KSksQi5jdXJyZW50PVQuc3RhdHVzLEkoVC5hZmZpeFN0eWxlKSxiKFQucGxhY2Vob2xkZXJTdHlsZSksSChULmxhc3RBZmZpeCl9fSxZPSgpPT57Qi5jdXJyZW50PVNlLEooKX0sVz10ZSgoKT0+e1koKX0pLEU9dGUoKCk9PntpZihPJiZqKXtjb25zdCBNPU8oKTtpZihNJiZSLmN1cnJlbnQpe2NvbnN0IFQ9YWUoTSksUz1hZShSLmN1cnJlbnQpLFg9dWUoUyxULFYpLGs9YmUoUyxULHUpO2lmKFghPT12b2lkIDAmJmoudG9wPT09WHx8ayE9PXZvaWQgMCYmai5ib3R0b209PT1rKXJldHVybn19WSgpfSksRD0oKT0+e2NvbnN0IE09Tz09bnVsbD92b2lkIDA6TygpO00mJihFZS5mb3JFYWNoKFQ9Pnt2YXIgUzt3LmN1cnJlbnQmJigoUz0kLmN1cnJlbnQpPT09bnVsbHx8Uz09PXZvaWQgMHx8Uy5yZW1vdmVFdmVudExpc3RlbmVyKFQsdy5jdXJyZW50KSksTT09bnVsbHx8TS5hZGRFdmVudExpc3RlbmVyKFQsRSl9KSwkLmN1cnJlbnQ9TSx3LmN1cnJlbnQ9RSl9LG5lPSgpPT57US5jdXJyZW50JiYoY2xlYXJUaW1lb3V0KFEuY3VycmVudCksUS5jdXJyZW50PW51bGwpO2NvbnN0IE09Tz09bnVsbD92b2lkIDA6TygpO0VlLmZvckVhY2goVD0+e3ZhciBTO009PW51bGx8fE0ucmVtb3ZlRXZlbnRMaXN0ZW5lcihULEUpLHcuY3VycmVudCYmKChTPSQuY3VycmVudCk9PT1udWxsfHxTPT09dm9pZCAwfHxTLnJlbW92ZUV2ZW50TGlzdGVuZXIoVCx3LmN1cnJlbnQpKX0pLFcuY2FuY2VsKCksRS5jYW5jZWwoKX07aS51c2VJbXBlcmF0aXZlSGFuZGxlKGUsKCk9Pih7dXBkYXRlUG9zaXRpb246V30pKSxpLnVzZUVmZmVjdCgoKT0+KFEuY3VycmVudD1zZXRUaW1lb3V0KEQpLCgpPT5uZSgpKSxbXSksaS51c2VFZmZlY3QoKCk9PntEKCl9LFtDLGpdKSxpLnVzZUVmZmVjdCgoKT0+e1coKX0sW0MsYSx1XSk7Y29uc3RbZWUsaGUsZmVdPV8ocCksamU9QSgpKFAsaGUscCxmZSksaWU9QSgpKHtbamVdOmp9KTtyZXR1cm4gZWUoaS5jcmVhdGVFbGVtZW50KHJlLlose29uUmVzaXplOld9LGkuY3JlYXRlRWxlbWVudCgiZGl2IixPYmplY3QuYXNzaWduKHtzdHlsZTpyLGNsYXNzTmFtZTp2LHJlZjpSfSx4KSxqJiZpLmNyZWF0ZUVsZW1lbnQoImRpdiIse3N0eWxlOkYsImFyaWEtaGlkZGVuIjoidHJ1ZSJ9KSxpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTppZSxyZWY6TCxzdHlsZTpqfSxpLmNyZWF0ZUVsZW1lbnQocmUuWix7b25SZXNpemU6V30saCkpKSkpfSksSGU9bCg3NjUwOSkscT1sKDIyMzYpLEc9bCg2NDg0NyksV2U9ZnVuY3Rpb24oZSl7cmV0dXJuKDAsby5aKSh7fSxlLmNvbXBvbmVudENscyx7d2lkdGg6IjEwMCUiLCImLXdpZGUiOnttYXhXaWR0aDoxMTUyLG1hcmdpbjoiMCBhdXRvIn19KX07ZnVuY3Rpb24gWmUodCl7cmV0dXJuKDAsRy5YaikoIlByb0xheW91dEdyaWRDb250ZW50IixmdW5jdGlvbihlKXt2YXIgbj0oMCxkLlopKCgwLGQuWikoe30sZSkse30se2NvbXBvbmVudENsczoiLiIuY29uY2F0KHQpfSk7cmV0dXJuW1dlKG4pXX0pfXZhciBjPWwoODU4OTMpLHdlPWZ1bmN0aW9uKGUpe3ZhciBuPSgwLGkudXNlQ29udGV4dCkoSGUuWCkscj1lLmNoaWxkcmVuLGE9ZS5jb250ZW50V2lkdGgsdT1lLmNsYXNzTmFtZSxzPWUuc3R5bGUsdj0oMCxpLnVzZUNvbnRleHQpKGNlLlpQLkNvbmZpZ0NvbnRleHQpLFA9di5nZXRQcmVmaXhDbHMsaD1lLnByZWZpeENsc3x8UCgicHJvIiksQz1hfHxuLmNvbnRlbnRXaWR0aCxtPSIiLmNvbmNhdChoLCItZ3JpZC1jb250ZW50IiksWj1aZShtKSx4PVoud3JhcFNTUix5PVouaGFzaElkLGY9Qz09PSJGaXhlZCImJm4ubGF5b3V0PT09InRvcCI7cmV0dXJuIHgoKDAsYy5qc3gpKCJkaXYiLHtjbGFzc05hbWU6QSgpKG0seSx1LCgwLG8uWikoe30sIiIuY29uY2F0KG0sIi13aWRlIiksZikpLHN0eWxlOnMsY2hpbGRyZW46KDAsYy5qc3gpKCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KGgsIi1ncmlkLWNvbnRlbnQtY2hpbGRyZW4gIikuY29uY2F0KHkpLnRyaW0oKSxjaGlsZHJlbjpyfSl9KSl9LHZlPWwoOTc2ODUpLFhlPWwoNzc0MDQpLCRlPWwubihYZSksTWU9bCg4NjA1NiksVWU9bC5uKE1lKSxvZT1sKDUwMzQ0KSxBZT1sKDY0MjE3KSxEZT1sKDk2MTU5KSx1dD1sKDgwODgyKSxmdD1sKDc3NDMpO2NvbnN0IEplPXQ9PntsZXR7Y2hpbGRyZW46ZX09dDtjb25zdHtnZXRQcmVmaXhDbHM6bn09aS51c2VDb250ZXh0KGdlLkVfKSxyPW4oImJyZWFkY3J1bWIiKTtyZXR1cm4gaS5jcmVhdGVFbGVtZW50KCJsaSIse2NsYXNzTmFtZTpgJHtyfS1zZXBhcmF0b3JgLCJhcmlhLWhpZGRlbiI6InRydWUifSxlPT09IiI/ZTplfHwiLyIpfTtKZS5fX0FOVF9CUkVBRENSVU1CX1NFUEFSQVRPUj0hMDt2YXIgS2U9SmUsbXQ9ZnVuY3Rpb24odCxlKXt2YXIgbj17fTtmb3IodmFyIHIgaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKSYmZS5pbmRleE9mKHIpPDAmJihuW3JdPXRbcl0pO2lmKHQhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgYT0wLHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTthPHIubGVuZ3RoO2ErKyllLmluZGV4T2YoclthXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHQsclthXSkmJihuW3JbYV1dPXRbclthXV0pO3JldHVybiBufTtmdW5jdGlvbiBndCh0LGUpe2lmKHQudGl0bGU9PT12b2lkIDB8fHQudGl0bGU9PT1udWxsKXJldHVybiBudWxsO2NvbnN0IG49T2JqZWN0LmtleXMoZSkuam9pbigifCIpO3JldHVybiB0eXBlb2YgdC50aXRsZT09Im9iamVjdCI/dC50aXRsZTpTdHJpbmcodC50aXRsZSkucmVwbGFjZShuZXcgUmVnRXhwKGA6KCR7bn0pYCwiZyIpLChyLGEpPT5lW2FdfHxyKX1mdW5jdGlvbiBxZSh0LGUsbixyKXtpZihuPT1udWxsKXJldHVybiBudWxsO2NvbnN0e2NsYXNzTmFtZTphLG9uQ2xpY2s6dX09ZSxzPW10KGUsWyJjbGFzc05hbWUiLCJvbkNsaWNrIl0pLHY9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCgwLEFlLlopKHMse2RhdGE6ITAsYXJpYTohMH0pKSx7b25DbGljazp1fSk7cmV0dXJuIHIhPT12b2lkIDA/aS5jcmVhdGVFbGVtZW50KCJhIixPYmplY3QuYXNzaWduKHt9LHYse2NsYXNzTmFtZTpBKCkoYCR7dH0tbGlua2AsYSksaHJlZjpyfSksbik6aS5jcmVhdGVFbGVtZW50KCJzcGFuIixPYmplY3QuYXNzaWduKHt9LHYse2NsYXNzTmFtZTpBKCkoYCR7dH0tbGlua2AsYSl9KSxuKX1mdW5jdGlvbiB2dCh0LGUpe3JldHVybihyLGEsdSxzLHYpPT57aWYoZSlyZXR1cm4gZShyLGEsdSxzKTtjb25zdCBQPWd0KHIsYSk7cmV0dXJuIHFlKHQscixQLHYpfX12YXIgR2U9ZnVuY3Rpb24odCxlKXt2YXIgbj17fTtmb3IodmFyIHIgaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKSYmZS5pbmRleE9mKHIpPDAmJihuW3JdPXRbcl0pO2lmKHQhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgYT0wLHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTthPHIubGVuZ3RoO2ErKyllLmluZGV4T2YoclthXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHQsclthXSkmJihuW3JbYV1dPXRbclthXV0pO3JldHVybiBufTtjb25zdCBfZT10PT57Y29uc3R7cHJlZml4Q2xzOmUsc2VwYXJhdG9yOm49Ii8iLGNoaWxkcmVuOnIsbWVudTphLG92ZXJsYXk6dSxkcm9wZG93blByb3BzOnMsaHJlZjp2fT10LGg9KEM9PntpZihhfHx1KXtjb25zdCBtPU9iamVjdC5hc3NpZ24oe30scyk7aWYoYSl7Y29uc3QgWj1hfHx7fSx7aXRlbXM6eH09Wix5PUdlKFosWyJpdGVtcyJdKTttLm1lbnU9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHkpLHtpdGVtczp4PT1udWxsP3ZvaWQgMDp4Lm1hcCgoZixwKT0+e3ZhcntrZXk6Zyx0aXRsZTpILGxhYmVsOmoscGF0aDpJfT1mLEY9R2UoZixbImtleSIsInRpdGxlIiwibGFiZWwiLCJwYXRoIl0pO2xldCBiPWohPW51bGw/ajpIO3JldHVybiBJJiYoYj1pLmNyZWF0ZUVsZW1lbnQoImEiLHtocmVmOmAke3Z9JHtJfWB9LGIpKSxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sRikse2tleTpnIT1udWxsP2c6cCxsYWJlbDpifSl9KX0pfWVsc2UgdSYmKG0ub3ZlcmxheT11KTtyZXR1cm4gaS5jcmVhdGVFbGVtZW50KGZ0LlosT2JqZWN0LmFzc2lnbih7cGxhY2VtZW50OiJib3R0b20ifSxtKSxpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6YCR7ZX0tb3ZlcmxheS1saW5rYH0sQyxpLmNyZWF0ZUVsZW1lbnQodXQuWixudWxsKSkpfXJldHVybiBDfSkocik7cmV0dXJuIGghPW51bGw/aS5jcmVhdGVFbGVtZW50KGkuRnJhZ21lbnQsbnVsbCxpLmNyZWF0ZUVsZW1lbnQoImxpIixudWxsLGgpLG4mJmkuY3JlYXRlRWxlbWVudChLZSxudWxsLG4pKTpudWxsfSxldD10PT57Y29uc3R7cHJlZml4Q2xzOmUsY2hpbGRyZW46bixocmVmOnJ9PXQsYT1HZSh0LFsicHJlZml4Q2xzIiwiY2hpbGRyZW4iLCJocmVmIl0pLHtnZXRQcmVmaXhDbHM6dX09aS51c2VDb250ZXh0KGdlLkVfKSxzPXUoImJyZWFkY3J1bWIiLGUpO3JldHVybiBpLmNyZWF0ZUVsZW1lbnQoX2UsT2JqZWN0LmFzc2lnbih7fSxhLHtwcmVmaXhDbHM6c30pLHFlKHMsYSxuLHIpKX07ZXQuX19BTlRfQlJFQURDUlVNQl9JVEVNPSEwO3ZhciBodD1ldCx0dD1sKDExNTY4KSxudD1sKDE0NzQ3KSxDdD1sKDgzMjYyKTtjb25zdCB5dD10PT57Y29uc3R7Y29tcG9uZW50Q2xzOmUsaWNvbkNsczpuLGNhbGM6cn09dDtyZXR1cm57W2VdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwoMCxudC5XZikodCkpLHtjb2xvcjp0Lml0ZW1Db2xvcixmb250U2l6ZTp0LmZvbnRTaXplLFtuXTp7Zm9udFNpemU6dC5pY29uRm9udFNpemV9LG9sOntkaXNwbGF5OiJmbGV4IixmbGV4V3JhcDoid3JhcCIsbWFyZ2luOjAscGFkZGluZzowLGxpc3RTdHlsZToibm9uZSJ9LGE6T2JqZWN0LmFzc2lnbih7Y29sb3I6dC5saW5rQ29sb3IsdHJhbnNpdGlvbjpgY29sb3IgJHt0Lm1vdGlvbkR1cmF0aW9uTWlkfWAscGFkZGluZzpgMCAkeygwLHR0LmJmKSh0LnBhZGRpbmdYWFMpfWAsYm9yZGVyUmFkaXVzOnQuYm9yZGVyUmFkaXVzU00saGVpZ2h0OnQuZm9udEhlaWdodCxkaXNwbGF5OiJpbmxpbmUtYmxvY2siLG1hcmdpbklubGluZTpyKHQubWFyZ2luWFhTKS5tdWwoLTEpLmVxdWFsKCksIiY6aG92ZXIiOntjb2xvcjp0LmxpbmtIb3ZlckNvbG9yLGJhY2tncm91bmRDb2xvcjp0LmNvbG9yQmdUZXh0SG92ZXJ9fSwoMCxudC5ReSkodCkpLCJsaTpsYXN0LWNoaWxkIjp7Y29sb3I6dC5sYXN0SXRlbUNvbG9yfSxbYCR7ZX0tc2VwYXJhdG9yYF06e21hcmdpbklubGluZTp0LnNlcGFyYXRvck1hcmdpbixjb2xvcjp0LnNlcGFyYXRvckNvbG9yfSxbYCR7ZX0tbGlua2BdOntbYAorICAgICAgICAgID4gJHtufSArIHNwYW4sCisgICAgICAgICAgPiAke259ICsgYQorICAgICAgICBgXTp7bWFyZ2luSW5saW5lU3RhcnQ6dC5tYXJnaW5YWFN9fSxbYCR7ZX0tb3ZlcmxheS1saW5rYF06e2JvcmRlclJhZGl1czp0LmJvcmRlclJhZGl1c1NNLGhlaWdodDp0LmZvbnRIZWlnaHQsZGlzcGxheToiaW5saW5lLWJsb2NrIixwYWRkaW5nOmAwICR7KDAsdHQuYmYpKHQucGFkZGluZ1hYUyl9YCxtYXJnaW5JbmxpbmU6cih0Lm1hcmdpblhYUykubXVsKC0xKS5lcXVhbCgpLFtgPiAke259YF06e21hcmdpbklubGluZVN0YXJ0OnQubWFyZ2luWFhTLGZvbnRTaXplOnQuZm9udFNpemVJY29ufSwiJjpob3ZlciI6e2NvbG9yOnQubGlua0hvdmVyQ29sb3IsYmFja2dyb3VuZENvbG9yOnQuY29sb3JCZ1RleHRIb3ZlcixhOntjb2xvcjp0LmxpbmtIb3ZlckNvbG9yfX0sYTp7IiY6aG92ZXIiOntiYWNrZ3JvdW5kQ29sb3I6InRyYW5zcGFyZW50In19fSxbYCYke3QuY29tcG9uZW50Q2xzfS1ydGxgXTp7ZGlyZWN0aW9uOiJydGwifX0pfX0scHQ9dD0+KHtpdGVtQ29sb3I6dC5jb2xvclRleHREZXNjcmlwdGlvbixsYXN0SXRlbUNvbG9yOnQuY29sb3JUZXh0LGljb25Gb250U2l6ZTp0LmZvbnRTaXplLGxpbmtDb2xvcjp0LmNvbG9yVGV4dERlc2NyaXB0aW9uLGxpbmtIb3ZlckNvbG9yOnQuY29sb3JUZXh0LHNlcGFyYXRvckNvbG9yOnQuY29sb3JUZXh0RGVzY3JpcHRpb24sc2VwYXJhdG9yTWFyZ2luOnQubWFyZ2luWFN9KTt2YXIgeHQ9KDAsT2UuSSQpKCJCcmVhZGNydW1iIix0PT57Y29uc3QgZT0oMCxDdC5JWCkodCx7fSk7cmV0dXJuIHl0KGUpfSxwdCkscnQ9ZnVuY3Rpb24odCxlKXt2YXIgbj17fTtmb3IodmFyIHIgaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKSYmZS5pbmRleE9mKHIpPDAmJihuW3JdPXRbcl0pO2lmKHQhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgYT0wLHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTthPHIubGVuZ3RoO2ErKyllLmluZGV4T2YoclthXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHQsclthXSkmJihuW3JbYV1dPXRbclthXV0pO3JldHVybiBufTtmdW5jdGlvbiBidCh0KXtjb25zdHticmVhZGNydW1iTmFtZTplLGNoaWxkcmVuOm59PXQscj1ydCh0LFsiYnJlYWRjcnVtYk5hbWUiLCJjaGlsZHJlbiJdKSxhPU9iamVjdC5hc3NpZ24oe3RpdGxlOmV9LHIpO3JldHVybiBuJiYoYS5tZW51PXtpdGVtczpuLm1hcCh1PT57dmFye2JyZWFkY3J1bWJOYW1lOnN9PXUsdj1ydCh1LFsiYnJlYWRjcnVtYk5hbWUiXSk7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx2KSx7dGl0bGU6c30pfSl9KSxhfWZ1bmN0aW9uIFN0KHQsZSl7cmV0dXJuKDAsaS51c2VNZW1vKSgoKT0+dHx8KGU/ZS5tYXAoYnQpOm51bGwpLFt0LGVdKX12YXIgUHQ9ZnVuY3Rpb24odCxlKXt2YXIgbj17fTtmb3IodmFyIHIgaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKSYmZS5pbmRleE9mKHIpPDAmJihuW3JdPXRbcl0pO2lmKHQhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgYT0wLHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTthPHIubGVuZ3RoO2ErKyllLmluZGV4T2YoclthXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHQsclthXSkmJihuW3JbYV1dPXRbclthXV0pO3JldHVybiBufTtjb25zdCBadD0odCxlKT0+e2lmKGU9PT12b2lkIDApcmV0dXJuIGU7bGV0IG49KGV8fCIiKS5yZXBsYWNlKC9eXC8vLCIiKTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChyPT57bj1uLnJlcGxhY2UoYDoke3J9YCx0W3JdKX0pLG59LFZlPXQ9Pntjb25zdHtwcmVmaXhDbHM6ZSxzZXBhcmF0b3I6bj0iLyIsc3R5bGU6cixjbGFzc05hbWU6YSxyb290Q2xhc3NOYW1lOnUscm91dGVzOnMsaXRlbXM6dixjaGlsZHJlbjpQLGl0ZW1SZW5kZXI6aCxwYXJhbXM6Qz17fX09dCxtPVB0KHQsWyJwcmVmaXhDbHMiLCJzZXBhcmF0b3IiLCJzdHlsZSIsImNsYXNzTmFtZSIsInJvb3RDbGFzc05hbWUiLCJyb3V0ZXMiLCJpdGVtcyIsImNoaWxkcmVuIiwiaXRlbVJlbmRlciIsInBhcmFtcyJdKSx7Z2V0UHJlZml4Q2xzOlosZGlyZWN0aW9uOngsYnJlYWRjcnVtYjp5fT1pLnVzZUNvbnRleHQoZ2UuRV8pO2xldCBmO2NvbnN0IHA9WigiYnJlYWRjcnVtYiIsZSksW2csSCxqXT14dChwKSxJPVN0KHYscyksRj12dChwLGgpO2lmKEkmJkkubGVuZ3RoPjApe2NvbnN0ICQ9W10sdz12fHxzO2Y9SS5tYXAoKFIsTCk9Pntjb25zdHtwYXRoOlEsa2V5Ok8sdHlwZTpWLG1lbnU6SixvdmVybGF5Olksb25DbGljazpXLGNsYXNzTmFtZTpFLHNlcGFyYXRvcjpELGRyb3Bkb3duUHJvcHM6bmV9PVIsZWU9WnQoQyxRKTtlZSE9PXZvaWQgMCYmJC5wdXNoKGVlKTtjb25zdCBoZT1PIT1udWxsP086TDtpZihWPT09InNlcGFyYXRvciIpcmV0dXJuIGkuY3JlYXRlRWxlbWVudChLZSx7a2V5OmhlfSxEKTtjb25zdCBmZT17fSxqZT1MPT09SS5sZW5ndGgtMTtKP2ZlLm1lbnU9SjpZJiYoZmUub3ZlcmxheT1ZKTtsZXR7aHJlZjppZX09UjtyZXR1cm4gJC5sZW5ndGgmJmVlIT09dm9pZCAwJiYoaWU9YCMvJHskLmpvaW4oIi8iKX1gKSxpLmNyZWF0ZUVsZW1lbnQoX2UsT2JqZWN0LmFzc2lnbih7a2V5OmhlfSxmZSwoMCxBZS5aKShSLHtkYXRhOiEwLGFyaWE6ITB9KSx7Y2xhc3NOYW1lOkUsZHJvcGRvd25Qcm9wczpuZSxocmVmOmllLHNlcGFyYXRvcjpqZT8iIjpuLG9uQ2xpY2s6VyxwcmVmaXhDbHM6cH0pLEYoUixDLHcsJCxpZSkpfSl9ZWxzZSBpZihQKXtjb25zdCAkPSgwLG9lLlopKFApLmxlbmd0aDtmPSgwLG9lLlopKFApLm1hcCgodyxSKT0+e2lmKCF3KXJldHVybiB3O2NvbnN0IEw9Uj09PSQtMTtyZXR1cm4oMCxEZS5UbSkodyx7c2VwYXJhdG9yOkw/IiI6bixrZXk6Un0pfSl9Y29uc3QgYj1BKCkocCx5PT1udWxsP3ZvaWQgMDp5LmNsYXNzTmFtZSx7W2Ake3B9LXJ0bGBdOng9PT0icnRsIn0sYSx1LEgsaiksQj1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30seT09bnVsbD92b2lkIDA6eS5zdHlsZSkscik7cmV0dXJuIGcoaS5jcmVhdGVFbGVtZW50KCJuYXYiLE9iamVjdC5hc3NpZ24oe2NsYXNzTmFtZTpiLHN0eWxlOkJ9LG0pLGkuY3JlYXRlRWxlbWVudCgib2wiLG51bGwsZikpKX07VmUuSXRlbT1odCxWZS5TZXBhcmF0b3I9S2U7dmFyIGp0PVZlLEl0PWp0LEJ0PWwoNjg5OTcpLFJ0PWwoNzg5NTcpLGF0PWwoODAzMzQpLG90PWZ1bmN0aW9uKCl7cmV0dXJue292ZXJmbG93OiJoaWRkZW4iLHdoaXRlU3BhY2U6Im5vd3JhcCIsdGV4dE92ZXJmbG93OiJlbGxpcHNpcyJ9fSxPdD1mdW5jdGlvbihlKXt2YXIgbjtyZXR1cm4oMCxvLlopKHt9LGUuY29tcG9uZW50Q2xzLCgwLGQuWikoKDAsZC5aKSh7fSxHLldmPT09bnVsbHx8Ry5XZj09PXZvaWQgMD92b2lkIDA6KDAsRy5XZikoZSkpLHt9LCgwLG8uWikoKDAsby5aKSgoMCxvLlopKCgwLG8uWikoKDAsby5aKSgoMCxvLlopKCgwLG8uWikoKDAsby5aKSh7cG9zaXRpb246InJlbGF0aXZlIixiYWNrZ3JvdW5kQ29sb3I6ZS5jb2xvcldoaXRlLHBhZGRpbmdCbG9jazplLnBhZ2VIZWFkZXJQYWRkaW5nVmVydGljYWwrMixwYWRkaW5nSW5saW5lOmUucGFnZUhlYWRlclBhZGRpbmcsIiYmLWdob3N0Ijp7YmFja2dyb3VuZENvbG9yOmUucGFnZUhlYWRlckJnR2hvc3R9LCImLW5vLWNoaWxkcmVuIjp7aGVpZ2h0OihuPWUubGF5b3V0KT09PW51bGx8fG49PT12b2lkIDB8fChuPW4ucGFnZUNvbnRhaW5lcik9PT1udWxsfHxuPT09dm9pZCAwP3ZvaWQgMDpuLnBhZGRpbmdCbG9ja1BhZ2VDb250YWluZXJDb250ZW50fSwiJiYtaGFzLWJyZWFkY3J1bWIiOntwYWRkaW5nQmxvY2tTdGFydDplLnBhZ2VIZWFkZXJQYWRkaW5nQnJlYWRDcnVtYn0sIiYmLWhhcy1mb290ZXIiOntwYWRkaW5nQmxvY2tFbmQ6MH0sIiYgJi1iYWNrIjooMCxvLlopKHttYXJnaW5JbmxpbmVFbmQ6ZS5tYXJnaW4sZm9udFNpemU6MTYsbGluZUhlaWdodDoxLCImLWJ1dHRvbiI6KDAsZC5aKSgoMCxkLlopKHtmb250U2l6ZToxNn0sRy5OZD09PW51bGx8fEcuTmQ9PT12b2lkIDA/dm9pZCAwOigwLEcuTmQpKGUpKSx7fSx7Y29sb3I6ZS5wYWdlSGVhZGVyQ29sb3JCYWNrLGN1cnNvcjoicG9pbnRlciJ9KX0sIiIuY29uY2F0KGUuY29tcG9uZW50Q2xzLCItcmx0ICYiKSx7ZmxvYXQ6InJpZ2h0IixtYXJnaW5JbmxpbmVFbmQ6MCxtYXJnaW5JbmxpbmVTdGFydDowfSl9LCImICIuY29uY2F0KCJhbnQiLCItZGl2aWRlci12ZXJ0aWNhbCIpLHtoZWlnaHQ6MTQsbWFyZ2luQmxvY2s6MCxtYXJnaW5JbmxpbmU6ZS5tYXJnaW5TTSx2ZXJ0aWNhbEFsaWduOiJtaWRkbGUifSksIiYgJi1icmVhZGNydW1iICsgJi1oZWFkaW5nIix7bWFyZ2luQmxvY2tTdGFydDplLm1hcmdpblhTfSksIiYgJi1oZWFkaW5nIix7ZGlzcGxheToiZmxleCIsanVzdGlmeUNvbnRlbnQ6InNwYWNlLWJldHdlZW4iLCImLWxlZnQiOntkaXNwbGF5OiJmbGV4IixhbGlnbkl0ZW1zOiJjZW50ZXIiLG1hcmdpbkJsb2NrOmUubWFyZ2luWFMvMixtYXJnaW5JbmxpbmVFbmQ6MCxtYXJnaW5JbmxpbmVTdGFydDowLG92ZXJmbG93OiJoaWRkZW4ifSwiJi10aXRsZSI6KDAsZC5aKSgoMCxkLlopKHttYXJnaW5JbmxpbmVFbmQ6ZS5tYXJnaW5TTSxtYXJnaW5CbG9ja0VuZDowLGNvbG9yOmUuY29sb3JUZXh0SGVhZGluZyxmb250V2VpZ2h0OjYwMCxmb250U2l6ZTplLnBhZ2VIZWFkZXJGb250U2l6ZUhlYWRlclRpdGxlLGxpbmVIZWlnaHQ6ZS5jb250cm9sSGVpZ2h0KyJweCJ9LG90KCkpLHt9LCgwLG8uWikoe30sIiIuY29uY2F0KGUuY29tcG9uZW50Q2xzLCItcmx0ICYiKSx7bWFyZ2luSW5saW5lRW5kOjAsbWFyZ2luSW5saW5lU3RhcnQ6ZS5tYXJnaW5TTX0pKSwiJi1hdmF0YXIiOigwLG8uWikoe21hcmdpbklubGluZUVuZDplLm1hcmdpblNNfSwiIi5jb25jYXQoZS5jb21wb25lbnRDbHMsIi1ybHQgJiIpLHtmbG9hdDoicmlnaHQiLG1hcmdpbklubGluZUVuZDowLG1hcmdpbklubGluZVN0YXJ0OmUubWFyZ2luU019KSwiJi10YWdzIjooMCxvLlopKHt9LCIiLmNvbmNhdChlLmNvbXBvbmVudENscywiLXJsdCAmIikse2Zsb2F0OiJyaWdodCJ9KSwiJi1zdWItdGl0bGUiOigwLGQuWikoKDAsZC5aKSh7bWFyZ2luSW5saW5lRW5kOmUubWFyZ2luU00sY29sb3I6ZS5jb2xvclRleHRTZWNvbmRhcnksZm9udFNpemU6ZS5wYWdlSGVhZGVyRm9udFNpemVIZWFkZXJTdWJUaXRsZSxsaW5lSGVpZ2h0OmUubGluZUhlaWdodH0sb3QoKSkse30sKDAsby5aKSh7fSwiIi5jb25jYXQoZS5jb21wb25lbnRDbHMsIi1ybHQgJiIpLHtmbG9hdDoicmlnaHQiLG1hcmdpbklubGluZUVuZDowLG1hcmdpbklubGluZVN0YXJ0OjEyfSkpLCImLWV4dHJhIjooMCxvLlopKCgwLG8uWikoe21hcmdpbkJsb2NrOmUubWFyZ2luWFMvMixtYXJnaW5JbmxpbmVFbmQ6MCxtYXJnaW5JbmxpbmVTdGFydDowLHdoaXRlU3BhY2U6Im5vd3JhcCIsIj4gKiI6KDAsby5aKSh7IndoaXRlLXNwYWNlIjoidW5zZXQifSwiIi5jb25jYXQoZS5jb21wb25lbnRDbHMsIi1ybHQgJiIpLHttYXJnaW5JbmxpbmVFbmQ6ZS5tYXJnaW5TTSxtYXJnaW5JbmxpbmVTdGFydDowfSl9LCIiLmNvbmNhdChlLmNvbXBvbmVudENscywiLXJsdCAmIikse2Zsb2F0OiJsZWZ0In0pLCIqOmZpcnN0LWNoaWxkIiwoMCxvLlopKHt9LCIiLmNvbmNhdChlLmNvbXBvbmVudENscywiLXJsdCAmIikse21hcmdpbklubGluZUVuZDowfSkpfSksIiYtY29udGVudCIse3BhZGRpbmdCbG9ja1N0YXJ0OmUucGFnZUhlYWRlclBhZGRpbmdDb250ZW50UGFkZGluZ30pLCImLWZvb3RlciIse21hcmdpbkJsb2NrU3RhcnQ6ZS5tYXJnaW59KSwiJi1jb21wYWN0ICYtaGVhZGluZyIse2ZsZXhXcmFwOiJ3cmFwIn0pLCImLXdpZGUiLHttYXhXaWR0aDoxMTUyLG1hcmdpbjoiMCBhdXRvIn0pLCImLXJ0bCIse2RpcmVjdGlvbjoicnRsIn0pKSl9O2Z1bmN0aW9uIEV0KHQpe3JldHVybigwLEcuWGopKCJQcm9MYXlvdXRQYWdlSGVhZGVyIixmdW5jdGlvbihlKXt2YXIgbj0oMCxkLlopKCgwLGQuWikoe30sZSkse30se2NvbXBvbmVudENsczoiLiIuY29uY2F0KHQpLHBhZ2VIZWFkZXJCZ0dob3N0OiJ0cmFuc3BhcmVudCIscGFnZUhlYWRlclBhZGRpbmc6MTYscGFnZUhlYWRlclBhZGRpbmdWZXJ0aWNhbDo0LHBhZ2VIZWFkZXJQYWRkaW5nQnJlYWRDcnVtYjplLnBhZGRpbmdTTSxwYWdlSGVhZGVyQ29sb3JCYWNrOmUuY29sb3JUZXh0SGVhZGluZyxwYWdlSGVhZGVyRm9udFNpemVIZWFkZXJUaXRsZTplLmZvbnRTaXplSGVhZGluZzQscGFnZUhlYWRlckZvbnRTaXplSGVhZGVyU3ViVGl0bGU6MTQscGFnZUhlYWRlclBhZGRpbmdDb250ZW50UGFkZGluZzplLnBhZGRpbmdTTX0pO3JldHVybltPdChuKV19KX12YXIgTnQ9ZnVuY3Rpb24oZSxuLHIsYSl7cmV0dXJuIXJ8fCFhP251bGw6KDAsYy5qc3gpKCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KGUsIi1iYWNrICIpLmNvbmNhdChuKS50cmltKCksY2hpbGRyZW46KDAsYy5qc3gpKCJkaXYiLHtyb2xlOiJidXR0b24iLG9uQ2xpY2s6ZnVuY3Rpb24ocyl7YT09bnVsbHx8YShzKX0sY2xhc3NOYW1lOiIiLmNvbmNhdChlLCItYmFjay1idXR0b24gIikuY29uY2F0KG4pLnRyaW0oKSwiYXJpYS1sYWJlbCI6ImJhY2siLGNoaWxkcmVuOnJ9KX0pfSxUdD1mdW5jdGlvbihlLG4pe3ZhciByO3JldHVybihyPWUuaXRlbXMpIT09bnVsbCYmciE9PXZvaWQgMCYmci5sZW5ndGg/KDAsYy5qc3gpKEl0LCgwLGQuWikoKDAsZC5aKSh7fSxlKSx7fSx7Y2xhc3NOYW1lOkEoKSgiIi5jb25jYXQobiwiLWJyZWFkY3J1bWIiKSxlLmNsYXNzTmFtZSl9KSk6bnVsbH0sSHQ9ZnVuY3Rpb24oZSl7dmFyIG49YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOiJsdHIiO3JldHVybiBlLmJhY2tJY29uIT09dm9pZCAwP2UuYmFja0ljb246bj09PSJydGwiPygwLGMuanN4KShVZSgpLHt9KTooMCxjLmpzeCkoJGUoKSx7fSl9LHd0PWZ1bmN0aW9uKGUsbil7dmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yJiZhcmd1bWVudHNbMl0hPT12b2lkIDA/YXJndW1lbnRzWzJdOiJsdHIiLGE9YXJndW1lbnRzLmxlbmd0aD4zP2FyZ3VtZW50c1szXTp2b2lkIDAsdT1uLnRpdGxlLHM9bi5hdmF0YXIsdj1uLnN1YlRpdGxlLFA9bi50YWdzLGg9bi5leHRyYSxDPW4ub25CYWNrLG09IiIuY29uY2F0KGUsIi1oZWFkaW5nIiksWj11fHx2fHxQfHxoO2lmKCFaKXJldHVybiBudWxsO3ZhciB4PUh0KG4scikseT1OdChlLGEseCxDKSxmPXl8fHN8fFo7cmV0dXJuKDAsYy5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOm0rIiAiK2EsY2hpbGRyZW46W2YmJigwLGMuanN4cykoImRpdiIse2NsYXNzTmFtZToiIi5jb25jYXQobSwiLWxlZnQgIikuY29uY2F0KGEpLnRyaW0oKSxjaGlsZHJlbjpbeSxzJiYoMCxjLmpzeCkoQnQuWiwoMCxkLlopKHtjbGFzc05hbWU6QSgpKCIiLmNvbmNhdChtLCItYXZhdGFyIiksYSxzLmNsYXNzTmFtZSl9LHMpKSx1JiYoMCxjLmpzeCkoInNwYW4iLHtjbGFzc05hbWU6IiIuY29uY2F0KG0sIi10aXRsZSAiKS5jb25jYXQoYSkudHJpbSgpLHRpdGxlOnR5cGVvZiB1PT0ic3RyaW5nIj91OnZvaWQgMCxjaGlsZHJlbjp1fSksdiYmKDAsYy5qc3gpKCJzcGFuIix7Y2xhc3NOYW1lOiIiLmNvbmNhdChtLCItc3ViLXRpdGxlICIpLmNvbmNhdChhKS50cmltKCksdGl0bGU6dHlwZW9mIHY9PSJzdHJpbmciP3Y6dm9pZCAwLGNoaWxkcmVuOnZ9KSxQJiYoMCxjLmpzeCkoInNwYW4iLHtjbGFzc05hbWU6IiIuY29uY2F0KG0sIi10YWdzICIpLmNvbmNhdChhKS50cmltKCksY2hpbGRyZW46UH0pXX0pLGgmJigwLGMuanN4KSgic3BhbiIse2NsYXNzTmFtZToiIi5jb25jYXQobSwiLWV4dHJhICIpLmNvbmNhdChhKS50cmltKCksY2hpbGRyZW46KDAsYy5qc3gpKFJ0Llose2NoaWxkcmVuOmh9KX0pXX0pfSwkdD1mdW5jdGlvbihlLG4scil7cmV0dXJuIG4/KDAsYy5qc3gpKCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KGUsIi1mb290ZXIgIikuY29uY2F0KHIpLnRyaW0oKSxjaGlsZHJlbjpufSk6bnVsbH0sTXQ9ZnVuY3Rpb24oZSxuLHIpe3JldHVybigwLGMuanN4KSgiZGl2Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdChlLCItY29udGVudCAiKS5jb25jYXQocikudHJpbSgpLGNoaWxkcmVuOm59KX0sQXQ9ZnVuY3Rpb24gdChlKXtyZXR1cm4gZT09bnVsbD92b2lkIDA6ZS5tYXAoZnVuY3Rpb24obil7dmFyIHI7cmV0dXJuKDAsYXQuRVQpKCEhbi5icmVhZGNydW1iTmFtZSwiUm91dGUuYnJlYWRjcnVtYk5hbWUgaXMgZGVwcmVjYXRlZCwgcGxlYXNlIHVzZSBSb3V0ZS50aXRsZSBpbnN0ZWFkLiIpLCgwLGQuWikoKDAsZC5aKSh7fSxuKSx7fSx7YnJlYWRjcnVtYk5hbWU6dm9pZCAwLGNoaWxkcmVuOnZvaWQgMCx0aXRsZTpuLnRpdGxlfHxuLmJyZWFkY3J1bWJOYW1lfSwocj1uLmNoaWxkcmVuKSE9PW51bGwmJnIhPT12b2lkIDAmJnIubGVuZ3RoP3ttZW51OntpdGVtczp0KG4uY2hpbGRyZW4pfX06e30pfSl9LER0PWZ1bmN0aW9uKGUpe3ZhciBuLHI9aS51c2VTdGF0ZSghMSksYT0oMCx2ZS5aKShyLDIpLHU9YVswXSxzPWFbMV0sdj1mdW5jdGlvbihuZSl7dmFyIGVlPW5lLndpZHRoO3JldHVybiBzKGVlPDc2OCl9LFA9aS51c2VDb250ZXh0KGNlLlpQLkNvbmZpZ0NvbnRleHQpLGg9UC5nZXRQcmVmaXhDbHMsQz1QLmRpcmVjdGlvbixtPWUucHJlZml4Q2xzLFo9ZS5zdHlsZSx4PWUuZm9vdGVyLHk9ZS5jaGlsZHJlbixmPWUuYnJlYWRjcnVtYixwPWUuYnJlYWRjcnVtYlJlbmRlcixnPWUuY2xhc3NOYW1lLEg9ZS5jb250ZW50V2lkdGgsaj1lLmxheW91dCxJPWUuZ2hvc3QsRj1JPT09dm9pZCAwPyEwOkksYj1oKCJwYWdlLWhlYWRlciIsbSksQj1FdChiKSwkPUIud3JhcFNTUix3PUIuaGFzaElkLFI9ZnVuY3Rpb24oKXtyZXR1cm4gZiYmIShmIT1udWxsJiZmLml0ZW1zKSYmZiE9PW51bGwmJmYhPT12b2lkIDAmJmYucm91dGVzJiYoKDAsYXQuRVQpKCExLCJUaGUgcm91dGVzIG9mIEJyZWFkY3J1bWIgaXMgZGVwcmVjYXRlZCwgcGxlYXNlIHVzZSBpdGVtcyBpbnN0ZWFkLiIpLGYuaXRlbXM9QXQoZi5yb3V0ZXMpKSxmIT1udWxsJiZmLml0ZW1zP1R0KGYsYik6bnVsbH0sTD1SKCksUT1mJiYicHJvcHMiaW4gZixPPShuPXA9PW51bGw/dm9pZCAwOnAoKDAsZC5aKSgoMCxkLlopKHt9LGUpLHt9LHtwcmVmaXhDbHM6Yn0pLEwpKSE9PW51bGwmJm4hPT12b2lkIDA/bjpMLFY9UT9mOk8sSj1BKCkoYix3LGcsKDAsby5aKSgoMCxvLlopKCgwLG8uWikoKDAsby5aKSgoMCxvLlopKCgwLG8uWikoe30sIiIuY29uY2F0KGIsIi1oYXMtYnJlYWRjcnVtYiIpLCEhViksIiIuY29uY2F0KGIsIi1oYXMtZm9vdGVyIiksISF4KSwiIi5jb25jYXQoYiwiLXJ0bCIpLEM9PT0icnRsIiksIiIuY29uY2F0KGIsIi1jb21wYWN0IiksdSksIiIuY29uY2F0KGIsIi13aWRlIiksSD09PSJGaXhlZCImJmo9PSJ0b3AiKSwiIi5jb25jYXQoYiwiLWdob3N0IiksRikpLFk9d3QoYixlLEMsdyksVz15JiZNdChiLHksdyksRT0kdChiLHgsdyk7cmV0dXJuIVYmJiFZJiYhRSYmIVc/KDAsYy5qc3gpKCJkaXYiLHtjbGFzc05hbWU6QSgpKHcsWyIiLmNvbmNhdChiLCItbm8tY2hpbGRyZW4iKV0pfSk6JCgoMCxjLmpzeCkocmUuWix7b25SZXNpemU6dixjaGlsZHJlbjooMCxjLmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6SixzdHlsZTpaLGNoaWxkcmVuOltWLFksVyxFXX0pfSkpfSx6dD1sKDgzODMyKSxGdD1mdW5jdGlvbihlKXtpZighZSlyZXR1cm4gMTt2YXIgbj1lLmJhY2tpbmdTdG9yZVBpeGVsUmF0aW98fGUud2Via2l0QmFja2luZ1N0b3JlUGl4ZWxSYXRpb3x8ZS5tb3pCYWNraW5nU3RvcmVQaXhlbFJhdGlvfHxlLm1zQmFja2luZ1N0b3JlUGl4ZWxSYXRpb3x8ZS5vQmFja2luZ1N0b3JlUGl4ZWxSYXRpb3x8MTtyZXR1cm4od2luZG93LmRldmljZVBpeGVsUmF0aW98fDEpL259LEx0PWZ1bmN0aW9uKGUpe3ZhciBuPSgwLEcuZFEpKCkscj1uLnRva2VuLGE9ZS5jaGlsZHJlbix1PWUuc3R5bGUscz1lLmNsYXNzTmFtZSx2PWUubWFya1N0eWxlLFA9ZS5tYXJrQ2xhc3NOYW1lLGg9ZS56SW5kZXgsQz1oPT09dm9pZCAwPzk6aCxtPWUuZ2FwWCxaPW09PT12b2lkIDA/MjEyOm0seD1lLmdhcFkseT14PT09dm9pZCAwPzIyMjp4LGY9ZS53aWR0aCxwPWY9PT12b2lkIDA/MTIwOmYsZz1lLmhlaWdodCxIPWc9PT12b2lkIDA/NjQ6ZyxqPWUucm90YXRlLEk9aj09PXZvaWQgMD8tMjI6aixGPWUuaW1hZ2UsYj1lLm9mZnNldExlZnQsQj1lLm9mZnNldFRvcCwkPWUuZm9udFN0eWxlLHc9JD09PXZvaWQgMD8ibm9ybWFsIjokLFI9ZS5mb250V2VpZ2h0LEw9Uj09PXZvaWQgMD8ibm9ybWFsIjpSLFE9ZS5mb250Q29sb3IsTz1RPT09dm9pZCAwP3IuY29sb3JGaWxsOlEsVj1lLmZvbnRTaXplLEo9Vj09PXZvaWQgMD8xNjpWLFk9ZS5mb250RmFtaWx5LFc9WT09PXZvaWQgMD8ic2Fucy1zZXJpZiI6WSxFPWUucHJlZml4Q2xzLEQ9KDAsaS51c2VDb250ZXh0KShjZS5aUC5Db25maWdDb250ZXh0KSxuZT1ELmdldFByZWZpeENscyxlZT1uZSgicHJvLWxheW91dC13YXRlcm1hcmsiLEUpLGhlPUEoKSgiIi5jb25jYXQoZWUsIi13cmFwcGVyIikscyksZmU9QSgpKGVlLFApLGplPSgwLGkudXNlU3RhdGUpKCIiKSxpZT0oMCx2ZS5aKShqZSwyKSxNPWllWzBdLFQ9aWVbMV07cmV0dXJuKDAsaS51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7dmFyIFM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIiksWD1TLmdldENvbnRleHQoIjJkIiksaz1GdChYKSxGZT0iIi5jb25jYXQoKForcCkqaywicHgiKSxubj0iIi5jb25jYXQoKHkrSCkqaywicHgiKSxybj1ifHxaLzIsYW49Qnx8eS8yO2lmKFMuc2V0QXR0cmlidXRlKCJ3aWR0aCIsRmUpLFMuc2V0QXR0cmlidXRlKCJoZWlnaHQiLG5uKSwhWCl7Y29uc29sZS5lcnJvcigiXHU1RjUzXHU1MjREXHU3M0FGXHU1ODgzXHU0RTBEXHU2NTJGXHU2MzAxQ2FudmFzIik7cmV0dXJufVgudHJhbnNsYXRlKHJuKmssYW4qayksWC5yb3RhdGUoTWF0aC5QSS8xODAqTnVtYmVyKEkpKTt2YXIgb249cCprLGN0PUgqayxzdD1mdW5jdGlvbihJZSl7dmFyIFllPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTowLFFlPU51bWJlcihKKSprO1guZm9udD0iIi5jb25jYXQodywiIG5vcm1hbCAiKS5jb25jYXQoTCwiICIpLmNvbmNhdChRZSwicHgvIikuY29uY2F0KGN0LCJweCAiKS5jb25jYXQoVyksWC5maWxsU3R5bGU9TyxBcnJheS5pc0FycmF5KEllKT9JZT09bnVsbHx8SWUuZm9yRWFjaChmdW5jdGlvbihsbixkbil7cmV0dXJuIFguZmlsbFRleHQobG4sMCxkbipRZStZZSl9KTpYLmZpbGxUZXh0KEllLDAsWWU/WWUrUWU6MCksVChTLnRvRGF0YVVSTCgpKX07aWYoRil7dmFyIENlPW5ldyBJbWFnZTtDZS5jcm9zc09yaWdpbj0iYW5vbnltb3VzIixDZS5yZWZlcnJlclBvbGljeT0ibm8tcmVmZXJyZXIiLENlLnNyYz1GLENlLm9ubG9hZD1mdW5jdGlvbigpe2lmKFguZHJhd0ltYWdlKENlLDAsMCxvbixjdCksVChTLnRvRGF0YVVSTCgpKSxlLmNvbnRlbnQpe3N0KGUuY29udGVudCxDZS5oZWlnaHQrOCk7cmV0dXJufX07cmV0dXJufWlmKGUuY29udGVudCl7c3QoZS5jb250ZW50KTtyZXR1cm59fSxbWix5LGIsQixJLHcsTCxwLEgsVyxPLEYsZS5jb250ZW50LEpdKSwoMCxjLmpzeHMpKCJkaXYiLHtzdHlsZTooMCxkLlopKHtwb3NpdGlvbjoicmVsYXRpdmUifSx1KSxjbGFzc05hbWU6aGUsY2hpbGRyZW46W2EsKDAsYy5qc3gpKCJkaXYiLHtjbGFzc05hbWU6ZmUsc3R5bGU6KDAsZC5aKSgoMCxkLlopKHt6SW5kZXg6Qyxwb3NpdGlvbjoiYWJzb2x1dGUiLGxlZnQ6MCx0b3A6MCx3aWR0aDoiMTAwJSIsaGVpZ2h0OiIxMDAlIixiYWNrZ3JvdW5kU2l6ZToiIi5jb25jYXQoWitwLCJweCIpLHBvaW50ZXJFdmVudHM6Im5vbmUiLGJhY2tncm91bmRSZXBlYXQ6InJlcGVhdCJ9LE0/e2JhY2tncm91bmRJbWFnZToidXJsKCciLmNvbmNhdChNLCInKSIpfTp7fSksdil9KV19KX0sV3Q9WzU3Niw3NjgsOTkyLDEyMDBdLm1hcChmdW5jdGlvbih0KXtyZXR1cm4iQG1lZGlhIChtYXgtd2lkdGg6ICIuY29uY2F0KHQsInB4KSIpfSksemU9KDAsdmUuWikoV3QsNCksaXQ9emVbMF0sbHQ9emVbMV0sWHQ9emVbMl0sVXQ9emVbM10sS3Q9ZnVuY3Rpb24oZSl7dmFyIG4scixhLHUscyx2LFAsaCxDLG0sWix4LHksZixwLGcsSCxqO3JldHVybigwLG8uWikoe30sZS5jb21wb25lbnRDbHMsKDAsby5aKSgoMCxvLlopKCgwLG8uWikoKDAsby5aKSgoMCxvLlopKCgwLG8uWikoe3Bvc2l0aW9uOiJyZWxhdGl2ZSIsIiYtY2hpbGRyZW4tY29udGFpbmVyIjp7cGFkZGluZ0Jsb2NrU3RhcnQ6MCxwYWRkaW5nQmxvY2tFbmQ6KG49ZS5sYXlvdXQpPT09bnVsbHx8bj09PXZvaWQgMHx8KG49bi5wYWdlQ29udGFpbmVyKT09PW51bGx8fG49PT12b2lkIDA/dm9pZCAwOm4ucGFkZGluZ0Jsb2NrUGFnZUNvbnRhaW5lckNvbnRlbnQscGFkZGluZ0lubGluZToocj1lLmxheW91dCk9PT1udWxsfHxyPT09dm9pZCAwfHwocj1yLnBhZ2VDb250YWluZXIpPT09bnVsbHx8cj09PXZvaWQgMD92b2lkIDA6ci5wYWRkaW5nSW5saW5lUGFnZUNvbnRhaW5lckNvbnRlbnR9LCImLWNoaWxkcmVuLWNvbnRhaW5lci1uby1oZWFkZXIiOntwYWRkaW5nQmxvY2tTdGFydDooYT1lLmxheW91dCk9PT1udWxsfHxhPT09dm9pZCAwfHwoYT1hLnBhZ2VDb250YWluZXIpPT09bnVsbHx8YT09PXZvaWQgMD92b2lkIDA6YS5wYWRkaW5nQmxvY2tQYWdlQ29udGFpbmVyQ29udGVudH0sIiYtYWZmaXgiOigwLG8uWikoe30sIiIuY29uY2F0KGUuYW50Q2xzLCItYWZmaXgiKSwoMCxvLlopKHt9LCIiLmNvbmNhdChlLmNvbXBvbmVudENscywiLXdhcnAiKSx7YmFja2dyb3VuZENvbG9yOih1PWUubGF5b3V0KT09PW51bGx8fHU9PT12b2lkIDB8fCh1PXUucGFnZUNvbnRhaW5lcik9PT1udWxsfHx1PT09dm9pZCAwP3ZvaWQgMDp1LmNvbG9yQmdQYWdlQ29udGFpbmVyRml4ZWQsdHJhbnNpdGlvbjoiYmFja2dyb3VuZC1jb2xvciAwLjNzIixib3hTaGFkb3c6IjAgMnB4IDhweCAjZjBmMWYyIn0pKX0sIiYgJi13YXJwLXBhZ2UtaGVhZGVyIiwoMCxvLlopKCgwLG8uWikoKDAsby5aKSgoMCxvLlopKHtwYWRkaW5nQmxvY2tTdGFydDooKHM9KHY9ZS5sYXlvdXQpPT09bnVsbHx8dj09PXZvaWQgMHx8KHY9di5wYWdlQ29udGFpbmVyKT09PW51bGx8fHY9PT12b2lkIDA/dm9pZCAwOnYucGFkZGluZ0Jsb2NrUGFnZUNvbnRhaW5lckNvbnRlbnQpIT09bnVsbCYmcyE9PXZvaWQgMD9zOjQwKS80LHBhZGRpbmdCbG9ja0VuZDooKFA9KGg9ZS5sYXlvdXQpPT09bnVsbHx8aD09PXZvaWQgMHx8KGg9aC5wYWdlQ29udGFpbmVyKT09PW51bGx8fGg9PT12b2lkIDA/dm9pZCAwOmgucGFkZGluZ0Jsb2NrUGFnZUNvbnRhaW5lckNvbnRlbnQpIT09bnVsbCYmUCE9PXZvaWQgMD9QOjQwKS8yLHBhZGRpbmdJbmxpbmVTdGFydDooQz1lLmxheW91dCk9PT1udWxsfHxDPT09dm9pZCAwfHwoQz1DLnBhZ2VDb250YWluZXIpPT09bnVsbHx8Qz09PXZvaWQgMD92b2lkIDA6Qy5wYWRkaW5nSW5saW5lUGFnZUNvbnRhaW5lckNvbnRlbnQscGFkZGluZ0lubGluZUVuZDoobT1lLmxheW91dCk9PT1udWxsfHxtPT09dm9pZCAwfHwobT1tLnBhZ2VDb250YWluZXIpPT09bnVsbHx8bT09PXZvaWQgMD92b2lkIDA6bS5wYWRkaW5nSW5saW5lUGFnZUNvbnRhaW5lckNvbnRlbnR9LCImIH4gIi5jb25jYXQoZS5wcm9Db21wb25lbnRzQ2xzLCItZ3JpZC1jb250ZW50IiksKDAsby5aKSh7fSwiIi5jb25jYXQoZS5wcm9Db21wb25lbnRzQ2xzLCItcGFnZS1jb250YWluZXItY2hpbGRyZW4tY29udGVudCIpLHtwYWRkaW5nQmxvY2s6KChaPSh4PWUubGF5b3V0KT09PW51bGx8fHg9PT12b2lkIDB8fCh4PXgucGFnZUNvbnRhaW5lcik9PT1udWxsfHx4PT09dm9pZCAwP3ZvaWQgMDp4LnBhZGRpbmdCbG9ja1BhZ2VDb250YWluZXJDb250ZW50KSE9PW51bGwmJlohPT12b2lkIDA/WjoyNCkvM30pKSwiIi5jb25jYXQoZS5hbnRDbHMsIi1wYWdlLWhlYWRlci1icmVhZGNydW1iIikse3BhZGRpbmdCbG9ja1N0YXJ0OigoeT0oZj1lLmxheW91dCk9PT1udWxsfHxmPT09dm9pZCAwfHwoZj1mLnBhZ2VDb250YWluZXIpPT09bnVsbHx8Zj09PXZvaWQgMD92b2lkIDA6Zi5wYWRkaW5nQmxvY2tQYWdlQ29udGFpbmVyQ29udGVudCkhPT1udWxsJiZ5IT09dm9pZCAwP3k6NDApLzQrMTB9KSwiIi5jb25jYXQoZS5hbnRDbHMsIi1wYWdlLWhlYWRlci1oZWFkaW5nIikse3BhZGRpbmdCbG9ja1N0YXJ0OigocD0oZz1lLmxheW91dCk9PT1udWxsfHxnPT09dm9pZCAwfHwoZz1nLnBhZ2VDb250YWluZXIpPT09bnVsbHx8Zz09PXZvaWQgMD92b2lkIDA6Zy5wYWRkaW5nQmxvY2tQYWdlQ29udGFpbmVyQ29udGVudCkhPT1udWxsJiZwIT09dm9pZCAwP3A6NDApLzR9KSwiIi5jb25jYXQoZS5hbnRDbHMsIi1wYWdlLWhlYWRlci1mb290ZXIiKSx7bWFyZ2luQmxvY2tTdGFydDooKEg9KGo9ZS5sYXlvdXQpPT09bnVsbHx8aj09PXZvaWQgMHx8KGo9ai5wYWdlQ29udGFpbmVyKT09PW51bGx8fGo9PT12b2lkIDA/dm9pZCAwOmoucGFkZGluZ0Jsb2NrUGFnZUNvbnRhaW5lckNvbnRlbnQpIT09bnVsbCYmSCE9PXZvaWQgMD9IOjQwKS80fSkpLCImLWRldGFpbCIsKDAsby5aKSh7ZGlzcGxheToiZmxleCJ9LGl0LHtkaXNwbGF5OiJibG9jayJ9KSksIiYtbWFpbiIse3dpZHRoOiIxMDAlIn0pLCImLXJvdyIsKDAsby5aKSh7ZGlzcGxheToiZmxleCIsd2lkdGg6IjEwMCUifSxsdCx7ZGlzcGxheToiYmxvY2sifSkpLCImLWNvbnRlbnQiLHtmbGV4OiJhdXRvIix3aWR0aDoiMTAwJSJ9KSwiJi1leHRyYUNvbnRlbnQiLCgwLG8uWikoKDAsby5aKSgoMCxvLlopKCgwLG8uWikoe2ZsZXg6IjAgMSBhdXRvIixtaW5XaWR0aDoiMjQycHgiLG1hcmdpbklubGluZVN0YXJ0Ojg4LHRleHRBbGlnbjoiZW5kIn0sVXQse21hcmdpbklubGluZVN0YXJ0OjQ0fSksWHQse21hcmdpbklubGluZVN0YXJ0OjIwfSksbHQse21hcmdpbklubGluZVN0YXJ0OjAsdGV4dEFsaWduOiJzdGFydCJ9KSxpdCx7bWFyZ2luSW5saW5lU3RhcnQ6MH0pKSl9O2Z1bmN0aW9uIEd0KHQsZSl7cmV0dXJuKDAsRy5YaikoIlByb0xheW91dFBhZ2VDb250YWluZXIiLGZ1bmN0aW9uKG4pe3ZhciByLGE9KDAsZC5aKSgoMCxkLlopKHt9LG4pLHt9LHtjb21wb25lbnRDbHM6Ii4iLmNvbmNhdCh0KSxsYXlvdXQ6KDAsZC5aKSgoMCxkLlopKHt9LG49PW51bGw/dm9pZCAwOm4ubGF5b3V0KSx7fSx7cGFnZUNvbnRhaW5lcjooMCxkLlopKCgwLGQuWikoe30sbj09bnVsbHx8KHI9bi5sYXlvdXQpPT09bnVsbHx8cj09PXZvaWQgMD92b2lkIDA6ci5wYWdlQ29udGFpbmVyKSxlKX0pfSk7cmV0dXJuW0t0KGEpXX0pfWZ1bmN0aW9uIFZ0KHQsZSl7dmFyIG49ZS5zdHlsaXNoO3JldHVybigwLEcuWGopKCJQcm9MYXlvdXRQYWdlQ29udGFpbmVyU3R5bGlzaCIsZnVuY3Rpb24ocil7dmFyIGE9KDAsZC5aKSgoMCxkLlopKHt9LHIpLHt9LHtjb21wb25lbnRDbHM6Ii4iLmNvbmNhdCh0KX0pO3JldHVybiBuP1soMCxvLlopKHt9LCJkaXYiLmNvbmNhdChhLmNvbXBvbmVudENscyksbj09bnVsbD92b2lkIDA6bihhKSldOltdfSl9dmFyIFl0PWwoMTk3NyksUXQ9WyJ0aXRsZSIsImNvbnRlbnQiLCJwYWdlSGVhZGVyUmVuZGVyIiwiaGVhZGVyIiwicHJlZml4ZWRDbGFzc05hbWUiLCJleHRyYUNvbnRlbnQiLCJjaGlsZHJlbkNvbnRlbnRTdHlsZSIsInN0eWxlIiwicHJlZml4Q2xzIiwiaGFzaElkIiwidmFsdWUiLCJicmVhZGNydW1iUmVuZGVyIl0sa3Q9WyJjaGlsZHJlbiIsImxvYWRpbmciLCJjbGFzc05hbWUiLCJzdHlsZSIsImZvb3RlciIsImFmZml4UHJvcHMiLCJ0b2tlbiIsImZpeGVkSGVhZGVyIiwiYnJlYWRjcnVtYlJlbmRlciIsImZvb3RlclRvb2xCYXJQcm9wcyIsImNoaWxkcmVuQ29udGVudFN0eWxlIl07ZnVuY3Rpb24gSnQodCl7cmV0dXJuKDAsSy5aKSh0KT09PSJvYmplY3QiP3Q6e3NwaW5uaW5nOnR9fXZhciBxdD1mdW5jdGlvbihlKXt2YXIgbj1lLnRhYkxpc3Qscj1lLnRhYkFjdGl2ZUtleSxhPWUub25UYWJDaGFuZ2UsdT1lLmhhc2hJZCxzPWUudGFiQmFyRXh0cmFDb250ZW50LHY9ZS50YWJQcm9wcyxQPWUucHJlZml4ZWRDbGFzc05hbWU7cmV0dXJuIEFycmF5LmlzQXJyYXkobil8fHM/KDAsYy5qc3gpKG1lLlosKDAsZC5aKSgoMCxkLlopKHtjbGFzc05hbWU6IiIuY29uY2F0KFAsIi10YWJzICIpLmNvbmNhdCh1KS50cmltKCksYWN0aXZlS2V5OnIsb25DaGFuZ2U6ZnVuY3Rpb24oQyl7YSYmYShDKX0sdGFiQmFyRXh0cmFDb250ZW50OnMsaXRlbXM6bj09bnVsbD92b2lkIDA6bi5tYXAoZnVuY3Rpb24oaCxDKXt2YXIgbTtyZXR1cm4oMCxkLlopKCgwLGQuWikoe2xhYmVsOmgudGFifSxoKSx7fSx7a2V5OigobT1oLmtleSk9PT1udWxsfHxtPT09dm9pZCAwP3ZvaWQgMDptLnRvU3RyaW5nKCkpfHwoQz09bnVsbD92b2lkIDA6Qy50b1N0cmluZygpKX0pfSl9LHYpLHt9LHtjaGlsZHJlbjooMCxZdC5uKSh5ZS5aLCI0LjIzLjAiKTwwP249PW51bGw/dm9pZCAwOm4ubWFwKGZ1bmN0aW9uKGgsQyl7cmV0dXJuKDAsYy5qc3gpKG1lLlouVGFiUGFuZSwoMCxkLlopKHt0YWI6aC50YWJ9LGgpLGgua2V5fHxDKX0pOm51bGx9KSk6bnVsbH0sX3Q9ZnVuY3Rpb24oZSxuLHIsYSl7cmV0dXJuIWUmJiFuP251bGw6KDAsYy5qc3gpKCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KHIsIi1kZXRhaWwgIikuY29uY2F0KGEpLnRyaW0oKSxjaGlsZHJlbjooMCxjLmpzeCkoImRpdiIse2NsYXNzTmFtZToiIi5jb25jYXQociwiLW1haW4gIikuY29uY2F0KGEpLnRyaW0oKSxjaGlsZHJlbjooMCxjLmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KHIsIi1yb3cgIikuY29uY2F0KGEpLnRyaW0oKSxjaGlsZHJlbjpbZSYmKDAsYy5qc3gpKCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KHIsIi1jb250ZW50ICIpLmNvbmNhdChhKS50cmltKCksY2hpbGRyZW46ZX0pLG4mJigwLGMuanN4KSgiZGl2Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdChyLCItZXh0cmFDb250ZW50ICIpLmNvbmNhdChhKS50cmltKCksY2hpbGRyZW46bn0pXX0pfSl9KX0sY249ZnVuY3Rpb24oZSl7dmFyIG49dXNlQ29udGV4dChSb3V0ZUNvbnRleHQpO3JldHVybiBfanN4KCJkaXYiLHtzdHlsZTp7aGVpZ2h0OiIxMDAlIixkaXNwbGF5OiJmbGV4IixhbGlnbkl0ZW1zOiJjZW50ZXIifSxjaGlsZHJlbjpfanN4KEJyZWFkY3J1bWIsX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sbj09bnVsbD92b2lkIDA6bi5icmVhZGNydW1iKSxuPT1udWxsP3ZvaWQgMDpuLmJyZWFkY3J1bWJQcm9wcyksZSkpfSl9LGR0PWZ1bmN0aW9uKGUpe3ZhciBuLHI9ZS50aXRsZSxhPWUuY29udGVudCx1PWUucGFnZUhlYWRlclJlbmRlcixzPWUuaGVhZGVyLHY9ZS5wcmVmaXhlZENsYXNzTmFtZSxQPWUuZXh0cmFDb250ZW50LGg9ZS5jaGlsZHJlbkNvbnRlbnRTdHlsZSxDPWUuc3R5bGUsbT1lLnByZWZpeENscyxaPWUuaGFzaElkLHg9ZS52YWx1ZSx5PWUuYnJlYWRjcnVtYlJlbmRlcixmPSgwLFUuWikoZSxRdCkscD1mdW5jdGlvbigpe2lmKHkpcmV0dXJuIHl9O2lmKHU9PT0hMSlyZXR1cm4gbnVsbDtpZih1KXJldHVybigwLGMuanN4cykoYy5GcmFnbWVudCx7Y2hpbGRyZW46WyIgIix1KCgwLGQuWikoKDAsZC5aKSh7fSxlKSx4KSldfSk7dmFyIGc9cjshciYmciE9PSExJiYoZz14LnRpdGxlKTt2YXIgSD0oMCxkLlopKCgwLGQuWikoKDAsZC5aKSh7fSx4KSx7fSx7dGl0bGU6Z30sZikse30se2Zvb3RlcjpxdCgoMCxkLlopKCgwLGQuWikoe30sZikse30se2hhc2hJZDpaLGJyZWFkY3J1bWJSZW5kZXI6eSxwcmVmaXhlZENsYXNzTmFtZTp2fSkpfSxzKSxqPUgsST1qLmJyZWFkY3J1bWIsRj0oIUl8fCEoSSE9bnVsbCYmSS5pdGVtUmVuZGVyKSYmIShJIT1udWxsJiYobj1JLml0ZW1zKSE9PW51bGwmJm4hPT12b2lkIDAmJm4ubGVuZ3RoKSkmJiF5O3JldHVyblsidGl0bGUiLCJzdWJUaXRsZSIsImV4dHJhIiwidGFncyIsImZvb3RlciIsImF2YXRhciIsImJhY2tJY29uIl0uZXZlcnkoZnVuY3Rpb24oYil7cmV0dXJuIUhbYl19KSYmRiYmIWEmJiFQP251bGw6KDAsYy5qc3gpKER0LCgwLGQuWikoKDAsZC5aKSh7fSxIKSx7fSx7Y2xhc3NOYW1lOiIiLmNvbmNhdCh2LCItd2FycC1wYWdlLWhlYWRlciAiKS5jb25jYXQoWikudHJpbSgpLGJyZWFkY3J1bWI6eT09PSExP3ZvaWQgMDooMCxkLlopKCgwLGQuWikoe30sSC5icmVhZGNydW1iKSx4LmJyZWFkY3J1bWJQcm9wcyksYnJlYWRjcnVtYlJlbmRlcjpwKCkscHJlZml4Q2xzOm0sY2hpbGRyZW46KHM9PW51bGw/dm9pZCAwOnMuY2hpbGRyZW4pfHxfdChhLFAsdixaKX0pKX0sZW49ZnVuY3Rpb24oZSl7dmFyIG4scixhPWUuY2hpbGRyZW4sdT1lLmxvYWRpbmcscz11PT09dm9pZCAwPyExOnUsdj1lLmNsYXNzTmFtZSxQPWUuc3R5bGUsaD1lLmZvb3RlcixDPWUuYWZmaXhQcm9wcyxtPWUudG9rZW4sWj1lLmZpeGVkSGVhZGVyLHg9ZS5icmVhZGNydW1iUmVuZGVyLHk9ZS5mb290ZXJUb29sQmFyUHJvcHMsZj1lLmNoaWxkcmVuQ29udGVudFN0eWxlLHA9KDAsVS5aKShlLGt0KSxnPSgwLGkudXNlQ29udGV4dCkoSGUuWCk7KDAsaS51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7dmFyIEU7cmV0dXJuIWd8fCEoZyE9bnVsbCYmZy5zZXRIYXNQYWdlQ29udGFpbmVyKT9mdW5jdGlvbigpe306KGc9PW51bGx8fChFPWcuc2V0SGFzUGFnZUNvbnRhaW5lcik9PT1udWxsfHxFPT09dm9pZCAwfHxFLmNhbGwoZyxmdW5jdGlvbihEKXtyZXR1cm4gRCsxfSksZnVuY3Rpb24oKXt2YXIgRDtnPT1udWxsfHwoRD1nLnNldEhhc1BhZ2VDb250YWluZXIpPT09bnVsbHx8RD09PXZvaWQgMHx8RC5jYWxsKGcsZnVuY3Rpb24obmUpe3JldHVybiBuZS0xfSl9KX0sW10pO3ZhciBIPSgwLGkudXNlQ29udGV4dCkoZGUuTF8pLGo9SC50b2tlbixJPSgwLGkudXNlQ29udGV4dCkoY2UuWlAuQ29uZmlnQ29udGV4dCksRj1JLmdldFByZWZpeENscyxiPWUucHJlZml4Q2xzfHxGKCJwcm8iKSxCPSIiLmNvbmNhdChiLCItcGFnZS1jb250YWluZXIiKSwkPUd0KEIsbSksdz0kLndyYXBTU1IsUj0kLmhhc2hJZCxMPVZ0KCIiLmNvbmNhdChCLCIuIikuY29uY2F0KEIsIi1zdHlsaXNoIikse3N0eWxpc2g6ZS5zdHlsaXNofSksUT0oMCxpLnVzZU1lbW8pKGZ1bmN0aW9uKCl7dmFyIEU7cmV0dXJuIHg9PSExPyExOnh8fChwPT1udWxsfHwoRT1wLmhlYWRlcik9PT1udWxsfHxFPT09dm9pZCAwP3ZvaWQgMDpFLmJyZWFkY3J1bWJSZW5kZXIpfSxbeCxwPT1udWxsfHwobj1wLmhlYWRlcik9PT1udWxsfHxuPT09dm9pZCAwP3ZvaWQgMDpuLmJyZWFkY3J1bWJSZW5kZXJdKSxPPWR0KCgwLGQuWikoKDAsZC5aKSh7fSxwKSx7fSx7YnJlYWRjcnVtYlJlbmRlcjpRLGdob3N0OiEwLGhhc2hJZDpSLHByZWZpeENsczp2b2lkIDAscHJlZml4ZWRDbGFzc05hbWU6Qix2YWx1ZTpnfSkpLFY9KDAsaS51c2VNZW1vKShmdW5jdGlvbigpe2lmKGkuaXNWYWxpZEVsZW1lbnQocykpcmV0dXJuIHM7aWYodHlwZW9mIHM9PSJib29sZWFuIiYmIXMpcmV0dXJuIG51bGw7dmFyIEU9SnQocyk7cmV0dXJuIEUuc3Bpbm5pbmc/KDAsYy5qc3gpKHp0LlMsKDAsZC5aKSh7fSxFKSk6bnVsbH0sW3NdKSxKPSgwLGkudXNlTWVtbykoZnVuY3Rpb24oKXtyZXR1cm4gYT8oMCxjLmpzeCkoYy5GcmFnbWVudCx7Y2hpbGRyZW46KDAsYy5qc3gpKCJkaXYiLHtjbGFzc05hbWU6QSgpKFIsIiIuY29uY2F0KEIsIi1jaGlsZHJlbi1jb250YWluZXIiKSwoMCxvLlopKHt9LCIiLmNvbmNhdChCLCItY2hpbGRyZW4tY29udGFpbmVyLW5vLWhlYWRlciIpLCFPKSksc3R5bGU6ZixjaGlsZHJlbjphfSl9KTpudWxsfSxbYSxCLGYsUl0pLFk9KDAsaS51c2VNZW1vKShmdW5jdGlvbigpe3ZhciBFPVZ8fEo7aWYoZS53YXRlck1hcmtQcm9wc3x8Zy53YXRlck1hcmtQcm9wcyl7dmFyIEQ9KDAsZC5aKSgoMCxkLlopKHt9LGcud2F0ZXJNYXJrUHJvcHMpLGUud2F0ZXJNYXJrUHJvcHMpO3JldHVybigwLGMuanN4KShMdCwoMCxkLlopKCgwLGQuWikoe30sRCkse30se2NoaWxkcmVuOkV9KSl9cmV0dXJuIEV9LFtlLndhdGVyTWFya1Byb3BzLGcud2F0ZXJNYXJrUHJvcHMsVixKXSksVz1BKCkoQixSLHYsKDAsby5aKSgoMCxvLlopKCgwLG8uWikoe30sIiIuY29uY2F0KEIsIi13aXRoLWZvb3RlciIpLGgpLCIiLmNvbmNhdChCLCItd2l0aC1hZmZpeCIpLFomJk8pLCIiLmNvbmNhdChCLCItc3R5bGlzaCIpLCEhcC5zdHlsaXNoKSk7cmV0dXJuIHcoTC53cmFwU1NSKCgwLGMuanN4cykoYy5GcmFnbWVudCx7Y2hpbGRyZW46WygwLGMuanN4cykoImRpdiIse3N0eWxlOlAsY2xhc3NOYW1lOlcsY2hpbGRyZW46W1omJk8/KDAsYy5qc3gpKFBlLCgwLGQuWikoKDAsZC5aKSh7b2Zmc2V0VG9wOmcuaGFzSGVhZGVyJiZnLmZpeGVkSGVhZGVyPyhyPWoubGF5b3V0KT09PW51bGx8fHI9PT12b2lkIDB8fChyPXIuaGVhZGVyKT09PW51bGx8fHI9PT12b2lkIDA/dm9pZCAwOnIuaGVpZ2h0TGF5b3V0SGVhZGVyOjF9LEMpLHt9LHtjbGFzc05hbWU6IiIuY29uY2F0KEIsIi1hZmZpeCAiKS5jb25jYXQoUikudHJpbSgpLGNoaWxkcmVuOigwLGMuanN4KSgiZGl2Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdChCLCItd2FycCAiKS5jb25jYXQoUikudHJpbSgpLGNoaWxkcmVuOk99KX0pKTpPLFkmJigwLGMuanN4KSh3ZSx7Y2hpbGRyZW46WX0pXX0pLGgmJigwLGMuanN4KShxLlMsKDAsZC5aKSgoMCxkLlopKHtzdHlsaXNoOnAuZm9vdGVyU3R5bGlzaCxwcmVmaXhDbHM6Yn0seSkse30se2NoaWxkcmVuOmh9KSldfSkpKX0sdG49ZnVuY3Rpb24oZSl7cmV0dXJuKDAsYy5qc3gpKGRlLl9ZLHtuZWVkRGVwczohMCxjaGlsZHJlbjooMCxjLmpzeCkoZW4sKDAsZC5aKSh7fSxlKSl9KX0sc249ZnVuY3Rpb24oZSl7dmFyIG49dXNlQ29udGV4dChSb3V0ZUNvbnRleHQpO3JldHVybiBkdChfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sZSkse30se2hhc2hJZDoiIix2YWx1ZTpufSkpfX0sODM4MzI6ZnVuY3Rpb24obGUseixsKXtsLmQoeix7UzpmdW5jdGlvbigpe3JldHVybiB5ZX19KTt2YXIgbz1sKDE0MTMpLFU9bCg5MSksZD1sKDU3MzgxKSxLPWwoNjcyOTQpLGRlPWwoODU4OTMpLG1lPVsiaXNMb2FkaW5nIiwicGFzdERlbGF5IiwidGltZWRPdXQiLCJlcnJvciIsInJldHJ5Il0seWU9ZnVuY3Rpb24oaSl7dmFyIEJlPWkuaXNMb2FkaW5nLEE9aS5wYXN0RGVsYXkscmU9aS50aW1lZE91dCxSZT1pLmVycm9yLHBlPWkucmV0cnkseGU9KDAsVS5aKShpLG1lKTtyZXR1cm4oMCxkZS5qc3gpKCJkaXYiLHtzdHlsZTp7cGFkZGluZ0Jsb2NrU3RhcnQ6MTAwLHRleHRBbGlnbjoiY2VudGVyIn0sY2hpbGRyZW46KDAsZGUuanN4KShkLlosKDAsby5aKSh7c2l6ZToibGFyZ2UifSx4ZSkpfSl9fSw3NjUwOTpmdW5jdGlvbihsZSx6LGwpe2wuZCh6LHtYOmZ1bmN0aW9uKCl7cmV0dXJuIFV9fSk7dmFyIG89bCg2NzI5NCksVT0oMCxvLmNyZWF0ZUNvbnRleHQpKHt9KX19XSk7CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzYxNTQuN2JjNjQ4ZmMuYXN5bmMuanMgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzYxNTQuN2JjNjQ4ZmMuYXN5bmMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTM5NmQwOAotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNjE1NC43YmM2NDhmYy5hc3luYy5qcwpAQCAtMCwwICsxLDYzIEBACisidXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W10pLnB1c2goW1s2MTU0XSx7ODQxNjQ6ZnVuY3Rpb24oQm4sQXQsUyl7dmFyIG89Uyg2NzI5NCk7Y29uc3QgV2U9KHVlLGNlLGV0KT0+e2NvbnN0IFplPW8udXNlUmVmKHt9KTtmdW5jdGlvbiB1dChndCl7dmFyIGZ0O2lmKCFaZS5jdXJyZW50fHxaZS5jdXJyZW50LmRhdGEhPT11ZXx8WmUuY3VycmVudC5jaGlsZHJlbkNvbHVtbk5hbWUhPT1jZXx8WmUuY3VycmVudC5nZXRSb3dLZXkhPT1ldCl7bGV0IFRlPWZ1bmN0aW9uKE90KXtPdC5mb3JFYWNoKCh3dCxXdCk9Pntjb25zdCB4bj1ldCh3dCxXdCk7UmUuc2V0KHhuLHd0KSx3dCYmdHlwZW9mIHd0PT0ib2JqZWN0IiYmY2UgaW4gd3QmJlRlKHd0W2NlXXx8W10pfSl9O2NvbnN0IFJlPW5ldyBNYXA7VGUodWUpLFplLmN1cnJlbnQ9e2RhdGE6dWUsY2hpbGRyZW5Db2x1bW5OYW1lOmNlLGt2TWFwOlJlLGdldFJvd0tleTpldH19cmV0dXJuKGZ0PVplLmN1cnJlbnQua3ZNYXApPT09bnVsbHx8ZnQ9PT12b2lkIDA/dm9pZCAwOmZ0LmdldChndCl9cmV0dXJuW3V0XX07QXQuWj1XZX0sOTYxNTQ6ZnVuY3Rpb24oQm4sQXQsUyl7Uy5kKEF0LHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGphfX0pO3ZhciBvPVMoNjcyOTQpLFdlPXt9LHVlPSJyYy10YWJsZS1pbnRlcm5hbC1ob29rIixjZT1TKDk3Njg1KSxldD1TKDY2NjgwKSxaZT1TKDg0MTApLHV0PVMoOTE4ODEpLGd0PVMoNzM5MzUpO2Z1bmN0aW9uIGZ0KGUpe3ZhciB0PW8uY3JlYXRlQ29udGV4dCh2b2lkIDApLG49ZnVuY3Rpb24obCl7dmFyIGE9bC52YWx1ZSxzPWwuY2hpbGRyZW4saT1vLnVzZVJlZihhKTtpLmN1cnJlbnQ9YTt2YXIgYz1vLnVzZVN0YXRlKGZ1bmN0aW9uKCl7cmV0dXJue2dldFZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIGkuY3VycmVudH0sbGlzdGVuZXJzOm5ldyBTZXR9fSksZD0oMCxjZS5aKShjLDEpLHA9ZFswXTtyZXR1cm4oMCxaZS5aKShmdW5jdGlvbigpeygwLGd0LnVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzKShmdW5jdGlvbigpe3AubGlzdGVuZXJzLmZvckVhY2goZnVuY3Rpb24oZil7ZihhKX0pfSl9LFthXSksby5jcmVhdGVFbGVtZW50KHQuUHJvdmlkZXIse3ZhbHVlOnB9LHMpfTtyZXR1cm57Q29udGV4dDp0LFByb3ZpZGVyOm4sZGVmYXVsdFZhbHVlOmV9fWZ1bmN0aW9uIFJlKGUsdCl7dmFyIG49KDAsZXQuWikodHlwZW9mIHQ9PSJmdW5jdGlvbiI/dDpmdW5jdGlvbihmKXtpZih0PT09dm9pZCAwKXJldHVybiBmO2lmKCFBcnJheS5pc0FycmF5KHQpKXJldHVybiBmW3RdO3ZhciBtPXt9O3JldHVybiB0LmZvckVhY2goZnVuY3Rpb24odSl7bVt1XT1mW3VdfSksbX0pLHI9by51c2VDb250ZXh0KGU9PW51bGw/dm9pZCAwOmUuQ29udGV4dCksbD1yfHx7fSxhPWwubGlzdGVuZXJzLHM9bC5nZXRWYWx1ZSxpPW8udXNlUmVmKCk7aS5jdXJyZW50PW4ocj9zKCk6ZT09bnVsbD92b2lkIDA6ZS5kZWZhdWx0VmFsdWUpO3ZhciBjPW8udXNlU3RhdGUoe30pLGQ9KDAsY2UuWikoYywyKSxwPWRbMV07cmV0dXJuKDAsWmUuWikoZnVuY3Rpb24oKXtpZighcilyZXR1cm47ZnVuY3Rpb24gZihtKXt2YXIgdT1uKG0pOygwLHV0LlopKGkuY3VycmVudCx1LCEwKXx8cCh7fSl9cmV0dXJuIGEuYWRkKGYpLGZ1bmN0aW9uKCl7YS5kZWxldGUoZil9fSxbcl0pLGkuY3VycmVudH12YXIgVGU9Uyg4NzQ2MiksT3Q9Uyg0MjU1MCk7ZnVuY3Rpb24gd3QoKXt2YXIgZT1vLmNyZWF0ZUNvbnRleHQobnVsbCk7ZnVuY3Rpb24gdCgpe3JldHVybiBvLnVzZUNvbnRleHQoZSl9ZnVuY3Rpb24gbihsLGEpe3ZhciBzPSgwLE90LllyKShsKSxpPWZ1bmN0aW9uKGQscCl7dmFyIGY9cz97cmVmOnB9Ont9LG09by51c2VSZWYoMCksdT1vLnVzZVJlZihkKSx2PXQoKTtyZXR1cm4gdiE9PW51bGw/by5jcmVhdGVFbGVtZW50KGwsKDAsVGUuWikoe30sZCxmKSk6KCghYXx8YSh1LmN1cnJlbnQsZCkpJiYobS5jdXJyZW50Kz0xKSx1LmN1cnJlbnQ9ZCxvLmNyZWF0ZUVsZW1lbnQoZS5Qcm92aWRlcix7dmFsdWU6bS5jdXJyZW50fSxvLmNyZWF0ZUVsZW1lbnQobCwoMCxUZS5aKSh7fSxkLGYpKSkpfTtyZXR1cm4gcz9vLmZvcndhcmRSZWYoaSk6aX1mdW5jdGlvbiByKGwsYSl7dmFyIHM9KDAsT3QuWXIpKGwpLGk9ZnVuY3Rpb24oZCxwKXt2YXIgZj1zP3tyZWY6cH06e307cmV0dXJuIHQoKSxvLmNyZWF0ZUVsZW1lbnQobCwoMCxUZS5aKSh7fSxkLGYpKX07cmV0dXJuIHM/by5tZW1vKG8uZm9yd2FyZFJlZihpKSxhKTpvLm1lbW8oaSxhKX1yZXR1cm57bWFrZUltbXV0YWJsZTpuLHJlc3BvbnNlSW1tdXRhYmxlOnIsdXNlSW1tdXRhYmxlTWFyazp0fX12YXIgV3Q9d3QoKSx4bj1XdC5tYWtlSW1tdXRhYmxlLEtuPVd0LnJlc3BvbnNlSW1tdXRhYmxlLHVyPVd0LnVzZUltbXV0YWJsZU1hcmssYW49d3QoKSx5bj1hbi5tYWtlSW1tdXRhYmxlLFZ0PWFuLnJlc3BvbnNlSW1tdXRhYmxlLGJuPWFuLnVzZUltbXV0YWJsZU1hcmssQ249ZnQoKSxBZT1DbjtmdW5jdGlvbiBNbihlLHQpe3ZhciBuPVJlYWN0LnVzZVJlZigwKTtuLmN1cnJlbnQrPTE7dmFyIHI9UmVhY3QudXNlUmVmKGUpLGw9W107T2JqZWN0LmtleXMoZXx8e30pLm1hcChmdW5jdGlvbihzKXt2YXIgaTsoZT09bnVsbD92b2lkIDA6ZVtzXSkhPT0oKGk9ci5jdXJyZW50KT09PW51bGx8fGk9PT12b2lkIDA/dm9pZCAwOmlbc10pJiZsLnB1c2gocyl9KSxyLmN1cnJlbnQ9ZTt2YXIgYT1SZWFjdC51c2VSZWYoW10pO3JldHVybiBsLmxlbmd0aCYmKGEuY3VycmVudD1sKSxSZWFjdC51c2VEZWJ1Z1ZhbHVlKG4uY3VycmVudCksUmVhY3QudXNlRGVidWdWYWx1ZShhLmN1cnJlbnQuam9pbigiLCAiKSksdCYmY29uc29sZS5sb2coIiIuY29uY2F0KHQsIjoiKSxuLmN1cnJlbnQsYS5jdXJyZW50KSxuLmN1cnJlbnR9dmFyIFNuPW51bGwsZnI9bnVsbCxFdD1TKDcxMDAyKSxMPVMoMTQxMykscT1TKDQ5NDIpLHduPVMoOTM5NjcpLG5lPVMubih3biksSG49Uyg1Njk4Miksc249Uyg4ODMwNiksRW49Uyg4MDMzNCksRm49by5jcmVhdGVDb250ZXh0KHtyZW5kZXJXaXRoUHJvcHM6ITF9KSxnZT1GbixIZT0iUkNfVEFCTEVfS0VZIjtmdW5jdGlvbiBrZShlKXtyZXR1cm4gZT09bnVsbD9bXTpBcnJheS5pc0FycmF5KGUpP2U6W2VdfWZ1bmN0aW9uIGxlKGUpe3ZhciB0PVtdLG49e307cmV0dXJuIGUuZm9yRWFjaChmdW5jdGlvbihyKXtmb3IodmFyIGw9cnx8e30sYT1sLmtleSxzPWwuZGF0YUluZGV4LGk9YXx8a2Uocykuam9pbigiLSIpfHxIZTtuW2ldOylpPSIiLmNvbmNhdChpLCJfbmV4dCIpO25baV09ITAsdC5wdXNoKGkpfSksdH1mdW5jdGlvbiBoZShlKXtyZXR1cm4gZSE9bnVsbH1mdW5jdGlvbiBhZShlKXtyZXR1cm4gdHlwZW9mIGU9PSJudW1iZXIiJiYhTnVtYmVyLmlzTmFOKGUpfWZ1bmN0aW9uICRlKGUpe3JldHVybiBlJiYoMCxFdC5aKShlKT09PSJvYmplY3QiJiYhQXJyYXkuaXNBcnJheShlKSYmIW8uaXNWYWxpZEVsZW1lbnQoZSl9ZnVuY3Rpb24gRmUoZSx0LG4scixsLGEpe3ZhciBzPW8udXNlQ29udGV4dChnZSksaT1ibigpLGM9KDAsSG4uWikoZnVuY3Rpb24oKXtpZihoZShyKSlyZXR1cm5bcl07dmFyIGQ9dD09bnVsbHx8dD09PSIiP1tdOkFycmF5LmlzQXJyYXkodCk/dDpbdF0scD0oMCxzbi5aKShlLGQpLGY9cCxtPXZvaWQgMDtpZihsKXt2YXIgdT1sKHAsZSxuKTskZSh1KT8oZj11LmNoaWxkcmVuLG09dS5wcm9wcyxzLnJlbmRlcldpdGhQcm9wcz0hMCk6Zj11fXJldHVybltmLG1dfSxbaSxlLHIsdCxsLG5dLGZ1bmN0aW9uKGQscCl7aWYoYSl7dmFyIGY9KDAsY2UuWikoZCwyKSxtPWZbMV0sdT0oMCxjZS5aKShwLDIpLHY9dVsxXTtyZXR1cm4gYSh2LG0pfXJldHVybiBzLnJlbmRlcldpdGhQcm9wcz8hMDohKDAsdXQuWikoZCxwLCEwKX0pO3JldHVybiBjfWZ1bmN0aW9uIHR0KGUsdCxuLHIpe3ZhciBsPWUrdC0xO3JldHVybiBlPD1yJiZsPj1ufWZ1bmN0aW9uIGl0KGUsdCl7cmV0dXJuIFJlKEFlLGZ1bmN0aW9uKG4pe3ZhciByPXR0KGUsdHx8MSxuLmhvdmVyU3RhcnRSb3csbi5ob3ZlckVuZFJvdyk7cmV0dXJuW3Isbi5vbkhvdmVyXX0pfXZhciBSdD1TKDU2NzkwKSxfdD1mdW5jdGlvbih0KXt2YXIgbj10LmVsbGlwc2lzLHI9dC5yb3dUeXBlLGw9dC5jaGlsZHJlbixhLHM9bj09PSEwP3tzaG93VGl0bGU6ITB9Om47cmV0dXJuIHMmJihzLnNob3dUaXRsZXx8cj09PSJoZWFkZXIiKSYmKHR5cGVvZiBsPT0ic3RyaW5nInx8dHlwZW9mIGw9PSJudW1iZXIiP2E9bC50b1N0cmluZygpOm8uaXNWYWxpZEVsZW1lbnQobCkmJnR5cGVvZiBsLnByb3BzLmNoaWxkcmVuPT0ic3RyaW5nIiYmKGE9bC5wcm9wcy5jaGlsZHJlbikpLGF9O2Z1bmN0aW9uIGVuKGUpe3ZhciB0LG4scixsLGEscyxpLGMsZD1lLmNvbXBvbmVudCxwPWUuY2hpbGRyZW4sZj1lLmVsbGlwc2lzLG09ZS5zY29wZSx1PWUucHJlZml4Q2xzLHY9ZS5jbGFzc05hbWUseD1lLmFsaWduLGc9ZS5yZWNvcmQseT1lLnJlbmRlcixiPWUuZGF0YUluZGV4LGg9ZS5yZW5kZXJJbmRleCx3PWUuc2hvdWxkQ2VsbFVwZGF0ZSxSPWUuaW5kZXgsWj1lLnJvd1R5cGUsVD1lLmNvbFNwYW4sVj1lLnJvd1NwYW4sRj1lLmZpeExlZnQsej1lLmZpeFJpZ2h0LGo9ZS5maXJzdEZpeExlZnQsaz1lLmxhc3RGaXhMZWZ0LE49ZS5maXJzdEZpeFJpZ2h0LCQ9ZS5sYXN0Rml4UmlnaHQsQz1lLmFwcGVuZE5vZGUsST1lLmFkZGl0aW9uYWxQcm9wcyxQPUk9PT12b2lkIDA/e306SSxNPWUuaXNTdGlja3ksRT0iIi5jb25jYXQodSwiLWNlbGwiKSxVPVJlKEFlLFsic3VwcG9ydFN0aWNreSIsImFsbENvbHVtbnNGaXhlZExlZnQiLCJyb3dIb3ZlcmFibGUiXSksRz1VLnN1cHBvcnRTdGlja3ksTmU9VS5hbGxDb2x1bW5zRml4ZWRMZWZ0LGJlPVUucm93SG92ZXJhYmxlLG1lPUZlKGcsYixoLHAseSx3KSxFZT0oMCxjZS5aKShtZSwyKSxWZT1FZVswXSxZPUVlWzFdLEo9e30sQmU9dHlwZW9mIEY9PSJudW1iZXIiJiZHLHplPXR5cGVvZiB6PT0ibnVtYmVyIiYmRztCZSYmKEoucG9zaXRpb249InN0aWNreSIsSi5sZWZ0PUYpLHplJiYoSi5wb3NpdGlvbj0ic3RpY2t5IixKLnJpZ2h0PXopO3ZhciBCPSh0PShuPShyPVk9PW51bGw/dm9pZCAwOlkuY29sU3BhbikhPT1udWxsJiZyIT09dm9pZCAwP3I6UC5jb2xTcGFuKSE9PW51bGwmJm4hPT12b2lkIDA/bjpUKSE9PW51bGwmJnQhPT12b2lkIDA/dDoxLFc9KGw9KGE9KHM9WT09bnVsbD92b2lkIDA6WS5yb3dTcGFuKSE9PW51bGwmJnMhPT12b2lkIDA/czpQLnJvd1NwYW4pIT09bnVsbCYmYSE9PXZvaWQgMD9hOlYpIT09bnVsbCYmbCE9PXZvaWQgMD9sOjEsTz1pdChSLFcpLEg9KDAsY2UuWikoTywyKSxfPUhbMF0sdGU9SFsxXSxDZT0oMCxSdC56WCkoZnVuY3Rpb24oU2Upe3ZhciBkZTtnJiZ0ZShSLFIrVy0xKSxQPT1udWxsfHwoZGU9UC5vbk1vdXNlRW50ZXIpPT09bnVsbHx8ZGU9PT12b2lkIDB8fGRlLmNhbGwoUCxTZSl9KSx2ZT0oMCxSdC56WCkoZnVuY3Rpb24oU2Upe3ZhciBkZTtnJiZ0ZSgtMSwtMSksUD09bnVsbHx8KGRlPVAub25Nb3VzZUxlYXZlKT09PW51bGx8fGRlPT09dm9pZCAwfHxkZS5jYWxsKFAsU2UpfSk7aWYoQj09PTB8fFc9PT0wKXJldHVybiBudWxsO3ZhciBYZT0oaT1QLnRpdGxlKSE9PW51bGwmJmkhPT12b2lkIDA/aTpfdCh7cm93VHlwZTpaLGVsbGlwc2lzOmYsY2hpbGRyZW46VmV9KSxVZT1uZSgpKEUsdiwoYz17fSwoMCxxLlopKCgwLHEuWikoKDAscS5aKSgoMCxxLlopKCgwLHEuWikoKDAscS5aKSgoMCxxLlopKCgwLHEuWikoKDAscS5aKSgoMCxxLlopKGMsIiIuY29uY2F0KEUsIi1maXgtbGVmdCIpLEJlJiZHKSwiIi5jb25jYXQoRSwiLWZpeC1sZWZ0LWZpcnN0IiksaiYmRyksIiIuY29uY2F0KEUsIi1maXgtbGVmdC1sYXN0IiksayYmRyksIiIuY29uY2F0KEUsIi1maXgtbGVmdC1hbGwiKSxrJiZOZSYmRyksIiIuY29uY2F0KEUsIi1maXgtcmlnaHQiKSx6ZSYmRyksIiIuY29uY2F0KEUsIi1maXgtcmlnaHQtZmlyc3QiKSxOJiZHKSwiIi5jb25jYXQoRSwiLWZpeC1yaWdodC1sYXN0IiksJCYmRyksIiIuY29uY2F0KEUsIi1lbGxpcHNpcyIpLGYpLCIiLmNvbmNhdChFLCItd2l0aC1hcHBlbmQiKSxDKSwiIi5jb25jYXQoRSwiLWZpeC1zdGlja3kiKSwoQmV8fHplKSYmTSYmRyksKDAscS5aKShjLCIiLmNvbmNhdChFLCItcm93LWhvdmVyIiksIVkmJl8pKSxQLmNsYXNzTmFtZSxZPT1udWxsP3ZvaWQgMDpZLmNsYXNzTmFtZSksSz17fTt4JiYoSy50ZXh0QWxpZ249eCk7dmFyIEQ9KDAsTC5aKSgoMCxMLlopKCgwLEwuWikoKDAsTC5aKSh7fSxZPT1udWxsP3ZvaWQgMDpZLnN0eWxlKSxKKSxLKSxQLnN0eWxlKSxyZT1WZTtyZXR1cm4oMCxFdC5aKShyZSk9PT0ib2JqZWN0IiYmIUFycmF5LmlzQXJyYXkocmUpJiYhby5pc1ZhbGlkRWxlbWVudChyZSkmJihyZT1udWxsKSxmJiYoa3x8TikmJihyZT1vLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6IiIuY29uY2F0KEUsIi1jb250ZW50Iil9LHJlKSksby5jcmVhdGVFbGVtZW50KGQsKDAsVGUuWikoe30sWSxQLHtjbGFzc05hbWU6VWUsc3R5bGU6RCx0aXRsZTpYZSxzY29wZTptLG9uTW91c2VFbnRlcjpiZT9DZTp2b2lkIDAsb25Nb3VzZUxlYXZlOmJlP3ZlOnZvaWQgMCxjb2xTcGFuOkIhPT0xP0I6bnVsbCxyb3dTcGFuOlchPT0xP1c6bnVsbH0pLEMscmUpfXZhciAkdD1vLm1lbW8oZW4pO2Z1bmN0aW9uIFh0KGUsdCxuLHIsbCl7dmFyIGE9bltlXXx8e30scz1uW3RdfHx7fSxpLGM7YS5maXhlZD09PSJsZWZ0Ij9pPXIubGVmdFtsPT09InJ0bCI/dDplXTpzLmZpeGVkPT09InJpZ2h0IiYmKGM9ci5yaWdodFtsPT09InJ0bCI/ZTp0XSk7dmFyIGQ9ITEscD0hMSxmPSExLG09ITEsdT1uW3QrMV0sdj1uW2UtMV0seD11JiYhdS5maXhlZHx8diYmIXYuZml4ZWR8fG4uZXZlcnkoZnVuY3Rpb24odyl7cmV0dXJuIHcuZml4ZWQ9PT0ibGVmdCJ9KTtpZihsPT09InJ0bCIpe2lmKGkhPT12b2lkIDApe3ZhciBnPXYmJnYuZml4ZWQ9PT0ibGVmdCI7bT0hZyYmeH1lbHNlIGlmKGMhPT12b2lkIDApe3ZhciB5PXUmJnUuZml4ZWQ9PT0icmlnaHQiO2Y9IXkmJnh9fWVsc2UgaWYoaSE9PXZvaWQgMCl7dmFyIGI9dSYmdS5maXhlZD09PSJsZWZ0IjtkPSFiJiZ4fWVsc2UgaWYoYyE9PXZvaWQgMCl7dmFyIGg9diYmdi5maXhlZD09PSJyaWdodCI7cD0haCYmeH1yZXR1cm57Zml4TGVmdDppLGZpeFJpZ2h0OmMsbGFzdEZpeExlZnQ6ZCxmaXJzdEZpeFJpZ2h0OnAsbGFzdEZpeFJpZ2h0OmYsZmlyc3RGaXhMZWZ0Om0saXNTdGlja3k6ci5pc1N0aWNreX19dmFyIFV0PW8uY3JlYXRlQ29udGV4dCh7fSksQnQ9VXQ7ZnVuY3Rpb24gWnQoZSl7dmFyIHQ9ZS5jbGFzc05hbWUsbj1lLmluZGV4LHI9ZS5jaGlsZHJlbixsPWUuY29sU3BhbixhPWw9PT12b2lkIDA/MTpsLHM9ZS5yb3dTcGFuLGk9ZS5hbGlnbixjPVJlKEFlLFsicHJlZml4Q2xzIiwiZGlyZWN0aW9uIl0pLGQ9Yy5wcmVmaXhDbHMscD1jLmRpcmVjdGlvbixmPW8udXNlQ29udGV4dChCdCksbT1mLnNjcm9sbENvbHVtbkluZGV4LHU9Zi5zdGlja3lPZmZzZXRzLHY9Zi5mbGF0dGVuQ29sdW1ucyx4PW4rYS0xLGc9eCsxPT09bT9hKzE6YSx5PVh0KG4sbitnLTEsdix1LHApO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoJHQsKDAsVGUuWikoe2NsYXNzTmFtZTp0LGluZGV4Om4sY29tcG9uZW50OiJ0ZCIscHJlZml4Q2xzOmQscmVjb3JkOm51bGwsZGF0YUluZGV4Om51bGwsYWxpZ246aSxjb2xTcGFuOmcscm93U3BhbjpzLHJlbmRlcjpmdW5jdGlvbigpe3JldHVybiByfX0seSkpfXZhciBtdD1TKDkxKSxjbj1bImNoaWxkcmVuIl07ZnVuY3Rpb24gaHQoZSl7dmFyIHQ9ZS5jaGlsZHJlbixuPSgwLG10LlopKGUsY24pO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoInRyIixuLHQpfWZ1bmN0aW9uIEd0KGUpe3ZhciB0PWUuY2hpbGRyZW47cmV0dXJuIHR9R3QuUm93PWh0LEd0LkNlbGw9WnQ7dmFyIEt0PUd0O2Z1bmN0aW9uIGRuKGUpe3ZhciB0PWUuY2hpbGRyZW4sbj1lLnN0aWNreU9mZnNldHMscj1lLmZsYXR0ZW5Db2x1bW5zLGw9UmUoQWUsInByZWZpeENscyIpLGE9ci5sZW5ndGgtMSxzPXJbYV0saT1vLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm57c3RpY2t5T2Zmc2V0czpuLGZsYXR0ZW5Db2x1bW5zOnIsc2Nyb2xsQ29sdW1uSW5kZXg6cyE9bnVsbCYmcy5zY3JvbGxiYXI/YTpudWxsfX0sW3MscixhLG5dKTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KEJ0LlByb3ZpZGVyLHt2YWx1ZTppfSxvLmNyZWF0ZUVsZW1lbnQoInRmb290Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdChsLCItc3VtbWFyeSIpfSx0KSl9dmFyIHN0PVZ0KGRuKSxjdD1LdCx2dD1TKDQ4NTU1KSxNdD1TKDUxMTApLEh0PVMoNzkzNzApLEZ0PVMoNzQyMDQpLGR0PVMoNjQyMTcpO2Z1bmN0aW9uIF9lKGUsdCxuLHIsbCxhLHMpe2UucHVzaCh7cmVjb3JkOnQsaW5kZW50Om4saW5kZXg6c30pO3ZhciBpPWEodCksYz1sPT1udWxsP3ZvaWQgMDpsLmhhcyhpKTtpZih0JiZBcnJheS5pc0FycmF5KHRbcl0pJiZjKWZvcih2YXIgZD0wO2Q8dFtyXS5sZW5ndGg7ZCs9MSlfZShlLHRbcl1bZF0sbisxLHIsbCxhLGQpfWZ1bmN0aW9uIFl0KGUsdCxuLHIpe3ZhciBsPW8udXNlTWVtbyhmdW5jdGlvbigpe2lmKG4hPW51bGwmJm4uc2l6ZSl7Zm9yKHZhciBhPVtdLHM9MDtzPChlPT1udWxsP3ZvaWQgMDplLmxlbmd0aCk7cys9MSl7dmFyIGk9ZVtzXTtfZShhLGksMCx0LG4scixzKX1yZXR1cm4gYX1yZXR1cm4gZT09bnVsbD92b2lkIDA6ZS5tYXAoZnVuY3Rpb24oYyxkKXtyZXR1cm57cmVjb3JkOmMsaW5kZW50OjAsaW5kZXg6ZH19KX0sW2UsdCxuLHJdKTtyZXR1cm4gbH1mdW5jdGlvbiBKdChlLHQsbixyKXt2YXIgbD1SZShBZSxbInByZWZpeENscyIsImZpeGVkSW5mb0xpc3QiLCJmbGF0dGVuQ29sdW1ucyIsImV4cGFuZGFibGVUeXBlIiwiZXhwYW5kUm93QnlDbGljayIsIm9uVHJpZ2dlckV4cGFuZCIsInJvd0NsYXNzTmFtZSIsImV4cGFuZGVkUm93Q2xhc3NOYW1lIiwiaW5kZW50U2l6ZSIsImV4cGFuZEljb24iLCJleHBhbmRlZFJvd1JlbmRlciIsImV4cGFuZEljb25Db2x1bW5JbmRleCIsImV4cGFuZGVkS2V5cyIsImNoaWxkcmVuQ29sdW1uTmFtZSIsInJvd0V4cGFuZGFibGUiLCJvblJvdyJdKSxhPWwuZmxhdHRlbkNvbHVtbnMscz1sLmV4cGFuZGFibGVUeXBlLGk9bC5leHBhbmRlZEtleXMsYz1sLmNoaWxkcmVuQ29sdW1uTmFtZSxkPWwub25UcmlnZ2VyRXhwYW5kLHA9bC5yb3dFeHBhbmRhYmxlLGY9bC5vblJvdyxtPWwuZXhwYW5kUm93QnlDbGljayx1PWwucm93Q2xhc3NOYW1lLHY9cz09PSJuZXN0Iix4PXM9PT0icm93IiYmKCFwfHxwKGUpKSxnPXh8fHYseT1pJiZpLmhhcyh0KSxiPWMmJmUmJmVbY10saD0oMCxSdC56WCkoZCksdz1mPT1udWxsP3ZvaWQgMDpmKGUsbiksUj13PT1udWxsP3ZvaWQgMDp3Lm9uQ2xpY2ssWj1mdW5jdGlvbih6KXttJiZnJiZkKGUseik7Zm9yKHZhciBqPWFyZ3VtZW50cy5sZW5ndGgsaz1uZXcgQXJyYXkoaj4xP2otMTowKSxOPTE7TjxqO04rKylrW04tMV09YXJndW1lbnRzW05dO1I9PW51bGx8fFIuYXBwbHkodm9pZCAwLFt6XS5jb25jYXQoaykpfSxUO3R5cGVvZiB1PT0ic3RyaW5nIj9UPXU6dHlwZW9mIHU9PSJmdW5jdGlvbiImJihUPXUoZSxuLHIpKTt2YXIgVj1sZShhKTtyZXR1cm4oMCxMLlopKCgwLEwuWikoe30sbCkse30se2NvbHVtbnNLZXk6VixuZXN0RXhwYW5kYWJsZTp2LGV4cGFuZGVkOnksaGFzTmVzdENoaWxkcmVuOmIscmVjb3JkOmUsb25UcmlnZ2VyRXhwYW5kOmgscm93U3VwcG9ydEV4cGFuZDp4LGV4cGFuZGFibGU6Zyxyb3dQcm9wczooMCxMLlopKCgwLEwuWikoe30sdykse30se2NsYXNzTmFtZTpuZSgpKFQsdz09bnVsbD92b2lkIDA6dy5jbGFzc05hbWUpLG9uQ2xpY2s6Wn0pfSl9ZnVuY3Rpb24gTG4oZSl7dmFyIHQ9ZS5wcmVmaXhDbHMsbj1lLmNoaWxkcmVuLHI9ZS5jb21wb25lbnQsbD1lLmNlbGxDb21wb25lbnQsYT1lLmNsYXNzTmFtZSxzPWUuZXhwYW5kZWQsaT1lLmNvbFNwYW4sYz1lLmlzRW1wdHksZD1SZShBZSxbInNjcm9sbGJhclNpemUiLCJmaXhIZWFkZXIiLCJmaXhDb2x1bW4iLCJjb21wb25lbnRXaWR0aCIsImhvcml6b25TY3JvbGwiXSkscD1kLnNjcm9sbGJhclNpemUsZj1kLmZpeEhlYWRlcixtPWQuZml4Q29sdW1uLHU9ZC5jb21wb25lbnRXaWR0aCx2PWQuaG9yaXpvblNjcm9sbCx4PW47cmV0dXJuKGM/diYmdTptKSYmKHg9by5jcmVhdGVFbGVtZW50KCJkaXYiLHtzdHlsZTp7d2lkdGg6dS0oZiYmIWM/cDowKSxwb3NpdGlvbjoic3RpY2t5IixsZWZ0OjAsb3ZlcmZsb3c6ImhpZGRlbiJ9LGNsYXNzTmFtZToiIi5jb25jYXQodCwiLWV4cGFuZGVkLXJvdy1maXhlZCIpfSx4KSksby5jcmVhdGVFbGVtZW50KHIse2NsYXNzTmFtZTphLHN0eWxlOntkaXNwbGF5OnM/bnVsbDoibm9uZSJ9fSxvLmNyZWF0ZUVsZW1lbnQoJHQse2NvbXBvbmVudDpsLHByZWZpeENsczp0LGNvbFNwYW46aX0seCkpfXZhciBSbj1MbjtmdW5jdGlvbiB4dChlKXt2YXIgdD1lLnByZWZpeENscyxuPWUucmVjb3JkLHI9ZS5vbkV4cGFuZCxsPWUuZXhwYW5kZWQsYT1lLmV4cGFuZGFibGUscz0iIi5jb25jYXQodCwiLXJvdy1leHBhbmQtaWNvbiIpO2lmKCFhKXJldHVybiBvLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6bmUoKShzLCIiLmNvbmNhdCh0LCItcm93LXNwYWNlZCIpKX0pO3ZhciBpPWZ1bmN0aW9uKGQpe3IobixkKSxkLnN0b3BQcm9wYWdhdGlvbigpfTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOm5lKCkocywoMCxxLlopKCgwLHEuWikoe30sIiIuY29uY2F0KHQsIi1yb3ctZXhwYW5kZWQiKSxsKSwiIi5jb25jYXQodCwiLXJvdy1jb2xsYXBzZWQiKSwhbCkpLG9uQ2xpY2s6aX0pfWZ1bmN0aW9uIGhvKGUsdCxuKXt2YXIgcj1bXTtmdW5jdGlvbiBsKGEpeyhhfHxbXSkuZm9yRWFjaChmdW5jdGlvbihzLGkpe3IucHVzaCh0KHMsaSkpLGwoc1tuXSl9KX1yZXR1cm4gbChlKSxyfWZ1bmN0aW9uIG1yKGUsdCxuLHIpe3JldHVybiB0eXBlb2YgZT09InN0cmluZyI/ZTp0eXBlb2YgZT09ImZ1bmN0aW9uIj9lKHQsbixyKToiIn1mdW5jdGlvbiB2cihlLHQsbixyLGwpe3ZhciBhPWUucmVjb3JkLHM9ZS5wcmVmaXhDbHMsaT1lLmNvbHVtbnNLZXksYz1lLmZpeGVkSW5mb0xpc3QsZD1lLmV4cGFuZEljb25Db2x1bW5JbmRleCxwPWUubmVzdEV4cGFuZGFibGUsZj1lLmluZGVudFNpemUsbT1lLmV4cGFuZEljb24sdT1lLmV4cGFuZGVkLHY9ZS5oYXNOZXN0Q2hpbGRyZW4seD1lLm9uVHJpZ2dlckV4cGFuZCxnPWlbbl0seT1jW25dLGI7bj09PShkfHwwKSYmcCYmKGI9by5jcmVhdGVFbGVtZW50KG8uRnJhZ21lbnQsbnVsbCxvLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtzdHlsZTp7cGFkZGluZ0xlZnQ6IiIuY29uY2F0KGYqciwicHgiKX0sY2xhc3NOYW1lOiIiLmNvbmNhdChzLCItcm93LWluZGVudCBpbmRlbnQtbGV2ZWwtIikuY29uY2F0KHIpfSksbSh7cHJlZml4Q2xzOnMsZXhwYW5kZWQ6dSxleHBhbmRhYmxlOnYscmVjb3JkOmEsb25FeHBhbmQ6eH0pKSk7dmFyIGg7cmV0dXJuIHQub25DZWxsJiYoaD10Lm9uQ2VsbChhLGwpKSx7a2V5OmcsZml4ZWRJbmZvOnksYXBwZW5kQ2VsbE5vZGU6YixhZGRpdGlvbmFsQ2VsbFByb3BzOmh8fHt9fX1mdW5jdGlvbiB4byhlKXt2YXIgdD1lLmNsYXNzTmFtZSxuPWUuc3R5bGUscj1lLnJlY29yZCxsPWUuaW5kZXgsYT1lLnJlbmRlckluZGV4LHM9ZS5yb3dLZXksaT1lLmluZGVudCxjPWk9PT12b2lkIDA/MDppLGQ9ZS5yb3dDb21wb25lbnQscD1lLmNlbGxDb21wb25lbnQsZj1lLnNjb3BlQ2VsbENvbXBvbmVudCxtPUp0KHIscyxsLGMpLHU9bS5wcmVmaXhDbHMsdj1tLmZsYXR0ZW5Db2x1bW5zLHg9bS5leHBhbmRlZFJvd0NsYXNzTmFtZSxnPW0uZXhwYW5kZWRSb3dSZW5kZXIseT1tLnJvd1Byb3BzLGI9bS5leHBhbmRlZCxoPW0ucm93U3VwcG9ydEV4cGFuZCx3PW8udXNlUmVmKCExKTt3LmN1cnJlbnR8fCh3LmN1cnJlbnQ9Yik7dmFyIFI9bXIoeCxyLGwsYyksWj1vLmNyZWF0ZUVsZW1lbnQoZCwoMCxUZS5aKSh7fSx5LHsiZGF0YS1yb3cta2V5IjpzLGNsYXNzTmFtZTpuZSgpKHQsIiIuY29uY2F0KHUsIi1yb3ciKSwiIi5jb25jYXQodSwiLXJvdy1sZXZlbC0iKS5jb25jYXQoYykseT09bnVsbD92b2lkIDA6eS5jbGFzc05hbWUsKDAscS5aKSh7fSxSLGM+PTEpKSxzdHlsZTooMCxMLlopKCgwLEwuWikoe30sbikseT09bnVsbD92b2lkIDA6eS5zdHlsZSl9KSx2Lm1hcChmdW5jdGlvbihGLHope3ZhciBqPUYucmVuZGVyLGs9Ri5kYXRhSW5kZXgsTj1GLmNsYXNzTmFtZSwkPXZyKG0sRix6LGMsbCksQz0kLmtleSxJPSQuZml4ZWRJbmZvLFA9JC5hcHBlbmRDZWxsTm9kZSxNPSQuYWRkaXRpb25hbENlbGxQcm9wcztyZXR1cm4gby5jcmVhdGVFbGVtZW50KCR0LCgwLFRlLlopKHtjbGFzc05hbWU6TixlbGxpcHNpczpGLmVsbGlwc2lzLGFsaWduOkYuYWxpZ24sc2NvcGU6Ri5yb3dTY29wZSxjb21wb25lbnQ6Ri5yb3dTY29wZT9mOnAscHJlZml4Q2xzOnUsa2V5OkMscmVjb3JkOnIsaW5kZXg6bCxyZW5kZXJJbmRleDphLGRhdGFJbmRleDprLHJlbmRlcjpqLHNob3VsZENlbGxVcGRhdGU6Ri5zaG91bGRDZWxsVXBkYXRlfSxJLHthcHBlbmROb2RlOlAsYWRkaXRpb25hbFByb3BzOk19KSl9KSksVDtpZihoJiYody5jdXJyZW50fHxiKSl7dmFyIFY9ZyhyLGwsYysxLGIpO1Q9by5jcmVhdGVFbGVtZW50KFJuLHtleHBhbmRlZDpiLGNsYXNzTmFtZTpuZSgpKCIiLmNvbmNhdCh1LCItZXhwYW5kZWQtcm93IiksIiIuY29uY2F0KHUsIi1leHBhbmRlZC1yb3ctbGV2ZWwtIikuY29uY2F0KGMrMSksUikscHJlZml4Q2xzOnUsY29tcG9uZW50OmQsY2VsbENvbXBvbmVudDpwLGNvbFNwYW46di5sZW5ndGgsaXNFbXB0eTohMX0sVil9cmV0dXJuIG8uY3JlYXRlRWxlbWVudChvLkZyYWdtZW50LG51bGwsWixUKX12YXIgeW89VnQoeG8pO2Z1bmN0aW9uIGJvKGUpe3ZhciB0PWUuY29sdW1uS2V5LG49ZS5vbkNvbHVtblJlc2l6ZSxyPW8udXNlUmVmKCk7cmV0dXJuIG8udXNlRWZmZWN0KGZ1bmN0aW9uKCl7ci5jdXJyZW50JiZuKHQsci5jdXJyZW50Lm9mZnNldFdpZHRoKX0sW10pLG8uY3JlYXRlRWxlbWVudCh2dC5aLHtkYXRhOnR9LG8uY3JlYXRlRWxlbWVudCgidGQiLHtyZWY6cixzdHlsZTp7cGFkZGluZzowLGJvcmRlcjowLGhlaWdodDowfX0sby5jcmVhdGVFbGVtZW50KCJkaXYiLHtzdHlsZTp7aGVpZ2h0OjAsb3ZlcmZsb3c6ImhpZGRlbiJ9fSwiXHhBMCIpKSl9ZnVuY3Rpb24gQ28oZSl7dmFyIHQ9ZS5wcmVmaXhDbHMsbj1lLmNvbHVtbnNLZXkscj1lLm9uQ29sdW1uUmVzaXplO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoInRyIix7ImFyaWEtaGlkZGVuIjoidHJ1ZSIsY2xhc3NOYW1lOiIiLmNvbmNhdCh0LCItbWVhc3VyZS1yb3ciKSxzdHlsZTp7aGVpZ2h0OjAsZm9udFNpemU6MH19LG8uY3JlYXRlRWxlbWVudCh2dC5aLkNvbGxlY3Rpb24se29uQmF0Y2hSZXNpemU6ZnVuY3Rpb24oYSl7YS5mb3JFYWNoKGZ1bmN0aW9uKHMpe3ZhciBpPXMuZGF0YSxjPXMuc2l6ZTtyKGksYy5vZmZzZXRXaWR0aCl9KX19LG4ubWFwKGZ1bmN0aW9uKGwpe3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoYm8se2tleTpsLGNvbHVtbktleTpsLG9uQ29sdW1uUmVzaXplOnJ9KX0pKSl9ZnVuY3Rpb24gU28oZSl7dmFyIHQ9ZS5kYXRhLG49ZS5tZWFzdXJlQ29sdW1uV2lkdGgscj1SZShBZSxbInByZWZpeENscyIsImdldENvbXBvbmVudCIsIm9uQ29sdW1uUmVzaXplIiwiZmxhdHRlbkNvbHVtbnMiLCJnZXRSb3dLZXkiLCJleHBhbmRlZEtleXMiLCJjaGlsZHJlbkNvbHVtbk5hbWUiLCJlbXB0eU5vZGUiXSksbD1yLnByZWZpeENscyxhPXIuZ2V0Q29tcG9uZW50LHM9ci5vbkNvbHVtblJlc2l6ZSxpPXIuZmxhdHRlbkNvbHVtbnMsYz1yLmdldFJvd0tleSxkPXIuZXhwYW5kZWRLZXlzLHA9ci5jaGlsZHJlbkNvbHVtbk5hbWUsZj1yLmVtcHR5Tm9kZSxtPVl0KHQscCxkLGMpLHU9by51c2VSZWYoe3JlbmRlcldpdGhQcm9wczohMX0pLHY9YShbImJvZHkiLCJ3cmFwcGVyIl0sInRib2R5IikseD1hKFsiYm9keSIsInJvdyJdLCJ0ciIpLGc9YShbImJvZHkiLCJjZWxsIl0sInRkIikseT1hKFsiYm9keSIsImNlbGwiXSwidGgiKSxiO3QubGVuZ3RoP2I9bS5tYXAoZnVuY3Rpb24odyxSKXt2YXIgWj13LnJlY29yZCxUPXcuaW5kZW50LFY9dy5pbmRleCxGPWMoWixSKTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KHlvLHtrZXk6Rixyb3dLZXk6RixyZWNvcmQ6WixpbmRleDpSLHJlbmRlckluZGV4OlYscm93Q29tcG9uZW50OngsY2VsbENvbXBvbmVudDpnLHNjb3BlQ2VsbENvbXBvbmVudDp5LGluZGVudDpUfSl9KTpiPW8uY3JlYXRlRWxlbWVudChSbix7ZXhwYW5kZWQ6ITAsY2xhc3NOYW1lOiIiLmNvbmNhdChsLCItcGxhY2Vob2xkZXIiKSxwcmVmaXhDbHM6bCxjb21wb25lbnQ6eCxjZWxsQ29tcG9uZW50OmcsY29sU3BhbjppLmxlbmd0aCxpc0VtcHR5OiEwfSxmKTt2YXIgaD1sZShpKTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KGdlLlByb3ZpZGVyLHt2YWx1ZTp1LmN1cnJlbnR9LG8uY3JlYXRlRWxlbWVudCh2LHtjbGFzc05hbWU6IiIuY29uY2F0KGwsIi10Ym9keSIpfSxuJiZvLmNyZWF0ZUVsZW1lbnQoQ28se3ByZWZpeENsczpsLGNvbHVtbnNLZXk6aCxvbkNvbHVtblJlc2l6ZTpzfSksYikpfXZhciB3bz1WdChTbyksRW89WyJleHBhbmRhYmxlIl0sdW49IlJDX1RBQkxFX0lOVEVSTkFMX0NPTF9ERUZJTkUiO2Z1bmN0aW9uIFJvKGUpe3ZhciB0PWUuZXhwYW5kYWJsZSxuPSgwLG10LlopKGUsRW8pLHI7cmV0dXJuImV4cGFuZGFibGUiaW4gZT9yPSgwLEwuWikoKDAsTC5aKSh7fSxuKSx0KTpyPW4sci5zaG93RXhwYW5kQ29sdW1uPT09ITEmJihyLmV4cGFuZEljb25Db2x1bW5JbmRleD0tMSkscn12YXIgJG89WyJjb2x1bW5UeXBlIl07ZnVuY3Rpb24gSW8oZSl7Zm9yKHZhciB0PWUuY29sV2lkdGhzLG49ZS5jb2x1bW5zLHI9ZS5jb2x1bUNvdW50LGw9UmUoQWUsWyJ0YWJsZUxheW91dCJdKSxhPWwudGFibGVMYXlvdXQscz1bXSxpPXJ8fG4ubGVuZ3RoLGM9ITEsZD1pLTE7ZD49MDtkLT0xKXt2YXIgcD10W2RdLGY9biYmbltkXSxtPXZvaWQgMCx1PXZvaWQgMDtpZihmJiYobT1mW3VuXSxhPT09ImF1dG8iJiYodT1mLm1pbldpZHRoKSkscHx8dXx8bXx8Yyl7dmFyIHY9bXx8e30seD12LmNvbHVtblR5cGUsZz0oMCxtdC5aKSh2LCRvKTtzLnVuc2hpZnQoby5jcmVhdGVFbGVtZW50KCJjb2wiLCgwLFRlLlopKHtrZXk6ZCxzdHlsZTp7d2lkdGg6cCxtaW5XaWR0aDp1fX0sZykpKSxjPSEwfX1yZXR1cm4gby5jcmVhdGVFbGVtZW50KCJjb2xncm91cCIsbnVsbCxzKX12YXIgcHI9SW8seWU9Uyg3NDkwMiksVG89WyJjbGFzc05hbWUiLCJub0RhdGEiLCJjb2x1bW5zIiwiZmxhdHRlbkNvbHVtbnMiLCJjb2xXaWR0aHMiLCJjb2x1bUNvdW50Iiwic3RpY2t5T2Zmc2V0cyIsImRpcmVjdGlvbiIsImZpeEhlYWRlciIsInN0aWNreVRvcE9mZnNldCIsInN0aWNreUJvdHRvbU9mZnNldCIsInN0aWNreUNsYXNzTmFtZSIsIm9uU2Nyb2xsIiwibWF4Q29udGVudFNjcm9sbCIsImNoaWxkcmVuIl07ZnVuY3Rpb24ga28oZSx0KXtyZXR1cm4oMCxvLnVzZU1lbW8pKGZ1bmN0aW9uKCl7Zm9yKHZhciBuPVtdLHI9MDtyPHQ7cis9MSl7dmFyIGw9ZVtyXTtpZihsIT09dm9pZCAwKW5bcl09bDtlbHNlIHJldHVybiBudWxsfXJldHVybiBufSxbZS5qb2luKCJfIiksdF0pfXZhciBObz1vLmZvcndhcmRSZWYoZnVuY3Rpb24oZSx0KXt2YXIgbj1lLmNsYXNzTmFtZSxyPWUubm9EYXRhLGw9ZS5jb2x1bW5zLGE9ZS5mbGF0dGVuQ29sdW1ucyxzPWUuY29sV2lkdGhzLGk9ZS5jb2x1bUNvdW50LGM9ZS5zdGlja3lPZmZzZXRzLGQ9ZS5kaXJlY3Rpb24scD1lLmZpeEhlYWRlcixmPWUuc3RpY2t5VG9wT2Zmc2V0LG09ZS5zdGlja3lCb3R0b21PZmZzZXQsdT1lLnN0aWNreUNsYXNzTmFtZSx2PWUub25TY3JvbGwseD1lLm1heENvbnRlbnRTY3JvbGwsZz1lLmNoaWxkcmVuLHk9KDAsbXQuWikoZSxUbyksYj1SZShBZSxbInByZWZpeENscyIsInNjcm9sbGJhclNpemUiLCJpc1N0aWNreSIsImdldENvbXBvbmVudCJdKSxoPWIucHJlZml4Q2xzLHc9Yi5zY3JvbGxiYXJTaXplLFI9Yi5pc1N0aWNreSxaPWIuZ2V0Q29tcG9uZW50LFQ9WihbImhlYWRlciIsInRhYmxlIl0sInRhYmxlIiksVj1SJiYhcD8wOncsRj1vLnVzZVJlZihudWxsKSx6PW8udXNlQ2FsbGJhY2soZnVuY3Rpb24oTSl7KDAsT3QubUgpKHQsTSksKDAsT3QubUgpKEYsTSl9LFtdKTtvLnVzZUVmZmVjdChmdW5jdGlvbigpe3ZhciBNO2Z1bmN0aW9uIEUoVSl7dmFyIEc9VSxOZT1HLmN1cnJlbnRUYXJnZXQsYmU9Ry5kZWx0YVg7YmUmJih2KHtjdXJyZW50VGFyZ2V0Ok5lLHNjcm9sbExlZnQ6TmUuc2Nyb2xsTGVmdCtiZX0pLFUucHJldmVudERlZmF1bHQoKSl9cmV0dXJuKE09Ri5jdXJyZW50KT09PW51bGx8fE09PT12b2lkIDB8fE0uYWRkRXZlbnRMaXN0ZW5lcigid2hlZWwiLEUse3Bhc3NpdmU6ITF9KSxmdW5jdGlvbigpe3ZhciBVOyhVPUYuY3VycmVudCk9PT1udWxsfHxVPT09dm9pZCAwfHxVLnJlbW92ZUV2ZW50TGlzdGVuZXIoIndoZWVsIixFKX19LFtdKTt2YXIgaj1vLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4gYS5ldmVyeShmdW5jdGlvbihNKXtyZXR1cm4gTS53aWR0aH0pfSxbYV0pLGs9YVthLmxlbmd0aC0xXSxOPXtmaXhlZDprP2suZml4ZWQ6bnVsbCxzY3JvbGxiYXI6ITAsb25IZWFkZXJDZWxsOmZ1bmN0aW9uKCl7cmV0dXJue2NsYXNzTmFtZToiIi5jb25jYXQoaCwiLWNlbGwtc2Nyb2xsYmFyIil9fX0sJD0oMCxvLnVzZU1lbW8pKGZ1bmN0aW9uKCl7cmV0dXJuIFY/W10uY29uY2F0KCgwLHllLlopKGwpLFtOXSk6bH0sW1YsbF0pLEM9KDAsby51c2VNZW1vKShmdW5jdGlvbigpe3JldHVybiBWP1tdLmNvbmNhdCgoMCx5ZS5aKShhKSxbTl0pOmF9LFtWLGFdKSxJPSgwLG8udXNlTWVtbykoZnVuY3Rpb24oKXt2YXIgTT1jLnJpZ2h0LEU9Yy5sZWZ0O3JldHVybigwLEwuWikoKDAsTC5aKSh7fSxjKSx7fSx7bGVmdDpkPT09InJ0bCI/W10uY29uY2F0KCgwLHllLlopKEUubWFwKGZ1bmN0aW9uKFUpe3JldHVybiBVK1Z9KSksWzBdKTpFLHJpZ2h0OmQ9PT0icnRsIj9NOltdLmNvbmNhdCgoMCx5ZS5aKShNLm1hcChmdW5jdGlvbihVKXtyZXR1cm4gVStWfSkpLFswXSksaXNTdGlja3k6Un0pfSxbVixjLFJdKSxQPWtvKHMsaSk7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7c3R5bGU6KDAsTC5aKSh7b3ZlcmZsb3c6ImhpZGRlbiJ9LFI/e3RvcDpmLGJvdHRvbTptfTp7fSkscmVmOnosY2xhc3NOYW1lOm5lKCkobiwoMCxxLlopKHt9LHUsISF1KSl9LG8uY3JlYXRlRWxlbWVudChULHtzdHlsZTp7dGFibGVMYXlvdXQ6ImZpeGVkIix2aXNpYmlsaXR5OnJ8fFA/bnVsbDoiaGlkZGVuIn19LCghcnx8IXh8fGopJiZvLmNyZWF0ZUVsZW1lbnQocHIse2NvbFdpZHRoczpQP1tdLmNvbmNhdCgoMCx5ZS5aKShQKSxbVl0pOltdLGNvbHVtQ291bnQ6aSsxLGNvbHVtbnM6Q30pLGcoKDAsTC5aKSgoMCxMLlopKHt9LHkpLHt9LHtzdGlja3lPZmZzZXRzOkksY29sdW1uczokLGZsYXR0ZW5Db2x1bW5zOkN9KSkpKX0pLGdyPW8ubWVtbyhObyksWm89ZnVuY3Rpb24odCl7dmFyIG49dC5jZWxscyxyPXQuc3RpY2t5T2Zmc2V0cyxsPXQuZmxhdHRlbkNvbHVtbnMsYT10LnJvd0NvbXBvbmVudCxzPXQuY2VsbENvbXBvbmVudCxpPXQub25IZWFkZXJSb3csYz10LmluZGV4LGQ9UmUoQWUsWyJwcmVmaXhDbHMiLCJkaXJlY3Rpb24iXSkscD1kLnByZWZpeENscyxmPWQuZGlyZWN0aW9uLG07aSYmKG09aShuLm1hcChmdW5jdGlvbih2KXtyZXR1cm4gdi5jb2x1bW59KSxjKSk7dmFyIHU9bGUobi5tYXAoZnVuY3Rpb24odil7cmV0dXJuIHYuY29sdW1ufSkpO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoYSxtLG4ubWFwKGZ1bmN0aW9uKHYseCl7dmFyIGc9di5jb2x1bW4seT1YdCh2LmNvbFN0YXJ0LHYuY29sRW5kLGwscixmKSxiO3JldHVybiBnJiZnLm9uSGVhZGVyQ2VsbCYmKGI9di5jb2x1bW4ub25IZWFkZXJDZWxsKGcpKSxvLmNyZWF0ZUVsZW1lbnQoJHQsKDAsVGUuWikoe30sdix7c2NvcGU6Zy50aXRsZT92LmNvbFNwYW4+MT8iY29sZ3JvdXAiOiJjb2wiOm51bGwsZWxsaXBzaXM6Zy5lbGxpcHNpcyxhbGlnbjpnLmFsaWduLGNvbXBvbmVudDpzLHByZWZpeENsczpwLGtleTp1W3hdfSx5LHthZGRpdGlvbmFsUHJvcHM6Yixyb3dUeXBlOiJoZWFkZXIifSkpfSkpfSxQbz1abztmdW5jdGlvbiBPbyhlKXt2YXIgdD1bXTtmdW5jdGlvbiBuKHMsaSl7dmFyIGM9YXJndW1lbnRzLmxlbmd0aD4yJiZhcmd1bWVudHNbMl0hPT12b2lkIDA/YXJndW1lbnRzWzJdOjA7dFtjXT10W2NdfHxbXTt2YXIgZD1pLHA9cy5maWx0ZXIoQm9vbGVhbikubWFwKGZ1bmN0aW9uKGYpe3ZhciBtPXtrZXk6Zi5rZXksY2xhc3NOYW1lOmYuY2xhc3NOYW1lfHwiIixjaGlsZHJlbjpmLnRpdGxlLGNvbHVtbjpmLGNvbFN0YXJ0OmR9LHU9MSx2PWYuY2hpbGRyZW47cmV0dXJuIHYmJnYubGVuZ3RoPjAmJih1PW4odixkLGMrMSkucmVkdWNlKGZ1bmN0aW9uKHgsZyl7cmV0dXJuIHgrZ30sMCksbS5oYXNTdWJDb2x1bW5zPSEwKSwiY29sU3BhbiJpbiBmJiYodT1mLmNvbFNwYW4pLCJyb3dTcGFuImluIGYmJihtLnJvd1NwYW49Zi5yb3dTcGFuKSxtLmNvbFNwYW49dSxtLmNvbEVuZD1tLmNvbFN0YXJ0K3UtMSx0W2NdLnB1c2gobSksZCs9dSx1fSk7cmV0dXJuIHB9bihlLDApO2Zvcih2YXIgcj10Lmxlbmd0aCxsPWZ1bmN0aW9uKGkpe3RbaV0uZm9yRWFjaChmdW5jdGlvbihjKXshKCJyb3dTcGFuImluIGMpJiYhYy5oYXNTdWJDb2x1bW5zJiYoYy5yb3dTcGFuPXItaSl9KX0sYT0wO2E8cjthKz0xKWwoYSk7cmV0dXJuIHR9dmFyIEJvPWZ1bmN0aW9uKHQpe3ZhciBuPXQuc3RpY2t5T2Zmc2V0cyxyPXQuY29sdW1ucyxsPXQuZmxhdHRlbkNvbHVtbnMsYT10Lm9uSGVhZGVyUm93LHM9UmUoQWUsWyJwcmVmaXhDbHMiLCJnZXRDb21wb25lbnQiXSksaT1zLnByZWZpeENscyxjPXMuZ2V0Q29tcG9uZW50LGQ9by51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJuIE9vKHIpfSxbcl0pLHA9YyhbImhlYWRlciIsIndyYXBwZXIiXSwidGhlYWQiKSxmPWMoWyJoZWFkZXIiLCJyb3ciXSwidHIiKSxtPWMoWyJoZWFkZXIiLCJjZWxsIl0sInRoIik7cmV0dXJuIG8uY3JlYXRlRWxlbWVudChwLHtjbGFzc05hbWU6IiIuY29uY2F0KGksIi10aGVhZCIpfSxkLm1hcChmdW5jdGlvbih1LHYpe3ZhciB4PW8uY3JlYXRlRWxlbWVudChQbyx7a2V5OnYsZmxhdHRlbkNvbHVtbnM6bCxjZWxsczp1LHN0aWNreU9mZnNldHM6bixyb3dDb21wb25lbnQ6ZixjZWxsQ29tcG9uZW50Om0sb25IZWFkZXJSb3c6YSxpbmRleDp2fSk7cmV0dXJuIHh9KSl9LGhyPVZ0KEJvKSxLbz1TKDUwMzQ0KTtmdW5jdGlvbiB4cihlKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06IiI7cmV0dXJuIHR5cGVvZiB0PT0ibnVtYmVyIj90OnQuZW5kc1dpdGgoIiUiKT9lKnBhcnNlRmxvYXQodCkvMTAwOm51bGx9ZnVuY3Rpb24gTW8oZSx0LG4pe3JldHVybiBvLnVzZU1lbW8oZnVuY3Rpb24oKXtpZih0JiZ0PjApe3ZhciByPTAsbD0wO2UuZm9yRWFjaChmdW5jdGlvbihtKXt2YXIgdT14cih0LG0ud2lkdGgpO3U/cis9dTpsKz0xfSk7dmFyIGE9TWF0aC5tYXgodCxuKSxzPU1hdGgubWF4KGEtcixsKSxpPWwsYz1zL2wsZD0wLHA9ZS5tYXAoZnVuY3Rpb24obSl7dmFyIHU9KDAsTC5aKSh7fSxtKSx2PXhyKHQsdS53aWR0aCk7aWYodil1LndpZHRoPXY7ZWxzZXt2YXIgeD1NYXRoLmZsb29yKGMpO3Uud2lkdGg9aT09PTE/czp4LHMtPXgsaS09MX1yZXR1cm4gZCs9dS53aWR0aCx1fSk7aWYoZDxhKXt2YXIgZj1hL2Q7cz1hLHAuZm9yRWFjaChmdW5jdGlvbihtLHUpe3ZhciB2PU1hdGguZmxvb3IobS53aWR0aCpmKTttLndpZHRoPXU9PT1wLmxlbmd0aC0xP3M6dixzLT12fSl9cmV0dXJuW3AsTWF0aC5tYXgoZCxhKV19cmV0dXJuW2UsdF19LFtlLHQsbl0pfXZhciBIbz1bImNoaWxkcmVuIl0sRm89WyJmaXhlZCJdO2Z1bmN0aW9uIHpuKGUpe3JldHVybigwLEtvLlopKGUpLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gby5pc1ZhbGlkRWxlbWVudCh0KX0pLm1hcChmdW5jdGlvbih0KXt2YXIgbj10LmtleSxyPXQucHJvcHMsbD1yLmNoaWxkcmVuLGE9KDAsbXQuWikocixIbykscz0oMCxMLlopKHtrZXk6bn0sYSk7cmV0dXJuIGwmJihzLmNoaWxkcmVuPXpuKGwpKSxzfSl9ZnVuY3Rpb24geXIoZSl7cmV0dXJuIGUuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiB0JiYoMCxFdC5aKSh0KT09PSJvYmplY3QiJiYhdC5oaWRkZW59KS5tYXAoZnVuY3Rpb24odCl7dmFyIG49dC5jaGlsZHJlbjtyZXR1cm4gbiYmbi5sZW5ndGg+MD8oMCxMLlopKCgwLEwuWikoe30sdCkse30se2NoaWxkcmVuOnlyKG4pfSk6dH0pfWZ1bmN0aW9uIERuKGUpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXToia2V5IjtyZXR1cm4gZS5maWx0ZXIoZnVuY3Rpb24obil7cmV0dXJuIG4mJigwLEV0LlopKG4pPT09Im9iamVjdCJ9KS5yZWR1Y2UoZnVuY3Rpb24obixyLGwpe3ZhciBhPXIuZml4ZWQscz1hPT09ITA/ImxlZnQiOmEsaT0iIi5jb25jYXQodCwiLSIpLmNvbmNhdChsKSxjPXIuY2hpbGRyZW47cmV0dXJuIGMmJmMubGVuZ3RoPjA/W10uY29uY2F0KCgwLHllLlopKG4pLCgwLHllLlopKERuKGMsaSkubWFwKGZ1bmN0aW9uKGQpe3JldHVybigwLEwuWikoe2ZpeGVkOnN9LGQpfSkpKTpbXS5jb25jYXQoKDAseWUuWikobiksWygwLEwuWikoKDAsTC5aKSh7a2V5Oml9LHIpLHt9LHtmaXhlZDpzfSldKX0sW10pfWZ1bmN0aW9uIExvKGUpe3JldHVybiBlLm1hcChmdW5jdGlvbih0KXt2YXIgbj10LmZpeGVkLHI9KDAsbXQuWikodCxGbyksbD1uO3JldHVybiBuPT09ImxlZnQiP2w9InJpZ2h0IjpuPT09InJpZ2h0IiYmKGw9ImxlZnQiKSwoMCxMLlopKHtmaXhlZDpsfSxyKX0pfWZ1bmN0aW9uIHpvKGUsdCl7dmFyIG49ZS5wcmVmaXhDbHMscj1lLmNvbHVtbnMsbD1lLmNoaWxkcmVuLGE9ZS5leHBhbmRhYmxlLHM9ZS5leHBhbmRlZEtleXMsaT1lLmNvbHVtblRpdGxlLGM9ZS5nZXRSb3dLZXksZD1lLm9uVHJpZ2dlckV4cGFuZCxwPWUuZXhwYW5kSWNvbixmPWUucm93RXhwYW5kYWJsZSxtPWUuZXhwYW5kSWNvbkNvbHVtbkluZGV4LHU9ZS5kaXJlY3Rpb24sdj1lLmV4cGFuZFJvd0J5Q2xpY2sseD1lLmNvbHVtbldpZHRoLGc9ZS5maXhlZCx5PWUuc2Nyb2xsV2lkdGgsYj1lLmNsaWVudFdpZHRoLGg9by51c2VNZW1vKGZ1bmN0aW9uKCl7dmFyIGs9cnx8em4obCl8fFtdO3JldHVybiB5cihrLnNsaWNlKCkpfSxbcixsXSksdz1vLnVzZU1lbW8oZnVuY3Rpb24oKXtpZihhKXt2YXIgaz1oLnNsaWNlKCk7aWYoIWsuaW5jbHVkZXMoV2UpKXt2YXIgTj1tfHwwO04+PTAmJihOfHxnPT09ImxlZnQifHwhZykmJmsuc3BsaWNlKE4sMCxXZSksZz09PSJyaWdodCImJmsuc3BsaWNlKGgubGVuZ3RoLDAsV2UpfXZhciAkPWsuaW5kZXhPZihXZSk7az1rLmZpbHRlcihmdW5jdGlvbihNLEUpe3JldHVybiBNIT09V2V8fEU9PT0kfSk7dmFyIEM9aFskXSxJO2c/ST1nOkk9Qz9DLmZpeGVkOm51bGw7dmFyIFA9KDAscS5aKSgoMCxxLlopKCgwLHEuWikoKDAscS5aKSgoMCxxLlopKCgwLHEuWikoe30sdW4se2NsYXNzTmFtZToiIi5jb25jYXQobiwiLWV4cGFuZC1pY29uLWNvbCIpLGNvbHVtblR5cGU6IkVYUEFORF9DT0xVTU4ifSksInRpdGxlIixpKSwiZml4ZWQiLEkpLCJjbGFzc05hbWUiLCIiLmNvbmNhdChuLCItcm93LWV4cGFuZC1pY29uLWNlbGwiKSksIndpZHRoIix4KSwicmVuZGVyIixmdW5jdGlvbihFLFUsRyl7dmFyIE5lPWMoVSxHKSxiZT1zLmhhcyhOZSksbWU9Zj9mKFUpOiEwLEVlPXAoe3ByZWZpeENsczpuLGV4cGFuZGVkOmJlLGV4cGFuZGFibGU6bWUscmVjb3JkOlUsb25FeHBhbmQ6ZH0pO3JldHVybiB2P28uY3JlYXRlRWxlbWVudCgic3BhbiIse29uQ2xpY2s6ZnVuY3Rpb24oWSl7cmV0dXJuIFkuc3RvcFByb3BhZ2F0aW9uKCl9fSxFZSk6RWV9KTtyZXR1cm4gay5tYXAoZnVuY3Rpb24oTSl7cmV0dXJuIE09PT1XZT9QOk19KX1yZXR1cm4gaC5maWx0ZXIoZnVuY3Rpb24oTSl7cmV0dXJuIE0hPT1XZX0pfSxbYSxoLGMscyxwLHVdKSxSPW8udXNlTWVtbyhmdW5jdGlvbigpe3ZhciBrPXc7cmV0dXJuIHQmJihrPXQoaykpLGsubGVuZ3RofHwoaz1be3JlbmRlcjpmdW5jdGlvbigpe3JldHVybiBudWxsfX1dKSxrfSxbdCx3LHVdKSxaPW8udXNlTWVtbyhmdW5jdGlvbigpe3JldHVybiB1PT09InJ0bCI/TG8oRG4oUikpOkRuKFIpfSxbUix1LHldKSxUPW8udXNlTWVtbyhmdW5jdGlvbigpe2Zvcih2YXIgaz0tMSxOPVoubGVuZ3RoLTE7Tj49MDtOLT0xKXt2YXIgJD1aW05dLmZpeGVkO2lmKCQ9PT0ibGVmdCJ8fCQ9PT0hMCl7az1OO2JyZWFrfX1pZihrPj0wKWZvcih2YXIgQz0wO0M8PWs7Qys9MSl7dmFyIEk9WltDXS5maXhlZDtpZihJIT09ImxlZnQiJiZJIT09ITApcmV0dXJuITB9dmFyIFA9Wi5maW5kSW5kZXgoZnVuY3Rpb24oVSl7dmFyIEc9VS5maXhlZDtyZXR1cm4gRz09PSJyaWdodCJ9KTtpZihQPj0wKWZvcih2YXIgTT1QO008Wi5sZW5ndGg7TSs9MSl7dmFyIEU9WltNXS5maXhlZDtpZihFIT09InJpZ2h0IilyZXR1cm4hMH1yZXR1cm4hMX0sW1pdKSxWPU1vKFoseSxiKSxGPSgwLGNlLlopKFYsMiksej1GWzBdLGo9RlsxXTtyZXR1cm5bUix6LGosVF19dmFyIERvPXpvO2Z1bmN0aW9uIGpvKGUsdCxuKXt2YXIgcj1SbyhlKSxsPXIuZXhwYW5kSWNvbixhPXIuZXhwYW5kZWRSb3dLZXlzLHM9ci5kZWZhdWx0RXhwYW5kZWRSb3dLZXlzLGk9ci5kZWZhdWx0RXhwYW5kQWxsUm93cyxjPXIuZXhwYW5kZWRSb3dSZW5kZXIsZD1yLm9uRXhwYW5kLHA9ci5vbkV4cGFuZGVkUm93c0NoYW5nZSxmPXIuY2hpbGRyZW5Db2x1bW5OYW1lLG09bHx8eHQsdT1mfHwiY2hpbGRyZW4iLHY9by51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJuIGM/InJvdyI6ZS5leHBhbmRhYmxlJiZlLmludGVybmFsSG9va3M9PT11ZSYmZS5leHBhbmRhYmxlLl9fUEFSRU5UX1JFTkRFUl9JQ09OX198fHQuc29tZShmdW5jdGlvbihSKXtyZXR1cm4gUiYmKDAsRXQuWikoUik9PT0ib2JqZWN0IiYmUlt1XX0pPyJuZXN0IjohMX0sWyEhYyx0XSkseD1vLnVzZVN0YXRlKGZ1bmN0aW9uKCl7cmV0dXJuIHN8fChpP2hvKHQsbix1KTpbXSl9KSxnPSgwLGNlLlopKHgsMikseT1nWzBdLGI9Z1sxXSxoPW8udXNlTWVtbyhmdW5jdGlvbigpe3JldHVybiBuZXcgU2V0KGF8fHl8fFtdKX0sW2EseV0pLHc9by51c2VDYWxsYmFjayhmdW5jdGlvbihSKXt2YXIgWj1uKFIsdC5pbmRleE9mKFIpKSxULFY9aC5oYXMoWik7Vj8oaC5kZWxldGUoWiksVD0oMCx5ZS5aKShoKSk6VD1bXS5jb25jYXQoKDAseWUuWikoaCksW1pdKSxiKFQpLGQmJmQoIVYsUikscCYmcChUKX0sW24saCx0LGQscF0pO3JldHVybltyLHYsaCxtLHUsd119ZnVuY3Rpb24gQW8oZSx0LG4pe3ZhciByPWUubWFwKGZ1bmN0aW9uKGwsYSl7cmV0dXJuIFh0KGEsYSxlLHQsbil9KTtyZXR1cm4oMCxIbi5aKShmdW5jdGlvbigpe3JldHVybiByfSxbcl0sZnVuY3Rpb24obCxhKXtyZXR1cm4hKDAsdXQuWikobCxhKX0pfWZ1bmN0aW9uIGJyKGUpe3ZhciB0PSgwLG8udXNlUmVmKShlKSxuPSgwLG8udXNlU3RhdGUpKHt9KSxyPSgwLGNlLlopKG4sMiksbD1yWzFdLGE9KDAsby51c2VSZWYpKG51bGwpLHM9KDAsby51c2VSZWYpKFtdKTtmdW5jdGlvbiBpKGMpe3MuY3VycmVudC5wdXNoKGMpO3ZhciBkPVByb21pc2UucmVzb2x2ZSgpO2EuY3VycmVudD1kLGQudGhlbihmdW5jdGlvbigpe2lmKGEuY3VycmVudD09PWQpe3ZhciBwPXMuY3VycmVudCxmPXQuY3VycmVudDtzLmN1cnJlbnQ9W10scC5mb3JFYWNoKGZ1bmN0aW9uKG0pe3QuY3VycmVudD1tKHQuY3VycmVudCl9KSxhLmN1cnJlbnQ9bnVsbCxmIT09dC5jdXJyZW50JiZsKHt9KX19KX1yZXR1cm4oMCxvLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oKXthLmN1cnJlbnQ9bnVsbH19LFtdKSxbdC5jdXJyZW50LGldfWZ1bmN0aW9uIFdvKGUpe3ZhciB0PSgwLG8udXNlUmVmKShlfHxudWxsKSxuPSgwLG8udXNlUmVmKSgpO2Z1bmN0aW9uIHIoKXt3aW5kb3cuY2xlYXJUaW1lb3V0KG4uY3VycmVudCl9ZnVuY3Rpb24gbChzKXt0LmN1cnJlbnQ9cyxyKCksbi5jdXJyZW50PXdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC5jdXJyZW50PW51bGwsbi5jdXJyZW50PXZvaWQgMH0sMTAwKX1mdW5jdGlvbiBhKCl7cmV0dXJuIHQuY3VycmVudH1yZXR1cm4oMCxvLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtyZXR1cm4gcn0sW10pLFtsLGFdfWZ1bmN0aW9uIFZvKCl7dmFyIGU9by51c2VTdGF0ZSgtMSksdD0oMCxjZS5aKShlLDIpLG49dFswXSxyPXRbMV0sbD1vLnVzZVN0YXRlKC0xKSxhPSgwLGNlLlopKGwsMikscz1hWzBdLGk9YVsxXSxjPW8udXNlQ2FsbGJhY2soZnVuY3Rpb24oZCxwKXtyKGQpLGkocCl9LFtdKTtyZXR1cm5bbixzLGNdfXZhciBYbz1TKDk4OTI0KSxDcj0oMCxYby5aKSgpP3dpbmRvdzpudWxsO2Z1bmN0aW9uIFVvKGUsdCl7dmFyIG49KDAsRXQuWikoZSk9PT0ib2JqZWN0Ij9lOnt9LHI9bi5vZmZzZXRIZWFkZXIsbD1yPT09dm9pZCAwPzA6cixhPW4ub2Zmc2V0U3VtbWFyeSxzPWE9PT12b2lkIDA/MDphLGk9bi5vZmZzZXRTY3JvbGwsYz1pPT09dm9pZCAwPzA6aSxkPW4uZ2V0Q29udGFpbmVyLHA9ZD09PXZvaWQgMD9mdW5jdGlvbigpe3JldHVybiBDcn06ZCxmPXAoKXx8Q3IsbT0hIWU7cmV0dXJuIG8udXNlTWVtbyhmdW5jdGlvbigpe3JldHVybntpc1N0aWNreTptLHN0aWNreUNsYXNzTmFtZTptPyIiLmNvbmNhdCh0LCItc3RpY2t5LWhvbGRlciIpOiIiLG9mZnNldEhlYWRlcjpsLG9mZnNldFN1bW1hcnk6cyxvZmZzZXRTY3JvbGw6Yyxjb250YWluZXI6Zn19LFttLGMsbCxzLHQsZl0pfWZ1bmN0aW9uIEdvKGUsdCxuKXt2YXIgcj0oMCxvLnVzZU1lbW8pKGZ1bmN0aW9uKCl7dmFyIGw9dC5sZW5ndGgsYT1mdW5jdGlvbihkLHAsZil7Zm9yKHZhciBtPVtdLHU9MCx2PWQ7diE9PXA7dis9ZiltLnB1c2godSksdFt2XS5maXhlZCYmKHUrPWVbdl18fDApO3JldHVybiBtfSxzPWEoMCxsLDEpLGk9YShsLTEsLTEsLTEpLnJldmVyc2UoKTtyZXR1cm4gbj09PSJydGwiP3tsZWZ0OmkscmlnaHQ6c306e2xlZnQ6cyxyaWdodDppfX0sW2UsdCxuXSk7cmV0dXJuIHJ9dmFyIFlvPUdvO2Z1bmN0aW9uIEpvKGUpe3ZhciB0PWUuY2xhc3NOYW1lLG49ZS5jaGlsZHJlbjtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6dH0sbil9dmFyIFNyPUpvLHdyPVMoNjQwMTkpLGZuPVMoNzUxNjQpLGpuPVMoMzQyMDMpO2Z1bmN0aW9uIEVyKGUpe3ZhciB0PSgwLGpuLmJuKShlKSxuPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscj1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7cmV0dXJue2xlZnQ6bi5sZWZ0Kyh3aW5kb3cucGFnZVhPZmZzZXR8fHIuc2Nyb2xsTGVmdCktKHIuY2xpZW50TGVmdHx8ZG9jdW1lbnQuYm9keS5jbGllbnRMZWZ0fHwwKSx0b3A6bi50b3ArKHdpbmRvdy5wYWdlWU9mZnNldHx8ci5zY3JvbGxUb3ApLShyLmNsaWVudFRvcHx8ZG9jdW1lbnQuYm9keS5jbGllbnRUb3B8fDApfX12YXIgUW89ZnVuY3Rpb24odCxuKXt2YXIgcixsLGE9dC5zY3JvbGxCb2R5UmVmLHM9dC5vblNjcm9sbCxpPXQub2Zmc2V0U2Nyb2xsLGM9dC5jb250YWluZXIsZD10LmRpcmVjdGlvbixwPVJlKEFlLCJwcmVmaXhDbHMiKSxmPSgocj1hLmN1cnJlbnQpPT09bnVsbHx8cj09PXZvaWQgMD92b2lkIDA6ci5zY3JvbGxXaWR0aCl8fDAsbT0oKGw9YS5jdXJyZW50KT09PW51bGx8fGw9PT12b2lkIDA/dm9pZCAwOmwuY2xpZW50V2lkdGgpfHwwLHU9ZiYmbSoobS9mKSx2PW8udXNlUmVmKCkseD1icih7c2Nyb2xsTGVmdDowLGlzSGlkZGVuU2Nyb2xsQmFyOiEwfSksZz0oMCxjZS5aKSh4LDIpLHk9Z1swXSxiPWdbMV0saD1vLnVzZVJlZih7ZGVsdGE6MCx4OjB9KSx3PW8udXNlU3RhdGUoITEpLFI9KDAsY2UuWikodywyKSxaPVJbMF0sVD1SWzFdLFY9by51c2VSZWYobnVsbCk7by51c2VFZmZlY3QoZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oKXtmbi5aLmNhbmNlbChWLmN1cnJlbnQpfX0sW10pO3ZhciBGPWZ1bmN0aW9uKCl7VCghMSl9LHo9ZnVuY3Rpb24oQyl7Qy5wZXJzaXN0KCksaC5jdXJyZW50LmRlbHRhPUMucGFnZVgteS5zY3JvbGxMZWZ0LGguY3VycmVudC54PTAsVCghMCksQy5wcmV2ZW50RGVmYXVsdCgpfSxqPWZ1bmN0aW9uKEMpe3ZhciBJLFA9Q3x8KChJPXdpbmRvdyk9PT1udWxsfHxJPT09dm9pZCAwP3ZvaWQgMDpJLmV2ZW50KSxNPVAuYnV0dG9ucztpZighWnx8TT09PTApe1omJlQoITEpO3JldHVybn12YXIgRT1oLmN1cnJlbnQueCtDLnBhZ2VYLWguY3VycmVudC54LWguY3VycmVudC5kZWx0YSxVPWQ9PT0icnRsIjtFPU1hdGgubWF4KFU/dS1tOjAsTWF0aC5taW4oVT8wOm0tdSxFKSk7dmFyIEc9IVV8fE1hdGguYWJzKEUpK01hdGguYWJzKHUpPG07RyYmKHMoe3Njcm9sbExlZnQ6RS9tKihmKzIpfSksaC5jdXJyZW50Lng9Qy5wYWdlWCl9LGs9ZnVuY3Rpb24oKXtmbi5aLmNhbmNlbChWLmN1cnJlbnQpLFYuY3VycmVudD0oMCxmbi5aKShmdW5jdGlvbigpe2lmKGEuY3VycmVudCl7dmFyIEM9RXIoYS5jdXJyZW50KS50b3AsST1DK2EuY3VycmVudC5vZmZzZXRIZWlnaHQsUD1jPT09d2luZG93P2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3Ard2luZG93LmlubmVySGVpZ2h0OkVyKGMpLnRvcCtjLmNsaWVudEhlaWdodDtJLSgwLEZ0LlopKCk8PVB8fEM+PVAtaT9iKGZ1bmN0aW9uKE0pe3JldHVybigwLEwuWikoKDAsTC5aKSh7fSxNKSx7fSx7aXNIaWRkZW5TY3JvbGxCYXI6ITB9KX0pOmIoZnVuY3Rpb24oTSl7cmV0dXJuKDAsTC5aKSgoMCxMLlopKHt9LE0pLHt9LHtpc0hpZGRlblNjcm9sbEJhcjohMX0pfSl9fSl9LE49ZnVuY3Rpb24oQyl7YihmdW5jdGlvbihJKXtyZXR1cm4oMCxMLlopKCgwLEwuWikoe30sSSkse30se3Njcm9sbExlZnQ6Qy9mKm18fDB9KX0pfTtyZXR1cm4gby51c2VJbXBlcmF0aXZlSGFuZGxlKG4sZnVuY3Rpb24oKXtyZXR1cm57c2V0U2Nyb2xsTGVmdDpOLGNoZWNrU2Nyb2xsQmFyVmlzaWJsZTprfX0pLG8udXNlRWZmZWN0KGZ1bmN0aW9uKCl7dmFyICQ9KDAsd3IuWikoZG9jdW1lbnQuYm9keSwibW91c2V1cCIsRiwhMSksQz0oMCx3ci5aKShkb2N1bWVudC5ib2R5LCJtb3VzZW1vdmUiLGosITEpO3JldHVybiBrKCksZnVuY3Rpb24oKXskLnJlbW92ZSgpLEMucmVtb3ZlKCl9fSxbdSxaXSksby51c2VFZmZlY3QoZnVuY3Rpb24oKXtpZihhLmN1cnJlbnQpe2Zvcih2YXIgJD1bXSxDPSgwLGpuLmJuKShhLmN1cnJlbnQpO0M7KSQucHVzaChDKSxDPUMucGFyZW50RWxlbWVudDtyZXR1cm4gJC5mb3JFYWNoKGZ1bmN0aW9uKEkpe3JldHVybiBJLmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsaywhMSl9KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIixrLCExKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixrLCExKSxjLmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsaywhMSksZnVuY3Rpb24oKXskLmZvckVhY2goZnVuY3Rpb24oSSl7cmV0dXJuIEkucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixrKX0pLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLGspLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLGspLGMucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixrKX19fSxbY10pLG8udXNlRWZmZWN0KGZ1bmN0aW9uKCl7eS5pc0hpZGRlblNjcm9sbEJhcnx8YihmdW5jdGlvbigkKXt2YXIgQz1hLmN1cnJlbnQ7cmV0dXJuIEM/KDAsTC5aKSgoMCxMLlopKHt9LCQpLHt9LHtzY3JvbGxMZWZ0OkMuc2Nyb2xsTGVmdC9DLnNjcm9sbFdpZHRoKkMuY2xpZW50V2lkdGh9KTokfSl9LFt5LmlzSGlkZGVuU2Nyb2xsQmFyXSksZjw9bXx8IXV8fHkuaXNIaWRkZW5TY3JvbGxCYXI/bnVsbDpvLmNyZWF0ZUVsZW1lbnQoImRpdiIse3N0eWxlOntoZWlnaHQ6KDAsRnQuWikoKSx3aWR0aDptLGJvdHRvbTppfSxjbGFzc05hbWU6IiIuY29uY2F0KHAsIi1zdGlja3ktc2Nyb2xsIil9LG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7b25Nb3VzZURvd246eixyZWY6dixjbGFzc05hbWU6bmUoKSgiIi5jb25jYXQocCwiLXN0aWNreS1zY3JvbGwtYmFyIiksKDAscS5aKSh7fSwiIi5jb25jYXQocCwiLXN0aWNreS1zY3JvbGwtYmFyLWFjdGl2ZSIpLFopKSxzdHlsZTp7d2lkdGg6IiIuY29uY2F0KHUsInB4IiksdHJhbnNmb3JtOiJ0cmFuc2xhdGUzZCgiLmNvbmNhdCh5LnNjcm9sbExlZnQsInB4LCAwLCAwKSIpfX0pKX0scW89by5mb3J3YXJkUmVmKFFvKTtmdW5jdGlvbiBfbyhlKXtyZXR1cm4gbnVsbH12YXIgZWw9X287ZnVuY3Rpb24gdGwoZSl7cmV0dXJuIG51bGx9dmFyIG5sPXRsLFJyPSJyYy10YWJsZSIscmw9W10sb2w9e307ZnVuY3Rpb24gbGwoKXtyZXR1cm4iTm8gRGF0YSJ9ZnVuY3Rpb24gYWwoZSx0KXt2YXIgbj0oMCxMLlopKHtyb3dLZXk6ImtleSIscHJlZml4Q2xzOlJyLGVtcHR5VGV4dDpsbH0sZSkscj1uLnByZWZpeENscyxsPW4uY2xhc3NOYW1lLGE9bi5yb3dDbGFzc05hbWUscz1uLnN0eWxlLGk9bi5kYXRhLGM9bi5yb3dLZXksZD1uLnNjcm9sbCxwPW4udGFibGVMYXlvdXQsZj1uLmRpcmVjdGlvbixtPW4udGl0bGUsdT1uLmZvb3Rlcix2PW4uc3VtbWFyeSx4PW4uY2FwdGlvbixnPW4uaWQseT1uLnNob3dIZWFkZXIsYj1uLmNvbXBvbmVudHMsaD1uLmVtcHR5VGV4dCx3PW4ub25Sb3csUj1uLm9uSGVhZGVyUm93LFo9bi5vblNjcm9sbCxUPW4uaW50ZXJuYWxIb29rcyxWPW4udHJhbnNmb3JtQ29sdW1ucyxGPW4uaW50ZXJuYWxSZWZzLHo9bi50YWlsb3Isaj1uLmdldENvbnRhaW5lcldpZHRoLGs9bi5zdGlja3ksTj1uLnJvd0hvdmVyYWJsZSwkPU49PT12b2lkIDA/ITA6TixDPWl8fHJsLEk9ISFDLmxlbmd0aCxQPVQ9PT11ZSxNPW8udXNlQ2FsbGJhY2soZnVuY3Rpb24oUSxlZSl7cmV0dXJuKDAsc24uWikoYixRKXx8ZWV9LFtiXSksRT1vLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4gdHlwZW9mIGM9PSJmdW5jdGlvbiI/YzpmdW5jdGlvbihRKXt2YXIgZWU9USYmUVtjXTtyZXR1cm4gZWV9fSxbY10pLFU9TShbImJvZHkiXSksRz1WbygpLE5lPSgwLGNlLlopKEcsMyksYmU9TmVbMF0sbWU9TmVbMV0sRWU9TmVbMl0sVmU9am8obixDLEUpLFk9KDAsY2UuWikoVmUsNiksSj1ZWzBdLEJlPVlbMV0semU9WVsyXSxCPVlbM10sVz1ZWzRdLE89WVs1XSxIPWQ9PW51bGw/dm9pZCAwOmQueCxfPW8udXNlU3RhdGUoMCksdGU9KDAsY2UuWikoXywyKSxDZT10ZVswXSx2ZT10ZVsxXSxYZT1EbygoMCxMLlopKCgwLEwuWikoKDAsTC5aKSh7fSxuKSxKKSx7fSx7ZXhwYW5kYWJsZTohIUouZXhwYW5kZWRSb3dSZW5kZXIsY29sdW1uVGl0bGU6Si5jb2x1bW5UaXRsZSxleHBhbmRlZEtleXM6emUsZ2V0Um93S2V5OkUsb25UcmlnZ2VyRXhwYW5kOk8sZXhwYW5kSWNvbjpCLGV4cGFuZEljb25Db2x1bW5JbmRleDpKLmV4cGFuZEljb25Db2x1bW5JbmRleCxkaXJlY3Rpb246ZixzY3JvbGxXaWR0aDpQJiZ6JiZ0eXBlb2YgSD09Im51bWJlciI/SDpudWxsLGNsaWVudFdpZHRoOkNlfSksUD9WOm51bGwpLFVlPSgwLGNlLlopKFhlLDQpLEs9VWVbMF0sRD1VZVsxXSxyZT1VZVsyXSxTZT1VZVszXSxkZT1yZSE9bnVsbD9yZTpILEdlPW8udXNlTWVtbyhmdW5jdGlvbigpe3JldHVybntjb2x1bW5zOkssZmxhdHRlbkNvbHVtbnM6RH19LFtLLERdKSxQZT1vLnVzZVJlZigpLEl0PW8udXNlUmVmKCksd2U9by51c2VSZWYoKSxpZT1vLnVzZVJlZigpO28udXNlSW1wZXJhdGl2ZUhhbmRsZSh0LGZ1bmN0aW9uKCl7cmV0dXJue25hdGl2ZUVsZW1lbnQ6UGUuY3VycmVudCxzY3JvbGxUbzpmdW5jdGlvbihlZSl7dmFyIFFlO2lmKHdlLmN1cnJlbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCl7dmFyIFN0PWVlLmluZGV4LHFlPWVlLnRvcCxsbj1lZS5rZXk7aWYoYWUocWUpKXt2YXIgUXQ7KFF0PXdlLmN1cnJlbnQpPT09bnVsbHx8UXQ9PT12b2lkIDB8fFF0LnNjcm9sbFRvKHt0b3A6cWV9KX1lbHNle3ZhciBxdCxobj1sbiE9bnVsbD9sbjpFKENbU3RdKTsocXQ9d2UuY3VycmVudC5xdWVyeVNlbGVjdG9yKCdbZGF0YS1yb3cta2V5PSInLmNvbmNhdChobiwnIl0nKSkpPT09bnVsbHx8cXQ9PT12b2lkIDB8fHF0LnNjcm9sbEludG9WaWV3KCl9fWVsc2UoUWU9d2UuY3VycmVudCkhPT1udWxsJiZRZSE9PXZvaWQgMCYmUWUuc2Nyb2xsVG8mJndlLmN1cnJlbnQuc2Nyb2xsVG8oZWUpfX19KTt2YXIgcGU9by51c2VSZWYoKSx4ZT1vLnVzZVN0YXRlKCExKSxEZT0oMCxjZS5aKSh4ZSwyKSxMZT1EZVswXSxvZT1EZVsxXSxPZT1vLnVzZVN0YXRlKCExKSxmZT0oMCxjZS5aKShPZSwyKSxZZT1mZVswXSxLZT1mZVsxXSxudD1icihuZXcgTWFwKSxEdD0oMCxjZS5aKShudCwyKSxwbj1EdFswXSxJZT1EdFsxXSxnbj1sZShEKSxydD1nbi5tYXAoZnVuY3Rpb24oUSl7cmV0dXJuIHBuLmdldChRKX0pLHl0PW8udXNlTWVtbyhmdW5jdGlvbigpe3JldHVybiBydH0sW3J0LmpvaW4oIl8iKV0pLHB0PVlvKHl0LEQsZiksb3Q9ZCYmaGUoZC55KSxsdD1kJiZoZShkZSl8fCEhSi5maXhlZCxidD1sdCYmRC5zb21lKGZ1bmN0aW9uKFEpe3ZhciBlZT1RLmZpeGVkO3JldHVybiBlZX0pLGp0PW8udXNlUmVmKCksa3Q9VW8oayxyKSxOdD1rdC5pc1N0aWNreSxucj1rdC5vZmZzZXRIZWFkZXIscnI9a3Qub2Zmc2V0U3VtbWFyeSxvcj1rdC5vZmZzZXRTY3JvbGwsTm49a3Quc3RpY2t5Q2xhc3NOYW1lLGxyPWt0LmNvbnRhaW5lcixYPW8udXNlTWVtbyhmdW5jdGlvbigpe3JldHVybiB2PT1udWxsP3ZvaWQgMDp2KEMpfSxbdixDXSksc2U9KG90fHxOdCkmJm8uaXNWYWxpZEVsZW1lbnQoWCkmJlgudHlwZT09PUt0JiZYLnByb3BzLmZpeGVkLE1lLGplLGF0O290JiYoamU9e292ZXJmbG93WTpJPyJzY3JvbGwiOiJhdXRvIixtYXhIZWlnaHQ6ZC55fSksbHQmJihNZT17b3ZlcmZsb3dYOiJhdXRvIn0sb3R8fChqZT17b3ZlcmZsb3dZOiJoaWRkZW4ifSksYXQ9e3dpZHRoOmRlPT09ITA/ImF1dG8iOmRlLG1pbldpZHRoOiIxMDAlIn0pO3ZhciBDdD1vLnVzZUNhbGxiYWNrKGZ1bmN0aW9uKFEsZWUpeygwLE10LlopKFBlLmN1cnJlbnQpJiZJZShmdW5jdGlvbihRZSl7aWYoUWUuZ2V0KFEpIT09ZWUpe3ZhciBTdD1uZXcgTWFwKFFlKTtyZXR1cm4gU3Quc2V0KFEsZWUpLFN0fXJldHVybiBRZX0pfSxbXSksVHQ9V28obnVsbCksSmU9KDAsY2UuWikoVHQsMiksQWE9SmVbMF0sdG89SmVbMV07ZnVuY3Rpb24gWm4oUSxlZSl7ZWUmJih0eXBlb2YgZWU9PSJmdW5jdGlvbiI/ZWUoUSk6ZWUuc2Nyb2xsTGVmdCE9PVEmJihlZS5zY3JvbGxMZWZ0PVEsZWUuc2Nyb2xsTGVmdCE9PVEmJnNldFRpbWVvdXQoZnVuY3Rpb24oKXtlZS5zY3JvbGxMZWZ0PVF9LDApKSl9dmFyIG9uPSgwLGV0LlopKGZ1bmN0aW9uKFEpe3ZhciBlZT1RLmN1cnJlbnRUYXJnZXQsUWU9US5zY3JvbGxMZWZ0LFN0PWY9PT0icnRsIixxZT10eXBlb2YgUWU9PSJudW1iZXIiP1FlOmVlLnNjcm9sbExlZnQsbG49ZWV8fG9sO2lmKCF0bygpfHx0bygpPT09bG4pe3ZhciBRdDtBYShsbiksWm4ocWUsSXQuY3VycmVudCksWm4ocWUsd2UuY3VycmVudCksWm4ocWUscGUuY3VycmVudCksWm4ocWUsKFF0PWp0LmN1cnJlbnQpPT09bnVsbHx8UXQ9PT12b2lkIDA/dm9pZCAwOlF0LnNldFNjcm9sbExlZnQpfXZhciBxdD1lZXx8SXQuY3VycmVudDtpZihxdCl7dmFyIGhuPVAmJnomJnR5cGVvZiBkZT09Im51bWJlciI/ZGU6cXQuc2Nyb2xsV2lkdGgsZHI9cXQuY2xpZW50V2lkdGg7aWYoaG49PT1kcil7b2UoITEpLEtlKCExKTtyZXR1cm59U3Q/KG9lKC1xZTxobi1kciksS2UoLXFlPjApKToob2UocWU+MCksS2UocWU8aG4tZHIpKX19KSxXYT0oMCxldC5aKShmdW5jdGlvbihRKXtvbihRKSxaPT1udWxsfHxaKFEpfSksbm89ZnVuY3Rpb24oKXtpZihsdCYmd2UuY3VycmVudCl7dmFyIGVlO29uKHtjdXJyZW50VGFyZ2V0OigwLGpuLmJuKSh3ZS5jdXJyZW50KSxzY3JvbGxMZWZ0OihlZT13ZS5jdXJyZW50KT09PW51bGx8fGVlPT09dm9pZCAwP3ZvaWQgMDplZS5zY3JvbGxMZWZ0fSl9ZWxzZSBvZSghMSksS2UoITEpfSxWYT1mdW5jdGlvbihlZSl7dmFyIFFlLFN0PWVlLndpZHRoOyhRZT1qdC5jdXJyZW50KT09PW51bGx8fFFlPT09dm9pZCAwfHxRZS5jaGVja1Njcm9sbEJhclZpc2libGUoKTt2YXIgcWU9UGUuY3VycmVudD9QZS5jdXJyZW50Lm9mZnNldFdpZHRoOlN0O1AmJmomJlBlLmN1cnJlbnQmJihxZT1qKFBlLmN1cnJlbnQscWUpfHxxZSkscWUhPT1DZSYmKG5vKCksdmUocWUpKX0scm89by51c2VSZWYoITEpO28udXNlRWZmZWN0KGZ1bmN0aW9uKCl7cm8uY3VycmVudCYmbm8oKX0sW2x0LGksSy5sZW5ndGhdKSxvLnVzZUVmZmVjdChmdW5jdGlvbigpe3JvLmN1cnJlbnQ9ITB9LFtdKTt2YXIgWGE9by51c2VTdGF0ZSgwKSxvbz0oMCxjZS5aKShYYSwyKSxQbj1vb1swXSxsbz1vb1sxXSxVYT1vLnVzZVN0YXRlKCEwKSxhbz0oMCxjZS5aKShVYSwyKSxpbz1hb1swXSxHYT1hb1sxXTtvLnVzZUVmZmVjdChmdW5jdGlvbigpeyghenx8IVApJiYod2UuY3VycmVudCBpbnN0YW5jZW9mIEVsZW1lbnQ/bG8oKDAsRnQubykod2UuY3VycmVudCkud2lkdGgpOmxvKCgwLEZ0Lm8pKGllLmN1cnJlbnQpLndpZHRoKSksR2EoKDAsSHQuRykoInBvc2l0aW9uIiwic3RpY2t5IikpfSxbXSksby51c2VFZmZlY3QoZnVuY3Rpb24oKXtQJiZGJiYoRi5ib2R5LmN1cnJlbnQ9d2UuY3VycmVudCl9KTt2YXIgWWE9by51c2VDYWxsYmFjayhmdW5jdGlvbihRKXtyZXR1cm4gby5jcmVhdGVFbGVtZW50KG8uRnJhZ21lbnQsbnVsbCxvLmNyZWF0ZUVsZW1lbnQoaHIsUSksc2U9PT0idG9wIiYmby5jcmVhdGVFbGVtZW50KHN0LFEsWCkpfSxbc2UsWF0pLEphPW8udXNlQ2FsbGJhY2soZnVuY3Rpb24oUSl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudChzdCxRLFgpfSxbWF0pLHNvPU0oWyJ0YWJsZSJdLCJ0YWJsZSIpLE9uPW8udXNlTWVtbyhmdW5jdGlvbigpe3JldHVybiBwfHwoYnQ/ZGU9PT0ibWF4LWNvbnRlbnQiPyJhdXRvIjoiZml4ZWQiOm90fHxOdHx8RC5zb21lKGZ1bmN0aW9uKFEpe3ZhciBlZT1RLmVsbGlwc2lzO3JldHVybiBlZX0pPyJmaXhlZCI6ImF1dG8iKX0sW290LGJ0LEQscCxOdF0pLGFyLGlyPXtjb2xXaWR0aHM6eXQsY29sdW1Db3VudDpELmxlbmd0aCxzdGlja3lPZmZzZXRzOnB0LG9uSGVhZGVyUm93OlIsZml4SGVhZGVyOm90LHNjcm9sbDpkfSxjbz1vLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4gST9udWxsOnR5cGVvZiBoPT0iZnVuY3Rpb24iP2goKTpofSxbSSxoXSksdW89by5jcmVhdGVFbGVtZW50KHdvLHtkYXRhOkMsbWVhc3VyZUNvbHVtbldpZHRoOm90fHxsdHx8TnR9KSxmbz1vLmNyZWF0ZUVsZW1lbnQocHIse2NvbFdpZHRoczpELm1hcChmdW5jdGlvbihRKXt2YXIgZWU9US53aWR0aDtyZXR1cm4gZWV9KSxjb2x1bW5zOkR9KSxtbz14IT1udWxsP28uY3JlYXRlRWxlbWVudCgiY2FwdGlvbiIse2NsYXNzTmFtZToiIi5jb25jYXQociwiLWNhcHRpb24iKX0seCk6dm9pZCAwLFFhPSgwLGR0LlopKG4se2RhdGE6ITB9KSx2bz0oMCxkdC5aKShuLHthcmlhOiEwfSk7aWYob3R8fE50KXt2YXIgc3I7dHlwZW9mIFU9PSJmdW5jdGlvbiI/KHNyPVUoQyx7c2Nyb2xsYmFyU2l6ZTpQbixyZWY6d2Usb25TY3JvbGw6b259KSxpci5jb2xXaWR0aHM9RC5tYXAoZnVuY3Rpb24oUSxlZSl7dmFyIFFlPVEud2lkdGgsU3Q9ZWU9PT1ELmxlbmd0aC0xP1FlLVBuOlFlO3JldHVybiB0eXBlb2YgU3Q9PSJudW1iZXIiJiYhTnVtYmVyLmlzTmFOKFN0KT9TdDowfSkpOnNyPW8uY3JlYXRlRWxlbWVudCgiZGl2Iix7c3R5bGU6KDAsTC5aKSgoMCxMLlopKHt9LE1lKSxqZSksb25TY3JvbGw6V2EscmVmOndlLGNsYXNzTmFtZTpuZSgpKCIiLmNvbmNhdChyLCItYm9keSIpKX0sby5jcmVhdGVFbGVtZW50KHNvLCgwLFRlLlopKHtzdHlsZTooMCxMLlopKCgwLEwuWikoe30sYXQpLHt9LHt0YWJsZUxheW91dDpPbn0pfSx2byksbW8sZm8sdW8sIXNlJiZYJiZvLmNyZWF0ZUVsZW1lbnQoc3Qse3N0aWNreU9mZnNldHM6cHQsZmxhdHRlbkNvbHVtbnM6RH0sWCkpKTt2YXIgcG89KDAsTC5aKSgoMCxMLlopKCgwLEwuWikoe25vRGF0YTohQy5sZW5ndGgsbWF4Q29udGVudFNjcm9sbDpsdCYmZGU9PT0ibWF4LWNvbnRlbnQifSxpciksR2UpLHt9LHtkaXJlY3Rpb246ZixzdGlja3lDbGFzc05hbWU6Tm4sb25TY3JvbGw6b259KTthcj1vLmNyZWF0ZUVsZW1lbnQoby5GcmFnbWVudCxudWxsLHkhPT0hMSYmby5jcmVhdGVFbGVtZW50KGdyLCgwLFRlLlopKHt9LHBvLHtzdGlja3lUb3BPZmZzZXQ6bnIsY2xhc3NOYW1lOiIiLmNvbmNhdChyLCItaGVhZGVyIikscmVmOkl0fSksWWEpLHNyLHNlJiZzZSE9PSJ0b3AiJiZvLmNyZWF0ZUVsZW1lbnQoZ3IsKDAsVGUuWikoe30scG8se3N0aWNreUJvdHRvbU9mZnNldDpycixjbGFzc05hbWU6IiIuY29uY2F0KHIsIi1zdW1tYXJ5IikscmVmOnBlfSksSmEpLE50JiZ3ZS5jdXJyZW50JiZ3ZS5jdXJyZW50IGluc3RhbmNlb2YgRWxlbWVudCYmby5jcmVhdGVFbGVtZW50KHFvLHtyZWY6anQsb2Zmc2V0U2Nyb2xsOm9yLHNjcm9sbEJvZHlSZWY6d2Usb25TY3JvbGw6b24sY29udGFpbmVyOmxyLGRpcmVjdGlvbjpmfSkpfWVsc2UgYXI9by5jcmVhdGVFbGVtZW50KCJkaXYiLHtzdHlsZTooMCxMLlopKCgwLEwuWikoe30sTWUpLGplKSxjbGFzc05hbWU6bmUoKSgiIi5jb25jYXQociwiLWNvbnRlbnQiKSksb25TY3JvbGw6b24scmVmOndlfSxvLmNyZWF0ZUVsZW1lbnQoc28sKDAsVGUuWikoe3N0eWxlOigwLEwuWikoKDAsTC5aKSh7fSxhdCkse30se3RhYmxlTGF5b3V0Ok9ufSl9LHZvKSxtbyxmbyx5IT09ITEmJm8uY3JlYXRlRWxlbWVudChociwoMCxUZS5aKSh7fSxpcixHZSkpLHVvLFgmJm8uY3JlYXRlRWxlbWVudChzdCx7c3RpY2t5T2Zmc2V0czpwdCxmbGF0dGVuQ29sdW1uczpEfSxYKSkpO3ZhciBjcj1vLmNyZWF0ZUVsZW1lbnQoImRpdiIsKDAsVGUuWikoe2NsYXNzTmFtZTpuZSgpKHIsbCwoMCxxLlopKCgwLHEuWikoKDAscS5aKSgoMCxxLlopKCgwLHEuWikoKDAscS5aKSgoMCxxLlopKCgwLHEuWikoKDAscS5aKSgoMCxxLlopKHt9LCIiLmNvbmNhdChyLCItcnRsIiksZj09PSJydGwiKSwiIi5jb25jYXQociwiLXBpbmctbGVmdCIpLExlKSwiIi5jb25jYXQociwiLXBpbmctcmlnaHQiKSxZZSksIiIuY29uY2F0KHIsIi1sYXlvdXQtZml4ZWQiKSxwPT09ImZpeGVkIiksIiIuY29uY2F0KHIsIi1maXhlZC1oZWFkZXIiKSxvdCksIiIuY29uY2F0KHIsIi1maXhlZC1jb2x1bW4iKSxidCksIiIuY29uY2F0KHIsIi1maXhlZC1jb2x1bW4tZ2FwcGVkIiksYnQmJlNlKSwiIi5jb25jYXQociwiLXNjcm9sbC1ob3Jpem9udGFsIiksbHQpLCIiLmNvbmNhdChyLCItaGFzLWZpeC1sZWZ0IiksRFswXSYmRFswXS5maXhlZCksIiIuY29uY2F0KHIsIi1oYXMtZml4LXJpZ2h0IiksRFtELmxlbmd0aC0xXSYmRFtELmxlbmd0aC0xXS5maXhlZD09PSJyaWdodCIpKSxzdHlsZTpzLGlkOmcscmVmOlBlfSxRYSksbSYmby5jcmVhdGVFbGVtZW50KFNyLHtjbGFzc05hbWU6IiIuY29uY2F0KHIsIi10aXRsZSIpfSxtKEMpKSxvLmNyZWF0ZUVsZW1lbnQoImRpdiIse3JlZjppZSxjbGFzc05hbWU6IiIuY29uY2F0KHIsIi1jb250YWluZXIiKX0sYXIpLHUmJm8uY3JlYXRlRWxlbWVudChTcix7Y2xhc3NOYW1lOiIiLmNvbmNhdChyLCItZm9vdGVyIil9LHUoQykpKTtsdCYmKGNyPW8uY3JlYXRlRWxlbWVudCh2dC5aLHtvblJlc2l6ZTpWYX0sY3IpKTt2YXIgZ289QW8oRCxwdCxmKSxxYT1vLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm57c2Nyb2xsWDpkZSxwcmVmaXhDbHM6cixnZXRDb21wb25lbnQ6TSxzY3JvbGxiYXJTaXplOlBuLGRpcmVjdGlvbjpmLGZpeGVkSW5mb0xpc3Q6Z28saXNTdGlja3k6TnQsc3VwcG9ydFN0aWNreTppbyxjb21wb25lbnRXaWR0aDpDZSxmaXhIZWFkZXI6b3QsZml4Q29sdW1uOmJ0LGhvcml6b25TY3JvbGw6bHQsdGFibGVMYXlvdXQ6T24scm93Q2xhc3NOYW1lOmEsZXhwYW5kZWRSb3dDbGFzc05hbWU6Si5leHBhbmRlZFJvd0NsYXNzTmFtZSxleHBhbmRJY29uOkIsZXhwYW5kYWJsZVR5cGU6QmUsZXhwYW5kUm93QnlDbGljazpKLmV4cGFuZFJvd0J5Q2xpY2ssZXhwYW5kZWRSb3dSZW5kZXI6Si5leHBhbmRlZFJvd1JlbmRlcixvblRyaWdnZXJFeHBhbmQ6TyxleHBhbmRJY29uQ29sdW1uSW5kZXg6Si5leHBhbmRJY29uQ29sdW1uSW5kZXgsaW5kZW50U2l6ZTpKLmluZGVudFNpemUsYWxsQ29sdW1uc0ZpeGVkTGVmdDpELmV2ZXJ5KGZ1bmN0aW9uKFEpe3JldHVybiBRLmZpeGVkPT09ImxlZnQifSksZW1wdHlOb2RlOmNvLGNvbHVtbnM6SyxmbGF0dGVuQ29sdW1uczpELG9uQ29sdW1uUmVzaXplOkN0LGhvdmVyU3RhcnRSb3c6YmUsaG92ZXJFbmRSb3c6bWUsb25Ib3ZlcjpFZSxyb3dFeHBhbmRhYmxlOkoucm93RXhwYW5kYWJsZSxvblJvdzp3LGdldFJvd0tleTpFLGV4cGFuZGVkS2V5czp6ZSxjaGlsZHJlbkNvbHVtbk5hbWU6Vyxyb3dIb3ZlcmFibGU6JH19LFtkZSxyLE0sUG4sZixnbyxOdCxpbyxDZSxvdCxidCxsdCxPbixhLEouZXhwYW5kZWRSb3dDbGFzc05hbWUsQixCZSxKLmV4cGFuZFJvd0J5Q2xpY2ssSi5leHBhbmRlZFJvd1JlbmRlcixPLEouZXhwYW5kSWNvbkNvbHVtbkluZGV4LEouaW5kZW50U2l6ZSxjbyxLLEQsQ3QsYmUsbWUsRWUsSi5yb3dFeHBhbmRhYmxlLHcsRSx6ZSxXLCRdKTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KEFlLlByb3ZpZGVyLHt2YWx1ZTpxYX0sY3IpfXZhciBpbD1vLmZvcndhcmRSZWYoYWwpO2Z1bmN0aW9uICRyKGUpe3JldHVybiB5bihpbCxlKX12YXIgdG49JHIoKTt0bi5FWFBBTkRfQ09MVU1OPVdlLHRuLklOVEVSTkFMX0hPT0tTPXVlLHRuLkNvbHVtbj1lbCx0bi5Db2x1bW5Hcm91cD1ubCx0bi5TdW1tYXJ5PWN0O3ZhciBzbD10bixjbD1TKDg3NzE4KSxBbj1mdChudWxsKSxJcj1mdChudWxsKTtmdW5jdGlvbiBkbChlLHQsbil7dmFyIHI9dHx8MTtyZXR1cm4gbltlK3JdLShuW2VdfHwwKX1mdW5jdGlvbiB1bChlKXt2YXIgdD1lLnJvd0luZm8sbj1lLmNvbHVtbixyPWUuY29sSW5kZXgsbD1lLmluZGVudCxhPWUuaW5kZXgscz1lLmNvbXBvbmVudCxpPWUucmVuZGVySW5kZXgsYz1lLnJlY29yZCxkPWUuc3R5bGUscD1lLmNsYXNzTmFtZSxmPWUuaW52ZXJzZSxtPWUuZ2V0SGVpZ2h0LHU9bi5yZW5kZXIsdj1uLmRhdGFJbmRleCx4PW4uY2xhc3NOYW1lLGc9bi53aWR0aCx5PVJlKElyLFsiY29sdW1uc09mZnNldCJdKSxiPXkuY29sdW1uc09mZnNldCxoPXZyKHQsbixyLGwsYSksdz1oLmtleSxSPWguZml4ZWRJbmZvLFo9aC5hcHBlbmRDZWxsTm9kZSxUPWguYWRkaXRpb25hbENlbGxQcm9wcyxWPVQuc3R5bGUsRj1ULmNvbFNwYW4sej1GPT09dm9pZCAwPzE6RixqPVQucm93U3BhbixrPWo9PT12b2lkIDA/MTpqLE49ci0xLCQ9ZGwoTix6LGIpLEM9ej4xP2ctJDowLEk9KDAsTC5aKSgoMCxMLlopKCgwLEwuWikoe30sViksZCkse30se2ZsZXg6IjAgMCAiLmNvbmNhdCgkLCJweCIpLHdpZHRoOiIiLmNvbmNhdCgkLCJweCIpLG1hcmdpblJpZ2h0OkMscG9pbnRlckV2ZW50czoiYXV0byJ9KSxQPW8udXNlTWVtbyhmdW5jdGlvbigpe3JldHVybiBmP2s8PTE6ej09PTB8fGs9PT0wfHxrPjF9LFtrLHosZl0pO1A/SS52aXNpYmlsaXR5PSJoaWRkZW4iOmYmJihJLmhlaWdodD1tPT1udWxsP3ZvaWQgMDptKGspKTt2YXIgTT1QP2Z1bmN0aW9uKCl7cmV0dXJuIG51bGx9OnUsRT17fTtyZXR1cm4oaz09PTB8fHo9PT0wKSYmKEUucm93U3Bhbj0xLEUuY29sU3Bhbj0xKSxvLmNyZWF0ZUVsZW1lbnQoJHQsKDAsVGUuWikoe2NsYXNzTmFtZTpuZSgpKHgscCksZWxsaXBzaXM6bi5lbGxpcHNpcyxhbGlnbjpuLmFsaWduLHNjb3BlOm4ucm93U2NvcGUsY29tcG9uZW50OnMscHJlZml4Q2xzOnQucHJlZml4Q2xzLGtleTp3LHJlY29yZDpjLGluZGV4OmEscmVuZGVySW5kZXg6aSxkYXRhSW5kZXg6dixyZW5kZXI6TSxzaG91bGRDZWxsVXBkYXRlOm4uc2hvdWxkQ2VsbFVwZGF0ZX0sUix7YXBwZW5kTm9kZTpaLGFkZGl0aW9uYWxQcm9wczooMCxMLlopKCgwLEwuWikoe30sVCkse30se3N0eWxlOkl9LEUpfSkpfXZhciBmbD11bCxtbD1bImRhdGEiLCJpbmRleCIsImNsYXNzTmFtZSIsInJvd0tleSIsInN0eWxlIiwiZXh0cmEiLCJnZXRIZWlnaHQiXSx2bD1vLmZvcndhcmRSZWYoZnVuY3Rpb24oZSx0KXt2YXIgbj1lLmRhdGEscj1lLmluZGV4LGw9ZS5jbGFzc05hbWUsYT1lLnJvd0tleSxzPWUuc3R5bGUsaT1lLmV4dHJhLGM9ZS5nZXRIZWlnaHQsZD0oMCxtdC5aKShlLG1sKSxwPW4ucmVjb3JkLGY9bi5pbmRlbnQsbT1uLmluZGV4LHU9UmUoQWUsWyJwcmVmaXhDbHMiLCJmbGF0dGVuQ29sdW1ucyIsImZpeENvbHVtbiIsImNvbXBvbmVudFdpZHRoIiwic2Nyb2xsWCJdKSx2PXUuc2Nyb2xsWCx4PXUuZmxhdHRlbkNvbHVtbnMsZz11LnByZWZpeENscyx5PXUuZml4Q29sdW1uLGI9dS5jb21wb25lbnRXaWR0aCxoPVJlKEFuLFsiZ2V0Q29tcG9uZW50Il0pLHc9aC5nZXRDb21wb25lbnQsUj1KdChwLGEscixmKSxaPXcoWyJib2R5Iiwicm93Il0sImRpdiIpLFQ9dyhbImJvZHkiLCJjZWxsIl0sImRpdiIpLFY9Ui5yb3dTdXBwb3J0RXhwYW5kLEY9Ui5leHBhbmRlZCx6PVIucm93UHJvcHMsaj1SLmV4cGFuZGVkUm93UmVuZGVyLGs9Ui5leHBhbmRlZFJvd0NsYXNzTmFtZSxOO2lmKFYmJkYpe3ZhciAkPWoocCxyLGYrMSxGKSxDPW1yKGsscCxyLGYpLEk9e307eSYmKEk9e3N0eWxlOigwLHEuWikoe30sIi0tdmlydHVhbC13aWR0aCIsIiIuY29uY2F0KGIsInB4IikpfSk7dmFyIFA9IiIuY29uY2F0KGcsIi1leHBhbmRlZC1yb3ctY2VsbCIpO049by5jcmVhdGVFbGVtZW50KFose2NsYXNzTmFtZTpuZSgpKCIiLmNvbmNhdChnLCItZXhwYW5kZWQtcm93IiksIiIuY29uY2F0KGcsIi1leHBhbmRlZC1yb3ctbGV2ZWwtIikuY29uY2F0KGYrMSksQyl9LG8uY3JlYXRlRWxlbWVudCgkdCx7Y29tcG9uZW50OlQscHJlZml4Q2xzOmcsY2xhc3NOYW1lOm5lKCkoUCwoMCxxLlopKHt9LCIiLmNvbmNhdChQLCItZml4ZWQiKSx5KSksYWRkaXRpb25hbFByb3BzOkl9LCQpKX12YXIgTT0oMCxMLlopKCgwLEwuWikoe30scykse30se3dpZHRoOnZ9KTtpJiYoTS5wb3NpdGlvbj0iYWJzb2x1dGUiLE0ucG9pbnRlckV2ZW50cz0ibm9uZSIpO3ZhciBFPW8uY3JlYXRlRWxlbWVudChaLCgwLFRlLlopKHt9LHosZCx7ImRhdGEtcm93LWtleSI6YSxyZWY6Vj9udWxsOnQsY2xhc3NOYW1lOm5lKCkobCwiIi5jb25jYXQoZywiLXJvdyIpLHo9PW51bGw/dm9pZCAwOnouY2xhc3NOYW1lLCgwLHEuWikoe30sIiIuY29uY2F0KGcsIi1yb3ctZXh0cmEiKSxpKSksc3R5bGU6KDAsTC5aKSgoMCxMLlopKHt9LE0pLHo9PW51bGw/dm9pZCAwOnouc3R5bGUpfSkseC5tYXAoZnVuY3Rpb24oVSxHKXtyZXR1cm4gby5jcmVhdGVFbGVtZW50KGZsLHtrZXk6Ryxjb21wb25lbnQ6VCxyb3dJbmZvOlIsY29sdW1uOlUsY29sSW5kZXg6RyxpbmRlbnQ6ZixpbmRleDpyLHJlbmRlckluZGV4Om0scmVjb3JkOnAsaW52ZXJzZTppLGdldEhlaWdodDpjfSl9KSk7cmV0dXJuIFY/by5jcmVhdGVFbGVtZW50KCJkaXYiLHtyZWY6dH0sRSxOKTpFfSkscGw9VnQodmwpLFRyPXBsLGdsPW8uZm9yd2FyZFJlZihmdW5jdGlvbihlLHQpe3ZhciBuPWUuZGF0YSxyPWUub25TY3JvbGwsbD1SZShBZSxbImZsYXR0ZW5Db2x1bW5zIiwib25Db2x1bW5SZXNpemUiLCJnZXRSb3dLZXkiLCJwcmVmaXhDbHMiLCJleHBhbmRlZEtleXMiLCJjaGlsZHJlbkNvbHVtbk5hbWUiLCJzY3JvbGxYIiwiZGlyZWN0aW9uIl0pLGE9bC5mbGF0dGVuQ29sdW1ucyxzPWwub25Db2x1bW5SZXNpemUsaT1sLmdldFJvd0tleSxjPWwuZXhwYW5kZWRLZXlzLGQ9bC5wcmVmaXhDbHMscD1sLmNoaWxkcmVuQ29sdW1uTmFtZSxmPWwuc2Nyb2xsWCxtPWwuZGlyZWN0aW9uLHU9UmUoQW4pLHY9dS5zdGlja3kseD11LnNjcm9sbFksZz11Lmxpc3RJdGVtSGVpZ2h0LHk9dS5nZXRDb21wb25lbnQsYj11Lm9uU2Nyb2xsLGg9by51c2VSZWYoKSx3PVl0KG4scCxjLGkpLFI9by51c2VNZW1vKGZ1bmN0aW9uKCl7dmFyIE49MDtyZXR1cm4gYS5tYXAoZnVuY3Rpb24oJCl7dmFyIEM9JC53aWR0aCxJPSQua2V5O3JldHVybiBOKz1DLFtJLEMsTl19KX0sW2FdKSxaPW8udXNlTWVtbyhmdW5jdGlvbigpe3JldHVybiBSLm1hcChmdW5jdGlvbihOKXtyZXR1cm4gTlsyXX0pfSxbUl0pO28udXNlRWZmZWN0KGZ1bmN0aW9uKCl7Ui5mb3JFYWNoKGZ1bmN0aW9uKE4pe3ZhciAkPSgwLGNlLlopKE4sMiksQz0kWzBdLEk9JFsxXTtzKEMsSSl9KX0sW1JdKSxvLnVzZUltcGVyYXRpdmVIYW5kbGUodCxmdW5jdGlvbigpe3ZhciBOLCQ9e3Njcm9sbFRvOmZ1bmN0aW9uKEkpe3ZhciBQOyhQPWguY3VycmVudCk9PT1udWxsfHxQPT09dm9pZCAwfHxQLnNjcm9sbFRvKEkpfSxuYXRpdmVFbGVtZW50OihOPWguY3VycmVudCk9PT1udWxsfHxOPT09dm9pZCAwP3ZvaWQgMDpOLm5hdGl2ZUVsZW1lbnR9O3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoJCwic2Nyb2xsTGVmdCIse2dldDpmdW5jdGlvbigpe3ZhciBJO3JldHVybigoST1oLmN1cnJlbnQpPT09bnVsbHx8ST09PXZvaWQgMD92b2lkIDA6SS5nZXRTY3JvbGxJbmZvKCkueCl8fDB9LHNldDpmdW5jdGlvbihJKXt2YXIgUDsoUD1oLmN1cnJlbnQpPT09bnVsbHx8UD09PXZvaWQgMHx8UC5zY3JvbGxUbyh7bGVmdDpJfSl9fSksJH0pO3ZhciBUPWZ1bmN0aW9uKCQsQyl7dmFyIEksUD0oST13W0NdKT09PW51bGx8fEk9PT12b2lkIDA/dm9pZCAwOkkucmVjb3JkLE09JC5vbkNlbGw7aWYoTSl7dmFyIEUsVT1NKFAsQyk7cmV0dXJuKEU9VT09bnVsbD92b2lkIDA6VS5yb3dTcGFuKSE9PW51bGwmJkUhPT12b2lkIDA/RToxfXJldHVybiAxfSxWPWZ1bmN0aW9uKCQpe3ZhciBDPSQuc3RhcnQsST0kLmVuZCxQPSQuZ2V0U2l6ZSxNPSQub2Zmc2V0WTtpZihJPDApcmV0dXJuIG51bGw7Zm9yKHZhciBFPWEuZmlsdGVyKGZ1bmN0aW9uKEIpe3JldHVybiBUKEIsQyk9PT0wfSksVT1DLEc9ZnVuY3Rpb24oVyl7aWYoRT1FLmZpbHRlcihmdW5jdGlvbihPKXtyZXR1cm4gVChPLFcpPT09MH0pLCFFLmxlbmd0aClyZXR1cm4gVT1XLDF9LE5lPUM7TmU+PTAmJiFHKE5lKTtOZS09MSk7Zm9yKHZhciBiZT1hLmZpbHRlcihmdW5jdGlvbihCKXtyZXR1cm4gVChCLEkpIT09MX0pLG1lPUksRWU9ZnVuY3Rpb24oVyl7aWYoYmU9YmUuZmlsdGVyKGZ1bmN0aW9uKE8pe3JldHVybiBUKE8sVykhPT0xfSksIWJlLmxlbmd0aClyZXR1cm4gbWU9TWF0aC5tYXgoVy0xLEkpLDF9LFZlPUk7VmU8dy5sZW5ndGgmJiFFZShWZSk7VmUrPTEpO2Zvcih2YXIgWT1bXSxKPWZ1bmN0aW9uKFcpe3ZhciBPPXdbV107aWYoIU8pcmV0dXJuIDE7YS5zb21lKGZ1bmN0aW9uKEgpe3JldHVybiBUKEgsVyk+MX0pJiZZLnB1c2goVyl9LEJlPVU7QmU8PW1lO0JlKz0xKUooQmUpO3ZhciB6ZT1ZLm1hcChmdW5jdGlvbihCKXt2YXIgVz13W0JdLE89aShXLnJlY29yZCxCKSxIPWZ1bmN0aW9uKENlKXt2YXIgdmU9QitDZS0xLFhlPWkod1t2ZV0ucmVjb3JkLHZlKSxVZT1QKE8sWGUpO3JldHVybiBVZS5ib3R0b20tVWUudG9wfSxfPVAoTyk7cmV0dXJuIG8uY3JlYXRlRWxlbWVudChUcix7a2V5OkIsZGF0YTpXLHJvd0tleTpPLGluZGV4OkIsc3R5bGU6e3RvcDotTStfLnRvcH0sZXh0cmE6ITAsZ2V0SGVpZ2h0Okh9KX0pO3JldHVybiB6ZX0sRj1vLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm57Y29sdW1uc09mZnNldDpafX0sW1pdKSx6PSIiLmNvbmNhdChkLCItdGJvZHkiKSxqPXkoWyJib2R5Iiwid3JhcHBlciJdKSxrPXt9O3JldHVybiB2JiYoay5wb3NpdGlvbj0ic3RpY2t5IixrLmJvdHRvbT0wLCgwLEV0LlopKHYpPT09Im9iamVjdCImJnYub2Zmc2V0U2Nyb2xsJiYoay5ib3R0b209di5vZmZzZXRTY3JvbGwpKSxvLmNyZWF0ZUVsZW1lbnQoSXIuUHJvdmlkZXIse3ZhbHVlOkZ9LG8uY3JlYXRlRWxlbWVudChjbC5aLHtmdWxsSGVpZ2h0OiExLHJlZjpoLHByZWZpeENsczoiIi5jb25jYXQoeiwiLXZpcnR1YWwiKSxzdHlsZXM6e2hvcml6b250YWxTY3JvbGxCYXI6a30sY2xhc3NOYW1lOnosaGVpZ2h0OngsaXRlbUhlaWdodDpnfHwyNCxkYXRhOncsaXRlbUtleTpmdW5jdGlvbigkKXtyZXR1cm4gaSgkLnJlY29yZCl9LGNvbXBvbmVudDpqLHNjcm9sbFdpZHRoOmYsZGlyZWN0aW9uOm0sb25WaXJ0dWFsU2Nyb2xsOmZ1bmN0aW9uKCQpe3ZhciBDLEk9JC54O3Ioe2N1cnJlbnRUYXJnZXQ6KEM9aC5jdXJyZW50KT09PW51bGx8fEM9PT12b2lkIDA/dm9pZCAwOkMubmF0aXZlRWxlbWVudCxzY3JvbGxMZWZ0Okl9KX0sb25TY3JvbGw6YixleHRyYVJlbmRlcjpWfSxmdW5jdGlvbihOLCQsQyl7dmFyIEk9aShOLnJlY29yZCwkKTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KFRyLHtkYXRhOk4scm93S2V5OkksaW5kZXg6JCxzdHlsZTpDLnN0eWxlfSl9KSl9KSxobD1WdChnbCkseGw9aGwseWw9ZnVuY3Rpb24odCxuKXt2YXIgcj1uLnJlZixsPW4ub25TY3JvbGw7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCh4bCx7cmVmOnIsZGF0YTp0LG9uU2Nyb2xsOmx9KX07ZnVuY3Rpb24gYmwoZSx0KXt2YXIgbj1lLmRhdGEscj1lLmNvbHVtbnMsbD1lLnNjcm9sbCxhPWUuc3RpY2t5LHM9ZS5wcmVmaXhDbHMsaT1zPT09dm9pZCAwP1JyOnMsYz1lLmNsYXNzTmFtZSxkPWUubGlzdEl0ZW1IZWlnaHQscD1lLmNvbXBvbmVudHMsZj1lLm9uU2Nyb2xsLG09bHx8e30sdT1tLngsdj1tLnk7dHlwZW9mIHUhPSJudW1iZXIiJiYodT0xKSx0eXBlb2YgdiE9Im51bWJlciImJih2PTUwMCk7dmFyIHg9KDAsUnQuelgpKGZ1bmN0aW9uKGIsaCl7cmV0dXJuKDAsc24uWikocCxiKXx8aH0pLGc9KDAsUnQuelgpKGYpLHk9by51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJue3N0aWNreTphLHNjcm9sbFk6dixsaXN0SXRlbUhlaWdodDpkLGdldENvbXBvbmVudDp4LG9uU2Nyb2xsOmd9fSxbYSx2LGQseCxnXSk7cmV0dXJuIG8uY3JlYXRlRWxlbWVudChBbi5Qcm92aWRlcix7dmFsdWU6eX0sby5jcmVhdGVFbGVtZW50KHNsLCgwLFRlLlopKHt9LGUse2NsYXNzTmFtZTpuZSgpKGMsIiIuY29uY2F0KGksIi12aXJ0dWFsIikpLHNjcm9sbDooMCxMLlopKCgwLEwuWikoe30sbCkse30se3g6dX0pLGNvbXBvbmVudHM6KDAsTC5aKSgoMCxMLlopKHt9LHApLHt9LHtib2R5Om4hPW51bGwmJm4ubGVuZ3RoP3lsOnZvaWQgMH0pLGNvbHVtbnM6cixpbnRlcm5hbEhvb2tzOnVlLHRhaWxvcjohMCxyZWY6dH0pKSl9dmFyIENsPW8uZm9yd2FyZFJlZihibCk7ZnVuY3Rpb24ga3IoZSl7cmV0dXJuIHluKENsLGUpfXZhciBfYT1rcigpLGVpPW51bGwsU2w9ZT0+bnVsbCx3bD1lPT5udWxsLEVsPVMoODA4ODIpLE5yPVMoMTAyMjUpLFduPVMoMTczNDEpLFJsPVMoMTA4OSksJGw9UygyMTc3MCk7ZnVuY3Rpb24gSWwoZSl7Y29uc3RbdCxuXT0oMCxvLnVzZVN0YXRlKShudWxsKTtyZXR1cm5bKDAsby51c2VDYWxsYmFjaykoKGEscyxpKT0+e2NvbnN0IGM9dCE9bnVsbD90OmEsZD1NYXRoLm1pbihjfHwwLGEpLHA9TWF0aC5tYXgoY3x8MCxhKSxmPXMuc2xpY2UoZCxwKzEpLm1hcCh2PT5lKHYpKSxtPWYuc29tZSh2PT4haS5oYXModikpLHU9W107cmV0dXJuIGYuZm9yRWFjaCh2PT57bT8oaS5oYXModil8fHUucHVzaCh2KSxpLmFkZCh2KSk6KGkuZGVsZXRlKHYpLHUucHVzaCh2KSl9KSxuKG0/cDpudWxsKSx1fSxbdF0pLGE9PntuKGEpfV19dmFyIFZuPVMoMjcyODgpLCRuPVMoODQ1NjcpLFpyPVMoODU0MTgpLFByPVMoNzgwNDUpO2NvbnN0IEx0PXt9LFhuPSJTRUxFQ1RfQUxMIixVbj0iU0VMRUNUX0lOVkVSVCIsR249IlNFTEVDVF9OT05FIixPcj1bXSxCcj0oZSx0KT0+e2xldCBuPVtdO3JldHVybih0fHxbXSkuZm9yRWFjaChyPT57bi5wdXNoKHIpLHImJnR5cGVvZiByPT0ib2JqZWN0IiYmZSBpbiByJiYobj1bXS5jb25jYXQoKDAseWUuWikobiksKDAseWUuWikoQnIoZSxyW2VdKSkpKX0pLG59O3ZhciBUbD0oZSx0KT0+e2NvbnN0e3ByZXNlcnZlU2VsZWN0ZWRSb3dLZXlzOm4sc2VsZWN0ZWRSb3dLZXlzOnIsZGVmYXVsdFNlbGVjdGVkUm93S2V5czpsLGdldENoZWNrYm94UHJvcHM6YSxvbkNoYW5nZTpzLG9uU2VsZWN0Omksb25TZWxlY3RBbGw6YyxvblNlbGVjdEludmVydDpkLG9uU2VsZWN0Tm9uZTpwLG9uU2VsZWN0TXVsdGlwbGU6Zixjb2x1bW5XaWR0aDptLHR5cGU6dSxzZWxlY3Rpb25zOnYsZml4ZWQ6eCxyZW5kZXJDZWxsOmcsaGlkZVNlbGVjdEFsbDp5LGNoZWNrU3RyaWN0bHk6Yj0hMH09dHx8e30se3ByZWZpeENsczpoLGRhdGE6dyxwYWdlRGF0YTpSLGdldFJlY29yZEJ5S2V5OlosZ2V0Um93S2V5OlQsZXhwYW5kVHlwZTpWLGNoaWxkcmVuQ29sdW1uTmFtZTpGLGxvY2FsZTp6LGdldFBvcHVwQ29udGFpbmVyOmp9PWUsaz0oMCxWbi5sbikoIlRhYmxlIiksW04sJF09SWwoQj0+QiksW0MsSV09KDAsJGwuWikocnx8bHx8T3Ise3ZhbHVlOnJ9KSxQPW8udXNlUmVmKG5ldyBNYXApLE09KDAsby51c2VDYWxsYmFjaykoQj0+e2lmKG4pe2NvbnN0IFc9bmV3IE1hcDtCLmZvckVhY2goTz0+e2xldCBIPVooTyk7IUgmJlAuY3VycmVudC5oYXMoTykmJihIPVAuY3VycmVudC5nZXQoTykpLFcuc2V0KE8sSCl9KSxQLmN1cnJlbnQ9V319LFtaLG5dKTtvLnVzZUVmZmVjdCgoKT0+e00oQyl9LFtDXSk7Y29uc3QgRT0oMCxvLnVzZU1lbW8pKCgpPT5CcihGLFIpLFtGLFJdKSx7a2V5RW50aXRpZXM6VX09KDAsby51c2VNZW1vKSgoKT0+e2lmKGIpcmV0dXJue2tleUVudGl0aWVzOm51bGx9O2xldCBCPXc7aWYobil7Y29uc3QgVz1uZXcgU2V0KEUubWFwKChILF8pPT5UKEgsXykpKSxPPUFycmF5LmZyb20oUC5jdXJyZW50KS5yZWR1Y2UoKEgsXyk9PntsZXRbdGUsQ2VdPV87cmV0dXJuIFcuaGFzKHRlKT9IOkguY29uY2F0KENlKX0sW10pO0I9W10uY29uY2F0KCgwLHllLlopKEIpLCgwLHllLlopKE8pKX1yZXR1cm4oMCxSbC5JOCkoQix7ZXh0ZXJuYWxHZXRLZXk6VCxjaGlsZHJlblByb3BOYW1lOkZ9KX0sW3csVCxiLEYsbixFXSksRz0oMCxvLnVzZU1lbW8pKCgpPT57Y29uc3QgQj1uZXcgTWFwO3JldHVybiBFLmZvckVhY2goKFcsTyk9Pntjb25zdCBIPVQoVyxPKSxfPShhP2EoVyk6bnVsbCl8fHt9O0Iuc2V0KEgsXyl9KSxCfSxbRSxULGFdKSxOZT0oMCxvLnVzZUNhbGxiYWNrKShCPT57Y29uc3QgVz1UKEIpO2xldCBPO3JldHVybiBHLmhhcyhXKT9PPUcuZ2V0KFQoQikpOk89YT9hKEIpOnZvaWQgMCwhIShPIT1udWxsJiZPLmRpc2FibGVkKX0sW0csVF0pLFtiZSxtZV09KDAsby51c2VNZW1vKSgoKT0+e2lmKGIpcmV0dXJuW0N8fFtdLFtdXTtjb25zdHtjaGVja2VkS2V5czpCLGhhbGZDaGVja2VkS2V5czpXfT0oMCxXbi5TKShDLCEwLFUsTmUpO3JldHVybltCfHxbXSxXXX0sW0MsYixVLE5lXSksRWU9KDAsby51c2VNZW1vKSgoKT0+e2NvbnN0IEI9dT09PSJyYWRpbyI/YmUuc2xpY2UoMCwxKTpiZTtyZXR1cm4gbmV3IFNldChCKX0sW2JlLHVdKSxWZT0oMCxvLnVzZU1lbW8pKCgpPT51PT09InJhZGlvIj9uZXcgU2V0Om5ldyBTZXQobWUpLFttZSx1XSk7by51c2VFZmZlY3QoKCk9Pnt0fHxJKE9yKX0sWyEhdF0pO2NvbnN0IFk9KDAsby51c2VDYWxsYmFjaykoKEIsVyk9PntsZXQgTyxIO00oQiksbj8oTz1CLEg9Qi5tYXAoXz0+UC5jdXJyZW50LmdldChfKSkpOihPPVtdLEg9W10sQi5mb3JFYWNoKF89Pntjb25zdCB0ZT1aKF8pO3RlIT09dm9pZCAwJiYoTy5wdXNoKF8pLEgucHVzaCh0ZSkpfSkpLEkoTykscz09bnVsbHx8cyhPLEgse3R5cGU6V30pfSxbSSxaLHMsbl0pLEo9KDAsby51c2VDYWxsYmFjaykoKEIsVyxPLEgpPT57aWYoaSl7Y29uc3QgXz1PLm1hcCh0ZT0+Wih0ZSkpO2koWihCKSxXLF8sSCl9WShPLCJzaW5nbGUiKX0sW2ksWixZXSksQmU9KDAsby51c2VNZW1vKSgoKT0+IXZ8fHk/bnVsbDoodj09PSEwP1tYbixVbixHbl06dikubWFwKFc9Plc9PT1Ybj97a2V5OiJhbGwiLHRleHQ6ei5zZWxlY3Rpb25BbGwsb25TZWxlY3QoKXtZKHcubWFwKChPLEgpPT5UKE8sSCkpLmZpbHRlcihPPT57Y29uc3QgSD1HLmdldChPKTtyZXR1cm4hKEghPW51bGwmJkguZGlzYWJsZWQpfHxFZS5oYXMoTyl9KSwiYWxsIil9fTpXPT09VW4/e2tleToiaW52ZXJ0Iix0ZXh0Onouc2VsZWN0SW52ZXJ0LG9uU2VsZWN0KCl7Y29uc3QgTz1uZXcgU2V0KEVlKTtSLmZvckVhY2goKF8sdGUpPT57Y29uc3QgQ2U9VChfLHRlKSx2ZT1HLmdldChDZSk7dmUhPW51bGwmJnZlLmRpc2FibGVkfHwoTy5oYXMoQ2UpP08uZGVsZXRlKENlKTpPLmFkZChDZSkpfSk7Y29uc3QgSD1BcnJheS5mcm9tKE8pO2QmJihrLmRlcHJlY2F0ZWQoITEsIm9uU2VsZWN0SW52ZXJ0Iiwib25DaGFuZ2UiKSxkKEgpKSxZKEgsImludmVydCIpfX06Vz09PUduP3trZXk6Im5vbmUiLHRleHQ6ei5zZWxlY3ROb25lLG9uU2VsZWN0KCl7cD09bnVsbHx8cCgpLFkoQXJyYXkuZnJvbShFZSkuZmlsdGVyKE89Pntjb25zdCBIPUcuZ2V0KE8pO3JldHVybiBIPT1udWxsP3ZvaWQgMDpILmRpc2FibGVkfSksIm5vbmUiKX19OlcpLm1hcChXPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sVykse29uU2VsZWN0OmZ1bmN0aW9uKCl7Zm9yKHZhciBPLEgsXz1hcmd1bWVudHMubGVuZ3RoLHRlPW5ldyBBcnJheShfKSxDZT0wO0NlPF87Q2UrKyl0ZVtDZV09YXJndW1lbnRzW0NlXTsoSD1XLm9uU2VsZWN0KT09PW51bGx8fEg9PT12b2lkIDB8fChPPUgpLmNhbGwuYXBwbHkoTyxbV10uY29uY2F0KHRlKSksJChudWxsKX19KSksW3YsRWUsUixULGQsWV0pO3JldHVyblsoMCxvLnVzZUNhbGxiYWNrKShCPT57dmFyIFc7aWYoIXQpcmV0dXJuIEIuZmlsdGVyKGllPT5pZSE9PUx0KTtsZXQgTz0oMCx5ZS5aKShCKTtjb25zdCBIPW5ldyBTZXQoRWUpLF89RS5tYXAoVCkuZmlsdGVyKGllPT4hRy5nZXQoaWUpLmRpc2FibGVkKSx0ZT1fLmV2ZXJ5KGllPT5ILmhhcyhpZSkpLENlPV8uc29tZShpZT0+SC5oYXMoaWUpKSx2ZT0oKT0+e2NvbnN0IGllPVtdO3RlP18uZm9yRWFjaCh4ZT0+e0guZGVsZXRlKHhlKSxpZS5wdXNoKHhlKX0pOl8uZm9yRWFjaCh4ZT0+e0guaGFzKHhlKXx8KEguYWRkKHhlKSxpZS5wdXNoKHhlKSl9KTtjb25zdCBwZT1BcnJheS5mcm9tKEgpO2M9PW51bGx8fGMoIXRlLHBlLm1hcCh4ZT0+Wih4ZSkpLGllLm1hcCh4ZT0+Wih4ZSkpKSxZKHBlLCJhbGwiKSwkKG51bGwpfTtsZXQgWGUsVWU7aWYodSE9PSJyYWRpbyIpe2xldCBpZTtpZihCZSl7Y29uc3Qgb2U9e2dldFBvcHVwQ29udGFpbmVyOmosaXRlbXM6QmUubWFwKChPZSxmZSk9Pntjb25zdHtrZXk6WWUsdGV4dDpLZSxvblNlbGVjdDpudH09T2U7cmV0dXJue2tleTpZZSE9bnVsbD9ZZTpmZSxvbkNsaWNrOigpPT57bnQ9PW51bGx8fG50KF8pfSxsYWJlbDpLZX19KX07aWU9by5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YCR7aH0tc2VsZWN0aW9uLWV4dHJhYH0sby5jcmVhdGVFbGVtZW50KFpyLlose21lbnU6b2UsZ2V0UG9wdXBDb250YWluZXI6an0sby5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLG8uY3JlYXRlRWxlbWVudChFbC5aLG51bGwpKSkpfWNvbnN0IHBlPUUubWFwKChvZSxPZSk9Pntjb25zdCBmZT1UKG9lLE9lKSxZZT1HLmdldChmZSl8fHt9O3JldHVybiBPYmplY3QuYXNzaWduKHtjaGVja2VkOkguaGFzKGZlKX0sWWUpfSkuZmlsdGVyKG9lPT57bGV0e2Rpc2FibGVkOk9lfT1vZTtyZXR1cm4gT2V9KSx4ZT0hIXBlLmxlbmd0aCYmcGUubGVuZ3RoPT09RS5sZW5ndGgsRGU9eGUmJnBlLmV2ZXJ5KG9lPT57bGV0e2NoZWNrZWQ6T2V9PW9lO3JldHVybiBPZX0pLExlPXhlJiZwZS5zb21lKG9lPT57bGV0e2NoZWNrZWQ6T2V9PW9lO3JldHVybiBPZX0pO1VlPW8uY3JlYXRlRWxlbWVudCgkbi5aLHtjaGVja2VkOnhlP0RlOiEhRS5sZW5ndGgmJnRlLGluZGV0ZXJtaW5hdGU6eGU/IURlJiZMZTohdGUmJkNlLG9uQ2hhbmdlOnZlLGRpc2FibGVkOkUubGVuZ3RoPT09MHx8eGUsImFyaWEtbGFiZWwiOmllPyJDdXN0b20gc2VsZWN0aW9uIjoiU2VsZWN0IGFsbCIsc2tpcEdyb3VwOiEwfSksWGU9IXkmJm8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmAke2h9LXNlbGVjdGlvbmB9LFVlLGllKX1sZXQgSzt1PT09InJhZGlvIj9LPShpZSxwZSx4ZSk9Pntjb25zdCBEZT1UKHBlLHhlKSxMZT1ILmhhcyhEZSksb2U9Ry5nZXQoRGUpO3JldHVybntub2RlOm8uY3JlYXRlRWxlbWVudChQci5aUCxPYmplY3QuYXNzaWduKHt9LG9lLHtjaGVja2VkOkxlLG9uQ2xpY2s6T2U9Pnt2YXIgZmU7T2Uuc3RvcFByb3BhZ2F0aW9uKCksKGZlPW9lPT1udWxsP3ZvaWQgMDpvZS5vbkNsaWNrKT09PW51bGx8fGZlPT09dm9pZCAwfHxmZS5jYWxsKG9lLE9lKX0sb25DaGFuZ2U6T2U9Pnt2YXIgZmU7SC5oYXMoRGUpfHxKKERlLCEwLFtEZV0sT2UubmF0aXZlRXZlbnQpLChmZT1vZT09bnVsbD92b2lkIDA6b2Uub25DaGFuZ2UpPT09bnVsbHx8ZmU9PT12b2lkIDB8fGZlLmNhbGwob2UsT2UpfX0pKSxjaGVja2VkOkxlfX06Sz0oaWUscGUseGUpPT57dmFyIERlO2NvbnN0IExlPVQocGUseGUpLG9lPUguaGFzKExlKSxPZT1WZS5oYXMoTGUpLGZlPUcuZ2V0KExlKTtsZXQgWWU7cmV0dXJuIFY9PT0ibmVzdCI/WWU9T2U6WWU9KERlPWZlPT1udWxsP3ZvaWQgMDpmZS5pbmRldGVybWluYXRlKSE9PW51bGwmJkRlIT09dm9pZCAwP0RlOk9lLHtub2RlOm8uY3JlYXRlRWxlbWVudCgkbi5aLE9iamVjdC5hc3NpZ24oe30sZmUse2luZGV0ZXJtaW5hdGU6WWUsY2hlY2tlZDpvZSxza2lwR3JvdXA6ITAsb25DbGljazpLZT0+e3ZhciBudDtLZS5zdG9wUHJvcGFnYXRpb24oKSwobnQ9ZmU9PW51bGw/dm9pZCAwOmZlLm9uQ2xpY2spPT09bnVsbHx8bnQ9PT12b2lkIDB8fG50LmNhbGwoZmUsS2UpfSxvbkNoYW5nZTpLZT0+e3ZhciBudDtjb25zdHtuYXRpdmVFdmVudDpEdH09S2Use3NoaWZ0S2V5OnBufT1EdCxJZT1fLmZpbmRJbmRleChydD0+cnQ9PT1MZSksZ249YmUuc29tZShydD0+Xy5pbmNsdWRlcyhydCkpO2lmKHBuJiZiJiZnbil7Y29uc3QgcnQ9TihJZSxfLEgpLHl0PUFycmF5LmZyb20oSCk7Zj09bnVsbHx8Zighb2UseXQubWFwKHB0PT5aKHB0KSkscnQubWFwKHB0PT5aKHB0KSkpLFkoeXQsIm11bHRpcGxlIil9ZWxzZXtjb25zdCBydD1iZTtpZihiKXtjb25zdCB5dD1vZT8oMCxOci5fNSkocnQsTGUpOigwLE5yLkwwKShydCxMZSk7SihMZSwhb2UseXQsRHQpfWVsc2V7Y29uc3QgeXQ9KDAsV24uUykoW10uY29uY2F0KCgwLHllLlopKHJ0KSxbTGVdKSwhMCxVLE5lKSx7Y2hlY2tlZEtleXM6cHQsaGFsZkNoZWNrZWRLZXlzOm90fT15dDtsZXQgbHQ9cHQ7aWYob2Upe2NvbnN0IGJ0PW5ldyBTZXQocHQpO2J0LmRlbGV0ZShMZSksbHQ9KDAsV24uUykoQXJyYXkuZnJvbShidCkse2NoZWNrZWQ6ITEsaGFsZkNoZWNrZWRLZXlzOm90fSxVLE5lKS5jaGVja2VkS2V5c31KKExlLCFvZSxsdCxEdCl9fSQob2U/bnVsbDpJZSksKG50PWZlPT1udWxsP3ZvaWQgMDpmZS5vbkNoYW5nZSk9PT1udWxsfHxudD09PXZvaWQgMHx8bnQuY2FsbChmZSxLZSl9fSkpLGNoZWNrZWQ6b2V9fTtjb25zdCBEPShpZSxwZSx4ZSk9Pntjb25zdHtub2RlOkRlLGNoZWNrZWQ6TGV9PUsoaWUscGUseGUpO3JldHVybiBnP2coTGUscGUseGUsRGUpOkRlfTtpZighTy5pbmNsdWRlcyhMdCkpaWYoTy5maW5kSW5kZXgoaWU9Pnt2YXIgcGU7cmV0dXJuKChwZT1pZVt1bl0pPT09bnVsbHx8cGU9PT12b2lkIDA/dm9pZCAwOnBlLmNvbHVtblR5cGUpPT09IkVYUEFORF9DT0xVTU4ifSk9PT0wKXtjb25zdFtpZSwuLi5wZV09TztPPVtpZSxMdF0uY29uY2F0KCgwLHllLlopKHBlKSl9ZWxzZSBPPVtMdF0uY29uY2F0KCgwLHllLlopKE8pKTtjb25zdCByZT1PLmluZGV4T2YoTHQpO089Ty5maWx0ZXIoKGllLHBlKT0+aWUhPT1MdHx8cGU9PT1yZSk7Y29uc3QgU2U9T1tyZS0xXSxkZT1PW3JlKzFdO2xldCBHZT14O0dlPT09dm9pZCAwJiYoKGRlPT1udWxsP3ZvaWQgMDpkZS5maXhlZCkhPT12b2lkIDA/R2U9ZGUuZml4ZWQ6KFNlPT1udWxsP3ZvaWQgMDpTZS5maXhlZCkhPT12b2lkIDAmJihHZT1TZS5maXhlZCkpLEdlJiZTZSYmKChXPVNlW3VuXSk9PT1udWxsfHxXPT09dm9pZCAwP3ZvaWQgMDpXLmNvbHVtblR5cGUpPT09IkVYUEFORF9DT0xVTU4iJiZTZS5maXhlZD09PXZvaWQgMCYmKFNlLmZpeGVkPUdlKTtjb25zdCBQZT1uZSgpKGAke2h9LXNlbGVjdGlvbi1jb2xgLHtbYCR7aH0tc2VsZWN0aW9uLWNvbC13aXRoLWRyb3Bkb3duYF06diYmdT09PSJjaGVja2JveCJ9KSxJdD0oKT0+dCE9bnVsbCYmdC5jb2x1bW5UaXRsZT90eXBlb2YgdC5jb2x1bW5UaXRsZT09ImZ1bmN0aW9uIj90LmNvbHVtblRpdGxlKFVlKTp0LmNvbHVtblRpdGxlOlhlLHdlPXtmaXhlZDpHZSx3aWR0aDptLGNsYXNzTmFtZTpgJHtofS1zZWxlY3Rpb24tY29sdW1uYCx0aXRsZTpJdCgpLHJlbmRlcjpELG9uQ2VsbDp0Lm9uQ2VsbCxbdW5dOntjbGFzc05hbWU6UGV9fTtyZXR1cm4gTy5tYXAoaWU9PmllPT09THQ/d2U6aWUpfSxbVCxFLHQsYmUsRWUsVmUsbSxCZSxWLEcsZixKLE5lXSksRWVdfSxrbD1TKDk4NDIzKTtmdW5jdGlvbiBObChlLHQpe3JldHVybiBlLl9hbnRQcm94eT1lLl9hbnRQcm94eXx8e30sT2JqZWN0LmtleXModCkuZm9yRWFjaChuPT57aWYoIShuIGluIGUuX2FudFByb3h5KSl7Y29uc3Qgcj1lW25dO2UuX2FudFByb3h5W25dPXIsZVtuXT10W25dfX0pLGV9ZnVuY3Rpb24gWmwoZSx0KXtyZXR1cm4oMCxvLnVzZUltcGVyYXRpdmVIYW5kbGUpKGUsKCk9Pntjb25zdCBuPXQoKSx7bmF0aXZlRWxlbWVudDpyfT1uO3JldHVybiB0eXBlb2YgUHJveHkhPSJ1bmRlZmluZWQiP25ldyBQcm94eShyLHtnZXQobCxhKXtyZXR1cm4gblthXT9uW2FdOlJlZmxlY3QuZ2V0KGwsYSl9fSk6TmwocixuKX0pfWZ1bmN0aW9uIFBsKGUsdCxuLHIpe2NvbnN0IGw9bi10O3JldHVybiBlLz1yLzIsZTwxP2wvMiplKmUqZSt0OmwvMiooKGUtPTIpKmUqZSsyKSt0fWZ1bmN0aW9uIFluKGUpe3JldHVybiBlIT1udWxsJiZlPT09ZS53aW5kb3d9dmFyIE9sPWU9Pnt2YXIgdCxuO2lmKHR5cGVvZiB3aW5kb3c9PSJ1bmRlZmluZWQiKXJldHVybiAwO2xldCByPTA7cmV0dXJuIFluKGUpP3I9ZS5wYWdlWU9mZnNldDplIGluc3RhbmNlb2YgRG9jdW1lbnQ/cj1lLmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3A6KGUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudHx8ZSkmJihyPWUuc2Nyb2xsVG9wKSxlJiYhWW4oZSkmJnR5cGVvZiByIT0ibnVtYmVyIiYmKHI9KG49KCh0PWUub3duZXJEb2N1bWVudCkhPT1udWxsJiZ0IT09dm9pZCAwP3Q6ZSkuZG9jdW1lbnRFbGVtZW50KT09PW51bGx8fG49PT12b2lkIDA/dm9pZCAwOm4uc2Nyb2xsVG9wKSxyfTtmdW5jdGlvbiBCbChlKXtsZXQgdD1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06e307Y29uc3R7Z2V0Q29udGFpbmVyOm49KCk9PndpbmRvdyxjYWxsYmFjazpyLGR1cmF0aW9uOmw9NDUwfT10LGE9bigpLHM9T2woYSksaT1EYXRlLm5vdygpLGM9KCk9Pntjb25zdCBwPURhdGUubm93KCktaSxmPVBsKHA+bD9sOnAscyxlLGwpO1luKGEpP2Euc2Nyb2xsVG8od2luZG93LnBhZ2VYT2Zmc2V0LGYpOmEgaW5zdGFuY2VvZiBEb2N1bWVudHx8YS5jb25zdHJ1Y3Rvci5uYW1lPT09IkhUTUxEb2N1bWVudCI/YS5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wPWY6YS5zY3JvbGxUb3A9ZixwPGw/KDAsZm4uWikoYyk6dHlwZW9mIHI9PSJmdW5jdGlvbiImJnIoKX07KDAsZm4uWikoYyl9dmFyIEtyPVMoNTMxMjQpLEtsPVMoODgyNTgpLE1sPVMoMzU3OTIpLEhsPVMoOTg2NzUpLEZsPVMoMjUzNzgpLExsPVMoMjQ0NTcpLHpsPVMoNTg4MjQpLERsPVMoNTczODEpLGpsPVMoMjk2OTEpO2Z1bmN0aW9uIEFsKGUpe3JldHVybiB0PT57Y29uc3R7cHJlZml4Q2xzOm4sb25FeHBhbmQ6cixyZWNvcmQ6bCxleHBhbmRlZDphLGV4cGFuZGFibGU6c309dCxpPWAke259LXJvdy1leHBhbmQtaWNvbmA7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixvbkNsaWNrOmM9PntyKGwsYyksYy5zdG9wUHJvcGFnYXRpb24oKX0sY2xhc3NOYW1lOm5lKCkoaSx7W2Ake2l9LXNwYWNlZGBdOiFzLFtgJHtpfS1leHBhbmRlZGBdOnMmJmEsW2Ake2l9LWNvbGxhcHNlZGBdOnMmJiFhfSksImFyaWEtbGFiZWwiOmE/ZS5jb2xsYXBzZTplLmV4cGFuZCwiYXJpYS1leHBhbmRlZCI6YX0pfX12YXIgV2w9QWw7ZnVuY3Rpb24gVmwoZSl7cmV0dXJuKG4scik9Pntjb25zdCBsPW4ucXVlcnlTZWxlY3RvcihgLiR7ZX0tY29udGFpbmVyYCk7bGV0IGE9cjtpZihsKXtjb25zdCBzPWdldENvbXB1dGVkU3R5bGUobCksaT1wYXJzZUludChzLmJvcmRlckxlZnRXaWR0aCwxMCksYz1wYXJzZUludChzLmJvcmRlclJpZ2h0V2lkdGgsMTApO2E9ci1pLWN9cmV0dXJuIGF9fWNvbnN0IHp0PShlLHQpPT4ia2V5ImluIGUmJmUua2V5IT09dm9pZCAwJiZlLmtleSE9PW51bGw/ZS5rZXk6ZS5kYXRhSW5kZXg/QXJyYXkuaXNBcnJheShlLmRhdGFJbmRleCk/ZS5kYXRhSW5kZXguam9pbigiLiIpOmUuZGF0YUluZGV4OnQ7ZnVuY3Rpb24gbm4oZSx0KXtyZXR1cm4gdD9gJHt0fS0ke2V9YDpgJHtlfWB9Y29uc3QgSW49KGUsdCk9PnR5cGVvZiBlPT0iZnVuY3Rpb24iP2UodCk6ZSxYbD0oZSx0KT0+e2NvbnN0IG49SW4oZSx0KTtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG4pPT09IltvYmplY3QgT2JqZWN0XSI/IiI6bn07dmFyIFVsPVMoOTk5ODIpLE1yPVMoMzg3ODApLEdsPVMoNTc4MzgpO2Z1bmN0aW9uIFlsKGUpe2NvbnN0IHQ9by51c2VSZWYoZSksbj0oMCxHbC5aKSgpO3JldHVyblsoKT0+dC5jdXJyZW50LHI9Pnt0LmN1cnJlbnQ9cixuKCl9XX12YXIgSHI9Uyg4MzYyMiksRnI9UygzMjk4MyksSmw9Uyg1MDEzNiksUWw9Uyg3NjUyOSkscWw9UygyMDg2MyksX2w9Uyg0ODI5NiksZWE9Uyg4MjU4NiksTHI9ZT0+e2NvbnN0e3ZhbHVlOnQsZmlsdGVyU2VhcmNoOm4sdGFibGVQcmVmaXhDbHM6cixsb2NhbGU6bCxvbkNoYW5nZTphfT1lO3JldHVybiBuP28uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmAke3J9LWZpbHRlci1kcm9wZG93bi1zZWFyY2hgfSxvLmNyZWF0ZUVsZW1lbnQoZWEuWix7cHJlZml4Om8uY3JlYXRlRWxlbWVudChfbC5aLG51bGwpLHBsYWNlaG9sZGVyOmwuZmlsdGVyU2VhcmNoUGxhY2Vob2xkZXIsb25DaGFuZ2U6YSx2YWx1ZTp0LGh0bWxTaXplOjEsY2xhc3NOYW1lOmAke3J9LWZpbHRlci1kcm9wZG93bi1zZWFyY2gtaW5wdXRgfSkpOm51bGx9LHpyPVMoMTUxMDUpO2NvbnN0IHRhPWU9Pntjb25zdHtrZXlDb2RlOnR9PWU7dD09PXpyLlouRU5URVImJmUuc3RvcFByb3BhZ2F0aW9uKCl9O3ZhciBuYT1vLmZvcndhcmRSZWYoKGUsdCk9Pm8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmUuY2xhc3NOYW1lLG9uQ2xpY2s6bj0+bi5zdG9wUHJvcGFnYXRpb24oKSxvbktleURvd246dGEscmVmOnR9LGUuY2hpbGRyZW4pKTtmdW5jdGlvbiBybihlKXtsZXQgdD1bXTtyZXR1cm4oZXx8W10pLmZvckVhY2gobj0+e2xldHt2YWx1ZTpyLGNoaWxkcmVuOmx9PW47dC5wdXNoKHIpLGwmJih0PVtdLmNvbmNhdCgoMCx5ZS5aKSh0KSwoMCx5ZS5aKShybihsKSkpKX0pLHR9ZnVuY3Rpb24gcmEoZSl7cmV0dXJuIGUuc29tZSh0PT57bGV0e2NoaWxkcmVuOm59PXQ7cmV0dXJuIG59KX1mdW5jdGlvbiBEcihlLHQpe3JldHVybiB0eXBlb2YgdD09InN0cmluZyJ8fHR5cGVvZiB0PT0ibnVtYmVyIj90PT1udWxsP3ZvaWQgMDp0LnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhlLnRyaW0oKS50b0xvd2VyQ2FzZSgpKTohMX1mdW5jdGlvbiBqcihlKXtsZXR7ZmlsdGVyczp0LHByZWZpeENsczpuLGZpbHRlcmVkS2V5czpyLGZpbHRlck11bHRpcGxlOmwsc2VhcmNoVmFsdWU6YSxmaWx0ZXJTZWFyY2g6c309ZTtyZXR1cm4gdC5tYXAoKGksYyk9Pntjb25zdCBkPVN0cmluZyhpLnZhbHVlKTtpZihpLmNoaWxkcmVuKXJldHVybntrZXk6ZHx8YyxsYWJlbDppLnRleHQscG9wdXBDbGFzc05hbWU6YCR7bn0tZHJvcGRvd24tc3VibWVudWAsY2hpbGRyZW46anIoe2ZpbHRlcnM6aS5jaGlsZHJlbixwcmVmaXhDbHM6bixmaWx0ZXJlZEtleXM6cixmaWx0ZXJNdWx0aXBsZTpsLHNlYXJjaFZhbHVlOmEsZmlsdGVyU2VhcmNoOnN9KX07Y29uc3QgcD1sPyRuLlo6UHIuWlAsZj17a2V5OmkudmFsdWUhPT12b2lkIDA/ZDpjLGxhYmVsOm8uY3JlYXRlRWxlbWVudChvLkZyYWdtZW50LG51bGwsby5jcmVhdGVFbGVtZW50KHAse2NoZWNrZWQ6ci5pbmNsdWRlcyhkKX0pLG8uY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCxpLnRleHQpKX07cmV0dXJuIGEudHJpbSgpP3R5cGVvZiBzPT0iZnVuY3Rpb24iP3MoYSxpKT9mOm51bGw6RHIoYSxpLnRleHQpP2Y6bnVsbDpmfSl9ZnVuY3Rpb24gSm4oZSl7cmV0dXJuIGV8fFtdfXZhciBvYT1lPT57dmFyIHQsbixyLGw7Y29uc3R7dGFibGVQcmVmaXhDbHM6YSxwcmVmaXhDbHM6cyxjb2x1bW46aSxkcm9wZG93blByZWZpeENsczpjLGNvbHVtbktleTpkLGZpbHRlck9uQ2xvc2U6cCxmaWx0ZXJNdWx0aXBsZTpmLGZpbHRlck1vZGU6bT0ibWVudSIsZmlsdGVyU2VhcmNoOnU9ITEsZmlsdGVyU3RhdGU6dix0cmlnZ2VyRmlsdGVyOngsbG9jYWxlOmcsY2hpbGRyZW46eSxnZXRQb3B1cENvbnRhaW5lcjpiLHJvb3RDbGFzc05hbWU6aH09ZSx7ZmlsdGVyUmVzZXRUb0RlZmF1bHRGaWx0ZXJlZFZhbHVlOncsZGVmYXVsdEZpbHRlcmVkVmFsdWU6UixmaWx0ZXJEcm9wZG93blByb3BzOlo9e30sZmlsdGVyRHJvcGRvd25PcGVuOlQsZmlsdGVyRHJvcGRvd25WaXNpYmxlOlYsb25GaWx0ZXJEcm9wZG93blZpc2libGVDaGFuZ2U6RixvbkZpbHRlckRyb3Bkb3duT3BlbkNoYW5nZTp6fT1pLFtqLGtdPW8udXNlU3RhdGUoITEpLE49ISEodiYmKCEoKHQ9di5maWx0ZXJlZEtleXMpPT09bnVsbHx8dD09PXZvaWQgMCkmJnQubGVuZ3RofHx2LmZvcmNlRmlsdGVyZWQpKSwkPUs9Pnt2YXIgRDtrKEspLChEPVoub25PcGVuQ2hhbmdlKT09PW51bGx8fEQ9PT12b2lkIDB8fEQuY2FsbChaLEspLHo9PW51bGx8fHooSyksRj09bnVsbHx8RihLKX0sQz0obD0ocj0obj1aLm9wZW4pIT09bnVsbCYmbiE9PXZvaWQgMD9uOlQpIT09bnVsbCYmciE9PXZvaWQgMD9yOlYpIT09bnVsbCYmbCE9PXZvaWQgMD9sOmosST12PT1udWxsP3ZvaWQgMDp2LmZpbHRlcmVkS2V5cyxbUCxNXT1ZbChKbihJKSksRT1LPT57bGV0e3NlbGVjdGVkS2V5czpEfT1LO00oRCl9LFU9KEssRCk9PntsZXR7bm9kZTpyZSxjaGVja2VkOlNlfT1EO0UoZj97c2VsZWN0ZWRLZXlzOkt9OntzZWxlY3RlZEtleXM6U2UmJnJlLmtleT9bcmUua2V5XTpbXX0pfTtvLnVzZUVmZmVjdCgoKT0+e2omJkUoe3NlbGVjdGVkS2V5czpKbihJKX0pfSxbSV0pO2NvbnN0W0csTmVdPW8udXNlU3RhdGUoW10pLGJlPUs9PntOZShLKX0sW21lLEVlXT1vLnVzZVN0YXRlKCIiKSxWZT1LPT57Y29uc3R7dmFsdWU6RH09Sy50YXJnZXQ7RWUoRCl9O28udXNlRWZmZWN0KCgpPT57anx8RWUoIiIpfSxbal0pO2NvbnN0IFk9Sz0+e2NvbnN0IEQ9SyE9bnVsbCYmSy5sZW5ndGg/SzpudWxsO2lmKEQ9PT1udWxsJiYoIXZ8fCF2LmZpbHRlcmVkS2V5cyl8fCgwLHV0LlopKEQsdj09bnVsbD92b2lkIDA6di5maWx0ZXJlZEtleXMsITApKXJldHVybiBudWxsO3goe2NvbHVtbjppLGtleTpkLGZpbHRlcmVkS2V5czpEfSl9LEo9KCk9PnskKCExKSxZKFAoKSl9LEJlPWZ1bmN0aW9uKCl7bGV0e2NvbmZpcm06SyxjbG9zZURyb3Bkb3duOkR9PWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dm9pZCAwP2FyZ3VtZW50c1swXTp7Y29uZmlybTohMSxjbG9zZURyb3Bkb3duOiExfTtLJiZZKFtdKSxEJiYkKCExKSxFZSgiIiksTSh3PyhSfHxbXSkubWFwKHJlPT5TdHJpbmcocmUpKTpbXSl9LHplPWZ1bmN0aW9uKCl7bGV0e2Nsb3NlRHJvcGRvd246S309YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT12b2lkIDA/YXJndW1lbnRzWzBdOntjbG9zZURyb3Bkb3duOiEwfTtLJiYkKCExKSxZKFAoKSl9LEI9KEssRCk9PntELnNvdXJjZT09PSJ0cmlnZ2VyIiYmKEsmJkkhPT12b2lkIDAmJk0oSm4oSSkpLCQoSyksIUsmJiFpLmZpbHRlckRyb3Bkb3duJiZwJiZKKCkpfSxXPW5lKCkoe1tgJHtjfS1tZW51LXdpdGhvdXQtc3VibWVudWBdOiFyYShpLmZpbHRlcnN8fFtdKX0pLE89Sz0+e2lmKEsudGFyZ2V0LmNoZWNrZWQpe2NvbnN0IEQ9cm4oaT09bnVsbD92b2lkIDA6aS5maWx0ZXJzKS5tYXAocmU9PlN0cmluZyhyZSkpO00oRCl9ZWxzZSBNKFtdKX0sSD1LPT57bGV0e2ZpbHRlcnM6RH09SztyZXR1cm4oRHx8W10pLm1hcCgocmUsU2UpPT57Y29uc3QgZGU9U3RyaW5nKHJlLnZhbHVlKSxHZT17dGl0bGU6cmUudGV4dCxrZXk6cmUudmFsdWUhPT12b2lkIDA/ZGU6U3RyaW5nKFNlKX07cmV0dXJuIHJlLmNoaWxkcmVuJiYoR2UuY2hpbGRyZW49SCh7ZmlsdGVyczpyZS5jaGlsZHJlbn0pKSxHZX0pfSxfPUs9Pnt2YXIgRDtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LEspLHt0ZXh0OksudGl0bGUsdmFsdWU6Sy5rZXksY2hpbGRyZW46KChEPUsuY2hpbGRyZW4pPT09bnVsbHx8RD09PXZvaWQgMD92b2lkIDA6RC5tYXAocmU9Pl8ocmUpKSl8fFtdfSl9O2xldCB0ZTtjb25zdHtkaXJlY3Rpb246Q2UscmVuZGVyRW1wdHk6dmV9PW8udXNlQ29udGV4dChLci5FXyk7aWYodHlwZW9mIGkuZmlsdGVyRHJvcGRvd249PSJmdW5jdGlvbiIpdGU9aS5maWx0ZXJEcm9wZG93bih7cHJlZml4Q2xzOmAke2N9LWN1c3RvbWAsc2V0U2VsZWN0ZWRLZXlzOks9PkUoe3NlbGVjdGVkS2V5czpLfSksc2VsZWN0ZWRLZXlzOlAoKSxjb25maXJtOnplLGNsZWFyRmlsdGVyczpCZSxmaWx0ZXJzOmkuZmlsdGVycyx2aXNpYmxlOkMsY2xvc2U6KCk9PnskKCExKX19KTtlbHNlIGlmKGkuZmlsdGVyRHJvcGRvd24pdGU9aS5maWx0ZXJEcm9wZG93bjtlbHNle2NvbnN0IEs9UCgpfHxbXSxEPSgpPT57dmFyIFNlLGRlO2NvbnN0IEdlPShTZT12ZT09bnVsbD92b2lkIDA6dmUoIlRhYmxlLmZpbHRlciIpKSE9PW51bGwmJlNlIT09dm9pZCAwP1NlOm8uY3JlYXRlRWxlbWVudChGci5aLHtpbWFnZTpGci5aLlBSRVNFTlRFRF9JTUFHRV9TSU1QTEUsZGVzY3JpcHRpb246Zy5maWx0ZXJFbXB0eVRleHQsc3R5bGVzOntpbWFnZTp7aGVpZ2h0OjI0fX0sc3R5bGU6e21hcmdpbjowLHBhZGRpbmc6IjE2cHggMCJ9fSk7aWYoKGkuZmlsdGVyc3x8W10pLmxlbmd0aD09PTApcmV0dXJuIEdlO2lmKG09PT0idHJlZSIpcmV0dXJuIG8uY3JlYXRlRWxlbWVudChvLkZyYWdtZW50LG51bGwsby5jcmVhdGVFbGVtZW50KExyLHtmaWx0ZXJTZWFyY2g6dSx2YWx1ZTptZSxvbkNoYW5nZTpWZSx0YWJsZVByZWZpeENsczphLGxvY2FsZTpnfSksby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YCR7YX0tZmlsdGVyLWRyb3Bkb3duLXRyZWVgfSxmP28uY3JlYXRlRWxlbWVudCgkbi5aLHtjaGVja2VkOksubGVuZ3RoPT09cm4oaS5maWx0ZXJzKS5sZW5ndGgsaW5kZXRlcm1pbmF0ZTpLLmxlbmd0aD4wJiZLLmxlbmd0aDxybihpLmZpbHRlcnMpLmxlbmd0aCxjbGFzc05hbWU6YCR7YX0tZmlsdGVyLWRyb3Bkb3duLWNoZWNrYWxsYCxvbkNoYW5nZTpPfSwoZGU9Zz09bnVsbD92b2lkIDA6Zy5maWx0ZXJDaGVja2FsbCkhPT1udWxsJiZkZSE9PXZvaWQgMD9kZTpnPT1udWxsP3ZvaWQgMDpnLmZpbHRlckNoZWNrQWxsKTpudWxsLG8uY3JlYXRlRWxlbWVudChxbC5aLHtjaGVja2FibGU6ITAsc2VsZWN0YWJsZTohMSxibG9ja05vZGU6ITAsbXVsdGlwbGU6ZixjaGVja1N0cmljdGx5OiFmLGNsYXNzTmFtZTpgJHtjfS1tZW51YCxvbkNoZWNrOlUsY2hlY2tlZEtleXM6SyxzZWxlY3RlZEtleXM6SyxzaG93SWNvbjohMSx0cmVlRGF0YTpIKHtmaWx0ZXJzOmkuZmlsdGVyc30pLGF1dG9FeHBhbmRQYXJlbnQ6ITAsZGVmYXVsdEV4cGFuZEFsbDohMCxmaWx0ZXJUcmVlTm9kZTptZS50cmltKCk/d2U9PnR5cGVvZiB1PT0iZnVuY3Rpb24iP3UobWUsXyh3ZSkpOkRyKG1lLHdlLnRpdGxlKTp2b2lkIDB9KSkpO2NvbnN0IFBlPWpyKHtmaWx0ZXJzOmkuZmlsdGVyc3x8W10sZmlsdGVyU2VhcmNoOnUscHJlZml4Q2xzOnMsZmlsdGVyZWRLZXlzOlAoKSxmaWx0ZXJNdWx0aXBsZTpmLHNlYXJjaFZhbHVlOm1lfSksSXQ9UGUuZXZlcnkod2U9PndlPT09bnVsbCk7cmV0dXJuIG8uY3JlYXRlRWxlbWVudChvLkZyYWdtZW50LG51bGwsby5jcmVhdGVFbGVtZW50KExyLHtmaWx0ZXJTZWFyY2g6dSx2YWx1ZTptZSxvbkNoYW5nZTpWZSx0YWJsZVByZWZpeENsczphLGxvY2FsZTpnfSksSXQ/R2U6by5jcmVhdGVFbGVtZW50KEpsLlose3NlbGVjdGFibGU6ITAsbXVsdGlwbGU6ZixwcmVmaXhDbHM6YCR7Y30tbWVudWAsY2xhc3NOYW1lOlcsb25TZWxlY3Q6RSxvbkRlc2VsZWN0OkUsc2VsZWN0ZWRLZXlzOkssZ2V0UG9wdXBDb250YWluZXI6YixvcGVuS2V5czpHLG9uT3BlbkNoYW5nZTpiZSxpdGVtczpQZX0pKX0scmU9KCk9Pnc/KDAsdXQuWikoKFJ8fFtdKS5tYXAoU2U9PlN0cmluZyhTZSkpLEssITApOksubGVuZ3RoPT09MDt0ZT1vLmNyZWF0ZUVsZW1lbnQoby5GcmFnbWVudCxudWxsLEQoKSxvLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpgJHtzfS1kcm9wZG93bi1idG5zYH0sby5jcmVhdGVFbGVtZW50KEhyLlpQLHt0eXBlOiJsaW5rIixzaXplOiJzbWFsbCIsZGlzYWJsZWQ6cmUoKSxvbkNsaWNrOigpPT5CZSgpfSxnLmZpbHRlclJlc2V0KSxvLmNyZWF0ZUVsZW1lbnQoSHIuWlAse3R5cGU6InByaW1hcnkiLHNpemU6InNtYWxsIixvbkNsaWNrOkp9LGcuZmlsdGVyQ29uZmlybSkpKX1pLmZpbHRlckRyb3Bkb3duJiYodGU9by5jcmVhdGVFbGVtZW50KFFsLkose3NlbGVjdGFibGU6dm9pZCAwfSx0ZSkpLHRlPW8uY3JlYXRlRWxlbWVudChuYSx7Y2xhc3NOYW1lOmAke3N9LWRyb3Bkb3duYH0sdGUpO2NvbnN0IFhlPSgpPT57bGV0IEs7cmV0dXJuIHR5cGVvZiBpLmZpbHRlckljb249PSJmdW5jdGlvbiI/Sz1pLmZpbHRlckljb24oTik6aS5maWx0ZXJJY29uP0s9aS5maWx0ZXJJY29uOks9by5jcmVhdGVFbGVtZW50KFVsLlosbnVsbCksby5jcmVhdGVFbGVtZW50KCJzcGFuIix7cm9sZToiYnV0dG9uIix0YWJJbmRleDotMSxjbGFzc05hbWU6bmUoKShgJHtzfS10cmlnZ2VyYCx7YWN0aXZlOk59KSxvbkNsaWNrOkQ9PntELnN0b3BQcm9wYWdhdGlvbigpfX0sSyl9LFVlPSgwLE1yLlopKHt0cmlnZ2VyOlsiY2xpY2siXSxwbGFjZW1lbnQ6Q2U9PT0icnRsIj8iYm90dG9tTGVmdCI6ImJvdHRvbVJpZ2h0IixjaGlsZHJlbjpYZSgpLGdldFBvcHVwQ29udGFpbmVyOmJ9LE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxaKSx7cm9vdENsYXNzTmFtZTpuZSgpKGgsWi5yb290Q2xhc3NOYW1lKSxvcGVuOkMsb25PcGVuQ2hhbmdlOkIsZHJvcGRvd25SZW5kZXI6KCk9PnR5cGVvZihaPT1udWxsP3ZvaWQgMDpaLmRyb3Bkb3duUmVuZGVyKT09ImZ1bmN0aW9uIj9aLmRyb3Bkb3duUmVuZGVyKHRlKTp0ZX0pKTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YCR7c30tY29sdW1uYH0sby5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmAke2F9LWNvbHVtbi10aXRsZWB9LHkpLG8uY3JlYXRlRWxlbWVudChaci5aLE9iamVjdC5hc3NpZ24oe30sVWUpKSl9O2NvbnN0IFFuPShlLHQsbik9PntsZXQgcj1bXTtyZXR1cm4oZXx8W10pLmZvckVhY2goKGwsYSk9Pnt2YXIgcztjb25zdCBpPW5uKGEsbik7aWYobC5maWx0ZXJzfHwiZmlsdGVyRHJvcGRvd24iaW4gbHx8Im9uRmlsdGVyImluIGwpaWYoImZpbHRlcmVkVmFsdWUiaW4gbCl7bGV0IGM9bC5maWx0ZXJlZFZhbHVlOyJmaWx0ZXJEcm9wZG93biJpbiBsfHwoYz0ocz1jPT1udWxsP3ZvaWQgMDpjLm1hcChTdHJpbmcpKSE9PW51bGwmJnMhPT12b2lkIDA/czpjKSxyLnB1c2goe2NvbHVtbjpsLGtleTp6dChsLGkpLGZpbHRlcmVkS2V5czpjLGZvcmNlRmlsdGVyZWQ6bC5maWx0ZXJlZH0pfWVsc2Ugci5wdXNoKHtjb2x1bW46bCxrZXk6enQobCxpKSxmaWx0ZXJlZEtleXM6dCYmbC5kZWZhdWx0RmlsdGVyZWRWYWx1ZT9sLmRlZmF1bHRGaWx0ZXJlZFZhbHVlOnZvaWQgMCxmb3JjZUZpbHRlcmVkOmwuZmlsdGVyZWR9KTsiY2hpbGRyZW4iaW4gbCYmKHI9W10uY29uY2F0KCgwLHllLlopKHIpLCgwLHllLlopKFFuKGwuY2hpbGRyZW4sdCxpKSkpKX0pLHJ9O2Z1bmN0aW9uIEFyKGUsdCxuLHIsbCxhLHMsaSxjKXtyZXR1cm4gbi5tYXAoKGQscCk9Pntjb25zdCBmPW5uKHAsaSkse2ZpbHRlck9uQ2xvc2U6bT0hMCxmaWx0ZXJNdWx0aXBsZTp1PSEwLGZpbHRlck1vZGU6dixmaWx0ZXJTZWFyY2g6eH09ZDtsZXQgZz1kO2lmKGcuZmlsdGVyc3x8Zy5maWx0ZXJEcm9wZG93bil7Y29uc3QgeT16dChnLGYpLGI9ci5maW5kKGg9PntsZXR7a2V5Ond9PWg7cmV0dXJuIHk9PT13fSk7Zz1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZykse3RpdGxlOmg9Pm8uY3JlYXRlRWxlbWVudChvYSx7dGFibGVQcmVmaXhDbHM6ZSxwcmVmaXhDbHM6YCR7ZX0tZmlsdGVyYCxkcm9wZG93blByZWZpeENsczp0LGNvbHVtbjpnLGNvbHVtbktleTp5LGZpbHRlclN0YXRlOmIsZmlsdGVyT25DbG9zZTptLGZpbHRlck11bHRpcGxlOnUsZmlsdGVyTW9kZTp2LGZpbHRlclNlYXJjaDp4LHRyaWdnZXJGaWx0ZXI6YSxsb2NhbGU6bCxnZXRQb3B1cENvbnRhaW5lcjpzLHJvb3RDbGFzc05hbWU6Y30sSW4oZC50aXRsZSxoKSl9KX1yZXR1cm4iY2hpbGRyZW4iaW4gZyYmKGc9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGcpLHtjaGlsZHJlbjpBcihlLHQsZy5jaGlsZHJlbixyLGwsYSxzLGYsYyl9KSksZ30pfWNvbnN0IFdyPWU9Pntjb25zdCB0PXt9O3JldHVybiBlLmZvckVhY2gobj0+e2xldHtrZXk6cixmaWx0ZXJlZEtleXM6bCxjb2x1bW46YX09bjtjb25zdCBzPXIse2ZpbHRlcnM6aSxmaWx0ZXJEcm9wZG93bjpjfT1hO2lmKGMpdFtzXT1sfHxudWxsO2Vsc2UgaWYoQXJyYXkuaXNBcnJheShsKSl7Y29uc3QgZD1ybihpKTt0W3NdPWQuZmlsdGVyKHA9PmwuaW5jbHVkZXMoU3RyaW5nKHApKSl9ZWxzZSB0W3NdPW51bGx9KSx0fSxxbj0oZSx0LG4pPT50LnJlZHVjZSgobCxhKT0+e2NvbnN0e2NvbHVtbjp7b25GaWx0ZXI6cyxmaWx0ZXJzOml9LGZpbHRlcmVkS2V5czpjfT1hO3JldHVybiBzJiZjJiZjLmxlbmd0aD9sLm1hcChkPT5PYmplY3QuYXNzaWduKHt9LGQpKS5maWx0ZXIoZD0+Yy5zb21lKHA9Pntjb25zdCBmPXJuKGkpLG09Zi5maW5kSW5kZXgodj0+U3RyaW5nKHYpPT09U3RyaW5nKHApKSx1PW0hPT0tMT9mW21dOnA7cmV0dXJuIGRbbl0mJihkW25dPXFuKGRbbl0sdCxuKSkscyh1LGQpfSkpOmx9LGUpLFZyPWU9PmUuZmxhdE1hcCh0PT4iY2hpbGRyZW4iaW4gdD9bdF0uY29uY2F0KCgwLHllLlopKFZyKHQuY2hpbGRyZW58fFtdKSkpOlt0XSk7dmFyIGxhPWU9Pntjb25zdHtwcmVmaXhDbHM6dCxkcm9wZG93blByZWZpeENsczpuLG1lcmdlZENvbHVtbnM6cixvbkZpbHRlckNoYW5nZTpsLGdldFBvcHVwQ29udGFpbmVyOmEsbG9jYWxlOnMscm9vdENsYXNzTmFtZTppfT1lLGM9KDAsVm4ubG4pKCJUYWJsZSIpLGQ9by51c2VNZW1vKCgpPT5WcihyfHxbXSksW3JdKSxbcCxmXT1vLnVzZVN0YXRlKCgpPT5RbihkLCEwKSksbT1vLnVzZU1lbW8oKCk9Pntjb25zdCBnPVFuKGQsITEpO2lmKGcubGVuZ3RoPT09MClyZXR1cm4gZztsZXQgeT0hMCxiPSEwO2lmKGcuZm9yRWFjaChoPT57bGV0e2ZpbHRlcmVkS2V5czp3fT1oO3chPT12b2lkIDA/eT0hMTpiPSExfSkseSl7Y29uc3QgaD0oZHx8W10pLm1hcCgodyxSKT0+enQodyxubihSKSkpO3JldHVybiBwLmZpbHRlcih3PT57bGV0e2tleTpSfT13O3JldHVybiBoLmluY2x1ZGVzKFIpfSkubWFwKHc9Pntjb25zdCBSPWRbaC5maW5kSW5kZXgoWj0+Wj09PXcua2V5KV07cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx3KSx7Y29sdW1uOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx3LmNvbHVtbiksUiksZm9yY2VGaWx0ZXJlZDpSLmZpbHRlcmVkfSl9KX1yZXR1cm4gZ30sW2QscF0pLHU9by51c2VNZW1vKCgpPT5XcihtKSxbbV0pLHY9Zz0+e2NvbnN0IHk9bS5maWx0ZXIoYj0+e2xldHtrZXk6aH09YjtyZXR1cm4gaCE9PWcua2V5fSk7eS5wdXNoKGcpLGYoeSksbChXcih5KSx5KX07cmV0dXJuW2c9PkFyKHQsbixnLG0scyx2LGEsdm9pZCAwLGkpLG0sdV19LGFhPVMoODQxNjQpLGlhPWZ1bmN0aW9uKGUsdCl7dmFyIG49e307Zm9yKHZhciByIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikmJnQuaW5kZXhPZihyKTwwJiYobltyXT1lW3JdKTtpZihlIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIGw9MCxyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7bDxyLmxlbmd0aDtsKyspdC5pbmRleE9mKHJbbF0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLHJbbF0pJiYobltyW2xdXT1lW3JbbF1dKTtyZXR1cm4gbn07Y29uc3QgWHI9MTA7ZnVuY3Rpb24gc2EoZSx0KXtjb25zdCBuPXtjdXJyZW50OmUuY3VycmVudCxwYWdlU2l6ZTplLnBhZ2VTaXplfTtyZXR1cm4gT2JqZWN0LmtleXModCYmdHlwZW9mIHQ9PSJvYmplY3QiP3Q6e30pLmZvckVhY2gobD0+e2NvbnN0IGE9ZVtsXTt0eXBlb2YgYSE9ImZ1bmN0aW9uIiYmKG5bbF09YSl9KSxufWZ1bmN0aW9uIGNhKGUsdCxuKXtjb25zdCByPW4mJnR5cGVvZiBuPT0ib2JqZWN0Ij9uOnt9LHt0b3RhbDpsPTB9PXIsYT1pYShyLFsidG90YWwiXSksW3MsaV09KDAsby51c2VTdGF0ZSkoKCk9Pih7Y3VycmVudDoiZGVmYXVsdEN1cnJlbnQiaW4gYT9hLmRlZmF1bHRDdXJyZW50OjEscGFnZVNpemU6ImRlZmF1bHRQYWdlU2l6ZSJpbiBhP2EuZGVmYXVsdFBhZ2VTaXplOlhyfSkpLGM9KDAsTXIuWikocyxhLHt0b3RhbDpsPjA/bDplfSksZD1NYXRoLmNlaWwoKGx8fGUpL2MucGFnZVNpemUpO2MuY3VycmVudD5kJiYoYy5jdXJyZW50PWR8fDEpO2NvbnN0IHA9KG0sdSk9PntpKHtjdXJyZW50Om0hPW51bGw/bToxLHBhZ2VTaXplOnV8fGMucGFnZVNpemV9KX0sZj0obSx1KT0+e3ZhciB2O24mJigodj1uLm9uQ2hhbmdlKT09PW51bGx8fHY9PT12b2lkIDB8fHYuY2FsbChuLG0sdSkpLHAobSx1KSx0KG0sdXx8KGM9PW51bGw/dm9pZCAwOmMucGFnZVNpemUpKX07cmV0dXJuIG49PT0hMT9be30sKCk9Pnt9XTpbT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGMpLHtvbkNoYW5nZTpmfSkscF19dmFyIGRhPWNhLHVhPVMoMzkzOTgpLGZhPVMoMTAwMTApLFVyPVMoODMwNjIpO2NvbnN0IFRuPSJhc2NlbmQiLF9uPSJkZXNjZW5kIixrbj1lPT50eXBlb2YgZS5zb3J0ZXI9PSJvYmplY3QiJiZ0eXBlb2YgZS5zb3J0ZXIubXVsdGlwbGU9PSJudW1iZXIiP2Uuc29ydGVyLm11bHRpcGxlOiExLEdyPWU9PnR5cGVvZiBlPT0iZnVuY3Rpb24iP2U6ZSYmdHlwZW9mIGU9PSJvYmplY3QiJiZlLmNvbXBhcmU/ZS5jb21wYXJlOiExLG1hPShlLHQpPT50P2VbZS5pbmRleE9mKHQpKzFdOmVbMF0sZXI9KGUsdCxuKT0+e2xldCByPVtdO2NvbnN0IGw9KGEscyk9PntyLnB1c2goe2NvbHVtbjphLGtleTp6dChhLHMpLG11bHRpcGxlUHJpb3JpdHk6a24oYSksc29ydE9yZGVyOmEuc29ydE9yZGVyfSl9O3JldHVybihlfHxbXSkuZm9yRWFjaCgoYSxzKT0+e2NvbnN0IGk9bm4ocyxuKTthLmNoaWxkcmVuPygic29ydE9yZGVyImluIGEmJmwoYSxpKSxyPVtdLmNvbmNhdCgoMCx5ZS5aKShyKSwoMCx5ZS5aKShlcihhLmNoaWxkcmVuLHQsaSkpKSk6YS5zb3J0ZXImJigic29ydE9yZGVyImluIGE/bChhLGkpOnQmJmEuZGVmYXVsdFNvcnRPcmRlciYmci5wdXNoKHtjb2x1bW46YSxrZXk6enQoYSxpKSxtdWx0aXBsZVByaW9yaXR5OmtuKGEpLHNvcnRPcmRlcjphLmRlZmF1bHRTb3J0T3JkZXJ9KSl9KSxyfSxZcj0oZSx0LG4scixsLGEscyxpKT0+KHR8fFtdKS5tYXAoKGQscCk9Pntjb25zdCBmPW5uKHAsaSk7bGV0IG09ZDtpZihtLnNvcnRlcil7Y29uc3QgdT1tLnNvcnREaXJlY3Rpb25zfHxsLHY9bS5zaG93U29ydGVyVG9vbHRpcD09PXZvaWQgMD9zOm0uc2hvd1NvcnRlclRvb2x0aXAseD16dChtLGYpLGc9bi5maW5kKEY9PntsZXR7a2V5Onp9PUY7cmV0dXJuIHo9PT14fSkseT1nP2cuc29ydE9yZGVyOm51bGwsYj1tYSh1LHkpO2xldCBoO2lmKGQuc29ydEljb24paD1kLnNvcnRJY29uKHtzb3J0T3JkZXI6eX0pO2Vsc2V7Y29uc3QgRj11LmluY2x1ZGVzKFRuKSYmby5jcmVhdGVFbGVtZW50KGZhLlose2NsYXNzTmFtZTpuZSgpKGAke2V9LWNvbHVtbi1zb3J0ZXItdXBgLHthY3RpdmU6eT09PVRufSl9KSx6PXUuaW5jbHVkZXMoX24pJiZvLmNyZWF0ZUVsZW1lbnQodWEuWix7Y2xhc3NOYW1lOm5lKCkoYCR7ZX0tY29sdW1uLXNvcnRlci1kb3duYCx7YWN0aXZlOnk9PT1fbn0pfSk7aD1vLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6bmUoKShgJHtlfS1jb2x1bW4tc29ydGVyYCx7W2Ake2V9LWNvbHVtbi1zb3J0ZXItZnVsbGBdOiEhKEYmJnopfSl9LG8uY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpgJHtlfS1jb2x1bW4tc29ydGVyLWlubmVyYCwiYXJpYS1oaWRkZW4iOiJ0cnVlIn0sRix6KSl9Y29uc3R7Y2FuY2VsU29ydDp3LHRyaWdnZXJBc2M6Uix0cmlnZ2VyRGVzYzpafT1hfHx7fTtsZXQgVD13O2I9PT1fbj9UPVo6Yj09PVRuJiYoVD1SKTtjb25zdCBWPXR5cGVvZiB2PT0ib2JqZWN0Ij9PYmplY3QuYXNzaWduKHt0aXRsZTpUfSx2KTp7dGl0bGU6VH07bT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbSkse2NsYXNzTmFtZTpuZSgpKG0uY2xhc3NOYW1lLHtbYCR7ZX0tY29sdW1uLXNvcnRgXTp5fSksdGl0bGU6Rj0+e2NvbnN0IHo9YCR7ZX0tY29sdW1uLXNvcnRlcnNgLGo9by5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmAke2V9LWNvbHVtbi10aXRsZWB9LEluKGQudGl0bGUsRikpLGs9by5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6en0saixoKTtyZXR1cm4gdj90eXBlb2YgdiE9ImJvb2xlYW4iJiYodj09bnVsbD92b2lkIDA6di50YXJnZXQpPT09InNvcnRlci1pY29uIj9vLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpgJHt6fSAke2V9LWNvbHVtbi1zb3J0ZXJzLXRvb2x0aXAtdGFyZ2V0LXNvcnRlcmB9LGosby5jcmVhdGVFbGVtZW50KFVyLlosT2JqZWN0LmFzc2lnbih7fSxWKSxoKSk6by5jcmVhdGVFbGVtZW50KFVyLlosT2JqZWN0LmFzc2lnbih7fSxWKSxrKTprfSxvbkhlYWRlckNlbGw6Rj0+e3ZhciB6O2NvbnN0IGo9KCh6PWQub25IZWFkZXJDZWxsKT09PW51bGx8fHo9PT12b2lkIDA/dm9pZCAwOnouY2FsbChkLEYpKXx8e30saz1qLm9uQ2xpY2ssTj1qLm9uS2V5RG93bjtqLm9uQ2xpY2s9ST0+e3Ioe2NvbHVtbjpkLGtleTp4LHNvcnRPcmRlcjpiLG11bHRpcGxlUHJpb3JpdHk6a24oZCl9KSxrPT1udWxsfHxrKEkpfSxqLm9uS2V5RG93bj1JPT57SS5rZXlDb2RlPT09enIuWi5FTlRFUiYmKHIoe2NvbHVtbjpkLGtleTp4LHNvcnRPcmRlcjpiLG11bHRpcGxlUHJpb3JpdHk6a24oZCl9KSxOPT1udWxsfHxOKEkpKX07Y29uc3QgJD1YbChkLnRpdGxlLHt9KSxDPSQ9PW51bGw/dm9pZCAwOiQudG9TdHJpbmcoKTtyZXR1cm4geSYmKGpbImFyaWEtc29ydCJdPXk9PT0iYXNjZW5kIj8iYXNjZW5kaW5nIjoiZGVzY2VuZGluZyIpLGpbImFyaWEtbGFiZWwiXT1DfHwiIixqLmNsYXNzTmFtZT1uZSgpKGouY2xhc3NOYW1lLGAke2V9LWNvbHVtbi1oYXMtc29ydGVyc2ApLGoudGFiSW5kZXg9MCxkLmVsbGlwc2lzJiYoai50aXRsZT0oJCE9bnVsbD8kOiIiKS50b1N0cmluZygpKSxqfX0pfXJldHVybiJjaGlsZHJlbiJpbiBtJiYobT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbSkse2NoaWxkcmVuOllyKGUsbS5jaGlsZHJlbixuLHIsbCxhLHMsZil9KSksbX0pLEpyPWU9Pntjb25zdHtjb2x1bW46dCxzb3J0T3JkZXI6bn09ZTtyZXR1cm57Y29sdW1uOnQsb3JkZXI6bixmaWVsZDp0LmRhdGFJbmRleCxjb2x1bW5LZXk6dC5rZXl9fSxRcj1lPT57Y29uc3QgdD1lLmZpbHRlcihuPT57bGV0e3NvcnRPcmRlcjpyfT1uO3JldHVybiByfSkubWFwKEpyKTtpZih0Lmxlbmd0aD09PTAmJmUubGVuZ3RoKXtjb25zdCBuPWUubGVuZ3RoLTE7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxKcihlW25dKSkse2NvbHVtbjp2b2lkIDAsb3JkZXI6dm9pZCAwLGZpZWxkOnZvaWQgMCxjb2x1bW5LZXk6dm9pZCAwfSl9cmV0dXJuIHQubGVuZ3RoPD0xP3RbMF18fHt9OnR9LHRyPShlLHQsbik9Pntjb25zdCByPXQuc2xpY2UoKS5zb3J0KChzLGkpPT5pLm11bHRpcGxlUHJpb3JpdHktcy5tdWx0aXBsZVByaW9yaXR5KSxsPWUuc2xpY2UoKSxhPXIuZmlsdGVyKHM9PntsZXR7Y29sdW1uOntzb3J0ZXI6aX0sc29ydE9yZGVyOmN9PXM7cmV0dXJuIEdyKGkpJiZjfSk7cmV0dXJuIGEubGVuZ3RoP2wuc29ydCgocyxpKT0+e2ZvcihsZXQgYz0wO2M8YS5sZW5ndGg7Yys9MSl7Y29uc3QgZD1hW2NdLHtjb2x1bW46e3NvcnRlcjpwfSxzb3J0T3JkZXI6Zn09ZCxtPUdyKHApO2lmKG0mJmYpe2NvbnN0IHU9bShzLGksZik7aWYodSE9PTApcmV0dXJuIGY9PT1Ubj91Oi11fX1yZXR1cm4gMH0pLm1hcChzPT57Y29uc3QgaT1zW25dO3JldHVybiBpP09iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxzKSx7W25dOnRyKGksdCxuKX0pOnN9KTpsfTt2YXIgdmE9ZT0+e2NvbnN0e3ByZWZpeENsczp0LG1lcmdlZENvbHVtbnM6bixzb3J0RGlyZWN0aW9uczpyLHRhYmxlTG9jYWxlOmwsc2hvd1NvcnRlclRvb2x0aXA6YSxvblNvcnRlckNoYW5nZTpzfT1lLFtpLGNdPW8udXNlU3RhdGUoZXIobiwhMCkpLGQ9KHgsZyk9Pntjb25zdCB5PVtdO3JldHVybiB4LmZvckVhY2goKGIsaCk9Pntjb25zdCB3PW5uKGgsZyk7aWYoeS5wdXNoKHp0KGIsdykpLEFycmF5LmlzQXJyYXkoYi5jaGlsZHJlbikpe2NvbnN0IFI9ZChiLmNoaWxkcmVuLHcpO3kucHVzaC5hcHBseSh5LCgwLHllLlopKFIpKX19KSx5fSxwPW8udXNlTWVtbygoKT0+e2xldCB4PSEwO2NvbnN0IGc9ZXIobiwhMSk7aWYoIWcubGVuZ3RoKXtjb25zdCB3PWQobik7cmV0dXJuIGkuZmlsdGVyKFI9PntsZXR7a2V5Olp9PVI7cmV0dXJuIHcuaW5jbHVkZXMoWil9KX1jb25zdCB5PVtdO2Z1bmN0aW9uIGIodyl7eD95LnB1c2godyk6eS5wdXNoKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx3KSx7c29ydE9yZGVyOm51bGx9KSl9bGV0IGg9bnVsbDtyZXR1cm4gZy5mb3JFYWNoKHc9PntoPT09bnVsbD8oYih3KSx3LnNvcnRPcmRlciYmKHcubXVsdGlwbGVQcmlvcml0eT09PSExP3g9ITE6aD0hMCkpOihoJiZ3Lm11bHRpcGxlUHJpb3JpdHkhPT0hMXx8KHg9ITEpLGIodykpfSkseX0sW24saV0pLGY9by51c2VNZW1vKCgpPT57dmFyIHgsZztjb25zdCB5PXAubWFwKGI9PntsZXR7Y29sdW1uOmgsc29ydE9yZGVyOnd9PWI7cmV0dXJue2NvbHVtbjpoLG9yZGVyOnd9fSk7cmV0dXJue3NvcnRDb2x1bW5zOnksc29ydENvbHVtbjooeD15WzBdKT09PW51bGx8fHg9PT12b2lkIDA/dm9pZCAwOnguY29sdW1uLHNvcnRPcmRlcjooZz15WzBdKT09PW51bGx8fGc9PT12b2lkIDA/dm9pZCAwOmcub3JkZXJ9fSxbcF0pLG09eD0+e2xldCBnO3gubXVsdGlwbGVQcmlvcml0eT09PSExfHwhcC5sZW5ndGh8fHBbMF0ubXVsdGlwbGVQcmlvcml0eT09PSExP2c9W3hdOmc9W10uY29uY2F0KCgwLHllLlopKHAuZmlsdGVyKHk9PntsZXR7a2V5OmJ9PXk7cmV0dXJuIGIhPT14LmtleX0pKSxbeF0pLGMoZykscyhRcihnKSxnKX07cmV0dXJuW3g9PllyKHQseCxwLG0scixsLGEpLHAsZiwoKT0+UXIocCldfTtjb25zdCBxcj0oZSx0KT0+ZS5tYXAocj0+e2NvbnN0IGw9T2JqZWN0LmFzc2lnbih7fSxyKTtyZXR1cm4gbC50aXRsZT1JbihyLnRpdGxlLHQpLCJjaGlsZHJlbiJpbiBsJiYobC5jaGlsZHJlbj1xcihsLmNoaWxkcmVuLHQpKSxsfSk7dmFyIHBhPWU9PltvLnVzZUNhbGxiYWNrKG49PnFyKG4sZSksW2VdKV0sZ2E9JHIoKGUsdCk9Pntjb25zdHtfcmVuZGVyVGltZXM6bn09ZSx7X3JlbmRlclRpbWVzOnJ9PXQ7cmV0dXJuIG4hPT1yfSksaGE9a3IoKGUsdCk9Pntjb25zdHtfcmVuZGVyVGltZXM6bn09ZSx7X3JlbmRlclRpbWVzOnJ9PXQ7cmV0dXJuIG4hPT1yfSksQT1TKDExNTY4KSxtbj1TKDE1MDYzKSx2bj1TKDE0NzQ3KSx4YT1TKDgzNTU5KSx5YT1TKDgzMjYyKSxiYT1lPT57Y29uc3R7Y29tcG9uZW50Q2xzOnQsbGluZVdpZHRoOm4sbGluZVR5cGU6cix0YWJsZUJvcmRlckNvbG9yOmwsdGFibGVIZWFkZXJCZzphLHRhYmxlUGFkZGluZ1ZlcnRpY2FsOnMsdGFibGVQYWRkaW5nSG9yaXpvbnRhbDppLGNhbGM6Y309ZSxkPWAkeygwLEEuYmYpKG4pfSAke3J9ICR7bH1gLHA9KGYsbSx1KT0+KHtbYCYke3R9LSR7Zn1gXTp7W2A+ICR7dH0tY29udGFpbmVyYF06e1tgPiAke3R9LWNvbnRlbnQsID4gJHt0fS1ib2R5YF06eyJcbiAgICAgICAgICAgID4gdGFibGUgPiB0Ym9keSA+IHRyID4gdGgsXG4gICAgICAgICAgICA+IHRhYmxlID4gdGJvZHkgPiB0ciA+IHRkXG4gICAgICAgICAgIjp7W2A+ICR7dH0tZXhwYW5kZWQtcm93LWZpeGVkYF06e21hcmdpbjpgJHsoMCxBLmJmKShjKG0pLm11bCgtMSkuZXF1YWwoKSl9CisgICAgICAgICAgICAgICR7KDAsQS5iZikoYyhjKHUpLmFkZChuKSkubXVsKC0xKS5lcXVhbCgpKX1gfX19fX19KTtyZXR1cm57W2Ake3R9LXdyYXBwZXJgXTp7W2Ake3R9JHt0fS1ib3JkZXJlZGBdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHtbYD4gJHt0fS10aXRsZWBdOntib3JkZXI6ZCxib3JkZXJCb3R0b206MH0sW2A+ICR7dH0tY29udGFpbmVyYF06e2JvcmRlcklubGluZVN0YXJ0OmQsYm9yZGVyVG9wOmQsW2AKKyAgICAgICAgICAgID4gJHt0fS1jb250ZW50LAorICAgICAgICAgICAgPiAke3R9LWhlYWRlciwKKyAgICAgICAgICAgID4gJHt0fS1ib2R5LAorICAgICAgICAgICAgPiAke3R9LXN1bW1hcnkKKyAgICAgICAgICBgXTp7Ij4gdGFibGUiOnsiXG4gICAgICAgICAgICAgICAgPiB0aGVhZCA+IHRyID4gdGgsXG4gICAgICAgICAgICAgICAgPiB0aGVhZCA+IHRyID4gdGQsXG4gICAgICAgICAgICAgICAgPiB0Ym9keSA+IHRyID4gdGgsXG4gICAgICAgICAgICAgICAgPiB0Ym9keSA+IHRyID4gdGQsXG4gICAgICAgICAgICAgICAgPiB0Zm9vdCA+IHRyID4gdGgsXG4gICAgICAgICAgICAgICAgPiB0Zm9vdCA+IHRyID4gdGRcbiAgICAgICAgICAgICAgIjp7Ym9yZGVySW5saW5lRW5kOmR9LCI+IHRoZWFkIjp7Ij4gdHI6bm90KDpsYXN0LWNoaWxkKSA+IHRoIjp7Ym9yZGVyQm90dG9tOmR9LCI+IHRyID4gdGg6OmJlZm9yZSI6e2JhY2tncm91bmRDb2xvcjoidHJhbnNwYXJlbnQgIWltcG9ydGFudCJ9fSwiXG4gICAgICAgICAgICAgICAgPiB0aGVhZCA+IHRyLFxuICAgICAgICAgICAgICAgID4gdGJvZHkgPiB0cixcbiAgICAgICAgICAgICAgICA+IHRmb290ID4gdHJcbiAgICAgICAgICAgICAgIjp7W2A+ICR7dH0tY2VsbC1maXgtcmlnaHQtZmlyc3Q6OmFmdGVyYF06e2JvcmRlcklubGluZUVuZDpkfX0sIlxuICAgICAgICAgICAgICAgID4gdGJvZHkgPiB0ciA+IHRoLFxuICAgICAgICAgICAgICAgID4gdGJvZHkgPiB0ciA+IHRkXG4gICAgICAgICAgICAgICI6e1tgPiAke3R9LWV4cGFuZGVkLXJvdy1maXhlZGBdOnttYXJnaW46YCR7KDAsQS5iZikoYyhzKS5tdWwoLTEpLmVxdWFsKCkpfSAkeygwLEEuYmYpKGMoYyhpKS5hZGQobikpLm11bCgtMSkuZXF1YWwoKSl9YCwiJjo6YWZ0ZXIiOntwb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDowLGluc2V0SW5saW5lRW5kOm4sYm90dG9tOjAsYm9yZGVySW5saW5lRW5kOmQsY29udGVudDonIiInfX19fX19LFtgJiR7dH0tc2Nyb2xsLWhvcml6b250YWxgXTp7W2A+ICR7dH0tY29udGFpbmVyID4gJHt0fS1ib2R5YF06eyI+IHRhYmxlID4gdGJvZHkiOntbYAorICAgICAgICAgICAgICAgID4gdHIke3R9LWV4cGFuZGVkLXJvdywKKyAgICAgICAgICAgICAgICA+IHRyJHt0fS1wbGFjZWhvbGRlcgorICAgICAgICAgICAgICBgXTp7Ij4gdGgsID4gdGQiOntib3JkZXJJbmxpbmVFbmQ6MH19fX19fSxwKCJtaWRkbGUiLGUudGFibGVQYWRkaW5nVmVydGljYWxNaWRkbGUsZS50YWJsZVBhZGRpbmdIb3Jpem9udGFsTWlkZGxlKSkscCgic21hbGwiLGUudGFibGVQYWRkaW5nVmVydGljYWxTbWFsbCxlLnRhYmxlUGFkZGluZ0hvcml6b250YWxTbWFsbCkpLHtbYD4gJHt0fS1mb290ZXJgXTp7Ym9yZGVyOmQsYm9yZGVyVG9wOjB9fSksW2Ake3R9LWNlbGxgXTp7W2Ake3R9LWNvbnRhaW5lcjpmaXJzdC1jaGlsZGBdOntib3JkZXJUb3A6MH0sIiYtc2Nyb2xsYmFyOm5vdChbcm93c3Bhbl0pIjp7Ym94U2hhZG93OmAwICR7KDAsQS5iZikobil9IDAgJHsoMCxBLmJmKShuKX0gJHthfWB9fSxbYCR7dH0tYm9yZGVyZWQgJHt0fS1jZWxsLXNjcm9sbGJhcmBdOntib3JkZXJJbmxpbmVFbmQ6ZH19fX0sQ2E9ZT0+e2NvbnN0e2NvbXBvbmVudENsczp0fT1lO3JldHVybntbYCR7dH0td3JhcHBlcmBdOntbYCR7dH0tY2VsbC1lbGxpcHNpc2BdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx2bi52Uykse3dvcmRCcmVhazoia2VlcC1hbGwiLFtgCisgICAgICAgICAgJiR7dH0tY2VsbC1maXgtbGVmdC1sYXN0LAorICAgICAgICAgICYke3R9LWNlbGwtZml4LXJpZ2h0LWZpcnN0CisgICAgICAgIGBdOntvdmVyZmxvdzoidmlzaWJsZSIsW2Ake3R9LWNlbGwtY29udGVudGBdOntkaXNwbGF5OiJibG9jayIsb3ZlcmZsb3c6ImhpZGRlbiIsdGV4dE92ZXJmbG93OiJlbGxpcHNpcyJ9fSxbYCR7dH0tY29sdW1uLXRpdGxlYF06e292ZXJmbG93OiJoaWRkZW4iLHRleHRPdmVyZmxvdzoiZWxsaXBzaXMiLHdvcmRCcmVhazoia2VlcC1hbGwifX0pfX19LFNhPWU9Pntjb25zdHtjb21wb25lbnRDbHM6dH09ZTtyZXR1cm57W2Ake3R9LXdyYXBwZXJgXTp7W2Ake3R9LXRib2R5ID4gdHIke3R9LXBsYWNlaG9sZGVyYF06e3RleHRBbGlnbjoiY2VudGVyIixjb2xvcjplLmNvbG9yVGV4dERpc2FibGVkLCJcbiAgICAgICAgICAmOmhvdmVyID4gdGgsXG4gICAgICAgICAgJjpob3ZlciA+IHRkLFxuICAgICAgICAiOntiYWNrZ3JvdW5kOmUuY29sb3JCZ0NvbnRhaW5lcn19fX19LHdhPWU9Pntjb25zdHtjb21wb25lbnRDbHM6dCxhbnRDbHM6bixtb3Rpb25EdXJhdGlvblNsb3c6cixsaW5lV2lkdGg6bCxwYWRkaW5nWFM6YSxsaW5lVHlwZTpzLHRhYmxlQm9yZGVyQ29sb3I6aSx0YWJsZUV4cGFuZEljb25CZzpjLHRhYmxlRXhwYW5kQ29sdW1uV2lkdGg6ZCxib3JkZXJSYWRpdXM6cCx0YWJsZVBhZGRpbmdWZXJ0aWNhbDpmLHRhYmxlUGFkZGluZ0hvcml6b250YWw6bSx0YWJsZUV4cGFuZGVkUm93Qmc6dSxwYWRkaW5nWFhTOnYsZXhwYW5kSWNvbk1hcmdpblRvcDp4LGV4cGFuZEljb25TaXplOmcsZXhwYW5kSWNvbkhhbGZJbm5lcjp5LGV4cGFuZEljb25TY2FsZTpiLGNhbGM6aH09ZSx3PWAkeygwLEEuYmYpKGwpfSAke3N9ICR7aX1gLFI9aCh2KS5zdWIobCkuZXF1YWwoKTtyZXR1cm57W2Ake3R9LXdyYXBwZXJgXTp7W2Ake3R9LWV4cGFuZC1pY29uLWNvbGBdOnt3aWR0aDpkfSxbYCR7dH0tcm93LWV4cGFuZC1pY29uLWNlbGxgXTp7dGV4dEFsaWduOiJjZW50ZXIiLFtgJHt0fS1yb3ctZXhwYW5kLWljb25gXTp7ZGlzcGxheToiaW5saW5lLWZsZXgiLGZsb2F0OiJub25lIix2ZXJ0aWNhbEFsaWduOiJzdWIifX0sW2Ake3R9LXJvdy1pbmRlbnRgXTp7aGVpZ2h0OjEsZmxvYXQ6ImxlZnQifSxbYCR7dH0tcm93LWV4cGFuZC1pY29uYF06T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCgwLHZuLk5kKShlKSkse3Bvc2l0aW9uOiJyZWxhdGl2ZSIsZmxvYXQ6ImxlZnQiLHdpZHRoOmcsaGVpZ2h0OmcsY29sb3I6ImluaGVyaXQiLGxpbmVIZWlnaHQ6KDAsQS5iZikoZyksYmFja2dyb3VuZDpjLGJvcmRlcjp3LGJvcmRlclJhZGl1czpwLHRyYW5zZm9ybTpgc2NhbGUoJHtifSlgLCImOmZvY3VzLCAmOmhvdmVyLCAmOmFjdGl2ZSI6e2JvcmRlckNvbG9yOiJjdXJyZW50Y29sb3IifSwiJjo6YmVmb3JlLCAmOjphZnRlciI6e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsYmFja2dyb3VuZDoiY3VycmVudGNvbG9yIix0cmFuc2l0aW9uOmB0cmFuc2Zvcm0gJHtyfSBlYXNlLW91dGAsY29udGVudDonIiInfSwiJjo6YmVmb3JlIjp7dG9wOnksaW5zZXRJbmxpbmVFbmQ6UixpbnNldElubGluZVN0YXJ0OlIsaGVpZ2h0Omx9LCImOjphZnRlciI6e3RvcDpSLGJvdHRvbTpSLGluc2V0SW5saW5lU3RhcnQ6eSx3aWR0aDpsLHRyYW5zZm9ybToicm90YXRlKDkwZGVnKSJ9LCImLWNvbGxhcHNlZDo6YmVmb3JlIjp7dHJhbnNmb3JtOiJyb3RhdGUoLTE4MGRlZykifSwiJi1jb2xsYXBzZWQ6OmFmdGVyIjp7dHJhbnNmb3JtOiJyb3RhdGUoMGRlZykifSwiJi1zcGFjZWQiOnsiJjo6YmVmb3JlLCAmOjphZnRlciI6e2Rpc3BsYXk6Im5vbmUiLGNvbnRlbnQ6Im5vbmUifSxiYWNrZ3JvdW5kOiJ0cmFuc3BhcmVudCIsYm9yZGVyOjAsdmlzaWJpbGl0eToiaGlkZGVuIn19KSxbYCR7dH0tcm93LWluZGVudCArICR7dH0tcm93LWV4cGFuZC1pY29uYF06e21hcmdpblRvcDp4LG1hcmdpbklubGluZUVuZDphfSxbYHRyJHt0fS1leHBhbmRlZC1yb3dgXTp7IiYsICY6aG92ZXIiOnsiPiB0aCwgPiB0ZCI6e2JhY2tncm91bmQ6dX19LFtgJHtufS1kZXNjcmlwdGlvbnMtdmlld2BdOntkaXNwbGF5OiJmbGV4Iix0YWJsZTp7ZmxleDoiYXV0byIsd2lkdGg6IjEwMCUifX19LFtgJHt0fS1leHBhbmRlZC1yb3ctZml4ZWRgXTp7cG9zaXRpb246InJlbGF0aXZlIixtYXJnaW46YCR7KDAsQS5iZikoaChmKS5tdWwoLTEpLmVxdWFsKCkpfSAkeygwLEEuYmYpKGgobSkubXVsKC0xKS5lcXVhbCgpKX1gLHBhZGRpbmc6YCR7KDAsQS5iZikoZil9ICR7KDAsQS5iZikobSl9YH19fX0sRWE9ZT0+e2NvbnN0e2NvbXBvbmVudENsczp0LGFudENsczpuLGljb25DbHM6cix0YWJsZUZpbHRlckRyb3Bkb3duV2lkdGg6bCx0YWJsZUZpbHRlckRyb3Bkb3duU2VhcmNoV2lkdGg6YSxwYWRkaW5nWFhTOnMscGFkZGluZ1hTOmksY29sb3JUZXh0OmMsbGluZVdpZHRoOmQsbGluZVR5cGU6cCx0YWJsZUJvcmRlckNvbG9yOmYsaGVhZGVySWNvbkNvbG9yOm0sZm9udFNpemVTTTp1LHRhYmxlUGFkZGluZ0hvcml6b250YWw6dixib3JkZXJSYWRpdXM6eCxtb3Rpb25EdXJhdGlvblNsb3c6Zyxjb2xvclRleHREZXNjcmlwdGlvbjp5LGNvbG9yUHJpbWFyeTpiLHRhYmxlSGVhZGVyRmlsdGVyQWN0aXZlQmc6aCxjb2xvclRleHREaXNhYmxlZDp3LHRhYmxlRmlsdGVyRHJvcGRvd25CZzpSLHRhYmxlRmlsdGVyRHJvcGRvd25IZWlnaHQ6Wixjb250cm9sSXRlbUJnSG92ZXI6VCxjb250cm9sSXRlbUJnQWN0aXZlOlYsYm94U2hhZG93U2Vjb25kYXJ5OkYsZmlsdGVyRHJvcGRvd25NZW51Qmc6eixjYWxjOmp9PWUsaz1gJHtufS1kcm9wZG93bmAsTj1gJHt0fS1maWx0ZXItZHJvcGRvd25gLCQ9YCR7bn0tdHJlZWAsQz1gJHsoMCxBLmJmKShkKX0gJHtwfSAke2Z9YDtyZXR1cm5be1tgJHt0fS13cmFwcGVyYF06e1tgJHt0fS1maWx0ZXItY29sdW1uYF06e2Rpc3BsYXk6ImZsZXgiLGp1c3RpZnlDb250ZW50OiJzcGFjZS1iZXR3ZWVuIn0sW2Ake3R9LWZpbHRlci10cmlnZ2VyYF06e3Bvc2l0aW9uOiJyZWxhdGl2ZSIsZGlzcGxheToiZmxleCIsYWxpZ25JdGVtczoiY2VudGVyIixtYXJnaW5CbG9jazpqKHMpLm11bCgtMSkuZXF1YWwoKSxtYXJnaW5JbmxpbmU6YCR7KDAsQS5iZikocyl9ICR7KDAsQS5iZikoaih2KS5kaXYoMikubXVsKC0xKS5lcXVhbCgpKX1gLHBhZGRpbmc6YDAgJHsoMCxBLmJmKShzKX1gLGNvbG9yOm0sZm9udFNpemU6dSxib3JkZXJSYWRpdXM6eCxjdXJzb3I6InBvaW50ZXIiLHRyYW5zaXRpb246YGFsbCAke2d9YCwiJjpob3ZlciI6e2NvbG9yOnksYmFja2dyb3VuZDpofSwiJi5hY3RpdmUiOntjb2xvcjpifX19fSx7W2Ake259LWRyb3Bkb3duYF06e1tOXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sKDAsdm4uV2YpKGUpKSx7bWluV2lkdGg6bCxiYWNrZ3JvdW5kQ29sb3I6Uixib3JkZXJSYWRpdXM6eCxib3hTaGFkb3c6RixvdmVyZmxvdzoiaGlkZGVuIixbYCR7a30tbWVudWBdOnttYXhIZWlnaHQ6WixvdmVyZmxvd1g6ImhpZGRlbiIsYm9yZGVyOjAsYm94U2hhZG93OiJub25lIixib3JkZXJSYWRpdXM6InVuc2V0IixiYWNrZ3JvdW5kQ29sb3I6eiwiJjplbXB0eTo6YWZ0ZXIiOntkaXNwbGF5OiJibG9jayIscGFkZGluZzpgJHsoMCxBLmJmKShpKX0gMGAsY29sb3I6dyxmb250U2l6ZTp1LHRleHRBbGlnbjoiY2VudGVyIixjb250ZW50OiciTm90IEZvdW5kIid9fSxbYCR7Tn0tdHJlZWBdOntwYWRkaW5nQmxvY2s6YCR7KDAsQS5iZikoaSl9IDBgLHBhZGRpbmdJbmxpbmU6aSxbJF06e3BhZGRpbmc6MH0sW2AkeyR9LXRyZWVub2RlICR7JH0tbm9kZS1jb250ZW50LXdyYXBwZXI6aG92ZXJgXTp7YmFja2dyb3VuZENvbG9yOlR9LFtgJHskfS10cmVlbm9kZS1jaGVja2JveC1jaGVja2VkICR7JH0tbm9kZS1jb250ZW50LXdyYXBwZXJgXTp7IiYsICY6aG92ZXIiOntiYWNrZ3JvdW5kQ29sb3I6Vn19fSxbYCR7Tn0tc2VhcmNoYF06e3BhZGRpbmc6aSxib3JkZXJCb3R0b206QywiJi1pbnB1dCI6e2lucHV0OnttaW5XaWR0aDphfSxbcl06e2NvbG9yOnd9fX0sW2Ake059LWNoZWNrYWxsYF06e3dpZHRoOiIxMDAlIixtYXJnaW5Cb3R0b206cyxtYXJnaW5JbmxpbmVTdGFydDpzfSxbYCR7Tn0tYnRuc2BdOntkaXNwbGF5OiJmbGV4IixqdXN0aWZ5Q29udGVudDoic3BhY2UtYmV0d2VlbiIscGFkZGluZzpgJHsoMCxBLmJmKShqKGkpLnN1YihkKS5lcXVhbCgpKX0gJHsoMCxBLmJmKShpKX1gLG92ZXJmbG93OiJoaWRkZW4iLGJvcmRlclRvcDpDfX0pfX0se1tgJHtufS1kcm9wZG93biAke059LCAke059LXN1Ym1lbnVgXTp7W2Ake259LWNoZWNrYm94LXdyYXBwZXIgKyBzcGFuYF06e3BhZGRpbmdJbmxpbmVTdGFydDppLGNvbG9yOmN9LCI+IHVsIjp7bWF4SGVpZ2h0OiJjYWxjKDEwMHZoIC0gMTMwcHgpIixvdmVyZmxvd1g6ImhpZGRlbiIsb3ZlcmZsb3dZOiJhdXRvIn19fV19LFJhPWU9Pntjb25zdHtjb21wb25lbnRDbHM6dCxsaW5lV2lkdGg6bixjb2xvclNwbGl0OnIsbW90aW9uRHVyYXRpb25TbG93OmwsekluZGV4VGFibGVGaXhlZDphLHRhYmxlQmc6cyx6SW5kZXhUYWJsZVN0aWNreTppLGNhbGM6Y309ZSxkPXI7cmV0dXJue1tgJHt0fS13cmFwcGVyYF06e1tgCisgICAgICAgICR7dH0tY2VsbC1maXgtbGVmdCwKKyAgICAgICAgJHt0fS1jZWxsLWZpeC1yaWdodAorICAgICAgYF06e3Bvc2l0aW9uOiJzdGlja3kgIWltcG9ydGFudCIsekluZGV4OmEsYmFja2dyb3VuZDpzfSxbYAorICAgICAgICAke3R9LWNlbGwtZml4LWxlZnQtZmlyc3Q6OmFmdGVyLAorICAgICAgICAke3R9LWNlbGwtZml4LWxlZnQtbGFzdDo6YWZ0ZXIKKyAgICAgIGBdOntwb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDowLHJpZ2h0Ontfc2tpcF9jaGVja186ITAsdmFsdWU6MH0sYm90dG9tOmMobikubXVsKC0xKS5lcXVhbCgpLHdpZHRoOjMwLHRyYW5zZm9ybToidHJhbnNsYXRlWCgxMDAlKSIsdHJhbnNpdGlvbjpgYm94LXNoYWRvdyAke2x9YCxjb250ZW50OiciIicscG9pbnRlckV2ZW50czoibm9uZSJ9LFtgJHt0fS1jZWxsLWZpeC1sZWZ0LWFsbDo6YWZ0ZXJgXTp7ZGlzcGxheToibm9uZSJ9LFtgCisgICAgICAgICR7dH0tY2VsbC1maXgtcmlnaHQtZmlyc3Q6OmFmdGVyLAorICAgICAgICAke3R9LWNlbGwtZml4LXJpZ2h0LWxhc3Q6OmFmdGVyCisgICAgICBgXTp7cG9zaXRpb246ImFic29sdXRlIix0b3A6MCxib3R0b206YyhuKS5tdWwoLTEpLmVxdWFsKCksbGVmdDp7X3NraXBfY2hlY2tfOiEwLHZhbHVlOjB9LHdpZHRoOjMwLHRyYW5zZm9ybToidHJhbnNsYXRlWCgtMTAwJSkiLHRyYW5zaXRpb246YGJveC1zaGFkb3cgJHtsfWAsY29udGVudDonIiInLHBvaW50ZXJFdmVudHM6Im5vbmUifSxbYCR7dH0tY29udGFpbmVyYF06e3Bvc2l0aW9uOiJyZWxhdGl2ZSIsIiY6OmJlZm9yZSwgJjo6YWZ0ZXIiOntwb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDowLGJvdHRvbTowLHpJbmRleDpjKGkpLmFkZCgxKS5lcXVhbCh7dW5pdDohMX0pLHdpZHRoOjMwLHRyYW5zaXRpb246YGJveC1zaGFkb3cgJHtsfWAsY29udGVudDonIiInLHBvaW50ZXJFdmVudHM6Im5vbmUifSwiJjo6YmVmb3JlIjp7aW5zZXRJbmxpbmVTdGFydDowfSwiJjo6YWZ0ZXIiOntpbnNldElubGluZUVuZDowfX0sW2Ake3R9LXBpbmctbGVmdGBdOntbYCY6bm90KCR7dH0taGFzLWZpeC1sZWZ0KSAke3R9LWNvbnRhaW5lcjo6YmVmb3JlYF06e2JveFNoYWRvdzpgaW5zZXQgMTBweCAwIDhweCAtOHB4ICR7ZH1gfSxbYAorICAgICAgICAgICR7dH0tY2VsbC1maXgtbGVmdC1maXJzdDo6YWZ0ZXIsCisgICAgICAgICAgJHt0fS1jZWxsLWZpeC1sZWZ0LWxhc3Q6OmFmdGVyCisgICAgICAgIGBdOntib3hTaGFkb3c6YGluc2V0IDEwcHggMCA4cHggLThweCAke2R9YH0sW2Ake3R9LWNlbGwtZml4LWxlZnQtbGFzdDo6YmVmb3JlYF06e2JhY2tncm91bmRDb2xvcjoidHJhbnNwYXJlbnQgIWltcG9ydGFudCJ9fSxbYCR7dH0tcGluZy1yaWdodGBdOntbYCY6bm90KCR7dH0taGFzLWZpeC1yaWdodCkgJHt0fS1jb250YWluZXI6OmFmdGVyYF06e2JveFNoYWRvdzpgaW5zZXQgLTEwcHggMCA4cHggLThweCAke2R9YH0sW2AKKyAgICAgICAgICAke3R9LWNlbGwtZml4LXJpZ2h0LWZpcnN0OjphZnRlciwKKyAgICAgICAgICAke3R9LWNlbGwtZml4LXJpZ2h0LWxhc3Q6OmFmdGVyCisgICAgICAgIGBdOntib3hTaGFkb3c6YGluc2V0IC0xMHB4IDAgOHB4IC04cHggJHtkfWB9fSxbYCR7dH0tZml4ZWQtY29sdW1uLWdhcHBlZGBdOntbYAorICAgICAgICAke3R9LWNlbGwtZml4LWxlZnQtZmlyc3Q6OmFmdGVyLAorICAgICAgICAke3R9LWNlbGwtZml4LWxlZnQtbGFzdDo6YWZ0ZXIsCisgICAgICAgICR7dH0tY2VsbC1maXgtcmlnaHQtZmlyc3Q6OmFmdGVyLAorICAgICAgICAke3R9LWNlbGwtZml4LXJpZ2h0LWxhc3Q6OmFmdGVyCisgICAgICBgXTp7Ym94U2hhZG93OiJub25lIn19fX19LCRhPWU9Pntjb25zdHtjb21wb25lbnRDbHM6dCxhbnRDbHM6bixtYXJnaW46cn09ZTtyZXR1cm57W2Ake3R9LXdyYXBwZXJgXTp7W2Ake3R9LXBhZ2luYXRpb24ke259LXBhZ2luYXRpb25gXTp7bWFyZ2luOmAkeygwLEEuYmYpKHIpfSAwYH0sW2Ake3R9LXBhZ2luYXRpb25gXTp7ZGlzcGxheToiZmxleCIsZmxleFdyYXA6IndyYXAiLHJvd0dhcDplLnBhZGRpbmdYUywiPiAqIjp7ZmxleDoibm9uZSJ9LCImLWxlZnQiOntqdXN0aWZ5Q29udGVudDoiZmxleC1zdGFydCJ9LCImLWNlbnRlciI6e2p1c3RpZnlDb250ZW50OiJjZW50ZXIifSwiJi1yaWdodCI6e2p1c3RpZnlDb250ZW50OiJmbGV4LWVuZCJ9fX19fSxJYT1lPT57Y29uc3R7Y29tcG9uZW50Q2xzOnQsdGFibGVSYWRpdXM6bn09ZTtyZXR1cm57W2Ake3R9LXdyYXBwZXJgXTp7W3RdOntbYCR7dH0tdGl0bGUsICR7dH0taGVhZGVyYF06e2JvcmRlclJhZGl1czpgJHsoMCxBLmJmKShuKX0gJHsoMCxBLmJmKShuKX0gMCAwYH0sW2Ake3R9LXRpdGxlICsgJHt0fS1jb250YWluZXJgXTp7Ym9yZGVyU3RhcnRTdGFydFJhZGl1czowLGJvcmRlclN0YXJ0RW5kUmFkaXVzOjAsW2Ake3R9LWhlYWRlciwgdGFibGVgXTp7Ym9yZGVyUmFkaXVzOjB9LCJ0YWJsZSA+IHRoZWFkID4gdHI6Zmlyc3QtY2hpbGQiOnsidGg6Zmlyc3QtY2hpbGQsIHRoOmxhc3QtY2hpbGQsIHRkOmZpcnN0LWNoaWxkLCB0ZDpsYXN0LWNoaWxkIjp7Ym9yZGVyUmFkaXVzOjB9fX0sIiYtY29udGFpbmVyIjp7Ym9yZGVyU3RhcnRTdGFydFJhZGl1czpuLGJvcmRlclN0YXJ0RW5kUmFkaXVzOm4sInRhYmxlID4gdGhlYWQgPiB0cjpmaXJzdC1jaGlsZCI6eyI+ICo6Zmlyc3QtY2hpbGQiOntib3JkZXJTdGFydFN0YXJ0UmFkaXVzOm59LCI+ICo6bGFzdC1jaGlsZCI6e2JvcmRlclN0YXJ0RW5kUmFkaXVzOm59fX0sIiYtZm9vdGVyIjp7Ym9yZGVyUmFkaXVzOmAwIDAgJHsoMCxBLmJmKShuKX0gJHsoMCxBLmJmKShuKX1gfX19fX0sVGE9ZT0+e2NvbnN0e2NvbXBvbmVudENsczp0fT1lO3JldHVybntbYCR7dH0td3JhcHBlci1ydGxgXTp7ZGlyZWN0aW9uOiJydGwiLHRhYmxlOntkaXJlY3Rpb246InJ0bCJ9LFtgJHt0fS1wYWdpbmF0aW9uLWxlZnRgXTp7anVzdGlmeUNvbnRlbnQ6ImZsZXgtZW5kIn0sW2Ake3R9LXBhZ2luYXRpb24tcmlnaHRgXTp7anVzdGlmeUNvbnRlbnQ6ImZsZXgtc3RhcnQifSxbYCR7dH0tcm93LWV4cGFuZC1pY29uYF06e2Zsb2F0OiJyaWdodCIsIiY6OmFmdGVyIjp7dHJhbnNmb3JtOiJyb3RhdGUoLTkwZGVnKSJ9LCImLWNvbGxhcHNlZDo6YmVmb3JlIjp7dHJhbnNmb3JtOiJyb3RhdGUoMTgwZGVnKSJ9LCImLWNvbGxhcHNlZDo6YWZ0ZXIiOnt0cmFuc2Zvcm06InJvdGF0ZSgwZGVnKSJ9fSxbYCR7dH0tY29udGFpbmVyYF06eyImOjpiZWZvcmUiOntpbnNldElubGluZVN0YXJ0OiJ1bnNldCIsaW5zZXRJbmxpbmVFbmQ6MH0sIiY6OmFmdGVyIjp7aW5zZXRJbmxpbmVTdGFydDowLGluc2V0SW5saW5lRW5kOiJ1bnNldCJ9LFtgJHt0fS1yb3ctaW5kZW50YF06e2Zsb2F0OiJyaWdodCJ9fX19fSxrYT1lPT57Y29uc3R7Y29tcG9uZW50Q2xzOnQsYW50Q2xzOm4saWNvbkNsczpyLGZvbnRTaXplSWNvbjpsLHBhZGRpbmc6YSxwYWRkaW5nWFM6cyxoZWFkZXJJY29uQ29sb3I6aSxoZWFkZXJJY29uSG92ZXJDb2xvcjpjLHRhYmxlU2VsZWN0aW9uQ29sdW1uV2lkdGg6ZCx0YWJsZVNlbGVjdGVkUm93Qmc6cCx0YWJsZVNlbGVjdGVkUm93SG92ZXJCZzpmLHRhYmxlUm93SG92ZXJCZzptLHRhYmxlUGFkZGluZ0hvcml6b250YWw6dSxjYWxjOnZ9PWU7cmV0dXJue1tgJHt0fS13cmFwcGVyYF06e1tgJHt0fS1zZWxlY3Rpb24tY29sYF06e3dpZHRoOmQsW2AmJHt0fS1zZWxlY3Rpb24tY29sLXdpdGgtZHJvcGRvd25gXTp7d2lkdGg6dihkKS5hZGQobCkuYWRkKHYoYSkuZGl2KDQpKS5lcXVhbCgpfX0sW2Ake3R9LWJvcmRlcmVkICR7dH0tc2VsZWN0aW9uLWNvbGBdOnt3aWR0aDp2KGQpLmFkZCh2KHMpLm11bCgyKSkuZXF1YWwoKSxbYCYke3R9LXNlbGVjdGlvbi1jb2wtd2l0aC1kcm9wZG93bmBdOnt3aWR0aDp2KGQpLmFkZChsKS5hZGQodihhKS5kaXYoNCkpLmFkZCh2KHMpLm11bCgyKSkuZXF1YWwoKX19LFtgCisgICAgICAgIHRhYmxlIHRyIHRoJHt0fS1zZWxlY3Rpb24tY29sdW1uLAorICAgICAgICB0YWJsZSB0ciB0ZCR7dH0tc2VsZWN0aW9uLWNvbHVtbiwKKyAgICAgICAgJHt0fS1zZWxlY3Rpb24tY29sdW1uCisgICAgICBgXTp7cGFkZGluZ0lubGluZUVuZDplLnBhZGRpbmdYUyxwYWRkaW5nSW5saW5lU3RhcnQ6ZS5wYWRkaW5nWFMsdGV4dEFsaWduOiJjZW50ZXIiLFtgJHtufS1yYWRpby13cmFwcGVyYF06e21hcmdpbklubGluZUVuZDowfX0sW2B0YWJsZSB0ciB0aCR7dH0tc2VsZWN0aW9uLWNvbHVtbiR7dH0tY2VsbC1maXgtbGVmdGBdOnt6SW5kZXg6dihlLnpJbmRleFRhYmxlRml4ZWQpLmFkZCgxKS5lcXVhbCh7dW5pdDohMX0pfSxbYHRhYmxlIHRyIHRoJHt0fS1zZWxlY3Rpb24tY29sdW1uOjphZnRlcmBdOntiYWNrZ3JvdW5kQ29sb3I6InRyYW5zcGFyZW50ICFpbXBvcnRhbnQifSxbYCR7dH0tc2VsZWN0aW9uYF06e3Bvc2l0aW9uOiJyZWxhdGl2ZSIsZGlzcGxheToiaW5saW5lLWZsZXgiLGZsZXhEaXJlY3Rpb246ImNvbHVtbiJ9LFtgJHt0fS1zZWxlY3Rpb24tZXh0cmFgXTp7cG9zaXRpb246ImFic29sdXRlIix0b3A6MCx6SW5kZXg6MSxjdXJzb3I6InBvaW50ZXIiLHRyYW5zaXRpb246YGFsbCAke2UubW90aW9uRHVyYXRpb25TbG93fWAsbWFyZ2luSW5saW5lU3RhcnQ6IjEwMCUiLHBhZGRpbmdJbmxpbmVTdGFydDooMCxBLmJmKSh2KHUpLmRpdig0KS5lcXVhbCgpKSxbcl06e2NvbG9yOmksZm9udFNpemU6bCx2ZXJ0aWNhbEFsaWduOiJiYXNlbGluZSIsIiY6aG92ZXIiOntjb2xvcjpjfX19LFtgJHt0fS10Ym9keWBdOntbYCR7dH0tcm93YF06e1tgJiR7dH0tcm93LXNlbGVjdGVkYF06e1tgPiAke3R9LWNlbGxgXTp7YmFja2dyb3VuZDpwLCImLXJvdy1ob3ZlciI6e2JhY2tncm91bmQ6Zn19fSxbYD4gJHt0fS1jZWxsLXJvdy1ob3ZlcmBdOntiYWNrZ3JvdW5kOm19fX19fX0sTmE9ZT0+e2NvbnN0e2NvbXBvbmVudENsczp0LHRhYmxlRXhwYW5kQ29sdW1uV2lkdGg6bixjYWxjOnJ9PWUsbD0oYSxzLGksYyk9Pih7W2Ake3R9JHt0fS0ke2F9YF06e2ZvbnRTaXplOmMsW2AKKyAgICAgICAgJHt0fS10aXRsZSwKKyAgICAgICAgJHt0fS1mb290ZXIsCisgICAgICAgICR7dH0tY2VsbCwKKyAgICAgICAgJHt0fS10aGVhZCA+IHRyID4gdGgsCisgICAgICAgICR7dH0tdGJvZHkgPiB0ciA+IHRoLAorICAgICAgICAke3R9LXRib2R5ID4gdHIgPiB0ZCwKKyAgICAgICAgdGZvb3QgPiB0ciA+IHRoLAorICAgICAgICB0Zm9vdCA+IHRyID4gdGQKKyAgICAgIGBdOntwYWRkaW5nOmAkeygwLEEuYmYpKHMpfSAkeygwLEEuYmYpKGkpfWB9LFtgJHt0fS1maWx0ZXItdHJpZ2dlcmBdOnttYXJnaW5JbmxpbmVFbmQ6KDAsQS5iZikocihpKS5kaXYoMikubXVsKC0xKS5lcXVhbCgpKX0sW2Ake3R9LWV4cGFuZGVkLXJvdy1maXhlZGBdOnttYXJnaW46YCR7KDAsQS5iZikocihzKS5tdWwoLTEpLmVxdWFsKCkpfSAkeygwLEEuYmYpKHIoaSkubXVsKC0xKS5lcXVhbCgpKX1gfSxbYCR7dH0tdGJvZHlgXTp7W2Ake3R9LXdyYXBwZXI6b25seS1jaGlsZCAke3R9YF06e21hcmdpbkJsb2NrOigwLEEuYmYpKHIocykubXVsKC0xKS5lcXVhbCgpKSxtYXJnaW5JbmxpbmU6YCR7KDAsQS5iZikocihuKS5zdWIoaSkuZXF1YWwoKSl9ICR7KDAsQS5iZikocihpKS5tdWwoLTEpLmVxdWFsKCkpfWB9fSxbYCR7dH0tc2VsZWN0aW9uLWV4dHJhYF06e3BhZGRpbmdJbmxpbmVTdGFydDooMCxBLmJmKShyKGkpLmRpdig0KS5lcXVhbCgpKX19fSk7cmV0dXJue1tgJHt0fS13cmFwcGVyYF06T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGwoIm1pZGRsZSIsZS50YWJsZVBhZGRpbmdWZXJ0aWNhbE1pZGRsZSxlLnRhYmxlUGFkZGluZ0hvcml6b250YWxNaWRkbGUsZS50YWJsZUZvbnRTaXplTWlkZGxlKSksbCgic21hbGwiLGUudGFibGVQYWRkaW5nVmVydGljYWxTbWFsbCxlLnRhYmxlUGFkZGluZ0hvcml6b250YWxTbWFsbCxlLnRhYmxlRm9udFNpemVTbWFsbCkpfX0sWmE9ZT0+e2NvbnN0e2NvbXBvbmVudENsczp0LG1hcmdpblhYUzpuLGZvbnRTaXplSWNvbjpyLGhlYWRlckljb25Db2xvcjpsLGhlYWRlckljb25Ib3ZlckNvbG9yOmF9PWU7cmV0dXJue1tgJHt0fS13cmFwcGVyYF06e1tgJHt0fS10aGVhZCB0aCR7dH0tY29sdW1uLWhhcy1zb3J0ZXJzYF06e291dGxpbmU6Im5vbmUiLGN1cnNvcjoicG9pbnRlciIsdHJhbnNpdGlvbjpgYWxsICR7ZS5tb3Rpb25EdXJhdGlvblNsb3d9LCBsZWZ0IDBzYCwiJjpob3ZlciI6e2JhY2tncm91bmQ6ZS50YWJsZUhlYWRlclNvcnRIb3ZlckJnLCImOjpiZWZvcmUiOntiYWNrZ3JvdW5kQ29sb3I6InRyYW5zcGFyZW50ICFpbXBvcnRhbnQifX0sIiY6Zm9jdXMtdmlzaWJsZSI6e2NvbG9yOmUuY29sb3JQcmltYXJ5fSxbYAorICAgICAgICAgICYke3R9LWNlbGwtZml4LWxlZnQ6aG92ZXIsCisgICAgICAgICAgJiR7dH0tY2VsbC1maXgtcmlnaHQ6aG92ZXIKKyAgICAgICAgYF06e2JhY2tncm91bmQ6ZS50YWJsZUZpeGVkSGVhZGVyU29ydEFjdGl2ZUJnfX0sW2Ake3R9LXRoZWFkIHRoJHt0fS1jb2x1bW4tc29ydGBdOntiYWNrZ3JvdW5kOmUudGFibGVIZWFkZXJTb3J0QmcsIiY6OmJlZm9yZSI6e2JhY2tncm91bmRDb2xvcjoidHJhbnNwYXJlbnQgIWltcG9ydGFudCJ9fSxbYHRkJHt0fS1jb2x1bW4tc29ydGBdOntiYWNrZ3JvdW5kOmUudGFibGVCb2R5U29ydEJnfSxbYCR7dH0tY29sdW1uLXRpdGxlYF06e3Bvc2l0aW9uOiJyZWxhdGl2ZSIsekluZGV4OjEsZmxleDoxLG1pbldpZHRoOjB9LFtgJHt0fS1jb2x1bW4tc29ydGVyc2BdOntkaXNwbGF5OiJmbGV4IixmbGV4OiJhdXRvIixhbGlnbkl0ZW1zOiJjZW50ZXIiLGp1c3RpZnlDb250ZW50OiJzcGFjZS1iZXR3ZWVuIiwiJjo6YWZ0ZXIiOntwb3NpdGlvbjoiYWJzb2x1dGUiLGluc2V0OjAsd2lkdGg6IjEwMCUiLGhlaWdodDoiMTAwJSIsY29udGVudDonIiInfX0sW2Ake3R9LWNvbHVtbi1zb3J0ZXJzLXRvb2x0aXAtdGFyZ2V0LXNvcnRlcmBdOnsiJjo6YWZ0ZXIiOntjb250ZW50OiJub25lIn19LFtgJHt0fS1jb2x1bW4tc29ydGVyYF06e21hcmdpbklubGluZVN0YXJ0Om4sY29sb3I6bCxmb250U2l6ZTowLHRyYW5zaXRpb246YGNvbG9yICR7ZS5tb3Rpb25EdXJhdGlvblNsb3d9YCwiJi1pbm5lciI6e2Rpc3BsYXk6ImlubGluZS1mbGV4IixmbGV4RGlyZWN0aW9uOiJjb2x1bW4iLGFsaWduSXRlbXM6ImNlbnRlciJ9LCImLXVwLCAmLWRvd24iOntmb250U2l6ZTpyLCImLmFjdGl2ZSI6e2NvbG9yOmUuY29sb3JQcmltYXJ5fX0sW2Ake3R9LWNvbHVtbi1zb3J0ZXItdXAgKyAke3R9LWNvbHVtbi1zb3J0ZXItZG93bmBdOnttYXJnaW5Ub3A6Ii0wLjNlbSJ9fSxbYCR7dH0tY29sdW1uLXNvcnRlcnM6aG92ZXIgJHt0fS1jb2x1bW4tc29ydGVyYF06e2NvbG9yOmF9fX19LFBhPWU9Pntjb25zdHtjb21wb25lbnRDbHM6dCxvcGFjaXR5TG9hZGluZzpuLHRhYmxlU2Nyb2xsVGh1bWJCZzpyLHRhYmxlU2Nyb2xsVGh1bWJCZ0hvdmVyOmwsdGFibGVTY3JvbGxUaHVtYlNpemU6YSx0YWJsZVNjcm9sbEJnOnMsekluZGV4VGFibGVTdGlja3k6aSxzdGlja3lTY3JvbGxCYXJCb3JkZXJSYWRpdXM6YyxsaW5lV2lkdGg6ZCxsaW5lVHlwZTpwLHRhYmxlQm9yZGVyQ29sb3I6Zn09ZSxtPWAkeygwLEEuYmYpKGQpfSAke3B9ICR7Zn1gO3JldHVybntbYCR7dH0td3JhcHBlcmBdOntbYCR7dH0tc3RpY2t5YF06eyImLWhvbGRlciI6e3Bvc2l0aW9uOiJzdGlja3kiLHpJbmRleDppLGJhY2tncm91bmQ6ZS5jb2xvckJnQ29udGFpbmVyfSwiJi1zY3JvbGwiOntwb3NpdGlvbjoic3RpY2t5Iixib3R0b206MCxoZWlnaHQ6YCR7KDAsQS5iZikoYSl9ICFpbXBvcnRhbnRgLHpJbmRleDppLGRpc3BsYXk6ImZsZXgiLGFsaWduSXRlbXM6ImNlbnRlciIsYmFja2dyb3VuZDpzLGJvcmRlclRvcDptLG9wYWNpdHk6biwiJjpob3ZlciI6e3RyYW5zZm9ybU9yaWdpbjoiY2VudGVyIGJvdHRvbSJ9LCImLWJhciI6e2hlaWdodDphLGJhY2tncm91bmRDb2xvcjpyLGJvcmRlclJhZGl1czpjLHRyYW5zaXRpb246YGFsbCAke2UubW90aW9uRHVyYXRpb25TbG93fSwgdHJhbnNmb3JtIG5vbmVgLHBvc2l0aW9uOiJhYnNvbHV0ZSIsYm90dG9tOjAsIiY6aG92ZXIsICYtYWN0aXZlIjp7YmFja2dyb3VuZENvbG9yOmx9fX19fX19LF9yPWU9Pntjb25zdHtjb21wb25lbnRDbHM6dCxsaW5lV2lkdGg6bix0YWJsZUJvcmRlckNvbG9yOnIsY2FsYzpsfT1lLGE9YCR7KDAsQS5iZikobil9ICR7ZS5saW5lVHlwZX0gJHtyfWA7cmV0dXJue1tgJHt0fS13cmFwcGVyYF06e1tgJHt0fS1zdW1tYXJ5YF06e3Bvc2l0aW9uOiJyZWxhdGl2ZSIsekluZGV4OmUuekluZGV4VGFibGVGaXhlZCxiYWNrZ3JvdW5kOmUudGFibGVCZywiPiB0ciI6eyI+IHRoLCA+IHRkIjp7Ym9yZGVyQm90dG9tOmF9fX0sW2BkaXYke3R9LXN1bW1hcnlgXTp7Ym94U2hhZG93OmAwICR7KDAsQS5iZikobChuKS5tdWwoLTEpLmVxdWFsKCkpfSAwICR7cn1gfX19fSxPYT1lPT57Y29uc3R7Y29tcG9uZW50Q2xzOnQsbW90aW9uRHVyYXRpb25NaWQ6bixsaW5lV2lkdGg6cixsaW5lVHlwZTpsLHRhYmxlQm9yZGVyQ29sb3I6YSxjYWxjOnN9PWUsaT1gJHsoMCxBLmJmKShyKX0gJHtsfSAke2F9YCxjPWAke3R9LWV4cGFuZGVkLXJvdy1jZWxsYDtyZXR1cm57W2Ake3R9LXdyYXBwZXJgXTp7W2Ake3R9LXRib2R5LXZpcnR1YWxgXTp7W2Ake3R9LXRib2R5LXZpcnR1YWwtaG9sZGVyLWlubmVyYF06e1tgCisgICAgICAgICAgICAmID4gJHt0fS1yb3csIAorICAgICAgICAgICAgJiA+IGRpdjpub3QoJHt0fS1yb3cpID4gJHt0fS1yb3cKKyAgICAgICAgICBgXTp7ZGlzcGxheToiZmxleCIsYm94U2l6aW5nOiJib3JkZXItYm94Iix3aWR0aDoiMTAwJSJ9fSxbYCR7dH0tY2VsbGBdOntib3JkZXJCb3R0b206aSx0cmFuc2l0aW9uOmBiYWNrZ3JvdW5kICR7bn1gfSxbYCR7dH0tZXhwYW5kZWQtcm93YF06e1tgJHtjfSR7Y30tZml4ZWRgXTp7cG9zaXRpb246InN0aWNreSIsaW5zZXRJbmxpbmVTdGFydDowLG92ZXJmbG93OiJoaWRkZW4iLHdpZHRoOmBjYWxjKHZhcigtLXZpcnR1YWwtd2lkdGgpIC0gJHsoMCxBLmJmKShyKX0pYCxib3JkZXJJbmxpbmVFbmQ6Im5vbmUifX19LFtgJHt0fS1ib3JkZXJlZGBdOntbYCR7dH0tdGJvZHktdmlydHVhbGBdOnsiJjphZnRlciI6e2NvbnRlbnQ6JyIiJyxpbnNldElubGluZTowLGJvdHRvbTowLGJvcmRlckJvdHRvbTppLHBvc2l0aW9uOiJhYnNvbHV0ZSJ9LFtgJHt0fS1jZWxsYF06e2JvcmRlcklubGluZUVuZDppLFtgJiR7dH0tY2VsbC1maXgtcmlnaHQtZmlyc3Q6YmVmb3JlYF06e2NvbnRlbnQ6JyIiJyxwb3NpdGlvbjoiYWJzb2x1dGUiLGluc2V0QmxvY2s6MCxpbnNldElubGluZVN0YXJ0OnMocikubXVsKC0xKS5lcXVhbCgpLGJvcmRlcklubGluZVN0YXJ0Oml9fX0sW2AmJHt0fS12aXJ0dWFsYF06e1tgJHt0fS1wbGFjZWhvbGRlciAke3R9LWNlbGxgXTp7Ym9yZGVySW5saW5lRW5kOmksYm9yZGVyQm90dG9tOml9fX19fX07Y29uc3QgQmE9ZT0+e2NvbnN0e2NvbXBvbmVudENsczp0LGZvbnRXZWlnaHRTdHJvbmc6bix0YWJsZVBhZGRpbmdWZXJ0aWNhbDpyLHRhYmxlUGFkZGluZ0hvcml6b250YWw6bCx0YWJsZUV4cGFuZENvbHVtbldpZHRoOmEsbGluZVdpZHRoOnMsbGluZVR5cGU6aSx0YWJsZUJvcmRlckNvbG9yOmMsdGFibGVGb250U2l6ZTpkLHRhYmxlQmc6cCx0YWJsZVJhZGl1czpmLHRhYmxlSGVhZGVyVGV4dENvbG9yOm0sbW90aW9uRHVyYXRpb25NaWQ6dSx0YWJsZUhlYWRlckJnOnYsdGFibGVIZWFkZXJDZWxsU3BsaXRDb2xvcjp4LHRhYmxlRm9vdGVyVGV4dENvbG9yOmcsdGFibGVGb290ZXJCZzp5LGNhbGM6Yn09ZSxoPWAkeygwLEEuYmYpKHMpfSAke2l9ICR7Y31gO3JldHVybntbYCR7dH0td3JhcHBlcmBdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7Y2xlYXI6ImJvdGgiLG1heFdpZHRoOiIxMDAlIn0sKDAsdm4uZEYpKCkpLHtbdF06T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCgwLHZuLldmKShlKSkse2ZvbnRTaXplOmQsYmFja2dyb3VuZDpwLGJvcmRlclJhZGl1czpgJHsoMCxBLmJmKShmKX0gJHsoMCxBLmJmKShmKX0gMCAwYCxzY3JvbGxiYXJDb2xvcjpgJHtlLnRhYmxlU2Nyb2xsVGh1bWJCZ30gJHtlLnRhYmxlU2Nyb2xsQmd9YH0pLHRhYmxlOnt3aWR0aDoiMTAwJSIsdGV4dEFsaWduOiJzdGFydCIsYm9yZGVyUmFkaXVzOmAkeygwLEEuYmYpKGYpfSAkeygwLEEuYmYpKGYpfSAwIDBgLGJvcmRlckNvbGxhcHNlOiJzZXBhcmF0ZSIsYm9yZGVyU3BhY2luZzowfSxbYAorICAgICAgICAgICR7dH0tY2VsbCwKKyAgICAgICAgICAke3R9LXRoZWFkID4gdHIgPiB0aCwKKyAgICAgICAgICAke3R9LXRib2R5ID4gdHIgPiB0aCwKKyAgICAgICAgICAke3R9LXRib2R5ID4gdHIgPiB0ZCwKKyAgICAgICAgICB0Zm9vdCA+IHRyID4gdGgsCisgICAgICAgICAgdGZvb3QgPiB0ciA+IHRkCisgICAgICAgIGBdOntwb3NpdGlvbjoicmVsYXRpdmUiLHBhZGRpbmc6YCR7KDAsQS5iZikocil9ICR7KDAsQS5iZikobCl9YCxvdmVyZmxvd1dyYXA6ImJyZWFrLXdvcmQifSxbYCR7dH0tdGl0bGVgXTp7cGFkZGluZzpgJHsoMCxBLmJmKShyKX0gJHsoMCxBLmJmKShsKX1gfSxbYCR7dH0tdGhlYWRgXTp7IlxuICAgICAgICAgID4gdHIgPiB0aCxcbiAgICAgICAgICA+IHRyID4gdGRcbiAgICAgICAgIjp7cG9zaXRpb246InJlbGF0aXZlIixjb2xvcjptLGZvbnRXZWlnaHQ6bix0ZXh0QWxpZ246InN0YXJ0IixiYWNrZ3JvdW5kOnYsYm9yZGVyQm90dG9tOmgsdHJhbnNpdGlvbjpgYmFja2dyb3VuZCAke3V9IGVhc2VgLCImW2NvbHNwYW5dOm5vdChbY29sc3Bhbj0nMSddKSI6e3RleHRBbGlnbjoiY2VudGVyIn0sW2AmOm5vdCg6bGFzdC1jaGlsZCk6bm90KCR7dH0tc2VsZWN0aW9uLWNvbHVtbik6bm90KCR7dH0tcm93LWV4cGFuZC1pY29uLWNlbGwpOm5vdChbY29sc3Bhbl0pOjpiZWZvcmVgXTp7cG9zaXRpb246ImFic29sdXRlIix0b3A6IjUwJSIsaW5zZXRJbmxpbmVFbmQ6MCx3aWR0aDoxLGhlaWdodDoiMS42ZW0iLGJhY2tncm91bmRDb2xvcjp4LHRyYW5zZm9ybToidHJhbnNsYXRlWSgtNTAlKSIsdHJhbnNpdGlvbjpgYmFja2dyb3VuZC1jb2xvciAke3V9YCxjb250ZW50OiciIid9fSwiPiB0cjpub3QoOmxhc3QtY2hpbGQpID4gdGhbY29sc3Bhbl0iOntib3JkZXJCb3R0b206MH19LFtgJHt0fS10Ym9keWBdOnsiPiB0ciI6eyI+IHRoLCA+IHRkIjp7dHJhbnNpdGlvbjpgYmFja2dyb3VuZCAke3V9LCBib3JkZXItY29sb3IgJHt1fWAsYm9yZGVyQm90dG9tOmgsW2AKKyAgICAgICAgICAgICAgPiAke3R9LXdyYXBwZXI6b25seS1jaGlsZCwKKyAgICAgICAgICAgICAgPiAke3R9LWV4cGFuZGVkLXJvdy1maXhlZCA+ICR7dH0td3JhcHBlcjpvbmx5LWNoaWxkCisgICAgICAgICAgICBgXTp7W3RdOnttYXJnaW5CbG9jazooMCxBLmJmKShiKHIpLm11bCgtMSkuZXF1YWwoKSksbWFyZ2luSW5saW5lOmAkeygwLEEuYmYpKGIoYSkuc3ViKGwpLmVxdWFsKCkpfQorICAgICAgICAgICAgICAgICR7KDAsQS5iZikoYihsKS5tdWwoLTEpLmVxdWFsKCkpfWAsW2Ake3R9LXRib2R5ID4gdHI6bGFzdC1jaGlsZCA+IHRkYF06e2JvcmRlckJvdHRvbVdpZHRoOjAsIiY6Zmlyc3QtY2hpbGQsICY6bGFzdC1jaGlsZCI6e2JvcmRlclJhZGl1czowfX19fX0sIj4gdGgiOntwb3NpdGlvbjoicmVsYXRpdmUiLGNvbG9yOm0sZm9udFdlaWdodDpuLHRleHRBbGlnbjoic3RhcnQiLGJhY2tncm91bmQ6dixib3JkZXJCb3R0b206aCx0cmFuc2l0aW9uOmBiYWNrZ3JvdW5kICR7dX0gZWFzZWB9fX0sW2Ake3R9LWZvb3RlcmBdOntwYWRkaW5nOmAkeygwLEEuYmYpKHIpfSAkeygwLEEuYmYpKGwpfWAsY29sb3I6ZyxiYWNrZ3JvdW5kOnl9fSl9fSxLYT1lPT57Y29uc3R7Y29sb3JGaWxsQWx0ZXI6dCxjb2xvckJnQ29udGFpbmVyOm4sY29sb3JUZXh0SGVhZGluZzpyLGNvbG9yRmlsbFNlY29uZGFyeTpsLGNvbG9yRmlsbENvbnRlbnQ6YSxjb250cm9sSXRlbUJnQWN0aXZlOnMsY29udHJvbEl0ZW1CZ0FjdGl2ZUhvdmVyOmkscGFkZGluZzpjLHBhZGRpbmdTTTpkLHBhZGRpbmdYUzpwLGNvbG9yQm9yZGVyU2Vjb25kYXJ5OmYsYm9yZGVyUmFkaXVzTEc6bSxjb250cm9sSGVpZ2h0OnUsY29sb3JUZXh0UGxhY2Vob2xkZXI6dixmb250U2l6ZTp4LGZvbnRTaXplU006ZyxsaW5lSGVpZ2h0OnksbGluZVdpZHRoOmIsY29sb3JJY29uOmgsY29sb3JJY29uSG92ZXI6dyxvcGFjaXR5TG9hZGluZzpSLGNvbnRyb2xJbnRlcmFjdGl2ZVNpemU6Wn09ZSxUPW5ldyBtbi50KGwpLm9uQmFja2dyb3VuZChuKS50b0hleFN0cmluZygpLFY9bmV3IG1uLnQoYSkub25CYWNrZ3JvdW5kKG4pLnRvSGV4U3RyaW5nKCksRj1uZXcgbW4udCh0KS5vbkJhY2tncm91bmQobikudG9IZXhTdHJpbmcoKSx6PW5ldyBtbi50KGgpLGo9bmV3IG1uLnQodyksaz1aLzItYixOPWsqMitiKjM7cmV0dXJue2hlYWRlckJnOkYsaGVhZGVyQ29sb3I6cixoZWFkZXJTb3J0QWN0aXZlQmc6VCxoZWFkZXJTb3J0SG92ZXJCZzpWLGJvZHlTb3J0Qmc6Rixyb3dIb3ZlckJnOkYscm93U2VsZWN0ZWRCZzpzLHJvd1NlbGVjdGVkSG92ZXJCZzppLHJvd0V4cGFuZGVkQmc6dCxjZWxsUGFkZGluZ0Jsb2NrOmMsY2VsbFBhZGRpbmdJbmxpbmU6YyxjZWxsUGFkZGluZ0Jsb2NrTUQ6ZCxjZWxsUGFkZGluZ0lubGluZU1EOnAsY2VsbFBhZGRpbmdCbG9ja1NNOnAsY2VsbFBhZGRpbmdJbmxpbmVTTTpwLGJvcmRlckNvbG9yOmYsaGVhZGVyQm9yZGVyUmFkaXVzOm0sZm9vdGVyQmc6Rixmb290ZXJDb2xvcjpyLGNlbGxGb250U2l6ZTp4LGNlbGxGb250U2l6ZU1EOngsY2VsbEZvbnRTaXplU006eCxoZWFkZXJTcGxpdENvbG9yOmYsZml4ZWRIZWFkZXJTb3J0QWN0aXZlQmc6VCxoZWFkZXJGaWx0ZXJIb3ZlckJnOmEsZmlsdGVyRHJvcGRvd25NZW51Qmc6bixmaWx0ZXJEcm9wZG93bkJnOm4sZXhwYW5kSWNvbkJnOm4sc2VsZWN0aW9uQ29sdW1uV2lkdGg6dSxzdGlja3lTY3JvbGxCYXJCZzp2LHN0aWNreVNjcm9sbEJhckJvcmRlclJhZGl1czoxMDAsZXhwYW5kSWNvbk1hcmdpblRvcDooeCp5LWIqMykvMi1NYXRoLmNlaWwoKGcqMS40LWIqMykvMiksaGVhZGVySWNvbkNvbG9yOnouY2xvbmUoKS5zZXRBKHouYSpSKS50b1JnYlN0cmluZygpLGhlYWRlckljb25Ib3ZlckNvbG9yOmouY2xvbmUoKS5zZXRBKGouYSpSKS50b1JnYlN0cmluZygpLGV4cGFuZEljb25IYWxmSW5uZXI6ayxleHBhbmRJY29uU2l6ZTpOLGV4cGFuZEljb25TY2FsZTpaL059fSxlbz0yO3ZhciBNYT0oMCx4YS5JJCkoIlRhYmxlIixlPT57Y29uc3R7Y29sb3JUZXh0SGVhZGluZzp0LGNvbG9yU3BsaXQ6bixjb2xvckJnQ29udGFpbmVyOnIsY29udHJvbEludGVyYWN0aXZlU2l6ZTpsLGhlYWRlckJnOmEsaGVhZGVyQ29sb3I6cyxoZWFkZXJTb3J0QWN0aXZlQmc6aSxoZWFkZXJTb3J0SG92ZXJCZzpjLGJvZHlTb3J0Qmc6ZCxyb3dIb3ZlckJnOnAscm93U2VsZWN0ZWRCZzpmLHJvd1NlbGVjdGVkSG92ZXJCZzptLHJvd0V4cGFuZGVkQmc6dSxjZWxsUGFkZGluZ0Jsb2NrOnYsY2VsbFBhZGRpbmdJbmxpbmU6eCxjZWxsUGFkZGluZ0Jsb2NrTUQ6ZyxjZWxsUGFkZGluZ0lubGluZU1EOnksY2VsbFBhZGRpbmdCbG9ja1NNOmIsY2VsbFBhZGRpbmdJbmxpbmVTTTpoLGJvcmRlckNvbG9yOncsZm9vdGVyQmc6Uixmb290ZXJDb2xvcjpaLGhlYWRlckJvcmRlclJhZGl1czpULGNlbGxGb250U2l6ZTpWLGNlbGxGb250U2l6ZU1EOkYsY2VsbEZvbnRTaXplU006eixoZWFkZXJTcGxpdENvbG9yOmosZml4ZWRIZWFkZXJTb3J0QWN0aXZlQmc6ayxoZWFkZXJGaWx0ZXJIb3ZlckJnOk4sZmlsdGVyRHJvcGRvd25CZzokLGV4cGFuZEljb25CZzpDLHNlbGVjdGlvbkNvbHVtbldpZHRoOkksc3RpY2t5U2Nyb2xsQmFyQmc6UCxjYWxjOk19PWUsRT0oMCx5YS5JWCkoZSx7dGFibGVGb250U2l6ZTpWLHRhYmxlQmc6cix0YWJsZVJhZGl1czpULHRhYmxlUGFkZGluZ1ZlcnRpY2FsOnYsdGFibGVQYWRkaW5nSG9yaXpvbnRhbDp4LHRhYmxlUGFkZGluZ1ZlcnRpY2FsTWlkZGxlOmcsdGFibGVQYWRkaW5nSG9yaXpvbnRhbE1pZGRsZTp5LHRhYmxlUGFkZGluZ1ZlcnRpY2FsU21hbGw6Yix0YWJsZVBhZGRpbmdIb3Jpem9udGFsU21hbGw6aCx0YWJsZUJvcmRlckNvbG9yOncsdGFibGVIZWFkZXJUZXh0Q29sb3I6cyx0YWJsZUhlYWRlckJnOmEsdGFibGVGb290ZXJUZXh0Q29sb3I6Wix0YWJsZUZvb3RlckJnOlIsdGFibGVIZWFkZXJDZWxsU3BsaXRDb2xvcjpqLHRhYmxlSGVhZGVyU29ydEJnOmksdGFibGVIZWFkZXJTb3J0SG92ZXJCZzpjLHRhYmxlQm9keVNvcnRCZzpkLHRhYmxlRml4ZWRIZWFkZXJTb3J0QWN0aXZlQmc6ayx0YWJsZUhlYWRlckZpbHRlckFjdGl2ZUJnOk4sdGFibGVGaWx0ZXJEcm9wZG93bkJnOiQsdGFibGVSb3dIb3ZlckJnOnAsdGFibGVTZWxlY3RlZFJvd0JnOmYsdGFibGVTZWxlY3RlZFJvd0hvdmVyQmc6bSx6SW5kZXhUYWJsZUZpeGVkOmVvLHpJbmRleFRhYmxlU3RpY2t5Ok0oZW8pLmFkZCgxKS5lcXVhbCh7dW5pdDohMX0pLHRhYmxlRm9udFNpemVNaWRkbGU6Rix0YWJsZUZvbnRTaXplU21hbGw6eix0YWJsZVNlbGVjdGlvbkNvbHVtbldpZHRoOkksdGFibGVFeHBhbmRJY29uQmc6Qyx0YWJsZUV4cGFuZENvbHVtbldpZHRoOk0obCkuYWRkKE0oZS5wYWRkaW5nKS5tdWwoMikpLmVxdWFsKCksdGFibGVFeHBhbmRlZFJvd0JnOnUsdGFibGVGaWx0ZXJEcm9wZG93bldpZHRoOjEyMCx0YWJsZUZpbHRlckRyb3Bkb3duSGVpZ2h0OjI2NCx0YWJsZUZpbHRlckRyb3Bkb3duU2VhcmNoV2lkdGg6MTQwLHRhYmxlU2Nyb2xsVGh1bWJTaXplOjgsdGFibGVTY3JvbGxUaHVtYkJnOlAsdGFibGVTY3JvbGxUaHVtYkJnSG92ZXI6dCx0YWJsZVNjcm9sbEJnOm59KTtyZXR1cm5bQmEoRSksJGEoRSksX3IoRSksWmEoRSksRWEoRSksYmEoRSksSWEoRSksd2EoRSksX3IoRSksU2EoRSksa2EoRSksUmEoRSksUGEoRSksQ2EoRSksTmEoRSksVGEoRSksT2EoRSldfSxLYSx7dW5pdGxlc3M6e2V4cGFuZEljb25TY2FsZTohMH19KTtjb25zdCBIYT1bXSxGYT0oZSx0KT0+e3ZhciBuLHI7Y29uc3R7cHJlZml4Q2xzOmwsY2xhc3NOYW1lOmEscm9vdENsYXNzTmFtZTpzLHN0eWxlOmksc2l6ZTpjLGJvcmRlcmVkOmQsZHJvcGRvd25QcmVmaXhDbHM6cCxkYXRhU291cmNlOmYscGFnaW5hdGlvbjptLHJvd1NlbGVjdGlvbjp1LHJvd0tleTp2PSJrZXkiLHJvd0NsYXNzTmFtZTp4LGNvbHVtbnM6ZyxjaGlsZHJlbjp5LGNoaWxkcmVuQ29sdW1uTmFtZTpiLG9uQ2hhbmdlOmgsZ2V0UG9wdXBDb250YWluZXI6dyxsb2FkaW5nOlIsZXhwYW5kSWNvbjpaLGV4cGFuZGFibGU6VCxleHBhbmRlZFJvd1JlbmRlcjpWLGV4cGFuZEljb25Db2x1bW5JbmRleDpGLGluZGVudFNpemU6eixzY3JvbGw6aixzb3J0RGlyZWN0aW9uczprLGxvY2FsZTpOLHNob3dTb3J0ZXJUb29sdGlwOiQ9e3RhcmdldDoiZnVsbC1oZWFkZXIifSx2aXJ0dWFsOkN9PWUsST0oMCxWbi5sbikoIlRhYmxlIiksUD1vLnVzZU1lbW8oKCk9Pmd8fHpuKHkpLFtnLHldKSxNPW8udXNlTWVtbygoKT0+UC5zb21lKFg9PlgucmVzcG9uc2l2ZSksW1BdKSxFPSgwLEZsLlopKE0pLFU9by51c2VNZW1vKCgpPT57Y29uc3QgWD1uZXcgU2V0KE9iamVjdC5rZXlzKEUpLmZpbHRlcihzZT0+RVtzZV0pKTtyZXR1cm4gUC5maWx0ZXIoc2U9PiFzZS5yZXNwb25zaXZlfHxzZS5yZXNwb25zaXZlLnNvbWUoTWU9PlguaGFzKE1lKSkpfSxbUCxFXSksRz0oMCxrbC5aKShlLFsiY2xhc3NOYW1lIiwic3R5bGUiLCJjb2x1bW5zIl0pLHtsb2NhbGU6TmU9TGwuWixkaXJlY3Rpb246YmUsdGFibGU6bWUscmVuZGVyRW1wdHk6RWUsZ2V0UHJlZml4Q2xzOlZlLGdldFBvcHVwQ29udGFpbmVyOll9PW8udXNlQ29udGV4dChLci5FXyksSj0oMCxIbC5aKShjKSxCZT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sTmUuVGFibGUpLE4pLHplPWZ8fEhhLEI9VmUoInRhYmxlIixsKSxXPVZlKCJkcm9wZG93biIscCksWyxPXT0oMCxqbC5aUCkoKSxIPSgwLE1sLlopKEIpLFtfLHRlLENlXT1NYShCLEgpLHZlPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7Y2hpbGRyZW5Db2x1bW5OYW1lOmIsZXhwYW5kSWNvbkNvbHVtbkluZGV4OkZ9LFQpLHtleHBhbmRJY29uOihuPVQ9PW51bGw/dm9pZCAwOlQuZXhwYW5kSWNvbikhPT1udWxsJiZuIT09dm9pZCAwP246KHI9bWU9PW51bGw/dm9pZCAwOm1lLmV4cGFuZGFibGUpPT09bnVsbHx8cj09PXZvaWQgMD92b2lkIDA6ci5leHBhbmRJY29ufSkse2NoaWxkcmVuQ29sdW1uTmFtZTpYZT0iY2hpbGRyZW4ifT12ZSxVZT1vLnVzZU1lbW8oKCk9PnplLnNvbWUoWD0+WD09bnVsbD92b2lkIDA6WFtYZV0pPyJuZXN0IjpWfHxUIT1udWxsJiZULmV4cGFuZGVkUm93UmVuZGVyPyJyb3ciOm51bGwsW3plXSksSz17Ym9keTpvLnVzZVJlZihudWxsKX0sRD1WbChCKSxyZT1vLnVzZVJlZihudWxsKSxTZT1vLnVzZVJlZihudWxsKTtabCh0LCgpPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sU2UuY3VycmVudCkse25hdGl2ZUVsZW1lbnQ6cmUuY3VycmVudH0pKTtjb25zdCBkZT1vLnVzZU1lbW8oKCk9PnR5cGVvZiB2PT0iZnVuY3Rpb24iP3Y6WD0+WD09bnVsbD92b2lkIDA6WFt2XSxbdl0pLFtHZV09KDAsYWEuWikoemUsWGUsZGUpLFBlPXt9LEl0PWZ1bmN0aW9uKFgsc2Upe2xldCBNZT1hcmd1bWVudHMubGVuZ3RoPjImJmFyZ3VtZW50c1syXSE9PXZvaWQgMD9hcmd1bWVudHNbMl06ITE7dmFyIGplLGF0LEN0LFR0O2NvbnN0IEplPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxQZSksWCk7TWUmJigoamU9UGUucmVzZXRQYWdpbmF0aW9uKT09PW51bGx8fGplPT09dm9pZCAwfHxqZS5jYWxsKFBlKSwhKChhdD1KZS5wYWdpbmF0aW9uKT09PW51bGx8fGF0PT09dm9pZCAwKSYmYXQuY3VycmVudCYmKEplLnBhZ2luYXRpb24uY3VycmVudD0xKSxtJiYoKEN0PW0ub25DaGFuZ2UpPT09bnVsbHx8Q3Q9PT12b2lkIDB8fEN0LmNhbGwobSwxLChUdD1KZS5wYWdpbmF0aW9uKT09PW51bGx8fFR0PT09dm9pZCAwP3ZvaWQgMDpUdC5wYWdlU2l6ZSkpKSxqJiZqLnNjcm9sbFRvRmlyc3RSb3dPbkNoYW5nZSE9PSExJiZLLmJvZHkuY3VycmVudCYmQmwoMCx7Z2V0Q29udGFpbmVyOigpPT5LLmJvZHkuY3VycmVudH0pLGg9PW51bGx8fGgoSmUucGFnaW5hdGlvbixKZS5maWx0ZXJzLEplLnNvcnRlcix7Y3VycmVudERhdGFTb3VyY2U6cW4odHIoemUsSmUuc29ydGVyU3RhdGVzLFhlKSxKZS5maWx0ZXJTdGF0ZXMsWGUpLGFjdGlvbjpzZX0pfSx3ZT0oWCxzZSk9PntJdCh7c29ydGVyOlgsc29ydGVyU3RhdGVzOnNlfSwic29ydCIsITEpfSxbaWUscGUseGUsRGVdPXZhKHtwcmVmaXhDbHM6QixtZXJnZWRDb2x1bW5zOlUsb25Tb3J0ZXJDaGFuZ2U6d2Usc29ydERpcmVjdGlvbnM6a3x8WyJhc2NlbmQiLCJkZXNjZW5kIl0sdGFibGVMb2NhbGU6QmUsc2hvd1NvcnRlclRvb2x0aXA6JH0pLExlPW8udXNlTWVtbygoKT0+dHIoemUscGUsWGUpLFt6ZSxwZV0pO1BlLnNvcnRlcj1EZSgpLFBlLnNvcnRlclN0YXRlcz1wZTtjb25zdCBvZT0oWCxzZSk9PntJdCh7ZmlsdGVyczpYLGZpbHRlclN0YXRlczpzZX0sImZpbHRlciIsITApfSxbT2UsZmUsWWVdPWxhKHtwcmVmaXhDbHM6Qixsb2NhbGU6QmUsZHJvcGRvd25QcmVmaXhDbHM6VyxtZXJnZWRDb2x1bW5zOlUsb25GaWx0ZXJDaGFuZ2U6b2UsZ2V0UG9wdXBDb250YWluZXI6d3x8WSxyb290Q2xhc3NOYW1lOm5lKCkocyxIKX0pLEtlPXFuKExlLGZlLFhlKTtQZS5maWx0ZXJzPVllLFBlLmZpbHRlclN0YXRlcz1mZTtjb25zdCBudD1vLnVzZU1lbW8oKCk9Pntjb25zdCBYPXt9O3JldHVybiBPYmplY3Qua2V5cyhZZSkuZm9yRWFjaChzZT0+e1llW3NlXSE9PW51bGwmJihYW3NlXT1ZZVtzZV0pfSksT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHhlKSx7ZmlsdGVyczpYfSl9LFt4ZSxZZV0pLFtEdF09cGEobnQpLHBuPShYLHNlKT0+e0l0KHtwYWdpbmF0aW9uOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxQZS5wYWdpbmF0aW9uKSx7Y3VycmVudDpYLHBhZ2VTaXplOnNlfSl9LCJwYWdpbmF0ZSIpfSxbSWUsZ25dPWRhKEtlLmxlbmd0aCxwbixtKTtQZS5wYWdpbmF0aW9uPW09PT0hMT97fTpzYShJZSxtKSxQZS5yZXNldFBhZ2luYXRpb249Z247Y29uc3QgcnQ9by51c2VNZW1vKCgpPT57aWYobT09PSExfHwhSWUucGFnZVNpemUpcmV0dXJuIEtlO2NvbnN0e2N1cnJlbnQ6WD0xLHRvdGFsOnNlLHBhZ2VTaXplOk1lPVhyfT1JZTtyZXR1cm4gS2UubGVuZ3RoPHNlP0tlLmxlbmd0aD5NZT9LZS5zbGljZSgoWC0xKSpNZSxYKk1lKTpLZTpLZS5zbGljZSgoWC0xKSpNZSxYKk1lKX0sWyEhbSxLZSxJZT09bnVsbD92b2lkIDA6SWUuY3VycmVudCxJZT09bnVsbD92b2lkIDA6SWUucGFnZVNpemUsSWU9PW51bGw/dm9pZCAwOkllLnRvdGFsXSksW3l0LHB0XT1UbCh7cHJlZml4Q2xzOkIsZGF0YTpLZSxwYWdlRGF0YTpydCxnZXRSb3dLZXk6ZGUsZ2V0UmVjb3JkQnlLZXk6R2UsZXhwYW5kVHlwZTpVZSxjaGlsZHJlbkNvbHVtbk5hbWU6WGUsbG9jYWxlOkJlLGdldFBvcHVwQ29udGFpbmVyOnd8fFl9LHUpLG90PShYLHNlLE1lKT0+e2xldCBqZTtyZXR1cm4gdHlwZW9mIHg9PSJmdW5jdGlvbiI/amU9bmUoKSh4KFgsc2UsTWUpKTpqZT1uZSgpKHgpLG5lKCkoe1tgJHtCfS1yb3ctc2VsZWN0ZWRgXTpwdC5oYXMoZGUoWCxzZSkpfSxqZSl9O3ZlLl9fUEFSRU5UX1JFTkRFUl9JQ09OX189dmUuZXhwYW5kSWNvbix2ZS5leHBhbmRJY29uPXZlLmV4cGFuZEljb258fFp8fFdsKEJlKSxVZT09PSJuZXN0IiYmdmUuZXhwYW5kSWNvbkNvbHVtbkluZGV4PT09dm9pZCAwP3ZlLmV4cGFuZEljb25Db2x1bW5JbmRleD11PzE6MDp2ZS5leHBhbmRJY29uQ29sdW1uSW5kZXg+MCYmdSYmKHZlLmV4cGFuZEljb25Db2x1bW5JbmRleC09MSksdHlwZW9mIHZlLmluZGVudFNpemUhPSJudW1iZXIiJiYodmUuaW5kZW50U2l6ZT10eXBlb2Ygej09Im51bWJlciI/ejoxNSk7Y29uc3QgbHQ9by51c2VDYWxsYmFjayhYPT5EdCh5dChPZShpZShYKSkpKSxbaWUsT2UseXRdKTtsZXQgYnQsanQ7aWYobSE9PSExJiYoSWUhPW51bGwmJkllLnRvdGFsKSl7bGV0IFg7SWUuc2l6ZT9YPUllLnNpemU6WD1KPT09InNtYWxsInx8Sj09PSJtaWRkbGUiPyJzbWFsbCI6dm9pZCAwO2NvbnN0IHNlPWF0PT5vLmNyZWF0ZUVsZW1lbnQoemwuWixPYmplY3QuYXNzaWduKHt9LEllLHtjbGFzc05hbWU6bmUoKShgJHtCfS1wYWdpbmF0aW9uICR7Qn0tcGFnaW5hdGlvbi0ke2F0fWAsSWUuY2xhc3NOYW1lKSxzaXplOlh9KSksTWU9YmU9PT0icnRsIj8ibGVmdCI6InJpZ2h0Iix7cG9zaXRpb246amV9PUllO2lmKGplIT09bnVsbCYmQXJyYXkuaXNBcnJheShqZSkpe2NvbnN0IGF0PWplLmZpbmQoSmU9PkplLmluY2x1ZGVzKCJ0b3AiKSksQ3Q9amUuZmluZChKZT0+SmUuaW5jbHVkZXMoImJvdHRvbSIpKSxUdD1qZS5ldmVyeShKZT0+YCR7SmV9YD09Im5vbmUiKTshYXQmJiFDdCYmIVR0JiYoanQ9c2UoTWUpKSxhdCYmKGJ0PXNlKGF0LnRvTG93ZXJDYXNlKCkucmVwbGFjZSgidG9wIiwiIikpKSxDdCYmKGp0PXNlKEN0LnRvTG93ZXJDYXNlKCkucmVwbGFjZSgiYm90dG9tIiwiIikpKX1lbHNlIGp0PXNlKE1lKX1sZXQga3Q7dHlwZW9mIFI9PSJib29sZWFuIj9rdD17c3Bpbm5pbmc6Un06dHlwZW9mIFI9PSJvYmplY3QiJiYoa3Q9T2JqZWN0LmFzc2lnbih7c3Bpbm5pbmc6ITB9LFIpKTtjb25zdCBOdD1uZSgpKENlLEgsYCR7Qn0td3JhcHBlcmAsbWU9PW51bGw/dm9pZCAwOm1lLmNsYXNzTmFtZSx7W2Ake0J9LXdyYXBwZXItcnRsYF06YmU9PT0icnRsIn0sYSxzLHRlKSxucj1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbWU9PW51bGw/dm9pZCAwOm1lLnN0eWxlKSxpKSxycj10eXBlb2YoTj09bnVsbD92b2lkIDA6Ti5lbXB0eVRleHQpIT0idW5kZWZpbmVkIj9OLmVtcHR5VGV4dDooRWU9PW51bGw/dm9pZCAwOkVlKCJUYWJsZSIpKXx8by5jcmVhdGVFbGVtZW50KEtsLlose2NvbXBvbmVudE5hbWU6IlRhYmxlIn0pLG9yPUM/aGE6Z2EsTm49e30sbHI9by51c2VNZW1vKCgpPT57Y29uc3R7Zm9udFNpemU6WCxsaW5lSGVpZ2h0OnNlLGxpbmVXaWR0aDpNZSxwYWRkaW5nOmplLHBhZGRpbmdYUzphdCxwYWRkaW5nU006Q3R9PU8sVHQ9TWF0aC5mbG9vcihYKnNlKTtzd2l0Y2goSil7Y2FzZSJtaWRkbGUiOnJldHVybiBDdCoyK1R0K01lO2Nhc2Uic21hbGwiOnJldHVybiBhdCoyK1R0K01lO2RlZmF1bHQ6cmV0dXJuIGplKjIrVHQrTWV9fSxbTyxKXSk7cmV0dXJuIEMmJihObi5saXN0SXRlbUhlaWdodD1sciksXyhvLmNyZWF0ZUVsZW1lbnQoImRpdiIse3JlZjpyZSxjbGFzc05hbWU6TnQsc3R5bGU6bnJ9LG8uY3JlYXRlRWxlbWVudChEbC5aLE9iamVjdC5hc3NpZ24oe3NwaW5uaW5nOiExfSxrdCksYnQsby5jcmVhdGVFbGVtZW50KG9yLE9iamVjdC5hc3NpZ24oe30sTm4sRyx7cmVmOlNlLGNvbHVtbnM6VSxkaXJlY3Rpb246YmUsZXhwYW5kYWJsZTp2ZSxwcmVmaXhDbHM6QixjbGFzc05hbWU6bmUoKSh7W2Ake0J9LW1pZGRsZWBdOko9PT0ibWlkZGxlIixbYCR7Qn0tc21hbGxgXTpKPT09InNtYWxsIixbYCR7Qn0tYm9yZGVyZWRgXTpkLFtgJHtCfS1lbXB0eWBdOnplLmxlbmd0aD09PTB9LENlLEgsdGUpLGRhdGE6cnQscm93S2V5OmRlLHJvd0NsYXNzTmFtZTpvdCxlbXB0eVRleHQ6cnIsaW50ZXJuYWxIb29rczp1ZSxpbnRlcm5hbFJlZnM6Syx0cmFuc2Zvcm1Db2x1bW5zOmx0LGdldENvbnRhaW5lcldpZHRoOkR9KSksanQpKSl9O3ZhciBMYT1vLmZvcndhcmRSZWYoRmEpO2NvbnN0IHphPShlLHQpPT57Y29uc3Qgbj1vLnVzZVJlZigwKTtyZXR1cm4gbi5jdXJyZW50Kz0xLG8uY3JlYXRlRWxlbWVudChMYSxPYmplY3QuYXNzaWduKHt9LGUse3JlZjp0LF9yZW5kZXJUaW1lczpuLmN1cnJlbnR9KSl9LFB0PW8uZm9yd2FyZFJlZih6YSk7UHQuU0VMRUNUSU9OX0NPTFVNTj1MdCxQdC5FWFBBTkRfQ09MVU1OPVdlLFB0LlNFTEVDVElPTl9BTEw9WG4sUHQuU0VMRUNUSU9OX0lOVkVSVD1VbixQdC5TRUxFQ1RJT05fTk9ORT1HbixQdC5Db2x1bW49U2wsUHQuQ29sdW1uR3JvdXA9d2wsUHQuU3VtbWFyeT1jdDt2YXIgRGE9UHQsamE9RGF9LDIwODYzOmZ1bmN0aW9uKEJuLEF0LFMpe1MuZChBdCx7WjpmdW5jdGlvbigpe3JldHVybiBGbn19KTt2YXIgbz1TKDcwNTkzKSxXZT1TKDc0OTAyKSx1ZT1TKDY3Mjk0KSxjZT1TKDI2OTExKSxldD1TKDk1NTkxKSxaZT1TKDMyMzE5KSx1dD1TKDkzOTY3KSxndD1TLm4odXQpLGZ0PVMoMTAyMjUpLFJlPVMoMTA4OSksVGU9Uyg1MzEyNCksT3Q9UygyOTc1MSksd3Q9UygzMzYwMyksV3Q9UygyOTY5MSkseG49Uyg0MDU2MSk7Y29uc3QgS249NDtmdW5jdGlvbiB1cihnZSl7Y29uc3R7ZHJvcFBvc2l0aW9uOkhlLGRyb3BMZXZlbE9mZnNldDprZSxwcmVmaXhDbHM6bGUsaW5kZW50OmhlLGRpcmVjdGlvbjphZT0ibHRyIn09Z2UsJGU9YWU9PT0ibHRyIj8ibGVmdCI6InJpZ2h0IixGZT1hZT09PSJsdHIiPyJyaWdodCI6ImxlZnQiLHR0PXtbJGVdOi1rZSpoZStLbixbRmVdOjB9O3N3aXRjaChIZSl7Y2FzZS0xOnR0LnRvcD0tMzticmVhaztjYXNlIDE6dHQuYm90dG9tPS0zO2JyZWFrO2RlZmF1bHQ6dHQuYm90dG9tPS0zLHR0WyRlXT1oZStLbjticmVha31yZXR1cm4gdWUuY3JlYXRlRWxlbWVudCgiZGl2Iix7c3R5bGU6dHQsY2xhc3NOYW1lOmAke2xlfS1kcm9wLWluZGljYXRvcmB9KX12YXIgYW49dXIseW49Uyg2MTYzOSksYm49dWUuZm9yd2FyZFJlZigoZ2UsSGUpPT57dmFyIGtlO2NvbnN0e2dldFByZWZpeENsczpsZSxkaXJlY3Rpb246aGUsdmlydHVhbDphZSx0cmVlOiRlfT11ZS51c2VDb250ZXh0KFRlLkVfKSx7cHJlZml4Q2xzOkZlLGNsYXNzTmFtZTp0dCxzaG93SWNvbjppdD0hMSxzaG93TGluZTpSdCxzd2l0Y2hlckljb246X3Qsc3dpdGNoZXJMb2FkaW5nSWNvbjplbixibG9ja05vZGU6JHQ9ITEsY2hpbGRyZW46WHQsY2hlY2thYmxlOlV0PSExLHNlbGVjdGFibGU6QnQ9ITAsZHJhZ2dhYmxlOlp0LG1vdGlvbjptdCxzdHlsZTpjbn09Z2UsaHQ9bGUoInRyZWUiLEZlKSxHdD1sZSgpLEt0PW10IT1udWxsP210Ok9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwoMCx3dC5aKShHdCkpLHttb3Rpb25BcHBlYXI6ITF9KSxkbj1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZ2UpLHtjaGVja2FibGU6VXQsc2VsZWN0YWJsZTpCdCxzaG93SWNvbjppdCxtb3Rpb246S3QsYmxvY2tOb2RlOiR0LHNob3dMaW5lOiEhUnQsZHJvcEluZGljYXRvclJlbmRlcjphbn0pLFtzdCxjdCx2dF09KDAseG4uWlApKGh0KSxbLE10XT0oMCxXdC5aUCkoKSxIdD1NdC5wYWRkaW5nWFMvMisoKChrZT1NdC5UcmVlKT09PW51bGx8fGtlPT09dm9pZCAwP3ZvaWQgMDprZS50aXRsZUhlaWdodCl8fE10LmNvbnRyb2xIZWlnaHRTTSksRnQ9dWUudXNlTWVtbygoKT0+e2lmKCFadClyZXR1cm4hMTtsZXQgX2U9e307c3dpdGNoKHR5cGVvZiBadCl7Y2FzZSJmdW5jdGlvbiI6X2Uubm9kZURyYWdnYWJsZT1adDticmVhaztjYXNlIm9iamVjdCI6X2U9T2JqZWN0LmFzc2lnbih7fSxadCk7YnJlYWs7ZGVmYXVsdDpicmVha31yZXR1cm4gX2UuaWNvbiE9PSExJiYoX2UuaWNvbj1fZS5pY29ufHx1ZS5jcmVhdGVFbGVtZW50KE90LlosbnVsbCkpLF9lfSxbWnRdKSxkdD1fZT0+dWUuY3JlYXRlRWxlbWVudCh5bi5aLHtwcmVmaXhDbHM6aHQsc3dpdGNoZXJJY29uOl90LHN3aXRjaGVyTG9hZGluZ0ljb246ZW4sdHJlZU5vZGVQcm9wczpfZSxzaG93TGluZTpSdH0pO3JldHVybiBzdCh1ZS5jcmVhdGVFbGVtZW50KG8uWlAsT2JqZWN0LmFzc2lnbih7aXRlbUhlaWdodDpIdCxyZWY6SGUsdmlydHVhbDphZX0sZG4se3N0eWxlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwkZT09bnVsbD92b2lkIDA6JGUuc3R5bGUpLGNuKSxwcmVmaXhDbHM6aHQsY2xhc3NOYW1lOmd0KCkoe1tgJHtodH0taWNvbi1oaWRlYF06IWl0LFtgJHtodH0tYmxvY2stbm9kZWBdOiR0LFtgJHtodH0tdW5zZWxlY3RhYmxlYF06IUJ0LFtgJHtodH0tcnRsYF06aGU9PT0icnRsIn0sJGU9PW51bGw/dm9pZCAwOiRlLmNsYXNzTmFtZSx0dCxjdCx2dCksZGlyZWN0aW9uOmhlLGNoZWNrYWJsZTpVdCYmdWUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpgJHtodH0tY2hlY2tib3gtaW5uZXJgfSksc2VsZWN0YWJsZTpCdCxzd2l0Y2hlckljb246ZHQsZHJhZ2dhYmxlOkZ0fSksWHQpKX0pO2NvbnN0IENuPTAsQWU9MSxNbj0yO2Z1bmN0aW9uIFNuKGdlLEhlLGtlKXtjb25zdHtrZXk6bGUsY2hpbGRyZW46aGV9PWtlO2Z1bmN0aW9uIGFlKCRlKXtjb25zdCBGZT0kZVtsZV0sdHQ9JGVbaGVdO0hlKEZlLCRlKSE9PSExJiZTbih0dHx8W10sSGUsa2UpfWdlLmZvckVhY2goYWUpfWZ1bmN0aW9uIGZyKGdlKXtsZXR7dHJlZURhdGE6SGUsZXhwYW5kZWRLZXlzOmtlLHN0YXJ0S2V5OmxlLGVuZEtleTpoZSxmaWVsZE5hbWVzOmFlfT1nZTtjb25zdCAkZT1bXTtsZXQgRmU9Q247aWYobGUmJmxlPT09aGUpcmV0dXJuW2xlXTtpZighbGV8fCFoZSlyZXR1cm5bXTtmdW5jdGlvbiB0dChpdCl7cmV0dXJuIGl0PT09bGV8fGl0PT09aGV9cmV0dXJuIFNuKEhlLGl0PT57aWYoRmU9PT1NbilyZXR1cm4hMTtpZih0dChpdCkpe2lmKCRlLnB1c2goaXQpLEZlPT09Q24pRmU9QWU7ZWxzZSBpZihGZT09PUFlKXJldHVybiBGZT1NbiwhMX1lbHNlIEZlPT09QWUmJiRlLnB1c2goaXQpO3JldHVybiBrZS5pbmNsdWRlcyhpdCl9LCgwLFJlLnckKShhZSkpLCRlfWZ1bmN0aW9uIEV0KGdlLEhlLGtlKXtjb25zdCBsZT0oMCxXZS5aKShIZSksaGU9W107cmV0dXJuIFNuKGdlLChhZSwkZSk9Pntjb25zdCBGZT1sZS5pbmRleE9mKGFlKTtyZXR1cm4gRmUhPT0tMSYmKGhlLnB1c2goJGUpLGxlLnNwbGljZShGZSwxKSksISFsZS5sZW5ndGh9LCgwLFJlLnckKShrZSkpLGhlfXZhciBMPWZ1bmN0aW9uKGdlLEhlKXt2YXIga2U9e307Zm9yKHZhciBsZSBpbiBnZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZ2UsbGUpJiZIZS5pbmRleE9mKGxlKTwwJiYoa2VbbGVdPWdlW2xlXSk7aWYoZ2UhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgaGU9MCxsZT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGdlKTtoZTxsZS5sZW5ndGg7aGUrKylIZS5pbmRleE9mKGxlW2hlXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGdlLGxlW2hlXSkmJihrZVtsZVtoZV1dPWdlW2xlW2hlXV0pO3JldHVybiBrZX07ZnVuY3Rpb24gcShnZSl7Y29uc3R7aXNMZWFmOkhlLGV4cGFuZGVkOmtlfT1nZTtyZXR1cm4gSGU/dWUuY3JlYXRlRWxlbWVudChjZS5aLG51bGwpOmtlP3VlLmNyZWF0ZUVsZW1lbnQoZXQuWixudWxsKTp1ZS5jcmVhdGVFbGVtZW50KFplLlosbnVsbCl9ZnVuY3Rpb24gd24oZ2Upe2xldHt0cmVlRGF0YTpIZSxjaGlsZHJlbjprZX09Z2U7cmV0dXJuIEhlfHwoMCxSZS56bikoa2UpfWNvbnN0IG5lPShnZSxIZSk9Pnt2YXJ7ZGVmYXVsdEV4cGFuZEFsbDprZSxkZWZhdWx0RXhwYW5kUGFyZW50OmxlLGRlZmF1bHRFeHBhbmRlZEtleXM6aGV9PWdlLGFlPUwoZ2UsWyJkZWZhdWx0RXhwYW5kQWxsIiwiZGVmYXVsdEV4cGFuZFBhcmVudCIsImRlZmF1bHRFeHBhbmRlZEtleXMiXSk7Y29uc3QgJGU9dWUudXNlUmVmKG51bGwpLEZlPXVlLnVzZVJlZihudWxsKSx0dD0oKT0+e2NvbnN0e2tleUVudGl0aWVzOnN0fT0oMCxSZS5JOCkod24oYWUpKTtsZXQgY3Q7cmV0dXJuIGtlP2N0PU9iamVjdC5rZXlzKHN0KTpsZT9jdD0oMCxmdC5yNykoYWUuZXhwYW5kZWRLZXlzfHxoZXx8W10sc3QpOmN0PWFlLmV4cGFuZGVkS2V5c3x8aGV8fFtdLGN0fSxbaXQsUnRdPXVlLnVzZVN0YXRlKGFlLnNlbGVjdGVkS2V5c3x8YWUuZGVmYXVsdFNlbGVjdGVkS2V5c3x8W10pLFtfdCxlbl09dWUudXNlU3RhdGUoKCk9PnR0KCkpO3VlLnVzZUVmZmVjdCgoKT0+eyJzZWxlY3RlZEtleXMiaW4gYWUmJlJ0KGFlLnNlbGVjdGVkS2V5cyl9LFthZS5zZWxlY3RlZEtleXNdKSx1ZS51c2VFZmZlY3QoKCk9PnsiZXhwYW5kZWRLZXlzImluIGFlJiZlbihhZS5leHBhbmRlZEtleXMpfSxbYWUuZXhwYW5kZWRLZXlzXSk7Y29uc3QgJHQ9KHN0LGN0KT0+e3ZhciB2dDtyZXR1cm4iZXhwYW5kZWRLZXlzImluIGFlfHxlbihzdCksKHZ0PWFlLm9uRXhwYW5kKT09PW51bGx8fHZ0PT09dm9pZCAwP3ZvaWQgMDp2dC5jYWxsKGFlLHN0LGN0KX0sWHQ9KHN0LGN0KT0+e3ZhciB2dDtjb25zdHttdWx0aXBsZTpNdCxmaWVsZE5hbWVzOkh0fT1hZSx7bm9kZTpGdCxuYXRpdmVFdmVudDpkdH09Y3Qse2tleTpfZT0iIn09RnQsWXQ9d24oYWUpLEp0PU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxjdCkse3NlbGVjdGVkOiEwfSksTG49KGR0PT1udWxsP3ZvaWQgMDpkdC5jdHJsS2V5KXx8KGR0PT1udWxsP3ZvaWQgMDpkdC5tZXRhS2V5KSxSbj1kdD09bnVsbD92b2lkIDA6ZHQuc2hpZnRLZXk7bGV0IHh0O010JiZMbj8oeHQ9c3QsJGUuY3VycmVudD1fZSxGZS5jdXJyZW50PXh0LEp0LnNlbGVjdGVkTm9kZXM9RXQoWXQseHQsSHQpKTpNdCYmUm4/KHh0PUFycmF5LmZyb20obmV3IFNldChbXS5jb25jYXQoKDAsV2UuWikoRmUuY3VycmVudHx8W10pLCgwLFdlLlopKGZyKHt0cmVlRGF0YTpZdCxleHBhbmRlZEtleXM6X3Qsc3RhcnRLZXk6X2UsZW5kS2V5OiRlLmN1cnJlbnQsZmllbGROYW1lczpIdH0pKSkpKSxKdC5zZWxlY3RlZE5vZGVzPUV0KFl0LHh0LEh0KSk6KHh0PVtfZV0sJGUuY3VycmVudD1fZSxGZS5jdXJyZW50PXh0LEp0LnNlbGVjdGVkTm9kZXM9RXQoWXQseHQsSHQpKSwodnQ9YWUub25TZWxlY3QpPT09bnVsbHx8dnQ9PT12b2lkIDB8fHZ0LmNhbGwoYWUseHQsSnQpLCJzZWxlY3RlZEtleXMiaW4gYWV8fFJ0KHh0KX0se2dldFByZWZpeENsczpVdCxkaXJlY3Rpb246QnR9PXVlLnVzZUNvbnRleHQoVGUuRV8pLHtwcmVmaXhDbHM6WnQsY2xhc3NOYW1lOm10LHNob3dJY29uOmNuPSEwLGV4cGFuZEFjdGlvbjpodD0iY2xpY2sifT1hZSxHdD1MKGFlLFsicHJlZml4Q2xzIiwiY2xhc3NOYW1lIiwic2hvd0ljb24iLCJleHBhbmRBY3Rpb24iXSksS3Q9VXQoInRyZWUiLFp0KSxkbj1ndCgpKGAke0t0fS1kaXJlY3RvcnlgLHtbYCR7S3R9LWRpcmVjdG9yeS1ydGxgXTpCdD09PSJydGwifSxtdCk7cmV0dXJuIHVlLmNyZWF0ZUVsZW1lbnQoYm4sT2JqZWN0LmFzc2lnbih7aWNvbjpxLHJlZjpIZSxibG9ja05vZGU6ITB9LEd0LHtzaG93SWNvbjpjbixleHBhbmRBY3Rpb246aHQscHJlZml4Q2xzOkt0LGNsYXNzTmFtZTpkbixleHBhbmRlZEtleXM6X3Qsc2VsZWN0ZWRLZXlzOml0LG9uU2VsZWN0Olh0LG9uRXhwYW5kOiR0fSkpfTt2YXIgc249dWUuZm9yd2FyZFJlZihuZSk7Y29uc3QgRW49Ym47RW4uRGlyZWN0b3J5VHJlZT1zbixFbi5UcmVlTm9kZT1vLk9GO3ZhciBGbj1Fbn0sNzkzNzA6ZnVuY3Rpb24oQm4sQXQsUyl7Uy5kKEF0LHtHOmZ1bmN0aW9uKCl7cmV0dXJuIGNlfX0pO3ZhciBvPVMoOTg5MjQpLFdlPWZ1bmN0aW9uKFplKXtpZigoMCxvLlopKCkmJndpbmRvdy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpe3ZhciB1dD1BcnJheS5pc0FycmF5KFplKT9aZTpbWmVdLGd0PXdpbmRvdy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7cmV0dXJuIHV0LnNvbWUoZnVuY3Rpb24oZnQpe3JldHVybiBmdCBpbiBndC5zdHlsZX0pfXJldHVybiExfSx1ZT1mdW5jdGlvbihaZSx1dCl7aWYoIVdlKFplKSlyZXR1cm4hMTt2YXIgZ3Q9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksZnQ9Z3Quc3R5bGVbWmVdO3JldHVybiBndC5zdHlsZVtaZV09dXQsZ3Quc3R5bGVbWmVdIT09ZnR9O2Z1bmN0aW9uIGNlKGV0LFplKXtyZXR1cm4hQXJyYXkuaXNBcnJheShldCkmJlplIT09dm9pZCAwP3VlKGV0LFplKTpXZShldCl9fX1dKTsKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNjM3NC5mZGQ2MGIwNC5hc3luYy5qcyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNjM3NC5mZGQ2MGIwNC5hc3luYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOGZjNDc1Ci0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy82Mzc0LmZkZDYwYjA0LmFzeW5jLmpzCkBAIC0wLDAgKzEgQEAKKyJ1c2Ugc3RyaWN0Ijsoc2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Bybz1zZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvfHxbXSkucHVzaChbWzYzNzRdLHs5NDE2MjpmdW5jdGlvbihxLFcsZSl7dmFyIEs9ZSg2NDU5OSksbz1lLm4oSyksJD1lKDY3Mjk0KSx0PWUoNjYzMDkpLEc9ZSg4NTg5MyksUD1mdW5jdGlvbihzKXtmdW5jdGlvbiBDKGQpe3N3aXRjaChkKXtjYXNlInByaW1hcnkiOnJldHVybiJibHVlIjtjYXNlInN1Y2Nlc3MiOnJldHVybiJzdWNjZXNzIjtjYXNlImluZm8iOnJldHVybiJncmVlbiI7Y2FzZSJ3YXJuaW5nIjpyZXR1cm4id2FybmluZyI7Y2FzZSJkYW5nZXIiOnJldHVybiJlcnJvciI7Y2FzZSJkZWZhdWx0IjpkZWZhdWx0OnJldHVybiJkZWZhdWx0In19ZnVuY3Rpb24gYyhkKXtpZihkPT09dm9pZCAwKXJldHVybiIiO2lmKHMuZW51bXMpe3ZhciBGPXMuZW51bXNbZF07cmV0dXJuIEYubGFiZWx9aWYocy5vcHRpb25zKXtpZighQXJyYXkuaXNBcnJheShzLm9wdGlvbnMpKXJldHVybiBjb25zb2xlLmxvZygiRGljdFRhZyBvcHRpb25zIGlzIG5vIGFycmF5ISIpLCIiO3ZhciBsPW8oKShzLm9wdGlvbnMpLG07dHJ5e2ZvcihsLnMoKTshKG09bC5uKCkpLmRvbmU7KXt2YXIgaj1tLnZhbHVlO2lmKGoudmFsdWU9PT1kKXJldHVybiBqLnRleHR9fWNhdGNoKEwpe2wuZShMKX1maW5hbGx5e2wuZigpfX1yZXR1cm4gU3RyaW5nKHMudmFsdWUpfWZ1bmN0aW9uIHAoZCl7aWYoZD09PXZvaWQgMClyZXR1cm4iZGVmYXVsdCI7aWYocy5lbnVtcyl7dmFyIEY9cy5lbnVtc1tkXTtyZXR1cm4gRi5saXN0Q2xhc3N8fCJkZWZhdWx0In1pZihzLm9wdGlvbnMpe2lmKCFBcnJheS5pc0FycmF5KHMub3B0aW9ucykpcmV0dXJuIGNvbnNvbGUubG9nKCJEaWN0VGFnIG9wdGlvbnMgaXMgbm8gYXJyYXkhIiksImRlZmF1bHQiO3ZhciBsPW8oKShzLm9wdGlvbnMpLG07dHJ5e2ZvcihsLnMoKTshKG09bC5uKCkpLmRvbmU7KXt2YXIgaj1tLnZhbHVlO2lmKGoudmFsdWU9PT1kKXJldHVybiBqLmxpc3RDbGFzc3x8ImRlZmF1bHQifX1jYXRjaChMKXtsLmUoTCl9ZmluYWxseXtsLmYoKX19cmV0dXJuIFN0cmluZyhzLnZhbHVlKX12YXIgUj1mdW5jdGlvbigpe3JldHVybiBDKHAocy52YWx1ZSkudG9Mb3dlckNhc2UoKSl9LE49ZnVuY3Rpb24oKXtyZXR1cm4gYyhzLnZhbHVlKX07cmV0dXJuKDAsRy5qc3gpKHQuWix7Y29sb3I6UigpLGNoaWxkcmVuOk4oKX0pfTtXLlo9UH0sMzM4Njc6ZnVuY3Rpb24ocSxXLGUpe2UuZChXLHtpSzpmdW5jdGlvbigpe3JldHVybiBLfSx6YzpmdW5jdGlvbigpe3JldHVybiAkfX0pO3ZhciBLPWZ1bmN0aW9uKHQpe3JldHVybiB0W3QuU1VDQ0VTUz0yMDBdPSJTVUNDRVNTIix0W3QuRVJST1I9LTFdPSJFUlJPUiIsdFt0LlRJTUVPVVQ9NDAxXT0iVElNRU9VVCIsdC5UWVBFPSJzdWNjZXNzIix0fSh7fSksbz1mdW5jdGlvbih0KXtyZXR1cm4gdC5HRVQ9IkdFVCIsdC5QT1NUPSJQT1NUIix0LlBVVD0iUFVUIix0LkRFTEVURT0iREVMRVRFIix0fSh7fSksJD1mdW5jdGlvbih0KXtyZXR1cm4gdC5KU09OPSJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgiLHQuRk9STV9VUkxFTkNPREVEPSJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD1VVEYtOCIsdC5GT1JNX0RBVEE9Im11bHRpcGFydC9mb3JtLWRhdGE7Y2hhcnNldD1VVEYtOCIsdH0oe30pfSw3OTg4MzpmdW5jdGlvbihxLFcsZSl7ZS5yKFcpO3ZhciBLPWUoMTUwMDkpLG89ZS5uKEspLCQ9ZSg5OTI4OSksdD1lLm4oJCksRz1lKDU1NzQpLFA9ZS5uKEcpLE89ZSg2NzI5NCkscz1lKDk3MjY5KSxDPWUoMzExOTkpLGM9ZSg1OTY2KSxwPWUoNjQzMTcpLFI9ZSg4NjYxNSksTj1lKDkwNjcyKSxkPWUoOTk4NTkpLEY9ZSgxNzc4OCksbD1lKDc2NzcyKSxtPWUoODU4OTMpLGo9ZnVuY3Rpb24oXyl7dmFyIFQ9ZC5aLnVzZUZvcm0oKSx6PVAoKShULDEpLEg9elswXSxYPV8ubm90aWNlVHlwZU9wdGlvbnMsSj1fLnN0YXR1c09wdGlvbnM7KDAsTy51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7SC5yZXNldEZpZWxkcygpLEguc2V0RmllbGRzVmFsdWUoe25vdGljZUlkOl8udmFsdWVzLm5vdGljZUlkLG5vdGljZVRpdGxlOl8udmFsdWVzLm5vdGljZVRpdGxlLG5vdGljZVR5cGU6Xy52YWx1ZXMubm90aWNlVHlwZSxub3RpY2VDb250ZW50Ol8udmFsdWVzLm5vdGljZUNvbnRlbnQsc3RhdHVzOl8udmFsdWVzLnN0YXR1cyxjcmVhdGVCeTpfLnZhbHVlcy5jcmVhdGVCeSxjcmVhdGVUaW1lOl8udmFsdWVzLmNyZWF0ZVRpbWUsdXBkYXRlQnk6Xy52YWx1ZXMudXBkYXRlQnksdXBkYXRlVGltZTpfLnZhbHVlcy51cGRhdGVUaW1lLHJlbWFyazpfLnZhbHVlcy5yZW1hcmt9KX0sW0gsX10pO3ZhciB1PSgwLGwudXNlSW50bCkoKSx2PWZ1bmN0aW9uKCl7SC5zdWJtaXQoKX0sST1mdW5jdGlvbigpe18ub25DYW5jZWwoKX0saT1mdW5jdGlvbigpe3ZhciBTPXQoKShvKCkoKS5tYXJrKGZ1bmN0aW9uIFkobil7cmV0dXJuIG8oKSgpLndyYXAoZnVuY3Rpb24oZWUpe2Zvcig7Oylzd2l0Y2goZWUucHJldj1lZS5uZXh0KXtjYXNlIDA6Xy5vblN1Ym1pdChuKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBlZS5zdG9wKCl9fSxZKX0pKTtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIFMuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKTtyZXR1cm4oMCxtLmpzeCkoRi5aLHt3aWR0aDo2NDAsdGl0bGU6dS5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLm5vdGljZS50aXRsZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1N0YxNlx1OEY5MVx1OTAxQVx1NzdFNVx1NTE2Q1x1NTQ0QSJ9KSxmb3JjZVJlbmRlcjohMCxvcGVuOl8ub3BlbixkZXN0cm95T25DbG9zZTohMCxvbk9rOnYsb25DYW5jZWw6SSxjaGlsZHJlbjooMCxtLmpzeHMpKHMuQSx7Zm9ybTpILGdyaWQ6ITAsc3VibWl0dGVyOiExLGxheW91dDoiaG9yaXpvbnRhbCIsb25GaW5pc2g6aSxjaGlsZHJlbjpbKDAsbS5qc3gpKEMuWix7bmFtZToibm90aWNlSWQiLGxhYmVsOnUuZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5ub3RpY2Uubm90aWNlX2lkIixkZWZhdWx0TWVzc2FnZToiXHU1MTZDXHU1NDRBXHU3RjE2XHU1M0Y3In0pLGNvbFByb3BzOnttZDoxMix4bDoyNH0scGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NTE2Q1x1NTQ0QVx1N0YxNlx1NTNGNyIsZGlzYWJsZWQ6ITAsaGlkZGVuOiEwLHJ1bGVzOlt7cmVxdWlyZWQ6ITEsbWVzc2FnZTooMCxtLmpzeCkobC5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU1MTZDXHU1NDRBXHU3RjE2XHU1M0Y3XHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU1MTZDXHU1NDRBXHU3RjE2XHU1M0Y3XHVGRjAxIn0pfV19KSwoMCxtLmpzeCkoYy5aLHtuYW1lOiJub3RpY2VUaXRsZSIsbGFiZWw6dS5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLm5vdGljZS5ub3RpY2VfdGl0bGUiLGRlZmF1bHRNZXNzYWdlOiJcdTUxNkNcdTU0NEFcdTY4MDdcdTk4OTgifSkscGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NTE2Q1x1NTQ0QVx1NjgwN1x1OTg5OCIscnVsZXM6W3tyZXF1aXJlZDohMCxtZXNzYWdlOigwLG0uanN4KShsLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTUxNkNcdTU0NEFcdTY4MDdcdTk4OThcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTUxNkNcdTU0NEFcdTY4MDdcdTk4OThcdUZGMDEifSl9XX0pLCgwLG0uanN4KShwLlose3ZhbHVlRW51bTpYLG5hbWU6Im5vdGljZVR5cGUiLGxhYmVsOnUuZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5ub3RpY2Uubm90aWNlX3R5cGUiLGRlZmF1bHRNZXNzYWdlOiJcdTUxNkNcdTU0NEFcdTdDN0JcdTU3OEIifSksY29sUHJvcHM6e21kOjEyLHhsOjI0fSxwbGFjZWhvbGRlcjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU1MTZDXHU1NDRBXHU3QzdCXHU1NzhCIixydWxlczpbe3JlcXVpcmVkOiEwLG1lc3NhZ2U6KDAsbS5qc3gpKGwuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NTE2Q1x1NTQ0QVx1N0M3Qlx1NTc4Qlx1RkYwMSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NTE2Q1x1NTQ0QVx1N0M3Qlx1NTc4Qlx1RkYwMSJ9KX1dfSksKDAsbS5qc3gpKFIuWi5Hcm91cCx7dmFsdWVFbnVtOkosbmFtZToic3RhdHVzIixsYWJlbDp1LmZvcm1hdE1lc3NhZ2Uoe2lkOiJzeXN0ZW0ubm90aWNlLnN0YXR1cyIsZGVmYXVsdE1lc3NhZ2U6Ilx1NTE2Q1x1NTQ0QVx1NzJCNlx1NjAwMSJ9KSxjb2xQcm9wczp7bWQ6MTIseGw6MjR9LHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdTUxNkNcdTU0NEFcdTcyQjZcdTYwMDEiLHJ1bGVzOlt7cmVxdWlyZWQ6ITEsbWVzc2FnZTooMCxtLmpzeCkobC5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU1MTZDXHU1NDRBXHU3MkI2XHU2MDAxXHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU1MTZDXHU1NDRBXHU3MkI2XHU2MDAxXHVGRjAxIn0pfV19KSwoMCxtLmpzeCkoTi5aLHtuYW1lOiJub3RpY2VDb250ZW50IixsYWJlbDp1LmZvcm1hdE1lc3NhZ2Uoe2lkOiJzeXN0ZW0ubm90aWNlLm5vdGljZV9jb250ZW50IixkZWZhdWx0TWVzc2FnZToiXHU1MTZDXHU1NDRBXHU1MTg1XHU1QkI5In0pLGNvbFByb3BzOnttZDoxMix4bDoyNH0scGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NTE2Q1x1NTQ0QVx1NTE4NVx1NUJCOSIscnVsZXM6W3tyZXF1aXJlZDohMSxtZXNzYWdlOigwLG0uanN4KShsLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTUxNkNcdTU0NEFcdTUxODVcdTVCQjlcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTUxNkNcdTU0NEFcdTUxODVcdTVCQjlcdUZGMDEifSl9XX0pLCgwLG0uanN4KShjLlose25hbWU6InJlbWFyayIsbGFiZWw6dS5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLm5vdGljZS5yZW1hcmsiLGRlZmF1bHRNZXNzYWdlOiJcdTU5MDdcdTZDRTgifSksY29sUHJvcHM6e21kOjEyLHhsOjI0fSxwbGFjZWhvbGRlcjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU1OTA3XHU2Q0U4IixydWxlczpbe3JlcXVpcmVkOiExLG1lc3NhZ2U6KDAsbS5qc3gpKGwuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NTkwN1x1NkNFOFx1RkYwMSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NTkwN1x1NkNFOFx1RkYwMSJ9KX1dfSldfSl9KX07Vy5kZWZhdWx0PWp9LDM2Mzc0OmZ1bmN0aW9uKHEsVyxlKXtlLnIoVyksZS5kKFcse2RlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4gaGV9fSk7dmFyIEs9ZSg1NTc0KSxvPWUubihLKSwkPWUoMTUwMDkpLHQ9ZS5uKCQpLEc9ZSg5Nzg1NyksUD1lLm4oRyksTz1lKDk5Mjg5KSxzPWUubihPKSxDPWUoNjcyOTQpLGM9ZSg3Njc3MikscD1lKDI0NTMpLFI9ZSg4MzYyMiksTj1lKDE3Nzg4KSxkPWUoNjExMCksRj1lKDY1Mzg1KSxsPWUoMjIzNiksbT1lKDI0OTY5KSxqPWUoMTE0NzUpLEw9ZSg0ODY4OSk7ZnVuY3Rpb24gXyhmKXtyZXR1cm4gVC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gVCgpe3JldHVybiBUPXMoKSh0KCkoKS5tYXJrKGZ1bmN0aW9uIGYoaCl7cmV0dXJuIHQoKSgpLndyYXAoZnVuY3Rpb24oYSl7Zm9yKDs7KXN3aXRjaChhLnByZXY9YS5uZXh0KXtjYXNlIDA6cmV0dXJuIGEuYWJydXB0KCJyZXR1cm4iLCgwLGMucmVxdWVzdCkoIi9hcGkvc3lzdGVtL25vdGljZS9saXN0Iix7bWV0aG9kOiJHRVQiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgifSxwYXJhbXM6aH0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBhLnN0b3AoKX19LGYpfSkpLFQuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHooZil7cmV0dXJuIHJlcXVlc3QoIi9hcGkvc3lzdGVtL25vdGljZS8iLmNvbmNhdChmKSx7bWV0aG9kOiJHRVQifSl9ZnVuY3Rpb24gSChmKXtyZXR1cm4gWC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gWCgpe3JldHVybiBYPXMoKSh0KCkoKS5tYXJrKGZ1bmN0aW9uIGYoaCl7cmV0dXJuIHQoKSgpLndyYXAoZnVuY3Rpb24oYSl7Zm9yKDs7KXN3aXRjaChhLnByZXY9YS5uZXh0KXtjYXNlIDA6cmV0dXJuIGEuYWJydXB0KCJyZXR1cm4iLCgwLGMucmVxdWVzdCkoIi9hcGkvc3lzdGVtL25vdGljZSIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCJ9LGRhdGE6aH0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBhLnN0b3AoKX19LGYpfSkpLFguYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEooZil7cmV0dXJuIHUuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHUoKXtyZXR1cm4gdT1zKCkodCgpKCkubWFyayhmdW5jdGlvbiBmKGgpe3JldHVybiB0KCkoKS53cmFwKGZ1bmN0aW9uKGEpe2Zvcig7Oylzd2l0Y2goYS5wcmV2PWEubmV4dCl7Y2FzZSAwOnJldHVybiBhLmFicnVwdCgicmV0dXJuIiwoMCxjLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS9ub3RpY2UiLHttZXRob2Q6IlBVVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCJ9LGRhdGE6aH0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBhLnN0b3AoKX19LGYpfSkpLHUuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHYoZil7cmV0dXJuIEkuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEkoKXtyZXR1cm4gST1zKCkodCgpKCkubWFyayhmdW5jdGlvbiBmKGgpe3JldHVybiB0KCkoKS53cmFwKGZ1bmN0aW9uKGEpe2Zvcig7Oylzd2l0Y2goYS5wcmV2PWEubmV4dCl7Y2FzZSAwOnJldHVybiBhLmFicnVwdCgicmV0dXJuIiwoMCxjLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS9ub3RpY2UvIi5jb25jYXQoaCkse21ldGhvZDoiREVMRVRFIn0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBhLnN0b3AoKX19LGYpfSkpLEkuYXBwbHkodGhpcyxhcmd1bWVudHMpfXZhciBpPWUoNzk4ODMpLFM9ZSg5Mjk4MiksWT1lKDk0MTYyKSxuPWUoODU4OTMpLHk9ZnVuY3Rpb24oKXt2YXIgZj1zKCkodCgpKCkubWFyayhmdW5jdGlvbiBoKEUpe3ZhciBhLEE7cmV0dXJuIHQoKSgpLndyYXAoZnVuY3Rpb24ocil7Zm9yKDs7KXN3aXRjaChyLnByZXY9ci5uZXh0KXtjYXNlIDA6cmV0dXJuIGE9cC5aUC5sb2FkaW5nKCJcdTZCNjNcdTU3MjhcdTZERkJcdTUyQTAiKSxyLnByZXY9MSxyLm5leHQ9NCxIKFAoKSh7fSxFKSk7Y2FzZSA0OnJldHVybiBBPXIuc2VudCxhKCksQS5jb2RlPT09MjAwP3AuWlAuc3VjY2VzcygiXHU2REZCXHU1MkEwXHU2MjEwXHU1MjlGIik6cC5aUC5lcnJvcihBLm1zZyksci5hYnJ1cHQoInJldHVybiIsITApO2Nhc2UgMTA6cmV0dXJuIHIucHJldj0xMCxyLnQwPXIuY2F0Y2goMSksYSgpLHAuWlAuZXJyb3IoIlx1NkRGQlx1NTJBMFx1NTkzMVx1OEQyNVx1OEJGN1x1OTFDRFx1OEJENVx1RkYwMSIpLHIuYWJydXB0KCJyZXR1cm4iLCExKTtjYXNlIDE1OmNhc2UiZW5kIjpyZXR1cm4gci5zdG9wKCl9fSxoLG51bGwsW1sxLDEwXV0pfSkpO3JldHVybiBmdW5jdGlvbihFKXtyZXR1cm4gZi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLGVlPWZ1bmN0aW9uKCl7dmFyIGY9cygpKHQoKSgpLm1hcmsoZnVuY3Rpb24gaChFKXt2YXIgYSxBO3JldHVybiB0KCkoKS53cmFwKGZ1bmN0aW9uKHIpe2Zvcig7Oylzd2l0Y2goci5wcmV2PXIubmV4dCl7Y2FzZSAwOnJldHVybiBhPXAuWlAubG9hZGluZygiXHU2QjYzXHU1NzI4XHU2NkY0XHU2NUIwIiksci5wcmV2PTEsci5uZXh0PTQsSihFKTtjYXNlIDQ6cmV0dXJuIEE9ci5zZW50LGEoKSxBLmNvZGU9PT0yMDA/cC5aUC5zdWNjZXNzKCJcdTY2RjRcdTY1QjBcdTYyMTBcdTUyOUYiKTpwLlpQLmVycm9yKEEubXNnKSxyLmFicnVwdCgicmV0dXJuIiwhMCk7Y2FzZSAxMDpyZXR1cm4gci5wcmV2PTEwLHIudDA9ci5jYXRjaCgxKSxhKCkscC5aUC5lcnJvcigiXHU5MTREXHU3RjZFXHU1OTMxXHU4RDI1XHU4QkY3XHU5MUNEXHU4QkQ1XHVGRjAxIiksci5hYnJ1cHQoInJldHVybiIsITEpO2Nhc2UgMTU6Y2FzZSJlbmQiOnJldHVybiByLnN0b3AoKX19LGgsbnVsbCxbWzEsMTBdXSl9KSk7cmV0dXJuIGZ1bmN0aW9uKEUpe3JldHVybiBmLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksbGU9ZnVuY3Rpb24oKXt2YXIgZj1zKCkodCgpKCkubWFyayhmdW5jdGlvbiBoKEUpe3ZhciBhLEE7cmV0dXJuIHQoKSgpLndyYXAoZnVuY3Rpb24ocil7Zm9yKDs7KXN3aXRjaChyLnByZXY9ci5uZXh0KXtjYXNlIDA6aWYoYT1wLlpQLmxvYWRpbmcoIlx1NkI2M1x1NTcyOFx1NTIyMFx1OTY2NCIpLEUpe3IubmV4dD0zO2JyZWFrfXJldHVybiByLmFicnVwdCgicmV0dXJuIiwhMCk7Y2FzZSAzOnJldHVybiByLnByZXY9MyxyLm5leHQ9Nix2KEUubWFwKGZ1bmN0aW9uKEQpe3JldHVybiBELm5vdGljZUlkfSkuam9pbigiLCIpKTtjYXNlIDY6cmV0dXJuIEE9ci5zZW50LGEoKSxBLmNvZGU9PT0yMDA/cC5aUC5zdWNjZXNzKCJcdTUyMjBcdTk2NjRcdTYyMTBcdTUyOUZcdUZGMENcdTUzNzNcdTVDMDZcdTUyMzdcdTY1QjAiKTpwLlpQLmVycm9yKEEubXNnKSxyLmFicnVwdCgicmV0dXJuIiwhMCk7Y2FzZSAxMjpyZXR1cm4gci5wcmV2PTEyLHIudDA9ci5jYXRjaCgzKSxhKCkscC5aUC5lcnJvcigiXHU1MjIwXHU5NjY0XHU1OTMxXHU4RDI1XHVGRjBDXHU4QkY3XHU5MUNEXHU4QkQ1Iiksci5hYnJ1cHQoInJldHVybiIsITEpO2Nhc2UgMTc6Y2FzZSJlbmQiOnJldHVybiByLnN0b3AoKX19LGgsbnVsbCxbWzMsMTJdXSl9KSk7cmV0dXJuIGZ1bmN0aW9uKEUpe3JldHVybiBmLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCkscGU9ZnVuY3Rpb24oKXt2YXIgZj1zKCkodCgpKCkubWFyayhmdW5jdGlvbiBoKEUpe3ZhciBhLEEsWjtyZXR1cm4gdCgpKCkud3JhcChmdW5jdGlvbihEKXtmb3IoOzspc3dpdGNoKEQucHJldj1ELm5leHQpe2Nhc2UgMDppZihhPXAuWlAubG9hZGluZygiXHU2QjYzXHU1NzI4XHU1MjIwXHU5NjY0IiksRSl7RC5uZXh0PTM7YnJlYWt9cmV0dXJuIEQuYWJydXB0KCJyZXR1cm4iLCEwKTtjYXNlIDM6cmV0dXJuIEQucHJldj0zLEE9W0Uubm90aWNlSWRdLEQubmV4dD03LHYoQS5qb2luKCIsIikpO2Nhc2UgNzpyZXR1cm4gWj1ELnNlbnQsYSgpLFouY29kZT09PTIwMD9wLlpQLnN1Y2Nlc3MoIlx1NTIyMFx1OTY2NFx1NjIxMFx1NTI5Rlx1RkYwQ1x1NTM3M1x1NUMwNlx1NTIzN1x1NjVCMCIpOnAuWlAuZXJyb3IoWi5tc2cpLEQuYWJydXB0KCJyZXR1cm4iLCEwKTtjYXNlIDEzOnJldHVybiBELnByZXY9MTMsRC50MD1ELmNhdGNoKDMpLGEoKSxwLlpQLmVycm9yKCJcdTUyMjBcdTk2NjRcdTU5MzFcdThEMjVcdUZGMENcdThCRjdcdTkxQ0RcdThCRDUiKSxELmFicnVwdCgicmV0dXJuIiwhMSk7Y2FzZSAxODpjYXNlImVuZCI6cmV0dXJuIEQuc3RvcCgpfX0saCxudWxsLFtbMywxM11dKX0pKTtyZXR1cm4gZnVuY3Rpb24oRSl7cmV0dXJuIGYuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSxmZT1mdW5jdGlvbigpe3ZhciBoPSgwLEMudXNlUmVmKSgpLEU9KDAsQy51c2VTdGF0ZSkoITEpLGE9bygpKEUsMiksQT1hWzBdLFo9YVsxXSxyPSgwLEMudXNlUmVmKSgpLEQ9KDAsQy51c2VTdGF0ZSkoKSxvZT1vKCkoRCwyKSxnZT1vZVswXSxhZT1vZVsxXSx2ZT0oMCxDLnVzZVN0YXRlKShbXSksZGU9bygpKHZlLDIpLGs9ZGVbMF0sdWU9ZGVbMV0sVGU9KDAsQy51c2VTdGF0ZSkoW10pLGNlPW8oKShUZSwyKSxtZT1jZVswXSx5ZT1jZVsxXSxFZT0oMCxDLnVzZVN0YXRlKShbXSksX2U9bygpKEVlLDIpLGllPV9lWzBdLGJlPV9lWzFdLHRlPSgwLGMudXNlQWNjZXNzKSgpLFBlPSgwLGMudXNlSW50bCkoKTsoMCxDLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXsoMCxTLnBYKSgic3lzX25vdGljZV90eXBlIikudGhlbihmdW5jdGlvbihVKXt5ZShVKX0pLCgwLFMucFgpKCJzeXNfbm90aWNlX3N0YXR1cyIpLnRoZW4oZnVuY3Rpb24oVSl7YmUoVSl9KX0sW10pO3ZhciBEZT1be3RpdGxlOigwLG4uanN4KShjLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJzeXN0ZW0ubm90aWNlLm5vdGljZV9pZCIsZGVmYXVsdE1lc3NhZ2U6Ilx1NTE2Q1x1NTQ0QVx1N0YxNlx1NTNGNyJ9KSxkYXRhSW5kZXg6Im5vdGljZUlkIix2YWx1ZVR5cGU6InRleHQiLGhpZGVJblNlYXJjaDohMH0se3RpdGxlOigwLG4uanN4KShjLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJzeXN0ZW0ubm90aWNlLm5vdGljZV90aXRsZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NTE2Q1x1NTQ0QVx1NjgwN1x1OTg5OCJ9KSxkYXRhSW5kZXg6Im5vdGljZVRpdGxlIix2YWx1ZVR5cGU6InRleHQifSx7dGl0bGU6KDAsbi5qc3gpKGMuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InN5c3RlbS5ub3RpY2Uubm90aWNlX3R5cGUiLGRlZmF1bHRNZXNzYWdlOiJcdTUxNkNcdTU0NEFcdTdDN0JcdTU3OEIifSksZGF0YUluZGV4OiJub3RpY2VUeXBlIix2YWx1ZVR5cGU6InNlbGVjdCIsdmFsdWVFbnVtOm1lfSx7dGl0bGU6KDAsbi5qc3gpKGMuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InN5c3RlbS5ub3RpY2Uubm90aWNlX2NvbnRlbnQiLGRlZmF1bHRNZXNzYWdlOiJcdTUxNkNcdTU0NEFcdTUxODVcdTVCQjkifSksZGF0YUluZGV4OiJub3RpY2VDb250ZW50Iix2YWx1ZVR5cGU6InRleHQiLGhpZGVJblRhYmxlOiEwfSx7dGl0bGU6KDAsbi5qc3gpKGMuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InN5c3RlbS5ub3RpY2Uuc3RhdHVzIixkZWZhdWx0TWVzc2FnZToiXHU1MTZDXHU1NDRBXHU3MkI2XHU2MDAxIn0pLGRhdGFJbmRleDoic3RhdHVzIix2YWx1ZVR5cGU6InNlbGVjdCIsdmFsdWVFbnVtOmllLHJlbmRlcjpmdW5jdGlvbihCLGcpe3JldHVybigwLG4uanN4KShZLlose2VudW1zOmllLHZhbHVlOmcuc3RhdHVzfSl9fSx7dGl0bGU6KDAsbi5qc3gpKGMuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InN5c3RlbS5ub3RpY2UucmVtYXJrIixkZWZhdWx0TWVzc2FnZToiXHU1OTA3XHU2Q0U4In0pLGRhdGFJbmRleDoicmVtYXJrIix2YWx1ZVR5cGU6InRleHQiLGhpZGVJblNlYXJjaDohMH0se3RpdGxlOigwLG4uanN4KShjLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJzeXN0ZW0ubm90aWNlLmNyZWF0ZV90aW1lIixkZWZhdWx0TWVzc2FnZToiXHU1MjFCXHU1RUZBXHU2NUY2XHU5NUY0In0pLGRhdGFJbmRleDoiY3JlYXRlVGltZSIsdmFsdWVUeXBlOiJkYXRlUmFuZ2UiLHJlbmRlcjpmdW5jdGlvbihCLGcpe3JldHVybigwLG4uanN4cykoInNwYW4iLHtjaGlsZHJlbjpbZy5jcmVhdGVUaW1lLnRvU3RyaW5nKCksIiAiXX0pfSxzZWFyY2g6e3RyYW5zZm9ybTpmdW5jdGlvbihCKXtyZXR1cm57InBhcmFtc1tiZWdpblRpbWVdIjpCWzBdLCJwYXJhbXNbZW5kVGltZV0iOkJbMV19fX19LHt0aXRsZTooMCxuLmpzeCkoYy5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoicGFnZXMuc2VhcmNoVGFibGUudGl0bGVPcHRpb24iLGRlZmF1bHRNZXNzYWdlOiJcdTY0Q0RcdTRGNUMifSksZGF0YUluZGV4OiJvcHRpb24iLHdpZHRoOiIxMjBweCIsdmFsdWVUeXBlOiJvcHRpb24iLHJlbmRlcjpmdW5jdGlvbihCLGcpe3JldHVyblsoMCxuLmpzeCkoUi5aUCx7dHlwZToibGluayIsc2l6ZToic21hbGwiLGhpZGRlbjohdGUuaGFzUGVybXMoInN5c3RlbTpub3RpY2U6ZWRpdCIpLG9uQ2xpY2s6ZnVuY3Rpb24oKXtaKCEwKSxhZShnKX0sY2hpbGRyZW46Ilx1N0YxNlx1OEY5MSJ9LCJlZGl0IiksKDAsbi5qc3gpKFIuWlAse3R5cGU6ImxpbmsiLHNpemU6InNtYWxsIixkYW5nZXI6ITAsaGlkZGVuOiF0ZS5oYXNQZXJtcygic3lzdGVtOm5vdGljZTpyZW1vdmUiKSxvbkNsaWNrOnMoKSh0KCkoKS5tYXJrKGZ1bmN0aW9uIGIoKXtyZXR1cm4gdCgpKCkud3JhcChmdW5jdGlvbihNKXtmb3IoOzspc3dpdGNoKE0ucHJldj1NLm5leHQpe2Nhc2UgMDpOLlouY29uZmlybSh7dGl0bGU6Ilx1NTIyMFx1OTY2NCIsY29udGVudDoiXHU3ODZFXHU1QjlBXHU1MjIwXHU5NjY0XHU4QkU1XHU5ODc5XHU1NDE3XHVGRjFGIixva1RleHQ6Ilx1Nzg2RVx1OEJBNCIsY2FuY2VsVGV4dDoiXHU1M0Q2XHU2RDg4Iixvbk9rOmZ1bmN0aW9uKCl7dmFyIFE9cygpKHQoKSgpLm1hcmsoZnVuY3Rpb24gVigpe3ZhciBzZTtyZXR1cm4gdCgpKCkud3JhcChmdW5jdGlvbihyZSl7Zm9yKDs7KXN3aXRjaChyZS5wcmV2PXJlLm5leHQpe2Nhc2UgMDpyZXR1cm4gcmUubmV4dD0yLHBlKGcpO2Nhc2UgMjpzZT1yZS5zZW50LHNlJiZyLmN1cnJlbnQmJnIuY3VycmVudC5yZWxvYWQoKTtjYXNlIDQ6Y2FzZSJlbmQiOnJldHVybiByZS5zdG9wKCl9fSxWKX0pKTtmdW5jdGlvbiB4KCl7cmV0dXJuIFEuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB4fSgpfSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gTS5zdG9wKCl9fSxiKX0pKSxjaGlsZHJlbjoiXHU1MjIwXHU5NjY0In0sImJhdGNoUmVtb3ZlIildfX1dO3JldHVybigwLG4uanN4cykoZC5feix7Y2hpbGRyZW46WygwLG4uanN4KSgiZGl2Iix7c3R5bGU6e3dpZHRoOiIxMDAlIixmbG9hdDoicmlnaHQifSxjaGlsZHJlbjooMCxuLmpzeCkoRi5aLHtoZWFkZXJUaXRsZTpQZS5mb3JtYXRNZXNzYWdlKHtpZDoicGFnZXMuc2VhcmNoVGFibGUudGl0bGUiLGRlZmF1bHRNZXNzYWdlOiJcdTRGRTFcdTYwNkYifSksYWN0aW9uUmVmOnIsZm9ybVJlZjpoLHJvd0tleToibm90aWNlSWQiLHNlYXJjaDp7bGFiZWxXaWR0aDoxMjB9LHRvb2xCYXJSZW5kZXI6ZnVuY3Rpb24oKXtyZXR1cm5bKDAsbi5qc3hzKShSLlpQLHt0eXBlOiJwcmltYXJ5IixoaWRkZW46IXRlLmhhc1Blcm1zKCJzeXN0ZW06bm90aWNlOmFkZCIpLG9uQ2xpY2s6cygpKHQoKSgpLm1hcmsoZnVuY3Rpb24gQigpe3JldHVybiB0KCkoKS53cmFwKGZ1bmN0aW9uKGIpe2Zvcig7Oylzd2l0Y2goYi5wcmV2PWIubmV4dCl7Y2FzZSAwOmFlKHZvaWQgMCksWighMCk7Y2FzZSAyOmNhc2UiZW5kIjpyZXR1cm4gYi5zdG9wKCl9fSxCKX0pKSxjaGlsZHJlbjpbKDAsbi5qc3gpKG0uWix7fSksIiAiLCgwLG4uanN4KShjLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJwYWdlcy5zZWFyY2hUYWJsZS5uZXciLGRlZmF1bHRNZXNzYWdlOiJcdTY1QjBcdTVFRkEifSldfSwiYWRkIiksKDAsbi5qc3hzKShSLlpQLHt0eXBlOiJwcmltYXJ5IixkYW5nZXI6ITAsaGlkZGVuOihrPT1udWxsP3ZvaWQgMDprLmxlbmd0aCk9PT0wfHwhdGUuaGFzUGVybXMoInN5c3RlbTpub3RpY2U6cmVtb3ZlIiksb25DbGljazpzKCkodCgpKCkubWFyayhmdW5jdGlvbiBCKCl7cmV0dXJuIHQoKSgpLndyYXAoZnVuY3Rpb24oYil7Zm9yKDs7KXN3aXRjaChiLnByZXY9Yi5uZXh0KXtjYXNlIDA6Ti5aLmNvbmZpcm0oe3RpdGxlOiJcdTY2MkZcdTU0MjZcdTc4NkVcdThCQTRcdTUyMjBcdTk2NjRcdTYyNDBcdTkwMDlcdTY1NzBcdTYzNkVcdTk4Nzk/IixpY29uOigwLG4uanN4KShqLlose30pLGNvbnRlbnQ6Ilx1OEJGN1x1OEMyOFx1NjE0RVx1NjRDRFx1NEY1QyIsb25PazpmdW5jdGlvbigpe3JldHVybiBzKCkodCgpKCkubWFyayhmdW5jdGlvbiBNKCl7dmFyIFEseCxWO3JldHVybiB0KCkoKS53cmFwKGZ1bmN0aW9uKHcpe2Zvcig7Oylzd2l0Y2gody5wcmV2PXcubmV4dCl7Y2FzZSAwOnJldHVybiB3Lm5leHQ9MixsZShrKTtjYXNlIDI6UT13LnNlbnQsUSYmKHVlKFtdKSwoeD1yLmN1cnJlbnQpPT09bnVsbHx8eD09PXZvaWQgMHx8KFY9eC5yZWxvYWRBbmRSZXN0KT09PW51bGx8fFY9PT12b2lkIDB8fFYuY2FsbCh4KSk7Y2FzZSA0OmNhc2UiZW5kIjpyZXR1cm4gdy5zdG9wKCl9fSxNKX0pKSgpfSxvbkNhbmNlbDpmdW5jdGlvbigpe319KTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBiLnN0b3AoKX19LEIpfSkpLGNoaWxkcmVuOlsoMCxuLmpzeCkoTC5aLHt9KSwoMCxuLmpzeCkoYy5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoicGFnZXMuc2VhcmNoVGFibGUuZGVsZXRlIixkZWZhdWx0TWVzc2FnZToiXHU1MjIwXHU5NjY0In0pXX0sInJlbW92ZSIpXX0scmVxdWVzdDpmdW5jdGlvbihCKXtyZXR1cm4gXyhQKCkoe30sQikpLnRoZW4oZnVuY3Rpb24oZyl7dmFyIGI9e2RhdGE6Zy5yb3dzLHRvdGFsOmcudG90YWwsc3VjY2VzczohMH07cmV0dXJuIGJ9KX0sY29sdW1uczpEZSxyb3dTZWxlY3Rpb246e29uQ2hhbmdlOmZ1bmN0aW9uKEIsZyl7dWUoZyl9fX0sIm5vdGljZUxpc3QiKX0pLChrPT1udWxsP3ZvaWQgMDprLmxlbmd0aCk+MCYmKDAsbi5qc3gpKGwuUyx7ZXh0cmE6KDAsbi5qc3hzKSgiZGl2Iix7Y2hpbGRyZW46WygwLG4uanN4KShjLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJwYWdlcy5zZWFyY2hUYWJsZS5jaG9zZW4iLGRlZmF1bHRNZXNzYWdlOiJcdTVERjJcdTkwMDlcdTYyRTkifSksKDAsbi5qc3gpKCJhIix7c3R5bGU6e2ZvbnRXZWlnaHQ6NjAwfSxjaGlsZHJlbjprLmxlbmd0aH0pLCgwLG4uanN4KShjLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJwYWdlcy5zZWFyY2hUYWJsZS5pdGVtIixkZWZhdWx0TWVzc2FnZToiXHU5ODc5In0pXX0pLGNoaWxkcmVuOigwLG4uanN4KShSLlpQLHtkYW5nZXI6ITAsaGlkZGVuOiF0ZS5oYXNQZXJtcygic3lzdGVtOm5vdGljZTpkZWwiKSxvbkNsaWNrOnMoKSh0KCkoKS5tYXJrKGZ1bmN0aW9uIFUoKXtyZXR1cm4gdCgpKCkud3JhcChmdW5jdGlvbihnKXtmb3IoOzspc3dpdGNoKGcucHJldj1nLm5leHQpe2Nhc2UgMDpOLlouY29uZmlybSh7dGl0bGU6Ilx1NTIyMFx1OTY2NCIsY29udGVudDoiXHU3ODZFXHU1QjlBXHU1MjIwXHU5NjY0XHU4QkU1XHU5ODc5XHU1NDE3XHVGRjFGIixva1RleHQ6Ilx1Nzg2RVx1OEJBNCIsY2FuY2VsVGV4dDoiXHU1M0Q2XHU2RDg4Iixvbk9rOmZ1bmN0aW9uKCl7dmFyIGI9cygpKHQoKSgpLm1hcmsoZnVuY3Rpb24gTSgpe3ZhciBRLHgsVjtyZXR1cm4gdCgpKCkud3JhcChmdW5jdGlvbih3KXtmb3IoOzspc3dpdGNoKHcucHJldj13Lm5leHQpe2Nhc2UgMDpyZXR1cm4gdy5uZXh0PTIsbGUoayk7Y2FzZSAyOlE9dy5zZW50LFEmJih1ZShbXSksKHg9ci5jdXJyZW50KT09PW51bGx8fHg9PT12b2lkIDB8fChWPXgucmVsb2FkQW5kUmVzdCk9PT1udWxsfHxWPT09dm9pZCAwfHxWLmNhbGwoeCkpO2Nhc2UgNDpjYXNlImVuZCI6cmV0dXJuIHcuc3RvcCgpfX0sTSl9KSk7ZnVuY3Rpb24gbmUoKXtyZXR1cm4gYi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIG5lfSgpfSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gZy5zdG9wKCl9fSxVKX0pKSxjaGlsZHJlbjooMCxuLmpzeCkoYy5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoicGFnZXMuc2VhcmNoVGFibGUuYmF0Y2hEZWxldGlvbiIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjI3OVx1OTFDRlx1NTIyMFx1OTY2NCJ9KX0sInJlbW92ZSIpfSksKDAsbi5qc3gpKGkuZGVmYXVsdCx7b25TdWJtaXQ6ZnVuY3Rpb24oKXt2YXIgVT1zKCkodCgpKCkubWFyayhmdW5jdGlvbiBCKGcpe3ZhciBiO3JldHVybiB0KCkoKS53cmFwKGZ1bmN0aW9uKE0pe2Zvcig7Oylzd2l0Y2goTS5wcmV2PU0ubmV4dCl7Y2FzZSAwOmlmKGI9ITEsIWcubm90aWNlSWQpe00ubmV4dD03O2JyZWFrfXJldHVybiBNLm5leHQ9NCxlZShQKCkoe30sZykpO2Nhc2UgNDpiPU0uc2VudCxNLm5leHQ9MTA7YnJlYWs7Y2FzZSA3OnJldHVybiBNLm5leHQ9OSx5KFAoKSh7fSxnKSk7Y2FzZSA5OmI9TS5zZW50O2Nhc2UgMTA6YiYmKFooITEpLGFlKHZvaWQgMCksci5jdXJyZW50JiZyLmN1cnJlbnQucmVsb2FkKCkpO2Nhc2UgMTE6Y2FzZSJlbmQiOnJldHVybiBNLnN0b3AoKX19LEIpfSkpO3JldHVybiBmdW5jdGlvbihCKXtyZXR1cm4gVS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLG9uQ2FuY2VsOmZ1bmN0aW9uKCl7WighMSksYWUodm9pZCAwKX0sb3BlbjpBLHZhbHVlczpnZXx8e30sbm90aWNlVHlwZU9wdGlvbnM6bWUsc3RhdHVzT3B0aW9uczppZX0pXX0pfSxoZT1mZX0sOTI5ODI6ZnVuY3Rpb24ocSxXLGUpe2UuZChXLHtIcjpmdW5jdGlvbigpe3JldHVybiBGfSxRSzpmdW5jdGlvbigpe3JldHVybiBYfSxWZDpmdW5jdGlvbigpe3JldHVybiBSfSxhNzpmdW5jdGlvbigpe3JldHVybiBMfSxqSzpmdW5jdGlvbigpe3JldHVybiBjfSxuMjpmdW5jdGlvbigpe3JldHVybiBIfSxvSDpmdW5jdGlvbigpe3JldHVybiBtfSxwWDpmdW5jdGlvbigpe3JldHVybiBOfSxzRjpmdW5jdGlvbigpe3JldHVybiBUfX0pO3ZhciBLPWUoMTUwMDkpLG89ZS5uKEspLCQ9ZSg5Nzg1NyksdD1lLm4oJCksRz1lKDk5Mjg5KSxQPWUubihHKSxPPWUoNzY3NzIpLHM9ZSgzMzg2NyksQz1lKDMwOTY0KTtmdW5jdGlvbiBjKHUpe3JldHVybiBwLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBwKCl7cmV0dXJuIHA9UCgpKG8oKSgpLm1hcmsoZnVuY3Rpb24gdSh2KXtyZXR1cm4gbygpKCkud3JhcChmdW5jdGlvbihpKXtmb3IoOzspc3dpdGNoKGkucHJldj1pLm5leHQpe2Nhc2UgMDpyZXR1cm4gaS5hYnJ1cHQoInJldHVybiIsKDAsTy5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vZGljdC90eXBlL2xpc3QiLHtwYXJhbXM6dCgpKHt9LHYpLG1ldGhvZDoiR0VUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In19KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gaS5zdG9wKCl9fSx1KX0pKSxwLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBSKHUpe3JldHVybigwLE8ucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RpY3QvdHlwZS8iLmNvbmNhdCh1KSx7bWV0aG9kOiJHRVQifSl9ZnVuY3Rpb24gTih1LHYpe3JldHVybiBkLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBkKCl7cmV0dXJuIGQ9UCgpKG8oKSgpLm1hcmsoZnVuY3Rpb24gdSh2LEkpe3ZhciBpLFM7cmV0dXJuIG8oKSgpLndyYXAoZnVuY3Rpb24obil7Zm9yKDs7KXN3aXRjaChuLnByZXY9bi5uZXh0KXtjYXNlIDA6cmV0dXJuIG4ubmV4dD0yLCgwLE8ucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RpY3QvZGF0YS90eXBlLyIuY29uY2F0KHYpLHttZXRob2Q6IkdFVCJ9KTtjYXNlIDI6aWYoaT1uLnNlbnQsaS5jb2RlIT09cy5pSy5TVUNDRVNTKXtuLm5leHQ9OTticmVha31yZXR1cm4gUz17fSxpLmRhdGEuZm9yRWFjaChmdW5jdGlvbih5KXtTW3kuZGljdFZhbHVlXT17dGV4dDp5LmRpY3RMYWJlbCxsYWJlbDp5LmRpY3RMYWJlbCx2YWx1ZTpJP051bWJlcih5LmRpY3RWYWx1ZSk6eS5kaWN0VmFsdWUsa2V5OnkuZGljdENvZGUsbGlzdENsYXNzOnkubGlzdENsYXNzLHN0YXR1czp5Lmxpc3RDbGFzc319KSxuLmFicnVwdCgicmV0dXJuIixTKTtjYXNlIDk6cmV0dXJuIG4uYWJydXB0KCJyZXR1cm4iLHt9KTtjYXNlIDEwOmNhc2UiZW5kIjpyZXR1cm4gbi5zdG9wKCl9fSx1KX0pKSxkLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBGKHUsdil7cmV0dXJuIGwuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGwoKXtyZXR1cm4gbD1QKCkobygpKCkubWFyayhmdW5jdGlvbiB1KHYsSSl7dmFyIGksUztyZXR1cm4gbygpKCkud3JhcChmdW5jdGlvbihuKXtmb3IoOzspc3dpdGNoKG4ucHJldj1uLm5leHQpe2Nhc2UgMDpyZXR1cm4gbi5uZXh0PTIsKDAsTy5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vZGljdC9kYXRhL3R5cGUvIi5jb25jYXQodikse21ldGhvZDoiR0VUIn0pO2Nhc2UgMjppZihpPW4uc2VudCxpLmNvZGUhPT0yMDApe24ubmV4dD02O2JyZWFrfXJldHVybiBTPWkuZGF0YS5tYXAoZnVuY3Rpb24oeSl7cmV0dXJue3RleHQ6eS5kaWN0TGFiZWwsbGFiZWw6eS5kaWN0TGFiZWwsdmFsdWU6ST9OdW1iZXIoeS5kaWN0VmFsdWUpOnkuZGljdFZhbHVlLGtleTp5LmRpY3RDb2RlLGxpc3RDbGFzczp5Lmxpc3RDbGFzcyxzdGF0dXM6eS5saXN0Q2xhc3N9fSksbi5hYnJ1cHQoInJldHVybiIsUyk7Y2FzZSA2OnJldHVybiBuLmFicnVwdCgicmV0dXJuIixbXSk7Y2FzZSA3OmNhc2UiZW5kIjpyZXR1cm4gbi5zdG9wKCl9fSx1KX0pKSxsLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBtKHUpe3JldHVybiBqLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBqKCl7cmV0dXJuIGo9UCgpKG8oKSgpLm1hcmsoZnVuY3Rpb24gdSh2KXtyZXR1cm4gbygpKCkud3JhcChmdW5jdGlvbihpKXtmb3IoOzspc3dpdGNoKGkucHJldj1pLm5leHQpe2Nhc2UgMDpyZXR1cm4gaS5hYnJ1cHQoInJldHVybiIsKDAsTy5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vZGljdC90eXBlIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In0sZGF0YTp2fSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGkuc3RvcCgpfX0sdSl9KSksai5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gTCh1KXtyZXR1cm4gXy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gXygpe3JldHVybiBfPVAoKShvKCkoKS5tYXJrKGZ1bmN0aW9uIHUodil7cmV0dXJuIG8oKSgpLndyYXAoZnVuY3Rpb24oaSl7Zm9yKDs7KXN3aXRjaChpLnByZXY9aS5uZXh0KXtjYXNlIDA6cmV0dXJuIGkuYWJydXB0KCJyZXR1cm4iLCgwLE8ucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RpY3QvdHlwZSIse21ldGhvZDoiUFVUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In0sZGF0YTp2fSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGkuc3RvcCgpfX0sdSl9KSksXy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gVCh1KXtyZXR1cm4gei5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24geigpe3JldHVybiB6PVAoKShvKCkoKS5tYXJrKGZ1bmN0aW9uIHUodil7cmV0dXJuIG8oKSgpLndyYXAoZnVuY3Rpb24oaSl7Zm9yKDs7KXN3aXRjaChpLnByZXY9aS5uZXh0KXtjYXNlIDA6cmV0dXJuIGkuYWJydXB0KCJyZXR1cm4iLCgwLE8ucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RpY3QvdHlwZS8iLmNvbmNhdCh2KSx7bWV0aG9kOiJERUxFVEUifSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGkuc3RvcCgpfX0sdSl9KSksei5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gSCh1KXtyZXR1cm4oMCxDLnN1KSgiL2FwaS9zeXN0ZW0vZGljdC90eXBlL2V4cG9ydCIse3BhcmFtczp1fSwiZGljdF90eXBlXyIuY29uY2F0KG5ldyBEYXRlKCkuZ2V0VGltZSgpLCIueGxzeCIpKX1mdW5jdGlvbiBYKHUpe3JldHVybiBKLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBKKCl7cmV0dXJuIEo9UCgpKG8oKSgpLm1hcmsoZnVuY3Rpb24gdSh2KXtyZXR1cm4gbygpKCkud3JhcChmdW5jdGlvbihpKXtmb3IoOzspc3dpdGNoKGkucHJldj1pLm5leHQpe2Nhc2UgMDpyZXR1cm4gaS5hYnJ1cHQoInJldHVybiIsKDAsTy5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vZGljdC90eXBlL29wdGlvbnNlbGVjdCIse3BhcmFtczp0KCkoe30sdiksbWV0aG9kOiJHRVQiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgifX0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBpLnN0b3AoKX19LHUpfSkpLEouYXBwbHkodGhpcyxhcmd1bWVudHMpfX0sMzA5NjQ6ZnVuY3Rpb24ocSxXLGUpe2UuZChXLHtwNjpmdW5jdGlvbigpe3JldHVybiBjfSxzdTpmdW5jdGlvbigpe3JldHVybiBwfX0pO3ZhciBLPWUoMTUwMDkpLG89ZS5uKEspLCQ9ZSg5Nzg1NyksdD1lLm4oJCksRz1lKDk5Mjg5KSxQPWUubihHKSxPPWUoNzY3NzIpLHM9e3hsc3g6ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0Iix6aXA6ImFwcGxpY2F0aW9uL3ppcCJ9O2Z1bmN0aW9uIEMoZCxGKXt2YXIgbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIiksbT1uZXcgQmxvYihbZC5kYXRhXSx7dHlwZTpGfSksaj1uZXcgUmVnRXhwKCJmaWxlbmFtZT0oW147XStcXC5bXlxcLjtdKyk7KiIpLEw9ZGVjb2RlVVJJKGQuaGVhZGVyc1siY29udGVudC1kaXNwb3NpdGlvbiJdKSxfPWouZXhlYyhMKSxUPV8/X1sxXToiZmlsZSI7VD1ULnJlcGxhY2UoLyIvZywiIiksbC5zdHlsZS5kaXNwbGF5PSJub25lIixsLmhyZWY9VVJMLmNyZWF0ZU9iamVjdFVSTChtKSxsLnNldEF0dHJpYnV0ZSgiZG93bmxvYWQiLFQpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobCksbC5jbGljaygpLFVSTC5yZXZva2VPYmplY3RVUkwobC5ocmVmKSxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGwpfWZ1bmN0aW9uIGMoZCl7KDAsTy5yZXF1ZXN0KShkLHttZXRob2Q6IkdFVCIscmVzcG9uc2VUeXBlOiJibG9iIixnZXRSZXNwb25zZTohMH0pLnRoZW4oZnVuY3Rpb24oRil7QyhGLHMuemlwKX0pfWZ1bmN0aW9uIHAoZCxGLGwpe3JldHVybiBSLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBSKCl7cmV0dXJuIFI9UCgpKG8oKSgpLm1hcmsoZnVuY3Rpb24gZChGLGwsbSl7cmV0dXJuIG8oKSgpLndyYXAoZnVuY3Rpb24oTCl7Zm9yKDs7KXN3aXRjaChMLnByZXY9TC5uZXh0KXtjYXNlIDA6cmV0dXJuIEwuYWJydXB0KCJyZXR1cm4iLCgwLE8ucmVxdWVzdCkoRix0KCkodCgpKHt9LGwpLHt9LHttZXRob2Q6IlBPU1QiLHJlc3BvbnNlVHlwZToiYmxvYiJ9KSkudGhlbihmdW5jdGlvbihfKXt2YXIgVD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIiksej1fO1Quc3R5bGUuZGlzcGxheT0ibm9uZSIsVC5ocmVmPVVSTC5jcmVhdGVPYmplY3RVUkwoeiksVC5zZXRBdHRyaWJ1dGUoImRvd25sb2FkIixtKSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKFQpLFQuY2xpY2soKSxVUkwucmV2b2tlT2JqZWN0VVJMKFQuaHJlZiksZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChUKX0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBMLnN0b3AoKX19LGQpfSkpLFIuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIE4oZCl7d2luZG93LmxvY2F0aW9uLmhyZWY9Ii9hcGkvY29tbW9uL2Rvd25sb2FkP2ZpbGVOYW1lPSIuY29uY2F0KGVuY29kZVVSSShkKSwiJmRlbGV0ZT0iLCEwKX19fV0pOwpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy82Mzg4LmY1ZmQ0ODM0LmFzeW5jLmpzIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy82Mzg4LmY1ZmQ0ODM0LmFzeW5jLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZmYzdhYzEKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzYzODguZjVmZDQ4MzQuYXN5bmMuanMKQEAgLTAsMCArMSBAQAorInVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvPXNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm98fFtdKS5wdXNoKFtbNjM4OF0sezUwNzI3OmZ1bmN0aW9uKEVlLG9lLHIpe3ZhciBfPXIoNDk0MiksaWU9cig5NzY4NSksQT1yKDkxKSxRPXIoNzQxNjUpLFk9cigxNTg2MSksZj1yKDE0MTMpLHNlPXIoMjQ5NjkpLGNlPXIoOTc0NjIpLGs9cig5NTIpLHE9cigxMDkxNSksZWU9cig0ODE3MSksZGU9cig1MzkxNCksbmU9cigyMjI3MCksdz1yKDYwMjQ5KSx1ZT1yKDgzNjIyKSxGPXIoOTk4NTkpLHA9cigyMTc3MCksVj1yKDg4MzA2KSx0ZT1yKDg4ODApLEU9cig2NzI5NCksdmU9cig2NTM4NSksQz1yKDg1ODkzKSxmZT1bIm9uVGFibGVDaGFuZ2UiLCJtYXhMZW5ndGgiLCJmb3JtSXRlbVByb3BzIiwicmVjb3JkQ3JlYXRvclByb3BzIiwicm93S2V5IiwiY29udHJvbGxlZCIsImRlZmF1bHRWYWx1ZSIsIm9uQ2hhbmdlIiwiZWRpdGFibGVGb3JtUmVmIl0sZ2U9WyJyZWNvcmQiLCJwb3NpdGlvbiIsImNyZWF0b3JCdXR0b25UZXh0IiwibmV3UmVjb3JkVHlwZSIsInBhcmVudEtleSIsInN0eWxlIl0scmU9RS5jcmVhdGVDb250ZXh0KHZvaWQgMCk7ZnVuY3Rpb24gSyhuKXt2YXIgRD1uLmNoaWxkcmVuLGo9bi5yZWNvcmQsZT1uLnBvc2l0aW9uLG89bi5uZXdSZWNvcmRUeXBlLGM9bi5wYXJlbnRLZXksdD0oMCxFLnVzZUNvbnRleHQpKHJlKTtyZXR1cm4gRS5jbG9uZUVsZW1lbnQoRCwoMCxmLlopKCgwLGYuWikoe30sRC5wcm9wcykse30se29uQ2xpY2s6ZnVuY3Rpb24oKXt2YXIgYT0oMCxZLlopKCgwLFEuWikoKS5tYXJrKGZ1bmN0aW9uIGgoUyl7dmFyIFAsJCx5LFQ7cmV0dXJuKDAsUS5aKSgpLndyYXAoZnVuY3Rpb24obSl7Zm9yKDs7KXN3aXRjaChtLnByZXY9bS5uZXh0KXtjYXNlIDA6cmV0dXJuIG0ubmV4dD0yLChQPSgkPUQucHJvcHMpLm9uQ2xpY2spPT09bnVsbHx8UD09PXZvaWQgMD92b2lkIDA6UC5jYWxsKCQsUyk7Y2FzZSAyOmlmKFQ9bS5zZW50LFQhPT0hMSl7bS5uZXh0PTU7YnJlYWt9cmV0dXJuIG0uYWJydXB0KCJyZXR1cm4iKTtjYXNlIDU6dD09bnVsbHx8KHk9dC5jdXJyZW50KT09PW51bGx8fHk9PT12b2lkIDB8fHkuYWRkRWRpdFJlY29yZChqLHtwb3NpdGlvbjplLG5ld1JlY29yZFR5cGU6byxwYXJlbnRLZXk6Y30pO2Nhc2UgNjpjYXNlImVuZCI6cmV0dXJuIG0uc3RvcCgpfX0saCl9KSk7ZnVuY3Rpb24gYihoKXtyZXR1cm4gYS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIGJ9KCl9KSl9ZnVuY3Rpb24gbGUobil7dmFyIEQsaixlPSgwLHEuWUIpKCksbz1uLm9uVGFibGVDaGFuZ2UsYz1uLm1heExlbmd0aCx0PW4uZm9ybUl0ZW1Qcm9wcyxhPW4ucmVjb3JkQ3JlYXRvclByb3BzLGI9bi5yb3dLZXksaD1uLmNvbnRyb2xsZWQsUz1uLmRlZmF1bHRWYWx1ZSxQPW4ub25DaGFuZ2UsJD1uLmVkaXRhYmxlRm9ybVJlZix5PSgwLEEuWikobixmZSksVD0oMCxFLnVzZVJlZikodm9pZCAwKSxSPSgwLEUudXNlUmVmKSgpLG09KDAsRS51c2VSZWYpKCk7KDAsRS51c2VJbXBlcmF0aXZlSGFuZGxlKSh5LmFjdGlvblJlZixmdW5jdGlvbigpe3JldHVybiBSLmN1cnJlbnR9LFtSLmN1cnJlbnRdKTt2YXIgej0oMCxwLlopKGZ1bmN0aW9uKCl7cmV0dXJuIG4udmFsdWV8fFN8fFtdfSx7dmFsdWU6bi52YWx1ZSxvbkNoYW5nZTpuLm9uQ2hhbmdlfSksTT0oMCxpZS5aKSh6LDIpLHU9TVswXSxXPU1bMV0sWj1FLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4gdHlwZW9mIGI9PSJmdW5jdGlvbiI/YjpmdW5jdGlvbihpLHYpe3JldHVybiBpW2JdfHx2fX0sW2JdKSxVPSgwLGVlLkopKGZ1bmN0aW9uKGkpe2lmKHR5cGVvZiBpPT0ibnVtYmVyIiYmIW4ubmFtZSl7aWYoaT49dS5sZW5ndGgpcmV0dXJuIGk7dmFyIHY9dSYmdVtpXTtyZXR1cm4gWj09bnVsbD92b2lkIDA6Wih2LGkpfWlmKCh0eXBlb2YgaT09InN0cmluZyJ8fGk+PXUubGVuZ3RoKSYmbi5uYW1lKXt2YXIgcz11LmZpbmRJbmRleChmdW5jdGlvbihsLGQpe3ZhciBnO3JldHVybihaPT1udWxsfHwoZz1aKGwsZCkpPT09bnVsbHx8Zz09PXZvaWQgMD92b2lkIDA6Zy50b1N0cmluZygpKT09PShpPT1udWxsP3ZvaWQgMDppLnRvU3RyaW5nKCkpfSk7aWYocyE9PS0xKXJldHVybiBzfXJldHVybiBpfSk7KDAsRS51c2VJbXBlcmF0aXZlSGFuZGxlKSgkLGZ1bmN0aW9uKCl7dmFyIGk9ZnVuY3Rpb24obCl7dmFyIGQsZztpZihsPT1udWxsKXRocm93IG5ldyBFcnJvcigicm93SW5kZXggaXMgcmVxdWlyZWQiKTt2YXIgTz1VKGwpLEI9W24ubmFtZSwoZD1PPT1udWxsP3ZvaWQgMDpPLnRvU3RyaW5nKCkpIT09bnVsbCYmZCE9PXZvaWQgMD9kOiIiXS5mbGF0KDEpLmZpbHRlcihCb29sZWFuKTtyZXR1cm4oZz1tLmN1cnJlbnQpPT09bnVsbHx8Zz09PXZvaWQgMD92b2lkIDA6Zy5nZXRGaWVsZFZhbHVlKEIpfSx2PWZ1bmN0aW9uKCl7dmFyIGwsZD1bbi5uYW1lXS5mbGF0KDEpLmZpbHRlcihCb29sZWFuKTtpZihBcnJheS5pc0FycmF5KGQpJiZkLmxlbmd0aD09PTApe3ZhciBnLE89KGc9bS5jdXJyZW50KT09PW51bGx8fGc9PT12b2lkIDA/dm9pZCAwOmcuZ2V0RmllbGRzVmFsdWUoKTtyZXR1cm4gQXJyYXkuaXNBcnJheShPKT9POk9iamVjdC5rZXlzKE8pLm1hcChmdW5jdGlvbihCKXtyZXR1cm4gT1tCXX0pfXJldHVybihsPW0uY3VycmVudCk9PT1udWxsfHxsPT09dm9pZCAwP3ZvaWQgMDpsLmdldEZpZWxkVmFsdWUoZCl9O3JldHVybigwLGYuWikoKDAsZi5aKSh7fSxtLmN1cnJlbnQpLHt9LHtnZXRSb3dEYXRhOmksZ2V0Um93c0RhdGE6dixzZXRSb3dEYXRhOmZ1bmN0aW9uKGwsZCl7dmFyIGcsTztpZihsPT1udWxsKXRocm93IG5ldyBFcnJvcigicm93SW5kZXggaXMgcmVxdWlyZWQiKTt2YXIgQj1VKGwpLEc9W24ubmFtZSwoZz1CPT1udWxsP3ZvaWQgMDpCLnRvU3RyaW5nKCkpIT09bnVsbCYmZyE9PXZvaWQgMD9nOiIiXS5mbGF0KDEpLmZpbHRlcihCb29sZWFuKSxPZT1PYmplY3QuYXNzaWduKHt9LCgwLGYuWikoKDAsZi5aKSh7fSxpKGwpKSxkfHx7fSkpLFBlPSgwLHRlLlopKHt9LEcsT2UpO3JldHVybihPPW0uY3VycmVudCk9PT1udWxsfHxPPT09dm9pZCAwfHxPLnNldEZpZWxkc1ZhbHVlKFBlKSwhMH19KX0sW1Usbi5uYW1lLG0uY3VycmVudF0pLCgwLEUudXNlRWZmZWN0KShmdW5jdGlvbigpe24uY29udHJvbGxlZCYmKHV8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKGksdil7dmFyIHM7KHM9bS5jdXJyZW50KT09PW51bGx8fHM9PT12b2lkIDB8fHMuc2V0RmllbGRzVmFsdWUoKDAsXy5aKSh7fSwiIi5jb25jYXQoWihpLHYpKSxpKSl9LHt9KX0sWygwLGRlLlpQKSh1KSxuLmNvbnRyb2xsZWRdKSwoMCxFLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtpZihuLm5hbWUpe3ZhciBpO20uY3VycmVudD1uPT1udWxsfHwoaT1uLmVkaXRhYmxlKT09PW51bGx8fGk9PT12b2lkIDA/dm9pZCAwOmkuZm9ybX19LFsoRD1uLmVkaXRhYmxlKT09PW51bGx8fEQ9PT12b2lkIDA/dm9pZCAwOkQuZm9ybSxuLm5hbWVdKTt2YXIgST1hfHx7fSxIPUkucmVjb3JkLEo9SS5wb3NpdGlvbix4PUkuY3JlYXRvckJ1dHRvblRleHQsbWU9SS5uZXdSZWNvcmRUeXBlLENlPUkucGFyZW50S2V5LGhlPUkuc3R5bGUsYmU9KDAsQS5aKShJLGdlKSxYPUo9PT0idG9wIixMPSgwLEUudXNlTWVtbykoZnVuY3Rpb24oKXtyZXR1cm4gdHlwZW9mIGM9PSJudW1iZXIiJiZjPD0odT09bnVsbD92b2lkIDA6dS5sZW5ndGgpPyExOmEhPT0hMSYmKDAsQy5qc3gpKEsse3JlY29yZDooMCxuZS5oKShILHU9PW51bGw/dm9pZCAwOnUubGVuZ3RoLHUpfHx7fSxwb3NpdGlvbjpKLHBhcmVudEtleTooMCxuZS5oKShDZSx1PT1udWxsP3ZvaWQgMDp1Lmxlbmd0aCx1KSxuZXdSZWNvcmRUeXBlOm1lLGNoaWxkcmVuOigwLEMuanN4KSh1ZS5aUCwoMCxmLlopKCgwLGYuWikoe3R5cGU6ImRhc2hlZCIsc3R5bGU6KDAsZi5aKSh7ZGlzcGxheToiYmxvY2siLG1hcmdpbjoiMTBweCAwIix3aWR0aDoiMTAwJSJ9LGhlKSxpY29uOigwLEMuanN4KShzZS5aLHt9KX0sYmUpLHt9LHtjaGlsZHJlbjp4fHxlLmdldE1lc3NhZ2UoImVkaXRhYmxlVGFibGUuYWN0aW9uLmFkZCIsIlx1NkRGQlx1NTJBMFx1NEUwMFx1ODg0Q1x1NjU3MFx1NjM2RSIpfSkpfSl9LFthLGMsdT09bnVsbD92b2lkIDA6dS5sZW5ndGhdKSxfZT0oMCxFLnVzZU1lbW8pKGZ1bmN0aW9uKCl7cmV0dXJuIEw/WD97Y29tcG9uZW50czp7aGVhZGVyOnt3cmFwcGVyOmZ1bmN0aW9uKHYpe3ZhciBzLGw9di5jbGFzc05hbWUsZD12LmNoaWxkcmVuO3JldHVybigwLEMuanN4cykoInRoZWFkIix7Y2xhc3NOYW1lOmwsY2hpbGRyZW46W2QsKDAsQy5qc3hzKSgidHIiLHtzdHlsZTp7cG9zaXRpb246InJlbGF0aXZlIn0sY2hpbGRyZW46WygwLEMuanN4KSgidGQiLHtjb2xTcGFuOjAsc3R5bGU6e3Zpc2liaWxpdHk6ImhpZGRlbiJ9LGNoaWxkcmVuOkx9KSwoMCxDLmpzeCkoInRkIix7c3R5bGU6e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsbGVmdDowLHdpZHRoOiIxMDAlIn0sY29sU3Bhbjoocz15LmNvbHVtbnMpPT09bnVsbHx8cz09PXZvaWQgMD92b2lkIDA6cy5sZW5ndGgsY2hpbGRyZW46TH0pXX0pXX0pfX19fTp7dGFibGVWaWV3UmVuZGVyOmZ1bmN0aW9uKHYscyl7dmFyIGwsZDtyZXR1cm4oMCxDLmpzeHMpKEMuRnJhZ21lbnQse2NoaWxkcmVuOlsobD0oZD1uLnRhYmxlVmlld1JlbmRlcik9PT1udWxsfHxkPT09dm9pZCAwP3ZvaWQgMDpkLmNhbGwobix2LHMpKSE9PW51bGwmJmwhPT12b2lkIDA/bDpzLExdfSl9fTp7fX0sW1gsTF0pLE49KDAsZi5aKSh7fSxuLmVkaXRhYmxlKSx5ZT0oMCxlZS5KKShmdW5jdGlvbihpLHYpe3ZhciBzLGwsZDtpZigocz1uLmVkaXRhYmxlKT09PW51bGx8fHM9PT12b2lkIDB8fChsPXMub25WYWx1ZXNDaGFuZ2UpPT09bnVsbHx8bD09PXZvaWQgMHx8bC5jYWxsKHMsaSx2KSwoZD1uLm9uVmFsdWVzQ2hhbmdlKT09PW51bGx8fGQ9PT12b2lkIDB8fGQuY2FsbChuLHYsaSksbi5jb250cm9sbGVkKXt2YXIgZztuPT1udWxsfHwoZz1uLm9uQ2hhbmdlKT09PW51bGx8fGc9PT12b2lkIDB8fGcuY2FsbChuLHYpfX0pO3JldHVybihuIT1udWxsJiZuLm9uVmFsdWVzQ2hhbmdlfHwoaj1uLmVkaXRhYmxlKSE9PW51bGwmJmohPT12b2lkIDAmJmoub25WYWx1ZXNDaGFuZ2V8fG4uY29udHJvbGxlZCYmbiE9PW51bGwmJm4hPT12b2lkIDAmJm4ub25DaGFuZ2UpJiYoTi5vblZhbHVlc0NoYW5nZT15ZSksKDAsQy5qc3hzKShDLkZyYWdtZW50LHtjaGlsZHJlbjpbKDAsQy5qc3gpKHJlLlByb3ZpZGVyLHt2YWx1ZTpSLGNoaWxkcmVuOigwLEMuanN4KSh2ZS5aLCgwLGYuWikoKDAsZi5aKSgoMCxmLlopKHtzZWFyY2g6ITEsb3B0aW9uczohMSxwYWdpbmF0aW9uOiExLHJvd0tleTpiLHJldmFsaWRhdGVPbkZvY3VzOiExfSx5KSxfZSkse30se3RhYmxlTGF5b3V0OiJmaXhlZCIsYWN0aW9uUmVmOlIsb25DaGFuZ2U6byxlZGl0YWJsZTooMCxmLlopKCgwLGYuWikoe30sTikse30se2Zvcm1Qcm9wczooMCxmLlopKHtmb3JtUmVmOm19LE4uZm9ybVByb3BzKX0pLGRhdGFTb3VyY2U6dSxvbkRhdGFTb3VyY2VDaGFuZ2U6ZnVuY3Rpb24odil7aWYoVyh2KSxuLm5hbWUmJko9PT0idG9wIil7dmFyIHMsbD0oMCx0ZS5aKSh7fSxbbi5uYW1lXS5mbGF0KDEpLmZpbHRlcihCb29sZWFuKSx2KTsocz1tLmN1cnJlbnQpPT09bnVsbHx8cz09PXZvaWQgMHx8cy5zZXRGaWVsZHNWYWx1ZShsKX19fSkpfSksbi5uYW1lPygwLEMuanN4KShjZS5aLHtuYW1lOltuLm5hbWVdLGNoaWxkcmVuOmZ1bmN0aW9uKHYpe3ZhciBzLGw7aWYoIVQuY3VycmVudClyZXR1cm4gVC5jdXJyZW50PXUsbnVsbDt2YXIgZD0oMCxWLlopKHYsW24ubmFtZV0uZmxhdCgxKSksZz1kPT1udWxsP3ZvaWQgMDpkLmZpbmQoZnVuY3Rpb24oTyxCKXt2YXIgRztyZXR1cm4hKDAsdy5BKShPLChHPVQuY3VycmVudCk9PT1udWxsfHxHPT09dm9pZCAwP3ZvaWQgMDpHW0JdKX0pO3JldHVybiBULmN1cnJlbnQ9dSxnJiYobj09bnVsbHx8KHM9bi5lZGl0YWJsZSk9PT1udWxsfHxzPT09dm9pZCAwfHwobD1zLm9uVmFsdWVzQ2hhbmdlKT09PW51bGx8fGw9PT12b2lkIDB8fGwuY2FsbChzLGcsZCkpLG51bGx9fSk6bnVsbF19KX1mdW5jdGlvbiBhZShuKXt2YXIgRD1rLlpQLnVzZUZvcm1JbnN0YW5jZSgpO3JldHVybiBuLm5hbWU/KDAsQy5qc3gpKEYuWi5JdGVtLCgwLGYuWikoKDAsZi5aKSh7c3R5bGU6e21heFdpZHRoOiIxMDAlIn0sc2hvdWxkVXBkYXRlOmZ1bmN0aW9uKGUsbyl7dmFyIGM9W24ubmFtZV0uZmxhdCgxKTt0cnl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KCgwLFYuWikoZSxjKSkhPT1KU09OLnN0cmluZ2lmeSgoMCxWLlopKG8sYykpfWNhdGNoKHQpe3JldHVybiEwfX19LG49PW51bGw/dm9pZCAwOm4uZm9ybUl0ZW1Qcm9wcykse30se25hbWU6bi5uYW1lLGNoaWxkcmVuOigwLEMuanN4KShsZSwoMCxmLlopKCgwLGYuWikoe3RhYmxlTGF5b3V0OiJmaXhlZCIsc2Nyb2xsOnt4OiJtYXgtY29udGVudCJ9fSxuKSx7fSx7ZWRpdGFibGU6KDAsZi5aKSgoMCxmLlopKHt9LG4uZWRpdGFibGUpLHt9LHtmb3JtOkR9KX0pKX0pKTooMCxDLmpzeCkobGUsKDAsZi5aKSh7dGFibGVMYXlvdXQ6ImZpeGVkIixzY3JvbGw6e3g6Im1heC1jb250ZW50In19LG4pKX1hZS5SZWNvcmRDcmVhdG9yPUssb2UuWj1hZX0sNjYzMDk6ZnVuY3Rpb24oRWUsb2Uscil7ci5kKG9lLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGp9fSk7dmFyIF89cig2NzI5NCksaWU9cig5Mzk2NyksQT1yLm4oaWUpLFE9cig5ODQyMyksWT1yKDk4Nzg3KSxmPXIoNjk3NjApLHNlPXIoOTYxNTkpLGNlPXIoNDUzNTMpLGs9cig1MzEyNCkscT1yKDExNTY4KSxlZT1yKDE1MDYzKSxkZT1yKDE0NzQ3KSxuZT1yKDgzMjYyKSx3PXIoODM1NTkpO2NvbnN0IHVlPWU9Pntjb25zdHtwYWRkaW5nWFhTOm8sbGluZVdpZHRoOmMsdGFnUGFkZGluZ0hvcml6b250YWw6dCxjb21wb25lbnRDbHM6YSxjYWxjOmJ9PWUsaD1iKHQpLnN1YihjKS5lcXVhbCgpLFM9YihvKS5zdWIoYykuZXF1YWwoKTtyZXR1cm57W2FdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwoMCxkZS5XZikoZSkpLHtkaXNwbGF5OiJpbmxpbmUtYmxvY2siLGhlaWdodDoiYXV0byIsbWFyZ2luSW5saW5lRW5kOmUubWFyZ2luWFMscGFkZGluZ0lubGluZTpoLGZvbnRTaXplOmUudGFnRm9udFNpemUsbGluZUhlaWdodDplLnRhZ0xpbmVIZWlnaHQsd2hpdGVTcGFjZToibm93cmFwIixiYWNrZ3JvdW5kOmUuZGVmYXVsdEJnLGJvcmRlcjpgJHsoMCxxLmJmKShlLmxpbmVXaWR0aCl9ICR7ZS5saW5lVHlwZX0gJHtlLmNvbG9yQm9yZGVyfWAsYm9yZGVyUmFkaXVzOmUuYm9yZGVyUmFkaXVzU00sb3BhY2l0eToxLHRyYW5zaXRpb246YGFsbCAke2UubW90aW9uRHVyYXRpb25NaWR9YCx0ZXh0QWxpZ246InN0YXJ0Iixwb3NpdGlvbjoicmVsYXRpdmUiLFtgJiR7YX0tcnRsYF06e2RpcmVjdGlvbjoicnRsIn0sIiYsIGEsIGE6aG92ZXIiOntjb2xvcjplLmRlZmF1bHRDb2xvcn0sW2Ake2F9LWNsb3NlLWljb25gXTp7bWFyZ2luSW5saW5lU3RhcnQ6Uyxmb250U2l6ZTplLnRhZ0ljb25TaXplLGNvbG9yOmUuY29sb3JUZXh0RGVzY3JpcHRpb24sY3Vyc29yOiJwb2ludGVyIix0cmFuc2l0aW9uOmBhbGwgJHtlLm1vdGlvbkR1cmF0aW9uTWlkfWAsIiY6aG92ZXIiOntjb2xvcjplLmNvbG9yVGV4dEhlYWRpbmd9fSxbYCYke2F9LWhhcy1jb2xvcmBdOntib3JkZXJDb2xvcjoidHJhbnNwYXJlbnQiLFtgJiwgYSwgYTpob3ZlciwgJHtlLmljb25DbHN9LWNsb3NlLCAke2UuaWNvbkNsc30tY2xvc2U6aG92ZXJgXTp7Y29sb3I6ZS5jb2xvclRleHRMaWdodFNvbGlkfX0sIiYtY2hlY2thYmxlIjp7YmFja2dyb3VuZENvbG9yOiJ0cmFuc3BhcmVudCIsYm9yZGVyQ29sb3I6InRyYW5zcGFyZW50IixjdXJzb3I6InBvaW50ZXIiLFtgJjpub3QoJHthfS1jaGVja2FibGUtY2hlY2tlZCk6aG92ZXJgXTp7Y29sb3I6ZS5jb2xvclByaW1hcnksYmFja2dyb3VuZENvbG9yOmUuY29sb3JGaWxsU2Vjb25kYXJ5fSwiJjphY3RpdmUsICYtY2hlY2tlZCI6e2NvbG9yOmUuY29sb3JUZXh0TGlnaHRTb2xpZH0sIiYtY2hlY2tlZCI6e2JhY2tncm91bmRDb2xvcjplLmNvbG9yUHJpbWFyeSwiJjpob3ZlciI6e2JhY2tncm91bmRDb2xvcjplLmNvbG9yUHJpbWFyeUhvdmVyfX0sIiY6YWN0aXZlIjp7YmFja2dyb3VuZENvbG9yOmUuY29sb3JQcmltYXJ5QWN0aXZlfX0sIiYtaGlkZGVuIjp7ZGlzcGxheToibm9uZSJ9LFtgPiAke2UuaWNvbkNsc30gKyBzcGFuLCA+IHNwYW4gKyAke2UuaWNvbkNsc31gXTp7bWFyZ2luSW5saW5lU3RhcnQ6aH19KSxbYCR7YX0tYm9yZGVybGVzc2BdOntib3JkZXJDb2xvcjoidHJhbnNwYXJlbnQiLGJhY2tncm91bmQ6ZS50YWdCb3JkZXJsZXNzQmd9fX0sRj1lPT57Y29uc3R7bGluZVdpZHRoOm8sZm9udFNpemVJY29uOmMsY2FsYzp0fT1lLGE9ZS5mb250U2l6ZVNNO3JldHVybigwLG5lLklYKShlLHt0YWdGb250U2l6ZTphLHRhZ0xpbmVIZWlnaHQ6KDAscS5iZikodChlLmxpbmVIZWlnaHRTTSkubXVsKGEpLmVxdWFsKCkpLHRhZ0ljb25TaXplOnQoYykuc3ViKHQobykubXVsKDIpKS5lcXVhbCgpLHRhZ1BhZGRpbmdIb3Jpem9udGFsOjgsdGFnQm9yZGVybGVzc0JnOmUuZGVmYXVsdEJnfSl9LHA9ZT0+KHtkZWZhdWx0Qmc6bmV3IGVlLnQoZS5jb2xvckZpbGxRdWF0ZXJuYXJ5KS5vbkJhY2tncm91bmQoZS5jb2xvckJnQ29udGFpbmVyKS50b0hleFN0cmluZygpLGRlZmF1bHRDb2xvcjplLmNvbG9yVGV4dH0pO3ZhciBWPSgwLHcuSSQpKCJUYWciLGU9Pntjb25zdCBvPUYoZSk7cmV0dXJuIHVlKG8pfSxwKSx0ZT1mdW5jdGlvbihlLG8pe3ZhciBjPXt9O2Zvcih2YXIgdCBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHQpJiZvLmluZGV4T2YodCk8MCYmKGNbdF09ZVt0XSk7aWYoZSE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBhPTAsdD1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2E8dC5sZW5ndGg7YSsrKW8uaW5kZXhPZih0W2FdKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSx0W2FdKSYmKGNbdFthXV09ZVt0W2FdXSk7cmV0dXJuIGN9LHZlPV8uZm9yd2FyZFJlZigoZSxvKT0+e2NvbnN0e3ByZWZpeENsczpjLHN0eWxlOnQsY2xhc3NOYW1lOmEsY2hlY2tlZDpiLG9uQ2hhbmdlOmgsb25DbGljazpTfT1lLFA9dGUoZSxbInByZWZpeENscyIsInN0eWxlIiwiY2xhc3NOYW1lIiwiY2hlY2tlZCIsIm9uQ2hhbmdlIiwib25DbGljayJdKSx7Z2V0UHJlZml4Q2xzOiQsdGFnOnl9PV8udXNlQ29udGV4dChrLkVfKSxUPVc9PntoPT1udWxsfHxoKCFiKSxTPT1udWxsfHxTKFcpfSxSPSQoInRhZyIsYyksW20seixNXT1WKFIpLHU9QSgpKFIsYCR7Un0tY2hlY2thYmxlYCx7W2Ake1J9LWNoZWNrYWJsZS1jaGVja2VkYF06Yn0seT09bnVsbD92b2lkIDA6eS5jbGFzc05hbWUsYSx6LE0pO3JldHVybiBtKF8uY3JlYXRlRWxlbWVudCgic3BhbiIsT2JqZWN0LmFzc2lnbih7fSxQLHtyZWY6byxzdHlsZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkseT09bnVsbD92b2lkIDA6eS5zdHlsZSksY2xhc3NOYW1lOnUsb25DbGljazpUfSkpKX0pLEM9cig5ODcxOSk7Y29uc3QgZmU9ZT0+KDAsQy5aKShlLChvLGMpPT57bGV0e3RleHRDb2xvcjp0LGxpZ2h0Qm9yZGVyQ29sb3I6YSxsaWdodENvbG9yOmIsZGFya0NvbG9yOmh9PWM7cmV0dXJue1tgJHtlLmNvbXBvbmVudENsc30ke2UuY29tcG9uZW50Q2xzfS0ke299YF06e2NvbG9yOnQsYmFja2dyb3VuZDpiLGJvcmRlckNvbG9yOmEsIiYtaW52ZXJzZSI6e2NvbG9yOmUuY29sb3JUZXh0TGlnaHRTb2xpZCxiYWNrZ3JvdW5kOmgsYm9yZGVyQ29sb3I6aH0sW2AmJHtlLmNvbXBvbmVudENsc30tYm9yZGVybGVzc2BdOntib3JkZXJDb2xvcjoidHJhbnNwYXJlbnQifX19fSk7dmFyIGdlPSgwLHcuYmspKFsiVGFnIiwicHJlc2V0Il0sZT0+e2NvbnN0IG89RihlKTtyZXR1cm4gZmUobyl9LHApO2Z1bmN0aW9uIHJlKGUpe3JldHVybiB0eXBlb2YgZSE9InN0cmluZyI/ZTplLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2Uuc2xpY2UoMSl9Y29uc3QgSz0oZSxvLGMpPT57Y29uc3QgdD1yZShjKTtyZXR1cm57W2Ake2UuY29tcG9uZW50Q2xzfSR7ZS5jb21wb25lbnRDbHN9LSR7b31gXTp7Y29sb3I6ZVtgY29sb3Ike2N9YF0sYmFja2dyb3VuZDplW2Bjb2xvciR7dH1CZ2BdLGJvcmRlckNvbG9yOmVbYGNvbG9yJHt0fUJvcmRlcmBdLFtgJiR7ZS5jb21wb25lbnRDbHN9LWJvcmRlcmxlc3NgXTp7Ym9yZGVyQ29sb3I6InRyYW5zcGFyZW50In19fX07dmFyIGxlPSgwLHcuYmspKFsiVGFnIiwic3RhdHVzIl0sZT0+e2NvbnN0IG89RihlKTtyZXR1cm5bSyhvLCJzdWNjZXNzIiwiU3VjY2VzcyIpLEsobywicHJvY2Vzc2luZyIsIkluZm8iKSxLKG8sImVycm9yIiwiRXJyb3IiKSxLKG8sIndhcm5pbmciLCJXYXJuaW5nIildfSxwKSxhZT1mdW5jdGlvbihlLG8pe3ZhciBjPXt9O2Zvcih2YXIgdCBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHQpJiZvLmluZGV4T2YodCk8MCYmKGNbdF09ZVt0XSk7aWYoZSE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBhPTAsdD1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2E8dC5sZW5ndGg7YSsrKW8uaW5kZXhPZih0W2FdKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSx0W2FdKSYmKGNbdFthXV09ZVt0W2FdXSk7cmV0dXJuIGN9O2NvbnN0IEQ9Xy5mb3J3YXJkUmVmKChlLG8pPT57Y29uc3R7cHJlZml4Q2xzOmMsY2xhc3NOYW1lOnQscm9vdENsYXNzTmFtZTphLHN0eWxlOmIsY2hpbGRyZW46aCxpY29uOlMsY29sb3I6UCxvbkNsb3NlOiQsYm9yZGVyZWQ6eT0hMCx2aXNpYmxlOlR9PWUsUj1hZShlLFsicHJlZml4Q2xzIiwiY2xhc3NOYW1lIiwicm9vdENsYXNzTmFtZSIsInN0eWxlIiwiY2hpbGRyZW4iLCJpY29uIiwiY29sb3IiLCJvbkNsb3NlIiwiYm9yZGVyZWQiLCJ2aXNpYmxlIl0pLHtnZXRQcmVmaXhDbHM6bSxkaXJlY3Rpb246eix0YWc6TX09Xy51c2VDb250ZXh0KGsuRV8pLFt1LFddPV8udXNlU3RhdGUoITApLFo9KDAsUS5aKShSLFsiY2xvc2VJY29uIiwiY2xvc2FibGUiXSk7Xy51c2VFZmZlY3QoKCk9PntUIT09dm9pZCAwJiZXKFQpfSxbVF0pO2NvbnN0IFU9KDAsWS5vMikoUCksST0oMCxZLnlUKShQKSxIPVV8fEksSj1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe2JhY2tncm91bmRDb2xvcjpQJiYhSD9QOnZvaWQgMH0sTT09bnVsbD92b2lkIDA6TS5zdHlsZSksYikseD1tKCJ0YWciLGMpLFttZSxDZSxoZV09Vih4KSxiZT1BKCkoeCxNPT1udWxsP3ZvaWQgMDpNLmNsYXNzTmFtZSx7W2Ake3h9LSR7UH1gXTpILFtgJHt4fS1oYXMtY29sb3JgXTpQJiYhSCxbYCR7eH0taGlkZGVuYF06IXUsW2Ake3h9LXJ0bGBdOno9PT0icnRsIixbYCR7eH0tYm9yZGVybGVzc2BdOiF5fSx0LGEsQ2UsaGUpLFg9dj0+e3Yuc3RvcFByb3BhZ2F0aW9uKCksJD09bnVsbHx8JCh2KSwhdi5kZWZhdWx0UHJldmVudGVkJiZXKCExKX0sWyxMXT0oMCxmLlopKCgwLGYudykoZSksKDAsZi53KShNKSx7Y2xvc2FibGU6ITEsY2xvc2VJY29uUmVuZGVyOnY9Pntjb25zdCBzPV8uY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpgJHt4fS1jbG9zZS1pY29uYCxvbkNsaWNrOlh9LHYpO3JldHVybigwLHNlLndtKSh2LHMsbD0+KHtvbkNsaWNrOmQ9Pnt2YXIgZzsoZz1sPT1udWxsP3ZvaWQgMDpsLm9uQ2xpY2spPT09bnVsbHx8Zz09PXZvaWQgMHx8Zy5jYWxsKGwsZCksWChkKX0sY2xhc3NOYW1lOkEoKShsPT1udWxsP3ZvaWQgMDpsLmNsYXNzTmFtZSxgJHt4fS1jbG9zZS1pY29uYCl9KSl9fSksX2U9dHlwZW9mIFIub25DbGljaz09ImZ1bmN0aW9uInx8aCYmaC50eXBlPT09ImEiLE49U3x8bnVsbCx5ZT1OP18uY3JlYXRlRWxlbWVudChfLkZyYWdtZW50LG51bGwsTixoJiZfLmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwsaCkpOmgsaT1fLmNyZWF0ZUVsZW1lbnQoInNwYW4iLE9iamVjdC5hc3NpZ24oe30sWix7cmVmOm8sY2xhc3NOYW1lOmJlLHN0eWxlOkp9KSx5ZSxMLFUmJl8uY3JlYXRlRWxlbWVudChnZSx7a2V5OiJwcmVzZXQiLHByZWZpeENsczp4fSksSSYmXy5jcmVhdGVFbGVtZW50KGxlLHtrZXk6InN0YXR1cyIscHJlZml4Q2xzOnh9KSk7cmV0dXJuIG1lKF9lP18uY3JlYXRlRWxlbWVudChjZS5aLHtjb21wb25lbnQ6IlRhZyJ9LGkpOmkpfSk7RC5DaGVja2FibGVUYWc9dmU7dmFyIGo9RH19XSk7CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzYzOTAuNDk2NDM4ODUuYXN5bmMuanMgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzYzOTAuNDk2NDM4ODUuYXN5bmMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTM5NmI2OAotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNjM5MC40OTY0Mzg4NS5hc3luYy5qcwpAQCAtMCwwICsxIEBACisidXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W10pLnB1c2goW1s2MzkwXSx7OTYzOTA6ZnVuY3Rpb24obyxuLHQpe3QucihuKSx0LmQobix7ZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybiBFfX0pO3ZhciBPPXQoNjcyOTQpLHU9dCg3Njc3Mikscz10KDg1ODkzKTtmdW5jdGlvbiBFKCl7dmFyIGU9KDAsdS51c2VPdXRsZXRDb250ZXh0KSgpO3JldHVybigwLHMuanN4KSh1Lk91dGxldCx7Y29udGV4dDplfSl9fX1dKTsKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNjQxMi4wYTNiYjEzNy5hc3luYy5qcyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNjQxMi4wYTNiYjEzNy5hc3luYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZGQ2ZDVmCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy82NDEyLjBhM2JiMTM3LmFzeW5jLmpzCkBAIC0wLDAgKzEgQEAKKyJ1c2Ugc3RyaWN0Ijsoc2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Bybz1zZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvfHxbXSkucHVzaChbWzY0MTJdLHsyNjQxMjpmdW5jdGlvbih2ZSxYLGYpe2YuZChYLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGNlfX0pO3ZhciBvPWYoNjcyOTQpLEc9Zig5Mzk2Nyksaj1mLm4oRyksVD1mKDc0NDQzKSxVPWYoNTMxMjQpLEY9Zig5ODY3NSksWj1mKDI1Mzc4KSxWPXt4eGw6Myx4bDozLGxnOjMsbWQ6MyxzbToyLHhzOjF9LE09by5jcmVhdGVDb250ZXh0KHt9KSxKPWYoNTAzNDQpLEs9ZnVuY3Rpb24oZSx0KXt2YXIgcz17fTtmb3IodmFyIG4gaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxuKSYmdC5pbmRleE9mKG4pPDAmJihzW25dPWVbbl0pO2lmKGUhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgbD0wLG49T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtsPG4ubGVuZ3RoO2wrKyl0LmluZGV4T2YobltsXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsbltsXSkmJihzW25bbF1dPWVbbltsXV0pO3JldHVybiBzfTtjb25zdCBRPWU9PigwLEouWikoZSkubWFwKHQ9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0PT1udWxsP3ZvaWQgMDp0LnByb3BzKSx7a2V5OnQua2V5fSkpO2Z1bmN0aW9uIFkoZSx0LHMpe2NvbnN0IG49by51c2VNZW1vKCgpPT50fHxRKHMpLFt0LHNdKTtyZXR1cm4gby51c2VNZW1vKCgpPT5uLm1hcChhPT57dmFye3NwYW46aX09YSxnPUsoYSxbInNwYW4iXSk7cmV0dXJuIGk9PT0iZmlsbGVkIj9PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZykse2ZpbGxlZDohMH0pOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxnKSx7c3Bhbjp0eXBlb2YgaT09Im51bWJlciI/aTooMCxULm05KShlLGkpfSl9KSxbbixlXSl9dmFyIHE9ZnVuY3Rpb24oZSx0KXt2YXIgcz17fTtmb3IodmFyIG4gaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxuKSYmdC5pbmRleE9mKG4pPDAmJihzW25dPWVbbl0pO2lmKGUhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgbD0wLG49T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtsPG4ubGVuZ3RoO2wrKyl0LmluZGV4T2YobltsXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsbltsXSkmJihzW25bbF1dPWVbbltsXV0pO3JldHVybiBzfTtmdW5jdGlvbiBfKGUsdCl7bGV0IHM9W10sbj1bXSxsPSExLGE9MDtyZXR1cm4gZS5maWx0ZXIoaT0+aSkuZm9yRWFjaChpPT57Y29uc3R7ZmlsbGVkOmd9PWksdT1xKGksWyJmaWxsZWQiXSk7aWYoZyl7bi5wdXNoKHUpLHMucHVzaChuKSxuPVtdLGE9MDtyZXR1cm59Y29uc3Qgdj10LWE7YSs9aS5zcGFufHwxLGE+PXQ/KGE+dD8obD0hMCxuLnB1c2goT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHUpLHtzcGFuOnZ9KSkpOm4ucHVzaCh1KSxzLnB1c2gobiksbj1bXSxhPTApOm4ucHVzaCh1KX0pLG4ubGVuZ3RoPjAmJnMucHVzaChuKSxzPXMubWFwKGk9Pntjb25zdCBnPWkucmVkdWNlKCh1LHYpPT51Kyh2LnNwYW58fDEpLDApO2lmKGc8dCl7Y29uc3QgdT1pW2kubGVuZ3RoLTFdO3JldHVybiB1LnNwYW49dC0oZy0odS5zcGFufHwxKSksaX1yZXR1cm4gaX0pLFtzLGxdfXZhciBrPShlLHQpPT57Y29uc3RbcyxuXT0oMCxvLnVzZU1lbW8pKCgpPT5fKHQsZSksW3QsZV0pO3JldHVybiBzfSxlZT1lPT57bGV0e2NoaWxkcmVuOnR9PWU7cmV0dXJuIHR9O2Z1bmN0aW9uIEQoZSl7cmV0dXJuIGUhPW51bGx9dmFyIEI9ZT0+e2NvbnN0e2l0ZW1QcmVmaXhDbHM6dCxjb21wb25lbnQ6cyxzcGFuOm4sY2xhc3NOYW1lOmwsc3R5bGU6YSxsYWJlbFN0eWxlOmksY29udGVudFN0eWxlOmcsYm9yZGVyZWQ6dSxsYWJlbDp2LGNvbnRlbnQ6JCxjb2xvbjpTLHR5cGU6bSxzdHlsZXM6Yn09ZSx4PXMscj1vLnVzZUNvbnRleHQoTSkse2NsYXNzTmFtZXM6cH09cjtyZXR1cm4gdT9vLmNyZWF0ZUVsZW1lbnQoeCx7Y2xhc3NOYW1lOmooKSh7W2Ake3R9LWl0ZW0tbGFiZWxgXTptPT09ImxhYmVsIixbYCR7dH0taXRlbS1jb250ZW50YF06bT09PSJjb250ZW50IixbYCR7cD09bnVsbD92b2lkIDA6cC5sYWJlbH1gXTptPT09ImxhYmVsIixbYCR7cD09bnVsbD92b2lkIDA6cC5jb250ZW50fWBdOm09PT0iY29udGVudCJ9LGwpLHN0eWxlOmEsY29sU3BhbjpufSxEKHYpJiZvLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtzdHlsZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30saSksYj09bnVsbD92b2lkIDA6Yi5sYWJlbCl9LHYpLEQoJCkmJm8uY3JlYXRlRWxlbWVudCgic3BhbiIse3N0eWxlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxpKSxiPT1udWxsP3ZvaWQgMDpiLmNvbnRlbnQpfSwkKSk6by5jcmVhdGVFbGVtZW50KHgse2NsYXNzTmFtZTpqKCkoYCR7dH0taXRlbWAsbCksc3R5bGU6YSxjb2xTcGFuOm59LG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmAke3R9LWl0ZW0tY29udGFpbmVyYH0sKHZ8fHY9PT0wKSYmby5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmooKShgJHt0fS1pdGVtLWxhYmVsYCxwPT1udWxsP3ZvaWQgMDpwLmxhYmVsLHtbYCR7dH0taXRlbS1uby1jb2xvbmBdOiFTfSksc3R5bGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGkpLGI9PW51bGw/dm9pZCAwOmIubGFiZWwpfSx2KSwoJHx8JD09PTApJiZvLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6aigpKGAke3R9LWl0ZW0tY29udGVudGAscD09bnVsbD92b2lkIDA6cC5jb250ZW50KSxzdHlsZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZyksYj09bnVsbD92b2lkIDA6Yi5jb250ZW50KX0sJCkpKX07ZnVuY3Rpb24gTChlLHQscyl7bGV0e2NvbG9uOm4scHJlZml4Q2xzOmwsYm9yZGVyZWQ6YX09dCx7Y29tcG9uZW50OmksdHlwZTpnLHNob3dMYWJlbDp1LHNob3dDb250ZW50OnYsbGFiZWxTdHlsZTokLGNvbnRlbnRTdHlsZTpTLHN0eWxlczptfT1zO3JldHVybiBlLm1hcCgoYix4KT0+e2xldHtsYWJlbDpyLGNoaWxkcmVuOnAscHJlZml4Q2xzOmM9bCxjbGFzc05hbWU6QyxzdHlsZTpFLGxhYmVsU3R5bGU6dyxjb250ZW50U3R5bGU6SSxzcGFuOlA9MSxrZXk6TyxzdHlsZXM6ZH09YjtyZXR1cm4gdHlwZW9mIGk9PSJzdHJpbmciP28uY3JlYXRlRWxlbWVudChCLHtrZXk6YCR7Z30tJHtPfHx4fWAsY2xhc3NOYW1lOkMsc3R5bGU6RSxzdHlsZXM6e2xhYmVsOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sJCksbT09bnVsbD92b2lkIDA6bS5sYWJlbCksdyksZD09bnVsbD92b2lkIDA6ZC5sYWJlbCksY29udGVudDpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LFMpLG09PW51bGw/dm9pZCAwOm0uY29udGVudCksSSksZD09bnVsbD92b2lkIDA6ZC5jb250ZW50KX0sc3BhbjpQLGNvbG9uOm4sY29tcG9uZW50OmksaXRlbVByZWZpeENsczpjLGJvcmRlcmVkOmEsbGFiZWw6dT9yOm51bGwsY29udGVudDp2P3A6bnVsbCx0eXBlOmd9KTpbby5jcmVhdGVFbGVtZW50KEIse2tleTpgbGFiZWwtJHtPfHx4fWAsY2xhc3NOYW1lOkMsc3R5bGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCQpLG09PW51bGw/dm9pZCAwOm0ubGFiZWwpLEUpLHcpLGQ9PW51bGw/dm9pZCAwOmQubGFiZWwpLHNwYW46MSxjb2xvbjpuLGNvbXBvbmVudDppWzBdLGl0ZW1QcmVmaXhDbHM6Yyxib3JkZXJlZDphLGxhYmVsOnIsdHlwZToibGFiZWwifSksby5jcmVhdGVFbGVtZW50KEIse2tleTpgY29udGVudC0ke098fHh9YCxjbGFzc05hbWU6QyxzdHlsZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sUyksbT09bnVsbD92b2lkIDA6bS5jb250ZW50KSxFKSxJKSxkPT1udWxsP3ZvaWQgMDpkLmNvbnRlbnQpLHNwYW46UCoyLTEsY29tcG9uZW50OmlbMV0saXRlbVByZWZpeENsczpjLGJvcmRlcmVkOmEsY29udGVudDpwLHR5cGU6ImNvbnRlbnQifSldfSl9dmFyIHRlPWU9Pntjb25zdCB0PW8udXNlQ29udGV4dChNKSx7cHJlZml4Q2xzOnMsdmVydGljYWw6bixyb3c6bCxpbmRleDphLGJvcmRlcmVkOml9PWU7cmV0dXJuIG4/by5jcmVhdGVFbGVtZW50KG8uRnJhZ21lbnQsbnVsbCxvLmNyZWF0ZUVsZW1lbnQoInRyIix7a2V5OmBsYWJlbC0ke2F9YCxjbGFzc05hbWU6YCR7c30tcm93YH0sTChsLGUsT2JqZWN0LmFzc2lnbih7Y29tcG9uZW50OiJ0aCIsdHlwZToibGFiZWwiLHNob3dMYWJlbDohMH0sdCkpKSxvLmNyZWF0ZUVsZW1lbnQoInRyIix7a2V5OmBjb250ZW50LSR7YX1gLGNsYXNzTmFtZTpgJHtzfS1yb3dgfSxMKGwsZSxPYmplY3QuYXNzaWduKHtjb21wb25lbnQ6InRkIix0eXBlOiJjb250ZW50IixzaG93Q29udGVudDohMH0sdCkpKSk6by5jcmVhdGVFbGVtZW50KCJ0ciIse2tleTphLGNsYXNzTmFtZTpgJHtzfS1yb3dgfSxMKGwsZSxPYmplY3QuYXNzaWduKHtjb21wb25lbnQ6aT9bInRoIiwidGQiXToidGQiLHR5cGU6Iml0ZW0iLHNob3dMYWJlbDohMCxzaG93Q29udGVudDohMH0sdCkpKX0seT1mKDExNTY4KSxXPWYoMTQ3NDcpLG5lPWYoODM1NTkpLGxlPWYoODMyNjIpO2NvbnN0IHNlPWU9Pntjb25zdHtjb21wb25lbnRDbHM6dCxsYWJlbEJnOnN9PWU7cmV0dXJue1tgJiR7dH0tYm9yZGVyZWRgXTp7W2A+ICR7dH0tdmlld2BdOntib3JkZXI6YCR7KDAseS5iZikoZS5saW5lV2lkdGgpfSAke2UubGluZVR5cGV9ICR7ZS5jb2xvclNwbGl0fWAsIj4gdGFibGUiOnt0YWJsZUxheW91dDoiYXV0byJ9LFtgJHt0fS1yb3dgXTp7Ym9yZGVyQm90dG9tOmAkeygwLHkuYmYpKGUubGluZVdpZHRoKX0gJHtlLmxpbmVUeXBlfSAke2UuY29sb3JTcGxpdH1gLCImOmxhc3QtY2hpbGQiOntib3JkZXJCb3R0b206Im5vbmUifSxbYD4gJHt0fS1pdGVtLWxhYmVsLCA+ICR7dH0taXRlbS1jb250ZW50YF06e3BhZGRpbmc6YCR7KDAseS5iZikoZS5wYWRkaW5nKX0gJHsoMCx5LmJmKShlLnBhZGRpbmdMRyl9YCxib3JkZXJJbmxpbmVFbmQ6YCR7KDAseS5iZikoZS5saW5lV2lkdGgpfSAke2UubGluZVR5cGV9ICR7ZS5jb2xvclNwbGl0fWAsIiY6bGFzdC1jaGlsZCI6e2JvcmRlcklubGluZUVuZDoibm9uZSJ9fSxbYD4gJHt0fS1pdGVtLWxhYmVsYF06e2NvbG9yOmUuY29sb3JUZXh0U2Vjb25kYXJ5LGJhY2tncm91bmRDb2xvcjpzLCImOjphZnRlciI6e2Rpc3BsYXk6Im5vbmUifX19fSxbYCYke3R9LW1pZGRsZWBdOntbYCR7dH0tcm93YF06e1tgPiAke3R9LWl0ZW0tbGFiZWwsID4gJHt0fS1pdGVtLWNvbnRlbnRgXTp7cGFkZGluZzpgJHsoMCx5LmJmKShlLnBhZGRpbmdTTSl9ICR7KDAseS5iZikoZS5wYWRkaW5nTEcpfWB9fX0sW2AmJHt0fS1zbWFsbGBdOntbYCR7dH0tcm93YF06e1tgPiAke3R9LWl0ZW0tbGFiZWwsID4gJHt0fS1pdGVtLWNvbnRlbnRgXTp7cGFkZGluZzpgJHsoMCx5LmJmKShlLnBhZGRpbmdYUyl9ICR7KDAseS5iZikoZS5wYWRkaW5nKX1gfX19fX19LG9lPWU9Pntjb25zdHtjb21wb25lbnRDbHM6dCxleHRyYUNvbG9yOnMsaXRlbVBhZGRpbmdCb3R0b206bixpdGVtUGFkZGluZ0VuZDpsLGNvbG9uTWFyZ2luUmlnaHQ6YSxjb2xvbk1hcmdpbkxlZnQ6aSx0aXRsZU1hcmdpbkJvdHRvbTpnfT1lO3JldHVybntbdF06T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sKDAsVy5XZikoZSkpLHNlKGUpKSx7IiYtcnRsIjp7ZGlyZWN0aW9uOiJydGwifSxbYCR7dH0taGVhZGVyYF06e2Rpc3BsYXk6ImZsZXgiLGFsaWduSXRlbXM6ImNlbnRlciIsbWFyZ2luQm90dG9tOmd9LFtgJHt0fS10aXRsZWBdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxXLnZTKSx7ZmxleDoiYXV0byIsY29sb3I6ZS50aXRsZUNvbG9yLGZvbnRXZWlnaHQ6ZS5mb250V2VpZ2h0U3Ryb25nLGZvbnRTaXplOmUuZm9udFNpemVMRyxsaW5lSGVpZ2h0OmUubGluZUhlaWdodExHfSksW2Ake3R9LWV4dHJhYF06e21hcmdpbklubGluZVN0YXJ0OiJhdXRvIixjb2xvcjpzLGZvbnRTaXplOmUuZm9udFNpemV9LFtgJHt0fS12aWV3YF06e3dpZHRoOiIxMDAlIixib3JkZXJSYWRpdXM6ZS5ib3JkZXJSYWRpdXNMRyx0YWJsZTp7d2lkdGg6IjEwMCUiLHRhYmxlTGF5b3V0OiJmaXhlZCIsYm9yZGVyQ29sbGFwc2U6ImNvbGxhcHNlIn19LFtgJHt0fS1yb3dgXTp7Ij4gdGgsID4gdGQiOntwYWRkaW5nQm90dG9tOm4scGFkZGluZ0lubGluZUVuZDpsfSwiPiB0aDpsYXN0LWNoaWxkLCA+IHRkOmxhc3QtY2hpbGQiOntwYWRkaW5nSW5saW5lRW5kOjB9LCImOmxhc3QtY2hpbGQiOntib3JkZXJCb3R0b206Im5vbmUiLCI+IHRoLCA+IHRkIjp7cGFkZGluZ0JvdHRvbTowfX19LFtgJHt0fS1pdGVtLWxhYmVsYF06e2NvbG9yOmUubGFiZWxDb2xvcixmb250V2VpZ2h0OiJub3JtYWwiLGZvbnRTaXplOmUuZm9udFNpemUsbGluZUhlaWdodDplLmxpbmVIZWlnaHQsdGV4dEFsaWduOiJzdGFydCIsIiY6OmFmdGVyIjp7Y29udGVudDonIjoiJyxwb3NpdGlvbjoicmVsYXRpdmUiLHRvcDotLjUsbWFyZ2luSW5saW5lOmAkeygwLHkuYmYpKGkpfSAkeygwLHkuYmYpKGEpfWB9LFtgJiR7dH0taXRlbS1uby1jb2xvbjo6YWZ0ZXJgXTp7Y29udGVudDonIiInfX0sW2Ake3R9LWl0ZW0tbm8tbGFiZWxgXTp7IiY6OmFmdGVyIjp7bWFyZ2luOjAsY29udGVudDonIiInfX0sW2Ake3R9LWl0ZW0tY29udGVudGBdOntkaXNwbGF5OiJ0YWJsZS1jZWxsIixmbGV4OjEsY29sb3I6ZS5jb250ZW50Q29sb3IsZm9udFNpemU6ZS5mb250U2l6ZSxsaW5lSGVpZ2h0OmUubGluZUhlaWdodCx3b3JkQnJlYWs6ImJyZWFrLXdvcmQiLG92ZXJmbG93V3JhcDoiYnJlYWstd29yZCJ9LFtgJHt0fS1pdGVtYF06e3BhZGRpbmdCb3R0b206MCx2ZXJ0aWNhbEFsaWduOiJ0b3AiLCImLWNvbnRhaW5lciI6e2Rpc3BsYXk6ImZsZXgiLFtgJHt0fS1pdGVtLWxhYmVsYF06e2Rpc3BsYXk6ImlubGluZS1mbGV4IixhbGlnbkl0ZW1zOiJiYXNlbGluZSJ9LFtgJHt0fS1pdGVtLWNvbnRlbnRgXTp7ZGlzcGxheToiaW5saW5lLWZsZXgiLGFsaWduSXRlbXM6ImJhc2VsaW5lIixtaW5XaWR0aDoiMWVtIn19fSwiJi1taWRkbGUiOntbYCR7dH0tcm93YF06eyI+IHRoLCA+IHRkIjp7cGFkZGluZ0JvdHRvbTplLnBhZGRpbmdTTX19fSwiJi1zbWFsbCI6e1tgJHt0fS1yb3dgXTp7Ij4gdGgsID4gdGQiOntwYWRkaW5nQm90dG9tOmUucGFkZGluZ1hTfX19fSl9fSxpZT1lPT4oe2xhYmVsQmc6ZS5jb2xvckZpbGxBbHRlcixsYWJlbENvbG9yOmUuY29sb3JUZXh0VGVydGlhcnksdGl0bGVDb2xvcjplLmNvbG9yVGV4dCx0aXRsZU1hcmdpbkJvdHRvbTplLmZvbnRTaXplU00qZS5saW5lSGVpZ2h0U00saXRlbVBhZGRpbmdCb3R0b206ZS5wYWRkaW5nLGl0ZW1QYWRkaW5nRW5kOmUucGFkZGluZyxjb2xvbk1hcmdpblJpZ2h0OmUubWFyZ2luWFMsY29sb25NYXJnaW5MZWZ0OmUubWFyZ2luWFhTLzIsY29udGVudENvbG9yOmUuY29sb3JUZXh0LGV4dHJhQ29sb3I6ZS5jb2xvclRleHR9KTt2YXIgYWU9KDAsbmUuSSQpKCJEZXNjcmlwdGlvbnMiLGU9Pntjb25zdCB0PSgwLGxlLklYKShlLHt9KTtyZXR1cm4gb2UodCl9LGllKSxyZT1mdW5jdGlvbihlLHQpe3ZhciBzPXt9O2Zvcih2YXIgbiBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLG4pJiZ0LmluZGV4T2Yobik8MCYmKHNbbl09ZVtuXSk7aWYoZSE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBsPTAsbj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2w8bi5sZW5ndGg7bCsrKXQuaW5kZXhPZihuW2xdKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxuW2xdKSYmKHNbbltsXV09ZVtuW2xdXSk7cmV0dXJuIHN9O2NvbnN0IEE9ZT0+e2NvbnN0e3ByZWZpeENsczp0LHRpdGxlOnMsZXh0cmE6bixjb2x1bW46bCxjb2xvbjphPSEwLGJvcmRlcmVkOmksbGF5b3V0OmcsY2hpbGRyZW46dSxjbGFzc05hbWU6dixyb290Q2xhc3NOYW1lOiQsc3R5bGU6UyxzaXplOm0sbGFiZWxTdHlsZTpiLGNvbnRlbnRTdHlsZTp4LHN0eWxlczpyLGl0ZW1zOnAsY2xhc3NOYW1lczpjfT1lLEM9cmUoZSxbInByZWZpeENscyIsInRpdGxlIiwiZXh0cmEiLCJjb2x1bW4iLCJjb2xvbiIsImJvcmRlcmVkIiwibGF5b3V0IiwiY2hpbGRyZW4iLCJjbGFzc05hbWUiLCJyb290Q2xhc3NOYW1lIiwic3R5bGUiLCJzaXplIiwibGFiZWxTdHlsZSIsImNvbnRlbnRTdHlsZSIsInN0eWxlcyIsIml0ZW1zIiwiY2xhc3NOYW1lcyJdKSx7Z2V0UHJlZml4Q2xzOkUsZGlyZWN0aW9uOncsY2xhc3NOYW1lOkksc3R5bGU6UCxjbGFzc05hbWVzOk8sc3R5bGVzOmR9PSgwLFUuZGopKCJkZXNjcmlwdGlvbnMiKSxoPUUoImRlc2NyaXB0aW9ucyIsdCksej0oMCxaLlopKCksZGU9by51c2VNZW1vKCgpPT57dmFyIE47cmV0dXJuIHR5cGVvZiBsPT0ibnVtYmVyIj9sOihOPSgwLFQubTkpKHosT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LFYpLGwpKSkhPT1udWxsJiZOIT09dm9pZCAwP046M30sW3osbF0pLG1lPVkoeixwLHUpLFI9KDAsRi5aKShtKSxiZT1rKGRlLG1lKSxbcGUsZ2UsdWVdPWFlKGgpLGZlPW8udXNlTWVtbygoKT0+KHtsYWJlbFN0eWxlOmIsY29udGVudFN0eWxlOngsc3R5bGVzOntjb250ZW50Ok9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxkLmNvbnRlbnQpLHI9PW51bGw/dm9pZCAwOnIuY29udGVudCksbGFiZWw6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGQubGFiZWwpLHI9PW51bGw/dm9pZCAwOnIubGFiZWwpfSxjbGFzc05hbWVzOntsYWJlbDpqKCkoTy5sYWJlbCxjPT1udWxsP3ZvaWQgMDpjLmxhYmVsKSxjb250ZW50OmooKShPLmNvbnRlbnQsYz09bnVsbD92b2lkIDA6Yy5jb250ZW50KX19KSxbYix4LHIsYyxPLGRdKTtyZXR1cm4gcGUoby5jcmVhdGVFbGVtZW50KE0uUHJvdmlkZXIse3ZhbHVlOmZlfSxvLmNyZWF0ZUVsZW1lbnQoImRpdiIsT2JqZWN0LmFzc2lnbih7Y2xhc3NOYW1lOmooKShoLEksTy5yb290LGM9PW51bGw/dm9pZCAwOmMucm9vdCx7W2Ake2h9LSR7Un1gXTpSJiZSIT09ImRlZmF1bHQiLFtgJHtofS1ib3JkZXJlZGBdOiEhaSxbYCR7aH0tcnRsYF06dz09PSJydGwifSx2LCQsZ2UsdWUpLHN0eWxlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sUCksZC5yb290KSxyPT1udWxsP3ZvaWQgMDpyLnJvb3QpLFMpfSxDKSwoc3x8bikmJm8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmooKShgJHtofS1oZWFkZXJgLE8uaGVhZGVyLGM9PW51bGw/dm9pZCAwOmMuaGVhZGVyKSxzdHlsZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZC5oZWFkZXIpLHI9PW51bGw/dm9pZCAwOnIuaGVhZGVyKX0scyYmby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6aigpKGAke2h9LXRpdGxlYCxPLnRpdGxlLGM9PW51bGw/dm9pZCAwOmMudGl0bGUpLHN0eWxlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxkLnRpdGxlKSxyPT1udWxsP3ZvaWQgMDpyLnRpdGxlKX0scyksbiYmby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6aigpKGAke2h9LWV4dHJhYCxPLmV4dHJhLGM9PW51bGw/dm9pZCAwOmMuZXh0cmEpLHN0eWxlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxkLmV4dHJhKSxyPT1udWxsP3ZvaWQgMDpyLmV4dHJhKX0sbikpLG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmAke2h9LXZpZXdgfSxvLmNyZWF0ZUVsZW1lbnQoInRhYmxlIixudWxsLG8uY3JlYXRlRWxlbWVudCgidGJvZHkiLG51bGwsYmUubWFwKChOLEgpPT5vLmNyZWF0ZUVsZW1lbnQodGUse2tleTpILGluZGV4OkgsY29sb246YSxwcmVmaXhDbHM6aCx2ZXJ0aWNhbDpnPT09InZlcnRpY2FsIixib3JkZXJlZDppLHJvdzpOfSkpKSkpKSkpfTtBLkl0ZW09ZWU7dmFyIGNlPUF9fV0pOwpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy82NDkyLjNiZmExNWVkLmFzeW5jLmpzIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy82NDkyLjNiZmExNWVkLmFzeW5jLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM2NjZhODEKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzY0OTIuM2JmYTE1ZWQuYXN5bmMuanMKQEAgLTAsMCArMSBAQAorInVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvPXNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm98fFtdKS5wdXNoKFtbNjQ5Ml0sezQ2NDkyOmZ1bmN0aW9uKGosaSxuKXtuLnIoaSk7dmFyIGw9big2NzI5NCkscj1uKDE3Nzg4KSx1PW4oODM2MjIpLHM9bigyNjQxMiksdD1uKDc2NzcyKSxjPW4oNjEzMTQpLGU9big4NTg5MyksRT1mdW5jdGlvbihvKXt2YXIgZCxhPW8udmFsdWVzLF89by5zdGF0dXNPcHRpb25zOygwLGwudXNlRWZmZWN0KShmdW5jdGlvbigpe30sW29dKTt2YXIgTT0oMCx0LnVzZUludGwpKCksZj17MDoiXHU5RUQ4XHU4QkE0XHU3QjU2XHU3NTY1IiwxOiJcdTdBQ0JcdTUzNzNcdTYyNjdcdTg4NEMiLDI6Ilx1NjI2N1x1ODg0Q1x1NEUwMFx1NkIyMSIsMzoiXHU2NTNFXHU1RjAzXHU2MjY3XHU4ODRDIn0sbT1mdW5jdGlvbigpe28ub25DYW5jZWwoKX07cmV0dXJuKDAsZS5qc3gpKHIuWix7d2lkdGg6ODAwLHRpdGxlOk0uZm9ybWF0TWVzc2FnZSh7aWQ6Im1vbml0b3Iuam9iLmRldGFpbCIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjRDRFx1NEY1Q1x1NjVFNVx1NUZEN1x1OEJFNlx1N0VDNlx1NEZFMVx1NjA2RiJ9KSxvcGVuOm8ub3BlbixkZXN0cm95T25DbG9zZTohMCxvbkNhbmNlbDptLGZvb3RlcjpbKDAsZS5qc3gpKHUuWlAse29uQ2xpY2s6bSxjaGlsZHJlbjoiXHU1MTczXHU5NUVEIn0sImJhY2siKV0sY2hpbGRyZW46KDAsZS5qc3hzKShzLlose2NvbHVtbjoyNCxjaGlsZHJlbjpbKDAsZS5qc3gpKHMuWi5JdGVtLHtzcGFuOjEyLGxhYmVsOigwLGUuanN4KSh0LkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJtb25pdG9yLmpvYi5qb2JfaWQiLGRlZmF1bHRNZXNzYWdlOiJcdTRFRkJcdTUyQTFcdTdGMTZcdTUzRjcifSksY2hpbGRyZW46YS5qb2JJZH0pLCgwLGUuanN4KShzLlouSXRlbSx7c3BhbjoxMixsYWJlbDooMCxlLmpzeCkodC5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoibW9uaXRvci5qb2Iuam9iX25hbWUiLGRlZmF1bHRNZXNzYWdlOiJcdTRFRkJcdTUyQTFcdTU0MERcdTc5RjAifSksY2hpbGRyZW46YS5qb2JOYW1lfSksKDAsZS5qc3gpKHMuWi5JdGVtLHtzcGFuOjEyLGxhYmVsOigwLGUuanN4KSh0LkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJtb25pdG9yLmpvYi5qb2JfZ3JvdXAiLGRlZmF1bHRNZXNzYWdlOiJcdTRFRkJcdTUyQTFcdTdFQzRcdTU0MEQifSksY2hpbGRyZW46YS5qb2JHcm91cH0pLCgwLGUuanN4KShzLlouSXRlbSx7c3BhbjoxMixsYWJlbDooMCxlLmpzeCkodC5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoibW9uaXRvci5qb2IuY29uY3VycmVudCIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjYyRlx1NTQyNlx1NUU3Nlx1NTNEMVx1NjI2N1x1ODg0QyJ9KSxjaGlsZHJlbjphLmNvbmN1cnJlbnQ9PT0iMSI/Ilx1Nzk4MVx1NkI2MiI6Ilx1NTE0MVx1OEJCOCJ9KSwoMCxlLmpzeCkocy5aLkl0ZW0se3NwYW46MTIsbGFiZWw6KDAsZS5qc3gpKHQuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3Iuam9iLm1pc2ZpcmVfcG9saWN5IixkZWZhdWx0TWVzc2FnZToiXHU4QkExXHU1MjEyXHU2MjY3XHU4ODRDXHU5NTE5XHU4QkVGXHU3QjU2XHU3NTY1In0pLGNoaWxkcmVuOmZbYS5taXNmaXJlUG9saWN5P2EubWlzZmlyZVBvbGljeToiMCJdfSksKDAsZS5qc3gpKHMuWi5JdGVtLHtzcGFuOjEyLGxhYmVsOigwLGUuanN4KSh0LkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJtb25pdG9yLmpvYi5jcmVhdGVfdGltZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NTIxQlx1NUVGQVx1NjVGNlx1OTVGNCJ9KSxjaGlsZHJlbjooZD1hLmNyZWF0ZVRpbWUpPT09bnVsbHx8ZD09PXZvaWQgMD92b2lkIDA6ZC50b1N0cmluZygpfSksKDAsZS5qc3gpKHMuWi5JdGVtLHtzcGFuOjEyLGxhYmVsOigwLGUuanN4KSh0LkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJtb25pdG9yLmpvYi5zdGF0dXMiLGRlZmF1bHRNZXNzYWdlOiJcdTcyQjZcdTYwMDEifSksY2hpbGRyZW46KDAsYy5uKShfLGEuc3RhdHVzLCJcdTY3MkFcdTc3RTUiKX0pLCgwLGUuanN4KShzLlouSXRlbSx7c3BhbjoxMixsYWJlbDooMCxlLmpzeCkodC5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoibW9uaXRvci5qb2IubmV4dF92YWxpZF90aW1lIixkZWZhdWx0TWVzc2FnZToiXHU0RTBCXHU2QjIxXHU2MjY3XHU4ODRDXHU2NUY2XHU5NUY0In0pLGNoaWxkcmVuOmEubmV4dFZhbGlkVGltZX0pLCgwLGUuanN4KShzLlouSXRlbSx7c3BhbjoyNCxsYWJlbDooMCxlLmpzeCkodC5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoibW9uaXRvci5qb2IuY3Jvbl9leHByZXNzaW9uIixkZWZhdWx0TWVzc2FnZToiY3Jvblx1NjI2N1x1ODg0Q1x1ODg2OFx1OEZCRVx1NUYwRiJ9KSxjaGlsZHJlbjphLmNyb25FeHByZXNzaW9ufSksKDAsZS5qc3gpKHMuWi5JdGVtLHtzcGFuOjI0LGxhYmVsOigwLGUuanN4KSh0LkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJtb25pdG9yLmpvYi5pbnZva2VfdGFyZ2V0IixkZWZhdWx0TWVzc2FnZToiXHU4QzAzXHU3NTI4XHU3NkVFXHU2ODA3XHU1QjU3XHU3QjI2XHU0RTMyIn0pLGNoaWxkcmVuOmEuaW52b2tlVGFyZ2V0fSldfSl9KX07aS5kZWZhdWx0PUV9LDYxMzE0OmZ1bmN0aW9uKGosaSxuKXtuLmQoaSx7bjpmdW5jdGlvbigpe3JldHVybiBsfX0pO2Z1bmN0aW9uIGwocix1LHMpe2lmKHUhPT12b2lkIDApe3ZhciB0PXJbdV07aWYodClyZXR1cm4gdC50ZXh0fXJldHVybiBzfHx1fX19XSk7CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzY1NjguODNkMGU3MTAuY2h1bmsuY3NzIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy82NTY4LjgzZDBlNzEwLmNodW5rLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNTdhNTQwCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy82NTY4LjgzZDBlNzEwLmNodW5rLmNzcwpAQCAtMCwwICsxIEBACisubUszSDdyeVZ4OXN2U1VORjlqRFl7bWF4LXdpZHRoOjEyMDBweDttYXJnaW46MCBhdXRvO2JhY2tncm91bmQ6I2Y1ZjVmNTttaW4taGVpZ2h0OjEwMHZofS5lZEJ3YlNabWZEUXBJdTZIa19BdXttYXJnaW4tYm90dG9tOjI0cHg7Ym9yZGVyLXJhZGl1czowIDAgMTZweCAxNnB4O292ZXJmbG93OmhpZGRlbjtib3gtc2hhZG93OjAgNHB4IDEycHggIzAwMDAwMDFhfS5USkx5eDl6VjhQRVBaZ2J2blM2bntwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxMDAlO2hlaWdodDo0MDBweDtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZDojZjBmMGYwfS5seFk3MndHbGxXc1NCRTlnSkV1NXt3aWR0aDoxMDAlIWltcG9ydGFudDtoZWlnaHQ6MTAwJSFpbXBvcnRhbnQ7b2JqZWN0LWZpdDpjb3ZlciFpbXBvcnRhbnQ7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjNzIGVhc2V9Lmx4WTcyd0dsbFdzU0JFOWdKRXU1OmhvdmVye3RyYW5zZm9ybTpzY2FsZSgxLjAyKX0uRFhDbTN0VldNQTQ0SVZMWFR4ZW57cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7cG9pbnRlci1ldmVudHM6bm9uZX0uZnhyMXlYTnRfWmd5ZUlfSk1Wc1F7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7aGVpZ2h0OjEwMHB4O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRyYW5zcGFyZW50LCMwMDAwMDA0ZCl9LnBkbVBGM2ZEd3A4YnliSkdkRVcxe2JhY2tncm91bmQ6IzAwMDAwMDgwO2NvbG9yOiNmZmY7cGFkZGluZzo4cHggMTZweDtib3JkZXItcmFkaXVzOjRweDtmb250LXNpemU6MTRweH0ubDN1THFhUlZHSUloNHNNSVNrMTR7bWFyZ2luOjAgMjRweCAyNHB4O2JvcmRlci1yYWRpdXM6MTJweDtib3gtc2hhZG93OjAgMnB4IDhweCAjMDAwMDAwMWF9LkFycDZKMHB4eE1zbHMyM0dFUkFDe2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjE2cHg7bWFyZ2luLWJvdHRvbToxNnB4fS5BcnA2SjBweHhNc2xzMjNHRVJBQyBoMnttYXJnaW46MDtmbGV4OjEgMX0uUlhoZXZ2WnJmZ3hTTXh6VjZpNUd7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoNDVkZWcsI2ZmNmI2YixvcmFuZ2UpO2NvbG9yOiNmZmY7cGFkZGluZzo2cHggMTJweDtib3JkZXItcmFkaXVzOjE2cHg7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NzAwO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDtib3gtc2hhZG93OjAgMnB4IDRweCAjMDAwMzt3aGl0ZS1zcGFjZTpub3dyYXB9LkJnR3dndl9qYjNrOUt5aVdHd2Fxe2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDtnYXA6MjRweDttYXJnaW46MTZweCAwO3BhZGRpbmc6MTZweCAwO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNmMGYwZjB9LkJzcUhWSXFjOWRNZVhZa1p5MUttLC5CMTBxQkptTERFTXVMbVdPRjZFRCwuX1dTR0tSTXNSdmNGM2lLUDVFaEQsLmliaUhJNnRRRzhVMWlSTHFzU3lRe2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweH0ub0dtY3ZwTWpFckFKcmpGaDdIc2t7ZGlzcGxheTpmbGV4O2dhcDoxMnB4O2ZsZXgtd3JhcDp3cmFwO21hcmdpbi10b3A6MTZweH0uc09IT28zcjh1THdDenZZVHYxN3d7bWFyZ2luOjAgMjRweCAyNHB4O2JvcmRlci1yYWRpdXM6MTJweDtib3gtc2hhZG93OjAgMnB4IDhweCAjMDAwMDAwMWF9LnNPSE9vM3I4dUx3Q3p2WVR2MTd3IGltZ3ttYXgtd2lkdGg6MTAwJTtoZWlnaHQ6YXV0b30uVnJYSGNtajZDUFFUNUxlYjBJNTF7bWFyZ2luOjAgMjRweCAyNHB4O2JvcmRlci1yYWRpdXM6MTJweDtib3gtc2hhZG93OjAgMnB4IDhweCAjMDAwMDAwMWF9Lm9yZXBTR0ZXRVpJRWhwbW9xSW1Re21hcmdpbi1ib3R0b206MjRweH0uekFWbURCWldEMHo4NUxjcUpfMGF7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpmbGV4LWVuZDtnYXA6MTJweDttYXJnaW4tdG9wOjEycHh9LkpiNjJqWk5qa0hZZzhnX3hlOXd4e21hcmdpbi10b3A6MjRweH0uT01RRmNBdjhLTHN5NmdrdUdHODl7bWFyZ2luLXRvcDoxNnB4O3BhZGRpbmctbGVmdDoyNHB4O2JvcmRlci1sZWZ0OjJweCBzb2xpZCAjZjBmMGYwfS5tdVNtdDFvNlpNaWxEUDBXUnJMT3ttYXJnaW46MCAyNHB4IDI0cHg7cGFkZGluZzoyNHB4O2JhY2tncm91bmQ6I2ZmZjtib3JkZXItcmFkaXVzOjEycHg7Ym94LXNoYWRvdzowIDJweCA4cHggIzAwMDAwMDFhfS5GTThhQUNRUTJqODZwWmxycGQwSHtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47YWxpZ24taXRlbXM6Y2VudGVyO21hcmdpbi1ib3R0b206MjRweH0uRk04YUFDUVEyajg2cFpscnBkMEggaDR7bWFyZ2luOjB9LlVraUNTTUZQSFE0S2NaRW84QlFqe2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7bWluLWhlaWdodDo0MDBweDtjb2xvcjojNjY2fS5iRXNPQUlZN1p1TV9FR0tEbWdLeXt0ZXh0LWFsaWduOmNlbnRlcjtwYWRkaW5nOjYwcHggMjRweDtjb2xvcjojOTk5O2ZvbnQtc2l6ZToxNnB4fUBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCl7Lm1LM0g3cnlWeDlzdlNVTkY5akRZe21hcmdpbjowfS5USkx5eDl6VjhQRVBaZ2J2blM2bntoZWlnaHQ6MjUwcHh9LmwzdUxxYVJWR0lJaDRzTUlTazE0LC5zT0hPbzNyOHVMd0N6dllUdjE3dywuVnJYSGNtajZDUFFUNUxlYjBJNTEsLm11U210MW82Wk1pbERQMFdSckxPe21hcmdpbjowIDEycHggMTZweDtib3JkZXItcmFkaXVzOjhweH0uQmdHd2d2X2piM2s5S3lpV0d3YXF7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoxMnB4fS5vR21jdnBNakVyQUpyakZoN0hza3tmbGV4LWRpcmVjdGlvbjpjb2x1bW59Lm9HbWN2cE1qRXJBSnJqRmg3SHNrIGJ1dHRvbnt3aWR0aDoxMDAlfX1AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpey5USkx5eDl6VjhQRVBaZ2J2blM2bntoZWlnaHQ6MjAwcHh9LmwzdUxxYVJWR0lJaDRzTUlTazE0LC5zT0hPbzNyOHVMd0N6dllUdjE3dywuVnJYSGNtajZDUFFUNUxlYjBJNTEsLm11U210MW82Wk1pbERQMFdSckxPe21hcmdpbjowIDhweCAxMnB4fX0KZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNjU2OC45ZWQ2N2ZlZi5hc3luYy5qcyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNjU2OC45ZWQ2N2ZlZi5hc3luYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNjVlMjJlCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy82NTY4LjllZDY3ZmVmLmFzeW5jLmpzCkBAIC0wLDAgKzEgQEAKKyJ1c2Ugc3RyaWN0Ijsoc2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Bybz1zZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvfHxbXSkucHVzaChbWzY1NjhdLHszNjU2ODpmdW5jdGlvbihvLGUsdCl7dC5yKGUpLGUuZGVmYXVsdD17cG9zdERldGFpbENvbnRhaW5lcjoibUszSDdyeVZ4OXN2U1VORjlqRFkiLHBvc3RDb3ZlclNlY3Rpb246ImVkQndiU1ptZkRRcEl1NkhrX0F1Iixjb3ZlckltYWdlQ29udGFpbmVyOiJUSkx5eDl6VjhQRVBaZ2J2blM2biIsY292ZXJJbWFnZToibHhZNzJ3R2xsV3NTQkU5Z0pFdTUiLGNvdmVyT3ZlcmxheToiRFhDbTN0VldNQTQ0SVZMWFR4ZW4iLGNvdmVyR3JhZGllbnQ6ImZ4cjF5WE50X1pneWVJX0pNVnNRIixwcmV2aWV3TWFzazoicGRtUEYzZkR3cDhieWJKR2RFVzEiLHBvc3REZXRhaWxIZWFkZXI6ImwzdUxxYVJWR0lJaDRzTUlTazE0Iix0aXRsZUNvbnRhaW5lcjoiQXJwNkowcHh4TXNsczIzR0VSQUMiLHByb21vdGlvbkJhZGdlOiJSWGhldnZacmZneFNNeHpWNmk1RyIscG9zdE1ldGE6IkJnR3dndl9qYjNrOUt5aVdHd2FxIixwb3N0QXV0aG9yOiJCc3FIVklxYzlkTWVYWWtaeTFLbSIscG9zdFRpbWU6IkIxMHFCSm1MREVNdUxtV09GNkVEIixwb3N0Vmlld3M6Il9XU0dLUk1zUnZjRjNpS1A1RWhEIixwb3N0VGFnczoiaWJpSEk2dFFHOFUxaVJMcXNTeVEiLHBvc3RBY3Rpb25zOiJvR21jdnBNakVyQUpyakZoN0hzayIscG9zdENvbnRlbnQ6InNPSE9vM3I4dUx3Q3p2WVR2MTd3Iixjb21tZW50U2VjdGlvbjoiVnJYSGNtajZDUFFUNUxlYjBJNTEiLGNvbW1lbnRJbnB1dDoib3JlcFNHRldFWklFaHBtb3FJbVEiLGNvbW1lbnRBY3Rpb25zOiJ6QVZtREJaV0Qwejg1TGNxSl8wYSIsY29tbWVudExpc3Q6IkpiNjJqWk5qa0hZZzhnX3hlOXd4IixyZXBseUxpc3Q6Ik9NUUZjQXY4S0xzeTZna3VHRzg5IixyZWxhdGVkUG9zdHM6Im11U210MW82Wk1pbERQMFdSckxPIixyZWNvbW1lbmRIZWFkZXI6IkZNOGFBQ1FRMmo4NnBabHJwZDBIIixwb3N0RGV0YWlsTG9hZGluZzoiVWtpQ1NNRlBIUTRLY1pFbzhCUWoiLHBvc3REZXRhaWxFcnJvcjoiYkVzT0FJWTdadU1fRUdLRG1nS3kifX19XSk7CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzY1NjkuOTAyOWVhYmIuYXN5bmMuanMgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzY1NjkuOTAyOWVhYmIuYXN5bmMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjMyMDg1MgotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNjU2OS45MDI5ZWFiYi5hc3luYy5qcwpAQCAtMCwwICsxIEBACisidXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W10pLnB1c2goW1s2NTY5XSx7NzY1Njk6ZnVuY3Rpb24ocyxlLG4pe24ucihlKX19XSk7CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzY1NjkuZWY0NmRiMzcuY2h1bmsuY3NzIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy82NTY5LmVmNDZkYjM3LmNodW5rLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy82NTY5LmVmNDZkYjM3LmNodW5rLmNzcwpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy82NzIwLjgzOGM5NDUzLmFzeW5jLmpzIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy82NzIwLjgzOGM5NDUzLmFzeW5jLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU0YmQ5NWYKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzY3MjAuODM4Yzk0NTMuYXN5bmMuanMKQEAgLTAsMCArMSBAQAorInVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvPXNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm98fFtdKS5wdXNoKFtbNjcyMF0sezk0MTYyOmZ1bmN0aW9uKFgsUixlKXt2YXIgST1lKDY0NTk5KSx1PWUubihJKSxTPWUoNjcyOTQpLHI9ZSg2NjMwOSksQj1lKDg1ODkzKSx2PWZ1bmN0aW9uKGEpe2Z1bmN0aW9uIEYocCl7c3dpdGNoKHApe2Nhc2UicHJpbWFyeSI6cmV0dXJuImJsdWUiO2Nhc2Uic3VjY2VzcyI6cmV0dXJuInN1Y2Nlc3MiO2Nhc2UiaW5mbyI6cmV0dXJuImdyZWVuIjtjYXNlIndhcm5pbmciOnJldHVybiJ3YXJuaW5nIjtjYXNlImRhbmdlciI6cmV0dXJuImVycm9yIjtjYXNlImRlZmF1bHQiOmRlZmF1bHQ6cmV0dXJuImRlZmF1bHQifX1mdW5jdGlvbiBFKHApe2lmKHA9PT12b2lkIDApcmV0dXJuIiI7aWYoYS5lbnVtcyl7dmFyIGc9YS5lbnVtc1twXTtyZXR1cm4gZy5sYWJlbH1pZihhLm9wdGlvbnMpe2lmKCFBcnJheS5pc0FycmF5KGEub3B0aW9ucykpcmV0dXJuIGNvbnNvbGUubG9nKCJEaWN0VGFnIG9wdGlvbnMgaXMgbm8gYXJyYXkhIiksIiI7dmFyIHM9dSgpKGEub3B0aW9ucyksYzt0cnl7Zm9yKHMucygpOyEoYz1zLm4oKSkuZG9uZTspe3ZhciBUPWMudmFsdWU7aWYoVC52YWx1ZT09PXApcmV0dXJuIFQudGV4dH19Y2F0Y2goZCl7cy5lKGQpfWZpbmFsbHl7cy5mKCl9fXJldHVybiBTdHJpbmcoYS52YWx1ZSl9ZnVuY3Rpb24gbShwKXtpZihwPT09dm9pZCAwKXJldHVybiJkZWZhdWx0IjtpZihhLmVudW1zKXt2YXIgZz1hLmVudW1zW3BdO3JldHVybiBnLmxpc3RDbGFzc3x8ImRlZmF1bHQifWlmKGEub3B0aW9ucyl7aWYoIUFycmF5LmlzQXJyYXkoYS5vcHRpb25zKSlyZXR1cm4gY29uc29sZS5sb2coIkRpY3RUYWcgb3B0aW9ucyBpcyBubyBhcnJheSEiKSwiZGVmYXVsdCI7dmFyIHM9dSgpKGEub3B0aW9ucyksYzt0cnl7Zm9yKHMucygpOyEoYz1zLm4oKSkuZG9uZTspe3ZhciBUPWMudmFsdWU7aWYoVC52YWx1ZT09PXApcmV0dXJuIFQubGlzdENsYXNzfHwiZGVmYXVsdCJ9fWNhdGNoKGQpe3MuZShkKX1maW5hbGx5e3MuZigpfX1yZXR1cm4gU3RyaW5nKGEudmFsdWUpfXZhciB5PWZ1bmN0aW9uKCl7cmV0dXJuIEYobShhLnZhbHVlKS50b0xvd2VyQ2FzZSgpKX0sVT1mdW5jdGlvbigpe3JldHVybiBFKGEudmFsdWUpfTtyZXR1cm4oMCxCLmpzeCkoci5aLHtjb2xvcjp5KCksY2hpbGRyZW46VSgpfSl9O1IuWj12fSwzMzg2NzpmdW5jdGlvbihYLFIsZSl7ZS5kKFIse2lLOmZ1bmN0aW9uKCl7cmV0dXJuIEl9LHpjOmZ1bmN0aW9uKCl7cmV0dXJuIFN9fSk7dmFyIEk9ZnVuY3Rpb24ocil7cmV0dXJuIHJbci5TVUNDRVNTPTIwMF09IlNVQ0NFU1MiLHJbci5FUlJPUj0tMV09IkVSUk9SIixyW3IuVElNRU9VVD00MDFdPSJUSU1FT1VUIixyLlRZUEU9InN1Y2Nlc3MiLHJ9KHt9KSx1PWZ1bmN0aW9uKHIpe3JldHVybiByLkdFVD0iR0VUIixyLlBPU1Q9IlBPU1QiLHIuUFVUPSJQVVQiLHIuREVMRVRFPSJERUxFVEUiLHJ9KHt9KSxTPWZ1bmN0aW9uKHIpe3JldHVybiByLkpTT049ImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCIsci5GT1JNX1VSTEVOQ09ERUQ9ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PVVURi04IixyLkZPUk1fREFUQT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YTtjaGFyc2V0PVVURi04IixyfSh7fSl9LDI0OTM6ZnVuY3Rpb24oWCxSLGUpe2UucihSKTt2YXIgST1lKDE1MDA5KSx1PWUubihJKSxTPWUoOTkyODkpLHI9ZS5uKFMpLEI9ZSg1NTc0KSx2PWUubihCKSxPPWUoNjcyOTQpLGE9ZSg5NzI2OSksRj1lKDMxMTk5KSxFPWUoNTk2NiksbT1lKDg2NjE1KSx5PWUoOTA2NzIpLFU9ZSg5OTg1OSkscD1lKDE3Nzg4KSxnPWUoNzY3NzIpLHM9ZSg4NTg5MyksYz1mdW5jdGlvbihkKXt2YXIgbD1VLloudXNlRm9ybSgpLEM9digpKGwsMSksSz1DWzBdLFE9ZC5zdGF0dXNPcHRpb25zOygwLE8udXNlRWZmZWN0KShmdW5jdGlvbigpe0sucmVzZXRGaWVsZHMoKSxLLnNldEZpZWxkc1ZhbHVlKHtwb3N0SWQ6ZC52YWx1ZXMucG9zdElkLHBvc3RDb2RlOmQudmFsdWVzLnBvc3RDb2RlLHBvc3ROYW1lOmQudmFsdWVzLnBvc3ROYW1lLHBvc3RTb3J0OmQudmFsdWVzLnBvc3RTb3J0LHN0YXR1czpkLnZhbHVlcy5zdGF0dXMsY3JlYXRlQnk6ZC52YWx1ZXMuY3JlYXRlQnksY3JlYXRlVGltZTpkLnZhbHVlcy5jcmVhdGVUaW1lLHVwZGF0ZUJ5OmQudmFsdWVzLnVwZGF0ZUJ5LHVwZGF0ZVRpbWU6ZC52YWx1ZXMudXBkYXRlVGltZSxyZW1hcms6ZC52YWx1ZXMucmVtYXJrfSl9LFtLLGRdKTt2YXIgdD0oMCxnLnVzZUludGwpKCksTj1mdW5jdGlvbigpe0suc3VibWl0KCl9LGY9ZnVuY3Rpb24oKXtkLm9uQ2FuY2VsKCl9LFA9ZnVuY3Rpb24oKXt2YXIgVz1yKCkodSgpKCkubWFyayhmdW5jdGlvbiBpKCQpe3JldHVybiB1KCkoKS53cmFwKGZ1bmN0aW9uKF8pe2Zvcig7Oylzd2l0Y2goXy5wcmV2PV8ubmV4dCl7Y2FzZSAwOmQub25TdWJtaXQoJCk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gXy5zdG9wKCl9fSxpKX0pKTtyZXR1cm4gZnVuY3Rpb24oJCl7cmV0dXJuIFcuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKTtyZXR1cm4oMCxzLmpzeCkocC5aLHt3aWR0aDo2NDAsdGl0bGU6dC5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLnBvc3QudGl0bGUiLGRlZmF1bHRNZXNzYWdlOiJcdTdGMTZcdThGOTFcdTVDOTdcdTRGNERcdTRGRTFcdTYwNkYifSksb3BlbjpkLm9wZW4sZm9yY2VSZW5kZXI6ITAsZGVzdHJveU9uQ2xvc2U6ITAsb25PazpOLG9uQ2FuY2VsOmYsY2hpbGRyZW46KDAscy5qc3hzKShhLkEse2Zvcm06SyxncmlkOiEwLHN1Ym1pdHRlcjohMSxsYXlvdXQ6Imhvcml6b250YWwiLG9uRmluaXNoOlAsY2hpbGRyZW46WygwLHMuanN4KShGLlose25hbWU6InBvc3RJZCIsbGFiZWw6dC5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLnBvc3QucG9zdF9pZCIsZGVmYXVsdE1lc3NhZ2U6Ilx1NUM5N1x1NEY0RFx1N0YxNlx1NTNGNyJ9KSxwbGFjZWhvbGRlcjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU1Qzk3XHU0RjREXHU3RjE2XHU1M0Y3IixkaXNhYmxlZDohMCxoaWRkZW46ITAscnVsZXM6W3tyZXF1aXJlZDohMSxtZXNzYWdlOigwLHMuanN4KShnLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTVDOTdcdTRGNERcdTdGMTZcdTUzRjdcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTVDOTdcdTRGNERcdTdGMTZcdTUzRjdcdUZGMDEifSl9XX0pLCgwLHMuanN4KShFLlose25hbWU6InBvc3ROYW1lIixsYWJlbDp0LmZvcm1hdE1lc3NhZ2Uoe2lkOiJzeXN0ZW0ucG9zdC5wb3N0X25hbWUiLGRlZmF1bHRNZXNzYWdlOiJcdTVDOTdcdTRGNERcdTU0MERcdTc5RjAifSkscGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NUM5N1x1NEY0RFx1NTQwRFx1NzlGMCIscnVsZXM6W3tyZXF1aXJlZDohMCxtZXNzYWdlOigwLHMuanN4KShnLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTVDOTdcdTRGNERcdTU0MERcdTc5RjBcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTVDOTdcdTRGNERcdTU0MERcdTc5RjBcdUZGMDEifSl9XX0pLCgwLHMuanN4KShFLlose25hbWU6InBvc3RDb2RlIixsYWJlbDp0LmZvcm1hdE1lc3NhZ2Uoe2lkOiJzeXN0ZW0ucG9zdC5wb3N0X2NvZGUiLGRlZmF1bHRNZXNzYWdlOiJcdTVDOTdcdTRGNERcdTdGMTZcdTc4MDEifSkscGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NUM5N1x1NEY0RFx1N0YxNlx1NzgwMSIscnVsZXM6W3tyZXF1aXJlZDohMCxtZXNzYWdlOigwLHMuanN4KShnLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTVDOTdcdTRGNERcdTdGMTZcdTc4MDFcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTVDOTdcdTRGNERcdTdGMTZcdTc4MDFcdUZGMDEifSl9XX0pLCgwLHMuanN4KShGLlose25hbWU6InBvc3RTb3J0IixsYWJlbDp0LmZvcm1hdE1lc3NhZ2Uoe2lkOiJzeXN0ZW0ucG9zdC5wb3N0X3NvcnQiLGRlZmF1bHRNZXNzYWdlOiJcdTY2M0VcdTc5M0FcdTk4N0FcdTVFOEYifSkscGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NjYzRVx1NzkzQVx1OTg3QVx1NUU4RiIscnVsZXM6W3tyZXF1aXJlZDohMCxtZXNzYWdlOigwLHMuanN4KShnLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTY2M0VcdTc5M0FcdTk4N0FcdTVFOEZcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTY2M0VcdTc5M0FcdTk4N0FcdTVFOEZcdUZGMDEifSl9XX0pLCgwLHMuanN4KShtLlouR3JvdXAse3ZhbHVlRW51bTpRLG5hbWU6InN0YXR1cyIsbGFiZWw6dC5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLnBvc3Quc3RhdHVzIixkZWZhdWx0TWVzc2FnZToiXHU3MkI2XHU2MDAxIn0pLHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdTcyQjZcdTYwMDEiLHJ1bGVzOlt7cmVxdWlyZWQ6ITAsbWVzc2FnZTooMCxzLmpzeCkoZy5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU3MkI2XHU2MDAxXHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU3MkI2XHU2MDAxXHVGRjAxIn0pfV19KSwoMCxzLmpzeCkoeS5aLHtuYW1lOiJyZW1hcmsiLGxhYmVsOnQuZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5wb3N0LnJlbWFyayIsZGVmYXVsdE1lc3NhZ2U6Ilx1NTkwN1x1NkNFOCJ9KSxwbGFjZWhvbGRlcjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU1OTA3XHU2Q0U4IixydWxlczpbe3JlcXVpcmVkOiExLG1lc3NhZ2U6KDAscy5qc3gpKGcuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NTkwN1x1NkNFOFx1RkYwMSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NTkwN1x1NkNFOFx1RkYwMSJ9KX1dfSldfSl9KX07Ui5kZWZhdWx0PWN9LDc1NzI0OmZ1bmN0aW9uKFgsUixlKXtlLnIoUik7dmFyIEk9ZSg1NTc0KSx1PWUubihJKSxTPWUoMTUwMDkpLHI9ZS5uKFMpLEI9ZSg5Nzg1Nyksdj1lLm4oQiksTz1lKDk5Mjg5KSxhPWUubihPKSxGPWUoNjcyOTQpLEU9ZSg3Njc3MiksbT1lKDI0NTMpLHk9ZSg4MzYyMiksVT1lKDE3Nzg4KSxwPWUoNjExMCksZz1lKDY1Mzg1KSxzPWUoMjIzNiksYz1lKDI0OTY5KSxUPWUoMTE0NzUpLGQ9ZSg0ODY4OSksbD1lKDE1NDg3KSxDPWUoMjQ5MyksSz1lKDkyOTgyKSxRPWUoOTQxNjIpLHQ9ZSg4NTg5MyksTj1mdW5jdGlvbigpe3ZhciB3PWEoKShyKCkoKS5tYXJrKGZ1bmN0aW9uIF8obyl7dmFyIE0saDtyZXR1cm4gcigpKCkud3JhcChmdW5jdGlvbihuKXtmb3IoOzspc3dpdGNoKG4ucHJldj1uLm5leHQpe2Nhc2UgMDpyZXR1cm4gTT1tLlpQLmxvYWRpbmcoIlx1NkI2M1x1NTcyOFx1NkRGQlx1NTJBMCIpLG4ucHJldj0xLG4ubmV4dD00LCgwLGwucTIpKHYoKSh7fSxvKSk7Y2FzZSA0OnJldHVybiBoPW4uc2VudCxNKCksaC5jb2RlPT09MjAwP20uWlAuc3VjY2VzcygiXHU2REZCXHU1MkEwXHU2MjEwXHU1MjlGIik6bS5aUC5lcnJvcihoLm1zZyksbi5hYnJ1cHQoInJldHVybiIsITApO2Nhc2UgMTA6cmV0dXJuIG4ucHJldj0xMCxuLnQwPW4uY2F0Y2goMSksTSgpLG0uWlAuZXJyb3IoIlx1NkRGQlx1NTJBMFx1NTkzMVx1OEQyNVx1OEJGN1x1OTFDRFx1OEJENVx1RkYwMSIpLG4uYWJydXB0KCJyZXR1cm4iLCExKTtjYXNlIDE1OmNhc2UiZW5kIjpyZXR1cm4gbi5zdG9wKCl9fSxfLG51bGwsW1sxLDEwXV0pfSkpO3JldHVybiBmdW5jdGlvbihvKXtyZXR1cm4gdy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLGY9ZnVuY3Rpb24oKXt2YXIgdz1hKCkocigpKCkubWFyayhmdW5jdGlvbiBfKG8pe3ZhciBNLGg7cmV0dXJuIHIoKSgpLndyYXAoZnVuY3Rpb24obil7Zm9yKDs7KXN3aXRjaChuLnByZXY9bi5uZXh0KXtjYXNlIDA6cmV0dXJuIE09bS5aUC5sb2FkaW5nKCJcdTZCNjNcdTU3MjhcdTY2RjRcdTY1QjAiKSxuLnByZXY9MSxuLm5leHQ9NCwoMCxsLkNQKShvKTtjYXNlIDQ6cmV0dXJuIGg9bi5zZW50LE0oKSxoLmNvZGU9PT0yMDA/bS5aUC5zdWNjZXNzKCJcdTY2RjRcdTY1QjBcdTYyMTBcdTUyOUYiKTptLlpQLmVycm9yKGgubXNnKSxuLmFicnVwdCgicmV0dXJuIiwhMCk7Y2FzZSAxMDpyZXR1cm4gbi5wcmV2PTEwLG4udDA9bi5jYXRjaCgxKSxNKCksbS5aUC5lcnJvcigiXHU5MTREXHU3RjZFXHU1OTMxXHU4RDI1XHU4QkY3XHU5MUNEXHU4QkQ1XHVGRjAxIiksbi5hYnJ1cHQoInJldHVybiIsITEpO2Nhc2UgMTU6Y2FzZSJlbmQiOnJldHVybiBuLnN0b3AoKX19LF8sbnVsbCxbWzEsMTBdXSl9KSk7cmV0dXJuIGZ1bmN0aW9uKG8pe3JldHVybiB3LmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksUD1mdW5jdGlvbigpe3ZhciB3PWEoKShyKCkoKS5tYXJrKGZ1bmN0aW9uIF8obyl7dmFyIE0saDtyZXR1cm4gcigpKCkud3JhcChmdW5jdGlvbihuKXtmb3IoOzspc3dpdGNoKG4ucHJldj1uLm5leHQpe2Nhc2UgMDppZihNPW0uWlAubG9hZGluZygiXHU2QjYzXHU1NzI4XHU1MjIwXHU5NjY0Iiksbyl7bi5uZXh0PTM7YnJlYWt9cmV0dXJuIG4uYWJydXB0KCJyZXR1cm4iLCEwKTtjYXNlIDM6cmV0dXJuIG4ucHJldj0zLG4ubmV4dD02LCgwLGwuTTgpKG8ubWFwKGZ1bmN0aW9uKGope3JldHVybiBqLnBvc3RJZH0pLmpvaW4oIiwiKSk7Y2FzZSA2OnJldHVybiBoPW4uc2VudCxNKCksaC5jb2RlPT09MjAwP20uWlAuc3VjY2VzcygiXHU1MjIwXHU5NjY0XHU2MjEwXHU1MjlGXHVGRjBDXHU1MzczXHU1QzA2XHU1MjM3XHU2NUIwIik6bS5aUC5lcnJvcihoLm1zZyksbi5hYnJ1cHQoInJldHVybiIsITApO2Nhc2UgMTI6cmV0dXJuIG4ucHJldj0xMixuLnQwPW4uY2F0Y2goMyksTSgpLG0uWlAuZXJyb3IoIlx1NTIyMFx1OTY2NFx1NTkzMVx1OEQyNVx1RkYwQ1x1OEJGN1x1OTFDRFx1OEJENSIpLG4uYWJydXB0KCJyZXR1cm4iLCExKTtjYXNlIDE3OmNhc2UiZW5kIjpyZXR1cm4gbi5zdG9wKCl9fSxfLG51bGwsW1szLDEyXV0pfSkpO3JldHVybiBmdW5jdGlvbihvKXtyZXR1cm4gdy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLFc9ZnVuY3Rpb24oKXt2YXIgdz1hKCkocigpKCkubWFyayhmdW5jdGlvbiBfKG8pe3ZhciBNLGgseDtyZXR1cm4gcigpKCkud3JhcChmdW5jdGlvbihqKXtmb3IoOzspc3dpdGNoKGoucHJldj1qLm5leHQpe2Nhc2UgMDppZihNPW0uWlAubG9hZGluZygiXHU2QjYzXHU1NzI4XHU1MjIwXHU5NjY0Iiksbyl7ai5uZXh0PTM7YnJlYWt9cmV0dXJuIGouYWJydXB0KCJyZXR1cm4iLCEwKTtjYXNlIDM6cmV0dXJuIGoucHJldj0zLGg9W28ucG9zdElkXSxqLm5leHQ9NywoMCxsLk04KShoLmpvaW4oIiwiKSk7Y2FzZSA3OnJldHVybiB4PWouc2VudCxNKCkseC5jb2RlPT09MjAwP20uWlAuc3VjY2VzcygiXHU1MjIwXHU5NjY0XHU2MjEwXHU1MjlGXHVGRjBDXHU1MzczXHU1QzA2XHU1MjM3XHU2NUIwIik6bS5aUC5lcnJvcih4Lm1zZyksai5hYnJ1cHQoInJldHVybiIsITApO2Nhc2UgMTM6cmV0dXJuIGoucHJldj0xMyxqLnQwPWouY2F0Y2goMyksTSgpLG0uWlAuZXJyb3IoIlx1NTIyMFx1OTY2NFx1NTkzMVx1OEQyNVx1RkYwQ1x1OEJGN1x1OTFDRFx1OEJENSIpLGouYWJydXB0KCJyZXR1cm4iLCExKTtjYXNlIDE4OmNhc2UiZW5kIjpyZXR1cm4gai5zdG9wKCl9fSxfLG51bGwsW1szLDEzXV0pfSkpO3JldHVybiBmdW5jdGlvbihvKXtyZXR1cm4gdy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLGk9ZnVuY3Rpb24oKXt2YXIgdz1hKCkocigpKCkubWFyayhmdW5jdGlvbiBfKCl7dmFyIG87cmV0dXJuIHIoKSgpLndyYXAoZnVuY3Rpb24oaCl7Zm9yKDs7KXN3aXRjaChoLnByZXY9aC5uZXh0KXtjYXNlIDA6cmV0dXJuIG89bS5aUC5sb2FkaW5nKCJcdTZCNjNcdTU3MjhcdTVCRkNcdTUxRkEiKSxoLnByZXY9MSxoLm5leHQ9NCwoMCxsLnFjKSgpO2Nhc2UgNDpyZXR1cm4gbygpLG0uWlAuc3VjY2VzcygiXHU1QkZDXHU1MUZBXHU2MjEwXHU1MjlGIiksaC5hYnJ1cHQoInJldHVybiIsITApO2Nhc2UgOTpyZXR1cm4gaC5wcmV2PTksaC50MD1oLmNhdGNoKDEpLG8oKSxtLlpQLmVycm9yKCJcdTVCRkNcdTUxRkFcdTU5MzFcdThEMjVcdUZGMENcdThCRjdcdTkxQ0RcdThCRDUiKSxoLmFicnVwdCgicmV0dXJuIiwhMSk7Y2FzZSAxNDpjYXNlImVuZCI6cmV0dXJuIGguc3RvcCgpfX0sXyxudWxsLFtbMSw5XV0pfSkpO3JldHVybiBmdW5jdGlvbigpe3JldHVybiB3LmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksJD1mdW5jdGlvbigpe3ZhciBfPSgwLEYudXNlUmVmKSgpLG89KDAsRi51c2VTdGF0ZSkoITEpLE09dSgpKG8sMiksaD1NWzBdLHg9TVsxXSxuPSgwLEYudXNlUmVmKSgpLGo9KDAsRi51c2VTdGF0ZSkoKSx0ZT11KCkoaiwyKSxfZT10ZVswXSxlZT10ZVsxXSxsZT0oMCxGLnVzZVN0YXRlKShbXSksYWU9dSgpKGxlLDIpLFY9YWVbMF0sbmU9YWVbMV0saWU9KDAsRi51c2VTdGF0ZSkoW10pLHVlPXUoKShpZSwyKSxzZT11ZVswXSxvZT11ZVsxXSxKPSgwLEUudXNlQWNjZXNzKSgpLGRlPSgwLEUudXNlSW50bCkoKTsoMCxGLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXsoMCxLLnBYKSgic3lzX25vcm1hbF9kaXNhYmxlIikudGhlbihmdW5jdGlvbihIKXtvZShIKX0pfSxbXSk7dmFyIG1lPVt7dGl0bGU6KDAsdC5qc3gpKEUuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InN5c3RlbS5wb3N0LnBvc3RfaWQiLGRlZmF1bHRNZXNzYWdlOiJcdTVDOTdcdTRGNERcdTdGMTZcdTUzRjcifSksZGF0YUluZGV4OiJwb3N0SWQiLHZhbHVlVHlwZToidGV4dCJ9LHt0aXRsZTooMCx0LmpzeCkoRS5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoic3lzdGVtLnBvc3QucG9zdF9jb2RlIixkZWZhdWx0TWVzc2FnZToiXHU1Qzk3XHU0RjREXHU3RjE2XHU3ODAxIn0pLGRhdGFJbmRleDoicG9zdENvZGUiLHZhbHVlVHlwZToidGV4dCJ9LHt0aXRsZTooMCx0LmpzeCkoRS5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoic3lzdGVtLnBvc3QucG9zdF9uYW1lIixkZWZhdWx0TWVzc2FnZToiXHU1Qzk3XHU0RjREXHU1NDBEXHU3OUYwIn0pLGRhdGFJbmRleDoicG9zdE5hbWUiLHZhbHVlVHlwZToidGV4dCJ9LHt0aXRsZTooMCx0LmpzeCkoRS5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoic3lzdGVtLnBvc3QucG9zdF9zb3J0IixkZWZhdWx0TWVzc2FnZToiXHU2NjNFXHU3OTNBXHU5ODdBXHU1RThGIn0pLGRhdGFJbmRleDoicG9zdFNvcnQiLHZhbHVlVHlwZToidGV4dCIsaGlkZUluU2VhcmNoOiEwfSx7dGl0bGU6KDAsdC5qc3gpKEUuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InN5c3RlbS5wb3N0LnN0YXR1cyIsZGVmYXVsdE1lc3NhZ2U6Ilx1NzJCNlx1NjAwMSJ9KSxkYXRhSW5kZXg6InN0YXR1cyIsdmFsdWVUeXBlOiJzZWxlY3QiLHZhbHVlRW51bTpzZSxyZW5kZXI6ZnVuY3Rpb24oTCxEKXtyZXR1cm4oMCx0LmpzeCkoUS5aLHtlbnVtczpzZSx2YWx1ZTpELnN0YXR1c30pfX0se3RpdGxlOigwLHQuanN4KShFLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJwYWdlcy5zZWFyY2hUYWJsZS50aXRsZU9wdGlvbiIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjRDRFx1NEY1QyJ9KSxkYXRhSW5kZXg6Im9wdGlvbiIsd2lkdGg6IjIyMHB4Iix2YWx1ZVR5cGU6Im9wdGlvbiIscmVuZGVyOmZ1bmN0aW9uKEwsRCl7cmV0dXJuWygwLHQuanN4KSh5LlpQLHt0eXBlOiJsaW5rIixzaXplOiJzbWFsbCIsaGlkZGVuOiFKLmhhc1Blcm1zKCJzeXN0ZW06cG9zdDplZGl0Iiksb25DbGljazpmdW5jdGlvbigpe3goITApLGVlKEQpfSxjaGlsZHJlbjoiXHU3RjE2XHU4RjkxIn0sImVkaXQiKSwoMCx0LmpzeCkoeS5aUCx7dHlwZToibGluayIsc2l6ZToic21hbGwiLGRhbmdlcjohMCxoaWRkZW46IUouaGFzUGVybXMoInN5c3RlbTpwb3N0OnJlbW92ZSIpLG9uQ2xpY2s6YSgpKHIoKSgpLm1hcmsoZnVuY3Rpb24gYigpe3JldHVybiByKCkoKS53cmFwKGZ1bmN0aW9uKEEpe2Zvcig7Oylzd2l0Y2goQS5wcmV2PUEubmV4dCl7Y2FzZSAwOlUuWi5jb25maXJtKHt0aXRsZToiXHU1MjIwXHU5NjY0Iixjb250ZW50OiJcdTc4NkVcdTVCOUFcdTUyMjBcdTk2NjRcdThCRTVcdTk4NzlcdTU0MTdcdUZGMUYiLG9rVGV4dDoiXHU3ODZFXHU4QkE0IixjYW5jZWxUZXh0OiJcdTUzRDZcdTZEODgiLG9uT2s6ZnVuY3Rpb24oKXt2YXIgej1hKCkocigpKCkubWFyayhmdW5jdGlvbiBrKCl7dmFyIHJlO3JldHVybiByKCkoKS53cmFwKGZ1bmN0aW9uKHEpe2Zvcig7Oylzd2l0Y2gocS5wcmV2PXEubmV4dCl7Y2FzZSAwOnJldHVybiBxLm5leHQ9MixXKEQpO2Nhc2UgMjpyZT1xLnNlbnQscmUmJm4uY3VycmVudCYmbi5jdXJyZW50LnJlbG9hZCgpO2Nhc2UgNDpjYXNlImVuZCI6cmV0dXJuIHEuc3RvcCgpfX0sayl9KSk7ZnVuY3Rpb24gRygpe3JldHVybiB6LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gR30oKX0pO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIEEuc3RvcCgpfX0sYil9KSksY2hpbGRyZW46Ilx1NTIyMFx1OTY2NCJ9LCJiYXRjaFJlbW92ZSIpXX19XTtyZXR1cm4oMCx0LmpzeHMpKHAuX3ose2NoaWxkcmVuOlsoMCx0LmpzeCkoImRpdiIse3N0eWxlOnt3aWR0aDoiMTAwJSIsZmxvYXQ6InJpZ2h0In0sY2hpbGRyZW46KDAsdC5qc3gpKGcuWix7aGVhZGVyVGl0bGU6ZGUuZm9ybWF0TWVzc2FnZSh7aWQ6InBhZ2VzLnNlYXJjaFRhYmxlLnRpdGxlIixkZWZhdWx0TWVzc2FnZToiXHU0RkUxXHU2MDZGIn0pLGFjdGlvblJlZjpuLGZvcm1SZWY6Xyxyb3dLZXk6InBvc3RJZCIsc2VhcmNoOntsYWJlbFdpZHRoOjEyMH0sdG9vbEJhclJlbmRlcjpmdW5jdGlvbigpe3JldHVyblsoMCx0LmpzeHMpKHkuWlAse3R5cGU6InByaW1hcnkiLGhpZGRlbjohSi5oYXNQZXJtcygic3lzdGVtOnBvc3Q6YWRkIiksb25DbGljazphKCkocigpKCkubWFyayhmdW5jdGlvbiBMKCl7cmV0dXJuIHIoKSgpLndyYXAoZnVuY3Rpb24oYil7Zm9yKDs7KXN3aXRjaChiLnByZXY9Yi5uZXh0KXtjYXNlIDA6ZWUodm9pZCAwKSx4KCEwKTtjYXNlIDI6Y2FzZSJlbmQiOnJldHVybiBiLnN0b3AoKX19LEwpfSkpLGNoaWxkcmVuOlsoMCx0LmpzeCkoYy5aLHt9KSwiICIsKDAsdC5qc3gpKEUuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InBhZ2VzLnNlYXJjaFRhYmxlLm5ldyIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjVCMFx1NUVGQSJ9KV19LCJhZGQiKSwoMCx0LmpzeHMpKHkuWlAse3R5cGU6InByaW1hcnkiLGRhbmdlcjohMCxoaWRkZW46KFY9PW51bGw/dm9pZCAwOlYubGVuZ3RoKT09PTB8fCFKLmhhc1Blcm1zKCJzeXN0ZW06cG9zdDpyZW1vdmUiKSxvbkNsaWNrOmEoKShyKCkoKS5tYXJrKGZ1bmN0aW9uIEwoKXtyZXR1cm4gcigpKCkud3JhcChmdW5jdGlvbihiKXtmb3IoOzspc3dpdGNoKGIucHJldj1iLm5leHQpe2Nhc2UgMDpVLlouY29uZmlybSh7dGl0bGU6Ilx1NjYyRlx1NTQyNlx1Nzg2RVx1OEJBNFx1NTIyMFx1OTY2NFx1NjI0MFx1OTAwOVx1NjU3MFx1NjM2RVx1OTg3OT8iLGljb246KDAsdC5qc3gpKFQuWix7fSksY29udGVudDoiXHU4QkY3XHU4QzI4XHU2MTRFXHU2NENEXHU0RjVDIixvbk9rOmZ1bmN0aW9uKCl7cmV0dXJuIGEoKShyKCkoKS5tYXJrKGZ1bmN0aW9uIEEoKXt2YXIgeixHLGs7cmV0dXJuIHIoKSgpLndyYXAoZnVuY3Rpb24oWil7Zm9yKDs7KXN3aXRjaChaLnByZXY9Wi5uZXh0KXtjYXNlIDA6cmV0dXJuIFoubmV4dD0yLFAoVik7Y2FzZSAyOno9Wi5zZW50LHomJihuZShbXSksKEc9bi5jdXJyZW50KT09PW51bGx8fEc9PT12b2lkIDB8fChrPUcucmVsb2FkQW5kUmVzdCk9PT1udWxsfHxrPT09dm9pZCAwfHxrLmNhbGwoRykpO2Nhc2UgNDpjYXNlImVuZCI6cmV0dXJuIFouc3RvcCgpfX0sQSl9KSkoKX0sb25DYW5jZWw6ZnVuY3Rpb24oKXt9fSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gYi5zdG9wKCl9fSxMKX0pKSxjaGlsZHJlbjpbKDAsdC5qc3gpKGQuWix7fSksKDAsdC5qc3gpKEUuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InBhZ2VzLnNlYXJjaFRhYmxlLmRlbGV0ZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NTIyMFx1OTY2NCJ9KV19LCJyZW1vdmUiKSwoMCx0LmpzeHMpKHkuWlAse3R5cGU6InByaW1hcnkiLGhpZGRlbjohSi5oYXNQZXJtcygic3lzdGVtOnBvc3Q6ZXhwb3J0Iiksb25DbGljazphKCkocigpKCkubWFyayhmdW5jdGlvbiBMKCl7cmV0dXJuIHIoKSgpLndyYXAoZnVuY3Rpb24oYil7Zm9yKDs7KXN3aXRjaChiLnByZXY9Yi5uZXh0KXtjYXNlIDA6aSgpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGIuc3RvcCgpfX0sTCl9KSksY2hpbGRyZW46WygwLHQuanN4KShjLlose30pLCgwLHQuanN4KShFLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJwYWdlcy5zZWFyY2hUYWJsZS5leHBvcnQiLGRlZmF1bHRNZXNzYWdlOiJcdTVCRkNcdTUxRkEifSldfSwiZXhwb3J0IildfSxyZXF1ZXN0OmZ1bmN0aW9uKEwpe3JldHVybigwLGwuVUkpKHYoKSh7fSxMKSkudGhlbihmdW5jdGlvbihEKXt2YXIgYj17ZGF0YTpELnJvd3MsdG90YWw6RC50b3RhbCxzdWNjZXNzOiEwfTtyZXR1cm4gYn0pfSxjb2x1bW5zOm1lLHJvd1NlbGVjdGlvbjp7b25DaGFuZ2U6ZnVuY3Rpb24oTCxEKXtuZShEKX19fSwicG9zdExpc3QiKX0pLChWPT1udWxsP3ZvaWQgMDpWLmxlbmd0aCk+MCYmKDAsdC5qc3gpKHMuUyx7ZXh0cmE6KDAsdC5qc3hzKSgiZGl2Iix7Y2hpbGRyZW46WygwLHQuanN4KShFLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJwYWdlcy5zZWFyY2hUYWJsZS5jaG9zZW4iLGRlZmF1bHRNZXNzYWdlOiJcdTVERjJcdTkwMDlcdTYyRTkifSksKDAsdC5qc3gpKCJhIix7c3R5bGU6e2ZvbnRXZWlnaHQ6NjAwfSxjaGlsZHJlbjpWLmxlbmd0aH0pLCgwLHQuanN4KShFLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJwYWdlcy5zZWFyY2hUYWJsZS5pdGVtIixkZWZhdWx0TWVzc2FnZToiXHU5ODc5In0pXX0pLGNoaWxkcmVuOigwLHQuanN4KSh5LlpQLHtkYW5nZXI6ITAsaGlkZGVuOiFKLmhhc1Blcm1zKCJzeXN0ZW06cG9zdDpkZWwiKSxvbkNsaWNrOmEoKShyKCkoKS5tYXJrKGZ1bmN0aW9uIEgoKXtyZXR1cm4gcigpKCkud3JhcChmdW5jdGlvbihEKXtmb3IoOzspc3dpdGNoKEQucHJldj1ELm5leHQpe2Nhc2UgMDpVLlouY29uZmlybSh7dGl0bGU6Ilx1NTIyMFx1OTY2NCIsY29udGVudDoiXHU3ODZFXHU1QjlBXHU1MjIwXHU5NjY0XHU4QkU1XHU5ODc5XHU1NDE3XHVGRjFGIixva1RleHQ6Ilx1Nzg2RVx1OEJBNCIsY2FuY2VsVGV4dDoiXHU1M0Q2XHU2RDg4Iixvbk9rOmZ1bmN0aW9uKCl7dmFyIGI9YSgpKHIoKSgpLm1hcmsoZnVuY3Rpb24gQSgpe3ZhciB6LEcsaztyZXR1cm4gcigpKCkud3JhcChmdW5jdGlvbihaKXtmb3IoOzspc3dpdGNoKFoucHJldj1aLm5leHQpe2Nhc2UgMDpyZXR1cm4gWi5uZXh0PTIsUChWKTtjYXNlIDI6ej1aLnNlbnQseiYmKG5lKFtdKSwoRz1uLmN1cnJlbnQpPT09bnVsbHx8Rz09PXZvaWQgMHx8KGs9Ry5yZWxvYWRBbmRSZXN0KT09PW51bGx8fGs9PT12b2lkIDB8fGsuY2FsbChHKSk7Y2FzZSA0OmNhc2UiZW5kIjpyZXR1cm4gWi5zdG9wKCl9fSxBKX0pKTtmdW5jdGlvbiBZKCl7cmV0dXJuIGIuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBZfSgpfSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gRC5zdG9wKCl9fSxIKX0pKSxjaGlsZHJlbjooMCx0LmpzeCkoRS5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoicGFnZXMuc2VhcmNoVGFibGUuYmF0Y2hEZWxldGlvbiIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjI3OVx1OTFDRlx1NTIyMFx1OTY2NCJ9KX0sInJlbW92ZSIpfSksKDAsdC5qc3gpKEMuZGVmYXVsdCx7b25TdWJtaXQ6ZnVuY3Rpb24oKXt2YXIgSD1hKCkocigpKCkubWFyayhmdW5jdGlvbiBMKEQpe3ZhciBiO3JldHVybiByKCkoKS53cmFwKGZ1bmN0aW9uKEEpe2Zvcig7Oylzd2l0Y2goQS5wcmV2PUEubmV4dCl7Y2FzZSAwOmlmKGI9ITEsIUQucG9zdElkKXtBLm5leHQ9NzticmVha31yZXR1cm4gQS5uZXh0PTQsZih2KCkoe30sRCkpO2Nhc2UgNDpiPUEuc2VudCxBLm5leHQ9MTA7YnJlYWs7Y2FzZSA3OnJldHVybiBBLm5leHQ9OSxOKHYoKSh7fSxEKSk7Y2FzZSA5OmI9QS5zZW50O2Nhc2UgMTA6YiYmKHgoITEpLGVlKHZvaWQgMCksbi5jdXJyZW50JiZuLmN1cnJlbnQucmVsb2FkKCkpO2Nhc2UgMTE6Y2FzZSJlbmQiOnJldHVybiBBLnN0b3AoKX19LEwpfSkpO3JldHVybiBmdW5jdGlvbihMKXtyZXR1cm4gSC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLG9uQ2FuY2VsOmZ1bmN0aW9uKCl7eCghMSksZWUodm9pZCAwKX0sb3BlbjpoLHZhbHVlczpfZXx8e30sc3RhdHVzT3B0aW9uczpzZX0pXX0pfTtSLmRlZmF1bHQ9JH0sOTI5ODI6ZnVuY3Rpb24oWCxSLGUpe2UuZChSLHtIcjpmdW5jdGlvbigpe3JldHVybiBnfSxRSzpmdW5jdGlvbigpe3JldHVybiB0fSxWZDpmdW5jdGlvbigpe3JldHVybiB5fSxhNzpmdW5jdGlvbigpe3JldHVybiBkfSxqSzpmdW5jdGlvbigpe3JldHVybiBFfSxuMjpmdW5jdGlvbigpe3JldHVybiBRfSxvSDpmdW5jdGlvbigpe3JldHVybiBjfSxwWDpmdW5jdGlvbigpe3JldHVybiBVfSxzRjpmdW5jdGlvbigpe3JldHVybiBDfX0pO3ZhciBJPWUoMTUwMDkpLHU9ZS5uKEkpLFM9ZSg5Nzg1Nykscj1lLm4oUyksQj1lKDk5Mjg5KSx2PWUubihCKSxPPWUoNzY3NzIpLGE9ZSgzMzg2NyksRj1lKDMwOTY0KTtmdW5jdGlvbiBFKGYpe3JldHVybiBtLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBtKCl7cmV0dXJuIG09digpKHUoKSgpLm1hcmsoZnVuY3Rpb24gZihQKXtyZXR1cm4gdSgpKCkud3JhcChmdW5jdGlvbihpKXtmb3IoOzspc3dpdGNoKGkucHJldj1pLm5leHQpe2Nhc2UgMDpyZXR1cm4gaS5hYnJ1cHQoInJldHVybiIsKDAsTy5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vZGljdC90eXBlL2xpc3QiLHtwYXJhbXM6cigpKHt9LFApLG1ldGhvZDoiR0VUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In19KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gaS5zdG9wKCl9fSxmKX0pKSxtLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiB5KGYpe3JldHVybigwLE8ucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RpY3QvdHlwZS8iLmNvbmNhdChmKSx7bWV0aG9kOiJHRVQifSl9ZnVuY3Rpb24gVShmLFApe3JldHVybiBwLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBwKCl7cmV0dXJuIHA9digpKHUoKSgpLm1hcmsoZnVuY3Rpb24gZihQLFcpe3ZhciBpLCQ7cmV0dXJuIHUoKSgpLndyYXAoZnVuY3Rpb24oXyl7Zm9yKDs7KXN3aXRjaChfLnByZXY9Xy5uZXh0KXtjYXNlIDA6cmV0dXJuIF8ubmV4dD0yLCgwLE8ucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RpY3QvZGF0YS90eXBlLyIuY29uY2F0KFApLHttZXRob2Q6IkdFVCJ9KTtjYXNlIDI6aWYoaT1fLnNlbnQsaS5jb2RlIT09YS5pSy5TVUNDRVNTKXtfLm5leHQ9OTticmVha31yZXR1cm4gJD17fSxpLmRhdGEuZm9yRWFjaChmdW5jdGlvbihvKXskW28uZGljdFZhbHVlXT17dGV4dDpvLmRpY3RMYWJlbCxsYWJlbDpvLmRpY3RMYWJlbCx2YWx1ZTpXP051bWJlcihvLmRpY3RWYWx1ZSk6by5kaWN0VmFsdWUsa2V5Om8uZGljdENvZGUsbGlzdENsYXNzOm8ubGlzdENsYXNzLHN0YXR1czpvLmxpc3RDbGFzc319KSxfLmFicnVwdCgicmV0dXJuIiwkKTtjYXNlIDk6cmV0dXJuIF8uYWJydXB0KCJyZXR1cm4iLHt9KTtjYXNlIDEwOmNhc2UiZW5kIjpyZXR1cm4gXy5zdG9wKCl9fSxmKX0pKSxwLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBnKGYsUCl7cmV0dXJuIHMuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHMoKXtyZXR1cm4gcz12KCkodSgpKCkubWFyayhmdW5jdGlvbiBmKFAsVyl7dmFyIGksJDtyZXR1cm4gdSgpKCkud3JhcChmdW5jdGlvbihfKXtmb3IoOzspc3dpdGNoKF8ucHJldj1fLm5leHQpe2Nhc2UgMDpyZXR1cm4gXy5uZXh0PTIsKDAsTy5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vZGljdC9kYXRhL3R5cGUvIi5jb25jYXQoUCkse21ldGhvZDoiR0VUIn0pO2Nhc2UgMjppZihpPV8uc2VudCxpLmNvZGUhPT0yMDApe18ubmV4dD02O2JyZWFrfXJldHVybiAkPWkuZGF0YS5tYXAoZnVuY3Rpb24obyl7cmV0dXJue3RleHQ6by5kaWN0TGFiZWwsbGFiZWw6by5kaWN0TGFiZWwsdmFsdWU6Vz9OdW1iZXIoby5kaWN0VmFsdWUpOm8uZGljdFZhbHVlLGtleTpvLmRpY3RDb2RlLGxpc3RDbGFzczpvLmxpc3RDbGFzcyxzdGF0dXM6by5saXN0Q2xhc3N9fSksXy5hYnJ1cHQoInJldHVybiIsJCk7Y2FzZSA2OnJldHVybiBfLmFicnVwdCgicmV0dXJuIixbXSk7Y2FzZSA3OmNhc2UiZW5kIjpyZXR1cm4gXy5zdG9wKCl9fSxmKX0pKSxzLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBjKGYpe3JldHVybiBULmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBUKCl7cmV0dXJuIFQ9digpKHUoKSgpLm1hcmsoZnVuY3Rpb24gZihQKXtyZXR1cm4gdSgpKCkud3JhcChmdW5jdGlvbihpKXtmb3IoOzspc3dpdGNoKGkucHJldj1pLm5leHQpe2Nhc2UgMDpyZXR1cm4gaS5hYnJ1cHQoInJldHVybiIsKDAsTy5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vZGljdC90eXBlIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In0sZGF0YTpQfSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGkuc3RvcCgpfX0sZil9KSksVC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gZChmKXtyZXR1cm4gbC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gbCgpe3JldHVybiBsPXYoKSh1KCkoKS5tYXJrKGZ1bmN0aW9uIGYoUCl7cmV0dXJuIHUoKSgpLndyYXAoZnVuY3Rpb24oaSl7Zm9yKDs7KXN3aXRjaChpLnByZXY9aS5uZXh0KXtjYXNlIDA6cmV0dXJuIGkuYWJydXB0KCJyZXR1cm4iLCgwLE8ucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RpY3QvdHlwZSIse21ldGhvZDoiUFVUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In0sZGF0YTpQfSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGkuc3RvcCgpfX0sZil9KSksbC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gQyhmKXtyZXR1cm4gSy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gSygpe3JldHVybiBLPXYoKSh1KCkoKS5tYXJrKGZ1bmN0aW9uIGYoUCl7cmV0dXJuIHUoKSgpLndyYXAoZnVuY3Rpb24oaSl7Zm9yKDs7KXN3aXRjaChpLnByZXY9aS5uZXh0KXtjYXNlIDA6cmV0dXJuIGkuYWJydXB0KCJyZXR1cm4iLCgwLE8ucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RpY3QvdHlwZS8iLmNvbmNhdChQKSx7bWV0aG9kOiJERUxFVEUifSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGkuc3RvcCgpfX0sZil9KSksSy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gUShmKXtyZXR1cm4oMCxGLnN1KSgiL2FwaS9zeXN0ZW0vZGljdC90eXBlL2V4cG9ydCIse3BhcmFtczpmfSwiZGljdF90eXBlXyIuY29uY2F0KG5ldyBEYXRlKCkuZ2V0VGltZSgpLCIueGxzeCIpKX1mdW5jdGlvbiB0KGYpe3JldHVybiBOLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBOKCl7cmV0dXJuIE49digpKHUoKSgpLm1hcmsoZnVuY3Rpb24gZihQKXtyZXR1cm4gdSgpKCkud3JhcChmdW5jdGlvbihpKXtmb3IoOzspc3dpdGNoKGkucHJldj1pLm5leHQpe2Nhc2UgMDpyZXR1cm4gaS5hYnJ1cHQoInJldHVybiIsKDAsTy5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vZGljdC90eXBlL29wdGlvbnNlbGVjdCIse3BhcmFtczpyKCkoe30sUCksbWV0aG9kOiJHRVQiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgifX0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBpLnN0b3AoKX19LGYpfSkpLE4uYXBwbHkodGhpcyxhcmd1bWVudHMpfX0sMTU0ODc6ZnVuY3Rpb24oWCxSLGUpe2UuZChSLHtDUDpmdW5jdGlvbigpe3JldHVybiB5fSxNODpmdW5jdGlvbigpe3JldHVybiBwfSxVSTpmdW5jdGlvbigpe3JldHVybiBPfSxxMjpmdW5jdGlvbigpe3JldHVybiBFfSxxYzpmdW5jdGlvbigpe3JldHVybiBzfX0pO3ZhciBJPWUoMTUwMDkpLHU9ZS5uKEkpLFM9ZSg5OTI4OSkscj1lLm4oUyksQj1lKDc2NzcyKSx2PWUoMzA5NjQpO2Z1bmN0aW9uIE8oYyl7cmV0dXJuIGEuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGEoKXtyZXR1cm4gYT1yKCkodSgpKCkubWFyayhmdW5jdGlvbiBjKFQpe3JldHVybiB1KCkoKS53cmFwKGZ1bmN0aW9uKGwpe2Zvcig7Oylzd2l0Y2gobC5wcmV2PWwubmV4dCl7Y2FzZSAwOnJldHVybiBsLmFicnVwdCgicmV0dXJuIiwoMCxCLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS9wb3N0L2xpc3QiLHttZXRob2Q6IkdFVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCJ9LHBhcmFtczpUfSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGwuc3RvcCgpfX0sYyl9KSksYS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gRihjKXtyZXR1cm4gcmVxdWVzdCgiL2FwaS9zeXN0ZW0vcG9zdC8iLmNvbmNhdChjKSx7bWV0aG9kOiJHRVQifSl9ZnVuY3Rpb24gRShjKXtyZXR1cm4gbS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gbSgpe3JldHVybiBtPXIoKSh1KCkoKS5tYXJrKGZ1bmN0aW9uIGMoVCl7cmV0dXJuIHUoKSgpLndyYXAoZnVuY3Rpb24obCl7Zm9yKDs7KXN3aXRjaChsLnByZXY9bC5uZXh0KXtjYXNlIDA6cmV0dXJuIGwuYWJydXB0KCJyZXR1cm4iLCgwLEIucmVxdWVzdCkoIi9hcGkvc3lzdGVtL3Bvc3QiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgifSxkYXRhOlR9KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gbC5zdG9wKCl9fSxjKX0pKSxtLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiB5KGMpe3JldHVybiBVLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBVKCl7cmV0dXJuIFU9cigpKHUoKSgpLm1hcmsoZnVuY3Rpb24gYyhUKXtyZXR1cm4gdSgpKCkud3JhcChmdW5jdGlvbihsKXtmb3IoOzspc3dpdGNoKGwucHJldj1sLm5leHQpe2Nhc2UgMDpyZXR1cm4gbC5hYnJ1cHQoInJldHVybiIsKDAsQi5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vcG9zdCIse21ldGhvZDoiUFVUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In0sZGF0YTpUfSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGwuc3RvcCgpfX0sYyl9KSksVS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gcChjKXtyZXR1cm4gZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gZygpe3JldHVybiBnPXIoKSh1KCkoKS5tYXJrKGZ1bmN0aW9uIGMoVCl7cmV0dXJuIHUoKSgpLndyYXAoZnVuY3Rpb24obCl7Zm9yKDs7KXN3aXRjaChsLnByZXY9bC5uZXh0KXtjYXNlIDA6cmV0dXJuIGwuYWJydXB0KCJyZXR1cm4iLCgwLEIucmVxdWVzdCkoIi9hcGkvc3lzdGVtL3Bvc3QvIi5jb25jYXQoVCkse21ldGhvZDoiREVMRVRFIn0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBsLnN0b3AoKX19LGMpfSkpLGcuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHMoYyl7cmV0dXJuKDAsdi5zdSkoIi9hcGkvc3lzdGVtL3Bvc3QvZXhwb3J0Iix7cGFyYW1zOmN9LCJwb3N0XyIuY29uY2F0KG5ldyBEYXRlKCkuZ2V0VGltZSgpLCIueGxzeCIpKX19LDMwOTY0OmZ1bmN0aW9uKFgsUixlKXtlLmQoUix7cDY6ZnVuY3Rpb24oKXtyZXR1cm4gRX0sc3U6ZnVuY3Rpb24oKXtyZXR1cm4gbX19KTt2YXIgST1lKDE1MDA5KSx1PWUubihJKSxTPWUoOTc4NTcpLHI9ZS5uKFMpLEI9ZSg5OTI4OSksdj1lLm4oQiksTz1lKDc2NzcyKSxhPXt4bHN4OiJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCIsemlwOiJhcHBsaWNhdGlvbi96aXAifTtmdW5jdGlvbiBGKHAsZyl7dmFyIHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpLGM9bmV3IEJsb2IoW3AuZGF0YV0se3R5cGU6Z30pLFQ9bmV3IFJlZ0V4cCgiZmlsZW5hbWU9KFteO10rXFwuW15cXC47XSspOyoiKSxkPWRlY29kZVVSSShwLmhlYWRlcnNbImNvbnRlbnQtZGlzcG9zaXRpb24iXSksbD1ULmV4ZWMoZCksQz1sP2xbMV06ImZpbGUiO0M9Qy5yZXBsYWNlKC8iL2csIiIpLHMuc3R5bGUuZGlzcGxheT0ibm9uZSIscy5ocmVmPVVSTC5jcmVhdGVPYmplY3RVUkwoYykscy5zZXRBdHRyaWJ1dGUoImRvd25sb2FkIixDKSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHMpLHMuY2xpY2soKSxVUkwucmV2b2tlT2JqZWN0VVJMKHMuaHJlZiksZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChzKX1mdW5jdGlvbiBFKHApeygwLE8ucmVxdWVzdCkocCx7bWV0aG9kOiJHRVQiLHJlc3BvbnNlVHlwZToiYmxvYiIsZ2V0UmVzcG9uc2U6ITB9KS50aGVuKGZ1bmN0aW9uKGcpe0YoZyxhLnppcCl9KX1mdW5jdGlvbiBtKHAsZyxzKXtyZXR1cm4geS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24geSgpe3JldHVybiB5PXYoKSh1KCkoKS5tYXJrKGZ1bmN0aW9uIHAoZyxzLGMpe3JldHVybiB1KCkoKS53cmFwKGZ1bmN0aW9uKGQpe2Zvcig7Oylzd2l0Y2goZC5wcmV2PWQubmV4dCl7Y2FzZSAwOnJldHVybiBkLmFicnVwdCgicmV0dXJuIiwoMCxPLnJlcXVlc3QpKGcscigpKHIoKSh7fSxzKSx7fSx7bWV0aG9kOiJQT1NUIixyZXNwb25zZVR5cGU6ImJsb2IifSkpLnRoZW4oZnVuY3Rpb24obCl7dmFyIEM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpLEs9bDtDLnN0eWxlLmRpc3BsYXk9Im5vbmUiLEMuaHJlZj1VUkwuY3JlYXRlT2JqZWN0VVJMKEspLEMuc2V0QXR0cmlidXRlKCJkb3dubG9hZCIsYyksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChDKSxDLmNsaWNrKCksVVJMLnJldm9rZU9iamVjdFVSTChDLmhyZWYpLGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoQyl9KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gZC5zdG9wKCl9fSxwKX0pKSx5LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBVKHApe3dpbmRvdy5sb2NhdGlvbi5ocmVmPSIvYXBpL2NvbW1vbi9kb3dubG9hZD9maWxlTmFtZT0iLmNvbmNhdChlbmNvZGVVUkkocCksIiZkZWxldGU9IiwhMCl9fX1dKTsKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNjc2Mi5lZDBmYWI0OC5hc3luYy5qcyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNjc2Mi5lZDBmYWI0OC5hc3luYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMzU0ZjJkCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy82NzYyLmVkMGZhYjQ4LmFzeW5jLmpzCkBAIC0wLDAgKzEgQEAKKyJ1c2Ugc3RyaWN0Ijsoc2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Bybz1zZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvfHxbXSkucHVzaChbWzY3NjJdLHszMTE5OTpmdW5jdGlvbih4LHAsZSl7dmFyIGw9ZSgxNDEzKSxhPWUoOTEpLGY9ZSg2NzI5NCksRj1lKDkyMTc5KSx2PWUoODU4OTMpLE09WyJmaWVsZFByb3BzIiwibWluIiwicHJvRmllbGRQcm9wcyIsIm1heCJdLGM9ZnVuY3Rpb24odSxnKXt2YXIgTz11LmZpZWxkUHJvcHMsZD11Lm1pbixfPXUucHJvRmllbGRQcm9wcyxpPXUubWF4LHM9KDAsYS5aKSh1LE0pO3JldHVybigwLHYuanN4KShGLlosKDAsbC5aKSh7dmFsdWVUeXBlOiJkaWdpdCIsZmllbGRQcm9wczooMCxsLlopKHttaW46ZCxtYXg6aX0sTykscmVmOmcsZmlsZWRDb25maWc6e2RlZmF1bHRQcm9wczp7d2lkdGg6IjEwMCUifX0scHJvRmllbGRQcm9wczpffSxzKSl9LEQ9Zi5mb3J3YXJkUmVmKGMpO3AuWj1EfSw4NjYxNTpmdW5jdGlvbih4LHAsZSl7dmFyIGw9ZSgxNDEzKSxhPWUoOTEpLGY9ZSgyMjI3MCksRj1lKDc4MDQ1KSx2PWUoNjcyOTQpLE09ZSg5MDc4OSksYz1lKDkyMTc5KSxEPWUoODU4OTMpLG09WyJmaWVsZFByb3BzIiwib3B0aW9ucyIsInJhZGlvVHlwZSIsImxheW91dCIsInByb0ZpZWxkUHJvcHMiLCJ2YWx1ZUVudW0iXSx1PXYuZm9yd2FyZFJlZihmdW5jdGlvbihfLGkpe3ZhciBzPV8uZmllbGRQcm9wcyxUPV8ub3B0aW9ucyxCPV8ucmFkaW9UeXBlLHI9Xy5sYXlvdXQsbz1fLnByb0ZpZWxkUHJvcHMsUD1fLnZhbHVlRW51bSx0PSgwLGEuWikoXyxtKTtyZXR1cm4oMCxELmpzeCkoYy5aLCgwLGwuWikoKDAsbC5aKSh7dmFsdWVUeXBlOkI9PT0iYnV0dG9uIj8icmFkaW9CdXR0b24iOiJyYWRpbyIscmVmOmksdmFsdWVFbnVtOigwLGYuaCkoUCx2b2lkIDApfSx0KSx7fSx7ZmllbGRQcm9wczooMCxsLlopKHtvcHRpb25zOlQsbGF5b3V0OnJ9LHMpLHByb0ZpZWxkUHJvcHM6byxmaWxlZENvbmZpZzp7Y3VzdG9tTGlnaHRNb2RlOiEwfX0pKX0pLGc9di5mb3J3YXJkUmVmKGZ1bmN0aW9uKF8saSl7dmFyIHM9Xy5maWVsZFByb3BzLFQ9Xy5jaGlsZHJlbjtyZXR1cm4oMCxELmpzeCkoRi5aUCwoMCxsLlopKCgwLGwuWikoe30scykse30se3JlZjppLGNoaWxkcmVuOlR9KSl9KSxPPSgwLE0uRykoZyx7dmFsdWVQcm9wTmFtZToiY2hlY2tlZCIsaWdub3JlV2lkdGg6ITB9KSxkPU87ZC5Hcm91cD11LGQuQnV0dG9uPUYuWlAuQnV0dG9uLGQuZGlzcGxheU5hbWU9IlByb0Zvcm1Db21wb25lbnQiLHAuWj1kfSw5MDY3MjpmdW5jdGlvbih4LHAsZSl7dmFyIGw9ZSgxNDEzKSxhPWUoOTEpLGY9ZSg2NzI5NCksRj1lKDkyMTc5KSx2PWUoODU4OTMpLE09WyJmaWVsZFByb3BzIiwicHJvRmllbGRQcm9wcyJdLGM9ZnVuY3Rpb24obSx1KXt2YXIgZz1tLmZpZWxkUHJvcHMsTz1tLnByb0ZpZWxkUHJvcHMsZD0oMCxhLlopKG0sTSk7cmV0dXJuKDAsdi5qc3gpKEYuWiwoMCxsLlopKHtyZWY6dSx2YWx1ZVR5cGU6InRleHRhcmVhIixmaWVsZFByb3BzOmcscHJvRmllbGRQcm9wczpPfSxkKSl9O3AuWj1mLmZvcndhcmRSZWYoYyl9LDU5NjY6ZnVuY3Rpb24oeCxwLGUpe3ZhciBsPWUoOTc2ODUpLGE9ZSgxNDEzKSxmPWUoOTEpLEY9ZSgyMTc3MCksdj1lKDk5ODU5KSxNPWUoNTUyNDEpLGM9ZSg5ODQyMyksRD1lKDY3Mjk0KSxtPWUoOTIxNzkpLHU9ZSg4NTg5MyksZz1bImZpZWxkUHJvcHMiLCJwcm9GaWVsZFByb3BzIl0sTz1bImZpZWxkUHJvcHMiLCJwcm9GaWVsZFByb3BzIl0sZD0idGV4dCIsXz1mdW5jdGlvbihyKXt2YXIgbz1yLmZpZWxkUHJvcHMsUD1yLnByb0ZpZWxkUHJvcHMsdD0oMCxmLlopKHIsZyk7cmV0dXJuKDAsdS5qc3gpKG0uWiwoMCxhLlopKHt2YWx1ZVR5cGU6ZCxmaWVsZFByb3BzOm8sZmlsZWRDb25maWc6e3ZhbHVlVHlwZTpkfSxwcm9GaWVsZFByb3BzOlB9LHQpKX0saT1mdW5jdGlvbihyKXt2YXIgbz0oMCxGLlopKHIub3Blbnx8ITEse3ZhbHVlOnIub3BlbixvbkNoYW5nZTpyLm9uT3BlbkNoYW5nZX0pLFA9KDAsbC5aKShvLDIpLHQ9UFswXSxSPVBbMV07cmV0dXJuKDAsdS5qc3gpKHYuWi5JdGVtLHtzaG91bGRVcGRhdGU6ITAsbm9TdHlsZTohMCxjaGlsZHJlbjpmdW5jdGlvbihXKXt2YXIgQyxBPVcuZ2V0RmllbGRWYWx1ZShyLm5hbWV8fFtdKTtyZXR1cm4oMCx1LmpzeCkoTS5aLCgwLGEuWikoKDAsYS5aKSh7Z2V0UG9wdXBDb250YWluZXI6ZnVuY3Rpb24obil7cmV0dXJuIG4mJm4ucGFyZW50Tm9kZT9uLnBhcmVudE5vZGU6bn0sb25PcGVuQ2hhbmdlOmZ1bmN0aW9uKG4pe3JldHVybiBSKG4pfSxjb250ZW50OigwLHUuanN4cykoImRpdiIse3N0eWxlOntwYWRkaW5nOiI0cHggMCJ9LGNoaWxkcmVuOlsoQz1yLnN0YXR1c1JlbmRlcik9PT1udWxsfHxDPT09dm9pZCAwP3ZvaWQgMDpDLmNhbGwocixBKSxyLnN0cmVuZ3RoVGV4dD8oMCx1LmpzeCkoImRpdiIse3N0eWxlOnttYXJnaW5Ub3A6MTB9LGNoaWxkcmVuOigwLHUuanN4KSgic3BhbiIse2NoaWxkcmVuOnIuc3RyZW5ndGhUZXh0fSl9KTpudWxsXX0pLG92ZXJsYXlTdHlsZTp7d2lkdGg6MjQwfSxwbGFjZW1lbnQ6InJpZ2h0VG9wIn0sci5wb3BvdmVyUHJvcHMpLHt9LHtvcGVuOnQsY2hpbGRyZW46ci5jaGlsZHJlbn0pKX19KX0scz1mdW5jdGlvbihyKXt2YXIgbz1yLmZpZWxkUHJvcHMsUD1yLnByb0ZpZWxkUHJvcHMsdD0oMCxmLlopKHIsTyksUj0oMCxELnVzZVN0YXRlKSghMSksRT0oMCxsLlopKFIsMiksVz1FWzBdLEM9RVsxXTtyZXR1cm4gbyE9bnVsbCYmby5zdGF0dXNSZW5kZXImJnQubmFtZT8oMCx1LmpzeCkoaSx7bmFtZTp0Lm5hbWUsc3RhdHVzUmVuZGVyOm89PW51bGw/dm9pZCAwOm8uc3RhdHVzUmVuZGVyLHBvcG92ZXJQcm9wczpvPT1udWxsP3ZvaWQgMDpvLnBvcG92ZXJQcm9wcyxzdHJlbmd0aFRleHQ6bz09bnVsbD92b2lkIDA6by5zdHJlbmd0aFRleHQsb3BlbjpXLG9uT3BlbkNoYW5nZTpDLGNoaWxkcmVuOigwLHUuanN4KSgiZGl2Iix7Y2hpbGRyZW46KDAsdS5qc3gpKG0uWiwoMCxhLlopKHt2YWx1ZVR5cGU6InBhc3N3b3JkIixmaWVsZFByb3BzOigwLGEuWikoKDAsYS5aKSh7fSwoMCxjLlopKG8sWyJzdGF0dXNSZW5kZXIiLCJwb3BvdmVyUHJvcHMiLCJzdHJlbmd0aFRleHQiXSkpLHt9LHtvbkJsdXI6ZnVuY3Rpb24oaCl7dmFyIG47bz09bnVsbHx8KG49by5vbkJsdXIpPT09bnVsbHx8bj09PXZvaWQgMHx8bi5jYWxsKG8saCksQyghMSl9LG9uQ2xpY2s6ZnVuY3Rpb24oaCl7dmFyIG47bz09bnVsbHx8KG49by5vbkNsaWNrKT09PW51bGx8fG49PT12b2lkIDB8fG4uY2FsbChvLGgpLEMoITApfX0pLHByb0ZpZWxkUHJvcHM6UCxmaWxlZENvbmZpZzp7dmFsdWVUeXBlOmR9fSx0KSl9KX0pOigwLHUuanN4KShtLlosKDAsYS5aKSh7dmFsdWVUeXBlOiJwYXNzd29yZCIsZmllbGRQcm9wczpvLHByb0ZpZWxkUHJvcHM6UCxmaWxlZENvbmZpZzp7dmFsdWVUeXBlOmR9fSx0KSl9LFQ9XztULlBhc3N3b3JkPXMsVC5kaXNwbGF5TmFtZT0iUHJvRm9ybUNvbXBvbmVudCIscC5aPVR9LDk2NzYyOmZ1bmN0aW9uKHgscCxlKXtlLnIocCk7dmFyIGw9ZSgxNTAwOSksYT1lLm4obCksZj1lKDk5Mjg5KSxGPWUubihmKSx2PWUoNTU3NCksTT1lLm4odiksYz1lKDY3Mjk0KSxEPWUoOTcyNjkpLG09ZSgzMTE5OSksdT1lKDU5NjYpLGc9ZSg5MDY3MiksTz1lKDg2NjE1KSxkPWUoOTk4NTkpLF89ZSgxNzc4OCksaT1lKDc2NzcyKSxzPWUoODU4OTMpLFQ9ZnVuY3Rpb24ocil7dmFyIG89ZC5aLnVzZUZvcm0oKSxQPU0oKShvLDEpLHQ9UFswXSxSPXIuY29uZmlnVHlwZU9wdGlvbnM7KDAsYy51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7dC5yZXNldEZpZWxkcygpLHQuc2V0RmllbGRzVmFsdWUoe2NvbmZpZ0lkOnIudmFsdWVzLmNvbmZpZ0lkLGNvbmZpZ05hbWU6ci52YWx1ZXMuY29uZmlnTmFtZSxjb25maWdLZXk6ci52YWx1ZXMuY29uZmlnS2V5LGNvbmZpZ1ZhbHVlOnIudmFsdWVzLmNvbmZpZ1ZhbHVlLGNvbmZpZ1R5cGU6ci52YWx1ZXMuY29uZmlnVHlwZSxjcmVhdGVCeTpyLnZhbHVlcy5jcmVhdGVCeSxjcmVhdGVUaW1lOnIudmFsdWVzLmNyZWF0ZVRpbWUsdXBkYXRlQnk6ci52YWx1ZXMudXBkYXRlQnksdXBkYXRlVGltZTpyLnZhbHVlcy51cGRhdGVUaW1lLHJlbWFyazpyLnZhbHVlcy5yZW1hcmt9KX0sW3Qscl0pO3ZhciBFPSgwLGkudXNlSW50bCkoKSxXPWZ1bmN0aW9uKCl7dC5zdWJtaXQoKX0sQz1mdW5jdGlvbigpe3Iub25DYW5jZWwoKX0sQT1mdW5jdGlvbigpe3ZhciBoPUYoKShhKCkoKS5tYXJrKGZ1bmN0aW9uIG4oeSl7cmV0dXJuIGEoKSgpLndyYXAoZnVuY3Rpb24oail7Zm9yKDs7KXN3aXRjaChqLnByZXY9ai5uZXh0KXtjYXNlIDA6ci5vblN1Ym1pdCh5KTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBqLnN0b3AoKX19LG4pfSkpO3JldHVybiBmdW5jdGlvbih5KXtyZXR1cm4gaC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpO3JldHVybigwLHMuanN4KShfLlose3dpZHRoOjY0MCx0aXRsZTpFLmZvcm1hdE1lc3NhZ2Uoe2lkOiJzeXN0ZW0uY29uZmlnLnRpdGxlIixkZWZhdWx0TWVzc2FnZToiXHU3RjE2XHU4RjkxXHU1M0MyXHU2NTcwXHU5MTREXHU3RjZFIn0pLG9wZW46ci5vcGVuLGZvcmNlUmVuZGVyOiEwLGRlc3Ryb3lPbkNsb3NlOiEwLG9uT2s6VyxvbkNhbmNlbDpDLGNoaWxkcmVuOigwLHMuanN4cykoRC5BLHtmb3JtOnQsZ3JpZDohMCxzdWJtaXR0ZXI6ITEsbGF5b3V0OiJob3Jpem9udGFsIixvbkZpbmlzaDpBLGNoaWxkcmVuOlsoMCxzLmpzeCkobS5aLHtuYW1lOiJjb25maWdJZCIsbGFiZWw6RS5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLmNvbmZpZy5jb25maWdfaWQiLGRlZmF1bHRNZXNzYWdlOiJcdTUzQzJcdTY1NzBcdTRFM0JcdTk1MkUifSksY29sUHJvcHM6e21kOjI0fSxwbGFjZWhvbGRlcjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU1M0MyXHU2NTcwXHU0RTNCXHU5NTJFIixkaXNhYmxlZDohMCxoaWRkZW46ITAscnVsZXM6W3tyZXF1aXJlZDohMSxtZXNzYWdlOigwLHMuanN4KShpLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTUzQzJcdTY1NzBcdTRFM0JcdTk1MkVcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTUzQzJcdTY1NzBcdTRFM0JcdTk1MkVcdUZGMDEifSl9XX0pLCgwLHMuanN4KSh1Llose25hbWU6ImNvbmZpZ05hbWUiLGxhYmVsOkUuZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5jb25maWcuY29uZmlnX25hbWUiLGRlZmF1bHRNZXNzYWdlOiJcdTUzQzJcdTY1NzBcdTU0MERcdTc5RjAifSksY29sUHJvcHM6e21kOjI0fSxwbGFjZWhvbGRlcjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU1M0MyXHU2NTcwXHU1NDBEXHU3OUYwIixydWxlczpbe3JlcXVpcmVkOiExLG1lc3NhZ2U6KDAscy5qc3gpKGkuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NTNDMlx1NjU3MFx1NTQwRFx1NzlGMFx1RkYwMSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NTNDMlx1NjU3MFx1NTQwRFx1NzlGMFx1RkYwMSJ9KX1dfSksKDAscy5qc3gpKHUuWix7bmFtZToiY29uZmlnS2V5IixsYWJlbDpFLmZvcm1hdE1lc3NhZ2Uoe2lkOiJzeXN0ZW0uY29uZmlnLmNvbmZpZ19rZXkiLGRlZmF1bHRNZXNzYWdlOiJcdTUzQzJcdTY1NzBcdTk1MkVcdTU0MEQifSksY29sUHJvcHM6e21kOjI0fSxwbGFjZWhvbGRlcjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU1M0MyXHU2NTcwXHU5NTJFXHU1NDBEIixydWxlczpbe3JlcXVpcmVkOiExLG1lc3NhZ2U6KDAscy5qc3gpKGkuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NTNDMlx1NjU3MFx1OTUyRVx1NTQwRFx1RkYwMSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NTNDMlx1NjU3MFx1OTUyRVx1NTQwRFx1RkYwMSJ9KX1dfSksKDAscy5qc3gpKGcuWix7bmFtZToiY29uZmlnVmFsdWUiLGxhYmVsOkUuZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5jb25maWcuY29uZmlnX3ZhbHVlIixkZWZhdWx0TWVzc2FnZToiXHU1M0MyXHU2NTcwXHU5NTJFXHU1MDNDIn0pLGNvbFByb3BzOnttZDoyNH0scGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NTNDMlx1NjU3MFx1OTUyRVx1NTAzQyIscnVsZXM6W3tyZXF1aXJlZDohMSxtZXNzYWdlOigwLHMuanN4KShpLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTUzQzJcdTY1NzBcdTk1MkVcdTUwM0NcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTUzQzJcdTY1NzBcdTk1MkVcdTUwM0NcdUZGMDEifSl9XX0pLCgwLHMuanN4KShPLlouR3JvdXAse3ZhbHVlRW51bTpSLG5hbWU6ImNvbmZpZ1R5cGUiLGxhYmVsOkUuZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5jb25maWcuY29uZmlnX3R5cGUiLGRlZmF1bHRNZXNzYWdlOiJcdTdDRkJcdTdFREZcdTUxODVcdTdGNkUifSksY29sUHJvcHM6e21kOjI0fSxwbGFjZWhvbGRlcjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU3Q0ZCXHU3RURGXHU1MTg1XHU3RjZFIixydWxlczpbe3JlcXVpcmVkOiExLG1lc3NhZ2U6KDAscy5qc3gpKGkuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1N0NGQlx1N0VERlx1NTE4NVx1N0Y2RVx1RkYwMSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1N0NGQlx1N0VERlx1NTE4NVx1N0Y2RVx1RkYwMSJ9KX1dfSksKDAscy5qc3gpKGcuWix7bmFtZToicmVtYXJrIixsYWJlbDpFLmZvcm1hdE1lc3NhZ2Uoe2lkOiJzeXN0ZW0uY29uZmlnLnJlbWFyayIsZGVmYXVsdE1lc3NhZ2U6Ilx1NTkwN1x1NkNFOCJ9KSxjb2xQcm9wczp7bWQ6MjR9LHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdTU5MDdcdTZDRTgiLHJ1bGVzOlt7cmVxdWlyZWQ6ITEsbWVzc2FnZTooMCxzLmpzeCkoaS5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU1OTA3XHU2Q0U4XHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU1OTA3XHU2Q0U4XHVGRjAxIn0pfV19KV19KX0pfTtwLmRlZmF1bHQ9VH19XSk7CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzY5MjQuMzg1NDc5NTQuYXN5bmMuanMgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzY5MjQuMzg1NDc5NTQuYXN5bmMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmE2OTBlMQotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNjkyNC4zODU0Nzk1NC5hc3luYy5qcwpAQCAtMCwwICsxIEBACisidXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W10pLnB1c2goW1s2OTI0XSx7ODY2MTU6ZnVuY3Rpb24oaixoLGUpe3ZhciB0PWUoMTQxMyksbD1lKDkxKSx2PWUoMjIyNzApLG09ZSg3ODA0NSksTT1lKDY3Mjk0KSxmPWUoOTA3ODkpLE89ZSg5MjE3OSksQj1lKDg1ODkzKSxfPVsiZmllbGRQcm9wcyIsIm9wdGlvbnMiLCJyYWRpb1R5cGUiLCJsYXlvdXQiLCJwcm9GaWVsZFByb3BzIiwidmFsdWVFbnVtIl0sbz1NLmZvcndhcmRSZWYoZnVuY3Rpb24obixkKXt2YXIgdT1uLmZpZWxkUHJvcHMscj1uLm9wdGlvbnMsQz1uLnJhZGlvVHlwZSxhPW4ubGF5b3V0LHM9bi5wcm9GaWVsZFByb3BzLEU9bi52YWx1ZUVudW0sUD0oMCxsLlopKG4sXyk7cmV0dXJuKDAsQi5qc3gpKE8uWiwoMCx0LlopKCgwLHQuWikoe3ZhbHVlVHlwZTpDPT09ImJ1dHRvbiI/InJhZGlvQnV0dG9uIjoicmFkaW8iLHJlZjpkLHZhbHVlRW51bTooMCx2LmgpKEUsdm9pZCAwKX0sUCkse30se2ZpZWxkUHJvcHM6KDAsdC5aKSh7b3B0aW9uczpyLGxheW91dDphfSx1KSxwcm9GaWVsZFByb3BzOnMsZmlsZWRDb25maWc6e2N1c3RvbUxpZ2h0TW9kZTohMH19KSl9KSxjPU0uZm9yd2FyZFJlZihmdW5jdGlvbihuLGQpe3ZhciB1PW4uZmllbGRQcm9wcyxyPW4uY2hpbGRyZW47cmV0dXJuKDAsQi5qc3gpKG0uWlAsKDAsdC5aKSgoMCx0LlopKHt9LHUpLHt9LHtyZWY6ZCxjaGlsZHJlbjpyfSkpfSksVD0oMCxmLkcpKGMse3ZhbHVlUHJvcE5hbWU6ImNoZWNrZWQiLGlnbm9yZVdpZHRoOiEwfSksaT1UO2kuR3JvdXA9byxpLkJ1dHRvbj1tLlpQLkJ1dHRvbixpLmRpc3BsYXlOYW1lPSJQcm9Gb3JtQ29tcG9uZW50IixoLlo9aX0sNjQzMTc6ZnVuY3Rpb24oaixoLGUpe3ZhciB0PWUoMTQxMyksbD1lKDkxKSx2PWUoMjIyNzApLG09ZSg2NzI5NCksTT1lKDY2NzU4KSxmPWUoOTIxNzkpLE89ZSg4NTg5MyksQj1bImZpZWxkUHJvcHMiLCJjaGlsZHJlbiIsInBhcmFtcyIsInByb0ZpZWxkUHJvcHMiLCJtb2RlIiwidmFsdWVFbnVtIiwicmVxdWVzdCIsInNob3dTZWFyY2giLCJvcHRpb25zIl0sXz1bImZpZWxkUHJvcHMiLCJjaGlsZHJlbiIsInBhcmFtcyIsInByb0ZpZWxkUHJvcHMiLCJtb2RlIiwidmFsdWVFbnVtIiwicmVxdWVzdCIsIm9wdGlvbnMiXSxvPWZ1bmN0aW9uKHUscil7dmFyIEM9dS5maWVsZFByb3BzLGE9dS5jaGlsZHJlbixzPXUucGFyYW1zLEU9dS5wcm9GaWVsZFByb3BzLFA9dS5tb2RlLEY9dS52YWx1ZUVudW0seD11LnJlcXVlc3QsST11LnNob3dTZWFyY2gsZz11Lm9wdGlvbnMsVz0oMCxsLlopKHUsQiksQT0oMCxtLnVzZUNvbnRleHQpKE0uWik7cmV0dXJuKDAsTy5qc3gpKGYuWiwoMCx0LlopKCgwLHQuWikoe3ZhbHVlRW51bTooMCx2LmgpKEYpLHJlcXVlc3Q6eCxwYXJhbXM6cyx2YWx1ZVR5cGU6InNlbGVjdCIsZmlsZWRDb25maWc6e2N1c3RvbUxpZ2h0TW9kZTohMH0sZmllbGRQcm9wczooMCx0LlopKHtvcHRpb25zOmcsbW9kZTpQLHNob3dTZWFyY2g6SSxnZXRQb3B1cENvbnRhaW5lcjpBLmdldFBvcHVwQ29udGFpbmVyfSxDKSxyZWY6cixwcm9GaWVsZFByb3BzOkV9LFcpLHt9LHtjaGlsZHJlbjphfSkpfSxjPW0uZm9yd2FyZFJlZihmdW5jdGlvbihkLHUpe3ZhciByPWQuZmllbGRQcm9wcyxDPWQuY2hpbGRyZW4sYT1kLnBhcmFtcyxzPWQucHJvRmllbGRQcm9wcyxFPWQubW9kZSxQPWQudmFsdWVFbnVtLEY9ZC5yZXF1ZXN0LHg9ZC5vcHRpb25zLEk9KDAsbC5aKShkLF8pLGc9KDAsdC5aKSh7b3B0aW9uczp4LG1vZGU6RXx8Im11bHRpcGxlIixsYWJlbEluVmFsdWU6ITAsc2hvd1NlYXJjaDohMCxzdWZmaXhJY29uOm51bGwsYXV0b0NsZWFyU2VhcmNoVmFsdWU6ITAsb3B0aW9uTGFiZWxQcm9wOiJsYWJlbCJ9LHIpLFc9KDAsbS51c2VDb250ZXh0KShNLlopO3JldHVybigwLE8uanN4KShmLlosKDAsdC5aKSgoMCx0LlopKHt2YWx1ZUVudW06KDAsdi5oKShQKSxyZXF1ZXN0OkYscGFyYW1zOmEsdmFsdWVUeXBlOiJzZWxlY3QiLGZpbGVkQ29uZmlnOntjdXN0b21MaWdodE1vZGU6ITB9LGZpZWxkUHJvcHM6KDAsdC5aKSh7Z2V0UG9wdXBDb250YWluZXI6Vy5nZXRQb3B1cENvbnRhaW5lcn0sZykscmVmOnUscHJvRmllbGRQcm9wczpzfSxJKSx7fSx7Y2hpbGRyZW46Q30pKX0pLFQ9bS5mb3J3YXJkUmVmKG8pLGk9YyxuPVQ7bi5TZWFyY2hTZWxlY3Q9aSxuLmRpc3BsYXlOYW1lPSJQcm9Gb3JtQ29tcG9uZW50IixoLlo9bn0sOTA2NzI6ZnVuY3Rpb24oaixoLGUpe3ZhciB0PWUoMTQxMyksbD1lKDkxKSx2PWUoNjcyOTQpLG09ZSg5MjE3OSksTT1lKDg1ODkzKSxmPVsiZmllbGRQcm9wcyIsInByb0ZpZWxkUHJvcHMiXSxPPWZ1bmN0aW9uKF8sbyl7dmFyIGM9Xy5maWVsZFByb3BzLFQ9Xy5wcm9GaWVsZFByb3BzLGk9KDAsbC5aKShfLGYpO3JldHVybigwLE0uanN4KShtLlosKDAsdC5aKSh7cmVmOm8sdmFsdWVUeXBlOiJ0ZXh0YXJlYSIsZmllbGRQcm9wczpjLHByb0ZpZWxkUHJvcHM6VH0saSkpfTtoLlo9di5mb3J3YXJkUmVmKE8pfSw1OTY2OmZ1bmN0aW9uKGosaCxlKXt2YXIgdD1lKDk3Njg1KSxsPWUoMTQxMyksdj1lKDkxKSxtPWUoMjE3NzApLE09ZSg5OTg1OSksZj1lKDU1MjQxKSxPPWUoOTg0MjMpLEI9ZSg2NzI5NCksXz1lKDkyMTc5KSxvPWUoODU4OTMpLGM9WyJmaWVsZFByb3BzIiwicHJvRmllbGRQcm9wcyJdLFQ9WyJmaWVsZFByb3BzIiwicHJvRmllbGRQcm9wcyJdLGk9InRleHQiLG49ZnVuY3Rpb24oYSl7dmFyIHM9YS5maWVsZFByb3BzLEU9YS5wcm9GaWVsZFByb3BzLFA9KDAsdi5aKShhLGMpO3JldHVybigwLG8uanN4KShfLlosKDAsbC5aKSh7dmFsdWVUeXBlOmksZmllbGRQcm9wczpzLGZpbGVkQ29uZmlnOnt2YWx1ZVR5cGU6aX0scHJvRmllbGRQcm9wczpFfSxQKSl9LGQ9ZnVuY3Rpb24oYSl7dmFyIHM9KDAsbS5aKShhLm9wZW58fCExLHt2YWx1ZTphLm9wZW4sb25DaGFuZ2U6YS5vbk9wZW5DaGFuZ2V9KSxFPSgwLHQuWikocywyKSxQPUVbMF0sRj1FWzFdO3JldHVybigwLG8uanN4KShNLlouSXRlbSx7c2hvdWxkVXBkYXRlOiEwLG5vU3R5bGU6ITAsY2hpbGRyZW46ZnVuY3Rpb24oSSl7dmFyIGcsVz1JLmdldEZpZWxkVmFsdWUoYS5uYW1lfHxbXSk7cmV0dXJuKDAsby5qc3gpKGYuWiwoMCxsLlopKCgwLGwuWikoe2dldFBvcHVwQ29udGFpbmVyOmZ1bmN0aW9uKHApe3JldHVybiBwJiZwLnBhcmVudE5vZGU/cC5wYXJlbnROb2RlOnB9LG9uT3BlbkNoYW5nZTpmdW5jdGlvbihwKXtyZXR1cm4gRihwKX0sY29udGVudDooMCxvLmpzeHMpKCJkaXYiLHtzdHlsZTp7cGFkZGluZzoiNHB4IDAifSxjaGlsZHJlbjpbKGc9YS5zdGF0dXNSZW5kZXIpPT09bnVsbHx8Zz09PXZvaWQgMD92b2lkIDA6Zy5jYWxsKGEsVyksYS5zdHJlbmd0aFRleHQ/KDAsby5qc3gpKCJkaXYiLHtzdHlsZTp7bWFyZ2luVG9wOjEwfSxjaGlsZHJlbjooMCxvLmpzeCkoInNwYW4iLHtjaGlsZHJlbjphLnN0cmVuZ3RoVGV4dH0pfSk6bnVsbF19KSxvdmVybGF5U3R5bGU6e3dpZHRoOjI0MH0scGxhY2VtZW50OiJyaWdodFRvcCJ9LGEucG9wb3ZlclByb3BzKSx7fSx7b3BlbjpQLGNoaWxkcmVuOmEuY2hpbGRyZW59KSl9fSl9LHU9ZnVuY3Rpb24oYSl7dmFyIHM9YS5maWVsZFByb3BzLEU9YS5wcm9GaWVsZFByb3BzLFA9KDAsdi5aKShhLFQpLEY9KDAsQi51c2VTdGF0ZSkoITEpLHg9KDAsdC5aKShGLDIpLEk9eFswXSxnPXhbMV07cmV0dXJuIHMhPW51bGwmJnMuc3RhdHVzUmVuZGVyJiZQLm5hbWU/KDAsby5qc3gpKGQse25hbWU6UC5uYW1lLHN0YXR1c1JlbmRlcjpzPT1udWxsP3ZvaWQgMDpzLnN0YXR1c1JlbmRlcixwb3BvdmVyUHJvcHM6cz09bnVsbD92b2lkIDA6cy5wb3BvdmVyUHJvcHMsc3RyZW5ndGhUZXh0OnM9PW51bGw/dm9pZCAwOnMuc3RyZW5ndGhUZXh0LG9wZW46SSxvbk9wZW5DaGFuZ2U6ZyxjaGlsZHJlbjooMCxvLmpzeCkoImRpdiIse2NoaWxkcmVuOigwLG8uanN4KShfLlosKDAsbC5aKSh7dmFsdWVUeXBlOiJwYXNzd29yZCIsZmllbGRQcm9wczooMCxsLlopKCgwLGwuWikoe30sKDAsTy5aKShzLFsic3RhdHVzUmVuZGVyIiwicG9wb3ZlclByb3BzIiwic3RyZW5ndGhUZXh0Il0pKSx7fSx7b25CbHVyOmZ1bmN0aW9uKEEpe3ZhciBwO3M9PW51bGx8fChwPXMub25CbHVyKT09PW51bGx8fHA9PT12b2lkIDB8fHAuY2FsbChzLEEpLGcoITEpfSxvbkNsaWNrOmZ1bmN0aW9uKEEpe3ZhciBwO3M9PW51bGx8fChwPXMub25DbGljayk9PT1udWxsfHxwPT09dm9pZCAwfHxwLmNhbGwocyxBKSxnKCEwKX19KSxwcm9GaWVsZFByb3BzOkUsZmlsZWRDb25maWc6e3ZhbHVlVHlwZTppfX0sUCkpfSl9KTooMCxvLmpzeCkoXy5aLCgwLGwuWikoe3ZhbHVlVHlwZToicGFzc3dvcmQiLGZpZWxkUHJvcHM6cyxwcm9GaWVsZFByb3BzOkUsZmlsZWRDb25maWc6e3ZhbHVlVHlwZTppfX0sUCkpfSxyPW47ci5QYXNzd29yZD11LHIuZGlzcGxheU5hbWU9IlByb0Zvcm1Db21wb25lbnQiLGguWj1yfSwxOTA1NDpmdW5jdGlvbihqLGgsZSl7dmFyIHQ9ZSgxNDEzKSxsPWUoOTEpLHY9ZSg2NzI5NCksbT1lKDkyMTc5KSxNPWUoODU4OTMpLGY9WyJmaWVsZFByb3BzIiwicmVxdWVzdCIsInBhcmFtcyIsInByb0ZpZWxkUHJvcHMiXSxPPWZ1bmN0aW9uKG8sYyl7dmFyIFQ9by5maWVsZFByb3BzLGk9by5yZXF1ZXN0LG49by5wYXJhbXMsZD1vLnByb0ZpZWxkUHJvcHMsdT0oMCxsLlopKG8sZik7cmV0dXJuKDAsTS5qc3gpKG0uWiwoMCx0LlopKHt2YWx1ZVR5cGU6InRyZWVTZWxlY3QiLGZpZWxkUHJvcHM6VCxyZWY6YyxyZXF1ZXN0OmkscGFyYW1zOm4sZmlsZWRDb25maWc6e2N1c3RvbUxpZ2h0TW9kZTohMH0scHJvRmllbGRQcm9wczpkfSx1KSl9LEI9di5mb3J3YXJkUmVmKE8pO2guWj1CfSw4NjkyNDpmdW5jdGlvbihqLGgsZSl7ZS5yKGgpO3ZhciB0PWUoMTUwMDkpLGw9ZS5uKHQpLHY9ZSg5OTI4OSksbT1lLm4odiksTT1lKDU1NzQpLGY9ZS5uKE0pLE89ZSg2NzI5NCksQj1lKDk3MjY5KSxfPWUoNTk2Niksbz1lKDE5MDU0KSxjPWUoNjQzMTcpLFQ9ZSg4NjYxNSksaT1lKDkwNjcyKSxuPWUoOTk4NTkpLGQ9ZSgxNzc4OCksdT1lKDc2NzcyKSxyPWUoODU4OTMpLEM9ZnVuY3Rpb24ocyl7dmFyIEU9bi5aLnVzZUZvcm0oKSxQPWYoKShFLDEpLEY9UFswXSx4PW4uWi51c2VXYXRjaCgidXNlcklkIixGKSxJPXMuc2V4T3B0aW9ucyxnPXMuc3RhdHVzT3B0aW9ucyxXPXMucm9sZXMsQT1zLnBvc3RzLHA9cy5kZXB0czsoMCxPLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtGLnJlc2V0RmllbGRzKCksRi5zZXRGaWVsZHNWYWx1ZSh7dXNlcklkOnMudmFsdWVzLnVzZXJJZCxkZXB0SWQ6cy52YWx1ZXMuZGVwdElkLHBvc3RJZHM6cy5wb3N0SWRzLHJvbGVJZHM6cy5yb2xlSWRzLHVzZXJOYW1lOnMudmFsdWVzLnVzZXJOYW1lLG5pY2tOYW1lOnMudmFsdWVzLm5pY2tOYW1lLGVtYWlsOnMudmFsdWVzLmVtYWlsLHBob25lbnVtYmVyOnMudmFsdWVzLnBob25lbnVtYmVyLHNleDpzLnZhbHVlcy5zZXgsYXZhdGFyOnMudmFsdWVzLmF2YXRhcixzdGF0dXM6cy52YWx1ZXMuc3RhdHVzLGRlbEZsYWc6cy52YWx1ZXMuZGVsRmxhZyxsb2dpbklwOnMudmFsdWVzLmxvZ2luSXAsbG9naW5EYXRlOnMudmFsdWVzLmxvZ2luRGF0ZSxyZW1hcms6cy52YWx1ZXMucmVtYXJrfSl9LFtGLHNdKTt2YXIgRD0oMCx1LnVzZUludGwpKCksSz1mdW5jdGlvbigpe0Yuc3VibWl0KCl9LGI9ZnVuY3Rpb24oKXtzLm9uQ2FuY2VsKCl9LHk9ZnVuY3Rpb24oKXt2YXIgWj1tKCkobCgpKCkubWFyayhmdW5jdGlvbiBMKFIpe3JldHVybiBsKCkoKS53cmFwKGZ1bmN0aW9uKFUpe2Zvcig7Oylzd2l0Y2goVS5wcmV2PVUubmV4dCl7Y2FzZSAwOnMub25TdWJtaXQoUik7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gVS5zdG9wKCl9fSxMKX0pKTtyZXR1cm4gZnVuY3Rpb24oUil7cmV0dXJuIFouYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKTtyZXR1cm4oMCxyLmpzeCkoZC5aLHt3aWR0aDo2NDAsdGl0bGU6RC5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLnVzZXIudGl0bGUiLGRlZmF1bHRNZXNzYWdlOiJcdTdGMTZcdThGOTFcdTc1MjhcdTYyMzdcdTRGRTFcdTYwNkYifSksb3BlbjpzLm9wZW4sZGVzdHJveU9uQ2xvc2U6ITAsb25PazpLLG9uQ2FuY2VsOmIsY2hpbGRyZW46KDAsci5qc3hzKShCLkEse2dyaWQ6ITAsZm9ybTpGLGxheW91dDoiaG9yaXpvbnRhbCIsc3VibWl0dGVyOiExLG9uRmluaXNoOnksY2hpbGRyZW46WygwLHIuanN4KShfLlose25hbWU6Im5pY2tOYW1lIixsYWJlbDpELmZvcm1hdE1lc3NhZ2Uoe2lkOiJzeXN0ZW0udXNlci5uaWNrX25hbWUiLGRlZmF1bHRNZXNzYWdlOiJcdTc1MjhcdTYyMzdcdTY2MzVcdTc5RjAifSkscGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NzUyOFx1NjIzN1x1NjYzNVx1NzlGMCIsY29sUHJvcHM6e3hzOjI0LG1kOjEyLHhsOjEyfSxydWxlczpbe3JlcXVpcmVkOiEwLG1lc3NhZ2U6KDAsci5qc3gpKHUuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NzUyOFx1NjIzN1x1NjYzNVx1NzlGMFx1RkYwMSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NzUyOFx1NjIzN1x1NjYzNVx1NzlGMFx1RkYwMSJ9KX1dfSksKDAsci5qc3gpKG8uWix7bmFtZToiZGVwdElkIixsYWJlbDpELmZvcm1hdE1lc3NhZ2Uoe2lkOiJzeXN0ZW0udXNlci5kZXB0X25hbWUiLGRlZmF1bHRNZXNzYWdlOiJcdTkwRThcdTk1RTgifSkscmVxdWVzdDptKCkobCgpKCkubWFyayhmdW5jdGlvbiBaKCl7cmV0dXJuIGwoKSgpLndyYXAoZnVuY3Rpb24oUil7Zm9yKDs7KXN3aXRjaChSLnByZXY9Ui5uZXh0KXtjYXNlIDA6cmV0dXJuIFIuYWJydXB0KCJyZXR1cm4iLHApO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIFIuc3RvcCgpfX0sWil9KSkscGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NzUyOFx1NjIzN1x1OTBFOFx1OTVFOCIsY29sUHJvcHM6e21kOjEyLHhsOjEyfSxydWxlczpbe3JlcXVpcmVkOiEwLG1lc3NhZ2U6KDAsci5qc3gpKHUuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NzUyOFx1NjIzN1x1OTBFOFx1OTVFOFx1RkYwMSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NzUyOFx1NjIzN1x1OTBFOFx1OTVFOFx1RkYwMSJ9KX1dfSksKDAsci5qc3gpKF8uWix7bmFtZToicGhvbmVudW1iZXIiLGxhYmVsOkQuZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS51c2VyLnBob25lbnVtYmVyIixkZWZhdWx0TWVzc2FnZToiXHU2MjRCXHU2NzNBXHU1M0Y3XHU3ODAxIn0pLHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdTYyNEJcdTY3M0FcdTUzRjdcdTc4MDEiLGNvbFByb3BzOnttZDoxMix4bDoxMn0scnVsZXM6W3tyZXF1aXJlZDohMSxtZXNzYWdlOigwLHIuanN4KSh1LkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTYyNEJcdTY3M0FcdTUzRjdcdTc4MDFcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTYyNEJcdTY3M0FcdTUzRjdcdTc4MDFcdUZGMDEifSl9XX0pLCgwLHIuanN4KShfLlose25hbWU6ImVtYWlsIixsYWJlbDpELmZvcm1hdE1lc3NhZ2Uoe2lkOiJzeXN0ZW0udXNlci5lbWFpbCIsZGVmYXVsdE1lc3NhZ2U6Ilx1NzUyOFx1NjIzN1x1OTBBRVx1N0JCMSJ9KSxwbGFjZWhvbGRlcjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU3NTI4XHU2MjM3XHU5MEFFXHU3QkIxIixjb2xQcm9wczp7bWQ6MTIseGw6MTJ9LHJ1bGVzOlt7cmVxdWlyZWQ6ITEsbWVzc2FnZTooMCxyLmpzeCkodS5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU3NTI4XHU2MjM3XHU5MEFFXHU3QkIxXHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU3NTI4XHU2MjM3XHU5MEFFXHU3QkIxXHVGRjAxIn0pfV19KSwoMCxyLmpzeCkoXy5aLHtuYW1lOiJ1c2VyTmFtZSIsbGFiZWw6RC5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLnVzZXIudXNlcl9uYW1lIixkZWZhdWx0TWVzc2FnZToiXHU3NTI4XHU2MjM3XHU4RDI2XHU1M0Y3In0pLGhpZGRlbjp4LHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdTc1MjhcdTYyMzdcdThEMjZcdTUzRjciLGNvbFByb3BzOnttZDoxMix4bDoxMn0scnVsZXM6W3tyZXF1aXJlZDohMH1dfSksKDAsci5qc3gpKF8uWi5QYXNzd29yZCx7bmFtZToicGFzc3dvcmQiLGxhYmVsOkQuZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS51c2VyLnBhc3N3b3JkIixkZWZhdWx0TWVzc2FnZToiXHU1QkM2XHU3ODAxIn0pLGhpZGRlbjp4LHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdTVCQzZcdTc4MDEiLGNvbFByb3BzOnttZDoxMix4bDoxMn0scnVsZXM6W3tyZXF1aXJlZDohMSxtZXNzYWdlOigwLHIuanN4KSh1LkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTVCQzZcdTc4MDFcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTVCQzZcdTc4MDFcdUZGMDEifSl9XX0pLCgwLHIuanN4KShjLlose3ZhbHVlRW51bTpJLG5hbWU6InNleCIsbGFiZWw6RC5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLnVzZXIuc2V4IixkZWZhdWx0TWVzc2FnZToiXHU3NTI4XHU2MjM3XHU2MDI3XHU1MjJCIn0pLGluaXRpYWxWYWx1ZToiMCIscGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NzUyOFx1NjIzN1x1NjAyN1x1NTIyQiIsY29sUHJvcHM6e21kOjEyLHhsOjEyfSxydWxlczpbe3JlcXVpcmVkOiExLG1lc3NhZ2U6KDAsci5qc3gpKHUuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NzUyOFx1NjIzN1x1NjAyN1x1NTIyQlx1RkYwMSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NzUyOFx1NjIzN1x1NjAyN1x1NTIyQlx1RkYwMSJ9KX1dfSksKDAsci5qc3gpKFQuWi5Hcm91cCx7dmFsdWVFbnVtOmcsbmFtZToic3RhdHVzIixsYWJlbDpELmZvcm1hdE1lc3NhZ2Uoe2lkOiJzeXN0ZW0udXNlci5zdGF0dXMiLGRlZmF1bHRNZXNzYWdlOiJcdTVFMTBcdTUzRjdcdTcyQjZcdTYwMDEifSksaW5pdGlhbFZhbHVlOiIwIixwbGFjZWhvbGRlcjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU1RTEwXHU1M0Y3XHU3MkI2XHU2MDAxIixjb2xQcm9wczp7bWQ6MTIseGw6MTJ9LHJ1bGVzOlt7cmVxdWlyZWQ6ITEsbWVzc2FnZTooMCxyLmpzeCkodS5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU1RTEwXHU1M0Y3XHU3MkI2XHU2MDAxXHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU1RTEwXHU1M0Y3XHU3MkI2XHU2MDAxXHVGRjAxIn0pfV19KSwoMCxyLmpzeCkoYy5aLHtuYW1lOiJwb3N0SWRzIixtb2RlOiJtdWx0aXBsZSIsbGFiZWw6RC5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLnVzZXIucG9zdCIsZGVmYXVsdE1lc3NhZ2U6Ilx1NUM5N1x1NEY0RCJ9KSxvcHRpb25zOkEscGxhY2Vob2xkZXI6Ilx1OEJGN1x1OTAwOVx1NjJFOVx1NUM5N1x1NEY0RCIsY29sUHJvcHM6e21kOjEyLHhsOjEyfSxydWxlczpbe3JlcXVpcmVkOiEwLG1lc3NhZ2U6Ilx1OEJGN1x1OTAwOVx1NjJFOVx1NUM5N1x1NEY0RCEifV19KSwoMCxyLmpzeCkoYy5aLHtuYW1lOiJyb2xlSWRzIixtb2RlOiJtdWx0aXBsZSIsbGFiZWw6RC5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLnVzZXIucm9sZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1ODlEMlx1ODI3MiJ9KSxvcHRpb25zOlcscGxhY2Vob2xkZXI6Ilx1OEJGN1x1OTAwOVx1NjJFOVx1ODlEMlx1ODI3MiIsY29sUHJvcHM6e21kOjEyLHhsOjEyfSxydWxlczpbe3JlcXVpcmVkOiEwLG1lc3NhZ2U6Ilx1OEJGN1x1OTAwOVx1NjJFOVx1ODlEMlx1ODI3MiEifV19KSwoMCxyLmpzeCkoaS5aLHtuYW1lOiJyZW1hcmsiLGxhYmVsOkQuZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS51c2VyLnJlbWFyayIsZGVmYXVsdE1lc3NhZ2U6Ilx1NTkwN1x1NkNFOCJ9KSxwbGFjZWhvbGRlcjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU1OTA3XHU2Q0U4Iixjb2xQcm9wczp7bWQ6MjQseGw6MjR9LHJ1bGVzOlt7cmVxdWlyZWQ6ITEsbWVzc2FnZTooMCxyLmpzeCkodS5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU1OTA3XHU2Q0U4XHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU1OTA3XHU2Q0U4XHVGRjAxIn0pfV19KV19KX0pfTtoLmRlZmF1bHQ9Q319XSk7CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzcwMDAuMmVkNDIxMmUuY2h1bmsuY3NzIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy83MDAwLjJlZDQyMTJlLmNodW5rLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZmM1ZGE4Ci0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy83MDAwLjJlZDQyMTJlLmNodW5rLmNzcwpAQCAtMCwwICsxIEBACisuc3RlcHM6Z2xvYmFsKC5hbnQtc3RlcHMpe21heC13aWR0aDo3NTBweDttYXJnaW46MTZweCBhdXRvfQpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy83MDAwLmUwMTU0MmQ2LmFzeW5jLmpzIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy83MDAwLmUwMTU0MmQ2LmFzeW5jLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFjNmY0ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzcwMDAuZTAxNTQyZDYuYXN5bmMuanMKQEAgLTAsMCArMSBAQAorInVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvPXNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm98fFtdKS5wdXNoKFtbN2UzXSx7OTdlMzpmdW5jdGlvbihzLGUsbil7bi5yKGUpfX1dKTsKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNzAwNy4wMzE0OTc3Zi5hc3luYy5qcyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNzAwNy4wMzE0OTc3Zi5hc3luYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MDRlOThkCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy83MDA3LjAzMTQ5NzdmLmFzeW5jLmpzCkBAIC0wLDAgKzEgQEAKKyJ1c2Ugc3RyaWN0Ijsoc2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Bybz1zZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvfHxbXSkucHVzaChbWzcwMDddLHsxNzAwNzpmdW5jdGlvbihnLG4sdCl7dC5yKG4pLHQuZChuLHtkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuIEh9fSk7dmFyIG89dCg1NTc0KSxyPXQubihvKSxsPXQoNjcyOTQpLEM9dCgxNTAwOSksUz10Lm4oQyksRT10KDk5Mjg5KSxUPXQubihFKSxzPXQoNzY3NzIpO2Z1bmN0aW9uIEIoKXtyZXR1cm4gai5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gaigpe3JldHVybiBqPVQoKShTKCkoKS5tYXJrKGZ1bmN0aW9uIEkoKXtyZXR1cm4gUygpKCkud3JhcChmdW5jdGlvbih1KXtmb3IoOzspc3dpdGNoKHUucHJldj11Lm5leHQpe2Nhc2UgMDpyZXR1cm4gdS5hYnJ1cHQoInJldHVybiIsKDAscy5yZXF1ZXN0KSgiL2FwaS9tb25pdG9yL3NlcnZlciIse21ldGhvZDoiR0VUIn0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiB1LnN0b3AoKX19LEkpfSkpLGouYXBwbHkodGhpcyxhcmd1bWVudHMpfXZhciBwPXQoNzEyMzApLGM9dCgxNTc0NiksbT10KDQzOTMpLGk9dCg5NjE1NCksdj17Y2FyZDoiY2FyZF9fX3pyYzRVIn0sYT10KDg1ODkzKSxBPVt7dGl0bGU6Ilx1NUM1RVx1NjAyNyIsZGF0YUluZGV4OiJuYW1lIixrZXk6Im5hbWUifSx7dGl0bGU6Ilx1NTAzQyIsZGF0YUluZGV4OiJ2YWx1ZSIsa2V5OiJ2YWx1ZSJ9XSxLPVt7dGl0bGU6Ilx1NUM1RVx1NjAyNyIsZGF0YUluZGV4OiJuYW1lIixrZXk6Im5hbWUifSx7dGl0bGU6Ilx1NTE4NVx1NUI1OCIsZGF0YUluZGV4OiJtZW0iLGtleToibWVtIn0se3RpdGxlOiJKVk0iLGRhdGFJbmRleDoianZtIixrZXk6Imp2bSJ9XSxGPVt7dGl0bGU6ImNvbDEiLGRhdGFJbmRleDoiY29sMSIsa2V5OiJjb2wxIn0se3RpdGxlOiJjb2wyIixkYXRhSW5kZXg6ImNvbDIiLGtleToiY29sMiJ9LHt0aXRsZToiY29sMyIsZGF0YUluZGV4OiJjb2wzIixrZXk6ImNvbDMifSx7dGl0bGU6ImNvbDQiLGRhdGFJbmRleDoiY29sNCIsa2V5OiJjb2w0In1dLEc9W3t0aXRsZTooMCxhLmpzeCkocy5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoibW9uaXRvci5zZXJ2ZXIuZGlzay5kaXJOYW1lIixkZWZhdWx0TWVzc2FnZToiXHU3NkQ4XHU3QjI2XHU4REVGXHU1Rjg0In0pLGRhdGFJbmRleDoiZGlyTmFtZSIsa2V5OiJkaXJOYW1lIn0se3RpdGxlOigwLGEuanN4KShzLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJtb25pdG9yLnNlcnZlci5kaXNrLnN5c1R5cGVOYW1lIixkZWZhdWx0TWVzc2FnZToiXHU2NTg3XHU0RUY2XHU3Q0ZCXHU3RURGIn0pLGRhdGFJbmRleDoic3lzVHlwZU5hbWUiLGtleToic3lzVHlwZU5hbWUifSx7dGl0bGU6KDAsYS5qc3gpKHMuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3Iuc2VydmVyLmRpc2sudHlwZU5hbWUiLGRlZmF1bHRNZXNzYWdlOiJcdTc2RDhcdTdCMjZcdTdDN0JcdTU3OEIifSksZGF0YUluZGV4OiJ0eXBlTmFtZSIsa2V5OiJ0eXBlTmFtZSJ9LHt0aXRsZTooMCxhLmpzeCkocy5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoibW9uaXRvci5zZXJ2ZXIuZGlzay50b3RhbCIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjAzQlx1NTkyN1x1NUMwRiJ9KSxkYXRhSW5kZXg6InRvdGFsIixrZXk6InRvdGFsIn0se3RpdGxlOigwLGEuanN4KShzLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJtb25pdG9yLnNlcnZlci5kaXNrLmZyZWUiLGRlZmF1bHRNZXNzYWdlOiJcdTUzRUZcdTc1MjhcdTU5MjdcdTVDMEYifSksZGF0YUluZGV4OiJmcmVlIixrZXk6ImZyZWUifSx7dGl0bGU6KDAsYS5qc3gpKHMuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3Iuc2VydmVyLmRpc2sudXNlZCIsZGVmYXVsdE1lc3NhZ2U6Ilx1NURGMlx1NzUyOFx1NTkyN1x1NUMwRiJ9KSxkYXRhSW5kZXg6InVzZWQiLGtleToidXNlZCJ9LHt0aXRsZTooMCxhLmpzeCkocy5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoibW9uaXRvci5zZXJ2ZXIuZGlzay51c2FnZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NURGMlx1NzUyOFx1NzY3RVx1NTIwNlx1NkJENCJ9KSxkYXRhSW5kZXg6InVzYWdlIixrZXk6InVzYWdlIn1dLFA9ZnVuY3Rpb24oKXt2YXIgTj0oMCxsLnVzZVN0YXRlKShbXSksdT1yKCkoTiwyKSxKPXVbMF0sTz11WzFdLFI9KDAsbC51c2VTdGF0ZSkoW10pLE09cigpKFIsMiksVT1NWzBdLHc9TVsxXSxMPSgwLGwudXNlU3RhdGUpKFtdKSxaPXIoKShMLDIpLFc9WlswXSx6PVpbMV0sVj0oMCxsLnVzZVN0YXRlKShbXSksRD1yKCkoViwyKSwkPURbMF0sUT1EWzFdLFg9KDAsbC51c2VTdGF0ZSkoW10pLGs9cigpKFgsMiksWT1rWzBdLGI9a1sxXTtyZXR1cm4oMCxsLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtCKCkudGhlbihmdW5jdGlvbihlKXtpZihlLmNvZGU9PT0yMDApe3ZhciB5PVtdO3kucHVzaCh7bmFtZToiXHU2ODM4XHU1RkMzXHU2NTcwIix2YWx1ZTplLmRhdGEuY3B1LmNwdU51bX0pLHkucHVzaCh7bmFtZToiXHU3NTI4XHU2MjM3XHU0RjdGXHU3NTI4XHU3Mzg3Iix2YWx1ZToiIi5jb25jYXQoZS5kYXRhLmNwdS51c2VkLCIlIil9KSx5LnB1c2goe25hbWU6Ilx1N0NGQlx1N0VERlx1NEY3Rlx1NzUyOFx1NzM4NyIsdmFsdWU6IiIuY29uY2F0KGUuZGF0YS5jcHUuc3lzLCIlIil9KSx5LnB1c2goe25hbWU6Ilx1NUY1M1x1NTI0RFx1N0E3QVx1OTVGMlx1NzM4NyIsdmFsdWU6IiIuY29uY2F0KGUuZGF0YS5jcHUuZnJlZSwiJSIpfSksTyh5KTt2YXIgaD1bXTtoLnB1c2goe25hbWU6Ilx1NjAzQlx1NTE4NVx1NUI1OCIsbWVtOiIiLmNvbmNhdChlLmRhdGEubWVtLnRvdGFsLCJHIiksanZtOiIiLmNvbmNhdChlLmRhdGEuanZtLnRvdGFsLCJNIil9KSxoLnB1c2goe25hbWU6Ilx1NURGMlx1NzUyOFx1NTE4NVx1NUI1OCIsbWVtOiIiLmNvbmNhdChlLmRhdGEubWVtLnVzZWQsIkciKSxqdm06IiIuY29uY2F0KGUuZGF0YS5qdm0udXNlZCwiTSIpfSksaC5wdXNoKHtuYW1lOiJcdTUyNjlcdTRGNTlcdTUxODVcdTVCNTgiLG1lbToiIi5jb25jYXQoZS5kYXRhLm1lbS5mcmVlLCJHIiksanZtOiIiLmNvbmNhdChlLmRhdGEuanZtLmZyZWUsIk0iKX0pLGgucHVzaCh7bmFtZToiXHU0RjdGXHU3NTI4XHU3Mzg3IixtZW06IiIuY29uY2F0KGUuZGF0YS5tZW0udXNhZ2UsIiUiKSxqdm06IiIuY29uY2F0KGUuZGF0YS5qdm0udXNhZ2UsIiUiKX0pLHcoaCk7dmFyIGY9W107Zi5wdXNoKHtjb2wxOiJcdTY3MERcdTUyQTFcdTU2NjhcdTU0MERcdTc5RjAiLGNvbDI6ZS5kYXRhLnN5cy5jb21wdXRlck5hbWUsY29sMzoiXHU2NENEXHU0RjVDXHU3Q0ZCXHU3RURGIixjb2w0OmUuZGF0YS5zeXMub3NOYW1lfSksZi5wdXNoKHtjb2wxOiJcdTY3MERcdTUyQTFcdTU2NjhJUCIsY29sMjplLmRhdGEuc3lzLmNvbXB1dGVySXAsY29sMzoiXHU3Q0ZCXHU3RURGXHU2N0I2XHU2Nzg0Iixjb2w0OmUuZGF0YS5zeXMub3NBcmNofSkseihmKTt2YXIgeD1bXTt4LnB1c2goe2NvbDE6IkphdmFcdTU0MERcdTc5RjAiLGNvbDI6ZS5kYXRhLmp2bS5uYW1lLGNvbDM6IkphdmFcdTcyNDhcdTY3MkMiLGNvbDQ6ZS5kYXRhLmp2bS52ZXJzaW9ufSkseC5wdXNoKHtjb2wxOiJcdTU0MkZcdTUyQThcdTY1RjZcdTk1RjQiLGNvbDI6ZS5kYXRhLmp2bS5zdGFydFRpbWUsY29sMzoiXHU4RkQwXHU4ODRDXHU2NUY2XHU5NTdGIixjb2w0OmUuZGF0YS5qdm0ucnVuVGltZX0pLHgucHVzaCh7Y29sMToiXHU1Qjg5XHU4OEM1XHU4REVGXHU1Rjg0Iixjb2wyOmUuZGF0YS5qdm0uaG9tZSxjb2wzOiJcdTk4NzlcdTc2RUVcdThERUZcdTVGODQiLGNvbDQ6ZS5kYXRhLnN5cy51c2VyRGlyfSksUSh4KTt2YXIgcT1lLmRhdGEuc3lzRmlsZXMubWFwKGZ1bmN0aW9uKGQpe3JldHVybntkaXJOYW1lOmQuZGlyTmFtZSxzeXNUeXBlTmFtZTpkLnN5c1R5cGVOYW1lLHR5cGVOYW1lOmQudHlwZU5hbWUsdG90YWw6ZC50b3RhbCxmcmVlOmQuZnJlZSx1c2VkOmQudXNlZCx1c2FnZToiIi5jb25jYXQoZC51c2FnZSwiJSIpfX0pO2IocSl9fSl9LFtdKSwoMCxhLmpzeHMpKCJkaXYiLHtjaGlsZHJlbjpbKDAsYS5qc3hzKShwLlose2d1dHRlcjpbMjQsMjRdLGNoaWxkcmVuOlsoMCxhLmpzeCkoYy5aLHtzcGFuOjEyLGNoaWxkcmVuOigwLGEuanN4KShtLlose3RpdGxlOiJDUFUiLGNsYXNzTmFtZTp2LmNhcmQsY2hpbGRyZW46KDAsYS5qc3gpKGkuWix7cm93S2V5OiJuYW1lIixwYWdpbmF0aW9uOiExLHNob3dIZWFkZXI6ITEsZGF0YVNvdXJjZTpKLGNvbHVtbnM6QX0pfSl9KSwoMCxhLmpzeCkoYy5aLHtzcGFuOjEyLGNoaWxkcmVuOigwLGEuanN4KShtLlose3RpdGxlOiJcdTUxODVcdTVCNTgiLGNsYXNzTmFtZTp2LmNhcmQsY2hpbGRyZW46KDAsYS5qc3gpKGkuWix7cm93S2V5OiJuYW1lIixwYWdpbmF0aW9uOiExLHNob3dIZWFkZXI6ITEsZGF0YVNvdXJjZTpVLGNvbHVtbnM6S30pfSl9KV19KSwoMCxhLmpzeCkocC5aLHtndXR0ZXI6WzE2LDE2XSxjaGlsZHJlbjooMCxhLmpzeCkoYy5aLHtzcGFuOjI0LGNoaWxkcmVuOigwLGEuanN4KShtLlose3RpdGxlOiJcdTY3MERcdTUyQTFcdTU2NjhcdTRGRTFcdTYwNkYiLGNsYXNzTmFtZTp2LmNhcmQsY2hpbGRyZW46KDAsYS5qc3gpKGkuWix7cm93S2V5OiJjb2wxIixwYWdpbmF0aW9uOiExLHNob3dIZWFkZXI6ITEsZGF0YVNvdXJjZTpXLGNvbHVtbnM6Rn0pfSl9KX0pLCgwLGEuanN4KShwLlose2d1dHRlcjpbMTYsMTZdLGNoaWxkcmVuOigwLGEuanN4KShjLlose3NwYW46MjQsY2hpbGRyZW46KDAsYS5qc3gpKG0uWix7dGl0bGU6IkphdmFcdTg2NUFcdTYyREZcdTY3M0FcdTRGRTFcdTYwNkYiLGNsYXNzTmFtZTp2LmNhcmQsY2hpbGRyZW46KDAsYS5qc3gpKGkuWix7cm93S2V5OiJjb2wxIixwYWdpbmF0aW9uOiExLHNob3dIZWFkZXI6ITEsZGF0YVNvdXJjZTokLGNvbHVtbnM6Rn0pfSl9KX0pLCgwLGEuanN4KShwLlose2d1dHRlcjpbMTYsMTZdLGNoaWxkcmVuOigwLGEuanN4KShjLlose3NwYW46MjQsY2hpbGRyZW46KDAsYS5qc3gpKG0uWix7dGl0bGU6Ilx1NzhDMVx1NzZEOFx1NzJCNlx1NjAwMSIsY2xhc3NOYW1lOnYuY2FyZCxjaGlsZHJlbjooMCxhLmpzeCkoaS5aLHtyb3dLZXk6ImRpck5hbWUiLHBhZ2luYXRpb246ITEsZGF0YVNvdXJjZTpZLGNvbHVtbnM6R30pfSl9KX0pXX0pfSxIPVB9LDE1NzQ2OmZ1bmN0aW9uKGcsbix0KXt2YXIgbz10KDIxNTg0KTtuLlo9by5afSw3MTIzMDpmdW5jdGlvbihnLG4sdCl7dmFyIG89dCgxNzYyMSk7bi5aPW8uWn19XSk7CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzcwMDcuYzgzYzVlNGEuY2h1bmsuY3NzIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy83MDA3LmM4M2M1ZTRhLmNodW5rLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MGMzYmZlCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy83MDA3LmM4M2M1ZTRhLmNodW5rLmNzcwpAQCAtMCwwICsxIEBACisuY2FyZF9fX3pyYzRVe21hcmdpbi1ib3R0b206MTJweH0KZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNzA5NS4yMmFlNDlhZC5jaHVuay5jc3MgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzcwOTUuMjJhZTQ5YWQuY2h1bmsuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMxZGRiNDUKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzcwOTUuMjJhZTQ5YWQuY2h1bmsuY3NzCkBAIC0wLDAgKzEgQEAKKy5jYXJke21hcmdpbi1ib3R0b206MTJweH0KZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNzA5NS5jMDc0NTNhMS5hc3luYy5qcyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNzA5NS5jMDc0NTNhMS5hc3luYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NTUyMWI2Ci0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy83MDk1LmMwNzQ1M2ExLmFzeW5jLmpzCkBAIC0wLDAgKzEgQEAKKyJ1c2Ugc3RyaWN0Ijsoc2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Bybz1zZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvfHxbXSkucHVzaChbWzcwOTVdLHsxNzA5NTpmdW5jdGlvbihzLGUsbil7bi5yKGUpfX1dKTsKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNzI2Ni43NzM1ZGNiMi5hc3luYy5qcyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNzI2Ni43NzM1ZGNiMi5hc3luYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iOTJjYzM0Ci0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy83MjY2Ljc3MzVkY2IyLmFzeW5jLmpzCkBAIC0wLDAgKzEgQEAKKyJ1c2Ugc3RyaWN0Ijsoc2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Bybz1zZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvfHxbXSkucHVzaChbWzcyNjZdLHs3NzI2NjpmdW5jdGlvbihtLGwscyl7cy5yKGwpO3ZhciBpPXMoNjEzMTQpLG49cyg3Njc3Miksbz1zKDE3Nzg4KSx0PXMoMjY0MTIpLGQ9cyg2NzI5NCksZT1zKDg1ODkzKSxqPWZ1bmN0aW9uKHUpe3ZhciByLGE9dS52YWx1ZXMsZz11LnN0YXR1c09wdGlvbnMsXz11LmpvYkdyb3VwT3B0aW9uczsoMCxkLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXt9LFtdKTt2YXIgTT0oMCxuLnVzZUludGwpKCksYz1mdW5jdGlvbigpe30sRT1mdW5jdGlvbigpe3Uub25DYW5jZWwoKX07cmV0dXJuKDAsZS5qc3gpKG8uWix7d2lkdGg6NjQwLHRpdGxlOk0uZm9ybWF0TWVzc2FnZSh7aWQ6Im1vbml0b3Iuam9iLmxvZy50aXRsZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NUI5QVx1NjVGNlx1NEVGQlx1NTJBMVx1OEMwM1x1NUVBNlx1NjVFNVx1NUZENyJ9KSxvcGVuOnUub3Blbixmb3JjZVJlbmRlcjohMCxkZXN0cm95T25DbG9zZTohMCxvbk9rOmMsb25DYW5jZWw6RSxjaGlsZHJlbjooMCxlLmpzeHMpKHQuWix7Y29sdW1uOjI0LGNoaWxkcmVuOlsoMCxlLmpzeCkodC5aLkl0ZW0se3NwYW46MTIsbGFiZWw6KDAsZS5qc3gpKG4uRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3Iuam9iLmpvYl9pZCIsZGVmYXVsdE1lc3NhZ2U6Ilx1NEVGQlx1NTJBMVx1N0YxNlx1NTNGNyJ9KSxjaGlsZHJlbjphLmpvYkxvZ0lkfSksKDAsZS5qc3gpKHQuWi5JdGVtLHtzcGFuOjEyLGxhYmVsOigwLGUuanN4KShuLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJtb25pdG9yLmpvYi5jcmVhdGVfdGltZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjI2N1x1ODg0Q1x1NjVGNlx1OTVGNCJ9KSxjaGlsZHJlbjoocj1hLmNyZWF0ZVRpbWUpPT09bnVsbHx8cj09PXZvaWQgMD92b2lkIDA6ci50b1N0cmluZygpfSksKDAsZS5qc3gpKHQuWi5JdGVtLHtzcGFuOjEyLGxhYmVsOigwLGUuanN4KShuLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJtb25pdG9yLmpvYi5qb2JfbmFtZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NEVGQlx1NTJBMVx1NTQwRFx1NzlGMCJ9KSxjaGlsZHJlbjphLmpvYk5hbWV9KSwoMCxlLmpzeCkodC5aLkl0ZW0se3NwYW46MTIsbGFiZWw6KDAsZS5qc3gpKG4uRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3Iuam9iLmpvYl9ncm91cCIsZGVmYXVsdE1lc3NhZ2U6Ilx1NEVGQlx1NTJBMVx1N0VDNFx1NTQwRCJ9KSxjaGlsZHJlbjooMCxpLm4pKF8sYS5qb2JHcm91cCwiXHU2NUUwIil9KSwoMCxlLmpzeCkodC5aLkl0ZW0se3NwYW46MjQsbGFiZWw6KDAsZS5qc3gpKG4uRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3Iuam9iLmludm9rZV90YXJnZXQiLGRlZmF1bHRNZXNzYWdlOiJcdThDMDNcdTc1MjhcdTc2RUVcdTY4MDcifSksY2hpbGRyZW46YS5pbnZva2VUYXJnZXR9KSwoMCxlLmpzeCkodC5aLkl0ZW0se3NwYW46MjQsbGFiZWw6KDAsZS5qc3gpKG4uRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3Iuam9iLmxvZy5qb2JfbWVzc2FnZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjVFNVx1NUZEN1x1NEZFMVx1NjA2RiJ9KSxjaGlsZHJlbjphLmpvYk1lc3NhZ2V9KSwoMCxlLmpzeCkodC5aLkl0ZW0se3NwYW46MjQsbGFiZWw6KDAsZS5qc3gpKG4uRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3Iuam9iLmxvZy5leGNlcHRpb25faW5mbyIsZGVmYXVsdE1lc3NhZ2U6Ilx1NUYwMlx1NUUzOFx1NEZFMVx1NjA2RiJ9KSxjaGlsZHJlbjphLmV4Y2VwdGlvbkluZm99KSwoMCxlLmpzeCkodC5aLkl0ZW0se3NwYW46MTIsbGFiZWw6KDAsZS5qc3gpKG4uRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3Iuam9iLnN0YXR1cyIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjI2N1x1ODg0Q1x1NzJCNlx1NjAwMSJ9KSxjaGlsZHJlbjooMCxpLm4pKGcsYS5zdGF0dXMsIlx1NjcyQVx1NzdFNSIpfSldfSl9KX07bC5kZWZhdWx0PWp9LDYxMzE0OmZ1bmN0aW9uKG0sbCxzKXtzLmQobCx7bjpmdW5jdGlvbigpe3JldHVybiBpfX0pO2Z1bmN0aW9uIGkobixvLHQpe2lmKG8hPT12b2lkIDApe3ZhciBkPW5bb107aWYoZClyZXR1cm4gZC50ZXh0fXJldHVybiB0fHxvfX19XSk7CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzcyNjkuY2NlNTgwZDkuYXN5bmMuanMgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzcyNjkuY2NlNTgwZDkuYXN5bmMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDRmNWFjYQotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNzI2OS5jY2U1ODBkOS5hc3luYy5qcwpAQCAtMCwwICsxLDIgQEAKKyhzZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvPXNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm98fFtdKS5wdXNoKFtbNzI2OV0sezc4NzMzOmZ1bmN0aW9uKFEsaCxlKXsidXNlIHN0cmljdCI7ZS5kKGgse0k6ZnVuY3Rpb24oKXtyZXR1cm4geWV9fSk7dmFyIHQ9ZSg5NzY4NSksbj1lKDQ5NDIpLHI9ZSgxNDEzKSxjPWUoNzQxNjUpLHM9ZSgxNTg2MSksWj1lKDc0OTAyKSx4PWUoOTEpLFA9ZSgxMDkxNSksbT1lKDIyMjcwKSxJPWUoNDgxNzEpLEM9ZSgyNjM2OSksTz1lKDYwMjQ5KSxnPWUoNDEwMzYpLFQ9ZSgyMTc3MCksZD1lKDc1NjYxKSx1PWUoNjcyOTQpLGE9ZSg1MDY4KSxSPTA7ZnVuY3Rpb24gRChsKXt2YXIgRj0oMCx1LnVzZVJlZikobnVsbCksWD0oMCx1LnVzZVN0YXRlKShmdW5jdGlvbigpe3JldHVybiBsLnByb0ZpZWxkS2V5P2wucHJvRmllbGRLZXkudG9TdHJpbmcoKTooUis9MSxSLnRvU3RyaW5nKCkpfSksTT0oMCx0LlopKFgsMSksQj1NWzBdLFY9KDAsdS51c2VSZWYpKEIpLFU9ZnVuY3Rpb24oKXt2YXIgY2U9KDAscy5aKSgoMCxjLlopKCkubWFyayhmdW5jdGlvbiBnZSgpe3ZhciBpZSxUZSxiZSxPZTtyZXR1cm4oMCxjLlopKCkud3JhcChmdW5jdGlvbihvZSl7Zm9yKDs7KXN3aXRjaChvZS5wcmV2PW9lLm5leHQpe2Nhc2UgMDpyZXR1cm4oaWU9Ri5jdXJyZW50KT09PW51bGx8fGllPT09dm9pZCAwfHxpZS5hYm9ydCgpLGJlPW5ldyBBYm9ydENvbnRyb2xsZXIsRi5jdXJyZW50PWJlLG9lLm5leHQ9NSxQcm9taXNlLnJhY2UoWyhUZT1sLnJlcXVlc3QpPT09bnVsbHx8VGU9PT12b2lkIDA/dm9pZCAwOlRlLmNhbGwobCxsLnBhcmFtcyxsKSxuZXcgUHJvbWlzZShmdW5jdGlvbihKLGZlKXt2YXIgYjsoYj1GLmN1cnJlbnQpPT09bnVsbHx8Yj09PXZvaWQgMHx8KGI9Yi5zaWduYWwpPT09bnVsbHx8Yj09PXZvaWQgMHx8Yi5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsZnVuY3Rpb24oKXtmZShuZXcgRXJyb3IoImFib3J0ZWQiKSl9KX0pXSk7Y2FzZSA1OnJldHVybiBPZT1vZS5zZW50LG9lLmFicnVwdCgicmV0dXJuIixPZSk7Y2FzZSA3OmNhc2UiZW5kIjpyZXR1cm4gb2Uuc3RvcCgpfX0sZ2UpfSkpO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBjZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpOygwLHUudXNlRWZmZWN0KShmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbigpe1IrPTF9fSxbXSk7dmFyIEg9KDAsYS5aUCkoW1YuY3VycmVudCxsLnBhcmFtc10sVSx7cmV2YWxpZGF0ZU9uRm9jdXM6ITEsc2hvdWxkUmV0cnlPbkVycm9yOiExLHJldmFsaWRhdGVPblJlY29ubmVjdDohMX0pLEw9SC5kYXRhLF89SC5lcnJvcjtyZXR1cm5bTHx8X119dmFyIHY9ZSg2NDg0NyksRT1lKDcxMDAyKSxxPWUoNjUzMzApLGs9ZSg4ODMwNiksQT1lKDg4ODApLE49ZSg3NDc2MyksbmU9ZSg5MjIxMCk7ZnVuY3Rpb24geGUobCl7cmV0dXJuKDAsRS5aKShsKSE9PSJvYmplY3QiPyExOmw9PT1udWxsPyEwOiEodS5pc1ZhbGlkRWxlbWVudChsKXx8bC5jb25zdHJ1Y3Rvcj09PVJlZ0V4cHx8bCBpbnN0YW5jZW9mIE1hcHx8bCBpbnN0YW5jZW9mIFNldHx8bCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50fHxsIGluc3RhbmNlb2YgQmxvYnx8bCBpbnN0YW5jZW9mIEZpbGV8fEFycmF5LmlzQXJyYXkobCkpfXZhciBZPWZ1bmN0aW9uKEYsWCl7dmFyIE09YXJndW1lbnRzLmxlbmd0aD4yJiZhcmd1bWVudHNbMl0hPT12b2lkIDA/YXJndW1lbnRzWzJdOiEwLEI9T2JqZWN0LmtleXMoWCkucmVkdWNlKGZ1bmN0aW9uKEgsTCl7dmFyIF89WFtMXTtyZXR1cm4oMCxOLmspKF8pfHwoSFtMXT1fKSxIfSx7fSk7aWYoT2JqZWN0LmtleXMoQikubGVuZ3RoPDF8fHR5cGVvZiB3aW5kb3c9PSJ1bmRlZmluZWQifHwoMCxFLlopKEYpIT09Im9iamVjdCJ8fCgwLE4uaykoRil8fEYgaW5zdGFuY2VvZiBCbG9iKXJldHVybiBGO3ZhciBWPUFycmF5LmlzQXJyYXkoRik/W106e30sVT1mdW5jdGlvbiBIKEwsXyl7dmFyIGNlPUFycmF5LmlzQXJyYXkoTCksZ2U9Y2U/W106e307cmV0dXJuIEw9PW51bGx8fEw9PT12b2lkIDA/Z2U6KE9iamVjdC5rZXlzKEwpLmZvckVhY2goZnVuY3Rpb24oaWUpe3ZhciBUZT1mdW5jdGlvbiBmZShiLHcpe3JldHVybiBBcnJheS5pc0FycmF5KGIpJiZiLmZvckVhY2goZnVuY3Rpb24oVyxLKXtpZihXKXt2YXIgbGU9dz09bnVsbD92b2lkIDA6d1tLXTt0eXBlb2YgVz09ImZ1bmN0aW9uIiYmKHdbS109Vyh3LGllLEwpKSwoMCxFLlopKFcpPT09Im9iamVjdCImJiFBcnJheS5pc0FycmF5KFcpJiZPYmplY3Qua2V5cyhXKS5mb3JFYWNoKGZ1bmN0aW9uKGhlKXt2YXIgSGU9bGU9PW51bGw/dm9pZCAwOmxlW2hlXTtpZih0eXBlb2YgV1toZV09PSJmdW5jdGlvbiImJkhlKXt2YXIgUGU9V1toZV0obGVbaGVdLGllLEwpO2xlW2hlXT0oMCxFLlopKFBlKT09PSJvYmplY3QiP1BlW2hlXTpQZX1lbHNlKDAsRS5aKShXW2hlXSk9PT0ib2JqZWN0IiYmQXJyYXkuaXNBcnJheShXW2hlXSkmJkhlJiZmZShXW2hlXSxIZSl9KSwoMCxFLlopKFcpPT09Im9iamVjdCImJkFycmF5LmlzQXJyYXkoVykmJmxlJiZmZShXLGxlKX19KSxpZX0sYmU9Xz9bXyxpZV0uZmxhdCgxKTpbaWVdLmZsYXQoMSksT2U9TFtpZV0sbWU9KDAsay5aKShCLGJlKSxvZT1mdW5jdGlvbigpe3ZhciBiLHcsVz0hMTtpZih0eXBlb2YgbWU9PSJmdW5jdGlvbiIpe3c9bWU9PW51bGw/dm9pZCAwOm1lKE9lLGllLEwpO3ZhciBLPSgwLEUuWikodyk7SyE9PSJvYmplY3QiJiZLIT09InVuZGVmaW5lZCI/KGI9aWUsVz0hMCk6Yj13fWVsc2UgYj1UZShtZSxPZSk7aWYoQXJyYXkuaXNBcnJheShiKSl7Z2U9KDAsQS5aKShnZSxiLE9lKTtyZXR1cm59KDAsRS5aKShiKT09PSJvYmplY3QiJiYhQXJyYXkuaXNBcnJheShWKT9WPSgwLHEuWikoVixiKTooMCxFLlopKGIpPT09Im9iamVjdCImJkFycmF5LmlzQXJyYXkoVik/Z2U9KDAsci5aKSgoMCxyLlopKHt9LGdlKSxiKTooYiE9PW51bGx8fGIhPT12b2lkIDApJiYoZ2U9KDAsQS5aKShnZSxbYl0sVz93Ok9lKSl9O2lmKG1lJiZ0eXBlb2YgbWU9PSJmdW5jdGlvbiImJm9lKCksdHlwZW9mIHdpbmRvdyE9InVuZGVmaW5lZCIpe2lmKHhlKE9lKSl7dmFyIEo9SChPZSxiZSk7aWYoT2JqZWN0LmtleXMoSikubGVuZ3RoPDEpcmV0dXJuO2dlPSgwLEEuWikoZ2UsW2llXSxKKTtyZXR1cm59b2UoKX19KSxNP2dlOkwpfTtyZXR1cm4gVj1BcnJheS5pc0FycmF5KEYpJiZBcnJheS5pc0FycmF5KFYpPygwLFouWikoVShGKSk6KDAsbmUuVCkoe30sVShGKSxWKSxWfSxzZT1lKDIzMzEyKSxyZT1lKDQ1MDk1KSxKZT1lKDk5ODU5KSx6ZT1lKDIxNTMyKSxCZT1lKDU3MzgxKSxZZT1lKDkzOTY3KSxFZT1lLm4oWWUpLFVlPWUoOTg0MjMpLExlPWUoODAzMzQpLHA9ZSg2Njc1OCksZGU9ZSg4MzYyMiksUz1lKDg1ODkzKSxvPWZ1bmN0aW9uKEYpe3ZhciBYPSgwLFAuWUIpKCksTT1KZS5aLnVzZUZvcm1JbnN0YW5jZSgpO2lmKEYucmVuZGVyPT09ITEpcmV0dXJuIG51bGw7dmFyIEI9Ri5vblN1Ym1pdCxWPUYucmVuZGVyLFU9Ri5vblJlc2V0LEg9Ri5zZWFyY2hDb25maWcsTD1IPT09dm9pZCAwP3t9OkgsXz1GLnN1Ym1pdEJ1dHRvblByb3BzLGNlPUYucmVzZXRCdXR0b25Qcm9wcyxnZT12Lk93LnVzZVRva2VuKCksaWU9Z2UudG9rZW4sVGU9ZnVuY3Rpb24oKXtNLnN1Ym1pdCgpLEI9PW51bGx8fEIoKX0sYmU9ZnVuY3Rpb24oKXtNLnJlc2V0RmllbGRzKCksVT09bnVsbHx8VSgpfSxPZT1MLnN1Ym1pdFRleHQsbWU9T2U9PT12b2lkIDA/WC5nZXRNZXNzYWdlKCJ0YWJsZUZvcm0uc3VibWl0IiwiXHU2M0QwXHU0RUE0Iik6T2Usb2U9TC5yZXNldFRleHQsSj1vZT09PXZvaWQgMD9YLmdldE1lc3NhZ2UoInRhYmxlRm9ybS5yZXNldCIsIlx1OTFDRFx1N0Y2RSIpOm9lLGZlPVtdO2NlIT09ITEmJmZlLnB1c2goKDAsdS5jcmVhdGVFbGVtZW50KShkZS5aUCwoMCxyLlopKCgwLHIuWikoe30sKDAsVWUuWikoY2UhPW51bGw/Y2U6e30sWyJwcmV2ZW50RGVmYXVsdCJdKSkse30se2tleToicmVzdCIsb25DbGljazpmdW5jdGlvbihXKXt2YXIgSztjZSE9bnVsbCYmY2UucHJldmVudERlZmF1bHR8fGJlKCksY2U9PW51bGx8fChLPWNlLm9uQ2xpY2spPT09bnVsbHx8Sz09PXZvaWQgMHx8Sy5jYWxsKGNlLFcpfX0pLEopKSxfIT09ITEmJmZlLnB1c2goKDAsdS5jcmVhdGVFbGVtZW50KShkZS5aUCwoMCxyLlopKCgwLHIuWikoe3R5cGU6InByaW1hcnkifSwoMCxVZS5aKShffHx7fSxbInByZXZlbnREZWZhdWx0Il0pKSx7fSx7a2V5OiJzdWJtaXQiLG9uQ2xpY2s6ZnVuY3Rpb24oVyl7dmFyIEs7XyE9bnVsbCYmXy5wcmV2ZW50RGVmYXVsdHx8VGUoKSxfPT1udWxsfHwoSz1fLm9uQ2xpY2spPT09bnVsbHx8Sz09PXZvaWQgMHx8Sy5jYWxsKF8sVyl9fSksbWUpKTt2YXIgYj1WP1YoKDAsci5aKSgoMCxyLlopKHt9LEYpLHt9LHtmb3JtOk0sc3VibWl0OlRlLHJlc2V0OmJlfSksZmUpOmZlO3JldHVybiBiP0FycmF5LmlzQXJyYXkoYik/KGI9PW51bGw/dm9pZCAwOmIubGVuZ3RoKTwxP251bGw6KGI9PW51bGw/dm9pZCAwOmIubGVuZ3RoKT09PTE/YlswXTooMCxTLmpzeCkoImRpdiIse3N0eWxlOntkaXNwbGF5OiJmbGV4IixnYXA6aWUubWFyZ2luWFMsYWxpZ25JdGVtczoiY2VudGVyIn0sY2hpbGRyZW46Yn0pOmI6bnVsbH0saT1vLCQ9ZSgxNzE4NiksZWU9ZSgyNTE0KSxwZT1lKDkxMDUpLHRlPVsiY2hpbGRyZW4iLCJjb250ZW50UmVuZGVyIiwic3VibWl0dGVyIiwiZmllbGRQcm9wcyIsImZvcm1JdGVtUHJvcHMiLCJncm91cFByb3BzIiwidHJhbnNmb3JtS2V5IiwiZm9ybVJlZiIsIm9uSW5pdCIsImZvcm0iLCJsb2FkaW5nIiwiZm9ybUNvbXBvbmVudFR5cGUiLCJleHRyYVVybFBhcmFtcyIsInN5bmNUb1VybCIsIm9uVXJsU2VhcmNoQ2hhbmdlIiwib25SZXNldCIsIm9taXROaWwiLCJpc0tleVByZXNzU3VibWl0IiwiYXV0b0ZvY3VzRmlyc3RJbnB1dCIsImdyaWQiLCJyb3dQcm9wcyIsImNvbFByb3BzIl0sRmU9WyJleHRyYVVybFBhcmFtcyIsInN5bmNUb1VybCIsImlzS2V5UHJlc3NTdWJtaXQiLCJzeW5jVG9VcmxBc0ltcG9ydGFudCIsInN5bmNUb0luaXRpYWxWYWx1ZXMiLCJjaGlsZHJlbiIsImNvbnRlbnRSZW5kZXIiLCJzdWJtaXR0ZXIiLCJmaWVsZFByb3BzIiwicHJvRmllbGRQcm9wcyIsImZvcm1JdGVtUHJvcHMiLCJncm91cFByb3BzIiwiZGF0ZUZvcm1hdHRlciIsImZvcm1SZWYiLCJvbkluaXQiLCJmb3JtIiwiZm9ybUNvbXBvbmVudFR5cGUiLCJvblJlc2V0IiwiZ3JpZCIsInJvd1Byb3BzIiwiY29sUHJvcHMiLCJvbWl0TmlsIiwicmVxdWVzdCIsInBhcmFtcyIsImluaXRpYWxWYWx1ZXMiLCJmb3JtS2V5IiwicmVhZG9ubHkiLCJvbkxvYWRpbmdDaGFuZ2UiLCJsb2FkaW5nIl0sYWU9ZnVuY3Rpb24oRixYLE0pe3JldHVybiBGPT09ITA/WDooMCxtLmgpKEYsWCxNKX0sU2U9ZnVuY3Rpb24oRil7cmV0dXJuIUZ8fEFycmF5LmlzQXJyYXkoRik/RjpbRl19O2Z1bmN0aW9uIHoobCl7dmFyIEYsWD1sLmNoaWxkcmVuLE09bC5jb250ZW50UmVuZGVyLEI9bC5zdWJtaXR0ZXIsVj1sLmZpZWxkUHJvcHMsVT1sLmZvcm1JdGVtUHJvcHMsSD1sLmdyb3VwUHJvcHMsTD1sLnRyYW5zZm9ybUtleSxfPWwuZm9ybVJlZixjZT1sLm9uSW5pdCxnZT1sLmZvcm0saWU9bC5sb2FkaW5nLFRlPWwuZm9ybUNvbXBvbmVudFR5cGUsYmU9bC5leHRyYVVybFBhcmFtcyxPZT1iZT09PXZvaWQgMD97fTpiZSxtZT1sLnN5bmNUb1VybCxvZT1sLm9uVXJsU2VhcmNoQ2hhbmdlLEo9bC5vblJlc2V0LGZlPWwub21pdE5pbCxiPWZlPT09dm9pZCAwPyEwOmZlLHc9bC5pc0tleVByZXNzU3VibWl0LFc9bC5hdXRvRm9jdXNGaXJzdElucHV0LEs9Vz09PXZvaWQgMD8hMDpXLGxlPWwuZ3JpZCxoZT1sLnJvd1Byb3BzLEhlPWwuY29sUHJvcHMsUGU9KDAseC5aKShsLHRlKSxJZT1KZS5aLnVzZUZvcm1JbnN0YW5jZSgpLGRuPSh6ZS5aUD09PW51bGx8fHplLlpQPT09dm9pZCAwfHwoRj16ZS5aUC51c2VDb25maWcpPT09bnVsbHx8Rj09PXZvaWQgMD92b2lkIDA6Ri5jYWxsKHplLlpQKSl8fHtjb21wb25lbnRTaXplOiJtaWRkbGUifSxvbj1kbi5jb21wb25lbnRTaXplLEdlPSgwLHUudXNlUmVmKShnZXx8SWUpLHNuPSgwLGVlLnp4KSh7Z3JpZDpsZSxyb3dQcm9wczpoZX0pLHZuPXNuLlJvd1dyYXBwZXIsdG49KDAsSS5KKShmdW5jdGlvbigpe3JldHVybiBJZX0pLFhlPSgwLHUudXNlTWVtbykoZnVuY3Rpb24oKXtyZXR1cm57Z2V0RmllbGRzRm9ybWF0VmFsdWU6ZnVuY3Rpb24oUmUpe3ZhciBNZTtyZXR1cm4gTCgoTWU9dG4oKSk9PT1udWxsfHxNZT09PXZvaWQgMD92b2lkIDA6TWUuZ2V0RmllbGRzVmFsdWUoUmUpLGIpfSxnZXRGaWVsZEZvcm1hdFZhbHVlOmZ1bmN0aW9uKCl7dmFyIFJlLE1lPWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dm9pZCAwP2FyZ3VtZW50c1swXTpbXSxEZT1TZShNZSk7aWYoIURlKXRocm93IG5ldyBFcnJvcigibmFtZUxpc3QgaXMgcmVxdWlyZSIpO3ZhciBHPShSZT10bigpKT09PW51bGx8fFJlPT09dm9pZCAwP3ZvaWQgMDpSZS5nZXRGaWVsZFZhbHVlKERlKSxBZT1EZT8oMCxBLlopKHt9LERlLEcpOkcsTmU9KDAsWi5aKShEZSk7cmV0dXJuIE5lLnNoaWZ0KCksKDAsay5aKShMKEFlLGIsTmUpLERlKX0sZ2V0RmllbGRGb3JtYXRWYWx1ZU9iamVjdDpmdW5jdGlvbihSZSl7dmFyIE1lLERlPVNlKFJlKSxHPShNZT10bigpKT09PW51bGx8fE1lPT09dm9pZCAwP3ZvaWQgMDpNZS5nZXRGaWVsZFZhbHVlKERlKSxBZT1EZT8oMCxBLlopKHt9LERlLEcpOkc7cmV0dXJuIEwoQWUsYixEZSl9LHZhbGlkYXRlRmllbGRzUmV0dXJuRm9ybWF0VmFsdWU6ZnVuY3Rpb24oKXt2YXIgQ2U9KDAscy5aKSgoMCxjLlopKCkubWFyayhmdW5jdGlvbiBNZShEZSl7dmFyIEcsQWUsTmU7cmV0dXJuKDAsYy5aKSgpLndyYXAoZnVuY3Rpb24oUWUpe2Zvcig7Oylzd2l0Y2goUWUucHJldj1RZS5uZXh0KXtjYXNlIDA6aWYoISghQXJyYXkuaXNBcnJheShEZSkmJkRlKSl7UWUubmV4dD0yO2JyZWFrfXRocm93IG5ldyBFcnJvcigibmFtZUxpc3QgbXVzdCBiZSBhcnJheSIpO2Nhc2UgMjpyZXR1cm4gUWUubmV4dD00LChHPXRuKCkpPT09bnVsbHx8Rz09PXZvaWQgMD92b2lkIDA6Ry52YWxpZGF0ZUZpZWxkcyhEZSk7Y2FzZSA0OnJldHVybiBBZT1RZS5zZW50LE5lPUwoQWUsYiksUWUuYWJydXB0KCJyZXR1cm4iLE5lfHx7fSk7Y2FzZSA3OmNhc2UiZW5kIjpyZXR1cm4gUWUuc3RvcCgpfX0sTWUpfSkpO2Z1bmN0aW9uIFJlKE1lKXtyZXR1cm4gQ2UuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBSZX0oKX19LFtiLExdKSwkZT0oMCx1LnVzZU1lbW8pKGZ1bmN0aW9uKCl7cmV0dXJuIHUuQ2hpbGRyZW4udG9BcnJheShYKS5tYXAoZnVuY3Rpb24oQ2UsUmUpe3JldHVybiBSZT09PTAmJnUuaXNWYWxpZEVsZW1lbnQoQ2UpJiZLP3UuY2xvbmVFbGVtZW50KENlLCgwLHIuWikoKDAsci5aKSh7fSxDZS5wcm9wcykse30se2F1dG9Gb2N1czpLfSkpOkNlfSl9LFtLLFhdKSx3ZT0oMCx1LnVzZU1lbW8pKGZ1bmN0aW9uKCl7cmV0dXJuIHR5cGVvZiBCPT0iYm9vbGVhbiJ8fCFCP3t9OkJ9LFtCXSksdW49KDAsdS51c2VNZW1vKShmdW5jdGlvbigpe2lmKEIhPT0hMSlyZXR1cm4oMCxTLmpzeCkoaSwoMCxyLlopKCgwLHIuWikoe30sd2UpLHt9LHtvblJlc2V0OmZ1bmN0aW9uKCl7dmFyIFJlLE1lLERlPUwoKFJlPUdlLmN1cnJlbnQpPT09bnVsbHx8UmU9PT12b2lkIDA/dm9pZCAwOlJlLmdldEZpZWxkc1ZhbHVlKCksYik7aWYod2U9PW51bGx8fChNZT13ZS5vblJlc2V0KT09PW51bGx8fE1lPT09dm9pZCAwfHxNZS5jYWxsKHdlLERlKSxKPT1udWxsfHxKKERlKSxtZSl7dmFyIEcsQWU9T2JqZWN0LmtleXMoTCgoRz1HZS5jdXJyZW50KT09PW51bGx8fEc9PT12b2lkIDA/dm9pZCAwOkcuZ2V0RmllbGRzVmFsdWUoKSwhMSkpLnJlZHVjZShmdW5jdGlvbihOZSxhbil7cmV0dXJuKDAsci5aKSgoMCxyLlopKHt9LE5lKSx7fSwoMCxuLlopKHt9LGFuLERlW2FuXXx8dm9pZCAwKSl9LE9lKTtvZShhZShtZSxBZXx8e30sInNldCIpKX19LHN1Ym1pdEJ1dHRvblByb3BzOigwLHIuWikoe2xvYWRpbmc6aWV9LHdlLnN1Ym1pdEJ1dHRvblByb3BzKX0pLCJzdWJtaXR0ZXIiKX0sW0Isd2UsaWUsTCxiLEosbWUsT2Usb2VdKSxjbj0oMCx1LnVzZU1lbW8pKGZ1bmN0aW9uKCl7dmFyIENlPWxlPygwLFMuanN4KSh2bix7Y2hpbGRyZW46JGV9KTokZTtyZXR1cm4gTT9NKENlLHVuLEdlLmN1cnJlbnQpOkNlfSxbbGUsdm4sJGUsTSx1bl0pLGtlPSgwLEMuRCkobC5pbml0aWFsVmFsdWVzKTtyZXR1cm4oMCx1LnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtpZighKG1lfHwhbC5pbml0aWFsVmFsdWVzfHwha2V8fFBlLnJlcXVlc3QpKXt2YXIgQ2U9KDAsTy5BKShsLmluaXRpYWxWYWx1ZXMsa2UpOygwLExlLkVUKShDZSwiaW5pdGlhbFZhbHVlcyBcdTUzRUFcdTU3MjggZm9ybSBcdTUyMURcdTU5Q0JcdTUzMTZcdTY1RjZcdTc1MUZcdTY1NDhcdUZGMENcdTU5ODJcdTY3OUNcdTRGNjBcdTk3MDBcdTg5ODFcdTVGMDJcdTZCNjVcdTUyQTBcdThGN0RcdTYzQThcdTgzNTBcdTRGN0ZcdTc1MjggcmVxdWVzdFx1RkYwQ1x1NjIxNlx1ODAwNSBpbml0aWFsVmFsdWVzID8gPEZvcm0vPiA6IG51bGwgIiksKDAsTGUuRVQpKENlLCJUaGUgaW5pdGlhbFZhbHVlcyBvbmx5IHRha2UgZWZmZWN0IHdoZW4gdGhlIGZvcm0gaXMgaW5pdGlhbGl6ZWQsIGlmIHlvdSBuZWVkIHRvIGxvYWQgYXN5bmNocm9ub3VzbHkgcmVjb21tZW5kZWQgcmVxdWVzdCwgb3IgdGhlIGluaXRpYWxWYWx1ZXMgPyA8Rm9ybS8+IDogbnVsbCAiKX19LFtsLmluaXRpYWxWYWx1ZXNdKSwoMCx1LnVzZUltcGVyYXRpdmVIYW5kbGUpKF8sZnVuY3Rpb24oKXtyZXR1cm4oMCxyLlopKCgwLHIuWikoe30sR2UuY3VycmVudCksWGUpfSxbWGUsR2UuY3VycmVudF0pLCgwLHUudXNlRWZmZWN0KShmdW5jdGlvbigpe3ZhciBDZSxSZSxNZT1MKChDZT1HZS5jdXJyZW50KT09PW51bGx8fENlPT09dm9pZCAwfHwoUmU9Q2UuZ2V0RmllbGRzVmFsdWUpPT09bnVsbHx8UmU9PT12b2lkIDA/dm9pZCAwOlJlLmNhbGwoQ2UsITApLGIpO2NlPT1udWxsfHxjZShNZSwoMCxyLlopKCgwLHIuWikoe30sR2UuY3VycmVudCksWGUpKX0sW10pLCgwLFMuanN4KShnLkouUHJvdmlkZXIse3ZhbHVlOigwLHIuWikoKDAsci5aKSh7fSxYZSkse30se2Zvcm1SZWY6R2V9KSxjaGlsZHJlbjooMCxTLmpzeCkoemUuWlAse2NvbXBvbmVudFNpemU6UGUuc2l6ZXx8b24sY2hpbGRyZW46KDAsUy5qc3hzKShlZS5fcC5Qcm92aWRlcix7dmFsdWU6e2dyaWQ6bGUsY29sUHJvcHM6SGV9LGNoaWxkcmVuOltQZS5jb21wb25lbnQhPT0hMSYmKDAsUy5qc3gpKCJpbnB1dCIse3R5cGU6InRleHQiLHN0eWxlOntkaXNwbGF5OiJub25lIn19KSxjbl19KX0pfSl9dmFyIHVlPTA7ZnVuY3Rpb24geWUobCl7dmFyIEY9bC5leHRyYVVybFBhcmFtcyxYPUY9PT12b2lkIDA/e306RixNPWwuc3luY1RvVXJsLEI9bC5pc0tleVByZXNzU3VibWl0LFY9bC5zeW5jVG9VcmxBc0ltcG9ydGFudCxVPVY9PT12b2lkIDA/ITE6VixIPWwuc3luY1RvSW5pdGlhbFZhbHVlcyxMPUg9PT12b2lkIDA/ITA6SCxfPWwuY2hpbGRyZW4sY2U9bC5jb250ZW50UmVuZGVyLGdlPWwuc3VibWl0dGVyLGllPWwuZmllbGRQcm9wcyxUZT1sLnByb0ZpZWxkUHJvcHMsYmU9bC5mb3JtSXRlbVByb3BzLE9lPWwuZ3JvdXBQcm9wcyxtZT1sLmRhdGVGb3JtYXR0ZXIsb2U9bWU9PT12b2lkIDA/InN0cmluZyI6bWUsSj1sLmZvcm1SZWYsZmU9bC5vbkluaXQsYj1sLmZvcm0sdz1sLmZvcm1Db21wb25lbnRUeXBlLFc9bC5vblJlc2V0LEs9bC5ncmlkLGxlPWwucm93UHJvcHMsaGU9bC5jb2xQcm9wcyxIZT1sLm9taXROaWwsUGU9SGU9PT12b2lkIDA/ITA6SGUsSWU9bC5yZXF1ZXN0LGRuPWwucGFyYW1zLG9uPWwuaW5pdGlhbFZhbHVlcyxHZT1sLmZvcm1LZXksc249R2U9PT12b2lkIDA/dWU6R2Usdm49bC5yZWFkb25seSx0bj1sLm9uTG9hZGluZ0NoYW5nZSxYZT1sLmxvYWRpbmcsJGU9KDAseC5aKShsLEZlKSx3ZT0oMCx1LnVzZVJlZikoe30pLHVuPSgwLFQuWikoITEse29uQ2hhbmdlOnRuLHZhbHVlOlhlfSksY249KDAsdC5aKSh1biwyKSxrZT1jblswXSxDZT1jblsxXSxSZT0oMCxyZS5sKSh7fSx7ZGlzYWJsZWQ6IU19KSxNZT0oMCx0LlopKFJlLDIpLERlPU1lWzBdLEc9TWVbMV0sQWU9KDAsdS51c2VSZWYpKCgwLGQueCkoKSk7KDAsdS51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7dWUrPTB9LFtdKTt2YXIgTmU9RCh7cmVxdWVzdDpJZSxwYXJhbXM6ZG4scHJvRmllbGRLZXk6c259KSxhbj0oMCx0LlopKE5lLDEpLFFlPWFuWzBdLG1uPSgwLHUudXNlQ29udGV4dCkoemUuWlAuQ29uZmlnQ29udGV4dCksbG49bW4uZ2V0UHJlZml4Q2xzLGhuPWxuKCJwcm8tZm9ybSIpLHBuPSgwLHYuWGopKCJQcm9Gb3JtIixmdW5jdGlvbihubil7cmV0dXJuKDAsbi5aKSh7fSwiLiIuY29uY2F0KGhuKSwoMCxuLlopKHt9LCI+IGRpdjpub3QoIi5jb25jYXQobm4ucHJvQ29tcG9uZW50c0NscywiLWZvcm0tbGlnaHQtZmlsdGVyKSIpLHsiLnByby1maWVsZCI6e21heFdpZHRoOiIxMDAlIiwiQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTc1cHgpIjp7bWF4V2lkdGg6ImNhbGMoOTN2dyAtIDQ4cHgpIn0sIiYteHMiOnt3aWR0aDoxMDR9LCImLXMiOnt3aWR0aDoyMTZ9LCImLXNtIjp7d2lkdGg6MjE2fSwiJi1tIjp7d2lkdGg6MzI4fSwiJi1tZCI6e3dpZHRoOjMyOH0sIiYtbCI6e3dpZHRoOjQ0MH0sIiYtbGciOnt3aWR0aDo0NDB9LCImLXhsIjp7d2lkdGg6NTUyfX19KSl9KSxmPXBuLndyYXBTU1IseT1wbi5oYXNoSWQsaj0oMCx1LnVzZVN0YXRlKShmdW5jdGlvbigpe3JldHVybiBNP2FlKE0sRGUsImdldCIpOnt9fSksdmU9KDAsdC5aKShqLDIpLGplPXZlWzBdLFZlPXZlWzFdLEtlPSgwLHUudXNlUmVmKSh7fSksWmU9KDAsdS51c2VSZWYpKHt9KSxXZT0oMCxJLkopKGZ1bmN0aW9uKG5uLF9lLHFlKXtyZXR1cm4gWSgoMCxzZS5scCkobm4sb2UsWmUuY3VycmVudCxfZSxxZSksS2UuY3VycmVudCxfZSl9KTsoMCx1LnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtMfHxWZSh7fSl9LFtMXSk7dmFyIFBuPSgwLEkuSikoZnVuY3Rpb24oKXtyZXR1cm4oMCxyLlopKCgwLHIuWikoe30sRGUpLFgpfSk7KDAsdS51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7TSYmRyhhZShNLFBuKCksInNldCIpKX0sW1gsUG4sTV0pO3ZhciBlbj0oMCx1LnVzZU1lbW8pKGZ1bmN0aW9uKCl7aWYodHlwZW9mIHdpbmRvdyE9InVuZGVmaW5lZCImJncmJlsiRHJhd2VyRm9ybSJdLmluY2x1ZGVzKHcpKXJldHVybiBmdW5jdGlvbihubil7cmV0dXJuIG5uLnBhcmVudE5vZGV8fGRvY3VtZW50LmJvZHl9fSxbd10pLGduPSgwLEkuSikoKDAscy5aKSgoMCxjLlopKCkubWFyayhmdW5jdGlvbiBubigpe3ZhciBfZSxxZSxmbix4bix5bixibixDbjtyZXR1cm4oMCxjLlopKCkud3JhcChmdW5jdGlvbihybil7Zm9yKDs7KXN3aXRjaChybi5wcmV2PXJuLm5leHQpe2Nhc2UgMDppZigkZS5vbkZpbmlzaCl7cm4ubmV4dD0yO2JyZWFrfXJldHVybiBybi5hYnJ1cHQoInJldHVybiIpO2Nhc2UgMjppZigha2Upe3JuLm5leHQ9NDticmVha31yZXR1cm4gcm4uYWJydXB0KCJyZXR1cm4iKTtjYXNlIDQ6cmV0dXJuIHJuLnByZXY9NCxmbj13ZT09bnVsbHx8KF9lPXdlLmN1cnJlbnQpPT09bnVsbHx8X2U9PT12b2lkIDB8fChxZT1fZS5nZXRGaWVsZHNGb3JtYXRWYWx1ZSk9PT1udWxsfHxxZT09PXZvaWQgMD92b2lkIDA6cWUuY2FsbChfZSkseG49JGUub25GaW5pc2goZm4pLHhuIGluc3RhbmNlb2YgUHJvbWlzZSYmQ2UoITApLHJuLm5leHQ9MTAseG47Y2FzZSAxMDpNJiYoQ249T2JqZWN0LmtleXMod2U9PW51bGx8fCh5bj13ZS5jdXJyZW50KT09PW51bGx8fHluPT09dm9pZCAwfHwoYm49eW4uZ2V0RmllbGRzRm9ybWF0VmFsdWUpPT09bnVsbHx8Ym49PT12b2lkIDA/dm9pZCAwOmJuLmNhbGwoeW4sdm9pZCAwLCExKSkucmVkdWNlKGZ1bmN0aW9uKFpuLFNuKXt2YXIgUm47cmV0dXJuKDAsci5aKSgoMCxyLlopKHt9LFpuKSx7fSwoMCxuLlopKHt9LFNuLChSbj1mbltTbl0pIT09bnVsbCYmUm4hPT12b2lkIDA/Um46dm9pZCAwKSl9LFgpLE9iamVjdC5rZXlzKERlKS5mb3JFYWNoKGZ1bmN0aW9uKFpuKXtDbltabl0hPT0hMSYmQ25bWm5dIT09MCYmIUNuW1puXSYmKENuW1puXT12b2lkIDApfSksRyhhZShNLENuLCJzZXQiKSkpLENlKCExKSxybi5uZXh0PTE4O2JyZWFrO2Nhc2UgMTQ6cm4ucHJldj0xNCxybi50MD1ybi5jYXRjaCg0KSxjb25zb2xlLmxvZyhybi50MCksQ2UoITEpO2Nhc2UgMTg6Y2FzZSJlbmQiOnJldHVybiBybi5zdG9wKCl9fSxubixudWxsLFtbNCwxNF1dKX0pKSk7cmV0dXJuKDAsdS51c2VJbXBlcmF0aXZlSGFuZGxlKShKLGZ1bmN0aW9uKCl7cmV0dXJuIHdlLmN1cnJlbnR9LFshUWVdKSwhUWUmJmwucmVxdWVzdD8oMCxTLmpzeCkoImRpdiIse3N0eWxlOntwYWRkaW5nVG9wOjUwLHBhZGRpbmdCb3R0b206NTAsdGV4dEFsaWduOiJjZW50ZXIifSxjaGlsZHJlbjooMCxTLmpzeCkoQmUuWix7fSl9KTpmKCgwLFMuanN4KShwZS5BLlByb3ZpZGVyLHt2YWx1ZTp7bW9kZTpsLnJlYWRvbmx5PyJyZWFkIjoiZWRpdCJ9LGNoaWxkcmVuOigwLFMuanN4KShQLl9ZLHtuZWVkRGVwczohMCxjaGlsZHJlbjooMCxTLmpzeCkocC5aLlByb3ZpZGVyLHt2YWx1ZTp7Zm9ybVJlZjp3ZSxmaWVsZFByb3BzOmllLHByb0ZpZWxkUHJvcHM6VGUsZm9ybUl0ZW1Qcm9wczpiZSxncm91cFByb3BzOk9lLGZvcm1Db21wb25lbnRUeXBlOncsZ2V0UG9wdXBDb250YWluZXI6ZW4sZm9ybUtleTpBZS5jdXJyZW50LHNldEZpZWxkVmFsdWVUeXBlOmZ1bmN0aW9uKF9lLHFlKXt2YXIgZm49cWUudmFsdWVUeXBlLHhuPWZuPT09dm9pZCAwPyJ0ZXh0Ijpmbix5bj1xZS5kYXRlRm9ybWF0LGJuPXFlLnRyYW5zZm9ybTtBcnJheS5pc0FycmF5KF9lKSYmKEtlLmN1cnJlbnQ9KDAsQS5aKShLZS5jdXJyZW50LF9lLGJuKSxaZS5jdXJyZW50PSgwLEEuWikoWmUuY3VycmVudCxfZSx7dmFsdWVUeXBlOnhuLGRhdGVGb3JtYXQ6eW59KSl9fSxjaGlsZHJlbjooMCxTLmpzeCkoJC5KLlByb3ZpZGVyLHt2YWx1ZTp7fSxjaGlsZHJlbjooMCxTLmpzeCkoSmUuWiwoMCxyLlopKCgwLHIuWikoe29uS2V5UHJlc3M6ZnVuY3Rpb24oX2Upe2lmKEImJl9lLmtleT09PSJFbnRlciIpe3ZhciBxZTsocWU9d2UuY3VycmVudCk9PT1udWxsfHxxZT09PXZvaWQgMHx8cWUuc3VibWl0KCl9fSxhdXRvQ29tcGxldGU6Im9mZiIsZm9ybTpifSwoMCxVZS5aKSgkZSxbInJlZiIsImxhYmVsV2lkdGgiLCJhdXRvRm9jdXNGaXJzdElucHV0Il0pKSx7fSx7cmVmOmZ1bmN0aW9uKF9lKXt3ZS5jdXJyZW50JiYod2UuY3VycmVudC5uYXRpdmVFbGVtZW50PV9lPT1udWxsP3ZvaWQgMDpfZS5uYXRpdmVFbGVtZW50KX0saW5pdGlhbFZhbHVlczpVPygwLHIuWikoKDAsci5aKSgoMCxyLlopKHt9LG9uKSxRZSksamUpOigwLHIuWikoKDAsci5aKSgoMCxyLlopKHt9LGplKSxvbiksUWUpLG9uVmFsdWVzQ2hhbmdlOmZ1bmN0aW9uKF9lLHFlKXt2YXIgZm47JGU9PW51bGx8fChmbj0kZS5vblZhbHVlc0NoYW5nZSk9PT1udWxsfHxmbj09PXZvaWQgMHx8Zm4uY2FsbCgkZSxXZShfZSwhIVBlKSxXZShxZSwhIVBlKSl9LGNsYXNzTmFtZTpFZSgpKGwuY2xhc3NOYW1lLGhuLHkpLG9uRmluaXNoOmduLGNoaWxkcmVuOigwLFMuanN4KSh6LCgwLHIuWikoKDAsci5aKSh7dHJhbnNmb3JtS2V5OldlLGF1dG9Db21wbGV0ZToib2ZmIixsb2FkaW5nOmtlLG9uVXJsU2VhcmNoQ2hhbmdlOkd9LGwpLHt9LHtmb3JtUmVmOndlLGluaXRpYWxWYWx1ZXM6KDAsci5aKSgoMCxyLlopKHt9LG9uKSxRZSl9KSl9KSl9KX0pfSl9KSl9fSw5MTA1OmZ1bmN0aW9uKFEsaCxlKXsidXNlIHN0cmljdCI7ZS5kKGgse0E6ZnVuY3Rpb24oKXtyZXR1cm4gbn19KTt2YXIgdD1lKDY3Mjk0KSxuPXQuY3JlYXRlQ29udGV4dCh7bW9kZToiZWRpdCJ9KX0sNjY3NTg6ZnVuY3Rpb24oUSxoLGUpeyJ1c2Ugc3RyaWN0IjtlLmQoaCx7ejpmdW5jdGlvbigpe3JldHVybiBufX0pO3ZhciB0PWUoNjcyOTQpLG49dC5jcmVhdGVDb250ZXh0KHt9KTtoLlo9bn0sNDQ5OTpmdW5jdGlvbihRLGgsZSl7InVzZSBzdHJpY3QiO2UuZChoLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIFVlfX0pO3ZhciB0PWUoNDk0Miksbj1lKDE0MTMpLHI9ZSg5MSksYz1lKDQ4MTcxKSxzPWUoNzQxMzgpLFo9ZSg1MTgxMikseD1mdW5jdGlvbihwKXt2YXIgZGU9ITE7cmV0dXJuKHR5cGVvZiBwPT0ic3RyaW5nIiYmcC5zdGFydHNXaXRoKCJkYXRlIikmJiFwLmVuZHNXaXRoKCJSYW5nZSIpfHxwPT09InNlbGVjdCJ8fHA9PT0idGltZSIpJiYoZGU9ITApLGRlfSxQPWUoOTk4NTkpLG09ZSgyMTUzMiksST1lKDk4NDIzKSxDPWUoNjcyOTQpLE89ZSg3MTAwMiksZz1lKDk3Njg1KSxUPWUoMjE3NzApLGQ9ZSg4NjE5MCksdT1lKDIzMzEyKSxhPWUoMTMzNiksUj1lKDIxMjIpLEQ9ZSg5Mzk2Nyksdj1lLm4oRCksRT1lKDY0ODQ3KSxxPWZ1bmN0aW9uKHApe3JldHVybigwLHQuWikoKDAsdC5aKSh7fSwiIi5jb25jYXQocC5jb21wb25lbnRDbHMsIi1jb2xsYXBzZS1sYWJlbCIpLHtwYWRkaW5nSW5saW5lOjEscGFkZGluZ0Jsb2NrOjF9KSwiIi5jb25jYXQocC5jb21wb25lbnRDbHMsIi1jb250YWluZXIiKSwoMCx0LlopKHt9LCIiLmNvbmNhdChwLmFudENscywiLWZvcm0taXRlbSIpLHttYXJnaW5CbG9ja0VuZDowfSkpfTtmdW5jdGlvbiBrKExlKXtyZXR1cm4oMCxFLlhqKSgiTGlnaHRXcmFwcGVyIixmdW5jdGlvbihwKXt2YXIgZGU9KDAsbi5aKSgoMCxuLlopKHt9LHApLHt9LHtjb21wb25lbnRDbHM6Ii4iLmNvbmNhdChMZSl9KTtyZXR1cm5bcShkZSldfSl9dmFyIEE9ZSg4NTg5MyksTj1bImxhYmVsIiwic2l6ZSIsImRpc2FibGVkIiwib25DaGFuZ2UiLCJjbGFzc05hbWUiLCJzdHlsZSIsImNoaWxkcmVuIiwidmFsdWVQcm9wTmFtZSIsInBsYWNlaG9sZGVyIiwibGFiZWxGb3JtYXR0ZXIiLCJib3JkZXJlZCIsImZvb3RlclJlbmRlciIsImFsbG93Q2xlYXIiLCJvdGhlckZpZWxkUHJvcHMiLCJ2YWx1ZVR5cGUiLCJwbGFjZW1lbnQiXSxuZT1mdW5jdGlvbihwKXt2YXIgZGU9cC5sYWJlbCxTPXAuc2l6ZSxvPXAuZGlzYWJsZWQsaT1wLm9uQ2hhbmdlLCQ9cC5jbGFzc05hbWUsZWU9cC5zdHlsZSxwZT1wLmNoaWxkcmVuLHRlPXAudmFsdWVQcm9wTmFtZSxGZT1wLnBsYWNlaG9sZGVyLGFlPXAubGFiZWxGb3JtYXR0ZXIsU2U9cC5ib3JkZXJlZCx6PXAuZm9vdGVyUmVuZGVyLHVlPXAuYWxsb3dDbGVhcix5ZT1wLm90aGVyRmllbGRQcm9wcyxsPXAudmFsdWVUeXBlLEY9cC5wbGFjZW1lbnQsWD0oMCxyLlopKHAsTiksTT0oMCxDLnVzZUNvbnRleHQpKG0uWlAuQ29uZmlnQ29udGV4dCksQj1NLmdldFByZWZpeENscyxWPUIoInByby1maWVsZC1saWdodC13cmFwcGVyIiksVT1rKFYpLEg9VS53cmFwU1NSLEw9VS5oYXNoSWQsXz0oMCxDLnVzZVN0YXRlKShwW3RlXSksY2U9KDAsZy5aKShfLDIpLGdlPWNlWzBdLGllPWNlWzFdLFRlPSgwLFQuWikoITEpLGJlPSgwLGcuWikoVGUsMiksT2U9YmVbMF0sbWU9YmVbMV0sb2U9ZnVuY3Rpb24oKXtmb3IodmFyIHcsVz1hcmd1bWVudHMubGVuZ3RoLEs9bmV3IEFycmF5KFcpLGxlPTA7bGU8VztsZSsrKUtbbGVdPWFyZ3VtZW50c1tsZV07eWU9PW51bGx8fCh3PXllLm9uQ2hhbmdlKT09PW51bGx8fHc9PT12b2lkIDB8fHcuY2FsbC5hcHBseSh3LFt5ZV0uY29uY2F0KEspKSxpPT1udWxsfHxpLmFwcGx5KHZvaWQgMCxLKX0sSj1wW3RlXSxmZT0oMCxDLnVzZU1lbW8pKGZ1bmN0aW9uKCl7dmFyIGI7cmV0dXJuIEomJihsIT1udWxsJiYoYj1sLnRvTG93ZXJDYXNlKCkpIT09bnVsbCYmYiE9PXZvaWQgMCYmYi5lbmRzV2l0aCgicmFuZ2UiKSYmbCE9PSJkaWdpdFJhbmdlIiYmIWFlPygwLGQuYykoSix1LkNsW2xdfHwiWVlZWS1NTS1ERCIpOkFycmF5LmlzQXJyYXkoSik/Si5tYXAoZnVuY3Rpb24odyl7cmV0dXJuKDAsTy5aKSh3KT09PSJvYmplY3QiJiZ3LmxhYmVsJiZ3LnZhbHVlP3cubGFiZWw6d30pOkopfSxbSixsLGFlXSk7cmV0dXJuIEgoKDAsQS5qc3gpKGEuTSx7ZGlzYWJsZWQ6byxvcGVuOk9lLG9uT3BlbkNoYW5nZTptZSxwbGFjZW1lbnQ6RixsYWJlbDooMCxBLmpzeCkoUi5RLHtlbGxpcHNpczohMCxzaXplOlMsb25DbGVhcjpmdW5jdGlvbigpe29lPT1udWxsfHxvZSgpLGllKG51bGwpfSxib3JkZXJlZDpTZSxzdHlsZTplZSxjbGFzc05hbWU6JCxsYWJlbDpkZSxwbGFjZWhvbGRlcjpGZSx2YWx1ZTpmZSxkaXNhYmxlZDpvLGZvcm1hdHRlcjphZSxhbGxvd0NsZWFyOnVlfSksZm9vdGVyOntvbkNsZWFyOmZ1bmN0aW9uKCl7cmV0dXJuIGllKG51bGwpfSxvbkNvbmZpcm06ZnVuY3Rpb24oKXtvZT09bnVsbHx8b2UoZ2UpLG1lKCExKX19LGZvb3RlclJlbmRlcjp6LGNoaWxkcmVuOigwLEEuanN4KSgiZGl2Iix7Y2xhc3NOYW1lOnYoKSgiIi5jb25jYXQoViwiLWNvbnRhaW5lciIpLEwsJCksc3R5bGU6ZWUsY2hpbGRyZW46Qy5jbG9uZUVsZW1lbnQocGUsKDAsbi5aKSgoMCxuLlopKHt9LFgpLHt9LCgwLHQuWikoKDAsdC5aKSh7fSx0ZSxnZSksIm9uQ2hhbmdlIixmdW5jdGlvbih3KXtpZSh3IT1udWxsJiZ3LnRhcmdldD93LnRhcmdldC52YWx1ZTp3KX0pLHBlLnByb3BzKSl9KX0pKX0seGU9ZSg2Njc1OCksWT1lKDE3MTg2KSxzZT1bImNoaWxkcmVuIiwib25DaGFuZ2UiLCJvbkJsdXIiLCJpZ25vcmVGb3JtSXRlbSIsInZhbHVlUHJvcE5hbWUiXSxyZT1bImNoaWxkcmVuIiwiYWRkb25BZnRlciIsImFkZG9uQmVmb3JlIiwidmFsdWVQcm9wTmFtZSIsImFkZG9uV2FycFN0eWxlIiwiY29udmVydFZhbHVlIiwiaGVscCJdLEplPVsidmFsdWVUeXBlIiwidHJhbnNmb3JtIiwiZGF0YUZvcm1hdCIsImlnbm9yZUZvcm1JdGVtIiwibGlnaHRQcm9wcyIsImNoaWxkcmVuIl0semU9Qy5jcmVhdGVDb250ZXh0KHt9KSxCZT1mdW5jdGlvbihwKXt2YXIgZGUsUyxvPXAuY2hpbGRyZW4saT1wLm9uQ2hhbmdlLCQ9cC5vbkJsdXIsZWU9cC5pZ25vcmVGb3JtSXRlbSxwZT1wLnZhbHVlUHJvcE5hbWUsdGU9cGU9PT12b2lkIDA/InZhbHVlIjpwZSxGZT0oMCxyLlopKHAsc2UpLGFlPShvPT1udWxsfHwoZGU9by50eXBlKT09PW51bGx8fGRlPT09dm9pZCAwP3ZvaWQgMDpkZS5kaXNwbGF5TmFtZSkhPT0iUHJvRm9ybUNvbXBvbmVudCIsU2U9IUMuaXNWYWxpZEVsZW1lbnQobyksej0oMCxjLkopKGZ1bmN0aW9uKCl7Zm9yKHZhciBNLEIsVixVLEg9YXJndW1lbnRzLmxlbmd0aCxMPW5ldyBBcnJheShIKSxfPTA7XzxIO18rKylMW19dPWFyZ3VtZW50c1tfXTtpPT1udWxsfHxpLmFwcGx5KHZvaWQgMCxMKSwhYWUmJihTZXx8KG89PW51bGx8fChNPW8ucHJvcHMpPT09bnVsbHx8TT09PXZvaWQgMHx8KEI9TS5vbkNoYW5nZSk9PT1udWxsfHxCPT09dm9pZCAwfHxCLmNhbGwuYXBwbHkoQixbTV0uY29uY2F0KEwpKSxvPT1udWxsfHwoVj1vLnByb3BzKT09PW51bGx8fFY9PT12b2lkIDB8fChWPVYuZmllbGRQcm9wcyk9PT1udWxsfHxWPT09dm9pZCAwfHwoVT1WLm9uQ2hhbmdlKT09PW51bGx8fFU9PT12b2lkIDB8fFUuY2FsbC5hcHBseShVLFtWXS5jb25jYXQoTCkpKSl9KSx1ZT0oMCxjLkopKGZ1bmN0aW9uKCl7dmFyIE0sQixWLFU7aWYoIWFlJiYhU2Upe2Zvcih2YXIgSD1hcmd1bWVudHMubGVuZ3RoLEw9bmV3IEFycmF5KEgpLF89MDtfPEg7XysrKUxbX109YXJndW1lbnRzW19dOyQ9PW51bGx8fCQuYXBwbHkodm9pZCAwLEwpLG89PW51bGx8fChNPW8ucHJvcHMpPT09bnVsbHx8TT09PXZvaWQgMHx8KEI9TS5vbkJsdXIpPT09bnVsbHx8Qj09PXZvaWQgMHx8Qi5jYWxsLmFwcGx5KEIsW01dLmNvbmNhdChMKSksbz09bnVsbHx8KFY9by5wcm9wcyk9PT1udWxsfHxWPT09dm9pZCAwfHwoVj1WLmZpZWxkUHJvcHMpPT09bnVsbHx8Vj09PXZvaWQgMHx8KFU9Vi5vbkJsdXIpPT09bnVsbHx8VT09PXZvaWQgMHx8VS5jYWxsLmFwcGx5KFUsW1ZdLmNvbmNhdChMKSl9fSkseWU9KDAscy5aKShmdW5jdGlvbigpe3ZhciBNO3JldHVybigwLEkuWikoKG89PW51bGx8fChNPW8ucHJvcHMpPT09bnVsbHx8TT09PXZvaWQgMD92b2lkIDA6TS5maWVsZFByb3BzKXx8e30sWyJvbkJsdXIiLCJvbkNoYW5nZSJdKX0sWygwLEkuWikoKG89PW51bGx8fChTPW8ucHJvcHMpPT09bnVsbHx8Uz09PXZvaWQgMD92b2lkIDA6Uy5maWVsZFByb3BzKXx8e30sWyJvbkJsdXIiLCJvbkNoYW5nZSJdKV0pLGw9cFt0ZV0sRj0oMCxDLnVzZU1lbW8pKGZ1bmN0aW9uKCl7aWYoIWFlJiYhU2UpcmV0dXJuKDAsWi5ZKSgoMCxuLlopKCgwLG4uWikoKDAsdC5aKSh7aWQ6RmUuaWR9LHRlLGwpLHllKSx7fSx7b25CbHVyOnVlLG9uQ2hhbmdlOnp9KSl9LFtsLHllLHVlLHosRmUuaWQsdGVdKSxYPSgwLEMudXNlTWVtbykoZnVuY3Rpb24oKXtpZighRiYmQy5pc1ZhbGlkRWxlbWVudChvKSlyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIE0sQixWPWFyZ3VtZW50cy5sZW5ndGgsVT1uZXcgQXJyYXkoViksSD0wO0g8VjtIKyspVVtIXT1hcmd1bWVudHNbSF07aT09bnVsbHx8aS5hcHBseSh2b2lkIDAsVSksbz09bnVsbHx8KE09by5wcm9wcyk9PT1udWxsfHxNPT09dm9pZCAwfHwoQj1NLm9uQ2hhbmdlKT09PW51bGx8fEI9PT12b2lkIDB8fEIuY2FsbC5hcHBseShCLFtNXS5jb25jYXQoVSkpfX0sW0YsbyxpXSk7cmV0dXJuIEMuaXNWYWxpZEVsZW1lbnQobyk/Qy5jbG9uZUVsZW1lbnQobywoMCxaLlkpKCgwLG4uWikoKDAsbi5aKSgoMCxuLlopKHt9LEZlKSx7fSwoMCx0LlopKHt9LHRlLHBbdGVdKSxvLnByb3BzKSx7fSx7b25DaGFuZ2U6WCxmaWVsZFByb3BzOkYsb25CbHVyOmFlJiYhU2UmJiR9KSkpOigwLEEuanN4KShBLkZyYWdtZW50LHtjaGlsZHJlbjpvfSl9LFllPWZ1bmN0aW9uKHApe3ZhciBkZT1wLmNoaWxkcmVuLFM9cC5hZGRvbkFmdGVyLG89cC5hZGRvbkJlZm9yZSxpPXAudmFsdWVQcm9wTmFtZSwkPXAuYWRkb25XYXJwU3R5bGUsZWU9cC5jb252ZXJ0VmFsdWUscGU9cC5oZWxwLHRlPSgwLHIuWikocCxyZSksRmU9KDAsQy51c2VNZW1vKShmdW5jdGlvbigpe3ZhciBhZT1mdW5jdGlvbih6KXt2YXIgdWUseWU9KHVlPWVlPT1udWxsP3ZvaWQgMDplZSh6LHRlLm5hbWUpKSE9PW51bGwmJnVlIT09dm9pZCAwP3VlOno7cmV0dXJuIHRlLmdldFZhbHVlUHJvcHM/dGUuZ2V0VmFsdWVQcm9wcyh5ZSk6KDAsdC5aKSh7fSxpfHwidmFsdWUiLHllKX07cmV0dXJuIWVlJiYhdGUuZ2V0VmFsdWVQcm9wcyYmKGFlPXZvaWQgMCksIVMmJiFvPygwLEEuanN4KShQLlouSXRlbSwoMCxuLlopKCgwLG4uWikoe30sdGUpLHt9LHt2YWx1ZVByb3BOYW1lOmksZ2V0VmFsdWVQcm9wczphZSxjaGlsZHJlbjpkZX0pKTooMCxBLmpzeCkoUC5aLkl0ZW0sKDAsbi5aKSgoMCxuLlopKCgwLG4uWikoe30sdGUpLHt9LHtoZWxwOnR5cGVvZiBwZSE9ImZ1bmN0aW9uIj9wZTp2b2lkIDAsdmFsdWVQcm9wTmFtZTppLF9pbnRlcm5hbEl0ZW1SZW5kZXI6e21hcms6InByb190YWJsZV9yZW5kZXIiLHJlbmRlcjpmdW5jdGlvbih6LHVlKXtyZXR1cm4oMCxBLmpzeHMpKEEuRnJhZ21lbnQse2NoaWxkcmVuOlsoMCxBLmpzeHMpKCJkaXYiLHtzdHlsZTooMCxuLlopKHtkaXNwbGF5OiJmbGV4IixhbGlnbkl0ZW1zOiJjZW50ZXIiLGZsZXhXcmFwOiJ3cmFwIn0sJCksY2hpbGRyZW46W28/KDAsQS5qc3gpKCJkaXYiLHtzdHlsZTp7bWFyZ2luSW5saW5lRW5kOjh9LGNoaWxkcmVuOm99KTpudWxsLHVlLmlucHV0LFM/KDAsQS5qc3gpKCJkaXYiLHtzdHlsZTp7bWFyZ2luSW5saW5lU3RhcnQ6OH0sY2hpbGRyZW46U30pOm51bGxdfSksdHlwZW9mIHBlPT0iZnVuY3Rpb24iP3BlKHtlcnJvcnM6ei5lcnJvcnMsd2FybmluZ3M6ei53YXJuaW5nc30pOnVlLmVycm9yTGlzdCx1ZS5leHRyYV19KX19fSx0ZSkse30se2dldFZhbHVlUHJvcHM6YWUsY2hpbGRyZW46ZGV9KSl9LFtTLG8sZGUsZWU9PW51bGw/dm9pZCAwOmVlLnRvU3RyaW5nKCksdGVdKTtyZXR1cm4oMCxBLmpzeCkoemUuUHJvdmlkZXIse3ZhbHVlOntuYW1lOnRlLm5hbWUsbGFiZWw6dGUubGFiZWx9LGNoaWxkcmVuOkZlfSl9LEVlPWZ1bmN0aW9uKHApe3ZhciBkZSxTLG8saSwkPShtLlpQPT09bnVsbHx8bS5aUD09PXZvaWQgMHx8KGRlPW0uWlAudXNlQ29uZmlnKT09PW51bGx8fGRlPT09dm9pZCAwP3ZvaWQgMDpkZS5jYWxsKG0uWlApKXx8e2NvbXBvbmVudFNpemU6Im1pZGRsZSJ9LGVlPSQuY29tcG9uZW50U2l6ZSxwZT1lZSx0ZT1wLnZhbHVlVHlwZSxGZT1wLnRyYW5zZm9ybSxhZT1wLmRhdGFGb3JtYXQsU2U9cC5pZ25vcmVGb3JtSXRlbSx6PXAubGlnaHRQcm9wcyx1ZT1wLmNoaWxkcmVuLHllPSgwLHIuWikocCxKZSksbD0oMCxDLnVzZUNvbnRleHQpKFkuSiksRj0oMCxDLnVzZU1lbW8pKGZ1bmN0aW9uKCl7cmV0dXJuIHAubmFtZT09PXZvaWQgMD9wLm5hbWU6bC5uYW1lIT09dm9pZCAwP1tsLm5hbWUscC5uYW1lXS5mbGF0KDEpOnAubmFtZX0sW2wubmFtZSxwLm5hbWVdKSxYPUMudXNlQ29udGV4dCh4ZS5aKSxNPVguc2V0RmllbGRWYWx1ZVR5cGUsQj1YLmZvcm1JdGVtUHJvcHM7KDAsQy51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7IU18fCFwLm5hbWV8fE0oW2wubGlzdE5hbWUscC5uYW1lXS5mbGF0KDEpLmZpbHRlcihmdW5jdGlvbihjZSl7cmV0dXJuIGNlIT09dm9pZCAwfSkse3ZhbHVlVHlwZTp0ZXx8InRleHQiLGRhdGVGb3JtYXQ6YWUsdHJhbnNmb3JtOkZlfSl9LFtsLmxpc3ROYW1lLEYsYWUscC5uYW1lLE0sRmUsdGVdKTt2YXIgVj1DLmlzVmFsaWRFbGVtZW50KHAuY2hpbGRyZW4pJiZ4KHRlfHxwLmNoaWxkcmVuLnByb3BzLnZhbHVlVHlwZSksVT0oMCxDLnVzZU1lbW8pKGZ1bmN0aW9uKCl7cmV0dXJuISEoISh6IT1udWxsJiZ6LmxpZ2h0KXx8eiE9bnVsbCYmei5jdXN0b21MaWdodE1vZGV8fFYpfSxbej09bnVsbD92b2lkIDA6ei5jdXN0b21MaWdodE1vZGUsVix6PT1udWxsP3ZvaWQgMDp6LmxpZ2h0XSk7aWYodHlwZW9mIHAuY2hpbGRyZW49PSJmdW5jdGlvbiIpe3ZhciBIO3JldHVybigwLEMuY3JlYXRlRWxlbWVudCkoWWUsKDAsbi5aKSgoMCxuLlopKHt9LHllKSx7fSx7bmFtZTpGLGtleTp5ZS5wcm9Gb3JtRmllbGRLZXl8fCgoSD15ZS5uYW1lKT09PW51bGx8fEg9PT12b2lkIDA/dm9pZCAwOkgudG9TdHJpbmcoKSl9KSxwLmNoaWxkcmVuKX12YXIgTD0oMCxBLmpzeCkoQmUse3ZhbHVlUHJvcE5hbWU6cC52YWx1ZVByb3BOYW1lLGNoaWxkcmVuOnAuY2hpbGRyZW59LHllLnByb0Zvcm1GaWVsZEtleXx8KChTPXllLm5hbWUpPT09bnVsbHx8Uz09PXZvaWQgMD92b2lkIDA6Uy50b1N0cmluZygpKSksXz1VP0w6KDAsQy5jcmVhdGVFbGVtZW50KShuZSwoMCxuLlopKCgwLG4uWikoe30seikse30se2tleTp5ZS5wcm9Gb3JtRmllbGRLZXl8fCgobz15ZS5uYW1lKT09PW51bGx8fG89PT12b2lkIDA/dm9pZCAwOm8udG9TdHJpbmcoKSksc2l6ZTpwZX0pLEwpO3JldHVybiBTZT8oMCxBLmpzeCkoQS5GcmFnbWVudCx7Y2hpbGRyZW46X30pOigwLEEuanN4KShZZSwoMCxuLlopKCgwLG4uWikoKDAsbi5aKSh7fSxCKSx5ZSkse30se25hbWU6Rixpc0xpc3RGaWVsZDpsLm5hbWUhPT12b2lkIDAsY2hpbGRyZW46X30pLHllLnByb0Zvcm1GaWVsZEtleXx8KChpPXllLm5hbWUpPT09bnVsbHx8aT09PXZvaWQgMD92b2lkIDA6aS50b1N0cmluZygpKSl9LFVlPUVlfSwxNzE4NjpmdW5jdGlvbihRLGgsZSl7InVzZSBzdHJpY3QiO2UuZChoLHtKOmZ1bmN0aW9uKCl7cmV0dXJuIGRlfSx1OmZ1bmN0aW9uKCl7cmV0dXJuIFN9fSk7dmFyIHQ9ZSg3NDkwMiksbj1lKDE0MTMpLHI9ZSg5MSksYz1lKDU3MTMyKSxzPWUoNDg2ODkpLFo9ZSgxMDkxNSkseD1lKDQxMDM2KSxQPWUoMjE1MzIpLG09ZSg5OTg1OSksST1lKDkzOTY3KSxDPWUubihJKSxPPWUoODAzMzQpLGc9ZSg2NzI5NCksVD1lKDY2NzU4KSxkPWUoMjUxNCksdT1lKDc0MTY1KSxhPWUoMTU4NjEpLFI9ZSg5NzY4NSksRD1lKDI0OTY5KSx2PWUoNzU2NjEpLEU9ZSgyMjI3MCkscT1lKDgzNjIyKSxrPWUoOTg0MjMpLEE9ZSg5MTA1KSxOPWUoNDk0MiksbmU9ZSg1MDg4OCkseGU9ZSg4MzA2MiksWT1lKDUwMzQ0KSxzZT1lKDg4ODApLHJlPWUoODU4OTMpLEplPVsiY3JlYXRvckJ1dHRvblByb3BzIiwiZGVsZXRlSWNvblByb3BzIiwiY29weUljb25Qcm9wcyIsIml0ZW1Db250YWluZXJSZW5kZXIiLCJpdGVtUmVuZGVyIiwiYWx3YXlzU2hvd0l0ZW1MYWJlbCIsInByZWZpeENscyIsImNyZWF0b3JSZWNvcmQiLCJhY3Rpb24iLCJhY3Rpb25HdWFyZCIsImNoaWxkcmVuIiwiYWN0aW9uUmVuZGVyIiwiZmllbGRzIiwibWV0YSIsImZpZWxkIiwiaW5kZXgiLCJmb3JtSW5zdGFuY2UiLCJvcmlnaW5OYW1lIiwiY29udGFpbmVyQ2xhc3NOYW1lIiwiY29udGFpbmVyU3R5bGUiLCJtaW4iLCJtYXgiLCJjb3VudCJdLHplPWZ1bmN0aW9uKGkpe3JldHVybiBBcnJheS5pc0FycmF5KGkpP2k6dHlwZW9mIGk9PSJmdW5jdGlvbiI/W2ldOigwLFkuWikoaSl9LEJlPWZ1bmN0aW9uKGkpe3ZhciAkLGVlLHBlPWkuY3JlYXRvckJ1dHRvblByb3BzLHRlPWkuZGVsZXRlSWNvblByb3BzLEZlPWkuY29weUljb25Qcm9wcyxhZT1pLml0ZW1Db250YWluZXJSZW5kZXIsU2U9aS5pdGVtUmVuZGVyLHo9aS5hbHdheXNTaG93SXRlbUxhYmVsLHVlPWkucHJlZml4Q2xzLHllPWkuY3JlYXRvclJlY29yZCxsPWkuYWN0aW9uLEY9aS5hY3Rpb25HdWFyZCxYPWkuY2hpbGRyZW4sTT1pLmFjdGlvblJlbmRlcixCPWkuZmllbGRzLFY9aS5tZXRhLFU9aS5maWVsZCxIPWkuaW5kZXgsTD1pLmZvcm1JbnN0YW5jZSxfPWkub3JpZ2luTmFtZSxjZT1pLmNvbnRhaW5lckNsYXNzTmFtZSxnZT1pLmNvbnRhaW5lclN0eWxlLGllPWkubWluLFRlPWkubWF4LGJlPWkuY291bnQsT2U9KDAsci5aKShpLEplKSxtZT0oMCxnLnVzZUNvbnRleHQpKFouTF8pLG9lPW1lLmhhc2hJZCxKPSgoJD1QLlpQLnVzZUNvbmZpZyk9PT1udWxsfHwkPT09dm9pZCAwP3ZvaWQgMDokLmNhbGwoUC5aUCkpfHx7Y29tcG9uZW50U2l6ZToibWlkZGxlIn0sZmU9Si5jb21wb25lbnRTaXplLGI9KDAsZy51c2VDb250ZXh0KShkZSksdz0oMCxnLnVzZVJlZikoITEpLFc9KDAsZy51c2VDb250ZXh0KShBLkEpLEs9Vy5tb2RlLGxlPSgwLGcudXNlU3RhdGUpKCExKSxoZT0oMCxSLlopKGxlLDIpLEhlPWhlWzBdLFBlPWhlWzFdLEllPSgwLGcudXNlU3RhdGUpKCExKSxkbj0oMCxSLlopKEllLDIpLG9uPWRuWzBdLEdlPWRuWzFdOygwLGcudXNlRWZmZWN0KShmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbigpe3cuY3VycmVudD0hMH19LFtdKTt2YXIgc249ZnVuY3Rpb24oKXtyZXR1cm4gTC5nZXRGaWVsZFZhbHVlKFtiLmxpc3ROYW1lLF8sSD09bnVsbD92b2lkIDA6SC50b1N0cmluZygpXS5mbGF0KDEpLmZpbHRlcihmdW5jdGlvbihBZSl7cmV0dXJuIEFlIT1udWxsfSkpfSx2bj17Z2V0Q3VycmVudFJvd0RhdGE6c24sc2V0Q3VycmVudFJvd0RhdGE6ZnVuY3Rpb24oQWUpe3ZhciBOZSxhbj0oTD09bnVsbHx8KE5lPUwuZ2V0RmllbGRzVmFsdWUpPT09bnVsbHx8TmU9PT12b2lkIDA/dm9pZCAwOk5lLmNhbGwoTCkpfHx7fSxRZT1bYi5saXN0TmFtZSxfLEg9PW51bGw/dm9pZCAwOkgudG9TdHJpbmcoKV0uZmxhdCgxKS5maWx0ZXIoZnVuY3Rpb24obG4pe3JldHVybiBsbiE9bnVsbH0pLG1uPSgwLHNlLlopKGFuLFFlLCgwLG4uWikoKDAsbi5aKSh7fSxzbigpKSxBZXx8e30pKTtyZXR1cm4gTC5zZXRGaWVsZHNWYWx1ZShtbil9fSx0bj16ZShYKS5tYXAoZnVuY3Rpb24oRyl7cmV0dXJuIHR5cGVvZiBHPT0iZnVuY3Rpb24iP0c9PW51bGw/dm9pZCAwOkcoVSxILCgwLG4uWikoKDAsbi5aKSh7fSxsKSx2biksYmUpOkd9KS5tYXAoZnVuY3Rpb24oRyxBZSl7aWYoZy5pc1ZhbGlkRWxlbWVudChHKSl7dmFyIE5lO3JldHVybiBnLmNsb25lRWxlbWVudChHLCgwLG4uWikoe2tleTpHLmtleXx8KEc9PW51bGx8fChOZT1HLnByb3BzKT09PW51bGx8fE5lPT09dm9pZCAwP3ZvaWQgMDpOZS5uYW1lKXx8QWV9LChHPT1udWxsP3ZvaWQgMDpHLnByb3BzKXx8e30pKX1yZXR1cm4gR30pLFhlPSgwLGcudXNlTWVtbykoZnVuY3Rpb24oKXtpZihLPT09InJlYWQifHxGZT09PSExfHxUZT09PWJlKXJldHVybiBudWxsO3ZhciBHPUZlLEFlPUcuSWNvbixOZT1BZT09PXZvaWQgMD9jLlo6QWUsYW49Ry50b29sdGlwVGV4dDtyZXR1cm4oMCxyZS5qc3gpKHhlLlose3RpdGxlOmFuLGNoaWxkcmVuOm9uPygwLHJlLmpzeCkobmUuWix7fSk6KDAscmUuanN4KShOZSx7Y2xhc3NOYW1lOkMoKSgiIi5jb25jYXQodWUsIi1hY3Rpb24taWNvbiBhY3Rpb24tY29weSIpLG9lKSxvbkNsaWNrOigwLGEuWikoKDAsdS5aKSgpLm1hcmsoZnVuY3Rpb24gUWUoKXt2YXIgbW47cmV0dXJuKDAsdS5aKSgpLndyYXAoZnVuY3Rpb24oaG4pe2Zvcig7Oylzd2l0Y2goaG4ucHJldj1obi5uZXh0KXtjYXNlIDA6cmV0dXJuIEdlKCEwKSxtbj1MPT1udWxsP3ZvaWQgMDpMLmdldEZpZWxkVmFsdWUoW2IubGlzdE5hbWUsXyxVLm5hbWVdLmZpbHRlcihmdW5jdGlvbihwbil7cmV0dXJuIHBuIT09dm9pZCAwfSkuZmxhdCgxKSksaG4ubmV4dD00LGwuYWRkKG1uKTtjYXNlIDQ6R2UoITEpO2Nhc2UgNTpjYXNlImVuZCI6cmV0dXJuIGhuLnN0b3AoKX19LFFlKX0pKX0pfSwiY29weSIpfSxbRmUsVGUsYmUsb24sdWUsb2UsTCxiLmxpc3ROYW1lLFUubmFtZSxfLGxdKSwkZT0oMCxnLnVzZU1lbW8pKGZ1bmN0aW9uKCl7aWYoSz09PSJyZWFkInx8dGU9PT0hMXx8aWU9PT1iZSlyZXR1cm4gbnVsbDt2YXIgRz10ZSxBZT1HLkljb24sTmU9QWU9PT12b2lkIDA/cy5aOkFlLGFuPUcudG9vbHRpcFRleHQ7cmV0dXJuKDAscmUuanN4KSh4ZS5aLHt0aXRsZTphbixjaGlsZHJlbjpIZT8oMCxyZS5qc3gpKG5lLlose30pOigwLHJlLmpzeCkoTmUse2NsYXNzTmFtZTpDKCkoIiIuY29uY2F0KHVlLCItYWN0aW9uLWljb24gYWN0aW9uLXJlbW92ZSIpLG9lKSxvbkNsaWNrOigwLGEuWikoKDAsdS5aKSgpLm1hcmsoZnVuY3Rpb24gUWUoKXtyZXR1cm4oMCx1LlopKCkud3JhcChmdW5jdGlvbihsbil7Zm9yKDs7KXN3aXRjaChsbi5wcmV2PWxuLm5leHQpe2Nhc2UgMDpyZXR1cm4gUGUoITApLGxuLm5leHQ9MyxsLnJlbW92ZShVLm5hbWUpO2Nhc2UgMzp3LmN1cnJlbnR8fFBlKCExKTtjYXNlIDQ6Y2FzZSJlbmQiOnJldHVybiBsbi5zdG9wKCl9fSxRZSl9KSl9KX0sImRlbGV0ZSIpfSxbdGUsaWUsYmUsSGUsdWUsb2UsbCxVLm5hbWVdKSx3ZT0oMCxnLnVzZU1lbW8pKGZ1bmN0aW9uKCl7cmV0dXJuW1hlLCRlXS5maWx0ZXIoZnVuY3Rpb24oRyl7cmV0dXJuIEchPW51bGx9KX0sW1hlLCRlXSksdW49KE09PW51bGw/dm9pZCAwOk0oVSxsLHdlLGJlKSl8fHdlLGNuPXVuLmxlbmd0aD4wJiZLIT09InJlYWQiPygwLHJlLmpzeCkoImRpdiIse2NsYXNzTmFtZTpDKCkoIiIuY29uY2F0KHVlLCItYWN0aW9uIiksKDAsTi5aKSh7fSwiIi5jb25jYXQodWUsIi1hY3Rpb24tc21hbGwiKSxmZT09PSJzbWFsbCIpLG9lKSxjaGlsZHJlbjp1bn0pOm51bGwsa2U9e25hbWU6T2UubmFtZSxmaWVsZDpVLGluZGV4OkgscmVjb3JkOkw9PW51bGx8fChlZT1MLmdldEZpZWxkVmFsdWUpPT09bnVsbHx8ZWU9PT12b2lkIDA/dm9pZCAwOmVlLmNhbGwoTCxbYi5saXN0TmFtZSxfLFUubmFtZV0uZmlsdGVyKGZ1bmN0aW9uKEcpe3JldHVybiBHIT09dm9pZCAwfSkuZmxhdCgxKSksZmllbGRzOkIsb3BlcmF0aW9uOmwsbWV0YTpWfSxDZT0oMCxkLnp4KSgpLFJlPUNlLmdyaWQsTWU9KGFlPT1udWxsP3ZvaWQgMDphZSh0bixrZSkpfHx0bixEZT0oU2U9PW51bGw/dm9pZCAwOlNlKHtsaXN0RG9tOigwLHJlLmpzeCkoImRpdiIse2NsYXNzTmFtZTpDKCkoIiIuY29uY2F0KHVlLCItY29udGFpbmVyIiksY2Usb2UpLHN0eWxlOigwLG4uWikoe3dpZHRoOlJlPyIxMDAlIjp2b2lkIDB9LGdlKSxjaGlsZHJlbjpNZX0pLGFjdGlvbjpjbn0sa2UpKXx8KDAscmUuanN4cykoImRpdiIse2NsYXNzTmFtZTpDKCkoIiIuY29uY2F0KHVlLCItaXRlbSIpLG9lLCgwLE4uWikoKDAsTi5aKSh7fSwiIi5jb25jYXQodWUsIi1pdGVtLWRlZmF1bHQiKSx6PT09dm9pZCAwKSwiIi5jb25jYXQodWUsIi1pdGVtLXNob3ctbGFiZWwiKSx6KSksc3R5bGU6e2Rpc3BsYXk6ImZsZXgiLGFsaWduSXRlbXM6ImZsZXgtZW5kIn0sY2hpbGRyZW46WygwLHJlLmpzeCkoImRpdiIse2NsYXNzTmFtZTpDKCkoIiIuY29uY2F0KHVlLCItY29udGFpbmVyIiksY2Usb2UpLHN0eWxlOigwLG4uWikoe3dpZHRoOlJlPyIxMDAlIjp2b2lkIDB9LGdlKSxjaGlsZHJlbjpNZX0pLGNuXX0pO3JldHVybigwLHJlLmpzeCkoZGUuUHJvdmlkZXIse3ZhbHVlOigwLG4uWikoKDAsbi5aKSh7fSxVKSx7fSx7bGlzdE5hbWU6W2IubGlzdE5hbWUsXyxVLm5hbWVdLmZpbHRlcihmdW5jdGlvbihHKXtyZXR1cm4gRyE9PXZvaWQgMH0pLmZsYXQoMSl9KSxjaGlsZHJlbjpEZX0pfSxZZT1mdW5jdGlvbihpKXt2YXIgJD0oMCxaLllCKSgpLGVlPWkuY3JlYXRvckJ1dHRvblByb3BzLHBlPWkucHJlZml4Q2xzLHRlPWkuY2hpbGRyZW4sRmU9aS5jcmVhdG9yUmVjb3JkLGFlPWkuYWN0aW9uLFNlPWkuZmllbGRzLHo9aS5hY3Rpb25HdWFyZCx1ZT1pLm1heCx5ZT1pLmZpZWxkRXh0cmFSZW5kZXIsbD1pLm1ldGEsRj1pLmNvbnRhaW5lckNsYXNzTmFtZSxYPWkuY29udGFpbmVyU3R5bGUsTT1pLm9uQWZ0ZXJBZGQsQj1pLm9uQWZ0ZXJSZW1vdmUsVj0oMCxnLnVzZUNvbnRleHQpKFouTF8pLFU9Vi5oYXNoSWQsSD0oMCxnLnVzZVJlZikobmV3IE1hcCksTD0oMCxnLnVzZVN0YXRlKSghMSksXz0oMCxSLlopKEwsMiksY2U9X1swXSxnZT1fWzFdLGllPSgwLGcudXNlTWVtbykoZnVuY3Rpb24oKXtyZXR1cm4gU2UubWFwKGZ1bmN0aW9uKEope3ZhciBmZSxiO2lmKCEoKGZlPUguY3VycmVudCkhPT1udWxsJiZmZSE9PXZvaWQgMCYmZmUuaGFzKEoua2V5LnRvU3RyaW5nKCkpKSl7dmFyIHc7KHc9SC5jdXJyZW50KT09PW51bGx8fHc9PT12b2lkIDB8fHcuc2V0KEoua2V5LnRvU3RyaW5nKCksKDAsdi54KSgpKX12YXIgVz0oYj1ILmN1cnJlbnQpPT09bnVsbHx8Yj09PXZvaWQgMD92b2lkIDA6Yi5nZXQoSi5rZXkudG9TdHJpbmcoKSk7cmV0dXJuKDAsbi5aKSgoMCxuLlopKHt9LEopLHt9LHt1dWlkOld9KX0pfSxbU2VdKSxUZT0oMCxnLnVzZU1lbW8pKGZ1bmN0aW9uKCl7dmFyIEo9KDAsbi5aKSh7fSxhZSksZmU9aWUubGVuZ3RoO3JldHVybiB6IT1udWxsJiZ6LmJlZm9yZUFkZFJvdz9KLmFkZD0oMCxhLlopKCgwLHUuWikoKS5tYXJrKGZ1bmN0aW9uIGIoKXt2YXIgdyxXLEssbGUsaGUsSGU9YXJndW1lbnRzO3JldHVybigwLHUuWikoKS53cmFwKGZ1bmN0aW9uKEllKXtmb3IoOzspc3dpdGNoKEllLnByZXY9SWUubmV4dCl7Y2FzZSAwOmZvcih3PUhlLmxlbmd0aCxXPW5ldyBBcnJheSh3KSxLPTA7Szx3O0srKylXW0tdPUhlW0tdO3JldHVybiBJZS5uZXh0PTMsei5iZWZvcmVBZGRSb3cuYXBwbHkoeixXLmNvbmNhdChbZmVdKSk7Y2FzZSAzOmlmKGxlPUllLnNlbnQsIWxlKXtJZS5uZXh0PTg7YnJlYWt9cmV0dXJuIGhlPWFlLmFkZC5hcHBseShhZSxXKSxNPT1udWxsfHxNLmFwcGx5KHZvaWQgMCxXLmNvbmNhdChbZmUrMV0pKSxJZS5hYnJ1cHQoInJldHVybiIsaGUpO2Nhc2UgODpyZXR1cm4gSWUuYWJydXB0KCJyZXR1cm4iLCExKTtjYXNlIDk6Y2FzZSJlbmQiOnJldHVybiBJZS5zdG9wKCl9fSxiKX0pKTpKLmFkZD0oMCxhLlopKCgwLHUuWikoKS5tYXJrKGZ1bmN0aW9uIGIoKXt2YXIgdyxXLEssbGUsaGU9YXJndW1lbnRzO3JldHVybigwLHUuWikoKS53cmFwKGZ1bmN0aW9uKFBlKXtmb3IoOzspc3dpdGNoKFBlLnByZXY9UGUubmV4dCl7Y2FzZSAwOmZvcih3PWhlLmxlbmd0aCxXPW5ldyBBcnJheSh3KSxLPTA7Szx3O0srKylXW0tdPWhlW0tdO3JldHVybiBsZT1hZS5hZGQuYXBwbHkoYWUsVyksTT09bnVsbHx8TS5hcHBseSh2b2lkIDAsVy5jb25jYXQoW2ZlKzFdKSksUGUuYWJydXB0KCJyZXR1cm4iLGxlKTtjYXNlIDQ6Y2FzZSJlbmQiOnJldHVybiBQZS5zdG9wKCl9fSxiKX0pKSx6IT1udWxsJiZ6LmJlZm9yZVJlbW92ZVJvdz9KLnJlbW92ZT0oMCxhLlopKCgwLHUuWikoKS5tYXJrKGZ1bmN0aW9uIGIoKXt2YXIgdyxXLEssbGUsaGUsSGU9YXJndW1lbnRzO3JldHVybigwLHUuWikoKS53cmFwKGZ1bmN0aW9uKEllKXtmb3IoOzspc3dpdGNoKEllLnByZXY9SWUubmV4dCl7Y2FzZSAwOmZvcih3PUhlLmxlbmd0aCxXPW5ldyBBcnJheSh3KSxLPTA7Szx3O0srKylXW0tdPUhlW0tdO3JldHVybiBJZS5uZXh0PTMsei5iZWZvcmVSZW1vdmVSb3cuYXBwbHkoeixXLmNvbmNhdChbZmVdKSk7Y2FzZSAzOmlmKGxlPUllLnNlbnQsIWxlKXtJZS5uZXh0PTg7YnJlYWt9cmV0dXJuIGhlPWFlLnJlbW92ZS5hcHBseShhZSxXKSxCPT1udWxsfHxCLmFwcGx5KHZvaWQgMCxXLmNvbmNhdChbZmUtMV0pKSxJZS5hYnJ1cHQoInJldHVybiIsaGUpO2Nhc2UgODpyZXR1cm4gSWUuYWJydXB0KCJyZXR1cm4iLCExKTtjYXNlIDk6Y2FzZSJlbmQiOnJldHVybiBJZS5zdG9wKCl9fSxiKX0pKTpKLnJlbW92ZT0oMCxhLlopKCgwLHUuWikoKS5tYXJrKGZ1bmN0aW9uIGIoKXt2YXIgdyxXLEssbGUsaGU9YXJndW1lbnRzO3JldHVybigwLHUuWikoKS53cmFwKGZ1bmN0aW9uKFBlKXtmb3IoOzspc3dpdGNoKFBlLnByZXY9UGUubmV4dCl7Y2FzZSAwOmZvcih3PWhlLmxlbmd0aCxXPW5ldyBBcnJheSh3KSxLPTA7Szx3O0srKylXW0tdPWhlW0tdO3JldHVybiBsZT1hZS5yZW1vdmUuYXBwbHkoYWUsVyksQj09bnVsbHx8Qi5hcHBseSh2b2lkIDAsVy5jb25jYXQoW2ZlLTFdKSksUGUuYWJydXB0KCJyZXR1cm4iLGxlKTtjYXNlIDQ6Y2FzZSJlbmQiOnJldHVybiBQZS5zdG9wKCl9fSxiKX0pKSxKfSxbYWUsej09bnVsbD92b2lkIDA6ei5iZWZvcmVBZGRSb3csej09bnVsbD92b2lkIDA6ei5iZWZvcmVSZW1vdmVSb3csTSxCLGllLmxlbmd0aF0pLGJlPSgwLGcudXNlTWVtbykoZnVuY3Rpb24oKXtpZihlZT09PSExfHxpZS5sZW5ndGg9PT11ZSlyZXR1cm4gbnVsbDt2YXIgSj1lZXx8e30sZmU9Si5wb3NpdGlvbixiPWZlPT09dm9pZCAwPyJib3R0b20iOmZlLHc9Si5jcmVhdG9yQnV0dG9uVGV4dCxXPXc9PT12b2lkIDA/JC5nZXRNZXNzYWdlKCJlZGl0YWJsZVRhYmxlLmFjdGlvbi5hZGQiLCJcdTZERkJcdTUyQTBcdTRFMDBcdTg4NENcdTY1NzBcdTYzNkUiKTp3O3JldHVybigwLHJlLmpzeCkocS5aUCwoMCxuLlopKCgwLG4uWikoe2NsYXNzTmFtZToiIi5jb25jYXQocGUsIi1jcmVhdG9yLWJ1dHRvbi0iKS5jb25jYXQoYiwiICIpLmNvbmNhdChVfHwiIikudHJpbSgpLHR5cGU6ImRhc2hlZCIsbG9hZGluZzpjZSxibG9jazohMCxpY29uOigwLHJlLmpzeCkoRC5aLHt9KX0sKDAsay5aKShlZXx8e30sWyJwb3NpdGlvbiIsImNyZWF0b3JCdXR0b25UZXh0Il0pKSx7fSx7b25DbGljazooMCxhLlopKCgwLHUuWikoKS5tYXJrKGZ1bmN0aW9uIEsoKXt2YXIgbGUsaGU7cmV0dXJuKDAsdS5aKSgpLndyYXAoZnVuY3Rpb24oUGUpe2Zvcig7Oylzd2l0Y2goUGUucHJldj1QZS5uZXh0KXtjYXNlIDA6cmV0dXJuIGdlKCEwKSxoZT1pZS5sZW5ndGgsYj09PSJ0b3AiJiYoaGU9MCksUGUubmV4dD01LFRlLmFkZCgobGU9KDAsRS5oKShGZSkpIT09bnVsbCYmbGUhPT12b2lkIDA/bGU6e30saGUpO2Nhc2UgNTpnZSghMSk7Y2FzZSA2OmNhc2UiZW5kIjpyZXR1cm4gUGUuc3RvcCgpfX0sSyl9KSksY2hpbGRyZW46V30pKX0sW2VlLGllLmxlbmd0aCx1ZSwkLHBlLFUsY2UsVGUsRmVdKSxPZT0oMCxnLnVzZUNvbnRleHQpKEEuQSksbWU9KDAsbi5aKSh7d2lkdGg6Im1heC1jb250ZW50IixtYXhXaWR0aDoiMTAwJSIsbWluV2lkdGg6IjEwMCUifSxYKSxvZT0oMCxnLnVzZU1lbW8pKGZ1bmN0aW9uKCl7cmV0dXJuIGllLm1hcChmdW5jdGlvbihKLGZlKXtyZXR1cm4oMCxnLmNyZWF0ZUVsZW1lbnQpKEJlLCgwLG4uWikoKDAsbi5aKSh7fSxpKSx7fSx7a2V5OkoudXVpZCxmaWVsZDpKLGluZGV4OmZlLGFjdGlvbjpUZSxjb3VudDppZS5sZW5ndGh9KSx0ZSl9KX0sW3RlLGksaWUsVGVdKTtyZXR1cm4gT2UubW9kZT09PSJyZWFkInx8aS5yZWFkb25seT09PSEwPygwLHJlLmpzeCkocmUuRnJhZ21lbnQse2NoaWxkcmVuOm9lfSk6KDAscmUuanN4cykoImRpdiIse3N0eWxlOm1lLGNsYXNzTmFtZTpGLGNoaWxkcmVuOltlZSE9PSExJiYoZWU9PW51bGw/dm9pZCAwOmVlLnBvc2l0aW9uKT09PSJ0b3AiJiZiZSxvZSx5ZSYmeWUoVGUsbCksZWUhPT0hMSYmKGVlPT1udWxsP3ZvaWQgMDplZS5wb3NpdGlvbikhPT0idG9wIiYmYmVdfSl9LEVlPWUoNjQ4NDcpLFVlPWZ1bmN0aW9uKGkpe3JldHVybigwLE4uWikoKDAsTi5aKSh7fSwiIi5jb25jYXQoaS5hbnRDbHMsIi1wcm8iKSwoMCxOLlopKHt9LCIiLmNvbmNhdChpLmFudENscywiLWZvcm06bm90KCIpLmNvbmNhdChpLmFudENscywiLWZvcm0taG9yaXpvbnRhbCkiKSwoMCxOLlopKHt9LGkuY29tcG9uZW50Q2xzLCgwLE4uWikoe30sIiYtaXRlbTpub3QoIi5jb25jYXQoaS5jb21wb25lbnRDbHMsIi1pdGVtLXNob3ctbGFiZWwpIiksKDAsTi5aKSh7fSwiIi5jb25jYXQoaS5hbnRDbHMsIi1mb3JtLWl0ZW0tbGFiZWwiKSx7ZGlzcGxheToibm9uZSJ9KSkpKSksaS5jb21wb25lbnRDbHMsKDAsTi5aKSgoMCxOLlopKHttYXhXaWR0aDoiMTAwJSIsIiYtaXRlbSI6eyImJi1zaG93LWxhYmVsIjooMCxOLlopKHt9LCIiLmNvbmNhdChpLmFudENscywiLWZvcm0taXRlbS1sYWJlbCIpLHtkaXNwbGF5OiJpbmxpbmUtYmxvY2sifSksIiYmLWRlZmF1bHQ6Zmlyc3QtY2hpbGQiOnsiZGl2OmZpcnN0LW9mLXR5cGUiOigwLE4uWikoe30sIiIuY29uY2F0KGkuYW50Q2xzLCItZm9ybS1pdGVtIiksKDAsTi5aKSh7fSwiIi5jb25jYXQoaS5hbnRDbHMsIi1mb3JtLWl0ZW0tbGFiZWwiKSx7ZGlzcGxheToiaW5saW5lLWJsb2NrIn0pKX0sIiYmLWRlZmF1bHQ6bm90KDpmaXJzdC1jaGlsZCkiOnsiZGl2OmZpcnN0LW9mLXR5cGUiOigwLE4uWikoe30sIiIuY29uY2F0KGkuYW50Q2xzLCItZm9ybS1pdGVtIiksKDAsTi5aKSh7fSwiIi5jb25jYXQoaS5hbnRDbHMsIi1mb3JtLWl0ZW0tbGFiZWwiKSx7ZGlzcGxheToibm9uZSJ9KSl9fSwiJi1hY3Rpb24iOntkaXNwbGF5OiJmbGV4IixoZWlnaHQ6aS5jb250cm9sSGVpZ2h0LG1hcmdpbkJsb2NrRW5kOmkubWFyZ2luTEcsbGluZUhlaWdodDppLmNvbnRyb2xIZWlnaHQrInB4IiwiJi1zbWFsbCI6e2hlaWdodDppLmNvbnRyb2xIZWlnaHRTTSxsaW5lSGVpZ2h0OmkuY29udHJvbEhlaWdodFNNfX0sIiYtYWN0aW9uLWljb24iOnttYXJnaW5JbmxpbmVTdGFydDo4LGN1cnNvcjoicG9pbnRlciIsdHJhbnNpdGlvbjoiY29sb3IgMC4zcyBlYXNlLWluLW91dCIsIiY6aG92ZXIiOntjb2xvcjppLmNvbG9yUHJpbWFyeVRleHRIb3Zlcn19fSwiIi5jb25jYXQoaS5wcm9Db21wb25lbnRzQ2xzLCItY2FyZCAiKS5jb25jYXQoaS5wcm9Db21wb25lbnRzQ2xzLCItY2FyZC1leHRyYSIpLCgwLE4uWikoe30saS5jb21wb25lbnRDbHMseyImLWFjdGlvbiI6e21hcmdpbkJsb2NrRW5kOjB9fSkpLCImLWNyZWF0b3ItYnV0dG9uLXRvcCIse21hcmdpbkJsb2NrRW5kOjI0fSkpfTtmdW5jdGlvbiBMZShvKXtyZXR1cm4oMCxFZS5YaikoIlByb0Zvcm1MaXN0IixmdW5jdGlvbihpKXt2YXIgJD0oMCxuLlopKCgwLG4uWikoe30saSkse30se2NvbXBvbmVudENsczoiLiIuY29uY2F0KG8pfSk7cmV0dXJuW1VlKCQpXX0pfXZhciBwPVsidHJhbnNmb3JtIiwiYWN0aW9uUmVuZGVyIiwiY3JlYXRvckJ1dHRvblByb3BzIiwibGFiZWwiLCJhbHdheXNTaG93SXRlbUxhYmVsIiwidG9vbHRpcCIsImNyZWF0b3JSZWNvcmQiLCJpdGVtUmVuZGVyIiwicnVsZXMiLCJpdGVtQ29udGFpbmVyUmVuZGVyIiwiZmllbGRFeHRyYVJlbmRlciIsImNvcHlJY29uUHJvcHMiLCJjaGlsZHJlbiIsImRlbGV0ZUljb25Qcm9wcyIsImFjdGlvblJlZiIsInN0eWxlIiwicHJlZml4Q2xzIiwiYWN0aW9uR3VhcmQiLCJtaW4iLCJtYXgiLCJjb2xQcm9wcyIsIndyYXBwZXJDb2wiLCJyb3dQcm9wcyIsIm9uQWZ0ZXJBZGQiLCJvbkFmdGVyUmVtb3ZlIiwiaXNWYWxpZGF0ZUxpc3QiLCJlbXB0eUxpc3RNZXNzYWdlIiwiY2xhc3NOYW1lIiwiY29udGFpbmVyQ2xhc3NOYW1lIiwiY29udGFpbmVyU3R5bGUiLCJyZWFkb25seSJdLGRlPWcuY3JlYXRlQ29udGV4dCh7fSk7ZnVuY3Rpb24gUyhvKXt2YXIgaT0oMCxnLnVzZVJlZikoKSwkPSgwLGcudXNlQ29udGV4dCkoUC5aUC5Db25maWdDb250ZXh0KSxlZT0oMCxnLnVzZUNvbnRleHQpKGRlKSxwZT0kLmdldFByZWZpeENscygicHJvLWZvcm0tbGlzdCIpLHRlPSgwLFouWUIpKCksRmU9Zy51c2VDb250ZXh0KFQuWiksYWU9RmUuc2V0RmllbGRWYWx1ZVR5cGUsU2U9by50cmFuc2Zvcm0sej1vLmFjdGlvblJlbmRlcix1ZT1vLmNyZWF0b3JCdXR0b25Qcm9wcyx5ZT1vLmxhYmVsLGw9by5hbHdheXNTaG93SXRlbUxhYmVsLEY9by50b29sdGlwLFg9by5jcmVhdG9yUmVjb3JkLE09by5pdGVtUmVuZGVyLEI9by5ydWxlcyxWPW8uaXRlbUNvbnRhaW5lclJlbmRlcixVPW8uZmllbGRFeHRyYVJlbmRlcixIPW8uY29weUljb25Qcm9wcyxMPUg9PT12b2lkIDA/e0ljb246Yy5aLHRvb2x0aXBUZXh0OnRlLmdldE1lc3NhZ2UoImNvcHlUaGlzTGluZSIsIlx1NTkwRFx1NTIzNlx1NkI2NFx1OTg3OSIpfTpILF89by5jaGlsZHJlbixjZT1vLmRlbGV0ZUljb25Qcm9wcyxnZT1jZT09PXZvaWQgMD97SWNvbjpzLlosdG9vbHRpcFRleHQ6dGUuZ2V0TWVzc2FnZSgiZGVsZXRlVGhpc0xpbmUiLCJcdTUyMjBcdTk2NjRcdTZCNjRcdTk4NzkiKX06Y2UsaWU9by5hY3Rpb25SZWYsVGU9by5zdHlsZSxiZT1vLnByZWZpeENscyxPZT1vLmFjdGlvbkd1YXJkLG1lPW8ubWluLG9lPW8ubWF4LEo9by5jb2xQcm9wcyxmZT1vLndyYXBwZXJDb2wsYj1vLnJvd1Byb3BzLHc9by5vbkFmdGVyQWRkLFc9by5vbkFmdGVyUmVtb3ZlLEs9by5pc1ZhbGlkYXRlTGlzdCxsZT1LPT09dm9pZCAwPyExOkssaGU9by5lbXB0eUxpc3RNZXNzYWdlLEhlPWhlPT09dm9pZCAwPyJcdTUyMTdcdTg4NjhcdTRFMERcdTgwRkRcdTRFM0FcdTdBN0EiOmhlLFBlPW8uY2xhc3NOYW1lLEllPW8uY29udGFpbmVyQ2xhc3NOYW1lLGRuPW8uY29udGFpbmVyU3R5bGUsb249by5yZWFkb25seSxHZT0oMCxyLlopKG8scCksc249KDAsZC56eCkoe2NvbFByb3BzOkoscm93UHJvcHM6Yn0pLHZuPXNuLkNvbFdyYXBwZXIsdG49c24uUm93V3JhcHBlcixYZT0oMCxnLnVzZUNvbnRleHQpKHguSiksJGU9KDAsZy51c2VNZW1vKShmdW5jdGlvbigpe3JldHVybiBlZS5uYW1lPT09dm9pZCAwP1tHZS5uYW1lXS5mbGF0KDEpOltlZS5uYW1lLEdlLm5hbWVdLmZsYXQoMSl9LFtlZS5uYW1lLEdlLm5hbWVdKTsoMCxnLnVzZUltcGVyYXRpdmVIYW5kbGUpKGllLGZ1bmN0aW9uKCl7cmV0dXJuKDAsbi5aKSgoMCxuLlopKHt9LGkuY3VycmVudCkse30se2dldDpmdW5jdGlvbihDZSl7cmV0dXJuIFhlLmZvcm1SZWYuY3VycmVudC5nZXRGaWVsZFZhbHVlKFtdLmNvbmNhdCgoMCx0LlopKCRlKSxbQ2VdKSl9LGdldExpc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gWGUuZm9ybVJlZi5jdXJyZW50LmdldEZpZWxkVmFsdWUoKDAsdC5aKSgkZSkpfX0pfSxbJGUsWGUuZm9ybVJlZl0pLCgwLGcudXNlRWZmZWN0KShmdW5jdGlvbigpeygwLE8uRVQpKCEhWGUuZm9ybVJlZiwiUHJvRm9ybUxpc3QgXHU1RkM1XHU5ODdCXHU4OTgxXHU2NTNFXHU1MjMwIFByb0Zvcm0gXHU0RTJELFx1NTQyNlx1NTIxOVx1NEYxQVx1OTAyMFx1NjIxMFx1ODg0Q1x1NEUzQVx1NUYwMlx1NUUzOFx1MzAwMiIpLCgwLE8uRVQpKCEhWGUuZm9ybVJlZiwiUHJvZm9ybWxpc3QgbXVzdCBiZSBwbGFjZWQgaW4gUHJvRm9ybSwgb3RoZXJ3aXNlIGl0IHdpbGwgY2F1c2UgYWJub3JtYWwgYmVoYXZpb3IuIil9LFtYZS5mb3JtUmVmXSksKDAsZy51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7IWFlfHwhby5uYW1lfHxhZShbby5uYW1lXS5mbGF0KDEpLmZpbHRlcihmdW5jdGlvbihrZSl7cmV0dXJuIGtlIT09dm9pZCAwfSkse3ZhbHVlVHlwZToiZm9ybUxpc3QiLHRyYW5zZm9ybTpTZX0pfSxbby5uYW1lLGFlLFNlXSk7dmFyIHdlPUxlKHBlKSx1bj13ZS53cmFwU1NSLGNuPXdlLmhhc2hJZDtyZXR1cm4gWGUuZm9ybVJlZj91bigoMCxyZS5qc3gpKHZuLHtjaGlsZHJlbjooMCxyZS5qc3gpKCJkaXYiLHtjbGFzc05hbWU6QygpKHBlLGNuKSxzdHlsZTpUZSxjaGlsZHJlbjooMCxyZS5qc3gpKG0uWi5JdGVtLCgwLG4uWikoKDAsbi5aKSh7bGFiZWw6eWUscHJlZml4Q2xzOmJlLHRvb2x0aXA6RixzdHlsZTpUZSxyZXF1aXJlZDpCPT1udWxsP3ZvaWQgMDpCLnNvbWUoZnVuY3Rpb24oa2Upe3JldHVybiBrZS5yZXF1aXJlZH0pLHdyYXBwZXJDb2w6ZmUsY2xhc3NOYW1lOlBlfSxHZSkse30se25hbWU6bGU/JGU6dm9pZCAwLHJ1bGVzOmxlP1t7dmFsaWRhdG9yOmZ1bmN0aW9uKENlLFJlKXtyZXR1cm4hUmV8fFJlLmxlbmd0aD09PTA/UHJvbWlzZS5yZWplY3QobmV3IEVycm9yKEhlKSk6UHJvbWlzZS5yZXNvbHZlKCl9LHJlcXVpcmVkOiEwfV06dm9pZCAwLGNoaWxkcmVuOigwLHJlLmpzeCkobS5aLkxpc3QsKDAsbi5aKSgoMCxuLlopKHtydWxlczpCfSxHZSkse30se25hbWU6JGUsY2hpbGRyZW46ZnVuY3Rpb24oQ2UsUmUsTWUpe3JldHVybiBpLmN1cnJlbnQ9UmUsKDAscmUuanN4cykodG4se2NoaWxkcmVuOlsoMCxyZS5qc3gpKFllLHtuYW1lOiRlLHJlYWRvbmx5OiEhb24sb3JpZ2luTmFtZTpHZS5uYW1lLGNvcHlJY29uUHJvcHM6TCxkZWxldGVJY29uUHJvcHM6Z2UsZm9ybUluc3RhbmNlOlhlLmZvcm1SZWYuY3VycmVudCxwcmVmaXhDbHM6cGUsbWV0YTpNZSxmaWVsZHM6Q2UsaXRlbUNvbnRhaW5lclJlbmRlcjpWLGl0ZW1SZW5kZXI6TSxmaWVsZEV4dHJhUmVuZGVyOlUsY3JlYXRvckJ1dHRvblByb3BzOnVlLGNyZWF0b3JSZWNvcmQ6WCxhY3Rpb25SZW5kZXI6eixhY3Rpb246UmUsYWN0aW9uR3VhcmQ6T2UsYWx3YXlzU2hvd0l0ZW1MYWJlbDpsLG1pbjptZSxtYXg6b2UsY291bnQ6Q2UubGVuZ3RoLG9uQWZ0ZXJBZGQ6ZnVuY3Rpb24oRyxBZSxOZSl7bGUmJlhlLmZvcm1SZWYuY3VycmVudC52YWxpZGF0ZUZpZWxkcyhbJGVdKSx3PT1udWxsfHx3KEcsQWUsTmUpfSxvbkFmdGVyUmVtb3ZlOmZ1bmN0aW9uKEcsQWUpe2xlJiZBZT09PTAmJlhlLmZvcm1SZWYuY3VycmVudC52YWxpZGF0ZUZpZWxkcyhbJGVdKSxXPT1udWxsfHxXKEcsQWUpfSxjb250YWluZXJDbGFzc05hbWU6SWUsY29udGFpbmVyU3R5bGU6ZG4sY2hpbGRyZW46X30pLCgwLHJlLmpzeCkobS5aLkVycm9yTGlzdCx7ZXJyb3JzOk1lLmVycm9yc30pXX0pfX0pKX0pKX0pfSkpOm51bGx9fSwyNTE0OmZ1bmN0aW9uKFEsaCxlKXsidXNlIHN0cmljdCI7ZS5kKGgse19wOmZ1bmN0aW9uKCl7cmV0dXJuIEl9LHp4OmZ1bmN0aW9uKCl7cmV0dXJuIE99fSk7dmFyIHQ9ZSg3MTAwMiksbj1lKDE0MTMpLHI9ZSg5MSksYz1lKDcxMjMwKSxzPWUoMTU3NDYpLFo9ZSg2NzI5NCkseD1lKDg1ODkzKSxQPVsiY2hpbGRyZW4iLCJXcmFwcGVyIl0sbT1bImNoaWxkcmVuIiwiV3JhcHBlciJdLEk9KDAsWi5jcmVhdGVDb250ZXh0KSh7Z3JpZDohMSxjb2xQcm9wczp2b2lkIDAscm93UHJvcHM6dm9pZCAwfSksQz1mdW5jdGlvbihUKXt2YXIgZD1ULmdyaWQsdT1ULnJvd1Byb3BzLGE9VC5jb2xQcm9wcztyZXR1cm57Z3JpZDohIWQsUm93V3JhcHBlcjpmdW5jdGlvbigpe3ZhciBEPWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dm9pZCAwP2FyZ3VtZW50c1swXTp7fSx2PUQuY2hpbGRyZW4sRT1ELldyYXBwZXIscT0oMCxyLlopKEQsUCk7cmV0dXJuIGQ/KDAseC5qc3gpKGMuWiwoMCxuLlopKCgwLG4uWikoKDAsbi5aKSh7Z3V0dGVyOjh9LHUpLHEpLHt9LHtjaGlsZHJlbjp2fSkpOkU/KDAseC5qc3gpKEUse2NoaWxkcmVuOnZ9KTp2fSxDb2xXcmFwcGVyOmZ1bmN0aW9uKCl7dmFyIEQ9YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT12b2lkIDA/YXJndW1lbnRzWzBdOnt9LHY9RC5jaGlsZHJlbixFPUQuV3JhcHBlcixxPSgwLHIuWikoRCxtKSxrPSgwLFoudXNlTWVtbykoZnVuY3Rpb24oKXt2YXIgQT0oMCxuLlopKCgwLG4uWikoe30sYSkscSk7cmV0dXJuIHR5cGVvZiBBLnNwYW49PSJ1bmRlZmluZWQiJiZ0eXBlb2YgQS54cz09InVuZGVmaW5lZCImJihBLnhzPTI0KSxBfSxbcV0pO3JldHVybiBkPygwLHguanN4KShzLlosKDAsbi5aKSgoMCxuLlopKHt9LGspLHt9LHtjaGlsZHJlbjp2fSkpOkU/KDAseC5qc3gpKEUse2NoaWxkcmVuOnZ9KTp2fX19LE89ZnVuY3Rpb24oVCl7dmFyIGQ9KDAsWi51c2VNZW1vKShmdW5jdGlvbigpe3JldHVybigwLHQuWikoVCk9PT0ib2JqZWN0Ij9UOntncmlkOlR9fSxbVF0pLHU9KDAsWi51c2VDb250ZXh0KShJKSxhPXUuZ3JpZCxSPXUuY29sUHJvcHM7cmV0dXJuKDAsWi51c2VNZW1vKShmdW5jdGlvbigpe3JldHVybiBDKHtncmlkOiEhKGF8fGQuZ3JpZCkscm93UHJvcHM6ZD09bnVsbD92b2lkIDA6ZC5yb3dQcm9wcyxjb2xQcm9wczooZD09bnVsbD92b2lkIDA6ZC5jb2xQcm9wcyl8fFIsV3JhcHBlcjpkPT1udWxsP3ZvaWQgMDpkLldyYXBwZXJ9KX0sW2Q9PW51bGw/dm9pZCAwOmQuV3JhcHBlcixkLmdyaWQsYSxKU09OLnN0cmluZ2lmeShbUixkPT1udWxsP3ZvaWQgMDpkLmNvbFByb3BzLGQ9PW51bGw/dm9pZCAwOmQucm93UHJvcHNdKV0pfX0sOTcyNjk6ZnVuY3Rpb24oUSxoLGUpeyJ1c2Ugc3RyaWN0IjtlLmQoaCx7QTpmdW5jdGlvbigpe3JldHVybiBBfX0pO3ZhciB0PWUoMTQxMyksbj1lKDk5ODU5KSxyPWUoNjcyOTQpLGM9ZSg3ODczMykscz1lKDkxMDUpLFo9ZSg0OTQyKSx4PWUoOTc2ODUpLFA9ZSg5MDgxNCksbT1lKDIxNzcwKSxJPWUoMTI3OTUpLEM9ZSgyMTUzMiksTz1lKDc4OTU3KSxnPWUoOTM5NjcpLFQ9ZS5uKGcpLGQ9ZSg2Njc1OCksdT1lKDI1MTQpLGE9ZSg2NDg0NyksUj1mdW5jdGlvbihuZSl7cmV0dXJuKDAsWi5aKSh7fSxuZS5jb21wb25lbnRDbHMseyImLXRpdGxlIjp7bWFyZ2luQmxvY2tFbmQ6bmUubWFyZ2luWEwsZm9udFdlaWdodDoiYm9sZCJ9LCImLWNvbnRhaW5lciI6KDAsWi5aKSh7ZmxleFdyYXA6IndyYXAiLG1heFdpZHRoOiIxMDAlIn0sIj4gZGl2Ii5jb25jYXQobmUuYW50Q2xzLCItc3BhY2UtaXRlbSIpLHttYXhXaWR0aDoiMTAwJSJ9KSwiJi10d29MaW5lIjooMCxaLlopKCgwLFouWikoKDAsWi5aKSgoMCxaLlopKHtkaXNwbGF5OiJibG9jayIsd2lkdGg6IjEwMCUifSwiIi5jb25jYXQobmUuY29tcG9uZW50Q2xzLCItdGl0bGUiKSx7d2lkdGg6IjEwMCUiLG1hcmdpbjoiOHB4IDAifSksIiIuY29uY2F0KG5lLmNvbXBvbmVudENscywiLWNvbnRhaW5lciIpLHtwYWRkaW5nSW5saW5lU3RhcnQ6MTZ9KSwiIi5jb25jYXQobmUuYW50Q2xzLCItc3BhY2UtaXRlbSwiKS5jb25jYXQobmUuYW50Q2xzLCItZm9ybS1pdGVtIikse3dpZHRoOiIxMDAlIn0pLCIiLmNvbmNhdChuZS5hbnRDbHMsIi1mb3JtLWl0ZW0iKSx7IiYtY29udHJvbCI6e2Rpc3BsYXk6ImZsZXgiLGFsaWduSXRlbXM6ImNlbnRlciIsanVzdGlmeUNvbnRlbnQ6ImZsZXgtZW5kIiwiJi1pbnB1dCI6e2FsaWduSXRlbXM6ImNlbnRlciIsanVzdGlmeUNvbnRlbnQ6ImZsZXgtZW5kIiwiJi1jb250ZW50Ijp7ZmxleDoibm9uZSJ9fX19KX0pfTtmdW5jdGlvbiBEKE4pe3JldHVybigwLGEuWGopKCJQcm9Gb3JtR3JvdXAiLGZ1bmN0aW9uKG5lKXt2YXIgeGU9KDAsdC5aKSgoMCx0LlopKHt9LG5lKSx7fSx7Y29tcG9uZW50Q2xzOiIuIi5jb25jYXQoTil9KTtyZXR1cm5bUih4ZSldfSl9dmFyIHY9ZSg4NTg5MyksRT1yLmZvcndhcmRSZWYoZnVuY3Rpb24oTixuZSl7dmFyIHhlPXIudXNlQ29udGV4dChkLlopLFk9eGUuZ3JvdXBQcm9wcyxzZT0oMCx0LlopKCgwLHQuWikoe30sWSksTikscmU9c2UuY2hpbGRyZW4sSmU9c2UuY29sbGFwc2libGUsemU9c2UuZGVmYXVsdENvbGxhcHNlZCxCZT1zZS5zdHlsZSxZZT1zZS5sYWJlbExheW91dCxFZT1zZS50aXRsZSxVZT1FZT09PXZvaWQgMD9OLmxhYmVsOkVlLExlPXNlLnRvb2x0aXAscD1zZS5hbGlnbixkZT1wPT09dm9pZCAwPyJzdGFydCI6cCxTPXNlLmRpcmVjdGlvbixvPXNlLnNpemUsaT1vPT09dm9pZCAwPzMyOm8sJD1zZS50aXRsZVN0eWxlLGVlPXNlLnRpdGxlUmVuZGVyLHBlPXNlLnNwYWNlUHJvcHMsdGU9c2UuZXh0cmEsRmU9c2UuYXV0b0ZvY3VzLGFlPSgwLG0uWikoZnVuY3Rpb24oKXtyZXR1cm4gemV8fCExfSx7dmFsdWU6Ti5jb2xsYXBzZWQsb25DaGFuZ2U6Ti5vbkNvbGxhcHNlfSksU2U9KDAseC5aKShhZSwyKSx6PVNlWzBdLHVlPVNlWzFdLHllPSgwLHIudXNlQ29udGV4dCkoQy5aUC5Db25maWdDb250ZXh0KSxsPXllLmdldFByZWZpeENscyxGPSgwLHUuengpKE4pLFg9Ri5Db2xXcmFwcGVyLE09Ri5Sb3dXcmFwcGVyLEI9bCgicHJvLWZvcm0tZ3JvdXAiKSxWPUQoQiksVT1WLndyYXBTU1IsSD1WLmhhc2hJZCxMPUplJiYoMCx2LmpzeCkoUC5aLHtzdHlsZTp7bWFyZ2luSW5saW5lRW5kOjh9LHJvdGF0ZTp6P3ZvaWQgMDo5MH0pLF89KDAsdi5qc3gpKEkuRyx7bGFiZWw6TD8oMCx2LmpzeHMpKCJkaXYiLHtjaGlsZHJlbjpbTCxVZV19KTpVZSx0b29sdGlwOkxlfSksY2U9KDAsci51c2VDYWxsYmFjaykoZnVuY3Rpb24obWUpe3ZhciBvZT1tZS5jaGlsZHJlbjtyZXR1cm4oMCx2LmpzeCkoTy5aLCgwLHQuWikoKDAsdC5aKSh7fSxwZSkse30se2NsYXNzTmFtZTpUKCkoIiIuY29uY2F0KEIsIi1jb250YWluZXIgIikuY29uY2F0KEgpLHBlPT1udWxsP3ZvaWQgMDpwZS5jbGFzc05hbWUpLHNpemU6aSxhbGlnbjpkZSxkaXJlY3Rpb246UyxzdHlsZTooMCx0LlopKHtyb3dHYXA6MH0scGU9PW51bGw/dm9pZCAwOnBlLnN0eWxlKSxjaGlsZHJlbjpvZX0pKX0sW2RlLEIsUyxILGkscGVdKSxnZT1lZT9lZShfLE4pOl8saWU9KDAsci51c2VNZW1vKShmdW5jdGlvbigpe3ZhciBtZT1bXSxvZT1yLkNoaWxkcmVuLnRvQXJyYXkocmUpLm1hcChmdW5jdGlvbihKLGZlKXt2YXIgYjtyZXR1cm4gci5pc1ZhbGlkRWxlbWVudChKKSYmSiE9PW51bGwmJkohPT12b2lkIDAmJihiPUoucHJvcHMpIT09bnVsbCYmYiE9PXZvaWQgMCYmYi5oaWRkZW4/KG1lLnB1c2goSiksbnVsbCk6ZmU9PT0wJiZyLmlzVmFsaWRFbGVtZW50KEopJiZGZT9yLmNsb25lRWxlbWVudChKLCgwLHQuWikoKDAsdC5aKSh7fSxKLnByb3BzKSx7fSx7YXV0b0ZvY3VzOkZlfSkpOkp9KTtyZXR1cm5bKDAsdi5qc3gpKE0se1dyYXBwZXI6Y2UsY2hpbGRyZW46b2V9LCJjaGlsZHJlbiIpLG1lLmxlbmd0aD4wPygwLHYuanN4KSgiZGl2Iix7c3R5bGU6e2Rpc3BsYXk6Im5vbmUifSxjaGlsZHJlbjptZX0pOm51bGxdfSxbcmUsTSxjZSxGZV0pLFRlPSgwLHguWikoaWUsMiksYmU9VGVbMF0sT2U9VGVbMV07cmV0dXJuIFUoKDAsdi5qc3gpKFgse2NoaWxkcmVuOigwLHYuanN4cykoImRpdiIse2NsYXNzTmFtZTpUKCkoQixILCgwLFouWikoe30sIiIuY29uY2F0KEIsIi10d29MaW5lIiksWWU9PT0idHdvTGluZSIpKSxzdHlsZTpCZSxyZWY6bmUsY2hpbGRyZW46W09lLChVZXx8TGV8fHRlKSYmKDAsdi5qc3gpKCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KEIsIi10aXRsZSAiKS5jb25jYXQoSCkudHJpbSgpLHN0eWxlOiQsb25DbGljazpmdW5jdGlvbigpe3VlKCF6KX0sY2hpbGRyZW46dGU/KDAsdi5qc3hzKSgiZGl2Iix7c3R5bGU6e2Rpc3BsYXk6ImZsZXgiLHdpZHRoOiIxMDAlIixhbGlnbkl0ZW1zOiJjZW50ZXIiLGp1c3RpZnlDb250ZW50OiJzcGFjZS1iZXR3ZWVuIn0sY2hpbGRyZW46W2dlLCgwLHYuanN4KSgic3BhbiIse29uQ2xpY2s6ZnVuY3Rpb24ob2Upe3JldHVybiBvZS5zdG9wUHJvcGFnYXRpb24oKX0sY2hpbGRyZW46dGV9KV19KTpnZX0pLCgwLHYuanN4KSgiZGl2Iix7c3R5bGU6e2Rpc3BsYXk6SmUmJno/Im5vbmUiOnZvaWQgMH0sY2hpbGRyZW46YmV9KV19KX0pKX0pO0UuZGlzcGxheU5hbWU9IlByb0Zvcm0tR3JvdXAiO3ZhciBxPUUsaz1lKDQ0OTkpO2Z1bmN0aW9uIEEoTil7cmV0dXJuKDAsdi5qc3gpKGMuSSwoMCx0LlopKHtsYXlvdXQ6InZlcnRpY2FsIixjb250ZW50UmVuZGVyOmZ1bmN0aW9uKHhlLFkpe3JldHVybigwLHYuanN4cykodi5GcmFnbWVudCx7Y2hpbGRyZW46W3hlLFldfSl9fSxOKSl9QS5Hcm91cD1xLEEudXNlRm9ybT1uLloudXNlRm9ybSxBLkl0ZW09ay5aLEEudXNlV2F0Y2g9bi5aLnVzZVdhdGNoLEEuRXJyb3JMaXN0PW4uWi5FcnJvckxpc3QsQS5Qcm92aWRlcj1uLlouUHJvdmlkZXIsQS51c2VGb3JtSW5zdGFuY2U9bi5aLnVzZUZvcm1JbnN0YW5jZSxBLkVkaXRPclJlYWRPbmx5Q29udGV4dD1zLkF9LDIxMjI6ZnVuY3Rpb24oUSxoLGUpeyJ1c2Ugc3RyaWN0IjtlLmQoaCx7UTpmdW5jdGlvbigpe3JldHVybiBkfX0pO3ZhciB0PWUoNDk0Miksbj1lKDQzNDApLHI9ZSg4MDg4MiksYz1lKDEwOTE1KSxzPWUoMjE1MzIpLFo9ZSg5Mzk2NykseD1lLm4oWiksUD1lKDY3Mjk0KSxtPWUoMTQxMyksST1lKDY0ODQ3KSxDPWZ1bmN0aW9uKGEpe3JldHVybigwLHQuWikoe30sYS5jb21wb25lbnRDbHMsKDAsdC5aKSgoMCx0LlopKCgwLHQuWikoKDAsdC5aKSgoMCx0LlopKCgwLHQuWikoKDAsdC5aKSgoMCx0LlopKHtkaXNwbGF5OiJpbmxpbmUtZmxleCIsZ2FwOmEubWFyZ2luWFhTLGFsaWduSXRlbXM6ImNlbnRlciIsaGVpZ2h0OiIzMHB4IixwYWRkaW5nQmxvY2s6MCxwYWRkaW5nSW5saW5lOjgsZm9udFNpemU6YS5mb250U2l6ZSxsaW5lSGVpZ2h0OiIzMHB4Iixib3JkZXJSYWRpdXM6IjJweCIsY3Vyc29yOiJwb2ludGVyIiwiJjpob3ZlciI6e2JhY2tncm91bmRDb2xvcjphLmNvbG9yQmdUZXh0SG92ZXJ9LCImLWFjdGl2ZSI6KDAsdC5aKSh7cGFkZGluZ0Jsb2NrOjAscGFkZGluZ0lubGluZTo4LGJhY2tncm91bmRDb2xvcjphLmNvbG9yQmdUZXh0SG92ZXJ9LCImIi5jb25jYXQoYS5jb21wb25lbnRDbHMsIi1hbGxvdy1jbGVhcjpob3Zlcjpub3QoIikuY29uY2F0KGEuY29tcG9uZW50Q2xzLCItZGlzYWJsZWQpIiksKDAsdC5aKSgoMCx0LlopKHt9LCIiLmNvbmNhdChhLmNvbXBvbmVudENscywiLWFycm93Iikse2Rpc3BsYXk6Im5vbmUifSksIiIuY29uY2F0KGEuY29tcG9uZW50Q2xzLCItY2xvc2UiKSx7ZGlzcGxheToiaW5saW5lLWZsZXgifSkpfSwiIi5jb25jYXQoYS5hbnRDbHMsIi1zZWxlY3QiKSwoMCx0LlopKHt9LCIiLmNvbmNhdChhLmFudENscywiLXNlbGVjdC1jbGVhciIpLHtib3JkZXJSYWRpdXM6IjUwJSJ9KSksIiIuY29uY2F0KGEuYW50Q2xzLCItcGlja2VyIiksKDAsdC5aKSh7fSwiIi5jb25jYXQoYS5hbnRDbHMsIi1waWNrZXItY2xlYXIiKSx7Ym9yZGVyUmFkaXVzOiI1MCUifSkpLCImLWljb24iLCgwLHQuWikoKDAsdC5aKSh7Y29sb3I6YS5jb2xvckljb24sdHJhbnNpdGlvbjoiY29sb3IgMC4zcyIsZm9udFNpemU6MTIsdmVydGljYWxBbGlnbjoibWlkZGxlIn0sIiYiLmNvbmNhdChhLmNvbXBvbmVudENscywiLWNsb3NlIikse2Rpc3BsYXk6Im5vbmUiLGZvbnRTaXplOjEyLGFsaWduSXRlbXM6ImNlbnRlciIsanVzdGlmeUNvbnRlbnQ6ImNlbnRlciIsY29sb3I6YS5jb2xvclRleHRQbGFjZWhvbGRlcixib3JkZXJSYWRpdXM6IjUwJSJ9KSwiJjpob3ZlciIse2NvbG9yOmEuY29sb3JJY29uSG92ZXJ9KSksIiYtZGlzYWJsZWQiLCgwLHQuWikoe2NvbG9yOmEuY29sb3JUZXh0UGxhY2Vob2xkZXIsY3Vyc29yOiJub3QtYWxsb3dlZCJ9LCIiLmNvbmNhdChhLmNvbXBvbmVudENscywiLWljb24iKSx7Y29sb3I6YS5jb2xvclRleHRQbGFjZWhvbGRlcn0pKSwiJi1zbWFsbCIsKDAsdC5aKSgoMCx0LlopKCgwLHQuWikoe2hlaWdodDoiMjRweCIscGFkZGluZ0Jsb2NrOjAscGFkZGluZ0lubGluZTo0LGZvbnRTaXplOmEuZm9udFNpemVTTSxsaW5lSGVpZ2h0OiIyNHB4In0sIiYiLmNvbmNhdChhLmNvbXBvbmVudENscywiLWFjdGl2ZSIpLHtwYWRkaW5nQmxvY2s6MCxwYWRkaW5nSW5saW5lOjh9KSwiIi5jb25jYXQoYS5jb21wb25lbnRDbHMsIi1pY29uIikse3BhZGRpbmdCbG9jazowLHBhZGRpbmdJbmxpbmU6MH0pLCIiLmNvbmNhdChhLmNvbXBvbmVudENscywiLWNsb3NlIikse21hcmdpbkJsb2NrU3RhcnQ6Ii0ycHgiLHBhZGRpbmdCbG9jazo0LHBhZGRpbmdJbmxpbmU6NCxmb250U2l6ZToiNnB4In0pKSwiJi1ib3JkZXJlZCIse2hlaWdodDoiMzJweCIscGFkZGluZ0Jsb2NrOjAscGFkZGluZ0lubGluZTo4LGJvcmRlcjoiIi5jb25jYXQoYS5saW5lV2lkdGgsInB4IHNvbGlkICIpLmNvbmNhdChhLmNvbG9yQm9yZGVyKSxib3JkZXJSYWRpdXM6IkBib3JkZXItcmFkaXVzLWJhc2UifSksIiYtYm9yZGVyZWQmLXNtYWxsIix7aGVpZ2h0OiIyNHB4IixwYWRkaW5nQmxvY2s6MCxwYWRkaW5nSW5saW5lOjh9KSwiJi1ib3JkZXJlZCYtYWN0aXZlIix7YmFja2dyb3VuZENvbG9yOmEuY29sb3JCZ0NvbnRhaW5lcn0pKX07ZnVuY3Rpb24gTyh1KXtyZXR1cm4oMCxJLlhqKSgiRmllbGRMYWJlbCIsZnVuY3Rpb24oYSl7dmFyIFI9KDAsbS5aKSgoMCxtLlopKHt9LGEpLHt9LHtjb21wb25lbnRDbHM6Ii4iLmNvbmNhdCh1KX0pO3JldHVybltDKFIpXX0pfXZhciBnPWUoODU4OTMpLFQ9ZnVuY3Rpb24oYSxSKXt2YXIgRCx2LEUscT1hLmxhYmVsLGs9YS5vbkNsZWFyLEE9YS52YWx1ZSxOPWEuZGlzYWJsZWQsbmU9YS5vbkxhYmVsQ2xpY2sseGU9YS5lbGxpcHNpcyxZPWEucGxhY2Vob2xkZXIsc2U9YS5jbGFzc05hbWUscmU9YS5mb3JtYXR0ZXIsSmU9YS5ib3JkZXJlZCx6ZT1hLnN0eWxlLEJlPWEuZG93bkljb24sWWU9YS5hbGxvd0NsZWFyLEVlPVllPT09dm9pZCAwPyEwOlllLFVlPWEudmFsdWVNYXhMZW5ndGgsTGU9VWU9PT12b2lkIDA/NDE6VWUscD0ocy5aUD09PW51bGx8fHMuWlA9PT12b2lkIDB8fChEPXMuWlAudXNlQ29uZmlnKT09PW51bGx8fEQ9PT12b2lkIDA/dm9pZCAwOkQuY2FsbChzLlpQKSl8fHtjb21wb25lbnRTaXplOiJtaWRkbGUifSxkZT1wLmNvbXBvbmVudFNpemUsUz1kZSxvPSgwLFAudXNlQ29udGV4dCkocy5aUC5Db25maWdDb250ZXh0KSxpPW8uZ2V0UHJlZml4Q2xzLCQ9aSgicHJvLWNvcmUtZmllbGQtbGFiZWwiKSxlZT1PKCQpLHBlPWVlLndyYXBTU1IsdGU9ZWUuaGFzaElkLEZlPSgwLGMuWUIpKCksYWU9KDAsUC51c2VSZWYpKG51bGwpLFNlPSgwLFAudXNlUmVmKShudWxsKTsoMCxQLnVzZUltcGVyYXRpdmVIYW5kbGUpKFIsZnVuY3Rpb24oKXtyZXR1cm57bGFiZWxSZWY6U2UsY2xlYXJSZWY6YWV9fSk7dmFyIHo9ZnVuY3Rpb24oRil7cmV0dXJuIEYuZXZlcnkoZnVuY3Rpb24oWCl7cmV0dXJuIHR5cGVvZiBYPT0ic3RyaW5nIn0pP0Yuam9pbigiLCIpOkYubWFwKGZ1bmN0aW9uKFgsTSl7dmFyIEI9TT09PUYubGVuZ3RoLTE/IiI6IiwiO3JldHVybiB0eXBlb2YgWD09InN0cmluZyI/KDAsZy5qc3hzKSgic3BhbiIse2NoaWxkcmVuOltYLEJdfSxNKTooMCxnLmpzeHMpKCJzcGFuIix7c3R5bGU6e2Rpc3BsYXk6ImZsZXgifSxjaGlsZHJlbjpbWCxCXX0sTSl9KX0sdWU9ZnVuY3Rpb24oRil7cmV0dXJuIHJlP3JlKEYpOkFycmF5LmlzQXJyYXkoRik/eihGKTpGfSx5ZT1mdW5jdGlvbihGLFgpe2lmKFghPW51bGwmJlghPT0iIiYmKCFBcnJheS5pc0FycmF5KFgpfHxYLmxlbmd0aCkpe3ZhciBNLEIsVj1GPygwLGcuanN4cykoInNwYW4iLHtvbkNsaWNrOmZ1bmN0aW9uKCl7bmU9PW51bGx8fG5lKCl9LGNsYXNzTmFtZToiIi5jb25jYXQoJCwiLXRleHQiKSxjaGlsZHJlbjpbRiwiOiAiXX0pOiIiLFU9dWUoWCk7aWYoIXhlKXJldHVybigwLGcuanN4cykoInNwYW4iLHtzdHlsZTp7ZGlzcGxheToiaW5saW5lLWZsZXgiLGFsaWduSXRlbXM6ImNlbnRlciJ9LGNoaWxkcmVuOltWLHVlKFgpXX0pO3ZhciBIPWZ1bmN0aW9uKCl7dmFyIGNlPUFycmF5LmlzQXJyYXkoWCkmJlgubGVuZ3RoPjEsZ2U9RmUuZ2V0TWVzc2FnZSgiZm9ybS5saWdodEZpbHRlci5pdGVtVW5pdCIsIlx1OTg3OSIpO3JldHVybiB0eXBlb2YgVT09InN0cmluZyImJlUubGVuZ3RoPkxlJiZjZT8iLi4uIi5jb25jYXQoWC5sZW5ndGgpLmNvbmNhdChnZSk6IiJ9LEw9SCgpO3JldHVybigwLGcuanN4cykoInNwYW4iLHt0aXRsZTp0eXBlb2YgVT09InN0cmluZyI/VTp2b2lkIDAsc3R5bGU6e2Rpc3BsYXk6ImlubGluZS1mbGV4IixhbGlnbkl0ZW1zOiJjZW50ZXIifSxjaGlsZHJlbjpbViwoMCxnLmpzeCkoInNwYW4iLHtzdHlsZTp7cGFkZGluZ0lubGluZVN0YXJ0OjQsZGlzcGxheToiZmxleCJ9LGNoaWxkcmVuOnR5cGVvZiBVPT0ic3RyaW5nIj9VPT1udWxsfHwoTT1VLnRvU3RyaW5nKCkpPT09bnVsbHx8TT09PXZvaWQgMHx8KEI9TS5zbGljZSk9PT1udWxsfHxCPT09dm9pZCAwP3ZvaWQgMDpCLmNhbGwoTSwwLExlKTpVfSksTF19KX1yZXR1cm4gRnx8WX07cmV0dXJuIHBlKCgwLGcuanN4cykoInNwYW4iLHtjbGFzc05hbWU6eCgpKCQsdGUsIiIuY29uY2F0KCQsIi0iKS5jb25jYXQoKHY9KEU9YS5zaXplKSE9PW51bGwmJkUhPT12b2lkIDA/RTpTKSE9PW51bGwmJnYhPT12b2lkIDA/djoibWlkZGxlIiksKDAsdC5aKSgoMCx0LlopKCgwLHQuWikoKDAsdC5aKSh7fSwiIi5jb25jYXQoJCwiLWFjdGl2ZSIpLChBcnJheS5pc0FycmF5KEEpP0EubGVuZ3RoPjA6ISFBKXx8QT09PTApLCIiLmNvbmNhdCgkLCItZGlzYWJsZWQiKSxOKSwiIi5jb25jYXQoJCwiLWJvcmRlcmVkIiksSmUpLCIiLmNvbmNhdCgkLCItYWxsb3ctY2xlYXIiKSxFZSksc2UpLHN0eWxlOnplLHJlZjpTZSxvbkNsaWNrOmZ1bmN0aW9uKCl7dmFyIEY7YT09bnVsbHx8KEY9YS5vbkNsaWNrKT09PW51bGx8fEY9PT12b2lkIDB8fEYuY2FsbChhKX0sY2hpbGRyZW46W3llKHEsQSksKEF8fEE9PT0wKSYmRWUmJigwLGcuanN4KShuLlose3JvbGU6ImJ1dHRvbiIsdGl0bGU6RmUuZ2V0TWVzc2FnZSgiZm9ybS5saWdodEZpbHRlci5jbGVhciIsIlx1NkUwNVx1OTY2NCIpLGNsYXNzTmFtZTp4KCkoIiIuY29uY2F0KCQsIi1pY29uIiksdGUsIiIuY29uY2F0KCQsIi1jbG9zZSIpKSxvbkNsaWNrOmZ1bmN0aW9uKEYpe058fGs9PW51bGx8fGsoKSxGLnN0b3BQcm9wYWdhdGlvbigpfSxyZWY6YWV9KSxCZSE9PSExP0JlIT1udWxsP0JlOigwLGcuanN4KShyLlose2NsYXNzTmFtZTp4KCkoIiIuY29uY2F0KCQsIi1pY29uIiksdGUsIiIuY29uY2F0KCQsIi1hcnJvdyIpKX0pOm51bGxdfSkpfSxkPVAuZm9yd2FyZFJlZihUKX0sMTMzNjpmdW5jdGlvbihRLGgsZSl7InVzZSBzdHJpY3QiO2UuZChoLHtNOmZ1bmN0aW9uKCl7cmV0dXJuIFJ9fSk7dmFyIHQ9ZSgxNDEzKSxuPWUoNDk0Mikscj1lKDIxNTMyKSxjPWUoNTUyNDEpLHM9ZSg2NzI5NCksWj1lKDEwOTE1KSx4PWUoODM2MjIpLFA9ZSg5Mzk2NyksbT1lLm4oUCksST1lKDY0ODQ3KSxDPWZ1bmN0aW9uKHYpe3JldHVybigwLG4uWikoe30sdi5jb21wb25lbnRDbHMse2Rpc3BsYXk6ImZsZXgiLGp1c3RpZnlDb250ZW50OiJzcGFjZS1iZXR3ZWVuIixwYWRkaW5nQmxvY2s6OCxwYWRkaW5nSW5saW5lU3RhcnQ6OCxwYWRkaW5nSW5saW5lRW5kOjgsYm9yZGVyQmxvY2tTdGFydDoiMXB4IHNvbGlkICIuY29uY2F0KHYuY29sb3JTcGxpdCl9KX07ZnVuY3Rpb24gTyhEKXtyZXR1cm4oMCxJLlhqKSgiRHJvcGRvd25Gb290ZXIiLGZ1bmN0aW9uKHYpe3ZhciBFPSgwLHQuWikoKDAsdC5aKSh7fSx2KSx7fSx7Y29tcG9uZW50Q2xzOiIuIi5jb25jYXQoRCl9KTtyZXR1cm5bQyhFKV19KX12YXIgZz1lKDg1ODkzKSxUPWZ1bmN0aW9uKHYpe3ZhciBFPSgwLFouWUIpKCkscT12Lm9uQ2xlYXIsaz12Lm9uQ29uZmlybSxBPXYuZGlzYWJsZWQsTj12LmZvb3RlclJlbmRlcixuZT0oMCxzLnVzZUNvbnRleHQpKHIuWlAuQ29uZmlnQ29udGV4dCkseGU9bmUuZ2V0UHJlZml4Q2xzLFk9eGUoInByby1jb3JlLWRyb3Bkb3duLWZvb3RlciIpLHNlPU8oWSkscmU9c2Uud3JhcFNTUixKZT1zZS5oYXNoSWQsemU9WygwLGcuanN4KSh4LlpQLHtzdHlsZTp7dmlzaWJpbGl0eTpxPyJ2aXNpYmxlIjoiaGlkZGVuIn0sdHlwZToibGluayIsc2l6ZToic21hbGwiLGRpc2FibGVkOkEsb25DbGljazpmdW5jdGlvbihFZSl7cSYmcShFZSksRWUuc3RvcFByb3BhZ2F0aW9uKCl9LGNoaWxkcmVuOkUuZ2V0TWVzc2FnZSgiZm9ybS5saWdodEZpbHRlci5jbGVhciIsIlx1NkUwNVx1OTY2NCIpfSwiY2xlYXIiKSwoMCxnLmpzeCkoeC5aUCx7ImRhdGEtdHlwZSI6ImNvbmZpcm0iLHR5cGU6InByaW1hcnkiLHNpemU6InNtYWxsIixvbkNsaWNrOmssZGlzYWJsZWQ6QSxjaGlsZHJlbjpFLmdldE1lc3NhZ2UoImZvcm0ubGlnaHRGaWx0ZXIuY29uZmlybSIsIlx1Nzg2RVx1OEJBNCIpfSwiY29uZmlybSIpXTtpZihOPT09ITF8fChOPT1udWxsP3ZvaWQgMDpOKGsscSkpPT09ITEpcmV0dXJuIG51bGw7dmFyIEJlPShOPT1udWxsP3ZvaWQgMDpOKGsscSkpfHx6ZTtyZXR1cm4gcmUoKDAsZy5qc3gpKCJkaXYiLHtjbGFzc05hbWU6bSgpKFksSmUpLG9uQ2xpY2s6ZnVuY3Rpb24oRWUpe3JldHVybiBFZS50YXJnZXQuZ2V0QXR0cmlidXRlKCJkYXRhLXR5cGUiKSE9PSJjb25maXJtIiYmRWUuc3RvcFByb3BhZ2F0aW9uKCl9LGNoaWxkcmVuOkJlfSkpfSxkPWUoNzMxNzcpLHU9ZnVuY3Rpb24odil7cmV0dXJuKDAsbi5aKSgoMCxuLlopKCgwLG4uWikoe30sIiIuY29uY2F0KHYuY29tcG9uZW50Q2xzLCItbGFiZWwiKSx7Y3Vyc29yOiJwb2ludGVyIn0pLCIiLmNvbmNhdCh2LmNvbXBvbmVudENscywiLW92ZXJsYXkiKSx7bWluV2lkdGg6IjIwMHB4IixtYXJnaW5CbG9ja1N0YXJ0OiI0cHgifSksIiIuY29uY2F0KHYuY29tcG9uZW50Q2xzLCItY29udGVudCIpLHtwYWRkaW5nQmxvY2s6MTYscGFkZGluZ0lubGluZToxNn0pfTtmdW5jdGlvbiBhKEQpe3JldHVybigwLEkuWGopKCJGaWx0ZXJEcm9wZG93biIsZnVuY3Rpb24odil7dmFyIEU9KDAsdC5aKSgoMCx0LlopKHt9LHYpLHt9LHtjb21wb25lbnRDbHM6Ii4iLmNvbmNhdChEKX0pO3JldHVyblt1KEUpXX0pfXZhciBSPWZ1bmN0aW9uKHYpe3ZhciBFPXYuY2hpbGRyZW4scT12LmxhYmVsLGs9di5mb290ZXIsQT12Lm9wZW4sTj12Lm9uT3BlbkNoYW5nZSxuZT12LmRpc2FibGVkLHhlPXYub25WaXNpYmxlQ2hhbmdlLFk9di52aXNpYmxlLHNlPXYuZm9vdGVyUmVuZGVyLHJlPXYucGxhY2VtZW50LEplPSgwLHMudXNlQ29udGV4dCkoci5aUC5Db25maWdDb250ZXh0KSx6ZT1KZS5nZXRQcmVmaXhDbHMsQmU9emUoInByby1jb3JlLWZpZWxkLWRyb3Bkb3duIiksWWU9YShCZSksRWU9WWUud3JhcFNTUixVZT1ZZS5oYXNoSWQsTGU9KDAsZC5YKShBfHxZfHwhMSxOfHx4ZSkscD0oMCxzLnVzZVJlZikobnVsbCk7cmV0dXJuIEVlKCgwLGcuanN4KShjLlosKDAsdC5aKSgoMCx0LlopKHtwbGFjZW1lbnQ6cmUsdHJpZ2dlcjpbImNsaWNrIl19LExlKSx7fSx7b3ZlcmxheUlubmVyU3R5bGU6e3BhZGRpbmc6MH0sY29udGVudDooMCxnLmpzeHMpKCJkaXYiLHtyZWY6cCxjbGFzc05hbWU6bSgpKCIiLmNvbmNhdChCZSwiLW92ZXJsYXkiKSwoMCxuLlopKCgwLG4uWikoe30sIiIuY29uY2F0KEJlLCItb3ZlcmxheS0iKS5jb25jYXQocmUpLHJlKSwiaGFzaElkIixVZSkpLGNoaWxkcmVuOlsoMCxnLmpzeCkoci5aUCx7Z2V0UG9wdXBDb250YWluZXI6ZnVuY3Rpb24oKXtyZXR1cm4gcC5jdXJyZW50fHxkb2N1bWVudC5ib2R5fSxjaGlsZHJlbjooMCxnLmpzeCkoImRpdiIse2NsYXNzTmFtZToiIi5jb25jYXQoQmUsIi1jb250ZW50ICIpLmNvbmNhdChVZSkudHJpbSgpLGNoaWxkcmVuOkV9KX0pLGsmJigwLGcuanN4KShULCgwLHQuWikoe2Rpc2FibGVkOm5lLGZvb3RlclJlbmRlcjpzZX0saykpXX0pLGNoaWxkcmVuOigwLGcuanN4KSgic3BhbiIse2NsYXNzTmFtZToiIi5jb25jYXQoQmUsIi1sYWJlbCAiKS5jb25jYXQoVWUpLnRyaW0oKSxjaGlsZHJlbjpxfSl9KSkpfX0sMTI3OTU6ZnVuY3Rpb24oUSxoLGUpeyJ1c2Ugc3RyaWN0IjtlLmQoaCx7RzpmdW5jdGlvbigpe3JldHVybiBnfX0pO3ZhciB0PWUoMTQxMyksbj1lKDQ5NDIpLHI9ZSg0NTYwNSksYz1lKDIxNTMyKSxzPWUoODMwNjIpLFo9ZSg5Mzk2NykseD1lLm4oWiksUD1lKDY3Mjk0KSxtPWUoNjQ4NDcpLEk9ZnVuY3Rpb24oZCl7cmV0dXJuKDAsbi5aKSh7fSxkLmNvbXBvbmVudENscyx7ZGlzcGxheToiaW5saW5lLWZsZXgiLGFsaWduSXRlbXM6ImNlbnRlciIsbWF4V2lkdGg6IjEwMCUiLCImLWljb24iOntkaXNwbGF5OiJibG9jayIsbWFyZ2luSW5saW5lU3RhcnQ6IjRweCIsY3Vyc29yOiJwb2ludGVyIiwiJjpob3ZlciI6e2NvbG9yOmQuY29sb3JQcmltYXJ5fX0sIiYtdGl0bGUiOntkaXNwbGF5OiJpbmxpbmUtZmxleCIsZmxleDoiMSJ9LCImLXN1YnRpdGxlICI6e21hcmdpbklubGluZVN0YXJ0OjgsY29sb3I6ZC5jb2xvclRleHRTZWNvbmRhcnksZm9udFdlaWdodDoibm9ybWFsIixmb250U2l6ZTpkLmZvbnRTaXplLHdoaXRlU3BhY2U6Im5vd3JhcCJ9LCImLXRpdGxlLWVsbGlwc2lzIjp7b3ZlcmZsb3c6ImhpZGRlbiIsd2hpdGVTcGFjZToibm93cmFwIix0ZXh0T3ZlcmZsb3c6ImVsbGlwc2lzIix3b3JkQnJlYWs6ImtlZXAtYWxsIn19KX07ZnVuY3Rpb24gQyhUKXtyZXR1cm4oMCxtLlhqKSgiTGFiZWxJY29uVGlwIixmdW5jdGlvbihkKXt2YXIgdT0oMCx0LlopKCgwLHQuWikoe30sZCkse30se2NvbXBvbmVudENsczoiLiIuY29uY2F0KFQpfSk7cmV0dXJuW0kodSldfSl9dmFyIE89ZSg4NTg5MyksZz1QLm1lbW8oZnVuY3Rpb24oVCl7dmFyIGQ9VC5sYWJlbCx1PVQudG9vbHRpcCxhPVQuZWxsaXBzaXMsUj1ULnN1YlRpdGxlLEQ9KDAsUC51c2VDb250ZXh0KShjLlpQLkNvbmZpZ0NvbnRleHQpLHY9RC5nZXRQcmVmaXhDbHMsRT12KCJwcm8tY29yZS1sYWJlbC10aXAiKSxxPUMoRSksaz1xLndyYXBTU1IsQT1xLmhhc2hJZDtpZighdSYmIVIpcmV0dXJuKDAsTy5qc3gpKE8uRnJhZ21lbnQse2NoaWxkcmVuOmR9KTt2YXIgTj10eXBlb2YgdT09InN0cmluZyJ8fFAuaXNWYWxpZEVsZW1lbnQodSk/e3RpdGxlOnV9OnUsbmU9KE49PW51bGw/dm9pZCAwOk4uaWNvbil8fCgwLE8uanN4KShyLlose30pO3JldHVybiBrKCgwLE8uanN4cykoImRpdiIse2NsYXNzTmFtZTp4KCkoRSxBKSxvbk1vdXNlRG93bjpmdW5jdGlvbihZKXtyZXR1cm4gWS5zdG9wUHJvcGFnYXRpb24oKX0sb25Nb3VzZUxlYXZlOmZ1bmN0aW9uKFkpe3JldHVybiBZLnN0b3BQcm9wYWdhdGlvbigpfSxvbk1vdXNlTW92ZTpmdW5jdGlvbihZKXtyZXR1cm4gWS5zdG9wUHJvcGFnYXRpb24oKX0sY2hpbGRyZW46WygwLE8uanN4KSgiZGl2Iix7Y2xhc3NOYW1lOngoKSgiIi5jb25jYXQoRSwiLXRpdGxlIiksQSwoMCxuLlopKHt9LCIiLmNvbmNhdChFLCItdGl0bGUtZWxsaXBzaXMiKSxhKSksY2hpbGRyZW46ZH0pLFImJigwLE8uanN4KSgiZGl2Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdChFLCItc3VidGl0bGUgIikuY29uY2F0KEEpLnRyaW0oKSxjaGlsZHJlbjpSfSksdSYmKDAsTy5qc3gpKHMuWiwoMCx0LlopKCgwLHQuWikoe30sTikse30se2NoaWxkcmVuOigwLE8uanN4KSgic3BhbiIse2NsYXNzTmFtZToiIi5jb25jYXQoRSwiLWljb24gIikuY29uY2F0KEEpLnRyaW0oKSxjaGlsZHJlbjpuZX0pfSkpXX0pKX0pfSw0MTAzNjpmdW5jdGlvbihRLGgsZSl7InVzZSBzdHJpY3QiO2UuZChoLHtKOmZ1bmN0aW9uKCl7cmV0dXJuIG59fSk7dmFyIHQ9ZSg2NzI5NCksbj10LmNyZWF0ZUNvbnRleHQoe30pfSwyMzMxMjpmdW5jdGlvbihRLGgsZSl7InVzZSBzdHJpY3QiO2UuZChoLHtDbDpmdW5jdGlvbigpe3JldHVybiBQfSxscDpmdW5jdGlvbigpe3JldHVybiBnfX0pO3ZhciB0PWUoNzEwMDIpLG49ZSgyNzQ4NCkscj1lLm4obiksYz1lKDk2NjcxKSxzPWUubihjKSxaPWUoODgzMDYpLHg9ZSg3NDc2Myk7cigpLmV4dGVuZChzKCkpO3ZhciBQPXt0aW1lOiJISDptbTpzcyIsdGltZVJhbmdlOiJISDptbTpzcyIsZGF0ZToiWVlZWS1NTS1ERCIsZGF0ZVdlZWs6IllZWVktd28iLGRhdGVNb250aDoiWVlZWS1NTSIsZGF0ZVF1YXJ0ZXI6IllZWVktW1FdUSIsZGF0ZVllYXI6IllZWVkiLGRhdGVSYW5nZToiWVlZWS1NTS1ERCIsZGF0ZVRpbWU6IllZWVktTU0tREQgSEg6bW06c3MiLGRhdGVUaW1lUmFuZ2U6IllZWVktTU0tREQgSEg6bW06c3MifTtmdW5jdGlvbiBtKFQpe3JldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoVCk9PT0iW29iamVjdCBPYmplY3RdIn1mdW5jdGlvbiBJKFQpe2lmKG0oVCk9PT0hMSlyZXR1cm4hMTt2YXIgZD1ULmNvbnN0cnVjdG9yO2lmKGQ9PT12b2lkIDApcmV0dXJuITA7dmFyIHU9ZC5wcm90b3R5cGU7cmV0dXJuIShtKHUpPT09ITF8fHUuaGFzT3duUHJvcGVydHkoImlzUHJvdG90eXBlT2YiKT09PSExKX12YXIgQz1mdW5jdGlvbihkKXtyZXR1cm4hIShkIT1udWxsJiZkLl9pc0FNb21lbnRPYmplY3QpfSxPPWZ1bmN0aW9uKGQsdSxhKXtpZighdSlyZXR1cm4gZDtpZihyKCkuaXNEYXlqcyhkKXx8QyhkKSl7aWYodT09PSJudW1iZXIiKXJldHVybiBkLnZhbHVlT2YoKTtpZih1PT09InN0cmluZyIpcmV0dXJuIGQuZm9ybWF0KFBbYV18fCJZWVlZLU1NLUREIEhIOm1tOnNzIik7aWYodHlwZW9mIHU9PSJzdHJpbmciJiZ1IT09InN0cmluZyIpcmV0dXJuIGQuZm9ybWF0KHUpO2lmKHR5cGVvZiB1PT0iZnVuY3Rpb24iKXJldHVybiB1KGQsYSl9cmV0dXJuIGR9LGc9ZnVuY3Rpb24gVChkLHUsYSxSLEQpe3ZhciB2PXt9O3JldHVybiB0eXBlb2Ygd2luZG93PT0idW5kZWZpbmVkInx8KDAsdC5aKShkKSE9PSJvYmplY3QifHwoMCx4LmspKGQpfHxkIGluc3RhbmNlb2YgQmxvYnx8QXJyYXkuaXNBcnJheShkKT9kOihPYmplY3Qua2V5cyhkKS5mb3JFYWNoKGZ1bmN0aW9uKEUpe3ZhciBxPUQ/W0QsRV0uZmxhdCgxKTpbRV0saz0oMCxaLlopKGEscSl8fCJ0ZXh0IixBPSJ0ZXh0IixOO3R5cGVvZiBrPT0ic3RyaW5nIj9BPWs6ayYmKEE9ay52YWx1ZVR5cGUsTj1rLmRhdGVGb3JtYXQpO3ZhciBuZT1kW0VdO2lmKCEoKDAseC5rKShuZSkmJlIpKXtpZihJKG5lKSYmIUFycmF5LmlzQXJyYXkobmUpJiYhcigpLmlzRGF5anMobmUpJiYhQyhuZSkpe3ZbRV09VChuZSx1LGEsUixxKTtyZXR1cm59aWYoQXJyYXkuaXNBcnJheShuZSkpe3ZbRV09bmUubWFwKGZ1bmN0aW9uKHhlLFkpe3JldHVybiByKCkuaXNEYXlqcyh4ZSl8fEMoeGUpP08oeGUsTnx8dSxBKTpUKHhlLHUsYSxSLFtFLCIiLmNvbmNhdChZKV0uZmxhdCgxKSl9KTtyZXR1cm59dltFXT1PKG5lLE58fHUsQSl9fSksdil9fSw4NjE5MDpmdW5jdGlvbihRLGgsZSl7InVzZSBzdHJpY3QiO2UuZChoLHtjOmZ1bmN0aW9uKCl7cmV0dXJuIFp9fSk7dmFyIHQ9ZSg3MTAwMiksbj1lKDk3Njg1KSxyPWUoMjc0ODQpLGM9ZS5uKHIpLHM9ZnVuY3Rpb24oUCxtKXtyZXR1cm4gdHlwZW9mIG09PSJmdW5jdGlvbiI/bShjKCkoUCkpOmMoKShQKS5mb3JtYXQobSl9LFo9ZnVuY3Rpb24oUCxtKXt2YXIgST1BcnJheS5pc0FycmF5KFApP1A6W10sQz0oMCxuLlopKEksMiksTz1DWzBdLGc9Q1sxXSxULGQ7QXJyYXkuaXNBcnJheShtKT8oVD1tWzBdLGQ9bVsxXSk6KDAsdC5aKShtKT09PSJvYmplY3QiJiZtLnR5cGU9PT0ibWFzayI/KFQ9bS5mb3JtYXQsZD1tLmZvcm1hdCk6KFQ9bSxkPW0pO3ZhciB1PU8/cyhPLFQpOiIiLGE9Zz9zKGcsZCk6IiIsUj11JiZhPyIiLmNvbmNhdCh1LCIgfiAiKS5jb25jYXQoYSk6IiI7cmV0dXJuIFJ9fSwxMDE3ODpmdW5jdGlvbihRLGgsZSl7InVzZSBzdHJpY3QiO2UuZChoLHtEOmZ1bmN0aW9uKCl7cmV0dXJuIHN9fSk7dmFyIHQ9ZSg3NDE2NSksbj1lKDE1ODYxKSxyPWUoNjcyOTQpLGM9ZSg0ODE3MSk7ZnVuY3Rpb24gcyhaLHgpe3ZhciBQPSgwLGMuSikoWiksbT0oMCxyLnVzZVJlZikoKSxJPSgwLHIudXNlQ2FsbGJhY2spKGZ1bmN0aW9uKCl7bS5jdXJyZW50JiYoY2xlYXJUaW1lb3V0KG0uY3VycmVudCksbS5jdXJyZW50PW51bGwpfSxbXSksQz0oMCxyLnVzZUNhbGxiYWNrKSgoMCxuLlopKCgwLHQuWikoKS5tYXJrKGZ1bmN0aW9uIE8oKXt2YXIgZyxULGQsdT1hcmd1bWVudHM7cmV0dXJuKDAsdC5aKSgpLndyYXAoZnVuY3Rpb24oUil7Zm9yKDs7KXN3aXRjaChSLnByZXY9Ui5uZXh0KXtjYXNlIDA6Zm9yKGc9dS5sZW5ndGgsVD1uZXcgQXJyYXkoZyksZD0wO2Q8ZztkKyspVFtkXT11W2RdO2lmKCEoeD09PTB8fHg9PT12b2lkIDApKXtSLm5leHQ9MzticmVha31yZXR1cm4gUi5hYnJ1cHQoInJldHVybiIsUC5hcHBseSh2b2lkIDAsVCkpO2Nhc2UgMzpyZXR1cm4gSSgpLFIuYWJydXB0KCJyZXR1cm4iLG5ldyBQcm9taXNlKGZ1bmN0aW9uKEQpe20uY3VycmVudD1zZXRUaW1lb3V0KCgwLG4uWikoKDAsdC5aKSgpLm1hcmsoZnVuY3Rpb24gdigpe3JldHVybigwLHQuWikoKS53cmFwKGZ1bmN0aW9uKHEpe2Zvcig7Oylzd2l0Y2gocS5wcmV2PXEubmV4dCl7Y2FzZSAwOnJldHVybiBxLnQwPUQscS5uZXh0PTMsUC5hcHBseSh2b2lkIDAsVCk7Y2FzZSAzOnJldHVybiBxLnQxPXEuc2VudCwoMCxxLnQwKShxLnQxKSxxLmFicnVwdCgicmV0dXJuIik7Y2FzZSA2OmNhc2UiZW5kIjpyZXR1cm4gcS5zdG9wKCl9fSx2KX0pKSx4KX0pKTtjYXNlIDU6Y2FzZSJlbmQiOnJldHVybiBSLnN0b3AoKX19LE8pfSkpLFtQLEkseF0pO3JldHVybigwLHIudXNlRWZmZWN0KShmdW5jdGlvbigpe3JldHVybiBJfSxbSV0pLHtydW46QyxjYW5jZWw6SX19fSwyNzA2ODpmdW5jdGlvbihRLGgsZSl7InVzZSBzdHJpY3QiO2UuZChoLHtBdTpmdW5jdGlvbigpe3JldHVybiBtfSxLVzpmdW5jdGlvbigpe3JldHVybiBQfSxVZjpmdW5jdGlvbigpe3JldHVybiB4fX0pO3ZhciB0PWUoNzQxNjUpLG49ZSgxNTg2MSkscj1lKDY3Mjk0KSxjPWUoNjAyNDkpLHM9ZSgxMDE3OCksWj1mdW5jdGlvbihDLE8sZyl7cmV0dXJuKDAsYy5BKShDLE8sZyl9O2Z1bmN0aW9uIHgoSSxDKXt2YXIgTz0oMCxyLnVzZVJlZikoKTtyZXR1cm4gWihJLE8uY3VycmVudCxDKXx8KE8uY3VycmVudD1JKSxPLmN1cnJlbnR9ZnVuY3Rpb24gUChJLEMsTyl7KDAsci51c2VFZmZlY3QpKEkseChDfHxbXSxPKSl9ZnVuY3Rpb24gbShJLEMsTyxnKXt2YXIgVD0oMCxzLkQpKCgwLG4uWikoKDAsdC5aKSgpLm1hcmsoZnVuY3Rpb24gZCgpe3JldHVybigwLHQuWikoKS53cmFwKGZ1bmN0aW9uKGEpe2Zvcig7Oylzd2l0Y2goYS5wcmV2PWEubmV4dCl7Y2FzZSAwOkkoKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBhLnN0b3AoKX19LGQpfSkpLGd8fDE2KTsoMCxyLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtULnJ1bigpfSx4KEN8fFtdLE8pKX19LDc0MTM4OmZ1bmN0aW9uKFEsaCxlKXsidXNlIHN0cmljdCI7dmFyIHQ9ZSg2NzI5NCksbj1lKDI3MDY4KTtmdW5jdGlvbiByKGMscyl7cmV0dXJuIHQudXNlTWVtbyhjLCgwLG4uVWYpKHMpKX1oLlo9cn0sMjYzNjk6ZnVuY3Rpb24oUSxoLGUpeyJ1c2Ugc3RyaWN0IjtlLmQoaCx7RDpmdW5jdGlvbigpe3JldHVybiBufX0pO3ZhciB0PWUoNjcyOTQpLG49ZnVuY3Rpb24oYyl7dmFyIHM9KDAsdC51c2VSZWYpKCk7cmV0dXJuKDAsdC51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7cy5jdXJyZW50PWN9KSxzLmN1cnJlbnR9fSw0ODE3MTpmdW5jdGlvbihRLGgsZSl7InVzZSBzdHJpY3QiO2UuZChoLHtKOmZ1bmN0aW9uKCl7cmV0dXJuIHJ9fSk7dmFyIHQ9ZSg3NDkwMiksbj1lKDY3Mjk0KSxyPWZ1bmN0aW9uKHMpe3ZhciBaPSgwLG4udXNlUmVmKShudWxsKTtyZXR1cm4gWi5jdXJyZW50PXMsKDAsbi51c2VDYWxsYmFjaykoZnVuY3Rpb24oKXtmb3IodmFyIHgsUD1hcmd1bWVudHMubGVuZ3RoLG09bmV3IEFycmF5KFApLEk9MDtJPFA7SSsrKW1bSV09YXJndW1lbnRzW0ldO3JldHVybih4PVouY3VycmVudCk9PT1udWxsfHx4PT09dm9pZCAwP3ZvaWQgMDp4LmNhbGwuYXBwbHkoeCxbWl0uY29uY2F0KCgwLHQuWikobSkpKX0sW10pfX0sNjAyNDk6ZnVuY3Rpb24oUSxoLGUpeyJ1c2Ugc3RyaWN0IjtlLmQoaCx7QTpmdW5jdGlvbigpe3JldHVybiByfX0pO3ZhciB0PWUoMzc3NjIpLG49ZSg3MTAwMik7ZnVuY3Rpb24gcihjLHMsWix4KXtpZihjPT09cylyZXR1cm4hMDtpZihjJiZzJiYoMCxuLlopKGMpPT09Im9iamVjdCImJigwLG4uWikocyk9PT0ib2JqZWN0Iil7aWYoYy5jb25zdHJ1Y3RvciE9PXMuY29uc3RydWN0b3IpcmV0dXJuITE7dmFyIFAsbSxJO2lmKEFycmF5LmlzQXJyYXkoYykpe2lmKFA9Yy5sZW5ndGgsUCE9cy5sZW5ndGgpcmV0dXJuITE7Zm9yKG09UDttLS0hPT0wOylpZighcihjW21dLHNbbV0sWix4KSlyZXR1cm4hMTtyZXR1cm4hMH1pZihjIGluc3RhbmNlb2YgTWFwJiZzIGluc3RhbmNlb2YgTWFwKXtpZihjLnNpemUhPT1zLnNpemUpcmV0dXJuITE7dmFyIEM9KDAsdC5aKShjLmVudHJpZXMoKSksTzt0cnl7Zm9yKEMucygpOyEoTz1DLm4oKSkuZG9uZTspaWYobT1PLnZhbHVlLCFzLmhhcyhtWzBdKSlyZXR1cm4hMX1jYXRjaChSKXtDLmUoUil9ZmluYWxseXtDLmYoKX12YXIgZz0oMCx0LlopKGMuZW50cmllcygpKSxUO3RyeXtmb3IoZy5zKCk7IShUPWcubigpKS5kb25lOylpZihtPVQudmFsdWUsIXIobVsxXSxzLmdldChtWzBdKSxaLHgpKXJldHVybiExfWNhdGNoKFIpe2cuZShSKX1maW5hbGx5e2cuZigpfXJldHVybiEwfWlmKGMgaW5zdGFuY2VvZiBTZXQmJnMgaW5zdGFuY2VvZiBTZXQpe2lmKGMuc2l6ZSE9PXMuc2l6ZSlyZXR1cm4hMTt2YXIgZD0oMCx0LlopKGMuZW50cmllcygpKSx1O3RyeXtmb3IoZC5zKCk7ISh1PWQubigpKS5kb25lOylpZihtPXUudmFsdWUsIXMuaGFzKG1bMF0pKXJldHVybiExfWNhdGNoKFIpe2QuZShSKX1maW5hbGx5e2QuZigpfXJldHVybiEwfWlmKEFycmF5QnVmZmVyLmlzVmlldyhjKSYmQXJyYXlCdWZmZXIuaXNWaWV3KHMpKXtpZihQPWMubGVuZ3RoLFAhPXMubGVuZ3RoKXJldHVybiExO2ZvcihtPVA7bS0tIT09MDspaWYoY1ttXSE9PXNbbV0pcmV0dXJuITE7cmV0dXJuITB9aWYoYy5jb25zdHJ1Y3Rvcj09PVJlZ0V4cClyZXR1cm4gYy5zb3VyY2U9PT1zLnNvdXJjZSYmYy5mbGFncz09PXMuZmxhZ3M7aWYoYy52YWx1ZU9mIT09T2JqZWN0LnByb3RvdHlwZS52YWx1ZU9mJiZjLnZhbHVlT2YpcmV0dXJuIGMudmFsdWVPZigpPT09cy52YWx1ZU9mKCk7aWYoYy50b1N0cmluZyE9PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcmJmMudG9TdHJpbmcpcmV0dXJuIGMudG9TdHJpbmcoKT09PXMudG9TdHJpbmcoKTtpZihJPU9iamVjdC5rZXlzKGMpLFA9SS5sZW5ndGgsUCE9PU9iamVjdC5rZXlzKHMpLmxlbmd0aClyZXR1cm4hMTtmb3IobT1QO20tLSE9PTA7KWlmKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocyxJW21dKSlyZXR1cm4hMTtmb3IobT1QO20tLSE9PTA7KXt2YXIgYT1JW21dO2lmKCEoWiE9bnVsbCYmWi5pbmNsdWRlcyhhKSkmJiEoYT09PSJfb3duZXIiJiZjLiQkdHlwZW9mKSYmIXIoY1thXSxzW2FdLFoseCkpcmV0dXJuIHgmJmNvbnNvbGUubG9nKGEpLCExfXJldHVybiEwfXJldHVybiBjIT09YyYmcyE9PXN9fSw3NDc2MzpmdW5jdGlvbihRLGgsZSl7InVzZSBzdHJpY3QiO2UuZChoLHtrOmZ1bmN0aW9uKCl7cmV0dXJuIHR9fSk7dmFyIHQ9ZnVuY3Rpb24ocil7cmV0dXJuIHI9PW51bGx9fSw3NTY2MTpmdW5jdGlvbihRLGgsZSl7InVzZSBzdHJpY3QiO2UuZChoLHt4OmZ1bmN0aW9uKCl7cmV0dXJuIHJ9fSk7dmFyIHQ9MCxuPWZ1bmN0aW9uKCl7dmFyIHM9YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT12b2lkIDA/YXJndW1lbnRzWzBdOjIxO2lmKHR5cGVvZiB3aW5kb3c9PSJ1bmRlZmluZWQifHwhd2luZG93LmNyeXB0bylyZXR1cm4odCs9MSkudG9GaXhlZCgwKTtmb3IodmFyIFo9IiIseD1jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKG5ldyBVaW50OEFycmF5KHMpKTtzLS07KXt2YXIgUD02MyZ4W3NdO1orPVA8MzY/UC50b1N0cmluZygzNik6UDw2Mj8oUC0yNikudG9TdHJpbmcoMzYpLnRvVXBwZXJDYXNlKCk6UDw2Mz8iXyI6Ii0ifXJldHVybiBafSxyPWZ1bmN0aW9uKCl7cmV0dXJuIHR5cGVvZiB3aW5kb3c9PSJ1bmRlZmluZWQiP24oKTp3aW5kb3cuY3J5cHRvJiZ3aW5kb3cuY3J5cHRvLnJhbmRvbVVVSUQmJnR5cGVvZiBjcnlwdG8ucmFuZG9tVVVJRD09ImZ1bmN0aW9uIj9jcnlwdG8ucmFuZG9tVVVJRCgpOm4oKX19LDIyMjcwOmZ1bmN0aW9uKFEsaCxlKXsidXNlIHN0cmljdCI7ZS5kKGgse2g6ZnVuY3Rpb24oKXtyZXR1cm4gdH19KTtmdW5jdGlvbiB0KG4pe2lmKHR5cGVvZiBuPT0iZnVuY3Rpb24iKXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aCxjPW5ldyBBcnJheShyPjE/ci0xOjApLHM9MTtzPHI7cysrKWNbcy0xXT1hcmd1bWVudHNbc107cmV0dXJuIG4uYXBwbHkodm9pZCAwLGMpfXJldHVybiBufX0sOTY2NzE6ZnVuY3Rpb24oUSl7KGZ1bmN0aW9uKGgsZSl7US5leHBvcnRzPWUoKX0pKHRoaXMsZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIGg9Im1vbnRoIixlPSJxdWFydGVyIjtyZXR1cm4gZnVuY3Rpb24odCxuKXt2YXIgcj1uLnByb3RvdHlwZTtyLnF1YXJ0ZXI9ZnVuY3Rpb24oWil7cmV0dXJuIHRoaXMuJHV0aWxzKCkudShaKT9NYXRoLmNlaWwoKHRoaXMubW9udGgoKSsxKS8zKTp0aGlzLm1vbnRoKHRoaXMubW9udGgoKSUzKzMqKFotMSkpfTt2YXIgYz1yLmFkZDtyLmFkZD1mdW5jdGlvbihaLHgpe3JldHVybiBaPU51bWJlcihaKSx0aGlzLiR1dGlscygpLnAoeCk9PT1lP3RoaXMuYWRkKDMqWixoKTpjLmJpbmQodGhpcykoWix4KX07dmFyIHM9ci5zdGFydE9mO3Iuc3RhcnRPZj1mdW5jdGlvbihaLHgpe3ZhciBQPXRoaXMuJHV0aWxzKCksbT0hIVAudSh4KXx8eDtpZihQLnAoWik9PT1lKXt2YXIgST10aGlzLnF1YXJ0ZXIoKS0xO3JldHVybiBtP3RoaXMubW9udGgoMypJKS5zdGFydE9mKGgpLnN0YXJ0T2YoImRheSIpOnRoaXMubW9udGgoMypJKzIpLmVuZE9mKGgpLmVuZE9mKCJkYXkiKX1yZXR1cm4gcy5iaW5kKHRoaXMpKFoseCl9fX0pfSwzNzc2MjpmdW5jdGlvbihRLGgsZSl7InVzZSBzdHJpY3QiO2UuZChoLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIG59fSk7dmFyIHQ9ZSg0MDE4MSk7ZnVuY3Rpb24gbihyLGMpe3ZhciBzPXR5cGVvZiBTeW1ib2whPSJ1bmRlZmluZWQiJiZyW1N5bWJvbC5pdGVyYXRvcl18fHJbIkBAaXRlcmF0b3IiXTtpZighcyl7aWYoQXJyYXkuaXNBcnJheShyKXx8KHM9KDAsdC5aKShyKSl8fGMmJnImJnR5cGVvZiByLmxlbmd0aD09Im51bWJlciIpe3MmJihyPXMpO3ZhciBaPTAseD1mdW5jdGlvbigpe307cmV0dXJue3M6eCxuOmZ1bmN0aW9uKCl7cmV0dXJuIFo+PXIubGVuZ3RoP3tkb25lOiEwfTp7ZG9uZTohMSx2YWx1ZTpyW1orK119fSxlOmZ1bmN0aW9uKE8pe3Rocm93IE99LGY6eH19dGhyb3cgbmV3IFR5cGVFcnJvcihgSW52YWxpZCBhdHRlbXB0IHRvIGl0ZXJhdGUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLgorSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLmApfXZhciBQLG09ITAsST0hMTtyZXR1cm57czpmdW5jdGlvbigpe3M9cy5jYWxsKHIpfSxuOmZ1bmN0aW9uKCl7dmFyIE89cy5uZXh0KCk7cmV0dXJuIG09Ty5kb25lLE99LGU6ZnVuY3Rpb24oTyl7ST0hMCxQPU99LGY6ZnVuY3Rpb24oKXt0cnl7bXx8cy5yZXR1cm49PW51bGx8fHMucmV0dXJuKCl9ZmluYWxseXtpZihJKXRocm93IFB9fX19fSw2NzMwODpmdW5jdGlvbihRLGgsZSl7InVzZSBzdHJpY3QiO2UuZChoLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGF9fSk7ZnVuY3Rpb24gdCgpe3RoaXMuX19kYXRhX189W10sdGhpcy5zaXplPTB9dmFyIG49dCxyPWUoNzk2NTEpO2Z1bmN0aW9uIGMoUixEKXtmb3IodmFyIHY9Ui5sZW5ndGg7di0tOylpZigoMCxyLlopKFJbdl1bMF0sRCkpcmV0dXJuIHY7cmV0dXJuLTF9dmFyIHM9YyxaPUFycmF5LnByb3RvdHlwZSx4PVouc3BsaWNlO2Z1bmN0aW9uIFAoUil7dmFyIEQ9dGhpcy5fX2RhdGFfXyx2PXMoRCxSKTtpZih2PDApcmV0dXJuITE7dmFyIEU9RC5sZW5ndGgtMTtyZXR1cm4gdj09RT9ELnBvcCgpOnguY2FsbChELHYsMSksLS10aGlzLnNpemUsITB9dmFyIG09UDtmdW5jdGlvbiBJKFIpe3ZhciBEPXRoaXMuX19kYXRhX18sdj1zKEQsUik7cmV0dXJuIHY8MD92b2lkIDA6RFt2XVsxXX12YXIgQz1JO2Z1bmN0aW9uIE8oUil7cmV0dXJuIHModGhpcy5fX2RhdGFfXyxSKT4tMX12YXIgZz1PO2Z1bmN0aW9uIFQoUixEKXt2YXIgdj10aGlzLl9fZGF0YV9fLEU9cyh2LFIpO3JldHVybiBFPDA/KCsrdGhpcy5zaXplLHYucHVzaChbUixEXSkpOnZbRV1bMV09RCx0aGlzfXZhciBkPVQ7ZnVuY3Rpb24gdShSKXt2YXIgRD0tMSx2PVI9PW51bGw/MDpSLmxlbmd0aDtmb3IodGhpcy5jbGVhcigpOysrRDx2Oyl7dmFyIEU9UltEXTt0aGlzLnNldChFWzBdLEVbMV0pfX11LnByb3RvdHlwZS5jbGVhcj1uLHUucHJvdG90eXBlLmRlbGV0ZT1tLHUucHJvdG90eXBlLmdldD1DLHUucHJvdG90eXBlLmhhcz1nLHUucHJvdG90eXBlLnNldD1kO3ZhciBhPXV9LDg2MTgzOmZ1bmN0aW9uKFEsaCxlKXsidXNlIHN0cmljdCI7dmFyIHQ9ZSg2MjUwOCksbj1lKDY2MDkyKSxyPSgwLHQuWikobi5aLCJNYXAiKTtoLlo9cn0sMzc4MzQ6ZnVuY3Rpb24oUSxoLGUpeyJ1c2Ugc3RyaWN0IjtlLmQoaCx7WjpmdW5jdGlvbigpe3JldHVybiBkZX19KTt2YXIgdD1lKDYyNTA4KSxuPSgwLHQuWikoT2JqZWN0LCJjcmVhdGUiKSxyPW47ZnVuY3Rpb24gYygpe3RoaXMuX19kYXRhX189cj9yKG51bGwpOnt9LHRoaXMuc2l6ZT0wfXZhciBzPWM7ZnVuY3Rpb24gWihTKXt2YXIgbz10aGlzLmhhcyhTKSYmZGVsZXRlIHRoaXMuX19kYXRhX19bU107cmV0dXJuIHRoaXMuc2l6ZS09bz8xOjAsb312YXIgeD1aLFA9Il9fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18iLG09T2JqZWN0LnByb3RvdHlwZSxJPW0uaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gQyhTKXt2YXIgbz10aGlzLl9fZGF0YV9fO2lmKHIpe3ZhciBpPW9bU107cmV0dXJuIGk9PT1QP3ZvaWQgMDppfXJldHVybiBJLmNhbGwobyxTKT9vW1NdOnZvaWQgMH12YXIgTz1DLGc9T2JqZWN0LnByb3RvdHlwZSxUPWcuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gZChTKXt2YXIgbz10aGlzLl9fZGF0YV9fO3JldHVybiByP29bU10hPT12b2lkIDA6VC5jYWxsKG8sUyl9dmFyIHU9ZCxhPSJfX2xvZGFzaF9oYXNoX3VuZGVmaW5lZF9fIjtmdW5jdGlvbiBSKFMsbyl7dmFyIGk9dGhpcy5fX2RhdGFfXztyZXR1cm4gdGhpcy5zaXplKz10aGlzLmhhcyhTKT8wOjEsaVtTXT1yJiZvPT09dm9pZCAwP2E6byx0aGlzfXZhciBEPVI7ZnVuY3Rpb24gdihTKXt2YXIgbz0tMSxpPVM9PW51bGw/MDpTLmxlbmd0aDtmb3IodGhpcy5jbGVhcigpOysrbzxpOyl7dmFyICQ9U1tvXTt0aGlzLnNldCgkWzBdLCRbMV0pfX12LnByb3RvdHlwZS5jbGVhcj1zLHYucHJvdG90eXBlLmRlbGV0ZT14LHYucHJvdG90eXBlLmdldD1PLHYucHJvdG90eXBlLmhhcz11LHYucHJvdG90eXBlLnNldD1EO3ZhciBFPXYscT1lKDY3MzA4KSxrPWUoODYxODMpO2Z1bmN0aW9uIEEoKXt0aGlzLnNpemU9MCx0aGlzLl9fZGF0YV9fPXtoYXNoOm5ldyBFLG1hcDpuZXcoay5afHxxLlopLHN0cmluZzpuZXcgRX19dmFyIE49QTtmdW5jdGlvbiBuZShTKXt2YXIgbz10eXBlb2YgUztyZXR1cm4gbz09InN0cmluZyJ8fG89PSJudW1iZXIifHxvPT0ic3ltYm9sInx8bz09ImJvb2xlYW4iP1MhPT0iX19wcm90b19fIjpTPT09bnVsbH12YXIgeGU9bmU7ZnVuY3Rpb24gWShTLG8pe3ZhciBpPVMuX19kYXRhX187cmV0dXJuIHhlKG8pP2lbdHlwZW9mIG89PSJzdHJpbmciPyJzdHJpbmciOiJoYXNoIl06aS5tYXB9dmFyIHNlPVk7ZnVuY3Rpb24gcmUoUyl7dmFyIG89c2UodGhpcyxTKS5kZWxldGUoUyk7cmV0dXJuIHRoaXMuc2l6ZS09bz8xOjAsb312YXIgSmU9cmU7ZnVuY3Rpb24gemUoUyl7cmV0dXJuIHNlKHRoaXMsUykuZ2V0KFMpfXZhciBCZT16ZTtmdW5jdGlvbiBZZShTKXtyZXR1cm4gc2UodGhpcyxTKS5oYXMoUyl9dmFyIEVlPVllO2Z1bmN0aW9uIFVlKFMsbyl7dmFyIGk9c2UodGhpcyxTKSwkPWkuc2l6ZTtyZXR1cm4gaS5zZXQoUyxvKSx0aGlzLnNpemUrPWkuc2l6ZT09JD8wOjEsdGhpc312YXIgTGU9VWU7ZnVuY3Rpb24gcChTKXt2YXIgbz0tMSxpPVM9PW51bGw/MDpTLmxlbmd0aDtmb3IodGhpcy5jbGVhcigpOysrbzxpOyl7dmFyICQ9U1tvXTt0aGlzLnNldCgkWzBdLCRbMV0pfX1wLnByb3RvdHlwZS5jbGVhcj1OLHAucHJvdG90eXBlLmRlbGV0ZT1KZSxwLnByb3RvdHlwZS5nZXQ9QmUscC5wcm90b3R5cGUuaGFzPUVlLHAucHJvdG90eXBlLnNldD1MZTt2YXIgZGU9cH0sMzE2Njc6ZnVuY3Rpb24oUSxoLGUpeyJ1c2Ugc3RyaWN0IjtlLmQoaCx7WjpmdW5jdGlvbigpe3JldHVybiB1fX0pO3ZhciB0PWUoNjczMDgpO2Z1bmN0aW9uIG4oKXt0aGlzLl9fZGF0YV9fPW5ldyB0LlosdGhpcy5zaXplPTB9dmFyIHI9bjtmdW5jdGlvbiBjKGEpe3ZhciBSPXRoaXMuX19kYXRhX18sRD1SLmRlbGV0ZShhKTtyZXR1cm4gdGhpcy5zaXplPVIuc2l6ZSxEfXZhciBzPWM7ZnVuY3Rpb24gWihhKXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5nZXQoYSl9dmFyIHg9WjtmdW5jdGlvbiBQKGEpe3JldHVybiB0aGlzLl9fZGF0YV9fLmhhcyhhKX12YXIgbT1QLEk9ZSg4NjE4MyksQz1lKDM3ODM0KSxPPTIwMDtmdW5jdGlvbiBnKGEsUil7dmFyIEQ9dGhpcy5fX2RhdGFfXztpZihEIGluc3RhbmNlb2YgdC5aKXt2YXIgdj1ELl9fZGF0YV9fO2lmKCFJLlp8fHYubGVuZ3RoPE8tMSlyZXR1cm4gdi5wdXNoKFthLFJdKSx0aGlzLnNpemU9KytELnNpemUsdGhpcztEPXRoaXMuX19kYXRhX189bmV3IEMuWih2KX1yZXR1cm4gRC5zZXQoYSxSKSx0aGlzLnNpemU9RC5zaXplLHRoaXN9dmFyIFQ9ZztmdW5jdGlvbiBkKGEpe3ZhciBSPXRoaXMuX19kYXRhX189bmV3IHQuWihhKTt0aGlzLnNpemU9Ui5zaXplfWQucHJvdG90eXBlLmNsZWFyPXIsZC5wcm90b3R5cGUuZGVsZXRlPXMsZC5wcm90b3R5cGUuZ2V0PXgsZC5wcm90b3R5cGUuaGFzPW0sZC5wcm90b3R5cGUuc2V0PVQ7dmFyIHU9ZH0sMTc2ODU6ZnVuY3Rpb24oUSxoLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgdD1lKDY2MDkyKSxuPXQuWi5TeW1ib2w7aC5aPW59LDg0MDczOmZ1bmN0aW9uKFEsaCxlKXsidXNlIHN0cmljdCI7dmFyIHQ9ZSg2NjA5Miksbj10LlouVWludDhBcnJheTtoLlo9bn0sODc2Njg6ZnVuY3Rpb24oUSxoLGUpeyJ1c2Ugc3RyaWN0IjtlLmQoaCx7WjpmdW5jdGlvbigpe3JldHVybiBDfX0pO2Z1bmN0aW9uIHQoTyxnKXtmb3IodmFyIFQ9LTEsZD1BcnJheShPKTsrK1Q8TzspZFtUXT1nKFQpO3JldHVybiBkfXZhciBuPXQscj1lKDI5MTY5KSxjPWUoMjc3NzEpLHM9ZSg3NzAwOCksWj1lKDU2MDA5KSx4PWUoNzA5MDgpLFA9T2JqZWN0LnByb3RvdHlwZSxtPVAuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gSShPLGcpe3ZhciBUPSgwLGMuWikoTyksZD0hVCYmKDAsci5aKShPKSx1PSFUJiYhZCYmKDAscy5aKShPKSxhPSFUJiYhZCYmIXUmJigwLHguWikoTyksUj1UfHxkfHx1fHxhLEQ9Uj9uKE8ubGVuZ3RoLFN0cmluZyk6W10sdj1ELmxlbmd0aDtmb3IodmFyIEUgaW4gTykoZ3x8bS5jYWxsKE8sRSkpJiYhKFImJihFPT0ibGVuZ3RoInx8dSYmKEU9PSJvZmZzZXQifHxFPT0icGFyZW50Iil8fGEmJihFPT0iYnVmZmVyInx8RT09ImJ5dGVMZW5ndGgifHxFPT0iYnl0ZU9mZnNldCIpfHwoMCxaLlopKEUsdikpKSYmRC5wdXNoKEUpO3JldHVybiBEfXZhciBDPUl9LDkzNTg5OmZ1bmN0aW9uKFEsaCxlKXsidXNlIHN0cmljdCI7ZS5kKGgse1o6ZnVuY3Rpb24oKXtyZXR1cm4gdX19KTt2YXIgdD1lKDE3Njg1KSxuPU9iamVjdC5wcm90b3R5cGUscj1uLmhhc093blByb3BlcnR5LGM9bi50b1N0cmluZyxzPXQuWj90LloudG9TdHJpbmdUYWc6dm9pZCAwO2Z1bmN0aW9uIFooYSl7dmFyIFI9ci5jYWxsKGEscyksRD1hW3NdO3RyeXthW3NdPXZvaWQgMDt2YXIgdj0hMH1jYXRjaChxKXt9dmFyIEU9Yy5jYWxsKGEpO3JldHVybiB2JiYoUj9hW3NdPUQ6ZGVsZXRlIGFbc10pLEV9dmFyIHg9WixQPU9iamVjdC5wcm90b3R5cGUsbT1QLnRvU3RyaW5nO2Z1bmN0aW9uIEkoYSl7cmV0dXJuIG0uY2FsbChhKX12YXIgQz1JLE89IltvYmplY3QgTnVsbF0iLGc9IltvYmplY3QgVW5kZWZpbmVkXSIsVD10Llo/dC5aLnRvU3RyaW5nVGFnOnZvaWQgMDtmdW5jdGlvbiBkKGEpe3JldHVybiBhPT1udWxsP2E9PT12b2lkIDA/ZzpPOlQmJlQgaW4gT2JqZWN0KGEpP3goYSk6QyhhKX12YXIgdT1kfSwxMzQxMzpmdW5jdGlvbihRLGgpeyJ1c2Ugc3RyaWN0Ijt2YXIgZT10eXBlb2YgZ2xvYmFsPT0ib2JqZWN0IiYmZ2xvYmFsJiZnbG9iYWwuT2JqZWN0PT09T2JqZWN0JiZnbG9iYWw7aC5aPWV9LDYyNTA4OmZ1bmN0aW9uKFEsaCxlKXsidXNlIHN0cmljdCI7ZS5kKGgse1o6ZnVuY3Rpb24oKXtyZXR1cm4gcX19KTt2YXIgdD1lKDczMjM0KSxuPWUoNjYwOTIpLHI9bi5aWyJfX2NvcmUtanNfc2hhcmVkX18iXSxjPXIscz1mdW5jdGlvbigpe3ZhciBrPS9bXi5dKyQvLmV4ZWMoYyYmYy5rZXlzJiZjLmtleXMuSUVfUFJPVE98fCIiKTtyZXR1cm4gaz8iU3ltYm9sKHNyYylfMS4iK2s6IiJ9KCk7ZnVuY3Rpb24gWihrKXtyZXR1cm4hIXMmJnMgaW4ga312YXIgeD1aLFA9ZSg3NzIyNiksbT1lKDkwMDE5KSxJPS9bXFxeJC4qKz8oKVtcXXt9fF0vZyxDPS9eXFtvYmplY3QgLis/Q29uc3RydWN0b3JcXSQvLE89RnVuY3Rpb24ucHJvdG90eXBlLGc9T2JqZWN0LnByb3RvdHlwZSxUPU8udG9TdHJpbmcsZD1nLmhhc093blByb3BlcnR5LHU9UmVnRXhwKCJeIitULmNhbGwoZCkucmVwbGFjZShJLCJcXCQmIikucmVwbGFjZSgvaGFzT3duUHJvcGVydHl8KGZ1bmN0aW9uKS4qPyg/PVxcXCgpfCBmb3IgLis/KD89XFxcXSkvZywiJDEuKj8iKSsiJCIpO2Z1bmN0aW9uIGEoayl7aWYoISgwLFAuWikoayl8fHgoaykpcmV0dXJuITE7dmFyIEE9KDAsdC5aKShrKT91OkM7cmV0dXJuIEEudGVzdCgoMCxtLlopKGspKX12YXIgUj1hO2Z1bmN0aW9uIEQoayxBKXtyZXR1cm4gaz09bnVsbD92b2lkIDA6a1tBXX12YXIgdj1EO2Z1bmN0aW9uIEUoayxBKXt2YXIgTj12KGssQSk7cmV0dXJuIFIoTik/Tjp2b2lkIDB9dmFyIHE9RX0sNTYwMDk6ZnVuY3Rpb24oUSxoKXsidXNlIHN0cmljdCI7dmFyIGU9OTAwNzE5OTI1NDc0MDk5MSx0PS9eKD86MHxbMS05XVxkKikkLztmdW5jdGlvbiBuKHIsYyl7dmFyIHM9dHlwZW9mIHI7cmV0dXJuIGM9Yz09bnVsbD9lOmMsISFjJiYocz09Im51bWJlciJ8fHMhPSJzeW1ib2wiJiZ0LnRlc3QocikpJiZyPi0xJiZyJTE9PTAmJnI8Y31oLlo9bn0sNzI3NjQ6ZnVuY3Rpb24oUSxoKXsidXNlIHN0cmljdCI7dmFyIGU9T2JqZWN0LnByb3RvdHlwZTtmdW5jdGlvbiB0KG4pe3ZhciByPW4mJm4uY29uc3RydWN0b3IsYz10eXBlb2Ygcj09ImZ1bmN0aW9uIiYmci5wcm90b3R5cGV8fGU7cmV0dXJuIG49PT1jfWguWj10fSwxODUxOmZ1bmN0aW9uKFEsaCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGUodCxuKXtyZXR1cm4gZnVuY3Rpb24ocil7cmV0dXJuIHQobihyKSl9fWguWj1lfSw2NjA5MjpmdW5jdGlvbihRLGgsZSl7InVzZSBzdHJpY3QiO3ZhciB0PWUoMTM0MTMpLG49dHlwZW9mIHNlbGY9PSJvYmplY3QiJiZzZWxmJiZzZWxmLk9iamVjdD09PU9iamVjdCYmc2VsZixyPXQuWnx8bnx8RnVuY3Rpb24oInJldHVybiB0aGlzIikoKTtoLlo9cn0sOTAwMTk6ZnVuY3Rpb24oUSxoKXsidXNlIHN0cmljdCI7dmFyIGU9RnVuY3Rpb24ucHJvdG90eXBlLHQ9ZS50b1N0cmluZztmdW5jdGlvbiBuKHIpe2lmKHIhPW51bGwpe3RyeXtyZXR1cm4gdC5jYWxsKHIpfWNhdGNoKGMpe310cnl7cmV0dXJuIHIrIiJ9Y2F0Y2goYyl7fX1yZXR1cm4iIn1oLlo9bn0sNzk2NTE6ZnVuY3Rpb24oUSxoKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZSh0LG4pe3JldHVybiB0PT09bnx8dCE9PXQmJm4hPT1ufWguWj1lfSwyOTE2OTpmdW5jdGlvbihRLGgsZSl7InVzZSBzdHJpY3QiO2UuZChoLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIEl9fSk7dmFyIHQ9ZSg5MzU4OSksbj1lKDE4NTMzKSxyPSJbb2JqZWN0IEFyZ3VtZW50c10iO2Z1bmN0aW9uIGMoQyl7cmV0dXJuKDAsbi5aKShDKSYmKDAsdC5aKShDKT09cn12YXIgcz1jLFo9T2JqZWN0LnByb3RvdHlwZSx4PVouaGFzT3duUHJvcGVydHksUD1aLnByb3BlcnR5SXNFbnVtZXJhYmxlLG09cyhmdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHN9KCkpP3M6ZnVuY3Rpb24oQyl7cmV0dXJuKDAsbi5aKShDKSYmeC5jYWxsKEMsImNhbGxlZSIpJiYhUC5jYWxsKEMsImNhbGxlZSIpfSxJPW19LDI3NzcxOmZ1bmN0aW9uKFEsaCl7InVzZSBzdHJpY3QiO3ZhciBlPUFycmF5LmlzQXJyYXk7aC5aPWV9LDUwNTg1OmZ1bmN0aW9uKFEsaCxlKXsidXNlIHN0cmljdCI7dmFyIHQ9ZSg3MzIzNCksbj1lKDE2NTYpO2Z1bmN0aW9uIHIoYyl7cmV0dXJuIGMhPW51bGwmJigwLG4uWikoYy5sZW5ndGgpJiYhKDAsdC5aKShjKX1oLlo9cn0sNzcwMDg6ZnVuY3Rpb24oUSxoLGUpeyJ1c2Ugc3RyaWN0IjtlLmQoaCx7WjpmdW5jdGlvbigpe3JldHVybiBJfX0pO3ZhciB0PWUoNjYwOTIpO2Z1bmN0aW9uIG4oKXtyZXR1cm4hMX12YXIgcj1uLGM9dHlwZW9mIGV4cG9ydHM9PSJvYmplY3QiJiZleHBvcnRzJiYhZXhwb3J0cy5ub2RlVHlwZSYmZXhwb3J0cyxzPWMmJnR5cGVvZiBtb2R1bGU9PSJvYmplY3QiJiZtb2R1bGUmJiFtb2R1bGUubm9kZVR5cGUmJm1vZHVsZSxaPXMmJnMuZXhwb3J0cz09PWMseD1aP3QuWi5CdWZmZXI6dm9pZCAwLFA9eD94LmlzQnVmZmVyOnZvaWQgMCxtPVB8fHIsST1tfSw3MzIzNDpmdW5jdGlvbihRLGgsZSl7InVzZSBzdHJpY3QiO3ZhciB0PWUoOTM1ODkpLG49ZSg3NzIyNikscj0iW29iamVjdCBBc3luY0Z1bmN0aW9uXSIsYz0iW29iamVjdCBGdW5jdGlvbl0iLHM9IltvYmplY3QgR2VuZXJhdG9yRnVuY3Rpb25dIixaPSJbb2JqZWN0IFByb3h5XSI7ZnVuY3Rpb24geChQKXtpZighKDAsbi5aKShQKSlyZXR1cm4hMTt2YXIgbT0oMCx0LlopKFApO3JldHVybiBtPT1jfHxtPT1zfHxtPT1yfHxtPT1afWguWj14fSwxNjU2OmZ1bmN0aW9uKFEsaCl7InVzZSBzdHJpY3QiO3ZhciBlPTkwMDcxOTkyNTQ3NDA5OTE7ZnVuY3Rpb24gdChuKXtyZXR1cm4gdHlwZW9mIG49PSJudW1iZXIiJiZuPi0xJiZuJTE9PTAmJm48PWV9aC5aPXR9LDc3MjI2OmZ1bmN0aW9uKFEsaCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGUodCl7dmFyIG49dHlwZW9mIHQ7cmV0dXJuIHQhPW51bGwmJihuPT0ib2JqZWN0Inx8bj09ImZ1bmN0aW9uIil9aC5aPWV9LDE4NTMzOmZ1bmN0aW9uKFEsaCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGUodCl7cmV0dXJuIHQhPW51bGwmJnR5cGVvZiB0PT0ib2JqZWN0In1oLlo9ZX0sNzA5MDg6ZnVuY3Rpb24oUSxoLGUpeyJ1c2Ugc3RyaWN0IjtlLmQoaCx7WjpmdW5jdGlvbigpe3JldHVybiBpfX0pO3ZhciB0PWUoOTM1ODkpLG49ZSgxNjU2KSxyPWUoMTg1MzMpLGM9IltvYmplY3QgQXJndW1lbnRzXSIscz0iW29iamVjdCBBcnJheV0iLFo9IltvYmplY3QgQm9vbGVhbl0iLHg9IltvYmplY3QgRGF0ZV0iLFA9IltvYmplY3QgRXJyb3JdIixtPSJbb2JqZWN0IEZ1bmN0aW9uXSIsST0iW29iamVjdCBNYXBdIixDPSJbb2JqZWN0IE51bWJlcl0iLE89IltvYmplY3QgT2JqZWN0XSIsZz0iW29iamVjdCBSZWdFeHBdIixUPSJbb2JqZWN0IFNldF0iLGQ9IltvYmplY3QgU3RyaW5nXSIsdT0iW29iamVjdCBXZWFrTWFwXSIsYT0iW29iamVjdCBBcnJheUJ1ZmZlcl0iLFI9IltvYmplY3QgRGF0YVZpZXddIixEPSJbb2JqZWN0IEZsb2F0MzJBcnJheV0iLHY9IltvYmplY3QgRmxvYXQ2NEFycmF5XSIsRT0iW29iamVjdCBJbnQ4QXJyYXldIixxPSJbb2JqZWN0IEludDE2QXJyYXldIixrPSJbb2JqZWN0IEludDMyQXJyYXldIixBPSJbb2JqZWN0IFVpbnQ4QXJyYXldIixOPSJbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XSIsbmU9IltvYmplY3QgVWludDE2QXJyYXldIix4ZT0iW29iamVjdCBVaW50MzJBcnJheV0iLFk9e307WVtEXT1ZW3ZdPVlbRV09WVtxXT1ZW2tdPVlbQV09WVtOXT1ZW25lXT1ZW3hlXT0hMCxZW2NdPVlbc109WVthXT1ZW1pdPVlbUl09WVt4XT1ZW1BdPVlbbV09WVtJXT1ZW0NdPVlbT109WVtnXT1ZW1RdPVlbZF09WVt1XT0hMTtmdW5jdGlvbiBzZSgkKXtyZXR1cm4oMCxyLlopKCQpJiYoMCxuLlopKCQubGVuZ3RoKSYmISFZWygwLHQuWikoJCldfXZhciByZT1zZTtmdW5jdGlvbiBKZSgkKXtyZXR1cm4gZnVuY3Rpb24oZWUpe3JldHVybiAkKGVlKX19dmFyIHplPUplLEJlPWUoMTM0MTMpLFllPXR5cGVvZiBleHBvcnRzPT0ib2JqZWN0IiYmZXhwb3J0cyYmIWV4cG9ydHMubm9kZVR5cGUmJmV4cG9ydHMsRWU9WWUmJnR5cGVvZiBtb2R1bGU9PSJvYmplY3QiJiZtb2R1bGUmJiFtb2R1bGUubm9kZVR5cGUmJm1vZHVsZSxVZT1FZSYmRWUuZXhwb3J0cz09PVllLExlPVVlJiZCZS5aLnByb2Nlc3MscD1mdW5jdGlvbigpe3RyeXt2YXIgJD1FZSYmRWUucmVxdWlyZSYmRWUucmVxdWlyZSgidXRpbCIpLnR5cGVzO3JldHVybiAkfHxMZSYmTGUuYmluZGluZyYmTGUuYmluZGluZygidXRpbCIpfWNhdGNoKGVlKXt9fSgpLGRlPXAsUz1kZSYmZGUuaXNUeXBlZEFycmF5LG89Uz96ZShTKTpyZSxpPW99LDY1MzMwOmZ1bmN0aW9uKFEsaCxlKXsidXNlIHN0cmljdCI7ZS5kKGgse1o6ZnVuY3Rpb24oKXtyZXR1cm4gcG59fSk7dmFyIHQ9ZSgzMTY2Nyksbj1lKDYyNTA4KSxyPWZ1bmN0aW9uKCl7dHJ5e3ZhciBmPSgwLG4uWikoT2JqZWN0LCJkZWZpbmVQcm9wZXJ0eSIpO3JldHVybiBmKHt9LCIiLHt9KSxmfWNhdGNoKHkpe319KCksYz1yO2Z1bmN0aW9uIHMoZix5LGope3k9PSJfX3Byb3RvX18iJiZjP2MoZix5LHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx2YWx1ZTpqLHdyaXRhYmxlOiEwfSk6Zlt5XT1qfXZhciBaPXMseD1lKDc5NjUxKTtmdW5jdGlvbiBQKGYseSxqKXsoaiE9PXZvaWQgMCYmISgwLHguWikoZlt5XSxqKXx8aj09PXZvaWQgMCYmISh5IGluIGYpKSYmWihmLHksail9dmFyIG09UDtmdW5jdGlvbiBJKGYpe3JldHVybiBmdW5jdGlvbih5LGosdmUpe2Zvcih2YXIgamU9LTEsVmU9T2JqZWN0KHkpLEtlPXZlKHkpLFplPUtlLmxlbmd0aDtaZS0tOyl7dmFyIFdlPUtlW2Y/WmU6KytqZV07aWYoaihWZVtXZV0sV2UsVmUpPT09ITEpYnJlYWt9cmV0dXJuIHl9fXZhciBDPUksTz1DKCksZz1PLFQ9ZSg2NjA5MiksZD10eXBlb2YgZXhwb3J0cz09Im9iamVjdCImJmV4cG9ydHMmJiFleHBvcnRzLm5vZGVUeXBlJiZleHBvcnRzLHU9ZCYmdHlwZW9mIG1vZHVsZT09Im9iamVjdCImJm1vZHVsZSYmIW1vZHVsZS5ub2RlVHlwZSYmbW9kdWxlLGE9dSYmdS5leHBvcnRzPT09ZCxSPWE/VC5aLkJ1ZmZlcjp2b2lkIDAsRD1SP1IuYWxsb2NVbnNhZmU6dm9pZCAwO2Z1bmN0aW9uIHYoZix5KXtpZih5KXJldHVybiBmLnNsaWNlKCk7dmFyIGo9Zi5sZW5ndGgsdmU9RD9EKGopOm5ldyBmLmNvbnN0cnVjdG9yKGopO3JldHVybiBmLmNvcHkodmUpLHZlfXZhciBFPXYscT1lKDg0MDczKTtmdW5jdGlvbiBrKGYpe3ZhciB5PW5ldyBmLmNvbnN0cnVjdG9yKGYuYnl0ZUxlbmd0aCk7cmV0dXJuIG5ldyBxLlooeSkuc2V0KG5ldyBxLlooZikpLHl9dmFyIEE9aztmdW5jdGlvbiBOKGYseSl7dmFyIGo9eT9BKGYuYnVmZmVyKTpmLmJ1ZmZlcjtyZXR1cm4gbmV3IGYuY29uc3RydWN0b3IoaixmLmJ5dGVPZmZzZXQsZi5sZW5ndGgpfXZhciBuZT1OO2Z1bmN0aW9uIHhlKGYseSl7dmFyIGo9LTEsdmU9Zi5sZW5ndGg7Zm9yKHl8fCh5PUFycmF5KHZlKSk7KytqPHZlOyl5W2pdPWZbal07cmV0dXJuIHl9dmFyIFk9eGUsc2U9ZSg3NzIyNikscmU9T2JqZWN0LmNyZWF0ZSxKZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGYoKXt9cmV0dXJuIGZ1bmN0aW9uKHkpe2lmKCEoMCxzZS5aKSh5KSlyZXR1cm57fTtpZihyZSlyZXR1cm4gcmUoeSk7Zi5wcm90b3R5cGU9eTt2YXIgaj1uZXcgZjtyZXR1cm4gZi5wcm90b3R5cGU9dm9pZCAwLGp9fSgpLHplPUplLEJlPWUoMTg1MSksWWU9KDAsQmUuWikoT2JqZWN0LmdldFByb3RvdHlwZU9mLE9iamVjdCksRWU9WWUsVWU9ZSg3Mjc2NCk7ZnVuY3Rpb24gTGUoZil7cmV0dXJuIHR5cGVvZiBmLmNvbnN0cnVjdG9yPT0iZnVuY3Rpb24iJiYhKDAsVWUuWikoZik/emUoRWUoZikpOnt9fXZhciBwPUxlLGRlPWUoMjkxNjkpLFM9ZSgyNzc3MSksbz1lKDUwNTg1KSxpPWUoMTg1MzMpO2Z1bmN0aW9uICQoZil7cmV0dXJuKDAsaS5aKShmKSYmKDAsby5aKShmKX12YXIgZWU9JCxwZT1lKDc3MDA4KSx0ZT1lKDczMjM0KSxGZT1lKDkzNTg5KSxhZT0iW29iamVjdCBPYmplY3RdIixTZT1GdW5jdGlvbi5wcm90b3R5cGUsej1PYmplY3QucHJvdG90eXBlLHVlPVNlLnRvU3RyaW5nLHllPXouaGFzT3duUHJvcGVydHksbD11ZS5jYWxsKE9iamVjdCk7ZnVuY3Rpb24gRihmKXtpZighKDAsaS5aKShmKXx8KDAsRmUuWikoZikhPWFlKXJldHVybiExO3ZhciB5PUVlKGYpO2lmKHk9PT1udWxsKXJldHVybiEwO3ZhciBqPXllLmNhbGwoeSwiY29uc3RydWN0b3IiKSYmeS5jb25zdHJ1Y3RvcjtyZXR1cm4gdHlwZW9mIGo9PSJmdW5jdGlvbiImJmogaW5zdGFuY2VvZiBqJiZ1ZS5jYWxsKGopPT1sfXZhciBYPUYsTT1lKDcwOTA4KTtmdW5jdGlvbiBCKGYseSl7aWYoISh5PT09ImNvbnN0cnVjdG9yIiYmdHlwZW9mIGZbeV09PSJmdW5jdGlvbiIpJiZ5IT0iX19wcm90b19fIilyZXR1cm4gZlt5XX12YXIgVj1CLFU9T2JqZWN0LnByb3RvdHlwZSxIPVUuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gTChmLHksail7dmFyIHZlPWZbeV07KCEoSC5jYWxsKGYseSkmJigwLHguWikodmUsaikpfHxqPT09dm9pZCAwJiYhKHkgaW4gZikpJiZaKGYseSxqKX12YXIgXz1MO2Z1bmN0aW9uIGNlKGYseSxqLHZlKXt2YXIgamU9IWo7anx8KGo9e30pO2Zvcih2YXIgVmU9LTEsS2U9eS5sZW5ndGg7KytWZTxLZTspe3ZhciBaZT15W1ZlXSxXZT12ZT92ZShqW1plXSxmW1plXSxaZSxqLGYpOnZvaWQgMDtXZT09PXZvaWQgMCYmKFdlPWZbWmVdKSxqZT9aKGosWmUsV2UpOl8oaixaZSxXZSl9cmV0dXJuIGp9dmFyIGdlPWNlLGllPWUoODc2NjgpO2Z1bmN0aW9uIFRlKGYpe3ZhciB5PVtdO2lmKGYhPW51bGwpZm9yKHZhciBqIGluIE9iamVjdChmKSl5LnB1c2goaik7cmV0dXJuIHl9dmFyIGJlPVRlLE9lPU9iamVjdC5wcm90b3R5cGUsbWU9T2UuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gb2UoZil7aWYoISgwLHNlLlopKGYpKXJldHVybiBiZShmKTt2YXIgeT0oMCxVZS5aKShmKSxqPVtdO2Zvcih2YXIgdmUgaW4gZil2ZT09ImNvbnN0cnVjdG9yIiYmKHl8fCFtZS5jYWxsKGYsdmUpKXx8ai5wdXNoKHZlKTtyZXR1cm4gan12YXIgSj1vZTtmdW5jdGlvbiBmZShmKXtyZXR1cm4oMCxvLlopKGYpPygwLGllLlopKGYsITApOkooZil9dmFyIGI9ZmU7ZnVuY3Rpb24gdyhmKXtyZXR1cm4gZ2UoZixiKGYpKX12YXIgVz13O2Z1bmN0aW9uIEsoZix5LGosdmUsamUsVmUsS2Upe3ZhciBaZT1WKGYsaiksV2U9Vih5LGopLFBuPUtlLmdldChXZSk7aWYoUG4pe20oZixqLFBuKTtyZXR1cm59dmFyIGVuPVZlP1ZlKFplLFdlLGorIiIsZix5LEtlKTp2b2lkIDAsZ249ZW49PT12b2lkIDA7aWYoZ24pe3ZhciBubj0oMCxTLlopKFdlKSxfZT0hbm4mJigwLHBlLlopKFdlKSxxZT0hbm4mJiFfZSYmKDAsTS5aKShXZSk7ZW49V2Usbm58fF9lfHxxZT8oMCxTLlopKFplKT9lbj1aZTplZShaZSk/ZW49WShaZSk6X2U/KGduPSExLGVuPUUoV2UsITApKTpxZT8oZ249ITEsZW49bmUoV2UsITApKTplbj1bXTpYKFdlKXx8KDAsZGUuWikoV2UpPyhlbj1aZSwoMCxkZS5aKShaZSk/ZW49VyhaZSk6KCEoMCxzZS5aKShaZSl8fCgwLHRlLlopKFplKSkmJihlbj1wKFdlKSkpOmduPSExfWduJiYoS2Uuc2V0KFdlLGVuKSxqZShlbixXZSx2ZSxWZSxLZSksS2UuZGVsZXRlKFdlKSksbShmLGosZW4pfXZhciBsZT1LO2Z1bmN0aW9uIGhlKGYseSxqLHZlLGplKXtmIT09eSYmZyh5LGZ1bmN0aW9uKFZlLEtlKXtpZihqZXx8KGplPW5ldyB0LlopLCgwLHNlLlopKFZlKSlsZShmLHksS2UsaixoZSx2ZSxqZSk7ZWxzZXt2YXIgWmU9dmU/dmUoVihmLEtlKSxWZSxLZSsiIixmLHksamUpOnZvaWQgMDtaZT09PXZvaWQgMCYmKFplPVZlKSxtKGYsS2UsWmUpfX0sYil9dmFyIEhlPWhlO2Z1bmN0aW9uIFBlKGYpe3JldHVybiBmfXZhciBJZT1QZTtmdW5jdGlvbiBkbihmLHksail7c3dpdGNoKGoubGVuZ3RoKXtjYXNlIDA6cmV0dXJuIGYuY2FsbCh5KTtjYXNlIDE6cmV0dXJuIGYuY2FsbCh5LGpbMF0pO2Nhc2UgMjpyZXR1cm4gZi5jYWxsKHksalswXSxqWzFdKTtjYXNlIDM6cmV0dXJuIGYuY2FsbCh5LGpbMF0salsxXSxqWzJdKX1yZXR1cm4gZi5hcHBseSh5LGopfXZhciBvbj1kbixHZT1NYXRoLm1heDtmdW5jdGlvbiBzbihmLHksail7cmV0dXJuIHk9R2UoeT09PXZvaWQgMD9mLmxlbmd0aC0xOnksMCksZnVuY3Rpb24oKXtmb3IodmFyIHZlPWFyZ3VtZW50cyxqZT0tMSxWZT1HZSh2ZS5sZW5ndGgteSwwKSxLZT1BcnJheShWZSk7KytqZTxWZTspS2VbamVdPXZlW3kramVdO2plPS0xO2Zvcih2YXIgWmU9QXJyYXkoeSsxKTsrK2plPHk7KVplW2plXT12ZVtqZV07cmV0dXJuIFplW3ldPWooS2UpLG9uKGYsdGhpcyxaZSl9fXZhciB2bj1zbjtmdW5jdGlvbiB0bihmKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZn19dmFyIFhlPXRuLCRlPWM/ZnVuY3Rpb24oZix5KXtyZXR1cm4gYyhmLCJ0b1N0cmluZyIse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiExLHZhbHVlOlhlKHkpLHdyaXRhYmxlOiEwfSl9OkllLHdlPSRlLHVuPTgwMCxjbj0xNixrZT1EYXRlLm5vdztmdW5jdGlvbiBDZShmKXt2YXIgeT0wLGo9MDtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgdmU9a2UoKSxqZT1jbi0odmUtaik7aWYoaj12ZSxqZT4wKXtpZigrK3k+PXVuKXJldHVybiBhcmd1bWVudHNbMF19ZWxzZSB5PTA7cmV0dXJuIGYuYXBwbHkodm9pZCAwLGFyZ3VtZW50cyl9fXZhciBSZT1DZSxNZT1SZSh3ZSksRGU9TWU7ZnVuY3Rpb24gRyhmLHkpe3JldHVybiBEZSh2bihmLHksSWUpLGYrIiIpfXZhciBBZT1HLE5lPWUoNTYwMDkpO2Z1bmN0aW9uIGFuKGYseSxqKXtpZighKDAsc2UuWikoaikpcmV0dXJuITE7dmFyIHZlPXR5cGVvZiB5O3JldHVybih2ZT09Im51bWJlciI/KDAsby5aKShqKSYmKDAsTmUuWikoeSxqLmxlbmd0aCk6dmU9PSJzdHJpbmciJiZ5IGluIGopPygwLHguWikoalt5XSxmKTohMX12YXIgUWU9YW47ZnVuY3Rpb24gbW4oZil7cmV0dXJuIEFlKGZ1bmN0aW9uKHksail7dmFyIHZlPS0xLGplPWoubGVuZ3RoLFZlPWplPjE/altqZS0xXTp2b2lkIDAsS2U9amU+Mj9qWzJdOnZvaWQgMDtmb3IoVmU9Zi5sZW5ndGg+MyYmdHlwZW9mIFZlPT0iZnVuY3Rpb24iPyhqZS0tLFZlKTp2b2lkIDAsS2UmJlFlKGpbMF0salsxXSxLZSkmJihWZT1qZTwzP3ZvaWQgMDpWZSxqZT0xKSx5PU9iamVjdCh5KTsrK3ZlPGplOyl7dmFyIFplPWpbdmVdO1plJiZmKHksWmUsdmUsVmUpfXJldHVybiB5fSl9dmFyIGxuPW1uLGhuPWxuKGZ1bmN0aW9uKGYseSxqKXtIZShmLHksail9KSxwbj1obn19XSk7CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzcyOTYuNTU1NmEzMmYuYXN5bmMuanMgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzcyOTYuNTU1NmEzMmYuYXN5bmMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTIzZWQ1MQotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNzI5Ni41NTU2YTMyZi5hc3luYy5qcwpAQCAtMCwwICsxIEBACisidXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W10pLnB1c2goW1s3Mjk2XSx7MTY0MzQ6ZnVuY3Rpb24oVSxULGUpe3ZhciBhPWUoMTQxMyksXz1lKDc0MTY1KSxmPWUoMTU4NjEpLEY9ZSg5MSksTT1lKDk3Njg1KSxCPWUoOTk4NTkpLEM9ZSgyNTI3OCksUj1lKDgzNjIyKSxtPWUoNjcyOTQpLHM9ZSg5MDc4OSksRD1lKDg1ODkzKSxqPVsicnVsZXMiLCJuYW1lIiwicGhvbmVOYW1lIiwiZmllbGRQcm9wcyIsIm9uVGltaW5nIiwiY2FwdGNoYVRleHRSZW5kZXIiLCJjYXB0Y2hhUHJvcHMiXSxwPW0uZm9yd2FyZFJlZihmdW5jdGlvbih0LGwpe3ZhciBkPUIuWi51c2VGb3JtSW5zdGFuY2UoKSxuPSgwLG0udXNlU3RhdGUpKHQuY291bnREb3dufHw2MCksdT0oMCxNLlopKG4sMikscj11WzBdLG89dVsxXSxjPSgwLG0udXNlU3RhdGUpKCExKSxBPSgwLE0uWikoYywyKSx2PUFbMF0saD1BWzFdLE89KDAsbS51c2VTdGF0ZSkoKSxQPSgwLE0uWikoTywyKSxiPVBbMF0sRT1QWzFdLE49dC5ydWxlcyxLPXQubmFtZSxMPXQucGhvbmVOYW1lLFo9dC5maWVsZFByb3BzLEc9dC5vblRpbWluZyx5PXQuY2FwdGNoYVRleHRSZW5kZXIsSD15PT09dm9pZCAwP2Z1bmN0aW9uKFcseCl7cmV0dXJuIFc/IiIuY29uY2F0KHgsIiBcdTc5RDJcdTU0MEVcdTkxQ0RcdTY1QjBcdTgzQjdcdTUzRDYiKToiXHU4M0I3XHU1M0Q2XHU5QThDXHU4QkMxXHU3ODAxIn06eSxWPXQuY2FwdGNoYVByb3BzLEo9KDAsRi5aKSh0LGopLCQ9ZnVuY3Rpb24oKXt2YXIgVz0oMCxmLlopKCgwLF8uWikoKS5tYXJrKGZ1bmN0aW9uIHgoUyl7cmV0dXJuKDAsXy5aKSgpLndyYXAoZnVuY3Rpb24oSSl7Zm9yKDs7KXN3aXRjaChJLnByZXY9SS5uZXh0KXtjYXNlIDA6cmV0dXJuIEkucHJldj0wLEUoITApLEkubmV4dD00LEoub25HZXRDYXB0Y2hhKFMpO2Nhc2UgNDpFKCExKSxoKCEwKSxJLm5leHQ9MTM7YnJlYWs7Y2FzZSA4OkkucHJldj04LEkudDA9SS5jYXRjaCgwKSxoKCExKSxFKCExKSxjb25zb2xlLmxvZyhJLnQwKTtjYXNlIDEzOmNhc2UiZW5kIjpyZXR1cm4gSS5zdG9wKCl9fSx4LG51bGwsW1swLDhdXSl9KSk7cmV0dXJuIGZ1bmN0aW9uKFMpe3JldHVybiBXLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCk7cmV0dXJuKDAsbS51c2VJbXBlcmF0aXZlSGFuZGxlKShsLGZ1bmN0aW9uKCl7cmV0dXJue3N0YXJ0VGltaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIGgoITApfSxlbmRUaW1pbmc6ZnVuY3Rpb24oKXtyZXR1cm4gaCghMSl9fX0pLCgwLG0udXNlRWZmZWN0KShmdW5jdGlvbigpe3ZhciBXPTAseD10LmNvdW50RG93bjtyZXR1cm4gdiYmKFc9d2luZG93LnNldEludGVydmFsKGZ1bmN0aW9uKCl7byhmdW5jdGlvbihTKXtyZXR1cm4gUzw9MT8oaCghMSksY2xlYXJJbnRlcnZhbChXKSx4fHw2MCk6Uy0xfSl9LDFlMykpLGZ1bmN0aW9uKCl7cmV0dXJuIGNsZWFySW50ZXJ2YWwoVyl9fSxbdl0pLCgwLG0udXNlRWZmZWN0KShmdW5jdGlvbigpe0cmJkcocil9LFtyLEddKSwoMCxELmpzeHMpKCJkaXYiLHtzdHlsZTooMCxhLlopKCgwLGEuWikoe30sWj09bnVsbD92b2lkIDA6Wi5zdHlsZSkse30se2Rpc3BsYXk6ImZsZXgiLGFsaWduSXRlbXM6ImNlbnRlciJ9KSxyZWY6bCxjaGlsZHJlbjpbKDAsRC5qc3gpKEMuWiwoMCxhLlopKCgwLGEuWikoe30sWikse30se3N0eWxlOigwLGEuWikoe2ZsZXg6MSx0cmFuc2l0aW9uOiJ3aWR0aCAuM3MiLG1hcmdpblJpZ2h0Ojh9LFo9PW51bGw/dm9pZCAwOlouc3R5bGUpfSkpLCgwLEQuanN4KShSLlpQLCgwLGEuWikoKDAsYS5aKSh7c3R5bGU6e2Rpc3BsYXk6ImJsb2NrIn0sZGlzYWJsZWQ6dixsb2FkaW5nOmJ9LFYpLHt9LHtvbkNsaWNrOigwLGYuWikoKDAsXy5aKSgpLm1hcmsoZnVuY3Rpb24gVygpe3ZhciB4O3JldHVybigwLF8uWikoKS53cmFwKGZ1bmN0aW9uKGcpe2Zvcig7Oylzd2l0Y2goZy5wcmV2PWcubmV4dCl7Y2FzZSAwOmlmKGcucHJldj0wLCFMKXtnLm5leHQ9OTticmVha31yZXR1cm4gZy5uZXh0PTQsZC52YWxpZGF0ZUZpZWxkcyhbTF0uZmxhdCgxKSk7Y2FzZSA0OnJldHVybiB4PWQuZ2V0RmllbGRWYWx1ZShbTF0uZmxhdCgxKSksZy5uZXh0PTcsJCh4KTtjYXNlIDc6Zy5uZXh0PTExO2JyZWFrO2Nhc2UgOTpyZXR1cm4gZy5uZXh0PTExLCQoIiIpO2Nhc2UgMTE6Zy5uZXh0PTE2O2JyZWFrO2Nhc2UgMTM6Zy5wcmV2PTEzLGcudDA9Zy5jYXRjaCgwKSxjb25zb2xlLmxvZyhnLnQwKTtjYXNlIDE2OmNhc2UiZW5kIjpyZXR1cm4gZy5zdG9wKCl9fSxXLG51bGwsW1swLDEzXV0pfSkpLGNoaWxkcmVuOkgodixyKX0pKV19KX0pLGk9KDAscy5HKShwKTtULlo9aX0sMzExOTk6ZnVuY3Rpb24oVSxULGUpe3ZhciBhPWUoMTQxMyksXz1lKDkxKSxmPWUoNjcyOTQpLEY9ZSg5MjE3OSksTT1lKDg1ODkzKSxCPVsiZmllbGRQcm9wcyIsIm1pbiIsInByb0ZpZWxkUHJvcHMiLCJtYXgiXSxDPWZ1bmN0aW9uKHMsRCl7dmFyIGo9cy5maWVsZFByb3BzLHA9cy5taW4saT1zLnByb0ZpZWxkUHJvcHMsdD1zLm1heCxsPSgwLF8uWikocyxCKTtyZXR1cm4oMCxNLmpzeCkoRi5aLCgwLGEuWikoe3ZhbHVlVHlwZToiZGlnaXQiLGZpZWxkUHJvcHM6KDAsYS5aKSh7bWluOnAsbWF4OnR9LGopLHJlZjpELGZpbGVkQ29uZmlnOntkZWZhdWx0UHJvcHM6e3dpZHRoOiIxMDAlIn19LHByb0ZpZWxkUHJvcHM6aX0sbCkpfSxSPWYuZm9yd2FyZFJlZihDKTtULlo9Un0sODY2MTU6ZnVuY3Rpb24oVSxULGUpe3ZhciBhPWUoMTQxMyksXz1lKDkxKSxmPWUoMjIyNzApLEY9ZSg3ODA0NSksTT1lKDY3Mjk0KSxCPWUoOTA3ODkpLEM9ZSg5MjE3OSksUj1lKDg1ODkzKSxtPVsiZmllbGRQcm9wcyIsIm9wdGlvbnMiLCJyYWRpb1R5cGUiLCJsYXlvdXQiLCJwcm9GaWVsZFByb3BzIiwidmFsdWVFbnVtIl0scz1NLmZvcndhcmRSZWYoZnVuY3Rpb24oaSx0KXt2YXIgbD1pLmZpZWxkUHJvcHMsZD1pLm9wdGlvbnMsbj1pLnJhZGlvVHlwZSx1PWkubGF5b3V0LHI9aS5wcm9GaWVsZFByb3BzLG89aS52YWx1ZUVudW0sYz0oMCxfLlopKGksbSk7cmV0dXJuKDAsUi5qc3gpKEMuWiwoMCxhLlopKCgwLGEuWikoe3ZhbHVlVHlwZTpuPT09ImJ1dHRvbiI/InJhZGlvQnV0dG9uIjoicmFkaW8iLHJlZjp0LHZhbHVlRW51bTooMCxmLmgpKG8sdm9pZCAwKX0sYykse30se2ZpZWxkUHJvcHM6KDAsYS5aKSh7b3B0aW9uczpkLGxheW91dDp1fSxsKSxwcm9GaWVsZFByb3BzOnIsZmlsZWRDb25maWc6e2N1c3RvbUxpZ2h0TW9kZTohMH19KSl9KSxEPU0uZm9yd2FyZFJlZihmdW5jdGlvbihpLHQpe3ZhciBsPWkuZmllbGRQcm9wcyxkPWkuY2hpbGRyZW47cmV0dXJuKDAsUi5qc3gpKEYuWlAsKDAsYS5aKSgoMCxhLlopKHt9LGwpLHt9LHtyZWY6dCxjaGlsZHJlbjpkfSkpfSksaj0oMCxCLkcpKEQse3ZhbHVlUHJvcE5hbWU6ImNoZWNrZWQiLGlnbm9yZVdpZHRoOiEwfSkscD1qO3AuR3JvdXA9cyxwLkJ1dHRvbj1GLlpQLkJ1dHRvbixwLmRpc3BsYXlOYW1lPSJQcm9Gb3JtQ29tcG9uZW50IixULlo9cH0sNjQzMTc6ZnVuY3Rpb24oVSxULGUpe3ZhciBhPWUoMTQxMyksXz1lKDkxKSxmPWUoMjIyNzApLEY9ZSg2NzI5NCksTT1lKDY2NzU4KSxCPWUoOTIxNzkpLEM9ZSg4NTg5MyksUj1bImZpZWxkUHJvcHMiLCJjaGlsZHJlbiIsInBhcmFtcyIsInByb0ZpZWxkUHJvcHMiLCJtb2RlIiwidmFsdWVFbnVtIiwicmVxdWVzdCIsInNob3dTZWFyY2giLCJvcHRpb25zIl0sbT1bImZpZWxkUHJvcHMiLCJjaGlsZHJlbiIsInBhcmFtcyIsInByb0ZpZWxkUHJvcHMiLCJtb2RlIiwidmFsdWVFbnVtIiwicmVxdWVzdCIsIm9wdGlvbnMiXSxzPWZ1bmN0aW9uKGwsZCl7dmFyIG49bC5maWVsZFByb3BzLHU9bC5jaGlsZHJlbixyPWwucGFyYW1zLG89bC5wcm9GaWVsZFByb3BzLGM9bC5tb2RlLEE9bC52YWx1ZUVudW0sdj1sLnJlcXVlc3QsaD1sLnNob3dTZWFyY2gsTz1sLm9wdGlvbnMsUD0oMCxfLlopKGwsUiksYj0oMCxGLnVzZUNvbnRleHQpKE0uWik7cmV0dXJuKDAsQy5qc3gpKEIuWiwoMCxhLlopKCgwLGEuWikoe3ZhbHVlRW51bTooMCxmLmgpKEEpLHJlcXVlc3Q6dixwYXJhbXM6cix2YWx1ZVR5cGU6InNlbGVjdCIsZmlsZWRDb25maWc6e2N1c3RvbUxpZ2h0TW9kZTohMH0sZmllbGRQcm9wczooMCxhLlopKHtvcHRpb25zOk8sbW9kZTpjLHNob3dTZWFyY2g6aCxnZXRQb3B1cENvbnRhaW5lcjpiLmdldFBvcHVwQ29udGFpbmVyfSxuKSxyZWY6ZCxwcm9GaWVsZFByb3BzOm99LFApLHt9LHtjaGlsZHJlbjp1fSkpfSxEPUYuZm9yd2FyZFJlZihmdW5jdGlvbih0LGwpe3ZhciBkPXQuZmllbGRQcm9wcyxuPXQuY2hpbGRyZW4sdT10LnBhcmFtcyxyPXQucHJvRmllbGRQcm9wcyxvPXQubW9kZSxjPXQudmFsdWVFbnVtLEE9dC5yZXF1ZXN0LHY9dC5vcHRpb25zLGg9KDAsXy5aKSh0LG0pLE89KDAsYS5aKSh7b3B0aW9uczp2LG1vZGU6b3x8Im11bHRpcGxlIixsYWJlbEluVmFsdWU6ITAsc2hvd1NlYXJjaDohMCxzdWZmaXhJY29uOm51bGwsYXV0b0NsZWFyU2VhcmNoVmFsdWU6ITAsb3B0aW9uTGFiZWxQcm9wOiJsYWJlbCJ9LGQpLFA9KDAsRi51c2VDb250ZXh0KShNLlopO3JldHVybigwLEMuanN4KShCLlosKDAsYS5aKSgoMCxhLlopKHt2YWx1ZUVudW06KDAsZi5oKShjKSxyZXF1ZXN0OkEscGFyYW1zOnUsdmFsdWVUeXBlOiJzZWxlY3QiLGZpbGVkQ29uZmlnOntjdXN0b21MaWdodE1vZGU6ITB9LGZpZWxkUHJvcHM6KDAsYS5aKSh7Z2V0UG9wdXBDb250YWluZXI6UC5nZXRQb3B1cENvbnRhaW5lcn0sTykscmVmOmwscHJvRmllbGRQcm9wczpyfSxoKSx7fSx7Y2hpbGRyZW46bn0pKX0pLGo9Ri5mb3J3YXJkUmVmKHMpLHA9RCxpPWo7aS5TZWFyY2hTZWxlY3Q9cCxpLmRpc3BsYXlOYW1lPSJQcm9Gb3JtQ29tcG9uZW50IixULlo9aX0sOTA2NzI6ZnVuY3Rpb24oVSxULGUpe3ZhciBhPWUoMTQxMyksXz1lKDkxKSxmPWUoNjcyOTQpLEY9ZSg5MjE3OSksTT1lKDg1ODkzKSxCPVsiZmllbGRQcm9wcyIsInByb0ZpZWxkUHJvcHMiXSxDPWZ1bmN0aW9uKG0scyl7dmFyIEQ9bS5maWVsZFByb3BzLGo9bS5wcm9GaWVsZFByb3BzLHA9KDAsXy5aKShtLEIpO3JldHVybigwLE0uanN4KShGLlosKDAsYS5aKSh7cmVmOnMsdmFsdWVUeXBlOiJ0ZXh0YXJlYSIsZmllbGRQcm9wczpELHByb0ZpZWxkUHJvcHM6an0scCkpfTtULlo9Zi5mb3J3YXJkUmVmKEMpfSw1OTY2OmZ1bmN0aW9uKFUsVCxlKXt2YXIgYT1lKDk3Njg1KSxfPWUoMTQxMyksZj1lKDkxKSxGPWUoMjE3NzApLE09ZSg5OTg1OSksQj1lKDU1MjQxKSxDPWUoOTg0MjMpLFI9ZSg2NzI5NCksbT1lKDkyMTc5KSxzPWUoODU4OTMpLEQ9WyJmaWVsZFByb3BzIiwicHJvRmllbGRQcm9wcyJdLGo9WyJmaWVsZFByb3BzIiwicHJvRmllbGRQcm9wcyJdLHA9InRleHQiLGk9ZnVuY3Rpb24odSl7dmFyIHI9dS5maWVsZFByb3BzLG89dS5wcm9GaWVsZFByb3BzLGM9KDAsZi5aKSh1LEQpO3JldHVybigwLHMuanN4KShtLlosKDAsXy5aKSh7dmFsdWVUeXBlOnAsZmllbGRQcm9wczpyLGZpbGVkQ29uZmlnOnt2YWx1ZVR5cGU6cH0scHJvRmllbGRQcm9wczpvfSxjKSl9LHQ9ZnVuY3Rpb24odSl7dmFyIHI9KDAsRi5aKSh1Lm9wZW58fCExLHt2YWx1ZTp1Lm9wZW4sb25DaGFuZ2U6dS5vbk9wZW5DaGFuZ2V9KSxvPSgwLGEuWikociwyKSxjPW9bMF0sQT1vWzFdO3JldHVybigwLHMuanN4KShNLlouSXRlbSx7c2hvdWxkVXBkYXRlOiEwLG5vU3R5bGU6ITAsY2hpbGRyZW46ZnVuY3Rpb24oaCl7dmFyIE8sUD1oLmdldEZpZWxkVmFsdWUodS5uYW1lfHxbXSk7cmV0dXJuKDAscy5qc3gpKEIuWiwoMCxfLlopKCgwLF8uWikoe2dldFBvcHVwQ29udGFpbmVyOmZ1bmN0aW9uKEUpe3JldHVybiBFJiZFLnBhcmVudE5vZGU/RS5wYXJlbnROb2RlOkV9LG9uT3BlbkNoYW5nZTpmdW5jdGlvbihFKXtyZXR1cm4gQShFKX0sY29udGVudDooMCxzLmpzeHMpKCJkaXYiLHtzdHlsZTp7cGFkZGluZzoiNHB4IDAifSxjaGlsZHJlbjpbKE89dS5zdGF0dXNSZW5kZXIpPT09bnVsbHx8Tz09PXZvaWQgMD92b2lkIDA6Ty5jYWxsKHUsUCksdS5zdHJlbmd0aFRleHQ/KDAscy5qc3gpKCJkaXYiLHtzdHlsZTp7bWFyZ2luVG9wOjEwfSxjaGlsZHJlbjooMCxzLmpzeCkoInNwYW4iLHtjaGlsZHJlbjp1LnN0cmVuZ3RoVGV4dH0pfSk6bnVsbF19KSxvdmVybGF5U3R5bGU6e3dpZHRoOjI0MH0scGxhY2VtZW50OiJyaWdodFRvcCJ9LHUucG9wb3ZlclByb3BzKSx7fSx7b3BlbjpjLGNoaWxkcmVuOnUuY2hpbGRyZW59KSl9fSl9LGw9ZnVuY3Rpb24odSl7dmFyIHI9dS5maWVsZFByb3BzLG89dS5wcm9GaWVsZFByb3BzLGM9KDAsZi5aKSh1LGopLEE9KDAsUi51c2VTdGF0ZSkoITEpLHY9KDAsYS5aKShBLDIpLGg9dlswXSxPPXZbMV07cmV0dXJuIHIhPW51bGwmJnIuc3RhdHVzUmVuZGVyJiZjLm5hbWU/KDAscy5qc3gpKHQse25hbWU6Yy5uYW1lLHN0YXR1c1JlbmRlcjpyPT1udWxsP3ZvaWQgMDpyLnN0YXR1c1JlbmRlcixwb3BvdmVyUHJvcHM6cj09bnVsbD92b2lkIDA6ci5wb3BvdmVyUHJvcHMsc3RyZW5ndGhUZXh0OnI9PW51bGw/dm9pZCAwOnIuc3RyZW5ndGhUZXh0LG9wZW46aCxvbk9wZW5DaGFuZ2U6TyxjaGlsZHJlbjooMCxzLmpzeCkoImRpdiIse2NoaWxkcmVuOigwLHMuanN4KShtLlosKDAsXy5aKSh7dmFsdWVUeXBlOiJwYXNzd29yZCIsZmllbGRQcm9wczooMCxfLlopKCgwLF8uWikoe30sKDAsQy5aKShyLFsic3RhdHVzUmVuZGVyIiwicG9wb3ZlclByb3BzIiwic3RyZW5ndGhUZXh0Il0pKSx7fSx7b25CbHVyOmZ1bmN0aW9uKGIpe3ZhciBFO3I9PW51bGx8fChFPXIub25CbHVyKT09PW51bGx8fEU9PT12b2lkIDB8fEUuY2FsbChyLGIpLE8oITEpfSxvbkNsaWNrOmZ1bmN0aW9uKGIpe3ZhciBFO3I9PW51bGx8fChFPXIub25DbGljayk9PT1udWxsfHxFPT09dm9pZCAwfHxFLmNhbGwocixiKSxPKCEwKX19KSxwcm9GaWVsZFByb3BzOm8sZmlsZWRDb25maWc6e3ZhbHVlVHlwZTpwfX0sYykpfSl9KTooMCxzLmpzeCkobS5aLCgwLF8uWikoe3ZhbHVlVHlwZToicGFzc3dvcmQiLGZpZWxkUHJvcHM6cixwcm9GaWVsZFByb3BzOm8sZmlsZWRDb25maWc6e3ZhbHVlVHlwZTpwfX0sYykpfSxkPWk7ZC5QYXNzd29yZD1sLGQuZGlzcGxheU5hbWU9IlByb0Zvcm1Db21wb25lbnQiLFQuWj1kfSwxODI5OTpmdW5jdGlvbihVLFQsZSl7ZS5yKFQpO3ZhciBhPWUoMTUwMDkpLF89ZS5uKGEpLGY9ZSg5OTI4OSksRj1lLm4oZiksTT1lKDU1NzQpLEI9ZS5uKE0pLEM9ZSg2NzI5NCksUj1lKDk3MjY5KSxtPWUoMzExOTkpLHM9ZSg1OTY2KSxEPWUoNjQzMTcpLGo9ZSg5MDY3MikscD1lKDE2NDM0KSxpPWUoODY2MTUpLHQ9ZSg5OTg1OSksbD1lKDE3Nzg4KSxkPWUoNzY3NzIpLG49ZSg4NTg5MyksdT1mdW5jdGlvbihvKXt2YXIgYz10LloudXNlRm9ybSgpLEE9QigpKGMsMSksdj1BWzBdLGg9by5qb2JHcm91cE9wdGlvbnMsTz1vLnN0YXR1c09wdGlvbnM7KDAsQy51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7di5yZXNldEZpZWxkcygpLHYuc2V0RmllbGRzVmFsdWUoe2pvYklkOm8udmFsdWVzLmpvYklkLGpvYk5hbWU6by52YWx1ZXMuam9iTmFtZSxqb2JHcm91cDpvLnZhbHVlcy5qb2JHcm91cCxpbnZva2VUYXJnZXQ6by52YWx1ZXMuaW52b2tlVGFyZ2V0LGNyb25FeHByZXNzaW9uOm8udmFsdWVzLmNyb25FeHByZXNzaW9uLG1pc2ZpcmVQb2xpY3k6by52YWx1ZXMubWlzZmlyZVBvbGljeSxjb25jdXJyZW50Om8udmFsdWVzLmNvbmN1cnJlbnQsc3RhdHVzOm8udmFsdWVzLnN0YXR1cyxjcmVhdGVCeTpvLnZhbHVlcy5jcmVhdGVCeSxjcmVhdGVUaW1lOm8udmFsdWVzLmNyZWF0ZVRpbWUsdXBkYXRlQnk6by52YWx1ZXMudXBkYXRlQnksdXBkYXRlVGltZTpvLnZhbHVlcy51cGRhdGVUaW1lLHJlbWFyazpvLnZhbHVlcy5yZW1hcmt9KX0sW3Ysb10pO3ZhciBQPSgwLGQudXNlSW50bCkoKSxiPWZ1bmN0aW9uKCl7di5zdWJtaXQoKX0sRT1mdW5jdGlvbigpe28ub25DYW5jZWwoKSx2LnJlc2V0RmllbGRzKCl9LE49ZnVuY3Rpb24oKXt2YXIgSz1GKCkoXygpKCkubWFyayhmdW5jdGlvbiBMKFope3JldHVybiBfKCkoKS53cmFwKGZ1bmN0aW9uKHkpe2Zvcig7Oylzd2l0Y2goeS5wcmV2PXkubmV4dCl7Y2FzZSAwOm8ub25TdWJtaXQoWik7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4geS5zdG9wKCl9fSxMKX0pKTtyZXR1cm4gZnVuY3Rpb24oWil7cmV0dXJuIEsuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKTtyZXR1cm4oMCxuLmpzeCkobC5aLHt3aWR0aDo2NDAsdGl0bGU6UC5mb3JtYXRNZXNzYWdlKHtpZDoibW9uaXRvci5qb2IudGl0bGUiLGRlZmF1bHRNZXNzYWdlOiJcdTdGMTZcdThGOTFcdTVCOUFcdTY1RjZcdTRFRkJcdTUyQTFcdThDMDNcdTVFQTYifSksb3BlbjpvLm9wZW4sZm9yY2VSZW5kZXI6ITAsZGVzdHJveU9uQ2xvc2U6ITAsb25PazpiLG9uQ2FuY2VsOkUsY2hpbGRyZW46KDAsbi5qc3hzKShSLkEse2Zvcm06dixncmlkOiEwLHN1Ym1pdHRlcjohMSxsYXlvdXQ6Imhvcml6b250YWwiLG9uRmluaXNoOk4sY2hpbGRyZW46WygwLG4uanN4KShtLlose25hbWU6ImpvYklkIixsYWJlbDpQLmZvcm1hdE1lc3NhZ2Uoe2lkOiJtb25pdG9yLmpvYi5qb2JfaWQiLGRlZmF1bHRNZXNzYWdlOiJcdTRFRkJcdTUyQTFcdTdGMTZcdTUzRjcifSksY29sUHJvcHM6e21kOjI0fSxwbGFjZWhvbGRlcjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU0RUZCXHU1MkExXHU3RjE2XHU1M0Y3IixkaXNhYmxlZDohMCxoaWRkZW46ITAscnVsZXM6W3tyZXF1aXJlZDohMSxtZXNzYWdlOigwLG4uanN4KShkLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTRFRkJcdTUyQTFcdTdGMTZcdTUzRjdcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTRFRkJcdTUyQTFcdTdGMTZcdTUzRjdcdUZGMDEifSl9XX0pLCgwLG4uanN4KShzLlose25hbWU6ImpvYk5hbWUiLGxhYmVsOlAuZm9ybWF0TWVzc2FnZSh7aWQ6Im1vbml0b3Iuam9iLmpvYl9uYW1lIixkZWZhdWx0TWVzc2FnZToiXHU0RUZCXHU1MkExXHU1NDBEXHU3OUYwIn0pLGNvbFByb3BzOnttZDoyNH0scGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NEVGQlx1NTJBMVx1NTQwRFx1NzlGMCIscnVsZXM6W3tyZXF1aXJlZDohMSxtZXNzYWdlOigwLG4uanN4KShkLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTRFRkJcdTUyQTFcdTU0MERcdTc5RjBcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTRFRkJcdTUyQTFcdTU0MERcdTc5RjBcdUZGMDEifSl9XX0pLCgwLG4uanN4KShELlose25hbWU6ImpvYkdyb3VwIixvcHRpb25zOmgsbGFiZWw6UC5mb3JtYXRNZXNzYWdlKHtpZDoibW9uaXRvci5qb2Iuam9iX2dyb3VwIixkZWZhdWx0TWVzc2FnZToiXHU0RUZCXHU1MkExXHU3RUM0XHU1NDBEIn0pLGNvbFByb3BzOnttZDoyNH0scGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NEVGQlx1NTJBMVx1N0VDNFx1NTQwRCIscnVsZXM6W3tyZXF1aXJlZDohMSxtZXNzYWdlOigwLG4uanN4KShkLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTRFRkJcdTUyQTFcdTdFQzRcdTU0MERcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTRFRkJcdTUyQTFcdTdFQzRcdTU0MERcdUZGMDEifSl9XX0pLCgwLG4uanN4KShqLlose25hbWU6Imludm9rZVRhcmdldCIsbGFiZWw6UC5mb3JtYXRNZXNzYWdlKHtpZDoibW9uaXRvci5qb2IuaW52b2tlX3RhcmdldCIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEMwM1x1NzUyOFx1NzZFRVx1NjgwN1x1NUI1N1x1N0IyNlx1NEUzMiJ9KSxjb2xQcm9wczp7bWQ6MjR9LHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdThDMDNcdTc1MjhcdTc2RUVcdTY4MDdcdTVCNTdcdTdCMjZcdTRFMzIiLHJ1bGVzOlt7cmVxdWlyZWQ6ITAsbWVzc2FnZTooMCxuLmpzeCkoZC5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU4QzAzXHU3NTI4XHU3NkVFXHU2ODA3XHU1QjU3XHU3QjI2XHU0RTMyXHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU4QzAzXHU3NTI4XHU3NkVFXHU2ODA3XHU1QjU3XHU3QjI2XHU0RTMyXHVGRjAxIn0pfV19KSwoMCxuLmpzeCkocC5aLHtuYW1lOiJjcm9uRXhwcmVzc2lvbiIsbGFiZWw6UC5mb3JtYXRNZXNzYWdlKHtpZDoibW9uaXRvci5qb2IuY3Jvbl9leHByZXNzaW9uIixkZWZhdWx0TWVzc2FnZToiY3Jvblx1NjI2N1x1ODg0Q1x1ODg2OFx1OEZCRVx1NUYwRiJ9KSxjYXB0Y2hhVGV4dFJlbmRlcjpmdW5jdGlvbigpe3JldHVybiJcdTc1MUZcdTYyMTBcdTg4NjhcdThGQkVcdTVGMEYifSxvbkdldENhcHRjaGE6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oTCxaKXtaKCl9KX19KSwoMCxuLmpzeCkoaS5aLkdyb3VwLHtuYW1lOiJtaXNmaXJlUG9saWN5IixsYWJlbDpQLmZvcm1hdE1lc3NhZ2Uoe2lkOiJtb25pdG9yLmpvYi5taXNmaXJlX3BvbGljeSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJBMVx1NTIxMlx1NjI2N1x1ODg0Q1x1OTUxOVx1OEJFRlx1N0I1Nlx1NzU2NSJ9KSxjb2xQcm9wczp7bWQ6MjR9LHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdThCQTFcdTUyMTJcdTYyNjdcdTg4NENcdTk1MTlcdThCRUZcdTdCNTZcdTc1NjUiLHZhbHVlRW51bTp7MDoiXHU3QUNCXHU1MzczXHU2MjY3XHU4ODRDIiwxOiJcdTYyNjdcdTg4NENcdTRFMDBcdTZCMjEiLDM6Ilx1NjUzRVx1NUYwM1x1NjI2N1x1ODg0QyJ9LHJ1bGVzOlt7cmVxdWlyZWQ6ITEsbWVzc2FnZTooMCxuLmpzeCkoZC5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU4QkExXHU1MjEyXHU2MjY3XHU4ODRDXHU5NTE5XHU4QkVGXHU3QjU2XHU3NTY1XHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU4QkExXHU1MjEyXHU2MjY3XHU4ODRDXHU5NTE5XHU4QkVGXHU3QjU2XHU3NTY1XHVGRjAxIn0pfV0sZmllbGRQcm9wczp7b3B0aW9uVHlwZToiYnV0dG9uIixidXR0b25TdHlsZToic29saWQifX0pLCgwLG4uanN4KShpLlouR3JvdXAse25hbWU6ImNvbmN1cnJlbnQiLGxhYmVsOlAuZm9ybWF0TWVzc2FnZSh7aWQ6Im1vbml0b3Iuam9iLmNvbmN1cnJlbnQiLGRlZmF1bHRNZXNzYWdlOiJcdTY2MkZcdTU0MjZcdTVFNzZcdTUzRDFcdTYyNjdcdTg4NEMifSksY29sUHJvcHM6e21kOjI0fSxwbGFjZWhvbGRlcjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU2NjJGXHU1NDI2XHU1RTc2XHU1M0QxXHU2MjY3XHU4ODRDIix2YWx1ZUVudW06ezA6Ilx1NTE0MVx1OEJCOCIsMToiXHU3OTgxXHU2QjYyIn0scnVsZXM6W3tyZXF1aXJlZDohMSxtZXNzYWdlOigwLG4uanN4KShkLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTY2MkZcdTU0MjZcdTVFNzZcdTUzRDFcdTYyNjdcdTg4NENcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTY2MkZcdTU0MjZcdTVFNzZcdTUzRDFcdTYyNjdcdTg4NENcdUZGMDEifSl9XSxmaWVsZFByb3BzOntvcHRpb25UeXBlOiJidXR0b24iLGJ1dHRvblN0eWxlOiJzb2xpZCJ9fSksKDAsbi5qc3gpKGkuWi5Hcm91cCx7dmFsdWVFbnVtOk8sbmFtZToic3RhdHVzIixsYWJlbDpQLmZvcm1hdE1lc3NhZ2Uoe2lkOiJtb25pdG9yLmpvYi5zdGF0dXMiLGRlZmF1bHRNZXNzYWdlOiJcdTcyQjZcdTYwMDEifSksY29sUHJvcHM6e21kOjI0fSxwbGFjZWhvbGRlcjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU3MkI2XHU2MDAxIixydWxlczpbe3JlcXVpcmVkOiExLG1lc3NhZ2U6KDAsbi5qc3gpKGQuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NzJCNlx1NjAwMVx1RkYwMSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NzJCNlx1NjAwMVx1RkYwMSJ9KX1dfSldfSl9KX07VC5kZWZhdWx0PXV9fV0pOwpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy83MzMyLjU4Zjg2MTI2LmFzeW5jLmpzIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy83MzMyLjU4Zjg2MTI2LmFzeW5jLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUwODY2YWEKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzczMzIuNThmODYxMjYuYXN5bmMuanMKQEAgLTAsMCArMSBAQAorInVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvPXNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm98fFtdKS5wdXNoKFtbNzMzMl0sezQ3MzMyOmZ1bmN0aW9uKHMsZSxuKXtuLnIoZSl9fV0pOwpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy83MzMyLmVjYzM4N2NlLmNodW5rLmNzcyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNzMzMi5lY2MzODdjZS5jaHVuay5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2FmMWJjYQotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNzMzMi5lY2MzODdjZS5jaHVuay5jc3MKQEAgLTAsMCArMSBAQAorLmF2YXRhclByZXZpZXd7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKDUwJSwtNTAlKTt3aWR0aDoyMDBweDtoZWlnaHQ6MjAwcHg7Ym9yZGVyLXJhZGl1czo1MCU7Ym94LXNoYWRvdzowIDAgNHB4ICNjY2M7b3ZlcmZsb3c6aGlkZGVufQpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy83Mzg4Ljg1NjgwNTBiLmFzeW5jLmpzIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy83Mzg4Ljg1NjgwNTBiLmFzeW5jLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE4YTc1NWEKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzczODguODU2ODA1MGIuYXN5bmMuanMKQEAgLTAsMCArMSBAQAorInVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvPXNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm98fFtdKS5wdXNoKFtbNzM4OF0sezc3Mzg4OmZ1bmN0aW9uKHUsdCxuKXtuLnIodCk7dmFyIGQ9big2NzI5NCksZT1uKDg1ODkzKSxzPWZ1bmN0aW9uKCl7cmV0dXJuKDAsZS5qc3gpKCJkaXYiLHtjaGlsZHJlbjoiMTExIn0pfTt0LmRlZmF1bHQ9c319XSk7CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzc0MDcuNjk2NGEzZWYuYXN5bmMuanMgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzc0MDcuNjk2NGEzZWYuYXN5bmMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTRiMjhhYQotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNzQwNy42OTY0YTNlZi5hc3luYy5qcwpAQCAtMCwwICsxIEBACisidXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W10pLnB1c2goW1s3NDA3XSx7OTQxNjI6ZnVuY3Rpb24oeixJLG4pe3ZhciB1PW4oNjQ1OTkpLGg9bi5uKHUpLEQ9big2NzI5NCkseT1uKDY2MzA5KSx2PW4oODU4OTMpLEU9ZnVuY3Rpb24oYyl7ZnVuY3Rpb24gUihhKXtzd2l0Y2goYSl7Y2FzZSJwcmltYXJ5IjpyZXR1cm4iYmx1ZSI7Y2FzZSJzdWNjZXNzIjpyZXR1cm4ic3VjY2VzcyI7Y2FzZSJpbmZvIjpyZXR1cm4iZ3JlZW4iO2Nhc2Uid2FybmluZyI6cmV0dXJuIndhcm5pbmciO2Nhc2UiZGFuZ2VyIjpyZXR1cm4iZXJyb3IiO2Nhc2UiZGVmYXVsdCI6ZGVmYXVsdDpyZXR1cm4iZGVmYXVsdCJ9fWZ1bmN0aW9uICQoYSl7aWYoYT09PXZvaWQgMClyZXR1cm4iIjtpZihjLmVudW1zKXt2YXIgbT1jLmVudW1zW2FdO3JldHVybiBtLmxhYmVsfWlmKGMub3B0aW9ucyl7aWYoIUFycmF5LmlzQXJyYXkoYy5vcHRpb25zKSlyZXR1cm4gY29uc29sZS5sb2coIkRpY3RUYWcgb3B0aW9ucyBpcyBubyBhcnJheSEiKSwiIjt2YXIgcz1oKCkoYy5vcHRpb25zKSxnO3RyeXtmb3Iocy5zKCk7IShnPXMubigpKS5kb25lOyl7dmFyIHA9Zy52YWx1ZTtpZihwLnZhbHVlPT09YSlyZXR1cm4gcC50ZXh0fX1jYXRjaChvKXtzLmUobyl9ZmluYWxseXtzLmYoKX19cmV0dXJuIFN0cmluZyhjLnZhbHVlKX1mdW5jdGlvbiBPKGEpe2lmKGE9PT12b2lkIDApcmV0dXJuImRlZmF1bHQiO2lmKGMuZW51bXMpe3ZhciBtPWMuZW51bXNbYV07cmV0dXJuIG0ubGlzdENsYXNzfHwiZGVmYXVsdCJ9aWYoYy5vcHRpb25zKXtpZighQXJyYXkuaXNBcnJheShjLm9wdGlvbnMpKXJldHVybiBjb25zb2xlLmxvZygiRGljdFRhZyBvcHRpb25zIGlzIG5vIGFycmF5ISIpLCJkZWZhdWx0Ijt2YXIgcz1oKCkoYy5vcHRpb25zKSxnO3RyeXtmb3Iocy5zKCk7IShnPXMubigpKS5kb25lOyl7dmFyIHA9Zy52YWx1ZTtpZihwLnZhbHVlPT09YSlyZXR1cm4gcC5saXN0Q2xhc3N8fCJkZWZhdWx0In19Y2F0Y2gobyl7cy5lKG8pfWZpbmFsbHl7cy5mKCl9fXJldHVybiBTdHJpbmcoYy52YWx1ZSl9dmFyIGo9ZnVuY3Rpb24oKXtyZXR1cm4gUihPKGMudmFsdWUpLnRvTG93ZXJDYXNlKCkpfSxMPWZ1bmN0aW9uKCl7cmV0dXJuICQoYy52YWx1ZSl9O3JldHVybigwLHYuanN4KSh5Llose2NvbG9yOmooKSxjaGlsZHJlbjpMKCl9KX07SS5aPUV9LDM4MDAyOmZ1bmN0aW9uKHosSSxuKXtuLmQoSSx7S0Y6ZnVuY3Rpb24oKXtyZXR1cm4gcH0sTnk6ZnVuY3Rpb24oKXtyZXR1cm4gZ30sUTY6ZnVuY3Rpb24oKXtyZXR1cm4gc30sVTA6ZnVuY3Rpb24oKXtyZXR1cm4gTX0sanc6ZnVuY3Rpb24oKXtyZXR1cm4gYX19KTt2YXIgdT1uKDE1MDA5KSxoPW4ubih1KSxEPW4oOTkyODkpLHk9bi5uKEQpLHY9big3Njc3MiksRT1uKDMwOTY0KTtmdW5jdGlvbiBNKG8pe3JldHVybiBjLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBjKCl7cmV0dXJuIGM9eSgpKGgoKSgpLm1hcmsoZnVuY3Rpb24gbyhiKXtyZXR1cm4gaCgpKCkud3JhcChmdW5jdGlvbihpKXtmb3IoOzspc3dpdGNoKGkucHJldj1pLm5leHQpe2Nhc2UgMDpyZXR1cm4gaS5hYnJ1cHQoInJldHVybiIsKDAsdi5yZXF1ZXN0KSgiL2FwaS9tb25pdG9yL2xvZ2luaW5mb3IvbGlzdCIse21ldGhvZDoiR0VUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In0scGFyYW1zOmJ9KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gaS5zdG9wKCl9fSxvKX0pKSxjLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBSKG8pe3JldHVybiByZXF1ZXN0KCIvYXBpL21vbml0b3IvbG9naW5pbmZvci8iLmNvbmNhdChvKSx7bWV0aG9kOiJHRVQifSl9ZnVuY3Rpb24gJChvKXtyZXR1cm4gTy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gTygpe3JldHVybiBPPV9hc3luY1RvR2VuZXJhdG9yKF9yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIG8oYil7cmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uKGkpe2Zvcig7Oylzd2l0Y2goaS5wcmV2PWkubmV4dCl7Y2FzZSAwOnJldHVybiBpLmFicnVwdCgicmV0dXJuIixyZXF1ZXN0KCIvYXBpL21vbml0b3IvbG9naW5pbmZvciIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCJ9LGRhdGE6Yn0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBpLnN0b3AoKX19LG8pfSkpLE8uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGoobyl7cmV0dXJuIEwuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEwoKXtyZXR1cm4gTD1fYXN5bmNUb0dlbmVyYXRvcihfcmVnZW5lcmF0b3JSdW50aW1lKCkubWFyayhmdW5jdGlvbiBvKGIpe3JldHVybiBfcmVnZW5lcmF0b3JSdW50aW1lKCkud3JhcChmdW5jdGlvbihpKXtmb3IoOzspc3dpdGNoKGkucHJldj1pLm5leHQpe2Nhc2UgMDpyZXR1cm4gaS5hYnJ1cHQoInJldHVybiIscmVxdWVzdCgiL2FwaS9tb25pdG9yL2xvZ2luaW5mb3IiLHttZXRob2Q6IlBVVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCJ9LGRhdGE6Yn0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBpLnN0b3AoKX19LG8pfSkpLEwuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGEobyl7cmV0dXJuIG0uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIG0oKXtyZXR1cm4gbT15KCkoaCgpKCkubWFyayhmdW5jdGlvbiBvKGIpe3JldHVybiBoKCkoKS53cmFwKGZ1bmN0aW9uKGkpe2Zvcig7Oylzd2l0Y2goaS5wcmV2PWkubmV4dCl7Y2FzZSAwOnJldHVybiBpLmFicnVwdCgicmV0dXJuIiwoMCx2LnJlcXVlc3QpKCIvYXBpL21vbml0b3IvbG9naW5pbmZvci8iLmNvbmNhdChiKSx7bWV0aG9kOiJERUxFVEUifSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGkuc3RvcCgpfX0sbyl9KSksbS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gcyhvKXtyZXR1cm4oMCxFLnN1KSgiL2FwaS9tb25pdG9yL2xvZ2luaW5mb3IvZXhwb3J0Iix7cGFyYW1zOm99LCJsb2dpbmluZm9yXyIuY29uY2F0KG5ldyBEYXRlKCkuZ2V0VGltZSgpLCIueGxzeCIpKX1mdW5jdGlvbiBnKG8pe3JldHVybigwLHYucmVxdWVzdCkoIi9hcGkvbW9uaXRvci9sb2dpbmluZm9yL3VubG9jay8iK28se21ldGhvZDoiZ2V0In0pfWZ1bmN0aW9uIHAoKXtyZXR1cm4oMCx2LnJlcXVlc3QpKCIvYXBpL21vbml0b3IvbG9naW5pbmZvci9jbGVhbiIse21ldGhvZDoiZGVsZXRlIn0pfX0sMzA5NjQ6ZnVuY3Rpb24oeixJLG4pe24uZChJLHtwNjpmdW5jdGlvbigpe3JldHVybiAkfSxzdTpmdW5jdGlvbigpe3JldHVybiBPfX0pO3ZhciB1PW4oMTUwMDkpLGg9bi5uKHUpLEQ9big5Nzg1NykseT1uLm4oRCksdj1uKDk5Mjg5KSxFPW4ubih2KSxNPW4oNzY3NzIpLGM9e3hsc3g6ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0Iix6aXA6ImFwcGxpY2F0aW9uL3ppcCJ9O2Z1bmN0aW9uIFIoYSxtKXt2YXIgcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIiksZz1uZXcgQmxvYihbYS5kYXRhXSx7dHlwZTptfSkscD1uZXcgUmVnRXhwKCJmaWxlbmFtZT0oW147XStcXC5bXlxcLjtdKyk7KiIpLG89ZGVjb2RlVVJJKGEuaGVhZGVyc1siY29udGVudC1kaXNwb3NpdGlvbiJdKSxiPXAuZXhlYyhvKSxfPWI/YlsxXToiZmlsZSI7Xz1fLnJlcGxhY2UoLyIvZywiIikscy5zdHlsZS5kaXNwbGF5PSJub25lIixzLmhyZWY9VVJMLmNyZWF0ZU9iamVjdFVSTChnKSxzLnNldEF0dHJpYnV0ZSgiZG93bmxvYWQiLF8pLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocykscy5jbGljaygpLFVSTC5yZXZva2VPYmplY3RVUkwocy5ocmVmKSxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHMpfWZ1bmN0aW9uICQoYSl7KDAsTS5yZXF1ZXN0KShhLHttZXRob2Q6IkdFVCIscmVzcG9uc2VUeXBlOiJibG9iIixnZXRSZXNwb25zZTohMH0pLnRoZW4oZnVuY3Rpb24obSl7UihtLGMuemlwKX0pfWZ1bmN0aW9uIE8oYSxtLHMpe3JldHVybiBqLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBqKCl7cmV0dXJuIGo9RSgpKGgoKSgpLm1hcmsoZnVuY3Rpb24gYShtLHMsZyl7cmV0dXJuIGgoKSgpLndyYXAoZnVuY3Rpb24obyl7Zm9yKDs7KXN3aXRjaChvLnByZXY9by5uZXh0KXtjYXNlIDA6cmV0dXJuIG8uYWJydXB0KCJyZXR1cm4iLCgwLE0ucmVxdWVzdCkobSx5KCkoeSgpKHt9LHMpLHt9LHttZXRob2Q6IlBPU1QiLHJlc3BvbnNlVHlwZToiYmxvYiJ9KSkudGhlbihmdW5jdGlvbihiKXt2YXIgXz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIiksaT1iO18uc3R5bGUuZGlzcGxheT0ibm9uZSIsXy5ocmVmPVVSTC5jcmVhdGVPYmplY3RVUkwoaSksXy5zZXRBdHRyaWJ1dGUoImRvd25sb2FkIixnKSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKF8pLF8uY2xpY2soKSxVUkwucmV2b2tlT2JqZWN0VVJMKF8uaHJlZiksZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChfKX0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBvLnN0b3AoKX19LGEpfSkpLGouYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEwoYSl7d2luZG93LmxvY2F0aW9uLmhyZWY9Ii9hcGkvY29tbW9uL2Rvd25sb2FkP2ZpbGVOYW1lPSIuY29uY2F0KGVuY29kZVVSSShhKSwiJmRlbGV0ZT0iLCEwKX19LDY2MzA5OmZ1bmN0aW9uKHosSSxuKXtuLmQoSSx7WjpmdW5jdGlvbigpe3JldHVybiBzZX19KTt2YXIgdT1uKDY3Mjk0KSxoPW4oOTM5NjcpLEQ9bi5uKGgpLHk9big5ODQyMyksdj1uKDk4Nzg3KSxFPW4oNjk3NjApLE09big5NjE1OSksYz1uKDQ1MzUzKSxSPW4oNTMxMjQpLCQ9bigxMTU2OCksTz1uKDE1MDYzKSxqPW4oMTQ3NDcpLEw9big4MzI2MiksYT1uKDgzNTU5KTtjb25zdCBtPWU9Pntjb25zdHtwYWRkaW5nWFhTOmwsbGluZVdpZHRoOmQsdGFnUGFkZGluZ0hvcml6b250YWw6cixjb21wb25lbnRDbHM6dCxjYWxjOlR9PWUsZj1UKHIpLnN1YihkKS5lcXVhbCgpLEE9VChsKS5zdWIoZCkuZXF1YWwoKTtyZXR1cm57W3RdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwoMCxqLldmKShlKSkse2Rpc3BsYXk6ImlubGluZS1ibG9jayIsaGVpZ2h0OiJhdXRvIixtYXJnaW5JbmxpbmVFbmQ6ZS5tYXJnaW5YUyxwYWRkaW5nSW5saW5lOmYsZm9udFNpemU6ZS50YWdGb250U2l6ZSxsaW5lSGVpZ2h0OmUudGFnTGluZUhlaWdodCx3aGl0ZVNwYWNlOiJub3dyYXAiLGJhY2tncm91bmQ6ZS5kZWZhdWx0QmcsYm9yZGVyOmAkeygwLCQuYmYpKGUubGluZVdpZHRoKX0gJHtlLmxpbmVUeXBlfSAke2UuY29sb3JCb3JkZXJ9YCxib3JkZXJSYWRpdXM6ZS5ib3JkZXJSYWRpdXNTTSxvcGFjaXR5OjEsdHJhbnNpdGlvbjpgYWxsICR7ZS5tb3Rpb25EdXJhdGlvbk1pZH1gLHRleHRBbGlnbjoic3RhcnQiLHBvc2l0aW9uOiJyZWxhdGl2ZSIsW2AmJHt0fS1ydGxgXTp7ZGlyZWN0aW9uOiJydGwifSwiJiwgYSwgYTpob3ZlciI6e2NvbG9yOmUuZGVmYXVsdENvbG9yfSxbYCR7dH0tY2xvc2UtaWNvbmBdOnttYXJnaW5JbmxpbmVTdGFydDpBLGZvbnRTaXplOmUudGFnSWNvblNpemUsY29sb3I6ZS5jb2xvclRleHREZXNjcmlwdGlvbixjdXJzb3I6InBvaW50ZXIiLHRyYW5zaXRpb246YGFsbCAke2UubW90aW9uRHVyYXRpb25NaWR9YCwiJjpob3ZlciI6e2NvbG9yOmUuY29sb3JUZXh0SGVhZGluZ319LFtgJiR7dH0taGFzLWNvbG9yYF06e2JvcmRlckNvbG9yOiJ0cmFuc3BhcmVudCIsW2AmLCBhLCBhOmhvdmVyLCAke2UuaWNvbkNsc30tY2xvc2UsICR7ZS5pY29uQ2xzfS1jbG9zZTpob3ZlcmBdOntjb2xvcjplLmNvbG9yVGV4dExpZ2h0U29saWR9fSwiJi1jaGVja2FibGUiOntiYWNrZ3JvdW5kQ29sb3I6InRyYW5zcGFyZW50Iixib3JkZXJDb2xvcjoidHJhbnNwYXJlbnQiLGN1cnNvcjoicG9pbnRlciIsW2AmOm5vdCgke3R9LWNoZWNrYWJsZS1jaGVja2VkKTpob3ZlcmBdOntjb2xvcjplLmNvbG9yUHJpbWFyeSxiYWNrZ3JvdW5kQ29sb3I6ZS5jb2xvckZpbGxTZWNvbmRhcnl9LCImOmFjdGl2ZSwgJi1jaGVja2VkIjp7Y29sb3I6ZS5jb2xvclRleHRMaWdodFNvbGlkfSwiJi1jaGVja2VkIjp7YmFja2dyb3VuZENvbG9yOmUuY29sb3JQcmltYXJ5LCImOmhvdmVyIjp7YmFja2dyb3VuZENvbG9yOmUuY29sb3JQcmltYXJ5SG92ZXJ9fSwiJjphY3RpdmUiOntiYWNrZ3JvdW5kQ29sb3I6ZS5jb2xvclByaW1hcnlBY3RpdmV9fSwiJi1oaWRkZW4iOntkaXNwbGF5OiJub25lIn0sW2A+ICR7ZS5pY29uQ2xzfSArIHNwYW4sID4gc3BhbiArICR7ZS5pY29uQ2xzfWBdOnttYXJnaW5JbmxpbmVTdGFydDpmfX0pLFtgJHt0fS1ib3JkZXJsZXNzYF06e2JvcmRlckNvbG9yOiJ0cmFuc3BhcmVudCIsYmFja2dyb3VuZDplLnRhZ0JvcmRlcmxlc3NCZ319fSxzPWU9Pntjb25zdHtsaW5lV2lkdGg6bCxmb250U2l6ZUljb246ZCxjYWxjOnJ9PWUsdD1lLmZvbnRTaXplU007cmV0dXJuKDAsTC5JWCkoZSx7dGFnRm9udFNpemU6dCx0YWdMaW5lSGVpZ2h0OigwLCQuYmYpKHIoZS5saW5lSGVpZ2h0U00pLm11bCh0KS5lcXVhbCgpKSx0YWdJY29uU2l6ZTpyKGQpLnN1YihyKGwpLm11bCgyKSkuZXF1YWwoKSx0YWdQYWRkaW5nSG9yaXpvbnRhbDo4LHRhZ0JvcmRlcmxlc3NCZzplLmRlZmF1bHRCZ30pfSxnPWU9Pih7ZGVmYXVsdEJnOm5ldyBPLnQoZS5jb2xvckZpbGxRdWF0ZXJuYXJ5KS5vbkJhY2tncm91bmQoZS5jb2xvckJnQ29udGFpbmVyKS50b0hleFN0cmluZygpLGRlZmF1bHRDb2xvcjplLmNvbG9yVGV4dH0pO3ZhciBwPSgwLGEuSSQpKCJUYWciLGU9Pntjb25zdCBsPXMoZSk7cmV0dXJuIG0obCl9LGcpLG89ZnVuY3Rpb24oZSxsKXt2YXIgZD17fTtmb3IodmFyIHIgaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxyKSYmbC5pbmRleE9mKHIpPDAmJihkW3JdPWVbcl0pO2lmKGUhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgdD0wLHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0PHIubGVuZ3RoO3QrKylsLmluZGV4T2Yoclt0XSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsclt0XSkmJihkW3JbdF1dPWVbclt0XV0pO3JldHVybiBkfSxfPXUuZm9yd2FyZFJlZigoZSxsKT0+e2NvbnN0e3ByZWZpeENsczpkLHN0eWxlOnIsY2xhc3NOYW1lOnQsY2hlY2tlZDpULG9uQ2hhbmdlOmYsb25DbGljazpBfT1lLHg9byhlLFsicHJlZml4Q2xzIiwic3R5bGUiLCJjbGFzc05hbWUiLCJjaGVja2VkIiwib25DaGFuZ2UiLCJvbkNsaWNrIl0pLHtnZXRQcmVmaXhDbHM6dyx0YWc6U309dS51c2VDb250ZXh0KFIuRV8pLEg9Sz0+e2Y9PW51bGx8fGYoIVQpLEE9PW51bGx8fEEoSyl9LEI9dygidGFnIixkKSxbRixHLFBdPXAoQiksVj1EKCkoQixgJHtCfS1jaGVja2FibGVgLHtbYCR7Qn0tY2hlY2thYmxlLWNoZWNrZWRgXTpUfSxTPT1udWxsP3ZvaWQgMDpTLmNsYXNzTmFtZSx0LEcsUCk7cmV0dXJuIEYodS5jcmVhdGVFbGVtZW50KCJzcGFuIixPYmplY3QuYXNzaWduKHt9LHgse3JlZjpsLHN0eWxlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxyKSxTPT1udWxsP3ZvaWQgMDpTLnN0eWxlKSxjbGFzc05hbWU6VixvbkNsaWNrOkh9KSkpfSksaT1uKDk4NzE5KTtjb25zdCByZT1lPT4oMCxpLlopKGUsKGwsZCk9PntsZXR7dGV4dENvbG9yOnIsbGlnaHRCb3JkZXJDb2xvcjp0LGxpZ2h0Q29sb3I6VCxkYXJrQ29sb3I6Zn09ZDtyZXR1cm57W2Ake2UuY29tcG9uZW50Q2xzfSR7ZS5jb21wb25lbnRDbHN9LSR7bH1gXTp7Y29sb3I6cixiYWNrZ3JvdW5kOlQsYm9yZGVyQ29sb3I6dCwiJi1pbnZlcnNlIjp7Y29sb3I6ZS5jb2xvclRleHRMaWdodFNvbGlkLGJhY2tncm91bmQ6Zixib3JkZXJDb2xvcjpmfSxbYCYke2UuY29tcG9uZW50Q2xzfS1ib3JkZXJsZXNzYF06e2JvcmRlckNvbG9yOiJ0cmFuc3BhcmVudCJ9fX19KTt2YXIgb2U9KDAsYS5iaykoWyJUYWciLCJwcmVzZXQiXSxlPT57Y29uc3QgbD1zKGUpO3JldHVybiByZShsKX0sZyk7ZnVuY3Rpb24gdGUoZSl7cmV0dXJuIHR5cGVvZiBlIT0ic3RyaW5nIj9lOmUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrZS5zbGljZSgxKX1jb25zdCBOPShlLGwsZCk9Pntjb25zdCByPXRlKGQpO3JldHVybntbYCR7ZS5jb21wb25lbnRDbHN9JHtlLmNvbXBvbmVudENsc30tJHtsfWBdOntjb2xvcjplW2Bjb2xvciR7ZH1gXSxiYWNrZ3JvdW5kOmVbYGNvbG9yJHtyfUJnYF0sYm9yZGVyQ29sb3I6ZVtgY29sb3Ike3J9Qm9yZGVyYF0sW2AmJHtlLmNvbXBvbmVudENsc30tYm9yZGVybGVzc2BdOntib3JkZXJDb2xvcjoidHJhbnNwYXJlbnQifX19fTt2YXIgYWU9KDAsYS5iaykoWyJUYWciLCJzdGF0dXMiXSxlPT57Y29uc3QgbD1zKGUpO3JldHVybltOKGwsInN1Y2Nlc3MiLCJTdWNjZXNzIiksTihsLCJwcm9jZXNzaW5nIiwiSW5mbyIpLE4obCwiZXJyb3IiLCJFcnJvciIpLE4obCwid2FybmluZyIsIldhcm5pbmciKV19LGcpLGxlPWZ1bmN0aW9uKGUsbCl7dmFyIGQ9e307Zm9yKHZhciByIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikmJmwuaW5kZXhPZihyKTwwJiYoZFtyXT1lW3JdKTtpZihlIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIHQ9MCxyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dDxyLmxlbmd0aDt0KyspbC5pbmRleE9mKHJbdF0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLHJbdF0pJiYoZFtyW3RdXT1lW3JbdF1dKTtyZXR1cm4gZH07Y29uc3QgUT11LmZvcndhcmRSZWYoKGUsbCk9Pntjb25zdHtwcmVmaXhDbHM6ZCxjbGFzc05hbWU6cixyb290Q2xhc3NOYW1lOnQsc3R5bGU6VCxjaGlsZHJlbjpmLGljb246QSxjb2xvcjp4LG9uQ2xvc2U6dyxib3JkZXJlZDpTPSEwLHZpc2libGU6SH09ZSxCPWxlKGUsWyJwcmVmaXhDbHMiLCJjbGFzc05hbWUiLCJyb290Q2xhc3NOYW1lIiwic3R5bGUiLCJjaGlsZHJlbiIsImljb24iLCJjb2xvciIsIm9uQ2xvc2UiLCJib3JkZXJlZCIsInZpc2libGUiXSkse2dldFByZWZpeENsczpGLGRpcmVjdGlvbjpHLHRhZzpQfT11LnVzZUNvbnRleHQoUi5FXyksW1YsS109dS51c2VTdGF0ZSghMCksaWU9KDAseS5aKShCLFsiY2xvc2VJY29uIiwiY2xvc2FibGUiXSk7dS51c2VFZmZlY3QoKCk9PntIIT09dm9pZCAwJiZLKEgpfSxbSF0pO2NvbnN0IEo9KDAsdi5vMikoeCksWT0oMCx2LnlUKSh4KSxaPUp8fFksY2U9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHtiYWNrZ3JvdW5kQ29sb3I6eCYmIVo/eDp2b2lkIDB9LFA9PW51bGw/dm9pZCAwOlAuc3R5bGUpLFQpLEM9RigidGFnIixkKSxbdWUsZGUsX2VdPXAoQyksbWU9RCgpKEMsUD09bnVsbD92b2lkIDA6UC5jbGFzc05hbWUse1tgJHtDfS0ke3h9YF06WixbYCR7Q30taGFzLWNvbG9yYF06eCYmIVosW2Ake0N9LWhpZGRlbmBdOiFWLFtgJHtDfS1ydGxgXTpHPT09InJ0bCIsW2Ake0N9LWJvcmRlcmxlc3NgXTohU30scix0LGRlLF9lKSxrPVU9PntVLnN0b3BQcm9wYWdhdGlvbigpLHc9PW51bGx8fHcoVSksIVUuZGVmYXVsdFByZXZlbnRlZCYmSyghMSl9LFssZ2VdPSgwLEUuWikoKDAsRS53KShlKSwoMCxFLncpKFApLHtjbG9zYWJsZTohMSxjbG9zZUljb25SZW5kZXI6VT0+e2NvbnN0IGJlPXUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpgJHtDfS1jbG9zZS1pY29uYCxvbkNsaWNrOmt9LFUpO3JldHVybigwLE0ud20pKFUsYmUsVz0+KHtvbkNsaWNrOm5lPT57dmFyIFg7KFg9Vz09bnVsbD92b2lkIDA6Vy5vbkNsaWNrKT09PW51bGx8fFg9PT12b2lkIDB8fFguY2FsbChXLG5lKSxrKG5lKX0sY2xhc3NOYW1lOkQoKShXPT1udWxsP3ZvaWQgMDpXLmNsYXNzTmFtZSxgJHtDfS1jbG9zZS1pY29uYCl9KSl9fSksZmU9dHlwZW9mIEIub25DbGljaz09ImZ1bmN0aW9uInx8ZiYmZi50eXBlPT09ImEiLHE9QXx8bnVsbCxwZT1xP3UuY3JlYXRlRWxlbWVudCh1LkZyYWdtZW50LG51bGwscSxmJiZ1LmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwsZikpOmYsZWU9dS5jcmVhdGVFbGVtZW50KCJzcGFuIixPYmplY3QuYXNzaWduKHt9LGllLHtyZWY6bCxjbGFzc05hbWU6bWUsc3R5bGU6Y2V9KSxwZSxnZSxKJiZ1LmNyZWF0ZUVsZW1lbnQob2Use2tleToicHJlc2V0IixwcmVmaXhDbHM6Q30pLFkmJnUuY3JlYXRlRWxlbWVudChhZSx7a2V5OiJzdGF0dXMiLHByZWZpeENsczpDfSkpO3JldHVybiB1ZShmZT91LmNyZWF0ZUVsZW1lbnQoYy5aLHtjb21wb25lbnQ6IlRhZyJ9LGVlKTplZSl9KTtRLkNoZWNrYWJsZVRhZz1fO3ZhciBzZT1RfX1dKTsKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNzYyOS5mZDliM2FiOS5jaHVuay5jc3MgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzc2MjkuZmQ5YjNhYjkuY2h1bmsuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRjMjdmNDAKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzc2MjkuZmQ5YjNhYjkuY2h1bmsuY3NzCkBAIC0wLDAgKzEgQEAKKy5zdGVwc19fX19zdFpELmFudC1zdGVwc3ttYXgtd2lkdGg6NzUwcHg7bWFyZ2luOjE2cHggYXV0b30KZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNzY2Mi5mNTdjOTY2My5hc3luYy5qcyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNzY2Mi5mNTdjOTY2My5hc3luYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMTBlM2IwCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy83NjYyLmY1N2M5NjYzLmFzeW5jLmpzCkBAIC0wLDAgKzEgQEAKKyJ1c2Ugc3RyaWN0Ijsoc2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Bybz1zZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvfHxbXSkucHVzaChbWzc2NjJdLHs3NjYyOmZ1bmN0aW9uKGZlLFUscCl7cC5kKFUse0FqOmZ1bmN0aW9uKCl7cmV0dXJuIGNlfSxCMTpmdW5jdGlvbigpe3JldHVybiBvZX0sQ1A6ZnVuY3Rpb24oKXtyZXR1cm4gUX0sRGQ6ZnVuY3Rpb24oKXtyZXR1cm4gaGV9LEZ4OmZ1bmN0aW9uKCl7cmV0dXJuIEp9LElyOmZ1bmN0aW9uKCl7cmV0dXJuIEt9LEl4OmZ1bmN0aW9uKCl7cmV0dXJuIFp9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHJlfSxOUjpmdW5jdGlvbigpe3JldHVybiBtZX0sUkI6ZnVuY3Rpb24oKXtyZXR1cm4gc2V9LFNxOmZ1bmN0aW9uKCl7cmV0dXJuIGVlfSxVSTpmdW5jdGlvbigpe3JldHVybiBGfSxWTzpmdW5jdGlvbigpe3JldHVybiB0ZX0sXzQ6ZnVuY3Rpb24oKXtyZXR1cm4gaWV9LGFvOmZ1bmN0aW9uKCl7cmV0dXJuIHh9LGRmOmZ1bmN0aW9uKCl7cmV0dXJuIFl9LGZQOmZ1bmN0aW9uKCl7cmV0dXJuIHVlfSxmUjpmdW5jdGlvbigpe3JldHVybiBYfSxrJDpmdW5jdGlvbigpe3JldHVybiBuZX0sbTg6ZnVuY3Rpb24oKXtyZXR1cm4gcGV9LG1LOmZ1bmN0aW9uKCl7cmV0dXJuIGxlfSxtTjpmdW5jdGlvbigpe3JldHVybiBOfSxtYjpmdW5jdGlvbigpe3JldHVybiB6fSxvZzpmdW5jdGlvbigpe3JldHVybiBhZX0scXA6ZnVuY3Rpb24oKXtyZXR1cm4gVn0sc2k6ZnVuY3Rpb24oKXtyZXR1cm4gSH19KTt2YXIgVz1wKDE1MDA5KSxhPXAubihXKSxJPXAoOTkyODkpLHM9cC5uKEkpLGk9cCg3Njc3Mik7ZnVuY3Rpb24gRihyKXtyZXR1cm4gbC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gbCgpe3JldHVybiBsPXMoKShhKCkoKS5tYXJrKGZ1bmN0aW9uIHIodCl7cmV0dXJuIGEoKSgpLndyYXAoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIGNvbnNvbGUubG9nKCJnZXRQb3N0TGlzdCIsdCksZS5hYnJ1cHQoInJldHVybiIsKDAsaS5yZXF1ZXN0KSgiL2FwaS9wb3N0LWNlbnRlci9saXN0Iix7bWV0aG9kOiJHRVQiLHBhcmFtczp0fSkpO2Nhc2UgMjpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0scil9KSksbC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gSChyKXtyZXR1cm4gbS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gbSgpe3JldHVybiBtPXMoKShhKCkoKS5tYXJrKGZ1bmN0aW9uIHIodCl7cmV0dXJuIGEoKSgpLndyYXAoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIGNvbnNvbGUubG9nKCJnZXRQb3N0RGV0YWlsIix0KSxlLmFicnVwdCgicmV0dXJuIiwoMCxpLnJlcXVlc3QpKCIvYXBpL3Bvc3QtY2VudGVyLyIuY29uY2F0KHQpLHttZXRob2Q6IkdFVCJ9KSk7Y2FzZSAyOmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSxyKX0pKSxtLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBLKHIpe3JldHVybiBoLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBoKCl7cmV0dXJuIGg9cygpKGEoKSgpLm1hcmsoZnVuY3Rpb24gcih0KXtyZXR1cm4gYSgpKCkud3JhcChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gY29uc29sZS5sb2coImFkZENvbW1lbnQiLHQpLGUuYWJydXB0KCJyZXR1cm4iLCgwLGkucmVxdWVzdCkoIi9hcGkvcG9zdC1jZW50ZXIvY29tbWVudCIse21ldGhvZDoiUE9TVCIsZGF0YTp0fSkpO2Nhc2UgMjpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0scil9KSksaC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gTihyLHQpe3JldHVybiBmLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBmKCl7cmV0dXJuIGY9cygpKGEoKSgpLm1hcmsoZnVuY3Rpb24gcih0LG4pe3JldHVybiBhKCkoKS53cmFwKGZ1bmN0aW9uKHUpe2Zvcig7Oylzd2l0Y2godS5wcmV2PXUubmV4dCl7Y2FzZSAwOnJldHVybiBjb25zb2xlLmxvZygidG9nZ2xlRmF2b3JpdGUiLHQsbiksdS5hYnJ1cHQoInJldHVybiIsKDAsaS5yZXF1ZXN0KSgiL2FwaS9wb3N0LWNlbnRlci9mYXZvcml0ZS8iLmNvbmNhdCh0KSx7bWV0aG9kOiJQT1NUIixwYXJhbXM6e2Zhdm9yaXRlOm59fSkpO2Nhc2UgMjpjYXNlImVuZCI6cmV0dXJuIHUuc3RvcCgpfX0scil9KSksZi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gZ2UoKXtyZXR1cm4gZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gZygpe3JldHVybiBnPV9hc3luY1RvR2VuZXJhdG9yKF9yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIHIoKXtyZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24obil7Zm9yKDs7KXN3aXRjaChuLnByZXY9bi5uZXh0KXtjYXNlIDA6cmV0dXJuIG4uYWJydXB0KCJyZXR1cm4iLHJlcXVlc3QoIi9hcGkvcG9zdC1jZW50ZXIvdGFncy9ob3QiLHttZXRob2Q6IkdFVCJ9KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gbi5zdG9wKCl9fSxyKX0pKSxnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBfZShyKXtyZXR1cm4gXy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gXygpe3JldHVybiBfPV9hc3luY1RvR2VuZXJhdG9yKF9yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIHIodCl7cmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOnJldHVybiBjb25zb2xlLmxvZygiZ2V0UG9zdHNCeVRhZyIsdCksZS5hYnJ1cHQoInJldHVybiIscmVxdWVzdCgiL2FwaS9wb3N0LWNlbnRlci9ieXRhZy8iLmNvbmNhdCh0KSx7bWV0aG9kOiJHRVQifSkpO2Nhc2UgMjpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0scil9KSksXy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gSihyKXtyZXR1cm4gZC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gZCgpe3JldHVybiBkPXMoKShhKCkoKS5tYXJrKGZ1bmN0aW9uIHIodCl7cmV0dXJuIGEoKSgpLndyYXAoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLCgwLGkucmVxdWVzdCkoIi9hcGkvcG9zdC1jZW50ZXIvcHVibGlzaCIse21ldGhvZDoiUE9TVCIsZGF0YTp0fSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0scil9KSksZC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gVihyKXtyZXR1cm4gdy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gdygpe3JldHVybiB3PXMoKShhKCkoKS5tYXJrKGZ1bmN0aW9uIHIodCl7cmV0dXJuIGEoKSgpLndyYXAoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLCgwLGkucmVxdWVzdCkoIi9hcGkvcG9zdC1jZW50ZXIvbXktcG9zdHMiLHttZXRob2Q6IkdFVCIscGFyYW1zOnR9KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSxyKX0pKSx3LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiB6KHIpe3JldHVybiB5LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiB5KCl7cmV0dXJuIHk9cygpKGEoKSgpLm1hcmsoZnVuY3Rpb24gcih0KXtyZXR1cm4gYSgpKCkud3JhcChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsKDAsaS5yZXF1ZXN0KSgiL2FwaS9wb3N0LWNlbnRlci9teS1mYXZvcml0ZXMiLHttZXRob2Q6IkdFVCIscGFyYW1zOnR9KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSxyKX0pKSx5LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBRKHIpe3JldHVybiBQLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBQKCl7cmV0dXJuIFA9cygpKGEoKSgpLm1hcmsoZnVuY3Rpb24gcih0KXtyZXR1cm4gYSgpKCkud3JhcChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsKDAsaS5yZXF1ZXN0KSgiL2FwaS9wb3N0LWNlbnRlci91cGRhdGUiLHttZXRob2Q6IlBVVCIsZGF0YTp0fSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0scil9KSksUC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gWChyKXtyZXR1cm4gYi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gYigpe3JldHVybiBiPXMoKShhKCkoKS5tYXJrKGZ1bmN0aW9uIHIodCl7cmV0dXJuIGEoKSgpLndyYXAoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLCgwLGkucmVxdWVzdCkoIi9hcGkvcG9zdC1jZW50ZXIvZGVsZXRlLyIuY29uY2F0KHQpLHttZXRob2Q6IkRFTEVURSJ9KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSxyKX0pKSxiLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBZKCl7cmV0dXJuIFQuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIFQoKXtyZXR1cm4gVD1zKCkoYSgpKCkubWFyayhmdW5jdGlvbiByKCl7cmV0dXJuIGEoKSgpLndyYXAoZnVuY3Rpb24obil7Zm9yKDs7KXN3aXRjaChuLnByZXY9bi5uZXh0KXtjYXNlIDA6cmV0dXJuIG4uYWJydXB0KCJyZXR1cm4iLCgwLGkucmVxdWVzdCkoIi9hcGkvcG9zdC1jZW50ZXIvdGFncy9hdmFpbGFibGUiLHttZXRob2Q6IkdFVCJ9KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gbi5zdG9wKCl9fSxyKX0pKSxULmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBaKHIpe3JldHVybiB2LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiB2KCl7cmV0dXJuIHY9cygpKGEoKSgpLm1hcmsoZnVuY3Rpb24gcih0KXtyZXR1cm4gYSgpKCkud3JhcChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsKDAsaS5yZXF1ZXN0KSgiL2FwaS9wb3N0LWNlbnRlci91cGxvYWQiLHttZXRob2Q6IlBPU1QiLGRhdGE6dH0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19LHIpfSkpLHYuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHgocil7cmV0dXJuIGsuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGsoKXtyZXR1cm4gaz1zKCkoYSgpKCkubWFyayhmdW5jdGlvbiByKHQpe3JldHVybiBhKCkoKS53cmFwKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOnJldHVybiBlLmFicnVwdCgicmV0dXJuIiwoMCxpLnJlcXVlc3QpKCIvYXBpL3Bvc3QtY2VudGVyL3VwbG9hZCIse21ldGhvZDoiREVMRVRFIixwYXJhbXM6e2ZpbGVuYW1lOnR9fSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0scil9KSksay5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gZWUoKXtyZXR1cm4gRS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gRSgpe3JldHVybiBFPXMoKShhKCkoKS5tYXJrKGZ1bmN0aW9uIHIoKXtyZXR1cm4gYSgpKCkud3JhcChmdW5jdGlvbihuKXtmb3IoOzspc3dpdGNoKG4ucHJldj1uLm5leHQpe2Nhc2UgMDpyZXR1cm4gbi5hYnJ1cHQoInJldHVybiIsKDAsaS5yZXF1ZXN0KSgiL2FwaS9wb3N0LWNlbnRlci9wcm9tb3Rpb24tcGxhbnMiLHttZXRob2Q6IkdFVCJ9KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gbi5zdG9wKCl9fSxyKX0pKSxFLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiByZShyKXtyZXR1cm4gJC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gJCgpe3JldHVybiAkPXMoKShhKCkoKS5tYXJrKGZ1bmN0aW9uIHIodCl7cmV0dXJuIGEoKSgpLndyYXAoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLCgwLGkucmVxdWVzdCkoIi9hcGkvcG9zdC1jZW50ZXIvcGF5bWVudCIse21ldGhvZDoiUE9TVCIsZGF0YTp0fSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0scil9KSksJC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gdGUocix0KXtyZXR1cm4gcS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gcSgpe3JldHVybiBxPXMoKShhKCkoKS5tYXJrKGZ1bmN0aW9uIHIodCxuKXtyZXR1cm4gYSgpKCkud3JhcChmdW5jdGlvbih1KXtmb3IoOzspc3dpdGNoKHUucHJldj11Lm5leHQpe2Nhc2UgMDpyZXR1cm4gY29uc29sZS5sb2coInRvZ2dsZUxpa2UiLHQsbiksdS5hYnJ1cHQoInJldHVybiIsKDAsaS5yZXF1ZXN0KSgiL2FwaS9wb3N0LWNlbnRlci9saWtlLyIuY29uY2F0KHQpLHttZXRob2Q6IlBPU1QiLHBhcmFtczp7bGlrZTpufX0pKTtjYXNlIDI6Y2FzZSJlbmQiOnJldHVybiB1LnN0b3AoKX19LHIpfSkpLHEuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIG5lKCl7cmV0dXJuIEQuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEQoKXtyZXR1cm4gRD1zKCkoYSgpKCkubWFyayhmdW5jdGlvbiByKCl7cmV0dXJuIGEoKSgpLndyYXAoZnVuY3Rpb24obil7Zm9yKDs7KXN3aXRjaChuLnByZXY9bi5uZXh0KXtjYXNlIDA6cmV0dXJuIG4uYWJydXB0KCJyZXR1cm4iLCgwLGkucmVxdWVzdCkoIi9hcGkvcG9zdC1jZW50ZXIvcHJvbW90aW9uIix7bWV0aG9kOiJHRVQifSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIG4uc3RvcCgpfX0scil9KSksRC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gYWUocix0KXtyZXR1cm4gTy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gTygpe3JldHVybiBPPXMoKShhKCkoKS5tYXJrKGZ1bmN0aW9uIHIodCxuKXtyZXR1cm4gYSgpKCkud3JhcChmdW5jdGlvbih1KXtmb3IoOzspc3dpdGNoKHUucHJldj11Lm5leHQpe2Nhc2UgMDpyZXR1cm4gY29uc29sZS5sb2coInRvZ2dsZUNvbW1lbnRMaWtlIix0LG4pLHUuYWJydXB0KCJyZXR1cm4iLCgwLGkucmVxdWVzdCkoIi9hcGkvcG9zdC1jZW50ZXIvY29tbWVudC9saWtlLyIuY29uY2F0KHQpLHttZXRob2Q6IlBPU1QiLHBhcmFtczp7bGlrZTpufX0pKTtjYXNlIDI6Y2FzZSJlbmQiOnJldHVybiB1LnN0b3AoKX19LHIpfSkpLE8uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHVlKHIpe3JldHVybiBSLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBSKCl7cmV0dXJuIFI9cygpKGEoKSgpLm1hcmsoZnVuY3Rpb24gcih0KXtyZXR1cm4gYSgpKCkud3JhcChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsKDAsaS5yZXF1ZXN0KSgiL2FwaS9wb3N0L3Jldmlldy9saXN0Iix7bWV0aG9kOiJHRVQiLHBhcmFtczp0fSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0scil9KSksUi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gc2Uocix0LG4pe3JldHVybiBMLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBMKCl7cmV0dXJuIEw9cygpKGEoKSgpLm1hcmsoZnVuY3Rpb24gcih0LG4sZSl7cmV0dXJuIGEoKSgpLndyYXAoZnVuY3Rpb24obyl7Zm9yKDs7KXN3aXRjaChvLnByZXY9by5uZXh0KXtjYXNlIDA6cmV0dXJuIG8uYWJydXB0KCJyZXR1cm4iLCgwLGkucmVxdWVzdCkoIi9hcGkvcG9zdC9yZXZpZXcvIi5jb25jYXQodCkse21ldGhvZDoiUFVUIixkYXRhOnthY3Rpb246bixyZWFzb246ZX19KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gby5zdG9wKCl9fSxyKX0pKSxMLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBpZShyLHQpe3JldHVybiBHLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBHKCl7cmV0dXJuIEc9cygpKGEoKSgpLm1hcmsoZnVuY3Rpb24gcih0LG4pe3JldHVybiBhKCkoKS53cmFwKGZ1bmN0aW9uKHUpe2Zvcig7Oylzd2l0Y2godS5wcmV2PXUubmV4dCl7Y2FzZSAwOnJldHVybiB1LmFicnVwdCgicmV0dXJuIiwoMCxpLnJlcXVlc3QpKCIvYXBpL3Bvc3QvdGFrZWRvd24vIi5jb25jYXQodCkse21ldGhvZDoiUFVUIixkYXRhOntyZWFzb246bn19KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gdS5zdG9wKCl9fSxyKX0pKSxHLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBwZShyKXtyZXR1cm4gQy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gQygpe3JldHVybiBDPXMoKShhKCkoKS5tYXJrKGZ1bmN0aW9uIHIodCl7cmV0dXJuIGEoKSgpLndyYXAoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLCgwLGkucmVxdWVzdCkoIi9hcGkvcG9zdC1jZW50ZXIvcHJvbW90aW9uLXN0YXR1cy8iLmNvbmNhdCh0KSx7bWV0aG9kOiJHRVQifSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0scil9KSksQy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gb2Uocil7cmV0dXJuIE0uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIE0oKXtyZXR1cm4gTT1zKCkoYSgpKCkubWFyayhmdW5jdGlvbiByKHQpe3JldHVybiBhKCkoKS53cmFwKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOnJldHVybiBlLmFicnVwdCgicmV0dXJuIiwoMCxpLnJlcXVlc3QpKCIvYXBpL3Bvc3QtY2VudGVyL3BheW1lbnQvY29uZmlybS8iLmNvbmNhdCh0KSx7bWV0aG9kOiJQT1NUIn0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19LHIpfSkpLE0uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGNlKHIpe3JldHVybiBTLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBTKCl7cmV0dXJuIFM9cygpKGEoKSgpLm1hcmsoZnVuY3Rpb24gcih0KXtyZXR1cm4gYSgpKCkud3JhcChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsKDAsaS5yZXF1ZXN0KSgiL2FwaS9wb3N0LWNlbnRlci9wYXltZW50L2NhbmNlbC8iLmNvbmNhdCh0KSx7bWV0aG9kOiJQT1NUIn0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19LHIpfSkpLFMuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGxlKHIsdCl7cmV0dXJuIEEuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEEoKXtyZXR1cm4gQT1zKCkoYSgpKCkubWFyayhmdW5jdGlvbiByKHQsbil7cmV0dXJuIGEoKSgpLndyYXAoZnVuY3Rpb24odSl7Zm9yKDs7KXN3aXRjaCh1LnByZXY9dS5uZXh0KXtjYXNlIDA6cmV0dXJuIHUuYWJydXB0KCJyZXR1cm4iLCgwLGkucmVxdWVzdCkoIi9hcGkvcG9zdC1jZW50ZXIvcmVwb3J0LyIuY29uY2F0KHQpLHttZXRob2Q6IlBPU1QiLGRhdGE6e3JlYXNvbjpufX0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiB1LnN0b3AoKX19LHIpfSkpLEEuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIG1lKHIpe3JldHVybiBqLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBqKCl7cmV0dXJuIGo9cygpKGEoKSgpLm1hcmsoZnVuY3Rpb24gcih0KXtyZXR1cm4gYSgpKCkud3JhcChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsKDAsaS5yZXF1ZXN0KSgiL2FwaS9wb3N0L3JlcG9ydC9saXN0Iix7bWV0aG9kOiJHRVQiLHBhcmFtczp0fSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0scil9KSksai5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gaGUocix0LG4sZSl7cmV0dXJuIEIuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEIoKXtyZXR1cm4gQj1zKCkoYSgpKCkubWFyayhmdW5jdGlvbiByKHQsbixlLHUpe3JldHVybiBhKCkoKS53cmFwKGZ1bmN0aW9uKGMpe2Zvcig7Oylzd2l0Y2goYy5wcmV2PWMubmV4dCl7Y2FzZSAwOnJldHVybiBjLmFicnVwdCgicmV0dXJuIiwoMCxpLnJlcXVlc3QpKCIvYXBpL3Bvc3QvcmVwb3J0L2hhbmRsZS8iLmNvbmNhdCh0KSx7bWV0aG9kOiJQVVQiLGRhdGE6e2FjdGlvbjpuLHBvc3RJZDplLHJlYXNvbjp1fX0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBjLnN0b3AoKX19LHIpfSkpLEIuYXBwbHkodGhpcyxhcmd1bWVudHMpfX19XSk7CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzc2OTQuMjI0ZTgxMTUuYXN5bmMuanMgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzc2OTQuMjI0ZTgxMTUuYXN5bmMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTQ4ODM3MwotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNzY5NC4yMjRlODExNS5hc3luYy5qcwpAQCAtMCwwICsxIEBACisidXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W10pLnB1c2goW1s3Njk0LDg5MDZdLHszNzY5NDpmdW5jdGlvbih4LGgsZSl7ZS5yKGgpLGUuZChoLHtkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuIFp9fSk7dmFyIE89ZSg1NTc0KSxwPWUubihPKSx5PWUoNjcyOTQpLGc9ZSgyNDUzKSxEPWUoMTc3ODgpLGI9ZSg3MTIzMCksXz1lKDE1NzQ2KSxpPWUoMjM3OTkpLGo9ZSg4MzYyMiksTD1lKDc4OTU3KSxvPWUoNzY3NzIpLEU9ZSg5MDI1KSxDPWUoNDIwMTYpLGM9ZSg2ODkwNiksUD17YXZhdGFyUHJldmlldzoiYXZhdGFyUHJldmlld19fX2FWSlBEIn0sdT1lKDg4NDg0KSxyPWUoODc3NDApLHY9ZSgxMDE0OSksVD1lKDI0OTY5KSxVPWUoNTI3NDUpLG49ZSg4NTg5MyksST1mdW5jdGlvbihBKXt2YXIgbD0oMCx5LnVzZVJlZikobnVsbCksQj0oMCx5LnVzZVN0YXRlKSgpLFc9cCgpKEIsMiksdD1XWzBdLGE9V1sxXSxtPSgwLHkudXNlU3RhdGUpKCksUj1wKCkobSwyKSxkPVJbMF0sSD1SWzFdOygwLHkudXNlRWZmZWN0KShmdW5jdGlvbigpe2EoQS5kYXRhKX0sW0FdKTt2YXIgRj0oMCxvLnVzZUludGwpKCksej1mdW5jdGlvbigpe3ZhciBzPWw9PW51bGw/dm9pZCAwOmwuY3VycmVudCxmPXM9PW51bGw/dm9pZCAwOnMuY3JvcHBlcjtmLmdldENyb3BwZWRDYW52YXMoKS50b0Jsb2IoZnVuY3Rpb24oWSl7dmFyIFM9bmV3IEZvcm1EYXRhO1MuYXBwZW5kKCJhdmF0YXJmaWxlIixZKSwoMCxFLmdnKShTKS50aGVuKGZ1bmN0aW9uKHcpe3cuY29kZT09PTIwMD8oZy5aUC5zdWNjZXNzKHcubXNnKSxBLm9uRmluaXNoZWQoITApKTpnLlpQLndhcm5pbmcody5tc2cpfSl9LCJpbWFnZS9wbmciKX0sTj1mdW5jdGlvbigpe0Eub25GaW5pc2hlZCghMSl9LEc9ZnVuY3Rpb24oKXt2YXIgcz1sPT1udWxsP3ZvaWQgMDpsLmN1cnJlbnQsZj1zPT1udWxsP3ZvaWQgMDpzLmNyb3BwZXI7SChmLmdldENyb3BwZWRDYW52YXMoKS50b0RhdGFVUkwoKSl9LCQ9ZnVuY3Rpb24oKXt2YXIgcz1sPT1udWxsP3ZvaWQgMDpsLmN1cnJlbnQsZj1zPT1udWxsP3ZvaWQgMDpzLmNyb3BwZXI7Zi5yb3RhdGUoOTApfSxYPWZ1bmN0aW9uKCl7dmFyIHM9bD09bnVsbD92b2lkIDA6bC5jdXJyZW50LGY9cz09bnVsbD92b2lkIDA6cy5jcm9wcGVyO2Yucm90YXRlKC05MCl9LFE9ZnVuY3Rpb24oKXt2YXIgcz1sPT1udWxsP3ZvaWQgMDpsLmN1cnJlbnQsZj1zPT1udWxsP3ZvaWQgMDpzLmNyb3BwZXI7Zi56b29tKC4xKX0sSj1mdW5jdGlvbigpe3ZhciBzPWw9PW51bGw/dm9pZCAwOmwuY3VycmVudCxmPXM9PW51bGw/dm9pZCAwOnMuY3JvcHBlcjtmLnpvb20oLS4xKX0sVj1mdW5jdGlvbihzKXt2YXIgZj1uZXcgRmlsZVJlYWRlcjtmLnJlYWRBc0RhdGFVUkwocyksZi5vbmxvYWQ9ZnVuY3Rpb24oKXthKGYucmVzdWx0KX19O3JldHVybigwLG4uanN4cykoRC5aLHt3aWR0aDo4MDAsdGl0bGU6Ri5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLnVzZXIubW9kaWZ5X2F2YXRhciIsZGVmYXVsdE1lc3NhZ2U6Ilx1NEZFRVx1NjUzOVx1NTkzNFx1NTBDRiJ9KSxvcGVuOkEub3BlbixkZXN0cm95T25DbG9zZTohMCxvbk9rOnosb25DYW5jZWw6TixjaGlsZHJlbjpbKDAsbi5qc3hzKShiLlose2d1dHRlcjpbMTYsMTZdLGNoaWxkcmVuOlsoMCxuLmpzeCkoXy5aLHtzcGFuOjEyLG9yZGVyOjEsY2hpbGRyZW46KDAsbi5qc3gpKEMuZix7cmVmOmwsc3JjOnQsc3R5bGU6e2hlaWdodDozNTAsd2lkdGg6IjEwMCUiLG1hcmdpbkJvdHRvbToiMTZweCJ9LGluaXRpYWxBc3BlY3RSYXRpbzoxLGd1aWRlczohMSxjcm9wOkcsem9vbWFibGU6ITAsem9vbU9uV2hlZWw6ITAscm90YXRhYmxlOiEwfSl9KSwoMCxuLmpzeCkoXy5aLHtzcGFuOjEyLG9yZGVyOjIsY2hpbGRyZW46KDAsbi5qc3gpKCJkaXYiLHtjbGFzc05hbWU6UC5hdmF0YXJQcmV2aWV3LGNoaWxkcmVuOigwLG4uanN4KSgiaW1nIix7c3JjOmQsc3R5bGU6e2hlaWdodDoiMTAwJSIsd2lkdGg6IjEwMCUifX0pfSl9KV19KSwoMCxuLmpzeHMpKGIuWix7Z3V0dGVyOlsxNiwxNl0sY2hpbGRyZW46WygwLG4uanN4KShfLlose3NwYW46NixjaGlsZHJlbjooMCxuLmpzeCkoaS5aLHtiZWZvcmVVcGxvYWQ6VixtYXhDb3VudDoxLGNoaWxkcmVuOigwLG4uanN4cykoai5aUCx7Y2hpbGRyZW46WygwLG4uanN4KSh1Llose30pLCJcdTRFMEFcdTRGMjAiXX0pfSl9KSwoMCxuLmpzeCkoXy5aLHtjaGlsZHJlbjooMCxuLmpzeHMpKEwuWix7Y2hpbGRyZW46WygwLG4uanN4KShqLlpQLHtpY29uOigwLG4uanN4KShyLlose30pLG9uQ2xpY2s6JH0pLCgwLG4uanN4KShqLlpQLHtpY29uOigwLG4uanN4KSh2Llose30pLG9uQ2xpY2s6WH0pLCgwLG4uanN4KShqLlpQLHtpY29uOigwLG4uanN4KShULlose30pLG9uQ2xpY2s6UX0pLCgwLG4uanN4KShqLlpQLHtpY29uOigwLG4uanN4KShVLlose30pLG9uQ2xpY2s6Sn0pXX0pfSldfSldfSl9LFo9SX0sOTAyNTpmdW5jdGlvbih4LGgsZSl7ZS5kKGgse0xqOmZ1bmN0aW9uKCl7cmV0dXJuIEl9LE5xOmZ1bmN0aW9uKCl7cmV0dXJuIFB9LFBSOmZ1bmN0aW9uKCl7cmV0dXJuIEV9LF9MOmZ1bmN0aW9uKCl7cmV0dXJuIFR9LGF6OmZ1bmN0aW9uKCl7cmV0dXJuIFV9LGNuOmZ1bmN0aW9uKCl7cmV0dXJuIEN9LGdnOmZ1bmN0aW9uKCl7cmV0dXJuIEF9LGtYOmZ1bmN0aW9uKCl7cmV0dXJuIHJ9LGxFOmZ1bmN0aW9uKCl7cmV0dXJuIEx9LHRXOmZ1bmN0aW9uKCl7cmV0dXJuIEJ9LHdwOmZ1bmN0aW9uKCl7cmV0dXJuIEt9LHg3OmZ1bmN0aW9uKCl7cmV0dXJuIFd9LHhCOmZ1bmN0aW9uKCl7cmV0dXJuIFp9fSk7dmFyIE89ZSgxNTAwOSkscD1lLm4oTykseT1lKDk3ODU3KSxnPWUubih5KSxEPWUoOTkyODkpLGI9ZS5uKEQpLF89ZSgzMTk4MSksaT1lKDc2NzcyKSxqPWUoMzA5NjQpO2Z1bmN0aW9uIEwodCxhKXtyZXR1cm4gby5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gbygpe3JldHVybiBvPWIoKShwKCkoKS5tYXJrKGZ1bmN0aW9uIHQoYSxtKXtyZXR1cm4gcCgpKCkud3JhcChmdW5jdGlvbihkKXtmb3IoOzspc3dpdGNoKGQucHJldj1kLm5leHQpe2Nhc2UgMDpyZXR1cm4gZC5hYnJ1cHQoInJldHVybiIsKDAsaS5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vdXNlci9saXN0IixnKCkoe21ldGhvZDoiR0VUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In0scGFyYW1zOmF9LG18fHt9KSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGQuc3RvcCgpfX0sdCl9KSksby5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gRSh0LGEpe3JldHVybigwLGkucmVxdWVzdCkoIi9hcGkvc3lzdGVtL3VzZXIvIi5jb25jYXQodCksZygpKHttZXRob2Q6IkdFVCJ9LGF8fHt9KSl9ZnVuY3Rpb24gQyh0LGEpe3JldHVybiBjLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBjKCl7cmV0dXJuIGM9YigpKHAoKSgpLm1hcmsoZnVuY3Rpb24gdChhLG0pe3JldHVybiBwKCkoKS53cmFwKGZ1bmN0aW9uKGQpe2Zvcig7Oylzd2l0Y2goZC5wcmV2PWQubmV4dCl7Y2FzZSAwOnJldHVybiBkLmFicnVwdCgicmV0dXJuIiwoMCxpLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS91c2VyIixnKCkoe21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCJ9LGRhdGE6YX0sbXx8e30pKSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gZC5zdG9wKCl9fSx0KX0pKSxjLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBQKHQsYSl7cmV0dXJuIHUuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHUoKXtyZXR1cm4gdT1iKCkocCgpKCkubWFyayhmdW5jdGlvbiB0KGEsbSl7cmV0dXJuIHAoKSgpLndyYXAoZnVuY3Rpb24oZCl7Zm9yKDs7KXN3aXRjaChkLnByZXY9ZC5uZXh0KXtjYXNlIDA6cmV0dXJuIGQuYWJydXB0KCJyZXR1cm4iLCgwLGkucmVxdWVzdCkoIi9hcGkvc3lzdGVtL3VzZXIiLGcoKSh7bWV0aG9kOiJQVVQiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgifSxkYXRhOmF9LG18fHt9KSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGQuc3RvcCgpfX0sdCl9KSksdS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gcih0LGEpe3JldHVybiB2LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiB2KCl7cmV0dXJuIHY9YigpKHAoKSgpLm1hcmsoZnVuY3Rpb24gdChhLG0pe3JldHVybiBwKCkoKS53cmFwKGZ1bmN0aW9uKGQpe2Zvcig7Oylzd2l0Y2goZC5wcmV2PWQubmV4dCl7Y2FzZSAwOnJldHVybiBkLmFicnVwdCgicmV0dXJuIiwoMCxpLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS91c2VyLyIuY29uY2F0KGEpLGcoKSh7bWV0aG9kOiJERUxFVEUifSxtfHx7fSkpKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBkLnN0b3AoKX19LHQpfSkpLHYuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIFQodCxhKXtyZXR1cm4oMCxqLnN1KSgiL2FwaS9zeXN0ZW0vdXNlci9leHBvcnQiLHtwYXJhbXM6dH0sInVzZXJfIi5jb25jYXQobmV3IERhdGUoKS5nZXRUaW1lKCksIi54bHN4IikpfWZ1bmN0aW9uIFUodCxhKXt2YXIgbT17dXNlcklkOnQsc3RhdHVzOmF9O3JldHVybigwLGkucmVxdWVzdCkoIi9hcGkvc3lzdGVtL3VzZXIvY2hhbmdlU3RhdHVzIix7bWV0aG9kOiJwdXQiLGRhdGE6bX0pfWZ1bmN0aW9uIG4oKXtyZXR1cm4gcmVxdWVzdCgiL2FwaS9zeXN0ZW0vdXNlci9wcm9maWxlIix7bWV0aG9kOiJnZXQifSl9ZnVuY3Rpb24gSSh0KXtyZXR1cm4oMCxpLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS91c2VyL3Byb2ZpbGUiLHttZXRob2Q6InB1dCIsZGF0YTp0fSl9ZnVuY3Rpb24gWih0LGEpe3ZhciBtPXt1c2VySWQ6dCxwYXNzd29yZDphfTtyZXR1cm4oMCxpLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS91c2VyL3Jlc2V0UHdkIix7bWV0aG9kOiJwdXQiLGRhdGE6bX0pfWZ1bmN0aW9uIEsodCxhKXt2YXIgbT17b2xkUGFzc3dvcmQ6dCxuZXdQYXNzd29yZDphfTtyZXR1cm4oMCxpLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS91c2VyL3Byb2ZpbGUvdXBkYXRlUHdkIix7bWV0aG9kOiJwdXQiLHBhcmFtczptfSl9ZnVuY3Rpb24gQSh0KXtyZXR1cm4oMCxpLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS91c2VyL3Byb2ZpbGUvYXZhdGFyIix7bWV0aG9kOiJwb3N0IixkYXRhOnR9KX1mdW5jdGlvbiBsKHQpe3JldHVybiByZXF1ZXN0KCIvc3lzdGVtL3VzZXIvYXV0aFJvbGUvIit0LHttZXRob2Q6ImdldCJ9KX1mdW5jdGlvbiBCKHQpe3JldHVybigwLGkucmVxdWVzdCkoIi9zeXN0ZW0vdXNlci9hdXRoUm9sZSIse21ldGhvZDoicHV0IixwYXJhbXM6dH0pfWZ1bmN0aW9uIFcodCl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGEpeygwLGkucmVxdWVzdCkoIi9hcGkvc3lzdGVtL3VzZXIvZGVwdFRyZWUiLHttZXRob2Q6ImdldCIscGFyYW1zOnR9KS50aGVuKGZ1bmN0aW9uKG0pe2lmKG0mJm0uY29kZT09PTIwMCl7dmFyIFI9KDAsXy5sdCkobS5kYXRhKTthKFIpfWVsc2UgYShbXSl9KX0pfX0sMzA5NjQ6ZnVuY3Rpb24oeCxoLGUpe2UuZChoLHtwNjpmdW5jdGlvbigpe3JldHVybiBMfSxzdTpmdW5jdGlvbigpe3JldHVybiBvfX0pO3ZhciBPPWUoMTUwMDkpLHA9ZS5uKE8pLHk9ZSg5Nzg1NyksZz1lLm4oeSksRD1lKDk5Mjg5KSxiPWUubihEKSxfPWUoNzY3NzIpLGk9e3hsc3g6ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0Iix6aXA6ImFwcGxpY2F0aW9uL3ppcCJ9O2Z1bmN0aW9uIGooYyxQKXt2YXIgdT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIikscj1uZXcgQmxvYihbYy5kYXRhXSx7dHlwZTpQfSksdj1uZXcgUmVnRXhwKCJmaWxlbmFtZT0oW147XStcXC5bXlxcLjtdKyk7KiIpLFQ9ZGVjb2RlVVJJKGMuaGVhZGVyc1siY29udGVudC1kaXNwb3NpdGlvbiJdKSxVPXYuZXhlYyhUKSxuPVU/VVsxXToiZmlsZSI7bj1uLnJlcGxhY2UoLyIvZywiIiksdS5zdHlsZS5kaXNwbGF5PSJub25lIix1LmhyZWY9VVJMLmNyZWF0ZU9iamVjdFVSTChyKSx1LnNldEF0dHJpYnV0ZSgiZG93bmxvYWQiLG4pLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodSksdS5jbGljaygpLFVSTC5yZXZva2VPYmplY3RVUkwodS5ocmVmKSxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHUpfWZ1bmN0aW9uIEwoYyl7KDAsXy5yZXF1ZXN0KShjLHttZXRob2Q6IkdFVCIscmVzcG9uc2VUeXBlOiJibG9iIixnZXRSZXNwb25zZTohMH0pLnRoZW4oZnVuY3Rpb24oUCl7aihQLGkuemlwKX0pfWZ1bmN0aW9uIG8oYyxQLHUpe3JldHVybiBFLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBFKCl7cmV0dXJuIEU9YigpKHAoKSgpLm1hcmsoZnVuY3Rpb24gYyhQLHUscil7cmV0dXJuIHAoKSgpLndyYXAoZnVuY3Rpb24oVCl7Zm9yKDs7KXN3aXRjaChULnByZXY9VC5uZXh0KXtjYXNlIDA6cmV0dXJuIFQuYWJydXB0KCJyZXR1cm4iLCgwLF8ucmVxdWVzdCkoUCxnKCkoZygpKHt9LHUpLHt9LHttZXRob2Q6IlBPU1QiLHJlc3BvbnNlVHlwZToiYmxvYiJ9KSkudGhlbihmdW5jdGlvbihVKXt2YXIgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIiksST1VO24uc3R5bGUuZGlzcGxheT0ibm9uZSIsbi5ocmVmPVVSTC5jcmVhdGVPYmplY3RVUkwoSSksbi5zZXRBdHRyaWJ1dGUoImRvd25sb2FkIixyKSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG4pLG4uY2xpY2soKSxVUkwucmV2b2tlT2JqZWN0VVJMKG4uaHJlZiksZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChuKX0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBULnN0b3AoKX19LGMpfSkpLEUuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEMoYyl7d2luZG93LmxvY2F0aW9uLmhyZWY9Ii9hcGkvY29tbW9uL2Rvd25sb2FkP2ZpbGVOYW1lPSIuY29uY2F0KGVuY29kZVVSSShjKSwiJmRlbGV0ZT0iLCEwKX19LDMxOTgxOmZ1bmN0aW9uKHgsaCxlKXtlLmQoaCx7QzI6ZnVuY3Rpb24oKXtyZXR1cm4gcH0sbHQ6ZnVuY3Rpb24oKXtyZXR1cm4gZ319KTt2YXIgTz1lKDg3NzM1KTtmdW5jdGlvbiBwKEQsYixfLGksaixMKXt2YXIgbz17aWQ6Ynx8ImlkIixuYW1lOl98fCJuYW1lIixwYXJlbnRJZDppfHwicGFyZW50SWQiLHBhcmVudE5hbWU6anx8InBhcmVudE5hbWUiLGNoaWxkcmVuTGlzdDpMfHwiY2hpbGRyZW4ifSxFPVtdLEM9W10sYz1bXTtELmZvckVhY2goZnVuY3Rpb24odSl7dmFyIHI9dSx2PXJbby5wYXJlbnRJZF07RVt2XXx8KEVbdl09W10pLHIua2V5PXJbby5pZF0sci50aXRsZT1yW28ubmFtZV0sci52YWx1ZT1yW28uaWRdLHJbby5jaGlsZHJlbkxpc3RdPW51bGwsQ1tyW28uaWRdXT1yLEVbdl0ucHVzaChyKX0pLEQuZm9yRWFjaChmdW5jdGlvbih1KXt2YXIgcj11LHY9cltvLnBhcmVudElkXTtDW3ZdfHwocltvLnBhcmVudE5hbWVdPSIiLGMucHVzaChyKSl9KTtmdW5jdGlvbiBQKHUpe3ZhciByPXU7RVtyW28uaWRdXSYmKHJbby5jaGlsZHJlbkxpc3RdfHwocltvLmNoaWxkcmVuTGlzdF09W10pLHJbby5jaGlsZHJlbkxpc3RdPUVbcltvLmlkXV0pLHJbby5jaGlsZHJlbkxpc3RdJiZyW28uY2hpbGRyZW5MaXN0XS5mb3JFYWNoKGZ1bmN0aW9uKHYpe3ZhciBUPXY7VFtvLnBhcmVudE5hbWVdPXJbby5uYW1lXSxQKFQpfSl9cmV0dXJuIGMuZm9yRWFjaChmdW5jdGlvbih1KXtQKHUpfSksY312YXIgeT1mdW5jdGlvbigpe3JldHVybiBwYXJzZSh3aW5kb3cubG9jYXRpb24uaHJlZi5zcGxpdCgiPyIpWzFdKX07ZnVuY3Rpb24gZyhEKXt2YXIgYj1ELm1hcChmdW5jdGlvbihfKXt2YXIgaT17aWQ6Xy5pZCx0aXRsZTpfLmxhYmVsLGtleToiIi5jb25jYXQoXy5pZCksdmFsdWU6Xy5pZH07cmV0dXJuIF8uY2hpbGRyZW4mJihpLmNoaWxkcmVuPWcoXy5jaGlsZHJlbikpLGl9KTtyZXR1cm4gYn19LDY4OTA2OmZ1bmN0aW9uKHgsaCxlKXtlLnIoaCl9LDE1NzQ2OmZ1bmN0aW9uKHgsaCxlKXt2YXIgTz1lKDIxNTg0KTtoLlo9Ty5afSw3MTIzMDpmdW5jdGlvbih4LGgsZSl7dmFyIE89ZSgxNzYyMSk7aC5aPU8uWn19XSk7CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzc2OTQuNTJjNDVjMDAuY2h1bmsuY3NzIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy83Njk0LjUyYzQ1YzAwLmNodW5rLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wODk3MDQxCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy83Njk0LjUyYzQ1YzAwLmNodW5rLmNzcwpAQCAtMCwwICsxLDkgQEAKKy8qIQorICogQ3JvcHBlci5qcyB2MS41LjEzCisgKiBodHRwczovL2Zlbmd5dWFuY2hlbi5naXRodWIuaW8vY3JvcHBlcmpzCisgKgorICogQ29weXJpZ2h0IDIwMTUtcHJlc2VudCBDaGVuIEZlbmd5dWFuCisgKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UKKyAqCisgKiBEYXRlOiAyMDIyLTExLTIwVDA1OjMwOjQzLjQ0NFoKKyAqLy5jcm9wcGVyLWNvbnRhaW5lcntkaXJlY3Rpb246bHRyO2ZvbnQtc2l6ZTowO2xpbmUtaGVpZ2h0OjA7cG9zaXRpb246cmVsYXRpdmU7dG91Y2gtYWN0aW9uOm5vbmU7dXNlci1zZWxlY3Q6bm9uZX0uY3JvcHBlci1jb250YWluZXIgaW1ne2JhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVuO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjEwMCU7aW1hZ2Utb3JpZW50YXRpb246MGRlZzttYXgtaGVpZ2h0Om5vbmUhaW1wb3J0YW50O21heC13aWR0aDpub25lIWltcG9ydGFudDttaW4taGVpZ2h0OjAhaW1wb3J0YW50O21pbi13aWR0aDowIWltcG9ydGFudDt3aWR0aDoxMDAlfS5jcm9wcGVyLXdyYXAtYm94LC5jcm9wcGVyLWNhbnZhcywuY3JvcHBlci1kcmFnLWJveCwuY3JvcHBlci1jcm9wLWJveCwuY3JvcHBlci1tb2RhbHtib3R0b206MDtsZWZ0OjA7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6MH0uY3JvcHBlci13cmFwLWJveCwuY3JvcHBlci1jYW52YXN7b3ZlcmZsb3c6aGlkZGVufS5jcm9wcGVyLWRyYWctYm94e2JhY2tncm91bmQtY29sb3I6I2ZmZjtvcGFjaXR5OjB9LmNyb3BwZXItbW9kYWx7YmFja2dyb3VuZC1jb2xvcjojMDAwO29wYWNpdHk6LjV9LmNyb3BwZXItdmlldy1ib3h7ZGlzcGxheTpibG9jaztoZWlnaHQ6MTAwJTtvdXRsaW5lOjFweCBzb2xpZCAjMzlmO291dGxpbmUtY29sb3I6IzMzOTlmZmJmO292ZXJmbG93OmhpZGRlbjt3aWR0aDoxMDAlfS5jcm9wcGVyLWRhc2hlZHtib3JkZXI6MCBkYXNoZWQgI2VlZTtkaXNwbGF5OmJsb2NrO29wYWNpdHk6LjU7cG9zaXRpb246YWJzb2x1dGV9LmNyb3BwZXItZGFzaGVkLmRhc2hlZC1oe2JvcmRlci1ib3R0b20td2lkdGg6MXB4O2JvcmRlci10b3Atd2lkdGg6MXB4O2hlaWdodDpjYWxjKDEwMCUgLyAzKTtsZWZ0OjA7dG9wOmNhbGMoMTAwJSAvIDMpO3dpZHRoOjEwMCV9LmNyb3BwZXItZGFzaGVkLmRhc2hlZC12e2JvcmRlci1sZWZ0LXdpZHRoOjFweDtib3JkZXItcmlnaHQtd2lkdGg6MXB4O2hlaWdodDoxMDAlO2xlZnQ6Y2FsYygxMDAlIC8gMyk7dG9wOjA7d2lkdGg6Y2FsYygxMDAlIC8gMyl9LmNyb3BwZXItY2VudGVye2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7bGVmdDo1MCU7b3BhY2l0eTouNzU7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTt3aWR0aDowfS5jcm9wcGVyLWNlbnRlcjpiZWZvcmUsLmNyb3BwZXItY2VudGVyOmFmdGVye2JhY2tncm91bmQtY29sb3I6I2VlZTtjb250ZW50OiIgIjtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlfS5jcm9wcGVyLWNlbnRlcjpiZWZvcmV7aGVpZ2h0OjFweDtsZWZ0Oi0zcHg7dG9wOjA7d2lkdGg6N3B4fS5jcm9wcGVyLWNlbnRlcjphZnRlcntoZWlnaHQ6N3B4O2xlZnQ6MDt0b3A6LTNweDt3aWR0aDoxcHh9LmNyb3BwZXItZmFjZSwuY3JvcHBlci1saW5lLC5jcm9wcGVyLXBvaW50e2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjEwMCU7b3BhY2l0eTouMTtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxMDAlfS5jcm9wcGVyLWZhY2V7YmFja2dyb3VuZC1jb2xvcjojZmZmO2xlZnQ6MDt0b3A6MH0uY3JvcHBlci1saW5le2JhY2tncm91bmQtY29sb3I6IzM5Zn0uY3JvcHBlci1saW5lLmxpbmUtZXtjdXJzb3I6ZXctcmVzaXplO3JpZ2h0Oi0zcHg7dG9wOjA7d2lkdGg6NXB4fS5jcm9wcGVyLWxpbmUubGluZS1ue2N1cnNvcjpucy1yZXNpemU7aGVpZ2h0OjVweDtsZWZ0OjA7dG9wOi0zcHh9LmNyb3BwZXItbGluZS5saW5lLXd7Y3Vyc29yOmV3LXJlc2l6ZTtsZWZ0Oi0zcHg7dG9wOjA7d2lkdGg6NXB4fS5jcm9wcGVyLWxpbmUubGluZS1ze2JvdHRvbTotM3B4O2N1cnNvcjpucy1yZXNpemU7aGVpZ2h0OjVweDtsZWZ0OjB9LmNyb3BwZXItcG9pbnR7YmFja2dyb3VuZC1jb2xvcjojMzlmO2hlaWdodDo1cHg7b3BhY2l0eTouNzU7d2lkdGg6NXB4fS5jcm9wcGVyLXBvaW50LnBvaW50LWV7Y3Vyc29yOmV3LXJlc2l6ZTttYXJnaW4tdG9wOi0zcHg7cmlnaHQ6LTNweDt0b3A6NTAlfS5jcm9wcGVyLXBvaW50LnBvaW50LW57Y3Vyc29yOm5zLXJlc2l6ZTtsZWZ0OjUwJTttYXJnaW4tbGVmdDotM3B4O3RvcDotM3B4fS5jcm9wcGVyLXBvaW50LnBvaW50LXd7Y3Vyc29yOmV3LXJlc2l6ZTtsZWZ0Oi0zcHg7bWFyZ2luLXRvcDotM3B4O3RvcDo1MCV9LmNyb3BwZXItcG9pbnQucG9pbnQtc3tib3R0b206LTNweDtjdXJzb3I6cy1yZXNpemU7bGVmdDo1MCU7bWFyZ2luLWxlZnQ6LTNweH0uY3JvcHBlci1wb2ludC5wb2ludC1uZXtjdXJzb3I6bmVzdy1yZXNpemU7cmlnaHQ6LTNweDt0b3A6LTNweH0uY3JvcHBlci1wb2ludC5wb2ludC1ud3tjdXJzb3I6bndzZS1yZXNpemU7bGVmdDotM3B4O3RvcDotM3B4fS5jcm9wcGVyLXBvaW50LnBvaW50LXN3e2JvdHRvbTotM3B4O2N1cnNvcjpuZXN3LXJlc2l6ZTtsZWZ0Oi0zcHh9LmNyb3BwZXItcG9pbnQucG9pbnQtc2V7Ym90dG9tOi0zcHg7Y3Vyc29yOm53c2UtcmVzaXplO2hlaWdodDoyMHB4O29wYWNpdHk6MTtyaWdodDotM3B4O3dpZHRoOjIwcHh9QG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KXsuY3JvcHBlci1wb2ludC5wb2ludC1zZXtoZWlnaHQ6MTVweDt3aWR0aDoxNXB4fX1AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpey5jcm9wcGVyLXBvaW50LnBvaW50LXNle2hlaWdodDoxMHB4O3dpZHRoOjEwcHh9fUBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpey5jcm9wcGVyLXBvaW50LnBvaW50LXNle2hlaWdodDo1cHg7b3BhY2l0eTouNzU7d2lkdGg6NXB4fX0uY3JvcHBlci1wb2ludC5wb2ludC1zZTpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjojMzlmO2JvdHRvbTotNTAlO2NvbnRlbnQ6IiAiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjIwMCU7b3BhY2l0eTowO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0Oi01MCU7d2lkdGg6MjAwJX0uY3JvcHBlci1pbnZpc2libGV7b3BhY2l0eTowfS5jcm9wcGVyLWJne2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQkFBQUFBUUFRTUFBQUFsUFcwaUFBQUFBM05DU1ZRSUNBamI0VS9nQUFBQUJsQk1WRVhNek16Ly8vL1RqUlYyQUFBQUNYQklXWE1BQUFyckFBQUs2d0dDaXcxYUFBQUFISFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JHYVhKbGQyOXlhM01nUTFNMjZMeXlqQUFBQUJGSlJFRlVDSmxqK00vQWdCVmhGLzBQQUg2L0QvSGtEeE9HQUFBQUFFbEZUa1N1UW1DQyl9LmNyb3BwZXItaGlkZXtkaXNwbGF5OmJsb2NrO2hlaWdodDowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjB9LmNyb3BwZXItaGlkZGVue2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9LmNyb3BwZXItbW92ZXtjdXJzb3I6bW92ZX0uY3JvcHBlci1jcm9we2N1cnNvcjpjcm9zc2hhaXJ9LmNyb3BwZXItZGlzYWJsZWQgLmNyb3BwZXItZHJhZy1ib3gsLmNyb3BwZXItZGlzYWJsZWQgLmNyb3BwZXItZmFjZSwuY3JvcHBlci1kaXNhYmxlZCAuY3JvcHBlci1saW5lLC5jcm9wcGVyLWRpc2FibGVkIC5jcm9wcGVyLXBvaW50e2N1cnNvcjpub3QtYWxsb3dlZH0uYXZhdGFyUHJldmlld19fX2FWSlBEe3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZSg1MCUsLTUwJSk7d2lkdGg6MjAwcHg7aGVpZ2h0OjIwMHB4O2JvcmRlci1yYWRpdXM6NTAlO2JveC1zaGFkb3c6MCAwIDRweCAjY2NjO292ZXJmbG93OmhpZGRlbn0KZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNzc2MS44N2E2MmE4MC5hc3luYy5qcyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNzc2MS44N2E2MmE4MC5hc3luYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNmRiNDU2Ci0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy83NzYxLjg3YTYyYTgwLmFzeW5jLmpzCkBAIC0wLDAgKzEgQEAKKyJ1c2Ugc3RyaWN0Ijsoc2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Bybz1zZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvfHxbXSkucHVzaChbWzc3NjFdLHszMTE5OTpmdW5jdGlvbihqLGcsZSl7dmFyIHQ9ZSgxNDEzKSxsPWUoOTEpLHY9ZSg2NzI5NCkscD1lKDkyMTc5KSxFPWUoODU4OTMpLGY9WyJmaWVsZFByb3BzIiwibWluIiwicHJvRmllbGRQcm9wcyIsIm1heCJdLE09ZnVuY3Rpb24obyxPKXt2YXIgVD1vLmZpZWxkUHJvcHMsZD1vLm1pbixuPW8ucHJvRmllbGRQcm9wcyxhPW8ubWF4LHM9KDAsbC5aKShvLGYpO3JldHVybigwLEUuanN4KShwLlosKDAsdC5aKSh7dmFsdWVUeXBlOiJkaWdpdCIsZmllbGRQcm9wczooMCx0LlopKHttaW46ZCxtYXg6YX0sVCkscmVmOk8sZmlsZWRDb25maWc6e2RlZmF1bHRQcm9wczp7d2lkdGg6IjEwMCUifX0scHJvRmllbGRQcm9wczpufSxzKSl9LEQ9di5mb3J3YXJkUmVmKE0pO2cuWj1EfSw4NjYxNTpmdW5jdGlvbihqLGcsZSl7dmFyIHQ9ZSgxNDEzKSxsPWUoOTEpLHY9ZSgyMjI3MCkscD1lKDc4MDQ1KSxFPWUoNjcyOTQpLGY9ZSg5MDc4OSksTT1lKDkyMTc5KSxEPWUoODU4OTMpLEI9WyJmaWVsZFByb3BzIiwib3B0aW9ucyIsInJhZGlvVHlwZSIsImxheW91dCIsInByb0ZpZWxkUHJvcHMiLCJ2YWx1ZUVudW0iXSxvPUUuZm9yd2FyZFJlZihmdW5jdGlvbihuLGEpe3ZhciBzPW4uZmllbGRQcm9wcyxGPW4ub3B0aW9ucyxjPW4ucmFkaW9UeXBlLHU9bi5sYXlvdXQscj1uLnByb0ZpZWxkUHJvcHMsUD1uLnZhbHVlRW51bSxfPSgwLGwuWikobixCKTtyZXR1cm4oMCxELmpzeCkoTS5aLCgwLHQuWikoKDAsdC5aKSh7dmFsdWVUeXBlOmM9PT0iYnV0dG9uIj8icmFkaW9CdXR0b24iOiJyYWRpbyIscmVmOmEsdmFsdWVFbnVtOigwLHYuaCkoUCx2b2lkIDApfSxfKSx7fSx7ZmllbGRQcm9wczooMCx0LlopKHtvcHRpb25zOkYsbGF5b3V0OnV9LHMpLHByb0ZpZWxkUHJvcHM6cixmaWxlZENvbmZpZzp7Y3VzdG9tTGlnaHRNb2RlOiEwfX0pKX0pLE89RS5mb3J3YXJkUmVmKGZ1bmN0aW9uKG4sYSl7dmFyIHM9bi5maWVsZFByb3BzLEY9bi5jaGlsZHJlbjtyZXR1cm4oMCxELmpzeCkocC5aUCwoMCx0LlopKCgwLHQuWikoe30scykse30se3JlZjphLGNoaWxkcmVuOkZ9KSl9KSxUPSgwLGYuRykoTyx7dmFsdWVQcm9wTmFtZToiY2hlY2tlZCIsaWdub3JlV2lkdGg6ITB9KSxkPVQ7ZC5Hcm91cD1vLGQuQnV0dG9uPXAuWlAuQnV0dG9uLGQuZGlzcGxheU5hbWU9IlByb0Zvcm1Db21wb25lbnQiLGcuWj1kfSw1OTY2OmZ1bmN0aW9uKGosZyxlKXt2YXIgdD1lKDk3Njg1KSxsPWUoMTQxMyksdj1lKDkxKSxwPWUoMjE3NzApLEU9ZSg5OTg1OSksZj1lKDU1MjQxKSxNPWUoOTg0MjMpLEQ9ZSg2NzI5NCksQj1lKDkyMTc5KSxvPWUoODU4OTMpLE89WyJmaWVsZFByb3BzIiwicHJvRmllbGRQcm9wcyJdLFQ9WyJmaWVsZFByb3BzIiwicHJvRmllbGRQcm9wcyJdLGQ9InRleHQiLG49ZnVuY3Rpb24odSl7dmFyIHI9dS5maWVsZFByb3BzLFA9dS5wcm9GaWVsZFByb3BzLF89KDAsdi5aKSh1LE8pO3JldHVybigwLG8uanN4KShCLlosKDAsbC5aKSh7dmFsdWVUeXBlOmQsZmllbGRQcm9wczpyLGZpbGVkQ29uZmlnOnt2YWx1ZVR5cGU6ZH0scHJvRmllbGRQcm9wczpQfSxfKSl9LGE9ZnVuY3Rpb24odSl7dmFyIHI9KDAscC5aKSh1Lm9wZW58fCExLHt2YWx1ZTp1Lm9wZW4sb25DaGFuZ2U6dS5vbk9wZW5DaGFuZ2V9KSxQPSgwLHQuWikociwyKSxfPVBbMF0seD1QWzFdO3JldHVybigwLG8uanN4KShFLlouSXRlbSx7c2hvdWxkVXBkYXRlOiEwLG5vU3R5bGU6ITAsY2hpbGRyZW46ZnVuY3Rpb24oUil7dmFyIEMsVz1SLmdldEZpZWxkVmFsdWUodS5uYW1lfHxbXSk7cmV0dXJuKDAsby5qc3gpKGYuWiwoMCxsLlopKCgwLGwuWikoe2dldFBvcHVwQ29udGFpbmVyOmZ1bmN0aW9uKGkpe3JldHVybiBpJiZpLnBhcmVudE5vZGU/aS5wYXJlbnROb2RlOml9LG9uT3BlbkNoYW5nZTpmdW5jdGlvbihpKXtyZXR1cm4geChpKX0sY29udGVudDooMCxvLmpzeHMpKCJkaXYiLHtzdHlsZTp7cGFkZGluZzoiNHB4IDAifSxjaGlsZHJlbjpbKEM9dS5zdGF0dXNSZW5kZXIpPT09bnVsbHx8Qz09PXZvaWQgMD92b2lkIDA6Qy5jYWxsKHUsVyksdS5zdHJlbmd0aFRleHQ/KDAsby5qc3gpKCJkaXYiLHtzdHlsZTp7bWFyZ2luVG9wOjEwfSxjaGlsZHJlbjooMCxvLmpzeCkoInNwYW4iLHtjaGlsZHJlbjp1LnN0cmVuZ3RoVGV4dH0pfSk6bnVsbF19KSxvdmVybGF5U3R5bGU6e3dpZHRoOjI0MH0scGxhY2VtZW50OiJyaWdodFRvcCJ9LHUucG9wb3ZlclByb3BzKSx7fSx7b3BlbjpfLGNoaWxkcmVuOnUuY2hpbGRyZW59KSl9fSl9LHM9ZnVuY3Rpb24odSl7dmFyIHI9dS5maWVsZFByb3BzLFA9dS5wcm9GaWVsZFByb3BzLF89KDAsdi5aKSh1LFQpLHg9KDAsRC51c2VTdGF0ZSkoITEpLG09KDAsdC5aKSh4LDIpLFI9bVswXSxDPW1bMV07cmV0dXJuIHIhPW51bGwmJnIuc3RhdHVzUmVuZGVyJiZfLm5hbWU/KDAsby5qc3gpKGEse25hbWU6Xy5uYW1lLHN0YXR1c1JlbmRlcjpyPT1udWxsP3ZvaWQgMDpyLnN0YXR1c1JlbmRlcixwb3BvdmVyUHJvcHM6cj09bnVsbD92b2lkIDA6ci5wb3BvdmVyUHJvcHMsc3RyZW5ndGhUZXh0OnI9PW51bGw/dm9pZCAwOnIuc3RyZW5ndGhUZXh0LG9wZW46Uixvbk9wZW5DaGFuZ2U6QyxjaGlsZHJlbjooMCxvLmpzeCkoImRpdiIse2NoaWxkcmVuOigwLG8uanN4KShCLlosKDAsbC5aKSh7dmFsdWVUeXBlOiJwYXNzd29yZCIsZmllbGRQcm9wczooMCxsLlopKCgwLGwuWikoe30sKDAsTS5aKShyLFsic3RhdHVzUmVuZGVyIiwicG9wb3ZlclByb3BzIiwic3RyZW5ndGhUZXh0Il0pKSx7fSx7b25CbHVyOmZ1bmN0aW9uKGgpe3ZhciBpO3I9PW51bGx8fChpPXIub25CbHVyKT09PW51bGx8fGk9PT12b2lkIDB8fGkuY2FsbChyLGgpLEMoITEpfSxvbkNsaWNrOmZ1bmN0aW9uKGgpe3ZhciBpO3I9PW51bGx8fChpPXIub25DbGljayk9PT1udWxsfHxpPT09dm9pZCAwfHxpLmNhbGwocixoKSxDKCEwKX19KSxwcm9GaWVsZFByb3BzOlAsZmlsZWRDb25maWc6e3ZhbHVlVHlwZTpkfX0sXykpfSl9KTooMCxvLmpzeCkoQi5aLCgwLGwuWikoe3ZhbHVlVHlwZToicGFzc3dvcmQiLGZpZWxkUHJvcHM6cixwcm9GaWVsZFByb3BzOlAsZmlsZWRDb25maWc6e3ZhbHVlVHlwZTpkfX0sXykpfSxGPW47Ri5QYXNzd29yZD1zLEYuZGlzcGxheU5hbWU9IlByb0Zvcm1Db21wb25lbnQiLGcuWj1GfSwzMzcyNTpmdW5jdGlvbihqLGcsZSl7dmFyIHQ9ZSgxNDEzKSxsPWUoOTEpLHY9ZSg4NjE5MCkscD1lKDY3Mjk0KSxFPWUoNjY3NTgpLGY9ZSg5MjE3OSksTT1lKDg1ODkzKSxEPVsiZmllbGRQcm9wcyIsInByb0ZpZWxkUHJvcHMiXSxCPVsiZmllbGRQcm9wcyIsInByb0ZpZWxkUHJvcHMiXSxvPSJ0aW1lIixPPXAuZm9yd2FyZFJlZihmdW5jdGlvbihuLGEpe3ZhciBzPW4uZmllbGRQcm9wcyxGPW4ucHJvRmllbGRQcm9wcyxjPSgwLGwuWikobixEKSx1PSgwLHAudXNlQ29udGV4dCkoRS5aKTtyZXR1cm4oMCxNLmpzeCkoZi5aLCgwLHQuWikoe3JlZjphLGZpZWxkUHJvcHM6KDAsdC5aKSh7Z2V0UG9wdXBDb250YWluZXI6dS5nZXRQb3B1cENvbnRhaW5lcn0scyksdmFsdWVUeXBlOiJ0aW1lUmFuZ2UiLHByb0ZpZWxkUHJvcHM6RixmaWxlZENvbmZpZzp7dmFsdWVUeXBlOiJ0aW1lUmFuZ2UiLGN1c3RvbUxpZ2h0TW9kZTohMCxsaWdodEZpbHRlckxhYmVsRm9ybWF0dGVyOmZ1bmN0aW9uKFApe3JldHVybigwLHYuYykoUCwiSEg6bW06c3MiKX19fSxjKSl9KSxUPWZ1bmN0aW9uKGEpe3ZhciBzPWEuZmllbGRQcm9wcyxGPWEucHJvRmllbGRQcm9wcyxjPSgwLGwuWikoYSxCKSx1PSgwLHAudXNlQ29udGV4dCkoRS5aKTtyZXR1cm4oMCxNLmpzeCkoZi5aLCgwLHQuWikoe2ZpZWxkUHJvcHM6KDAsdC5aKSh7Z2V0UG9wdXBDb250YWluZXI6dS5nZXRQb3B1cENvbnRhaW5lcn0scyksdmFsdWVUeXBlOm8scHJvRmllbGRQcm9wczpGLGZpbGVkQ29uZmlnOntjdXN0b21MaWdodE1vZGU6ITAsdmFsdWVUeXBlOm99fSxjKSl9LGQ9VDtkLlJhbmdlUGlja2VyPU8sZy5aPWR9LDk3NzYxOmZ1bmN0aW9uKGosZyxlKXtlLnIoZyk7dmFyIHQ9ZSgxNTAwOSksbD1lLm4odCksdj1lKDk5Mjg5KSxwPWUubih2KSxFPWUoNTU3NCksZj1lLm4oRSksTT1lKDY3Mjk0KSxEPWUoOTcyNjkpLEI9ZSgzMTE5OSksbz1lKDU5NjYpLE89ZSg4NjYxNSksVD1lKDMzNzI1KSxkPWUoOTk4NTkpLG49ZSgxNzc4OCksYT1lKDc2NzcyKSxzPWUoODU4OTMpLEY9ZnVuY3Rpb24odSl7dmFyIHI9ZC5aLnVzZUZvcm0oKSxQPWYoKShyLDEpLF89UFswXSx4PXUuc3RhdHVzT3B0aW9uczsoMCxNLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtfLnJlc2V0RmllbGRzKCksXy5zZXRGaWVsZHNWYWx1ZSh7aW5mb0lkOnUudmFsdWVzLmluZm9JZCx1c2VyTmFtZTp1LnZhbHVlcy51c2VyTmFtZSxpcGFkZHI6dS52YWx1ZXMuaXBhZGRyLGxvZ2luTG9jYXRpb246dS52YWx1ZXMubG9naW5Mb2NhdGlvbixicm93c2VyOnUudmFsdWVzLmJyb3dzZXIsb3M6dS52YWx1ZXMub3Msc3RhdHVzOnUudmFsdWVzLnN0YXR1cyxtc2c6dS52YWx1ZXMubXNnLGxvZ2luVGltZTp1LnZhbHVlcy5sb2dpblRpbWV9KX0sW18sdV0pO3ZhciBtPSgwLGEudXNlSW50bCkoKSxSPWZ1bmN0aW9uKCl7Xy5zdWJtaXQoKX0sQz1mdW5jdGlvbigpe3Uub25DYW5jZWwoKSxfLnJlc2V0RmllbGRzKCl9LFc9ZnVuY3Rpb24oKXt2YXIgaD1wKCkobCgpKCkubWFyayhmdW5jdGlvbiBpKEwpe3JldHVybiBsKCkoKS53cmFwKGZ1bmN0aW9uKEEpe2Zvcig7Oylzd2l0Y2goQS5wcmV2PUEubmV4dCl7Y2FzZSAwOnUub25TdWJtaXQoTCk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gQS5zdG9wKCl9fSxpKX0pKTtyZXR1cm4gZnVuY3Rpb24oTCl7cmV0dXJuIGguYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKTtyZXR1cm4oMCxzLmpzeCkobi5aLHt3aWR0aDo2NDAsdGl0bGU6bS5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLmxvZ2luaW5mb3IudGl0bGUiLGRlZmF1bHRNZXNzYWdlOiJcdTdGMTZcdThGOTFcdTdDRkJcdTdFREZcdThCQkZcdTk1RUVcdThCQjBcdTVGNTUifSksb3Blbjp1Lm9wZW4sZGVzdHJveU9uQ2xvc2U6ITAsZm9yY2VSZW5kZXI6ITAsb25PazpSLG9uQ2FuY2VsOkMsY2hpbGRyZW46KDAscy5qc3hzKShELkEse2Zvcm06XyxncmlkOiEwLGxheW91dDoiaG9yaXpvbnRhbCIsb25GaW5pc2g6VyxjaGlsZHJlbjpbKDAscy5qc3gpKEIuWix7bmFtZToiaW5mb0lkIixsYWJlbDptLmZvcm1hdE1lc3NhZ2Uoe2lkOiJzeXN0ZW0ubG9naW5pbmZvci5pbmZvX2lkIixkZWZhdWx0TWVzc2FnZToiXHU4QkJGXHU5NUVFXHU3RjE2XHU1M0Y3In0pLGNvbFByb3BzOnttZDoxMix4bDoyNH0scGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1OEJCRlx1OTVFRVx1N0YxNlx1NTNGNyIsZGlzYWJsZWQ6ITAsaGlkZGVuOiEwLHJ1bGVzOlt7cmVxdWlyZWQ6ITEsbWVzc2FnZTooMCxzLmpzeCkoYS5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU4QkJGXHU5NUVFXHU3RjE2XHU1M0Y3XHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU4QkJGXHU5NUVFXHU3RjE2XHU1M0Y3XHVGRjAxIn0pfV19KSwoMCxzLmpzeCkoby5aLHtuYW1lOiJ1c2VyTmFtZSIsbGFiZWw6bS5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLmxvZ2luaW5mb3IudXNlcl9uYW1lIixkZWZhdWx0TWVzc2FnZToiXHU3NTI4XHU2MjM3XHU4RDI2XHU1M0Y3In0pLGNvbFByb3BzOnttZDoxMix4bDoyNH0scGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NzUyOFx1NjIzN1x1OEQyNlx1NTNGNyIscnVsZXM6W3tyZXF1aXJlZDohMSxtZXNzYWdlOigwLHMuanN4KShhLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTc1MjhcdTYyMzdcdThEMjZcdTUzRjdcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTc1MjhcdTYyMzdcdThEMjZcdTUzRjdcdUZGMDEifSl9XX0pLCgwLHMuanN4KShvLlose25hbWU6ImlwYWRkciIsbGFiZWw6bS5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLmxvZ2luaW5mb3IuaXBhZGRyIixkZWZhdWx0TWVzc2FnZToiXHU3NjdCXHU1RjU1SVBcdTU3MzBcdTU3NDAifSksY29sUHJvcHM6e21kOjEyLHhsOjI0fSxwbGFjZWhvbGRlcjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU3NjdCXHU1RjU1SVBcdTU3MzBcdTU3NDAiLHJ1bGVzOlt7cmVxdWlyZWQ6ITEsbWVzc2FnZTooMCxzLmpzeCkoYS5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU3NjdCXHU1RjU1SVBcdTU3MzBcdTU3NDBcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTc2N0JcdTVGNTVJUFx1NTczMFx1NTc0MFx1RkYwMSJ9KX1dfSksKDAscy5qc3gpKG8uWix7bmFtZToibG9naW5Mb2NhdGlvbiIsbGFiZWw6bS5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLmxvZ2luaW5mb3IubG9naW5fbG9jYXRpb24iLGRlZmF1bHRNZXNzYWdlOiJcdTc2N0JcdTVGNTVcdTU3MzBcdTcwQjkifSksY29sUHJvcHM6e21kOjEyLHhsOjI0fSxwbGFjZWhvbGRlcjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU3NjdCXHU1RjU1XHU1NzMwXHU3MEI5IixydWxlczpbe3JlcXVpcmVkOiExLG1lc3NhZ2U6KDAscy5qc3gpKGEuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NzY3Qlx1NUY1NVx1NTczMFx1NzBCOVx1RkYwMSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NzY3Qlx1NUY1NVx1NTczMFx1NzBCOVx1RkYwMSJ9KX1dfSksKDAscy5qc3gpKG8uWix7bmFtZToiYnJvd3NlciIsbGFiZWw6bS5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLmxvZ2luaW5mb3IuYnJvd3NlciIsZGVmYXVsdE1lc3NhZ2U6Ilx1NkQ0Rlx1ODlDOFx1NTY2OFx1N0M3Qlx1NTc4QiJ9KSxjb2xQcm9wczp7bWQ6MTIseGw6MjR9LHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdTZENEZcdTg5QzhcdTU2NjhcdTdDN0JcdTU3OEIiLHJ1bGVzOlt7cmVxdWlyZWQ6ITEsbWVzc2FnZTooMCxzLmpzeCkoYS5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU2RDRGXHU4OUM4XHU1NjY4XHU3QzdCXHU1NzhCXHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU2RDRGXHU4OUM4XHU1NjY4XHU3QzdCXHU1NzhCXHVGRjAxIn0pfV19KSwoMCxzLmpzeCkoby5aLHtuYW1lOiJvcyIsbGFiZWw6bS5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLmxvZ2luaW5mb3Iub3MiLGRlZmF1bHRNZXNzYWdlOiJcdTY0Q0RcdTRGNUNcdTdDRkJcdTdFREYifSksY29sUHJvcHM6e21kOjEyLHhsOjI0fSxwbGFjZWhvbGRlcjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU2NENEXHU0RjVDXHU3Q0ZCXHU3RURGIixydWxlczpbe3JlcXVpcmVkOiExLG1lc3NhZ2U6KDAscy5qc3gpKGEuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NjRDRFx1NEY1Q1x1N0NGQlx1N0VERlx1RkYwMSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NjRDRFx1NEY1Q1x1N0NGQlx1N0VERlx1RkYwMSJ9KX1dfSksKDAscy5qc3gpKE8uWi5Hcm91cCx7dmFsdWVFbnVtOngsbmFtZToic3RhdHVzIixsYWJlbDptLmZvcm1hdE1lc3NhZ2Uoe2lkOiJzeXN0ZW0ubG9naW5pbmZvci5zdGF0dXMiLGRlZmF1bHRNZXNzYWdlOiJcdTc2N0JcdTVGNTVcdTcyQjZcdTYwMDEifSksY29sUHJvcHM6e21kOjEyLHhsOjI0fSxwbGFjZWhvbGRlcjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU3NjdCXHU1RjU1XHU3MkI2XHU2MDAxIixydWxlczpbe3JlcXVpcmVkOiExLG1lc3NhZ2U6KDAscy5qc3gpKGEuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NzY3Qlx1NUY1NVx1NzJCNlx1NjAwMVx1RkYwMSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NzY3Qlx1NUY1NVx1NzJCNlx1NjAwMVx1RkYwMSJ9KX1dfSksKDAscy5qc3gpKG8uWix7bmFtZToibXNnIixsYWJlbDptLmZvcm1hdE1lc3NhZ2Uoe2lkOiJzeXN0ZW0ubG9naW5pbmZvci5tc2ciLGRlZmF1bHRNZXNzYWdlOiJcdTYzRDBcdTc5M0FcdTZEODhcdTYwNkYifSksY29sUHJvcHM6e21kOjEyLHhsOjI0fSxwbGFjZWhvbGRlcjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU2M0QwXHU3OTNBXHU2RDg4XHU2MDZGIixydWxlczpbe3JlcXVpcmVkOiExLG1lc3NhZ2U6KDAscy5qc3gpKGEuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NjNEMFx1NzkzQVx1NkQ4OFx1NjA2Rlx1RkYwMSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NjNEMFx1NzkzQVx1NkQ4OFx1NjA2Rlx1RkYwMSJ9KX1dfSksKDAscy5qc3gpKFQuWix7bmFtZToibG9naW5UaW1lIixsYWJlbDptLmZvcm1hdE1lc3NhZ2Uoe2lkOiJzeXN0ZW0ubG9naW5pbmZvci5sb2dpbl90aW1lIixkZWZhdWx0TWVzc2FnZToiXHU4QkJGXHU5NUVFXHU2NUY2XHU5NUY0In0pLGNvbFByb3BzOnttZDoxMix4bDoyNH0scGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1OEJCRlx1OTVFRVx1NjVGNlx1OTVGNCIscnVsZXM6W3tyZXF1aXJlZDohMSxtZXNzYWdlOigwLHMuanN4KShhLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdThCQkZcdTk1RUVcdTY1RjZcdTk1RjRcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdThCQkZcdTk1RUVcdTY1RjZcdTk1RjRcdUZGMDEifSl9XX0pXX0pfSl9O2cuZGVmYXVsdD1GfX1dKTsKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNzc3Ny4yMDBhNWNlYS5hc3luYy5qcyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNzc3Ny4yMDBhNWNlYS5hc3luYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZmI0N2E0Ci0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy83Nzc3LjIwMGE1Y2VhLmFzeW5jLmpzCkBAIC0wLDAgKzEgQEAKKyJ1c2Ugc3RyaWN0Ijsoc2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Bybz1zZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvfHxbXSkucHVzaChbWzc3NzddLHszMzg2NzpmdW5jdGlvbihZLEksZSl7ZS5kKEkse2lLOmZ1bmN0aW9uKCl7cmV0dXJuIHd9LHpjOmZ1bmN0aW9uKCl7cmV0dXJuIEZ9fSk7dmFyIHc9ZnVuY3Rpb24obil7cmV0dXJuIG5bbi5TVUNDRVNTPTIwMF09IlNVQ0NFU1MiLG5bbi5FUlJPUj0tMV09IkVSUk9SIixuW24uVElNRU9VVD00MDFdPSJUSU1FT1VUIixuLlRZUEU9InN1Y2Nlc3MiLG59KHt9KSx0PWZ1bmN0aW9uKG4pe3JldHVybiBuLkdFVD0iR0VUIixuLlBPU1Q9IlBPU1QiLG4uUFVUPSJQVVQiLG4uREVMRVRFPSJERUxFVEUiLG59KHt9KSxGPWZ1bmN0aW9uKG4pe3JldHVybiBuLkpTT049ImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCIsbi5GT1JNX1VSTEVOQ09ERUQ9ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PVVURi04IixuLkZPUk1fREFUQT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YTtjaGFyc2V0PVVURi04IixufSh7fSl9LDgwNDQ4OmZ1bmN0aW9uKFksSSxlKXtlLnIoSSk7dmFyIHc9ZSgxNTAwOSksdD1lLm4odyksRj1lKDk5Mjg5KSxuPWUubihGKSxVPWUoNTU3NCksbD1lLm4oVSksUD1lKDY3Mjk0KSxpPWUoOTk4NTkpLE09ZSgxNzc4OCksYj1lKDc2NzcyKSxoPWUoOTcyNjkpLEw9ZSg2NDMxNyksSz1lKDg1ODkzKSxEPWZ1bmN0aW9uKHApe3ZhciBzPWkuWi51c2VGb3JtKCksXz1sKCkocywxKSxPPV9bMF07KDAsUC51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7Ty5yZXNldEZpZWxkcygpLE8uc2V0RmllbGRWYWx1ZSgicm9sZUlkcyIscC5yb2xlSWRzKX0pO3ZhciBmPSgwLGIudXNlSW50bCkoKSxXPWZ1bmN0aW9uKCl7Ty5zdWJtaXQoKX0sSD1mdW5jdGlvbigpe3Aub25DYW5jZWwoKX0saz1mdW5jdGlvbigpe3ZhciBWPW4oKSh0KCkoKS5tYXJrKGZ1bmN0aW9uIEcodil7cmV0dXJuIHQoKSgpLndyYXAoZnVuY3Rpb24oRSl7Zm9yKDs7KXN3aXRjaChFLnByZXY9RS5uZXh0KXtjYXNlIDA6cC5vblN1Ym1pdCh2KTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBFLnN0b3AoKX19LEcpfSkpO3JldHVybiBmdW5jdGlvbih2KXtyZXR1cm4gVi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpO3JldHVybigwLEsuanN4KShNLlose3dpZHRoOjY0MCx0aXRsZTpmLmZvcm1hdE1lc3NhZ2Uoe2lkOiJzeXN0ZW0udXNlci5hdXRoLnJvbGUiLGRlZmF1bHRNZXNzYWdlOiJcdTUyMDZcdTkxNERcdTg5RDJcdTgyNzIifSksb3BlbjpwLm9wZW4sZGVzdHJveU9uQ2xvc2U6ITAsZm9yY2VSZW5kZXI6ITAsb25PazpXLG9uQ2FuY2VsOkgsY2hpbGRyZW46KDAsSy5qc3gpKGguQSx7Zm9ybTpPLGdyaWQ6ITAsbGF5b3V0OiJob3Jpem9udGFsIixvbkZpbmlzaDprLGluaXRpYWxWYWx1ZXM6e2xvZ2luX3Bhc3N3b3JkOiIiLGNvbmZpcm1fcGFzc3dvcmQ6IiJ9LGNoaWxkcmVuOigwLEsuanN4KShMLlose25hbWU6InJvbGVJZHMiLG1vZGU6Im11bHRpcGxlIixsYWJlbDpmLmZvcm1hdE1lc3NhZ2Uoe2lkOiJzeXN0ZW0udXNlci5yb2xlIixkZWZhdWx0TWVzc2FnZToiXHU4OUQyXHU4MjcyIn0pLG9wdGlvbnM6cC5yb2xlcyxwbGFjZWhvbGRlcjoiXHU4QkY3XHU5MDA5XHU2MkU5XHU4OUQyXHU4MjcyIixydWxlczpbe3JlcXVpcmVkOiEwLG1lc3NhZ2U6Ilx1OEJGN1x1OTAwOVx1NjJFOVx1ODlEMlx1ODI3MiEifV19KX0pfSl9O0kuZGVmYXVsdD1EfSwxMDYwNTpmdW5jdGlvbihZLEksZSl7ZS5yKEkpO3ZhciB3PWUoMTUwMDkpLHQ9ZS5uKHcpLEY9ZSg5OTI4OSksbj1lLm4oRiksVT1lKDU1NzQpLGw9ZS5uKFUpLFA9ZSg2NzI5NCksaT1lKDIwODYzKSxNPWUoMjQ1MyksYj1lKDkwMjUpLGg9ZSg4NTg5MyksTD1pLlouRGlyZWN0b3J5VHJlZSxLPWZ1bmN0aW9uKEEpe3ZhciBwPSgwLFAudXNlU3RhdGUpKFtdKSxzPWwoKShwLDIpLF89c1swXSxPPXNbMV0sZj0oMCxQLnVzZVN0YXRlKShbXSksVz1sKCkoZiwyKSxIPVdbMF0saz1XWzFdLFY9KDAsUC51c2VTdGF0ZSkoITApLEc9bCgpKFYsMiksdj1HWzBdLHU9R1sxXSxFPWZ1bmN0aW9uKCl7dmFyIFI9bigpKHQoKSgpLm1hcmsoZnVuY3Rpb24gaigpe3ZhciBvO3JldHVybiB0KCkoKS53cmFwKGZ1bmN0aW9uKEope2Zvcig7Oylzd2l0Y2goSi5wcmV2PUoubmV4dCl7Y2FzZSAwOnJldHVybiBvPU0uWlAubG9hZGluZygiXHU2QjYzXHU1NzI4XHU2N0U1XHU4QkUyIiksSi5wcmV2PTEsSi5uZXh0PTQsKDAsYi54Nykoe30pLnRoZW4oZnVuY3Rpb24oZCl7dmFyIHVlPVtdO3VlLnB1c2goIjEiKSxPKGQpLHVlLnB1c2goZFswXS5jaGlsZHJlblswXS5pZCksayh1ZSksQS5vblNlbGVjdChkWzBdLmNoaWxkcmVuWzBdKX0pO2Nhc2UgNDpyZXR1cm4gbygpLEouYWJydXB0KCJyZXR1cm4iLCEwKTtjYXNlIDg6cmV0dXJuIEoucHJldj04LEoudDA9Si5jYXRjaCgxKSxvKCksSi5hYnJ1cHQoInJldHVybiIsITEpO2Nhc2UgMTI6Y2FzZSJlbmQiOnJldHVybiBKLnN0b3AoKX19LGosbnVsbCxbWzEsOF1dKX0pKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gUi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpOygwLFAudXNlRWZmZWN0KShmdW5jdGlvbigpe0UoKX0sW10pO3ZhciByPWZ1bmN0aW9uKGosbyl7QS5vblNlbGVjdChvLm5vZGUpfSxhPWZ1bmN0aW9uKGope2soaiksdSghMSl9O3JldHVybigwLGguanN4KShMLHtkZWZhdWx0RXhwYW5kQWxsOiEwLG9uRXhwYW5kOmEsZXhwYW5kZWRLZXlzOkgsYXV0b0V4cGFuZFBhcmVudDp2LG9uU2VsZWN0OnIsdHJlZURhdGE6X30pfTtJLmRlZmF1bHQ9S30sNjIyMjI6ZnVuY3Rpb24oWSxJLGUpe2UucihJKTt2YXIgdz1lKDE1MDA5KSx0PWUubih3KSxGPWUoOTc4NTcpLG49ZS5uKEYpLFU9ZSg5OTI4OSksbD1lLm4oVSksUD1lKDU1NzQpLGk9ZS5uKFApLE09ZSg2NzI5NCksYj1lKDk5ODU5KSxoPWUoMTc3ODgpLEw9ZSg3Njc3MiksSz1lKDk3MjY5KSxEPWUoNTk2NiksQT1lKDg1ODkzKSxwPWZ1bmN0aW9uKF8pe3ZhciBPPWIuWi51c2VGb3JtKCksZj1pKCkoTywxKSxXPWZbMF0sSD1iLloudXNlV2F0Y2goInBhc3N3b3JkIixXKSxrPV8udmFsdWVzLnVzZXJJZCxWPSgwLEwudXNlSW50bCkoKSxHPWZ1bmN0aW9uKCl7Vy5zdWJtaXQoKX0sdj1mdW5jdGlvbigpe18ub25DYW5jZWwoKX0sdT1mdW5jdGlvbigpe3ZhciByPWwoKSh0KCkoKS5tYXJrKGZ1bmN0aW9uIGEoUil7cmV0dXJuIHQoKSgpLndyYXAoZnVuY3Rpb24obyl7Zm9yKDs7KXN3aXRjaChvLnByZXY9by5uZXh0KXtjYXNlIDA6Xy5vblN1Ym1pdChuKCkobigpKHt9LFIpLHt9LHt1c2VySWQ6a30pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBvLnN0b3AoKX19LGEpfSkpO3JldHVybiBmdW5jdGlvbihSKXtyZXR1cm4gci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLEU9ZnVuY3Rpb24oYSxSKXtyZXR1cm4gUj09PUg/UHJvbWlzZS5yZXNvbHZlKCk6UHJvbWlzZS5yZWplY3QobmV3IEVycm9yKCJcdTRFMjRcdTZCMjFcdTVCQzZcdTc4MDFcdThGOTNcdTUxNjVcdTRFMERcdTRFMDBcdTgxRjQiKSl9O3JldHVybigwLEEuanN4KShoLlose3dpZHRoOjY0MCx0aXRsZTpWLmZvcm1hdE1lc3NhZ2Uoe2lkOiJzeXN0ZW0udXNlci5yZXNldC5wYXNzd29yZCIsZGVmYXVsdE1lc3NhZ2U6Ilx1NUJDNlx1NzgwMVx1OTFDRFx1N0Y2RSJ9KSxvcGVuOl8ub3BlbixkZXN0cm95T25DbG9zZTohMCxvbk9rOkcsb25DYW5jZWw6dixjaGlsZHJlbjooMCxBLmpzeHMpKEsuQSx7Z3JpZDohMCxmb3JtOlcsbGF5b3V0OiJob3Jpem9udGFsIixvbkZpbmlzaDp1LGluaXRpYWxWYWx1ZXM6e3Bhc3N3b3JkOiIiLGNvbmZpcm1fcGFzc3dvcmQ6IiJ9LGNoaWxkcmVuOlsoMCxBLmpzeHMpKCJwIix7Y2hpbGRyZW46WyJcdThCRjdcdThGOTNcdTUxNjVcdTc1MjhcdTYyMzciLF8udmFsdWVzLnVzZXJOYW1lLCJcdTc2ODRcdTY1QjBcdTVCQzZcdTc4MDFcdUZGMDEiXX0pLCgwLEEuanN4KShELlouUGFzc3dvcmQse25hbWU6InBhc3N3b3JkIixsYWJlbDoiXHU3NjdCXHU1RjU1XHU1QkM2XHU3ODAxIixydWxlczpbe3JlcXVpcmVkOiEwLG1lc3NhZ2U6Ilx1NzY3Qlx1NUY1NVx1NUJDNlx1NzgwMVx1NEUwRFx1NTNFRlx1NEUzQVx1N0E3QVx1MzAwMiJ9XX0pLCgwLEEuanN4KShELlouUGFzc3dvcmQse25hbWU6ImNvbmZpcm1fcGFzc3dvcmQiLGxhYmVsOiJcdTc4NkVcdThCQTRcdTVCQzZcdTc4MDEiLHJ1bGVzOlt7cmVxdWlyZWQ6ITAsbWVzc2FnZToiXHU3ODZFXHU4QkE0XHU1QkM2XHU3ODAxIn0se3ZhbGlkYXRvcjpFfV19KV19KX0pfTtJLmRlZmF1bHQ9cH0sNzc3NzpmdW5jdGlvbihZLEksZSl7ZS5yKEkpO3ZhciB3PWUoNTU3NCksdD1lLm4odyksRj1lKDE1MDA5KSxuPWUubihGKSxVPWUoOTc4NTcpLGw9ZS5uKFUpLFA9ZSg5OTI4OSksaT1lLm4oUCksTT1lKDY3Mjk0KSxiPWUoNzY3NzIpLGg9ZSg3MjI2OSksTD1lKDg1NDE4KSxLPWUoNzg5NTcpLEQ9ZSg3MTIzMCksQT1lKDE1NzQ2KSxwPWUoNDM5Mykscz1lKDE3Nzg4KSxfPWUoMjQ1MyksTz1lKDgzNjIyKSxmPWUoNjExMCksVz1lKDY1Mzg1KSxIPWUoMjIzNiksaz1lKDg2NTQ4KSxWPWUoNDg2ODkpLEc9ZSg4MDg4Miksdj1lKDI0OTY5KSx1PWUoMTE0NzUpLEU9ZSg5MDI1KSxyPWUoODY5MjQpLGE9ZSg5Mjk4MiksUj1lKDEwNjA1KSxqPWUoNjIyMjIpLG89ZSgxNTQ4NyksbWU9ZSgzNzU2MyksSj1lKDgwNDQ4KSxkPWUoODU4OTMpLHVlPXMuWi5jb25maXJtLEJlPWZ1bmN0aW9uKCl7dmFyIHE9aSgpKG4oKSgpLm1hcmsoZnVuY3Rpb24geih4KXt2YXIgWjtyZXR1cm4gbigpKCkud3JhcChmdW5jdGlvbihnKXtmb3IoOzspc3dpdGNoKGcucHJldj1nLm5leHQpe2Nhc2UgMDpyZXR1cm4gWj1fLlpQLmxvYWRpbmcoIlx1NkI2M1x1NTcyOFx1NkRGQlx1NTJBMCIpLGcucHJldj0xLGcubmV4dD00LCgwLEUuY24pKGwoKSh7fSx4KSk7Y2FzZSA0OnJldHVybiBaKCksXy5aUC5zdWNjZXNzKCJcdTZERkJcdTUyQTBcdTYyMTBcdTUyOUYiKSxnLmFicnVwdCgicmV0dXJuIiwhMCk7Y2FzZSA5OnJldHVybiBnLnByZXY9OSxnLnQwPWcuY2F0Y2goMSksWigpLF8uWlAuZXJyb3IoIlx1NkRGQlx1NTJBMFx1NTkzMVx1OEQyNVx1OEJGN1x1OTFDRFx1OEJENVx1RkYwMSIpLGcuYWJydXB0KCJyZXR1cm4iLCExKTtjYXNlIDE0OmNhc2UiZW5kIjpyZXR1cm4gZy5zdG9wKCl9fSx6LG51bGwsW1sxLDldXSl9KSk7cmV0dXJuIGZ1bmN0aW9uKHgpe3JldHVybiBxLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksS2U9ZnVuY3Rpb24oKXt2YXIgcT1pKCkobigpKCkubWFyayhmdW5jdGlvbiB6KHgpe3ZhciBaO3JldHVybiBuKCkoKS53cmFwKGZ1bmN0aW9uKGcpe2Zvcig7Oylzd2l0Y2goZy5wcmV2PWcubmV4dCl7Y2FzZSAwOnJldHVybiBaPV8uWlAubG9hZGluZygiXHU2QjYzXHU1NzI4XHU5MTREXHU3RjZFIiksZy5wcmV2PTEsZy5uZXh0PTQsKDAsRS5OcSkoeCk7Y2FzZSA0OnJldHVybiBaKCksXy5aUC5zdWNjZXNzKCJcdTkxNERcdTdGNkVcdTYyMTBcdTUyOUYiKSxnLmFicnVwdCgicmV0dXJuIiwhMCk7Y2FzZSA5OnJldHVybiBnLnByZXY9OSxnLnQwPWcuY2F0Y2goMSksWigpLF8uWlAuZXJyb3IoIlx1OTE0RFx1N0Y2RVx1NTkzMVx1OEQyNVx1OEJGN1x1OTFDRFx1OEJENVx1RkYwMSIpLGcuYWJydXB0KCJyZXR1cm4iLCExKTtjYXNlIDE0OmNhc2UiZW5kIjpyZXR1cm4gZy5zdG9wKCl9fSx6LG51bGwsW1sxLDldXSl9KSk7cmV0dXJuIGZ1bmN0aW9uKHgpe3JldHVybiBxLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksY2U9ZnVuY3Rpb24oKXt2YXIgcT1pKCkobigpKCkubWFyayhmdW5jdGlvbiB6KHgpe3ZhciBaO3JldHVybiBuKCkoKS53cmFwKGZ1bmN0aW9uKGcpe2Zvcig7Oylzd2l0Y2goZy5wcmV2PWcubmV4dCl7Y2FzZSAwOmlmKFo9Xy5aUC5sb2FkaW5nKCJcdTZCNjNcdTU3MjhcdTUyMjBcdTk2NjQiKSx4KXtnLm5leHQ9MzticmVha31yZXR1cm4gZy5hYnJ1cHQoInJldHVybiIsITApO2Nhc2UgMzpyZXR1cm4gZy5wcmV2PTMsZy5uZXh0PTYsKDAsRS5rWCkoeC5tYXAoZnVuY3Rpb24oWCl7cmV0dXJuIFgudXNlcklkfSkuam9pbigiLCIpKTtjYXNlIDY6cmV0dXJuIFooKSxfLlpQLnN1Y2Nlc3MoIlx1NTIyMFx1OTY2NFx1NjIxMFx1NTI5Rlx1RkYwQ1x1NTM3M1x1NUMwNlx1NTIzN1x1NjVCMCIpLGcuYWJydXB0KCJyZXR1cm4iLCEwKTtjYXNlIDExOnJldHVybiBnLnByZXY9MTEsZy50MD1nLmNhdGNoKDMpLFooKSxfLlpQLmVycm9yKCJcdTUyMjBcdTk2NjRcdTU5MzFcdThEMjVcdUZGMENcdThCRjdcdTkxQ0RcdThCRDUiKSxnLmFicnVwdCgicmV0dXJuIiwhMSk7Y2FzZSAxNjpjYXNlImVuZCI6cmV0dXJuIGcuc3RvcCgpfX0seixudWxsLFtbMywxMV1dKX0pKTtyZXR1cm4gZnVuY3Rpb24oeCl7cmV0dXJuIHEuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSxTZT1mdW5jdGlvbigpe3ZhciBxPWkoKShuKCkoKS5tYXJrKGZ1bmN0aW9uIHooeCl7dmFyIFosJDtyZXR1cm4gbigpKCkud3JhcChmdW5jdGlvbihYKXtmb3IoOzspc3dpdGNoKFgucHJldj1YLm5leHQpe2Nhc2UgMDppZihaPV8uWlAubG9hZGluZygiXHU2QjYzXHU1NzI4XHU1MjIwXHU5NjY0IikseCl7WC5uZXh0PTM7YnJlYWt9cmV0dXJuIFguYWJydXB0KCJyZXR1cm4iLCEwKTtjYXNlIDM6cmV0dXJuIFgucHJldj0zLCQ9W3gudXNlcklkXSxYLm5leHQ9NywoMCxFLmtYKSgkLmpvaW4oIiwiKSk7Y2FzZSA3OnJldHVybiBaKCksXy5aUC5zdWNjZXNzKCJcdTUyMjBcdTk2NjRcdTYyMTBcdTUyOUZcdUZGMENcdTUzNzNcdTVDMDZcdTUyMzdcdTY1QjAiKSxYLmFicnVwdCgicmV0dXJuIiwhMCk7Y2FzZSAxMjpyZXR1cm4gWC5wcmV2PTEyLFgudDA9WC5jYXRjaCgzKSxaKCksXy5aUC5lcnJvcigiXHU1MjIwXHU5NjY0XHU1OTMxXHU4RDI1XHVGRjBDXHU4QkY3XHU5MUNEXHU4QkQ1IiksWC5hYnJ1cHQoInJldHVybiIsITEpO2Nhc2UgMTc6Y2FzZSJlbmQiOnJldHVybiBYLnN0b3AoKX19LHosbnVsbCxbWzMsMTJdXSl9KSk7cmV0dXJuIGZ1bmN0aW9uKHgpe3JldHVybiBxLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksd2U9ZnVuY3Rpb24oKXt2YXIgcT1pKCkobigpKCkubWFyayhmdW5jdGlvbiB6KCl7dmFyIHg7cmV0dXJuIG4oKSgpLndyYXAoZnVuY3Rpb24oJCl7Zm9yKDs7KXN3aXRjaCgkLnByZXY9JC5uZXh0KXtjYXNlIDA6cmV0dXJuIHg9Xy5aUC5sb2FkaW5nKCJcdTZCNjNcdTU3MjhcdTVCRkNcdTUxRkEiKSwkLnByZXY9MSwkLm5leHQ9NCwoMCxFLl9MKSgpO2Nhc2UgNDpyZXR1cm4geCgpLF8uWlAuc3VjY2VzcygiXHU1QkZDXHU1MUZBXHU2MjEwXHU1MjlGIiksJC5hYnJ1cHQoInJldHVybiIsITApO2Nhc2UgOTpyZXR1cm4gJC5wcmV2PTksJC50MD0kLmNhdGNoKDEpLHgoKSxfLlpQLmVycm9yKCJcdTVCRkNcdTUxRkFcdTU5MzFcdThEMjVcdUZGMENcdThCRjdcdTkxQ0RcdThCRDUiKSwkLmFicnVwdCgicmV0dXJuIiwhMSk7Y2FzZSAxNDpjYXNlImVuZCI6cmV0dXJuICQuc3RvcCgpfX0seixudWxsLFtbMSw5XV0pfSkpO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBxLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksRmU9ZnVuY3Rpb24oKXt2YXIgej1fLlpQLnVzZU1lc3NhZ2UoKSx4PXQoKSh6LDIpLFo9eFswXSwkPXhbMV0sZz0oMCxNLnVzZVJlZikoKSxYPSgwLE0udXNlU3RhdGUpKCExKSxwZT10KCkoWCwyKSx4ZT1wZVswXSxpZT1wZVsxXSxaZT0oMCxNLnVzZVN0YXRlKSghMSksaGU9dCgpKFplLDIpLCRlPWhlWzBdLG9lPWhlWzFdLEhlPSgwLE0udXNlU3RhdGUpKCExKSxmZT10KCkoSGUsMiksR2U9ZmVbMF0sZGU9ZmVbMV0sbmU9KDAsTS51c2VSZWYpKCksTmU9KDAsTS51c2VTdGF0ZSkoKSxFZT10KCkoTmUsMiksZ2U9RWVbMF0sZWU9RWVbMV0sVmU9KDAsTS51c2VTdGF0ZSkoW10pLFRlPXQoKShWZSwyKSxyZT1UZVswXSxhZT1UZVsxXSx6ZT0oMCxNLnVzZVN0YXRlKSh7aWQ6MH0pLFBlPXQoKSh6ZSwyKSxYZT1QZVswXSxrZT1QZVsxXSxKZT0oMCxNLnVzZVN0YXRlKShbXSksdmU9dCgpKEplLDIpLFFlPXZlWzBdLFllPXZlWzFdLHFlPSgwLE0udXNlU3RhdGUpKFtdKSxiZT10KCkocWUsMiksRGU9YmVbMF0sZW49YmVbMV0sbm49KDAsTS51c2VTdGF0ZSkoKSxPZT10KCkobm4sMikscm49T2VbMF0sdG49T2VbMV0sc249KDAsTS51c2VTdGF0ZSkoKSxNZT10KCkoc24sMiksYW49TWVbMF0seWU9TWVbMV0sdW49KDAsTS51c2VTdGF0ZSkoKSxBZT10KCkodW4sMiksamU9QWVbMF0sX249QWVbMV0sbG49KDAsTS51c2VTdGF0ZSkoKSxDZT10KCkobG4sMiksUmU9Q2VbMF0sVWU9Q2VbMV0sb249KDAsTS51c2VTdGF0ZSkoKSxMZT10KCkob24sMiksZG49TGVbMF0sV2U9TGVbMV0sc2U9KDAsYi51c2VBY2Nlc3MpKCksbW49KDAsYi51c2VJbnRsKSgpOygwLE0udXNlRWZmZWN0KShmdW5jdGlvbigpeygwLGEucFgpKCJzeXNfdXNlcl9zZXgiKS50aGVuKGZ1bmN0aW9uKEIpe1llKEIpfSksKDAsYS5wWCkoInN5c19ub3JtYWxfZGlzYWJsZSIpLnRoZW4oZnVuY3Rpb24oQil7ZW4oQil9KX0sW10pO3ZhciBjbj1mdW5jdGlvbihDKXt2YXIgVD1DLnN0YXR1cz09PSIxIj8iXHU1NDJGXHU3NTI4IjoiXHU1MDVDXHU3NTI4IixjPUMuc3RhdHVzPT09IjAiPyIxIjoiMCI7dWUoe3RpdGxlOiJcdTc4NkVcdThCQTRcdTg5ODEiLmNvbmNhdChUKS5jb25jYXQoQy51c2VyTmFtZSwiXHU3NTI4XHU2MjM3XHU1NDE3XHVGRjFGIiksb25PazpmdW5jdGlvbigpeygwLEUuYXopKEMudXNlcklkLGMpLnRoZW4oZnVuY3Rpb24obSl7aWYobS5jb2RlPT09MjAwKXt2YXIgeTtaLm9wZW4oe3R5cGU6InN1Y2Nlc3MiLGNvbnRlbnQ6Ilx1NjZGNFx1NjVCMFx1NjIxMFx1NTI5Rlx1RkYwMSJ9KSwoeT1uZS5jdXJyZW50KT09PW51bGx8fHk9PT12b2lkIDB8fHkucmVsb2FkKCl9ZWxzZSBaLm9wZW4oe3R5cGU6ImVycm9yIixjb250ZW50OiJcdTY2RjRcdTY1QjBcdTU5MzFcdThEMjVcdUZGMDEifSl9KX19KX0sSWU9ZnVuY3Rpb24oKXt2YXIgQj1pKCkobigpKCkubWFyayhmdW5jdGlvbiBDKFQpe3ZhciBjO3JldHVybiBuKCkoKS53cmFwKGZ1bmN0aW9uKG0pe2Zvcig7Oylzd2l0Y2gobS5wcmV2PW0ubmV4dCl7Y2FzZSAwOnJldHVybiBtLm5leHQ9MiwoMCxFLlBSKShUKTtjYXNlIDI6Yz1tLnNlbnQsdG4oYy5wb3N0SWRzKSx5ZShjLnBvc3RzLm1hcChmdW5jdGlvbih5KXtyZXR1cm57dmFsdWU6eS5wb3N0SWQsbGFiZWw6eS5wb3N0TmFtZX19KSksX24oYy5yb2xlSWRzKSxVZShjLnJvbGVzLm1hcChmdW5jdGlvbih5KXtyZXR1cm57dmFsdWU6eS5yb2xlSWQsbGFiZWw6eS5yb2xlTmFtZX19KSk7Y2FzZSA3OmNhc2UiZW5kIjpyZXR1cm4gbS5zdG9wKCl9fSxDKX0pKTtyZXR1cm4gZnVuY3Rpb24oVCl7cmV0dXJuIEIuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSxwbj1be3RpdGxlOigwLGQuanN4KShiLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJzeXN0ZW0udXNlci51c2VyX2lkIixkZWZhdWx0TWVzc2FnZToiXHU3NTI4XHU2MjM3XHU3RjE2XHU1M0Y3In0pLGRhdGFJbmRleDoiZGVwdElkIix2YWx1ZVR5cGU6InRleHQifSx7dGl0bGU6KDAsZC5qc3gpKGIuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InN5c3RlbS51c2VyLnVzZXJfbmFtZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NzUyOFx1NjIzN1x1OEQyNlx1NTNGNyJ9KSxkYXRhSW5kZXg6InVzZXJOYW1lIix2YWx1ZVR5cGU6InRleHQifSx7dGl0bGU6KDAsZC5qc3gpKGIuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InN5c3RlbS51c2VyLm5pY2tfbmFtZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NzUyOFx1NjIzN1x1NjYzNVx1NzlGMCJ9KSxkYXRhSW5kZXg6Im5pY2tOYW1lIix2YWx1ZVR5cGU6InRleHQifSx7dGl0bGU6KDAsZC5qc3gpKGIuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InN5c3RlbS51c2VyLmRlcHRfbmFtZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OTBFOFx1OTVFOCJ9KSxkYXRhSW5kZXg6WyJkZXB0IiwiZGVwdE5hbWUiXSx2YWx1ZVR5cGU6InRleHQiLGhpZGVJblNlYXJjaDohMH0se3RpdGxlOigwLGQuanN4KShiLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJzeXN0ZW0udXNlci5waG9uZW51bWJlciIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjI0Qlx1NjczQVx1NTNGN1x1NzgwMSJ9KSxkYXRhSW5kZXg6InBob25lbnVtYmVyIix2YWx1ZVR5cGU6InRleHQifSx7dGl0bGU6KDAsZC5qc3gpKGIuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InN5c3RlbS51c2VyLnN0YXR1cyIsZGVmYXVsdE1lc3NhZ2U6Ilx1NUUxMFx1NTNGN1x1NzJCNlx1NjAwMSJ9KSxkYXRhSW5kZXg6InN0YXR1cyIsdmFsdWVUeXBlOiJzZWxlY3QiLHZhbHVlRW51bTpEZSxyZW5kZXI6ZnVuY3Rpb24oQyxUKXtyZXR1cm4oMCxkLmpzeCkoaC5aLHtjaGVja2VkOlQuc3RhdHVzPT09IjAiLGNoZWNrZWRDaGlsZHJlbjoiXHU2QjYzXHU1RTM4Iix1bkNoZWNrZWRDaGlsZHJlbjoiXHU1MDVDXHU3NTI4IixkZWZhdWx0Q2hlY2tlZDohMCxvbkNsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIGNuKFQpfX0pfX0se3RpdGxlOigwLGQuanN4KShiLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJwYWdlcy5zZWFyY2hUYWJsZS50aXRsZU9wdGlvbiIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjRDRFx1NEY1QyJ9KSxkYXRhSW5kZXg6Im9wdGlvbiIsd2lkdGg6IjIyMHB4Iix2YWx1ZVR5cGU6Im9wdGlvbiIscmVuZGVyOmZ1bmN0aW9uKEMsVCl7cmV0dXJuWygwLGQuanN4KShPLlpQLHt0eXBlOiJsaW5rIixzaXplOiJzbWFsbCIsaWNvbjooMCxkLmpzeCkoay5aLHt9KSxoaWRkZW46IXNlLmhhc1Blcm1zKCJzeXN0ZW06dXNlcjplZGl0Iiksb25DbGljazppKCkobigpKCkubWFyayhmdW5jdGlvbiBjKCl7dmFyIFM7cmV0dXJuIG4oKSgpLndyYXAoZnVuY3Rpb24oeSl7Zm9yKDs7KXN3aXRjaCh5LnByZXY9eS5uZXh0KXtjYXNlIDA6cmV0dXJuIEllKFQudXNlcklkKSx5Lm5leHQ9MywoMCxFLng3KSh7fSk7Y2FzZSAzOlM9eS5zZW50LFdlKFMpLGllKCEwKSxlZShUKTtjYXNlIDc6Y2FzZSJlbmQiOnJldHVybiB5LnN0b3AoKX19LGMpfSkpLGNoaWxkcmVuOiJcdTdGMTZcdThGOTEifSwiZWRpdCIpLCgwLGQuanN4KShPLlpQLHt0eXBlOiJsaW5rIixzaXplOiJzbWFsbCIsZGFuZ2VyOiEwLGljb246KDAsZC5qc3gpKFYuWix7fSksaGlkZGVuOiFzZS5oYXNQZXJtcygic3lzdGVtOnVzZXI6cmVtb3ZlIiksb25DbGljazppKCkobigpKCkubWFyayhmdW5jdGlvbiBjKCl7cmV0dXJuIG4oKSgpLndyYXAoZnVuY3Rpb24obSl7Zm9yKDs7KXN3aXRjaChtLnByZXY9bS5uZXh0KXtjYXNlIDA6cy5aLmNvbmZpcm0oe3RpdGxlOiJcdTUyMjBcdTk2NjQiLGNvbnRlbnQ6Ilx1Nzg2RVx1NUI5QVx1NTIyMFx1OTY2NFx1OEJFNVx1OTg3OVx1NTQxN1x1RkYxRiIsb2tUZXh0OiJcdTc4NkVcdThCQTQiLGNhbmNlbFRleHQ6Ilx1NTNENlx1NkQ4OCIsb25PazpmdW5jdGlvbigpe3ZhciB5PWkoKShuKCkoKS5tYXJrKGZ1bmN0aW9uIHRlKCl7dmFyIGxlO3JldHVybiBuKCkoKS53cmFwKGZ1bmN0aW9uKF9lKXtmb3IoOzspc3dpdGNoKF9lLnByZXY9X2UubmV4dCl7Y2FzZSAwOnJldHVybiBfZS5uZXh0PTIsU2UoVCk7Y2FzZSAyOmxlPV9lLnNlbnQsbGUmJm5lLmN1cnJlbnQmJm5lLmN1cnJlbnQucmVsb2FkKCk7Y2FzZSA0OmNhc2UiZW5kIjpyZXR1cm4gX2Uuc3RvcCgpfX0sdGUpfSkpO2Z1bmN0aW9uIE4oKXtyZXR1cm4geS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIE59KCl9KTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBtLnN0b3AoKX19LGMpfSkpLGNoaWxkcmVuOiJcdTUyMjBcdTk2NjQifSwiYmF0Y2hSZW1vdmUiKSwoMCxkLmpzeCkoTC5aLHttZW51OntpdGVtczpbe2xhYmVsOigwLGQuanN4KShiLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJzeXN0ZW0udXNlci5yZXNldC5wYXNzd29yZCIsZGVmYXVsdE1lc3NhZ2U6Ilx1NUJDNlx1NzgwMVx1OTFDRFx1N0Y2RSJ9KSxrZXk6InJlc2V0IixkaXNhYmxlZDohc2UuaGFzUGVybXMoInN5c3RlbTp1c2VyOmVkaXQiKX0se2xhYmVsOiJcdTUyMDZcdTkxNERcdTg5RDJcdTgyNzIiLGtleToiYXV0aFJvbGUiLGRpc2FibGVkOiFzZS5oYXNQZXJtcygic3lzdGVtOnVzZXI6ZWRpdCIpfV0sb25DbGljazpmdW5jdGlvbihTKXt2YXIgbT1TLmtleTttPT09InJlc2V0Ij8ob2UoITApLGVlKFQpKTptPT09ImF1dGhSb2xlIiYmKEllKFQudXNlcklkKSxkZSghMCksZWUoVCkpfX0sY2hpbGRyZW46KDAsZC5qc3gpKCJhIix7b25DbGljazpmdW5jdGlvbihTKXtyZXR1cm4gUy5wcmV2ZW50RGVmYXVsdCgpfSxjaGlsZHJlbjooMCxkLmpzeHMpKEsuWix7Y2hpbGRyZW46WygwLGQuanN4KShHLlose30pLCJcdTY2RjRcdTU5MUEiXX0pfSl9LCJtb3JlIildfX1dO3JldHVybigwLGQuanN4cykoZi5feix7Y2hpbGRyZW46WyQsKDAsZC5qc3hzKShELlose2d1dHRlcjpbMTYsMjRdLGNoaWxkcmVuOlsoMCxkLmpzeCkoQS5aLHtsZzo2LG1kOjI0LGNoaWxkcmVuOigwLGQuanN4KShwLlose2NoaWxkcmVuOigwLGQuanN4KShSLmRlZmF1bHQse29uU2VsZWN0OmZ1bmN0aW9uKCl7dmFyIEI9aSgpKG4oKSgpLm1hcmsoZnVuY3Rpb24gQyhUKXt2YXIgYztyZXR1cm4gbigpKCkud3JhcChmdW5jdGlvbihtKXtmb3IoOzspc3dpdGNoKG0ucHJldj1tLm5leHQpe2Nhc2UgMDprZShUKSxuZS5jdXJyZW50JiYoZz09bnVsbHx8KGM9Zy5jdXJyZW50KT09PW51bGx8fGM9PT12b2lkIDB8fGMuc3VibWl0KCkpO2Nhc2UgMjpjYXNlImVuZCI6cmV0dXJuIG0uc3RvcCgpfX0sQyl9KSk7cmV0dXJuIGZ1bmN0aW9uKEMpe3JldHVybiBCLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCl9KX0pfSksKDAsZC5qc3gpKEEuWix7bGc6MTgsbWQ6MjQsY2hpbGRyZW46KDAsZC5qc3gpKFcuWix7aGVhZGVyVGl0bGU6bW4uZm9ybWF0TWVzc2FnZSh7aWQ6InBhZ2VzLnNlYXJjaFRhYmxlLnRpdGxlIixkZWZhdWx0TWVzc2FnZToiXHU0RkUxXHU2MDZGIn0pLGFjdGlvblJlZjpuZSxmb3JtUmVmOmcscm93S2V5OiJ1c2VySWQiLHNlYXJjaDp7bGFiZWxXaWR0aDoxMjB9LHRvb2xCYXJSZW5kZXI6ZnVuY3Rpb24oKXtyZXR1cm5bKDAsZC5qc3hzKShPLlpQLHt0eXBlOiJwcmltYXJ5IixoaWRkZW46IXNlLmhhc1Blcm1zKCJzeXN0ZW06dXNlcjphZGQiKSxvbkNsaWNrOmkoKShuKCkoKS5tYXJrKGZ1bmN0aW9uIEMoKXt2YXIgVCxjLFM7cmV0dXJuIG4oKSgpLndyYXAoZnVuY3Rpb24oeSl7Zm9yKDs7KXN3aXRjaCh5LnByZXY9eS5uZXh0KXtjYXNlIDA6cmV0dXJuIHkubmV4dD0yLCgwLEUueDcpKHt9KTtjYXNlIDI6cmV0dXJuIFQ9eS5zZW50LFdlKFQpLHkubmV4dD02LCgwLG8uVUkpKCk7Y2FzZSA2OnJldHVybiBjPXkuc2VudCxjLmNvZGU9PT0yMDAmJnllKGMucm93cy5tYXAoZnVuY3Rpb24oTil7cmV0dXJue3ZhbHVlOk4ucG9zdElkLGxhYmVsOk4ucG9zdE5hbWV9fSkpLHkubmV4dD0xMCwoMCxtZS5KVikoKTtjYXNlIDEwOlM9eS5zZW50LFMuY29kZT09PTIwMCYmVWUoUy5yb3dzLm1hcChmdW5jdGlvbihOKXtyZXR1cm57dmFsdWU6Ti5yb2xlSWQsbGFiZWw6Ti5yb2xlTmFtZX19KSksZWUodm9pZCAwKSxpZSghMCk7Y2FzZSAxNDpjYXNlImVuZCI6cmV0dXJuIHkuc3RvcCgpfX0sQyl9KSksY2hpbGRyZW46WygwLGQuanN4KSh2Llose30pLCIgIiwoMCxkLmpzeCkoYi5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoicGFnZXMuc2VhcmNoVGFibGUubmV3IixkZWZhdWx0TWVzc2FnZToiXHU2NUIwXHU1RUZBIn0pXX0sImFkZCIpLCgwLGQuanN4cykoTy5aUCx7dHlwZToicHJpbWFyeSIsZGFuZ2VyOiEwLGhpZGRlbjoocmU9PW51bGw/dm9pZCAwOnJlLmxlbmd0aCk9PT0wfHwhc2UuaGFzUGVybXMoInN5c3RlbTp1c2VyOnJlbW92ZSIpLG9uQ2xpY2s6aSgpKG4oKSgpLm1hcmsoZnVuY3Rpb24gQygpe3JldHVybiBuKCkoKS53cmFwKGZ1bmN0aW9uKGMpe2Zvcig7Oylzd2l0Y2goYy5wcmV2PWMubmV4dCl7Y2FzZSAwOnMuWi5jb25maXJtKHt0aXRsZToiXHU2NjJGXHU1NDI2XHU3ODZFXHU4QkE0XHU1MjIwXHU5NjY0XHU2MjQwXHU5MDA5XHU2NTcwXHU2MzZFXHU5ODc5PyIsaWNvbjooMCxkLmpzeCkodS5aLHt9KSxjb250ZW50OiJcdThCRjdcdThDMjhcdTYxNEVcdTY0Q0RcdTRGNUMiLG9uT2s6ZnVuY3Rpb24oKXtyZXR1cm4gaSgpKG4oKSgpLm1hcmsoZnVuY3Rpb24gbSgpe3ZhciB5LE4sdGU7cmV0dXJuIG4oKSgpLndyYXAoZnVuY3Rpb24oUSl7Zm9yKDs7KXN3aXRjaChRLnByZXY9US5uZXh0KXtjYXNlIDA6cmV0dXJuIFEubmV4dD0yLGNlKHJlKTtjYXNlIDI6eT1RLnNlbnQseSYmKGFlKFtdKSwoTj1uZS5jdXJyZW50KT09PW51bGx8fE49PT12b2lkIDB8fCh0ZT1OLnJlbG9hZEFuZFJlc3QpPT09bnVsbHx8dGU9PT12b2lkIDB8fHRlLmNhbGwoTikpO2Nhc2UgNDpjYXNlImVuZCI6cmV0dXJuIFEuc3RvcCgpfX0sbSl9KSkoKX0sb25DYW5jZWw6ZnVuY3Rpb24oKXt9fSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gYy5zdG9wKCl9fSxDKX0pKSxjaGlsZHJlbjpbKDAsZC5qc3gpKFYuWix7fSksKDAsZC5qc3gpKGIuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InBhZ2VzLnNlYXJjaFRhYmxlLmRlbGV0ZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NTIyMFx1OTY2NCJ9KV19LCJyZW1vdmUiKSwoMCxkLmpzeHMpKE8uWlAse3R5cGU6InByaW1hcnkiLGhpZGRlbjohc2UuaGFzUGVybXMoInN5c3RlbTp1c2VyOmV4cG9ydCIpLG9uQ2xpY2s6aSgpKG4oKSgpLm1hcmsoZnVuY3Rpb24gQygpe3JldHVybiBuKCkoKS53cmFwKGZ1bmN0aW9uKGMpe2Zvcig7Oylzd2l0Y2goYy5wcmV2PWMubmV4dCl7Y2FzZSAwOndlKCk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gYy5zdG9wKCl9fSxDKX0pKSxjaGlsZHJlbjpbKDAsZC5qc3gpKHYuWix7fSksKDAsZC5qc3gpKGIuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InBhZ2VzLnNlYXJjaFRhYmxlLmV4cG9ydCIsZGVmYXVsdE1lc3NhZ2U6Ilx1NUJGQ1x1NTFGQSJ9KV19LCJleHBvcnQiKV19LHJlcXVlc3Q6ZnVuY3Rpb24oQyl7cmV0dXJuKDAsRS5sRSkobCgpKGwoKSh7fSxDKSx7fSx7ZGVwdElkOlhlLmlkfSkpLnRoZW4oZnVuY3Rpb24oVCl7dmFyIGM9e2RhdGE6VC5yb3dzLHRvdGFsOlQudG90YWwsc3VjY2VzczohMH07cmV0dXJuIGN9KX0sY29sdW1uczpwbixyb3dTZWxlY3Rpb246e29uQ2hhbmdlOmZ1bmN0aW9uKEMsVCl7YWUoVCl9fX0sInVzZXJMaXN0Iil9KV19KSwocmU9PW51bGw/dm9pZCAwOnJlLmxlbmd0aCk+MCYmKDAsZC5qc3gpKEguUyx7ZXh0cmE6KDAsZC5qc3hzKSgiZGl2Iix7Y2hpbGRyZW46WygwLGQuanN4KShiLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJwYWdlcy5zZWFyY2hUYWJsZS5jaG9zZW4iLGRlZmF1bHRNZXNzYWdlOiJcdTVERjJcdTkwMDlcdTYyRTkifSksKDAsZC5qc3gpKCJhIix7c3R5bGU6e2ZvbnRXZWlnaHQ6NjAwfSxjaGlsZHJlbjpyZS5sZW5ndGh9KSwoMCxkLmpzeCkoYi5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoicGFnZXMuc2VhcmNoVGFibGUuaXRlbSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OTg3OSJ9KV19KSxjaGlsZHJlbjooMCxkLmpzeCkoTy5aUCx7ZGFuZ2VyOiEwLGhpZGRlbjohc2UuaGFzUGVybXMoInN5c3RlbTp1c2VyOmRlbCIpLG9uQ2xpY2s6aSgpKG4oKSgpLm1hcmsoZnVuY3Rpb24gQigpe3JldHVybiBuKCkoKS53cmFwKGZ1bmN0aW9uKFQpe2Zvcig7Oylzd2l0Y2goVC5wcmV2PVQubmV4dCl7Y2FzZSAwOnMuWi5jb25maXJtKHt0aXRsZToiXHU1MjIwXHU5NjY0Iixjb250ZW50OiJcdTc4NkVcdTVCOUFcdTUyMjBcdTk2NjRcdThCRTVcdTk4NzlcdTU0MTdcdUZGMUYiLG9rVGV4dDoiXHU3ODZFXHU4QkE0IixjYW5jZWxUZXh0OiJcdTUzRDZcdTZEODgiLG9uT2s6ZnVuY3Rpb24oKXt2YXIgYz1pKCkobigpKCkubWFyayhmdW5jdGlvbiBtKCl7dmFyIHksTix0ZTtyZXR1cm4gbigpKCkud3JhcChmdW5jdGlvbihRKXtmb3IoOzspc3dpdGNoKFEucHJldj1RLm5leHQpe2Nhc2UgMDpyZXR1cm4gUS5uZXh0PTIsY2UocmUpO2Nhc2UgMjp5PVEuc2VudCx5JiYoYWUoW10pLChOPW5lLmN1cnJlbnQpPT09bnVsbHx8Tj09PXZvaWQgMHx8KHRlPU4ucmVsb2FkQW5kUmVzdCk9PT1udWxsfHx0ZT09PXZvaWQgMHx8dGUuY2FsbChOKSk7Y2FzZSA0OmNhc2UiZW5kIjpyZXR1cm4gUS5zdG9wKCl9fSxtKX0pKTtmdW5jdGlvbiBTKCl7cmV0dXJuIGMuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBTfSgpfSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gVC5zdG9wKCl9fSxCKX0pKSxjaGlsZHJlbjooMCxkLmpzeCkoYi5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoicGFnZXMuc2VhcmNoVGFibGUuYmF0Y2hEZWxldGlvbiIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjI3OVx1OTFDRlx1NTIyMFx1OTY2NCJ9KX0sInJlbW92ZSIpfSksKDAsZC5qc3gpKHIuZGVmYXVsdCx7b25TdWJtaXQ6ZnVuY3Rpb24oKXt2YXIgQj1pKCkobigpKCkubWFyayhmdW5jdGlvbiBDKFQpe3ZhciBjO3JldHVybiBuKCkoKS53cmFwKGZ1bmN0aW9uKG0pe2Zvcig7Oylzd2l0Y2gobS5wcmV2PW0ubmV4dCl7Y2FzZSAwOmlmKGM9ITEsIVQudXNlcklkKXttLm5leHQ9NzticmVha31yZXR1cm4gbS5uZXh0PTQsS2UobCgpKHt9LFQpKTtjYXNlIDQ6Yz1tLnNlbnQsbS5uZXh0PTEwO2JyZWFrO2Nhc2UgNzpyZXR1cm4gbS5uZXh0PTksQmUobCgpKHt9LFQpKTtjYXNlIDk6Yz1tLnNlbnQ7Y2FzZSAxMDpjJiYoaWUoITEpLGVlKHZvaWQgMCksbmUuY3VycmVudCYmbmUuY3VycmVudC5yZWxvYWQoKSk7Y2FzZSAxMTpjYXNlImVuZCI6cmV0dXJuIG0uc3RvcCgpfX0sQyl9KSk7cmV0dXJuIGZ1bmN0aW9uKEMpe3JldHVybiBCLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksb25DYW5jZWw6ZnVuY3Rpb24oKXtpZSghMSksZWUodm9pZCAwKX0sb3Blbjp4ZSx2YWx1ZXM6Z2V8fHt9LHNleE9wdGlvbnM6UWUsc3RhdHVzT3B0aW9uczpEZSxwb3N0czphbnx8W10scG9zdElkczpybnx8W10scm9sZXM6UmV8fFtdLHJvbGVJZHM6amV8fFtdLGRlcHRzOmRufHxbXX0pLCgwLGQuanN4KShqLmRlZmF1bHQse29uU3VibWl0OmZ1bmN0aW9uKCl7dmFyIEI9aSgpKG4oKSgpLm1hcmsoZnVuY3Rpb24gQyhUKXt2YXIgYztyZXR1cm4gbigpKCkud3JhcChmdW5jdGlvbihtKXtmb3IoOzspc3dpdGNoKG0ucHJldj1tLm5leHQpe2Nhc2UgMDpyZXR1cm4gbS5uZXh0PTIsKDAsRS54QikoVC51c2VySWQsVC5wYXNzd29yZCk7Y2FzZSAyOmM9bS5zZW50LGMmJihvZSghMSksYWUoW10pLGVlKHZvaWQgMCksXy5aUC5zdWNjZXNzKCJcdTVCQzZcdTc4MDFcdTkxQ0RcdTdGNkVcdTYyMTBcdTUyOUZcdTMwMDIiKSk7Y2FzZSA0OmNhc2UiZW5kIjpyZXR1cm4gbS5zdG9wKCl9fSxDKX0pKTtyZXR1cm4gZnVuY3Rpb24oQyl7cmV0dXJuIEIuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSxvbkNhbmNlbDpmdW5jdGlvbigpe29lKCExKSxhZShbXSksZWUodm9pZCAwKX0sb3BlbjokZSx2YWx1ZXM6Z2V8fHt9fSksKDAsZC5qc3gpKEouZGVmYXVsdCx7b25TdWJtaXQ6ZnVuY3Rpb24oKXt2YXIgQj1pKCkobigpKCkubWFyayhmdW5jdGlvbiBDKFQpe3ZhciBjO3JldHVybiBuKCkoKS53cmFwKGZ1bmN0aW9uKG0pe2Zvcig7Oylzd2l0Y2gobS5wcmV2PW0ubmV4dCl7Y2FzZSAwOnJldHVybiBtLm5leHQ9MiwoMCxFLnRXKShUKTtjYXNlIDI6Yz1tLnNlbnQsYyYmKGRlKCExKSxhZShbXSksZWUodm9pZCAwKSxfLlpQLnN1Y2Nlc3MoIlx1OTE0RFx1N0Y2RVx1NjIxMFx1NTI5Rlx1MzAwMiIpKTtjYXNlIDQ6Y2FzZSJlbmQiOnJldHVybiBtLnN0b3AoKX19LEMpfSkpO3JldHVybiBmdW5jdGlvbihDKXtyZXR1cm4gQi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLG9uQ2FuY2VsOmZ1bmN0aW9uKCl7ZGUoITEpLGFlKFtdKSxlZSh2b2lkIDApfSxvcGVuOkdlLHJvbGVzOlJlfHxbXSxyb2xlSWRzOmplfHxbXX0pXX0pfTtJLmRlZmF1bHQ9RmV9LDkyOTgyOmZ1bmN0aW9uKFksSSxlKXtlLmQoSSx7SHI6ZnVuY3Rpb24oKXtyZXR1cm4gQX0sUUs6ZnVuY3Rpb24oKXtyZXR1cm4gVn0sVmQ6ZnVuY3Rpb24oKXtyZXR1cm4gTH0sYTc6ZnVuY3Rpb24oKXtyZXR1cm4gT30saks6ZnVuY3Rpb24oKXtyZXR1cm4gYn0sbjI6ZnVuY3Rpb24oKXtyZXR1cm4ga30sb0g6ZnVuY3Rpb24oKXtyZXR1cm4gc30scFg6ZnVuY3Rpb24oKXtyZXR1cm4gS30sc0Y6ZnVuY3Rpb24oKXtyZXR1cm4gV319KTt2YXIgdz1lKDE1MDA5KSx0PWUubih3KSxGPWUoOTc4NTcpLG49ZS5uKEYpLFU9ZSg5OTI4OSksbD1lLm4oVSksUD1lKDc2NzcyKSxpPWUoMzM4NjcpLE09ZSgzMDk2NCk7ZnVuY3Rpb24gYih2KXtyZXR1cm4gaC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gaCgpe3JldHVybiBoPWwoKSh0KCkoKS5tYXJrKGZ1bmN0aW9uIHYodSl7cmV0dXJuIHQoKSgpLndyYXAoZnVuY3Rpb24ocil7Zm9yKDs7KXN3aXRjaChyLnByZXY9ci5uZXh0KXtjYXNlIDA6cmV0dXJuIHIuYWJydXB0KCJyZXR1cm4iLCgwLFAucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RpY3QvdHlwZS9saXN0Iix7cGFyYW1zOm4oKSh7fSx1KSxtZXRob2Q6IkdFVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCJ9fSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIHIuc3RvcCgpfX0sdil9KSksaC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gTCh2KXtyZXR1cm4oMCxQLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS9kaWN0L3R5cGUvIi5jb25jYXQodikse21ldGhvZDoiR0VUIn0pfWZ1bmN0aW9uIEsodix1KXtyZXR1cm4gRC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gRCgpe3JldHVybiBEPWwoKSh0KCkoKS5tYXJrKGZ1bmN0aW9uIHYodSxFKXt2YXIgcixhO3JldHVybiB0KCkoKS53cmFwKGZ1bmN0aW9uKGope2Zvcig7Oylzd2l0Y2goai5wcmV2PWoubmV4dCl7Y2FzZSAwOnJldHVybiBqLm5leHQ9MiwoMCxQLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS9kaWN0L2RhdGEvdHlwZS8iLmNvbmNhdCh1KSx7bWV0aG9kOiJHRVQifSk7Y2FzZSAyOmlmKHI9ai5zZW50LHIuY29kZSE9PWkuaUsuU1VDQ0VTUyl7ai5uZXh0PTk7YnJlYWt9cmV0dXJuIGE9e30sci5kYXRhLmZvckVhY2goZnVuY3Rpb24obyl7YVtvLmRpY3RWYWx1ZV09e3RleHQ6by5kaWN0TGFiZWwsbGFiZWw6by5kaWN0TGFiZWwsdmFsdWU6RT9OdW1iZXIoby5kaWN0VmFsdWUpOm8uZGljdFZhbHVlLGtleTpvLmRpY3RDb2RlLGxpc3RDbGFzczpvLmxpc3RDbGFzcyxzdGF0dXM6by5saXN0Q2xhc3N9fSksai5hYnJ1cHQoInJldHVybiIsYSk7Y2FzZSA5OnJldHVybiBqLmFicnVwdCgicmV0dXJuIix7fSk7Y2FzZSAxMDpjYXNlImVuZCI6cmV0dXJuIGouc3RvcCgpfX0sdil9KSksRC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gQSh2LHUpe3JldHVybiBwLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBwKCl7cmV0dXJuIHA9bCgpKHQoKSgpLm1hcmsoZnVuY3Rpb24gdih1LEUpe3ZhciByLGE7cmV0dXJuIHQoKSgpLndyYXAoZnVuY3Rpb24oail7Zm9yKDs7KXN3aXRjaChqLnByZXY9ai5uZXh0KXtjYXNlIDA6cmV0dXJuIGoubmV4dD0yLCgwLFAucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RpY3QvZGF0YS90eXBlLyIuY29uY2F0KHUpLHttZXRob2Q6IkdFVCJ9KTtjYXNlIDI6aWYocj1qLnNlbnQsci5jb2RlIT09MjAwKXtqLm5leHQ9NjticmVha31yZXR1cm4gYT1yLmRhdGEubWFwKGZ1bmN0aW9uKG8pe3JldHVybnt0ZXh0Om8uZGljdExhYmVsLGxhYmVsOm8uZGljdExhYmVsLHZhbHVlOkU/TnVtYmVyKG8uZGljdFZhbHVlKTpvLmRpY3RWYWx1ZSxrZXk6by5kaWN0Q29kZSxsaXN0Q2xhc3M6by5saXN0Q2xhc3Msc3RhdHVzOm8ubGlzdENsYXNzfX0pLGouYWJydXB0KCJyZXR1cm4iLGEpO2Nhc2UgNjpyZXR1cm4gai5hYnJ1cHQoInJldHVybiIsW10pO2Nhc2UgNzpjYXNlImVuZCI6cmV0dXJuIGouc3RvcCgpfX0sdil9KSkscC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gcyh2KXtyZXR1cm4gXy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gXygpe3JldHVybiBfPWwoKSh0KCkoKS5tYXJrKGZ1bmN0aW9uIHYodSl7cmV0dXJuIHQoKSgpLndyYXAoZnVuY3Rpb24ocil7Zm9yKDs7KXN3aXRjaChyLnByZXY9ci5uZXh0KXtjYXNlIDA6cmV0dXJuIHIuYWJydXB0KCJyZXR1cm4iLCgwLFAucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RpY3QvdHlwZSIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCJ9LGRhdGE6dX0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiByLnN0b3AoKX19LHYpfSkpLF8uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIE8odil7cmV0dXJuIGYuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGYoKXtyZXR1cm4gZj1sKCkodCgpKCkubWFyayhmdW5jdGlvbiB2KHUpe3JldHVybiB0KCkoKS53cmFwKGZ1bmN0aW9uKHIpe2Zvcig7Oylzd2l0Y2goci5wcmV2PXIubmV4dCl7Y2FzZSAwOnJldHVybiByLmFicnVwdCgicmV0dXJuIiwoMCxQLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS9kaWN0L3R5cGUiLHttZXRob2Q6IlBVVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCJ9LGRhdGE6dX0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiByLnN0b3AoKX19LHYpfSkpLGYuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIFcodil7cmV0dXJuIEguYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEgoKXtyZXR1cm4gSD1sKCkodCgpKCkubWFyayhmdW5jdGlvbiB2KHUpe3JldHVybiB0KCkoKS53cmFwKGZ1bmN0aW9uKHIpe2Zvcig7Oylzd2l0Y2goci5wcmV2PXIubmV4dCl7Y2FzZSAwOnJldHVybiByLmFicnVwdCgicmV0dXJuIiwoMCxQLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS9kaWN0L3R5cGUvIi5jb25jYXQodSkse21ldGhvZDoiREVMRVRFIn0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiByLnN0b3AoKX19LHYpfSkpLEguYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGsodil7cmV0dXJuKDAsTS5zdSkoIi9hcGkvc3lzdGVtL2RpY3QvdHlwZS9leHBvcnQiLHtwYXJhbXM6dn0sImRpY3RfdHlwZV8iLmNvbmNhdChuZXcgRGF0ZSgpLmdldFRpbWUoKSwiLnhsc3giKSl9ZnVuY3Rpb24gVih2KXtyZXR1cm4gRy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gRygpe3JldHVybiBHPWwoKSh0KCkoKS5tYXJrKGZ1bmN0aW9uIHYodSl7cmV0dXJuIHQoKSgpLndyYXAoZnVuY3Rpb24ocil7Zm9yKDs7KXN3aXRjaChyLnByZXY9ci5uZXh0KXtjYXNlIDA6cmV0dXJuIHIuYWJydXB0KCJyZXR1cm4iLCgwLFAucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RpY3QvdHlwZS9vcHRpb25zZWxlY3QiLHtwYXJhbXM6bigpKHt9LHUpLG1ldGhvZDoiR0VUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In19KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gci5zdG9wKCl9fSx2KX0pKSxHLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19LDE1NDg3OmZ1bmN0aW9uKFksSSxlKXtlLmQoSSx7Q1A6ZnVuY3Rpb24oKXtyZXR1cm4gTH0sTTg6ZnVuY3Rpb24oKXtyZXR1cm4gRH0sVUk6ZnVuY3Rpb24oKXtyZXR1cm4gUH0scTI6ZnVuY3Rpb24oKXtyZXR1cm4gYn0scWM6ZnVuY3Rpb24oKXtyZXR1cm4gcH19KTt2YXIgdz1lKDE1MDA5KSx0PWUubih3KSxGPWUoOTkyODkpLG49ZS5uKEYpLFU9ZSg3Njc3MiksbD1lKDMwOTY0KTtmdW5jdGlvbiBQKHMpe3JldHVybiBpLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBpKCl7cmV0dXJuIGk9bigpKHQoKSgpLm1hcmsoZnVuY3Rpb24gcyhfKXtyZXR1cm4gdCgpKCkud3JhcChmdW5jdGlvbihmKXtmb3IoOzspc3dpdGNoKGYucHJldj1mLm5leHQpe2Nhc2UgMDpyZXR1cm4gZi5hYnJ1cHQoInJldHVybiIsKDAsVS5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vcG9zdC9saXN0Iix7bWV0aG9kOiJHRVQiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgifSxwYXJhbXM6X30pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBmLnN0b3AoKX19LHMpfSkpLGkuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIE0ocyl7cmV0dXJuIHJlcXVlc3QoIi9hcGkvc3lzdGVtL3Bvc3QvIi5jb25jYXQocykse21ldGhvZDoiR0VUIn0pfWZ1bmN0aW9uIGIocyl7cmV0dXJuIGguYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGgoKXtyZXR1cm4gaD1uKCkodCgpKCkubWFyayhmdW5jdGlvbiBzKF8pe3JldHVybiB0KCkoKS53cmFwKGZ1bmN0aW9uKGYpe2Zvcig7Oylzd2l0Y2goZi5wcmV2PWYubmV4dCl7Y2FzZSAwOnJldHVybiBmLmFicnVwdCgicmV0dXJuIiwoMCxVLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS9wb3N0Iix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In0sZGF0YTpffSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGYuc3RvcCgpfX0scyl9KSksaC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gTChzKXtyZXR1cm4gSy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gSygpe3JldHVybiBLPW4oKSh0KCkoKS5tYXJrKGZ1bmN0aW9uIHMoXyl7cmV0dXJuIHQoKSgpLndyYXAoZnVuY3Rpb24oZil7Zm9yKDs7KXN3aXRjaChmLnByZXY9Zi5uZXh0KXtjYXNlIDA6cmV0dXJuIGYuYWJydXB0KCJyZXR1cm4iLCgwLFUucmVxdWVzdCkoIi9hcGkvc3lzdGVtL3Bvc3QiLHttZXRob2Q6IlBVVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCJ9LGRhdGE6X30pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBmLnN0b3AoKX19LHMpfSkpLEsuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEQocyl7cmV0dXJuIEEuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEEoKXtyZXR1cm4gQT1uKCkodCgpKCkubWFyayhmdW5jdGlvbiBzKF8pe3JldHVybiB0KCkoKS53cmFwKGZ1bmN0aW9uKGYpe2Zvcig7Oylzd2l0Y2goZi5wcmV2PWYubmV4dCl7Y2FzZSAwOnJldHVybiBmLmFicnVwdCgicmV0dXJuIiwoMCxVLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS9wb3N0LyIuY29uY2F0KF8pLHttZXRob2Q6IkRFTEVURSJ9KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gZi5zdG9wKCl9fSxzKX0pKSxBLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBwKHMpe3JldHVybigwLGwuc3UpKCIvYXBpL3N5c3RlbS9wb3N0L2V4cG9ydCIse3BhcmFtczpzfSwicG9zdF8iLmNvbmNhdChuZXcgRGF0ZSgpLmdldFRpbWUoKSwiLnhsc3giKSl9fSwzNzU2MzpmdW5jdGlvbihZLEksZSl7ZS5kKEkse0NFOmZ1bmN0aW9uKCl7cmV0dXJuIGt9LEpWOmZ1bmN0aW9uKCl7cmV0dXJuIGl9LExBOmZ1bmN0aW9uKCl7cmV0dXJuIFZ9LExwOmZ1bmN0aW9uKCl7cmV0dXJuIHN9LFZsOmZ1bmN0aW9uKCl7cmV0dXJuIHZ9LF9kOmZ1bmN0aW9uKCl7cmV0dXJuIGh9LGNZOmZ1bmN0aW9uKCl7cmV0dXJuIGJ9LGRZOmZ1bmN0aW9uKCl7cmV0dXJuIEd9LGlIOmZ1bmN0aW9uKCl7cmV0dXJuIFd9LGw1OmZ1bmN0aW9uKCl7cmV0dXJuIEF9LG1qOmZ1bmN0aW9uKCl7cmV0dXJuIF99LHA3OmZ1bmN0aW9uKCl7cmV0dXJuIEh9LHNwOmZ1bmN0aW9uKCl7cmV0dXJuIGZ9LHRtOmZ1bmN0aW9uKCl7cmV0dXJuIE99LHVsOmZ1bmN0aW9uKCl7cmV0dXJuIEt9fSk7dmFyIHc9ZSgxNTAwOSksdD1lLm4odyksRj1lKDk5Mjg5KSxuPWUubihGKSxVPWUoMzM4NjcpLGw9ZSg3Njc3MiksUD1lKDMwOTY0KTtmdW5jdGlvbiBpKHUpe3JldHVybiBNLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBNKCl7cmV0dXJuIE09bigpKHQoKSgpLm1hcmsoZnVuY3Rpb24gdShFKXtyZXR1cm4gdCgpKCkud3JhcChmdW5jdGlvbihhKXtmb3IoOzspc3dpdGNoKGEucHJldj1hLm5leHQpe2Nhc2UgMDpyZXR1cm4gYS5hYnJ1cHQoInJldHVybiIsKDAsbC5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vcm9sZS9saXN0Iix7bWV0aG9kOiJHRVQiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOlUuemMuRk9STV9VUkxFTkNPREVEfSxwYXJhbXM6RX0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBhLnN0b3AoKX19LHUpfSkpLE0uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGIodSl7cmV0dXJuKDAsbC5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vcm9sZS8iLmNvbmNhdCh1KSx7bWV0aG9kOiJHRVQifSl9ZnVuY3Rpb24gaCh1KXtyZXR1cm4gTC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gTCgpe3JldHVybiBMPW4oKSh0KCkoKS5tYXJrKGZ1bmN0aW9uIHUoRSl7cmV0dXJuIHQoKSgpLndyYXAoZnVuY3Rpb24oYSl7Zm9yKDs7KXN3aXRjaChhLnByZXY9YS5uZXh0KXtjYXNlIDA6cmV0dXJuIGEuYWJydXB0KCJyZXR1cm4iLCgwLGwucmVxdWVzdCkoIi9hcGkvc3lzdGVtL3JvbGUiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgifSxkYXRhOkV9KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gYS5zdG9wKCl9fSx1KX0pKSxMLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBLKHUpe3JldHVybiBELmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBEKCl7cmV0dXJuIEQ9bigpKHQoKSgpLm1hcmsoZnVuY3Rpb24gdShFKXtyZXR1cm4gdCgpKCkud3JhcChmdW5jdGlvbihhKXtmb3IoOzspc3dpdGNoKGEucHJldj1hLm5leHQpe2Nhc2UgMDpyZXR1cm4gYS5hYnJ1cHQoInJldHVybiIsKDAsbC5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vcm9sZSIse21ldGhvZDoiUFVUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In0sZGF0YTpFfSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGEuc3RvcCgpfX0sdSl9KSksRC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gQSh1KXtyZXR1cm4gcC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gcCgpe3JldHVybiBwPW4oKSh0KCkoKS5tYXJrKGZ1bmN0aW9uIHUoRSl7cmV0dXJuIHQoKSgpLndyYXAoZnVuY3Rpb24oYSl7Zm9yKDs7KXN3aXRjaChhLnByZXY9YS5uZXh0KXtjYXNlIDA6cmV0dXJuIGEuYWJydXB0KCJyZXR1cm4iLCgwLGwucmVxdWVzdCkoIi9hcGkvc3lzdGVtL3JvbGUvIi5jb25jYXQoRSkse21ldGhvZDoiREVMRVRFIn0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBhLnN0b3AoKX19LHUpfSkpLHAuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHModSl7cmV0dXJuKDAsUC5zdSkoIi9hcGkvc3lzdGVtL3JvbGUvZXhwb3J0Iix7cGFyYW1zOnV9LCJyb2xlXyIuY29uY2F0KG5ldyBEYXRlKCkuZ2V0VGltZSgpLCIueGxzeCIpKX1mdW5jdGlvbiBfKHUpe3JldHVybigwLGwucmVxdWVzdCkoIi9hcGkvc3lzdGVtL21lbnUvcm9sZU1lbnVUcmVlc2VsZWN0LyIuY29uY2F0KHUpLHttZXRob2Q6ImdldCJ9KX1mdW5jdGlvbiBPKHUpe3JldHVybigwLGwucmVxdWVzdCkoIi9hcGkvc3lzdGVtL3JvbGUvZGF0YVNjb3BlIix7bWV0aG9kOiJwdXQiLGRhdGE6dX0pfWZ1bmN0aW9uIGYodSxFKXt2YXIgcj17cm9sZUlkOnUsc3RhdHVzOkV9O3JldHVybigwLGwucmVxdWVzdCkoIi9hcGkvc3lzdGVtL3JvbGUvY2hhbmdlU3RhdHVzIix7bWV0aG9kOiJwdXQiLGRhdGE6cn0pfWZ1bmN0aW9uIFcodSl7cmV0dXJuKDAsbC5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vcm9sZS9hdXRoVXNlci9hbGxvY2F0ZWRMaXN0Iix7bWV0aG9kOiJnZXQiLHBhcmFtczp1fSl9ZnVuY3Rpb24gSCh1KXtyZXR1cm4oMCxsLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS9yb2xlL2F1dGhVc2VyL3VuYWxsb2NhdGVkTGlzdCIse21ldGhvZDoiZ2V0IixwYXJhbXM6dX0pfWZ1bmN0aW9uIGsodSl7cmV0dXJuKDAsbC5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vcm9sZS9hdXRoVXNlci9jYW5jZWwiLHttZXRob2Q6InB1dCIsZGF0YTp1fSl9ZnVuY3Rpb24gVih1KXtyZXR1cm4oMCxsLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS9yb2xlL2F1dGhVc2VyL2NhbmNlbEFsbCIse21ldGhvZDoicHV0IixwYXJhbXM6dX0pfWZ1bmN0aW9uIEcodSl7cmV0dXJuKDAsbC5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vcm9sZS9hdXRoVXNlci9zZWxlY3RBbGwiLHttZXRob2Q6InB1dCIscGFyYW1zOnUsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6VS56Yy5GT1JNX1VSTEVOQ09ERUR9fSl9ZnVuY3Rpb24gdih1KXtyZXR1cm4oMCxsLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS9yb2xlL2RlcHRUcmVlLyIrdSx7bWV0aG9kOiJnZXQifSl9fSw5MDI1OmZ1bmN0aW9uKFksSSxlKXtlLmQoSSx7TGo6ZnVuY3Rpb24oKXtyZXR1cm4gSH0sTnE6ZnVuY3Rpb24oKXtyZXR1cm4gQX0sUFI6ZnVuY3Rpb24oKXtyZXR1cm4gTH0sX0w6ZnVuY3Rpb24oKXtyZXR1cm4gT30sYXo6ZnVuY3Rpb24oKXtyZXR1cm4gZn0sY246ZnVuY3Rpb24oKXtyZXR1cm4gS30sZ2c6ZnVuY3Rpb24oKXtyZXR1cm4gR30sa1g6ZnVuY3Rpb24oKXtyZXR1cm4gc30sbEU6ZnVuY3Rpb24oKXtyZXR1cm4gYn0sdFc6ZnVuY3Rpb24oKXtyZXR1cm4gdX0sd3A6ZnVuY3Rpb24oKXtyZXR1cm4gVn0seDc6ZnVuY3Rpb24oKXtyZXR1cm4gRX0seEI6ZnVuY3Rpb24oKXtyZXR1cm4ga319KTt2YXIgdz1lKDE1MDA5KSx0PWUubih3KSxGPWUoOTc4NTcpLG49ZS5uKEYpLFU9ZSg5OTI4OSksbD1lLm4oVSksUD1lKDMxOTgxKSxpPWUoNzY3NzIpLE09ZSgzMDk2NCk7ZnVuY3Rpb24gYihyLGEpe3JldHVybiBoLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBoKCl7cmV0dXJuIGg9bCgpKHQoKSgpLm1hcmsoZnVuY3Rpb24gcihhLFIpe3JldHVybiB0KCkoKS53cmFwKGZ1bmN0aW9uKG8pe2Zvcig7Oylzd2l0Y2goby5wcmV2PW8ubmV4dCl7Y2FzZSAwOnJldHVybiBvLmFicnVwdCgicmV0dXJuIiwoMCxpLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS91c2VyL2xpc3QiLG4oKSh7bWV0aG9kOiJHRVQiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgifSxwYXJhbXM6YX0sUnx8e30pKSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gby5zdG9wKCl9fSxyKX0pKSxoLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBMKHIsYSl7cmV0dXJuKDAsaS5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vdXNlci8iLmNvbmNhdChyKSxuKCkoe21ldGhvZDoiR0VUIn0sYXx8e30pKX1mdW5jdGlvbiBLKHIsYSl7cmV0dXJuIEQuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEQoKXtyZXR1cm4gRD1sKCkodCgpKCkubWFyayhmdW5jdGlvbiByKGEsUil7cmV0dXJuIHQoKSgpLndyYXAoZnVuY3Rpb24obyl7Zm9yKDs7KXN3aXRjaChvLnByZXY9by5uZXh0KXtjYXNlIDA6cmV0dXJuIG8uYWJydXB0KCJyZXR1cm4iLCgwLGkucmVxdWVzdCkoIi9hcGkvc3lzdGVtL3VzZXIiLG4oKSh7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In0sZGF0YTphfSxSfHx7fSkpKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBvLnN0b3AoKX19LHIpfSkpLEQuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEEocixhKXtyZXR1cm4gcC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gcCgpe3JldHVybiBwPWwoKSh0KCkoKS5tYXJrKGZ1bmN0aW9uIHIoYSxSKXtyZXR1cm4gdCgpKCkud3JhcChmdW5jdGlvbihvKXtmb3IoOzspc3dpdGNoKG8ucHJldj1vLm5leHQpe2Nhc2UgMDpyZXR1cm4gby5hYnJ1cHQoInJldHVybiIsKDAsaS5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vdXNlciIsbigpKHttZXRob2Q6IlBVVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCJ9LGRhdGE6YX0sUnx8e30pKSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gby5zdG9wKCl9fSxyKX0pKSxwLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBzKHIsYSl7cmV0dXJuIF8uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIF8oKXtyZXR1cm4gXz1sKCkodCgpKCkubWFyayhmdW5jdGlvbiByKGEsUil7cmV0dXJuIHQoKSgpLndyYXAoZnVuY3Rpb24obyl7Zm9yKDs7KXN3aXRjaChvLnByZXY9by5uZXh0KXtjYXNlIDA6cmV0dXJuIG8uYWJydXB0KCJyZXR1cm4iLCgwLGkucmVxdWVzdCkoIi9hcGkvc3lzdGVtL3VzZXIvIi5jb25jYXQoYSksbigpKHttZXRob2Q6IkRFTEVURSJ9LFJ8fHt9KSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIG8uc3RvcCgpfX0scil9KSksXy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gTyhyLGEpe3JldHVybigwLE0uc3UpKCIvYXBpL3N5c3RlbS91c2VyL2V4cG9ydCIse3BhcmFtczpyfSwidXNlcl8iLmNvbmNhdChuZXcgRGF0ZSgpLmdldFRpbWUoKSwiLnhsc3giKSl9ZnVuY3Rpb24gZihyLGEpe3ZhciBSPXt1c2VySWQ6cixzdGF0dXM6YX07cmV0dXJuKDAsaS5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vdXNlci9jaGFuZ2VTdGF0dXMiLHttZXRob2Q6InB1dCIsZGF0YTpSfSl9ZnVuY3Rpb24gVygpe3JldHVybiByZXF1ZXN0KCIvYXBpL3N5c3RlbS91c2VyL3Byb2ZpbGUiLHttZXRob2Q6ImdldCJ9KX1mdW5jdGlvbiBIKHIpe3JldHVybigwLGkucmVxdWVzdCkoIi9hcGkvc3lzdGVtL3VzZXIvcHJvZmlsZSIse21ldGhvZDoicHV0IixkYXRhOnJ9KX1mdW5jdGlvbiBrKHIsYSl7dmFyIFI9e3VzZXJJZDpyLHBhc3N3b3JkOmF9O3JldHVybigwLGkucmVxdWVzdCkoIi9hcGkvc3lzdGVtL3VzZXIvcmVzZXRQd2QiLHttZXRob2Q6InB1dCIsZGF0YTpSfSl9ZnVuY3Rpb24gVihyLGEpe3ZhciBSPXtvbGRQYXNzd29yZDpyLG5ld1Bhc3N3b3JkOmF9O3JldHVybigwLGkucmVxdWVzdCkoIi9hcGkvc3lzdGVtL3VzZXIvcHJvZmlsZS91cGRhdGVQd2QiLHttZXRob2Q6InB1dCIscGFyYW1zOlJ9KX1mdW5jdGlvbiBHKHIpe3JldHVybigwLGkucmVxdWVzdCkoIi9hcGkvc3lzdGVtL3VzZXIvcHJvZmlsZS9hdmF0YXIiLHttZXRob2Q6InBvc3QiLGRhdGE6cn0pfWZ1bmN0aW9uIHYocil7cmV0dXJuIHJlcXVlc3QoIi9zeXN0ZW0vdXNlci9hdXRoUm9sZS8iK3Ise21ldGhvZDoiZ2V0In0pfWZ1bmN0aW9uIHUocil7cmV0dXJuKDAsaS5yZXF1ZXN0KSgiL3N5c3RlbS91c2VyL2F1dGhSb2xlIix7bWV0aG9kOiJwdXQiLHBhcmFtczpyfSl9ZnVuY3Rpb24gRShyKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oYSl7KDAsaS5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vdXNlci9kZXB0VHJlZSIse21ldGhvZDoiZ2V0IixwYXJhbXM6cn0pLnRoZW4oZnVuY3Rpb24oUil7aWYoUiYmUi5jb2RlPT09MjAwKXt2YXIgaj0oMCxQLmx0KShSLmRhdGEpO2Eoail9ZWxzZSBhKFtdKX0pfSl9fSwzMDk2NDpmdW5jdGlvbihZLEksZSl7ZS5kKEkse3A2OmZ1bmN0aW9uKCl7cmV0dXJuIGJ9LHN1OmZ1bmN0aW9uKCl7cmV0dXJuIGh9fSk7dmFyIHc9ZSgxNTAwOSksdD1lLm4odyksRj1lKDk3ODU3KSxuPWUubihGKSxVPWUoOTkyODkpLGw9ZS5uKFUpLFA9ZSg3Njc3MiksaT17eGxzeDoiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQiLHppcDoiYXBwbGljYXRpb24vemlwIn07ZnVuY3Rpb24gTShELEEpe3ZhciBwPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKSxzPW5ldyBCbG9iKFtELmRhdGFdLHt0eXBlOkF9KSxfPW5ldyBSZWdFeHAoImZpbGVuYW1lPShbXjtdK1xcLlteXFwuO10rKTsqIiksTz1kZWNvZGVVUkkoRC5oZWFkZXJzWyJjb250ZW50LWRpc3Bvc2l0aW9uIl0pLGY9Xy5leGVjKE8pLFc9Zj9mWzFdOiJmaWxlIjtXPVcucmVwbGFjZSgvIi9nLCIiKSxwLnN0eWxlLmRpc3BsYXk9Im5vbmUiLHAuaHJlZj1VUkwuY3JlYXRlT2JqZWN0VVJMKHMpLHAuc2V0QXR0cmlidXRlKCJkb3dubG9hZCIsVyksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChwKSxwLmNsaWNrKCksVVJMLnJldm9rZU9iamVjdFVSTChwLmhyZWYpLGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQocCl9ZnVuY3Rpb24gYihEKXsoMCxQLnJlcXVlc3QpKEQse21ldGhvZDoiR0VUIixyZXNwb25zZVR5cGU6ImJsb2IiLGdldFJlc3BvbnNlOiEwfSkudGhlbihmdW5jdGlvbihBKXtNKEEsaS56aXApfSl9ZnVuY3Rpb24gaChELEEscCl7cmV0dXJuIEwuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEwoKXtyZXR1cm4gTD1sKCkodCgpKCkubWFyayhmdW5jdGlvbiBEKEEscCxzKXtyZXR1cm4gdCgpKCkud3JhcChmdW5jdGlvbihPKXtmb3IoOzspc3dpdGNoKE8ucHJldj1PLm5leHQpe2Nhc2UgMDpyZXR1cm4gTy5hYnJ1cHQoInJldHVybiIsKDAsUC5yZXF1ZXN0KShBLG4oKShuKCkoe30scCkse30se21ldGhvZDoiUE9TVCIscmVzcG9uc2VUeXBlOiJibG9iIn0pKS50aGVuKGZ1bmN0aW9uKGYpe3ZhciBXPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKSxIPWY7Vy5zdHlsZS5kaXNwbGF5PSJub25lIixXLmhyZWY9VVJMLmNyZWF0ZU9iamVjdFVSTChIKSxXLnNldEF0dHJpYnV0ZSgiZG93bmxvYWQiLHMpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoVyksVy5jbGljaygpLFVSTC5yZXZva2VPYmplY3RVUkwoVy5ocmVmKSxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKFcpfSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIE8uc3RvcCgpfX0sRCl9KSksTC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gSyhEKXt3aW5kb3cubG9jYXRpb24uaHJlZj0iL2FwaS9jb21tb24vZG93bmxvYWQ/ZmlsZU5hbWU9Ii5jb25jYXQoZW5jb2RlVVJJKEQpLCImZGVsZXRlPSIsITApfX0sMzE5ODE6ZnVuY3Rpb24oWSxJLGUpe2UuZChJLHtDMjpmdW5jdGlvbigpe3JldHVybiB0fSxsdDpmdW5jdGlvbigpe3JldHVybiBufX0pO3ZhciB3PWUoODc3MzUpO2Z1bmN0aW9uIHQoVSxsLFAsaSxNLGIpe3ZhciBoPXtpZDpsfHwiaWQiLG5hbWU6UHx8Im5hbWUiLHBhcmVudElkOml8fCJwYXJlbnRJZCIscGFyZW50TmFtZTpNfHwicGFyZW50TmFtZSIsY2hpbGRyZW5MaXN0OmJ8fCJjaGlsZHJlbiJ9LEw9W10sSz1bXSxEPVtdO1UuZm9yRWFjaChmdW5jdGlvbihwKXt2YXIgcz1wLF89c1toLnBhcmVudElkXTtMW19dfHwoTFtfXT1bXSkscy5rZXk9c1toLmlkXSxzLnRpdGxlPXNbaC5uYW1lXSxzLnZhbHVlPXNbaC5pZF0sc1toLmNoaWxkcmVuTGlzdF09bnVsbCxLW3NbaC5pZF1dPXMsTFtfXS5wdXNoKHMpfSksVS5mb3JFYWNoKGZ1bmN0aW9uKHApe3ZhciBzPXAsXz1zW2gucGFyZW50SWRdO0tbX118fChzW2gucGFyZW50TmFtZV09IiIsRC5wdXNoKHMpKX0pO2Z1bmN0aW9uIEEocCl7dmFyIHM9cDtMW3NbaC5pZF1dJiYoc1toLmNoaWxkcmVuTGlzdF18fChzW2guY2hpbGRyZW5MaXN0XT1bXSksc1toLmNoaWxkcmVuTGlzdF09TFtzW2guaWRdXSksc1toLmNoaWxkcmVuTGlzdF0mJnNbaC5jaGlsZHJlbkxpc3RdLmZvckVhY2goZnVuY3Rpb24oXyl7dmFyIE89XztPW2gucGFyZW50TmFtZV09c1toLm5hbWVdLEEoTyl9KX1yZXR1cm4gRC5mb3JFYWNoKGZ1bmN0aW9uKHApe0EocCl9KSxEfXZhciBGPWZ1bmN0aW9uKCl7cmV0dXJuIHBhcnNlKHdpbmRvdy5sb2NhdGlvbi5ocmVmLnNwbGl0KCI/IilbMV0pfTtmdW5jdGlvbiBuKFUpe3ZhciBsPVUubWFwKGZ1bmN0aW9uKFApe3ZhciBpPXtpZDpQLmlkLHRpdGxlOlAubGFiZWwsa2V5OiIiLmNvbmNhdChQLmlkKSx2YWx1ZTpQLmlkfTtyZXR1cm4gUC5jaGlsZHJlbiYmKGkuY2hpbGRyZW49bihQLmNoaWxkcmVuKSksaX0pO3JldHVybiBsfX19XSk7CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzc4MDUuNzczNDMyMDQuYXN5bmMuanMgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzc4MDUuNzczNDMyMDQuYXN5bmMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTJhNmMxZQotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNzgwNS43NzM0MzIwNC5hc3luYy5qcwpAQCAtMCwwICsxIEBACisidXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W10pLnB1c2goW1s3ODA1XSx7MTc4MDU6ZnVuY3Rpb24oZSxzLHQpe3QucihzKSxzLmRlZmF1bHQ9e3Bvc3RSZXZpZXdDb250YWluZXI6IkpnRHFlMm5nMlRZbzdid1JYMGpZIixwb3N0RGV0YWlsOiJ4cExQZ2ZUbGhrY2l6bUNCczZibyIscG9zdE1ldGE6IlFNYjdoaXgzaGN5dDR6U3hzdVJYIixwb3N0Q292ZXI6IkRKSWtPcU1DS3djNFBPUnNzM0o2Iixwb3N0VGFnczoicjRhS2NQaHV3c01UY1Z4ZzFKN3IiLHBvc3RTdW1tYXJ5OiJyd1N4TDRTU3JBdzhRUnY3bFByUSIscG9zdENvbnRlbnQ6IlQ5TXJfVUlfd1Bjc2FMd3ROcElJIixwb3N0QWN0aW9uczoiY1cya0pla1FRMHJDMEpqMExTd0gifX19XSk7CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzc4MDUuYjk3NjBmZjUuY2h1bmsuY3NzIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy83ODA1LmI5NzYwZmY1LmNodW5rLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZTFjZDU1Ci0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy83ODA1LmI5NzYwZmY1LmNodW5rLmNzcwpAQCAtMCwwICsxIEBACisuSmdEcWUybmcyVFlvN2J3Ulgwall7cGFkZGluZzoyNHB4fS54cExQZ2ZUbGhrY2l6bUNCczZib3twYWRkaW5nOjE2cHggMH0uUU1iN2hpeDNoY3l0NHpTeHN1Ulh7bWFyZ2luOjE2cHggMDtwYWRkaW5nOjE2cHg7YmFja2dyb3VuZDojZjVmNWY1O2JvcmRlci1yYWRpdXM6OHB4fS5RTWI3aGl4M2hjeXQ0elN4c3VSWCBwe21hcmdpbjo4cHggMH0uREpJa09xTUNLd2M0UE9Sc3MzSjZ7bWFyZ2luOjE2cHggMDt0ZXh0LWFsaWduOmNlbnRlcn0ucjRhS2NQaHV3c01UY1Z4ZzFKN3J7bWFyZ2luOjE2cHggMH0ucndTeEw0U1NyQXc4UVJ2N2xQclF7bWFyZ2luOjE2cHggMDtwYWRkaW5nOjE2cHg7YmFja2dyb3VuZDojZjlmOWY5O2JvcmRlci1yYWRpdXM6OHB4fS5UOU1yX1VJX3dQY3NhTHd0TnBJSXttYXJnaW46MTZweCAwO3BhZGRpbmc6MTZweDtib3JkZXI6MXB4IHNvbGlkICNlOGU4ZTg7Ym9yZGVyLXJhZGl1czo4cHg7bWF4LWhlaWdodDo0MDBweDtvdmVyZmxvdy15OmF1dG99LmNXMmtKZWtRUTByQzBKajBMU3dIe21hcmdpbi10b3A6MjRweDt0ZXh0LWFsaWduOmNlbnRlcjtwYWRkaW5nLXRvcDoxNnB4O2JvcmRlci10b3A6MXB4IHNvbGlkICNlOGU4ZTh9CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzc5MDMuYmY1OTI5YWIuYXN5bmMuanMgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzc5MDMuYmY1OTI5YWIuYXN5bmMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDVmZjEyZQotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvNzkwMy5iZjU5MjlhYi5hc3luYy5qcwpAQCAtMCwwICsxIEBACisidXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W10pLnB1c2goW1s3OTAzLDg5NzVdLHs5NDE2MjpmdW5jdGlvbihuZSxCLG4pe3ZhciBFPW4oNjQ1OTkpLGk9bi5uKEUpLEs9big2NzI5NCksdD1uKDY2MzA5KSxTPW4oODU4OTMpLFQ9ZnVuY3Rpb24oYyl7ZnVuY3Rpb24gUChkKXtzd2l0Y2goZCl7Y2FzZSJwcmltYXJ5IjpyZXR1cm4iYmx1ZSI7Y2FzZSJzdWNjZXNzIjpyZXR1cm4ic3VjY2VzcyI7Y2FzZSJpbmZvIjpyZXR1cm4iZ3JlZW4iO2Nhc2Uid2FybmluZyI6cmV0dXJuIndhcm5pbmciO2Nhc2UiZGFuZ2VyIjpyZXR1cm4iZXJyb3IiO2Nhc2UiZGVmYXVsdCI6ZGVmYXVsdDpyZXR1cm4iZGVmYXVsdCJ9fWZ1bmN0aW9uIEMoZCl7aWYoZD09PXZvaWQgMClyZXR1cm4iIjtpZihjLmVudW1zKXt2YXIgQT1jLmVudW1zW2RdO3JldHVybiBBLmxhYmVsfWlmKGMub3B0aW9ucyl7aWYoIUFycmF5LmlzQXJyYXkoYy5vcHRpb25zKSlyZXR1cm4gY29uc29sZS5sb2coIkRpY3RUYWcgb3B0aW9ucyBpcyBubyBhcnJheSEiKSwiIjt2YXIgbz1pKCkoYy5vcHRpb25zKSx1O3RyeXtmb3Ioby5zKCk7ISh1PW8ubigpKS5kb25lOyl7dmFyIF89dS52YWx1ZTtpZihfLnZhbHVlPT09ZClyZXR1cm4gXy50ZXh0fX1jYXRjaChoKXtvLmUoaCl9ZmluYWxseXtvLmYoKX19cmV0dXJuIFN0cmluZyhjLnZhbHVlKX1mdW5jdGlvbiBsKGQpe2lmKGQ9PT12b2lkIDApcmV0dXJuImRlZmF1bHQiO2lmKGMuZW51bXMpe3ZhciBBPWMuZW51bXNbZF07cmV0dXJuIEEubGlzdENsYXNzfHwiZGVmYXVsdCJ9aWYoYy5vcHRpb25zKXtpZighQXJyYXkuaXNBcnJheShjLm9wdGlvbnMpKXJldHVybiBjb25zb2xlLmxvZygiRGljdFRhZyBvcHRpb25zIGlzIG5vIGFycmF5ISIpLCJkZWZhdWx0Ijt2YXIgbz1pKCkoYy5vcHRpb25zKSx1O3RyeXtmb3Ioby5zKCk7ISh1PW8ubigpKS5kb25lOyl7dmFyIF89dS52YWx1ZTtpZihfLnZhbHVlPT09ZClyZXR1cm4gXy5saXN0Q2xhc3N8fCJkZWZhdWx0In19Y2F0Y2goaCl7by5lKGgpfWZpbmFsbHl7by5mKCl9fXJldHVybiBTdHJpbmcoYy52YWx1ZSl9dmFyIEQ9ZnVuY3Rpb24oKXtyZXR1cm4gUChsKGMudmFsdWUpLnRvTG93ZXJDYXNlKCkpfSx4PWZ1bmN0aW9uKCl7cmV0dXJuIEMoYy52YWx1ZSl9O3JldHVybigwLFMuanN4KSh0Llose2NvbG9yOkQoKSxjaGlsZHJlbjp4KCl9KX07Qi5aPVR9LDMzODY3OmZ1bmN0aW9uKG5lLEIsbil7bi5kKEIse2lLOmZ1bmN0aW9uKCl7cmV0dXJuIEV9LHpjOmZ1bmN0aW9uKCl7cmV0dXJuIEt9fSk7dmFyIEU9ZnVuY3Rpb24odCl7cmV0dXJuIHRbdC5TVUNDRVNTPTIwMF09IlNVQ0NFU1MiLHRbdC5FUlJPUj0tMV09IkVSUk9SIix0W3QuVElNRU9VVD00MDFdPSJUSU1FT1VUIix0LlRZUEU9InN1Y2Nlc3MiLHR9KHt9KSxpPWZ1bmN0aW9uKHQpe3JldHVybiB0LkdFVD0iR0VUIix0LlBPU1Q9IlBPU1QiLHQuUFVUPSJQVVQiLHQuREVMRVRFPSJERUxFVEUiLHR9KHt9KSxLPWZ1bmN0aW9uKHQpe3JldHVybiB0LkpTT049ImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCIsdC5GT1JNX1VSTEVOQ09ERUQ9ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PVVURi04Iix0LkZPUk1fREFUQT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YTtjaGFyc2V0PVVURi04Iix0fSh7fSl9LDU5MTkzOmZ1bmN0aW9uKG5lLEIsbil7bi5yKEIpO3ZhciBFPW4oNTU3NCksaT1uLm4oRSksSz1uKDE1MDA5KSx0PW4ubihLKSxTPW4oOTc4NTcpLFQ9bi5uKFMpLGc9big5OTI4OSksYz1uLm4oZyksUD1uKDY3Mjk0KSxDPW4oNzY3NzIpLGw9bigyNDUzKSxEPW4oODM2MjIpLHg9bigxNzc4OCksZD1uKDYxMTApLEE9big2NTM4NSksbz1uKDIyMzYpLHU9bigyNDk2OSksXz1uKDExNDc1KSxoPW4oNDg2ODkpLE89big1MjcyOCksST1uKDQ1MzQ5KSx2PW4oOTI5ODIpLGxlPW4oMzE5ODEpLG9lPW4oOTQxNjIpLGY9big4NTg5MyksYj1mdW5jdGlvbigpe3ZhciBYPWMoKSh0KCkoKS5tYXJrKGZ1bmN0aW9uIGUoYSl7dmFyIG07cmV0dXJuIHQoKSgpLndyYXAoZnVuY3Rpb24ocil7Zm9yKDs7KXN3aXRjaChyLnByZXY9ci5uZXh0KXtjYXNlIDA6cmV0dXJuIG09bC5aUC5sb2FkaW5nKCJcdTZCNjNcdTU3MjhcdTZERkJcdTUyQTAiKSxyLnByZXY9MSxyLm5leHQ9NCwoMCxPLmJMKShUKCkoe30sYSkpO2Nhc2UgNDpyZXR1cm4gbSgpLGwuWlAuc3VjY2VzcygiXHU2REZCXHU1MkEwXHU2MjEwXHU1MjlGIiksci5hYnJ1cHQoInJldHVybiIsITApO2Nhc2UgOTpyZXR1cm4gci5wcmV2PTksci50MD1yLmNhdGNoKDEpLG0oKSxsLlpQLmVycm9yKCJcdTZERkJcdTUyQTBcdTU5MzFcdThEMjVcdThCRjdcdTkxQ0RcdThCRDVcdUZGMDEiKSxyLmFicnVwdCgicmV0dXJuIiwhMSk7Y2FzZSAxNDpjYXNlImVuZCI6cmV0dXJuIHIuc3RvcCgpfX0sZSxudWxsLFtbMSw5XV0pfSkpO3JldHVybiBmdW5jdGlvbihhKXtyZXR1cm4gWC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLFI9ZnVuY3Rpb24oKXt2YXIgWD1jKCkodCgpKCkubWFyayhmdW5jdGlvbiBlKGEpe3ZhciBtO3JldHVybiB0KCkoKS53cmFwKGZ1bmN0aW9uKHIpe2Zvcig7Oylzd2l0Y2goci5wcmV2PXIubmV4dCl7Y2FzZSAwOnJldHVybiBtPWwuWlAubG9hZGluZygiXHU2QjYzXHU1NzI4XHU5MTREXHU3RjZFIiksci5wcmV2PTEsci5uZXh0PTQsKDAsTy5fOCkoYSk7Y2FzZSA0OnJldHVybiBtKCksbC5aUC5zdWNjZXNzKCJcdTkxNERcdTdGNkVcdTYyMTBcdTUyOUYiKSxyLmFicnVwdCgicmV0dXJuIiwhMCk7Y2FzZSA5OnJldHVybiByLnByZXY9OSxyLnQwPXIuY2F0Y2goMSksbSgpLGwuWlAuZXJyb3IoIlx1OTE0RFx1N0Y2RVx1NTkzMVx1OEQyNVx1OEJGN1x1OTFDRFx1OEJENVx1RkYwMSIpLHIuYWJydXB0KCJyZXR1cm4iLCExKTtjYXNlIDE0OmNhc2UiZW5kIjpyZXR1cm4gci5zdG9wKCl9fSxlLG51bGwsW1sxLDldXSl9KSk7cmV0dXJuIGZ1bmN0aW9uKGEpe3JldHVybiBYLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksej1mdW5jdGlvbigpe3ZhciBYPWMoKSh0KCkoKS5tYXJrKGZ1bmN0aW9uIGUoYSl7dmFyIG07cmV0dXJuIHQoKSgpLndyYXAoZnVuY3Rpb24ocil7Zm9yKDs7KXN3aXRjaChyLnByZXY9ci5uZXh0KXtjYXNlIDA6aWYobT1sLlpQLmxvYWRpbmcoIlx1NkI2M1x1NTcyOFx1NTIyMFx1OTY2NCIpLGEpe3IubmV4dD0zO2JyZWFrfXJldHVybiByLmFicnVwdCgicmV0dXJuIiwhMCk7Y2FzZSAzOnJldHVybiByLnByZXY9MyxyLm5leHQ9NiwoMCxPLm5fKShhLm1hcChmdW5jdGlvbih5KXtyZXR1cm4geS5tZW51SWR9KS5qb2luKCIsIikpO2Nhc2UgNjpyZXR1cm4gbSgpLGwuWlAuc3VjY2VzcygiXHU1MjIwXHU5NjY0XHU2MjEwXHU1MjlGXHVGRjBDXHU1MzczXHU1QzA2XHU1MjM3XHU2NUIwIiksci5hYnJ1cHQoInJldHVybiIsITApO2Nhc2UgMTE6cmV0dXJuIHIucHJldj0xMSxyLnQwPXIuY2F0Y2goMyksbSgpLGwuWlAuZXJyb3IoIlx1NTIyMFx1OTY2NFx1NTkzMVx1OEQyNVx1RkYwQ1x1OEJGN1x1OTFDRFx1OEJENSIpLHIuYWJydXB0KCJyZXR1cm4iLCExKTtjYXNlIDE2OmNhc2UiZW5kIjpyZXR1cm4gci5zdG9wKCl9fSxlLG51bGwsW1szLDExXV0pfSkpO3JldHVybiBmdW5jdGlvbihhKXtyZXR1cm4gWC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLHA9ZnVuY3Rpb24oKXt2YXIgWD1jKCkodCgpKCkubWFyayhmdW5jdGlvbiBlKGEpe3ZhciBtLHM7cmV0dXJuIHQoKSgpLndyYXAoZnVuY3Rpb24oeSl7Zm9yKDs7KXN3aXRjaCh5LnByZXY9eS5uZXh0KXtjYXNlIDA6aWYobT1sLlpQLmxvYWRpbmcoIlx1NkI2M1x1NTcyOFx1NTIyMFx1OTY2NCIpLGEpe3kubmV4dD0zO2JyZWFrfXJldHVybiB5LmFicnVwdCgicmV0dXJuIiwhMCk7Y2FzZSAzOnJldHVybiB5LnByZXY9MyxzPVthLm1lbnVJZF0seS5uZXh0PTcsKDAsTy5uXykocy5qb2luKCIsIikpO2Nhc2UgNzpyZXR1cm4gbSgpLGwuWlAuc3VjY2VzcygiXHU1MjIwXHU5NjY0XHU2MjEwXHU1MjlGXHVGRjBDXHU1MzczXHU1QzA2XHU1MjM3XHU2NUIwIikseS5hYnJ1cHQoInJldHVybiIsITApO2Nhc2UgMTI6cmV0dXJuIHkucHJldj0xMix5LnQwPXkuY2F0Y2goMyksbSgpLGwuWlAuZXJyb3IoIlx1NTIyMFx1OTY2NFx1NTkzMVx1OEQyNVx1RkYwQ1x1OEJGN1x1OTFDRFx1OEJENSIpLHkuYWJydXB0KCJyZXR1cm4iLCExKTtjYXNlIDE3OmNhc2UiZW5kIjpyZXR1cm4geS5zdG9wKCl9fSxlLG51bGwsW1szLDEyXV0pfSkpO3JldHVybiBmdW5jdGlvbihhKXtyZXR1cm4gWC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLGs9ZnVuY3Rpb24oKXt2YXIgZT0oMCxQLnVzZVN0YXRlKSghMSksYT1pKCkoZSwyKSxtPWFbMF0scz1hWzFdLHI9KDAsUC51c2VSZWYpKCkseT0oMCxQLnVzZVN0YXRlKSgpLFc9aSgpKHksMiksZWU9V1swXSxHPVdbMV0scmU9KDAsUC51c2VTdGF0ZSkoW10pLFE9aSgpKHJlLDIpLEY9UVswXSxKPVFbMV0saWU9KDAsUC51c2VTdGF0ZSkoW10pLHNlPWkoKShpZSwyKSxZPXNlWzBdLGNlPXNlWzFdLHVlPSgwLFAudXNlU3RhdGUpKFtdKSxtZT1pKCkodWUsMikscGU9bWVbMF0sZmU9bWVbMV0sZGU9KDAsUC51c2VTdGF0ZSkoW10pLGhlPWkoKShkZSwyKSxIPWhlWzBdLGdlPWhlWzFdLHRlPSgwLEMudXNlQWNjZXNzKSgpLGJlPSgwLEMudXNlSW50bCkoKTsoMCxQLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXsoMCx2LnBYKSgic3lzX3Nob3dfaGlkZSIpLnRoZW4oZnVuY3Rpb24oJCl7ZmUoJCl9KSwoMCx2LnBYKSgic3lzX25vcm1hbF9kaXNhYmxlIikudGhlbihmdW5jdGlvbigkKXtnZSgkKX0pfSxbXSk7dmFyIHZlPVt7dGl0bGU6KDAsZi5qc3gpKEMuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InN5c3RlbS5tZW51Lm1lbnVfbmFtZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1ODNEQ1x1NTM1NVx1NTQwRFx1NzlGMCJ9KSxkYXRhSW5kZXg6Im1lbnVOYW1lIix2YWx1ZVR5cGU6InRleHQifSx7dGl0bGU6KDAsZi5qc3gpKEMuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InN5c3RlbS5tZW51Lmljb24iLGRlZmF1bHRNZXNzYWdlOiJcdTgzRENcdTUzNTVcdTU2RkVcdTY4MDcifSksZGF0YUluZGV4OiJpY29uIix2YWx1ZVR5cGU6InRleHQiLGhpZGVJblNlYXJjaDohMH0se3RpdGxlOigwLGYuanN4KShDLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJzeXN0ZW0ubWVudS5vcmRlcl9udW0iLGRlZmF1bHRNZXNzYWdlOiJcdTY2M0VcdTc5M0FcdTk4N0FcdTVFOEYifSksZGF0YUluZGV4OiJvcmRlck51bSIsdmFsdWVUeXBlOiJ0ZXh0IixoaWRlSW5TZWFyY2g6ITB9LHt0aXRsZTooMCxmLmpzeCkoQy5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoic3lzdGVtLm1lbnUuY29tcG9uZW50IixkZWZhdWx0TWVzc2FnZToiXHU3RUM0XHU0RUY2XHU4REVGXHU1Rjg0In0pLGRhdGFJbmRleDoiY29tcG9uZW50Iix2YWx1ZVR5cGU6InRleHQiLGhpZGVJblNlYXJjaDohMH0se3RpdGxlOigwLGYuanN4KShDLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJzeXN0ZW0ubWVudS5wZXJtcyIsZGVmYXVsdE1lc3NhZ2U6Ilx1Njc0M1x1OTY1MFx1NjgwN1x1OEJDNiJ9KSxkYXRhSW5kZXg6InBlcm1zIix2YWx1ZVR5cGU6InRleHQiLGhpZGVJblNlYXJjaDohMH0se3RpdGxlOigwLGYuanN4KShDLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJzeXN0ZW0ubWVudS5zdGF0dXMiLGRlZmF1bHRNZXNzYWdlOiJcdTgzRENcdTUzNTVcdTcyQjZcdTYwMDEifSksZGF0YUluZGV4OiJzdGF0dXMiLHZhbHVlVHlwZToic2VsZWN0Iix2YWx1ZUVudW06SCxyZW5kZXI6ZnVuY3Rpb24oWixMKXtyZXR1cm4oMCxmLmpzeCkob2UuWix7ZW51bXM6SCx2YWx1ZTpMLnN0YXR1c30pfX0se3RpdGxlOigwLGYuanN4KShDLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJwYWdlcy5zZWFyY2hUYWJsZS50aXRsZU9wdGlvbiIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjRDRFx1NEY1QyJ9KSxkYXRhSW5kZXg6Im9wdGlvbiIsd2lkdGg6IjIyMHB4Iix2YWx1ZVR5cGU6Im9wdGlvbiIscmVuZGVyOmZ1bmN0aW9uKFosTCl7cmV0dXJuWygwLGYuanN4KShELlpQLHt0eXBlOiJsaW5rIixzaXplOiJzbWFsbCIsaGlkZGVuOiF0ZS5oYXNQZXJtcygic3lzdGVtOm1lbnU6ZWRpdCIpLG9uQ2xpY2s6ZnVuY3Rpb24oKXtzKCEwKSxHKEwpfSxjaGlsZHJlbjoiXHU3RjE2XHU4RjkxIn0sImVkaXQiKSwoMCxmLmpzeCkoRC5aUCx7dHlwZToibGluayIsc2l6ZToic21hbGwiLGRhbmdlcjohMCxoaWRkZW46IXRlLmhhc1Blcm1zKCJzeXN0ZW06bWVudTpyZW1vdmUiKSxvbkNsaWNrOmMoKSh0KCkoKS5tYXJrKGZ1bmN0aW9uIE0oKXtyZXR1cm4gdCgpKCkud3JhcChmdW5jdGlvbihqKXtmb3IoOzspc3dpdGNoKGoucHJldj1qLm5leHQpe2Nhc2UgMDp4LlouY29uZmlybSh7dGl0bGU6Ilx1NTIyMFx1OTY2NCIsY29udGVudDoiXHU3ODZFXHU1QjlBXHU1MjIwXHU5NjY0XHU4QkU1XHU5ODc5XHU1NDE3XHVGRjFGIixva1RleHQ6Ilx1Nzg2RVx1OEJBNCIsY2FuY2VsVGV4dDoiXHU1M0Q2XHU2RDg4Iixvbk9rOmZ1bmN0aW9uKCl7dmFyIE49YygpKHQoKSgpLm1hcmsoZnVuY3Rpb24gVSgpe3ZhciBhZTtyZXR1cm4gdCgpKCkud3JhcChmdW5jdGlvbihfZSl7Zm9yKDs7KXN3aXRjaChfZS5wcmV2PV9lLm5leHQpe2Nhc2UgMDpyZXR1cm4gX2UubmV4dD0yLHAoTCk7Y2FzZSAyOmFlPV9lLnNlbnQsYWUmJnIuY3VycmVudCYmci5jdXJyZW50LnJlbG9hZCgpO2Nhc2UgNDpjYXNlImVuZCI6cmV0dXJuIF9lLnN0b3AoKX19LFUpfSkpO2Z1bmN0aW9uIFYoKXtyZXR1cm4gTi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIFZ9KCl9KTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBqLnN0b3AoKX19LE0pfSkpLGNoaWxkcmVuOiJcdTUyMjBcdTk2NjQifSwiYmF0Y2hSZW1vdmUiKV19fV07cmV0dXJuKDAsZi5qc3hzKShkLl96LHtjaGlsZHJlbjpbKDAsZi5qc3gpKCJkaXYiLHtzdHlsZTp7d2lkdGg6IjEwMCUiLGZsb2F0OiJyaWdodCJ9LGNoaWxkcmVuOigwLGYuanN4KShBLlose2hlYWRlclRpdGxlOmJlLmZvcm1hdE1lc3NhZ2Uoe2lkOiJwYWdlcy5zZWFyY2hUYWJsZS50aXRsZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NEZFMVx1NjA2RiJ9KSxhY3Rpb25SZWY6cixyb3dLZXk6Im1lbnVJZCIsc2VhcmNoOntsYWJlbFdpZHRoOjEyMH0sdG9vbEJhclJlbmRlcjpmdW5jdGlvbigpe3JldHVyblsoMCxmLmpzeHMpKEQuWlAse3R5cGU6InByaW1hcnkiLGhpZGRlbjohdGUuaGFzUGVybXMoInN5c3RlbTptZW51OmFkZCIpLG9uQ2xpY2s6YygpKHQoKSgpLm1hcmsoZnVuY3Rpb24gWigpe3JldHVybiB0KCkoKS53cmFwKGZ1bmN0aW9uKE0pe2Zvcig7Oylzd2l0Y2goTS5wcmV2PU0ubmV4dCl7Y2FzZSAwOkcodm9pZCAwKSxzKCEwKTtjYXNlIDI6Y2FzZSJlbmQiOnJldHVybiBNLnN0b3AoKX19LFopfSkpLGNoaWxkcmVuOlsoMCxmLmpzeCkodS5aLHt9KSwiICIsKDAsZi5qc3gpKEMuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InBhZ2VzLnNlYXJjaFRhYmxlLm5ldyIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjVCMFx1NUVGQSJ9KV19LCJhZGQiKSwoMCxmLmpzeHMpKEQuWlAse3R5cGU6InByaW1hcnkiLGRhbmdlcjohMCxoaWRkZW46KEY9PW51bGw/dm9pZCAwOkYubGVuZ3RoKT09PTB8fCF0ZS5oYXNQZXJtcygic3lzdGVtOm1lbnU6cmVtb3ZlIiksb25DbGljazpjKCkodCgpKCkubWFyayhmdW5jdGlvbiBaKCl7cmV0dXJuIHQoKSgpLndyYXAoZnVuY3Rpb24oTSl7Zm9yKDs7KXN3aXRjaChNLnByZXY9TS5uZXh0KXtjYXNlIDA6eC5aLmNvbmZpcm0oe3RpdGxlOiJcdTY2MkZcdTU0MjZcdTc4NkVcdThCQTRcdTUyMjBcdTk2NjRcdTYyNDBcdTkwMDlcdTY1NzBcdTYzNkVcdTk4Nzk/IixpY29uOigwLGYuanN4KShfLlose30pLGNvbnRlbnQ6Ilx1OEJGN1x1OEMyOFx1NjE0RVx1NjRDRFx1NEY1QyIsb25PazpmdW5jdGlvbigpe3JldHVybiBjKCkodCgpKCkubWFyayhmdW5jdGlvbiBqKCl7dmFyIE4sVixVO3JldHVybiB0KCkoKS53cmFwKGZ1bmN0aW9uKHcpe2Zvcig7Oylzd2l0Y2gody5wcmV2PXcubmV4dCl7Y2FzZSAwOnJldHVybiB3Lm5leHQ9Mix6KEYpO2Nhc2UgMjpOPXcuc2VudCxOJiYoSihbXSksKFY9ci5jdXJyZW50KT09PW51bGx8fFY9PT12b2lkIDB8fChVPVYucmVsb2FkQW5kUmVzdCk9PT1udWxsfHxVPT09dm9pZCAwfHxVLmNhbGwoVikpO2Nhc2UgNDpjYXNlImVuZCI6cmV0dXJuIHcuc3RvcCgpfX0sail9KSkoKX0sb25DYW5jZWw6ZnVuY3Rpb24oKXt9fSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gTS5zdG9wKCl9fSxaKX0pKSxjaGlsZHJlbjpbKDAsZi5qc3gpKGguWix7fSksKDAsZi5qc3gpKEMuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InBhZ2VzLnNlYXJjaFRhYmxlLmRlbGV0ZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NTIyMFx1OTY2NCJ9KV19LCJyZW1vdmUiKV19LHJlcXVlc3Q6ZnVuY3Rpb24oWil7cmV0dXJuKDAsTy5BZikoVCgpKHt9LFopKS50aGVuKGZ1bmN0aW9uKEwpe3ZhciBNPXtpZDowLGxhYmVsOiJcdTRFM0JcdTdDN0JcdTc2RUUiLGNoaWxkcmVuOltdLHZhbHVlOjB9LHE9KDAsbGUuQzIpKEwuZGF0YSwibWVudUlkIiwibWVudU5hbWUiLCIiLCIiLCIiKTtNLmNoaWxkcmVuPXE7dmFyIGo9W107cmV0dXJuIGoucHVzaChNKSxjZShqKSx7ZGF0YTpxLHRvdGFsOkwuZGF0YS5sZW5ndGgsc3VjY2VzczohMH19KX0sY29sdW1uczp2ZSxyb3dTZWxlY3Rpb246e29uQ2hhbmdlOmZ1bmN0aW9uKFosTCl7SihMKX19fSwibWVudUxpc3QiKX0pLChGPT1udWxsP3ZvaWQgMDpGLmxlbmd0aCk+MCYmKDAsZi5qc3gpKG8uUyx7ZXh0cmE6KDAsZi5qc3hzKSgiZGl2Iix7Y2hpbGRyZW46WygwLGYuanN4KShDLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJwYWdlcy5zZWFyY2hUYWJsZS5jaG9zZW4iLGRlZmF1bHRNZXNzYWdlOiJcdTVERjJcdTkwMDlcdTYyRTkifSksKDAsZi5qc3gpKCJhIix7c3R5bGU6e2ZvbnRXZWlnaHQ6NjAwfSxjaGlsZHJlbjpGLmxlbmd0aH0pLCgwLGYuanN4KShDLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJwYWdlcy5zZWFyY2hUYWJsZS5pdGVtIixkZWZhdWx0TWVzc2FnZToiXHU5ODc5In0pXX0pLGNoaWxkcmVuOigwLGYuanN4KShELlpQLHtkYW5nZXI6ITAsaGlkZGVuOiF0ZS5oYXNQZXJtcygic3lzdGVtOm1lbnU6ZGVsIiksb25DbGljazpjKCkodCgpKCkubWFyayhmdW5jdGlvbiAkKCl7cmV0dXJuIHQoKSgpLndyYXAoZnVuY3Rpb24oTCl7Zm9yKDs7KXN3aXRjaChMLnByZXY9TC5uZXh0KXtjYXNlIDA6eC5aLmNvbmZpcm0oe3RpdGxlOiJcdTUyMjBcdTk2NjQiLGNvbnRlbnQ6Ilx1Nzg2RVx1NUI5QVx1NTIyMFx1OTY2NFx1OEJFNVx1OTg3OVx1NTQxN1x1RkYxRiIsb2tUZXh0OiJcdTc4NkVcdThCQTQiLGNhbmNlbFRleHQ6Ilx1NTNENlx1NkQ4OCIsb25PazpmdW5jdGlvbigpe3ZhciBNPWMoKSh0KCkoKS5tYXJrKGZ1bmN0aW9uIGooKXt2YXIgTixWLFU7cmV0dXJuIHQoKSgpLndyYXAoZnVuY3Rpb24odyl7Zm9yKDs7KXN3aXRjaCh3LnByZXY9dy5uZXh0KXtjYXNlIDA6cmV0dXJuIHcubmV4dD0yLHooRik7Y2FzZSAyOk49dy5zZW50LE4mJihKKFtdKSwoVj1yLmN1cnJlbnQpPT09bnVsbHx8Vj09PXZvaWQgMHx8KFU9Vi5yZWxvYWRBbmRSZXN0KT09PW51bGx8fFU9PT12b2lkIDB8fFUuY2FsbChWKSk7Y2FzZSA0OmNhc2UiZW5kIjpyZXR1cm4gdy5zdG9wKCl9fSxqKX0pKTtmdW5jdGlvbiBxKCl7cmV0dXJuIE0uYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBxfSgpfSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gTC5zdG9wKCl9fSwkKX0pKSxjaGlsZHJlbjooMCxmLmpzeCkoQy5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoicGFnZXMuc2VhcmNoVGFibGUuYmF0Y2hEZWxldGlvbiIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjI3OVx1OTFDRlx1NTIyMFx1OTY2NCJ9KX0sInJlbW92ZSIpfSksKDAsZi5qc3gpKEkuZGVmYXVsdCx7b25TdWJtaXQ6ZnVuY3Rpb24oKXt2YXIgJD1jKCkodCgpKCkubWFyayhmdW5jdGlvbiBaKEwpe3ZhciBNO3JldHVybiB0KCkoKS53cmFwKGZ1bmN0aW9uKGope2Zvcig7Oylzd2l0Y2goai5wcmV2PWoubmV4dCl7Y2FzZSAwOmlmKE09ITEsIUwubWVudUlkKXtqLm5leHQ9NzticmVha31yZXR1cm4gai5uZXh0PTQsUihUKCkoe30sTCkpO2Nhc2UgNDpNPWouc2VudCxqLm5leHQ9MTA7YnJlYWs7Y2FzZSA3OnJldHVybiBqLm5leHQ9OSxiKFQoKSh7fSxMKSk7Y2FzZSA5Ok09ai5zZW50O2Nhc2UgMTA6TSYmKHMoITEpLEcodm9pZCAwKSxyLmN1cnJlbnQmJnIuY3VycmVudC5yZWxvYWQoKSk7Y2FzZSAxMTpjYXNlImVuZCI6cmV0dXJuIGouc3RvcCgpfX0sWil9KSk7cmV0dXJuIGZ1bmN0aW9uKFope3JldHVybiAkLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksb25DYW5jZWw6ZnVuY3Rpb24oKXtzKCExKSxHKHZvaWQgMCl9LG9wZW46bSx2YWx1ZXM6ZWV8fHt9LHZpc2libGVPcHRpb25zOnBlLHN0YXR1c09wdGlvbnM6SCxtZW51VHJlZTpZfSldfSl9O0IuZGVmYXVsdD1rfSw5Mjk4MjpmdW5jdGlvbihuZSxCLG4pe24uZChCLHtIcjpmdW5jdGlvbigpe3JldHVybiBBfSxRSzpmdW5jdGlvbigpe3JldHVybiBvZX0sVmQ6ZnVuY3Rpb24oKXtyZXR1cm4gRH0sYTc6ZnVuY3Rpb24oKXtyZXR1cm4gaH0saks6ZnVuY3Rpb24oKXtyZXR1cm4gQ30sbjI6ZnVuY3Rpb24oKXtyZXR1cm4gbGV9LG9IOmZ1bmN0aW9uKCl7cmV0dXJuIHV9LHBYOmZ1bmN0aW9uKCl7cmV0dXJuIHh9LHNGOmZ1bmN0aW9uKCl7cmV0dXJuIEl9fSk7dmFyIEU9bigxNTAwOSksaT1uLm4oRSksSz1uKDk3ODU3KSx0PW4ubihLKSxTPW4oOTkyODkpLFQ9bi5uKFMpLGc9big3Njc3MiksYz1uKDMzODY3KSxQPW4oMzA5NjQpO2Z1bmN0aW9uIEMoYil7cmV0dXJuIGwuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGwoKXtyZXR1cm4gbD1UKCkoaSgpKCkubWFyayhmdW5jdGlvbiBiKFIpe3JldHVybiBpKCkoKS53cmFwKGZ1bmN0aW9uKHApe2Zvcig7Oylzd2l0Y2gocC5wcmV2PXAubmV4dCl7Y2FzZSAwOnJldHVybiBwLmFicnVwdCgicmV0dXJuIiwoMCxnLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS9kaWN0L3R5cGUvbGlzdCIse3BhcmFtczp0KCkoe30sUiksbWV0aG9kOiJHRVQiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgifX0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBwLnN0b3AoKX19LGIpfSkpLGwuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEQoYil7cmV0dXJuKDAsZy5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vZGljdC90eXBlLyIuY29uY2F0KGIpLHttZXRob2Q6IkdFVCJ9KX1mdW5jdGlvbiB4KGIsUil7cmV0dXJuIGQuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGQoKXtyZXR1cm4gZD1UKCkoaSgpKCkubWFyayhmdW5jdGlvbiBiKFIseil7dmFyIHAsaztyZXR1cm4gaSgpKCkud3JhcChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gZS5uZXh0PTIsKDAsZy5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vZGljdC9kYXRhL3R5cGUvIi5jb25jYXQoUikse21ldGhvZDoiR0VUIn0pO2Nhc2UgMjppZihwPWUuc2VudCxwLmNvZGUhPT1jLmlLLlNVQ0NFU1Mpe2UubmV4dD05O2JyZWFrfXJldHVybiBrPXt9LHAuZGF0YS5mb3JFYWNoKGZ1bmN0aW9uKGEpe2tbYS5kaWN0VmFsdWVdPXt0ZXh0OmEuZGljdExhYmVsLGxhYmVsOmEuZGljdExhYmVsLHZhbHVlOno/TnVtYmVyKGEuZGljdFZhbHVlKTphLmRpY3RWYWx1ZSxrZXk6YS5kaWN0Q29kZSxsaXN0Q2xhc3M6YS5saXN0Q2xhc3Msc3RhdHVzOmEubGlzdENsYXNzfX0pLGUuYWJydXB0KCJyZXR1cm4iLGspO2Nhc2UgOTpyZXR1cm4gZS5hYnJ1cHQoInJldHVybiIse30pO2Nhc2UgMTA6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19LGIpfSkpLGQuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEEoYixSKXtyZXR1cm4gby5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gbygpe3JldHVybiBvPVQoKShpKCkoKS5tYXJrKGZ1bmN0aW9uIGIoUix6KXt2YXIgcCxrO3JldHVybiBpKCkoKS53cmFwKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOnJldHVybiBlLm5leHQ9MiwoMCxnLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS9kaWN0L2RhdGEvdHlwZS8iLmNvbmNhdChSKSx7bWV0aG9kOiJHRVQifSk7Y2FzZSAyOmlmKHA9ZS5zZW50LHAuY29kZSE9PTIwMCl7ZS5uZXh0PTY7YnJlYWt9cmV0dXJuIGs9cC5kYXRhLm1hcChmdW5jdGlvbihhKXtyZXR1cm57dGV4dDphLmRpY3RMYWJlbCxsYWJlbDphLmRpY3RMYWJlbCx2YWx1ZTp6P051bWJlcihhLmRpY3RWYWx1ZSk6YS5kaWN0VmFsdWUsa2V5OmEuZGljdENvZGUsbGlzdENsYXNzOmEubGlzdENsYXNzLHN0YXR1czphLmxpc3RDbGFzc319KSxlLmFicnVwdCgicmV0dXJuIixrKTtjYXNlIDY6cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLFtdKTtjYXNlIDc6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19LGIpfSkpLG8uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHUoYil7cmV0dXJuIF8uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIF8oKXtyZXR1cm4gXz1UKCkoaSgpKCkubWFyayhmdW5jdGlvbiBiKFIpe3JldHVybiBpKCkoKS53cmFwKGZ1bmN0aW9uKHApe2Zvcig7Oylzd2l0Y2gocC5wcmV2PXAubmV4dCl7Y2FzZSAwOnJldHVybiBwLmFicnVwdCgicmV0dXJuIiwoMCxnLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS9kaWN0L3R5cGUiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgifSxkYXRhOlJ9KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gcC5zdG9wKCl9fSxiKX0pKSxfLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBoKGIpe3JldHVybiBPLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBPKCl7cmV0dXJuIE89VCgpKGkoKSgpLm1hcmsoZnVuY3Rpb24gYihSKXtyZXR1cm4gaSgpKCkud3JhcChmdW5jdGlvbihwKXtmb3IoOzspc3dpdGNoKHAucHJldj1wLm5leHQpe2Nhc2UgMDpyZXR1cm4gcC5hYnJ1cHQoInJldHVybiIsKDAsZy5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vZGljdC90eXBlIix7bWV0aG9kOiJQVVQiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgifSxkYXRhOlJ9KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gcC5zdG9wKCl9fSxiKX0pKSxPLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBJKGIpe3JldHVybiB2LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiB2KCl7cmV0dXJuIHY9VCgpKGkoKSgpLm1hcmsoZnVuY3Rpb24gYihSKXtyZXR1cm4gaSgpKCkud3JhcChmdW5jdGlvbihwKXtmb3IoOzspc3dpdGNoKHAucHJldj1wLm5leHQpe2Nhc2UgMDpyZXR1cm4gcC5hYnJ1cHQoInJldHVybiIsKDAsZy5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vZGljdC90eXBlLyIuY29uY2F0KFIpLHttZXRob2Q6IkRFTEVURSJ9KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gcC5zdG9wKCl9fSxiKX0pKSx2LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBsZShiKXtyZXR1cm4oMCxQLnN1KSgiL2FwaS9zeXN0ZW0vZGljdC90eXBlL2V4cG9ydCIse3BhcmFtczpifSwiZGljdF90eXBlXyIuY29uY2F0KG5ldyBEYXRlKCkuZ2V0VGltZSgpLCIueGxzeCIpKX1mdW5jdGlvbiBvZShiKXtyZXR1cm4gZi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gZigpe3JldHVybiBmPVQoKShpKCkoKS5tYXJrKGZ1bmN0aW9uIGIoUil7cmV0dXJuIGkoKSgpLndyYXAoZnVuY3Rpb24ocCl7Zm9yKDs7KXN3aXRjaChwLnByZXY9cC5uZXh0KXtjYXNlIDA6cmV0dXJuIHAuYWJydXB0KCJyZXR1cm4iLCgwLGcucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RpY3QvdHlwZS9vcHRpb25zZWxlY3QiLHtwYXJhbXM6dCgpKHt9LFIpLG1ldGhvZDoiR0VUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In19KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gcC5zdG9wKCl9fSxiKX0pKSxmLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19LDUyNzI4OmZ1bmN0aW9uKG5lLEIsbil7bi5kKEIse0FmOmZ1bmN0aW9uKCl7cmV0dXJuIGN9LFRoOmZ1bmN0aW9uKCl7cmV0dXJuIHV9LF84OmZ1bmN0aW9uKCl7cmV0dXJuIHh9LGJMOmZ1bmN0aW9uKCl7cmV0dXJuIGx9LG5fOmZ1bmN0aW9uKCl7cmV0dXJuIEF9fSk7dmFyIEU9bigxNTAwOSksaT1uLm4oRSksSz1uKDk3ODU3KSx0PW4ubihLKSxTPW4oOTkyODkpLFQ9bi5uKFMpLGc9big3Njc3Mik7ZnVuY3Rpb24gYyhfLGgpe3JldHVybiBQLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBQKCl7cmV0dXJuIFA9VCgpKGkoKSgpLm1hcmsoZnVuY3Rpb24gXyhoLE8pe3JldHVybiBpKCkoKS53cmFwKGZ1bmN0aW9uKHYpe2Zvcig7Oylzd2l0Y2godi5wcmV2PXYubmV4dCl7Y2FzZSAwOnJldHVybiB2LmFicnVwdCgicmV0dXJuIiwoMCxnLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS9tZW51L2xpc3QiLHQoKSh7bWV0aG9kOiJHRVQiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgifSxwYXJhbXM6aH0sT3x8e30pKSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gdi5zdG9wKCl9fSxfKX0pKSxQLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBDKF8saCl7cmV0dXJuIHJlcXVlc3QoIi9hcGkvc3lzdGVtL21lbnUvIi5jb25jYXQoXyksX29iamVjdFNwcmVhZCh7bWV0aG9kOiJHRVQifSxofHx7fSkpfWZ1bmN0aW9uIGwoXyxoKXtyZXR1cm4gRC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gRCgpe3JldHVybiBEPVQoKShpKCkoKS5tYXJrKGZ1bmN0aW9uIF8oaCxPKXtyZXR1cm4gaSgpKCkud3JhcChmdW5jdGlvbih2KXtmb3IoOzspc3dpdGNoKHYucHJldj12Lm5leHQpe2Nhc2UgMDpyZXR1cm4gdi5hYnJ1cHQoInJldHVybiIsKDAsZy5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vbWVudSIsdCgpKHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgifSxkYXRhOmh9LE98fHt9KSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIHYuc3RvcCgpfX0sXyl9KSksRC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24geChfLGgpe3JldHVybiBkLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBkKCl7cmV0dXJuIGQ9VCgpKGkoKSgpLm1hcmsoZnVuY3Rpb24gXyhoLE8pe3JldHVybiBpKCkoKS53cmFwKGZ1bmN0aW9uKHYpe2Zvcig7Oylzd2l0Y2godi5wcmV2PXYubmV4dCl7Y2FzZSAwOnJldHVybiB2LmFicnVwdCgicmV0dXJuIiwoMCxnLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS9tZW51Iix0KCkoe21ldGhvZDoiUFVUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In0sZGF0YTpofSxPfHx7fSkpKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiB2LnN0b3AoKX19LF8pfSkpLGQuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEEoXyxoKXtyZXR1cm4gby5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gbygpe3JldHVybiBvPVQoKShpKCkoKS5tYXJrKGZ1bmN0aW9uIF8oaCxPKXtyZXR1cm4gaSgpKCkud3JhcChmdW5jdGlvbih2KXtmb3IoOzspc3dpdGNoKHYucHJldj12Lm5leHQpe2Nhc2UgMDpyZXR1cm4gdi5hYnJ1cHQoInJldHVybiIsKDAsZy5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vbWVudS8iLmNvbmNhdChoKSx0KCkoe21ldGhvZDoiREVMRVRFIn0sT3x8e30pKSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gdi5zdG9wKCl9fSxfKX0pKSxvLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiB1KCl7cmV0dXJuKDAsZy5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vbWVudS90cmVlc2VsZWN0Iix7bWV0aG9kOiJHRVQifSl9fSwzMDk2NDpmdW5jdGlvbihuZSxCLG4pe24uZChCLHtwNjpmdW5jdGlvbigpe3JldHVybiBDfSxzdTpmdW5jdGlvbigpe3JldHVybiBsfX0pO3ZhciBFPW4oMTUwMDkpLGk9bi5uKEUpLEs9big5Nzg1NyksdD1uLm4oSyksUz1uKDk5Mjg5KSxUPW4ubihTKSxnPW4oNzY3NzIpLGM9e3hsc3g6ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0Iix6aXA6ImFwcGxpY2F0aW9uL3ppcCJ9O2Z1bmN0aW9uIFAoZCxBKXt2YXIgbz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIiksdT1uZXcgQmxvYihbZC5kYXRhXSx7dHlwZTpBfSksXz1uZXcgUmVnRXhwKCJmaWxlbmFtZT0oW147XStcXC5bXlxcLjtdKyk7KiIpLGg9ZGVjb2RlVVJJKGQuaGVhZGVyc1siY29udGVudC1kaXNwb3NpdGlvbiJdKSxPPV8uZXhlYyhoKSxJPU8/T1sxXToiZmlsZSI7ST1JLnJlcGxhY2UoLyIvZywiIiksby5zdHlsZS5kaXNwbGF5PSJub25lIixvLmhyZWY9VVJMLmNyZWF0ZU9iamVjdFVSTCh1KSxvLnNldEF0dHJpYnV0ZSgiZG93bmxvYWQiLEkpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobyksby5jbGljaygpLFVSTC5yZXZva2VPYmplY3RVUkwoby5ocmVmKSxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKG8pfWZ1bmN0aW9uIEMoZCl7KDAsZy5yZXF1ZXN0KShkLHttZXRob2Q6IkdFVCIscmVzcG9uc2VUeXBlOiJibG9iIixnZXRSZXNwb25zZTohMH0pLnRoZW4oZnVuY3Rpb24oQSl7UChBLGMuemlwKX0pfWZ1bmN0aW9uIGwoZCxBLG8pe3JldHVybiBELmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBEKCl7cmV0dXJuIEQ9VCgpKGkoKSgpLm1hcmsoZnVuY3Rpb24gZChBLG8sdSl7cmV0dXJuIGkoKSgpLndyYXAoZnVuY3Rpb24oaCl7Zm9yKDs7KXN3aXRjaChoLnByZXY9aC5uZXh0KXtjYXNlIDA6cmV0dXJuIGguYWJydXB0KCJyZXR1cm4iLCgwLGcucmVxdWVzdCkoQSx0KCkodCgpKHt9LG8pLHt9LHttZXRob2Q6IlBPU1QiLHJlc3BvbnNlVHlwZToiYmxvYiJ9KSkudGhlbihmdW5jdGlvbihPKXt2YXIgST1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIiksdj1PO0kuc3R5bGUuZGlzcGxheT0ibm9uZSIsSS5ocmVmPVVSTC5jcmVhdGVPYmplY3RVUkwodiksSS5zZXRBdHRyaWJ1dGUoImRvd25sb2FkIix1KSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKEkpLEkuY2xpY2soKSxVUkwucmV2b2tlT2JqZWN0VVJMKEkuaHJlZiksZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChJKX0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBoLnN0b3AoKX19LGQpfSkpLEQuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHgoZCl7d2luZG93LmxvY2F0aW9uLmhyZWY9Ii9hcGkvY29tbW9uL2Rvd25sb2FkP2ZpbGVOYW1lPSIuY29uY2F0KGVuY29kZVVSSShkKSwiJmRlbGV0ZT0iLCEwKX19LDMxOTgxOmZ1bmN0aW9uKG5lLEIsbil7bi5kKEIse0MyOmZ1bmN0aW9uKCl7cmV0dXJuIGl9LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHR9fSk7dmFyIEU9big4NzczNSk7ZnVuY3Rpb24gaShTLFQsZyxjLFAsQyl7dmFyIGw9e2lkOlR8fCJpZCIsbmFtZTpnfHwibmFtZSIscGFyZW50SWQ6Y3x8InBhcmVudElkIixwYXJlbnROYW1lOlB8fCJwYXJlbnROYW1lIixjaGlsZHJlbkxpc3Q6Q3x8ImNoaWxkcmVuIn0sRD1bXSx4PVtdLGQ9W107Uy5mb3JFYWNoKGZ1bmN0aW9uKG8pe3ZhciB1PW8sXz11W2wucGFyZW50SWRdO0RbX118fChEW19dPVtdKSx1LmtleT11W2wuaWRdLHUudGl0bGU9dVtsLm5hbWVdLHUudmFsdWU9dVtsLmlkXSx1W2wuY2hpbGRyZW5MaXN0XT1udWxsLHhbdVtsLmlkXV09dSxEW19dLnB1c2godSl9KSxTLmZvckVhY2goZnVuY3Rpb24obyl7dmFyIHU9byxfPXVbbC5wYXJlbnRJZF07eFtfXXx8KHVbbC5wYXJlbnROYW1lXT0iIixkLnB1c2godSkpfSk7ZnVuY3Rpb24gQShvKXt2YXIgdT1vO0RbdVtsLmlkXV0mJih1W2wuY2hpbGRyZW5MaXN0XXx8KHVbbC5jaGlsZHJlbkxpc3RdPVtdKSx1W2wuY2hpbGRyZW5MaXN0XT1EW3VbbC5pZF1dKSx1W2wuY2hpbGRyZW5MaXN0XSYmdVtsLmNoaWxkcmVuTGlzdF0uZm9yRWFjaChmdW5jdGlvbihfKXt2YXIgaD1fO2hbbC5wYXJlbnROYW1lXT11W2wubmFtZV0sQShoKX0pfXJldHVybiBkLmZvckVhY2goZnVuY3Rpb24obyl7QShvKX0pLGR9dmFyIEs9ZnVuY3Rpb24oKXtyZXR1cm4gcGFyc2Uod2luZG93LmxvY2F0aW9uLmhyZWYuc3BsaXQoIj8iKVsxXSl9O2Z1bmN0aW9uIHQoUyl7dmFyIFQ9Uy5tYXAoZnVuY3Rpb24oZyl7dmFyIGM9e2lkOmcuaWQsdGl0bGU6Zy5sYWJlbCxrZXk6IiIuY29uY2F0KGcuaWQpLHZhbHVlOmcuaWR9O3JldHVybiBnLmNoaWxkcmVuJiYoYy5jaGlsZHJlbj10KGcuY2hpbGRyZW4pKSxjfSk7cmV0dXJuIFR9fSw2NjMwOTpmdW5jdGlvbihuZSxCLG4pe24uZChCLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIFh9fSk7dmFyIEU9big2NzI5NCksaT1uKDkzOTY3KSxLPW4ubihpKSx0PW4oOTg0MjMpLFM9big5ODc4NyksVD1uKDY5NzYwKSxnPW4oOTYxNTkpLGM9big0NTM1MyksUD1uKDUzMTI0KSxDPW4oMTE1NjgpLGw9bigxNTA2MyksRD1uKDE0NzQ3KSx4PW4oODMyNjIpLGQ9big4MzU1OSk7Y29uc3QgQT1lPT57Y29uc3R7cGFkZGluZ1hYUzphLGxpbmVXaWR0aDptLHRhZ1BhZGRpbmdIb3Jpem9udGFsOnMsY29tcG9uZW50Q2xzOnIsY2FsYzp5fT1lLFc9eShzKS5zdWIobSkuZXF1YWwoKSxlZT15KGEpLnN1YihtKS5lcXVhbCgpO3JldHVybntbcl06T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCgwLEQuV2YpKGUpKSx7ZGlzcGxheToiaW5saW5lLWJsb2NrIixoZWlnaHQ6ImF1dG8iLG1hcmdpbklubGluZUVuZDplLm1hcmdpblhTLHBhZGRpbmdJbmxpbmU6Vyxmb250U2l6ZTplLnRhZ0ZvbnRTaXplLGxpbmVIZWlnaHQ6ZS50YWdMaW5lSGVpZ2h0LHdoaXRlU3BhY2U6Im5vd3JhcCIsYmFja2dyb3VuZDplLmRlZmF1bHRCZyxib3JkZXI6YCR7KDAsQy5iZikoZS5saW5lV2lkdGgpfSAke2UubGluZVR5cGV9ICR7ZS5jb2xvckJvcmRlcn1gLGJvcmRlclJhZGl1czplLmJvcmRlclJhZGl1c1NNLG9wYWNpdHk6MSx0cmFuc2l0aW9uOmBhbGwgJHtlLm1vdGlvbkR1cmF0aW9uTWlkfWAsdGV4dEFsaWduOiJzdGFydCIscG9zaXRpb246InJlbGF0aXZlIixbYCYke3J9LXJ0bGBdOntkaXJlY3Rpb246InJ0bCJ9LCImLCBhLCBhOmhvdmVyIjp7Y29sb3I6ZS5kZWZhdWx0Q29sb3J9LFtgJHtyfS1jbG9zZS1pY29uYF06e21hcmdpbklubGluZVN0YXJ0OmVlLGZvbnRTaXplOmUudGFnSWNvblNpemUsY29sb3I6ZS5jb2xvclRleHREZXNjcmlwdGlvbixjdXJzb3I6InBvaW50ZXIiLHRyYW5zaXRpb246YGFsbCAke2UubW90aW9uRHVyYXRpb25NaWR9YCwiJjpob3ZlciI6e2NvbG9yOmUuY29sb3JUZXh0SGVhZGluZ319LFtgJiR7cn0taGFzLWNvbG9yYF06e2JvcmRlckNvbG9yOiJ0cmFuc3BhcmVudCIsW2AmLCBhLCBhOmhvdmVyLCAke2UuaWNvbkNsc30tY2xvc2UsICR7ZS5pY29uQ2xzfS1jbG9zZTpob3ZlcmBdOntjb2xvcjplLmNvbG9yVGV4dExpZ2h0U29saWR9fSwiJi1jaGVja2FibGUiOntiYWNrZ3JvdW5kQ29sb3I6InRyYW5zcGFyZW50Iixib3JkZXJDb2xvcjoidHJhbnNwYXJlbnQiLGN1cnNvcjoicG9pbnRlciIsW2AmOm5vdCgke3J9LWNoZWNrYWJsZS1jaGVja2VkKTpob3ZlcmBdOntjb2xvcjplLmNvbG9yUHJpbWFyeSxiYWNrZ3JvdW5kQ29sb3I6ZS5jb2xvckZpbGxTZWNvbmRhcnl9LCImOmFjdGl2ZSwgJi1jaGVja2VkIjp7Y29sb3I6ZS5jb2xvclRleHRMaWdodFNvbGlkfSwiJi1jaGVja2VkIjp7YmFja2dyb3VuZENvbG9yOmUuY29sb3JQcmltYXJ5LCImOmhvdmVyIjp7YmFja2dyb3VuZENvbG9yOmUuY29sb3JQcmltYXJ5SG92ZXJ9fSwiJjphY3RpdmUiOntiYWNrZ3JvdW5kQ29sb3I6ZS5jb2xvclByaW1hcnlBY3RpdmV9fSwiJi1oaWRkZW4iOntkaXNwbGF5OiJub25lIn0sW2A+ICR7ZS5pY29uQ2xzfSArIHNwYW4sID4gc3BhbiArICR7ZS5pY29uQ2xzfWBdOnttYXJnaW5JbmxpbmVTdGFydDpXfX0pLFtgJHtyfS1ib3JkZXJsZXNzYF06e2JvcmRlckNvbG9yOiJ0cmFuc3BhcmVudCIsYmFja2dyb3VuZDplLnRhZ0JvcmRlcmxlc3NCZ319fSxvPWU9Pntjb25zdHtsaW5lV2lkdGg6YSxmb250U2l6ZUljb246bSxjYWxjOnN9PWUscj1lLmZvbnRTaXplU007cmV0dXJuKDAseC5JWCkoZSx7dGFnRm9udFNpemU6cix0YWdMaW5lSGVpZ2h0OigwLEMuYmYpKHMoZS5saW5lSGVpZ2h0U00pLm11bChyKS5lcXVhbCgpKSx0YWdJY29uU2l6ZTpzKG0pLnN1YihzKGEpLm11bCgyKSkuZXF1YWwoKSx0YWdQYWRkaW5nSG9yaXpvbnRhbDo4LHRhZ0JvcmRlcmxlc3NCZzplLmRlZmF1bHRCZ30pfSx1PWU9Pih7ZGVmYXVsdEJnOm5ldyBsLnQoZS5jb2xvckZpbGxRdWF0ZXJuYXJ5KS5vbkJhY2tncm91bmQoZS5jb2xvckJnQ29udGFpbmVyKS50b0hleFN0cmluZygpLGRlZmF1bHRDb2xvcjplLmNvbG9yVGV4dH0pO3ZhciBfPSgwLGQuSSQpKCJUYWciLGU9Pntjb25zdCBhPW8oZSk7cmV0dXJuIEEoYSl9LHUpLGg9ZnVuY3Rpb24oZSxhKXt2YXIgbT17fTtmb3IodmFyIHMgaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxzKSYmYS5pbmRleE9mKHMpPDAmJihtW3NdPWVbc10pO2lmKGUhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgcj0wLHM9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtyPHMubGVuZ3RoO3IrKylhLmluZGV4T2Yoc1tyXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsc1tyXSkmJihtW3Nbcl1dPWVbc1tyXV0pO3JldHVybiBtfSxJPUUuZm9yd2FyZFJlZigoZSxhKT0+e2NvbnN0e3ByZWZpeENsczptLHN0eWxlOnMsY2xhc3NOYW1lOnIsY2hlY2tlZDp5LG9uQ2hhbmdlOlcsb25DbGljazplZX09ZSxHPWgoZSxbInByZWZpeENscyIsInN0eWxlIiwiY2xhc3NOYW1lIiwiY2hlY2tlZCIsIm9uQ2hhbmdlIiwib25DbGljayJdKSx7Z2V0UHJlZml4Q2xzOnJlLHRhZzpRfT1FLnVzZUNvbnRleHQoUC5FXyksRj11ZT0+e1c9PW51bGx8fFcoIXkpLGVlPT1udWxsfHxlZSh1ZSl9LEo9cmUoInRhZyIsbSksW2llLHNlLFldPV8oSiksY2U9SygpKEosYCR7Sn0tY2hlY2thYmxlYCx7W2Ake0p9LWNoZWNrYWJsZS1jaGVja2VkYF06eX0sUT09bnVsbD92b2lkIDA6US5jbGFzc05hbWUscixzZSxZKTtyZXR1cm4gaWUoRS5jcmVhdGVFbGVtZW50KCJzcGFuIixPYmplY3QuYXNzaWduKHt9LEcse3JlZjphLHN0eWxlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxzKSxRPT1udWxsP3ZvaWQgMDpRLnN0eWxlKSxjbGFzc05hbWU6Y2Usb25DbGljazpGfSkpKX0pLHY9big5ODcxOSk7Y29uc3QgbGU9ZT0+KDAsdi5aKShlLChhLG0pPT57bGV0e3RleHRDb2xvcjpzLGxpZ2h0Qm9yZGVyQ29sb3I6cixsaWdodENvbG9yOnksZGFya0NvbG9yOld9PW07cmV0dXJue1tgJHtlLmNvbXBvbmVudENsc30ke2UuY29tcG9uZW50Q2xzfS0ke2F9YF06e2NvbG9yOnMsYmFja2dyb3VuZDp5LGJvcmRlckNvbG9yOnIsIiYtaW52ZXJzZSI6e2NvbG9yOmUuY29sb3JUZXh0TGlnaHRTb2xpZCxiYWNrZ3JvdW5kOlcsYm9yZGVyQ29sb3I6V30sW2AmJHtlLmNvbXBvbmVudENsc30tYm9yZGVybGVzc2BdOntib3JkZXJDb2xvcjoidHJhbnNwYXJlbnQifX19fSk7dmFyIG9lPSgwLGQuYmspKFsiVGFnIiwicHJlc2V0Il0sZT0+e2NvbnN0IGE9byhlKTtyZXR1cm4gbGUoYSl9LHUpO2Z1bmN0aW9uIGYoZSl7cmV0dXJuIHR5cGVvZiBlIT0ic3RyaW5nIj9lOmUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrZS5zbGljZSgxKX1jb25zdCBiPShlLGEsbSk9Pntjb25zdCBzPWYobSk7cmV0dXJue1tgJHtlLmNvbXBvbmVudENsc30ke2UuY29tcG9uZW50Q2xzfS0ke2F9YF06e2NvbG9yOmVbYGNvbG9yJHttfWBdLGJhY2tncm91bmQ6ZVtgY29sb3Ike3N9QmdgXSxib3JkZXJDb2xvcjplW2Bjb2xvciR7c31Cb3JkZXJgXSxbYCYke2UuY29tcG9uZW50Q2xzfS1ib3JkZXJsZXNzYF06e2JvcmRlckNvbG9yOiJ0cmFuc3BhcmVudCJ9fX19O3ZhciBSPSgwLGQuYmspKFsiVGFnIiwic3RhdHVzIl0sZT0+e2NvbnN0IGE9byhlKTtyZXR1cm5bYihhLCJzdWNjZXNzIiwiU3VjY2VzcyIpLGIoYSwicHJvY2Vzc2luZyIsIkluZm8iKSxiKGEsImVycm9yIiwiRXJyb3IiKSxiKGEsIndhcm5pbmciLCJXYXJuaW5nIildfSx1KSx6PWZ1bmN0aW9uKGUsYSl7dmFyIG09e307Zm9yKHZhciBzIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscykmJmEuaW5kZXhPZihzKTwwJiYobVtzXT1lW3NdKTtpZihlIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIHI9MCxzPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7cjxzLmxlbmd0aDtyKyspYS5pbmRleE9mKHNbcl0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLHNbcl0pJiYobVtzW3JdXT1lW3Nbcl1dKTtyZXR1cm4gbX07Y29uc3Qgaz1FLmZvcndhcmRSZWYoKGUsYSk9Pntjb25zdHtwcmVmaXhDbHM6bSxjbGFzc05hbWU6cyxyb290Q2xhc3NOYW1lOnIsc3R5bGU6eSxjaGlsZHJlbjpXLGljb246ZWUsY29sb3I6RyxvbkNsb3NlOnJlLGJvcmRlcmVkOlE9ITAsdmlzaWJsZTpGfT1lLEo9eihlLFsicHJlZml4Q2xzIiwiY2xhc3NOYW1lIiwicm9vdENsYXNzTmFtZSIsInN0eWxlIiwiY2hpbGRyZW4iLCJpY29uIiwiY29sb3IiLCJvbkNsb3NlIiwiYm9yZGVyZWQiLCJ2aXNpYmxlIl0pLHtnZXRQcmVmaXhDbHM6aWUsZGlyZWN0aW9uOnNlLHRhZzpZfT1FLnVzZUNvbnRleHQoUC5FXyksW2NlLHVlXT1FLnVzZVN0YXRlKCEwKSxtZT0oMCx0LlopKEosWyJjbG9zZUljb24iLCJjbG9zYWJsZSJdKTtFLnVzZUVmZmVjdCgoKT0+e0YhPT12b2lkIDAmJnVlKEYpfSxbRl0pO2NvbnN0IHBlPSgwLFMubzIpKEcpLGZlPSgwLFMueVQpKEcpLGRlPXBlfHxmZSxoZT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe2JhY2tncm91bmRDb2xvcjpHJiYhZGU/Rzp2b2lkIDB9LFk9PW51bGw/dm9pZCAwOlkuc3R5bGUpLHkpLEg9aWUoInRhZyIsbSksW2dlLHRlLGJlXT1fKEgpLHZlPUsoKShILFk9PW51bGw/dm9pZCAwOlkuY2xhc3NOYW1lLHtbYCR7SH0tJHtHfWBdOmRlLFtgJHtIfS1oYXMtY29sb3JgXTpHJiYhZGUsW2Ake0h9LWhpZGRlbmBdOiFjZSxbYCR7SH0tcnRsYF06c2U9PT0icnRsIixbYCR7SH0tYm9yZGVybGVzc2BdOiFRfSxzLHIsdGUsYmUpLCQ9Tj0+e04uc3RvcFByb3BhZ2F0aW9uKCkscmU9PW51bGx8fHJlKE4pLCFOLmRlZmF1bHRQcmV2ZW50ZWQmJnVlKCExKX0sWyxaXT0oMCxULlopKCgwLFQudykoZSksKDAsVC53KShZKSx7Y2xvc2FibGU6ITEsY2xvc2VJY29uUmVuZGVyOk49Pntjb25zdCBWPUUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpgJHtIfS1jbG9zZS1pY29uYCxvbkNsaWNrOiR9LE4pO3JldHVybigwLGcud20pKE4sVixVPT4oe29uQ2xpY2s6YWU9Pnt2YXIgdzsodz1VPT1udWxsP3ZvaWQgMDpVLm9uQ2xpY2spPT09bnVsbHx8dz09PXZvaWQgMHx8dy5jYWxsKFUsYWUpLCQoYWUpfSxjbGFzc05hbWU6SygpKFU9PW51bGw/dm9pZCAwOlUuY2xhc3NOYW1lLGAke0h9LWNsb3NlLWljb25gKX0pKX19KSxMPXR5cGVvZiBKLm9uQ2xpY2s9PSJmdW5jdGlvbiJ8fFcmJlcudHlwZT09PSJhIixNPWVlfHxudWxsLHE9TT9FLmNyZWF0ZUVsZW1lbnQoRS5GcmFnbWVudCxudWxsLE0sVyYmRS5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLFcpKTpXLGo9RS5jcmVhdGVFbGVtZW50KCJzcGFuIixPYmplY3QuYXNzaWduKHt9LG1lLHtyZWY6YSxjbGFzc05hbWU6dmUsc3R5bGU6aGV9KSxxLFoscGUmJkUuY3JlYXRlRWxlbWVudChvZSx7a2V5OiJwcmVzZXQiLHByZWZpeENsczpIfSksZmUmJkUuY3JlYXRlRWxlbWVudChSLHtrZXk6InN0YXR1cyIscHJlZml4Q2xzOkh9KSk7cmV0dXJuIGdlKEw/RS5jcmVhdGVFbGVtZW50KGMuWix7Y29tcG9uZW50OiJUYWcifSxqKTpqKX0pO2suQ2hlY2thYmxlVGFnPUk7dmFyIFg9a319XSk7CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzc5MDMuZTZjMjExMDEuY2h1bmsuY3NzIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy83OTAzLmU2YzIxMTAxLmNodW5rLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NTU1ZGY1Ci0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy83OTAzLmU2YzIxMTAxLmNodW5rLmNzcwpAQCAtMCwwICsxIEBACisuaWNvblBpY1NlYXJjaGVyX19faEpnNER7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luOjAgOHB4fS5pY29uUGljU2VhcmNoZXJfX19oSmc0RCAuaWNvbi1waWMtYnRuX19fTDR2MVN7Y29sb3I6IzAwMDAwMDczO2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YWxsIC4zc30uaWNvblBpY1NlYXJjaGVyX19faEpnNEQgLmljb24tcGljLWJ0bl9fX0w0djFTOmhvdmVye2NvbG9yOiMwMDAwMDBkOX0uaWNvbi1waWMtcHJldmlld19fX2lsU0Roe3dpZHRoOjMwcHg7aGVpZ2h0OjMwcHg7bWFyZ2luLXRvcDoxMHB4O3BhZGRpbmc6OHB4O3RleHQtYWxpZ246Y2VudGVyO2JvcmRlcjoxcHggc29saWQgI2Q5ZDlkOTtib3JkZXItcmFkaXVzOjRweH0uaWNvbi1waWMtcHJldmlld19fX2lsU0RoPmltZ3ttYXgtd2lkdGg6NTBweDttYXgtaGVpZ2h0OjUwcHh9Lmljb24tcGljLXNlYXJjaC1yZXN1bHRfX19nSUdDaHttaW4taGVpZ2h0OjUwcHg7cGFkZGluZzowIDEwcHh9Lmljb24tcGljLXNlYXJjaC1yZXN1bHRfX19nSUdDaD4ucmVzdWx0LXRpcF9fX0x6Um1pe3BhZGRpbmc6MTBweCAwO2NvbG9yOiMwMDAwMDA3M30uaWNvbi1waWMtc2VhcmNoLXJlc3VsdF9fX2dJR0NoPnRhYmxle3dpZHRoOjEwMCV9Lmljb24tcGljLXNlYXJjaC1yZXN1bHRfX19nSUdDaD50YWJsZSAuY29sLWljb25fX19CU1laZ3t3aWR0aDo4MHB4O3BhZGRpbmc6MTBweCAwfS5pY29uLXBpYy1zZWFyY2gtcmVzdWx0X19fZ0lHQ2g+dGFibGUgLmNvbC1pY29uX19fQlNZWmc+LmFudGljb25fX19xTF9obXtmb250LXNpemU6MzBweH0uaWNvbi1waWMtc2VhcmNoLXJlc3VsdF9fX2dJR0NoPnRhYmxlIC5jb2wtaWNvbl9fX0JTWVpnPi5hbnRpY29uX19fcUxfaG0gOmhvdmVye2NvbG9yOiM0MGE5ZmZ9dWwuYW50aWNvbnNMaXN0X19fSE1pX2N7bWFyZ2luOjJweCAwO292ZXJmbG93OmhpZGRlbjtkaXJlY3Rpb246bHRyO2xpc3Qtc3R5bGU6bm9uZX11bC5hbnRpY29uc0xpc3RfX19ITWlfYyBsaXtwb3NpdGlvbjpyZWxhdGl2ZTtmbG9hdDpsZWZ0O3dpZHRoOjQ4cHg7aGVpZ2h0OjQ4cHg7bWFyZ2luOjNweCAwO3BhZGRpbmc6MnB4IDAgMDtvdmVyZmxvdzpoaWRkZW47Y29sb3I6IzU1NTt0ZXh0LWFsaWduOmNlbnRlcjtsaXN0LXN0eWxlOm5vbmU7YmFja2dyb3VuZC1jb2xvcjppbmhlcml0O2JvcmRlci1yYWRpdXM6NHB4O2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246Y29sb3IgLjNzIGVhc2UtaW4tb3V0LGJhY2tncm91bmQtY29sb3IgLjNzIGVhc2UtaW4tb3V0fS5ydGxfX19FemkxMSB1bC5hbnRpY29uc0xpc3RfX19ITWlfYyBsaXttYXJnaW46M3B4IDA7cGFkZGluZzoycHggMCAwfXVsLmFudGljb25zTGlzdF9fX0hNaV9jIGxpIC5hbnRpY29uX19fcUxfaG17bWFyZ2luOjRweCAwIDJweDtmb250LXNpemU6MjRweDt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuM3MgZWFzZS1pbi1vdXQ7d2lsbC1jaGFuZ2U6dHJhbnNmb3JtfXVsLmFudGljb25zTGlzdF9fX0hNaV9jIGxpIC5hbnRpY29uQ2xhc3NfX19FaTlkbXtkaXNwbGF5OmJsb2NrO2ZvbnQtZmFtaWx5Okx1Y2lkYSBDb25zb2xlLENvbnNvbGFzLE1vbmFjbyxBbmRhbGUgTW9ubyxVYnVudHUgTW9ubyxtb25vc3BhY2U7d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtYWxpZ246Y2VudGVyO3RyYW5zZm9ybTpzY2FsZSguODMpfXVsLmFudGljb25zTGlzdF9fX0hNaV9jIGxpIC5hbnRpY29uQ2xhc3NfX19FaTlkbSAuYW50LWJhZGdlX19fWnY1aWd7dHJhbnNpdGlvbjpjb2xvciAuM3MgZWFzZS1pbi1vdXR9dWwuYW50aWNvbnNMaXN0X19fSE1pX2MgbGk6aG92ZXJ7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMxODkwZmZ9dWwuYW50aWNvbnNMaXN0X19fSE1pX2MgbGk6aG92ZXIgLmFudGljb25fX19xTF9obXt0cmFuc2Zvcm06c2NhbGUoMS40KX11bC5hbnRpY29uc0xpc3RfX19ITWlfYyBsaTpob3ZlciAuYW50LWJhZGdlX19fWnY1aWd7Y29sb3I6I2ZmZn11bC5hbnRpY29uc0xpc3RfX19ITWlfYyBsaS5Ud29Ub25lX19fRVB5QmE6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojOGVjYWZlfXVsLmFudGljb25zTGlzdF9fX0hNaV9jIGxpLmNvcGllZF9fX05HZF9hOmhvdmVye2NvbG9yOiNmZmYzfXVsLmFudGljb25zTGlzdF9fX0hNaV9jIGxpLmNvcGllZF9fX05HZF9hOmFmdGVye3RvcDotMnB4O29wYWNpdHk6MX0uY29waWVkLWNvZGVfX193Vzh2RHtwYWRkaW5nOjJweCA0cHg7Zm9udC1zaXplOjEycHg7YmFja2dyb3VuZDojZjVmNWY1O2JvcmRlci1yYWRpdXM6MnB4fS5pY29uUGljU2VhcmNoZXJ7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luOjAgOHB4fS5pY29uUGljU2VhcmNoZXIgLmljb24tcGljLWJ0bntjb2xvcjojMDAwMDAwNzM7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjphbGwgLjNzfS5pY29uUGljU2VhcmNoZXIgLmljb24tcGljLWJ0bjpob3Zlcntjb2xvcjojMDAwMDAwZDl9Lmljb24tcGljLXByZXZpZXd7d2lkdGg6MzBweDtoZWlnaHQ6MzBweDttYXJnaW4tdG9wOjEwcHg7cGFkZGluZzo4cHg7dGV4dC1hbGlnbjpjZW50ZXI7Ym9yZGVyOjFweCBzb2xpZCAjZDlkOWQ5O2JvcmRlci1yYWRpdXM6NHB4fS5pY29uLXBpYy1wcmV2aWV3PmltZ3ttYXgtd2lkdGg6NTBweDttYXgtaGVpZ2h0OjUwcHh9Lmljb24tcGljLXNlYXJjaC1yZXN1bHR7bWluLWhlaWdodDo1MHB4O3BhZGRpbmc6MCAxMHB4fS5pY29uLXBpYy1zZWFyY2gtcmVzdWx0Pi5yZXN1bHQtdGlwe3BhZGRpbmc6MTBweCAwO2NvbG9yOiMwMDAwMDA3M30uaWNvbi1waWMtc2VhcmNoLXJlc3VsdD50YWJsZXt3aWR0aDoxMDAlfS5pY29uLXBpYy1zZWFyY2gtcmVzdWx0PnRhYmxlIC5jb2wtaWNvbnt3aWR0aDo4MHB4O3BhZGRpbmc6MTBweCAwfS5pY29uLXBpYy1zZWFyY2gtcmVzdWx0PnRhYmxlIC5jb2wtaWNvbj4uYW50aWNvbntmb250LXNpemU6MzBweH0uaWNvbi1waWMtc2VhcmNoLXJlc3VsdD50YWJsZSAuY29sLWljb24+LmFudGljb24gOmhvdmVye2NvbG9yOiM0MGE5ZmZ9dWwuYW50aWNvbnNMaXN0e21hcmdpbjoycHggMDtvdmVyZmxvdzpoaWRkZW47ZGlyZWN0aW9uOmx0cjtsaXN0LXN0eWxlOm5vbmV9dWwuYW50aWNvbnNMaXN0IGxpe3Bvc2l0aW9uOnJlbGF0aXZlO2Zsb2F0OmxlZnQ7d2lkdGg6NDhweDtoZWlnaHQ6NDhweDttYXJnaW46M3B4IDA7cGFkZGluZzoycHggMCAwO292ZXJmbG93OmhpZGRlbjtjb2xvcjojNTU1O3RleHQtYWxpZ246Y2VudGVyO2xpc3Qtc3R5bGU6bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOmluaGVyaXQ7Ym9yZGVyLXJhZGl1czo0cHg7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjpjb2xvciAuM3MgZWFzZS1pbi1vdXQsYmFja2dyb3VuZC1jb2xvciAuM3MgZWFzZS1pbi1vdXR9LnJ0bCB1bC5hbnRpY29uc0xpc3QgbGl7bWFyZ2luOjNweCAwO3BhZGRpbmc6MnB4IDAgMH11bC5hbnRpY29uc0xpc3QgbGkgLmFudGljb257bWFyZ2luOjRweCAwIDJweDtmb250LXNpemU6MjRweDt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuM3MgZWFzZS1pbi1vdXQ7d2lsbC1jaGFuZ2U6dHJhbnNmb3JtfXVsLmFudGljb25zTGlzdCBsaSAuYW50aWNvbkNsYXNze2Rpc3BsYXk6YmxvY2s7Zm9udC1mYW1pbHk6THVjaWRhIENvbnNvbGUsQ29uc29sYXMsTW9uYWNvLEFuZGFsZSBNb25vLFVidW50dSBNb25vLG1vbm9zcGFjZTt3aGl0ZS1zcGFjZTpub3dyYXA7dGV4dC1hbGlnbjpjZW50ZXI7dHJhbnNmb3JtOnNjYWxlKC44Myl9dWwuYW50aWNvbnNMaXN0IGxpIC5hbnRpY29uQ2xhc3MgLmFudC1iYWRnZXt0cmFuc2l0aW9uOmNvbG9yIC4zcyBlYXNlLWluLW91dH11bC5hbnRpY29uc0xpc3QgbGk6aG92ZXJ7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMxODkwZmZ9dWwuYW50aWNvbnNMaXN0IGxpOmhvdmVyIC5hbnRpY29ue3RyYW5zZm9ybTpzY2FsZSgxLjQpfXVsLmFudGljb25zTGlzdCBsaTpob3ZlciAuYW50LWJhZGdle2NvbG9yOiNmZmZ9dWwuYW50aWNvbnNMaXN0IGxpLlR3b1RvbmU6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojOGVjYWZlfXVsLmFudGljb25zTGlzdCBsaS5jb3BpZWQ6aG92ZXJ7Y29sb3I6I2ZmZjN9dWwuYW50aWNvbnNMaXN0IGxpLmNvcGllZDphZnRlcnt0b3A6LTJweDtvcGFjaXR5OjF9LmNvcGllZC1jb2Rle3BhZGRpbmc6MnB4IDRweDtmb250LXNpemU6MTJweDtiYWNrZ3JvdW5kOiNmNWY1ZjU7Ym9yZGVyLXJhZGl1czoycHh9CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzgyMDAuNmM0MDVhZTguYXN5bmMuanMgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzgyMDAuNmM0MDVhZTguYXN5bmMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjUwMzdmZAotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvODIwMC42YzQwNWFlOC5hc3luYy5qcwpAQCAtMCwwICsxIEBACisidXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W10pLnB1c2goW1s4MjAwXSx7OTMwNTg6ZnVuY3Rpb24oYWUsQSxhKXthLnIoQSk7dmFyIE49YSg2NzI5NCksRD1hKDE3Nzg4KSxFPWEoMjY0MTIpLHI9YSg3Njc3MiksQj1hKDYxMzE0KSxuPWEoODU4OTMpLFU9ZnVuY3Rpb24oZil7dmFyIG8sdD1mLnZhbHVlcyxqPWYuYnVzaW5lc3NUeXBlT3B0aW9ucyxSPWYub3BlcmF0b3JUeXBlT3B0aW9ucyxLPWYuc3RhdHVzT3B0aW9ucyxTPSgwLHIudXNlSW50bCkoKSx3PWZ1bmN0aW9uKCl7Y29uc29sZS5sb2coImhhbmRsZSBvayIpfSxaPWZ1bmN0aW9uKCl7Zi5vbkNhbmNlbCgpfTtyZXR1cm4oMCxuLmpzeCkoRC5aLHt3aWR0aDo2NDAsdGl0bGU6Uy5mb3JtYXRNZXNzYWdlKHtpZDoibW9uaXRvci5vcGVybG9nLnRpdGxlIixkZWZhdWx0TWVzc2FnZToiXHU3RjE2XHU4RjkxXHU2NENEXHU0RjVDXHU2NUU1XHU1RkQ3XHU4QkIwXHU1RjU1In0pLG9wZW46Zi5vcGVuLGRlc3Ryb3lPbkNsb3NlOiEwLG9uT2s6dyxvbkNhbmNlbDpaLGNoaWxkcmVuOigwLG4uanN4cykoRS5aLHtjb2x1bW46MjQsY2hpbGRyZW46WygwLG4uanN4KShFLlouSXRlbSx7c3BhbjoxMixsYWJlbDooMCxuLmpzeCkoci5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoibW9uaXRvci5vcGVybG9nLm1vZHVsZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjRDRFx1NEY1Q1x1NkEyMVx1NTc1NyJ9KSxjaGlsZHJlbjoiIi5jb25jYXQodC50aXRsZSwiLyIpLmNvbmNhdCgoMCxCLm4pKGosdC5idXNpbmVzc1R5cGUpKX0pLCgwLG4uanN4KShFLlouSXRlbSx7c3BhbjoxMixsYWJlbDooMCxuLmpzeCkoci5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoibW9uaXRvci5vcGVybG9nLnJlcXVlc3RfbWV0aG9kIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU2QzQyXHU2NUI5XHU1RjBGIn0pLGNoaWxkcmVuOnQucmVxdWVzdE1ldGhvZH0pLCgwLG4uanN4KShFLlouSXRlbSx7c3BhbjoxMixsYWJlbDooMCxuLmpzeCkoci5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoibW9uaXRvci5vcGVybG9nLm9wZXJfbmFtZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjRDRFx1NEY1Q1x1NEVCQVx1NTQ1OCJ9KSxjaGlsZHJlbjoiIi5jb25jYXQodC5vcGVyTmFtZSwiLyIpLmNvbmNhdCh0Lm9wZXJJcCl9KSwoMCxuLmpzeCkoRS5aLkl0ZW0se3NwYW46MTIsbGFiZWw6KDAsbi5qc3gpKHIuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3Iub3BlcmxvZy5vcGVyYXRvcl90eXBlIixkZWZhdWx0TWVzc2FnZToiXHU2NENEXHU0RjVDXHU3QzdCXHU1MjJCIn0pLGNoaWxkcmVuOigwLEIubikoUix0Lm9wZXJhdG9yVHlwZSl9KSwoMCxuLmpzeCkoRS5aLkl0ZW0se3NwYW46MjQsbGFiZWw6KDAsbi5qc3gpKHIuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3Iub3BlcmxvZy5tZXRob2QiLGRlZmF1bHRNZXNzYWdlOiJcdTY1QjlcdTZDRDVcdTU0MERcdTc5RjAifSksY2hpbGRyZW46dC5tZXRob2R9KSwoMCxuLmpzeCkoRS5aLkl0ZW0se3NwYW46MjQsbGFiZWw6KDAsbi5qc3gpKHIuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3Iub3BlcmxvZy5vcGVyX3VybCIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1NkM0MlVSTCJ9KSxjaGlsZHJlbjp0Lm9wZXJVcmx9KSwoMCxuLmpzeCkoRS5aLkl0ZW0se3NwYW46MjQsbGFiZWw6KDAsbi5qc3gpKHIuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3Iub3BlcmxvZy5vcGVyX3BhcmFtIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU2QzQyXHU1M0MyXHU2NTcwIn0pLGNoaWxkcmVuOnQub3BlclBhcmFtfSksKDAsbi5qc3gpKEUuWi5JdGVtLHtzcGFuOjI0LGxhYmVsOigwLG4uanN4KShyLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJtb25pdG9yLm9wZXJsb2cuanNvbl9yZXN1bHQiLGRlZmF1bHRNZXNzYWdlOiJcdThGRDRcdTU2REVcdTUzQzJcdTY1NzAifSksY2hpbGRyZW46dC5qc29uUmVzdWx0fSksKDAsbi5qc3gpKEUuWi5JdGVtLHtzcGFuOjI0LGxhYmVsOigwLG4uanN4KShyLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJtb25pdG9yLm9wZXJsb2cuZXJyb3JfbXNnIixkZWZhdWx0TWVzc2FnZToiXHU5NTE5XHU4QkVGXHU2RDg4XHU2MDZGIn0pLGNoaWxkcmVuOnQuZXJyb3JNc2d9KSwoMCxuLmpzeCkoRS5aLkl0ZW0se3NwYW46MTIsbGFiZWw6KDAsbi5qc3gpKHIuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3Iub3BlcmxvZy5zdGF0dXMiLGRlZmF1bHRNZXNzYWdlOiJcdTY0Q0RcdTRGNUNcdTcyQjZcdTYwMDEifSksY2hpbGRyZW46KDAsQi5uKShLLHQuc3RhdHVzKX0pLCgwLG4uanN4KShFLlouSXRlbSx7c3BhbjoxMixsYWJlbDooMCxuLmpzeCkoci5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoibW9uaXRvci5vcGVybG9nLm9wZXJfdGltZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjRDRFx1NEY1Q1x1NjVGNlx1OTVGNCJ9KSxjaGlsZHJlbjoobz10Lm9wZXJUaW1lKT09PW51bGx8fG89PT12b2lkIDA/dm9pZCAwOm8udG9TdHJpbmcoKX0pXX0pfSl9O0EuZGVmYXVsdD1VfSwzODIwMDpmdW5jdGlvbihhZSxBLGEpe2EucihBKTt2YXIgTj1hKDU1NzQpLEQ9YS5uKE4pLEU9YSgxNTAwOSkscj1hLm4oRSksQj1hKDk3ODU3KSxuPWEubihCKSxVPWEoOTkyODkpLHY9YS5uKFUpLGY9YSg2NzI5NCksbz1hKDc2NzcyKSx0PWEoMjQ1Myksaj1hKDgzNjIyKSxSPWEoMTc3ODgpLEs9YSg2MTEwKSxTPWEoNjUzODUpLHc9YSgyMjM2KSxaPWEoMjQ5NjkpLHg9YSgxMTQ3NSksVj1hKDQ4Njg5KSx5PWEoMzI1OTcpLHRlPWEoOTMwNTgpLCQ9YSg5Mjk4Miksaz1hKDk0MTYyKSxzPWEoODU4OTMpLG5lPWZ1bmN0aW9uKCl7dmFyIEM9digpKHIoKSgpLm1hcmsoZnVuY3Rpb24gaChkKXt2YXIgXyx1O3JldHVybiByKCkoKS53cmFwKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOnJldHVybiBfPXQuWlAubG9hZGluZygiXHU2QjYzXHU1NzI4XHU2REZCXHU1MkEwIiksZS5wcmV2PTEsZS5uZXh0PTQsKDAseS56ZykobigpKHt9LGQpKTtjYXNlIDQ6cmV0dXJuIHU9ZS5zZW50LF8oKSx1LmNvZGU9PT0yMDA/dC5aUC5zdWNjZXNzKCJcdTZERkJcdTUyQTBcdTYyMTBcdTUyOUYiKTp0LlpQLmVycm9yKHUubXNnKSxlLmFicnVwdCgicmV0dXJuIiwhMCk7Y2FzZSAxMDpyZXR1cm4gZS5wcmV2PTEwLGUudDA9ZS5jYXRjaCgxKSxfKCksdC5aUC5lcnJvcigiXHU2REZCXHU1MkEwXHU1OTMxXHU4RDI1XHU4QkY3XHU5MUNEXHU4QkQ1XHVGRjAxIiksZS5hYnJ1cHQoInJldHVybiIsITEpO2Nhc2UgMTU6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19LGgsbnVsbCxbWzEsMTBdXSl9KSk7cmV0dXJuIGZ1bmN0aW9uKGQpe3JldHVybiBDLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksdWU9ZnVuY3Rpb24oKXt2YXIgQz12KCkocigpKCkubWFyayhmdW5jdGlvbiBoKGQpe3ZhciBfLHU7cmV0dXJuIHIoKSgpLndyYXAoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIF89dC5aUC5sb2FkaW5nKCJcdTZCNjNcdTU3MjhcdTY2RjRcdTY1QjAiKSxlLnByZXY9MSxlLm5leHQ9NCwoMCx5LkhNKShkKTtjYXNlIDQ6cmV0dXJuIHU9ZS5zZW50LF8oKSx1LmNvZGU9PT0yMDA/dC5aUC5zdWNjZXNzKCJcdTY2RjRcdTY1QjBcdTYyMTBcdTUyOUYiKTp0LlpQLmVycm9yKHUubXNnKSxlLmFicnVwdCgicmV0dXJuIiwhMCk7Y2FzZSAxMDpyZXR1cm4gZS5wcmV2PTEwLGUudDA9ZS5jYXRjaCgxKSxfKCksdC5aUC5lcnJvcigiXHU5MTREXHU3RjZFXHU1OTMxXHU4RDI1XHU4QkY3XHU5MUNEXHU4QkQ1XHVGRjAxIiksZS5hYnJ1cHQoInJldHVybiIsITEpO2Nhc2UgMTU6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19LGgsbnVsbCxbWzEsMTBdXSl9KSk7cmV0dXJuIGZ1bmN0aW9uKGQpe3JldHVybiBDLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksSj1mdW5jdGlvbigpe3ZhciBDPXYoKShyKCkoKS5tYXJrKGZ1bmN0aW9uIGgoZCl7dmFyIF8sdTtyZXR1cm4gcigpKCkud3JhcChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDppZihfPXQuWlAubG9hZGluZygiXHU2QjYzXHU1NzI4XHU1MjIwXHU5NjY0IiksZCl7ZS5uZXh0PTM7YnJlYWt9cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLCEwKTtjYXNlIDM6cmV0dXJuIGUucHJldj0zLGUubmV4dD02LCgwLHkuUm8pKGQubWFwKGZ1bmN0aW9uKEgpe3JldHVybiBILm9wZXJJZH0pLmpvaW4oIiwiKSk7Y2FzZSA2OnJldHVybiB1PWUuc2VudCxfKCksdS5jb2RlPT09MjAwP3QuWlAuc3VjY2VzcygiXHU1MjIwXHU5NjY0XHU2MjEwXHU1MjlGXHVGRjBDXHU1MzczXHU1QzA2XHU1MjM3XHU2NUIwIik6dC5aUC5lcnJvcih1Lm1zZyksZS5hYnJ1cHQoInJldHVybiIsITApO2Nhc2UgMTI6cmV0dXJuIGUucHJldj0xMixlLnQwPWUuY2F0Y2goMyksXygpLHQuWlAuZXJyb3IoIlx1NTIyMFx1OTY2NFx1NTkzMVx1OEQyNVx1RkYwQ1x1OEJGN1x1OTFDRFx1OEJENSIpLGUuYWJydXB0KCJyZXR1cm4iLCExKTtjYXNlIDE3OmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSxoLG51bGwsW1szLDEyXV0pfSkpO3JldHVybiBmdW5jdGlvbihkKXtyZXR1cm4gQy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLGxlPWZ1bmN0aW9uKCl7dmFyIEM9digpKHIoKSgpLm1hcmsoZnVuY3Rpb24gaCgpe3ZhciBkLF87cmV0dXJuIHIoKSgpLndyYXAoZnVuY3Rpb24ocCl7Zm9yKDs7KXN3aXRjaChwLnByZXY9cC5uZXh0KXtjYXNlIDA6cmV0dXJuIGQ9dC5aUC5sb2FkaW5nKCJcdTZCNjNcdTU3MjhcdTZFMDVcdTdBN0EiKSxwLnByZXY9MSxwLm5leHQ9NCwoMCx5LlhlKSgpO2Nhc2UgNDpyZXR1cm4gXz1wLnNlbnQsZCgpLF8uY29kZT09PTIwMD90LlpQLnN1Y2Nlc3MoIlx1NkUwNVx1N0E3QVx1NjIxMFx1NTI5Rlx1RkYwQ1x1NTM3M1x1NUMwNlx1NTIzN1x1NjVCMCIpOnQuWlAuZXJyb3IoXy5tc2cpLHAuYWJydXB0KCJyZXR1cm4iLCEwKTtjYXNlIDEwOnJldHVybiBwLnByZXY9MTAscC50MD1wLmNhdGNoKDEpLGQoKSx0LlpQLmVycm9yKCJcdTZFMDVcdTdBN0FcdTU5MzFcdThEMjVcdUZGMENcdThCRjdcdTkxQ0RcdThCRDUiKSxwLmFicnVwdCgicmV0dXJuIiwhMSk7Y2FzZSAxNTpjYXNlImVuZCI6cmV0dXJuIHAuc3RvcCgpfX0saCxudWxsLFtbMSwxMF1dKX0pKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gQy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLG9lPWZ1bmN0aW9uKCl7dmFyIEM9digpKHIoKSgpLm1hcmsoZnVuY3Rpb24gaCgpe3ZhciBkO3JldHVybiByKCkoKS53cmFwKGZ1bmN0aW9uKHUpe2Zvcig7Oylzd2l0Y2godS5wcmV2PXUubmV4dCl7Y2FzZSAwOnJldHVybiBkPXQuWlAubG9hZGluZygiXHU2QjYzXHU1NzI4XHU1QkZDXHU1MUZBIiksdS5wcmV2PTEsdS5uZXh0PTQsKDAseS5HNikoKTtjYXNlIDQ6cmV0dXJuIGQoKSx0LlpQLnN1Y2Nlc3MoIlx1NUJGQ1x1NTFGQVx1NjIxMFx1NTI5RiIpLHUuYWJydXB0KCJyZXR1cm4iLCEwKTtjYXNlIDk6cmV0dXJuIHUucHJldj05LHUudDA9dS5jYXRjaCgxKSxkKCksdC5aUC5lcnJvcigiXHU1QkZDXHU1MUZBXHU1OTMxXHU4RDI1XHVGRjBDXHU4QkY3XHU5MUNEXHU4QkQ1IiksdS5hYnJ1cHQoInJldHVybiIsITEpO2Nhc2UgMTQ6Y2FzZSJlbmQiOnJldHVybiB1LnN0b3AoKX19LGgsbnVsbCxbWzEsOV1dKX0pKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gQy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLGllPWZ1bmN0aW9uKCl7dmFyIGg9KDAsZi51c2VSZWYpKCksZD0oMCxmLnVzZVN0YXRlKSghMSksXz1EKCkoZCwyKSx1PV9bMF0scD1fWzFdLGU9KDAsZi51c2VSZWYpKCksSD0oMCxmLnVzZVN0YXRlKSgpLFE9RCgpKEgsMiksZGU9UVswXSxXPVFbMV0sX2U9KDAsZi51c2VTdGF0ZSkoW10pLFk9RCgpKF9lLDIpLE89WVswXSxMPVlbMV0scGU9KDAsZi51c2VTdGF0ZSkoW10pLHE9RCgpKHBlLDIpLFg9cVswXSxjZT1xWzFdLG1lPSgwLGYudXNlU3RhdGUpKFtdKSxlZT1EKCkobWUsMiksej1lZVswXSxnZT1lZVsxXSxmZT0oMCxmLnVzZVN0YXRlKShbXSkscmU9RCgpKGZlLDIpLEc9cmVbMF0saGU9cmVbMV0sRj0oMCxvLnVzZUFjY2VzcykoKSx2ZT0oMCxvLnVzZUludGwpKCk7KDAsZi51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7KDAsJC5wWCkoInN5c19vcGVyX3R5cGUiLCEwKS50aGVuKGZ1bmN0aW9uKG0pe2NlKG0pfSksKDAsJC5wWCkoInN5c19vcGVyX3R5cGUiLCEwKS50aGVuKGZ1bmN0aW9uKG0pe2dlKG0pfSksKDAsJC5wWCkoInN5c19jb21tb25fc3RhdHVzIiwhMCkudGhlbihmdW5jdGlvbihtKXtoZShtKX0pfSxbXSk7dmFyIE1lPVt7dGl0bGU6KDAscy5qc3gpKG8uRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3Iub3BlcmxvZy5vcGVyX2lkIixkZWZhdWx0TWVzc2FnZToiXHU2NUU1XHU1RkQ3XHU0RTNCXHU5NTJFIn0pLGRhdGFJbmRleDoib3BlcklkIix2YWx1ZVR5cGU6InRleHQiLGhpZGVJblNlYXJjaDohMH0se3RpdGxlOigwLHMuanN4KShvLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJtb25pdG9yLm9wZXJsb2cudGl0bGUiLGRlZmF1bHRNZXNzYWdlOiJcdTY0Q0RcdTRGNUNcdTZBMjFcdTU3NTcifSksZGF0YUluZGV4OiJ0aXRsZSIsdmFsdWVUeXBlOiJ0ZXh0In0se3RpdGxlOigwLHMuanN4KShvLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJtb25pdG9yLm9wZXJsb2cuYnVzaW5lc3NfdHlwZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NEUxQVx1NTJBMVx1N0M3Qlx1NTc4QiJ9KSxkYXRhSW5kZXg6ImJ1c2luZXNzVHlwZSIsdmFsdWVUeXBlOiJzZWxlY3QiLHZhbHVlRW51bTpYLHJlbmRlcjpmdW5jdGlvbihjLGkpe3JldHVybigwLHMuanN4KShrLlose2VudW1zOlgsdmFsdWU6aS5idXNpbmVzc1R5cGV9KX19LHt0aXRsZTooMCxzLmpzeCkoby5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoibW9uaXRvci5vcGVybG9nLnJlcXVlc3RfbWV0aG9kIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU2QzQyXHU2NUI5XHU1RjBGIn0pLGRhdGFJbmRleDoicmVxdWVzdE1ldGhvZCIsdmFsdWVUeXBlOiJ0ZXh0In0se3RpdGxlOigwLHMuanN4KShvLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJtb25pdG9yLm9wZXJsb2cub3BlcmF0b3JfdHlwZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjRDRFx1NEY1Q1x1N0M3Qlx1NTIyQiJ9KSxkYXRhSW5kZXg6Im9wZXJhdG9yVHlwZSIsdmFsdWVUeXBlOiJzZWxlY3QiLHZhbHVlRW51bTp6LHJlbmRlcjpmdW5jdGlvbihjLGkpe3JldHVybigwLHMuanN4KShrLlose2VudW1zOnosdmFsdWU6aS5vcGVyYXRvclR5cGV9KX19LHt0aXRsZTooMCxzLmpzeCkoby5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoibW9uaXRvci5vcGVybG9nLm9wZXJfbmFtZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjRDRFx1NEY1Q1x1NEVCQVx1NTQ1OCJ9KSxkYXRhSW5kZXg6Im9wZXJOYW1lIix2YWx1ZVR5cGU6InRleHQifSx7dGl0bGU6KDAscy5qc3gpKG8uRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3Iub3BlcmxvZy5vcGVyX2lwIixkZWZhdWx0TWVzc2FnZToiXHU0RTNCXHU2NzNBXHU1NzMwXHU1NzQwIn0pLGRhdGFJbmRleDoib3BlcklwIix2YWx1ZVR5cGU6InRleHQifSx7dGl0bGU6KDAscy5qc3gpKG8uRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3Iub3BlcmxvZy5vcGVyX2xvY2F0aW9uIixkZWZhdWx0TWVzc2FnZToiXHU2NENEXHU0RjVDXHU1NzMwXHU3MEI5In0pLGRhdGFJbmRleDoib3BlckxvY2F0aW9uIix2YWx1ZVR5cGU6InRleHQifSx7dGl0bGU6KDAscy5qc3gpKG8uRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3Iub3BlcmxvZy5zdGF0dXMiLGRlZmF1bHRNZXNzYWdlOiJcdTY0Q0RcdTRGNUNcdTcyQjZcdTYwMDEifSksZGF0YUluZGV4OiJzdGF0dXMiLHZhbHVlVHlwZToic2VsZWN0Iix2YWx1ZUVudW06RyxyZW5kZXI6ZnVuY3Rpb24oYyxpKXtyZXR1cm4oMCxzLmpzeCkoay5aLHtlbnVtczpHLHZhbHVlOmkuc3RhdHVzfSwic3RhdHVzIil9fSx7dGl0bGU6KDAscy5qc3gpKG8uRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3Iub3BlcmxvZy5vcGVyX3RpbWUiLGRlZmF1bHRNZXNzYWdlOiJcdTY0Q0RcdTRGNUNcdTY1RjZcdTk1RjQifSksZGF0YUluZGV4OiJvcGVyVGltZSIsdmFsdWVUeXBlOiJkYXRlVGltZSJ9LHt0aXRsZTooMCxzLmpzeCkoby5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoicGFnZXMuc2VhcmNoVGFibGUudGl0bGVPcHRpb24iLGRlZmF1bHRNZXNzYWdlOiJcdTY0Q0RcdTRGNUMifSksZGF0YUluZGV4OiJvcHRpb24iLHdpZHRoOiIxMjBweCIsdmFsdWVUeXBlOiJvcHRpb24iLHJlbmRlcjpmdW5jdGlvbihjLGkpe3JldHVyblsoMCxzLmpzeCkoai5aUCx7dHlwZToibGluayIsc2l6ZToic21hbGwiLGhpZGRlbjohRi5oYXNQZXJtcygic3lzdGVtOm9wZXJsb2c6ZWRpdCIpLG9uQ2xpY2s6ZnVuY3Rpb24oKXtwKCEwKSxXKGkpfSxjaGlsZHJlbjoiXHU4QkU2XHU3RUM2In0sImVkaXQiKV19fV07cmV0dXJuKDAscy5qc3hzKShLLl96LHtjaGlsZHJlbjpbKDAscy5qc3gpKCJkaXYiLHtzdHlsZTp7d2lkdGg6IjEwMCUiLGZsb2F0OiJyaWdodCJ9LGNoaWxkcmVuOigwLHMuanN4KShTLlose2hlYWRlclRpdGxlOnZlLmZvcm1hdE1lc3NhZ2Uoe2lkOiJwYWdlcy5zZWFyY2hUYWJsZS50aXRsZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NEZFMVx1NjA2RiJ9KSxhY3Rpb25SZWY6ZSxmb3JtUmVmOmgscm93S2V5OiJvcGVySWQiLHNlYXJjaDp7bGFiZWxXaWR0aDoxMjB9LHRvb2xCYXJSZW5kZXI6ZnVuY3Rpb24oKXtyZXR1cm5bKDAscy5qc3hzKShqLlpQLHt0eXBlOiJwcmltYXJ5IixoaWRkZW46IUYuaGFzUGVybXMoInN5c3RlbTpvcGVybG9nOmFkZCIpLG9uQ2xpY2s6digpKHIoKSgpLm1hcmsoZnVuY3Rpb24gYygpe3JldHVybiByKCkoKS53cmFwKGZ1bmN0aW9uKGwpe2Zvcig7Oylzd2l0Y2gobC5wcmV2PWwubmV4dCl7Y2FzZSAwOlcodm9pZCAwKSxwKCEwKTtjYXNlIDI6Y2FzZSJlbmQiOnJldHVybiBsLnN0b3AoKX19LGMpfSkpLGNoaWxkcmVuOlsoMCxzLmpzeCkoWi5aLHt9KSwiICIsKDAscy5qc3gpKG8uRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InBhZ2VzLnNlYXJjaFRhYmxlLm5ldyIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjVCMFx1NUVGQSJ9KV19LCJhZGQiKSwoMCxzLmpzeHMpKGouWlAse3R5cGU6InByaW1hcnkiLGRhbmdlcjohMCxoaWRkZW46KE89PW51bGw/dm9pZCAwOk8ubGVuZ3RoKT09PTB8fCFGLmhhc1Blcm1zKCJzeXN0ZW06b3BlcmxvZzpyZW1vdmUiKSxvbkNsaWNrOnYoKShyKCkoKS5tYXJrKGZ1bmN0aW9uIGMoKXtyZXR1cm4gcigpKCkud3JhcChmdW5jdGlvbihsKXtmb3IoOzspc3dpdGNoKGwucHJldj1sLm5leHQpe2Nhc2UgMDpSLlouY29uZmlybSh7dGl0bGU6Ilx1NjYyRlx1NTQyNlx1Nzg2RVx1OEJBNFx1NTIyMFx1OTY2NFx1NjI0MFx1OTAwOVx1NjU3MFx1NjM2RVx1OTg3OT8iLGljb246KDAscy5qc3gpKHguWix7fSksY29udGVudDoiXHU4QkY3XHU4QzI4XHU2MTRFXHU2NENEXHU0RjVDIixvbk9rOmZ1bmN0aW9uKCl7cmV0dXJuIHYoKShyKCkoKS5tYXJrKGZ1bmN0aW9uIE0oKXt2YXIgYixQLFQ7cmV0dXJuIHIoKSgpLndyYXAoZnVuY3Rpb24oZyl7Zm9yKDs7KXN3aXRjaChnLnByZXY9Zy5uZXh0KXtjYXNlIDA6cmV0dXJuIGcubmV4dD0yLEooTyk7Y2FzZSAyOmI9Zy5zZW50LGImJihMKFtdKSwoUD1lLmN1cnJlbnQpPT09bnVsbHx8UD09PXZvaWQgMHx8KFQ9UC5yZWxvYWRBbmRSZXN0KT09PW51bGx8fFQ9PT12b2lkIDB8fFQuY2FsbChQKSk7Y2FzZSA0OmNhc2UiZW5kIjpyZXR1cm4gZy5zdG9wKCl9fSxNKX0pKSgpfSxvbkNhbmNlbDpmdW5jdGlvbigpe319KTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBsLnN0b3AoKX19LGMpfSkpLGNoaWxkcmVuOlsoMCxzLmpzeCkoVi5aLHt9KSwoMCxzLmpzeCkoby5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoicGFnZXMuc2VhcmNoVGFibGUuZGVsZXRlIixkZWZhdWx0TWVzc2FnZToiXHU1MjIwXHU5NjY0In0pXX0sInJlbW92ZSIpLCgwLHMuanN4cykoai5aUCx7dHlwZToicHJpbWFyeSIsZGFuZ2VyOiEwLGhpZGRlbjohRi5oYXNQZXJtcygic3lzdGVtOm9wZXJsb2c6cmVtb3ZlIiksb25DbGljazp2KCkocigpKCkubWFyayhmdW5jdGlvbiBjKCl7cmV0dXJuIHIoKSgpLndyYXAoZnVuY3Rpb24obCl7Zm9yKDs7KXN3aXRjaChsLnByZXY9bC5uZXh0KXtjYXNlIDA6Ui5aLmNvbmZpcm0oe3RpdGxlOiJcdTY2MkZcdTU0MjZcdTc4NkVcdThCQTRcdTZFMDVcdTdBN0FcdTYyNDBcdTY3MDlcdTY1NzBcdTYzNkVcdTk4Nzk/IixpY29uOigwLHMuanN4KSh4Llose30pLGNvbnRlbnQ6Ilx1OEJGN1x1OEMyOFx1NjE0RVx1NjRDRFx1NEY1QyIsb25PazpmdW5jdGlvbigpe3JldHVybiB2KCkocigpKCkubWFyayhmdW5jdGlvbiBNKCl7dmFyIGIsUCxUO3JldHVybiByKCkoKS53cmFwKGZ1bmN0aW9uKGcpe2Zvcig7Oylzd2l0Y2goZy5wcmV2PWcubmV4dCl7Y2FzZSAwOnJldHVybiBnLm5leHQ9MixsZSgpO2Nhc2UgMjpiPWcuc2VudCxiJiYoTChbXSksKFA9ZS5jdXJyZW50KT09PW51bGx8fFA9PT12b2lkIDB8fChUPVAucmVsb2FkQW5kUmVzdCk9PT1udWxsfHxUPT09dm9pZCAwfHxULmNhbGwoUCkpO2Nhc2UgNDpjYXNlImVuZCI6cmV0dXJuIGcuc3RvcCgpfX0sTSl9KSkoKX0sb25DYW5jZWw6ZnVuY3Rpb24oKXt9fSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gbC5zdG9wKCl9fSxjKX0pKSxjaGlsZHJlbjpbKDAscy5qc3gpKFYuWix7fSksKDAscy5qc3gpKG8uRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InBhZ2VzLnNlYXJjaFRhYmxlLmNsZWFuQWxsIixkZWZhdWx0TWVzc2FnZToiXHU2RTA1XHU3QTdBIn0pXX0sImNsZWFuIiksKDAscy5qc3hzKShqLlpQLHt0eXBlOiJwcmltYXJ5IixoaWRkZW46IUYuaGFzUGVybXMoInN5c3RlbTpvcGVybG9nOmV4cG9ydCIpLG9uQ2xpY2s6digpKHIoKSgpLm1hcmsoZnVuY3Rpb24gYygpe3JldHVybiByKCkoKS53cmFwKGZ1bmN0aW9uKGwpe2Zvcig7Oylzd2l0Y2gobC5wcmV2PWwubmV4dCl7Y2FzZSAwOm9lKCk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gbC5zdG9wKCl9fSxjKX0pKSxjaGlsZHJlbjpbKDAscy5qc3gpKFouWix7fSksKDAscy5qc3gpKG8uRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InBhZ2VzLnNlYXJjaFRhYmxlLmV4cG9ydCIsZGVmYXVsdE1lc3NhZ2U6Ilx1NUJGQ1x1NTFGQSJ9KV19LCJleHBvcnQiKV19LHJlcXVlc3Q6ZnVuY3Rpb24oYyl7cmV0dXJuKDAseS5zOCkobigpKHt9LGMpKS50aGVuKGZ1bmN0aW9uKGkpe3ZhciBsPXtkYXRhOmkucm93cyx0b3RhbDppLnRvdGFsLHN1Y2Nlc3M6ITB9O3JldHVybiBsfSl9LGNvbHVtbnM6TWUscm93U2VsZWN0aW9uOntvbkNoYW5nZTpmdW5jdGlvbihjLGkpe0woaSl9fX0sIm9wZXJsb2dMaXN0Iil9KSwoTz09bnVsbD92b2lkIDA6Ty5sZW5ndGgpPjAmJigwLHMuanN4KSh3LlMse2V4dHJhOigwLHMuanN4cykoImRpdiIse2NoaWxkcmVuOlsoMCxzLmpzeCkoby5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoicGFnZXMuc2VhcmNoVGFibGUuY2hvc2VuIixkZWZhdWx0TWVzc2FnZToiXHU1REYyXHU5MDA5XHU2MkU5In0pLCgwLHMuanN4KSgiYSIse3N0eWxlOntmb250V2VpZ2h0OjYwMH0sY2hpbGRyZW46Ty5sZW5ndGh9KSwoMCxzLmpzeCkoby5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoicGFnZXMuc2VhcmNoVGFibGUuaXRlbSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OTg3OSJ9KV19KSxjaGlsZHJlbjooMCxzLmpzeCkoai5aUCx7ZGFuZ2VyOiEwLGhpZGRlbjohRi5oYXNQZXJtcygic3lzdGVtOm9wZXJsb2c6ZGVsIiksb25DbGljazp2KCkocigpKCkubWFyayhmdW5jdGlvbiBtKCl7cmV0dXJuIHIoKSgpLndyYXAoZnVuY3Rpb24oaSl7Zm9yKDs7KXN3aXRjaChpLnByZXY9aS5uZXh0KXtjYXNlIDA6Ui5aLmNvbmZpcm0oe3RpdGxlOiJcdTUyMjBcdTk2NjQiLGNvbnRlbnQ6Ilx1Nzg2RVx1NUI5QVx1NTIyMFx1OTY2NFx1OEJFNVx1OTg3OVx1NTQxN1x1RkYxRiIsb2tUZXh0OiJcdTc4NkVcdThCQTQiLGNhbmNlbFRleHQ6Ilx1NTNENlx1NkQ4OCIsb25PazpmdW5jdGlvbigpe3ZhciBsPXYoKShyKCkoKS5tYXJrKGZ1bmN0aW9uIE0oKXt2YXIgYixQLFQ7cmV0dXJuIHIoKSgpLndyYXAoZnVuY3Rpb24oZyl7Zm9yKDs7KXN3aXRjaChnLnByZXY9Zy5uZXh0KXtjYXNlIDA6cmV0dXJuIGcubmV4dD0yLEooTyk7Y2FzZSAyOmI9Zy5zZW50LGImJihMKFtdKSwoUD1lLmN1cnJlbnQpPT09bnVsbHx8UD09PXZvaWQgMHx8KFQ9UC5yZWxvYWRBbmRSZXN0KT09PW51bGx8fFQ9PT12b2lkIDB8fFQuY2FsbChQKSk7Y2FzZSA0OmNhc2UiZW5kIjpyZXR1cm4gZy5zdG9wKCl9fSxNKX0pKTtmdW5jdGlvbiBJKCl7cmV0dXJuIGwuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBJfSgpfSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gaS5zdG9wKCl9fSxtKX0pKSxjaGlsZHJlbjooMCxzLmpzeCkoby5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoicGFnZXMuc2VhcmNoVGFibGUuYmF0Y2hEZWxldGlvbiIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjI3OVx1OTFDRlx1NTIyMFx1OTY2NCJ9KX0sInJlbW92ZSIpfSksKDAscy5qc3gpKHRlLmRlZmF1bHQse29uU3VibWl0OmZ1bmN0aW9uKCl7dmFyIG09digpKHIoKSgpLm1hcmsoZnVuY3Rpb24gYyhpKXt2YXIgbDtyZXR1cm4gcigpKCkud3JhcChmdW5jdGlvbihNKXtmb3IoOzspc3dpdGNoKE0ucHJldj1NLm5leHQpe2Nhc2UgMDppZihsPSExLCFpLm9wZXJJZCl7TS5uZXh0PTc7YnJlYWt9cmV0dXJuIE0ubmV4dD00LHVlKG4oKSh7fSxpKSk7Y2FzZSA0Omw9TS5zZW50LE0ubmV4dD0xMDticmVhaztjYXNlIDc6cmV0dXJuIE0ubmV4dD05LG5lKG4oKSh7fSxpKSk7Y2FzZSA5Omw9TS5zZW50O2Nhc2UgMTA6bCYmKHAoITEpLFcodm9pZCAwKSxlLmN1cnJlbnQmJmUuY3VycmVudC5yZWxvYWQoKSk7Y2FzZSAxMTpjYXNlImVuZCI6cmV0dXJuIE0uc3RvcCgpfX0sYyl9KSk7cmV0dXJuIGZ1bmN0aW9uKGMpe3JldHVybiBtLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksb25DYW5jZWw6ZnVuY3Rpb24oKXtwKCExKSxXKHZvaWQgMCl9LG9wZW46dSx2YWx1ZXM6ZGV8fHt9LGJ1c2luZXNzVHlwZU9wdGlvbnM6WCxvcGVyYXRvclR5cGVPcHRpb25zOnosc3RhdHVzT3B0aW9uczpHfSldfSl9O0EuZGVmYXVsdD1pZX19XSk7CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzgyMTMuZTNhZGEwY2EuYXN5bmMuanMgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzgyMTMuZTNhZGEwY2EuYXN5bmMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjkyOGYyNgotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvODIxMy5lM2FkYTBjYS5hc3luYy5qcwpAQCAtMCwwICsxIEBACisidXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W10pLnB1c2goW1s4MjEzLDEzMTYsMTI1Nl0sezMxMTk5OmZ1bmN0aW9uKFEsTSxvKXt2YXIgdD1vKDE0MTMpLHU9byg5MSksZj1vKDY3Mjk0KSxiPW8oOTIxNzkpLF89byg4NTg5MyksRT1bImZpZWxkUHJvcHMiLCJtaW4iLCJwcm9GaWVsZFByb3BzIiwibWF4Il0sRD1mdW5jdGlvbihzLEIpe3ZhciBJPXMuZmllbGRQcm9wcyxwPXMubWluLGM9cy5wcm9GaWVsZFByb3BzLFI9cy5tYXgsaD0oMCx1LlopKHMsRSk7cmV0dXJuKDAsXy5qc3gpKGIuWiwoMCx0LlopKHt2YWx1ZVR5cGU6ImRpZ2l0IixmaWVsZFByb3BzOigwLHQuWikoe21pbjpwLG1heDpSfSxJKSxyZWY6QixmaWxlZENvbmZpZzp7ZGVmYXVsdFByb3BzOnt3aWR0aDoiMTAwJSJ9fSxwcm9GaWVsZFByb3BzOmN9LGgpKX0sUz1mLmZvcndhcmRSZWYoRCk7TS5aPVN9LDg2NjE1OmZ1bmN0aW9uKFEsTSxvKXt2YXIgdD1vKDE0MTMpLHU9byg5MSksZj1vKDIyMjcwKSxiPW8oNzgwNDUpLF89byg2NzI5NCksRT1vKDkwNzg5KSxEPW8oOTIxNzkpLFM9byg4NTg5MyksZz1bImZpZWxkUHJvcHMiLCJvcHRpb25zIiwicmFkaW9UeXBlIiwibGF5b3V0IiwicHJvRmllbGRQcm9wcyIsInZhbHVlRW51bSJdLHM9Xy5mb3J3YXJkUmVmKGZ1bmN0aW9uKGMsUil7dmFyIGg9Yy5maWVsZFByb3BzLE89Yy5vcHRpb25zLFo9Yy5yYWRpb1R5cGUsaT1jLmxheW91dCxuPWMucHJvRmllbGRQcm9wcyxUPWMudmFsdWVFbnVtLEM9KDAsdS5aKShjLGcpO3JldHVybigwLFMuanN4KShELlosKDAsdC5aKSgoMCx0LlopKHt2YWx1ZVR5cGU6Wj09PSJidXR0b24iPyJyYWRpb0J1dHRvbiI6InJhZGlvIixyZWY6Uix2YWx1ZUVudW06KDAsZi5oKShULHZvaWQgMCl9LEMpLHt9LHtmaWVsZFByb3BzOigwLHQuWikoe29wdGlvbnM6TyxsYXlvdXQ6aX0saCkscHJvRmllbGRQcm9wczpuLGZpbGVkQ29uZmlnOntjdXN0b21MaWdodE1vZGU6ITB9fSkpfSksQj1fLmZvcndhcmRSZWYoZnVuY3Rpb24oYyxSKXt2YXIgaD1jLmZpZWxkUHJvcHMsTz1jLmNoaWxkcmVuO3JldHVybigwLFMuanN4KShiLlpQLCgwLHQuWikoKDAsdC5aKSh7fSxoKSx7fSx7cmVmOlIsY2hpbGRyZW46T30pKX0pLEk9KDAsRS5HKShCLHt2YWx1ZVByb3BOYW1lOiJjaGVja2VkIixpZ25vcmVXaWR0aDohMH0pLHA9STtwLkdyb3VwPXMscC5CdXR0b249Yi5aUC5CdXR0b24scC5kaXNwbGF5TmFtZT0iUHJvRm9ybUNvbXBvbmVudCIsTS5aPXB9LDkwNjcyOmZ1bmN0aW9uKFEsTSxvKXt2YXIgdD1vKDE0MTMpLHU9byg5MSksZj1vKDY3Mjk0KSxiPW8oOTIxNzkpLF89byg4NTg5MyksRT1bImZpZWxkUHJvcHMiLCJwcm9GaWVsZFByb3BzIl0sRD1mdW5jdGlvbihnLHMpe3ZhciBCPWcuZmllbGRQcm9wcyxJPWcucHJvRmllbGRQcm9wcyxwPSgwLHUuWikoZyxFKTtyZXR1cm4oMCxfLmpzeCkoYi5aLCgwLHQuWikoe3JlZjpzLHZhbHVlVHlwZToidGV4dGFyZWEiLGZpZWxkUHJvcHM6Qixwcm9GaWVsZFByb3BzOkl9LHApKX07TS5aPWYuZm9yd2FyZFJlZihEKX0sNTk2NjpmdW5jdGlvbihRLE0sbyl7dmFyIHQ9byg5NzY4NSksdT1vKDE0MTMpLGY9byg5MSksYj1vKDIxNzcwKSxfPW8oOTk4NTkpLEU9byg1NTI0MSksRD1vKDk4NDIzKSxTPW8oNjcyOTQpLGc9byg5MjE3OSkscz1vKDg1ODkzKSxCPVsiZmllbGRQcm9wcyIsInByb0ZpZWxkUHJvcHMiXSxJPVsiZmllbGRQcm9wcyIsInByb0ZpZWxkUHJvcHMiXSxwPSJ0ZXh0IixjPWZ1bmN0aW9uKGkpe3ZhciBuPWkuZmllbGRQcm9wcyxUPWkucHJvRmllbGRQcm9wcyxDPSgwLGYuWikoaSxCKTtyZXR1cm4oMCxzLmpzeCkoZy5aLCgwLHUuWikoe3ZhbHVlVHlwZTpwLGZpZWxkUHJvcHM6bixmaWxlZENvbmZpZzp7dmFsdWVUeXBlOnB9LHByb0ZpZWxkUHJvcHM6VH0sQykpfSxSPWZ1bmN0aW9uKGkpe3ZhciBuPSgwLGIuWikoaS5vcGVufHwhMSx7dmFsdWU6aS5vcGVuLG9uQ2hhbmdlOmkub25PcGVuQ2hhbmdlfSksVD0oMCx0LlopKG4sMiksQz1UWzBdLE49VFsxXTtyZXR1cm4oMCxzLmpzeCkoXy5aLkl0ZW0se3Nob3VsZFVwZGF0ZTohMCxub1N0eWxlOiEwLGNoaWxkcmVuOmZ1bmN0aW9uKEgpe3ZhciBtLFY9SC5nZXRGaWVsZFZhbHVlKGkubmFtZXx8W10pO3JldHVybigwLHMuanN4KShFLlosKDAsdS5aKSgoMCx1LlopKHtnZXRQb3B1cENvbnRhaW5lcjpmdW5jdGlvbih2KXtyZXR1cm4gdiYmdi5wYXJlbnROb2RlP3YucGFyZW50Tm9kZTp2fSxvbk9wZW5DaGFuZ2U6ZnVuY3Rpb24odil7cmV0dXJuIE4odil9LGNvbnRlbnQ6KDAscy5qc3hzKSgiZGl2Iix7c3R5bGU6e3BhZGRpbmc6IjRweCAwIn0sY2hpbGRyZW46WyhtPWkuc3RhdHVzUmVuZGVyKT09PW51bGx8fG09PT12b2lkIDA/dm9pZCAwOm0uY2FsbChpLFYpLGkuc3RyZW5ndGhUZXh0PygwLHMuanN4KSgiZGl2Iix7c3R5bGU6e21hcmdpblRvcDoxMH0sY2hpbGRyZW46KDAscy5qc3gpKCJzcGFuIix7Y2hpbGRyZW46aS5zdHJlbmd0aFRleHR9KX0pOm51bGxdfSksb3ZlcmxheVN0eWxlOnt3aWR0aDoyNDB9LHBsYWNlbWVudDoicmlnaHRUb3AifSxpLnBvcG92ZXJQcm9wcykse30se29wZW46QyxjaGlsZHJlbjppLmNoaWxkcmVufSkpfX0pfSxoPWZ1bmN0aW9uKGkpe3ZhciBuPWkuZmllbGRQcm9wcyxUPWkucHJvRmllbGRQcm9wcyxDPSgwLGYuWikoaSxJKSxOPSgwLFMudXNlU3RhdGUpKCExKSx6PSgwLHQuWikoTiwyKSxIPXpbMF0sbT16WzFdO3JldHVybiBuIT1udWxsJiZuLnN0YXR1c1JlbmRlciYmQy5uYW1lPygwLHMuanN4KShSLHtuYW1lOkMubmFtZSxzdGF0dXNSZW5kZXI6bj09bnVsbD92b2lkIDA6bi5zdGF0dXNSZW5kZXIscG9wb3ZlclByb3BzOm49PW51bGw/dm9pZCAwOm4ucG9wb3ZlclByb3BzLHN0cmVuZ3RoVGV4dDpuPT1udWxsP3ZvaWQgMDpuLnN0cmVuZ3RoVGV4dCxvcGVuOkgsb25PcGVuQ2hhbmdlOm0sY2hpbGRyZW46KDAscy5qc3gpKCJkaXYiLHtjaGlsZHJlbjooMCxzLmpzeCkoZy5aLCgwLHUuWikoe3ZhbHVlVHlwZToicGFzc3dvcmQiLGZpZWxkUHJvcHM6KDAsdS5aKSgoMCx1LlopKHt9LCgwLEQuWikobixbInN0YXR1c1JlbmRlciIsInBvcG92ZXJQcm9wcyIsInN0cmVuZ3RoVGV4dCJdKSkse30se29uQmx1cjpmdW5jdGlvbigkKXt2YXIgdjtuPT1udWxsfHwodj1uLm9uQmx1cik9PT1udWxsfHx2PT09dm9pZCAwfHx2LmNhbGwobiwkKSxtKCExKX0sb25DbGljazpmdW5jdGlvbigkKXt2YXIgdjtuPT1udWxsfHwodj1uLm9uQ2xpY2spPT09bnVsbHx8dj09PXZvaWQgMHx8di5jYWxsKG4sJCksbSghMCl9fSkscHJvRmllbGRQcm9wczpULGZpbGVkQ29uZmlnOnt2YWx1ZVR5cGU6cH19LEMpKX0pfSk6KDAscy5qc3gpKGcuWiwoMCx1LlopKHt2YWx1ZVR5cGU6InBhc3N3b3JkIixmaWVsZFByb3BzOm4scHJvRmllbGRQcm9wczpULGZpbGVkQ29uZmlnOnt2YWx1ZVR5cGU6cH19LEMpKX0sTz1jO08uUGFzc3dvcmQ9aCxPLmRpc3BsYXlOYW1lPSJQcm9Gb3JtQ29tcG9uZW50IixNLlo9T30sNjYzMDk6ZnVuY3Rpb24oUSxNLG8pe28uZChNLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGllfX0pO3ZhciB0PW8oNjcyOTQpLHU9byg5Mzk2NyksZj1vLm4odSksYj1vKDk4NDIzKSxfPW8oOTg3ODcpLEU9byg2OTc2MCksRD1vKDk2MTU5KSxTPW8oNDUzNTMpLGc9byg1MzEyNCkscz1vKDExNTY4KSxCPW8oMTUwNjMpLEk9bygxNDc0NykscD1vKDgzMjYyKSxjPW8oODM1NTkpO2NvbnN0IFI9ZT0+e2NvbnN0e3BhZGRpbmdYWFM6YSxsaW5lV2lkdGg6ZCx0YWdQYWRkaW5nSG9yaXpvbnRhbDpyLGNvbXBvbmVudENsczpsLGNhbGM6eH09ZSxQPXgocikuc3ViKGQpLmVxdWFsKCksQT14KGEpLnN1YihkKS5lcXVhbCgpO3JldHVybntbbF06T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCgwLEkuV2YpKGUpKSx7ZGlzcGxheToiaW5saW5lLWJsb2NrIixoZWlnaHQ6ImF1dG8iLG1hcmdpbklubGluZUVuZDplLm1hcmdpblhTLHBhZGRpbmdJbmxpbmU6UCxmb250U2l6ZTplLnRhZ0ZvbnRTaXplLGxpbmVIZWlnaHQ6ZS50YWdMaW5lSGVpZ2h0LHdoaXRlU3BhY2U6Im5vd3JhcCIsYmFja2dyb3VuZDplLmRlZmF1bHRCZyxib3JkZXI6YCR7KDAscy5iZikoZS5saW5lV2lkdGgpfSAke2UubGluZVR5cGV9ICR7ZS5jb2xvckJvcmRlcn1gLGJvcmRlclJhZGl1czplLmJvcmRlclJhZGl1c1NNLG9wYWNpdHk6MSx0cmFuc2l0aW9uOmBhbGwgJHtlLm1vdGlvbkR1cmF0aW9uTWlkfWAsdGV4dEFsaWduOiJzdGFydCIscG9zaXRpb246InJlbGF0aXZlIixbYCYke2x9LXJ0bGBdOntkaXJlY3Rpb246InJ0bCJ9LCImLCBhLCBhOmhvdmVyIjp7Y29sb3I6ZS5kZWZhdWx0Q29sb3J9LFtgJHtsfS1jbG9zZS1pY29uYF06e21hcmdpbklubGluZVN0YXJ0OkEsZm9udFNpemU6ZS50YWdJY29uU2l6ZSxjb2xvcjplLmNvbG9yVGV4dERlc2NyaXB0aW9uLGN1cnNvcjoicG9pbnRlciIsdHJhbnNpdGlvbjpgYWxsICR7ZS5tb3Rpb25EdXJhdGlvbk1pZH1gLCImOmhvdmVyIjp7Y29sb3I6ZS5jb2xvclRleHRIZWFkaW5nfX0sW2AmJHtsfS1oYXMtY29sb3JgXTp7Ym9yZGVyQ29sb3I6InRyYW5zcGFyZW50IixbYCYsIGEsIGE6aG92ZXIsICR7ZS5pY29uQ2xzfS1jbG9zZSwgJHtlLmljb25DbHN9LWNsb3NlOmhvdmVyYF06e2NvbG9yOmUuY29sb3JUZXh0TGlnaHRTb2xpZH19LCImLWNoZWNrYWJsZSI6e2JhY2tncm91bmRDb2xvcjoidHJhbnNwYXJlbnQiLGJvcmRlckNvbG9yOiJ0cmFuc3BhcmVudCIsY3Vyc29yOiJwb2ludGVyIixbYCY6bm90KCR7bH0tY2hlY2thYmxlLWNoZWNrZWQpOmhvdmVyYF06e2NvbG9yOmUuY29sb3JQcmltYXJ5LGJhY2tncm91bmRDb2xvcjplLmNvbG9yRmlsbFNlY29uZGFyeX0sIiY6YWN0aXZlLCAmLWNoZWNrZWQiOntjb2xvcjplLmNvbG9yVGV4dExpZ2h0U29saWR9LCImLWNoZWNrZWQiOntiYWNrZ3JvdW5kQ29sb3I6ZS5jb2xvclByaW1hcnksIiY6aG92ZXIiOntiYWNrZ3JvdW5kQ29sb3I6ZS5jb2xvclByaW1hcnlIb3Zlcn19LCImOmFjdGl2ZSI6e2JhY2tncm91bmRDb2xvcjplLmNvbG9yUHJpbWFyeUFjdGl2ZX19LCImLWhpZGRlbiI6e2Rpc3BsYXk6Im5vbmUifSxbYD4gJHtlLmljb25DbHN9ICsgc3BhbiwgPiBzcGFuICsgJHtlLmljb25DbHN9YF06e21hcmdpbklubGluZVN0YXJ0OlB9fSksW2Ake2x9LWJvcmRlcmxlc3NgXTp7Ym9yZGVyQ29sb3I6InRyYW5zcGFyZW50IixiYWNrZ3JvdW5kOmUudGFnQm9yZGVybGVzc0JnfX19LGg9ZT0+e2NvbnN0e2xpbmVXaWR0aDphLGZvbnRTaXplSWNvbjpkLGNhbGM6cn09ZSxsPWUuZm9udFNpemVTTTtyZXR1cm4oMCxwLklYKShlLHt0YWdGb250U2l6ZTpsLHRhZ0xpbmVIZWlnaHQ6KDAscy5iZikocihlLmxpbmVIZWlnaHRTTSkubXVsKGwpLmVxdWFsKCkpLHRhZ0ljb25TaXplOnIoZCkuc3ViKHIoYSkubXVsKDIpKS5lcXVhbCgpLHRhZ1BhZGRpbmdIb3Jpem9udGFsOjgsdGFnQm9yZGVybGVzc0JnOmUuZGVmYXVsdEJnfSl9LE89ZT0+KHtkZWZhdWx0Qmc6bmV3IEIudChlLmNvbG9yRmlsbFF1YXRlcm5hcnkpLm9uQmFja2dyb3VuZChlLmNvbG9yQmdDb250YWluZXIpLnRvSGV4U3RyaW5nKCksZGVmYXVsdENvbG9yOmUuY29sb3JUZXh0fSk7dmFyIFo9KDAsYy5JJCkoIlRhZyIsZT0+e2NvbnN0IGE9aChlKTtyZXR1cm4gUihhKX0sTyksaT1mdW5jdGlvbihlLGEpe3ZhciBkPXt9O2Zvcih2YXIgciBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHIpJiZhLmluZGV4T2Yocik8MCYmKGRbcl09ZVtyXSk7aWYoZSE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBsPTAscj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2w8ci5sZW5ndGg7bCsrKWEuaW5kZXhPZihyW2xdKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxyW2xdKSYmKGRbcltsXV09ZVtyW2xdXSk7cmV0dXJuIGR9LFQ9dC5mb3J3YXJkUmVmKChlLGEpPT57Y29uc3R7cHJlZml4Q2xzOmQsc3R5bGU6cixjbGFzc05hbWU6bCxjaGVja2VkOngsb25DaGFuZ2U6UCxvbkNsaWNrOkF9PWUsaj1pKGUsWyJwcmVmaXhDbHMiLCJzdHlsZSIsImNsYXNzTmFtZSIsImNoZWNrZWQiLCJvbkNoYW5nZSIsIm9uQ2xpY2siXSkse2dldFByZWZpeENsczpYLHRhZzpXfT10LnVzZUNvbnRleHQoZy5FXyksRz1KPT57UD09bnVsbHx8UCgheCksQT09bnVsbHx8QShKKX0sTD1YKCJ0YWciLGQpLFtZLHcsRl09WihMKSxrPWYoKShMLGAke0x9LWNoZWNrYWJsZWAse1tgJHtMfS1jaGVja2FibGUtY2hlY2tlZGBdOnh9LFc9PW51bGw/dm9pZCAwOlcuY2xhc3NOYW1lLGwsdyxGKTtyZXR1cm4gWSh0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLE9iamVjdC5hc3NpZ24oe30saix7cmVmOmEsc3R5bGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHIpLFc9PW51bGw/dm9pZCAwOlcuc3R5bGUpLGNsYXNzTmFtZTprLG9uQ2xpY2s6R30pKSl9KSxDPW8oOTg3MTkpO2NvbnN0IE49ZT0+KDAsQy5aKShlLChhLGQpPT57bGV0e3RleHRDb2xvcjpyLGxpZ2h0Qm9yZGVyQ29sb3I6bCxsaWdodENvbG9yOngsZGFya0NvbG9yOlB9PWQ7cmV0dXJue1tgJHtlLmNvbXBvbmVudENsc30ke2UuY29tcG9uZW50Q2xzfS0ke2F9YF06e2NvbG9yOnIsYmFja2dyb3VuZDp4LGJvcmRlckNvbG9yOmwsIiYtaW52ZXJzZSI6e2NvbG9yOmUuY29sb3JUZXh0TGlnaHRTb2xpZCxiYWNrZ3JvdW5kOlAsYm9yZGVyQ29sb3I6UH0sW2AmJHtlLmNvbXBvbmVudENsc30tYm9yZGVybGVzc2BdOntib3JkZXJDb2xvcjoidHJhbnNwYXJlbnQifX19fSk7dmFyIHo9KDAsYy5iaykoWyJUYWciLCJwcmVzZXQiXSxlPT57Y29uc3QgYT1oKGUpO3JldHVybiBOKGEpfSxPKTtmdW5jdGlvbiBIKGUpe3JldHVybiB0eXBlb2YgZSE9InN0cmluZyI/ZTplLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2Uuc2xpY2UoMSl9Y29uc3QgbT0oZSxhLGQpPT57Y29uc3Qgcj1IKGQpO3JldHVybntbYCR7ZS5jb21wb25lbnRDbHN9JHtlLmNvbXBvbmVudENsc30tJHthfWBdOntjb2xvcjplW2Bjb2xvciR7ZH1gXSxiYWNrZ3JvdW5kOmVbYGNvbG9yJHtyfUJnYF0sYm9yZGVyQ29sb3I6ZVtgY29sb3Ike3J9Qm9yZGVyYF0sW2AmJHtlLmNvbXBvbmVudENsc30tYm9yZGVybGVzc2BdOntib3JkZXJDb2xvcjoidHJhbnNwYXJlbnQifX19fTt2YXIgVj0oMCxjLmJrKShbIlRhZyIsInN0YXR1cyJdLGU9Pntjb25zdCBhPWgoZSk7cmV0dXJuW20oYSwic3VjY2VzcyIsIlN1Y2Nlc3MiKSxtKGEsInByb2Nlc3NpbmciLCJJbmZvIiksbShhLCJlcnJvciIsIkVycm9yIiksbShhLCJ3YXJuaW5nIiwiV2FybmluZyIpXX0sTyksJD1mdW5jdGlvbihlLGEpe3ZhciBkPXt9O2Zvcih2YXIgciBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHIpJiZhLmluZGV4T2Yocik8MCYmKGRbcl09ZVtyXSk7aWYoZSE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBsPTAscj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2w8ci5sZW5ndGg7bCsrKWEuaW5kZXhPZihyW2xdKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxyW2xdKSYmKGRbcltsXV09ZVtyW2xdXSk7cmV0dXJuIGR9O2NvbnN0IG9lPXQuZm9yd2FyZFJlZigoZSxhKT0+e2NvbnN0e3ByZWZpeENsczpkLGNsYXNzTmFtZTpyLHJvb3RDbGFzc05hbWU6bCxzdHlsZTp4LGNoaWxkcmVuOlAsaWNvbjpBLGNvbG9yOmosb25DbG9zZTpYLGJvcmRlcmVkOlc9ITAsdmlzaWJsZTpHfT1lLEw9JChlLFsicHJlZml4Q2xzIiwiY2xhc3NOYW1lIiwicm9vdENsYXNzTmFtZSIsInN0eWxlIiwiY2hpbGRyZW4iLCJpY29uIiwiY29sb3IiLCJvbkNsb3NlIiwiYm9yZGVyZWQiLCJ2aXNpYmxlIl0pLHtnZXRQcmVmaXhDbHM6WSxkaXJlY3Rpb246dyx0YWc6Rn09dC51c2VDb250ZXh0KGcuRV8pLFtrLEpdPXQudXNlU3RhdGUoITApLGRlPSgwLGIuWikoTCxbImNsb3NlSWNvbiIsImNsb3NhYmxlIl0pO3QudXNlRWZmZWN0KCgpPT57RyE9PXZvaWQgMCYmSihHKX0sW0ddKTtjb25zdCByZT0oMCxfLm8yKShqKSx0ZT0oMCxfLnlUKShqKSxxPXJlfHx0ZSxjZT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe2JhY2tncm91bmRDb2xvcjpqJiYhcT9qOnZvaWQgMH0sRj09bnVsbD92b2lkIDA6Ri5zdHlsZSkseCkseT1ZKCJ0YWciLGQpLFt1ZSxwZSx2ZV09Wih5KSxQZT1mKCkoeSxGPT1udWxsP3ZvaWQgMDpGLmNsYXNzTmFtZSx7W2Ake3l9LSR7an1gXTpxLFtgJHt5fS1oYXMtY29sb3JgXTpqJiYhcSxbYCR7eX0taGlkZGVuYF06IWssW2Ake3l9LXJ0bGBdOnc9PT0icnRsIixbYCR7eX0tYm9yZGVybGVzc2BdOiFXfSxyLGwscGUsdmUpLG5lPUs9PntLLnN0b3BQcm9wYWdhdGlvbigpLFg9PW51bGx8fFgoSyksIUsuZGVmYXVsdFByZXZlbnRlZCYmSighMSl9LFssZ2VdPSgwLEUuWikoKDAsRS53KShlKSwoMCxFLncpKEYpLHtjbG9zYWJsZTohMSxjbG9zZUljb25SZW5kZXI6Sz0+e2NvbnN0IG1lPXQuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpgJHt5fS1jbG9zZS1pY29uYCxvbkNsaWNrOm5lfSxLKTtyZXR1cm4oMCxELndtKShLLG1lLFU9Pih7b25DbGljazpzZT0+e3ZhciBlZTsoZWU9VT09bnVsbD92b2lkIDA6VS5vbkNsaWNrKT09PW51bGx8fGVlPT09dm9pZCAwfHxlZS5jYWxsKFUsc2UpLG5lKHNlKX0sY2xhc3NOYW1lOmYoKShVPT1udWxsP3ZvaWQgMDpVLmNsYXNzTmFtZSxgJHt5fS1jbG9zZS1pY29uYCl9KSl9fSksZmU9dHlwZW9mIEwub25DbGljaz09ImZ1bmN0aW9uInx8UCYmUC50eXBlPT09ImEiLGxlPUF8fG51bGwsQ2U9bGU/dC5jcmVhdGVFbGVtZW50KHQuRnJhZ21lbnQsbnVsbCxsZSxQJiZ0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwsUCkpOlAsYWU9dC5jcmVhdGVFbGVtZW50KCJzcGFuIixPYmplY3QuYXNzaWduKHt9LGRlLHtyZWY6YSxjbGFzc05hbWU6UGUsc3R5bGU6Y2V9KSxDZSxnZSxyZSYmdC5jcmVhdGVFbGVtZW50KHose2tleToicHJlc2V0IixwcmVmaXhDbHM6eX0pLHRlJiZ0LmNyZWF0ZUVsZW1lbnQoVix7a2V5OiJzdGF0dXMiLHByZWZpeENsczp5fSkpO3JldHVybiB1ZShmZT90LmNyZWF0ZUVsZW1lbnQoUy5aLHtjb21wb25lbnQ6IlRhZyJ9LGFlKTphZSl9KTtvZS5DaGVja2FibGVUYWc9VDt2YXIgaWU9b2V9fV0pOwpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy84Mzk0LjliZGM2MDg3LmFzeW5jLmpzIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy84Mzk0LjliZGM2MDg3LmFzeW5jLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0ZTIxNTUKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzgzOTQuOWJkYzYwODcuYXN5bmMuanMKQEAgLTAsMCArMSBAQAorInVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvPXNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm98fFtdKS5wdXNoKFtbODM5NF0sezMxMTk5OmZ1bmN0aW9uKEosVyxlKXt2YXIgTz1lKDE0MTMpLHQ9ZSg5MSksVT1lKDY3Mjk0KSxyPWUoOTIxNzkpLHk9ZSg4NTg5MyksbT1bImZpZWxkUHJvcHMiLCJtaW4iLCJwcm9GaWVsZFByb3BzIiwibWF4Il0sdj1mdW5jdGlvbihjLGYpe3ZhciBfPWMuZmllbGRQcm9wcyxGPWMubWluLGQ9Yy5wcm9GaWVsZFByb3BzLE09Yy5tYXgsbD0oMCx0LlopKGMsbSk7cmV0dXJuKDAseS5qc3gpKHIuWiwoMCxPLlopKHt2YWx1ZVR5cGU6ImRpZ2l0IixmaWVsZFByb3BzOigwLE8uWikoe21pbjpGLG1heDpNfSxfKSxyZWY6ZixmaWxlZENvbmZpZzp7ZGVmYXVsdFByb3BzOnt3aWR0aDoiMTAwJSJ9fSxwcm9GaWVsZFByb3BzOmR9LGwpKX0saD1VLmZvcndhcmRSZWYodik7Vy5aPWh9LDg2NjE1OmZ1bmN0aW9uKEosVyxlKXt2YXIgTz1lKDE0MTMpLHQ9ZSg5MSksVT1lKDIyMjcwKSxyPWUoNzgwNDUpLHk9ZSg2NzI5NCksbT1lKDkwNzg5KSx2PWUoOTIxNzkpLGg9ZSg4NTg5MyksRT1bImZpZWxkUHJvcHMiLCJvcHRpb25zIiwicmFkaW9UeXBlIiwibGF5b3V0IiwicHJvRmllbGRQcm9wcyIsInZhbHVlRW51bSJdLGM9eS5mb3J3YXJkUmVmKGZ1bmN0aW9uKGQsTSl7dmFyIGw9ZC5maWVsZFByb3BzLG89ZC5vcHRpb25zLGc9ZC5yYWRpb1R5cGUsbj1kLmxheW91dCxpPWQucHJvRmllbGRQcm9wcyxwPWQudmFsdWVFbnVtLGE9KDAsdC5aKShkLEUpO3JldHVybigwLGguanN4KSh2LlosKDAsTy5aKSgoMCxPLlopKHt2YWx1ZVR5cGU6Zz09PSJidXR0b24iPyJyYWRpb0J1dHRvbiI6InJhZGlvIixyZWY6TSx2YWx1ZUVudW06KDAsVS5oKShwLHZvaWQgMCl9LGEpLHt9LHtmaWVsZFByb3BzOigwLE8uWikoe29wdGlvbnM6byxsYXlvdXQ6bn0sbCkscHJvRmllbGRQcm9wczppLGZpbGVkQ29uZmlnOntjdXN0b21MaWdodE1vZGU6ITB9fSkpfSksZj15LmZvcndhcmRSZWYoZnVuY3Rpb24oZCxNKXt2YXIgbD1kLmZpZWxkUHJvcHMsbz1kLmNoaWxkcmVuO3JldHVybigwLGguanN4KShyLlpQLCgwLE8uWikoKDAsTy5aKSh7fSxsKSx7fSx7cmVmOk0sY2hpbGRyZW46b30pKX0pLF89KDAsbS5HKShmLHt2YWx1ZVByb3BOYW1lOiJjaGVja2VkIixpZ25vcmVXaWR0aDohMH0pLEY9XztGLkdyb3VwPWMsRi5CdXR0b249ci5aUC5CdXR0b24sRi5kaXNwbGF5TmFtZT0iUHJvRm9ybUNvbXBvbmVudCIsVy5aPUZ9LDY0MzE3OmZ1bmN0aW9uKEosVyxlKXt2YXIgTz1lKDE0MTMpLHQ9ZSg5MSksVT1lKDIyMjcwKSxyPWUoNjcyOTQpLHk9ZSg2Njc1OCksbT1lKDkyMTc5KSx2PWUoODU4OTMpLGg9WyJmaWVsZFByb3BzIiwiY2hpbGRyZW4iLCJwYXJhbXMiLCJwcm9GaWVsZFByb3BzIiwibW9kZSIsInZhbHVlRW51bSIsInJlcXVlc3QiLCJzaG93U2VhcmNoIiwib3B0aW9ucyJdLEU9WyJmaWVsZFByb3BzIiwiY2hpbGRyZW4iLCJwYXJhbXMiLCJwcm9GaWVsZFByb3BzIiwibW9kZSIsInZhbHVlRW51bSIsInJlcXVlc3QiLCJvcHRpb25zIl0sYz1mdW5jdGlvbihsLG8pe3ZhciBnPWwuZmllbGRQcm9wcyxuPWwuY2hpbGRyZW4saT1sLnBhcmFtcyxwPWwucHJvRmllbGRQcm9wcyxhPWwubW9kZSx6PWwudmFsdWVFbnVtLFM9bC5yZXF1ZXN0LEM9bC5zaG93U2VhcmNoLEQ9bC5vcHRpb25zLHM9KDAsdC5aKShsLGgpLGI9KDAsci51c2VDb250ZXh0KSh5LlopO3JldHVybigwLHYuanN4KShtLlosKDAsTy5aKSgoMCxPLlopKHt2YWx1ZUVudW06KDAsVS5oKSh6KSxyZXF1ZXN0OlMscGFyYW1zOmksdmFsdWVUeXBlOiJzZWxlY3QiLGZpbGVkQ29uZmlnOntjdXN0b21MaWdodE1vZGU6ITB9LGZpZWxkUHJvcHM6KDAsTy5aKSh7b3B0aW9uczpELG1vZGU6YSxzaG93U2VhcmNoOkMsZ2V0UG9wdXBDb250YWluZXI6Yi5nZXRQb3B1cENvbnRhaW5lcn0sZykscmVmOm8scHJvRmllbGRQcm9wczpwfSxzKSx7fSx7Y2hpbGRyZW46bn0pKX0sZj1yLmZvcndhcmRSZWYoZnVuY3Rpb24oTSxsKXt2YXIgbz1NLmZpZWxkUHJvcHMsZz1NLmNoaWxkcmVuLG49TS5wYXJhbXMsaT1NLnByb0ZpZWxkUHJvcHMscD1NLm1vZGUsYT1NLnZhbHVlRW51bSx6PU0ucmVxdWVzdCxTPU0ub3B0aW9ucyxDPSgwLHQuWikoTSxFKSxEPSgwLE8uWikoe29wdGlvbnM6Uyxtb2RlOnB8fCJtdWx0aXBsZSIsbGFiZWxJblZhbHVlOiEwLHNob3dTZWFyY2g6ITAsc3VmZml4SWNvbjpudWxsLGF1dG9DbGVhclNlYXJjaFZhbHVlOiEwLG9wdGlvbkxhYmVsUHJvcDoibGFiZWwifSxvKSxzPSgwLHIudXNlQ29udGV4dCkoeS5aKTtyZXR1cm4oMCx2LmpzeCkobS5aLCgwLE8uWikoKDAsTy5aKSh7dmFsdWVFbnVtOigwLFUuaCkoYSkscmVxdWVzdDp6LHBhcmFtczpuLHZhbHVlVHlwZToic2VsZWN0IixmaWxlZENvbmZpZzp7Y3VzdG9tTGlnaHRNb2RlOiEwfSxmaWVsZFByb3BzOigwLE8uWikoe2dldFBvcHVwQ29udGFpbmVyOnMuZ2V0UG9wdXBDb250YWluZXJ9LEQpLHJlZjpsLHByb0ZpZWxkUHJvcHM6aX0sQykse30se2NoaWxkcmVuOmd9KSl9KSxfPXIuZm9yd2FyZFJlZihjKSxGPWYsZD1fO2QuU2VhcmNoU2VsZWN0PUYsZC5kaXNwbGF5TmFtZT0iUHJvRm9ybUNvbXBvbmVudCIsVy5aPWR9LDkwNjcyOmZ1bmN0aW9uKEosVyxlKXt2YXIgTz1lKDE0MTMpLHQ9ZSg5MSksVT1lKDY3Mjk0KSxyPWUoOTIxNzkpLHk9ZSg4NTg5MyksbT1bImZpZWxkUHJvcHMiLCJwcm9GaWVsZFByb3BzIl0sdj1mdW5jdGlvbihFLGMpe3ZhciBmPUUuZmllbGRQcm9wcyxfPUUucHJvRmllbGRQcm9wcyxGPSgwLHQuWikoRSxtKTtyZXR1cm4oMCx5LmpzeCkoci5aLCgwLE8uWikoe3JlZjpjLHZhbHVlVHlwZToidGV4dGFyZWEiLGZpZWxkUHJvcHM6Zixwcm9GaWVsZFByb3BzOl99LEYpKX07Vy5aPVUuZm9yd2FyZFJlZih2KX0sNTk2NjpmdW5jdGlvbihKLFcsZSl7dmFyIE89ZSg5NzY4NSksdD1lKDE0MTMpLFU9ZSg5MSkscj1lKDIxNzcwKSx5PWUoOTk4NTkpLG09ZSg1NTI0MSksdj1lKDk4NDIzKSxoPWUoNjcyOTQpLEU9ZSg5MjE3OSksYz1lKDg1ODkzKSxmPVsiZmllbGRQcm9wcyIsInByb0ZpZWxkUHJvcHMiXSxfPVsiZmllbGRQcm9wcyIsInByb0ZpZWxkUHJvcHMiXSxGPSJ0ZXh0IixkPWZ1bmN0aW9uKG4pe3ZhciBpPW4uZmllbGRQcm9wcyxwPW4ucHJvRmllbGRQcm9wcyxhPSgwLFUuWikobixmKTtyZXR1cm4oMCxjLmpzeCkoRS5aLCgwLHQuWikoe3ZhbHVlVHlwZTpGLGZpZWxkUHJvcHM6aSxmaWxlZENvbmZpZzp7dmFsdWVUeXBlOkZ9LHByb0ZpZWxkUHJvcHM6cH0sYSkpfSxNPWZ1bmN0aW9uKG4pe3ZhciBpPSgwLHIuWikobi5vcGVufHwhMSx7dmFsdWU6bi5vcGVuLG9uQ2hhbmdlOm4ub25PcGVuQ2hhbmdlfSkscD0oMCxPLlopKGksMiksYT1wWzBdLHo9cFsxXTtyZXR1cm4oMCxjLmpzeCkoeS5aLkl0ZW0se3Nob3VsZFVwZGF0ZTohMCxub1N0eWxlOiEwLGNoaWxkcmVuOmZ1bmN0aW9uKEMpe3ZhciBELHM9Qy5nZXRGaWVsZFZhbHVlKG4ubmFtZXx8W10pO3JldHVybigwLGMuanN4KShtLlosKDAsdC5aKSgoMCx0LlopKHtnZXRQb3B1cENvbnRhaW5lcjpmdW5jdGlvbih1KXtyZXR1cm4gdSYmdS5wYXJlbnROb2RlP3UucGFyZW50Tm9kZTp1fSxvbk9wZW5DaGFuZ2U6ZnVuY3Rpb24odSl7cmV0dXJuIHoodSl9LGNvbnRlbnQ6KDAsYy5qc3hzKSgiZGl2Iix7c3R5bGU6e3BhZGRpbmc6IjRweCAwIn0sY2hpbGRyZW46WyhEPW4uc3RhdHVzUmVuZGVyKT09PW51bGx8fEQ9PT12b2lkIDA/dm9pZCAwOkQuY2FsbChuLHMpLG4uc3RyZW5ndGhUZXh0PygwLGMuanN4KSgiZGl2Iix7c3R5bGU6e21hcmdpblRvcDoxMH0sY2hpbGRyZW46KDAsYy5qc3gpKCJzcGFuIix7Y2hpbGRyZW46bi5zdHJlbmd0aFRleHR9KX0pOm51bGxdfSksb3ZlcmxheVN0eWxlOnt3aWR0aDoyNDB9LHBsYWNlbWVudDoicmlnaHRUb3AifSxuLnBvcG92ZXJQcm9wcykse30se29wZW46YSxjaGlsZHJlbjpuLmNoaWxkcmVufSkpfX0pfSxsPWZ1bmN0aW9uKG4pe3ZhciBpPW4uZmllbGRQcm9wcyxwPW4ucHJvRmllbGRQcm9wcyxhPSgwLFUuWikobixfKSx6PSgwLGgudXNlU3RhdGUpKCExKSxTPSgwLE8uWikoeiwyKSxDPVNbMF0sRD1TWzFdO3JldHVybiBpIT1udWxsJiZpLnN0YXR1c1JlbmRlciYmYS5uYW1lPygwLGMuanN4KShNLHtuYW1lOmEubmFtZSxzdGF0dXNSZW5kZXI6aT09bnVsbD92b2lkIDA6aS5zdGF0dXNSZW5kZXIscG9wb3ZlclByb3BzOmk9PW51bGw/dm9pZCAwOmkucG9wb3ZlclByb3BzLHN0cmVuZ3RoVGV4dDppPT1udWxsP3ZvaWQgMDppLnN0cmVuZ3RoVGV4dCxvcGVuOkMsb25PcGVuQ2hhbmdlOkQsY2hpbGRyZW46KDAsYy5qc3gpKCJkaXYiLHtjaGlsZHJlbjooMCxjLmpzeCkoRS5aLCgwLHQuWikoe3ZhbHVlVHlwZToicGFzc3dvcmQiLGZpZWxkUHJvcHM6KDAsdC5aKSgoMCx0LlopKHt9LCgwLHYuWikoaSxbInN0YXR1c1JlbmRlciIsInBvcG92ZXJQcm9wcyIsInN0cmVuZ3RoVGV4dCJdKSkse30se29uQmx1cjpmdW5jdGlvbihiKXt2YXIgdTtpPT1udWxsfHwodT1pLm9uQmx1cik9PT1udWxsfHx1PT09dm9pZCAwfHx1LmNhbGwoaSxiKSxEKCExKX0sb25DbGljazpmdW5jdGlvbihiKXt2YXIgdTtpPT1udWxsfHwodT1pLm9uQ2xpY2spPT09bnVsbHx8dT09PXZvaWQgMHx8dS5jYWxsKGksYiksRCghMCl9fSkscHJvRmllbGRQcm9wczpwLGZpbGVkQ29uZmlnOnt2YWx1ZVR5cGU6Rn19LGEpKX0pfSk6KDAsYy5qc3gpKEUuWiwoMCx0LlopKHt2YWx1ZVR5cGU6InBhc3N3b3JkIixmaWVsZFByb3BzOmkscHJvRmllbGRQcm9wczpwLGZpbGVkQ29uZmlnOnt2YWx1ZVR5cGU6Rn19LGEpKX0sbz1kO28uUGFzc3dvcmQ9bCxvLmRpc3BsYXlOYW1lPSJQcm9Gb3JtQ29tcG9uZW50IixXLlo9b30sMzM4Njc6ZnVuY3Rpb24oSixXLGUpe2UuZChXLHtpSzpmdW5jdGlvbigpe3JldHVybiBPfSx6YzpmdW5jdGlvbigpe3JldHVybiBVfX0pO3ZhciBPPWZ1bmN0aW9uKHIpe3JldHVybiByW3IuU1VDQ0VTUz0yMDBdPSJTVUNDRVNTIixyW3IuRVJST1I9LTFdPSJFUlJPUiIscltyLlRJTUVPVVQ9NDAxXT0iVElNRU9VVCIsci5UWVBFPSJzdWNjZXNzIixyfSh7fSksdD1mdW5jdGlvbihyKXtyZXR1cm4gci5HRVQ9IkdFVCIsci5QT1NUPSJQT1NUIixyLlBVVD0iUFVUIixyLkRFTEVURT0iREVMRVRFIixyfSh7fSksVT1mdW5jdGlvbihyKXtyZXR1cm4gci5KU09OPSJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgiLHIuRk9STV9VUkxFTkNPREVEPSJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD1VVEYtOCIsci5GT1JNX0RBVEE9Im11bHRpcGFydC9mb3JtLWRhdGE7Y2hhcnNldD1VVEYtOCIscn0oe30pfSwyMDAxNDpmdW5jdGlvbihKLFcsZSl7ZS5yKFcpO3ZhciBPPWUoMTUwMDkpLHQ9ZS5uKE8pLFU9ZSg5Nzg1Nykscj1lLm4oVSkseT1lKDk5Mjg5KSxtPWUubih5KSx2PWUoNTU3NCksaD1lLm4odiksRT1lKDY3Mjk0KSxjPWUoOTk4NTkpLGY9ZSgxNzc4OCksXz1lKDcxMjMwKSxGPWUoMTU3NDYpLGQ9ZSg4NDU2NyksTT1lKDIwODYzKSxsPWUoNzY3NzIpLG89ZSg5NzI2OSksZz1lKDMxMTk5KSxuPWUoNTk2NiksaT1lKDY0MzE3KSxwPWUoODU4OTMpLGE9ZnVuY3Rpb24oUyl7dmFyIEM9Yy5aLnVzZUZvcm0oKSxEPWgoKShDLDEpLHM9RFswXSxiPVMuZGVwdFRyZWUsdT1TLmRlcHRDaGVja2VkS2V5cyxqPSgwLEUudXNlU3RhdGUpKCIxIiksUD1oKCkoaiwyKSx4PVBbMF0sTD1QWzFdLG1lPSgwLEUudXNlU3RhdGUpKFtdKSxvZT1oKCkobWUsMiksaWU9b2VbMF0sZWU9b2VbMV0sdWU9KDAsRS51c2VTdGF0ZSkoW10pLFk9aCgpKHVlLDIpLHc9WVswXSxLPVlbMV0sSD0oMCxFLnVzZVN0YXRlKSghMCksST1oKCkoSCwyKSxuZT1JWzBdLFQ9SVsxXTsoMCxFLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtlZSh1KSxzLnJlc2V0RmllbGRzKCkscy5zZXRGaWVsZHNWYWx1ZSh7cm9sZUlkOlMudmFsdWVzLnJvbGVJZCxyb2xlTmFtZTpTLnZhbHVlcy5yb2xlTmFtZSxyb2xlS2V5OlMudmFsdWVzLnJvbGVLZXksZGF0YVNjb3BlOlMudmFsdWVzLmRhdGFTY29wZX0pLEwoUy52YWx1ZXMuZGF0YVNjb3BlKX0sW1MudmFsdWVzXSk7dmFyICQ9KDAsbC51c2VJbnRsKSgpLHZlPWZ1bmN0aW9uKCl7cy5zdWJtaXQoKX0sZGU9ZnVuY3Rpb24oKXtTLm9uQ2FuY2VsKCl9LGdlPWZ1bmN0aW9uKCl7dmFyIFY9bSgpKHQoKSgpLm1hcmsoZnVuY3Rpb24gayhRKXtyZXR1cm4gdCgpKCkud3JhcChmdW5jdGlvbih0ZSl7Zm9yKDs7KXN3aXRjaCh0ZS5wcmV2PXRlLm5leHQpe2Nhc2UgMDpTLm9uU3VibWl0KHIoKShyKCkoe30sUSkse30se2RlcHRJZHM6aWV9KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gdGUuc3RvcCgpfX0sayl9KSk7cmV0dXJuIGZ1bmN0aW9uKFEpe3JldHVybiBWLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksZmU9ZnVuY3Rpb24gVihrKXt2YXIgUT1bXTtyZXR1cm4gay5mb3JFYWNoKGZ1bmN0aW9uKF9lKXtRLnB1c2goX2Uua2V5KSxfZS5jaGlsZHJlbiYmKFE9US5jb25jYXQoVihfZS5jaGlsZHJlbikpKX0pLFF9LEVlPWZlKGIpLGNlPWZ1bmN0aW9uKGspe2suaW5jbHVkZXMoImRlcHRFeHBhbmQiKT9LKEVlKTpLKFtdKSxrLmluY2x1ZGVzKCJkZXB0Tm9kZUFsbCIpP2VlKEVlKTplZShbXSksay5pbmNsdWRlcygiZGVwdENoZWNrU3RyaWN0bHkiKT9UKCExKTpUKCEwKX07cmV0dXJuKDAscC5qc3gpKGYuWix7d2lkdGg6NjQwLHRpdGxlOiQuZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS51c2VyLmF1dGgucm9sZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NTIwNlx1OTE0RFx1ODlEMlx1ODI3MiJ9KSxvcGVuOlMub3BlbixkZXN0cm95T25DbG9zZTohMCxmb3JjZVJlbmRlcjohMCxvbk9rOnZlLG9uQ2FuY2VsOmRlLGNoaWxkcmVuOigwLHAuanN4cykoby5BLHtmb3JtOnMsZ3JpZDohMCxsYXlvdXQ6Imhvcml6b250YWwiLG9uRmluaXNoOmdlLGluaXRpYWxWYWx1ZXM6e2xvZ2luX3Bhc3N3b3JkOiIiLGNvbmZpcm1fcGFzc3dvcmQ6IiJ9LGNoaWxkcmVuOlsoMCxwLmpzeCkoZy5aLHtuYW1lOiJyb2xlSWQiLGxhYmVsOiQuZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5yb2xlLnJvbGVfaWQiLGRlZmF1bHRNZXNzYWdlOiJcdTg5RDJcdTgyNzJcdTdGMTZcdTUzRjcifSksY29sUHJvcHM6e21kOjEyLHhsOjEyfSxwbGFjZWhvbGRlcjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU4OUQyXHU4MjcyXHU3RjE2XHU1M0Y3IixkaXNhYmxlZDohMCxoaWRkZW46ITAscnVsZXM6W3tyZXF1aXJlZDohMSxtZXNzYWdlOigwLHAuanN4KShsLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTg5RDJcdTgyNzJcdTdGMTZcdTUzRjdcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTg5RDJcdTgyNzJcdTdGMTZcdTUzRjdcdUZGMDEifSl9XX0pLCgwLHAuanN4KShuLlose25hbWU6InJvbGVOYW1lIixsYWJlbDokLmZvcm1hdE1lc3NhZ2Uoe2lkOiJzeXN0ZW0ucm9sZS5yb2xlX25hbWUiLGRlZmF1bHRNZXNzYWdlOiJcdTg5RDJcdTgyNzJcdTU0MERcdTc5RjAifSksZGlzYWJsZWQ6ITAscGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1ODlEMlx1ODI3Mlx1NTQwRFx1NzlGMCIscnVsZXM6W3tyZXF1aXJlZDohMCxtZXNzYWdlOigwLHAuanN4KShsLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTg5RDJcdTgyNzJcdTU0MERcdTc5RjBcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTg5RDJcdTgyNzJcdTU0MERcdTc5RjBcdUZGMDEifSl9XX0pLCgwLHAuanN4KShuLlose25hbWU6InJvbGVLZXkiLGxhYmVsOiQuZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5yb2xlLnJvbGVfa2V5IixkZWZhdWx0TWVzc2FnZToiXHU2NzQzXHU5NjUwXHU1QjU3XHU3QjI2XHU0RTMyIn0pLGRpc2FibGVkOiEwLHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdTg5RDJcdTgyNzJcdTY3NDNcdTk2NTBcdTVCNTdcdTdCMjZcdTRFMzIiLHJ1bGVzOlt7cmVxdWlyZWQ6ITAsbWVzc2FnZTooMCxwLmpzeCkobC5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU4OUQyXHU4MjcyXHU2NzQzXHU5NjUwXHU1QjU3XHU3QjI2XHU0RTMyXHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU4OUQyXHU4MjcyXHU2NzQzXHU5NjUwXHU1QjU3XHU3QjI2XHU0RTMyXHVGRjAxIn0pfV19KSwoMCxwLmpzeCkoaS5aLHtuYW1lOiJkYXRhU2NvcGUiLGxhYmVsOiJcdTY3NDNcdTk2NTBcdTgzMDNcdTU2RjQiLGluaXRpYWxWYWx1ZToiMSIscGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NzUyOFx1NjIzN1x1NjAyN1x1NTIyQiIsdmFsdWVFbnVtOnsxOiJcdTUxNjhcdTkwRThcdTY1NzBcdTYzNkVcdTY3NDNcdTk2NTAiLDI6Ilx1ODFFQVx1NUI5QVx1NjU3MFx1NjM2RVx1Njc0M1x1OTY1MCIsMzoiXHU2NzJDXHU5MEU4XHU5NUU4XHU2NTcwXHU2MzZFXHU2NzQzXHU5NjUwIiw0OiJcdTY3MkNcdTkwRThcdTk1RThcdTUzQ0FcdTRFRTVcdTRFMEJcdTY1NzBcdTYzNkVcdTY3NDNcdTk2NTAiLDU6Ilx1NEVDNVx1NjcyQ1x1NEVCQVx1NjU3MFx1NjM2RVx1Njc0M1x1OTY1MCJ9LHJ1bGVzOlt7cmVxdWlyZWQ6ITB9XSxmaWVsZFByb3BzOntvbkNoYW5nZTpmdW5jdGlvbihrKXtMKGspfX19KSwoMCxwLmpzeCkoby5BLkl0ZW0se25hbWU6ImRlcHRJZHMiLGxhYmVsOiQuZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5yb2xlLmF1dGgiLGRlZmF1bHRNZXNzYWdlOiJcdTgzRENcdTUzNTVcdTY3NDNcdTk2NTAifSkscmVxdWlyZWQ6eD09PSIxIixoaWRkZW46eCE9PSIxIixjaGlsZHJlbjooMCxwLmpzeHMpKF8uWix7Z3V0dGVyOlsxNiwxNl0sY2hpbGRyZW46WygwLHAuanN4KShGLlose21kOjI0LGNoaWxkcmVuOigwLHAuanN4KShkLlouR3JvdXAse29wdGlvbnM6W3tsYWJlbDoiXHU1QzU1XHU1RjAwL1x1NjI5OFx1NTNFMCIsdmFsdWU6ImRlcHRFeHBhbmQifSx7bGFiZWw6Ilx1NTE2OFx1OTAwOS9cdTUxNjhcdTRFMERcdTkwMDkiLHZhbHVlOiJkZXB0Tm9kZUFsbCJ9XSxvbkNoYW5nZTpjZX0pfSksKDAscC5qc3gpKEYuWix7bWQ6MjQsY2hpbGRyZW46KDAscC5qc3gpKE0uWix7Y2hlY2thYmxlOiEwLGNoZWNrU3RyaWN0bHk6bmUsZXhwYW5kZWRLZXlzOncsdHJlZURhdGE6YixjaGVja2VkS2V5czppZSxkZWZhdWx0Q2hlY2tlZEtleXM6dSxvbkNoZWNrOmZ1bmN0aW9uKGssUSl7cmV0dXJuIGNvbnNvbGUubG9nKGssUSksZWUobmU/ay5jaGVja2VkOntjaGVja2VkOmssaGFsZkNoZWNrZWQ6US5oYWxmQ2hlY2tlZEtleXN9KX0sb25FeHBhbmQ6ZnVuY3Rpb24oayl7Syh3LmNvbmNhdChrKSl9fSl9KV19KX0pXX0pfSl9O1cuZGVmYXVsdD1hfSwxNzc6ZnVuY3Rpb24oSixXLGUpe2UucihXKTt2YXIgTz1lKDE1MDA5KSx0PWUubihPKSxVPWUoOTc4NTcpLHI9ZS5uKFUpLHk9ZSg5OTI4OSksbT1lLm4oeSksdj1lKDU1NzQpLGg9ZS5uKHYpLEU9ZSg2NzI5NCksYz1lKDk3MjY5KSxmPWUoMzExOTkpLF89ZSg1OTY2KSxGPWUoODY2MTUpLGQ9ZSg5MDY3MiksTT1lKDk5ODU5KSxsPWUoMTc3ODgpLG89ZSg3Njc3MiksZz1lKDIwODYzKSxuPWUoODU4OTMpLGk9ZnVuY3Rpb24oYSl7dmFyIHo9TS5aLnVzZUZvcm0oKSxTPWgoKSh6LDEpLEM9U1swXSxEPWEubWVudVRyZWUscz1hLm1lbnVDaGVja2VkS2V5cyxiPSgwLEUudXNlU3RhdGUpKFtdKSx1PWgoKShiLDIpLGo9dVswXSxQPXVbMV0seD1hLnN0YXR1c09wdGlvbnM7KDAsRS51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7Qy5yZXNldEZpZWxkcygpLEMuc2V0RmllbGRzVmFsdWUoe3JvbGVJZDphLnZhbHVlcy5yb2xlSWQscm9sZU5hbWU6YS52YWx1ZXMucm9sZU5hbWUscm9sZUtleTphLnZhbHVlcy5yb2xlS2V5LHJvbGVTb3J0OmEudmFsdWVzLnJvbGVTb3J0LGRhdGFTY29wZTphLnZhbHVlcy5kYXRhU2NvcGUsbWVudUNoZWNrU3RyaWN0bHk6YS52YWx1ZXMubWVudUNoZWNrU3RyaWN0bHksZGVwdENoZWNrU3RyaWN0bHk6YS52YWx1ZXMuZGVwdENoZWNrU3RyaWN0bHksc3RhdHVzOmEudmFsdWVzLnN0YXR1cyxkZWxGbGFnOmEudmFsdWVzLmRlbEZsYWcsY3JlYXRlQnk6YS52YWx1ZXMuY3JlYXRlQnksY3JlYXRlVGltZTphLnZhbHVlcy5jcmVhdGVUaW1lLHVwZGF0ZUJ5OmEudmFsdWVzLnVwZGF0ZUJ5LHVwZGF0ZVRpbWU6YS52YWx1ZXMudXBkYXRlVGltZSxyZW1hcms6YS52YWx1ZXMucmVtYXJrfSl9LFtDLGFdKTt2YXIgTD0oMCxvLnVzZUludGwpKCksbWU9ZnVuY3Rpb24oKXtDLnN1Ym1pdCgpfSxvZT1mdW5jdGlvbigpe2Eub25DYW5jZWwoKX0saWU9ZnVuY3Rpb24oKXt2YXIgZWU9bSgpKHQoKSgpLm1hcmsoZnVuY3Rpb24gdWUoWSl7cmV0dXJuIHQoKSgpLndyYXAoZnVuY3Rpb24oSyl7Zm9yKDs7KXN3aXRjaChLLnByZXY9Sy5uZXh0KXtjYXNlIDA6YS5vblN1Ym1pdChyKCkocigpKHt9LFkpLHt9LHttZW51SWRzOmp9KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gSy5zdG9wKCl9fSx1ZSl9KSk7cmV0dXJuIGZ1bmN0aW9uKFkpe3JldHVybiBlZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpO3JldHVybigwLG4uanN4KShsLlose3dpZHRoOjY0MCx0aXRsZTpMLmZvcm1hdE1lc3NhZ2Uoe2lkOiJzeXN0ZW0ucm9sZS50aXRsZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1N0YxNlx1OEY5MVx1ODlEMlx1ODI3Mlx1NEZFMVx1NjA2RiJ9KSxmb3JjZVJlbmRlcjohMCxvcGVuOmEub3BlbixkZXN0cm95T25DbG9zZTohMCxvbk9rOm1lLG9uQ2FuY2VsOm9lLGNoaWxkcmVuOigwLG4uanN4cykoYy5BLHtmb3JtOkMsZ3JpZDohMCxsYXlvdXQ6Imhvcml6b250YWwiLHN1Ym1pdHRlcjohMSxvbkZpbmlzaDppZSxjaGlsZHJlbjpbKDAsbi5qc3gpKGYuWix7bmFtZToicm9sZUlkIixsYWJlbDpMLmZvcm1hdE1lc3NhZ2Uoe2lkOiJzeXN0ZW0ucm9sZS5yb2xlX2lkIixkZWZhdWx0TWVzc2FnZToiXHU4OUQyXHU4MjcyXHU3RjE2XHU1M0Y3In0pLHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdTg5RDJcdTgyNzJcdTdGMTZcdTUzRjciLGRpc2FibGVkOiEwLGhpZGRlbjohMCxydWxlczpbe3JlcXVpcmVkOiExLG1lc3NhZ2U6KDAsbi5qc3gpKG8uRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1ODlEMlx1ODI3Mlx1N0YxNlx1NTNGN1x1RkYwMSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1ODlEMlx1ODI3Mlx1N0YxNlx1NTNGN1x1RkYwMSJ9KX1dfSksKDAsbi5qc3gpKF8uWix7bmFtZToicm9sZU5hbWUiLGxhYmVsOkwuZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5yb2xlLnJvbGVfbmFtZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1ODlEMlx1ODI3Mlx1NTQwRFx1NzlGMCJ9KSxwbGFjZWhvbGRlcjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU4OUQyXHU4MjcyXHU1NDBEXHU3OUYwIixydWxlczpbe3JlcXVpcmVkOiEwLG1lc3NhZ2U6KDAsbi5qc3gpKG8uRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1ODlEMlx1ODI3Mlx1NTQwRFx1NzlGMFx1RkYwMSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1ODlEMlx1ODI3Mlx1NTQwRFx1NzlGMFx1RkYwMSJ9KX1dfSksKDAsbi5qc3gpKF8uWix7bmFtZToicm9sZUtleSIsbGFiZWw6TC5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLnJvbGUucm9sZV9rZXkiLGRlZmF1bHRNZXNzYWdlOiJcdTY3NDNcdTk2NTBcdTVCNTdcdTdCMjZcdTRFMzIifSkscGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1ODlEMlx1ODI3Mlx1Njc0M1x1OTY1MFx1NUI1N1x1N0IyNlx1NEUzMiIscnVsZXM6W3tyZXF1aXJlZDohMCxtZXNzYWdlOigwLG4uanN4KShvLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTg5RDJcdTgyNzJcdTY3NDNcdTk2NTBcdTVCNTdcdTdCMjZcdTRFMzJcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTg5RDJcdTgyNzJcdTY3NDNcdTk2NTBcdTVCNTdcdTdCMjZcdTRFMzJcdUZGMDEifSl9XX0pLCgwLG4uanN4KShmLlose25hbWU6InJvbGVTb3J0IixsYWJlbDpMLmZvcm1hdE1lc3NhZ2Uoe2lkOiJzeXN0ZW0ucm9sZS5yb2xlX3NvcnQiLGRlZmF1bHRNZXNzYWdlOiJcdTY2M0VcdTc5M0FcdTk4N0FcdTVFOEYifSkscGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NjYzRVx1NzkzQVx1OTg3QVx1NUU4RiIscnVsZXM6W3tyZXF1aXJlZDohMCxtZXNzYWdlOigwLG4uanN4KShvLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTY2M0VcdTc5M0FcdTk4N0FcdTVFOEZcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTY2M0VcdTc5M0FcdTk4N0FcdTVFOEZcdUZGMDEifSl9XSxmaWVsZFByb3BzOntkZWZhdWx0VmFsdWU6MX19KSwoMCxuLmpzeCkoRi5aLkdyb3VwLHt2YWx1ZUVudW06eCxuYW1lOiJzdGF0dXMiLGxhYmVsOkwuZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5yb2xlLnN0YXR1cyIsZGVmYXVsdE1lc3NhZ2U6Ilx1ODlEMlx1ODI3Mlx1NzJCNlx1NjAwMSJ9KSxwbGFjZWhvbGRlcjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU4OUQyXHU4MjcyXHU3MkI2XHU2MDAxIixydWxlczpbe3JlcXVpcmVkOiEwLG1lc3NhZ2U6KDAsbi5qc3gpKG8uRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1ODlEMlx1ODI3Mlx1NzJCNlx1NjAwMVx1RkYwMSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1ODlEMlx1ODI3Mlx1NzJCNlx1NjAwMVx1RkYwMSJ9KX1dLGZpZWxkUHJvcHM6e2RlZmF1bHRWYWx1ZToiMCJ9fSksKDAsbi5qc3gpKGMuQS5JdGVtLHtuYW1lOiJtZW51SWRzIixsYWJlbDpMLmZvcm1hdE1lc3NhZ2Uoe2lkOiJzeXN0ZW0ucm9sZS5hdXRoIixkZWZhdWx0TWVzc2FnZToiXHU4M0RDXHU1MzU1XHU2NzQzXHU5NjUwIn0pLGNoaWxkcmVuOigwLG4uanN4KShnLlose2NoZWNrYWJsZTohMCxtdWx0aXBsZTohMCxjaGVja1N0cmljdGx5OiEwLGRlZmF1bHRFeHBhbmRBbGw6ITEsdHJlZURhdGE6RCxkZWZhdWx0Q2hlY2tlZEtleXM6cyxvbkNoZWNrOmZ1bmN0aW9uKHVlKXtyZXR1cm4gUCh1ZS5jaGVja2VkKX19KX0pLCgwLG4uanN4KShkLlose25hbWU6InJlbWFyayIsbGFiZWw6TC5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLnJvbGUucmVtYXJrIixkZWZhdWx0TWVzc2FnZToiXHU1OTA3XHU2Q0U4In0pLHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdTU5MDdcdTZDRTgiLHJ1bGVzOlt7cmVxdWlyZWQ6ITEsbWVzc2FnZTooMCxuLmpzeCkoby5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU1OTA3XHU2Q0U4XHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU1OTA3XHU2Q0U4XHVGRjAxIn0pfV19KV19KX0pfTtXLmRlZmF1bHQ9aX0sMzgzOTQ6ZnVuY3Rpb24oSixXLGUpe2UucihXKTt2YXIgTz1lKDU1NzQpLHQ9ZS5uKE8pLFU9ZSgxNTAwOSkscj1lLm4oVSkseT1lKDk3ODU3KSxtPWUubih5KSx2PWUoOTkyODkpLGg9ZS5uKHYpLEU9ZSg2NzI5NCksYz1lKDc2NzcyKSxmPWUoMTc3ODgpLF89ZSgyNDUzKSxGPWUoNzIyNjkpLGQ9ZSg4MzYyMiksTT1lKDg1NDE4KSxsPWUoNzg5NTcpLG89ZSg2MTEwKSxnPWUoNjUzODUpLG49ZSgyMjM2KSxpPWUoODY1NDgpLHA9ZSg0ODY4OSksYT1lKDgwODgyKSx6PWUoMjQ5NjkpLFM9ZSgxMTQ3NSksQz1lKDM3NTYzKSxEPWUoMTc3KSxzPWUoOTI5ODIpLGI9ZSgzMTk4MSksdT1lKDUyNzI4KSxqPWUoMjAwMTQpLFA9ZSg4NTg5MykseD1mLlouY29uZmlybSxMPWZ1bmN0aW9uKCl7dmFyIFk9aCgpKHIoKSgpLm1hcmsoZnVuY3Rpb24gdyhLKXt2YXIgSCxJO3JldHVybiByKCkoKS53cmFwKGZ1bmN0aW9uKFQpe2Zvcig7Oylzd2l0Y2goVC5wcmV2PVQubmV4dCl7Y2FzZSAwOnJldHVybiBIPV8uWlAubG9hZGluZygiXHU2QjYzXHU1NzI4XHU2REZCXHU1MkEwIiksVC5wcmV2PTEsVC5uZXh0PTQsKDAsQy5fZCkobSgpKHt9LEspKTtjYXNlIDQ6cmV0dXJuIEk9VC5zZW50LEgoKSxJLmNvZGU9PT0yMDA/Xy5aUC5zdWNjZXNzKCJcdTZERkJcdTUyQTBcdTYyMTBcdTUyOUYiKTpfLlpQLmVycm9yKEkubXNnKSxULmFicnVwdCgicmV0dXJuIiwhMCk7Y2FzZSAxMDpyZXR1cm4gVC5wcmV2PTEwLFQudDA9VC5jYXRjaCgxKSxIKCksXy5aUC5lcnJvcigiXHU2REZCXHU1MkEwXHU1OTMxXHU4RDI1XHU4QkY3XHU5MUNEXHU4QkQ1XHVGRjAxIiksVC5hYnJ1cHQoInJldHVybiIsITEpO2Nhc2UgMTU6Y2FzZSJlbmQiOnJldHVybiBULnN0b3AoKX19LHcsbnVsbCxbWzEsMTBdXSl9KSk7cmV0dXJuIGZ1bmN0aW9uKEspe3JldHVybiBZLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksbWU9ZnVuY3Rpb24oKXt2YXIgWT1oKCkocigpKCkubWFyayhmdW5jdGlvbiB3KEspe3ZhciBILEk7cmV0dXJuIHIoKSgpLndyYXAoZnVuY3Rpb24oVCl7Zm9yKDs7KXN3aXRjaChULnByZXY9VC5uZXh0KXtjYXNlIDA6cmV0dXJuIEg9Xy5aUC5sb2FkaW5nKCJcdTZCNjNcdTU3MjhcdTY2RjRcdTY1QjAiKSxULnByZXY9MSxULm5leHQ9NCwoMCxDLnVsKShLKTtjYXNlIDQ6cmV0dXJuIEk9VC5zZW50LEgoKSxJLmNvZGU9PT0yMDA/Xy5aUC5zdWNjZXNzKCJcdTY2RjRcdTY1QjBcdTYyMTBcdTUyOUYiKTpfLlpQLmVycm9yKEkubXNnKSxULmFicnVwdCgicmV0dXJuIiwhMCk7Y2FzZSAxMDpyZXR1cm4gVC5wcmV2PTEwLFQudDA9VC5jYXRjaCgxKSxIKCksXy5aUC5lcnJvcigiXHU5MTREXHU3RjZFXHU1OTMxXHU4RDI1XHU4QkY3XHU5MUNEXHU4QkQ1XHVGRjAxIiksVC5hYnJ1cHQoInJldHVybiIsITEpO2Nhc2UgMTU6Y2FzZSJlbmQiOnJldHVybiBULnN0b3AoKX19LHcsbnVsbCxbWzEsMTBdXSl9KSk7cmV0dXJuIGZ1bmN0aW9uKEspe3JldHVybiBZLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksb2U9ZnVuY3Rpb24oKXt2YXIgWT1oKCkocigpKCkubWFyayhmdW5jdGlvbiB3KEspe3ZhciBILEk7cmV0dXJuIHIoKSgpLndyYXAoZnVuY3Rpb24oVCl7Zm9yKDs7KXN3aXRjaChULnByZXY9VC5uZXh0KXtjYXNlIDA6aWYoSD1fLlpQLmxvYWRpbmcoIlx1NkI2M1x1NTcyOFx1NTIyMFx1OTY2NCIpLEspe1QubmV4dD0zO2JyZWFrfXJldHVybiBULmFicnVwdCgicmV0dXJuIiwhMCk7Y2FzZSAzOnJldHVybiBULnByZXY9MyxULm5leHQ9NiwoMCxDLmw1KShLLm1hcChmdW5jdGlvbigkKXtyZXR1cm4gJC5yb2xlSWR9KS5qb2luKCIsIikpO2Nhc2UgNjpyZXR1cm4gST1ULnNlbnQsSCgpLEkuY29kZT09PTIwMD9fLlpQLnN1Y2Nlc3MoIlx1NTIyMFx1OTY2NFx1NjIxMFx1NTI5Rlx1RkYwQ1x1NTM3M1x1NUMwNlx1NTIzN1x1NjVCMCIpOl8uWlAuZXJyb3IoSS5tc2cpLFQuYWJydXB0KCJyZXR1cm4iLCEwKTtjYXNlIDEyOnJldHVybiBULnByZXY9MTIsVC50MD1ULmNhdGNoKDMpLEgoKSxfLlpQLmVycm9yKCJcdTUyMjBcdTk2NjRcdTU5MzFcdThEMjVcdUZGMENcdThCRjdcdTkxQ0RcdThCRDUiKSxULmFicnVwdCgicmV0dXJuIiwhMSk7Y2FzZSAxNzpjYXNlImVuZCI6cmV0dXJuIFQuc3RvcCgpfX0sdyxudWxsLFtbMywxMl1dKX0pKTtyZXR1cm4gZnVuY3Rpb24oSyl7cmV0dXJuIFkuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSxpZT1mdW5jdGlvbigpe3ZhciBZPWgoKShyKCkoKS5tYXJrKGZ1bmN0aW9uIHcoSyl7dmFyIEgsSSxuZTtyZXR1cm4gcigpKCkud3JhcChmdW5jdGlvbigkKXtmb3IoOzspc3dpdGNoKCQucHJldj0kLm5leHQpe2Nhc2UgMDppZihIPV8uWlAubG9hZGluZygiXHU2QjYzXHU1NzI4XHU1MjIwXHU5NjY0IiksSyl7JC5uZXh0PTM7YnJlYWt9cmV0dXJuICQuYWJydXB0KCJyZXR1cm4iLCEwKTtjYXNlIDM6cmV0dXJuICQucHJldj0zLEk9W0sucm9sZUlkXSwkLm5leHQ9NywoMCxDLmw1KShJLmpvaW4oIiwiKSk7Y2FzZSA3OnJldHVybiBuZT0kLnNlbnQsSCgpLG5lLmNvZGU9PT0yMDA/Xy5aUC5zdWNjZXNzKCJcdTUyMjBcdTk2NjRcdTYyMTBcdTUyOUZcdUZGMENcdTUzNzNcdTVDMDZcdTUyMzdcdTY1QjAiKTpfLlpQLmVycm9yKG5lLm1zZyksJC5hYnJ1cHQoInJldHVybiIsITApO2Nhc2UgMTM6cmV0dXJuICQucHJldj0xMywkLnQwPSQuY2F0Y2goMyksSCgpLF8uWlAuZXJyb3IoIlx1NTIyMFx1OTY2NFx1NTkzMVx1OEQyNVx1RkYwQ1x1OEJGN1x1OTFDRFx1OEJENSIpLCQuYWJydXB0KCJyZXR1cm4iLCExKTtjYXNlIDE4OmNhc2UiZW5kIjpyZXR1cm4gJC5zdG9wKCl9fSx3LG51bGwsW1szLDEzXV0pfSkpO3JldHVybiBmdW5jdGlvbihLKXtyZXR1cm4gWS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLGVlPWZ1bmN0aW9uKCl7dmFyIFk9aCgpKHIoKSgpLm1hcmsoZnVuY3Rpb24gdygpe3ZhciBLO3JldHVybiByKCkoKS53cmFwKGZ1bmN0aW9uKEkpe2Zvcig7Oylzd2l0Y2goSS5wcmV2PUkubmV4dCl7Y2FzZSAwOnJldHVybiBLPV8uWlAubG9hZGluZygiXHU2QjYzXHU1NzI4XHU1QkZDXHU1MUZBIiksSS5wcmV2PTEsSS5uZXh0PTQsKDAsQy5McCkoKTtjYXNlIDQ6cmV0dXJuIEsoKSxfLlpQLnN1Y2Nlc3MoIlx1NUJGQ1x1NTFGQVx1NjIxMFx1NTI5RiIpLEkuYWJydXB0KCJyZXR1cm4iLCEwKTtjYXNlIDk6cmV0dXJuIEkucHJldj05LEkudDA9SS5jYXRjaCgxKSxLKCksXy5aUC5lcnJvcigiXHU1QkZDXHU1MUZBXHU1OTMxXHU4RDI1XHVGRjBDXHU4QkY3XHU5MUNEXHU4QkQ1IiksSS5hYnJ1cHQoInJldHVybiIsITEpO2Nhc2UgMTQ6Y2FzZSJlbmQiOnJldHVybiBJLnN0b3AoKX19LHcsbnVsbCxbWzEsOV1dKX0pKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gWS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLHVlPWZ1bmN0aW9uKCl7dmFyIHc9Xy5aUC51c2VNZXNzYWdlKCksSz10KCkodywyKSxIPUtbMF0sST1LWzFdLG5lPSgwLEUudXNlUmVmKSgpLFQ9KDAsRS51c2VTdGF0ZSkoITEpLCQ9dCgpKFQsMiksdmU9JFswXSxkZT0kWzFdLGdlPSgwLEUudXNlU3RhdGUpKCExKSxmZT10KCkoZ2UsMiksRWU9ZmVbMF0sY2U9ZmVbMV0sVj0oMCxFLnVzZVJlZikoKSxrPSgwLEUudXNlU3RhdGUpKCksUT10KCkoaywyKSxfZT1RWzBdLHRlPVFbMV0sQWU9KDAsRS51c2VTdGF0ZSkoW10pLE1lPXQoKShBZSwyKSxhZT1NZVswXSxwZT1NZVsxXSxSZT0oMCxFLnVzZVN0YXRlKSgpLE9lPXQoKShSZSwyKSxiZT1PZVswXSxEZT1PZVsxXSxCZT0oMCxFLnVzZVN0YXRlKShbXSksQ2U9dCgpKEJlLDIpLHllPUNlWzBdLFRlPUNlWzFdLFdlPSgwLEUudXNlU3RhdGUpKFtdKSxGZT10KCkoV2UsMiksamU9RmVbMF0sTGU9RmVbMV0sbGU9KDAsYy51c2VBY2Nlc3MpKCksSWU9KDAsYy51c2VJbnRsKSgpOygwLEUudXNlRWZmZWN0KShmdW5jdGlvbigpeygwLHMucFgpKCJzeXNfbm9ybWFsX2Rpc2FibGUiKS50aGVuKGZ1bmN0aW9uKFgpe0xlKFgpfSl9LFtdKTt2YXIgVWU9ZnVuY3Rpb24oWil7dmFyIFI9Wi5zdGF0dXM9PT0iMSI/Ilx1NTQyRlx1NzUyOCI6Ilx1NTA1Q1x1NzUyOCIsQj1aLnN0YXR1cz09PSIwIj8iMSI6IjAiO3goe3RpdGxlOiJcdTc4NkVcdThCQTRcdTg5ODEiLmNvbmNhdChSKS5jb25jYXQoWi5yb2xlTmFtZSwiXHU4OUQyXHU4MjcyXHU1NDE3XHVGRjFGIiksb25PazpmdW5jdGlvbigpeygwLEMuc3ApKFoucm9sZUlkLEIpLnRoZW4oZnVuY3Rpb24oQSl7aWYoQS5jb2RlPT09MjAwKXt2YXIgTjtILm9wZW4oe3R5cGU6InN1Y2Nlc3MiLGNvbnRlbnQ6Ilx1NjZGNFx1NjVCMFx1NjIxMFx1NTI5Rlx1RkYwMSJ9KSwoTj1WLmN1cnJlbnQpPT09bnVsbHx8Tj09PXZvaWQgMHx8Ti5yZWxvYWQoKX1lbHNlIEgub3Blbih7dHlwZToiZXJyb3IiLGNvbnRlbnQ6Ilx1NjZGNFx1NjVCMFx1NTkzMVx1OEQyNVx1RkYwMSJ9KX0pfX0pfSxLZT1be3RpdGxlOigwLFAuanN4KShjLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJzeXN0ZW0ucm9sZS5yb2xlX2lkIixkZWZhdWx0TWVzc2FnZToiXHU4OUQyXHU4MjcyXHU3RjE2XHU1M0Y3In0pLGRhdGFJbmRleDoicm9sZUlkIix2YWx1ZVR5cGU6InRleHQifSx7dGl0bGU6KDAsUC5qc3gpKGMuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InN5c3RlbS5yb2xlLnJvbGVfbmFtZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1ODlEMlx1ODI3Mlx1NTQwRFx1NzlGMCJ9KSxkYXRhSW5kZXg6InJvbGVOYW1lIix2YWx1ZVR5cGU6InRleHQifSx7dGl0bGU6KDAsUC5qc3gpKGMuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InN5c3RlbS5yb2xlLnJvbGVfa2V5IixkZWZhdWx0TWVzc2FnZToiXHU4OUQyXHU4MjcyXHU2NzQzXHU5NjUwXHU1QjU3XHU3QjI2XHU0RTMyIn0pLGRhdGFJbmRleDoicm9sZUtleSIsdmFsdWVUeXBlOiJ0ZXh0IixoaWRlSW5TZWFyY2g6ITB9LHt0aXRsZTooMCxQLmpzeCkoYy5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoic3lzdGVtLnJvbGUucm9sZV9zb3J0IixkZWZhdWx0TWVzc2FnZToiXHU2NjNFXHU3OTNBXHU5ODdBXHU1RThGIn0pLGRhdGFJbmRleDoicm9sZVNvcnQiLHZhbHVlVHlwZToidGV4dCIsaGlkZUluU2VhcmNoOiEwfSx7dGl0bGU6KDAsUC5qc3gpKGMuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InN5c3RlbS5yb2xlLnN0YXR1cyIsZGVmYXVsdE1lc3NhZ2U6Ilx1ODlEMlx1ODI3Mlx1NzJCNlx1NjAwMSJ9KSxkYXRhSW5kZXg6InN0YXR1cyIsdmFsdWVUeXBlOiJzZWxlY3QiLHZhbHVlRW51bTpqZSxyZW5kZXI6ZnVuY3Rpb24oWixSKXtyZXR1cm4oMCxQLmpzeCkoRi5aLHtjaGVja2VkOlIuc3RhdHVzPT09IjAiLGNoZWNrZWRDaGlsZHJlbjoiXHU2QjYzXHU1RTM4Iix1bkNoZWNrZWRDaGlsZHJlbjoiXHU1MDVDXHU3NTI4IixkZWZhdWx0Q2hlY2tlZDohMCxvbkNsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIFVlKFIpfX0pfX0se3RpdGxlOigwLFAuanN4KShjLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJzeXN0ZW0ucm9sZS5jcmVhdGVfdGltZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NTIxQlx1NUVGQVx1NjVGNlx1OTVGNCJ9KSxkYXRhSW5kZXg6ImNyZWF0ZVRpbWUiLHZhbHVlVHlwZToiZGF0ZVJhbmdlIixyZW5kZXI6ZnVuY3Rpb24oWixSKXtyZXR1cm4oMCxQLmpzeHMpKCJzcGFuIix7Y2hpbGRyZW46W1IuY3JlYXRlVGltZS50b1N0cmluZygpLCIgIl19KX0sc2VhcmNoOnt0cmFuc2Zvcm06ZnVuY3Rpb24oWil7cmV0dXJueyJwYXJhbXNbYmVnaW5UaW1lXSI6WlswXSwicGFyYW1zW2VuZFRpbWVdIjpaWzFdfX19fSx7dGl0bGU6KDAsUC5qc3gpKGMuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InBhZ2VzLnNlYXJjaFRhYmxlLnRpdGxlT3B0aW9uIixkZWZhdWx0TWVzc2FnZToiXHU2NENEXHU0RjVDIn0pLGRhdGFJbmRleDoib3B0aW9uIix3aWR0aDoiMjIwcHgiLHZhbHVlVHlwZToib3B0aW9uIixyZW5kZXI6ZnVuY3Rpb24oWixSKXtyZXR1cm5bKDAsUC5qc3gpKGQuWlAse3R5cGU6ImxpbmsiLHNpemU6InNtYWxsIixpY29uOigwLFAuanN4KShpLlose30pLGhpZGRlbjohbGUuaGFzUGVybXMoInN5c3RlbTpyb2xlOmVkaXQiKSxvbkNsaWNrOmZ1bmN0aW9uKCl7KDAsQy5taikoUi5yb2xlSWQpLnRoZW4oZnVuY3Rpb24oRyl7aWYoRy5jb2RlPT09MjAwKXt2YXIgQT0oMCxiLmx0KShHLm1lbnVzKTtEZShBKSxUZShHLmNoZWNrZWRLZXlzLm1hcChmdW5jdGlvbihOKXtyZXR1cm4iIi5jb25jYXQoTil9KSksZGUoITApLHRlKFIpfWVsc2UgXy5aUC53YXJuaW5nKEcubXNnKX0pfSxjaGlsZHJlbjoiXHU3RjE2XHU4RjkxIn0sImVkaXQiKSwoMCxQLmpzeCkoZC5aUCx7dHlwZToibGluayIsc2l6ZToic21hbGwiLGRhbmdlcjohMCxpY29uOigwLFAuanN4KShwLlose30pLGhpZGRlbjohbGUuaGFzUGVybXMoInN5c3RlbTpyb2xlOnJlbW92ZSIpLG9uQ2xpY2s6aCgpKHIoKSgpLm1hcmsoZnVuY3Rpb24gQigpe3JldHVybiByKCkoKS53cmFwKGZ1bmN0aW9uKEEpe2Zvcig7Oylzd2l0Y2goQS5wcmV2PUEubmV4dCl7Y2FzZSAwOmYuWi5jb25maXJtKHt0aXRsZToiXHU1MjIwXHU5NjY0Iixjb250ZW50OiJcdTc4NkVcdTVCOUFcdTUyMjBcdTk2NjRcdThCRTVcdTk4NzlcdTU0MTdcdUZGMUYiLG9rVGV4dDoiXHU3ODZFXHU4QkE0IixjYW5jZWxUZXh0OiJcdTUzRDZcdTZEODgiLG9uT2s6ZnVuY3Rpb24oKXt2YXIgTj1oKCkocigpKCkubWFyayhmdW5jdGlvbiBzZSgpe3ZhciBQZTtyZXR1cm4gcigpKCkud3JhcChmdW5jdGlvbihoZSl7Zm9yKDs7KXN3aXRjaChoZS5wcmV2PWhlLm5leHQpe2Nhc2UgMDpyZXR1cm4gaGUubmV4dD0yLGllKFIpO2Nhc2UgMjpQZT1oZS5zZW50LFBlJiZWLmN1cnJlbnQmJlYuY3VycmVudC5yZWxvYWQoKTtjYXNlIDQ6Y2FzZSJlbmQiOnJldHVybiBoZS5zdG9wKCl9fSxzZSl9KSk7ZnVuY3Rpb24gcSgpe3JldHVybiBOLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gcX0oKX0pO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIEEuc3RvcCgpfX0sQil9KSksY2hpbGRyZW46Ilx1NTIyMFx1OTY2NCJ9LCJiYXRjaFJlbW92ZSIpLCgwLFAuanN4KShNLlose21lbnU6e2l0ZW1zOlt7bGFiZWw6Ilx1NjU3MFx1NjM2RVx1Njc0M1x1OTY1MCIsa2V5OiJkYXRhc2NvcGUiLGRpc2FibGVkOiFsZS5oYXNQZXJtcygic3lzdGVtOnJvbGU6ZWRpdCIpfSx7bGFiZWw6Ilx1NTIwNlx1OTE0RFx1NzUyOFx1NjIzNyIsa2V5OiJhdXRoVXNlciIsZGlzYWJsZWQ6IWxlLmhhc1Blcm1zKCJzeXN0ZW06cm9sZTplZGl0Iil9XSxvbkNsaWNrOmZ1bmN0aW9uKEcpe3ZhciBBPUcua2V5O0E9PT0iZGF0YXNjb3BlIj8oKDAsQy5jWSkoUi5yb2xlSWQpLnRoZW4oZnVuY3Rpb24oTil7Ti5jb2RlPT09MjAwJiYodGUoTi5kYXRhKSxjZSghMCkpfSksKDAsQy5WbCkoUi5yb2xlSWQpLnRoZW4oZnVuY3Rpb24oTil7Ti5jb2RlPT09MjAwJiYoRGUoKDAsYi5sdCkoTi5kZXB0cykpLFRlKE4uY2hlY2tlZEtleXMubWFwKGZ1bmN0aW9uKHEpe3JldHVybiIiLmNvbmNhdChxKX0pKSl9KSk6QT09PSJhdXRoVXNlciImJmMuaGlzdG9yeS5wdXNoKCIvc3lzdGVtL3JvbGUtYXV0aC91c2VyLyIuY29uY2F0KFIucm9sZUlkKSl9fSxjaGlsZHJlbjooMCxQLmpzeCkoImEiLHtvbkNsaWNrOmZ1bmN0aW9uKEcpe3JldHVybiBHLnByZXZlbnREZWZhdWx0KCl9LGNoaWxkcmVuOigwLFAuanN4cykobC5aLHtjaGlsZHJlbjpbKDAsUC5qc3gpKGEuWix7fSksIlx1NjZGNFx1NTkxQSJdfSl9KX0sIm1vcmUiKV19fV07cmV0dXJuKDAsUC5qc3hzKShvLl96LHtjaGlsZHJlbjpbSSwoMCxQLmpzeCkoImRpdiIse3N0eWxlOnt3aWR0aDoiMTAwJSIsZmxvYXQ6InJpZ2h0In0sY2hpbGRyZW46KDAsUC5qc3gpKGcuWix7aGVhZGVyVGl0bGU6SWUuZm9ybWF0TWVzc2FnZSh7aWQ6InBhZ2VzLnNlYXJjaFRhYmxlLnRpdGxlIixkZWZhdWx0TWVzc2FnZToiXHU0RkUxXHU2MDZGIn0pLGFjdGlvblJlZjpWLGZvcm1SZWY6bmUscm93S2V5OiJyb2xlSWQiLHNlYXJjaDp7bGFiZWxXaWR0aDoxMjB9LHRvb2xCYXJSZW5kZXI6ZnVuY3Rpb24oKXtyZXR1cm5bKDAsUC5qc3hzKShkLlpQLHt0eXBlOiJwcmltYXJ5IixoaWRkZW46IWxlLmhhc1Blcm1zKCJzeXN0ZW06cm9sZTphZGQiKSxvbkNsaWNrOmgoKShyKCkoKS5tYXJrKGZ1bmN0aW9uIFooKXtyZXR1cm4gcigpKCkud3JhcChmdW5jdGlvbihCKXtmb3IoOzspc3dpdGNoKEIucHJldj1CLm5leHQpe2Nhc2UgMDooMCx1LlRoKSgpLnRoZW4oZnVuY3Rpb24oRyl7aWYoRy5jb2RlPT09MjAwKXt2YXIgQT0oMCxiLmx0KShHLmRhdGEpO0RlKEEpLFRlKFtdKSxkZSghMCksdGUodm9pZCAwKX1lbHNlIF8uWlAud2FybmluZyhHLm1zZyl9KTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBCLnN0b3AoKX19LFopfSkpLGNoaWxkcmVuOlsoMCxQLmpzeCkoei5aLHt9KSwiICIsKDAsUC5qc3gpKGMuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InBhZ2VzLnNlYXJjaFRhYmxlLm5ldyIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjVCMFx1NUVGQSJ9KV19LCJhZGQiKSwoMCxQLmpzeHMpKGQuWlAse3R5cGU6InByaW1hcnkiLGRhbmdlcjohMCxoaWRkZW46KGFlPT1udWxsP3ZvaWQgMDphZS5sZW5ndGgpPT09MHx8IWxlLmhhc1Blcm1zKCJzeXN0ZW06cm9sZTpyZW1vdmUiKSxvbkNsaWNrOmgoKShyKCkoKS5tYXJrKGZ1bmN0aW9uIFooKXtyZXR1cm4gcigpKCkud3JhcChmdW5jdGlvbihCKXtmb3IoOzspc3dpdGNoKEIucHJldj1CLm5leHQpe2Nhc2UgMDpmLlouY29uZmlybSh7dGl0bGU6Ilx1NjYyRlx1NTQyNlx1Nzg2RVx1OEJBNFx1NTIyMFx1OTY2NFx1NjI0MFx1OTAwOVx1NjU3MFx1NjM2RVx1OTg3OT8iLGljb246KDAsUC5qc3gpKFMuWix7fSksY29udGVudDoiXHU4QkY3XHU4QzI4XHU2MTRFXHU2NENEXHU0RjVDIixvbk9rOmZ1bmN0aW9uKCl7cmV0dXJuIGgoKShyKCkoKS5tYXJrKGZ1bmN0aW9uIEEoKXt2YXIgTixxLHNlO3JldHVybiByKCkoKS53cmFwKGZ1bmN0aW9uKHJlKXtmb3IoOzspc3dpdGNoKHJlLnByZXY9cmUubmV4dCl7Y2FzZSAwOnJldHVybiByZS5uZXh0PTIsb2UoYWUpO2Nhc2UgMjpOPXJlLnNlbnQsTiYmKHBlKFtdKSwocT1WLmN1cnJlbnQpPT09bnVsbHx8cT09PXZvaWQgMHx8KHNlPXEucmVsb2FkQW5kUmVzdCk9PT1udWxsfHxzZT09PXZvaWQgMHx8c2UuY2FsbChxKSk7Y2FzZSA0OmNhc2UiZW5kIjpyZXR1cm4gcmUuc3RvcCgpfX0sQSl9KSkoKX0sb25DYW5jZWw6ZnVuY3Rpb24oKXt9fSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gQi5zdG9wKCl9fSxaKX0pKSxjaGlsZHJlbjpbKDAsUC5qc3gpKHAuWix7fSksKDAsUC5qc3gpKGMuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InBhZ2VzLnNlYXJjaFRhYmxlLmRlbGV0ZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NTIyMFx1OTY2NCJ9KV19LCJyZW1vdmUiKSwoMCxQLmpzeHMpKGQuWlAse3R5cGU6InByaW1hcnkiLGhpZGRlbjohbGUuaGFzUGVybXMoInN5c3RlbTpyb2xlOmV4cG9ydCIpLG9uQ2xpY2s6aCgpKHIoKSgpLm1hcmsoZnVuY3Rpb24gWigpe3JldHVybiByKCkoKS53cmFwKGZ1bmN0aW9uKEIpe2Zvcig7Oylzd2l0Y2goQi5wcmV2PUIubmV4dCl7Y2FzZSAwOmVlKCk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gQi5zdG9wKCl9fSxaKX0pKSxjaGlsZHJlbjpbKDAsUC5qc3gpKHouWix7fSksKDAsUC5qc3gpKGMuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InBhZ2VzLnNlYXJjaFRhYmxlLmV4cG9ydCIsZGVmYXVsdE1lc3NhZ2U6Ilx1NUJGQ1x1NTFGQSJ9KV19LCJleHBvcnQiKV19LHJlcXVlc3Q6ZnVuY3Rpb24oWil7cmV0dXJuKDAsQy5KVikobSgpKHt9LFopKS50aGVuKGZ1bmN0aW9uKFIpe3ZhciBCPXtkYXRhOlIucm93cyx0b3RhbDpSLnRvdGFsLHN1Y2Nlc3M6ITB9O3JldHVybiBCfSl9LGNvbHVtbnM6S2Uscm93U2VsZWN0aW9uOntvbkNoYW5nZTpmdW5jdGlvbihaLFIpe3BlKFIpfX19LCJyb2xlTGlzdCIpfSksKGFlPT1udWxsP3ZvaWQgMDphZS5sZW5ndGgpPjAmJigwLFAuanN4KShuLlMse2V4dHJhOigwLFAuanN4cykoImRpdiIse2NoaWxkcmVuOlsoMCxQLmpzeCkoYy5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoicGFnZXMuc2VhcmNoVGFibGUuY2hvc2VuIixkZWZhdWx0TWVzc2FnZToiXHU1REYyXHU5MDA5XHU2MkU5In0pLCgwLFAuanN4KSgiYSIse3N0eWxlOntmb250V2VpZ2h0OjYwMH0sY2hpbGRyZW46YWUubGVuZ3RofSksKDAsUC5qc3gpKGMuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InBhZ2VzLnNlYXJjaFRhYmxlLml0ZW0iLGRlZmF1bHRNZXNzYWdlOiJcdTk4NzkifSldfSksY2hpbGRyZW46KDAsUC5qc3gpKGQuWlAse2RhbmdlcjohMCxoaWRkZW46IWxlLmhhc1Blcm1zKCJzeXN0ZW06cm9sZTpkZWwiKSxvbkNsaWNrOmgoKShyKCkoKS5tYXJrKGZ1bmN0aW9uIFgoKXtyZXR1cm4gcigpKCkud3JhcChmdW5jdGlvbihSKXtmb3IoOzspc3dpdGNoKFIucHJldj1SLm5leHQpe2Nhc2UgMDpmLlouY29uZmlybSh7dGl0bGU6Ilx1NTIyMFx1OTY2NCIsY29udGVudDoiXHU3ODZFXHU1QjlBXHU1MjIwXHU5NjY0XHU4QkU1XHU5ODc5XHU1NDE3XHVGRjFGIixva1RleHQ6Ilx1Nzg2RVx1OEJBNCIsY2FuY2VsVGV4dDoiXHU1M0Q2XHU2RDg4Iixvbk9rOmZ1bmN0aW9uKCl7dmFyIEI9aCgpKHIoKSgpLm1hcmsoZnVuY3Rpb24gQSgpe3ZhciBOLHEsc2U7cmV0dXJuIHIoKSgpLndyYXAoZnVuY3Rpb24ocmUpe2Zvcig7Oylzd2l0Y2gocmUucHJldj1yZS5uZXh0KXtjYXNlIDA6cmV0dXJuIHJlLm5leHQ9MixvZShhZSk7Y2FzZSAyOk49cmUuc2VudCxOJiYocGUoW10pLChxPVYuY3VycmVudCk9PT1udWxsfHxxPT09dm9pZCAwfHwoc2U9cS5yZWxvYWRBbmRSZXN0KT09PW51bGx8fHNlPT09dm9pZCAwfHxzZS5jYWxsKHEpKTtjYXNlIDQ6Y2FzZSJlbmQiOnJldHVybiByZS5zdG9wKCl9fSxBKX0pKTtmdW5jdGlvbiBHKCl7cmV0dXJuIEIuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBHfSgpfSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gUi5zdG9wKCl9fSxYKX0pKSxjaGlsZHJlbjooMCxQLmpzeCkoYy5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoicGFnZXMuc2VhcmNoVGFibGUuYmF0Y2hEZWxldGlvbiIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjI3OVx1OTFDRlx1NTIyMFx1OTY2NCJ9KX0sInJlbW92ZSIpfSksKDAsUC5qc3gpKEQuZGVmYXVsdCx7b25TdWJtaXQ6ZnVuY3Rpb24oKXt2YXIgWD1oKCkocigpKCkubWFyayhmdW5jdGlvbiBaKFIpe3ZhciBCO3JldHVybiByKCkoKS53cmFwKGZ1bmN0aW9uKEEpe2Zvcig7Oylzd2l0Y2goQS5wcmV2PUEubmV4dCl7Y2FzZSAwOmlmKEI9ITEsIVIucm9sZUlkKXtBLm5leHQ9NzticmVha31yZXR1cm4gQS5uZXh0PTQsbWUobSgpKHt9LFIpKTtjYXNlIDQ6Qj1BLnNlbnQsQS5uZXh0PTEwO2JyZWFrO2Nhc2UgNzpyZXR1cm4gQS5uZXh0PTksTChtKCkoe30sUikpO2Nhc2UgOTpCPUEuc2VudDtjYXNlIDEwOkImJihkZSghMSksdGUodm9pZCAwKSxWLmN1cnJlbnQmJlYuY3VycmVudC5yZWxvYWQoKSk7Y2FzZSAxMTpjYXNlImVuZCI6cmV0dXJuIEEuc3RvcCgpfX0sWil9KSk7cmV0dXJuIGZ1bmN0aW9uKFope3JldHVybiBYLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksb25DYW5jZWw6ZnVuY3Rpb24oKXtkZSghMSksdGUodm9pZCAwKX0sb3Blbjp2ZSx2YWx1ZXM6X2V8fHt9LG1lbnVUcmVlOmJlfHxbXSxtZW51Q2hlY2tlZEtleXM6eWV8fFtdLHN0YXR1c09wdGlvbnM6amV9KSwoMCxQLmpzeCkoai5kZWZhdWx0LHtvblN1Ym1pdDpmdW5jdGlvbigpe3ZhciBYPWgoKShyKCkoKS5tYXJrKGZ1bmN0aW9uIFooUil7dmFyIEI7cmV0dXJuIHIoKSgpLndyYXAoZnVuY3Rpb24oQSl7Zm9yKDs7KXN3aXRjaChBLnByZXY9QS5uZXh0KXtjYXNlIDA6cmV0dXJuIEEubmV4dD0yLCgwLEMudG0pKFIpO2Nhc2UgMjpCPUEuc2VudCxCJiYoY2UoITEpLHBlKFtdKSx0ZSh2b2lkIDApLF8uWlAuc3VjY2VzcygiXHU5MTREXHU3RjZFXHU2MjEwXHU1MjlGXHUzMDAyIikpO2Nhc2UgNDpjYXNlImVuZCI6cmV0dXJuIEEuc3RvcCgpfX0sWil9KSk7cmV0dXJuIGZ1bmN0aW9uKFope3JldHVybiBYLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksb25DYW5jZWw6ZnVuY3Rpb24oKXtjZSghMSkscGUoW10pLHRlKHZvaWQgMCl9LG9wZW46RWUsdmFsdWVzOl9lfHx7fSxkZXB0VHJlZTpiZXx8W10sZGVwdENoZWNrZWRLZXlzOnllfHxbXX0pXX0pfTtXLmRlZmF1bHQ9dWV9LDkyOTgyOmZ1bmN0aW9uKEosVyxlKXtlLmQoVyx7SHI6ZnVuY3Rpb24oKXtyZXR1cm4gTX0sUUs6ZnVuY3Rpb24oKXtyZXR1cm4gU30sVmQ6ZnVuY3Rpb24oKXtyZXR1cm4gX30sYTc6ZnVuY3Rpb24oKXtyZXR1cm4gbn0saks6ZnVuY3Rpb24oKXtyZXR1cm4gY30sbjI6ZnVuY3Rpb24oKXtyZXR1cm4gen0sb0g6ZnVuY3Rpb24oKXtyZXR1cm4gb30scFg6ZnVuY3Rpb24oKXtyZXR1cm4gRn0sc0Y6ZnVuY3Rpb24oKXtyZXR1cm4gcH19KTt2YXIgTz1lKDE1MDA5KSx0PWUubihPKSxVPWUoOTc4NTcpLHI9ZS5uKFUpLHk9ZSg5OTI4OSksbT1lLm4oeSksdj1lKDc2NzcyKSxoPWUoMzM4NjcpLEU9ZSgzMDk2NCk7ZnVuY3Rpb24gYyhEKXtyZXR1cm4gZi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gZigpe3JldHVybiBmPW0oKSh0KCkoKS5tYXJrKGZ1bmN0aW9uIEQocyl7cmV0dXJuIHQoKSgpLndyYXAoZnVuY3Rpb24odSl7Zm9yKDs7KXN3aXRjaCh1LnByZXY9dS5uZXh0KXtjYXNlIDA6cmV0dXJuIHUuYWJydXB0KCJyZXR1cm4iLCgwLHYucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RpY3QvdHlwZS9saXN0Iix7cGFyYW1zOnIoKSh7fSxzKSxtZXRob2Q6IkdFVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCJ9fSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIHUuc3RvcCgpfX0sRCl9KSksZi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gXyhEKXtyZXR1cm4oMCx2LnJlcXVlc3QpKCIvYXBpL3N5c3RlbS9kaWN0L3R5cGUvIi5jb25jYXQoRCkse21ldGhvZDoiR0VUIn0pfWZ1bmN0aW9uIEYoRCxzKXtyZXR1cm4gZC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gZCgpe3JldHVybiBkPW0oKSh0KCkoKS5tYXJrKGZ1bmN0aW9uIEQocyxiKXt2YXIgdSxqO3JldHVybiB0KCkoKS53cmFwKGZ1bmN0aW9uKHgpe2Zvcig7Oylzd2l0Y2goeC5wcmV2PXgubmV4dCl7Y2FzZSAwOnJldHVybiB4Lm5leHQ9MiwoMCx2LnJlcXVlc3QpKCIvYXBpL3N5c3RlbS9kaWN0L2RhdGEvdHlwZS8iLmNvbmNhdChzKSx7bWV0aG9kOiJHRVQifSk7Y2FzZSAyOmlmKHU9eC5zZW50LHUuY29kZSE9PWguaUsuU1VDQ0VTUyl7eC5uZXh0PTk7YnJlYWt9cmV0dXJuIGo9e30sdS5kYXRhLmZvckVhY2goZnVuY3Rpb24oTCl7altMLmRpY3RWYWx1ZV09e3RleHQ6TC5kaWN0TGFiZWwsbGFiZWw6TC5kaWN0TGFiZWwsdmFsdWU6Yj9OdW1iZXIoTC5kaWN0VmFsdWUpOkwuZGljdFZhbHVlLGtleTpMLmRpY3RDb2RlLGxpc3RDbGFzczpMLmxpc3RDbGFzcyxzdGF0dXM6TC5saXN0Q2xhc3N9fSkseC5hYnJ1cHQoInJldHVybiIsaik7Y2FzZSA5OnJldHVybiB4LmFicnVwdCgicmV0dXJuIix7fSk7Y2FzZSAxMDpjYXNlImVuZCI6cmV0dXJuIHguc3RvcCgpfX0sRCl9KSksZC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gTShELHMpe3JldHVybiBsLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBsKCl7cmV0dXJuIGw9bSgpKHQoKSgpLm1hcmsoZnVuY3Rpb24gRChzLGIpe3ZhciB1LGo7cmV0dXJuIHQoKSgpLndyYXAoZnVuY3Rpb24oeCl7Zm9yKDs7KXN3aXRjaCh4LnByZXY9eC5uZXh0KXtjYXNlIDA6cmV0dXJuIHgubmV4dD0yLCgwLHYucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RpY3QvZGF0YS90eXBlLyIuY29uY2F0KHMpLHttZXRob2Q6IkdFVCJ9KTtjYXNlIDI6aWYodT14LnNlbnQsdS5jb2RlIT09MjAwKXt4Lm5leHQ9NjticmVha31yZXR1cm4gaj11LmRhdGEubWFwKGZ1bmN0aW9uKEwpe3JldHVybnt0ZXh0OkwuZGljdExhYmVsLGxhYmVsOkwuZGljdExhYmVsLHZhbHVlOmI/TnVtYmVyKEwuZGljdFZhbHVlKTpMLmRpY3RWYWx1ZSxrZXk6TC5kaWN0Q29kZSxsaXN0Q2xhc3M6TC5saXN0Q2xhc3Msc3RhdHVzOkwubGlzdENsYXNzfX0pLHguYWJydXB0KCJyZXR1cm4iLGopO2Nhc2UgNjpyZXR1cm4geC5hYnJ1cHQoInJldHVybiIsW10pO2Nhc2UgNzpjYXNlImVuZCI6cmV0dXJuIHguc3RvcCgpfX0sRCl9KSksbC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gbyhEKXtyZXR1cm4gZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gZygpe3JldHVybiBnPW0oKSh0KCkoKS5tYXJrKGZ1bmN0aW9uIEQocyl7cmV0dXJuIHQoKSgpLndyYXAoZnVuY3Rpb24odSl7Zm9yKDs7KXN3aXRjaCh1LnByZXY9dS5uZXh0KXtjYXNlIDA6cmV0dXJuIHUuYWJydXB0KCJyZXR1cm4iLCgwLHYucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RpY3QvdHlwZSIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCJ9LGRhdGE6c30pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiB1LnN0b3AoKX19LEQpfSkpLGcuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIG4oRCl7cmV0dXJuIGkuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGkoKXtyZXR1cm4gaT1tKCkodCgpKCkubWFyayhmdW5jdGlvbiBEKHMpe3JldHVybiB0KCkoKS53cmFwKGZ1bmN0aW9uKHUpe2Zvcig7Oylzd2l0Y2godS5wcmV2PXUubmV4dCl7Y2FzZSAwOnJldHVybiB1LmFicnVwdCgicmV0dXJuIiwoMCx2LnJlcXVlc3QpKCIvYXBpL3N5c3RlbS9kaWN0L3R5cGUiLHttZXRob2Q6IlBVVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCJ9LGRhdGE6c30pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiB1LnN0b3AoKX19LEQpfSkpLGkuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHAoRCl7cmV0dXJuIGEuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGEoKXtyZXR1cm4gYT1tKCkodCgpKCkubWFyayhmdW5jdGlvbiBEKHMpe3JldHVybiB0KCkoKS53cmFwKGZ1bmN0aW9uKHUpe2Zvcig7Oylzd2l0Y2godS5wcmV2PXUubmV4dCl7Y2FzZSAwOnJldHVybiB1LmFicnVwdCgicmV0dXJuIiwoMCx2LnJlcXVlc3QpKCIvYXBpL3N5c3RlbS9kaWN0L3R5cGUvIi5jb25jYXQocykse21ldGhvZDoiREVMRVRFIn0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiB1LnN0b3AoKX19LEQpfSkpLGEuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHooRCl7cmV0dXJuKDAsRS5zdSkoIi9hcGkvc3lzdGVtL2RpY3QvdHlwZS9leHBvcnQiLHtwYXJhbXM6RH0sImRpY3RfdHlwZV8iLmNvbmNhdChuZXcgRGF0ZSgpLmdldFRpbWUoKSwiLnhsc3giKSl9ZnVuY3Rpb24gUyhEKXtyZXR1cm4gQy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gQygpe3JldHVybiBDPW0oKSh0KCkoKS5tYXJrKGZ1bmN0aW9uIEQocyl7cmV0dXJuIHQoKSgpLndyYXAoZnVuY3Rpb24odSl7Zm9yKDs7KXN3aXRjaCh1LnByZXY9dS5uZXh0KXtjYXNlIDA6cmV0dXJuIHUuYWJydXB0KCJyZXR1cm4iLCgwLHYucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RpY3QvdHlwZS9vcHRpb25zZWxlY3QiLHtwYXJhbXM6cigpKHt9LHMpLG1ldGhvZDoiR0VUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In19KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gdS5zdG9wKCl9fSxEKX0pKSxDLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19LDUyNzI4OmZ1bmN0aW9uKEosVyxlKXtlLmQoVyx7QWY6ZnVuY3Rpb24oKXtyZXR1cm4gaH0sVGg6ZnVuY3Rpb24oKXtyZXR1cm4gb30sXzg6ZnVuY3Rpb24oKXtyZXR1cm4gRn0sYkw6ZnVuY3Rpb24oKXtyZXR1cm4gZn0sbl86ZnVuY3Rpb24oKXtyZXR1cm4gTX19KTt2YXIgTz1lKDE1MDA5KSx0PWUubihPKSxVPWUoOTc4NTcpLHI9ZS5uKFUpLHk9ZSg5OTI4OSksbT1lLm4oeSksdj1lKDc2NzcyKTtmdW5jdGlvbiBoKGcsbil7cmV0dXJuIEUuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEUoKXtyZXR1cm4gRT1tKCkodCgpKCkubWFyayhmdW5jdGlvbiBnKG4saSl7cmV0dXJuIHQoKSgpLndyYXAoZnVuY3Rpb24oYSl7Zm9yKDs7KXN3aXRjaChhLnByZXY9YS5uZXh0KXtjYXNlIDA6cmV0dXJuIGEuYWJydXB0KCJyZXR1cm4iLCgwLHYucmVxdWVzdCkoIi9hcGkvc3lzdGVtL21lbnUvbGlzdCIscigpKHttZXRob2Q6IkdFVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCJ9LHBhcmFtczpufSxpfHx7fSkpKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBhLnN0b3AoKX19LGcpfSkpLEUuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGMoZyxuKXtyZXR1cm4gcmVxdWVzdCgiL2FwaS9zeXN0ZW0vbWVudS8iLmNvbmNhdChnKSxfb2JqZWN0U3ByZWFkKHttZXRob2Q6IkdFVCJ9LG58fHt9KSl9ZnVuY3Rpb24gZihnLG4pe3JldHVybiBfLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBfKCl7cmV0dXJuIF89bSgpKHQoKSgpLm1hcmsoZnVuY3Rpb24gZyhuLGkpe3JldHVybiB0KCkoKS53cmFwKGZ1bmN0aW9uKGEpe2Zvcig7Oylzd2l0Y2goYS5wcmV2PWEubmV4dCl7Y2FzZSAwOnJldHVybiBhLmFicnVwdCgicmV0dXJuIiwoMCx2LnJlcXVlc3QpKCIvYXBpL3N5c3RlbS9tZW51IixyKCkoe21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCJ9LGRhdGE6bn0saXx8e30pKSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gYS5zdG9wKCl9fSxnKX0pKSxfLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBGKGcsbil7cmV0dXJuIGQuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGQoKXtyZXR1cm4gZD1tKCkodCgpKCkubWFyayhmdW5jdGlvbiBnKG4saSl7cmV0dXJuIHQoKSgpLndyYXAoZnVuY3Rpb24oYSl7Zm9yKDs7KXN3aXRjaChhLnByZXY9YS5uZXh0KXtjYXNlIDA6cmV0dXJuIGEuYWJydXB0KCJyZXR1cm4iLCgwLHYucmVxdWVzdCkoIi9hcGkvc3lzdGVtL21lbnUiLHIoKSh7bWV0aG9kOiJQVVQiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgifSxkYXRhOm59LGl8fHt9KSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGEuc3RvcCgpfX0sZyl9KSksZC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gTShnLG4pe3JldHVybiBsLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBsKCl7cmV0dXJuIGw9bSgpKHQoKSgpLm1hcmsoZnVuY3Rpb24gZyhuLGkpe3JldHVybiB0KCkoKS53cmFwKGZ1bmN0aW9uKGEpe2Zvcig7Oylzd2l0Y2goYS5wcmV2PWEubmV4dCl7Y2FzZSAwOnJldHVybiBhLmFicnVwdCgicmV0dXJuIiwoMCx2LnJlcXVlc3QpKCIvYXBpL3N5c3RlbS9tZW51LyIuY29uY2F0KG4pLHIoKSh7bWV0aG9kOiJERUxFVEUifSxpfHx7fSkpKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBhLnN0b3AoKX19LGcpfSkpLGwuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIG8oKXtyZXR1cm4oMCx2LnJlcXVlc3QpKCIvYXBpL3N5c3RlbS9tZW51L3RyZWVzZWxlY3QiLHttZXRob2Q6IkdFVCJ9KX19LDM3NTYzOmZ1bmN0aW9uKEosVyxlKXtlLmQoVyx7Q0U6ZnVuY3Rpb24oKXtyZXR1cm4gen0sSlY6ZnVuY3Rpb24oKXtyZXR1cm4gaH0sTEE6ZnVuY3Rpb24oKXtyZXR1cm4gU30sTHA6ZnVuY3Rpb24oKXtyZXR1cm4gb30sVmw6ZnVuY3Rpb24oKXtyZXR1cm4gRH0sX2Q6ZnVuY3Rpb24oKXtyZXR1cm4gZn0sY1k6ZnVuY3Rpb24oKXtyZXR1cm4gY30sZFk6ZnVuY3Rpb24oKXtyZXR1cm4gQ30saUg6ZnVuY3Rpb24oKXtyZXR1cm4gcH0sbDU6ZnVuY3Rpb24oKXtyZXR1cm4gTX0sbWo6ZnVuY3Rpb24oKXtyZXR1cm4gZ30scDc6ZnVuY3Rpb24oKXtyZXR1cm4gYX0sc3A6ZnVuY3Rpb24oKXtyZXR1cm4gaX0sdG06ZnVuY3Rpb24oKXtyZXR1cm4gbn0sdWw6ZnVuY3Rpb24oKXtyZXR1cm4gRn19KTt2YXIgTz1lKDE1MDA5KSx0PWUubihPKSxVPWUoOTkyODkpLHI9ZS5uKFUpLHk9ZSgzMzg2NyksbT1lKDc2NzcyKSx2PWUoMzA5NjQpO2Z1bmN0aW9uIGgocyl7cmV0dXJuIEUuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEUoKXtyZXR1cm4gRT1yKCkodCgpKCkubWFyayhmdW5jdGlvbiBzKGIpe3JldHVybiB0KCkoKS53cmFwKGZ1bmN0aW9uKGope2Zvcig7Oylzd2l0Y2goai5wcmV2PWoubmV4dCl7Y2FzZSAwOnJldHVybiBqLmFicnVwdCgicmV0dXJuIiwoMCxtLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS9yb2xlL2xpc3QiLHttZXRob2Q6IkdFVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6eS56Yy5GT1JNX1VSTEVOQ09ERUR9LHBhcmFtczpifSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGouc3RvcCgpfX0scyl9KSksRS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gYyhzKXtyZXR1cm4oMCxtLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS9yb2xlLyIuY29uY2F0KHMpLHttZXRob2Q6IkdFVCJ9KX1mdW5jdGlvbiBmKHMpe3JldHVybiBfLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBfKCl7cmV0dXJuIF89cigpKHQoKSgpLm1hcmsoZnVuY3Rpb24gcyhiKXtyZXR1cm4gdCgpKCkud3JhcChmdW5jdGlvbihqKXtmb3IoOzspc3dpdGNoKGoucHJldj1qLm5leHQpe2Nhc2UgMDpyZXR1cm4gai5hYnJ1cHQoInJldHVybiIsKDAsbS5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vcm9sZSIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCJ9LGRhdGE6Yn0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBqLnN0b3AoKX19LHMpfSkpLF8uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEYocyl7cmV0dXJuIGQuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGQoKXtyZXR1cm4gZD1yKCkodCgpKCkubWFyayhmdW5jdGlvbiBzKGIpe3JldHVybiB0KCkoKS53cmFwKGZ1bmN0aW9uKGope2Zvcig7Oylzd2l0Y2goai5wcmV2PWoubmV4dCl7Y2FzZSAwOnJldHVybiBqLmFicnVwdCgicmV0dXJuIiwoMCxtLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS9yb2xlIix7bWV0aG9kOiJQVVQiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgifSxkYXRhOmJ9KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gai5zdG9wKCl9fSxzKX0pKSxkLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBNKHMpe3JldHVybiBsLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBsKCl7cmV0dXJuIGw9cigpKHQoKSgpLm1hcmsoZnVuY3Rpb24gcyhiKXtyZXR1cm4gdCgpKCkud3JhcChmdW5jdGlvbihqKXtmb3IoOzspc3dpdGNoKGoucHJldj1qLm5leHQpe2Nhc2UgMDpyZXR1cm4gai5hYnJ1cHQoInJldHVybiIsKDAsbS5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vcm9sZS8iLmNvbmNhdChiKSx7bWV0aG9kOiJERUxFVEUifSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGouc3RvcCgpfX0scyl9KSksbC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gbyhzKXtyZXR1cm4oMCx2LnN1KSgiL2FwaS9zeXN0ZW0vcm9sZS9leHBvcnQiLHtwYXJhbXM6c30sInJvbGVfIi5jb25jYXQobmV3IERhdGUoKS5nZXRUaW1lKCksIi54bHN4IikpfWZ1bmN0aW9uIGcocyl7cmV0dXJuKDAsbS5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vbWVudS9yb2xlTWVudVRyZWVzZWxlY3QvIi5jb25jYXQocykse21ldGhvZDoiZ2V0In0pfWZ1bmN0aW9uIG4ocyl7cmV0dXJuKDAsbS5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vcm9sZS9kYXRhU2NvcGUiLHttZXRob2Q6InB1dCIsZGF0YTpzfSl9ZnVuY3Rpb24gaShzLGIpe3ZhciB1PXtyb2xlSWQ6cyxzdGF0dXM6Yn07cmV0dXJuKDAsbS5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vcm9sZS9jaGFuZ2VTdGF0dXMiLHttZXRob2Q6InB1dCIsZGF0YTp1fSl9ZnVuY3Rpb24gcChzKXtyZXR1cm4oMCxtLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS9yb2xlL2F1dGhVc2VyL2FsbG9jYXRlZExpc3QiLHttZXRob2Q6ImdldCIscGFyYW1zOnN9KX1mdW5jdGlvbiBhKHMpe3JldHVybigwLG0ucmVxdWVzdCkoIi9hcGkvc3lzdGVtL3JvbGUvYXV0aFVzZXIvdW5hbGxvY2F0ZWRMaXN0Iix7bWV0aG9kOiJnZXQiLHBhcmFtczpzfSl9ZnVuY3Rpb24geihzKXtyZXR1cm4oMCxtLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS9yb2xlL2F1dGhVc2VyL2NhbmNlbCIse21ldGhvZDoicHV0IixkYXRhOnN9KX1mdW5jdGlvbiBTKHMpe3JldHVybigwLG0ucmVxdWVzdCkoIi9hcGkvc3lzdGVtL3JvbGUvYXV0aFVzZXIvY2FuY2VsQWxsIix7bWV0aG9kOiJwdXQiLHBhcmFtczpzfSl9ZnVuY3Rpb24gQyhzKXtyZXR1cm4oMCxtLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS9yb2xlL2F1dGhVc2VyL3NlbGVjdEFsbCIse21ldGhvZDoicHV0IixwYXJhbXM6cyxoZWFkZXJzOnsiQ29udGVudC1UeXBlIjp5LnpjLkZPUk1fVVJMRU5DT0RFRH19KX1mdW5jdGlvbiBEKHMpe3JldHVybigwLG0ucmVxdWVzdCkoIi9hcGkvc3lzdGVtL3JvbGUvZGVwdFRyZWUvIitzLHttZXRob2Q6ImdldCJ9KX19LDMwOTY0OmZ1bmN0aW9uKEosVyxlKXtlLmQoVyx7cDY6ZnVuY3Rpb24oKXtyZXR1cm4gY30sc3U6ZnVuY3Rpb24oKXtyZXR1cm4gZn19KTt2YXIgTz1lKDE1MDA5KSx0PWUubihPKSxVPWUoOTc4NTcpLHI9ZS5uKFUpLHk9ZSg5OTI4OSksbT1lLm4oeSksdj1lKDc2NzcyKSxoPXt4bHN4OiJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCIsemlwOiJhcHBsaWNhdGlvbi96aXAifTtmdW5jdGlvbiBFKGQsTSl7dmFyIGw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpLG89bmV3IEJsb2IoW2QuZGF0YV0se3R5cGU6TX0pLGc9bmV3IFJlZ0V4cCgiZmlsZW5hbWU9KFteO10rXFwuW15cXC47XSspOyoiKSxuPWRlY29kZVVSSShkLmhlYWRlcnNbImNvbnRlbnQtZGlzcG9zaXRpb24iXSksaT1nLmV4ZWMobikscD1pP2lbMV06ImZpbGUiO3A9cC5yZXBsYWNlKC8iL2csIiIpLGwuc3R5bGUuZGlzcGxheT0ibm9uZSIsbC5ocmVmPVVSTC5jcmVhdGVPYmplY3RVUkwobyksbC5zZXRBdHRyaWJ1dGUoImRvd25sb2FkIixwKSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGwpLGwuY2xpY2soKSxVUkwucmV2b2tlT2JqZWN0VVJMKGwuaHJlZiksZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChsKX1mdW5jdGlvbiBjKGQpeygwLHYucmVxdWVzdCkoZCx7bWV0aG9kOiJHRVQiLHJlc3BvbnNlVHlwZToiYmxvYiIsZ2V0UmVzcG9uc2U6ITB9KS50aGVuKGZ1bmN0aW9uKE0pe0UoTSxoLnppcCl9KX1mdW5jdGlvbiBmKGQsTSxsKXtyZXR1cm4gXy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gXygpe3JldHVybiBfPW0oKSh0KCkoKS5tYXJrKGZ1bmN0aW9uIGQoTSxsLG8pe3JldHVybiB0KCkoKS53cmFwKGZ1bmN0aW9uKG4pe2Zvcig7Oylzd2l0Y2gobi5wcmV2PW4ubmV4dCl7Y2FzZSAwOnJldHVybiBuLmFicnVwdCgicmV0dXJuIiwoMCx2LnJlcXVlc3QpKE0scigpKHIoKSh7fSxsKSx7fSx7bWV0aG9kOiJQT1NUIixyZXNwb25zZVR5cGU6ImJsb2IifSkpLnRoZW4oZnVuY3Rpb24oaSl7dmFyIHA9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpLGE9aTtwLnN0eWxlLmRpc3BsYXk9Im5vbmUiLHAuaHJlZj1VUkwuY3JlYXRlT2JqZWN0VVJMKGEpLHAuc2V0QXR0cmlidXRlKCJkb3dubG9hZCIsbyksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChwKSxwLmNsaWNrKCksVVJMLnJldm9rZU9iamVjdFVSTChwLmhyZWYpLGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQocCl9KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gbi5zdG9wKCl9fSxkKX0pKSxfLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBGKGQpe3dpbmRvdy5sb2NhdGlvbi5ocmVmPSIvYXBpL2NvbW1vbi9kb3dubG9hZD9maWxlTmFtZT0iLmNvbmNhdChlbmNvZGVVUkkoZCksIiZkZWxldGU9IiwhMCl9fSwzMTk4MTpmdW5jdGlvbihKLFcsZSl7ZS5kKFcse0MyOmZ1bmN0aW9uKCl7cmV0dXJuIHR9LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHJ9fSk7dmFyIE89ZSg4NzczNSk7ZnVuY3Rpb24gdCh5LG0sdixoLEUsYyl7dmFyIGY9e2lkOm18fCJpZCIsbmFtZTp2fHwibmFtZSIscGFyZW50SWQ6aHx8InBhcmVudElkIixwYXJlbnROYW1lOkV8fCJwYXJlbnROYW1lIixjaGlsZHJlbkxpc3Q6Y3x8ImNoaWxkcmVuIn0sXz1bXSxGPVtdLGQ9W107eS5mb3JFYWNoKGZ1bmN0aW9uKGwpe3ZhciBvPWwsZz1vW2YucGFyZW50SWRdO19bZ118fChfW2ddPVtdKSxvLmtleT1vW2YuaWRdLG8udGl0bGU9b1tmLm5hbWVdLG8udmFsdWU9b1tmLmlkXSxvW2YuY2hpbGRyZW5MaXN0XT1udWxsLEZbb1tmLmlkXV09byxfW2ddLnB1c2gobyl9KSx5LmZvckVhY2goZnVuY3Rpb24obCl7dmFyIG89bCxnPW9bZi5wYXJlbnRJZF07RltnXXx8KG9bZi5wYXJlbnROYW1lXT0iIixkLnB1c2gobykpfSk7ZnVuY3Rpb24gTShsKXt2YXIgbz1sO19bb1tmLmlkXV0mJihvW2YuY2hpbGRyZW5MaXN0XXx8KG9bZi5jaGlsZHJlbkxpc3RdPVtdKSxvW2YuY2hpbGRyZW5MaXN0XT1fW29bZi5pZF1dKSxvW2YuY2hpbGRyZW5MaXN0XSYmb1tmLmNoaWxkcmVuTGlzdF0uZm9yRWFjaChmdW5jdGlvbihnKXt2YXIgbj1nO25bZi5wYXJlbnROYW1lXT1vW2YubmFtZV0sTShuKX0pfXJldHVybiBkLmZvckVhY2goZnVuY3Rpb24obCl7TShsKX0pLGR9dmFyIFU9ZnVuY3Rpb24oKXtyZXR1cm4gcGFyc2Uod2luZG93LmxvY2F0aW9uLmhyZWYuc3BsaXQoIj8iKVsxXSl9O2Z1bmN0aW9uIHIoeSl7dmFyIG09eS5tYXAoZnVuY3Rpb24odil7dmFyIGg9e2lkOnYuaWQsdGl0bGU6di5sYWJlbCxrZXk6IiIuY29uY2F0KHYuaWQpLHZhbHVlOnYuaWR9O3JldHVybiB2LmNoaWxkcmVuJiYoaC5jaGlsZHJlbj1yKHYuY2hpbGRyZW4pKSxofSk7cmV0dXJuIG19fX1dKTsKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvODY3Ny4wYTZhMmJmNC5jaHVuay5jc3MgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzg2NzcuMGE2YTJiZjQuY2h1bmsuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRjNWJiNTMKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzg2NzcuMGE2YTJiZjQuY2h1bmsuY3NzCkBAIC0wLDAgKzEgQEAKKy5wb3N0UmV2aWV3Q29udGFpbmVyX19fSmdEcWV7cGFkZGluZzoyNHB4fS5wb3N0RGV0YWlsX19feHBMUGd7cGFkZGluZzoxNnB4IDB9LnBvc3RNZXRhX19fUU1iN2h7bWFyZ2luOjE2cHggMDtwYWRkaW5nOjE2cHg7YmFja2dyb3VuZDojZjVmNWY1O2JvcmRlci1yYWRpdXM6OHB4fS5wb3N0TWV0YV9fX1FNYjdoIHB7bWFyZ2luOjhweCAwfS5wb3N0Q292ZXJfX19ESklrT3ttYXJnaW46MTZweCAwO3RleHQtYWxpZ246Y2VudGVyfS5wb3N0VGFnc19fX3I0YUtje21hcmdpbjoxNnB4IDB9LnBvc3RTdW1tYXJ5X19fcndTeEx7bWFyZ2luOjE2cHggMDtwYWRkaW5nOjE2cHg7YmFja2dyb3VuZDojZjlmOWY5O2JvcmRlci1yYWRpdXM6OHB4fS5wb3N0Q29udGVudF9fX1Q5TXJfe21hcmdpbjoxNnB4IDA7cGFkZGluZzoxNnB4O2JvcmRlcjoxcHggc29saWQgI2U4ZThlODtib3JkZXItcmFkaXVzOjhweDttYXgtaGVpZ2h0OjQwMHB4O292ZXJmbG93LXk6YXV0b30ucG9zdEFjdGlvbnNfX19jVzJrSnttYXJnaW4tdG9wOjI0cHg7dGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZy10b3A6MTZweDtib3JkZXItdG9wOjFweCBzb2xpZCAjZThlOGU4fQpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy84NzAzLjU0MTJjZWMzLmFzeW5jLmpzIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy84NzAzLjU0MTJjZWMzLmFzeW5jLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0YzRlYjQKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzg3MDMuNTQxMmNlYzMuYXN5bmMuanMKQEAgLTAsMCArMSwyIEBACisidXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W10pLnB1c2goW1s4NzAzXSx7Mzg3MDM6ZnVuY3Rpb24oY3QsdmUsbSl7bS5kKHZlLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGl0fX0pO3ZhciBzPW0oNjcyOTQpLGhlPW0oMTUwNjMpLHllPW0oODk3MzkpLENlPW0oNjM2MDYpLFNlPW0oNDM0MCksJGU9bSg5NzkzNyksYmU9bSg5Mzk2NyksQT1tLm4oYmUpLGtlPW0oOTg0MjMpLHhlPW0oNTMxMjQpLG5lPW0oODc0NjIpLFU9bSgxNDEzKSxvZT1tKDkxKSxzZT17cGVyY2VudDowLHByZWZpeENsczoicmMtcHJvZ3Jlc3MiLHN0cm9rZUNvbG9yOiIjMmRiN2Y1IixzdHJva2VMaW5lY2FwOiJyb3VuZCIsc3Ryb2tlV2lkdGg6MSx0cmFpbENvbG9yOiIjRDlEOUQ5Iix0cmFpbFdpZHRoOjEsZ2FwUG9zaXRpb246ImJvdHRvbSJ9LGllPWZ1bmN0aW9uKCl7dmFyIHQ9KDAscy51c2VSZWYpKFtdKSxyPSgwLHMudXNlUmVmKShudWxsKTtyZXR1cm4oMCxzLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXt2YXIgbj1EYXRlLm5vdygpLG89ITE7dC5jdXJyZW50LmZvckVhY2goZnVuY3Rpb24obCl7aWYobCl7bz0hMDt2YXIgaT1sLnN0eWxlO2kudHJhbnNpdGlvbkR1cmF0aW9uPSIuM3MsIC4zcywgLjNzLCAuMDZzIixyLmN1cnJlbnQmJm4tci5jdXJyZW50PDEwMCYmKGkudHJhbnNpdGlvbkR1cmF0aW9uPSIwcywgMHMiKX19KSxvJiYoci5jdXJyZW50PURhdGUubm93KCkpfSksdC5jdXJyZW50fSxQZT1bImNsYXNzTmFtZSIsInBlcmNlbnQiLCJwcmVmaXhDbHMiLCJzdHJva2VDb2xvciIsInN0cm9rZUxpbmVjYXAiLCJzdHJva2VXaWR0aCIsInN0eWxlIiwidHJhaWxDb2xvciIsInRyYWlsV2lkdGgiLCJ0cmFuc2l0aW9uIl0sRWU9ZnVuY3Rpb24odCl7dmFyIHI9KDAsVS5aKSgoMCxVLlopKHt9LHNlKSx0KSxuPXIuY2xhc3NOYW1lLG89ci5wZXJjZW50LGw9ci5wcmVmaXhDbHMsaT1yLnN0cm9rZUNvbG9yLGM9ci5zdHJva2VMaW5lY2FwLGE9ci5zdHJva2VXaWR0aCxmPXIuc3R5bGUsZD1yLnRyYWlsQ29sb3IscD1yLnRyYWlsV2lkdGgsdj1yLnRyYW5zaXRpb24sUz0oMCxvZS5aKShyLFBlKTtkZWxldGUgUy5nYXBQb3NpdGlvbjt2YXIgeT1BcnJheS5pc0FycmF5KG8pP286W29dLEM9QXJyYXkuaXNBcnJheShpKT9pOltpXSx4PWllKCksZz1hLzIsaD0xMDAtYS8yLE89Ik0gIi5jb25jYXQoYz09PSJyb3VuZCI/ZzowLCIsIikuY29uY2F0KGcsYAorICAgICAgICAgTCBgKS5jb25jYXQoYz09PSJyb3VuZCI/aDoxMDAsIiwiKS5jb25jYXQoZyksRT0iMCAwIDEwMCAiLmNvbmNhdChhKSwkPTA7cmV0dXJuIHMuY3JlYXRlRWxlbWVudCgic3ZnIiwoMCxuZS5aKSh7Y2xhc3NOYW1lOkEoKSgiIi5jb25jYXQobCwiLWxpbmUiKSxuKSx2aWV3Qm94OkUscHJlc2VydmVBc3BlY3RSYXRpbzoibm9uZSIsc3R5bGU6Zn0sUykscy5jcmVhdGVFbGVtZW50KCJwYXRoIix7Y2xhc3NOYW1lOiIiLmNvbmNhdChsLCItbGluZS10cmFpbCIpLGQ6TyxzdHJva2VMaW5lY2FwOmMsc3Ryb2tlOmQsc3Ryb2tlV2lkdGg6cHx8YSxmaWxsT3BhY2l0eToiMCJ9KSx5Lm1hcChmdW5jdGlvbihiLFApe3ZhciBrPTE7c3dpdGNoKGMpe2Nhc2Uicm91bmQiOms9MS1hLzEwMDticmVhaztjYXNlInNxdWFyZSI6az0xLWEvMi8xMDA7YnJlYWs7ZGVmYXVsdDprPTE7YnJlYWt9dmFyIEk9e3N0cm9rZURhc2hhcnJheToiIi5jb25jYXQoYiprLCJweCwgMTAwcHgiKSxzdHJva2VEYXNob2Zmc2V0OiItIi5jb25jYXQoJCwicHgiKSx0cmFuc2l0aW9uOnZ8fCJzdHJva2UtZGFzaG9mZnNldCAwLjNzIGVhc2UgMHMsIHN0cm9rZS1kYXNoYXJyYXkgLjNzIGVhc2UgMHMsIHN0cm9rZSAwLjNzIGxpbmVhciJ9LHU9Q1tQXXx8Q1tDLmxlbmd0aC0xXTtyZXR1cm4gJCs9YixzLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtrZXk6UCxjbGFzc05hbWU6IiIuY29uY2F0KGwsIi1saW5lLXBhdGgiKSxkOk8sc3Ryb2tlTGluZWNhcDpjLHN0cm9rZTp1LHN0cm9rZVdpZHRoOmEsZmlsbE9wYWNpdHk6IjAiLHJlZjpmdW5jdGlvbihNKXt4W1BdPU19LHN0eWxlOkl9KX0pKX0sSWU9RWUsWD1tKDcxMDAyKSxPZT1tKDk3Njg1KSxMZT1tKDk4OTI0KSxhZT0wLGplPSgwLExlLlopKCk7ZnVuY3Rpb24gV2UoKXt2YXIgZTtyZXR1cm4gamU/KGU9YWUsYWUrPTEpOmU9IlRFU1RfT1JfU1NSIixlfXZhciB3ZT1mdW5jdGlvbihlKXt2YXIgdD1zLnVzZVN0YXRlKCkscj0oMCxPZS5aKSh0LDIpLG49clswXSxvPXJbMV07cmV0dXJuIHMudXNlRWZmZWN0KGZ1bmN0aW9uKCl7bygicmNfcHJvZ3Jlc3NfIi5jb25jYXQoV2UoKSkpfSxbXSksZXx8bn0sY2U9ZnVuY3Rpb24odCl7dmFyIHI9dC5iZyxuPXQuY2hpbGRyZW47cmV0dXJuIHMuY3JlYXRlRWxlbWVudCgiZGl2Iix7c3R5bGU6e3dpZHRoOiIxMDAlIixoZWlnaHQ6IjEwMCUiLGJhY2tncm91bmQ6cn19LG4pfTtmdW5jdGlvbiBsZShlLHQpe3JldHVybiBPYmplY3Qua2V5cyhlKS5tYXAoZnVuY3Rpb24ocil7dmFyIG49cGFyc2VGbG9hdChyKSxvPSIiLmNvbmNhdChNYXRoLmZsb29yKG4qdCksIiUiKTtyZXR1cm4iIi5jb25jYXQoZVtyXSwiICIpLmNvbmNhdChvKX0pfXZhciBOZT1zLmZvcndhcmRSZWYoZnVuY3Rpb24oZSx0KXt2YXIgcj1lLnByZWZpeENscyxuPWUuY29sb3Isbz1lLmdyYWRpZW50SWQsbD1lLnJhZGl1cyxpPWUuc3R5bGUsYz1lLnB0ZyxhPWUuc3Ryb2tlTGluZWNhcCxmPWUuc3Ryb2tlV2lkdGgsZD1lLnNpemUscD1lLmdhcERlZ3JlZSx2PW4mJigwLFguWikobik9PT0ib2JqZWN0IixTPXY/IiNGRkYiOnZvaWQgMCx5PWQvMixDPXMuY3JlYXRlRWxlbWVudCgiY2lyY2xlIix7Y2xhc3NOYW1lOiIiLmNvbmNhdChyLCItY2lyY2xlLXBhdGgiKSxyOmwsY3g6eSxjeTp5LHN0cm9rZTpTLHN0cm9rZUxpbmVjYXA6YSxzdHJva2VXaWR0aDpmLG9wYWNpdHk6Yz09PTA/MDoxLHN0eWxlOmkscmVmOnR9KTtpZighdilyZXR1cm4gQzt2YXIgeD0iIi5jb25jYXQobywiLWNvbmljIiksZz1wPyIiLmNvbmNhdCgxODArcC8yLCJkZWciKToiMGRlZyIsaD1sZShuLCgzNjAtcCkvMzYwKSxPPWxlKG4sMSksRT0iY29uaWMtZ3JhZGllbnQoZnJvbSAiLmNvbmNhdChnLCIsICIpLmNvbmNhdChoLmpvaW4oIiwgIiksIikiKSwkPSJsaW5lYXItZ3JhZGllbnQodG8gIi5jb25jYXQocD8iYm90dG9tIjoidG9wIiwiLCAiKS5jb25jYXQoTy5qb2luKCIsICIpLCIpIik7cmV0dXJuIHMuY3JlYXRlRWxlbWVudChzLkZyYWdtZW50LG51bGwscy5jcmVhdGVFbGVtZW50KCJtYXNrIix7aWQ6eH0sQykscy5jcmVhdGVFbGVtZW50KCJmb3JlaWduT2JqZWN0Iix7eDowLHk6MCx3aWR0aDpkLGhlaWdodDpkLG1hc2s6InVybCgjIi5jb25jYXQoeCwiKSIpfSxzLmNyZWF0ZUVsZW1lbnQoY2Use2JnOiR9LHMuY3JlYXRlRWxlbWVudChjZSx7Ymc6RX0pKSkpfSksQWU9TmUsRz0xMDAsXz1mdW5jdGlvbih0LHIsbixvLGwsaSxjLGEsZixkKXt2YXIgcD1hcmd1bWVudHMubGVuZ3RoPjEwJiZhcmd1bWVudHNbMTBdIT09dm9pZCAwP2FyZ3VtZW50c1sxMF06MCx2PW4vMTAwKjM2MCooKDM2MC1pKS8zNjApLFM9aT09PTA/MDp7Ym90dG9tOjAsdG9wOjE4MCxsZWZ0OjkwLHJpZ2h0Oi05MH1bY10seT0oMTAwLW8pLzEwMCpyO2Y9PT0icm91bmQiJiZvIT09MTAwJiYoeSs9ZC8yLHk+PXImJih5PXItLjAxKSk7dmFyIEM9Ry8yO3JldHVybntzdHJva2U6dHlwZW9mIGE9PSJzdHJpbmciP2E6dm9pZCAwLHN0cm9rZURhc2hhcnJheToiIi5jb25jYXQociwicHggIikuY29uY2F0KHQpLHN0cm9rZURhc2hvZmZzZXQ6eStwLHRyYW5zZm9ybToicm90YXRlKCIuY29uY2F0KGwrditTLCJkZWcpIiksdHJhbnNmb3JtT3JpZ2luOiIiLmNvbmNhdChDLCJweCAiKS5jb25jYXQoQywicHgiKSx0cmFuc2l0aW9uOiJzdHJva2UtZGFzaG9mZnNldCAuM3MgZWFzZSAwcywgc3Ryb2tlLWRhc2hhcnJheSAuM3MgZWFzZSAwcywgc3Ryb2tlIC4zcywgc3Ryb2tlLXdpZHRoIC4wNnMgZWFzZSAuM3MsIG9wYWNpdHkgLjNzIGVhc2UgMHMiLGZpbGxPcGFjaXR5OjB9fSxEZT1bImlkIiwicHJlZml4Q2xzIiwic3RlcHMiLCJzdHJva2VXaWR0aCIsInRyYWlsV2lkdGgiLCJnYXBEZWdyZWUiLCJnYXBQb3NpdGlvbiIsInRyYWlsQ29sb3IiLCJzdHJva2VMaW5lY2FwIiwic3R5bGUiLCJjbGFzc05hbWUiLCJzdHJva2VDb2xvciIsInBlcmNlbnQiXTtmdW5jdGlvbiBkZShlKXt2YXIgdD1lIT1udWxsP2U6W107cmV0dXJuIEFycmF5LmlzQXJyYXkodCk/dDpbdF19dmFyIFRlPWZ1bmN0aW9uKHQpe3ZhciByPSgwLFUuWikoKDAsVS5aKSh7fSxzZSksdCksbj1yLmlkLG89ci5wcmVmaXhDbHMsbD1yLnN0ZXBzLGk9ci5zdHJva2VXaWR0aCxjPXIudHJhaWxXaWR0aCxhPXIuZ2FwRGVncmVlLGY9YT09PXZvaWQgMD8wOmEsZD1yLmdhcFBvc2l0aW9uLHA9ci50cmFpbENvbG9yLHY9ci5zdHJva2VMaW5lY2FwLFM9ci5zdHlsZSx5PXIuY2xhc3NOYW1lLEM9ci5zdHJva2VDb2xvcix4PXIucGVyY2VudCxnPSgwLG9lLlopKHIsRGUpLGg9Ry8yLE89d2UobiksRT0iIi5jb25jYXQoTywiLWdyYWRpZW50IiksJD1oLWkvMixiPU1hdGguUEkqMiokLFA9Zj4wPzkwK2YvMjotOTAsaz1iKigoMzYwLWYpLzM2MCksST0oMCxYLlopKGwpPT09Im9iamVjdCI/bDp7Y291bnQ6bCxnYXA6Mn0sdT1JLmNvdW50LEg9SS5nYXAsTT1kZSh4KSxEPWRlKEMpLFQ9RC5maW5kKGZ1bmN0aW9uKGope3JldHVybiBqJiYoMCxYLlopKGopPT09Im9iamVjdCJ9KSxaPVQmJigwLFguWikoVCk9PT0ib2JqZWN0IixOPVo/ImJ1dHQiOnYsVj1fKGIsaywwLDEwMCxQLGYsZCxwLE4saSksSj1pZSgpLFc9ZnVuY3Rpb24oKXt2YXIgQj0wO3JldHVybiBNLm1hcChmdW5jdGlvbihSLEYpe3ZhciB0ZT1EW0ZdfHxEW0QubGVuZ3RoLTFdLEs9XyhiLGssQixSLFAsZixkLHRlLE4saSk7cmV0dXJuIEIrPVIscy5jcmVhdGVFbGVtZW50KEFlLHtrZXk6Rixjb2xvcjp0ZSxwdGc6UixyYWRpdXM6JCxwcmVmaXhDbHM6byxncmFkaWVudElkOkUsc3R5bGU6SyxzdHJva2VMaW5lY2FwOk4sc3Ryb2tlV2lkdGg6aSxnYXBEZWdyZWU6ZixyZWY6ZnVuY3Rpb24ocmUpe0pbRl09cmV9LHNpemU6R30pfSkucmV2ZXJzZSgpfSxMPWZ1bmN0aW9uKCl7dmFyIEI9TWF0aC5yb3VuZCh1KihNWzBdLzEwMCkpLFI9MTAwL3UsRj0wO3JldHVybiBuZXcgQXJyYXkodSkuZmlsbChudWxsKS5tYXAoZnVuY3Rpb24odGUsSyl7dmFyIHE9Szw9Qi0xP0RbMF06cCxyZT1xJiYoMCxYLlopKHEpPT09Im9iamVjdCI/InVybCgjIi5jb25jYXQoRSwiKSIpOnZvaWQgMCxtZT1fKGIsayxGLFIsUCxmLGQscSwiYnV0dCIsaSxIKTtyZXR1cm4gRis9KGstbWUuc3Ryb2tlRGFzaG9mZnNldCtIKSoxMDAvayxzLmNyZWF0ZUVsZW1lbnQoImNpcmNsZSIse2tleTpLLGNsYXNzTmFtZToiIi5jb25jYXQobywiLWNpcmNsZS1wYXRoIikscjokLGN4OmgsY3k6aCxzdHJva2U6cmUsc3Ryb2tlV2lkdGg6aSxvcGFjaXR5OjEsc3R5bGU6bWUscmVmOmZ1bmN0aW9uKGF0KXtKW0tdPWF0fX0pfSl9O3JldHVybiBzLmNyZWF0ZUVsZW1lbnQoInN2ZyIsKDAsbmUuWikoe2NsYXNzTmFtZTpBKCkoIiIuY29uY2F0KG8sIi1jaXJjbGUiKSx5KSx2aWV3Qm94OiIwIDAgIi5jb25jYXQoRywiICIpLmNvbmNhdChHKSxzdHlsZTpTLGlkOm4scm9sZToicHJlc2VudGF0aW9uIn0sZyksIXUmJnMuY3JlYXRlRWxlbWVudCgiY2lyY2xlIix7Y2xhc3NOYW1lOiIiLmNvbmNhdChvLCItY2lyY2xlLXRyYWlsIikscjokLGN4OmgsY3k6aCxzdHJva2U6cCxzdHJva2VMaW5lY2FwOk4sc3Ryb2tlV2lkdGg6Y3x8aSxzdHlsZTpWfSksdT9MKCk6VygpKX0sdWU9VGUsbHQ9e0xpbmU6SWUsQ2lyY2xlOnVlfSxaZT1tKDgzMDYyKSxlZT1tKDg0ODk4KTtmdW5jdGlvbiB3KGUpe3JldHVybiFlfHxlPDA/MDplPjEwMD8xMDA6ZX1mdW5jdGlvbiBRKGUpe2xldHtzdWNjZXNzOnQsc3VjY2Vzc1BlcmNlbnQ6cn09ZSxuPXI7cmV0dXJuIHQmJiJwcm9ncmVzcyJpbiB0JiYobj10LnByb2dyZXNzKSx0JiYicGVyY2VudCJpbiB0JiYobj10LnBlcmNlbnQpLG59Y29uc3QgUmU9ZT0+e2xldHtwZXJjZW50OnQsc3VjY2VzczpyLHN1Y2Nlc3NQZXJjZW50Om59PWU7Y29uc3Qgbz13KFEoe3N1Y2Nlc3M6cixzdWNjZXNzUGVyY2VudDpufSkpO3JldHVybltvLHcodyh0KS1vKV19LE1lPWU9PntsZXR7c3VjY2Vzczp0PXt9LHN0cm9rZUNvbG9yOnJ9PWU7Y29uc3R7c3Ryb2tlQ29sb3I6bn09dDtyZXR1cm5bbnx8ZWUucHJlc2V0UHJpbWFyeUNvbG9ycy5ncmVlbixyfHxudWxsXX0sWT0oZSx0LHIpPT57dmFyIG4sbyxsLGk7bGV0IGM9LTEsYT0tMTtpZih0PT09InN0ZXAiKXtjb25zdCBmPXIuc3RlcHMsZD1yLnN0cm9rZVdpZHRoO3R5cGVvZiBlPT0ic3RyaW5nInx8dHlwZW9mIGU9PSJ1bmRlZmluZWQiPyhjPWU9PT0ic21hbGwiPzI6MTQsYT1kIT1udWxsP2Q6OCk6dHlwZW9mIGU9PSJudW1iZXIiP1tjLGFdPVtlLGVdOltjPTE0LGE9OF09QXJyYXkuaXNBcnJheShlKT9lOltlLndpZHRoLGUuaGVpZ2h0XSxjKj1mfWVsc2UgaWYodD09PSJsaW5lIil7Y29uc3QgZj1yPT1udWxsP3ZvaWQgMDpyLnN0cm9rZVdpZHRoO3R5cGVvZiBlPT0ic3RyaW5nInx8dHlwZW9mIGU9PSJ1bmRlZmluZWQiP2E9Znx8KGU9PT0ic21hbGwiPzY6OCk6dHlwZW9mIGU9PSJudW1iZXIiP1tjLGFdPVtlLGVdOltjPS0xLGE9OF09QXJyYXkuaXNBcnJheShlKT9lOltlLndpZHRoLGUuaGVpZ2h0XX1lbHNlKHQ9PT0iY2lyY2xlInx8dD09PSJkYXNoYm9hcmQiKSYmKHR5cGVvZiBlPT0ic3RyaW5nInx8dHlwZW9mIGU9PSJ1bmRlZmluZWQiP1tjLGFdPWU9PT0ic21hbGwiP1s2MCw2MF06WzEyMCwxMjBdOnR5cGVvZiBlPT0ibnVtYmVyIj9bYyxhXT1bZSxlXTpBcnJheS5pc0FycmF5KGUpJiYoYz0obz0obj1lWzBdKSE9PW51bGwmJm4hPT12b2lkIDA/bjplWzFdKSE9PW51bGwmJm8hPT12b2lkIDA/bzoxMjAsYT0oaT0obD1lWzBdKSE9PW51bGwmJmwhPT12b2lkIDA/bDplWzFdKSE9PW51bGwmJmkhPT12b2lkIDA/aToxMjApKTtyZXR1cm5bYyxhXX0sQmU9MyxGZT1lPT5CZS9lKjEwMDt2YXIgWGU9ZT0+e2NvbnN0e3ByZWZpeENsczp0LHRyYWlsQ29sb3I6cj1udWxsLHN0cm9rZUxpbmVjYXA6bj0icm91bmQiLGdhcFBvc2l0aW9uOm8sZ2FwRGVncmVlOmwsd2lkdGg6aT0xMjAsdHlwZTpjLGNoaWxkcmVuOmEsc3VjY2VzczpmLHNpemU6ZD1pLHN0ZXBzOnB9PWUsW3YsU109WShkLCJjaXJjbGUiKTtsZXR7c3Ryb2tlV2lkdGg6eX09ZTt5PT09dm9pZCAwJiYoeT1NYXRoLm1heChGZSh2KSw2KSk7Y29uc3QgQz17d2lkdGg6dixoZWlnaHQ6Uyxmb250U2l6ZTp2Ki4xNSs2fSx4PXMudXNlTWVtbygoKT0+e2lmKGx8fGw9PT0wKXJldHVybiBsO2lmKGM9PT0iZGFzaGJvYXJkIilyZXR1cm4gNzV9LFtsLGNdKSxnPVJlKGUpLGg9b3x8Yz09PSJkYXNoYm9hcmQiJiYiYm90dG9tInx8dm9pZCAwLE89T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUuc3Ryb2tlQ29sb3IpPT09IltvYmplY3QgT2JqZWN0XSIsRT1NZSh7c3VjY2VzczpmLHN0cm9rZUNvbG9yOmUuc3Ryb2tlQ29sb3J9KSwkPUEoKShgJHt0fS1pbm5lcmAse1tgJHt0fS1jaXJjbGUtZ3JhZGllbnRgXTpPfSksYj1zLmNyZWF0ZUVsZW1lbnQodWUse3N0ZXBzOnAscGVyY2VudDpwP2dbMV06ZyxzdHJva2VXaWR0aDp5LHRyYWlsV2lkdGg6eSxzdHJva2VDb2xvcjpwP0VbMV06RSxzdHJva2VMaW5lY2FwOm4sdHJhaWxDb2xvcjpyLHByZWZpeENsczp0LGdhcERlZ3JlZTp4LGdhcFBvc2l0aW9uOmh9KSxQPXY8PTIwLGs9cy5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6JCxzdHlsZTpDfSxiLCFQJiZhKTtyZXR1cm4gUD9zLmNyZWF0ZUVsZW1lbnQoWmUuWix7dGl0bGU6YX0sayk6a30sZmU9bSgxMTU2OCksR2U9bSgxNDc0NyksSGU9bSg4MzU1OSksVmU9bSg4MzI2Mik7Y29uc3Qgej0iLS1wcm9ncmVzcy1saW5lLXN0cm9rZS1jb2xvciIsZ2U9Ii0tcHJvZ3Jlc3MtcGVyY2VudCIscGU9ZT0+e2NvbnN0IHQ9ZT8iMTAwJSI6Ii0xMDAlIjtyZXR1cm4gbmV3IGZlLkU0KGBhbnRQcm9ncmVzcyR7ZT8iUlRMIjoiTFRSIn1BY3RpdmVgLHsiMCUiOnt0cmFuc2Zvcm06YHRyYW5zbGF0ZVgoJHt0fSkgc2NhbGVYKDApYCxvcGFjaXR5Oi4xfSwiMjAlIjp7dHJhbnNmb3JtOmB0cmFuc2xhdGVYKCR7dH0pIHNjYWxlWCgwKWAsb3BhY2l0eTouNX0sdG86e3RyYW5zZm9ybToidHJhbnNsYXRlWCgwKSBzY2FsZVgoMSkiLG9wYWNpdHk6MH19KX0sS2U9ZT0+e2NvbnN0e2NvbXBvbmVudENsczp0LGljb25DbHM6cn09ZTtyZXR1cm57W3RdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwoMCxHZS5XZikoZSkpLHtkaXNwbGF5OiJpbmxpbmUtYmxvY2siLCImLXJ0bCI6e2RpcmVjdGlvbjoicnRsIn0sIiYtbGluZSI6e3Bvc2l0aW9uOiJyZWxhdGl2ZSIsd2lkdGg6IjEwMCUiLGZvbnRTaXplOmUuZm9udFNpemV9LFtgJHt0fS1vdXRlcmBdOntkaXNwbGF5OiJpbmxpbmUtZmxleCIsYWxpZ25JdGVtczoiY2VudGVyIix3aWR0aDoiMTAwJSJ9LFtgJHt0fS1pbm5lcmBdOntwb3NpdGlvbjoicmVsYXRpdmUiLGRpc3BsYXk6ImlubGluZS1ibG9jayIsd2lkdGg6IjEwMCUiLGZsZXg6MSxvdmVyZmxvdzoiaGlkZGVuIix2ZXJ0aWNhbEFsaWduOiJtaWRkbGUiLGJhY2tncm91bmRDb2xvcjplLnJlbWFpbmluZ0NvbG9yLGJvcmRlclJhZGl1czplLmxpbmVCb3JkZXJSYWRpdXN9LFtgJHt0fS1pbm5lcjpub3QoJHt0fS1jaXJjbGUtZ3JhZGllbnQpYF06e1tgJHt0fS1jaXJjbGUtcGF0aGBdOntzdHJva2U6ZS5kZWZhdWx0Q29sb3J9fSxbYCR7dH0tc3VjY2Vzcy1iZywgJHt0fS1iZ2BdOntwb3NpdGlvbjoicmVsYXRpdmUiLGJhY2tncm91bmQ6ZS5kZWZhdWx0Q29sb3IsYm9yZGVyUmFkaXVzOmUubGluZUJvcmRlclJhZGl1cyx0cmFuc2l0aW9uOmBhbGwgJHtlLm1vdGlvbkR1cmF0aW9uU2xvd30gJHtlLm1vdGlvbkVhc2VJbk91dENpcmN9YH0sW2Ake3R9LWxheW91dC1ib3R0b21gXTp7ZGlzcGxheToiZmxleCIsZmxleERpcmVjdGlvbjoiY29sdW1uIixhbGlnbkl0ZW1zOiJjZW50ZXIiLGp1c3RpZnlDb250ZW50OiJjZW50ZXIiLFtgJHt0fS10ZXh0YF06e3dpZHRoOiJtYXgtY29udGVudCIsbWFyZ2luSW5saW5lU3RhcnQ6MCxtYXJnaW5Ub3A6ZS5tYXJnaW5YWFN9fSxbYCR7dH0tYmdgXTp7b3ZlcmZsb3c6ImhpZGRlbiIsIiY6OmFmdGVyIjp7Y29udGVudDonIiInLGJhY2tncm91bmQ6e19tdWx0aV92YWx1ZV86ITAsdmFsdWU6WyJpbmhlcml0IixgdmFyKCR7en0pYF19LGhlaWdodDoiMTAwJSIsd2lkdGg6YGNhbGMoMSAvIHZhcigke2dlfSkgKiAxMDAlKWAsZGlzcGxheToiYmxvY2sifSxbYCYke3R9LWJnLWlubmVyYF06e21pbldpZHRoOiJtYXgtY29udGVudCIsIiY6OmFmdGVyIjp7Y29udGVudDoibm9uZSJ9LFtgJHt0fS10ZXh0LWlubmVyYF06e2NvbG9yOmUuY29sb3JXaGl0ZSxbYCYke3R9LXRleHQtYnJpZ2h0YF06e2NvbG9yOiJyZ2JhKDAsIDAsIDAsIDAuNDUpIn19fX0sW2Ake3R9LXN1Y2Nlc3MtYmdgXTp7cG9zaXRpb246ImFic29sdXRlIixpbnNldEJsb2NrU3RhcnQ6MCxpbnNldElubGluZVN0YXJ0OjAsYmFja2dyb3VuZENvbG9yOmUuY29sb3JTdWNjZXNzfSxbYCR7dH0tdGV4dGBdOntkaXNwbGF5OiJpbmxpbmUtYmxvY2siLG1hcmdpbklubGluZVN0YXJ0OmUubWFyZ2luWFMsY29sb3I6ZS5jb2xvclRleHQsbGluZUhlaWdodDoxLHdpZHRoOiIyZW0iLHdoaXRlU3BhY2U6Im5vd3JhcCIsdGV4dEFsaWduOiJzdGFydCIsdmVydGljYWxBbGlnbjoibWlkZGxlIix3b3JkQnJlYWs6Im5vcm1hbCIsW3JdOntmb250U2l6ZTplLmZvbnRTaXplfSxbYCYke3R9LXRleHQtb3V0ZXJgXTp7d2lkdGg6Im1heC1jb250ZW50In0sW2AmJHt0fS10ZXh0LW91dGVyJHt0fS10ZXh0LXN0YXJ0YF06e3dpZHRoOiJtYXgtY29udGVudCIsbWFyZ2luSW5saW5lU3RhcnQ6MCxtYXJnaW5JbmxpbmVFbmQ6ZS5tYXJnaW5YU319LFtgJHt0fS10ZXh0LWlubmVyYF06e2Rpc3BsYXk6ImZsZXgiLGp1c3RpZnlDb250ZW50OiJjZW50ZXIiLGFsaWduSXRlbXM6ImNlbnRlciIsd2lkdGg6IjEwMCUiLGhlaWdodDoiMTAwJSIsbWFyZ2luSW5saW5lU3RhcnQ6MCxwYWRkaW5nOmAwICR7KDAsZmUuYmYpKGUucGFkZGluZ1hYUyl9YCxbYCYke3R9LXRleHQtc3RhcnRgXTp7anVzdGlmeUNvbnRlbnQ6InN0YXJ0In0sW2AmJHt0fS10ZXh0LWVuZGBdOntqdXN0aWZ5Q29udGVudDoiZW5kIn19LFtgJiR7dH0tc3RhdHVzLWFjdGl2ZWBdOntbYCR7dH0tYmc6OmJlZm9yZWBdOntwb3NpdGlvbjoiYWJzb2x1dGUiLGluc2V0OjAsYmFja2dyb3VuZENvbG9yOmUuY29sb3JCZ0NvbnRhaW5lcixib3JkZXJSYWRpdXM6ZS5saW5lQm9yZGVyUmFkaXVzLG9wYWNpdHk6MCxhbmltYXRpb25OYW1lOnBlKCksYW5pbWF0aW9uRHVyYXRpb246ZS5wcm9ncmVzc0FjdGl2ZU1vdGlvbkR1cmF0aW9uLGFuaW1hdGlvblRpbWluZ0Z1bmN0aW9uOmUubW90aW9uRWFzZU91dFF1aW50LGFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50OiJpbmZpbml0ZSIsY29udGVudDonIiInfX0sW2AmJHt0fS1ydGwke3R9LXN0YXR1cy1hY3RpdmVgXTp7W2Ake3R9LWJnOjpiZWZvcmVgXTp7YW5pbWF0aW9uTmFtZTpwZSghMCl9fSxbYCYke3R9LXN0YXR1cy1leGNlcHRpb25gXTp7W2Ake3R9LWJnYF06e2JhY2tncm91bmRDb2xvcjplLmNvbG9yRXJyb3J9LFtgJHt0fS10ZXh0YF06e2NvbG9yOmUuY29sb3JFcnJvcn19LFtgJiR7dH0tc3RhdHVzLWV4Y2VwdGlvbiAke3R9LWlubmVyOm5vdCgke3R9LWNpcmNsZS1ncmFkaWVudClgXTp7W2Ake3R9LWNpcmNsZS1wYXRoYF06e3N0cm9rZTplLmNvbG9yRXJyb3J9fSxbYCYke3R9LXN0YXR1cy1zdWNjZXNzYF06e1tgJHt0fS1iZ2BdOntiYWNrZ3JvdW5kQ29sb3I6ZS5jb2xvclN1Y2Nlc3N9LFtgJHt0fS10ZXh0YF06e2NvbG9yOmUuY29sb3JTdWNjZXNzfX0sW2AmJHt0fS1zdGF0dXMtc3VjY2VzcyAke3R9LWlubmVyOm5vdCgke3R9LWNpcmNsZS1ncmFkaWVudClgXTp7W2Ake3R9LWNpcmNsZS1wYXRoYF06e3N0cm9rZTplLmNvbG9yU3VjY2Vzc319fSl9fSxVZT1lPT57Y29uc3R7Y29tcG9uZW50Q2xzOnQsaWNvbkNsczpyfT1lO3JldHVybntbdF06e1tgJHt0fS1jaXJjbGUtdHJhaWxgXTp7c3Ryb2tlOmUucmVtYWluaW5nQ29sb3J9LFtgJiR7dH0tY2lyY2xlICR7dH0taW5uZXJgXTp7cG9zaXRpb246InJlbGF0aXZlIixsaW5lSGVpZ2h0OjEsYmFja2dyb3VuZENvbG9yOiJ0cmFuc3BhcmVudCJ9LFtgJiR7dH0tY2lyY2xlICR7dH0tdGV4dGBdOntwb3NpdGlvbjoiYWJzb2x1dGUiLGluc2V0QmxvY2tTdGFydDoiNTAlIixpbnNldElubGluZVN0YXJ0OjAsd2lkdGg6IjEwMCUiLG1hcmdpbjowLHBhZGRpbmc6MCxjb2xvcjplLmNpcmNsZVRleHRDb2xvcixmb250U2l6ZTplLmNpcmNsZVRleHRGb250U2l6ZSxsaW5lSGVpZ2h0OjEsd2hpdGVTcGFjZToibm9ybWFsIix0ZXh0QWxpZ246ImNlbnRlciIsdHJhbnNmb3JtOiJ0cmFuc2xhdGVZKC01MCUpIixbcl06e2ZvbnRTaXplOmUuY2lyY2xlSWNvbkZvbnRTaXplfX0sW2Ake3R9LWNpcmNsZSYtc3RhdHVzLWV4Y2VwdGlvbmBdOntbYCR7dH0tdGV4dGBdOntjb2xvcjplLmNvbG9yRXJyb3J9fSxbYCR7dH0tY2lyY2xlJi1zdGF0dXMtc3VjY2Vzc2BdOntbYCR7dH0tdGV4dGBdOntjb2xvcjplLmNvbG9yU3VjY2Vzc319fSxbYCR7dH0taW5saW5lLWNpcmNsZWBdOntsaW5lSGVpZ2h0OjEsW2Ake3R9LWlubmVyYF06e3ZlcnRpY2FsQWxpZ246ImJvdHRvbSJ9fX19LFFlPWU9Pntjb25zdHtjb21wb25lbnRDbHM6dH09ZTtyZXR1cm57W3RdOntbYCR7dH0tc3RlcHNgXTp7ZGlzcGxheToiaW5saW5lLWJsb2NrIiwiJi1vdXRlciI6e2Rpc3BsYXk6ImZsZXgiLGZsZXhEaXJlY3Rpb246InJvdyIsYWxpZ25JdGVtczoiY2VudGVyIn0sIiYtaXRlbSI6e2ZsZXhTaHJpbms6MCxtaW5XaWR0aDplLnByb2dyZXNzU3RlcE1pbldpZHRoLG1hcmdpbklubGluZUVuZDplLnByb2dyZXNzU3RlcE1hcmdpbklubGluZUVuZCxiYWNrZ3JvdW5kQ29sb3I6ZS5yZW1haW5pbmdDb2xvcix0cmFuc2l0aW9uOmBhbGwgJHtlLm1vdGlvbkR1cmF0aW9uU2xvd31gLCImLWFjdGl2ZSI6e2JhY2tncm91bmRDb2xvcjplLmRlZmF1bHRDb2xvcn19fX19fSxZZT1lPT57Y29uc3R7Y29tcG9uZW50Q2xzOnQsaWNvbkNsczpyfT1lO3JldHVybntbdF06e1tgJHt0fS1zbWFsbCYtbGluZSwgJHt0fS1zbWFsbCYtbGluZSAke3R9LXRleHQgJHtyfWBdOntmb250U2l6ZTplLmZvbnRTaXplU019fX19LHplPWU9Pih7Y2lyY2xlVGV4dENvbG9yOmUuY29sb3JUZXh0LGRlZmF1bHRDb2xvcjplLmNvbG9ySW5mbyxyZW1haW5pbmdDb2xvcjplLmNvbG9yRmlsbFNlY29uZGFyeSxsaW5lQm9yZGVyUmFkaXVzOjEwMCxjaXJjbGVUZXh0Rm9udFNpemU6IjFlbSIsY2lyY2xlSWNvbkZvbnRTaXplOmAke2UuZm9udFNpemUvZS5mb250U2l6ZVNNfWVtYH0pO3ZhciBKZT0oMCxIZS5JJCkoIlByb2dyZXNzIixlPT57Y29uc3QgdD1lLmNhbGMoZS5tYXJnaW5YWFMpLmRpdigyKS5lcXVhbCgpLHI9KDAsVmUuSVgpKGUse3Byb2dyZXNzU3RlcE1hcmdpbklubGluZUVuZDp0LHByb2dyZXNzU3RlcE1pbldpZHRoOnQscHJvZ3Jlc3NBY3RpdmVNb3Rpb25EdXJhdGlvbjoiMi40cyJ9KTtyZXR1cm5bS2UociksVWUociksUWUociksWWUocildfSx6ZSkscWU9ZnVuY3Rpb24oZSx0KXt2YXIgcj17fTtmb3IodmFyIG4gaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxuKSYmdC5pbmRleE9mKG4pPDAmJihyW25dPWVbbl0pO2lmKGUhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgbz0wLG49T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtvPG4ubGVuZ3RoO28rKyl0LmluZGV4T2YobltvXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsbltvXSkmJihyW25bb11dPWVbbltvXV0pO3JldHVybiByfTtjb25zdCBfZT1lPT57bGV0IHQ9W107cmV0dXJuIE9iamVjdC5rZXlzKGUpLmZvckVhY2gocj0+e2NvbnN0IG49cGFyc2VGbG9hdChyLnJlcGxhY2UoLyUvZywiIikpO051bWJlci5pc05hTihuKXx8dC5wdXNoKHtrZXk6bix2YWx1ZTplW3JdfSl9KSx0PXQuc29ydCgocixuKT0+ci5rZXktbi5rZXkpLHQubWFwKHI9PntsZXR7a2V5Om4sdmFsdWU6b309cjtyZXR1cm5gJHtvfSAke259JWB9KS5qb2luKCIsICIpfSxldD0oZSx0KT0+e2NvbnN0e2Zyb206cj1lZS5wcmVzZXRQcmltYXJ5Q29sb3JzLmJsdWUsdG86bj1lZS5wcmVzZXRQcmltYXJ5Q29sb3JzLmJsdWUsZGlyZWN0aW9uOm89dD09PSJydGwiPyJ0byBsZWZ0IjoidG8gcmlnaHQifT1lLGw9cWUoZSxbImZyb20iLCJ0byIsImRpcmVjdGlvbiJdKTtpZihPYmplY3Qua2V5cyhsKS5sZW5ndGghPT0wKXtjb25zdCBjPV9lKGwpLGE9YGxpbmVhci1ncmFkaWVudCgke299LCAke2N9KWA7cmV0dXJue2JhY2tncm91bmQ6YSxbel06YX19Y29uc3QgaT1gbGluZWFyLWdyYWRpZW50KCR7b30sICR7cn0sICR7bn0pYDtyZXR1cm57YmFja2dyb3VuZDppLFt6XTppfX07dmFyIHR0PWU9Pntjb25zdHtwcmVmaXhDbHM6dCxkaXJlY3Rpb246cixwZXJjZW50Om4sc2l6ZTpvLHN0cm9rZVdpZHRoOmwsc3Ryb2tlQ29sb3I6aSxzdHJva2VMaW5lY2FwOmM9InJvdW5kIixjaGlsZHJlbjphLHRyYWlsQ29sb3I6Zj1udWxsLHBlcmNlbnRQb3NpdGlvbjpkLHN1Y2Nlc3M6cH09ZSx7YWxpZ246dix0eXBlOlN9PWQseT1pJiZ0eXBlb2YgaSE9InN0cmluZyI/ZXQoaSxyKTp7W3pdOmksYmFja2dyb3VuZDppfSxDPWM9PT0ic3F1YXJlInx8Yz09PSJidXR0Ij8wOnZvaWQgMCx4PW8hPW51bGw/bzpbLTEsbHx8KG89PT0ic21hbGwiPzY6OCldLFtnLGhdPVkoeCwibGluZSIse3N0cm9rZVdpZHRoOmx9KSxPPXtiYWNrZ3JvdW5kQ29sb3I6Znx8dm9pZCAwLGJvcmRlclJhZGl1czpDfSxFPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7d2lkdGg6YCR7dyhuKX0lYCxoZWlnaHQ6aCxib3JkZXJSYWRpdXM6Q30seSkse1tnZV06dyhuKS8xMDB9KSwkPVEoZSksYj17d2lkdGg6YCR7dygkKX0lYCxoZWlnaHQ6aCxib3JkZXJSYWRpdXM6QyxiYWNrZ3JvdW5kQ29sb3I6cD09bnVsbD92b2lkIDA6cC5zdHJva2VDb2xvcn0sUD17d2lkdGg6ZzwwPyIxMDAlIjpnfSxrPXMuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmAke3R9LWlubmVyYCxzdHlsZTpPfSxzLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpBKCkoYCR7dH0tYmdgLGAke3R9LWJnLSR7U31gKSxzdHlsZTpFfSxTPT09ImlubmVyIiYmYSksJCE9PXZvaWQgMCYmcy5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YCR7dH0tc3VjY2Vzcy1iZ2Asc3R5bGU6Yn0pKSxJPVM9PT0ib3V0ZXIiJiZ2PT09InN0YXJ0Iix1PVM9PT0ib3V0ZXIiJiZ2PT09ImVuZCI7cmV0dXJuIFM9PT0ib3V0ZXIiJiZ2PT09ImNlbnRlciI/cy5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YCR7dH0tbGF5b3V0LWJvdHRvbWB9LGssYSk6cy5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YCR7dH0tb3V0ZXJgLHN0eWxlOlB9LEkmJmEsayx1JiZhKX0scnQ9ZT0+e2NvbnN0e3NpemU6dCxzdGVwczpyLHJvdW5kaW5nOm49TWF0aC5yb3VuZCxwZXJjZW50Om89MCxzdHJva2VXaWR0aDpsPTgsc3Ryb2tlQ29sb3I6aSx0cmFpbENvbG9yOmM9bnVsbCxwcmVmaXhDbHM6YSxjaGlsZHJlbjpmfT1lLGQ9bihyKihvLzEwMCkpLHA9dD09PSJzbWFsbCI/MjoxNCx2PXQhPW51bGw/dDpbcCxsXSxbUyx5XT1ZKHYsInN0ZXAiLHtzdGVwczpyLHN0cm9rZVdpZHRoOmx9KSxDPVMvcix4PUFycmF5LmZyb20oe2xlbmd0aDpyfSk7Zm9yKGxldCBnPTA7ZzxyO2crKyl7Y29uc3QgaD1BcnJheS5pc0FycmF5KGkpP2lbZ106aTt4W2ddPXMuY3JlYXRlRWxlbWVudCgiZGl2Iix7a2V5OmcsY2xhc3NOYW1lOkEoKShgJHthfS1zdGVwcy1pdGVtYCx7W2Ake2F9LXN0ZXBzLWl0ZW0tYWN0aXZlYF06Zzw9ZC0xfSksc3R5bGU6e2JhY2tncm91bmRDb2xvcjpnPD1kLTE/aDpjLHdpZHRoOkMsaGVpZ2h0Onl9fSl9cmV0dXJuIHMuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmAke2F9LXN0ZXBzLW91dGVyYH0seCxmKX0sbnQ9ZnVuY3Rpb24oZSx0KXt2YXIgcj17fTtmb3IodmFyIG4gaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxuKSYmdC5pbmRleE9mKG4pPDAmJihyW25dPWVbbl0pO2lmKGUhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgbz0wLG49T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtvPG4ubGVuZ3RoO28rKyl0LmluZGV4T2YobltvXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsbltvXSkmJihyW25bb11dPWVbbltvXV0pO3JldHVybiByfTtjb25zdCBndD1udWxsLG90PVsibm9ybWFsIiwiZXhjZXB0aW9uIiwiYWN0aXZlIiwic3VjY2VzcyJdO3ZhciBzdD1zLmZvcndhcmRSZWYoKGUsdCk9Pntjb25zdHtwcmVmaXhDbHM6cixjbGFzc05hbWU6bixyb290Q2xhc3NOYW1lOm8sc3RlcHM6bCxzdHJva2VDb2xvcjppLHBlcmNlbnQ6Yz0wLHNpemU6YT0iZGVmYXVsdCIsc2hvd0luZm86Zj0hMCx0eXBlOmQ9ImxpbmUiLHN0YXR1czpwLGZvcm1hdDp2LHN0eWxlOlMscGVyY2VudFBvc2l0aW9uOnk9e319PWUsQz1udChlLFsicHJlZml4Q2xzIiwiY2xhc3NOYW1lIiwicm9vdENsYXNzTmFtZSIsInN0ZXBzIiwic3Ryb2tlQ29sb3IiLCJwZXJjZW50Iiwic2l6ZSIsInNob3dJbmZvIiwidHlwZSIsInN0YXR1cyIsImZvcm1hdCIsInN0eWxlIiwicGVyY2VudFBvc2l0aW9uIl0pLHthbGlnbjp4PSJlbmQiLHR5cGU6Zz0ib3V0ZXIifT15LGg9QXJyYXkuaXNBcnJheShpKT9pWzBdOmksTz10eXBlb2YgaT09InN0cmluZyJ8fEFycmF5LmlzQXJyYXkoaSk/aTp2b2lkIDAsRT1zLnVzZU1lbW8oKCk9PntpZihoKXtjb25zdCBXPXR5cGVvZiBoPT0ic3RyaW5nIj9oOk9iamVjdC52YWx1ZXMoaClbMF07cmV0dXJuIG5ldyBoZS50KFcpLmlzTGlnaHQoKX1yZXR1cm4hMX0sW2ldKSwkPXMudXNlTWVtbygoKT0+e3ZhciBXLEw7Y29uc3Qgaj1RKGUpO3JldHVybiBwYXJzZUludChqIT09dm9pZCAwPyhXPWohPW51bGw/ajowKT09PW51bGx8fFc9PT12b2lkIDA/dm9pZCAwOlcudG9TdHJpbmcoKTooTD1jIT1udWxsP2M6MCk9PT1udWxsfHxMPT09dm9pZCAwP3ZvaWQgMDpMLnRvU3RyaW5nKCksMTApfSxbYyxlLnN1Y2Nlc3MsZS5zdWNjZXNzUGVyY2VudF0pLGI9cy51c2VNZW1vKCgpPT4hb3QuaW5jbHVkZXMocCkmJiQ+PTEwMD8ic3VjY2VzcyI6cHx8Im5vcm1hbCIsW3AsJF0pLHtnZXRQcmVmaXhDbHM6UCxkaXJlY3Rpb246ayxwcm9ncmVzczpJfT1zLnVzZUNvbnRleHQoeGUuRV8pLHU9UCgicHJvZ3Jlc3MiLHIpLFtILE0sRF09SmUodSksVD1kPT09ImxpbmUiLFo9VCYmIWwsTj1zLnVzZU1lbW8oKCk9PntpZighZilyZXR1cm4gbnVsbDtjb25zdCBXPVEoZSk7bGV0IEw7Y29uc3Qgaj12fHwoUj0+YCR7Un0lYCksQj1UJiZFJiZnPT09ImlubmVyIjtyZXR1cm4gZz09PSJpbm5lciJ8fHZ8fGIhPT0iZXhjZXB0aW9uIiYmYiE9PSJzdWNjZXNzIj9MPWoodyhjKSx3KFcpKTpiPT09ImV4Y2VwdGlvbiI/TD1UP3MuY3JlYXRlRWxlbWVudChTZS5aLG51bGwpOnMuY3JlYXRlRWxlbWVudCgkZS5aLG51bGwpOmI9PT0ic3VjY2VzcyImJihMPVQ/cy5jcmVhdGVFbGVtZW50KHllLlosbnVsbCk6cy5jcmVhdGVFbGVtZW50KENlLlosbnVsbCkpLHMuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpBKCkoYCR7dX0tdGV4dGAse1tgJHt1fS10ZXh0LWJyaWdodGBdOkIsW2Ake3V9LXRleHQtJHt4fWBdOlosW2Ake3V9LXRleHQtJHtnfWBdOlp9KSx0aXRsZTp0eXBlb2YgTD09InN0cmluZyI/TDp2b2lkIDB9LEwpfSxbZixjLCQsYixkLHUsdl0pO2xldCBWO2Q9PT0ibGluZSI/Vj1sP3MuY3JlYXRlRWxlbWVudChydCxPYmplY3QuYXNzaWduKHt9LGUse3N0cm9rZUNvbG9yOk8scHJlZml4Q2xzOnUsc3RlcHM6dHlwZW9mIGw9PSJvYmplY3QiP2wuY291bnQ6bH0pLE4pOnMuY3JlYXRlRWxlbWVudCh0dCxPYmplY3QuYXNzaWduKHt9LGUse3N0cm9rZUNvbG9yOmgscHJlZml4Q2xzOnUsZGlyZWN0aW9uOmsscGVyY2VudFBvc2l0aW9uOnthbGlnbjp4LHR5cGU6Z319KSxOKTooZD09PSJjaXJjbGUifHxkPT09ImRhc2hib2FyZCIpJiYoVj1zLmNyZWF0ZUVsZW1lbnQoWGUsT2JqZWN0LmFzc2lnbih7fSxlLHtzdHJva2VDb2xvcjpoLHByZWZpeENsczp1LHByb2dyZXNzU3RhdHVzOmJ9KSxOKSk7Y29uc3QgSj1BKCkodSxgJHt1fS1zdGF0dXMtJHtifWAse1tgJHt1fS0ke2Q9PT0iZGFzaGJvYXJkIiYmImNpcmNsZSJ8fGR9YF06ZCE9PSJsaW5lIixbYCR7dX0taW5saW5lLWNpcmNsZWBdOmQ9PT0iY2lyY2xlIiYmWShhLCJjaXJjbGUiKVswXTw9MjAsW2Ake3V9LWxpbmVgXTpaLFtgJHt1fS1saW5lLWFsaWduLSR7eH1gXTpaLFtgJHt1fS1saW5lLXBvc2l0aW9uLSR7Z31gXTpaLFtgJHt1fS1zdGVwc2BdOmwsW2Ake3V9LXNob3ctaW5mb2BdOmYsW2Ake3V9LSR7YX1gXTp0eXBlb2YgYT09InN0cmluZyIsW2Ake3V9LXJ0bGBdOms9PT0icnRsIn0sST09bnVsbD92b2lkIDA6SS5jbGFzc05hbWUsbixvLE0sRCk7cmV0dXJuIEgocy5jcmVhdGVFbGVtZW50KCJkaXYiLE9iamVjdC5hc3NpZ24oe3JlZjp0LHN0eWxlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxJPT1udWxsP3ZvaWQgMDpJLnN0eWxlKSxTKSxjbGFzc05hbWU6Sixyb2xlOiJwcm9ncmVzc2JhciIsImFyaWEtdmFsdWVub3ciOiQsImFyaWEtdmFsdWVtaW4iOjAsImFyaWEtdmFsdWVtYXgiOjEwMH0sKDAsa2UuWikoQyxbInRyYWlsQ29sb3IiLCJzdHJva2VXaWR0aCIsIndpZHRoIiwiZ2FwRGVncmVlIiwiZ2FwUG9zaXRpb24iLCJzdHJva2VMaW5lY2FwIiwic3VjY2VzcyIsInN1Y2Nlc3NQZXJjZW50Il0pKSxWKSl9KSxpdD1zdH19XSk7CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzg3MTMuMTkwMjhmNTcuYXN5bmMuanMgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzg3MTMuMTkwMjhmNTcuYXN5bmMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDU0YTFkOQotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvODcxMy4xOTAyOGY1Ny5hc3luYy5qcwpAQCAtMCwwICsxIEBACisidXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W10pLnB1c2goW1s4NzEzLDU4MDgsMjUzMV0sezQyNzM0OmZ1bmN0aW9uKFgsRCxuKXtuLnIoRCk7dmFyIFc9big2NzI5NCksUj1uKDc2NzcyKSxVPW4oMTc3ODgpLGE9big5MjM5OCksdz1uKDUzOTUxKSxzPW4oNjU4OTkpLGM9big4NTg5MyksZz1mdW5jdGlvbihiKXt2YXIgQj0oMCxSLnVzZUludGwpKCksXz1bXSxFPU9iamVjdC5rZXlzKGIuZGF0YSk7cmV0dXJuIEUuZm9yRWFjaChmdW5jdGlvbihsKXtfLnB1c2goe2tleTpsKyIxIixsYWJlbDpsLnN1YnN0cmluZyhsLmxhc3RJbmRleE9mKCIvIikrMSxsLmluZGV4T2YoIi52bSIpKSxjaGlsZHJlbjooMCxjLmpzeCkody5kZWZhdWx0LHtjbGFzc05hbWU6ImphdmEiLGNoaWxkcmVuOmIuZGF0YVtsXX0pfSl9KSwoMCxXLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXt9LFtdKSwoMCxjLmpzeCkoVS5aLHt3aWR0aDo5MDAsdGl0bGU6Qi5mb3JtYXRNZXNzYWdlKHtpZDoiZ2VuLnByZXZpZXciLGRlZmF1bHRNZXNzYWdlOiJcdTk4ODRcdTg5QzgifSksb3BlbjpiLm9wZW4sZGVzdHJveU9uQ2xvc2U6ITAsZm9vdGVyOiExLG9uT2s6ZnVuY3Rpb24oKXtiLm9uSGlkZSgpfSxvbkNhbmNlbDpmdW5jdGlvbigpe2Iub25IaWRlKCl9LGNoaWxkcmVuOigwLGMuanN4KShhLlose2RlZmF1bHRBY3RpdmVLZXk6IjEiLGl0ZW1zOl99KX0pfTtELmRlZmF1bHQ9Z30sODk0MDE6ZnVuY3Rpb24oWCxELG4pe24ucihEKTt2YXIgVz1uKDk3ODU3KSxSPW4ubihXKSxVPW4oNTU3NCksYT1uLm4oVSksdz1uKDE1MDA5KSxzPW4ubih3KSxjPW4oOTkyODkpLGc9bi5uKGMpLFM9bigyMzQzMCksYj1uKDI0OTY5KSxCPW4oMjYwNTgpLF89bigyNDUzKSxFPW4oODM2MjIpLGw9bigxNzc4OCksQz1uKDQzOTMpLHA9big4NTI2NSksdj1uKDY3Mjk0KSxoPW4oNzY3NzIpLE89big0MjczNCksbT1uKDEyNTMxKSxmPW4oNjUzODUpLEs9bigyMjM2KSxZPW4oOTgwOTcpLHU9big4NTg5MyksSj1CLlouQ29udGVudCxHPWZ1bmN0aW9uKCl7dmFyIEY9ZygpKHMoKSgpLm1hcmsoZnVuY3Rpb24gVCh0KXt2YXIgcjtyZXR1cm4gcygpKCkud3JhcChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDppZihyPV8uWlAubG9hZGluZygiXHU2QjYzXHU1NzI4XHU1MjIwXHU5NjY0IiksdCl7ZS5uZXh0PTM7YnJlYWt9cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLCEwKTtjYXNlIDM6cmV0dXJuIGUucHJldj0zLGUubmV4dD02LCgwLG0ucmVtb3ZlRGF0YSkoe2lkczp0Lm1hcChmdW5jdGlvbihvKXtyZXR1cm4gby50YWJsZUlkfSl9KTtjYXNlIDY6cmV0dXJuIHIoKSxfLlpQLnN1Y2Nlc3MoIlx1NTIyMFx1OTY2NFx1NjIxMFx1NTI5Rlx1RkYwQ1x1NTM3M1x1NUMwNlx1NTIzN1x1NjVCMCIpLGUuYWJydXB0KCJyZXR1cm4iLCEwKTtjYXNlIDExOnJldHVybiBlLnByZXY9MTEsZS50MD1lLmNhdGNoKDMpLHIoKSxfLlpQLmVycm9yKCJcdTUyMjBcdTk2NjRcdTU5MzFcdThEMjVcdUZGMENcdThCRjdcdTkxQ0RcdThCRDUiKSxlLmFicnVwdCgicmV0dXJuIiwhMSk7Y2FzZSAxNjpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0sVCxudWxsLFtbMywxMV1dKX0pKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIEYuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSxRPWZ1bmN0aW9uKCl7dmFyIEY9ZygpKHMoKSgpLm1hcmsoZnVuY3Rpb24gVCh0KXt2YXIgcixkO3JldHVybiBzKCkoKS53cmFwKGZ1bmN0aW9uKG8pe2Zvcig7Oylzd2l0Y2goby5wcmV2PW8ubmV4dCl7Y2FzZSAwOmlmKHI9Xy5aUC5sb2FkaW5nKCJcdTZCNjNcdTU3MjhcdTUyMjBcdTk2NjQiKSx0KXtvLm5leHQ9MzticmVha31yZXR1cm4gby5hYnJ1cHQoInJldHVybiIsITApO2Nhc2UgMzpyZXR1cm4gby5wcmV2PTMsZD1bdC50YWJsZUlkXSxvLm5leHQ9NywoMCxtLnJlbW92ZURhdGEpKHtpZHM6ZH0pO2Nhc2UgNzpyZXR1cm4gcigpLF8uWlAuc3VjY2VzcygiXHU1MjIwXHU5NjY0XHU2MjEwXHU1MjlGXHVGRjBDXHU1MzczXHU1QzA2XHU1MjM3XHU2NUIwIiksby5hYnJ1cHQoInJldHVybiIsITApO2Nhc2UgMTI6cmV0dXJuIG8ucHJldj0xMixvLnQwPW8uY2F0Y2goMykscigpLF8uWlAuZXJyb3IoIlx1NTIyMFx1OTY2NFx1NTkzMVx1OEQyNVx1RkYwQ1x1OEJGN1x1OTFDRFx1OEJENSIpLG8uYWJydXB0KCJyZXR1cm4iLCExKTtjYXNlIDE3OmNhc2UiZW5kIjpyZXR1cm4gby5zdG9wKCl9fSxULG51bGwsW1szLDEyXV0pfSkpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gRi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLEg9ZnVuY3Rpb24oKXt2YXIgVD0oMCx2LnVzZVJlZikoKSx0PSgwLHYudXNlU3RhdGUpKCExKSxyPWEoKSh0LDIpLGQ9clswXSxlPXJbMV0sbz0oMCx2LnVzZVN0YXRlKSghMSksZWU9YSgpKG8sMiksb2U9ZWVbMF0sbmU9ZWVbMV0sX2U9KDAsdi51c2VTdGF0ZSkoITEpLHRlPWEoKShfZSwyKSxsZT10ZVswXSxkZT10ZVsxXSx6PSgwLHYudXNlUmVmKSgpLGNlPSgwLHYudXNlU3RhdGUpKCkscmU9YSgpKGNlLDIpLE09cmVbMF0sYWU9cmVbMV0sbWU9KDAsdi51c2VTdGF0ZSkoW10pLHNlPWEoKShtZSwyKSxBPXNlWzBdLHVlPXNlWzFdLEw9KDAsaC51c2VBY2Nlc3MpKCksaWU9W3t0aXRsZToiXHU3RjE2XHU1M0Y3IixkYXRhSW5kZXg6InRhYmxlSWQiLHRpcDoiXHU3RjE2XHU1M0Y3IixyZW5kZXI6ZnVuY3Rpb24oSSxpKXtyZXR1cm4oMCx1LmpzeCkoImEiLHtvbkNsaWNrOmZ1bmN0aW9uKCl7YWUoaSksZSghMCl9LGNoaWxkcmVuOkl9KX19LHt0aXRsZToiXHU4ODY4XHU1NDBEIixkYXRhSW5kZXg6InRhYmxlTmFtZSIsdmFsdWVUeXBlOiJ0ZXh0YXJlYSJ9LHt0aXRsZToiXHU4ODY4XHU2M0NGXHU4RkYwIixkYXRhSW5kZXg6InRhYmxlQ29tbWVudCIsaGlkZUluRm9ybTohMCxoaWRlSW5TZWFyY2g6ITB9LHt0aXRsZToiXHU1QjlFXHU0RjUzIixkYXRhSW5kZXg6ImNsYXNzTmFtZSIsdmFsdWVUeXBlOiJ0ZXh0YXJlYSJ9LHt0aXRsZToiXHU1MjFCXHU1RUZBXHU2NUY2XHU5NUY0IixkYXRhSW5kZXg6ImNyZWF0ZVRpbWUiLHZhbHVlVHlwZToidGV4dGFyZWEiLGhpZGVJblNlYXJjaDohMH0se3RpdGxlOiJcdTY2RjRcdTY1QjBcdTY1RjZcdTk1RjQiLGRhdGFJbmRleDoidXBkYXRlVGltZSIsdmFsdWVUeXBlOiJ0ZXh0YXJlYSIsaGlkZUluU2VhcmNoOiEwfSx7dGl0bGU6Ilx1NjRDRFx1NEY1QyIsZGF0YUluZGV4OiJvcHRpb24iLHdpZHRoOiIyMjBweCIsdmFsdWVUeXBlOiJvcHRpb24iLHJlbmRlcjpmdW5jdGlvbihJLGkpe3JldHVyblsoMCx1LmpzeCkoRS5aUCx7dHlwZToibGluayIsc2l6ZToic21hbGwiLGhpZGRlbjohTC5oYXNQZXJtcygidG9vbDpnZW46ZWRpdCIpLG9uQ2xpY2s6ZnVuY3Rpb24oKXsoMCxtLnByZXZpZXdDb2RlKShpLnRhYmxlSWQpLnRoZW4oZnVuY3Rpb24oeSl7eS5jb2RlPT09MjAwPyhkZSh5LmRhdGEpLG5lKCEwKSk6Xy5aUC5lcnJvcigiXHU4M0I3XHU1M0Q2XHU2NTcwXHU2MzZFXHU1OTMxXHU4RDI1Iil9KX0sY2hpbGRyZW46Ilx1OTg4NFx1ODlDOCJ9LCJwcmV2aWV3IiksKDAsdS5qc3gpKEUuWlAse3R5cGU6ImxpbmsiLHNpemU6InNtYWxsIixoaWRkZW46IUwuaGFzUGVybXMoInRvb2w6Z2VuOmVkaXQiKSxvbkNsaWNrOmZ1bmN0aW9uKCl7aC5oaXN0b3J5LnB1c2goIi90b29sL2dlbi9lZGl0P2lkPSIuY29uY2F0KGkudGFibGVJZCkpfSxjaGlsZHJlbjoiXHU3RjE2XHU4RjkxIn0sImNvbmZpZyIpLCgwLHUuanN4KShFLlpQLHt0eXBlOiJsaW5rIixzaXplOiJzbWFsbCIsZGFuZ2VyOiEwLGhpZGRlbjohTC5oYXNQZXJtcygidG9vbDpnZW46ZGVsIiksb25DbGljazpnKCkocygpKCkubWFyayhmdW5jdGlvbiBQKCl7cmV0dXJuIHMoKSgpLndyYXAoZnVuY3Rpb24oJCl7Zm9yKDs7KXN3aXRjaCgkLnByZXY9JC5uZXh0KXtjYXNlIDA6bC5aLmNvbmZpcm0oe3RpdGxlOiJcdTUyMjBcdTk2NjRcdTRFRkJcdTUyQTEiLGNvbnRlbnQ6Ilx1Nzg2RVx1NUI5QVx1NTIyMFx1OTY2NFx1OEJFNVx1NEVGQlx1NTJBMVx1NTQxN1x1RkYxRiIsb2tUZXh0OiJcdTc4NkVcdThCQTQiLGNhbmNlbFRleHQ6Ilx1NTNENlx1NkQ4OCIsb25PazpmdW5jdGlvbigpe3ZhciBWPWcoKShzKCkoKS5tYXJrKGZ1bmN0aW9uIGsoKXt2YXIgcTtyZXR1cm4gcygpKCkud3JhcChmdW5jdGlvbihOKXtmb3IoOzspc3dpdGNoKE4ucHJldj1OLm5leHQpe2Nhc2UgMDpyZXR1cm4gTi5uZXh0PTIsUShpKTtjYXNlIDI6cT1OLnNlbnQscSYmei5jdXJyZW50JiZ6LmN1cnJlbnQucmVsb2FkKCk7Y2FzZSA0OmNhc2UiZW5kIjpyZXR1cm4gTi5zdG9wKCl9fSxrKX0pKTtmdW5jdGlvbiBaKCl7cmV0dXJuIFYuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBafSgpfSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gJC5zdG9wKCl9fSxQKX0pKSxjaGlsZHJlbjoiXHU1MjIwXHU5NjY0In0sImRlbGV0ZSIpLCgwLHUuanN4KShFLlpQLHt0eXBlOiJsaW5rIixzaXplOiJzbWFsbCIsaGlkZGVuOiFMLmhhc1Blcm1zKCJ0b29sOmdlbjplZGl0Iiksb25DbGljazpmdW5jdGlvbigpeygwLG0uc3luY0RiSW5mbykoaS50YWJsZU5hbWUpLnRoZW4oZnVuY3Rpb24oeSl7eS5jb2RlPT09MjAwP18uWlAuc3VjY2VzcygiXHU1NDBDXHU2QjY1XHU2MjEwXHU1MjlGIik6Xy5aUC5lcnJvcigiXHU1NDBDXHU2QjY1XHU1OTMxXHU4RDI1Iil9KX0sY2hpbGRyZW46Ilx1NTQwQ1x1NkI2NSJ9LCJzeW5jIiksKDAsdS5qc3gpKEUuWlAse3R5cGU6ImxpbmsiLHNpemU6InNtYWxsIixoaWRkZW46IUwuaGFzUGVybXMoInRvb2w6Z2VuOmVkaXQiKSxvbkNsaWNrOmZ1bmN0aW9uKCl7aS5nZW5UeXBlPT09IjEiPygwLG0uZ2VuQ29kZSkoaS50YWJsZU5hbWUpLnRoZW4oZnVuY3Rpb24oeSl7eS5jb2RlPT09MjAwP18uWlAuc3VjY2VzcygiXHU2MjEwXHU1MjlGXHU3NTFGXHU2MjEwXHU1MjMwXHU4MUVBXHU1QjlBXHU0RTQ5XHU4REVGXHU1Rjg0XHVGRjFBIi5jb25jYXQoaS5nZW5QYXRoKSk6Xy5aUC5lcnJvcih5Lm1zZyl9KTooMCxtLmJhdGNoR2VuQ29kZSkoaS50YWJsZU5hbWUpfSxjaGlsZHJlbjoiXHU3NTFGXHU2MjEwXHU0RUUzXHU3ODAxIn0sImdlbmNvZGUiKV19fV07cmV0dXJuKDAsdS5qc3gpKEose2NoaWxkcmVuOigwLHUuanN4cykoQy5aLHtib3JkZXJlZDohMSxjaGlsZHJlbjpbKDAsdS5qc3gpKGYuWix7aGVhZGVyVGl0bGU6Ilx1NEVFM1x1NzgwMVx1NzUxRlx1NjIxMFx1NEZFMVx1NjA2RiIsYWN0aW9uUmVmOnosZm9ybVJlZjpULHJvd0tleToidGFibGVJZCIsc2VhcmNoOntsYWJlbFdpZHRoOjEyMH0sdG9vbEJhclJlbmRlcjpmdW5jdGlvbigpe3JldHVyblsoMCx1LmpzeHMpKEUuWlAse3R5cGU6InByaW1hcnkiLGhpZGRlbjohTC5oYXNQZXJtcygidG9vbDpnZW46ZWRpdCIpLG9uQ2xpY2s6ZnVuY3Rpb24oKXtpZihBLmxlbmd0aD09PTApe18uWlAuZXJyb3IoIlx1OEJGN1x1OTAwOVx1NjJFOVx1ODk4MVx1NzUxRlx1NjIxMFx1NzY4NFx1NjU3MFx1NjM2RSIpO3JldHVybn12YXIgaT1BLm1hcChmdW5jdGlvbihQKXtyZXR1cm4gUC50YWJsZU5hbWV9KTtBWzBdLmdlblR5cGU9PT0iMSI/KDAsbS5nZW5Db2RlKShpLmpvaW4oIiwiKSkudGhlbihmdW5jdGlvbihQKXtQLmNvZGU9PT0yMDA/Xy5aUC5zdWNjZXNzKCJcdTYyMTBcdTUyOUZcdTc1MUZcdTYyMTBcdTUyMzBcdTgxRUFcdTVCOUFcdTRFNDlcdThERUZcdTVGODRcdUZGMUEiLmNvbmNhdChBWzBdLmdlblBhdGgpKTpfLlpQLmVycm9yKFAubXNnKX0pOigwLG0uYmF0Y2hHZW5Db2RlKShpLmpvaW4oIiwiKSl9LGNoaWxkcmVuOlsoMCx1LmpzeCkoUy5aLHt9KSwiICIsKDAsdS5qc3gpKGguRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Imdlbi5nZW5jb2RlIixkZWZhdWx0TWVzc2FnZToiXHU3NTFGXHU2MjEwIn0pXX0sImdlbiIpLCgwLHUuanN4cykoRS5aUCx7dHlwZToicHJpbWFyeSIsaGlkZGVuOiFMLmhhc1Blcm1zKCJ0b29sOmdlbjphZGQiKSxvbkNsaWNrOmZ1bmN0aW9uKCl7aC5oaXN0b3J5LnB1c2goIi90b29sL2dlbi9pbXBvcnQiKX0sY2hpbGRyZW46WygwLHUuanN4KShiLlose30pLCIgIiwoMCx1LmpzeCkoaC5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiZ2VuLmltcG9ydCIsZGVmYXVsdE1lc3NhZ2U6Ilx1NUJGQ1x1NTE2NSJ9KV19LCJpbXBvcnQiKV19LHJlcXVlc3Q6ZnVuY3Rpb24oSSl7cmV0dXJuKDAsbS5nZXRHZW5Db2RlTGlzdCkoUigpKHt9LEkpKS50aGVuKGZ1bmN0aW9uKGkpe3JldHVybntkYXRhOmkucm93cyx0b3RhbDppLnJvd3MubGVuZ3RoLHN1Y2Nlc3M6ITB9fSl9LGNvbHVtbnM6aWUscm93U2VsZWN0aW9uOntvbkNoYW5nZTpmdW5jdGlvbihJLGkpe3VlKGkpfX19KSwoQT09bnVsbD92b2lkIDA6QS5sZW5ndGgpPjAmJigwLHUuanN4KShLLlMse2V4dHJhOigwLHUuanN4cykoImRpdiIse2NoaWxkcmVuOlsoMCx1LmpzeCkoaC5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoicGFnZXMuc2VhcmNoVGFibGUuY2hvc2VuIixkZWZhdWx0TWVzc2FnZToiXHU1REYyXHU5MDA5XHU2MkU5In0pLCIgIiwoMCx1LmpzeCkoImEiLHtzdHlsZTp7Zm9udFdlaWdodDo2MDB9LGNoaWxkcmVuOkEubGVuZ3RofSksIiAiLCgwLHUuanN4KShoLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJwYWdlcy5zZWFyY2hUYWJsZS5pdGVtIixkZWZhdWx0TWVzc2FnZToiXHU5ODc5In0pXX0pLGNoaWxkcmVuOigwLHUuanN4KShFLlpQLHtoaWRkZW46IUwuaGFzUGVybXMoInRvb2w6Z2VuOnJlbW92ZSIpLG9uQ2xpY2s6ZygpKHMoKSgpLm1hcmsoZnVuY3Rpb24gaigpe3JldHVybiBzKCkoKS53cmFwKGZ1bmN0aW9uKGkpe2Zvcig7Oylzd2l0Y2goaS5wcmV2PWkubmV4dCl7Y2FzZSAwOmwuWi5jb25maXJtKHt0aXRsZToiXHU1MjIwXHU5NjY0XHU0RUZCXHU1MkExIixjb250ZW50OiJcdTc4NkVcdTVCOUFcdTUyMjBcdTk2NjRcdThCRTVcdTRFRkJcdTUyQTFcdTU0MTdcdUZGMUYiLG9rVGV4dDoiXHU3ODZFXHU4QkE0IixjYW5jZWxUZXh0OiJcdTUzRDZcdTZEODgiLG9uT2s6ZnVuY3Rpb24oKXt2YXIgUD1nKCkocygpKCkubWFyayhmdW5jdGlvbiAkKCl7dmFyIFYsWixrO3JldHVybiBzKCkoKS53cmFwKGZ1bmN0aW9uKHgpe2Zvcig7Oylzd2l0Y2goeC5wcmV2PXgubmV4dCl7Y2FzZSAwOnJldHVybiB4Lm5leHQ9MixHKEEpO2Nhc2UgMjpWPXguc2VudCxWJiYodWUoW10pLChaPXouY3VycmVudCk9PT1udWxsfHxaPT09dm9pZCAwfHwoaz1aLnJlbG9hZEFuZFJlc3QpPT09bnVsbHx8az09PXZvaWQgMHx8ay5jYWxsKFopKTtjYXNlIDQ6Y2FzZSJlbmQiOnJldHVybiB4LnN0b3AoKX19LCQpfSkpO2Z1bmN0aW9uIHkoKXtyZXR1cm4gUC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHl9KCl9KTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBpLnN0b3AoKX19LGopfSkpLGNoaWxkcmVuOigwLHUuanN4KShoLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJwYWdlcy5zZWFyY2hUYWJsZS5iYXRjaERlbGV0aW9uIixkZWZhdWx0TWVzc2FnZToiXHU2Mjc5XHU5MUNGXHU1MjIwXHU5NjY0In0pfSwiZGVsZXRlIil9KSwoMCx1LmpzeCkoTy5kZWZhdWx0LHtvcGVuOm9lLGRhdGE6bGUsb25IaWRlOmZ1bmN0aW9uKCl7bmUoITEpfX0pLCgwLHUuanN4KShwLlose3dpZHRoOjYwMCxvcGVuOmQsb25DbG9zZTpmdW5jdGlvbigpe2FlKHZvaWQgMCksZSghMSl9LGNsb3NhYmxlOiExLGNoaWxkcmVuOihNPT1udWxsP3ZvaWQgMDpNLnRhYmxlTmFtZSkmJigwLHUuanN4KShZLnZZLHtjb2x1bW46Mix0aXRsZTpNPT1udWxsP3ZvaWQgMDpNLnRhYmxlTmFtZSxyZXF1ZXN0OmcoKShzKCkoKS5tYXJrKGZ1bmN0aW9uIGooKXtyZXR1cm4gcygpKCkud3JhcChmdW5jdGlvbihpKXtmb3IoOzspc3dpdGNoKGkucHJldj1pLm5leHQpe2Nhc2UgMDpyZXR1cm4gaS5hYnJ1cHQoInJldHVybiIse2RhdGE6TXx8e319KTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBpLnN0b3AoKX19LGopfSkpLHBhcmFtczp7aWQ6TT09bnVsbD92b2lkIDA6TS50YWJsZU5hbWV9LGNvbHVtbnM6aWV9KX0pXX0pfSl9O0QuZGVmYXVsdD1IfSwxMjUzMTpmdW5jdGlvbihYLEQsbil7bi5yKEQpLG4uZChELHthZGREYXRhOmZ1bmN0aW9uKCl7cmV0dXJuIE99LGJhdGNoR2VuQ29kZTpmdW5jdGlvbigpe3JldHVybiBRfSxnZW5Db2RlOmZ1bmN0aW9uKCl7cmV0dXJuIEp9LGdldEdlbkNvZGU6ZnVuY3Rpb24oKXtyZXR1cm4gQn0sZ2V0R2VuQ29kZUxpc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gU30saW1wb3J0VGFibGVzOmZ1bmN0aW9uKCl7cmV0dXJuIEN9LHByZXZpZXdDb2RlOmZ1bmN0aW9uKCl7cmV0dXJuIEZ9LHF1ZXJ5VGFibGVMaXN0OmZ1bmN0aW9uKCl7cmV0dXJuIEV9LHJlbW92ZURhdGE6ZnVuY3Rpb24oKXtyZXR1cm4gdn0sc3luY0RiSW5mbzpmdW5jdGlvbigpe3JldHVybiBZfSx1cGRhdGVEYXRhOmZ1bmN0aW9uKCl7cmV0dXJuIGZ9fSk7dmFyIFc9big5Nzg1NyksUj1uLm4oVyksVT1uKDE1MDA5KSxhPW4ubihVKSx3PW4oOTkyODkpLHM9bi5uKHcpLGM9big3Njc3MiksZz1uKDMwOTY0KTtmdW5jdGlvbiBTKHQpe3JldHVybiBiLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBiKCl7cmV0dXJuIGI9cygpKGEoKSgpLm1hcmsoZnVuY3Rpb24gdChyKXt2YXIgZDtyZXR1cm4gYSgpKCkud3JhcChmdW5jdGlvbihvKXtmb3IoOzspc3dpdGNoKG8ucHJldj1vLm5leHQpe2Nhc2UgMDpyZXR1cm4gZD1uZXcgVVJMU2VhcmNoUGFyYW1zKHIpLnRvU3RyaW5nKCksby5hYnJ1cHQoInJldHVybiIsKDAsYy5yZXF1ZXN0KSgiL2FwaS9jb2RlL2dlbi9saXN0PyIuY29uY2F0KGQpLHtkYXRhOnIsbWV0aG9kOiJnZXQiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgifX0pKTtjYXNlIDI6Y2FzZSJlbmQiOnJldHVybiBvLnN0b3AoKX19LHQpfSkpLGIuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEIodCl7cmV0dXJuIF8uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIF8oKXtyZXR1cm4gXz1zKCkoYSgpKCkubWFyayhmdW5jdGlvbiB0KHIpe3JldHVybiBhKCkoKS53cmFwKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOnJldHVybiBlLmFicnVwdCgicmV0dXJuIiwoMCxjLnJlcXVlc3QpKCIvYXBpL2NvZGUvZ2VuLyIuY29uY2F0KHIpLHttZXRob2Q6ImdldCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCJ9fSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0sdCl9KSksXy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gRSh0KXtyZXR1cm4gbC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gbCgpe3JldHVybiBsPXMoKShhKCkoKS5tYXJrKGZ1bmN0aW9uIHQocil7dmFyIGQ7cmV0dXJuIGEoKSgpLndyYXAoZnVuY3Rpb24obyl7Zm9yKDs7KXN3aXRjaChvLnByZXY9by5uZXh0KXtjYXNlIDA6cmV0dXJuIGQ9bmV3IFVSTFNlYXJjaFBhcmFtcyhyKS50b1N0cmluZygpLG8uYWJydXB0KCJyZXR1cm4iLCgwLGMucmVxdWVzdCkoIi9hcGkvY29kZS9nZW4vZGIvbGlzdD8iLmNvbmNhdChkKSx7ZGF0YTpyLG1ldGhvZDoiZ2V0IixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In19KSk7Y2FzZSAyOmNhc2UiZW5kIjpyZXR1cm4gby5zdG9wKCl9fSx0KX0pKSxsLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBDKHQpe3JldHVybiBwLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBwKCl7cmV0dXJuIHA9cygpKGEoKSgpLm1hcmsoZnVuY3Rpb24gdChyKXtyZXR1cm4gYSgpKCkud3JhcChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsKDAsYy5yZXF1ZXN0KSgiL2FwaS9jb2RlL2dlbi9pbXBvcnRUYWJsZT90YWJsZXM9Ii5jb25jYXQocikse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCJ9fSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0sdCl9KSkscC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gdih0KXtyZXR1cm4gaC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gaCgpe3JldHVybiBoPXMoKShhKCkoKS5tYXJrKGZ1bmN0aW9uIHQocil7cmV0dXJuIGEoKSgpLndyYXAoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLCgwLGMucmVxdWVzdCkoIi9hcGkvY29kZS9nZW4vIi5jb25jYXQoci5pZHMpLHttZXRob2Q6ImRlbGV0ZSIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCJ9fSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0sdCl9KSksaC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gTyh0KXtyZXR1cm4gbS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gbSgpe3JldHVybiBtPXMoKShhKCkoKS5tYXJrKGZ1bmN0aW9uIHQocil7cmV0dXJuIGEoKSgpLndyYXAoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLCgwLGMucmVxdWVzdCkoIi9hcGkvY29kZS9nZW4iLHttZXRob2Q6IlBPU1QiLGRhdGE6UigpKHt9LHIpfSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0sdCl9KSksbS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gZih0KXtyZXR1cm4gSy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gSygpe3JldHVybiBLPXMoKShhKCkoKS5tYXJrKGZ1bmN0aW9uIHQocil7cmV0dXJuIGEoKSgpLndyYXAoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLCgwLGMucmVxdWVzdCkoIi9hcGkvY29kZS9nZW4iLHttZXRob2Q6IlBVVCIsZGF0YTpSKCkoe30scil9KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSx0KX0pKSxLLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBZKHQpe3JldHVybiB1LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiB1KCl7cmV0dXJuIHU9cygpKGEoKSgpLm1hcmsoZnVuY3Rpb24gdChyKXtyZXR1cm4gYSgpKCkud3JhcChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsKDAsYy5yZXF1ZXN0KSgiL2FwaS9jb2RlL2dlbi9zeW5jaERiLyIuY29uY2F0KHIpLHttZXRob2Q6IkdFVCJ9KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSx0KX0pKSx1LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBKKHQpe3JldHVybiBHLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBHKCl7cmV0dXJuIEc9cygpKGEoKSgpLm1hcmsoZnVuY3Rpb24gdChyKXtyZXR1cm4gYSgpKCkud3JhcChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsKDAsYy5yZXF1ZXN0KSgiL2FwaS9jb2RlL2dlbi9nZW5Db2RlLyIuY29uY2F0KHIpLHttZXRob2Q6IkdFVCJ9KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSx0KX0pKSxHLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBRKHQpe3JldHVybiBILmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBIKCl7cmV0dXJuIEg9cygpKGEoKSgpLm1hcmsoZnVuY3Rpb24gdChyKXtyZXR1cm4gYSgpKCkud3JhcChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsKDAsZy5wNikoIi9hcGkvY29kZS9nZW4vYmF0Y2hHZW5Db2RlP3RhYmxlcz0iLmNvbmNhdChyKSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0sdCl9KSksSC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gRih0KXtyZXR1cm4gVC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gVCgpe3JldHVybiBUPXMoKShhKCkoKS5tYXJrKGZ1bmN0aW9uIHQocil7cmV0dXJuIGEoKSgpLndyYXAoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLCgwLGMucmVxdWVzdCkoIi9hcGkvY29kZS9nZW4vcHJldmlldy8iLmNvbmNhdChyKSx7bWV0aG9kOiJHRVQiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgifX0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19LHQpfSkpLFQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0sMzA5NjQ6ZnVuY3Rpb24oWCxELG4pe24uZChELHtwNjpmdW5jdGlvbigpe3JldHVybiBifSxzdTpmdW5jdGlvbigpe3JldHVybiBCfX0pO3ZhciBXPW4oMTUwMDkpLFI9bi5uKFcpLFU9big5Nzg1NyksYT1uLm4oVSksdz1uKDk5Mjg5KSxzPW4ubih3KSxjPW4oNzY3NzIpLGc9e3hsc3g6ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0Iix6aXA6ImFwcGxpY2F0aW9uL3ppcCJ9O2Z1bmN0aW9uIFMobCxDKXt2YXIgcD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIiksdj1uZXcgQmxvYihbbC5kYXRhXSx7dHlwZTpDfSksaD1uZXcgUmVnRXhwKCJmaWxlbmFtZT0oW147XStcXC5bXlxcLjtdKyk7KiIpLE89ZGVjb2RlVVJJKGwuaGVhZGVyc1siY29udGVudC1kaXNwb3NpdGlvbiJdKSxtPWguZXhlYyhPKSxmPW0/bVsxXToiZmlsZSI7Zj1mLnJlcGxhY2UoLyIvZywiIikscC5zdHlsZS5kaXNwbGF5PSJub25lIixwLmhyZWY9VVJMLmNyZWF0ZU9iamVjdFVSTCh2KSxwLnNldEF0dHJpYnV0ZSgiZG93bmxvYWQiLGYpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocCkscC5jbGljaygpLFVSTC5yZXZva2VPYmplY3RVUkwocC5ocmVmKSxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHApfWZ1bmN0aW9uIGIobCl7KDAsYy5yZXF1ZXN0KShsLHttZXRob2Q6IkdFVCIscmVzcG9uc2VUeXBlOiJibG9iIixnZXRSZXNwb25zZTohMH0pLnRoZW4oZnVuY3Rpb24oQyl7UyhDLGcuemlwKX0pfWZ1bmN0aW9uIEIobCxDLHApe3JldHVybiBfLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBfKCl7cmV0dXJuIF89cygpKFIoKSgpLm1hcmsoZnVuY3Rpb24gbChDLHAsdil7cmV0dXJuIFIoKSgpLndyYXAoZnVuY3Rpb24oTyl7Zm9yKDs7KXN3aXRjaChPLnByZXY9Ty5uZXh0KXtjYXNlIDA6cmV0dXJuIE8uYWJydXB0KCJyZXR1cm4iLCgwLGMucmVxdWVzdCkoQyxhKCkoYSgpKHt9LHApLHt9LHttZXRob2Q6IlBPU1QiLHJlc3BvbnNlVHlwZToiYmxvYiJ9KSkudGhlbihmdW5jdGlvbihtKXt2YXIgZj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIiksSz1tO2Yuc3R5bGUuZGlzcGxheT0ibm9uZSIsZi5ocmVmPVVSTC5jcmVhdGVPYmplY3RVUkwoSyksZi5zZXRBdHRyaWJ1dGUoImRvd25sb2FkIix2KSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGYpLGYuY2xpY2soKSxVUkwucmV2b2tlT2JqZWN0VVJMKGYuaHJlZiksZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChmKX0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBPLnN0b3AoKX19LGwpfSkpLF8uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEUobCl7d2luZG93LmxvY2F0aW9uLmhyZWY9Ii9hcGkvY29tbW9uL2Rvd25sb2FkP2ZpbGVOYW1lPSIuY29uY2F0KGVuY29kZVVSSShsKSwiJmRlbGV0ZT0iLCEwKX19fV0pOwpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy84NzEzLjVlMGU5NGFhLmNodW5rLmNzcyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvODcxMy41ZTBlOTRhYS5jaHVuay5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjQ4ZGEwNQotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvODcxMy41ZTBlOTRhYS5jaHVuay5jc3MKQEAgLTAsMCArMSw3IEBACisvKiEKKyAgVGhlbWU6IE1hdGVyaWFsCisgIEF1dGhvcjogTmF0ZSBQZXRlcnNvbgorICBMaWNlbnNlOiB+IE1JVCAob3IgbW9yZSBwZXJtaXNzaXZlKSBbdmlhIGJhc2UxNi1zY2hlbWVzLXNvdXJjZV0KKyAgTWFpbnRhaW5lcjogQGhpZ2hsaWdodGpzL2NvcmUtdGVhbQorICBWZXJzaW9uOiAyMDIxLjA5LjAKKyovcHJlIGNvZGUuaGxqc3tkaXNwbGF5OmJsb2NrO292ZXJmbG93LXg6YXV0bztwYWRkaW5nOjFlbX1jb2RlLmhsanN7cGFkZGluZzozcHggNXB4fS5obGpze2NvbG9yOiNlZmY7YmFja2dyb3VuZDojMjYzMjM4fS5obGpzOjpzZWxlY3Rpb24sLmhsanMgOjpzZWxlY3Rpb257YmFja2dyb3VuZC1jb2xvcjojMzE0NTQ5O2NvbG9yOiNlZmZ9LmhsanMtY29tbWVudHtjb2xvcjojNTQ2ZTdhfS5obGpzLXRhZ3tjb2xvcjojYjJjY2Q2fS5obGpzLXN1YnN0LC5obGpzLXB1bmN0dWF0aW9uLC5obGpzLW9wZXJhdG9ye2NvbG9yOiNlZmZ9LmhsanMtb3BlcmF0b3J7b3BhY2l0eTouN30uaGxqcy1idWxsZXQsLmhsanMtdmFyaWFibGUsLmhsanMtdGVtcGxhdGUtdmFyaWFibGUsLmhsanMtc2VsZWN0b3ItdGFnLC5obGpzLW5hbWUsLmhsanMtZGVsZXRpb257Y29sb3I6I2YwNzE3OH0uaGxqcy1zeW1ib2wsLmhsanMtbnVtYmVyLC5obGpzLWxpbmssLmhsanMtYXR0ciwuaGxqcy12YXJpYWJsZS5jb25zdGFudF8sLmhsanMtbGl0ZXJhbHtjb2xvcjojZjc4YzZjfS5obGpzLXRpdGxlLC5obGpzLWNsYXNzIC5obGpzLXRpdGxlLC5obGpzLXRpdGxlLmNsYXNzX3tjb2xvcjojZmZjYjZifS5obGpzLXN0cm9uZ3tmb250LXdlaWdodDo3MDA7Y29sb3I6I2ZmY2I2Yn0uaGxqcy1jb2RlLC5obGpzLWFkZGl0aW9uLC5obGpzLXRpdGxlLmNsYXNzXy5pbmhlcml0ZWRfXywuaGxqcy1zdHJpbmd7Y29sb3I6I2MzZTg4ZH0uaGxqcy1idWlsdF9pbiwuaGxqcy1kb2N0YWcsLmhsanMtcXVvdGUsLmhsanMta2V5d29yZC5obGpzLWF0cnVsZSwuaGxqcy1yZWdleHB7Y29sb3I6Izg5ZGRmZn0uaGxqcy1mdW5jdGlvbiAuaGxqcy10aXRsZSwuaGxqcy1hdHRyaWJ1dGUsLnJ1YnkgLmhsanMtcHJvcGVydHksLmhsanMtdGl0bGUuZnVuY3Rpb25fLC5obGpzLXNlY3Rpb257Y29sb3I6IzgyYWFmZn0uaGxqcy10eXBlLC5obGpzLXRlbXBsYXRlLXRhZywuZGlmZiAuaGxqcy1tZXRhLC5obGpzLWtleXdvcmR7Y29sb3I6I2M3OTJlYX0uaGxqcy1lbXBoYXNpc3tjb2xvcjojYzc5MmVhO2ZvbnQtc3R5bGU6aXRhbGljfS5obGpzLW1ldGEsLmhsanMtbWV0YSAuaGxqcy1rZXl3b3JkLC5obGpzLW1ldGEgLmhsanMtc3RyaW5ne2NvbG9yOiNmZjUzNzB9LmhsanMtbWV0YSAuaGxqcy1rZXl3b3JkLC5obGpzLW1ldGEta2V5d29yZHtmb250LXdlaWdodDo3MDB9CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzg4NjIuNjllNzNjMTQuYXN5bmMuanMgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzg4NjIuNjllNzNjMTQuYXN5bmMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTQ2MGMxZgotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvODg2Mi42OWU3M2MxNC5hc3luYy5qcwpAQCAtMCwwICsxIEBACisidXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W10pLnB1c2goW1s4ODYyXSx7OTQxNjI6ZnVuY3Rpb24ocSxJLGUpe3ZhciAkPWUoNjQ1OTkpLG89ZS5uKCQpLEg9ZSg2NzI5NCkscj1lKDY2MzA5KSxVPWUoODU4OTMpLEU9ZnVuY3Rpb24odSl7ZnVuY3Rpb24gTyhjKXtzd2l0Y2goYyl7Y2FzZSJwcmltYXJ5IjpyZXR1cm4iYmx1ZSI7Y2FzZSJzdWNjZXNzIjpyZXR1cm4ic3VjY2VzcyI7Y2FzZSJpbmZvIjpyZXR1cm4iZ3JlZW4iO2Nhc2Uid2FybmluZyI6cmV0dXJuIndhcm5pbmciO2Nhc2UiZGFuZ2VyIjpyZXR1cm4iZXJyb3IiO2Nhc2UiZGVmYXVsdCI6ZGVmYXVsdDpyZXR1cm4iZGVmYXVsdCJ9fWZ1bmN0aW9uIF8oYyl7aWYoYz09PXZvaWQgMClyZXR1cm4iIjtpZih1LmVudW1zKXt2YXIgcD11LmVudW1zW2NdO3JldHVybiBwLmxhYmVsfWlmKHUub3B0aW9ucyl7aWYoIUFycmF5LmlzQXJyYXkodS5vcHRpb25zKSlyZXR1cm4gY29uc29sZS5sb2coIkRpY3RUYWcgb3B0aW9ucyBpcyBubyBhcnJheSEiKSwiIjt2YXIgdD1vKCkodS5vcHRpb25zKSxsO3RyeXtmb3IodC5zKCk7IShsPXQubigpKS5kb25lOyl7dmFyIHY9bC52YWx1ZTtpZih2LnZhbHVlPT09YylyZXR1cm4gdi50ZXh0fX1jYXRjaChpKXt0LmUoaSl9ZmluYWxseXt0LmYoKX19cmV0dXJuIFN0cmluZyh1LnZhbHVlKX1mdW5jdGlvbiBuKGMpe2lmKGM9PT12b2lkIDApcmV0dXJuImRlZmF1bHQiO2lmKHUuZW51bXMpe3ZhciBwPXUuZW51bXNbY107cmV0dXJuIHAubGlzdENsYXNzfHwiZGVmYXVsdCJ9aWYodS5vcHRpb25zKXtpZighQXJyYXkuaXNBcnJheSh1Lm9wdGlvbnMpKXJldHVybiBjb25zb2xlLmxvZygiRGljdFRhZyBvcHRpb25zIGlzIG5vIGFycmF5ISIpLCJkZWZhdWx0Ijt2YXIgdD1vKCkodS5vcHRpb25zKSxsO3RyeXtmb3IodC5zKCk7IShsPXQubigpKS5kb25lOyl7dmFyIHY9bC52YWx1ZTtpZih2LnZhbHVlPT09YylyZXR1cm4gdi5saXN0Q2xhc3N8fCJkZWZhdWx0In19Y2F0Y2goaSl7dC5lKGkpfWZpbmFsbHl7dC5mKCl9fXJldHVybiBTdHJpbmcodS52YWx1ZSl9dmFyIGI9ZnVuY3Rpb24oKXtyZXR1cm4gTyhuKHUudmFsdWUpLnRvTG93ZXJDYXNlKCkpfSxXPWZ1bmN0aW9uKCl7cmV0dXJuIF8odS52YWx1ZSl9O3JldHVybigwLFUuanN4KShyLlose2NvbG9yOmIoKSxjaGlsZHJlbjpXKCl9KX07SS5aPUV9LDMzODY3OmZ1bmN0aW9uKHEsSSxlKXtlLmQoSSx7aUs6ZnVuY3Rpb24oKXtyZXR1cm4gJH0semM6ZnVuY3Rpb24oKXtyZXR1cm4gSH19KTt2YXIgJD1mdW5jdGlvbihyKXtyZXR1cm4gcltyLlNVQ0NFU1M9MjAwXT0iU1VDQ0VTUyIscltyLkVSUk9SPS0xXT0iRVJST1IiLHJbci5USU1FT1VUPTQwMV09IlRJTUVPVVQiLHIuVFlQRT0ic3VjY2VzcyIscn0oe30pLG89ZnVuY3Rpb24ocil7cmV0dXJuIHIuR0VUPSJHRVQiLHIuUE9TVD0iUE9TVCIsci5QVVQ9IlBVVCIsci5ERUxFVEU9IkRFTEVURSIscn0oe30pLEg9ZnVuY3Rpb24ocil7cmV0dXJuIHIuSlNPTj0iYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04IixyLkZPUk1fVVJMRU5DT0RFRD0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9VVRGLTgiLHIuRk9STV9EQVRBPSJtdWx0aXBhcnQvZm9ybS1kYXRhO2NoYXJzZXQ9VVRGLTgiLHJ9KHt9KX0sNjM5MjI6ZnVuY3Rpb24ocSxJLGUpe2UucihJKTt2YXIgJD1lKDE1MDA5KSxvPWUubigkKSxIPWUoOTkyODkpLHI9ZS5uKEgpLFU9ZSg1NTc0KSxFPWUubihVKSxmPWUoNjcyOTQpLHU9ZSg5NzI2OSksTz1lKDMxMTk5KSxfPWUoMTkwNTQpLG49ZSg1OTY2KSxiPWUoODY2MTUpLFc9ZSg5OTg1OSksYz1lKDE3Nzg4KSxwPWUoNzY3NzIpLHQ9ZSg4NTg5MyksbD1mdW5jdGlvbihpKXt2YXIgdz1XLloudXNlRm9ybSgpLGo9RSgpKHcsMSksUz1qWzBdLG5lPWkuc3RhdHVzT3B0aW9ucyxlZT1pLmRlcHRUcmVlOygwLGYudXNlRWZmZWN0KShmdW5jdGlvbigpe1MucmVzZXRGaWVsZHMoKSxTLnNldEZpZWxkc1ZhbHVlKHtkZXB0SWQ6aS52YWx1ZXMuZGVwdElkLHBhcmVudElkOmkudmFsdWVzLnBhcmVudElkLGFuY2VzdG9yczppLnZhbHVlcy5hbmNlc3RvcnMsZGVwdE5hbWU6aS52YWx1ZXMuZGVwdE5hbWUsb3JkZXJOdW06aS52YWx1ZXMub3JkZXJOdW0sbGVhZGVyOmkudmFsdWVzLmxlYWRlcixwaG9uZTppLnZhbHVlcy5waG9uZSxlbWFpbDppLnZhbHVlcy5lbWFpbCxzdGF0dXM6aS52YWx1ZXMuc3RhdHVzLGRlbEZsYWc6aS52YWx1ZXMuZGVsRmxhZyxjcmVhdGVCeTppLnZhbHVlcy5jcmVhdGVCeSxjcmVhdGVUaW1lOmkudmFsdWVzLmNyZWF0ZVRpbWUsdXBkYXRlQnk6aS52YWx1ZXMudXBkYXRlQnksdXBkYXRlVGltZTppLnZhbHVlcy51cGRhdGVUaW1lfSl9LFtTLGldKTt2YXIgQj0oMCxwLnVzZUludGwpKCksbT1mdW5jdGlvbigpe1Muc3VibWl0KCl9LHk9ZnVuY3Rpb24oKXtpLm9uQ2FuY2VsKCl9LFo9ZnVuY3Rpb24oKXt2YXIgcz1yKCkobygpKCkubWFyayhmdW5jdGlvbiB4KFYpe3JldHVybiBvKCkoKS53cmFwKGZ1bmN0aW9uKEQpe2Zvcig7Oylzd2l0Y2goRC5wcmV2PUQubmV4dCl7Y2FzZSAwOmkub25TdWJtaXQoVik7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gRC5zdG9wKCl9fSx4KX0pKTtyZXR1cm4gZnVuY3Rpb24oVil7cmV0dXJuIHMuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKTtyZXR1cm4oMCx0LmpzeCkoYy5aLHt3aWR0aDo2NDAsdGl0bGU6Qi5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLmRlcHQudGl0bGUiLGRlZmF1bHRNZXNzYWdlOiJcdTdGMTZcdThGOTFcdTkwRThcdTk1RTgifSksb3BlbjppLm9wZW4sZm9yY2VSZW5kZXI6ITAsZGVzdHJveU9uQ2xvc2U6ITAsb25PazptLG9uQ2FuY2VsOnksY2hpbGRyZW46KDAsdC5qc3hzKSh1LkEse2Zvcm06UyxncmlkOiEwLHN1Ym1pdHRlcjohMSxsYXlvdXQ6Imhvcml6b250YWwiLG9uRmluaXNoOlosY2hpbGRyZW46WygwLHQuanN4KShPLlose25hbWU6ImRlcHRJZCIsbGFiZWw6Qi5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLmRlcHQuZGVwdF9pZCIsZGVmYXVsdE1lc3NhZ2U6Ilx1OTBFOFx1OTVFOGlkIn0pLGNvbFByb3BzOnttZDoxMix4bDoxMn0scGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1OTBFOFx1OTVFOGlkIixkaXNhYmxlZDohMCxoaWRkZW46ITAscnVsZXM6W3tyZXF1aXJlZDohMSxtZXNzYWdlOigwLHQuanN4KShwLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTkwRThcdTk1RThpZFx1RkYwMSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1OTBFOFx1OTVFOGlkXHVGRjAxIn0pfV19KSwoMCx0LmpzeCkoXy5aLHtuYW1lOiJwYXJlbnRJZCIsbGFiZWw6Qi5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLmRlcHQucGFyZW50X2RlcHQiLGRlZmF1bHRNZXNzYWdlOiJcdTRFMEFcdTdFQTdcdTkwRThcdTk1RTg6In0pLHJlcXVlc3Q6cigpKG8oKSgpLm1hcmsoZnVuY3Rpb24gcygpe3JldHVybiBvKCkoKS53cmFwKGZ1bmN0aW9uKFYpe2Zvcig7Oylzd2l0Y2goVi5wcmV2PVYubmV4dCl7Y2FzZSAwOnJldHVybiBWLmFicnVwdCgicmV0dXJuIixlZSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gVi5zdG9wKCl9fSxzKX0pKSxwbGFjZWhvbGRlcjoiXHU4QkY3XHU5MDA5XHU2MkU5XHU0RTBBXHU3RUE3XHU5MEU4XHU5NUU4IixydWxlczpbe3JlcXVpcmVkOiEwLG1lc3NhZ2U6KDAsdC5qc3gpKHAuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NzUyOFx1NjIzN1x1NjYzNVx1NzlGMFx1RkYwMSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1OTAwOVx1NjJFOVx1NEUwQVx1N0VBN1x1OTBFOFx1OTVFOCEifSl9XX0pLCgwLHQuanN4KShuLlose25hbWU6ImRlcHROYW1lIixsYWJlbDpCLmZvcm1hdE1lc3NhZ2Uoe2lkOiJzeXN0ZW0uZGVwdC5kZXB0X25hbWUiLGRlZmF1bHRNZXNzYWdlOiJcdTkwRThcdTk1RThcdTU0MERcdTc5RjAifSksY29sUHJvcHM6e21kOjEyLHhsOjEyfSxwbGFjZWhvbGRlcjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU5MEU4XHU5NUU4XHU1NDBEXHU3OUYwIixydWxlczpbe3JlcXVpcmVkOiExLG1lc3NhZ2U6KDAsdC5qc3gpKHAuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1OTBFOFx1OTVFOFx1NTQwRFx1NzlGMFx1RkYwMSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1OTBFOFx1OTVFOFx1NTQwRFx1NzlGMFx1RkYwMSJ9KX1dfSksKDAsdC5qc3gpKE8uWix7bmFtZToib3JkZXJOdW0iLGxhYmVsOkIuZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5kZXB0Lm9yZGVyX251bSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjYzRVx1NzkzQVx1OTg3QVx1NUU4RiJ9KSxjb2xQcm9wczp7bWQ6MTIseGw6MTJ9LHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdTY2M0VcdTc5M0FcdTk4N0FcdTVFOEYiLHJ1bGVzOlt7cmVxdWlyZWQ6ITEsbWVzc2FnZTooMCx0LmpzeCkocC5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU2NjNFXHU3OTNBXHU5ODdBXHU1RThGXHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU2NjNFXHU3OTNBXHU5ODdBXHU1RThGXHVGRjAxIn0pfV19KSwoMCx0LmpzeCkobi5aLHtuYW1lOiJsZWFkZXIiLGxhYmVsOkIuZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5kZXB0LmxlYWRlciIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEQxRlx1OEQyM1x1NEVCQSJ9KSxjb2xQcm9wczp7bWQ6MTIseGw6MTJ9LHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdThEMUZcdThEMjNcdTRFQkEiLHJ1bGVzOlt7cmVxdWlyZWQ6ITEsbWVzc2FnZTooMCx0LmpzeCkocC5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU4RDFGXHU4RDIzXHU0RUJBXHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU4RDFGXHU4RDIzXHU0RUJBXHVGRjAxIn0pfV19KSwoMCx0LmpzeCkobi5aLHtuYW1lOiJwaG9uZSIsbGFiZWw6Qi5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLmRlcHQucGhvbmUiLGRlZmF1bHRNZXNzYWdlOiJcdTgwNTRcdTdDRkJcdTc1MzVcdThCREQifSksY29sUHJvcHM6e21kOjEyLHhsOjEyfSxwbGFjZWhvbGRlcjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU4MDU0XHU3Q0ZCXHU3NTM1XHU4QkREIixydWxlczpbe3JlcXVpcmVkOiExLG1lc3NhZ2U6KDAsdC5qc3gpKHAuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1ODA1NFx1N0NGQlx1NzUzNVx1OEJERFx1RkYwMSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1ODA1NFx1N0NGQlx1NzUzNVx1OEJERFx1RkYwMSJ9KX1dfSksKDAsdC5qc3gpKG4uWix7bmFtZToiZW1haWwiLGxhYmVsOkIuZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5kZXB0LmVtYWlsIixkZWZhdWx0TWVzc2FnZToiXHU5MEFFXHU3QkIxIn0pLGNvbFByb3BzOnttZDoxMix4bDoxMn0scGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1OTBBRVx1N0JCMSIscnVsZXM6W3tyZXF1aXJlZDohMSxtZXNzYWdlOigwLHQuanN4KShwLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTkwQUVcdTdCQjFcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTkwQUVcdTdCQjFcdUZGMDEifSl9XX0pLCgwLHQuanN4KShiLlouR3JvdXAse3ZhbHVlRW51bTpuZSxuYW1lOiJzdGF0dXMiLGxhYmVsOkIuZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5kZXB0LnN0YXR1cyIsZGVmYXVsdE1lc3NhZ2U6Ilx1OTBFOFx1OTVFOFx1NzJCNlx1NjAwMSJ9KSxjb2xQcm9wczp7bWQ6MTIseGw6MTJ9LHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdTkwRThcdTk1RThcdTcyQjZcdTYwMDEiLHJ1bGVzOlt7cmVxdWlyZWQ6ITEsbWVzc2FnZTooMCx0LmpzeCkocC5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU5MEU4XHU5NUU4XHU3MkI2XHU2MDAxXHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU5MEU4XHU5NUU4XHU3MkI2XHU2MDAxXHVGRjAxIn0pfV19KV19KX0pfTtJLmRlZmF1bHQ9bH0sOTg4NjI6ZnVuY3Rpb24ocSxJLGUpe2UucihJKSxlLmQoSSx7ZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybiB2ZX19KTt2YXIgJD1lKDU1NzQpLG89ZS5uKCQpLEg9ZSgxNTAwOSkscj1lLm4oSCksVT1lKDk3ODU3KSxFPWUubihVKSxmPWUoOTkyODkpLHU9ZS5uKGYpLE89ZSg2NzI5NCksXz1lKDc2NzcyKSxuPWUoMjQ1MyksYj1lKDgzNjIyKSxXPWUoMTc3ODgpLGM9ZSg2MTEwKSxwPWUoNjUzODUpLHQ9ZSgyMjM2KSxsPWUoMjQ5NjkpLHY9ZSgxMTQ3NSksaT1lKDQ4Njg5KTtmdW5jdGlvbiB3KGcpe3JldHVybiBqLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBqKCl7cmV0dXJuIGo9dSgpKHIoKSgpLm1hcmsoZnVuY3Rpb24gZyhQKXtyZXR1cm4gcigpKCkud3JhcChmdW5jdGlvbihkKXtmb3IoOzspc3dpdGNoKGQucHJldj1kLm5leHQpe2Nhc2UgMDpyZXR1cm4gZC5hYnJ1cHQoInJldHVybiIsKDAsXy5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vZGVwdC9saXN0Iix7bWV0aG9kOiJHRVQiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgifSxwYXJhbXM6UH0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBkLnN0b3AoKX19LGcpfSkpLGouYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIFMoZyl7cmV0dXJuKDAsXy5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vZGVwdC9saXN0L2V4Y2x1ZGUvIi5jb25jYXQoZykse21ldGhvZDoiZ2V0In0pfWZ1bmN0aW9uIG5lKGcpe3JldHVybiByZXF1ZXN0KCIvYXBpL3N5c3RlbS9kZXB0LyIuY29uY2F0KGcpLHttZXRob2Q6IkdFVCJ9KX1mdW5jdGlvbiBlZShnKXtyZXR1cm4gQi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gQigpe3JldHVybiBCPXUoKShyKCkoKS5tYXJrKGZ1bmN0aW9uIGcoUCl7cmV0dXJuIHIoKSgpLndyYXAoZnVuY3Rpb24oZCl7Zm9yKDs7KXN3aXRjaChkLnByZXY9ZC5uZXh0KXtjYXNlIDA6cmV0dXJuIGQuYWJydXB0KCJyZXR1cm4iLCgwLF8ucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RlcHQiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgifSxkYXRhOlB9KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gZC5zdG9wKCl9fSxnKX0pKSxCLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBtKGcpe3JldHVybiB5LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiB5KCl7cmV0dXJuIHk9dSgpKHIoKSgpLm1hcmsoZnVuY3Rpb24gZyhQKXtyZXR1cm4gcigpKCkud3JhcChmdW5jdGlvbihkKXtmb3IoOzspc3dpdGNoKGQucHJldj1kLm5leHQpe2Nhc2UgMDpyZXR1cm4gZC5hYnJ1cHQoInJldHVybiIsKDAsXy5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vZGVwdCIse21ldGhvZDoiUFVUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In0sZGF0YTpQfSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGQuc3RvcCgpfX0sZyl9KSkseS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gWihnKXtyZXR1cm4gcy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gcygpe3JldHVybiBzPXUoKShyKCkoKS5tYXJrKGZ1bmN0aW9uIGcoUCl7cmV0dXJuIHIoKSgpLndyYXAoZnVuY3Rpb24oZCl7Zm9yKDs7KXN3aXRjaChkLnByZXY9ZC5uZXh0KXtjYXNlIDA6cmV0dXJuIGQuYWJydXB0KCJyZXR1cm4iLCgwLF8ucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RlcHQvIi5jb25jYXQoUCkse21ldGhvZDoiREVMRVRFIn0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBkLnN0b3AoKX19LGcpfSkpLHMuYXBwbHkodGhpcyxhcmd1bWVudHMpfXZhciB4PWUoNjM5MjIpLFY9ZSg5Mjk4MiksVD1lKDMxOTgxKSxEPWUoOTQxNjIpLGg9ZSg4NTg5MyksX2U9ZnVuY3Rpb24oKXt2YXIgZz11KCkocigpKCkubWFyayhmdW5jdGlvbiBQKEMpe3ZhciBkLFI7cmV0dXJuIHIoKSgpLndyYXAoZnVuY3Rpb24oYSl7Zm9yKDs7KXN3aXRjaChhLnByZXY9YS5uZXh0KXtjYXNlIDA6cmV0dXJuIGQ9bi5aUC5sb2FkaW5nKCJcdTZCNjNcdTU3MjhcdTZERkJcdTUyQTAiKSxhLnByZXY9MSxhLm5leHQ9NCxlZShFKCkoe30sQykpO2Nhc2UgNDpyZXR1cm4gUj1hLnNlbnQsZCgpLFIuY29kZT09PTIwMD9uLlpQLnN1Y2Nlc3MoIlx1NkRGQlx1NTJBMFx1NjIxMFx1NTI5RiIpOm4uWlAuZXJyb3IoUi5tc2cpLGEuYWJydXB0KCJyZXR1cm4iLCEwKTtjYXNlIDEwOnJldHVybiBhLnByZXY9MTAsYS50MD1hLmNhdGNoKDEpLGQoKSxuLlpQLmVycm9yKCJcdTZERkJcdTUyQTBcdTU5MzFcdThEMjVcdThCRjdcdTkxQ0RcdThCRDVcdUZGMDEiKSxhLmFicnVwdCgicmV0dXJuIiwhMSk7Y2FzZSAxNTpjYXNlImVuZCI6cmV0dXJuIGEuc3RvcCgpfX0sUCxudWxsLFtbMSwxMF1dKX0pKTtyZXR1cm4gZnVuY3Rpb24oQyl7cmV0dXJuIGcuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSxmZT1mdW5jdGlvbigpe3ZhciBnPXUoKShyKCkoKS5tYXJrKGZ1bmN0aW9uIFAoQyl7dmFyIGQsUjtyZXR1cm4gcigpKCkud3JhcChmdW5jdGlvbihhKXtmb3IoOzspc3dpdGNoKGEucHJldj1hLm5leHQpe2Nhc2UgMDpyZXR1cm4gZD1uLlpQLmxvYWRpbmcoIlx1NkI2M1x1NTcyOFx1NjZGNFx1NjVCMCIpLGEucHJldj0xLGEubmV4dD00LG0oQyk7Y2FzZSA0OnJldHVybiBSPWEuc2VudCxkKCksUi5jb2RlPT09MjAwP24uWlAuc3VjY2VzcygiXHU2NkY0XHU2NUIwXHU2MjEwXHU1MjlGIik6bi5aUC5lcnJvcihSLm1zZyksYS5hYnJ1cHQoInJldHVybiIsITApO2Nhc2UgMTA6cmV0dXJuIGEucHJldj0xMCxhLnQwPWEuY2F0Y2goMSksZCgpLG4uWlAuZXJyb3IoIlx1OTE0RFx1N0Y2RVx1NTkzMVx1OEQyNVx1OEJGN1x1OTFDRFx1OEJENVx1RkYwMSIpLGEuYWJydXB0KCJyZXR1cm4iLCExKTtjYXNlIDE1OmNhc2UiZW5kIjpyZXR1cm4gYS5zdG9wKCl9fSxQLG51bGwsW1sxLDEwXV0pfSkpO3JldHVybiBmdW5jdGlvbihDKXtyZXR1cm4gZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLGllPWZ1bmN0aW9uKCl7dmFyIGc9dSgpKHIoKSgpLm1hcmsoZnVuY3Rpb24gUChDKXt2YXIgZCxSO3JldHVybiByKCkoKS53cmFwKGZ1bmN0aW9uKGEpe2Zvcig7Oylzd2l0Y2goYS5wcmV2PWEubmV4dCl7Y2FzZSAwOmlmKGQ9bi5aUC5sb2FkaW5nKCJcdTZCNjNcdTU3MjhcdTUyMjBcdTk2NjQiKSxDKXthLm5leHQ9MzticmVha31yZXR1cm4gYS5hYnJ1cHQoInJldHVybiIsITApO2Nhc2UgMzpyZXR1cm4gYS5wcmV2PTMsYS5uZXh0PTYsWihDLm1hcChmdW5jdGlvbihMKXtyZXR1cm4gTC5kZXB0SWR9KS5qb2luKCIsIikpO2Nhc2UgNjpyZXR1cm4gUj1hLnNlbnQsZCgpLFIuY29kZT09PTIwMD9uLlpQLnN1Y2Nlc3MoIlx1NTIyMFx1OTY2NFx1NjIxMFx1NTI5Rlx1RkYwQ1x1NTM3M1x1NUMwNlx1NTIzN1x1NjVCMCIpOm4uWlAuZXJyb3IoUi5tc2cpLGEuYWJydXB0KCJyZXR1cm4iLCEwKTtjYXNlIDEyOnJldHVybiBhLnByZXY9MTIsYS50MD1hLmNhdGNoKDMpLGQoKSxuLlpQLmVycm9yKCJcdTUyMjBcdTk2NjRcdTU5MzFcdThEMjVcdUZGMENcdThCRjdcdTkxQ0RcdThCRDUiKSxhLmFicnVwdCgicmV0dXJuIiwhMSk7Y2FzZSAxNzpjYXNlImVuZCI6cmV0dXJuIGEuc3RvcCgpfX0sUCxudWxsLFtbMywxMl1dKX0pKTtyZXR1cm4gZnVuY3Rpb24oQyl7cmV0dXJuIGcuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSxoZT1mdW5jdGlvbigpe3ZhciBnPXUoKShyKCkoKS5tYXJrKGZ1bmN0aW9uIFAoQyl7dmFyIGQsUixrO3JldHVybiByKCkoKS53cmFwKGZ1bmN0aW9uKEwpe2Zvcig7Oylzd2l0Y2goTC5wcmV2PUwubmV4dCl7Y2FzZSAwOmlmKGQ9bi5aUC5sb2FkaW5nKCJcdTZCNjNcdTU3MjhcdTUyMjBcdTk2NjQiKSxDKXtMLm5leHQ9MzticmVha31yZXR1cm4gTC5hYnJ1cHQoInJldHVybiIsITApO2Nhc2UgMzpyZXR1cm4gTC5wcmV2PTMsUj1bQy5kZXB0SWRdLEwubmV4dD03LFooUi5qb2luKCIsIikpO2Nhc2UgNzpyZXR1cm4gaz1MLnNlbnQsZCgpLGsuY29kZT09PTIwMD9uLlpQLnN1Y2Nlc3MoIlx1NTIyMFx1OTY2NFx1NjIxMFx1NTI5Rlx1RkYwQ1x1NTM3M1x1NUMwNlx1NTIzN1x1NjVCMCIpOm4uWlAuZXJyb3Ioay5tc2cpLEwuYWJydXB0KCJyZXR1cm4iLCEwKTtjYXNlIDEzOnJldHVybiBMLnByZXY9MTMsTC50MD1MLmNhdGNoKDMpLGQoKSxuLlpQLmVycm9yKCJcdTUyMjBcdTk2NjRcdTU5MzFcdThEMjVcdUZGMENcdThCRjdcdTkxQ0RcdThCRDUiKSxMLmFicnVwdCgicmV0dXJuIiwhMSk7Y2FzZSAxODpjYXNlImVuZCI6cmV0dXJuIEwuc3RvcCgpfX0sUCxudWxsLFtbMywxM11dKX0pKTtyZXR1cm4gZnVuY3Rpb24oQyl7cmV0dXJuIGcuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSxnZT1mdW5jdGlvbigpe3ZhciBQPSgwLE8udXNlUmVmKSgpLEM9KDAsTy51c2VTdGF0ZSkoITEpLGQ9bygpKEMsMiksUj1kWzBdLGs9ZFsxXSxhPSgwLE8udXNlUmVmKSgpLEw9KDAsTy51c2VTdGF0ZSkoKSxkZT1vKCkoTCwyKSxFZT1kZVswXSxhZT1kZVsxXSxUZT0oMCxPLnVzZVN0YXRlKShbXSksb2U9bygpKFRlLDIpLFE9b2VbMF0sc2U9b2VbMV0sRGU9KDAsTy51c2VTdGF0ZSkoW10pLGNlPW8oKShEZSwyKSxiZT1jZVswXSxtZT1jZVsxXSx5ZT0oMCxPLnVzZVN0YXRlKShbXSkscGU9bygpKHllLDIpLGxlPXBlWzBdLFBlPXBlWzFdLHJlPSgwLF8udXNlQWNjZXNzKSgpLEZlPSgwLF8udXNlSW50bCkoKTsoMCxPLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXsoMCxWLnBYKSgic3lzX25vcm1hbF9kaXNhYmxlIikudGhlbihmdW5jdGlvbih6KXtQZSh6KX0pfSxbXSk7dmFyIE1lPVt7dGl0bGU6KDAsaC5qc3gpKF8uRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InN5c3RlbS5kZXB0LmRlcHRfbmFtZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OTBFOFx1OTVFOFx1NTQwRFx1NzlGMCJ9KSxkYXRhSW5kZXg6ImRlcHROYW1lIix2YWx1ZVR5cGU6InRleHQifSx7dGl0bGU6KDAsaC5qc3gpKF8uRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InN5c3RlbS5kZXB0Lm9yZGVyX251bSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjYzRVx1NzkzQVx1OTg3QVx1NUU4RiJ9KSxkYXRhSW5kZXg6Im9yZGVyTnVtIix2YWx1ZVR5cGU6InRleHQifSx7dGl0bGU6KDAsaC5qc3gpKF8uRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InN5c3RlbS5kZXB0LnN0YXR1cyIsZGVmYXVsdE1lc3NhZ2U6Ilx1OTBFOFx1OTVFOFx1NzJCNlx1NjAwMSJ9KSxkYXRhSW5kZXg6InN0YXR1cyIsdmFsdWVUeXBlOiJzZWxlY3QiLHZhbHVlRW51bTpsZSxyZW5kZXI6ZnVuY3Rpb24oTixNKXtyZXR1cm4oMCxoLmpzeCkoRC5aLHtlbnVtczpsZSx2YWx1ZTpNLnN0YXR1c30pfX0se3RpdGxlOigwLGguanN4KShfLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJwYWdlcy5zZWFyY2hUYWJsZS50aXRsZU9wdGlvbiIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjRDRFx1NEY1QyJ9KSxkYXRhSW5kZXg6Im9wdGlvbiIsd2lkdGg6IjIyMHB4Iix2YWx1ZVR5cGU6Im9wdGlvbiIscmVuZGVyOmZ1bmN0aW9uKE4sTSl7cmV0dXJuWygwLGguanN4KShiLlpQLHt0eXBlOiJsaW5rIixzaXplOiJzbWFsbCIsaGlkZGVuOiFyZS5oYXNQZXJtcygic3lzdGVtOmRlcHQ6ZWRpdCIpLG9uQ2xpY2s6ZnVuY3Rpb24oKXtTKE0uZGVwdElkKS50aGVuKGZ1bmN0aW9uKEspe2lmKEsuY29kZT09PTIwMCl7dmFyIEY9KDAsVC5DMikoSy5kYXRhLCJkZXB0SWQiLCJkZXB0TmFtZSIsIiIsIiIsIiIpO0YubGVuZ3RoPT09MCYmKEY9W3tpZDowLHRpdGxlOiJcdTY1RTBcdTRFMEFcdTdFQTciLGNoaWxkcmVuOnZvaWQgMCxrZXk6MCx2YWx1ZTowfV0pLG1lKEYpLGsoITApLGFlKE0pfWVsc2Ugbi5aUC53YXJuaW5nKEsubXNnKX0pfSxjaGlsZHJlbjoiXHU3RjE2XHU4RjkxIn0sImVkaXQiKSwoMCxoLmpzeCkoYi5aUCx7dHlwZToibGluayIsc2l6ZToic21hbGwiLGRhbmdlcjohMCxoaWRkZW46IXJlLmhhc1Blcm1zKCJzeXN0ZW06ZGVwdDpyZW1vdmUiKSxvbkNsaWNrOnUoKShyKCkoKS5tYXJrKGZ1bmN0aW9uIEEoKXtyZXR1cm4gcigpKCkud3JhcChmdW5jdGlvbihGKXtmb3IoOzspc3dpdGNoKEYucHJldj1GLm5leHQpe2Nhc2UgMDpXLlouY29uZmlybSh7dGl0bGU6Ilx1NTIyMFx1OTY2NCIsY29udGVudDoiXHU3ODZFXHU1QjlBXHU1MjIwXHU5NjY0XHU4QkU1XHU5ODc5XHU1NDE3XHVGRjFGIixva1RleHQ6Ilx1Nzg2RVx1OEJBNCIsY2FuY2VsVGV4dDoiXHU1M0Q2XHU2RDg4Iixvbk9rOmZ1bmN0aW9uKCl7dmFyIFk9dSgpKHIoKSgpLm1hcmsoZnVuY3Rpb24gSigpe3ZhciB1ZTtyZXR1cm4gcigpKCkud3JhcChmdW5jdGlvbih0ZSl7Zm9yKDs7KXN3aXRjaCh0ZS5wcmV2PXRlLm5leHQpe2Nhc2UgMDpyZXR1cm4gdGUubmV4dD0yLGhlKE0pO2Nhc2UgMjp1ZT10ZS5zZW50LHVlJiZhLmN1cnJlbnQmJmEuY3VycmVudC5yZWxvYWQoKTtjYXNlIDQ6Y2FzZSJlbmQiOnJldHVybiB0ZS5zdG9wKCl9fSxKKX0pKTtmdW5jdGlvbiBYKCl7cmV0dXJuIFkuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBYfSgpfSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gRi5zdG9wKCl9fSxBKX0pKSxjaGlsZHJlbjoiXHU1MjIwXHU5NjY0In0sImJhdGNoUmVtb3ZlIildfX1dO3JldHVybigwLGguanN4cykoYy5feix7Y2hpbGRyZW46WygwLGguanN4KSgiZGl2Iix7c3R5bGU6e3dpZHRoOiIxMDAlIixmbG9hdDoicmlnaHQifSxjaGlsZHJlbjooMCxoLmpzeCkocC5aLHtoZWFkZXJUaXRsZTpGZS5mb3JtYXRNZXNzYWdlKHtpZDoicGFnZXMuc2VhcmNoVGFibGUudGl0bGUiLGRlZmF1bHRNZXNzYWdlOiJcdTRGRTFcdTYwNkYifSksYWN0aW9uUmVmOmEsZm9ybVJlZjpQLHJvd0tleToiZGVwdElkIixzZWFyY2g6e2xhYmVsV2lkdGg6MTIwfSx0b29sQmFyUmVuZGVyOmZ1bmN0aW9uKCl7cmV0dXJuWygwLGguanN4cykoYi5aUCx7dHlwZToicHJpbWFyeSIsaGlkZGVuOiFyZS5oYXNQZXJtcygic3lzdGVtOmRlcHQ6YWRkIiksb25DbGljazp1KCkocigpKCkubWFyayhmdW5jdGlvbiBOKCl7cmV0dXJuIHIoKSgpLndyYXAoZnVuY3Rpb24oQSl7Zm9yKDs7KXN3aXRjaChBLnByZXY9QS5uZXh0KXtjYXNlIDA6dygpLnRoZW4oZnVuY3Rpb24oSyl7Sy5jb2RlPT09MjAwPyhtZSgoMCxULkMyKShLLmRhdGEsImRlcHRJZCIsImRlcHROYW1lIiwiIiwiIiwiIikpLGFlKHZvaWQgMCksayghMCkpOm4uWlAud2FybmluZyhLLm1zZyl9KTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBBLnN0b3AoKX19LE4pfSkpLGNoaWxkcmVuOlsoMCxoLmpzeCkobC5aLHt9KSwiICIsKDAsaC5qc3gpKF8uRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InBhZ2VzLnNlYXJjaFRhYmxlLm5ldyIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjVCMFx1NUVGQSJ9KV19LCJhZGQiKSwoMCxoLmpzeHMpKGIuWlAse3R5cGU6InByaW1hcnkiLGRhbmdlcjohMCxoaWRkZW46KFE9PW51bGw/dm9pZCAwOlEubGVuZ3RoKT09PTB8fCFyZS5oYXNQZXJtcygic3lzdGVtOmRlcHQ6cmVtb3ZlIiksb25DbGljazp1KCkocigpKCkubWFyayhmdW5jdGlvbiBOKCl7cmV0dXJuIHIoKSgpLndyYXAoZnVuY3Rpb24oQSl7Zm9yKDs7KXN3aXRjaChBLnByZXY9QS5uZXh0KXtjYXNlIDA6Vy5aLmNvbmZpcm0oe3RpdGxlOiJcdTY2MkZcdTU0MjZcdTc4NkVcdThCQTRcdTUyMjBcdTk2NjRcdTYyNDBcdTkwMDlcdTY1NzBcdTYzNkVcdTk4Nzk/IixpY29uOigwLGguanN4KSh2Llose30pLGNvbnRlbnQ6Ilx1OEJGN1x1OEMyOFx1NjE0RVx1NjRDRFx1NEY1QyIsb25PazpmdW5jdGlvbigpe3JldHVybiB1KCkocigpKCkubWFyayhmdW5jdGlvbiBGKCl7dmFyIFksWCxKO3JldHVybiByKCkoKS53cmFwKGZ1bmN0aW9uKEcpe2Zvcig7Oylzd2l0Y2goRy5wcmV2PUcubmV4dCl7Y2FzZSAwOnJldHVybiBHLm5leHQ9MixpZShRKTtjYXNlIDI6WT1HLnNlbnQsWSYmKHNlKFtdKSwoWD1hLmN1cnJlbnQpPT09bnVsbHx8WD09PXZvaWQgMHx8KEo9WC5yZWxvYWRBbmRSZXN0KT09PW51bGx8fEo9PT12b2lkIDB8fEouY2FsbChYKSk7Y2FzZSA0OmNhc2UiZW5kIjpyZXR1cm4gRy5zdG9wKCl9fSxGKX0pKSgpfSxvbkNhbmNlbDpmdW5jdGlvbigpe319KTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBBLnN0b3AoKX19LE4pfSkpLGNoaWxkcmVuOlsoMCxoLmpzeCkoaS5aLHt9KSwoMCxoLmpzeCkoXy5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoicGFnZXMuc2VhcmNoVGFibGUuZGVsZXRlIixkZWZhdWx0TWVzc2FnZToiXHU1MjIwXHU5NjY0In0pXX0sInJlbW92ZSIpXX0scmVxdWVzdDpmdW5jdGlvbihOKXtyZXR1cm4gdyhFKCkoe30sTikpLnRoZW4oZnVuY3Rpb24oTSl7dmFyIEE9e2RhdGE6KDAsVC5DMikoTS5kYXRhLCJkZXB0SWQiLCIiLCIiLCIiLCIiKSx0b3RhbDpNLmRhdGEubGVuZ3RoLHN1Y2Nlc3M6ITB9O3JldHVybiBBfSl9LGNvbHVtbnM6TWUscm93U2VsZWN0aW9uOntvbkNoYW5nZTpmdW5jdGlvbihOLE0pe3NlKE0pfX19LCJkZXB0TGlzdCIpfSksKFE9PW51bGw/dm9pZCAwOlEubGVuZ3RoKT4wJiYoMCxoLmpzeCkodC5TLHtleHRyYTooMCxoLmpzeHMpKCJkaXYiLHtjaGlsZHJlbjpbKDAsaC5qc3gpKF8uRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InBhZ2VzLnNlYXJjaFRhYmxlLmNob3NlbiIsZGVmYXVsdE1lc3NhZ2U6Ilx1NURGMlx1OTAwOVx1NjJFOSJ9KSwoMCxoLmpzeCkoImEiLHtzdHlsZTp7Zm9udFdlaWdodDo2MDB9LGNoaWxkcmVuOlEubGVuZ3RofSksKDAsaC5qc3gpKF8uRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InBhZ2VzLnNlYXJjaFRhYmxlLml0ZW0iLGRlZmF1bHRNZXNzYWdlOiJcdTk4NzkifSldfSksY2hpbGRyZW46KDAsaC5qc3gpKGIuWlAse2RhbmdlcjohMCxoaWRkZW46IXJlLmhhc1Blcm1zKCJzeXN0ZW06ZGVwdDpkZWwiKSxvbkNsaWNrOnUoKShyKCkoKS5tYXJrKGZ1bmN0aW9uIHooKXtyZXR1cm4gcigpKCkud3JhcChmdW5jdGlvbihNKXtmb3IoOzspc3dpdGNoKE0ucHJldj1NLm5leHQpe2Nhc2UgMDpXLlouY29uZmlybSh7dGl0bGU6Ilx1NTIyMFx1OTY2NCIsY29udGVudDoiXHU3ODZFXHU1QjlBXHU1MjIwXHU5NjY0XHU4QkU1XHU5ODc5XHU1NDE3XHVGRjFGIixva1RleHQ6Ilx1Nzg2RVx1OEJBNCIsY2FuY2VsVGV4dDoiXHU1M0Q2XHU2RDg4Iixvbk9rOmZ1bmN0aW9uKCl7dmFyIEE9dSgpKHIoKSgpLm1hcmsoZnVuY3Rpb24gRigpe3ZhciBZLFgsSjtyZXR1cm4gcigpKCkud3JhcChmdW5jdGlvbihHKXtmb3IoOzspc3dpdGNoKEcucHJldj1HLm5leHQpe2Nhc2UgMDpyZXR1cm4gRy5uZXh0PTIsaWUoUSk7Y2FzZSAyOlk9Ry5zZW50LFkmJihzZShbXSksKFg9YS5jdXJyZW50KT09PW51bGx8fFg9PT12b2lkIDB8fChKPVgucmVsb2FkQW5kUmVzdCk9PT1udWxsfHxKPT09dm9pZCAwfHxKLmNhbGwoWCkpO2Nhc2UgNDpjYXNlImVuZCI6cmV0dXJuIEcuc3RvcCgpfX0sRil9KSk7ZnVuY3Rpb24gSygpe3JldHVybiBBLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gS30oKX0pO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIE0uc3RvcCgpfX0seil9KSksY2hpbGRyZW46KDAsaC5qc3gpKF8uRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InBhZ2VzLnNlYXJjaFRhYmxlLmJhdGNoRGVsZXRpb24iLGRlZmF1bHRNZXNzYWdlOiJcdTYyNzlcdTkxQ0ZcdTUyMjBcdTk2NjQifSl9LCJyZW1vdmUiKX0pLCgwLGguanN4KSh4LmRlZmF1bHQse29uU3VibWl0OmZ1bmN0aW9uKCl7dmFyIHo9dSgpKHIoKSgpLm1hcmsoZnVuY3Rpb24gTihNKXt2YXIgQTtyZXR1cm4gcigpKCkud3JhcChmdW5jdGlvbihGKXtmb3IoOzspc3dpdGNoKEYucHJldj1GLm5leHQpe2Nhc2UgMDppZihBPSExLCFNLmRlcHRJZCl7Ri5uZXh0PTc7YnJlYWt9cmV0dXJuIEYubmV4dD00LGZlKEUoKSh7fSxNKSk7Y2FzZSA0OkE9Ri5zZW50LEYubmV4dD0xMDticmVhaztjYXNlIDc6cmV0dXJuIEYubmV4dD05LF9lKEUoKSh7fSxNKSk7Y2FzZSA5OkE9Ri5zZW50O2Nhc2UgMTA6QSYmKGsoITEpLGFlKHZvaWQgMCksYS5jdXJyZW50JiZhLmN1cnJlbnQucmVsb2FkKCkpO2Nhc2UgMTE6Y2FzZSJlbmQiOnJldHVybiBGLnN0b3AoKX19LE4pfSkpO3JldHVybiBmdW5jdGlvbihOKXtyZXR1cm4gei5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLG9uQ2FuY2VsOmZ1bmN0aW9uKCl7ayghMSksYWUodm9pZCAwKX0sb3BlbjpSLHZhbHVlczpFZXx8e30sZGVwdFRyZWU6YmUsc3RhdHVzT3B0aW9uczpsZX0pXX0pfSx2ZT1nZX0sOTI5ODI6ZnVuY3Rpb24ocSxJLGUpe2UuZChJLHtIcjpmdW5jdGlvbigpe3JldHVybiBwfSxRSzpmdW5jdGlvbigpe3JldHVybiBlZX0sVmQ6ZnVuY3Rpb24oKXtyZXR1cm4gYn0sYTc6ZnVuY3Rpb24oKXtyZXR1cm4gaX0saks6ZnVuY3Rpb24oKXtyZXR1cm4gX30sbjI6ZnVuY3Rpb24oKXtyZXR1cm4gbmV9LG9IOmZ1bmN0aW9uKCl7cmV0dXJuIGx9LHBYOmZ1bmN0aW9uKCl7cmV0dXJuIFd9LHNGOmZ1bmN0aW9uKCl7cmV0dXJuIGp9fSk7dmFyICQ9ZSgxNTAwOSksbz1lLm4oJCksSD1lKDk3ODU3KSxyPWUubihIKSxVPWUoOTkyODkpLEU9ZS5uKFUpLGY9ZSg3Njc3MiksdT1lKDMzODY3KSxPPWUoMzA5NjQpO2Z1bmN0aW9uIF8obSl7cmV0dXJuIG4uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIG4oKXtyZXR1cm4gbj1FKCkobygpKCkubWFyayhmdW5jdGlvbiBtKHkpe3JldHVybiBvKCkoKS53cmFwKGZ1bmN0aW9uKHMpe2Zvcig7Oylzd2l0Y2gocy5wcmV2PXMubmV4dCl7Y2FzZSAwOnJldHVybiBzLmFicnVwdCgicmV0dXJuIiwoMCxmLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS9kaWN0L3R5cGUvbGlzdCIse3BhcmFtczpyKCkoe30seSksbWV0aG9kOiJHRVQiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgifX0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBzLnN0b3AoKX19LG0pfSkpLG4uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGIobSl7cmV0dXJuKDAsZi5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vZGljdC90eXBlLyIuY29uY2F0KG0pLHttZXRob2Q6IkdFVCJ9KX1mdW5jdGlvbiBXKG0seSl7cmV0dXJuIGMuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGMoKXtyZXR1cm4gYz1FKCkobygpKCkubWFyayhmdW5jdGlvbiBtKHksWil7dmFyIHMseDtyZXR1cm4gbygpKCkud3JhcChmdW5jdGlvbihUKXtmb3IoOzspc3dpdGNoKFQucHJldj1ULm5leHQpe2Nhc2UgMDpyZXR1cm4gVC5uZXh0PTIsKDAsZi5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vZGljdC9kYXRhL3R5cGUvIi5jb25jYXQoeSkse21ldGhvZDoiR0VUIn0pO2Nhc2UgMjppZihzPVQuc2VudCxzLmNvZGUhPT11LmlLLlNVQ0NFU1Mpe1QubmV4dD05O2JyZWFrfXJldHVybiB4PXt9LHMuZGF0YS5mb3JFYWNoKGZ1bmN0aW9uKEQpe3hbRC5kaWN0VmFsdWVdPXt0ZXh0OkQuZGljdExhYmVsLGxhYmVsOkQuZGljdExhYmVsLHZhbHVlOlo/TnVtYmVyKEQuZGljdFZhbHVlKTpELmRpY3RWYWx1ZSxrZXk6RC5kaWN0Q29kZSxsaXN0Q2xhc3M6RC5saXN0Q2xhc3Msc3RhdHVzOkQubGlzdENsYXNzfX0pLFQuYWJydXB0KCJyZXR1cm4iLHgpO2Nhc2UgOTpyZXR1cm4gVC5hYnJ1cHQoInJldHVybiIse30pO2Nhc2UgMTA6Y2FzZSJlbmQiOnJldHVybiBULnN0b3AoKX19LG0pfSkpLGMuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHAobSx5KXtyZXR1cm4gdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gdCgpe3JldHVybiB0PUUoKShvKCkoKS5tYXJrKGZ1bmN0aW9uIG0oeSxaKXt2YXIgcyx4O3JldHVybiBvKCkoKS53cmFwKGZ1bmN0aW9uKFQpe2Zvcig7Oylzd2l0Y2goVC5wcmV2PVQubmV4dCl7Y2FzZSAwOnJldHVybiBULm5leHQ9MiwoMCxmLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS9kaWN0L2RhdGEvdHlwZS8iLmNvbmNhdCh5KSx7bWV0aG9kOiJHRVQifSk7Y2FzZSAyOmlmKHM9VC5zZW50LHMuY29kZSE9PTIwMCl7VC5uZXh0PTY7YnJlYWt9cmV0dXJuIHg9cy5kYXRhLm1hcChmdW5jdGlvbihEKXtyZXR1cm57dGV4dDpELmRpY3RMYWJlbCxsYWJlbDpELmRpY3RMYWJlbCx2YWx1ZTpaP051bWJlcihELmRpY3RWYWx1ZSk6RC5kaWN0VmFsdWUsa2V5OkQuZGljdENvZGUsbGlzdENsYXNzOkQubGlzdENsYXNzLHN0YXR1czpELmxpc3RDbGFzc319KSxULmFicnVwdCgicmV0dXJuIix4KTtjYXNlIDY6cmV0dXJuIFQuYWJydXB0KCJyZXR1cm4iLFtdKTtjYXNlIDc6Y2FzZSJlbmQiOnJldHVybiBULnN0b3AoKX19LG0pfSkpLHQuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGwobSl7cmV0dXJuIHYuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHYoKXtyZXR1cm4gdj1FKCkobygpKCkubWFyayhmdW5jdGlvbiBtKHkpe3JldHVybiBvKCkoKS53cmFwKGZ1bmN0aW9uKHMpe2Zvcig7Oylzd2l0Y2gocy5wcmV2PXMubmV4dCl7Y2FzZSAwOnJldHVybiBzLmFicnVwdCgicmV0dXJuIiwoMCxmLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS9kaWN0L3R5cGUiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgifSxkYXRhOnl9KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gcy5zdG9wKCl9fSxtKX0pKSx2LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBpKG0pe3JldHVybiB3LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiB3KCl7cmV0dXJuIHc9RSgpKG8oKSgpLm1hcmsoZnVuY3Rpb24gbSh5KXtyZXR1cm4gbygpKCkud3JhcChmdW5jdGlvbihzKXtmb3IoOzspc3dpdGNoKHMucHJldj1zLm5leHQpe2Nhc2UgMDpyZXR1cm4gcy5hYnJ1cHQoInJldHVybiIsKDAsZi5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vZGljdC90eXBlIix7bWV0aG9kOiJQVVQiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgifSxkYXRhOnl9KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gcy5zdG9wKCl9fSxtKX0pKSx3LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBqKG0pe3JldHVybiBTLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBTKCl7cmV0dXJuIFM9RSgpKG8oKSgpLm1hcmsoZnVuY3Rpb24gbSh5KXtyZXR1cm4gbygpKCkud3JhcChmdW5jdGlvbihzKXtmb3IoOzspc3dpdGNoKHMucHJldj1zLm5leHQpe2Nhc2UgMDpyZXR1cm4gcy5hYnJ1cHQoInJldHVybiIsKDAsZi5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vZGljdC90eXBlLyIuY29uY2F0KHkpLHttZXRob2Q6IkRFTEVURSJ9KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gcy5zdG9wKCl9fSxtKX0pKSxTLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBuZShtKXtyZXR1cm4oMCxPLnN1KSgiL2FwaS9zeXN0ZW0vZGljdC90eXBlL2V4cG9ydCIse3BhcmFtczptfSwiZGljdF90eXBlXyIuY29uY2F0KG5ldyBEYXRlKCkuZ2V0VGltZSgpLCIueGxzeCIpKX1mdW5jdGlvbiBlZShtKXtyZXR1cm4gQi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gQigpe3JldHVybiBCPUUoKShvKCkoKS5tYXJrKGZ1bmN0aW9uIG0oeSl7cmV0dXJuIG8oKSgpLndyYXAoZnVuY3Rpb24ocyl7Zm9yKDs7KXN3aXRjaChzLnByZXY9cy5uZXh0KXtjYXNlIDA6cmV0dXJuIHMuYWJydXB0KCJyZXR1cm4iLCgwLGYucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RpY3QvdHlwZS9vcHRpb25zZWxlY3QiLHtwYXJhbXM6cigpKHt9LHkpLG1ldGhvZDoiR0VUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In19KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gcy5zdG9wKCl9fSxtKX0pKSxCLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19LDMwOTY0OmZ1bmN0aW9uKHEsSSxlKXtlLmQoSSx7cDY6ZnVuY3Rpb24oKXtyZXR1cm4gX30sc3U6ZnVuY3Rpb24oKXtyZXR1cm4gbn19KTt2YXIgJD1lKDE1MDA5KSxvPWUubigkKSxIPWUoOTc4NTcpLHI9ZS5uKEgpLFU9ZSg5OTI4OSksRT1lLm4oVSksZj1lKDc2NzcyKSx1PXt4bHN4OiJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCIsemlwOiJhcHBsaWNhdGlvbi96aXAifTtmdW5jdGlvbiBPKGMscCl7dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpLGw9bmV3IEJsb2IoW2MuZGF0YV0se3R5cGU6cH0pLHY9bmV3IFJlZ0V4cCgiZmlsZW5hbWU9KFteO10rXFwuW15cXC47XSspOyoiKSxpPWRlY29kZVVSSShjLmhlYWRlcnNbImNvbnRlbnQtZGlzcG9zaXRpb24iXSksdz12LmV4ZWMoaSksaj13P3dbMV06ImZpbGUiO2o9ai5yZXBsYWNlKC8iL2csIiIpLHQuc3R5bGUuZGlzcGxheT0ibm9uZSIsdC5ocmVmPVVSTC5jcmVhdGVPYmplY3RVUkwobCksdC5zZXRBdHRyaWJ1dGUoImRvd25sb2FkIixqKSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHQpLHQuY2xpY2soKSxVUkwucmV2b2tlT2JqZWN0VVJMKHQuaHJlZiksZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0KX1mdW5jdGlvbiBfKGMpeygwLGYucmVxdWVzdCkoYyx7bWV0aG9kOiJHRVQiLHJlc3BvbnNlVHlwZToiYmxvYiIsZ2V0UmVzcG9uc2U6ITB9KS50aGVuKGZ1bmN0aW9uKHApe08ocCx1LnppcCl9KX1mdW5jdGlvbiBuKGMscCx0KXtyZXR1cm4gYi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gYigpe3JldHVybiBiPUUoKShvKCkoKS5tYXJrKGZ1bmN0aW9uIGMocCx0LGwpe3JldHVybiBvKCkoKS53cmFwKGZ1bmN0aW9uKGkpe2Zvcig7Oylzd2l0Y2goaS5wcmV2PWkubmV4dCl7Y2FzZSAwOnJldHVybiBpLmFicnVwdCgicmV0dXJuIiwoMCxmLnJlcXVlc3QpKHAscigpKHIoKSh7fSx0KSx7fSx7bWV0aG9kOiJQT1NUIixyZXNwb25zZVR5cGU6ImJsb2IifSkpLnRoZW4oZnVuY3Rpb24odyl7dmFyIGo9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpLFM9dztqLnN0eWxlLmRpc3BsYXk9Im5vbmUiLGouaHJlZj1VUkwuY3JlYXRlT2JqZWN0VVJMKFMpLGouc2V0QXR0cmlidXRlKCJkb3dubG9hZCIsbCksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChqKSxqLmNsaWNrKCksVVJMLnJldm9rZU9iamVjdFVSTChqLmhyZWYpLGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoail9KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gaS5zdG9wKCl9fSxjKX0pKSxiLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBXKGMpe3dpbmRvdy5sb2NhdGlvbi5ocmVmPSIvYXBpL2NvbW1vbi9kb3dubG9hZD9maWxlTmFtZT0iLmNvbmNhdChlbmNvZGVVUkkoYyksIiZkZWxldGU9IiwhMCl9fSwzMTk4MTpmdW5jdGlvbihxLEksZSl7ZS5kKEkse0MyOmZ1bmN0aW9uKCl7cmV0dXJuIG99LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHJ9fSk7dmFyICQ9ZSg4NzczNSk7ZnVuY3Rpb24gbyhVLEUsZix1LE8sXyl7dmFyIG49e2lkOkV8fCJpZCIsbmFtZTpmfHwibmFtZSIscGFyZW50SWQ6dXx8InBhcmVudElkIixwYXJlbnROYW1lOk98fCJwYXJlbnROYW1lIixjaGlsZHJlbkxpc3Q6X3x8ImNoaWxkcmVuIn0sYj1bXSxXPVtdLGM9W107VS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciBsPXQsdj1sW24ucGFyZW50SWRdO2Jbdl18fChiW3ZdPVtdKSxsLmtleT1sW24uaWRdLGwudGl0bGU9bFtuLm5hbWVdLGwudmFsdWU9bFtuLmlkXSxsW24uY2hpbGRyZW5MaXN0XT1udWxsLFdbbFtuLmlkXV09bCxiW3ZdLnB1c2gobCl9KSxVLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIGw9dCx2PWxbbi5wYXJlbnRJZF07V1t2XXx8KGxbbi5wYXJlbnROYW1lXT0iIixjLnB1c2gobCkpfSk7ZnVuY3Rpb24gcCh0KXt2YXIgbD10O2JbbFtuLmlkXV0mJihsW24uY2hpbGRyZW5MaXN0XXx8KGxbbi5jaGlsZHJlbkxpc3RdPVtdKSxsW24uY2hpbGRyZW5MaXN0XT1iW2xbbi5pZF1dKSxsW24uY2hpbGRyZW5MaXN0XSYmbFtuLmNoaWxkcmVuTGlzdF0uZm9yRWFjaChmdW5jdGlvbih2KXt2YXIgaT12O2lbbi5wYXJlbnROYW1lXT1sW24ubmFtZV0scChpKX0pfXJldHVybiBjLmZvckVhY2goZnVuY3Rpb24odCl7cCh0KX0pLGN9dmFyIEg9ZnVuY3Rpb24oKXtyZXR1cm4gcGFyc2Uod2luZG93LmxvY2F0aW9uLmhyZWYuc3BsaXQoIj8iKVsxXSl9O2Z1bmN0aW9uIHIoVSl7dmFyIEU9VS5tYXAoZnVuY3Rpb24oZil7dmFyIHU9e2lkOmYuaWQsdGl0bGU6Zi5sYWJlbCxrZXk6IiIuY29uY2F0KGYuaWQpLHZhbHVlOmYuaWR9O3JldHVybiBmLmNoaWxkcmVuJiYodS5jaGlsZHJlbj1yKGYuY2hpbGRyZW4pKSx1fSk7cmV0dXJuIEV9fX1dKTsKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvODkwNi4yMTMwOTQ0My5hc3luYy5qcyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvODkwNi4yMTMwOTQ0My5hc3luYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZDA0YmQ0Ci0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy84OTA2LjIxMzA5NDQzLmFzeW5jLmpzCkBAIC0wLDAgKzEgQEAKKyJ1c2Ugc3RyaWN0Ijsoc2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Bybz1zZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvfHxbXSkucHVzaChbWzg5MDZdLHs2ODkwNjpmdW5jdGlvbihzLGUsbil7bi5yKGUpfX1dKTsKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvODkwNi5kZGEwMzI0NS5jaHVuay5jc3MgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzg5MDYuZGRhMDMyNDUuY2h1bmsuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA0ODVhMzEKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzg5MDYuZGRhMDMyNDUuY2h1bmsuY3NzCkBAIC0wLDAgKzEsOSBAQAorLyohCisgKiBDcm9wcGVyLmpzIHYxLjUuMTMKKyAqIGh0dHBzOi8vZmVuZ3l1YW5jaGVuLmdpdGh1Yi5pby9jcm9wcGVyanMKKyAqCisgKiBDb3B5cmlnaHQgMjAxNS1wcmVzZW50IENoZW4gRmVuZ3l1YW4KKyAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZQorICoKKyAqIERhdGU6IDIwMjItMTEtMjBUMDU6MzA6NDMuNDQ0WgorICovLmNyb3BwZXItY29udGFpbmVye2RpcmVjdGlvbjpsdHI7Zm9udC1zaXplOjA7bGluZS1oZWlnaHQ6MDtwb3NpdGlvbjpyZWxhdGl2ZTt0b3VjaC1hY3Rpb246bm9uZTt1c2VyLXNlbGVjdDpub25lfS5jcm9wcGVyLWNvbnRhaW5lciBpbWd7YmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47ZGlzcGxheTpibG9jaztoZWlnaHQ6MTAwJTtpbWFnZS1vcmllbnRhdGlvbjowZGVnO21heC1oZWlnaHQ6bm9uZSFpbXBvcnRhbnQ7bWF4LXdpZHRoOm5vbmUhaW1wb3J0YW50O21pbi1oZWlnaHQ6MCFpbXBvcnRhbnQ7bWluLXdpZHRoOjAhaW1wb3J0YW50O3dpZHRoOjEwMCV9LmNyb3BwZXItd3JhcC1ib3gsLmNyb3BwZXItY2FudmFzLC5jcm9wcGVyLWRyYWctYm94LC5jcm9wcGVyLWNyb3AtYm94LC5jcm9wcGVyLW1vZGFse2JvdHRvbTowO2xlZnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO3RvcDowfS5jcm9wcGVyLXdyYXAtYm94LC5jcm9wcGVyLWNhbnZhc3tvdmVyZmxvdzpoaWRkZW59LmNyb3BwZXItZHJhZy1ib3h7YmFja2dyb3VuZC1jb2xvcjojZmZmO29wYWNpdHk6MH0uY3JvcHBlci1tb2RhbHtiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7b3BhY2l0eTouNX0uY3JvcHBlci12aWV3LWJveHtkaXNwbGF5OmJsb2NrO2hlaWdodDoxMDAlO291dGxpbmU6MXB4IHNvbGlkICMzOWY7b3V0bGluZS1jb2xvcjojMzM5OWZmYmY7b3ZlcmZsb3c6aGlkZGVuO3dpZHRoOjEwMCV9LmNyb3BwZXItZGFzaGVke2JvcmRlcjowIGRhc2hlZCAjZWVlO2Rpc3BsYXk6YmxvY2s7b3BhY2l0eTouNTtwb3NpdGlvbjphYnNvbHV0ZX0uY3JvcHBlci1kYXNoZWQuZGFzaGVkLWh7Ym9yZGVyLWJvdHRvbS13aWR0aDoxcHg7Ym9yZGVyLXRvcC13aWR0aDoxcHg7aGVpZ2h0OmNhbGMoMTAwJSAvIDMpO2xlZnQ6MDt0b3A6Y2FsYygxMDAlIC8gMyk7d2lkdGg6MTAwJX0uY3JvcHBlci1kYXNoZWQuZGFzaGVkLXZ7Ym9yZGVyLWxlZnQtd2lkdGg6MXB4O2JvcmRlci1yaWdodC13aWR0aDoxcHg7aGVpZ2h0OjEwMCU7bGVmdDpjYWxjKDEwMCUgLyAzKTt0b3A6MDt3aWR0aDpjYWxjKDEwMCUgLyAzKX0uY3JvcHBlci1jZW50ZXJ7ZGlzcGxheTpibG9jaztoZWlnaHQ6MDtsZWZ0OjUwJTtvcGFjaXR5Oi43NTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO3dpZHRoOjB9LmNyb3BwZXItY2VudGVyOmJlZm9yZSwuY3JvcHBlci1jZW50ZXI6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjojZWVlO2NvbnRlbnQ6IiAiO2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGV9LmNyb3BwZXItY2VudGVyOmJlZm9yZXtoZWlnaHQ6MXB4O2xlZnQ6LTNweDt0b3A6MDt3aWR0aDo3cHh9LmNyb3BwZXItY2VudGVyOmFmdGVye2hlaWdodDo3cHg7bGVmdDowO3RvcDotM3B4O3dpZHRoOjFweH0uY3JvcHBlci1mYWNlLC5jcm9wcGVyLWxpbmUsLmNyb3BwZXItcG9pbnR7ZGlzcGxheTpibG9jaztoZWlnaHQ6MTAwJTtvcGFjaXR5Oi4xO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjEwMCV9LmNyb3BwZXItZmFjZXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7bGVmdDowO3RvcDowfS5jcm9wcGVyLWxpbmV7YmFja2dyb3VuZC1jb2xvcjojMzlmfS5jcm9wcGVyLWxpbmUubGluZS1le2N1cnNvcjpldy1yZXNpemU7cmlnaHQ6LTNweDt0b3A6MDt3aWR0aDo1cHh9LmNyb3BwZXItbGluZS5saW5lLW57Y3Vyc29yOm5zLXJlc2l6ZTtoZWlnaHQ6NXB4O2xlZnQ6MDt0b3A6LTNweH0uY3JvcHBlci1saW5lLmxpbmUtd3tjdXJzb3I6ZXctcmVzaXplO2xlZnQ6LTNweDt0b3A6MDt3aWR0aDo1cHh9LmNyb3BwZXItbGluZS5saW5lLXN7Ym90dG9tOi0zcHg7Y3Vyc29yOm5zLXJlc2l6ZTtoZWlnaHQ6NXB4O2xlZnQ6MH0uY3JvcHBlci1wb2ludHtiYWNrZ3JvdW5kLWNvbG9yOiMzOWY7aGVpZ2h0OjVweDtvcGFjaXR5Oi43NTt3aWR0aDo1cHh9LmNyb3BwZXItcG9pbnQucG9pbnQtZXtjdXJzb3I6ZXctcmVzaXplO21hcmdpbi10b3A6LTNweDtyaWdodDotM3B4O3RvcDo1MCV9LmNyb3BwZXItcG9pbnQucG9pbnQtbntjdXJzb3I6bnMtcmVzaXplO2xlZnQ6NTAlO21hcmdpbi1sZWZ0Oi0zcHg7dG9wOi0zcHh9LmNyb3BwZXItcG9pbnQucG9pbnQtd3tjdXJzb3I6ZXctcmVzaXplO2xlZnQ6LTNweDttYXJnaW4tdG9wOi0zcHg7dG9wOjUwJX0uY3JvcHBlci1wb2ludC5wb2ludC1ze2JvdHRvbTotM3B4O2N1cnNvcjpzLXJlc2l6ZTtsZWZ0OjUwJTttYXJnaW4tbGVmdDotM3B4fS5jcm9wcGVyLXBvaW50LnBvaW50LW5le2N1cnNvcjpuZXN3LXJlc2l6ZTtyaWdodDotM3B4O3RvcDotM3B4fS5jcm9wcGVyLXBvaW50LnBvaW50LW53e2N1cnNvcjpud3NlLXJlc2l6ZTtsZWZ0Oi0zcHg7dG9wOi0zcHh9LmNyb3BwZXItcG9pbnQucG9pbnQtc3d7Ym90dG9tOi0zcHg7Y3Vyc29yOm5lc3ctcmVzaXplO2xlZnQ6LTNweH0uY3JvcHBlci1wb2ludC5wb2ludC1zZXtib3R0b206LTNweDtjdXJzb3I6bndzZS1yZXNpemU7aGVpZ2h0OjIwcHg7b3BhY2l0eToxO3JpZ2h0Oi0zcHg7d2lkdGg6MjBweH1AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpey5jcm9wcGVyLXBvaW50LnBvaW50LXNle2hlaWdodDoxNXB4O3dpZHRoOjE1cHh9fUBtZWRpYSAobWluLXdpZHRoOiA5OTJweCl7LmNyb3BwZXItcG9pbnQucG9pbnQtc2V7aGVpZ2h0OjEwcHg7d2lkdGg6MTBweH19QG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCl7LmNyb3BwZXItcG9pbnQucG9pbnQtc2V7aGVpZ2h0OjVweDtvcGFjaXR5Oi43NTt3aWR0aDo1cHh9fS5jcm9wcGVyLXBvaW50LnBvaW50LXNlOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOiMzOWY7Ym90dG9tOi01MCU7Y29udGVudDoiICI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MjAwJTtvcGFjaXR5OjA7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6LTUwJTt3aWR0aDoyMDAlfS5jcm9wcGVyLWludmlzaWJsZXtvcGFjaXR5OjB9LmNyb3BwZXItYmd7YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCQUFBQUFRQVFNQUFBQWxQVzBpQUFBQUEzTkNTVlFJQ0FqYjRVL2dBQUFBQmxCTVZFWE16TXovLy8vVGpSVjJBQUFBQ1hCSVdYTUFBQXJyQUFBSzZ3R0NpdzFhQUFBQUhIUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkdhWEpsZDI5eWEzTWdRMU0yNkx5eWpBQUFBQkZKUkVGVUNKbGorTS9BZ0JWaEYvMFBBSDYvRC9Ia0R4T0dBQUFBQUVsRlRrU3VRbUNDKX0uY3JvcHBlci1oaWRle2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MH0uY3JvcHBlci1oaWRkZW57ZGlzcGxheTpub25lIWltcG9ydGFudH0uY3JvcHBlci1tb3Zle2N1cnNvcjptb3ZlfS5jcm9wcGVyLWNyb3B7Y3Vyc29yOmNyb3NzaGFpcn0uY3JvcHBlci1kaXNhYmxlZCAuY3JvcHBlci1kcmFnLWJveCwuY3JvcHBlci1kaXNhYmxlZCAuY3JvcHBlci1mYWNlLC5jcm9wcGVyLWRpc2FibGVkIC5jcm9wcGVyLWxpbmUsLmNyb3BwZXItZGlzYWJsZWQgLmNyb3BwZXItcG9pbnR7Y3Vyc29yOm5vdC1hbGxvd2VkfQpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy84OTc1LmU2YzIxMTAxLmNodW5rLmNzcyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvODk3NS5lNmMyMTEwMS5jaHVuay5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTU1NWRmNQotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvODk3NS5lNmMyMTEwMS5jaHVuay5jc3MKQEAgLTAsMCArMSBAQAorLmljb25QaWNTZWFyY2hlcl9fX2hKZzREe2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbjowIDhweH0uaWNvblBpY1NlYXJjaGVyX19faEpnNEQgLmljb24tcGljLWJ0bl9fX0w0djFTe2NvbG9yOiMwMDAwMDA3MztjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmFsbCAuM3N9Lmljb25QaWNTZWFyY2hlcl9fX2hKZzREIC5pY29uLXBpYy1idG5fX19MNHYxUzpob3Zlcntjb2xvcjojMDAwMDAwZDl9Lmljb24tcGljLXByZXZpZXdfX19pbFNEaHt3aWR0aDozMHB4O2hlaWdodDozMHB4O21hcmdpbi10b3A6MTBweDtwYWRkaW5nOjhweDt0ZXh0LWFsaWduOmNlbnRlcjtib3JkZXI6MXB4IHNvbGlkICNkOWQ5ZDk7Ym9yZGVyLXJhZGl1czo0cHh9Lmljb24tcGljLXByZXZpZXdfX19pbFNEaD5pbWd7bWF4LXdpZHRoOjUwcHg7bWF4LWhlaWdodDo1MHB4fS5pY29uLXBpYy1zZWFyY2gtcmVzdWx0X19fZ0lHQ2h7bWluLWhlaWdodDo1MHB4O3BhZGRpbmc6MCAxMHB4fS5pY29uLXBpYy1zZWFyY2gtcmVzdWx0X19fZ0lHQ2g+LnJlc3VsdC10aXBfX19MelJtaXtwYWRkaW5nOjEwcHggMDtjb2xvcjojMDAwMDAwNzN9Lmljb24tcGljLXNlYXJjaC1yZXN1bHRfX19nSUdDaD50YWJsZXt3aWR0aDoxMDAlfS5pY29uLXBpYy1zZWFyY2gtcmVzdWx0X19fZ0lHQ2g+dGFibGUgLmNvbC1pY29uX19fQlNZWmd7d2lkdGg6ODBweDtwYWRkaW5nOjEwcHggMH0uaWNvbi1waWMtc2VhcmNoLXJlc3VsdF9fX2dJR0NoPnRhYmxlIC5jb2wtaWNvbl9fX0JTWVpnPi5hbnRpY29uX19fcUxfaG17Zm9udC1zaXplOjMwcHh9Lmljb24tcGljLXNlYXJjaC1yZXN1bHRfX19nSUdDaD50YWJsZSAuY29sLWljb25fX19CU1laZz4uYW50aWNvbl9fX3FMX2htIDpob3Zlcntjb2xvcjojNDBhOWZmfXVsLmFudGljb25zTGlzdF9fX0hNaV9je21hcmdpbjoycHggMDtvdmVyZmxvdzpoaWRkZW47ZGlyZWN0aW9uOmx0cjtsaXN0LXN0eWxlOm5vbmV9dWwuYW50aWNvbnNMaXN0X19fSE1pX2MgbGl7cG9zaXRpb246cmVsYXRpdmU7ZmxvYXQ6bGVmdDt3aWR0aDo0OHB4O2hlaWdodDo0OHB4O21hcmdpbjozcHggMDtwYWRkaW5nOjJweCAwIDA7b3ZlcmZsb3c6aGlkZGVuO2NvbG9yOiM1NTU7dGV4dC1hbGlnbjpjZW50ZXI7bGlzdC1zdHlsZTpub25lO2JhY2tncm91bmQtY29sb3I6aW5oZXJpdDtib3JkZXItcmFkaXVzOjRweDtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmNvbG9yIC4zcyBlYXNlLWluLW91dCxiYWNrZ3JvdW5kLWNvbG9yIC4zcyBlYXNlLWluLW91dH0ucnRsX19fRXppMTEgdWwuYW50aWNvbnNMaXN0X19fSE1pX2MgbGl7bWFyZ2luOjNweCAwO3BhZGRpbmc6MnB4IDAgMH11bC5hbnRpY29uc0xpc3RfX19ITWlfYyBsaSAuYW50aWNvbl9fX3FMX2hte21hcmdpbjo0cHggMCAycHg7Zm9udC1zaXplOjI0cHg7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjNzIGVhc2UtaW4tb3V0O3dpbGwtY2hhbmdlOnRyYW5zZm9ybX11bC5hbnRpY29uc0xpc3RfX19ITWlfYyBsaSAuYW50aWNvbkNsYXNzX19fRWk5ZG17ZGlzcGxheTpibG9jaztmb250LWZhbWlseTpMdWNpZGEgQ29uc29sZSxDb25zb2xhcyxNb25hY28sQW5kYWxlIE1vbm8sVWJ1bnR1IE1vbm8sbW9ub3NwYWNlO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LWFsaWduOmNlbnRlcjt0cmFuc2Zvcm06c2NhbGUoLjgzKX11bC5hbnRpY29uc0xpc3RfX19ITWlfYyBsaSAuYW50aWNvbkNsYXNzX19fRWk5ZG0gLmFudC1iYWRnZV9fX1p2NWlne3RyYW5zaXRpb246Y29sb3IgLjNzIGVhc2UtaW4tb3V0fXVsLmFudGljb25zTGlzdF9fX0hNaV9jIGxpOmhvdmVye2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMTg5MGZmfXVsLmFudGljb25zTGlzdF9fX0hNaV9jIGxpOmhvdmVyIC5hbnRpY29uX19fcUxfaG17dHJhbnNmb3JtOnNjYWxlKDEuNCl9dWwuYW50aWNvbnNMaXN0X19fSE1pX2MgbGk6aG92ZXIgLmFudC1iYWRnZV9fX1p2NWlne2NvbG9yOiNmZmZ9dWwuYW50aWNvbnNMaXN0X19fSE1pX2MgbGkuVHdvVG9uZV9fX0VQeUJhOmhvdmVye2JhY2tncm91bmQtY29sb3I6IzhlY2FmZX11bC5hbnRpY29uc0xpc3RfX19ITWlfYyBsaS5jb3BpZWRfX19OR2RfYTpob3Zlcntjb2xvcjojZmZmM311bC5hbnRpY29uc0xpc3RfX19ITWlfYyBsaS5jb3BpZWRfX19OR2RfYTphZnRlcnt0b3A6LTJweDtvcGFjaXR5OjF9LmNvcGllZC1jb2RlX19fd1c4dkR7cGFkZGluZzoycHggNHB4O2ZvbnQtc2l6ZToxMnB4O2JhY2tncm91bmQ6I2Y1ZjVmNTtib3JkZXItcmFkaXVzOjJweH0uaWNvblBpY1NlYXJjaGVye2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbjowIDhweH0uaWNvblBpY1NlYXJjaGVyIC5pY29uLXBpYy1idG57Y29sb3I6IzAwMDAwMDczO2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YWxsIC4zc30uaWNvblBpY1NlYXJjaGVyIC5pY29uLXBpYy1idG46aG92ZXJ7Y29sb3I6IzAwMDAwMGQ5fS5pY29uLXBpYy1wcmV2aWV3e3dpZHRoOjMwcHg7aGVpZ2h0OjMwcHg7bWFyZ2luLXRvcDoxMHB4O3BhZGRpbmc6OHB4O3RleHQtYWxpZ246Y2VudGVyO2JvcmRlcjoxcHggc29saWQgI2Q5ZDlkOTtib3JkZXItcmFkaXVzOjRweH0uaWNvbi1waWMtcHJldmlldz5pbWd7bWF4LXdpZHRoOjUwcHg7bWF4LWhlaWdodDo1MHB4fS5pY29uLXBpYy1zZWFyY2gtcmVzdWx0e21pbi1oZWlnaHQ6NTBweDtwYWRkaW5nOjAgMTBweH0uaWNvbi1waWMtc2VhcmNoLXJlc3VsdD4ucmVzdWx0LXRpcHtwYWRkaW5nOjEwcHggMDtjb2xvcjojMDAwMDAwNzN9Lmljb24tcGljLXNlYXJjaC1yZXN1bHQ+dGFibGV7d2lkdGg6MTAwJX0uaWNvbi1waWMtc2VhcmNoLXJlc3VsdD50YWJsZSAuY29sLWljb257d2lkdGg6ODBweDtwYWRkaW5nOjEwcHggMH0uaWNvbi1waWMtc2VhcmNoLXJlc3VsdD50YWJsZSAuY29sLWljb24+LmFudGljb257Zm9udC1zaXplOjMwcHh9Lmljb24tcGljLXNlYXJjaC1yZXN1bHQ+dGFibGUgLmNvbC1pY29uPi5hbnRpY29uIDpob3Zlcntjb2xvcjojNDBhOWZmfXVsLmFudGljb25zTGlzdHttYXJnaW46MnB4IDA7b3ZlcmZsb3c6aGlkZGVuO2RpcmVjdGlvbjpsdHI7bGlzdC1zdHlsZTpub25lfXVsLmFudGljb25zTGlzdCBsaXtwb3NpdGlvbjpyZWxhdGl2ZTtmbG9hdDpsZWZ0O3dpZHRoOjQ4cHg7aGVpZ2h0OjQ4cHg7bWFyZ2luOjNweCAwO3BhZGRpbmc6MnB4IDAgMDtvdmVyZmxvdzpoaWRkZW47Y29sb3I6IzU1NTt0ZXh0LWFsaWduOmNlbnRlcjtsaXN0LXN0eWxlOm5vbmU7YmFja2dyb3VuZC1jb2xvcjppbmhlcml0O2JvcmRlci1yYWRpdXM6NHB4O2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246Y29sb3IgLjNzIGVhc2UtaW4tb3V0LGJhY2tncm91bmQtY29sb3IgLjNzIGVhc2UtaW4tb3V0fS5ydGwgdWwuYW50aWNvbnNMaXN0IGxpe21hcmdpbjozcHggMDtwYWRkaW5nOjJweCAwIDB9dWwuYW50aWNvbnNMaXN0IGxpIC5hbnRpY29ue21hcmdpbjo0cHggMCAycHg7Zm9udC1zaXplOjI0cHg7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjNzIGVhc2UtaW4tb3V0O3dpbGwtY2hhbmdlOnRyYW5zZm9ybX11bC5hbnRpY29uc0xpc3QgbGkgLmFudGljb25DbGFzc3tkaXNwbGF5OmJsb2NrO2ZvbnQtZmFtaWx5Okx1Y2lkYSBDb25zb2xlLENvbnNvbGFzLE1vbmFjbyxBbmRhbGUgTW9ubyxVYnVudHUgTW9ubyxtb25vc3BhY2U7d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtYWxpZ246Y2VudGVyO3RyYW5zZm9ybTpzY2FsZSguODMpfXVsLmFudGljb25zTGlzdCBsaSAuYW50aWNvbkNsYXNzIC5hbnQtYmFkZ2V7dHJhbnNpdGlvbjpjb2xvciAuM3MgZWFzZS1pbi1vdXR9dWwuYW50aWNvbnNMaXN0IGxpOmhvdmVye2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMTg5MGZmfXVsLmFudGljb25zTGlzdCBsaTpob3ZlciAuYW50aWNvbnt0cmFuc2Zvcm06c2NhbGUoMS40KX11bC5hbnRpY29uc0xpc3QgbGk6aG92ZXIgLmFudC1iYWRnZXtjb2xvcjojZmZmfXVsLmFudGljb25zTGlzdCBsaS5Ud29Ub25lOmhvdmVye2JhY2tncm91bmQtY29sb3I6IzhlY2FmZX11bC5hbnRpY29uc0xpc3QgbGkuY29waWVkOmhvdmVye2NvbG9yOiNmZmYzfXVsLmFudGljb25zTGlzdCBsaS5jb3BpZWQ6YWZ0ZXJ7dG9wOi0ycHg7b3BhY2l0eToxfS5jb3BpZWQtY29kZXtwYWRkaW5nOjJweCA0cHg7Zm9udC1zaXplOjEycHg7YmFja2dyb3VuZDojZjVmNWY1O2JvcmRlci1yYWRpdXM6MnB4fQpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy84OTk3LmQ1NmIzMmE4LmFzeW5jLmpzIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy84OTk3LmQ1NmIzMmE4LmFzeW5jLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNmMzJhYTAKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzg5OTcuZDU2YjMyYTguYXN5bmMuanMKQEAgLTAsMCArMSBAQAorInVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvPXNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm98fFtdKS5wdXNoKFtbODk5N10sezgxNjQzOmZ1bmN0aW9uKGNlLFIsZSl7ZS5kKFIse1o6ZnVuY3Rpb24oKXtyZXR1cm4gdH19KTtjb25zdCB0PU09Pk0/dHlwZW9mIE09PSJmdW5jdGlvbiI/TSgpOk06bnVsbH0sNjg5OTc6ZnVuY3Rpb24oY2UsUixlKXtlLmQoUix7WjpmdW5jdGlvbigpe3JldHVybiBKfX0pO3ZhciB0PWUoNjcyOTQpLE09ZSg5Mzk2NykseD1lLm4oTSksbmU9ZSg0ODU1NSksRz1lKDQyNTUwKSx3PWUoNzQ0NDMpLEY9ZSg1MzEyNCksSD1lKDM1NzkyKSxYPWUoOTg2NzUpLFE9ZSgyNTM3OCksbj10LmNyZWF0ZUNvbnRleHQoe30pLHY9ZSgxMTU2OCksYT1lKDE0NzQ3KSxpPWUoODM1NTkpLG89ZSg4MzI2Mik7Y29uc3QgUD1yPT57Y29uc3R7YW50Q2xzOmMsY29tcG9uZW50Q2xzOmQsaWNvbkNsczpzLGF2YXRhckJnOmcsYXZhdGFyQ29sb3I6eixjb250YWluZXJTaXplOkQsY29udGFpbmVyU2l6ZUxHOlQsY29udGFpbmVyU2l6ZVNNOiQsdGV4dEZvbnRTaXplOkksdGV4dEZvbnRTaXplTEc6Vyx0ZXh0Rm9udFNpemVTTTpyZSxib3JkZXJSYWRpdXM6Qixib3JkZXJSYWRpdXNMRzpTLGJvcmRlclJhZGl1c1NNOlUsbGluZVdpZHRoOmssbGluZVR5cGU6YWV9PXIsWj0obCxoLHApPT4oe3dpZHRoOmwsaGVpZ2h0OmwsYm9yZGVyUmFkaXVzOiI1MCUiLFtgJiR7ZH0tc3F1YXJlYF06e2JvcmRlclJhZGl1czpwfSxbYCYke2R9LWljb25gXTp7Zm9udFNpemU6aCxbYD4gJHtzfWBdOnttYXJnaW46MH19fSk7cmV0dXJue1tkXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCgwLGEuV2YpKHIpKSx7cG9zaXRpb246InJlbGF0aXZlIixkaXNwbGF5OiJpbmxpbmUtZmxleCIsanVzdGlmeUNvbnRlbnQ6ImNlbnRlciIsYWxpZ25JdGVtczoiY2VudGVyIixvdmVyZmxvdzoiaGlkZGVuIixjb2xvcjp6LHdoaXRlU3BhY2U6Im5vd3JhcCIsdGV4dEFsaWduOiJjZW50ZXIiLHZlcnRpY2FsQWxpZ246Im1pZGRsZSIsYmFja2dyb3VuZDpnLGJvcmRlcjpgJHsoMCx2LmJmKShrKX0gJHthZX0gdHJhbnNwYXJlbnRgLCImLWltYWdlIjp7YmFja2dyb3VuZDoidHJhbnNwYXJlbnQifSxbYCR7Y30taW1hZ2UtaW1nYF06e2Rpc3BsYXk6ImJsb2NrIn19KSxaKEQsSSxCKSkseyImLWxnIjpPYmplY3QuYXNzaWduKHt9LFooVCxXLFMpKSwiJi1zbSI6T2JqZWN0LmFzc2lnbih7fSxaKCQscmUsVSkpLCI+IGltZyI6e2Rpc3BsYXk6ImJsb2NrIix3aWR0aDoiMTAwJSIsaGVpZ2h0OiIxMDAlIixvYmplY3RGaXQ6ImNvdmVyIn19KX19LE89cj0+e2NvbnN0e2NvbXBvbmVudENsczpjLGdyb3VwQm9yZGVyQ29sb3I6ZCxncm91cE92ZXJsYXBwaW5nOnMsZ3JvdXBTcGFjZTpnfT1yO3JldHVybntbYCR7Y30tZ3JvdXBgXTp7ZGlzcGxheToiaW5saW5lLWZsZXgiLFtjXTp7Ym9yZGVyQ29sb3I6ZH0sIj4gKjpub3QoOmZpcnN0LWNoaWxkKSI6e21hcmdpbklubGluZVN0YXJ0OnN9fSxbYCR7Y30tZ3JvdXAtcG9wb3ZlcmBdOntbYCR7Y30gKyAke2N9YF06e21hcmdpbklubGluZVN0YXJ0Omd9fX19LHU9cj0+e2NvbnN0e2NvbnRyb2xIZWlnaHQ6Yyxjb250cm9sSGVpZ2h0TEc6ZCxjb250cm9sSGVpZ2h0U006cyxmb250U2l6ZTpnLGZvbnRTaXplTEc6eixmb250U2l6ZVhMOkQsZm9udFNpemVIZWFkaW5nMzpULG1hcmdpblhTOiQsbWFyZ2luWFhTOkksY29sb3JCb3JkZXJCZzpXfT1yO3JldHVybntjb250YWluZXJTaXplOmMsY29udGFpbmVyU2l6ZUxHOmQsY29udGFpbmVyU2l6ZVNNOnMsdGV4dEZvbnRTaXplOk1hdGgucm91bmQoKHorRCkvMiksdGV4dEZvbnRTaXplTEc6VCx0ZXh0Rm9udFNpemVTTTpnLGdyb3VwU3BhY2U6SSxncm91cE92ZXJsYXBwaW5nOi0kLGdyb3VwQm9yZGVyQ29sb3I6V319O3ZhciBtPSgwLGkuSSQpKCJBdmF0YXIiLHI9Pntjb25zdHtjb2xvclRleHRMaWdodFNvbGlkOmMsY29sb3JUZXh0UGxhY2Vob2xkZXI6ZH09cixzPSgwLG8uSVgpKHIse2F2YXRhckJnOmQsYXZhdGFyQ29sb3I6Y30pO3JldHVybltQKHMpLE8ocyldfSx1KSxBPWZ1bmN0aW9uKHIsYyl7dmFyIGQ9e307Zm9yKHZhciBzIGluIHIpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHIscykmJmMuaW5kZXhPZihzKTwwJiYoZFtzXT1yW3NdKTtpZihyIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIGc9MCxzPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocik7ZzxzLmxlbmd0aDtnKyspYy5pbmRleE9mKHNbZ10pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChyLHNbZ10pJiYoZFtzW2ddXT1yW3NbZ11dKTtyZXR1cm4gZH07Y29uc3QgTj0ocixjKT0+e2NvbnN0W2Qsc109dC51c2VTdGF0ZSgxKSxbZyx6XT10LnVzZVN0YXRlKCExKSxbRCxUXT10LnVzZVN0YXRlKCEwKSwkPXQudXNlUmVmKG51bGwpLEk9dC51c2VSZWYobnVsbCksVz0oMCxHLnNRKShjLCQpLHtnZXRQcmVmaXhDbHM6cmUsYXZhdGFyOkJ9PXQudXNlQ29udGV4dChGLkVfKSxTPXQudXNlQ29udGV4dChuKSxVPSgpPT57aWYoIUkuY3VycmVudHx8ISQuY3VycmVudClyZXR1cm47Y29uc3QgQz1JLmN1cnJlbnQub2Zmc2V0V2lkdGgsRT0kLmN1cnJlbnQub2Zmc2V0V2lkdGg7aWYoQyE9PTAmJkUhPT0wKXtjb25zdHtnYXA6Vj00fT1yO1YqMjxFJiZzKEUtVioyPEM/KEUtVioyKS9DOjEpfX07dC51c2VFZmZlY3QoKCk9Pnt6KCEwKX0sW10pLHQudXNlRWZmZWN0KCgpPT57VCghMCkscygxKX0sW3Iuc3JjXSksdC51c2VFZmZlY3QoVSxbci5nYXBdKTtjb25zdCBrPSgpPT57Y29uc3R7b25FcnJvcjpDfT1yOyhDPT1udWxsP3ZvaWQgMDpDKCkpIT09ITEmJlQoITEpfSx7cHJlZml4Q2xzOmFlLHNoYXBlOlosc2l6ZTpsLHNyYzpoLHNyY1NldDpwLGljb246XyxjbGFzc05hbWU6cSxyb290Q2xhc3NOYW1lOk9lLGFsdDpDZSxkcmFnZ2FibGU6dWUsY2hpbGRyZW46ZWUsY3Jvc3NPcmlnaW46c2V9PXIsdGU9QShyLFsicHJlZml4Q2xzIiwic2hhcGUiLCJzaXplIiwic3JjIiwic3JjU2V0IiwiaWNvbiIsImNsYXNzTmFtZSIsInJvb3RDbGFzc05hbWUiLCJhbHQiLCJkcmFnZ2FibGUiLCJjaGlsZHJlbiIsImNyb3NzT3JpZ2luIl0pLHk9KDAsWC5aKShDPT57dmFyIEUsVjtyZXR1cm4oVj0oRT1sIT1udWxsP2w6Uz09bnVsbD92b2lkIDA6Uy5zaXplKSE9PW51bGwmJkUhPT12b2lkIDA/RTpDKSE9PW51bGwmJlYhPT12b2lkIDA/VjoiZGVmYXVsdCJ9KSxpZT1PYmplY3Qua2V5cyh0eXBlb2YgeT09Im9iamVjdCI/eXx8e306e30pLnNvbWUoQz0+WyJ4cyIsInNtIiwibWQiLCJsZyIsInhsIiwieHhsIl0uaW5jbHVkZXMoQykpLGdlPSgwLFEuWikoaWUpLEVlPXQudXNlTWVtbygoKT0+e2lmKHR5cGVvZiB5IT0ib2JqZWN0IilyZXR1cm57fTtjb25zdCBDPXcuYzQuZmluZChWPT5nZVtWXSksRT15W0NdO3JldHVybiBFP3t3aWR0aDpFLGhlaWdodDpFLGZvbnRTaXplOkUmJihffHxlZSk/RS8yOjE4fTp7fX0sW2dlLHldKSxqPXJlKCJhdmF0YXIiLGFlKSxtZT0oMCxILlopKGopLFtQZSxoZSx4ZV09bShqLG1lKSxTZT14KCkoe1tgJHtqfS1sZ2BdOnk9PT0ibGFyZ2UiLFtgJHtqfS1zbWBdOnk9PT0ic21hbGwifSkseWU9dC5pc1ZhbGlkRWxlbWVudChoKSxfZT1afHwoUz09bnVsbD92b2lkIDA6Uy5zaGFwZSl8fCJjaXJjbGUiLE1lPXgoKShqLFNlLEI9PW51bGw/dm9pZCAwOkIuY2xhc3NOYW1lLGAke2p9LSR7X2V9YCx7W2Ake2p9LWltYWdlYF06eWV8fGgmJkQsW2Ake2p9LWljb25gXTohIV99LHhlLG1lLHEsT2UsaGUpLGJlPXR5cGVvZiB5PT0ibnVtYmVyIj97d2lkdGg6eSxoZWlnaHQ6eSxmb250U2l6ZTpfP3kvMjoxOH06e307bGV0IGxlO2lmKHR5cGVvZiBoPT0ic3RyaW5nIiYmRClsZT10LmNyZWF0ZUVsZW1lbnQoImltZyIse3NyYzpoLGRyYWdnYWJsZTp1ZSxzcmNTZXQ6cCxvbkVycm9yOmssYWx0OkNlLGNyb3NzT3JpZ2luOnNlfSk7ZWxzZSBpZih5ZSlsZT1oO2Vsc2UgaWYoXylsZT1fO2Vsc2UgaWYoZ3x8ZCE9PTEpe2NvbnN0IEM9YHNjYWxlKCR7ZH0pYCxFPXttc1RyYW5zZm9ybTpDLFdlYmtpdFRyYW5zZm9ybTpDLHRyYW5zZm9ybTpDfTtsZT10LmNyZWF0ZUVsZW1lbnQobmUuWix7b25SZXNpemU6VX0sdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmAke2p9LXN0cmluZ2AscmVmOkksc3R5bGU6T2JqZWN0LmFzc2lnbih7fSxFKX0sZWUpKX1lbHNlIGxlPXQuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpgJHtqfS1zdHJpbmdgLHN0eWxlOntvcGFjaXR5OjB9LHJlZjpJfSxlZSk7cmV0dXJuIGRlbGV0ZSB0ZS5vbkVycm9yLGRlbGV0ZSB0ZS5nYXAsUGUodC5jcmVhdGVFbGVtZW50KCJzcGFuIixPYmplY3QuYXNzaWduKHt9LHRlLHtzdHlsZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGJlKSxFZSksQj09bnVsbD92b2lkIDA6Qi5zdHlsZSksdGUuc3R5bGUpLGNsYXNzTmFtZTpNZSxyZWY6V30pLGxlKSl9O3ZhciBZPXQuZm9yd2FyZFJlZihOKSxvZT1lKDUwMzQ0KSxiPWUoOTYxNTkpLGZlPWUoNTUyNDEpO2NvbnN0IGRlPXI9Pntjb25zdHtzaXplOmMsc2hhcGU6ZH09dC51c2VDb250ZXh0KG4pLHM9dC51c2VNZW1vKCgpPT4oe3NpemU6ci5zaXplfHxjLHNoYXBlOnIuc2hhcGV8fGR9KSxbci5zaXplLHIuc2hhcGUsYyxkXSk7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChuLlByb3ZpZGVyLHt2YWx1ZTpzfSxyLmNoaWxkcmVuKX07dmFyIHBlPXI9Pnt2YXIgYyxkLHMsZztjb25zdHtnZXRQcmVmaXhDbHM6eixkaXJlY3Rpb246RH09dC51c2VDb250ZXh0KEYuRV8pLHtwcmVmaXhDbHM6VCxjbGFzc05hbWU6JCxyb290Q2xhc3NOYW1lOkksc3R5bGU6VyxtYXhDb3VudDpyZSxtYXhTdHlsZTpCLHNpemU6UyxzaGFwZTpVLG1heFBvcG92ZXJQbGFjZW1lbnQ6ayxtYXhQb3BvdmVyVHJpZ2dlcjphZSxjaGlsZHJlbjpaLG1heDpsfT1yLGg9eigiYXZhdGFyIixUKSxwPWAke2h9LWdyb3VwYCxfPSgwLEguWikoaCksW3EsT2UsQ2VdPW0oaCxfKSx1ZT14KCkocCx7W2Ake3B9LXJ0bGBdOkQ9PT0icnRsIn0sQ2UsXywkLEksT2UpLGVlPSgwLG9lLlopKFopLm1hcCgoeSxpZSk9PigwLGIuVG0pKHkse2tleTpgYXZhdGFyLWtleS0ke2llfWB9KSksc2U9KGw9PW51bGw/dm9pZCAwOmwuY291bnQpfHxyZSx0ZT1lZS5sZW5ndGg7aWYoc2UmJnNlPHRlKXtjb25zdCB5PWVlLnNsaWNlKDAsc2UpLGllPWVlLnNsaWNlKHNlLHRlKSxnZT0obD09bnVsbD92b2lkIDA6bC5zdHlsZSl8fEIsRWU9KChjPWw9PW51bGw/dm9pZCAwOmwucG9wb3Zlcik9PT1udWxsfHxjPT09dm9pZCAwP3ZvaWQgMDpjLnRyaWdnZXIpfHxhZXx8ImhvdmVyIixqPSgoZD1sPT1udWxsP3ZvaWQgMDpsLnBvcG92ZXIpPT09bnVsbHx8ZD09PXZvaWQgMD92b2lkIDA6ZC5wbGFjZW1lbnQpfHxrfHwidG9wIixtZT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe2NvbnRlbnQ6aWV9LGw9PW51bGw/dm9pZCAwOmwucG9wb3Zlcikse2NsYXNzTmFtZXM6e3Jvb3Q6eCgpKGAke3B9LXBvcG92ZXJgLChnPShzPWw9PW51bGw/dm9pZCAwOmwucG9wb3Zlcik9PT1udWxsfHxzPT09dm9pZCAwP3ZvaWQgMDpzLmNsYXNzTmFtZXMpPT09bnVsbHx8Zz09PXZvaWQgMD92b2lkIDA6Zy5yb290KX0scGxhY2VtZW50OmosdHJpZ2dlcjpFZX0pO3JldHVybiB5LnB1c2godC5jcmVhdGVFbGVtZW50KGZlLlosT2JqZWN0LmFzc2lnbih7a2V5OiJhdmF0YXItcG9wb3Zlci1rZXkiLGRlc3Ryb3lUb29sdGlwT25IaWRlOiEwfSxtZSksdC5jcmVhdGVFbGVtZW50KFkse3N0eWxlOmdlfSxgKyR7dGUtc2V9YCkpKSxxKHQuY3JlYXRlRWxlbWVudChkZSx7c2hhcGU6VSxzaXplOlN9LHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnVlLHN0eWxlOld9LHkpKSl9cmV0dXJuIHEodC5jcmVhdGVFbGVtZW50KGRlLHtzaGFwZTpVLHNpemU6U30sdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6dWUsc3R5bGU6V30sZWUpKSl9O2NvbnN0IEs9WTtLLkdyb3VwPXBlO3ZhciBKPUt9LDY2MzMwOmZ1bmN0aW9uKGNlLFIsZSl7ZS5kKFIse2FWOmZ1bmN0aW9uKCl7cmV0dXJuIFh9fSk7dmFyIHQ9ZSg2NzI5NCksTT1lKDkzOTY3KSx4PWUubihNKSxuZT1lKDkyNDE5KSxHPWUoODE2NDMpLHc9ZSg1MzEyNCksRj1lKDIwMTM2KSxIPWZ1bmN0aW9uKG4sdil7dmFyIGE9e307Zm9yKHZhciBpIGluIG4pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4saSkmJnYuaW5kZXhPZihpKTwwJiYoYVtpXT1uW2ldKTtpZihuIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIG89MCxpPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMobik7bzxpLmxlbmd0aDtvKyspdi5pbmRleE9mKGlbb10pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChuLGlbb10pJiYoYVtpW29dXT1uW2lbb11dKTtyZXR1cm4gYX07Y29uc3QgWD1uPT57bGV0e3RpdGxlOnYsY29udGVudDphLHByZWZpeENsczppfT1uO3JldHVybiF2JiYhYT9udWxsOnQuY3JlYXRlRWxlbWVudCh0LkZyYWdtZW50LG51bGwsdiYmdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YCR7aX0tdGl0bGVgfSx2KSxhJiZ0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpgJHtpfS1pbm5lci1jb250ZW50YH0sYSkpfSxRPW49Pntjb25zdHtoYXNoSWQ6dixwcmVmaXhDbHM6YSxjbGFzc05hbWU6aSxzdHlsZTpvLHBsYWNlbWVudDpQPSJ0b3AiLHRpdGxlOk8sY29udGVudDp1LGNoaWxkcmVuOm19PW4sQT0oMCxHLlopKE8pLE49KDAsRy5aKSh1KSxMPXgoKSh2LGEsYCR7YX0tcHVyZWAsYCR7YX0tcGxhY2VtZW50LSR7UH1gLGkpO3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpMLHN0eWxlOm99LHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmAke2F9LWFycm93YH0pLHQuY3JlYXRlRWxlbWVudChuZS5HLE9iamVjdC5hc3NpZ24oe30sbix7Y2xhc3NOYW1lOnYscHJlZml4Q2xzOmF9KSxtfHx0LmNyZWF0ZUVsZW1lbnQoWCx7cHJlZml4Q2xzOmEsdGl0bGU6QSxjb250ZW50Ok59KSkpfSxmPW49Pntjb25zdHtwcmVmaXhDbHM6dixjbGFzc05hbWU6YX09bixpPUgobixbInByZWZpeENscyIsImNsYXNzTmFtZSJdKSx7Z2V0UHJlZml4Q2xzOm99PXQudXNlQ29udGV4dCh3LkVfKSxQPW8oInBvcG92ZXIiLHYpLFtPLHUsbV09KDAsRi5aKShQKTtyZXR1cm4gTyh0LmNyZWF0ZUVsZW1lbnQoUSxPYmplY3QuYXNzaWduKHt9LGkse3ByZWZpeENsczpQLGhhc2hJZDp1LGNsYXNzTmFtZTp4KCkoYSxtKX0pKSl9O1IuWlA9Zn0sNTUyNDE6ZnVuY3Rpb24oY2UsUixlKXt2YXIgdD1lKDY3Mjk0KSxNPWUoOTM5NjcpLHg9ZS5uKE0pLG5lPWUoMjE3NzApLEc9ZSgxNTEwNSksdz1lKDgxNjQzKSxGPWUoMzM2MDMpLEg9ZSg5NjE1OSksWD1lKDgzMDYyKSxRPWUoNjYzMzApLGY9ZSg1MzEyNCksbj1lKDIwMTM2KSx2PWZ1bmN0aW9uKG8sUCl7dmFyIE89e307Zm9yKHZhciB1IGluIG8pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG8sdSkmJlAuaW5kZXhPZih1KTwwJiYoT1t1XT1vW3VdKTtpZihvIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIG09MCx1PU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMobyk7bTx1Lmxlbmd0aDttKyspUC5pbmRleE9mKHVbbV0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChvLHVbbV0pJiYoT1t1W21dXT1vW3VbbV1dKTtyZXR1cm4gT307Y29uc3QgaT10LmZvcndhcmRSZWYoKG8sUCk9Pnt2YXIgTyx1O2NvbnN0e3ByZWZpeENsczptLHRpdGxlOkEsY29udGVudDpOLG92ZXJsYXlDbGFzc05hbWU6TCxwbGFjZW1lbnQ6WT0idG9wIix0cmlnZ2VyOm9lPSJob3ZlciIsY2hpbGRyZW46Yixtb3VzZUVudGVyRGVsYXk6ZmU9LjEsbW91c2VMZWF2ZURlbGF5OmRlPS4xLG9uT3BlbkNoYW5nZTp2ZSxvdmVybGF5U3R5bGU6cGU9e30sc3R5bGVzOkssY2xhc3NOYW1lczpKfT1vLHI9dihvLFsicHJlZml4Q2xzIiwidGl0bGUiLCJjb250ZW50Iiwib3ZlcmxheUNsYXNzTmFtZSIsInBsYWNlbWVudCIsInRyaWdnZXIiLCJjaGlsZHJlbiIsIm1vdXNlRW50ZXJEZWxheSIsIm1vdXNlTGVhdmVEZWxheSIsIm9uT3BlbkNoYW5nZSIsIm92ZXJsYXlTdHlsZSIsInN0eWxlcyIsImNsYXNzTmFtZXMiXSkse2dldFByZWZpeENsczpjLGNsYXNzTmFtZTpkLHN0eWxlOnMsY2xhc3NOYW1lczpnLHN0eWxlczp6fT0oMCxmLmRqKSgicG9wb3ZlciIpLEQ9YygicG9wb3ZlciIsbSksW1QsJCxJXT0oMCxuLlopKEQpLFc9YygpLHJlPXgoKShMLCQsSSxkLGcucm9vdCxKPT1udWxsP3ZvaWQgMDpKLnJvb3QpLEI9eCgpKGcuYm9keSxKPT1udWxsP3ZvaWQgMDpKLmJvZHkpLFtTLFVdPSgwLG5lLlopKCExLHt2YWx1ZTooTz1vLm9wZW4pIT09bnVsbCYmTyE9PXZvaWQgMD9POm8udmlzaWJsZSxkZWZhdWx0VmFsdWU6KHU9by5kZWZhdWx0T3BlbikhPT1udWxsJiZ1IT09dm9pZCAwP3U6by5kZWZhdWx0VmlzaWJsZX0pLGs9KHAsXyk9PntVKHAsITApLHZlPT1udWxsfHx2ZShwLF8pfSxhZT1wPT57cC5rZXlDb2RlPT09Ry5aLkVTQyYmayghMSxwKX0sWj1wPT57ayhwKX0sbD0oMCx3LlopKEEpLGg9KDAsdy5aKShOKTtyZXR1cm4gVCh0LmNyZWF0ZUVsZW1lbnQoWC5aLE9iamVjdC5hc3NpZ24oe3BsYWNlbWVudDpZLHRyaWdnZXI6b2UsbW91c2VFbnRlckRlbGF5OmZlLG1vdXNlTGVhdmVEZWxheTpkZX0scix7cHJlZml4Q2xzOkQsY2xhc3NOYW1lczp7cm9vdDpyZSxib2R5OkJ9LHN0eWxlczp7cm9vdDpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHoucm9vdCkscykscGUpLEs9PW51bGw/dm9pZCAwOksucm9vdCksYm9keTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sei5ib2R5KSxLPT1udWxsP3ZvaWQgMDpLLmJvZHkpfSxyZWY6UCxvcGVuOlMsb25PcGVuQ2hhbmdlOlosb3ZlcmxheTpsfHxoP3QuY3JlYXRlRWxlbWVudChRLmFWLHtwcmVmaXhDbHM6RCx0aXRsZTpsLGNvbnRlbnQ6aH0pOm51bGwsdHJhbnNpdGlvbk5hbWU6KDAsRi5tKShXLCJ6b29tLWJpZyIsci50cmFuc2l0aW9uTmFtZSksImRhdGEtcG9wb3Zlci1pbmplY3QiOiEwfSksKDAsSC5UbSkoYix7b25LZXlEb3duOnA9Pnt2YXIgXyxxO3QuaXNWYWxpZEVsZW1lbnQoYikmJigocT1iPT1udWxsP3ZvaWQgMDooXz1iLnByb3BzKS5vbktleURvd24pPT09bnVsbHx8cT09PXZvaWQgMHx8cS5jYWxsKF8scCkpLGFlKHApfX0pKSl9KTtpLl9JbnRlcm5hbFBhbmVsRG9Ob3RVc2VPcllvdVdpbGxCZUZpcmVkPVEuWlAsUi5aPWl9LDIwMTM2OmZ1bmN0aW9uKGNlLFIsZSl7dmFyIHQ9ZSgxNDc0NyksTT1lKDUwNDM4KSx4PWUoOTc0MTQpLG5lPWUoNzk1MTEpLEc9ZSg4Nzk2KSx3PWUoODM1NTkpLEY9ZSg4MzI2Mik7Y29uc3QgSD1mPT57Y29uc3R7Y29tcG9uZW50Q2xzOm4scG9wb3ZlckNvbG9yOnYsdGl0bGVNaW5XaWR0aDphLGZvbnRXZWlnaHRTdHJvbmc6aSxpbm5lclBhZGRpbmc6byxib3hTaGFkb3dTZWNvbmRhcnk6UCxjb2xvclRleHRIZWFkaW5nOk8sYm9yZGVyUmFkaXVzTEc6dSx6SW5kZXhQb3B1cDptLHRpdGxlTWFyZ2luQm90dG9tOkEsY29sb3JCZ0VsZXZhdGVkOk4scG9wb3ZlckJnOkwsdGl0bGVCb3JkZXJCb3R0b206WSxpbm5lckNvbnRlbnRQYWRkaW5nOm9lLHRpdGxlUGFkZGluZzpifT1mO3JldHVyblt7W25dOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwoMCx0LldmKShmKSkse3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOjAsbGVmdDp7X3NraXBfY2hlY2tfOiEwLHZhbHVlOjB9LHpJbmRleDptLGZvbnRXZWlnaHQ6Im5vcm1hbCIsd2hpdGVTcGFjZToibm9ybWFsIix0ZXh0QWxpZ246InN0YXJ0IixjdXJzb3I6ImF1dG8iLHVzZXJTZWxlY3Q6InRleHQiLCItLXZhbGlkLW9mZnNldC14IjoidmFyKC0tYXJyb3ctb2Zmc2V0LWhvcml6b250YWwsIHZhcigtLWFycm93LXgpKSIsdHJhbnNmb3JtT3JpZ2luOlsidmFyKC0tdmFsaWQtb2Zmc2V0LXgsIDUwJSkiLCJ2YXIoLS1hcnJvdy15LCA1MCUpIl0uam9pbigiICIpLCItLWFudGQtYXJyb3ctYmFja2dyb3VuZC1jb2xvciI6Tix3aWR0aDoibWF4LWNvbnRlbnQiLG1heFdpZHRoOiIxMDB2dyIsIiYtcnRsIjp7ZGlyZWN0aW9uOiJydGwifSwiJi1oaWRkZW4iOntkaXNwbGF5OiJub25lIn0sW2Ake259LWNvbnRlbnRgXTp7cG9zaXRpb246InJlbGF0aXZlIn0sW2Ake259LWlubmVyYF06e2JhY2tncm91bmRDb2xvcjpMLGJhY2tncm91bmRDbGlwOiJwYWRkaW5nLWJveCIsYm9yZGVyUmFkaXVzOnUsYm94U2hhZG93OlAscGFkZGluZzpvfSxbYCR7bn0tdGl0bGVgXTp7bWluV2lkdGg6YSxtYXJnaW5Cb3R0b206QSxjb2xvcjpPLGZvbnRXZWlnaHQ6aSxib3JkZXJCb3R0b206WSxwYWRkaW5nOmJ9LFtgJHtufS1pbm5lci1jb250ZW50YF06e2NvbG9yOnYscGFkZGluZzpvZX19KX0sKDAseC5aUCkoZiwidmFyKC0tYW50ZC1hcnJvdy1iYWNrZ3JvdW5kLWNvbG9yKSIpLHtbYCR7bn0tcHVyZWBdOntwb3NpdGlvbjoicmVsYXRpdmUiLG1heFdpZHRoOiJub25lIixtYXJnaW46Zi5zaXplUG9wdXBBcnJvdyxkaXNwbGF5OiJpbmxpbmUtYmxvY2siLFtgJHtufS1jb250ZW50YF06e2Rpc3BsYXk6ImlubGluZS1ibG9jayJ9fX1dfSxYPWY9Pntjb25zdHtjb21wb25lbnRDbHM6bn09ZjtyZXR1cm57W25dOkcuaS5tYXAodj0+e2NvbnN0IGE9ZltgJHt2fTZgXTtyZXR1cm57W2AmJHtufS0ke3Z9YF06eyItLWFudGQtYXJyb3ctYmFja2dyb3VuZC1jb2xvciI6YSxbYCR7bn0taW5uZXJgXTp7YmFja2dyb3VuZENvbG9yOmF9LFtgJHtufS1hcnJvd2BdOntiYWNrZ3JvdW5kOiJ0cmFuc3BhcmVudCJ9fX19KX19LFE9Zj0+e2NvbnN0e2xpbmVXaWR0aDpuLGNvbnRyb2xIZWlnaHQ6dixmb250SGVpZ2h0OmEscGFkZGluZzppLHdpcmVmcmFtZTpvLHpJbmRleFBvcHVwQmFzZTpQLGJvcmRlclJhZGl1c0xHOk8sbWFyZ2luWFM6dSxsaW5lVHlwZTptLGNvbG9yU3BsaXQ6QSxwYWRkaW5nU006Tn09ZixMPXYtYSxZPUwvMixvZT1MLzItbixiPWk7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt0aXRsZU1pbldpZHRoOjE3Nyx6SW5kZXhQb3B1cDpQKzMwfSwoMCxuZS53KShmKSksKDAseC53Wikoe2NvbnRlbnRSYWRpdXM6TyxsaW1pdFZlcnRpY2FsUmFkaXVzOiEwfSkpLHtpbm5lclBhZGRpbmc6bz8wOjEyLHRpdGxlTWFyZ2luQm90dG9tOm8/MDp1LHRpdGxlUGFkZGluZzpvP2Ake1l9cHggJHtifXB4ICR7b2V9cHhgOjAsdGl0bGVCb3JkZXJCb3R0b206bz9gJHtufXB4ICR7bX0gJHtBfWA6Im5vbmUiLGlubmVyQ29udGVudFBhZGRpbmc6bz9gJHtOfXB4ICR7Yn1weGA6MH0pfTtSLlo9KDAsdy5JJCkoIlBvcG92ZXIiLGY9Pntjb25zdHtjb2xvckJnRWxldmF0ZWQ6bixjb2xvclRleHQ6dn09ZixhPSgwLEYuSVgpKGYse3BvcG92ZXJCZzpuLHBvcG92ZXJDb2xvcjp2fSk7cmV0dXJuW0goYSksWChhKSwoMCxNLl95KShhLCJ6b29tLWJpZyIpXX0sUSx7cmVzZXRTdHlsZTohMSxkZXByZWNhdGVkVG9rZW5zOltbIndpZHRoIiwidGl0bGVNaW5XaWR0aCJdLFsibWluV2lkdGgiLCJ0aXRsZU1pbldpZHRoIl1dfSl9fV0pOwpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy85MDA2LjBlMzMxMTg2LmFzeW5jLmpzIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy85MDA2LjBlMzMxMTg2LmFzeW5jLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYwZGUzNjIKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzkwMDYuMGUzMzExODYuYXN5bmMuanMKQEAgLTAsMCArMSBAQAorInVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvPXNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm98fFtdKS5wdXNoKFtbOTAwNl0sezg5MDA2OmZ1bmN0aW9uKGNlLEIsdCl7dC5yKEIpLHQuZChCLHtkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuIE59fSk7dmFyIGM9dCg2NzI5NCksQT10KDQzOTMpLGo9dCg2ODk5NyksRT10KDY2MzA5KSxaPXQoODM2MjIpLFM9dCg1NDgxMSksTD10KDg3NTQ3KSxWPXQoMjQwMTkpLHo9dCg5OTYxMSksTT10KDcxMjU1KSxEPXQoNDk2NDcpLFI9dCg3Njc3MiksbD17cG9zdENhcmRXcmFwcGVyOiJwb3N0Q2FyZFdyYXBwZXJfX19TdzFTaSIscG9zdENhcmQ6InBvc3RDYXJkX19fZkxLTmEiLGNvdmVyQ29udGFpbmVyOiJjb3ZlckNvbnRhaW5lcl9fX0c4bzE0Iixjb3ZlckltYWdlOiJjb3ZlckltYWdlX19fc25jeGUiLHByb21vdGlvbkJhZGdlOiJwcm9tb3Rpb25CYWRnZV9fX25yZkR5IixjYXJkQ29udGVudDoiY2FyZENvbnRlbnRfX194b0tzXyIscG9zdFRpdGxlOiJwb3N0VGl0bGVfX19rSk5VdCIscG9zdE1ldGE6InBvc3RNZXRhX19fb0F2Y0giLGF1dGhvck5hbWU6ImF1dGhvck5hbWVfX19BVmhTbSIscHVibGlzaFRpbWU6InB1Ymxpc2hUaW1lX19fTHJQcWgiLHRhZ3NDb250YWluZXI6InRhZ3NDb250YWluZXJfX19Da29pcSIsdGFnOiJ0YWdfX19JUDhLZCIscG9zdFN1bW1hcnk6InBvc3RTdW1tYXJ5X19fSjFRYzUiLHBvc3RGb290ZXI6InBvc3RGb290ZXJfX19YVmN1ciIsc3RhdHM6InN0YXRzX19fcFF5cjkiLHN0YXRJdGVtOiJzdGF0SXRlbV9fX0daajBKIixhbnRpY29uOiJhbnRpY29uX19fX1pLMVAiLHJlYWRNb3JlQnRuOiJyZWFkTW9yZUJ0bl9fX0J5djVXIn0scj10KDg1ODkzKSxYPWZ1bmN0aW9uKEYpe3ZhciBpPUYucG9zdCxxPWkuaWQsVD1pLnRpdGxlLCQ9aS5hdXRob3IsSz1pLnB1Ymxpc2hUaW1lLHA9aS50YWdzLFU9aS52aWV3cyx4PWkuY29tbWVudHMsSj1pLmZhdm9yaXRlcyxfPWkubGlrZXMsZWU9aS5jb3ZlckltYWdlLEk9aS5zdW1tYXJ5LG9lPWkucHJvbW90aW9uUGxhbklkLGU9aS5pc1Byb21vdGVkLHM9ZnVuY3Rpb24oKXtSLmhpc3RvcnkucHVzaCgiL3Bvc3QtZGV0YWlsLyIuY29uY2F0KHEpKX07cmV0dXJuKDAsci5qc3gpKCJkaXYiLHtjbGFzc05hbWU6bC5wb3N0Q2FyZFdyYXBwZXIsY2hpbGRyZW46KDAsci5qc3gpKEEuWix7aG92ZXJhYmxlOiEwLGNvdmVyOigwLHIuanN4cykoImRpdiIse2NsYXNzTmFtZTpsLmNvdmVyQ29udGFpbmVyLGNoaWxkcmVuOltlJiYoMCxyLmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6bC5wcm9tb3Rpb25CYWRnZSxjaGlsZHJlbjpbKDAsci5qc3gpKFMuWix7fSksKDAsci5qc3gpKCJzcGFuIix7Y2hpbGRyZW46Ilx1NjNBOFx1NUU3RiJ9KV19KSwoMCxyLmpzeCkoImltZyIse2FsdDpULHNyYzplZSxjbGFzc05hbWU6bC5jb3ZlckltYWdlLG9uRXJyb3I6ZnVuY3Rpb24obyl7by5jdXJyZW50VGFyZ2V0LnNyYz0iL2ltYWdlcy80MDQucG5nIn19KV19KSxjbGFzc05hbWU6bC5wb3N0Q2FyZCxib2R5U3R5bGU6e3BhZGRpbmc6IjE2cHgiLGhlaWdodDoiMjQwcHgiLGRpc3BsYXk6ImZsZXgiLGZsZXhEaXJlY3Rpb246ImNvbHVtbiJ9LGNoaWxkcmVuOigwLHIuanN4cykoImRpdiIse2NsYXNzTmFtZTpsLmNhcmRDb250ZW50LGNoaWxkcmVuOlsoMCxyLmpzeCkoImgzIix7Y2xhc3NOYW1lOmwucG9zdFRpdGxlLHRpdGxlOlQsY2hpbGRyZW46VH0pLCgwLHIuanN4cykoImRpdiIse2NsYXNzTmFtZTpsLnBvc3RNZXRhLGNoaWxkcmVuOlsoMCxyLmpzeCkoai5aLHtzaXplOiJzbWFsbCIsc3R5bGU6e21hcmdpblJpZ2h0OjZ9LGljb246KDAsci5qc3gpKEwuWix7fSksY2hpbGRyZW46JCYmJFswXX0pLCgwLHIuanN4KSgic3BhbiIse2NsYXNzTmFtZTpsLmF1dGhvck5hbWUsY2hpbGRyZW46JH0pLCgwLHIuanN4KShWLlose3N0eWxlOnttYXJnaW5MZWZ0OjEyLG1hcmdpblJpZ2h0OjR9fSksKDAsci5qc3gpKCJzcGFuIix7Y2xhc3NOYW1lOmwucHVibGlzaFRpbWUsY2hpbGRyZW46S30pXX0pLCgwLHIuanN4cykoImRpdiIse2NsYXNzTmFtZTpsLnRhZ3NDb250YWluZXIsY2hpbGRyZW46WyhBcnJheS5pc0FycmF5KHApP3A6W10pLnNsaWNlKDAsMykubWFwKGZ1bmN0aW9uKG4pe3JldHVybigwLHIuanN4KShFLlose2NvbG9yOiJibHVlIixjbGFzc05hbWU6bC50YWcsY2hpbGRyZW46bn0sbil9KSxwJiZwLmxlbmd0aD4zJiYoMCxyLmpzeHMpKEUuWix7Y29sb3I6ImRlZmF1bHQiLGNsYXNzTmFtZTpsLnRhZyxjaGlsZHJlbjpbIisiLHAubGVuZ3RoLTNdfSldfSksKDAsci5qc3gpKCJkaXYiLHtjbGFzc05hbWU6bC5wb3N0U3VtbWFyeSx0aXRsZTpJLGNoaWxkcmVuOkl9KSwoMCxyLmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6bC5wb3N0Rm9vdGVyLGNoaWxkcmVuOlsoMCxyLmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6bC5zdGF0cyxjaGlsZHJlbjpbKDAsci5qc3hzKSgic3BhbiIse2NsYXNzTmFtZTpsLnN0YXRJdGVtLGNoaWxkcmVuOlsoMCxyLmpzeCkoei5aLHt9KSwiICIsVXx8MF19KSwoMCxyLmpzeHMpKCJzcGFuIix7Y2xhc3NOYW1lOmwuc3RhdEl0ZW0sY2hpbGRyZW46WygwLHIuanN4KShNLlose30pLCIgIix4fHwwXX0pLCgwLHIuanN4cykoInNwYW4iLHtjbGFzc05hbWU6bC5zdGF0SXRlbSxjaGlsZHJlbjpbKDAsci5qc3gpKEQuWix7fSksIiAiLEp8fDBdfSldfSksKDAsci5qc3gpKFouWlAse3R5cGU6ImxpbmsiLGNsYXNzTmFtZTpsLnJlYWRNb3JlQnRuLG9uQ2xpY2s6cyxjaGlsZHJlbjoiXHU2N0U1XHU3NzBCXHU2NkY0XHU1OTFBIFx4QkIifSldfSldfSl9KX0pfSxOPVh9LDY2MzA5OmZ1bmN0aW9uKGNlLEIsdCl7dC5kKEIse1o6ZnVuY3Rpb24oKXtyZXR1cm4gb2V9fSk7dmFyIGM9dCg2NzI5NCksQT10KDkzOTY3KSxqPXQubihBKSxFPXQoOTg0MjMpLFo9dCg5ODc4NyksUz10KDY5NzYwKSxMPXQoOTYxNTkpLFY9dCg0NTM1Myksej10KDUzMTI0KSxNPXQoMTE1NjgpLEQ9dCgxNTA2MyksUj10KDE0NzQ3KSxsPXQoODMyNjIpLHI9dCg4MzU1OSk7Y29uc3QgWD1lPT57Y29uc3R7cGFkZGluZ1hYUzpzLGxpbmVXaWR0aDpuLHRhZ1BhZGRpbmdIb3Jpem9udGFsOm8sY29tcG9uZW50Q2xzOmEsY2FsYzpnfT1lLGQ9ZyhvKS5zdWIobikuZXF1YWwoKSxoPWcocykuc3ViKG4pLmVxdWFsKCk7cmV0dXJue1thXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sKDAsUi5XZikoZSkpLHtkaXNwbGF5OiJpbmxpbmUtYmxvY2siLGhlaWdodDoiYXV0byIsbWFyZ2luSW5saW5lRW5kOmUubWFyZ2luWFMscGFkZGluZ0lubGluZTpkLGZvbnRTaXplOmUudGFnRm9udFNpemUsbGluZUhlaWdodDplLnRhZ0xpbmVIZWlnaHQsd2hpdGVTcGFjZToibm93cmFwIixiYWNrZ3JvdW5kOmUuZGVmYXVsdEJnLGJvcmRlcjpgJHsoMCxNLmJmKShlLmxpbmVXaWR0aCl9ICR7ZS5saW5lVHlwZX0gJHtlLmNvbG9yQm9yZGVyfWAsYm9yZGVyUmFkaXVzOmUuYm9yZGVyUmFkaXVzU00sb3BhY2l0eToxLHRyYW5zaXRpb246YGFsbCAke2UubW90aW9uRHVyYXRpb25NaWR9YCx0ZXh0QWxpZ246InN0YXJ0Iixwb3NpdGlvbjoicmVsYXRpdmUiLFtgJiR7YX0tcnRsYF06e2RpcmVjdGlvbjoicnRsIn0sIiYsIGEsIGE6aG92ZXIiOntjb2xvcjplLmRlZmF1bHRDb2xvcn0sW2Ake2F9LWNsb3NlLWljb25gXTp7bWFyZ2luSW5saW5lU3RhcnQ6aCxmb250U2l6ZTplLnRhZ0ljb25TaXplLGNvbG9yOmUuY29sb3JUZXh0RGVzY3JpcHRpb24sY3Vyc29yOiJwb2ludGVyIix0cmFuc2l0aW9uOmBhbGwgJHtlLm1vdGlvbkR1cmF0aW9uTWlkfWAsIiY6aG92ZXIiOntjb2xvcjplLmNvbG9yVGV4dEhlYWRpbmd9fSxbYCYke2F9LWhhcy1jb2xvcmBdOntib3JkZXJDb2xvcjoidHJhbnNwYXJlbnQiLFtgJiwgYSwgYTpob3ZlciwgJHtlLmljb25DbHN9LWNsb3NlLCAke2UuaWNvbkNsc30tY2xvc2U6aG92ZXJgXTp7Y29sb3I6ZS5jb2xvclRleHRMaWdodFNvbGlkfX0sIiYtY2hlY2thYmxlIjp7YmFja2dyb3VuZENvbG9yOiJ0cmFuc3BhcmVudCIsYm9yZGVyQ29sb3I6InRyYW5zcGFyZW50IixjdXJzb3I6InBvaW50ZXIiLFtgJjpub3QoJHthfS1jaGVja2FibGUtY2hlY2tlZCk6aG92ZXJgXTp7Y29sb3I6ZS5jb2xvclByaW1hcnksYmFja2dyb3VuZENvbG9yOmUuY29sb3JGaWxsU2Vjb25kYXJ5fSwiJjphY3RpdmUsICYtY2hlY2tlZCI6e2NvbG9yOmUuY29sb3JUZXh0TGlnaHRTb2xpZH0sIiYtY2hlY2tlZCI6e2JhY2tncm91bmRDb2xvcjplLmNvbG9yUHJpbWFyeSwiJjpob3ZlciI6e2JhY2tncm91bmRDb2xvcjplLmNvbG9yUHJpbWFyeUhvdmVyfX0sIiY6YWN0aXZlIjp7YmFja2dyb3VuZENvbG9yOmUuY29sb3JQcmltYXJ5QWN0aXZlfX0sIiYtaGlkZGVuIjp7ZGlzcGxheToibm9uZSJ9LFtgPiAke2UuaWNvbkNsc30gKyBzcGFuLCA+IHNwYW4gKyAke2UuaWNvbkNsc31gXTp7bWFyZ2luSW5saW5lU3RhcnQ6ZH19KSxbYCR7YX0tYm9yZGVybGVzc2BdOntib3JkZXJDb2xvcjoidHJhbnNwYXJlbnQiLGJhY2tncm91bmQ6ZS50YWdCb3JkZXJsZXNzQmd9fX0sTj1lPT57Y29uc3R7bGluZVdpZHRoOnMsZm9udFNpemVJY29uOm4sY2FsYzpvfT1lLGE9ZS5mb250U2l6ZVNNO3JldHVybigwLGwuSVgpKGUse3RhZ0ZvbnRTaXplOmEsdGFnTGluZUhlaWdodDooMCxNLmJmKShvKGUubGluZUhlaWdodFNNKS5tdWwoYSkuZXF1YWwoKSksdGFnSWNvblNpemU6byhuKS5zdWIobyhzKS5tdWwoMikpLmVxdWFsKCksdGFnUGFkZGluZ0hvcml6b250YWw6OCx0YWdCb3JkZXJsZXNzQmc6ZS5kZWZhdWx0Qmd9KX0sSD1lPT4oe2RlZmF1bHRCZzpuZXcgRC50KGUuY29sb3JGaWxsUXVhdGVybmFyeSkub25CYWNrZ3JvdW5kKGUuY29sb3JCZ0NvbnRhaW5lcikudG9IZXhTdHJpbmcoKSxkZWZhdWx0Q29sb3I6ZS5jb2xvclRleHR9KTt2YXIgRj0oMCxyLkkkKSgiVGFnIixlPT57Y29uc3Qgcz1OKGUpO3JldHVybiBYKHMpfSxIKSxpPWZ1bmN0aW9uKGUscyl7dmFyIG49e307Zm9yKHZhciBvIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsbykmJnMuaW5kZXhPZihvKTwwJiYobltvXT1lW29dKTtpZihlIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIGE9MCxvPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7YTxvLmxlbmd0aDthKyspcy5pbmRleE9mKG9bYV0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLG9bYV0pJiYobltvW2FdXT1lW29bYV1dKTtyZXR1cm4gbn0sVD1jLmZvcndhcmRSZWYoKGUscyk9Pntjb25zdHtwcmVmaXhDbHM6bixzdHlsZTpvLGNsYXNzTmFtZTphLGNoZWNrZWQ6ZyxvbkNoYW5nZTpkLG9uQ2xpY2s6aH09ZSx2PWkoZSxbInByZWZpeENscyIsInN0eWxlIiwiY2xhc3NOYW1lIiwiY2hlY2tlZCIsIm9uQ2hhbmdlIiwib25DbGljayJdKSx7Z2V0UHJlZml4Q2xzOk8sdGFnOkN9PWMudXNlQ29udGV4dCh6LkVfKSxQPVc9PntkPT1udWxsfHxkKCFnKSxoPT1udWxsfHxoKFcpfSxmPU8oInRhZyIsbiksW1EsRyx1XT1GKGYpLFk9aigpKGYsYCR7Zn0tY2hlY2thYmxlYCx7W2Ake2Z9LWNoZWNrYWJsZS1jaGVja2VkYF06Z30sQz09bnVsbD92b2lkIDA6Qy5jbGFzc05hbWUsYSxHLHUpO3JldHVybiBRKGMuY3JlYXRlRWxlbWVudCgic3BhbiIsT2JqZWN0LmFzc2lnbih7fSx2LHtyZWY6cyxzdHlsZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbyksQz09bnVsbD92b2lkIDA6Qy5zdHlsZSksY2xhc3NOYW1lOlksb25DbGljazpQfSkpKX0pLCQ9dCg5ODcxOSk7Y29uc3QgSz1lPT4oMCwkLlopKGUsKHMsbik9PntsZXR7dGV4dENvbG9yOm8sbGlnaHRCb3JkZXJDb2xvcjphLGxpZ2h0Q29sb3I6ZyxkYXJrQ29sb3I6ZH09bjtyZXR1cm57W2Ake2UuY29tcG9uZW50Q2xzfSR7ZS5jb21wb25lbnRDbHN9LSR7c31gXTp7Y29sb3I6byxiYWNrZ3JvdW5kOmcsYm9yZGVyQ29sb3I6YSwiJi1pbnZlcnNlIjp7Y29sb3I6ZS5jb2xvclRleHRMaWdodFNvbGlkLGJhY2tncm91bmQ6ZCxib3JkZXJDb2xvcjpkfSxbYCYke2UuY29tcG9uZW50Q2xzfS1ib3JkZXJsZXNzYF06e2JvcmRlckNvbG9yOiJ0cmFuc3BhcmVudCJ9fX19KTt2YXIgcD0oMCxyLmJrKShbIlRhZyIsInByZXNldCJdLGU9Pntjb25zdCBzPU4oZSk7cmV0dXJuIEsocyl9LEgpO2Z1bmN0aW9uIFUoZSl7cmV0dXJuIHR5cGVvZiBlIT0ic3RyaW5nIj9lOmUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrZS5zbGljZSgxKX1jb25zdCB4PShlLHMsbik9Pntjb25zdCBvPVUobik7cmV0dXJue1tgJHtlLmNvbXBvbmVudENsc30ke2UuY29tcG9uZW50Q2xzfS0ke3N9YF06e2NvbG9yOmVbYGNvbG9yJHtufWBdLGJhY2tncm91bmQ6ZVtgY29sb3Ike299QmdgXSxib3JkZXJDb2xvcjplW2Bjb2xvciR7b31Cb3JkZXJgXSxbYCYke2UuY29tcG9uZW50Q2xzfS1ib3JkZXJsZXNzYF06e2JvcmRlckNvbG9yOiJ0cmFuc3BhcmVudCJ9fX19O3ZhciBKPSgwLHIuYmspKFsiVGFnIiwic3RhdHVzIl0sZT0+e2NvbnN0IHM9TihlKTtyZXR1cm5beChzLCJzdWNjZXNzIiwiU3VjY2VzcyIpLHgocywicHJvY2Vzc2luZyIsIkluZm8iKSx4KHMsImVycm9yIiwiRXJyb3IiKSx4KHMsIndhcm5pbmciLCJXYXJuaW5nIildfSxIKSxfPWZ1bmN0aW9uKGUscyl7dmFyIG49e307Zm9yKHZhciBvIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsbykmJnMuaW5kZXhPZihvKTwwJiYobltvXT1lW29dKTtpZihlIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIGE9MCxvPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7YTxvLmxlbmd0aDthKyspcy5pbmRleE9mKG9bYV0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLG9bYV0pJiYobltvW2FdXT1lW29bYV1dKTtyZXR1cm4gbn07Y29uc3QgST1jLmZvcndhcmRSZWYoKGUscyk9Pntjb25zdHtwcmVmaXhDbHM6bixjbGFzc05hbWU6byxyb290Q2xhc3NOYW1lOmEsc3R5bGU6ZyxjaGlsZHJlbjpkLGljb246aCxjb2xvcjp2LG9uQ2xvc2U6Tyxib3JkZXJlZDpDPSEwLHZpc2libGU6UH09ZSxmPV8oZSxbInByZWZpeENscyIsImNsYXNzTmFtZSIsInJvb3RDbGFzc05hbWUiLCJzdHlsZSIsImNoaWxkcmVuIiwiaWNvbiIsImNvbG9yIiwib25DbG9zZSIsImJvcmRlcmVkIiwidmlzaWJsZSJdKSx7Z2V0UHJlZml4Q2xzOlEsZGlyZWN0aW9uOkcsdGFnOnV9PWMudXNlQ29udGV4dCh6LkVfKSxbWSxXXT1jLnVzZVN0YXRlKCEwKSxpZT0oMCxFLlopKGYsWyJjbG9zZUljb24iLCJjbG9zYWJsZSJdKTtjLnVzZUVmZmVjdCgoKT0+e1AhPT12b2lkIDAmJlcoUCl9LFtQXSk7Y29uc3QgdGU9KDAsWi5vMikodikscmU9KDAsWi55VCkodiksdz10ZXx8cmUsZGU9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHtiYWNrZ3JvdW5kQ29sb3I6diYmIXc/djp2b2lkIDB9LHU9PW51bGw/dm9pZCAwOnUuc3R5bGUpLGcpLG09USgidGFnIixuKSxbbWUsZ2UsdWVdPUYobSksdmU9aigpKG0sdT09bnVsbD92b2lkIDA6dS5jbGFzc05hbWUse1tgJHttfS0ke3Z9YF06dyxbYCR7bX0taGFzLWNvbG9yYF06diYmIXcsW2Ake219LWhpZGRlbmBdOiFZLFtgJHttfS1ydGxgXTpHPT09InJ0bCIsW2Ake219LWJvcmRlcmxlc3NgXTohQ30sbyxhLGdlLHVlKSxzZT1iPT57Yi5zdG9wUHJvcGFnYXRpb24oKSxPPT1udWxsfHxPKGIpLCFiLmRlZmF1bHRQcmV2ZW50ZWQmJlcoITEpfSxbLENlXT0oMCxTLlopKCgwLFMudykoZSksKDAsUy53KSh1KSx7Y2xvc2FibGU6ITEsY2xvc2VJY29uUmVuZGVyOmI9Pntjb25zdCBmZT1jLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6YCR7bX0tY2xvc2UtaWNvbmAsb25DbGljazpzZX0sYik7cmV0dXJuKDAsTC53bSkoYixmZSx5PT4oe29uQ2xpY2s6bGU9Pnt2YXIgazsoaz15PT1udWxsP3ZvaWQgMDp5Lm9uQ2xpY2spPT09bnVsbHx8az09PXZvaWQgMHx8ay5jYWxsKHksbGUpLHNlKGxlKX0sY2xhc3NOYW1lOmooKSh5PT1udWxsP3ZvaWQgMDp5LmNsYXNzTmFtZSxgJHttfS1jbG9zZS1pY29uYCl9KSl9fSkscGU9dHlwZW9mIGYub25DbGljaz09ImZ1bmN0aW9uInx8ZCYmZC50eXBlPT09ImEiLGFlPWh8fG51bGwsaGU9YWU/Yy5jcmVhdGVFbGVtZW50KGMuRnJhZ21lbnQsbnVsbCxhZSxkJiZjLmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwsZCkpOmQsbmU9Yy5jcmVhdGVFbGVtZW50KCJzcGFuIixPYmplY3QuYXNzaWduKHt9LGllLHtyZWY6cyxjbGFzc05hbWU6dmUsc3R5bGU6ZGV9KSxoZSxDZSx0ZSYmYy5jcmVhdGVFbGVtZW50KHAse2tleToicHJlc2V0IixwcmVmaXhDbHM6bX0pLHJlJiZjLmNyZWF0ZUVsZW1lbnQoSix7a2V5OiJzdGF0dXMiLHByZWZpeENsczptfSkpO3JldHVybiBtZShwZT9jLmNyZWF0ZUVsZW1lbnQoVi5aLHtjb21wb25lbnQ6IlRhZyJ9LG5lKTpuZSl9KTtJLkNoZWNrYWJsZVRhZz1UO3ZhciBvZT1JfX1dKTsKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvOTAwNi41Mjk2MzA3Mi5jaHVuay5jc3MgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzkwMDYuNTI5NjMwNzIuY2h1bmsuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIyYTZlN2YKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzkwMDYuNTI5NjMwNzIuY2h1bmsuY3NzCkBAIC0wLDAgKzEgQEAKKy5wb3N0Q2FyZFdyYXBwZXJfX19TdzFTaXt3aWR0aDoxMDAlO2hlaWdodDoxMDAlfS5wb3N0Q2FyZF9fX2ZMS05he2hlaWdodDoxMDAlO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Ym9yZGVyLXJhZGl1czoxMnB4O292ZXJmbG93OmhpZGRlbjtib3gtc2hhZG93OjAgMnB4IDhweCAjMDAwMDAwMWE7dHJhbnNpdGlvbjphbGwgLjNzIGVhc2U7YmFja2dyb3VuZDojZmZmfS5wb3N0Q2FyZF9fX2ZMS05hOmhvdmVye3RyYW5zZm9ybTp0cmFuc2xhdGVZKC00cHgpO2JveC1zaGFkb3c6MCA4cHggMjRweCAjMDAwMDAwMjZ9LmNvdmVyQ29udGFpbmVyX19fRzhvMTR7d2lkdGg6MTAwJTtoZWlnaHQ6MjAwcHg7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlO2JhY2tncm91bmQ6I2Y1ZjVmNTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9LmNvdmVySW1hZ2VfX19zbmN4ZXt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO29iamVjdC1maXQ6Y29udGFpbjtvYmplY3QtcG9zaXRpb246Y2VudGVyO3RyYW5zaXRpb246dHJhbnNmb3JtIC4zcyBlYXNlO2JhY2tncm91bmQ6I2Y1ZjVmNX0ucG9zdENhcmRfX19mTEtOYTpob3ZlciAuY292ZXJJbWFnZV9fX3NuY3hle3RyYW5zZm9ybTpzY2FsZSgxLjAyKX0ucHJvbW90aW9uQmFkZ2VfX19ucmZEeXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6OHB4O3JpZ2h0OjhweDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg0NWRlZywjZmY2YjZiLG9yYW5nZSk7Y29sb3I6I2ZmZjtwYWRkaW5nOjRweCA4cHg7Ym9yZGVyLXJhZGl1czoxMnB4O2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjcwMDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo0cHg7ei1pbmRleDoxMDtib3gtc2hhZG93OjAgMnB4IDRweCAjMDAwM30uY2FyZENvbnRlbnRfX194b0tzX3tmbGV4OjEgMTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2hlaWdodDoxMDAlfS5wb3N0VGl0bGVfX19rSk5VdHtmb250LXNpemU6MTZweDtmb250LXdlaWdodDo2MDA7bWFyZ2luOjAgMCAxMnB4O2xpbmUtaGVpZ2h0OjEuNDtjb2xvcjojMjYyNjI2O2Rpc3BsYXk6LXdlYmtpdC1ib3g7LXdlYmtpdC1saW5lLWNsYW1wOjI7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsO292ZXJmbG93OmhpZGRlbjtoZWlnaHQ6NDRweH0ucG9zdE1ldGFfX19vQXZjSHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2ZvbnQtc2l6ZToxMnB4O2NvbG9yOiM4YzhjOGM7bWFyZ2luLWJvdHRvbToxMnB4O2hlaWdodDoyMHB4fS5hdXRob3JOYW1lX19fQVZoU217Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOiM1OTU5NTl9LnB1Ymxpc2hUaW1lX19fTHJQcWh7Y29sb3I6IzhjOGM4Y30udGFnc0NvbnRhaW5lcl9fX0Nrb2lxe21hcmdpbi1ib3R0b206MTJweDtoZWlnaHQ6MjRweDtkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7Z2FwOjRweDtvdmVyZmxvdzpoaWRkZW59LnRhZ19fX0lQOEtke2ZvbnQtc2l6ZToxMXB4O3BhZGRpbmc6MnB4IDZweDttYXJnaW46MDtib3JkZXItcmFkaXVzOjRweH0ucG9zdFN1bW1hcnlfX19KMVFjNXtmbGV4OjEgMTtmb250LXNpemU6MTNweDtjb2xvcjojNTk1OTU5O2xpbmUtaGVpZ2h0OjEuNTttYXJnaW4tYm90dG9tOjE2cHg7ZGlzcGxheTotd2Via2l0LWJveDstd2Via2l0LWxpbmUtY2xhbXA6Mzstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7b3ZlcmZsb3c6aGlkZGVuO2hlaWdodDo2MHB4fS5wb3N0Rm9vdGVyX19fWFZjdXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjttYXJnaW4tdG9wOmF1dG87cGFkZGluZy10b3A6MTJweDtib3JkZXItdG9wOjFweCBzb2xpZCAjZjBmMGYwO2hlaWdodDozMnB4fS5zdGF0c19fX3BReXI5e2Rpc3BsYXk6ZmxleDtnYXA6MTZweH0uc3RhdEl0ZW1fX19HWmowSntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo0cHg7Zm9udC1zaXplOjEycHg7Y29sb3I6IzhjOGM4Y30uc3RhdEl0ZW1fX19HWmowSiAuYW50aWNvbl9fX19aSzFQe2ZvbnQtc2l6ZToxMnB4fS5yZWFkTW9yZUJ0bl9fX0J5djVXe3BhZGRpbmc6MDtmb250LXNpemU6MTJweDtjb2xvcjojMTg5MGZmO2ZvbnQtd2VpZ2h0OjUwMH0ucmVhZE1vcmVCdG5fX19CeXY1Vzpob3Zlcntjb2xvcjojNDBhOWZmfUBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCl7LmNvdmVyQ29udGFpbmVyX19fRzhvMTR7aGVpZ2h0OjE2MHB4fS5wb3N0VGl0bGVfX19rSk5VdHtmb250LXNpemU6MTRweDtoZWlnaHQ6NDBweH0ucG9zdFN1bW1hcnlfX19KMVFjNXtmb250LXNpemU6MTJweDstd2Via2l0LWxpbmUtY2xhbXA6MjtoZWlnaHQ6MzZweH0uc3RhdHNfX19wUXlyOXtnYXA6MTJweH0uc3RhdEl0ZW1fX19HWmowSntmb250LXNpemU6MTFweH19CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzkwMy4wOTRmZmVkMC5hc3luYy5qcyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvOTAzLjA5NGZmZWQwLmFzeW5jLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJhNTMzZDIKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzkwMy4wOTRmZmVkMC5hc3luYy5qcwpAQCAtMCwwICsxIEBACisidXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W10pLnB1c2goW1s5MDNdLHsxNTc0NjpmdW5jdGlvbihZZSxJZSxtKXt2YXIgbz1tKDIxNTg0KTtJZS5aPW8uWn0sMTUyNDE6ZnVuY3Rpb24oWWUsSWUsbSl7bS5kKEllLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGRufX0pO3ZhciBvPW0oNjcyOTQpLGZ0PW0oOTk2MTEpLHZ0PW0oOTM5NjcpLHE9bS5uKHZ0KSxoZT1tKDg3NDYyKSxSPW0oMTQxMyksaWU9bSg0OTQyKSxEPW0oOTc2ODUpLGtlPW0oNzEwMDIpLHdlPW0oOTEpLFdlPS9tYXJnaW58cGFkZGluZ3x3aWR0aHxoZWlnaHR8bWF4fG1pbnxvZmZzZXQvLFRlPXtsZWZ0OiEwLHRvcDohMH0sRmU9e2Nzc0Zsb2F0OjEsc3R5bGVGbG9hdDoxLGZsb2F0OjF9O2Z1bmN0aW9uIEhlKHQpe3JldHVybiB0Lm5vZGVUeXBlPT09MT90Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZSh0LG51bGwpOnt9fWZ1bmN0aW9uIGR0KHQsZSxuKXtpZihlPWUudG9Mb3dlckNhc2UoKSxuPT09ImF1dG8iKXtpZihlPT09ImhlaWdodCIpcmV0dXJuIHQub2Zmc2V0SGVpZ2h0O2lmKGU9PT0id2lkdGgiKXJldHVybiB0Lm9mZnNldFdpZHRofXJldHVybiBlIGluIFRlfHwoVGVbZV09V2UudGVzdChlKSksVGVbZV0/cGFyc2VGbG9hdChuKXx8MDpufWZ1bmN0aW9uIENuKHQsZSl7dmFyIG49YXJndW1lbnRzLmxlbmd0aCxyPUhlKHQpO3JldHVybiBlPUZlW2VdPyJjc3NGbG9hdCJpbiB0LnN0eWxlPyJjc3NGbG9hdCI6InN0eWxlRmxvYXQiOmUsbj09PTE/cjpkdCh0LGUscltlXXx8dC5zdHlsZVtlXSl9ZnVuY3Rpb24gbXQodCxlLG4pe3ZhciByPWFyZ3VtZW50cy5sZW5ndGg7aWYoZT1GZVtlXT8iY3NzRmxvYXQiaW4gdC5zdHlsZT8iY3NzRmxvYXQiOiJzdHlsZUZsb2F0IjplLHI9PT0zKXJldHVybiB0eXBlb2Ygbj09Im51bWJlciImJldlLnRlc3QoZSkmJihuPSIiLmNvbmNhdChuLCJweCIpKSx0LnN0eWxlW2VdPW4sbjtmb3IodmFyIGEgaW4gZSllLmhhc093blByb3BlcnR5KGEpJiZtdCh0LGEsZVthXSk7cmV0dXJuIEhlKHQpfWZ1bmN0aW9uIHBuKHQpe3JldHVybiB0PT09ZG9jdW1lbnQuYm9keT9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGg6dC5vZmZzZXRXaWR0aH1mdW5jdGlvbiB3bih0KXtyZXR1cm4gdD09PWRvY3VtZW50LmJvZHk/d2luZG93LmlubmVySGVpZ2h0fHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0OnQub2Zmc2V0SGVpZ2h0fWZ1bmN0aW9uIFNuKCl7dmFyIHQ9TWF0aC5tYXgoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFdpZHRoLGRvY3VtZW50LmJvZHkuc2Nyb2xsV2lkdGgpLGU9TWF0aC5tYXgoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbEhlaWdodCxkb2N1bWVudC5ib2R5LnNjcm9sbEhlaWdodCk7cmV0dXJue3dpZHRoOnQsaGVpZ2h0OmV9fWZ1bmN0aW9uIEJlKCl7dmFyIHQ9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoLGU9d2luZG93LmlubmVySGVpZ2h0fHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0O3JldHVybnt3aWR0aDp0LGhlaWdodDplfX1mdW5jdGlvbiB4bigpe3JldHVybntzY3JvbGxMZWZ0Ok1hdGgubWF4KGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0LGRvY3VtZW50LmJvZHkuc2Nyb2xsTGVmdCksc2Nyb2xsVG9wOk1hdGgubWF4KGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AsZG9jdW1lbnQuYm9keS5zY3JvbGxUb3ApfX1mdW5jdGlvbiBndCh0KXt2YXIgZT10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG49ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O3JldHVybntsZWZ0OmUubGVmdCsod2luZG93LnBhZ2VYT2Zmc2V0fHxuLnNjcm9sbExlZnQpLShuLmNsaWVudExlZnR8fGRvY3VtZW50LmJvZHkuY2xpZW50TGVmdHx8MCksdG9wOmUudG9wKyh3aW5kb3cucGFnZVlPZmZzZXR8fG4uc2Nyb2xsVG9wKS0obi5jbGllbnRUb3B8fGRvY3VtZW50LmJvZHkuY2xpZW50VG9wfHwwKX19dmFyIE9lPW0oMjE3NzApLGh0PW0oNDA5NzQpLFNlPW0oNjQwMTkpLExlPW0oMTUxMDUpLEN0PW0oMjc4OCkscHQ9bSgyOTM3MikseWU9by5jcmVhdGVDb250ZXh0KG51bGwpLHd0PWZ1bmN0aW9uKGUpe3ZhciBuPWUudmlzaWJsZSxyPWUubWFza1RyYW5zaXRpb25OYW1lLGE9ZS5nZXRDb250YWluZXIsaT1lLnByZWZpeENscyxmPWUucm9vdENsYXNzTmFtZSxzPWUuaWNvbnMsdT1lLmNvdW50UmVuZGVyLGQ9ZS5zaG93U3dpdGNoLGg9ZS5zaG93UHJvZ3Jlc3MsbD1lLmN1cnJlbnQseD1lLnRyYW5zZm9ybSxnPWUuY291bnQscD1lLnNjYWxlLEk9ZS5taW5TY2FsZSxQPWUubWF4U2NhbGUsUz1lLmNsb3NlSWNvbixUPWUub25BY3RpdmUsTT1lLm9uQ2xvc2UsRT1lLm9uWm9vbUluLGM9ZS5vblpvb21PdXQseT1lLm9uUm90YXRlUmlnaHQsQz1lLm9uUm90YXRlTGVmdCx2PWUub25GbGlwWCxiPWUub25GbGlwWSxaPWUub25SZXNldCx3PWUudG9vbGJhclJlbmRlcixOPWUuekluZGV4LFg9ZS5pbWFnZSxPPSgwLG8udXNlQ29udGV4dCkoeWUpLGs9cy5yb3RhdGVMZWZ0LEI9cy5yb3RhdGVSaWdodCxHPXMuem9vbUluLFY9cy56b29tT3V0LF89cy5jbG9zZSxIPXMubGVmdCxVPXMucmlnaHQsZWU9cy5mbGlwWCxLPXMuZmxpcFksc2U9IiIuY29uY2F0KGksIi1vcGVyYXRpb25zLW9wZXJhdGlvbiIpO28udXNlRWZmZWN0KGZ1bmN0aW9uKCl7dmFyIEE9ZnVuY3Rpb24oeil7ei5rZXlDb2RlPT09TGUuWi5FU0MmJk0oKX07cmV0dXJuIG4mJndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixBKSxmdW5jdGlvbigpe3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIixBKX19LFtuXSk7dmFyIHRlPWZ1bmN0aW9uKCQseil7JC5wcmV2ZW50RGVmYXVsdCgpLCQuc3RvcFByb3BhZ2F0aW9uKCksVCh6KX0saj1vLnVzZUNhbGxiYWNrKGZ1bmN0aW9uKEEpe3ZhciAkPUEudHlwZSx6PUEuZGlzYWJsZWQsRj1BLm9uQ2xpY2ssWT1BLmljb247cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7a2V5OiQsY2xhc3NOYW1lOnEoKShzZSwiIi5jb25jYXQoaSwiLW9wZXJhdGlvbnMtb3BlcmF0aW9uLSIpLmNvbmNhdCgkKSwoMCxpZS5aKSh7fSwiIi5jb25jYXQoaSwiLW9wZXJhdGlvbnMtb3BlcmF0aW9uLWRpc2FibGVkIiksISF6KSksb25DbGljazpGfSxZKX0sW3NlLGldKSxsZT1kP2ooe2ljb246SCxvbkNsaWNrOmZ1bmN0aW9uKCQpe3JldHVybiB0ZSgkLC0xKX0sdHlwZToicHJldiIsZGlzYWJsZWQ6bD09PTB9KTp2b2lkIDAsbmU9ZD9qKHtpY29uOlUsb25DbGljazpmdW5jdGlvbigkKXtyZXR1cm4gdGUoJCwxKX0sdHlwZToibmV4dCIsZGlzYWJsZWQ6bD09PWctMX0pOnZvaWQgMCxRPWooe2ljb246SyxvbkNsaWNrOmIsdHlwZToiZmxpcFkifSksTD1qKHtpY29uOmVlLG9uQ2xpY2s6dix0eXBlOiJmbGlwWCJ9KSxyZT1qKHtpY29uOmssb25DbGljazpDLHR5cGU6InJvdGF0ZUxlZnQifSksVz1qKHtpY29uOkIsb25DbGljazp5LHR5cGU6InJvdGF0ZVJpZ2h0In0pLEo9aih7aWNvbjpWLG9uQ2xpY2s6Yyx0eXBlOiJ6b29tT3V0IixkaXNhYmxlZDpwPD1JfSksYWU9aih7aWNvbjpHLG9uQ2xpY2s6RSx0eXBlOiJ6b29tSW4iLGRpc2FibGVkOnA9PT1QfSksY2U9by5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KGksIi1vcGVyYXRpb25zIil9LFEsTCxyZSxXLEosYWUpO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQocHQuWlAse3Zpc2libGU6bixtb3Rpb25OYW1lOnJ9LGZ1bmN0aW9uKEEpe3ZhciAkPUEuY2xhc3NOYW1lLHo9QS5zdHlsZTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KEN0Llose29wZW46ITAsZ2V0Q29udGFpbmVyOmEhPW51bGw/YTpkb2N1bWVudC5ib2R5fSxvLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpxKCkoIiIuY29uY2F0KGksIi1vcGVyYXRpb25zLXdyYXBwZXIiKSwkLGYpLHN0eWxlOigwLFIuWikoKDAsUi5aKSh7fSx6KSx7fSx7ekluZGV4Ok59KX0sUz09PW51bGw/bnVsbDpvLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIse2NsYXNzTmFtZToiIi5jb25jYXQoaSwiLWNsb3NlIiksb25DbGljazpNfSxTfHxfKSxkJiZvLmNyZWF0ZUVsZW1lbnQoby5GcmFnbWVudCxudWxsLG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnEoKSgiIi5jb25jYXQoaSwiLXN3aXRjaC1sZWZ0IiksKDAsaWUuWikoe30sIiIuY29uY2F0KGksIi1zd2l0Y2gtbGVmdC1kaXNhYmxlZCIpLGw9PT0wKSksb25DbGljazpmdW5jdGlvbihZKXtyZXR1cm4gdGUoWSwtMSl9fSxIKSxvLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpxKCkoIiIuY29uY2F0KGksIi1zd2l0Y2gtcmlnaHQiKSwoMCxpZS5aKSh7fSwiIi5jb25jYXQoaSwiLXN3aXRjaC1yaWdodC1kaXNhYmxlZCIpLGw9PT1nLTEpKSxvbkNsaWNrOmZ1bmN0aW9uKFkpe3JldHVybiB0ZShZLDEpfX0sVSkpLG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdChpLCItZm9vdGVyIil9LGgmJm8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdChpLCItcHJvZ3Jlc3MiKX0sdT91KGwrMSxnKToiIi5jb25jYXQobCsxLCIgLyAiKS5jb25jYXQoZykpLHc/dyhjZSwoMCxSLlopKCgwLFIuWikoe2ljb25zOntwcmV2SWNvbjpsZSxuZXh0SWNvbjpuZSxmbGlwWUljb246USxmbGlwWEljb246TCxyb3RhdGVMZWZ0SWNvbjpyZSxyb3RhdGVSaWdodEljb246Vyx6b29tT3V0SWNvbjpKLHpvb21Jbkljb246YWV9LGFjdGlvbnM6e29uQWN0aXZlOlQsb25GbGlwWTpiLG9uRmxpcFg6dixvblJvdGF0ZUxlZnQ6QyxvblJvdGF0ZVJpZ2h0Onksb25ab29tT3V0OmMsb25ab29tSW46RSxvblJlc2V0Olosb25DbG9zZTpNfSx0cmFuc2Zvcm06eH0sTz97Y3VycmVudDpsLHRvdGFsOmd9Ont9KSx7fSx7aW1hZ2U6WH0pKTpjZSkpKX0pfSxTdD13dCx4dD1tKDkxODgxKSxJdD1tKDc1MTY0KSxiZT17eDowLHk6MCxyb3RhdGU6MCxzY2FsZToxLGZsaXBYOiExLGZsaXBZOiExfTtmdW5jdGlvbiB5dCh0LGUsbixyKXt2YXIgYT0oMCxvLnVzZVJlZikobnVsbCksaT0oMCxvLnVzZVJlZikoW10pLGY9KDAsby51c2VTdGF0ZSkoYmUpLHM9KDAsRC5aKShmLDIpLHU9c1swXSxkPXNbMV0saD1mdW5jdGlvbihwKXtkKGJlKSwoMCx4dC5aKShiZSx1KXx8cj09bnVsbHx8cih7dHJhbnNmb3JtOmJlLGFjdGlvbjpwfSl9LGw9ZnVuY3Rpb24ocCxJKXthLmN1cnJlbnQ9PT1udWxsJiYoaS5jdXJyZW50PVtdLGEuY3VycmVudD0oMCxJdC5aKShmdW5jdGlvbigpe2QoZnVuY3Rpb24oUCl7dmFyIFM9UDtyZXR1cm4gaS5jdXJyZW50LmZvckVhY2goZnVuY3Rpb24oVCl7Uz0oMCxSLlopKCgwLFIuWikoe30sUyksVCl9KSxhLmN1cnJlbnQ9bnVsbCxyPT1udWxsfHxyKHt0cmFuc2Zvcm06UyxhY3Rpb246SX0pLFN9KX0pKSxpLmN1cnJlbnQucHVzaCgoMCxSLlopKCgwLFIuWikoe30sdSkscCkpfSx4PWZ1bmN0aW9uKHAsSSxQLFMsVCl7dmFyIE09dC5jdXJyZW50LEU9TS53aWR0aCxjPU0uaGVpZ2h0LHk9TS5vZmZzZXRXaWR0aCxDPU0ub2Zmc2V0SGVpZ2h0LHY9TS5vZmZzZXRMZWZ0LGI9TS5vZmZzZXRUb3AsWj1wLHc9dS5zY2FsZSpwO3c+bj8odz1uLFo9bi91LnNjYWxlKTp3PGUmJih3PVQ/dzplLFo9dy91LnNjYWxlKTt2YXIgTj1QIT1udWxsP1A6aW5uZXJXaWR0aC8yLFg9UyE9bnVsbD9TOmlubmVySGVpZ2h0LzIsTz1aLTEsaz1PKkUqLjUsQj1PKmMqLjUsRz1PKihOLXUueC12KSxWPU8qKFgtdS55LWIpLF89dS54LShHLWspLEg9dS55LShWLUIpO2lmKHA8MSYmdz09PTEpe3ZhciBVPXkqdyxlZT1DKncsSz1CZSgpLHNlPUsud2lkdGgsdGU9Sy5oZWlnaHQ7VTw9c2UmJmVlPD10ZSYmKF89MCxIPTApfWwoe3g6Xyx5Okgsc2NhbGU6d30sSSl9O3JldHVybnt0cmFuc2Zvcm06dSxyZXNldFRyYW5zZm9ybTpoLHVwZGF0ZVRyYW5zZm9ybTpsLGRpc3BhdGNoWm9vbUNoYW5nZTp4fX12YXIgYnQ9bSg4MDMzNCk7ZnVuY3Rpb24gR2UodCxlLG4scil7dmFyIGE9ZStuLGk9KG4tcikvMjtpZihuPnIpe2lmKGU+MClyZXR1cm4oMCxpZS5aKSh7fSx0LGkpO2lmKGU8MCYmYTxyKXJldHVybigwLGllLlopKHt9LHQsLWkpfWVsc2UgaWYoZTwwfHxhPnIpcmV0dXJuKDAsaWUuWikoe30sdCxlPDA/aTotaSk7cmV0dXJue319ZnVuY3Rpb24gVmUodCxlLG4scil7dmFyIGE9QmUoKSxpPWEud2lkdGgsZj1hLmhlaWdodCxzPW51bGw7cmV0dXJuIHQ8PWkmJmU8PWY/cz17eDowLHk6MH06KHQ+aXx8ZT5mKSYmKHM9KDAsUi5aKSgoMCxSLlopKHt9LEdlKCJ4IixuLHQsaSkpLEdlKCJ5IixyLGUsZikpKSxzfXZhciB4ZT0xLFp0PTE7ZnVuY3Rpb24gUHQodCxlLG4scixhLGksZil7dmFyIHM9YS5yb3RhdGUsdT1hLnNjYWxlLGQ9YS54LGg9YS55LGw9KDAsby51c2VTdGF0ZSkoITEpLHg9KDAsRC5aKShsLDIpLGc9eFswXSxwPXhbMV0sST0oMCxvLnVzZVJlZikoe2RpZmZYOjAsZGlmZlk6MCx0cmFuc2Zvcm1YOjAsdHJhbnNmb3JtWTowfSksUD1mdW5jdGlvbihjKXshZXx8Yy5idXR0b24hPT0wfHwoYy5wcmV2ZW50RGVmYXVsdCgpLGMuc3RvcFByb3BhZ2F0aW9uKCksSS5jdXJyZW50PXtkaWZmWDpjLnBhZ2VYLWQsZGlmZlk6Yy5wYWdlWS1oLHRyYW5zZm9ybVg6ZCx0cmFuc2Zvcm1ZOmh9LHAoITApKX0sUz1mdW5jdGlvbihjKXtuJiZnJiZpKHt4OmMucGFnZVgtSS5jdXJyZW50LmRpZmZYLHk6Yy5wYWdlWS1JLmN1cnJlbnQuZGlmZll9LCJtb3ZlIil9LFQ9ZnVuY3Rpb24oKXtpZihuJiZnKXtwKCExKTt2YXIgYz1JLmN1cnJlbnQseT1jLnRyYW5zZm9ybVgsQz1jLnRyYW5zZm9ybVksdj1kIT09eSYmaCE9PUM7aWYoIXYpcmV0dXJuO3ZhciBiPXQuY3VycmVudC5vZmZzZXRXaWR0aCp1LFo9dC5jdXJyZW50Lm9mZnNldEhlaWdodCp1LHc9dC5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLE49dy5sZWZ0LFg9dy50b3AsTz1zJTE4MCE9PTAsaz1WZShPP1o6YixPP2I6WixOLFgpO2smJmkoKDAsUi5aKSh7fSxrKSwiZHJhZ1JlYm91bmQiKX19LE09ZnVuY3Rpb24oYyl7aWYoISghbnx8Yy5kZWx0YVk9PTApKXt2YXIgeT1NYXRoLmFicyhjLmRlbHRhWS8xMDApLEM9TWF0aC5taW4oeSxadCksdj14ZStDKnI7Yy5kZWx0YVk+MCYmKHY9eGUvdiksZih2LCJ3aGVlbCIsYy5jbGllbnRYLGMuY2xpZW50WSl9fTtyZXR1cm4oMCxvLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXt2YXIgRSxjLHksQztpZihlKXt5PSgwLFNlLlopKHdpbmRvdywibW91c2V1cCIsVCwhMSksQz0oMCxTZS5aKSh3aW5kb3csIm1vdXNlbW92ZSIsUywhMSk7dHJ5e3dpbmRvdy50b3AhPT13aW5kb3cuc2VsZiYmKEU9KDAsU2UuWikod2luZG93LnRvcCwibW91c2V1cCIsVCwhMSksYz0oMCxTZS5aKSh3aW5kb3cudG9wLCJtb3VzZW1vdmUiLFMsITEpKX1jYXRjaCh2KXsoMCxidC5LcCkoITEsIltyYy1pbWFnZV0gIi5jb25jYXQodikpfX1yZXR1cm4gZnVuY3Rpb24oKXt2YXIgdixiLFosdzsodj15KT09PW51bGx8fHY9PT12b2lkIDB8fHYucmVtb3ZlKCksKGI9Qyk9PT1udWxsfHxiPT09dm9pZCAwfHxiLnJlbW92ZSgpLChaPUUpPT09bnVsbHx8Wj09PXZvaWQgMHx8Wi5yZW1vdmUoKSwodz1jKT09PW51bGx8fHc9PT12b2lkIDB8fHcucmVtb3ZlKCl9fSxbbixnLGQsaCxzLGVdKSx7aXNNb3Zpbmc6Zyxvbk1vdXNlRG93bjpQLG9uTW91c2VNb3ZlOlMsb25Nb3VzZVVwOlQsb25XaGVlbDpNfX1mdW5jdGlvbiBNdCh0KXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oZSl7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7bi5vbmVycm9yPWZ1bmN0aW9uKCl7cmV0dXJuIGUoITEpfSxuLm9ubG9hZD1mdW5jdGlvbigpe3JldHVybiBlKCEwKX0sbi5zcmM9dH0pfWZ1bmN0aW9uIFVlKHQpe3ZhciBlPXQuc3JjLG49dC5pc0N1c3RvbVBsYWNlaG9sZGVyLHI9dC5mYWxsYmFjayxhPSgwLG8udXNlU3RhdGUpKG4/ImxvYWRpbmciOiJub3JtYWwiKSxpPSgwLEQuWikoYSwyKSxmPWlbMF0scz1pWzFdLHU9KDAsby51c2VSZWYpKCExKSxkPWY9PT0iZXJyb3IiOygwLG8udXNlRWZmZWN0KShmdW5jdGlvbigpe3ZhciBnPSEwO3JldHVybiBNdChlKS50aGVuKGZ1bmN0aW9uKHApeyFwJiZnJiZzKCJlcnJvciIpfSksZnVuY3Rpb24oKXtnPSExfX0sW2VdKSwoMCxvLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtuJiYhdS5jdXJyZW50P3MoImxvYWRpbmciKTpkJiZzKCJub3JtYWwiKX0sW2VdKTt2YXIgaD1mdW5jdGlvbigpe3MoIm5vcm1hbCIpfSxsPWZ1bmN0aW9uKHApe3UuY3VycmVudD0hMSxmPT09ImxvYWRpbmciJiZwIT09bnVsbCYmcCE9PXZvaWQgMCYmcC5jb21wbGV0ZSYmKHAubmF0dXJhbFdpZHRofHxwLm5hdHVyYWxIZWlnaHQpJiYodS5jdXJyZW50PSEwLGgoKSl9LHg9ZCYmcj97c3JjOnJ9OntvbkxvYWQ6aCxzcmM6ZX07cmV0dXJuW2wseCxmXX1mdW5jdGlvbiBaZSh0LGUpe3ZhciBuPXQueC1lLngscj10LnktZS55O3JldHVybiBNYXRoLmh5cG90KG4scil9ZnVuY3Rpb24gRXQodCxlLG4scil7dmFyIGE9WmUodCxuKSxpPVplKGUscik7aWYoYT09PTAmJmk9PT0wKXJldHVyblt0LngsdC55XTt2YXIgZj1hLyhhK2kpLHM9dC54K2YqKGUueC10LngpLHU9dC55K2YqKGUueS10LnkpO3JldHVybltzLHVdfWZ1bmN0aW9uIFJ0KHQsZSxuLHIsYSxpLGYpe3ZhciBzPWEucm90YXRlLHU9YS5zY2FsZSxkPWEueCxoPWEueSxsPSgwLG8udXNlU3RhdGUpKCExKSx4PSgwLEQuWikobCwyKSxnPXhbMF0scD14WzFdLEk9KDAsby51c2VSZWYpKHtwb2ludDE6e3g6MCx5OjB9LHBvaW50Mjp7eDowLHk6MH0sZXZlbnRUeXBlOiJub25lIn0pLFA9ZnVuY3Rpb24oYyl7SS5jdXJyZW50PSgwLFIuWikoKDAsUi5aKSh7fSxJLmN1cnJlbnQpLGMpfSxTPWZ1bmN0aW9uKGMpe2lmKGUpe2Muc3RvcFByb3BhZ2F0aW9uKCkscCghMCk7dmFyIHk9Yy50b3VjaGVzLEM9eT09PXZvaWQgMD9bXTp5O0MubGVuZ3RoPjE/UCh7cG9pbnQxOnt4OkNbMF0uY2xpZW50WCx5OkNbMF0uY2xpZW50WX0scG9pbnQyOnt4OkNbMV0uY2xpZW50WCx5OkNbMV0uY2xpZW50WX0sZXZlbnRUeXBlOiJ0b3VjaFpvb20ifSk6UCh7cG9pbnQxOnt4OkNbMF0uY2xpZW50WC1kLHk6Q1swXS5jbGllbnRZLWh9LGV2ZW50VHlwZToibW92ZSJ9KX19LFQ9ZnVuY3Rpb24oYyl7dmFyIHk9Yy50b3VjaGVzLEM9eT09PXZvaWQgMD9bXTp5LHY9SS5jdXJyZW50LGI9di5wb2ludDEsWj12LnBvaW50Mix3PXYuZXZlbnRUeXBlO2lmKEMubGVuZ3RoPjEmJnc9PT0idG91Y2hab29tIil7dmFyIE49e3g6Q1swXS5jbGllbnRYLHk6Q1swXS5jbGllbnRZfSxYPXt4OkNbMV0uY2xpZW50WCx5OkNbMV0uY2xpZW50WX0sTz1FdChiLFosTixYKSxrPSgwLEQuWikoTywyKSxCPWtbMF0sRz1rWzFdLFY9WmUoTixYKS9aZShiLFopO2YoViwidG91Y2hab29tIixCLEcsITApLFAoe3BvaW50MTpOLHBvaW50MjpYLGV2ZW50VHlwZToidG91Y2hab29tIn0pfWVsc2Ugdz09PSJtb3ZlIiYmKGkoe3g6Q1swXS5jbGllbnRYLWIueCx5OkNbMF0uY2xpZW50WS1iLnl9LCJtb3ZlIiksUCh7ZXZlbnRUeXBlOiJtb3ZlIn0pKX0sTT1mdW5jdGlvbigpe2lmKG4pe2lmKGcmJnAoITEpLFAoe2V2ZW50VHlwZToibm9uZSJ9KSxyPnUpcmV0dXJuIGkoe3g6MCx5OjAsc2NhbGU6cn0sInRvdWNoWm9vbSIpO3ZhciBjPXQuY3VycmVudC5vZmZzZXRXaWR0aCp1LHk9dC5jdXJyZW50Lm9mZnNldEhlaWdodCp1LEM9dC5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHY9Qy5sZWZ0LGI9Qy50b3AsWj1zJTE4MCE9PTAsdz1WZShaP3k6YyxaP2M6eSx2LGIpO3cmJmkoKDAsUi5aKSh7fSx3KSwiZHJhZ1JlYm91bmQiKX19O3JldHVybigwLG8udXNlRWZmZWN0KShmdW5jdGlvbigpe3ZhciBFO3JldHVybiBuJiZlJiYoRT0oMCxTZS5aKSh3aW5kb3csInRvdWNobW92ZSIsZnVuY3Rpb24oYyl7cmV0dXJuIGMucHJldmVudERlZmF1bHQoKX0se3Bhc3NpdmU6ITF9KSksZnVuY3Rpb24oKXt2YXIgYzsoYz1FKT09PW51bGx8fGM9PT12b2lkIDB8fGMucmVtb3ZlKCl9fSxbbixlXSkse2lzVG91Y2hpbmc6ZyxvblRvdWNoU3RhcnQ6UyxvblRvdWNoTW92ZTpULG9uVG91Y2hFbmQ6TX19dmFyIE50PVsiZmFsbGJhY2siLCJzcmMiLCJpbWdSZWYiXSxUdD1bInByZWZpeENscyIsInNyYyIsImFsdCIsImltYWdlSW5mbyIsImZhbGxiYWNrIiwibW92YWJsZSIsIm9uQ2xvc2UiLCJ2aXNpYmxlIiwiaWNvbnMiLCJyb290Q2xhc3NOYW1lIiwiY2xvc2VJY29uIiwiZ2V0Q29udGFpbmVyIiwiY3VycmVudCIsImNvdW50IiwiY291bnRSZW5kZXIiLCJzY2FsZVN0ZXAiLCJtaW5TY2FsZSIsIm1heFNjYWxlIiwidHJhbnNpdGlvbk5hbWUiLCJtYXNrVHJhbnNpdGlvbk5hbWUiLCJpbWFnZVJlbmRlciIsImltZ0NvbW1vblByb3BzIiwidG9vbGJhclJlbmRlciIsIm9uVHJhbnNmb3JtIiwib25DaGFuZ2UiXSxPdD1mdW5jdGlvbihlKXt2YXIgbj1lLmZhbGxiYWNrLHI9ZS5zcmMsYT1lLmltZ1JlZixpPSgwLHdlLlopKGUsTnQpLGY9VWUoe3NyYzpyLGZhbGxiYWNrOm59KSxzPSgwLEQuWikoZiwyKSx1PXNbMF0sZD1zWzFdO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoImltZyIsKDAsaGUuWikoe3JlZjpmdW5jdGlvbihsKXthLmN1cnJlbnQ9bCx1KGwpfX0saSxkKSl9LEx0PWZ1bmN0aW9uKGUpe3ZhciBuPWUucHJlZml4Q2xzLHI9ZS5zcmMsYT1lLmFsdCxpPWUuaW1hZ2VJbmZvLGY9ZS5mYWxsYmFjayxzPWUubW92YWJsZSx1PXM9PT12b2lkIDA/ITA6cyxkPWUub25DbG9zZSxoPWUudmlzaWJsZSxsPWUuaWNvbnMseD1sPT09dm9pZCAwP3t9OmwsZz1lLnJvb3RDbGFzc05hbWUscD1lLmNsb3NlSWNvbixJPWUuZ2V0Q29udGFpbmVyLFA9ZS5jdXJyZW50LFM9UD09PXZvaWQgMD8wOlAsVD1lLmNvdW50LE09VD09PXZvaWQgMD8xOlQsRT1lLmNvdW50UmVuZGVyLGM9ZS5zY2FsZVN0ZXAseT1jPT09dm9pZCAwPy41OmMsQz1lLm1pblNjYWxlLHY9Qz09PXZvaWQgMD8xOkMsYj1lLm1heFNjYWxlLFo9Yj09PXZvaWQgMD81MDpiLHc9ZS50cmFuc2l0aW9uTmFtZSxOPXc9PT12b2lkIDA/Inpvb20iOncsWD1lLm1hc2tUcmFuc2l0aW9uTmFtZSxPPVg9PT12b2lkIDA/ImZhZGUiOlgsaz1lLmltYWdlUmVuZGVyLEI9ZS5pbWdDb21tb25Qcm9wcyxHPWUudG9vbGJhclJlbmRlcixWPWUub25UcmFuc2Zvcm0sXz1lLm9uQ2hhbmdlLEg9KDAsd2UuWikoZSxUdCksVT0oMCxvLnVzZVJlZikoKSxlZT0oMCxvLnVzZUNvbnRleHQpKHllKSxLPWVlJiZNPjEsc2U9ZWUmJk0+PTEsdGU9KDAsby51c2VTdGF0ZSkoITApLGo9KDAsRC5aKSh0ZSwyKSxsZT1qWzBdLG5lPWpbMV0sUT15dChVLHYsWixWKSxMPVEudHJhbnNmb3JtLHJlPVEucmVzZXRUcmFuc2Zvcm0sVz1RLnVwZGF0ZVRyYW5zZm9ybSxKPVEuZGlzcGF0Y2hab29tQ2hhbmdlLGFlPVB0KFUsdSxoLHksTCxXLEopLGNlPWFlLmlzTW92aW5nLEE9YWUub25Nb3VzZURvd24sJD1hZS5vbldoZWVsLHo9UnQoVSx1LGgsdixMLFcsSiksRj16LmlzVG91Y2hpbmcsWT16Lm9uVG91Y2hTdGFydCx2ZT16Lm9uVG91Y2hNb3ZlLHBlPXoub25Ub3VjaEVuZCx1ZT1MLnJvdGF0ZSxmZT1MLnNjYWxlLHplPXEoKSgoMCxpZS5aKSh7fSwiIi5jb25jYXQobiwiLW1vdmluZyIpLGNlKSk7KDAsby51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7bGV8fG5lKCEwKX0sW2xlXSk7dmFyIGplPWZ1bmN0aW9uKCl7cmUoImNsb3NlIil9LERlPWZ1bmN0aW9uKCl7Sih4ZSt5LCJ6b29tSW4iKX0sZGU9ZnVuY3Rpb24oKXtKKHhlLyh4ZSt5KSwiem9vbU91dCIpfSxtZT1mdW5jdGlvbigpe1coe3JvdGF0ZTp1ZSs5MH0sInJvdGF0ZVJpZ2h0Iil9LE1lPWZ1bmN0aW9uKCl7Vyh7cm90YXRlOnVlLTkwfSwicm90YXRlTGVmdCIpfSxFZT1mdW5jdGlvbigpe1coe2ZsaXBYOiFMLmZsaXBYfSwiZmxpcFgiKX0sUmU9ZnVuY3Rpb24oKXtXKHtmbGlwWTohTC5mbGlwWX0sImZsaXBZIil9LG1uPWZ1bmN0aW9uKCl7cmUoInJlc2V0Iil9LFhlPWZ1bmN0aW9uKGdlKXt2YXIgTmU9UytnZTshTnVtYmVyLmlzSW50ZWdlcihOZSl8fE5lPDB8fE5lPk0tMXx8KG5lKCExKSxyZShnZTwwPyJwcmV2IjoibmV4dCIpLF89PW51bGx8fF8oTmUsUykpfSxnbj1mdW5jdGlvbihnZSl7IWh8fCFLfHwoZ2Uua2V5Q29kZT09PUxlLlouTEVGVD9YZSgtMSk6Z2Uua2V5Q29kZT09PUxlLlouUklHSFQmJlhlKDEpKX0saG49ZnVuY3Rpb24oZ2Upe2gmJihmZSE9PTE/Vyh7eDowLHk6MCxzY2FsZToxfSwiZG91YmxlQ2xpY2siKTpKKHhlK3ksImRvdWJsZUNsaWNrIixnZS5jbGllbnRYLGdlLmNsaWVudFkpKX07KDAsby51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7dmFyIG9lPSgwLFNlLlopKHdpbmRvdywia2V5ZG93biIsZ24sITEpO3JldHVybiBmdW5jdGlvbigpe29lLnJlbW92ZSgpfX0sW2gsSyxTXSk7dmFyIGN0PW8uY3JlYXRlRWxlbWVudChPdCwoMCxoZS5aKSh7fSxCLHt3aWR0aDplLndpZHRoLGhlaWdodDplLmhlaWdodCxpbWdSZWY6VSxjbGFzc05hbWU6IiIuY29uY2F0KG4sIi1pbWciKSxhbHQ6YSxzdHlsZTp7dHJhbnNmb3JtOiJ0cmFuc2xhdGUzZCgiLmNvbmNhdChMLngsInB4LCAiKS5jb25jYXQoTC55LCJweCwgMCkgc2NhbGUzZCgiKS5jb25jYXQoTC5mbGlwWD8iLSI6IiIpLmNvbmNhdChmZSwiLCAiKS5jb25jYXQoTC5mbGlwWT8iLSI6IiIpLmNvbmNhdChmZSwiLCAxKSByb3RhdGUoIikuY29uY2F0KHVlLCJkZWcpIiksdHJhbnNpdGlvbkR1cmF0aW9uOighbGV8fEYpJiYiMHMifSxmYWxsYmFjazpmLHNyYzpyLG9uV2hlZWw6JCxvbk1vdXNlRG93bjpBLG9uRG91YmxlQ2xpY2s6aG4sb25Ub3VjaFN0YXJ0Olksb25Ub3VjaE1vdmU6dmUsb25Ub3VjaEVuZDpwZSxvblRvdWNoQ2FuY2VsOnBlfSkpLHV0PSgwLFIuWikoe3VybDpyLGFsdDphfSxpKTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KG8uRnJhZ21lbnQsbnVsbCxvLmNyZWF0ZUVsZW1lbnQoaHQuWiwoMCxoZS5aKSh7dHJhbnNpdGlvbk5hbWU6TixtYXNrVHJhbnNpdGlvbk5hbWU6TyxjbG9zYWJsZTohMSxrZXlib2FyZDohMCxwcmVmaXhDbHM6bixvbkNsb3NlOmQsdmlzaWJsZTpoLGNsYXNzTmFtZXM6e3dyYXBwZXI6emV9LHJvb3RDbGFzc05hbWU6ZyxnZXRDb250YWluZXI6SX0sSCx7YWZ0ZXJDbG9zZTpqZX0pLG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdChuLCItaW1nLXdyYXBwZXIiKX0saz9rKGN0LCgwLFIuWikoe3RyYW5zZm9ybTpMLGltYWdlOnV0fSxlZT97Y3VycmVudDpTfTp7fSkpOmN0KSksby5jcmVhdGVFbGVtZW50KFN0LHt2aXNpYmxlOmgsdHJhbnNmb3JtOkwsbWFza1RyYW5zaXRpb25OYW1lOk8sY2xvc2VJY29uOnAsZ2V0Q29udGFpbmVyOkkscHJlZml4Q2xzOm4scm9vdENsYXNzTmFtZTpnLGljb25zOngsY291bnRSZW5kZXI6RSxzaG93U3dpdGNoOkssc2hvd1Byb2dyZXNzOnNlLGN1cnJlbnQ6Uyxjb3VudDpNLHNjYWxlOmZlLG1pblNjYWxlOnYsbWF4U2NhbGU6Wix0b29sYmFyUmVuZGVyOkcsb25BY3RpdmU6WGUsb25ab29tSW46RGUsb25ab29tT3V0OmRlLG9uUm90YXRlUmlnaHQ6bWUsb25Sb3RhdGVMZWZ0Ok1lLG9uRmxpcFg6RWUsb25GbGlwWTpSZSxvbkNsb3NlOmQsb25SZXNldDptbix6SW5kZXg6SC56SW5kZXghPT12b2lkIDA/SC56SW5kZXgrMTp2b2lkIDAsaW1hZ2U6dXR9KSl9LEtlPUx0LEF0PW0oNzQ5MDIpLEFlPVsiY3Jvc3NPcmlnaW4iLCJkZWNvZGluZyIsImRyYWdnYWJsZSIsImxvYWRpbmciLCJyZWZlcnJlclBvbGljeSIsInNpemVzIiwic3JjU2V0IiwidXNlTWFwIiwiYWx0Il07ZnVuY3Rpb24gJHQodCl7dmFyIGU9by51c2VTdGF0ZSh7fSksbj0oMCxELlopKGUsMikscj1uWzBdLGE9blsxXSxpPW8udXNlQ2FsbGJhY2soZnVuY3Rpb24ocyx1KXtyZXR1cm4gYShmdW5jdGlvbihkKXtyZXR1cm4oMCxSLlopKCgwLFIuWikoe30sZCkse30sKDAsaWUuWikoe30scyx1KSl9KSxmdW5jdGlvbigpe2EoZnVuY3Rpb24oZCl7dmFyIGg9KDAsUi5aKSh7fSxkKTtyZXR1cm4gZGVsZXRlIGhbc10saH0pfX0sW10pLGY9by51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJuIHQ/dC5tYXAoZnVuY3Rpb24ocyl7aWYodHlwZW9mIHM9PSJzdHJpbmciKXJldHVybntkYXRhOntzcmM6c319O3ZhciB1PXt9O3JldHVybiBPYmplY3Qua2V5cyhzKS5mb3JFYWNoKGZ1bmN0aW9uKGQpe1sic3JjIl0uY29uY2F0KCgwLEF0LlopKEFlKSkuaW5jbHVkZXMoZCkmJih1W2RdPXNbZF0pfSkse2RhdGE6dX19KTpPYmplY3Qua2V5cyhyKS5yZWR1Y2UoZnVuY3Rpb24ocyx1KXt2YXIgZD1yW3VdLGg9ZC5jYW5QcmV2aWV3LGw9ZC5kYXRhO3JldHVybiBoJiZzLnB1c2goe2RhdGE6bCxpZDp1fSksc30sW10pfSxbdCxyXSk7cmV0dXJuW2YsaSwhIXRdfXZhciB6dD1bInZpc2libGUiLCJvblZpc2libGVDaGFuZ2UiLCJnZXRDb250YWluZXIiLCJjdXJyZW50IiwibW92YWJsZSIsIm1pblNjYWxlIiwibWF4U2NhbGUiLCJjb3VudFJlbmRlciIsImNsb3NlSWNvbiIsIm9uQ2hhbmdlIiwib25UcmFuc2Zvcm0iLCJ0b29sYmFyUmVuZGVyIiwiaW1hZ2VSZW5kZXIiXSxqdD1bInNyYyJdLER0PWZ1bmN0aW9uKGUpe3ZhciBuLHI9ZS5wcmV2aWV3UHJlZml4Q2xzLGE9cj09PXZvaWQgMD8icmMtaW1hZ2UtcHJldmlldyI6cixpPWUuY2hpbGRyZW4sZj1lLmljb25zLHM9Zj09PXZvaWQgMD97fTpmLHU9ZS5pdGVtcyxkPWUucHJldmlldyxoPWUuZmFsbGJhY2ssbD0oMCxrZS5aKShkKT09PSJvYmplY3QiP2Q6e30seD1sLnZpc2libGUsZz1sLm9uVmlzaWJsZUNoYW5nZSxwPWwuZ2V0Q29udGFpbmVyLEk9bC5jdXJyZW50LFA9bC5tb3ZhYmxlLFM9bC5taW5TY2FsZSxUPWwubWF4U2NhbGUsTT1sLmNvdW50UmVuZGVyLEU9bC5jbG9zZUljb24sYz1sLm9uQ2hhbmdlLHk9bC5vblRyYW5zZm9ybSxDPWwudG9vbGJhclJlbmRlcix2PWwuaW1hZ2VSZW5kZXIsYj0oMCx3ZS5aKShsLHp0KSxaPSR0KHUpLHc9KDAsRC5aKShaLDMpLE49d1swXSxYPXdbMV0sTz13WzJdLGs9KDAsT2UuWikoMCx7dmFsdWU6SX0pLEI9KDAsRC5aKShrLDIpLEc9QlswXSxWPUJbMV0sXz0oMCxvLnVzZVN0YXRlKSghMSksSD0oMCxELlopKF8sMiksVT1IWzBdLGVlPUhbMV0sSz0oKG49TltHXSk9PT1udWxsfHxuPT09dm9pZCAwP3ZvaWQgMDpuLmRhdGEpfHx7fSxzZT1LLnNyYyx0ZT0oMCx3ZS5aKShLLGp0KSxqPSgwLE9lLlopKCEheCx7dmFsdWU6eCxvbkNoYW5nZTpmdW5jdGlvbihGLFkpe2c9PW51bGx8fGcoRixZLEcpfX0pLGxlPSgwLEQuWikoaiwyKSxuZT1sZVswXSxRPWxlWzFdLEw9KDAsby51c2VTdGF0ZSkobnVsbCkscmU9KDAsRC5aKShMLDIpLFc9cmVbMF0sSj1yZVsxXSxhZT1vLnVzZUNhbGxiYWNrKGZ1bmN0aW9uKHosRixZLHZlKXt2YXIgcGU9Tz9OLmZpbmRJbmRleChmdW5jdGlvbih1ZSl7cmV0dXJuIHVlLmRhdGEuc3JjPT09Rn0pOk4uZmluZEluZGV4KGZ1bmN0aW9uKHVlKXtyZXR1cm4gdWUuaWQ9PT16fSk7VihwZTwwPzA6cGUpLFEoITApLEooe3g6WSx5OnZlfSksZWUoITApfSxbTixPXSk7by51c2VFZmZlY3QoZnVuY3Rpb24oKXtuZT9VfHxWKDApOmVlKCExKX0sW25lXSk7dmFyIGNlPWZ1bmN0aW9uKEYsWSl7VihGKSxjPT1udWxsfHxjKEYsWSl9LEE9ZnVuY3Rpb24oKXtRKCExKSxKKG51bGwpfSwkPW8udXNlTWVtbyhmdW5jdGlvbigpe3JldHVybntyZWdpc3RlcjpYLG9uUHJldmlldzphZX19LFtYLGFlXSk7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCh5ZS5Qcm92aWRlcix7dmFsdWU6JH0saSxvLmNyZWF0ZUVsZW1lbnQoS2UsKDAsaGUuWikoeyJhcmlhLWhpZGRlbiI6IW5lLG1vdmFibGU6UCx2aXNpYmxlOm5lLHByZWZpeENsczphLGNsb3NlSWNvbjpFLG9uQ2xvc2U6QSxtb3VzZVBvc2l0aW9uOlcsaW1nQ29tbW9uUHJvcHM6dGUsc3JjOnNlLGZhbGxiYWNrOmgsaWNvbnM6cyxtaW5TY2FsZTpTLG1heFNjYWxlOlQsZ2V0Q29udGFpbmVyOnAsY3VycmVudDpHLGNvdW50Ok4ubGVuZ3RoLGNvdW50UmVuZGVyOk0sb25UcmFuc2Zvcm06eSx0b29sYmFyUmVuZGVyOkMsaW1hZ2VSZW5kZXI6dixvbkNoYW5nZTpjZX0sYikpKX0sWHQ9RHQsUWU9MDtmdW5jdGlvbiBZdCh0LGUpe3ZhciBuPW8udXNlU3RhdGUoZnVuY3Rpb24oKXtyZXR1cm4gUWUrPTEsU3RyaW5nKFFlKX0pLHI9KDAsRC5aKShuLDEpLGE9clswXSxpPW8udXNlQ29udGV4dCh5ZSksZj17ZGF0YTplLGNhblByZXZpZXc6dH07cmV0dXJuIG8udXNlRWZmZWN0KGZ1bmN0aW9uKCl7aWYoaSlyZXR1cm4gaS5yZWdpc3RlcihhLGYpfSxbXSksby51c2VFZmZlY3QoZnVuY3Rpb24oKXtpJiZpLnJlZ2lzdGVyKGEsZil9LFt0LGVdKSxhfXZhciBrdD1bInNyYyIsImFsdCIsIm9uUHJldmlld0Nsb3NlIiwicHJlZml4Q2xzIiwicHJldmlld1ByZWZpeENscyIsInBsYWNlaG9sZGVyIiwiZmFsbGJhY2siLCJ3aWR0aCIsImhlaWdodCIsInN0eWxlIiwicHJldmlldyIsImNsYXNzTmFtZSIsIm9uQ2xpY2siLCJvbkVycm9yIiwid3JhcHBlckNsYXNzTmFtZSIsIndyYXBwZXJTdHlsZSIsInJvb3RDbGFzc05hbWUiXSxXdD1bInNyYyIsInZpc2libGUiLCJvblZpc2libGVDaGFuZ2UiLCJnZXRDb250YWluZXIiLCJtYXNrIiwibWFza0NsYXNzTmFtZSIsIm1vdmFibGUiLCJpY29ucyIsInNjYWxlU3RlcCIsIm1pblNjYWxlIiwibWF4U2NhbGUiLCJpbWFnZVJlbmRlciIsInRvb2xiYXJSZW5kZXIiXSxKZT1mdW5jdGlvbihlKXt2YXIgbj1lLnNyYyxyPWUuYWx0LGE9ZS5vblByZXZpZXdDbG9zZSxpPWUucHJlZml4Q2xzLGY9aT09PXZvaWQgMD8icmMtaW1hZ2UiOmkscz1lLnByZXZpZXdQcmVmaXhDbHMsdT1zPT09dm9pZCAwPyIiLmNvbmNhdChmLCItcHJldmlldyIpOnMsZD1lLnBsYWNlaG9sZGVyLGg9ZS5mYWxsYmFjayxsPWUud2lkdGgseD1lLmhlaWdodCxnPWUuc3R5bGUscD1lLnByZXZpZXcsST1wPT09dm9pZCAwPyEwOnAsUD1lLmNsYXNzTmFtZSxTPWUub25DbGljayxUPWUub25FcnJvcixNPWUud3JhcHBlckNsYXNzTmFtZSxFPWUud3JhcHBlclN0eWxlLGM9ZS5yb290Q2xhc3NOYW1lLHk9KDAsd2UuWikoZSxrdCksQz1kJiZkIT09ITAsdj0oMCxrZS5aKShJKT09PSJvYmplY3QiP0k6e30sYj12LnNyYyxaPXYudmlzaWJsZSx3PVo9PT12b2lkIDA/dm9pZCAwOlosTj12Lm9uVmlzaWJsZUNoYW5nZSxYPU49PT12b2lkIDA/YTpOLE89di5nZXRDb250YWluZXIsaz1PPT09dm9pZCAwP3ZvaWQgMDpPLEI9di5tYXNrLEc9di5tYXNrQ2xhc3NOYW1lLFY9di5tb3ZhYmxlLF89di5pY29ucyxIPXYuc2NhbGVTdGVwLFU9di5taW5TY2FsZSxlZT12Lm1heFNjYWxlLEs9di5pbWFnZVJlbmRlcixzZT12LnRvb2xiYXJSZW5kZXIsdGU9KDAsd2UuWikodixXdCksaj1iIT1udWxsP2I6bixsZT0oMCxPZS5aKSghIXcse3ZhbHVlOncsb25DaGFuZ2U6WH0pLG5lPSgwLEQuWikobGUsMiksUT1uZVswXSxMPW5lWzFdLHJlPVVlKHtzcmM6bixpc0N1c3RvbVBsYWNlaG9sZGVyOkMsZmFsbGJhY2s6aH0pLFc9KDAsRC5aKShyZSwzKSxKPVdbMF0sYWU9V1sxXSxjZT1XWzJdLEE9KDAsby51c2VTdGF0ZSkobnVsbCksJD0oMCxELlopKEEsMiksej0kWzBdLEY9JFsxXSxZPSgwLG8udXNlQ29udGV4dCkoeWUpLHZlPSEhSSxwZT1mdW5jdGlvbigpe0woITEpLEYobnVsbCl9LHVlPXEoKShmLE0sYywoMCxpZS5aKSh7fSwiIi5jb25jYXQoZiwiLWVycm9yIiksY2U9PT0iZXJyb3IiKSksZmU9KDAsby51c2VNZW1vKShmdW5jdGlvbigpe3ZhciBkZT17fTtyZXR1cm4gQWUuZm9yRWFjaChmdW5jdGlvbihtZSl7ZVttZV0hPT12b2lkIDAmJihkZVttZV09ZVttZV0pfSksZGV9LEFlLm1hcChmdW5jdGlvbihkZSl7cmV0dXJuIGVbZGVdfSkpLHplPSgwLG8udXNlTWVtbykoZnVuY3Rpb24oKXtyZXR1cm4oMCxSLlopKCgwLFIuWikoe30sZmUpLHt9LHtzcmM6an0pfSxbaixmZV0pLGplPVl0KHZlLHplKSxEZT1mdW5jdGlvbihtZSl7dmFyIE1lPWd0KG1lLnRhcmdldCksRWU9TWUubGVmdCxSZT1NZS50b3A7WT9ZLm9uUHJldmlldyhqZSxqLEVlLFJlKTooRih7eDpFZSx5OlJlfSksTCghMCkpLFM9PW51bGx8fFMobWUpfTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KG8uRnJhZ21lbnQsbnVsbCxvLmNyZWF0ZUVsZW1lbnQoImRpdiIsKDAsaGUuWikoe30seSx7Y2xhc3NOYW1lOnVlLG9uQ2xpY2s6dmU/RGU6UyxzdHlsZTooMCxSLlopKHt3aWR0aDpsLGhlaWdodDp4fSxFKX0pLG8uY3JlYXRlRWxlbWVudCgiaW1nIiwoMCxoZS5aKSh7fSxmZSx7Y2xhc3NOYW1lOnEoKSgiIi5jb25jYXQoZiwiLWltZyIpLCgwLGllLlopKHt9LCIiLmNvbmNhdChmLCItaW1nLXBsYWNlaG9sZGVyIiksZD09PSEwKSxQKSxzdHlsZTooMCxSLlopKHtoZWlnaHQ6eH0sZykscmVmOkp9LGFlLHt3aWR0aDpsLGhlaWdodDp4LG9uRXJyb3I6VH0pKSxjZT09PSJsb2FkaW5nIiYmby5jcmVhdGVFbGVtZW50KCJkaXYiLHsiYXJpYS1oaWRkZW4iOiJ0cnVlIixjbGFzc05hbWU6IiIuY29uY2F0KGYsIi1wbGFjZWhvbGRlciIpfSxkKSxCJiZ2ZSYmby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6cSgpKCIiLmNvbmNhdChmLCItbWFzayIpLEcpLHN0eWxlOntkaXNwbGF5OihnPT1udWxsP3ZvaWQgMDpnLmRpc3BsYXkpPT09Im5vbmUiPyJub25lIjp2b2lkIDB9fSxCKSksIVkmJnZlJiZvLmNyZWF0ZUVsZW1lbnQoS2UsKDAsaGUuWikoeyJhcmlhLWhpZGRlbiI6IVEsdmlzaWJsZTpRLHByZWZpeENsczp1LG9uQ2xvc2U6cGUsbW91c2VQb3NpdGlvbjp6LHNyYzpqLGFsdDpyLGltYWdlSW5mbzp7d2lkdGg6bCxoZWlnaHQ6eH0sZmFsbGJhY2s6aCxnZXRDb250YWluZXI6ayxpY29uczpfLG1vdmFibGU6VixzY2FsZVN0ZXA6SCxtaW5TY2FsZTpVLG1heFNjYWxlOmVlLHJvb3RDbGFzc05hbWU6YyxpbWFnZVJlbmRlcjpLLGltZ0NvbW1vblByb3BzOmZlLHRvb2xiYXJSZW5kZXI6c2V9LHRlKSkpfTtKZS5QcmV2aWV3R3JvdXA9WHQ7dmFyIEZ0PUplLHFlPUZ0LF9lPW0oODcyNjMpLFBlPW0oMzM2MDMpLGV0PW0oNTMxMjQpLHR0PW0oMzU3OTIpLEh0PW0oMTAxMTApLEJ0PW0oOTc5MzcpLEd0PW0oNjE3MSksVnQ9bSg5MDgxNCksVXQ9bSg0Mzc0OSksS3Q9bSg1NjQyNCksbnQ9bSg5NDY2OCksUXQ9bSgzNTU5OCksSnQ9bSgxNTY2OCksb3Q9bSgxMTU2OCksQ2U9bSgxNTA2MykscXQ9bSg3MTE5NCksX3Q9bSgxNDc0NyksZW49bSg1MDQzOCksdG49bSgxNjkzMiksbm49bSg4MzU1OSkscnQ9bSg4MzI2Mik7Y29uc3QgJGU9dD0+KHtwb3NpdGlvbjp0fHwiYWJzb2x1dGUiLGluc2V0OjB9KSxvbj10PT57Y29uc3R7aWNvbkNsczplLG1vdGlvbkR1cmF0aW9uU2xvdzpuLHBhZGRpbmdYWFM6cixtYXJnaW5YWFM6YSxwcmVmaXhDbHM6aSxjb2xvclRleHRMaWdodFNvbGlkOmZ9PXQ7cmV0dXJue3Bvc2l0aW9uOiJhYnNvbHV0ZSIsaW5zZXQ6MCxkaXNwbGF5OiJmbGV4IixhbGlnbkl0ZW1zOiJjZW50ZXIiLGp1c3RpZnlDb250ZW50OiJjZW50ZXIiLGNvbG9yOmYsYmFja2dyb3VuZDpuZXcgQ2UudCgiIzAwMCIpLnNldEEoLjUpLnRvUmdiU3RyaW5nKCksY3Vyc29yOiJwb2ludGVyIixvcGFjaXR5OjAsdHJhbnNpdGlvbjpgb3BhY2l0eSAke259YCxbYC4ke2l9LW1hc2staW5mb2BdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxfdC52Uykse3BhZGRpbmc6YDAgJHsoMCxvdC5iZikocil9YCxbZV06e21hcmdpbklubGluZUVuZDphLHN2Zzp7dmVydGljYWxBbGlnbjoiYmFzZWxpbmUifX19KX19LHJuPXQ9Pntjb25zdHtwcmV2aWV3Q2xzOmUsbW9kYWxNYXNrQmc6bixwYWRkaW5nU006cixtYXJnaW5YTDphLG1hcmdpbjppLHBhZGRpbmdMRzpmLHByZXZpZXdPcGVyYXRpb25Db2xvckRpc2FibGVkOnMscHJldmlld09wZXJhdGlvbkhvdmVyQ29sb3I6dSxtb3Rpb25EdXJhdGlvblNsb3c6ZCxpY29uQ2xzOmgsY29sb3JUZXh0TGlnaHRTb2xpZDpsfT10LHg9bmV3IENlLnQobikuc2V0QSguMSksZz14LmNsb25lKCkuc2V0QSguMik7cmV0dXJue1tgJHtlfS1mb290ZXJgXTp7cG9zaXRpb246ImZpeGVkIixib3R0b206YSxsZWZ0Ontfc2tpcF9jaGVja186ITAsdmFsdWU6IjUwJSJ9LGRpc3BsYXk6ImZsZXgiLGZsZXhEaXJlY3Rpb246ImNvbHVtbiIsYWxpZ25JdGVtczoiY2VudGVyIixjb2xvcjp0LnByZXZpZXdPcGVyYXRpb25Db2xvcix0cmFuc2Zvcm06InRyYW5zbGF0ZVgoLTUwJSkifSxbYCR7ZX0tcHJvZ3Jlc3NgXTp7bWFyZ2luQm90dG9tOml9LFtgJHtlfS1jbG9zZWBdOntwb3NpdGlvbjoiZml4ZWQiLHRvcDphLHJpZ2h0Ontfc2tpcF9jaGVja186ITAsdmFsdWU6YX0sZGlzcGxheToiZmxleCIsY29sb3I6bCxiYWNrZ3JvdW5kQ29sb3I6eC50b1JnYlN0cmluZygpLGJvcmRlclJhZGl1czoiNTAlIixwYWRkaW5nOnIsb3V0bGluZTowLGJvcmRlcjowLGN1cnNvcjoicG9pbnRlciIsdHJhbnNpdGlvbjpgYWxsICR7ZH1gLCImOmhvdmVyIjp7YmFja2dyb3VuZENvbG9yOmcudG9SZ2JTdHJpbmcoKX0sW2AmID4gJHtofWBdOntmb250U2l6ZTp0LnByZXZpZXdPcGVyYXRpb25TaXplfX0sW2Ake2V9LW9wZXJhdGlvbnNgXTp7ZGlzcGxheToiZmxleCIsYWxpZ25JdGVtczoiY2VudGVyIixwYWRkaW5nOmAwICR7KDAsb3QuYmYpKGYpfWAsYmFja2dyb3VuZENvbG9yOngudG9SZ2JTdHJpbmcoKSxib3JkZXJSYWRpdXM6MTAwLCImLW9wZXJhdGlvbiI6e21hcmdpbklubGluZVN0YXJ0OnIscGFkZGluZzpyLGN1cnNvcjoicG9pbnRlciIsdHJhbnNpdGlvbjpgYWxsICR7ZH1gLHVzZXJTZWxlY3Q6Im5vbmUiLFtgJjpub3QoJHtlfS1vcGVyYXRpb25zLW9wZXJhdGlvbi1kaXNhYmxlZCk6aG92ZXIgPiAke2h9YF06e2NvbG9yOnV9LCImLWRpc2FibGVkIjp7Y29sb3I6cyxjdXJzb3I6Im5vdC1hbGxvd2VkIn0sIiY6Zmlyc3Qtb2YtdHlwZSI6e21hcmdpbklubGluZVN0YXJ0OjB9LFtgJiA+ICR7aH1gXTp7Zm9udFNpemU6dC5wcmV2aWV3T3BlcmF0aW9uU2l6ZX19fX19LGFuPXQ9Pntjb25zdHttb2RhbE1hc2tCZzplLGljb25DbHM6bixwcmV2aWV3T3BlcmF0aW9uQ29sb3JEaXNhYmxlZDpyLHByZXZpZXdDbHM6YSx6SW5kZXhQb3B1cDppLG1vdGlvbkR1cmF0aW9uU2xvdzpmfT10LHM9bmV3IENlLnQoZSkuc2V0QSguMSksdT1zLmNsb25lKCkuc2V0QSguMik7cmV0dXJue1tgJHthfS1zd2l0Y2gtbGVmdCwgJHthfS1zd2l0Y2gtcmlnaHRgXTp7cG9zaXRpb246ImZpeGVkIixpbnNldEJsb2NrU3RhcnQ6IjUwJSIsekluZGV4OnQuY2FsYyhpKS5hZGQoMSkuZXF1YWwoKSxkaXNwbGF5OiJmbGV4IixhbGlnbkl0ZW1zOiJjZW50ZXIiLGp1c3RpZnlDb250ZW50OiJjZW50ZXIiLHdpZHRoOnQuaW1hZ2VQcmV2aWV3U3dpdGNoU2l6ZSxoZWlnaHQ6dC5pbWFnZVByZXZpZXdTd2l0Y2hTaXplLG1hcmdpblRvcDp0LmNhbGModC5pbWFnZVByZXZpZXdTd2l0Y2hTaXplKS5tdWwoLTEpLmRpdigyKS5lcXVhbCgpLGNvbG9yOnQucHJldmlld09wZXJhdGlvbkNvbG9yLGJhY2tncm91bmQ6cy50b1JnYlN0cmluZygpLGJvcmRlclJhZGl1czoiNTAlIix0cmFuc2Zvcm06InRyYW5zbGF0ZVkoLTUwJSkiLGN1cnNvcjoicG9pbnRlciIsdHJhbnNpdGlvbjpgYWxsICR7Zn1gLHVzZXJTZWxlY3Q6Im5vbmUiLCImOmhvdmVyIjp7YmFja2dyb3VuZDp1LnRvUmdiU3RyaW5nKCl9LCImLWRpc2FibGVkIjp7IiYsICY6aG92ZXIiOntjb2xvcjpyLGJhY2tncm91bmQ6InRyYW5zcGFyZW50IixjdXJzb3I6Im5vdC1hbGxvd2VkIixbYD4gJHtufWBdOntjdXJzb3I6Im5vdC1hbGxvd2VkIn19fSxbYD4gJHtufWBdOntmb250U2l6ZTp0LnByZXZpZXdPcGVyYXRpb25TaXplfX0sW2Ake2F9LXN3aXRjaC1sZWZ0YF06e2luc2V0SW5saW5lU3RhcnQ6dC5tYXJnaW5TTX0sW2Ake2F9LXN3aXRjaC1yaWdodGBdOntpbnNldElubGluZUVuZDp0Lm1hcmdpblNNfX19LHNuPXQ9Pntjb25zdHttb3Rpb25FYXNlT3V0OmUscHJldmlld0NsczpuLG1vdGlvbkR1cmF0aW9uU2xvdzpyLGNvbXBvbmVudENsczphfT10O3JldHVyblt7W2Ake2F9LXByZXZpZXctcm9vdGBdOntbbl06e2hlaWdodDoiMTAwJSIsdGV4dEFsaWduOiJjZW50ZXIiLHBvaW50ZXJFdmVudHM6Im5vbmUifSxbYCR7bn0tYm9keWBdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwkZSgpKSx7b3ZlcmZsb3c6ImhpZGRlbiJ9KSxbYCR7bn0taW1nYF06e21heFdpZHRoOiIxMDAlIixtYXhIZWlnaHQ6IjcwJSIsdmVydGljYWxBbGlnbjoibWlkZGxlIix0cmFuc2Zvcm06InNjYWxlM2QoMSwgMSwgMSkiLGN1cnNvcjoiZ3JhYiIsdHJhbnNpdGlvbjpgdHJhbnNmb3JtICR7cn0gJHtlfSAwc2AsdXNlclNlbGVjdDoibm9uZSIsIiYtd3JhcHBlciI6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCRlKCkpLHt0cmFuc2l0aW9uOmB0cmFuc2Zvcm0gJHtyfSAke2V9IDBzYCxkaXNwbGF5OiJmbGV4IixqdXN0aWZ5Q29udGVudDoiY2VudGVyIixhbGlnbkl0ZW1zOiJjZW50ZXIiLCImID4gKiI6e3BvaW50ZXJFdmVudHM6ImF1dG8ifSwiJjo6YmVmb3JlIjp7ZGlzcGxheToiaW5saW5lLWJsb2NrIix3aWR0aDoxLGhlaWdodDoiNTAlIixtYXJnaW5JbmxpbmVFbmQ6LTEsY29udGVudDonIiInfX0pfSxbYCR7bn0tbW92aW5nYF06e1tgJHtufS1wcmV2aWV3LWltZ2BdOntjdXJzb3I6ImdyYWJiaW5nIiwiJi13cmFwcGVyIjp7dHJhbnNpdGlvbkR1cmF0aW9uOiIwcyJ9fX19fSx7W2Ake2F9LXByZXZpZXctcm9vdGBdOntbYCR7bn0td3JhcGBdOnt6SW5kZXg6dC56SW5kZXhQb3B1cH19fSx7W2Ake2F9LXByZXZpZXctb3BlcmF0aW9ucy13cmFwcGVyYF06e3Bvc2l0aW9uOiJmaXhlZCIsekluZGV4OnQuY2FsYyh0LnpJbmRleFBvcHVwKS5hZGQoMSkuZXF1YWwoKX0sIiYiOltybih0KSxhbih0KV19XX0sbG49dD0+e2NvbnN0e2NvbXBvbmVudENsczplfT10O3JldHVybntbZV06e3Bvc2l0aW9uOiJyZWxhdGl2ZSIsZGlzcGxheToiaW5saW5lLWJsb2NrIixbYCR7ZX0taW1nYF06e3dpZHRoOiIxMDAlIixoZWlnaHQ6ImF1dG8iLHZlcnRpY2FsQWxpZ246Im1pZGRsZSJ9LFtgJHtlfS1pbWctcGxhY2Vob2xkZXJgXTp7YmFja2dyb3VuZENvbG9yOnQuY29sb3JCZ0NvbnRhaW5lckRpc2FibGVkLGJhY2tncm91bmRJbWFnZToidXJsKCdkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUIzYVdSMGFEMGlNVFlpSUdobGFXZG9kRDBpTVRZaUlIWnBaWGRDYjNnOUlqQWdNQ0F4TmlBeE5pSWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklqNDhjR0YwYUNCa1BTSk5NVFF1TlNBeUxqVm9MVEV6UVM0MUxqVWdNQ0F3SURBZ01TQXpkakV3WVM0MUxqVWdNQ0F3SURBZ0xqVXVOV2d4TTJFdU5TNDFJREFnTUNBd0lDNDFMUzQxVmpOaExqVXVOU0F3SURBZ01DMHVOUzB1TlhwTk5TNHlPREVnTkM0M05XRXhJREVnTUNBd0lERWdNQ0F5SURFZ01TQXdJREFnTVNBd0xUSjZiVGd1TURNZ05pNDRNMkV1TVRJM0xqRXlOeUF3SURBZ01TMHVNRGd4TGpBelNESXVOelk1WVM0eE1qVXVNVEkxSURBZ01DQXhMUzR3T1RZdExqSXdOMnd5TGpZMk1TMHpMakUxTm1FdU1USTJMakV5TmlBd0lEQWdNU0F1TVRjM0xTNHdNVFpzTGpBeE5pNHdNVFpNTnk0d09DQXhNQzR3T1d3eUxqUTNMVEl1T1ROaExqRXlOaTR4TWpZZ01DQXdJREVnTGpFM055MHVNREUyYkM0d01UVXVNREUySURNdU5UZzRJRFF1TWpRMFlTNHhNamN1TVRJM0lEQWdNQ0F4TFM0d01pNHhOelY2SWlCbWFXeHNQU0lqT0VNNFF6aERJaUJtYVd4c0xYSjFiR1U5SW01dmJucGxjbThpTHo0OEwzTjJaejQ9JykiLGJhY2tncm91bmRSZXBlYXQ6Im5vLXJlcGVhdCIsYmFja2dyb3VuZFBvc2l0aW9uOiJjZW50ZXIgY2VudGVyIixiYWNrZ3JvdW5kU2l6ZToiMzAlIn0sW2Ake2V9LW1hc2tgXTpPYmplY3QuYXNzaWduKHt9LG9uKHQpKSxbYCR7ZX0tbWFzazpob3ZlcmBdOntvcGFjaXR5OjF9LFtgJHtlfS1wbGFjZWhvbGRlcmBdOk9iamVjdC5hc3NpZ24oe30sJGUoKSl9fX0sY249dD0+e2NvbnN0e3ByZXZpZXdDbHM6ZX09dDtyZXR1cm57W2Ake2V9LXJvb3RgXTooMCxlbi5feSkodCwiem9vbSIpLCImIjooMCx0bi5KJCkodCwhMCl9fSx1bj10PT4oe3pJbmRleFBvcHVwOnQuekluZGV4UG9wdXBCYXNlKzgwLHByZXZpZXdPcGVyYXRpb25Db2xvcjpuZXcgQ2UudCh0LmNvbG9yVGV4dExpZ2h0U29saWQpLnNldEEoLjY1KS50b1JnYlN0cmluZygpLHByZXZpZXdPcGVyYXRpb25Ib3ZlckNvbG9yOm5ldyBDZS50KHQuY29sb3JUZXh0TGlnaHRTb2xpZCkuc2V0QSguODUpLnRvUmdiU3RyaW5nKCkscHJldmlld09wZXJhdGlvbkNvbG9yRGlzYWJsZWQ6bmV3IENlLnQodC5jb2xvclRleHRMaWdodFNvbGlkKS5zZXRBKC4yNSkudG9SZ2JTdHJpbmcoKSxwcmV2aWV3T3BlcmF0aW9uU2l6ZTp0LmZvbnRTaXplSWNvbioxLjV9KTt2YXIgYXQ9KDAsbm4uSSQpKCJJbWFnZSIsdD0+e2NvbnN0IGU9YCR7dC5jb21wb25lbnRDbHN9LXByZXZpZXdgLG49KDAscnQuSVgpKHQse3ByZXZpZXdDbHM6ZSxtb2RhbE1hc2tCZzpuZXcgQ2UudCgiIzAwMCIpLnNldEEoLjQ1KS50b1JnYlN0cmluZygpLGltYWdlUHJldmlld1N3aXRjaFNpemU6dC5jb250cm9sSGVpZ2h0TEd9KTtyZXR1cm5bbG4obiksc24obiksKDAscXQuUUEpKCgwLHJ0LklYKShuLHtjb21wb25lbnRDbHM6ZX0pKSxjbihuKV19LHVuKSxmbj1mdW5jdGlvbih0LGUpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiZlLmluZGV4T2Yocik8MCYmKG5bcl09dFtyXSk7aWYodCE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBhPTAscj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2E8ci5sZW5ndGg7YSsrKWUuaW5kZXhPZihyW2FdKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodCxyW2FdKSYmKG5bclthXV09dFtyW2FdXSk7cmV0dXJuIG59O2NvbnN0IGl0PXtyb3RhdGVMZWZ0Om8uY3JlYXRlRWxlbWVudChVdC5aLG51bGwpLHJvdGF0ZVJpZ2h0Om8uY3JlYXRlRWxlbWVudChLdC5aLG51bGwpLHpvb21JbjpvLmNyZWF0ZUVsZW1lbnQoUXQuWixudWxsKSx6b29tT3V0Om8uY3JlYXRlRWxlbWVudChKdC5aLG51bGwpLGNsb3NlOm8uY3JlYXRlRWxlbWVudChCdC5aLG51bGwpLGxlZnQ6by5jcmVhdGVFbGVtZW50KEd0LlosbnVsbCkscmlnaHQ6by5jcmVhdGVFbGVtZW50KFZ0LlosbnVsbCksZmxpcFg6by5jcmVhdGVFbGVtZW50KG50LlosbnVsbCksZmxpcFk6by5jcmVhdGVFbGVtZW50KG50Llose3JvdGF0ZTo5MH0pfTt2YXIgdm49dD0+e3ZhcntwcmV2aWV3UHJlZml4Q2xzOmUscHJldmlldzpufT10LHI9Zm4odCxbInByZXZpZXdQcmVmaXhDbHMiLCJwcmV2aWV3Il0pO2NvbnN0e2dldFByZWZpeENsczphfT1vLnVzZUNvbnRleHQoZXQuRV8pLGk9YSgiaW1hZ2UiLGUpLGY9YCR7aX0tcHJldmlld2Ascz1hKCksdT0oMCx0dC5aKShpKSxbZCxoLGxdPWF0KGksdSksW3hdPSgwLF9lLkNuKSgiSW1hZ2VQcmV2aWV3Iix0eXBlb2Ygbj09Im9iamVjdCI/bi56SW5kZXg6dm9pZCAwKSxnPW8udXNlTWVtbygoKT0+e3ZhciBwO2lmKG49PT0hMSlyZXR1cm4gbjtjb25zdCBJPXR5cGVvZiBuPT0ib2JqZWN0Ij9uOnt9LFA9cSgpKGgsbCx1LChwPUkucm9vdENsYXNzTmFtZSkhPT1udWxsJiZwIT09dm9pZCAwP3A6IiIpO3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sSSkse3RyYW5zaXRpb25OYW1lOigwLFBlLm0pKHMsInpvb20iLEkudHJhbnNpdGlvbk5hbWUpLG1hc2tUcmFuc2l0aW9uTmFtZTooMCxQZS5tKShzLCJmYWRlIixJLm1hc2tUcmFuc2l0aW9uTmFtZSkscm9vdENsYXNzTmFtZTpQLHpJbmRleDp4fSl9LFtuXSk7cmV0dXJuIGQoby5jcmVhdGVFbGVtZW50KHFlLlByZXZpZXdHcm91cCxPYmplY3QuYXNzaWduKHtwcmV2aWV3OmcscHJldmlld1ByZWZpeENsczpmLGljb25zOml0fSxyKSkpfSxzdD1mdW5jdGlvbih0LGUpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiZlLmluZGV4T2Yocik8MCYmKG5bcl09dFtyXSk7aWYodCE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBhPTAscj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2E8ci5sZW5ndGg7YSsrKWUuaW5kZXhPZihyW2FdKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodCxyW2FdKSYmKG5bclthXV09dFtyW2FdXSk7cmV0dXJuIG59O2NvbnN0IGx0PXQ9Pntjb25zdHtwcmVmaXhDbHM6ZSxwcmV2aWV3Om4sY2xhc3NOYW1lOnIscm9vdENsYXNzTmFtZTphLHN0eWxlOml9PXQsZj1zdCh0LFsicHJlZml4Q2xzIiwicHJldmlldyIsImNsYXNzTmFtZSIsInJvb3RDbGFzc05hbWUiLCJzdHlsZSJdKSx7Z2V0UHJlZml4Q2xzOnMsZ2V0UG9wdXBDb250YWluZXI6dSxjbGFzc05hbWU6ZCxzdHlsZTpoLHByZXZpZXc6bH09KDAsZXQuZGopKCJpbWFnZSIpLFt4XT0oMCxIdC5aKSgiSW1hZ2UiKSxnPXMoImltYWdlIixlKSxwPXMoKSxJPSgwLHR0LlopKGcpLFtQLFMsVF09YXQoZyxJKSxNPXEoKShhLFMsVCxJKSxFPXEoKShyLFMsZCksW2NdPSgwLF9lLkNuKSgiSW1hZ2VQcmV2aWV3Iix0eXBlb2Ygbj09Im9iamVjdCI/bi56SW5kZXg6dm9pZCAwKSx5PW8udXNlTWVtbygoKT0+e2lmKG49PT0hMSlyZXR1cm4gbjtjb25zdCB2PXR5cGVvZiBuPT0ib2JqZWN0Ij9uOnt9LHtnZXRDb250YWluZXI6YixjbG9zZUljb246Wixyb290Q2xhc3NOYW1lOnd9PXYsTj1zdCh2LFsiZ2V0Q29udGFpbmVyIiwiY2xvc2VJY29uIiwicm9vdENsYXNzTmFtZSJdKTtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHttYXNrOm8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmAke2d9LW1hc2staW5mb2B9LG8uY3JlYXRlRWxlbWVudChmdC5aLG51bGwpLHg9PW51bGw/dm9pZCAwOngucHJldmlldyksaWNvbnM6aXR9LE4pLHtyb290Q2xhc3NOYW1lOnEoKShNLHcpLGdldENvbnRhaW5lcjpiIT1udWxsP2I6dSx0cmFuc2l0aW9uTmFtZTooMCxQZS5tKShwLCJ6b29tIix2LnRyYW5zaXRpb25OYW1lKSxtYXNrVHJhbnNpdGlvbk5hbWU6KDAsUGUubSkocCwiZmFkZSIsdi5tYXNrVHJhbnNpdGlvbk5hbWUpLHpJbmRleDpjLGNsb3NlSWNvbjpaIT1udWxsP1o6bD09bnVsbD92b2lkIDA6bC5jbG9zZUljb259KX0sW24seCxsPT1udWxsP3ZvaWQgMDpsLmNsb3NlSWNvbl0pLEM9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGgpLGkpO3JldHVybiBQKG8uY3JlYXRlRWxlbWVudChxZSxPYmplY3QuYXNzaWduKHtwcmVmaXhDbHM6ZyxwcmV2aWV3Onkscm9vdENsYXNzTmFtZTpNLGNsYXNzTmFtZTpFLHN0eWxlOkN9LGYpKSl9O2x0LlByZXZpZXdHcm91cD12bjt2YXIgZG49bHR9LDcxMjMwOmZ1bmN0aW9uKFllLEllLG0pe3ZhciBvPW0oMTc2MjEpO0llLlo9by5afX1dKTsKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvOTIxOS5jNjQzMzlkNy5hc3luYy5qcyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvOTIxOS5jNjQzMzlkNy5hc3luYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYWYzYTliCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy85MjE5LmM2NDMzOWQ3LmFzeW5jLmpzCkBAIC0wLDAgKzEgQEAKKyJ1c2Ugc3RyaWN0Ijsoc2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Bybz1zZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvfHxbXSkucHVzaChbWzkyMTldLHs3OTIxOTpmdW5jdGlvbihDLGwsYSl7YS5yKGwpLGEuZChsLHtkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuIEd9fSk7dmFyIEk9YSg1NTc0KSxzPWEubihJKSxjPWEoNjcyOTQpLHY9YSg3MTIzMCkscj1hKDE1NzQ2KSx1PWEoNDM5MyksUz1hKDk2MTU0KSxaPWEoNjM0MzApLGo9YSgzNTA5OSksaT1hKDU3MDg5KSxFPWEoMTUwMDkpLGc9YS5uKEUpLEQ9YSg5OTI4OSksVD1hLm4oRCksQT1hKDc2NzcyKTtmdW5jdGlvbiBCKCl7cmV0dXJuIG0uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIG0oKXtyZXR1cm4gbT1UKCkoZygpKCkubWFyayhmdW5jdGlvbiBmKCl7cmV0dXJuIGcoKSgpLndyYXAoZnVuY3Rpb24obil7Zm9yKDs7KXN3aXRjaChuLnByZXY9bi5uZXh0KXtjYXNlIDA6cmV0dXJuIG4uYWJydXB0KCJyZXR1cm4iLCgwLEEucmVxdWVzdCkoIi9hcGkvbW9uaXRvci9jYWNoZSIse21ldGhvZDoiR0VUIn0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBuLnN0b3AoKX19LGYpfSkpLG0uYXBwbHkodGhpcyxhcmd1bWVudHMpfXZhciBlPWEoODU4OTMpLE49W3t0aXRsZToiY29sMSIsZGF0YUluZGV4OiJjb2wxIixrZXk6ImNvbDEifSx7dGl0bGU6ImNvbDIiLGRhdGFJbmRleDoiY29sMiIsa2V5OiJjb2wyIn0se3RpdGxlOiJjb2wzIixkYXRhSW5kZXg6ImNvbDMiLGtleToiY29sMyJ9LHt0aXRsZToiY29sNCIsZGF0YUluZGV4OiJjb2w0IixrZXk6ImNvbDQifSx7dGl0bGU6ImNvbDUiLGRhdGFJbmRleDoiY29sNSIsa2V5OiJjb2w1In0se3RpdGxlOiJjb2w2IixkYXRhSW5kZXg6ImNvbDYiLGtleToiY29sNiJ9LHt0aXRsZToiY29sNyIsZGF0YUluZGV4OiJjb2w3IixrZXk6ImNvbDcifSx7dGl0bGU6ImNvbDgiLGRhdGFJbmRleDoiY29sOCIsa2V5OiJjb2w4In1dLFI9ZnVuY3Rpb24oZCl7c3dpdGNoKGQpe2Nhc2UiMTAiOnJldHVybiIxMDAlIjtjYXNlIjgiOnJldHVybiI4MCUiO2Nhc2UiNiI6cmV0dXJuIjYwJSI7Y2FzZSI0IjpyZXR1cm4iNDAlIjtjYXNlIjIiOnJldHVybiIyMCUiO2Nhc2UiMCI6cmV0dXJuIjAlIjtkZWZhdWx0OnJldHVybiIifX0sVT1mdW5jdGlvbigpe3ZhciBkPSgwLGMudXNlU3RhdGUpKFtdKSxuPXMoKShkLDIpLE09blswXSxLPW5bMV0sTD0oMCxjLnVzZVN0YXRlKSgwKSx4PXMoKShMLDIpLGg9eFswXSxRPXhbMV0saz0oMCxjLnVzZVN0YXRlKShbXSkseT1zKCkoaywyKSx6PXlbMF0sSD15WzFdLE89KDAsYy51c2VTdGF0ZSkoW10pLEY9cygpKE8sMiksUD1GWzBdLCQ9RlsxXTtyZXR1cm4oMCxjLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtCKCkudGhlbihmdW5jdGlvbih0KXtpZih0LmNvZGU9PT0yMDApe3ZhciBvPVtdO28ucHVzaCh7Y29sMToiUmVkaXNcdTcyNDhcdTY3MkMiLGNvbDI6dC5kYXRhLmluZm8ucmVkaXNfdmVyc2lvbixjb2wzOiJcdThGRDBcdTg4NENcdTZBMjFcdTVGMEYiLGNvbDQ6dC5kYXRhLmluZm8ucmVkaXNfbW9kZT09PSJzdGFuZGFsb25lIj8iXHU1MzU1XHU2NzNBIjoiXHU5NkM2XHU3RkE0Iixjb2w1OiJcdTdBRUZcdTUzRTMiLGNvbDY6dC5kYXRhLmluZm8udGNwX3BvcnQsY29sNzoiXHU1QkEyXHU2MjM3XHU3QUVGXHU2NTcwIixjb2w4OnQuZGF0YS5pbmZvLmNvbm5lY3RlZF9jbGllbnRzfSksby5wdXNoKHtjb2wxOiJcdThGRDBcdTg4NENcdTY1RjZcdTk1RjQoXHU1OTI5KSIsY29sMjp0LmRhdGEuaW5mby51cHRpbWVfaW5fZGF5cyxjb2wzOiJcdTRGN0ZcdTc1MjhcdTUxODVcdTVCNTgiLGNvbDQ6dC5kYXRhLmluZm8udXNlZF9tZW1vcnlfaHVtYW4sY29sNToiXHU0RjdGXHU3NTI4Q1BVIixjb2w2OiIiLmNvbmNhdCh0LmRhdGEuaW5mby51c2VkX2NwdV91c2VyX2NoaWxkcmVuLCIlIiksY29sNzoiXHU1MTg1XHU1QjU4XHU5MTREXHU3RjZFIixjb2w4OnQuZGF0YS5pbmZvLm1heG1lbW9yeV9odW1hbn0pLG8ucHVzaCh7Y29sMToiQU9GXHU2NjJGXHU1NDI2XHU1RjAwXHU1NDJGIixjb2wyOnQuZGF0YS5pbmZvLmFvZl9lbmFibGVkPT09IjAiPyJcdTU0MjYiOiJcdTY2MkYiLGNvbDM6IlJEQlx1NjYyRlx1NTQyNlx1NjIxMFx1NTI5RiIsY29sNDp0LmRhdGEuaW5mby5yZGJfbGFzdF9iZ3NhdmVfc3RhdHVzLGNvbDU6IktleVx1NjU3MFx1OTFDRiIsY29sNjp0LmRhdGEuZGJTaXplLGNvbDc6Ilx1N0Y1MVx1N0VEQ1x1NTE2NVx1NTNFMy9cdTUxRkFcdTUzRTMiLGNvbDg6IiIuY29uY2F0KHQuZGF0YS5pbmZvLmluc3RhbnRhbmVvdXNfaW5wdXRfa2JwcywiLyIpLmNvbmNhdCh0LmRhdGEuaW5mby5pbnN0YW50YW5lb3VzX291dHB1dF9rYnBzLCJrcHMiKX0pLEsobyk7dmFyIEo9dC5kYXRhLmNvbW1hbmRTdGF0cy5tYXAoZnVuY3Rpb24ocCl7cmV0dXJue3g6cC5uYW1lLHk6TnVtYmVyKHAudmFsdWUpfX0pOyQoSiksSCh0LmRhdGEuaW5mby51c2VkX21lbW9yeV9odW1hbiksUSh0LmRhdGEuaW5mby51c2VkX21lbW9yeS90LmRhdGEuaW5mby50b3RhbF9zeXN0ZW1fbWVtb3J5KX19KX0sW10pLCgwLGUuanN4cykoImRpdiIse2NoaWxkcmVuOlsoMCxlLmpzeCkodi5aLHtndXR0ZXI6WzI0LDI0XSxjaGlsZHJlbjooMCxlLmpzeCkoci5aLHtzcGFuOjI0LGNoaWxkcmVuOigwLGUuanN4KSh1Llose3RpdGxlOiJcdTU3RkFcdTY3MkNcdTRGRTFcdTYwNkYiLGNsYXNzTmFtZTppLlouY2FyZCxjaGlsZHJlbjooMCxlLmpzeCkoUy5aLHtyb3dLZXk6ImNvbDEiLHBhZ2luYXRpb246ITEsc2hvd0hlYWRlcjohMSxkYXRhU291cmNlOk0sY29sdW1uczpOfSl9KX0pfSksKDAsZS5qc3hzKSh2Llose2d1dHRlcjpbMjQsMjRdLGNoaWxkcmVuOlsoMCxlLmpzeCkoci5aLHtzcGFuOjEyLGNoaWxkcmVuOigwLGUuanN4KSh1Llose3RpdGxlOiJcdTU0N0RcdTRFRTRcdTdFREZcdThCQTEiLGNsYXNzTmFtZTppLlouY2FyZCxjaGlsZHJlbjooMCxlLmpzeCkoWi5aLHtoZWlnaHQ6MzIwLHJhZGl1czouOCxpbm5lclJhZGl1czouNSxhbmdsZUZpZWxkOiJ5Iixjb2xvckZpZWxkOiJ4IixkYXRhOlAsbGVnZW5kOiExLGxhYmVsOntwb3NpdGlvbjoic3BpZGVyIix0ZXh0OmZ1bmN0aW9uKG8pe3JldHVybiIiLmNvbmNhdChvLngsIjogIikuY29uY2F0KG8ueSl9fX0pfSl9KSwoMCxlLmpzeCkoci5aLHtzcGFuOjEyLGNoaWxkcmVuOigwLGUuanN4KSh1Llose3RpdGxlOiJcdTUxODVcdTVCNThcdTRGRTFcdTYwNkYiLGNsYXNzTmFtZTppLlouY2FyZCxjaGlsZHJlbjooMCxlLmpzeCkoai5aLHt0aXRsZTp6LGhlaWdodDozMjAscGVyY2VudDpoLGZvcm1hdHRlcjpSLHBhZGRpbmc6LTE2LHN0eWxlOnt0ZXh0Q29udGVudDpmdW5jdGlvbigpe3JldHVybiBoLnRvRml4ZWQoMikudG9TdHJpbmcoKSsiJSJ9fSxkYXRhOnt0YXJnZXQ6aCx0b3RhbDoxMDAsbmFtZToic2NvcmUiLHRocmVzaG9sZHM6WzIwLDQwLDYwLDgwLDEwMF19LG1ldGE6e2NvbG9yOntyYW5nZTpbIiNDM0Y3MUYiLCIjQjVFNjFEIiwiI0ZGQzkwRSIsIiNGRjdGMjciLCIjRkYyNTE4Il19fX0pfSl9KV19KV19KX0sRz1VfSw1NzA4OTpmdW5jdGlvbihDLGwpe2wuWj17Y2FyZDoiY2FyZF9fX2ZHTl9UIixtaW5pQ2hhcnQ6Im1pbmlDaGFydF9fX1F2bTNxIixjaGFydENvbnRlbnQ6ImNoYXJ0Q29udGVudF9fX2tlUTZsIixjaGFydExvYWRpbmc6ImNoYXJ0TG9hZGluZ19fX3dGTTFnIn19fV0pOwpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy85MjE5LmRjNzJhY2ZkLmNodW5rLmNzcyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvOTIxOS5kYzcyYWNmZC5jaHVuay5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2YzMmY3YgotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvOTIxOS5kYzcyYWNmZC5jaHVuay5jc3MKQEAgLTAsMCArMSBAQAorLmNhcmRfX19mR05fVHttYXJnaW4tYm90dG9tOjEycHh9Lm1pbmlDaGFydF9fX1F2bTNxe3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCV9Lm1pbmlDaGFydF9fX1F2bTNxIC5jaGFydENvbnRlbnRfX19rZVE2bHtwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206LTI4cHg7d2lkdGg6MTAwJX0ubWluaUNoYXJ0X19fUXZtM3EgLmNoYXJ0Q29udGVudF9fX2tlUTZsPmRpdnttYXJnaW46MCAtNXB4O292ZXJmbG93OmhpZGRlbn0ubWluaUNoYXJ0X19fUXZtM3EgLmNoYXJ0TG9hZGluZ19fX3dGTTFne3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxNnB4O2xlZnQ6NTAlO21hcmdpbi1sZWZ0Oi03cHh9CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzkyNTYuZTBkZTBiMWYuYXN5bmMuanMgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzkyNTYuZTBkZTBiMWYuYXN5bmMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2RmMmMzNAotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvOTI1Ni5lMGRlMGIxZi5hc3luYy5qcwpAQCAtMCwwICsxIEBACisidXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W10pLnB1c2goW1s5MjU2XSx7MTkyNTY6ZnVuY3Rpb24oYSxuLGUpe2UucihuKTt2YXIgZD1lKDY3Mjk0KSxyPWUoODU4OTMpLHU9ZnVuY3Rpb24oKXtyZXR1cm4oMCxkLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmRJZnJhbWUiKTtpZih0KXt2YXIgaT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgsYz1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0O3Quc3R5bGUud2lkdGg9IiIuY29uY2F0KE51bWJlcihpKS0yMjAsInB4IiksdC5zdHlsZS5oZWlnaHQ9IiIuY29uY2F0KE51bWJlcihjKS0xMjAsInB4Iil9fSksKDAsci5qc3gpKCJpZnJhbWUiLHtzdHlsZTp7d2lkdGg6IjEwMCUiLGJvcmRlcjoiMHB4IixoZWlnaHQ6IjEwMCUifSxzcmM6Ii9hcGkvZHJ1aWQvbG9naW4uaHRtbCIsaWQ6ImJkSWZyYW1lIn0pfTtuLmRlZmF1bHQ9dX19XSk7CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzk0OS5lOTJhOWExZi5hc3luYy5qcyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvOTQ5LmU5MmE5YTFmLmFzeW5jLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQxMjg0YTEKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzk0OS5lOTJhOWExZi5hc3luYy5qcwpAQCAtMCwwICsxIEBACisidXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W10pLnB1c2goW1s5NDldLHs4NjYxNTpmdW5jdGlvbihXLE8sZSl7dmFyIE09ZSgxNDEzKSxpPWUoOTEpLEE9ZSgyMjI3MCksdj1lKDc4MDQ1KSxUPWUoNjcyOTQpLEQ9ZSg5MDc4OSksZz1lKDkyMTc5KSxkPWUoODU4OTMpLGo9WyJmaWVsZFByb3BzIiwib3B0aW9ucyIsInJhZGlvVHlwZSIsImxheW91dCIsInByb0ZpZWxkUHJvcHMiLCJ2YWx1ZUVudW0iXSxFPVQuZm9yd2FyZFJlZihmdW5jdGlvbihfLFApe3ZhciBvPV8uZmllbGRQcm9wcyxyPV8ub3B0aW9ucyxzPV8ucmFkaW9UeXBlLHU9Xy5sYXlvdXQsdD1fLnByb0ZpZWxkUHJvcHMsbT1fLnZhbHVlRW51bSxiPSgwLGkuWikoXyxqKTtyZXR1cm4oMCxkLmpzeCkoZy5aLCgwLE0uWikoKDAsTS5aKSh7dmFsdWVUeXBlOnM9PT0iYnV0dG9uIj8icmFkaW9CdXR0b24iOiJyYWRpbyIscmVmOlAsdmFsdWVFbnVtOigwLEEuaCkobSx2b2lkIDApfSxiKSx7fSx7ZmllbGRQcm9wczooMCxNLlopKHtvcHRpb25zOnIsbGF5b3V0OnV9LG8pLHByb0ZpZWxkUHJvcHM6dCxmaWxlZENvbmZpZzp7Y3VzdG9tTGlnaHRNb2RlOiEwfX0pKX0pLGE9VC5mb3J3YXJkUmVmKGZ1bmN0aW9uKF8sUCl7dmFyIG89Xy5maWVsZFByb3BzLHI9Xy5jaGlsZHJlbjtyZXR1cm4oMCxkLmpzeCkodi5aUCwoMCxNLlopKCgwLE0uWikoe30sbykse30se3JlZjpQLGNoaWxkcmVuOnJ9KSl9KSxmPSgwLEQuRykoYSx7dmFsdWVQcm9wTmFtZToiY2hlY2tlZCIsaWdub3JlV2lkdGg6ITB9KSxjPWY7Yy5Hcm91cD1FLGMuQnV0dG9uPXYuWlAuQnV0dG9uLGMuZGlzcGxheU5hbWU9IlByb0Zvcm1Db21wb25lbnQiLE8uWj1jfSw1OTY2OmZ1bmN0aW9uKFcsTyxlKXt2YXIgTT1lKDk3Njg1KSxpPWUoMTQxMyksQT1lKDkxKSx2PWUoMjE3NzApLFQ9ZSg5OTg1OSksRD1lKDU1MjQxKSxnPWUoOTg0MjMpLGQ9ZSg2NzI5NCksaj1lKDkyMTc5KSxFPWUoODU4OTMpLGE9WyJmaWVsZFByb3BzIiwicHJvRmllbGRQcm9wcyJdLGY9WyJmaWVsZFByb3BzIiwicHJvRmllbGRQcm9wcyJdLGM9InRleHQiLF89ZnVuY3Rpb24odSl7dmFyIHQ9dS5maWVsZFByb3BzLG09dS5wcm9GaWVsZFByb3BzLGI9KDAsQS5aKSh1LGEpO3JldHVybigwLEUuanN4KShqLlosKDAsaS5aKSh7dmFsdWVUeXBlOmMsZmllbGRQcm9wczp0LGZpbGVkQ29uZmlnOnt2YWx1ZVR5cGU6Y30scHJvRmllbGRQcm9wczptfSxiKSl9LFA9ZnVuY3Rpb24odSl7dmFyIHQ9KDAsdi5aKSh1Lm9wZW58fCExLHt2YWx1ZTp1Lm9wZW4sb25DaGFuZ2U6dS5vbk9wZW5DaGFuZ2V9KSxtPSgwLE0uWikodCwyKSxiPW1bMF0sVT1tWzFdO3JldHVybigwLEUuanN4KShULlouSXRlbSx7c2hvdWxkVXBkYXRlOiEwLG5vU3R5bGU6ITAsY2hpbGRyZW46ZnVuY3Rpb24oQil7dmFyIFIsQz1CLmdldEZpZWxkVmFsdWUodS5uYW1lfHxbXSk7cmV0dXJuKDAsRS5qc3gpKEQuWiwoMCxpLlopKCgwLGkuWikoe2dldFBvcHVwQ29udGFpbmVyOmZ1bmN0aW9uKG4pe3JldHVybiBuJiZuLnBhcmVudE5vZGU/bi5wYXJlbnROb2RlOm59LG9uT3BlbkNoYW5nZTpmdW5jdGlvbihuKXtyZXR1cm4gVShuKX0sY29udGVudDooMCxFLmpzeHMpKCJkaXYiLHtzdHlsZTp7cGFkZGluZzoiNHB4IDAifSxjaGlsZHJlbjpbKFI9dS5zdGF0dXNSZW5kZXIpPT09bnVsbHx8Uj09PXZvaWQgMD92b2lkIDA6Ui5jYWxsKHUsQyksdS5zdHJlbmd0aFRleHQ/KDAsRS5qc3gpKCJkaXYiLHtzdHlsZTp7bWFyZ2luVG9wOjEwfSxjaGlsZHJlbjooMCxFLmpzeCkoInNwYW4iLHtjaGlsZHJlbjp1LnN0cmVuZ3RoVGV4dH0pfSk6bnVsbF19KSxvdmVybGF5U3R5bGU6e3dpZHRoOjI0MH0scGxhY2VtZW50OiJyaWdodFRvcCJ9LHUucG9wb3ZlclByb3BzKSx7fSx7b3BlbjpiLGNoaWxkcmVuOnUuY2hpbGRyZW59KSl9fSl9LG89ZnVuY3Rpb24odSl7dmFyIHQ9dS5maWVsZFByb3BzLG09dS5wcm9GaWVsZFByb3BzLGI9KDAsQS5aKSh1LGYpLFU9KDAsZC51c2VTdGF0ZSkoITEpLHk9KDAsTS5aKShVLDIpLEI9eVswXSxSPXlbMV07cmV0dXJuIHQhPW51bGwmJnQuc3RhdHVzUmVuZGVyJiZiLm5hbWU/KDAsRS5qc3gpKFAse25hbWU6Yi5uYW1lLHN0YXR1c1JlbmRlcjp0PT1udWxsP3ZvaWQgMDp0LnN0YXR1c1JlbmRlcixwb3BvdmVyUHJvcHM6dD09bnVsbD92b2lkIDA6dC5wb3BvdmVyUHJvcHMsc3RyZW5ndGhUZXh0OnQ9PW51bGw/dm9pZCAwOnQuc3RyZW5ndGhUZXh0LG9wZW46Qixvbk9wZW5DaGFuZ2U6UixjaGlsZHJlbjooMCxFLmpzeCkoImRpdiIse2NoaWxkcmVuOigwLEUuanN4KShqLlosKDAsaS5aKSh7dmFsdWVUeXBlOiJwYXNzd29yZCIsZmllbGRQcm9wczooMCxpLlopKCgwLGkuWikoe30sKDAsZy5aKSh0LFsic3RhdHVzUmVuZGVyIiwicG9wb3ZlclByb3BzIiwic3RyZW5ndGhUZXh0Il0pKSx7fSx7b25CbHVyOmZ1bmN0aW9uKEYpe3ZhciBuO3Q9PW51bGx8fChuPXQub25CbHVyKT09PW51bGx8fG49PT12b2lkIDB8fG4uY2FsbCh0LEYpLFIoITEpfSxvbkNsaWNrOmZ1bmN0aW9uKEYpe3ZhciBuO3Q9PW51bGx8fChuPXQub25DbGljayk9PT1udWxsfHxuPT09dm9pZCAwfHxuLmNhbGwodCxGKSxSKCEwKX19KSxwcm9GaWVsZFByb3BzOm0sZmlsZWRDb25maWc6e3ZhbHVlVHlwZTpjfX0sYikpfSl9KTooMCxFLmpzeCkoai5aLCgwLGkuWikoe3ZhbHVlVHlwZToicGFzc3dvcmQiLGZpZWxkUHJvcHM6dCxwcm9GaWVsZFByb3BzOm0sZmlsZWRDb25maWc6e3ZhbHVlVHlwZTpjfX0sYikpfSxyPV87ci5QYXNzd29yZD1vLHIuZGlzcGxheU5hbWU9IlByb0Zvcm1Db21wb25lbnQiLE8uWj1yfSwyMDk0OTpmdW5jdGlvbihXLE8sZSl7ZS5yKE8pO3ZhciBNPWUoMTUwMDkpLGk9ZS5uKE0pLEE9ZSg5Nzg1Nyksdj1lLm4oQSksVD1lKDk5Mjg5KSxEPWUubihUKSxnPWUoNTU3NCksZD1lLm4oZyksaj1lKDY3Mjk0KSxFPWUoOTk4NTkpLGE9ZSgyNDUzKSxmPWUoNzEyMzApLGM9ZSg3Njc3MiksXz1lKDk3MjY5KSxQPWUoNTk2Niksbz1lKDg2NjE1KSxyPWUoOTAyNSkscz1lKDg1ODkzKSx1PWZ1bmN0aW9uKG0pe3ZhciBiPUUuWi51c2VGb3JtKCksVT1kKCkoYiwxKSx5PVVbMF0sQj0oMCxjLnVzZUludGwpKCksUj1mdW5jdGlvbigpe3ZhciBDPUQoKShpKCkoKS5tYXJrKGZ1bmN0aW9uIEYobil7dmFyIGwsaDtyZXR1cm4gaSgpKCkud3JhcChmdW5jdGlvbihwKXtmb3IoOzspc3dpdGNoKHAucHJldj1wLm5leHQpe2Nhc2UgMDpyZXR1cm4gbD12KCkodigpKHt9LG0udmFsdWVzKSxuKSxwLm5leHQ9MywoMCxyLkxqKShsKTtjYXNlIDM6aD1wLnNlbnQsaC5jb2RlPT09MjAwP2EuWlAuc3VjY2VzcygiXHU0RkVFXHU2NTM5XHU2MjEwXHU1MjlGIik6YS5aUC53YXJuaW5nKGgubXNnKTtjYXNlIDU6Y2FzZSJlbmQiOnJldHVybiBwLnN0b3AoKX19LEYpfSkpO3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gQy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpO3JldHVybigwLHMuanN4KShzLkZyYWdtZW50LHtjaGlsZHJlbjooMCxzLmpzeHMpKF8uQSx7Zm9ybTp5LG9uRmluaXNoOlIsaW5pdGlhbFZhbHVlczptLnZhbHVlcyxjaGlsZHJlbjpbKDAscy5qc3gpKGYuWix7Y2hpbGRyZW46KDAscy5qc3gpKFAuWix7bmFtZToibmlja05hbWUiLGxhYmVsOkIuZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS51c2VyLm5pY2tfbmFtZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NzUyOFx1NjIzN1x1NjYzNVx1NzlGMCJ9KSx3aWR0aDoieGwiLHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdTc1MjhcdTYyMzdcdTY2MzVcdTc5RjAiLHJ1bGVzOlt7cmVxdWlyZWQ6ITAsbWVzc2FnZTooMCxzLmpzeCkoYy5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU3NTI4XHU2MjM3XHU2NjM1XHU3OUYwXHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU3NTI4XHU2MjM3XHU2NjM1XHU3OUYwXHVGRjAxIn0pfV19KX0pLCgwLHMuanN4KShmLlose2NoaWxkcmVuOigwLHMuanN4KShQLlose25hbWU6InBob25lbnVtYmVyIixsYWJlbDpCLmZvcm1hdE1lc3NhZ2Uoe2lkOiJzeXN0ZW0udXNlci5waG9uZW51bWJlciIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjI0Qlx1NjczQVx1NTNGN1x1NzgwMSJ9KSx3aWR0aDoieGwiLHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdTYyNEJcdTY3M0FcdTUzRjdcdTc4MDEiLHJ1bGVzOlt7cmVxdWlyZWQ6ITEsbWVzc2FnZTooMCxzLmpzeCkoYy5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU2MjRCXHU2NzNBXHU1M0Y3XHU3ODAxXHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU2MjRCXHU2NzNBXHU1M0Y3XHU3ODAxXHVGRjAxIn0pfV19KX0pLCgwLHMuanN4KShmLlose2NoaWxkcmVuOigwLHMuanN4KShQLlose25hbWU6ImVtYWlsIixsYWJlbDpCLmZvcm1hdE1lc3NhZ2Uoe2lkOiJzeXN0ZW0udXNlci5lbWFpbCIsZGVmYXVsdE1lc3NhZ2U6Ilx1OTBBRVx1N0JCMSJ9KSx3aWR0aDoieGwiLHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdTkwQUVcdTdCQjEiLHJ1bGVzOlt7dHlwZToiZW1haWwiLG1lc3NhZ2U6Ilx1NjVFMFx1NjU0OFx1NzY4NFx1OTBBRVx1N0JCMVx1NTczMFx1NTc0MCEifSx7cmVxdWlyZWQ6ITEsbWVzc2FnZTooMCxzLmpzeCkoYy5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU5MEFFXHU3QkIxXHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU5MEFFXHU3QkIxXHVGRjAxIn0pfV19KX0pLCgwLHMuanN4KShmLlose2NoaWxkcmVuOigwLHMuanN4KShvLlouR3JvdXAse29wdGlvbnM6W3tsYWJlbDoiXHU3NTM3Iix2YWx1ZToiMCJ9LHtsYWJlbDoiXHU1OTczIix2YWx1ZToiMSJ9XSxuYW1lOiJzZXgiLGxhYmVsOkIuZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS51c2VyLnNleCIsZGVmYXVsdE1lc3NhZ2U6InNleCJ9KSx3aWR0aDoieGwiLHJ1bGVzOlt7cmVxdWlyZWQ6ITEsbWVzc2FnZTooMCxzLmpzeCkoYy5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU2MDI3XHU1MjJCXHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU2MDI3XHU1MjJCXHVGRjAxIn0pfV19KX0pXX0pfSl9O08uZGVmYXVsdD11fSw5MDI1OmZ1bmN0aW9uKFcsTyxlKXtlLmQoTyx7TGo6ZnVuY3Rpb24oKXtyZXR1cm4gYn0sTnE6ZnVuY3Rpb24oKXtyZXR1cm4gUH0sUFI6ZnVuY3Rpb24oKXtyZXR1cm4gZn0sX0w6ZnVuY3Rpb24oKXtyZXR1cm4gdX0sYXo6ZnVuY3Rpb24oKXtyZXR1cm4gdH0sY246ZnVuY3Rpb24oKXtyZXR1cm4gY30sZ2c6ZnVuY3Rpb24oKXtyZXR1cm4gQn0sa1g6ZnVuY3Rpb24oKXtyZXR1cm4gcn0sbEU6ZnVuY3Rpb24oKXtyZXR1cm4gRX0sdFc6ZnVuY3Rpb24oKXtyZXR1cm4gQ30sd3A6ZnVuY3Rpb24oKXtyZXR1cm4geX0seDc6ZnVuY3Rpb24oKXtyZXR1cm4gRn0seEI6ZnVuY3Rpb24oKXtyZXR1cm4gVX19KTt2YXIgTT1lKDE1MDA5KSxpPWUubihNKSxBPWUoOTc4NTcpLHY9ZS5uKEEpLFQ9ZSg5OTI4OSksRD1lLm4oVCksZz1lKDMxOTgxKSxkPWUoNzY3NzIpLGo9ZSgzMDk2NCk7ZnVuY3Rpb24gRShuLGwpe3JldHVybiBhLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBhKCl7cmV0dXJuIGE9RCgpKGkoKSgpLm1hcmsoZnVuY3Rpb24gbihsLGgpe3JldHVybiBpKCkoKS53cmFwKGZ1bmN0aW9uKHApe2Zvcig7Oylzd2l0Y2gocC5wcmV2PXAubmV4dCl7Y2FzZSAwOnJldHVybiBwLmFicnVwdCgicmV0dXJuIiwoMCxkLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS91c2VyL2xpc3QiLHYoKSh7bWV0aG9kOiJHRVQiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgifSxwYXJhbXM6bH0saHx8e30pKSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gcC5zdG9wKCl9fSxuKX0pKSxhLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBmKG4sbCl7cmV0dXJuKDAsZC5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vdXNlci8iLmNvbmNhdChuKSx2KCkoe21ldGhvZDoiR0VUIn0sbHx8e30pKX1mdW5jdGlvbiBjKG4sbCl7cmV0dXJuIF8uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIF8oKXtyZXR1cm4gXz1EKCkoaSgpKCkubWFyayhmdW5jdGlvbiBuKGwsaCl7cmV0dXJuIGkoKSgpLndyYXAoZnVuY3Rpb24ocCl7Zm9yKDs7KXN3aXRjaChwLnByZXY9cC5uZXh0KXtjYXNlIDA6cmV0dXJuIHAuYWJydXB0KCJyZXR1cm4iLCgwLGQucmVxdWVzdCkoIi9hcGkvc3lzdGVtL3VzZXIiLHYoKSh7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In0sZGF0YTpsfSxofHx7fSkpKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBwLnN0b3AoKX19LG4pfSkpLF8uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIFAobixsKXtyZXR1cm4gby5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gbygpe3JldHVybiBvPUQoKShpKCkoKS5tYXJrKGZ1bmN0aW9uIG4obCxoKXtyZXR1cm4gaSgpKCkud3JhcChmdW5jdGlvbihwKXtmb3IoOzspc3dpdGNoKHAucHJldj1wLm5leHQpe2Nhc2UgMDpyZXR1cm4gcC5hYnJ1cHQoInJldHVybiIsKDAsZC5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vdXNlciIsdigpKHttZXRob2Q6IlBVVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCJ9LGRhdGE6bH0saHx8e30pKSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gcC5zdG9wKCl9fSxuKX0pKSxvLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiByKG4sbCl7cmV0dXJuIHMuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHMoKXtyZXR1cm4gcz1EKCkoaSgpKCkubWFyayhmdW5jdGlvbiBuKGwsaCl7cmV0dXJuIGkoKSgpLndyYXAoZnVuY3Rpb24ocCl7Zm9yKDs7KXN3aXRjaChwLnByZXY9cC5uZXh0KXtjYXNlIDA6cmV0dXJuIHAuYWJydXB0KCJyZXR1cm4iLCgwLGQucmVxdWVzdCkoIi9hcGkvc3lzdGVtL3VzZXIvIi5jb25jYXQobCksdigpKHttZXRob2Q6IkRFTEVURSJ9LGh8fHt9KSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIHAuc3RvcCgpfX0sbil9KSkscy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gdShuLGwpe3JldHVybigwLGouc3UpKCIvYXBpL3N5c3RlbS91c2VyL2V4cG9ydCIse3BhcmFtczpufSwidXNlcl8iLmNvbmNhdChuZXcgRGF0ZSgpLmdldFRpbWUoKSwiLnhsc3giKSl9ZnVuY3Rpb24gdChuLGwpe3ZhciBoPXt1c2VySWQ6bixzdGF0dXM6bH07cmV0dXJuKDAsZC5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vdXNlci9jaGFuZ2VTdGF0dXMiLHttZXRob2Q6InB1dCIsZGF0YTpofSl9ZnVuY3Rpb24gbSgpe3JldHVybiByZXF1ZXN0KCIvYXBpL3N5c3RlbS91c2VyL3Byb2ZpbGUiLHttZXRob2Q6ImdldCJ9KX1mdW5jdGlvbiBiKG4pe3JldHVybigwLGQucmVxdWVzdCkoIi9hcGkvc3lzdGVtL3VzZXIvcHJvZmlsZSIse21ldGhvZDoicHV0IixkYXRhOm59KX1mdW5jdGlvbiBVKG4sbCl7dmFyIGg9e3VzZXJJZDpuLHBhc3N3b3JkOmx9O3JldHVybigwLGQucmVxdWVzdCkoIi9hcGkvc3lzdGVtL3VzZXIvcmVzZXRQd2QiLHttZXRob2Q6InB1dCIsZGF0YTpofSl9ZnVuY3Rpb24geShuLGwpe3ZhciBoPXtvbGRQYXNzd29yZDpuLG5ld1Bhc3N3b3JkOmx9O3JldHVybigwLGQucmVxdWVzdCkoIi9hcGkvc3lzdGVtL3VzZXIvcHJvZmlsZS91cGRhdGVQd2QiLHttZXRob2Q6InB1dCIscGFyYW1zOmh9KX1mdW5jdGlvbiBCKG4pe3JldHVybigwLGQucmVxdWVzdCkoIi9hcGkvc3lzdGVtL3VzZXIvcHJvZmlsZS9hdmF0YXIiLHttZXRob2Q6InBvc3QiLGRhdGE6bn0pfWZ1bmN0aW9uIFIobil7cmV0dXJuIHJlcXVlc3QoIi9zeXN0ZW0vdXNlci9hdXRoUm9sZS8iK24se21ldGhvZDoiZ2V0In0pfWZ1bmN0aW9uIEMobil7cmV0dXJuKDAsZC5yZXF1ZXN0KSgiL3N5c3RlbS91c2VyL2F1dGhSb2xlIix7bWV0aG9kOiJwdXQiLHBhcmFtczpufSl9ZnVuY3Rpb24gRihuKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24obCl7KDAsZC5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vdXNlci9kZXB0VHJlZSIse21ldGhvZDoiZ2V0IixwYXJhbXM6bn0pLnRoZW4oZnVuY3Rpb24oaCl7aWYoaCYmaC5jb2RlPT09MjAwKXt2YXIgTD0oMCxnLmx0KShoLmRhdGEpO2woTCl9ZWxzZSBsKFtdKX0pfSl9fSwzMDk2NDpmdW5jdGlvbihXLE8sZSl7ZS5kKE8se3A2OmZ1bmN0aW9uKCl7cmV0dXJuIEV9LHN1OmZ1bmN0aW9uKCl7cmV0dXJuIGF9fSk7dmFyIE09ZSgxNTAwOSksaT1lLm4oTSksQT1lKDk3ODU3KSx2PWUubihBKSxUPWUoOTkyODkpLEQ9ZS5uKFQpLGc9ZSg3Njc3MiksZD17eGxzeDoiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQiLHppcDoiYXBwbGljYXRpb24vemlwIn07ZnVuY3Rpb24gaihfLFApe3ZhciBvPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKSxyPW5ldyBCbG9iKFtfLmRhdGFdLHt0eXBlOlB9KSxzPW5ldyBSZWdFeHAoImZpbGVuYW1lPShbXjtdK1xcLlteXFwuO10rKTsqIiksdT1kZWNvZGVVUkkoXy5oZWFkZXJzWyJjb250ZW50LWRpc3Bvc2l0aW9uIl0pLHQ9cy5leGVjKHUpLG09dD90WzFdOiJmaWxlIjttPW0ucmVwbGFjZSgvIi9nLCIiKSxvLnN0eWxlLmRpc3BsYXk9Im5vbmUiLG8uaHJlZj1VUkwuY3JlYXRlT2JqZWN0VVJMKHIpLG8uc2V0QXR0cmlidXRlKCJkb3dubG9hZCIsbSksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChvKSxvLmNsaWNrKCksVVJMLnJldm9rZU9iamVjdFVSTChvLmhyZWYpLGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQobyl9ZnVuY3Rpb24gRShfKXsoMCxnLnJlcXVlc3QpKF8se21ldGhvZDoiR0VUIixyZXNwb25zZVR5cGU6ImJsb2IiLGdldFJlc3BvbnNlOiEwfSkudGhlbihmdW5jdGlvbihQKXtqKFAsZC56aXApfSl9ZnVuY3Rpb24gYShfLFAsbyl7cmV0dXJuIGYuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGYoKXtyZXR1cm4gZj1EKCkoaSgpKCkubWFyayhmdW5jdGlvbiBfKFAsbyxyKXtyZXR1cm4gaSgpKCkud3JhcChmdW5jdGlvbih1KXtmb3IoOzspc3dpdGNoKHUucHJldj11Lm5leHQpe2Nhc2UgMDpyZXR1cm4gdS5hYnJ1cHQoInJldHVybiIsKDAsZy5yZXF1ZXN0KShQLHYoKSh2KCkoe30sbykse30se21ldGhvZDoiUE9TVCIscmVzcG9uc2VUeXBlOiJibG9iIn0pKS50aGVuKGZ1bmN0aW9uKHQpe3ZhciBtPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKSxiPXQ7bS5zdHlsZS5kaXNwbGF5PSJub25lIixtLmhyZWY9VVJMLmNyZWF0ZU9iamVjdFVSTChiKSxtLnNldEF0dHJpYnV0ZSgiZG93bmxvYWQiLHIpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobSksbS5jbGljaygpLFVSTC5yZXZva2VPYmplY3RVUkwobS5ocmVmKSxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKG0pfSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIHUuc3RvcCgpfX0sXyl9KSksZi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gYyhfKXt3aW5kb3cubG9jYXRpb24uaHJlZj0iL2FwaS9jb21tb24vZG93bmxvYWQ/ZmlsZU5hbWU9Ii5jb25jYXQoZW5jb2RlVVJJKF8pLCImZGVsZXRlPSIsITApfX0sMzE5ODE6ZnVuY3Rpb24oVyxPLGUpe2UuZChPLHtDMjpmdW5jdGlvbigpe3JldHVybiBpfSxsdDpmdW5jdGlvbigpe3JldHVybiB2fX0pO3ZhciBNPWUoODc3MzUpO2Z1bmN0aW9uIGkoVCxELGcsZCxqLEUpe3ZhciBhPXtpZDpEfHwiaWQiLG5hbWU6Z3x8Im5hbWUiLHBhcmVudElkOmR8fCJwYXJlbnRJZCIscGFyZW50TmFtZTpqfHwicGFyZW50TmFtZSIsY2hpbGRyZW5MaXN0OkV8fCJjaGlsZHJlbiJ9LGY9W10sYz1bXSxfPVtdO1QuZm9yRWFjaChmdW5jdGlvbihvKXt2YXIgcj1vLHM9clthLnBhcmVudElkXTtmW3NdfHwoZltzXT1bXSksci5rZXk9clthLmlkXSxyLnRpdGxlPXJbYS5uYW1lXSxyLnZhbHVlPXJbYS5pZF0sclthLmNoaWxkcmVuTGlzdF09bnVsbCxjW3JbYS5pZF1dPXIsZltzXS5wdXNoKHIpfSksVC5mb3JFYWNoKGZ1bmN0aW9uKG8pe3ZhciByPW8scz1yW2EucGFyZW50SWRdO2Nbc118fChyW2EucGFyZW50TmFtZV09IiIsXy5wdXNoKHIpKX0pO2Z1bmN0aW9uIFAobyl7dmFyIHI9bztmW3JbYS5pZF1dJiYoclthLmNoaWxkcmVuTGlzdF18fChyW2EuY2hpbGRyZW5MaXN0XT1bXSksclthLmNoaWxkcmVuTGlzdF09ZltyW2EuaWRdXSksclthLmNoaWxkcmVuTGlzdF0mJnJbYS5jaGlsZHJlbkxpc3RdLmZvckVhY2goZnVuY3Rpb24ocyl7dmFyIHU9czt1W2EucGFyZW50TmFtZV09clthLm5hbWVdLFAodSl9KX1yZXR1cm4gXy5mb3JFYWNoKGZ1bmN0aW9uKG8pe1Aobyl9KSxffXZhciBBPWZ1bmN0aW9uKCl7cmV0dXJuIHBhcnNlKHdpbmRvdy5sb2NhdGlvbi5ocmVmLnNwbGl0KCI/IilbMV0pfTtmdW5jdGlvbiB2KFQpe3ZhciBEPVQubWFwKGZ1bmN0aW9uKGcpe3ZhciBkPXtpZDpnLmlkLHRpdGxlOmcubGFiZWwsa2V5OiIiLmNvbmNhdChnLmlkKSx2YWx1ZTpnLmlkfTtyZXR1cm4gZy5jaGlsZHJlbiYmKGQuY2hpbGRyZW49dihnLmNoaWxkcmVuKSksZH0pO3JldHVybiBEfX19XSk7CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzk2MC5mMjc3ZWM1Yy5hc3luYy5qcyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvOTYwLmYyNzdlYzVjLmFzeW5jLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlmODJlODUKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzk2MC5mMjc3ZWM1Yy5hc3luYy5qcwpAQCAtMCwwICsxLDE3IEBACisoc2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Bybz1zZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvfHxbXSkucHVzaChbWzk2MF0sezYwOTYwOmZ1bmN0aW9uKGNlLE0saSl7InVzZSBzdHJpY3QiO2kuZChNLHtaOmZ1bmN0aW9uKCl7cmV0dXJuICR0fX0pO3ZhciBvPWkoNjcyOTQpLFg9aSg4NjU0OCksdGU9aSg5Mzk2NyksXz1pLm4odGUpLHllPWkoNDg1NTUpLEI9aSg1MDM0NCksdj1pKDg0MTApLFo9aSgyMTc3MCksbmU9aSg5ODQyMyksb2U9aSg0MjU1MCksWT1pKDc5MzcwKSxVPWkoNTMxMjQpLHg9aSgxMDExMCkscT1pKDgzMDYyKSx2ZT1pKDk5NTcpLEQ9aSgxNTEwNSksc2U9aSg5NjE1OSksVWU9aSgyOTYxKSxQZT1pKDE0NzQ3KSx6ZT1pKDgzNTU5KSxGZT1pKDg0ODk4KSxLZT1pKDExNTY4KTtjb25zdCBWZT0oZSxuLHMsdCk9Pntjb25zdHt0aXRsZU1hcmdpbkJvdHRvbTpsLGZvbnRXZWlnaHRTdHJvbmc6YX09dDtyZXR1cm57bWFyZ2luQm90dG9tOmwsY29sb3I6cyxmb250V2VpZ2h0OmEsZm9udFNpemU6ZSxsaW5lSGVpZ2h0Om59fSxYZT1lPT57Y29uc3Qgbj1bMSwyLDMsNCw1XSxzPXt9O3JldHVybiBuLmZvckVhY2godD0+e3NbYAorICAgICAgaCR7dH0mLAorICAgICAgZGl2Ji1oJHt0fSwKKyAgICAgIGRpdiYtaCR7dH0gPiB0ZXh0YXJlYSwKKyAgICAgIGgke3R9CisgICAgYF09VmUoZVtgZm9udFNpemVIZWFkaW5nJHt0fWBdLGVbYGxpbmVIZWlnaHRIZWFkaW5nJHt0fWBdLGUuY29sb3JUZXh0SGVhZGluZyxlKX0pLHN9LEplPWU9Pntjb25zdHtjb21wb25lbnRDbHM6bn09ZTtyZXR1cm57ImEmLCBhIjpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sKDAsUGUuTmQpKGUpKSx7dXNlclNlbGVjdDoidGV4dCIsW2AmW2Rpc2FibGVkXSwgJiR7bn0tZGlzYWJsZWRgXTp7Y29sb3I6ZS5jb2xvclRleHREaXNhYmxlZCxjdXJzb3I6Im5vdC1hbGxvd2VkIiwiJjphY3RpdmUsICY6aG92ZXIiOntjb2xvcjplLmNvbG9yVGV4dERpc2FibGVkfSwiJjphY3RpdmUiOntwb2ludGVyRXZlbnRzOiJub25lIn19fSl9fSxHZT1lPT4oe2NvZGU6e21hcmdpbjoiMCAwLjJlbSIscGFkZGluZ0lubGluZToiMC40ZW0iLHBhZGRpbmdCbG9jazoiMC4yZW0gMC4xZW0iLGZvbnRTaXplOiI4NSUiLGZvbnRGYW1pbHk6ZS5mb250RmFtaWx5Q29kZSxiYWNrZ3JvdW5kOiJyZ2JhKDE1MCwgMTUwLCAxNTAsIDAuMSkiLGJvcmRlcjoiMXB4IHNvbGlkIHJnYmEoMTAwLCAxMDAsIDEwMCwgMC4yKSIsYm9yZGVyUmFkaXVzOjN9LGtiZDp7bWFyZ2luOiIwIDAuMmVtIixwYWRkaW5nSW5saW5lOiIwLjRlbSIscGFkZGluZ0Jsb2NrOiIwLjE1ZW0gMC4xZW0iLGZvbnRTaXplOiI5MCUiLGZvbnRGYW1pbHk6ZS5mb250RmFtaWx5Q29kZSxiYWNrZ3JvdW5kOiJyZ2JhKDE1MCwgMTUwLCAxNTAsIDAuMDYpIixib3JkZXI6IjFweCBzb2xpZCByZ2JhKDEwMCwgMTAwLCAxMDAsIDAuMikiLGJvcmRlckJvdHRvbVdpZHRoOjIsYm9yZGVyUmFkaXVzOjN9LG1hcms6e3BhZGRpbmc6MCxiYWNrZ3JvdW5kQ29sb3I6RmUuZ29sZFsyXX0sInUsIGlucyI6e3RleHREZWNvcmF0aW9uOiJ1bmRlcmxpbmUiLHRleHREZWNvcmF0aW9uU2tpcEluazoiYXV0byJ9LCJzLCBkZWwiOnt0ZXh0RGVjb3JhdGlvbjoibGluZS10aHJvdWdoIn0sc3Ryb25nOntmb250V2VpZ2h0OjYwMH0sInVsLCBvbCI6e21hcmdpbklubGluZTowLG1hcmdpbkJsb2NrOiIwIDFlbSIscGFkZGluZzowLGxpOnttYXJnaW5JbmxpbmU6IjIwcHggMCIsbWFyZ2luQmxvY2s6MCxwYWRkaW5nSW5saW5lOiI0cHggMCIscGFkZGluZ0Jsb2NrOjB9fSx1bDp7bGlzdFN0eWxlVHlwZToiY2lyY2xlIix1bDp7bGlzdFN0eWxlVHlwZToiZGlzYyJ9fSxvbDp7bGlzdFN0eWxlVHlwZToiZGVjaW1hbCJ9LCJwcmUsIGJsb2NrcXVvdGUiOnttYXJnaW46IjFlbSAwIn0scHJlOntwYWRkaW5nOiIwLjRlbSAwLjZlbSIsd2hpdGVTcGFjZToicHJlLXdyYXAiLHdvcmRXcmFwOiJicmVhay13b3JkIixiYWNrZ3JvdW5kOiJyZ2JhKDE1MCwgMTUwLCAxNTAsIDAuMSkiLGJvcmRlcjoiMXB4IHNvbGlkIHJnYmEoMTAwLCAxMDAsIDEwMCwgMC4yKSIsYm9yZGVyUmFkaXVzOjMsZm9udEZhbWlseTplLmZvbnRGYW1pbHlDb2RlLGNvZGU6e2Rpc3BsYXk6ImlubGluZSIsbWFyZ2luOjAscGFkZGluZzowLGZvbnRTaXplOiJpbmhlcml0Iixmb250RmFtaWx5OiJpbmhlcml0IixiYWNrZ3JvdW5kOiJ0cmFuc3BhcmVudCIsYm9yZGVyOjB9fSxibG9ja3F1b3RlOntwYWRkaW5nSW5saW5lOiIwLjZlbSAwIixwYWRkaW5nQmxvY2s6MCxib3JkZXJJbmxpbmVTdGFydDoiNHB4IHNvbGlkIHJnYmEoMTAwLCAxMDAsIDEwMCwgMC4yKSIsb3BhY2l0eTouODV9fSksUWU9ZT0+e2NvbnN0e2NvbXBvbmVudENsczpuLHBhZGRpbmdTTTpzfT1lLHQ9cztyZXR1cm57IiYtZWRpdC1jb250ZW50Ijp7cG9zaXRpb246InJlbGF0aXZlIiwiZGl2JiI6e2luc2V0SW5saW5lU3RhcnQ6ZS5jYWxjKGUucGFkZGluZ1NNKS5tdWwoLTEpLmVxdWFsKCksbWFyZ2luVG9wOmUuY2FsYyh0KS5tdWwoLTEpLmVxdWFsKCksbWFyZ2luQm90dG9tOmBjYWxjKDFlbSAtICR7KDAsS2UuYmYpKHQpfSlgfSxbYCR7bn0tZWRpdC1jb250ZW50LWNvbmZpcm1gXTp7cG9zaXRpb246ImFic29sdXRlIixpbnNldElubGluZUVuZDplLmNhbGMoZS5tYXJnaW5YUykuYWRkKDIpLmVxdWFsKCksaW5zZXRCbG9ja0VuZDplLm1hcmdpblhTLGNvbG9yOmUuY29sb3JUZXh0RGVzY3JpcHRpb24sZm9udFdlaWdodDoibm9ybWFsIixmb250U2l6ZTplLmZvbnRTaXplLGZvbnRTdHlsZToibm9ybWFsIixwb2ludGVyRXZlbnRzOiJub25lIn0sdGV4dGFyZWE6e21hcmdpbjoiMCFpbXBvcnRhbnQiLE1velRyYW5zaXRpb246Im5vbmUiLGhlaWdodDoiMWVtIn19fX0sWWU9ZT0+KHtbYCR7ZS5jb21wb25lbnRDbHN9LWNvcHktc3VjY2Vzc2BdOnsiXG4gICAgJixcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMiOntjb2xvcjplLmNvbG9yU3VjY2Vzc319LFtgJHtlLmNvbXBvbmVudENsc30tY29weS1pY29uLW9ubHlgXTp7bWFyZ2luSW5saW5lU3RhcnQ6MH19KSxxZT0oKT0+KHsiXG4gIGEmLWVsbGlwc2lzLFxuICBzcGFuJi1lbGxpcHNpc1xuICAiOntkaXNwbGF5OiJpbmxpbmUtYmxvY2siLG1heFdpZHRoOiIxMDAlIn0sIiYtZWxsaXBzaXMtc2luZ2xlLWxpbmUiOnt3aGl0ZVNwYWNlOiJub3dyYXAiLG92ZXJmbG93OiJoaWRkZW4iLHRleHRPdmVyZmxvdzoiZWxsaXBzaXMiLCJhJiwgc3BhbiYiOnt2ZXJ0aWNhbEFsaWduOiJib3R0b20ifSwiPiBjb2RlIjp7cGFkZGluZ0Jsb2NrOjAsbWF4V2lkdGg6ImNhbGMoMTAwJSAtIDEuMmVtKSIsZGlzcGxheToiaW5saW5lLWJsb2NrIixvdmVyZmxvdzoiaGlkZGVuIix0ZXh0T3ZlcmZsb3c6ImVsbGlwc2lzIix2ZXJ0aWNhbEFsaWduOiJib3R0b20iLGJveFNpemluZzoiY29udGVudC1ib3gifX0sIiYtZWxsaXBzaXMtbXVsdGlwbGUtbGluZSI6e2Rpc3BsYXk6Ii13ZWJraXQtYm94IixvdmVyZmxvdzoiaGlkZGVuIixXZWJraXRMaW5lQ2xhbXA6MyxXZWJraXRCb3hPcmllbnQ6InZlcnRpY2FsIn19KSxfZT1lPT57Y29uc3R7Y29tcG9uZW50Q2xzOm4sdGl0bGVNYXJnaW5Ub3A6c309ZTtyZXR1cm57W25dOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHtjb2xvcjplLmNvbG9yVGV4dCx3b3JkQnJlYWs6ImJyZWFrLXdvcmQiLGxpbmVIZWlnaHQ6ZS5saW5lSGVpZ2h0LFtgJiR7bn0tc2Vjb25kYXJ5YF06e2NvbG9yOmUuY29sb3JUZXh0RGVzY3JpcHRpb259LFtgJiR7bn0tc3VjY2Vzc2BdOntjb2xvcjplLmNvbG9yU3VjY2Vzc30sW2AmJHtufS13YXJuaW5nYF06e2NvbG9yOmUuY29sb3JXYXJuaW5nfSxbYCYke259LWRhbmdlcmBdOntjb2xvcjplLmNvbG9yRXJyb3IsImEmOmFjdGl2ZSwgYSY6Zm9jdXMiOntjb2xvcjplLmNvbG9yRXJyb3JBY3RpdmV9LCJhJjpob3ZlciI6e2NvbG9yOmUuY29sb3JFcnJvckhvdmVyfX0sW2AmJHtufS1kaXNhYmxlZGBdOntjb2xvcjplLmNvbG9yVGV4dERpc2FibGVkLGN1cnNvcjoibm90LWFsbG93ZWQiLHVzZXJTZWxlY3Q6Im5vbmUifSwiXG4gICAgICAgIGRpdiYsXG4gICAgICAgIHBcbiAgICAgICI6e21hcmdpbkJvdHRvbToiMWVtIn19LFhlKGUpKSx7W2AKKyAgICAgICYgKyBoMSR7bn0sCisgICAgICAmICsgaDIke259LAorICAgICAgJiArIGgzJHtufSwKKyAgICAgICYgKyBoNCR7bn0sCisgICAgICAmICsgaDUke259CisgICAgICBgXTp7bWFyZ2luVG9wOnN9LCJcbiAgICAgIGRpdixcbiAgICAgIHVsLFxuICAgICAgbGksXG4gICAgICBwLFxuICAgICAgaDEsXG4gICAgICBoMixcbiAgICAgIGgzLFxuICAgICAgaDQsXG4gICAgICBoNSI6eyJcbiAgICAgICAgKyBoMSxcbiAgICAgICAgKyBoMixcbiAgICAgICAgKyBoMyxcbiAgICAgICAgKyBoNCxcbiAgICAgICAgKyBoNVxuICAgICAgICAiOnttYXJnaW5Ub3A6c319fSksR2UoZSkpLEplKGUpKSx7W2AKKyAgICAgICAgJHtufS1leHBhbmQsCisgICAgICAgICR7bn0tY29sbGFwc2UsCisgICAgICAgICR7bn0tZWRpdCwKKyAgICAgICAgJHtufS1jb3B5CisgICAgICBgXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sKDAsUGUuTmQpKGUpKSx7bWFyZ2luSW5saW5lU3RhcnQ6ZS5tYXJnaW5YWFN9KX0pLFFlKGUpKSxZZShlKSkscWUoKSkseyImLXJ0bCI6e2RpcmVjdGlvbjoicnRsIn19KX19LGV0PSgpPT4oe3RpdGxlTWFyZ2luVG9wOiIxLjJlbSIsdGl0bGVNYXJnaW5Cb3R0b206IjAuNWVtIn0pO3ZhciBMZT0oMCx6ZS5JJCkoIlR5cG9ncmFwaHkiLGU9PltfZShlKV0sZXQpLHR0PWU9Pntjb25zdHtwcmVmaXhDbHM6biwiYXJpYS1sYWJlbCI6cyxjbGFzc05hbWU6dCxzdHlsZTpsLGRpcmVjdGlvbjphLG1heExlbmd0aDp5LGF1dG9TaXplOkM9ITAsdmFsdWU6ZCxvblNhdmU6dSxvbkNhbmNlbDpmLG9uRW5kOmcsY29tcG9uZW50OnAsZW50ZXJJY29uOk89by5jcmVhdGVFbGVtZW50KHZlLlosbnVsbCl9PWUsUD1vLnVzZVJlZihudWxsKSxUPW8udXNlUmVmKCExKSxMPW8udXNlUmVmKG51bGwpLFttLEFdPW8udXNlU3RhdGUoZCk7by51c2VFZmZlY3QoKCk9PntBKGQpfSxbZF0pLG8udXNlRWZmZWN0KCgpPT57dmFyIGI7aWYoISgoYj1QLmN1cnJlbnQpPT09bnVsbHx8Yj09PXZvaWQgMCkmJmIucmVzaXphYmxlVGV4dEFyZWEpe2NvbnN0e3RleHRBcmVhOmh9PVAuY3VycmVudC5yZXNpemFibGVUZXh0QXJlYTtoLmZvY3VzKCk7Y29uc3R7bGVuZ3RoOlN9PWgudmFsdWU7aC5zZXRTZWxlY3Rpb25SYW5nZShTLFMpfX0sW10pO2NvbnN0IEo9Yj0+e2xldHt0YXJnZXQ6aH09YjtBKGgudmFsdWUucmVwbGFjZSgvW1xuXHJdL2csIiIpKX0sdz0oKT0+e1QuY3VycmVudD0hMH0saj0oKT0+e1QuY3VycmVudD0hMX0sJD1iPT57bGV0e2tleUNvZGU6aH09YjtULmN1cnJlbnR8fChMLmN1cnJlbnQ9aCl9LEU9KCk9Pnt1KG0udHJpbSgpKX0sRz1iPT57bGV0e2tleUNvZGU6aCxjdHJsS2V5OlMsYWx0S2V5OkssbWV0YUtleTpJLHNoaWZ0S2V5Omt9PWI7TC5jdXJyZW50IT09aHx8VC5jdXJyZW50fHxTfHxLfHxJfHxrfHwoaD09PUQuWi5FTlRFUj8oRSgpLGc9PW51bGx8fGcoKSk6aD09PUQuWi5FU0MmJmYoKSl9LHJlPSgpPT57RSgpfSxbZWUseixpZV09TGUobiksRj1fKCkobixgJHtufS1lZGl0LWNvbnRlbnRgLHtbYCR7bn0tcnRsYF06YT09PSJydGwiLFtgJHtufS0ke3B9YF06ISFwfSx0LHosaWUpO3JldHVybiBlZShvLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpGLHN0eWxlOmx9LG8uY3JlYXRlRWxlbWVudChVZS5aLHtyZWY6UCxtYXhMZW5ndGg6eSx2YWx1ZTptLG9uQ2hhbmdlOkosb25LZXlEb3duOiQsb25LZXlVcDpHLG9uQ29tcG9zaXRpb25TdGFydDp3LG9uQ29tcG9zaXRpb25FbmQ6aixvbkJsdXI6cmUsImFyaWEtbGFiZWwiOnMscm93czoxLGF1dG9TaXplOkN9KSxPIT09bnVsbD8oMCxzZS5UbSkoTyx7Y2xhc3NOYW1lOmAke259LWVkaXQtY29udGVudC1jb25maXJtYH0pOm51bGwpKX0sbnQ9aSgyMDY0MCksb3Q9aS5uKG50KSxzdD1pKDY2NjgwKTtmdW5jdGlvbiBsdChlKXtyZXR1cm4oYXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOiExKSYmZT09bnVsbD9bXTpBcnJheS5pc0FycmF5KGUpP2U6W2VdfXZhciBydD1mdW5jdGlvbihlLG4scyx0KXtmdW5jdGlvbiBsKGEpe3JldHVybiBhIGluc3RhbmNlb2Ygcz9hOm5ldyBzKGZ1bmN0aW9uKHkpe3koYSl9KX1yZXR1cm4gbmV3KHN8fChzPVByb21pc2UpKShmdW5jdGlvbihhLHkpe2Z1bmN0aW9uIEMoZil7dHJ5e3UodC5uZXh0KGYpKX1jYXRjaChnKXt5KGcpfX1mdW5jdGlvbiBkKGYpe3RyeXt1KHQudGhyb3coZikpfWNhdGNoKGcpe3koZyl9fWZ1bmN0aW9uIHUoZil7Zi5kb25lP2EoZi52YWx1ZSk6bChmLnZhbHVlKS50aGVuKEMsZCl9dSgodD10LmFwcGx5KGUsbnx8W10pKS5uZXh0KCkpfSl9LGl0PWU9PntsZXR7Y29weUNvbmZpZzpuLGNoaWxkcmVuOnN9PWU7Y29uc3RbdCxsXT1vLnVzZVN0YXRlKCExKSxbYSx5XT1vLnVzZVN0YXRlKCExKSxDPW8udXNlUmVmKG51bGwpLGQ9KCk9PntDLmN1cnJlbnQmJmNsZWFyVGltZW91dChDLmN1cnJlbnQpfSx1PXt9O24uZm9ybWF0JiYodS5mb3JtYXQ9bi5mb3JtYXQpLG8udXNlRWZmZWN0KCgpPT5kLFtdKTtjb25zdCBmPSgwLHN0LlopKGc9PnJ0KHZvaWQgMCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3ZhciBwO2c9PW51bGx8fGcucHJldmVudERlZmF1bHQoKSxnPT1udWxsfHxnLnN0b3BQcm9wYWdhdGlvbigpLHkoITApO3RyeXtjb25zdCBPPXR5cGVvZiBuLnRleHQ9PSJmdW5jdGlvbiI/eWllbGQgbi50ZXh0KCk6bi50ZXh0O290KCkoT3x8bHQocywhMCkuam9pbigiIil8fCIiLHUpLHkoITEpLGwoITApLGQoKSxDLmN1cnJlbnQ9c2V0VGltZW91dCgoKT0+e2woITEpfSwzZTMpLChwPW4ub25Db3B5KT09PW51bGx8fHA9PT12b2lkIDB8fHAuY2FsbChuLGcpfWNhdGNoKE8pe3Rocm93IHkoITEpLE99fSkpO3JldHVybntjb3BpZWQ6dCxjb3B5TG9hZGluZzphLG9uQ2xpY2s6Zn19O2Z1bmN0aW9uIGJlKGUsbil7cmV0dXJuIG8udXNlTWVtbygoKT0+e2NvbnN0IHM9ISFlO3JldHVybltzLE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxuKSxzJiZ0eXBlb2YgZT09Im9iamVjdCI/ZTpudWxsKV19LFtlXSl9dmFyIGF0PWU9Pntjb25zdCBuPSgwLG8udXNlUmVmKSh2b2lkIDApO3JldHVybigwLG8udXNlRWZmZWN0KSgoKT0+e24uY3VycmVudD1lfSksbi5jdXJyZW50fSxjdD0oZSxuLHMpPT4oMCxvLnVzZU1lbW8pKCgpPT5lPT09ITA/e3RpdGxlOm4hPW51bGw/bjpzfTooMCxvLmlzVmFsaWRFbGVtZW50KShlKT97dGl0bGU6ZX06dHlwZW9mIGU9PSJvYmplY3QiP09iamVjdC5hc3NpZ24oe3RpdGxlOm4hPW51bGw/bjpzfSxlKTp7dGl0bGU6ZX0sW2UsbixzXSksZHQ9ZnVuY3Rpb24oZSxuKXt2YXIgcz17fTtmb3IodmFyIHQgaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSx0KSYmbi5pbmRleE9mKHQpPDAmJihzW3RdPWVbdF0pO2lmKGUhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgbD0wLHQ9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtsPHQubGVuZ3RoO2wrKyluLmluZGV4T2YodFtsXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsdFtsXSkmJihzW3RbbF1dPWVbdFtsXV0pO3JldHVybiBzfSwkZT1vLmZvcndhcmRSZWYoKGUsbik9Pntjb25zdHtwcmVmaXhDbHM6cyxjb21wb25lbnQ6dD0iYXJ0aWNsZSIsY2xhc3NOYW1lOmwscm9vdENsYXNzTmFtZTphLHNldENvbnRlbnRSZWY6eSxjaGlsZHJlbjpDLGRpcmVjdGlvbjpkLHN0eWxlOnV9PWUsZj1kdChlLFsicHJlZml4Q2xzIiwiY29tcG9uZW50IiwiY2xhc3NOYW1lIiwicm9vdENsYXNzTmFtZSIsInNldENvbnRlbnRSZWYiLCJjaGlsZHJlbiIsImRpcmVjdGlvbiIsInN0eWxlIl0pLHtnZXRQcmVmaXhDbHM6ZyxkaXJlY3Rpb246cCxjbGFzc05hbWU6TyxzdHlsZTpQfT0oMCxVLmRqKSgidHlwb2dyYXBoeSIpLFQ9ZCE9bnVsbD9kOnAsTD15PygwLG9lLnNRKShuLHkpOm4sbT1nKCJ0eXBvZ3JhcGh5IixzKSxbQSxKLHddPUxlKG0pLGo9XygpKG0sTyx7W2Ake219LXJ0bGBdOlQ9PT0icnRsIn0sbCxhLEosdyksJD1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sUCksdSk7cmV0dXJuIEEoby5jcmVhdGVFbGVtZW50KHQsT2JqZWN0LmFzc2lnbih7Y2xhc3NOYW1lOmosc3R5bGU6JCxyZWY6TH0sZiksQykpfSksdXQ9aSg2MzYwNikscHQ9aSg1NzEzMiksZnQ9aSg1MDg4OCk7ZnVuY3Rpb24gTmUoZSl7cmV0dXJuIGU9PT0hMT9bITEsITFdOkFycmF5LmlzQXJyYXkoZSk/ZTpbZV19ZnVuY3Rpb24gaGUoZSxuLHMpe3JldHVybiBlPT09ITB8fGU9PT12b2lkIDA/bjplfHxzJiZufWZ1bmN0aW9uIGd0KGUpe2NvbnN0IG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZW0iKTtlLmFwcGVuZENoaWxkKG4pO2NvbnN0IHM9ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx0PW4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuIGUucmVtb3ZlQ2hpbGQobikscy5sZWZ0PnQubGVmdHx8dC5yaWdodD5zLnJpZ2h0fHxzLnRvcD50LnRvcHx8dC5ib3R0b20+cy5ib3R0b219Y29uc3QgRWU9ZT0+WyJzdHJpbmciLCJudW1iZXIiXS5pbmNsdWRlcyh0eXBlb2YgZSk7dmFyIG10PWU9PntsZXR7cHJlZml4Q2xzOm4sY29waWVkOnMsbG9jYWxlOnQsaWNvbk9ubHk6bCx0b29sdGlwczphLGljb246eSx0YWJJbmRleDpDLG9uQ29weTpkLGxvYWRpbmc6dX09ZTtjb25zdCBmPU5lKGEpLGc9TmUoeSkse2NvcGllZDpwLGNvcHk6T309dCE9bnVsbD90Ont9LFA9cz9wOk8sVD1oZShmW3M/MTowXSxQKSxMPXR5cGVvZiBUPT0ic3RyaW5nIj9UOlA7cmV0dXJuIG8uY3JlYXRlRWxlbWVudChxLlose3RpdGxlOlR9LG8uY3JlYXRlRWxlbWVudCgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6XygpKGAke259LWNvcHlgLHtbYCR7bn0tY29weS1zdWNjZXNzYF06cyxbYCR7bn0tY29weS1pY29uLW9ubHlgXTpsfSksb25DbGljazpkLCJhcmlhLWxhYmVsIjpMLHRhYkluZGV4OkN9LHM/aGUoZ1sxXSxvLmNyZWF0ZUVsZW1lbnQodXQuWixudWxsKSwhMCk6aGUoZ1swXSx1P28uY3JlYXRlRWxlbWVudChmdC5aLG51bGwpOm8uY3JlYXRlRWxlbWVudChwdC5aLG51bGwpLCEwKSkpfSx5dD1pKDc0OTAyKTtjb25zdCBkZT1vLmZvcndhcmRSZWYoKGUsbik9PntsZXR7c3R5bGU6cyxjaGlsZHJlbjp0fT1lO2NvbnN0IGw9by51c2VSZWYobnVsbCk7cmV0dXJuIG8udXNlSW1wZXJhdGl2ZUhhbmRsZShuLCgpPT4oe2lzRXhjZWVkOigpPT57Y29uc3QgYT1sLmN1cnJlbnQ7cmV0dXJuIGEuc2Nyb2xsSGVpZ2h0PmEuY2xpZW50SGVpZ2h0fSxnZXRIZWlnaHQ6KCk9PmwuY3VycmVudC5jbGllbnRIZWlnaHR9KSksby5jcmVhdGVFbGVtZW50KCJzcGFuIix7ImFyaWEtaGlkZGVuIjohMCxyZWY6bCxzdHlsZTpPYmplY3QuYXNzaWduKHtwb3NpdGlvbjoiZml4ZWQiLGRpc3BsYXk6ImJsb2NrIixsZWZ0OjAsdG9wOjAscG9pbnRlckV2ZW50czoibm9uZSIsYmFja2dyb3VuZENvbG9yOiJyZ2JhKDI1NSwgMCwgMCwgMC42NSkifSxzKX0sdCl9KSx2dD1lPT5lLnJlZHVjZSgobixzKT0+bisoRWUocyk/U3RyaW5nKHMpLmxlbmd0aDoxKSwwKTtmdW5jdGlvbiBEZShlLG4pe2xldCBzPTA7Y29uc3QgdD1bXTtmb3IobGV0IGw9MDtsPGUubGVuZ3RoO2wrPTEpe2lmKHM9PT1uKXJldHVybiB0O2NvbnN0IGE9ZVtsXSxDPUVlKGEpP1N0cmluZyhhKS5sZW5ndGg6MSxkPXMrQztpZihkPm4pe2NvbnN0IHU9bi1zO3JldHVybiB0LnB1c2goU3RyaW5nKGEpLnNsaWNlKDAsdSkpLHR9dC5wdXNoKGEpLHM9ZH1yZXR1cm4gZX1jb25zdCB4ZT0wLENlPTEsU2U9MixPZT0zLE1lPTQsdWU9e2Rpc3BsYXk6Ii13ZWJraXQtYm94IixvdmVyZmxvdzoiaGlkZGVuIixXZWJraXRCb3hPcmllbnQ6InZlcnRpY2FsIn07ZnVuY3Rpb24gYnQoZSl7Y29uc3R7ZW5hYmxlTWVhc3VyZTpuLHdpZHRoOnMsdGV4dDp0LGNoaWxkcmVuOmwscm93czphLGV4cGFuZGVkOnksbWlzY0RlcHM6QyxvbkVsbGlwc2lzOmR9PWUsdT1vLnVzZU1lbW8oKCk9PigwLEIuWikodCksW3RdKSxmPW8udXNlTWVtbygoKT0+dnQodSksW3RdKSxnPW8udXNlTWVtbygoKT0+bCh1LCExKSxbdF0pLFtwLE9dPW8udXNlU3RhdGUobnVsbCksUD1vLnVzZVJlZihudWxsKSxUPW8udXNlUmVmKG51bGwpLEw9by51c2VSZWYobnVsbCksbT1vLnVzZVJlZihudWxsKSxBPW8udXNlUmVmKG51bGwpLFtKLHddPW8udXNlU3RhdGUoITEpLFtqLCRdPW8udXNlU3RhdGUoeGUpLFtFLEddPW8udXNlU3RhdGUoMCksW3JlLGVlXT1vLnVzZVN0YXRlKG51bGwpOygwLHYuWikoKCk9PnskKG4mJnMmJmY/Q2U6eGUpfSxbcyx0LGEsbix1XSksKDAsdi5aKSgoKT0+e3ZhciBiLGgsUyxLO2lmKGo9PT1DZSl7JChTZSk7Y29uc3QgST1ULmN1cnJlbnQmJmdldENvbXB1dGVkU3R5bGUoVC5jdXJyZW50KS53aGl0ZVNwYWNlO2VlKEkpfWVsc2UgaWYoaj09PVNlKXtjb25zdCBJPSEhKCEoKGI9TC5jdXJyZW50KT09PW51bGx8fGI9PT12b2lkIDApJiZiLmlzRXhjZWVkKCkpOyQoST9PZTpNZSksTyhJP1swLGZdOm51bGwpLHcoSSk7Y29uc3Qgaz0oKGg9TC5jdXJyZW50KT09PW51bGx8fGg9PT12b2lkIDA/dm9pZCAwOmguZ2V0SGVpZ2h0KCkpfHwwLFRlPWE9PT0xPzA6KChTPW0uY3VycmVudCk9PT1udWxsfHxTPT09dm9pZCAwP3ZvaWQgMDpTLmdldEhlaWdodCgpKXx8MCxmZT0oKEs9QS5jdXJyZW50KT09PW51bGx8fEs9PT12b2lkIDA/dm9pZCAwOksuZ2V0SGVpZ2h0KCkpfHwwLHdlPU1hdGgubWF4KGssVGUrZmUpO0cod2UrMSksZChJKX19LFtqXSk7Y29uc3Qgej1wP01hdGguY2VpbCgocFswXStwWzFdKS8yKTowOygwLHYuWikoKCk9Pnt2YXIgYjtjb25zdFtoLFNdPXB8fFswLDBdO2lmKGghPT1TKXtjb25zdCBJPSgoKGI9UC5jdXJyZW50KT09PW51bGx8fGI9PT12b2lkIDA/dm9pZCAwOmIuZ2V0SGVpZ2h0KCkpfHwwKT5FO2xldCBrPXo7Uy1oPT09MSYmKGs9ST9oOlMpLE8oST9baCxrXTpbayxTXSl9fSxbcCx6XSk7Y29uc3QgaWU9by51c2VNZW1vKCgpPT57aWYoIW4pcmV0dXJuIGwodSwhMSk7aWYoaiE9PU9lfHwhcHx8cFswXSE9PXBbMV0pe2NvbnN0IGI9bCh1LCExKTtyZXR1cm5bTWUseGVdLmluY2x1ZGVzKGopP2I6by5jcmVhdGVFbGVtZW50KCJzcGFuIix7c3R5bGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHVlKSx7V2Via2l0TGluZUNsYW1wOmF9KX0sYil9cmV0dXJuIGwoeT91OkRlKHUscFswXSksSil9LFt5LGoscCx1XS5jb25jYXQoKDAseXQuWikoQykpKSxGPXt3aWR0aDpzLG1hcmdpbjowLHBhZGRpbmc6MCx3aGl0ZVNwYWNlOnJlPT09Im5vd3JhcCI/Im5vcm1hbCI6ImluaGVyaXQifTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KG8uRnJhZ21lbnQsbnVsbCxpZSxqPT09U2UmJm8uY3JlYXRlRWxlbWVudChvLkZyYWdtZW50LG51bGwsby5jcmVhdGVFbGVtZW50KGRlLHtzdHlsZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxGKSx1ZSkse1dlYmtpdExpbmVDbGFtcDphfSkscmVmOkx9LGcpLG8uY3JlYXRlRWxlbWVudChkZSx7c3R5bGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sRiksdWUpLHtXZWJraXRMaW5lQ2xhbXA6YS0xfSkscmVmOm19LGcpLG8uY3JlYXRlRWxlbWVudChkZSx7c3R5bGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sRiksdWUpLHtXZWJraXRMaW5lQ2xhbXA6MX0pLHJlZjpBfSxsKFtdLCEwKSkpLGo9PT1PZSYmcCYmcFswXSE9PXBbMV0mJm8uY3JlYXRlRWxlbWVudChkZSx7c3R5bGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LEYpLHt0b3A6NDAwfSkscmVmOlB9LGwoRGUodSx6KSwhMCkpLGo9PT1DZSYmby5jcmVhdGVFbGVtZW50KCJzcGFuIix7c3R5bGU6e3doaXRlU3BhY2U6ImluaGVyaXQifSxyZWY6VH0pKX12YXIgaHQ9ZT0+e2xldHtlbmFibGVFbGxpcHNpczpuLGlzRWxsaXBzaXM6cyxjaGlsZHJlbjp0LHRvb2x0aXBQcm9wczpsfT1lO3JldHVybiEobCE9bnVsbCYmbC50aXRsZSl8fCFuP3Q6by5jcmVhdGVFbGVtZW50KHEuWixPYmplY3QuYXNzaWduKHtvcGVuOnM/dm9pZCAwOiExfSxsKSx0KX0sRXQ9ZnVuY3Rpb24oZSxuKXt2YXIgcz17fTtmb3IodmFyIHQgaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSx0KSYmbi5pbmRleE9mKHQpPDAmJihzW3RdPWVbdF0pO2lmKGUhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgbD0wLHQ9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtsPHQubGVuZ3RoO2wrKyluLmluZGV4T2YodFtsXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsdFtsXSkmJihzW3RbbF1dPWVbdFtsXV0pO3JldHVybiBzfTtmdW5jdGlvbiB4dChlLG4pe2xldHttYXJrOnMsY29kZTp0LHVuZGVybGluZTpsLGRlbGV0ZTphLHN0cm9uZzp5LGtleWJvYXJkOkMsaXRhbGljOmR9PWUsdT1uO2Z1bmN0aW9uIGYoZyxwKXtwJiYodT1vLmNyZWF0ZUVsZW1lbnQoZyx7fSx1KSl9cmV0dXJuIGYoInN0cm9uZyIseSksZigidSIsbCksZigiZGVsIixhKSxmKCJjb2RlIix0KSxmKCJtYXJrIixzKSxmKCJrYmQiLEMpLGYoImkiLGQpLHV9Y29uc3QgQ3Q9Ii4uLiI7dmFyIHBlPW8uZm9yd2FyZFJlZigoZSxuKT0+e3ZhciBzO2NvbnN0e3ByZWZpeENsczp0LGNsYXNzTmFtZTpsLHN0eWxlOmEsdHlwZTp5LGRpc2FibGVkOkMsY2hpbGRyZW46ZCxlbGxpcHNpczp1LGVkaXRhYmxlOmYsY29weWFibGU6Zyxjb21wb25lbnQ6cCx0aXRsZTpPfT1lLFA9RXQoZSxbInByZWZpeENscyIsImNsYXNzTmFtZSIsInN0eWxlIiwidHlwZSIsImRpc2FibGVkIiwiY2hpbGRyZW4iLCJlbGxpcHNpcyIsImVkaXRhYmxlIiwiY29weWFibGUiLCJjb21wb25lbnQiLCJ0aXRsZSJdKSx7Z2V0UHJlZml4Q2xzOlQsZGlyZWN0aW9uOkx9PW8udXNlQ29udGV4dChVLkVfKSxbbV09KDAseC5aKSgiVGV4dCIpLEE9by51c2VSZWYobnVsbCksSj1vLnVzZVJlZihudWxsKSx3PVQoInR5cG9ncmFwaHkiLHQpLGo9KDAsbmUuWikoUCxbIm1hcmsiLCJjb2RlIiwiZGVsZXRlIiwidW5kZXJsaW5lIiwic3Ryb25nIiwia2V5Ym9hcmQiLCJpdGFsaWMiXSksWyQsRV09YmUoZiksW0cscmVdPSgwLFouWikoITEse3ZhbHVlOkUuZWRpdGluZ30pLHt0cmlnZ2VyVHlwZTplZT1bImljb24iXX09RSx6PXI9Pnt2YXIgYztyJiYoKGM9RS5vblN0YXJ0KT09PW51bGx8fGM9PT12b2lkIDB8fGMuY2FsbChFKSkscmUocil9LGllPWF0KEcpOygwLHYuWikoKCk9Pnt2YXIgcjshRyYmaWUmJigocj1KLmN1cnJlbnQpPT09bnVsbHx8cj09PXZvaWQgMHx8ci5mb2N1cygpKX0sW0ddKTtjb25zdCBGPXI9PntyPT1udWxsfHxyLnByZXZlbnREZWZhdWx0KCkseighMCl9LGI9cj0+e3ZhciBjOyhjPUUub25DaGFuZ2UpPT09bnVsbHx8Yz09PXZvaWQgMHx8Yy5jYWxsKEUscikseighMSl9LGg9KCk9Pnt2YXIgcjsocj1FLm9uQ2FuY2VsKT09PW51bGx8fHI9PT12b2lkIDB8fHIuY2FsbChFKSx6KCExKX0sW1MsS109YmUoZykse2NvcGllZDpJLGNvcHlMb2FkaW5nOmssb25DbGljazpUZX09aXQoe2NvcHlDb25maWc6SyxjaGlsZHJlbjpkfSksW2ZlLHdlXT1vLnVzZVN0YXRlKCExKSxbQWUsTnRdPW8udXNlU3RhdGUoITEpLFtCZSxEdF09by51c2VTdGF0ZSghMSksW1plLE10XT1vLnVzZVN0YXRlKCExKSxbQXQsQnRdPW8udXNlU3RhdGUoITApLFtRLFJdPWJlKHUse2V4cGFuZGFibGU6ITEsc3ltYm9sOnI9PnI/bT09bnVsbD92b2lkIDA6bS5jb2xsYXBzZTptPT1udWxsP3ZvaWQgMDptLmV4cGFuZH0pLFtWLFp0XT0oMCxaLlopKFIuZGVmYXVsdEV4cGFuZGVkfHwhMSx7dmFsdWU6Ui5leHBhbmRlZH0pLE49USYmKCFWfHxSLmV4cGFuZGFibGU9PT0iY29sbGFwc2libGUiKSx7cm93czphZT0xfT1SLGdlPW8udXNlTWVtbygoKT0+TiYmKFIuc3VmZml4IT09dm9pZCAwfHxSLm9uRWxsaXBzaXN8fFIuZXhwYW5kYWJsZXx8JHx8UyksW04sUiwkLFNdKTsoMCx2LlopKCgpPT57USYmIWdlJiYod2UoKDAsWS5HKSgid2Via2l0TGluZUNsYW1wIikpLE50KCgwLFkuRykoInRleHRPdmVyZmxvdyIpKSl9LFtnZSxRXSk7Y29uc3RbSCxrdF09by51c2VTdGF0ZShOKSxrZT1vLnVzZU1lbW8oKCk9PmdlPyExOmFlPT09MT9BZTpmZSxbZ2UsQWUsZmVdKTsoMCx2LlopKCgpPT57a3Qoa2UmJk4pfSxba2UsTl0pO2NvbnN0IEhlPU4mJihIP1plOkJlKSxIdD1OJiZhZT09PTEmJkgsamU9TiYmYWU+MSYmSCxXdD0ocixjKT0+e3ZhciBXO1p0KGMuZXhwYW5kZWQpLChXPVIub25FeHBhbmQpPT09bnVsbHx8Vz09PXZvaWQgMHx8Vy5jYWxsKFIscixjKX0sW1dlLFV0XT1vLnVzZVN0YXRlKDApLHp0PXI9PntsZXR7b2Zmc2V0V2lkdGg6Y309cjtVdChjKX0sRnQ9cj0+e3ZhciBjO0R0KHIpLEJlIT09ciYmKChjPVIub25FbGxpcHNpcyk9PT1udWxsfHxjPT09dm9pZCAwfHxjLmNhbGwoUixyKSl9O28udXNlRWZmZWN0KCgpPT57Y29uc3Qgcj1BLmN1cnJlbnQ7aWYoUSYmSCYmcil7Y29uc3QgYz1ndChyKTtaZSE9PWMmJk10KGMpfX0sW1EsSCxkLGplLEF0LFdlXSksby51c2VFZmZlY3QoKCk9Pntjb25zdCByPUEuY3VycmVudDtpZih0eXBlb2YgSW50ZXJzZWN0aW9uT2JzZXJ2ZXI9PSJ1bmRlZmluZWQifHwhcnx8IUh8fCFOKXJldHVybjtjb25zdCBjPW5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoKT0+e0J0KCEhci5vZmZzZXRQYXJlbnQpfSk7cmV0dXJuIGMub2JzZXJ2ZShyKSwoKT0+e2MuZGlzY29ubmVjdCgpfX0sW0gsTl0pO2NvbnN0IFJlPWN0KFIudG9vbHRpcCxFLnRleHQsZCksbWU9by51c2VNZW1vKCgpPT57aWYoISghUXx8SCkpcmV0dXJuW0UudGV4dCxkLE8sUmUudGl0bGVdLmZpbmQoRWUpfSxbUSxILE8sUmUudGl0bGUsSGVdKTtpZihHKXJldHVybiBvLmNyZWF0ZUVsZW1lbnQodHQse3ZhbHVlOihzPUUudGV4dCkhPT1udWxsJiZzIT09dm9pZCAwP3M6dHlwZW9mIGQ9PSJzdHJpbmciP2Q6IiIsb25TYXZlOmIsb25DYW5jZWw6aCxvbkVuZDpFLm9uRW5kLHByZWZpeENsczp3LGNsYXNzTmFtZTpsLHN0eWxlOmEsZGlyZWN0aW9uOkwsY29tcG9uZW50OnAsbWF4TGVuZ3RoOkUubWF4TGVuZ3RoLGF1dG9TaXplOkUuYXV0b1NpemUsZW50ZXJJY29uOkUuZW50ZXJJY29ufSk7Y29uc3QgS3Q9KCk9Pntjb25zdHtleHBhbmRhYmxlOnIsc3ltYm9sOmN9PVI7cmV0dXJuIHI/by5jcmVhdGVFbGVtZW50KCJidXR0b24iLHt0eXBlOiJidXR0b24iLGtleToiZXhwYW5kIixjbGFzc05hbWU6YCR7d30tJHtWPyJjb2xsYXBzZSI6ImV4cGFuZCJ9YCxvbkNsaWNrOlc9Pld0KFcse2V4cGFuZGVkOiFWfSksImFyaWEtbGFiZWwiOlY/bS5jb2xsYXBzZTptPT1udWxsP3ZvaWQgMDptLmV4cGFuZH0sdHlwZW9mIGM9PSJmdW5jdGlvbiI/YyhWKTpjKTpudWxsfSxWdD0oKT0+e2lmKCEkKXJldHVybjtjb25zdHtpY29uOnIsdG9vbHRpcDpjLHRhYkluZGV4Old9PUUsSWU9KDAsQi5aKShjKVswXXx8KG09PW51bGw/dm9pZCAwOm0uZWRpdCksUXQ9dHlwZW9mIEllPT0ic3RyaW5nIj9JZToiIjtyZXR1cm4gZWUuaW5jbHVkZXMoImljb24iKT9vLmNyZWF0ZUVsZW1lbnQocS5aLHtrZXk6ImVkaXQiLHRpdGxlOmM9PT0hMT8iIjpJZX0sby5jcmVhdGVFbGVtZW50KCJidXR0b24iLHt0eXBlOiJidXR0b24iLHJlZjpKLGNsYXNzTmFtZTpgJHt3fS1lZGl0YCxvbkNsaWNrOkYsImFyaWEtbGFiZWwiOlF0LHRhYkluZGV4Old9LHJ8fG8uY3JlYXRlRWxlbWVudChYLlose3JvbGU6ImJ1dHRvbiJ9KSkpOm51bGx9LFh0PSgpPT5TP28uY3JlYXRlRWxlbWVudChtdCxPYmplY3QuYXNzaWduKHtrZXk6ImNvcHkifSxLLHtwcmVmaXhDbHM6dyxjb3BpZWQ6SSxsb2NhbGU6bSxvbkNvcHk6VGUsbG9hZGluZzprLGljb25Pbmx5OmQ9PW51bGx9KSk6bnVsbCxKdD1yPT5bciYmS3QoKSxWdCgpLFh0KCldLEd0PXI9PltyJiYhViYmby5jcmVhdGVFbGVtZW50KCJzcGFuIix7ImFyaWEtaGlkZGVuIjohMCxrZXk6ImVsbGlwc2lzIn0sQ3QpLFIuc3VmZml4LEp0KHIpXTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KHllLlose29uUmVzaXplOnp0LGRpc2FibGVkOiFOfSxyPT5vLmNyZWF0ZUVsZW1lbnQoaHQse3Rvb2x0aXBQcm9wczpSZSxlbmFibGVFbGxpcHNpczpOLGlzRWxsaXBzaXM6SGV9LG8uY3JlYXRlRWxlbWVudCgkZSxPYmplY3QuYXNzaWduKHtjbGFzc05hbWU6XygpKHtbYCR7d30tJHt5fWBdOnksW2Ake3d9LWRpc2FibGVkYF06QyxbYCR7d30tZWxsaXBzaXNgXTpRLFtgJHt3fS1lbGxpcHNpcy1zaW5nbGUtbGluZWBdOkh0LFtgJHt3fS1lbGxpcHNpcy1tdWx0aXBsZS1saW5lYF06amV9LGwpLHByZWZpeENsczp0LHN0eWxlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxhKSx7V2Via2l0TGluZUNsYW1wOmplP2FlOnZvaWQgMH0pLGNvbXBvbmVudDpwLHJlZjooMCxvZS5zUSkocixBLG4pLGRpcmVjdGlvbjpMLG9uQ2xpY2s6ZWUuaW5jbHVkZXMoInRleHQiKT9GOnZvaWQgMCwiYXJpYS1sYWJlbCI6bWU9PW51bGw/dm9pZCAwOm1lLnRvU3RyaW5nKCksdGl0bGU6T30saiksby5jcmVhdGVFbGVtZW50KGJ0LHtlbmFibGVNZWFzdXJlOk4mJiFILHRleHQ6ZCxyb3dzOmFlLHdpZHRoOldlLG9uRWxsaXBzaXM6RnQsZXhwYW5kZWQ6VixtaXNjRGVwczpbSSxWLGssJCxTLG1dfSwoYyxXKT0+eHQoZSxvLmNyZWF0ZUVsZW1lbnQoby5GcmFnbWVudCxudWxsLGMubGVuZ3RoPjAmJlcmJiFWJiZtZT9vLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtrZXk6InNob3ctY29udGVudCIsImFyaWEtaGlkZGVuIjohMH0sYyk6YyxHdChXKSkpKSkpKX0pLFN0PWZ1bmN0aW9uKGUsbil7dmFyIHM9e307Zm9yKHZhciB0IGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsdCkmJm4uaW5kZXhPZih0KTwwJiYoc1t0XT1lW3RdKTtpZihlIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIGw9MCx0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7bDx0Lmxlbmd0aDtsKyspbi5pbmRleE9mKHRbbF0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLHRbbF0pJiYoc1t0W2xdXT1lW3RbbF1dKTtyZXR1cm4gc30sT3Q9by5mb3J3YXJkUmVmKChlLG4pPT57dmFye2VsbGlwc2lzOnMscmVsOnR9PWUsbD1TdChlLFsiZWxsaXBzaXMiLCJyZWwiXSk7Y29uc3QgYT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbCkse3JlbDp0PT09dm9pZCAwJiZsLnRhcmdldD09PSJfYmxhbmsiPyJub29wZW5lciBub3JlZmVycmVyIjp0fSk7cmV0dXJuIGRlbGV0ZSBhLm5hdmlnYXRlLG8uY3JlYXRlRWxlbWVudChwZSxPYmplY3QuYXNzaWduKHt9LGEse3JlZjpuLGVsbGlwc2lzOiEhcyxjb21wb25lbnQ6ImEifSkpfSksVHQ9by5mb3J3YXJkUmVmKChlLG4pPT5vLmNyZWF0ZUVsZW1lbnQocGUsT2JqZWN0LmFzc2lnbih7cmVmOm59LGUse2NvbXBvbmVudDoiZGl2In0pKSksd3Q9ZnVuY3Rpb24oZSxuKXt2YXIgcz17fTtmb3IodmFyIHQgaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSx0KSYmbi5pbmRleE9mKHQpPDAmJihzW3RdPWVbdF0pO2lmKGUhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgbD0wLHQ9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtsPHQubGVuZ3RoO2wrKyluLmluZGV4T2YodFtsXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsdFtsXSkmJihzW3RbbF1dPWVbdFtsXV0pO3JldHVybiBzfTtjb25zdCBqdD0oZSxuKT0+e3ZhcntlbGxpcHNpczpzfT1lLHQ9d3QoZSxbImVsbGlwc2lzIl0pO2NvbnN0IGw9by51c2VNZW1vKCgpPT5zJiZ0eXBlb2Ygcz09Im9iamVjdCI/KDAsbmUuWikocyxbImV4cGFuZGFibGUiLCJyb3dzIl0pOnMsW3NdKTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KHBlLE9iamVjdC5hc3NpZ24oe3JlZjpufSx0LHtlbGxpcHNpczpsLGNvbXBvbmVudDoic3BhbiJ9KSl9O3ZhciBSdD1vLmZvcndhcmRSZWYoanQpLEl0PWZ1bmN0aW9uKGUsbil7dmFyIHM9e307Zm9yKHZhciB0IGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsdCkmJm4uaW5kZXhPZih0KTwwJiYoc1t0XT1lW3RdKTtpZihlIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIGw9MCx0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7bDx0Lmxlbmd0aDtsKyspbi5pbmRleE9mKHRbbF0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLHRbbF0pJiYoc1t0W2xdXT1lW3RbbF1dKTtyZXR1cm4gc307Y29uc3QgUHQ9WzEsMiwzLDQsNV07dmFyIEx0PW8uZm9yd2FyZFJlZigoZSxuKT0+e2NvbnN0e2xldmVsOnM9MX09ZSx0PUl0KGUsWyJsZXZlbCJdKSxsPVB0LmluY2x1ZGVzKHMpP2BoJHtzfWA6ImgxIjtyZXR1cm4gby5jcmVhdGVFbGVtZW50KHBlLE9iamVjdC5hc3NpZ24oe3JlZjpufSx0LHtjb21wb25lbnQ6bH0pKX0pO2NvbnN0IGxlPSRlO2xlLlRleHQ9UnQsbGUuTGluaz1PdCxsZS5UaXRsZT1MdCxsZS5QYXJhZ3JhcGg9VHQ7dmFyICR0PWxlfSwyMDY0MDpmdW5jdGlvbihjZSxNLGkpeyJ1c2Ugc3RyaWN0Ijt2YXIgbz1pKDExNzQyKSxYPXsidGV4dC9wbGFpbiI6IlRleHQiLCJ0ZXh0L2h0bWwiOiJVcmwiLGRlZmF1bHQ6IlRleHQifSx0ZT0iQ29weSB0byBjbGlwYm9hcmQ6ICN7a2V5fSwgRW50ZXIiO2Z1bmN0aW9uIF8oQil7dmFyIHY9KC9tYWMgb3MgeC9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk/Ilx1MjMxOCI6IkN0cmwiKSsiK0MiO3JldHVybiBCLnJlcGxhY2UoLyN7XHMqa2V5XHMqfS9nLHYpfWZ1bmN0aW9uIHllKEIsdil7dmFyIFosbmUsb2UsWSxVLHgscT0hMTt2fHwodj17fSksWj12LmRlYnVnfHwhMTt0cnl7b2U9bygpLFk9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKSxVPWRvY3VtZW50LmdldFNlbGVjdGlvbigpLHg9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpLHgudGV4dENvbnRlbnQ9Qix4LmFyaWFIaWRkZW49InRydWUiLHguc3R5bGUuYWxsPSJ1bnNldCIseC5zdHlsZS5wb3NpdGlvbj0iZml4ZWQiLHguc3R5bGUudG9wPTAseC5zdHlsZS5jbGlwPSJyZWN0KDAsIDAsIDAsIDApIix4LnN0eWxlLndoaXRlU3BhY2U9InByZSIseC5zdHlsZS53ZWJraXRVc2VyU2VsZWN0PSJ0ZXh0Iix4LnN0eWxlLk1velVzZXJTZWxlY3Q9InRleHQiLHguc3R5bGUubXNVc2VyU2VsZWN0PSJ0ZXh0Iix4LnN0eWxlLnVzZXJTZWxlY3Q9InRleHQiLHguYWRkRXZlbnRMaXN0ZW5lcigiY29weSIsZnVuY3Rpb24oRCl7aWYoRC5zdG9wUHJvcGFnYXRpb24oKSx2LmZvcm1hdClpZihELnByZXZlbnREZWZhdWx0KCksdHlwZW9mIEQuY2xpcGJvYXJkRGF0YT09InVuZGVmaW5lZCIpe1omJmNvbnNvbGUud2FybigidW5hYmxlIHRvIHVzZSBlLmNsaXBib2FyZERhdGEiKSxaJiZjb25zb2xlLndhcm4oInRyeWluZyBJRSBzcGVjaWZpYyBzdHVmZiIpLHdpbmRvdy5jbGlwYm9hcmREYXRhLmNsZWFyRGF0YSgpO3ZhciBzZT1YW3YuZm9ybWF0XXx8WC5kZWZhdWx0O3dpbmRvdy5jbGlwYm9hcmREYXRhLnNldERhdGEoc2UsQil9ZWxzZSBELmNsaXBib2FyZERhdGEuY2xlYXJEYXRhKCksRC5jbGlwYm9hcmREYXRhLnNldERhdGEodi5mb3JtYXQsQik7di5vbkNvcHkmJihELnByZXZlbnREZWZhdWx0KCksdi5vbkNvcHkoRC5jbGlwYm9hcmREYXRhKSl9KSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHgpLFkuc2VsZWN0Tm9kZUNvbnRlbnRzKHgpLFUuYWRkUmFuZ2UoWSk7dmFyIHZlPWRvY3VtZW50LmV4ZWNDb21tYW5kKCJjb3B5Iik7aWYoIXZlKXRocm93IG5ldyBFcnJvcigiY29weSBjb21tYW5kIHdhcyB1bnN1Y2Nlc3NmdWwiKTtxPSEwfWNhdGNoKEQpe1omJmNvbnNvbGUuZXJyb3IoInVuYWJsZSB0byBjb3B5IHVzaW5nIGV4ZWNDb21tYW5kOiAiLEQpLFomJmNvbnNvbGUud2FybigidHJ5aW5nIElFIHNwZWNpZmljIHN0dWZmIik7dHJ5e3dpbmRvdy5jbGlwYm9hcmREYXRhLnNldERhdGEodi5mb3JtYXR8fCJ0ZXh0IixCKSx2Lm9uQ29weSYmdi5vbkNvcHkod2luZG93LmNsaXBib2FyZERhdGEpLHE9ITB9Y2F0Y2goc2Upe1omJmNvbnNvbGUuZXJyb3IoInVuYWJsZSB0byBjb3B5IHVzaW5nIGNsaXBib2FyZERhdGE6ICIsc2UpLFomJmNvbnNvbGUuZXJyb3IoImZhbGxpbmcgYmFjayB0byBwcm9tcHQiKSxuZT1fKCJtZXNzYWdlImluIHY/di5tZXNzYWdlOnRlKSx3aW5kb3cucHJvbXB0KG5lLEIpfX1maW5hbGx5e1UmJih0eXBlb2YgVS5yZW1vdmVSYW5nZT09ImZ1bmN0aW9uIj9VLnJlbW92ZVJhbmdlKFkpOlUucmVtb3ZlQWxsUmFuZ2VzKCkpLHgmJmRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoeCksb2UoKX1yZXR1cm4gcX1jZS5leHBvcnRzPXllfSwxMTc0MjpmdW5jdGlvbihjZSl7Y2UuZXhwb3J0cz1mdW5jdGlvbigpe3ZhciBNPWRvY3VtZW50LmdldFNlbGVjdGlvbigpO2lmKCFNLnJhbmdlQ291bnQpcmV0dXJuIGZ1bmN0aW9uKCl7fTtmb3IodmFyIGk9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCxvPVtdLFg9MDtYPE0ucmFuZ2VDb3VudDtYKyspby5wdXNoKE0uZ2V0UmFuZ2VBdChYKSk7c3dpdGNoKGkudGFnTmFtZS50b1VwcGVyQ2FzZSgpKXtjYXNlIklOUFVUIjpjYXNlIlRFWFRBUkVBIjppLmJsdXIoKTticmVhaztkZWZhdWx0Omk9bnVsbDticmVha31yZXR1cm4gTS5yZW1vdmVBbGxSYW5nZXMoKSxmdW5jdGlvbigpe00udHlwZT09PSJDYXJldCImJk0ucmVtb3ZlQWxsUmFuZ2VzKCksTS5yYW5nZUNvdW50fHxvLmZvckVhY2goZnVuY3Rpb24odGUpe00uYWRkUmFuZ2UodGUpfSksaSYmaS5mb2N1cygpfX19fV0pOwpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy85NjIyLjcyZDZmZjEzLmFzeW5jLmpzIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy85NjIyLjcyZDZmZjEzLmFzeW5jLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ5NDBjNmIKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzk2MjIuNzJkNmZmMTMuYXN5bmMuanMKQEAgLTAsMCArMSBAQAorInVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvPXNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm98fFtdKS5wdXNoKFtbOTYyMl0sezk2MjI6ZnVuY3Rpb24oQixhLG4pe24ucihhKTt2YXIgcz1uKDYxMTApLGw9big3Njc3Mikscj1uKDkzNjEpLEE9big0MzkzKSxEPW4oNjcyOTQpLHU9big4NTg5MyksRT1mdW5jdGlvbihlKXt2YXIgZD1lLnRpdGxlLGk9ZS5ocmVmLEY9ZS5pbmRleCx0PWUuZGVzYyx4PXIuWi51c2VUb2tlbixDPXgoKSxvPUMudG9rZW47cmV0dXJuKDAsdS5qc3hzKSgiZGl2Iix7c3R5bGU6e2JhY2tncm91bmRDb2xvcjpvLmNvbG9yQmdDb250YWluZXIsYm94U2hhZG93Om8uYm94U2hhZG93LGJvcmRlclJhZGl1czoiOHB4Iixmb250U2l6ZToiMTRweCIsY29sb3I6by5jb2xvclRleHRTZWNvbmRhcnksbGluZUhlaWdodDoiMjJweCIscGFkZGluZzoiMTZweCAxOXB4IixtaW5XaWR0aDoiMjIwcHgiLGZsZXg6MX0sY2hpbGRyZW46WygwLHUuanN4cykoImRpdiIse3N0eWxlOntkaXNwbGF5OiJmbGV4IixnYXA6IjRweCIsYWxpZ25JdGVtczoiY2VudGVyIn0sY2hpbGRyZW46WygwLHUuanN4KSgiZGl2Iix7c3R5bGU6e3dpZHRoOjQ4LGhlaWdodDo0OCxsaW5lSGVpZ2h0OiIyMnB4IixiYWNrZ3JvdW5kU2l6ZToiMTAwJSIsdGV4dEFsaWduOiJjZW50ZXIiLHBhZGRpbmc6IjhweCAxNnB4IDE2cHggMTJweCIsY29sb3I6IiNGRkYiLGZvbnRXZWlnaHQ6ImJvbGQiLGJhY2tncm91bmRJbWFnZToidXJsKCdodHRwczovL2d3LmFsaXBheW9iamVjdHMuY29tL3pvcy9ibXctcHJvZC9kYWFmOGQ1MC04ZTZkLTQyNTEtOTA1ZC02NzZhMjRkZGZhMTIuc3ZnJykifSxjaGlsZHJlbjpGfSksKDAsdS5qc3gpKCJkaXYiLHtzdHlsZTp7Zm9udFNpemU6IjE2cHgiLGNvbG9yOm8uY29sb3JUZXh0LHBhZGRpbmdCb3R0b206OH0sY2hpbGRyZW46ZH0pXX0pLCgwLHUuanN4KSgiZGl2Iix7c3R5bGU6e2ZvbnRTaXplOiIxNHB4Iixjb2xvcjpvLmNvbG9yVGV4dFNlY29uZGFyeSx0ZXh0QWxpZ246Imp1c3RpZnkiLGxpbmVIZWlnaHQ6IjIycHgiLG1hcmdpbkJvdHRvbTo4fSxjaGlsZHJlbjp0fSksKDAsdS5qc3hzKSgiYSIse2hyZWY6aSx0YXJnZXQ6Il9ibGFuayIscmVsOiJub3JlZmVycmVyIixjaGlsZHJlbjpbIlx1NEU4Nlx1ODlFM1x1NjZGNFx1NTkxQSAiLCI+Il19KV19KX0sYz1mdW5jdGlvbigpe3ZhciBlLGQ9ci5aLnVzZVRva2VuKCksaT1kLnRva2VuLEY9KDAsbC51c2VNb2RlbCkoIkBAaW5pdGlhbFN0YXRlIiksdD1GLmluaXRpYWxTdGF0ZTtyZXR1cm4oMCx1LmpzeCkocy5feix7Y2hpbGRyZW46KDAsdS5qc3gpKEEuWix7c3R5bGU6e2JvcmRlclJhZGl1czo4fSxib2R5U3R5bGU6e2JhY2tncm91bmRJbWFnZToodD09bnVsbHx8KGU9dC5zZXR0aW5ncyk9PT1udWxsfHxlPT09dm9pZCAwP3ZvaWQgMDplLm5hdlRoZW1lKT09PSJyZWFsRGFyayI/ImJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg3NWRlZywgIzFBMUIxRiAwJSwgIzE5MUMxRiAxMDAlKSI6ImJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg3NWRlZywgI0ZCRkRGRiAwJSwgI0Y1RjdGRiAxMDAlKSJ9LGNoaWxkcmVuOigwLHUuanN4cykoImRpdiIse3N0eWxlOntiYWNrZ3JvdW5kUG9zaXRpb246IjEwMCUgLTMwJSIsYmFja2dyb3VuZFJlcGVhdDoibm8tcmVwZWF0IixiYWNrZ3JvdW5kU2l6ZToiMjc0cHggYXV0byIsYmFja2dyb3VuZEltYWdlOiJ1cmwoJ2h0dHBzOi8vZ3cuYWxpcGF5b2JqZWN0cy5jb20vbWRuL3Jtc19hOTc0NWIvYWZ0cy9pbWcvQSpCdUZtUXFzQjJpQUFBQUFBQUFBQUFBQUFBUlFuQVEnKSJ9LGNoaWxkcmVuOlsoMCx1LmpzeCkoImRpdiIse3N0eWxlOntmb250U2l6ZToiMjBweCIsY29sb3I6aS5jb2xvclRleHRIZWFkaW5nfSxjaGlsZHJlbjoiXHU2QjIyXHU4RkNFXHU0RjdGXHU3NTI4IEFudCBEZXNpZ24gUHJvIn0pLCgwLHUuanN4KSgicCIse3N0eWxlOntmb250U2l6ZToiMTRweCIsY29sb3I6aS5jb2xvclRleHRTZWNvbmRhcnksbGluZUhlaWdodDoiMjJweCIsbWFyZ2luVG9wOjE2LG1hcmdpbkJvdHRvbTozMix3aWR0aDoiNjUlIn0sY2hpbGRyZW46IkFudCBEZXNpZ24gUHJvIFx1NjYyRlx1NEUwMFx1NEUyQVx1NjU3NFx1NTQwOFx1NEU4NiB1bWlcdUZGMENBbnQgRGVzaWduIFx1NTQ4QyBQcm9Db21wb25lbnRzIFx1NzY4NFx1ODExQVx1NjI0Qlx1NjdCNlx1NjVCOVx1Njg0OFx1MzAwMlx1ODFGNFx1NTI5Qlx1NEU4RVx1NTcyOFx1OEJCRVx1OEJBMVx1ODlDNFx1ODMwM1x1NTQ4Q1x1NTdGQVx1Nzg0MFx1N0VDNFx1NEVGNlx1NzY4NFx1NTdGQVx1Nzg0MFx1NEUwQVx1RkYwQ1x1N0VFN1x1N0VFRFx1NTQxMVx1NEUwQVx1Njc4NFx1NUVGQVx1RkYwQ1x1NjNEMFx1NzBCQ1x1NTFGQVx1NTE3OFx1NTc4Qlx1NkEyMVx1Njc3Ri9cdTRFMUFcdTUyQTFcdTdFQzRcdTRFRjYvXHU5MTREXHU1OTU3XHU4QkJFXHU4QkExXHU4RDQ0XHU2RTkwXHVGRjBDXHU4RkRCXHU0RTAwXHU2QjY1XHU2M0QwXHU1MzQ3XHU0RjAxXHU0RTFBXHU3RUE3XHU0RTJEXHU1NDBFXHU1M0YwXHU0RUE3XHU1NEMxXHU4QkJFXHU4QkExXHU3ODE0XHU1M0QxXHU4RkM3XHU3QTBCXHU0RTJEXHU3Njg0XHUzMDBFXHU3NTI4XHU2MjM3XHUzMDBGXHU1NDhDXHUzMDBFXHU4QkJFXHU4QkExXHU4MDA1XHUzMDBGXHU3Njg0XHU0RjUzXHU5QThDXHUzMDAyIn0pLCgwLHUuanN4cykoImRpdiIse3N0eWxlOntkaXNwbGF5OiJmbGV4IixmbGV4V3JhcDoid3JhcCIsZ2FwOjE2fSxjaGlsZHJlbjpbKDAsdS5qc3gpKEUse2luZGV4OjEsaHJlZjoiaHR0cHM6Ly91bWlqcy5vcmcvZG9jcy9pbnRyb2R1Y2UvaW50cm9kdWNlIix0aXRsZToiXHU0RTg2XHU4OUUzIHVtaSIsZGVzYzoidW1pIFx1NjYyRlx1NEUwMFx1NEUyQVx1NTNFRlx1NjI2OVx1NUM1NVx1NzY4NFx1NEYwMVx1NEUxQVx1N0VBN1x1NTI0RFx1N0FFRlx1NUU5NFx1NzUyOFx1Njg0Nlx1NjdCNix1bWkgXHU0RUU1XHU4REVGXHU3NTMxXHU0RTNBXHU1N0ZBXHU3ODQwXHU3Njg0XHVGRjBDXHU1NDBDXHU2NUY2XHU2NTJGXHU2MzAxXHU5MTREXHU3RjZFXHU1RjBGXHU4REVGXHU3NTMxXHU1NDhDXHU3RUE2XHU1QjlBXHU1RjBGXHU4REVGXHU3NTMxXHVGRjBDXHU0RkREXHU4QkMxXHU4REVGXHU3NTMxXHU3Njg0XHU1MjlGXHU4MEZEXHU1QjhDXHU1OTA3XHVGRjBDXHU1RTc2XHU0RUU1XHU2QjY0XHU4RkRCXHU4ODRDXHU1MjlGXHU4MEZEXHU2MjY5XHU1QzU1XHUzMDAyIn0pLCgwLHUuanN4KShFLHtpbmRleDoyLHRpdGxlOiJcdTRFODZcdTg5RTMgYW50IGRlc2lnbiIsaHJlZjoiaHR0cHM6Ly9hbnQuZGVzaWduIixkZXNjOiJhbnRkIFx1NjYyRlx1NTdGQVx1NEU4RSBBbnQgRGVzaWduIFx1OEJCRVx1OEJBMVx1NEY1M1x1N0NGQlx1NzY4NCBSZWFjdCBVSSBcdTdFQzRcdTRFRjZcdTVFOTNcdUZGMENcdTRFM0JcdTg5ODFcdTc1MjhcdTRFOEVcdTc4MTRcdTUzRDFcdTRGMDFcdTRFMUFcdTdFQTdcdTRFMkRcdTU0MEVcdTUzRjBcdTRFQTdcdTU0QzFcdTMwMDIifSksKDAsdS5qc3gpKEUse2luZGV4OjMsdGl0bGU6Ilx1NEU4Nlx1ODlFMyBQcm8gQ29tcG9uZW50cyIsaHJlZjoiaHR0cHM6Ly9wcm9jb21wb25lbnRzLmFudC5kZXNpZ24iLGRlc2M6IlByb0NvbXBvbmVudHMgXHU2NjJGXHU0RTAwXHU0RTJBXHU1N0ZBXHU0RThFIEFudCBEZXNpZ24gXHU1MDVBXHU0RTg2XHU2NkY0XHU5QUQ4XHU2MkJEXHU4QzYxXHU3Njg0XHU2QTIxXHU2NzdGXHU3RUM0XHU0RUY2XHVGRjBDXHU0RUU1IFx1NEUwMFx1NEUyQVx1N0VDNFx1NEVGNlx1NUMzMVx1NjYyRlx1NEUwMFx1NEUyQVx1OTg3NVx1OTc2Mlx1NEUzQVx1NUYwMFx1NTNEMVx1NzQwNlx1NUZGNVx1RkYwQ1x1NEUzQVx1NEUyRFx1NTQwRVx1NTNGMFx1NUYwMFx1NTNEMVx1NUUyNlx1Njc2NVx1NjZGNFx1NTk3RFx1NzY4NFx1NEY1M1x1OUE4Q1x1MzAwMiJ9KV19KV19KX0pfSl9O2EuZGVmYXVsdD1jfX1dKTsKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvOTY2NS5jMTNiMGIyZS5hc3luYy5qcyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvOTY2NS5jMTNiMGIyZS5hc3luYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMjNjNjFiCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy85NjY1LmMxM2IwYjJlLmFzeW5jLmpzCkBAIC0wLDAgKzEgQEAKKyJ1c2Ugc3RyaWN0Ijsoc2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Bybz1zZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvfHxbXSkucHVzaChbWzk2NjUsMzYyOCwzNTUzLDgyMTMsMTMxNiwxMjU2XSx7MTY0MzQ6ZnVuY3Rpb24odyxXLHIpe3ZhciBvPXIoMTQxMyksdj1yKDc0MTY1KSxFPXIoMTU4NjEpLEQ9cig5MSksZz1yKDk3Njg1KSx4PXIoOTk4NTkpLEI9cigyNTI3OCksTD1yKDgzNjIyKSxQPXIoNjcyOTQpLGQ9cig5MDc4OSksWj1yKDg1ODkzKSxqPVsicnVsZXMiLCJuYW1lIiwicGhvbmVOYW1lIiwiZmllbGRQcm9wcyIsIm9uVGltaW5nIiwiY2FwdGNoYVRleHRSZW5kZXIiLCJjYXB0Y2hhUHJvcHMiXSxmPVAuZm9yd2FyZFJlZihmdW5jdGlvbihsLGMpe3ZhciBoPXguWi51c2VGb3JtSW5zdGFuY2UoKSxBPSgwLFAudXNlU3RhdGUpKGwuY291bnREb3dufHw2MCksaT0oMCxnLlopKEEsMiksbj1pWzBdLHk9aVsxXSxPPSgwLFAudXNlU3RhdGUpKCExKSxVPSgwLGcuWikoTywyKSxGPVVbMF0sUz1VWzFdLFQ9KDAsUC51c2VTdGF0ZSkoKSxLPSgwLGcuWikoVCwyKSxOPUtbMF0sQz1LWzFdLEo9bC5ydWxlcyxvZT1sLm5hbWUsZT1sLnBob25lTmFtZSxhPWwuZmllbGRQcm9wcyx1PWwub25UaW1pbmcsdD1sLmNhcHRjaGFUZXh0UmVuZGVyLHM9dD09PXZvaWQgMD9mdW5jdGlvbihfLEkpe3JldHVybiBfPyIiLmNvbmNhdChJLCIgXHU3OUQyXHU1NDBFXHU5MUNEXHU2NUIwXHU4M0I3XHU1M0Q2Iik6Ilx1ODNCN1x1NTNENlx1OUE4Q1x1OEJDMVx1NzgwMSJ9OnQsJD1sLmNhcHRjaGFQcm9wcyxiPSgwLEQuWikobCxqKSxIPWZ1bmN0aW9uKCl7dmFyIF89KDAsRS5aKSgoMCx2LlopKCkubWFyayhmdW5jdGlvbiBJKFIpe3JldHVybigwLHYuWikoKS53cmFwKGZ1bmN0aW9uKE0pe2Zvcig7Oylzd2l0Y2goTS5wcmV2PU0ubmV4dCl7Y2FzZSAwOnJldHVybiBNLnByZXY9MCxDKCEwKSxNLm5leHQ9NCxiLm9uR2V0Q2FwdGNoYShSKTtjYXNlIDQ6QyghMSksUyghMCksTS5uZXh0PTEzO2JyZWFrO2Nhc2UgODpNLnByZXY9OCxNLnQwPU0uY2F0Y2goMCksUyghMSksQyghMSksY29uc29sZS5sb2coTS50MCk7Y2FzZSAxMzpjYXNlImVuZCI6cmV0dXJuIE0uc3RvcCgpfX0sSSxudWxsLFtbMCw4XV0pfSkpO3JldHVybiBmdW5jdGlvbihSKXtyZXR1cm4gXy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpO3JldHVybigwLFAudXNlSW1wZXJhdGl2ZUhhbmRsZSkoYyxmdW5jdGlvbigpe3JldHVybntzdGFydFRpbWluZzpmdW5jdGlvbigpe3JldHVybiBTKCEwKX0sZW5kVGltaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIFMoITEpfX19KSwoMCxQLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXt2YXIgXz0wLEk9bC5jb3VudERvd247cmV0dXJuIEYmJihfPXdpbmRvdy5zZXRJbnRlcnZhbChmdW5jdGlvbigpe3koZnVuY3Rpb24oUil7cmV0dXJuIFI8PTE/KFMoITEpLGNsZWFySW50ZXJ2YWwoXyksSXx8NjApOlItMX0pfSwxZTMpKSxmdW5jdGlvbigpe3JldHVybiBjbGVhckludGVydmFsKF8pfX0sW0ZdKSwoMCxQLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXt1JiZ1KG4pfSxbbix1XSksKDAsWi5qc3hzKSgiZGl2Iix7c3R5bGU6KDAsby5aKSgoMCxvLlopKHt9LGE9PW51bGw/dm9pZCAwOmEuc3R5bGUpLHt9LHtkaXNwbGF5OiJmbGV4IixhbGlnbkl0ZW1zOiJjZW50ZXIifSkscmVmOmMsY2hpbGRyZW46WygwLFouanN4KShCLlosKDAsby5aKSgoMCxvLlopKHt9LGEpLHt9LHtzdHlsZTooMCxvLlopKHtmbGV4OjEsdHJhbnNpdGlvbjoid2lkdGggLjNzIixtYXJnaW5SaWdodDo4fSxhPT1udWxsP3ZvaWQgMDphLnN0eWxlKX0pKSwoMCxaLmpzeCkoTC5aUCwoMCxvLlopKCgwLG8uWikoe3N0eWxlOntkaXNwbGF5OiJibG9jayJ9LGRpc2FibGVkOkYsbG9hZGluZzpOfSwkKSx7fSx7b25DbGljazooMCxFLlopKCgwLHYuWikoKS5tYXJrKGZ1bmN0aW9uIF8oKXt2YXIgSTtyZXR1cm4oMCx2LlopKCkud3JhcChmdW5jdGlvbihtKXtmb3IoOzspc3dpdGNoKG0ucHJldj1tLm5leHQpe2Nhc2UgMDppZihtLnByZXY9MCwhZSl7bS5uZXh0PTk7YnJlYWt9cmV0dXJuIG0ubmV4dD00LGgudmFsaWRhdGVGaWVsZHMoW2VdLmZsYXQoMSkpO2Nhc2UgNDpyZXR1cm4gST1oLmdldEZpZWxkVmFsdWUoW2VdLmZsYXQoMSkpLG0ubmV4dD03LEgoSSk7Y2FzZSA3Om0ubmV4dD0xMTticmVhaztjYXNlIDk6cmV0dXJuIG0ubmV4dD0xMSxIKCIiKTtjYXNlIDExOm0ubmV4dD0xNjticmVhaztjYXNlIDEzOm0ucHJldj0xMyxtLnQwPW0uY2F0Y2goMCksY29uc29sZS5sb2cobS50MCk7Y2FzZSAxNjpjYXNlImVuZCI6cmV0dXJuIG0uc3RvcCgpfX0sXyxudWxsLFtbMCwxM11dKX0pKSxjaGlsZHJlbjpzKEYsbil9KSldfSl9KSxwPSgwLGQuRykoZik7Vy5aPXB9LDMxMTk5OmZ1bmN0aW9uKHcsVyxyKXt2YXIgbz1yKDE0MTMpLHY9cig5MSksRT1yKDY3Mjk0KSxEPXIoOTIxNzkpLGc9cig4NTg5MykseD1bImZpZWxkUHJvcHMiLCJtaW4iLCJwcm9GaWVsZFByb3BzIiwibWF4Il0sQj1mdW5jdGlvbihkLFope3ZhciBqPWQuZmllbGRQcm9wcyxmPWQubWluLHA9ZC5wcm9GaWVsZFByb3BzLGw9ZC5tYXgsYz0oMCx2LlopKGQseCk7cmV0dXJuKDAsZy5qc3gpKEQuWiwoMCxvLlopKHt2YWx1ZVR5cGU6ImRpZ2l0IixmaWVsZFByb3BzOigwLG8uWikoe21pbjpmLG1heDpsfSxqKSxyZWY6WixmaWxlZENvbmZpZzp7ZGVmYXVsdFByb3BzOnt3aWR0aDoiMTAwJSJ9fSxwcm9GaWVsZFByb3BzOnB9LGMpKX0sTD1FLmZvcndhcmRSZWYoQik7Vy5aPUx9LDg2NjE1OmZ1bmN0aW9uKHcsVyxyKXt2YXIgbz1yKDE0MTMpLHY9cig5MSksRT1yKDIyMjcwKSxEPXIoNzgwNDUpLGc9cig2NzI5NCkseD1yKDkwNzg5KSxCPXIoOTIxNzkpLEw9cig4NTg5MyksUD1bImZpZWxkUHJvcHMiLCJvcHRpb25zIiwicmFkaW9UeXBlIiwibGF5b3V0IiwicHJvRmllbGRQcm9wcyIsInZhbHVlRW51bSJdLGQ9Zy5mb3J3YXJkUmVmKGZ1bmN0aW9uKHAsbCl7dmFyIGM9cC5maWVsZFByb3BzLGg9cC5vcHRpb25zLEE9cC5yYWRpb1R5cGUsaT1wLmxheW91dCxuPXAucHJvRmllbGRQcm9wcyx5PXAudmFsdWVFbnVtLE89KDAsdi5aKShwLFApO3JldHVybigwLEwuanN4KShCLlosKDAsby5aKSgoMCxvLlopKHt2YWx1ZVR5cGU6QT09PSJidXR0b24iPyJyYWRpb0J1dHRvbiI6InJhZGlvIixyZWY6bCx2YWx1ZUVudW06KDAsRS5oKSh5LHZvaWQgMCl9LE8pLHt9LHtmaWVsZFByb3BzOigwLG8uWikoe29wdGlvbnM6aCxsYXlvdXQ6aX0sYykscHJvRmllbGRQcm9wczpuLGZpbGVkQ29uZmlnOntjdXN0b21MaWdodE1vZGU6ITB9fSkpfSksWj1nLmZvcndhcmRSZWYoZnVuY3Rpb24ocCxsKXt2YXIgYz1wLmZpZWxkUHJvcHMsaD1wLmNoaWxkcmVuO3JldHVybigwLEwuanN4KShELlpQLCgwLG8uWikoKDAsby5aKSh7fSxjKSx7fSx7cmVmOmwsY2hpbGRyZW46aH0pKX0pLGo9KDAseC5HKShaLHt2YWx1ZVByb3BOYW1lOiJjaGVja2VkIixpZ25vcmVXaWR0aDohMH0pLGY9ajtmLkdyb3VwPWQsZi5CdXR0b249RC5aUC5CdXR0b24sZi5kaXNwbGF5TmFtZT0iUHJvRm9ybUNvbXBvbmVudCIsVy5aPWZ9LDY0MzE3OmZ1bmN0aW9uKHcsVyxyKXt2YXIgbz1yKDE0MTMpLHY9cig5MSksRT1yKDIyMjcwKSxEPXIoNjcyOTQpLGc9cig2Njc1OCkseD1yKDkyMTc5KSxCPXIoODU4OTMpLEw9WyJmaWVsZFByb3BzIiwiY2hpbGRyZW4iLCJwYXJhbXMiLCJwcm9GaWVsZFByb3BzIiwibW9kZSIsInZhbHVlRW51bSIsInJlcXVlc3QiLCJzaG93U2VhcmNoIiwib3B0aW9ucyJdLFA9WyJmaWVsZFByb3BzIiwiY2hpbGRyZW4iLCJwYXJhbXMiLCJwcm9GaWVsZFByb3BzIiwibW9kZSIsInZhbHVlRW51bSIsInJlcXVlc3QiLCJvcHRpb25zIl0sZD1mdW5jdGlvbihjLGgpe3ZhciBBPWMuZmllbGRQcm9wcyxpPWMuY2hpbGRyZW4sbj1jLnBhcmFtcyx5PWMucHJvRmllbGRQcm9wcyxPPWMubW9kZSxVPWMudmFsdWVFbnVtLEY9Yy5yZXF1ZXN0LFM9Yy5zaG93U2VhcmNoLFQ9Yy5vcHRpb25zLEs9KDAsdi5aKShjLEwpLE49KDAsRC51c2VDb250ZXh0KShnLlopO3JldHVybigwLEIuanN4KSh4LlosKDAsby5aKSgoMCxvLlopKHt2YWx1ZUVudW06KDAsRS5oKShVKSxyZXF1ZXN0OkYscGFyYW1zOm4sdmFsdWVUeXBlOiJzZWxlY3QiLGZpbGVkQ29uZmlnOntjdXN0b21MaWdodE1vZGU6ITB9LGZpZWxkUHJvcHM6KDAsby5aKSh7b3B0aW9uczpULG1vZGU6TyxzaG93U2VhcmNoOlMsZ2V0UG9wdXBDb250YWluZXI6Ti5nZXRQb3B1cENvbnRhaW5lcn0sQSkscmVmOmgscHJvRmllbGRQcm9wczp5fSxLKSx7fSx7Y2hpbGRyZW46aX0pKX0sWj1ELmZvcndhcmRSZWYoZnVuY3Rpb24obCxjKXt2YXIgaD1sLmZpZWxkUHJvcHMsQT1sLmNoaWxkcmVuLGk9bC5wYXJhbXMsbj1sLnByb0ZpZWxkUHJvcHMseT1sLm1vZGUsTz1sLnZhbHVlRW51bSxVPWwucmVxdWVzdCxGPWwub3B0aW9ucyxTPSgwLHYuWikobCxQKSxUPSgwLG8uWikoe29wdGlvbnM6Rixtb2RlOnl8fCJtdWx0aXBsZSIsbGFiZWxJblZhbHVlOiEwLHNob3dTZWFyY2g6ITAsc3VmZml4SWNvbjpudWxsLGF1dG9DbGVhclNlYXJjaFZhbHVlOiEwLG9wdGlvbkxhYmVsUHJvcDoibGFiZWwifSxoKSxLPSgwLEQudXNlQ29udGV4dCkoZy5aKTtyZXR1cm4oMCxCLmpzeCkoeC5aLCgwLG8uWikoKDAsby5aKSh7dmFsdWVFbnVtOigwLEUuaCkoTykscmVxdWVzdDpVLHBhcmFtczppLHZhbHVlVHlwZToic2VsZWN0IixmaWxlZENvbmZpZzp7Y3VzdG9tTGlnaHRNb2RlOiEwfSxmaWVsZFByb3BzOigwLG8uWikoe2dldFBvcHVwQ29udGFpbmVyOksuZ2V0UG9wdXBDb250YWluZXJ9LFQpLHJlZjpjLHByb0ZpZWxkUHJvcHM6bn0sUykse30se2NoaWxkcmVuOkF9KSl9KSxqPUQuZm9yd2FyZFJlZihkKSxmPVoscD1qO3AuU2VhcmNoU2VsZWN0PWYscC5kaXNwbGF5TmFtZT0iUHJvRm9ybUNvbXBvbmVudCIsVy5aPXB9LDkwNjcyOmZ1bmN0aW9uKHcsVyxyKXt2YXIgbz1yKDE0MTMpLHY9cig5MSksRT1yKDY3Mjk0KSxEPXIoOTIxNzkpLGc9cig4NTg5MykseD1bImZpZWxkUHJvcHMiLCJwcm9GaWVsZFByb3BzIl0sQj1mdW5jdGlvbihQLGQpe3ZhciBaPVAuZmllbGRQcm9wcyxqPVAucHJvRmllbGRQcm9wcyxmPSgwLHYuWikoUCx4KTtyZXR1cm4oMCxnLmpzeCkoRC5aLCgwLG8uWikoe3JlZjpkLHZhbHVlVHlwZToidGV4dGFyZWEiLGZpZWxkUHJvcHM6Wixwcm9GaWVsZFByb3BzOmp9LGYpKX07Vy5aPUUuZm9yd2FyZFJlZihCKX0sNTk2NjpmdW5jdGlvbih3LFcscil7dmFyIG89cig5NzY4NSksdj1yKDE0MTMpLEU9cig5MSksRD1yKDIxNzcwKSxnPXIoOTk4NTkpLHg9cig1NTI0MSksQj1yKDk4NDIzKSxMPXIoNjcyOTQpLFA9cig5MjE3OSksZD1yKDg1ODkzKSxaPVsiZmllbGRQcm9wcyIsInByb0ZpZWxkUHJvcHMiXSxqPVsiZmllbGRQcm9wcyIsInByb0ZpZWxkUHJvcHMiXSxmPSJ0ZXh0IixwPWZ1bmN0aW9uKGkpe3ZhciBuPWkuZmllbGRQcm9wcyx5PWkucHJvRmllbGRQcm9wcyxPPSgwLEUuWikoaSxaKTtyZXR1cm4oMCxkLmpzeCkoUC5aLCgwLHYuWikoe3ZhbHVlVHlwZTpmLGZpZWxkUHJvcHM6bixmaWxlZENvbmZpZzp7dmFsdWVUeXBlOmZ9LHByb0ZpZWxkUHJvcHM6eX0sTykpfSxsPWZ1bmN0aW9uKGkpe3ZhciBuPSgwLEQuWikoaS5vcGVufHwhMSx7dmFsdWU6aS5vcGVuLG9uQ2hhbmdlOmkub25PcGVuQ2hhbmdlfSkseT0oMCxvLlopKG4sMiksTz15WzBdLFU9eVsxXTtyZXR1cm4oMCxkLmpzeCkoZy5aLkl0ZW0se3Nob3VsZFVwZGF0ZTohMCxub1N0eWxlOiEwLGNoaWxkcmVuOmZ1bmN0aW9uKFMpe3ZhciBULEs9Uy5nZXRGaWVsZFZhbHVlKGkubmFtZXx8W10pO3JldHVybigwLGQuanN4KSh4LlosKDAsdi5aKSgoMCx2LlopKHtnZXRQb3B1cENvbnRhaW5lcjpmdW5jdGlvbihDKXtyZXR1cm4gQyYmQy5wYXJlbnROb2RlP0MucGFyZW50Tm9kZTpDfSxvbk9wZW5DaGFuZ2U6ZnVuY3Rpb24oQyl7cmV0dXJuIFUoQyl9LGNvbnRlbnQ6KDAsZC5qc3hzKSgiZGl2Iix7c3R5bGU6e3BhZGRpbmc6IjRweCAwIn0sY2hpbGRyZW46WyhUPWkuc3RhdHVzUmVuZGVyKT09PW51bGx8fFQ9PT12b2lkIDA/dm9pZCAwOlQuY2FsbChpLEspLGkuc3RyZW5ndGhUZXh0PygwLGQuanN4KSgiZGl2Iix7c3R5bGU6e21hcmdpblRvcDoxMH0sY2hpbGRyZW46KDAsZC5qc3gpKCJzcGFuIix7Y2hpbGRyZW46aS5zdHJlbmd0aFRleHR9KX0pOm51bGxdfSksb3ZlcmxheVN0eWxlOnt3aWR0aDoyNDB9LHBsYWNlbWVudDoicmlnaHRUb3AifSxpLnBvcG92ZXJQcm9wcykse30se29wZW46TyxjaGlsZHJlbjppLmNoaWxkcmVufSkpfX0pfSxjPWZ1bmN0aW9uKGkpe3ZhciBuPWkuZmllbGRQcm9wcyx5PWkucHJvRmllbGRQcm9wcyxPPSgwLEUuWikoaSxqKSxVPSgwLEwudXNlU3RhdGUpKCExKSxGPSgwLG8uWikoVSwyKSxTPUZbMF0sVD1GWzFdO3JldHVybiBuIT1udWxsJiZuLnN0YXR1c1JlbmRlciYmTy5uYW1lPygwLGQuanN4KShsLHtuYW1lOk8ubmFtZSxzdGF0dXNSZW5kZXI6bj09bnVsbD92b2lkIDA6bi5zdGF0dXNSZW5kZXIscG9wb3ZlclByb3BzOm49PW51bGw/dm9pZCAwOm4ucG9wb3ZlclByb3BzLHN0cmVuZ3RoVGV4dDpuPT1udWxsP3ZvaWQgMDpuLnN0cmVuZ3RoVGV4dCxvcGVuOlMsb25PcGVuQ2hhbmdlOlQsY2hpbGRyZW46KDAsZC5qc3gpKCJkaXYiLHtjaGlsZHJlbjooMCxkLmpzeCkoUC5aLCgwLHYuWikoe3ZhbHVlVHlwZToicGFzc3dvcmQiLGZpZWxkUHJvcHM6KDAsdi5aKSgoMCx2LlopKHt9LCgwLEIuWikobixbInN0YXR1c1JlbmRlciIsInBvcG92ZXJQcm9wcyIsInN0cmVuZ3RoVGV4dCJdKSkse30se29uQmx1cjpmdW5jdGlvbihOKXt2YXIgQztuPT1udWxsfHwoQz1uLm9uQmx1cik9PT1udWxsfHxDPT09dm9pZCAwfHxDLmNhbGwobixOKSxUKCExKX0sb25DbGljazpmdW5jdGlvbihOKXt2YXIgQztuPT1udWxsfHwoQz1uLm9uQ2xpY2spPT09bnVsbHx8Qz09PXZvaWQgMHx8Qy5jYWxsKG4sTiksVCghMCl9fSkscHJvRmllbGRQcm9wczp5LGZpbGVkQ29uZmlnOnt2YWx1ZVR5cGU6Zn19LE8pKX0pfSk6KDAsZC5qc3gpKFAuWiwoMCx2LlopKHt2YWx1ZVR5cGU6InBhc3N3b3JkIixmaWVsZFByb3BzOm4scHJvRmllbGRQcm9wczp5LGZpbGVkQ29uZmlnOnt2YWx1ZVR5cGU6Zn19LE8pKX0saD1wO2guUGFzc3dvcmQ9YyxoLmRpc3BsYXlOYW1lPSJQcm9Gb3JtQ29tcG9uZW50IixXLlo9aH0sNjYzMDk6ZnVuY3Rpb24odyxXLHIpe3IuZChXLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIG9lfX0pO3ZhciBvPXIoNjcyOTQpLHY9cig5Mzk2NyksRT1yLm4odiksRD1yKDk4NDIzKSxnPXIoOTg3ODcpLHg9cig2OTc2MCksQj1yKDk2MTU5KSxMPXIoNDUzNTMpLFA9cig1MzEyNCksZD1yKDExNTY4KSxaPXIoMTUwNjMpLGo9cigxNDc0NyksZj1yKDgzMjYyKSxwPXIoODM1NTkpO2NvbnN0IGw9ZT0+e2NvbnN0e3BhZGRpbmdYWFM6YSxsaW5lV2lkdGg6dSx0YWdQYWRkaW5nSG9yaXpvbnRhbDp0LGNvbXBvbmVudENsczpzLGNhbGM6JH09ZSxiPSQodCkuc3ViKHUpLmVxdWFsKCksSD0kKGEpLnN1Yih1KS5lcXVhbCgpO3JldHVybntbc106T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCgwLGouV2YpKGUpKSx7ZGlzcGxheToiaW5saW5lLWJsb2NrIixoZWlnaHQ6ImF1dG8iLG1hcmdpbklubGluZUVuZDplLm1hcmdpblhTLHBhZGRpbmdJbmxpbmU6Yixmb250U2l6ZTplLnRhZ0ZvbnRTaXplLGxpbmVIZWlnaHQ6ZS50YWdMaW5lSGVpZ2h0LHdoaXRlU3BhY2U6Im5vd3JhcCIsYmFja2dyb3VuZDplLmRlZmF1bHRCZyxib3JkZXI6YCR7KDAsZC5iZikoZS5saW5lV2lkdGgpfSAke2UubGluZVR5cGV9ICR7ZS5jb2xvckJvcmRlcn1gLGJvcmRlclJhZGl1czplLmJvcmRlclJhZGl1c1NNLG9wYWNpdHk6MSx0cmFuc2l0aW9uOmBhbGwgJHtlLm1vdGlvbkR1cmF0aW9uTWlkfWAsdGV4dEFsaWduOiJzdGFydCIscG9zaXRpb246InJlbGF0aXZlIixbYCYke3N9LXJ0bGBdOntkaXJlY3Rpb246InJ0bCJ9LCImLCBhLCBhOmhvdmVyIjp7Y29sb3I6ZS5kZWZhdWx0Q29sb3J9LFtgJHtzfS1jbG9zZS1pY29uYF06e21hcmdpbklubGluZVN0YXJ0OkgsZm9udFNpemU6ZS50YWdJY29uU2l6ZSxjb2xvcjplLmNvbG9yVGV4dERlc2NyaXB0aW9uLGN1cnNvcjoicG9pbnRlciIsdHJhbnNpdGlvbjpgYWxsICR7ZS5tb3Rpb25EdXJhdGlvbk1pZH1gLCImOmhvdmVyIjp7Y29sb3I6ZS5jb2xvclRleHRIZWFkaW5nfX0sW2AmJHtzfS1oYXMtY29sb3JgXTp7Ym9yZGVyQ29sb3I6InRyYW5zcGFyZW50IixbYCYsIGEsIGE6aG92ZXIsICR7ZS5pY29uQ2xzfS1jbG9zZSwgJHtlLmljb25DbHN9LWNsb3NlOmhvdmVyYF06e2NvbG9yOmUuY29sb3JUZXh0TGlnaHRTb2xpZH19LCImLWNoZWNrYWJsZSI6e2JhY2tncm91bmRDb2xvcjoidHJhbnNwYXJlbnQiLGJvcmRlckNvbG9yOiJ0cmFuc3BhcmVudCIsY3Vyc29yOiJwb2ludGVyIixbYCY6bm90KCR7c30tY2hlY2thYmxlLWNoZWNrZWQpOmhvdmVyYF06e2NvbG9yOmUuY29sb3JQcmltYXJ5LGJhY2tncm91bmRDb2xvcjplLmNvbG9yRmlsbFNlY29uZGFyeX0sIiY6YWN0aXZlLCAmLWNoZWNrZWQiOntjb2xvcjplLmNvbG9yVGV4dExpZ2h0U29saWR9LCImLWNoZWNrZWQiOntiYWNrZ3JvdW5kQ29sb3I6ZS5jb2xvclByaW1hcnksIiY6aG92ZXIiOntiYWNrZ3JvdW5kQ29sb3I6ZS5jb2xvclByaW1hcnlIb3Zlcn19LCImOmFjdGl2ZSI6e2JhY2tncm91bmRDb2xvcjplLmNvbG9yUHJpbWFyeUFjdGl2ZX19LCImLWhpZGRlbiI6e2Rpc3BsYXk6Im5vbmUifSxbYD4gJHtlLmljb25DbHN9ICsgc3BhbiwgPiBzcGFuICsgJHtlLmljb25DbHN9YF06e21hcmdpbklubGluZVN0YXJ0OmJ9fSksW2Ake3N9LWJvcmRlcmxlc3NgXTp7Ym9yZGVyQ29sb3I6InRyYW5zcGFyZW50IixiYWNrZ3JvdW5kOmUudGFnQm9yZGVybGVzc0JnfX19LGM9ZT0+e2NvbnN0e2xpbmVXaWR0aDphLGZvbnRTaXplSWNvbjp1LGNhbGM6dH09ZSxzPWUuZm9udFNpemVTTTtyZXR1cm4oMCxmLklYKShlLHt0YWdGb250U2l6ZTpzLHRhZ0xpbmVIZWlnaHQ6KDAsZC5iZikodChlLmxpbmVIZWlnaHRTTSkubXVsKHMpLmVxdWFsKCkpLHRhZ0ljb25TaXplOnQodSkuc3ViKHQoYSkubXVsKDIpKS5lcXVhbCgpLHRhZ1BhZGRpbmdIb3Jpem9udGFsOjgsdGFnQm9yZGVybGVzc0JnOmUuZGVmYXVsdEJnfSl9LGg9ZT0+KHtkZWZhdWx0Qmc6bmV3IFoudChlLmNvbG9yRmlsbFF1YXRlcm5hcnkpLm9uQmFja2dyb3VuZChlLmNvbG9yQmdDb250YWluZXIpLnRvSGV4U3RyaW5nKCksZGVmYXVsdENvbG9yOmUuY29sb3JUZXh0fSk7dmFyIEE9KDAscC5JJCkoIlRhZyIsZT0+e2NvbnN0IGE9YyhlKTtyZXR1cm4gbChhKX0saCksaT1mdW5jdGlvbihlLGEpe3ZhciB1PXt9O2Zvcih2YXIgdCBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHQpJiZhLmluZGV4T2YodCk8MCYmKHVbdF09ZVt0XSk7aWYoZSE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBzPTAsdD1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3M8dC5sZW5ndGg7cysrKWEuaW5kZXhPZih0W3NdKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSx0W3NdKSYmKHVbdFtzXV09ZVt0W3NdXSk7cmV0dXJuIHV9LHk9by5mb3J3YXJkUmVmKChlLGEpPT57Y29uc3R7cHJlZml4Q2xzOnUsc3R5bGU6dCxjbGFzc05hbWU6cyxjaGVja2VkOiQsb25DaGFuZ2U6YixvbkNsaWNrOkh9PWUsXz1pKGUsWyJwcmVmaXhDbHMiLCJzdHlsZSIsImNsYXNzTmFtZSIsImNoZWNrZWQiLCJvbkNoYW5nZSIsIm9uQ2xpY2siXSkse2dldFByZWZpeENsczpJLHRhZzpSfT1vLnVzZUNvbnRleHQoUC5FXyksbT1RPT57Yj09bnVsbHx8YighJCksSD09bnVsbHx8SChRKX0sTT1JKCJ0YWciLHUpLFtZLGssVl09QShNKSxxPUUoKShNLGAke019LWNoZWNrYWJsZWAse1tgJHtNfS1jaGVja2FibGUtY2hlY2tlZGBdOiR9LFI9PW51bGw/dm9pZCAwOlIuY2xhc3NOYW1lLHMsayxWKTtyZXR1cm4gWShvLmNyZWF0ZUVsZW1lbnQoInNwYW4iLE9iamVjdC5hc3NpZ24oe30sXyx7cmVmOmEsc3R5bGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLFI9PW51bGw/dm9pZCAwOlIuc3R5bGUpLGNsYXNzTmFtZTpxLG9uQ2xpY2s6bX0pKSl9KSxPPXIoOTg3MTkpO2NvbnN0IFU9ZT0+KDAsTy5aKShlLChhLHUpPT57bGV0e3RleHRDb2xvcjp0LGxpZ2h0Qm9yZGVyQ29sb3I6cyxsaWdodENvbG9yOiQsZGFya0NvbG9yOmJ9PXU7cmV0dXJue1tgJHtlLmNvbXBvbmVudENsc30ke2UuY29tcG9uZW50Q2xzfS0ke2F9YF06e2NvbG9yOnQsYmFja2dyb3VuZDokLGJvcmRlckNvbG9yOnMsIiYtaW52ZXJzZSI6e2NvbG9yOmUuY29sb3JUZXh0TGlnaHRTb2xpZCxiYWNrZ3JvdW5kOmIsYm9yZGVyQ29sb3I6Yn0sW2AmJHtlLmNvbXBvbmVudENsc30tYm9yZGVybGVzc2BdOntib3JkZXJDb2xvcjoidHJhbnNwYXJlbnQifX19fSk7dmFyIEY9KDAscC5iaykoWyJUYWciLCJwcmVzZXQiXSxlPT57Y29uc3QgYT1jKGUpO3JldHVybiBVKGEpfSxoKTtmdW5jdGlvbiBTKGUpe3JldHVybiB0eXBlb2YgZSE9InN0cmluZyI/ZTplLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2Uuc2xpY2UoMSl9Y29uc3QgVD0oZSxhLHUpPT57Y29uc3QgdD1TKHUpO3JldHVybntbYCR7ZS5jb21wb25lbnRDbHN9JHtlLmNvbXBvbmVudENsc30tJHthfWBdOntjb2xvcjplW2Bjb2xvciR7dX1gXSxiYWNrZ3JvdW5kOmVbYGNvbG9yJHt0fUJnYF0sYm9yZGVyQ29sb3I6ZVtgY29sb3Ike3R9Qm9yZGVyYF0sW2AmJHtlLmNvbXBvbmVudENsc30tYm9yZGVybGVzc2BdOntib3JkZXJDb2xvcjoidHJhbnNwYXJlbnQifX19fTt2YXIgSz0oMCxwLmJrKShbIlRhZyIsInN0YXR1cyJdLGU9Pntjb25zdCBhPWMoZSk7cmV0dXJuW1QoYSwic3VjY2VzcyIsIlN1Y2Nlc3MiKSxUKGEsInByb2Nlc3NpbmciLCJJbmZvIiksVChhLCJlcnJvciIsIkVycm9yIiksVChhLCJ3YXJuaW5nIiwiV2FybmluZyIpXX0saCksTj1mdW5jdGlvbihlLGEpe3ZhciB1PXt9O2Zvcih2YXIgdCBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHQpJiZhLmluZGV4T2YodCk8MCYmKHVbdF09ZVt0XSk7aWYoZSE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBzPTAsdD1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3M8dC5sZW5ndGg7cysrKWEuaW5kZXhPZih0W3NdKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSx0W3NdKSYmKHVbdFtzXV09ZVt0W3NdXSk7cmV0dXJuIHV9O2NvbnN0IEo9by5mb3J3YXJkUmVmKChlLGEpPT57Y29uc3R7cHJlZml4Q2xzOnUsY2xhc3NOYW1lOnQscm9vdENsYXNzTmFtZTpzLHN0eWxlOiQsY2hpbGRyZW46YixpY29uOkgsY29sb3I6XyxvbkNsb3NlOkksYm9yZGVyZWQ6Uj0hMCx2aXNpYmxlOm19PWUsTT1OKGUsWyJwcmVmaXhDbHMiLCJjbGFzc05hbWUiLCJyb290Q2xhc3NOYW1lIiwic3R5bGUiLCJjaGlsZHJlbiIsImljb24iLCJjb2xvciIsIm9uQ2xvc2UiLCJib3JkZXJlZCIsInZpc2libGUiXSkse2dldFByZWZpeENsczpZLGRpcmVjdGlvbjprLHRhZzpWfT1vLnVzZUNvbnRleHQoUC5FXyksW3EsUV09by51c2VTdGF0ZSghMCksZGU9KDAsRC5aKShNLFsiY2xvc2VJY29uIiwiY2xvc2FibGUiXSk7by51c2VFZmZlY3QoKCk9PnttIT09dm9pZCAwJiZRKG0pfSxbbV0pO2NvbnN0IHRlPSgwLGcubzIpKF8pLG5lPSgwLGcueVQpKF8pLGVlPXRlfHxuZSxjZT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe2JhY2tncm91bmRDb2xvcjpfJiYhZWU/Xzp2b2lkIDB9LFY9PW51bGw/dm9pZCAwOlYuc3R5bGUpLCQpLHo9WSgidGFnIix1KSxbdWUscGUsdmVdPUEoeiksUGU9RSgpKHosVj09bnVsbD92b2lkIDA6Vi5jbGFzc05hbWUse1tgJHt6fS0ke199YF06ZWUsW2Ake3p9LWhhcy1jb2xvcmBdOl8mJiFlZSxbYCR7en0taGlkZGVuYF06IXEsW2Ake3p9LXJ0bGBdOms9PT0icnRsIixbYCR7en0tYm9yZGVybGVzc2BdOiFSfSx0LHMscGUsdmUpLGFlPVg9PntYLnN0b3BQcm9wYWdhdGlvbigpLEk9PW51bGx8fEkoWCksIVguZGVmYXVsdFByZXZlbnRlZCYmUSghMSl9LFssbWVdPSgwLHguWikoKDAseC53KShlKSwoMCx4LncpKFYpLHtjbG9zYWJsZTohMSxjbG9zZUljb25SZW5kZXI6WD0+e2NvbnN0IENlPW8uY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpgJHt6fS1jbG9zZS1pY29uYCxvbkNsaWNrOmFlfSxYKTtyZXR1cm4oMCxCLndtKShYLENlLEc9Pih7b25DbGljazppZT0+e3ZhciByZTsocmU9Rz09bnVsbD92b2lkIDA6Ry5vbkNsaWNrKT09PW51bGx8fHJlPT09dm9pZCAwfHxyZS5jYWxsKEcsaWUpLGFlKGllKX0sY2xhc3NOYW1lOkUoKShHPT1udWxsP3ZvaWQgMDpHLmNsYXNzTmFtZSxgJHt6fS1jbG9zZS1pY29uYCl9KSl9fSksX2U9dHlwZW9mIE0ub25DbGljaz09ImZ1bmN0aW9uInx8YiYmYi50eXBlPT09ImEiLGxlPUh8fG51bGwsZmU9bGU/by5jcmVhdGVFbGVtZW50KG8uRnJhZ21lbnQsbnVsbCxsZSxiJiZvLmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwsYikpOmIsc2U9by5jcmVhdGVFbGVtZW50KCJzcGFuIixPYmplY3QuYXNzaWduKHt9LGRlLHtyZWY6YSxjbGFzc05hbWU6UGUsc3R5bGU6Y2V9KSxmZSxtZSx0ZSYmby5jcmVhdGVFbGVtZW50KEYse2tleToicHJlc2V0IixwcmVmaXhDbHM6en0pLG5lJiZvLmNyZWF0ZUVsZW1lbnQoSyx7a2V5OiJzdGF0dXMiLHByZWZpeENsczp6fSkpO3JldHVybiB1ZShfZT9vLmNyZWF0ZUVsZW1lbnQoTC5aLHtjb21wb25lbnQ6IlRhZyJ9LHNlKTpzZSl9KTtKLkNoZWNrYWJsZVRhZz15O3ZhciBvZT1KfX1dKTsKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvOTcyMC41ZGZjZDFiNy5hc3luYy5qcyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvOTcyMC41ZGZjZDFiNy5hc3luYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zN2E1NGUwCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy85NzIwLjVkZmNkMWI3LmFzeW5jLmpzCkBAIC0wLDAgKzEgQEAKKyJ1c2Ugc3RyaWN0Ijsoc2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Bybz1zZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvfHxbXSkucHVzaChbWzk3MjBdLHs1OTcyMDpmdW5jdGlvbihRLEYscil7ci5kKEYse1pQOmZ1bmN0aW9uKCl7cmV0dXJuIGJ9fSk7dmFyIGU9cig2NzI5NCksZj1yKDg5NzM5KSxMPXIoNDM0MCksdj1yKDIxNjQwKSxCPXIoMTA4NDQpLEM9cig5Mzk2NyksdT1yLm4oQyksRD1yKDUzMTI0KSxnPSgpPT5lLmNyZWF0ZUVsZW1lbnQoInN2ZyIse3dpZHRoOiIyNTIiLGhlaWdodDoiMjk0In0sZS5jcmVhdGVFbGVtZW50KCJ0aXRsZSIsbnVsbCwiTm8gRm91bmQiKSxlLmNyZWF0ZUVsZW1lbnQoImRlZnMiLG51bGwsZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTAgLjM4N2gyNTEuNzcydjI1MS43NzJIMHoifSkpLGUuY3JlYXRlRWxlbWVudCgiZyIse2ZpbGw6Im5vbmUiLGZpbGxSdWxlOiJldmVub2RkIn0sZS5jcmVhdGVFbGVtZW50KCJnIix7dHJhbnNmb3JtOiJ0cmFuc2xhdGUoMCAuMDEyKSJ9LGUuY3JlYXRlRWxlbWVudCgibWFzayIse2ZpbGw6IiNmZmYifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTAgMTI3LjMydi0yLjA5NUMwIDU2LjI3OSA1NS44OTIuMzg3IDEyNC44MzguMzg3aDIuMDk2YzY4Ljk0NiAwIDEyNC44MzggNTUuODkyIDEyNC44MzggMTI0LjgzOHYyLjA5NmMwIDY4Ljk0Ni01NS44OTIgMTI0LjgzOC0xMjQuODM4IDEyNC44MzhoLTIuMDk2QzU1Ljg5MiAyNTIuMTYgMCAxOTYuMjY3IDAgMTI3LjMyMSIsZmlsbDoiI0U0RUJGNyIsbWFzazoidXJsKCNiKSJ9KSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTM5Ljc1NSAxMzAuODRhOC4yNzYgOC4yNzYgMCAxIDEtMTYuNDY4LTEuNjYgOC4yNzYgOC4yNzYgMCAwIDEgMTYuNDY4IDEuNjYiLGZpbGw6IiNGRkYifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTM2Ljk3NSAxMzQuMjk3bDEwLjQ4MiA1Ljk0M000OC4zNzMgMTQ2LjUwOGwtMTIuNjQ4IDEwLjc4OCIsc3Ryb2tlOiIjRkZGIixzdHJva2VXaWR0aDoiMiJ9KSxlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMzkuODc1IDE1OS4zNTJhNS42NjcgNS42NjcgMCAxIDEtMTEuMjc3LTEuMTM2IDUuNjY3IDUuNjY3IDAgMCAxIDExLjI3NyAxLjEzNk01Ny41ODggMTQzLjI0N2E1LjcwOCA1LjcwOCAwIDEgMS0xMS4zNTgtMS4xNDUgNS43MDggNS43MDggMCAwIDEgMTEuMzU4IDEuMTQ1TTk5LjAxOCAyNi44NzVsMjkuODItLjAxNGE0LjU4NyA0LjU4NyAwIDEgMC0uMDAzLTkuMTc1bC0yOS44Mi4wMTNhNC41ODcgNC41ODcgMCAxIDAgLjAwMyA5LjE3Nk0xMTAuNDI0IDQ1LjIxMWwyOS44Mi0uMDEzYTQuNTg4IDQuNTg4IDAgMCAwLS4wMDQtOS4xNzVsLTI5LjgyLjAxM2E0LjU4NyA0LjU4NyAwIDEgMCAuMDA0IDkuMTc1IixmaWxsOiIjRkZGIn0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0xMTIuNzk4IDI2Ljg2MXYtLjAwMmwxNS43ODQtLjAwNmE0LjU4OCA0LjU4OCAwIDEgMCAuMDAzIDkuMTc1bC0xNS43ODMuMDA3di0uMDAyYTQuNTg2IDQuNTg2IDAgMCAwLS4wMDQtOS4xNzJNMTg0LjUyMyAxMzUuNjY4Yy0uNTUzIDUuNDg1LTUuNDQ3IDkuNDgzLTEwLjkzMSA4LjkzLTUuNDg1LS41NTMtOS40ODMtNS40NDgtOC45My0xMC45MzIuNTUyLTUuNDg1IDUuNDQ3LTkuNDgzIDEwLjkzMi04LjkzIDUuNDg1LjU1MyA5LjQ4MyA1LjQ0NyA4LjkzIDEwLjkzMiIsZmlsbDoiI0ZGRiJ9KSxlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTc5LjI2IDE0MS43NWwxMi42NCA3LjE2N00xOTMuMDA2IDE1Ni40NzdsLTE1LjI1NSAxMy4wMTEiLHN0cm9rZToiI0ZGRiIsc3Ryb2tlV2lkdGg6IjIifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTE4NC42NjggMTcwLjA1N2E2LjgzNSA2LjgzNSAwIDEgMS0xMy42LTEuMzcyIDYuODM1IDYuODM1IDAgMCAxIDEzLjYgMS4zNzJNMjAzLjM0IDE1My4zMjVhNi44ODUgNi44ODUgMCAxIDEtMTMuNy0xLjM4MiA2Ljg4NSA2Ljg4NSAwIDAgMSAxMy43IDEuMzgyIixmaWxsOiIjRkZGIn0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0xNTEuOTMxIDE5Mi4zMjRhMi4yMjIgMi4yMjIgMCAxIDEtNC40NDQgMCAyLjIyMiAyLjIyMiAwIDAgMSA0LjQ0NCAwek0yMjUuMjcgMTE2LjA1NmEyLjIyMiAyLjIyMiAwIDEgMS00LjQ0NSAwIDIuMjIyIDIuMjIyIDAgMCAxIDQuNDQ0IDB6TTIxNi4zOCAxNTEuMDhhMi4yMjMgMi4yMjMgMCAxIDEtNC40NDYtLjAwMSAyLjIyMyAyLjIyMyAwIDAgMSA0LjQ0NiAwek0xNzYuOTE3IDEwNy42MzZhMi4yMjMgMi4yMjMgMCAxIDEtNC40NDUgMCAyLjIyMyAyLjIyMyAwIDAgMSA0LjQ0NSAwek0xOTUuMjkxIDkyLjE2NWEyLjIyMyAyLjIyMyAwIDEgMS00LjQ0NSAwIDIuMjIzIDIuMjIzIDAgMCAxIDQuNDQ1IDB6TTIwMi4wNTggMTgwLjcxMWEyLjIyMyAyLjIyMyAwIDEgMS00LjQ0NiAwIDIuMjIzIDIuMjIzIDAgMCAxIDQuNDQ2IDB6IixzdHJva2U6IiNGRkYiLHN0cm9rZVdpZHRoOiIyIn0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse3N0cm9rZToiI0ZGRiIsc3Ryb2tlV2lkdGg6IjIiLGQ6Ik0yMTQuNDA0IDE1My4zMDJsLTEuOTEyIDIwLjE4NC0xMC45MjggNS45OU0xNzMuNjYxIDE3NC43OTJsLTYuMzU2IDkuODE0aC0xMS4zNmwtNC41MDggNi40ODRNMTc0Ljk0MSAxMjUuMTY4di0xNS44MDRNMjIwLjgyNCAxMTcuMjVsLTEyLjg0IDcuOTAxLTE1LjMxLTcuOTAyVjk0LjM5In0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0xNjYuNTg4IDY1LjkzNmgtMy45NTFhNC43NTYgNC43NTYgMCAwIDEtNC43NDMtNC43NDIgNC43NTYgNC43NTYgMCAwIDEgNC43NDMtNC43NDNoMy45NTFhNC43NTYgNC43NTYgMCAwIDEgNC43NDMgNC43NDMgNC43NTYgNC43NTYgMCAwIDEtNC43NDMgNC43NDIiLGZpbGw6IiNGRkYifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTE3NC44MjMgMzAuMDNjMC0xNi4yODEgMTMuMTk4LTI5LjQ4IDI5LjQ4LTI5LjQ4IDE2LjI4IDAgMjkuNDggMTMuMTk5IDI5LjQ4IDI5LjQ4IDAgMTYuMjgtMTMuMiAyOS40OC0yOS40OCAyOS40OC0xNi4yODIgMC0yOS40OC0xMy4yLTI5LjQ4LTI5LjQ4IixmaWxsOiIjMTY3N2ZmIn0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0yMDUuOTUyIDM4LjM4N2MuNS41Ljc4NSAxLjE0Mi43ODUgMS45MjhzLS4yODYgMS40NjUtLjc4NSAxLjk2NGMtLjU3Mi41LTEuMjE0Ljc1LTIgLjc1LS43ODUgMC0xLjQyOS0uMjg1LTEuOTI5LS43ODUtLjU3Mi0uNS0uODItMS4xNDMtLjgyLTEuOTI5cy4yNDgtMS40MjguODItMS45MjhjLjUtLjUgMS4xNDQtLjc1IDEuOTMtLjc1Ljc4NSAwIDEuNDYyLjI1IDEuOTk5Ljc1bTQuMjg1LTE5LjQ2M2MxLjQyOCAxLjI0OSAyLjE0MyAyLjk2MyAyLjE0MyA1LjE0MiAwIDEuNzEyLS40MjcgMy4xMy0xLjIxOSA0LjI1LS4wNjcuMDk2LS4xMzcuMTgtLjIxOC4yNjUtLjQxNi40MjktMS40MSAxLjM0Ni0yLjk1NiAyLjY5OWE1LjA3IDUuMDcgMCAwIDAtMS40MjggMS43NSA1LjIwNyA1LjIwNyAwIDAgMC0uNTM2IDIuMzU3di41aC00LjEwN3YtLjVjMC0xLjM1Ny4yMTUtMi41MzYuNzE0LTMuNS40NjQtLjk2NCAxLjg1Ny0yLjQ2NCA0LjE3OC00LjUzNmwuNDMtLjVjLjY0My0uNzg1Ljk2NC0xLjY0My45NjQtMi41MzUgMC0xLjE4LS4zNTgtMi4xMDgtMS0yLjc4NS0uNjc4LS42OC0xLjY0My0xLjAwMS0yLjg1OC0xLjAwMS0xLjUzNiAwLTIuNjQyLjQ2NC0zLjM1NyAxLjQzLS4zNy41LS42MjEgMS4xMzUtLjc2IDEuOTA0YTEuOTk5IDEuOTk5IDAgMCAxLTEuOTcxIDEuNjNoLS4wMDRjLTEuMjc3IDAtMi4yNTctMS4xODMtMS45OC0yLjQzLjMzNy0xLjUxOCAxLjAyLTIuNzggMi4wNzMtMy43ODQgMS41MzYtMS41IDMuNjA3LTIuMjUgNi4yNS0yLjI1IDIuMzIgMCA0LjIxNC42MDcgNS42NDIgMS44OTQiLGZpbGw6IiNGRkYifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTUyLjA0IDc2LjEzMXMyMS44MSA1LjM2IDI3LjMwNyAxNS45NDVjNS41NzUgMTAuNzQtNi4zNTIgOS4yNi0xNS43MyA0LjkzNS0xMC44Ni01LjAwOC0yNC43LTExLjgyMi0xMS41NzctMjAuODgiLGZpbGw6IiNGRkI1OTQifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTkwLjQ4MyA2Ny41MDRsLS40NDkgMi44OTNjLS43NTMuNDktNC43NDgtMi42NjMtNC43NDgtMi42NjNsLTEuNjQ1Ljc0OC0xLjM0Ni01LjY4NHM2LjgxNS00LjU4OSA4LjkxNy01LjAxOGMyLjQ1Mi0uNTAxIDkuODg0Ljk0IDEwLjcgMi4yNzggMCAwIDEuMzIuNDg2LTIuMjI3LjY5LTMuNTQ4LjIwMy01LjA0My40NDctNi43OSAzLjEzMi0xLjc0NyAyLjY4Ni0yLjQxMiAzLjYyNC0yLjQxMiAzLjYyNCIsZmlsbDoiI0ZGQzZBMCJ9KSxlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTI4LjA1NSAxMTEuMzY3Yy0yLjYyNy03LjcyNC02LjE1LTEzLjE4LTguOTE3LTE1LjQ3OC0zLjUtMi45MDYtOS4zNC0yLjIyNS0xMS4zNjYtNC4xODctMS4yNy0xLjIzMS0zLjIxNS0xLjE5Ny0zLjIxNS0xLjE5N3MtMTQuOTgtMy4xNTgtMTYuODI4LTMuNDc5Yy0yLjM3LS40MS0yLjEyNC0uNzE0LTYuMDU0LTEuNDA1LTEuNTctMS45MDctMi45MTctMS4xMjItMi45MTctMS4xMjJsLTcuMTEtMS4zODNjLS44NTMtMS40NzItMi40MjMtMS4wMjMtMi40MjMtMS4wMjNsLTIuNDY4LS44OTdjLTEuNjQ1IDkuOTc2LTcuNzQgMTMuNzk2LTcuNzQgMTMuNzk2IDEuNzk1IDEuMTIyIDE1LjcwMyA4LjMgMTUuNzAzIDguM2w1LjEwNyAzNy4xMXMtMy4zMjEgNS42OTQgMS4zNDYgOS4xMDljMCAwIDE5Ljg4My0zLjc0MyAzNC45MjEtLjMyOSAwIDAgMy4wNDctMi41NDYuOTcyLTguODA2LjUyMy0zLjAxIDEuMzk0LTguMjYzIDEuNzM2LTExLjYyMi4zODUuNzcyIDIuMDE5IDEuOTE4IDMuMTQgMy40NzcgMCAwIDkuNDA3LTcuMzY1IDExLjA1Mi0xNC4wMTItLjgzMi0uNzIzLTEuNTk4LTEuNTg1LTIuMjY3LTIuNDUzLS41NjctLjczNi0uMzU4LTIuMDU2LS43NjUtMi43MTctLjY2OS0xLjA4NC0xLjgwNC0xLjM3OC0xLjkwNy0xLjY4MiIsZmlsbDoiI0ZGRiJ9KSxlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTAxLjA5IDI4OS45OThzNC4yOTUgMi4wNDEgNy4zNTQgMS4wMjFjMi44MjEtLjk0IDQuNTMuNjY4IDcuMDggMS4xNzggMi41NS41MSA2Ljg3NCAxLjEgMTEuNjg2LTEuMjYtLjEwMy01LjUxLTYuODg5LTMuOTgtMTEuOTYtNi43MTMtMi41NjMtMS4zOC0zLjc4NC00LjcyMi0zLjU5OC04Ljc5OWgtOS40MDJzLTEuMzkyIDEwLjUyLTEuMTYgMTQuNTczIixmaWxsOiIjQ0JEMUQxIn0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0xMDEuMDY3IDI4OS44MjZzMi40MjggMS4yNzEgNi43NTkuNjUzYzMuMDU4LS40MzcgMy43MTIuNDgxIDcuNDIzIDEuMDMxIDMuNzEyLjU1IDEwLjcyNC0uMDY5IDExLjgyMy0uODk0LjQxMyAxLjEtLjM0MyAyLjA2My0uMzQzIDIuMDYzcy0xLjUxMi42MDMtNC44MTIuODI0Yy0yLjAzLjEzNi01LjguMjkxLTcuNjA3LS41MDMtMS43ODctMS4zNzUtNS4yNDctMS45MDMtNS43MjgtLjI0MS0zLjkxOC45NS03LjM1NS0uMjg2LTcuMzU1LS4yODZsLS4xNi0yLjY0N3oiLGZpbGw6IiMyQjA4NDkifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTEwOC4zNDEgMjc2LjA0NGgzLjA5NHMtLjEwMyA2LjcwMiA0LjUzNiA4LjU1OGMtNC42NC42MTgtOC41NTgtMi4zMDMtNy42My04LjU1OCIsZmlsbDoiI0E0QUFCQSJ9KSxlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNNTcuNTQyIDI3Mi40MDFzLTIuMTA3IDcuNDE2LTQuNDg1IDEyLjMwNmMtMS43OTggMy42OTUtNC4yMjUgNy40OTIgNS40NjUgNy40OTIgNi42NDggMCA4Ljk1My0uNDggNy40MjMtNi41OTktMS41My02LjEyLjI2Ni0xMy4xOTkuMjY2LTEzLjE5OWgtOC42Njl6IixmaWxsOiIjQ0JEMUQxIn0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik01MS40NzYgMjg5Ljc5M3MyLjA5NyAxLjE2OSA2LjYzMyAxLjE2OWM2LjA4MyAwIDguMjQ5LTEuNjUgOC4yNDktMS42NXMuNjAyIDEuMTE0LS42MTkgMi4xNjVjLS45OTMuODU1LTMuNTk3IDEuNTkxLTcuMzkgMS41NDYtNC4xNDUtLjA0OC01LjgzMi0uNTY2LTYuNzM2LTEuMTY4LS44MjUtLjU1LS42ODctMS41OC0uMTM3LTIuMDYyIixmaWxsOiIjMkIwODQ5In0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik01OC40MTkgMjc0LjMwNHMuMDMzIDEuNTE5LS4zMTQgMi45M2MtLjM0OSAxLjQyLTEuMDc4IDMuMTA0LTEuMTMgNC4xMzktLjA1OCAxLjE1MSA0LjUzNyAxLjU4IDUuMTU1LjAzNC42Mi0xLjU0NyAxLjI5NC02LjQyNyAxLjkxMy03LjI1Mi42MTktLjgyNS00LjkwMy0yLjExOS01LjYyNC4xNSIsZmlsbDoiI0E0QUFCQSJ9KSxlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNOTkuNjYgMjc4LjUxNGwxMy4zNzguMDkyczEuMjk4LTU0LjUyIDEuODUzLTY0LjQwM2MuNTU0LTkuODgyIDMuNzc2LTQzLjM2NCAxLjAwMi02My4xMjhsLTEyLjU0Ny0uNjQ0LTIyLjg0OS43OHMtLjQzNCAzLjk2Ni0xLjE5NSA5Ljk3NmMtLjA2My40OTYtLjY4Mi44NDMtLjc0OSAxLjM2NS0uMDc1LjU4NS40MjMgMS4zNTQuMzIgMS45NjYtMi4zNjQgMTQuMDgtNi4zNzcgMzMuMTA0LTguNzQ0IDQ2LjY3Ny0uMTE2LjY2Ni0xLjIzNCAxLjAwOS0xLjQ1OCAyLjY5MS0uMDQuMzAyLjIxMSAxLjUyNS4xMTIgMS43OTUtNi44NzMgMTguNzQ0LTEwLjk0OSA0Ny44NDItMTQuMjc3IDYxLjg4NWwxNC42MDctLjAxNHMyLjE5Ny04LjU3IDQuMDMtMTYuOTdjMi44MTEtMTIuODg2IDIzLjExMS04NS4wMSAyMy4xMTEtODUuMDFsMy4wMTYtLjUyMSAxLjA0MyA0Ni4zNXMtLjIyNCAxLjIzNC4zMzcgMi4wMmMuNTYuNzg1LS41NiAxLjEyMy0uMzkyIDIuMjQ0bC4zOTIgMS43OTRzLS40NDkgNy4xNzgtLjg5OCAxMS44OWMtLjQ0OCA0LjcxLS4wOTIgMzkuMTY1LS4wOTIgMzkuMTY1IixmaWxsOiIjN0JCMkY5In0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik03Ni4wODUgMjIxLjYyNmMxLjE1My4wOTQgNC4wMzgtMi4wMTkgNi45NTUtNC45MzVNMTA2LjM2IDIyNS4xNDJzMi43NzQtMS4xMSA2LjEwMy0zLjg4MyIsc3Ryb2tlOiIjNjQ4QkQ4IixzdHJva2VXaWR0aDoiMS4wNTEiLHN0cm9rZUxpbmVjYXA6InJvdW5kIixzdHJva2VMaW5lam9pbjoicm91bmQifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTEwNy4yNzUgMjIyLjFzMi43NzMtMS4xMSA2LjEwMi0zLjg4NCIsc3Ryb2tlOiIjNjQ4QkQ4IixzdHJva2VMaW5lY2FwOiJyb3VuZCIsc3Ryb2tlTGluZWpvaW46InJvdW5kIn0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik03NC43NCAyMjQuNzY3czIuNjIyLS41OTEgNi41MDUtMy4zNjVNODYuMDMgMTUxLjYzNGMtLjI3IDMuMTA2LjMgOC41MjUtNC4zMzYgOS4xMjNNMTAzLjYyNSAxNDkuODhzLjExIDE0LjAxMi0xLjI5MyAxNS4wNjVjLTIuMjE5IDEuNjY0LTIuOTkgMS45NDQtMi45OSAxLjk0NE05OS43OSAxNTAuNDM4cy4wMzUgMTIuODgtMS4xOTYgMjQuMzc3TTkzLjY3MyAxNzUuOTExczcuMjEyLTEuNjY0IDkuNDMxLTEuNjY0TTc0LjMxIDIwNS44NjFhMjEyLjAxMyAyMTIuMDEzIDAgMCAxLS45NzkgNC41NnMtMS40NTggMS44MzItMS4wMDkgMy43NzZjLjQ0OSAxLjk0NC0uOTQ3IDIuMDQ1LTQuOTg1IDE1LjM1NS0xLjY5NiA1LjU5LTQuNDkgMTguNTkxLTYuMzQ4IDI3LjU5N2wtLjIzMSAxLjEyTTc1LjY4OSAxOTcuODA3YTMyMC45MzQgMzIwLjkzNCAwIDAgMS0uODgyIDQuNzU0TTgyLjU5MSAxNTIuMjMzTDgxLjM5NSAxNjIuN3MtMS4wOTcuMTUtLjUgMi4yNDRjLjExMyAxLjM0Ni0yLjY3NCAxNS43NzUtNS4xOCAzMC40M001Ni4xMiAyNzQuNDE4aDEzLjMxIixzdHJva2U6IiM2NDhCRDgiLHN0cm9rZVdpZHRoOiIxLjA1MSIsc3Ryb2tlTGluZWNhcDoicm91bmQiLHN0cm9rZUxpbmVqb2luOiJyb3VuZCJ9KSxlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTE2LjI0MSAxNDguMjJzLTE3LjA0Ny0zLjEwNC0zNS44OTMuMmMuMTU4IDIuNTE0LS4wMDMgNC4xNS0uMDAzIDQuMTVzMTQuNjg3LTIuODE4IDM1LjY3LS4zMTJjLjI1Mi0yLjM1NS4yMjYtNC4wMzguMjI2LTQuMDM4IixmaWxsOiIjMTkyMDY0In0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0xMDYuMzIyIDE1MS4xNjVsLjAwMy00LjkxMWEuODEuODEgMCAwIDAtLjc3OC0uODE1Yy0yLjQ0LS4wOTEtNS4wNjYtLjEwOC03LjgzNi0uMDE0YS44MTguODE4IDAgMCAwLS43ODkuODE1bC0uMDAzIDQuOTA2YS44MS44MSAwIDAgMCAuODMxLjgxM2MyLjM4NS0uMDYgNC45NzMtLjA2NCA3LjczLjAxN2EuODE1LjgxNSAwIDAgMCAuODQyLS44MSIsZmlsbDoiI0ZGRiJ9KSxlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTA1LjIwNyAxNTAuMjMzbC4wMDItMy4wNzZhLjY0Mi42NDIgMCAwIDAtLjYxOS0uNjQ2IDk0LjMyMSA5NC4zMjEgMCAwIDAtNS44NjYtLjAxLjY1LjY1IDAgMCAwLS42My42NDd2My4wNzJhLjY0LjY0IDAgMCAwIC42NTQuNjQ0IDEyMS4xMiAxMjEuMTIgMCAwIDEgNS43OTQuMDExYy4zNjIuMDEuNjY1LS4yOC42NjUtLjY0MiIsZmlsbDoiIzE5MjA2NCJ9KSxlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTAwLjI2MyAyNzUuNDE1aDEyLjMzOE0xMDEuNDM2IDI3MC41M2MuMDA2IDMuMzg3LjA0MiA1Ljc5LjExMSA2LjUwNk0xMDEuNDUxIDI2NC41NDhhOTE1Ljc1IDkxNS43NSAwIDAgMC0uMDE1IDQuMzM3TTEwMC45ODYgMTc0Ljk2NWwuODk4IDQ0LjY0MnMuNjczIDEuNTctLjIyNSAyLjY5MmMtLjg5NyAxLjEyMiAyLjQ2OC42NzMuODk4IDIuMjQzLTEuNTcgMS41Ny44OTcgMS4xMjIgMCAzLjM2NS0uNTk2IDEuNDg5LS45OTQgMjEuMS0xLjA5NiAzNS4xNDYiLHN0cm9rZToiIzY0OEJEOCIsc3Ryb2tlV2lkdGg6IjEuMDUxIixzdHJva2VMaW5lY2FwOiJyb3VuZCIsc3Ryb2tlTGluZWpvaW46InJvdW5kIn0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik00Ni44NzYgODMuNDI3cy0uNTE2IDYuMDQ1IDcuMjIzIDUuNTUyYzExLjItLjcxMiA5LjIxOC05LjM0NSAzMS41NC0yMS42NTUtLjc4Ni0yLjcwOC0yLjQ0Ny00Ljc0NC0yLjQ0Ny00Ljc0NHMtMTEuMDY4IDMuMTEtMjIuNTg0IDguMDQ2Yy02Ljc2NiAyLjktMTMuMzk1IDYuMzUyLTEzLjczMiAxMi44MDFNMTA0LjQ2IDkxLjA1N2wuOTQxLTUuMzcyLTguODg0LTExLjQzLTUuMDM3IDUuMzcyLTEuNzQgNy44MzRhLjMyMS4zMjEgMCAwIDAgLjEwOC4zMmMuOTY1LjggNi41IDUuMDEzIDE0LjM0NyAzLjU0NGEuMzMyLjMzMiAwIDAgMCAuMjY0LS4yNjgiLGZpbGw6IiNGRkM2QTAifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTkzLjk0MiA3OS4zODdzLTQuNTMzLTIuODUzLTIuNDMyLTYuODU1YzEuNjIzLTMuMDkgNC41MTMgMS4xMzMgNC41MTMgMS4xMzNzLjUyLTMuNjQyIDMuMTIxLTMuNjQyYy41Mi0xLjA0IDEuNTYxLTQuMTYyIDEuNTYxLTQuMTYyczExLjQ0NSAyLjYwMSAxMy41MjYgMy4xMjFjMCA1LjIwMy0yLjMwNCAxOS40MjQtNy44NCAxOS44NjEtOC44OTIuNzAzLTEyLjQ0OS05LjQ1Ni0xMi40NDktOS40NTYiLGZpbGw6IiNGRkM2QTAifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTExMy44NzQgNzMuNDQ2YzIuNjAxLTIuMDgxIDMuNDctOS43MjIgMy40Ny05LjcyMnMtMi40NzktLjQ5LTYuNjQtMi4wNWMtNC42ODMtMi4wODEtMTIuNzk4LTQuNzQ3LTE3LjQ4Ljk3Ni05LjY2OCAzLjIyMy0yLjA1IDE5LjgyMy0yLjA1IDE5LjgyM2wyLjcxMy0zLjAyMXMtMy45MzUtMy4yODctMi4wOC02LjI0M2MyLjE3LTMuNDYyIDMuOTIgMS4wNzMgMy45MiAxLjA3M3MuNjM3LTIuMzg3IDMuNTgxLTMuMzQyYy4zNTUtLjcxIDEuMDM2LTIuNjc0IDEuNDMyLTMuODVhMS4wNzMgMS4wNzMgMCAwIDEgMS4yNjMtLjcwNGMyLjQuNTU4IDguNjc3IDIuMDE5IDExLjM1NiAyLjY2Mi41MjIuMTI1Ljg3MS42MTUuODIgMS4xNWwtLjMwNSAzLjI0OHoiLGZpbGw6IiM1MjAwMzgifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTEwNC45NzcgNzYuMDY0Yy0uMTAzLjYxLS41ODIgMS4wMzgtMS4wNy45NTYtLjQ4OS0uMDgzLS44MDEtLjY0NC0uNjk4LTEuMjU0LjEwMy0uNjEuNTgyLTEuMDM4IDEuMDctLjk1Ni40ODguMDgyLjguNjQ0LjY5OCAxLjI1NE0xMTIuMTMyIDc3LjY5NGMtLjEwMy42MS0uNTgyIDEuMDM4LTEuMDcuOTU2LS40ODgtLjA4My0uOC0uNjQ0LS42OTgtMS4yNTQuMTAzLS42MS41ODItMS4wMzggMS4wNy0uOTU2LjQ4OC4wODIuOC42NDMuNjk4IDEuMjU0IixmaWxsOiIjNTUyOTUwIn0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse3N0cm9rZToiI0RCODM2RSIsc3Ryb2tlV2lkdGg6IjEuMTE4IixzdHJva2VMaW5lY2FwOiJyb3VuZCIsc3Ryb2tlTGluZWpvaW46InJvdW5kIixkOiJNMTEwLjEzIDc0Ljg0bC0uODk2IDEuNjEtLjI5OCA0LjM1N2gtMi4yMjgifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTExMC44NDYgNzQuNDgxczEuNzktLjcxNiAyLjUwNi41MzciLHN0cm9rZToiIzVDMjU1MiIsc3Ryb2tlV2lkdGg6IjEuMTE4IixzdHJva2VMaW5lY2FwOiJyb3VuZCIsc3Ryb2tlTGluZWpvaW46InJvdW5kIn0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik05Mi4zODYgNzQuMjgycy40NzctMS4xMTQgMS4xMTMtLjcxNmMuNjM3LjM5OCAxLjI3NCAxLjQzMy41NTggMS45OS0uNzE3LjU1Ni4xNTkgMS42Ny4xNTkgMS42NyIsc3Ryb2tlOiIjREI4MzZFIixzdHJva2VXaWR0aDoiMS4xMTgiLHN0cm9rZUxpbmVjYXA6InJvdW5kIixzdHJva2VMaW5lam9pbjoicm91bmQifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTEwMy4yODcgNzIuOTNzMS44MyAxLjExMyA0LjEzNy45NTQiLHN0cm9rZToiIzVDMjU1MiIsc3Ryb2tlV2lkdGg6IjEuMTE4IixzdHJva2VMaW5lY2FwOiJyb3VuZCIsc3Ryb2tlTGluZWpvaW46InJvdW5kIn0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0xMDMuNjg1IDgxLjc2MnMyLjIyNyAxLjE5MyA0LjM3NiAxLjE5M00xMDQuNjQgODQuMzA4cy45NTQuMzk4IDEuNTExLjMxOE05NC42OTMgODEuMjA1czIuMzA4IDcuNCAxMC40MjQgNy42MzkiLHN0cm9rZToiI0RCODM2RSIsc3Ryb2tlV2lkdGg6IjEuMTE4IixzdHJva2VMaW5lY2FwOiJyb3VuZCIsc3Ryb2tlTGluZWpvaW46InJvdW5kIn0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik04MS40NSA4OS4zODRzLjQ1IDUuNjQ3LTQuOTM1IDEyLjc4N002OSA4Mi42NTRzLS43MjYgOS4yODItOC4yMDQgMTQuMjA2IixzdHJva2U6IiNFNEVCRjciLHN0cm9rZVdpZHRoOiIxLjEwMSIsc3Ryb2tlTGluZWNhcDoicm91bmQiLHN0cm9rZUxpbmVqb2luOiJyb3VuZCJ9KSxlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTI5LjQwNSAxMjIuODY1cy01LjI3MiA3LjQwMy05LjQyMiAxMC43NjgiLHN0cm9rZToiI0U0RUJGNyIsc3Ryb2tlV2lkdGg6IjEuMDUxIixzdHJva2VMaW5lY2FwOiJyb3VuZCIsc3Ryb2tlTGluZWpvaW46InJvdW5kIn0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0xMTkuMzA2IDEwNy4zMjlzLjQ1MiA0LjM2Ni0yLjEyNyAzMi4wNjIiLHN0cm9rZToiI0U0RUJGNyIsc3Ryb2tlV2lkdGg6IjEuMTAxIixzdHJva2VMaW5lY2FwOiJyb3VuZCIsc3Ryb2tlTGluZWpvaW46InJvdW5kIn0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0xNTAuMDI4IDE1MS4yMzJoLTQ5LjgzN2ExLjAxIDEuMDEgMCAwIDEtMS4wMS0xLjAxdi0zMS42ODhjMC0uNTU3LjQ1Mi0xLjAxIDEuMDEtMS4wMWg0OS44MzdjLjU1OCAwIDEuMDEuNDUzIDEuMDEgMS4wMXYzMS42ODhhMS4wMSAxLjAxIDAgMCAxLTEuMDEgMS4wMSIsZmlsbDoiI0YyRDdBRCJ9KSxlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTUwLjI5IDE1MS4yMzJoLTE5Ljg2M3YtMzMuNzA3aDIwLjc4NHYzMi43ODZhLjkyLjkyIDAgMCAxLS45Mi45MiIsZmlsbDoiI0Y0RDE5RCJ9KSxlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTIzLjU1NCAxMjcuODk2SDkyLjkxN2EuNTE4LjUxOCAwIDAgMS0uNDI1LS44MTZsNi4zOC05LjExM2MuMTkzLS4yNzcuNTEtLjQ0Mi44NS0uNDQyaDMxLjA5MmwtNy4yNiAxMC4zNzF6IixmaWxsOiIjRjJEN0FEIn0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2ZpbGw6IiNDQzlCNkUiLGQ6Ik0xMjMuNjg5IDEyOC40NDdIOTkuMjV2LS41MTloMjQuMTY5bDcuMTgzLTEwLjI2LjQyNC4yOTh6In0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0xNTguMjk4IDEyNy44OTZoLTE4LjY2OWEyLjA3MyAyLjA3MyAwIDAgMS0xLjY1OS0uODNsLTcuMTU2LTkuNTQxaDE5Ljk2NWMuNDkgMCAuOTUuMjMgMS4yNDQuNjIybDYuNjkgOC45MmEuNTE5LjUxOSAwIDAgMS0uNDE1LjgzIixmaWxsOiIjRjREMTlEIn0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2ZpbGw6IiNDQzlCNkUiLGQ6Ik0xNTcuODQ3IDEyOC40NzloLTE5LjM4NGwtNy44NTctMTAuNDc1LjQxNS0uMzEgNy43IDEwLjI2NmgxOS4xMjZ6TTEzMC41NTQgMTUwLjY4NWwtLjAzMi04LjE3Ny41MTktLjAwMi4wMzIgOC4xNzd6In0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2ZpbGw6IiNDQzlCNkUiLGQ6Ik0xMzAuNTExIDEzOS43ODNsLS4wOC0yMS40MTQuNTE5LS4wMDIuMDggMjEuNDE0ek0xMTEuODc2IDE0MC45MzJsLS40OTgtLjE0MyAxLjQ3OS01LjE2Ny40OTguMTQzek0xMDguNDM3IDE0MS4wNmwtMi42NzktMi45MzUgMi42NjUtMy40MzQuNDEuMzE4LTIuMzk3IDMuMDg5IDIuMzg0IDIuNjEyek0xMTYuNjA3IDE0MS4wNmwtLjM4My0uMzUgMi4zODMtMi42MTItMi4zOTctMy4wODkuNDEtLjMxOCAyLjY2NSAzLjQzNHoifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTE1NC4zMTYgMTMxLjg5MmwtMy4xMTQtMS45Ni4wMzggMy41MTQtMS4wNDMuMDkyYy0xLjY4Mi4xMTUtMy42MzQuMjMtNC43ODkuMjMtMS45MDIgMC0yLjY5MyAyLjI1OCAyLjIzIDIuNjQ4bC0yLjY0NS0uNTk2cy0yLjE2OCAxLjMxNy41MDQgMi4zYzAgMC0xLjU4IDEuMjE3LjU2MSAyLjU4LS41ODQgMy41MDQgNS4yNDcgNC4wNTggNy4xMjIgMy41OSAxLjg3Ni0uNDcgNC4yMzMtMi4zNTkgNC40ODctNS4xNi4yOC0zLjA4NS0uODktNS40MzItMy4zNS03LjIzOCIsZmlsbDoiI0ZGQzZBMCJ9KSxlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTUzLjY4NiAxMzMuNTc3cy02LjUyMi40Ny04LjM2LjM3MmMtMS44MzYtLjA5OC0xLjkwNCAyLjE5IDIuMzU5IDIuMjY0IDMuNzM5LjE1IDUuNDUxLS4wNDQgNS40NTEtLjA0NCIsc3Ryb2tlOiIjREI4MzZFIixzdHJva2VXaWR0aDoiMS4wNTEiLHN0cm9rZUxpbmVjYXA6InJvdW5kIixzdHJva2VMaW5lam9pbjoicm91bmQifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTE0NS4xNiAxMzUuODc3Yy0xLjg1IDEuMzQ2LjU2MSAyLjM1NS41NjEgMi4zNTVzMy40NzguODk4IDYuNzMuNjE3IixzdHJva2U6IiNEQjgzNkUiLHN0cm9rZVdpZHRoOiIxLjA1MSIsc3Ryb2tlTGluZWNhcDoicm91bmQiLHN0cm9rZUxpbmVqb2luOiJyb3VuZCJ9KSxlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTUxLjg5IDE0MS43MXMtNi4yOC4xMTEtNi43My0yLjEzMmMtLjIyMy0xLjM0Ni40NS0xLjQwMi40NS0xLjQwMk0xNDYuMTE0IDE0MC44NjhzLTEuMTAzIDMuMTYgNS40NCAzLjUzM00xNTEuMjAyIDEyOS45MzJ2My40NzdNNTIuODM4IDg5LjI4NmMzLjUzMy0uMzM3IDguNDIzLTEuMjQ4IDEzLjU4Mi03Ljc1NCIsc3Ryb2tlOiIjREI4MzZFIixzdHJva2VXaWR0aDoiMS4wNTEiLHN0cm9rZUxpbmVjYXA6InJvdW5kIixzdHJva2VMaW5lam9pbjoicm91bmQifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTE2OC41NjcgMjQ4LjMxOGE2LjY0NyA2LjY0NyAwIDAgMS02LjY0Ny02LjY0N3YtNjYuNDY2YTYuNjQ3IDYuNjQ3IDAgMSAxIDEzLjI5NCAwdjY2LjQ2NmE2LjY0NyA2LjY0NyAwIDAgMS02LjY0NyA2LjY0NyIsZmlsbDoiIzVCQTAyRSJ9KSxlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTc2LjU0MyAyNDcuNjUzYTYuNjQ3IDYuNjQ3IDAgMCAxLTYuNjQ2LTYuNjQ3di0zMy4yMzJhNi42NDcgNi42NDcgMCAxIDEgMTMuMjkzIDB2MzMuMjMyYTYuNjQ3IDYuNjQ3IDAgMCAxLTYuNjQ3IDYuNjQ3IixmaWxsOiIjOTJDMTEwIn0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0xODYuNDQzIDI5My42MTNIMTU4LjkyYTMuMTg3IDMuMTg3IDAgMCAxLTMuMTg3LTMuMTg3di00Ni4xMzRhMy4xODcgMy4xODcgMCAwIDEgMy4xODctMy4xODdoMjcuNTI0YTMuMTg3IDMuMTg3IDAgMCAxIDMuMTg3IDMuMTg3djQ2LjEzNGEzLjE4NyAzLjE4NyAwIDAgMS0zLjE4NyAzLjE4NyIsZmlsbDoiI0YyRDdBRCJ9KSxlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNODguOTc5IDg5LjQ4czcuNzc2IDUuMzg0IDE2LjYgMi44NDIiLHN0cm9rZToiI0U0RUJGNyIsc3Ryb2tlV2lkdGg6IjEuMTAxIixzdHJva2VMaW5lY2FwOiJyb3VuZCIsc3Ryb2tlTGluZWpvaW46InJvdW5kIn0pKSksVz0oKT0+ZS5jcmVhdGVFbGVtZW50KCJzdmciLHt3aWR0aDoiMjU0IixoZWlnaHQ6IjI5NCJ9LGUuY3JlYXRlRWxlbWVudCgidGl0bGUiLG51bGwsIlNlcnZlciBFcnJvciIpLGUuY3JlYXRlRWxlbWVudCgiZGVmcyIsbnVsbCxlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMCAuMzM1aDI1My40OXYyNTMuNDlIMHoifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTAgMjkzLjY2NWgyNTMuNDlWLjQwMUgweiJ9KSksZS5jcmVhdGVFbGVtZW50KCJnIix7ZmlsbDoibm9uZSIsZmlsbFJ1bGU6ImV2ZW5vZGQifSxlLmNyZWF0ZUVsZW1lbnQoImciLHt0cmFuc2Zvcm06InRyYW5zbGF0ZSgwIC4wNjcpIn0sZS5jcmVhdGVFbGVtZW50KCJtYXNrIix7ZmlsbDoiI2ZmZiJ9KSxlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMCAxMjguMTM0di0yLjExQzAgNTYuNjA4IDU2LjI3My4zMzQgMTI1LjY5LjMzNGgyLjExYzY5LjQxNiAwIDEyNS42OSA1Ni4yNzQgMTI1LjY5IDEyNS42OXYyLjExYzAgNjkuNDE3LTU2LjI3NCAxMjUuNjktMTI1LjY5IDEyNS42OWgtMi4xMUM1Ni4yNzMgMjUzLjgyNCAwIDE5Ny41NTEgMCAxMjguMTM0IixmaWxsOiIjRTRFQkY3IixtYXNrOiJ1cmwoI2IpIn0pKSxlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMzkuOTg5IDEzMi4xMDhhOC4zMzIgOC4zMzIgMCAxIDEtMTYuNTgxLTEuNjcxIDguMzMyIDguMzMyIDAgMCAxIDE2LjU4IDEuNjcxIixmaWxsOiIjRkZGIn0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0zNy4xOSAxMzUuNTlsMTAuNTUzIDUuOTgzTTQ4LjY2NSAxNDcuODg0bC0xMi43MzQgMTAuODYxIixzdHJva2U6IiNGRkYiLHN0cm9rZVdpZHRoOiIyIn0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik00MC4xMSAxNjAuODE2YTUuNzA2IDUuNzA2IDAgMSAxLTExLjM1NC0xLjE0NSA1LjcwNiA1LjcwNiAwIDAgMSAxMS4zNTQgMS4xNDVNNTcuOTQzIDE0NC42YTUuNzQ3IDUuNzQ3IDAgMSAxLTExLjQzNi0xLjE1MiA1Ljc0NyA1Ljc0NyAwIDAgMSAxMS40MzYgMS4xNTNNOTkuNjU2IDI3LjQzNGwzMC4wMjQtLjAxM2E0LjYxOSA0LjYxOSAwIDEgMC0uMDA0LTkuMjM4bC0zMC4wMjQuMDEzYTQuNjIgNC42MiAwIDAgMCAuMDA0IDkuMjM4TTExMS4xNCA0NS44OTZsMzAuMDIzLS4wMTNhNC42MiA0LjYyIDAgMSAwLS4wMDQtOS4yMzhsLTMwLjAyNC4wMTNhNC42MTkgNC42MTkgMCAxIDAgLjAwNCA5LjIzOCIsZmlsbDoiI0ZGRiJ9KSxlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTEzLjUzIDI3LjQyMXYtLjAwMmwxNS44OS0uMDA3YTQuNjE5IDQuNjE5IDAgMSAwIC4wMDUgOS4yMzhsLTE1Ljg5Mi4wMDd2LS4wMDJhNC42MTggNC42MTggMCAwIDAtLjAwNC05LjIzNE0xNTAuMTY3IDcwLjA5MWgtMy45NzlhNC43ODkgNC43ODkgMCAwIDEtNC43NzQtNC43NzUgNC43ODggNC43ODggMCAwIDEgNC43NzQtNC43NzRoMy45NzlhNC43ODkgNC43ODkgMCAwIDEgNC43NzUgNC43NzQgNC43ODkgNC43ODkgMCAwIDEtNC43NzUgNC43NzUiLGZpbGw6IiNGRkYifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTE3MS42ODcgMzAuMjM0YzAtMTYuMzkyIDEzLjI4OS0yOS42OCAyOS42ODEtMjkuNjggMTYuMzkyIDAgMjkuNjggMTMuMjg4IDI5LjY4IDI5LjY4IDAgMTYuMzkzLTEzLjI4OCAyOS42ODEtMjkuNjggMjkuNjgxcy0yOS42OC0xMy4yODgtMjkuNjgtMjkuNjgiLGZpbGw6IiNGRjYwM0IifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTIwMy41NTcgMTkuNDM1bC0uNjc2IDE1LjAzNWExLjUxNCAxLjUxNCAwIDAgMS0zLjAyNiAwbC0uNjc1LTE1LjAzNWEyLjE5IDIuMTkgMCAxIDEgNC4zNzcgMG0tLjI2NCAxOS4zNzhjLjUxMy40NzcuNzcgMS4xLjc3IDEuODdzLS4yNTcgMS4zOTMtLjc3IDEuOTA3Yy0uNTUuNDc2LTEuMjEuNzMzLTEuOTQzLjczM2EyLjU0NSAyLjU0NSAwIDAgMS0xLjg3LS43N2MtLjU1LS41MTQtLjgwNi0xLjEzNi0uODA2LTEuODcgMC0uNzcuMjU2LTEuMzkzLjgwNi0xLjg3LjUxMy0uNTEzIDEuMTM3LS43MzMgMS44Ny0uNzMzLjc3IDAgMS40My4yMiAxLjk0My43MzMiLGZpbGw6IiNGRkYifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTExOS4zIDEzMy4yNzVjNC40MjYtLjU5OCAzLjYxMi0xLjIwNCA0LjA3OS00Ljc3OC42NzUtNS4xOC0zLjEwOC0xNi45MzUtOC4yNjItMjUuMTE4LTEuMDg4LTEwLjcyLTEyLjU5OC0xMS4yNC0xMi41OTgtMTEuMjRzNC4zMTIgNC44OTUgNC4xOTYgMTYuMTk5YzEuMzk4IDUuMjQzLjgwNCAxNC40NS44MDQgMTQuNDVzNS4yNTUgMTEuMzY5IDExLjc4IDEwLjQ4NyIsZmlsbDoiI0ZGQjU5NCJ9KSxlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTAwLjk0NCA5MS42MXMxLjQ2My0uNTgzIDMuMjExLjU4MmM4LjA4IDEuMzk4IDEwLjM2OCA2LjcwNiAxMS4zIDExLjM2OCAxLjg2NCAxLjI4MiAxLjg2NCAyLjMzIDEuODY0IDMuNDk2LjM2NS43NzcgMS41MTUgMy4wMyAxLjUxNSAzLjAzcy03LjIyNSAxLjc0OC0xMC45NTQgNi43NThjLTEuMzk5LTYuNDEtNi45MzYtMjUuMjM1LTYuOTM2LTI1LjIzNSIsZmlsbDoiI0ZGRiJ9KSxlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNOTQuMDA4IDkwLjVsMS4wMTktNS44MTUtOS4yMy0xMS44NzQtNS4yMzMgNS41ODEtMi41OTMgOS44NjNzOC4zOSA1LjEyOCAxNi4wMzcgMi4yNDYiLGZpbGw6IiNGRkI1OTQifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTgyLjkzMSA3OC4yMTZzLTQuNTU3LTIuODY4LTIuNDQ1LTYuODkyYzEuNjMyLTMuMTA3IDQuNTM3IDEuMTM5IDQuNTM3IDEuMTM5cy41MjQtMy42NjIgMy4xMzktMy42NjJjLjUyMy0xLjA0NiAxLjU2OS00LjE4NCAxLjU2OS00LjE4NHMxMS41MDcgMi42MTUgMTMuNiAzLjEzOGMtLjAwMSA1LjIzLTIuMzE3IDE5LjUyOS03Ljg4NCAxOS45NjktOC45NC43MDYtMTIuNTE2LTkuNTA4LTEyLjUxNi05LjUwOCIsZmlsbDoiI0ZGQzZBMCJ9KSxlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTAyLjk3MSA3Mi4yNDNjMi42MTYtMi4wOTMgMy40ODktOS43NzUgMy40ODktOS43NzVzLTIuNDkyLS40OTItNi42NzYtMi4wNjJjLTQuNzA4LTIuMDkyLTEyLjg2Ny00Ljc3MS0xNy41NzUuOTgyLTkuNTQgNC40MS0yLjA2MiAxOS45My0yLjA2MiAxOS45M2wyLjcyOS0zLjAzN3MtMy45NTYtMy4zMDQtMi4wOTItNi4yNzdjMi4xODMtMy40OCAzLjk0MyAxLjA4IDMuOTQzIDEuMDhzLjY0LTIuNCAzLjYtMy4zNmMuMzU2LS43MTQgMS4wNC0yLjY5IDEuNDQtMy44NzJhMS4wOCAxLjA4IDAgMCAxIDEuMjctLjcwN2MyLjQxLjU2IDguNzIzIDIuMDMgMTEuNDE3IDIuNjc2LjUyNC4xMjYuODc2LjYxOS44MjUgMS4xNTZsLS4zMDggMy4yNjZ6IixmaWxsOiIjNTIwMDM4In0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0xMDEuMjIgNzYuNTE0Yy0uMTA0LjYxMy0uNTg1IDEuMDQ0LTEuMDc2Ljk2LS40OS0uMDgyLS44MDUtLjY0Ni0uNzAyLTEuMjYuMTA0LS42MTMuNTg1LTEuMDQ0IDEuMDc2LS45NjEuNDkxLjA4My44MDUuNjQ3LjcwMiAxLjI2TTk0LjI2IDc1LjA3NGMtLjEwNC42MTMtLjU4NSAxLjA0NC0xLjA3Ni45Ni0uNDktLjA4Mi0uODA1LS42NDYtLjcwMi0xLjI2LjEwNC0uNjEzLjU4NS0xLjA0NCAxLjA3Ni0uOTYuNDkxLjA4Mi44MDUuNjQ2LjcwMiAxLjI2IixmaWxsOiIjNTUyOTUwIn0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse3N0cm9rZToiI0RCODM2RSIsc3Ryb2tlV2lkdGg6IjEuMDYzIixzdHJva2VMaW5lY2FwOiJyb3VuZCIsc3Ryb2tlTGluZWpvaW46InJvdW5kIixkOiJNOTkuMjA2IDczLjY0NGwtLjkgMS42Mi0uMyA0LjM4aC0yLjI0In0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik05OS45MjYgNzMuMjg0czEuOC0uNzIgMi41Mi41NCIsc3Ryb2tlOiIjNUMyNTUyIixzdHJva2VXaWR0aDoiMS4xMTciLHN0cm9rZUxpbmVjYXA6InJvdW5kIixzdHJva2VMaW5lam9pbjoicm91bmQifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTgxLjM2NyA3My4wODRzLjQ4LTEuMTIgMS4xMi0uNzJjLjY0LjQgMS4yOCAxLjQ0LjU2IDJzLjE2IDEuNjguMTYgMS42OCIsc3Ryb2tlOiIjREI4MzZFIixzdHJva2VXaWR0aDoiMS4xMTciLHN0cm9rZUxpbmVjYXA6InJvdW5kIixzdHJva2VMaW5lam9pbjoicm91bmQifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTkyLjMyNiA3MS43MjRzMS44NCAxLjEyIDQuMTYuOTYiLHN0cm9rZToiIzVDMjU1MiIsc3Ryb2tlV2lkdGg6IjEuMTE3IixzdHJva2VMaW5lY2FwOiJyb3VuZCIsc3Ryb2tlTGluZWpvaW46InJvdW5kIn0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik05Mi43MjYgODAuNjA0czIuMjQgMS4yIDQuNCAxLjJNOTMuNjg2IDgzLjE2NHMuOTYuNCAxLjUyLjMyTTgzLjY4NyA4MC4wNDRzMS43ODYgNi41NDcgOS4yNjIgNy45NTQiLHN0cm9rZToiI0RCODM2RSIsc3Ryb2tlV2lkdGg6IjEuMDYzIixzdHJva2VMaW5lY2FwOiJyb3VuZCIsc3Ryb2tlTGluZWpvaW46InJvdW5kIn0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik05NS41NDggOTEuNjYzcy0xLjA2OCAyLjgyMS04LjI5OCAyLjEwNWMtNy4yMy0uNzE3LTEwLjI5LTUuMDQ0LTEwLjI5LTUuMDQ0IixzdHJva2U6IiNFNEVCRjciLHN0cm9rZVdpZHRoOiIxLjEzNiIsc3Ryb2tlTGluZWNhcDoicm91bmQiLHN0cm9rZUxpbmVqb2luOiJyb3VuZCJ9KSxlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNNzguMTI2IDg3LjQ3OHM2LjUyNiA0Ljk3MiAxNi40NyAyLjQ4NmMwIDAgOS41NzcgMS4wMiAxMS41MzYgNS4zMjIgNS4zNiAxMS43Ny41NDMgMzYuODM1IDAgMzkuOTYyIDMuNDk2IDQuMDU1LS40NjYgOC40ODMtLjQ2NiA4LjQ4My0xNS42MjQtMy41NDgtMzUuODEtLjYtMzUuODEtLjYtNC44NDktMy41NDYtMS4yMjMtOS4wNDQtMS4yMjMtOS4wNDRMNjIuMzggMTEwLjMyYy0yLjQ4NS0xNS4yMjcuODMzLTE5LjgwMyAzLjU0OS0yMC43NDMgMy4wMy0xLjA0OSA4LjA0LTEuMjgyIDguMDQtMS4yODIuNDk2LS4wNTggMS4wOC0uMDc2IDEuMzctLjIzMyAyLjM2LTEuMjgyIDIuNzg3LS41ODMgMi43ODctLjU4MyIsZmlsbDoiI0ZGRiJ9KSxlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNNjUuODI4IDg5Ljgxcy02Ljg3NS40NjUtNy41OSA4LjE1NmMtLjQ2NiA4Ljg1NyAzLjAzIDEwLjk1NCAzLjAzIDEwLjk1NHM2LjA3NSAyMi4xMDIgMTYuNzk2IDIyLjk1N2M4LjM5LTIuMTc2IDQuNzU4LTYuNzAyIDQuNjYxLTExLjQyLS4yMzMtMTEuMzA0LTcuMTA4LTE2Ljg5Ny03LjEwOC0xNi44OTdzLTQuMjEyLTEzLjc1LTkuNzg5LTEzLjc1IixmaWxsOiIjRkZDNkEwIn0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik03MS43MTYgMTI0LjIyNXMuODU1IDExLjI2NCA5LjgyOCA2LjQ4NmM0Ljc2NS0yLjUzNiA3LjU4MS0xMy44MjggOS43ODktMjIuNTY4IDEuNDU2LTUuNzY4IDIuNTgtMTIuMTk3IDIuNTgtMTIuMTk3bC00Ljk3My0xLjcwOXMtMi40MDggNS41MTYtNy43NjkgMTIuMjc1Yy00LjMzNSA1LjQ2Ny05LjE0NCAxMS4xMS05LjQ1NSAxNy43MTMiLGZpbGw6IiNGRkM2QTAifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTEwOC40NjMgMTA1LjE5MXMxLjc0NyAyLjcyNC0yLjMzMSAzMC41MzVjMi4zNzYgMi4yMTYgMS4wNTMgNi4wMTItLjIzMyA3LjUxIixzdHJva2U6IiNFNEVCRjciLHN0cm9rZVdpZHRoOiIxLjA4NSIsc3Ryb2tlTGluZWNhcDoicm91bmQiLHN0cm9rZUxpbmVqb2luOiJyb3VuZCJ9KSxlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTIzLjI2MiAxMzEuNTI3cy0uNDI3IDIuNzMyLTExLjc3IDEuOTgxYy0xNS4xODctMS4wMDYtMjUuMzI2LTMuMjUtMjUuMzI2LTMuMjVsLjkzMy01LjhzLjcyMy4yMTUgOS43MS0uMDY4YzExLjg4Ny0uMzczIDE4LjcxNC02LjA3IDI0Ljk2NC0xLjAyMiA0LjAzOSAzLjI2MyAxLjQ4OSA4LjE2IDEuNDg5IDguMTYiLGZpbGw6IiNGRkM2QTAifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTcwLjI0IDkwLjk3NHMtNS41OTMtNC43MzktMTEuMDU0IDIuNjhjLTMuMzE4IDcuMjIzLjUxNyAxNS4yODQgMi42NjQgMTkuNTc4LS4zMSAzLjcyOSAyLjMzIDQuMzExIDIuMzMgNC4zMTFzLjEwOC44OTUgMS41MTYgMi42OGM0LjA3OC03LjAzIDYuNzItOS4xNjYgMTMuNzExLTEyLjU0Ni0uMzI4LS42NTYtMS44NzctMy4yNjUtMS44MjUtMy43NjcuMTc1LTEuNjktMS4yODItMi42MjMtMS4yODItMi42MjNzLS4yODYtLjE1Ni0xLjE2NS0yLjczOGMtLjc4OC0yLjMxMy0yLjAzNi01LjE3Ny00Ljg5NS03LjU3NSIsZmlsbDoiI0ZGRiJ9KSxlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNOTAuMjMyIDI4OC4wMjdzNC44NTUgMi4zMDggOC4zMTMgMS4xNTVjMy4xODgtMS4wNjMgNS4xMi43NTUgOC4wMDIgMS4zMzEgMi44ODEuNTc3IDcuNzY5IDEuMjQzIDEzLjIwNy0xLjQyNC0uMTE3LTYuMjI4LTcuNzg2LTQuNDk5LTEzLjUxOC03LjU4OC0yLjg5NS0xLjU2LTQuMjc2LTUuMzM2LTQuMDY2LTkuOTQ0SDkxLjU0NHMtMS41NzMgMTEuODktMS4zMTIgMTYuNDciLGZpbGw6IiNDQkQxRDEifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTkwLjIwNyAyODcuODMzczIuNzQ1IDEuNDM3IDcuNjM5LjczOGMzLjQ1Ni0uNDk0IDMuMjIzLjY2IDcuNDE4IDEuMjgyIDQuMTk1LjYyMSAxMy4wOTItLjE5NCAxNC4zMzQtMS4xMjYuNDY2IDEuMjQyLS4zODggMi4zMy0uMzg4IDIuMzNzLTEuNzA5LjY4Mi01LjQzOC45MzJjLTIuMjk1LjE1NC04LjA5OC4yNzYtMTAuMTQtLjYyMS0yLjAyLTEuNTU0LTQuODk0LTEuNTE1LTYuMDYtLjIzNC00LjQyNyAxLjA3NS03LjE4NC0uMzEtNy4xODQtLjMxbC0uMTgxLTIuOTkxeiIsZmlsbDoiIzJCMDg0OSJ9KSxlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNOTguNDI5IDI3Mi4yNTdoMy40OTZzLS4xMTcgNy41NzQgNS4xMjcgOS42NzFjLTUuMjQ0LjctOS42NzItMi42MDItOC42MjMtOS42NzEiLGZpbGw6IiNBNEFBQkEifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTQ0LjQyNSAyNzIuMDQ2cy0yLjIwOCA3Ljc3NC00LjcwMiAxMi44OTljLTEuODg0IDMuODc0LTQuNDI4IDcuODU0IDUuNzI5IDcuODU0IDYuOTcgMCA5LjM4NS0uNTAzIDcuNzgyLTYuOTE3LTEuNjA0LTYuNDE1LjI3OS0xMy44MzYuMjc5LTEzLjgzNmgtOS4wODh6IixmaWxsOiIjQ0JEMUQxIn0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0zOC4wNjYgMjkwLjI3N3MyLjE5OCAxLjIyNSA2Ljk1NCAxLjIyNWM2LjM3NiAwIDguNjQ2LTEuNzMgOC42NDYtMS43M3MuNjMgMS4xNjgtLjY0OSAyLjI3Yy0xLjA0Ljg5Ny0zLjc3IDEuNjY4LTcuNzQ1IDEuNjIxLTQuMzQ3LS4wNS02LjExNS0uNTkzLTcuMDYyLTEuMjI0LS44NjQtLjU3Ny0uNzItMS42NTctLjE0NC0yLjE2MiIsZmlsbDoiIzJCMDg0OSJ9KSxlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNNDUuMzQ0IDI3NC4wNDFzLjAzNSAxLjU5Mi0uMzI5IDMuMDdjLS4zNjUgMS40OS0xLjEzIDMuMjU1LTEuMTg0IDQuMzQtLjA2MSAxLjIwNiA0Ljc1NSAxLjY1NyA1LjQwMy4wMzYuNjUtMS42MjIgMS4zNTctNi43MzcgMi4wMDYtNy42MDIuNjQ4LS44NjUtNS4xNC0yLjIyMi01Ljg5Ni4xNTYiLGZpbGw6IiNBNEFBQkEifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTg5LjQ3NiAyNzcuNTdsMTMuODk5LjA5NXMxLjM0OS01Ni42NDMgMS45MjUtNjYuOTA5Yy41NzYtMTAuMjY3IDMuOTIzLTQ1LjA1MiAxLjA0Mi02NS41ODVsLTEzLjAzNy0uNjY5LTIzLjczNy44MXMtLjQ1MiA0LjEyLTEuMjQzIDEwLjM2NWMtLjA2NS41MTUtLjcwOC44NzQtLjc3NyAxLjQxNy0uMDc4LjYwOC40MzkgMS40MDcuMzMyIDIuMDQ0LTIuNDU1IDE0LjYyNy01Ljc5NyAzMi43MzYtOC4yNTYgNDYuODM3LS4xMjEuNjkzLTEuMjgyIDEuMDQ4LTEuNTE1IDIuNzk2LS4wNDIuMzE0LjIyIDEuNTg0LjExNiAxLjg2NS03LjE0IDE5LjQ3My0xMi4yMDIgNTIuNjAxLTE1LjY2IDY3LjE5bDE1LjE3Ni0uMDE1czIuMjgyLTEwLjE0NSA0LjE4NS0xOC44NzFjMi45MjItMTMuMzg5IDI0LjAxMi04OC4zMiAyNC4wMTItODguMzJsMy4xMzMtLjk1NC0uMTU4IDQ4LjU2OHMtLjIzMyAxLjI4Mi4zNSAyLjA5OGMuNTgzLjgxNS0uNTgxIDEuMTY3LS40MDggMi4zMzFsLjQwOCAxLjg2NHMtLjQ2NiA3LjQ1OC0uOTMyIDEyLjM1MmMtLjQ2NyA0Ljg5NSAxLjE0NSA0MC42OSAxLjE0NSA0MC42OSIsZmlsbDoiIzdCQjJGOSJ9KSxlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNNjQuNTcgMjE4Ljg4MWMxLjE5Ny4wOTkgNC4xOTUtMi4wOTcgNy4yMjUtNS4xMjdNOTYuMDI0IDIyMi41MzRzMi44ODEtMS4xNTIgNi4zNC00LjAzNCIsc3Ryb2tlOiIjNjQ4QkQ4IixzdHJva2VXaWR0aDoiMS4wODUiLHN0cm9rZUxpbmVjYXA6InJvdW5kIixzdHJva2VMaW5lam9pbjoicm91bmQifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTk2Ljk3MyAyMTkuMzczczIuODgyLTEuMTUzIDYuMzQtNC4wMzQiLHN0cm9rZToiIzY0OEJEOCIsc3Ryb2tlV2lkdGg6IjEuMDMyIixzdHJva2VMaW5lY2FwOiJyb3VuZCIsc3Ryb2tlTGluZWpvaW46InJvdW5kIn0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik02My4xNzIgMjIyLjE0NHMyLjcyNC0uNjE0IDYuNzU5LTMuNDk2TTc0LjkwMyAxNDYuMTY2Yy0uMjgxIDMuMjI2LjMxIDguODU2LTQuNTA2IDkuNDc4TTkzLjE4MiAxNDQuMzQ0cy4xMTUgMTQuNTU3LTEuMzQ0IDE1LjY1Yy0yLjMwNSAxLjczLTMuMTA3IDIuMDItMy4xMDcgMi4wMk04OS4xOTcgMTQ0LjkyM3MuMjY5IDEzLjE0NC0xLjAxIDI1LjA4OE04My41MjUgMTcwLjcxczYuODEtMS4wNTEgOS4xMTYtMS4wNTFNNDYuMDI2IDI3MC4wNDVsLS44OTIgNC41MzhNNDYuOTM3IDI2My4yODlsLS44MTUgNC4xNTdNNjIuNzI1IDIwMi41MDNjLS4zMyAxLjYxOC0uMTAyIDEuOTA0LS40NDkgMy40MzggMCAwLTIuNzU2IDEuOTAzLTIuMjkgMy45MjMuNDY2IDIuMDItLjMxIDMuNDI0LTQuNTA1IDE3LjI1Mi0xLjc2MiA1LjgwNy00LjIzMyAxOC45MjItNi4xNjUgMjguMjc4LS4wMy4xNDQtLjUyMSAyLjY0Ni0xLjE0IDUuOE02NC4xNTggMTk0LjEzNmMtLjI5NSAxLjY1OC0uNiAzLjMxLS45MTcgNC45MzhNNzEuMzMgMTQ2Ljc4N2wtMS4yNDQgMTAuODc3cy0xLjE0LjE1NS0uNTE5IDIuMzNjLjExNyAxLjM5OS0yLjc3OCAxNi4zOS01LjM4MiAzMS42MTVNNDQuMjQyIDI3My43MjdINTguMDciLHN0cm9rZToiIzY0OEJEOCIsc3Ryb2tlV2lkdGg6IjEuMDg1IixzdHJva2VMaW5lY2FwOiJyb3VuZCIsc3Ryb2tlTGluZWpvaW46InJvdW5kIn0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0xMDYuMTggMTQyLjExN2MtMy4wMjgtLjQ4OS0xOC44MjUtMi43NDQtMzYuMjE5LjJhLjYyNS42MjUgMCAwIDAtLjUxOC42NDRjLjA2MyAxLjMwNy4wNDQgMi4zNDMuMDE1IDIuOTk1YS42MTcuNjE3IDAgMCAwIC43MTYuNjM2YzMuMzAzLS41MzQgMTcuMDM3LTIuNDEyIDM1LjY2NC0uMjY2LjM0Ny4wNC42Ni0uMjE0LjY5Mi0uNTYuMTI0LTEuMzQ3LjE2LTIuNDI1LjE3LTMuMDI5YS42MTYuNjE2IDAgMCAwLS41Mi0uNjIiLGZpbGw6IiMxOTIwNjQifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTk2LjM5OCAxNDUuMjY0bC4wMDMtNS4xMDJhLjg0My44NDMgMCAwIDAtLjgwOS0uODQ3IDExNC4xMDQgMTE0LjEwNCAwIDAgMC04LjE0MS0uMDE0Ljg1Ljg1IDAgMCAwLS44Mi44NDdsLS4wMDMgNS4wOTdjMCAuNDc2LjM4OC44NTcuODY0Ljg0NSAyLjQ3OC0uMDY0IDUuMTY2LS4wNjcgOC4wMy4wMTdhLjg0OC44NDggMCAwIDAgLjg3Ni0uODQzIixmaWxsOiIjRkZGIn0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik05NS4yMzkgMTQ0LjI5NmwuMDAyLTMuMTk1YS42NjcuNjY3IDAgMCAwLS42NDMtLjY3MmMtMS45LS4wNjEtMy45NDEtLjA3My02LjA5NC0uMDFhLjY3NS42NzUgMCAwIDAtLjY1NC42NzJsLS4wMDIgMy4xOTJjMCAuMzc2LjMwNS42NzcuNjguNjY5IDEuODU5LS4wNDIgMy44NzQtLjA0MyA2LjAyLjAxMi4zNzYuMDEuNjktLjI5MS42OTEtLjY2OCIsZmlsbDoiIzE5MjA2NCJ9KSxlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNOTAuMTAyIDI3My41MjJoMTIuODE5TTkxLjIxNiAyNjkuNzYxYy4wMDYgMy41MTktLjA3MiA1LjU1IDAgNi4yOTJNOTAuOTIzIDI2My40NzRjLS4wMDkgMS41OTktLjAxNiAyLjU1OC0uMDE2IDQuNTA1TTkwLjQ0IDE3MC40MDRsLjkzMiA0Ni4zOHMuNyAxLjYzMS0uMjMzIDIuNzk2Yy0uOTMyIDEuMTY2IDIuNTY0LjcuOTMyIDIuMzMtMS42MyAxLjYzMy45MzMgMS4xNjYgMCAzLjQ5Ny0uNjE4IDEuNTQ2LTEuMDMxIDIxLjkyMS0xLjEzOCAzNi41MTMiLHN0cm9rZToiIzY0OEJEOCIsc3Ryb2tlV2lkdGg6IjEuMDg1IixzdHJva2VMaW5lY2FwOiJyb3VuZCIsc3Ryb2tlTGluZWpvaW46InJvdW5kIn0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik03My43MzYgOTguNjY1bDIuMjE0IDQuMzEyczIuMDk4LjgxNiAxLjg2NSAyLjY4bC44MTYgMi4yMTRNNjQuMjk3IDExNi42MTFjLjIzMy0uOTMyIDIuMTc2LTcuMTQ3IDEyLjU4NS0xMC40ODhNNzcuNTk4IDkwLjA0MnM3LjY5MSA2LjEzNyAxNi41NDcgMi43MiIsc3Ryb2tlOiIjRTRFQkY3IixzdHJva2VXaWR0aDoiMS4wODUiLHN0cm9rZUxpbmVjYXA6InJvdW5kIixzdHJva2VMaW5lam9pbjoicm91bmQifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTkxLjk3NCA4Ni45NTRzNS40NzYtLjgxNiA3LjU3NC00LjU0NWMxLjI5Ny0uMzQ1LjcyIDIuMjEyLS4zMyAzLjY3MS0uNy45NzEtMS4wMSAxLjU1NC0xLjAxIDEuNTU0cy4xOTQuMzEuMTU1LjgxNmMtLjA1My42OTctLjE3NS42NTMtLjI3MiAxLjA0OC0uMDgxLjMzNS4xMDguNjU3IDAgMS4wNDktLjA0Ni4xNy0uMTk4LjUtLjM4Mi44NzgtLjEyLjI0OS0uMDcyLjY4Ny0uMi45NDgtLjIzMS40NjktMS41NjIgMS44Ny0yLjYyMiAyLjg1NS0zLjgyNiAzLjU1NC01LjAxOCAxLjY0NC02LjAwMS0uNDA4LS44OTQtMS44NjUtLjY2MS01LjEyNy0uODc0LTYuODc1LS4zNS0yLjkxNC0yLjYyMi0zLjAzLTEuOTIzLTQuNDI5LjM0My0uNjg1IDIuODcuNjkgMy4yNjMgMS43NDguNzU3IDIuMDQgMi45NTIgMS44MDcgMi42MjIgMS42OSIsZmlsbDoiI0ZGQzZBMCJ9KSxlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNOTkuOCA4Mi40MjljLS40NjUuMDc3LS4zNS4yNzItLjk3IDEuMjQzLS42MjIuOTcxLTQuODE3IDIuOTMyLTYuMzkgMy4yMjQtMi41ODkuNDgtMi4yNzgtMS41Ni00LjI1NC0yLjg1NS0xLjY5LTEuMTA3LTMuNTYyLS42MzgtMS4zOTggMS4zOTguOTkuOTMyLjkzMiAxLjEwNyAxLjM5OCAzLjIwNS4zMzUgMS41MDYtLjY0IDMuNjcuNyA1LjU5MyIsc3Ryb2tlOiIjREI4MzZFIixzdHJva2VXaWR0aDoiLjc3NCIsc3Ryb2tlTGluZWNhcDoicm91bmQiLHN0cm9rZUxpbmVqb2luOiJyb3VuZCJ9KSxlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNNzkuNTQzIDEwOC42NzNjLTIuMSAyLjkyNi00LjI2NiA2LjE3NS01LjU1NyA4Ljc2MiIsc3Ryb2tlOiIjRTU5Nzg4IixzdHJva2VXaWR0aDoiLjc3NCIsc3Ryb2tlTGluZWNhcDoicm91bmQiLHN0cm9rZUxpbmVqb2luOiJyb3VuZCJ9KSxlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNODcuNzIgMTI0Ljc2OHMtMi4wOTgtMS45NDItNS4xMjctMi43MTljLTMuMDMtLjc3Ny0zLjU3NC0uMTU1LTUuNTE2LjA3OC0xLjk0Mi4yMzMtMy44ODUtLjkzMi0zLjY1Mi43LjIzMyAxLjYzIDUuMDUgMS4wMSA1LjIwNiAyLjA5Ny4xNTUgMS4wODctNi4zNyAyLjc5Ni04LjMxMyAyLjE3NS0uNzc3Ljc3Ny40NjYgMS44NjQgMi4wMiAyLjE3NS4yMzMgMS41NTQgMi4yNTMgMS41NTQgMi4yNTMgMS41NTRzLjY5OSAxLjAxIDIuNjQxIDEuMDg4YzIuNDg2IDEuMzIgOC45MzQtLjcgMTAuOTU0LTEuNTU0IDIuMDItLjg1NS0uNDY2LTUuNTk0LS40NjYtNS41OTQiLGZpbGw6IiNGRkM2QTAifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTczLjQyNSAxMjIuODI2cy42NiAxLjEyNyAzLjE2NyAxLjQxOGMyLjMxNS4yNyAyLjU2My41ODMgMi41NjMuNTgzcy0yLjU0NSAyLjg5NC05LjA3IDIuMjcyTTcyLjQxNiAxMjkuMjc0czMuODI2LjA5NyA0LjkzMy0uNzE4TTc0Ljk4IDEzMC43NXMxLjk2MS4xMzYgMy4zNi0uNTA1TTc3LjIzMiAxMzEuOTE2czEuNzQ4LjAxOSAyLjkxNC0uNTA1TTczLjMyOCAxMjIuMzIxcy0uNTk1LTEuMDMyIDEuMjYyLS40MjdjMS42NzEuNTQ0IDIuODMzLjA1NSA1LjEyOC4xNTUgMS4zODkuMDYxIDMuMDY3LS4yOTcgMy45ODIuMTUgMS42MDYuNzg0IDMuNjMyIDIuMTgxIDMuNjMyIDIuMTgxczEwLjUyNiAxLjIwNCAxOS4wMzMtMS4xMjdNNzguODY0IDEwOC4xMDRzLTguMzkgMi43NTgtMTMuMTY4IDEyLjEyIixzdHJva2U6IiNFNTk3ODgiLHN0cm9rZVdpZHRoOiIuNzc0IixzdHJva2VMaW5lY2FwOiJyb3VuZCIsc3Ryb2tlTGluZWpvaW46InJvdW5kIn0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0xMDkuMjc4IDExMi41MzNzMy4zOC0zLjYxMyA3LjU3NS00LjY2MiIsc3Ryb2tlOiIjRTRFQkY3IixzdHJva2VXaWR0aDoiMS4wODUiLHN0cm9rZUxpbmVjYXA6InJvdW5kIixzdHJva2VMaW5lam9pbjoicm91bmQifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTEwNy4zNzUgMTIzLjAwNnM5LjY5Ny0yLjc0NSAxMS40NDUtLjg4IixzdHJva2U6IiNFNTk3ODgiLHN0cm9rZVdpZHRoOiIuNzc0IixzdHJva2VMaW5lY2FwOiJyb3VuZCIsc3Ryb2tlTGluZWpvaW46InJvdW5kIn0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0xOTQuNjA1IDgzLjY1NmwzLjk3MS0zLjg4Nk0xODcuMTY2IDkwLjkzM2wzLjczNi0zLjY1NU0xOTEuNzUyIDg0LjIwN2wtNC40NjItNC41Nk0xOTguNDUzIDkxLjA1N2wtNC4xMzMtNC4yMjVNMTI5LjI1NiAxNjMuMDc0bDMuNzE4LTMuNzE4TTEyMi4yOTEgMTcwLjAzOWwzLjQ5OC0zLjQ5OE0xMjYuNTYxIDE2My42MjZsLTQuMjctNC4yN00xMzIuOTc1IDE3MC4wMzlsLTMuOTU1LTMuOTU1IixzdHJva2U6IiNCRkNEREQiLHN0cm9rZVdpZHRoOiIyIixzdHJva2VMaW5lY2FwOiJyb3VuZCIsc3Ryb2tlTGluZWpvaW46InJvdW5kIn0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0xOTAuMTU2IDIxMS43NzloLTEuNjA0YTQuMDIzIDQuMDIzIDAgMCAxLTQuMDExLTQuMDExVjE3NS42OGE0LjAyMyA0LjAyMyAwIDAgMSA0LjAxLTQuMDFoMS42MDVhNC4wMjMgNC4wMjMgMCAwIDEgNC4wMTEgNC4wMXYzMi4wODhhNC4wMjMgNC4wMjMgMCAwIDEtNC4wMSA0LjAxIixmaWxsOiIjQTNCNEM2In0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0yMzcuODI0IDIxMi45NzdhNC44MTMgNC44MTMgMCAwIDEtNC44MTMgNC44MTNoLTg2LjYzNmE0LjgxMyA0LjgxMyAwIDAgMSAwLTkuNjI2aDg2LjYzNmE0LjgxMyA0LjgxMyAwIDAgMSA0LjgxMyA0LjgxMyIsZmlsbDoiI0EzQjRDNiJ9KSxlLmNyZWF0ZUVsZW1lbnQoIm1hc2siLHtmaWxsOiIjZmZmIn0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2ZpbGw6IiNBM0I0QzYiLG1hc2s6InVybCgjZCkiLGQ6Ik0xNTQuMDk4IDE5MC4wOTZoNzAuNTEzdi04NC42MTdoLTcwLjUxM3oifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTIyNC45MjggMTkwLjA5NkgxNTMuNzhhMy4yMTkgMy4yMTkgMCAwIDEtMy4yMDgtMy4yMDlWMTY3LjkyYTMuMjE5IDMuMjE5IDAgMCAxIDMuMjA4LTMuMjFoNzEuMTQ4YTMuMjE5IDMuMjE5IDAgMCAxIDMuMjA5IDMuMjF2MTguOTY3YTMuMjE5IDMuMjE5IDAgMCAxLTMuMjEgMy4yMDlNMjI0LjkyOCAxMzAuODMySDE1My43OGEzLjIxOCAzLjIxOCAwIDAgMS0zLjIwOC0zLjIwOHYtMTguOTY4YTMuMjE5IDMuMjE5IDAgMCAxIDMuMjA4LTMuMjA5aDcxLjE0OGEzLjIxOSAzLjIxOSAwIDAgMSAzLjIwOSAzLjIxdjE4Ljk2N2EzLjIxOCAzLjIxOCAwIDAgMS0zLjIxIDMuMjA4IixmaWxsOiIjQkZDREREIixtYXNrOiJ1cmwoI2QpIn0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0xNTkuNTYzIDEyMC41NDZhMi40MDcgMi40MDcgMCAxIDEgMC00LjgxMyAyLjQwNyAyLjQwNyAwIDAgMSAwIDQuODEzTTE2Ni45OCAxMjAuNTQ2YTIuNDA3IDIuNDA3IDAgMSAxIDAtNC44MTMgMi40MDcgMi40MDcgMCAwIDEgMCA0LjgxM00xNzQuMzk3IDEyMC41NDZhMi40MDcgMi40MDcgMCAxIDEgMC00LjgxMyAyLjQwNyAyLjQwNyAwIDAgMSAwIDQuODEzTTIyMi41MzkgMTIwLjU0NmgtMjIuNDYxYS44MDIuODAyIDAgMCAxLS44MDItLjgwMnYtMy4yMDhjMC0uNDQzLjM1OS0uODAzLjgwMi0uODAzaDIyLjQ2Yy40NDQgMCAuODAzLjM2LjgwMy44MDN2My4yMDhjMCAuNDQzLS4zNi44MDItLjgwMi44MDIiLGZpbGw6IiNGRkYiLG1hc2s6InVybCgjZCkifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTIyNC45MjggMTYwLjQ2NEgxNTMuNzhhMy4yMTggMy4yMTggMCAwIDEtMy4yMDgtMy4yMDl2LTE4Ljk2N2EzLjIxOSAzLjIxOSAwIDAgMSAzLjIwOC0zLjIwOWg3MS4xNDhhMy4yMTkgMy4yMTkgMCAwIDEgMy4yMDkgMy4yMDl2MTguOTY3YTMuMjE4IDMuMjE4IDAgMCAxLTMuMjEgMy4yMDkiLGZpbGw6IiNCRkNEREQiLG1hc2s6InVybCgjZCkifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTE3My40NTUgMTMwLjgzMmg0OS4zMDFNMTY0Ljk4NCAxMzAuODMyaDYuMDg5TTE1NS45NTIgMTMwLjgzMmg2Ljc1TTE3My44MzcgMTYwLjYxM2g0OS4zTTE2NS4zNjUgMTYwLjYxM2g2LjA4OU0xNTUuNTcgMTYwLjYxM2g2Ljc1MSIsc3Ryb2tlOiIjN0M5MEE1IixzdHJva2VXaWR0aDoiMS4xMjQiLHN0cm9rZUxpbmVjYXA6InJvdW5kIixzdHJva2VMaW5lam9pbjoicm91bmQiLG1hc2s6InVybCgjZCkifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTE1OS41NjMgMTUxLjAzOGEyLjQwNyAyLjQwNyAwIDEgMSAwLTQuODE0IDIuNDA3IDIuNDA3IDAgMCAxIDAgNC44MTRNMTY2Ljk4IDE1MS4wMzhhMi40MDcgMi40MDcgMCAxIDEgMC00LjgxNCAyLjQwNyAyLjQwNyAwIDAgMSAwIDQuODE0TTE3NC4zOTcgMTUxLjAzOGEyLjQwNyAyLjQwNyAwIDEgMSAuMDAxLTQuODE0IDIuNDA3IDIuNDA3IDAgMCAxIDAgNC44MTRNMjIyLjUzOSAxNTEuMDM4aC0yMi40NjFhLjgwMi44MDIgMCAwIDEtLjgwMi0uODAydi0zLjIwOWMwLS40NDMuMzU5LS44MDIuODAyLS44MDJoMjIuNDZjLjQ0NCAwIC44MDMuMzYuODAzLjgwMnYzLjIwOWMwIC40NDMtLjM2LjgwMi0uODAyLjgwMk0xNTkuNTYzIDE3OS45ODdhMi40MDcgMi40MDcgMCAxIDEgMC00LjgxMyAyLjQwNyAyLjQwNyAwIDAgMSAwIDQuODEzTTE2Ni45OCAxNzkuOTg3YTIuNDA3IDIuNDA3IDAgMSAxIDAtNC44MTMgMi40MDcgMi40MDcgMCAwIDEgMCA0LjgxM00xNzQuMzk3IDE3OS45ODdhMi40MDcgMi40MDcgMCAxIDEgMC00LjgxMyAyLjQwNyAyLjQwNyAwIDAgMSAwIDQuODEzTTIyMi41MzkgMTc5Ljk4N2gtMjIuNDYxYS44MDIuODAyIDAgMCAxLS44MDItLjgwMnYtMy4yMDljMC0uNDQzLjM1OS0uODAyLjgwMi0uODAyaDIyLjQ2Yy40NDQgMCAuODAzLjM2LjgwMy44MDJ2My4yMDljMCAuNDQzLS4zNi44MDItLjgwMi44MDIiLGZpbGw6IiNGRkYiLG1hc2s6InVybCgjZCkifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTIwMy4wNCAyMjEuMTA4aC0yNy4zNzJhMi40MTMgMi40MTMgMCAwIDEtMi40MDYtMi40MDd2LTExLjQ0OGEyLjQxNCAyLjQxNCAwIDAgMSAyLjQwNi0yLjQwN2gyNy4zNzJhMi40MTQgMi40MTQgMCAwIDEgMi40MDcgMi40MDdWMjE4LjdhMi40MTMgMi40MTMgMCAwIDEtMi40MDcgMi40MDciLGZpbGw6IiNCRkNEREQiLG1hc2s6InVybCgjZCkifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTE3Ny4yNTkgMjA3LjIxN3YxMS41Mk0yMDEuMDUgMjA3LjIxN3YxMS41MiIsc3Ryb2tlOiIjQTNCNEM2IixzdHJva2VXaWR0aDoiMS4xMjQiLHN0cm9rZUxpbmVjYXA6InJvdW5kIixzdHJva2VMaW5lam9pbjoicm91bmQiLG1hc2s6InVybCgjZCkifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTE2Mi44NzMgMjY3Ljg5NGE5LjQyMiA5LjQyMiAwIDAgMS05LjQyMi05LjQyMnYtMTQuODJhOS40MjMgOS40MjMgMCAwIDEgMTguODQ1IDB2MTQuODJhOS40MjMgOS40MjMgMCAwIDEtOS40MjMgOS40MjIiLGZpbGw6IiM1QkEwMkUiLG1hc2s6InVybCgjZCkifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTE3MS4yMiAyNjcuODNhOS40MjIgOS40MjIgMCAwIDEtOS40MjItOS40MjN2LTMuNDM4YTkuNDIzIDkuNDIzIDAgMCAxIDE4Ljg0NSAwdjMuNDM4YTkuNDIzIDkuNDIzIDAgMCAxLTkuNDIyIDkuNDIzIixmaWxsOiIjOTJDMTEwIixtYXNrOiJ1cmwoI2QpIn0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0xODEuMzEgMjkzLjY2NmgtMjcuNzEyYTMuMjA5IDMuMjA5IDAgMCAxLTMuMjA5LTMuMjFWMjY5Ljc5YTMuMjA5IDMuMjA5IDAgMCAxIDMuMjA5LTMuMjFoMjcuNzExYTMuMjA5IDMuMjA5IDAgMCAxIDMuMjA5IDMuMjF2MjAuNjY4YTMuMjA5IDMuMjA5IDAgMCAxLTMuMjA5IDMuMjA5IixmaWxsOiIjRjJEN0FEIixtYXNrOiJ1cmwoI2QpIn0pKSksRT1yKDExNTY4KSxBPXIoODM1NTkpLGo9cig4MzI2Mik7Y29uc3Qgej10PT57Y29uc3R7Y29tcG9uZW50Q2xzOmwsbGluZUhlaWdodEhlYWRpbmczOmEsaWNvbkNsczpuLHBhZGRpbmc6cyxwYWRkaW5nWEw6byxwYWRkaW5nWFM6TSxwYWRkaW5nTEc6aSxtYXJnaW5YUzpwLGxpbmVIZWlnaHQ6a309dDtyZXR1cm57W2xdOntwYWRkaW5nOmAkeygwLEUuYmYpKHQuY2FsYyhpKS5tdWwoMikuZXF1YWwoKSl9ICR7KDAsRS5iZikobyl9YCwiJi1ydGwiOntkaXJlY3Rpb246InJ0bCJ9fSxbYCR7bH0gJHtsfS1pbWFnZWBdOnt3aWR0aDp0LmltYWdlV2lkdGgsaGVpZ2h0OnQuaW1hZ2VIZWlnaHQsbWFyZ2luOiJhdXRvIn0sW2Ake2x9ICR7bH0taWNvbmBdOnttYXJnaW5Cb3R0b206aSx0ZXh0QWxpZ246ImNlbnRlciIsW2AmID4gJHtufWBdOntmb250U2l6ZTp0Lmljb25Gb250U2l6ZX19LFtgJHtsfSAke2x9LXRpdGxlYF06e2NvbG9yOnQuY29sb3JUZXh0SGVhZGluZyxmb250U2l6ZTp0LnRpdGxlRm9udFNpemUsbGluZUhlaWdodDphLG1hcmdpbkJsb2NrOnAsdGV4dEFsaWduOiJjZW50ZXIifSxbYCR7bH0gJHtsfS1zdWJ0aXRsZWBdOntjb2xvcjp0LmNvbG9yVGV4dERlc2NyaXB0aW9uLGZvbnRTaXplOnQuc3VidGl0bGVGb250U2l6ZSxsaW5lSGVpZ2h0OmssdGV4dEFsaWduOiJjZW50ZXIifSxbYCR7bH0gJHtsfS1jb250ZW50YF06e21hcmdpblRvcDppLHBhZGRpbmc6YCR7KDAsRS5iZikoaSl9ICR7KDAsRS5iZikodC5jYWxjKHMpLm11bCgyLjUpLmVxdWFsKCkpfWAsYmFja2dyb3VuZENvbG9yOnQuY29sb3JGaWxsQWx0ZXJ9LFtgJHtsfSAke2x9LWV4dHJhYF06e21hcmdpbjp0LmV4dHJhTWFyZ2luLHRleHRBbGlnbjoiY2VudGVyIiwiJiA+ICoiOnttYXJnaW5JbmxpbmVFbmQ6TSwiJjpsYXN0LWNoaWxkIjp7bWFyZ2luSW5saW5lRW5kOjB9fX19fSwkPXQ9Pntjb25zdHtjb21wb25lbnRDbHM6bCxpY29uQ2xzOmF9PXQ7cmV0dXJue1tgJHtsfS1zdWNjZXNzICR7bH0taWNvbiA+ICR7YX1gXTp7Y29sb3I6dC5yZXN1bHRTdWNjZXNzSWNvbkNvbG9yfSxbYCR7bH0tZXJyb3IgJHtsfS1pY29uID4gJHthfWBdOntjb2xvcjp0LnJlc3VsdEVycm9ySWNvbkNvbG9yfSxbYCR7bH0taW5mbyAke2x9LWljb24gPiAke2F9YF06e2NvbG9yOnQucmVzdWx0SW5mb0ljb25Db2xvcn0sW2Ake2x9LXdhcm5pbmcgJHtsfS1pY29uID4gJHthfWBdOntjb2xvcjp0LnJlc3VsdFdhcm5pbmdJY29uQ29sb3J9fX0sUz10PT5beih0KSwkKHQpXSx4PXQ9PlModCksSD10PT4oe3RpdGxlRm9udFNpemU6dC5mb250U2l6ZUhlYWRpbmczLHN1YnRpdGxlRm9udFNpemU6dC5mb250U2l6ZSxpY29uRm9udFNpemU6dC5mb250U2l6ZUhlYWRpbmczKjMsZXh0cmFNYXJnaW46YCR7dC5wYWRkaW5nTEd9cHggMCAwIDBgfSk7dmFyIEk9KDAsQS5JJCkoIlJlc3VsdCIsdD0+e2NvbnN0IGw9dC5jb2xvckluZm8sYT10LmNvbG9yRXJyb3Isbj10LmNvbG9yU3VjY2VzcyxzPXQuY29sb3JXYXJuaW5nLG89KDAsai5JWCkodCx7cmVzdWx0SW5mb0ljb25Db2xvcjpsLHJlc3VsdEVycm9ySWNvbkNvbG9yOmEscmVzdWx0U3VjY2Vzc0ljb25Db2xvcjpuLHJlc3VsdFdhcm5pbmdJY29uQ29sb3I6cyxpbWFnZVdpZHRoOjI1MCxpbWFnZUhlaWdodDoyOTV9KTtyZXR1cm5beChvKV19LEgpLE49KCk9PmUuY3JlYXRlRWxlbWVudCgic3ZnIix7d2lkdGg6IjI1MSIsaGVpZ2h0OiIyOTQifSxlLmNyZWF0ZUVsZW1lbnQoInRpdGxlIixudWxsLCJVbmF1dGhvcml6ZWQiKSxlLmNyZWF0ZUVsZW1lbnQoImciLHtmaWxsOiJub25lIixmaWxsUnVsZToiZXZlbm9kZCJ9LGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0wIDEyOS4wMjN2LTIuMDg0QzAgNTguMzY0IDU1LjU5MSAyLjc3NCAxMjQuMTY1IDIuNzc0aDIuMDg1YzY4LjU3NCAwIDEyNC4xNjUgNTUuNTkgMTI0LjE2NSAxMjQuMTY1djIuMDg0YzAgNjguNTc1LTU1LjU5IDEyNC4xNjYtMTI0LjE2NSAxMjQuMTY2aC0yLjA4NUM1NS41OTEgMjUzLjE4OSAwIDE5Ny41OTggMCAxMjkuMDIzIixmaWxsOiIjRTRFQkY3In0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik00MS40MTcgMTMyLjkyYTguMjMxIDguMjMxIDAgMSAxLTE2LjM4LTEuNjUgOC4yMzEgOC4yMzEgMCAwIDEgMTYuMzggMS42NSIsZmlsbDoiI0ZGRiJ9KSxlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMzguNjUyIDEzNi4zNmwxMC40MjUgNS45MU00OS45ODkgMTQ4LjUwNWwtMTIuNTggMTAuNzMiLHN0cm9rZToiI0ZGRiIsc3Ryb2tlV2lkdGg6IjIifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTQxLjUzNiAxNjEuMjhhNS42MzYgNS42MzYgMCAxIDEtMTEuMjE2LTEuMTMgNS42MzYgNS42MzYgMCAwIDEgMTEuMjE2IDEuMTNNNTkuMTU0IDE0NS4yNjFhNS42NzcgNS42NzcgMCAxIDEtMTEuMjk3LTEuMTM4IDUuNjc3IDUuNjc3IDAgMCAxIDExLjI5NyAxLjEzOE0xMDAuMzYgMjkuNTE2bDI5LjY2LS4wMTNhNC41NjIgNC41NjIgMCAxIDAtLjAwNC05LjEyNmwtMjkuNjYuMDEzYTQuNTYzIDQuNTYzIDAgMCAwIC4wMDUgOS4xMjZNMTExLjcwNSA0Ny43NTRsMjkuNjU5LS4wMTNhNC41NjMgNC41NjMgMCAxIDAtLjAwNC05LjEyNmwtMjkuNjYuMDEzYTQuNTYzIDQuNTYzIDAgMSAwIC4wMDUgOS4xMjYiLGZpbGw6IiNGRkYifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTExNC4wNjYgMjkuNTAzVjI5LjVsMTUuNjk4LS4wMDdhNC41NjMgNC41NjMgMCAxIDAgLjAwNCA5LjEyNmwtMTUuNjk4LjAwN3YtLjAwMmE0LjU2MiA0LjU2MiAwIDAgMC0uMDA0LTkuMTIyTTE4NS40MDUgMTM3LjcyM2MtLjU1IDUuNDU1LTUuNDE4IDkuNDMyLTEwLjg3MyA4Ljg4Mi01LjQ1Ni0uNTUtOS40MzItNS40MTgtOC44ODItMTAuODczLjU1LTUuNDU1IDUuNDE4LTkuNDMyIDEwLjg3My04Ljg4MiA1LjQ1NS41NSA5LjQzMiA1LjQxOCA4Ljg4MiAxMC44NzMiLGZpbGw6IiNGRkYifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTE4MC4xNyAxNDMuNzcybDEyLjU3MiA3LjEyOU0xOTMuODQxIDE1OC40MkwxNzguNjcgMTcxLjM2IixzdHJva2U6IiNGRkYiLHN0cm9rZVdpZHRoOiIyIn0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0xODUuNTUgMTcxLjkyNmE2Ljc5OCA2Ljc5OCAwIDEgMS0xMy41MjgtMS4zNjMgNi43OTggNi43OTggMCAwIDEgMTMuNTI3IDEuMzYzTTIwNC4xMiAxNTUuMjg1YTYuODQ4IDYuODQ4IDAgMSAxLTEzLjYyNy0xLjM3NSA2Ljg0OCA2Ljg0OCAwIDAgMSAxMy42MjYgMS4zNzUiLGZpbGw6IiNGRkYifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTE1Mi45ODggMTk0LjA3NGEyLjIxIDIuMjEgMCAxIDEtNC40MiAwIDIuMjEgMi4yMSAwIDAgMSA0LjQyIDB6TTIyNS45MzEgMTE4LjIxN2EyLjIxIDIuMjEgMCAxIDEtNC40MjEgMCAyLjIxIDIuMjEgMCAwIDEgNC40MjEgMHpNMjE3LjA5IDE1My4wNTFhMi4yMSAyLjIxIDAgMSAxLTQuNDIxIDAgMi4yMSAyLjIxIDAgMCAxIDQuNDIgMHpNMTc3Ljg0IDEwOS44NDJhMi4yMSAyLjIxIDAgMSAxLTQuNDIyIDAgMi4yMSAyLjIxIDAgMCAxIDQuNDIxIDB6TTE5Ni4xMTQgOTQuNDU0YTIuMjEgMi4yMSAwIDEgMS00LjQyMSAwIDIuMjEgMi4yMSAwIDAgMSA0LjQyMSAwek0yMDIuODQ0IDE4Mi41MjNhMi4yMSAyLjIxIDAgMSAxLTQuNDIgMCAyLjIxIDIuMjEgMCAwIDEgNC40MiAweiIsc3Ryb2tlOiIjRkZGIixzdHJva2VXaWR0aDoiMiJ9KSxlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtzdHJva2U6IiNGRkYiLHN0cm9rZVdpZHRoOiIyIixkOiJNMjE1LjEyNSAxNTUuMjYybC0xLjkwMiAyMC4wNzUtMTAuODcgNS45NThNMTc0LjYwMSAxNzYuNjM2bC02LjMyMiA5Ljc2MUgxNTYuOThsLTQuNDg0IDYuNDQ5TTE3NS44NzQgMTI3LjI4VjExMS41Nk0yMjEuNTEgMTE5LjQwNGwtMTIuNzcgNy44NTktMTUuMjI4LTcuODZWOTYuNjY4In0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0xODAuNjggMjkuMzJDMTgwLjY4IDEzLjEyOCAxOTMuODA2IDAgMjEwIDBjMTYuMTkzIDAgMjkuMzIgMTMuMTI3IDI5LjMyIDI5LjMyIDAgMTYuMTk0LTEzLjEyNyAyOS4zMjItMjkuMzIgMjkuMzIyLTE2LjE5MyAwLTI5LjMyLTEzLjEyOC0yOS4zMi0yOS4zMjEiLGZpbGw6IiNBMjZFRjQifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTIyMS40NSA0MS43MDZsLTIxLjU2My0uMTI1YTEuNzQ0IDEuNzQ0IDAgMCAxLTEuNzM0LTEuNzU0bC4wNzEtMTIuMjNhMS43NDQgMS43NDQgMCAwIDEgMS43NTQtMS43MzRsMjEuNTYyLjEyNWMuOTY0LjAwNiAxLjc0Ljc5MSAxLjczNSAxLjc1NWwtLjA3MSAxMi4yMjlhMS43NDQgMS43NDQgMCAwIDEtMS43NTQgMS43MzQiLGZpbGw6IiNGRkYifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTIxNS4xMDYgMjkuMTkyYy0uMDE1IDIuNTc3LTIuMDQ5IDQuNjU0LTQuNTQzIDQuNjQtMi40OTQtLjAxNC00LjUwNC0yLjExNS00LjQ4OS00LjY5M2wuMDQtNi45MjVjLjAxNi0yLjU3NyAyLjA1LTQuNjU0IDQuNTQzLTQuNjQgMi40OTQuMDE1IDQuNTA0IDIuMTE2IDQuNDkgNC42OTNsLS4wNCA2LjkyNXptLTQuNTMtMTQuMDc0YTYuODc3IDYuODc3IDAgMCAwLTYuOTE2IDYuODM3bC0uMDQzIDcuMzY4YTYuODc3IDYuODc3IDAgMCAwIDEzLjc1NC4wOGwuMDQyLTcuMzY4YTYuODc4IDYuODc4IDAgMCAwLTYuODM3LTYuOTE3ek0xNjcuNTY2IDY4LjM2N2gtMy45M2E0LjczIDQuNzMgMCAwIDEtNC43MTctNC43MTcgNC43MyA0LjczIDAgMCAxIDQuNzE3LTQuNzE3aDMuOTNhNC43MyA0LjczIDAgMCAxIDQuNzE3IDQuNzE3IDQuNzMgNC43MyAwIDAgMS00LjcxNyA0LjcxNyIsZmlsbDoiI0ZGRiJ9KSxlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTY4LjIxNCAyNDguODM4YTYuNjExIDYuNjExIDAgMCAxLTYuNjEtNi42MTF2LTY2LjEwOGE2LjYxMSA2LjYxMSAwIDAgMSAxMy4yMjEgMHY2Ni4xMDhhNi42MTEgNi42MTEgMCAwIDEtNi42MSA2LjYxIixmaWxsOiIjNUJBMDJFIn0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0xNzYuMTQ3IDI0OC4xNzZhNi42MTEgNi42MTEgMCAwIDEtNi42MS02LjYxdi0zMy4wNTRhNi42MTEgNi42MTEgMCAxIDEgMTMuMjIxIDB2MzMuMDUzYTYuNjExIDYuNjExIDAgMCAxLTYuNjEgNi42MTEiLGZpbGw6IiM5MkMxMTAifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTE4NS45OTQgMjkzLjg5aC0yNy4zNzZhMy4xNyAzLjE3IDAgMCAxLTMuMTctMy4xN3YtNDUuODg3YTMuMTcgMy4xNyAwIDAgMSAzLjE3LTMuMTdoMjcuMzc2YTMuMTcgMy4xNyAwIDAgMSAzLjE3IDMuMTd2NDUuODg2YTMuMTcgMy4xNyAwIDAgMS0zLjE3IDMuMTciLGZpbGw6IiNGMkQ3QUQifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTgxLjk3MiAxNDcuNjczczYuMzc3LS45MjcgMTcuNTY2LTEuMjhjMTEuNzI5LS4zNzEgMTcuNTcgMS4wODYgMTcuNTcgMS4wODZzMy42OTctMy44NTUuOTY4LTguNDI0YzEuMjc4LTEyLjA3NyA1Ljk4Mi0zMi44MjcuMzM1LTQ4LjI3My0xLjExNi0xLjMzOS0zLjc0My0xLjUxMi03LjUzNi0uNjItMS4zMzcuMzE1LTcuMTQ3LS4xNDktNy45ODMtLjFsLTE1LjMxMS0uMzQ3cy0zLjQ4Ny0uMTctOC4wMzUtLjUwOGMtMS41MTItLjExMy00LjIyNy0xLjY4My01LjQ1OC0uMzM4LS40MDYuNDQzLTIuNDI1IDUuNjY5LTEuOTcgMTYuMDc3bDguNjM1IDM1LjY0MnMtMy4xNDEgMy42MSAxLjIxOSA3LjA4NSIsZmlsbDoiI0ZGRiJ9KSxlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNNzUuNzY4IDczLjMyNWwtLjktNi4zOTcgMTEuOTgyLTYuNTJzNy4zMDItLjExOCA4LjAzOCAxLjIwNWMuNzM3IDEuMzI0LTUuNjE2Ljk5My01LjYxNi45OTNzLTEuODM2IDEuMzg4LTIuNjE1IDIuNWMtMS42NTQgMi4zNjMtLjk4NiA2LjQ3MS04LjMxOCA1Ljk4Ni0xLjcwOC4yODQtMi41NyAyLjIzMy0yLjU3IDIuMjMzIixmaWxsOiIjRkZDNkEwIn0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik01Mi40NCA3Ny42NzJzMTQuMjE3IDkuNDA2IDI0Ljk3MyAxNC40NDRjMS4wNjEuNDk3LTIuMDk0IDE2LjE4My0xMS44OTIgMTEuODExLTcuNDM2LTMuMzE4LTIwLjE2Mi04LjQ0LTIxLjQ4Mi0xNC40OTYtLjcxLTMuMjU4IDIuNTQzLTcuNjQzIDguNDAxLTExLjc2TTE0MS44NjIgODAuMTEzcy02LjY5MyAyLjk5OS0xMy44NDQgNi44NzZjLTMuODk0IDIuMTEtMTAuMTM3IDQuNzA0LTEyLjMzIDcuOTg4LTYuMjI0IDkuMzE0IDMuNTM2IDExLjIyIDEyLjk0NyA3LjUwMyA2LjcxLTIuNjUxIDI4Ljk5OS0xMi4xMjcgMTMuMjI3LTIyLjM2NyIsZmlsbDoiI0ZGQjU5NCJ9KSxlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNNzYuMTY2IDY2LjM2bDMuMDYgMy44ODFzLTIuNzgzIDIuNjctNi4zMSA1Ljc0N2MtNy4xMDMgNi4xOTUtMTIuODAzIDE0LjI5Ni0xNS45OTUgMTYuNDQtMy45NjYgMi42NjItOS43NTQgMy4zMTQtMTIuMTc3LS4xMTgtMy41NTMtNS4wMzIuNDY0LTE0LjYyOCAzMS40MjItMjUuOTUiLGZpbGw6IiNGRkM2QTAifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTY0LjY3NCA4NS4xMTZzLTIuMzQgOC40MTMtOC45MTIgMTQuNDQ3Yy42NTIuNTQ4IDE4LjU4NiAxMC41MSAyMi4xNDQgMTAuMDU2IDUuMjM4LS42NjkgNi40MTctMTguOTY4IDEuMTQ1LTIwLjUzMS0uNzAyLS4yMDgtNS45MDEtMS4yODYtOC44NTMtMi4xNjctLjg3LS4yNi0xLjYxMS0xLjcxLTMuNTQ1LS45MzZsLTEuOTgtLjg2OXpNMTI4LjM2MiA4NS44MjZzNS4zMTggMS45NTYgNy4zMjUgMTMuNzM0Yy0uNTQ2LjI3NC0xNy41NSAxMi4zNS0yMS44MjkgNy44MDUtNi41MzQtNi45NC0uNzY2LTE3LjM5MyA0LjI3NS0xOC42MSA0LjY0Ni0xLjEyMSA1LjAzLTEuMzcgMTAuMjMtMi45MjkiLGZpbGw6IiNGRkYifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTc4LjE4IDk0LjY1NnMuOTExIDcuNDEtNC45MTQgMTMuMDc4IixzdHJva2U6IiNFNEVCRjciLHN0cm9rZVdpZHRoOiIxLjA1MSIsc3Ryb2tlTGluZWNhcDoicm91bmQiLHN0cm9rZUxpbmVqb2luOiJyb3VuZCJ9KSxlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNODcuMzk3IDk0LjY4czMuMTI0IDIuNTcyIDEwLjI2MyAyLjU3MmM3LjE0IDAgOS4wNzQtMy40MzcgOS4wNzQtMy40MzciLHN0cm9rZToiI0U0RUJGNyIsc3Ryb2tlV2lkdGg6Ii45MzIiLHN0cm9rZUxpbmVjYXA6InJvdW5kIixzdHJva2VMaW5lam9pbjoicm91bmQifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTExNy4xODQgNjguNjM5bC02Ljc4MS02LjE3N3MtNS4zNTUtNC4zMTQtOS4yMjMtLjg5M2MtMy44NjcgMy40MjIgNC40NjMgMi4wODMgNS42NTMgNC4xNjUgMS4xOSAyLjA4Mi44NDggMS4xNDMtMi4wODMuNDQ2LTUuNjAzLTEuMzMxLTIuMDgyLjg5MyAyLjk3NSA1LjM1NSAyLjA5MSAxLjg0NSA2Ljk5Mi45NTUgNi45OTIuOTU1bDIuNDY3LTMuODUxeiIsZmlsbDoiI0ZGQzZBMCJ9KSxlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTA1LjI4MiA5MS4zMTVsLS4yOTctMTAuOTM3LTE1LjkxOC0uMDI3LS41MyAxMC40NWMtLjAyNi40MDMuMTcuNzg4LjUxNS45OTkgMi4wNDkgMS4yNTEgOS4zODcgNS4wOTMgMTUuNzk5LjQyNC4yODctLjIxLjQ0My0uNTU0LjQzMS0uOTEiLGZpbGw6IiNGRkI1OTQifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTEwNy41NzMgNzQuMjRjLjgxNy0xLjE0Ny45ODItOS4xMTggMS4wMTUtMTEuOTI4YTEuMDQ2IDEuMDQ2IDAgMCAwLS45NjUtMS4wNTVsLTQuNjItLjM2NWMtNy43MS0xLjA0NC0xNy4wNzEuNjI0LTE4LjI1MyA2LjM0Ni01LjQ4MiA1LjgxMy0uNDIxIDEzLjI0NC0uNDIxIDEzLjI0NHMxLjk2MyAzLjU2NiA0LjMwNSA2Ljc5MWMuNzU2IDEuMDQxLjM5OC0zLjczMSAzLjA0LTUuOTI5IDUuNTI0LTQuNTk0IDE1Ljg5OS03LjEwMyAxNS44OTktNy4xMDMiLGZpbGw6IiM1QzI1NTIifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTg4LjQyNiA4My4yMDZzMi42ODUgNi4yMDIgMTEuNjAyIDYuNTIyYzcuODIuMjggOC45NzMtNy4wMDggNy40MzQtMTcuNTA1bC0uOTA5LTUuNDgzYy02LjExOC0yLjg5Ny0xNS40NzguNTQtMTUuNDc4LjU0cy0uNTc2IDIuMDQ0LS4xOSA1LjUwNGMtMi4yNzYgMi4wNjYtMS44MjQgNS42MTgtMS44MjQgNS42MThzLS45MDUtMS45MjItMS45OC0yLjMyMWMtLjg2LS4zMi0xLjg5Ny4wODktMi4zMjIgMS45OC0xLjA0IDQuNjMyIDMuNjY3IDUuMTQ1IDMuNjY3IDUuMTQ1IixmaWxsOiIjRkZDNkEwIn0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse3N0cm9rZToiI0RCODM2RSIsc3Ryb2tlV2lkdGg6IjEuMTQ1IixzdHJva2VMaW5lY2FwOiJyb3VuZCIsc3Ryb2tlTGluZWpvaW46InJvdW5kIixkOiJNMTAwLjg0MyA3Ny4wOTlsMS43MDEtLjkyOC0xLjAxNS00LjMyNC42NzQtMS40MDYifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTEwNS41NDYgNzQuMDkyYy0uMDIyLjcxMy0uNDUyIDEuMjc5LS45NiAxLjI2My0uNTEtLjAxNi0uOTA0LS42MDctLjg4Mi0xLjMyLjAyMS0uNzEzLjQ1Mi0xLjI3OC45Ni0xLjI2My41MS4wMTYuOTA0LjYwNy44ODIgMS4zMk05Ny41OTIgNzQuMzQ5Yy0uMDIyLjcxMy0uNDUyIDEuMjc4LS45NjEgMS4yNjMtLjUwOS0uMDE2LS45MDQtLjYwNy0uODgyLTEuMzIuMDIyLS43MTMuNDUyLTEuMjc5Ljk2MS0xLjI2My41MS4wMTYuOTA0LjYwNi44ODIgMS4zMiIsZmlsbDoiIzU1Mjk1MCJ9KSxlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNOTEuMTMyIDg2Ljc4NnM1LjI2OSA0Ljk1NyAxMi42NzkgMi4zMjciLHN0cm9rZToiI0RCODM2RSIsc3Ryb2tlV2lkdGg6IjEuMTQ1IixzdHJva2VMaW5lY2FwOiJyb3VuZCIsc3Ryb2tlTGluZWpvaW46InJvdW5kIn0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik05OS43NzYgODEuOTAzcy0zLjU5Mi4yMzItMS40NC0yLjc5YzEuNTktMS40OTYgNC44OTctLjQ2IDQuODk3LS40NnMxLjE1NiAzLjkwNi0zLjQ1NyAzLjI1IixmaWxsOiIjREI4MzZFIn0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0xMDIuODggNzAuNnMyLjQ4My44NCAzLjQwMi43MTVNOTMuODgzIDcxLjk3NXMyLjQ5Mi0xLjE0NCA0Ljc3OC0xLjA3MyIsc3Ryb2tlOiIjNUMyNTUyIixzdHJva2VXaWR0aDoiMS41MjYiLHN0cm9rZUxpbmVjYXA6InJvdW5kIixzdHJva2VMaW5lam9pbjoicm91bmQifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTg2LjMyIDc3LjM3NHMuOTYxLjg3OSAxLjQ1OCAyLjEwNmMtLjM3Ny40OC0xLjAzMyAxLjE1Mi0uMjM2IDEuODA5TTk5LjMzNyA4My43MTlzMS45MTEuMTUxIDIuNTA5LS4yNTQiLHN0cm9rZToiI0RCODM2RSIsc3Ryb2tlV2lkdGg6IjEuMTQ1IixzdHJva2VMaW5lY2FwOiJyb3VuZCIsc3Ryb2tlTGluZWpvaW46InJvdW5kIn0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik04Ny43ODIgMTE1LjgyMWwxNS43My0zLjAxMk0xMDAuMTY1IDExNS44MjFsMTAuMDQtMi4wMDgiLHN0cm9rZToiI0U0RUJGNyIsc3Ryb2tlV2lkdGg6IjEuMDUxIixzdHJva2VMaW5lY2FwOiJyb3VuZCIsc3Ryb2tlTGluZWpvaW46InJvdW5kIn0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik02Ni41MDggODYuNzYzcy0xLjU5OCA4LjgzLTYuNjk3IDE0LjA3OCIsc3Ryb2tlOiIjRTRFQkY3IixzdHJva2VXaWR0aDoiMS4xMTQiLHN0cm9rZUxpbmVjYXA6InJvdW5kIixzdHJva2VMaW5lam9pbjoicm91bmQifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTEyOC4zMSA4Ny45MzRzMy4wMTMgNC4xMjEgNC4wNiAxMS43ODUiLHN0cm9rZToiI0U0RUJGNyIsc3Ryb2tlV2lkdGg6IjEuMDUxIixzdHJva2VMaW5lY2FwOiJyb3VuZCIsc3Ryb2tlTGluZWpvaW46InJvdW5kIn0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik02NC4wOSA4NC44MTZzLTYuMDMgOS45MTItMTMuNjA3IDkuOTAzIixzdHJva2U6IiNEQjgzNkUiLHN0cm9rZVdpZHRoOiIuNzk1IixzdHJva2VMaW5lY2FwOiJyb3VuZCIsc3Ryb2tlTGluZWpvaW46InJvdW5kIn0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0xMTIuMzY2IDY1LjkwOWwtLjE0MiA1LjMyczUuOTkzIDQuNDcyIDExLjk0NSA5LjIwMmM0LjQ4MiAzLjU2MiA4Ljg4OCA3LjQ1NSAxMC45ODUgOC42NjIgNC44MDQgMi43NjYgOC45IDMuMzU1IDExLjA3NiAxLjgwOCA0LjA3MS0yLjg5NCA0LjM3My05Ljg3OC04LjEzNi0xNS4yNjMtNC4yNzEtMS44MzgtMTYuMTQ0LTYuMzYtMjUuNzI4LTkuNzMiLGZpbGw6IiNGRkM2QTAifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTEzMC41MzIgODUuNDg4czQuNTg4IDUuNzU3IDExLjYxOSA2LjIxNCIsc3Ryb2tlOiIjREI4MzZFIixzdHJva2VXaWR0aDoiLjc1IixzdHJva2VMaW5lY2FwOiJyb3VuZCIsc3Ryb2tlTGluZWpvaW46InJvdW5kIn0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0xMjEuNzA4IDEwNS43M3MtLjM5MyA4LjU2NC0xLjM0IDEzLjYxMiIsc3Ryb2tlOiIjRTRFQkY3IixzdHJva2VXaWR0aDoiMS4wNTEiLHN0cm9rZUxpbmVjYXA6InJvdW5kIixzdHJva2VMaW5lam9pbjoicm91bmQifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTExNS43ODQgMTYxLjUxMnMtMy41Ny0xLjQ4OC0yLjY3OC03LjE0IixzdHJva2U6IiM2NDhCRDgiLHN0cm9rZVdpZHRoOiIxLjA1MSIsc3Ryb2tlTGluZWNhcDoicm91bmQiLHN0cm9rZUxpbmVqb2luOiJyb3VuZCJ9KSxlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTAxLjUyIDI5MC4yNDZzNC4zMjYgMi4wNTcgNy40MDggMS4wM2MyLjg0Mi0uOTQ4IDQuNTY0LjY3MyA3LjEzMiAxLjE4NiAyLjU3LjUxNCA2LjkyNSAxLjEwOCAxMS43NzItMS4yNjktLjEwNC01LjU1MS02LjkzOS00LjAxLTEyLjA0OC02Ljc2My0yLjU4Mi0xLjM5LTMuODEyLTQuNzU3LTMuNjI1LTguODYzaC05LjQ3MXMtMS40MDIgMTAuNTk2LTEuMTY5IDE0LjY4IixmaWxsOiIjQ0JEMUQxIn0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0xMDEuNDk2IDI5MC4wNzNzMi40NDcgMS4yODEgNi44MDkuNjU4YzMuMDgxLS40NCAzLjc0LjQ4NSA3LjQ3OSAxLjAzOSAzLjczOS41NTQgMTAuODAyLS4wNyAxMS45MS0uOS40MTUgMS4xMDgtLjM0NyAyLjA3Ny0uMzQ3IDIuMDc3cy0xLjUyMy42MDgtNC44NDcuODMxYy0yLjA0NS4xMzctNS44NDMuMjkzLTcuNjYzLS41MDctMS44LTEuMzg1LTUuMjg2LTEuOTE3LTUuNzctLjI0My0zLjk0Ny45NTgtNy40MS0uMjg4LTcuNDEtLjI4OGwtLjE2LTIuNjY3eiIsZmlsbDoiIzJCMDg0OSJ9KSxlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTA4LjgyNCAyNzYuMTloMy4xMTZzLS4xMDMgNi43NTEgNC41NyA4LjYyYy00LjY3My42MjQtOC42Mi0yLjMyLTcuNjg2LTguNjIiLGZpbGw6IiNBNEFBQkEifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTU3LjY1IDI3Mi41MnMtMi4xMjIgNy40Ny00LjUxOCAxMi4zOTZjLTEuODExIDMuNzI0LTQuMjU1IDcuNTQ4IDUuNTA1IDcuNTQ4IDYuNjk4IDAgOS4wMi0uNDgzIDcuNDc5LTYuNjQ4LTEuNTQxLTYuMTY0LjI2OC0xMy4yOTYuMjY4LTEzLjI5Nkg1Ny42NXoiLGZpbGw6IiNDQkQxRDEifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTUxLjU0IDI5MC4wNHMyLjExMSAxLjE3OCA2LjY4MiAxLjE3OGM2LjEyOCAwIDguMzEtMS42NjIgOC4zMS0xLjY2MnMuNjA1IDEuMTIyLS42MjQgMi4xOGMtMSAuODYyLTMuNjI0IDEuNjAzLTcuNDQ0IDEuNTU5LTQuMTc3LS4wNDktNS44NzYtLjU3LTYuNzg2LTEuMTc3LS44MzEtLjU1NC0uNjkyLTEuNTkzLS4xMzgtMi4wNzgiLGZpbGw6IiMyQjA4NDkifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTU4LjUzMyAyNzQuNDM4cy4wMzQgMS41MjktLjMxNSAyLjk1Yy0uMzUyIDEuNDMxLTEuMDg3IDMuMTI3LTEuMTM5IDQuMTctLjA1OCAxLjE2IDQuNTcgMS41OTIgNS4xOTQuMDM1LjYyMy0xLjU1OSAxLjMwMy02LjQ3NSAxLjkyNy03LjMwNi42MjItLjgzMS00Ljk0LTIuMTM1LTUuNjY3LjE1IixmaWxsOiIjQTRBQUJBIn0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0xMDAuODg1IDI3Ny4wMTVsMTMuMzA2LjA5MnMxLjI5MS01NC4yMjggMS44NDMtNjQuMDU2Yy41NTItOS44MjggMy43NTYtNDMuMTMuOTk3LTYyLjc4OGwtMTIuNDgtLjY0LTIyLjcyNS43NzZzLS40MzMgMy45NDQtMS4xOSA5LjkyMWMtLjA2Mi40OTMtLjY3Ny44MzgtLjc0NCAxLjM1OC0uMDc1LjU4Mi40MiAxLjM0Ny4zMTggMS45NTYtMi4zNSAxNC4wMDMtNi4zNDMgMzIuOTI2LTguNjk3IDQ2LjQyNS0uMTE2LjY2My0xLjIyNyAxLjAwNC0xLjQ1IDIuNjc3LS4wNC4zLjIxIDEuNTE2LjExMiAxLjc4NS02LjgzNiAxOC42NDMtMTAuODkgNDcuNTg0LTE0LjIgNjEuNTUxbDE0LjUyOC0uMDE0czIuMTg1LTguNTI0IDQuMDA4LTE2Ljg3OGMyLjc5Ni0xMi44MTcgMjIuOTg3LTg0LjU1MyAyMi45ODctODQuNTUzbDMtLjUxNyAxLjAzNyA0Ni4xcy0uMjIzIDEuMjI4LjMzNCAyLjAwOGMuNTU4Ljc4Mi0uNTU2IDEuMTE3LS4zOSAyLjIzM2wuMzkgMS43ODRzLS40NDYgNy4xNC0uODkyIDExLjgyNmMtLjQ0NiA0LjY4NS0uMDkyIDM4Ljk1NC0uMDkyIDM4Ljk1NCIsZmlsbDoiIzdCQjJGOSJ9KSxlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNNzcuNDM4IDIyMC40MzRjMS4xNDYuMDk0IDQuMDE2LTIuMDA4IDYuOTE2LTQuOTFNMTA3LjU1IDIyMy45MzFzMi43NTgtMS4xMDMgNi4wNjktMy44NjIiLHN0cm9rZToiIzY0OEJEOCIsc3Ryb2tlV2lkdGg6IjEuMDUxIixzdHJva2VMaW5lY2FwOiJyb3VuZCIsc3Ryb2tlTGluZWpvaW46InJvdW5kIn0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0xMDguNDU5IDIyMC45MDVzMi43NTktMS4xMDQgNi4wNy0zLjg2MyIsc3Ryb2tlOiIjNjQ4QkQ4IixzdHJva2VMaW5lY2FwOiJyb3VuZCIsc3Ryb2tlTGluZWpvaW46InJvdW5kIn0pLGUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik03Ni4wOTkgMjIzLjU1N3MyLjYwOC0uNTg3IDYuNDctMy4zNDZNODcuMzMgMTUwLjgyYy0uMjcgMy4wODguMjk3IDguNDc4LTQuMzE1IDkuMDczTTEwNC44MjkgMTQ5LjA3NXMuMTEgMTMuOTM2LTEuMjg2IDE0Ljk4M2MtMi4yMDcgMS42NTUtMi45NzUgMS45MzQtMi45NzUgMS45MzRNMTAxLjAxNCAxNDkuNjNzLjAzNSAxMi44MS0xLjE5IDI0LjI0NU05NC45MyAxNzQuOTY1czcuMTc0LTEuNjU1IDkuMzgtMS42NTVNNzUuNjcxIDIwNC43NTRjLS4zMTYgMS41NS0uNjQgMy4wNjctLjk3MyA0LjUzNSAwIDAtMS40NSAxLjgyMi0xLjAwMyAzLjc1Ni40NDYgMS45MzQtLjk0MyAyLjAzNC00Ljk2IDE1LjI3My0xLjY4NiA1LjU1OS00LjQ2NCAxOC40OS02LjMxMyAyNy40NDctLjA3OC4zOC00LjAxOCAxOC4wNi00LjA5MyAxOC40MjNNNzcuMDQzIDE5Ni43NDNhMzEzLjI2OSAzMTMuMjY5IDAgMCAxLS44NzcgNC43MjlNODMuOTA4IDE1MS40MTRsLTEuMTkgMTAuNDEzcy0xLjA5MS4xNDgtLjQ5NiAyLjIzYy4xMTEgMS4zNC0yLjY2IDE1LjY5Mi01LjE1MyAzMC4yNjdNNTcuNTggMjcyLjk0aDEzLjIzOCIsc3Ryb2tlOiIjNjQ4QkQ4IixzdHJva2VXaWR0aDoiMS4wNTEiLHN0cm9rZUxpbmVjYXA6InJvdW5kIixzdHJva2VMaW5lam9pbjoicm91bmQifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTExNy4zNzcgMTQ3LjQyM3MtMTYuOTU1LTMuMDg3LTM1LjcuMTk5Yy4xNTcgMi41MDEtLjAwMiA0LjEyOC0uMDAyIDQuMTI4czE0LjYwNy0yLjgwMiAzNS40NzYtLjMxYy4yNTEtMi4zNDIuMjI2LTQuMDE3LjIyNi00LjAxNyIsZmlsbDoiIzE5MjA2NCJ9KSxlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTA3LjUxMSAxNTAuMzUzbC4wMDQtNC44ODVhLjgwNy44MDcgMCAwIDAtLjc3NC0uODFjLTIuNDI4LS4wOTItNS4wNC0uMTA4LTcuNzk1LS4wMTRhLjgxNC44MTQgMCAwIDAtLjc4NC44MWwtLjAwMyA0Ljg4YzAgLjQ1Ni4zNzEuODIuODI3LjgwOGExNDAuNzYgMTQwLjc2IDAgMCAxIDcuNjg4LjAxNy44MS44MSAwIDAgMCAuODM3LS44MDYiLGZpbGw6IiNGRkYifSksZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTEwNi40MDIgMTQ5LjQyNmwuMDAyLTMuMDZhLjY0LjY0IDAgMCAwLS42MTYtLjY0MyA5NC4xMzUgOTQuMTM1IDAgMCAwLTUuODM0LS4wMDkuNjQ3LjY0NyAwIDAgMC0uNjI2LjY0M2wtLjAwMSAzLjA1NmMwIC4zNi4yOTEuNjQ4LjY1MS42NCAxLjc4LS4wNCAzLjcwOC0uMDQxIDUuNzYyLjAxMi4zNi4wMDkuNjYyLS4yNzkuNjYyLS42NCIsZmlsbDoiIzE5MjA2NCJ9KSxlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTAxLjQ4NSAyNzMuOTMzaDEyLjI3Mk0xMDIuNjUyIDI2OS4wNzVjLjAwNiAzLjM2OC4wNCA1Ljc1OS4xMSA2LjQ3TTEwMi42NjcgMjYzLjEyNWMtLjAwOSAxLjUzLS4wMTUgMi45OC0uMDE2IDQuMzEzTTEwMi4yMDQgMTc0LjAyNGwuODkzIDQ0LjQwMnMuNjY5IDEuNTYxLS4yMjQgMi42NzdjLS44OTIgMS4xMTYgMi40NTUuNjcuODkzIDIuMjMxLTEuNTYyIDEuNTYyLjg5MyAxLjExNiAwIDMuMzQ3LS41OTIgMS40OC0uOTg4IDIwLjk4Ny0xLjA5IDM0Ljk1NiIsc3Ryb2tlOiIjNjQ4QkQ4IixzdHJva2VXaWR0aDoiMS4wNTEiLHN0cm9rZUxpbmVjYXA6InJvdW5kIixzdHJva2VMaW5lam9pbjoicm91bmQifSkpKTtjb25zdCBWPXtzdWNjZXNzOmYuWixlcnJvcjpMLlosaW5mbzp2Llosd2FybmluZzpCLlp9LGg9ezQwNDpnLDUwMDpXLDQwMzpOfSx5PU9iamVjdC5rZXlzKGgpLFI9dD0+e2xldHtwcmVmaXhDbHM6bCxpY29uOmEsc3RhdHVzOm59PXQ7Y29uc3Qgcz11KCkoYCR7bH0taWNvbmApO2lmKHkuaW5jbHVkZXMoYCR7bn1gKSl7Y29uc3QgTT1oW25dO3JldHVybiBlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpgJHtzfSAke2x9LWltYWdlYH0sZS5jcmVhdGVFbGVtZW50KE0sbnVsbCkpfWNvbnN0IG89ZS5jcmVhdGVFbGVtZW50KFZbbl0pO3JldHVybiBhPT09bnVsbHx8YT09PSExP251bGw6ZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6c30sYXx8byl9LFQ9dD0+e2xldHtwcmVmaXhDbHM6bCxleHRyYTphfT10O3JldHVybiBhP2UuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmAke2x9LWV4dHJhYH0sYSk6bnVsbH0sbT10PT57bGV0e3ByZWZpeENsczpsLGNsYXNzTmFtZTphLHJvb3RDbGFzc05hbWU6bixzdWJUaXRsZTpzLHRpdGxlOm8sc3R5bGU6TSxjaGlsZHJlbjppLHN0YXR1czpwPSJpbmZvIixpY29uOmssZXh0cmE6R309dDtjb25zdHtnZXRQcmVmaXhDbHM6UCxkaXJlY3Rpb246WixyZXN1bHQ6ZH09ZS51c2VDb250ZXh0KEQuRV8pLGM9UCgicmVzdWx0IixsKSxbVSxYLE9dPUkoYyksSj11KCkoYyxgJHtjfS0ke3B9YCxhLGQ9PW51bGw/dm9pZCAwOmQuY2xhc3NOYW1lLG4se1tgJHtjfS1ydGxgXTpaPT09InJ0bCJ9LFgsTyksSz1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZD09bnVsbD92b2lkIDA6ZC5zdHlsZSksTSk7cmV0dXJuIFUoZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6SixzdHlsZTpLfSxlLmNyZWF0ZUVsZW1lbnQoUix7cHJlZml4Q2xzOmMsc3RhdHVzOnAsaWNvbjprfSksZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YCR7Y30tdGl0bGVgfSxvKSxzJiZlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpgJHtjfS1zdWJ0aXRsZWB9LHMpLGUuY3JlYXRlRWxlbWVudChULHtwcmVmaXhDbHM6YyxleHRyYTpHfSksaSYmZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YCR7Y30tY29udGVudGB9LGkpKSl9O20uUFJFU0VOVEVEX0lNQUdFXzQwMz1oWzQwM10sbS5QUkVTRU5URURfSU1BR0VfNDA0PWhbNDA0XSxtLlBSRVNFTlRFRF9JTUFHRV81MDA9aFs1MDBdO3ZhciBiPW19fV0pOwpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy85ODU5LmYyZTZkMDhlLmFzeW5jLmpzIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy85ODU5LmYyZTZkMDhlLmFzeW5jLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI1NzJkZjkKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzk4NTkuZjJlNmQwOGUuYXN5bmMuanMKQEAgLTAsMCArMSw5IEBACisidXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W10pLnB1c2goW1s5ODU5XSx7OTk4NTk6ZnVuY3Rpb24oZm4sdHQsbSl7bS5kKHR0LHtaOmZ1bmN0aW9uKCl7cmV0dXJuIHVufX0pO3ZhciBMPW0oNjUyMjMpLFE9bSg3NDkwMiksbD1tKDY3Mjk0KSxudD1tKDkzOTY3KSxuZT1tLm4obnQpLFNlPW0oMjkzNzIpLEVlPW0oMzM2MDMpLHBlPW0oMzU3OTIpO2Z1bmN0aW9uIHVlKGUpe2NvbnN0W3Qsbl09bC51c2VTdGF0ZShlKTtyZXR1cm4gbC51c2VFZmZlY3QoKCk9Pntjb25zdCByPXNldFRpbWVvdXQoKCk9PntuKGUpfSxlLmxlbmd0aD8wOjEwKTtyZXR1cm4oKT0+e2NsZWFyVGltZW91dChyKX19LFtlXSksdH12YXIgXz1tKDExNTY4KSxPZT1tKDE0NzQ3KSxGZT1tKDUwNDM4KSxydD1tKDMzNTA3KSxvdD1tKDgzMjYyKSx3ZT1tKDgzNTU5KSxsdD1lPT57Y29uc3R7Y29tcG9uZW50Q2xzOnR9PWUsbj1gJHt0fS1zaG93LWhlbHBgLHI9YCR7dH0tc2hvdy1oZWxwLWl0ZW1gO3JldHVybntbbl06e3RyYW5zaXRpb246YG9wYWNpdHkgJHtlLm1vdGlvbkR1cmF0aW9uRmFzdH0gJHtlLm1vdGlvbkVhc2VJbk91dH1gLCImLWFwcGVhciwgJi1lbnRlciI6e29wYWNpdHk6MCwiJi1hY3RpdmUiOntvcGFjaXR5OjF9fSwiJi1sZWF2ZSI6e29wYWNpdHk6MSwiJi1hY3RpdmUiOntvcGFjaXR5OjB9fSxbcl06e292ZXJmbG93OiJoaWRkZW4iLHRyYW5zaXRpb246YGhlaWdodCAke2UubW90aW9uRHVyYXRpb25GYXN0fSAke2UubW90aW9uRWFzZUluT3V0fSwKKyAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHkgJHtlLm1vdGlvbkR1cmF0aW9uRmFzdH0gJHtlLm1vdGlvbkVhc2VJbk91dH0sCisgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm0gJHtlLm1vdGlvbkR1cmF0aW9uRmFzdH0gJHtlLm1vdGlvbkVhc2VJbk91dH0gIWltcG9ydGFudGAsW2AmJHtyfS1hcHBlYXIsICYke3J9LWVudGVyYF06e3RyYW5zZm9ybToidHJhbnNsYXRlWSgtNXB4KSIsb3BhY2l0eTowLCImLWFjdGl2ZSI6e3RyYW5zZm9ybToidHJhbnNsYXRlWSgwKSIsb3BhY2l0eToxfX0sW2AmJHtyfS1sZWF2ZS1hY3RpdmVgXTp7dHJhbnNmb3JtOiJ0cmFuc2xhdGVZKC01cHgpIn19fX19O2NvbnN0IGF0PWU9Pih7bGVnZW5kOntkaXNwbGF5OiJibG9jayIsd2lkdGg6IjEwMCUiLG1hcmdpbkJvdHRvbTplLm1hcmdpbkxHLHBhZGRpbmc6MCxjb2xvcjplLmNvbG9yVGV4dERlc2NyaXB0aW9uLGZvbnRTaXplOmUuZm9udFNpemVMRyxsaW5lSGVpZ2h0OiJpbmhlcml0Iixib3JkZXI6MCxib3JkZXJCb3R0b206YCR7KDAsXy5iZikoZS5saW5lV2lkdGgpfSAke2UubGluZVR5cGV9ICR7ZS5jb2xvckJvcmRlcn1gfSwnaW5wdXRbdHlwZT0ic2VhcmNoIl0nOntib3hTaXppbmc6ImJvcmRlci1ib3gifSwnaW5wdXRbdHlwZT0icmFkaW8iXSwgaW5wdXRbdHlwZT0iY2hlY2tib3giXSc6e2xpbmVIZWlnaHQ6Im5vcm1hbCJ9LCdpbnB1dFt0eXBlPSJmaWxlIl0nOntkaXNwbGF5OiJibG9jayJ9LCdpbnB1dFt0eXBlPSJyYW5nZSJdJzp7ZGlzcGxheToiYmxvY2siLHdpZHRoOiIxMDAlIn0sInNlbGVjdFttdWx0aXBsZV0sIHNlbGVjdFtzaXplXSI6e2hlaWdodDoiYXV0byJ9LCJpbnB1dFt0eXBlPSdmaWxlJ106Zm9jdXMsXG4gIGlucHV0W3R5cGU9J3JhZGlvJ106Zm9jdXMsXG4gIGlucHV0W3R5cGU9J2NoZWNrYm94J106Zm9jdXMiOntvdXRsaW5lOjAsYm94U2hhZG93OmAwIDAgMCAkeygwLF8uYmYpKGUuY29udHJvbE91dGxpbmVXaWR0aCl9ICR7ZS5jb250cm9sT3V0bGluZX1gfSxvdXRwdXQ6e2Rpc3BsYXk6ImJsb2NrIixwYWRkaW5nVG9wOjE1LGNvbG9yOmUuY29sb3JUZXh0LGZvbnRTaXplOmUuZm9udFNpemUsbGluZUhlaWdodDplLmxpbmVIZWlnaHR9fSksTWU9KGUsdCk9Pntjb25zdHtmb3JtSXRlbUNsczpufT1lO3JldHVybntbbl06e1tgJHtufS1sYWJlbCA+IGxhYmVsYF06e2hlaWdodDp0fSxbYCR7bn0tY29udHJvbC1pbnB1dGBdOnttaW5IZWlnaHQ6dH19fX0saXQ9ZT0+e2NvbnN0e2NvbXBvbmVudENsczp0fT1lO3JldHVybntbZS5jb21wb25lbnRDbHNdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCgwLE9lLldmKShlKSksYXQoZSkpLHtbYCR7dH0tdGV4dGBdOntkaXNwbGF5OiJpbmxpbmUtYmxvY2siLHBhZGRpbmdJbmxpbmVFbmQ6ZS5wYWRkaW5nU019LCImLXNtYWxsIjpPYmplY3QuYXNzaWduKHt9LE1lKGUsZS5jb250cm9sSGVpZ2h0U00pKSwiJi1sYXJnZSI6T2JqZWN0LmFzc2lnbih7fSxNZShlLGUuY29udHJvbEhlaWdodExHKSl9KX19LHN0PWU9Pntjb25zdHtmb3JtSXRlbUNsczp0LGljb25DbHM6bixjb21wb25lbnRDbHM6cixyb290UHJlZml4Q2xzOm8sYW50Q2xzOmEsbGFiZWxSZXF1aXJlZE1hcmtDb2xvcjppLGxhYmVsQ29sb3I6cyxsYWJlbEZvbnRTaXplOmQsbGFiZWxIZWlnaHQ6ZyxsYWJlbENvbG9uTWFyZ2luSW5saW5lU3RhcnQ6UyxsYWJlbENvbG9uTWFyZ2luSW5saW5lRW5kOmgsaXRlbU1hcmdpbkJvdHRvbTpGfT1lO3JldHVybntbdF06T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCgwLE9lLldmKShlKSkse21hcmdpbkJvdHRvbTpGLHZlcnRpY2FsQWxpZ246InRvcCIsIiYtd2l0aC1oZWxwIjp7dHJhbnNpdGlvbjoibm9uZSJ9LFtgJi1oaWRkZW4sCisgICAgICAgICYtaGlkZGVuJHthfS1yb3dgXTp7ZGlzcGxheToibm9uZSJ9LCImLWhhcy13YXJuaW5nIjp7W2Ake3R9LXNwbGl0YF06e2NvbG9yOmUuY29sb3JFcnJvcn19LCImLWhhcy1lcnJvciI6e1tgJHt0fS1zcGxpdGBdOntjb2xvcjplLmNvbG9yV2FybmluZ319LFtgJHt0fS1sYWJlbGBdOntmbGV4R3JvdzowLG92ZXJmbG93OiJoaWRkZW4iLHdoaXRlU3BhY2U6Im5vd3JhcCIsdGV4dEFsaWduOiJlbmQiLHZlcnRpY2FsQWxpZ246Im1pZGRsZSIsIiYtbGVmdCI6e3RleHRBbGlnbjoic3RhcnQifSwiJi13cmFwIjp7b3ZlcmZsb3c6InVuc2V0IixsaW5lSGVpZ2h0OmUubGluZUhlaWdodCx3aGl0ZVNwYWNlOiJ1bnNldCJ9LCI+IGxhYmVsIjp7cG9zaXRpb246InJlbGF0aXZlIixkaXNwbGF5OiJpbmxpbmUtZmxleCIsYWxpZ25JdGVtczoiY2VudGVyIixtYXhXaWR0aDoiMTAwJSIsaGVpZ2h0OmcsY29sb3I6cyxmb250U2l6ZTpkLFtgPiAke259YF06e2ZvbnRTaXplOmUuZm9udFNpemUsdmVydGljYWxBbGlnbjoidG9wIn0sW2AmJHt0fS1yZXF1aXJlZDpub3QoJHt0fS1yZXF1aXJlZC1tYXJrLW9wdGlvbmFsKTo6YmVmb3JlYF06e2Rpc3BsYXk6ImlubGluZS1ibG9jayIsbWFyZ2luSW5saW5lRW5kOmUubWFyZ2luWFhTLGNvbG9yOmksZm9udFNpemU6ZS5mb250U2l6ZSxmb250RmFtaWx5OiJTaW1TdW4sIHNhbnMtc2VyaWYiLGxpbmVIZWlnaHQ6MSxjb250ZW50OiciKiInLFtgJHtyfS1oaWRlLXJlcXVpcmVkLW1hcmsgJmBdOntkaXNwbGF5OiJub25lIn19LFtgJHt0fS1vcHRpb25hbGBdOntkaXNwbGF5OiJpbmxpbmUtYmxvY2siLG1hcmdpbklubGluZVN0YXJ0OmUubWFyZ2luWFhTLGNvbG9yOmUuY29sb3JUZXh0RGVzY3JpcHRpb24sW2Ake3J9LWhpZGUtcmVxdWlyZWQtbWFyayAmYF06e2Rpc3BsYXk6Im5vbmUifX0sW2Ake3R9LXRvb2x0aXBgXTp7Y29sb3I6ZS5jb2xvclRleHREZXNjcmlwdGlvbixjdXJzb3I6ImhlbHAiLHdyaXRpbmdNb2RlOiJob3Jpem9udGFsLXRiIixtYXJnaW5JbmxpbmVTdGFydDplLm1hcmdpblhYU30sIiY6OmFmdGVyIjp7Y29udGVudDonIjoiJyxwb3NpdGlvbjoicmVsYXRpdmUiLG1hcmdpbkJsb2NrOjAsbWFyZ2luSW5saW5lU3RhcnQ6UyxtYXJnaW5JbmxpbmVFbmQ6aH0sW2AmJHt0fS1uby1jb2xvbjo6YWZ0ZXJgXTp7Y29udGVudDonIlxcYTAiJ319fSxbYCR7dH0tY29udHJvbGBdOnsiLS1hbnQtZGlzcGxheSI6ImZsZXgiLGZsZXhEaXJlY3Rpb246ImNvbHVtbiIsZmxleEdyb3c6MSxbYCY6Zmlyc3QtY2hpbGQ6bm90KFtjbGFzc149Iicke299LWNvbC0nIl0pOm5vdChbY2xhc3MqPSInICR7b30tY29sLSciXSlgXTp7d2lkdGg6IjEwMCUifSwiJi1pbnB1dCI6e3Bvc2l0aW9uOiJyZWxhdGl2ZSIsZGlzcGxheToiZmxleCIsYWxpZ25JdGVtczoiY2VudGVyIixtaW5IZWlnaHQ6ZS5jb250cm9sSGVpZ2h0LCImLWNvbnRlbnQiOntmbGV4OiJhdXRvIixtYXhXaWR0aDoiMTAwJSJ9fX0sW3RdOnsiJi1hZGRpdGlvbmFsIjp7ZGlzcGxheToiZmxleCIsZmxleERpcmVjdGlvbjoiY29sdW1uIn0sIiYtZXhwbGFpbiwgJi1leHRyYSI6e2NsZWFyOiJib3RoIixjb2xvcjplLmNvbG9yVGV4dERlc2NyaXB0aW9uLGZvbnRTaXplOmUuZm9udFNpemUsbGluZUhlaWdodDplLmxpbmVIZWlnaHR9LCImLWV4cGxhaW4tY29ubmVjdGVkIjp7d2lkdGg6IjEwMCUifSwiJi1leHRyYSI6e21pbkhlaWdodDplLmNvbnRyb2xIZWlnaHRTTSx0cmFuc2l0aW9uOmBjb2xvciAke2UubW90aW9uRHVyYXRpb25NaWR9ICR7ZS5tb3Rpb25FYXNlT3V0fWB9LCImLWV4cGxhaW4iOnsiJi1lcnJvciI6e2NvbG9yOmUuY29sb3JFcnJvcn0sIiYtd2FybmluZyI6e2NvbG9yOmUuY29sb3JXYXJuaW5nfX19LFtgJi13aXRoLWhlbHAgJHt0fS1leHBsYWluYF06e2hlaWdodDoiYXV0byIsb3BhY2l0eToxfSxbYCR7dH0tZmVlZGJhY2staWNvbmBdOntmb250U2l6ZTplLmZvbnRTaXplLHRleHRBbGlnbjoiY2VudGVyIix2aXNpYmlsaXR5OiJ2aXNpYmxlIixhbmltYXRpb25OYW1lOkZlLmtyLGFuaW1hdGlvbkR1cmF0aW9uOmUubW90aW9uRHVyYXRpb25NaWQsYW5pbWF0aW9uVGltaW5nRnVuY3Rpb246ZS5tb3Rpb25FYXNlT3V0QmFjayxwb2ludGVyRXZlbnRzOiJub25lIiwiJi1zdWNjZXNzIjp7Y29sb3I6ZS5jb2xvclN1Y2Nlc3N9LCImLWVycm9yIjp7Y29sb3I6ZS5jb2xvckVycm9yfSwiJi13YXJuaW5nIjp7Y29sb3I6ZS5jb2xvcldhcm5pbmd9LCImLXZhbGlkYXRpbmciOntjb2xvcjplLmNvbG9yUHJpbWFyeX19fSl9fSxqZT0oZSx0KT0+e2NvbnN0e2Zvcm1JdGVtQ2xzOm59PWU7cmV0dXJue1tgJHt0fS1ob3Jpem9udGFsYF06e1tgJHtufS1sYWJlbGBdOntmbGV4R3JvdzowfSxbYCR7bn0tY29udHJvbGBdOntmbGV4OiIxIDEgMCIsbWluV2lkdGg6MH0sW2Ake259LWxhYmVsW2NsYXNzJD0nLTI0J10sICR7bn0tbGFiZWxbY2xhc3MqPSctMjQgJ11gXTp7W2AmICsgJHtufS1jb250cm9sYF06e21pbldpZHRoOiJ1bnNldCJ9fX19fSxjdD1lPT57Y29uc3R7Y29tcG9uZW50Q2xzOnQsZm9ybUl0ZW1DbHM6bixpbmxpbmVJdGVtTWFyZ2luQm90dG9tOnJ9PWU7cmV0dXJue1tgJHt0fS1pbmxpbmVgXTp7ZGlzcGxheToiZmxleCIsZmxleFdyYXA6IndyYXAiLFtuXTp7ZmxleDoibm9uZSIsbWFyZ2luSW5saW5lRW5kOmUubWFyZ2luLG1hcmdpbkJvdHRvbTpyLCImLXJvdyI6e2ZsZXhXcmFwOiJub3dyYXAifSxbYD4gJHtufS1sYWJlbCwKKyAgICAgICAgPiAke259LWNvbnRyb2xgXTp7ZGlzcGxheToiaW5saW5lLWJsb2NrIix2ZXJ0aWNhbEFsaWduOiJ0b3AifSxbYD4gJHtufS1sYWJlbGBdOntmbGV4OiJub25lIn0sW2Ake3R9LXRleHRgXTp7ZGlzcGxheToiaW5saW5lLWJsb2NrIn0sW2Ake259LWhhcy1mZWVkYmFja2BdOntkaXNwbGF5OiJpbmxpbmUtYmxvY2sifX19fX0sSj1lPT4oe3BhZGRpbmc6ZS52ZXJ0aWNhbExhYmVsUGFkZGluZyxtYXJnaW46ZS52ZXJ0aWNhbExhYmVsTWFyZ2luLHdoaXRlU3BhY2U6ImluaXRpYWwiLHRleHRBbGlnbjoic3RhcnQiLCI+IGxhYmVsIjp7bWFyZ2luOjAsIiY6OmFmdGVyIjp7dmlzaWJpbGl0eToiaGlkZGVuIn19fSksTmU9ZT0+e2NvbnN0e2NvbXBvbmVudENsczp0LGZvcm1JdGVtQ2xzOm4scm9vdFByZWZpeENsczpyfT1lO3JldHVybntbYCR7bn0gJHtufS1sYWJlbGBdOkooZSksW2Ake3R9Om5vdCgke3R9LWlubGluZSlgXTp7W25dOntmbGV4V3JhcDoid3JhcCIsW2Ake259LWxhYmVsLCAke259LWNvbnRyb2xgXTp7W2AmOm5vdChbY2xhc3MqPSIgJHtyfS1jb2wteHMiXSlgXTp7ZmxleDoiMCAwIDEwMCUiLG1heFdpZHRoOiIxMDAlIn19fX19fSxkdD1lPT57Y29uc3R7Y29tcG9uZW50Q2xzOnQsZm9ybUl0ZW1DbHM6bixhbnRDbHM6cn09ZTtyZXR1cm57W2Ake3R9LXZlcnRpY2FsYF06e1tgJHtufTpub3QoJHtufS1ob3Jpem9udGFsKWBdOntbYCR7bn0tcm93YF06e2ZsZXhEaXJlY3Rpb246ImNvbHVtbiJ9LFtgJHtufS1sYWJlbCA+IGxhYmVsYF06e2hlaWdodDoiYXV0byJ9LFtgJHtufS1jb250cm9sYF06e3dpZHRoOiIxMDAlIn0sW2Ake259LWxhYmVsLAorICAgICAgICAke3J9LWNvbC0yNCR7bn0tbGFiZWwsCisgICAgICAgICR7cn0tY29sLXhsLTI0JHtufS1sYWJlbGBdOkooZSl9fSxbYEBtZWRpYSAobWF4LXdpZHRoOiAkeygwLF8uYmYpKGUuc2NyZWVuWFNNYXgpfSlgXTpbTmUoZSkse1t0XTp7W2Ake259Om5vdCgke259LWhvcml6b250YWwpYF06e1tgJHtyfS1jb2wteHMtMjQke259LWxhYmVsYF06SihlKX19fV0sW2BAbWVkaWEgKG1heC13aWR0aDogJHsoMCxfLmJmKShlLnNjcmVlblNNTWF4KX0pYF06e1t0XTp7W2Ake259Om5vdCgke259LWhvcml6b250YWwpYF06e1tgJHtyfS1jb2wtc20tMjQke259LWxhYmVsYF06SihlKX19fSxbYEBtZWRpYSAobWF4LXdpZHRoOiAkeygwLF8uYmYpKGUuc2NyZWVuTURNYXgpfSlgXTp7W3RdOntbYCR7bn06bm90KCR7bn0taG9yaXpvbnRhbClgXTp7W2Ake3J9LWNvbC1tZC0yNCR7bn0tbGFiZWxgXTpKKGUpfX19LFtgQG1lZGlhIChtYXgtd2lkdGg6ICR7KDAsXy5iZikoZS5zY3JlZW5MR01heCl9KWBdOntbdF06e1tgJHtufTpub3QoJHtufS1ob3Jpem9udGFsKWBdOntbYCR7cn0tY29sLWxnLTI0JHtufS1sYWJlbGBdOkooZSl9fX19fSx1dD1lPT57Y29uc3R7Zm9ybUl0ZW1DbHM6dCxhbnRDbHM6bn09ZTtyZXR1cm57W2Ake3R9LXZlcnRpY2FsYF06e1tgJHt0fS1yb3dgXTp7ZmxleERpcmVjdGlvbjoiY29sdW1uIn0sW2Ake3R9LWxhYmVsID4gbGFiZWxgXTp7aGVpZ2h0OiJhdXRvIn0sW2Ake3R9LWNvbnRyb2xgXTp7d2lkdGg6IjEwMCUifX0sW2Ake3R9LXZlcnRpY2FsICR7dH0tbGFiZWwsCisgICAgICAke259LWNvbC0yNCR7dH0tbGFiZWwsCisgICAgICAke259LWNvbC14bC0yNCR7dH0tbGFiZWxgXTpKKGUpLFtgQG1lZGlhIChtYXgtd2lkdGg6ICR7KDAsXy5iZikoZS5zY3JlZW5YU01heCl9KWBdOltOZShlKSx7W3RdOntbYCR7bn0tY29sLXhzLTI0JHt0fS1sYWJlbGBdOkooZSl9fV0sW2BAbWVkaWEgKG1heC13aWR0aDogJHsoMCxfLmJmKShlLnNjcmVlblNNTWF4KX0pYF06e1t0XTp7W2Ake259LWNvbC1zbS0yNCR7dH0tbGFiZWxgXTpKKGUpfX0sW2BAbWVkaWEgKG1heC13aWR0aDogJHsoMCxfLmJmKShlLnNjcmVlbk1ETWF4KX0pYF06e1t0XTp7W2Ake259LWNvbC1tZC0yNCR7dH0tbGFiZWxgXTpKKGUpfX0sW2BAbWVkaWEgKG1heC13aWR0aDogJHsoMCxfLmJmKShlLnNjcmVlbkxHTWF4KX0pYF06e1t0XTp7W2Ake259LWNvbC1sZy0yNCR7dH0tbGFiZWxgXTpKKGUpfX19fSxtdD1lPT4oe2xhYmVsUmVxdWlyZWRNYXJrQ29sb3I6ZS5jb2xvckVycm9yLGxhYmVsQ29sb3I6ZS5jb2xvclRleHRIZWFkaW5nLGxhYmVsRm9udFNpemU6ZS5mb250U2l6ZSxsYWJlbEhlaWdodDplLmNvbnRyb2xIZWlnaHQsbGFiZWxDb2xvbk1hcmdpbklubGluZVN0YXJ0OmUubWFyZ2luWFhTLzIsbGFiZWxDb2xvbk1hcmdpbklubGluZUVuZDplLm1hcmdpblhTLGl0ZW1NYXJnaW5Cb3R0b206ZS5tYXJnaW5MRyx2ZXJ0aWNhbExhYmVsUGFkZGluZzpgMCAwICR7ZS5wYWRkaW5nWFN9cHhgLHZlcnRpY2FsTGFiZWxNYXJnaW46MCxpbmxpbmVJdGVtTWFyZ2luQm90dG9tOjB9KSxQZT0oZSx0KT0+KDAsb3QuSVgpKGUse2Zvcm1JdGVtQ2xzOmAke2UuY29tcG9uZW50Q2xzfS1pdGVtYCxyb290UHJlZml4Q2xzOnR9KTt2YXIgaGU9KDAsd2UuSSQpKCJGb3JtIiwoZSx0KT0+e2xldHtyb290UHJlZml4Q2xzOm59PXQ7Y29uc3Qgcj1QZShlLG4pO3JldHVybltpdChyKSxzdChyKSxsdChyKSxqZShyLHIuY29tcG9uZW50Q2xzKSxqZShyLHIuZm9ybUl0ZW1DbHMpLGN0KHIpLGR0KHIpLHV0KHIpLCgwLHJ0LlopKHIpLEZlLmtyXX0sbXQse29yZGVyOi0xZTN9KTtjb25zdCBSZT1bXTtmdW5jdGlvbiBiZShlLHQsbil7bGV0IHI9YXJndW1lbnRzLmxlbmd0aD4zJiZhcmd1bWVudHNbM10hPT12b2lkIDA/YXJndW1lbnRzWzNdOjA7cmV0dXJue2tleTp0eXBlb2YgZT09InN0cmluZyI/ZTpgJHt0fS0ke3J9YCxlcnJvcjplLGVycm9yU3RhdHVzOm59fXZhciBMZT1lPT57bGV0e2hlbHA6dCxoZWxwU3RhdHVzOm4sZXJyb3JzOnI9UmUsd2FybmluZ3M6bz1SZSxjbGFzc05hbWU6YSxmaWVsZElkOmksb25WaXNpYmxlQ2hhbmdlZDpzfT1lO2NvbnN0e3ByZWZpeENsczpkfT1sLnVzZUNvbnRleHQoTC5SayksZz1gJHtkfS1pdGVtLWV4cGxhaW5gLFM9KDAscGUuWikoZCksW2gsRixaXT1oZShkLFMpLHY9bC51c2VNZW1vKCgpPT4oMCxFZS5aKShkKSxbZF0pLHg9dWUocikseT11ZShvKSxDPWwudXNlTWVtbygoKT0+dCE9bnVsbD9bYmUodCwiaGVscCIsbildOltdLmNvbmNhdCgoMCxRLlopKHgubWFwKChwLGYpPT5iZShwLCJlcnJvciIsImVycm9yIixmKSkpLCgwLFEuWikoeS5tYXAoKHAsZik9PmJlKHAsIndhcm5pbmciLCJ3YXJuaW5nIixmKSkpKSxbdCxuLHgseV0pLFY9bC51c2VNZW1vKCgpPT57Y29uc3QgcD17fTtyZXR1cm4gQy5mb3JFYWNoKGY9PntsZXR7a2V5OiR9PWY7cFskXT0ocFskXXx8MCkrMX0pLEMubWFwKChmLCQpPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZikse2tleTpwW2Yua2V5XT4xP2Ake2Yua2V5fS1mYWxsYmFjay0keyR9YDpmLmtleX0pKX0sW0NdKSxjPXt9O3JldHVybiBpJiYoYy5pZD1gJHtpfV9oZWxwYCksaChsLmNyZWF0ZUVsZW1lbnQoU2UuWlAse21vdGlvbkRlYWRsaW5lOnYubW90aW9uRGVhZGxpbmUsbW90aW9uTmFtZTpgJHtkfS1zaG93LWhlbHBgLHZpc2libGU6ISFWLmxlbmd0aCxvblZpc2libGVDaGFuZ2VkOnN9LHA9Pntjb25zdHtjbGFzc05hbWU6ZixzdHlsZTokfT1wO3JldHVybiBsLmNyZWF0ZUVsZW1lbnQoImRpdiIsT2JqZWN0LmFzc2lnbih7fSxjLHtjbGFzc05hbWU6bmUoKShnLGYsWixTLGEsRiksc3R5bGU6JH0pLGwuY3JlYXRlRWxlbWVudChTZS5WNCxPYmplY3QuYXNzaWduKHtrZXlzOlZ9LCgwLEVlLlopKGQpLHttb3Rpb25OYW1lOmAke2R9LXNob3ctaGVscC1pdGVtYCxjb21wb25lbnQ6ITF9KSxUPT57Y29uc3R7a2V5OkUsZXJyb3I6TixlcnJvclN0YXR1czpQLGNsYXNzTmFtZTpXLHN0eWxlOkJ9PVQ7cmV0dXJuIGwuY3JlYXRlRWxlbWVudCgiZGl2Iix7a2V5OkUsY2xhc3NOYW1lOm5lKCkoVyx7W2Ake2d9LSR7UH1gXTpQfSksc3R5bGU6Qn0sTil9KSl9KSl9LGFlPW0oODg2OTIpLHZlPW0oNTMxMjQpLFZlPW0oOTg4NjYpLGZ0PW0oOTg2NzUpLGd0PW0oOTc2NDcpLHB0PW0oMzQyMDMpO2NvbnN0IFRlPWU9PnR5cGVvZiBlPT0ib2JqZWN0IiYmZSE9bnVsbCYmZS5ub2RlVHlwZT09PTEsSGU9KGUsdCk9PighdHx8ZSE9PSJoaWRkZW4iKSYmZSE9PSJ2aXNpYmxlIiYmZSE9PSJjbGlwIixtZT0oZSx0KT0+e2lmKGUuY2xpZW50SGVpZ2h0PGUuc2Nyb2xsSGVpZ2h0fHxlLmNsaWVudFdpZHRoPGUuc2Nyb2xsV2lkdGgpe2NvbnN0IG49Z2V0Q29tcHV0ZWRTdHlsZShlLG51bGwpO3JldHVybiBIZShuLm92ZXJmbG93WSx0KXx8SGUobi5vdmVyZmxvd1gsdCl8fChyPT57Y29uc3Qgbz0oYT0+e2lmKCFhLm93bmVyRG9jdW1lbnR8fCFhLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcpcmV0dXJuIG51bGw7dHJ5e3JldHVybiBhLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcuZnJhbWVFbGVtZW50fWNhdGNoKGkpe3JldHVybiBudWxsfX0pKHIpO3JldHVybiEhbyYmKG8uY2xpZW50SGVpZ2h0PHIuc2Nyb2xsSGVpZ2h0fHxvLmNsaWVudFdpZHRoPHIuc2Nyb2xsV2lkdGgpfSkoZSl9cmV0dXJuITF9LGZlPShlLHQsbixyLG8sYSxpLHMpPT5hPGUmJmk+dHx8YT5lJiZpPHQ/MDphPD1lJiZzPD1ufHxpPj10JiZzPj1uP2EtZS1yOmk+dCYmczxufHxhPGUmJnM+bj9pLXQrbzowLGh0PWU9Pntjb25zdCB0PWUucGFyZW50RWxlbWVudDtyZXR1cm4gdD09bnVsbD9lLmdldFJvb3ROb2RlKCkuaG9zdHx8bnVsbDp0fSxaZT0oZSx0KT0+e3ZhciBuLHIsbyxhO2lmKHR5cGVvZiBkb2N1bWVudD09InVuZGVmaW5lZCIpcmV0dXJuW107Y29uc3R7c2Nyb2xsTW9kZTppLGJsb2NrOnMsaW5saW5lOmQsYm91bmRhcnk6Zyxza2lwT3ZlcmZsb3dIaWRkZW5FbGVtZW50czpTfT10LGg9dHlwZW9mIGc9PSJmdW5jdGlvbiI/ZzpEPT5EIT09ZztpZighVGUoZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCB0YXJnZXQiKTtjb25zdCBGPWRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnR8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxaPVtdO2xldCB2PWU7Zm9yKDtUZSh2KSYmaCh2KTspe2lmKHY9aHQodiksdj09PUYpe1oucHVzaCh2KTticmVha312IT1udWxsJiZ2PT09ZG9jdW1lbnQuYm9keSYmbWUodikmJiFtZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpfHx2IT1udWxsJiZtZSh2LFMpJiZaLnB1c2godil9Y29uc3QgeD0ocj0obj13aW5kb3cudmlzdWFsVmlld3BvcnQpPT1udWxsP3ZvaWQgMDpuLndpZHRoKSE9bnVsbD9yOmlubmVyV2lkdGgseT0oYT0obz13aW5kb3cudmlzdWFsVmlld3BvcnQpPT1udWxsP3ZvaWQgMDpvLmhlaWdodCkhPW51bGw/YTppbm5lckhlaWdodCx7c2Nyb2xsWDpDLHNjcm9sbFk6Vn09d2luZG93LHtoZWlnaHQ6Yyx3aWR0aDpwLHRvcDpmLHJpZ2h0OiQsYm90dG9tOlQsbGVmdDpFfT1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHt0b3A6TixyaWdodDpQLGJvdHRvbTpXLGxlZnQ6Qn09KEQ9Pntjb25zdCB1PXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKEQpO3JldHVybnt0b3A6cGFyc2VGbG9hdCh1LnNjcm9sbE1hcmdpblRvcCl8fDAscmlnaHQ6cGFyc2VGbG9hdCh1LnNjcm9sbE1hcmdpblJpZ2h0KXx8MCxib3R0b206cGFyc2VGbG9hdCh1LnNjcm9sbE1hcmdpbkJvdHRvbSl8fDAsbGVmdDpwYXJzZUZsb2F0KHUuc2Nyb2xsTWFyZ2luTGVmdCl8fDB9fSkoZSk7bGV0IFI9cz09PSJzdGFydCJ8fHM9PT0ibmVhcmVzdCI/Zi1OOnM9PT0iZW5kIj9UK1c6ZitjLzItTitXLHc9ZD09PSJjZW50ZXIiP0UrcC8yLUIrUDpkPT09ImVuZCI/JCtQOkUtQjtjb25zdCB6PVtdO2ZvcihsZXQgRD0wO0Q8Wi5sZW5ndGg7RCsrKXtjb25zdCB1PVpbRF0se2hlaWdodDpYLHdpZHRoOmIsdG9wOkcscmlnaHQ6ayxib3R0b206aWUsbGVmdDpxfT11LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2lmKGk9PT0iaWYtbmVlZGVkIiYmZj49MCYmRT49MCYmVDw9eSYmJDw9eCYmKHU9PT1GJiYhbWUodSl8fGY+PUcmJlQ8PWllJiZFPj1xJiYkPD1rKSlyZXR1cm4gejtjb25zdCBlZT1nZXRDb21wdXRlZFN0eWxlKHUpLEs9cGFyc2VJbnQoZWUuYm9yZGVyTGVmdFdpZHRoLDEwKSx0ZT1wYXJzZUludChlZS5ib3JkZXJUb3BXaWR0aCwxMCksVT1wYXJzZUludChlZS5ib3JkZXJSaWdodFdpZHRoLDEwKSxJPXBhcnNlSW50KGVlLmJvcmRlckJvdHRvbVdpZHRoLDEwKTtsZXQgTT0wLE89MDtjb25zdCBqPSJvZmZzZXRXaWR0aCJpbiB1P3Uub2Zmc2V0V2lkdGgtdS5jbGllbnRXaWR0aC1LLVU6MCxBPSJvZmZzZXRIZWlnaHQiaW4gdT91Lm9mZnNldEhlaWdodC11LmNsaWVudEhlaWdodC10ZS1JOjAsWT0ib2Zmc2V0V2lkdGgiaW4gdT91Lm9mZnNldFdpZHRoPT09MD8wOmIvdS5vZmZzZXRXaWR0aDowLG9lPSJvZmZzZXRIZWlnaHQiaW4gdT91Lm9mZnNldEhlaWdodD09PTA/MDpYL3Uub2Zmc2V0SGVpZ2h0OjA7aWYoRj09PXUpTT1zPT09InN0YXJ0Ij9SOnM9PT0iZW5kIj9SLXk6cz09PSJuZWFyZXN0Ij9mZShWLFYreSx5LHRlLEksVitSLFYrUitjLGMpOlIteS8yLE89ZD09PSJzdGFydCI/dzpkPT09ImNlbnRlciI/dy14LzI6ZD09PSJlbmQiP3cteDpmZShDLEMreCx4LEssVSxDK3csQyt3K3AscCksTT1NYXRoLm1heCgwLE0rViksTz1NYXRoLm1heCgwLE8rQyk7ZWxzZXtNPXM9PT0ic3RhcnQiP1ItRy10ZTpzPT09ImVuZCI/Ui1pZStJK0E6cz09PSJuZWFyZXN0Ij9mZShHLGllLFgsdGUsSStBLFIsUitjLGMpOlItKEcrWC8yKStBLzIsTz1kPT09InN0YXJ0Ij93LXEtSzpkPT09ImNlbnRlciI/dy0ocStiLzIpK2ovMjpkPT09ImVuZCI/dy1rK1UrajpmZShxLGssYixLLFUraix3LHcrcCxwKTtjb25zdHtzY3JvbGxMZWZ0OmxlLHNjcm9sbFRvcDpIfT11O009b2U9PT0wPzA6TWF0aC5tYXgoMCxNYXRoLm1pbihIK00vb2UsdS5zY3JvbGxIZWlnaHQtWC9vZStBKSksTz1ZPT09MD8wOk1hdGgubWF4KDAsTWF0aC5taW4obGUrTy9ZLHUuc2Nyb2xsV2lkdGgtYi9ZK2opKSxSKz1ILU0sdys9bGUtT316LnB1c2goe2VsOnUsdG9wOk0sbGVmdDpPfSl9cmV0dXJuIHp9LGJ0PWU9PmU9PT0hMT97YmxvY2s6ImVuZCIsaW5saW5lOiJuZWFyZXN0In06KHQ9PnQ9PT1PYmplY3QodCkmJk9iamVjdC5rZXlzKHQpLmxlbmd0aCE9PTApKGUpP2U6e2Jsb2NrOiJzdGFydCIsaW5saW5lOiJuZWFyZXN0In07ZnVuY3Rpb24gdnQoZSx0KXtpZighZS5pc0Nvbm5lY3RlZHx8IShvPT57bGV0IGE9bztmb3IoO2EmJmEucGFyZW50Tm9kZTspe2lmKGEucGFyZW50Tm9kZT09PWRvY3VtZW50KXJldHVybiEwO2E9YS5wYXJlbnROb2RlIGluc3RhbmNlb2YgU2hhZG93Um9vdD9hLnBhcmVudE5vZGUuaG9zdDphLnBhcmVudE5vZGV9cmV0dXJuITF9KShlKSlyZXR1cm47Y29uc3Qgbj0obz0+e2NvbnN0IGE9d2luZG93LmdldENvbXB1dGVkU3R5bGUobyk7cmV0dXJue3RvcDpwYXJzZUZsb2F0KGEuc2Nyb2xsTWFyZ2luVG9wKXx8MCxyaWdodDpwYXJzZUZsb2F0KGEuc2Nyb2xsTWFyZ2luUmlnaHQpfHwwLGJvdHRvbTpwYXJzZUZsb2F0KGEuc2Nyb2xsTWFyZ2luQm90dG9tKXx8MCxsZWZ0OnBhcnNlRmxvYXQoYS5zY3JvbGxNYXJnaW5MZWZ0KXx8MH19KShlKTtpZigobz0+dHlwZW9mIG89PSJvYmplY3QiJiZ0eXBlb2Ygby5iZWhhdmlvcj09ImZ1bmN0aW9uIikodCkpcmV0dXJuIHQuYmVoYXZpb3IoWmUoZSx0KSk7Y29uc3Qgcj10eXBlb2YgdD09ImJvb2xlYW4ifHx0PT1udWxsP3ZvaWQgMDp0LmJlaGF2aW9yO2Zvcihjb25zdHtlbDpvLHRvcDphLGxlZnQ6aX1vZiBaZShlLGJ0KHQpKSl7Y29uc3Qgcz1hLW4udG9wK24uYm90dG9tLGQ9aS1uLmxlZnQrbi5yaWdodDtvLnNjcm9sbCh7dG9wOnMsbGVmdDpkLGJlaGF2aW9yOnJ9KX19Y29uc3QgeXQ9WyJwYXJlbnROb2RlIl0sQ3Q9ImZvcm1faXRlbSI7ZnVuY3Rpb24gZGUoZSl7cmV0dXJuIGU9PT12b2lkIDB8fGU9PT0hMT9bXTpBcnJheS5pc0FycmF5KGUpP2U6W2VdfWZ1bmN0aW9uIFdlKGUsdCl7aWYoIWUubGVuZ3RoKXJldHVybjtjb25zdCBuPWUuam9pbigiXyIpO3JldHVybiB0P2Ake3R9XyR7bn1gOnl0LmluY2x1ZGVzKG4pP2Ake0N0fV8ke259YDpufWZ1bmN0aW9uIHplKGUsdCxuLHIsbyxhKXtsZXQgaT1yO3JldHVybiBhIT09dm9pZCAwP2k9YTpuLnZhbGlkYXRpbmc/aT0idmFsaWRhdGluZyI6ZS5sZW5ndGg/aT0iZXJyb3IiOnQubGVuZ3RoP2k9Indhcm5pbmciOihuLnRvdWNoZWR8fG8mJm4udmFsaWRhdGVkKSYmKGk9InN1Y2Nlc3MiKSxpfXZhciB4dD1mdW5jdGlvbihlLHQpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHIpJiZ0LmluZGV4T2Yocik8MCYmKG5bcl09ZVtyXSk7aWYoZSE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBvPTAscj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO288ci5sZW5ndGg7bysrKXQuaW5kZXhPZihyW29dKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxyW29dKSYmKG5bcltvXV09ZVtyW29dXSk7cmV0dXJuIG59O2Z1bmN0aW9uIERlKGUpe3JldHVybiBkZShlKS5qb2luKCJfIil9ZnVuY3Rpb24gQWUoZSx0KXtjb25zdCBuPXQuZ2V0RmllbGRJbnN0YW5jZShlKSxyPSgwLHB0LmJuKShuKTtpZihyKXJldHVybiByO2NvbnN0IG89V2UoZGUoZSksdC5fX0lOVEVSTkFMX18ubmFtZSk7aWYobylyZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobyl9ZnVuY3Rpb24gQmUoZSl7Y29uc3RbdF09KDAsYWUuY0kpKCksbj1sLnVzZVJlZih7fSkscj1sLnVzZU1lbW8oKCk9PmUhPW51bGw/ZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse19fSU5URVJOQUxfXzp7aXRlbVJlZjpvPT5hPT57Y29uc3QgaT1EZShvKTthP24uY3VycmVudFtpXT1hOmRlbGV0ZSBuLmN1cnJlbnRbaV19fSxzY3JvbGxUb0ZpZWxkOmZ1bmN0aW9uKG8pe2xldCBhPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTp7fTtjb25zdHtmb2N1czppfT1hLHM9eHQoYSxbImZvY3VzIl0pLGQ9QWUobyxyKTtkJiYodnQoZCxPYmplY3QuYXNzaWduKHtzY3JvbGxNb2RlOiJpZi1uZWVkZWQiLGJsb2NrOiJuZWFyZXN0In0scykpLGkmJnIuZm9jdXNGaWVsZChvKSl9LGZvY3VzRmllbGQ6bz0+e3ZhciBhLGk7Y29uc3Qgcz1yLmdldEZpZWxkSW5zdGFuY2Uobyk7dHlwZW9mKHM9PW51bGw/dm9pZCAwOnMuZm9jdXMpPT0iZnVuY3Rpb24iP3MuZm9jdXMoKTooaT0oYT1BZShvLHIpKT09PW51bGx8fGE9PT12b2lkIDA/dm9pZCAwOmEuZm9jdXMpPT09bnVsbHx8aT09PXZvaWQgMHx8aS5jYWxsKGEpfSxnZXRGaWVsZEluc3RhbmNlOm89Pntjb25zdCBhPURlKG8pO3JldHVybiBuLmN1cnJlbnRbYV19fSksW2UsdF0pO3JldHVybltyXX12YXIgJHQ9bSgzNzkyMCksSXQ9ZnVuY3Rpb24oZSx0KXt2YXIgbj17fTtmb3IodmFyIHIgaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxyKSYmdC5pbmRleE9mKHIpPDAmJihuW3JdPWVbcl0pO2lmKGUhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgbz0wLHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtvPHIubGVuZ3RoO28rKyl0LmluZGV4T2YocltvXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUscltvXSkmJihuW3Jbb11dPWVbcltvXV0pO3JldHVybiBufTtjb25zdCBTdD0oZSx0KT0+e2NvbnN0IG49bC51c2VDb250ZXh0KFZlLlopLHtnZXRQcmVmaXhDbHM6cixkaXJlY3Rpb246byxyZXF1aXJlZE1hcms6YSxjb2xvbjppLHNjcm9sbFRvRmlyc3RFcnJvcjpzLGNsYXNzTmFtZTpkLHN0eWxlOmd9PSgwLHZlLmRqKSgiZm9ybSIpLHtwcmVmaXhDbHM6UyxjbGFzc05hbWU6aCxyb290Q2xhc3NOYW1lOkYsc2l6ZTpaLGRpc2FibGVkOnY9bixmb3JtOngsY29sb246eSxsYWJlbEFsaWduOkMsbGFiZWxXcmFwOlYsbGFiZWxDb2w6Yyx3cmFwcGVyQ29sOnAsaGlkZVJlcXVpcmVkTWFyazpmLGxheW91dDokPSJob3Jpem9udGFsIixzY3JvbGxUb0ZpcnN0RXJyb3I6VCxyZXF1aXJlZE1hcms6RSxvbkZpbmlzaEZhaWxlZDpOLG5hbWU6UCxzdHlsZTpXLGZlZWRiYWNrSWNvbnM6Qix2YXJpYW50OlJ9PWUsdz1JdChlLFsicHJlZml4Q2xzIiwiY2xhc3NOYW1lIiwicm9vdENsYXNzTmFtZSIsInNpemUiLCJkaXNhYmxlZCIsImZvcm0iLCJjb2xvbiIsImxhYmVsQWxpZ24iLCJsYWJlbFdyYXAiLCJsYWJlbENvbCIsIndyYXBwZXJDb2wiLCJoaWRlUmVxdWlyZWRNYXJrIiwibGF5b3V0Iiwic2Nyb2xsVG9GaXJzdEVycm9yIiwicmVxdWlyZWRNYXJrIiwib25GaW5pc2hGYWlsZWQiLCJuYW1lIiwic3R5bGUiLCJmZWVkYmFja0ljb25zIiwidmFyaWFudCJdKSx6PSgwLGZ0LlopKFopLEQ9bC51c2VDb250ZXh0KCR0LlopLHU9bC51c2VNZW1vKCgpPT5FIT09dm9pZCAwP0U6Zj8hMTphIT09dm9pZCAwP2E6ITAsW2YsRSxhXSksWD15IT1udWxsP3k6aSxiPXIoImZvcm0iLFMpLEc9KDAscGUuWikoYiksW2ssaWUscV09aGUoYixHKSxlZT1uZSgpKGIsYCR7Yn0tJHskfWAse1tgJHtifS1oaWRlLXJlcXVpcmVkLW1hcmtgXTp1PT09ITEsW2Ake2J9LXJ0bGBdOm89PT0icnRsIixbYCR7Yn0tJHt6fWBdOnp9LHEsRyxpZSxkLGgsRiksW0tdPUJlKHgpLHtfX0lOVEVSTkFMX186dGV9PUs7dGUubmFtZT1QO2NvbnN0IFU9bC51c2VNZW1vKCgpPT4oe25hbWU6UCxsYWJlbEFsaWduOkMsbGFiZWxDb2w6YyxsYWJlbFdyYXA6Vix3cmFwcGVyQ29sOnAsdmVydGljYWw6JD09PSJ2ZXJ0aWNhbCIsY29sb246WCxyZXF1aXJlZE1hcms6dSxpdGVtUmVmOnRlLml0ZW1SZWYsZm9ybTpLLGZlZWRiYWNrSWNvbnM6Qn0pLFtQLEMsYyxwLCQsWCx1LEssQl0pLEk9bC51c2VSZWYobnVsbCk7bC51c2VJbXBlcmF0aXZlSGFuZGxlKHQsKCk9Pnt2YXIgajtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LEspLHtuYXRpdmVFbGVtZW50OihqPUkuY3VycmVudCk9PT1udWxsfHxqPT09dm9pZCAwP3ZvaWQgMDpqLm5hdGl2ZUVsZW1lbnR9KX0pO2NvbnN0IE09KGosQSk9PntpZihqKXtsZXQgWT17YmxvY2s6Im5lYXJlc3QifTt0eXBlb2Ygaj09Im9iamVjdCImJihZPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxZKSxqKSksSy5zY3JvbGxUb0ZpZWxkKEEsWSl9fSxPPWo9PntpZihOPT1udWxsfHxOKGopLGouZXJyb3JGaWVsZHMubGVuZ3RoKXtjb25zdCBBPWouZXJyb3JGaWVsZHNbMF0ubmFtZTtpZihUIT09dm9pZCAwKXtNKFQsQSk7cmV0dXJufXMhPT12b2lkIDAmJk0ocyxBKX19O3JldHVybiBrKGwuY3JlYXRlRWxlbWVudChMLnBnLlByb3ZpZGVyLHt2YWx1ZTpSfSxsLmNyZWF0ZUVsZW1lbnQoVmUubix7ZGlzYWJsZWQ6dn0sbC5jcmVhdGVFbGVtZW50KGd0LlouUHJvdmlkZXIse3ZhbHVlOnp9LGwuY3JlYXRlRWxlbWVudChMLlJWLHt2YWxpZGF0ZU1lc3NhZ2VzOkR9LGwuY3JlYXRlRWxlbWVudChMLnEzLlByb3ZpZGVyLHt2YWx1ZTpVfSxsLmNyZWF0ZUVsZW1lbnQoYWUuWlAsT2JqZWN0LmFzc2lnbih7aWQ6UH0sdyx7bmFtZTpQLG9uRmluaXNoRmFpbGVkOk8sZm9ybTpLLHJlZjpJLHN0eWxlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxnKSxXKSxjbGFzc05hbWU6ZWV9KSkpKSkpKSl9O3ZhciBFdD1sLmZvcndhcmRSZWYoU3QpLE90PW0oMzA0NzApLHllPW0oNDI1NTApLEZ0PW0oOTYxNTkpLHd0PW0oMjcyODgpLE10PW0oNTAzNDQpO2Z1bmN0aW9uIGp0KGUpe2lmKHR5cGVvZiBlPT0iZnVuY3Rpb24iKXJldHVybiBlO2NvbnN0IHQ9KDAsTXQuWikoZSk7cmV0dXJuIHQubGVuZ3RoPD0xP3RbMF06dH1jb25zdCBYZT0oKT0+e2NvbnN0e3N0YXR1czplLGVycm9yczp0PVtdLHdhcm5pbmdzOm49W119PWwudXNlQ29udGV4dChMLmFNKTtyZXR1cm57c3RhdHVzOmUsZXJyb3JzOnQsd2FybmluZ3M6bn19O1hlLkNvbnRleHQ9TC5hTTt2YXIgTnQ9WGUsR2U9bSg3NTE2NCk7ZnVuY3Rpb24gUHQoZSl7Y29uc3RbdCxuXT1sLnVzZVN0YXRlKGUpLHI9bC51c2VSZWYobnVsbCksbz1sLnVzZVJlZihbXSksYT1sLnVzZVJlZighMSk7bC51c2VFZmZlY3QoKCk9PihhLmN1cnJlbnQ9ITEsKCk9PnthLmN1cnJlbnQ9ITAsR2UuWi5jYW5jZWwoci5jdXJyZW50KSxyLmN1cnJlbnQ9bnVsbH0pLFtdKTtmdW5jdGlvbiBpKHMpe2EuY3VycmVudHx8KHIuY3VycmVudD09PW51bGwmJihvLmN1cnJlbnQ9W10sci5jdXJyZW50PSgwLEdlLlopKCgpPT57ci5jdXJyZW50PW51bGwsbihkPT57bGV0IGc9ZDtyZXR1cm4gby5jdXJyZW50LmZvckVhY2goUz0+e2c9UyhnKX0pLGd9KX0pKSxvLmN1cnJlbnQucHVzaChzKSl9cmV0dXJuW3QsaV19ZnVuY3Rpb24gUnQoKXtjb25zdHtpdGVtUmVmOmV9PWwudXNlQ29udGV4dChMLnEzKSx0PWwudXNlUmVmKHt9KTtmdW5jdGlvbiBuKHIsbyl7Y29uc3QgYT1vJiZ0eXBlb2Ygbz09Im9iamVjdCImJigwLHllLkM0KShvKSxpPXIuam9pbigiXyIpO3JldHVybih0LmN1cnJlbnQubmFtZSE9PWl8fHQuY3VycmVudC5vcmlnaW5SZWYhPT1hKSYmKHQuY3VycmVudC5uYW1lPWksdC5jdXJyZW50Lm9yaWdpblJlZj1hLHQuY3VycmVudC5yZWY9KDAseWUuc1EpKGUociksYSkpLHQuY3VycmVudC5yZWZ9cmV0dXJuIG59dmFyIEx0PW0oNTExMCksS2U9bSg4NDEwKSxWdD1tKDk4NDIzKSxUdD1tKDE3NjIxKSxDZT1tKDU2NzkwKSxZZT1tKDIxNTg0KTtjb25zdCBIdD1lPT57Y29uc3R7Zm9ybUl0ZW1DbHM6dH09ZTtyZXR1cm57IkBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSwgKC1tcy1oaWdoLWNvbnRyYXN0OiBub25lKSI6e1tgJHt0fS1jb250cm9sYF06e2Rpc3BsYXk6ImZsZXgifX19fTt2YXIgWnQ9KDAsd2UuYmspKFsiRm9ybSIsIml0ZW0taXRlbSJdLChlLHQpPT57bGV0e3Jvb3RQcmVmaXhDbHM6bn09dDtjb25zdCByPVBlKGUsbik7cmV0dXJuW0h0KHIpXX0pLFd0PWZ1bmN0aW9uKGUsdCl7dmFyIG49e307Zm9yKHZhciByIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikmJnQuaW5kZXhPZihyKTwwJiYobltyXT1lW3JdKTtpZihlIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIG89MCxyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7bzxyLmxlbmd0aDtvKyspdC5pbmRleE9mKHJbb10pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLHJbb10pJiYobltyW29dXT1lW3Jbb11dKTtyZXR1cm4gbn07Y29uc3QgenQ9MjQ7dmFyIER0PWU9Pntjb25zdHtwcmVmaXhDbHM6dCxzdGF0dXM6bixsYWJlbENvbDpyLHdyYXBwZXJDb2w6byxjaGlsZHJlbjphLGVycm9yczppLHdhcm5pbmdzOnMsX2ludGVybmFsSXRlbVJlbmRlcjpkLGV4dHJhOmcsaGVscDpTLGZpZWxkSWQ6aCxtYXJnaW5Cb3R0b206RixvbkVycm9yVmlzaWJsZUNoYW5nZWQ6WixsYWJlbDp2fT1lLHg9YCR7dH0taXRlbWAseT1sLnVzZUNvbnRleHQoTC5xMyksQz1sLnVzZU1lbW8oKCk9PntsZXQgdz1PYmplY3QuYXNzaWduKHt9LG98fHkud3JhcHBlckNvbHx8e30pO3JldHVybiB2PT09bnVsbCYmIXImJiFvJiZ5LmxhYmVsQ29sJiZbdm9pZCAwLCJ4cyIsInNtIiwibWQiLCJsZyIsInhsIiwieHhsIl0uZm9yRWFjaChEPT57Y29uc3QgdT1EP1tEXTpbXSxYPSgwLENlLlUyKSh5LmxhYmVsQ29sLHUpLGI9dHlwZW9mIFg9PSJvYmplY3QiP1g6e30sRz0oMCxDZS5VMikodyx1KSxrPXR5cGVvZiBHPT0ib2JqZWN0Ij9HOnt9OyJzcGFuImluIGImJiEoIm9mZnNldCJpbiBrKSYmYi5zcGFuPHp0JiYodz0oMCxDZS50OCkodyxbXS5jb25jYXQodSxbIm9mZnNldCJdKSxiLnNwYW4pKX0pLHd9LFtvLHldKSxWPW5lKCkoYCR7eH0tY29udHJvbGAsQy5jbGFzc05hbWUpLGM9bC51c2VNZW1vKCgpPT57Y29uc3R7bGFiZWxDb2w6dyx3cmFwcGVyQ29sOnp9PXk7cmV0dXJuIFd0KHksWyJsYWJlbENvbCIsIndyYXBwZXJDb2wiXSl9LFt5XSkscD1sLnVzZVJlZihudWxsKSxbZiwkXT1sLnVzZVN0YXRlKDApOygwLEtlLlopKCgpPT57ZyYmcC5jdXJyZW50PyQocC5jdXJyZW50LmNsaWVudEhlaWdodCk6JCgwKX0sW2ddKTtjb25zdCBUPWwuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmAke3h9LWNvbnRyb2wtaW5wdXRgfSxsLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpgJHt4fS1jb250cm9sLWlucHV0LWNvbnRlbnRgfSxhKSksRT1sLnVzZU1lbW8oKCk9Pih7cHJlZml4Q2xzOnQsc3RhdHVzOm59KSxbdCxuXSksTj1GIT09bnVsbHx8aS5sZW5ndGh8fHMubGVuZ3RoP2wuY3JlYXRlRWxlbWVudChMLlJrLlByb3ZpZGVyLHt2YWx1ZTpFfSxsLmNyZWF0ZUVsZW1lbnQoTGUse2ZpZWxkSWQ6aCxlcnJvcnM6aSx3YXJuaW5nczpzLGhlbHA6UyxoZWxwU3RhdHVzOm4sY2xhc3NOYW1lOmAke3h9LWV4cGxhaW4tY29ubmVjdGVkYCxvblZpc2libGVDaGFuZ2VkOlp9KSk6bnVsbCxQPXt9O2gmJihQLmlkPWAke2h9X2V4dHJhYCk7Y29uc3QgVz1nP2wuY3JlYXRlRWxlbWVudCgiZGl2IixPYmplY3QuYXNzaWduKHt9LFAse2NsYXNzTmFtZTpgJHt4fS1leHRyYWAscmVmOnB9KSxnKTpudWxsLEI9Tnx8Vz9sLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpgJHt4fS1hZGRpdGlvbmFsYCxzdHlsZTpGP3ttaW5IZWlnaHQ6RitmfTp7fX0sTixXKTpudWxsLFI9ZCYmZC5tYXJrPT09InByb190YWJsZV9yZW5kZXIiJiZkLnJlbmRlcj9kLnJlbmRlcihlLHtpbnB1dDpULGVycm9yTGlzdDpOLGV4dHJhOld9KTpsLmNyZWF0ZUVsZW1lbnQobC5GcmFnbWVudCxudWxsLFQsQik7cmV0dXJuIGwuY3JlYXRlRWxlbWVudChMLnEzLlByb3ZpZGVyLHt2YWx1ZTpjfSxsLmNyZWF0ZUVsZW1lbnQoWWUuWixPYmplY3QuYXNzaWduKHt9LEMse2NsYXNzTmFtZTpWfSksUiksbC5jcmVhdGVFbGVtZW50KFp0LHtwcmVmaXhDbHM6dH0pKX0sQXQ9bSgyNTAzNSksQnQ9bSgxMDExMCksWHQ9bSgyNDQ1NyksR3Q9bSg4MzA2MiksS3Q9ZnVuY3Rpb24oZSx0KXt2YXIgbj17fTtmb3IodmFyIHIgaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxyKSYmdC5pbmRleE9mKHIpPDAmJihuW3JdPWVbcl0pO2lmKGUhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgbz0wLHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtvPHIubGVuZ3RoO28rKyl0LmluZGV4T2YocltvXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUscltvXSkmJihuW3Jbb11dPWVbcltvXV0pO3JldHVybiBufTtmdW5jdGlvbiBZdChlKXtyZXR1cm4gZT90eXBlb2YgZT09Im9iamVjdCImJiFsLmlzVmFsaWRFbGVtZW50KGUpP2U6e3RpdGxlOmV9Om51bGx9dmFyIHF0PWU9PntsZXR7cHJlZml4Q2xzOnQsbGFiZWw6bixodG1sRm9yOnIsbGFiZWxDb2w6byxsYWJlbEFsaWduOmEsY29sb246aSxyZXF1aXJlZDpzLHJlcXVpcmVkTWFyazpkLHRvb2x0aXA6Zyx2ZXJ0aWNhbDpTfT1lO3ZhciBoO2NvbnN0W0ZdPSgwLEJ0LlopKCJGb3JtIikse2xhYmVsQWxpZ246WixsYWJlbENvbDp2LGxhYmVsV3JhcDp4LGNvbG9uOnl9PWwudXNlQ29udGV4dChMLnEzKTtpZighbilyZXR1cm4gbnVsbDtjb25zdCBDPW98fHZ8fHt9LFY9YXx8WixjPWAke3R9LWl0ZW0tbGFiZWxgLHA9bmUoKShjLFY9PT0ibGVmdCImJmAke2N9LWxlZnRgLEMuY2xhc3NOYW1lLHtbYCR7Y30td3JhcGBdOiEheH0pO2xldCBmPW47Y29uc3QgJD1pPT09ITB8fHkhPT0hMSYmaSE9PSExOyQmJiFTJiZ0eXBlb2Ygbj09InN0cmluZyImJm4udHJpbSgpJiYoZj1uLnJlcGxhY2UoL1s6fO+8ml1ccyokLywiIikpO2NvbnN0IEU9WXQoZyk7aWYoRSl7Y29uc3R7aWNvbjpCPWwuY3JlYXRlRWxlbWVudChBdC5aLG51bGwpfT1FLFI9S3QoRSxbImljb24iXSksdz1sLmNyZWF0ZUVsZW1lbnQoR3QuWixPYmplY3QuYXNzaWduKHt9LFIpLGwuY2xvbmVFbGVtZW50KEIse2NsYXNzTmFtZTpgJHt0fS1pdGVtLXRvb2x0aXBgLHRpdGxlOiIiLG9uQ2xpY2s6ej0+e3oucHJldmVudERlZmF1bHQoKX0sdGFiSW5kZXg6bnVsbH0pKTtmPWwuY3JlYXRlRWxlbWVudChsLkZyYWdtZW50LG51bGwsZix3KX1jb25zdCBOPWQ9PT0ib3B0aW9uYWwiLFA9dHlwZW9mIGQ9PSJmdW5jdGlvbiI7UD9mPWQoZix7cmVxdWlyZWQ6ISFzfSk6TiYmIXMmJihmPWwuY3JlYXRlRWxlbWVudChsLkZyYWdtZW50LG51bGwsZixsLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6YCR7dH0taXRlbS1vcHRpb25hbGAsdGl0bGU6IiJ9LChGPT1udWxsP3ZvaWQgMDpGLm9wdGlvbmFsKXx8KChoPVh0LlouRm9ybSk9PT1udWxsfHxoPT09dm9pZCAwP3ZvaWQgMDpoLm9wdGlvbmFsKSkpKTtjb25zdCBXPW5lKCkoe1tgJHt0fS1pdGVtLXJlcXVpcmVkYF06cyxbYCR7dH0taXRlbS1yZXF1aXJlZC1tYXJrLW9wdGlvbmFsYF06Tnx8UCxbYCR7dH0taXRlbS1uby1jb2xvbmBdOiEkfSk7cmV0dXJuIGwuY3JlYXRlRWxlbWVudChZZS5aLE9iamVjdC5hc3NpZ24oe30sQyx7Y2xhc3NOYW1lOnB9KSxsLmNyZWF0ZUVsZW1lbnQoImxhYmVsIix7aHRtbEZvcjpyLGNsYXNzTmFtZTpXLHRpdGxlOnR5cGVvZiBuPT0ic3RyaW5nIj9uOiIifSxmKSl9LFV0PW0oODk3MzkpLFF0PW0oNDM0MCksSnQ9bSgyMTY0MCksa3Q9bSg1MDg4OCk7Y29uc3QgX3Q9e3N1Y2Nlc3M6VXQuWix3YXJuaW5nOkp0LlosZXJyb3I6UXQuWix2YWxpZGF0aW5nOmt0Llp9O2Z1bmN0aW9uIHFlKGUpe2xldHtjaGlsZHJlbjp0LGVycm9yczpuLHdhcm5pbmdzOnIsaGFzRmVlZGJhY2s6byx2YWxpZGF0ZVN0YXR1czphLHByZWZpeENsczppLG1ldGE6cyxub1N0eWxlOmR9PWU7Y29uc3QgZz1gJHtpfS1pdGVtYCx7ZmVlZGJhY2tJY29uczpTfT1sLnVzZUNvbnRleHQoTC5xMyksaD16ZShuLHIscyxudWxsLCEhbyxhKSx7aXNGb3JtSXRlbUlucHV0OkYsc3RhdHVzOlosaGFzRmVlZGJhY2s6dixmZWVkYmFja0ljb246eH09bC51c2VDb250ZXh0KEwuYU0pLHk9bC51c2VNZW1vKCgpPT57dmFyIEM7bGV0IFY7aWYobyl7Y29uc3QgcD1vIT09ITAmJm8uaWNvbnN8fFMsZj1oJiYoKEM9cD09bnVsbD92b2lkIDA6cCh7c3RhdHVzOmgsZXJyb3JzOm4sd2FybmluZ3M6cn0pKT09PW51bGx8fEM9PT12b2lkIDA/dm9pZCAwOkNbaF0pLCQ9aCYmX3RbaF07Vj1mIT09ITEmJiQ/bC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOm5lKCkoYCR7Z30tZmVlZGJhY2staWNvbmAsYCR7Z30tZmVlZGJhY2staWNvbi0ke2h9YCl9LGZ8fGwuY3JlYXRlRWxlbWVudCgkLG51bGwpKTpudWxsfWNvbnN0IGM9e3N0YXR1czpofHwiIixlcnJvcnM6bix3YXJuaW5nczpyLGhhc0ZlZWRiYWNrOiEhbyxmZWVkYmFja0ljb246Vixpc0Zvcm1JdGVtSW5wdXQ6ITB9O3JldHVybiBkJiYoYy5zdGF0dXM9KGghPW51bGw/aDpaKXx8IiIsYy5pc0Zvcm1JdGVtSW5wdXQ9RixjLmhhc0ZlZWRiYWNrPSEhKG8hPW51bGw/bzp2KSxjLmZlZWRiYWNrSWNvbj1vIT09dm9pZCAwP2MuZmVlZGJhY2tJY29uOngpLGN9LFtoLG8sZCxGLFpdKTtyZXR1cm4gbC5jcmVhdGVFbGVtZW50KEwuYU0uUHJvdmlkZXIse3ZhbHVlOnl9LHQpfXZhciBlbj1mdW5jdGlvbihlLHQpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHIpJiZ0LmluZGV4T2Yocik8MCYmKG5bcl09ZVtyXSk7aWYoZSE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBvPTAscj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO288ci5sZW5ndGg7bysrKXQuaW5kZXhPZihyW29dKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxyW29dKSYmKG5bcltvXV09ZVtyW29dXSk7cmV0dXJuIG59O2Z1bmN0aW9uIHRuKGUpe2NvbnN0e3ByZWZpeENsczp0LGNsYXNzTmFtZTpuLHJvb3RDbGFzc05hbWU6cixzdHlsZTpvLGhlbHA6YSxlcnJvcnM6aSx3YXJuaW5nczpzLHZhbGlkYXRlU3RhdHVzOmQsbWV0YTpnLGhhc0ZlZWRiYWNrOlMsaGlkZGVuOmgsY2hpbGRyZW46RixmaWVsZElkOloscmVxdWlyZWQ6dixpc1JlcXVpcmVkOngsb25TdWJJdGVtTWV0YUNoYW5nZTp5LGxheW91dDpDfT1lLFY9ZW4oZSxbInByZWZpeENscyIsImNsYXNzTmFtZSIsInJvb3RDbGFzc05hbWUiLCJzdHlsZSIsImhlbHAiLCJlcnJvcnMiLCJ3YXJuaW5ncyIsInZhbGlkYXRlU3RhdHVzIiwibWV0YSIsImhhc0ZlZWRiYWNrIiwiaGlkZGVuIiwiY2hpbGRyZW4iLCJmaWVsZElkIiwicmVxdWlyZWQiLCJpc1JlcXVpcmVkIiwib25TdWJJdGVtTWV0YUNoYW5nZSIsImxheW91dCJdKSxjPWAke3R9LWl0ZW1gLHtyZXF1aXJlZE1hcms6cCx2ZXJ0aWNhbDpmfT1sLnVzZUNvbnRleHQoTC5xMyksJD1mfHxDPT09InZlcnRpY2FsIixUPWwudXNlUmVmKG51bGwpLEU9dWUoaSksTj11ZShzKSxQPWEhPW51bGwsVz0hIShQfHxpLmxlbmd0aHx8cy5sZW5ndGgpLEI9ISFULmN1cnJlbnQmJigwLEx0LlopKFQuY3VycmVudCksW1Isd109bC51c2VTdGF0ZShudWxsKTsoMCxLZS5aKSgoKT0+e2lmKFcmJlQuY3VycmVudCl7Y29uc3QgYj1nZXRDb21wdXRlZFN0eWxlKFQuY3VycmVudCk7dyhwYXJzZUludChiLm1hcmdpbkJvdHRvbSwxMCkpfX0sW1csQl0pO2NvbnN0IHo9Yj0+e2J8fHcobnVsbCl9LHU9ZnVuY3Rpb24oKXtsZXQgYj1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXZvaWQgMD9hcmd1bWVudHNbMF06ITE7Y29uc3QgRz1iP0U6Zy5lcnJvcnMsaz1iP046Zy53YXJuaW5ncztyZXR1cm4gemUoRyxrLGcsIiIsISFTLGQpfSgpLFg9bmUoKShjLG4scix7W2Ake2N9LXdpdGgtaGVscGBdOlB8fEUubGVuZ3RofHxOLmxlbmd0aCxbYCR7Y30taGFzLWZlZWRiYWNrYF06dSYmUyxbYCR7Y30taGFzLXN1Y2Nlc3NgXTp1PT09InN1Y2Nlc3MiLFtgJHtjfS1oYXMtd2FybmluZ2BdOnU9PT0id2FybmluZyIsW2Ake2N9LWhhcy1lcnJvcmBdOnU9PT0iZXJyb3IiLFtgJHtjfS1pcy12YWxpZGF0aW5nYF06dT09PSJ2YWxpZGF0aW5nIixbYCR7Y30taGlkZGVuYF06aCxbYCR7Y30tJHtDfWBdOkN9KTtyZXR1cm4gbC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6WCxzdHlsZTpvLHJlZjpUfSxsLmNyZWF0ZUVsZW1lbnQoVHQuWixPYmplY3QuYXNzaWduKHtjbGFzc05hbWU6YCR7Y30tcm93YH0sKDAsVnQuWikoVixbIl9pbnRlcm5hbEl0ZW1SZW5kZXIiLCJjb2xvbiIsImRlcGVuZGVuY2llcyIsImV4dHJhIiwiZmllbGRLZXkiLCJnZXRWYWx1ZUZyb21FdmVudCIsImdldFZhbHVlUHJvcHMiLCJodG1sRm9yIiwiaWQiLCJpbml0aWFsVmFsdWUiLCJpc0xpc3RGaWVsZCIsImxhYmVsIiwibGFiZWxBbGlnbiIsImxhYmVsQ29sIiwibGFiZWxXcmFwIiwibWVzc2FnZVZhcmlhYmxlcyIsIm5hbWUiLCJub3JtYWxpemUiLCJub1N0eWxlIiwicHJlc2VydmUiLCJyZXF1aXJlZE1hcmsiLCJydWxlcyIsInNob3VsZFVwZGF0ZSIsInRyaWdnZXIiLCJ0b29sdGlwIiwidmFsaWRhdGVGaXJzdCIsInZhbGlkYXRlVHJpZ2dlciIsInZhbHVlUHJvcE5hbWUiLCJ3cmFwcGVyQ29sIiwidmFsaWRhdGVEZWJvdW5jZSJdKSksbC5jcmVhdGVFbGVtZW50KHF0LE9iamVjdC5hc3NpZ24oe2h0bWxGb3I6Wn0sZSx7cmVxdWlyZWRNYXJrOnAscmVxdWlyZWQ6diE9bnVsbD92OngscHJlZml4Q2xzOnQsdmVydGljYWw6JH0pKSxsLmNyZWF0ZUVsZW1lbnQoRHQsT2JqZWN0LmFzc2lnbih7fSxlLGcse2Vycm9yczpFLHdhcm5pbmdzOk4scHJlZml4Q2xzOnQsc3RhdHVzOnUsaGVscDphLG1hcmdpbkJvdHRvbTpSLG9uRXJyb3JWaXNpYmxlQ2hhbmdlZDp6fSksbC5jcmVhdGVFbGVtZW50KEwucUkuUHJvdmlkZXIse3ZhbHVlOnl9LGwuY3JlYXRlRWxlbWVudChxZSx7cHJlZml4Q2xzOnQsbWV0YTpnLGVycm9yczpnLmVycm9ycyx3YXJuaW5nczpnLndhcm5pbmdzLGhhc0ZlZWRiYWNrOlMsdmFsaWRhdGVTdGF0dXM6dX0sRikpKSksISFSJiZsLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpgJHtjfS1tYXJnaW4tb2Zmc2V0YCxzdHlsZTp7bWFyZ2luQm90dG9tOi1SfX0pKX1jb25zdCBubj0iX19TUExJVF9fIix5bj1udWxsO2Z1bmN0aW9uIHJuKGUsdCl7Y29uc3Qgbj1PYmplY3Qua2V5cyhlKSxyPU9iamVjdC5rZXlzKHQpO3JldHVybiBuLmxlbmd0aD09PXIubGVuZ3RoJiZuLmV2ZXJ5KG89Pntjb25zdCBhPWVbb10saT10W29dO3JldHVybiBhPT09aXx8dHlwZW9mIGE9PSJmdW5jdGlvbiJ8fHR5cGVvZiBpPT0iZnVuY3Rpb24ifSl9Y29uc3Qgb249bC5tZW1vKGU9PntsZXR7Y2hpbGRyZW46dH09ZTtyZXR1cm4gdH0sKGUsdCk9PnJuKGUuY29udHJvbCx0LmNvbnRyb2wpJiZlLnVwZGF0ZT09PXQudXBkYXRlJiZlLmNoaWxkUHJvcHMubGVuZ3RoPT09dC5jaGlsZFByb3BzLmxlbmd0aCYmZS5jaGlsZFByb3BzLmV2ZXJ5KChuLHIpPT5uPT09dC5jaGlsZFByb3BzW3JdKSk7ZnVuY3Rpb24gVWUoKXtyZXR1cm57ZXJyb3JzOltdLHdhcm5pbmdzOltdLHRvdWNoZWQ6ITEsdmFsaWRhdGluZzohMSxuYW1lOltdLHZhbGlkYXRlZDohMX19ZnVuY3Rpb24gbG4oZSl7Y29uc3R7bmFtZTp0LG5vU3R5bGU6bixjbGFzc05hbWU6cixkZXBlbmRlbmNpZXM6byxwcmVmaXhDbHM6YSxzaG91bGRVcGRhdGU6aSxydWxlczpzLGNoaWxkcmVuOmQscmVxdWlyZWQ6ZyxsYWJlbDpTLG1lc3NhZ2VWYXJpYWJsZXM6aCx0cmlnZ2VyOkY9Im9uQ2hhbmdlIix2YWxpZGF0ZVRyaWdnZXI6WixoaWRkZW46dixoZWxwOngsbGF5b3V0Onl9PWUse2dldFByZWZpeENsczpDfT1sLnVzZUNvbnRleHQodmUuRV8pLHtuYW1lOlZ9PWwudXNlQ29udGV4dChMLnEzKSxjPWp0KGQpLHA9dHlwZW9mIGM9PSJmdW5jdGlvbiIsZj1sLnVzZUNvbnRleHQoTC5xSSkse3ZhbGlkYXRlVHJpZ2dlcjokfT1sLnVzZUNvbnRleHQoYWUuemIpLFQ9WiE9PXZvaWQgMD9aOiQsRT10IT1udWxsLE49QygiZm9ybSIsYSksUD0oMCxwZS5aKShOKSxbVyxCLFJdPWhlKE4sUCksdz0oMCx3dC5sbikoIkZvcm0uSXRlbSIpLHo9bC51c2VDb250ZXh0KGFlLlpNKSxEPWwudXNlUmVmKG51bGwpLFt1LFhdPVB0KHt9KSxbYixHXT0oMCxPdC5aKSgoKT0+VWUoKSksaz1JPT57Y29uc3QgTT16PT1udWxsP3ZvaWQgMDp6LmdldEtleShJLm5hbWUpO2lmKEcoSS5kZXN0cm95P1VlKCk6SSwhMCksbiYmeCE9PSExJiZmKXtsZXQgTz1JLm5hbWU7aWYoSS5kZXN0cm95KU89RC5jdXJyZW50fHxPO2Vsc2UgaWYoTSE9PXZvaWQgMCl7Y29uc3RbaixBXT1NO089W2pdLmNvbmNhdCgoMCxRLlopKEEpKSxELmN1cnJlbnQ9T31mKEksTyl9fSxpZT0oSSxNKT0+e1goTz0+e2NvbnN0IGo9T2JqZWN0LmFzc2lnbih7fSxPKSxZPVtdLmNvbmNhdCgoMCxRLlopKEkubmFtZS5zbGljZSgwLC0xKSksKDAsUS5aKShNKSkuam9pbihubik7cmV0dXJuIEkuZGVzdHJveT9kZWxldGUgaltZXTpqW1ldPUksan0pfSxbcSxlZV09bC51c2VNZW1vKCgpPT57Y29uc3QgST0oMCxRLlopKGIuZXJyb3JzKSxNPSgwLFEuWikoYi53YXJuaW5ncyk7cmV0dXJuIE9iamVjdC52YWx1ZXModSkuZm9yRWFjaChPPT57SS5wdXNoLmFwcGx5KEksKDAsUS5aKShPLmVycm9yc3x8W10pKSxNLnB1c2guYXBwbHkoTSwoMCxRLlopKE8ud2FybmluZ3N8fFtdKSl9KSxbSSxNXX0sW3UsYi5lcnJvcnMsYi53YXJuaW5nc10pLEs9UnQoKTtmdW5jdGlvbiB0ZShJLE0sTyl7cmV0dXJuIG4mJiF2P2wuY3JlYXRlRWxlbWVudChxZSx7cHJlZml4Q2xzOk4saGFzRmVlZGJhY2s6ZS5oYXNGZWVkYmFjayx2YWxpZGF0ZVN0YXR1czplLnZhbGlkYXRlU3RhdHVzLG1ldGE6YixlcnJvcnM6cSx3YXJuaW5nczplZSxub1N0eWxlOiEwfSxJKTpsLmNyZWF0ZUVsZW1lbnQodG4sT2JqZWN0LmFzc2lnbih7a2V5OiJyb3cifSxlLHtjbGFzc05hbWU6bmUoKShyLFIsUCxCKSxwcmVmaXhDbHM6TixmaWVsZElkOk0saXNSZXF1aXJlZDpPLGVycm9yczpxLHdhcm5pbmdzOmVlLG1ldGE6YixvblN1Ykl0ZW1NZXRhQ2hhbmdlOmllLGxheW91dDp5fSksSSl9aWYoIUUmJiFwJiYhbylyZXR1cm4gVyh0ZShjKSk7bGV0IFU9e307cmV0dXJuIHR5cGVvZiBTPT0ic3RyaW5nIj9VLmxhYmVsPVM6dCYmKFUubGFiZWw9U3RyaW5nKHQpKSxoJiYoVT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sVSksaCkpLFcobC5jcmVhdGVFbGVtZW50KGFlLmdOLE9iamVjdC5hc3NpZ24oe30sZSx7bWVzc2FnZVZhcmlhYmxlczpVLHRyaWdnZXI6Rix2YWxpZGF0ZVRyaWdnZXI6VCxvbk1ldGFDaGFuZ2U6a30pLChJLE0sTyk9Pntjb25zdCBqPWRlKHQpLmxlbmd0aCYmTT9NLm5hbWU6W10sQT1XZShqLFYpLFk9ZyE9PXZvaWQgMD9nOiEhKHMhPW51bGwmJnMuc29tZShIPT57aWYoSCYmdHlwZW9mIEg9PSJvYmplY3QiJiZILnJlcXVpcmVkJiYhSC53YXJuaW5nT25seSlyZXR1cm4hMDtpZih0eXBlb2YgSD09ImZ1bmN0aW9uIil7Y29uc3Qgc2U9SChPKTtyZXR1cm4oc2U9PW51bGw/dm9pZCAwOnNlLnJlcXVpcmVkKSYmIShzZSE9bnVsbCYmc2Uud2FybmluZ09ubHkpfXJldHVybiExfSkpLG9lPU9iamVjdC5hc3NpZ24oe30sSSk7bGV0IGxlPW51bGw7aWYoQXJyYXkuaXNBcnJheShjKSYmRSlsZT1jO2Vsc2UgaWYoIShwJiYoIShpfHxvKXx8RSkpKXtpZighKG8mJiFwJiYhRSkpaWYobC5pc1ZhbGlkRWxlbWVudChjKSl7Y29uc3QgSD1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sYy5wcm9wcyksb2UpO2lmKEguaWR8fChILmlkPUEpLHh8fHEubGVuZ3RoPjB8fGVlLmxlbmd0aD4wfHxlLmV4dHJhKXtjb25zdCBjZT1bXTsoeHx8cS5sZW5ndGg+MCkmJmNlLnB1c2goYCR7QX1faGVscGApLGUuZXh0cmEmJmNlLnB1c2goYCR7QX1fZXh0cmFgKSxIWyJhcmlhLWRlc2NyaWJlZGJ5Il09Y2Uuam9pbigiICIpfXEubGVuZ3RoPjAmJihIWyJhcmlhLWludmFsaWQiXT0idHJ1ZSIpLFkmJihIWyJhcmlhLXJlcXVpcmVkIl09InRydWUiKSwoMCx5ZS5ZcikoYykmJihILnJlZj1LKGosYykpLG5ldyBTZXQoW10uY29uY2F0KCgwLFEuWikoZGUoRikpLCgwLFEuWikoZGUoVCkpKSkuZm9yRWFjaChjZT0+e0hbY2VdPWZ1bmN0aW9uKCl7Zm9yKHZhciBKZSxrZSx4ZSxfZSwkZSxldD1hcmd1bWVudHMubGVuZ3RoLEllPW5ldyBBcnJheShldCksZ2U9MDtnZTxldDtnZSsrKUllW2dlXT1hcmd1bWVudHNbZ2VdOyh4ZT1vZVtjZV0pPT09bnVsbHx8eGU9PT12b2lkIDB8fChKZT14ZSkuY2FsbC5hcHBseShKZSxbb2VdLmNvbmNhdChJZSkpLCgkZT0oX2U9Yy5wcm9wcylbY2VdKT09PW51bGx8fCRlPT09dm9pZCAwfHwoa2U9JGUpLmNhbGwuYXBwbHkoa2UsW19lXS5jb25jYXQoSWUpKX19KTtjb25zdCBtbj1bSFsiYXJpYS1yZXF1aXJlZCJdLEhbImFyaWEtaW52YWxpZCJdLEhbImFyaWEtZGVzY3JpYmVkYnkiXV07bGU9bC5jcmVhdGVFbGVtZW50KG9uLHtjb250cm9sOm9lLHVwZGF0ZTpjLGNoaWxkUHJvcHM6bW59LCgwLEZ0LlRtKShjLEgpKX1lbHNlIHAmJihpfHxvKSYmIUU/bGU9YyhPKTpsZT1jfXJldHVybiB0ZShsZSxBLFkpfSkpfWNvbnN0IFFlPWxuO1FlLnVzZVN0YXR1cz1OdDt2YXIgYW49UWUsc249ZnVuY3Rpb24oZSx0KXt2YXIgbj17fTtmb3IodmFyIHIgaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxyKSYmdC5pbmRleE9mKHIpPDAmJihuW3JdPWVbcl0pO2lmKGUhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgbz0wLHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtvPHIubGVuZ3RoO28rKyl0LmluZGV4T2YocltvXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUscltvXSkmJihuW3Jbb11dPWVbcltvXV0pO3JldHVybiBufSxjbj1lPT57dmFye3ByZWZpeENsczp0LGNoaWxkcmVuOm59PWUscj1zbihlLFsicHJlZml4Q2xzIiwiY2hpbGRyZW4iXSk7Y29uc3R7Z2V0UHJlZml4Q2xzOm99PWwudXNlQ29udGV4dCh2ZS5FXyksYT1vKCJmb3JtIix0KSxpPWwudXNlTWVtbygoKT0+KHtwcmVmaXhDbHM6YSxzdGF0dXM6ImVycm9yIn0pLFthXSk7cmV0dXJuIGwuY3JlYXRlRWxlbWVudChhZS5hVixPYmplY3QuYXNzaWduKHt9LHIpLChzLGQsZyk9PmwuY3JlYXRlRWxlbWVudChMLlJrLlByb3ZpZGVyLHt2YWx1ZTppfSxuKHMubWFwKFM9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxTKSx7ZmllbGRLZXk6Uy5rZXl9KSksZCx7ZXJyb3JzOmcuZXJyb3JzLHdhcm5pbmdzOmcud2FybmluZ3N9KSkpfTtmdW5jdGlvbiBkbigpe2NvbnN0e2Zvcm06ZX09bC51c2VDb250ZXh0KEwucTMpO3JldHVybiBlfWNvbnN0IHJlPUV0O3JlLkl0ZW09YW4scmUuTGlzdD1jbixyZS5FcnJvckxpc3Q9TGUscmUudXNlRm9ybT1CZSxyZS51c2VGb3JtSW5zdGFuY2U9ZG4scmUudXNlV2F0Y2g9YWUucW8scmUuUHJvdmlkZXI9TC5SVixyZS5jcmVhdGU9KCk9Pnt9O3ZhciB1bj1yZX19XSk7CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzk4ODMuN2Q4YjU2YzkuYXN5bmMuanMgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzk4ODMuN2Q4YjU2YzkuYXN5bmMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDRiMzllOAotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvOTg4My43ZDhiNTZjOS5hc3luYy5qcwpAQCAtMCwwICsxIEBACisidXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W10pLnB1c2goW1s5ODgzXSx7MzExOTk6ZnVuY3Rpb24oVyxPLGUpe3ZhciB1PWUoMTQxMyksXz1lKDkxKSxGPWUoNjcyOTQpLHA9ZSg5MjE3OSksYz1lKDg1ODkzKSxDPVsiZmllbGRQcm9wcyIsIm1pbiIsInByb0ZpZWxkUHJvcHMiLCJtYXgiXSxEPWZ1bmN0aW9uKHMsVCl7dmFyIGY9cy5maWVsZFByb3BzLGk9cy5taW4sYT1zLnByb0ZpZWxkUHJvcHMsbD1zLm1heCxyPSgwLF8uWikocyxDKTtyZXR1cm4oMCxjLmpzeCkocC5aLCgwLHUuWikoe3ZhbHVlVHlwZToiZGlnaXQiLGZpZWxkUHJvcHM6KDAsdS5aKSh7bWluOmksbWF4Omx9LGYpLHJlZjpULGZpbGVkQ29uZmlnOntkZWZhdWx0UHJvcHM6e3dpZHRoOiIxMDAlIn19LHByb0ZpZWxkUHJvcHM6YX0scikpfSxoPUYuZm9yd2FyZFJlZihEKTtPLlo9aH0sODY2MTU6ZnVuY3Rpb24oVyxPLGUpe3ZhciB1PWUoMTQxMyksXz1lKDkxKSxGPWUoMjIyNzApLHA9ZSg3ODA0NSksYz1lKDY3Mjk0KSxDPWUoOTA3ODkpLEQ9ZSg5MjE3OSksaD1lKDg1ODkzKSx2PVsiZmllbGRQcm9wcyIsIm9wdGlvbnMiLCJyYWRpb1R5cGUiLCJsYXlvdXQiLCJwcm9GaWVsZFByb3BzIiwidmFsdWVFbnVtIl0scz1jLmZvcndhcmRSZWYoZnVuY3Rpb24oYSxsKXt2YXIgcj1hLmZpZWxkUHJvcHMsdD1hLm9wdGlvbnMsZz1hLnJhZGlvVHlwZSxuPWEubGF5b3V0LG89YS5wcm9GaWVsZFByb3BzLEU9YS52YWx1ZUVudW0sbT0oMCxfLlopKGEsdik7cmV0dXJuKDAsaC5qc3gpKEQuWiwoMCx1LlopKCgwLHUuWikoe3ZhbHVlVHlwZTpnPT09ImJ1dHRvbiI/InJhZGlvQnV0dG9uIjoicmFkaW8iLHJlZjpsLHZhbHVlRW51bTooMCxGLmgpKEUsdm9pZCAwKX0sbSkse30se2ZpZWxkUHJvcHM6KDAsdS5aKSh7b3B0aW9uczp0LGxheW91dDpufSxyKSxwcm9GaWVsZFByb3BzOm8sZmlsZWRDb25maWc6e2N1c3RvbUxpZ2h0TW9kZTohMH19KSl9KSxUPWMuZm9yd2FyZFJlZihmdW5jdGlvbihhLGwpe3ZhciByPWEuZmllbGRQcm9wcyx0PWEuY2hpbGRyZW47cmV0dXJuKDAsaC5qc3gpKHAuWlAsKDAsdS5aKSgoMCx1LlopKHt9LHIpLHt9LHtyZWY6bCxjaGlsZHJlbjp0fSkpfSksZj0oMCxDLkcpKFQse3ZhbHVlUHJvcE5hbWU6ImNoZWNrZWQiLGlnbm9yZVdpZHRoOiEwfSksaT1mO2kuR3JvdXA9cyxpLkJ1dHRvbj1wLlpQLkJ1dHRvbixpLmRpc3BsYXlOYW1lPSJQcm9Gb3JtQ29tcG9uZW50IixPLlo9aX0sNjQzMTc6ZnVuY3Rpb24oVyxPLGUpe3ZhciB1PWUoMTQxMyksXz1lKDkxKSxGPWUoMjIyNzApLHA9ZSg2NzI5NCksYz1lKDY2NzU4KSxDPWUoOTIxNzkpLEQ9ZSg4NTg5MyksaD1bImZpZWxkUHJvcHMiLCJjaGlsZHJlbiIsInBhcmFtcyIsInByb0ZpZWxkUHJvcHMiLCJtb2RlIiwidmFsdWVFbnVtIiwicmVxdWVzdCIsInNob3dTZWFyY2giLCJvcHRpb25zIl0sdj1bImZpZWxkUHJvcHMiLCJjaGlsZHJlbiIsInBhcmFtcyIsInByb0ZpZWxkUHJvcHMiLCJtb2RlIiwidmFsdWVFbnVtIiwicmVxdWVzdCIsIm9wdGlvbnMiXSxzPWZ1bmN0aW9uKHIsdCl7dmFyIGc9ci5maWVsZFByb3BzLG49ci5jaGlsZHJlbixvPXIucGFyYW1zLEU9ci5wcm9GaWVsZFByb3BzLG09ci5tb2RlLE09ci52YWx1ZUVudW0sQj1yLnJlcXVlc3QsQT1yLnNob3dTZWFyY2gsZD1yLm9wdGlvbnMsUj0oMCxfLlopKHIsaCkseD0oMCxwLnVzZUNvbnRleHQpKGMuWik7cmV0dXJuKDAsRC5qc3gpKEMuWiwoMCx1LlopKCgwLHUuWikoe3ZhbHVlRW51bTooMCxGLmgpKE0pLHJlcXVlc3Q6QixwYXJhbXM6byx2YWx1ZVR5cGU6InNlbGVjdCIsZmlsZWRDb25maWc6e2N1c3RvbUxpZ2h0TW9kZTohMH0sZmllbGRQcm9wczooMCx1LlopKHtvcHRpb25zOmQsbW9kZTptLHNob3dTZWFyY2g6QSxnZXRQb3B1cENvbnRhaW5lcjp4LmdldFBvcHVwQ29udGFpbmVyfSxnKSxyZWY6dCxwcm9GaWVsZFByb3BzOkV9LFIpLHt9LHtjaGlsZHJlbjpufSkpfSxUPXAuZm9yd2FyZFJlZihmdW5jdGlvbihsLHIpe3ZhciB0PWwuZmllbGRQcm9wcyxnPWwuY2hpbGRyZW4sbj1sLnBhcmFtcyxvPWwucHJvRmllbGRQcm9wcyxFPWwubW9kZSxtPWwudmFsdWVFbnVtLE09bC5yZXF1ZXN0LEI9bC5vcHRpb25zLEE9KDAsXy5aKShsLHYpLGQ9KDAsdS5aKSh7b3B0aW9uczpCLG1vZGU6RXx8Im11bHRpcGxlIixsYWJlbEluVmFsdWU6ITAsc2hvd1NlYXJjaDohMCxzdWZmaXhJY29uOm51bGwsYXV0b0NsZWFyU2VhcmNoVmFsdWU6ITAsb3B0aW9uTGFiZWxQcm9wOiJsYWJlbCJ9LHQpLFI9KDAscC51c2VDb250ZXh0KShjLlopO3JldHVybigwLEQuanN4KShDLlosKDAsdS5aKSgoMCx1LlopKHt2YWx1ZUVudW06KDAsRi5oKShtKSxyZXF1ZXN0Ok0scGFyYW1zOm4sdmFsdWVUeXBlOiJzZWxlY3QiLGZpbGVkQ29uZmlnOntjdXN0b21MaWdodE1vZGU6ITB9LGZpZWxkUHJvcHM6KDAsdS5aKSh7Z2V0UG9wdXBDb250YWluZXI6Ui5nZXRQb3B1cENvbnRhaW5lcn0sZCkscmVmOnIscHJvRmllbGRQcm9wczpvfSxBKSx7fSx7Y2hpbGRyZW46Z30pKX0pLGY9cC5mb3J3YXJkUmVmKHMpLGk9VCxhPWY7YS5TZWFyY2hTZWxlY3Q9aSxhLmRpc3BsYXlOYW1lPSJQcm9Gb3JtQ29tcG9uZW50IixPLlo9YX0sOTA2NzI6ZnVuY3Rpb24oVyxPLGUpe3ZhciB1PWUoMTQxMyksXz1lKDkxKSxGPWUoNjcyOTQpLHA9ZSg5MjE3OSksYz1lKDg1ODkzKSxDPVsiZmllbGRQcm9wcyIsInByb0ZpZWxkUHJvcHMiXSxEPWZ1bmN0aW9uKHYscyl7dmFyIFQ9di5maWVsZFByb3BzLGY9di5wcm9GaWVsZFByb3BzLGk9KDAsXy5aKSh2LEMpO3JldHVybigwLGMuanN4KShwLlosKDAsdS5aKSh7cmVmOnMsdmFsdWVUeXBlOiJ0ZXh0YXJlYSIsZmllbGRQcm9wczpULHByb0ZpZWxkUHJvcHM6Zn0saSkpfTtPLlo9Ri5mb3J3YXJkUmVmKEQpfSw1OTY2OmZ1bmN0aW9uKFcsTyxlKXt2YXIgdT1lKDk3Njg1KSxfPWUoMTQxMyksRj1lKDkxKSxwPWUoMjE3NzApLGM9ZSg5OTg1OSksQz1lKDU1MjQxKSxEPWUoOTg0MjMpLGg9ZSg2NzI5NCksdj1lKDkyMTc5KSxzPWUoODU4OTMpLFQ9WyJmaWVsZFByb3BzIiwicHJvRmllbGRQcm9wcyJdLGY9WyJmaWVsZFByb3BzIiwicHJvRmllbGRQcm9wcyJdLGk9InRleHQiLGE9ZnVuY3Rpb24obil7dmFyIG89bi5maWVsZFByb3BzLEU9bi5wcm9GaWVsZFByb3BzLG09KDAsRi5aKShuLFQpO3JldHVybigwLHMuanN4KSh2LlosKDAsXy5aKSh7dmFsdWVUeXBlOmksZmllbGRQcm9wczpvLGZpbGVkQ29uZmlnOnt2YWx1ZVR5cGU6aX0scHJvRmllbGRQcm9wczpFfSxtKSl9LGw9ZnVuY3Rpb24obil7dmFyIG89KDAscC5aKShuLm9wZW58fCExLHt2YWx1ZTpuLm9wZW4sb25DaGFuZ2U6bi5vbk9wZW5DaGFuZ2V9KSxFPSgwLHUuWikobywyKSxtPUVbMF0sTT1FWzFdO3JldHVybigwLHMuanN4KShjLlouSXRlbSx7c2hvdWxkVXBkYXRlOiEwLG5vU3R5bGU6ITAsY2hpbGRyZW46ZnVuY3Rpb24oQSl7dmFyIGQsUj1BLmdldEZpZWxkVmFsdWUobi5uYW1lfHxbXSk7cmV0dXJuKDAscy5qc3gpKEMuWiwoMCxfLlopKCgwLF8uWikoe2dldFBvcHVwQ29udGFpbmVyOmZ1bmN0aW9uKFApe3JldHVybiBQJiZQLnBhcmVudE5vZGU/UC5wYXJlbnROb2RlOlB9LG9uT3BlbkNoYW5nZTpmdW5jdGlvbihQKXtyZXR1cm4gTShQKX0sY29udGVudDooMCxzLmpzeHMpKCJkaXYiLHtzdHlsZTp7cGFkZGluZzoiNHB4IDAifSxjaGlsZHJlbjpbKGQ9bi5zdGF0dXNSZW5kZXIpPT09bnVsbHx8ZD09PXZvaWQgMD92b2lkIDA6ZC5jYWxsKG4sUiksbi5zdHJlbmd0aFRleHQ/KDAscy5qc3gpKCJkaXYiLHtzdHlsZTp7bWFyZ2luVG9wOjEwfSxjaGlsZHJlbjooMCxzLmpzeCkoInNwYW4iLHtjaGlsZHJlbjpuLnN0cmVuZ3RoVGV4dH0pfSk6bnVsbF19KSxvdmVybGF5U3R5bGU6e3dpZHRoOjI0MH0scGxhY2VtZW50OiJyaWdodFRvcCJ9LG4ucG9wb3ZlclByb3BzKSx7fSx7b3BlbjptLGNoaWxkcmVuOm4uY2hpbGRyZW59KSl9fSl9LHI9ZnVuY3Rpb24obil7dmFyIG89bi5maWVsZFByb3BzLEU9bi5wcm9GaWVsZFByb3BzLG09KDAsRi5aKShuLGYpLE09KDAsaC51c2VTdGF0ZSkoITEpLEI9KDAsdS5aKShNLDIpLEE9QlswXSxkPUJbMV07cmV0dXJuIG8hPW51bGwmJm8uc3RhdHVzUmVuZGVyJiZtLm5hbWU/KDAscy5qc3gpKGwse25hbWU6bS5uYW1lLHN0YXR1c1JlbmRlcjpvPT1udWxsP3ZvaWQgMDpvLnN0YXR1c1JlbmRlcixwb3BvdmVyUHJvcHM6bz09bnVsbD92b2lkIDA6by5wb3BvdmVyUHJvcHMsc3RyZW5ndGhUZXh0Om89PW51bGw/dm9pZCAwOm8uc3RyZW5ndGhUZXh0LG9wZW46QSxvbk9wZW5DaGFuZ2U6ZCxjaGlsZHJlbjooMCxzLmpzeCkoImRpdiIse2NoaWxkcmVuOigwLHMuanN4KSh2LlosKDAsXy5aKSh7dmFsdWVUeXBlOiJwYXNzd29yZCIsZmllbGRQcm9wczooMCxfLlopKCgwLF8uWikoe30sKDAsRC5aKShvLFsic3RhdHVzUmVuZGVyIiwicG9wb3ZlclByb3BzIiwic3RyZW5ndGhUZXh0Il0pKSx7fSx7b25CbHVyOmZ1bmN0aW9uKHgpe3ZhciBQO289PW51bGx8fChQPW8ub25CbHVyKT09PW51bGx8fFA9PT12b2lkIDB8fFAuY2FsbChvLHgpLGQoITEpfSxvbkNsaWNrOmZ1bmN0aW9uKHgpe3ZhciBQO289PW51bGx8fChQPW8ub25DbGljayk9PT1udWxsfHxQPT09dm9pZCAwfHxQLmNhbGwobyx4KSxkKCEwKX19KSxwcm9GaWVsZFByb3BzOkUsZmlsZWRDb25maWc6e3ZhbHVlVHlwZTppfX0sbSkpfSl9KTooMCxzLmpzeCkodi5aLCgwLF8uWikoe3ZhbHVlVHlwZToicGFzc3dvcmQiLGZpZWxkUHJvcHM6byxwcm9GaWVsZFByb3BzOkUsZmlsZWRDb25maWc6e3ZhbHVlVHlwZTppfX0sbSkpfSx0PWE7dC5QYXNzd29yZD1yLHQuZGlzcGxheU5hbWU9IlByb0Zvcm1Db21wb25lbnQiLE8uWj10fSw3OTg4MzpmdW5jdGlvbihXLE8sZSl7ZS5yKE8pO3ZhciB1PWUoMTUwMDkpLF89ZS5uKHUpLEY9ZSg5OTI4OSkscD1lLm4oRiksYz1lKDU1NzQpLEM9ZS5uKGMpLEQ9ZSg2NzI5NCksaD1lKDk3MjY5KSx2PWUoMzExOTkpLHM9ZSg1OTY2KSxUPWUoNjQzMTcpLGY9ZSg4NjYxNSksaT1lKDkwNjcyKSxhPWUoOTk4NTkpLGw9ZSgxNzc4OCkscj1lKDc2NzcyKSx0PWUoODU4OTMpLGc9ZnVuY3Rpb24obyl7dmFyIEU9YS5aLnVzZUZvcm0oKSxtPUMoKShFLDEpLE09bVswXSxCPW8ubm90aWNlVHlwZU9wdGlvbnMsQT1vLnN0YXR1c09wdGlvbnM7KDAsRC51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7TS5yZXNldEZpZWxkcygpLE0uc2V0RmllbGRzVmFsdWUoe25vdGljZUlkOm8udmFsdWVzLm5vdGljZUlkLG5vdGljZVRpdGxlOm8udmFsdWVzLm5vdGljZVRpdGxlLG5vdGljZVR5cGU6by52YWx1ZXMubm90aWNlVHlwZSxub3RpY2VDb250ZW50Om8udmFsdWVzLm5vdGljZUNvbnRlbnQsc3RhdHVzOm8udmFsdWVzLnN0YXR1cyxjcmVhdGVCeTpvLnZhbHVlcy5jcmVhdGVCeSxjcmVhdGVUaW1lOm8udmFsdWVzLmNyZWF0ZVRpbWUsdXBkYXRlQnk6by52YWx1ZXMudXBkYXRlQnksdXBkYXRlVGltZTpvLnZhbHVlcy51cGRhdGVUaW1lLHJlbWFyazpvLnZhbHVlcy5yZW1hcmt9KX0sW00sb10pO3ZhciBkPSgwLHIudXNlSW50bCkoKSxSPWZ1bmN0aW9uKCl7TS5zdWJtaXQoKX0seD1mdW5jdGlvbigpe28ub25DYW5jZWwoKX0sUD1mdW5jdGlvbigpe3ZhciBaPXAoKShfKCkoKS5tYXJrKGZ1bmN0aW9uIEkoTCl7cmV0dXJuIF8oKSgpLndyYXAoZnVuY3Rpb24oail7Zm9yKDs7KXN3aXRjaChqLnByZXY9ai5uZXh0KXtjYXNlIDA6by5vblN1Ym1pdChMKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBqLnN0b3AoKX19LEkpfSkpO3JldHVybiBmdW5jdGlvbihMKXtyZXR1cm4gWi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpO3JldHVybigwLHQuanN4KShsLlose3dpZHRoOjY0MCx0aXRsZTpkLmZvcm1hdE1lc3NhZ2Uoe2lkOiJzeXN0ZW0ubm90aWNlLnRpdGxlIixkZWZhdWx0TWVzc2FnZToiXHU3RjE2XHU4RjkxXHU5MDFBXHU3N0U1XHU1MTZDXHU1NDRBIn0pLGZvcmNlUmVuZGVyOiEwLG9wZW46by5vcGVuLGRlc3Ryb3lPbkNsb3NlOiEwLG9uT2s6UixvbkNhbmNlbDp4LGNoaWxkcmVuOigwLHQuanN4cykoaC5BLHtmb3JtOk0sZ3JpZDohMCxzdWJtaXR0ZXI6ITEsbGF5b3V0OiJob3Jpem9udGFsIixvbkZpbmlzaDpQLGNoaWxkcmVuOlsoMCx0LmpzeCkodi5aLHtuYW1lOiJub3RpY2VJZCIsbGFiZWw6ZC5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLm5vdGljZS5ub3RpY2VfaWQiLGRlZmF1bHRNZXNzYWdlOiJcdTUxNkNcdTU0NEFcdTdGMTZcdTUzRjcifSksY29sUHJvcHM6e21kOjEyLHhsOjI0fSxwbGFjZWhvbGRlcjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU1MTZDXHU1NDRBXHU3RjE2XHU1M0Y3IixkaXNhYmxlZDohMCxoaWRkZW46ITAscnVsZXM6W3tyZXF1aXJlZDohMSxtZXNzYWdlOigwLHQuanN4KShyLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTUxNkNcdTU0NEFcdTdGMTZcdTUzRjdcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTUxNkNcdTU0NEFcdTdGMTZcdTUzRjdcdUZGMDEifSl9XX0pLCgwLHQuanN4KShzLlose25hbWU6Im5vdGljZVRpdGxlIixsYWJlbDpkLmZvcm1hdE1lc3NhZ2Uoe2lkOiJzeXN0ZW0ubm90aWNlLm5vdGljZV90aXRsZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NTE2Q1x1NTQ0QVx1NjgwN1x1OTg5OCJ9KSxwbGFjZWhvbGRlcjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU1MTZDXHU1NDRBXHU2ODA3XHU5ODk4IixydWxlczpbe3JlcXVpcmVkOiEwLG1lc3NhZ2U6KDAsdC5qc3gpKHIuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NTE2Q1x1NTQ0QVx1NjgwN1x1OTg5OFx1RkYwMSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NTE2Q1x1NTQ0QVx1NjgwN1x1OTg5OFx1RkYwMSJ9KX1dfSksKDAsdC5qc3gpKFQuWix7dmFsdWVFbnVtOkIsbmFtZToibm90aWNlVHlwZSIsbGFiZWw6ZC5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLm5vdGljZS5ub3RpY2VfdHlwZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NTE2Q1x1NTQ0QVx1N0M3Qlx1NTc4QiJ9KSxjb2xQcm9wczp7bWQ6MTIseGw6MjR9LHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdTUxNkNcdTU0NEFcdTdDN0JcdTU3OEIiLHJ1bGVzOlt7cmVxdWlyZWQ6ITAsbWVzc2FnZTooMCx0LmpzeCkoci5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU1MTZDXHU1NDRBXHU3QzdCXHU1NzhCXHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU1MTZDXHU1NDRBXHU3QzdCXHU1NzhCXHVGRjAxIn0pfV19KSwoMCx0LmpzeCkoZi5aLkdyb3VwLHt2YWx1ZUVudW06QSxuYW1lOiJzdGF0dXMiLGxhYmVsOmQuZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5ub3RpY2Uuc3RhdHVzIixkZWZhdWx0TWVzc2FnZToiXHU1MTZDXHU1NDRBXHU3MkI2XHU2MDAxIn0pLGNvbFByb3BzOnttZDoxMix4bDoyNH0scGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NTE2Q1x1NTQ0QVx1NzJCNlx1NjAwMSIscnVsZXM6W3tyZXF1aXJlZDohMSxtZXNzYWdlOigwLHQuanN4KShyLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTUxNkNcdTU0NEFcdTcyQjZcdTYwMDFcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTUxNkNcdTU0NEFcdTcyQjZcdTYwMDFcdUZGMDEifSl9XX0pLCgwLHQuanN4KShpLlose25hbWU6Im5vdGljZUNvbnRlbnQiLGxhYmVsOmQuZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5ub3RpY2Uubm90aWNlX2NvbnRlbnQiLGRlZmF1bHRNZXNzYWdlOiJcdTUxNkNcdTU0NEFcdTUxODVcdTVCQjkifSksY29sUHJvcHM6e21kOjEyLHhsOjI0fSxwbGFjZWhvbGRlcjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU1MTZDXHU1NDRBXHU1MTg1XHU1QkI5IixydWxlczpbe3JlcXVpcmVkOiExLG1lc3NhZ2U6KDAsdC5qc3gpKHIuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NTE2Q1x1NTQ0QVx1NTE4NVx1NUJCOVx1RkYwMSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NTE2Q1x1NTQ0QVx1NTE4NVx1NUJCOVx1RkYwMSJ9KX1dfSksKDAsdC5qc3gpKHMuWix7bmFtZToicmVtYXJrIixsYWJlbDpkLmZvcm1hdE1lc3NhZ2Uoe2lkOiJzeXN0ZW0ubm90aWNlLnJlbWFyayIsZGVmYXVsdE1lc3NhZ2U6Ilx1NTkwN1x1NkNFOCJ9KSxjb2xQcm9wczp7bWQ6MTIseGw6MjR9LHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdTU5MDdcdTZDRTgiLHJ1bGVzOlt7cmVxdWlyZWQ6ITEsbWVzc2FnZTooMCx0LmpzeCkoci5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU1OTA3XHU2Q0U4XHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU1OTA3XHU2Q0U4XHVGRjAxIn0pfV19KV19KX0pfTtPLmRlZmF1bHQ9Z319XSk7CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzk5NTQuNDUwZjNmOTcuYXN5bmMuanMgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljLzk5NTQuNDUwZjNmOTcuYXN5bmMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjg1MGE3OAotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvOTk1NC40NTBmM2Y5Ny5hc3luYy5qcwpAQCAtMCwwICsxIEBACisidXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W10pLnB1c2goW1s5OTU0XSx7MzExOTk6ZnVuY3Rpb24oaixnLGUpe3ZhciB0PWUoMTQxMyksbD1lKDkxKSx2PWUoNjcyOTQpLHA9ZSg5MjE3OSksRT1lKDg1ODkzKSxmPVsiZmllbGRQcm9wcyIsIm1pbiIsInByb0ZpZWxkUHJvcHMiLCJtYXgiXSxNPWZ1bmN0aW9uKG8sTyl7dmFyIFQ9by5maWVsZFByb3BzLGQ9by5taW4sbj1vLnByb0ZpZWxkUHJvcHMsYT1vLm1heCxzPSgwLGwuWikobyxmKTtyZXR1cm4oMCxFLmpzeCkocC5aLCgwLHQuWikoe3ZhbHVlVHlwZToiZGlnaXQiLGZpZWxkUHJvcHM6KDAsdC5aKSh7bWluOmQsbWF4OmF9LFQpLHJlZjpPLGZpbGVkQ29uZmlnOntkZWZhdWx0UHJvcHM6e3dpZHRoOiIxMDAlIn19LHByb0ZpZWxkUHJvcHM6bn0scykpfSxEPXYuZm9yd2FyZFJlZihNKTtnLlo9RH0sODY2MTU6ZnVuY3Rpb24oaixnLGUpe3ZhciB0PWUoMTQxMyksbD1lKDkxKSx2PWUoMjIyNzApLHA9ZSg3ODA0NSksRT1lKDY3Mjk0KSxmPWUoOTA3ODkpLE09ZSg5MjE3OSksRD1lKDg1ODkzKSxCPVsiZmllbGRQcm9wcyIsIm9wdGlvbnMiLCJyYWRpb1R5cGUiLCJsYXlvdXQiLCJwcm9GaWVsZFByb3BzIiwidmFsdWVFbnVtIl0sbz1FLmZvcndhcmRSZWYoZnVuY3Rpb24obixhKXt2YXIgcz1uLmZpZWxkUHJvcHMsRj1uLm9wdGlvbnMsYz1uLnJhZGlvVHlwZSx1PW4ubGF5b3V0LHI9bi5wcm9GaWVsZFByb3BzLFA9bi52YWx1ZUVudW0sXz0oMCxsLlopKG4sQik7cmV0dXJuKDAsRC5qc3gpKE0uWiwoMCx0LlopKCgwLHQuWikoe3ZhbHVlVHlwZTpjPT09ImJ1dHRvbiI/InJhZGlvQnV0dG9uIjoicmFkaW8iLHJlZjphLHZhbHVlRW51bTooMCx2LmgpKFAsdm9pZCAwKX0sXykse30se2ZpZWxkUHJvcHM6KDAsdC5aKSh7b3B0aW9uczpGLGxheW91dDp1fSxzKSxwcm9GaWVsZFByb3BzOnIsZmlsZWRDb25maWc6e2N1c3RvbUxpZ2h0TW9kZTohMH19KSl9KSxPPUUuZm9yd2FyZFJlZihmdW5jdGlvbihuLGEpe3ZhciBzPW4uZmllbGRQcm9wcyxGPW4uY2hpbGRyZW47cmV0dXJuKDAsRC5qc3gpKHAuWlAsKDAsdC5aKSgoMCx0LlopKHt9LHMpLHt9LHtyZWY6YSxjaGlsZHJlbjpGfSkpfSksVD0oMCxmLkcpKE8se3ZhbHVlUHJvcE5hbWU6ImNoZWNrZWQiLGlnbm9yZVdpZHRoOiEwfSksZD1UO2QuR3JvdXA9byxkLkJ1dHRvbj1wLlpQLkJ1dHRvbixkLmRpc3BsYXlOYW1lPSJQcm9Gb3JtQ29tcG9uZW50IixnLlo9ZH0sNTk2NjpmdW5jdGlvbihqLGcsZSl7dmFyIHQ9ZSg5NzY4NSksbD1lKDE0MTMpLHY9ZSg5MSkscD1lKDIxNzcwKSxFPWUoOTk4NTkpLGY9ZSg1NTI0MSksTT1lKDk4NDIzKSxEPWUoNjcyOTQpLEI9ZSg5MjE3OSksbz1lKDg1ODkzKSxPPVsiZmllbGRQcm9wcyIsInByb0ZpZWxkUHJvcHMiXSxUPVsiZmllbGRQcm9wcyIsInByb0ZpZWxkUHJvcHMiXSxkPSJ0ZXh0IixuPWZ1bmN0aW9uKHUpe3ZhciByPXUuZmllbGRQcm9wcyxQPXUucHJvRmllbGRQcm9wcyxfPSgwLHYuWikodSxPKTtyZXR1cm4oMCxvLmpzeCkoQi5aLCgwLGwuWikoe3ZhbHVlVHlwZTpkLGZpZWxkUHJvcHM6cixmaWxlZENvbmZpZzp7dmFsdWVUeXBlOmR9LHByb0ZpZWxkUHJvcHM6UH0sXykpfSxhPWZ1bmN0aW9uKHUpe3ZhciByPSgwLHAuWikodS5vcGVufHwhMSx7dmFsdWU6dS5vcGVuLG9uQ2hhbmdlOnUub25PcGVuQ2hhbmdlfSksUD0oMCx0LlopKHIsMiksXz1QWzBdLHg9UFsxXTtyZXR1cm4oMCxvLmpzeCkoRS5aLkl0ZW0se3Nob3VsZFVwZGF0ZTohMCxub1N0eWxlOiEwLGNoaWxkcmVuOmZ1bmN0aW9uKFIpe3ZhciBDLFc9Ui5nZXRGaWVsZFZhbHVlKHUubmFtZXx8W10pO3JldHVybigwLG8uanN4KShmLlosKDAsbC5aKSgoMCxsLlopKHtnZXRQb3B1cENvbnRhaW5lcjpmdW5jdGlvbihpKXtyZXR1cm4gaSYmaS5wYXJlbnROb2RlP2kucGFyZW50Tm9kZTppfSxvbk9wZW5DaGFuZ2U6ZnVuY3Rpb24oaSl7cmV0dXJuIHgoaSl9LGNvbnRlbnQ6KDAsby5qc3hzKSgiZGl2Iix7c3R5bGU6e3BhZGRpbmc6IjRweCAwIn0sY2hpbGRyZW46WyhDPXUuc3RhdHVzUmVuZGVyKT09PW51bGx8fEM9PT12b2lkIDA/dm9pZCAwOkMuY2FsbCh1LFcpLHUuc3RyZW5ndGhUZXh0PygwLG8uanN4KSgiZGl2Iix7c3R5bGU6e21hcmdpblRvcDoxMH0sY2hpbGRyZW46KDAsby5qc3gpKCJzcGFuIix7Y2hpbGRyZW46dS5zdHJlbmd0aFRleHR9KX0pOm51bGxdfSksb3ZlcmxheVN0eWxlOnt3aWR0aDoyNDB9LHBsYWNlbWVudDoicmlnaHRUb3AifSx1LnBvcG92ZXJQcm9wcykse30se29wZW46XyxjaGlsZHJlbjp1LmNoaWxkcmVufSkpfX0pfSxzPWZ1bmN0aW9uKHUpe3ZhciByPXUuZmllbGRQcm9wcyxQPXUucHJvRmllbGRQcm9wcyxfPSgwLHYuWikodSxUKSx4PSgwLEQudXNlU3RhdGUpKCExKSxtPSgwLHQuWikoeCwyKSxSPW1bMF0sQz1tWzFdO3JldHVybiByIT1udWxsJiZyLnN0YXR1c1JlbmRlciYmXy5uYW1lPygwLG8uanN4KShhLHtuYW1lOl8ubmFtZSxzdGF0dXNSZW5kZXI6cj09bnVsbD92b2lkIDA6ci5zdGF0dXNSZW5kZXIscG9wb3ZlclByb3BzOnI9PW51bGw/dm9pZCAwOnIucG9wb3ZlclByb3BzLHN0cmVuZ3RoVGV4dDpyPT1udWxsP3ZvaWQgMDpyLnN0cmVuZ3RoVGV4dCxvcGVuOlIsb25PcGVuQ2hhbmdlOkMsY2hpbGRyZW46KDAsby5qc3gpKCJkaXYiLHtjaGlsZHJlbjooMCxvLmpzeCkoQi5aLCgwLGwuWikoe3ZhbHVlVHlwZToicGFzc3dvcmQiLGZpZWxkUHJvcHM6KDAsbC5aKSgoMCxsLlopKHt9LCgwLE0uWikocixbInN0YXR1c1JlbmRlciIsInBvcG92ZXJQcm9wcyIsInN0cmVuZ3RoVGV4dCJdKSkse30se29uQmx1cjpmdW5jdGlvbihoKXt2YXIgaTtyPT1udWxsfHwoaT1yLm9uQmx1cik9PT1udWxsfHxpPT09dm9pZCAwfHxpLmNhbGwocixoKSxDKCExKX0sb25DbGljazpmdW5jdGlvbihoKXt2YXIgaTtyPT1udWxsfHwoaT1yLm9uQ2xpY2spPT09bnVsbHx8aT09PXZvaWQgMHx8aS5jYWxsKHIsaCksQyghMCl9fSkscHJvRmllbGRQcm9wczpQLGZpbGVkQ29uZmlnOnt2YWx1ZVR5cGU6ZH19LF8pKX0pfSk6KDAsby5qc3gpKEIuWiwoMCxsLlopKHt2YWx1ZVR5cGU6InBhc3N3b3JkIixmaWVsZFByb3BzOnIscHJvRmllbGRQcm9wczpQLGZpbGVkQ29uZmlnOnt2YWx1ZVR5cGU6ZH19LF8pKX0sRj1uO0YuUGFzc3dvcmQ9cyxGLmRpc3BsYXlOYW1lPSJQcm9Gb3JtQ29tcG9uZW50IixnLlo9Rn0sMzM3MjU6ZnVuY3Rpb24oaixnLGUpe3ZhciB0PWUoMTQxMyksbD1lKDkxKSx2PWUoODYxOTApLHA9ZSg2NzI5NCksRT1lKDY2NzU4KSxmPWUoOTIxNzkpLE09ZSg4NTg5MyksRD1bImZpZWxkUHJvcHMiLCJwcm9GaWVsZFByb3BzIl0sQj1bImZpZWxkUHJvcHMiLCJwcm9GaWVsZFByb3BzIl0sbz0idGltZSIsTz1wLmZvcndhcmRSZWYoZnVuY3Rpb24obixhKXt2YXIgcz1uLmZpZWxkUHJvcHMsRj1uLnByb0ZpZWxkUHJvcHMsYz0oMCxsLlopKG4sRCksdT0oMCxwLnVzZUNvbnRleHQpKEUuWik7cmV0dXJuKDAsTS5qc3gpKGYuWiwoMCx0LlopKHtyZWY6YSxmaWVsZFByb3BzOigwLHQuWikoe2dldFBvcHVwQ29udGFpbmVyOnUuZ2V0UG9wdXBDb250YWluZXJ9LHMpLHZhbHVlVHlwZToidGltZVJhbmdlIixwcm9GaWVsZFByb3BzOkYsZmlsZWRDb25maWc6e3ZhbHVlVHlwZToidGltZVJhbmdlIixjdXN0b21MaWdodE1vZGU6ITAsbGlnaHRGaWx0ZXJMYWJlbEZvcm1hdHRlcjpmdW5jdGlvbihQKXtyZXR1cm4oMCx2LmMpKFAsIkhIOm1tOnNzIil9fX0sYykpfSksVD1mdW5jdGlvbihhKXt2YXIgcz1hLmZpZWxkUHJvcHMsRj1hLnByb0ZpZWxkUHJvcHMsYz0oMCxsLlopKGEsQiksdT0oMCxwLnVzZUNvbnRleHQpKEUuWik7cmV0dXJuKDAsTS5qc3gpKGYuWiwoMCx0LlopKHtmaWVsZFByb3BzOigwLHQuWikoe2dldFBvcHVwQ29udGFpbmVyOnUuZ2V0UG9wdXBDb250YWluZXJ9LHMpLHZhbHVlVHlwZTpvLHByb0ZpZWxkUHJvcHM6RixmaWxlZENvbmZpZzp7Y3VzdG9tTGlnaHRNb2RlOiEwLHZhbHVlVHlwZTpvfX0sYykpfSxkPVQ7ZC5SYW5nZVBpY2tlcj1PLGcuWj1kfSw1OTk1NDpmdW5jdGlvbihqLGcsZSl7ZS5yKGcpO3ZhciB0PWUoMTUwMDkpLGw9ZS5uKHQpLHY9ZSg5OTI4OSkscD1lLm4odiksRT1lKDU1NzQpLGY9ZS5uKEUpLE09ZSg2NzI5NCksRD1lKDk3MjY5KSxCPWUoMzExOTkpLG89ZSg1OTY2KSxPPWUoODY2MTUpLFQ9ZSgzMzcyNSksZD1lKDk5ODU5KSxuPWUoMTc3ODgpLGE9ZSg3Njc3Mikscz1lKDg1ODkzKSxGPWZ1bmN0aW9uKHUpe3ZhciByPWQuWi51c2VGb3JtKCksUD1mKCkociwxKSxfPVBbMF0seD11LnN0YXR1c09wdGlvbnM7KDAsTS51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7Xy5yZXNldEZpZWxkcygpLF8uc2V0RmllbGRzVmFsdWUoe2luZm9JZDp1LnZhbHVlcy5pbmZvSWQsdXNlck5hbWU6dS52YWx1ZXMudXNlck5hbWUsaXBhZGRyOnUudmFsdWVzLmlwYWRkcixsb2dpbkxvY2F0aW9uOnUudmFsdWVzLmxvZ2luTG9jYXRpb24sYnJvd3Nlcjp1LnZhbHVlcy5icm93c2VyLG9zOnUudmFsdWVzLm9zLHN0YXR1czp1LnZhbHVlcy5zdGF0dXMsbXNnOnUudmFsdWVzLm1zZyxsb2dpblRpbWU6dS52YWx1ZXMubG9naW5UaW1lfSl9LFtfLHVdKTt2YXIgbT0oMCxhLnVzZUludGwpKCksUj1mdW5jdGlvbigpe18uc3VibWl0KCl9LEM9ZnVuY3Rpb24oKXt1Lm9uQ2FuY2VsKCksXy5yZXNldEZpZWxkcygpfSxXPWZ1bmN0aW9uKCl7dmFyIGg9cCgpKGwoKSgpLm1hcmsoZnVuY3Rpb24gaShMKXtyZXR1cm4gbCgpKCkud3JhcChmdW5jdGlvbihBKXtmb3IoOzspc3dpdGNoKEEucHJldj1BLm5leHQpe2Nhc2UgMDp1Lm9uU3VibWl0KEwpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIEEuc3RvcCgpfX0saSl9KSk7cmV0dXJuIGZ1bmN0aW9uKEwpe3JldHVybiBoLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCk7cmV0dXJuKDAscy5qc3gpKG4uWix7d2lkdGg6NjQwLHRpdGxlOm0uZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5sb2dpbmluZm9yLnRpdGxlIixkZWZhdWx0TWVzc2FnZToiXHU3RjE2XHU4RjkxXHU3Q0ZCXHU3RURGXHU4QkJGXHU5NUVFXHU4QkIwXHU1RjU1In0pLG9wZW46dS5vcGVuLGRlc3Ryb3lPbkNsb3NlOiEwLGZvcmNlUmVuZGVyOiEwLG9uT2s6UixvbkNhbmNlbDpDLGNoaWxkcmVuOigwLHMuanN4cykoRC5BLHtmb3JtOl8sZ3JpZDohMCxsYXlvdXQ6Imhvcml6b250YWwiLG9uRmluaXNoOlcsY2hpbGRyZW46WygwLHMuanN4KShCLlose25hbWU6ImluZm9JZCIsbGFiZWw6bS5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLmxvZ2luaW5mb3IuaW5mb19pZCIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJCRlx1OTVFRVx1N0YxNlx1NTNGNyJ9KSxjb2xQcm9wczp7bWQ6MTIseGw6MjR9LHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdThCQkZcdTk1RUVcdTdGMTZcdTUzRjciLGRpc2FibGVkOiEwLGhpZGRlbjohMCxydWxlczpbe3JlcXVpcmVkOiExLG1lc3NhZ2U6KDAscy5qc3gpKGEuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1OEJCRlx1OTVFRVx1N0YxNlx1NTNGN1x1RkYwMSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1OEJCRlx1OTVFRVx1N0YxNlx1NTNGN1x1RkYwMSJ9KX1dfSksKDAscy5qc3gpKG8uWix7bmFtZToidXNlck5hbWUiLGxhYmVsOm0uZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5sb2dpbmluZm9yLnVzZXJfbmFtZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NzUyOFx1NjIzN1x1OEQyNlx1NTNGNyJ9KSxjb2xQcm9wczp7bWQ6MTIseGw6MjR9LHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdTc1MjhcdTYyMzdcdThEMjZcdTUzRjciLHJ1bGVzOlt7cmVxdWlyZWQ6ITEsbWVzc2FnZTooMCxzLmpzeCkoYS5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU3NTI4XHU2MjM3XHU4RDI2XHU1M0Y3XHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU3NTI4XHU2MjM3XHU4RDI2XHU1M0Y3XHVGRjAxIn0pfV19KSwoMCxzLmpzeCkoby5aLHtuYW1lOiJpcGFkZHIiLGxhYmVsOm0uZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5sb2dpbmluZm9yLmlwYWRkciIsZGVmYXVsdE1lc3NhZ2U6Ilx1NzY3Qlx1NUY1NUlQXHU1NzMwXHU1NzQwIn0pLGNvbFByb3BzOnttZDoxMix4bDoyNH0scGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NzY3Qlx1NUY1NUlQXHU1NzMwXHU1NzQwIixydWxlczpbe3JlcXVpcmVkOiExLG1lc3NhZ2U6KDAscy5qc3gpKGEuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NzY3Qlx1NUY1NUlQXHU1NzMwXHU1NzQwXHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU3NjdCXHU1RjU1SVBcdTU3MzBcdTU3NDBcdUZGMDEifSl9XX0pLCgwLHMuanN4KShvLlose25hbWU6ImxvZ2luTG9jYXRpb24iLGxhYmVsOm0uZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5sb2dpbmluZm9yLmxvZ2luX2xvY2F0aW9uIixkZWZhdWx0TWVzc2FnZToiXHU3NjdCXHU1RjU1XHU1NzMwXHU3MEI5In0pLGNvbFByb3BzOnttZDoxMix4bDoyNH0scGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NzY3Qlx1NUY1NVx1NTczMFx1NzBCOSIscnVsZXM6W3tyZXF1aXJlZDohMSxtZXNzYWdlOigwLHMuanN4KShhLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTc2N0JcdTVGNTVcdTU3MzBcdTcwQjlcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTc2N0JcdTVGNTVcdTU3MzBcdTcwQjlcdUZGMDEifSl9XX0pLCgwLHMuanN4KShvLlose25hbWU6ImJyb3dzZXIiLGxhYmVsOm0uZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5sb2dpbmluZm9yLmJyb3dzZXIiLGRlZmF1bHRNZXNzYWdlOiJcdTZENEZcdTg5QzhcdTU2NjhcdTdDN0JcdTU3OEIifSksY29sUHJvcHM6e21kOjEyLHhsOjI0fSxwbGFjZWhvbGRlcjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU2RDRGXHU4OUM4XHU1NjY4XHU3QzdCXHU1NzhCIixydWxlczpbe3JlcXVpcmVkOiExLG1lc3NhZ2U6KDAscy5qc3gpKGEuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NkQ0Rlx1ODlDOFx1NTY2OFx1N0M3Qlx1NTc4Qlx1RkYwMSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NkQ0Rlx1ODlDOFx1NTY2OFx1N0M3Qlx1NTc4Qlx1RkYwMSJ9KX1dfSksKDAscy5qc3gpKG8uWix7bmFtZToib3MiLGxhYmVsOm0uZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5sb2dpbmluZm9yLm9zIixkZWZhdWx0TWVzc2FnZToiXHU2NENEXHU0RjVDXHU3Q0ZCXHU3RURGIn0pLGNvbFByb3BzOnttZDoxMix4bDoyNH0scGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NjRDRFx1NEY1Q1x1N0NGQlx1N0VERiIscnVsZXM6W3tyZXF1aXJlZDohMSxtZXNzYWdlOigwLHMuanN4KShhLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTY0Q0RcdTRGNUNcdTdDRkJcdTdFREZcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTY0Q0RcdTRGNUNcdTdDRkJcdTdFREZcdUZGMDEifSl9XX0pLCgwLHMuanN4KShPLlouR3JvdXAse3ZhbHVlRW51bTp4LG5hbWU6InN0YXR1cyIsbGFiZWw6bS5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLmxvZ2luaW5mb3Iuc3RhdHVzIixkZWZhdWx0TWVzc2FnZToiXHU3NjdCXHU1RjU1XHU3MkI2XHU2MDAxIn0pLGNvbFByb3BzOnttZDoxMix4bDoyNH0scGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NzY3Qlx1NUY1NVx1NzJCNlx1NjAwMSIscnVsZXM6W3tyZXF1aXJlZDohMSxtZXNzYWdlOigwLHMuanN4KShhLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTc2N0JcdTVGNTVcdTcyQjZcdTYwMDFcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTc2N0JcdTVGNTVcdTcyQjZcdTYwMDFcdUZGMDEifSl9XX0pLCgwLHMuanN4KShvLlose25hbWU6Im1zZyIsbGFiZWw6bS5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLmxvZ2luaW5mb3IubXNnIixkZWZhdWx0TWVzc2FnZToiXHU2M0QwXHU3OTNBXHU2RDg4XHU2MDZGIn0pLGNvbFByb3BzOnttZDoxMix4bDoyNH0scGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NjNEMFx1NzkzQVx1NkQ4OFx1NjA2RiIscnVsZXM6W3tyZXF1aXJlZDohMSxtZXNzYWdlOigwLHMuanN4KShhLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTYzRDBcdTc5M0FcdTZEODhcdTYwNkZcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTYzRDBcdTc5M0FcdTZEODhcdTYwNkZcdUZGMDEifSl9XX0pLCgwLHMuanN4KShULlose25hbWU6ImxvZ2luVGltZSIsbGFiZWw6bS5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLmxvZ2luaW5mb3IubG9naW5fdGltZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJCRlx1OTVFRVx1NjVGNlx1OTVGNCJ9KSxjb2xQcm9wczp7bWQ6MTIseGw6MjR9LHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdThCQkZcdTk1RUVcdTY1RjZcdTk1RjQiLHJ1bGVzOlt7cmVxdWlyZWQ6ITEsbWVzc2FnZTooMCxzLmpzeCkoYS5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU4QkJGXHU5NUVFXHU2NUY2XHU5NUY0XHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU4QkJGXHU5NUVFXHU2NUY2XHU5NUY0XHVGRjAxIn0pfV19KV19KX0pfTtnLmRlZmF1bHQ9Rn19XSk7CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljL0NOQU1FIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy9DTkFNRQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMGMyZDRkCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy9DTkFNRQpAQCAtMCwwICsxIEBACitwcmV2aWV3LnByby5hbnQuZGVzaWduClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy9mYXZpY29uLmljbyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvZmF2aWNvbi5pY28KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTJlOTMyNQotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvZmF2aWNvbi5pY28KQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy9pY29ucy9pY29uLTEyOHgxMjgucG5nIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy9pY29ucy9pY29uLTEyOHgxMjgucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ4ZDBlMjMKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljL2ljb25zL2ljb24tMTI4eDEyOC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy9pY29ucy9pY29uLTE5MngxOTIucG5nIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy9pY29ucy9pY29uLTE5MngxOTIucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkzOGU5YjUKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljL2ljb25zL2ljb24tMTkyeDE5Mi5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy9pY29ucy9pY29uLTUxMng1MTIucG5nIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy9pY29ucy9pY29uLTUxMng1MTIucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIxZmMxMDgKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljL2ljb25zL2ljb24tNTEyeDUxMi5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy9pbWFnZXMvLmdpdGtlZXAgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljL2ltYWdlcy8uZ2l0a2VlcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy9pbWFnZXMvLmdpdGtlZXAKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvaW5kZXguaHRtbCBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvaW5kZXguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NDc5NGQyCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy9pbmRleC5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIHVzZXItc2NhbGFibGU9bm8sIGluaXRpYWwtc2NhbGU9MS4wLCBtYXhpbXVtLXNjYWxlPTEuMCwgbWluaW11bS1zY2FsZT0xLjAiPgorPG1ldGEgaHR0cC1lcXVpdj0iWC1VQS1Db21wYXRpYmxlIiBjb250ZW50PSJpZT1lZGdlIj4KKzx0aXRsZT5BbnQgRGVzaWduIFBybzwvdGl0bGU+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii91bWkuZmUyMGU3NWIuY3NzIj4KKzxzY3JpcHQgYXN5bmMgc3JjPSIvc2NyaXB0cy9sb2FkaW5nLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcHJlbG9hZF9oZWxwZXIuNzBmNTM0YWEuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJyb290Ij48L2Rpdj4KKzxzY3JpcHQgc3JjPSIvdW1pLjI3MjAzYWM0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljL2xvZ28uc3ZnIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy9sb2dvLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMzliZjY5Ci0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy9sb2dvLnN2ZwpAQCAtMCwwICsxIEBACis8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyMDAgMjAwIj48dGl0bGU+R3JvdXAgMjggQ29weSA1PC90aXRsZT48ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz48ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9ImxpbmVhckdyYWRpZW50LTEiIHgxPSI2Mi4xMDIlIiB4Mj0iMTA4LjE5NyUiIHkxPSIwJSIgeTI9IjM3Ljg2NCUiPjxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9IiM0Mjg1RUIiLz48c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiMyRUM3RkYiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0ibGluZWFyR3JhZGllbnQtMiIgeDE9IjY5LjY0NCUiIHgyPSI1NC4wNDMlIiB5MT0iMCUiIHkyPSIxMDguNDU3JSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzI5Q0RGRiIvPjxzdG9wIG9mZnNldD0iMzcuODYlIiBzdG9wLWNvbG9yPSIjMTQ4RUZGIi8+PHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjMEE2MEZGIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9ImxpbmVhckdyYWRpZW50LTMiIHgxPSI2OS42OTElIiB4Mj0iMTYuNzIzJSIgeTE9Ii0xMi45NzQlIiB5Mj0iMTE3LjM5MSUiPjxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9IiNGQTgxNkUiLz48c3RvcCBvZmZzZXQ9IjQxLjQ3MyUiIHN0b3AtY29sb3I9IiNGNzRBNUMiLz48c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNGNTFEMkMiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0ibGluZWFyR3JhZGllbnQtNCIgeDE9IjY4LjEyOCUiIHgyPSIzMC40NCUiIHkxPSItMzUuNjkxJSIgeTI9IjExNC45NDMlIj48c3RvcCBvZmZzZXQ9IjAlIiBzdG9wLWNvbG9yPSIjRkE4RTdEIi8+PHN0b3Agb2Zmc2V0PSI1MS4yNjQlIiBzdG9wLWNvbG9yPSIjRjc0QTVDIi8+PHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjRjUxRDJDIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PGcgaWQ9IlBhZ2UtMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSI+PGcgaWQ9ImxvZ28iIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMC4wMDAwMDAsIC0yMC4wMDAwMDApIj48ZyBpZD0iR3JvdXAtMjgtQ29weS01IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyMC4wMDAwMDAsIDIwLjAwMDAwMCkiPjxnIGlkPSJHcm91cC0yNy1Db3B5LTMiPjxnIGlkPSJHcm91cC0yNSIgZmlsbC1ydWxlPSJub256ZXJvIj48ZyBpZD0iMiI+PHBhdGggaWQ9IlNoYXBlIiBmaWxsPSJ1cmwoI2xpbmVhckdyYWRpZW50LTEpIiBkPSJNOTEuNTg4MDg2Myw0LjE3NjUyODIzIEw0LjE3OTk2NTQ0LDkxLjUxMjc3MjggQy0wLjUxOTI0MDYwNSw5Ni4yMDgxMTQ2IC0wLjUxOTI0MDYwNSwxMDMuNzkxODg1IDQuMTc5OTY1NDQsMTA4LjQ4NzIyNyBMOTEuNTg4MDg2MywxOTUuODIzNDcyIEM5Ni4yODcyOTIzLDIwMC41MTg4MTQgMTAzLjg3NzMwNCwyMDAuNTE4ODE0IDEwOC41NzY1MSwxOTUuODIzNDcyIEwxNDUuMjI1NDg3LDE1OS4yMDQ2MzIgQzE0OS40MzM5NjksMTU0Ljk5OTYxMSAxNDkuNDMzOTY5LDE0OC4xODE5MjQgMTQ1LjIyNTQ4NywxNDMuOTc2OTAzIEMxNDEuMDE3MDA1LDEzOS43NzE4ODEgMTM0LjE5MzcwNywxMzkuNzcxODgxIDEyOS45ODUyMjUsMTQzLjk3NjkwMyBMMTAyLjIwMTkzLDE3MS43MzczNTIgQzEwMS4wMzIzMDUsMTcyLjkwNjAxNSA5OS4yNTcxNjA5LDE3Mi45MDYwMTUgOTguMDg3NTM1OSwxNzEuNzM3MzUyIEwyOC4yODU5MDgsMTAxLjk5MzEyMiBDMjcuMTE2MjgzMSwxMDAuODI0NDU5IDI3LjExNjI4MzEsOTkuMDUwNzc1IDI4LjI4NTkwOCw5Ny44ODIxMTE4IEw5OC4wODc1MzU5LDI4LjEzNzg4MjMgQzk5LjI1NzE2MDksMjYuOTY5MjE5MSAxMDEuMDMyMzA1LDI2Ljk2OTIxOTEgMTAyLjIwMTkzLDI4LjEzNzg4MjMgTDEyOS45ODUyMjUsNTUuODk4MzMxNCBDMTM0LjE5MzcwNyw2MC4xMDMzNTI4IDE0MS4wMTcwMDUsNjAuMTAzMzUyOCAxNDUuMjI1NDg3LDU1Ljg5ODMzMTQgQzE0OS40MzM5NjksNTEuNjkzMzEgMTQ5LjQzMzk2OSw0NC44NzU2MjMyIDE0NS4yMjU0ODcsNDAuNjcwNjAxOCBMMTA4LjU4MDU1LDQuMDU1NzQ1OTIgQzEwMy44NjIwNDksLTAuNTM3OTg2ODQ2IDk2LjI2OTI2MTgsLTAuNTAwNzk3OTA2IDkxLjU4ODA4NjMsNC4xNzY1MjgyMyBaIi8+PHBhdGggaWQ9IlNoYXBlIiBmaWxsPSJ1cmwoI2xpbmVhckdyYWRpZW50LTIpIiBkPSJNOTEuNTg4MDg2Myw0LjE3NjUyODIzIEw0LjE3OTk2NTQ0LDkxLjUxMjc3MjggQy0wLjUxOTI0MDYwNSw5Ni4yMDgxMTQ2IC0wLjUxOTI0MDYwNSwxMDMuNzkxODg1IDQuMTc5OTY1NDQsMTA4LjQ4NzIyNyBMOTEuNTg4MDg2MywxOTUuODIzNDcyIEM5Ni4yODcyOTIzLDIwMC41MTg4MTQgMTAzLjg3NzMwNCwyMDAuNTE4ODE0IDEwOC41NzY1MSwxOTUuODIzNDcyIEwxNDUuMjI1NDg3LDE1OS4yMDQ2MzIgQzE0OS40MzM5NjksMTU0Ljk5OTYxMSAxNDkuNDMzOTY5LDE0OC4xODE5MjQgMTQ1LjIyNTQ4NywxNDMuOTc2OTAzIEMxNDEuMDE3MDA1LDEzOS43NzE4ODEgMTM0LjE5MzcwNywxMzkuNzcxODgxIDEyOS45ODUyMjUsMTQzLjk3NjkwMyBMMTAyLjIwMTkzLDE3MS43MzczNTIgQzEwMS4wMzIzMDUsMTcyLjkwNjAxNSA5OS4yNTcxNjA5LDE3Mi45MDYwMTUgOTguMDg3NTM1OSwxNzEuNzM3MzUyIEwyOC4yODU5MDgsMTAxLjk5MzEyMiBDMjcuMTE2MjgzMSwxMDAuODI0NDU5IDI3LjExNjI4MzEsOTkuMDUwNzc1IDI4LjI4NTkwOCw5Ny44ODIxMTE4IEw5OC4wODc1MzU5LDI4LjEzNzg4MjMgQzEwMC45OTk4NjQsMjUuNjI3MTgzNiAxMDUuNzUxNjQyLDIwLjU0MTgyNCAxMTIuNzI5NjUyLDE5LjM1MjQ0ODcgQzExNy45MTU1ODUsMTguNDY4NTI2MSAxMjMuNTg1MjE5LDIwLjQxNDAyMzkgMTI5LjczODU1NCwyNS4xODg5NDI0IEMxMjUuNjI0NjYzLDIxLjA3ODQyOTIgMTE4LjU3MTk5NSwxNC4wMzQwMzA0IDEwOC41ODA1NSw0LjA1NTc0NTkyIEMxMDMuODYyMDQ5LC0wLjUzNzk4Njg0NiA5Ni4yNjkyNjE4LC0wLjUwMDc5NzkwNiA5MS41ODgwODYzLDQuMTc2NTI4MjMgWiIvPjwvZz48cGF0aCBpZD0iU2hhcGUiIGZpbGw9InVybCgjbGluZWFyR3JhZGllbnQtMykiIGQ9Ik0xNTMuNjg1NjMzLDEzNS44NTQ1NzkgQzE1Ny44OTQxMTUsMTQwLjA1OTYgMTY0LjcxNzQxMiwxNDAuMDU5NiAxNjguOTI1ODk0LDEzNS44NTQ1NzkgTDE5NS45NTk5NzcsMTA4Ljg0MjcyNiBDMjAwLjY1OTE4MywxMDQuMTQ3Mzg0IDIwMC42NTkxODMsOTYuNTYzNjEzMyAxOTUuOTYwNTI3LDkxLjg2ODgxOTQgTDE2OC42OTA3NzcsNjQuNzE4MTE1OSBDMTY0LjQ3MjMzMiw2MC41MTgwODU4IDE1Ny42NDY4NjgsNjAuNTI0MTQyNSAxNTMuNDM1ODk1LDY0LjczMTY1MjYgQzE0OS4yMjc0MTMsNjguOTM2Njc0IDE0OS4yMjc0MTMsNzUuNzU0MzYwNyAxNTMuNDM1ODk1LDc5Ljk1OTM4MjEgTDE3MS44NTQwMzUsOTguMzYyMzc2NSBDMTczLjAyMzY2LDk5LjUzMTAzOTYgMTczLjAyMzY2LDEwMS4zMDQ3MjQgMTcxLjg1NDAzNSwxMDIuNDczMzg3IEwxNTMuNjg1NjMzLDEyMC42MjY4NDkgQzE0OS40NzcxNSwxMjQuODMxODcgMTQ5LjQ3NzE1LDEzMS42NDk1NTcgMTUzLjY4NTYzMywxMzUuODU0NTc5IFoiLz48L2c+PGVsbGlwc2UgaWQ9IkNvbWJpbmVkLVNoYXBlIiBjeD0iMTAwLjUxOSIgY3k9IjEwMC40MzciIGZpbGw9InVybCgjbGluZWFyR3JhZGllbnQtNCkiIHJ4PSIyMy42IiByeT0iMjMuNTgxIi8+PC9nPjwvZz48L2c+PC9nPjwvc3ZnPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvcF9fNDA0LjA5OWYwMmI4LmFzeW5jLmpzIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy9wX180MDQuMDk5ZjAyYjguYXN5bmMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjljZWQ4OAotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvcF9fNDA0LjA5OWYwMmI4LmFzeW5jLmpzCkBAIC0wLDAgKzEgQEAKKyJ1c2Ugc3RyaWN0Ijsoc2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Bybz1zZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvfHxbXSkucHVzaChbWzI1NzFdLHs5ODI2OmZ1bmN0aW9uKEUsbix0KXt0LnIobik7dmFyIGE9dCg3Njc3Miksbz10KDU5NzIwKSxfPXQoODM2MjIpLFA9dCg2NzI5NCkscz10KDg1ODkzKSx1PWZ1bmN0aW9uKCl7cmV0dXJuKDAscy5qc3gpKG8uWlAse3N0YXR1czoiNDA0Iix0aXRsZToiNDA0IixzdWJUaXRsZToiU29ycnksIHRoZSBwYWdlIHlvdSB2aXNpdGVkIGRvZXMgbm90IGV4aXN0LiIsZXh0cmE6KDAscy5qc3gpKF8uWlAse3R5cGU6InByaW1hcnkiLG9uQ2xpY2s6ZnVuY3Rpb24oKXtyZXR1cm4gYS5oaXN0b3J5LnB1c2goIi8iKX0sY2hpbGRyZW46IkJhY2sgSG9tZSJ9KX0pfTtuLmRlZmF1bHQ9dX19XSk7CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljL3BfX01vbml0b3JfX0pvYkxvZ19faW5kZXguMmVjMmQ0Y2YuYXN5bmMuanMgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljL3BfX01vbml0b3JfX0pvYkxvZ19faW5kZXguMmVjMmQ0Y2YuYXN5bmMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmVjMzgwOAotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvcF9fTW9uaXRvcl9fSm9iTG9nX19pbmRleC4yZWMyZDRjZi5hc3luYy5qcwpAQCAtMCwwICsxIEBACisidXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W10pLnB1c2goW1s2Mjg1LDcyNjZdLHs5NDE2MjpmdW5jdGlvbih0ZSxVLG4pe3ZhciBoPW4oNjQ1OTkpLGE9bi5uKGgpLFI9big2NzI5NCkscj1uKDY2MzA5KSx4PW4oODU4OTMpLHQ9ZnVuY3Rpb24obyl7ZnVuY3Rpb24gaihjKXtzd2l0Y2goYyl7Y2FzZSJwcmltYXJ5IjpyZXR1cm4iYmx1ZSI7Y2FzZSJzdWNjZXNzIjpyZXR1cm4ic3VjY2VzcyI7Y2FzZSJpbmZvIjpyZXR1cm4iZ3JlZW4iO2Nhc2Uid2FybmluZyI6cmV0dXJuIndhcm5pbmciO2Nhc2UiZGFuZ2VyIjpyZXR1cm4iZXJyb3IiO2Nhc2UiZGVmYXVsdCI6ZGVmYXVsdDpyZXR1cm4iZGVmYXVsdCJ9fWZ1bmN0aW9uIGkoYyl7aWYoYz09PXZvaWQgMClyZXR1cm4iIjtpZihvLmVudW1zKXt2YXIgTD1vLmVudW1zW2NdO3JldHVybiBMLmxhYmVsfWlmKG8ub3B0aW9ucyl7aWYoIUFycmF5LmlzQXJyYXkoby5vcHRpb25zKSlyZXR1cm4gY29uc29sZS5sb2coIkRpY3RUYWcgb3B0aW9ucyBpcyBubyBhcnJheSEiKSwiIjt2YXIgZj1hKCkoby5vcHRpb25zKSxTO3RyeXtmb3IoZi5zKCk7IShTPWYubigpKS5kb25lOyl7dmFyIEY9Uy52YWx1ZTtpZihGLnZhbHVlPT09YylyZXR1cm4gRi50ZXh0fX1jYXRjaChkKXtmLmUoZCl9ZmluYWxseXtmLmYoKX19cmV0dXJuIFN0cmluZyhvLnZhbHVlKX1mdW5jdGlvbiBwKGMpe2lmKGM9PT12b2lkIDApcmV0dXJuImRlZmF1bHQiO2lmKG8uZW51bXMpe3ZhciBMPW8uZW51bXNbY107cmV0dXJuIEwubGlzdENsYXNzfHwiZGVmYXVsdCJ9aWYoby5vcHRpb25zKXtpZighQXJyYXkuaXNBcnJheShvLm9wdGlvbnMpKXJldHVybiBjb25zb2xlLmxvZygiRGljdFRhZyBvcHRpb25zIGlzIG5vIGFycmF5ISIpLCJkZWZhdWx0Ijt2YXIgZj1hKCkoby5vcHRpb25zKSxTO3RyeXtmb3IoZi5zKCk7IShTPWYubigpKS5kb25lOyl7dmFyIEY9Uy52YWx1ZTtpZihGLnZhbHVlPT09YylyZXR1cm4gRi5saXN0Q2xhc3N8fCJkZWZhdWx0In19Y2F0Y2goZCl7Zi5lKGQpfWZpbmFsbHl7Zi5mKCl9fXJldHVybiBTdHJpbmcoby52YWx1ZSl9dmFyICQ9ZnVuY3Rpb24oKXtyZXR1cm4gaihwKG8udmFsdWUpLnRvTG93ZXJDYXNlKCkpfSxLPWZ1bmN0aW9uKCl7cmV0dXJuIGkoby52YWx1ZSl9O3JldHVybigwLHguanN4KShyLlose2NvbG9yOiQoKSxjaGlsZHJlbjpLKCl9KX07VS5aPXR9LDMzODY3OmZ1bmN0aW9uKHRlLFUsbil7bi5kKFUse2lLOmZ1bmN0aW9uKCl7cmV0dXJuIGh9LHpjOmZ1bmN0aW9uKCl7cmV0dXJuIFJ9fSk7dmFyIGg9ZnVuY3Rpb24ocil7cmV0dXJuIHJbci5TVUNDRVNTPTIwMF09IlNVQ0NFU1MiLHJbci5FUlJPUj0tMV09IkVSUk9SIixyW3IuVElNRU9VVD00MDFdPSJUSU1FT1VUIixyLlRZUEU9InN1Y2Nlc3MiLHJ9KHt9KSxhPWZ1bmN0aW9uKHIpe3JldHVybiByLkdFVD0iR0VUIixyLlBPU1Q9IlBPU1QiLHIuUFVUPSJQVVQiLHIuREVMRVRFPSJERUxFVEUiLHJ9KHt9KSxSPWZ1bmN0aW9uKHIpe3JldHVybiByLkpTT049ImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCIsci5GT1JNX1VSTEVOQ09ERUQ9ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PVVURi04IixyLkZPUk1fREFUQT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YTtjaGFyc2V0PVVURi04IixyfSh7fSl9LDc3MjY2OmZ1bmN0aW9uKHRlLFUsbil7bi5yKFUpO3ZhciBoPW4oNjEzMTQpLGE9big3Njc3MiksUj1uKDE3Nzg4KSxyPW4oMjY0MTIpLHg9big2NzI5NCksdD1uKDg1ODkzKSxBPWZ1bmN0aW9uKGope3ZhciBpLHA9ai52YWx1ZXMsJD1qLnN0YXR1c09wdGlvbnMsSz1qLmpvYkdyb3VwT3B0aW9uczsoMCx4LnVzZUVmZmVjdCkoZnVuY3Rpb24oKXt9LFtdKTt2YXIgYz0oMCxhLnVzZUludGwpKCksTD1mdW5jdGlvbigpe30sZj1mdW5jdGlvbigpe2oub25DYW5jZWwoKX07cmV0dXJuKDAsdC5qc3gpKFIuWix7d2lkdGg6NjQwLHRpdGxlOmMuZm9ybWF0TWVzc2FnZSh7aWQ6Im1vbml0b3Iuam9iLmxvZy50aXRsZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NUI5QVx1NjVGNlx1NEVGQlx1NTJBMVx1OEMwM1x1NUVBNlx1NjVFNVx1NUZENyJ9KSxvcGVuOmoub3Blbixmb3JjZVJlbmRlcjohMCxkZXN0cm95T25DbG9zZTohMCxvbk9rOkwsb25DYW5jZWw6ZixjaGlsZHJlbjooMCx0LmpzeHMpKHIuWix7Y29sdW1uOjI0LGNoaWxkcmVuOlsoMCx0LmpzeCkoci5aLkl0ZW0se3NwYW46MTIsbGFiZWw6KDAsdC5qc3gpKGEuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3Iuam9iLmpvYl9pZCIsZGVmYXVsdE1lc3NhZ2U6Ilx1NEVGQlx1NTJBMVx1N0YxNlx1NTNGNyJ9KSxjaGlsZHJlbjpwLmpvYkxvZ0lkfSksKDAsdC5qc3gpKHIuWi5JdGVtLHtzcGFuOjEyLGxhYmVsOigwLHQuanN4KShhLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJtb25pdG9yLmpvYi5jcmVhdGVfdGltZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjI2N1x1ODg0Q1x1NjVGNlx1OTVGNCJ9KSxjaGlsZHJlbjooaT1wLmNyZWF0ZVRpbWUpPT09bnVsbHx8aT09PXZvaWQgMD92b2lkIDA6aS50b1N0cmluZygpfSksKDAsdC5qc3gpKHIuWi5JdGVtLHtzcGFuOjEyLGxhYmVsOigwLHQuanN4KShhLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJtb25pdG9yLmpvYi5qb2JfbmFtZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NEVGQlx1NTJBMVx1NTQwRFx1NzlGMCJ9KSxjaGlsZHJlbjpwLmpvYk5hbWV9KSwoMCx0LmpzeCkoci5aLkl0ZW0se3NwYW46MTIsbGFiZWw6KDAsdC5qc3gpKGEuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3Iuam9iLmpvYl9ncm91cCIsZGVmYXVsdE1lc3NhZ2U6Ilx1NEVGQlx1NTJBMVx1N0VDNFx1NTQwRCJ9KSxjaGlsZHJlbjooMCxoLm4pKEsscC5qb2JHcm91cCwiXHU2NUUwIil9KSwoMCx0LmpzeCkoci5aLkl0ZW0se3NwYW46MjQsbGFiZWw6KDAsdC5qc3gpKGEuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3Iuam9iLmludm9rZV90YXJnZXQiLGRlZmF1bHRNZXNzYWdlOiJcdThDMDNcdTc1MjhcdTc2RUVcdTY4MDcifSksY2hpbGRyZW46cC5pbnZva2VUYXJnZXR9KSwoMCx0LmpzeCkoci5aLkl0ZW0se3NwYW46MjQsbGFiZWw6KDAsdC5qc3gpKGEuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3Iuam9iLmxvZy5qb2JfbWVzc2FnZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjVFNVx1NUZEN1x1NEZFMVx1NjA2RiJ9KSxjaGlsZHJlbjpwLmpvYk1lc3NhZ2V9KSwoMCx0LmpzeCkoci5aLkl0ZW0se3NwYW46MjQsbGFiZWw6KDAsdC5qc3gpKGEuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3Iuam9iLmxvZy5leGNlcHRpb25faW5mbyIsZGVmYXVsdE1lc3NhZ2U6Ilx1NUYwMlx1NUUzOFx1NEZFMVx1NjA2RiJ9KSxjaGlsZHJlbjpwLmV4Y2VwdGlvbkluZm99KSwoMCx0LmpzeCkoci5aLkl0ZW0se3NwYW46MTIsbGFiZWw6KDAsdC5qc3gpKGEuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3Iuam9iLnN0YXR1cyIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjI2N1x1ODg0Q1x1NzJCNlx1NjAwMSJ9KSxjaGlsZHJlbjooMCxoLm4pKCQscC5zdGF0dXMsIlx1NjcyQVx1NzdFNSIpfSldfSl9KX07VS5kZWZhdWx0PUF9LDg2MDEzOmZ1bmN0aW9uKHRlLFUsbil7bi5yKFUpLG4uZChVLHtkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuIF99fSk7dmFyIGg9big5Nzg1NyksYT1uLm4oaCksUj1uKDU1NzQpLHI9bi5uKFIpLHg9bigxNTAwOSksdD1uLm4oeCksQT1uKDk5Mjg5KSxvPW4ubihBKSxqPW4oNjcyOTQpLGk9big3Njc3MikscD1uKDI0NTMpLCQ9big4MzYyMiksSz1uKDE3Nzg4KSxjPW4oNjExMCksTD1uKDY1Mzg1KSxmPW4oMjIzNiksUz1uKDI0OTY5KSxGPW4oMTE0NzUpLGQ9big0ODY4OSksST1uKDMwOTY0KTtmdW5jdGlvbiBQKHkpe3JldHVybiBnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBnKCl7cmV0dXJuIGc9bygpKHQoKSgpLm1hcmsoZnVuY3Rpb24geSh2KXtyZXR1cm4gdCgpKCkud3JhcChmdW5jdGlvbihUKXtmb3IoOzspc3dpdGNoKFQucHJldj1ULm5leHQpe2Nhc2UgMDpyZXR1cm4gVC5hYnJ1cHQoInJldHVybiIsKDAsaS5yZXF1ZXN0KSgiL2FwaS9zY2hlZHVsZS9qb2IvbG9nL2xpc3QiLHttZXRob2Q6IkdFVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCJ9LHBhcmFtczp2fSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIFQuc3RvcCgpfX0seSl9KSksZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gYWUoeSl7cmV0dXJuIFYuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIFYoKXtyZXR1cm4gVj1vKCkodCgpKCkubWFyayhmdW5jdGlvbiB5KHYpe3JldHVybiB0KCkoKS53cmFwKGZ1bmN0aW9uKFQpe2Zvcig7Oylzd2l0Y2goVC5wcmV2PVQubmV4dCl7Y2FzZSAwOnJldHVybiBULmFicnVwdCgicmV0dXJuIiwoMCxpLnJlcXVlc3QpKCIvYXBpL3NjaGVkdWxlL2pvYi9sb2cvIi5jb25jYXQodikse21ldGhvZDoiREVMRVRFIn0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBULnN0b3AoKX19LHkpfSkpLFYuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGxlKCl7cmV0dXJuIHJlcXVlc3QoIi9hcGkvc2NoZWR1bGUvam9iL2xvZy9jbGVhbiIse21ldGhvZDoiZGVsZXRlIn0pfWZ1bmN0aW9uIGIoeSl7cmV0dXJuKDAsSS5zdSkoIi9hcGkvbW9uaXRvci9qb2JMb2cvZXhwb3J0Iix7cGFyYW1zOnl9LCJqb2Jsb2dfIi5jb25jYXQobmV3IERhdGUoKS5nZXRUaW1lKCksIi54bHN4IikpfXZhciB3PW4oNzcyNjYpLEg9big5Mjk4MiksbT1uKDkxNjQ2KSxrPW4oOTQxNjIpLGw9big4NTg5MyksZT1mdW5jdGlvbigpe3ZhciB5PW8oKSh0KCkoKS5tYXJrKGZ1bmN0aW9uIHYoTSl7dmFyIFQsQztyZXR1cm4gdCgpKCkud3JhcChmdW5jdGlvbihFKXtmb3IoOzspc3dpdGNoKEUucHJldj1FLm5leHQpe2Nhc2UgMDppZihUPXAuWlAubG9hZGluZygiXHU2QjYzXHU1NzI4XHU1MjIwXHU5NjY0IiksTSl7RS5uZXh0PTM7YnJlYWt9cmV0dXJuIEUuYWJydXB0KCJyZXR1cm4iLCEwKTtjYXNlIDM6cmV0dXJuIEUucHJldj0zLEUubmV4dD02LGFlKE0ubWFwKGZ1bmN0aW9uKE8pe3JldHVybiBPLmpvYkxvZ0lkfSkuam9pbigiLCIpKTtjYXNlIDY6cmV0dXJuIEM9RS5zZW50LFQoKSxDLmNvZGU9PT0yMDA/cC5aUC5zdWNjZXNzKCJcdTUyMjBcdTk2NjRcdTYyMTBcdTUyOUZcdUZGMENcdTUzNzNcdTVDMDZcdTUyMzdcdTY1QjAiKTpwLlpQLmVycm9yKEMubXNnKSxFLmFicnVwdCgicmV0dXJuIiwhMCk7Y2FzZSAxMjpyZXR1cm4gRS5wcmV2PTEyLEUudDA9RS5jYXRjaCgzKSxUKCkscC5aUC5lcnJvcigiXHU1MjIwXHU5NjY0XHU1OTMxXHU4RDI1XHVGRjBDXHU4QkY3XHU5MUNEXHU4QkQ1IiksRS5hYnJ1cHQoInJldHVybiIsITEpO2Nhc2UgMTc6Y2FzZSJlbmQiOnJldHVybiBFLnN0b3AoKX19LHYsbnVsbCxbWzMsMTJdXSl9KSk7cmV0dXJuIGZ1bmN0aW9uKE0pe3JldHVybiB5LmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCkscz1mdW5jdGlvbigpe3ZhciB5PW8oKSh0KCkoKS5tYXJrKGZ1bmN0aW9uIHYoTSl7dmFyIFQsQyxXO3JldHVybiB0KCkoKS53cmFwKGZ1bmN0aW9uKE8pe2Zvcig7Oylzd2l0Y2goTy5wcmV2PU8ubmV4dCl7Y2FzZSAwOmlmKFQ9cC5aUC5sb2FkaW5nKCJcdTZCNjNcdTU3MjhcdTUyMjBcdTk2NjQiKSxNKXtPLm5leHQ9MzticmVha31yZXR1cm4gTy5hYnJ1cHQoInJldHVybiIsITApO2Nhc2UgMzpyZXR1cm4gTy5wcmV2PTMsQz1bTS5qb2JMb2dJZF0sTy5uZXh0PTcsYWUoQy5qb2luKCIsIikpO2Nhc2UgNzpyZXR1cm4gVz1PLnNlbnQsVCgpLFcuY29kZT09PTIwMD9wLlpQLnN1Y2Nlc3MoIlx1NTIyMFx1OTY2NFx1NjIxMFx1NTI5Rlx1RkYwQ1x1NTM3M1x1NUMwNlx1NTIzN1x1NjVCMCIpOnAuWlAuZXJyb3IoVy5tc2cpLE8uYWJydXB0KCJyZXR1cm4iLCEwKTtjYXNlIDEzOnJldHVybiBPLnByZXY9MTMsTy50MD1PLmNhdGNoKDMpLFQoKSxwLlpQLmVycm9yKCJcdTUyMjBcdTk2NjRcdTU5MzFcdThEMjVcdUZGMENcdThCRjdcdTkxQ0RcdThCRDUiKSxPLmFicnVwdCgicmV0dXJuIiwhMSk7Y2FzZSAxODpjYXNlImVuZCI6cmV0dXJuIE8uc3RvcCgpfX0sdixudWxsLFtbMywxM11dKX0pKTtyZXR1cm4gZnVuY3Rpb24oTSl7cmV0dXJuIHkuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSxEPWZ1bmN0aW9uKCl7dmFyIHk9bygpKHQoKSgpLm1hcmsoZnVuY3Rpb24gdigpe3ZhciBNO3JldHVybiB0KCkoKS53cmFwKGZ1bmN0aW9uKEMpe2Zvcig7Oylzd2l0Y2goQy5wcmV2PUMubmV4dCl7Y2FzZSAwOnJldHVybiBNPXAuWlAubG9hZGluZygiXHU2QjYzXHU1NzI4XHU1QkZDXHU1MUZBIiksQy5wcmV2PTEsQy5uZXh0PTQsYigpO2Nhc2UgNDpyZXR1cm4gTSgpLHAuWlAuc3VjY2VzcygiXHU1QkZDXHU1MUZBXHU2MjEwXHU1MjlGIiksQy5hYnJ1cHQoInJldHVybiIsITApO2Nhc2UgOTpyZXR1cm4gQy5wcmV2PTksQy50MD1DLmNhdGNoKDEpLE0oKSxwLlpQLmVycm9yKCJcdTVCRkNcdTUxRkFcdTU5MzFcdThEMjVcdUZGMENcdThCRjdcdTkxQ0RcdThCRDUiKSxDLmFicnVwdCgicmV0dXJuIiwhMSk7Y2FzZSAxNDpjYXNlImVuZCI6cmV0dXJuIEMuc3RvcCgpfX0sdixudWxsLFtbMSw5XV0pfSkpO3JldHVybiBmdW5jdGlvbigpe3JldHVybiB5LmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksdT1mdW5jdGlvbigpe3ZhciB2PSgwLGoudXNlUmVmKSgpLE09KDAsai51c2VTdGF0ZSkoITEpLFQ9cigpKE0sMiksQz1UWzBdLFc9VFsxXSxFPSgwLGoudXNlUmVmKSgpLE89KDAsai51c2VTdGF0ZSkoKSxpZT1yKCkoTywyKSxtZT1pZVswXSxKPWllWzFdLHBlPSgwLGoudXNlU3RhdGUpKFtdKSxzZT1yKCkocGUsMiksUT1zZVswXSxjZT1zZVsxXSxiZT0oMCxqLnVzZVN0YXRlKShbXSksZGU9cigpKGJlLDIpLE9lPWRlWzBdLHo9ZGVbMV0sUGU9KDAsai51c2VTdGF0ZSkoW10pLF9lPXIoKShQZSwyKSxmZT1fZVswXSxEZT1fZVsxXSx2ZT0oMCxqLnVzZVN0YXRlKShbXSksVGU9cigpKHZlLDIpLE1lPVRlWzBdLGplPVRlWzFdLHJlPSgwLGkudXNlQWNjZXNzKSgpLEVlPSgwLGkudXNlSW50bCkoKSxxPSgwLGkudXNlUGFyYW1zKSgpO3EuaWQ9PT12b2lkIDAmJmkuaGlzdG9yeS5wdXNoKCIvbW9uaXRvci9qb2IiKTt2YXIgZ2U9cS5pZHx8MDsoMCxqLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtnZSE9PXZvaWQgMCYmZ2UhPT0wJiYoMCxtLlpuKShOdW1iZXIoZ2UpKS50aGVuKGZ1bmN0aW9uKFope2plKHtqb2JOYW1lOlouZGF0YS5qb2JOYW1lLGpvYkdyb3VwOlouZGF0YS5qb2JHcm91cH0pfSksKDAsSC5wWCkoInN5c19qb2Jfc3RhdHVzIikudGhlbihmdW5jdGlvbihaKXtEZShaKX0pLCgwLEgucFgpKCJzeXNfam9iX2dyb3VwIikudGhlbihmdW5jdGlvbihaKXt6KFopfSl9LFtdKTt2YXIgZWU9W3t0aXRsZTooMCxsLmpzeCkoaS5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoibW9uaXRvci5qb2IubG9nLmpvYl9sb2dfaWQiLGRlZmF1bHRNZXNzYWdlOiJcdTRFRkJcdTUyQTFcdTY1RTVcdTVGRDdcdTdGMTZcdTUzRjcifSksZGF0YUluZGV4OiJqb2JMb2dJZCIsdmFsdWVUeXBlOiJ0ZXh0IixoaWRlSW5TZWFyY2g6ITB9LHt0aXRsZTooMCxsLmpzeCkoaS5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoibW9uaXRvci5qb2IubG9nLmpvYl9uYW1lIixkZWZhdWx0TWVzc2FnZToiXHU0RUZCXHU1MkExXHU1NDBEXHU3OUYwIn0pLGRhdGFJbmRleDoiam9iTmFtZSIsdmFsdWVUeXBlOiJ0ZXh0In0se3RpdGxlOigwLGwuanN4KShpLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJtb25pdG9yLmpvYi5sb2cuam9iX2dyb3VwIixkZWZhdWx0TWVzc2FnZToiXHU0RUZCXHU1MkExXHU3RUM0XHU1NDBEIn0pLGRhdGFJbmRleDoiam9iR3JvdXAiLHZhbHVlVHlwZToidGV4dCJ9LHt0aXRsZTooMCxsLmpzeCkoaS5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoibW9uaXRvci5qb2IubG9nLmludm9rZV90YXJnZXQiLGRlZmF1bHRNZXNzYWdlOiJcdThDMDNcdTc1MjhcdTc2RUVcdTY4MDdcdTVCNTdcdTdCMjZcdTRFMzIifSksZGF0YUluZGV4OiJpbnZva2VUYXJnZXQiLHZhbHVlVHlwZToidGV4dGFyZWEifSx7dGl0bGU6KDAsbC5qc3gpKGkuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3Iuam9iLmxvZy5qb2JfbWVzc2FnZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjVFNVx1NUZEN1x1NEZFMVx1NjA2RiJ9KSxkYXRhSW5kZXg6ImpvYk1lc3NhZ2UiLHZhbHVlVHlwZToidGV4dGFyZWEifSx7dGl0bGU6KDAsbC5qc3gpKGkuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Im1vbml0b3Iuam9iLmxvZy5zdGF0dXMiLGRlZmF1bHRNZXNzYWdlOiJcdTYyNjdcdTg4NENcdTcyQjZcdTYwMDEifSksZGF0YUluZGV4OiJzdGF0dXMiLHZhbHVlVHlwZToic2VsZWN0Iix2YWx1ZUVudW06ZmUscmVuZGVyOmZ1bmN0aW9uKE4sRyl7cmV0dXJuKDAsbC5qc3gpKGsuWix7ZW51bXM6ZmUsdmFsdWU6Ry5zdGF0dXN9KX19LHt0aXRsZTooMCxsLmpzeCkoaS5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoibW9uaXRvci5qb2IubG9nLmNyZWF0ZV90aW1lIixkZWZhdWx0TWVzc2FnZToiXHU1RjAyXHU1RTM4XHU0RkUxXHU2MDZGIn0pLGRhdGFJbmRleDoiY3JlYXRlVGltZSIsdmFsdWVUeXBlOiJ0ZXh0In0se3RpdGxlOigwLGwuanN4KShpLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJwYWdlcy5zZWFyY2hUYWJsZS50aXRsZU9wdGlvbiIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjRDRFx1NEY1QyJ9KSxkYXRhSW5kZXg6Im9wdGlvbiIsd2lkdGg6IjEyMHB4Iix2YWx1ZVR5cGU6Im9wdGlvbiIscmVuZGVyOmZ1bmN0aW9uKE4sRyl7cmV0dXJuWygwLGwuanN4KSgkLlpQLHt0eXBlOiJsaW5rIixzaXplOiJzbWFsbCIsaGlkZGVuOiFyZS5oYXNQZXJtcygibW9uaXRvcjpqb2ItbG9nOmVkaXQiKSxvbkNsaWNrOmZ1bmN0aW9uKCl7VyghMCksSihHKX0sY2hpbGRyZW46Ilx1N0YxNlx1OEY5MSJ9LCJlZGl0IiksKDAsbC5qc3gpKCQuWlAse3R5cGU6ImxpbmsiLHNpemU6InNtYWxsIixkYW5nZXI6ITAsaGlkZGVuOiFyZS5oYXNQZXJtcygibW9uaXRvcjpqb2ItbG9nOnJlbW92ZSIpLG9uQ2xpY2s6bygpKHQoKSgpLm1hcmsoZnVuY3Rpb24gQigpe3JldHVybiB0KCkoKS53cmFwKGZ1bmN0aW9uKG9lKXtmb3IoOzspc3dpdGNoKG9lLnByZXY9b2UubmV4dCl7Y2FzZSAwOksuWi5jb25maXJtKHt0aXRsZToiXHU1MjIwXHU5NjY0Iixjb250ZW50OiJcdTc4NkVcdTVCOUFcdTUyMjBcdTk2NjRcdThCRTVcdTk4NzlcdTU0MTdcdUZGMUYiLG9rVGV4dDoiXHU3ODZFXHU4QkE0IixjYW5jZWxUZXh0OiJcdTUzRDZcdTZEODgiLG9uT2s6ZnVuY3Rpb24oKXt2YXIgdWU9bygpKHQoKSgpLm1hcmsoZnVuY3Rpb24gbmUoKXt2YXIgQ2U7cmV0dXJuIHQoKSgpLndyYXAoZnVuY3Rpb24oaGUpe2Zvcig7Oylzd2l0Y2goaGUucHJldj1oZS5uZXh0KXtjYXNlIDA6cmV0dXJuIGhlLm5leHQ9MixzKEcpO2Nhc2UgMjpDZT1oZS5zZW50LENlJiZFLmN1cnJlbnQmJkUuY3VycmVudC5yZWxvYWQoKTtjYXNlIDQ6Y2FzZSJlbmQiOnJldHVybiBoZS5zdG9wKCl9fSxuZSl9KSk7ZnVuY3Rpb24gWSgpe3JldHVybiB1ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIFl9KCl9KTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBvZS5zdG9wKCl9fSxCKX0pKSxjaGlsZHJlbjoiXHU1MjIwXHU5NjY0In0sImJhdGNoUmVtb3ZlIildfX1dO3JldHVybigwLGwuanN4cykoYy5feix7Y2hpbGRyZW46WygwLGwuanN4KSgiZGl2Iix7c3R5bGU6e3dpZHRoOiIxMDAlIixmbG9hdDoicmlnaHQifSxjaGlsZHJlbjooMCxsLmpzeCkoTC5aLHtoZWFkZXJUaXRsZTpFZS5mb3JtYXRNZXNzYWdlKHtpZDoicGFnZXMuc2VhcmNoVGFibGUudGl0bGUiLGRlZmF1bHRNZXNzYWdlOiJcdTRGRTFcdTYwNkYifSksYWN0aW9uUmVmOkUsZm9ybVJlZjp2LHJvd0tleToiam9iTG9nSWQiLHNlYXJjaDp7bGFiZWxXaWR0aDoxMjB9LHRvb2xCYXJSZW5kZXI6ZnVuY3Rpb24oKXtyZXR1cm5bKDAsbC5qc3hzKSgkLlpQLHt0eXBlOiJwcmltYXJ5IixoaWRkZW46IXJlLmhhc1Blcm1zKCJtb25pdG9yOmpvYi1sb2c6YWRkIiksb25DbGljazpvKCkodCgpKCkubWFyayhmdW5jdGlvbiBOKCl7cmV0dXJuIHQoKSgpLndyYXAoZnVuY3Rpb24oQil7Zm9yKDs7KXN3aXRjaChCLnByZXY9Qi5uZXh0KXtjYXNlIDA6Sih2b2lkIDApLFcoITApO2Nhc2UgMjpjYXNlImVuZCI6cmV0dXJuIEIuc3RvcCgpfX0sTil9KSksY2hpbGRyZW46WygwLGwuanN4KShTLlose30pLCIgIiwoMCxsLmpzeCkoaS5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoicGFnZXMuc2VhcmNoVGFibGUubmV3IixkZWZhdWx0TWVzc2FnZToiXHU2NUIwXHU1RUZBIn0pXX0sImFkZCIpLCgwLGwuanN4cykoJC5aUCx7dHlwZToicHJpbWFyeSIsZGFuZ2VyOiEwLGhpZGRlbjooUT09bnVsbD92b2lkIDA6US5sZW5ndGgpPT09MHx8IXJlLmhhc1Blcm1zKCJtb25pdG9yOmpvYi1sb2c6cmVtb3ZlIiksb25DbGljazpvKCkodCgpKCkubWFyayhmdW5jdGlvbiBOKCl7cmV0dXJuIHQoKSgpLndyYXAoZnVuY3Rpb24oQil7Zm9yKDs7KXN3aXRjaChCLnByZXY9Qi5uZXh0KXtjYXNlIDA6Sy5aLmNvbmZpcm0oe3RpdGxlOiJcdTY2MkZcdTU0MjZcdTc4NkVcdThCQTRcdTUyMjBcdTk2NjRcdTYyNDBcdTkwMDlcdTY1NzBcdTYzNkVcdTk4Nzk/IixpY29uOigwLGwuanN4KShGLlose30pLGNvbnRlbnQ6Ilx1OEJGN1x1OEMyOFx1NjE0RVx1NjRDRFx1NEY1QyIsb25PazpmdW5jdGlvbigpe3JldHVybiBvKCkodCgpKCkubWFyayhmdW5jdGlvbiBvZSgpe3ZhciB1ZSxZLG5lO3JldHVybiB0KCkoKS53cmFwKGZ1bmN0aW9uKFgpe2Zvcig7Oylzd2l0Y2goWC5wcmV2PVgubmV4dCl7Y2FzZSAwOnJldHVybiBYLm5leHQ9MixlKFEpO2Nhc2UgMjp1ZT1YLnNlbnQsdWUmJihjZShbXSksKFk9RS5jdXJyZW50KT09PW51bGx8fFk9PT12b2lkIDB8fChuZT1ZLnJlbG9hZEFuZFJlc3QpPT09bnVsbHx8bmU9PT12b2lkIDB8fG5lLmNhbGwoWSkpO2Nhc2UgNDpjYXNlImVuZCI6cmV0dXJuIFguc3RvcCgpfX0sb2UpfSkpKCl9LG9uQ2FuY2VsOmZ1bmN0aW9uKCl7fX0pO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIEIuc3RvcCgpfX0sTil9KSksY2hpbGRyZW46WygwLGwuanN4KShkLlose30pLCgwLGwuanN4KShpLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJwYWdlcy5zZWFyY2hUYWJsZS5kZWxldGUiLGRlZmF1bHRNZXNzYWdlOiJcdTUyMjBcdTk2NjQifSldfSwicmVtb3ZlIiksKDAsbC5qc3hzKSgkLlpQLHt0eXBlOiJwcmltYXJ5IixoaWRkZW46IXJlLmhhc1Blcm1zKCJtb25pdG9yOmpvYi1sb2c6ZXhwb3J0Iiksb25DbGljazpvKCkodCgpKCkubWFyayhmdW5jdGlvbiBOKCl7cmV0dXJuIHQoKSgpLndyYXAoZnVuY3Rpb24oQil7Zm9yKDs7KXN3aXRjaChCLnByZXY9Qi5uZXh0KXtjYXNlIDA6RCgpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIEIuc3RvcCgpfX0sTil9KSksY2hpbGRyZW46WygwLGwuanN4KShTLlose30pLCgwLGwuanN4KShpLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJwYWdlcy5zZWFyY2hUYWJsZS5leHBvcnQiLGRlZmF1bHRNZXNzYWdlOiJcdTVCRkNcdTUxRkEifSldfSwiZXhwb3J0IildfSxwYXJhbXM6TWUscmVxdWVzdDpmdW5jdGlvbihOKXtyZXR1cm4gUChhKCkoe30sTikpLnRoZW4oZnVuY3Rpb24oRyl7dmFyIEI9e2RhdGE6Ry5yb3dzLHRvdGFsOkcudG90YWwsc3VjY2VzczohMH07cmV0dXJuIEJ9KX0sY29sdW1uczplZSxyb3dTZWxlY3Rpb246e29uQ2hhbmdlOmZ1bmN0aW9uKE4sRyl7Y2UoRyl9fX0sImpvYi1sb2dMaXN0Iil9KSwoUT09bnVsbD92b2lkIDA6US5sZW5ndGgpPjAmJigwLGwuanN4KShmLlMse2V4dHJhOigwLGwuanN4cykoImRpdiIse2NoaWxkcmVuOlsoMCxsLmpzeCkoaS5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoicGFnZXMuc2VhcmNoVGFibGUuY2hvc2VuIixkZWZhdWx0TWVzc2FnZToiXHU1REYyXHU5MDA5XHU2MkU5In0pLCgwLGwuanN4KSgiYSIse3N0eWxlOntmb250V2VpZ2h0OjYwMH0sY2hpbGRyZW46US5sZW5ndGh9KSwoMCxsLmpzeCkoaS5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoicGFnZXMuc2VhcmNoVGFibGUuaXRlbSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OTg3OSJ9KV19KSxjaGlsZHJlbjooMCxsLmpzeCkoJC5aUCx7ZGFuZ2VyOiEwLGhpZGRlbjohcmUuaGFzUGVybXMoIm1vbml0b3I6am9iLWxvZzpkZWwiKSxvbkNsaWNrOm8oKSh0KCkoKS5tYXJrKGZ1bmN0aW9uIFooKXtyZXR1cm4gdCgpKCkud3JhcChmdW5jdGlvbihHKXtmb3IoOzspc3dpdGNoKEcucHJldj1HLm5leHQpe2Nhc2UgMDpLLlouY29uZmlybSh7dGl0bGU6Ilx1NTIyMFx1OTY2NCIsY29udGVudDoiXHU3ODZFXHU1QjlBXHU1MjIwXHU5NjY0XHU4QkU1XHU5ODc5XHU1NDE3XHVGRjFGIixva1RleHQ6Ilx1Nzg2RVx1OEJBNCIsY2FuY2VsVGV4dDoiXHU1M0Q2XHU2RDg4Iixvbk9rOmZ1bmN0aW9uKCl7dmFyIEI9bygpKHQoKSgpLm1hcmsoZnVuY3Rpb24gb2UoKXt2YXIgdWUsWSxuZTtyZXR1cm4gdCgpKCkud3JhcChmdW5jdGlvbihYKXtmb3IoOzspc3dpdGNoKFgucHJldj1YLm5leHQpe2Nhc2UgMDpyZXR1cm4gWC5uZXh0PTIsZShRKTtjYXNlIDI6dWU9WC5zZW50LHVlJiYoY2UoW10pLChZPUUuY3VycmVudCk9PT1udWxsfHxZPT09dm9pZCAwfHwobmU9WS5yZWxvYWRBbmRSZXN0KT09PW51bGx8fG5lPT09dm9pZCAwfHxuZS5jYWxsKFkpKTtjYXNlIDQ6Y2FzZSJlbmQiOnJldHVybiBYLnN0b3AoKX19LG9lKX0pKTtmdW5jdGlvbiB5ZSgpe3JldHVybiBCLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4geWV9KCl9KTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBHLnN0b3AoKX19LFopfSkpLGNoaWxkcmVuOigwLGwuanN4KShpLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJwYWdlcy5zZWFyY2hUYWJsZS5iYXRjaERlbGV0aW9uIixkZWZhdWx0TWVzc2FnZToiXHU2Mjc5XHU5MUNGXHU1MjIwXHU5NjY0In0pfSwicmVtb3ZlIil9KSwoMCxsLmpzeCkody5kZWZhdWx0LHtvbkNhbmNlbDpmdW5jdGlvbigpe1coITEpLEoodm9pZCAwKX0sb3BlbjpDLHZhbHVlczptZXx8e30sc3RhdHVzT3B0aW9uczpmZSxqb2JHcm91cE9wdGlvbnM6T2V9KV19KX0sXz11fSw5MTY0NjpmdW5jdGlvbih0ZSxVLG4pe24uZChVLHtHbzpmdW5jdGlvbigpe3JldHVybiBBfSxRJDpmdW5jdGlvbigpe3JldHVybiBmfSxZJDpmdW5jdGlvbigpe3JldHVybiBpfSxabjpmdW5jdGlvbigpe3JldHVybiBqfSxlWDpmdW5jdGlvbigpe3JldHVybiBjfSxnSzpmdW5jdGlvbigpe3JldHVybiAkfSx1dTpmdW5jdGlvbigpe3JldHVybiBTfX0pO3ZhciBoPW4oMTUwMDkpLGE9bi5uKGgpLFI9big5OTI4OSkscj1uLm4oUikseD1uKDc2NzcyKSx0PW4oMzA5NjQpO2Z1bmN0aW9uIEEoZCl7cmV0dXJuIG8uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIG8oKXtyZXR1cm4gbz1yKCkoYSgpKCkubWFyayhmdW5jdGlvbiBkKEkpe3JldHVybiBhKCkoKS53cmFwKGZ1bmN0aW9uKGcpe2Zvcig7Oylzd2l0Y2goZy5wcmV2PWcubmV4dCl7Y2FzZSAwOnJldHVybiBnLmFicnVwdCgicmV0dXJuIiwoMCx4LnJlcXVlc3QpKCIvYXBpL21vbml0b3Ivam9iL2xpc3QiLHttZXRob2Q6IkdFVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCJ9LHBhcmFtczpJfSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGcuc3RvcCgpfX0sZCl9KSksby5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gaihkKXtyZXR1cm4oMCx4LnJlcXVlc3QpKCIvYXBpL21vbml0b3Ivam9iLyIuY29uY2F0KGQpLHttZXRob2Q6IkdFVCJ9KX1mdW5jdGlvbiBpKGQpe3JldHVybiBwLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBwKCl7cmV0dXJuIHA9cigpKGEoKSgpLm1hcmsoZnVuY3Rpb24gZChJKXtyZXR1cm4gYSgpKCkud3JhcChmdW5jdGlvbihnKXtmb3IoOzspc3dpdGNoKGcucHJldj1nLm5leHQpe2Nhc2UgMDpyZXR1cm4gZy5hYnJ1cHQoInJldHVybiIsKDAseC5yZXF1ZXN0KSgiL2FwaS9tb25pdG9yL2pvYiIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCJ9LGRhdGE6SX0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBnLnN0b3AoKX19LGQpfSkpLHAuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uICQoZCl7cmV0dXJuIEsuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEsoKXtyZXR1cm4gSz1yKCkoYSgpKCkubWFyayhmdW5jdGlvbiBkKEkpe3JldHVybiBhKCkoKS53cmFwKGZ1bmN0aW9uKGcpe2Zvcig7Oylzd2l0Y2goZy5wcmV2PWcubmV4dCl7Y2FzZSAwOnJldHVybiBnLmFicnVwdCgicmV0dXJuIiwoMCx4LnJlcXVlc3QpKCIvYXBpL21vbml0b3Ivam9iIix7bWV0aG9kOiJQVVQiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgifSxkYXRhOkl9KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gZy5zdG9wKCl9fSxkKX0pKSxLLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBjKGQpe3JldHVybiBMLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBMKCl7cmV0dXJuIEw9cigpKGEoKSgpLm1hcmsoZnVuY3Rpb24gZChJKXtyZXR1cm4gYSgpKCkud3JhcChmdW5jdGlvbihnKXtmb3IoOzspc3dpdGNoKGcucHJldj1nLm5leHQpe2Nhc2UgMDpyZXR1cm4gZy5hYnJ1cHQoInJldHVybiIsKDAseC5yZXF1ZXN0KSgiL2FwaS9tb25pdG9yL2pvYi8iLmNvbmNhdChJKSx7bWV0aG9kOiJERUxFVEUifSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGcuc3RvcCgpfX0sZCl9KSksTC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gZihkKXtyZXR1cm4oMCx0LnN1KSgiL2FwaS9tb25pdG9yL2pvYi9leHBvcnQiLHtwYXJhbXM6ZH0sImpvYl8iLmNvbmNhdChuZXcgRGF0ZSgpLmdldFRpbWUoKSwiLnhsc3giKSl9ZnVuY3Rpb24gUyhkLEkpe3JldHVybiBGLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBGKCl7cmV0dXJuIEY9cigpKGEoKSgpLm1hcmsoZnVuY3Rpb24gZChJLFApe3ZhciBnO3JldHVybiBhKCkoKS53cmFwKGZ1bmN0aW9uKFYpe2Zvcig7Oylzd2l0Y2goVi5wcmV2PVYubmV4dCl7Y2FzZSAwOnJldHVybiBnPXtqb2JJZDpJLGpvYkdyb3VwOlB9LFYuYWJydXB0KCJyZXR1cm4iLCgwLHgucmVxdWVzdCkoIi9hcGkvbW9uaXRvci9qb2IvcnVuIix7bWV0aG9kOiJQVVQiLGRhdGE6Z30pKTtjYXNlIDI6Y2FzZSJlbmQiOnJldHVybiBWLnN0b3AoKX19LGQpfSkpLEYuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0sOTI5ODI6ZnVuY3Rpb24odGUsVSxuKXtuLmQoVSx7SHI6ZnVuY3Rpb24oKXtyZXR1cm4gTH0sUUs6ZnVuY3Rpb24oKXtyZXR1cm4gVn0sVmQ6ZnVuY3Rpb24oKXtyZXR1cm4gJH0sYTc6ZnVuY3Rpb24oKXtyZXR1cm4gZH0saks6ZnVuY3Rpb24oKXtyZXR1cm4gaX0sbjI6ZnVuY3Rpb24oKXtyZXR1cm4gYWV9LG9IOmZ1bmN0aW9uKCl7cmV0dXJuIFN9LHBYOmZ1bmN0aW9uKCl7cmV0dXJuIEt9LHNGOmZ1bmN0aW9uKCl7cmV0dXJuIFB9fSk7dmFyIGg9bigxNTAwOSksYT1uLm4oaCksUj1uKDk3ODU3KSxyPW4ubihSKSx4PW4oOTkyODkpLHQ9bi5uKHgpLEE9big3Njc3Miksbz1uKDMzODY3KSxqPW4oMzA5NjQpO2Z1bmN0aW9uIGkoYil7cmV0dXJuIHAuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHAoKXtyZXR1cm4gcD10KCkoYSgpKCkubWFyayhmdW5jdGlvbiBiKHcpe3JldHVybiBhKCkoKS53cmFwKGZ1bmN0aW9uKG0pe2Zvcig7Oylzd2l0Y2gobS5wcmV2PW0ubmV4dCl7Y2FzZSAwOnJldHVybiBtLmFicnVwdCgicmV0dXJuIiwoMCxBLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS9kaWN0L3R5cGUvbGlzdCIse3BhcmFtczpyKCkoe30sdyksbWV0aG9kOiJHRVQiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgifX0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBtLnN0b3AoKX19LGIpfSkpLHAuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uICQoYil7cmV0dXJuKDAsQS5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vZGljdC90eXBlLyIuY29uY2F0KGIpLHttZXRob2Q6IkdFVCJ9KX1mdW5jdGlvbiBLKGIsdyl7cmV0dXJuIGMuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGMoKXtyZXR1cm4gYz10KCkoYSgpKCkubWFyayhmdW5jdGlvbiBiKHcsSCl7dmFyIG0saztyZXR1cm4gYSgpKCkud3JhcChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gZS5uZXh0PTIsKDAsQS5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vZGljdC9kYXRhL3R5cGUvIi5jb25jYXQodykse21ldGhvZDoiR0VUIn0pO2Nhc2UgMjppZihtPWUuc2VudCxtLmNvZGUhPT1vLmlLLlNVQ0NFU1Mpe2UubmV4dD05O2JyZWFrfXJldHVybiBrPXt9LG0uZGF0YS5mb3JFYWNoKGZ1bmN0aW9uKHMpe2tbcy5kaWN0VmFsdWVdPXt0ZXh0OnMuZGljdExhYmVsLGxhYmVsOnMuZGljdExhYmVsLHZhbHVlOkg/TnVtYmVyKHMuZGljdFZhbHVlKTpzLmRpY3RWYWx1ZSxrZXk6cy5kaWN0Q29kZSxsaXN0Q2xhc3M6cy5saXN0Q2xhc3Msc3RhdHVzOnMubGlzdENsYXNzfX0pLGUuYWJydXB0KCJyZXR1cm4iLGspO2Nhc2UgOTpyZXR1cm4gZS5hYnJ1cHQoInJldHVybiIse30pO2Nhc2UgMTA6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19LGIpfSkpLGMuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEwoYix3KXtyZXR1cm4gZi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gZigpe3JldHVybiBmPXQoKShhKCkoKS5tYXJrKGZ1bmN0aW9uIGIodyxIKXt2YXIgbSxrO3JldHVybiBhKCkoKS53cmFwKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOnJldHVybiBlLm5leHQ9MiwoMCxBLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS9kaWN0L2RhdGEvdHlwZS8iLmNvbmNhdCh3KSx7bWV0aG9kOiJHRVQifSk7Y2FzZSAyOmlmKG09ZS5zZW50LG0uY29kZSE9PTIwMCl7ZS5uZXh0PTY7YnJlYWt9cmV0dXJuIGs9bS5kYXRhLm1hcChmdW5jdGlvbihzKXtyZXR1cm57dGV4dDpzLmRpY3RMYWJlbCxsYWJlbDpzLmRpY3RMYWJlbCx2YWx1ZTpIP051bWJlcihzLmRpY3RWYWx1ZSk6cy5kaWN0VmFsdWUsa2V5OnMuZGljdENvZGUsbGlzdENsYXNzOnMubGlzdENsYXNzLHN0YXR1czpzLmxpc3RDbGFzc319KSxlLmFicnVwdCgicmV0dXJuIixrKTtjYXNlIDY6cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLFtdKTtjYXNlIDc6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19LGIpfSkpLGYuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIFMoYil7cmV0dXJuIEYuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEYoKXtyZXR1cm4gRj10KCkoYSgpKCkubWFyayhmdW5jdGlvbiBiKHcpe3JldHVybiBhKCkoKS53cmFwKGZ1bmN0aW9uKG0pe2Zvcig7Oylzd2l0Y2gobS5wcmV2PW0ubmV4dCl7Y2FzZSAwOnJldHVybiBtLmFicnVwdCgicmV0dXJuIiwoMCxBLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS9kaWN0L3R5cGUiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgifSxkYXRhOnd9KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gbS5zdG9wKCl9fSxiKX0pKSxGLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBkKGIpe3JldHVybiBJLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBJKCl7cmV0dXJuIEk9dCgpKGEoKSgpLm1hcmsoZnVuY3Rpb24gYih3KXtyZXR1cm4gYSgpKCkud3JhcChmdW5jdGlvbihtKXtmb3IoOzspc3dpdGNoKG0ucHJldj1tLm5leHQpe2Nhc2UgMDpyZXR1cm4gbS5hYnJ1cHQoInJldHVybiIsKDAsQS5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vZGljdC90eXBlIix7bWV0aG9kOiJQVVQiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgifSxkYXRhOnd9KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gbS5zdG9wKCl9fSxiKX0pKSxJLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBQKGIpe3JldHVybiBnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBnKCl7cmV0dXJuIGc9dCgpKGEoKSgpLm1hcmsoZnVuY3Rpb24gYih3KXtyZXR1cm4gYSgpKCkud3JhcChmdW5jdGlvbihtKXtmb3IoOzspc3dpdGNoKG0ucHJldj1tLm5leHQpe2Nhc2UgMDpyZXR1cm4gbS5hYnJ1cHQoInJldHVybiIsKDAsQS5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vZGljdC90eXBlLyIuY29uY2F0KHcpLHttZXRob2Q6IkRFTEVURSJ9KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gbS5zdG9wKCl9fSxiKX0pKSxnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBhZShiKXtyZXR1cm4oMCxqLnN1KSgiL2FwaS9zeXN0ZW0vZGljdC90eXBlL2V4cG9ydCIse3BhcmFtczpifSwiZGljdF90eXBlXyIuY29uY2F0KG5ldyBEYXRlKCkuZ2V0VGltZSgpLCIueGxzeCIpKX1mdW5jdGlvbiBWKGIpe3JldHVybiBsZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gbGUoKXtyZXR1cm4gbGU9dCgpKGEoKSgpLm1hcmsoZnVuY3Rpb24gYih3KXtyZXR1cm4gYSgpKCkud3JhcChmdW5jdGlvbihtKXtmb3IoOzspc3dpdGNoKG0ucHJldj1tLm5leHQpe2Nhc2UgMDpyZXR1cm4gbS5hYnJ1cHQoInJldHVybiIsKDAsQS5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vZGljdC90eXBlL29wdGlvbnNlbGVjdCIse3BhcmFtczpyKCkoe30sdyksbWV0aG9kOiJHRVQiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgifX0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBtLnN0b3AoKX19LGIpfSkpLGxlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19LDMwOTY0OmZ1bmN0aW9uKHRlLFUsbil7bi5kKFUse3A2OmZ1bmN0aW9uKCl7cmV0dXJuIGl9LHN1OmZ1bmN0aW9uKCl7cmV0dXJuIHB9fSk7dmFyIGg9bigxNTAwOSksYT1uLm4oaCksUj1uKDk3ODU3KSxyPW4ubihSKSx4PW4oOTkyODkpLHQ9bi5uKHgpLEE9big3Njc3Miksbz17eGxzeDoiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQiLHppcDoiYXBwbGljYXRpb24vemlwIn07ZnVuY3Rpb24gaihjLEwpe3ZhciBmPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKSxTPW5ldyBCbG9iKFtjLmRhdGFdLHt0eXBlOkx9KSxGPW5ldyBSZWdFeHAoImZpbGVuYW1lPShbXjtdK1xcLlteXFwuO10rKTsqIiksZD1kZWNvZGVVUkkoYy5oZWFkZXJzWyJjb250ZW50LWRpc3Bvc2l0aW9uIl0pLEk9Ri5leGVjKGQpLFA9ST9JWzFdOiJmaWxlIjtQPVAucmVwbGFjZSgvIi9nLCIiKSxmLnN0eWxlLmRpc3BsYXk9Im5vbmUiLGYuaHJlZj1VUkwuY3JlYXRlT2JqZWN0VVJMKFMpLGYuc2V0QXR0cmlidXRlKCJkb3dubG9hZCIsUCksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmKSxmLmNsaWNrKCksVVJMLnJldm9rZU9iamVjdFVSTChmLmhyZWYpLGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZil9ZnVuY3Rpb24gaShjKXsoMCxBLnJlcXVlc3QpKGMse21ldGhvZDoiR0VUIixyZXNwb25zZVR5cGU6ImJsb2IiLGdldFJlc3BvbnNlOiEwfSkudGhlbihmdW5jdGlvbihMKXtqKEwsby56aXApfSl9ZnVuY3Rpb24gcChjLEwsZil7cmV0dXJuICQuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uICQoKXtyZXR1cm4gJD10KCkoYSgpKCkubWFyayhmdW5jdGlvbiBjKEwsZixTKXtyZXR1cm4gYSgpKCkud3JhcChmdW5jdGlvbihkKXtmb3IoOzspc3dpdGNoKGQucHJldj1kLm5leHQpe2Nhc2UgMDpyZXR1cm4gZC5hYnJ1cHQoInJldHVybiIsKDAsQS5yZXF1ZXN0KShMLHIoKShyKCkoe30sZikse30se21ldGhvZDoiUE9TVCIscmVzcG9uc2VUeXBlOiJibG9iIn0pKS50aGVuKGZ1bmN0aW9uKEkpe3ZhciBQPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKSxnPUk7UC5zdHlsZS5kaXNwbGF5PSJub25lIixQLmhyZWY9VVJMLmNyZWF0ZU9iamVjdFVSTChnKSxQLnNldEF0dHJpYnV0ZSgiZG93bmxvYWQiLFMpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoUCksUC5jbGljaygpLFVSTC5yZXZva2VPYmplY3RVUkwoUC5ocmVmKSxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKFApfSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGQuc3RvcCgpfX0sYyl9KSksJC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gSyhjKXt3aW5kb3cubG9jYXRpb24uaHJlZj0iL2FwaS9jb21tb24vZG93bmxvYWQ/ZmlsZU5hbWU9Ii5jb25jYXQoZW5jb2RlVVJJKGMpLCImZGVsZXRlPSIsITApfX0sNjEzMTQ6ZnVuY3Rpb24odGUsVSxuKXtuLmQoVSx7bjpmdW5jdGlvbigpe3JldHVybiBofX0pO2Z1bmN0aW9uIGgoYSxSLHIpe2lmKFIhPT12b2lkIDApe3ZhciB4PWFbUl07aWYoeClyZXR1cm4geC50ZXh0fXJldHVybiByfHxSfX0sNjYzMDk6ZnVuY3Rpb24odGUsVSxuKXtuLmQoVSx7WjpmdW5jdGlvbigpe3JldHVybiBsfX0pO3ZhciBoPW4oNjcyOTQpLGE9big5Mzk2NyksUj1uLm4oYSkscj1uKDk4NDIzKSx4PW4oOTg3ODcpLHQ9big2OTc2MCksQT1uKDk2MTU5KSxvPW4oNDUzNTMpLGo9big1MzEyNCksaT1uKDExNTY4KSxwPW4oMTUwNjMpLCQ9bigxNDc0NyksSz1uKDgzMjYyKSxjPW4oODM1NTkpO2NvbnN0IEw9ZT0+e2NvbnN0e3BhZGRpbmdYWFM6cyxsaW5lV2lkdGg6RCx0YWdQYWRkaW5nSG9yaXpvbnRhbDp1LGNvbXBvbmVudENsczpfLGNhbGM6eX09ZSx2PXkodSkuc3ViKEQpLmVxdWFsKCksTT15KHMpLnN1YihEKS5lcXVhbCgpO3JldHVybntbX106T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCgwLCQuV2YpKGUpKSx7ZGlzcGxheToiaW5saW5lLWJsb2NrIixoZWlnaHQ6ImF1dG8iLG1hcmdpbklubGluZUVuZDplLm1hcmdpblhTLHBhZGRpbmdJbmxpbmU6dixmb250U2l6ZTplLnRhZ0ZvbnRTaXplLGxpbmVIZWlnaHQ6ZS50YWdMaW5lSGVpZ2h0LHdoaXRlU3BhY2U6Im5vd3JhcCIsYmFja2dyb3VuZDplLmRlZmF1bHRCZyxib3JkZXI6YCR7KDAsaS5iZikoZS5saW5lV2lkdGgpfSAke2UubGluZVR5cGV9ICR7ZS5jb2xvckJvcmRlcn1gLGJvcmRlclJhZGl1czplLmJvcmRlclJhZGl1c1NNLG9wYWNpdHk6MSx0cmFuc2l0aW9uOmBhbGwgJHtlLm1vdGlvbkR1cmF0aW9uTWlkfWAsdGV4dEFsaWduOiJzdGFydCIscG9zaXRpb246InJlbGF0aXZlIixbYCYke199LXJ0bGBdOntkaXJlY3Rpb246InJ0bCJ9LCImLCBhLCBhOmhvdmVyIjp7Y29sb3I6ZS5kZWZhdWx0Q29sb3J9LFtgJHtffS1jbG9zZS1pY29uYF06e21hcmdpbklubGluZVN0YXJ0Ok0sZm9udFNpemU6ZS50YWdJY29uU2l6ZSxjb2xvcjplLmNvbG9yVGV4dERlc2NyaXB0aW9uLGN1cnNvcjoicG9pbnRlciIsdHJhbnNpdGlvbjpgYWxsICR7ZS5tb3Rpb25EdXJhdGlvbk1pZH1gLCImOmhvdmVyIjp7Y29sb3I6ZS5jb2xvclRleHRIZWFkaW5nfX0sW2AmJHtffS1oYXMtY29sb3JgXTp7Ym9yZGVyQ29sb3I6InRyYW5zcGFyZW50IixbYCYsIGEsIGE6aG92ZXIsICR7ZS5pY29uQ2xzfS1jbG9zZSwgJHtlLmljb25DbHN9LWNsb3NlOmhvdmVyYF06e2NvbG9yOmUuY29sb3JUZXh0TGlnaHRTb2xpZH19LCImLWNoZWNrYWJsZSI6e2JhY2tncm91bmRDb2xvcjoidHJhbnNwYXJlbnQiLGJvcmRlckNvbG9yOiJ0cmFuc3BhcmVudCIsY3Vyc29yOiJwb2ludGVyIixbYCY6bm90KCR7X30tY2hlY2thYmxlLWNoZWNrZWQpOmhvdmVyYF06e2NvbG9yOmUuY29sb3JQcmltYXJ5LGJhY2tncm91bmRDb2xvcjplLmNvbG9yRmlsbFNlY29uZGFyeX0sIiY6YWN0aXZlLCAmLWNoZWNrZWQiOntjb2xvcjplLmNvbG9yVGV4dExpZ2h0U29saWR9LCImLWNoZWNrZWQiOntiYWNrZ3JvdW5kQ29sb3I6ZS5jb2xvclByaW1hcnksIiY6aG92ZXIiOntiYWNrZ3JvdW5kQ29sb3I6ZS5jb2xvclByaW1hcnlIb3Zlcn19LCImOmFjdGl2ZSI6e2JhY2tncm91bmRDb2xvcjplLmNvbG9yUHJpbWFyeUFjdGl2ZX19LCImLWhpZGRlbiI6e2Rpc3BsYXk6Im5vbmUifSxbYD4gJHtlLmljb25DbHN9ICsgc3BhbiwgPiBzcGFuICsgJHtlLmljb25DbHN9YF06e21hcmdpbklubGluZVN0YXJ0OnZ9fSksW2Ake199LWJvcmRlcmxlc3NgXTp7Ym9yZGVyQ29sb3I6InRyYW5zcGFyZW50IixiYWNrZ3JvdW5kOmUudGFnQm9yZGVybGVzc0JnfX19LGY9ZT0+e2NvbnN0e2xpbmVXaWR0aDpzLGZvbnRTaXplSWNvbjpELGNhbGM6dX09ZSxfPWUuZm9udFNpemVTTTtyZXR1cm4oMCxLLklYKShlLHt0YWdGb250U2l6ZTpfLHRhZ0xpbmVIZWlnaHQ6KDAsaS5iZikodShlLmxpbmVIZWlnaHRTTSkubXVsKF8pLmVxdWFsKCkpLHRhZ0ljb25TaXplOnUoRCkuc3ViKHUocykubXVsKDIpKS5lcXVhbCgpLHRhZ1BhZGRpbmdIb3Jpem9udGFsOjgsdGFnQm9yZGVybGVzc0JnOmUuZGVmYXVsdEJnfSl9LFM9ZT0+KHtkZWZhdWx0Qmc6bmV3IHAudChlLmNvbG9yRmlsbFF1YXRlcm5hcnkpLm9uQmFja2dyb3VuZChlLmNvbG9yQmdDb250YWluZXIpLnRvSGV4U3RyaW5nKCksZGVmYXVsdENvbG9yOmUuY29sb3JUZXh0fSk7dmFyIEY9KDAsYy5JJCkoIlRhZyIsZT0+e2NvbnN0IHM9ZihlKTtyZXR1cm4gTChzKX0sUyksZD1mdW5jdGlvbihlLHMpe3ZhciBEPXt9O2Zvcih2YXIgdSBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHUpJiZzLmluZGV4T2YodSk8MCYmKERbdV09ZVt1XSk7aWYoZSE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBfPTAsdT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO188dS5sZW5ndGg7XysrKXMuaW5kZXhPZih1W19dKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSx1W19dKSYmKERbdVtfXV09ZVt1W19dXSk7cmV0dXJuIER9LFA9aC5mb3J3YXJkUmVmKChlLHMpPT57Y29uc3R7cHJlZml4Q2xzOkQsc3R5bGU6dSxjbGFzc05hbWU6XyxjaGVja2VkOnksb25DaGFuZ2U6dixvbkNsaWNrOk19PWUsVD1kKGUsWyJwcmVmaXhDbHMiLCJzdHlsZSIsImNsYXNzTmFtZSIsImNoZWNrZWQiLCJvbkNoYW5nZSIsIm9uQ2xpY2siXSkse2dldFByZWZpeENsczpDLHRhZzpXfT1oLnVzZUNvbnRleHQoai5FXyksRT1zZT0+e3Y9PW51bGx8fHYoIXkpLE09PW51bGx8fE0oc2UpfSxPPUMoInRhZyIsRCksW2llLG1lLEpdPUYoTykscGU9UigpKE8sYCR7T30tY2hlY2thYmxlYCx7W2Ake099LWNoZWNrYWJsZS1jaGVja2VkYF06eX0sVz09bnVsbD92b2lkIDA6Vy5jbGFzc05hbWUsXyxtZSxKKTtyZXR1cm4gaWUoaC5jcmVhdGVFbGVtZW50KCJzcGFuIixPYmplY3QuYXNzaWduKHt9LFQse3JlZjpzLHN0eWxlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx1KSxXPT1udWxsP3ZvaWQgMDpXLnN0eWxlKSxjbGFzc05hbWU6cGUsb25DbGljazpFfSkpKX0pLGc9big5ODcxOSk7Y29uc3QgYWU9ZT0+KDAsZy5aKShlLChzLEQpPT57bGV0e3RleHRDb2xvcjp1LGxpZ2h0Qm9yZGVyQ29sb3I6XyxsaWdodENvbG9yOnksZGFya0NvbG9yOnZ9PUQ7cmV0dXJue1tgJHtlLmNvbXBvbmVudENsc30ke2UuY29tcG9uZW50Q2xzfS0ke3N9YF06e2NvbG9yOnUsYmFja2dyb3VuZDp5LGJvcmRlckNvbG9yOl8sIiYtaW52ZXJzZSI6e2NvbG9yOmUuY29sb3JUZXh0TGlnaHRTb2xpZCxiYWNrZ3JvdW5kOnYsYm9yZGVyQ29sb3I6dn0sW2AmJHtlLmNvbXBvbmVudENsc30tYm9yZGVybGVzc2BdOntib3JkZXJDb2xvcjoidHJhbnNwYXJlbnQifX19fSk7dmFyIFY9KDAsYy5iaykoWyJUYWciLCJwcmVzZXQiXSxlPT57Y29uc3Qgcz1mKGUpO3JldHVybiBhZShzKX0sUyk7ZnVuY3Rpb24gbGUoZSl7cmV0dXJuIHR5cGVvZiBlIT0ic3RyaW5nIj9lOmUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrZS5zbGljZSgxKX1jb25zdCBiPShlLHMsRCk9Pntjb25zdCB1PWxlKEQpO3JldHVybntbYCR7ZS5jb21wb25lbnRDbHN9JHtlLmNvbXBvbmVudENsc30tJHtzfWBdOntjb2xvcjplW2Bjb2xvciR7RH1gXSxiYWNrZ3JvdW5kOmVbYGNvbG9yJHt1fUJnYF0sYm9yZGVyQ29sb3I6ZVtgY29sb3Ike3V9Qm9yZGVyYF0sW2AmJHtlLmNvbXBvbmVudENsc30tYm9yZGVybGVzc2BdOntib3JkZXJDb2xvcjoidHJhbnNwYXJlbnQifX19fTt2YXIgdz0oMCxjLmJrKShbIlRhZyIsInN0YXR1cyJdLGU9Pntjb25zdCBzPWYoZSk7cmV0dXJuW2Iocywic3VjY2VzcyIsIlN1Y2Nlc3MiKSxiKHMsInByb2Nlc3NpbmciLCJJbmZvIiksYihzLCJlcnJvciIsIkVycm9yIiksYihzLCJ3YXJuaW5nIiwiV2FybmluZyIpXX0sUyksSD1mdW5jdGlvbihlLHMpe3ZhciBEPXt9O2Zvcih2YXIgdSBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHUpJiZzLmluZGV4T2YodSk8MCYmKERbdV09ZVt1XSk7aWYoZSE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBfPTAsdT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO188dS5sZW5ndGg7XysrKXMuaW5kZXhPZih1W19dKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSx1W19dKSYmKERbdVtfXV09ZVt1W19dXSk7cmV0dXJuIER9O2NvbnN0IGs9aC5mb3J3YXJkUmVmKChlLHMpPT57Y29uc3R7cHJlZml4Q2xzOkQsY2xhc3NOYW1lOnUscm9vdENsYXNzTmFtZTpfLHN0eWxlOnksY2hpbGRyZW46dixpY29uOk0sY29sb3I6VCxvbkNsb3NlOkMsYm9yZGVyZWQ6Vz0hMCx2aXNpYmxlOkV9PWUsTz1IKGUsWyJwcmVmaXhDbHMiLCJjbGFzc05hbWUiLCJyb290Q2xhc3NOYW1lIiwic3R5bGUiLCJjaGlsZHJlbiIsImljb24iLCJjb2xvciIsIm9uQ2xvc2UiLCJib3JkZXJlZCIsInZpc2libGUiXSkse2dldFByZWZpeENsczppZSxkaXJlY3Rpb246bWUsdGFnOkp9PWgudXNlQ29udGV4dChqLkVfKSxbcGUsc2VdPWgudXNlU3RhdGUoITApLFE9KDAsci5aKShPLFsiY2xvc2VJY29uIiwiY2xvc2FibGUiXSk7aC51c2VFZmZlY3QoKCk9PntFIT09dm9pZCAwJiZzZShFKX0sW0VdKTtjb25zdCBjZT0oMCx4Lm8yKShUKSxiZT0oMCx4LnlUKShUKSxkZT1jZXx8YmUsT2U9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHtiYWNrZ3JvdW5kQ29sb3I6VCYmIWRlP1Q6dm9pZCAwfSxKPT1udWxsP3ZvaWQgMDpKLnN0eWxlKSx5KSx6PWllKCJ0YWciLEQpLFtQZSxfZSxmZV09Rih6KSxEZT1SKCkoeixKPT1udWxsP3ZvaWQgMDpKLmNsYXNzTmFtZSx7W2Ake3p9LSR7VH1gXTpkZSxbYCR7en0taGFzLWNvbG9yYF06VCYmIWRlLFtgJHt6fS1oaWRkZW5gXTohcGUsW2Ake3p9LXJ0bGBdOm1lPT09InJ0bCIsW2Ake3p9LWJvcmRlcmxlc3NgXTohV30sdSxfLF9lLGZlKSx2ZT1xPT57cS5zdG9wUHJvcGFnYXRpb24oKSxDPT1udWxsfHxDKHEpLCFxLmRlZmF1bHRQcmV2ZW50ZWQmJnNlKCExKX0sWyxUZV09KDAsdC5aKSgoMCx0LncpKGUpLCgwLHQudykoSikse2Nsb3NhYmxlOiExLGNsb3NlSWNvblJlbmRlcjpxPT57Y29uc3QgZ2U9aC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmAke3p9LWNsb3NlLWljb25gLG9uQ2xpY2s6dmV9LHEpO3JldHVybigwLEEud20pKHEsZ2UsZWU9Pih7b25DbGljazpaPT57dmFyIE47KE49ZWU9PW51bGw/dm9pZCAwOmVlLm9uQ2xpY2spPT09bnVsbHx8Tj09PXZvaWQgMHx8Ti5jYWxsKGVlLFopLHZlKFopfSxjbGFzc05hbWU6UigpKGVlPT1udWxsP3ZvaWQgMDplZS5jbGFzc05hbWUsYCR7en0tY2xvc2UtaWNvbmApfSkpfX0pLE1lPXR5cGVvZiBPLm9uQ2xpY2s9PSJmdW5jdGlvbiJ8fHYmJnYudHlwZT09PSJhIixqZT1NfHxudWxsLHJlPWplP2guY3JlYXRlRWxlbWVudChoLkZyYWdtZW50LG51bGwsamUsdiYmaC5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLHYpKTp2LEVlPWguY3JlYXRlRWxlbWVudCgic3BhbiIsT2JqZWN0LmFzc2lnbih7fSxRLHtyZWY6cyxjbGFzc05hbWU6RGUsc3R5bGU6T2V9KSxyZSxUZSxjZSYmaC5jcmVhdGVFbGVtZW50KFYse2tleToicHJlc2V0IixwcmVmaXhDbHM6en0pLGJlJiZoLmNyZWF0ZUVsZW1lbnQodyx7a2V5OiJzdGF0dXMiLHByZWZpeENsczp6fSkpO3JldHVybiBQZShNZT9oLmNyZWF0ZUVsZW1lbnQoby5aLHtjb21wb25lbnQ6IlRhZyJ9LEVlKTpFZSl9KTtrLkNoZWNrYWJsZVRhZz1QO3ZhciBsPWt9fV0pOwpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy9wX19Qb3N0Q2VudGVyX19Qb3N0RGV0YWlsLjVkNWUwNzA1LmFzeW5jLmpzIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy9wX19Qb3N0Q2VudGVyX19Qb3N0RGV0YWlsLjVkNWUwNzA1LmFzeW5jLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhkMWZmZDQKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljL3BfX1Bvc3RDZW50ZXJfX1Bvc3REZXRhaWwuNWQ1ZTA3MDUuYXN5bmMuanMKQEAgLTAsMCArMSwyIEBACisidXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W10pLnB1c2goW1syNjM2LDkwMDZdLHs4OTAwNjpmdW5jdGlvbihIZSxLLHIpe3IucihLKSxyLmQoSyx7ZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybiBtZX19KTt2YXIgUD1yKDY3Mjk0KSxRPXIoNDM5MyksRT1yKDY4OTk3KSxOPXIoNjYzMDkpLCQ9cig4MzYyMiksdT1yKDU0ODExKSxXPXIoODc1NDcpLEk9cigyNDAxOSksVj1yKDk5NjExKSxPPXIoNzEyNTUpLHA9cig0OTY0NyksT2U9cig3Njc3MiksYj17cG9zdENhcmRXcmFwcGVyOiJwb3N0Q2FyZFdyYXBwZXJfX19TdzFTaSIscG9zdENhcmQ6InBvc3RDYXJkX19fZkxLTmEiLGNvdmVyQ29udGFpbmVyOiJjb3ZlckNvbnRhaW5lcl9fX0c4bzE0Iixjb3ZlckltYWdlOiJjb3ZlckltYWdlX19fc25jeGUiLHByb21vdGlvbkJhZGdlOiJwcm9tb3Rpb25CYWRnZV9fX25yZkR5IixjYXJkQ29udGVudDoiY2FyZENvbnRlbnRfX194b0tzXyIscG9zdFRpdGxlOiJwb3N0VGl0bGVfX19rSk5VdCIscG9zdE1ldGE6InBvc3RNZXRhX19fb0F2Y0giLGF1dGhvck5hbWU6ImF1dGhvck5hbWVfX19BVmhTbSIscHVibGlzaFRpbWU6InB1Ymxpc2hUaW1lX19fTHJQcWgiLHRhZ3NDb250YWluZXI6InRhZ3NDb250YWluZXJfX19Da29pcSIsdGFnOiJ0YWdfX19JUDhLZCIscG9zdFN1bW1hcnk6InBvc3RTdW1tYXJ5X19fSjFRYzUiLHBvc3RGb290ZXI6InBvc3RGb290ZXJfX19YVmN1ciIsc3RhdHM6InN0YXRzX19fcFF5cjkiLHN0YXRJdGVtOiJzdGF0SXRlbV9fX0daajBKIixhbnRpY29uOiJhbnRpY29uX19fX1pLMVAiLHJlYWRNb3JlQnRuOiJyZWFkTW9yZUJ0bl9fX0J5djVXIn0sdj1yKDg1ODkzKSxUPWZ1bmN0aW9uKHNlKXt2YXIgQT1zZS5wb3N0LHdlPUEuaWQsTD1BLnRpdGxlLG9lPUEuYXV0aG9yLEVlPUEucHVibGlzaFRpbWUsZWU9QS50YWdzLEllPUEudmlld3MsaWU9QS5jb21tZW50cyxaZT1BLmZhdm9yaXRlcyxBZT1BLmxpa2VzLERlPUEuY292ZXJJbWFnZSx2ZT1BLnN1bW1hcnksV2U9QS5wcm9tb3Rpb25QbGFuSWQsdD1BLmlzUHJvbW90ZWQsZj1mdW5jdGlvbigpe09lLmhpc3RvcnkucHVzaCgiL3Bvc3QtZGV0YWlsLyIuY29uY2F0KHdlKSl9O3JldHVybigwLHYuanN4KSgiZGl2Iix7Y2xhc3NOYW1lOmIucG9zdENhcmRXcmFwcGVyLGNoaWxkcmVuOigwLHYuanN4KShRLlose2hvdmVyYWJsZTohMCxjb3ZlcjooMCx2LmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6Yi5jb3ZlckNvbnRhaW5lcixjaGlsZHJlbjpbdCYmKDAsdi5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOmIucHJvbW90aW9uQmFkZ2UsY2hpbGRyZW46WygwLHYuanN4KSh1Llose30pLCgwLHYuanN4KSgic3BhbiIse2NoaWxkcmVuOiJcdTYzQThcdTVFN0YifSldfSksKDAsdi5qc3gpKCJpbWciLHthbHQ6TCxzcmM6RGUsY2xhc3NOYW1lOmIuY292ZXJJbWFnZSxvbkVycm9yOmZ1bmN0aW9uKGMpe2MuY3VycmVudFRhcmdldC5zcmM9Ii9pbWFnZXMvNDA0LnBuZyJ9fSldfSksY2xhc3NOYW1lOmIucG9zdENhcmQsYm9keVN0eWxlOntwYWRkaW5nOiIxNnB4IixoZWlnaHQ6IjI0MHB4IixkaXNwbGF5OiJmbGV4IixmbGV4RGlyZWN0aW9uOiJjb2x1bW4ifSxjaGlsZHJlbjooMCx2LmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6Yi5jYXJkQ29udGVudCxjaGlsZHJlbjpbKDAsdi5qc3gpKCJoMyIse2NsYXNzTmFtZTpiLnBvc3RUaXRsZSx0aXRsZTpMLGNoaWxkcmVuOkx9KSwoMCx2LmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6Yi5wb3N0TWV0YSxjaGlsZHJlbjpbKDAsdi5qc3gpKEUuWix7c2l6ZToic21hbGwiLHN0eWxlOnttYXJnaW5SaWdodDo2fSxpY29uOigwLHYuanN4KShXLlose30pLGNoaWxkcmVuOm9lJiZvZVswXX0pLCgwLHYuanN4KSgic3BhbiIse2NsYXNzTmFtZTpiLmF1dGhvck5hbWUsY2hpbGRyZW46b2V9KSwoMCx2LmpzeCkoSS5aLHtzdHlsZTp7bWFyZ2luTGVmdDoxMixtYXJnaW5SaWdodDo0fX0pLCgwLHYuanN4KSgic3BhbiIse2NsYXNzTmFtZTpiLnB1Ymxpc2hUaW1lLGNoaWxkcmVuOkVlfSldfSksKDAsdi5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOmIudGFnc0NvbnRhaW5lcixjaGlsZHJlbjpbKEFycmF5LmlzQXJyYXkoZWUpP2VlOltdKS5zbGljZSgwLDMpLm1hcChmdW5jdGlvbihoKXtyZXR1cm4oMCx2LmpzeCkoTi5aLHtjb2xvcjoiYmx1ZSIsY2xhc3NOYW1lOmIudGFnLGNoaWxkcmVuOmh9LGgpfSksZWUmJmVlLmxlbmd0aD4zJiYoMCx2LmpzeHMpKE4uWix7Y29sb3I6ImRlZmF1bHQiLGNsYXNzTmFtZTpiLnRhZyxjaGlsZHJlbjpbIisiLGVlLmxlbmd0aC0zXX0pXX0pLCgwLHYuanN4KSgiZGl2Iix7Y2xhc3NOYW1lOmIucG9zdFN1bW1hcnksdGl0bGU6dmUsY2hpbGRyZW46dmV9KSwoMCx2LmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6Yi5wb3N0Rm9vdGVyLGNoaWxkcmVuOlsoMCx2LmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6Yi5zdGF0cyxjaGlsZHJlbjpbKDAsdi5qc3hzKSgic3BhbiIse2NsYXNzTmFtZTpiLnN0YXRJdGVtLGNoaWxkcmVuOlsoMCx2LmpzeCkoVi5aLHt9KSwiICIsSWV8fDBdfSksKDAsdi5qc3hzKSgic3BhbiIse2NsYXNzTmFtZTpiLnN0YXRJdGVtLGNoaWxkcmVuOlsoMCx2LmpzeCkoTy5aLHt9KSwiICIsaWV8fDBdfSksKDAsdi5qc3hzKSgic3BhbiIse2NsYXNzTmFtZTpiLnN0YXRJdGVtLGNoaWxkcmVuOlsoMCx2LmpzeCkocC5aLHt9KSwiICIsWmV8fDBdfSldfSksKDAsdi5qc3gpKCQuWlAse3R5cGU6ImxpbmsiLGNsYXNzTmFtZTpiLnJlYWRNb3JlQnRuLG9uQ2xpY2s6ZixjaGlsZHJlbjoiXHU2N0U1XHU3NzBCXHU2NkY0XHU1OTFBIFx4QkIifSldfSldfSl9KX0pfSxtZT1UfSw1MTQwOTpmdW5jdGlvbihIZSxLLHIpe3IucihLKSxyLmQoSyx7ZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybiBNdH19KTt2YXIgUD1yKDk3ODMpLFE9ci5uKFApLEU9cigxNTAwOSksTj1yLm4oRSksJD1yKDk3ODU3KSx1PXIubigkKSxXPXIoOTkyODkpLEk9ci5uKFcpLFY9cig1NTc0KSxPPXIubihWKSxwPXIoNjcyOTQpLE9lPXIoNzY3NzIpLGI9cigyNTI3OCksdj1yKDYwOTYwKSxUPXIoMjQ1MyksbWU9cig1NzM4MSksZ2U9cigxNTI0MSksc2U9cig0MzkzKSxBPXIoNjg5OTcpLHdlPXIoNjYzMDkpLEw9cig4MzYyMiksb2U9cigyNDg3KSxFZT1yKDE3Nzg4KSxlZT1yKDU4ODI0KSxJZT1yKDcxMjMwKSxpZT1yKDE1NzQ2KSxaZT1yKDkzOTY3KSxBZT1yLm4oWmUpLERlPXIoMjE1MzIpLHZlPXIoMTE1NjgpLFdlPXIoOTM2MSksdD1yKDE0NzQ3KTtmdW5jdGlvbiBmKG4peyJAYmFiZWwvaGVscGVycyAtIHR5cGVvZiI7cmV0dXJuIGY9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmdHlwZW9mIFN5bWJvbC5pdGVyYXRvcj09InN5bWJvbCI/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmdHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGV9LGYobil9ZnVuY3Rpb24gaChuLGUpe3ZhciBvPU9iamVjdC5rZXlzKG4pO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBpPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMobik7ZSYmKGk9aS5maWx0ZXIoZnVuY3Rpb24oQyl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixDKS5lbnVtZXJhYmxlfSkpLG8ucHVzaC5hcHBseShvLGkpfXJldHVybiBvfWZ1bmN0aW9uIGMobil7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIG89YXJndW1lbnRzW2VdIT1udWxsP2FyZ3VtZW50c1tlXTp7fTtlJTI/aChPYmplY3QobyksITApLmZvckVhY2goZnVuY3Rpb24oaSl7bShuLGksb1tpXSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhuLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG8pKTpoKE9iamVjdChvKSkuZm9yRWFjaChmdW5jdGlvbihpKXtPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobyxpKSl9KX1yZXR1cm4gbn1mdW5jdGlvbiBtKG4sZSxvKXtyZXR1cm4gZT1YKGUpLGUgaW4gbj9PYmplY3QuZGVmaW5lUHJvcGVydHkobixlLHt2YWx1ZTpvLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6bltlXT1vLG59ZnVuY3Rpb24gWChuKXt2YXIgZT1EKG4sInN0cmluZyIpO3JldHVybiBmKGUpPT0ic3ltYm9sIj9lOlN0cmluZyhlKX1mdW5jdGlvbiBEKG4sZSl7aWYoZihuKSE9Im9iamVjdCJ8fCFuKXJldHVybiBuO3ZhciBvPW5bU3ltYm9sLnRvUHJpbWl0aXZlXTtpZihvIT09dm9pZCAwKXt2YXIgaT1vLmNhbGwobixlfHwiZGVmYXVsdCIpO2lmKGYoaSkhPSJvYmplY3QiKXJldHVybiBpO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKGU9PT0ic3RyaW5nIj9TdHJpbmc6TnVtYmVyKShuKX12YXIgdGU9ZnVuY3Rpb24oZSl7dmFyIG89ZS5jb21wb25lbnRDbHMsaT1lLmNvbG9yQmdDb250YWluZXIsQz1lLmZvbnRTaXplLGw9ZS5mb250U2l6ZVNNLE09ZS5wYWRkaW5nLGs9ZS5wYWRkaW5nWFMsUj1lLm1hcmdpblNNLEY9ZS5tYXJnaW5YWFMsdWU9ZS5jb250cm9sSGVpZ2h0LENlPWUubGluZUhlaWdodFNNLFNlPWUuY29sb3JUZXh0LEo9ZS5jb2xvclRleHRTZWNvbmRhcnksTWU9ZS5jb2xvclRleHRUZXJ0aWFyeSxCPWUubW90aW9uRHVyYXRpb25TbG93O3JldHVybiBtKHt9LG8sYyhjKHt9LCgwLHQuV2YpKGUpKSx7fSxtKG0obShtKG0oe3Bvc2l0aW9uOiJyZWxhdGl2ZSIsYmFja2dyb3VuZENvbG9yOml9LCIiLmNvbmNhdChvLCItaW5uZXIiKSx7ZGlzcGxheToiZmxleCIscGFkZGluZ0Jsb2NrOk19KSwiIi5jb25jYXQobywiLWF2YXRhciIpLHtwb3NpdGlvbjoicmVsYXRpdmUiLGZsZXhTaHJpbms6MCxtYXJnaW5JbmxpbmVFbmQ6UixjdXJzb3I6InBvaW50ZXIiLGltZzp7d2lkdGg6dWUsaGVpZ2h0OnVlLGJvcmRlclJhZGl1czoiNTAlIn19KSwiIi5jb25jYXQobywiLWNvbnRlbnQiKSx7cG9zaXRpb246InJlbGF0aXZlIixmbGV4OiJhdXRvIixtaW5XaWR0aDowLHdvcmRXcmFwOiJicmVhay13b3JkIiwiJi1hdXRob3IiOntkaXNwbGF5OiJmbGV4IixmbGV4V3JhcDoid3JhcCIsanVzdGlmeUNvbnRlbnQ6ImZsZXgtc3RhcnQiLG1hcmdpbkJvdHRvbTpGLCImID4gYSwgJiA+IHNwYW4iOntwYWRkaW5nSW5saW5lRW5kOmssZm9udFNpemU6bCxsaW5lSGVpZ2h0OkNlfSwiJi1uYW1lIjp7Y29sb3I6Sixmb250U2l6ZTpDLHRyYW5zaXRpb246ImNvbG9yICIuY29uY2F0KEIpLCI+ICoiOntjb2xvcjpKLCImOmhvdmVyIjp7Y29sb3I6Sn19fSwiJi10aW1lIjp7Y29sb3I6TWUsd2hpdGVTcGFjZToibm93cmFwIixjdXJzb3I6ImF1dG8ifX0sIiYtZGV0YWlsIHAiOnt3aGl0ZVNwYWNlOiJwcmUtd3JhcCIsbWFyZ2luQmxvY2s6MH19KSwiIi5jb25jYXQobywiLWFjdGlvbnMiKSx7bWFyZ2luVG9wOlIsbWFyZ2luQm90dG9tOjAscGFkZGluZ0lubGluZVN0YXJ0OjAsIj4gbGkiOntkaXNwbGF5OiJpbmxpbmUtYmxvY2siLGNvbG9yOkosIj4gc3BhbiI6e21hcmdpbklubGluZUVuZDpSLGNvbG9yOkosZm9udFNpemU6bCxjdXJzb3I6InBvaW50ZXIiLHRyYW5zaXRpb246ImNvbG9yICIuY29uY2F0KEIpLHVzZXJTZWxlY3Q6Im5vbmUiLCImOmhvdmVyIjp7Y29sb3I6U2V9fX19KSwiIi5jb25jYXQobywiLW5lc3RlZCIpLHttYXJnaW5JbmxpbmVTdGFydDo0NH0pKSl9O2Z1bmN0aW9uIFkobil7dmFyIGU9V2UuWi51c2VUb2tlbigpLG89ZS50aGVtZSxpPWUudG9rZW4sQz1lLmhhc2hJZCxsPXAudXNlQ29udGV4dChEZS5aUC5Db25maWdDb250ZXh0KSxNPWwuaWNvblByZWZpeENscztyZXR1cm5bKDAsdmUueHkpKHt0aGVtZTpvLHRva2VuOmksaGFzaElkOkMscGF0aDpbImNvbXBhdGlibGUiLCJDb21tZW50IixuLE1dfSxmdW5jdGlvbigpe3ZhciBrPWMoe2NvbXBvbmVudENsczoiLiIuY29uY2F0KG4pfSxpKTtyZXR1cm5bdGUoayldfSksQ119ZnVuY3Rpb24gVShuKXsiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2YiO3JldHVybiBVPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJnR5cGVvZiBTeW1ib2wuaXRlcmF0b3I9PSJzeW1ib2wiP2Z1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJnR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBlfSxVKG4pfXZhciBxPVsiYWN0aW9ucyIsImF1dGhvciIsImF2YXRhciIsImNoaWxkcmVuIiwiY2xhc3NOYW1lIiwiY29udGVudCIsInByZWZpeENscyIsImRhdGV0aW1lIl07ZnVuY3Rpb24gcmUoKXtyZXR1cm4gcmU9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbihuKXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbz1hcmd1bWVudHNbZV07Zm9yKHZhciBpIGluIG8pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG8saSkmJihuW2ldPW9baV0pfXJldHVybiBufSxyZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gbmUobixlLG8pe3JldHVybiBlPUJlKGUpLGUgaW4gbj9PYmplY3QuZGVmaW5lUHJvcGVydHkobixlLHt2YWx1ZTpvLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6bltlXT1vLG59ZnVuY3Rpb24gQmUobil7dmFyIGU9JGUobiwic3RyaW5nIik7cmV0dXJuIFUoZSk9PSJzeW1ib2wiP2U6U3RyaW5nKGUpfWZ1bmN0aW9uICRlKG4sZSl7aWYoVShuKSE9Im9iamVjdCJ8fCFuKXJldHVybiBuO3ZhciBvPW5bU3ltYm9sLnRvUHJpbWl0aXZlXTtpZihvIT09dm9pZCAwKXt2YXIgaT1vLmNhbGwobixlfHwiZGVmYXVsdCIpO2lmKFUoaSkhPSJvYmplY3QiKXJldHVybiBpO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKGU9PT0ic3RyaW5nIj9TdHJpbmc6TnVtYmVyKShuKX1mdW5jdGlvbiBHKG4sZSl7cmV0dXJuIEtlKG4pfHxYZShuLGUpfHxoZShuLGUpfHxMZSgpfWZ1bmN0aW9uIExlKCl7dGhyb3cgbmV3IFR5cGVFcnJvcihgSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS4KK0luIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5gKX1mdW5jdGlvbiBoZShuLGUpe2lmKG4pe2lmKHR5cGVvZiBuPT0ic3RyaW5nIilyZXR1cm4gVmUobixlKTt2YXIgbz1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobikuc2xpY2UoOCwtMSk7aWYobz09PSJPYmplY3QiJiZuLmNvbnN0cnVjdG9yJiYobz1uLmNvbnN0cnVjdG9yLm5hbWUpLG89PT0iTWFwInx8bz09PSJTZXQiKXJldHVybiBBcnJheS5mcm9tKG4pO2lmKG89PT0iQXJndW1lbnRzInx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QobykpcmV0dXJuIFZlKG4sZSl9fWZ1bmN0aW9uIFZlKG4sZSl7KGU9PW51bGx8fGU+bi5sZW5ndGgpJiYoZT1uLmxlbmd0aCk7Zm9yKHZhciBvPTAsaT1uZXcgQXJyYXkoZSk7bzxlO28rKylpW29dPW5bb107cmV0dXJuIGl9ZnVuY3Rpb24gWGUobixlKXt2YXIgbz1uPT1udWxsP251bGw6dHlwZW9mIFN5bWJvbCE9InVuZGVmaW5lZCImJm5bU3ltYm9sLml0ZXJhdG9yXXx8blsiQEBpdGVyYXRvciJdO2lmKG8hPW51bGwpe3ZhciBpLEMsbCxNLGs9W10sUj0hMCxGPSExO3RyeXtpZihsPShvPW8uY2FsbChuKSkubmV4dCxlPT09MCl7aWYoT2JqZWN0KG8pIT09bylyZXR1cm47Uj0hMX1lbHNlIGZvcig7IShSPShpPWwuY2FsbChvKSkuZG9uZSkmJihrLnB1c2goaS52YWx1ZSksay5sZW5ndGghPT1lKTtSPSEwKTt9Y2F0Y2godWUpe0Y9ITAsQz11ZX1maW5hbGx5e3RyeXtpZighUiYmby5yZXR1cm4hPW51bGwmJihNPW8ucmV0dXJuKCksT2JqZWN0KE0pIT09TSkpcmV0dXJufWZpbmFsbHl7aWYoRil0aHJvdyBDfX1yZXR1cm4ga319ZnVuY3Rpb24gS2Uobil7aWYoQXJyYXkuaXNBcnJheShuKSlyZXR1cm4gbn1mdW5jdGlvbiB6ZShuLGUpe2lmKG49PW51bGwpcmV0dXJue307dmFyIG89dHQobixlKSxpLEM7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGw9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhuKTtmb3IoQz0wO0M8bC5sZW5ndGg7QysrKWk9bFtDXSwhKGUuaW5kZXhPZihpKT49MCkmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChuLGkpJiYob1tpXT1uW2ldKX1yZXR1cm4gb31mdW5jdGlvbiB0dChuLGUpe2lmKG49PW51bGwpcmV0dXJue307dmFyIG89e30saT1PYmplY3Qua2V5cyhuKSxDLGw7Zm9yKGw9MDtsPGkubGVuZ3RoO2wrKylDPWlbbF0sIShlLmluZGV4T2YoQyk+PTApJiYob1tDXT1uW0NdKTtyZXR1cm4gb312YXIgej1EZS5aUC5Db25maWdDb250ZXh0LHJ0PWZ1bmN0aW9uKGUpe3ZhciBvPWUuYWN0aW9ucyxpPWUuYXV0aG9yLEM9ZS5hdmF0YXIsbD1lLmNoaWxkcmVuLE09ZS5jbGFzc05hbWUsaz1lLmNvbnRlbnQsUj1lLnByZWZpeENscyxGPWUuZGF0ZXRpbWUsdWU9emUoZSxxKSxDZT1wLnVzZUNvbnRleHQoeiksU2U9Q2UuZ2V0UHJlZml4Q2xzLEo9Q2UuZGlyZWN0aW9uLE1lPWZ1bmN0aW9uKHhlLG10KXtyZXR1cm4gcC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6QWUoKSgiIi5jb25jYXQoeGUsIi1uZXN0ZWQiKSl9LG10KX0sQj1TZSgiY29tbWVudCIsUiksSmU9WShCKSxSZT1HKEplLDIpLFFlPVJlWzBdLHV0PVJlWzFdLFllPUM/cC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KEIsIi1hdmF0YXIiKX0sdHlwZW9mIEM9PSJzdHJpbmciP3AuY3JlYXRlRWxlbWVudCgiaW1nIix7c3JjOkMsYWx0OiJjb21tZW50LWF2YXRhciJ9KTpDKTpudWxsLGplPW8mJm8ubGVuZ3RoP3AuY3JlYXRlRWxlbWVudCgidWwiLHtjbGFzc05hbWU6IiIuY29uY2F0KEIsIi1hY3Rpb25zIil9LG8ubWFwKGZ1bmN0aW9uKGJlLHhlKXtyZXR1cm4gcC5jcmVhdGVFbGVtZW50KCJsaSIse2tleToiYWN0aW9uLSIuY29uY2F0KHhlKX0sYmUpfSkpOm51bGwsRmU9KGl8fEYpJiZwLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiIi5jb25jYXQoQiwiLWNvbnRlbnQtYXV0aG9yIil9LGkmJnAuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToiIi5jb25jYXQoQiwiLWNvbnRlbnQtYXV0aG9yLW5hbWUiKX0saSksRiYmcC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiIiLmNvbmNhdChCLCItY29udGVudC1hdXRob3ItdGltZSIpfSxGKSksZHQ9cC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KEIsIi1jb250ZW50Iil9LEZlLHAuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdChCLCItY29udGVudC1kZXRhaWwiKX0sayksamUpLHFlPUFlKCkoQixuZSh7fSwiIi5jb25jYXQoQiwiLXJ0bCIpLEo9PT0icnRsIiksTSx1dCk7cmV0dXJuIFFlKHAuY3JlYXRlRWxlbWVudCgiZGl2IixyZSh7fSx1ZSx7Y2xhc3NOYW1lOnFlfSkscC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KEIsIi1pbm5lciIpfSxZZSxkdCksbD9NZShCLGwpOm51bGwpKX0sVWU9cnQsbnQ9cig1NDgxMSksYXQ9cig4NzU0NyksR2U9cigyNDAxOSksc3Q9cig5OTYxMSksb3Q9cig0MDY2Niksa2U9cigzNDQ0NyksaXQ9cig0OTY0NykseWU9cig2NTQyOSksbGU9cigxMTQ3NSksY2U9cig3NjYyKSxhZT1yKDg5MDA2KSx5PXtwb3N0RGV0YWlsQ29udGFpbmVyOiJwb3N0RGV0YWlsQ29udGFpbmVyX19fbUszSDciLHBvc3RDb3ZlclNlY3Rpb246InBvc3RDb3ZlclNlY3Rpb25fX19lZEJ3YiIsY292ZXJJbWFnZUNvbnRhaW5lcjoiY292ZXJJbWFnZUNvbnRhaW5lcl9fX1RKTHl4Iixjb3ZlckltYWdlOiJjb3ZlckltYWdlX19fbHhZNzIiLGNvdmVyT3ZlcmxheToiY292ZXJPdmVybGF5X19fRFhDbTMiLGNvdmVyR3JhZGllbnQ6ImNvdmVyR3JhZGllbnRfX19meHIxeSIscHJldmlld01hc2s6InByZXZpZXdNYXNrX19fcGRtUEYiLHBvc3REZXRhaWxIZWFkZXI6InBvc3REZXRhaWxIZWFkZXJfX19sM3VMcSIsdGl0bGVDb250YWluZXI6InRpdGxlQ29udGFpbmVyX19fQXJwNkoiLHByb21vdGlvbkJhZGdlOiJwcm9tb3Rpb25CYWRnZV9fX1JYaGV2Iixwb3N0TWV0YToicG9zdE1ldGFfX19CZ0d3ZyIscG9zdEF1dGhvcjoicG9zdEF1dGhvcl9fX0JzcUhWIixwb3N0VGltZToicG9zdFRpbWVfX19CMTBxQiIscG9zdFZpZXdzOiJwb3N0Vmlld3NfX19fV1NHSyIscG9zdFRhZ3M6InBvc3RUYWdzX19faWJpSEkiLHBvc3RBY3Rpb25zOiJwb3N0QWN0aW9uc19fX29HbWN2Iixwb3N0Q29udGVudDoicG9zdENvbnRlbnRfX19zT0hPbyIsY29tbWVudFNlY3Rpb246ImNvbW1lbnRTZWN0aW9uX19fVnJYSGMiLGNvbW1lbnRJbnB1dDoiY29tbWVudElucHV0X19fb3JlcFMiLGNvbW1lbnRBY3Rpb25zOiJjb21tZW50QWN0aW9uc19fX3pBVm1EIixjb21tZW50TGlzdDoiY29tbWVudExpc3RfX19KYjYyaiIscmVwbHlMaXN0OiJyZXBseUxpc3RfX19PTVFGYyIscmVsYXRlZFBvc3RzOiJyZWxhdGVkUG9zdHNfX19tdVNtdCIscmVjb21tZW5kSGVhZGVyOiJyZWNvbW1lbmRIZWFkZXJfX19GTThhQSIscG9zdERldGFpbExvYWRpbmc6InBvc3REZXRhaWxMb2FkaW5nX19fVWtpQ1MiLHBvc3REZXRhaWxFcnJvcjoicG9zdERldGFpbEVycm9yX19fYkVzT0EifSxhPXIoODU4OTMpLHl0PWIuWi5UZXh0QXJlYSxsdD12LlouVGl0bGUsbnI9di5aLlBhcmFncmFwaCxjdD12LlouVGV4dCx6dD1mdW5jdGlvbigpe3ZhciBlPSgwLE9lLnVzZVBhcmFtcykoKSxvPWUuaWQsaT0oMCxwLnVzZVN0YXRlKShudWxsKSxDPU8oKShpLDIpLGw9Q1swXSxNPUNbMV0saz0oMCxwLnVzZVN0YXRlKShbXSksUj1PKCkoaywyKSxGPVJbMF0sdWU9UlsxXSxDZT0oMCxwLnVzZVN0YXRlKSgxKSxTZT1PKCkoQ2UsMiksSj1TZVswXSxNZT1TZVsxXSxCPSgwLHAudXNlU3RhdGUpKFtdKSxKZT1PKCkoQiwyKSxSZT1KZVswXSxRZT1KZVsxXSx1dD0oMCxwLnVzZVN0YXRlKShudWxsKSxZZT1PKCkodXQsMiksamU9WWVbMF0sRmU9WWVbMV0sZHQ9KDAscC51c2VTdGF0ZSkoIiIpLHFlPU8oKShkdCwyKSxiZT1xZVswXSx4ZT1xZVsxXSxtdD0oMCxwLnVzZVN0YXRlKSghMCksQ3Q9TygpKG10LDIpLFJ0PUN0WzBdLFN0PUN0WzFdLEZ0PSgwLHAudXNlU3RhdGUpKCExKSxqdD1PKCkoRnQsMiksZmU9anRbMF0sYnQ9anRbMV0sSHQ9KDAscC51c2VTdGF0ZSkoITEpLHh0PU8oKShIdCwyKSxQZT14dFswXSx3dD14dFsxXSxXdD0oMCxwLnVzZVN0YXRlKSghMSksUHQ9TygpKFd0LDIpLFZ0PVB0WzBdLFR0PVB0WzFdLFh0PSgwLHAudXNlU3RhdGUpKHt9KSxOdD1PKCkoWHQsMiksdnQ9TnRbMF0sS3Q9TnRbMV0sVXQ9KDAscC51c2VTdGF0ZSkoITEpLE90PU8oKShVdCwyKSxHdD1PdFswXSxmdD1PdFsxXSxrdD0oMCxwLnVzZVN0YXRlKSgiIiksRXQ9TygpKGt0LDIpLHB0PUV0WzBdLGd0PUV0WzFdLEp0PSgwLHAudXNlU3RhdGUpKCExKSxJdD1PKCkoSnQsMiksUXQ9SXRbMF0sWnQ9SXRbMV0sX2U9MzsoMCxwLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtvJiZBdChOdW1iZXIobykpfSxbb10pO3ZhciBBdD1mdW5jdGlvbigpe3ZhciBTPUkoKShOKCkoKS5tYXJrKGZ1bmN0aW9uIGQoZyl7dmFyIHgscyxqLEgsVGUsXyxldCxwZSxCdCwkdCxMdDtyZXR1cm4gTigpKCkud3JhcChmdW5jdGlvbih3KXtmb3IoOzspc3dpdGNoKHcucHJldj13Lm5leHQpe2Nhc2UgMDpyZXR1cm4gdy5wcmV2PTAsU3QoITApLHcubmV4dD00LCgwLGNlLnNpKShnKTtjYXNlIDQ6eD13LnNlbnQseC5jb2RlPT09MjAwJiZ4LmRhdGE/KHM9eC5kYXRhLGo9cy5wb3N0LEg9cy50YWdzLFRlPXMuY29tbWVudHMsXz1zLnJlY29tbWVuZGVkUG9zdHMsZXQ9cy5mYXZvcml0ZWQscGU9dSgpKHUoKSh7fSxqKSx7fSx7aWQ6ai5wb3N0SWQsdGl0bGU6ai50aXRsZXx8Ilx1NjVFMFx1NjgwN1x1OTg5OCIsYXV0aG9yOmouYXV0aG9yfHwiXHU2NzJBXHU3N0U1XHU0RjVDXHU4MDA1IixwdWJsaXNoVGltZTpqLnB1Ymxpc2hUaW1lfHxqLmNyZWF0ZVRpbWV8fCIiLHRhZ3M6ai50YWdzP2oudGFncy5zcGxpdCgiLCIpOltdLHZpZXdzOmoudmlld3N8fDAsY29tbWVudHM6ai5jb21tZW50c3x8MCxmYXZvcml0ZXM6ai5mYXZvcml0ZXN8fDAsbGlrZXM6ai5saWtlc3x8MCxjb3ZlckltYWdlOmouY292ZXJJbWFnZXx8Ii9pbWFnZXMvNDA0LnBuZyIsc3VtbWFyeTpqLnN1bW1hcnl8fCJcdTY2ODJcdTY1RTBcdTY0NThcdTg5ODEiLGlzUHJvbW90ZWQ6ai5wcm9tb3Rpb25QbGFuSWQhPW51bGwmJmoucHJvbW90aW9uUGxhbklkPjB9KSxNKHBlKSxidChldCksQnQ9VGUubWFwKGZ1bmN0aW9uKGh0KXt2YXIgZGU9aHQuY29tbWVudCxaPWh0LnJlcGxpZXN8fFtdO3JldHVybiB1KCkodSgpKHt9LGRlKSx7fSx7aWQ6ZGUuY29tbWVudElkLGF1dGhvcjpkZS51c2VyTmFtZXx8Ilx1NTMzRlx1NTQwRFx1NzUyOFx1NjIzNyIsYXZhdGFyOmRlLnVzZXJBdmF0YXJ8fCIvaW1hZ2VzLzQwNC5wbmciLGRhdGV0aW1lOmRlLmNyZWF0ZVRpbWUsbGlrZXM6ZGUubGlrZXN8fDAscmVwbGllczpaLm1hcChmdW5jdGlvbihOZSl7cmV0dXJuIHUoKSh1KCkoe30sTmUpLHt9LHtpZDpOZS5jb21tZW50SWQsYXV0aG9yOk5lLnVzZXJOYW1lfHwiXHU1MzNGXHU1NDBEXHU3NTI4XHU2MjM3IixhdmF0YXI6TmUudXNlckF2YXRhcnx8Ii9pbWFnZXMvNDA0LnBuZyIsZGF0ZXRpbWU6TmUuY3JlYXRlVGltZSxsaWtlczpOZS5saWtlc3x8MCxyZXBsaWVzOltdfSl9KX0pfSksUWUoQnQpLCR0PWZ1bmN0aW9uKGRlKXtyZXR1cm4gZGUubWFwKGZ1bmN0aW9uKFope3JldHVybiB1KCkodSgpKHt9LFopLHt9LHtpZDpaLnBvc3RJZCx0aXRsZTpaLnRpdGxlfHwiXHU2NUUwXHU2ODA3XHU5ODk4IixhdXRob3I6Wi5hdXRob3J8fCJcdTY3MkFcdTc3RTVcdTRGNUNcdTgwMDUiLHB1Ymxpc2hUaW1lOloucHVibGlzaFRpbWV8fFouY3JlYXRlVGltZXx8IiIsdGFnczpaLnRhZ3M/Wi50YWdzLnNwbGl0KCIsIik6W10sdmlld3M6Wi52aWV3c3x8MCxjb21tZW50czpaLmNvbW1lbnRzfHwwLGZhdm9yaXRlczpaLmZhdm9yaXRlc3x8MCxsaWtlczpaLmxpa2VzfHwwLGNvdmVySW1hZ2U6Wi5jb3ZlckltYWdlfHwiL2ltYWdlcy80MDQucG5nIixzdW1tYXJ5Olouc3VtbWFyeXx8Ilx1NjY4Mlx1NjVFMFx1NjQ1OFx1ODk4MSIsaXNQcm9tb3RlZDpaLnByb21vdGlvblBsYW5JZCE9bnVsbCYmWi5wcm9tb3Rpb25QbGFuSWQ+MH0pfSl9LEx0PSR0KF98fFtdKSx1ZShMdCkpOlQuWlAuZXJyb3IoeC5tc2d8fCJcdTgzQjdcdTUzRDZcdTVFMTZcdTVCNTBcdThCRTZcdTYwQzVcdTU5MzFcdThEMjUiKSx3Lm5leHQ9MTI7YnJlYWs7Y2FzZSA4OncucHJldj04LHcudDA9dy5jYXRjaCgwKSxjb25zb2xlLmVycm9yKCJcdTgzQjdcdTUzRDZcdTVFMTZcdTVCNTBcdThCRTZcdTYwQzVcdTU5MzFcdThEMjU6Iix3LnQwKSxULlpQLmVycm9yKCJcdTgzQjdcdTUzRDZcdTVFMTZcdTVCNTBcdThCRTZcdTYwQzVcdTU5MzFcdThEMjVcdUZGMENcdThCRjdcdTdBMERcdTU0MEVcdTkxQ0RcdThCRDUiKTtjYXNlIDEyOnJldHVybiB3LnByZXY9MTIsU3QoITEpLHcuZmluaXNoKDEyKTtjYXNlIDE1OmNhc2UiZW5kIjpyZXR1cm4gdy5zdG9wKCl9fSxkLG51bGwsW1swLDgsMTIsMTVdXSl9KSk7cmV0dXJuIGZ1bmN0aW9uKGcpe3JldHVybiBTLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksWXQ9ZnVuY3Rpb24oKXt2YXIgUz1JKCkoTigpKCkubWFyayhmdW5jdGlvbiBkKCl7dmFyIGc7cmV0dXJuIE4oKSgpLndyYXAoZnVuY3Rpb24ocyl7Zm9yKDs7KXN3aXRjaChzLnByZXY9cy5uZXh0KXtjYXNlIDA6aWYoYmUudHJpbSgpKXtzLm5leHQ9MzticmVha31yZXR1cm4gVC5aUC53YXJuaW5nKCJcdThCQzRcdThCQkFcdTUxODVcdTVCQjlcdTRFMERcdTgwRkRcdTRFM0FcdTdBN0EiKSxzLmFicnVwdCgicmV0dXJuIik7Y2FzZSAzOmlmKGwpe3MubmV4dD01O2JyZWFrfXJldHVybiBzLmFicnVwdCgicmV0dXJuIik7Y2FzZSA1OnJldHVybiBzLnByZXY9NSxUdCghMCkscy5uZXh0PTksKDAsY2UuSXIpKHtwb3N0SWQ6TnVtYmVyKGwuaWQpLGNvbnRlbnQ6YmUscGFyZW50SWQ6amV8fDB9KTtjYXNlIDk6Zz1zLnNlbnQsZy5jb2RlPT09MjAwPyhULlpQLnN1Y2Nlc3MoIlx1OEJDNFx1OEJCQVx1NTNEMVx1ODg2OFx1NjIxMFx1NTI5RiIpLHhlKCIiKSxGZShudWxsKSxBdChOdW1iZXIobC5pZCkpKTpULlpQLmVycm9yKGcubXNnfHwiXHU4QkM0XHU4QkJBXHU1M0QxXHU4ODY4XHU1OTMxXHU4RDI1Iikscy5uZXh0PTE3O2JyZWFrO2Nhc2UgMTM6cy5wcmV2PTEzLHMudDA9cy5jYXRjaCg1KSxjb25zb2xlLmVycm9yKCJcdThCQzRcdThCQkFcdTUzRDFcdTg4NjhcdTU5MzFcdThEMjU6IixzLnQwKSxULlpQLmVycm9yKCJcdThCQzRcdThCQkFcdTUzRDFcdTg4NjhcdTU5MzFcdThEMjVcdUZGMENcdThCRjdcdTdBMERcdTU0MEVcdTkxQ0RcdThCRDUiKTtjYXNlIDE3OnJldHVybiBzLnByZXY9MTcsVHQoITEpLHMuZmluaXNoKDE3KTtjYXNlIDIwOmNhc2UiZW5kIjpyZXR1cm4gcy5zdG9wKCl9fSxkLG51bGwsW1s1LDEzLDE3LDIwXV0pfSkpO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBTLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCkscXQ9ZnVuY3Rpb24oKXt2YXIgUz1JKCkoTigpKCkubWFyayhmdW5jdGlvbiBkKCl7dmFyIGc7cmV0dXJuIE4oKSgpLndyYXAoZnVuY3Rpb24ocyl7Zm9yKDs7KXN3aXRjaChzLnByZXY9cy5uZXh0KXtjYXNlIDA6aWYobCl7cy5uZXh0PTI7YnJlYWt9cmV0dXJuIHMuYWJydXB0KCJyZXR1cm4iKTtjYXNlIDI6cmV0dXJuIHMucHJldj0yLHMubmV4dD01LCgwLGNlLm1OKShOdW1iZXIobC5pZCksIWZlKTtjYXNlIDU6Zz1zLnNlbnQsZy5jb2RlPT09MjAwPyhidCghZmUpLFQuWlAuc3VjY2VzcyhmZT8iXHU1M0Q2XHU2RDg4XHU2NTM2XHU4NUNGXHU2MjEwXHU1MjlGIjoiXHU2NTM2XHU4NUNGXHU2MjEwXHU1MjlGIiksTShmdW5jdGlvbihqKXtyZXR1cm4gaj91KCkodSgpKHt9LGopLHt9LHtmYXZvcml0ZXM6KGouZmF2b3JpdGVzfHwwKSsoZmU/LTE6MSl9KTpudWxsfSkpOlQuWlAuZXJyb3IoZy5tc2d8fCJcdTY0Q0RcdTRGNUNcdTU5MzFcdThEMjUiKSxzLm5leHQ9MTM7YnJlYWs7Y2FzZSA5OnMucHJldj05LHMudDA9cy5jYXRjaCgyKSxjb25zb2xlLmVycm9yKCJcdTY1MzZcdTg1Q0ZcdTY0Q0RcdTRGNUNcdTU5MzFcdThEMjU6IixzLnQwKSxULlpQLmVycm9yKCJcdTY0Q0RcdTRGNUNcdTU5MzFcdThEMjVcdUZGMENcdThCRjdcdTdBMERcdTU0MEVcdTkxQ0RcdThCRDUiKTtjYXNlIDEzOmNhc2UiZW5kIjpyZXR1cm4gcy5zdG9wKCl9fSxkLG51bGwsW1syLDldXSl9KSk7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIFMuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSxfdD1mdW5jdGlvbigpe3ZhciBTPUkoKShOKCkoKS5tYXJrKGZ1bmN0aW9uIGQoKXt2YXIgZztyZXR1cm4gTigpKCkud3JhcChmdW5jdGlvbihzKXtmb3IoOzspc3dpdGNoKHMucHJldj1zLm5leHQpe2Nhc2UgMDppZihsKXtzLm5leHQ9MjticmVha31yZXR1cm4gcy5hYnJ1cHQoInJldHVybiIpO2Nhc2UgMjpyZXR1cm4gcy5wcmV2PTIscy5uZXh0PTUsKDAsY2UuVk8pKE51bWJlcihsLmlkKSwhUGUpO2Nhc2UgNTpnPXMuc2VudCxnLmNvZGU9PT0yMDA/KHd0KCFQZSksVC5aUC5zdWNjZXNzKFBlPyJcdTUzRDZcdTZEODhcdTcwQjlcdThENUVcdTYyMTBcdTUyOUYiOiJcdTcwQjlcdThENUVcdTYyMTBcdTUyOUYiKSxNKGZ1bmN0aW9uKGope3JldHVybiBqP3UoKSh1KCkoe30saikse30se2xpa2VzOihqLmxpa2VzfHwwKSsoUGU/LTE6MSl9KTpudWxsfSkpOlQuWlAuZXJyb3IoZy5tc2d8fCJcdTY0Q0RcdTRGNUNcdTU5MzFcdThEMjUiKSxzLm5leHQ9MTM7YnJlYWs7Y2FzZSA5OnMucHJldj05LHMudDA9cy5jYXRjaCgyKSxjb25zb2xlLmVycm9yKCJcdTcwQjlcdThENUVcdTY0Q0RcdTRGNUNcdTU5MzFcdThEMjU6IixzLnQwKSxULlpQLmVycm9yKCJcdTY0Q0RcdTRGNUNcdTU5MzFcdThEMjVcdUZGMENcdThCRjdcdTdBMERcdTU0MEVcdTkxQ0RcdThCRDUiKTtjYXNlIDEzOmNhc2UiZW5kIjpyZXR1cm4gcy5zdG9wKCl9fSxkLG51bGwsW1syLDldXSl9KSk7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIFMuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSxlcj1mdW5jdGlvbihkKXtGZShkKX0sdHI9ZnVuY3Rpb24oKXtGZShudWxsKX0sRHQ9ZnVuY3Rpb24oKXt2YXIgUz1JKCkoTigpKCkubWFyayhmdW5jdGlvbiBkKGcpe3ZhciB4LHM7cmV0dXJuIE4oKSgpLndyYXAoZnVuY3Rpb24oSCl7Zm9yKDs7KXN3aXRjaChILnByZXY9SC5uZXh0KXtjYXNlIDA6cmV0dXJuIEgucHJldj0wLHg9dnRbZ118fCExLEgubmV4dD00LCgwLGNlLm9nKShnLCF4KTtjYXNlIDQ6cz1ILnNlbnQscy5jb2RlPT09MjAwPyhLdChmdW5jdGlvbihUZSl7cmV0dXJuIHUoKSh1KCkoe30sVGUpLHt9LFEoKSh7fSxnLCF4KSl9KSxRZShmdW5jdGlvbihUZSl7cmV0dXJuIFRlLm1hcChmdW5jdGlvbihfKXtpZihfLmlkPT09ZylyZXR1cm4gdSgpKHUoKSh7fSxfKSx7fSx7bGlrZXM6KF8ubGlrZXN8fDApKyh4Py0xOjEpfSk7aWYoXy5yZXBsaWVzKXt2YXIgZXQ9Xy5yZXBsaWVzLm1hcChmdW5jdGlvbihwZSl7cmV0dXJuIHBlLmlkPT09Zz91KCkodSgpKHt9LHBlKSx7fSx7bGlrZXM6KHBlLmxpa2VzfHwwKSsoeD8tMToxKX0pOnBlfSk7cmV0dXJuIHUoKSh1KCkoe30sXykse30se3JlcGxpZXM6ZXR9KX1yZXR1cm4gX30pfSksVC5aUC5zdWNjZXNzKHg/Ilx1NTNENlx1NkQ4OFx1NzBCOVx1OEQ1RVx1NjIxMFx1NTI5RiI6Ilx1NzBCOVx1OEQ1RVx1NjIxMFx1NTI5RiIpKTpULlpQLmVycm9yKHMubXNnfHwiXHU2NENEXHU0RjVDXHU1OTMxXHU4RDI1IiksSC5uZXh0PTEyO2JyZWFrO2Nhc2UgODpILnByZXY9OCxILnQwPUguY2F0Y2goMCksY29uc29sZS5lcnJvcigiXHU4QkM0XHU4QkJBXHU3MEI5XHU4RDVFXHU2NENEXHU0RjVDXHU1OTMxXHU4RDI1OiIsSC50MCksVC5aUC5lcnJvcigiXHU2NENEXHU0RjVDXHU1OTMxXHU4RDI1XHVGRjBDXHU4QkY3XHU3QTBEXHU1NDBFXHU5MUNEXHU4QkQ1Iik7Y2FzZSAxMjpjYXNlImVuZCI6cmV0dXJuIEguc3RvcCgpfX0sZCxudWxsLFtbMCw4XV0pfSkpO3JldHVybiBmdW5jdGlvbihnKXtyZXR1cm4gUy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLHJyPWZ1bmN0aW9uKCl7dmFyIFM9SSgpKE4oKSgpLm1hcmsoZnVuY3Rpb24gZCgpe3ZhciBnO3JldHVybiBOKCkoKS53cmFwKGZ1bmN0aW9uKHMpe2Zvcig7Oylzd2l0Y2gocy5wcmV2PXMubmV4dCl7Y2FzZSAwOmlmKGwpe3MubmV4dD0yO2JyZWFrfXJldHVybiBzLmFicnVwdCgicmV0dXJuIik7Y2FzZSAyOmlmKHB0LnRyaW0oKSl7cy5uZXh0PTU7YnJlYWt9cmV0dXJuIFQuWlAud2FybmluZygiXHU4QkY3XHU1ODZCXHU1MTk5XHU0RTNFXHU2MkE1XHU3NDA2XHU3NTMxIikscy5hYnJ1cHQoInJldHVybiIpO2Nhc2UgNTpyZXR1cm4gcy5wcmV2PTUsWnQoITApLHMubmV4dD05LCgwLGNlLm1LKShOdW1iZXIobC5pZCkscHQpO2Nhc2UgOTpnPXMuc2VudCxnLmNvZGU9PT0yMDA/KFQuWlAuc3VjY2VzcygiXHU0RTNFXHU2MkE1XHU2M0QwXHU0RUE0XHU2MjEwXHU1MjlGXHVGRjBDXHU2MjExXHU0RUVDXHU0RjFBXHU1QzNEXHU1RkVCXHU1OTA0XHU3NDA2IiksZnQoITEpLGd0KCIiKSk6VC5aUC5lcnJvcihnLm1zZ3x8Ilx1NEUzRVx1NjJBNVx1NjNEMFx1NEVBNFx1NTkzMVx1OEQyNSIpLHMubmV4dD0xNzticmVhaztjYXNlIDEzOnMucHJldj0xMyxzLnQwPXMuY2F0Y2goNSksY29uc29sZS5lcnJvcigiXHU0RTNFXHU2MkE1XHU2M0QwXHU0RUE0XHU1OTMxXHU4RDI1OiIscy50MCksVC5aUC5lcnJvcigiXHU0RTNFXHU2MkE1XHU2M0QwXHU0RUE0XHU1OTMxXHU4RDI1XHVGRjBDXHU4QkY3XHU3QTBEXHU1NDBFXHU5MUNEXHU4QkQ1Iik7Y2FzZSAxNzpyZXR1cm4gcy5wcmV2PTE3LFp0KCExKSxzLmZpbmlzaCgxNyk7Y2FzZSAyMDpjYXNlImVuZCI6cmV0dXJuIHMuc3RvcCgpfX0sZCxudWxsLFtbNSwxMywxNywyMF1dKX0pKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gUy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpO3JldHVybiBSdD8oMCxhLmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6eS5wb3N0RGV0YWlsTG9hZGluZyxjaGlsZHJlbjpbKDAsYS5qc3gpKG1lLlose3NpemU6ImxhcmdlIn0pLCgwLGEuanN4KSgiZGl2Iix7c3R5bGU6e21hcmdpblRvcDoxNn0sY2hpbGRyZW46Ilx1NTJBMFx1OEY3RFx1NEUyRC4uLiJ9KV19KTpsPygwLGEuanN4cykoImRpdiIse2NsYXNzTmFtZTp5LnBvc3REZXRhaWxDb250YWluZXIsY2hpbGRyZW46W2wuY292ZXJJbWFnZSYmKDAsYS5qc3gpKCJkaXYiLHtjbGFzc05hbWU6eS5wb3N0Q292ZXJTZWN0aW9uLGNoaWxkcmVuOigwLGEuanN4cykoImRpdiIse2NsYXNzTmFtZTp5LmNvdmVySW1hZ2VDb250YWluZXIsY2hpbGRyZW46WygwLGEuanN4KShnZS5aLHtzcmM6bC5jb3ZlckltYWdlLGFsdDpsLnRpdGxlLGNsYXNzTmFtZTp5LmNvdmVySW1hZ2UscHJldmlldzp7bWFzazooMCxhLmpzeCkoImRpdiIse2NsYXNzTmFtZTp5LnByZXZpZXdNYXNrLGNoaWxkcmVuOiJcdTcwQjlcdTUxRkJcdTk4ODRcdTg5QzgifSl9LG9uRXJyb3I6ZnVuY3Rpb24oZCl7ZC5jdXJyZW50VGFyZ2V0LnNyYz0iL2ltYWdlcy80MDQucG5nIn19KSwoMCxhLmpzeCkoImRpdiIse2NsYXNzTmFtZTp5LmNvdmVyT3ZlcmxheSxjaGlsZHJlbjooMCxhLmpzeCkoImRpdiIse2NsYXNzTmFtZTp5LmNvdmVyR3JhZGllbnR9KX0pXX0pfSksKDAsYS5qc3hzKShzZS5aLHtjbGFzc05hbWU6eS5wb3N0RGV0YWlsSGVhZGVyLGNoaWxkcmVuOlsoMCxhLmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6eS50aXRsZUNvbnRhaW5lcixjaGlsZHJlbjpbKDAsYS5qc3gpKGx0LHtsZXZlbDoyLGNoaWxkcmVuOmwudGl0bGV9KSxsLmlzUHJvbW90ZWQmJigwLGEuanN4cykoImRpdiIse2NsYXNzTmFtZTp5LnByb21vdGlvbkJhZGdlLGNoaWxkcmVuOlsoMCxhLmpzeCkobnQuWix7fSksKDAsYS5qc3gpKCJzcGFuIix7Y2hpbGRyZW46Ilx1NjNBOFx1NUU3RiJ9KV19KV19KSwoMCxhLmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6eS5wb3N0TWV0YSxjaGlsZHJlbjpbKDAsYS5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOnkucG9zdEF1dGhvcixjaGlsZHJlbjpbKDAsYS5qc3gpKEEuWix7c2l6ZToic21hbGwiLGljb246KDAsYS5qc3gpKGF0Llose30pfSksKDAsYS5qc3gpKGN0LHtzdHJvbmc6ITAsc3R5bGU6e21hcmdpbkxlZnQ6OH0sY2hpbGRyZW46bC5hdXRob3J9KV19KSwoMCxhLmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6eS5wb3N0VGltZSxjaGlsZHJlbjpbKDAsYS5qc3gpKEdlLlose30pLCgwLGEuanN4KShjdCx7dHlwZToic2Vjb25kYXJ5IixzdHlsZTp7bWFyZ2luTGVmdDo4fSxjaGlsZHJlbjpsLnB1Ymxpc2hUaW1lfSldfSksKDAsYS5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOnkucG9zdFZpZXdzLGNoaWxkcmVuOlsoMCxhLmpzeCkoc3QuWix7fSksKDAsYS5qc3hzKShjdCx7dHlwZToic2Vjb25kYXJ5IixzdHlsZTp7bWFyZ2luTGVmdDo4fSxjaGlsZHJlbjpbbC52aWV3cywiIFx1NjdFNVx1NzcwQiJdfSldfSksKDAsYS5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOnkucG9zdFRhZ3MsY2hpbGRyZW46WygwLGEuanN4KShvdC5aLHt9KSwoMCxhLmpzeCkoInNwYW4iLHtzdHlsZTp7bWFyZ2luTGVmdDo4fSxjaGlsZHJlbjpsLnRhZ3MubWFwKGZ1bmN0aW9uKFMpe3JldHVybigwLGEuanN4KSh3ZS5aLHtjb2xvcjoiYmx1ZSIsY2hpbGRyZW46U30sUyl9KX0pXX0pXX0pLCgwLGEuanN4cykoImRpdiIse2NsYXNzTmFtZTp5LnBvc3RBY3Rpb25zLGNoaWxkcmVuOlsoMCxhLmpzeHMpKEwuWlAse3R5cGU6ZmU/InByaW1hcnkiOiJkZWZhdWx0IixpY29uOmZlPygwLGEuanN4KShrZS5aLHt9KTooMCxhLmpzeCkoaXQuWix7fSksb25DbGljazpxdCxjaGlsZHJlbjpbZmU/Ilx1NURGMlx1NjUzNlx1ODVDRiI6Ilx1NjUzNlx1ODVDRiIsIiAoIixsLmZhdm9yaXRlc3x8MCwiKSJdfSksKDAsYS5qc3hzKShMLlpQLHt0eXBlOlBlPyJwcmltYXJ5IjoiZGVmYXVsdCIsaWNvbjooMCxhLmpzeCkoeWUuWix7fSksb25DbGljazpfdCxjaGlsZHJlbjpbUGU/Ilx1NURGMlx1NzBCOVx1OEQ1RSI6Ilx1NzBCOVx1OEQ1RSIsIiAoIixsLmxpa2VzfHwwLCIpIl19KSwoMCxhLmpzeCkoTC5aUCx7aWNvbjooMCxhLmpzeCkobGUuWix7fSksb25DbGljazpmdW5jdGlvbigpe3JldHVybiBmdCghMCl9LGNoaWxkcmVuOiJcdTRFM0VcdTYyQTUifSldfSldfSksKDAsYS5qc3gpKHNlLlose2NsYXNzTmFtZTp5LnBvc3RDb250ZW50LGNoaWxkcmVuOigwLGEuanN4KSgiZGl2Iix7ZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6e19faHRtbDpsLmNvbnRlbnR8fGwuc3VtbWFyeXx8IiJ9fSl9KSwoMCxhLmpzeHMpKHNlLlose2NsYXNzTmFtZTp5LmNvbW1lbnRTZWN0aW9uLGNoaWxkcmVuOlsoMCxhLmpzeHMpKGx0LHtsZXZlbDo0LGNoaWxkcmVuOlsiXHU4QkM0XHU4QkJBICgiLFJlLmxlbmd0aCwiKSJdfSksKDAsYS5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOnkuY29tbWVudElucHV0LGNoaWxkcmVuOlsoMCxhLmpzeCkoeXQse3ZhbHVlOmJlLG9uQ2hhbmdlOmZ1bmN0aW9uKGQpe3JldHVybiB4ZShkLnRhcmdldC52YWx1ZSl9LHBsYWNlaG9sZGVyOmplPyJcdTU2REVcdTU5MERcdThCQzRcdThCQkEuLi4iOiJcdTUxOTlcdTRFMEJcdTRGNjBcdTc2ODRcdThCQzRcdThCQkEuLi4iLHJvd3M6NH0pLCgwLGEuanN4cykoImRpdiIse2NsYXNzTmFtZTp5LmNvbW1lbnRBY3Rpb25zLGNoaWxkcmVuOltqZSYmKDAsYS5qc3gpKEwuWlAse29uQ2xpY2s6dHIsY2hpbGRyZW46Ilx1NTNENlx1NkQ4OFx1NTZERVx1NTkwRCJ9KSwoMCxhLmpzeHMpKEwuWlAse3R5cGU6InByaW1hcnkiLG9uQ2xpY2s6WXQsbG9hZGluZzpWdCxjaGlsZHJlbjpbIlx1NTNEMVx1ODg2OCIsamU/Ilx1NTZERVx1NTkwRCI6Ilx1OEJDNFx1OEJCQSJdfSldfSldfSksKDAsYS5qc3gpKG9lLlose2NsYXNzTmFtZTp5LmNvbW1lbnRMaXN0LGl0ZW1MYXlvdXQ6Imhvcml6b250YWwiLGRhdGFTb3VyY2U6UmUscmVuZGVySXRlbTpmdW5jdGlvbihkKXtyZXR1cm4oMCxhLmpzeCkoImxpIix7Y2hpbGRyZW46KDAsYS5qc3gpKFVlLHthdXRob3I6ZC5hdXRob3IsYXZhdGFyOmQuYXZhdGFyLGNvbnRlbnQ6ZC5jb250ZW50LGRhdGV0aW1lOmQuZGF0ZXRpbWUsYWN0aW9uczpbKDAsYS5qc3gpKCJzcGFuIix7Y2hpbGRyZW46KDAsYS5qc3gpKEwuWlAse3R5cGU6dnRbZC5pZF0/InByaW1hcnkiOiJ0ZXh0IixzaXplOiJzbWFsbCIsaWNvbjooMCxhLmpzeCkoeWUuWix7fSksb25DbGljazpmdW5jdGlvbigpe3JldHVybiBEdChkLmlkKX0sY2hpbGRyZW46ZC5saWtlc3x8MH0pfSwibGlrZSIpLCgwLGEuanN4KSgic3BhbiIse29uQ2xpY2s6ZnVuY3Rpb24oKXtyZXR1cm4gZXIoZC5pZCl9LGNoaWxkcmVuOiJcdTU2REVcdTU5MEQifSwicmVwbHkiKV0sY2hpbGRyZW46ZC5yZXBsaWVzJiZkLnJlcGxpZXMubGVuZ3RoPjAmJigwLGEuanN4KShvZS5aLHtjbGFzc05hbWU6eS5yZXBseUxpc3QsaXRlbUxheW91dDoiaG9yaXpvbnRhbCIsZGF0YVNvdXJjZTpkLnJlcGxpZXMscmVuZGVySXRlbTpmdW5jdGlvbih4KXtyZXR1cm4oMCxhLmpzeCkoImxpIix7Y2hpbGRyZW46KDAsYS5qc3gpKFVlLHthdXRob3I6eC5hdXRob3IsYXZhdGFyOnguYXZhdGFyLGNvbnRlbnQ6eC5jb250ZW50LGRhdGV0aW1lOnguZGF0ZXRpbWUsYWN0aW9uczpbKDAsYS5qc3gpKCJzcGFuIix7Y2hpbGRyZW46KDAsYS5qc3gpKEwuWlAse3R5cGU6dnRbeC5pZF0/InByaW1hcnkiOiJ0ZXh0IixzaXplOiJzbWFsbCIsaWNvbjooMCxhLmpzeCkoeWUuWix7fSksb25DbGljazpmdW5jdGlvbigpe3JldHVybiBEdCh4LmlkKX0sY2hpbGRyZW46eC5saWtlc3x8MH0pfSwibGlrZSIpXX0pfSl9fSl9KX0pfX0pXX0pLCgwLGEuanN4cykoRWUuWix7dGl0bGU6Ilx1NEUzRVx1NjJBNVx1NUUxNlx1NUI1MCIsb3BlbjpHdCxvbk9rOnJyLG9uQ2FuY2VsOmZ1bmN0aW9uKCl7ZnQoITEpLGd0KCIiKX0sY29uZmlybUxvYWRpbmc6UXQsb2tUZXh0OiJcdTYzRDBcdTRFQTRcdTRFM0VcdTYyQTUiLGNhbmNlbFRleHQ6Ilx1NTNENlx1NkQ4OCIsY2hpbGRyZW46WygwLGEuanN4cykoImRpdiIse3N0eWxlOnttYXJnaW5Cb3R0b206MTZ9LGNoaWxkcmVuOlsoMCxhLmpzeCkoInN0cm9uZyIse2NoaWxkcmVuOiJcdTVFMTZcdTVCNTBcdUZGMUEifSksbD09bnVsbD92b2lkIDA6bC50aXRsZV19KSwoMCxhLmpzeHMpKCJkaXYiLHtjaGlsZHJlbjpbKDAsYS5qc3gpKCJzdHJvbmciLHtjaGlsZHJlbjoiXHU0RTNFXHU2MkE1XHU3NDA2XHU3NTMxXHVGRjFBIn0pLCgwLGEuanN4KSh5dCx7dmFsdWU6cHQsb25DaGFuZ2U6ZnVuY3Rpb24oZCl7cmV0dXJuIGd0KGQudGFyZ2V0LnZhbHVlKX0scGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEJFNlx1N0VDNlx1NjNDRlx1OEZGMFx1NEUzRVx1NjJBNVx1NzQwNlx1NzUzMS4uLiIscm93czo0LHN0eWxlOnttYXJnaW5Ub3A6OH19KV19KV19KSxGLmxlbmd0aD4wJiYoMCxhLmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6eS5yZWxhdGVkUG9zdHMsY2hpbGRyZW46WygwLGEuanN4cykoImRpdiIse2NsYXNzTmFtZTp5LnJlY29tbWVuZEhlYWRlcixjaGlsZHJlbjpbKDAsYS5qc3gpKGx0LHtsZXZlbDo0LGNoaWxkcmVuOiJcdTc2RjhcdTUxNzNcdTYzQThcdTgzNTAifSksRi5sZW5ndGg+X2UmJigwLGEuanN4KShlZS5aLHtjdXJyZW50OkosdG90YWw6Ri5sZW5ndGgscGFnZVNpemU6X2Usb25DaGFuZ2U6ZnVuY3Rpb24oZCl7cmV0dXJuIE1lKGQpfSxzaG93U2l6ZUNoYW5nZXI6ITEsc2hvd1F1aWNrSnVtcGVyOiExLHNob3dUb3RhbDpmdW5jdGlvbihkLGcpe3JldHVybiIiLmNvbmNhdChnWzBdLCItIikuY29uY2F0KGdbMV0sIiAvICIpLmNvbmNhdChkKX0sc2l6ZToic21hbGwifSldfSksKDAsYS5qc3gpKEllLlose2d1dHRlcjpbMjQsMjRdLGNoaWxkcmVuOkYuc2xpY2UoKEotMSkqX2UsSipfZSkubWFwKGZ1bmN0aW9uKFMpe3JldHVybigwLGEuanN4KShpZS5aLHt4czoyNCxzbToxMixtZDo4LGNoaWxkcmVuOigwLGEuanN4KShhZS5kZWZhdWx0LHtwb3N0OlN9KX0sUy5pZCl9KX0pXX0pXX0pOigwLGEuanN4KSgiZGl2Iix7Y2xhc3NOYW1lOnkucG9zdERldGFpbEVycm9yLGNoaWxkcmVuOiJcdTVFMTZcdTVCNTBcdTRFMERcdTVCNThcdTU3MjhcdTYyMTZcdTVERjJcdTg4QUJcdTUyMjBcdTk2NjQifSl9LE10PXp0fSw2NjMwOTpmdW5jdGlvbihIZSxLLHIpe3IuZChLLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIFdlfX0pO3ZhciBQPXIoNjcyOTQpLFE9cig5Mzk2NyksRT1yLm4oUSksTj1yKDk4NDIzKSwkPXIoOTg3ODcpLHU9cig2OTc2MCksVz1yKDk2MTU5KSxJPXIoNDUzNTMpLFY9cig1MzEyNCksTz1yKDExNTY4KSxwPXIoMTUwNjMpLE9lPXIoMTQ3NDcpLGI9cig4MzI2Miksdj1yKDgzNTU5KTtjb25zdCBUPXQ9Pntjb25zdHtwYWRkaW5nWFhTOmYsbGluZVdpZHRoOmgsdGFnUGFkZGluZ0hvcml6b250YWw6Yyxjb21wb25lbnRDbHM6bSxjYWxjOlh9PXQsRD1YKGMpLnN1YihoKS5lcXVhbCgpLHRlPVgoZikuc3ViKGgpLmVxdWFsKCk7cmV0dXJue1ttXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sKDAsT2UuV2YpKHQpKSx7ZGlzcGxheToiaW5saW5lLWJsb2NrIixoZWlnaHQ6ImF1dG8iLG1hcmdpbklubGluZUVuZDp0Lm1hcmdpblhTLHBhZGRpbmdJbmxpbmU6RCxmb250U2l6ZTp0LnRhZ0ZvbnRTaXplLGxpbmVIZWlnaHQ6dC50YWdMaW5lSGVpZ2h0LHdoaXRlU3BhY2U6Im5vd3JhcCIsYmFja2dyb3VuZDp0LmRlZmF1bHRCZyxib3JkZXI6YCR7KDAsTy5iZikodC5saW5lV2lkdGgpfSAke3QubGluZVR5cGV9ICR7dC5jb2xvckJvcmRlcn1gLGJvcmRlclJhZGl1czp0LmJvcmRlclJhZGl1c1NNLG9wYWNpdHk6MSx0cmFuc2l0aW9uOmBhbGwgJHt0Lm1vdGlvbkR1cmF0aW9uTWlkfWAsdGV4dEFsaWduOiJzdGFydCIscG9zaXRpb246InJlbGF0aXZlIixbYCYke219LXJ0bGBdOntkaXJlY3Rpb246InJ0bCJ9LCImLCBhLCBhOmhvdmVyIjp7Y29sb3I6dC5kZWZhdWx0Q29sb3J9LFtgJHttfS1jbG9zZS1pY29uYF06e21hcmdpbklubGluZVN0YXJ0OnRlLGZvbnRTaXplOnQudGFnSWNvblNpemUsY29sb3I6dC5jb2xvclRleHREZXNjcmlwdGlvbixjdXJzb3I6InBvaW50ZXIiLHRyYW5zaXRpb246YGFsbCAke3QubW90aW9uRHVyYXRpb25NaWR9YCwiJjpob3ZlciI6e2NvbG9yOnQuY29sb3JUZXh0SGVhZGluZ319LFtgJiR7bX0taGFzLWNvbG9yYF06e2JvcmRlckNvbG9yOiJ0cmFuc3BhcmVudCIsW2AmLCBhLCBhOmhvdmVyLCAke3QuaWNvbkNsc30tY2xvc2UsICR7dC5pY29uQ2xzfS1jbG9zZTpob3ZlcmBdOntjb2xvcjp0LmNvbG9yVGV4dExpZ2h0U29saWR9fSwiJi1jaGVja2FibGUiOntiYWNrZ3JvdW5kQ29sb3I6InRyYW5zcGFyZW50Iixib3JkZXJDb2xvcjoidHJhbnNwYXJlbnQiLGN1cnNvcjoicG9pbnRlciIsW2AmOm5vdCgke219LWNoZWNrYWJsZS1jaGVja2VkKTpob3ZlcmBdOntjb2xvcjp0LmNvbG9yUHJpbWFyeSxiYWNrZ3JvdW5kQ29sb3I6dC5jb2xvckZpbGxTZWNvbmRhcnl9LCImOmFjdGl2ZSwgJi1jaGVja2VkIjp7Y29sb3I6dC5jb2xvclRleHRMaWdodFNvbGlkfSwiJi1jaGVja2VkIjp7YmFja2dyb3VuZENvbG9yOnQuY29sb3JQcmltYXJ5LCImOmhvdmVyIjp7YmFja2dyb3VuZENvbG9yOnQuY29sb3JQcmltYXJ5SG92ZXJ9fSwiJjphY3RpdmUiOntiYWNrZ3JvdW5kQ29sb3I6dC5jb2xvclByaW1hcnlBY3RpdmV9fSwiJi1oaWRkZW4iOntkaXNwbGF5OiJub25lIn0sW2A+ICR7dC5pY29uQ2xzfSArIHNwYW4sID4gc3BhbiArICR7dC5pY29uQ2xzfWBdOnttYXJnaW5JbmxpbmVTdGFydDpEfX0pLFtgJHttfS1ib3JkZXJsZXNzYF06e2JvcmRlckNvbG9yOiJ0cmFuc3BhcmVudCIsYmFja2dyb3VuZDp0LnRhZ0JvcmRlcmxlc3NCZ319fSxtZT10PT57Y29uc3R7bGluZVdpZHRoOmYsZm9udFNpemVJY29uOmgsY2FsYzpjfT10LG09dC5mb250U2l6ZVNNO3JldHVybigwLGIuSVgpKHQse3RhZ0ZvbnRTaXplOm0sdGFnTGluZUhlaWdodDooMCxPLmJmKShjKHQubGluZUhlaWdodFNNKS5tdWwobSkuZXF1YWwoKSksdGFnSWNvblNpemU6YyhoKS5zdWIoYyhmKS5tdWwoMikpLmVxdWFsKCksdGFnUGFkZGluZ0hvcml6b250YWw6OCx0YWdCb3JkZXJsZXNzQmc6dC5kZWZhdWx0Qmd9KX0sZ2U9dD0+KHtkZWZhdWx0Qmc6bmV3IHAudCh0LmNvbG9yRmlsbFF1YXRlcm5hcnkpLm9uQmFja2dyb3VuZCh0LmNvbG9yQmdDb250YWluZXIpLnRvSGV4U3RyaW5nKCksZGVmYXVsdENvbG9yOnQuY29sb3JUZXh0fSk7dmFyIHNlPSgwLHYuSSQpKCJUYWciLHQ9Pntjb25zdCBmPW1lKHQpO3JldHVybiBUKGYpfSxnZSksQT1mdW5jdGlvbih0LGYpe3ZhciBoPXt9O2Zvcih2YXIgYyBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGMpJiZmLmluZGV4T2YoYyk8MCYmKGhbY109dFtjXSk7aWYodCE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBtPTAsYz1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO208Yy5sZW5ndGg7bSsrKWYuaW5kZXhPZihjW21dKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodCxjW21dKSYmKGhbY1ttXV09dFtjW21dXSk7cmV0dXJuIGh9LEw9UC5mb3J3YXJkUmVmKCh0LGYpPT57Y29uc3R7cHJlZml4Q2xzOmgsc3R5bGU6YyxjbGFzc05hbWU6bSxjaGVja2VkOlgsb25DaGFuZ2U6RCxvbkNsaWNrOnRlfT10LFk9QSh0LFsicHJlZml4Q2xzIiwic3R5bGUiLCJjbGFzc05hbWUiLCJjaGVja2VkIiwib25DaGFuZ2UiLCJvbkNsaWNrIl0pLHtnZXRQcmVmaXhDbHM6VSx0YWc6cX09UC51c2VDb250ZXh0KFYuRV8pLHJlPWhlPT57RD09bnVsbHx8RCghWCksdGU9PW51bGx8fHRlKGhlKX0sbmU9VSgidGFnIixoKSxbQmUsJGUsR109c2UobmUpLExlPUUoKShuZSxgJHtuZX0tY2hlY2thYmxlYCx7W2Ake25lfS1jaGVja2FibGUtY2hlY2tlZGBdOlh9LHE9PW51bGw/dm9pZCAwOnEuY2xhc3NOYW1lLG0sJGUsRyk7cmV0dXJuIEJlKFAuY3JlYXRlRWxlbWVudCgic3BhbiIsT2JqZWN0LmFzc2lnbih7fSxZLHtyZWY6ZixzdHlsZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sYykscT09bnVsbD92b2lkIDA6cS5zdHlsZSksY2xhc3NOYW1lOkxlLG9uQ2xpY2s6cmV9KSkpfSksb2U9cig5ODcxOSk7Y29uc3QgRWU9dD0+KDAsb2UuWikodCwoZixoKT0+e2xldHt0ZXh0Q29sb3I6YyxsaWdodEJvcmRlckNvbG9yOm0sbGlnaHRDb2xvcjpYLGRhcmtDb2xvcjpEfT1oO3JldHVybntbYCR7dC5jb21wb25lbnRDbHN9JHt0LmNvbXBvbmVudENsc30tJHtmfWBdOntjb2xvcjpjLGJhY2tncm91bmQ6WCxib3JkZXJDb2xvcjptLCImLWludmVyc2UiOntjb2xvcjp0LmNvbG9yVGV4dExpZ2h0U29saWQsYmFja2dyb3VuZDpELGJvcmRlckNvbG9yOkR9LFtgJiR7dC5jb21wb25lbnRDbHN9LWJvcmRlcmxlc3NgXTp7Ym9yZGVyQ29sb3I6InRyYW5zcGFyZW50In19fX0pO3ZhciBlZT0oMCx2LmJrKShbIlRhZyIsInByZXNldCJdLHQ9Pntjb25zdCBmPW1lKHQpO3JldHVybiBFZShmKX0sZ2UpO2Z1bmN0aW9uIEllKHQpe3JldHVybiB0eXBlb2YgdCE9InN0cmluZyI/dDp0LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK3Quc2xpY2UoMSl9Y29uc3QgaWU9KHQsZixoKT0+e2NvbnN0IGM9SWUoaCk7cmV0dXJue1tgJHt0LmNvbXBvbmVudENsc30ke3QuY29tcG9uZW50Q2xzfS0ke2Z9YF06e2NvbG9yOnRbYGNvbG9yJHtofWBdLGJhY2tncm91bmQ6dFtgY29sb3Ike2N9QmdgXSxib3JkZXJDb2xvcjp0W2Bjb2xvciR7Y31Cb3JkZXJgXSxbYCYke3QuY29tcG9uZW50Q2xzfS1ib3JkZXJsZXNzYF06e2JvcmRlckNvbG9yOiJ0cmFuc3BhcmVudCJ9fX19O3ZhciBaZT0oMCx2LmJrKShbIlRhZyIsInN0YXR1cyJdLHQ9Pntjb25zdCBmPW1lKHQpO3JldHVybltpZShmLCJzdWNjZXNzIiwiU3VjY2VzcyIpLGllKGYsInByb2Nlc3NpbmciLCJJbmZvIiksaWUoZiwiZXJyb3IiLCJFcnJvciIpLGllKGYsIndhcm5pbmciLCJXYXJuaW5nIildfSxnZSksQWU9ZnVuY3Rpb24odCxmKXt2YXIgaD17fTtmb3IodmFyIGMgaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxjKSYmZi5pbmRleE9mKGMpPDAmJihoW2NdPXRbY10pO2lmKHQhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgbT0wLGM9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTttPGMubGVuZ3RoO20rKylmLmluZGV4T2YoY1ttXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHQsY1ttXSkmJihoW2NbbV1dPXRbY1ttXV0pO3JldHVybiBofTtjb25zdCB2ZT1QLmZvcndhcmRSZWYoKHQsZik9Pntjb25zdHtwcmVmaXhDbHM6aCxjbGFzc05hbWU6Yyxyb290Q2xhc3NOYW1lOm0sc3R5bGU6WCxjaGlsZHJlbjpELGljb246dGUsY29sb3I6WSxvbkNsb3NlOlUsYm9yZGVyZWQ6cT0hMCx2aXNpYmxlOnJlfT10LG5lPUFlKHQsWyJwcmVmaXhDbHMiLCJjbGFzc05hbWUiLCJyb290Q2xhc3NOYW1lIiwic3R5bGUiLCJjaGlsZHJlbiIsImljb24iLCJjb2xvciIsIm9uQ2xvc2UiLCJib3JkZXJlZCIsInZpc2libGUiXSkse2dldFByZWZpeENsczpCZSxkaXJlY3Rpb246JGUsdGFnOkd9PVAudXNlQ29udGV4dChWLkVfKSxbTGUsaGVdPVAudXNlU3RhdGUoITApLFZlPSgwLE4uWikobmUsWyJjbG9zZUljb24iLCJjbG9zYWJsZSJdKTtQLnVzZUVmZmVjdCgoKT0+e3JlIT09dm9pZCAwJiZoZShyZSl9LFtyZV0pO2NvbnN0IFhlPSgwLCQubzIpKFkpLEtlPSgwLCQueVQpKFkpLHplPVhlfHxLZSx0dD1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe2JhY2tncm91bmRDb2xvcjpZJiYhemU/WTp2b2lkIDB9LEc9PW51bGw/dm9pZCAwOkcuc3R5bGUpLFgpLHo9QmUoInRhZyIsaCksW3J0LFVlLG50XT1zZSh6KSxhdD1FKCkoeixHPT1udWxsP3ZvaWQgMDpHLmNsYXNzTmFtZSx7W2Ake3p9LSR7WX1gXTp6ZSxbYCR7en0taGFzLWNvbG9yYF06WSYmIXplLFtgJHt6fS1oaWRkZW5gXTohTGUsW2Ake3p9LXJ0bGBdOiRlPT09InJ0bCIsW2Ake3p9LWJvcmRlcmxlc3NgXTohcX0sYyxtLFVlLG50KSxHZT1sZT0+e2xlLnN0b3BQcm9wYWdhdGlvbigpLFU9PW51bGx8fFUobGUpLCFsZS5kZWZhdWx0UHJldmVudGVkJiZoZSghMSl9LFssc3RdPSgwLHUuWikoKDAsdS53KSh0KSwoMCx1LncpKEcpLHtjbG9zYWJsZTohMSxjbG9zZUljb25SZW5kZXI6bGU9Pntjb25zdCBjZT1QLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6YCR7en0tY2xvc2UtaWNvbmAsb25DbGljazpHZX0sbGUpO3JldHVybigwLFcud20pKGxlLGNlLGFlPT4oe29uQ2xpY2s6eT0+e3ZhciBhOyhhPWFlPT1udWxsP3ZvaWQgMDphZS5vbkNsaWNrKT09PW51bGx8fGE9PT12b2lkIDB8fGEuY2FsbChhZSx5KSxHZSh5KX0sY2xhc3NOYW1lOkUoKShhZT09bnVsbD92b2lkIDA6YWUuY2xhc3NOYW1lLGAke3p9LWNsb3NlLWljb25gKX0pKX19KSxvdD10eXBlb2YgbmUub25DbGljaz09ImZ1bmN0aW9uInx8RCYmRC50eXBlPT09ImEiLGtlPXRlfHxudWxsLGl0PWtlP1AuY3JlYXRlRWxlbWVudChQLkZyYWdtZW50LG51bGwsa2UsRCYmUC5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLEQpKTpELHllPVAuY3JlYXRlRWxlbWVudCgic3BhbiIsT2JqZWN0LmFzc2lnbih7fSxWZSx7cmVmOmYsY2xhc3NOYW1lOmF0LHN0eWxlOnR0fSksaXQsc3QsWGUmJlAuY3JlYXRlRWxlbWVudChlZSx7a2V5OiJwcmVzZXQiLHByZWZpeENsczp6fSksS2UmJlAuY3JlYXRlRWxlbWVudChaZSx7a2V5OiJzdGF0dXMiLHByZWZpeENsczp6fSkpO3JldHVybiBydChvdD9QLmNyZWF0ZUVsZW1lbnQoSS5aLHtjb21wb25lbnQ6IlRhZyJ9LHllKTp5ZSl9KTt2ZS5DaGVja2FibGVUYWc9TDt2YXIgV2U9dmV9LDY0MDE5OmZ1bmN0aW9uKEhlLEsscil7ci5kKEsse1o6ZnVuY3Rpb24oKXtyZXR1cm4gUX19KTt2YXIgUD1yKDczOTM1KTtmdW5jdGlvbiBRKEUsTiwkLHUpe3ZhciBXPVAudW5zdGFibGVfYmF0Y2hlZFVwZGF0ZXM/ZnVuY3Rpb24oVil7UC51bnN0YWJsZV9iYXRjaGVkVXBkYXRlcygkLFYpfTokO3JldHVybiBFIT1udWxsJiZFLmFkZEV2ZW50TGlzdGVuZXImJkUuYWRkRXZlbnRMaXN0ZW5lcihOLFcsdSkse3JlbW92ZTpmdW5jdGlvbigpe0UhPW51bGwmJkUucmVtb3ZlRXZlbnRMaXN0ZW5lciYmRS5yZW1vdmVFdmVudExpc3RlbmVyKE4sVyx1KX19fX0sNzkzNzA6ZnVuY3Rpb24oSGUsSyxyKXtyLmQoSyx7RzpmdW5jdGlvbigpe3JldHVybiBOfX0pO3ZhciBQPXIoOTg5MjQpLFE9ZnVuY3Rpb24odSl7aWYoKDAsUC5aKSgpJiZ3aW5kb3cuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KXt2YXIgVz1BcnJheS5pc0FycmF5KHUpP3U6W3VdLEk9d2luZG93LmRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtyZXR1cm4gVy5zb21lKGZ1bmN0aW9uKFYpe3JldHVybiBWIGluIEkuc3R5bGV9KX1yZXR1cm4hMX0sRT1mdW5jdGlvbih1LFcpe2lmKCFRKHUpKXJldHVybiExO3ZhciBJPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLFY9SS5zdHlsZVt1XTtyZXR1cm4gSS5zdHlsZVt1XT1XLEkuc3R5bGVbdV0hPT1WfTtmdW5jdGlvbiBOKCQsdSl7cmV0dXJuIUFycmF5LmlzQXJyYXkoJCkmJnUhPT12b2lkIDA/RSgkLHUpOlEoJCl9fX1dKTsKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvcF9fUG9zdENlbnRlcl9fUG9zdERldGFpbC5kY2VmNTdhNS5jaHVuay5jc3MgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljL3BfX1Bvc3RDZW50ZXJfX1Bvc3REZXRhaWwuZGNlZjU3YTUuY2h1bmsuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY1NDg4ODIKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljL3BfX1Bvc3RDZW50ZXJfX1Bvc3REZXRhaWwuZGNlZjU3YTUuY2h1bmsuY3NzCkBAIC0wLDAgKzEgQEAKKy5wb3N0Q2FyZFdyYXBwZXJfX19TdzFTaXt3aWR0aDoxMDAlO2hlaWdodDoxMDAlfS5wb3N0Q2FyZF9fX2ZMS05he2hlaWdodDoxMDAlO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Ym9yZGVyLXJhZGl1czoxMnB4O292ZXJmbG93OmhpZGRlbjtib3gtc2hhZG93OjAgMnB4IDhweCAjMDAwMDAwMWE7dHJhbnNpdGlvbjphbGwgLjNzIGVhc2U7YmFja2dyb3VuZDojZmZmfS5wb3N0Q2FyZF9fX2ZMS05hOmhvdmVye3RyYW5zZm9ybTp0cmFuc2xhdGVZKC00cHgpO2JveC1zaGFkb3c6MCA4cHggMjRweCAjMDAwMDAwMjZ9LmNvdmVyQ29udGFpbmVyX19fRzhvMTR7d2lkdGg6MTAwJTtoZWlnaHQ6MjAwcHg7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlO2JhY2tncm91bmQ6I2Y1ZjVmNTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9LmNvdmVySW1hZ2VfX19zbmN4ZXt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO29iamVjdC1maXQ6Y29udGFpbjtvYmplY3QtcG9zaXRpb246Y2VudGVyO3RyYW5zaXRpb246dHJhbnNmb3JtIC4zcyBlYXNlO2JhY2tncm91bmQ6I2Y1ZjVmNX0ucG9zdENhcmRfX19mTEtOYTpob3ZlciAuY292ZXJJbWFnZV9fX3NuY3hle3RyYW5zZm9ybTpzY2FsZSgxLjAyKX0ucHJvbW90aW9uQmFkZ2VfX19ucmZEeXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6OHB4O3JpZ2h0OjhweDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg0NWRlZywjZmY2YjZiLG9yYW5nZSk7Y29sb3I6I2ZmZjtwYWRkaW5nOjRweCA4cHg7Ym9yZGVyLXJhZGl1czoxMnB4O2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjcwMDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo0cHg7ei1pbmRleDoxMDtib3gtc2hhZG93OjAgMnB4IDRweCAjMDAwM30uY2FyZENvbnRlbnRfX194b0tzX3tmbGV4OjEgMTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2hlaWdodDoxMDAlfS5wb3N0VGl0bGVfX19rSk5VdHtmb250LXNpemU6MTZweDtmb250LXdlaWdodDo2MDA7bWFyZ2luOjAgMCAxMnB4O2xpbmUtaGVpZ2h0OjEuNDtjb2xvcjojMjYyNjI2O2Rpc3BsYXk6LXdlYmtpdC1ib3g7LXdlYmtpdC1saW5lLWNsYW1wOjI7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsO292ZXJmbG93OmhpZGRlbjtoZWlnaHQ6NDRweH0ucG9zdE1ldGFfX19vQXZjSHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2ZvbnQtc2l6ZToxMnB4O2NvbG9yOiM4YzhjOGM7bWFyZ2luLWJvdHRvbToxMnB4O2hlaWdodDoyMHB4fS5hdXRob3JOYW1lX19fQVZoU217Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOiM1OTU5NTl9LnB1Ymxpc2hUaW1lX19fTHJQcWh7Y29sb3I6IzhjOGM4Y30udGFnc0NvbnRhaW5lcl9fX0Nrb2lxe21hcmdpbi1ib3R0b206MTJweDtoZWlnaHQ6MjRweDtkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7Z2FwOjRweDtvdmVyZmxvdzpoaWRkZW59LnRhZ19fX0lQOEtke2ZvbnQtc2l6ZToxMXB4O3BhZGRpbmc6MnB4IDZweDttYXJnaW46MDtib3JkZXItcmFkaXVzOjRweH0ucG9zdFN1bW1hcnlfX19KMVFjNXtmbGV4OjEgMTtmb250LXNpemU6MTNweDtjb2xvcjojNTk1OTU5O2xpbmUtaGVpZ2h0OjEuNTttYXJnaW4tYm90dG9tOjE2cHg7ZGlzcGxheTotd2Via2l0LWJveDstd2Via2l0LWxpbmUtY2xhbXA6Mzstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7b3ZlcmZsb3c6aGlkZGVuO2hlaWdodDo2MHB4fS5wb3N0Rm9vdGVyX19fWFZjdXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjttYXJnaW4tdG9wOmF1dG87cGFkZGluZy10b3A6MTJweDtib3JkZXItdG9wOjFweCBzb2xpZCAjZjBmMGYwO2hlaWdodDozMnB4fS5zdGF0c19fX3BReXI5e2Rpc3BsYXk6ZmxleDtnYXA6MTZweH0uc3RhdEl0ZW1fX19HWmowSntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo0cHg7Zm9udC1zaXplOjEycHg7Y29sb3I6IzhjOGM4Y30uc3RhdEl0ZW1fX19HWmowSiAuYW50aWNvbl9fX19aSzFQe2ZvbnQtc2l6ZToxMnB4fS5yZWFkTW9yZUJ0bl9fX0J5djVXe3BhZGRpbmc6MDtmb250LXNpemU6MTJweDtjb2xvcjojMTg5MGZmO2ZvbnQtd2VpZ2h0OjUwMH0ucmVhZE1vcmVCdG5fX19CeXY1Vzpob3Zlcntjb2xvcjojNDBhOWZmfUBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCl7LmNvdmVyQ29udGFpbmVyX19fRzhvMTR7aGVpZ2h0OjE2MHB4fS5wb3N0VGl0bGVfX19rSk5VdHtmb250LXNpemU6MTRweDtoZWlnaHQ6NDBweH0ucG9zdFN1bW1hcnlfX19KMVFjNXtmb250LXNpemU6MTJweDstd2Via2l0LWxpbmUtY2xhbXA6MjtoZWlnaHQ6MzZweH0uc3RhdHNfX19wUXlyOXtnYXA6MTJweH0uc3RhdEl0ZW1fX19HWmowSntmb250LXNpemU6MTFweH19LnBvc3REZXRhaWxDb250YWluZXJfX19tSzNIN3ttYXgtd2lkdGg6MTIwMHB4O21hcmdpbjowIGF1dG87YmFja2dyb3VuZDojZjVmNWY1O21pbi1oZWlnaHQ6MTAwdmh9LnBvc3RDb3ZlclNlY3Rpb25fX19lZEJ3YnttYXJnaW4tYm90dG9tOjI0cHg7Ym9yZGVyLXJhZGl1czowIDAgMTZweCAxNnB4O292ZXJmbG93OmhpZGRlbjtib3gtc2hhZG93OjAgNHB4IDEycHggIzAwMDAwMDFhfS5jb3ZlckltYWdlQ29udGFpbmVyX19fVEpMeXh7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTAwJTtoZWlnaHQ6NDAwcHg7b3ZlcmZsb3c6aGlkZGVuO2JhY2tncm91bmQ6I2YwZjBmMH0uY292ZXJJbWFnZV9fX2x4WTcye3dpZHRoOjEwMCUhaW1wb3J0YW50O2hlaWdodDoxMDAlIWltcG9ydGFudDtvYmplY3QtZml0OmNvdmVyIWltcG9ydGFudDt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuM3MgZWFzZX0uY292ZXJJbWFnZV9fX2x4WTcyOmhvdmVye3RyYW5zZm9ybTpzY2FsZSgxLjAyKX0uY292ZXJPdmVybGF5X19fRFhDbTN7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7cG9pbnRlci1ldmVudHM6bm9uZX0uY292ZXJHcmFkaWVudF9fX2Z4cjF5e3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO2hlaWdodDoxMDBweDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0cmFuc3BhcmVudCwjMDAwMDAwNGQpfS5wcmV2aWV3TWFza19fX3BkbVBGe2JhY2tncm91bmQ6IzAwMDAwMDgwO2NvbG9yOiNmZmY7cGFkZGluZzo4cHggMTZweDtib3JkZXItcmFkaXVzOjRweDtmb250LXNpemU6MTRweH0ucG9zdERldGFpbEhlYWRlcl9fX2wzdUxxe21hcmdpbjowIDI0cHggMjRweDtib3JkZXItcmFkaXVzOjEycHg7Ym94LXNoYWRvdzowIDJweCA4cHggIzAwMDAwMDFhfS50aXRsZUNvbnRhaW5lcl9fX0FycDZKe2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjE2cHg7bWFyZ2luLWJvdHRvbToxNnB4fS50aXRsZUNvbnRhaW5lcl9fX0FycDZKIGgye21hcmdpbjowO2ZsZXg6MSAxfS5wcm9tb3Rpb25CYWRnZV9fX1JYaGV2e2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLCNmZjZiNmIsb3JhbmdlKTtjb2xvcjojZmZmO3BhZGRpbmc6NnB4IDEycHg7Ym9yZGVyLXJhZGl1czoxNnB4O2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjcwMDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7Ym94LXNoYWRvdzowIDJweCA0cHggIzAwMDM7d2hpdGUtc3BhY2U6bm93cmFwfS5wb3N0TWV0YV9fX0JnR3dne2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDtnYXA6MjRweDttYXJnaW46MTZweCAwO3BhZGRpbmc6MTZweCAwO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNmMGYwZjB9LnBvc3RBdXRob3JfX19Cc3FIViwucG9zdFRpbWVfX19CMTBxQiwucG9zdFZpZXdzX19fX1dTR0ssLnBvc3RUYWdzX19faWJpSEl7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4fS5wb3N0QWN0aW9uc19fX29HbWN2e2Rpc3BsYXk6ZmxleDtnYXA6MTJweDtmbGV4LXdyYXA6d3JhcDttYXJnaW4tdG9wOjE2cHh9LnBvc3RDb250ZW50X19fc09IT297bWFyZ2luOjAgMjRweCAyNHB4O2JvcmRlci1yYWRpdXM6MTJweDtib3gtc2hhZG93OjAgMnB4IDhweCAjMDAwMDAwMWF9LnBvc3RDb250ZW50X19fc09IT28gaW1ne21heC13aWR0aDoxMDAlO2hlaWdodDphdXRvfS5jb21tZW50U2VjdGlvbl9fX1ZyWEhje21hcmdpbjowIDI0cHggMjRweDtib3JkZXItcmFkaXVzOjEycHg7Ym94LXNoYWRvdzowIDJweCA4cHggIzAwMDAwMDFhfS5jb21tZW50SW5wdXRfX19vcmVwU3ttYXJnaW4tYm90dG9tOjI0cHh9LmNvbW1lbnRBY3Rpb25zX19fekFWbUR7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpmbGV4LWVuZDtnYXA6MTJweDttYXJnaW4tdG9wOjEycHh9LmNvbW1lbnRMaXN0X19fSmI2Mmp7bWFyZ2luLXRvcDoyNHB4fS5yZXBseUxpc3RfX19PTVFGY3ttYXJnaW4tdG9wOjE2cHg7cGFkZGluZy1sZWZ0OjI0cHg7Ym9yZGVyLWxlZnQ6MnB4IHNvbGlkICNmMGYwZjB9LnJlbGF0ZWRQb3N0c19fX211U210e21hcmdpbjowIDI0cHggMjRweDtwYWRkaW5nOjI0cHg7YmFja2dyb3VuZDojZmZmO2JvcmRlci1yYWRpdXM6MTJweDtib3gtc2hhZG93OjAgMnB4IDhweCAjMDAwMDAwMWF9LnJlY29tbWVuZEhlYWRlcl9fX0ZNOGFBe2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjthbGlnbi1pdGVtczpjZW50ZXI7bWFyZ2luLWJvdHRvbToyNHB4fS5yZWNvbW1lbmRIZWFkZXJfX19GTThhQSBoNHttYXJnaW46MH0ucG9zdERldGFpbExvYWRpbmdfX19Va2lDU3tkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21pbi1oZWlnaHQ6NDAwcHg7Y29sb3I6IzY2Nn0ucG9zdERldGFpbEVycm9yX19fYkVzT0F7dGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZzo2MHB4IDI0cHg7Y29sb3I6Izk5OTtmb250LXNpemU6MTZweH1AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpey5wb3N0RGV0YWlsQ29udGFpbmVyX19fbUszSDd7bWFyZ2luOjB9LmNvdmVySW1hZ2VDb250YWluZXJfX19USkx5eHtoZWlnaHQ6MjUwcHh9LnBvc3REZXRhaWxIZWFkZXJfX19sM3VMcSwucG9zdENvbnRlbnRfX19zT0hPbywuY29tbWVudFNlY3Rpb25fX19WclhIYywucmVsYXRlZFBvc3RzX19fbXVTbXR7bWFyZ2luOjAgMTJweCAxNnB4O2JvcmRlci1yYWRpdXM6OHB4fS5wb3N0TWV0YV9fX0JnR3dne2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MTJweH0ucG9zdEFjdGlvbnNfX19vR21jdntmbGV4LWRpcmVjdGlvbjpjb2x1bW59LnBvc3RBY3Rpb25zX19fb0dtY3YgYnV0dG9ue3dpZHRoOjEwMCV9fUBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCl7LmNvdmVySW1hZ2VDb250YWluZXJfX19USkx5eHtoZWlnaHQ6MjAwcHh9LnBvc3REZXRhaWxIZWFkZXJfX19sM3VMcSwucG9zdENvbnRlbnRfX19zT0hPbywuY29tbWVudFNlY3Rpb25fX19WclhIYywucmVsYXRlZFBvc3RzX19fbXVTbXR7bWFyZ2luOjAgOHB4IDEycHh9fQpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy9wX19Qb3N0Q2VudGVyX19pbmRleC4xZjM3M2E3MC5hc3luYy5qcyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvcF9fUG9zdENlbnRlcl9faW5kZXguMWYzNzNhNzAuYXN5bmMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2E2OWEwMwotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvcF9fUG9zdENlbnRlcl9faW5kZXguMWYzNzNhNzAuYXN5bmMuanMKQEAgLTAsMCArMSBAQAorInVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvPXNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm98fFtdKS5wdXNoKFtbODI5OV0sezg5MDA2OmZ1bmN0aW9uKG1lLFAsYSl7YS5yKFApLGEuZChQLHtkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuIEh9fSk7dmFyIGVlPWEoNjcyOTQpLHk9YSg0MzkzKSxEPWEoNjg5OTcpLHA9YSg2NjMwOSksaz1hKDgzNjIyKSxUPWEoNTQ4MTEpLFI9YSg4NzU0NyksZz1hKDI0MDE5KSxoPWEoOTk2MTEpLEs9YSg3MTI1NSksST1hKDQ5NjQ3KSxtPWEoNzY3NzIpLG49e3Bvc3RDYXJkV3JhcHBlcjoicG9zdENhcmRXcmFwcGVyX19fU3cxU2kiLHBvc3RDYXJkOiJwb3N0Q2FyZF9fX2ZMS05hIixjb3ZlckNvbnRhaW5lcjoiY292ZXJDb250YWluZXJfX19HOG8xNCIsY292ZXJJbWFnZToiY292ZXJJbWFnZV9fX3NuY3hlIixwcm9tb3Rpb25CYWRnZToicHJvbW90aW9uQmFkZ2VfX19ucmZEeSIsY2FyZENvbnRlbnQ6ImNhcmRDb250ZW50X19feG9Lc18iLHBvc3RUaXRsZToicG9zdFRpdGxlX19fa0pOVXQiLHBvc3RNZXRhOiJwb3N0TWV0YV9fX29BdmNIIixhdXRob3JOYW1lOiJhdXRob3JOYW1lX19fQVZoU20iLHB1Ymxpc2hUaW1lOiJwdWJsaXNoVGltZV9fX0xyUHFoIix0YWdzQ29udGFpbmVyOiJ0YWdzQ29udGFpbmVyX19fQ2tvaXEiLHRhZzoidGFnX19fSVA4S2QiLHBvc3RTdW1tYXJ5OiJwb3N0U3VtbWFyeV9fX0oxUWM1Iixwb3N0Rm9vdGVyOiJwb3N0Rm9vdGVyX19fWFZjdXIiLHN0YXRzOiJzdGF0c19fX3BReXI5IixzdGF0SXRlbToic3RhdEl0ZW1fX19HWmowSiIsYW50aWNvbjoiYW50aWNvbl9fX19aSzFQIixyZWFkTW9yZUJ0bjoicmVhZE1vcmVCdG5fX19CeXY1VyJ9LHM9YSg4NTg5Myksej1mdW5jdGlvbihMKXt2YXIgaT1MLnBvc3QsVT1pLmlkLHQ9aS50aXRsZSxCPWkuYXV0aG9yLFY9aS5wdWJsaXNoVGltZSxlPWkudGFncyxHPWkudmlld3MsSj1pLmNvbW1lbnRzLFc9aS5mYXZvcml0ZXMsdmU9aS5saWtlcyxDPWkuY292ZXJJbWFnZSxFPWkuc3VtbWFyeSwkPWkucHJvbW90aW9uUGxhbklkLEY9aS5pc1Byb21vdGVkLFo9ZnVuY3Rpb24oKXttLmhpc3RvcnkucHVzaCgiL3Bvc3QtZGV0YWlsLyIuY29uY2F0KFUpKX07cmV0dXJuKDAscy5qc3gpKCJkaXYiLHtjbGFzc05hbWU6bi5wb3N0Q2FyZFdyYXBwZXIsY2hpbGRyZW46KDAscy5qc3gpKHkuWix7aG92ZXJhYmxlOiEwLGNvdmVyOigwLHMuanN4cykoImRpdiIse2NsYXNzTmFtZTpuLmNvdmVyQ29udGFpbmVyLGNoaWxkcmVuOltGJiYoMCxzLmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6bi5wcm9tb3Rpb25CYWRnZSxjaGlsZHJlbjpbKDAscy5qc3gpKFQuWix7fSksKDAscy5qc3gpKCJzcGFuIix7Y2hpbGRyZW46Ilx1NjNBOFx1NUU3RiJ9KV19KSwoMCxzLmpzeCkoImltZyIse2FsdDp0LHNyYzpDLGNsYXNzTmFtZTpuLmNvdmVySW1hZ2Usb25FcnJvcjpmdW5jdGlvbihBKXtBLmN1cnJlbnRUYXJnZXQuc3JjPSIvaW1hZ2VzLzQwNC5wbmcifX0pXX0pLGNsYXNzTmFtZTpuLnBvc3RDYXJkLGJvZHlTdHlsZTp7cGFkZGluZzoiMTZweCIsaGVpZ2h0OiIyNDBweCIsZGlzcGxheToiZmxleCIsZmxleERpcmVjdGlvbjoiY29sdW1uIn0sY2hpbGRyZW46KDAscy5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOm4uY2FyZENvbnRlbnQsY2hpbGRyZW46WygwLHMuanN4KSgiaDMiLHtjbGFzc05hbWU6bi5wb3N0VGl0bGUsdGl0bGU6dCxjaGlsZHJlbjp0fSksKDAscy5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOm4ucG9zdE1ldGEsY2hpbGRyZW46WygwLHMuanN4KShELlose3NpemU6InNtYWxsIixzdHlsZTp7bWFyZ2luUmlnaHQ6Nn0saWNvbjooMCxzLmpzeCkoUi5aLHt9KSxjaGlsZHJlbjpCJiZCWzBdfSksKDAscy5qc3gpKCJzcGFuIix7Y2xhc3NOYW1lOm4uYXV0aG9yTmFtZSxjaGlsZHJlbjpCfSksKDAscy5qc3gpKGcuWix7c3R5bGU6e21hcmdpbkxlZnQ6MTIsbWFyZ2luUmlnaHQ6NH19KSwoMCxzLmpzeCkoInNwYW4iLHtjbGFzc05hbWU6bi5wdWJsaXNoVGltZSxjaGlsZHJlbjpWfSldfSksKDAscy5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOm4udGFnc0NvbnRhaW5lcixjaGlsZHJlbjpbKEFycmF5LmlzQXJyYXkoZSk/ZTpbXSkuc2xpY2UoMCwzKS5tYXAoZnVuY3Rpb24oUyl7cmV0dXJuKDAscy5qc3gpKHAuWix7Y29sb3I6ImJsdWUiLGNsYXNzTmFtZTpuLnRhZyxjaGlsZHJlbjpTfSxTKX0pLGUmJmUubGVuZ3RoPjMmJigwLHMuanN4cykocC5aLHtjb2xvcjoiZGVmYXVsdCIsY2xhc3NOYW1lOm4udGFnLGNoaWxkcmVuOlsiKyIsZS5sZW5ndGgtM119KV19KSwoMCxzLmpzeCkoImRpdiIse2NsYXNzTmFtZTpuLnBvc3RTdW1tYXJ5LHRpdGxlOkUsY2hpbGRyZW46RX0pLCgwLHMuanN4cykoImRpdiIse2NsYXNzTmFtZTpuLnBvc3RGb290ZXIsY2hpbGRyZW46WygwLHMuanN4cykoImRpdiIse2NsYXNzTmFtZTpuLnN0YXRzLGNoaWxkcmVuOlsoMCxzLmpzeHMpKCJzcGFuIix7Y2xhc3NOYW1lOm4uc3RhdEl0ZW0sY2hpbGRyZW46WygwLHMuanN4KShoLlose30pLCIgIixHfHwwXX0pLCgwLHMuanN4cykoInNwYW4iLHtjbGFzc05hbWU6bi5zdGF0SXRlbSxjaGlsZHJlbjpbKDAscy5qc3gpKEsuWix7fSksIiAiLEp8fDBdfSksKDAscy5qc3hzKSgic3BhbiIse2NsYXNzTmFtZTpuLnN0YXRJdGVtLGNoaWxkcmVuOlsoMCxzLmpzeCkoSS5aLHt9KSwiICIsV3x8MF19KV19KSwoMCxzLmpzeCkoay5aUCx7dHlwZToibGluayIsY2xhc3NOYW1lOm4ucmVhZE1vcmVCdG4sb25DbGljazpaLGNoaWxkcmVuOiJcdTY3RTVcdTc3MEJcdTY2RjRcdTU5MUEgXHhCQiJ9KV19KV19KX0pfSl9LEg9en0sODc1NTpmdW5jdGlvbihtZSxQLGEpe2EucihQKSxhLmQoUCx7ZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybiBXfX0pO3ZhciBlZT1hKDE1MDA5KSx5PWEubihlZSksRD1hKDk3ODU3KSxwPWEubihEKSxrPWEoOTkyODkpLFQ9YS5uKGspLFI9YSg1NTc0KSxnPWEubihSKSxoPWEoNjcyOTQpLEs9YSgyNTI3OCksST1hKDI0NTMpLG09YSg4MzYyMiksbj1hKDkxOTc4KSxzPWEoNzEyMzApLHo9YSgxNTc0NiksSD1hKDU4ODI0KSxhZT1hKDQ4Mjk2KSxMPWEoNzM0ODApLGk9YSg3NjYyKSxVPWEoODkwMDYpLHQ9e3Bvc3RDZW50ZXJDb250YWluZXI6InBvc3RDZW50ZXJDb250YWluZXJfX192c09iRiIsaGVhZGVyTmF2OiJoZWFkZXJOYXZfX19LUGU1TSIsY2F0ZWdvcnlNZW51OiJjYXRlZ29yeU1lbnVfX19wTnlVRSIsY2F0ZWdvcnlCdXR0b246ImNhdGVnb3J5QnV0dG9uX19fZU9xRVoiLHNlYXJjaENvbnRhaW5lcjoic2VhcmNoQ29udGFpbmVyX19fdzUyZkQiLHVzZXJDZW50ZXI6InVzZXJDZW50ZXJfX19LaFpOZCIsY2Fyb3VzZWxDb250YWluZXI6ImNhcm91c2VsQ29udGFpbmVyX19fSEgxenEiLGNhcm91c2VsU2xpZGU6ImNhcm91c2VsU2xpZGVfX19zNWVNQSIsY2Fyb3VzZWxPdmVybGF5OiJjYXJvdXNlbE92ZXJsYXlfX19oNFZEYSIsY2Fyb3VzZWxUaXRsZToiY2Fyb3VzZWxUaXRsZV9fX3JveEFWIixjYXJvdXNlbFN1bW1hcnk6ImNhcm91c2VsU3VtbWFyeV9fX3JMbENJIixjYXJvdXNlbE1ldGE6ImNhcm91c2VsTWV0YV9fX25DRkhEIixwb3N0c1NlY3Rpb246InBvc3RzU2VjdGlvbl9fX1R3MG9pIixjYXRlZ29yeVRpdGxlOiJjYXRlZ29yeVRpdGxlX19fbGFSeFMiLHBvc3RzUm93OiJwb3N0c1Jvd19fX1N4YXBtIixwb3N0Q29sOiJwb3N0Q29sX19fVjJ2dW8iLGVtcHR5U3RhdGU6ImVtcHR5U3RhdGVfX19pb3ZTdyIscGFnaW5hdGlvbkNvbnRhaW5lcjoicGFnaW5hdGlvbkNvbnRhaW5lcl9fX2lKbWxUIn0sQj1hKDk2OTc0KSxWPWEoNzY3NzIpLGU9YSg4NTg5MyksRz1LLlouU2VhcmNoLEo9ZnVuY3Rpb24oKXt2YXIgQyxFPSgwLGgudXNlU3RhdGUpKFtdKSwkPWcoKShFLDIpLEY9JFswXSxaPSRbMV0sUz0oMCxoLnVzZVN0YXRlKShbXSksQT1nKCkoUywyKSx0ZT1BWzBdLGhlPUFbMV0sZ2U9KDAsaC51c2VTdGF0ZSkoMCksc2U9ZygpKGdlLDIpLHJlPXNlWzBdLFE9c2VbMV0sQ2U9KDAsaC51c2VTdGF0ZSkoMSksbmU9ZygpKENlLDIpLFg9bmVbMF0sWT1uZVsxXSxwZT0oMCxoLnVzZVN0YXRlKSghMSksb2U9ZygpKHBlLDIpLGZlPW9lWzBdLGxlPW9lWzFdLHhlPSgwLGgudXNlU3RhdGUpKCJhbGwiKSxpZT1nKCkoeGUsMiksYz1pZVswXSxqZT1pZVsxXSx5ZT0oMCxoLnVzZVN0YXRlKSgiIiksdWU9ZygpKHllLDIpLHc9dWVbMF0sYj11ZVsxXSxjZT0xMixxPSgwLEIuczApKCksU2U9KDAsVi51c2VNb2RlbCkoIkBAaW5pdGlhbFN0YXRlIiksXz1TZS5pbml0aWFsU3RhdGUsTmU9KF89PW51bGx8fChDPV8uY3VycmVudFVzZXIpPT09bnVsbHx8Qz09PXZvaWQgMHx8KEM9Qy51c2VyTmFtZSk9PT1udWxsfHxDPT09dm9pZCAwP3ZvaWQgMDpDLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoImFkbWluIikpfHwhMSxNPWZ1bmN0aW9uKCl7dmFyIHI9VCgpKHkoKSgpLm1hcmsoZnVuY3Rpb24gbygpe3ZhciBOLHgsTyx1LGwsZGUsaj1hcmd1bWVudHM7cmV0dXJuIHkoKSgpLndyYXAoZnVuY3Rpb24oZCl7Zm9yKDs7KXN3aXRjaChkLnByZXY9ZC5uZXh0KXtjYXNlIDA6cmV0dXJuIE49ai5sZW5ndGg+MCYmalswXSE9PXZvaWQgMD9qWzBdOjEseD1qLmxlbmd0aD4xP2pbMV06dm9pZCAwLE89ai5sZW5ndGg+Mj9qWzJdOnZvaWQgMCxkLnByZXY9MyxsZSghMCksdT17cGFnZU51bTpOLHBhZ2VTaXplOmNlLHN0YXR1czoiMSJ9LHgmJnghPT0iYWxsIiYmKHUudGFncz14KSxPJiYodS50aXRsZT1PKSxkLm5leHQ9MTAsKDAsaS5VSSkodSk7Y2FzZSAxMDpsPWQuc2VudCxsLmNvZGU9PT0yMDA/KGRlPShsLnJvd3N8fFtdKS5tYXAoZnVuY3Rpb24odil7cmV0dXJuIHAoKShwKCkoe30sdikse30se2lkOnYucG9zdElkLHRhZ3M6di50YWdzP3YudGFncy5zcGxpdCgiLCIpOltdLHZpZXdzOnYudmlld3N8fDAsY29tbWVudHM6di5jb21tZW50c3x8MCxmYXZvcml0ZXM6di5mYXZvcml0ZXN8fDAsbGlrZXM6di5saWtlc3x8MCxjb3ZlckltYWdlOnYuY292ZXJJbWFnZXx8Ii9pbWFnZXMvNDA0LnBuZyIsaXNQcm9tb3RlZDp2LnByb21vdGlvblBsYW5JZCE9bnVsbCYmdi5wcm9tb3Rpb25QbGFuSWQ+MH0pfSksWihkZSksUShsLnRvdGFsfHwwKSk6KEkuWlAuZXJyb3IobC5tc2d8fCJcdTgzQjdcdTUzRDZcdTVFMTZcdTVCNTBcdTUyMTdcdTg4NjhcdTU5MzFcdThEMjUiKSxaKFtdKSxRKDApKSxkLm5leHQ9MjA7YnJlYWs7Y2FzZSAxNDpkLnByZXY9MTQsZC50MD1kLmNhdGNoKDMpLGNvbnNvbGUuZXJyb3IoIlx1ODNCN1x1NTNENlx1NUUxNlx1NUI1MFx1NTkzMVx1OEQyNToiLGQudDApLEkuWlAuZXJyb3IoIlx1ODNCN1x1NTNENlx1NUUxNlx1NUI1MFx1NTIxN1x1ODg2OFx1NTkzMVx1OEQyNVx1RkYwQ1x1OEJGN1x1N0EwRFx1NTQwRVx1OTFDRFx1OEJENSIpLFooW10pLFEoMCk7Y2FzZSAyMDpyZXR1cm4gZC5wcmV2PTIwLGxlKCExKSxkLmZpbmlzaCgyMCk7Y2FzZSAyMzpjYXNlImVuZCI6cmV0dXJuIGQuc3RvcCgpfX0sbyxudWxsLFtbMywxNCwyMCwyM11dKX0pKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLFBlPWZ1bmN0aW9uKCl7dmFyIHI9VCgpKHkoKSgpLm1hcmsoZnVuY3Rpb24gbygpe3ZhciBOLHg7cmV0dXJuIHkoKSgpLndyYXAoZnVuY3Rpb24odSl7Zm9yKDs7KXN3aXRjaCh1LnByZXY9dS5uZXh0KXtjYXNlIDA6cmV0dXJuIHUucHJldj0wLHUubmV4dD0zLCgwLGkuayQpKCk7Y2FzZSAzOk49dS5zZW50LE4uY29kZT09PTIwMCYmKHg9KE4uZGF0YXx8W10pLm1hcChmdW5jdGlvbihsKXtyZXR1cm4gcCgpKHAoKSh7fSxsKSx7fSx7aWQ6bC5wb3N0SWQsdGFnczpsLnRhZ3M/bC50YWdzLnNwbGl0KCIsIik6W10sdmlld3M6bC52aWV3c3x8MCxjb21tZW50czpsLmNvbW1lbnRzfHwwLGZhdm9yaXRlczpsLmZhdm9yaXRlc3x8MCxsaWtlczpsLmxpa2VzfHwwLGNvdmVySW1hZ2U6bC5jb3ZlckltYWdlfHwiL2ltYWdlcy80MDQucG5nIixpc1Byb21vdGVkOmwucHJvbW90aW9uUGxhbklkIT1udWxsJiZsLnByb21vdGlvblBsYW5JZD4wfSl9KSxoZSh4KSksdS5uZXh0PTEwO2JyZWFrO2Nhc2UgNzp1LnByZXY9Nyx1LnQwPXUuY2F0Y2goMCksY29uc29sZS5lcnJvcigiXHU4M0I3XHU1M0Q2XHU2M0E4XHU1RTdGXHU1RTE2XHU1QjUwXHU1OTMxXHU4RDI1OiIsdS50MCk7Y2FzZSAxMDpjYXNlImVuZCI6cmV0dXJuIHUuc3RvcCgpfX0sbyxudWxsLFtbMCw3XV0pfSkpO3JldHVybiBmdW5jdGlvbigpe3JldHVybiByLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCk7KDAsaC51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7TShYLGMsdyksUGUoKX0sW1gsY10pO3ZhciBCZT1mdW5jdGlvbihvKXtjb25zb2xlLmxvZygiXHU2NDFDXHU3RDIyOiIsbyksYihvKSxZKDEpLE0oMSxjLG8pfSxaZT1mdW5jdGlvbihvKXtZKG8pLE0obyxjLHcpfSxmPWZ1bmN0aW9uKG8pe2plKG8pLFkoMSksYigiIiksTSgxLG8sIiIpfTtyZXR1cm4oMCxlLmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6dC5wb3N0Q2VudGVyQ29udGFpbmVyLGNoaWxkcmVuOlsoMCxlLmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6dC5oZWFkZXJOYXYsY2hpbGRyZW46WygwLGUuanN4cykoImRpdiIse2NsYXNzTmFtZTp0LmNhdGVnb3J5TWVudSxjaGlsZHJlbjpbKDAsZS5qc3gpKG0uWlAse3R5cGU6Yz09PSJhbGwiPyJwcmltYXJ5IjoidGV4dCIsb25DbGljazpmdW5jdGlvbigpe3JldHVybiBmKCJhbGwiKX0sY2xhc3NOYW1lOnQuY2F0ZWdvcnlCdXR0b24sY2hpbGRyZW46Ilx1OTk5Nlx1OTg3NSJ9KSwoMCxlLmpzeCkobS5aUCx7dHlwZTpjPT09Ilx1NjVFNVx1NTI2NyI/InByaW1hcnkiOiJ0ZXh0IixvbkNsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIGYoIlx1NjVFNVx1NTI2NyIpfSxjbGFzc05hbWU6dC5jYXRlZ29yeUJ1dHRvbixjaGlsZHJlbjoiXHU2NUU1XHU1MjY3In0pLCgwLGUuanN4KShtLlpQLHt0eXBlOmM9PT0iXHU3NTM1XHU1RjcxIj8icHJpbWFyeSI6InRleHQiLG9uQ2xpY2s6ZnVuY3Rpb24oKXtyZXR1cm4gZigiXHU3NTM1XHU1RjcxIil9LGNsYXNzTmFtZTp0LmNhdGVnb3J5QnV0dG9uLGNoaWxkcmVuOiJcdTc1MzVcdTVGNzEifSksKDAsZS5qc3gpKG0uWlAse3R5cGU6Yz09PSJcdTk3RjNcdTRFNTAiPyJwcmltYXJ5IjoidGV4dCIsb25DbGljazpmdW5jdGlvbigpe3JldHVybiBmKCJcdTk3RjNcdTRFNTAiKX0sY2xhc3NOYW1lOnQuY2F0ZWdvcnlCdXR0b24sY2hpbGRyZW46Ilx1OTdGM1x1NEU1MCJ9KSwoMCxlLmpzeCkobS5aUCx7dHlwZTpjPT09Ilx1NTQwOFx1OTZDNiI/InByaW1hcnkiOiJ0ZXh0IixvbkNsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIGYoIlx1NTQwOFx1OTZDNiIpfSxjbGFzc05hbWU6dC5jYXRlZ29yeUJ1dHRvbixjaGlsZHJlbjoiXHU1NDA4XHU5NkM2In0pLCgwLGUuanN4KShtLlpQLHt0eXBlOmM9PT0iXHU1MkE4XHU2RjJCIj8icHJpbWFyeSI6InRleHQiLG9uQ2xpY2s6ZnVuY3Rpb24oKXtyZXR1cm4gZigiXHU1MkE4XHU2RjJCIil9LGNsYXNzTmFtZTp0LmNhdGVnb3J5QnV0dG9uLGNoaWxkcmVuOiJcdTUyQThcdTZGMkIifSksKDAsZS5qc3gpKG0uWlAse3R5cGU6Yz09PSJcdTZFMzhcdTYyMEYiPyJwcmltYXJ5IjoidGV4dCIsb25DbGljazpmdW5jdGlvbigpe3JldHVybiBmKCJcdTZFMzhcdTYyMEYiKX0sY2xhc3NOYW1lOnQuY2F0ZWdvcnlCdXR0b24sY2hpbGRyZW46Ilx1NkUzOFx1NjIwRiJ9KV19KSwoMCxlLmpzeCkoImRpdiIse2NsYXNzTmFtZTp0LnNlYXJjaENvbnRhaW5lcixjaGlsZHJlbjooMCxlLmpzeCkoRyx7cGxhY2Vob2xkZXI6Ilx1NjQxQ1x1N0QyMlx1NUUxNlx1NUI1MC4uLiIsb25TZWFyY2g6QmUsc3R5bGU6e3dpZHRoOjMwMH0sZW50ZXJCdXR0b246KDAsZS5qc3gpKGFlLlose30pLHZhbHVlOncsb25DaGFuZ2U6ZnVuY3Rpb24obyl7cmV0dXJuIGIoby50YXJnZXQudmFsdWUpfX0pfSksKDAsZS5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOnQudXNlckNlbnRlcixjaGlsZHJlbjpbTmUmJigwLGUuanN4KShtLlpQLHtpY29uOigwLGUuanN4KShMLlose30pLG9uQ2xpY2s6ZnVuY3Rpb24oKXtyZXR1cm4gcSgiL3Bvc3QtcmV2aWV3Iil9LHN0eWxlOnttYXJnaW5SaWdodDoxNn0sY2hpbGRyZW46Ilx1NUUxNlx1NUI1MFx1NUJBMVx1NjgzOCJ9KSwoMCxlLmpzeCkobS5aUCx7dHlwZToicHJpbWFyeSIsb25DbGljazpmdW5jdGlvbigpe3JldHVybiBxKCIvdXNlci1jZW50ZXIiKX0sY2hpbGRyZW46Ilx1NEUyQVx1NEVCQVx1NEUyRFx1NUZDMyJ9KV19KV19KSwoMCxlLmpzeCkoImRpdiIse2NsYXNzTmFtZTp0LmNhcm91c2VsQ29udGFpbmVyLGNoaWxkcmVuOigwLGUuanN4KShuLlose2F1dG9wbGF5OiEwLGNoaWxkcmVuOnRlLmxlbmd0aD4wP3RlLm1hcChmdW5jdGlvbihyKXtyZXR1cm4oMCxlLmpzeCkoImRpdiIse29uQ2xpY2s6ZnVuY3Rpb24oKXtyZXR1cm4gcSgiL3Bvc3QtZGV0YWlsLyIuY29uY2F0KHIuaWQpKX0sY2hpbGRyZW46KDAsZS5qc3gpKCJkaXYiLHtjbGFzc05hbWU6dC5jYXJvdXNlbFNsaWRlLHN0eWxlOntiYWNrZ3JvdW5kSW1hZ2U6ImxpbmVhci1ncmFkaWVudChyZ2JhKDAsMCwwLDAuNCksIHJnYmEoMCwwLDAsMC40KSksIHVybCgiLmNvbmNhdChyLmNvdmVySW1hZ2UsIikiKSxiYWNrZ3JvdW5kU2l6ZToiY292ZXIiLGJhY2tncm91bmRQb3NpdGlvbjoiY2VudGVyIixoZWlnaHQ6IjMwMHB4Iixwb3NpdGlvbjoicmVsYXRpdmUiLGN1cnNvcjoicG9pbnRlciJ9LGNoaWxkcmVuOigwLGUuanN4cykoImRpdiIse2NsYXNzTmFtZTp0LmNhcm91c2VsT3ZlcmxheSxjaGlsZHJlbjpbKDAsZS5qc3gpKCJoMiIse2NsYXNzTmFtZTp0LmNhcm91c2VsVGl0bGUsY2hpbGRyZW46ci50aXRsZX0pLCgwLGUuanN4KSgicCIse2NsYXNzTmFtZTp0LmNhcm91c2VsU3VtbWFyeSxjaGlsZHJlbjpyLnN1bW1hcnl9KSwoMCxlLmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6dC5jYXJvdXNlbE1ldGEsY2hpbGRyZW46WygwLGUuanN4cykoInNwYW4iLHtjaGlsZHJlbjpbIlx1NEY1Q1x1ODAwNTogIixyLmF1dGhvcl19KSwoMCxlLmpzeHMpKCJzcGFuIix7Y2hpbGRyZW46WyJcdTZENEZcdTg5Qzg6ICIsci52aWV3c119KSwoMCxlLmpzeHMpKCJzcGFuIix7Y2hpbGRyZW46WyJcdTcwQjlcdThENUU6ICIsci5saWtlc119KV19KV19KX0pfSxyLmlkKX0pOigwLGUuanN4KShlLkZyYWdtZW50LHtjaGlsZHJlbjooMCxlLmpzeCkoImRpdiIse2NoaWxkcmVuOigwLGUuanN4KSgiZGl2Iix7Y2xhc3NOYW1lOnQuY2Fyb3VzZWxTbGlkZSxzdHlsZTp7YmFja2dyb3VuZEltYWdlOiJ1cmwoL2ltYWdlcy9mbG93ZXIuanBnKSIsYmFja2dyb3VuZFNpemU6ImNvdmVyIixiYWNrZ3JvdW5kUG9zaXRpb246ImNlbnRlciIsaGVpZ2h0OiIzMDBweCJ9LGNoaWxkcmVuOigwLGUuanN4cykoImRpdiIse2NsYXNzTmFtZTp0LmNhcm91c2VsT3ZlcmxheSxjaGlsZHJlbjpbKDAsZS5qc3gpKCJoMiIse2NsYXNzTmFtZTp0LmNhcm91c2VsVGl0bGUsY2hpbGRyZW46Ilx1NkIyMlx1OEZDRVx1Njc2NVx1NTIzMFRodW5kZXJIdWIifSksKDAsZS5qc3gpKCJwIix7Y2xhc3NOYW1lOnQuY2Fyb3VzZWxTdW1tYXJ5LGNoaWxkcmVuOiJcdTUzRDFcdTczQjBcdTdDQkVcdTVGNjlcdTUxODVcdTVCQjlcdUZGMENcdTUyMDZcdTRFQUJcdTdGOEVcdTU5N0RcdTY1RjZcdTUxNDkifSldfSl9KX0pfSl9KX0pLCgwLGUuanN4cykoImRpdiIse2NsYXNzTmFtZTp0LnBvc3RzU2VjdGlvbixjaGlsZHJlbjpbYyE9PSJhbGwiJiYoMCxlLmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6dC5jYXRlZ29yeVRpdGxlLGNoaWxkcmVuOlsoMCxlLmpzeHMpKCJoMiIse2NoaWxkcmVuOltjLCIgXHU1MjA2XHU3QzdCIl19KSwoMCxlLmpzeHMpKCJwIix7Y2hpbGRyZW46WyJcdTUxNzFcdTYyN0VcdTUyMzAgIixyZSwiIFx1N0JDN1x1NzZGOFx1NTE3M1x1NUUxNlx1NUI1MCJdfSldfSksKDAsZS5qc3gpKHMuWix7Z3V0dGVyOlsyNCwyNF0sY2xhc3NOYW1lOnQucG9zdHNSb3csY2hpbGRyZW46Ri5tYXAoZnVuY3Rpb24ocil7cmV0dXJuKDAsZS5qc3gpKHouWix7eHM6MjQsc206MTIsbGc6OCx4bDo2LGNsYXNzTmFtZTp0LnBvc3RDb2wsY2hpbGRyZW46KDAsZS5qc3gpKFUuZGVmYXVsdCx7cG9zdDpyfSl9LHIuaWQpfSl9KSxGLmxlbmd0aD09PTAmJiFmZSYmKDAsZS5qc3gpKCJkaXYiLHtjbGFzc05hbWU6dC5lbXB0eVN0YXRlLGNoaWxkcmVuOigwLGUuanN4KSgicCIse2NoaWxkcmVuOiJcdTY2ODJcdTY1RTBcdTc2RjhcdTUxNzNcdTVFMTZcdTVCNTAifSl9KSwoMCxlLmpzeCkoImRpdiIse2NsYXNzTmFtZTp0LnBhZ2luYXRpb25Db250YWluZXIsY2hpbGRyZW46KDAsZS5qc3gpKEguWix7Y3VycmVudDpYLHBhZ2VTaXplOmNlLHRvdGFsOnJlLG9uQ2hhbmdlOlplLHNob3dUb3RhbDpmdW5jdGlvbihvKXtyZXR1cm4iXHU1MTcxICIuY29uY2F0KG8sIiBcdTY3NjFcdTVFMTZcdTVCNTAiKX19KX0pXX0pXX0pfSxXPUp9fV0pOwpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy9wX19Qb3N0Q2VudGVyX19pbmRleC5kYWQzMDdjOC5jaHVuay5jc3MgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljL3BfX1Bvc3RDZW50ZXJfX2luZGV4LmRhZDMwN2M4LmNodW5rLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYzQyMDk5Ci0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy9wX19Qb3N0Q2VudGVyX19pbmRleC5kYWQzMDdjOC5jaHVuay5jc3MKQEAgLTAsMCArMSBAQAorLnBvc3RDYXJkV3JhcHBlcl9fX1N3MVNpe3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCV9LnBvc3RDYXJkX19fZkxLTmF7aGVpZ2h0OjEwMCU7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtib3JkZXItcmFkaXVzOjEycHg7b3ZlcmZsb3c6aGlkZGVuO2JveC1zaGFkb3c6MCAycHggOHB4ICMwMDAwMDAxYTt0cmFuc2l0aW9uOmFsbCAuM3MgZWFzZTtiYWNrZ3JvdW5kOiNmZmZ9LnBvc3RDYXJkX19fZkxLTmE6aG92ZXJ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTRweCk7Ym94LXNoYWRvdzowIDhweCAyNHB4ICMwMDAwMDAyNn0uY292ZXJDb250YWluZXJfX19HOG8xNHt3aWR0aDoxMDAlO2hlaWdodDoyMDBweDtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmU7YmFja2dyb3VuZDojZjVmNWY1O2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn0uY292ZXJJbWFnZV9fX3NuY3hle3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7b2JqZWN0LWZpdDpjb250YWluO29iamVjdC1wb3NpdGlvbjpjZW50ZXI7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjNzIGVhc2U7YmFja2dyb3VuZDojZjVmNWY1fS5wb3N0Q2FyZF9fX2ZMS05hOmhvdmVyIC5jb3ZlckltYWdlX19fc25jeGV7dHJhbnNmb3JtOnNjYWxlKDEuMDIpfS5wcm9tb3Rpb25CYWRnZV9fX25yZkR5e3Bvc2l0aW9uOmFic29sdXRlO3RvcDo4cHg7cmlnaHQ6OHB4O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLCNmZjZiNmIsb3JhbmdlKTtjb2xvcjojZmZmO3BhZGRpbmc6NHB4IDhweDtib3JkZXItcmFkaXVzOjEycHg7Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NzAwO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjRweDt6LWluZGV4OjEwO2JveC1zaGFkb3c6MCAycHggNHB4ICMwMDAzfS5jYXJkQ29udGVudF9fX3hvS3Nfe2ZsZXg6MSAxO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47aGVpZ2h0OjEwMCV9LnBvc3RUaXRsZV9fX2tKTlV0e2ZvbnQtc2l6ZToxNnB4O2ZvbnQtd2VpZ2h0OjYwMDttYXJnaW46MCAwIDEycHg7bGluZS1oZWlnaHQ6MS40O2NvbG9yOiMyNjI2MjY7ZGlzcGxheTotd2Via2l0LWJveDstd2Via2l0LWxpbmUtY2xhbXA6Mjstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7b3ZlcmZsb3c6aGlkZGVuO2hlaWdodDo0NHB4fS5wb3N0TWV0YV9fX29BdmNIe2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Zm9udC1zaXplOjEycHg7Y29sb3I6IzhjOGM4YzttYXJnaW4tYm90dG9tOjEycHg7aGVpZ2h0OjIwcHh9LmF1dGhvck5hbWVfX19BVmhTbXtmb250LXdlaWdodDo1MDA7Y29sb3I6IzU5NTk1OX0ucHVibGlzaFRpbWVfX19MclBxaHtjb2xvcjojOGM4YzhjfS50YWdzQ29udGFpbmVyX19fQ2tvaXF7bWFyZ2luLWJvdHRvbToxMnB4O2hlaWdodDoyNHB4O2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDtnYXA6NHB4O292ZXJmbG93OmhpZGRlbn0udGFnX19fSVA4S2R7Zm9udC1zaXplOjExcHg7cGFkZGluZzoycHggNnB4O21hcmdpbjowO2JvcmRlci1yYWRpdXM6NHB4fS5wb3N0U3VtbWFyeV9fX0oxUWM1e2ZsZXg6MSAxO2ZvbnQtc2l6ZToxM3B4O2NvbG9yOiM1OTU5NTk7bGluZS1oZWlnaHQ6MS41O21hcmdpbi1ib3R0b206MTZweDtkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtbGluZS1jbGFtcDozOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDtvdmVyZmxvdzpoaWRkZW47aGVpZ2h0OjYwcHh9LnBvc3RGb290ZXJfX19YVmN1cntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO21hcmdpbi10b3A6YXV0bztwYWRkaW5nLXRvcDoxMnB4O2JvcmRlci10b3A6MXB4IHNvbGlkICNmMGYwZjA7aGVpZ2h0OjMycHh9LnN0YXRzX19fcFF5cjl7ZGlzcGxheTpmbGV4O2dhcDoxNnB4fS5zdGF0SXRlbV9fX0daajBKe2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjRweDtmb250LXNpemU6MTJweDtjb2xvcjojOGM4YzhjfS5zdGF0SXRlbV9fX0daajBKIC5hbnRpY29uX19fX1pLMVB7Zm9udC1zaXplOjEycHh9LnJlYWRNb3JlQnRuX19fQnl2NVd7cGFkZGluZzowO2ZvbnQtc2l6ZToxMnB4O2NvbG9yOiMxODkwZmY7Zm9udC13ZWlnaHQ6NTAwfS5yZWFkTW9yZUJ0bl9fX0J5djVXOmhvdmVye2NvbG9yOiM0MGE5ZmZ9QG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KXsuY292ZXJDb250YWluZXJfX19HOG8xNHtoZWlnaHQ6MTYwcHh9LnBvc3RUaXRsZV9fX2tKTlV0e2ZvbnQtc2l6ZToxNHB4O2hlaWdodDo0MHB4fS5wb3N0U3VtbWFyeV9fX0oxUWM1e2ZvbnQtc2l6ZToxMnB4Oy13ZWJraXQtbGluZS1jbGFtcDoyO2hlaWdodDozNnB4fS5zdGF0c19fX3BReXI5e2dhcDoxMnB4fS5zdGF0SXRlbV9fX0daajBKe2ZvbnQtc2l6ZToxMXB4fX0ucG9zdENlbnRlckNvbnRhaW5lcl9fX3ZzT2JGe21pbi1oZWlnaHQ6MTAwdmg7YmFja2dyb3VuZC1jb2xvcjojZjVmNWY1fS5oZWFkZXJOYXZfX19LUGU1TXtiYWNrZ3JvdW5kOiNmZmY7Ym94LXNoYWRvdzowIDJweCA4cHggIzAwMDAwMDFhO3BhZGRpbmc6MCAyNHB4O2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47aGVpZ2h0OjY0cHg7cG9zaXRpb246c3RpY2t5O3RvcDowO3otaW5kZXg6MTAwfS5jYXRlZ29yeU1lbnVfX19wTnlVRXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHh9LmNhdGVnb3J5QnV0dG9uX19fZU9xRVp7Ym9yZGVyOm5vbmU7Ym94LXNoYWRvdzpub25lO2ZvbnQtd2VpZ2h0OjUwMDtwYWRkaW5nOjhweCAxNnB4O2JvcmRlci1yYWRpdXM6NnB4O3RyYW5zaXRpb246YWxsIC4zcyBlYXNlfS5jYXRlZ29yeUJ1dHRvbl9fX2VPcUVaOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2YwZjBmMH0uc2VhcmNoQ29udGFpbmVyX19fdzUyZkR7ZmxleDoxIDE7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7bWF4LXdpZHRoOjQwMHB4O21hcmdpbjowIDI0cHh9LnVzZXJDZW50ZXJfX19LaFpOZHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMnB4fS5jYXJvdXNlbENvbnRhaW5lcl9fX0hIMXpxe21hcmdpbjoyNHB4O2JvcmRlci1yYWRpdXM6MTJweDtvdmVyZmxvdzpoaWRkZW47Ym94LXNoYWRvdzowIDRweCAxMnB4ICMwMDAwMDAxYX0uY2Fyb3VzZWxTbGlkZV9fX3M1ZU1Be3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6ZmxleCFpbXBvcnRhbnQ7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7bWluLWhlaWdodDozMDBweH0uY2Fyb3VzZWxPdmVybGF5X19faDRWRGF7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodHJhbnNwYXJlbnQsIzAwMGMpO2NvbG9yOiNmZmY7cGFkZGluZzo0MHB4IDQwcHggMjRweDt0ZXh0LWFsaWduOmxlZnR9LmNhcm91c2VsVGl0bGVfX19yb3hBVntmb250LXNpemU6MjhweDtmb250LXdlaWdodDo3MDA7bWFyZ2luOjAgMCAxMnB4O3RleHQtc2hhZG93OjJweCAycHggNHB4IHJnYmEoMCwwLDAsLjUpfS5jYXJvdXNlbFN1bW1hcnlfX19yTGxDSXtmb250LXNpemU6MTZweDttYXJnaW46MCAwIDE2cHg7b3BhY2l0eTouOTtsaW5lLWhlaWdodDoxLjV9LmNhcm91c2VsTWV0YV9fX25DRkhEe2Rpc3BsYXk6ZmxleDtnYXA6MjRweDtmb250LXNpemU6MTRweDtvcGFjaXR5Oi44fS5wb3N0c1NlY3Rpb25fX19UdzBvaXtwYWRkaW5nOjI0cHh9LmNhdGVnb3J5VGl0bGVfX19sYVJ4U3ttYXJnaW4tYm90dG9tOjI0cHg7dGV4dC1hbGlnbjpjZW50ZXJ9LmNhdGVnb3J5VGl0bGVfX19sYVJ4UyBoMntmb250LXNpemU6MjRweDttYXJnaW46MCAwIDhweDtjb2xvcjojMTg5MGZmfS5jYXRlZ29yeVRpdGxlX19fbGFSeFMgcHttYXJnaW46MDtjb2xvcjojNjY2O2ZvbnQtc2l6ZToxNHB4fS5wb3N0c1Jvd19fX1N4YXBte21hcmdpbi1ib3R0b206MzJweH0ucG9zdENvbF9fX1YydnVve2Rpc3BsYXk6ZmxleDtoZWlnaHQ6NDgwcHh9LnBvc3RDb2xfX19WMnZ1bz4qe3dpZHRoOjEwMCV9LmVtcHR5U3RhdGVfX19pb3ZTd3t0ZXh0LWFsaWduOmNlbnRlcjtwYWRkaW5nOjYwcHggMDtjb2xvcjojOTk5O2ZvbnQtc2l6ZToxNnB4fS5wYWdpbmF0aW9uQ29udGFpbmVyX19faUptbFR7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7bWFyZ2luLXRvcDozMnB4fUBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCl7LmhlYWRlck5hdl9fX0tQZTVNe2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtoZWlnaHQ6YXV0bztwYWRkaW5nOjEycHg7Z2FwOjEycHh9LmNhdGVnb3J5TWVudV9fX3BOeVVFe2ZsZXgtd3JhcDp3cmFwO2p1c3RpZnktY29udGVudDpjZW50ZXJ9LnNlYXJjaENvbnRhaW5lcl9fX3c1MmZEe21hcmdpbjowO21heC13aWR0aDoxMDAlfS5jYXJvdXNlbENvbnRhaW5lcl9fX0hIMXpxe21hcmdpbjoxMnB4fS5jYXJvdXNlbE92ZXJsYXlfX19oNFZEYXtwYWRkaW5nOjIwcHh9LmNhcm91c2VsVGl0bGVfX19yb3hBVntmb250LXNpemU6MjBweH0uY2Fyb3VzZWxTdW1tYXJ5X19fckxsQ0l7Zm9udC1zaXplOjE0cHh9LmNhcm91c2VsTWV0YV9fX25DRkhEe2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6OHB4fS5wb3N0c1NlY3Rpb25fX19UdzBvaXtwYWRkaW5nOjEycHh9fQpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy9wX19Qb3N0UmV2aWV3X19pbmRleC4wYTZhMmJmNC5jaHVuay5jc3MgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljL3BfX1Bvc3RSZXZpZXdfX2luZGV4LjBhNmEyYmY0LmNodW5rLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYzViYjUzCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy9wX19Qb3N0UmV2aWV3X19pbmRleC4wYTZhMmJmNC5jaHVuay5jc3MKQEAgLTAsMCArMSBAQAorLnBvc3RSZXZpZXdDb250YWluZXJfX19KZ0RxZXtwYWRkaW5nOjI0cHh9LnBvc3REZXRhaWxfX194cExQZ3twYWRkaW5nOjE2cHggMH0ucG9zdE1ldGFfX19RTWI3aHttYXJnaW46MTZweCAwO3BhZGRpbmc6MTZweDtiYWNrZ3JvdW5kOiNmNWY1ZjU7Ym9yZGVyLXJhZGl1czo4cHh9LnBvc3RNZXRhX19fUU1iN2ggcHttYXJnaW46OHB4IDB9LnBvc3RDb3Zlcl9fX0RKSWtPe21hcmdpbjoxNnB4IDA7dGV4dC1hbGlnbjpjZW50ZXJ9LnBvc3RUYWdzX19fcjRhS2N7bWFyZ2luOjE2cHggMH0ucG9zdFN1bW1hcnlfX19yd1N4THttYXJnaW46MTZweCAwO3BhZGRpbmc6MTZweDtiYWNrZ3JvdW5kOiNmOWY5Zjk7Ym9yZGVyLXJhZGl1czo4cHh9LnBvc3RDb250ZW50X19fVDlNcl97bWFyZ2luOjE2cHggMDtwYWRkaW5nOjE2cHg7Ym9yZGVyOjFweCBzb2xpZCAjZThlOGU4O2JvcmRlci1yYWRpdXM6OHB4O21heC1oZWlnaHQ6NDAwcHg7b3ZlcmZsb3cteTphdXRvfS5wb3N0QWN0aW9uc19fX2NXMmtKe21hcmdpbi10b3A6MjRweDt0ZXh0LWFsaWduOmNlbnRlcjtwYWRkaW5nLXRvcDoxNnB4O2JvcmRlci10b3A6MXB4IHNvbGlkICNlOGU4ZTh9CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljL3BfX1Bvc3RSZXZpZXdfX2luZGV4LjY5NGUxY2MzLmFzeW5jLmpzIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy9wX19Qb3N0UmV2aWV3X19pbmRleC42OTRlMWNjMy5hc3luYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NWNkM2U0Ci0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy9wX19Qb3N0UmV2aWV3X19pbmRleC42OTRlMWNjMy5hc3luYy5qcwpAQCAtMCwwICsxIEBACisidXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W10pLnB1c2goW1s0ODczLDg2NzddLHs5OTE5MDpmdW5jdGlvbihPZSxaLG4pe24ucihaKTt2YXIgUT1uKDE1MDA5KSxtPW4ubihRKSxYPW4oOTkyODkpLGY9bi5uKFgpLFk9big1NTc0KSxjPW4ubihZKSxfPW4oNjcyOTQpLFI9big2MDk2MCkscT1uKDI1Mjc4KSxJPW4oOTIzOTgpLGg9bigyNDUzKSx4PW4oNjYzMDkpLEY9big3ODk1Nyksdj1uKDgzNjIyKSxlZT1uKDQzOTMpLG5lPW4oOTYxNTQpLFc9bigxNzc4OCksc2U9big3MTIzMCksUz1uKDE1NzQ2KSx0ZT1uKDE1MjQxKSxyZT1uKDk5NjExKSxiPW4oNjM2MDYpLHk9big5NzkzNyksSz1uKDQ4Njg5KSxNPW4oNzY2MiksYWU9big1MjA2MyksRT1uKDI3MTg1KSxlPW4oODU4OTMpLHVlPVIuWi5UaXRsZSxsZT1SLlouUGFyYWdyYXBoLGllPXEuWi5UZXh0QXJlYSxMPUkuWi5UYWJQYW5lLG9lPWZ1bmN0aW9uKCl7dmFyIF9lPSgwLF8udXNlU3RhdGUpKCJyZXZpZXciKSxVPWMoKShfZSwyKSxDPVVbMF0sZGU9VVsxXSxjZT0oMCxfLnVzZVN0YXRlKShbXSksaz1jKCkoY2UsMiksaGU9a1swXSxFZT1rWzFdLHZlPSgwLF8udXNlU3RhdGUpKCExKSx3PWMoKSh2ZSwyKSxtZT13WzBdLE49d1sxXSxQZT0oMCxfLnVzZVN0YXRlKSghMSksSD1jKCkoUGUsMiksamU9SFswXSxqPUhbMV0sRGU9KDAsXy51c2VTdGF0ZSkoITEpLFY9YygpKERlLDIpLHBlPVZbMF0sQT1WWzFdLGdlPSgwLF8udXNlU3RhdGUpKG51bGwpLHo9YygpKGdlLDIpLHI9elswXSxEPXpbMV0sZmU9KDAsXy51c2VTdGF0ZSkobnVsbCksJD1jKCkoZmUsMiksZD0kWzBdLFQ9JFsxXSx4ZT0oMCxfLnVzZVN0YXRlKSgiIiksRz1jKCkoeGUsMiksTz1HWzBdLHA9R1sxXTsoMCxfLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtDPT09InJldmlldyImJkIoKX0sW0NdKTt2YXIgQj1mdW5jdGlvbigpe3ZhciBhPWYoKShtKCkoKS5tYXJrKGZ1bmN0aW9uIHQoKXt2YXIgcztyZXR1cm4gbSgpKCkud3JhcChmdW5jdGlvbih1KXtmb3IoOzspc3dpdGNoKHUucHJldj11Lm5leHQpe2Nhc2UgMDpyZXR1cm4gTighMCksdS5wcmV2PTEsdS5uZXh0PTQsKDAsTS5mUCkoe3BhZ2VOdW06MSxwYWdlU2l6ZToxMDAsc3RhdHVzOiIwIn0pO2Nhc2UgNDpzPXUuc2VudCxzLmNvZGU9PT0yMDA/RWUocy5yb3dzfHxbXSk6aC5aUC5lcnJvcihzLm1zZ3x8Ilx1ODNCN1x1NTNENlx1NUY4NVx1NUJBMVx1NjgzOFx1NUUxNlx1NUI1MFx1NTkzMVx1OEQyNSIpLHUubmV4dD0xMTticmVhaztjYXNlIDg6dS5wcmV2PTgsdS50MD11LmNhdGNoKDEpLGguWlAuZXJyb3IoIlx1ODNCN1x1NTNENlx1NUY4NVx1NUJBMVx1NjgzOFx1NUUxNlx1NUI1MFx1NTkzMVx1OEQyNSIpO2Nhc2UgMTE6cmV0dXJuIHUucHJldj0xMSxOKCExKSx1LmZpbmlzaCgxMSk7Y2FzZSAxNDpjYXNlImVuZCI6cmV0dXJuIHUuc3RvcCgpfX0sdCxudWxsLFtbMSw4LDExLDE0XV0pfSkpO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBhLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksTWU9ZnVuY3Rpb24oKXt2YXIgYT1mKCkobSgpKCkubWFyayhmdW5jdGlvbiB0KHMsbCx1KXt2YXIgZztyZXR1cm4gbSgpKCkud3JhcChmdW5jdGlvbihvKXtmb3IoOzspc3dpdGNoKG8ucHJldj1vLm5leHQpe2Nhc2UgMDpyZXR1cm4gby5wcmV2PTAsby5uZXh0PTMsKDAsTS5SQikocyxsLHUpO2Nhc2UgMzpnPW8uc2VudCxnLmNvZGU9PT0yMDA/KGguWlAuc3VjY2VzcyhsPT09ImFwcHJvdmUiPyJcdTVFMTZcdTVCNTBcdTVCQTFcdTY4MzhcdTkwMUFcdThGQzciOiJcdTVFMTZcdTVCNTBcdTVERjJcdTYyRDJcdTdFREQiKSxCKCkpOmguWlAuZXJyb3IoZy5tc2d8fCJcdTY0Q0RcdTRGNUNcdTU5MzFcdThEMjUiKSxvLm5leHQ9MTA7YnJlYWs7Y2FzZSA3Om8ucHJldj03LG8udDA9by5jYXRjaCgwKSxoLlpQLmVycm9yKCJcdTY0Q0RcdTRGNUNcdTU5MzFcdThEMjUiKTtjYXNlIDEwOmNhc2UiZW5kIjpyZXR1cm4gby5zdG9wKCl9fSx0LG51bGwsW1swLDddXSl9KSk7cmV0dXJuIGZ1bmN0aW9uKHMsbCx1KXtyZXR1cm4gYS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLENlPWZ1bmN0aW9uKCl7dmFyIGE9ZigpKG0oKSgpLm1hcmsoZnVuY3Rpb24gdChzLGwpe3ZhciB1O3JldHVybiBtKCkoKS53cmFwKGZ1bmN0aW9uKGkpe2Zvcig7Oylzd2l0Y2goaS5wcmV2PWkubmV4dCl7Y2FzZSAwOnJldHVybiBpLnByZXY9MCxpLm5leHQ9MywoMCxNLl80KShzLGwpO2Nhc2UgMzp1PWkuc2VudCx1LmNvZGU9PT0yMDA/KGguWlAuc3VjY2VzcygiXHU1RTE2XHU1QjUwXHU1REYyXHU0RTBCXHU2N0I2IiksQigpKTpoLlpQLmVycm9yKHUubXNnfHwiXHU2NENEXHU0RjVDXHU1OTMxXHU4RDI1IiksaS5uZXh0PTEwO2JyZWFrO2Nhc2UgNzppLnByZXY9NyxpLnQwPWkuY2F0Y2goMCksaC5aUC5lcnJvcigiXHU2NENEXHU0RjVDXHU1OTMxXHU4RDI1Iik7Y2FzZSAxMDpjYXNlImVuZCI6cmV0dXJuIGkuc3RvcCgpfX0sdCxudWxsLFtbMCw3XV0pfSkpO3JldHVybiBmdW5jdGlvbihzLGwpe3JldHVybiBhLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksUD1mdW5jdGlvbih0LHMpe0QodCksVChzKSxwKCIiKSxBKCEwKX0sQWU9ZnVuY3Rpb24oKXshcnx8IWR8fChkPT09InRha2Vkb3duIj9DZShyLnBvc3RJZHx8MCxPKTpNZShyLnBvc3RJZHx8MCxkLE8pLEEoITEpLEQobnVsbCksVChudWxsKSxwKCIiKSl9LEo9ZnVuY3Rpb24odCl7RCh0KSxqKCEwKX0sVGU9W3t0aXRsZToiXHU1RTE2XHU1QjUwXHU2ODA3XHU5ODk4IixkYXRhSW5kZXg6InRpdGxlIixrZXk6InRpdGxlIix3aWR0aDoyMDAscmVuZGVyOmZ1bmN0aW9uKHQscyl7cmV0dXJuKDAsZS5qc3gpKCJhIix7b25DbGljazpmdW5jdGlvbigpe3JldHVybiBKKHMpfSxjaGlsZHJlbjp0fSl9fSx7dGl0bGU6Ilx1NEY1Q1x1ODAwNSIsZGF0YUluZGV4OiJhdXRob3IiLGtleToiYXV0aG9yIix3aWR0aDoxMDB9LHt0aXRsZToiXHU1M0QxXHU1RTAzXHU2NUY2XHU5NUY0IixkYXRhSW5kZXg6InB1Ymxpc2hUaW1lIixrZXk6InB1Ymxpc2hUaW1lIix3aWR0aDoxNTB9LHt0aXRsZToiXHU3MkI2XHU2MDAxIixkYXRhSW5kZXg6InN0YXR1cyIsa2V5OiJzdGF0dXMiLHdpZHRoOjEwMCxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIHM9ezA6e2NvbG9yOiJvcmFuZ2UiLHRleHQ6Ilx1NUY4NVx1NUJBMVx1NjgzOCJ9LDE6e2NvbG9yOiJncmVlbiIsdGV4dDoiXHU1REYyXHU1M0QxXHU1RTAzIn0sMjp7Y29sb3I6InJlZCIsdGV4dDoiXHU1REYyXHU2MkQyXHU3RUREIn0sMzp7Y29sb3I6ImdyYXkiLHRleHQ6Ilx1NURGMlx1NEUwQlx1NjdCNiJ9fSxsPXNbdF18fHtjb2xvcjoiZ3JheSIsdGV4dDoiXHU2NzJBXHU3N0U1In07cmV0dXJuKDAsZS5qc3gpKHguWix7Y29sb3I6bC5jb2xvcixjaGlsZHJlbjpsLnRleHR9KX19LHt0aXRsZToiXHU2ODA3XHU3QjdFIixkYXRhSW5kZXg6InRhZ3MiLGtleToidGFncyIsd2lkdGg6MTUwLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdD90LnNwbGl0KCIsIikubWFwKGZ1bmN0aW9uKHMpe3JldHVybigwLGUuanN4KSh4Llose2NvbG9yOiJibHVlIixjaGlsZHJlbjpzfSxzKX0pOiItIn19LHt0aXRsZToiXHU2NENEXHU0RjVDIixrZXk6ImFjdGlvbiIsd2lkdGg6MjUwLHJlbmRlcjpmdW5jdGlvbih0LHMpe3JldHVybigwLGUuanN4cykoRi5aLHtzaXplOiJzbWFsbCIsY2hpbGRyZW46WygwLGUuanN4KSh2LlpQLHt0eXBlOiJsaW5rIixpY29uOigwLGUuanN4KShyZS5aLHt9KSxvbkNsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIEoocyl9LGNoaWxkcmVuOiJcdTY3RTVcdTc3MEIifSkscy5zdGF0dXM9PT0iMCImJigwLGUuanN4cykoZS5GcmFnbWVudCx7Y2hpbGRyZW46WygwLGUuanN4KSh2LlpQLHt0eXBlOiJsaW5rIixpY29uOigwLGUuanN4KShiLlose30pLHN0eWxlOntjb2xvcjoiZ3JlZW4ifSxvbkNsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIFAocywiYXBwcm92ZSIpfSxjaGlsZHJlbjoiXHU5MDFBXHU4RkM3In0pLCgwLGUuanN4KSh2LlpQLHt0eXBlOiJsaW5rIixkYW5nZXI6ITAsaWNvbjooMCxlLmpzeCkoeS5aLHt9KSxvbkNsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIFAocywicmVqZWN0Iil9LGNoaWxkcmVuOiJcdTYyRDJcdTdFREQifSldfSkscy5zdGF0dXM9PT0iMSImJigwLGUuanN4KSh2LlpQLHt0eXBlOiJsaW5rIixkYW5nZXI6ITAsaWNvbjooMCxlLmpzeCkoSy5aLHt9KSxvbkNsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIFAocywidGFrZWRvd24iKX0sY2hpbGRyZW46Ilx1NEUwQlx1NjdCNiJ9KV19KX19XTtyZXR1cm4oMCxlLmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6RS5aLnBvc3RSZXZpZXdDb250YWluZXIsY2hpbGRyZW46WygwLGUuanN4KShlZS5aLHt0aXRsZToiXHU1RTE2XHU1QjUwXHU1QkExXHU2ODM4XHU3QkExXHU3NDA2IixjaGlsZHJlbjooMCxlLmpzeHMpKEkuWix7YWN0aXZlS2V5OkMsb25DaGFuZ2U6ZGUsY2hpbGRyZW46WygwLGUuanN4KShMLHt0YWI6Ilx1NUUxNlx1NUI1MFx1NTNEMVx1NUUwM1x1N0JBMVx1NzQwNiIsY2hpbGRyZW46KDAsZS5qc3gpKG5lLlose2NvbHVtbnM6VGUsZGF0YVNvdXJjZTpoZSxsb2FkaW5nOm1lLHJvd0tleToicG9zdElkIixwYWdpbmF0aW9uOntwYWdlU2l6ZToxMCxzaG93VG90YWw6ZnVuY3Rpb24odCl7cmV0dXJuIlx1NTE3MSAiLmNvbmNhdCh0LCIgXHU2NzYxXHU4QkIwXHU1RjU1Iil9fX0pfSwicmV2aWV3IiksKDAsZS5qc3gpKEwse3RhYjoiXHU1RTE2XHU1QjUwXHU0RTNFXHU2MkE1XHU3QkExXHU3NDA2IixjaGlsZHJlbjooMCxlLmpzeCkoYWUuZGVmYXVsdCx7fSl9LCJyZXBvcnQiKV19KX0pLCgwLGUuanN4KShXLlose3RpdGxlOiJcdTVFMTZcdTVCNTBcdThCRTZcdTYwQzUiLG9wZW46amUsb25DYW5jZWw6ZnVuY3Rpb24oKXtqKCExKSxEKG51bGwpfSxmb290ZXI6bnVsbCx3aWR0aDo4MDAsY2hpbGRyZW46ciYmKDAsZS5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOkUuWi5wb3N0RGV0YWlsLGNoaWxkcmVuOlsoMCxlLmpzeCkodWUse2xldmVsOjMsY2hpbGRyZW46ci50aXRsZX0pLCgwLGUuanN4KSgiZGl2Iix7Y2xhc3NOYW1lOkUuWi5wb3N0TWV0YSxjaGlsZHJlbjooMCxlLmpzeHMpKHNlLlose2d1dHRlcjoxNixjaGlsZHJlbjpbKDAsZS5qc3hzKShTLlose3NwYW46MTIsY2hpbGRyZW46WygwLGUuanN4cykoInAiLHtjaGlsZHJlbjpbKDAsZS5qc3gpKCJzdHJvbmciLHtjaGlsZHJlbjoiXHU0RjVDXHU4MDA1XHVGRjFBIn0pLHIuYXV0aG9yXX0pLCgwLGUuanN4cykoInAiLHtjaGlsZHJlbjpbKDAsZS5qc3gpKCJzdHJvbmciLHtjaGlsZHJlbjoiXHU1M0QxXHU1RTAzXHU2NUY2XHU5NUY0XHVGRjFBIn0pLHIucHVibGlzaFRpbWVdfSldfSksKDAsZS5qc3hzKShTLlose3NwYW46MTIsY2hpbGRyZW46WygwLGUuanN4cykoInAiLHtjaGlsZHJlbjpbKDAsZS5qc3gpKCJzdHJvbmciLHtjaGlsZHJlbjoiXHU2RDRGXHU4OUM4XHU5MUNGXHVGRjFBIn0pLHIudmlld3N8fDBdfSksKDAsZS5qc3hzKSgicCIse2NoaWxkcmVuOlsoMCxlLmpzeCkoInN0cm9uZyIse2NoaWxkcmVuOiJcdTcwQjlcdThENUVcdTY1NzBcdUZGMUEifSksci5saWtlc3x8MF19KV19KV19KX0pLHIuY292ZXJJbWFnZSYmKDAsZS5qc3gpKCJkaXYiLHtjbGFzc05hbWU6RS5aLnBvc3RDb3ZlcixjaGlsZHJlbjooMCxlLmpzeCkodGUuWix7c3JjOnIuY292ZXJJbWFnZSxhbHQ6Ilx1NUMwMVx1OTc2Mlx1NTZGRVx1NzI0NyIsc3R5bGU6e21heFdpZHRoOiIxMDAlIixtYXhIZWlnaHQ6IjIwMHB4In19KX0pLCgwLGUuanN4cykoImRpdiIse2NsYXNzTmFtZTpFLloucG9zdFRhZ3MsY2hpbGRyZW46WygwLGUuanN4KSgic3Ryb25nIix7Y2hpbGRyZW46Ilx1NjgwN1x1N0I3RVx1RkYxQSJ9KSxyLnRhZ3M/ci50YWdzLnNwbGl0KCIsIikubWFwKGZ1bmN0aW9uKGEpe3JldHVybigwLGUuanN4KSh4Llose2NvbG9yOiJibHVlIixjaGlsZHJlbjphfSxhKX0pOigwLGUuanN4KSgic3BhbiIse2NoaWxkcmVuOiJcdTY1RTBcdTY4MDdcdTdCN0UifSldfSksKDAsZS5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOkUuWi5wb3N0U3VtbWFyeSxjaGlsZHJlbjpbKDAsZS5qc3gpKCJzdHJvbmciLHtjaGlsZHJlbjoiXHU2NDU4XHU4OTgxXHVGRjFBIn0pLCgwLGUuanN4KShsZSx7Y2hpbGRyZW46ci5zdW1tYXJ5fSldfSksKDAsZS5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOkUuWi5wb3N0Q29udGVudCxjaGlsZHJlbjpbKDAsZS5qc3gpKCJzdHJvbmciLHtjaGlsZHJlbjoiXHU1MTg1XHU1QkI5XHVGRjFBIn0pLCgwLGUuanN4KSgiZGl2Iix7ZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6e19faHRtbDpyLmNvbnRlbnR8fCIifX0pXX0pLCgwLGUuanN4KSgiZGl2Iix7Y2xhc3NOYW1lOkUuWi5wb3N0QWN0aW9ucyxjaGlsZHJlbjooMCxlLmpzeHMpKEYuWix7Y2hpbGRyZW46W3Iuc3RhdHVzPT09IjAiJiYoMCxlLmpzeHMpKGUuRnJhZ21lbnQse2NoaWxkcmVuOlsoMCxlLmpzeCkodi5aUCx7dHlwZToicHJpbWFyeSIsaWNvbjooMCxlLmpzeCkoYi5aLHt9KSxvbkNsaWNrOmZ1bmN0aW9uKCl7UChyLCJhcHByb3ZlIiksaighMSl9LGNoaWxkcmVuOiJcdTkwMUFcdThGQzdcdTVCQTFcdTY4MzgifSksKDAsZS5qc3gpKHYuWlAse2RhbmdlcjohMCxpY29uOigwLGUuanN4KSh5Llose30pLG9uQ2xpY2s6ZnVuY3Rpb24oKXtQKHIsInJlamVjdCIpLGooITEpfSxjaGlsZHJlbjoiXHU2MkQyXHU3RUREXHU1QkExXHU2ODM4In0pXX0pLHIuc3RhdHVzPT09IjEiJiYoMCxlLmpzeCkodi5aUCx7ZGFuZ2VyOiEwLGljb246KDAsZS5qc3gpKEsuWix7fSksb25DbGljazpmdW5jdGlvbigpe1AociwidGFrZWRvd24iKSxqKCExKX0sY2hpbGRyZW46Ilx1NUYzQVx1NTIzNlx1NEUwQlx1NjdCNiJ9KV19KX0pXX0pfSksKDAsZS5qc3hzKShXLlose3RpdGxlOmQ9PT0iYXBwcm92ZSI/Ilx1NUJBMVx1NjgzOFx1OTAxQVx1OEZDNyI6ZD09PSJyZWplY3QiPyJcdTVCQTFcdTY4MzhcdTYyRDJcdTdFREQiOiJcdTVGM0FcdTUyMzZcdTRFMEJcdTY3QjYiLG9wZW46cGUsb25PazpBZSxvbkNhbmNlbDpmdW5jdGlvbigpe0EoITEpLEQobnVsbCksVChudWxsKSxwKCIiKX0sb2tUZXh0OiJcdTc4NkVcdTVCOUEiLGNhbmNlbFRleHQ6Ilx1NTNENlx1NkQ4OCIsY2hpbGRyZW46WygwLGUuanN4cykoImRpdiIse3N0eWxlOnttYXJnaW5Cb3R0b206MTZ9LGNoaWxkcmVuOlsoMCxlLmpzeCkoInN0cm9uZyIse2NoaWxkcmVuOiJcdTVFMTZcdTVCNTBcdUZGMUEifSkscj09bnVsbD92b2lkIDA6ci50aXRsZV19KSwoMCxlLmpzeHMpKCJkaXYiLHtjaGlsZHJlbjpbKDAsZS5qc3hzKSgic3Ryb25nIix7Y2hpbGRyZW46W2Q9PT0iYXBwcm92ZSI/Ilx1OTAxQVx1OEZDN1x1NzQwNlx1NzUzMSI6ZD09PSJyZWplY3QiPyJcdTYyRDJcdTdFRERcdTc0MDZcdTc1MzEiOiJcdTRFMEJcdTY3QjZcdTc0MDZcdTc1MzEiLCJcdUZGMDhcdTUzRUZcdTkwMDlcdUZGMDlcdUZGMUEiXX0pLCgwLGUuanN4KShpZSx7dmFsdWU6TyxvbkNoYW5nZTpmdW5jdGlvbih0KXtyZXR1cm4gcCh0LnRhcmdldC52YWx1ZSl9LHBsYWNlaG9sZGVyOmQ9PT0iYXBwcm92ZSI/Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NUJBMVx1NjgzOFx1OTAxQVx1OEZDN1x1NzY4NFx1NzQwNlx1NzUzMS4uLiI6ZD09PSJyZWplY3QiPyJcdThCRjdcdThGOTNcdTUxNjVcdTVCQTFcdTY4MzhcdTYyRDJcdTdFRERcdTc2ODRcdTc0MDZcdTc1MzEuLi4iOiJcdThCRjdcdThGOTNcdTUxNjVcdTVGM0FcdTUyMzZcdTRFMEJcdTY3QjZcdTc2ODRcdTc0MDZcdTc1MzEuLi4iLHJvd3M6NCxzdHlsZTp7bWFyZ2luVG9wOjh9fSldfSldfSldfSl9O1ouZGVmYXVsdD1vZX19XSk7CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljL3BfX1N5c3RlbV9fRGljdERhdGFfX2luZGV4LmFiZGJmNThiLmFzeW5jLmpzIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy9wX19TeXN0ZW1fX0RpY3REYXRhX19pbmRleC5hYmRiZjU4Yi5hc3luYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NTI2M2M2Ci0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy9wX19TeXN0ZW1fX0RpY3REYXRhX19pbmRleC5hYmRiZjU4Yi5hc3luYy5qcwpAQCAtMCwwICsxIEBACisidXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W10pLnB1c2goW1s1Nzg2XSx7OTQxNjI6ZnVuY3Rpb24oYWUsSSxlKXt2YXIgWj1lKDY0NTk5KSxvPWUubihaKSxHPWUoNjcyOTQpLGE9ZSg2NjMwOSksaz1lKDg1ODkzKSxGPWZ1bmN0aW9uKHUpe2Z1bmN0aW9uIGooZil7c3dpdGNoKGYpe2Nhc2UicHJpbWFyeSI6cmV0dXJuImJsdWUiO2Nhc2Uic3VjY2VzcyI6cmV0dXJuInN1Y2Nlc3MiO2Nhc2UiaW5mbyI6cmV0dXJuImdyZWVuIjtjYXNlIndhcm5pbmciOnJldHVybiJ3YXJuaW5nIjtjYXNlImRhbmdlciI6cmV0dXJuImVycm9yIjtjYXNlImRlZmF1bHQiOmRlZmF1bHQ6cmV0dXJuImRlZmF1bHQifX1mdW5jdGlvbiBsKGYpe2lmKGY9PT12b2lkIDApcmV0dXJuIiI7aWYodS5lbnVtcyl7dmFyIFU9dS5lbnVtc1tmXTtyZXR1cm4gVS5sYWJlbH1pZih1Lm9wdGlvbnMpe2lmKCFBcnJheS5pc0FycmF5KHUub3B0aW9ucykpcmV0dXJuIGNvbnNvbGUubG9nKCJEaWN0VGFnIG9wdGlvbnMgaXMgbm8gYXJyYXkhIiksIiI7dmFyIG49bygpKHUub3B0aW9ucyksaTt0cnl7Zm9yKG4ucygpOyEoaT1uLm4oKSkuZG9uZTspe3ZhciBTPWkudmFsdWU7aWYoUy52YWx1ZT09PWYpcmV0dXJuIFMudGV4dH19Y2F0Y2goeCl7bi5lKHgpfWZpbmFsbHl7bi5mKCl9fXJldHVybiBTdHJpbmcodS52YWx1ZSl9ZnVuY3Rpb24gbShmKXtpZihmPT09dm9pZCAwKXJldHVybiJkZWZhdWx0IjtpZih1LmVudW1zKXt2YXIgVT11LmVudW1zW2ZdO3JldHVybiBVLmxpc3RDbGFzc3x8ImRlZmF1bHQifWlmKHUub3B0aW9ucyl7aWYoIUFycmF5LmlzQXJyYXkodS5vcHRpb25zKSlyZXR1cm4gY29uc29sZS5sb2coIkRpY3RUYWcgb3B0aW9ucyBpcyBubyBhcnJheSEiKSwiZGVmYXVsdCI7dmFyIG49bygpKHUub3B0aW9ucyksaTt0cnl7Zm9yKG4ucygpOyEoaT1uLm4oKSkuZG9uZTspe3ZhciBTPWkudmFsdWU7aWYoUy52YWx1ZT09PWYpcmV0dXJuIFMubGlzdENsYXNzfHwiZGVmYXVsdCJ9fWNhdGNoKHgpe24uZSh4KX1maW5hbGx5e24uZigpfX1yZXR1cm4gU3RyaW5nKHUudmFsdWUpfXZhciBCPWZ1bmN0aW9uKCl7cmV0dXJuIGoobSh1LnZhbHVlKS50b0xvd2VyQ2FzZSgpKX0sSD1mdW5jdGlvbigpe3JldHVybiBsKHUudmFsdWUpfTtyZXR1cm4oMCxrLmpzeCkoYS5aLHtjb2xvcjpCKCksY2hpbGRyZW46SCgpfSl9O0kuWj1GfSwzMzg2NzpmdW5jdGlvbihhZSxJLGUpe2UuZChJLHtpSzpmdW5jdGlvbigpe3JldHVybiBafSx6YzpmdW5jdGlvbigpe3JldHVybiBHfX0pO3ZhciBaPWZ1bmN0aW9uKGEpe3JldHVybiBhW2EuU1VDQ0VTUz0yMDBdPSJTVUNDRVNTIixhW2EuRVJST1I9LTFdPSJFUlJPUiIsYVthLlRJTUVPVVQ9NDAxXT0iVElNRU9VVCIsYS5UWVBFPSJzdWNjZXNzIixhfSh7fSksbz1mdW5jdGlvbihhKXtyZXR1cm4gYS5HRVQ9IkdFVCIsYS5QT1NUPSJQT1NUIixhLlBVVD0iUFVUIixhLkRFTEVURT0iREVMRVRFIixhfSh7fSksRz1mdW5jdGlvbihhKXtyZXR1cm4gYS5KU09OPSJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgiLGEuRk9STV9VUkxFTkNPREVEPSJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD1VVEYtOCIsYS5GT1JNX0RBVEE9Im11bHRpcGFydC9mb3JtLWRhdGE7Y2hhcnNldD1VVEYtOCIsYX0oe30pfSwzNDQ1MzpmdW5jdGlvbihhZSxJLGUpe2UucihJKTt2YXIgWj1lKDE1MDA5KSxvPWUubihaKSxHPWUoOTkyODkpLGE9ZS5uKEcpLGs9ZSg1NTc0KSxGPWUubihrKSxMPWUoNjcyOTQpLHU9ZSg5NzI2OSksaj1lKDMxMTk5KSxsPWUoNTk2NiksbT1lKDY0MzE3KSxCPWUoODY2MTUpLEg9ZSg5MDY3MiksZj1lKDk5ODU5KSxVPWUoMTc3ODgpLG49ZSg3Njc3MiksaT1lKDg1ODkzKSxTPWZ1bmN0aW9uKF8pe3ZhciBBPWYuWi51c2VGb3JtKCksSz1GKCkoQSwxKSxYPUtbMF0sdGU9Xy5zdGF0dXNPcHRpb25zOygwLEwudXNlRWZmZWN0KShmdW5jdGlvbigpe1gucmVzZXRGaWVsZHMoKSxYLnNldEZpZWxkc1ZhbHVlKHtkaWN0Q29kZTpfLnZhbHVlcy5kaWN0Q29kZSxkaWN0U29ydDpfLnZhbHVlcy5kaWN0U29ydCxkaWN0TGFiZWw6Xy52YWx1ZXMuZGljdExhYmVsLGRpY3RWYWx1ZTpfLnZhbHVlcy5kaWN0VmFsdWUsZGljdFR5cGU6Xy52YWx1ZXMuZGljdFR5cGUsY3NzQ2xhc3M6Xy52YWx1ZXMuY3NzQ2xhc3MsbGlzdENsYXNzOl8udmFsdWVzLmxpc3RDbGFzcyxpc0RlZmF1bHQ6Xy52YWx1ZXMuaXNEZWZhdWx0LHN0YXR1czpfLnZhbHVlcy5zdGF0dXMsY3JlYXRlQnk6Xy52YWx1ZXMuY3JlYXRlQnksY3JlYXRlVGltZTpfLnZhbHVlcy5jcmVhdGVUaW1lLHVwZGF0ZUJ5Ol8udmFsdWVzLnVwZGF0ZUJ5LHVwZGF0ZVRpbWU6Xy52YWx1ZXMudXBkYXRlVGltZSxyZW1hcms6Xy52YWx1ZXMucmVtYXJrfSl9LFtYLF9dKTt2YXIgQz0oMCxuLnVzZUludGwpKCksaD1mdW5jdGlvbigpe1guc3VibWl0KCl9LFA9ZnVuY3Rpb24oKXtfLm9uQ2FuY2VsKCl9LFc9ZnVuY3Rpb24oKXt2YXIgcj1hKCkobygpKCkubWFyayhmdW5jdGlvbiAkKHEpe3JldHVybiBvKCkoKS53cmFwKGZ1bmN0aW9uKGIpe2Zvcig7Oylzd2l0Y2goYi5wcmV2PWIubmV4dCl7Y2FzZSAwOl8ub25TdWJtaXQocSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gYi5zdG9wKCl9fSwkKX0pKTtyZXR1cm4gZnVuY3Rpb24ocSl7cmV0dXJuIHIuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKTtyZXR1cm4oMCxpLmpzeCkoVS5aLHt3aWR0aDo2NDAsdGl0bGU6Qy5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLmRpY3QuZGF0YS50aXRsZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1N0YxNlx1OEY5MVx1NUI1N1x1NTE3OFx1NjU3MFx1NjM2RSJ9KSxvcGVuOl8ub3Blbixmb3JjZVJlbmRlcjohMCxkZXN0cm95T25DbG9zZTohMCxvbk9rOmgsb25DYW5jZWw6UCxjaGlsZHJlbjooMCxpLmpzeHMpKHUuQSx7Zm9ybTpYLGdyaWQ6ITAsc3VibWl0dGVyOiExLGxheW91dDoiaG9yaXpvbnRhbCIsb25GaW5pc2g6VyxjaGlsZHJlbjpbKDAsaS5qc3gpKGouWix7bmFtZToiZGljdENvZGUiLGxhYmVsOkMuZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5kaWN0LmRhdGEuZGljdF9jb2RlIixkZWZhdWx0TWVzc2FnZToiXHU1QjU3XHU1MTc4XHU3RjE2XHU3ODAxIn0pLGNvbFByb3BzOnttZDoyNCx4bDoyNH0scGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NUI1N1x1NTE3OFx1N0YxNlx1NzgwMSIsZGlzYWJsZWQ6ITAsaGlkZGVuOiEwLHJ1bGVzOlt7cmVxdWlyZWQ6ITEsbWVzc2FnZTooMCxpLmpzeCkobi5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU1QjU3XHU1MTc4XHU3RjE2XHU3ODAxXHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU1QjU3XHU1MTc4XHU3RjE2XHU3ODAxXHVGRjAxIn0pfV19KSwoMCxpLmpzeCkobC5aLHtuYW1lOiJkaWN0VHlwZSIsbGFiZWw6Qy5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLmRpY3QuZGF0YS5kaWN0X3R5cGUiLGRlZmF1bHRNZXNzYWdlOiJcdTVCNTdcdTUxNzhcdTdDN0JcdTU3OEIifSksY29sUHJvcHM6e21kOjEyLHhsOjI0fSxwbGFjZWhvbGRlcjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU1QjU3XHU1MTc4XHU3QzdCXHU1NzhCIixkaXNhYmxlZDohMCxydWxlczpbe3JlcXVpcmVkOiExLG1lc3NhZ2U6KDAsaS5qc3gpKG4uRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NUI1N1x1NTE3OFx1N0M3Qlx1NTc4Qlx1RkYwMSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NUI1N1x1NTE3OFx1N0M3Qlx1NTc4Qlx1RkYwMSJ9KX1dfSksKDAsaS5qc3gpKGwuWix7bmFtZToiZGljdExhYmVsIixsYWJlbDpDLmZvcm1hdE1lc3NhZ2Uoe2lkOiJzeXN0ZW0uZGljdC5kYXRhLmRpY3RfbGFiZWwiLGRlZmF1bHRNZXNzYWdlOiJcdTVCNTdcdTUxNzhcdTY4MDdcdTdCN0UifSksY29sUHJvcHM6e21kOjEyLHhsOjI0fSxwbGFjZWhvbGRlcjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU1QjU3XHU1MTc4XHU2ODA3XHU3QjdFIixydWxlczpbe3JlcXVpcmVkOiExLG1lc3NhZ2U6KDAsaS5qc3gpKG4uRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NUI1N1x1NTE3OFx1NjgwN1x1N0I3RVx1RkYwMSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NUI1N1x1NTE3OFx1NjgwN1x1N0I3RVx1RkYwMSJ9KX1dfSksKDAsaS5qc3gpKGwuWix7bmFtZToiZGljdFZhbHVlIixsYWJlbDpDLmZvcm1hdE1lc3NhZ2Uoe2lkOiJzeXN0ZW0uZGljdC5kYXRhLmRpY3RfdmFsdWUiLGRlZmF1bHRNZXNzYWdlOiJcdTVCNTdcdTUxNzhcdTk1MkVcdTUwM0MifSksY29sUHJvcHM6e21kOjEyLHhsOjI0fSxwbGFjZWhvbGRlcjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU1QjU3XHU1MTc4XHU5NTJFXHU1MDNDIixydWxlczpbe3JlcXVpcmVkOiExLG1lc3NhZ2U6KDAsaS5qc3gpKG4uRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NUI1N1x1NTE3OFx1OTUyRVx1NTAzQ1x1RkYwMSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NUI1N1x1NTE3OFx1OTUyRVx1NTAzQ1x1RkYwMSJ9KX1dfSksKDAsaS5qc3gpKGwuWix7bmFtZToiY3NzQ2xhc3MiLGxhYmVsOkMuZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5kaWN0LmRhdGEuY3NzX2NsYXNzIixkZWZhdWx0TWVzc2FnZToiXHU2ODM3XHU1RjBGXHU1QzVFXHU2MDI3In0pLGNvbFByb3BzOnttZDoxMix4bDoyNH0scGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NjgzN1x1NUYwRlx1NUM1RVx1NjAyNyIscnVsZXM6W3tyZXF1aXJlZDohMSxtZXNzYWdlOigwLGkuanN4KShuLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTY4MzdcdTVGMEZcdTVDNUVcdTYwMjdcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTY4MzdcdTVGMEZcdTVDNUVcdTYwMjdcdUZGMDEifSl9XX0pLCgwLGkuanN4KShtLlose25hbWU6Imxpc3RDbGFzcyIsbGFiZWw6Qy5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLmRpY3QuZGF0YS5saXN0X2NsYXNzIixkZWZhdWx0TWVzc2FnZToiXHU1NkRFXHU2NjNFXHU2ODM3XHU1RjBGIn0pLGNvbFByb3BzOnttZDoxMix4bDoyNH0scGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NTZERVx1NjYzRVx1NjgzN1x1NUYwRiIsdmFsdWVFbnVtOntkZWZhdWx0OiJcdTlFRDhcdThCQTQiLHByaW1hcnk6Ilx1NEUzQlx1ODk4MSIsc3VjY2VzczoiXHU2MjEwXHU1MjlGIixpbmZvOiJcdTRGRTFcdTYwNkYiLHdhcm5pbmc6Ilx1OEI2Nlx1NTQ0QSIsZGFuZ2VyOiJcdTUzNzFcdTk2NjkifSxydWxlczpbe3JlcXVpcmVkOiExLG1lc3NhZ2U6KDAsaS5qc3gpKG4uRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NTZERVx1NjYzRVx1NjgzN1x1NUYwRlx1RkYwMSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NTZERVx1NjYzRVx1NjgzN1x1NUYwRlx1RkYwMSJ9KX1dfSksKDAsaS5qc3gpKGouWix7bmFtZToiZGljdFNvcnQiLGxhYmVsOkMuZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5kaWN0LmRhdGEuZGljdF9zb3J0IixkZWZhdWx0TWVzc2FnZToiXHU1QjU3XHU1MTc4XHU2MzkyXHU1RThGIn0pLGNvbFByb3BzOnttZDoxMix4bDoxMn0scGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NUI1N1x1NTE3OFx1NjM5Mlx1NUU4RiIscnVsZXM6W3tyZXF1aXJlZDohMSxtZXNzYWdlOigwLGkuanN4KShuLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTVCNTdcdTUxNzhcdTYzOTJcdTVFOEZcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTVCNTdcdTUxNzhcdTYzOTJcdTVFOEZcdUZGMDEifSl9XX0pLCgwLGkuanN4KShCLlouR3JvdXAse25hbWU6ImlzRGVmYXVsdCIsbGFiZWw6Qy5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLmRpY3QuZGF0YS5pc19kZWZhdWx0IixkZWZhdWx0TWVzc2FnZToiXHU2NjJGXHU1NDI2XHU5RUQ4XHU4QkE0In0pLHZhbHVlRW51bTp7WToiXHU2NjJGIixOOiJcdTU0MjYifSxpbml0aWFsVmFsdWU6Ik4iLGNvbFByb3BzOnttZDoxMix4bDoyNH0scGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NjYyRlx1NTQyNlx1OUVEOFx1OEJBNCIscnVsZXM6W3tyZXF1aXJlZDohMSxtZXNzYWdlOigwLGkuanN4KShuLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTY2MkZcdTU0MjZcdTlFRDhcdThCQTRcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTY2MkZcdTU0MjZcdTlFRDhcdThCQTRcdUZGMDEifSl9XX0pLCgwLGkuanN4KShCLlouR3JvdXAse3ZhbHVlRW51bTp0ZSxuYW1lOiJzdGF0dXMiLGxhYmVsOkMuZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS5kaWN0LmRhdGEuc3RhdHVzIixkZWZhdWx0TWVzc2FnZToiXHU3MkI2XHU2MDAxIn0pLGluaXRpYWxWYWx1ZToiMCIsY29sUHJvcHM6e21kOjEyLHhsOjI0fSxwbGFjZWhvbGRlcjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU3MkI2XHU2MDAxIixydWxlczpbe3JlcXVpcmVkOiExLG1lc3NhZ2U6KDAsaS5qc3gpKG4uRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NzJCNlx1NjAwMVx1RkYwMSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NzJCNlx1NjAwMVx1RkYwMSJ9KX1dfSksKDAsaS5qc3gpKEguWix7bmFtZToicmVtYXJrIixsYWJlbDpDLmZvcm1hdE1lc3NhZ2Uoe2lkOiJzeXN0ZW0uZGljdC5kYXRhLnJlbWFyayIsZGVmYXVsdE1lc3NhZ2U6Ilx1NTkwN1x1NkNFOCJ9KSxjb2xQcm9wczp7bWQ6MjQseGw6MjR9LHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdTU5MDdcdTZDRTgiLHJ1bGVzOlt7cmVxdWlyZWQ6ITEsbWVzc2FnZTooMCxpLmpzeCkobi5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU1OTA3XHU2Q0U4XHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU1OTA3XHU2Q0U4XHVGRjAxIn0pfV19KV19KX0pfTtJLmRlZmF1bHQ9U30sMTM1NTg6ZnVuY3Rpb24oYWUsSSxlKXtlLnIoSSksZS5kKEkse2RlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4gTWV9fSk7dmFyIFo9ZSg1NTc0KSxvPWUubihaKSxHPWUoMTUwMDkpLGE9ZS5uKEcpLGs9ZSg5Nzg1NyksRj1lLm4oayksTD1lKDk5Mjg5KSx1PWUubihMKSxqPWUoNjcyOTQpLGw9ZSg3Njc3MiksbT1lKDI0NTMpLEI9ZSg4MzYyMiksSD1lKDE3Nzg4KSxmPWUoNjExMCksVT1lKDY1Mzg1KSxuPWUoMjIzNiksaT1lKDI0OTY5KSxTPWUoMTE0NzUpLHg9ZSg0ODY4OSksXz1lKDMwOTY0KTtmdW5jdGlvbiBBKEUsYyl7cmV0dXJuIEsuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEsoKXtyZXR1cm4gSz11KCkoYSgpKCkubWFyayhmdW5jdGlvbiBFKGMsdil7cmV0dXJuIGEoKSgpLndyYXAoZnVuY3Rpb24odCl7Zm9yKDs7KXN3aXRjaCh0LnByZXY9dC5uZXh0KXtjYXNlIDA6cmV0dXJuIHQuYWJydXB0KCJyZXR1cm4iLCgwLGwucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RpY3QvZGF0YS9saXN0IixGKCkoe21ldGhvZDoiR0VUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In0scGFyYW1zOmN9LHZ8fHt9KSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIHQuc3RvcCgpfX0sRSl9KSksSy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gWChFLGMpe3JldHVybiByZXF1ZXN0KCIvYXBpL3N5c3RlbS9kaWN0L2RhdGEvIi5jb25jYXQoRSksX29iamVjdFNwcmVhZCh7bWV0aG9kOiJHRVQifSxjfHx7fSkpfWZ1bmN0aW9uIHRlKEUsYyl7cmV0dXJuIEMuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEMoKXtyZXR1cm4gQz11KCkoYSgpKCkubWFyayhmdW5jdGlvbiBFKGMsdil7cmV0dXJuIGEoKSgpLndyYXAoZnVuY3Rpb24odCl7Zm9yKDs7KXN3aXRjaCh0LnByZXY9dC5uZXh0KXtjYXNlIDA6cmV0dXJuIHQuYWJydXB0KCJyZXR1cm4iLCgwLGwucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RpY3QvZGF0YSIsRigpKHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgifSxkYXRhOmN9LHZ8fHt9KSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIHQuc3RvcCgpfX0sRSl9KSksQy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gaChFLGMpe3JldHVybiBQLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBQKCl7cmV0dXJuIFA9dSgpKGEoKSgpLm1hcmsoZnVuY3Rpb24gRShjLHYpe3JldHVybiBhKCkoKS53cmFwKGZ1bmN0aW9uKHQpe2Zvcig7Oylzd2l0Y2godC5wcmV2PXQubmV4dCl7Y2FzZSAwOnJldHVybiB0LmFicnVwdCgicmV0dXJuIiwoMCxsLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS9kaWN0L2RhdGEiLEYoKSh7bWV0aG9kOiJQVVQiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgifSxkYXRhOmN9LHZ8fHt9KSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIHQuc3RvcCgpfX0sRSl9KSksUC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gVyhFLGMpe3JldHVybiByLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiByKCl7cmV0dXJuIHI9dSgpKGEoKSgpLm1hcmsoZnVuY3Rpb24gRShjLHYpe3JldHVybiBhKCkoKS53cmFwKGZ1bmN0aW9uKHQpe2Zvcig7Oylzd2l0Y2godC5wcmV2PXQubmV4dCl7Y2FzZSAwOnJldHVybiB0LmFicnVwdCgicmV0dXJuIiwoMCxsLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS9kaWN0L2RhdGEvIi5jb25jYXQoYyksRigpKHttZXRob2Q6IkRFTEVURSJ9LHZ8fHt9KSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIHQuc3RvcCgpfX0sRSl9KSksci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gJChFLGMpe3JldHVybigwLF8uc3UpKCIvYXBpL3N5c3RlbS9kaWN0L2RhdGEvZXhwb3J0Iix7cGFyYW1zOkV9LCJkaWN0X2RhdGFfIi5jb25jYXQobmV3IERhdGUoKS5nZXRUaW1lKCksIi54bHN4IikpfXZhciBxPWUoMzQ0NTMpLEQ9ZSg5Mjk4MiksYj1lKDk0MTYyKSxkPWUoODU4OTMpLEVlPWZ1bmN0aW9uKCl7dmFyIEU9dSgpKGEoKSgpLm1hcmsoZnVuY3Rpb24gYyh2KXt2YXIgeSx0O3JldHVybiBhKCkoKS53cmFwKGZ1bmN0aW9uKHMpe2Zvcig7Oylzd2l0Y2gocy5wcmV2PXMubmV4dCl7Y2FzZSAwOnJldHVybiB5PW0uWlAubG9hZGluZygiXHU2QjYzXHU1NzI4XHU2REZCXHU1MkEwIikscy5wcmV2PTEscy5uZXh0PTQsdGUoRigpKHt9LHYpKTtjYXNlIDQ6cmV0dXJuIHQ9cy5zZW50LHkoKSx0LmNvZGU9PT0yMDA/bS5aUC5zdWNjZXNzKCJcdTZERkJcdTUyQTBcdTYyMTBcdTUyOUYiKTptLlpQLmVycm9yKHQubXNnKSxzLmFicnVwdCgicmV0dXJuIiwhMCk7Y2FzZSAxMDpyZXR1cm4gcy5wcmV2PTEwLHMudDA9cy5jYXRjaCgxKSx5KCksbS5aUC5lcnJvcigiXHU2REZCXHU1MkEwXHU1OTMxXHU4RDI1XHU4QkY3XHU5MUNEXHU4QkQ1XHVGRjAxIikscy5hYnJ1cHQoInJldHVybiIsITEpO2Nhc2UgMTU6Y2FzZSJlbmQiOnJldHVybiBzLnN0b3AoKX19LGMsbnVsbCxbWzEsMTBdXSl9KSk7cmV0dXJuIGZ1bmN0aW9uKHYpe3JldHVybiBFLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksRmU9ZnVuY3Rpb24oKXt2YXIgRT11KCkoYSgpKCkubWFyayhmdW5jdGlvbiBjKHYpe3ZhciB5LHQ7cmV0dXJuIGEoKSgpLndyYXAoZnVuY3Rpb24ocyl7Zm9yKDs7KXN3aXRjaChzLnByZXY9cy5uZXh0KXtjYXNlIDA6cmV0dXJuIHk9bS5aUC5sb2FkaW5nKCJcdTZCNjNcdTU3MjhcdTY2RjRcdTY1QjAiKSxzLnByZXY9MSxzLm5leHQ9NCxoKHYpO2Nhc2UgNDpyZXR1cm4gdD1zLnNlbnQseSgpLHQuY29kZT09PTIwMD9tLlpQLnN1Y2Nlc3MoIlx1NjZGNFx1NjVCMFx1NjIxMFx1NTI5RiIpOm0uWlAuZXJyb3IodC5tc2cpLHMuYWJydXB0KCJyZXR1cm4iLCEwKTtjYXNlIDEwOnJldHVybiBzLnByZXY9MTAscy50MD1zLmNhdGNoKDEpLHkoKSxtLlpQLmVycm9yKCJcdTkxNERcdTdGNkVcdTU5MzFcdThEMjVcdThCRjdcdTkxQ0RcdThCRDVcdUZGMDEiKSxzLmFicnVwdCgicmV0dXJuIiwhMSk7Y2FzZSAxNTpjYXNlImVuZCI6cmV0dXJuIHMuc3RvcCgpfX0sYyxudWxsLFtbMSwxMF1dKX0pKTtyZXR1cm4gZnVuY3Rpb24odil7cmV0dXJuIEUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSxfZT1mdW5jdGlvbigpe3ZhciBFPXUoKShhKCkoKS5tYXJrKGZ1bmN0aW9uIGModil7dmFyIHksdDtyZXR1cm4gYSgpKCkud3JhcChmdW5jdGlvbihzKXtmb3IoOzspc3dpdGNoKHMucHJldj1zLm5leHQpe2Nhc2UgMDppZih5PW0uWlAubG9hZGluZygiXHU2QjYzXHU1NzI4XHU1MjIwXHU5NjY0Iiksdil7cy5uZXh0PTM7YnJlYWt9cmV0dXJuIHMuYWJydXB0KCJyZXR1cm4iLCEwKTtjYXNlIDM6cmV0dXJuIHMucHJldj0zLHMubmV4dD02LFcodi5tYXAoZnVuY3Rpb24oTyl7cmV0dXJuIE8uZGljdENvZGV9KS5qb2luKCIsIikpO2Nhc2UgNjpyZXR1cm4gdD1zLnNlbnQseSgpLHQuY29kZT09PTIwMD9tLlpQLnN1Y2Nlc3MoIlx1NTIyMFx1OTY2NFx1NjIxMFx1NTI5Rlx1RkYwQ1x1NTM3M1x1NUMwNlx1NTIzN1x1NjVCMCIpOm0uWlAuZXJyb3IodC5tc2cpLHMuYWJydXB0KCJyZXR1cm4iLCEwKTtjYXNlIDEyOnJldHVybiBzLnByZXY9MTIscy50MD1zLmNhdGNoKDMpLHkoKSxtLlpQLmVycm9yKCJcdTUyMjBcdTk2NjRcdTU5MzFcdThEMjVcdUZGMENcdThCRjdcdTkxQ0RcdThCRDUiKSxzLmFicnVwdCgicmV0dXJuIiwhMSk7Y2FzZSAxNzpjYXNlImVuZCI6cmV0dXJuIHMuc3RvcCgpfX0sYyxudWxsLFtbMywxMl1dKX0pKTtyZXR1cm4gZnVuY3Rpb24odil7cmV0dXJuIEUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSx5ZT1mdW5jdGlvbigpe3ZhciBFPXUoKShhKCkoKS5tYXJrKGZ1bmN0aW9uIGModil7dmFyIHksdCxRO3JldHVybiBhKCkoKS53cmFwKGZ1bmN0aW9uKE8pe2Zvcig7Oylzd2l0Y2goTy5wcmV2PU8ubmV4dCl7Y2FzZSAwOmlmKHk9bS5aUC5sb2FkaW5nKCJcdTZCNjNcdTU3MjhcdTUyMjBcdTk2NjQiKSx2KXtPLm5leHQ9MzticmVha31yZXR1cm4gTy5hYnJ1cHQoInJldHVybiIsITApO2Nhc2UgMzpyZXR1cm4gTy5wcmV2PTMsdD1bdi5kaWN0Q29kZV0sTy5uZXh0PTcsVyh0LmpvaW4oIiwiKSk7Y2FzZSA3OnJldHVybiBRPU8uc2VudCx5KCksUS5jb2RlPT09MjAwP20uWlAuc3VjY2VzcygiXHU1MjIwXHU5NjY0XHU2MjEwXHU1MjlGXHVGRjBDXHU1MzczXHU1QzA2XHU1MjM3XHU2NUIwIik6bS5aUC5lcnJvcihRLm1zZyksTy5hYnJ1cHQoInJldHVybiIsITApO2Nhc2UgMTM6cmV0dXJuIE8ucHJldj0xMyxPLnQwPU8uY2F0Y2goMykseSgpLG0uWlAuZXJyb3IoIlx1NTIyMFx1OTY2NFx1NTkzMVx1OEQyNVx1RkYwQ1x1OEJGN1x1OTFDRFx1OEJENSIpLE8uYWJydXB0KCJyZXR1cm4iLCExKTtjYXNlIDE4OmNhc2UiZW5kIjpyZXR1cm4gTy5zdG9wKCl9fSxjLG51bGwsW1szLDEzXV0pfSkpO3JldHVybiBmdW5jdGlvbih2KXtyZXR1cm4gRS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLERlPWZ1bmN0aW9uKCl7dmFyIEU9dSgpKGEoKSgpLm1hcmsoZnVuY3Rpb24gYygpe3ZhciB2O3JldHVybiBhKCkoKS53cmFwKGZ1bmN0aW9uKHQpe2Zvcig7Oylzd2l0Y2godC5wcmV2PXQubmV4dCl7Y2FzZSAwOnJldHVybiB2PW0uWlAubG9hZGluZygiXHU2QjYzXHU1NzI4XHU1QkZDXHU1MUZBIiksdC5wcmV2PTEsdC5uZXh0PTQsJCgpO2Nhc2UgNDpyZXR1cm4gdigpLG0uWlAuc3VjY2VzcygiXHU1QkZDXHU1MUZBXHU2MjEwXHU1MjlGIiksdC5hYnJ1cHQoInJldHVybiIsITApO2Nhc2UgOTpyZXR1cm4gdC5wcmV2PTksdC50MD10LmNhdGNoKDEpLHYoKSxtLlpQLmVycm9yKCJcdTVCRkNcdTUxRkFcdTU5MzFcdThEMjVcdUZGMENcdThCRjdcdTkxQ0RcdThCRDUiKSx0LmFicnVwdCgicmV0dXJuIiwhMSk7Y2FzZSAxNDpjYXNlImVuZCI6cmV0dXJuIHQuc3RvcCgpfX0sYyxudWxsLFtbMSw5XV0pfSkpO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBFLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksYmU9ZnVuY3Rpb24oKXt2YXIgYz0oMCxqLnVzZVJlZikoKSx2PSgwLGoudXNlU3RhdGUpKCIiKSx5PW8oKSh2LDIpLHQ9eVswXSxRPXlbMV0scz0oMCxqLnVzZVN0YXRlKSgiIiksTz1vKCkocywyKSxsZT1PWzBdLHBlPU9bMV0sUGU9KDAsai51c2VTdGF0ZSkoITEpLGZlPW8oKShQZSwyKSxqZT1mZVswXSx1ZT1mZVsxXSxZPSgwLGoudXNlUmVmKSgpLENlPSgwLGoudXNlU3RhdGUpKCksaGU9bygpKENlLDIpLE9lPWhlWzBdLG5lPWhlWzFdLEJlPSgwLGoudXNlU3RhdGUpKFtdKSxnZT1vKCkoQmUsMiksTj1nZVswXSxkZT1nZVsxXSxBZT0oMCxqLnVzZVN0YXRlKShbXSksdmU9bygpKEFlLDIpLFJlPXZlWzBdLExlPXZlWzFdLFVlPSgwLGoudXNlU3RhdGUpKFtdKSxUZT1vKCkoVWUsMiksb2U9VGVbMF0sU2U9VGVbMV0sZWU9KDAsbC51c2VBY2Nlc3MpKCkseGU9KDAsbC51c2VJbnRsKSgpLGNlPSgwLGwudXNlUGFyYW1zKSgpO2NlLmlkPT09dm9pZCAwJiZsLmhpc3RvcnkucHVzaCgiL3N5c3RlbS9kaWN0Iik7dmFyIG1lPWNlLmlkfHwiMCI7KDAsai51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7dCE9PW1lJiYoUShtZSksKDAsRC5RSykoKS50aGVuKGZ1bmN0aW9uKE0pe2lmKE0uY29kZT09PTIwMCl7dmFyIGc9e307TS5kYXRhLmZvckVhY2goZnVuY3Rpb24ocCl7Z1twLmRpY3RUeXBlXT1wLmRpY3ROYW1lfSksTGUoZyl9fSksKDAsRC5wWCkoInN5c19ub3JtYWxfZGlzYWJsZSIpLnRoZW4oZnVuY3Rpb24oTSl7U2UoTSl9KSwoMCxELlZkKShtZSkudGhlbihmdW5jdGlvbihNKXtpZihNLmNvZGU9PT0yMDApe3ZhciBnLHAsVDtwZShNLmRhdGEuZGljdFR5cGUpLChnPWMuY3VycmVudCk9PT1udWxsfHxnPT09dm9pZCAwfHxnLnNldEZpZWxkc1ZhbHVlKHtkaWN0VHlwZTpNLmRhdGEuZGljdFR5cGV9KSwocD1ZLmN1cnJlbnQpPT09bnVsbHx8cD09PXZvaWQgMHx8KFQ9cC5yZWxvYWRBbmRSZXN0KT09PW51bGx8fFQ9PT12b2lkIDB8fFQuY2FsbChwKX1lbHNlIG0uWlAuZXJyb3IoTS5tc2cpfSkpfSxbdCxsZSxjZV0pO3ZhciBJZT1be3RpdGxlOigwLGQuanN4KShsLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJzeXN0ZW0uZGljdC5kYXRhLmRpY3RfY29kZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NUI1N1x1NTE3OFx1N0YxNlx1NzgwMSJ9KSxkYXRhSW5kZXg6ImRpY3RDb2RlIix2YWx1ZVR5cGU6InRleHQiLGhpZGVJblNlYXJjaDohMH0se3RpdGxlOigwLGQuanN4KShsLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJzeXN0ZW0uZGljdC5kYXRhLmRpY3RfbGFiZWwiLGRlZmF1bHRNZXNzYWdlOiJcdTVCNTdcdTUxNzhcdTY4MDdcdTdCN0UifSksZGF0YUluZGV4OiJkaWN0TGFiZWwiLHZhbHVlVHlwZToidGV4dCJ9LHt0aXRsZTooMCxkLmpzeCkobC5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoic3lzdGVtLmRpY3QuZGF0YS5kaWN0X3R5cGUiLGRlZmF1bHRNZXNzYWdlOiJcdTVCNTdcdTUxNzhcdTdDN0JcdTU3OEIifSksZGF0YUluZGV4OiJkaWN0VHlwZSIsdmFsdWVUeXBlOiJzZWxlY3QiLGhpZGVJblRhYmxlOiEwLHZhbHVlRW51bTpSZSxzZWFyY2g6e3RyYW5zZm9ybTpmdW5jdGlvbihnKXtyZXR1cm4gcGUoZyksZ319fSx7dGl0bGU6KDAsZC5qc3gpKGwuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InN5c3RlbS5kaWN0LmRhdGEuZGljdF92YWx1ZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NUI1N1x1NTE3OFx1OTUyRVx1NTAzQyJ9KSxkYXRhSW5kZXg6ImRpY3RWYWx1ZSIsdmFsdWVUeXBlOiJ0ZXh0In0se3RpdGxlOigwLGQuanN4KShsLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJzeXN0ZW0uZGljdC5kYXRhLmRpY3Rfc29ydCIsZGVmYXVsdE1lc3NhZ2U6Ilx1NUI1N1x1NTE3OFx1NjM5Mlx1NUU4RiJ9KSxkYXRhSW5kZXg6ImRpY3RTb3J0Iix2YWx1ZVR5cGU6InRleHQifSx7dGl0bGU6KDAsZC5qc3gpKGwuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InN5c3RlbS5kaWN0LmRhdGEuc3RhdHVzIixkZWZhdWx0TWVzc2FnZToiXHU3MkI2XHU2MDAxIn0pLGRhdGFJbmRleDoic3RhdHVzIix2YWx1ZVR5cGU6InNlbGVjdCIsdmFsdWVFbnVtOm9lLHJlbmRlcjpmdW5jdGlvbihnLHApe3JldHVybigwLGQuanN4KShiLlose2VudW1zOm9lLHZhbHVlOnAuc3RhdHVzfSl9fSx7dGl0bGU6KDAsZC5qc3gpKGwuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InN5c3RlbS5kaWN0LmRhdGEucmVtYXJrIixkZWZhdWx0TWVzc2FnZToiXHU1OTA3XHU2Q0U4In0pLGRhdGFJbmRleDoicmVtYXJrIix2YWx1ZVR5cGU6InRleHRhcmVhIixoaWRlSW5TZWFyY2g6ITB9LHt0aXRsZTooMCxkLmpzeCkobC5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoic3lzdGVtLmRpY3QuZGF0YS5jcmVhdGVfdGltZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NTIxQlx1NUVGQVx1NjVGNlx1OTVGNCJ9KSxkYXRhSW5kZXg6ImNyZWF0ZVRpbWUiLHZhbHVlVHlwZToiZGF0ZVJhbmdlIixyZW5kZXI6ZnVuY3Rpb24oZyxwKXtyZXR1cm4oMCxkLmpzeHMpKCJzcGFuIix7Y2hpbGRyZW46W3AuY3JlYXRlVGltZS50b1N0cmluZygpLCIgIl19KX0sc2VhcmNoOnt0cmFuc2Zvcm06ZnVuY3Rpb24oZyl7cmV0dXJueyJwYXJhbXNbYmVnaW5UaW1lXSI6Z1swXSwicGFyYW1zW2VuZFRpbWVdIjpnWzFdfX19fSx7dGl0bGU6KDAsZC5qc3gpKGwuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InBhZ2VzLnNlYXJjaFRhYmxlLnRpdGxlT3B0aW9uIixkZWZhdWx0TWVzc2FnZToiXHU2NENEXHU0RjVDIn0pLGRhdGFJbmRleDoib3B0aW9uIix3aWR0aDoiMTIwcHgiLHZhbHVlVHlwZToib3B0aW9uIixyZW5kZXI6ZnVuY3Rpb24oZyxwKXtyZXR1cm5bKDAsZC5qc3gpKEIuWlAse3R5cGU6ImxpbmsiLHNpemU6InNtYWxsIixoaWRkZW46IWVlLmhhc1Blcm1zKCJzeXN0ZW06ZGF0YTplZGl0Iiksb25DbGljazpmdW5jdGlvbigpe3VlKCEwKSxuZShwKX0sY2hpbGRyZW46Ilx1N0YxNlx1OEY5MSJ9LCJlZGl0IiksKDAsZC5qc3gpKEIuWlAse3R5cGU6ImxpbmsiLHNpemU6InNtYWxsIixkYW5nZXI6ITAsaGlkZGVuOiFlZS5oYXNQZXJtcygic3lzdGVtOmRhdGE6cmVtb3ZlIiksb25DbGljazp1KCkoYSgpKCkubWFyayhmdW5jdGlvbiBUKCl7cmV0dXJuIGEoKSgpLndyYXAoZnVuY3Rpb24oUil7Zm9yKDs7KXN3aXRjaChSLnByZXY9Ui5uZXh0KXtjYXNlIDA6SC5aLmNvbmZpcm0oe3RpdGxlOiJcdTUyMjBcdTk2NjQiLGNvbnRlbnQ6Ilx1Nzg2RVx1NUI5QVx1NTIyMFx1OTY2NFx1OEJFNVx1OTg3OVx1NTQxN1x1RkYxRiIsb2tUZXh0OiJcdTc4NkVcdThCQTQiLGNhbmNlbFRleHQ6Ilx1NTNENlx1NkQ4OCIsb25PazpmdW5jdGlvbigpe3ZhciBKPXUoKShhKCkoKS5tYXJrKGZ1bmN0aW9uIHooKXt2YXIgaWU7cmV0dXJuIGEoKSgpLndyYXAoZnVuY3Rpb24oc2Upe2Zvcig7Oylzd2l0Y2goc2UucHJldj1zZS5uZXh0KXtjYXNlIDA6cmV0dXJuIHNlLm5leHQ9Mix5ZShwKTtjYXNlIDI6aWU9c2Uuc2VudCxpZSYmWS5jdXJyZW50JiZZLmN1cnJlbnQucmVsb2FkKCk7Y2FzZSA0OmNhc2UiZW5kIjpyZXR1cm4gc2Uuc3RvcCgpfX0seil9KSk7ZnVuY3Rpb24gVigpe3JldHVybiBKLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gVn0oKX0pO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIFIuc3RvcCgpfX0sVCl9KSksY2hpbGRyZW46Ilx1NTIyMFx1OTY2NCJ9LCJiYXRjaFJlbW92ZSIpXX19XTtyZXR1cm4oMCxkLmpzeHMpKGYuX3ose2NoaWxkcmVuOlsoMCxkLmpzeCkoImRpdiIse3N0eWxlOnt3aWR0aDoiMTAwJSIsZmxvYXQ6InJpZ2h0In0sY2hpbGRyZW46KDAsZC5qc3gpKFUuWix7aGVhZGVyVGl0bGU6eGUuZm9ybWF0TWVzc2FnZSh7aWQ6InBhZ2VzLnNlYXJjaFRhYmxlLnRpdGxlIixkZWZhdWx0TWVzc2FnZToiXHU0RkUxXHU2MDZGIn0pLGFjdGlvblJlZjpZLGZvcm1SZWY6Yyxyb3dLZXk6ImRpY3RDb2RlIixzZWFyY2g6e2xhYmVsV2lkdGg6MTIwfSx0b29sQmFyUmVuZGVyOmZ1bmN0aW9uKCl7cmV0dXJuWygwLGQuanN4cykoQi5aUCx7dHlwZToicHJpbWFyeSIsaGlkZGVuOiFlZS5oYXNQZXJtcygic3lzdGVtOmRhdGE6YWRkIiksb25DbGljazp1KCkoYSgpKCkubWFyayhmdW5jdGlvbiBnKCl7cmV0dXJuIGEoKSgpLndyYXAoZnVuY3Rpb24oVCl7Zm9yKDs7KXN3aXRjaChULnByZXY9VC5uZXh0KXtjYXNlIDA6bmUoe2RpY3RUeXBlOmxlLGlzRGVmYXVsdDoiTiIsc3RhdHVzOiIwIn0pLHVlKCEwKTtjYXNlIDI6Y2FzZSJlbmQiOnJldHVybiBULnN0b3AoKX19LGcpfSkpLGNoaWxkcmVuOlsoMCxkLmpzeCkoaS5aLHt9KSwiICIsKDAsZC5qc3gpKGwuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InBhZ2VzLnNlYXJjaFRhYmxlLm5ldyIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjVCMFx1NUVGQSJ9KV19LCJhZGQiKSwoMCxkLmpzeHMpKEIuWlAse3R5cGU6InByaW1hcnkiLGRhbmdlcjohMCxoaWRkZW46KE49PW51bGw/dm9pZCAwOk4ubGVuZ3RoKT09PTB8fCFlZS5oYXNQZXJtcygic3lzdGVtOmRhdGE6cmVtb3ZlIiksb25DbGljazp1KCkoYSgpKCkubWFyayhmdW5jdGlvbiBnKCl7cmV0dXJuIGEoKSgpLndyYXAoZnVuY3Rpb24oVCl7Zm9yKDs7KXN3aXRjaChULnByZXY9VC5uZXh0KXtjYXNlIDA6SC5aLmNvbmZpcm0oe3RpdGxlOiJcdTY2MkZcdTU0MjZcdTc4NkVcdThCQTRcdTUyMjBcdTk2NjRcdTYyNDBcdTkwMDlcdTY1NzBcdTYzNkVcdTk4Nzk/IixpY29uOigwLGQuanN4KShTLlose30pLGNvbnRlbnQ6Ilx1OEJGN1x1OEMyOFx1NjE0RVx1NjRDRFx1NEY1QyIsb25PazpmdW5jdGlvbigpe3JldHVybiB1KCkoYSgpKCkubWFyayhmdW5jdGlvbiBSKCl7dmFyIEosVix6O3JldHVybiBhKCkoKS53cmFwKGZ1bmN0aW9uKHcpe2Zvcig7Oylzd2l0Y2gody5wcmV2PXcubmV4dCl7Y2FzZSAwOnJldHVybiB3Lm5leHQ9MixfZShOKTtjYXNlIDI6Sj13LnNlbnQsSiYmKGRlKFtdKSwoVj1ZLmN1cnJlbnQpPT09bnVsbHx8Vj09PXZvaWQgMHx8KHo9Vi5yZWxvYWRBbmRSZXN0KT09PW51bGx8fHo9PT12b2lkIDB8fHouY2FsbChWKSk7Y2FzZSA0OmNhc2UiZW5kIjpyZXR1cm4gdy5zdG9wKCl9fSxSKX0pKSgpfSxvbkNhbmNlbDpmdW5jdGlvbigpe319KTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBULnN0b3AoKX19LGcpfSkpLGNoaWxkcmVuOlsoMCxkLmpzeCkoeC5aLHt9KSwoMCxkLmpzeCkobC5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoicGFnZXMuc2VhcmNoVGFibGUuZGVsZXRlIixkZWZhdWx0TWVzc2FnZToiXHU1MjIwXHU5NjY0In0pXX0sInJlbW92ZSIpLCgwLGQuanN4cykoQi5aUCx7dHlwZToicHJpbWFyeSIsaGlkZGVuOiFlZS5oYXNQZXJtcygic3lzdGVtOmRhdGE6ZXhwb3J0Iiksb25DbGljazp1KCkoYSgpKCkubWFyayhmdW5jdGlvbiBnKCl7cmV0dXJuIGEoKSgpLndyYXAoZnVuY3Rpb24oVCl7Zm9yKDs7KXN3aXRjaChULnByZXY9VC5uZXh0KXtjYXNlIDA6RGUoKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBULnN0b3AoKX19LGcpfSkpLGNoaWxkcmVuOlsoMCxkLmpzeCkoaS5aLHt9KSwoMCxkLmpzeCkobC5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoicGFnZXMuc2VhcmNoVGFibGUuZXhwb3J0IixkZWZhdWx0TWVzc2FnZToiXHU1QkZDXHU1MUZBIn0pXX0sImV4cG9ydCIpXX0scmVxdWVzdDpmdW5jdGlvbihnKXtyZXR1cm4gQShGKCkoRigpKHt9LGcpLHt9LHtkaWN0VHlwZTpsZX0pKS50aGVuKGZ1bmN0aW9uKHApe3ZhciBUPXtkYXRhOnAucm93cyx0b3RhbDpwLnRvdGFsLHN1Y2Nlc3M6ITB9O3JldHVybiBUfSl9LGNvbHVtbnM6SWUscm93U2VsZWN0aW9uOntvbkNoYW5nZTpmdW5jdGlvbihnLHApe2RlKHApfX19LCJkYXRhTGlzdCIpfSksKE49PW51bGw/dm9pZCAwOk4ubGVuZ3RoKT4wJiYoMCxkLmpzeCkobi5TLHtleHRyYTooMCxkLmpzeHMpKCJkaXYiLHtjaGlsZHJlbjpbKDAsZC5qc3gpKGwuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InBhZ2VzLnNlYXJjaFRhYmxlLmNob3NlbiIsZGVmYXVsdE1lc3NhZ2U6Ilx1NURGMlx1OTAwOVx1NjJFOSJ9KSwoMCxkLmpzeCkoImEiLHtzdHlsZTp7Zm9udFdlaWdodDo2MDB9LGNoaWxkcmVuOk4ubGVuZ3RofSksKDAsZC5qc3gpKGwuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InBhZ2VzLnNlYXJjaFRhYmxlLml0ZW0iLGRlZmF1bHRNZXNzYWdlOiJcdTk4NzkifSldfSksY2hpbGRyZW46KDAsZC5qc3gpKEIuWlAse2RhbmdlcjohMCxoaWRkZW46IWVlLmhhc1Blcm1zKCJzeXN0ZW06ZGF0YTpkZWwiKSxvbkNsaWNrOnUoKShhKCkoKS5tYXJrKGZ1bmN0aW9uIE0oKXtyZXR1cm4gYSgpKCkud3JhcChmdW5jdGlvbihwKXtmb3IoOzspc3dpdGNoKHAucHJldj1wLm5leHQpe2Nhc2UgMDpILlouY29uZmlybSh7dGl0bGU6Ilx1NTIyMFx1OTY2NCIsY29udGVudDoiXHU3ODZFXHU1QjlBXHU1MjIwXHU5NjY0XHU4QkU1XHU5ODc5XHU1NDE3XHVGRjFGIixva1RleHQ6Ilx1Nzg2RVx1OEJBNCIsY2FuY2VsVGV4dDoiXHU1M0Q2XHU2RDg4Iixvbk9rOmZ1bmN0aW9uKCl7dmFyIFQ9dSgpKGEoKSgpLm1hcmsoZnVuY3Rpb24gUigpe3ZhciBKLFYsejtyZXR1cm4gYSgpKCkud3JhcChmdW5jdGlvbih3KXtmb3IoOzspc3dpdGNoKHcucHJldj13Lm5leHQpe2Nhc2UgMDpyZXR1cm4gdy5uZXh0PTIsX2UoTik7Y2FzZSAyOko9dy5zZW50LEomJihkZShbXSksKFY9WS5jdXJyZW50KT09PW51bGx8fFY9PT12b2lkIDB8fCh6PVYucmVsb2FkQW5kUmVzdCk9PT1udWxsfHx6PT09dm9pZCAwfHx6LmNhbGwoVikpO2Nhc2UgNDpjYXNlImVuZCI6cmV0dXJuIHcuc3RvcCgpfX0sUil9KSk7ZnVuY3Rpb24gcmUoKXtyZXR1cm4gVC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHJlfSgpfSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gcC5zdG9wKCl9fSxNKX0pKSxjaGlsZHJlbjooMCxkLmpzeCkobC5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoicGFnZXMuc2VhcmNoVGFibGUuYmF0Y2hEZWxldGlvbiIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjI3OVx1OTFDRlx1NTIyMFx1OTY2NCJ9KX0sInJlbW92ZSIpfSksKDAsZC5qc3gpKHEuZGVmYXVsdCx7b25TdWJtaXQ6ZnVuY3Rpb24oKXt2YXIgTT11KCkoYSgpKCkubWFyayhmdW5jdGlvbiBnKHApe3ZhciBUO3JldHVybiBhKCkoKS53cmFwKGZ1bmN0aW9uKFIpe2Zvcig7Oylzd2l0Y2goUi5wcmV2PVIubmV4dCl7Y2FzZSAwOmlmKFQ9ITEsIXAuZGljdENvZGUpe1IubmV4dD03O2JyZWFrfXJldHVybiBSLm5leHQ9NCxGZShGKCkoe30scCkpO2Nhc2UgNDpUPVIuc2VudCxSLm5leHQ9MTA7YnJlYWs7Y2FzZSA3OnJldHVybiBSLm5leHQ9OSxFZShGKCkoe30scCkpO2Nhc2UgOTpUPVIuc2VudDtjYXNlIDEwOlQmJih1ZSghMSksbmUodm9pZCAwKSxZLmN1cnJlbnQmJlkuY3VycmVudC5yZWxvYWQoKSk7Y2FzZSAxMTpjYXNlImVuZCI6cmV0dXJuIFIuc3RvcCgpfX0sZyl9KSk7cmV0dXJuIGZ1bmN0aW9uKGcpe3JldHVybiBNLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksb25DYW5jZWw6ZnVuY3Rpb24oKXt1ZSghMSksbmUodm9pZCAwKX0sb3BlbjpqZSx2YWx1ZXM6T2V8fHt9LHN0YXR1c09wdGlvbnM6b2V9KV19KX0sTWU9YmV9LDkyOTgyOmZ1bmN0aW9uKGFlLEksZSl7ZS5kKEkse0hyOmZ1bmN0aW9uKCl7cmV0dXJuIFV9LFFLOmZ1bmN0aW9uKCl7cmV0dXJuIHRlfSxWZDpmdW5jdGlvbigpe3JldHVybiBCfSxhNzpmdW5jdGlvbigpe3JldHVybiB4fSxqSzpmdW5jdGlvbigpe3JldHVybiBsfSxuMjpmdW5jdGlvbigpe3JldHVybiBYfSxvSDpmdW5jdGlvbigpe3JldHVybiBpfSxwWDpmdW5jdGlvbigpe3JldHVybiBIfSxzRjpmdW5jdGlvbigpe3JldHVybiBBfX0pO3ZhciBaPWUoMTUwMDkpLG89ZS5uKFopLEc9ZSg5Nzg1NyksYT1lLm4oRyksaz1lKDk5Mjg5KSxGPWUubihrKSxMPWUoNzY3NzIpLHU9ZSgzMzg2Nyksaj1lKDMwOTY0KTtmdW5jdGlvbiBsKGgpe3JldHVybiBtLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBtKCl7cmV0dXJuIG09RigpKG8oKSgpLm1hcmsoZnVuY3Rpb24gaChQKXtyZXR1cm4gbygpKCkud3JhcChmdW5jdGlvbihyKXtmb3IoOzspc3dpdGNoKHIucHJldj1yLm5leHQpe2Nhc2UgMDpyZXR1cm4gci5hYnJ1cHQoInJldHVybiIsKDAsTC5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vZGljdC90eXBlL2xpc3QiLHtwYXJhbXM6YSgpKHt9LFApLG1ldGhvZDoiR0VUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In19KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gci5zdG9wKCl9fSxoKX0pKSxtLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBCKGgpe3JldHVybigwLEwucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RpY3QvdHlwZS8iLmNvbmNhdChoKSx7bWV0aG9kOiJHRVQifSl9ZnVuY3Rpb24gSChoLFApe3JldHVybiBmLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBmKCl7cmV0dXJuIGY9RigpKG8oKSgpLm1hcmsoZnVuY3Rpb24gaChQLFcpe3ZhciByLCQ7cmV0dXJuIG8oKSgpLndyYXAoZnVuY3Rpb24oRCl7Zm9yKDs7KXN3aXRjaChELnByZXY9RC5uZXh0KXtjYXNlIDA6cmV0dXJuIEQubmV4dD0yLCgwLEwucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RpY3QvZGF0YS90eXBlLyIuY29uY2F0KFApLHttZXRob2Q6IkdFVCJ9KTtjYXNlIDI6aWYocj1ELnNlbnQsci5jb2RlIT09dS5pSy5TVUNDRVNTKXtELm5leHQ9OTticmVha31yZXR1cm4gJD17fSxyLmRhdGEuZm9yRWFjaChmdW5jdGlvbihiKXskW2IuZGljdFZhbHVlXT17dGV4dDpiLmRpY3RMYWJlbCxsYWJlbDpiLmRpY3RMYWJlbCx2YWx1ZTpXP051bWJlcihiLmRpY3RWYWx1ZSk6Yi5kaWN0VmFsdWUsa2V5OmIuZGljdENvZGUsbGlzdENsYXNzOmIubGlzdENsYXNzLHN0YXR1czpiLmxpc3RDbGFzc319KSxELmFicnVwdCgicmV0dXJuIiwkKTtjYXNlIDk6cmV0dXJuIEQuYWJydXB0KCJyZXR1cm4iLHt9KTtjYXNlIDEwOmNhc2UiZW5kIjpyZXR1cm4gRC5zdG9wKCl9fSxoKX0pKSxmLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBVKGgsUCl7cmV0dXJuIG4uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIG4oKXtyZXR1cm4gbj1GKCkobygpKCkubWFyayhmdW5jdGlvbiBoKFAsVyl7dmFyIHIsJDtyZXR1cm4gbygpKCkud3JhcChmdW5jdGlvbihEKXtmb3IoOzspc3dpdGNoKEQucHJldj1ELm5leHQpe2Nhc2UgMDpyZXR1cm4gRC5uZXh0PTIsKDAsTC5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vZGljdC9kYXRhL3R5cGUvIi5jb25jYXQoUCkse21ldGhvZDoiR0VUIn0pO2Nhc2UgMjppZihyPUQuc2VudCxyLmNvZGUhPT0yMDApe0QubmV4dD02O2JyZWFrfXJldHVybiAkPXIuZGF0YS5tYXAoZnVuY3Rpb24oYil7cmV0dXJue3RleHQ6Yi5kaWN0TGFiZWwsbGFiZWw6Yi5kaWN0TGFiZWwsdmFsdWU6Vz9OdW1iZXIoYi5kaWN0VmFsdWUpOmIuZGljdFZhbHVlLGtleTpiLmRpY3RDb2RlLGxpc3RDbGFzczpiLmxpc3RDbGFzcyxzdGF0dXM6Yi5saXN0Q2xhc3N9fSksRC5hYnJ1cHQoInJldHVybiIsJCk7Y2FzZSA2OnJldHVybiBELmFicnVwdCgicmV0dXJuIixbXSk7Y2FzZSA3OmNhc2UiZW5kIjpyZXR1cm4gRC5zdG9wKCl9fSxoKX0pKSxuLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBpKGgpe3JldHVybiBTLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBTKCl7cmV0dXJuIFM9RigpKG8oKSgpLm1hcmsoZnVuY3Rpb24gaChQKXtyZXR1cm4gbygpKCkud3JhcChmdW5jdGlvbihyKXtmb3IoOzspc3dpdGNoKHIucHJldj1yLm5leHQpe2Nhc2UgMDpyZXR1cm4gci5hYnJ1cHQoInJldHVybiIsKDAsTC5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vZGljdC90eXBlIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In0sZGF0YTpQfSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIHIuc3RvcCgpfX0saCl9KSksUy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24geChoKXtyZXR1cm4gXy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gXygpe3JldHVybiBfPUYoKShvKCkoKS5tYXJrKGZ1bmN0aW9uIGgoUCl7cmV0dXJuIG8oKSgpLndyYXAoZnVuY3Rpb24ocil7Zm9yKDs7KXN3aXRjaChyLnByZXY9ci5uZXh0KXtjYXNlIDA6cmV0dXJuIHIuYWJydXB0KCJyZXR1cm4iLCgwLEwucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RpY3QvdHlwZSIse21ldGhvZDoiUFVUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In0sZGF0YTpQfSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIHIuc3RvcCgpfX0saCl9KSksXy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gQShoKXtyZXR1cm4gSy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gSygpe3JldHVybiBLPUYoKShvKCkoKS5tYXJrKGZ1bmN0aW9uIGgoUCl7cmV0dXJuIG8oKSgpLndyYXAoZnVuY3Rpb24ocil7Zm9yKDs7KXN3aXRjaChyLnByZXY9ci5uZXh0KXtjYXNlIDA6cmV0dXJuIHIuYWJydXB0KCJyZXR1cm4iLCgwLEwucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RpY3QvdHlwZS8iLmNvbmNhdChQKSx7bWV0aG9kOiJERUxFVEUifSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIHIuc3RvcCgpfX0saCl9KSksSy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gWChoKXtyZXR1cm4oMCxqLnN1KSgiL2FwaS9zeXN0ZW0vZGljdC90eXBlL2V4cG9ydCIse3BhcmFtczpofSwiZGljdF90eXBlXyIuY29uY2F0KG5ldyBEYXRlKCkuZ2V0VGltZSgpLCIueGxzeCIpKX1mdW5jdGlvbiB0ZShoKXtyZXR1cm4gQy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gQygpe3JldHVybiBDPUYoKShvKCkoKS5tYXJrKGZ1bmN0aW9uIGgoUCl7cmV0dXJuIG8oKSgpLndyYXAoZnVuY3Rpb24ocil7Zm9yKDs7KXN3aXRjaChyLnByZXY9ci5uZXh0KXtjYXNlIDA6cmV0dXJuIHIuYWJydXB0KCJyZXR1cm4iLCgwLEwucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RpY3QvdHlwZS9vcHRpb25zZWxlY3QiLHtwYXJhbXM6YSgpKHt9LFApLG1ldGhvZDoiR0VUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In19KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gci5zdG9wKCl9fSxoKX0pKSxDLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19LDMwOTY0OmZ1bmN0aW9uKGFlLEksZSl7ZS5kKEkse3A2OmZ1bmN0aW9uKCl7cmV0dXJuIGx9LHN1OmZ1bmN0aW9uKCl7cmV0dXJuIG19fSk7dmFyIFo9ZSgxNTAwOSksbz1lLm4oWiksRz1lKDk3ODU3KSxhPWUubihHKSxrPWUoOTkyODkpLEY9ZS5uKGspLEw9ZSg3Njc3MiksdT17eGxzeDoiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQiLHppcDoiYXBwbGljYXRpb24vemlwIn07ZnVuY3Rpb24gaihmLFUpe3ZhciBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKSxpPW5ldyBCbG9iKFtmLmRhdGFdLHt0eXBlOlV9KSxTPW5ldyBSZWdFeHAoImZpbGVuYW1lPShbXjtdK1xcLlteXFwuO10rKTsqIikseD1kZWNvZGVVUkkoZi5oZWFkZXJzWyJjb250ZW50LWRpc3Bvc2l0aW9uIl0pLF89Uy5leGVjKHgpLEE9Xz9fWzFdOiJmaWxlIjtBPUEucmVwbGFjZSgvIi9nLCIiKSxuLnN0eWxlLmRpc3BsYXk9Im5vbmUiLG4uaHJlZj1VUkwuY3JlYXRlT2JqZWN0VVJMKGkpLG4uc2V0QXR0cmlidXRlKCJkb3dubG9hZCIsQSksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChuKSxuLmNsaWNrKCksVVJMLnJldm9rZU9iamVjdFVSTChuLmhyZWYpLGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQobil9ZnVuY3Rpb24gbChmKXsoMCxMLnJlcXVlc3QpKGYse21ldGhvZDoiR0VUIixyZXNwb25zZVR5cGU6ImJsb2IiLGdldFJlc3BvbnNlOiEwfSkudGhlbihmdW5jdGlvbihVKXtqKFUsdS56aXApfSl9ZnVuY3Rpb24gbShmLFUsbil7cmV0dXJuIEIuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEIoKXtyZXR1cm4gQj1GKCkobygpKCkubWFyayhmdW5jdGlvbiBmKFUsbixpKXtyZXR1cm4gbygpKCkud3JhcChmdW5jdGlvbih4KXtmb3IoOzspc3dpdGNoKHgucHJldj14Lm5leHQpe2Nhc2UgMDpyZXR1cm4geC5hYnJ1cHQoInJldHVybiIsKDAsTC5yZXF1ZXN0KShVLGEoKShhKCkoe30sbikse30se21ldGhvZDoiUE9TVCIscmVzcG9uc2VUeXBlOiJibG9iIn0pKS50aGVuKGZ1bmN0aW9uKF8pe3ZhciBBPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKSxLPV87QS5zdHlsZS5kaXNwbGF5PSJub25lIixBLmhyZWY9VVJMLmNyZWF0ZU9iamVjdFVSTChLKSxBLnNldEF0dHJpYnV0ZSgiZG93bmxvYWQiLGkpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoQSksQS5jbGljaygpLFVSTC5yZXZva2VPYmplY3RVUkwoQS5ocmVmKSxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKEEpfSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIHguc3RvcCgpfX0sZil9KSksQi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gSChmKXt3aW5kb3cubG9jYXRpb24uaHJlZj0iL2FwaS9jb21tb24vZG93bmxvYWQ/ZmlsZU5hbWU9Ii5jb25jYXQoZW5jb2RlVVJJKGYpLCImZGVsZXRlPSIsITApfX19XSk7CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljL3BfX1N5c3RlbV9fUm9sZV9fYXV0aFVzZXIuNjQ1YmQ3ODUuYXN5bmMuanMgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljL3BfX1N5c3RlbV9fUm9sZV9fYXV0aFVzZXIuNjQ1YmQ3ODUuYXN5bmMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTRkYzEwYgotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvcF9fU3lzdGVtX19Sb2xlX19hdXRoVXNlci42NDViZDc4NS5hc3luYy5qcwpAQCAtMCwwICsxIEBACisidXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W10pLnB1c2goW1s2ODMxXSx7OTE2MzE6ZnVuY3Rpb24obmUsVyxlKXtlLnIoVyk7dmFyIFo9ZSg5Nzg1NyksbT1lLm4oWikseD1lKDU1NzQpLEQ9ZS5uKHgpLEI9ZSgxNTAwOSksdD1lLm4oQiksdz1lKDk5Mjg5KSxmPWUubih3KSxQPWUoNjcyOTQpLF89ZSg3Njc3MiksZD1lKDI0NTMpLFQ9ZSg4MzYyMiksSz1lKDE3Nzg4KSxqPWUoNjExMCksJD1lKDY1Mzg1KSxiPWUoNDg2ODkpLEg9ZSgyNDk2OSksRz1lKDExNDc1KSxOPWUoNzE5NjUpLE89ZSgzNzU2Myksej1lKDkyOTgyKSxWPWUoOTQxNjIpLGs9ZSgyNTQ2NCksWT1lKDMzODY3KSxuPWUoODU4OTMpLEo9ZnVuY3Rpb24oKXt2YXIgRT1mKCkodCgpKCkubWFyayhmdW5jdGlvbiBzKHYsTSl7dmFyIGgsYyx5O3JldHVybiB0KCkoKS53cmFwKGZ1bmN0aW9uKGwpe2Zvcig7Oylzd2l0Y2gobC5wcmV2PWwubmV4dCl7Y2FzZSAwOmlmKGg9ZC5aUC5sb2FkaW5nKCJcdTZCNjNcdTU3MjhcdTUzRDZcdTZEODhcdTYzODhcdTY3NDMiKSxNKXtsLm5leHQ9MzticmVha31yZXR1cm4gbC5hYnJ1cHQoInJldHVybiIsITApO2Nhc2UgMzpyZXR1cm4gbC5wcmV2PTMsYz1NLm1hcChmdW5jdGlvbihTKXtyZXR1cm4gUy51c2VySWR9KS5qb2luKCIsIiksbC5uZXh0PTcsKDAsTy5MQSkoe3JvbGVJZDp2LHVzZXJJZHM6Y30pO2Nhc2UgNzpyZXR1cm4geT1sLnNlbnQsaCgpLHkuY29kZT09PTIwMD9kLlpQLnN1Y2Nlc3MoIlx1NTNENlx1NkQ4OFx1NjM4OFx1Njc0M1x1NjIxMFx1NTI5Rlx1RkYwQ1x1NTM3M1x1NUMwNlx1NTIzN1x1NjVCMCIpOmQuWlAuZXJyb3IoeS5tc2cpLGwuYWJydXB0KCJyZXR1cm4iLCEwKTtjYXNlIDEzOnJldHVybiBsLnByZXY9MTMsbC50MD1sLmNhdGNoKDMpLGgoKSxkLlpQLmVycm9yKCJcdTUzRDZcdTZEODhcdTYzODhcdTY3NDNcdTU5MzFcdThEMjVcdUZGMENcdThCRjdcdTkxQ0RcdThCRDUiKSxsLmFicnVwdCgicmV0dXJuIiwhMSk7Y2FzZSAxODpjYXNlImVuZCI6cmV0dXJuIGwuc3RvcCgpfX0scyxudWxsLFtbMywxM11dKX0pKTtyZXR1cm4gZnVuY3Rpb24odixNKXtyZXR1cm4gRS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLHI9ZnVuY3Rpb24oKXt2YXIgRT1mKCkodCgpKCkubWFyayhmdW5jdGlvbiBzKHYsTSl7dmFyIGgsYztyZXR1cm4gdCgpKCkud3JhcChmdW5jdGlvbihvKXtmb3IoOzspc3dpdGNoKG8ucHJldj1vLm5leHQpe2Nhc2UgMDpyZXR1cm4gaD1kLlpQLmxvYWRpbmcoIlx1NkI2M1x1NTcyOFx1NTNENlx1NkQ4OFx1NjM4OFx1Njc0MyIpLG8ucHJldj0xLG8ubmV4dD00LCgwLE8uQ0UpKHt1c2VySWQ6TSxyb2xlSWQ6dn0pO2Nhc2UgNDpyZXR1cm4gYz1vLnNlbnQsaCgpLGMuY29kZT09PTIwMD9kLlpQLnN1Y2Nlc3MoIlx1NTNENlx1NkQ4OFx1NjM4OFx1Njc0M1x1NjIxMFx1NTI5Rlx1RkYwQ1x1NTM3M1x1NUMwNlx1NTIzN1x1NjVCMCIpOmQuWlAuZXJyb3IoYy5tc2cpLG8uYWJydXB0KCJyZXR1cm4iLCEwKTtjYXNlIDEwOnJldHVybiBvLnByZXY9MTAsby50MD1vLmNhdGNoKDEpLGgoKSxkLlpQLmVycm9yKCJcdTUzRDZcdTZEODhcdTYzODhcdTY3NDNcdTU5MzFcdThEMjVcdUZGMENcdThCRjdcdTkxQ0RcdThCRDUiKSxvLmFicnVwdCgicmV0dXJuIiwhMSk7Y2FzZSAxNTpjYXNlImVuZCI6cmV0dXJuIG8uc3RvcCgpfX0scyxudWxsLFtbMSwxMF1dKX0pKTtyZXR1cm4gZnVuY3Rpb24odixNKXtyZXR1cm4gRS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLHA9ZnVuY3Rpb24oKXt2YXIgcz0oMCxQLnVzZVN0YXRlKSghMSksdj1EKCkocywyKSxNPXZbMF0saD12WzFdLGM9KDAsUC51c2VSZWYpKCkseT0oMCxQLnVzZVN0YXRlKShbXSksbz1EKCkoeSwyKSxsPW9bMF0sUz1vWzFdLHNlPSgwLFAudXNlU3RhdGUpKFtdKSxxPUQoKShzZSwyKSxlZT1xWzBdLGFlPXFbMV0sWD0oMCxfLnVzZUFjY2VzcykoKSx1ZT0oMCxfLnVzZUludGwpKCkscmU9KDAsXy51c2VQYXJhbXMpKCk7cmUuaWQ9PT12b2lkIDAmJl8uaGlzdG9yeS5iYWNrKCk7dmFyIEM9cmUuaWR8fCIwIjsoMCxQLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXsoMCx6LnBYKSgic3lzX25vcm1hbF9kaXNhYmxlIikudGhlbihmdW5jdGlvbihnKXthZShnKX0pfSxbXSk7dmFyIGxlPVt7dGl0bGU6KDAsbi5qc3gpKF8uRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InN5c3RlbS51c2VyLnVzZXJfaWQiLGRlZmF1bHRNZXNzYWdlOiJcdTc1MjhcdTYyMzdcdTdGMTZcdTUzRjcifSksZGF0YUluZGV4OiJkZXB0SWQiLHZhbHVlVHlwZToidGV4dCJ9LHt0aXRsZTooMCxuLmpzeCkoXy5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoic3lzdGVtLnVzZXIudXNlcl9uYW1lIixkZWZhdWx0TWVzc2FnZToiXHU3NTI4XHU2MjM3XHU4RDI2XHU1M0Y3In0pLGRhdGFJbmRleDoidXNlck5hbWUiLHZhbHVlVHlwZToidGV4dCJ9LHt0aXRsZTooMCxuLmpzeCkoXy5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoic3lzdGVtLnVzZXIubmlja19uYW1lIixkZWZhdWx0TWVzc2FnZToiXHU3NTI4XHU2MjM3XHU2NjM1XHU3OUYwIn0pLGRhdGFJbmRleDoibmlja05hbWUiLHZhbHVlVHlwZToidGV4dCJ9LHt0aXRsZTooMCxuLmpzeCkoXy5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoic3lzdGVtLnVzZXIucGhvbmVudW1iZXIiLGRlZmF1bHRNZXNzYWdlOiJcdTYyNEJcdTY3M0FcdTUzRjdcdTc4MDEifSksZGF0YUluZGV4OiJwaG9uZW51bWJlciIsdmFsdWVUeXBlOiJ0ZXh0In0se3RpdGxlOigwLG4uanN4KShfLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJzeXN0ZW0ucm9sZS5jcmVhdGVfdGltZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NTIxQlx1NUVGQVx1NjVGNlx1OTVGNCJ9KSxkYXRhSW5kZXg6ImNyZWF0ZVRpbWUiLHZhbHVlVHlwZToiZGF0ZVJhbmdlIixyZW5kZXI6ZnVuY3Rpb24oaSxhKXtyZXR1cm4oMCxuLmpzeHMpKCJzcGFuIix7Y2hpbGRyZW46W2EuY3JlYXRlVGltZS50b1N0cmluZygpLCIgIl19KX0saGlkZUluU2VhcmNoOiEwfSx7dGl0bGU6KDAsbi5qc3gpKF8uRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InN5c3RlbS51c2VyLnN0YXR1cyIsZGVmYXVsdE1lc3NhZ2U6Ilx1NUUxMFx1NTNGN1x1NzJCNlx1NjAwMSJ9KSxkYXRhSW5kZXg6InN0YXR1cyIsdmFsdWVUeXBlOiJzZWxlY3QiLHZhbHVlRW51bTplZSxyZW5kZXI6ZnVuY3Rpb24oaSxhKXtyZXR1cm4oMCxuLmpzeCkoVi5aLHtlbnVtczplZSx2YWx1ZTphLnN0YXR1c30pfX0se3RpdGxlOigwLG4uanN4KShfLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJwYWdlcy5zZWFyY2hUYWJsZS50aXRsZU9wdGlvbiIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjRDRFx1NEY1QyJ9KSxkYXRhSW5kZXg6Im9wdGlvbiIsd2lkdGg6IjYwcHgiLHZhbHVlVHlwZToib3B0aW9uIixyZW5kZXI6ZnVuY3Rpb24oaSxhKXtyZXR1cm5bKDAsbi5qc3gpKFQuWlAse3R5cGU6ImxpbmsiLHNpemU6InNtYWxsIixkYW5nZXI6ITAsaWNvbjooMCxuLmpzeCkoYi5aLHt9KSxoaWRkZW46IVguaGFzUGVybXMoInN5c3RlbTpyb2xlOnJlbW92ZSIpLG9uQ2xpY2s6ZigpKHQoKSgpLm1hcmsoZnVuY3Rpb24gdSgpe3JldHVybiB0KCkoKS53cmFwKGZ1bmN0aW9uKEkpe2Zvcig7Oylzd2l0Y2goSS5wcmV2PUkubmV4dCl7Y2FzZSAwOksuWi5jb25maXJtKHt0aXRsZToiXHU1MjIwXHU5NjY0Iixjb250ZW50OiJcdTc4NkVcdThCQTRcdTg5ODFcdTUzRDZcdTZEODhcdThCRTVcdTc1MjhcdTYyMzciK2EudXNlck5hbWUrJyJcdTg5RDJcdTgyNzJcdTYzODhcdTY3NDNcdTU0MTdcdUZGMUYnLG9rVGV4dDoiXHU3ODZFXHU4QkE0IixjYW5jZWxUZXh0OiJcdTUzRDZcdTZEODgiLG9uT2s6ZnVuY3Rpb24oKXt2YXIgRj1mKCkodCgpKCkubWFyayhmdW5jdGlvbiBVKCl7dmFyIFE7cmV0dXJuIHQoKSgpLndyYXAoZnVuY3Rpb24oTCl7Zm9yKDs7KXN3aXRjaChMLnByZXY9TC5uZXh0KXtjYXNlIDA6cmV0dXJuIEwubmV4dD0yLHIoQyxhLnVzZXJJZCk7Y2FzZSAyOlE9TC5zZW50LFEmJmMuY3VycmVudCYmYy5jdXJyZW50LnJlbG9hZCgpO2Nhc2UgNDpjYXNlImVuZCI6cmV0dXJuIEwuc3RvcCgpfX0sVSl9KSk7ZnVuY3Rpb24gQSgpe3JldHVybiBGLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gQX0oKX0pO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIEkuc3RvcCgpfX0sdSl9KSksY2hpbGRyZW46Ilx1NTNENlx1NkQ4OFx1NjM4OFx1Njc0MyJ9LCJyZW1vdmUiKV19fV07cmV0dXJuKDAsbi5qc3hzKShqLl96LHtjaGlsZHJlbjpbKDAsbi5qc3gpKCJkaXYiLHtzdHlsZTp7d2lkdGg6IjEwMCUiLGZsb2F0OiJyaWdodCJ9LGNoaWxkcmVuOigwLG4uanN4KSgkLlose2hlYWRlclRpdGxlOnVlLmZvcm1hdE1lc3NhZ2Uoe2lkOiJwYWdlcy5zZWFyY2hUYWJsZS50aXRsZSIsZGVmYXVsdE1lc3NhZ2U6Ilx1NEZFMVx1NjA2RiJ9KSxhY3Rpb25SZWY6Yyxyb3dLZXk6InVzZXJJZCIsc2VhcmNoOntsYWJlbFdpZHRoOjEyMH0sdG9vbEJhclJlbmRlcjpmdW5jdGlvbigpe3JldHVyblsoMCxuLmpzeHMpKFQuWlAse3R5cGU6InByaW1hcnkiLGhpZGRlbjohWC5oYXNQZXJtcygic3lzdGVtOnJvbGU6YWRkIiksb25DbGljazpmKCkodCgpKCkubWFyayhmdW5jdGlvbiBpKCl7cmV0dXJuIHQoKSgpLndyYXAoZnVuY3Rpb24odSl7Zm9yKDs7KXN3aXRjaCh1LnByZXY9dS5uZXh0KXtjYXNlIDA6aCghMCk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gdS5zdG9wKCl9fSxpKX0pKSxjaGlsZHJlbjpbKDAsbi5qc3gpKEguWix7fSksIiAiLCgwLG4uanN4KShfLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJzeXN0ZW0ucm9sZS5hdXRoLmFkZFVzZXIiLGRlZmF1bHRNZXNzYWdlOiJcdTZERkJcdTUyQTBcdTc1MjhcdTYyMzcifSldfSwiYWRkIiksKDAsbi5qc3hzKShULlpQLHt0eXBlOiJwcmltYXJ5IixkYW5nZXI6ITAsaGlkZGVuOihsPT1udWxsP3ZvaWQgMDpsLmxlbmd0aCk9PT0wfHwhWC5oYXNQZXJtcygic3lzdGVtOnJvbGU6cmVtb3ZlIiksb25DbGljazpmKCkodCgpKCkubWFyayhmdW5jdGlvbiBpKCl7cmV0dXJuIHQoKSgpLndyYXAoZnVuY3Rpb24odSl7Zm9yKDs7KXN3aXRjaCh1LnByZXY9dS5uZXh0KXtjYXNlIDA6Sy5aLmNvbmZpcm0oe3RpdGxlOiJcdTY2MkZcdTU0MjZcdTc4NkVcdThCQTRcdTUyMjBcdTk2NjRcdTYyNDBcdTkwMDlcdTY1NzBcdTYzNkVcdTk4Nzk/IixpY29uOigwLG4uanN4KShHLlose30pLGNvbnRlbnQ6Ilx1OEJGN1x1OEMyOFx1NjE0RVx1NjRDRFx1NEY1QyIsb25PazpmdW5jdGlvbigpe3JldHVybiBmKCkodCgpKCkubWFyayhmdW5jdGlvbiBJKCl7dmFyIEYsQSxVO3JldHVybiB0KCkoKS53cmFwKGZ1bmN0aW9uKFIpe2Zvcig7Oylzd2l0Y2goUi5wcmV2PVIubmV4dCl7Y2FzZSAwOnJldHVybiBSLm5leHQ9MixKKEMsbCk7Y2FzZSAyOkY9Ui5zZW50LEYmJihTKFtdKSwoQT1jLmN1cnJlbnQpPT09bnVsbHx8QT09PXZvaWQgMHx8KFU9QS5yZWxvYWRBbmRSZXN0KT09PW51bGx8fFU9PT12b2lkIDB8fFUuY2FsbChBKSk7Y2FzZSA0OmNhc2UiZW5kIjpyZXR1cm4gUi5zdG9wKCl9fSxJKX0pKSgpfSxvbkNhbmNlbDpmdW5jdGlvbigpe319KTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiB1LnN0b3AoKX19LGkpfSkpLGNoaWxkcmVuOlsoMCxuLmpzeCkoYi5aLHt9KSwoMCxuLmpzeCkoXy5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoic3lzdGVtLnJvbGUuYXV0aC5jYW5jZWxBbGwiLGRlZmF1bHRNZXNzYWdlOiJcdTYyNzlcdTkxQ0ZcdTUzRDZcdTZEODhcdTYzODhcdTY3NDMifSldfSwicmVtb3ZlIiksKDAsbi5qc3hzKShULlpQLHt0eXBlOiJwcmltYXJ5IixvbkNsaWNrOmYoKSh0KCkoKS5tYXJrKGZ1bmN0aW9uIGkoKXtyZXR1cm4gdCgpKCkud3JhcChmdW5jdGlvbih1KXtmb3IoOzspc3dpdGNoKHUucHJldj11Lm5leHQpe2Nhc2UgMDpfLmhpc3RvcnkuYmFjaygpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIHUuc3RvcCgpfX0saSl9KSksY2hpbGRyZW46WygwLG4uanN4KShOLlose30pLCgwLG4uanN4KShfLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJwYWdlcy5nb2JhY2siLGRlZmF1bHRNZXNzYWdlOiJcdThGRDRcdTU2REUifSldfSwiYmFjayIpXX0scmVxdWVzdDpmdW5jdGlvbihpKXtyZXR1cm4oMCxPLmlIKShtKCkobSgpKHt9LGkpLHt9LHtyb2xlSWQ6Q30pKS50aGVuKGZ1bmN0aW9uKGEpe3ZhciB1PXtkYXRhOmEucm93cyx0b3RhbDphLnRvdGFsLHN1Y2Nlc3M6ITB9O3JldHVybiB1fSl9LGNvbHVtbnM6bGUscm93U2VsZWN0aW9uOntvbkNoYW5nZTpmdW5jdGlvbihpLGEpe1MoYSl9fX0sInVzZXJMaXN0Iil9KSwoMCxuLmpzeCkoay5kZWZhdWx0LHtvcGVuOk0sb25TdWJtaXQ6ZnVuY3Rpb24oaSl7dmFyIGE9aS5qb2luKCIsIik7aWYoYT09PSIiKXtkLlpQLndhcm5pbmcoIlx1OEJGN1x1OTAwOVx1NjJFOVx1ODk4MVx1NTIwNlx1OTE0RFx1NzY4NFx1NzUyOFx1NjIzNyIpO3JldHVybn0oMCxPLmRZKSh7cm9sZUlkOkMsdXNlcklkczphfSkudGhlbihmdW5jdGlvbih1KXt1LmNvZGU9PT1ZLmlLLlNVQ0NFU1M/KGQuWlAuc3VjY2VzcygiXHU2NkY0XHU2NUIwXHU2MjEwXHU1MjlGXHVGRjAxIiksYy5jdXJyZW50JiZjLmN1cnJlbnQucmVsb2FkKCkpOmQuWlAud2FybmluZyh1Lm1zZyl9KSxoKCExKX0sb25DYW5jZWw6ZnVuY3Rpb24oKXtoKCExKX0scGFyYW1zOntyb2xlSWQ6Q30scmVxdWVzdDpmdW5jdGlvbihpKXtyZXR1cm4oMCxPLnA3KShtKCkoe30saSkpLnRoZW4oZnVuY3Rpb24oYSl7dmFyIHU9e2RhdGE6YS5yb3dzLHRvdGFsOmEucm93cy5sZW5ndGgsc3VjY2VzczohMH07cmV0dXJuIHV9KX19KV19KX07Vy5kZWZhdWx0PXB9LDM3NTYzOmZ1bmN0aW9uKG5lLFcsZSl7ZS5kKFcse0NFOmZ1bmN0aW9uKCl7cmV0dXJuIGt9LEpWOmZ1bmN0aW9uKCl7cmV0dXJuIGZ9LExBOmZ1bmN0aW9uKCl7cmV0dXJuIFl9LExwOmZ1bmN0aW9uKCl7cmV0dXJuIEh9LFZsOmZ1bmN0aW9uKCl7cmV0dXJuIEp9LF9kOmZ1bmN0aW9uKCl7cmV0dXJuIGR9LGNZOmZ1bmN0aW9uKCl7cmV0dXJuIF99LGRZOmZ1bmN0aW9uKCl7cmV0dXJuIG59LGlIOmZ1bmN0aW9uKCl7cmV0dXJuIHp9LGw1OmZ1bmN0aW9uKCl7cmV0dXJuICR9LG1qOmZ1bmN0aW9uKCl7cmV0dXJuIEd9LHA3OmZ1bmN0aW9uKCl7cmV0dXJuIFZ9LHNwOmZ1bmN0aW9uKCl7cmV0dXJuIE99LHRtOmZ1bmN0aW9uKCl7cmV0dXJuIE59LHVsOmZ1bmN0aW9uKCl7cmV0dXJuIEt9fSk7dmFyIFo9ZSgxNTAwOSksbT1lLm4oWikseD1lKDk5Mjg5KSxEPWUubih4KSxCPWUoMzM4NjcpLHQ9ZSg3Njc3Miksdz1lKDMwOTY0KTtmdW5jdGlvbiBmKHIpe3JldHVybiBQLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBQKCl7cmV0dXJuIFA9RCgpKG0oKSgpLm1hcmsoZnVuY3Rpb24gcihwKXtyZXR1cm4gbSgpKCkud3JhcChmdW5jdGlvbihzKXtmb3IoOzspc3dpdGNoKHMucHJldj1zLm5leHQpe2Nhc2UgMDpyZXR1cm4gcy5hYnJ1cHQoInJldHVybiIsKDAsdC5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vcm9sZS9saXN0Iix7bWV0aG9kOiJHRVQiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOkIuemMuRk9STV9VUkxFTkNPREVEfSxwYXJhbXM6cH0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBzLnN0b3AoKX19LHIpfSkpLFAuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIF8ocil7cmV0dXJuKDAsdC5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vcm9sZS8iLmNvbmNhdChyKSx7bWV0aG9kOiJHRVQifSl9ZnVuY3Rpb24gZChyKXtyZXR1cm4gVC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gVCgpe3JldHVybiBUPUQoKShtKCkoKS5tYXJrKGZ1bmN0aW9uIHIocCl7cmV0dXJuIG0oKSgpLndyYXAoZnVuY3Rpb24ocyl7Zm9yKDs7KXN3aXRjaChzLnByZXY9cy5uZXh0KXtjYXNlIDA6cmV0dXJuIHMuYWJydXB0KCJyZXR1cm4iLCgwLHQucmVxdWVzdCkoIi9hcGkvc3lzdGVtL3JvbGUiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgifSxkYXRhOnB9KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gcy5zdG9wKCl9fSxyKX0pKSxULmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBLKHIpe3JldHVybiBqLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBqKCl7cmV0dXJuIGo9RCgpKG0oKSgpLm1hcmsoZnVuY3Rpb24gcihwKXtyZXR1cm4gbSgpKCkud3JhcChmdW5jdGlvbihzKXtmb3IoOzspc3dpdGNoKHMucHJldj1zLm5leHQpe2Nhc2UgMDpyZXR1cm4gcy5hYnJ1cHQoInJldHVybiIsKDAsdC5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vcm9sZSIse21ldGhvZDoiUFVUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In0sZGF0YTpwfSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIHMuc3RvcCgpfX0scil9KSksai5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gJChyKXtyZXR1cm4gYi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gYigpe3JldHVybiBiPUQoKShtKCkoKS5tYXJrKGZ1bmN0aW9uIHIocCl7cmV0dXJuIG0oKSgpLndyYXAoZnVuY3Rpb24ocyl7Zm9yKDs7KXN3aXRjaChzLnByZXY9cy5uZXh0KXtjYXNlIDA6cmV0dXJuIHMuYWJydXB0KCJyZXR1cm4iLCgwLHQucmVxdWVzdCkoIi9hcGkvc3lzdGVtL3JvbGUvIi5jb25jYXQocCkse21ldGhvZDoiREVMRVRFIn0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBzLnN0b3AoKX19LHIpfSkpLGIuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEgocil7cmV0dXJuKDAsdy5zdSkoIi9hcGkvc3lzdGVtL3JvbGUvZXhwb3J0Iix7cGFyYW1zOnJ9LCJyb2xlXyIuY29uY2F0KG5ldyBEYXRlKCkuZ2V0VGltZSgpLCIueGxzeCIpKX1mdW5jdGlvbiBHKHIpe3JldHVybigwLHQucmVxdWVzdCkoIi9hcGkvc3lzdGVtL21lbnUvcm9sZU1lbnVUcmVlc2VsZWN0LyIuY29uY2F0KHIpLHttZXRob2Q6ImdldCJ9KX1mdW5jdGlvbiBOKHIpe3JldHVybigwLHQucmVxdWVzdCkoIi9hcGkvc3lzdGVtL3JvbGUvZGF0YVNjb3BlIix7bWV0aG9kOiJwdXQiLGRhdGE6cn0pfWZ1bmN0aW9uIE8ocixwKXt2YXIgRT17cm9sZUlkOnIsc3RhdHVzOnB9O3JldHVybigwLHQucmVxdWVzdCkoIi9hcGkvc3lzdGVtL3JvbGUvY2hhbmdlU3RhdHVzIix7bWV0aG9kOiJwdXQiLGRhdGE6RX0pfWZ1bmN0aW9uIHoocil7cmV0dXJuKDAsdC5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vcm9sZS9hdXRoVXNlci9hbGxvY2F0ZWRMaXN0Iix7bWV0aG9kOiJnZXQiLHBhcmFtczpyfSl9ZnVuY3Rpb24gVihyKXtyZXR1cm4oMCx0LnJlcXVlc3QpKCIvYXBpL3N5c3RlbS9yb2xlL2F1dGhVc2VyL3VuYWxsb2NhdGVkTGlzdCIse21ldGhvZDoiZ2V0IixwYXJhbXM6cn0pfWZ1bmN0aW9uIGsocil7cmV0dXJuKDAsdC5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vcm9sZS9hdXRoVXNlci9jYW5jZWwiLHttZXRob2Q6InB1dCIsZGF0YTpyfSl9ZnVuY3Rpb24gWShyKXtyZXR1cm4oMCx0LnJlcXVlc3QpKCIvYXBpL3N5c3RlbS9yb2xlL2F1dGhVc2VyL2NhbmNlbEFsbCIse21ldGhvZDoicHV0IixwYXJhbXM6cn0pfWZ1bmN0aW9uIG4ocil7cmV0dXJuKDAsdC5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vcm9sZS9hdXRoVXNlci9zZWxlY3RBbGwiLHttZXRob2Q6InB1dCIscGFyYW1zOnIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6Qi56Yy5GT1JNX1VSTEVOQ09ERUR9fSl9ZnVuY3Rpb24gSihyKXtyZXR1cm4oMCx0LnJlcXVlc3QpKCIvYXBpL3N5c3RlbS9yb2xlL2RlcHRUcmVlLyIrcix7bWV0aG9kOiJnZXQifSl9fX1dKTsKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvcF9fVG9vbF9fR2VuX19lZGl0LjkyZmQ1MmM1LmFzeW5jLmpzIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy9wX19Ub29sX19HZW5fX2VkaXQuOTJmZDUyYzUuYXN5bmMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGI5NmU4ZgotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvcF9fVG9vbF9fR2VuX19lZGl0LjkyZmQ1MmM1LmFzeW5jLmpzCkBAIC0wLDAgKzEgQEAKKyJ1c2Ugc3RyaWN0Ijsoc2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Bybz1zZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvfHxbXSkucHVzaChbWzcxNDQsNzYyOSwyNTMxXSx7OTA2NzI6ZnVuY3Rpb24ocSxVLG4pe3ZhciBGPW4oMTQxMyksXz1uKDkxKSxSPW4oNjcyOTQpLHU9big5MjE3OSksUD1uKDg1ODkzKSxsPVsiZmllbGRQcm9wcyIsInByb0ZpZWxkUHJvcHMiXSxmPWZ1bmN0aW9uKHksQil7dmFyIEQ9eS5maWVsZFByb3BzLEM9eS5wcm9GaWVsZFByb3BzLHc9KDAsXy5aKSh5LGwpO3JldHVybigwLFAuanN4KSh1LlosKDAsRi5aKSh7cmVmOkIsdmFsdWVUeXBlOiJ0ZXh0YXJlYSIsZmllbGRQcm9wczpELHByb0ZpZWxkUHJvcHM6Q30sdykpfTtVLlo9Ui5mb3J3YXJkUmVmKGYpfSwzMzg2NzpmdW5jdGlvbihxLFUsbil7bi5kKFUse2lLOmZ1bmN0aW9uKCl7cmV0dXJuIEZ9LHpjOmZ1bmN0aW9uKCl7cmV0dXJuIFJ9fSk7dmFyIEY9ZnVuY3Rpb24odSl7cmV0dXJuIHVbdS5TVUNDRVNTPTIwMF09IlNVQ0NFU1MiLHVbdS5FUlJPUj0tMV09IkVSUk9SIix1W3UuVElNRU9VVD00MDFdPSJUSU1FT1VUIix1LlRZUEU9InN1Y2Nlc3MiLHV9KHt9KSxfPWZ1bmN0aW9uKHUpe3JldHVybiB1LkdFVD0iR0VUIix1LlBPU1Q9IlBPU1QiLHUuUFVUPSJQVVQiLHUuREVMRVRFPSJERUxFVEUiLHV9KHt9KSxSPWZ1bmN0aW9uKHUpe3JldHVybiB1LkpTT049ImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCIsdS5GT1JNX1VSTEVOQ09ERUQ9ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PVVURi04Iix1LkZPUk1fREFUQT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YTtjaGFyc2V0PVVURi04Iix1fSh7fSl9LDM1NDAwOmZ1bmN0aW9uKHEsVSxuKXtuLnIoVSk7dmFyIEY9bigxNTAwOSksXz1uLm4oRiksUj1uKDk5Mjg5KSx1PW4ubihSKSxQPW4oNTU3NCksbD1uLm4oUCksZj1uKDk5ODU5KSxTPW4oNzEyMzApLHk9bigxNTc0NiksQj1uKDI0NTMpLEQ9big4MzYyMiksQz1uKDY3Mjk0KSx3PW4oNzY3NzIpLG09bigxOTAzNSksQT1uKDk3MjY5KSxoPW4oNTk2NiksZz1uKDkwNjcyKSxvPW4oODU4OTMpLE89ZnVuY3Rpb24odil7dmFyIGMseixKLFYsVCxMPWYuWi51c2VGb3JtKCksVz1sKCkoTCwxKSxwPVdbMF0sSz12Lm9uU3RlcFN1Ym1pdDsoMCxDLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtwLnJlc2V0RmllbGRzKCkscC5zZXRGaWVsZHNWYWx1ZSh7dGFibGVOYW1lOnYudmFsdWVzLnRhYmxlTmFtZX0pfSk7dmFyIEU9ZnVuY3Rpb24oKXt2YXIgZD11KCkoXygpKCkubWFyayhmdW5jdGlvbiBiKCl7dmFyIGk7cmV0dXJuIF8oKSgpLndyYXAoZnVuY3Rpb24oWil7Zm9yKDs7KXN3aXRjaChaLnByZXY9Wi5uZXh0KXtjYXNlIDA6cmV0dXJuIFoubmV4dD0yLHAudmFsaWRhdGVGaWVsZHMoKTtjYXNlIDI6aT1aLnNlbnQsSyYmSygiYmFzZSIsaSk7Y2FzZSA0OmNhc2UiZW5kIjpyZXR1cm4gWi5zdG9wKCl9fSxiKX0pKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpO3JldHVybigwLG8uanN4cykoQy5GcmFnbWVudCx7Y2hpbGRyZW46WygwLG8uanN4KShTLlose2NoaWxkcmVuOigwLG8uanN4KSh5Llose3NwYW46MjQsY2hpbGRyZW46KDAsby5qc3hzKShBLkEse2Zvcm06cCxvbkZpbmlzaDp1KCkoXygpKCkubWFyayhmdW5jdGlvbiBkKCl7cmV0dXJuIF8oKSgpLndyYXAoZnVuY3Rpb24oaSl7Zm9yKDs7KXN3aXRjaChpLnByZXY9aS5uZXh0KXtjYXNlIDA6Qi5aUC5zdWNjZXNzKCJcdTYzRDBcdTRFQTRcdTYyMTBcdTUyOUYiKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBpLnN0b3AoKX19LGQpfSkpLGluaXRpYWxWYWx1ZXM6e3RhYmxlTmFtZTooYz12LnZhbHVlcyk9PT1udWxsfHxjPT09dm9pZCAwP3ZvaWQgMDpjLnRhYmxlTmFtZSx0YWJsZUNvbW1lbnQ6KHo9di52YWx1ZXMpPT09bnVsbHx8ej09PXZvaWQgMD92b2lkIDA6ei50YWJsZUNvbW1lbnQsY2xhc3NOYW1lOihKPXYudmFsdWVzKT09PW51bGx8fEo9PT12b2lkIDA/dm9pZCAwOkouY2xhc3NOYW1lLGZ1bmN0aW9uQXV0aG9yOihWPXYudmFsdWVzKT09PW51bGx8fFY9PT12b2lkIDA/dm9pZCAwOlYuZnVuY3Rpb25BdXRob3IscmVtYXJrOihUPXYudmFsdWVzKT09PW51bGx8fFQ9PT12b2lkIDA/dm9pZCAwOlQucmVtYXJrfSxzdWJtaXR0ZXI6e3Jlc2V0QnV0dG9uUHJvcHM6e3N0eWxlOntkaXNwbGF5OiJub25lIn19LHN1Ym1pdEJ1dHRvblByb3BzOntzdHlsZTp7ZGlzcGxheToibm9uZSJ9fX0sY2hpbGRyZW46WygwLG8uanN4cykoUy5aLHtjaGlsZHJlbjpbKDAsby5qc3gpKHkuWix7c3BhbjoxMixvcmRlcjoxLGNoaWxkcmVuOigwLG8uanN4KShoLlose25hbWU6InRhYmxlTmFtZSIsbGFiZWw6Ilx1ODg2OFx1NTQwRFx1NzlGMCIscnVsZXM6W3tyZXF1aXJlZDohMCxtZXNzYWdlOiJcdTg4NjhcdTU0MERcdTc5RjBcdTRFMERcdTUzRUZcdTRFM0FcdTdBN0FcdTMwMDIifV19KX0pLCgwLG8uanN4KSh5Llose3NwYW46MTIsb3JkZXI6MixjaGlsZHJlbjooMCxvLmpzeCkoaC5aLHtuYW1lOiJ0YWJsZUNvbW1lbnQiLGxhYmVsOiJcdTg4NjhcdTYzQ0ZcdThGRjAifSl9KV19KSwoMCxvLmpzeHMpKFMuWix7Y2hpbGRyZW46WygwLG8uanN4KSh5Llose3NwYW46MTIsb3JkZXI6MSxjaGlsZHJlbjooMCxvLmpzeCkoaC5aLHtuYW1lOiJjbGFzc05hbWUiLGxhYmVsOiJcdTVCOUVcdTRGNTNcdTdDN0JcdTU0MERcdTc5RjAiLHJ1bGVzOlt7cmVxdWlyZWQ6ITAsbWVzc2FnZToiXHU1QjlFXHU0RjUzXHU3QzdCXHU1NDBEXHU3OUYwXHU0RTBEXHU1M0VGXHU0RTNBXHU3QTdBXHUzMDAyIn1dfSl9KSwoMCxvLmpzeCkoeS5aLHtzcGFuOjEyLG9yZGVyOjIsY2hpbGRyZW46KDAsby5qc3gpKGguWix7bmFtZToiZnVuY3Rpb25BdXRob3IiLGxhYmVsOiJcdTRGNUNcdTgwMDUifSl9KV19KSwoMCxvLmpzeCkoUy5aLHtjaGlsZHJlbjooMCxvLmpzeCkoeS5aLHtzcGFuOjI0LGNoaWxkcmVuOigwLG8uanN4KShnLlose25hbWU6InJlbWFyayIsbGFiZWw6Ilx1NTkwN1x1NkNFOCJ9KX0pfSldfSl9KX0pLCgwLG8uanN4cykoUy5aLHtqdXN0aWZ5OiJjZW50ZXIiLGNoaWxkcmVuOlsoMCxvLmpzeCkoeS5aLHtzcGFuOjQsY2hpbGRyZW46KDAsby5qc3gpKEQuWlAse3R5cGU6InByaW1hcnkiLGNsYXNzTmFtZTptLlouc3RlcF9idXR0b25zLG9uQ2xpY2s6ZnVuY3Rpb24oKXt3Lmhpc3RvcnkuYmFjaygpfSxjaGlsZHJlbjoiXHU4RkQ0XHU1NkRFIn0pfSksKDAsby5qc3gpKHkuWix7c3Bhbjo0LGNoaWxkcmVuOigwLG8uanN4KShELlpQLHt0eXBlOiJwcmltYXJ5IixvbkNsaWNrOkUsY2hpbGRyZW46Ilx1NEUwQlx1NEUwMFx1NkI2NSJ9KX0pXX0pXX0pfTtVLmRlZmF1bHQ9T30sNDE4NDI6ZnVuY3Rpb24ocSxVLG4pe24ucihVKTt2YXIgRj1uKDk3ODU3KSxfPW4ubihGKSxSPW4oNTU3NCksdT1uLm4oUiksUD1uKDY3Mjk0KSxsPW4oODQ1NjcpLGY9big2NjMwOSksUz1uKDcxMjMwKSx5PW4oMTU3NDYpLEI9big4MzYyMiksRD1uKDc2NzcyKSxDPW4oMTkwMzUpLHc9big1MDcyNyksbT1uKDg1ODkzKSxBPVt7bGFiZWw6InRydWUiLHZhbHVlOiIxIn0se2xhYmVsOiJmYWxzZSIsdmFsdWU6IjAifV0saD1mdW5jdGlvbihvKXt2YXIgTz0oMCxQLnVzZVJlZikoKSxJPSgwLFAudXNlU3RhdGUpKCksdj11KCkoSSwyKSxjPXZbMF0sej12WzFdLEo9KDAsUC51c2VTdGF0ZSkoW10pLFY9dSgpKEosMiksVD1WWzBdLEw9VlsxXSxXPW8uZGF0YSxwPW8uZGljdERhdGEsSz1vLm9uU3RlcFN1Ym1pdCxFPVt7dGl0bGU6Ilx1N0YxNlx1NTNGNyIsZGF0YUluZGV4OiJjb2x1bW5JZCIsZWRpdGFibGU6ITEsd2lkdGg6ODB9LHt0aXRsZToiXHU1QjU3XHU2QkI1XHU1NDBEIixkYXRhSW5kZXg6ImNvbHVtbk5hbWUiLGVkaXRhYmxlOiExfSx7dGl0bGU6Ilx1NUI1N1x1NkJCNVx1NjNDRlx1OEZGMCIsZGF0YUluZGV4OiJjb2x1bW5Db21tZW50IixoaWRlSW5Gb3JtOiEwLGhpZGVJblNlYXJjaDohMCx3aWR0aDoyMDB9LHt0aXRsZToiXHU1QjU3XHU2QkI1XHU3QzdCXHU1NzhCIixkYXRhSW5kZXg6ImNvbHVtblR5cGUiLGVkaXRhYmxlOiExfSx7dGl0bGU6IkphdmFcdTdDN0JcdTU3OEIiLGRhdGFJbmRleDoiamF2YVR5cGUiLHZhbHVlVHlwZToic2VsZWN0Iix2YWx1ZUVudW06e0xvbmc6e3RleHQ6IkxvbmcifSxTdHJpbmc6e3RleHQ6IlN0cmluZyJ9LEludGVnZXI6e3RleHQ6IkludGVnZXIifSxEb3VibGU6e3RleHQ6IkRvdWJsZSJ9LEJpZ0RlY2ltYWw6e3RleHQ6IkJpZ0RlY2ltYWwifSxEYXRlOnt0ZXh0OiJEYXRlIn19fSx7dGl0bGU6IkphdmFcdTVDNUVcdTYwMjciLGRhdGFJbmRleDoiamF2YUZpZWxkIn0se3RpdGxlOiJcdTYzRDJcdTUxNjUiLGRhdGFJbmRleDoiaXNJbnNlcnQiLHZhbHVlVHlwZToic2VsZWN0IixmaWVsZFByb3BzOntvcHRpb25zOkF9LHJlbmRlcjpmdW5jdGlvbihNLFope3JldHVybigwLG0uanN4KShsLlose2NoZWNrZWQ6Wi5pc0luc2VydD09PSIxIn0pfX0se3RpdGxlOiJcdTdGMTZcdThGOTEiLGRhdGFJbmRleDoiaXNFZGl0Iix2YWx1ZVR5cGU6InNlbGVjdCIsZmllbGRQcm9wczp7b3B0aW9uczpBfSxyZW5kZXI6ZnVuY3Rpb24oTSxaKXtyZXR1cm4oMCxtLmpzeCkobC5aLHtjaGVja2VkOlouaXNFZGl0PT09IjEifSl9fSx7dGl0bGU6Ilx1NTIxN1x1ODg2OCIsZGF0YUluZGV4OiJpc0xpc3QiLHZhbHVlVHlwZToic2VsZWN0IixmaWVsZFByb3BzOntvcHRpb25zOkF9LHJlbmRlcjpmdW5jdGlvbihNLFope3JldHVybigwLG0uanN4KShsLlose2NoZWNrZWQ6Wi5pc0xpc3Q9PT0iMSJ9KX19LHt0aXRsZToiXHU2N0U1XHU4QkUyIixkYXRhSW5kZXg6ImlzUXVlcnkiLHZhbHVlVHlwZToic2VsZWN0IixmaWVsZFByb3BzOntvcHRpb25zOkF9LHJlbmRlcjpmdW5jdGlvbihNLFope3JldHVybigwLG0uanN4KShsLlose2NoZWNrZWQ6Wi5pc1F1ZXJ5PT09IjEifSl9fSx7dGl0bGU6Ilx1NjdFNVx1OEJFMlx1NjVCOVx1NUYwRiIsZGF0YUluZGV4OiJxdWVyeVR5cGUiLHZhbHVlVHlwZToic2VsZWN0Iix2YWx1ZUVudW06e0VROnt0ZXh0OiI9In0sTkU6e3RleHQ6IiE9In0sR1Q6e3RleHQ6Ij4ifSxHVEU6e3RleHQ6Ij49In0sTFQ6e3RleHQ6IjwifSxMVEU6e3RleHQ6Ijw9In0sTElLRTp7dGV4dDoiTElLRSJ9LEJFVFdFRU46e3RleHQ6IkJFVFdFRU4ifX19LHt0aXRsZToiXHU1RkM1XHU1ODZCIixkYXRhSW5kZXg6ImlzUmVxdWlyZWQiLHZhbHVlVHlwZToic2VsZWN0IixmaWVsZFByb3BzOntvcHRpb25zOkF9LHJlbmRlcjpmdW5jdGlvbihNLFope3JldHVybigwLG0uanN4KShsLlose2NoZWNrZWQ6Wi5pc1JlcXVpcmVkPT09IjEifSl9fSx7dGl0bGU6Ilx1NjYzRVx1NzkzQVx1N0M3Qlx1NTc4QiIsZGF0YUluZGV4OiJodG1sVHlwZSIsaGlkZUluU2VhcmNoOiEwLHZhbHVlVHlwZToic2VsZWN0Iix2YWx1ZUVudW06e2lucHV0Ont0ZXh0OiJcdTY1ODdcdTY3MkNcdTY4NDYifSx0ZXh0YXJlYTp7dGV4dDoiXHU2NTg3XHU2NzJDXHU1N0RGIn0sc2VsZWN0Ont0ZXh0OiJcdTRFMEJcdTYyQzlcdTY4NDYifSxyYWRpbzp7dGV4dDoiXHU1MzU1XHU5MDA5XHU2ODQ2In0sY2hlY2tib3g6e3RleHQ6Ilx1NTkwRFx1OTAwOVx1Njg0NiJ9LGRhdGV0aW1lOnt0ZXh0OiJcdTY1RTVcdTY3MUZcdTYzQTdcdTRFRjYifSxpbWFnZVVwbG9hZDp7dGV4dDoiXHU1NkZFXHU3MjQ3XHU0RTBBXHU0RjIwIn0sZmlsZVVwbG9hZDp7dGV4dDoiXHU2NTg3XHU0RUY2XHU0RTBBXHU0RjIwIn0sZWRpdG9yOnt0ZXh0OiJcdTVCQ0NcdTY1ODdcdTY3MkNcdTYzQTdcdTRFRjYifX19LHt0aXRsZToiXHU1QjU3XHU1MTc4XHU3QzdCXHU1NzhCIixkYXRhSW5kZXg6ImRpY3RUeXBlIixoaWRlSW5TZWFyY2g6ITAsdmFsdWVUeXBlOiJzZWxlY3QiLGZpZWxkUHJvcHM6e29wdGlvbnM6cH0scmVuZGVyOmZ1bmN0aW9uKE0pe3JldHVybigwLG0uanN4KShmLlose2NvbG9yOiIjMTA4ZWU5IixjaGlsZHJlbjpNfSl9fV07KDAsUC51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7eihXKSxXJiZMKFcubWFwKGZ1bmN0aW9uKGkpe3JldHVybiBpLmNvbHVtbklkfSkpfSxbV10pO3ZhciBkPWZ1bmN0aW9uKE0pe0smJksoImNvbHVtbiIsYyxNKX0sYj1mdW5jdGlvbihNKXt6KF8oKSh7fSxNKSl9O3JldHVybigwLG0uanN4cykoUC5GcmFnbWVudCx7Y2hpbGRyZW46WygwLG0uanN4KShTLlose2NoaWxkcmVuOigwLG0uanN4KSh5Llose3NwYW46MjQsY2hpbGRyZW46KDAsbS5qc3gpKHcuWix7Zm9ybVJlZjpPLHJvd0tleToiY29sdW1uSWQiLHNlYXJjaDohMSxjb2x1bW5zOkUsdmFsdWU6YyxlZGl0YWJsZTp7dHlwZToibXVsdGlwbGUiLGVkaXRhYmxlS2V5czpULG9uQ2hhbmdlOkwsYWN0aW9uUmVuZGVyOmZ1bmN0aW9uKE0sWixnZSl7cmV0dXJuW2dlLmRlbGV0ZV19LG9uVmFsdWVzQ2hhbmdlOmZ1bmN0aW9uKE0sWil7eihaKX19LG9uQ2hhbmdlOmIscmVjb3JkQ3JlYXRvclByb3BzOiExfSl9KX0pLCgwLG0uanN4cykoUy5aLHtqdXN0aWZ5OiJjZW50ZXIiLGNoaWxkcmVuOlsoMCxtLmpzeCkoeS5aLHtzcGFuOjQsY2hpbGRyZW46KDAsbS5qc3gpKEIuWlAse3R5cGU6InByaW1hcnkiLG9uQ2xpY2s6ZnVuY3Rpb24oKXtELmhpc3RvcnkuYmFjaygpfSxjaGlsZHJlbjoiXHU4RkQ0XHU1NkRFIn0pfSksKDAsbS5qc3gpKHkuWix7c3Bhbjo0LGNoaWxkcmVuOigwLG0uanN4KShCLlpQLHt0eXBlOiJwcmltYXJ5IixjbGFzc05hbWU6Qy5aLnN0ZXBfYnV0dG9ucyxvbkNsaWNrOmZ1bmN0aW9uKCl7ZCgicHJldiIpfSxjaGlsZHJlbjoiXHU0RTBBXHU0RTAwXHU2QjY1In0pfSksKDAsbS5qc3gpKHkuWix7c3Bhbjo0LGNoaWxkcmVuOigwLG0uanN4KShCLlpQLHt0eXBlOiJwcmltYXJ5IixvbkNsaWNrOmZ1bmN0aW9uKCl7ZCgibmV4dCIpfSxjaGlsZHJlbjoiXHU0RTBCXHU0RTAwXHU2QjY1In0pfSldfSldfSl9O1UuZGVmYXVsdD1ofSw1NjQ0NTpmdW5jdGlvbihxLFUsbil7bi5yKFUpLG4uZChVLHtkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuIFhlfX0pO3ZhciBGPXt9O24ucihGKSxuLmQoRix7ZXhjbHVkZTpmdW5jdGlvbigpe3JldHVybiAkZX0sZXh0cmFjdDpmdW5jdGlvbigpe3JldHVybiBFZX0scGFyc2U6ZnVuY3Rpb24oKXtyZXR1cm4gYmV9LHBhcnNlVXJsOmZ1bmN0aW9uKCl7cmV0dXJuIFNlfSxwaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIFVlfSxzdHJpbmdpZnk6ZnVuY3Rpb24oKXtyZXR1cm4gSWV9LHN0cmluZ2lmeVVybDpmdW5jdGlvbigpe3JldHVybiBMZX19KTt2YXIgXz1uKDk3ODU3KSxSPW4ubihfKSx1PW4oNTU3NCksUD1uLm4odSksbD1uKDY3Mjk0KSxmPW4oMzU0MDApLFM9bigyNjA1OCkseT1uKDI0NTMpLEI9big0MzkzKSxEPW4oNDIxMTkpLEM9big0MTg0Miksdz1uKDYyMDU3KSxtPW4oMTI1MzEpLEE9bigzMTk4MSksaD1uKDE5MDM1KSxnPW4oNTI3MjgpLG89big5Mjk4MiksTz1uKDk3ODMpLEk9big2NDU5OSksdj1uKDUyNjc3KSxjPW4oMTk2MzIpO2NvbnN0IHo9IiVbYS1mMC05XXsyfSIsSj1uZXcgUmVnRXhwKCIoIit6KyIpfChbXiVdKz8pIiwiZ2kiKSxWPW5ldyBSZWdFeHAoIigiK3orIikrIiwiZ2kiKTtmdW5jdGlvbiBUKGUscil7dHJ5e3JldHVybltkZWNvZGVVUklDb21wb25lbnQoZS5qb2luKCIiKSldfWNhdGNoKHMpe31pZihlLmxlbmd0aD09PTEpcmV0dXJuIGU7cj1yfHwxO2NvbnN0IHQ9ZS5zbGljZSgwLHIpLGE9ZS5zbGljZShyKTtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5jYWxsKFtdLFQodCksVChhKSl9ZnVuY3Rpb24gTChlKXt0cnl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChlKX1jYXRjaChyKXtsZXQgdD1lLm1hdGNoKEopfHxbXTtmb3IobGV0IGE9MTthPHQubGVuZ3RoO2ErKyllPVQodCxhKS5qb2luKCIiKSx0PWUubWF0Y2goSil8fFtdO3JldHVybiBlfX1mdW5jdGlvbiBXKGUpe2NvbnN0IHI9eyIlRkUlRkYiOiJcdUZGRkRcdUZGRkQiLCIlRkYlRkUiOiJcdUZGRkRcdUZGRkQifTtsZXQgdD1WLmV4ZWMoZSk7Zm9yKDt0Oyl7dHJ5e3JbdFswXV09ZGVjb2RlVVJJQ29tcG9uZW50KHRbMF0pfWNhdGNoKHMpe2NvbnN0IGo9TCh0WzBdKTtqIT09dFswXSYmKHJbdFswXV09ail9dD1WLmV4ZWMoZSl9clsiJUMyIl09Ilx1RkZGRCI7Y29uc3QgYT1PYmplY3Qua2V5cyhyKTtmb3IoY29uc3QgcyBvZiBhKWU9ZS5yZXBsYWNlKG5ldyBSZWdFeHAocywiZyIpLHJbc10pO3JldHVybiBlfWZ1bmN0aW9uIHAoZSl7aWYodHlwZW9mIGUhPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGBlbmNvZGVkVVJJYCB0byBiZSBvZiB0eXBlIGBzdHJpbmdgLCBnb3QgYCIrdHlwZW9mIGUrImAiKTt0cnl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChlKX1jYXRjaChyKXtyZXR1cm4gVyhlKX19ZnVuY3Rpb24gSyhlLHIpe2NvbnN0IHQ9e307aWYoQXJyYXkuaXNBcnJheShyKSlmb3IoY29uc3QgYSBvZiByKXtjb25zdCBzPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSxhKTtzIT1udWxsJiZzLmVudW1lcmFibGUmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGEscyl9ZWxzZSBmb3IoY29uc3QgYSBvZiBSZWZsZWN0Lm93bktleXMoZSkpe2NvbnN0IHM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLGEpO2lmKHMuZW51bWVyYWJsZSl7Y29uc3Qgaj1lW2FdO3IoYSxqLGUpJiZPYmplY3QuZGVmaW5lUHJvcGVydHkodCxhLHMpfX1yZXR1cm4gdH1mdW5jdGlvbiBFKGUscil7aWYoQXJyYXkuaXNBcnJheShyKSl7Y29uc3QgdD1uZXcgU2V0KHIpO3JldHVybiBLKGUsYT0+IXQuaGFzKGEpKX1yZXR1cm4gSyhlLCh0LGEscyk9PiFyKHQsYSxzKSl9ZnVuY3Rpb24gZChlLHIpe2lmKCEodHlwZW9mIGU9PSJzdHJpbmciJiZ0eXBlb2Ygcj09InN0cmluZyIpKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIHRoZSBhcmd1bWVudHMgdG8gYmUgb2YgdHlwZSBgc3RyaW5nYCIpO2lmKGU9PT0iInx8cj09PSIiKXJldHVybltdO2NvbnN0IHQ9ZS5pbmRleE9mKHIpO3JldHVybiB0PT09LTE/W106W2Uuc2xpY2UoMCx0KSxlLnNsaWNlKHQrci5sZW5ndGgpXX12YXIgYj1mdW5jdGlvbihyKXtyZXR1cm4gcj09bnVsbH0saT1mdW5jdGlvbihyKXtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KHIpLnJlcGxhY2VBbGwoL1shJygpKl0vZyxmdW5jdGlvbih0KXtyZXR1cm4iJSIuY29uY2F0KHQuY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKSl9KX0sTT1TeW1ib2woImVuY29kZUZyYWdtZW50SWRlbnRpZmllciIpO2Z1bmN0aW9uIFooZSl7c3dpdGNoKGUuYXJyYXlGb3JtYXQpe2Nhc2UiaW5kZXgiOnJldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oYSxzKXt2YXIgaj1hLmxlbmd0aDtyZXR1cm4gcz09PXZvaWQgMHx8ZS5za2lwTnVsbCYmcz09PW51bGx8fGUuc2tpcEVtcHR5U3RyaW5nJiZzPT09IiI/YTpzPT09bnVsbD9bXS5jb25jYXQoYyhhKSxbW04odCxlKSwiWyIsaiwiXSJdLmpvaW4oIiIpXSk6W10uY29uY2F0KGMoYSksW1tOKHQsZSksIlsiLE4oaixlKSwiXT0iLE4ocyxlKV0uam9pbigiIildKX19O2Nhc2UiYnJhY2tldCI6cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihhLHMpe3JldHVybiBzPT09dm9pZCAwfHxlLnNraXBOdWxsJiZzPT09bnVsbHx8ZS5za2lwRW1wdHlTdHJpbmcmJnM9PT0iIj9hOnM9PT1udWxsP1tdLmNvbmNhdChjKGEpLFtbTih0LGUpLCJbXSJdLmpvaW4oIiIpXSk6W10uY29uY2F0KGMoYSksW1tOKHQsZSksIltdPSIsTihzLGUpXS5qb2luKCIiKV0pfX07Y2FzZSJjb2xvbi1saXN0LXNlcGFyYXRvciI6cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihhLHMpe3JldHVybiBzPT09dm9pZCAwfHxlLnNraXBOdWxsJiZzPT09bnVsbHx8ZS5za2lwRW1wdHlTdHJpbmcmJnM9PT0iIj9hOnM9PT1udWxsP1tdLmNvbmNhdChjKGEpLFtbTih0LGUpLCI6bGlzdD0iXS5qb2luKCIiKV0pOltdLmNvbmNhdChjKGEpLFtbTih0LGUpLCI6bGlzdD0iLE4ocyxlKV0uam9pbigiIildKX19O2Nhc2UiY29tbWEiOmNhc2Uic2VwYXJhdG9yIjpjYXNlImJyYWNrZXQtc2VwYXJhdG9yIjp7dmFyIHI9ZS5hcnJheUZvcm1hdD09PSJicmFja2V0LXNlcGFyYXRvciI/IltdPSI6Ij0iO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oYSxzKXtyZXR1cm4gcz09PXZvaWQgMHx8ZS5za2lwTnVsbCYmcz09PW51bGx8fGUuc2tpcEVtcHR5U3RyaW5nJiZzPT09IiI/YToocz1zPT09bnVsbD8iIjpzLGEubGVuZ3RoPT09MD9bW04odCxlKSxyLE4ocyxlKV0uam9pbigiIildOltbYSxOKHMsZSldLmpvaW4oZS5hcnJheUZvcm1hdFNlcGFyYXRvcildKX19fWRlZmF1bHQ6cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihhLHMpe3JldHVybiBzPT09dm9pZCAwfHxlLnNraXBOdWxsJiZzPT09bnVsbHx8ZS5za2lwRW1wdHlTdHJpbmcmJnM9PT0iIj9hOnM9PT1udWxsP1tdLmNvbmNhdChjKGEpLFtOKHQsZSldKTpbXS5jb25jYXQoYyhhKSxbW04odCxlKSwiPSIsTihzLGUpXS5qb2luKCIiKV0pfX19fWZ1bmN0aW9uIGdlKGUpe3ZhciByO3N3aXRjaChlLmFycmF5Rm9ybWF0KXtjYXNlImluZGV4IjpyZXR1cm4gZnVuY3Rpb24odCxhLHMpe2lmKHI9L1xbKFxkKildJC8uZXhlYyh0KSx0PXQucmVwbGFjZSgvXFtcZCpdJC8sIiIpLCFyKXtzW3RdPWE7cmV0dXJufXNbdF09PT12b2lkIDAmJihzW3RdPXt9KSxzW3RdW3JbMV1dPWF9O2Nhc2UiYnJhY2tldCI6cmV0dXJuIGZ1bmN0aW9uKHQsYSxzKXtpZihyPS8oXFtdKSQvLmV4ZWModCksdD10LnJlcGxhY2UoL1xbXSQvLCIiKSwhcil7c1t0XT1hO3JldHVybn1pZihzW3RdPT09dm9pZCAwKXtzW3RdPVthXTtyZXR1cm59c1t0XT1bXS5jb25jYXQoYyhzW3RdKSxbYV0pfTtjYXNlImNvbG9uLWxpc3Qtc2VwYXJhdG9yIjpyZXR1cm4gZnVuY3Rpb24odCxhLHMpe2lmKHI9Lyg6bGlzdCkkLy5leGVjKHQpLHQ9dC5yZXBsYWNlKC86bGlzdCQvLCIiKSwhcil7c1t0XT1hO3JldHVybn1pZihzW3RdPT09dm9pZCAwKXtzW3RdPVthXTtyZXR1cm59c1t0XT1bXS5jb25jYXQoYyhzW3RdKSxbYV0pfTtjYXNlImNvbW1hIjpjYXNlInNlcGFyYXRvciI6cmV0dXJuIGZ1bmN0aW9uKHQsYSxzKXt2YXIgaj10eXBlb2YgYT09InN0cmluZyImJmEuaW5jbHVkZXMoZS5hcnJheUZvcm1hdFNlcGFyYXRvcikseD10eXBlb2YgYT09InN0cmluZyImJiFqJiZlZShhLGUpLmluY2x1ZGVzKGUuYXJyYXlGb3JtYXRTZXBhcmF0b3IpO2E9eD9lZShhLGUpOmE7dmFyIEg9anx8eD9hLnNwbGl0KGUuYXJyYXlGb3JtYXRTZXBhcmF0b3IpLm1hcChmdW5jdGlvbihuZSl7cmV0dXJuIGVlKG5lLGUpfSk6YT09PW51bGw/YTplZShhLGUpO3NbdF09SH07Y2FzZSJicmFja2V0LXNlcGFyYXRvciI6cmV0dXJuIGZ1bmN0aW9uKHQsYSxzKXt2YXIgaj0vKFxbXSkkLy50ZXN0KHQpO2lmKHQ9dC5yZXBsYWNlKC9cW10kLywiIiksIWope3NbdF09YSYmZWUoYSxlKTtyZXR1cm59dmFyIHg9YT09PW51bGw/W106ZWUoYSxlKS5zcGxpdChlLmFycmF5Rm9ybWF0U2VwYXJhdG9yKTtpZihzW3RdPT09dm9pZCAwKXtzW3RdPXg7cmV0dXJufXNbdF09W10uY29uY2F0KGMoc1t0XSksYyh4KSl9O2RlZmF1bHQ6cmV0dXJuIGZ1bmN0aW9uKHQsYSxzKXtpZihzW3RdPT09dm9pZCAwKXtzW3RdPWE7cmV0dXJufXNbdF09W10uY29uY2F0KGMoW3NbdF1dLmZsYXQoKSksW2FdKX19fWZ1bmN0aW9uIGplKGUpe2lmKHR5cGVvZiBlIT0ic3RyaW5nInx8ZS5sZW5ndGghPT0xKXRocm93IG5ldyBUeXBlRXJyb3IoImFycmF5Rm9ybWF0U2VwYXJhdG9yIG11c3QgYmUgc2luZ2xlIGNoYXJhY3RlciBzdHJpbmciKX1mdW5jdGlvbiBOKGUscil7cmV0dXJuIHIuZW5jb2RlP3Iuc3RyaWN0P2koZSk6ZW5jb2RlVVJJQ29tcG9uZW50KGUpOmV9ZnVuY3Rpb24gZWUoZSxyKXtyZXR1cm4gci5kZWNvZGU/cChlKTplfWZ1bmN0aW9uIENlKGUpe3JldHVybiBBcnJheS5pc0FycmF5KGUpP2Uuc29ydCgpOnYoZSk9PT0ib2JqZWN0Ij9DZShPYmplY3Qua2V5cyhlKSkuc29ydChmdW5jdGlvbihyLHQpe3JldHVybiBOdW1iZXIociktTnVtYmVyKHQpfSkubWFwKGZ1bmN0aW9uKHIpe3JldHVybiBlW3JdfSk6ZX1mdW5jdGlvbiBNZShlKXt2YXIgcj1lLmluZGV4T2YoIiMiKTtyZXR1cm4gciE9PS0xJiYoZT1lLnNsaWNlKDAscikpLGV9ZnVuY3Rpb24gSGUoZSl7dmFyIHI9IiIsdD1lLmluZGV4T2YoIiMiKTtyZXR1cm4gdCE9PS0xJiYocj1lLnNsaWNlKHQpKSxyfWZ1bmN0aW9uIEFlKGUscix0KXtyZXR1cm4gdD09PSJzdHJpbmciJiZ0eXBlb2YgZT09InN0cmluZyI/ZTp0eXBlb2YgdD09ImZ1bmN0aW9uIiYmdHlwZW9mIGU9PSJzdHJpbmciP3QoZSk6ci5wYXJzZUJvb2xlYW5zJiZlIT09bnVsbCYmKGUudG9Mb3dlckNhc2UoKT09PSJ0cnVlInx8ZS50b0xvd2VyQ2FzZSgpPT09ImZhbHNlIik/ZS50b0xvd2VyQ2FzZSgpPT09InRydWUiOnQ9PT0ibnVtYmVyIiYmIU51bWJlci5pc05hTihOdW1iZXIoZSkpJiZ0eXBlb2YgZT09InN0cmluZyImJmUudHJpbSgpIT09IiJ8fHIucGFyc2VOdW1iZXJzJiYhTnVtYmVyLmlzTmFOKE51bWJlcihlKSkmJnR5cGVvZiBlPT0ic3RyaW5nIiYmZS50cmltKCkhPT0iIj9OdW1iZXIoZSk6ZX1mdW5jdGlvbiBFZShlKXtlPU1lKGUpO3ZhciByPWUuaW5kZXhPZigiPyIpO3JldHVybiByPT09LTE/IiI6ZS5zbGljZShyKzEpfWZ1bmN0aW9uIGJlKGUscil7cj1fKHtkZWNvZGU6ITAsc29ydDohMCxhcnJheUZvcm1hdDoibm9uZSIsYXJyYXlGb3JtYXRTZXBhcmF0b3I6IiwiLHBhcnNlTnVtYmVyczohMSxwYXJzZUJvb2xlYW5zOiExLHR5cGVzOk9iamVjdC5jcmVhdGUobnVsbCl9LHIpLGplKHIuYXJyYXlGb3JtYXRTZXBhcmF0b3IpO3ZhciB0PWdlKHIpLGE9T2JqZWN0LmNyZWF0ZShudWxsKTtpZih0eXBlb2YgZSE9InN0cmluZyJ8fChlPWUudHJpbSgpLnJlcGxhY2UoL15bPyMmXS8sIiIpLCFlKSlyZXR1cm4gYTt2YXIgcz1JKGUuc3BsaXQoIiYiKSksajt0cnl7Zm9yKHMucygpOyEoaj1zLm4oKSkuZG9uZTspe3ZhciB4PWoudmFsdWU7aWYoeCE9PSIiKXt2YXIgSD1yLmRlY29kZT94LnJlcGxhY2VBbGwoIisiLCIgIik6eCxuZT1kKEgsIj0iKSxyZT11KG5lLDIpLHRlPXJlWzBdLEc9cmVbMV07dGU9PT12b2lkIDAmJih0ZT1IKSxHPUc9PT12b2lkIDA/bnVsbDpbImNvbW1hIiwic2VwYXJhdG9yIiwiYnJhY2tldC1zZXBhcmF0b3IiXS5pbmNsdWRlcyhyLmFycmF5Rm9ybWF0KT9HOmVlKEcsciksdChlZSh0ZSxyKSxHLGEpfX19Y2F0Y2goYWUpe3MuZShhZSl9ZmluYWxseXtzLmYoKX1mb3IodmFyIFE9MCxfZT1PYmplY3QuZW50cmllcyhhKTtRPF9lLmxlbmd0aDtRKyspe3ZhciBjZT11KF9lW1FdLDIpLFk9Y2VbMF0saz1jZVsxXTtpZih2KGspPT09Im9iamVjdCImJmshPT1udWxsJiZyLnR5cGVzW1ldIT09InN0cmluZyIpZm9yKHZhciBvZT0wLG1lPU9iamVjdC5lbnRyaWVzKGspO29lPG1lLmxlbmd0aDtvZSsrKXt2YXIgbGU9dShtZVtvZV0sMiksVGU9bGVbMF0sRGU9bGVbMV0seWU9ci50eXBlc1tZXT9yLnR5cGVzW1ldLnJlcGxhY2UoIltdIiwiIik6dm9pZCAwO2tbVGVdPUFlKERlLHIseWUpfWVsc2UgdihrKT09PSJvYmplY3QiJiZrIT09bnVsbCYmci50eXBlc1tZXT09PSJzdHJpbmciP2FbWV09T2JqZWN0LnZhbHVlcyhrKS5qb2luKHIuYXJyYXlGb3JtYXRTZXBhcmF0b3IpOmFbWV09QWUoayxyLHIudHlwZXNbWV0pfXJldHVybiByLnNvcnQ9PT0hMT9hOihyLnNvcnQ9PT0hMD9PYmplY3Qua2V5cyhhKS5zb3J0KCk6T2JqZWN0LmtleXMoYSkuc29ydChyLnNvcnQpKS5yZWR1Y2UoZnVuY3Rpb24oYWUsZmUpe3ZhciBzZT1hW2ZlXTtyZXR1cm4gYWVbZmVdPXNlJiZ2KHNlKT09PSJvYmplY3QiJiYhQXJyYXkuaXNBcnJheShzZSk/Q2Uoc2UpOnNlLGFlfSxPYmplY3QuY3JlYXRlKG51bGwpKX1mdW5jdGlvbiBJZShlLHIpe2lmKCFlKXJldHVybiIiO3I9Xyh7ZW5jb2RlOiEwLHN0cmljdDohMCxhcnJheUZvcm1hdDoibm9uZSIsYXJyYXlGb3JtYXRTZXBhcmF0b3I6IiwifSxyKSxqZShyLmFycmF5Rm9ybWF0U2VwYXJhdG9yKTtmb3IodmFyIHQ9ZnVuY3Rpb24oUSl7cmV0dXJuIHIuc2tpcE51bGwmJmIoZVtRXSl8fHIuc2tpcEVtcHR5U3RyaW5nJiZlW1FdPT09IiJ9LGE9WihyKSxzPXt9LGo9MCx4PU9iamVjdC5lbnRyaWVzKGUpO2o8eC5sZW5ndGg7aisrKXt2YXIgSD11KHhbal0sMiksbmU9SFswXSxyZT1IWzFdO3QobmUpfHwoc1tuZV09cmUpfXZhciB0ZT1PYmplY3Qua2V5cyhzKTtyZXR1cm4gci5zb3J0IT09ITEmJnRlLnNvcnQoci5zb3J0KSx0ZS5tYXAoZnVuY3Rpb24oRyl7dmFyIFE9ZVtHXTtyZXR1cm4gUT09PXZvaWQgMD8iIjpRPT09bnVsbD9OKEcscik6QXJyYXkuaXNBcnJheShRKT9RLmxlbmd0aD09PTAmJnIuYXJyYXlGb3JtYXQ9PT0iYnJhY2tldC1zZXBhcmF0b3IiP04oRyxyKSsiW10iOlEucmVkdWNlKGEoRyksW10pLmpvaW4oIiYiKTpOKEcscikrIj0iK04oUSxyKX0pLmZpbHRlcihmdW5jdGlvbihHKXtyZXR1cm4gRy5sZW5ndGg+MH0pLmpvaW4oIiYiKX1mdW5jdGlvbiBTZShlLHIpe3ZhciB0LGE7cj1fKHtkZWNvZGU6ITB9LHIpO3ZhciBzPWQoZSwiIyIpLGo9dShzLDIpLHg9alswXSxIPWpbMV07cmV0dXJuIHg9PT12b2lkIDAmJih4PWUpLF8oe3VybDoodD0oYT14KT09PW51bGx8fGE9PT12b2lkIDB8fChhPWEuc3BsaXQoIj8iKSk9PT1udWxsfHxhPT09dm9pZCAwP3ZvaWQgMDphWzBdKSE9PW51bGwmJnQhPT12b2lkIDA/dDoiIixxdWVyeTpiZShFZShlKSxyKX0sciYmci5wYXJzZUZyYWdtZW50SWRlbnRpZmllciYmSD97ZnJhZ21lbnRJZGVudGlmaWVyOmVlKEgscil9Ont9KX1mdW5jdGlvbiBMZShlLHIpe3I9XyhPKHtlbmNvZGU6ITAsc3RyaWN0OiEwfSxNLCEwKSxyKTt2YXIgdD1NZShlLnVybCkuc3BsaXQoIj8iKVswXXx8IiIsYT1FZShlLnVybCkscz1fKF8oe30sYmUoYSx7c29ydDohMX0pKSxlLnF1ZXJ5KSxqPUllKHMscik7aiYmKGo9Ij8iLmNvbmNhdChqKSk7dmFyIHg9SGUoZS51cmwpO2lmKHR5cGVvZiBlLmZyYWdtZW50SWRlbnRpZmllcj09InN0cmluZyIpe3ZhciBIPW5ldyBVUkwodCk7SC5oYXNoPWUuZnJhZ21lbnRJZGVudGlmaWVyLHg9cltNXT9ILmhhc2g6IiMiLmNvbmNhdChlLmZyYWdtZW50SWRlbnRpZmllcil9cmV0dXJuIiIuY29uY2F0KHQpLmNvbmNhdChqKS5jb25jYXQoeCl9ZnVuY3Rpb24gVWUoZSxyLHQpe3Q9XyhPKHtwYXJzZUZyYWdtZW50SWRlbnRpZmllcjohMH0sTSwhMSksdCk7dmFyIGE9U2UoZSx0KSxzPWEudXJsLGo9YS5xdWVyeSx4PWEuZnJhZ21lbnRJZGVudGlmaWVyO3JldHVybiBMZSh7dXJsOnMscXVlcnk6SyhqLHIpLGZyYWdtZW50SWRlbnRpZmllcjp4fSx0KX1mdW5jdGlvbiAkZShlLHIsdCl7dmFyIGE9QXJyYXkuaXNBcnJheShyKT9mdW5jdGlvbihzKXtyZXR1cm4hci5pbmNsdWRlcyhzKX06ZnVuY3Rpb24ocyxqKXtyZXR1cm4hcihzLGopfTtyZXR1cm4gVWUoZSxhLHQpfXZhciBWZT1GLFFlPW4oNzY3NzIpLGllPW4oODU4OTMpLHplPVMuWi5Db250ZW50LEplPWZ1bmN0aW9uKCl7dmFyIHI9KDAsUWUudXNlTG9jYXRpb24pKCksdD1WZS5wYXJzZShyLnNlYXJjaCksYT10LHM9YS5pZCxqPXMseD0oMCxsLnVzZVN0YXRlKSgwKSxIPVAoKSh4LDIpLG5lPUhbMF0scmU9SFsxXSx0ZT0oMCxsLnVzZVN0YXRlKShbXSksRz1QKCkodGUsMiksUT1HWzBdLF9lPUdbMV0sY2U9KDAsbC51c2VTdGF0ZSkoW10pLFk9UCgpKGNlLDIpLGs9WVswXSxvZT1ZWzFdLG1lPSgwLGwudXNlU3RhdGUpKFtdKSxsZT1QKCkobWUsMiksVGU9bGVbMF0sRGU9bGVbMV0seWU9KDAsbC51c2VTdGF0ZSkoW10pLGFlPVAoKSh5ZSwyKSxmZT1hZVswXSxzZT1hZVsxXSxZZT0oMCxsLnVzZVN0YXRlKShbXSkseGU9UCgpKFllLDIpLGtlPXhlWzBdLHFlPXhlWzFdLGVyPSgwLGwudXNlU3RhdGUpKFtdKSxSZT1QKCkoZXIsMikscnI9UmVbMF0sbnI9UmVbMV0sdHI9KDAsbC51c2VTdGF0ZSkoW10pLFdlPVAoKSh0ciwyKSxGZT1XZVswXSx2ZT1XZVsxXSxhcj0oMCxsLnVzZVN0YXRlKShbXSksQmU9UCgpKGFyLDIpLHNyPUJlWzBdLHBlPUJlWzFdLHVyPSgwLGwudXNlU3RhdGUpKCIiKSxLZT1QKCkodXIsMiksWmU9S2VbMF0sZGU9S2VbMV0saGU9ZnVuY3Rpb24oWCl7cmV0dXJuIFg9PT0iYmFzZSI/KDAsaWUuanN4KShmLmRlZmF1bHQse3ZhbHVlczprLG9uU3RlcFN1Ym1pdDpQZX0pOlg9PT0iY29sdW1uIj8oMCxpZS5qc3gpKEMuZGVmYXVsdCx7ZGF0YTpRLGRpY3REYXRhOmtlLG9uU3RlcFN1Ym1pdDpQZX0pOlg9PT0iZ2VuIj8oMCxpZS5qc3gpKHcuZGVmYXVsdCx7dmFsdWVzOlRlLG1lbnVEYXRhOmZlLHRhYmxlSW5mbzpycixvblN0ZXBTdWJtaXQ6UGV9KTpudWxsfSxQZT1mdW5jdGlvbihYLHVlLE5lKXt2YXIgT2U9ImJhc2UiO2lmKFg9PT0iYmFzZSIpZGUoImNvbHVtbiIpLHJlKDEpLHZlKHVlKSxwZShoZShPZSkpO2Vsc2UgaWYoWD09PSJjb2x1bW4iKXtpZihOZT09PSJwcmV2IilkZSgiYmFzZSIpLHJlKDApO2Vsc2V7ZGUoImdlbiIpO3ZhciB3ZT1GZXx8e307d2UuY29sdW1ucz11ZSxyZSgyKSx2ZSh3ZSl9cGUoaGUoT2UpKX1lbHNlIGlmKFg9PT0iZ2VuIilpZihOZT09PSJwcmV2IilkZSgiY29sdW1uIikscmUoMSkscGUoaGUoT2UpKTtlbHNle3ZhciBHZT1SKCkoUigpKFIoKSh7fSxGZSksdWUpLHt9LHtwYXJhbXM6dWUsdGFibGVJZDpqfSk7dmUoR2UpLCgwLG0udXBkYXRlRGF0YSkoUigpKHt9LEdlKSkudGhlbihmdW5jdGlvbihpcil7aXIuY29kZT09PTIwMD8oeS5aUC5zdWNjZXNzKCJcdTYzRDBcdTRFQTRcdTYyMTBcdTUyOUYiKSxoaXN0b3J5LmJhY2soKSk6eS5aUC5zdWNjZXNzKCJcdTYzRDBcdTRFQTRcdTU5MzFcdThEMjUiKX0pfX07cmV0dXJuKDAsbC51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7cGUoaGUoWmUpKX0sW1plXSksKDAsbC51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7KDAsbS5nZXRHZW5Db2RlKShqKS50aGVuKGZ1bmN0aW9uKCQpeyQuY29kZT09PTIwMD8ob2UoJC5kYXRhLmluZm8pLF9lKCQuZGF0YS5yb3dzKSxEZSgkLmRhdGEuaW5mbyksbnIoJC5kYXRhLnRhYmxlcyksZGUoImJhc2UiKSk6eS5aUC5lcnJvcigkLm1zZyl9KSwoMCxnLlRoKSgpLnRoZW4oZnVuY3Rpb24oJCl7aWYoJC5jb2RlPT09MjAwKXt2YXIgWD0oMCxBLmx0KSgkLmRhdGEpO3NlKFgpfWVsc2UgeS5aUC5lcnJvcigkLm1zZyl9KSwoMCxvLmpLKSgpLnRoZW4oZnVuY3Rpb24oJCl7aWYoJC5jb2RlPT09MjAwKXt2YXIgWD0kLnJvd3MubWFwKGZ1bmN0aW9uKHVlKXtyZXR1cm57bGFiZWw6dWUuZGljdE5hbWUsdmFsdWU6dWUuZGljdFR5cGV9fSk7cWUoWCl9ZWxzZSB5LlpQLmVycm9yKCQubXNnKX0pfSxbXSksKDAsaWUuanN4KSh6ZSx7Y2hpbGRyZW46KDAsaWUuanN4cykoQi5aLHtjbGFzc05hbWU6aC5aLnRhYnNDYXJkLGJvcmRlcmVkOiExLGNoaWxkcmVuOlsoMCxpZS5qc3gpKEQuWix7Y3VycmVudDpuZSxjbGFzc05hbWU6aC5aLnN0ZXBzLGl0ZW1zOlt7dGl0bGU6Ilx1NTdGQVx1NjcyQ1x1NEZFMVx1NjA2RiJ9LHt0aXRsZToiXHU1QjU3XHU2QkI1XHU0RkUxXHU2MDZGIn0se3RpdGxlOiJcdTc1MUZcdTYyMTBcdTRGRTFcdTYwNkYifV19KSxzcl19KX0pfSxYZT1KZX0sMTI1MzE6ZnVuY3Rpb24ocSxVLG4pe24ucihVKSxuLmQoVSx7YWRkRGF0YTpmdW5jdGlvbigpe3JldHVybiBPfSxiYXRjaEdlbkNvZGU6ZnVuY3Rpb24oKXtyZXR1cm4gTH0sZ2VuQ29kZTpmdW5jdGlvbigpe3JldHVybiBWfSxnZXRHZW5Db2RlOmZ1bmN0aW9uKCl7cmV0dXJuIER9LGdldEdlbkNvZGVMaXN0OmZ1bmN0aW9uKCl7cmV0dXJuIHl9LGltcG9ydFRhYmxlczpmdW5jdGlvbigpe3JldHVybiBBfSxwcmV2aWV3Q29kZTpmdW5jdGlvbigpe3JldHVybiBwfSxxdWVyeVRhYmxlTGlzdDpmdW5jdGlvbigpe3JldHVybiB3fSxyZW1vdmVEYXRhOmZ1bmN0aW9uKCl7cmV0dXJuIGd9LHN5bmNEYkluZm86ZnVuY3Rpb24oKXtyZXR1cm4gen0sdXBkYXRlRGF0YTpmdW5jdGlvbigpe3JldHVybiB2fX0pO3ZhciBGPW4oOTc4NTcpLF89bi5uKEYpLFI9bigxNTAwOSksdT1uLm4oUiksUD1uKDk5Mjg5KSxsPW4ubihQKSxmPW4oNzY3NzIpLFM9bigzMDk2NCk7ZnVuY3Rpb24geShFKXtyZXR1cm4gQi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gQigpe3JldHVybiBCPWwoKSh1KCkoKS5tYXJrKGZ1bmN0aW9uIEUoZCl7dmFyIGI7cmV0dXJuIHUoKSgpLndyYXAoZnVuY3Rpb24oTSl7Zm9yKDs7KXN3aXRjaChNLnByZXY9TS5uZXh0KXtjYXNlIDA6cmV0dXJuIGI9bmV3IFVSTFNlYXJjaFBhcmFtcyhkKS50b1N0cmluZygpLE0uYWJydXB0KCJyZXR1cm4iLCgwLGYucmVxdWVzdCkoIi9hcGkvY29kZS9nZW4vbGlzdD8iLmNvbmNhdChiKSx7ZGF0YTpkLG1ldGhvZDoiZ2V0IixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In19KSk7Y2FzZSAyOmNhc2UiZW5kIjpyZXR1cm4gTS5zdG9wKCl9fSxFKX0pKSxCLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBEKEUpe3JldHVybiBDLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBDKCl7cmV0dXJuIEM9bCgpKHUoKSgpLm1hcmsoZnVuY3Rpb24gRShkKXtyZXR1cm4gdSgpKCkud3JhcChmdW5jdGlvbihpKXtmb3IoOzspc3dpdGNoKGkucHJldj1pLm5leHQpe2Nhc2UgMDpyZXR1cm4gaS5hYnJ1cHQoInJldHVybiIsKDAsZi5yZXF1ZXN0KSgiL2FwaS9jb2RlL2dlbi8iLmNvbmNhdChkKSx7bWV0aG9kOiJnZXQiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgifX0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBpLnN0b3AoKX19LEUpfSkpLEMuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHcoRSl7cmV0dXJuIG0uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIG0oKXtyZXR1cm4gbT1sKCkodSgpKCkubWFyayhmdW5jdGlvbiBFKGQpe3ZhciBiO3JldHVybiB1KCkoKS53cmFwKGZ1bmN0aW9uKE0pe2Zvcig7Oylzd2l0Y2goTS5wcmV2PU0ubmV4dCl7Y2FzZSAwOnJldHVybiBiPW5ldyBVUkxTZWFyY2hQYXJhbXMoZCkudG9TdHJpbmcoKSxNLmFicnVwdCgicmV0dXJuIiwoMCxmLnJlcXVlc3QpKCIvYXBpL2NvZGUvZ2VuL2RiL2xpc3Q/Ii5jb25jYXQoYikse2RhdGE6ZCxtZXRob2Q6ImdldCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCJ9fSkpO2Nhc2UgMjpjYXNlImVuZCI6cmV0dXJuIE0uc3RvcCgpfX0sRSl9KSksbS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gQShFKXtyZXR1cm4gaC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gaCgpe3JldHVybiBoPWwoKSh1KCkoKS5tYXJrKGZ1bmN0aW9uIEUoZCl7cmV0dXJuIHUoKSgpLndyYXAoZnVuY3Rpb24oaSl7Zm9yKDs7KXN3aXRjaChpLnByZXY9aS5uZXh0KXtjYXNlIDA6cmV0dXJuIGkuYWJydXB0KCJyZXR1cm4iLCgwLGYucmVxdWVzdCkoIi9hcGkvY29kZS9nZW4vaW1wb3J0VGFibGU/dGFibGVzPSIuY29uY2F0KGQpLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgifX0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBpLnN0b3AoKX19LEUpfSkpLGguYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGcoRSl7cmV0dXJuIG8uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIG8oKXtyZXR1cm4gbz1sKCkodSgpKCkubWFyayhmdW5jdGlvbiBFKGQpe3JldHVybiB1KCkoKS53cmFwKGZ1bmN0aW9uKGkpe2Zvcig7Oylzd2l0Y2goaS5wcmV2PWkubmV4dCl7Y2FzZSAwOnJldHVybiBpLmFicnVwdCgicmV0dXJuIiwoMCxmLnJlcXVlc3QpKCIvYXBpL2NvZGUvZ2VuLyIuY29uY2F0KGQuaWRzKSx7bWV0aG9kOiJkZWxldGUiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgifX0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBpLnN0b3AoKX19LEUpfSkpLG8uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIE8oRSl7cmV0dXJuIEkuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEkoKXtyZXR1cm4gST1sKCkodSgpKCkubWFyayhmdW5jdGlvbiBFKGQpe3JldHVybiB1KCkoKS53cmFwKGZ1bmN0aW9uKGkpe2Zvcig7Oylzd2l0Y2goaS5wcmV2PWkubmV4dCl7Y2FzZSAwOnJldHVybiBpLmFicnVwdCgicmV0dXJuIiwoMCxmLnJlcXVlc3QpKCIvYXBpL2NvZGUvZ2VuIix7bWV0aG9kOiJQT1NUIixkYXRhOl8oKSh7fSxkKX0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBpLnN0b3AoKX19LEUpfSkpLEkuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHYoRSl7cmV0dXJuIGMuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGMoKXtyZXR1cm4gYz1sKCkodSgpKCkubWFyayhmdW5jdGlvbiBFKGQpe3JldHVybiB1KCkoKS53cmFwKGZ1bmN0aW9uKGkpe2Zvcig7Oylzd2l0Y2goaS5wcmV2PWkubmV4dCl7Y2FzZSAwOnJldHVybiBpLmFicnVwdCgicmV0dXJuIiwoMCxmLnJlcXVlc3QpKCIvYXBpL2NvZGUvZ2VuIix7bWV0aG9kOiJQVVQiLGRhdGE6XygpKHt9LGQpfSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGkuc3RvcCgpfX0sRSl9KSksYy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24geihFKXtyZXR1cm4gSi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gSigpe3JldHVybiBKPWwoKSh1KCkoKS5tYXJrKGZ1bmN0aW9uIEUoZCl7cmV0dXJuIHUoKSgpLndyYXAoZnVuY3Rpb24oaSl7Zm9yKDs7KXN3aXRjaChpLnByZXY9aS5uZXh0KXtjYXNlIDA6cmV0dXJuIGkuYWJydXB0KCJyZXR1cm4iLCgwLGYucmVxdWVzdCkoIi9hcGkvY29kZS9nZW4vc3luY2hEYi8iLmNvbmNhdChkKSx7bWV0aG9kOiJHRVQifSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGkuc3RvcCgpfX0sRSl9KSksSi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gVihFKXtyZXR1cm4gVC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gVCgpe3JldHVybiBUPWwoKSh1KCkoKS5tYXJrKGZ1bmN0aW9uIEUoZCl7cmV0dXJuIHUoKSgpLndyYXAoZnVuY3Rpb24oaSl7Zm9yKDs7KXN3aXRjaChpLnByZXY9aS5uZXh0KXtjYXNlIDA6cmV0dXJuIGkuYWJydXB0KCJyZXR1cm4iLCgwLGYucmVxdWVzdCkoIi9hcGkvY29kZS9nZW4vZ2VuQ29kZS8iLmNvbmNhdChkKSx7bWV0aG9kOiJHRVQifSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGkuc3RvcCgpfX0sRSl9KSksVC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gTChFKXtyZXR1cm4gVy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gVygpe3JldHVybiBXPWwoKSh1KCkoKS5tYXJrKGZ1bmN0aW9uIEUoZCl7cmV0dXJuIHUoKSgpLndyYXAoZnVuY3Rpb24oaSl7Zm9yKDs7KXN3aXRjaChpLnByZXY9aS5uZXh0KXtjYXNlIDA6cmV0dXJuIGkuYWJydXB0KCJyZXR1cm4iLCgwLFMucDYpKCIvYXBpL2NvZGUvZ2VuL2JhdGNoR2VuQ29kZT90YWJsZXM9Ii5jb25jYXQoZCkpKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBpLnN0b3AoKX19LEUpfSkpLFcuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHAoRSl7cmV0dXJuIEsuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEsoKXtyZXR1cm4gSz1sKCkodSgpKCkubWFyayhmdW5jdGlvbiBFKGQpe3JldHVybiB1KCkoKS53cmFwKGZ1bmN0aW9uKGkpe2Zvcig7Oylzd2l0Y2goaS5wcmV2PWkubmV4dCl7Y2FzZSAwOnJldHVybiBpLmFicnVwdCgicmV0dXJuIiwoMCxmLnJlcXVlc3QpKCIvYXBpL2NvZGUvZ2VuL3ByZXZpZXcvIi5jb25jYXQoZCkse21ldGhvZDoiR0VUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In19KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gaS5zdG9wKCl9fSxFKX0pKSxLLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19LDkyOTgyOmZ1bmN0aW9uKHEsVSxuKXtuLmQoVSx7SHI6ZnVuY3Rpb24oKXtyZXR1cm4gQX0sUUs6ZnVuY3Rpb24oKXtyZXR1cm4gSn0sVmQ6ZnVuY3Rpb24oKXtyZXR1cm4gQ30sYTc6ZnVuY3Rpb24oKXtyZXR1cm4gT30saks6ZnVuY3Rpb24oKXtyZXR1cm4gQn0sbjI6ZnVuY3Rpb24oKXtyZXR1cm4gen0sb0g6ZnVuY3Rpb24oKXtyZXR1cm4gZ30scFg6ZnVuY3Rpb24oKXtyZXR1cm4gd30sc0Y6ZnVuY3Rpb24oKXtyZXR1cm4gdn19KTt2YXIgRj1uKDE1MDA5KSxfPW4ubihGKSxSPW4oOTc4NTcpLHU9bi5uKFIpLFA9big5OTI4OSksbD1uLm4oUCksZj1uKDc2NzcyKSxTPW4oMzM4NjcpLHk9bigzMDk2NCk7ZnVuY3Rpb24gQihUKXtyZXR1cm4gRC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gRCgpe3JldHVybiBEPWwoKShfKCkoKS5tYXJrKGZ1bmN0aW9uIFQoTCl7cmV0dXJuIF8oKSgpLndyYXAoZnVuY3Rpb24ocCl7Zm9yKDs7KXN3aXRjaChwLnByZXY9cC5uZXh0KXtjYXNlIDA6cmV0dXJuIHAuYWJydXB0KCJyZXR1cm4iLCgwLGYucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RpY3QvdHlwZS9saXN0Iix7cGFyYW1zOnUoKSh7fSxMKSxtZXRob2Q6IkdFVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCJ9fSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIHAuc3RvcCgpfX0sVCl9KSksRC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gQyhUKXtyZXR1cm4oMCxmLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS9kaWN0L3R5cGUvIi5jb25jYXQoVCkse21ldGhvZDoiR0VUIn0pfWZ1bmN0aW9uIHcoVCxMKXtyZXR1cm4gbS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gbSgpe3JldHVybiBtPWwoKShfKCkoKS5tYXJrKGZ1bmN0aW9uIFQoTCxXKXt2YXIgcCxLO3JldHVybiBfKCkoKS53cmFwKGZ1bmN0aW9uKGQpe2Zvcig7Oylzd2l0Y2goZC5wcmV2PWQubmV4dCl7Y2FzZSAwOnJldHVybiBkLm5leHQ9MiwoMCxmLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS9kaWN0L2RhdGEvdHlwZS8iLmNvbmNhdChMKSx7bWV0aG9kOiJHRVQifSk7Y2FzZSAyOmlmKHA9ZC5zZW50LHAuY29kZSE9PVMuaUsuU1VDQ0VTUyl7ZC5uZXh0PTk7YnJlYWt9cmV0dXJuIEs9e30scC5kYXRhLmZvckVhY2goZnVuY3Rpb24oYil7S1tiLmRpY3RWYWx1ZV09e3RleHQ6Yi5kaWN0TGFiZWwsbGFiZWw6Yi5kaWN0TGFiZWwsdmFsdWU6Vz9OdW1iZXIoYi5kaWN0VmFsdWUpOmIuZGljdFZhbHVlLGtleTpiLmRpY3RDb2RlLGxpc3RDbGFzczpiLmxpc3RDbGFzcyxzdGF0dXM6Yi5saXN0Q2xhc3N9fSksZC5hYnJ1cHQoInJldHVybiIsSyk7Y2FzZSA5OnJldHVybiBkLmFicnVwdCgicmV0dXJuIix7fSk7Y2FzZSAxMDpjYXNlImVuZCI6cmV0dXJuIGQuc3RvcCgpfX0sVCl9KSksbS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gQShULEwpe3JldHVybiBoLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBoKCl7cmV0dXJuIGg9bCgpKF8oKSgpLm1hcmsoZnVuY3Rpb24gVChMLFcpe3ZhciBwLEs7cmV0dXJuIF8oKSgpLndyYXAoZnVuY3Rpb24oZCl7Zm9yKDs7KXN3aXRjaChkLnByZXY9ZC5uZXh0KXtjYXNlIDA6cmV0dXJuIGQubmV4dD0yLCgwLGYucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RpY3QvZGF0YS90eXBlLyIuY29uY2F0KEwpLHttZXRob2Q6IkdFVCJ9KTtjYXNlIDI6aWYocD1kLnNlbnQscC5jb2RlIT09MjAwKXtkLm5leHQ9NjticmVha31yZXR1cm4gSz1wLmRhdGEubWFwKGZ1bmN0aW9uKGIpe3JldHVybnt0ZXh0OmIuZGljdExhYmVsLGxhYmVsOmIuZGljdExhYmVsLHZhbHVlOlc/TnVtYmVyKGIuZGljdFZhbHVlKTpiLmRpY3RWYWx1ZSxrZXk6Yi5kaWN0Q29kZSxsaXN0Q2xhc3M6Yi5saXN0Q2xhc3Msc3RhdHVzOmIubGlzdENsYXNzfX0pLGQuYWJydXB0KCJyZXR1cm4iLEspO2Nhc2UgNjpyZXR1cm4gZC5hYnJ1cHQoInJldHVybiIsW10pO2Nhc2UgNzpjYXNlImVuZCI6cmV0dXJuIGQuc3RvcCgpfX0sVCl9KSksaC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gZyhUKXtyZXR1cm4gby5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gbygpe3JldHVybiBvPWwoKShfKCkoKS5tYXJrKGZ1bmN0aW9uIFQoTCl7cmV0dXJuIF8oKSgpLndyYXAoZnVuY3Rpb24ocCl7Zm9yKDs7KXN3aXRjaChwLnByZXY9cC5uZXh0KXtjYXNlIDA6cmV0dXJuIHAuYWJydXB0KCJyZXR1cm4iLCgwLGYucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RpY3QvdHlwZSIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCJ9LGRhdGE6TH0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBwLnN0b3AoKX19LFQpfSkpLG8uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIE8oVCl7cmV0dXJuIEkuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEkoKXtyZXR1cm4gST1sKCkoXygpKCkubWFyayhmdW5jdGlvbiBUKEwpe3JldHVybiBfKCkoKS53cmFwKGZ1bmN0aW9uKHApe2Zvcig7Oylzd2l0Y2gocC5wcmV2PXAubmV4dCl7Y2FzZSAwOnJldHVybiBwLmFicnVwdCgicmV0dXJuIiwoMCxmLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS9kaWN0L3R5cGUiLHttZXRob2Q6IlBVVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCJ9LGRhdGE6TH0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBwLnN0b3AoKX19LFQpfSkpLEkuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHYoVCl7cmV0dXJuIGMuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGMoKXtyZXR1cm4gYz1sKCkoXygpKCkubWFyayhmdW5jdGlvbiBUKEwpe3JldHVybiBfKCkoKS53cmFwKGZ1bmN0aW9uKHApe2Zvcig7Oylzd2l0Y2gocC5wcmV2PXAubmV4dCl7Y2FzZSAwOnJldHVybiBwLmFicnVwdCgicmV0dXJuIiwoMCxmLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS9kaWN0L3R5cGUvIi5jb25jYXQoTCkse21ldGhvZDoiREVMRVRFIn0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBwLnN0b3AoKX19LFQpfSkpLGMuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHooVCl7cmV0dXJuKDAseS5zdSkoIi9hcGkvc3lzdGVtL2RpY3QvdHlwZS9leHBvcnQiLHtwYXJhbXM6VH0sImRpY3RfdHlwZV8iLmNvbmNhdChuZXcgRGF0ZSgpLmdldFRpbWUoKSwiLnhsc3giKSl9ZnVuY3Rpb24gSihUKXtyZXR1cm4gVi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gVigpe3JldHVybiBWPWwoKShfKCkoKS5tYXJrKGZ1bmN0aW9uIFQoTCl7cmV0dXJuIF8oKSgpLndyYXAoZnVuY3Rpb24ocCl7Zm9yKDs7KXN3aXRjaChwLnByZXY9cC5uZXh0KXtjYXNlIDA6cmV0dXJuIHAuYWJydXB0KCJyZXR1cm4iLCgwLGYucmVxdWVzdCkoIi9hcGkvc3lzdGVtL2RpY3QvdHlwZS9vcHRpb25zZWxlY3QiLHtwYXJhbXM6dSgpKHt9LEwpLG1ldGhvZDoiR0VUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In19KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gcC5zdG9wKCl9fSxUKX0pKSxWLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19LDUyNzI4OmZ1bmN0aW9uKHEsVSxuKXtuLmQoVSx7QWY6ZnVuY3Rpb24oKXtyZXR1cm4gU30sVGg6ZnVuY3Rpb24oKXtyZXR1cm4gZ30sXzg6ZnVuY3Rpb24oKXtyZXR1cm4gd30sYkw6ZnVuY3Rpb24oKXtyZXR1cm4gRH0sbl86ZnVuY3Rpb24oKXtyZXR1cm4gQX19KTt2YXIgRj1uKDE1MDA5KSxfPW4ubihGKSxSPW4oOTc4NTcpLHU9bi5uKFIpLFA9big5OTI4OSksbD1uLm4oUCksZj1uKDc2NzcyKTtmdW5jdGlvbiBTKG8sTyl7cmV0dXJuIHkuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHkoKXtyZXR1cm4geT1sKCkoXygpKCkubWFyayhmdW5jdGlvbiBvKE8sSSl7cmV0dXJuIF8oKSgpLndyYXAoZnVuY3Rpb24oYyl7Zm9yKDs7KXN3aXRjaChjLnByZXY9Yy5uZXh0KXtjYXNlIDA6cmV0dXJuIGMuYWJydXB0KCJyZXR1cm4iLCgwLGYucmVxdWVzdCkoIi9hcGkvc3lzdGVtL21lbnUvbGlzdCIsdSgpKHttZXRob2Q6IkdFVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCJ9LHBhcmFtczpPfSxJfHx7fSkpKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBjLnN0b3AoKX19LG8pfSkpLHkuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEIobyxPKXtyZXR1cm4gcmVxdWVzdCgiL2FwaS9zeXN0ZW0vbWVudS8iLmNvbmNhdChvKSxfb2JqZWN0U3ByZWFkKHttZXRob2Q6IkdFVCJ9LE98fHt9KSl9ZnVuY3Rpb24gRChvLE8pe3JldHVybiBDLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBDKCl7cmV0dXJuIEM9bCgpKF8oKSgpLm1hcmsoZnVuY3Rpb24gbyhPLEkpe3JldHVybiBfKCkoKS53cmFwKGZ1bmN0aW9uKGMpe2Zvcig7Oylzd2l0Y2goYy5wcmV2PWMubmV4dCl7Y2FzZSAwOnJldHVybiBjLmFicnVwdCgicmV0dXJuIiwoMCxmLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS9tZW51Iix1KCkoe21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCJ9LGRhdGE6T30sSXx8e30pKSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gYy5zdG9wKCl9fSxvKX0pKSxDLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiB3KG8sTyl7cmV0dXJuIG0uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIG0oKXtyZXR1cm4gbT1sKCkoXygpKCkubWFyayhmdW5jdGlvbiBvKE8sSSl7cmV0dXJuIF8oKSgpLndyYXAoZnVuY3Rpb24oYyl7Zm9yKDs7KXN3aXRjaChjLnByZXY9Yy5uZXh0KXtjYXNlIDA6cmV0dXJuIGMuYWJydXB0KCJyZXR1cm4iLCgwLGYucmVxdWVzdCkoIi9hcGkvc3lzdGVtL21lbnUiLHUoKSh7bWV0aG9kOiJQVVQiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgifSxkYXRhOk99LEl8fHt9KSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGMuc3RvcCgpfX0sbyl9KSksbS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gQShvLE8pe3JldHVybiBoLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBoKCl7cmV0dXJuIGg9bCgpKF8oKSgpLm1hcmsoZnVuY3Rpb24gbyhPLEkpe3JldHVybiBfKCkoKS53cmFwKGZ1bmN0aW9uKGMpe2Zvcig7Oylzd2l0Y2goYy5wcmV2PWMubmV4dCl7Y2FzZSAwOnJldHVybiBjLmFicnVwdCgicmV0dXJuIiwoMCxmLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS9tZW51LyIuY29uY2F0KE8pLHUoKSh7bWV0aG9kOiJERUxFVEUifSxJfHx7fSkpKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBjLnN0b3AoKX19LG8pfSkpLGguYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGcoKXtyZXR1cm4oMCxmLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS9tZW51L3RyZWVzZWxlY3QiLHttZXRob2Q6IkdFVCJ9KX19LDMwOTY0OmZ1bmN0aW9uKHEsVSxuKXtuLmQoVSx7cDY6ZnVuY3Rpb24oKXtyZXR1cm4gQn0sc3U6ZnVuY3Rpb24oKXtyZXR1cm4gRH19KTt2YXIgRj1uKDE1MDA5KSxfPW4ubihGKSxSPW4oOTc4NTcpLHU9bi5uKFIpLFA9big5OTI4OSksbD1uLm4oUCksZj1uKDc2NzcyKSxTPXt4bHN4OiJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCIsemlwOiJhcHBsaWNhdGlvbi96aXAifTtmdW5jdGlvbiB5KG0sQSl7dmFyIGg9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpLGc9bmV3IEJsb2IoW20uZGF0YV0se3R5cGU6QX0pLG89bmV3IFJlZ0V4cCgiZmlsZW5hbWU9KFteO10rXFwuW15cXC47XSspOyoiKSxPPWRlY29kZVVSSShtLmhlYWRlcnNbImNvbnRlbnQtZGlzcG9zaXRpb24iXSksST1vLmV4ZWMoTyksdj1JP0lbMV06ImZpbGUiO3Y9di5yZXBsYWNlKC8iL2csIiIpLGguc3R5bGUuZGlzcGxheT0ibm9uZSIsaC5ocmVmPVVSTC5jcmVhdGVPYmplY3RVUkwoZyksaC5zZXRBdHRyaWJ1dGUoImRvd25sb2FkIix2KSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGgpLGguY2xpY2soKSxVUkwucmV2b2tlT2JqZWN0VVJMKGguaHJlZiksZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChoKX1mdW5jdGlvbiBCKG0peygwLGYucmVxdWVzdCkobSx7bWV0aG9kOiJHRVQiLHJlc3BvbnNlVHlwZToiYmxvYiIsZ2V0UmVzcG9uc2U6ITB9KS50aGVuKGZ1bmN0aW9uKEEpe3koQSxTLnppcCl9KX1mdW5jdGlvbiBEKG0sQSxoKXtyZXR1cm4gQy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gQygpe3JldHVybiBDPWwoKShfKCkoKS5tYXJrKGZ1bmN0aW9uIG0oQSxoLGcpe3JldHVybiBfKCkoKS53cmFwKGZ1bmN0aW9uKE8pe2Zvcig7Oylzd2l0Y2goTy5wcmV2PU8ubmV4dCl7Y2FzZSAwOnJldHVybiBPLmFicnVwdCgicmV0dXJuIiwoMCxmLnJlcXVlc3QpKEEsdSgpKHUoKSh7fSxoKSx7fSx7bWV0aG9kOiJQT1NUIixyZXNwb25zZVR5cGU6ImJsb2IifSkpLnRoZW4oZnVuY3Rpb24oSSl7dmFyIHY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpLGM9STt2LnN0eWxlLmRpc3BsYXk9Im5vbmUiLHYuaHJlZj1VUkwuY3JlYXRlT2JqZWN0VVJMKGMpLHYuc2V0QXR0cmlidXRlKCJkb3dubG9hZCIsZyksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh2KSx2LmNsaWNrKCksVVJMLnJldm9rZU9iamVjdFVSTCh2LmhyZWYpLGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodil9KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gTy5zdG9wKCl9fSxtKX0pKSxDLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiB3KG0pe3dpbmRvdy5sb2NhdGlvbi5ocmVmPSIvYXBpL2NvbW1vbi9kb3dubG9hZD9maWxlTmFtZT0iLmNvbmNhdChlbmNvZGVVUkkobSksIiZkZWxldGU9IiwhMCl9fSwzMTk4MTpmdW5jdGlvbihxLFUsbil7bi5kKFUse0MyOmZ1bmN0aW9uKCl7cmV0dXJuIF99LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHV9fSk7dmFyIEY9big4NzczNSk7ZnVuY3Rpb24gXyhQLGwsZixTLHksQil7dmFyIEQ9e2lkOmx8fCJpZCIsbmFtZTpmfHwibmFtZSIscGFyZW50SWQ6U3x8InBhcmVudElkIixwYXJlbnROYW1lOnl8fCJwYXJlbnROYW1lIixjaGlsZHJlbkxpc3Q6Qnx8ImNoaWxkcmVuIn0sQz1bXSx3PVtdLG09W107UC5mb3JFYWNoKGZ1bmN0aW9uKGgpe3ZhciBnPWgsbz1nW0QucGFyZW50SWRdO0Nbb118fChDW29dPVtdKSxnLmtleT1nW0QuaWRdLGcudGl0bGU9Z1tELm5hbWVdLGcudmFsdWU9Z1tELmlkXSxnW0QuY2hpbGRyZW5MaXN0XT1udWxsLHdbZ1tELmlkXV09ZyxDW29dLnB1c2goZyl9KSxQLmZvckVhY2goZnVuY3Rpb24oaCl7dmFyIGc9aCxvPWdbRC5wYXJlbnRJZF07d1tvXXx8KGdbRC5wYXJlbnROYW1lXT0iIixtLnB1c2goZykpfSk7ZnVuY3Rpb24gQShoKXt2YXIgZz1oO0NbZ1tELmlkXV0mJihnW0QuY2hpbGRyZW5MaXN0XXx8KGdbRC5jaGlsZHJlbkxpc3RdPVtdKSxnW0QuY2hpbGRyZW5MaXN0XT1DW2dbRC5pZF1dKSxnW0QuY2hpbGRyZW5MaXN0XSYmZ1tELmNoaWxkcmVuTGlzdF0uZm9yRWFjaChmdW5jdGlvbihvKXt2YXIgTz1vO09bRC5wYXJlbnROYW1lXT1nW0QubmFtZV0sQShPKX0pfXJldHVybiBtLmZvckVhY2goZnVuY3Rpb24oaCl7QShoKX0pLG19dmFyIFI9ZnVuY3Rpb24oKXtyZXR1cm4gcGFyc2Uod2luZG93LmxvY2F0aW9uLmhyZWYuc3BsaXQoIj8iKVsxXSl9O2Z1bmN0aW9uIHUoUCl7dmFyIGw9UC5tYXAoZnVuY3Rpb24oZil7dmFyIFM9e2lkOmYuaWQsdGl0bGU6Zi5sYWJlbCxrZXk6IiIuY29uY2F0KGYuaWQpLHZhbHVlOmYuaWR9O3JldHVybiBmLmNoaWxkcmVuJiYoUy5jaGlsZHJlbj11KGYuY2hpbGRyZW4pKSxTfSk7cmV0dXJuIGx9fX1dKTsKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvcF9fVG9vbF9fR2VuX19lZGl0LmZkOWIzYWI5LmNodW5rLmNzcyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvcF9fVG9vbF9fR2VuX19lZGl0LmZkOWIzYWI5LmNodW5rLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYzI3ZjQwCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy9wX19Ub29sX19HZW5fX2VkaXQuZmQ5YjNhYjkuY2h1bmsuY3NzCkBAIC0wLDAgKzEgQEAKKy5zdGVwc19fX19zdFpELmFudC1zdGVwc3ttYXgtd2lkdGg6NzUwcHg7bWFyZ2luOjE2cHggYXV0b30KZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvcF9fVG9vbF9fR2VuX19pbXBvcnQuNjZmMjJjNDAuYXN5bmMuanMgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljL3BfX1Rvb2xfX0dlbl9faW1wb3J0LjY2ZjIyYzQwLmFzeW5jLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdkYzgwMmIKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljL3BfX1Rvb2xfX0dlbl9faW1wb3J0LjY2ZjIyYzQwLmFzeW5jLmpzCkBAIC0wLDAgKzEgQEAKKyJ1c2Ugc3RyaWN0Ijsoc2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Bybz1zZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvfHxbXSkucHVzaChbWzM4NjcsMjUzMV0sezY2ODc2OmZ1bmN0aW9uKHcsUCxyKXtyLnIoUCk7dmFyIHk9cig5Nzg1Nyksdj1yLm4oeSksQT1yKDU1NzQpLHQ9ci5uKEEpLEw9cigxNTAwOSkscz1yLm4oTCksZD1yKDk5Mjg5KSxqPXIubihkKSxXPXIoMjYwNTgpLGM9cigyNDUzKSxSPXIoNDM5MyksYj1yKDgzNjIyKSxVPXIoNjcyOTQpLHU9cig3Njc3MikscD1yKDEyNTMxKSxpPXIoNjUzODUpLE89cigyNDk2OSksRT1yKDcxOTY1KSxvPXIoODU4OTMpLGg9Vy5aLkNvbnRlbnQsbT1mdW5jdGlvbigpe3ZhciBJPWooKShzKCkoKS5tYXJrKGZ1bmN0aW9uIEQoQyl7dmFyIGc7cmV0dXJuIHMoKSgpLndyYXAoZnVuY3Rpb24obCl7Zm9yKDs7KXN3aXRjaChsLnByZXY9bC5uZXh0KXtjYXNlIDA6cmV0dXJuIGc9Yy5aUC5sb2FkaW5nKCJcdTZCNjNcdTU3MjhcdTkxNERcdTdGNkUiKSxsLnByZXY9MSxsLm5leHQ9NCwoMCxwLmltcG9ydFRhYmxlcykoQyk7Y2FzZSA0OnJldHVybiBnKCksYy5aUC5zdWNjZXNzKCJcdTkxNERcdTdGNkVcdTYyMTBcdTUyOUYiKSxsLmFicnVwdCgicmV0dXJuIiwhMCk7Y2FzZSA5OnJldHVybiBsLnByZXY9OSxsLnQwPWwuY2F0Y2goMSksZygpLGMuWlAuZXJyb3IoIlx1OTE0RFx1N0Y2RVx1NTkzMVx1OEQyNVx1OEJGN1x1OTFDRFx1OEJENVx1RkYwMSIpLGwuYWJydXB0KCJyZXR1cm4iLCExKTtjYXNlIDE0OmNhc2UiZW5kIjpyZXR1cm4gbC5zdG9wKCl9fSxELG51bGwsW1sxLDldXSl9KSk7cmV0dXJuIGZ1bmN0aW9uKEMpe3JldHVybiBJLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksTT1mdW5jdGlvbigpe3ZhciBEPSgwLFUudXNlU3RhdGUpKFtdKSxDPXQoKShELDIpLGc9Q1swXSxCPUNbMV0sbD1be3RpdGxlOiJcdTg4NjhcdTU0MERcdTc5RjAiLGRhdGFJbmRleDoidGFibGVOYW1lIn0se3RpdGxlOiJcdTg4NjhcdTYzQ0ZcdThGRjAiLGRhdGFJbmRleDoidGFibGVDb21tZW50In0se3RpdGxlOiJcdTUyMUJcdTVFRkFcdTY1RjZcdTk1RjQiLGRhdGFJbmRleDoiY3JlYXRlVGltZSIsdmFsdWVUeXBlOiJ0ZXh0YXJlYSIsaGlkZUluU2VhcmNoOiEwfV07cmV0dXJuKDAsby5qc3gpKGgse2NoaWxkcmVuOigwLG8uanN4KShSLlose2JvcmRlcmVkOiExLGNoaWxkcmVuOigwLG8uanN4KShpLlose2hlYWRlclRpdGxlOiJcdTRFRTNcdTc4MDFcdTc1MUZcdTYyMTBcdTRGRTFcdTYwNkYiLHJvd0tleToidGFibGVOYW1lIixzZWFyY2g6e2xhYmVsV2lkdGg6MTIwfSx0b29sQmFyUmVuZGVyOmZ1bmN0aW9uKCl7cmV0dXJuWygwLG8uanN4cykoYi5aUCx7dHlwZToicHJpbWFyeSIsb25DbGljazpqKCkocygpKCkubWFyayhmdW5jdGlvbiBUKCl7dmFyIG47cmV0dXJuIHMoKSgpLndyYXAoZnVuY3Rpb24oXyl7Zm9yKDs7KXN3aXRjaChfLnByZXY9Xy5uZXh0KXtjYXNlIDA6aWYoIShnLmxlbmd0aDwxKSl7Xy5uZXh0PTM7YnJlYWt9cmV0dXJuIGMuWlAuZXJyb3IoIlx1OEJGN1x1OTAwOVx1NjJFOVx1ODk4MVx1NUJGQ1x1NTE2NVx1NzY4NFx1ODg2OFx1RkYwMSIpLF8uYWJydXB0KCJyZXR1cm4iKTtjYXNlIDM6cmV0dXJuIF8ubmV4dD01LG0oZy5qb2luKCIsIikpO2Nhc2UgNTpuPV8uc2VudCxuJiZ1Lmhpc3RvcnkuYmFjaygpO2Nhc2UgNzpjYXNlImVuZCI6cmV0dXJuIF8uc3RvcCgpfX0sVCl9KSksY2hpbGRyZW46WygwLG8uanN4KShPLlose30pLCIgIiwoMCxvLmpzeCkodS5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiZ2VuLnN1Ym1pdCIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjNEMFx1NEVBNCJ9KV19LCJwcmltYXJ5IiksKDAsby5qc3hzKShiLlpQLHt0eXBlOiJwcmltYXJ5IixvbkNsaWNrOmZ1bmN0aW9uKCl7dS5oaXN0b3J5LmJhY2soKX0sY2hpbGRyZW46WygwLG8uanN4KShFLlose30pLCIgIiwoMCxvLmpzeCkodS5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiZ2VuLmdvYmFjayIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEZENFx1NTZERSJ9KV19LCJnb2JhY2siKV19LHJlcXVlc3Q6ZnVuY3Rpb24oVCl7cmV0dXJuKDAscC5xdWVyeVRhYmxlTGlzdCkodigpKHt9LFQpKS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybntkYXRhOm4ucm93cyx0b3RhbDpuLnRvdGFsLHN1Y2Nlc3M6ITB9fSl9LGNvbHVtbnM6bCxyb3dTZWxlY3Rpb246e29uQ2hhbmdlOmZ1bmN0aW9uKFQsbil7aWYobiYmbi5sZW5ndGg+MCl7dmFyIGE9bi5tYXAoZnVuY3Rpb24oXyl7cmV0dXJuIF8udGFibGVOYW1lfSk7QihhKX19fX0pfSl9KX07UC5kZWZhdWx0PU19LDEyNTMxOmZ1bmN0aW9uKHcsUCxyKXtyLnIoUCksci5kKFAse2FkZERhdGE6ZnVuY3Rpb24oKXtyZXR1cm4gb30sYmF0Y2hHZW5Db2RlOmZ1bmN0aW9uKCl7cmV0dXJuIEJ9LGdlbkNvZGU6ZnVuY3Rpb24oKXtyZXR1cm4gQ30sZ2V0R2VuQ29kZTpmdW5jdGlvbigpe3JldHVybiBSfSxnZXRHZW5Db2RlTGlzdDpmdW5jdGlvbigpe3JldHVybiBXfSxpbXBvcnRUYWJsZXM6ZnVuY3Rpb24oKXtyZXR1cm4gcH0scHJldmlld0NvZGU6ZnVuY3Rpb24oKXtyZXR1cm4gS30scXVlcnlUYWJsZUxpc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gVX0scmVtb3ZlRGF0YTpmdW5jdGlvbigpe3JldHVybiBPfSxzeW5jRGJJbmZvOmZ1bmN0aW9uKCl7cmV0dXJuIEl9LHVwZGF0ZURhdGE6ZnVuY3Rpb24oKXtyZXR1cm4gbX19KTt2YXIgeT1yKDk3ODU3KSx2PXIubih5KSxBPXIoMTUwMDkpLHQ9ci5uKEEpLEw9cig5OTI4OSkscz1yLm4oTCksZD1yKDc2NzcyKSxqPXIoMzA5NjQpO2Z1bmN0aW9uIFcobil7cmV0dXJuIGMuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGMoKXtyZXR1cm4gYz1zKCkodCgpKCkubWFyayhmdW5jdGlvbiBuKGEpe3ZhciBfO3JldHVybiB0KCkoKS53cmFwKGZ1bmN0aW9uKGYpe2Zvcig7Oylzd2l0Y2goZi5wcmV2PWYubmV4dCl7Y2FzZSAwOnJldHVybiBfPW5ldyBVUkxTZWFyY2hQYXJhbXMoYSkudG9TdHJpbmcoKSxmLmFicnVwdCgicmV0dXJuIiwoMCxkLnJlcXVlc3QpKCIvYXBpL2NvZGUvZ2VuL2xpc3Q/Ii5jb25jYXQoXykse2RhdGE6YSxtZXRob2Q6ImdldCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCJ9fSkpO2Nhc2UgMjpjYXNlImVuZCI6cmV0dXJuIGYuc3RvcCgpfX0sbil9KSksYy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gUihuKXtyZXR1cm4gYi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gYigpe3JldHVybiBiPXMoKSh0KCkoKS5tYXJrKGZ1bmN0aW9uIG4oYSl7cmV0dXJuIHQoKSgpLndyYXAoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLCgwLGQucmVxdWVzdCkoIi9hcGkvY29kZS9nZW4vIi5jb25jYXQoYSkse21ldGhvZDoiZ2V0IixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In19KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSxuKX0pKSxiLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBVKG4pe3JldHVybiB1LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiB1KCl7cmV0dXJuIHU9cygpKHQoKSgpLm1hcmsoZnVuY3Rpb24gbihhKXt2YXIgXztyZXR1cm4gdCgpKCkud3JhcChmdW5jdGlvbihmKXtmb3IoOzspc3dpdGNoKGYucHJldj1mLm5leHQpe2Nhc2UgMDpyZXR1cm4gXz1uZXcgVVJMU2VhcmNoUGFyYW1zKGEpLnRvU3RyaW5nKCksZi5hYnJ1cHQoInJldHVybiIsKDAsZC5yZXF1ZXN0KSgiL2FwaS9jb2RlL2dlbi9kYi9saXN0PyIuY29uY2F0KF8pLHtkYXRhOmEsbWV0aG9kOiJnZXQiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgifX0pKTtjYXNlIDI6Y2FzZSJlbmQiOnJldHVybiBmLnN0b3AoKX19LG4pfSkpLHUuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHAobil7cmV0dXJuIGkuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGkoKXtyZXR1cm4gaT1zKCkodCgpKCkubWFyayhmdW5jdGlvbiBuKGEpe3JldHVybiB0KCkoKS53cmFwKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOnJldHVybiBlLmFicnVwdCgicmV0dXJuIiwoMCxkLnJlcXVlc3QpKCIvYXBpL2NvZGUvZ2VuL2ltcG9ydFRhYmxlP3RhYmxlcz0iLmNvbmNhdChhKSx7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In19KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSxuKX0pKSxpLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBPKG4pe3JldHVybiBFLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBFKCl7cmV0dXJuIEU9cygpKHQoKSgpLm1hcmsoZnVuY3Rpb24gbihhKXtyZXR1cm4gdCgpKCkud3JhcChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsKDAsZC5yZXF1ZXN0KSgiL2FwaS9jb2RlL2dlbi8iLmNvbmNhdChhLmlkcykse21ldGhvZDoiZGVsZXRlIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In19KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSxuKX0pKSxFLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBvKG4pe3JldHVybiBoLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBoKCl7cmV0dXJuIGg9cygpKHQoKSgpLm1hcmsoZnVuY3Rpb24gbihhKXtyZXR1cm4gdCgpKCkud3JhcChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsKDAsZC5yZXF1ZXN0KSgiL2FwaS9jb2RlL2dlbiIse21ldGhvZDoiUE9TVCIsZGF0YTp2KCkoe30sYSl9KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSxuKX0pKSxoLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBtKG4pe3JldHVybiBNLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBNKCl7cmV0dXJuIE09cygpKHQoKSgpLm1hcmsoZnVuY3Rpb24gbihhKXtyZXR1cm4gdCgpKCkud3JhcChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsKDAsZC5yZXF1ZXN0KSgiL2FwaS9jb2RlL2dlbiIse21ldGhvZDoiUFVUIixkYXRhOnYoKSh7fSxhKX0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19LG4pfSkpLE0uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEkobil7cmV0dXJuIEQuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEQoKXtyZXR1cm4gRD1zKCkodCgpKCkubWFyayhmdW5jdGlvbiBuKGEpe3JldHVybiB0KCkoKS53cmFwKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOnJldHVybiBlLmFicnVwdCgicmV0dXJuIiwoMCxkLnJlcXVlc3QpKCIvYXBpL2NvZGUvZ2VuL3N5bmNoRGIvIi5jb25jYXQoYSkse21ldGhvZDoiR0VUIn0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19LG4pfSkpLEQuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEMobil7cmV0dXJuIGcuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGcoKXtyZXR1cm4gZz1zKCkodCgpKCkubWFyayhmdW5jdGlvbiBuKGEpe3JldHVybiB0KCkoKS53cmFwKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOnJldHVybiBlLmFicnVwdCgicmV0dXJuIiwoMCxkLnJlcXVlc3QpKCIvYXBpL2NvZGUvZ2VuL2dlbkNvZGUvIi5jb25jYXQoYSkse21ldGhvZDoiR0VUIn0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19LG4pfSkpLGcuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEIobil7cmV0dXJuIGwuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGwoKXtyZXR1cm4gbD1zKCkodCgpKCkubWFyayhmdW5jdGlvbiBuKGEpe3JldHVybiB0KCkoKS53cmFwKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOnJldHVybiBlLmFicnVwdCgicmV0dXJuIiwoMCxqLnA2KSgiL2FwaS9jb2RlL2dlbi9iYXRjaEdlbkNvZGU/dGFibGVzPSIuY29uY2F0KGEpKSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSxuKX0pKSxsLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBLKG4pe3JldHVybiBULmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBUKCl7cmV0dXJuIFQ9cygpKHQoKSgpLm1hcmsoZnVuY3Rpb24gbihhKXtyZXR1cm4gdCgpKCkud3JhcChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsKDAsZC5yZXF1ZXN0KSgiL2FwaS9jb2RlL2dlbi9wcmV2aWV3LyIuY29uY2F0KGEpLHttZXRob2Q6IkdFVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCJ9fSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0sbil9KSksVC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSwzMDk2NDpmdW5jdGlvbih3LFAscil7ci5kKFAse3A2OmZ1bmN0aW9uKCl7cmV0dXJuIGN9LHN1OmZ1bmN0aW9uKCl7cmV0dXJuIFJ9fSk7dmFyIHk9cigxNTAwOSksdj1yLm4oeSksQT1yKDk3ODU3KSx0PXIubihBKSxMPXIoOTkyODkpLHM9ci5uKEwpLGQ9cig3Njc3Miksaj17eGxzeDoiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQiLHppcDoiYXBwbGljYXRpb24vemlwIn07ZnVuY3Rpb24gVyh1LHApe3ZhciBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKSxPPW5ldyBCbG9iKFt1LmRhdGFdLHt0eXBlOnB9KSxFPW5ldyBSZWdFeHAoImZpbGVuYW1lPShbXjtdK1xcLlteXFwuO10rKTsqIiksbz1kZWNvZGVVUkkodS5oZWFkZXJzWyJjb250ZW50LWRpc3Bvc2l0aW9uIl0pLGg9RS5leGVjKG8pLG09aD9oWzFdOiJmaWxlIjttPW0ucmVwbGFjZSgvIi9nLCIiKSxpLnN0eWxlLmRpc3BsYXk9Im5vbmUiLGkuaHJlZj1VUkwuY3JlYXRlT2JqZWN0VVJMKE8pLGkuc2V0QXR0cmlidXRlKCJkb3dubG9hZCIsbSksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpKSxpLmNsaWNrKCksVVJMLnJldm9rZU9iamVjdFVSTChpLmhyZWYpLGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoaSl9ZnVuY3Rpb24gYyh1KXsoMCxkLnJlcXVlc3QpKHUse21ldGhvZDoiR0VUIixyZXNwb25zZVR5cGU6ImJsb2IiLGdldFJlc3BvbnNlOiEwfSkudGhlbihmdW5jdGlvbihwKXtXKHAsai56aXApfSl9ZnVuY3Rpb24gUih1LHAsaSl7cmV0dXJuIGIuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGIoKXtyZXR1cm4gYj1zKCkodigpKCkubWFyayhmdW5jdGlvbiB1KHAsaSxPKXtyZXR1cm4gdigpKCkud3JhcChmdW5jdGlvbihvKXtmb3IoOzspc3dpdGNoKG8ucHJldj1vLm5leHQpe2Nhc2UgMDpyZXR1cm4gby5hYnJ1cHQoInJldHVybiIsKDAsZC5yZXF1ZXN0KShwLHQoKSh0KCkoe30saSkse30se21ldGhvZDoiUE9TVCIscmVzcG9uc2VUeXBlOiJibG9iIn0pKS50aGVuKGZ1bmN0aW9uKGgpe3ZhciBtPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKSxNPWg7bS5zdHlsZS5kaXNwbGF5PSJub25lIixtLmhyZWY9VVJMLmNyZWF0ZU9iamVjdFVSTChNKSxtLnNldEF0dHJpYnV0ZSgiZG93bmxvYWQiLE8pLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobSksbS5jbGljaygpLFVSTC5yZXZva2VPYmplY3RVUkwobS5ocmVmKSxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKG0pfSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIG8uc3RvcCgpfX0sdSl9KSksYi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gVSh1KXt3aW5kb3cubG9jYXRpb24uaHJlZj0iL2FwaS9jb21tb24vZG93bmxvYWQ/ZmlsZU5hbWU9Ii5jb25jYXQoZW5jb2RlVVJJKHUpLCImZGVsZXRlPSIsITApfX19XSk7CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljL3BfX1VzZXJDZW50ZXJfX2luZGV4LjFjNDEzYzZjLmFzeW5jLmpzIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy9wX19Vc2VyQ2VudGVyX19pbmRleC4xYzQxM2M2Yy5hc3luYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNjI5NWIxCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy9wX19Vc2VyQ2VudGVyX19pbmRleC4xYzQxM2M2Yy5hc3luYy5qcwpAQCAtMCwwICsxIEBACisidXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W10pLnB1c2goW1sxMDkxLDkwMDZdLHs4OTAwNjpmdW5jdGlvbihMZSxfLHQpe3QucihfKSx0LmQoXyx7ZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybiBWfX0pO3ZhciB5PXQoNjcyOTQpLEw9dCg0MzkzKSxlZT10KDY4OTk3KSx2PXQoNjYzMDkpLGllPXQoODM2MjIpLHg9dCg1NDgxMSkscmU9dCg4NzU0NyksUz10KDI0MDE5KSxiPXQoOTk2MTEpLFE9dCg3MTI1NSksYWU9dCg0OTY0NyksUj10KDc2NzcyKSxoPXtwb3N0Q2FyZFdyYXBwZXI6InBvc3RDYXJkV3JhcHBlcl9fX1N3MVNpIixwb3N0Q2FyZDoicG9zdENhcmRfX19mTEtOYSIsY292ZXJDb250YWluZXI6ImNvdmVyQ29udGFpbmVyX19fRzhvMTQiLGNvdmVySW1hZ2U6ImNvdmVySW1hZ2VfX19zbmN4ZSIscHJvbW90aW9uQmFkZ2U6InByb21vdGlvbkJhZGdlX19fbnJmRHkiLGNhcmRDb250ZW50OiJjYXJkQ29udGVudF9fX3hvS3NfIixwb3N0VGl0bGU6InBvc3RUaXRsZV9fX2tKTlV0Iixwb3N0TWV0YToicG9zdE1ldGFfX19vQXZjSCIsYXV0aG9yTmFtZToiYXV0aG9yTmFtZV9fX0FWaFNtIixwdWJsaXNoVGltZToicHVibGlzaFRpbWVfX19MclBxaCIsdGFnc0NvbnRhaW5lcjoidGFnc0NvbnRhaW5lcl9fX0Nrb2lxIix0YWc6InRhZ19fX0lQOEtkIixwb3N0U3VtbWFyeToicG9zdFN1bW1hcnlfX19KMVFjNSIscG9zdEZvb3RlcjoicG9zdEZvb3Rlcl9fX1hWY3VyIixzdGF0czoic3RhdHNfX19wUXlyOSIsc3RhdEl0ZW06InN0YXRJdGVtX19fR1pqMEoiLGFudGljb246ImFudGljb25fX19fWksxUCIscmVhZE1vcmVCdG46InJlYWRNb3JlQnRuX19fQnl2NVcifSxsPXQoODU4OTMpLG5lPWZ1bmN0aW9uKHVlKXt2YXIgRj11ZS5wb3N0LGplPUYuaWQsRz1GLnRpdGxlLGNlPUYuYXV0aG9yLHRlPUYucHVibGlzaFRpbWUsSD1GLnRhZ3MsaGU9Ri52aWV3cywkPUYuY29tbWVudHMsZGU9Ri5mYXZvcml0ZXMsZj1GLmxpa2VzLGo9Ri5jb3ZlckltYWdlLFo9Ri5zdW1tYXJ5LFA9Ri5wcm9tb3Rpb25QbGFuSWQsYT1GLmlzUHJvbW90ZWQsQz1mdW5jdGlvbigpe1IuaGlzdG9yeS5wdXNoKCIvcG9zdC1kZXRhaWwvIi5jb25jYXQoamUpKX07cmV0dXJuKDAsbC5qc3gpKCJkaXYiLHtjbGFzc05hbWU6aC5wb3N0Q2FyZFdyYXBwZXIsY2hpbGRyZW46KDAsbC5qc3gpKEwuWix7aG92ZXJhYmxlOiEwLGNvdmVyOigwLGwuanN4cykoImRpdiIse2NsYXNzTmFtZTpoLmNvdmVyQ29udGFpbmVyLGNoaWxkcmVuOlthJiYoMCxsLmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6aC5wcm9tb3Rpb25CYWRnZSxjaGlsZHJlbjpbKDAsbC5qc3gpKHguWix7fSksKDAsbC5qc3gpKCJzcGFuIix7Y2hpbGRyZW46Ilx1NjNBOFx1NUU3RiJ9KV19KSwoMCxsLmpzeCkoImltZyIse2FsdDpHLHNyYzpqLGNsYXNzTmFtZTpoLmNvdmVySW1hZ2Usb25FcnJvcjpmdW5jdGlvbihkKXtkLmN1cnJlbnRUYXJnZXQuc3JjPSIvaW1hZ2VzLzQwNC5wbmcifX0pXX0pLGNsYXNzTmFtZTpoLnBvc3RDYXJkLGJvZHlTdHlsZTp7cGFkZGluZzoiMTZweCIsaGVpZ2h0OiIyNDBweCIsZGlzcGxheToiZmxleCIsZmxleERpcmVjdGlvbjoiY29sdW1uIn0sY2hpbGRyZW46KDAsbC5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOmguY2FyZENvbnRlbnQsY2hpbGRyZW46WygwLGwuanN4KSgiaDMiLHtjbGFzc05hbWU6aC5wb3N0VGl0bGUsdGl0bGU6RyxjaGlsZHJlbjpHfSksKDAsbC5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOmgucG9zdE1ldGEsY2hpbGRyZW46WygwLGwuanN4KShlZS5aLHtzaXplOiJzbWFsbCIsc3R5bGU6e21hcmdpblJpZ2h0OjZ9LGljb246KDAsbC5qc3gpKHJlLlose30pLGNoaWxkcmVuOmNlJiZjZVswXX0pLCgwLGwuanN4KSgic3BhbiIse2NsYXNzTmFtZTpoLmF1dGhvck5hbWUsY2hpbGRyZW46Y2V9KSwoMCxsLmpzeCkoUy5aLHtzdHlsZTp7bWFyZ2luTGVmdDoxMixtYXJnaW5SaWdodDo0fX0pLCgwLGwuanN4KSgic3BhbiIse2NsYXNzTmFtZTpoLnB1Ymxpc2hUaW1lLGNoaWxkcmVuOnRlfSldfSksKDAsbC5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOmgudGFnc0NvbnRhaW5lcixjaGlsZHJlbjpbKEFycmF5LmlzQXJyYXkoSCk/SDpbXSkuc2xpY2UoMCwzKS5tYXAoZnVuY3Rpb24odSl7cmV0dXJuKDAsbC5qc3gpKHYuWix7Y29sb3I6ImJsdWUiLGNsYXNzTmFtZTpoLnRhZyxjaGlsZHJlbjp1fSx1KX0pLEgmJkgubGVuZ3RoPjMmJigwLGwuanN4cykodi5aLHtjb2xvcjoiZGVmYXVsdCIsY2xhc3NOYW1lOmgudGFnLGNoaWxkcmVuOlsiKyIsSC5sZW5ndGgtM119KV19KSwoMCxsLmpzeCkoImRpdiIse2NsYXNzTmFtZTpoLnBvc3RTdW1tYXJ5LHRpdGxlOlosY2hpbGRyZW46Wn0pLCgwLGwuanN4cykoImRpdiIse2NsYXNzTmFtZTpoLnBvc3RGb290ZXIsY2hpbGRyZW46WygwLGwuanN4cykoImRpdiIse2NsYXNzTmFtZTpoLnN0YXRzLGNoaWxkcmVuOlsoMCxsLmpzeHMpKCJzcGFuIix7Y2xhc3NOYW1lOmguc3RhdEl0ZW0sY2hpbGRyZW46WygwLGwuanN4KShiLlose30pLCIgIixoZXx8MF19KSwoMCxsLmpzeHMpKCJzcGFuIix7Y2xhc3NOYW1lOmguc3RhdEl0ZW0sY2hpbGRyZW46WygwLGwuanN4KShRLlose30pLCIgIiwkfHwwXX0pLCgwLGwuanN4cykoInNwYW4iLHtjbGFzc05hbWU6aC5zdGF0SXRlbSxjaGlsZHJlbjpbKDAsbC5qc3gpKGFlLlose30pLCIgIixkZXx8MF19KV19KSwoMCxsLmpzeCkoaWUuWlAse3R5cGU6ImxpbmsiLGNsYXNzTmFtZTpoLnJlYWRNb3JlQnRuLG9uQ2xpY2s6QyxjaGlsZHJlbjoiXHU2N0U1XHU3NzBCXHU2NkY0XHU1OTFBIFx4QkIifSldfSldfSl9KX0pfSxWPW5lfSwxMTE4NzpmdW5jdGlvbihMZSxfLHQpe3QucihfKSx0LmQoXyx7ZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybiBOfX0pO3ZhciB5PXQoOTc4NTcpLEw9dC5uKHkpLGVlPXQoMTUwMDkpLHY9dC5uKGVlKSxpZT10KDk5Mjg5KSx4PXQubihpZSkscmU9dCg1NTc0KSxTPXQubihyZSksYj10KDY3Mjk0KSxRPXQoOTIzOTgpLGFlPXQoMjUyNzgpLFI9dCgzNDA0MSksaD10KDk5ODU5KSxsPXQoMjQ1MyksbmU9dCg2NjMwOSksVj10KDc4OTU3KSxCPXQoODM2MjIpLHVlPXQoODY3MzgpLEY9dCg0MzkzKSxqZT10KDk2MTU0KSxHPXQoNzEyMzApLGNlPXQoMTU3NDYpLHRlPXQoMTc3ODgpLEg9dCgyMzc5OSksaGU9dCgxNTI0MSksJD10KDc4MDQ1KSxkZT10KDUwODg4KSxmPXQoMjQ5NjkpLGo9dCg5OTYxMSksWj10KDg2NTQ4KSxQPXQoNDg2ODkpLGE9dCg0OTY0NyksQz10KDk2OTc0KSx1PXQoNzY2MiksZD10KDg5MDA2KSxjPXt1c2VyQ2VudGVyQ29udGFpbmVyOiJ1c2VyQ2VudGVyQ29udGFpbmVyX19fRkpZUzMiLHVzZXJDZW50ZXJDYXJkOiJ1c2VyQ2VudGVyQ2FyZF9fX2FUN1VXIix0YWJDb250ZW50OiJ0YWJDb250ZW50X19fUU1NOGgiLHRhYkhlYWRlcjoidGFiSGVhZGVyX19fQ2ZGaEgiLGVtcHR5U3RhdGU6ImVtcHR5U3RhdGVfX19UbWJhTiIscGF5bWVudE1vZGFsOiJwYXltZW50TW9kYWxfX19tRWhnViIscGF5bWVudEluZm86InBheW1lbnRJbmZvX19fVlM4WHciLHFyQ29kZToicXJDb2RlX19fS21PaVoiLHFyQ29kZVBsYWNlaG9sZGVyOiJxckNvZGVQbGFjZWhvbGRlcl9fX1RLMTdnIixtb2NrUXJDb2RlOiJtb2NrUXJDb2RlX19fQWNYNG8iLHBheW1lbnRBY3Rpb25zOiJwYXltZW50QWN0aW9uc19fX2dPVGljIn0sZT10KDg1ODkzKSxFPVEuWi5UYWJQYW5lLEk9YWUuWi5UZXh0QXJlYSx6PVIuWi5PcHRpb24sVz1mdW5jdGlvbigpe3ZhciBUPSgwLEMuczApKCksSj0oMCxiLnVzZVN0YXRlKSgibXlQb3N0cyIpLFg9UygpKEosMiksRD1YWzBdLG1lPVhbMV0sc2U9KDAsYi51c2VTdGF0ZSkoITEpLGJlPVMoKShzZSwyKSx4ZT1iZVswXSxLPWJlWzFdLGdlPSgwLGIudXNlU3RhdGUpKCExKSxTZT1TKCkoZ2UsMiksQT1TZVswXSxwZT1TZVsxXSxDZT0oMCxiLnVzZVN0YXRlKSghMSksWmU9UygpKENlLDIpLE5lPVplWzBdLFk9WmVbMV0saz0oMCxiLnVzZVN0YXRlKShbXSksdz1TKCkoaywyKSxFZT13WzBdLFJlPXdbMV0sRGU9KDAsYi51c2VTdGF0ZSkoW10pLGxlPVMoKShEZSwyKSxBZT1sZVswXSxvZT1sZVsxXSxrZT0oMCxiLnVzZVN0YXRlKSghMSksRmU9UygpKGtlLDIpLFhlPUZlWzBdLHdlPUZlWzFdLGNyPWguWi51c2VGb3JtKCksZHI9UygpKGNyLDEpLHplPWRyWzBdLG1yPWguWi51c2VGb3JtKCkscHI9UygpKG1yLDEpLHllPXByWzBdLGZyPSgwLGIudXNlU3RhdGUpKG51bGwpLEtlPVMoKShmciwyKSxxPUtlWzBdLEllPUtlWzFdLHZyPSgwLGIudXNlU3RhdGUpKG51bGwpLFFlPVMoKSh2ciwyKSxQZT1RZVswXSxVZT1RZVsxXSxocj0oMCxiLnVzZVN0YXRlKShbXSksR2U9UygpKGhyLDIpLEplPUdlWzBdLGdyPUdlWzFdLENyPSgwLGIudXNlU3RhdGUpKFtdKSxZZT1TKCkoQ3IsMiksV2U9WWVbMF0seXI9WWVbMV0sUHI9KDAsYi51c2VTdGF0ZSkoITEpLHFlPVMoKShQciwyKSxqcj1xZVswXSxfZT1xZVsxXSxicj0oMCxiLnVzZVN0YXRlKSghMSksZXI9UygpKGJyLDIpLHhyPWVyWzBdLHJyPWVyWzFdLFNyPSgwLGIudXNlU3RhdGUpKCIiKSxhcj1TKCkoU3IsMiksZmU9YXJbMF0sT2U9YXJbMV0sWnI9KDAsYi51c2VTdGF0ZSkoIiIpLG5yPVMoKShaciwyKSx2ZT1uclswXSxCZT1uclsxXSxFcj0oMCxiLnVzZVN0YXRlKShudWxsKSx0cj1TKCkoRXIsMiksVmU9dHJbMF0sVGU9dHJbMV0sRnI9KDAsYi51c2VTdGF0ZSkoITEpLHNyPVMoKShGciwyKSxNZT1zclswXSxIZT1zclsxXTsoMCxiLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtEPT09Im15UG9zdHMiPyRlKCk6RD09PSJmYXZvcml0ZXMiJiZJcigpfSxbRF0pLCgwLGIudXNlRWZmZWN0KShmdW5jdGlvbigpe0JyKCksTnIoKX0sW10pO3ZhciAkZT1mdW5jdGlvbigpe3ZhciBzPXgoKSh2KCkoKS5tYXJrKGZ1bmN0aW9uIG8oKXt2YXIgbjtyZXR1cm4gdigpKCkud3JhcChmdW5jdGlvbihyKXtmb3IoOzspc3dpdGNoKHIucHJldj1yLm5leHQpe2Nhc2UgMDpyZXR1cm4gd2UoITApLHIucHJldj0xLHIubmV4dD00LCgwLHUucXApKHtwYWdlTnVtOjEscGFnZVNpemU6MTAwfSk7Y2FzZSA0Om49ci5zZW50LG4uY29kZT09PTIwMD9SZShuLnJvd3N8fFtdKTpsLlpQLmVycm9yKG4ubXNnfHwiXHU4M0I3XHU1M0Q2XHU2MjExXHU3Njg0XHU1RTE2XHU1QjUwXHU1OTMxXHU4RDI1Iiksci5uZXh0PTExO2JyZWFrO2Nhc2UgODpyLnByZXY9OCxyLnQwPXIuY2F0Y2goMSksbC5aUC5lcnJvcigiXHU4M0I3XHU1M0Q2XHU2MjExXHU3Njg0XHU1RTE2XHU1QjUwXHU1OTMxXHU4RDI1Iik7Y2FzZSAxMTpyZXR1cm4gci5wcmV2PTExLHdlKCExKSxyLmZpbmlzaCgxMSk7Y2FzZSAxNDpjYXNlImVuZCI6cmV0dXJuIHIuc3RvcCgpfX0sbyxudWxsLFtbMSw4LDExLDE0XV0pfSkpO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBzLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksSXI9ZnVuY3Rpb24oKXt2YXIgcz14KCkodigpKCkubWFyayhmdW5jdGlvbiBvKCl7dmFyIG47cmV0dXJuIHYoKSgpLndyYXAoZnVuY3Rpb24ocil7Zm9yKDs7KXN3aXRjaChyLnByZXY9ci5uZXh0KXtjYXNlIDA6cmV0dXJuIHdlKCEwKSxyLnByZXY9MSxyLm5leHQ9NCwoMCx1Lm1iKSh7cGFnZU51bToxLHBhZ2VTaXplOjEwMH0pO2Nhc2UgNDpuPXIuc2VudCxuLmNvZGU9PT0yMDA/b2Uobi5yb3dzfHxbXSk6bC5aUC5lcnJvcihuLm1zZ3x8Ilx1ODNCN1x1NTNENlx1NjUzNlx1ODVDRlx1NTIxN1x1ODg2OFx1NTkzMVx1OEQyNSIpLHIubmV4dD0xMTticmVhaztjYXNlIDg6ci5wcmV2PTgsci50MD1yLmNhdGNoKDEpLGwuWlAuZXJyb3IoIlx1ODNCN1x1NTNENlx1NjUzNlx1ODVDRlx1NTIxN1x1ODg2OFx1NTkzMVx1OEQyNSIpO2Nhc2UgMTE6cmV0dXJuIHIucHJldj0xMSx3ZSghMSksci5maW5pc2goMTEpO2Nhc2UgMTQ6Y2FzZSJlbmQiOnJldHVybiByLnN0b3AoKX19LG8sbnVsbCxbWzEsOCwxMSwxNF1dKX0pKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gcy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLEJyPWZ1bmN0aW9uKCl7dmFyIHM9eCgpKHYoKSgpLm1hcmsoZnVuY3Rpb24gbygpe3ZhciBuO3JldHVybiB2KCkoKS53cmFwKGZ1bmN0aW9uKHIpe2Zvcig7Oylzd2l0Y2goci5wcmV2PXIubmV4dCl7Y2FzZSAwOnJldHVybiByLnByZXY9MCxyLm5leHQ9MywoMCx1LmRmKSgpO2Nhc2UgMzpuPXIuc2VudCxuLmNvZGU9PT0yMDA/Z3Iobi5kYXRhfHxbXSk6bC5aUC5lcnJvcihuLm1zZ3x8Ilx1ODNCN1x1NTNENlx1NTNFRlx1NzUyOFx1NjgwN1x1N0I3RVx1NTkzMVx1OEQyNSIpLHIubmV4dD0xMDticmVhaztjYXNlIDc6ci5wcmV2PTcsci50MD1yLmNhdGNoKDApLGwuWlAuZXJyb3IoIlx1ODNCN1x1NTNENlx1NTNFRlx1NzUyOFx1NjgwN1x1N0I3RVx1NTkzMVx1OEQyNSIpO2Nhc2UgMTA6Y2FzZSJlbmQiOnJldHVybiByLnN0b3AoKX19LG8sbnVsbCxbWzAsN11dKX0pKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gcy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLE5yPWZ1bmN0aW9uKCl7dmFyIHM9eCgpKHYoKSgpLm1hcmsoZnVuY3Rpb24gbygpe3ZhciBuO3JldHVybiB2KCkoKS53cmFwKGZ1bmN0aW9uKHIpe2Zvcig7Oylzd2l0Y2goci5wcmV2PXIubmV4dCl7Y2FzZSAwOnJldHVybiByLnByZXY9MCxyLm5leHQ9MywoMCx1LlNxKSgpO2Nhc2UgMzpuPXIuc2VudCxuLmNvZGU9PT0yMDAmJnlyKG4uZGF0YXx8W10pLHIubmV4dD0xMDticmVhaztjYXNlIDc6ci5wcmV2PTcsci50MD1yLmNhdGNoKDApLGNvbnNvbGUuZXJyb3IoIlx1ODNCN1x1NTNENlx1NjNBOFx1NUU3Rlx1OEJBMVx1NTIxMlx1NTkzMVx1OEQyNToiLHIudDApO2Nhc2UgMTA6Y2FzZSJlbmQiOnJldHVybiByLnN0b3AoKX19LG8sbnVsbCxbWzAsN11dKX0pKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gcy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLE9yPWZ1bmN0aW9uKCl7dmFyIHM9eCgpKHYoKSgpLm1hcmsoZnVuY3Rpb24gbyhuKXt2YXIgaTtyZXR1cm4gdigpKCkud3JhcChmdW5jdGlvbihtKXtmb3IoOzspc3dpdGNoKG0ucHJldj1tLm5leHQpe2Nhc2UgMDppZihtLnByZXY9MCwhKG4ucHJvbW90aW9uUGxhbiYmcSkpe20ubmV4dD0xMzticmVha31yZXR1cm4gbS5uZXh0PTQsKDAsdS5KaSkoe3Bvc3RJZDowLHBsYW5JZDpxLmlkLGFtb3VudDpxLnByaWNlfSk7Y2FzZSA0OmlmKGk9bS5zZW50LGkuY29kZSE9PTIwMCl7bS5uZXh0PTExO2JyZWFrfXJldHVybiBUZShpLmRhdGEpLFkoITApLG0uYWJydXB0KCJyZXR1cm4iKTtjYXNlIDExOnJldHVybiBsLlpQLmVycm9yKGkubXNnfHwiXHU1MjFCXHU1RUZBXHU2NTJGXHU0RUQ4XHU4QkIwXHU1RjU1XHU1OTMxXHU4RDI1IiksbS5hYnJ1cHQoInJldHVybiIpO2Nhc2UgMTM6cmV0dXJuIG0ubmV4dD0xNSxUcihuKTtjYXNlIDE1Om0ubmV4dD0yMDticmVhaztjYXNlIDE3Om0ucHJldj0xNyxtLnQwPW0uY2F0Y2goMCksbC5aUC5lcnJvcigiXHU1M0QxXHU1RTAzXHU1RTE2XHU1QjUwXHU1OTMxXHU4RDI1Iik7Y2FzZSAyMDpjYXNlImVuZCI6cmV0dXJuIG0uc3RvcCgpfX0sbyxudWxsLFtbMCwxN11dKX0pKTtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIHMuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSxUcj1mdW5jdGlvbigpe3ZhciBzPXgoKSh2KCkoKS5tYXJrKGZ1bmN0aW9uIG8obil7dmFyIGkscixtO3JldHVybiB2KCkoKS53cmFwKGZ1bmN0aW9uKGcpe2Zvcig7Oylzd2l0Y2goZy5wcmV2PWcubmV4dCl7Y2FzZSAwOnJldHVybiBnLnByZXY9MCxpPUFycmF5LmlzQXJyYXkobi50YWdzKT9uLnRhZ3Muam9pbigiLCIpOm4udGFncyxyPXt0aXRsZTpuLnRpdGxlLGNvbnRlbnQ6bi5jb250ZW50LHN1bW1hcnk6bi5zdW1tYXJ5LHRhZ3M6aSxwcm9tb3Rpb25QbGFuOm4ucHJvbW90aW9uUGxhbixjb3ZlckltYWdlOmZlfHx2b2lkIDB9LGcubmV4dD01LCgwLHUuRngpKHIpO2Nhc2UgNTptPWcuc2VudCxtLmNvZGU9PT0yMDA/KGwuWlAuc3VjY2VzcygiXHU1RTE2XHU1QjUwXHU1M0QxXHU1RTAzXHU2MjEwXHU1MjlGIiksSyghMSksemUucmVzZXRGaWVsZHMoKSxJZShudWxsKSxPZSgiIiksJGUoKSk6bC5aUC5lcnJvcihtLm1zZ3x8Ilx1NTNEMVx1NUUwM1x1NUUxNlx1NUI1MFx1NTkzMVx1OEQyNSIpLGcubmV4dD0xMjticmVhaztjYXNlIDk6Zy5wcmV2PTksZy50MD1nLmNhdGNoKDApLGwuWlAuZXJyb3IoIlx1NTNEMVx1NUUwM1x1NUUxNlx1NUI1MFx1NTkzMVx1OEQyNSIpO2Nhc2UgMTI6Y2FzZSJlbmQiOnJldHVybiBnLnN0b3AoKX19LG8sbnVsbCxbWzAsOV1dKX0pKTtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIHMuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSwkcj1mdW5jdGlvbigpe3ZhciBzPXgoKSh2KCkoKS5tYXJrKGZ1bmN0aW9uIG8obil7dmFyIGkscixtLHAsZztyZXR1cm4gdigpKCkud3JhcChmdW5jdGlvbihNKXtmb3IoOzspc3dpdGNoKE0ucHJldj1NLm5leHQpe2Nhc2UgMDpyZXR1cm4gVWUobiksaT1uLnRhZ3M/dHlwZW9mIG4udGFncz09InN0cmluZyI/bi50YWdzLnNwbGl0KCIsIik6bi50YWdzOltdLE0ucHJldj0yLE0ubmV4dD01LCgwLHUubTgpKG4ucG9zdElkfHxuLmlkfHwwKTtjYXNlIDU6cj1NLnNlbnQsci5jb2RlPT09MjAwJiYobT1yLmRhdGEscD1tLmhhc1Byb21vdGlvbixnPW0ucHJvbW90aW9uUGxhbklkLEhlKHApLHllLnNldEZpZWxkc1ZhbHVlKHt0aXRsZTpuLnRpdGxlLGNvbnRlbnQ6bi5jb250ZW50LHN1bW1hcnk6bi5zdW1tYXJ5LHRhZ3M6aSxwcm9tb3Rpb25QbGFuOnA/Zzp2b2lkIDB9KSksTS5uZXh0PTEzO2JyZWFrO2Nhc2UgOTpNLnByZXY9OSxNLnQwPU0uY2F0Y2goMiksY29uc29sZS5lcnJvcigiXHU4M0I3XHU1M0Q2XHU2M0E4XHU1RTdGXHU3MkI2XHU2MDAxXHU1OTMxXHU4RDI1OiIsTS50MCkseWUuc2V0RmllbGRzVmFsdWUoe3RpdGxlOm4udGl0bGUsY29udGVudDpuLmNvbnRlbnQsc3VtbWFyeTpuLnN1bW1hcnksdGFnczppLHByb21vdGlvblBsYW46bi5wcm9tb3Rpb25QbGFuSWR9KTtjYXNlIDEzOkJlKG4uY292ZXJJbWFnZXx8IiIpLHBlKCEwKTtjYXNlIDE1OmNhc2UiZW5kIjpyZXR1cm4gTS5zdG9wKCl9fSxvLG51bGwsW1syLDldXSl9KSk7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiBzLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksRHI9ZnVuY3Rpb24oKXt2YXIgcz14KCkodigpKCkubWFyayhmdW5jdGlvbiBvKG4pe3ZhciBpLHIsbSxwO3JldHVybiB2KCkoKS53cmFwKGZ1bmN0aW9uKE8pe2Zvcig7Oylzd2l0Y2goTy5wcmV2PU8ubmV4dCl7Y2FzZSAwOmlmKFBlKXtPLm5leHQ9MjticmVha31yZXR1cm4gTy5hYnJ1cHQoInJldHVybiIpO2Nhc2UgMjppZihPLnByZXY9MixpPUFycmF5LmlzQXJyYXkobi50YWdzKT9uLnRhZ3Muam9pbigiLCIpOm4udGFncyxyPW4ucHJvbW90aW9uUGxhbiYmIU1lLCFyKXtPLm5leHQ9MjA7YnJlYWt9aWYobT1XZS5maW5kKGZ1bmN0aW9uKE0pe3JldHVybiBNLmlkPT09bi5wcm9tb3Rpb25QbGFufSksIW0pe08ubmV4dD0yMDticmVha31yZXR1cm4gSWUobSksTy5uZXh0PTExLCgwLHUuSmkpKHtwb3N0SWQ6UGUucG9zdElkfHxQZS5pZHx8MCxwbGFuSWQ6bS5pZCxhbW91bnQ6bS5wcmljZX0pO2Nhc2UgMTE6aWYocD1PLnNlbnQscC5jb2RlIT09MjAwKXtPLm5leHQ9MTg7YnJlYWt9cmV0dXJuIFRlKHAuZGF0YSksWSghMCksTy5hYnJ1cHQoInJldHVybiIpO2Nhc2UgMTg6cmV0dXJuIGwuWlAuZXJyb3IocC5tc2d8fCJcdTUyMUJcdTVFRkFcdTY1MkZcdTRFRDhcdThCQjBcdTVGNTVcdTU5MzFcdThEMjUiKSxPLmFicnVwdCgicmV0dXJuIik7Y2FzZSAyMDpyZXR1cm4gTy5uZXh0PTIyLGxyKG4saSk7Y2FzZSAyMjpPLm5leHQ9Mjc7YnJlYWs7Y2FzZSAyNDpPLnByZXY9MjQsTy50MD1PLmNhdGNoKDIpLGwuWlAuZXJyb3IoIlx1NjZGNFx1NjVCMFx1NUUxNlx1NUI1MFx1NTkzMVx1OEQyNSIpO2Nhc2UgMjc6Y2FzZSJlbmQiOnJldHVybiBPLnN0b3AoKX19LG8sbnVsbCxbWzIsMjRdXSl9KSk7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiBzLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksbHI9ZnVuY3Rpb24oKXt2YXIgcz14KCkodigpKCkubWFyayhmdW5jdGlvbiBvKG4saSl7dmFyIHIsbTtyZXR1cm4gdigpKCkud3JhcChmdW5jdGlvbihnKXtmb3IoOzspc3dpdGNoKGcucHJldj1nLm5leHQpe2Nhc2UgMDppZihQZSl7Zy5uZXh0PTI7YnJlYWt9cmV0dXJuIGcuYWJydXB0KCJyZXR1cm4iKTtjYXNlIDI6cmV0dXJuIHI9TCgpKEwoKSh7fSxQZSkse30se3RpdGxlOm4udGl0bGUsY29udGVudDpuLmNvbnRlbnQsc3VtbWFyeTpuLnN1bW1hcnksdGFnczppLGNvdmVySW1hZ2U6dmV8fFBlLmNvdmVySW1hZ2UscHJvbW90aW9uUGxhbklkOm4ucHJvbW90aW9uUGxhbn0pLGcubmV4dD01LCgwLHUuQ1ApKHIpO2Nhc2UgNTptPWcuc2VudCxtLmNvZGU9PT0yMDA/KGwuWlAuc3VjY2VzcygiXHU1RTE2XHU1QjUwXHU2NkY0XHU2NUIwXHU2MjEwXHU1MjlGIikscGUoITEpLHllLnJlc2V0RmllbGRzKCksVWUobnVsbCksQmUoIiIpLEhlKCExKSwkZSgpKTpsLlpQLmVycm9yKG0ubXNnfHwiXHU2NkY0XHU2NUIwXHU1RTE2XHU1QjUwXHU1OTMxXHU4RDI1Iik7Y2FzZSA3OmNhc2UiZW5kIjpyZXR1cm4gZy5zdG9wKCl9fSxvKX0pKTtyZXR1cm4gZnVuY3Rpb24obixpKXtyZXR1cm4gcy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLEFyPWZ1bmN0aW9uKCl7dmFyIHM9eCgpKHYoKSgpLm1hcmsoZnVuY3Rpb24gbyhuKXt2YXIgaTtyZXR1cm4gdigpKCkud3JhcChmdW5jdGlvbihtKXtmb3IoOzspc3dpdGNoKG0ucHJldj1tLm5leHQpe2Nhc2UgMDpyZXR1cm4gbS5wcmV2PTAsbS5uZXh0PTMsKDAsdS5mUikobik7Y2FzZSAzOmk9bS5zZW50LGkuY29kZT09PTIwMD8obC5aUC5zdWNjZXNzKCJcdTVFMTZcdTVCNTBcdTUyMjBcdTk2NjRcdTYyMTBcdTUyOUYiKSwkZSgpKTpsLlpQLmVycm9yKGkubXNnfHwiXHU1MjIwXHU5NjY0XHU1RTE2XHU1QjUwXHU1OTMxXHU4RDI1IiksbS5uZXh0PTEwO2JyZWFrO2Nhc2UgNzptLnByZXY9NyxtLnQwPW0uY2F0Y2goMCksbC5aUC5lcnJvcigiXHU1MjIwXHU5NjY0XHU1RTE2XHU1QjUwXHU1OTMxXHU4RDI1Iik7Y2FzZSAxMDpjYXNlImVuZCI6cmV0dXJuIG0uc3RvcCgpfX0sbyxudWxsLFtbMCw3XV0pfSkpO3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gcy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLG9yPWZ1bmN0aW9uKG8pe1QoIi9wb3N0LWRldGFpbC8iLmNvbmNhdChvKSl9LGtyPWZ1bmN0aW9uKCl7dmFyIHM9eCgpKHYoKSgpLm1hcmsoZnVuY3Rpb24gbygpe3ZhciBuLGkscjtyZXR1cm4gdigpKCkud3JhcChmdW5jdGlvbihwKXtmb3IoOzspc3dpdGNoKHAucHJldj1wLm5leHQpe2Nhc2UgMDppZihWZSl7cC5uZXh0PTI7YnJlYWt9cmV0dXJuIHAuYWJydXB0KCJyZXR1cm4iKTtjYXNlIDI6cmV0dXJuIHAucHJldj0yLHAubmV4dD01LCgwLHUuQjEpKFZlLnBheW1lbnRJZCk7Y2FzZSA1OmlmKG49cC5zZW50LG4uY29kZSE9PTIwMCl7cC5uZXh0PTI0O2JyZWFrfWlmKGwuWlAuc3VjY2VzcygiXHU2NTJGXHU0RUQ4XHU2MjEwXHU1MjlGXHVGRjBDXHU2M0E4XHU1RTdGXHU1REYyXHU3NTFGXHU2NTQ4IiksWSghMSksVGUobnVsbCksIShBJiZQZSkpe3AubmV4dD0xNzticmVha31yZXR1cm4gaT15ZS5nZXRGaWVsZHNWYWx1ZSgpLHI9QXJyYXkuaXNBcnJheShpLnRhZ3MpP2kudGFncy5qb2luKCIsIik6aS50YWdzLHAubmV4dD0xNSxscihpLHIpO2Nhc2UgMTU6cC5uZXh0PTIyO2JyZWFrO2Nhc2UgMTc6SyghMSksemUucmVzZXRGaWVsZHMoKSxJZShudWxsKSxPZSgiIiksJGUoKTtjYXNlIDIyOnAubmV4dD0yNTticmVhaztjYXNlIDI0OmwuWlAuZXJyb3Iobi5tc2d8fCJcdTY1MkZcdTRFRDhcdTc4NkVcdThCQTRcdTU5MzFcdThEMjUiKTtjYXNlIDI1OnAubmV4dD0zMDticmVhaztjYXNlIDI3OnAucHJldj0yNyxwLnQwPXAuY2F0Y2goMiksbC5aUC5lcnJvcigiXHU2NTJGXHU0RUQ4XHU3ODZFXHU4QkE0XHU1OTMxXHU4RDI1Iik7Y2FzZSAzMDpjYXNlImVuZCI6cmV0dXJuIHAuc3RvcCgpfX0sbyxudWxsLFtbMiwyN11dKX0pKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gcy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLGlyPWZ1bmN0aW9uKCl7dmFyIHM9eCgpKHYoKSgpLm1hcmsoZnVuY3Rpb24gbygpe3JldHVybiB2KCkoKS53cmFwKGZ1bmN0aW9uKGkpe2Zvcig7Oylzd2l0Y2goaS5wcmV2PWkubmV4dCl7Y2FzZSAwOmlmKFZlKXtpLm5leHQ9MjticmVha31yZXR1cm4gaS5hYnJ1cHQoInJldHVybiIpO2Nhc2UgMjpyZXR1cm4gaS5wcmV2PTIsaS5uZXh0PTUsKDAsdS5BaikoVmUucGF5bWVudElkKTtjYXNlIDU6bC5aUC5pbmZvKCJcdTY1MkZcdTRFRDhcdTVERjJcdTUzRDZcdTZEODgiKSxZKCExKSxUZShudWxsKSxJZShudWxsKSxpLm5leHQ9MTc7YnJlYWs7Y2FzZSAxMTppLnByZXY9MTEsaS50MD1pLmNhdGNoKDIpLGNvbnNvbGUuZXJyb3IoIlx1NTNENlx1NkQ4OFx1NjUyRlx1NEVEOFx1NTkzMVx1OEQyNToiLGkudDApLFkoITEpLFRlKG51bGwpLEllKG51bGwpO2Nhc2UgMTc6Y2FzZSJlbmQiOnJldHVybiBpLnN0b3AoKX19LG8sbnVsbCxbWzIsMTFdXSl9KSk7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHMuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSx3cj1mdW5jdGlvbigpe3ZhciBzPXgoKSh2KCkoKS5tYXJrKGZ1bmN0aW9uIG8obil7dmFyIGkscjtyZXR1cm4gdigpKCkud3JhcChmdW5jdGlvbihwKXtmb3IoOzspc3dpdGNoKHAucHJldj1wLm5leHQpe2Nhc2UgMDpyZXR1cm4gX2UoITApLHAucHJldj0xLGk9bmV3IEZvcm1EYXRhLGkuYXBwZW5kKCJmaWxlIixuKSxwLm5leHQ9NiwoMCx1Lkl4KShpKTtjYXNlIDY6aWYocj1wLnNlbnQsIShyLmNvZGU9PT0yMDAmJnIuZGF0YSkpe3AubmV4dD0xMzticmVha31yZXR1cm4gT2Uoci5kYXRhLnVybCksbC5aUC5zdWNjZXNzKCJcdTU2RkVcdTcyNDdcdTRFMEFcdTRGMjBcdTYyMTBcdTUyOUYiKSxwLmFicnVwdCgicmV0dXJuIiwhMSk7Y2FzZSAxMzpsLlpQLmVycm9yKHIubXNnfHwiXHU1NkZFXHU3MjQ3XHU0RTBBXHU0RjIwXHU1OTMxXHU4RDI1Iik7Y2FzZSAxNDpwLm5leHQ9MTk7YnJlYWs7Y2FzZSAxNjpwLnByZXY9MTYscC50MD1wLmNhdGNoKDEpLGwuWlAuZXJyb3IoIlx1NTZGRVx1NzI0N1x1NEUwQVx1NEYyMFx1NTkzMVx1OEQyNSIpO2Nhc2UgMTk6cmV0dXJuIHAucHJldj0xOSxfZSghMSkscC5maW5pc2goMTkpO2Nhc2UgMjI6cmV0dXJuIHAuYWJydXB0KCJyZXR1cm4iLCExKTtjYXNlIDIzOmNhc2UiZW5kIjpyZXR1cm4gcC5zdG9wKCl9fSxvLG51bGwsW1sxLDE2LDE5LDIyXV0pfSkpO3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gcy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLHpyPWZ1bmN0aW9uKCl7dmFyIHM9eCgpKHYoKSgpLm1hcmsoZnVuY3Rpb24gbygpe3ZhciBuO3JldHVybiB2KCkoKS53cmFwKGZ1bmN0aW9uKHIpe2Zvcig7Oylzd2l0Y2goci5wcmV2PXIubmV4dCl7Y2FzZSAwOmlmKCFmZSl7ci5uZXh0PTEzO2JyZWFrfWlmKHIucHJldj0xLG49ZmUuc3BsaXQoIi8iKS5wb3AoKSwhbil7ci5uZXh0PTY7YnJlYWt9cmV0dXJuIHIubmV4dD02LCgwLHUuYW8pKG4pO2Nhc2UgNjpPZSgiIiksbC5aUC5zdWNjZXNzKCJcdTU2RkVcdTcyNDdcdTUyMjBcdTk2NjRcdTYyMTBcdTUyOUYiKSxyLm5leHQ9MTM7YnJlYWs7Y2FzZSAxMDpyLnByZXY9MTAsci50MD1yLmNhdGNoKDEpLGwuWlAuZXJyb3IoIlx1NTZGRVx1NzI0N1x1NTIyMFx1OTY2NFx1NTkzMVx1OEQyNSIpO2Nhc2UgMTM6Y2FzZSJlbmQiOnJldHVybiByLnN0b3AoKX19LG8sbnVsbCxbWzEsMTBdXSl9KSk7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHMuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSx1cj1mdW5jdGlvbigpe3ZhciBzPXgoKSh2KCkoKS5tYXJrKGZ1bmN0aW9uIG8oKXt2YXIgbjtyZXR1cm4gdigpKCkud3JhcChmdW5jdGlvbihyKXtmb3IoOzspc3dpdGNoKHIucHJldj1yLm5leHQpe2Nhc2UgMDppZighZmUpe3IubmV4dD0xMTticmVha31pZihyLnByZXY9MSxuPWZlLnNwbGl0KCIvIikucG9wKCksIW4pe3IubmV4dD02O2JyZWFrfXJldHVybiByLm5leHQ9NiwoMCx1LmFvKShuKTtjYXNlIDY6ci5uZXh0PTExO2JyZWFrO2Nhc2UgODpyLnByZXY9OCxyLnQwPXIuY2F0Y2goMSksY29uc29sZS5lcnJvcigiXHU1MjIwXHU5NjY0XHU1NkZFXHU3MjQ3XHU1OTMxXHU4RDI1OiIsci50MCk7Y2FzZSAxMTpLKCExKSx6ZS5yZXNldEZpZWxkcygpLEllKG51bGwpLE9lKCIiKTtjYXNlIDE1OmNhc2UiZW5kIjpyZXR1cm4gci5zdG9wKCl9fSxvLG51bGwsW1sxLDhdXSl9KSk7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHMuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSxVcj0oMCxlLmpzeHMpKCJkaXYiLHtjaGlsZHJlbjpbanI/KDAsZS5qc3gpKGRlLlose30pOigwLGUuanN4KShmLlose30pLCgwLGUuanN4KSgiZGl2Iix7c3R5bGU6e21hcmdpblRvcDo4fSxjaGlsZHJlbjoiXHU0RTBBXHU0RjIwXHU1QzAxXHU5NzYyIn0pXX0pLFZyPWZ1bmN0aW9uKCl7dmFyIHM9eCgpKHYoKSgpLm1hcmsoZnVuY3Rpb24gbyhuKXt2YXIgaSxyLG07cmV0dXJuIHYoKSgpLndyYXAoZnVuY3Rpb24oZyl7Zm9yKDs7KXN3aXRjaChnLnByZXY9Zy5uZXh0KXtjYXNlIDA6cmV0dXJuIHJyKCEwKSxnLnByZXY9MSxpPW5ldyBGb3JtRGF0YSxpLmFwcGVuZCgiZmlsZSIsbiksZy5uZXh0PTYsKDAsdS5JeCkoaSk7Y2FzZSA2OmlmKHI9Zy5zZW50LCEoci5jb2RlPT09MjAwJiZyLmRhdGEpKXtnLm5leHQ9MTg7YnJlYWt9aWYoIXZlKXtnLm5leHQ9MTM7YnJlYWt9aWYobT12ZS5zcGxpdCgiLyIpLnBvcCgpLCFtKXtnLm5leHQ9MTM7YnJlYWt9cmV0dXJuIGcubmV4dD0xMywoMCx1LmFvKShtKTtjYXNlIDEzOnJldHVybiBCZShyLmRhdGEudXJsKSxsLlpQLnN1Y2Nlc3MoIlx1NTZGRVx1NzI0N1x1NEUwQVx1NEYyMFx1NjIxMFx1NTI5RiIpLGcuYWJydXB0KCJyZXR1cm4iLCExKTtjYXNlIDE4OmwuWlAuZXJyb3Ioci5tc2d8fCJcdTU2RkVcdTcyNDdcdTRFMEFcdTRGMjBcdTU5MzFcdThEMjUiKTtjYXNlIDE5OmcubmV4dD0yNDticmVhaztjYXNlIDIxOmcucHJldj0yMSxnLnQwPWcuY2F0Y2goMSksbC5aUC5lcnJvcigiXHU1NkZFXHU3MjQ3XHU0RTBBXHU0RjIwXHU1OTMxXHU4RDI1Iik7Y2FzZSAyNDpyZXR1cm4gZy5wcmV2PTI0LHJyKCExKSxnLmZpbmlzaCgyNCk7Y2FzZSAyNzpyZXR1cm4gZy5hYnJ1cHQoInJldHVybiIsITEpO2Nhc2UgMjg6Y2FzZSJlbmQiOnJldHVybiBnLnN0b3AoKX19LG8sbnVsbCxbWzEsMjEsMjQsMjddXSl9KSk7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiBzLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksTXI9ZnVuY3Rpb24oKXt2YXIgcz14KCkodigpKCkubWFyayhmdW5jdGlvbiBvKCl7dmFyIG47cmV0dXJuIHYoKSgpLndyYXAoZnVuY3Rpb24ocil7Zm9yKDs7KXN3aXRjaChyLnByZXY9ci5uZXh0KXtjYXNlIDA6aWYoIXZlKXtyLm5leHQ9MTM7YnJlYWt9aWYoci5wcmV2PTEsbj12ZS5zcGxpdCgiLyIpLnBvcCgpLCFuKXtyLm5leHQ9NjticmVha31yZXR1cm4gci5uZXh0PTYsKDAsdS5hbykobik7Y2FzZSA2OkJlKCIiKSxsLlpQLnN1Y2Nlc3MoIlx1NTZGRVx1NzI0N1x1NTIyMFx1OTY2NFx1NjIxMFx1NTI5RiIpLHIubmV4dD0xMzticmVhaztjYXNlIDEwOnIucHJldj0xMCxyLnQwPXIuY2F0Y2goMSksbC5aUC5lcnJvcigiXHU1NkZFXHU3MjQ3XHU1MjIwXHU5NjY0XHU1OTMxXHU4RDI1Iik7Y2FzZSAxMzpjYXNlImVuZCI6cmV0dXJuIHIuc3RvcCgpfX0sbyxudWxsLFtbMSwxMF1dKX0pKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gcy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLEhyPSgwLGUuanN4cykoImRpdiIse2NoaWxkcmVuOlt4cj8oMCxlLmpzeCkoZGUuWix7fSk6KDAsZS5qc3gpKGYuWix7fSksKDAsZS5qc3gpKCJkaXYiLHtzdHlsZTp7bWFyZ2luVG9wOjh9LGNoaWxkcmVuOiJcdTRFMEFcdTRGMjBcdTVDMDFcdTk3NjIifSldfSksTHI9W3t0aXRsZToiXHU2ODA3XHU5ODk4IixkYXRhSW5kZXg6InRpdGxlIixrZXk6InRpdGxlIixyZW5kZXI6ZnVuY3Rpb24obyxuKXtyZXR1cm4oMCxlLmpzeCkoImEiLHtvbkNsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIG9yKG4ucG9zdElkfHxuLmlkfHwwKX0sY2hpbGRyZW46b30pfX0se3RpdGxlOiJcdTcyQjZcdTYwMDEiLGRhdGFJbmRleDoic3RhdHVzIixrZXk6InN0YXR1cyIscmVuZGVyOmZ1bmN0aW9uKG8pe3ZhciBuPXswOntjb2xvcjoib3JhbmdlIix0ZXh0OiJcdTVGODVcdTVCQTFcdTY4MzgifSwxOntjb2xvcjoiZ3JlZW4iLHRleHQ6Ilx1NURGMlx1NTNEMVx1NUUwMyJ9LDI6e2NvbG9yOiJyZWQiLHRleHQ6Ilx1NURGMlx1NjJEMlx1N0VERCJ9LDM6e2NvbG9yOiJncmF5Iix0ZXh0OiJcdTVERjJcdTRFMEJcdTY3QjYifX0saT1uW29dfHx7Y29sb3I6ImdyYXkiLHRleHQ6Ilx1NjcyQVx1NzdFNSJ9O3JldHVybigwLGUuanN4KShuZS5aLHtjb2xvcjppLmNvbG9yLGNoaWxkcmVuOmkudGV4dH0pfX0se3RpdGxlOiJcdTZENEZcdTg5QzhcdTkxQ0YiLGRhdGFJbmRleDoidmlld3MiLGtleToidmlld3MifSx7dGl0bGU6Ilx1OEJDNFx1OEJCQVx1NjU3MCIsZGF0YUluZGV4OiJjb21tZW50cyIsa2V5OiJjb21tZW50cyJ9LHt0aXRsZToiXHU2NTM2XHU4NUNGXHU2NTcwIixkYXRhSW5kZXg6ImZhdm9yaXRlcyIsa2V5OiJmYXZvcml0ZXMifSx7dGl0bGU6Ilx1NzBCOVx1OEQ1RVx1NjU3MCIsZGF0YUluZGV4OiJsaWtlcyIsa2V5OiJsaWtlcyJ9LHt0aXRsZToiXHU1M0QxXHU1RTAzXHU2NUY2XHU5NUY0IixkYXRhSW5kZXg6InB1Ymxpc2hUaW1lIixrZXk6InB1Ymxpc2hUaW1lIn0se3RpdGxlOiJcdTY0Q0RcdTRGNUMiLGtleToiYWN0aW9uIixyZW5kZXI6ZnVuY3Rpb24obyxuKXtyZXR1cm4oMCxlLmpzeHMpKFYuWix7c2l6ZToibWlkZGxlIixjaGlsZHJlbjpbKDAsZS5qc3gpKEIuWlAse3R5cGU6ImxpbmsiLGljb246KDAsZS5qc3gpKGouWix7fSksb25DbGljazpmdW5jdGlvbigpe3JldHVybiBvcihuLnBvc3RJZHx8bi5pZHx8MCl9LGNoaWxkcmVuOiJcdTY3RTVcdTc3MEIifSksKDAsZS5qc3gpKEIuWlAse3R5cGU6ImxpbmsiLGljb246KDAsZS5qc3gpKFouWix7fSksb25DbGljazpmdW5jdGlvbigpe3JldHVybiAkcihuKX0sY2hpbGRyZW46Ilx1N0YxNlx1OEY5MSJ9KSwoMCxlLmpzeCkodWUuWix7dGl0bGU6Ilx1Nzg2RVx1NUI5QVx1ODk4MVx1NTIyMFx1OTY2NFx1OEZEOVx1N0JDN1x1NUUxNlx1NUI1MFx1NTQxN1x1RkYxRiIsb25Db25maXJtOmZ1bmN0aW9uKCl7cmV0dXJuIEFyKG4ucG9zdElkfHxuLmlkfHwwKX0sb2tUZXh0OiJcdTc4NkVcdTVCOUEiLGNhbmNlbFRleHQ6Ilx1NTNENlx1NkQ4OCIsY2hpbGRyZW46KDAsZS5qc3gpKEIuWlAse3R5cGU6ImxpbmsiLGRhbmdlcjohMCxpY29uOigwLGUuanN4KShQLlose30pLGNoaWxkcmVuOiJcdTUyMjBcdTk2NjQifSl9KV19KX19XTtyZXR1cm4oMCxlLmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6Yy51c2VyQ2VudGVyQ29udGFpbmVyLGNoaWxkcmVuOlsoMCxlLmpzeCkoRi5aLHt0aXRsZToiXHU0RTJBXHU0RUJBXHU0RTJEXHU1RkMzIixjbGFzc05hbWU6Yy51c2VyQ2VudGVyQ2FyZCxjaGlsZHJlbjooMCxlLmpzeHMpKFEuWix7YWN0aXZlS2V5OkQsb25DaGFuZ2U6bWUsY2hpbGRyZW46WygwLGUuanN4KShFLHt0YWI6Ilx1NjIxMVx1NzY4NFx1NUUxNlx1NUI1MCIsY2hpbGRyZW46KDAsZS5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOmMudGFiQ29udGVudCxjaGlsZHJlbjpbKDAsZS5qc3gpKCJkaXYiLHtjbGFzc05hbWU6Yy50YWJIZWFkZXIsY2hpbGRyZW46KDAsZS5qc3gpKEIuWlAse3R5cGU6InByaW1hcnkiLGljb246KDAsZS5qc3gpKGYuWix7fSksb25DbGljazpmdW5jdGlvbigpe3JldHVybiBLKCEwKX0sY2hpbGRyZW46Ilx1NTNEMVx1NUUwM1x1NjVCMFx1NUUxNlx1NUI1MCJ9KX0pLCgwLGUuanN4KShqZS5aLHtjb2x1bW5zOkxyLGRhdGFTb3VyY2U6RWUsbG9hZGluZzpYZSxyb3dLZXk6ImlkIixwYWdpbmF0aW9uOntwYWdlU2l6ZToxMCxzaG93VG90YWw6ZnVuY3Rpb24obyl7cmV0dXJuIlx1NTE3MSAiLmNvbmNhdChvLCIgXHU2NzYxXHU4QkIwXHU1RjU1Iil9fX0pXX0pfSwibXlQb3N0cyIpLCgwLGUuanN4KShFLHt0YWI6Ilx1NjIxMVx1NzY4NFx1NjUzNlx1ODVDRiIsY2hpbGRyZW46KDAsZS5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOmMudGFiQ29udGVudCxjaGlsZHJlbjpbKDAsZS5qc3gpKEcuWix7Z3V0dGVyOlsyNCwyNF0sY2hpbGRyZW46QWUubWFwKGZ1bmN0aW9uKHMpe3ZhciBvPUwoKShMKCkoe30scykse30se2lkOnMucG9zdElkfHxzLmlkLHRhZ3M6cy50YWdzP0FycmF5LmlzQXJyYXkocy50YWdzKT9zLnRhZ3M6cy50YWdzLnNwbGl0KCIsIik6W119KTtyZXR1cm4oMCxlLmpzeCkoY2UuWix7eHM6MjQsc206MTIsbWQ6OCxjaGlsZHJlbjooMCxlLmpzeCkoZC5kZWZhdWx0LHtwb3N0Om99KX0sby5pZCl9KX0pLEFlLmxlbmd0aD09PTAmJiFYZSYmKDAsZS5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOmMuZW1wdHlTdGF0ZSxjaGlsZHJlbjpbKDAsZS5qc3gpKGEuWix7c3R5bGU6e2ZvbnRTaXplOjQ4LGNvbG9yOiIjY2NjIn19KSwoMCxlLmpzeCkoInAiLHtjaGlsZHJlbjoiXHU2NjgyXHU2NUUwXHU2NTM2XHU4NUNGXHU3Njg0XHU1RTE2XHU1QjUwIn0pXX0pXX0pfSwiZmF2b3JpdGVzIildfSl9KSwoMCxlLmpzeCkodGUuWix7dGl0bGU6Ilx1NTNEMVx1NUUwM1x1NjVCMFx1NUUxNlx1NUI1MCIsb3Blbjp4ZSxvbkNhbmNlbDp1cixmb290ZXI6bnVsbCx3aWR0aDo4MDAsY2hpbGRyZW46KDAsZS5qc3hzKShoLlose2Zvcm06emUsbGF5b3V0OiJ2ZXJ0aWNhbCIsb25GaW5pc2g6T3IsY2hpbGRyZW46WygwLGUuanN4KShoLlouSXRlbSx7bmFtZToidGl0bGUiLGxhYmVsOiJcdTVFMTZcdTVCNTBcdTY4MDdcdTk4OTgiLHJ1bGVzOlt7cmVxdWlyZWQ6ITAsbWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU1RTE2XHU1QjUwXHU2ODA3XHU5ODk4In1dLGNoaWxkcmVuOigwLGUuanN4KShhZS5aLHtwbGFjZWhvbGRlcjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU1RTE2XHU1QjUwXHU2ODA3XHU5ODk4In0pfSksKDAsZS5qc3gpKGguWi5JdGVtLHtuYW1lOiJzdW1tYXJ5IixsYWJlbDoiXHU1RTE2XHU1QjUwXHU2NDU4XHU4OTgxIixydWxlczpbe3JlcXVpcmVkOiEwLG1lc3NhZ2U6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NUUxNlx1NUI1MFx1NjQ1OFx1ODk4MSJ9XSxjaGlsZHJlbjooMCxlLmpzeCkoSSx7cm93czozLHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdTVFMTZcdTVCNTBcdTY0NThcdTg5ODEifSl9KSwoMCxlLmpzeCkoaC5aLkl0ZW0se25hbWU6ImNvbnRlbnQiLGxhYmVsOiJcdTVFMTZcdTVCNTBcdTUxODVcdTVCQjkiLHJ1bGVzOlt7cmVxdWlyZWQ6ITAsbWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU1RTE2XHU1QjUwXHU1MTg1XHU1QkI5In1dLGNoaWxkcmVuOigwLGUuanN4KShJLHtyb3dzOjgscGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NUUxNlx1NUI1MFx1NTE4NVx1NUJCOSJ9KX0pLCgwLGUuanN4cykoaC5aLkl0ZW0se25hbWU6ImNvdmVySW1hZ2UiLGxhYmVsOiJcdTVDMDFcdTk3NjJcdTU2RkVcdTcyNDdcdUZGMDhcdTUzRUZcdTkwMDlcdUZGMDkiLGNoaWxkcmVuOlsoMCxlLmpzeCkoSC5aLHtsaXN0VHlwZToicGljdHVyZS1jYXJkIixzaG93VXBsb2FkTGlzdDohMSxiZWZvcmVVcGxvYWQ6d3IsY2hpbGRyZW46ZmU/KDAsZS5qc3gpKGhlLlose3NyYzpmZSxhbHQ6Ilx1NUMwMVx1OTc2MiIsd2lkdGg6IjEwMCUiLGhlaWdodDoiMTAwJSIsc3R5bGU6e29iamVjdEZpdDoiY292ZXIifX0pOlVyfSksZmUmJigwLGUuanN4KShCLlpQLHt0eXBlOiJsaW5rIixvbkNsaWNrOnpyLHN0eWxlOntwYWRkaW5nOjAsbWFyZ2luVG9wOjh9LGNoaWxkcmVuOiJcdTUyMjBcdTk2NjRcdTU2RkVcdTcyNDcifSldfSksKDAsZS5qc3gpKGguWi5JdGVtLHtuYW1lOiJ0YWdzIixsYWJlbDoiXHU2ODA3XHU3QjdFIixydWxlczpbe3JlcXVpcmVkOiEwLG1lc3NhZ2U6Ilx1OEJGN1x1OTAwOVx1NjJFOVx1NjgwN1x1N0I3RSJ9XSxjaGlsZHJlbjooMCxlLmpzeCkoUi5aLHttb2RlOiJtdWx0aXBsZSIscGxhY2Vob2xkZXI6Ilx1OEJGN1x1OTAwOVx1NjJFOVx1NjgwN1x1N0I3RSIsYWxsb3dDbGVhcjohMCxzdHlsZTp7d2lkdGg6IjEwMCUifSxjaGlsZHJlbjpKZS5tYXAoZnVuY3Rpb24ocyl7cmV0dXJuKDAsZS5qc3gpKFIuWi5PcHRpb24se3ZhbHVlOnMudGFnTmFtZSxjaGlsZHJlbjooMCxlLmpzeCkobmUuWix7Y29sb3I6cy50YWdDb2xvcixjaGlsZHJlbjpzLnRhZ05hbWV9KX0scy50YWdJZCl9KX0pfSksKDAsZS5qc3gpKGguWi5JdGVtLHtuYW1lOiJwcm9tb3Rpb25QbGFuIixsYWJlbDoiXHU2M0E4XHU1RTdGXHU5MDA5XHU5ODc5XHVGRjA4XHU1M0VGXHU5MDA5XHVGRjA5IixjaGlsZHJlbjooMCxlLmpzeCkoJC5aUC5Hcm91cCx7Y2hpbGRyZW46KDAsZS5qc3hzKShWLlose2RpcmVjdGlvbjoidmVydGljYWwiLGNoaWxkcmVuOlsoMCxlLmpzeCkoJC5aUCx7dmFsdWU6dm9pZCAwLGNoaWxkcmVuOiJcdTRFMERcdTkwMDlcdTYyRTlcdTYzQThcdTVFN0YifSksV2UubWFwKGZ1bmN0aW9uKHMpe3JldHVybigwLGUuanN4KSgkLlpQLHt2YWx1ZTpzLmlkLGNoaWxkcmVuOigwLGUuanN4cykoImRpdiIse2NoaWxkcmVuOlsoMCxlLmpzeCkoInN0cm9uZyIse2NoaWxkcmVuOnMubmFtZX0pLCIgLSBceEE1IixzLnByaWNlLCIgKCIscy5kdXJhdGlvbiwiXHU1OTI5KSIsKDAsZS5qc3gpKCJiciIse30pLCgwLGUuanN4KSgic3BhbiIse3N0eWxlOntjb2xvcjoiIzY2NiIsZm9udFNpemU6IjEycHgifSxjaGlsZHJlbjpzLmRlc2NyaXB0aW9ufSldfSl9LHMuaWQpfSldfSl9KX0pLCgwLGUuanN4KShoLlouSXRlbSx7Y2hpbGRyZW46KDAsZS5qc3hzKShWLlose2NoaWxkcmVuOlsoMCxlLmpzeCkoQi5aUCx7dHlwZToicHJpbWFyeSIsaHRtbFR5cGU6InN1Ym1pdCIsY2hpbGRyZW46cT8iXHU5MDA5XHU2MkU5XHU2NTJGXHU0RUQ4XHU2NUI5XHU1RjBGIjoiXHU1M0QxXHU1RTAzXHU1RTE2XHU1QjUwIn0pLCgwLGUuanN4KShCLlpQLHtvbkNsaWNrOnVyLGNoaWxkcmVuOiJcdTUzRDZcdTZEODgifSldfSl9KV19KX0pLCgwLGUuanN4KSh0ZS5aLHt0aXRsZToiXHU3RjE2XHU4RjkxXHU1RTE2XHU1QjUwIixvcGVuOkEsb25DYW5jZWw6ZnVuY3Rpb24oKXtwZSghMSkseWUucmVzZXRGaWVsZHMoKSxVZShudWxsKSxCZSgiIiksSGUoITEpfSxmb290ZXI6bnVsbCx3aWR0aDo4MDAsY2hpbGRyZW46KDAsZS5qc3hzKShoLlose2Zvcm06eWUsbGF5b3V0OiJ2ZXJ0aWNhbCIsb25GaW5pc2g6RHIsY2hpbGRyZW46WygwLGUuanN4KShoLlouSXRlbSx7bmFtZToidGl0bGUiLGxhYmVsOiJcdTVFMTZcdTVCNTBcdTY4MDdcdTk4OTgiLHJ1bGVzOlt7cmVxdWlyZWQ6ITAsbWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU1RTE2XHU1QjUwXHU2ODA3XHU5ODk4In1dLGNoaWxkcmVuOigwLGUuanN4KShhZS5aLHtwbGFjZWhvbGRlcjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU1RTE2XHU1QjUwXHU2ODA3XHU5ODk4In0pfSksKDAsZS5qc3gpKGguWi5JdGVtLHtuYW1lOiJzdW1tYXJ5IixsYWJlbDoiXHU1RTE2XHU1QjUwXHU2NDU4XHU4OTgxIixydWxlczpbe3JlcXVpcmVkOiEwLG1lc3NhZ2U6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NUUxNlx1NUI1MFx1NjQ1OFx1ODk4MSJ9XSxjaGlsZHJlbjooMCxlLmpzeCkoSSx7cm93czozLHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdTVFMTZcdTVCNTBcdTY0NThcdTg5ODEifSl9KSwoMCxlLmpzeCkoaC5aLkl0ZW0se25hbWU6ImNvbnRlbnQiLGxhYmVsOiJcdTVFMTZcdTVCNTBcdTUxODVcdTVCQjkiLHJ1bGVzOlt7cmVxdWlyZWQ6ITAsbWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU1RTE2XHU1QjUwXHU1MTg1XHU1QkI5In1dLGNoaWxkcmVuOigwLGUuanN4KShJLHtyb3dzOjgscGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NUUxNlx1NUI1MFx1NTE4NVx1NUJCOSJ9KX0pLCgwLGUuanN4cykoaC5aLkl0ZW0se25hbWU6ImNvdmVySW1hZ2UiLGxhYmVsOiJcdTVDMDFcdTk3NjJcdTU2RkVcdTcyNDciLGNoaWxkcmVuOlsoMCxlLmpzeCkoSC5aLHtsaXN0VHlwZToicGljdHVyZS1jYXJkIixzaG93VXBsb2FkTGlzdDohMSxiZWZvcmVVcGxvYWQ6VnIsY2hpbGRyZW46dmU/KDAsZS5qc3gpKGhlLlose3NyYzp2ZSxhbHQ6Ilx1NUMwMVx1OTc2MiIsd2lkdGg6IjEwMCUiLGhlaWdodDoiMTAwJSIsc3R5bGU6e29iamVjdEZpdDoiY292ZXIifX0pOkhyfSksdmUmJigwLGUuanN4KShCLlpQLHt0eXBlOiJsaW5rIixvbkNsaWNrOk1yLHN0eWxlOntwYWRkaW5nOjAsbWFyZ2luVG9wOjh9LGNoaWxkcmVuOiJcdTUyMjBcdTk2NjRcdTU2RkVcdTcyNDcifSldfSksKDAsZS5qc3gpKGguWi5JdGVtLHtuYW1lOiJ0YWdzIixsYWJlbDoiXHU2ODA3XHU3QjdFIixydWxlczpbe3JlcXVpcmVkOiEwLG1lc3NhZ2U6Ilx1OEJGN1x1OTAwOVx1NjJFOVx1NjgwN1x1N0I3RSJ9XSxjaGlsZHJlbjooMCxlLmpzeCkoUi5aLHttb2RlOiJtdWx0aXBsZSIscGxhY2Vob2xkZXI6Ilx1OEJGN1x1OTAwOVx1NjJFOVx1NjgwN1x1N0I3RSIsYWxsb3dDbGVhcjohMCxzdHlsZTp7d2lkdGg6IjEwMCUifSxjaGlsZHJlbjpKZS5tYXAoZnVuY3Rpb24ocyl7cmV0dXJuKDAsZS5qc3gpKFIuWi5PcHRpb24se3ZhbHVlOnMudGFnTmFtZSxjaGlsZHJlbjooMCxlLmpzeCkobmUuWix7Y29sb3I6cy50YWdDb2xvcixjaGlsZHJlbjpzLnRhZ05hbWV9KX0scy50YWdJZCl9KX0pfSksKDAsZS5qc3gpKGguWi5JdGVtLHtuYW1lOiJwcm9tb3Rpb25QbGFuIixsYWJlbDoiXHU2M0E4XHU1RTdGXHU5MDA5XHU5ODc5XHVGRjA4XHU1M0VGXHU5MDA5XHVGRjA5IixjaGlsZHJlbjooMCxlLmpzeCkoJC5aUC5Hcm91cCx7ZGlzYWJsZWQ6TWUsY2hpbGRyZW46KDAsZS5qc3hzKShWLlose2RpcmVjdGlvbjoidmVydGljYWwiLGNoaWxkcmVuOlsoMCxlLmpzeCkoJC5aUCx7dmFsdWU6dm9pZCAwLGNoaWxkcmVuOiJcdTRFMERcdTkwMDlcdTYyRTlcdTYzQThcdTVFN0YifSksTWUmJigwLGUuanN4KSgiZGl2Iix7c3R5bGU6e2NvbG9yOiIjZmY0ZDRmIixmb250U2l6ZToiMTJweCIsbWFyZ2luQm90dG9tOjh9LGNoaWxkcmVuOiJcdThCRTVcdTVFMTZcdTVCNTBcdTVERjJcdThEMkRcdTRFNzBcdTYzQThcdTVFN0ZcdUZGMENcdTY1RTBcdTZDRDVcdTY2RjRcdTY1MzlcdTYzQThcdTVFN0ZcdTkwMDlcdTk4NzkifSksV2UubWFwKGZ1bmN0aW9uKHMpe3JldHVybigwLGUuanN4KSgkLlpQLHt2YWx1ZTpzLmlkLGRpc2FibGVkOk1lLGNoaWxkcmVuOigwLGUuanN4cykoImRpdiIse2NoaWxkcmVuOlsoMCxlLmpzeCkoInN0cm9uZyIse2NoaWxkcmVuOnMubmFtZX0pLCIgLSBceEE1IixzLnByaWNlLCIgKCIscy5kdXJhdGlvbiwiXHU1OTI5KSIsKDAsZS5qc3gpKCJiciIse30pLCgwLGUuanN4KSgic3BhbiIse3N0eWxlOntjb2xvcjoiIzY2NiIsZm9udFNpemU6IjEycHgifSxjaGlsZHJlbjpzLmRlc2NyaXB0aW9ufSldfSl9LHMuaWQpfSldfSl9KX0pLCgwLGUuanN4KShoLlouSXRlbSx7Y2hpbGRyZW46KDAsZS5qc3hzKShWLlose2NoaWxkcmVuOlsoMCxlLmpzeCkoQi5aUCx7dHlwZToicHJpbWFyeSIsaHRtbFR5cGU6InN1Ym1pdCIsY2hpbGRyZW46Ilx1NjZGNFx1NjVCMFx1NUUxNlx1NUI1MCJ9KSwoMCxlLmpzeCkoQi5aUCx7b25DbGljazpmdW5jdGlvbigpe3BlKCExKSx5ZS5yZXNldEZpZWxkcygpLFVlKG51bGwpLEJlKCIiKSxIZSghMSl9LGNoaWxkcmVuOiJcdTUzRDZcdTZEODgifSldfSl9KV19KX0pLCgwLGUuanN4KSh0ZS5aLHt0aXRsZToiXHU2NTJGXHU0RUQ4XHU2M0E4XHU1RTdGXHU4RDM5XHU3NTI4IixvcGVuOk5lLG9uQ2FuY2VsOmlyLGZvb3RlcjpudWxsLHdpZHRoOjQwMCxjaGlsZHJlbjooMCxlLmpzeCkoImRpdiIse2NsYXNzTmFtZTpjLnBheW1lbnRNb2RhbCxjaGlsZHJlbjpxJiYoMCxlLmpzeHMpKGUuRnJhZ21lbnQse2NoaWxkcmVuOlsoMCxlLmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6Yy5wYXltZW50SW5mbyxjaGlsZHJlbjpbKDAsZS5qc3gpKCJoMyIse2NoaWxkcmVuOnEubmFtZX0pLCgwLGUuanN4KSgicCIse2NoaWxkcmVuOnEuZGVzY3JpcHRpb259KSwoMCxlLmpzeHMpKCJwIix7Y2hpbGRyZW46WyJcdThEMzlcdTc1Mjg6ICIsKDAsZS5qc3hzKSgic3Ryb25nIix7Y2hpbGRyZW46WyJceEE1IixxLnByaWNlXX0pXX0pLCgwLGUuanN4cykoInAiLHtjaGlsZHJlbjpbIlx1NjVGNlx1OTU3RjogIixxLmR1cmF0aW9uLCJcdTU5MjkiXX0pXX0pLCgwLGUuanN4KSgiZGl2Iix7Y2xhc3NOYW1lOmMucXJDb2RlLGNoaWxkcmVuOigwLGUuanN4cykoImRpdiIse2NsYXNzTmFtZTpjLnFyQ29kZVBsYWNlaG9sZGVyLGNoaWxkcmVuOlsoMCxlLmpzeCkoInAiLHtjaGlsZHJlbjoiXHU2NTJGXHU0RUQ4XHU0RThDXHU3RUY0XHU3ODAxIn0pLCgwLGUuanN4KSgicCIse3N0eWxlOntmb250U2l6ZToiMTJweCIsY29sb3I6IiM2NjYifSxjaGlsZHJlbjoiXHU4QkY3XHU0RjdGXHU3NTI4XHU2NTJGXHU0RUQ4XHU1QjlEXHU2MjZCXHU2M0NGXHU0RThDXHU3RUY0XHU3ODAxXHU2NTJGXHU0RUQ4In0pLCgwLGUuanN4cykoImRpdiIse2NsYXNzTmFtZTpjLm1vY2tRckNvZGUsY2hpbGRyZW46WygwLGUuanN4KSgicCIse2NoaWxkcmVuOiJcdTZBMjFcdTYyREZcdTRFOENcdTdFRjRcdTc4MDEifSksKDAsZS5qc3hzKSgicCIse2NoaWxkcmVuOlsiXHhBNSIscS5wcmljZV19KV19KV19KX0pLCgwLGUuanN4cykoImRpdiIse2NsYXNzTmFtZTpjLnBheW1lbnRBY3Rpb25zLGNoaWxkcmVuOlsoMCxlLmpzeCkoQi5aUCx7dHlwZToicHJpbWFyeSIsb25DbGljazprcixzdHlsZTp7d2lkdGg6IjEwMCUiLG1hcmdpbkJvdHRvbTo4fSxjaGlsZHJlbjoiXHU2MjExXHU1REYyXHU1QjhDXHU2MjEwXHU2NTJGXHU0RUQ4In0pLCgwLGUuanN4KShCLlpQLHtvbkNsaWNrOmlyLHN0eWxlOnt3aWR0aDoiMTAwJSJ9LGNoaWxkcmVuOiJcdTUzRDZcdTZEODhcdTY1MkZcdTRFRDgifSldfSldfSl9KX0pXX0pfSxOPVd9LDg2NzM4OmZ1bmN0aW9uKExlLF8sdCl7dC5kKF8se1o6ZnVuY3Rpb24oKXtyZXR1cm4gZGV9fSk7dmFyIHk9dCg2NzI5NCksTD10KDIxNjQwKSxlZT10KDkzOTY3KSx2PXQubihlZSksaWU9dCgyMTc3MCkseD10KDk4NDIzKSxyZT10KDUzMTI0KSxTPXQoNTUyNDEpLGI9dCg4Njc0MyksUT10KDgxNjQzKSxhZT10KDgzNjIyKSxSPXQoMzM2NzEpLGg9dCgxMDExMCksbD10KDI0NDU3KSxuZT10KDY2MzMwKSxWPXQoODM1NTkpO2NvbnN0IEI9Zj0+e2NvbnN0e2NvbXBvbmVudENsczpqLGljb25DbHM6WixhbnRDbHM6UCx6SW5kZXhQb3B1cDphLGNvbG9yVGV4dDpDLGNvbG9yV2FybmluZzp1LG1hcmdpblhYUzpkLG1hcmdpblhTOmMsZm9udFNpemU6ZSxmb250V2VpZ2h0U3Ryb25nOkUsY29sb3JUZXh0SGVhZGluZzpJfT1mO3JldHVybntbal06e3pJbmRleDphLFtgJiR7UH0tcG9wb3ZlcmBdOntmb250U2l6ZTplfSxbYCR7an0tbWVzc2FnZWBdOnttYXJnaW5Cb3R0b206YyxkaXNwbGF5OiJmbGV4IixmbGV4V3JhcDoibm93cmFwIixhbGlnbkl0ZW1zOiJzdGFydCIsW2A+ICR7an0tbWVzc2FnZS1pY29uICR7Wn1gXTp7Y29sb3I6dSxmb250U2l6ZTplLGxpbmVIZWlnaHQ6MSxtYXJnaW5JbmxpbmVFbmQ6Y30sW2Ake2p9LXRpdGxlYF06e2ZvbnRXZWlnaHQ6RSxjb2xvcjpJLCImOm9ubHktY2hpbGQiOntmb250V2VpZ2h0OiJub3JtYWwifX0sW2Ake2p9LWRlc2NyaXB0aW9uYF06e21hcmdpblRvcDpkLGNvbG9yOkN9fSxbYCR7an0tYnV0dG9uc2BdOnt0ZXh0QWxpZ246ImVuZCIsd2hpdGVTcGFjZToibm93cmFwIixidXR0b246e21hcmdpbklubGluZVN0YXJ0OmN9fX19fSx1ZT1mPT57Y29uc3R7ekluZGV4UG9wdXBCYXNlOmp9PWY7cmV0dXJue3pJbmRleFBvcHVwOmorNjB9fTt2YXIgRj0oMCxWLkkkKSgiUG9wY29uZmlybSIsZj0+QihmKSx1ZSx7cmVzZXRTdHlsZTohMX0pLGplPWZ1bmN0aW9uKGYsail7dmFyIFo9e307Zm9yKHZhciBQIGluIGYpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGYsUCkmJmouaW5kZXhPZihQKTwwJiYoWltQXT1mW1BdKTtpZihmIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIGE9MCxQPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZik7YTxQLmxlbmd0aDthKyspai5pbmRleE9mKFBbYV0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChmLFBbYV0pJiYoWltQW2FdXT1mW1BbYV1dKTtyZXR1cm4gWn07Y29uc3QgRz1mPT57Y29uc3R7cHJlZml4Q2xzOmosb2tCdXR0b25Qcm9wczpaLGNhbmNlbEJ1dHRvblByb3BzOlAsdGl0bGU6YSxkZXNjcmlwdGlvbjpDLGNhbmNlbFRleHQ6dSxva1RleHQ6ZCxva1R5cGU6Yz0icHJpbWFyeSIsaWNvbjplPXkuY3JlYXRlRWxlbWVudChMLlosbnVsbCksc2hvd0NhbmNlbDpFPSEwLGNsb3NlOkksb25Db25maXJtOnosb25DYW5jZWw6VyxvblBvcHVwQ2xpY2s6Tn09Zix7Z2V0UHJlZml4Q2xzOlV9PXkudXNlQ29udGV4dChyZS5FXyksW1RdPSgwLGguWikoIlBvcGNvbmZpcm0iLGwuWi5Qb3Bjb25maXJtKSxKPSgwLFEuWikoYSksWD0oMCxRLlopKEMpO3JldHVybiB5LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpgJHtqfS1pbm5lci1jb250ZW50YCxvbkNsaWNrOk59LHkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmAke2p9LW1lc3NhZ2VgfSxlJiZ5LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6YCR7an0tbWVzc2FnZS1pY29uYH0sZSkseS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YCR7an0tbWVzc2FnZS10ZXh0YH0sSiYmeS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YCR7an0tdGl0bGVgfSxKKSxYJiZ5LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpgJHtqfS1kZXNjcmlwdGlvbmB9LFgpKSkseS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YCR7an0tYnV0dG9uc2B9LEUmJnkuY3JlYXRlRWxlbWVudChhZS5aUCxPYmplY3QuYXNzaWduKHtvbkNsaWNrOlcsc2l6ZToic21hbGwifSxQKSx1fHwoVD09bnVsbD92b2lkIDA6VC5jYW5jZWxUZXh0KSkseS5jcmVhdGVFbGVtZW50KGIuWix7YnV0dG9uUHJvcHM6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHtzaXplOiJzbWFsbCJ9LCgwLFIubngpKGMpKSxaKSxhY3Rpb25Gbjp6LGNsb3NlOkkscHJlZml4Q2xzOlUoImJ0biIpLHF1aXRPbk51bGxpc2hSZXR1cm5WYWx1ZTohMCxlbWl0RXZlbnQ6ITB9LGR8fChUPT1udWxsP3ZvaWQgMDpULm9rVGV4dCkpKSl9O3ZhciB0ZT1mPT57Y29uc3R7cHJlZml4Q2xzOmoscGxhY2VtZW50OlosY2xhc3NOYW1lOlAsc3R5bGU6YX09ZixDPWplKGYsWyJwcmVmaXhDbHMiLCJwbGFjZW1lbnQiLCJjbGFzc05hbWUiLCJzdHlsZSJdKSx7Z2V0UHJlZml4Q2xzOnV9PXkudXNlQ29udGV4dChyZS5FXyksZD11KCJwb3Bjb25maXJtIixqKSxbY109RihkKTtyZXR1cm4gYyh5LmNyZWF0ZUVsZW1lbnQobmUuWlAse3BsYWNlbWVudDpaLGNsYXNzTmFtZTp2KCkoZCxQKSxzdHlsZTphLGNvbnRlbnQ6eS5jcmVhdGVFbGVtZW50KEcsT2JqZWN0LmFzc2lnbih7cHJlZml4Q2xzOmR9LEMpKX0pKX0sSD1mdW5jdGlvbihmLGope3ZhciBaPXt9O2Zvcih2YXIgUCBpbiBmKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChmLFApJiZqLmluZGV4T2YoUCk8MCYmKFpbUF09ZltQXSk7aWYoZiE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBhPTAsUD1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGYpO2E8UC5sZW5ndGg7YSsrKWouaW5kZXhPZihQW2FdKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZixQW2FdKSYmKFpbUFthXV09ZltQW2FdXSk7cmV0dXJuIFp9O2NvbnN0ICQ9eS5mb3J3YXJkUmVmKChmLGopPT57dmFyIFosUDtjb25zdHtwcmVmaXhDbHM6YSxwbGFjZW1lbnQ6Qz0idG9wIix0cmlnZ2VyOnU9ImNsaWNrIixva1R5cGU6ZD0icHJpbWFyeSIsaWNvbjpjPXkuY3JlYXRlRWxlbWVudChMLlosbnVsbCksY2hpbGRyZW46ZSxvdmVybGF5Q2xhc3NOYW1lOkUsb25PcGVuQ2hhbmdlOkksb25WaXNpYmxlQ2hhbmdlOnosb3ZlcmxheVN0eWxlOlcsc3R5bGVzOk4sY2xhc3NOYW1lczpVfT1mLFQ9SChmLFsicHJlZml4Q2xzIiwicGxhY2VtZW50IiwidHJpZ2dlciIsIm9rVHlwZSIsImljb24iLCJjaGlsZHJlbiIsIm92ZXJsYXlDbGFzc05hbWUiLCJvbk9wZW5DaGFuZ2UiLCJvblZpc2libGVDaGFuZ2UiLCJvdmVybGF5U3R5bGUiLCJzdHlsZXMiLCJjbGFzc05hbWVzIl0pLHtnZXRQcmVmaXhDbHM6SixjbGFzc05hbWU6WCxzdHlsZTpELGNsYXNzTmFtZXM6bWUsc3R5bGVzOnNlfT0oMCxyZS5kaikoInBvcGNvbmZpcm0iKSxbYmUseGVdPSgwLGllLlopKCExLHt2YWx1ZTooWj1mLm9wZW4pIT09bnVsbCYmWiE9PXZvaWQgMD9aOmYudmlzaWJsZSxkZWZhdWx0VmFsdWU6KFA9Zi5kZWZhdWx0T3BlbikhPT1udWxsJiZQIT09dm9pZCAwP1A6Zi5kZWZhdWx0VmlzaWJsZX0pLEs9KGssdyk9Pnt4ZShrLCEwKSx6PT1udWxsfHx6KGspLEk9PW51bGx8fEkoayx3KX0sZ2U9az0+e0soITEsayl9LFNlPWs9Pnt2YXIgdztyZXR1cm4odz1mLm9uQ29uZmlybSk9PT1udWxsfHx3PT09dm9pZCAwP3ZvaWQgMDp3LmNhbGwodm9pZCAwLGspfSxBPWs9Pnt2YXIgdztLKCExLGspLCh3PWYub25DYW5jZWwpPT09bnVsbHx8dz09PXZvaWQgMHx8dy5jYWxsKHZvaWQgMCxrKX0scGU9KGssdyk9Pntjb25zdHtkaXNhYmxlZDpFZT0hMX09ZjtFZXx8SyhrLHcpfSxDZT1KKCJwb3Bjb25maXJtIixhKSxaZT12KCkoQ2UsWCxFLG1lLnJvb3QsVT09bnVsbD92b2lkIDA6VS5yb290KSxOZT12KCkobWUuYm9keSxVPT1udWxsP3ZvaWQgMDpVLmJvZHkpLFtZXT1GKENlKTtyZXR1cm4gWSh5LmNyZWF0ZUVsZW1lbnQoUy5aLE9iamVjdC5hc3NpZ24oe30sKDAseC5aKShULFsidGl0bGUiXSkse3RyaWdnZXI6dSxwbGFjZW1lbnQ6Qyxvbk9wZW5DaGFuZ2U6cGUsb3BlbjpiZSxyZWY6aixjbGFzc05hbWVzOntyb290OlplLGJvZHk6TmV9LHN0eWxlczp7cm9vdDpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHNlLnJvb3QpLEQpLFcpLE49PW51bGw/dm9pZCAwOk4ucm9vdCksYm9keTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sc2UuYm9keSksTj09bnVsbD92b2lkIDA6Ti5ib2R5KX0sY29udGVudDp5LmNyZWF0ZUVsZW1lbnQoRyxPYmplY3QuYXNzaWduKHtva1R5cGU6ZCxpY29uOmN9LGYse3ByZWZpeENsczpDZSxjbG9zZTpnZSxvbkNvbmZpcm06U2Usb25DYW5jZWw6QX0pKSwiZGF0YS1wb3BvdmVyLWluamVjdCI6ITB9KSxlKSl9KTskLl9JbnRlcm5hbFBhbmVsRG9Ob3RVc2VPcllvdVdpbGxCZUZpcmVkPXRlO3ZhciBkZT0kfSw2NjMwOTpmdW5jdGlvbihMZSxfLHQpe3QuZChfLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIFB9fSk7dmFyIHk9dCg2NzI5NCksTD10KDkzOTY3KSxlZT10Lm4oTCksdj10KDk4NDIzKSxpZT10KDk4Nzg3KSx4PXQoNjk3NjApLHJlPXQoOTYxNTkpLFM9dCg0NTM1MyksYj10KDUzMTI0KSxRPXQoMTE1NjgpLGFlPXQoMTUwNjMpLFI9dCgxNDc0NyksaD10KDgzMjYyKSxsPXQoODM1NTkpO2NvbnN0IG5lPWE9Pntjb25zdHtwYWRkaW5nWFhTOkMsbGluZVdpZHRoOnUsdGFnUGFkZGluZ0hvcml6b250YWw6ZCxjb21wb25lbnRDbHM6YyxjYWxjOmV9PWEsRT1lKGQpLnN1Yih1KS5lcXVhbCgpLEk9ZShDKS5zdWIodSkuZXF1YWwoKTtyZXR1cm57W2NdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwoMCxSLldmKShhKSkse2Rpc3BsYXk6ImlubGluZS1ibG9jayIsaGVpZ2h0OiJhdXRvIixtYXJnaW5JbmxpbmVFbmQ6YS5tYXJnaW5YUyxwYWRkaW5nSW5saW5lOkUsZm9udFNpemU6YS50YWdGb250U2l6ZSxsaW5lSGVpZ2h0OmEudGFnTGluZUhlaWdodCx3aGl0ZVNwYWNlOiJub3dyYXAiLGJhY2tncm91bmQ6YS5kZWZhdWx0QmcsYm9yZGVyOmAkeygwLFEuYmYpKGEubGluZVdpZHRoKX0gJHthLmxpbmVUeXBlfSAke2EuY29sb3JCb3JkZXJ9YCxib3JkZXJSYWRpdXM6YS5ib3JkZXJSYWRpdXNTTSxvcGFjaXR5OjEsdHJhbnNpdGlvbjpgYWxsICR7YS5tb3Rpb25EdXJhdGlvbk1pZH1gLHRleHRBbGlnbjoic3RhcnQiLHBvc2l0aW9uOiJyZWxhdGl2ZSIsW2AmJHtjfS1ydGxgXTp7ZGlyZWN0aW9uOiJydGwifSwiJiwgYSwgYTpob3ZlciI6e2NvbG9yOmEuZGVmYXVsdENvbG9yfSxbYCR7Y30tY2xvc2UtaWNvbmBdOnttYXJnaW5JbmxpbmVTdGFydDpJLGZvbnRTaXplOmEudGFnSWNvblNpemUsY29sb3I6YS5jb2xvclRleHREZXNjcmlwdGlvbixjdXJzb3I6InBvaW50ZXIiLHRyYW5zaXRpb246YGFsbCAke2EubW90aW9uRHVyYXRpb25NaWR9YCwiJjpob3ZlciI6e2NvbG9yOmEuY29sb3JUZXh0SGVhZGluZ319LFtgJiR7Y30taGFzLWNvbG9yYF06e2JvcmRlckNvbG9yOiJ0cmFuc3BhcmVudCIsW2AmLCBhLCBhOmhvdmVyLCAke2EuaWNvbkNsc30tY2xvc2UsICR7YS5pY29uQ2xzfS1jbG9zZTpob3ZlcmBdOntjb2xvcjphLmNvbG9yVGV4dExpZ2h0U29saWR9fSwiJi1jaGVja2FibGUiOntiYWNrZ3JvdW5kQ29sb3I6InRyYW5zcGFyZW50Iixib3JkZXJDb2xvcjoidHJhbnNwYXJlbnQiLGN1cnNvcjoicG9pbnRlciIsW2AmOm5vdCgke2N9LWNoZWNrYWJsZS1jaGVja2VkKTpob3ZlcmBdOntjb2xvcjphLmNvbG9yUHJpbWFyeSxiYWNrZ3JvdW5kQ29sb3I6YS5jb2xvckZpbGxTZWNvbmRhcnl9LCImOmFjdGl2ZSwgJi1jaGVja2VkIjp7Y29sb3I6YS5jb2xvclRleHRMaWdodFNvbGlkfSwiJi1jaGVja2VkIjp7YmFja2dyb3VuZENvbG9yOmEuY29sb3JQcmltYXJ5LCImOmhvdmVyIjp7YmFja2dyb3VuZENvbG9yOmEuY29sb3JQcmltYXJ5SG92ZXJ9fSwiJjphY3RpdmUiOntiYWNrZ3JvdW5kQ29sb3I6YS5jb2xvclByaW1hcnlBY3RpdmV9fSwiJi1oaWRkZW4iOntkaXNwbGF5OiJub25lIn0sW2A+ICR7YS5pY29uQ2xzfSArIHNwYW4sID4gc3BhbiArICR7YS5pY29uQ2xzfWBdOnttYXJnaW5JbmxpbmVTdGFydDpFfX0pLFtgJHtjfS1ib3JkZXJsZXNzYF06e2JvcmRlckNvbG9yOiJ0cmFuc3BhcmVudCIsYmFja2dyb3VuZDphLnRhZ0JvcmRlcmxlc3NCZ319fSxWPWE9Pntjb25zdHtsaW5lV2lkdGg6Qyxmb250U2l6ZUljb246dSxjYWxjOmR9PWEsYz1hLmZvbnRTaXplU007cmV0dXJuKDAsaC5JWCkoYSx7dGFnRm9udFNpemU6Yyx0YWdMaW5lSGVpZ2h0OigwLFEuYmYpKGQoYS5saW5lSGVpZ2h0U00pLm11bChjKS5lcXVhbCgpKSx0YWdJY29uU2l6ZTpkKHUpLnN1YihkKEMpLm11bCgyKSkuZXF1YWwoKSx0YWdQYWRkaW5nSG9yaXpvbnRhbDo4LHRhZ0JvcmRlcmxlc3NCZzphLmRlZmF1bHRCZ30pfSxCPWE9Pih7ZGVmYXVsdEJnOm5ldyBhZS50KGEuY29sb3JGaWxsUXVhdGVybmFyeSkub25CYWNrZ3JvdW5kKGEuY29sb3JCZ0NvbnRhaW5lcikudG9IZXhTdHJpbmcoKSxkZWZhdWx0Q29sb3I6YS5jb2xvclRleHR9KTt2YXIgdWU9KDAsbC5JJCkoIlRhZyIsYT0+e2NvbnN0IEM9VihhKTtyZXR1cm4gbmUoQyl9LEIpLEY9ZnVuY3Rpb24oYSxDKXt2YXIgdT17fTtmb3IodmFyIGQgaW4gYSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYSxkKSYmQy5pbmRleE9mKGQpPDAmJih1W2RdPWFbZF0pO2lmKGEhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgYz0wLGQ9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhhKTtjPGQubGVuZ3RoO2MrKylDLmluZGV4T2YoZFtjXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGEsZFtjXSkmJih1W2RbY11dPWFbZFtjXV0pO3JldHVybiB1fSxHPXkuZm9yd2FyZFJlZigoYSxDKT0+e2NvbnN0e3ByZWZpeENsczp1LHN0eWxlOmQsY2xhc3NOYW1lOmMsY2hlY2tlZDplLG9uQ2hhbmdlOkUsb25DbGljazpJfT1hLHo9RihhLFsicHJlZml4Q2xzIiwic3R5bGUiLCJjbGFzc05hbWUiLCJjaGVja2VkIiwib25DaGFuZ2UiLCJvbkNsaWNrIl0pLHtnZXRQcmVmaXhDbHM6Vyx0YWc6Tn09eS51c2VDb250ZXh0KGIuRV8pLFU9c2U9PntFPT1udWxsfHxFKCFlKSxJPT1udWxsfHxJKHNlKX0sVD1XKCJ0YWciLHUpLFtKLFgsRF09dWUoVCksbWU9ZWUoKShULGAke1R9LWNoZWNrYWJsZWAse1tgJHtUfS1jaGVja2FibGUtY2hlY2tlZGBdOmV9LE49PW51bGw/dm9pZCAwOk4uY2xhc3NOYW1lLGMsWCxEKTtyZXR1cm4gSih5LmNyZWF0ZUVsZW1lbnQoInNwYW4iLE9iamVjdC5hc3NpZ24oe30seix7cmVmOkMsc3R5bGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGQpLE49PW51bGw/dm9pZCAwOk4uc3R5bGUpLGNsYXNzTmFtZTptZSxvbkNsaWNrOlV9KSkpfSksY2U9dCg5ODcxOSk7Y29uc3QgdGU9YT0+KDAsY2UuWikoYSwoQyx1KT0+e2xldHt0ZXh0Q29sb3I6ZCxsaWdodEJvcmRlckNvbG9yOmMsbGlnaHRDb2xvcjplLGRhcmtDb2xvcjpFfT11O3JldHVybntbYCR7YS5jb21wb25lbnRDbHN9JHthLmNvbXBvbmVudENsc30tJHtDfWBdOntjb2xvcjpkLGJhY2tncm91bmQ6ZSxib3JkZXJDb2xvcjpjLCImLWludmVyc2UiOntjb2xvcjphLmNvbG9yVGV4dExpZ2h0U29saWQsYmFja2dyb3VuZDpFLGJvcmRlckNvbG9yOkV9LFtgJiR7YS5jb21wb25lbnRDbHN9LWJvcmRlcmxlc3NgXTp7Ym9yZGVyQ29sb3I6InRyYW5zcGFyZW50In19fX0pO3ZhciBIPSgwLGwuYmspKFsiVGFnIiwicHJlc2V0Il0sYT0+e2NvbnN0IEM9VihhKTtyZXR1cm4gdGUoQyl9LEIpO2Z1bmN0aW9uIGhlKGEpe3JldHVybiB0eXBlb2YgYSE9InN0cmluZyI/YTphLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2Euc2xpY2UoMSl9Y29uc3QgJD0oYSxDLHUpPT57Y29uc3QgZD1oZSh1KTtyZXR1cm57W2Ake2EuY29tcG9uZW50Q2xzfSR7YS5jb21wb25lbnRDbHN9LSR7Q31gXTp7Y29sb3I6YVtgY29sb3Ike3V9YF0sYmFja2dyb3VuZDphW2Bjb2xvciR7ZH1CZ2BdLGJvcmRlckNvbG9yOmFbYGNvbG9yJHtkfUJvcmRlcmBdLFtgJiR7YS5jb21wb25lbnRDbHN9LWJvcmRlcmxlc3NgXTp7Ym9yZGVyQ29sb3I6InRyYW5zcGFyZW50In19fX07dmFyIGRlPSgwLGwuYmspKFsiVGFnIiwic3RhdHVzIl0sYT0+e2NvbnN0IEM9VihhKTtyZXR1cm5bJChDLCJzdWNjZXNzIiwiU3VjY2VzcyIpLCQoQywicHJvY2Vzc2luZyIsIkluZm8iKSwkKEMsImVycm9yIiwiRXJyb3IiKSwkKEMsIndhcm5pbmciLCJXYXJuaW5nIildfSxCKSxmPWZ1bmN0aW9uKGEsQyl7dmFyIHU9e307Zm9yKHZhciBkIGluIGEpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEsZCkmJkMuaW5kZXhPZihkKTwwJiYodVtkXT1hW2RdKTtpZihhIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIGM9MCxkPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoYSk7YzxkLmxlbmd0aDtjKyspQy5pbmRleE9mKGRbY10pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChhLGRbY10pJiYodVtkW2NdXT1hW2RbY11dKTtyZXR1cm4gdX07Y29uc3QgWj15LmZvcndhcmRSZWYoKGEsQyk9Pntjb25zdHtwcmVmaXhDbHM6dSxjbGFzc05hbWU6ZCxyb290Q2xhc3NOYW1lOmMsc3R5bGU6ZSxjaGlsZHJlbjpFLGljb246SSxjb2xvcjp6LG9uQ2xvc2U6Vyxib3JkZXJlZDpOPSEwLHZpc2libGU6VX09YSxUPWYoYSxbInByZWZpeENscyIsImNsYXNzTmFtZSIsInJvb3RDbGFzc05hbWUiLCJzdHlsZSIsImNoaWxkcmVuIiwiaWNvbiIsImNvbG9yIiwib25DbG9zZSIsImJvcmRlcmVkIiwidmlzaWJsZSJdKSx7Z2V0UHJlZml4Q2xzOkosZGlyZWN0aW9uOlgsdGFnOkR9PXkudXNlQ29udGV4dChiLkVfKSxbbWUsc2VdPXkudXNlU3RhdGUoITApLGJlPSgwLHYuWikoVCxbImNsb3NlSWNvbiIsImNsb3NhYmxlIl0pO3kudXNlRWZmZWN0KCgpPT57VSE9PXZvaWQgMCYmc2UoVSl9LFtVXSk7Y29uc3QgeGU9KDAsaWUubzIpKHopLEs9KDAsaWUueVQpKHopLGdlPXhlfHxLLFNlPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7YmFja2dyb3VuZENvbG9yOnomJiFnZT96OnZvaWQgMH0sRD09bnVsbD92b2lkIDA6RC5zdHlsZSksZSksQT1KKCJ0YWciLHUpLFtwZSxDZSxaZV09dWUoQSksTmU9ZWUoKShBLEQ9PW51bGw/dm9pZCAwOkQuY2xhc3NOYW1lLHtbYCR7QX0tJHt6fWBdOmdlLFtgJHtBfS1oYXMtY29sb3JgXTp6JiYhZ2UsW2Ake0F9LWhpZGRlbmBdOiFtZSxbYCR7QX0tcnRsYF06WD09PSJydGwiLFtgJHtBfS1ib3JkZXJsZXNzYF06IU59LGQsYyxDZSxaZSksWT1sZT0+e2xlLnN0b3BQcm9wYWdhdGlvbigpLFc9PW51bGx8fFcobGUpLCFsZS5kZWZhdWx0UHJldmVudGVkJiZzZSghMSl9LFssa109KDAseC5aKSgoMCx4LncpKGEpLCgwLHgudykoRCkse2Nsb3NhYmxlOiExLGNsb3NlSWNvblJlbmRlcjpsZT0+e2NvbnN0IEFlPXkuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpgJHtBfS1jbG9zZS1pY29uYCxvbkNsaWNrOll9LGxlKTtyZXR1cm4oMCxyZS53bSkobGUsQWUsb2U9Pih7b25DbGljazprZT0+e3ZhciBGZTsoRmU9b2U9PW51bGw/dm9pZCAwOm9lLm9uQ2xpY2spPT09bnVsbHx8RmU9PT12b2lkIDB8fEZlLmNhbGwob2Usa2UpLFkoa2UpfSxjbGFzc05hbWU6ZWUoKShvZT09bnVsbD92b2lkIDA6b2UuY2xhc3NOYW1lLGAke0F9LWNsb3NlLWljb25gKX0pKX19KSx3PXR5cGVvZiBULm9uQ2xpY2s9PSJmdW5jdGlvbiJ8fEUmJkUudHlwZT09PSJhIixFZT1JfHxudWxsLFJlPUVlP3kuY3JlYXRlRWxlbWVudCh5LkZyYWdtZW50LG51bGwsRWUsRSYmeS5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLEUpKTpFLERlPXkuY3JlYXRlRWxlbWVudCgic3BhbiIsT2JqZWN0LmFzc2lnbih7fSxiZSx7cmVmOkMsY2xhc3NOYW1lOk5lLHN0eWxlOlNlfSksUmUsayx4ZSYmeS5jcmVhdGVFbGVtZW50KEgse2tleToicHJlc2V0IixwcmVmaXhDbHM6QX0pLEsmJnkuY3JlYXRlRWxlbWVudChkZSx7a2V5OiJzdGF0dXMiLHByZWZpeENsczpBfSkpO3JldHVybiBwZSh3P3kuY3JlYXRlRWxlbWVudChTLlose2NvbXBvbmVudDoiVGFnIn0sRGUpOkRlKX0pO1ouQ2hlY2thYmxlVGFnPUc7dmFyIFA9Wn19XSk7CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljL3BfX1VzZXJDZW50ZXJfX2luZGV4LjQ5OThkNzRjLmNodW5rLmNzcyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvcF9fVXNlckNlbnRlcl9faW5kZXguNDk5OGQ3NGMuY2h1bmsuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUyMzQyMWMKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljL3BfX1VzZXJDZW50ZXJfX2luZGV4LjQ5OThkNzRjLmNodW5rLmNzcwpAQCAtMCwwICsxIEBACisucG9zdENhcmRXcmFwcGVyX19fU3cxU2l7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJX0ucG9zdENhcmRfX19mTEtOYXtoZWlnaHQ6MTAwJTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2JvcmRlci1yYWRpdXM6MTJweDtvdmVyZmxvdzpoaWRkZW47Ym94LXNoYWRvdzowIDJweCA4cHggIzAwMDAwMDFhO3RyYW5zaXRpb246YWxsIC4zcyBlYXNlO2JhY2tncm91bmQ6I2ZmZn0ucG9zdENhcmRfX19mTEtOYTpob3Zlcnt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNHB4KTtib3gtc2hhZG93OjAgOHB4IDI0cHggIzAwMDAwMDI2fS5jb3ZlckNvbnRhaW5lcl9fX0c4bzE0e3dpZHRoOjEwMCU7aGVpZ2h0OjIwMHB4O292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZTtiYWNrZ3JvdW5kOiNmNWY1ZjU7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5jb3ZlckltYWdlX19fc25jeGV7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtvYmplY3QtZml0OmNvbnRhaW47b2JqZWN0LXBvc2l0aW9uOmNlbnRlcjt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuM3MgZWFzZTtiYWNrZ3JvdW5kOiNmNWY1ZjV9LnBvc3RDYXJkX19fZkxLTmE6aG92ZXIgLmNvdmVySW1hZ2VfX19zbmN4ZXt0cmFuc2Zvcm06c2NhbGUoMS4wMil9LnByb21vdGlvbkJhZGdlX19fbnJmRHl7cG9zaXRpb246YWJzb2x1dGU7dG9wOjhweDtyaWdodDo4cHg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoNDVkZWcsI2ZmNmI2YixvcmFuZ2UpO2NvbG9yOiNmZmY7cGFkZGluZzo0cHggOHB4O2JvcmRlci1yYWRpdXM6MTJweDtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo3MDA7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NHB4O3otaW5kZXg6MTA7Ym94LXNoYWRvdzowIDJweCA0cHggIzAwMDN9LmNhcmRDb250ZW50X19feG9Lc197ZmxleDoxIDE7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtoZWlnaHQ6MTAwJX0ucG9zdFRpdGxlX19fa0pOVXR7Zm9udC1zaXplOjE2cHg7Zm9udC13ZWlnaHQ6NjAwO21hcmdpbjowIDAgMTJweDtsaW5lLWhlaWdodDoxLjQ7Y29sb3I6IzI2MjYyNjtkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtbGluZS1jbGFtcDoyOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDtvdmVyZmxvdzpoaWRkZW47aGVpZ2h0OjQ0cHh9LnBvc3RNZXRhX19fb0F2Y0h7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtmb250LXNpemU6MTJweDtjb2xvcjojOGM4YzhjO21hcmdpbi1ib3R0b206MTJweDtoZWlnaHQ6MjBweH0uYXV0aG9yTmFtZV9fX0FWaFNte2ZvbnQtd2VpZ2h0OjUwMDtjb2xvcjojNTk1OTU5fS5wdWJsaXNoVGltZV9fX0xyUHFoe2NvbG9yOiM4YzhjOGN9LnRhZ3NDb250YWluZXJfX19Da29pcXttYXJnaW4tYm90dG9tOjEycHg7aGVpZ2h0OjI0cHg7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO2dhcDo0cHg7b3ZlcmZsb3c6aGlkZGVufS50YWdfX19JUDhLZHtmb250LXNpemU6MTFweDtwYWRkaW5nOjJweCA2cHg7bWFyZ2luOjA7Ym9yZGVyLXJhZGl1czo0cHh9LnBvc3RTdW1tYXJ5X19fSjFRYzV7ZmxleDoxIDE7Zm9udC1zaXplOjEzcHg7Y29sb3I6IzU5NTk1OTtsaW5lLWhlaWdodDoxLjU7bWFyZ2luLWJvdHRvbToxNnB4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7LXdlYmtpdC1saW5lLWNsYW1wOjM7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsO292ZXJmbG93OmhpZGRlbjtoZWlnaHQ6NjBweH0ucG9zdEZvb3Rlcl9fX1hWY3Vye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47bWFyZ2luLXRvcDphdXRvO3BhZGRpbmctdG9wOjEycHg7Ym9yZGVyLXRvcDoxcHggc29saWQgI2YwZjBmMDtoZWlnaHQ6MzJweH0uc3RhdHNfX19wUXlyOXtkaXNwbGF5OmZsZXg7Z2FwOjE2cHh9LnN0YXRJdGVtX19fR1pqMEp7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NHB4O2ZvbnQtc2l6ZToxMnB4O2NvbG9yOiM4YzhjOGN9LnN0YXRJdGVtX19fR1pqMEogLmFudGljb25fX19fWksxUHtmb250LXNpemU6MTJweH0ucmVhZE1vcmVCdG5fX19CeXY1V3twYWRkaW5nOjA7Zm9udC1zaXplOjEycHg7Y29sb3I6IzE4OTBmZjtmb250LXdlaWdodDo1MDB9LnJlYWRNb3JlQnRuX19fQnl2NVc6aG92ZXJ7Y29sb3I6IzQwYTlmZn1AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpey5jb3ZlckNvbnRhaW5lcl9fX0c4bzE0e2hlaWdodDoxNjBweH0ucG9zdFRpdGxlX19fa0pOVXR7Zm9udC1zaXplOjE0cHg7aGVpZ2h0OjQwcHh9LnBvc3RTdW1tYXJ5X19fSjFRYzV7Zm9udC1zaXplOjEycHg7LXdlYmtpdC1saW5lLWNsYW1wOjI7aGVpZ2h0OjM2cHh9LnN0YXRzX19fcFF5cjl7Z2FwOjEycHh9LnN0YXRJdGVtX19fR1pqMEp7Zm9udC1zaXplOjExcHh9fS51c2VyQ2VudGVyQ29udGFpbmVyX19fRkpZUzN7bWF4LXdpZHRoOjEyMDBweDttYXJnaW46MCBhdXRvO3BhZGRpbmc6MjRweDttaW4taGVpZ2h0OjEwMHZoO2JhY2tncm91bmQ6I2Y1ZjVmNX0udXNlckNlbnRlckNhcmRfX19hVDdVV3tiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyLXJhZGl1czo4cHg7Ym94LXNoYWRvdzowIDJweCA4cHggIzAwMDAwMDFhfS50YWJDb250ZW50X19fUU1NOGh7cGFkZGluZzoxNnB4IDB9LnRhYkhlYWRlcl9fX0NmRmhIe21hcmdpbi1ib3R0b206MTZweDtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47YWxpZ24taXRlbXM6Y2VudGVyfS5lbXB0eVN0YXRlX19fVG1iYU57dGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZzo2MHB4IDA7Y29sb3I6Izk5OX0uZW1wdHlTdGF0ZV9fX1RtYmFOIHB7bWFyZ2luLXRvcDoxNnB4O2ZvbnQtc2l6ZToxNnB4fS5wYXltZW50TW9kYWxfX19tRWhnVnt0ZXh0LWFsaWduOmNlbnRlcn0ucGF5bWVudEluZm9fX19WUzhYd3ttYXJnaW4tYm90dG9tOjI0cHg7cGFkZGluZzoxNnB4O2JhY2tncm91bmQ6I2Y5ZjlmOTtib3JkZXItcmFkaXVzOjhweH0ucGF5bWVudEluZm9fX19WUzhYdyBoM3ttYXJnaW46MCAwIDhweDtjb2xvcjojMTg5MGZmfS5wYXltZW50SW5mb19fX1ZTOFh3IHB7bWFyZ2luOjRweCAwO2NvbG9yOiM2NjZ9LnFyQ29kZV9fX0ttT2lae21hcmdpbjoyNHB4IDB9LnFyQ29kZVBsYWNlaG9sZGVyX19fVEsxN2d7cGFkZGluZzoyNHB4O2JvcmRlcjoycHggZGFzaGVkICNkOWQ5ZDk7Ym9yZGVyLXJhZGl1czo4cHg7YmFja2dyb3VuZDojZmFmYWZhfS5tb2NrUXJDb2RlX19fQWNYNG97d2lkdGg6MTIwcHg7aGVpZ2h0OjEyMHB4O21hcmdpbjoxNnB4IGF1dG87Ym9yZGVyOjFweCBzb2xpZCAjZDlkOWQ5O2JvcmRlci1yYWRpdXM6OHB4O2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7YmFja2dyb3VuZDojZmZmfS5tb2NrUXJDb2RlX19fQWNYNG8gcHttYXJnaW46NHB4IDA7Zm9udC1zaXplOjEycHg7Y29sb3I6IzY2Nn0ucGF5bWVudEFjdGlvbnNfX19nT1RpY3ttYXJnaW4tdG9wOjI0cHh9CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljL3BfX1VzZXJfX0NlbnRlcl9faW5kZXguNjdmODRiYzUuYXN5bmMuanMgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljL3BfX1VzZXJfX0NlbnRlcl9faW5kZXguNjdmODRiYzUuYXN5bmMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTVjNTgyNwotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvcF9fVXNlcl9fQ2VudGVyX19pbmRleC42N2Y4NGJjNS5hc3luYy5qcwpAQCAtMCwwICsxIEBACisidXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W10pLnB1c2goW1s5MjQ1LDg5MDYsOTQ5LDQyOTZdLHs4NjYxNTpmdW5jdGlvbihaLE8sZSl7dmFyIEY9ZSgxNDEzKSxsPWUoOTEpLGI9ZSgyMjI3MCksVD1lKDc4MDQ1KSx4PWUoNjcyOTQpLGo9ZSg5MDc4OSksRT1lKDkyMTc5KSxwPWUoODU4OTMpLGg9WyJmaWVsZFByb3BzIiwib3B0aW9ucyIsInJhZGlvVHlwZSIsImxheW91dCIsInByb0ZpZWxkUHJvcHMiLCJ2YWx1ZUVudW0iXSxQPXguZm9yd2FyZFJlZihmdW5jdGlvbih0LGMpe3ZhciBfPXQuZmllbGRQcm9wcyxhPXQub3B0aW9ucyxkPXQucmFkaW9UeXBlLG89dC5sYXlvdXQsdT10LnByb0ZpZWxkUHJvcHMscz10LnZhbHVlRW51bSxBPSgwLGwuWikodCxoKTtyZXR1cm4oMCxwLmpzeCkoRS5aLCgwLEYuWikoKDAsRi5aKSh7dmFsdWVUeXBlOmQ9PT0iYnV0dG9uIj8icmFkaW9CdXR0b24iOiJyYWRpbyIscmVmOmMsdmFsdWVFbnVtOigwLGIuaCkocyx2b2lkIDApfSxBKSx7fSx7ZmllbGRQcm9wczooMCxGLlopKHtvcHRpb25zOmEsbGF5b3V0Om99LF8pLHByb0ZpZWxkUHJvcHM6dSxmaWxlZENvbmZpZzp7Y3VzdG9tTGlnaHRNb2RlOiEwfX0pKX0pLGk9eC5mb3J3YXJkUmVmKGZ1bmN0aW9uKHQsYyl7dmFyIF89dC5maWVsZFByb3BzLGE9dC5jaGlsZHJlbjtyZXR1cm4oMCxwLmpzeCkoVC5aUCwoMCxGLlopKCgwLEYuWikoe30sXykse30se3JlZjpjLGNoaWxkcmVuOmF9KSl9KSxEPSgwLGouRykoaSx7dmFsdWVQcm9wTmFtZToiY2hlY2tlZCIsaWdub3JlV2lkdGg6ITB9KSxtPUQ7bS5Hcm91cD1QLG0uQnV0dG9uPVQuWlAuQnV0dG9uLG0uZGlzcGxheU5hbWU9IlByb0Zvcm1Db21wb25lbnQiLE8uWj1tfSw1OTY2OmZ1bmN0aW9uKFosTyxlKXt2YXIgRj1lKDk3Njg1KSxsPWUoMTQxMyksYj1lKDkxKSxUPWUoMjE3NzApLHg9ZSg5OTg1OSksaj1lKDU1MjQxKSxFPWUoOTg0MjMpLHA9ZSg2NzI5NCksaD1lKDkyMTc5KSxQPWUoODU4OTMpLGk9WyJmaWVsZFByb3BzIiwicHJvRmllbGRQcm9wcyJdLEQ9WyJmaWVsZFByb3BzIiwicHJvRmllbGRQcm9wcyJdLG09InRleHQiLHQ9ZnVuY3Rpb24obyl7dmFyIHU9by5maWVsZFByb3BzLHM9by5wcm9GaWVsZFByb3BzLEE9KDAsYi5aKShvLGkpO3JldHVybigwLFAuanN4KShoLlosKDAsbC5aKSh7dmFsdWVUeXBlOm0sZmllbGRQcm9wczp1LGZpbGVkQ29uZmlnOnt2YWx1ZVR5cGU6bX0scHJvRmllbGRQcm9wczpzfSxBKSl9LGM9ZnVuY3Rpb24obyl7dmFyIHU9KDAsVC5aKShvLm9wZW58fCExLHt2YWx1ZTpvLm9wZW4sb25DaGFuZ2U6by5vbk9wZW5DaGFuZ2V9KSxzPSgwLEYuWikodSwyKSxBPXNbMF0seT1zWzFdO3JldHVybigwLFAuanN4KSh4LlouSXRlbSx7c2hvdWxkVXBkYXRlOiEwLG5vU3R5bGU6ITAsY2hpbGRyZW46ZnVuY3Rpb24oQil7dmFyIHIsTD1CLmdldEZpZWxkVmFsdWUoby5uYW1lfHxbXSk7cmV0dXJuKDAsUC5qc3gpKGouWiwoMCxsLlopKCgwLGwuWikoe2dldFBvcHVwQ29udGFpbmVyOmZ1bmN0aW9uKG4pe3JldHVybiBuJiZuLnBhcmVudE5vZGU/bi5wYXJlbnROb2RlOm59LG9uT3BlbkNoYW5nZTpmdW5jdGlvbihuKXtyZXR1cm4geShuKX0sY29udGVudDooMCxQLmpzeHMpKCJkaXYiLHtzdHlsZTp7cGFkZGluZzoiNHB4IDAifSxjaGlsZHJlbjpbKHI9by5zdGF0dXNSZW5kZXIpPT09bnVsbHx8cj09PXZvaWQgMD92b2lkIDA6ci5jYWxsKG8sTCksby5zdHJlbmd0aFRleHQ/KDAsUC5qc3gpKCJkaXYiLHtzdHlsZTp7bWFyZ2luVG9wOjEwfSxjaGlsZHJlbjooMCxQLmpzeCkoInNwYW4iLHtjaGlsZHJlbjpvLnN0cmVuZ3RoVGV4dH0pfSk6bnVsbF19KSxvdmVybGF5U3R5bGU6e3dpZHRoOjI0MH0scGxhY2VtZW50OiJyaWdodFRvcCJ9LG8ucG9wb3ZlclByb3BzKSx7fSx7b3BlbjpBLGNoaWxkcmVuOm8uY2hpbGRyZW59KSl9fSl9LF89ZnVuY3Rpb24obyl7dmFyIHU9by5maWVsZFByb3BzLHM9by5wcm9GaWVsZFByb3BzLEE9KDAsYi5aKShvLEQpLHk9KDAscC51c2VTdGF0ZSkoITEpLFU9KDAsRi5aKSh5LDIpLEI9VVswXSxyPVVbMV07cmV0dXJuIHUhPW51bGwmJnUuc3RhdHVzUmVuZGVyJiZBLm5hbWU/KDAsUC5qc3gpKGMse25hbWU6QS5uYW1lLHN0YXR1c1JlbmRlcjp1PT1udWxsP3ZvaWQgMDp1LnN0YXR1c1JlbmRlcixwb3BvdmVyUHJvcHM6dT09bnVsbD92b2lkIDA6dS5wb3BvdmVyUHJvcHMsc3RyZW5ndGhUZXh0OnU9PW51bGw/dm9pZCAwOnUuc3RyZW5ndGhUZXh0LG9wZW46Qixvbk9wZW5DaGFuZ2U6cixjaGlsZHJlbjooMCxQLmpzeCkoImRpdiIse2NoaWxkcmVuOigwLFAuanN4KShoLlosKDAsbC5aKSh7dmFsdWVUeXBlOiJwYXNzd29yZCIsZmllbGRQcm9wczooMCxsLlopKCgwLGwuWikoe30sKDAsRS5aKSh1LFsic3RhdHVzUmVuZGVyIiwicG9wb3ZlclByb3BzIiwic3RyZW5ndGhUZXh0Il0pKSx7fSx7b25CbHVyOmZ1bmN0aW9uKFIpe3ZhciBuO3U9PW51bGx8fChuPXUub25CbHVyKT09PW51bGx8fG49PT12b2lkIDB8fG4uY2FsbCh1LFIpLHIoITEpfSxvbkNsaWNrOmZ1bmN0aW9uKFIpe3ZhciBuO3U9PW51bGx8fChuPXUub25DbGljayk9PT1udWxsfHxuPT09dm9pZCAwfHxuLmNhbGwodSxSKSxyKCEwKX19KSxwcm9GaWVsZFByb3BzOnMsZmlsZWRDb25maWc6e3ZhbHVlVHlwZTptfX0sQSkpfSl9KTooMCxQLmpzeCkoaC5aLCgwLGwuWikoe3ZhbHVlVHlwZToicGFzc3dvcmQiLGZpZWxkUHJvcHM6dSxwcm9GaWVsZFByb3BzOnMsZmlsZWRDb25maWc6e3ZhbHVlVHlwZTptfX0sQSkpfSxhPXQ7YS5QYXNzd29yZD1fLGEuZGlzcGxheU5hbWU9IlByb0Zvcm1Db21wb25lbnQiLE8uWj1hfSw4MzgzMjpmdW5jdGlvbihaLE8sZSl7ZS5kKE8se1M6ZnVuY3Rpb24oKXtyZXR1cm4gRX19KTt2YXIgRj1lKDE0MTMpLGw9ZSg5MSksYj1lKDU3MzgxKSxUPWUoNjcyOTQpLHg9ZSg4NTg5Myksaj1bImlzTG9hZGluZyIsInBhc3REZWxheSIsInRpbWVkT3V0IiwiZXJyb3IiLCJyZXRyeSJdLEU9ZnVuY3Rpb24oaCl7dmFyIFA9aC5pc0xvYWRpbmcsaT1oLnBhc3REZWxheSxEPWgudGltZWRPdXQsbT1oLmVycm9yLHQ9aC5yZXRyeSxjPSgwLGwuWikoaCxqKTtyZXR1cm4oMCx4LmpzeCkoImRpdiIse3N0eWxlOntwYWRkaW5nQmxvY2tTdGFydDoxMDAsdGV4dEFsaWduOiJjZW50ZXIifSxjaGlsZHJlbjooMCx4LmpzeCkoYi5aLCgwLEYuWikoe3NpemU6ImxhcmdlIn0sYykpfSl9fSwzNzY5NDpmdW5jdGlvbihaLE8sZSl7ZS5yKE8pLGUuZChPLHtkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuIHl9fSk7dmFyIEY9ZSg1NTc0KSxsPWUubihGKSxiPWUoNjcyOTQpLFQ9ZSgyNDUzKSx4PWUoMTc3ODgpLGo9ZSg3MTIzMCksRT1lKDE1NzQ2KSxwPWUoMjM3OTkpLGg9ZSg4MzYyMiksUD1lKDc4OTU3KSxpPWUoNzY3NzIpLEQ9ZSg5MDI1KSxtPWUoNDIwMTYpLHQ9ZSg2ODkwNiksYz17YXZhdGFyUHJldmlldzoiYXZhdGFyUHJldmlld19fX2FWSlBEIn0sXz1lKDg4NDg0KSxhPWUoODc3NDApLGQ9ZSgxMDE0OSksbz1lKDI0OTY5KSx1PWUoNTI3NDUpLHM9ZSg4NTg5MyksQT1mdW5jdGlvbihCKXt2YXIgcj0oMCxiLnVzZVJlZikobnVsbCksTD0oMCxiLnVzZVN0YXRlKSgpLFI9bCgpKEwsMiksbj1SWzBdLGY9UlsxXSxDPSgwLGIudXNlU3RhdGUpKCksVz1sKCkoQywyKSxnPVdbMF0sUT1XWzFdOygwLGIudXNlRWZmZWN0KShmdW5jdGlvbigpe2YoQi5kYXRhKX0sW0JdKTt2YXIgSj0oMCxpLnVzZUludGwpKCksJD1mdW5jdGlvbigpe3ZhciB2PXI9PW51bGw/dm9pZCAwOnIuY3VycmVudCxNPXY9PW51bGw/dm9pZCAwOnYuY3JvcHBlcjtNLmdldENyb3BwZWRDYW52YXMoKS50b0Jsb2IoZnVuY3Rpb24oSSl7dmFyIFg9bmV3IEZvcm1EYXRhO1guYXBwZW5kKCJhdmF0YXJmaWxlIixJKSwoMCxELmdnKShYKS50aGVuKGZ1bmN0aW9uKEcpe0cuY29kZT09PTIwMD8oVC5aUC5zdWNjZXNzKEcubXNnKSxCLm9uRmluaXNoZWQoITApKTpULlpQLndhcm5pbmcoRy5tc2cpfSl9LCJpbWFnZS9wbmciKX0sWT1mdW5jdGlvbigpe0Iub25GaW5pc2hlZCghMSl9LHo9ZnVuY3Rpb24oKXt2YXIgdj1yPT1udWxsP3ZvaWQgMDpyLmN1cnJlbnQsTT12PT1udWxsP3ZvaWQgMDp2LmNyb3BwZXI7UShNLmdldENyb3BwZWRDYW52YXMoKS50b0RhdGFVUkwoKSl9LFY9ZnVuY3Rpb24oKXt2YXIgdj1yPT1udWxsP3ZvaWQgMDpyLmN1cnJlbnQsTT12PT1udWxsP3ZvaWQgMDp2LmNyb3BwZXI7TS5yb3RhdGUoOTApfSxIPWZ1bmN0aW9uKCl7dmFyIHY9cj09bnVsbD92b2lkIDA6ci5jdXJyZW50LE09dj09bnVsbD92b2lkIDA6di5jcm9wcGVyO00ucm90YXRlKC05MCl9LE49ZnVuY3Rpb24oKXt2YXIgdj1yPT1udWxsP3ZvaWQgMDpyLmN1cnJlbnQsTT12PT1udWxsP3ZvaWQgMDp2LmNyb3BwZXI7TS56b29tKC4xKX0sSz1mdW5jdGlvbigpe3ZhciB2PXI9PW51bGw/dm9pZCAwOnIuY3VycmVudCxNPXY9PW51bGw/dm9pZCAwOnYuY3JvcHBlcjtNLnpvb20oLS4xKX0sdz1mdW5jdGlvbih2KXt2YXIgTT1uZXcgRmlsZVJlYWRlcjtNLnJlYWRBc0RhdGFVUkwodiksTS5vbmxvYWQ9ZnVuY3Rpb24oKXtmKE0ucmVzdWx0KX19O3JldHVybigwLHMuanN4cykoeC5aLHt3aWR0aDo4MDAsdGl0bGU6Si5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLnVzZXIubW9kaWZ5X2F2YXRhciIsZGVmYXVsdE1lc3NhZ2U6Ilx1NEZFRVx1NjUzOVx1NTkzNFx1NTBDRiJ9KSxvcGVuOkIub3BlbixkZXN0cm95T25DbG9zZTohMCxvbk9rOiQsb25DYW5jZWw6WSxjaGlsZHJlbjpbKDAscy5qc3hzKShqLlose2d1dHRlcjpbMTYsMTZdLGNoaWxkcmVuOlsoMCxzLmpzeCkoRS5aLHtzcGFuOjEyLG9yZGVyOjEsY2hpbGRyZW46KDAscy5qc3gpKG0uZix7cmVmOnIsc3JjOm4sc3R5bGU6e2hlaWdodDozNTAsd2lkdGg6IjEwMCUiLG1hcmdpbkJvdHRvbToiMTZweCJ9LGluaXRpYWxBc3BlY3RSYXRpbzoxLGd1aWRlczohMSxjcm9wOnosem9vbWFibGU6ITAsem9vbU9uV2hlZWw6ITAscm90YXRhYmxlOiEwfSl9KSwoMCxzLmpzeCkoRS5aLHtzcGFuOjEyLG9yZGVyOjIsY2hpbGRyZW46KDAscy5qc3gpKCJkaXYiLHtjbGFzc05hbWU6Yy5hdmF0YXJQcmV2aWV3LGNoaWxkcmVuOigwLHMuanN4KSgiaW1nIix7c3JjOmcsc3R5bGU6e2hlaWdodDoiMTAwJSIsd2lkdGg6IjEwMCUifX0pfSl9KV19KSwoMCxzLmpzeHMpKGouWix7Z3V0dGVyOlsxNiwxNl0sY2hpbGRyZW46WygwLHMuanN4KShFLlose3NwYW46NixjaGlsZHJlbjooMCxzLmpzeCkocC5aLHtiZWZvcmVVcGxvYWQ6dyxtYXhDb3VudDoxLGNoaWxkcmVuOigwLHMuanN4cykoaC5aUCx7Y2hpbGRyZW46WygwLHMuanN4KShfLlose30pLCJcdTRFMEFcdTRGMjAiXX0pfSl9KSwoMCxzLmpzeCkoRS5aLHtjaGlsZHJlbjooMCxzLmpzeHMpKFAuWix7Y2hpbGRyZW46WygwLHMuanN4KShoLlpQLHtpY29uOigwLHMuanN4KShhLlose30pLG9uQ2xpY2s6Vn0pLCgwLHMuanN4KShoLlpQLHtpY29uOigwLHMuanN4KShkLlose30pLG9uQ2xpY2s6SH0pLCgwLHMuanN4KShoLlpQLHtpY29uOigwLHMuanN4KShvLlose30pLG9uQ2xpY2s6Tn0pLCgwLHMuanN4KShoLlpQLHtpY29uOigwLHMuanN4KSh1Llose30pLG9uQ2xpY2s6S30pXX0pfSldfSldfSl9LHk9QX0sMjA5NDk6ZnVuY3Rpb24oWixPLGUpe2UucihPKTt2YXIgRj1lKDE1MDA5KSxsPWUubihGKSxiPWUoOTc4NTcpLFQ9ZS5uKGIpLHg9ZSg5OTI4OSksaj1lLm4oeCksRT1lKDU1NzQpLHA9ZS5uKEUpLGg9ZSg2NzI5NCksUD1lKDk5ODU5KSxpPWUoMjQ1MyksRD1lKDcxMjMwKSxtPWUoNzY3NzIpLHQ9ZSg5NzI2OSksYz1lKDU5NjYpLF89ZSg4NjYxNSksYT1lKDkwMjUpLGQ9ZSg4NTg5Myksbz1mdW5jdGlvbihzKXt2YXIgQT1QLloudXNlRm9ybSgpLHk9cCgpKEEsMSksVT15WzBdLEI9KDAsbS51c2VJbnRsKSgpLHI9ZnVuY3Rpb24oKXt2YXIgTD1qKCkobCgpKCkubWFyayhmdW5jdGlvbiBSKG4pe3ZhciBmLEM7cmV0dXJuIGwoKSgpLndyYXAoZnVuY3Rpb24oZyl7Zm9yKDs7KXN3aXRjaChnLnByZXY9Zy5uZXh0KXtjYXNlIDA6cmV0dXJuIGY9VCgpKFQoKSh7fSxzLnZhbHVlcyksbiksZy5uZXh0PTMsKDAsYS5MaikoZik7Y2FzZSAzOkM9Zy5zZW50LEMuY29kZT09PTIwMD9pLlpQLnN1Y2Nlc3MoIlx1NEZFRVx1NjUzOVx1NjIxMFx1NTI5RiIpOmkuWlAud2FybmluZyhDLm1zZyk7Y2FzZSA1OmNhc2UiZW5kIjpyZXR1cm4gZy5zdG9wKCl9fSxSKX0pKTtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIEwuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKTtyZXR1cm4oMCxkLmpzeCkoZC5GcmFnbWVudCx7Y2hpbGRyZW46KDAsZC5qc3hzKSh0LkEse2Zvcm06VSxvbkZpbmlzaDpyLGluaXRpYWxWYWx1ZXM6cy52YWx1ZXMsY2hpbGRyZW46WygwLGQuanN4KShELlose2NoaWxkcmVuOigwLGQuanN4KShjLlose25hbWU6Im5pY2tOYW1lIixsYWJlbDpCLmZvcm1hdE1lc3NhZ2Uoe2lkOiJzeXN0ZW0udXNlci5uaWNrX25hbWUiLGRlZmF1bHRNZXNzYWdlOiJcdTc1MjhcdTYyMzdcdTY2MzVcdTc5RjAifSksd2lkdGg6InhsIixwbGFjZWhvbGRlcjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU3NTI4XHU2MjM3XHU2NjM1XHU3OUYwIixydWxlczpbe3JlcXVpcmVkOiEwLG1lc3NhZ2U6KDAsZC5qc3gpKG0uRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NzUyOFx1NjIzN1x1NjYzNVx1NzlGMFx1RkYwMSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NzUyOFx1NjIzN1x1NjYzNVx1NzlGMFx1RkYwMSJ9KX1dfSl9KSwoMCxkLmpzeCkoRC5aLHtjaGlsZHJlbjooMCxkLmpzeCkoYy5aLHtuYW1lOiJwaG9uZW51bWJlciIsbGFiZWw6Qi5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLnVzZXIucGhvbmVudW1iZXIiLGRlZmF1bHRNZXNzYWdlOiJcdTYyNEJcdTY3M0FcdTUzRjdcdTc4MDEifSksd2lkdGg6InhsIixwbGFjZWhvbGRlcjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU2MjRCXHU2NzNBXHU1M0Y3XHU3ODAxIixydWxlczpbe3JlcXVpcmVkOiExLG1lc3NhZ2U6KDAsZC5qc3gpKG0uRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NjI0Qlx1NjczQVx1NTNGN1x1NzgwMVx1RkYwMSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NjI0Qlx1NjczQVx1NTNGN1x1NzgwMVx1RkYwMSJ9KX1dfSl9KSwoMCxkLmpzeCkoRC5aLHtjaGlsZHJlbjooMCxkLmpzeCkoYy5aLHtuYW1lOiJlbWFpbCIsbGFiZWw6Qi5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLnVzZXIuZW1haWwiLGRlZmF1bHRNZXNzYWdlOiJcdTkwQUVcdTdCQjEifSksd2lkdGg6InhsIixwbGFjZWhvbGRlcjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU5MEFFXHU3QkIxIixydWxlczpbe3R5cGU6ImVtYWlsIixtZXNzYWdlOiJcdTY1RTBcdTY1NDhcdTc2ODRcdTkwQUVcdTdCQjFcdTU3MzBcdTU3NDAhIn0se3JlcXVpcmVkOiExLG1lc3NhZ2U6KDAsZC5qc3gpKG0uRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1OTBBRVx1N0JCMVx1RkYwMSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1OTBBRVx1N0JCMVx1RkYwMSJ9KX1dfSl9KSwoMCxkLmpzeCkoRC5aLHtjaGlsZHJlbjooMCxkLmpzeCkoXy5aLkdyb3VwLHtvcHRpb25zOlt7bGFiZWw6Ilx1NzUzNyIsdmFsdWU6IjAifSx7bGFiZWw6Ilx1NTk3MyIsdmFsdWU6IjEifV0sbmFtZToic2V4IixsYWJlbDpCLmZvcm1hdE1lc3NhZ2Uoe2lkOiJzeXN0ZW0udXNlci5zZXgiLGRlZmF1bHRNZXNzYWdlOiJzZXgifSksd2lkdGg6InhsIixydWxlczpbe3JlcXVpcmVkOiExLG1lc3NhZ2U6KDAsZC5qc3gpKG0uRm9ybWF0dGVkTWVzc2FnZSx7aWQ6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NjAyN1x1NTIyQlx1RkYwMSIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NjAyN1x1NTIyQlx1RkYwMSJ9KX1dfSl9KV19KX0pfTtPLmRlZmF1bHQ9b30sMzQyOTY6ZnVuY3Rpb24oWixPLGUpe2UucihPKTt2YXIgRj1lKDE1MDA5KSxsPWUubihGKSxiPWUoOTkyODkpLFQ9ZS5uKGIpLHg9ZSg1NTc0KSxqPWUubih4KSxFPWUoNjcyOTQpLHA9ZSg5OTg1OSksaD1lKDI0NTMpLFA9ZSg3Njc3MiksaT1lKDkwMjUpLEQ9ZSg5NzI2OSksbT1lKDU5NjYpLHQ9ZSg4NTg5MyksYz1mdW5jdGlvbigpe3ZhciBhPXAuWi51c2VGb3JtKCksZD1qKCkoYSwxKSxvPWRbMF0sdT0oMCxQLnVzZUludGwpKCkscz1mdW5jdGlvbigpe3ZhciB5PVQoKShsKCkoKS5tYXJrKGZ1bmN0aW9uIFUoQil7dmFyIHI7cmV0dXJuIGwoKSgpLndyYXAoZnVuY3Rpb24oUil7Zm9yKDs7KXN3aXRjaChSLnByZXY9Ui5uZXh0KXtjYXNlIDA6cmV0dXJuIFIubmV4dD0yLCgwLGkud3ApKEIub2xkUGFzc3dvcmQsQi5uZXdQYXNzd29yZCk7Y2FzZSAyOnI9Ui5zZW50LHIuY29kZT09PTIwMD9oLlpQLnN1Y2Nlc3MoIlx1NUJDNlx1NzgwMVx1OTFDRFx1N0Y2RVx1NjIxMFx1NTI5Rlx1MzAwMiIpOmguWlAud2FybmluZyhyLm1zZyk7Y2FzZSA0OmNhc2UiZW5kIjpyZXR1cm4gUi5zdG9wKCl9fSxVKX0pKTtyZXR1cm4gZnVuY3Rpb24oQil7cmV0dXJuIHkuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSxBPWZ1bmN0aW9uKFUsQil7dmFyIHI9by5nZXRGaWVsZFZhbHVlKCJuZXdQYXNzd29yZCIpO3JldHVybiBCPT09cj9Qcm9taXNlLnJlc29sdmUoKTpQcm9taXNlLnJlamVjdChuZXcgRXJyb3IoIlx1NEUyNFx1NkIyMVx1NUJDNlx1NzgwMVx1OEY5M1x1NTE2NVx1NEUwRFx1NEUwMFx1ODFGNCIpKX07cmV0dXJuKDAsdC5qc3gpKHQuRnJhZ21lbnQse2NoaWxkcmVuOigwLHQuanN4cykoRC5BLHtmb3JtOm8sb25GaW5pc2g6cyxjaGlsZHJlbjpbKDAsdC5qc3gpKG0uWi5QYXNzd29yZCx7bmFtZToib2xkUGFzc3dvcmQiLGxhYmVsOnUuZm9ybWF0TWVzc2FnZSh7aWQ6InN5c3RlbS51c2VyLm9sZF9wYXNzd29yZCIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjVFN1x1NUJDNlx1NzgwMSJ9KSx3aWR0aDoieGwiLHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdTY1RTdcdTVCQzZcdTc4MDEiLHJ1bGVzOlt7cmVxdWlyZWQ6ITAsbWVzc2FnZTooMCx0LmpzeCkoUC5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU2NUU3XHU1QkM2XHU3ODAxXHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU2NUU3XHU1QkM2XHU3ODAxXHVGRjAxIn0pfV19KSwoMCx0LmpzeCkobS5aLlBhc3N3b3JkLHtuYW1lOiJuZXdQYXNzd29yZCIsbGFiZWw6dS5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLnVzZXIubmV3X3Bhc3N3b3JkIixkZWZhdWx0TWVzc2FnZToiXHU2NUIwXHU1QkM2XHU3ODAxIn0pLHdpZHRoOiJ4bCIscGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NjVCMFx1NUJDNlx1NzgwMSIscnVsZXM6W3tyZXF1aXJlZDohMCxtZXNzYWdlOigwLHQuanN4KShQLkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJcdThCRjdcdThGOTNcdTUxNjVcdTY1QjBcdTVCQzZcdTc4MDFcdUZGMDEiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTY1QjBcdTVCQzZcdTc4MDFcdUZGMDEifSl9XX0pLCgwLHQuanN4KShtLlouUGFzc3dvcmQse25hbWU6ImNvbmZpcm1QYXNzd29yZCIsbGFiZWw6dS5mb3JtYXRNZXNzYWdlKHtpZDoic3lzdGVtLnVzZXIuY29uZmlybV9wYXNzd29yZCIsZGVmYXVsdE1lc3NhZ2U6Ilx1Nzg2RVx1OEJBNFx1NUJDNlx1NzgwMSJ9KSx3aWR0aDoieGwiLHBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdTc4NkVcdThCQTRcdTVCQzZcdTc4MDEiLHJ1bGVzOlt7cmVxdWlyZWQ6ITAsbWVzc2FnZTooMCx0LmpzeCkoUC5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoiXHU4QkY3XHU4RjkzXHU1MTY1XHU3ODZFXHU4QkE0XHU1QkM2XHU3ODAxXHVGRjAxIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU3ODZFXHU4QkE0XHU1QkM2XHU3ODAxXHVGRjAxIn0pfSx7dmFsaWRhdG9yOkF9XX0pXX0pfSl9O08uZGVmYXVsdD1jfSwyMTI3ODpmdW5jdGlvbihaLE8sZSl7ZS5yKE8pLGUuZChPLHtkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuIG59fSk7dmFyIEY9ZSgxNTAwOSksbD1lLm4oRiksYj1lKDk5Mjg5KSxUPWUubihiKSx4PWUoNTU3NCksaj1lLm4oeCksRT1lKDg3NTQ3KSxwPWUoMjQ5NCksaD1lKDI0NDU0KSxQPWUoODg2NDEpLGk9ZSg0MDcxNyksRD1lKDU1MzU1KSxtPWUoMjQ4NyksdD1lKDcxMjMwKSxjPWUoMTU3NDYpLF89ZSg0MzkzKSxhPWUoOTYwNzQpLGQ9ZSg2NzI5NCksbz17YXZhdGFySG9sZGVyOiJhdmF0YXJIb2xkZXJfX19VNGVMUyIsdGVhbVRpdGxlOiJ0ZWFtVGl0bGVfX19JZUs0MyIsdGVhbToidGVhbV9fX2JQcFlIIn0sdT1lKDIwOTQ5KSxzPWUoMzQyOTYpLEE9ZSgzNzY5NCkseT1lKDc2NzcyKSxVPWUoNjYwMzQpLEI9ZSg4MzgzMikscj1lKDg1ODkzKSxMPVt7a2V5OiJiYXNlIix0YWI6KDAsci5qc3gpKCJzcGFuIix7Y2hpbGRyZW46Ilx1NTdGQVx1NjcyQ1x1OEQ0NFx1NjU5OSJ9KX0se2tleToicGFzc3dvcmQiLHRhYjooMCxyLmpzeCkoInNwYW4iLHtjaGlsZHJlbjoiXHU5MUNEXHU3RjZFXHU1QkM2XHU3ODAxIn0pfV0sUj1mdW5jdGlvbigpe3ZhciBDPSgwLGQudXNlU3RhdGUpKCJiYXNlIiksVz1qKCkoQywyKSxnPVdbMF0sUT1XWzFdLEo9KDAsZC51c2VTdGF0ZSkoITEpLCQ9aigpKEosMiksWT0kWzBdLHo9JFsxXSxWPSgwLHkudXNlUmVxdWVzdCkoVCgpKGwoKSgpLm1hcmsoZnVuY3Rpb24gdigpe3JldHVybiBsKCkoKS53cmFwKGZ1bmN0aW9uKEkpe2Zvcig7Oylzd2l0Y2goSS5wcmV2PUkubmV4dCl7Y2FzZSAwOnJldHVybiBJLm5leHQ9MiwoMCxVLmJHKSgpO2Nhc2UgMjpyZXR1cm4gSS50MD1JLnNlbnQsSS5hYnJ1cHQoInJldHVybiIse2RhdGE6SS50MH0pO2Nhc2UgNDpjYXNlImVuZCI6cmV0dXJuIEkuc3RvcCgpfX0sdil9KSkpLEg9Vi5kYXRhLE49Vi5sb2FkaW5nO2lmKE4pcmV0dXJuKDAsci5qc3gpKCJkaXYiLHtjaGlsZHJlbjoibG9hZGluZy4uLiJ9KTt2YXIgSz1IPT1udWxsP3ZvaWQgMDpILnVzZXIsdz1mdW5jdGlvbihNKXt2YXIgST1NLnVzZXJOYW1lLFg9TS5waG9uZW51bWJlcixHPU0uZW1haWwscT1NLnNleCxrPU0uZGVwdDtyZXR1cm4oMCxyLmpzeHMpKG0uWix7Y2hpbGRyZW46WygwLHIuanN4cykobS5aLkl0ZW0se2NoaWxkcmVuOlsoMCxyLmpzeHMpKCJkaXYiLHtjaGlsZHJlbjpbKDAsci5qc3gpKEUuWix7c3R5bGU6e21hcmdpblJpZ2h0Ojh9fSksIlx1NzUyOFx1NjIzN1x1NTQwRCJdfSksKDAsci5qc3gpKCJkaXYiLHtjaGlsZHJlbjpJfSldfSksKDAsci5qc3hzKShtLlouSXRlbSx7Y2hpbGRyZW46WygwLHIuanN4cykoImRpdiIse2NoaWxkcmVuOlsoMCxyLmpzeCkocC5aLHtzdHlsZTp7bWFyZ2luUmlnaHQ6OH19KSwiXHU2MDI3XHU1MjJCIl19KSwoMCxyLmpzeCkoImRpdiIse2NoaWxkcmVuOnE9PT0iMSI/Ilx1NTk3MyI6Ilx1NzUzNyJ9KV19KSwoMCxyLmpzeHMpKG0uWi5JdGVtLHtjaGlsZHJlbjpbKDAsci5qc3hzKSgiZGl2Iix7Y2hpbGRyZW46WygwLHIuanN4KShoLlose3N0eWxlOnttYXJnaW5SaWdodDo4fX0pLCJcdTc1MzVcdThCREQiXX0pLCgwLHIuanN4KSgiZGl2Iix7Y2hpbGRyZW46WH0pXX0pLCgwLHIuanN4cykobS5aLkl0ZW0se2NoaWxkcmVuOlsoMCxyLmpzeHMpKCJkaXYiLHtjaGlsZHJlbjpbKDAsci5qc3gpKFAuWix7c3R5bGU6e21hcmdpblJpZ2h0Ojh9fSksIlx1OTBBRVx1N0JCMSJdfSksKDAsci5qc3gpKCJkaXYiLHtjaGlsZHJlbjpHfSldfSksKDAsci5qc3hzKShtLlouSXRlbSx7Y2hpbGRyZW46WygwLHIuanN4cykoImRpdiIse2NoaWxkcmVuOlsoMCxyLmpzeCkoaS5aLHtzdHlsZTp7bWFyZ2luUmlnaHQ6OH19KSwiXHU5MEU4XHU5NUU4Il19KSwoMCxyLmpzeCkoImRpdiIse2NoaWxkcmVuOms9PW51bGw/dm9pZCAwOmsuZGVwdE5hbWV9KV19KV19KX0sUz1mdW5jdGlvbihNKXtyZXR1cm4gTT09PSJiYXNlIj8oMCxyLmpzeCkodS5kZWZhdWx0LHt2YWx1ZXM6S30pOk09PT0icGFzc3dvcmQiPygwLHIuanN4KShzLmRlZmF1bHQse30pOm51bGx9O3JldHVybiBLPygwLHIuanN4cykoImRpdiIse2NoaWxkcmVuOlsoMCxyLmpzeHMpKHQuWix7Z3V0dGVyOlsxNiwyNF0sY2hpbGRyZW46WygwLHIuanN4KShjLlose2xnOjgsbWQ6MjQsY2hpbGRyZW46KDAsci5qc3gpKF8uWix7dGl0bGU6Ilx1NEUyQVx1NEVCQVx1NEZFMVx1NjA2RiIsYm9yZGVyZWQ6ITEsbG9hZGluZzpOLGNoaWxkcmVuOiFOJiYoMCxyLmpzeHMpKCJkaXYiLHtzdHlsZTp7dGV4dEFsaWduOiJjZW50ZXIifSxjaGlsZHJlbjpbKDAsci5qc3gpKCJkaXYiLHtjbGFzc05hbWU6by5hdmF0YXJIb2xkZXIsb25DbGljazpmdW5jdGlvbigpe3ooITApfSxjaGlsZHJlbjooMCxyLmpzeCkoImltZyIse2FsdDoiIixzcmM6Sy5hdmF0YXJ9KX0pLHcoSyksKDAsci5qc3gpKGEuWix7ZGFzaGVkOiEwfSksKDAsci5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOm8udGVhbSxjaGlsZHJlbjpbKDAsci5qc3gpKCJkaXYiLHtjbGFzc05hbWU6by50ZWFtVGl0bGUsY2hpbGRyZW46Ilx1ODlEMlx1ODI3MiJ9KSwoMCxyLmpzeCkodC5aLHtndXR0ZXI6MzYsY2hpbGRyZW46Sy5yb2xlcyYmSy5yb2xlcy5tYXAoZnVuY3Rpb24odil7cmV0dXJuKDAsci5qc3hzKShjLlose2xnOjI0LHhsOjEyLGNoaWxkcmVuOlsoMCxyLmpzeCkoRC5aLHtzdHlsZTp7bWFyZ2luUmlnaHQ6OH19KSx2LnJvbGVOYW1lXX0sdi5yb2xlSWQpfSl9KV19KV19KX0pfSksKDAsci5qc3gpKGMuWix7bGc6MTYsbWQ6MjQsY2hpbGRyZW46KDAsci5qc3gpKF8uWix7Ym9yZGVyZWQ6ITEsdGFiTGlzdDpMLGFjdGl2ZVRhYktleTpnLG9uVGFiQ2hhbmdlOmZ1bmN0aW9uKE0pe1EoTSl9LGNoaWxkcmVuOlMoZyl9KX0pXX0pLCgwLHIuanN4KShBLmRlZmF1bHQse29uRmluaXNoZWQ6ZnVuY3Rpb24oKXt6KCExKX0sb3BlbjpZLGRhdGE6Sy5hdmF0YXJ9KV19KTooMCxyLmpzeCkoQi5TLHt9KX0sbj1SfSw5MDI1OmZ1bmN0aW9uKFosTyxlKXtlLmQoTyx7TGo6ZnVuY3Rpb24oKXtyZXR1cm4gQX0sTnE6ZnVuY3Rpb24oKXtyZXR1cm4gY30sUFI6ZnVuY3Rpb24oKXtyZXR1cm4gRH0sX0w6ZnVuY3Rpb24oKXtyZXR1cm4gb30sYXo6ZnVuY3Rpb24oKXtyZXR1cm4gdX0sY246ZnVuY3Rpb24oKXtyZXR1cm4gbX0sZ2c6ZnVuY3Rpb24oKXtyZXR1cm4gQn0sa1g6ZnVuY3Rpb24oKXtyZXR1cm4gYX0sbEU6ZnVuY3Rpb24oKXtyZXR1cm4gUH0sdFc6ZnVuY3Rpb24oKXtyZXR1cm4gTH0sd3A6ZnVuY3Rpb24oKXtyZXR1cm4gVX0seDc6ZnVuY3Rpb24oKXtyZXR1cm4gUn0seEI6ZnVuY3Rpb24oKXtyZXR1cm4geX19KTt2YXIgRj1lKDE1MDA5KSxsPWUubihGKSxiPWUoOTc4NTcpLFQ9ZS5uKGIpLHg9ZSg5OTI4OSksaj1lLm4oeCksRT1lKDMxOTgxKSxwPWUoNzY3NzIpLGg9ZSgzMDk2NCk7ZnVuY3Rpb24gUChuLGYpe3JldHVybiBpLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBpKCl7cmV0dXJuIGk9aigpKGwoKSgpLm1hcmsoZnVuY3Rpb24gbihmLEMpe3JldHVybiBsKCkoKS53cmFwKGZ1bmN0aW9uKGcpe2Zvcig7Oylzd2l0Y2goZy5wcmV2PWcubmV4dCl7Y2FzZSAwOnJldHVybiBnLmFicnVwdCgicmV0dXJuIiwoMCxwLnJlcXVlc3QpKCIvYXBpL3N5c3RlbS91c2VyL2xpc3QiLFQoKSh7bWV0aG9kOiJHRVQiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgifSxwYXJhbXM6Zn0sQ3x8e30pKSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gZy5zdG9wKCl9fSxuKX0pKSxpLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBEKG4sZil7cmV0dXJuKDAscC5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vdXNlci8iLmNvbmNhdChuKSxUKCkoe21ldGhvZDoiR0VUIn0sZnx8e30pKX1mdW5jdGlvbiBtKG4sZil7cmV0dXJuIHQuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHQoKXtyZXR1cm4gdD1qKCkobCgpKCkubWFyayhmdW5jdGlvbiBuKGYsQyl7cmV0dXJuIGwoKSgpLndyYXAoZnVuY3Rpb24oZyl7Zm9yKDs7KXN3aXRjaChnLnByZXY9Zy5uZXh0KXtjYXNlIDA6cmV0dXJuIGcuYWJydXB0KCJyZXR1cm4iLCgwLHAucmVxdWVzdCkoIi9hcGkvc3lzdGVtL3VzZXIiLFQoKSh7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04In0sZGF0YTpmfSxDfHx7fSkpKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBnLnN0b3AoKX19LG4pfSkpLHQuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGMobixmKXtyZXR1cm4gXy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gXygpe3JldHVybiBfPWooKShsKCkoKS5tYXJrKGZ1bmN0aW9uIG4oZixDKXtyZXR1cm4gbCgpKCkud3JhcChmdW5jdGlvbihnKXtmb3IoOzspc3dpdGNoKGcucHJldj1nLm5leHQpe2Nhc2UgMDpyZXR1cm4gZy5hYnJ1cHQoInJldHVybiIsKDAscC5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vdXNlciIsVCgpKHttZXRob2Q6IlBVVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCJ9LGRhdGE6Zn0sQ3x8e30pKSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gZy5zdG9wKCl9fSxuKX0pKSxfLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBhKG4sZil7cmV0dXJuIGQuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGQoKXtyZXR1cm4gZD1qKCkobCgpKCkubWFyayhmdW5jdGlvbiBuKGYsQyl7cmV0dXJuIGwoKSgpLndyYXAoZnVuY3Rpb24oZyl7Zm9yKDs7KXN3aXRjaChnLnByZXY9Zy5uZXh0KXtjYXNlIDA6cmV0dXJuIGcuYWJydXB0KCJyZXR1cm4iLCgwLHAucmVxdWVzdCkoIi9hcGkvc3lzdGVtL3VzZXIvIi5jb25jYXQoZiksVCgpKHttZXRob2Q6IkRFTEVURSJ9LEN8fHt9KSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGcuc3RvcCgpfX0sbil9KSksZC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gbyhuLGYpe3JldHVybigwLGguc3UpKCIvYXBpL3N5c3RlbS91c2VyL2V4cG9ydCIse3BhcmFtczpufSwidXNlcl8iLmNvbmNhdChuZXcgRGF0ZSgpLmdldFRpbWUoKSwiLnhsc3giKSl9ZnVuY3Rpb24gdShuLGYpe3ZhciBDPXt1c2VySWQ6bixzdGF0dXM6Zn07cmV0dXJuKDAscC5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vdXNlci9jaGFuZ2VTdGF0dXMiLHttZXRob2Q6InB1dCIsZGF0YTpDfSl9ZnVuY3Rpb24gcygpe3JldHVybiByZXF1ZXN0KCIvYXBpL3N5c3RlbS91c2VyL3Byb2ZpbGUiLHttZXRob2Q6ImdldCJ9KX1mdW5jdGlvbiBBKG4pe3JldHVybigwLHAucmVxdWVzdCkoIi9hcGkvc3lzdGVtL3VzZXIvcHJvZmlsZSIse21ldGhvZDoicHV0IixkYXRhOm59KX1mdW5jdGlvbiB5KG4sZil7dmFyIEM9e3VzZXJJZDpuLHBhc3N3b3JkOmZ9O3JldHVybigwLHAucmVxdWVzdCkoIi9hcGkvc3lzdGVtL3VzZXIvcmVzZXRQd2QiLHttZXRob2Q6InB1dCIsZGF0YTpDfSl9ZnVuY3Rpb24gVShuLGYpe3ZhciBDPXtvbGRQYXNzd29yZDpuLG5ld1Bhc3N3b3JkOmZ9O3JldHVybigwLHAucmVxdWVzdCkoIi9hcGkvc3lzdGVtL3VzZXIvcHJvZmlsZS91cGRhdGVQd2QiLHttZXRob2Q6InB1dCIscGFyYW1zOkN9KX1mdW5jdGlvbiBCKG4pe3JldHVybigwLHAucmVxdWVzdCkoIi9hcGkvc3lzdGVtL3VzZXIvcHJvZmlsZS9hdmF0YXIiLHttZXRob2Q6InBvc3QiLGRhdGE6bn0pfWZ1bmN0aW9uIHIobil7cmV0dXJuIHJlcXVlc3QoIi9zeXN0ZW0vdXNlci9hdXRoUm9sZS8iK24se21ldGhvZDoiZ2V0In0pfWZ1bmN0aW9uIEwobil7cmV0dXJuKDAscC5yZXF1ZXN0KSgiL3N5c3RlbS91c2VyL2F1dGhSb2xlIix7bWV0aG9kOiJwdXQiLHBhcmFtczpufSl9ZnVuY3Rpb24gUihuKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oZil7KDAscC5yZXF1ZXN0KSgiL2FwaS9zeXN0ZW0vdXNlci9kZXB0VHJlZSIse21ldGhvZDoiZ2V0IixwYXJhbXM6bn0pLnRoZW4oZnVuY3Rpb24oQyl7aWYoQyYmQy5jb2RlPT09MjAwKXt2YXIgVz0oMCxFLmx0KShDLmRhdGEpO2YoVyl9ZWxzZSBmKFtdKX0pfSl9fSwzMDk2NDpmdW5jdGlvbihaLE8sZSl7ZS5kKE8se3A2OmZ1bmN0aW9uKCl7cmV0dXJuIFB9LHN1OmZ1bmN0aW9uKCl7cmV0dXJuIGl9fSk7dmFyIEY9ZSgxNTAwOSksbD1lLm4oRiksYj1lKDk3ODU3KSxUPWUubihiKSx4PWUoOTkyODkpLGo9ZS5uKHgpLEU9ZSg3Njc3MikscD17eGxzeDoiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQiLHppcDoiYXBwbGljYXRpb24vemlwIn07ZnVuY3Rpb24gaCh0LGMpe3ZhciBfPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKSxhPW5ldyBCbG9iKFt0LmRhdGFdLHt0eXBlOmN9KSxkPW5ldyBSZWdFeHAoImZpbGVuYW1lPShbXjtdK1xcLlteXFwuO10rKTsqIiksbz1kZWNvZGVVUkkodC5oZWFkZXJzWyJjb250ZW50LWRpc3Bvc2l0aW9uIl0pLHU9ZC5leGVjKG8pLHM9dT91WzFdOiJmaWxlIjtzPXMucmVwbGFjZSgvIi9nLCIiKSxfLnN0eWxlLmRpc3BsYXk9Im5vbmUiLF8uaHJlZj1VUkwuY3JlYXRlT2JqZWN0VVJMKGEpLF8uc2V0QXR0cmlidXRlKCJkb3dubG9hZCIscyksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChfKSxfLmNsaWNrKCksVVJMLnJldm9rZU9iamVjdFVSTChfLmhyZWYpLGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoXyl9ZnVuY3Rpb24gUCh0KXsoMCxFLnJlcXVlc3QpKHQse21ldGhvZDoiR0VUIixyZXNwb25zZVR5cGU6ImJsb2IiLGdldFJlc3BvbnNlOiEwfSkudGhlbihmdW5jdGlvbihjKXtoKGMscC56aXApfSl9ZnVuY3Rpb24gaSh0LGMsXyl7cmV0dXJuIEQuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEQoKXtyZXR1cm4gRD1qKCkobCgpKCkubWFyayhmdW5jdGlvbiB0KGMsXyxhKXtyZXR1cm4gbCgpKCkud3JhcChmdW5jdGlvbihvKXtmb3IoOzspc3dpdGNoKG8ucHJldj1vLm5leHQpe2Nhc2UgMDpyZXR1cm4gby5hYnJ1cHQoInJldHVybiIsKDAsRS5yZXF1ZXN0KShjLFQoKShUKCkoe30sXykse30se21ldGhvZDoiUE9TVCIscmVzcG9uc2VUeXBlOiJibG9iIn0pKS50aGVuKGZ1bmN0aW9uKHUpe3ZhciBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKSxBPXU7cy5zdHlsZS5kaXNwbGF5PSJub25lIixzLmhyZWY9VVJMLmNyZWF0ZU9iamVjdFVSTChBKSxzLnNldEF0dHJpYnV0ZSgiZG93bmxvYWQiLGEpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocykscy5jbGljaygpLFVSTC5yZXZva2VPYmplY3RVUkwocy5ocmVmKSxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHMpfSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIG8uc3RvcCgpfX0sdCl9KSksRC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gbSh0KXt3aW5kb3cubG9jYXRpb24uaHJlZj0iL2FwaS9jb21tb24vZG93bmxvYWQ/ZmlsZU5hbWU9Ii5jb25jYXQoZW5jb2RlVVJJKHQpLCImZGVsZXRlPSIsITApfX0sMzE5ODE6ZnVuY3Rpb24oWixPLGUpe2UuZChPLHtDMjpmdW5jdGlvbigpe3JldHVybiBsfSxsdDpmdW5jdGlvbigpe3JldHVybiBUfX0pO3ZhciBGPWUoODc3MzUpO2Z1bmN0aW9uIGwoeCxqLEUscCxoLFApe3ZhciBpPXtpZDpqfHwiaWQiLG5hbWU6RXx8Im5hbWUiLHBhcmVudElkOnB8fCJwYXJlbnRJZCIscGFyZW50TmFtZTpofHwicGFyZW50TmFtZSIsY2hpbGRyZW5MaXN0OlB8fCJjaGlsZHJlbiJ9LEQ9W10sbT1bXSx0PVtdO3guZm9yRWFjaChmdW5jdGlvbihfKXt2YXIgYT1fLGQ9YVtpLnBhcmVudElkXTtEW2RdfHwoRFtkXT1bXSksYS5rZXk9YVtpLmlkXSxhLnRpdGxlPWFbaS5uYW1lXSxhLnZhbHVlPWFbaS5pZF0sYVtpLmNoaWxkcmVuTGlzdF09bnVsbCxtW2FbaS5pZF1dPWEsRFtkXS5wdXNoKGEpfSkseC5mb3JFYWNoKGZ1bmN0aW9uKF8pe3ZhciBhPV8sZD1hW2kucGFyZW50SWRdO21bZF18fChhW2kucGFyZW50TmFtZV09IiIsdC5wdXNoKGEpKX0pO2Z1bmN0aW9uIGMoXyl7dmFyIGE9XztEW2FbaS5pZF1dJiYoYVtpLmNoaWxkcmVuTGlzdF18fChhW2kuY2hpbGRyZW5MaXN0XT1bXSksYVtpLmNoaWxkcmVuTGlzdF09RFthW2kuaWRdXSksYVtpLmNoaWxkcmVuTGlzdF0mJmFbaS5jaGlsZHJlbkxpc3RdLmZvckVhY2goZnVuY3Rpb24oZCl7dmFyIG89ZDtvW2kucGFyZW50TmFtZV09YVtpLm5hbWVdLGMobyl9KX1yZXR1cm4gdC5mb3JFYWNoKGZ1bmN0aW9uKF8pe2MoXyl9KSx0fXZhciBiPWZ1bmN0aW9uKCl7cmV0dXJuIHBhcnNlKHdpbmRvdy5sb2NhdGlvbi5ocmVmLnNwbGl0KCI/IilbMV0pfTtmdW5jdGlvbiBUKHgpe3ZhciBqPXgubWFwKGZ1bmN0aW9uKEUpe3ZhciBwPXtpZDpFLmlkLHRpdGxlOkUubGFiZWwsa2V5OiIiLmNvbmNhdChFLmlkKSx2YWx1ZTpFLmlkfTtyZXR1cm4gRS5jaGlsZHJlbiYmKHAuY2hpbGRyZW49VChFLmNoaWxkcmVuKSkscH0pO3JldHVybiBqfX0sNjg5MDY6ZnVuY3Rpb24oWixPLGUpe2UucihPKX19XSk7CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljL3BfX1VzZXJfX0NlbnRlcl9faW5kZXguOTMyY2RhOTMuY2h1bmsuY3NzIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy9wX19Vc2VyX19DZW50ZXJfX2luZGV4LjkzMmNkYTkzLmNodW5rLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YzE4OGMwCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy9wX19Vc2VyX19DZW50ZXJfX2luZGV4LjkzMmNkYTkzLmNodW5rLmNzcwpAQCAtMCwwICsxLDkgQEAKKy5hdmF0YXJIb2xkZXJfX19VNGVMU3ttYXJnaW4tYm90dG9tOjE2cHg7dGV4dC1hbGlnbjpjZW50ZXI7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjEyMHB4fS5hdmF0YXJIb2xkZXJfX19VNGVMUz5pbWd7d2lkdGg6MTIwcHg7aGVpZ2h0OjEyMHB4O21hcmdpbi1ib3R0b206MjBweDtib3JkZXItcmFkaXVzOjUwJX0uYXZhdGFySG9sZGVyX19fVTRlTFM6aG92ZXI6YWZ0ZXJ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7cmlnaHQ6MDtib3R0b206MDtsZWZ0OjA7Y29sb3I6I2VlZTtmb250LXNpemU6MjRweDtmb250LXN0eWxlOm5vcm1hbDtsaW5lLWhlaWdodDoxMTBweDtiYWNrZ3JvdW5kOiMwMDAwMDA4MDtib3JkZXItcmFkaXVzOjUwJTtjdXJzb3I6cG9pbnRlcjtjb250ZW50OiIrIjstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkOy1tb3otb3N4LWZvbnQtc21vb3RoaW5nOmdyYXlzY2FsZX0udGVhbVRpdGxlX19fSWVLNDN7bWFyZ2luLWJvdHRvbToxMnB4O2NvbG9yOiMwMDAwMDBkOTtmb250LXdlaWdodDo1MDB9LnRlYW1fX19iUHBZSCAuYW50LWF2YXRhcnttYXJnaW4tcmlnaHQ6MTJweH0udGVhbV9fX2JQcFlIIGF7ZGlzcGxheTpibG9jazttYXJnaW4tYm90dG9tOjI0cHg7b3ZlcmZsb3c6aGlkZGVuO2NvbG9yOiMwMDAwMDBkOTt3aGl0ZS1zcGFjZTpub3dyYXA7dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3b3JkLWJyZWFrOmJyZWFrLWFsbDt0cmFuc2l0aW9uOmNvbG9yIC4zc30udGVhbV9fX2JQcFlIIGE6aG92ZXJ7Y29sb3I6IzE4OTBmZn0vKiEKKyAqIENyb3BwZXIuanMgdjEuNS4xMworICogaHR0cHM6Ly9mZW5neXVhbmNoZW4uZ2l0aHViLmlvL2Nyb3BwZXJqcworICoKKyAqIENvcHlyaWdodCAyMDE1LXByZXNlbnQgQ2hlbiBGZW5neXVhbgorICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlCisgKgorICogRGF0ZTogMjAyMi0xMS0yMFQwNTozMDo0My40NDRaCisgKi8uY3JvcHBlci1jb250YWluZXJ7ZGlyZWN0aW9uOmx0cjtmb250LXNpemU6MDtsaW5lLWhlaWdodDowO3Bvc2l0aW9uOnJlbGF0aXZlO3RvdWNoLWFjdGlvbjpub25lO3VzZXItc2VsZWN0Om5vbmV9LmNyb3BwZXItY29udGFpbmVyIGltZ3tiYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbjtkaXNwbGF5OmJsb2NrO2hlaWdodDoxMDAlO2ltYWdlLW9yaWVudGF0aW9uOjBkZWc7bWF4LWhlaWdodDpub25lIWltcG9ydGFudDttYXgtd2lkdGg6bm9uZSFpbXBvcnRhbnQ7bWluLWhlaWdodDowIWltcG9ydGFudDttaW4td2lkdGg6MCFpbXBvcnRhbnQ7d2lkdGg6MTAwJX0uY3JvcHBlci13cmFwLWJveCwuY3JvcHBlci1jYW52YXMsLmNyb3BwZXItZHJhZy1ib3gsLmNyb3BwZXItY3JvcC1ib3gsLmNyb3BwZXItbW9kYWx7Ym90dG9tOjA7bGVmdDowO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7dG9wOjB9LmNyb3BwZXItd3JhcC1ib3gsLmNyb3BwZXItY2FudmFze292ZXJmbG93OmhpZGRlbn0uY3JvcHBlci1kcmFnLWJveHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7b3BhY2l0eTowfS5jcm9wcGVyLW1vZGFse2JhY2tncm91bmQtY29sb3I6IzAwMDtvcGFjaXR5Oi41fS5jcm9wcGVyLXZpZXctYm94e2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjEwMCU7b3V0bGluZToxcHggc29saWQgIzM5ZjtvdXRsaW5lLWNvbG9yOiMzMzk5ZmZiZjtvdmVyZmxvdzpoaWRkZW47d2lkdGg6MTAwJX0uY3JvcHBlci1kYXNoZWR7Ym9yZGVyOjAgZGFzaGVkICNlZWU7ZGlzcGxheTpibG9jaztvcGFjaXR5Oi41O3Bvc2l0aW9uOmFic29sdXRlfS5jcm9wcGVyLWRhc2hlZC5kYXNoZWQtaHtib3JkZXItYm90dG9tLXdpZHRoOjFweDtib3JkZXItdG9wLXdpZHRoOjFweDtoZWlnaHQ6Y2FsYygxMDAlIC8gMyk7bGVmdDowO3RvcDpjYWxjKDEwMCUgLyAzKTt3aWR0aDoxMDAlfS5jcm9wcGVyLWRhc2hlZC5kYXNoZWQtdntib3JkZXItbGVmdC13aWR0aDoxcHg7Ym9yZGVyLXJpZ2h0LXdpZHRoOjFweDtoZWlnaHQ6MTAwJTtsZWZ0OmNhbGMoMTAwJSAvIDMpO3RvcDowO3dpZHRoOmNhbGMoMTAwJSAvIDMpfS5jcm9wcGVyLWNlbnRlcntkaXNwbGF5OmJsb2NrO2hlaWdodDowO2xlZnQ6NTAlO29wYWNpdHk6Ljc1O3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7d2lkdGg6MH0uY3JvcHBlci1jZW50ZXI6YmVmb3JlLC5jcm9wcGVyLWNlbnRlcjphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOiNlZWU7Y29udGVudDoiICI7ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZX0uY3JvcHBlci1jZW50ZXI6YmVmb3Jle2hlaWdodDoxcHg7bGVmdDotM3B4O3RvcDowO3dpZHRoOjdweH0uY3JvcHBlci1jZW50ZXI6YWZ0ZXJ7aGVpZ2h0OjdweDtsZWZ0OjA7dG9wOi0zcHg7d2lkdGg6MXB4fS5jcm9wcGVyLWZhY2UsLmNyb3BwZXItbGluZSwuY3JvcHBlci1wb2ludHtkaXNwbGF5OmJsb2NrO2hlaWdodDoxMDAlO29wYWNpdHk6LjE7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTAwJX0uY3JvcHBlci1mYWNle2JhY2tncm91bmQtY29sb3I6I2ZmZjtsZWZ0OjA7dG9wOjB9LmNyb3BwZXItbGluZXtiYWNrZ3JvdW5kLWNvbG9yOiMzOWZ9LmNyb3BwZXItbGluZS5saW5lLWV7Y3Vyc29yOmV3LXJlc2l6ZTtyaWdodDotM3B4O3RvcDowO3dpZHRoOjVweH0uY3JvcHBlci1saW5lLmxpbmUtbntjdXJzb3I6bnMtcmVzaXplO2hlaWdodDo1cHg7bGVmdDowO3RvcDotM3B4fS5jcm9wcGVyLWxpbmUubGluZS13e2N1cnNvcjpldy1yZXNpemU7bGVmdDotM3B4O3RvcDowO3dpZHRoOjVweH0uY3JvcHBlci1saW5lLmxpbmUtc3tib3R0b206LTNweDtjdXJzb3I6bnMtcmVzaXplO2hlaWdodDo1cHg7bGVmdDowfS5jcm9wcGVyLXBvaW50e2JhY2tncm91bmQtY29sb3I6IzM5ZjtoZWlnaHQ6NXB4O29wYWNpdHk6Ljc1O3dpZHRoOjVweH0uY3JvcHBlci1wb2ludC5wb2ludC1le2N1cnNvcjpldy1yZXNpemU7bWFyZ2luLXRvcDotM3B4O3JpZ2h0Oi0zcHg7dG9wOjUwJX0uY3JvcHBlci1wb2ludC5wb2ludC1ue2N1cnNvcjpucy1yZXNpemU7bGVmdDo1MCU7bWFyZ2luLWxlZnQ6LTNweDt0b3A6LTNweH0uY3JvcHBlci1wb2ludC5wb2ludC13e2N1cnNvcjpldy1yZXNpemU7bGVmdDotM3B4O21hcmdpbi10b3A6LTNweDt0b3A6NTAlfS5jcm9wcGVyLXBvaW50LnBvaW50LXN7Ym90dG9tOi0zcHg7Y3Vyc29yOnMtcmVzaXplO2xlZnQ6NTAlO21hcmdpbi1sZWZ0Oi0zcHh9LmNyb3BwZXItcG9pbnQucG9pbnQtbmV7Y3Vyc29yOm5lc3ctcmVzaXplO3JpZ2h0Oi0zcHg7dG9wOi0zcHh9LmNyb3BwZXItcG9pbnQucG9pbnQtbnd7Y3Vyc29yOm53c2UtcmVzaXplO2xlZnQ6LTNweDt0b3A6LTNweH0uY3JvcHBlci1wb2ludC5wb2ludC1zd3tib3R0b206LTNweDtjdXJzb3I6bmVzdy1yZXNpemU7bGVmdDotM3B4fS5jcm9wcGVyLXBvaW50LnBvaW50LXNle2JvdHRvbTotM3B4O2N1cnNvcjpud3NlLXJlc2l6ZTtoZWlnaHQ6MjBweDtvcGFjaXR5OjE7cmlnaHQ6LTNweDt3aWR0aDoyMHB4fUBtZWRpYSAobWluLXdpZHRoOiA3NjhweCl7LmNyb3BwZXItcG9pbnQucG9pbnQtc2V7aGVpZ2h0OjE1cHg7d2lkdGg6MTVweH19QG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KXsuY3JvcHBlci1wb2ludC5wb2ludC1zZXtoZWlnaHQ6MTBweDt3aWR0aDoxMHB4fX1AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KXsuY3JvcHBlci1wb2ludC5wb2ludC1zZXtoZWlnaHQ6NXB4O29wYWNpdHk6Ljc1O3dpZHRoOjVweH19LmNyb3BwZXItcG9pbnQucG9pbnQtc2U6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6IzM5Zjtib3R0b206LTUwJTtjb250ZW50OiIgIjtkaXNwbGF5OmJsb2NrO2hlaWdodDoyMDAlO29wYWNpdHk6MDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDotNTAlO3dpZHRoOjIwMCV9LmNyb3BwZXItaW52aXNpYmxle29wYWNpdHk6MH0uY3JvcHBlci1iZ3tiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJBQUFBQVFBUU1BQUFBbFBXMGlBQUFBQTNOQ1NWUUlDQWpiNFUvZ0FBQUFCbEJNVkVYTXpNei8vLy9UalJWMkFBQUFDWEJJV1hNQUFBcnJBQUFLNndHQ2l3MWFBQUFBSEhSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCR2FYSmxkMjl5YTNNZ1ExTTI2THl5akFBQUFCRkpSRUZVQ0psaitNL0FnQlZoRi8wUEFINi9EL0hrRHhPR0FBQUFBRWxGVGtTdVFtQ0MpfS5jcm9wcGVyLWhpZGV7ZGlzcGxheTpibG9jaztoZWlnaHQ6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDowfS5jcm9wcGVyLWhpZGRlbntkaXNwbGF5Om5vbmUhaW1wb3J0YW50fS5jcm9wcGVyLW1vdmV7Y3Vyc29yOm1vdmV9LmNyb3BwZXItY3JvcHtjdXJzb3I6Y3Jvc3NoYWlyfS5jcm9wcGVyLWRpc2FibGVkIC5jcm9wcGVyLWRyYWctYm94LC5jcm9wcGVyLWRpc2FibGVkIC5jcm9wcGVyLWZhY2UsLmNyb3BwZXItZGlzYWJsZWQgLmNyb3BwZXItbGluZSwuY3JvcHBlci1kaXNhYmxlZCAuY3JvcHBlci1wb2ludHtjdXJzb3I6bm90LWFsbG93ZWR9LmF2YXRhclByZXZpZXdfX19hVkpQRHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGUoNTAlLC01MCUpO3dpZHRoOjIwMHB4O2hlaWdodDoyMDBweDtib3JkZXItcmFkaXVzOjUwJTtib3gtc2hhZG93OjAgMCA0cHggI2NjYztvdmVyZmxvdzpoaWRkZW59CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljL3BfX1VzZXJfX0xvZ2luX19pbmRleC4yZGExZTJjZS5hc3luYy5qcyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvcF9fVXNlcl9fTG9naW5fX2luZGV4LjJkYTFlMmNlLmFzeW5jLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNlMDBmMjgKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljL3BfX1VzZXJfX0xvZ2luX19pbmRleC4yZGExZTJjZS5hc3luYy5qcwpAQCAtMCwwICsxIEBACisidXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W10pLnB1c2goW1s5MzY2XSx7MTY0MzQ6ZnVuY3Rpb24oRWUscSxlKXt2YXIgVD1lKDE0MTMpLE09ZSg3NDE2NSksVj1lKDE1ODYxKSxFPWUoOTEpLFE9ZSg5NzY4NSksdj1lKDk5ODU5KSxuZT1lKDI1Mjc4KSxJPWUoODM2MjIpLEY9ZSg2NzI5NCksbT1lKDkwNzg5KSxYPWUoODU4OTMpLF89WyJydWxlcyIsIm5hbWUiLCJwaG9uZU5hbWUiLCJmaWVsZFByb3BzIiwib25UaW1pbmciLCJjYXB0Y2hhVGV4dFJlbmRlciIsImNhcHRjaGFQcm9wcyJdLHU9Ri5mb3J3YXJkUmVmKGZ1bmN0aW9uKGgsZWUpe3ZhciBXPXYuWi51c2VGb3JtSW5zdGFuY2UoKSxyZT0oMCxGLnVzZVN0YXRlKShoLmNvdW50RG93bnx8NjApLGw9KDAsUS5aKShyZSwyKSxyPWxbMF0sWj1sWzFdLGI9KDAsRi51c2VTdGF0ZSkoITEpLGQ9KDAsUS5aKShiLDIpLE89ZFswXSxEPWRbMV0sUj0oMCxGLnVzZVN0YXRlKSgpLEc9KDAsUS5aKShSLDIpLEs9R1swXSxzPUdbMV0sWmU9aC5ydWxlcyxjZT1oLm5hbWUsc2U9aC5waG9uZU5hbWUsej1oLmZpZWxkUHJvcHMsb2U9aC5vblRpbWluZyx0PWguY2FwdGNoYVRleHRSZW5kZXIsQ2U9dD09PXZvaWQgMD9mdW5jdGlvbihqLEwpe3JldHVybiBqPyIiLmNvbmNhdChMLCIgXHU3OUQyXHU1NDBFXHU5MUNEXHU2NUIwXHU4M0I3XHU1M0Q2Iik6Ilx1ODNCN1x1NTNENlx1OUE4Q1x1OEJDMVx1NzgwMSJ9OnQsTWU9aC5jYXB0Y2hhUHJvcHMsdGU9KDAsRS5aKShoLF8pLGdlPWZ1bmN0aW9uKCl7dmFyIGo9KDAsVi5aKSgoMCxNLlopKCkubWFyayhmdW5jdGlvbiBMKCQpe3JldHVybigwLE0uWikoKS53cmFwKGZ1bmN0aW9uKEIpe2Zvcig7Oylzd2l0Y2goQi5wcmV2PUIubmV4dCl7Y2FzZSAwOnJldHVybiBCLnByZXY9MCxzKCEwKSxCLm5leHQ9NCx0ZS5vbkdldENhcHRjaGEoJCk7Y2FzZSA0OnMoITEpLEQoITApLEIubmV4dD0xMzticmVhaztjYXNlIDg6Qi5wcmV2PTgsQi50MD1CLmNhdGNoKDApLEQoITEpLHMoITEpLGNvbnNvbGUubG9nKEIudDApO2Nhc2UgMTM6Y2FzZSJlbmQiOnJldHVybiBCLnN0b3AoKX19LEwsbnVsbCxbWzAsOF1dKX0pKTtyZXR1cm4gZnVuY3Rpb24oJCl7cmV0dXJuIGouYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKTtyZXR1cm4oMCxGLnVzZUltcGVyYXRpdmVIYW5kbGUpKGVlLGZ1bmN0aW9uKCl7cmV0dXJue3N0YXJ0VGltaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIEQoITApfSxlbmRUaW1pbmc6ZnVuY3Rpb24oKXtyZXR1cm4gRCghMSl9fX0pLCgwLEYudXNlRWZmZWN0KShmdW5jdGlvbigpe3ZhciBqPTAsTD1oLmNvdW50RG93bjtyZXR1cm4gTyYmKGo9d2luZG93LnNldEludGVydmFsKGZ1bmN0aW9uKCl7WihmdW5jdGlvbigkKXtyZXR1cm4gJDw9MT8oRCghMSksY2xlYXJJbnRlcnZhbChqKSxMfHw2MCk6JC0xfSl9LDFlMykpLGZ1bmN0aW9uKCl7cmV0dXJuIGNsZWFySW50ZXJ2YWwoail9fSxbT10pLCgwLEYudXNlRWZmZWN0KShmdW5jdGlvbigpe29lJiZvZShyKX0sW3Isb2VdKSwoMCxYLmpzeHMpKCJkaXYiLHtzdHlsZTooMCxULlopKCgwLFQuWikoe30sej09bnVsbD92b2lkIDA6ei5zdHlsZSkse30se2Rpc3BsYXk6ImZsZXgiLGFsaWduSXRlbXM6ImNlbnRlciJ9KSxyZWY6ZWUsY2hpbGRyZW46WygwLFguanN4KShuZS5aLCgwLFQuWikoKDAsVC5aKSh7fSx6KSx7fSx7c3R5bGU6KDAsVC5aKSh7ZmxleDoxLHRyYW5zaXRpb246IndpZHRoIC4zcyIsbWFyZ2luUmlnaHQ6OH0sej09bnVsbD92b2lkIDA6ei5zdHlsZSl9KSksKDAsWC5qc3gpKEkuWlAsKDAsVC5aKSgoMCxULlopKHtzdHlsZTp7ZGlzcGxheToiYmxvY2sifSxkaXNhYmxlZDpPLGxvYWRpbmc6S30sTWUpLHt9LHtvbkNsaWNrOigwLFYuWikoKDAsTS5aKSgpLm1hcmsoZnVuY3Rpb24gaigpe3ZhciBMO3JldHVybigwLE0uWikoKS53cmFwKGZ1bmN0aW9uKGYpe2Zvcig7Oylzd2l0Y2goZi5wcmV2PWYubmV4dCl7Y2FzZSAwOmlmKGYucHJldj0wLCFzZSl7Zi5uZXh0PTk7YnJlYWt9cmV0dXJuIGYubmV4dD00LFcudmFsaWRhdGVGaWVsZHMoW3NlXS5mbGF0KDEpKTtjYXNlIDQ6cmV0dXJuIEw9Vy5nZXRGaWVsZFZhbHVlKFtzZV0uZmxhdCgxKSksZi5uZXh0PTcsZ2UoTCk7Y2FzZSA3OmYubmV4dD0xMTticmVhaztjYXNlIDk6cmV0dXJuIGYubmV4dD0xMSxnZSgiIik7Y2FzZSAxMTpmLm5leHQ9MTY7YnJlYWs7Y2FzZSAxMzpmLnByZXY9MTMsZi50MD1mLmNhdGNoKDApLGNvbnNvbGUubG9nKGYudDApO2Nhc2UgMTY6Y2FzZSJlbmQiOnJldHVybiBmLnN0b3AoKX19LGosbnVsbCxbWzAsMTNdXSl9KSksY2hpbGRyZW46Q2UoTyxyKX0pKV19KX0pLGRlPSgwLG0uRykodSk7cS5aPWRlfSw1OTY2OmZ1bmN0aW9uKEVlLHEsZSl7dmFyIFQ9ZSg5NzY4NSksTT1lKDE0MTMpLFY9ZSg5MSksRT1lKDIxNzcwKSxRPWUoOTk4NTkpLHY9ZSg1NTI0MSksbmU9ZSg5ODQyMyksST1lKDY3Mjk0KSxGPWUoOTIxNzkpLG09ZSg4NTg5MyksWD1bImZpZWxkUHJvcHMiLCJwcm9GaWVsZFByb3BzIl0sXz1bImZpZWxkUHJvcHMiLCJwcm9GaWVsZFByb3BzIl0sdT0idGV4dCIsZGU9ZnVuY3Rpb24obCl7dmFyIHI9bC5maWVsZFByb3BzLFo9bC5wcm9GaWVsZFByb3BzLGI9KDAsVi5aKShsLFgpO3JldHVybigwLG0uanN4KShGLlosKDAsTS5aKSh7dmFsdWVUeXBlOnUsZmllbGRQcm9wczpyLGZpbGVkQ29uZmlnOnt2YWx1ZVR5cGU6dX0scHJvRmllbGRQcm9wczpafSxiKSl9LGg9ZnVuY3Rpb24obCl7dmFyIHI9KDAsRS5aKShsLm9wZW58fCExLHt2YWx1ZTpsLm9wZW4sb25DaGFuZ2U6bC5vbk9wZW5DaGFuZ2V9KSxaPSgwLFQuWikociwyKSxiPVpbMF0sZD1aWzFdO3JldHVybigwLG0uanN4KShRLlouSXRlbSx7c2hvdWxkVXBkYXRlOiEwLG5vU3R5bGU6ITAsY2hpbGRyZW46ZnVuY3Rpb24oRCl7dmFyIFIsRz1ELmdldEZpZWxkVmFsdWUobC5uYW1lfHxbXSk7cmV0dXJuKDAsbS5qc3gpKHYuWiwoMCxNLlopKCgwLE0uWikoe2dldFBvcHVwQ29udGFpbmVyOmZ1bmN0aW9uKHMpe3JldHVybiBzJiZzLnBhcmVudE5vZGU/cy5wYXJlbnROb2RlOnN9LG9uT3BlbkNoYW5nZTpmdW5jdGlvbihzKXtyZXR1cm4gZChzKX0sY29udGVudDooMCxtLmpzeHMpKCJkaXYiLHtzdHlsZTp7cGFkZGluZzoiNHB4IDAifSxjaGlsZHJlbjpbKFI9bC5zdGF0dXNSZW5kZXIpPT09bnVsbHx8Uj09PXZvaWQgMD92b2lkIDA6Ui5jYWxsKGwsRyksbC5zdHJlbmd0aFRleHQ/KDAsbS5qc3gpKCJkaXYiLHtzdHlsZTp7bWFyZ2luVG9wOjEwfSxjaGlsZHJlbjooMCxtLmpzeCkoInNwYW4iLHtjaGlsZHJlbjpsLnN0cmVuZ3RoVGV4dH0pfSk6bnVsbF19KSxvdmVybGF5U3R5bGU6e3dpZHRoOjI0MH0scGxhY2VtZW50OiJyaWdodFRvcCJ9LGwucG9wb3ZlclByb3BzKSx7fSx7b3BlbjpiLGNoaWxkcmVuOmwuY2hpbGRyZW59KSl9fSl9LGVlPWZ1bmN0aW9uKGwpe3ZhciByPWwuZmllbGRQcm9wcyxaPWwucHJvRmllbGRQcm9wcyxiPSgwLFYuWikobCxfKSxkPSgwLEkudXNlU3RhdGUpKCExKSxPPSgwLFQuWikoZCwyKSxEPU9bMF0sUj1PWzFdO3JldHVybiByIT1udWxsJiZyLnN0YXR1c1JlbmRlciYmYi5uYW1lPygwLG0uanN4KShoLHtuYW1lOmIubmFtZSxzdGF0dXNSZW5kZXI6cj09bnVsbD92b2lkIDA6ci5zdGF0dXNSZW5kZXIscG9wb3ZlclByb3BzOnI9PW51bGw/dm9pZCAwOnIucG9wb3ZlclByb3BzLHN0cmVuZ3RoVGV4dDpyPT1udWxsP3ZvaWQgMDpyLnN0cmVuZ3RoVGV4dCxvcGVuOkQsb25PcGVuQ2hhbmdlOlIsY2hpbGRyZW46KDAsbS5qc3gpKCJkaXYiLHtjaGlsZHJlbjooMCxtLmpzeCkoRi5aLCgwLE0uWikoe3ZhbHVlVHlwZToicGFzc3dvcmQiLGZpZWxkUHJvcHM6KDAsTS5aKSgoMCxNLlopKHt9LCgwLG5lLlopKHIsWyJzdGF0dXNSZW5kZXIiLCJwb3BvdmVyUHJvcHMiLCJzdHJlbmd0aFRleHQiXSkpLHt9LHtvbkJsdXI6ZnVuY3Rpb24oSyl7dmFyIHM7cj09bnVsbHx8KHM9ci5vbkJsdXIpPT09bnVsbHx8cz09PXZvaWQgMHx8cy5jYWxsKHIsSyksUighMSl9LG9uQ2xpY2s6ZnVuY3Rpb24oSyl7dmFyIHM7cj09bnVsbHx8KHM9ci5vbkNsaWNrKT09PW51bGx8fHM9PT12b2lkIDB8fHMuY2FsbChyLEspLFIoITApfX0pLHByb0ZpZWxkUHJvcHM6WixmaWxlZENvbmZpZzp7dmFsdWVUeXBlOnV9fSxiKSl9KX0pOigwLG0uanN4KShGLlosKDAsTS5aKSh7dmFsdWVUeXBlOiJwYXNzd29yZCIsZmllbGRQcm9wczpyLHByb0ZpZWxkUHJvcHM6WixmaWxlZENvbmZpZzp7dmFsdWVUeXBlOnV9fSxiKSl9LFc9ZGU7Vy5QYXNzd29yZD1lZSxXLmRpc3BsYXlOYW1lPSJQcm9Gb3JtQ29tcG9uZW50IixxLlo9V30sMjQzODU6ZnVuY3Rpb24oRWUscSxlKXtlLnIocSksZS5kKHEse2RlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4gWWV9fSk7dmFyIFQ9ZSgxOTYzMiksTT1lLm4oVCksVj1lKDk3ODU3KSxFPWUubihWKSxRPWUoMTUwMDkpLHY9ZS5uKFEpLG5lPWUoOTkyODkpLEk9ZS5uKG5lKSxGPWUoNTU3NCksbT1lLm4oRiksWD1lKDk5NzAyKSxfPWUoMjU5OTUpLHU9ZSg3Njc3Mik7ZnVuY3Rpb24gZGUoYSxuKXtyZXR1cm4gaC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gaCgpe3JldHVybiBoPV9hc3luY1RvR2VuZXJhdG9yKF9yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIGEobixvKXtyZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24oeCl7Zm9yKDs7KXN3aXRjaCh4LnByZXY9eC5uZXh0KXtjYXNlIDA6cmV0dXJuIHguYWJydXB0KCJyZXR1cm4iLHJlcXVlc3QoIi9hcGkvbG9naW4vYWNjb3VudCIsX29iamVjdFNwcmVhZCh7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGRhdGE6bn0sb3x8e30pKSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4geC5zdG9wKCl9fSxhKX0pKSxoLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBlZShhLG4pe3JldHVybiBXLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBXKCl7cmV0dXJuIFc9SSgpKHYoKSgpLm1hcmsoZnVuY3Rpb24gYShuLG8pe3JldHVybiB2KCkoKS53cmFwKGZ1bmN0aW9uKHgpe2Zvcig7Oylzd2l0Y2goeC5wcmV2PXgubmV4dCl7Y2FzZSAwOnJldHVybiB4LmFicnVwdCgicmV0dXJuIiwoMCx1LnJlcXVlc3QpKCIvYXBpL2xvZ2luL2NhcHRjaGEiLEUoKSh7bWV0aG9kOiJQT1NUIixwYXJhbXM6RSgpKHt9LG4pfSxvfHx7fSkpKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiB4LnN0b3AoKX19LGEpfSkpLFcuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHJlKGEpe3JldHVybiBsLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBsKCl7cmV0dXJuIGw9X2FzeW5jVG9HZW5lcmF0b3IoX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gYShuKXtyZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24oZyl7Zm9yKDs7KXN3aXRjaChnLnByZXY9Zy5uZXh0KXtjYXNlIDA6cmV0dXJuIGcuYWJydXB0KCJyZXR1cm4iLHJlcXVlc3QoIi9hcGkvbG9naW4vb3V0TG9naW4iLF9vYmplY3RTcHJlYWQoe21ldGhvZDoiUE9TVCJ9LG58fHt9KSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGcuc3RvcCgpfX0sYSl9KSksbC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9dmFyIHI9ZSg4NzU0NyksWj1lKDk0MTQ5KSxiPWUoMjQ0NTQpLGQ9ZSgxNDEzKSxPPWUoOTEpLEQ9ZSgxMDkxNSksUj1lKDIxNTMyKSxHPWUoOTM5NjcpLEs9ZS5uKEcpLHM9ZSg2NzI5NCksWmU9ZSg5NzI2OSksY2U9ZSg0OTQyKSxzZT1lKDY0ODQ3KSx6PWZ1bmN0aW9uKG4pe3JldHVybigwLGNlLlopKCgwLGNlLlopKHt9LG4uY29tcG9uZW50Q2xzLHsiJi1jb250YWluZXIiOntkaXNwbGF5OiJmbGV4IixmbGV4OiIxIixmbGV4RGlyZWN0aW9uOiJjb2x1bW4iLGhlaWdodDoiMTAwJSIscGFkZGluZ0lubGluZTozMixwYWRkaW5nQmxvY2s6MjQsb3ZlcmZsb3c6ImF1dG8iLGJhY2tncm91bmQ6ImluaGVyaXQifSwiJi10b3AiOnt0ZXh0QWxpZ246ImNlbnRlciJ9LCImLWhlYWRlciI6e2Rpc3BsYXk6ImZsZXgiLGFsaWduSXRlbXM6ImNlbnRlciIsanVzdGlmeUNvbnRlbnQ6ImNlbnRlciIsaGVpZ2h0OiI0NHB4IixsaW5lSGVpZ2h0OiI0NHB4IixhOnt0ZXh0RGVjb3JhdGlvbjoibm9uZSJ9fSwiJi10aXRsZSI6e3Bvc2l0aW9uOiJyZWxhdGl2ZSIsaW5zZXRCbG9ja1N0YXJ0OiIycHgiLGNvbG9yOiJAaGVhZGluZy1jb2xvciIsZm9udFdlaWdodDoiNjAwIixmb250U2l6ZToiMzNweCJ9LCImLWxvZ28iOnt3aWR0aDoiNDRweCIsaGVpZ2h0OiI0NHB4IixtYXJnaW5JbmxpbmVFbmQ6IjE2cHgiLHZlcnRpY2FsQWxpZ246InRvcCIsaW1nOnt3aWR0aDoiMTAwJSJ9fSwiJi1kZXNjIjp7bWFyZ2luQmxvY2tTdGFydDoiMTJweCIsbWFyZ2luQmxvY2tFbmQ6IjQwcHgiLGNvbG9yOm4uY29sb3JUZXh0U2Vjb25kYXJ5LGZvbnRTaXplOm4uZm9udFNpemV9LCImLW1haW4iOnttaW5XaWR0aDoiMzI4cHgiLG1heFdpZHRoOiI1ODBweCIsbWFyZ2luOiIwIGF1dG8iLCImLW90aGVyIjp7bWFyZ2luQmxvY2tTdGFydDoiMjRweCIsbGluZUhlaWdodDoiMjJweCIsdGV4dEFsaWduOiJzdGFydCJ9fX0pLCJAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIiwoMCxjZS5aKSh7fSwiIi5jb25jYXQobi5jb21wb25lbnRDbHMsIi1jb250YWluZXIiKSx7cGFkZGluZ0lubGluZTowLHBhZGRpbmdCbG9ja1N0YXJ0OjMyLHBhZGRpbmdCbG9ja0VuZDoyNCxiYWNrZ3JvdW5kUmVwZWF0OiJuby1yZXBlYXQiLGJhY2tncm91bmRQb3NpdGlvbjoiY2VudGVyIDExMHB4IixiYWNrZ3JvdW5kU2l6ZToiMTAwJSJ9KSl9O2Z1bmN0aW9uIG9lKGEpe3JldHVybigwLHNlLlhqKSgiTG9naW5Gb3JtIixmdW5jdGlvbihuKXt2YXIgbz0oMCxkLlopKCgwLGQuWikoe30sbikse30se2NvbXBvbmVudENsczoiLiIuY29uY2F0KGEpfSk7cmV0dXJuW3oobyldfSl9dmFyIHQ9ZSg4NTg5MyksQ2U9WyJsb2dvIiwibWVzc2FnZSIsImNvbnRlbnRTdHlsZSIsInRpdGxlIiwic3ViVGl0bGUiLCJhY3Rpb25zIiwiY2hpbGRyZW4iLCJjb250YWluZXJTdHlsZSIsIm90aGVyU3R5bGUiXTtmdW5jdGlvbiBNZShhKXt2YXIgbixvPWEubG9nbyxnPWEubWVzc2FnZSx4PWEuY29udGVudFN0eWxlLEg9YS50aXRsZSxrPWEuc3ViVGl0bGUsdz1hLmFjdGlvbnMsU2U9YS5jaGlsZHJlbixmZT1hLmNvbnRhaW5lclN0eWxlLGFlPWEub3RoZXJTdHlsZSxBPSgwLE8uWikoYSxDZSksRmU9KDAsRC5ZQikoKSxwZT1BLnN1Ym1pdHRlcj09PSExPyExOigwLGQuWikoKDAsZC5aKSh7c2VhcmNoQ29uZmlnOntzdWJtaXRUZXh0OkZlLmdldE1lc3NhZ2UoImxvZ2luRm9ybS5zdWJtaXRUZXh0IiwiXHU3NjdCXHU1RjU1Iil9fSxBLnN1Ym1pdHRlcikse30se3N1Ym1pdEJ1dHRvblByb3BzOigwLGQuWikoe3NpemU6ImxhcmdlIixzdHlsZTp7d2lkdGg6IjEwMCUifX0sKG49QS5zdWJtaXR0ZXIpPT09bnVsbHx8bj09PXZvaWQgMD92b2lkIDA6bi5zdWJtaXRCdXR0b25Qcm9wcykscmVuZGVyOmZ1bmN0aW9uKFkseGUpe3ZhciB1ZSxQZT14ZS5wb3AoKTtpZih0eXBlb2YoQT09bnVsbHx8KHVlPUEuc3VibWl0dGVyKT09PW51bGx8fHVlPT09dm9pZCAwP3ZvaWQgMDp1ZS5yZW5kZXIpPT0iZnVuY3Rpb24iKXt2YXIgSixQO3JldHVybiBBPT1udWxsfHwoSj1BLnN1Ym1pdHRlcik9PT1udWxsfHxKPT09dm9pZCAwfHwoUD1KLnJlbmRlcik9PT1udWxsfHxQPT09dm9pZCAwP3ZvaWQgMDpQLmNhbGwoSixZLHhlKX1yZXR1cm4gUGV9fSksVGU9KDAscy51c2VDb250ZXh0KShSLlpQLkNvbmZpZ0NvbnRleHQpLG1lPVRlLmdldFByZWZpeENscygicHJvLWZvcm0tbG9naW4iKSx2ZT1vZShtZSksaGU9dmUud3JhcFNTUixsZT12ZS5oYXNoSWQsVT1mdW5jdGlvbihZKXtyZXR1cm4iIi5jb25jYXQobWUsIi0iKS5jb25jYXQoWSwiICIpLmNvbmNhdChsZSl9LGllPSgwLHMudXNlTWVtbykoZnVuY3Rpb24oKXtyZXR1cm4gbz90eXBlb2Ygbz09InN0cmluZyI/KDAsdC5qc3gpKCJpbWciLHtzcmM6b30pOm86bnVsbH0sW29dKTtyZXR1cm4gaGUoKDAsdC5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOksoKShVKCJjb250YWluZXIiKSxsZSksc3R5bGU6ZmUsY2hpbGRyZW46WygwLHQuanN4cykoImRpdiIse2NsYXNzTmFtZToiIi5jb25jYXQoVSgidG9wIiksIiAiKS5jb25jYXQobGUpLnRyaW0oKSxjaGlsZHJlbjpbSHx8aWU/KDAsdC5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdChVKCJoZWFkZXIiKSksY2hpbGRyZW46W2llPygwLHQuanN4KSgic3BhbiIse2NsYXNzTmFtZTpVKCJsb2dvIiksY2hpbGRyZW46aWV9KTpudWxsLEg/KDAsdC5qc3gpKCJzcGFuIix7Y2xhc3NOYW1lOlUoInRpdGxlIiksY2hpbGRyZW46SH0pOm51bGxdfSk6bnVsbCxrPygwLHQuanN4KSgiZGl2Iix7Y2xhc3NOYW1lOlUoImRlc2MiKSxjaGlsZHJlbjprfSk6bnVsbF19KSwoMCx0LmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6VSgibWFpbiIpLHN0eWxlOigwLGQuWikoe3dpZHRoOjMyOH0seCksY2hpbGRyZW46WygwLHQuanN4cykoWmUuQSwoMCxkLlopKCgwLGQuWikoe2lzS2V5UHJlc3NTdWJtaXQ6ITB9LEEpLHt9LHtzdWJtaXR0ZXI6cGUsY2hpbGRyZW46W2csU2VdfSkpLHc/KDAsdC5qc3gpKCJkaXYiLHtjbGFzc05hbWU6VSgibWFpbi1vdGhlciIpLHN0eWxlOmFlLGNoaWxkcmVuOnd9KTpudWxsXX0pXX0pKX12YXIgdGU9ZSg1OTY2KSxnZT1lKDE2NDM0KSxqPWUoMjIyNzApLEw9ZSg4NDU2NyksJD1lKDkwNzg5KSxmPWUoOTIxNzkpLEI9WyJvcHRpb25zIiwiZmllbGRQcm9wcyIsInByb0ZpZWxkUHJvcHMiLCJ2YWx1ZUVudW0iXSxJZT1zLmZvcndhcmRSZWYoZnVuY3Rpb24oYSxuKXt2YXIgbz1hLm9wdGlvbnMsZz1hLmZpZWxkUHJvcHMseD1hLnByb0ZpZWxkUHJvcHMsSD1hLnZhbHVlRW51bSxrPSgwLE8uWikoYSxCKTtyZXR1cm4oMCx0LmpzeCkoZi5aLCgwLGQuWikoe3JlZjpuLHZhbHVlVHlwZToiY2hlY2tib3giLHZhbHVlRW51bTooMCxqLmgpKEgsdm9pZCAwKSxmaWVsZFByb3BzOigwLGQuWikoe29wdGlvbnM6b30sZyksbGlnaHRQcm9wczooMCxkLlopKHtsYWJlbEZvcm1hdHRlcjpmdW5jdGlvbigpe3JldHVybigwLHQuanN4KShmLlosKDAsZC5aKSh7cmVmOm4sdmFsdWVUeXBlOiJjaGVja2JveCIsbW9kZToicmVhZCIsdmFsdWVFbnVtOigwLGouaCkoSCx2b2lkIDApLGZpbGVkQ29uZmlnOntjdXN0b21MaWdodE1vZGU6ITB9LGZpZWxkUHJvcHM6KDAsZC5aKSh7b3B0aW9uczpvfSxnKSxwcm9GaWVsZFByb3BzOnh9LGspKX19LGsubGlnaHRQcm9wcykscHJvRmllbGRQcm9wczp4fSxrKSl9KSxXZT1zLmZvcndhcmRSZWYoZnVuY3Rpb24oYSxuKXt2YXIgbz1hLmZpZWxkUHJvcHMsZz1hLmNoaWxkcmVuO3JldHVybigwLHQuanN4KShMLlosKDAsZC5aKSgoMCxkLlopKHtyZWY6bn0sbykse30se2NoaWxkcmVuOmd9KSl9KSxVZT0oMCwkLkcpKFdlLHt2YWx1ZVByb3BOYW1lOiJjaGVja2VkIn0pLGJlPVVlO2JlLkdyb3VwPUllO3ZhciBOZT1iZSxLZT1lKDk3MTMzKSx6ZT1lKDkzNjEpLEJlPWZ1bmN0aW9uKG4pe3ZhciBvPXplLloudXNlVG9rZW4oKTtyZXR1cm4oMCxLZS5pdikobihvKSl9LGtlPWUoMzg5MjUpLGplPWUoMjQ1Myksd2U9ZSg5MjM5OCksR2U9ZSg3MTIzMCksQWU9ZSgxNTc0NiksJGU9ZSgxNTI0MSksSGU9ZSg2NzYxMCksVmU9ZSg3MzkzNSksT2U9ZSgxNjU2MCksSmU9ZnVuY3Rpb24oKXt2YXIgbj11c2VFbW90aW9uQ3NzKGZ1bmN0aW9uKG8pe3ZhciBnPW8udG9rZW47cmV0dXJue21hcmdpbkxlZnQ6IjhweCIsY29sb3I6InJnYmEoMCwgMCwgMCwgMC4yKSIsZm9udFNpemU6IjI0cHgiLHZlcnRpY2FsQWxpZ246Im1pZGRsZSIsY3Vyc29yOiJwb2ludGVyIix0cmFuc2l0aW9uOiJjb2xvciAwLjNzIiwiJjpob3ZlciI6e2NvbG9yOmcuY29sb3JQcmltYXJ5QWN0aXZlfX19KTtyZXR1cm4gX2pzeHMoX0ZyYWdtZW50LHtjaGlsZHJlbjpbX2pzeChBbGlwYXlDaXJjbGVPdXRsaW5lZCx7Y2xhc3NOYW1lOm59LCJBbGlwYXlDaXJjbGVPdXRsaW5lZCIpLF9qc3goVGFvYmFvQ2lyY2xlT3V0bGluZWQse2NsYXNzTmFtZTpufSwiVGFvYmFvQ2lyY2xlT3V0bGluZWQiKSxfanN4KFdlaWJvQ2lyY2xlT3V0bGluZWQse2NsYXNzTmFtZTpufSwiV2VpYm9DaXJjbGVPdXRsaW5lZCIpXX0pfSxRZT1mdW5jdGlvbigpe3ZhciBuPUJlKGZ1bmN0aW9uKG8pe3ZhciBnPW8udG9rZW47cmV0dXJue3dpZHRoOjQyLGhlaWdodDo0MixsaW5lSGVpZ2h0OiI0MnB4Iixwb3NpdGlvbjoiZml4ZWQiLHJpZ2h0OjE2LGJvcmRlclJhZGl1czpnLmJvcmRlclJhZGl1cywiOmhvdmVyIjp7YmFja2dyb3VuZENvbG9yOmcuY29sb3JCZ1RleHRIb3Zlcn19fSk7cmV0dXJuKDAsdC5qc3gpKCJkaXYiLHtjbGFzc05hbWU6biwiZGF0YS1sYW5nIjohMCxjaGlsZHJlbjp1LlNlbGVjdExhbmcmJigwLHQuanN4KSh1LlNlbGVjdExhbmcse30pfSl9LERlPWZ1bmN0aW9uKG4pe3ZhciBvPW4uY29udGVudDtyZXR1cm4oMCx0LmpzeCkoa2UuWix7c3R5bGU6e21hcmdpbkJvdHRvbToyNH0sbWVzc2FnZTpvLHR5cGU6ImVycm9yIixzaG93SWNvbjohMH0pfSxYZT1mdW5jdGlvbigpe3ZhciBuPSgwLHMudXNlU3RhdGUpKHtjb2RlOjIwMH0pLG89bSgpKG4sMiksZz1vWzBdLHg9b1sxXSxIPSgwLHMudXNlU3RhdGUpKCJhY2NvdW50Iiksaz1tKCkoSCwyKSx3PWtbMF0sU2U9a1sxXSxmZT0oMCx1LnVzZU1vZGVsKSgiQEBpbml0aWFsU3RhdGUiKSxhZT1mZS5pbml0aWFsU3RhdGUsQT1mZS5zZXRJbml0aWFsU3RhdGUsRmU9KDAscy51c2VTdGF0ZSkoIiIpLHBlPW0oKShGZSwyKSxUZT1wZVswXSxtZT1wZVsxXSx2ZT0oMCxzLnVzZVN0YXRlKSgiIiksaGU9bSgpKHZlLDIpLGxlPWhlWzBdLFU9aGVbMV0saWU9QmUoZnVuY3Rpb24oKXtyZXR1cm57ZGlzcGxheToiZmxleCIsZmxleERpcmVjdGlvbjoiY29sdW1uIixoZWlnaHQ6IjEwMHZoIixvdmVyZmxvdzoiYXV0byIsYmFja2dyb3VuZEltYWdlOiJ1cmwoJ2h0dHBzOi8vbWRuLmFsaXBheW9iamVjdHMuY29tL3l1eWFuX3FrMG94aC9hZnRzL2ltZy9WLV9vUzZyLWk3d0FBQUFBQUFBQUFBQUFGbDk0QVFCcicpIixiYWNrZ3JvdW5kU2l6ZToiMTAwJSAxMDAlIn19KSxDPSgwLHUudXNlSW50bCkoKSxZPWZ1bmN0aW9uKCl7dmFyIFA9SSgpKHYoKSgpLm1hcmsoZnVuY3Rpb24gcCgpe3ZhciB5LGM7cmV0dXJuIHYoKSgpLndyYXAoZnVuY3Rpb24oaSl7Zm9yKDs7KXN3aXRjaChpLnByZXY9aS5uZXh0KXtjYXNlIDA6cmV0dXJuIGkubmV4dD0yLCgwLF8uaDIpKCk7Y2FzZSAyOnk9aS5zZW50LGM9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCwiLmNvbmNhdCh5LmltZyksbWUoYyksVSh5LnV1aWQpO2Nhc2UgNjpjYXNlImVuZCI6cmV0dXJuIGkuc3RvcCgpfX0scCl9KSk7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIFAuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSx4ZT1mdW5jdGlvbigpe3ZhciBQPUkoKSh2KCkoKS5tYXJrKGZ1bmN0aW9uIHAoKXt2YXIgeSxjO3JldHVybiB2KCkoKS53cmFwKGZ1bmN0aW9uKGkpe2Zvcig7Oylzd2l0Y2goaS5wcmV2PWkubmV4dCl7Y2FzZSAwOnJldHVybiBpLm5leHQ9MixhZT09bnVsbHx8KHk9YWUuZmV0Y2hVc2VySW5mbyk9PT1udWxsfHx5PT09dm9pZCAwP3ZvaWQgMDp5LmNhbGwoYWUpO2Nhc2UgMjpjPWkuc2VudCxjJiYoMCxWZS5mbHVzaFN5bmMpKGZ1bmN0aW9uKCl7QShmdW5jdGlvbih5ZSl7cmV0dXJuIEUoKShFKCkoe30seWUpLHt9LHtjdXJyZW50VXNlcjpjfSl9KX0pO2Nhc2UgNDpjYXNlImVuZCI6cmV0dXJuIGkuc3RvcCgpfX0scCl9KSk7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIFAuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSx1ZT1mdW5jdGlvbigpe3ZhciBQPUkoKSh2KCkoKS5tYXJrKGZ1bmN0aW9uIHAoeSl7dmFyIGMsTixpLHllLFJlLExlO3JldHVybiB2KCkoKS53cmFwKGZ1bmN0aW9uKFMpe2Zvcig7Oylzd2l0Y2goUy5wcmV2PVMubmV4dCl7Y2FzZSAwOnJldHVybiBTLnByZXY9MCxTLm5leHQ9MywoMCxfLng0KShFKCkoRSgpKHt9LHkpLHt9LHt1dWlkOmxlfSkpO2Nhc2UgMzppZihjPVMuc2VudCxjLmNvZGUhPT0yMDApe1MubmV4dD0xOTticmVha31yZXR1cm4gTj1DLmZvcm1hdE1lc3NhZ2Uoe2lkOiJwYWdlcy5sb2dpbi5zdWNjZXNzIixkZWZhdWx0TWVzc2FnZToiXHU3NjdCXHU1RjU1XHU2MjEwXHU1MjlGXHVGRjAxIn0pLGk9bmV3IERhdGUseWU9aS5zZXRUaW1lKGkuZ2V0VGltZSgpKzQzMmU1KSxjb25zb2xlLmxvZygibG9naW4gcmVzcG9uc2U6ICIsYyksKDAsT2UuWkIpKGM9PW51bGw/dm9pZCAwOmMudG9rZW4sYz09bnVsbD92b2lkIDA6Yy50b2tlbix5ZSksamUuWlAuc3VjY2VzcyhOKSxTLm5leHQ9MTMseGUoKTtjYXNlIDEzOnJldHVybiBjb25zb2xlLmxvZygibG9naW4gb2siKSxSZT1uZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKS5zZWFyY2hQYXJhbXMsdS5oaXN0b3J5LnB1c2goUmUuZ2V0KCJyZWRpcmVjdCIpfHwiLyIpLFMuYWJydXB0KCJyZXR1cm4iKTtjYXNlIDE5OmNvbnNvbGUubG9nKGMubXNnKSwoMCxPZS5kUCkoKSx4KEUoKShFKCkoe30sYykse30se3R5cGU6d30pKSxZKCk7Y2FzZSAyMzpTLm5leHQ9MzA7YnJlYWs7Y2FzZSAyNTpTLnByZXY9MjUsUy50MD1TLmNhdGNoKDApLExlPUMuZm9ybWF0TWVzc2FnZSh7aWQ6InBhZ2VzLmxvZ2luLmZhaWx1cmUiLGRlZmF1bHRNZXNzYWdlOiJcdTc2N0JcdTVGNTVcdTU5MzFcdThEMjVcdUZGMENcdThCRjdcdTkxQ0RcdThCRDVcdUZGMDEifSksY29uc29sZS5sb2coUy50MCksamUuWlAuZXJyb3IoTGUpO2Nhc2UgMzA6Y2FzZSJlbmQiOnJldHVybiBTLnN0b3AoKX19LHAsbnVsbCxbWzAsMjVdXSl9KSk7cmV0dXJuIGZ1bmN0aW9uKHkpe3JldHVybiBQLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksUGU9Zy5jb2RlLEo9dztyZXR1cm4oMCxzLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtZKCl9LFtdKSwoMCx0LmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6aWUsc3R5bGU6e2JhY2tncm91bmRJbWFnZToidXJsKCdodHRwczovL2ltYWdlcy51bnNwbGFzaC5jb20vcGhvdG8tMTQ2MjMzMTk0MDAyNS00OTZkZmJmYzc1NjQ/YXV0bz1mb3JtYXQmZml0PWNyb3Amdz0xNTAwJnE9ODAnKSIsYmFja2dyb3VuZFNpemU6ImNvdmVyIixiYWNrZ3JvdW5kUG9zaXRpb246ImNlbnRlciIsbWluSGVpZ2h0OiIxMDB2aCIscG9zaXRpb246InJlbGF0aXZlIixvdmVyZmxvdzoiaGlkZGVuIn0sY2hpbGRyZW46WygwLHQuanN4KSh1LkhlbG1ldCx7Y2hpbGRyZW46KDAsdC5qc3hzKSgidGl0bGUiLHtjaGlsZHJlbjpbQy5mb3JtYXRNZXNzYWdlKHtpZDoibWVudS5sb2dpbiIsZGVmYXVsdE1lc3NhZ2U6Ilx1NzY3Qlx1NUY1NVx1OTg3NSJ9KSwiLSAiLEhlLloudGl0bGVdfSl9KSwoMCx0LmpzeCkoUWUse30pLCgwLHQuanN4KSgiZGl2Iix7c3R5bGU6e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsaW5zZXQ6MCx6SW5kZXg6MCxwb2ludGVyRXZlbnRzOiJub25lIixiYWNrZ3JvdW5kOiJyYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBhdCBib3R0b20sICMxYjI3MzUgMCUsICMwOTBhMGYgMTAwJSkifSxjaGlsZHJlbjooMCx0LmpzeCkoInN2ZyIse3dpZHRoOiIxMDAlIixoZWlnaHQ6IjEwMCUiLGNoaWxkcmVuOk0oKShBcnJheSg2MCkpLm1hcChmdW5jdGlvbihQLHApe3JldHVybigwLHQuanN4KSgiY2lyY2xlIix7Y3g6TWF0aC5yYW5kb20oKSoxNjAwLGN5Ok1hdGgucmFuZG9tKCkqOTAwLHI6TWF0aC5yYW5kb20oKSoxLjUrLjUsZmlsbDoiI2ZmZiIsb3BhY2l0eTpNYXRoLnJhbmRvbSgpKi44Ky4yfSxwKX0pfSl9KSwoMCx0LmpzeCkoImRpdiIse3N0eWxlOntmbGV4OiIxIixwYWRkaW5nOiIzMnB4IDAiLGRpc3BsYXk6ImZsZXgiLGFsaWduSXRlbXM6ImNlbnRlciIsanVzdGlmeUNvbnRlbnQ6ImNlbnRlciIsbWluSGVpZ2h0OiIxMDB2aCIscG9zaXRpb246InJlbGF0aXZlIix6SW5kZXg6MX0sY2hpbGRyZW46KDAsdC5qc3hzKShNZSx7Y29udGVudFN0eWxlOnttaW5XaWR0aDozMjAsbWF4V2lkdGg6NDAwLGJhY2tncm91bmQ6InJnYmEoMjUsIDM0LCA1NCwgMC45MikiLGJvcmRlclJhZGl1czoxNixib3hTaGFkb3c6IjAgOHB4IDMycHggMCByZ2JhKDMxLCAzOCwgMTM1LCAwLjM3KSIsYm9yZGVyOiIxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjE4KSIscGFkZGluZzoiMzJweCAzMnB4IDI0cHggMzJweCIsY29sb3I6IiNmZmYifSx0aXRsZTooMCx0LmpzeCkoInNwYW4iLHtzdHlsZTp7Y29sb3I6IiNmZmYiLGZvbnRXZWlnaHQ6NzAwLGZvbnRTaXplOjI4LGxldHRlclNwYWNpbmc6Mn0sY2hpbGRyZW46IlBUXHU2NjFGXHU3NDAzIn0pLHN1YlRpdGxlOigwLHQuanN4KSgic3BhbiIse3N0eWxlOntjb2xvcjoiI2IzYzdmOSIsZm9udFNpemU6MTZ9LGNoaWxkcmVuOiJcdTYzQTJcdTdEMjJcdTRGNjBcdTc2ODRcdTRFMTNcdTVDNUVcdTY2MUZcdTc0MDNcdUZGMENcdTc1NDVcdTRFQUJQVFx1NEUxNlx1NzU0QyJ9KSxpbml0aWFsVmFsdWVzOnthdXRvTG9naW46ITB9LG9uRmluaXNoOmZ1bmN0aW9uKCl7dmFyIFA9SSgpKHYoKSgpLm1hcmsoZnVuY3Rpb24gcCh5KXtyZXR1cm4gdigpKCkud3JhcChmdW5jdGlvbihOKXtmb3IoOzspc3dpdGNoKE4ucHJldj1OLm5leHQpe2Nhc2UgMDpyZXR1cm4gTi5uZXh0PTIsdWUoeSk7Y2FzZSAyOmNhc2UiZW5kIjpyZXR1cm4gTi5zdG9wKCl9fSxwKX0pKTtyZXR1cm4gZnVuY3Rpb24ocCl7cmV0dXJuIFAuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSxjaGlsZHJlbjpbKDAsdC5qc3gpKHdlLlose2FjdGl2ZUtleTp3LG9uQ2hhbmdlOlNlLGNlbnRlcmVkOiEwLGl0ZW1zOlt7a2V5OiJhY2NvdW50IixsYWJlbDooMCx0LmpzeCkoInNwYW4iLHtzdHlsZTp7Y29sb3I6IiNmZmYifSxjaGlsZHJlbjpDLmZvcm1hdE1lc3NhZ2Uoe2lkOiJwYWdlcy5sb2dpbi5hY2NvdW50TG9naW4udGFiIixkZWZhdWx0TWVzc2FnZToiXHU4RDI2XHU2MjM3XHU1QkM2XHU3ODAxXHU3NjdCXHU1RjU1In0pfSl9LHtrZXk6Im1vYmlsZSIsbGFiZWw6KDAsdC5qc3gpKCJzcGFuIix7c3R5bGU6e2NvbG9yOiIjZmZmIn0sY2hpbGRyZW46Qy5mb3JtYXRNZXNzYWdlKHtpZDoicGFnZXMubG9naW4ucGhvbmVMb2dpbi50YWIiLGRlZmF1bHRNZXNzYWdlOiJcdTYyNEJcdTY3M0FcdTUzRjdcdTc2N0JcdTVGNTUifSl9KX1dLHN0eWxlOnttYXJnaW5Cb3R0b206MjR9fSksUGUhPT0yMDAmJko9PT0iYWNjb3VudCImJigwLHQuanN4KShEZSx7Y29udGVudDpDLmZvcm1hdE1lc3NhZ2Uoe2lkOiJwYWdlcy5sb2dpbi5hY2NvdW50TG9naW4uZXJyb3JNZXNzYWdlIixkZWZhdWx0TWVzc2FnZToiXHU4RDI2XHU2MjM3XHU2MjE2XHU1QkM2XHU3ODAxXHU5NTE5XHU4QkVGKGFkbWluL2FkbWluMTIzKSJ9KX0pLHc9PT0iYWNjb3VudCImJigwLHQuanN4cykodC5GcmFnbWVudCx7Y2hpbGRyZW46WygwLHQuanN4KSh0ZS5aLHtuYW1lOiJ1c2VybmFtZSIsaW5pdGlhbFZhbHVlOiJhZG1pbiIsZmllbGRQcm9wczp7c2l6ZToibGFyZ2UiLHByZWZpeDooMCx0LmpzeCkoci5aLHtzdHlsZTp7Y29sb3I6IiM2Y2YifX0pLHN0eWxlOntiYWNrZ3JvdW5kOiJyZ2JhKDI1NSwyNTUsMjU1LDAuMDgpIixjb2xvcjoiI2ZmZiJ9fSxwbGFjZWhvbGRlcjpDLmZvcm1hdE1lc3NhZ2Uoe2lkOiJwYWdlcy5sb2dpbi51c2VybmFtZS5wbGFjZWhvbGRlciIsZGVmYXVsdE1lc3NhZ2U6Ilx1NzUyOFx1NjIzN1x1NTQwRDogYWRtaW4ifSkscnVsZXM6W3tyZXF1aXJlZDohMCxtZXNzYWdlOigwLHQuanN4KSh1LkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJwYWdlcy5sb2dpbi51c2VybmFtZS5yZXF1aXJlZCIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NzUyOFx1NjIzN1x1NTQwRCEifSl9XX0pLCgwLHQuanN4KSh0ZS5aLlBhc3N3b3JkLHtuYW1lOiJwYXNzd29yZCIsaW5pdGlhbFZhbHVlOiJhZG1pbjEyMyIsZmllbGRQcm9wczp7c2l6ZToibGFyZ2UiLHByZWZpeDooMCx0LmpzeCkoWi5aLHtzdHlsZTp7Y29sb3I6IiM2Y2YifX0pLHN0eWxlOntiYWNrZ3JvdW5kOiJyZ2JhKDI1NSwyNTUsMjU1LDAuMDgpIixjb2xvcjoiI2ZmZiJ9fSxwbGFjZWhvbGRlcjpDLmZvcm1hdE1lc3NhZ2Uoe2lkOiJwYWdlcy5sb2dpbi5wYXNzd29yZC5wbGFjZWhvbGRlciIsZGVmYXVsdE1lc3NhZ2U6Ilx1NUJDNlx1NzgwMTogYWRtaW4xMjMifSkscnVsZXM6W3tyZXF1aXJlZDohMCxtZXNzYWdlOigwLHQuanN4KSh1LkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJwYWdlcy5sb2dpbi5wYXNzd29yZC5yZXF1aXJlZCIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NUJDNlx1NzgwMVx1RkYwMSJ9KX1dfSksKDAsdC5qc3hzKShHZS5aLHtjaGlsZHJlbjpbKDAsdC5qc3gpKEFlLlose2ZsZXg6MyxjaGlsZHJlbjooMCx0LmpzeCkodGUuWix7c3R5bGU6e2Zsb2F0OiJyaWdodCIsYmFja2dyb3VuZDoicmdiYSgyNTUsMjU1LDI1NSwwLjA4KSIsY29sb3I6IiNmZmYifSxuYW1lOiJjb2RlIixwbGFjZWhvbGRlcjpDLmZvcm1hdE1lc3NhZ2Uoe2lkOiJwYWdlcy5sb2dpbi5jYXB0Y2hhLnBsYWNlaG9sZGVyIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU5QThDXHU4QkMxIn0pLHJ1bGVzOlt7cmVxdWlyZWQ6ITAsbWVzc2FnZTooMCx0LmpzeCkodS5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoicGFnZXMuc2VhcmNoVGFibGUudXBkYXRlRm9ybS5ydWxlTmFtZS5uYW1lUnVsZXMiLGRlZmF1bHRNZXNzYWdlOiJcdThCRjdcdThGOTNcdTUxNjVcdTlBOENcdThCQzFcdTU1NEEifSl9XX0pfSksKDAsdC5qc3gpKEFlLlose2ZsZXg6MixjaGlsZHJlbjooMCx0LmpzeCkoJGUuWix7c3JjOlRlLGFsdDoiXHU5QThDXHU4QkMxXHU3ODAxIixzdHlsZTp7ZGlzcGxheToiaW5saW5lLWJsb2NrIix2ZXJ0aWNhbEFsaWduOiJ0b3AiLGN1cnNvcjoicG9pbnRlciIscGFkZGluZ0xlZnQ6IjEwcHgiLHdpZHRoOiIxMDBweCIsYm9yZGVyUmFkaXVzOjgsYm94U2hhZG93OiIwIDAgOHB4ICM2Y2Y4IixiYWNrZ3JvdW5kOiIjZmZmIn0scHJldmlldzohMSxvbkNsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIFkoKX19KX0pXX0pXX0pLFBlIT09MjAwJiZKPT09Im1vYmlsZSImJigwLHQuanN4KShEZSx7Y29udGVudDoiXHU5QThDXHU4QkMxXHU3ODAxXHU5NTE5XHU4QkVGIn0pLHc9PT0ibW9iaWxlIiYmKDAsdC5qc3hzKSh0LkZyYWdtZW50LHtjaGlsZHJlbjpbKDAsdC5qc3gpKHRlLlose2ZpZWxkUHJvcHM6e3NpemU6ImxhcmdlIixwcmVmaXg6KDAsdC5qc3gpKGIuWix7c3R5bGU6e2NvbG9yOiIjNmNmIn19KSxzdHlsZTp7YmFja2dyb3VuZDoicmdiYSgyNTUsMjU1LDI1NSwwLjA4KSIsY29sb3I6IiNmZmYifX0sbmFtZToibW9iaWxlIixwbGFjZWhvbGRlcjpDLmZvcm1hdE1lc3NhZ2Uoe2lkOiJwYWdlcy5sb2dpbi5waG9uZU51bWJlci5wbGFjZWhvbGRlciIsZGVmYXVsdE1lc3NhZ2U6Ilx1NjI0Qlx1NjczQVx1NTNGNyJ9KSxydWxlczpbe3JlcXVpcmVkOiEwLG1lc3NhZ2U6KDAsdC5qc3gpKHUuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InBhZ2VzLmxvZ2luLnBob25lTnVtYmVyLnJlcXVpcmVkIixkZWZhdWx0TWVzc2FnZToiXHU4QkY3XHU4RjkzXHU1MTY1XHU2MjRCXHU2NzNBXHU1M0Y3XHVGRjAxIn0pfSx7cGF0dGVybjovXjFcZHsxMH0kLyxtZXNzYWdlOigwLHQuanN4KSh1LkZvcm1hdHRlZE1lc3NhZ2Use2lkOiJwYWdlcy5sb2dpbi5waG9uZU51bWJlci5pbnZhbGlkIixkZWZhdWx0TWVzc2FnZToiXHU2MjRCXHU2NzNBXHU1M0Y3XHU2ODNDXHU1RjBGXHU5NTE5XHU4QkVGXHVGRjAxIn0pfV19KSwoMCx0LmpzeCkoZ2UuWix7ZmllbGRQcm9wczp7c2l6ZToibGFyZ2UiLHByZWZpeDooMCx0LmpzeCkoWi5aLHtzdHlsZTp7Y29sb3I6IiM2Y2YifX0pLHN0eWxlOntiYWNrZ3JvdW5kOiJyZ2JhKDI1NSwyNTUsMjU1LDAuMDgpIixjb2xvcjoiI2ZmZiJ9fSxjYXB0Y2hhUHJvcHM6e3NpemU6ImxhcmdlIn0scGxhY2Vob2xkZXI6Qy5mb3JtYXRNZXNzYWdlKHtpZDoicGFnZXMubG9naW4uY2FwdGNoYS5wbGFjZWhvbGRlciIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1OUE4Q1x1OEJDMVx1NzgwMSJ9KSxjYXB0Y2hhVGV4dFJlbmRlcjpmdW5jdGlvbihwLHkpe3JldHVybiBwPyIiLmNvbmNhdCh5LCIgIikuY29uY2F0KEMuZm9ybWF0TWVzc2FnZSh7aWQ6InBhZ2VzLmdldENhcHRjaGFTZWNvbmRUZXh0IixkZWZhdWx0TWVzc2FnZToiXHU4M0I3XHU1M0Q2XHU5QThDXHU4QkMxXHU3ODAxIn0pKTpDLmZvcm1hdE1lc3NhZ2Uoe2lkOiJwYWdlcy5sb2dpbi5waG9uZUxvZ2luLmdldFZlcmlmaWNhdGlvbkNvZGUiLGRlZmF1bHRNZXNzYWdlOiJcdTgzQjdcdTUzRDZcdTlBOENcdThCQzFcdTc4MDEifSl9LG5hbWU6ImNhcHRjaGEiLHJ1bGVzOlt7cmVxdWlyZWQ6ITAsbWVzc2FnZTooMCx0LmpzeCkodS5Gb3JtYXR0ZWRNZXNzYWdlLHtpZDoicGFnZXMubG9naW4uY2FwdGNoYS5yZXF1aXJlZCIsZGVmYXVsdE1lc3NhZ2U6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1OUE4Q1x1OEJDMVx1NzgwMVx1RkYwMSJ9KX1dLG9uR2V0Q2FwdGNoYTpmdW5jdGlvbigpe3ZhciBQPUkoKSh2KCkoKS5tYXJrKGZ1bmN0aW9uIHAoeSl7dmFyIGM7cmV0dXJuIHYoKSgpLndyYXAoZnVuY3Rpb24oaSl7Zm9yKDs7KXN3aXRjaChpLnByZXY9aS5uZXh0KXtjYXNlIDA6cmV0dXJuIGkubmV4dD0yLGVlKHtwaG9uZTp5fSk7Y2FzZSAyOmlmKGM9aS5zZW50LGMpe2kubmV4dD01O2JyZWFrfXJldHVybiBpLmFicnVwdCgicmV0dXJuIik7Y2FzZSA1OmplLlpQLnN1Y2Nlc3MoIlx1ODNCN1x1NTNENlx1OUE4Q1x1OEJDMVx1NzgwMVx1NjIxMFx1NTI5Rlx1RkYwMVx1OUE4Q1x1OEJDMVx1NzgwMVx1NEUzQVx1RkYxQTEyMzQiKTtjYXNlIDY6Y2FzZSJlbmQiOnJldHVybiBpLnN0b3AoKX19LHApfSkpO3JldHVybiBmdW5jdGlvbihwKXtyZXR1cm4gUC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpfSldfSksKDAsdC5qc3hzKSgiZGl2Iix7c3R5bGU6e21hcmdpbkJvdHRvbToyNCxjb2xvcjoiI2IzYzdmOSJ9LGNoaWxkcmVuOlsoMCx0LmpzeCkoTmUse2NoaWxkcmVuOigwLHQuanN4KSgiYSIse3N0eWxlOntmbG9hdDoicmlnaHQiLGNvbG9yOiIjZmZmIixmb250U2l6ZToxNH0sY2hpbGRyZW46KDAsdC5qc3gpKHUuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InBhZ2VzLmxvZ2luLnJlbWVtYmVyTWUiLGRlZmF1bHRNZXNzYWdlOiJcdTgxRUFcdTUyQThcdTc2N0JcdTVGNTUifSl9KX0pLCgwLHQuanN4KSgiYSIse3N0eWxlOntmbG9hdDoicmlnaHQiLGNvbG9yOiIjNmNmIn0sY2hpbGRyZW46KDAsdC5qc3gpKHUuRm9ybWF0dGVkTWVzc2FnZSx7aWQ6InBhZ2VzLmxvZ2luLmZvcmdvdFBhc3N3b3JkIixkZWZhdWx0TWVzc2FnZToiXHU1RkQ4XHU4QkIwXHU1QkM2XHU3ODAxIn0pfSldfSldfSl9KSwoMCx0LmpzeCkoWC5aLHt9KV19KX0sWWU9WGV9fV0pOwpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy9wX19Vc2VyX19TZXR0aW5nc19faW5kZXguMTA4MTE2MmEuYXN5bmMuanMgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljL3BfX1VzZXJfX1NldHRpbmdzX19pbmRleC4xMDgxMTYyYS5hc3luYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MzVkODQzCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy9wX19Vc2VyX19TZXR0aW5nc19faW5kZXguMTA4MTE2MmEuYXN5bmMuanMKQEAgLTAsMCArMSBAQAorInVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua2FudF9kZXNpZ25fcHJvPXNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm98fFtdKS5wdXNoKFtbMTk0Ml0sezY5MzI1OmZ1bmN0aW9uKGUsdCxuKXtuLnIodCk7dmFyIHM9big2MTEwKSxFPW4oNDM5MyksRD1uKDY3Mjk0KSxfPW4oODU4OTMpLGE9ZnVuY3Rpb24oKXtyZXR1cm4oMCxfLmpzeCkocy5feix7Y2hpbGRyZW46KDAsXy5qc3gpKEUuWix7dGl0bGU6IkRldmVsb3BpbmcifSl9KX07dC5kZWZhdWx0PWF9fV0pOwpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy9wcmVsb2FkX2hlbHBlci43MGY1MzRhYS5qcyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvcHJlbG9hZF9oZWxwZXIuNzBmNTM0YWEuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODZlOGE1ZQotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvcHJlbG9hZF9oZWxwZXIuNzBmNTM0YWEuanMKQEAgLTAsMCArMSBAQAorIWZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciB0PSIvIi5yZXBsYWNlKC8oW14vXSkkLywiJDEvIiksZT1sb2NhdGlvbi5wYXRobmFtZSxuPWUuc3RhcnRzV2l0aCh0KSYmZGVjb2RlVVJJKCIvIi5jb25jYXQoZS5zbGljZSh0Lmxlbmd0aCkpKTtpZihuKXt2YXIgYT1kb2N1bWVudCxjPWEuaGVhZCxyPWEuY3JlYXRlRWxlbWVudC5iaW5kKGEpLGk9ZnVuY3Rpb24odCxlLG4pe3ZhciBhLGM9ZS5yW3RdfHwobnVsbD09PShhPU9iamVjdC5lbnRyaWVzKGUucikuZmluZCgoZnVuY3Rpb24oZSl7dmFyIG49ZVswXTtyZXR1cm4gbmV3IFJlZ0V4cCgiXiIuY29uY2F0KG4ucmVwbGFjZSgvXC86W14vXSsvZywiL1teL10rIikucmVwbGFjZSgiLyoiLCIvLisiKSwiJCIpKS50ZXN0KHQpfSkpKXx8dm9pZCAwPT09YT92b2lkIDA6YVsxXSk7cmV0dXJuIG51bGw9PWM/dm9pZCAwOmMubWFwKChmdW5jdGlvbih0KXt2YXIgYT1lLmZbdF1bMV0sYz1lLmZbdF1bMF07cmV0dXJue3R5cGU6Yy5zcGxpdCgiLiIpLnBvcCgpLHVybDoiIi5jb25jYXQobi5wdWJsaWNQYXRoKS5jb25jYXQoYyksYXR0cnM6W1siZGF0YS0iLmNvbmNhdChlLmIpLCIiLmNvbmNhdChlLnAsIjoiKS5jb25jYXQoYSldXX19KSl9KG4seyJwIjoiYW50LWRlc2lnbi1wcm8iLCJiIjoid2VicGFjayIsImYiOltbIjkwMy4wOTRmZmVkMC5hc3luYy5qcyIsOTAzXSxbIjk2MC5mMjc3ZWM1Yy5hc3luYy5qcyIsOTYwXSxbInBfX1VzZXJDZW50ZXJfX2luZGV4LjQ5OThkNzRjLmNodW5rLmNzcyIsMTA5MV0sWyJwX19Vc2VyQ2VudGVyX19pbmRleC4xYzQxM2M2Yy5hc3luYy5qcyIsMTA5MV0sWyIxNDU4LmU5MTQwNGQ0LmFzeW5jLmpzIiwxNDU4XSxbInBfX1VzZXJfX1NldHRpbmdzX19pbmRleC4xMDgxMTYyYS5hc3luYy5qcyIsMTk0Ml0sWyIyMDE2LmFiZDY2MzYxLmFzeW5jLmpzIiwyMDE2XSxbIjIwNTcuMmNmZTcwNTguYXN5bmMuanMiLDIwNTddLFsiMjA2My5hMThkZmVjOS5hc3luYy5qcyIsMjA2M10sWyIyMDg2LmY3NmJlOWFhLmFzeW5jLmpzIiwyMDg2XSxbIjIxNzkuZWNhOThmZTMuYXN5bmMuanMiLDIxNzldLFsiMjM2Mi5kNTkyN2ViNi5hc3luYy5qcyIsMjM2Ml0sWyIyMzk4LjFiYjU4ZTM0LmFzeW5jLmpzIiwyMzk4XSxbInBfXzQwNC4wOTlmMDJiOC5hc3luYy5qcyIsMjU3MV0sWyIyNTg2LmY0NDgzMDExLmFzeW5jLmpzIiwyNTg2XSxbInBfX1Bvc3RDZW50ZXJfX1Bvc3REZXRhaWwuZGNlZjU3YTUuY2h1bmsuY3NzIiwyNjM2XSxbInBfX1Bvc3RDZW50ZXJfX1Bvc3REZXRhaWwuNWQ1ZTA3MDUuYXN5bmMuanMiLDI2MzZdLFsiMzYyOC45NzQ4MjEzMS5hc3luYy5qcyIsMzYyOF0sWyIzNzk5LjA0NjI3ODg0LmFzeW5jLmpzIiwzNzk5XSxbInBfX1Rvb2xfX0dlbl9faW1wb3J0LjY2ZjIyYzQwLmFzeW5jLmpzIiwzODY3XSxbIjQzNDYuY2MzMjllYTcuYXN5bmMuanMiLDQzNDZdLFsiNDM5My4xMmJmMjU3Yy5hc3luYy5qcyIsNDM5M10sWyJwX19Qb3N0UmV2aWV3X19pbmRleC4wYTZhMmJmNC5jaHVuay5jc3MiLDQ4NzNdLFsicF9fUG9zdFJldmlld19faW5kZXguNjk0ZTFjYzMuYXN5bmMuanMiLDQ4NzNdLFsiNTI3OC5kOTY0Y2UzNi5hc3luYy5qcyIsNTI3OF0sWyI1Mzg1LmRkNmRhZGU1LmFzeW5jLmpzIiw1Mzg1XSxbIjU0NjQuNzZjNTZlYWQuYXN5bmMuanMiLDU0NjRdLFsicF9fU3lzdGVtX19EaWN0RGF0YV9faW5kZXguYWJkYmY1OGIuYXN5bmMuanMiLDU3ODZdLFsiNTgyNi4wYTA5NzYwOC5hc3luYy5qcyIsNTgyNl0sWyI2MTEwLjY1YjUzNWM0LmFzeW5jLmpzIiw2MTEwXSxbIjYxNTQuN2JjNjQ4ZmMuYXN5bmMuanMiLDYxNTRdLFsicF9fTW9uaXRvcl9fSm9iTG9nX19pbmRleC4yZWMyZDRjZi5hc3luYy5qcyIsNjI4NV0sWyJ0X19wbHVnaW4tbGF5b3V0X19MYXlvdXQuNTAxMmUxYWIuY2h1bmsuY3NzIiw2MzAxXSxbInRfX3BsdWdpbi1sYXlvdXRfX0xheW91dC5jM2IzYzJkZC5hc3luYy5qcyIsNjMwMV0sWyI2Mzg4LmY1ZmQ0ODM0LmFzeW5jLmpzIiw2Mzg4XSxbIjYzOTAuNDk2NDM4ODUuYXN5bmMuanMiLDYzOTBdLFsiNjQxMi4wYTNiYjEzNy5hc3luYy5qcyIsNjQxMl0sWyJwX19TeXN0ZW1fX1JvbGVfX2F1dGhVc2VyLjY0NWJkNzg1LmFzeW5jLmpzIiw2ODMxXSxbInBfX1Rvb2xfX0dlbl9fZWRpdC5mZDliM2FiOS5jaHVuay5jc3MiLDcxNDRdLFsicF9fVG9vbF9fR2VuX19lZGl0LjkyZmQ1MmM1LmFzeW5jLmpzIiw3MTQ0XSxbIjcyNjkuY2NlNTgwZDkuYXN5bmMuanMiLDcyNjldLFsiNzY2Mi5mNTdjOTY2My5hc3luYy5qcyIsNzY2Ml0sWyJwX19Qb3N0Q2VudGVyX19pbmRleC5kYWQzMDdjOC5jaHVuay5jc3MiLDgyOTldLFsicF9fUG9zdENlbnRlcl9faW5kZXguMWYzNzNhNzAuYXN5bmMuanMiLDgyOTldLFsiODcwMy41NDEyY2VjMy5hc3luYy5qcyIsODcwM10sWyI4OTk3LmQ1NmIzMmE4LmFzeW5jLmpzIiw4OTk3XSxbInBfX1VzZXJfX0NlbnRlcl9faW5kZXguOTMyY2RhOTMuY2h1bmsuY3NzIiw5MjQ1XSxbInBfX1VzZXJfX0NlbnRlcl9faW5kZXguNjdmODRiYzUuYXN5bmMuanMiLDkyNDVdLFsicF9fVXNlcl9fTG9naW5fX2luZGV4LjJkYTFlMmNlLmFzeW5jLmpzIiw5MzY2XSxbIjk3MjAuNWRmY2QxYjcuYXN5bmMuanMiLDk3MjBdLFsiOTg1OS5mMmU2ZDA4ZS5hc3luYy5qcyIsOTg1OV1dLCJyIjp7Ii8qIjpbMTMsNDldLCIvIjpbMjAsMzIsMzMsNDUsNDldLCIvdXNlci1jZW50ZXIiOlswLDIsMywxMSwxMiwxNCwxOCwyMSwyNCwyOCwzMCw0MSw0NCw0NSw1MCwyMCwzMiwzMyw0OV0sIi9wb3N0LXJldmlldyI6WzAsMSw4LDExLDEyLDE0LDIxLDIyLDIzLDI0LDI4LDMwLDQxLDIwLDMyLDMzLDQ1LDQ5XSwiL3Bvc3QtZGV0YWlsLzppZCI6WzAsMSwxMiwxNCwxNSwxNiwyMSwyNCw0MSw0NSwyMCwzMiwzMyw0OV0sIi91c2VyL2xvZ2luIjpbMCwxMCwxMSwxMiwxNCwyNCwyOCw0MCw0NCw0NSw0OCw1MF0sIi9hY2NvdW50L2NlbnRlciI6WzAsNiwxMCwxMSwxMiwxNCwxOCwyMSwyNCwyOCw0MCw0NCw0NSw0Niw0Nyw1MCwyMCwzMiwzMyw0OV0sIi9hY2NvdW50L3NldHRpbmdzIjpbNCw1LDEyLDIxLDI5LDQ1LDIwLDMyLDMzLDQ5XSwiL3Bvc3QvY2VudGVyIjpbOSwxMiwxNCwyMSwyNCw0MSw0Miw0Myw0NSwyMCwzMiwzMyw0OV0sIi90b29sL2dlbi9pbXBvcnQiOlswLDEsMTAsMTEsMTIsMTQsMTksMjEsMjQsMjUsMjgsMzAsNDAsNDQsNDUsNDksNTAsMjAsMzIsMzNdLCIvdG9vbC9nZW4vZWRpdCI6WzAsMSw3LDEwLDExLDEyLDE0LDIxLDI0LDI1LDI4LDMwLDM0LDM4LDM5LDQwLDQ0LDQ1LDQ5LDUwLDIwLDMyLDMzXSwiL3N5c3RlbS9kaWN0LWRhdGEvaW5kZXgvOmlkIjpbMCwxLDQsMTAsMTEsMTIsMTQsMTcsMjQsMjUsMjcsMjgsMjksMzAsNDAsNDQsNDUsNDksNTAsMjAsMzIsMzNdLCIvc3lzdGVtL3JvbGUtYXV0aC91c2VyLzppZCI6WzAsMSw0LDEwLDExLDEyLDE0LDI0LDI1LDI2LDI4LDI5LDMwLDM3LDQwLDQ0LDQ1LDQ5LDUwLDIwLDMyLDMzXSwiL21vbml0b3Ivam9iLWxvZy9pbmRleC86aWQiOlswLDEsNCwxMCwxMSwxMiwxNCwyNCwyNSwyOCwyOSwzMCwzMSwzNiw0MCw0NCw0NSw0OSw1MCwyMCwzMiwzM119fSx7cHVibGljUGF0aDoiLyJ9KTtudWxsPT1pfHxpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlLG49dC50eXBlLGE9dC51cmw7aWYoImpzIj09PW4pKGU9cigic2NyaXB0IikpLnNyYz1hLGUuYXN5bmM9ITA7ZWxzZXtpZigiY3NzIiE9PW4pcmV0dXJuOyhlPXIoImxpbmsiKSkuaHJlZj1hLGUucmVsPSJwcmVsb2FkIixlLmFzPSJzdHlsZSJ9dC5hdHRycy5mb3JFYWNoKChmdW5jdGlvbih0KXtlLnNldEF0dHJpYnV0ZSh0WzBdLHRbMV18fCIiKX0pKSxjLmFwcGVuZENoaWxkKGUpfSkpfX0oKTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljL3Byb19pY29uLnN2ZyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvcHJvX2ljb24uc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUwNzViNzgKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljL3Byb19pY29uLnN2ZwpAQCAtMCwwICsxLDUgQEAKKzxzdmcgd2lkdGg9IjQyIiBoZWlnaHQ9IjQyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgorIDxnPgorICA8cGF0aCBmaWxsPSIjMDcwNzA3IiBkPSJtNi43MTczOTIsMTMuNzczOTEybDUuNiwwYzIuOCwwIDQuNywxLjkgNC43LDQuN2MwLDIuOCAtMiw0LjcgLTQuOSw0LjdsLTIuNSwwbDAsNC4zbC0yLjksMGwwLC0xMy43em0yLjksMi4ybDAsNC45bDEuOSwwYzEuNiwwIDIuNiwtMC45IDIuNiwtMi40YzAsLTEuNiAtMC45LC0yLjQgLTIuNiwtMi40bC0xLjksMGwwLC0wLjF6bTguOSwxMS41bDIuNywwbDAsLTUuN2MwLC0xLjQgMC44LC0yLjMgMi4yLC0yLjNjMC40LDAgMC44LDAuMSAxLDAuMmwwLC0yLjRjLTAuMiwtMC4xIC0wLjUsLTAuMSAtMC44LC0wLjFjLTEuMiwwIC0yLjEsMC43IC0yLjQsMmwtMC4xLDBsMCwtMS45bC0yLjcsMGwwLDEwLjJsMC4xLDB6bTExLjcsMC4xYy0zLjEsMCAtNSwtMiAtNSwtNS4zYzAsLTMuMyAyLC01LjMgNSwtNS4zczUsMiA1LDUuM2MwLDMuNCAtMS45LDUuMyAtNSw1LjN6bTAsLTIuMWMxLjQsMCAyLjIsLTEuMSAyLjIsLTMuMmMwLC0yIC0wLjgsLTMuMiAtMi4yLC0zLjJjLTEuNCwwIC0yLjIsMS4yIC0yLjIsMy4yYzAsMi4xIDAuOCwzLjIgMi4yLDMuMnoiIGNsYXNzPSJzdDAiIGlkPSJBbnQtRGVzaWduLVBybyIvPgorIDwvZz4KKzwvc3ZnPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvc2NyaXB0cy9sb2FkaW5nLmpzIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy9zY3JpcHRzL2xvYWRpbmcuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzFjZWQ1NAotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvc2NyaXB0cy9sb2FkaW5nLmpzCkBAIC0wLDAgKzEsMjAyIEBACisvKioKKyAqIGxvYWRpbmcg5Y2g5L2NCisgKiDop6PlhrPpppbmrKHliqDovb3ml7bnmb3lsY/nmoTpl67popgKKyAqLworIChmdW5jdGlvbiAoKSB7CisgIGNvbnN0IF9yb290ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3Jvb3QnKTsKKyAgaWYgKF9yb290ICYmIF9yb290LmlubmVySFRNTCA9PT0gJycpIHsKKyAgICBfcm9vdC5pbm5lckhUTUwgPSBgCisgICAgICA8c3R5bGU+CisgICAgICAgIGh0bWwsCisgICAgICAgIGJvZHksCisgICAgICAgICNyb290IHsKKyAgICAgICAgICBoZWlnaHQ6IDEwMCU7CisgICAgICAgICAgbWFyZ2luOiAwOworICAgICAgICAgIHBhZGRpbmc6IDA7CisgICAgICAgIH0KKyAgICAgICAgI3Jvb3QgeworICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7CisgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxMDAlIGF1dG87CisgICAgICAgIH0KKworICAgICAgICAubG9hZGluZy10aXRsZSB7CisgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07CisgICAgICAgIH0KKworICAgICAgICAubG9hZGluZy1zdWItdGl0bGUgeworICAgICAgICAgIG1hcmdpbi10b3A6IDIwcHg7CisgICAgICAgICAgZm9udC1zaXplOiAxcmVtOworICAgICAgICAgIGNvbG9yOiAjODg4OworICAgICAgICB9CisKKyAgICAgICAgLnBhZ2UtbG9hZGluZy13YXJwIHsKKyAgICAgICAgICBkaXNwbGF5OiBmbGV4OworICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CisgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CisgICAgICAgICAgcGFkZGluZzogMjZweDsKKyAgICAgICAgfQorICAgICAgICAuYW50LXNwaW4geworICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgICBkaXNwbGF5OiBub25lOworICAgICAgICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKKyAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OworICAgICAgICAgIG1hcmdpbjogMDsKKyAgICAgICAgICBwYWRkaW5nOiAwOworICAgICAgICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNjUpOworICAgICAgICAgIGNvbG9yOiAjMTg5MGZmOworICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKKyAgICAgICAgICBmb250LXZhcmlhbnQ6IHRhYnVsYXItbnVtczsKKyAgICAgICAgICBsaW5lLWhlaWdodDogMS41OworICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKKyAgICAgICAgICBsaXN0LXN0eWxlOiBub25lOworICAgICAgICAgIG9wYWNpdHk6IDA7CisgICAgICAgICAgLXdlYmtpdC10cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSAwLjNzCisgICAgICAgICAgICBjdWJpYy1iZXppZXIoMC43OCwgMC4xNCwgMC4xNSwgMC44Nik7CisgICAgICAgICAgdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMC4zcworICAgICAgICAgICAgY3ViaWMtYmV6aWVyKDAuNzgsIDAuMTQsIDAuMTUsIDAuODYpOworICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGN1YmljLWJlemllcigwLjc4LCAwLjE0LCAwLjE1LCAwLjg2KTsKKyAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBjdWJpYy1iZXppZXIoMC43OCwgMC4xNCwgMC4xNSwgMC44NiksCisgICAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybSAwLjNzIGN1YmljLWJlemllcigwLjc4LCAwLjE0LCAwLjE1LCAwLjg2KTsKKyAgICAgICAgICAtd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5nczogInRudW0iOworICAgICAgICAgIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogInRudW0iOworICAgICAgICB9CisKKyAgICAgICAgLmFudC1zcGluLXNwaW5uaW5nIHsKKyAgICAgICAgICBwb3NpdGlvbjogc3RhdGljOworICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAgICBvcGFjaXR5OiAxOworICAgICAgICB9CisKKyAgICAgICAgLmFudC1zcGluLWRvdCB7CisgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAgICB3aWR0aDogMjBweDsKKyAgICAgICAgICBoZWlnaHQ6IDIwcHg7CisgICAgICAgICAgZm9udC1zaXplOiAyMHB4OworICAgICAgICB9CisKKyAgICAgICAgLmFudC1zcGluLWRvdC1pdGVtIHsKKyAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgICAgZGlzcGxheTogYmxvY2s7CisgICAgICAgICAgd2lkdGg6IDlweDsKKyAgICAgICAgICBoZWlnaHQ6IDlweDsKKyAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTg5MGZmOworICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7CisgICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuNzUpOworICAgICAgICAgIC1tcy10cmFuc2Zvcm06IHNjYWxlKDAuNzUpOworICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC43NSk7CisgICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlOworICAgICAgICAgIC1tcy10cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlOworICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7CisgICAgICAgICAgb3BhY2l0eTogMC4zOworICAgICAgICAgIC13ZWJraXQtYW5pbWF0aW9uOiBhbnRzcGlubW92ZSAxcyBpbmZpbml0ZSBsaW5lYXIgYWx0ZXJuYXRlOworICAgICAgICAgIGFuaW1hdGlvbjogYW50U3Bpbk1vdmUgMXMgaW5maW5pdGUgbGluZWFyIGFsdGVybmF0ZTsKKyAgICAgICAgfQorCisgICAgICAgIC5hbnQtc3Bpbi1kb3QtaXRlbTpudGgtY2hpbGQoMSkgeworICAgICAgICAgIHRvcDogMDsKKyAgICAgICAgICBsZWZ0OiAwOworICAgICAgICB9CisKKyAgICAgICAgLmFudC1zcGluLWRvdC1pdGVtOm50aC1jaGlsZCgyKSB7CisgICAgICAgICAgdG9wOiAwOworICAgICAgICAgIHJpZ2h0OiAwOworICAgICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAwLjRzOworICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogMC40czsKKyAgICAgICAgfQorCisgICAgICAgIC5hbnQtc3Bpbi1kb3QtaXRlbTpudGgtY2hpbGQoMykgeworICAgICAgICAgIHJpZ2h0OiAwOworICAgICAgICAgIGJvdHRvbTogMDsKKyAgICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMC44czsKKyAgICAgICAgICBhbmltYXRpb24tZGVsYXk6IDAuOHM7CisgICAgICAgIH0KKworICAgICAgICAuYW50LXNwaW4tZG90LWl0ZW06bnRoLWNoaWxkKDQpIHsKKyAgICAgICAgICBib3R0b206IDA7CisgICAgICAgICAgbGVmdDogMDsKKyAgICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMS4yczsKKyAgICAgICAgICBhbmltYXRpb24tZGVsYXk6IDEuMnM7CisgICAgICAgIH0KKworICAgICAgICAuYW50LXNwaW4tZG90LXNwaW4geworICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpOworICAgICAgICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7CisgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpOworICAgICAgICAgIC13ZWJraXQtYW5pbWF0aW9uOiBhbnRyb3RhdGUgMS4ycyBpbmZpbml0ZSBsaW5lYXI7CisgICAgICAgICAgYW5pbWF0aW9uOiBhbnRSb3RhdGUgMS4ycyBpbmZpbml0ZSBsaW5lYXI7CisgICAgICAgIH0KKworICAgICAgICAuYW50LXNwaW4tbGcgLmFudC1zcGluLWRvdCB7CisgICAgICAgICAgd2lkdGg6IDMycHg7CisgICAgICAgICAgaGVpZ2h0OiAzMnB4OworICAgICAgICAgIGZvbnQtc2l6ZTogMzJweDsKKyAgICAgICAgfQorCisgICAgICAgIC5hbnQtc3Bpbi1sZyAuYW50LXNwaW4tZG90IGkgeworICAgICAgICAgIHdpZHRoOiAxNHB4OworICAgICAgICAgIGhlaWdodDogMTRweDsKKyAgICAgICAgfQorCisgICAgICAgIEBtZWRpYSBhbGwgYW5kICgtbXMtaGlnaC1jb250cmFzdDogbm9uZSksICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSB7CisgICAgICAgICAgLmFudC1zcGluLWJsdXIgeworICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmZjsKKyAgICAgICAgICAgIG9wYWNpdHk6IDAuNTsKKyAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBALXdlYmtpdC1rZXlmcmFtZXMgYW50U3Bpbk1vdmUgeworICAgICAgICAgIHRvIHsKKyAgICAgICAgICAgIG9wYWNpdHk6IDE7CisgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgQGtleWZyYW1lcyBhbnRTcGluTW92ZSB7CisgICAgICAgICAgdG8geworICAgICAgICAgICAgb3BhY2l0eTogMTsKKyAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBALXdlYmtpdC1rZXlmcmFtZXMgYW50Um90YXRlIHsKKyAgICAgICAgICB0byB7CisgICAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDQwNWRlZyk7CisgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0MDVkZWcpOworICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIEBrZXlmcmFtZXMgYW50Um90YXRlIHsKKyAgICAgICAgICB0byB7CisgICAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDQwNWRlZyk7CisgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0MDVkZWcpOworICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgPC9zdHlsZT4KKworICAgICAgPGRpdiBzdHlsZT0iCisgICAgICAgIGRpc3BsYXk6IGZsZXg7CisgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CisgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CisgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOworICAgICAgICBoZWlnaHQ6IDEwMCU7CisgICAgICAgIG1pbi1oZWlnaHQ6IDM2MnB4OworICAgICAgIj4KKyAgICAgICAgPGRpdiBjbGFzcz0icGFnZS1sb2FkaW5nLXdhcnAiPgorICAgICAgICAgIDxkaXYgY2xhc3M9ImFudC1zcGluIGFudC1zcGluLWxnIGFudC1zcGluLXNwaW5uaW5nIj4KKyAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJhbnQtc3Bpbi1kb3QgYW50LXNwaW4tZG90LXNwaW4iPgorICAgICAgICAgICAgICA8aSBjbGFzcz0iYW50LXNwaW4tZG90LWl0ZW0iPjwvaT4KKyAgICAgICAgICAgICAgPGkgY2xhc3M9ImFudC1zcGluLWRvdC1pdGVtIj48L2k+CisgICAgICAgICAgICAgIDxpIGNsYXNzPSJhbnQtc3Bpbi1kb3QtaXRlbSI+PC9pPgorICAgICAgICAgICAgICA8aSBjbGFzcz0iYW50LXNwaW4tZG90LWl0ZW0iPjwvaT4KKyAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctdGl0bGUiPgorICAgICAgICAgIOato+WcqOWKoOi9vei1hOa6kAorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1zdWItdGl0bGUiPgorICAgICAgICAgIOWIneasoeWKoOi9vei1hOa6kOWPr+iDvemcgOimgei+g+WkmuaXtumXtCDor7fogJDlv4PnrYnlvoUKKyAgICAgICAgPC9kaXY+CisgICAgICA8L2Rpdj4KKyAgICBgOworICB9Cit9KSgpOwpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy90X19wbHVnaW4tbGF5b3V0X19MYXlvdXQuNTAxMmUxYWIuY2h1bmsuY3NzIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy90X19wbHVnaW4tbGF5b3V0X19MYXlvdXQuNTAxMmUxYWIuY2h1bmsuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRkYWJhOWYKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljL3RfX3BsdWdpbi1sYXlvdXRfX0xheW91dC41MDEyZTFhYi5jaHVuay5jc3MKQEAgLTAsMCArMSBAQAorQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDgwcHgpey51bWktcGx1Z2luLWxheW91dC1jb250YWluZXJ7d2lkdGg6MTAwJSFpbXBvcnRhbnR9LnVtaS1wbHVnaW4tbGF5b3V0LWNvbnRhaW5lcj4qe2JvcmRlci1yYWRpdXM6MCFpbXBvcnRhbnR9fS51bWktcGx1Z2luLWxheW91dC1tZW51IC5hbnRpY29ue21hcmdpbi1yaWdodDo4cHh9LnVtaS1wbHVnaW4tbGF5b3V0LW1lbnUgLmFudC1kcm9wZG93bi1tZW51LWl0ZW17bWluLXdpZHRoOjE2MHB4fS51bWktcGx1Z2luLWxheW91dC1yaWdodHtkaXNwbGF5OmZsZXghaW1wb3J0YW50O2Zsb2F0OnJpZ2h0O2hlaWdodDoxMDAlO21hcmdpbi1sZWZ0OmF1dG87b3ZlcmZsb3c6aGlkZGVufS51bWktcGx1Z2luLWxheW91dC1yaWdodCAudW1pLXBsdWdpbi1sYXlvdXQtYWN0aW9ue2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7aGVpZ2h0OjEwMCU7cGFkZGluZzowIDEycHg7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjphbGwgLjNzfS51bWktcGx1Z2luLWxheW91dC1yaWdodCAudW1pLXBsdWdpbi1sYXlvdXQtYWN0aW9uPml7Y29sb3I6I2ZmZmZmZmQ5O3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0udW1pLXBsdWdpbi1sYXlvdXQtcmlnaHQgLnVtaS1wbHVnaW4tbGF5b3V0LWFjdGlvbjpob3ZlciwudW1pLXBsdWdpbi1sYXlvdXQtcmlnaHQgLnVtaS1wbHVnaW4tbGF5b3V0LWFjdGlvbi5vcGVuZWR7YmFja2dyb3VuZDojMDAwMDAwMDZ9LnVtaS1wbHVnaW4tbGF5b3V0LXJpZ2h0IC51bWktcGx1Z2luLWxheW91dC1zZWFyY2h7cGFkZGluZzowIDEycHh9LnVtaS1wbHVnaW4tbGF5b3V0LXJpZ2h0IC51bWktcGx1Z2luLWxheW91dC1zZWFyY2g6aG92ZXJ7YmFja2dyb3VuZDp0cmFuc3BhcmVudH0udW1pLXBsdWdpbi1sYXlvdXQtbmFtZXttYXJnaW4tbGVmdDo4cHh9LnVtaS1wbHVnaW4tbGF5b3V0LW5hbWUudW1pLXBsdWdpbi1sYXlvdXQtaGlkZS1hdmF0YXItaW1ne21hcmdpbi1sZWZ0OjB9CmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljL3RfX3BsdWdpbi1sYXlvdXRfX0xheW91dC5jM2IzYzJkZC5hc3luYy5qcyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvdF9fcGx1Z2luLWxheW91dF9fTGF5b3V0LmMzYjNjMmRkLmFzeW5jLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0OWM5OTIKLS0tIC9kZXYvbnVsbAorKysgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljL3RfX3BsdWdpbi1sYXlvdXRfX0xheW91dC5jM2IzYzJkZC5hc3luYy5qcwpAQCAtMCwwICsxIEBACisidXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W10pLnB1c2goW1s2MzAxXSx7Mjc2MjY6ZnVuY3Rpb24ob3QsTSxhKXthLnIoTSksYS5kKE0se2RlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4gbnR9fSk7dmFyICQ9YSg1NTc0KSxEPWEubigkKSx6PWEoMTk2MzIpLEU9YS5uKHopLFc9YSg5Nzg1Nyksdj1hLm4oVyksSD1hKDY0NTk5KSxQPWEubihIKSxjPWEoNzY3NzIpLGI9YSg2NzI5NCksQj1hKDg1MDQwKSx0PWEoODU4OTMpLE89ZnVuY3Rpb24oKXtyZXR1cm4oMCx0LmpzeHMpKCJzdmciLHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHdpZHRoOiIzMiIsaGVpZ2h0OiIzMiIsdmlld0JveDoiMCAwIDIwMCAyMDAiLGNoaWxkcmVuOlsoMCx0LmpzeHMpKCJkZWZzIix7Y2hpbGRyZW46WygwLHQuanN4cykoImxpbmVhckdyYWRpZW50Iix7aWQ6ImxpbmVhckdyYWRpZW50LTEiLHgxOiI2Mi4xMDIlIix4MjoiMTA4LjE5NyUiLHkxOiIwJSIseTI6IjM3Ljg2NCUiLGNoaWxkcmVuOlsoMCx0LmpzeCkoInN0b3AiLHtvZmZzZXQ6IjAlIixzdG9wQ29sb3I6IiM0Mjg1RUIifSksKDAsdC5qc3gpKCJzdG9wIix7b2Zmc2V0OiIxMDAlIixzdG9wQ29sb3I6IiMyRUM3RkYifSldfSksKDAsdC5qc3hzKSgibGluZWFyR3JhZGllbnQiLHtpZDoibGluZWFyR3JhZGllbnQtMiIseDE6IjY5LjY0NCUiLHgyOiI1NC4wNDMlIix5MToiMCUiLHkyOiIxMDguNDU3JSIsY2hpbGRyZW46WygwLHQuanN4KSgic3RvcCIse29mZnNldDoiMCUiLHN0b3BDb2xvcjoiIzI5Q0RGRiJ9KSwoMCx0LmpzeCkoInN0b3AiLHtvZmZzZXQ6IjM3Ljg2JSIsc3RvcENvbG9yOiIjMTQ4RUZGIn0pLCgwLHQuanN4KSgic3RvcCIse29mZnNldDoiMTAwJSIsc3RvcENvbG9yOiIjMEE2MEZGIn0pXX0pLCgwLHQuanN4cykoImxpbmVhckdyYWRpZW50Iix7aWQ6ImxpbmVhckdyYWRpZW50LTMiLHgxOiI2OS42OTElIix4MjoiMTYuNzIzJSIseTE6Ii0xMi45NzQlIix5MjoiMTE3LjM5MSUiLGNoaWxkcmVuOlsoMCx0LmpzeCkoInN0b3AiLHtvZmZzZXQ6IjAlIixzdG9wQ29sb3I6IiNGQTgxNkUifSksKDAsdC5qc3gpKCJzdG9wIix7b2Zmc2V0OiI0MS40NzMlIixzdG9wQ29sb3I6IiNGNzRBNUMifSksKDAsdC5qc3gpKCJzdG9wIix7b2Zmc2V0OiIxMDAlIixzdG9wQ29sb3I6IiNGNTFEMkMifSldfSksKDAsdC5qc3hzKSgibGluZWFyR3JhZGllbnQiLHtpZDoibGluZWFyR3JhZGllbnQtNCIseDE6IjY4LjEyOCUiLHgyOiIzMC40NCUiLHkxOiItMzUuNjkxJSIseTI6IjExNC45NDMlIixjaGlsZHJlbjpbKDAsdC5qc3gpKCJzdG9wIix7b2Zmc2V0OiIwJSIsc3RvcENvbG9yOiIjRkE4RTdEIn0pLCgwLHQuanN4KSgic3RvcCIse29mZnNldDoiNTEuMjY0JSIsc3RvcENvbG9yOiIjRjc0QTVDIn0pLCgwLHQuanN4KSgic3RvcCIse29mZnNldDoiMTAwJSIsc3RvcENvbG9yOiIjRjUxRDJDIn0pXX0pXX0pLCgwLHQuanN4KSgiZyIse2ZpbGw6Im5vbmUiLGZpbGxSdWxlOiJldmVub2RkIixzdHJva2U6Im5vbmUiLHN0cm9rZVdpZHRoOiIxIixjaGlsZHJlbjooMCx0LmpzeCkoImciLHt0cmFuc2Zvcm06InRyYW5zbGF0ZSgtMjAgLTIwKSIsY2hpbGRyZW46KDAsdC5qc3gpKCJnIix7dHJhbnNmb3JtOiJ0cmFuc2xhdGUoMjAgMjApIixjaGlsZHJlbjooMCx0LmpzeHMpKCJnIix7Y2hpbGRyZW46WygwLHQuanN4cykoImciLHtmaWxsUnVsZToibm9uemVybyIsY2hpbGRyZW46WygwLHQuanN4cykoImciLHtjaGlsZHJlbjpbKDAsdC5qc3gpKCJwYXRoIix7ZmlsbDoidXJsKCNsaW5lYXJHcmFkaWVudC0xKSIsZDoiTTkxLjU4OCA0LjE3N0w0LjE4IDkxLjUxM2ExMS45ODEgMTEuOTgxIDAgMDAwIDE2Ljk3NGw4Ny40MDggODcuMzM2YTEyLjAwNSAxMi4wMDUgMCAwMDE2Ljk4OSAwbDM2LjY0OC0zNi42MThjNC4yMDktNC4yMDUgNC4yMDktMTEuMDIzIDAtMTUuMjI4LTQuMjA4LTQuMjA1LTExLjAzMS00LjIwNS0xNS4yNCAwbC0yNy43ODMgMjcuNzZjLTEuMTcgMS4xNjktMi45NDUgMS4xNjktNC4xMTQgMGwtNjkuODAyLTY5Ljc0NGMtMS4xNy0xLjE2OS0xLjE3LTIuOTQyIDAtNC4xMWw2OS44MDItNjkuNzQ1YzEuMTctMS4xNjkgMi45NDQtMS4xNjkgNC4xMTQgMGwyNy43ODMgMjcuNzZjNC4yMDkgNC4yMDUgMTEuMDMyIDQuMjA1IDE1LjI0IDAgNC4yMDktNC4yMDUgNC4yMDktMTEuMDIyIDAtMTUuMjI3TDEwOC41ODEgNC4wNTZjLTQuNzE5LTQuNTk0LTEyLjMxMi00LjU1Ny0xNi45OTMuMTJ6In0pLCgwLHQuanN4KSgicGF0aCIse2ZpbGw6InVybCgjbGluZWFyR3JhZGllbnQtMikiLGQ6Ik05MS41ODggNC4xNzdMNC4xOCA5MS41MTNhMTEuOTgxIDExLjk4MSAwIDAwMCAxNi45NzRsODcuNDA4IDg3LjMzNmExMi4wMDUgMTIuMDA1IDAgMDAxNi45ODkgMGwzNi42NDgtMzYuNjE4YzQuMjA5LTQuMjA1IDQuMjA5LTExLjAyMyAwLTE1LjIyOC00LjIwOC00LjIwNS0xMS4wMzEtNC4yMDUtMTUuMjQgMGwtMjcuNzgzIDI3Ljc2Yy0xLjE3IDEuMTY5LTIuOTQ1IDEuMTY5LTQuMTE0IDBsLTY5LjgwMi02OS43NDRjLTEuMTctMS4xNjktMS4xNy0yLjk0MiAwLTQuMTFsNjkuODAyLTY5Ljc0NWMyLjkxMi0yLjUxIDcuNjY0LTcuNTk2IDE0LjY0Mi04Ljc4NiA1LjE4Ni0uODgzIDEwLjg1NSAxLjA2MiAxNy4wMDkgNS44MzdMMTA4LjU4IDQuMDU2Yy00LjcxOS00LjU5NC0xMi4zMTItNC41NTctMTYuOTkzLjEyeiJ9KV19KSwoMCx0LmpzeCkoInBhdGgiLHtmaWxsOiJ1cmwoI2xpbmVhckdyYWRpZW50LTMpIixkOiJNMTUzLjY4NiAxMzUuODU1YzQuMjA4IDQuMjA1IDExLjAzMSA0LjIwNSAxNS4yNCAwbDI3LjAzNC0yNy4wMTJjNC43LTQuNjk2IDQuNy0xMi4yOCAwLTE2Ljk3NGwtMjcuMjctMjcuMTVjLTQuMjE4LTQuMi0xMS4wNDMtNC4xOTUtMTUuMjU0LjAxMy00LjIwOSA0LjIwNS00LjIwOSAxMS4wMjIgMCAxNS4yMjdsMTguNDE4IDE4LjQwM2MxLjE3IDEuMTY5IDEuMTcgMi45NDMgMCA0LjExMWwtMTguMTY4IDE4LjE1NGMtNC4yMDkgNC4yMDUtNC4yMDkgMTEuMDIzIDAgMTUuMjI4eiJ9KV19KSwoMCx0LmpzeCkoImVsbGlwc2UiLHtjeDoiMTAwLjUxOSIsY3k6IjEwMC40MzciLGZpbGw6InVybCgjbGluZWFyR3JhZGllbnQtNCkiLHJ4OiIyMy42IixyeToiMjMuNTgxIn0pXX0pfSl9KX0pXX0pfSxUPU8sSz1hKDU5NzIwKSxrPWEoODM2MjIpLFU9ZnVuY3Rpb24oaSl7dmFyIHIsbztyZXR1cm4haS5yb3V0ZSYmKGkubm9Gb3VuZHx8aS5ub3RGb3VuZCl8fCgocj1pLnJvdXRlKT09PW51bGx8fHI9PT12b2lkIDA/dm9pZCAwOnIudW5hY2Nlc3NpYmxlKSYmKGkudW5BY2Nlc3NpYmxlfHxpLm5vQWNjZXNzaWJsZSl8fCghaS5yb3V0ZXx8KChvPWkucm91dGUpPT09bnVsbHx8bz09PXZvaWQgMD92b2lkIDA6by51bmFjY2Vzc2libGUpKSYmKDAsdC5qc3gpKEsuWlAse3N0YXR1czppLnJvdXRlPyI0MDMiOiI0MDQiLHRpdGxlOmkucm91dGU/IjQwMyI6IjQwNCIsc3ViVGl0bGU6aS5yb3V0ZT8iXHU2MkIxXHU2QjQ5XHVGRjBDXHU0RjYwXHU2NUUwXHU2NzQzXHU4QkJGXHU5NUVFXHU4QkU1XHU5ODc1XHU5NzYyIjoiXHU2MkIxXHU2QjQ5XHVGRjBDXHU0RjYwXHU4QkJGXHU5NUVFXHU3Njg0XHU5ODc1XHU5NzYyXHU0RTBEXHU1QjU4XHU1NzI4IixleHRyYTooMCx0LmpzeCkoay5aUCx7dHlwZToicHJpbWFyeSIsb25DbGljazpmdW5jdGlvbigpe3JldHVybiBjLmhpc3RvcnkucHVzaCgiLyIpfSxjaGlsZHJlbjoiXHU4RkQ0XHU1NkRFXHU5OTk2XHU5ODc1In0pfSl8fGkuY2hpbGRyZW59LFY9VSxYPWEoNjg5OTcpLFk9YSg1NzM4MSksQT1hKDY3MTU5KSxTPWEoNTAxMzYpLEo9YSg4NTQxOCksUT1hKDkwNTkxKSxMPWEoNjY5OTkpO2Z1bmN0aW9uIHcobil7dmFyIGkscixvLGQsZztpZihuLnJ1bnRpbWVDb25maWcucmlnaHRSZW5kZXIpcmV0dXJuIG4ucnVudGltZUNvbmZpZy5yaWdodFJlbmRlcihuLmluaXRpYWxTdGF0ZSxuLnNldEluaXRpYWxTdGF0ZSxuLnJ1bnRpbWVDb25maWcpO3ZhciBmPSgoaT1uLmluaXRpYWxTdGF0ZSk9PT1udWxsfHxpPT09dm9pZCAwP3ZvaWQgMDppLmF2YXRhcil8fCgocj1uLmluaXRpYWxTdGF0ZSk9PT1udWxsfHxyPT09dm9pZCAwP3ZvaWQgMDpyLm5hbWUpfHxuLnJ1bnRpbWVDb25maWcubG9nb3V0LHU9KChvPW4uaW5pdGlhbFN0YXRlKT09PW51bGx8fG89PT12b2lkIDA/dm9pZCAwOm8uYXZhdGFyKT09PSExLG09dT8idW1pLXBsdWdpbi1sYXlvdXQtbmFtZSB1bWktcGx1Z2luLWxheW91dC1oaWRlLWF2YXRhci1pbWciOiJ1bWktcGx1Z2luLWxheW91dC1uYW1lIixwPWY/KDAsdC5qc3hzKSgic3BhbiIse2NsYXNzTmFtZToidW1pLXBsdWdpbi1sYXlvdXQtYWN0aW9uIixjaGlsZHJlbjpbdT9udWxsOigwLHQuanN4KShYLlose3NpemU6InNtYWxsIixjbGFzc05hbWU6InVtaS1wbHVnaW4tbGF5b3V0LWF2YXRhciIsc3JjOigoZD1uLmluaXRpYWxTdGF0ZSk9PT1udWxsfHxkPT09dm9pZCAwP3ZvaWQgMDpkLmF2YXRhcil8fCJodHRwczovL2d3LmFsaXBheW9iamVjdHMuY29tL3pvcy9hbnRmaW5jZG4vWEFvc1h1Tlp5Ri9CaWF6ZmFueG1hbU5Sb3h4VnhrYS5wbmciLGFsdDoiYXZhdGFyIn0pLCgwLHQuanN4KSgic3BhbiIse2NsYXNzTmFtZTptLGNoaWxkcmVuOihnPW4uaW5pdGlhbFN0YXRlKT09PW51bGx8fGc9PT12b2lkIDA/dm9pZCAwOmcubmFtZX0pXX0pOm51bGw7aWYobi5sb2FkaW5nKXJldHVybigwLHQuanN4KSgiZGl2Iix7Y2xhc3NOYW1lOiJ1bWktcGx1Z2luLWxheW91dC1yaWdodCIsY2hpbGRyZW46KDAsdC5qc3gpKFkuWix7c2l6ZToic21hbGwiLHN0eWxlOnttYXJnaW5MZWZ0OjgsbWFyZ2luUmlnaHQ6OH19KX0pO3ZhciBoPXtjbGFzc05hbWU6InVtaS1wbHVnaW4tbGF5b3V0LW1lbnUiLHNlbGVjdGVkS2V5czpbXSxpdGVtczpbe2tleToibG9nb3V0IixsYWJlbDooMCx0LmpzeHMpKHQuRnJhZ21lbnQse2NoaWxkcmVuOlsoMCx0LmpzeCkoUS5aLHt9KSwiXHU5MDAwXHU1MUZBXHU3NjdCXHU1RjU1Il19KSxvbkNsaWNrOmZ1bmN0aW9uKCl7dmFyIGUsajtuPT1udWxsfHwoZT1uLnJ1bnRpbWVDb25maWcpPT09bnVsbHx8ZT09PXZvaWQgMHx8KGo9ZS5sb2dvdXQpPT09bnVsbHx8aj09PXZvaWQgMHx8ai5jYWxsKGUsbi5pbml0aWFsU3RhdGUpfX1dfSx4O3JldHVybiBBLlouc3RhcnRzV2l0aCgiNS4iKXx8QS5aLnN0YXJ0c1dpdGgoIjQuMjQuIik/eD17bWVudTpofTpBLlouc3RhcnRzV2l0aCgiMy4iKT94PXtvdmVybGF5OigwLHQuanN4KShTLlose2NoaWxkcmVuOmguaXRlbXMubWFwKGZ1bmN0aW9uKHkpe3JldHVybigwLHQuanN4KShTLlouSXRlbSx7b25DbGljazp5Lm9uQ2xpY2ssY2hpbGRyZW46eS5sYWJlbH0seS5rZXkpfSl9KX06eD17b3ZlcmxheTooMCx0LmpzeCkoUy5aLHYoKSh7fSxoKSl9LCgwLHQuanN4cykoImRpdiIse2NsYXNzTmFtZToidW1pLXBsdWdpbi1sYXlvdXQtcmlnaHQgYW50aWNvbiIsY2hpbGRyZW46W24ucnVudGltZUNvbmZpZy5sb2dvdXQ/KDAsdC5qc3gpKEouWix2KCkodigpKHt9LHgpLHt9LHtvdmVybGF5Q2xhc3NOYW1lOiJ1bWktcGx1Z2luLWxheW91dC1jb250YWluZXIiLGNoaWxkcmVuOnB9KSk6cCwoMCx0LmpzeCkoTC5wRCx7fSldfSl9dmFyIEc9YSg0NDg4NikscT1hKDgzMjI4KSxfPWZ1bmN0aW9uIG4oaSxyKXtpZihpLmxlbmd0aD09PTApcmV0dXJuW107dmFyIG89W10sZD1QKCkoaSksZzt0cnl7Zm9yKGQucygpOyEoZz1kLm4oKSkuZG9uZTspe3ZhciBmPWcudmFsdWUsdT12KCkoe30sZik7cihmKT9BcnJheS5pc0FycmF5KHUucm91dGVzKSYmby5wdXNoLmFwcGx5KG8sRSgpKG4odS5yb3V0ZXMscikpKTooQXJyYXkuaXNBcnJheSh1LmNoaWxkcmVuKSYmKHUuY2hpbGRyZW49bih1LmNoaWxkcmVuLHIpLHUucm91dGVzPXUuY2hpbGRyZW4pLG8ucHVzaCh1KSl9fWNhdGNoKG0pe2QuZShtKX1maW5hbGx5e2QuZigpfXJldHVybiBvfSx0dD1mdW5jdGlvbiBuKGkpe3JldHVybiBpLmxlbmd0aD09PTA/W106aS5tYXAoZnVuY3Rpb24ocil7dmFyIG89digpKHt9LHIpO3JldHVybiByLm9yaWdpblBhdGgmJihvLnBhdGg9ci5vcmlnaW5QYXRoKSxBcnJheS5pc0FycmF5KHIucm91dGVzKSYmKG8ucm91dGVzPW4oci5yb3V0ZXMpKSxBcnJheS5pc0FycmF5KHIuY2hpbGRyZW4pJiYoby5jaGlsZHJlbj1uKHIuY2hpbGRyZW4pKSxvfSl9LG50PWZ1bmN0aW9uKG4pe3ZhciBpPSgwLGMudXNlTG9jYXRpb24pKCkscj0oMCxjLnVzZU5hdmlnYXRlKSgpLG89KDAsYy51c2VBcHBEYXRhKSgpLGQ9by5jbGllbnRSb3V0ZXMsZz1vLnBsdWdpbk1hbmFnZXIsZj1HLnQmJigwLEcudCkoIkBAaW5pdGlhbFN0YXRlIil8fHtpbml0aWFsU3RhdGU6dm9pZCAwLGxvYWRpbmc6ITEsc2V0SW5pdGlhbFN0YXRlOm51bGx9LHU9Zi5pbml0aWFsU3RhdGUsbT1mLmxvYWRpbmcscD1mLnNldEluaXRpYWxTdGF0ZSxoPXtsb2NhbGU6ITAsbmF2VGhlbWU6ImxpZ2h0Iixjb2xvclByaW1hcnk6IiMxODkwZmYiLGxheW91dDoibWl4Iixjb250ZW50V2lkdGg6IkZsdWlkIixmaXhlZEhlYWRlcjohMSxmaXhTaWRlcmJhcjohMCxjb2xvcldlYWs6ITEsdGl0bGU6IkFudCBEZXNpZ24gUHJvIixwd2E6ITAsbG9nbzoiaHR0cHM6Ly9ndy5hbGlwYXlvYmplY3RzLmNvbS96b3Mvcm1zcG9ydGFsL0tEcGd2Z3VNcEdmcWFIUGppY1JLLnN2ZyIsaWNvbmZvbnRVcmw6IiIsdG9rZW46e319LHg9KDAsTC5ZQikoKSx5PXguZm9ybWF0TWVzc2FnZSxlPWcuYXBwbHlQbHVnaW5zKHtrZXk6ImxheW91dCIsdHlwZToibW9kaWZ5Iixpbml0aWFsVmFsdWU6digpKHt9LGYpfSksaj1fKGQuZmlsdGVyKGZ1bmN0aW9uKHMpe3JldHVybiBzLmlkPT09ImFudC1kZXNpZ24tcHJvLWxheW91dCJ9KSxmdW5jdGlvbihzKXtyZXR1cm4hIXMuaXNMYXlvdXQmJnMuaWQhPT0iYW50LWRlc2lnbi1wcm8tbGF5b3V0Inx8ISFzLmlzV3JhcHBlcn0pLGl0PSgwLHEuTWYpKHR0KGopKSxhdD1EKCkoaXQsMSksTj1hdFswXSxldD0oMCxiLnVzZU1lbW8pKGZ1bmN0aW9uKCl7dmFyIHMsbDtyZXR1cm4ocz0oMCxjLm1hdGNoUm91dGVzKShOLmNoaWxkcmVuLGkucGF0aG5hbWUpKT09PW51bGx8fHM9PT12b2lkIDB8fChsPXMucG9wKT09PW51bGx8fGw9PT12b2lkIDB8fChsPWwuY2FsbChzKSk9PT1udWxsfHxsPT09dm9pZCAwP3ZvaWQgMDpsLnJvdXRlfSxbaS5wYXRobmFtZV0pO3JldHVybigwLHQuanN4KShCLmYsdigpKHYoKSh7cm91dGU6Tixsb2NhdGlvbjppLHRpdGxlOmgudGl0bGV8fCJhbnQtZGVzaWduLXBybyIsbmF2VGhlbWU6ImRhcmsiLHNpZGVyV2lkdGg6MjU2LG9uTWVudUhlYWRlckNsaWNrOmZ1bmN0aW9uKGwpe2wuc3RvcFByb3BhZ2F0aW9uKCksbC5wcmV2ZW50RGVmYXVsdCgpLHIoIi8iKX0sZm9ybWF0TWVzc2FnZTpoLmZvcm1hdE1lc3NhZ2V8fHksbWVudTp7bG9jYWxlOmgubG9jYWxlfSxsb2dvOlQsbWVudUl0ZW1SZW5kZXI6ZnVuY3Rpb24obCxDKXtyZXR1cm4gbC5pc1VybHx8bC5jaGlsZHJlbj9DOmwucGF0aCYmaS5wYXRobmFtZSE9PWwucGF0aD8oMCx0LmpzeCkoYy5MaW5rLHt0bzpsLnBhdGgucmVwbGFjZSgiLyoiLCIiKSx0YXJnZXQ6bC50YXJnZXQsY2hpbGRyZW46Q30pOkN9LGl0ZW1SZW5kZXI6ZnVuY3Rpb24obCxDLFope3ZhciBsdD1sLmJyZWFkY3J1bWJOYW1lLHJ0PWwudGl0bGUsUj1sLnBhdGgsST1ydHx8bHQsRj1aW1oubGVuZ3RoLTFdO3JldHVybiBGJiYoRi5wYXRoPT09Unx8Ri5saW5rUGF0aD09PVIpPygwLHQuanN4KSgic3BhbiIse2NoaWxkcmVuOkl9KTooMCx0LmpzeCkoYy5MaW5rLHt0bzpSLGNoaWxkcmVuOkl9KX0sZGlzYWJsZUNvbnRlbnRNYXJnaW46ITAsZml4U2lkZXJiYXI6ITAsZml4ZWRIZWFkZXI6ITB9LGUpLHt9LHtyaWdodENvbnRlbnRSZW5kZXI6ZS5yaWdodENvbnRlbnRSZW5kZXIhPT0hMSYmZnVuY3Rpb24ocyl7dmFyIGw9dyh7cnVudGltZUNvbmZpZzplLGxvYWRpbmc6bSxpbml0aWFsU3RhdGU6dSxzZXRJbml0aWFsU3RhdGU6cH0pO3JldHVybiBlLnJpZ2h0Q29udGVudFJlbmRlcj9lLnJpZ2h0Q29udGVudFJlbmRlcihzLGwse3VzZXJDb25maWc6aCxydW50aW1lQ29uZmlnOmUsbG9hZGluZzptLGluaXRpYWxTdGF0ZTp1LHNldEluaXRpYWxTdGF0ZTpwfSk6bH0sY2hpbGRyZW46KDAsdC5qc3gpKFYse3JvdXRlOmV0LG5vRm91bmQ6ZT09bnVsbD92b2lkIDA6ZS5ub0ZvdW5kLG5vdEZvdW5kOmU9PW51bGw/dm9pZCAwOmUubm90Rm91bmQsdW5BY2Nlc3NpYmxlOmU9PW51bGw/dm9pZCAwOmUudW5BY2Nlc3NpYmxlLG5vQWNjZXNzaWJsZTplPT1udWxsP3ZvaWQgMDplLm5vQWNjZXNzaWJsZSxjaGlsZHJlbjplLmNoaWxkcmVuUmVuZGVyP2UuY2hpbGRyZW5SZW5kZXIoKDAsdC5qc3gpKGMuT3V0bGV0LHt9KSxuKTooMCx0LmpzeCkoYy5PdXRsZXQse30pfSl9KSl9fX1dKTsKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvdW1pLjI3MjAzYWM0LmpzIGIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy91bWkuMjcyMDNhYzQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGU2YzZmMgotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvdW1pLjI3MjAzYWM0LmpzCkBAIC0wLDAgKzEsMzUyIEBACishKGZ1bmN0aW9uKCl7dmFyIHFvZT1PYmplY3QuZGVmaW5lUHJvcGVydHksZWllPU9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzO3ZhciB0aWU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM7dmFyIFN1PU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7dmFyIG5pZT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LHJpZT1PYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlO3ZhciBPdT0oQWksc2ksQ2UpPT5zaSBpbiBBaT9xb2UoQWksc2kse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkNlfSk6QWlbc2ldPUNlLHhjPShBaSxzaSk9Pntmb3IodmFyIENlIGluIHNpfHwoc2k9e30pKW5pZS5jYWxsKHNpLENlKSYmT3UoQWksQ2Usc2lbQ2VdKTtpZihTdSlmb3IodmFyIENlIG9mIFN1KHNpKSlyaWUuY2FsbChzaSxDZSkmJk91KEFpLENlLHNpW0NlXSk7cmV0dXJuIEFpfSx4dT0oQWksc2kpPT5laWUoQWksdGllKHNpKSk7dmFyIEIxPShBaSxzaSxDZSk9Pm5ldyBQcm9taXNlKChDdSx5KT0+e3ZhciBwPW49Pnt0cnl7cihDZS5uZXh0KG4pKX1jYXRjaCh0KXt5KHQpfX0sZT1uPT57dHJ5e3IoQ2UudGhyb3cobikpfWNhdGNoKHQpe3kodCl9fSxyPW49Pm4uZG9uZT9DdShuLnZhbHVlKTpQcm9taXNlLnJlc29sdmUobi52YWx1ZSkudGhlbihwLGUpO3IoKENlPUNlLmFwcGx5KEFpLHNpKSkubmV4dCgpKX0pOyhmdW5jdGlvbigpe3ZhciBBaT17ODQ4OTg6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLnIocCksZS5kKHAse2JsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gen0sYmx1ZURhcms6ZnVuY3Rpb24oKXtyZXR1cm4gS30sY3lhbjpmdW5jdGlvbigpe3JldHVybiBSfSxjeWFuRGFyazpmdW5jdGlvbigpe3JldHVybiBQfSxnZWVrYmx1ZTpmdW5jdGlvbigpe3JldHVybiBHfSxnZWVrYmx1ZURhcms6ZnVuY3Rpb24oKXtyZXR1cm4gc2V9LGdlbmVyYXRlOmZ1bmN0aW9uKCl7cmV0dXJuIGd9LGdvbGQ6ZnVuY3Rpb24oKXtyZXR1cm4gVH0sZ29sZERhcms6ZnVuY3Rpb24oKXtyZXR1cm4gan0sZ3JheTpmdW5jdGlvbigpe3JldHVybiBtZX0sZ3JlZW46ZnVuY3Rpb24oKXtyZXR1cm4gSX0sZ3JlZW5EYXJrOmZ1bmN0aW9uKCl7cmV0dXJuIFp9LGdyZXk6ZnVuY3Rpb24oKXtyZXR1cm4gSn0sZ3JleURhcms6ZnVuY3Rpb24oKXtyZXR1cm4gZmV9LGxpbWU6ZnVuY3Rpb24oKXtyZXR1cm4gTH0sbGltZURhcms6ZnVuY3Rpb24oKXtyZXR1cm4gVn0sbWFnZW50YTpmdW5jdGlvbigpe3JldHVybiBlZX0sbWFnZW50YURhcms6ZnVuY3Rpb24oKXtyZXR1cm4gb2V9LG9yYW5nZTpmdW5jdGlvbigpe3JldHVybiBPfSxvcmFuZ2VEYXJrOmZ1bmN0aW9uKCl7cmV0dXJuIFd9LHByZXNldERhcmtQYWxldHRlczpmdW5jdGlvbigpe3JldHVybiBFZX0scHJlc2V0UGFsZXR0ZXM6ZnVuY3Rpb24oKXtyZXR1cm4gdGV9LHByZXNldFByaW1hcnlDb2xvcnM6ZnVuY3Rpb24oKXtyZXR1cm4gd30scHVycGxlOmZ1bmN0aW9uKCl7cmV0dXJuIFl9LHB1cnBsZURhcms6ZnVuY3Rpb24oKXtyZXR1cm4gbmV9LHJlZDpmdW5jdGlvbigpe3JldHVybiBFfSxyZWREYXJrOmZ1bmN0aW9uKCl7cmV0dXJuIGxlfSx2b2xjYW5vOmZ1bmN0aW9uKCl7cmV0dXJuIHh9LHZvbGNhbm9EYXJrOmZ1bmN0aW9uKCl7cmV0dXJuIGNlfSx5ZWxsb3c6ZnVuY3Rpb24oKXtyZXR1cm4gU30seWVsbG93RGFyazpmdW5jdGlvbigpe3JldHVybiBEfX0pO3ZhciByPWUoMTUwNjMpLG49Mix0PS4xNixpPS4wNSxzPS4wNSxhPS4xNSx1PTUsYz00LGg9W3tpbmRleDo3LGFtb3VudDoxNX0se2luZGV4OjYsYW1vdW50OjI1fSx7aW5kZXg6NSxhbW91bnQ6MzB9LHtpbmRleDo1LGFtb3VudDo0NX0se2luZGV4OjUsYW1vdW50OjY1fSx7aW5kZXg6NSxhbW91bnQ6ODV9LHtpbmRleDo0LGFtb3VudDo5MH0se2luZGV4OjMsYW1vdW50Ojk1fSx7aW5kZXg6MixhbW91bnQ6OTd9LHtpbmRleDoxLGFtb3VudDo5OH1dO2Z1bmN0aW9uIGQoUmUsQmUsWWUpe3ZhciBvdDtyZXR1cm4gTWF0aC5yb3VuZChSZS5oKT49NjAmJk1hdGgucm91bmQoUmUuaCk8PTI0MD9vdD1ZZT9NYXRoLnJvdW5kKFJlLmgpLW4qQmU6TWF0aC5yb3VuZChSZS5oKStuKkJlOm90PVllP01hdGgucm91bmQoUmUuaCkrbipCZTpNYXRoLnJvdW5kKFJlLmgpLW4qQmUsb3Q8MD9vdCs9MzYwOm90Pj0zNjAmJihvdC09MzYwKSxvdH1mdW5jdGlvbiBtKFJlLEJlLFllKXtpZihSZS5oPT09MCYmUmUucz09PTApcmV0dXJuIFJlLnM7dmFyIG90O3JldHVybiBZZT9vdD1SZS5zLXQqQmU6QmU9PT1jP290PVJlLnMrdDpvdD1SZS5zK2kqQmUsb3Q+MSYmKG90PTEpLFllJiZCZT09PXUmJm90Pi4xJiYob3Q9LjEpLG90PC4wNiYmKG90PS4wNiksTWF0aC5yb3VuZChvdCoxMDApLzEwMH1mdW5jdGlvbiBDKFJlLEJlLFllKXt2YXIgb3Q7cmV0dXJuIFllP290PVJlLnYrcypCZTpvdD1SZS52LWEqQmUsb3Q9TWF0aC5tYXgoMCxNYXRoLm1pbigxLG90KSksTWF0aC5yb3VuZChvdCoxMDApLzEwMH1mdW5jdGlvbiBnKFJlKXtmb3IodmFyIEJlPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTp7fSxZZT1bXSxvdD1uZXcgci50KFJlKSxxZT1vdC50b0hzdigpLF9lPXU7X2U+MDtfZS09MSl7dmFyIEZlPW5ldyByLnQoe2g6ZChxZSxfZSwhMCksczptKHFlLF9lLCEwKSx2OkMocWUsX2UsITApfSk7WWUucHVzaChGZSl9WWUucHVzaChvdCk7Zm9yKHZhciBTZT0xO1NlPD1jO1NlKz0xKXt2YXIgcT1uZXcgci50KHtoOmQocWUsU2UpLHM6bShxZSxTZSksdjpDKHFlLFNlKX0pO1llLnB1c2gocSl9cmV0dXJuIEJlLnRoZW1lPT09ImRhcmsiP2gubWFwKGZ1bmN0aW9uKGspe3ZhciBNPWsuaW5kZXgsQT1rLmFtb3VudDtyZXR1cm4gbmV3IHIudChCZS5iYWNrZ3JvdW5kQ29sb3J8fCIjMTQxNDE0IikubWl4KFllW01dLEEpLnRvSGV4U3RyaW5nKCl9KTpZZS5tYXAoZnVuY3Rpb24oayl7cmV0dXJuIGsudG9IZXhTdHJpbmcoKX0pfXZhciB3PXtyZWQ6IiNGNTIyMkQiLHZvbGNhbm86IiNGQTU0MUMiLG9yYW5nZToiI0ZBOEMxNiIsZ29sZDoiI0ZBQUQxNCIseWVsbG93OiIjRkFEQjE0IixsaW1lOiIjQTBEOTExIixncmVlbjoiIzUyQzQxQSIsY3lhbjoiIzEzQzJDMiIsYmx1ZToiIzE2NzdGRiIsZ2Vla2JsdWU6IiMyRjU0RUIiLHB1cnBsZToiIzcyMkVEMSIsbWFnZW50YToiI0VCMkY5NiIsZ3JleToiIzY2NjY2NiJ9LEU9WyIjZmZmMWYwIiwiI2ZmY2NjNyIsIiNmZmEzOWUiLCIjZmY3ODc1IiwiI2ZmNGQ0ZiIsIiNmNTIyMmQiLCIjY2YxMzIyIiwiI2E4MDcxYSIsIiM4MjAwMTQiLCIjNWMwMDExIl07RS5wcmltYXJ5PUVbNV07dmFyIHg9WyIjZmZmMmU4IiwiI2ZmZDhiZiIsIiNmZmJiOTYiLCIjZmY5YzZlIiwiI2ZmN2E0NSIsIiNmYTU0MWMiLCIjZDQzODBkIiwiI2FkMjEwMiIsIiM4NzE0MDAiLCIjNjEwYjAwIl07eC5wcmltYXJ5PXhbNV07dmFyIE89WyIjZmZmN2U2IiwiI2ZmZTdiYSIsIiNmZmQ1OTEiLCIjZmZjMDY5IiwiI2ZmYTk0MCIsIiNmYThjMTYiLCIjZDQ2YjA4IiwiI2FkNGUwMCIsIiM4NzM4MDAiLCIjNjEyNTAwIl07Ty5wcmltYXJ5PU9bNV07dmFyIFQ9WyIjZmZmYmU2IiwiI2ZmZjFiOCIsIiNmZmU1OGYiLCIjZmZkNjY2IiwiI2ZmYzUzZCIsIiNmYWFkMTQiLCIjZDQ4ODA2IiwiI2FkNjgwMCIsIiM4NzRkMDAiLCIjNjEzNDAwIl07VC5wcmltYXJ5PVRbNV07dmFyIFM9WyIjZmVmZmU2IiwiI2ZmZmZiOCIsIiNmZmZiOGYiLCIjZmZmNTY2IiwiI2ZmZWMzZCIsIiNmYWRiMTQiLCIjZDRiMTA2IiwiI2FkOGIwMCIsIiM4NzY4MDAiLCIjNjE0NzAwIl07Uy5wcmltYXJ5PVNbNV07dmFyIEw9WyIjZmNmZmU2IiwiI2Y0ZmZiOCIsIiNlYWZmOGYiLCIjZDNmMjYxIiwiI2JhZTYzNyIsIiNhMGQ5MTEiLCIjN2NiMzA1IiwiIzViOGMwMCIsIiMzZjY2MDAiLCIjMjU0MDAwIl07TC5wcmltYXJ5PUxbNV07dmFyIEk9WyIjZjZmZmVkIiwiI2Q5ZjdiZSIsIiNiN2ViOGYiLCIjOTVkZTY0IiwiIzczZDEzZCIsIiM1MmM0MWEiLCIjMzg5ZTBkIiwiIzIzNzgwNCIsIiMxMzUyMDAiLCIjMDkyYjAwIl07SS5wcmltYXJ5PUlbNV07dmFyIFI9WyIjZTZmZmZiIiwiI2I1ZjVlYyIsIiM4N2U4ZGUiLCIjNWNkYmQzIiwiIzM2Y2ZjOSIsIiMxM2MyYzIiLCIjMDg5NzljIiwiIzAwNmQ3NSIsIiMwMDQ3NGYiLCIjMDAyMzI5Il07Ui5wcmltYXJ5PVJbNV07dmFyIHo9WyIjZTZmNGZmIiwiI2JhZTBmZiIsIiM5MWNhZmYiLCIjNjliMWZmIiwiIzQwOTZmZiIsIiMxNjc3ZmYiLCIjMDk1OGQ5IiwiIzAwM2ViMyIsIiMwMDJjOGMiLCIjMDAxZDY2Il07ei5wcmltYXJ5PXpbNV07dmFyIEc9WyIjZjBmNWZmIiwiI2Q2ZTRmZiIsIiNhZGM2ZmYiLCIjODVhNWZmIiwiIzU5N2VmNyIsIiMyZjU0ZWIiLCIjMWQzOWM0IiwiIzEwMjM5ZSIsIiMwNjExNzgiLCIjMDMwODUyIl07Ry5wcmltYXJ5PUdbNV07dmFyIFk9WyIjZjlmMGZmIiwiI2VmZGJmZiIsIiNkM2FkZjciLCIjYjM3ZmViIiwiIzkyNTRkZSIsIiM3MjJlZDEiLCIjNTMxZGFiIiwiIzM5MTA4NSIsIiMyMjA3NWUiLCIjMTIwMzM4Il07WS5wcmltYXJ5PVlbNV07dmFyIGVlPVsiI2ZmZjBmNiIsIiNmZmQ2ZTciLCIjZmZhZGQyIiwiI2ZmODVjMCIsIiNmNzU5YWIiLCIjZWIyZjk2IiwiI2M0MWQ3ZiIsIiM5ZTEwNjgiLCIjNzgwNjUwIiwiIzUyMDMzOSJdO2VlLnByaW1hcnk9ZWVbNV07dmFyIEo9WyIjYTZhNmE2IiwiIzk5OTk5OSIsIiM4YzhjOGMiLCIjODA4MDgwIiwiIzczNzM3MyIsIiM2NjY2NjYiLCIjNDA0MDQwIiwiIzFhMWExYSIsIiMwMDAwMDAiLCIjMDAwMDAwIl07Si5wcmltYXJ5PUpbNV07dmFyIG1lPUosdGU9e3JlZDpFLHZvbGNhbm86eCxvcmFuZ2U6Tyxnb2xkOlQseWVsbG93OlMsbGltZTpMLGdyZWVuOkksY3lhbjpSLGJsdWU6eixnZWVrYmx1ZTpHLHB1cnBsZTpZLG1hZ2VudGE6ZWUsZ3JleTpKfSxsZT1bIiMyYTEyMTUiLCIjNDMxNDE4IiwiIzU4MTgxYyIsIiM3OTFhMWYiLCIjYTYxZDI0IiwiI2QzMjAyOSIsIiNlODQ3NDkiLCIjZjM3MzcwIiwiI2Y4OWY5YSIsIiNmYWM4YzMiXTtsZS5wcmltYXJ5PWxlWzVdO3ZhciBjZT1bIiMyYjE2MTEiLCIjNDQxZDEyIiwiIzU5MjcxNiIsIiM3YzMxMTgiLCIjYWEzZTE5IiwiI2Q4NGExYiIsIiNlODcwNDAiLCIjZjM5NTZhIiwiI2Y4YjY5MiIsIiNmYWQ0YmMiXTtjZS5wcmltYXJ5PWNlWzVdO3ZhciBXPVsiIzJiMWQxMSIsIiM0NDJhMTEiLCIjNTkzODE1IiwiIzdjNGExNSIsIiNhYTYyMTUiLCIjZDg3YTE2IiwiI2U4OWEzYyIsIiNmM2I3NjUiLCIjZjhjZjhkIiwiI2ZhZTNiNyJdO1cucHJpbWFyeT1XWzVdO3ZhciBqPVsiIzJiMjExMSIsIiM0NDMxMTEiLCIjNTk0MjE0IiwiIzdjNTkxNCIsIiNhYTc3MTQiLCIjZDg5NjE0IiwiI2U4YjMzOSIsIiNmM2NjNjIiLCIjZjhkZjhiIiwiI2ZhZWRiNSJdO2oucHJpbWFyeT1qWzVdO3ZhciBEPVsiIzJiMjYxMSIsIiM0NDNiMTEiLCIjNTk1MDE0IiwiIzdjNmUxNCIsIiNhYTk1MTQiLCIjZDhiZDE0IiwiI2U4ZDYzOSIsIiNmM2VhNjIiLCIjZjhmNDhiIiwiI2ZhZmFiNSJdO0QucHJpbWFyeT1EWzVdO3ZhciBWPVsiIzFmMjYxMSIsIiMyZTNjMTAiLCIjM2U0ZjEzIiwiIzUzNmQxMyIsIiM2Zjk0MTIiLCIjOGJiYjExIiwiI2E5ZDEzNCIsIiNjOWU3NWQiLCIjZTRmODhiIiwiI2YwZmFiNSJdO1YucHJpbWFyeT1WWzVdO3ZhciBaPVsiIzE2MjMxMiIsIiMxZDM3MTIiLCIjMjc0OTE2IiwiIzMwNjMxNyIsIiMzYzg2MTgiLCIjNDlhYTE5IiwiIzZhYmUzOSIsIiM4ZmQ0NjAiLCIjYjJlNThiIiwiI2Q1ZjJiYiJdO1oucHJpbWFyeT1aWzVdO3ZhciBQPVsiIzExMjEyMyIsIiMxMTM1MzYiLCIjMTQ0ODQ4IiwiIzE0NjI2MiIsIiMxMzg1ODUiLCIjMTNhOGE4IiwiIzMzYmNiNyIsIiM1OGQxYzkiLCIjODRlMmQ4IiwiI2IyZjFlOCJdO1AucHJpbWFyeT1QWzVdO3ZhciBLPVsiIzExMWEyYyIsIiMxMTI1NDUiLCIjMTUzMjViIiwiIzE1NDE3ZSIsIiMxNTU0YWQiLCIjMTY2OGRjIiwiIzNjODllOCIsIiM2NWE5ZjMiLCIjOGRjNWY4IiwiI2I3ZGNmYSJdO0sucHJpbWFyeT1LWzVdO3ZhciBzZT1bIiMxMzE2MjkiLCIjMTYxZDQwIiwiIzFjMjc1NSIsIiMyMDMxNzUiLCIjMjYzZWEwIiwiIzJiNGFjYiIsIiM1MjczZTAiLCIjN2Y5ZWYzIiwiI2E4YzFmOCIsIiNkMmUwZmEiXTtzZS5wcmltYXJ5PXNlWzVdO3ZhciBuZT1bIiMxYTEzMjUiLCIjMjQxNjNhIiwiIzMwMWM0ZCIsIiMzZTIwNjkiLCIjNTEyNThmIiwiIzY0MmFiNSIsIiM4NTRlY2EiLCIjYWI3YWUwIiwiI2NkYThmMCIsIiNlYmQ3ZmEiXTtuZS5wcmltYXJ5PW5lWzVdO3ZhciBvZT1bIiMyOTEzMjEiLCIjNDAxNjJmIiwiIzU1MWMzYiIsIiM3NTIwNGYiLCIjYTAyNjY5IiwiI2NiMmI4MyIsIiNlMDUyOWMiLCIjZjM3ZmI3IiwiI2Y4YThjYyIsIiNmYWQyZTMiXTtvZS5wcmltYXJ5PW9lWzVdO3ZhciBmZT1bIiMxNTE1MTUiLCIjMWYxZjFmIiwiIzJkMmQyZCIsIiMzOTM5MzkiLCIjNDk0OTQ5IiwiIzVhNWE1YSIsIiM2YTZhNmEiLCIjN2I3YjdiIiwiIzg4ODg4OCIsIiM5Njk2OTYiXTtmZS5wcmltYXJ5PWZlWzVdO3ZhciBFZT17cmVkOmxlLHZvbGNhbm86Y2Usb3JhbmdlOlcsZ29sZDpqLHllbGxvdzpELGxpbWU6VixncmVlbjpaLGN5YW46UCxibHVlOkssZ2Vla2JsdWU6c2UscHVycGxlOm5lLG1hZ2VudGE6b2UsZ3JleTpmZX19LDgzMjYyOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse3JiOmZ1bmN0aW9uKCl7cmV0dXJuIG90fSxJWDpmdW5jdGlvbigpe3JldHVybiB0ZX19KTt2YXIgcj1lKDcxMDAyKSxuPWUoOTc2ODUpLHQ9ZSg0OTQyKSxpPWUoMTQxMykscz1lKDY3Mjk0KSxhPWUoMTE1NjgpLHU9ZSgxNTY3MSksYz1lKDQzMTQ0KSxoPWUoOTczMjYpLGQ9ZSg2MDEzNiksbT1lKDI5Mzg4KSxDPSgwLGMuWikoZnVuY3Rpb24gcWUoKXsoMCx1LlopKHRoaXMscWUpfSksZz1DLHc9IkNBTENfVU5JVCIsRT1uZXcgUmVnRXhwKHcsImciKTtmdW5jdGlvbiB4KHFlKXtyZXR1cm4gdHlwZW9mIHFlPT0ibnVtYmVyIj8iIi5jb25jYXQocWUpLmNvbmNhdCh3KTpxZX12YXIgTz1mdW5jdGlvbihxZSl7KDAsZC5aKShGZSxxZSk7dmFyIF9lPSgwLG0uWikoRmUpO2Z1bmN0aW9uIEZlKFNlLHEpe3ZhciBrOygwLHUuWikodGhpcyxGZSksaz1fZS5jYWxsKHRoaXMpLCgwLHQuWikoKDAsaC5aKShrKSwicmVzdWx0IiwiIiksKDAsdC5aKSgoMCxoLlopKGspLCJ1bml0bGVzc0Nzc1ZhciIsdm9pZCAwKSwoMCx0LlopKCgwLGguWikoayksImxvd1ByaW9yaXR5Iix2b2lkIDApO3ZhciBNPSgwLHIuWikoU2UpO3JldHVybiBrLnVuaXRsZXNzQ3NzVmFyPXEsU2UgaW5zdGFuY2VvZiBGZT9rLnJlc3VsdD0iKCIuY29uY2F0KFNlLnJlc3VsdCwiKSIpOk09PT0ibnVtYmVyIj9rLnJlc3VsdD14KFNlKTpNPT09InN0cmluZyImJihrLnJlc3VsdD1TZSksa31yZXR1cm4oMCxjLlopKEZlLFt7a2V5OiJhZGQiLHZhbHVlOmZ1bmN0aW9uKHEpe3JldHVybiBxIGluc3RhbmNlb2YgRmU/dGhpcy5yZXN1bHQ9IiIuY29uY2F0KHRoaXMucmVzdWx0LCIgKyAiKS5jb25jYXQocS5nZXRSZXN1bHQoKSk6KHR5cGVvZiBxPT0ibnVtYmVyInx8dHlwZW9mIHE9PSJzdHJpbmciKSYmKHRoaXMucmVzdWx0PSIiLmNvbmNhdCh0aGlzLnJlc3VsdCwiICsgIikuY29uY2F0KHgocSkpKSx0aGlzLmxvd1ByaW9yaXR5PSEwLHRoaXN9fSx7a2V5OiJzdWIiLHZhbHVlOmZ1bmN0aW9uKHEpe3JldHVybiBxIGluc3RhbmNlb2YgRmU/dGhpcy5yZXN1bHQ9IiIuY29uY2F0KHRoaXMucmVzdWx0LCIgLSAiKS5jb25jYXQocS5nZXRSZXN1bHQoKSk6KHR5cGVvZiBxPT0ibnVtYmVyInx8dHlwZW9mIHE9PSJzdHJpbmciKSYmKHRoaXMucmVzdWx0PSIiLmNvbmNhdCh0aGlzLnJlc3VsdCwiIC0gIikuY29uY2F0KHgocSkpKSx0aGlzLmxvd1ByaW9yaXR5PSEwLHRoaXN9fSx7a2V5OiJtdWwiLHZhbHVlOmZ1bmN0aW9uKHEpe3JldHVybiB0aGlzLmxvd1ByaW9yaXR5JiYodGhpcy5yZXN1bHQ9IigiLmNvbmNhdCh0aGlzLnJlc3VsdCwiKSIpKSxxIGluc3RhbmNlb2YgRmU/dGhpcy5yZXN1bHQ9IiIuY29uY2F0KHRoaXMucmVzdWx0LCIgKiAiKS5jb25jYXQocS5nZXRSZXN1bHQoITApKToodHlwZW9mIHE9PSJudW1iZXIifHx0eXBlb2YgcT09InN0cmluZyIpJiYodGhpcy5yZXN1bHQ9IiIuY29uY2F0KHRoaXMucmVzdWx0LCIgKiAiKS5jb25jYXQocSkpLHRoaXMubG93UHJpb3JpdHk9ITEsdGhpc319LHtrZXk6ImRpdiIsdmFsdWU6ZnVuY3Rpb24ocSl7cmV0dXJuIHRoaXMubG93UHJpb3JpdHkmJih0aGlzLnJlc3VsdD0iKCIuY29uY2F0KHRoaXMucmVzdWx0LCIpIikpLHEgaW5zdGFuY2VvZiBGZT90aGlzLnJlc3VsdD0iIi5jb25jYXQodGhpcy5yZXN1bHQsIiAvICIpLmNvbmNhdChxLmdldFJlc3VsdCghMCkpOih0eXBlb2YgcT09Im51bWJlciJ8fHR5cGVvZiBxPT0ic3RyaW5nIikmJih0aGlzLnJlc3VsdD0iIi5jb25jYXQodGhpcy5yZXN1bHQsIiAvICIpLmNvbmNhdChxKSksdGhpcy5sb3dQcmlvcml0eT0hMSx0aGlzfX0se2tleToiZ2V0UmVzdWx0Iix2YWx1ZTpmdW5jdGlvbihxKXtyZXR1cm4gdGhpcy5sb3dQcmlvcml0eXx8cT8iKCIuY29uY2F0KHRoaXMucmVzdWx0LCIpIik6dGhpcy5yZXN1bHR9fSx7a2V5OiJlcXVhbCIsdmFsdWU6ZnVuY3Rpb24ocSl7dmFyIGs9dGhpcyxNPXF8fHt9LEE9TS51bml0LFU9ITA7cmV0dXJuIHR5cGVvZiBBPT0iYm9vbGVhbiI/VT1BOkFycmF5LmZyb20odGhpcy51bml0bGVzc0Nzc1Zhcikuc29tZShmdW5jdGlvbihOKXtyZXR1cm4gay5yZXN1bHQuaW5jbHVkZXMoTil9KSYmKFU9ITEpLHRoaXMucmVzdWx0PXRoaXMucmVzdWx0LnJlcGxhY2UoRSxVPyJweCI6IiIpLHR5cGVvZiB0aGlzLmxvd1ByaW9yaXR5IT0idW5kZWZpbmVkIj8iY2FsYygiLmNvbmNhdCh0aGlzLnJlc3VsdCwiKSIpOnRoaXMucmVzdWx0fX1dKSxGZX0oZyksVD1mdW5jdGlvbihxZSl7KDAsZC5aKShGZSxxZSk7dmFyIF9lPSgwLG0uWikoRmUpO2Z1bmN0aW9uIEZlKFNlKXt2YXIgcTtyZXR1cm4oMCx1LlopKHRoaXMsRmUpLHE9X2UuY2FsbCh0aGlzKSwoMCx0LlopKCgwLGguWikocSksInJlc3VsdCIsMCksU2UgaW5zdGFuY2VvZiBGZT9xLnJlc3VsdD1TZS5yZXN1bHQ6dHlwZW9mIFNlPT0ibnVtYmVyIiYmKHEucmVzdWx0PVNlKSxxfXJldHVybigwLGMuWikoRmUsW3trZXk6ImFkZCIsdmFsdWU6ZnVuY3Rpb24ocSl7cmV0dXJuIHEgaW5zdGFuY2VvZiBGZT90aGlzLnJlc3VsdCs9cS5yZXN1bHQ6dHlwZW9mIHE9PSJudW1iZXIiJiYodGhpcy5yZXN1bHQrPXEpLHRoaXN9fSx7a2V5OiJzdWIiLHZhbHVlOmZ1bmN0aW9uKHEpe3JldHVybiBxIGluc3RhbmNlb2YgRmU/dGhpcy5yZXN1bHQtPXEucmVzdWx0OnR5cGVvZiBxPT0ibnVtYmVyIiYmKHRoaXMucmVzdWx0LT1xKSx0aGlzfX0se2tleToibXVsIix2YWx1ZTpmdW5jdGlvbihxKXtyZXR1cm4gcSBpbnN0YW5jZW9mIEZlP3RoaXMucmVzdWx0Kj1xLnJlc3VsdDp0eXBlb2YgcT09Im51bWJlciImJih0aGlzLnJlc3VsdCo9cSksdGhpc319LHtrZXk6ImRpdiIsdmFsdWU6ZnVuY3Rpb24ocSl7cmV0dXJuIHEgaW5zdGFuY2VvZiBGZT90aGlzLnJlc3VsdC89cS5yZXN1bHQ6dHlwZW9mIHE9PSJudW1iZXIiJiYodGhpcy5yZXN1bHQvPXEpLHRoaXN9fSx7a2V5OiJlcXVhbCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZXN1bHR9fV0pLEZlfShnKSxTPVQsTD1mdW5jdGlvbihfZSxGZSl7dmFyIFNlPV9lPT09ImNzcyI/TzpTO3JldHVybiBmdW5jdGlvbihxKXtyZXR1cm4gbmV3IFNlKHEsRmUpfX0sST1MLFI9ZnVuY3Rpb24oX2UsRmUpe3JldHVybiIiLmNvbmNhdChbRmUsX2UucmVwbGFjZSgvKFtBLVpdKykoW0EtWl1bYS16XSspL2csIiQxLSQyIikucmVwbGFjZSgvKFthLXpdKShbQS1aXSkvZywiJDEtJDIiKV0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oIi0iKSl9LHo9UixHPWUoNTY3OTApO2Z1bmN0aW9uIFkocWUsX2UsRmUsU2Upe3ZhciBxPSgwLGkuWikoe30sX2VbcWVdKTtpZihTZSE9bnVsbCYmU2UuZGVwcmVjYXRlZFRva2Vucyl7dmFyIGs9U2UuZGVwcmVjYXRlZFRva2VucztrLmZvckVhY2goZnVuY3Rpb24oQSl7dmFyIFU9KDAsbi5aKShBLDIpLE49VVswXSxRPVVbMV07aWYocSE9bnVsbCYmcVtOXXx8cSE9bnVsbCYmcVtRXSl7dmFyIHVlOyh1ZT1xW1FdKSE9PW51bGwmJnVlIT09dm9pZCAwfHwocVtRXT1xPT1udWxsP3ZvaWQgMDpxW05dKX19KX12YXIgTT0oMCxpLlopKCgwLGkuWikoe30sRmUpLHEpO3JldHVybiBPYmplY3Qua2V5cyhNKS5mb3JFYWNoKGZ1bmN0aW9uKEEpe01bQV09PT1fZVtBXSYmZGVsZXRlIE1bQV19KSxNfXZhciBlZT1ZLEo9dHlwZW9mIENTU0lOSlNfU1RBVElTVElDIT0idW5kZWZpbmVkIixtZT0hMDtmdW5jdGlvbiB0ZSgpe2Zvcih2YXIgcWU9YXJndW1lbnRzLmxlbmd0aCxfZT1uZXcgQXJyYXkocWUpLEZlPTA7RmU8cWU7RmUrKylfZVtGZV09YXJndW1lbnRzW0ZlXTtpZighSilyZXR1cm4gT2JqZWN0LmFzc2lnbi5hcHBseShPYmplY3QsW3t9XS5jb25jYXQoX2UpKTttZT0hMTt2YXIgU2U9e307cmV0dXJuIF9lLmZvckVhY2goZnVuY3Rpb24ocSl7aWYoKDAsci5aKShxKT09PSJvYmplY3QiKXt2YXIgaz1PYmplY3Qua2V5cyhxKTtrLmZvckVhY2goZnVuY3Rpb24oTSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KFNlLE0se2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBxW01dfX0pfSl9fSksbWU9ITAsU2V9dmFyIGxlPXt9LGNlPXt9O2Z1bmN0aW9uIFcoKXt9dmFyIGo9ZnVuY3Rpb24oX2Upe3ZhciBGZSxTZT1fZSxxPVc7cmV0dXJuIEomJnR5cGVvZiBQcm94eSE9InVuZGVmaW5lZCImJihGZT1uZXcgU2V0LFNlPW5ldyBQcm94eShfZSx7Z2V0OmZ1bmN0aW9uKE0sQSl7aWYobWUpe3ZhciBVOyhVPUZlKT09PW51bGx8fFU9PT12b2lkIDB8fFUuYWRkKEEpfXJldHVybiBNW0FdfX0pLHE9ZnVuY3Rpb24oTSxBKXt2YXIgVTtsZVtNXT17Z2xvYmFsOkFycmF5LmZyb20oRmUpLGNvbXBvbmVudDooMCxpLlopKCgwLGkuWikoe30sKFU9bGVbTV0pPT09bnVsbHx8VT09PXZvaWQgMD92b2lkIDA6VS5jb21wb25lbnQpLEEpfX0pLHt0b2tlbjpTZSxrZXlzOkZlLGZsdXNoOnF9fSxEPWo7ZnVuY3Rpb24gVihxZSxfZSxGZSl7aWYodHlwZW9mIEZlPT0iZnVuY3Rpb24iKXt2YXIgU2U7cmV0dXJuIEZlKHRlKF9lLChTZT1fZVtxZV0pIT09bnVsbCYmU2UhPT12b2lkIDA/U2U6e30pKX1yZXR1cm4gRmUhPW51bGw/RmU6e319dmFyIFo9VjtmdW5jdGlvbiBQKHFlKXtyZXR1cm4gcWU9PT0ianMiP3ttYXg6TWF0aC5tYXgsbWluOk1hdGgubWlufTp7bWF4OmZ1bmN0aW9uKCl7Zm9yKHZhciBGZT1hcmd1bWVudHMubGVuZ3RoLFNlPW5ldyBBcnJheShGZSkscT0wO3E8RmU7cSsrKVNlW3FdPWFyZ3VtZW50c1txXTtyZXR1cm4ibWF4KCIuY29uY2F0KFNlLm1hcChmdW5jdGlvbihrKXtyZXR1cm4oMCxhLmJmKShrKX0pLmpvaW4oIiwiKSwiKSIpfSxtaW46ZnVuY3Rpb24oKXtmb3IodmFyIEZlPWFyZ3VtZW50cy5sZW5ndGgsU2U9bmV3IEFycmF5KEZlKSxxPTA7cTxGZTtxKyspU2VbcV09YXJndW1lbnRzW3FdO3JldHVybiJtaW4oIi5jb25jYXQoU2UubWFwKGZ1bmN0aW9uKGspe3JldHVybigwLGEuYmYpKGspfSkuam9pbigiLCIpLCIpIil9fX12YXIgSz1QLHNlPTFlMyo2MCoxMCxuZT1mdW5jdGlvbigpe2Z1bmN0aW9uIHFlKCl7KDAsdS5aKSh0aGlzLHFlKSwoMCx0LlopKHRoaXMsIm1hcCIsbmV3IE1hcCksKDAsdC5aKSh0aGlzLCJvYmplY3RJRE1hcCIsbmV3IFdlYWtNYXApLCgwLHQuWikodGhpcywibmV4dElEIiwwKSwoMCx0LlopKHRoaXMsImxhc3RBY2Nlc3NCZWF0IixuZXcgTWFwKSwoMCx0LlopKHRoaXMsImFjY2Vzc0JlYXQiLDApfXJldHVybigwLGMuWikocWUsW3trZXk6InNldCIsdmFsdWU6ZnVuY3Rpb24oRmUsU2Upe3RoaXMuY2xlYXIoKTt2YXIgcT10aGlzLmdldENvbXBvc2l0ZUtleShGZSk7dGhpcy5tYXAuc2V0KHEsU2UpLHRoaXMubGFzdEFjY2Vzc0JlYXQuc2V0KHEsRGF0ZS5ub3coKSl9fSx7a2V5OiJnZXQiLHZhbHVlOmZ1bmN0aW9uKEZlKXt2YXIgU2U9dGhpcy5nZXRDb21wb3NpdGVLZXkoRmUpLHE9dGhpcy5tYXAuZ2V0KFNlKTtyZXR1cm4gdGhpcy5sYXN0QWNjZXNzQmVhdC5zZXQoU2UsRGF0ZS5ub3coKSksdGhpcy5hY2Nlc3NCZWF0Kz0xLHF9fSx7a2V5OiJnZXRDb21wb3NpdGVLZXkiLHZhbHVlOmZ1bmN0aW9uKEZlKXt2YXIgU2U9dGhpcyxxPUZlLm1hcChmdW5jdGlvbihrKXtyZXR1cm4gayYmKDAsci5aKShrKT09PSJvYmplY3QiPyJvYmpfIi5jb25jYXQoU2UuZ2V0T2JqZWN0SUQoaykpOiIiLmNvbmNhdCgoMCxyLlopKGspLCJfIikuY29uY2F0KGspfSk7cmV0dXJuIHEuam9pbigifCIpfX0se2tleToiZ2V0T2JqZWN0SUQiLHZhbHVlOmZ1bmN0aW9uKEZlKXtpZih0aGlzLm9iamVjdElETWFwLmhhcyhGZSkpcmV0dXJuIHRoaXMub2JqZWN0SURNYXAuZ2V0KEZlKTt2YXIgU2U9dGhpcy5uZXh0SUQ7cmV0dXJuIHRoaXMub2JqZWN0SURNYXAuc2V0KEZlLFNlKSx0aGlzLm5leHRJRCs9MSxTZX19LHtrZXk6ImNsZWFyIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBGZT10aGlzO2lmKHRoaXMuYWNjZXNzQmVhdD4xZTQpe3ZhciBTZT1EYXRlLm5vdygpO3RoaXMubGFzdEFjY2Vzc0JlYXQuZm9yRWFjaChmdW5jdGlvbihxLGspe1NlLXE+c2UmJihGZS5tYXAuZGVsZXRlKGspLEZlLmxhc3RBY2Nlc3NCZWF0LmRlbGV0ZShrKSl9KSx0aGlzLmFjY2Vzc0JlYXQ9MH19fV0pLHFlfSgpLG9lPW5ldyBuZTtmdW5jdGlvbiBmZShxZSxfZSl7cmV0dXJuIHMudXNlTWVtbyhmdW5jdGlvbigpe3ZhciBGZT1vZS5nZXQoX2UpO2lmKEZlKXJldHVybiBGZTt2YXIgU2U9cWUoKTtyZXR1cm4gb2Uuc2V0KF9lLFNlKSxTZX0sX2UpfXZhciBFZT1mZSxSZT1mdW5jdGlvbigpe3JldHVybnt9fSxCZT1SZTtmdW5jdGlvbiBZZShxZSl7dmFyIF9lPXFlLnVzZUNTUCxGZT1fZT09PXZvaWQgMD9CZTpfZSxTZT1xZS51c2VUb2tlbixxPXFlLnVzZVByZWZpeCxrPXFlLmdldFJlc2V0U3R5bGVzLE09cWUuZ2V0Q29tbW9uU3R5bGUsQT1xZS5nZXRDb21wVW5pdGxlc3M7ZnVuY3Rpb24gVSgkLF8scGUscmUpe3ZhciBhZT1BcnJheS5pc0FycmF5KCQpPyRbMF06JDtmdW5jdGlvbiB3ZSh0dCl7cmV0dXJuIiIuY29uY2F0KFN0cmluZyhhZSkpLmNvbmNhdCh0dC5zbGljZSgwLDEpLnRvVXBwZXJDYXNlKCkpLmNvbmNhdCh0dC5zbGljZSgxKSl9dmFyIExlPShyZT09bnVsbD92b2lkIDA6cmUudW5pdGxlc3MpfHx7fSxNZT10eXBlb2YgQT09ImZ1bmN0aW9uIj9BKCQpOnt9LGJlPSgwLGkuWikoKDAsaS5aKSh7fSxNZSkse30sKDAsdC5aKSh7fSx3ZSgiekluZGV4UG9wdXAiKSwhMCkpO09iamVjdC5rZXlzKExlKS5mb3JFYWNoKGZ1bmN0aW9uKHR0KXtiZVt3ZSh0dCldPUxlW3R0XX0pO3ZhciAkZT0oMCxpLlopKCgwLGkuWikoe30scmUpLHt9LHt1bml0bGVzczpiZSxwcmVmaXhUb2tlbjp3ZX0pLGtlPVEoJCxfLHBlLCRlKSxBZT1OKGFlLHBlLCRlKTtyZXR1cm4gZnVuY3Rpb24odHQpe3ZhciBtdD1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06dHQsdXQ9a2UodHQsbXQpLERlPSgwLG4uWikodXQsMiksTmU9RGVbMV0sWGU9QWUobXQpLEplPSgwLG4uWikoWGUsMiksZ3Q9SmVbMF0sZGU9SmVbMV07cmV0dXJuW2d0LE5lLGRlXX19ZnVuY3Rpb24gTigkLF8scGUpe3ZhciByZT1wZS51bml0bGVzcyxhZT1wZS5pbmplY3RTdHlsZSx3ZT1hZT09PXZvaWQgMD8hMDphZSxMZT1wZS5wcmVmaXhUb2tlbixNZT1wZS5pZ25vcmUsYmU9ZnVuY3Rpb24oQWUpe3ZhciB0dD1BZS5yb290Q2xzLG10PUFlLmNzc1Zhcix1dD1tdD09PXZvaWQgMD97fTptdCxEZT1TZSgpLE5lPURlLnJlYWxUb2tlbjtyZXR1cm4oMCxhLkNJKSh7cGF0aDpbJF0scHJlZml4OnV0LnByZWZpeCxrZXk6dXQua2V5LHVuaXRsZXNzOnJlLGlnbm9yZTpNZSx0b2tlbjpOZSxzY29wZTp0dH0sZnVuY3Rpb24oKXt2YXIgWGU9WigkLE5lLF8pLEplPWVlKCQsTmUsWGUse2RlcHJlY2F0ZWRUb2tlbnM6cGU9PW51bGw/dm9pZCAwOnBlLmRlcHJlY2F0ZWRUb2tlbnN9KTtyZXR1cm4gT2JqZWN0LmtleXMoWGUpLmZvckVhY2goZnVuY3Rpb24oZ3Qpe0plW0xlKGd0KV09SmVbZ3RdLGRlbGV0ZSBKZVtndF19KSxKZX0pLG51bGx9LCRlPWZ1bmN0aW9uKEFlKXt2YXIgdHQ9U2UoKSxtdD10dC5jc3NWYXI7cmV0dXJuW2Z1bmN0aW9uKHV0KXtyZXR1cm4gd2UmJm10P3MuY3JlYXRlRWxlbWVudChzLkZyYWdtZW50LG51bGwscy5jcmVhdGVFbGVtZW50KGJlLHtyb290Q2xzOkFlLGNzc1ZhcjptdCxjb21wb25lbnQ6JH0pLHV0KTp1dH0sbXQ9PW51bGw/dm9pZCAwOm10LmtleV19O3JldHVybiAkZX1mdW5jdGlvbiBRKCQsXyxwZSl7dmFyIHJlPWFyZ3VtZW50cy5sZW5ndGg+MyYmYXJndW1lbnRzWzNdIT09dm9pZCAwP2FyZ3VtZW50c1szXTp7fSxhZT1BcnJheS5pc0FycmF5KCQpPyQ6WyQsJF0sd2U9KDAsbi5aKShhZSwxKSxMZT13ZVswXSxNZT1hZS5qb2luKCItIiksYmU9cWUubGF5ZXJ8fHtuYW1lOiJhbnRkIn07cmV0dXJuIGZ1bmN0aW9uKCRlKXt2YXIga2U9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOiRlLEFlPVNlKCksdHQ9QWUudGhlbWUsbXQ9QWUucmVhbFRva2VuLHV0PUFlLmhhc2hJZCxEZT1BZS50b2tlbixOZT1BZS5jc3NWYXIsWGU9cSgpLEplPVhlLnJvb3RQcmVmaXhDbHMsZ3Q9WGUuaWNvblByZWZpeENscyxkZT1GZSgpLFdlPU5lPyJjc3MiOiJqcyIsU3Q9RWUoZnVuY3Rpb24oKXt2YXIgUWU9bmV3IFNldDtyZXR1cm4gTmUmJk9iamVjdC5rZXlzKHJlLnVuaXRsZXNzfHx7fSkuZm9yRWFjaChmdW5jdGlvbihwdCl7UWUuYWRkKCgwLGEua3MpKHB0LE5lLnByZWZpeCkpLFFlLmFkZCgoMCxhLmtzKShwdCx6KExlLE5lLnByZWZpeCkpKX0pLEkoV2UsUWUpfSxbV2UsTGUsTmU9PW51bGw/dm9pZCAwOk5lLnByZWZpeF0pLGN0PUsoV2UpLE9lPWN0Lm1heCxHZT1jdC5taW4saHQ9e3RoZW1lOnR0LHRva2VuOkRlLGhhc2hJZDp1dCxub25jZTpmdW5jdGlvbigpe3JldHVybiBkZS5ub25jZX0sY2xpZW50T25seTpyZS5jbGllbnRPbmx5LGxheWVyOmJlLG9yZGVyOnJlLm9yZGVyfHwtOTk5fTt0eXBlb2Ygaz09ImZ1bmN0aW9uIiYmKDAsYS54eSkoKDAsaS5aKSgoMCxpLlopKHt9LGh0KSx7fSx7Y2xpZW50T25seTohMSxwYXRoOlsiU2hhcmVkIixKZV19KSxmdW5jdGlvbigpe3JldHVybiBrKERlLHtwcmVmaXg6e3Jvb3RQcmVmaXhDbHM6SmUsaWNvblByZWZpeENsczpndH0sY3NwOmRlfSl9KTt2YXIgemU9KDAsYS54eSkoKDAsaS5aKSgoMCxpLlopKHt9LGh0KSx7fSx7cGF0aDpbTWUsJGUsZ3RdfSksZnVuY3Rpb24oKXtpZihyZS5pbmplY3RTdHlsZT09PSExKXJldHVybltdO3ZhciBRZT1EKERlKSxwdD1RZS50b2tlbixidD1RZS5mbHVzaCxJdD1aKExlLG10LHBlKSxUdD0iLiIuY29uY2F0KCRlKSxYdD1lZShMZSxtdCxJdCx7ZGVwcmVjYXRlZFRva2VuczpyZS5kZXByZWNhdGVkVG9rZW5zfSk7TmUmJkl0JiYoMCxyLlopKEl0KT09PSJvYmplY3QiJiZPYmplY3Qua2V5cyhJdCkuZm9yRWFjaChmdW5jdGlvbihOdCl7SXRbTnRdPSJ2YXIoIi5jb25jYXQoKDAsYS5rcykoTnQseihMZSxOZS5wcmVmaXgpKSwiKSIpfSk7dmFyIGZuPXRlKHB0LHtjb21wb25lbnRDbHM6VHQscHJlZml4Q2xzOiRlLGljb25DbHM6Ii4iLmNvbmNhdChndCksYW50Q2xzOiIuIi5jb25jYXQoSmUpLGNhbGM6U3QsbWF4Ok9lLG1pbjpHZX0sTmU/SXQ6WHQpLG5uPV8oZm4se2hhc2hJZDp1dCxwcmVmaXhDbHM6JGUscm9vdFByZWZpeENsczpKZSxpY29uUHJlZml4Q2xzOmd0fSk7YnQoTGUsWHQpO3ZhciBvbj10eXBlb2YgTT09ImZ1bmN0aW9uIj9NKGZuLCRlLGtlLHJlLnJlc2V0Rm9udCk6bnVsbDtyZXR1cm5bcmUucmVzZXRTdHlsZT09PSExP251bGw6b24sbm5dfSk7cmV0dXJuW3plLHV0XX19ZnVuY3Rpb24gdWUoJCxfLHBlKXt2YXIgcmU9YXJndW1lbnRzLmxlbmd0aD4zJiZhcmd1bWVudHNbM10hPT12b2lkIDA/YXJndW1lbnRzWzNdOnt9LGFlPVEoJCxfLHBlLCgwLGkuWikoe3Jlc2V0U3R5bGU6ITEsb3JkZXI6LTk5OH0scmUpKSx3ZT1mdW5jdGlvbihNZSl7dmFyIGJlPU1lLnByZWZpeENscywkZT1NZS5yb290Q2xzLGtlPSRlPT09dm9pZCAwP2JlOiRlO3JldHVybiBhZShiZSxrZSksbnVsbH07cmV0dXJuIHdlfXJldHVybntnZW5TdHlsZUhvb2tzOlUsZ2VuU3ViU3R5bGVDb21wb25lbnQ6dWUsZ2VuQ29tcG9uZW50U3R5bGVIb29rOlF9fXZhciBvdD1ZZX0sMTE1Njg6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7RTQ6ZnVuY3Rpb24oKXtyZXR1cm4gem99LHVQOmZ1bmN0aW9uKCl7cmV0dXJuIEp9LFY5OmZ1bmN0aW9uKCl7cmV0dXJuIGVlfSxqRzpmdW5jdGlvbigpe3JldHVybiBmZX0sdDI6ZnVuY3Rpb24oKXtyZXR1cm4gYnR9LGtzOmZ1bmN0aW9uKCl7cmV0dXJuIF99LGJmOmZ1bmN0aW9uKCl7cmV0dXJuIHVlfSxDSTpmdW5jdGlvbigpe3JldHVybiBTYX0sZnA6ZnVuY3Rpb24oKXtyZXR1cm4gVHR9LHh5OmZ1bmN0aW9uKCl7cmV0dXJuIFRhfX0pO3ZhciByPWUoNDk0Miksbj1lKDk3Njg1KSx0PWUoNzQ5MDIpLGk9ZSgxNDEzKTtmdW5jdGlvbiBzKGx0KXtmb3IodmFyIGllPTAseWUsQj0wLFZlPWx0Lmxlbmd0aDtWZT49NDsrK0IsVmUtPTQpeWU9bHQuY2hhckNvZGVBdChCKSYyNTV8KGx0LmNoYXJDb2RlQXQoKytCKSYyNTUpPDw4fChsdC5jaGFyQ29kZUF0KCsrQikmMjU1KTw8MTZ8KGx0LmNoYXJDb2RlQXQoKytCKSYyNTUpPDwyNCx5ZT0oeWUmNjU1MzUpKjE1NDA0ODM0NzcrKCh5ZT4+PjE2KSo1OTc5Nzw8MTYpLHllXj15ZT4+PjI0LGllPSh5ZSY2NTUzNSkqMTU0MDQ4MzQ3NysoKHllPj4+MTYpKjU5Nzk3PDwxNileKGllJjY1NTM1KSoxNTQwNDgzNDc3KygoaWU+Pj4xNikqNTk3OTc8PDE2KTtzd2l0Y2goVmUpe2Nhc2UgMzppZV49KGx0LmNoYXJDb2RlQXQoQisyKSYyNTUpPDwxNjtjYXNlIDI6aWVePShsdC5jaGFyQ29kZUF0KEIrMSkmMjU1KTw8ODtjYXNlIDE6aWVePWx0LmNoYXJDb2RlQXQoQikmMjU1LGllPShpZSY2NTUzNSkqMTU0MDQ4MzQ3NysoKGllPj4+MTYpKjU5Nzk3PDwxNil9cmV0dXJuIGllXj1pZT4+PjEzLGllPShpZSY2NTUzNSkqMTU0MDQ4MzQ3NysoKGllPj4+MTYpKjU5Nzk3PDwxNiksKChpZV5pZT4+PjE1KT4+PjApLnRvU3RyaW5nKDM2KX12YXIgYT1zLHU9ZSg0NDk1OCksYz1lKDY3Mjk0KSxoPWUudChjLDIpLGQ9ZSg5MSksbT1lKDU2OTgyKSxDPWUoOTE4ODEpLGc9ZSgxNTY3MSksdz1lKDQzMTQ0KSxFPSIlIjtmdW5jdGlvbiB4KGx0KXtyZXR1cm4gbHQuam9pbihFKX12YXIgTz1mdW5jdGlvbigpe2Z1bmN0aW9uIGx0KGllKXsoMCxnLlopKHRoaXMsbHQpLCgwLHIuWikodGhpcywiaW5zdGFuY2VJZCIsdm9pZCAwKSwoMCxyLlopKHRoaXMsImNhY2hlIixuZXcgTWFwKSx0aGlzLmluc3RhbmNlSWQ9aWV9cmV0dXJuKDAsdy5aKShsdCxbe2tleToiZ2V0Iix2YWx1ZTpmdW5jdGlvbih5ZSl7cmV0dXJuIHRoaXMub3BHZXQoeCh5ZSkpfX0se2tleToib3BHZXQiLHZhbHVlOmZ1bmN0aW9uKHllKXtyZXR1cm4gdGhpcy5jYWNoZS5nZXQoeWUpfHxudWxsfX0se2tleToidXBkYXRlIix2YWx1ZTpmdW5jdGlvbih5ZSxCKXtyZXR1cm4gdGhpcy5vcFVwZGF0ZSh4KHllKSxCKX19LHtrZXk6Im9wVXBkYXRlIix2YWx1ZTpmdW5jdGlvbih5ZSxCKXt2YXIgVmU9dGhpcy5jYWNoZS5nZXQoeWUpLHN0PUIoVmUpO3N0PT09bnVsbD90aGlzLmNhY2hlLmRlbGV0ZSh5ZSk6dGhpcy5jYWNoZS5zZXQoeWUsc3QpfX1dKSxsdH0oKSxUPU8sUz1bImNoaWxkcmVuIl0sTD0iZGF0YS10b2tlbi1oYXNoIixJPSJkYXRhLWNzcy1oYXNoIixSPSJkYXRhLWNhY2hlLXBhdGgiLHo9Il9fY3NzaW5qc19pbnN0YW5jZV9fIjtmdW5jdGlvbiBHKCl7dmFyIGx0PU1hdGgucmFuZG9tKCkudG9TdHJpbmcoMTIpLnNsaWNlKDIpO2lmKHR5cGVvZiBkb2N1bWVudCE9InVuZGVmaW5lZCImJmRvY3VtZW50LmhlYWQmJmRvY3VtZW50LmJvZHkpe3ZhciBpZT1kb2N1bWVudC5ib2R5LnF1ZXJ5U2VsZWN0b3JBbGwoInN0eWxlWyIuY29uY2F0KEksIl0iKSl8fFtdLHllPWRvY3VtZW50LmhlYWQuZmlyc3RDaGlsZDtBcnJheS5mcm9tKGllKS5mb3JFYWNoKGZ1bmN0aW9uKFZlKXtWZVt6XT1WZVt6XXx8bHQsVmVbel09PT1sdCYmZG9jdW1lbnQuaGVhZC5pbnNlcnRCZWZvcmUoVmUseWUpfSk7dmFyIEI9e307QXJyYXkuZnJvbShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJzdHlsZVsiLmNvbmNhdChJLCJdIikpKS5mb3JFYWNoKGZ1bmN0aW9uKFZlKXt2YXIgc3Q9VmUuZ2V0QXR0cmlidXRlKEkpO2lmKEJbc3RdKXtpZihWZVt6XT09PWx0KXt2YXIgUnQ7KFJ0PVZlLnBhcmVudE5vZGUpPT09bnVsbHx8UnQ9PT12b2lkIDB8fFJ0LnJlbW92ZUNoaWxkKFZlKX19ZWxzZSBCW3N0XT0hMH0pfXJldHVybiBuZXcgVChsdCl9dmFyIFk9Yy5jcmVhdGVDb250ZXh0KHtoYXNoUHJpb3JpdHk6ImxvdyIsY2FjaGU6RygpLGRlZmF1bHRDYWNoZTohMH0pLGVlPWZ1bmN0aW9uKGllKXt2YXIgeWU9aWUuY2hpbGRyZW4sQj0oMCxkLlopKGllLFMpLFZlPWMudXNlQ29udGV4dChZKSxzdD0oMCxtLlopKGZ1bmN0aW9uKCl7dmFyIFJ0PSgwLGkuWikoe30sVmUpO09iamVjdC5rZXlzKEIpLmZvckVhY2goZnVuY3Rpb24oTHQpe3ZhciBZdD1CW0x0XTtCW0x0XSE9PXZvaWQgMCYmKFJ0W0x0XT1ZdCl9KTt2YXIgQnQ9Qi5jYWNoZTtyZXR1cm4gUnQuY2FjaGU9UnQuY2FjaGV8fEcoKSxSdC5kZWZhdWx0Q2FjaGU9IUJ0JiZWZS5kZWZhdWx0Q2FjaGUsUnR9LFtWZSxCXSxmdW5jdGlvbihSdCxCdCl7cmV0dXJuISgwLEMuWikoUnRbMF0sQnRbMF0sITApfHwhKDAsQy5aKShSdFsxXSxCdFsxXSwhMCl9KTtyZXR1cm4gYy5jcmVhdGVFbGVtZW50KFkuUHJvdmlkZXIse3ZhbHVlOnN0fSx5ZSl9LEo9WSxtZT1lKDcxMDAyKSx0ZT1lKDk4OTI0KSxsZT0iQ0FMQ19VTklUIixjZT1uZXcgUmVnRXhwKGxlLCJnIik7ZnVuY3Rpb24gVyhsdCl7cmV0dXJuIHR5cGVvZiBsdD09Im51bWJlciI/IiIuY29uY2F0KGx0KS5jb25jYXQobGUpOmx0fXZhciBqPW51bGwsRD1mdW5jdGlvbihpZSx5ZSl7dmFyIEI9aWU9PT0iY3NzIj9DU1NDYWxjdWxhdG9yOk51bUNhbGN1bGF0b3I7cmV0dXJuIGZ1bmN0aW9uKFZlKXtyZXR1cm4gbmV3IEIoVmUseWUpfX0sVj1udWxsO2Z1bmN0aW9uIFoobHQsaWUpe2lmKGx0Lmxlbmd0aCE9PWllLmxlbmd0aClyZXR1cm4hMTtmb3IodmFyIHllPTA7eWU8bHQubGVuZ3RoO3llKyspaWYobHRbeWVdIT09aWVbeWVdKXJldHVybiExO3JldHVybiEwfXZhciBQPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbHQoKXsoMCxnLlopKHRoaXMsbHQpLCgwLHIuWikodGhpcywiY2FjaGUiLHZvaWQgMCksKDAsci5aKSh0aGlzLCJrZXlzIix2b2lkIDApLCgwLHIuWikodGhpcywiY2FjaGVDYWxsVGltZXMiLHZvaWQgMCksdGhpcy5jYWNoZT1uZXcgTWFwLHRoaXMua2V5cz1bXSx0aGlzLmNhY2hlQ2FsbFRpbWVzPTB9cmV0dXJuKDAsdy5aKShsdCxbe2tleToic2l6ZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5rZXlzLmxlbmd0aH19LHtrZXk6ImludGVybmFsR2V0Iix2YWx1ZTpmdW5jdGlvbih5ZSl7dmFyIEIsVmUsc3Q9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOiExLFJ0PXttYXA6dGhpcy5jYWNoZX07cmV0dXJuIHllLmZvckVhY2goZnVuY3Rpb24oQnQpe2lmKCFSdClSdD12b2lkIDA7ZWxzZXt2YXIgTHQ7UnQ9KEx0PVJ0KT09PW51bGx8fEx0PT09dm9pZCAwfHwoTHQ9THQubWFwKT09PW51bGx8fEx0PT09dm9pZCAwP3ZvaWQgMDpMdC5nZXQoQnQpfX0pLChCPVJ0KSE9PW51bGwmJkIhPT12b2lkIDAmJkIudmFsdWUmJnN0JiYoUnQudmFsdWVbMV09dGhpcy5jYWNoZUNhbGxUaW1lcysrKSwoVmU9UnQpPT09bnVsbHx8VmU9PT12b2lkIDA/dm9pZCAwOlZlLnZhbHVlfX0se2tleToiZ2V0Iix2YWx1ZTpmdW5jdGlvbih5ZSl7dmFyIEI7cmV0dXJuKEI9dGhpcy5pbnRlcm5hbEdldCh5ZSwhMCkpPT09bnVsbHx8Qj09PXZvaWQgMD92b2lkIDA6QlswXX19LHtrZXk6ImhhcyIsdmFsdWU6ZnVuY3Rpb24oeWUpe3JldHVybiEhdGhpcy5pbnRlcm5hbEdldCh5ZSl9fSx7a2V5OiJzZXQiLHZhbHVlOmZ1bmN0aW9uKHllLEIpe3ZhciBWZT10aGlzO2lmKCF0aGlzLmhhcyh5ZSkpe2lmKHRoaXMuc2l6ZSgpKzE+bHQuTUFYX0NBQ0hFX1NJWkUrbHQuTUFYX0NBQ0hFX09GRlNFVCl7dmFyIHN0PXRoaXMua2V5cy5yZWR1Y2UoZnVuY3Rpb24oWXQsQW4pe3ZhciBzbj0oMCxuLlopKFl0LDIpLHF0PXNuWzFdO3JldHVybiBWZS5pbnRlcm5hbEdldChBbilbMV08cXQ/W0FuLFZlLmludGVybmFsR2V0KEFuKVsxXV06WXR9LFt0aGlzLmtleXNbMF0sdGhpcy5jYWNoZUNhbGxUaW1lc10pLFJ0PSgwLG4uWikoc3QsMSksQnQ9UnRbMF07dGhpcy5kZWxldGUoQnQpfXRoaXMua2V5cy5wdXNoKHllKX12YXIgTHQ9dGhpcy5jYWNoZTt5ZS5mb3JFYWNoKGZ1bmN0aW9uKFl0LEFuKXtpZihBbj09PXllLmxlbmd0aC0xKUx0LnNldChZdCx7dmFsdWU6W0IsVmUuY2FjaGVDYWxsVGltZXMrK119KTtlbHNle3ZhciBzbj1MdC5nZXQoWXQpO3NuP3NuLm1hcHx8KHNuLm1hcD1uZXcgTWFwKTpMdC5zZXQoWXQse21hcDpuZXcgTWFwfSksTHQ9THQuZ2V0KFl0KS5tYXB9fSl9fSx7a2V5OiJkZWxldGVCeVBhdGgiLHZhbHVlOmZ1bmN0aW9uKHllLEIpe3ZhciBWZT15ZS5nZXQoQlswXSk7aWYoQi5sZW5ndGg9PT0xKXt2YXIgc3Q7cmV0dXJuIFZlLm1hcD95ZS5zZXQoQlswXSx7bWFwOlZlLm1hcH0pOnllLmRlbGV0ZShCWzBdKSwoc3Q9VmUudmFsdWUpPT09bnVsbHx8c3Q9PT12b2lkIDA/dm9pZCAwOnN0WzBdfXZhciBSdD10aGlzLmRlbGV0ZUJ5UGF0aChWZS5tYXAsQi5zbGljZSgxKSk7cmV0dXJuKCFWZS5tYXB8fFZlLm1hcC5zaXplPT09MCkmJiFWZS52YWx1ZSYmeWUuZGVsZXRlKEJbMF0pLFJ0fX0se2tleToiZGVsZXRlIix2YWx1ZTpmdW5jdGlvbih5ZSl7aWYodGhpcy5oYXMoeWUpKXJldHVybiB0aGlzLmtleXM9dGhpcy5rZXlzLmZpbHRlcihmdW5jdGlvbihCKXtyZXR1cm4hWihCLHllKX0pLHRoaXMuZGVsZXRlQnlQYXRoKHRoaXMuY2FjaGUseWUpfX1dKSxsdH0oKTsoMCxyLlopKFAsIk1BWF9DQUNIRV9TSVpFIiwyMCksKDAsci5aKShQLCJNQVhfQ0FDSEVfT0ZGU0VUIiw1KTt2YXIgSz1lKDgwMzM0KSxzZT0wLG5lPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbHQoaWUpeygwLGcuWikodGhpcyxsdCksKDAsci5aKSh0aGlzLCJkZXJpdmF0aXZlcyIsdm9pZCAwKSwoMCxyLlopKHRoaXMsImlkIix2b2lkIDApLHRoaXMuZGVyaXZhdGl2ZXM9QXJyYXkuaXNBcnJheShpZSk/aWU6W2llXSx0aGlzLmlkPXNlLGllLmxlbmd0aD09PTAmJigwLEsuS3ApKGllLmxlbmd0aD4wLCJbQW50IERlc2lnbiBDU1MtaW4tSlNdIFRoZW1lIHNob3VsZCBoYXZlIGF0IGxlYXN0IG9uZSBkZXJpdmF0aXZlIGZ1bmN0aW9uLiIpLHNlKz0xfXJldHVybigwLHcuWikobHQsW3trZXk6ImdldERlcml2YXRpdmVUb2tlbiIsdmFsdWU6ZnVuY3Rpb24oeWUpe3JldHVybiB0aGlzLmRlcml2YXRpdmVzLnJlZHVjZShmdW5jdGlvbihCLFZlKXtyZXR1cm4gVmUoeWUsQil9LHZvaWQgMCl9fV0pLGx0fSgpLG9lPW5ldyBQO2Z1bmN0aW9uIGZlKGx0KXt2YXIgaWU9QXJyYXkuaXNBcnJheShsdCk/bHQ6W2x0XTtyZXR1cm4gb2UuaGFzKGllKXx8b2Uuc2V0KGllLG5ldyBuZShpZSkpLG9lLmdldChpZSl9dmFyIEVlPW5ldyBXZWFrTWFwLFJlPXt9O2Z1bmN0aW9uIEJlKGx0LGllKXtmb3IodmFyIHllPUVlLEI9MDtCPGllLmxlbmd0aDtCKz0xKXt2YXIgVmU9aWVbQl07eWUuaGFzKFZlKXx8eWUuc2V0KFZlLG5ldyBXZWFrTWFwKSx5ZT15ZS5nZXQoVmUpfXJldHVybiB5ZS5oYXMoUmUpfHx5ZS5zZXQoUmUsbHQoKSkseWUuZ2V0KFJlKX12YXIgWWU9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gb3QobHQpe3ZhciBpZT1ZZS5nZXQobHQpfHwiIjtyZXR1cm4gaWV8fChPYmplY3Qua2V5cyhsdCkuZm9yRWFjaChmdW5jdGlvbih5ZSl7dmFyIEI9bHRbeWVdO2llKz15ZSxCIGluc3RhbmNlb2YgbmU/aWUrPUIuaWQ6QiYmKDAsbWUuWikoQik9PT0ib2JqZWN0Ij9pZSs9b3QoQik6aWUrPUJ9KSxpZT1hKGllKSxZZS5zZXQobHQsaWUpKSxpZX1mdW5jdGlvbiBxZShsdCxpZSl7cmV0dXJuIGEoIiIuY29uY2F0KGllLCJfIikuY29uY2F0KG90KGx0KSkpfXZhciBfZT0icmFuZG9tLSIuY29uY2F0KERhdGUubm93KCksIi0iKS5jb25jYXQoTWF0aC5yYW5kb20oKSkucmVwbGFjZSgvXC4vZywiIiksRmU9Il9iQW1Cb09fIjtmdW5jdGlvbiBTZShsdCxpZSx5ZSl7aWYoKDAsdGUuWikoKSl7dmFyIEIsVmU7KDAsdS5ocSkobHQsX2UpO3ZhciBzdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtzdC5zdHlsZS5wb3NpdGlvbj0iZml4ZWQiLHN0LnN0eWxlLmxlZnQ9IjAiLHN0LnN0eWxlLnRvcD0iMCIsaWU9PW51bGx8fGllKHN0KSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHN0KTt2YXIgUnQ9eWU/eWUoc3QpOihCPWdldENvbXB1dGVkU3R5bGUoc3QpLmNvbnRlbnQpPT09bnVsbHx8Qj09PXZvaWQgMD92b2lkIDA6Qi5pbmNsdWRlcyhGZSk7cmV0dXJuKFZlPXN0LnBhcmVudE5vZGUpPT09bnVsbHx8VmU9PT12b2lkIDB8fFZlLnJlbW92ZUNoaWxkKHN0KSwoMCx1LmpMKShfZSksUnR9cmV0dXJuITF9dmFyIHE9bnVsbDtmdW5jdGlvbiBrKCl7cmV0dXJuIHE9PT12b2lkIDAmJihxPVNlKCJAbGF5ZXIgIi5jb25jYXQoX2UsIiB7IC4iKS5jb25jYXQoX2UsJyB7IGNvbnRlbnQ6ICInKS5jb25jYXQoRmUsJyIhaW1wb3J0YW50OyB9IH0nKSxmdW5jdGlvbihsdCl7bHQuY2xhc3NOYW1lPV9lfSkpLHF9dmFyIE09dm9pZCAwO2Z1bmN0aW9uIEEoKXtyZXR1cm4gTT09PXZvaWQgMCYmKE09U2UoIjp3aGVyZSguIi5jb25jYXQoX2UsJykgeyBjb250ZW50OiAiJykuY29uY2F0KEZlLCciIWltcG9ydGFudDsgfScpLGZ1bmN0aW9uKGx0KXtsdC5jbGFzc05hbWU9X2V9KSksTX12YXIgVT12b2lkIDA7ZnVuY3Rpb24gTigpe3JldHVybiBVPT09dm9pZCAwJiYoVT1TZSgiLiIuY29uY2F0KF9lLCIgeyBpbnNldC1ibG9jazogOTNweCAhaW1wb3J0YW50OyB9IiksZnVuY3Rpb24obHQpe2x0LmNsYXNzTmFtZT1fZX0sZnVuY3Rpb24obHQpe3JldHVybiBnZXRDb21wdXRlZFN0eWxlKGx0KS5ib3R0b209PT0iOTNweCJ9KSksVX12YXIgUT0oMCx0ZS5aKSgpO2Z1bmN0aW9uIHVlKGx0KXtyZXR1cm4gdHlwZW9mIGx0PT0ibnVtYmVyIj8iIi5jb25jYXQobHQsInB4Iik6bHR9ZnVuY3Rpb24gJChsdCxpZSx5ZSl7dmFyIEIsVmU9YXJndW1lbnRzLmxlbmd0aD4zJiZhcmd1bWVudHNbM10hPT12b2lkIDA/YXJndW1lbnRzWzNdOnt9LHN0PWFyZ3VtZW50cy5sZW5ndGg+NCYmYXJndW1lbnRzWzRdIT09dm9pZCAwP2FyZ3VtZW50c1s0XTohMTtpZihzdClyZXR1cm4gbHQ7dmFyIFJ0PSgwLGkuWikoKDAsaS5aKSh7fSxWZSkse30sKEI9e30sKDAsci5aKShCLEwsaWUpLCgwLHIuWikoQixJLHllKSxCKSksQnQ9T2JqZWN0LmtleXMoUnQpLm1hcChmdW5jdGlvbihMdCl7dmFyIFl0PVJ0W0x0XTtyZXR1cm4gWXQ/IiIuY29uY2F0KEx0LCc9IicpLmNvbmNhdChZdCwnIicpOm51bGx9KS5maWx0ZXIoZnVuY3Rpb24oTHQpe3JldHVybiBMdH0pLmpvaW4oIiAiKTtyZXR1cm4iPHN0eWxlICIuY29uY2F0KEJ0LCI+IikuY29uY2F0KGx0LCI8L3N0eWxlPiIpfXZhciBfPWZ1bmN0aW9uKGllKXt2YXIgeWU9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOiIiO3JldHVybiItLSIuY29uY2F0KHllPyIiLmNvbmNhdCh5ZSwiLSIpOiIiKS5jb25jYXQoaWUpLnJlcGxhY2UoLyhbYS16MC05XSkoW0EtWl0pL2csIiQxLSQyIikucmVwbGFjZSgvKFtBLVpdKykoW0EtWl1bYS16MC05XSspL2csIiQxLSQyIikucmVwbGFjZSgvKFthLXpdKShbQS1aMC05XSkvZywiJDEtJDIiKS50b0xvd2VyQ2FzZSgpfSxwZT1mdW5jdGlvbihpZSx5ZSxCKXtyZXR1cm4gT2JqZWN0LmtleXMoaWUpLmxlbmd0aD8iLiIuY29uY2F0KHllKS5jb25jYXQoQiE9bnVsbCYmQi5zY29wZT8iLiIuY29uY2F0KEIuc2NvcGUpOiIiLCJ7IikuY29uY2F0KE9iamVjdC5lbnRyaWVzKGllKS5tYXAoZnVuY3Rpb24oVmUpe3ZhciBzdD0oMCxuLlopKFZlLDIpLFJ0PXN0WzBdLEJ0PXN0WzFdO3JldHVybiIiLmNvbmNhdChSdCwiOiIpLmNvbmNhdChCdCwiOyIpfSkuam9pbigiIiksIn0iKToiIn0scmU9ZnVuY3Rpb24oaWUseWUsQil7dmFyIFZlPXt9LHN0PXt9O3JldHVybiBPYmplY3QuZW50cmllcyhpZSkuZm9yRWFjaChmdW5jdGlvbihSdCl7dmFyIEJ0LEx0LFl0PSgwLG4uWikoUnQsMiksQW49WXRbMF0sc249WXRbMV07aWYoQiE9bnVsbCYmKEJ0PUIucHJlc2VydmUpIT09bnVsbCYmQnQhPT12b2lkIDAmJkJ0W0FuXSlzdFtBbl09c247ZWxzZSBpZigodHlwZW9mIHNuPT0ic3RyaW5nInx8dHlwZW9mIHNuPT0ibnVtYmVyIikmJiEoQiE9bnVsbCYmKEx0PUIuaWdub3JlKSE9PW51bGwmJkx0IT09dm9pZCAwJiZMdFtBbl0pKXt2YXIgcXQsTW49XyhBbixCPT1udWxsP3ZvaWQgMDpCLnByZWZpeCk7VmVbTW5dPXR5cGVvZiBzbj09Im51bWJlciImJiEoQiE9bnVsbCYmKHF0PUIudW5pdGxlc3MpIT09bnVsbCYmcXQhPT12b2lkIDAmJnF0W0FuXSk/IiIuY29uY2F0KHNuLCJweCIpOlN0cmluZyhzbiksc3RbQW5dPSJ2YXIoIi5jb25jYXQoTW4sIikiKX19KSxbc3QscGUoVmUseWUse3Njb3BlOkI9PW51bGw/dm9pZCAwOkIuc2NvcGV9KV19LGFlPWUoODQxMCksd2U9KDAsaS5aKSh7fSxoKSxMZT13ZS51c2VJbnNlcnRpb25FZmZlY3QsTWU9ZnVuY3Rpb24oaWUseWUsQil7Yy51c2VNZW1vKGllLEIpLCgwLGFlLlopKGZ1bmN0aW9uKCl7cmV0dXJuIHllKCEwKX0sQil9LGJlPUxlP2Z1bmN0aW9uKGx0LGllLHllKXtyZXR1cm4gTGUoZnVuY3Rpb24oKXtyZXR1cm4gbHQoKSxpZSgpfSx5ZSl9Ok1lLCRlPWJlLGtlPSgwLGkuWikoe30saCksQWU9a2UudXNlSW5zZXJ0aW9uRWZmZWN0LHR0PWZ1bmN0aW9uKGllKXt2YXIgeWU9W10sQj0hMTtmdW5jdGlvbiBWZShzdCl7Qnx8eWUucHVzaChzdCl9cmV0dXJuIGMudXNlRWZmZWN0KGZ1bmN0aW9uKCl7cmV0dXJuIEI9ITEsZnVuY3Rpb24oKXtCPSEwLHllLmxlbmd0aCYmeWUuZm9yRWFjaChmdW5jdGlvbihzdCl7cmV0dXJuIHN0KCl9KX19LGllKSxWZX0sbXQ9ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oaWUpe2llKCl9fSx1dD10eXBlb2YgQWUhPSJ1bmRlZmluZWQiP3R0Om10LERlPXV0O2Z1bmN0aW9uIE5lKCl7cmV0dXJuITF9dmFyIFhlPSExO2Z1bmN0aW9uIEplKCl7cmV0dXJuIFhlfXZhciBndD1OZTtpZigwKXZhciBkZSxXZTtmdW5jdGlvbiBTdChsdCxpZSx5ZSxCLFZlKXt2YXIgc3Q9Yy51c2VDb250ZXh0KEopLFJ0PXN0LmNhY2hlLEJ0PVtsdF0uY29uY2F0KCgwLHQuWikoaWUpKSxMdD14KEJ0KSxZdD1EZShbTHRdKSxBbj1ndCgpLHNuPWZ1bmN0aW9uKHFuKXtSdC5vcFVwZGF0ZShMdCxmdW5jdGlvbihqcil7dmFyIENuPWpyfHxbdm9pZCAwLHZvaWQgMF0sTHI9KDAsbi5aKShDbiwyKSxEcj1MclswXSxOcj1Ecj09PXZvaWQgMD8wOkRyLHRhPUxyWzFdLHZhPXRhLFhyPXZhfHx5ZSgpLEVhPVtOcixYcl07cmV0dXJuIHFuP3FuKEVhKTpFYX0pfTtjLnVzZU1lbW8oZnVuY3Rpb24oKXtzbigpfSxbTHRdKTt2YXIgcXQ9UnQub3BHZXQoTHQpLE1uPXF0WzFdO3JldHVybiAkZShmdW5jdGlvbigpe1ZlPT1udWxsfHxWZShNbil9LGZ1bmN0aW9uKENyKXtyZXR1cm4gc24oZnVuY3Rpb24ocW4pe3ZhciBqcj0oMCxuLlopKHFuLDIpLENuPWpyWzBdLExyPWpyWzFdO3JldHVybiBDciYmQ249PT0wJiYoVmU9PW51bGx8fFZlKE1uKSksW0NuKzEsTHJdfSksZnVuY3Rpb24oKXtSdC5vcFVwZGF0ZShMdCxmdW5jdGlvbihxbil7dmFyIGpyPXFufHxbXSxDbj0oMCxuLlopKGpyLDIpLExyPUNuWzBdLERyPUxyPT09dm9pZCAwPzA6THIsTnI9Q25bMV0sdGE9RHItMTtyZXR1cm4gdGE9PT0wPyhZdChmdW5jdGlvbigpeyhDcnx8IVJ0Lm9wR2V0KEx0KSkmJihCPT1udWxsfHxCKE5yLCExKSl9KSxudWxsKTpbRHItMSxOcl19KX19LFtMdF0pLE1ufXZhciBjdD17fSxPZT0iY3NzIixHZT1uZXcgTWFwO2Z1bmN0aW9uIGh0KGx0KXtHZS5zZXQobHQsKEdlLmdldChsdCl8fDApKzEpfWZ1bmN0aW9uIHplKGx0LGllKXtpZih0eXBlb2YgZG9jdW1lbnQhPSJ1bmRlZmluZWQiKXt2YXIgeWU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgic3R5bGVbIi5jb25jYXQoTCwnPSInKS5jb25jYXQobHQsJyJdJykpO3llLmZvckVhY2goZnVuY3Rpb24oQil7aWYoQlt6XT09PWllKXt2YXIgVmU7KFZlPUIucGFyZW50Tm9kZSk9PT1udWxsfHxWZT09PXZvaWQgMHx8VmUucmVtb3ZlQ2hpbGQoQil9fSl9fXZhciBRZT0wO2Z1bmN0aW9uIHB0KGx0LGllKXtHZS5zZXQobHQsKEdlLmdldChsdCl8fDApLTEpO3ZhciB5ZT1BcnJheS5mcm9tKEdlLmtleXMoKSksQj15ZS5maWx0ZXIoZnVuY3Rpb24oVmUpe3ZhciBzdD1HZS5nZXQoVmUpfHwwO3JldHVybiBzdDw9MH0pO3llLmxlbmd0aC1CLmxlbmd0aD5RZSYmQi5mb3JFYWNoKGZ1bmN0aW9uKFZlKXt6ZShWZSxpZSksR2UuZGVsZXRlKFZlKX0pfXZhciBidD1mdW5jdGlvbihpZSx5ZSxCLFZlKXt2YXIgc3Q9Qi5nZXREZXJpdmF0aXZlVG9rZW4oaWUpLFJ0PSgwLGkuWikoKDAsaS5aKSh7fSxzdCkseWUpO3JldHVybiBWZSYmKFJ0PVZlKFJ0KSksUnR9LEl0PSJ0b2tlbiI7ZnVuY3Rpb24gVHQobHQsaWUpe3ZhciB5ZT1hcmd1bWVudHMubGVuZ3RoPjImJmFyZ3VtZW50c1syXSE9PXZvaWQgMD9hcmd1bWVudHNbMl06e30sQj0oMCxjLnVzZUNvbnRleHQpKEopLFZlPUIuY2FjaGUuaW5zdGFuY2VJZCxzdD1CLmNvbnRhaW5lcixSdD15ZS5zYWx0LEJ0PVJ0PT09dm9pZCAwPyIiOlJ0LEx0PXllLm92ZXJyaWRlLFl0PUx0PT09dm9pZCAwP2N0Okx0LEFuPXllLmZvcm1hdFRva2VuLHNuPXllLmdldENvbXB1dGVkVG9rZW4scXQ9eWUuY3NzVmFyLE1uPUJlKGZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5hc3NpZ24uYXBwbHkoT2JqZWN0LFt7fV0uY29uY2F0KCgwLHQuWikoaWUpKSl9LGllKSxDcj1vdChNbikscW49b3QoWXQpLGpyPXF0P290KHF0KToiIixDbj1TdChJdCxbQnQsbHQuaWQsQ3IscW4sanJdLGZ1bmN0aW9uKCl7dmFyIExyLERyPXNuP3NuKE1uLFl0LGx0KTpidChNbixZdCxsdCxBbiksTnI9KDAsaS5aKSh7fSxEciksdGE9IiI7aWYocXQpe3ZhciB2YT1yZShEcixxdC5rZXkse3ByZWZpeDpxdC5wcmVmaXgsaWdub3JlOnF0Lmlnbm9yZSx1bml0bGVzczpxdC51bml0bGVzcyxwcmVzZXJ2ZTpxdC5wcmVzZXJ2ZX0pLFhyPSgwLG4uWikodmEsMik7RHI9WHJbMF0sdGE9WHJbMV19dmFyIEVhPXFlKERyLEJ0KTtEci5fdG9rZW5LZXk9RWEsTnIuX3Rva2VuS2V5PXFlKE5yLEJ0KTt2YXIgcG89KExyPXF0PT1udWxsP3ZvaWQgMDpxdC5rZXkpIT09bnVsbCYmTHIhPT12b2lkIDA/THI6RWE7RHIuX3RoZW1lS2V5PXBvLGh0KHBvKTt2YXIgeWE9IiIuY29uY2F0KE9lLCItIikuY29uY2F0KGEoRWEpKTtyZXR1cm4gRHIuX2hhc2hJZD15YSxbRHIseWEsTnIsdGEsKHF0PT1udWxsP3ZvaWQgMDpxdC5rZXkpfHwiIl19LGZ1bmN0aW9uKExyKXtwdChMclswXS5fdGhlbWVLZXksVmUpfSxmdW5jdGlvbihMcil7dmFyIERyPSgwLG4uWikoTHIsNCksTnI9RHJbMF0sdGE9RHJbM107aWYocXQmJnRhKXt2YXIgdmE9KDAsdS5ocSkodGEsYSgiY3NzLXZhcmlhYmxlcy0iLmNvbmNhdChOci5fdGhlbWVLZXkpKSx7bWFyazpJLHByZXBlbmQ6InF1ZXVlIixhdHRhY2hUbzpzdCxwcmlvcml0eTotOTk5fSk7dmFbel09VmUsdmEuc2V0QXR0cmlidXRlKEwsTnIuX3RoZW1lS2V5KX19KTtyZXR1cm4gQ259dmFyIFh0PWZ1bmN0aW9uKGllLHllLEIpe3ZhciBWZT0oMCxuLlopKGllLDUpLHN0PVZlWzJdLFJ0PVZlWzNdLEJ0PVZlWzRdLEx0PUJ8fHt9LFl0PUx0LnBsYWluO2lmKCFSdClyZXR1cm4gbnVsbDt2YXIgQW49c3QuX3Rva2VuS2V5LHNuPS05OTkscXQ9eyJkYXRhLXJjLW9yZGVyIjoicHJlcGVuZFF1ZXVlIiwiZGF0YS1yYy1wcmlvcml0eSI6IiIuY29uY2F0KHNuKX0sTW49JChSdCxCdCxBbixxdCxZdCk7cmV0dXJuW3NuLEFuLE1uXX0sZm49ZSg4NzQ2Miksbm49e2FuaW1hdGlvbkl0ZXJhdGlvbkNvdW50OjEsYm9yZGVySW1hZ2VPdXRzZXQ6MSxib3JkZXJJbWFnZVNsaWNlOjEsYm9yZGVySW1hZ2VXaWR0aDoxLGJveEZsZXg6MSxib3hGbGV4R3JvdXA6MSxib3hPcmRpbmFsR3JvdXA6MSxjb2x1bW5Db3VudDoxLGNvbHVtbnM6MSxmbGV4OjEsZmxleEdyb3c6MSxmbGV4UG9zaXRpdmU6MSxmbGV4U2hyaW5rOjEsZmxleE5lZ2F0aXZlOjEsZmxleE9yZGVyOjEsZ3JpZFJvdzoxLGdyaWRSb3dFbmQ6MSxncmlkUm93U3BhbjoxLGdyaWRSb3dTdGFydDoxLGdyaWRDb2x1bW46MSxncmlkQ29sdW1uRW5kOjEsZ3JpZENvbHVtblNwYW46MSxncmlkQ29sdW1uU3RhcnQ6MSxtc0dyaWRSb3c6MSxtc0dyaWRSb3dTcGFuOjEsbXNHcmlkQ29sdW1uOjEsbXNHcmlkQ29sdW1uU3BhbjoxLGZvbnRXZWlnaHQ6MSxsaW5lSGVpZ2h0OjEsb3BhY2l0eToxLG9yZGVyOjEsb3JwaGFuczoxLHRhYlNpemU6MSx3aWRvd3M6MSx6SW5kZXg6MSx6b29tOjEsV2Via2l0TGluZUNsYW1wOjEsZmlsbE9wYWNpdHk6MSxmbG9vZE9wYWNpdHk6MSxzdG9wT3BhY2l0eToxLHN0cm9rZURhc2hhcnJheToxLHN0cm9rZURhc2hvZmZzZXQ6MSxzdHJva2VNaXRlcmxpbWl0OjEsc3Ryb2tlT3BhY2l0eToxLHN0cm9rZVdpZHRoOjF9LG9uPW5uLE50PSItbXMtIixabj0iLW1vei0iLHluPSItd2Via2l0LSIsZ249ImNvbW0iLEJuPSJydWxlIixWbj0iZGVjbCIsTm49IkBwYWdlIixmdD0iQG1lZGlhIixldD0iQGltcG9ydCIsSnQ9IkBjaGFyc2V0Iix3dD0iQHZpZXdwb3J0IixfdD0iQHN1cHBvcnRzIix4bj0iQGRvY3VtZW50IixZbj0iQG5hbWVzcGFjZSIsUG49IkBrZXlmcmFtZXMiLExuPSJAZm9udC1mYWNlIixlcj0iQGNvdW50ZXItc3R5bGUiLFFuPSJAZm9udC1mZWF0dXJlLXZhbHVlcyIsdXI9IkBsYXllciIsaXI9IkBzY29wZSIsdm49TWF0aC5hYnMsY3I9U3RyaW5nLmZyb21DaGFyQ29kZSxXbj1PYmplY3QuYXNzaWduO2Z1bmN0aW9uIHduKGx0LGllKXtyZXR1cm4ga3QobHQsMCleNDU/KCgoaWU8PDJea3QobHQsMCkpPDwyXmt0KGx0LDEpKTw8Ml5rdChsdCwyKSk8PDJea3QobHQsMyk6MH1mdW5jdGlvbiBDdChsdCl7cmV0dXJuIGx0LnRyaW0oKX1mdW5jdGlvbiBadChsdCxpZSl7cmV0dXJuKGx0PWllLmV4ZWMobHQpKT9sdFswXTpsdH1mdW5jdGlvbiBhbihsdCxpZSx5ZSl7cmV0dXJuIGx0LnJlcGxhY2UoaWUseWUpfWZ1bmN0aW9uIER0KGx0LGllLHllKXtyZXR1cm4gbHQuaW5kZXhPZihpZSx5ZSl9ZnVuY3Rpb24ga3QobHQsaWUpe3JldHVybiBsdC5jaGFyQ29kZUF0KGllKXwwfWZ1bmN0aW9uIHRuKGx0LGllLHllKXtyZXR1cm4gbHQuc2xpY2UoaWUseWUpfWZ1bmN0aW9uIG1uKGx0KXtyZXR1cm4gbHQubGVuZ3RofWZ1bmN0aW9uIEtuKGx0KXtyZXR1cm4gbHQubGVuZ3RofWZ1bmN0aW9uIEpuKGx0LGllKXtyZXR1cm4gaWUucHVzaChsdCksbHR9ZnVuY3Rpb24gWG4obHQsaWUpe3JldHVybiBsdC5tYXAoaWUpLmpvaW4oIiIpfWZ1bmN0aW9uIGZyKGx0LGllKXtyZXR1cm4gbHQuZmlsdGVyKGZ1bmN0aW9uKHllKXtyZXR1cm4hWnQoeWUsaWUpfSl9ZnVuY3Rpb24gcnIobHQsaWUpe2Zvcih2YXIgeWU9IiIsQj0wO0I8bHQubGVuZ3RoO0IrKyl5ZSs9aWUobHRbQl0sQixsdCxpZSl8fCIiO3JldHVybiB5ZX1mdW5jdGlvbiBocihsdCxpZSx5ZSxCKXtzd2l0Y2gobHQudHlwZSl7Y2FzZSB1cjppZihsdC5jaGlsZHJlbi5sZW5ndGgpYnJlYWs7Y2FzZSBldDpjYXNlIFluOmNhc2UgVm46cmV0dXJuIGx0LnJldHVybj1sdC5yZXR1cm58fGx0LnZhbHVlO2Nhc2UgZ246cmV0dXJuIiI7Y2FzZSBQbjpyZXR1cm4gbHQucmV0dXJuPWx0LnZhbHVlKyJ7IitycihsdC5jaGlsZHJlbixCKSsifSI7Y2FzZSBCbjppZighbW4obHQudmFsdWU9bHQucHJvcHMuam9pbigiLCIpKSlyZXR1cm4iIn1yZXR1cm4gbW4oeWU9cnIobHQuY2hpbGRyZW4sQikpP2x0LnJldHVybj1sdC52YWx1ZSsieyIreWUrIn0iOiIifXZhciBGbj0xLGFyPTEsbHI9MCwkbj0wLHNyPTAsRnI9IiI7ZnVuY3Rpb24gWmUobHQsaWUseWUsQixWZSxzdCxSdCxCdCl7cmV0dXJue3ZhbHVlOmx0LHJvb3Q6aWUscGFyZW50OnllLHR5cGU6Qixwcm9wczpWZSxjaGlsZHJlbjpzdCxsaW5lOkZuLGNvbHVtbjphcixsZW5ndGg6UnQscmV0dXJuOiIiLHNpYmxpbmdzOkJ0fX1mdW5jdGlvbiBIZShsdCxpZSl7cmV0dXJuIGFzc2lnbihaZSgiIixudWxsLG51bGwsIiIsbnVsbCxudWxsLDAsbHQuc2libGluZ3MpLGx0LHtsZW5ndGg6LWx0Lmxlbmd0aH0saWUpfWZ1bmN0aW9uIG50KGx0KXtmb3IoO2x0LnJvb3Q7KWx0PUhlKGx0LnJvb3Qse2NoaWxkcmVuOltsdF19KTthcHBlbmQobHQsbHQuc2libGluZ3MpfWZ1bmN0aW9uIHJ0KCl7cmV0dXJuIHNyfWZ1bmN0aW9uIHZ0KCl7cmV0dXJuIHNyPSRuPjA/a3QoRnIsLS0kbik6MCxhci0tLHNyPT09MTAmJihhcj0xLEZuLS0pLHNyfWZ1bmN0aW9uIFZ0KCl7cmV0dXJuIHNyPSRuPGxyP2t0KEZyLCRuKyspOjAsYXIrKyxzcj09PTEwJiYoYXI9MSxGbisrKSxzcn1mdW5jdGlvbiBlbigpe3JldHVybiBrdChGciwkbil9ZnVuY3Rpb24gUm4oKXtyZXR1cm4gJG59ZnVuY3Rpb24gam4obHQsaWUpe3JldHVybiB0bihGcixsdCxpZSl9ZnVuY3Rpb24gYm4obHQpe3N3aXRjaChsdCl7Y2FzZSAwOmNhc2UgOTpjYXNlIDEwOmNhc2UgMTM6Y2FzZSAzMjpyZXR1cm4gNTtjYXNlIDMzOmNhc2UgNDM6Y2FzZSA0NDpjYXNlIDQ3OmNhc2UgNjI6Y2FzZSA2NDpjYXNlIDEyNjpjYXNlIDU5OmNhc2UgMTIzOmNhc2UgMTI1OnJldHVybiA0O2Nhc2UgNTg6cmV0dXJuIDM7Y2FzZSAzNDpjYXNlIDM5OmNhc2UgNDA6Y2FzZSA5MTpyZXR1cm4gMjtjYXNlIDQxOmNhc2UgOTM6cmV0dXJuIDF9cmV0dXJuIDB9ZnVuY3Rpb24gSG4obHQpe3JldHVybiBGbj1hcj0xLGxyPW1uKEZyPWx0KSwkbj0wLFtdfWZ1bmN0aW9uIEd0KGx0KXtyZXR1cm4gRnI9IiIsbHR9ZnVuY3Rpb24gU24obHQpe3JldHVybiBDdChqbigkbi0xLHZlKGx0PT09OTE/bHQrMjpsdD09PTQwP2x0KzE6bHQpKSl9ZnVuY3Rpb24gT24obHQpe3JldHVybiBHdChQZShIbihsdCkpKX1mdW5jdGlvbiBfbihsdCl7Zm9yKDsoc3I9ZW4oKSkmJnNyPDMzOylWdCgpO3JldHVybiBibihsdCk+Mnx8Ym4oc3IpPjM/IiI6IiAifWZ1bmN0aW9uIFBlKGx0KXtmb3IoO1Z0KCk7KXN3aXRjaChibihzcikpe2Nhc2UgMDphcHBlbmQoeGUoJG4tMSksbHQpO2JyZWFrO2Nhc2UgMjphcHBlbmQoU24oc3IpLGx0KTticmVhaztkZWZhdWx0OmFwcGVuZChmcm9tKHNyKSxsdCl9cmV0dXJuIGx0fWZ1bmN0aW9uIGdlKGx0LGllKXtmb3IoOy0taWUmJlZ0KCkmJiEoc3I8NDh8fHNyPjEwMnx8c3I+NTcmJnNyPDY1fHxzcj43MCYmc3I8OTcpOyk7cmV0dXJuIGpuKGx0LFJuKCkrKGllPDYmJmVuKCk9PTMyJiZWdCgpPT0zMikpfWZ1bmN0aW9uIHZlKGx0KXtmb3IoO1Z0KCk7KXN3aXRjaChzcil7Y2FzZSBsdDpyZXR1cm4gJG47Y2FzZSAzNDpjYXNlIDM5Omx0IT09MzQmJmx0IT09MzkmJnZlKHNyKTticmVhaztjYXNlIDQwOmx0PT09NDEmJnZlKGx0KTticmVhaztjYXNlIDkyOlZ0KCk7YnJlYWt9cmV0dXJuICRufWZ1bmN0aW9uIEllKGx0LGllKXtmb3IoO1Z0KCkmJmx0K3NyIT09NTc7KWlmKGx0K3NyPT09ODQmJmVuKCk9PT00NylicmVhaztyZXR1cm4iLyoiK2puKGllLCRuLTEpKyIqIitjcihsdD09PTQ3P2x0OlZ0KCkpfWZ1bmN0aW9uIHhlKGx0KXtmb3IoOyFibihlbigpKTspVnQoKTtyZXR1cm4gam4obHQsJG4pfWZ1bmN0aW9uIGF0KGx0KXtyZXR1cm4gR3QoZHQoIiIsbnVsbCxudWxsLG51bGwsWyIiXSxsdD1IbihsdCksMCxbMF0sbHQpKX1mdW5jdGlvbiBkdChsdCxpZSx5ZSxCLFZlLHN0LFJ0LEJ0LEx0KXtmb3IodmFyIFl0PTAsQW49MCxzbj1SdCxxdD0wLE1uPTAsQ3I9MCxxbj0xLGpyPTEsQ249MSxMcj0wLERyPSIiLE5yPVZlLHRhPXN0LHZhPUIsWHI9RHI7anI7KXN3aXRjaChDcj1McixMcj1WdCgpKXtjYXNlIDQwOmlmKENyIT0xMDgmJmt0KFhyLHNuLTEpPT01OCl7RHQoWHIrPWFuKFNuKExyKSwiJiIsIiZcZiIpLCImXGYiLHZuKFl0P0J0W1l0LTFdOjApKSE9LTEmJihDbj0tMSk7YnJlYWt9Y2FzZSAzNDpjYXNlIDM5OmNhc2UgOTE6WHIrPVNuKExyKTticmVhaztjYXNlIDk6Y2FzZSAxMDpjYXNlIDEzOmNhc2UgMzI6WHIrPV9uKENyKTticmVhaztjYXNlIDkyOlhyKz1nZShSbigpLTEsNyk7Y29udGludWU7Y2FzZSA0Nzpzd2l0Y2goZW4oKSl7Y2FzZSA0MjpjYXNlIDQ3OkpuKEh0KEllKFZ0KCksUm4oKSksaWUseWUsTHQpLEx0KSwoYm4oQ3J8fDEpPT01fHxibihlbigpfHwxKT09NSkmJm1uKFhyKSYmdG4oWHIsLTEsdm9pZCAwKSE9PSIgIiYmKFhyKz0iICIpO2JyZWFrO2RlZmF1bHQ6WHIrPSIvIn1icmVhaztjYXNlIDEyMypxbjpCdFtZdCsrXT1tbihYcikqQ247Y2FzZSAxMjUqcW46Y2FzZSA1OTpjYXNlIDA6c3dpdGNoKExyKXtjYXNlIDA6Y2FzZSAxMjU6anI9MDtjYXNlIDU5K0FuOkNuPT0tMSYmKFhyPWFuKFhyLC9cZi9nLCIiKSksTW4+MCYmKG1uKFhyKS1zbnx8cW49PT0wJiZDcj09PTQ3KSYmSm4oTW4+MzI/anQoWHIrIjsiLEIseWUsc24tMSxMdCk6anQoYW4oWHIsIiAiLCIiKSsiOyIsQix5ZSxzbi0yLEx0KSxMdCk7YnJlYWs7Y2FzZSA1OTpYcis9IjsiO2RlZmF1bHQ6aWYoSm4odmE9RXQoWHIsaWUseWUsWXQsQW4sVmUsQnQsRHIsTnI9W10sdGE9W10sc24sc3QpLHN0KSxMcj09PTEyMylpZihBbj09PTApZHQoWHIsaWUsdmEsdmEsTnIsc3Qsc24sQnQsdGEpO2Vsc2V7c3dpdGNoKHF0KXtjYXNlIDk5OmlmKGt0KFhyLDMpPT09MTEwKWJyZWFrO2Nhc2UgMTA4OmlmKGt0KFhyLDIpPT09OTcpYnJlYWs7ZGVmYXVsdDpBbj0wO2Nhc2UgMTAwOmNhc2UgMTA5OmNhc2UgMTE1On1Bbj9kdChsdCx2YSx2YSxCJiZKbihFdChsdCx2YSx2YSwwLDAsVmUsQnQsRHIsVmUsTnI9W10sc24sdGEpLHRhKSxWZSx0YSxzbixCdCxCP05yOnRhKTpkdChYcix2YSx2YSx2YSxbIiJdLHRhLDAsQnQsdGEpfX1ZdD1Bbj1Nbj0wLHFuPUNuPTEsRHI9WHI9IiIsc249UnQ7YnJlYWs7Y2FzZSA1ODpzbj0xK21uKFhyKSxNbj1DcjtkZWZhdWx0OmlmKHFuPDEpe2lmKExyPT0xMjMpLS1xbjtlbHNlIGlmKExyPT0xMjUmJnFuKys9PTAmJnZ0KCk9PTEyNSljb250aW51ZX1zd2l0Y2goWHIrPWNyKExyKSxMcipxbil7Y2FzZSAzODpDbj1Bbj4wPzE6KFhyKz0iXGYiLC0xKTticmVhaztjYXNlIDQ0OkJ0W1l0KytdPShtbihYciktMSkqQ24sQ249MTticmVhaztjYXNlIDY0OmVuKCk9PT00NSYmKFhyKz1TbihWdCgpKSkscXQ9ZW4oKSxBbj1zbj1tbihEcj1Ycis9eGUoUm4oKSkpLExyKys7YnJlYWs7Y2FzZSA0NTpDcj09PTQ1JiZtbihYcik9PTImJihxbj0wKX19cmV0dXJuIHN0fWZ1bmN0aW9uIEV0KGx0LGllLHllLEIsVmUsc3QsUnQsQnQsTHQsWXQsQW4sc24pe2Zvcih2YXIgcXQ9VmUtMSxNbj1WZT09PTA/c3Q6WyIiXSxDcj1LbihNbikscW49MCxqcj0wLENuPTA7cW48QjsrK3FuKWZvcih2YXIgTHI9MCxEcj10bihsdCxxdCsxLHF0PXZuKGpyPVJ0W3FuXSkpLE5yPWx0O0xyPENyOysrTHIpKE5yPUN0KGpyPjA/TW5bTHJdKyIgIitEcjphbihEciwvJlxmL2csTW5bTHJdKSkpJiYoTHRbQ24rK109TnIpO3JldHVybiBaZShsdCxpZSx5ZSxWZT09PTA/Qm46QnQsTHQsWXQsQW4sc24pfWZ1bmN0aW9uIEh0KGx0LGllLHllLEIpe3JldHVybiBaZShsdCxpZSx5ZSxnbixjcihydCgpKSx0bihsdCwyLC0yKSwwLEIpfWZ1bmN0aW9uIGp0KGx0LGllLHllLEIsVmUpe3JldHVybiBaZShsdCxpZSx5ZSxWbix0bihsdCwwLEIpLHRuKGx0LEIrMSwtMSksQixWZSl9ZnVuY3Rpb24gRnQobHQsaWUpe3ZhciB5ZT1pZS5wYXRoLEI9aWUucGFyZW50U2VsZWN0b3JzO2Rldldhcm5pbmcoITEsIltBbnQgRGVzaWduIENTUy1pbi1KU10gIi5jb25jYXQoeWU/IkVycm9yIGluICIuY29uY2F0KHllLCI6ICIpOiIiKS5jb25jYXQobHQpLmNvbmNhdChCLmxlbmd0aD8iIFNlbGVjdG9yOiAiLmNvbmNhdChCLmpvaW4oIiB8ICIpKToiIikpfXZhciBwbj1mdW5jdGlvbihpZSx5ZSxCKXtpZihpZT09PSJjb250ZW50Iil7dmFyIFZlPS8oYXR0cnxjb3VudGVycz98dXJsfCgoKHJlcGVhdGluZy0pPyhsaW5lYXJ8cmFkaWFsKSl8Y29uaWMpLWdyYWRpZW50KVwofChuby0pPyhvcGVufGNsb3NlKS1xdW90ZS8sc3Q9WyJub3JtYWwiLCJub25lIiwiaW5pdGlhbCIsImluaGVyaXQiLCJ1bnNldCJdOyh0eXBlb2YgeWUhPSJzdHJpbmcifHxzdC5pbmRleE9mKHllKT09PS0xJiYhVmUudGVzdCh5ZSkmJih5ZS5jaGFyQXQoMCkhPT15ZS5jaGFyQXQoeWUubGVuZ3RoLTEpfHx5ZS5jaGFyQXQoMCkhPT0nIicmJnllLmNoYXJBdCgwKSE9PSInIikpJiZsaW50V2FybmluZygiWW91IHNlZW0gdG8gYmUgdXNpbmcgYSB2YWx1ZSBmb3IgJ2NvbnRlbnQnIHdpdGhvdXQgcXVvdGVzLCB0cnkgcmVwbGFjaW5nIGl0IHdpdGggYGNvbnRlbnQ6ICdcIiIuY29uY2F0KHllLCJcIidgLiIpLEIpfX0sY249bnVsbCxvcj1mdW5jdGlvbihpZSx5ZSxCKXtpZT09PSJhbmltYXRpb24iJiZCLmhhc2hJZCYmeWUhPT0ibm9uZSImJmxpbnRXYXJuaW5nKCJZb3Ugc2VlbSB0byBiZSB1c2luZyBoYXNoZWQgYW5pbWF0aW9uICciLmNvbmNhdCh5ZSwiJywgaW4gd2hpY2ggY2FzZSAnYW5pbWF0aW9uTmFtZScgd2l0aCBLZXlmcmFtZSBhcyB2YWx1ZSBpcyByZWNvbW1lbmRlZC4iKSxCKX0sVG49bnVsbDtmdW5jdGlvbiB6bihsdCl7dmFyIGllLHllPSgoaWU9bHQubWF0Y2goLzpub3RcKChbXildKilcKS8pKT09PW51bGx8fGllPT09dm9pZCAwP3ZvaWQgMDppZVsxXSl8fCIiLEI9eWUuc3BsaXQoLyhcW1teW10qXSl8KD89Wy4jXSkvKS5maWx0ZXIoZnVuY3Rpb24oVmUpe3JldHVybiBWZX0pO3JldHVybiBCLmxlbmd0aD4xfWZ1bmN0aW9uIHJuKGx0KXtyZXR1cm4gbHQucGFyZW50U2VsZWN0b3JzLnJlZHVjZShmdW5jdGlvbihpZSx5ZSl7cmV0dXJuIGllP3llLmluY2x1ZGVzKCImIik/eWUucmVwbGFjZSgvJi9nLGllKToiIi5jb25jYXQoaWUsIiAiKS5jb25jYXQoeWUpOnllfSwiIil9dmFyIEt0PWZ1bmN0aW9uKGllLHllLEIpe3ZhciBWZT1ybihCKSxzdD1WZS5tYXRjaCgvOm5vdFwoW14pXSpcKS9nKXx8W107c3QubGVuZ3RoPjAmJnN0LnNvbWUoem4pJiZsaW50V2FybmluZygiQ29uY2F0ICc6bm90JyBzZWxlY3RvciBub3Qgc3VwcG9ydCBpbiBsZWdhY3kgYnJvd3NlcnMuIixCKX0senQ9bnVsbCxPdD1mdW5jdGlvbihpZSx5ZSxCKXtzd2l0Y2goaWUpe2Nhc2UibWFyZ2luTGVmdCI6Y2FzZSJtYXJnaW5SaWdodCI6Y2FzZSJwYWRkaW5nTGVmdCI6Y2FzZSJwYWRkaW5nUmlnaHQiOmNhc2UibGVmdCI6Y2FzZSJyaWdodCI6Y2FzZSJib3JkZXJMZWZ0IjpjYXNlImJvcmRlckxlZnRXaWR0aCI6Y2FzZSJib3JkZXJMZWZ0U3R5bGUiOmNhc2UiYm9yZGVyTGVmdENvbG9yIjpjYXNlImJvcmRlclJpZ2h0IjpjYXNlImJvcmRlclJpZ2h0V2lkdGgiOmNhc2UiYm9yZGVyUmlnaHRTdHlsZSI6Y2FzZSJib3JkZXJSaWdodENvbG9yIjpjYXNlImJvcmRlclRvcExlZnRSYWRpdXMiOmNhc2UiYm9yZGVyVG9wUmlnaHRSYWRpdXMiOmNhc2UiYm9yZGVyQm90dG9tTGVmdFJhZGl1cyI6Y2FzZSJib3JkZXJCb3R0b21SaWdodFJhZGl1cyI6bGludFdhcm5pbmcoIllvdSBzZWVtIHRvIGJlIHVzaW5nIG5vbi1sb2dpY2FsIHByb3BlcnR5ICciLmNvbmNhdChpZSwiJyB3aGljaCBpcyBub3QgY29tcGF0aWJsZSB3aXRoIFJUTCBtb2RlLiBQbGVhc2UgdXNlIGxvZ2ljYWwgcHJvcGVydGllcyBhbmQgdmFsdWVzIGluc3RlYWQuIEZvciBtb3JlIGluZm9ybWF0aW9uOiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvQ1NTX0xvZ2ljYWxfUHJvcGVydGllcy4iKSxCKTtyZXR1cm47Y2FzZSJtYXJnaW4iOmNhc2UicGFkZGluZyI6Y2FzZSJib3JkZXJXaWR0aCI6Y2FzZSJib3JkZXJTdHlsZSI6aWYodHlwZW9mIHllPT0ic3RyaW5nIil7dmFyIFZlPXllLnNwbGl0KCIgIikubWFwKGZ1bmN0aW9uKEJ0KXtyZXR1cm4gQnQudHJpbSgpfSk7VmUubGVuZ3RoPT09NCYmVmVbMV0hPT1WZVszXSYmbGludFdhcm5pbmcoIllvdSBzZWVtIHRvIGJlIHVzaW5nICciLmNvbmNhdChpZSwiJyBwcm9wZXJ0eSB3aXRoIGRpZmZlcmVudCBsZWZ0ICIpLmNvbmNhdChpZSwiIGFuZCByaWdodCAiKS5jb25jYXQoaWUsIiwgd2hpY2ggaXMgbm90IGNvbXBhdGlibGUgd2l0aCBSVEwgbW9kZS4gUGxlYXNlIHVzZSBsb2dpY2FsIHByb3BlcnRpZXMgYW5kIHZhbHVlcyBpbnN0ZWFkLiBGb3IgbW9yZSBpbmZvcm1hdGlvbjogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL0NTU19Mb2dpY2FsX1Byb3BlcnRpZXMuIiksQil9cmV0dXJuO2Nhc2UiY2xlYXIiOmNhc2UidGV4dEFsaWduIjooeWU9PT0ibGVmdCJ8fHllPT09InJpZ2h0IikmJmxpbnRXYXJuaW5nKCJZb3Ugc2VlbSB0byBiZSB1c2luZyBub24tbG9naWNhbCB2YWx1ZSAnIi5jb25jYXQoeWUsIicgb2YgIikuY29uY2F0KGllLCIsIHdoaWNoIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggUlRMIG1vZGUuIFBsZWFzZSB1c2UgbG9naWNhbCBwcm9wZXJ0aWVzIGFuZCB2YWx1ZXMgaW5zdGVhZC4gRm9yIG1vcmUgaW5mb3JtYXRpb246IGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9DU1NfTG9naWNhbF9Qcm9wZXJ0aWVzLiIpLEIpO3JldHVybjtjYXNlImJvcmRlclJhZGl1cyI6aWYodHlwZW9mIHllPT0ic3RyaW5nIil7dmFyIHN0PXllLnNwbGl0KCIvIikubWFwKGZ1bmN0aW9uKEJ0KXtyZXR1cm4gQnQudHJpbSgpfSksUnQ9c3QucmVkdWNlKGZ1bmN0aW9uKEJ0LEx0KXtpZihCdClyZXR1cm4gQnQ7dmFyIFl0PUx0LnNwbGl0KCIgIikubWFwKGZ1bmN0aW9uKEFuKXtyZXR1cm4gQW4udHJpbSgpfSk7cmV0dXJuIFl0Lmxlbmd0aD49MiYmWXRbMF0hPT1ZdFsxXXx8WXQubGVuZ3RoPT09MyYmWXRbMV0hPT1ZdFsyXXx8WXQubGVuZ3RoPT09NCYmWXRbMl0hPT1ZdFszXT8hMDpCdH0sITEpO1J0JiZsaW50V2FybmluZygiWW91IHNlZW0gdG8gYmUgdXNpbmcgbm9uLWxvZ2ljYWwgdmFsdWUgJyIuY29uY2F0KHllLCInIG9mICIpLmNvbmNhdChpZSwiLCB3aGljaCBpcyBub3QgY29tcGF0aWJsZSB3aXRoIFJUTCBtb2RlLiBQbGVhc2UgdXNlIGxvZ2ljYWwgcHJvcGVydGllcyBhbmQgdmFsdWVzIGluc3RlYWQuIEZvciBtb3JlIGluZm9ybWF0aW9uOiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvQ1NTX0xvZ2ljYWxfUHJvcGVydGllcy4iKSxCKX1yZXR1cm47ZGVmYXVsdDp9fSxsbj1udWxsLEVuPWZ1bmN0aW9uKGllLHllLEIpeyh0eXBlb2YgeWU9PSJzdHJpbmciJiYvTmFOL2cudGVzdCh5ZSl8fE51bWJlci5pc05hTih5ZSkpJiZsaW50V2FybmluZygiVW5leHBlY3RlZCAnTmFOJyBpbiBwcm9wZXJ0eSAnIi5jb25jYXQoaWUsIjogIikuY29uY2F0KHllLCInLiIpLEIpfSxHbj1udWxsLHByPWZ1bmN0aW9uKGllLHllLEIpe0IucGFyZW50U2VsZWN0b3JzLnNvbWUoZnVuY3Rpb24oVmUpe3ZhciBzdD1WZS5zcGxpdCgiLCIpO3JldHVybiBzdC5zb21lKGZ1bmN0aW9uKFJ0KXtyZXR1cm4gUnQuc3BsaXQoIiYiKS5sZW5ndGg+Mn0pfSkmJmxpbnRXYXJuaW5nKCJTaG91bGQgbm90IHVzZSBtb3JlIHRoYW4gb25lIGAmYCBpbiBhIHNlbGVjdG9yLiIsQil9LFByPW51bGwsYnI9ImRhdGEtYW50LWNzc2luanMtY2FjaGUtcGF0aCIsTXI9Il9GSUxFX1NUWUxFX18iO2Z1bmN0aW9uICRyKGx0KXtyZXR1cm4gT2JqZWN0LmtleXMobHQpLm1hcChmdW5jdGlvbihpZSl7dmFyIHllPWx0W2llXTtyZXR1cm4iIi5jb25jYXQoaWUsIjoiKS5jb25jYXQoeWUpfSkuam9pbigiOyIpfXZhciBHcixvYT0hMDtmdW5jdGlvbiByYShsdCl7dmFyIGllPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTohMDtHcj1sdCxvYT1pZX1mdW5jdGlvbiBNYSgpe2lmKCFHciYmKEdyPXt9LCgwLHRlLlopKCkpKXt2YXIgbHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7bHQuY2xhc3NOYW1lPWJyLGx0LnN0eWxlLnBvc2l0aW9uPSJmaXhlZCIsbHQuc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIixsdC5zdHlsZS50b3A9Ii05OTk5cHgiLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobHQpO3ZhciBpZT1nZXRDb21wdXRlZFN0eWxlKGx0KS5jb250ZW50fHwiIjtpZT1pZS5yZXBsYWNlKC9eIi8sIiIpLnJlcGxhY2UoLyIkLywiIiksaWUuc3BsaXQoIjsiKS5mb3JFYWNoKGZ1bmN0aW9uKFZlKXt2YXIgc3Q9VmUuc3BsaXQoIjoiKSxSdD0oMCxuLlopKHN0LDIpLEJ0PVJ0WzBdLEx0PVJ0WzFdO0dyW0J0XT1MdH0pO3ZhciB5ZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJzdHlsZVsiLmNvbmNhdChiciwiXSIpKTtpZih5ZSl7dmFyIEI7b2E9ITEsKEI9eWUucGFyZW50Tm9kZSk9PT1udWxsfHxCPT09dm9pZCAwfHxCLnJlbW92ZUNoaWxkKHllKX1kb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGx0KX19ZnVuY3Rpb24gZmEobHQpe3JldHVybiBNYSgpLCEhR3JbbHRdfWZ1bmN0aW9uIGhhKGx0KXt2YXIgaWU9R3JbbHRdLHllPW51bGw7aWYoaWUmJigwLHRlLlopKCkpaWYob2EpeWU9TXI7ZWxzZXt2YXIgQj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJzdHlsZVsiLmNvbmNhdChJLCc9IicpLmNvbmNhdChHcltsdF0sJyJdJykpO0I/eWU9Qi5pbm5lckhUTUw6ZGVsZXRlIEdyW2x0XX1yZXR1cm5beWUsaWVdfXZhciBlYT0iX3NraXBfY2hlY2tfIixOYT0iX211bHRpX3ZhbHVlXyI7ZnVuY3Rpb24gYmEobHQpe3ZhciBpZT1ycihhdChsdCksaHIpO3JldHVybiBpZS5yZXBsYWNlKC9ceyUlJVw6W147XTt9L2csIjsiKX1mdW5jdGlvbiBBcihsdCl7cmV0dXJuKDAsbWUuWikobHQpPT09Im9iamVjdCImJmx0JiYoZWEgaW4gbHR8fE5hIGluIGx0KX1mdW5jdGlvbiBScihsdCxpZSx5ZSl7aWYoIWllKXJldHVybiBsdDt2YXIgQj0iLiIuY29uY2F0KGllKSxWZT15ZT09PSJsb3ciPyI6d2hlcmUoIi5jb25jYXQoQiwiKSIpOkIsc3Q9bHQuc3BsaXQoIiwiKS5tYXAoZnVuY3Rpb24oUnQpe3ZhciBCdCxMdD1SdC50cmltKCkuc3BsaXQoL1xzKy8pLFl0PUx0WzBdfHwiIixBbj0oKEJ0PVl0Lm1hdGNoKC9eXHcrLykpPT09bnVsbHx8QnQ9PT12b2lkIDA/dm9pZCAwOkJ0WzBdKXx8IiI7cmV0dXJuIFl0PSIiLmNvbmNhdChBbikuY29uY2F0KFZlKS5jb25jYXQoWXQuc2xpY2UoQW4ubGVuZ3RoKSksW1l0XS5jb25jYXQoKDAsdC5aKShMdC5zbGljZSgxKSkpLmpvaW4oIiAiKX0pO3JldHVybiBzdC5qb2luKCIsIil9dmFyIG1yPWZ1bmN0aW9uIGx0KGllKXt2YXIgeWU9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOnt9LEI9YXJndW1lbnRzLmxlbmd0aD4yJiZhcmd1bWVudHNbMl0hPT12b2lkIDA/YXJndW1lbnRzWzJdOntyb290OiEwLHBhcmVudFNlbGVjdG9yczpbXX0sVmU9Qi5yb290LHN0PUIuaW5qZWN0SGFzaCxSdD1CLnBhcmVudFNlbGVjdG9ycyxCdD15ZS5oYXNoSWQsTHQ9eWUubGF5ZXIsWXQ9eWUucGF0aCxBbj15ZS5oYXNoUHJpb3JpdHksc249eWUudHJhbnNmb3JtZXJzLHF0PXNuPT09dm9pZCAwP1tdOnNuLE1uPXllLmxpbnRlcnMsQ3I9TW49PT12b2lkIDA/W106TW4scW49IiIsanI9e307ZnVuY3Rpb24gQ24oTnIpe3ZhciB0YT1Oci5nZXROYW1lKEJ0KTtpZighanJbdGFdKXt2YXIgdmE9bHQoTnIuc3R5bGUseWUse3Jvb3Q6ITEscGFyZW50U2VsZWN0b3JzOlJ0fSksWHI9KDAsbi5aKSh2YSwxKSxFYT1YclswXTtqclt0YV09IkBrZXlmcmFtZXMgIi5jb25jYXQoTnIuZ2V0TmFtZShCdCkpLmNvbmNhdChFYSl9fWZ1bmN0aW9uIExyKE5yKXt2YXIgdGE9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOltdO3JldHVybiBOci5mb3JFYWNoKGZ1bmN0aW9uKHZhKXtBcnJheS5pc0FycmF5KHZhKT9Mcih2YSx0YSk6dmEmJnRhLnB1c2godmEpfSksdGF9dmFyIERyPUxyKEFycmF5LmlzQXJyYXkoaWUpP2llOltpZV0pO3JldHVybiBEci5mb3JFYWNoKGZ1bmN0aW9uKE5yKXt2YXIgdGE9dHlwZW9mIE5yPT0ic3RyaW5nIiYmIVZlP3t9Ok5yO2lmKHR5cGVvZiB0YT09InN0cmluZyIpcW4rPSIiLmNvbmNhdCh0YSxgCitgKTtlbHNlIGlmKHRhLl9rZXlmcmFtZSlDbih0YSk7ZWxzZXt2YXIgdmE9cXQucmVkdWNlKGZ1bmN0aW9uKFhyLEVhKXt2YXIgcG87cmV0dXJuKEVhPT1udWxsfHwocG89RWEudmlzaXQpPT09bnVsbHx8cG89PT12b2lkIDA/dm9pZCAwOnBvLmNhbGwoRWEsWHIpKXx8WHJ9LHRhKTtPYmplY3Qua2V5cyh2YSkuZm9yRWFjaChmdW5jdGlvbihYcil7dmFyIEVhPXZhW1hyXTtpZigoMCxtZS5aKShFYSk9PT0ib2JqZWN0IiYmRWEmJihYciE9PSJhbmltYXRpb25OYW1lInx8IUVhLl9rZXlmcmFtZSkmJiFBcihFYSkpe3ZhciBwbz0hMSx5YT1Yci50cmltKCksSWE9ITE7KFZlfHxzdCkmJkJ0P3lhLnN0YXJ0c1dpdGgoIkAiKT9wbz0hMDp5YT09PSImIj95YT1ScigiIixCdCxBbik6eWE9UnIoWHIsQnQsQW4pOlZlJiYhQnQmJih5YT09PSImInx8eWE9PT0iIikmJih5YT0iIixJYT0hMCk7dmFyIGdhPWx0KEVhLHllLHtyb290OklhLGluamVjdEhhc2g6cG8scGFyZW50U2VsZWN0b3JzOltdLmNvbmNhdCgoMCx0LlopKFJ0KSxbeWFdKX0pLEhhPSgwLG4uWikoZ2EsMiksUGE9SGFbMF0sZW89SGFbMV07anI9KDAsaS5aKSgoMCxpLlopKHt9LGpyKSxlbykscW4rPSIiLmNvbmNhdCh5YSkuY29uY2F0KFBhKX1lbHNle2xldCBHYT1mdW5jdGlvbihvbyxpbyl7dmFyIE9vPW9vLnJlcGxhY2UoL1tBLVpdL2csZnVuY3Rpb24oeG8pe3JldHVybiItIi5jb25jYXQoeG8udG9Mb3dlckNhc2UoKSl9KSxsbz1pbzshb25bb29dJiZ0eXBlb2YgbG89PSJudW1iZXIiJiZsbyE9PTAmJihsbz0iIi5jb25jYXQobG8sInB4IikpLG9vPT09ImFuaW1hdGlvbk5hbWUiJiZpbyE9PW51bGwmJmlvIT09dm9pZCAwJiZpby5fa2V5ZnJhbWUmJihDbihpbyksbG89aW8uZ2V0TmFtZShCdCkpLHFuKz0iIi5jb25jYXQoT28sIjoiKS5jb25jYXQobG8sIjsiKX07dmFyIFVhLHZvPShVYT1FYT09bnVsbD92b2lkIDA6RWEudmFsdWUpIT09bnVsbCYmVWEhPT12b2lkIDA/VWE6RWE7KDAsbWUuWikoRWEpPT09Im9iamVjdCImJkVhIT09bnVsbCYmRWEhPT12b2lkIDAmJkVhW05hXSYmQXJyYXkuaXNBcnJheSh2byk/dm8uZm9yRWFjaChmdW5jdGlvbihvbyl7R2EoWHIsb28pfSk6R2EoWHIsdm8pfX0pfX0pLFZlP0x0JiYocW4mJihxbj0iQGxheWVyICIuY29uY2F0KEx0Lm5hbWUsIiB7IikuY29uY2F0KHFuLCJ9IikpLEx0LmRlcGVuZGVuY2llcyYmKGpyWyJAbGF5ZXIgIi5jb25jYXQoTHQubmFtZSldPUx0LmRlcGVuZGVuY2llcy5tYXAoZnVuY3Rpb24oTnIpe3JldHVybiJAbGF5ZXIgIi5jb25jYXQoTnIsIiwgIikuY29uY2F0KEx0Lm5hbWUsIjsiKX0pLmpvaW4oYAorYCkpKTpxbj0ieyIuY29uY2F0KHFuLCJ9IiksW3FuLGpyXX07ZnVuY3Rpb24gSXIobHQsaWUpe3JldHVybiBhKCIiLmNvbmNhdChsdC5qb2luKCIlIikpLmNvbmNhdChpZSkpfWZ1bmN0aW9uIEhyKCl7cmV0dXJuIG51bGx9dmFyIEpyPSJzdHlsZSI7ZnVuY3Rpb24gVGEobHQsaWUpe3ZhciB5ZT1sdC50b2tlbixCPWx0LnBhdGgsVmU9bHQuaGFzaElkLHN0PWx0LmxheWVyLFJ0PWx0Lm5vbmNlLEJ0PWx0LmNsaWVudE9ubHksTHQ9bHQub3JkZXIsWXQ9THQ9PT12b2lkIDA/MDpMdCxBbj1jLnVzZUNvbnRleHQoSiksc249QW4uYXV0b0NsZWFyLHF0PUFuLm1vY2ssTW49QW4uZGVmYXVsdENhY2hlLENyPUFuLmhhc2hQcmlvcml0eSxxbj1Bbi5jb250YWluZXIsanI9QW4uc3NySW5saW5lLENuPUFuLnRyYW5zZm9ybWVycyxMcj1Bbi5saW50ZXJzLERyPUFuLmNhY2hlLE5yPUFuLmxheWVyLHRhPXllLl90b2tlbktleSx2YT1bdGFdO05yJiZ2YS5wdXNoKCJsYXllciIpLHZhLnB1c2guYXBwbHkodmEsKDAsdC5aKShCKSk7dmFyIFhyPVEsRWE9U3QoSnIsdmEsZnVuY3Rpb24oKXt2YXIgSGE9dmEuam9pbigifCIpO2lmKGZhKEhhKSl7dmFyIFBhPWhhKEhhKSxlbz0oMCxuLlopKFBhLDIpLFVhPWVvWzBdLHZvPWVvWzFdO2lmKFVhKXJldHVybltVYSx0YSx2byx7fSxCdCxZdF19dmFyIEdhPWllKCksb289bXIoR2Ese2hhc2hJZDpWZSxoYXNoUHJpb3JpdHk6Q3IsbGF5ZXI6TnI/c3Q6dm9pZCAwLHBhdGg6Qi5qb2luKCItIiksdHJhbnNmb3JtZXJzOkNuLGxpbnRlcnM6THJ9KSxpbz0oMCxuLlopKG9vLDIpLE9vPWlvWzBdLGxvPWlvWzFdLHhvPWJhKE9vKSxDbz1Jcih2YSx4byk7cmV0dXJuW3hvLHRhLENvLGxvLEJ0LFl0XX0sZnVuY3Rpb24oSGEsUGEpe3ZhciBlbz0oMCxuLlopKEhhLDMpLFVhPWVvWzJdOyhQYXx8c24pJiZRJiYoMCx1LmpMKShVYSx7bWFyazpJfSl9LGZ1bmN0aW9uKEhhKXt2YXIgUGE9KDAsbi5aKShIYSw0KSxlbz1QYVswXSxVYT1QYVsxXSx2bz1QYVsyXSxHYT1QYVszXTtpZihYciYmZW8hPT1Ncil7dmFyIG9vPXttYXJrOkkscHJlcGVuZDpOcj8hMToicXVldWUiLGF0dGFjaFRvOnFuLHByaW9yaXR5Oll0fSxpbz10eXBlb2YgUnQ9PSJmdW5jdGlvbiI/UnQoKTpSdDtpbyYmKG9vLmNzcD17bm9uY2U6aW99KTt2YXIgT289W10sbG89W107T2JqZWN0LmtleXMoR2EpLmZvckVhY2goZnVuY3Rpb24oQ28pe0NvLnN0YXJ0c1dpdGgoIkBsYXllciIpP09vLnB1c2goQ28pOmxvLnB1c2goQ28pfSksT28uZm9yRWFjaChmdW5jdGlvbihDbyl7KDAsdS5ocSkoYmEoR2FbQ29dKSwiX2xheWVyLSIuY29uY2F0KENvKSwoMCxpLlopKCgwLGkuWikoe30sb28pLHt9LHtwcmVwZW5kOiEwfSkpfSk7dmFyIHhvPSgwLHUuaHEpKGVvLHZvLG9vKTt4b1t6XT1Eci5pbnN0YW5jZUlkLHhvLnNldEF0dHJpYnV0ZShMLHRhKSxsby5mb3JFYWNoKGZ1bmN0aW9uKENvKXsoMCx1LmhxKShiYShHYVtDb10pLCJfZWZmZWN0LSIuY29uY2F0KENvKSxvbyl9KX19KSxwbz0oMCxuLlopKEVhLDMpLHlhPXBvWzBdLElhPXBvWzFdLGdhPXBvWzJdO3JldHVybiBmdW5jdGlvbihIYSl7dmFyIFBhO2lmKCFqcnx8WHJ8fCFNbilQYT1jLmNyZWF0ZUVsZW1lbnQoSHIsbnVsbCk7ZWxzZXt2YXIgZW87UGE9Yy5jcmVhdGVFbGVtZW50KCJzdHlsZSIsKDAsZm4uWikoe30sKGVvPXt9LCgwLHIuWikoZW8sTCxJYSksKDAsci5aKShlbyxJLGdhKSxlbykse2Rhbmdlcm91c2x5U2V0SW5uZXJIVE1MOntfX2h0bWw6eWF9fSkpfXJldHVybiBjLmNyZWF0ZUVsZW1lbnQoYy5GcmFnbWVudCxudWxsLFBhLEhhKX19dmFyIGphPWZ1bmN0aW9uKGllLHllLEIpe3ZhciBWZT0oMCxuLlopKGllLDYpLHN0PVZlWzBdLFJ0PVZlWzFdLEJ0PVZlWzJdLEx0PVZlWzNdLFl0PVZlWzRdLEFuPVZlWzVdLHNuPUJ8fHt9LHF0PXNuLnBsYWluO2lmKFl0KXJldHVybiBudWxsO3ZhciBNbj1zdCxDcj17ImRhdGEtcmMtb3JkZXIiOiJwcmVwZW5kUXVldWUiLCJkYXRhLXJjLXByaW9yaXR5IjoiIi5jb25jYXQoQW4pfTtyZXR1cm4gTW49JChzdCxSdCxCdCxDcixxdCksTHQmJk9iamVjdC5rZXlzKEx0KS5mb3JFYWNoKGZ1bmN0aW9uKHFuKXtpZigheWVbcW5dKXt5ZVtxbl09ITA7dmFyIGpyPWJhKEx0W3FuXSksQ249JChqcixSdCwiX2VmZmVjdC0iLmNvbmNhdChxbiksQ3IscXQpO3FuLnN0YXJ0c1dpdGgoIkBsYXllciIpP01uPUNuK01uOk1uKz1Dbn19KSxbQW4sQnQsTW5dfSwkYT0iY3NzVmFyIix5cj1mdW5jdGlvbihpZSx5ZSl7dmFyIEI9aWUua2V5LFZlPWllLnByZWZpeCxzdD1pZS51bml0bGVzcyxSdD1pZS5pZ25vcmUsQnQ9aWUudG9rZW4sTHQ9aWUuc2NvcGUsWXQ9THQ9PT12b2lkIDA/IiI6THQsQW49KDAsYy51c2VDb250ZXh0KShKKSxzbj1Bbi5jYWNoZS5pbnN0YW5jZUlkLHF0PUFuLmNvbnRhaW5lcixNbj1CdC5fdG9rZW5LZXksQ3I9W10uY29uY2F0KCgwLHQuWikoaWUucGF0aCksW0IsWXQsTW5dKSxxbj1TdCgkYSxDcixmdW5jdGlvbigpe3ZhciBqcj15ZSgpLENuPXJlKGpyLEIse3ByZWZpeDpWZSx1bml0bGVzczpzdCxpZ25vcmU6UnQsc2NvcGU6WXR9KSxMcj0oMCxuLlopKENuLDIpLERyPUxyWzBdLE5yPUxyWzFdLHRhPUlyKENyLE5yKTtyZXR1cm5bRHIsTnIsdGEsQl19LGZ1bmN0aW9uKGpyKXt2YXIgQ249KDAsbi5aKShqciwzKSxMcj1DblsyXTtRJiYoMCx1LmpMKShMcix7bWFyazpJfSl9LGZ1bmN0aW9uKGpyKXt2YXIgQ249KDAsbi5aKShqciwzKSxMcj1DblsxXSxEcj1DblsyXTtpZihMcil7dmFyIE5yPSgwLHUuaHEpKExyLERyLHttYXJrOkkscHJlcGVuZDoicXVldWUiLGF0dGFjaFRvOnF0LHByaW9yaXR5Oi05OTl9KTtOclt6XT1zbixOci5zZXRBdHRyaWJ1dGUoTCxCKX19KTtyZXR1cm4gcW59LFZyPWZ1bmN0aW9uKGllLHllLEIpe3ZhciBWZT0oMCxuLlopKGllLDQpLHN0PVZlWzFdLFJ0PVZlWzJdLEJ0PVZlWzNdLEx0PUJ8fHt9LFl0PUx0LnBsYWluO2lmKCFzdClyZXR1cm4gbnVsbDt2YXIgQW49LTk5OSxzbj17ImRhdGEtcmMtb3JkZXIiOiJwcmVwZW5kUXVldWUiLCJkYXRhLXJjLXByaW9yaXR5IjoiIi5jb25jYXQoQW4pfSxxdD0kKHN0LEJ0LFJ0LHNuLFl0KTtyZXR1cm5bQW4sUnQscXRdfSxTYT15cixGYSxSYT0oRmE9e30sKDAsci5aKShGYSxKcixqYSksKDAsci5aKShGYSxJdCxYdCksKDAsci5aKShGYSwkYSxWciksRmEpO2Z1bmN0aW9uIHJvKGx0KXtyZXR1cm4gbHQhPT1udWxsfWZ1bmN0aW9uIHVvKGx0LGllKXt2YXIgeWU9dHlwZW9mIGllPT0iYm9vbGVhbiI/e3BsYWluOmllfTppZXx8e30sQj15ZS5wbGFpbixWZT1CPT09dm9pZCAwPyExOkIsc3Q9eWUudHlwZXMsUnQ9c3Q9PT12b2lkIDA/WyJzdHlsZSIsInRva2VuIiwiY3NzVmFyIl06c3QsQnQ9bmV3IFJlZ0V4cCgiXigiLmNvbmNhdCgodHlwZW9mIFJ0PT0ic3RyaW5nIj9bUnRdOlJ0KS5qb2luKCJ8IiksIiklIikpLEx0PUFycmF5LmZyb20obHQuY2FjaGUua2V5cygpKS5maWx0ZXIoZnVuY3Rpb24ocXQpe3JldHVybiBCdC50ZXN0KHF0KX0pLFl0PXt9LEFuPXt9LHNuPSIiO3JldHVybiBMdC5tYXAoZnVuY3Rpb24ocXQpe3ZhciBNbj1xdC5yZXBsYWNlKEJ0LCIiKS5yZXBsYWNlKC8lL2csInwiKSxDcj1xdC5zcGxpdCgiJSIpLHFuPV9zbGljZWRUb0FycmF5KENyLDEpLGpyPXFuWzBdLENuPVJhW2pyXSxMcj1DbihsdC5jYWNoZS5nZXQocXQpWzFdLFl0LHtwbGFpbjpWZX0pO2lmKCFMcilyZXR1cm4gbnVsbDt2YXIgRHI9X3NsaWNlZFRvQXJyYXkoTHIsMyksTnI9RHJbMF0sdGE9RHJbMV0sdmE9RHJbMl07cmV0dXJuIHF0LnN0YXJ0c1dpdGgoInN0eWxlIikmJihBbltNbl09dGEpLFtOcix2YV19KS5maWx0ZXIocm8pLnNvcnQoZnVuY3Rpb24ocXQsTW4pe3ZhciBDcj1fc2xpY2VkVG9BcnJheShxdCwxKSxxbj1DclswXSxqcj1fc2xpY2VkVG9BcnJheShNbiwxKSxDbj1qclswXTtyZXR1cm4gcW4tQ259KS5mb3JFYWNoKGZ1bmN0aW9uKHF0KXt2YXIgTW49X3NsaWNlZFRvQXJyYXkocXQsMiksQ3I9TW5bMV07c24rPUNyfSksc24rPXRvU3R5bGVTdHIoIi4iLmNvbmNhdChBVFRSX0NBQ0hFX01BUCwne2NvbnRlbnQ6IicpLmNvbmNhdChzZXJpYWxpemVDYWNoZU1hcChBbiksJyI7fScpLHZvaWQgMCx2b2lkIDAsX2RlZmluZVByb3BlcnR5KHt9LEFUVFJfQ0FDSEVfTUFQLEFUVFJfQ0FDSEVfTUFQKSxWZSksc259dmFyIG5vPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbHQoaWUseWUpeygwLGcuWikodGhpcyxsdCksKDAsci5aKSh0aGlzLCJuYW1lIix2b2lkIDApLCgwLHIuWikodGhpcywic3R5bGUiLHZvaWQgMCksKDAsci5aKSh0aGlzLCJfa2V5ZnJhbWUiLCEwKSx0aGlzLm5hbWU9aWUsdGhpcy5zdHlsZT15ZX1yZXR1cm4oMCx3LlopKGx0LFt7a2V5OiJnZXROYW1lIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5ZT1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXZvaWQgMD9hcmd1bWVudHNbMF06IiI7cmV0dXJuIHllPyIiLmNvbmNhdCh5ZSwiLSIpLmNvbmNhdCh0aGlzLm5hbWUpOnRoaXMubmFtZX19XSksbHR9KCksem89bm87ZnVuY3Rpb24gZ28obHQpe2lmKHR5cGVvZiBsdD09Im51bWJlciIpcmV0dXJuW1tsdF0sITFdO3ZhciBpZT1TdHJpbmcobHQpLnRyaW0oKSx5ZT1pZS5tYXRjaCgvKC4qKSghaW1wb3J0YW50KS8pLEI9KHllP3llWzFdOmllKS50cmltKCkuc3BsaXQoL1xzKy8pLFZlPVtdLHN0PTA7cmV0dXJuW0IucmVkdWNlKGZ1bmN0aW9uKFJ0LEJ0KXtpZihCdC5pbmNsdWRlcygiKCIpfHxCdC5pbmNsdWRlcygiKSIpKXt2YXIgTHQ9QnQuc3BsaXQoIigiKS5sZW5ndGgtMSxZdD1CdC5zcGxpdCgiKSIpLmxlbmd0aC0xO3N0Kz1MdC1ZdH1yZXR1cm4gc3Q+PTAmJlZlLnB1c2goQnQpLHN0PT09MCYmKFJ0LnB1c2goVmUuam9pbigiICIpKSxWZT1bXSksUnR9LFtdKSwhIXllXX1mdW5jdGlvbiBmbyhsdCl7cmV0dXJuIGx0Lm5vdFNwbGl0PSEwLGx0fXZhciBUaT17aW5zZXQ6WyJ0b3AiLCJyaWdodCIsImJvdHRvbSIsImxlZnQiXSxpbnNldEJsb2NrOlsidG9wIiwiYm90dG9tIl0saW5zZXRCbG9ja1N0YXJ0OlsidG9wIl0saW5zZXRCbG9ja0VuZDpbImJvdHRvbSJdLGluc2V0SW5saW5lOlsibGVmdCIsInJpZ2h0Il0saW5zZXRJbmxpbmVTdGFydDpbImxlZnQiXSxpbnNldElubGluZUVuZDpbInJpZ2h0Il0sbWFyZ2luQmxvY2s6WyJtYXJnaW5Ub3AiLCJtYXJnaW5Cb3R0b20iXSxtYXJnaW5CbG9ja1N0YXJ0OlsibWFyZ2luVG9wIl0sbWFyZ2luQmxvY2tFbmQ6WyJtYXJnaW5Cb3R0b20iXSxtYXJnaW5JbmxpbmU6WyJtYXJnaW5MZWZ0IiwibWFyZ2luUmlnaHQiXSxtYXJnaW5JbmxpbmVTdGFydDpbIm1hcmdpbkxlZnQiXSxtYXJnaW5JbmxpbmVFbmQ6WyJtYXJnaW5SaWdodCJdLHBhZGRpbmdCbG9jazpbInBhZGRpbmdUb3AiLCJwYWRkaW5nQm90dG9tIl0scGFkZGluZ0Jsb2NrU3RhcnQ6WyJwYWRkaW5nVG9wIl0scGFkZGluZ0Jsb2NrRW5kOlsicGFkZGluZ0JvdHRvbSJdLHBhZGRpbmdJbmxpbmU6WyJwYWRkaW5nTGVmdCIsInBhZGRpbmdSaWdodCJdLHBhZGRpbmdJbmxpbmVTdGFydDpbInBhZGRpbmdMZWZ0Il0scGFkZGluZ0lubGluZUVuZDpbInBhZGRpbmdSaWdodCJdLGJvcmRlckJsb2NrOmZvKFsiYm9yZGVyVG9wIiwiYm9yZGVyQm90dG9tIl0pLGJvcmRlckJsb2NrU3RhcnQ6Zm8oWyJib3JkZXJUb3AiXSksYm9yZGVyQmxvY2tFbmQ6Zm8oWyJib3JkZXJCb3R0b20iXSksYm9yZGVySW5saW5lOmZvKFsiYm9yZGVyTGVmdCIsImJvcmRlclJpZ2h0Il0pLGJvcmRlcklubGluZVN0YXJ0OmZvKFsiYm9yZGVyTGVmdCJdKSxib3JkZXJJbmxpbmVFbmQ6Zm8oWyJib3JkZXJSaWdodCJdKSxib3JkZXJCbG9ja1dpZHRoOlsiYm9yZGVyVG9wV2lkdGgiLCJib3JkZXJCb3R0b21XaWR0aCJdLGJvcmRlckJsb2NrU3RhcnRXaWR0aDpbImJvcmRlclRvcFdpZHRoIl0sYm9yZGVyQmxvY2tFbmRXaWR0aDpbImJvcmRlckJvdHRvbVdpZHRoIl0sYm9yZGVySW5saW5lV2lkdGg6WyJib3JkZXJMZWZ0V2lkdGgiLCJib3JkZXJSaWdodFdpZHRoIl0sYm9yZGVySW5saW5lU3RhcnRXaWR0aDpbImJvcmRlckxlZnRXaWR0aCJdLGJvcmRlcklubGluZUVuZFdpZHRoOlsiYm9yZGVyUmlnaHRXaWR0aCJdLGJvcmRlckJsb2NrU3R5bGU6WyJib3JkZXJUb3BTdHlsZSIsImJvcmRlckJvdHRvbVN0eWxlIl0sYm9yZGVyQmxvY2tTdGFydFN0eWxlOlsiYm9yZGVyVG9wU3R5bGUiXSxib3JkZXJCbG9ja0VuZFN0eWxlOlsiYm9yZGVyQm90dG9tU3R5bGUiXSxib3JkZXJJbmxpbmVTdHlsZTpbImJvcmRlckxlZnRTdHlsZSIsImJvcmRlclJpZ2h0U3R5bGUiXSxib3JkZXJJbmxpbmVTdGFydFN0eWxlOlsiYm9yZGVyTGVmdFN0eWxlIl0sYm9yZGVySW5saW5lRW5kU3R5bGU6WyJib3JkZXJSaWdodFN0eWxlIl0sYm9yZGVyQmxvY2tDb2xvcjpbImJvcmRlclRvcENvbG9yIiwiYm9yZGVyQm90dG9tQ29sb3IiXSxib3JkZXJCbG9ja1N0YXJ0Q29sb3I6WyJib3JkZXJUb3BDb2xvciJdLGJvcmRlckJsb2NrRW5kQ29sb3I6WyJib3JkZXJCb3R0b21Db2xvciJdLGJvcmRlcklubGluZUNvbG9yOlsiYm9yZGVyTGVmdENvbG9yIiwiYm9yZGVyUmlnaHRDb2xvciJdLGJvcmRlcklubGluZVN0YXJ0Q29sb3I6WyJib3JkZXJMZWZ0Q29sb3IiXSxib3JkZXJJbmxpbmVFbmRDb2xvcjpbImJvcmRlclJpZ2h0Q29sb3IiXSxib3JkZXJTdGFydFN0YXJ0UmFkaXVzOlsiYm9yZGVyVG9wTGVmdFJhZGl1cyJdLGJvcmRlclN0YXJ0RW5kUmFkaXVzOlsiYm9yZGVyVG9wUmlnaHRSYWRpdXMiXSxib3JkZXJFbmRTdGFydFJhZGl1czpbImJvcmRlckJvdHRvbUxlZnRSYWRpdXMiXSxib3JkZXJFbmRFbmRSYWRpdXM6WyJib3JkZXJCb3R0b21SaWdodFJhZGl1cyJdfTtmdW5jdGlvbiBVbyhsdCxpZSl7dmFyIHllPWx0O3JldHVybiBpZSYmKHllPSIiLmNvbmNhdCh5ZSwiICFpbXBvcnRhbnQiKSkse19za2lwX2NoZWNrXzohMCx2YWx1ZTp5ZX19dmFyIFdvPXt2aXNpdDpmdW5jdGlvbihpZSl7dmFyIHllPXt9O3JldHVybiBPYmplY3Qua2V5cyhpZSkuZm9yRWFjaChmdW5jdGlvbihCKXt2YXIgVmU9aWVbQl0sc3Q9VGlbQl07aWYoc3QmJih0eXBlb2YgVmU9PSJudW1iZXIifHx0eXBlb2YgVmU9PSJzdHJpbmciKSl7dmFyIFJ0PWdvKFZlKSxCdD0oMCxuLlopKFJ0LDIpLEx0PUJ0WzBdLFl0PUJ0WzFdO3N0Lmxlbmd0aCYmc3Qubm90U3BsaXQ/c3QuZm9yRWFjaChmdW5jdGlvbihBbil7eWVbQW5dPVVvKFZlLFl0KX0pOnN0Lmxlbmd0aD09PTE/eWVbc3RbMF1dPVVvKEx0WzBdLFl0KTpzdC5sZW5ndGg9PT0yP3N0LmZvckVhY2goZnVuY3Rpb24oQW4sc24pe3ZhciBxdDt5ZVtBbl09VW8oKHF0PUx0W3NuXSkhPT1udWxsJiZxdCE9PXZvaWQgMD9xdDpMdFswXSxZdCl9KTpzdC5sZW5ndGg9PT00P3N0LmZvckVhY2goZnVuY3Rpb24oQW4sc24pe3ZhciBxdCxNbjt5ZVtBbl09VW8oKHF0PShNbj1MdFtzbl0pIT09bnVsbCYmTW4hPT12b2lkIDA/TW46THRbc24tMl0pIT09bnVsbCYmcXQhPT12b2lkIDA/cXQ6THRbMF0sWXQpfSk6eWVbQl09VmV9ZWxzZSB5ZVtCXT1WZX0pLHllfX0sZ2k9bnVsbCxhbz0vdXJsXChbXildK1wpfHZhclwoW14pXStcKXwoXGQqXC4/XGQrKXB4L2c7ZnVuY3Rpb24gcGkobHQsaWUpe3ZhciB5ZT1NYXRoLnBvdygxMCxpZSsxKSxCPU1hdGguZmxvb3IobHQqeWUpO3JldHVybiBNYXRoLnJvdW5kKEIvMTApKjEwL3llfXZhciBIbz1mdW5jdGlvbigpe3ZhciBpZT1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXZvaWQgMD9hcmd1bWVudHNbMF06e30seWU9aWUucm9vdFZhbHVlLEI9eWU9PT12b2lkIDA/MTY6eWUsVmU9aWUucHJlY2lzaW9uLHN0PVZlPT09dm9pZCAwPzU6VmUsUnQ9aWUubWVkaWFRdWVyeSxCdD1SdD09PXZvaWQgMD8hMTpSdCxMdD1mdW5jdGlvbihzbixxdCl7aWYoIXF0KXJldHVybiBzbjt2YXIgTW49cGFyc2VGbG9hdChxdCk7aWYoTW48PTEpcmV0dXJuIHNuO3ZhciBDcj1waShNbi9CLHN0KTtyZXR1cm4iIi5jb25jYXQoQ3IsInJlbSIpfSxZdD1mdW5jdGlvbihzbil7dmFyIHF0PV9vYmplY3RTcHJlYWQoe30sc24pO3JldHVybiBPYmplY3QuZW50cmllcyhzbikuZm9yRWFjaChmdW5jdGlvbihNbil7dmFyIENyPV9zbGljZWRUb0FycmF5KE1uLDIpLHFuPUNyWzBdLGpyPUNyWzFdO2lmKHR5cGVvZiBqcj09InN0cmluZyImJmpyLmluY2x1ZGVzKCJweCIpKXt2YXIgQ249anIucmVwbGFjZShhbyxMdCk7cXRbcW5dPUNufSF1bml0bGVzc1txbl0mJnR5cGVvZiBqcj09Im51bWJlciImJmpyIT09MCYmKHF0W3FuXT0iIi5jb25jYXQoanIsInB4IikucmVwbGFjZShhbyxMdCkpO3ZhciBMcj1xbi50cmltKCk7aWYoTHIuc3RhcnRzV2l0aCgiQCIpJiZMci5pbmNsdWRlcygicHgiKSYmQnQpe3ZhciBEcj1xbi5yZXBsYWNlKGFvLEx0KTtxdFtEcl09cXRbcW5dLGRlbGV0ZSBxdFtxbl19fSkscXR9O3JldHVybnt2aXNpdDpZdH19LFJvPW51bGwsRm89e3N1cHBvcnRNb2Rlcm5DU1M6ZnVuY3Rpb24oKXtyZXR1cm4gQSgpJiZOKCl9fX0sMTUwNjM6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7dDpmdW5jdGlvbigpe3JldHVybiBhfX0pO3ZhciByPWUoNDk0Mik7Y29uc3Qgbj1NYXRoLnJvdW5kO2Z1bmN0aW9uIHQodSxjKXtjb25zdCBoPXUucmVwbGFjZSgvXlteKF0qXCgoLiopLywiJDEiKS5yZXBsYWNlKC9cKS4qLywiIikubWF0Y2goL1xkKlwuP1xkKyU/L2cpfHxbXSxkPWgubWFwKG09PnBhcnNlRmxvYXQobSkpO2ZvcihsZXQgbT0wO208MzttKz0xKWRbbV09YyhkW21dfHwwLGhbbV18fCIiLG0pO3JldHVybiBoWzNdP2RbM109aFszXS5pbmNsdWRlcygiJSIpP2RbM10vMTAwOmRbM106ZFszXT0xLGR9Y29uc3QgaT0odSxjLGgpPT5oPT09MD91OnUvMTAwO2Z1bmN0aW9uIHModSxjKXtjb25zdCBoPWN8fDI1NTtyZXR1cm4gdT5oP2g6dTwwPzA6dX1jbGFzcyBhe2NvbnN0cnVjdG9yKGMpeygwLHIuWikodGhpcywiaXNWYWxpZCIsITApLCgwLHIuWikodGhpcywiciIsMCksKDAsci5aKSh0aGlzLCJnIiwwKSwoMCxyLlopKHRoaXMsImIiLDApLCgwLHIuWikodGhpcywiYSIsMSksKDAsci5aKSh0aGlzLCJfaCIsdm9pZCAwKSwoMCxyLlopKHRoaXMsIl9zIix2b2lkIDApLCgwLHIuWikodGhpcywiX2wiLHZvaWQgMCksKDAsci5aKSh0aGlzLCJfdiIsdm9pZCAwKSwoMCxyLlopKHRoaXMsIl9tYXgiLHZvaWQgMCksKDAsci5aKSh0aGlzLCJfbWluIix2b2lkIDApLCgwLHIuWikodGhpcywiX2JyaWdodG5lc3MiLHZvaWQgMCk7ZnVuY3Rpb24gaChkKXtyZXR1cm4gZFswXWluIGMmJmRbMV1pbiBjJiZkWzJdaW4gY31pZihjKWlmKHR5cGVvZiBjPT0ic3RyaW5nIil7bGV0IG09ZnVuY3Rpb24oQyl7cmV0dXJuIGQuc3RhcnRzV2l0aChDKX07Y29uc3QgZD1jLnRyaW0oKTsvXiM/W0EtRlxkXXszLDh9JC9pLnRlc3QoZCk/dGhpcy5mcm9tSGV4U3RyaW5nKGQpOm0oInJnYiIpP3RoaXMuZnJvbVJnYlN0cmluZyhkKTptKCJoc2wiKT90aGlzLmZyb21Ic2xTdHJpbmcoZCk6KG0oImhzdiIpfHxtKCJoc2IiKSkmJnRoaXMuZnJvbUhzdlN0cmluZyhkKX1lbHNlIGlmKGMgaW5zdGFuY2VvZiBhKXRoaXMucj1jLnIsdGhpcy5nPWMuZyx0aGlzLmI9Yy5iLHRoaXMuYT1jLmEsdGhpcy5faD1jLl9oLHRoaXMuX3M9Yy5fcyx0aGlzLl9sPWMuX2wsdGhpcy5fdj1jLl92O2Vsc2UgaWYoaCgicmdiIikpdGhpcy5yPXMoYy5yKSx0aGlzLmc9cyhjLmcpLHRoaXMuYj1zKGMuYiksdGhpcy5hPXR5cGVvZiBjLmE9PSJudW1iZXIiP3MoYy5hLDEpOjE7ZWxzZSBpZihoKCJoc2wiKSl0aGlzLmZyb21Ic2woYyk7ZWxzZSBpZihoKCJoc3YiKSl0aGlzLmZyb21Ic3YoYyk7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoIkBhbnQtZGVzaWduL2Zhc3QtY29sb3I6IHVuc3VwcG9ydGVkIGlucHV0ICIrSlNPTi5zdHJpbmdpZnkoYykpfXNldFIoYyl7cmV0dXJuIHRoaXMuX3NjKCJyIixjKX1zZXRHKGMpe3JldHVybiB0aGlzLl9zYygiZyIsYyl9c2V0QihjKXtyZXR1cm4gdGhpcy5fc2MoImIiLGMpfXNldEEoYyl7cmV0dXJuIHRoaXMuX3NjKCJhIixjLDEpfXNldEh1ZShjKXtjb25zdCBoPXRoaXMudG9Ic3YoKTtyZXR1cm4gaC5oPWMsdGhpcy5fYyhoKX1nZXRMdW1pbmFuY2UoKXtmdW5jdGlvbiBjKEMpe2NvbnN0IGc9Qy8yNTU7cmV0dXJuIGc8PS4wMzkyOD9nLzEyLjkyOk1hdGgucG93KChnKy4wNTUpLzEuMDU1LDIuNCl9Y29uc3QgaD1jKHRoaXMuciksZD1jKHRoaXMuZyksbT1jKHRoaXMuYik7cmV0dXJuIC4yMTI2KmgrLjcxNTIqZCsuMDcyMiptfWdldEh1ZSgpe2lmKHR5cGVvZiB0aGlzLl9oPT0idW5kZWZpbmVkIil7Y29uc3QgYz10aGlzLmdldE1heCgpLXRoaXMuZ2V0TWluKCk7Yz09PTA/dGhpcy5faD0wOnRoaXMuX2g9big2MCoodGhpcy5yPT09dGhpcy5nZXRNYXgoKT8odGhpcy5nLXRoaXMuYikvYysodGhpcy5nPHRoaXMuYj82OjApOnRoaXMuZz09PXRoaXMuZ2V0TWF4KCk/KHRoaXMuYi10aGlzLnIpL2MrMjoodGhpcy5yLXRoaXMuZykvYys0KSl9cmV0dXJuIHRoaXMuX2h9Z2V0U2F0dXJhdGlvbigpe2lmKHR5cGVvZiB0aGlzLl9zPT0idW5kZWZpbmVkIil7Y29uc3QgYz10aGlzLmdldE1heCgpLXRoaXMuZ2V0TWluKCk7Yz09PTA/dGhpcy5fcz0wOnRoaXMuX3M9Yy90aGlzLmdldE1heCgpfXJldHVybiB0aGlzLl9zfWdldExpZ2h0bmVzcygpe3JldHVybiB0eXBlb2YgdGhpcy5fbD09InVuZGVmaW5lZCImJih0aGlzLl9sPSh0aGlzLmdldE1heCgpK3RoaXMuZ2V0TWluKCkpLzUxMCksdGhpcy5fbH1nZXRWYWx1ZSgpe3JldHVybiB0eXBlb2YgdGhpcy5fdj09InVuZGVmaW5lZCImJih0aGlzLl92PXRoaXMuZ2V0TWF4KCkvMjU1KSx0aGlzLl92fWdldEJyaWdodG5lc3MoKXtyZXR1cm4gdHlwZW9mIHRoaXMuX2JyaWdodG5lc3M9PSJ1bmRlZmluZWQiJiYodGhpcy5fYnJpZ2h0bmVzcz0odGhpcy5yKjI5OSt0aGlzLmcqNTg3K3RoaXMuYioxMTQpLzFlMyksdGhpcy5fYnJpZ2h0bmVzc31kYXJrZW4oYz0xMCl7Y29uc3QgaD10aGlzLmdldEh1ZSgpLGQ9dGhpcy5nZXRTYXR1cmF0aW9uKCk7bGV0IG09dGhpcy5nZXRMaWdodG5lc3MoKS1jLzEwMDtyZXR1cm4gbTwwJiYobT0wKSx0aGlzLl9jKHtoLHM6ZCxsOm0sYTp0aGlzLmF9KX1saWdodGVuKGM9MTApe2NvbnN0IGg9dGhpcy5nZXRIdWUoKSxkPXRoaXMuZ2V0U2F0dXJhdGlvbigpO2xldCBtPXRoaXMuZ2V0TGlnaHRuZXNzKCkrYy8xMDA7cmV0dXJuIG0+MSYmKG09MSksdGhpcy5fYyh7aCxzOmQsbDptLGE6dGhpcy5hfSl9bWl4KGMsaD01MCl7Y29uc3QgZD10aGlzLl9jKGMpLG09aC8xMDAsQz13PT4oZFt3XS10aGlzW3ddKSptK3RoaXNbd10sZz17cjpuKEMoInIiKSksZzpuKEMoImciKSksYjpuKEMoImIiKSksYTpuKEMoImEiKSoxMDApLzEwMH07cmV0dXJuIHRoaXMuX2MoZyl9dGludChjPTEwKXtyZXR1cm4gdGhpcy5taXgoe3I6MjU1LGc6MjU1LGI6MjU1LGE6MX0sYyl9c2hhZGUoYz0xMCl7cmV0dXJuIHRoaXMubWl4KHtyOjAsZzowLGI6MCxhOjF9LGMpfW9uQmFja2dyb3VuZChjKXtjb25zdCBoPXRoaXMuX2MoYyksZD10aGlzLmEraC5hKigxLXRoaXMuYSksbT1DPT5uKCh0aGlzW0NdKnRoaXMuYStoW0NdKmguYSooMS10aGlzLmEpKS9kKTtyZXR1cm4gdGhpcy5fYyh7cjptKCJyIiksZzptKCJnIiksYjptKCJiIiksYTpkfSl9aXNEYXJrKCl7cmV0dXJuIHRoaXMuZ2V0QnJpZ2h0bmVzcygpPDEyOH1pc0xpZ2h0KCl7cmV0dXJuIHRoaXMuZ2V0QnJpZ2h0bmVzcygpPj0xMjh9ZXF1YWxzKGMpe3JldHVybiB0aGlzLnI9PT1jLnImJnRoaXMuZz09PWMuZyYmdGhpcy5iPT09Yy5iJiZ0aGlzLmE9PT1jLmF9Y2xvbmUoKXtyZXR1cm4gdGhpcy5fYyh0aGlzKX10b0hleFN0cmluZygpe2xldCBjPSIjIjtjb25zdCBoPSh0aGlzLnJ8fDApLnRvU3RyaW5nKDE2KTtjKz1oLmxlbmd0aD09PTI/aDoiMCIraDtjb25zdCBkPSh0aGlzLmd8fDApLnRvU3RyaW5nKDE2KTtjKz1kLmxlbmd0aD09PTI/ZDoiMCIrZDtjb25zdCBtPSh0aGlzLmJ8fDApLnRvU3RyaW5nKDE2KTtpZihjKz1tLmxlbmd0aD09PTI/bToiMCIrbSx0eXBlb2YgdGhpcy5hPT0ibnVtYmVyIiYmdGhpcy5hPj0wJiZ0aGlzLmE8MSl7Y29uc3QgQz1uKHRoaXMuYSoyNTUpLnRvU3RyaW5nKDE2KTtjKz1DLmxlbmd0aD09PTI/QzoiMCIrQ31yZXR1cm4gY310b0hzbCgpe3JldHVybntoOnRoaXMuZ2V0SHVlKCksczp0aGlzLmdldFNhdHVyYXRpb24oKSxsOnRoaXMuZ2V0TGlnaHRuZXNzKCksYTp0aGlzLmF9fXRvSHNsU3RyaW5nKCl7Y29uc3QgYz10aGlzLmdldEh1ZSgpLGg9bih0aGlzLmdldFNhdHVyYXRpb24oKSoxMDApLGQ9bih0aGlzLmdldExpZ2h0bmVzcygpKjEwMCk7cmV0dXJuIHRoaXMuYSE9PTE/YGhzbGEoJHtjfSwke2h9JSwke2R9JSwke3RoaXMuYX0pYDpgaHNsKCR7Y30sJHtofSUsJHtkfSUpYH10b0hzdigpe3JldHVybntoOnRoaXMuZ2V0SHVlKCksczp0aGlzLmdldFNhdHVyYXRpb24oKSx2OnRoaXMuZ2V0VmFsdWUoKSxhOnRoaXMuYX19dG9SZ2IoKXtyZXR1cm57cjp0aGlzLnIsZzp0aGlzLmcsYjp0aGlzLmIsYTp0aGlzLmF9fXRvUmdiU3RyaW5nKCl7cmV0dXJuIHRoaXMuYSE9PTE/YHJnYmEoJHt0aGlzLnJ9LCR7dGhpcy5nfSwke3RoaXMuYn0sJHt0aGlzLmF9KWA6YHJnYigke3RoaXMucn0sJHt0aGlzLmd9LCR7dGhpcy5ifSlgfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMudG9SZ2JTdHJpbmcoKX1fc2MoYyxoLGQpe2NvbnN0IG09dGhpcy5jbG9uZSgpO3JldHVybiBtW2NdPXMoaCxkKSxtfV9jKGMpe3JldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3RvcihjKX1nZXRNYXgoKXtyZXR1cm4gdHlwZW9mIHRoaXMuX21heD09InVuZGVmaW5lZCImJih0aGlzLl9tYXg9TWF0aC5tYXgodGhpcy5yLHRoaXMuZyx0aGlzLmIpKSx0aGlzLl9tYXh9Z2V0TWluKCl7cmV0dXJuIHR5cGVvZiB0aGlzLl9taW49PSJ1bmRlZmluZWQiJiYodGhpcy5fbWluPU1hdGgubWluKHRoaXMucix0aGlzLmcsdGhpcy5iKSksdGhpcy5fbWlufWZyb21IZXhTdHJpbmcoYyl7Y29uc3QgaD1jLnJlcGxhY2UoIiMiLCIiKTtmdW5jdGlvbiBkKG0sQyl7cmV0dXJuIHBhcnNlSW50KGhbbV0raFtDfHxtXSwxNil9aC5sZW5ndGg8Nj8odGhpcy5yPWQoMCksdGhpcy5nPWQoMSksdGhpcy5iPWQoMiksdGhpcy5hPWhbM10/ZCgzKS8yNTU6MSk6KHRoaXMucj1kKDAsMSksdGhpcy5nPWQoMiwzKSx0aGlzLmI9ZCg0LDUpLHRoaXMuYT1oWzZdP2QoNiw3KS8yNTU6MSl9ZnJvbUhzbCh7aDpjLHM6aCxsOmQsYTptfSl7aWYodGhpcy5faD1jJTM2MCx0aGlzLl9zPWgsdGhpcy5fbD1kLHRoaXMuYT10eXBlb2YgbT09Im51bWJlciI/bToxLGg8PTApe2NvbnN0IFM9bihkKjI1NSk7dGhpcy5yPVMsdGhpcy5nPVMsdGhpcy5iPVN9bGV0IEM9MCxnPTAsdz0wO2NvbnN0IEU9Yy82MCx4PSgxLU1hdGguYWJzKDIqZC0xKSkqaCxPPXgqKDEtTWF0aC5hYnMoRSUyLTEpKTtFPj0wJiZFPDE/KEM9eCxnPU8pOkU+PTEmJkU8Mj8oQz1PLGc9eCk6RT49MiYmRTwzPyhnPXgsdz1PKTpFPj0zJiZFPDQ/KGc9Tyx3PXgpOkU+PTQmJkU8NT8oQz1PLHc9eCk6RT49NSYmRTw2JiYoQz14LHc9Tyk7Y29uc3QgVD1kLXgvMjt0aGlzLnI9bigoQytUKSoyNTUpLHRoaXMuZz1uKChnK1QpKjI1NSksdGhpcy5iPW4oKHcrVCkqMjU1KX1mcm9tSHN2KHtoOmMsczpoLHY6ZCxhOm19KXt0aGlzLl9oPWMlMzYwLHRoaXMuX3M9aCx0aGlzLl92PWQsdGhpcy5hPXR5cGVvZiBtPT0ibnVtYmVyIj9tOjE7Y29uc3QgQz1uKGQqMjU1KTtpZih0aGlzLnI9Qyx0aGlzLmc9Qyx0aGlzLmI9QyxoPD0wKXJldHVybjtjb25zdCBnPWMvNjAsdz1NYXRoLmZsb29yKGcpLEU9Zy13LHg9bihkKigxLWgpKjI1NSksTz1uKGQqKDEtaCpFKSoyNTUpLFQ9bihkKigxLWgqKDEtRSkpKjI1NSk7c3dpdGNoKHcpe2Nhc2UgMDp0aGlzLmc9VCx0aGlzLmI9eDticmVhaztjYXNlIDE6dGhpcy5yPU8sdGhpcy5iPXg7YnJlYWs7Y2FzZSAyOnRoaXMucj14LHRoaXMuYj1UO2JyZWFrO2Nhc2UgMzp0aGlzLnI9eCx0aGlzLmc9TzticmVhaztjYXNlIDQ6dGhpcy5yPVQsdGhpcy5nPXg7YnJlYWs7Y2FzZSA1OmRlZmF1bHQ6dGhpcy5nPXgsdGhpcy5iPU87YnJlYWt9fWZyb21Ic3ZTdHJpbmcoYyl7Y29uc3QgaD10KGMsaSk7dGhpcy5mcm9tSHN2KHtoOmhbMF0sczpoWzFdLHY6aFsyXSxhOmhbM119KX1mcm9tSHNsU3RyaW5nKGMpe2NvbnN0IGg9dChjLGkpO3RoaXMuZnJvbUhzbCh7aDpoWzBdLHM6aFsxXSxsOmhbMl0sYTpoWzNdfSl9ZnJvbVJnYlN0cmluZyhjKXtjb25zdCBoPXQoYywoZCxtKT0+bS5pbmNsdWRlcygiJSIpP24oZC8xMDAqMjU1KTpkKTt0aGlzLnI9aFswXSx0aGlzLmc9aFsxXSx0aGlzLmI9aFsyXSx0aGlzLmE9aFszXX19fSw3MDM5MTpmdW5jdGlvbih5LHApeyJ1c2Ugc3RyaWN0Ijt2YXIgZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODY4IDczMmgtNzAuM2MtNC44IDAtOS4zIDIuMS0xMi4zIDUuOC03IDguNS0xNC41IDE2LjctMjIuNCAyNC41YTM1My44NCAzNTMuODQgMCAwMS0xMTIuNyA3NS45QTM1Mi44IDM1Mi44IDAgMDE1MTIuNCA4NjZjLTQ3LjkgMC05NC4zLTkuNC0xMzcuOS0yNy44YTM1My44NCAzNTMuODQgMCAwMS0xMTIuNy03NS45IDM1My4yOCAzNTMuMjggMCAwMS03Ni0xMTIuNUMxNjcuMyA2MDYuMiAxNTggNTU5LjkgMTU4IDUxMnM5LjQtOTQuMiAyNy44LTEzNy44YzE3LjgtNDIuMSA0My40LTgwIDc2LTExMi41czcwLjUtNTguMSAxMTIuNy03NS45YzQzLjYtMTguNCA5MC0yNy44IDEzNy45LTI3LjggNDcuOSAwIDk0LjMgOS4zIDEzNy45IDI3LjggNDIuMiAxNy44IDgwLjEgNDMuNCAxMTIuNyA3NS45IDcuOSA3LjkgMTUuMyAxNi4xIDIyLjQgMjQuNSAzIDMuNyA3LjYgNS44IDEyLjMgNS44SDg2OGM2LjMgMCAxMC4yLTcgNi43LTEyLjNDNzk4IDE2MC41IDY2My44IDgxLjYgNTExLjMgODIgMjcxLjcgODIuNiA3OS42IDI3Ny4xIDgyIDUxNi40IDg0LjQgNzUxLjkgMjc2LjIgOTQyIDUxMi40IDk0MmMxNTIuMSAwIDI4NS43LTc4LjggMzYyLjMtMTk3LjcgMy40LTUuMy0uNC0xMi4zLTYuNy0xMi4zem04OC45LTIyNi4zTDgxNSAzOTMuN2MtNS4zLTQuMi0xMy0uNC0xMyA2LjN2NzZINDg4Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDMxNHY3NmMwIDYuNyA3LjggMTAuNSAxMyA2LjNsMTQxLjktMTEyYTggOCAwIDAwMC0xMi42eiJ9fV19LG5hbWU6ImxvZ291dCIsdGhlbWU6Im91dGxpbmVkIn07cC5aPWV9LDIyODExOmZ1bmN0aW9uKHkscCl7InVzZSBzdHJpY3QiO3ZhciBlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MjggMTYxSDY5OS4yYy00OS4xIDAtOTcuMSAxNC4xLTEzOC40IDQwLjdMNTEyIDIzM2wtNDguOC0zMS4zQTI1NS4yIDI1NS4yIDAgMDAzMjQuOCAxNjFIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjU2OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmgyMjguOGM0OS4xIDAgOTcuMSAxNC4xIDEzOC40IDQwLjdsNDQuNCAyOC42YzEuMy44IDIuOCAxLjMgNC4zIDEuM3MzLS40IDQuMy0xLjNsNDQuNC0yOC42QzYwMiA4MDcuMSA2NTAuMSA3OTMgNjk5LjIgNzkzSDkyOGMxNy43IDAgMzItMTQuMyAzMi0zMlYxOTNjMC0xNy43LTE0LjMtMzItMzItMzJ6TTMyNC44IDcyMUgxMzZWMjMzaDE4OC44YzM1LjQgMCA2OS44IDEwLjEgOTkuNSAyOS4ybDQ4LjggMzEuMyA2LjkgNC41djQ2MmMtNDcuNi0yNS42LTEwMC44LTM5LTE1NS4yLTM5em01NjMuMiAwSDY5OS4yYy01NC40IDAtMTA3LjYgMTMuNC0xNTUuMiAzOVYyOThsNi45LTQuNSA0OC44LTMxLjNjMjkuNy0xOS4xIDY0LjEtMjkuMiA5OS41LTI5LjJIODg4djQ4OHpNMzk2LjkgMzYxSDIxMS4xYy0zLjkgMC03LjEgMy40LTcuMSA3LjV2NDVjMCA0LjEgMy4yIDcuNSA3LjEgNy41aDE4NS43YzMuOSAwIDcuMS0zLjQgNy4xLTcuNXYtNDVjLjEtNC4xLTMuMS03LjUtNy03LjV6bTIyMy4xIDcuNXY0NWMwIDQuMSAzLjIgNy41IDcuMSA3LjVoMTg1LjdjMy45IDAgNy4xLTMuNCA3LjEtNy41di00NWMwLTQuMS0zLjItNy41LTcuMS03LjVINjI3LjFjLTMuOSAwLTcuMSAzLjQtNy4xIDcuNXpNMzk2LjkgNTAxSDIxMS4xYy0zLjkgMC03LjEgMy40LTcuMSA3LjV2NDVjMCA0LjEgMy4yIDcuNSA3LjEgNy41aDE4NS43YzMuOSAwIDcuMS0zLjQgNy4xLTcuNXYtNDVjLjEtNC4xLTMuMS03LjUtNy03LjV6bTQxNiAwSDYyNy4xYy0zLjkgMC03LjEgMy40LTcuMSA3LjV2NDVjMCA0LjEgMy4yIDcuNSA3LjEgNy41aDE4NS43YzMuOSAwIDcuMS0zLjQgNy4xLTcuNXYtNDVjLjEtNC4xLTMuMS03LjUtNy03LjV6In19XX0sbmFtZToicmVhZCIsdGhlbWU6Im91dGxpbmVkIn07cC5aPWV9LDEzNDAxOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg4NzQ2Miksbj1lKDk3Njg1KSx0PWUoNDk0MiksaT1lKDkxKSxzPWUoNjcyOTQpLGE9ZSg5Mzk2NyksdT1lLm4oYSksYz1lKDg0ODk4KSxoPWUoNjMwMTcpLGQ9ZSg1ODc4NCksbT1lKDU5MDY4KSxDPWUoNDE3NTUpLGc9WyJjbGFzc05hbWUiLCJpY29uIiwic3BpbiIsInJvdGF0ZSIsInRhYkluZGV4Iiwib25DbGljayIsInR3b1RvbmVDb2xvciJdOygwLG0uVSkoYy5ibHVlLnByaW1hcnkpO3ZhciB3PXMuZm9yd2FyZFJlZihmdW5jdGlvbihFLHgpe3ZhciBPPUUuY2xhc3NOYW1lLFQ9RS5pY29uLFM9RS5zcGluLEw9RS5yb3RhdGUsST1FLnRhYkluZGV4LFI9RS5vbkNsaWNrLHo9RS50d29Ub25lQ29sb3IsRz0oMCxpLlopKEUsZyksWT1zLnVzZUNvbnRleHQoaC5aKSxlZT1ZLnByZWZpeENscyxKPWVlPT09dm9pZCAwPyJhbnRpY29uIjplZSxtZT1ZLnJvb3RDbGFzc05hbWUsdGU9dSgpKG1lLEosKDAsdC5aKSgoMCx0LlopKHt9LCIiLmNvbmNhdChKLCItIikuY29uY2F0KFQubmFtZSksISFULm5hbWUpLCIiLmNvbmNhdChKLCItc3BpbiIpLCEhU3x8VC5uYW1lPT09ImxvYWRpbmciKSxPKSxsZT1JO2xlPT09dm9pZCAwJiZSJiYobGU9LTEpO3ZhciBjZT1MP3ttc1RyYW5zZm9ybToicm90YXRlKCIuY29uY2F0KEwsImRlZykiKSx0cmFuc2Zvcm06InJvdGF0ZSgiLmNvbmNhdChMLCJkZWcpIil9OnZvaWQgMCxXPSgwLEMuSDkpKHopLGo9KDAsbi5aKShXLDIpLEQ9alswXSxWPWpbMV07cmV0dXJuIHMuY3JlYXRlRWxlbWVudCgic3BhbiIsKDAsci5aKSh7cm9sZToiaW1nIiwiYXJpYS1sYWJlbCI6VC5uYW1lfSxHLHtyZWY6eCx0YWJJbmRleDpsZSxvbkNsaWNrOlIsY2xhc3NOYW1lOnRlfSkscy5jcmVhdGVFbGVtZW50KGQuWix7aWNvbjpULHByaW1hcnlDb2xvcjpELHNlY29uZGFyeUNvbG9yOlYsc3R5bGU6Y2V9KSl9KTt3LmRpc3BsYXlOYW1lPSJBbnRkSWNvbiIsdy5nZXRUd29Ub25lQ29sb3I9bS5tLHcuc2V0VHdvVG9uZUNvbG9yPW0uVSxwLlo9d30sNjMwMTc6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDY3Mjk0KSxuPSgwLHIuY3JlYXRlQ29udGV4dCkoe30pO3AuWj1ufSwxNjE2NTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoODc0NjIpLG49ZSgxNDEzKSx0PWUoNDk0MiksaT1lKDkxKSxzPWUoNjcyOTQpLGE9ZSg5Mzk2NyksdT1lLm4oYSksYz1lKDQyNTUwKSxoPWUoNjMwMTcpLGQ9ZSg0MTc1NSksbT1bImNsYXNzTmFtZSIsImNvbXBvbmVudCIsInZpZXdCb3giLCJzcGluIiwicm90YXRlIiwidGFiSW5kZXgiLCJvbkNsaWNrIiwiY2hpbGRyZW4iXSxDPXMuZm9yd2FyZFJlZihmdW5jdGlvbihnLHcpe3ZhciBFPWcuY2xhc3NOYW1lLHg9Zy5jb21wb25lbnQsTz1nLnZpZXdCb3gsVD1nLnNwaW4sUz1nLnJvdGF0ZSxMPWcudGFiSW5kZXgsST1nLm9uQ2xpY2ssUj1nLmNoaWxkcmVuLHo9KDAsaS5aKShnLG0pLEc9cy51c2VSZWYoKSxZPSgwLGMueDEpKEcsdyk7KDAsZC5LcCkoISEoeHx8UiksIlNob3VsZCBoYXZlIGBjb21wb25lbnRgIHByb3Agb3IgYGNoaWxkcmVuYC4iKSwoMCxkLkMzKShHKTt2YXIgZWU9cy51c2VDb250ZXh0KGguWiksSj1lZS5wcmVmaXhDbHMsbWU9Sj09PXZvaWQgMD8iYW50aWNvbiI6Six0ZT1lZS5yb290Q2xhc3NOYW1lLGxlPXUoKSh0ZSxtZSwoMCx0LlopKHt9LCIiLmNvbmNhdChtZSwiLXNwaW4iKSwhIVQmJiEheCksRSksY2U9dSgpKCgwLHQuWikoe30sIiIuY29uY2F0KG1lLCItc3BpbiIpLCEhVCkpLFc9Uz97bXNUcmFuc2Zvcm06InJvdGF0ZSgiLmNvbmNhdChTLCJkZWcpIiksdHJhbnNmb3JtOiJyb3RhdGUoIi5jb25jYXQoUywiZGVnKSIpfTp2b2lkIDAsaj0oMCxuLlopKCgwLG4uWikoe30sZC52RCkse30se2NsYXNzTmFtZTpjZSxzdHlsZTpXLHZpZXdCb3g6T30pO098fGRlbGV0ZSBqLnZpZXdCb3g7dmFyIEQ9ZnVuY3Rpb24oKXtyZXR1cm4geD9zLmNyZWF0ZUVsZW1lbnQoeCxqLFIpOlI/KCgwLGQuS3ApKCEhT3x8cy5DaGlsZHJlbi5jb3VudChSKT09PTEmJnMuaXNWYWxpZEVsZW1lbnQoUikmJnMuQ2hpbGRyZW4ub25seShSKS50eXBlPT09InVzZSIsIk1ha2Ugc3VyZSB0aGF0IHlvdSBwcm92aWRlIGNvcnJlY3QgYHZpZXdCb3hgIHByb3AgKGRlZmF1bHQgYDAgMCAxMDI0IDEwMjRgKSB0byB0aGUgaWNvbi4iKSxzLmNyZWF0ZUVsZW1lbnQoInN2ZyIsKDAsci5aKSh7fSxqLHt2aWV3Qm94Ok99KSxSKSk6bnVsbH0sVj1MO3JldHVybiBWPT09dm9pZCAwJiZJJiYoVj0tMSkscy5jcmVhdGVFbGVtZW50KCJzcGFuIiwoMCxyLlopKHtyb2xlOiJpbWcifSx6LHtyZWY6WSx0YWJJbmRleDpWLG9uQ2xpY2s6SSxjbGFzc05hbWU6bGV9KSxEKCkpfSk7Qy5kaXNwbGF5TmFtZT0iQW50ZEljb24iLHAuWj1DfSw1ODc4NDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoOTEpLG49ZSgxNDEzKSx0PWUoNjcyOTQpLGk9ZSg0MTc1NSkscz1bImljb24iLCJjbGFzc05hbWUiLCJvbkNsaWNrIiwic3R5bGUiLCJwcmltYXJ5Q29sb3IiLCJzZWNvbmRhcnlDb2xvciJdLGE9e3ByaW1hcnlDb2xvcjoiIzMzMyIsc2Vjb25kYXJ5Q29sb3I6IiNFNkU2RTYiLGNhbGN1bGF0ZWQ6ITF9O2Z1bmN0aW9uIHUoZCl7dmFyIG09ZC5wcmltYXJ5Q29sb3IsQz1kLnNlY29uZGFyeUNvbG9yO2EucHJpbWFyeUNvbG9yPW0sYS5zZWNvbmRhcnlDb2xvcj1DfHwoMCxpLnB3KShtKSxhLmNhbGN1bGF0ZWQ9ISFDfWZ1bmN0aW9uIGMoKXtyZXR1cm4oMCxuLlopKHt9LGEpfXZhciBoPWZ1bmN0aW9uKG0pe3ZhciBDPW0uaWNvbixnPW0uY2xhc3NOYW1lLHc9bS5vbkNsaWNrLEU9bS5zdHlsZSx4PW0ucHJpbWFyeUNvbG9yLE89bS5zZWNvbmRhcnlDb2xvcixUPSgwLHIuWikobSxzKSxTPXQudXNlUmVmKCksTD1hO2lmKHgmJihMPXtwcmltYXJ5Q29sb3I6eCxzZWNvbmRhcnlDb2xvcjpPfHwoMCxpLnB3KSh4KX0pLCgwLGkuQzMpKFMpLCgwLGkuS3ApKCgwLGkucikoQyksImljb24gc2hvdWxkIGJlIGljb24gZGVmaW5pdG9uLCBidXQgZ290ICIuY29uY2F0KEMpKSwhKDAsaS5yKShDKSlyZXR1cm4gbnVsbDt2YXIgST1DO3JldHVybiBJJiZ0eXBlb2YgSS5pY29uPT0iZnVuY3Rpb24iJiYoST0oMCxuLlopKCgwLG4uWikoe30sSSkse30se2ljb246SS5pY29uKEwucHJpbWFyeUNvbG9yLEwuc2Vjb25kYXJ5Q29sb3IpfSkpLCgwLGkuUl8pKEkuaWNvbiwic3ZnLSIuY29uY2F0KEkubmFtZSksKDAsbi5aKSgoMCxuLlopKHtjbGFzc05hbWU6ZyxvbkNsaWNrOncsc3R5bGU6RSwiZGF0YS1pY29uIjpJLm5hbWUsd2lkdGg6IjFlbSIsaGVpZ2h0OiIxZW0iLGZpbGw6ImN1cnJlbnRDb2xvciIsImFyaWEtaGlkZGVuIjoidHJ1ZSJ9LFQpLHt9LHtyZWY6U30pKX07aC5kaXNwbGF5TmFtZT0iSWNvblJlYWN0IixoLmdldFR3b1RvbmVDb2xvcnM9YyxoLnNldFR3b1RvbmVDb2xvcnM9dSxwLlo9aH0sOTEzMjE6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiBofX0pO3ZhciByPWUoODc0NjIpLG49ZSg5MSksdD1lKDY3Mjk0KSxpPWUoMTYxNjUpLHM9WyJ0eXBlIiwiY2hpbGRyZW4iXSxhPW5ldyBTZXQ7ZnVuY3Rpb24gdShkKXtyZXR1cm4hISh0eXBlb2YgZD09InN0cmluZyImJmQubGVuZ3RoJiYhYS5oYXMoZCkpfWZ1bmN0aW9uIGMoZCl7dmFyIG09YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOjAsQz1kW21dO2lmKHUoQykpe3ZhciBnPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO2cuc2V0QXR0cmlidXRlKCJzcmMiLEMpLGcuc2V0QXR0cmlidXRlKCJkYXRhLW5hbWVzcGFjZSIsQyksZC5sZW5ndGg+bSsxJiYoZy5vbmxvYWQ9ZnVuY3Rpb24oKXtjKGQsbSsxKX0sZy5vbmVycm9yPWZ1bmN0aW9uKCl7YyhkLG0rMSl9KSxhLmFkZChDKSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGcpfX1mdW5jdGlvbiBoKCl7dmFyIGQ9YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT12b2lkIDA/YXJndW1lbnRzWzBdOnt9LG09ZC5zY3JpcHRVcmwsQz1kLmV4dHJhQ29tbW9uUHJvcHMsZz1DPT09dm9pZCAwP3t9OkM7bSYmdHlwZW9mIGRvY3VtZW50IT0idW5kZWZpbmVkIiYmdHlwZW9mIHdpbmRvdyE9InVuZGVmaW5lZCImJnR5cGVvZiBkb2N1bWVudC5jcmVhdGVFbGVtZW50PT0iZnVuY3Rpb24iJiYoQXJyYXkuaXNBcnJheShtKT9jKG0ucmV2ZXJzZSgpKTpjKFttXSkpO3ZhciB3PXQuZm9yd2FyZFJlZihmdW5jdGlvbihFLHgpe3ZhciBPPUUudHlwZSxUPUUuY2hpbGRyZW4sUz0oMCxuLlopKEUscyksTD1udWxsO3JldHVybiBFLnR5cGUmJihMPXQuY3JlYXRlRWxlbWVudCgidXNlIix7eGxpbmtIcmVmOiIjIi5jb25jYXQoTyl9KSksVCYmKEw9VCksdC5jcmVhdGVFbGVtZW50KGkuWiwoMCxyLlopKHt9LGcsUyx7cmVmOnh9KSxMKX0pO3JldHVybiB3LmRpc3BsYXlOYW1lPSJJY29uZm9udCIsd319LDU5MDY4OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1U6ZnVuY3Rpb24oKXtyZXR1cm4gaX0sbTpmdW5jdGlvbigpe3JldHVybiBzfX0pO3ZhciByPWUoOTc2ODUpLG49ZSg1ODc4NCksdD1lKDQxNzU1KTtmdW5jdGlvbiBpKGEpe3ZhciB1PSgwLHQuSDkpKGEpLGM9KDAsci5aKSh1LDIpLGg9Y1swXSxkPWNbMV07cmV0dXJuIG4uWi5zZXRUd29Ub25lQ29sb3JzKHtwcmltYXJ5Q29sb3I6aCxzZWNvbmRhcnlDb2xvcjpkfSl9ZnVuY3Rpb24gcygpe3ZhciBhPW4uWi5nZXRUd29Ub25lQ29sb3JzKCk7cmV0dXJuIGEuY2FsY3VsYXRlZD9bYS5wcmltYXJ5Q29sb3IsYS5zZWNvbmRhcnlDb2xvcl06YS5wcmltYXJ5Q29sb3J9fSw3MzQ4MDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGN9fSk7dmFyIHI9ZSg4NzQ2Miksbj1lKDY3Mjk0KSx0PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0yOTYgMjUwYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDM4NGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOEgyOTZ6bTE4NCAxNDRIMjk2Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDE4NGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOHptLTQ4IDQ1OEgyMDhWMTQ4aDU2MHYzMjBjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFYxMDhjMC0xNy43LTE0LjMtMzItMzItMzJIMTY4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3ODRjMCAxNy43IDE0LjMgMzIgMzIgMzJoMjY0YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em00NDAtODhINzI4di0zNi42YzQ2LjMtMTMuOCA4MC01Ni42IDgwLTEwNy40IDAtNjEuOS01MC4xLTExMi0xMTItMTEycy0xMTIgNTAuMS0xMTIgMTEyYzAgNTAuNyAzMy43IDkzLjYgODAgMTA3LjRWNzY0SDUyMGMtOC44IDAtMTYgNy4yLTE2IDE2djE1MmMwIDguOCA3LjIgMTYgMTYgMTZoMzUyYzguOCAwIDE2LTcuMiAxNi0xNlY3ODBjMC04LjgtNy4yLTE2LTE2LTE2ek02NDYgNjIwYzAtMjcuNiAyMi40LTUwIDUwLTUwczUwIDIyLjQgNTAgNTAtMjIuNCA1MC01MCA1MC01MC0yMi40LTUwLTUwem0xODAgMjY2SDU2NnYtNjBoMjYwdjYweiJ9fV19LG5hbWU6ImF1ZGl0Iix0aGVtZToib3V0bGluZWQifSxpPXQscz1lKDEzNDAxKSxhPWZ1bmN0aW9uKGQsbSl7cmV0dXJuIG4uY3JlYXRlRWxlbWVudChzLlosKDAsci5aKSh7fSxkLHtyZWY6bSxpY29uOml9KSl9LHU9bi5mb3J3YXJkUmVmKGEpLGM9dX0sMTM3Mjg6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiBjfX0pO3ZhciByPWUoODc0NjIpLG49ZSg2NzI5NCksdD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiIwIDAgMTAyNCAxMDI0Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTEyIDE5MkgzMjhjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTg0YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wIDI4NEgzMjhjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTg0YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wIDI4NEgzMjhjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTg0YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04ek0xMDQgMjI4YTU2IDU2IDAgMTAxMTIgMCA1NiA1NiAwIDEwLTExMiAwem0wIDI4NGE1NiA1NiAwIDEwMTEyIDAgNTYgNTYgMCAxMC0xMTIgMHptMCAyODRhNTYgNTYgMCAxMDExMiAwIDU2IDU2IDAgMTAtMTEyIDB6In19XX0sbmFtZToiYmFycyIsdGhlbWU6Im91dGxpbmVkIn0saT10LHM9ZSgxMzQwMSksYT1mdW5jdGlvbihkLG0pe3JldHVybiBuLmNyZWF0ZUVsZW1lbnQocy5aLCgwLHIuWikoe30sZCx7cmVmOm0saWNvbjppfSkpfSx1PW4uZm9yd2FyZFJlZihhKSxjPXV9LDIwODQxOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1o6ZnVuY3Rpb24oKXtyZXR1cm4gY319KTt2YXIgcj1lKDg3NDYyKSxuPWUoNjcyOTQpLHQ9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxODRINzEydi02NGMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NjRIMzg0di02NGMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NjRIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY2NjRjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjIxNmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDY1NkgxODRWNDYwaDY1NnYzODB6TTE4NCAzOTJWMjU2aDEyOHY0OGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di00OGgyNTZ2NDhjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNDhoMTI4djEzNkgxODR6In19XX0sbmFtZToiY2FsZW5kYXIiLHRoZW1lOiJvdXRsaW5lZCJ9LGk9dCxzPWUoMTM0MDEpLGE9ZnVuY3Rpb24oZCxtKXtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KHMuWiwoMCxyLlopKHt9LGQse3JlZjptLGljb246aX0pKX0sdT1uLmZvcndhcmRSZWYoYSksYz11fSw4ODkxNjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGN9fSk7dmFyIHI9ZSg4NzQ2Miksbj1lKDY3Mjk0KSx0PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NjQgMjQ4SDcyOGwtMzIuNC05MC44YTMyLjA3IDMyLjA3IDAgMDAtMzAuMi0yMS4ySDM1OC42Yy0xMy41IDAtMjUuNiA4LjUtMzAuMSAyMS4yTDI5NiAyNDhIMTYwYy00NC4yIDAtODAgMzUuOC04MCA4MHY0NTZjMCA0NC4yIDM1LjggODAgODAgODBoNzA0YzQ0LjIgMCA4MC0zNS44IDgwLTgwVjMyOGMwLTQ0LjItMzUuOC04MC04MC04MHptOCA1MzZjMCA0LjQtMy42IDgtOCA4SDE2MGMtNC40IDAtOC0zLjYtOC04VjMyOGMwLTQuNCAzLjYtOCA4LThoMTg2LjdsMTcuMS00Ny44IDIyLjktNjQuMmgyNTAuNWwyMi45IDY0LjIgMTcuMSA0Ny44SDg2NGM0LjQgMCA4IDMuNiA4IDh2NDU2ek01MTIgMzg0Yy04OC40IDAtMTYwIDcxLjYtMTYwIDE2MHM3MS42IDE2MCAxNjAgMTYwIDE2MC03MS42IDE2MC0xNjAtNzEuNi0xNjAtMTYwLTE2MHptMCAyNTZjLTUzIDAtOTYtNDMtOTYtOTZzNDMtOTYgOTYtOTYgOTYgNDMgOTYgOTYtNDMgOTYtOTYgOTZ6In19XX0sbmFtZToiY2FtZXJhIix0aGVtZToib3V0bGluZWQifSxpPXQscz1lKDEzNDAxKSxhPWZ1bmN0aW9uKGQsbSl7cmV0dXJuIG4uY3JlYXRlRWxlbWVudChzLlosKDAsci5aKSh7fSxkLHtyZWY6bSxpY29uOml9KSl9LHU9bi5mb3J3YXJkUmVmKGEpLGM9dX0sNjgyNjU6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiBjfX0pO3ZhciByPWUoODc0NjIpLG49ZSg2NzI5NCksdD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiIwIDAgMTAyNCAxMDI0Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODQwLjQgMzAwSDE4My42Yy0xOS43IDAtMzAuNyAyMC44LTE4LjUgMzVsMzI4LjQgMzgwLjhjOS40IDEwLjkgMjcuNSAxMC45IDM3IDBMODU4LjkgMzM1YzEyLjItMTQuMiAxLjItMzUtMTguNS0zNXoifX1dfSxuYW1lOiJjYXJldC1kb3duIix0aGVtZToiZmlsbGVkIn0saT10LHM9ZSgxMzQwMSksYT1mdW5jdGlvbihkLG0pe3JldHVybiBuLmNyZWF0ZUVsZW1lbnQocy5aLCgwLHIuWikoe30sZCx7cmVmOm0saWNvbjppfSkpfSx1PW4uZm9yd2FyZFJlZihhKSxjPXV9LDM5Mzk4OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1o6ZnVuY3Rpb24oKXtyZXR1cm4gY319KTt2YXIgcj1lKDg3NDYyKSxuPWUoNjcyOTQpLHQ9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiMCAwIDEwMjQgMTAyNCIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg0MC40IDMwMEgxODMuNmMtMTkuNyAwLTMwLjcgMjAuOC0xOC41IDM1bDMyOC40IDM4MC44YzkuNCAxMC45IDI3LjUgMTAuOSAzNyAwTDg1OC45IDMzNWMxMi4yLTE0LjIgMS4yLTM1LTE4LjUtMzV6In19XX0sbmFtZToiY2FyZXQtZG93biIsdGhlbWU6Im91dGxpbmVkIn0saT10LHM9ZSgxMzQwMSksYT1mdW5jdGlvbihkLG0pe3JldHVybiBuLmNyZWF0ZUVsZW1lbnQocy5aLCgwLHIuWikoe30sZCx7cmVmOm0saWNvbjppfSkpfSx1PW4uZm9yd2FyZFJlZihhKSxjPXV9LDEwMDEwOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1o6ZnVuY3Rpb24oKXtyZXR1cm4gY319KTt2YXIgcj1lKDg3NDYyKSxuPWUoNjcyOTQpLHQ9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiMCAwIDEwMjQgMTAyNCIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg1OC45IDY4OUw1MzAuNSAzMDguMmMtOS40LTEwLjktMjcuNS0xMC45LTM3IDBMMTY1LjEgNjg5Yy0xMi4yIDE0LjItMS4yIDM1IDE4LjUgMzVoNjU2LjhjMTkuNyAwIDMwLjctMjAuOCAxOC41LTM1eiJ9fV19LG5hbWU6ImNhcmV0LXVwIix0aGVtZToib3V0bGluZWQifSxpPXQscz1lKDEzNDAxKSxhPWZ1bmN0aW9uKGQsbSl7cmV0dXJuIG4uY3JlYXRlRWxlbWVudChzLlosKDAsci5aKSh7fSxkLHtyZWY6bSxpY29uOml9KSl9LHU9bi5mb3J3YXJkUmVmKGEpLGM9dX0sODk3Mzk6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiBjfX0pO3ZhciByPWUoODc0NjIpLG49ZSg2NzI5NCksdD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTE5My41IDMwMS43bC0yMTAuNiAyOTJhMzEuOCAzMS44IDAgMDEtNTEuNyAwTDMxOC41IDQ4NC45Yy0zLjgtNS4zIDAtMTIuNyA2LjUtMTIuN2g0Ni45YzEwLjIgMCAxOS45IDQuOSAyNS45IDEzLjNsNzEuMiA5OC44IDE1Ny4yLTIxOGM2LTguMyAxNS42LTEzLjMgMjUuOS0xMy4zSDY5OWM2LjUgMCAxMC4zIDcuNCA2LjUgMTIuN3oifX1dfSxuYW1lOiJjaGVjay1jaXJjbGUiLHRoZW1lOiJmaWxsZWQifSxpPXQscz1lKDEzNDAxKSxhPWZ1bmN0aW9uKGQsbSl7cmV0dXJuIG4uY3JlYXRlRWxlbWVudChzLlosKDAsci5aKSh7fSxkLHtyZWY6bSxpY29uOml9KSl9LHU9bi5mb3J3YXJkUmVmKGEpLGM9dX0sNjM2MDY6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiBjfX0pO3ZhciByPWUoODc0NjIpLG49ZSg2NzI5NCksdD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTEyIDE5MGgtNjkuOWMtOS44IDAtMTkuMSA0LjUtMjUuMSAxMi4yTDQwNC43IDcyNC41IDIwNyA0NzRhMzIgMzIgMCAwMC0yNS4xLTEyLjJIMTEyYy02LjcgMC0xMC40IDcuNy02LjMgMTIuOWwyNzMuOSAzNDdjMTIuOCAxNi4yIDM3LjQgMTYuMiA1MC4zIDBsNDg4LjQtNjE4LjljNC4xLTUuMS40LTEyLjgtNi4zLTEyLjh6In19XX0sbmFtZToiY2hlY2siLHRoZW1lOiJvdXRsaW5lZCJ9LGk9dCxzPWUoMTM0MDEpLGE9ZnVuY3Rpb24oZCxtKXtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KHMuWiwoMCxyLlopKHt9LGQse3JlZjptLGljb246aX0pKX0sdT1uLmZvcndhcmRSZWYoYSksYz11fSwyNDAxOTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGN9fSk7dmFyIHI9ZSg4NzQ2Miksbj1lKDY3Mjk0KSx0PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6In19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNjg2LjcgNjM4LjZMNTQ0LjEgNTM1LjVWMjg4YzAtNC40LTMuNi04LTgtOEg0ODhjLTQuNCAwLTggMy42LTggOHYyNzUuNGMwIDIuNiAxLjIgNSAzLjMgNi41bDE2NS40IDEyMC42YzMuNiAyLjYgOC42IDEuOCAxMS4yLTEuN2wyOC42LTM5YzIuNi0zLjcgMS44LTguNy0xLjgtMTEuMnoifX1dfSxuYW1lOiJjbG9jay1jaXJjbGUiLHRoZW1lOiJvdXRsaW5lZCJ9LGk9dCxzPWUoMTM0MDEpLGE9ZnVuY3Rpb24oZCxtKXtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KHMuWiwoMCxyLlopKHt9LGQse3JlZjptLGljb246aX0pKX0sdT1uLmZvcndhcmRSZWYoYSksYz11fSw0MzQwOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1o6ZnVuY3Rpb24oKXtyZXR1cm4gY319KTt2YXIgcj1lKDg3NDYyKSxuPWUoNjcyOTQpLHQ9e2ljb246e3RhZzoic3ZnIixhdHRyczp7ImZpbGwtcnVsZSI6ImV2ZW5vZGQiLHZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRjMjQ3LjQgMCA0NDggMjAwLjYgNDQ4IDQ0OFM3NTkuNCA5NjAgNTEyIDk2MCA2NCA3NTkuNCA2NCA1MTIgMjY0LjYgNjQgNTEyIDY0em0xMjcuOTggMjc0LjgyaC0uMDRsLS4wOC4wNkw1MTIgNDY2Ljc1IDM4NC4xNCAzMzguODhjLS4wNC0uMDUtLjA2LS4wNi0uMDgtLjA2YS4xMi4xMiAwIDAwLS4wNyAwYy0uMDMgMC0uMDUuMDEtLjA5LjA1bC00NS4wMiA0NS4wMmEuMi4yIDAgMDAtLjA1LjA5LjEyLjEyIDAgMDAwIC4wN3YuMDJhLjI3LjI3IDAgMDAuMDYuMDZMNDY2Ljc1IDUxMiAzMzguODggNjM5Ljg2Yy0uMDUuMDQtLjA2LjA2LS4wNi4wOGEuMTIuMTIgMCAwMDAgLjA3YzAgLjAzLjAxLjA1LjA1LjA5bDQ1LjAyIDQ1LjAyYS4yLjIgMCAwMC4wOS4wNS4xMi4xMiAwIDAwLjA3IDBjLjAyIDAgLjA0LS4wMS4wOC0uMDVMNTEyIDU1Ny4yNWwxMjcuODYgMTI3Ljg3Yy4wNC4wNC4wNi4wNS4wOC4wNWEuMTIuMTIgMCAwMC4wNyAwYy4wMyAwIC4wNS0uMDEuMDktLjA1bDQ1LjAyLTQ1LjAyYS4yLjIgMCAwMC4wNS0uMDkuMTIuMTIgMCAwMDAtLjA3di0uMDJhLjI3LjI3IDAgMDAtLjA1LS4wNkw1NTcuMjUgNTEybDEyNy44Ny0xMjcuODZjLjA0LS4wNC4wNS0uMDYuMDUtLjA4YS4xMi4xMiAwIDAwMC0uMDdjMC0uMDMtLjAxLS4wNS0uMDUtLjA5bC00NS4wMi00NS4wMmEuMi4yIDAgMDAtLjA5LS4wNS4xMi4xMiAwIDAwLS4wNyAweiJ9fV19LG5hbWU6ImNsb3NlLWNpcmNsZSIsdGhlbWU6ImZpbGxlZCJ9LGk9dCxzPWUoMTM0MDEpLGE9ZnVuY3Rpb24oZCxtKXtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KHMuWiwoMCxyLlopKHt9LGQse3JlZjptLGljb246aX0pKX0sdT1uLmZvcndhcmRSZWYoYSksYz11fSw5NzkzNzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGN9fSk7dmFyIHI9ZSg4NzQ2Miksbj1lKDY3Mjk0KSx0PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6eyJmaWxsLXJ1bGUiOiJldmVub2RkIix2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNzk5Ljg2IDE2Ni4zMWMuMDIgMCAuMDQuMDIuMDguMDZsNTcuNjkgNTcuN2MuMDQuMDMuMDUuMDUuMDYuMDhhLjEyLjEyIDAgMDEwIC4wNmMwIC4wMy0uMDIuMDUtLjA2LjA5TDU2OS45MyA1MTJsMjg3LjcgMjg3LjdjLjA0LjA0LjA1LjA2LjA2LjA5YS4xMi4xMiAwIDAxMCAuMDdjMCAuMDItLjAyLjA0LS4wNi4wOGwtNTcuNyA1Ny42OWMtLjAzLjA0LS4wNS4wNS0uMDcuMDZhLjEyLjEyIDAgMDEtLjA3IDBjLS4wMyAwLS4wNS0uMDItLjA5LS4wNkw1MTIgNTY5LjkzbC0yODcuNyAyODcuN2MtLjA0LjA0LS4wNi4wNS0uMDkuMDZhLjEyLjEyIDAgMDEtLjA3IDBjLS4wMiAwLS4wNC0uMDItLjA4LS4wNmwtNTcuNjktNTcuN2MtLjA0LS4wMy0uMDUtLjA1LS4wNi0uMDdhLjEyLjEyIDAgMDEwLS4wN2MwLS4wMy4wMi0uMDUuMDYtLjA5TDQ1NC4wNyA1MTJsLTI4Ny43LTI4Ny43Yy0uMDQtLjA0LS4wNS0uMDYtLjA2LS4wOWEuMTIuMTIgMCAwMTAtLjA3YzAtLjAyLjAyLS4wNC4wNi0uMDhsNTcuNy01Ny42OWMuMDMtLjA0LjA1LS4wNS4wNy0uMDZhLjEyLjEyIDAgMDEuMDcgMGMuMDMgMCAuMDUuMDIuMDkuMDZMNTEyIDQ1NC4wN2wyODcuNy0yODcuN2MuMDQtLjA0LjA2LS4wNS4wOS0uMDZhLjEyLjEyIDAgMDEuMDcgMHoifX1dfSxuYW1lOiJjbG9zZSIsdGhlbWU6Im91dGxpbmVkIn0saT10LHM9ZSgxMzQwMSksYT1mdW5jdGlvbihkLG0pe3JldHVybiBuLmNyZWF0ZUVsZW1lbnQocy5aLCgwLHIuWikoe30sZCx7cmVmOm0saWNvbjppfSkpfSx1PW4uZm9yd2FyZFJlZihhKSxjPXV9LDQwNzE3OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1o6ZnVuY3Rpb24oKXtyZXR1cm4gY319KTt2YXIgcj1lKDg3NDYyKSxuPWUoNjcyOTQpLHQ9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4OCA2ODBoLTU0VjU0MEg1NDZ2LTkyaDIzOGM4LjggMCAxNi03LjIgMTYtMTZWMTY4YzAtOC44LTcuMi0xNi0xNi0xNkgyNDBjLTguOCAwLTE2IDcuMi0xNiAxNnYyNjRjMCA4LjggNy4yIDE2IDE2IDE2aDIzOHY5MkgxOTB2MTQwaC01NGMtNC40IDAtOCAzLjYtOCA4djE3NmMwIDQuNCAzLjYgOCA4IDhoMTc2YzQuNCAwIDgtMy42IDgtOFY2ODhjMC00LjQtMy42LTgtOC04aC01NHYtNzJoMjIwdjcyaC01NGMtNC40IDAtOCAzLjYtOCA4djE3NmMwIDQuNCAzLjYgOCA4IDhoMTc2YzQuNCAwIDgtMy42IDgtOFY2ODhjMC00LjQtMy42LTgtOC04aC01NHYtNzJoMjIwdjcyaC01NGMtNC40IDAtOCAzLjYtOCA4djE3NmMwIDQuNCAzLjYgOCA4IDhoMTc2YzQuNCAwIDgtMy42IDgtOFY2ODhjMC00LjQtMy42LTgtOC04ek0yNTYgODA1LjNjMCAxLjUtMS4yIDIuNy0yLjcgMi43aC01OC43Yy0xLjUgMC0yLjctMS4yLTIuNy0yLjd2LTU4LjdjMC0xLjUgMS4yLTIuNyAyLjctMi43aDU4LjdjMS41IDAgMi43IDEuMiAyLjcgMi43djU4Ljd6bTI4OCAwYzAgMS41LTEuMiAyLjctMi43IDIuN2gtNTguN2MtMS41IDAtMi43LTEuMi0yLjctMi43di01OC43YzAtMS41IDEuMi0yLjcgMi43LTIuN2g1OC43YzEuNSAwIDIuNyAxLjIgMi43IDIuN3Y1OC43ek0yODggMzg0VjIxNmg0NDh2MTY4SDI4OHptNTQ0IDQyMS4zYzAgMS41LTEuMiAyLjctMi43IDIuN2gtNTguN2MtMS41IDAtMi43LTEuMi0yLjctMi43di01OC43YzAtMS41IDEuMi0yLjcgMi43LTIuN2g1OC43YzEuNSAwIDIuNyAxLjIgMi43IDIuN3Y1OC43ek0zNjAgMzAwYTQwIDQwIDAgMTA4MCAwIDQwIDQwIDAgMTAtODAgMHoifX1dfSxuYW1lOiJjbHVzdGVyIix0aGVtZToib3V0bGluZWQifSxpPXQscz1lKDEzNDAxKSxhPWZ1bmN0aW9uKGQsbSl7cmV0dXJuIG4uY3JlYXRlRWxlbWVudChzLlosKDAsci5aKSh7fSxkLHtyZWY6bSxpY29uOml9KSl9LHU9bi5mb3J3YXJkUmVmKGEpLGM9dX0sNjg4Njk6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiBjfX0pO3ZhciByPWUoODc0NjIpLG49ZSg2NzI5NCksdD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODQwIDgzNkgxODRjLTQuNCAwLTggMy42LTggOHY2MGMwIDQuNCAzLjYgOCA4IDhoNjU2YzQuNCAwIDgtMy42IDgtOHYtNjBjMC00LjQtMy42LTgtOC04em0wLTcyNEgxODRjLTQuNCAwLTggMy42LTggOHY2MGMwIDQuNCAzLjYgOCA4IDhoNjU2YzQuNCAwIDgtMy42IDgtOHYtNjBjMC00LjQtMy42LTgtOC04ek02MTAuOCAzNzhjNiAwIDkuNC03IDUuNy0xMS43TDUxNS43IDIzOC43YTcuMTQgNy4xNCAwIDAwLTExLjMgMEw0MDMuNiAzNjYuM2E3LjIzIDcuMjMgMCAwMDUuNyAxMS43SDQ3NnYyNjhoLTYyLjhjLTYgMC05LjQgNy01LjcgMTEuN2wxMDAuOCAxMjcuNWMyLjkgMy43IDguNSAzLjcgMTEuMyAwbDEwMC44LTEyNy41YzMuNy00LjcuNC0xMS43LTUuNy0xMS43SDU0OFYzNzhoNjIuOHoifX1dfSxuYW1lOiJjb2x1bW4taGVpZ2h0Iix0aGVtZToib3V0bGluZWQifSxpPXQscz1lKDEzNDAxKSxhPWZ1bmN0aW9uKGQsbSl7cmV0dXJuIG4uY3JlYXRlRWxlbWVudChzLlosKDAsci5aKSh7fSxkLHtyZWY6bSxpY29uOml9KSl9LHU9bi5mb3J3YXJkUmVmKGEpLGM9dX0sNzEyNTU6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiBjfX0pO3ZhciByPWUoODc0NjIpLG49ZSg2NzI5NCksdD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6ImRlZnMiLGF0dHJzOnt9LGNoaWxkcmVuOlt7dGFnOiJzdHlsZSIsYXR0cnM6e319XX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01NzMgNDIxYy0yMy4xIDAtNDEgMTcuOS00MSA0MHMxNy45IDQwIDQxIDQwYzIxLjEgMCAzOS0xNy45IDM5LTQwcy0xNy45LTQwLTM5LTQwem0tMjgwIDBjLTIzLjEgMC00MSAxNy45LTQxIDQwczE3LjkgNDAgNDEgNDBjMjEuMSAwIDM5LTE3LjkgMzktNDBzLTE3LjktNDAtMzktNDB6In19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODk0IDM0NWEzNDMuOTIgMzQzLjkyIDAgMDAtMTg5LTEzMHYuMWMtMTcuMS0xOS0zNi40LTM2LjUtNTgtNTIuMS0xNjMuNy0xMTktMzkzLjUtODIuNy01MTMgODEtOTYuMyAxMzMtOTIuMiAzMTEuOSA2IDQzOWwuOCAxMzIuNmMwIDMuMi41IDYuNCAxLjUgOS40YTMxLjk1IDMxLjk1IDAgMDA0MC4xIDIwLjlMMzA5IDgwNmMzMy41IDExLjkgNjguMSAxOC43IDEwMi41IDIwLjZsLS41LjRjODkuMSA2NC45IDIwNS45IDg0LjQgMzEzIDQ5bDEyNy4xIDQxLjRjMy4yIDEgNi41IDEuNiA5LjkgMS42IDE3LjcgMCAzMi0xNC4zIDMyLTMyVjc1M2M4OC4xLTExOS42IDkwLjQtMjg0LjkgMS00MDh6TTMyMyA3MzVsLTEyLTUtOTkgMzEtMS0xMDQtOC05Yy04NC42LTEwMy4yLTkwLjItMjUxLjktMTEtMzYxIDk2LjQtMTMyLjIgMjgxLjItMTYxLjQgNDEzLTY2IDEzMi4yIDk2LjEgMTYxLjUgMjgwLjYgNjYgNDEyLTgwLjEgMTA5LjktMjIzLjUgMTUwLjUtMzQ4IDEwMnptNTA1LTE3bC04IDEwIDEgMTA0LTk4LTMzLTEyIDVjLTU2IDIwLjgtMTE1LjcgMjIuNS0xNzEgN2wtLjItLjFBMzY3LjMxIDM2Ny4zMSAwIDAwNzI5IDY3NmM3Ni40LTEwNS4zIDg4LjgtMjM3LjYgNDQuNC0zNTAuNGwuNi40YzIzIDE2LjUgNDQuMSAzNy4xIDYyIDYyIDcyLjYgOTkuNiA2OC41IDIzNS4yLTggMzMweiJ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQzMyA0MjFjLTIzLjEgMC00MSAxNy45LTQxIDQwczE3LjkgNDAgNDEgNDBjMjEuMSAwIDM5LTE3LjkgMzktNDBzLTE3LjktNDAtMzktNDB6In19XX0sbmFtZToiY29tbWVudCIsdGhlbWU6Im91dGxpbmVkIn0saT10LHM9ZSgxMzQwMSksYT1mdW5jdGlvbihkLG0pe3JldHVybiBuLmNyZWF0ZUVsZW1lbnQocy5aLCgwLHIuWikoe30sZCx7cmVmOm0saWNvbjppfSkpfSx1PW4uZm9yd2FyZFJlZihhKSxjPXV9LDU3MTMyOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1o6ZnVuY3Rpb24oKXtyZXR1cm4gY319KTt2YXIgcj1lKDg3NDYyKSxuPWUoNjcyOTQpLHQ9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTgzMiA2NEgyOTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNDk2djY4OGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04Vjk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyek03MDQgMTkySDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NTMwLjdjMCA4LjUgMy40IDE2LjYgOS40IDIyLjZsMTczLjMgMTczLjNjMi4yIDIuMiA0LjcgNCA3LjQgNS41djEuOWg0LjJjMy41IDEuMyA3LjIgMiAxMSAySDcwNGMxNy43IDAgMzItMTQuMyAzMi0zMlYyMjRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTM1MCA4NTYuMkwyNjMuOSA3NzBIMzUwdjg2LjJ6TTY2NCA4ODhINDE0Vjc0NmMwLTIyLjEtMTcuOS00MC00MC00MEgyMzJWMjY0aDQzMnY2MjR6In19XX0sbmFtZToiY29weSIsdGhlbWU6Im91dGxpbmVkIn0saT10LHM9ZSgxMzQwMSksYT1mdW5jdGlvbihkLG0pe3JldHVybiBuLmNyZWF0ZUVsZW1lbnQocy5aLCgwLHIuWikoe30sZCx7cmVmOm0saWNvbjppfSkpfSx1PW4uZm9yd2FyZFJlZihhKSxjPXV9LDczNzE6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiBjfX0pO3ZhciByPWUoODc0NjIpLG49ZSg2NzI5NCksdD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyem01LjYtNTMyLjdjNTMgMCA4OSAzMy44IDkzIDgzLjQuMyA0LjIgMy44IDcuNCA4IDcuNGg1Ni43YzIuNiAwIDQuNy0yLjEgNC43LTQuNyAwLTg2LjctNjguNC0xNDcuNC0xNjIuNy0xNDcuNEM0MDcuNCAyOTAgMzQ0IDM2NC4yIDM0NCA0ODYuOHY1Mi4zQzM0NCA2NjAuOCA0MDcuNCA3MzQgNTE3LjMgNzM0Yzk0IDAgMTYyLjctNTguOCAxNjIuNy0xNDEuNCAwLTIuNi0yLjEtNC43LTQuNy00LjdoLTU2LjhjLTQuMiAwLTcuNiAzLjItOCA3LjMtNC4yIDQ2LjEtNDAuMSA3Ny44LTkzIDc3LjgtNjUuMyAwLTEwMi4xLTQ3LjktMTAyLjEtMTMzLjZ2LTUyLjZjLjEtODcgMzctMTM1LjUgMTAyLjItMTM1LjV6In19XX0sbmFtZToiY29weXJpZ2h0Iix0aGVtZToib3V0bGluZWQifSxpPXQscz1lKDEzNDAxKSxhPWZ1bmN0aW9uKGQsbSl7cmV0dXJuIG4uY3JlYXRlRWxlbWVudChzLlosKDAsci5aKSh7fSxkLHtyZWY6bSxpY29uOml9KSl9LHU9bi5mb3J3YXJkUmVmKGEpLGM9dX0sNTQ4MTE6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiBjfX0pO3ZhciByPWUoODc0NjIpLG49ZSg2NzI5NCksdD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODk5LjYgMjc2LjVMNzA1IDM5Ni40IDUxOC40IDE0Ny41YTguMDYgOC4wNiAwIDAwLTEyLjkgMEwzMTkgMzk2LjQgMTI0LjMgMjc2LjVjLTUuNy0zLjUtMTMuMSAxLjItMTIuMiA3LjlMMTg4LjUgODY1YzEuMSA3LjkgNy45IDE0IDE2IDE0aDYxNS4xYzggMCAxNC45LTYgMTUuOS0xNGw3Ni40LTU4MC42Yy44LTYuNy02LjUtMTEuNC0xMi4zLTcuOXptLTEyNiA1MzQuMUgyNTAuM2wtNTMuOC00MDkuNCAxMzkuOCA4Ni4xTDUxMiAyNTIuOWwxNzUuNyAyMzQuNCAxMzkuOC04Ni4xLTUzLjkgNDA5LjR6TTUxMiA1MDljLTYyLjEgMC0xMTIuNiA1MC41LTExMi42IDExMi42UzQ0OS45IDczNC4yIDUxMiA3MzQuMnMxMTIuNi01MC41IDExMi42LTExMi42UzU3NC4xIDUwOSA1MTIgNTA5em0wIDE2MC45Yy0yNi42IDAtNDguMi0yMS42LTQ4LjItNDguMyAwLTI2LjYgMjEuNi00OC4zIDQ4LjItNDguM3M0OC4yIDIxLjYgNDguMiA0OC4zYzAgMjYuNi0yMS42IDQ4LjMtNDguMiA0OC4zeiJ9fV19LG5hbWU6ImNyb3duIix0aGVtZToib3V0bGluZWQifSxpPXQscz1lKDEzNDAxKSxhPWZ1bmN0aW9uKGQsbSl7cmV0dXJuIG4uY3JlYXRlRWxlbWVudChzLlosKDAsci5aKSh7fSxkLHtyZWY6bSxpY29uOml9KSl9LHU9bi5mb3J3YXJkUmVmKGEpLGM9dX0sNDg2ODk6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiBjfX0pO3ZhciByPWUoODc0NjIpLG49ZSg2NzI5NCksdD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMzYwIDE4NGgtOGM0LjQgMCA4LTMuNiA4LTh2OGgzMDR2LThjMCA0LjQgMy42IDggOCA4aC04djcyaDcydi04MGMwLTM1LjMtMjguNy02NC02NC02NEgzNTJjLTM1LjMgMC02NCAyOC43LTY0IDY0djgwaDcydi03MnptNTA0IDcySDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MzJjMCA0LjQgMy42IDggOCA4aDYwLjRsMjQuNyA1MjNjMS42IDM0LjEgMjkuOCA2MSA2My45IDYxaDQ1NGMzNC4yIDAgNjIuMy0yNi44IDYzLjktNjFsMjQuNy01MjNIODg4YzQuNCAwIDgtMy42IDgtOHYtMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTczMS4zIDg0MEgyOTIuN2wtMjQuMi01MTJoNDg3bC0yNC4yIDUxMnoifX1dfSxuYW1lOiJkZWxldGUiLHRoZW1lOiJvdXRsaW5lZCJ9LGk9dCxzPWUoMTM0MDEpLGE9ZnVuY3Rpb24oZCxtKXtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KHMuWiwoMCxyLlopKHt9LGQse3JlZjptLGljb246aX0pKX0sdT1uLmZvcndhcmRSZWYoYSksYz11fSwyNDY6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiBjfX0pO3ZhciByPWUoODc0NjIpLG49ZSg2NzI5NCksdD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMjcyLjkgNTEybDI2NS40LTMzOS4xYzQuMS01LjIuNC0xMi45LTYuMy0xMi45aC03Ny4zYy00LjkgMC05LjYgMi4zLTEyLjYgNi4xTDE4Ni44IDQ5Mi4zYTMxLjk5IDMxLjk5IDAgMDAwIDM5LjVsMjU1LjMgMzI2LjFjMyAzLjkgNy43IDYuMSAxMi42IDYuMUg1MzJjNi43IDAgMTAuNC03LjcgNi4zLTEyLjlMMjcyLjkgNTEyem0zMDQgMGwyNjUuNC0zMzkuMWM0LjEtNS4yLjQtMTIuOS02LjMtMTIuOWgtNzcuM2MtNC45IDAtOS42IDIuMy0xMi42IDYuMUw0OTAuOCA0OTIuM2EzMS45OSAzMS45OSAwIDAwMCAzOS41bDI1NS4zIDMyNi4xYzMgMy45IDcuNyA2LjEgMTIuNiA2LjFIODM2YzYuNyAwIDEwLjQtNy43IDYuMy0xMi45TDU3Ni45IDUxMnoifX1dfSxuYW1lOiJkb3VibGUtbGVmdCIsdGhlbWU6Im91dGxpbmVkIn0saT10LHM9ZSgxMzQwMSksYT1mdW5jdGlvbihkLG0pe3JldHVybiBuLmNyZWF0ZUVsZW1lbnQocy5aLCgwLHIuWikoe30sZCx7cmVmOm0saWNvbjppfSkpfSx1PW4uZm9yd2FyZFJlZihhKSxjPXV9LDk2ODQyOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1o6ZnVuY3Rpb24oKXtyZXR1cm4gY319KTt2YXIgcj1lKDg3NDYyKSxuPWUoNjcyOTQpLHQ9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUzMy4yIDQ5Mi4zTDI3Ny45IDE2Ni4xYy0zLTMuOS03LjctNi4xLTEyLjYtNi4xSDE4OGMtNi43IDAtMTAuNCA3LjctNi4zIDEyLjlMNDQ3LjEgNTEyIDE4MS43IDg1MS4xQTcuOTggNy45OCAwIDAwMTg4IDg2NGg3Ny4zYzQuOSAwIDkuNi0yLjMgMTIuNi02LjFsMjU1LjMtMzI2LjFjOS4xLTExLjcgOS4xLTI3LjkgMC0zOS41em0zMDQgMEw1ODEuOSAxNjYuMWMtMy0zLjktNy43LTYuMS0xMi42LTYuMUg0OTJjLTYuNyAwLTEwLjQgNy43LTYuMyAxMi45TDc1MS4xIDUxMiA0ODUuNyA4NTEuMUE3Ljk4IDcuOTggMCAwMDQ5MiA4NjRoNzcuM2M0LjkgMCA5LjYtMi4zIDEyLjYtNi4xbDI1NS4zLTMyNi4xYzkuMS0xMS43IDkuMS0yNy45IDAtMzkuNXoifX1dfSxuYW1lOiJkb3VibGUtcmlnaHQiLHRoZW1lOiJvdXRsaW5lZCJ9LGk9dCxzPWUoMTM0MDEpLGE9ZnVuY3Rpb24oZCxtKXtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KHMuWiwoMCxyLlopKHt9LGQse3JlZjptLGljb246aX0pKX0sdT1uLmZvcndhcmRSZWYoYSksYz11fSw4MDg4MjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGN9fSk7dmFyIHI9ZSg4NzQ2Miksbj1lKDY3Mjk0KSx0PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODQgMjU2aC03NWMtNS4xIDAtOS45IDIuNS0xMi45IDYuNkw1MTIgNjU0LjIgMjI3LjkgMjYyLjZjLTMtNC4xLTcuOC02LjYtMTIuOS02LjZoLTc1Yy02LjUgMC0xMC4zIDcuNC02LjUgMTIuN2wzNTIuNiA0ODYuMWMxMi44IDE3LjYgMzkgMTcuNiA1MS43IDBsMzUyLjYtNDg2LjFjMy45LTUuMy4xLTEyLjctNi40LTEyLjd6In19XX0sbmFtZToiZG93biIsdGhlbWU6Im91dGxpbmVkIn0saT10LHM9ZSgxMzQwMSksYT1mdW5jdGlvbihkLG0pe3JldHVybiBuLmNyZWF0ZUVsZW1lbnQocy5aLCgwLHIuWikoe30sZCx7cmVmOm0saWNvbjppfSkpfSx1PW4uZm9yd2FyZFJlZihhKSxjPXV9LDIzNDMwOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1o6ZnVuY3Rpb24oKXtyZXR1cm4gY319KTt2YXIgcj1lKDg3NDYyKSxuPWUoNjcyOTQpLHQ9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUwNS43IDY2MWE4IDggMCAwMDEyLjYgMGwxMTItMTQxLjdjNC4xLTUuMi40LTEyLjktNi4zLTEyLjloLTc0LjFWMTY4YzAtNC40LTMuNi04LTgtOGgtNjBjLTQuNCAwLTggMy42LTggOHYzMzguM0g0MDBjLTYuNyAwLTEwLjQgNy43LTYuMyAxMi45bDExMiAxNDEuOHpNODc4IDYyNmgtNjBjLTQuNCAwLTggMy42LTggOHYxNTRIMjE0VjYzNGMwLTQuNC0zLjYtOC04LThoLTYwYy00LjQgMC04IDMuNi04IDh2MTk4YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY4NGMxNy43IDAgMzItMTQuMyAzMi0zMlY2MzRjMC00LjQtMy42LTgtOC04eiJ9fV19LG5hbWU6ImRvd25sb2FkIix0aGVtZToib3V0bGluZWQifSxpPXQscz1lKDEzNDAxKSxhPWZ1bmN0aW9uKGQsbSl7cmV0dXJuIG4uY3JlYXRlRWxlbWVudChzLlosKDAsci5aKSh7fSxkLHtyZWY6bSxpY29uOml9KSl9LHU9bi5mb3J3YXJkUmVmKGEpLGM9dX0sODY1NDg6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiBjfX0pO3ZhciByPWUoODc0NjIpLG49ZSg2NzI5NCksdD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMjU3LjcgNzUyYzIgMCA0LS4yIDYtLjVMNDMxLjkgNzIyYzItLjQgMy45LTEuMyA1LjMtMi44bDQyMy45LTQyMy45YTkuOTYgOS45NiAwIDAwMC0xNC4xTDY5NC45IDExNC45Yy0xLjktMS45LTQuNC0yLjktNy4xLTIuOXMtNS4yIDEtNy4xIDIuOUwyNTYuOCA1MzguOGMtMS41IDEuNS0yLjQgMy4zLTIuOCA1LjNsLTI5LjUgMTY4LjJhMzMuNSAzMy41IDAgMDA5LjQgMjkuOGM2LjYgNi40IDE0LjkgOS45IDIzLjggOS45em02Ny40LTE3NC40TDY4Ny44IDIxNWw3My4zIDczLjMtMzYyLjcgMzYyLjYtODguOSAxNS43IDE1LjYtODl6TTg4MCA4MzZIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYzNmMwIDQuNCAzLjYgOCA4IDhoNzg0YzQuNCAwIDgtMy42IDgtOHYtMzZjMC0xNy43LTE0LjMtMzItMzItMzJ6In19XX0sbmFtZToiZWRpdCIsdGhlbWU6Im91dGxpbmVkIn0saT10LHM9ZSgxMzQwMSksYT1mdW5jdGlvbihkLG0pe3JldHVybiBuLmNyZWF0ZUVsZW1lbnQocy5aLCgwLHIuWikoe30sZCx7cmVmOm0saWNvbjppfSkpfSx1PW4uZm9yd2FyZFJlZihhKSxjPXV9LDg5NzA1OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1o6ZnVuY3Rpb24oKXtyZXR1cm4gY319KTt2YXIgcj1lKDg3NDYyKSxuPWUoNjcyOTQpLHQ9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTE3NiA1MTFhNTYgNTYgMCAxMDExMiAwIDU2IDU2IDAgMTAtMTEyIDB6bTI4MCAwYTU2IDU2IDAgMTAxMTIgMCA1NiA1NiAwIDEwLTExMiAwem0yODAgMGE1NiA1NiAwIDEwMTEyIDAgNTYgNTYgMCAxMC0xMTIgMHoifX1dfSxuYW1lOiJlbGxpcHNpcyIsdGhlbWU6Im91dGxpbmVkIn0saT10LHM9ZSgxMzQwMSksYT1mdW5jdGlvbihkLG0pe3JldHVybiBuLmNyZWF0ZUVsZW1lbnQocy5aLCgwLHIuWikoe30sZCx7cmVmOm0saWNvbjppfSkpfSx1PW4uZm9yd2FyZFJlZihhKSxjPXV9LDk5NTc6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiBjfX0pO3ZhciByPWUoODc0NjIpLG49ZSg2NzI5NCksdD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODY0IDE3MGgtNjBjLTQuNCAwLTggMy42LTggOHY1MThIMzEwdi03M2MwLTYuNy03LjgtMTAuNS0xMy02LjNsLTE0MS45IDExMmE4IDggMCAwMDAgMTIuNmwxNDEuOSAxMTJjNS4zIDQuMiAxMyAuNCAxMy02LjN2LTc1aDQ5OGMzNS4zIDAgNjQtMjguNyA2NC02NFYxNzhjMC00LjQtMy42LTgtOC04eiJ9fV19LG5hbWU6ImVudGVyIix0aGVtZToib3V0bGluZWQifSxpPXQscz1lKDEzNDAxKSxhPWZ1bmN0aW9uKGQsbSl7cmV0dXJuIG4uY3JlYXRlRWxlbWVudChzLlosKDAsci5aKSh7fSxkLHtyZWY6bSxpY29uOml9KSl9LHU9bi5mb3J3YXJkUmVmKGEpLGM9dX0sMjE2NDA6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiBjfX0pO3ZhciByPWUoODc0NjIpLG49ZSg2NzI5NCksdD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bS0zMiAyMzJjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHYyNzJjMCA0LjQtMy42IDgtOCA4aC00OGMtNC40IDAtOC0zLjYtOC04VjI5NnptMzIgNDQwYTQ4LjAxIDQ4LjAxIDAgMDEwLTk2IDQ4LjAxIDQ4LjAxIDAgMDEwIDk2eiJ9fV19LG5hbWU6ImV4Y2xhbWF0aW9uLWNpcmNsZSIsdGhlbWU6ImZpbGxlZCJ9LGk9dCxzPWUoMTM0MDEpLGE9ZnVuY3Rpb24oZCxtKXtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KHMuWiwoMCxyLlopKHt9LGQse3JlZjptLGljb246aX0pKX0sdT1uLmZvcndhcmRSZWYoYSksYz11fSwxMTQ3NTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGN9fSk7dmFyIHI9ZSg4NzQ2Miksbj1lKDY3Mjk0KSx0PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6In19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNDY0IDY4OGE0OCA0OCAwIDEwOTYgMCA0OCA0OCAwIDEwLTk2IDB6bTI0LTExMmg0OGM0LjQgMCA4LTMuNiA4LThWMjk2YzAtNC40LTMuNi04LTgtOGgtNDhjLTQuNCAwLTggMy42LTggOHYyNzJjMCA0LjQgMy42IDggOCA4eiJ9fV19LG5hbWU6ImV4Y2xhbWF0aW9uLWNpcmNsZSIsdGhlbWU6Im91dGxpbmVkIn0saT10LHM9ZSgxMzQwMSksYT1mdW5jdGlvbihkLG0pe3JldHVybiBuLmNyZWF0ZUVsZW1lbnQocy5aLCgwLHIuWikoe30sZCx7cmVmOm0saWNvbjppfSkpfSx1PW4uZm9yd2FyZFJlZihhKSxjPXV9LDkwNDIwOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1o6ZnVuY3Rpb24oKXtyZXR1cm4gY319KTt2YXIgcj1lKDg3NDYyKSxuPWUoNjcyOTQpLHQ9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTk0Mi4yIDQ4Ni4yUTg4OS40NyAzNzUuMTEgODE2LjcgMzA1bC01MC44OCA1MC44OEM4MDcuMzEgMzk1LjUzIDg0My40NSA0NDcuNCA4NzQuNyA1MTIgNzkxLjUgNjg0LjIgNjczLjQgNzY2IDUxMiA3NjZxLTcyLjY3IDAtMTMzLjg3LTIyLjM4TDMyMyA3OTguNzVRNDA4IDgzOCA1MTIgODM4cTI4OC4zIDAgNDMwLjItMzAwLjNhNjAuMjkgNjAuMjkgMCAwMDAtNTEuNXptLTYzLjU3LTMyMC42NEw4MzYgMTIyLjg4YTggOCAwIDAwLTExLjMyIDBMNzE1LjMxIDIzMi4yUTYyNC44NiAxODYgNTEyIDE4NnEtMjg4LjMgMC00MzAuMiAzMDAuM2E2MC4zIDYwLjMgMCAwMDAgNTEuNXE1Ni42OSAxMTkuNCAxMzYuNSAxOTEuNDFMMTEyLjQ4IDgzNWE4IDggMCAwMDAgMTEuMzFMMTU1LjE3IDg4OWE4IDggMCAwMDExLjMxIDBsNzEyLjE1LTcxMi4xMmE4IDggMCAwMDAtMTEuMzJ6TTE0OS4zIDUxMkMyMzIuNiAzMzkuOCAzNTAuNyAyNTggNTEyIDI1OGM1NC41NCAwIDEwNC4xMyA5LjM2IDE0OS4xMiAyOC4zOWwtNzAuMyA3MC4zYTE3NiAxNzYgMCAwMC0yMzguMTMgMjM4LjEzbC04My40MiA4My40MkMyMjMuMSA2MzcuNDkgMTgzLjMgNTgyLjI4IDE0OS4zIDUxMnptMjQ2LjcgMGExMTIuMTEgMTEyLjExIDAgMDExNDYuMi0xMDYuNjlMNDAxLjMxIDU0Ni4yQTExMiAxMTIgMCAwMTM5NiA1MTJ6In19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTA4IDYyNGMtMy40NiAwLTYuODctLjE2LTEwLjI1LS40N2wtNTIuODIgNTIuODJhMTc2LjA5IDE3Ni4wOSAwIDAwMjI3LjQyLTIyNy40MmwtNTIuODIgNTIuODJjLjMxIDMuMzguNDcgNi43OS40NyAxMC4yNWExMTEuOTQgMTExLjk0IDAgMDEtMTEyIDExMnoifX1dfSxuYW1lOiJleWUtaW52aXNpYmxlIix0aGVtZToib3V0bGluZWQifSxpPXQscz1lKDEzNDAxKSxhPWZ1bmN0aW9uKGQsbSl7cmV0dXJuIG4uY3JlYXRlRWxlbWVudChzLlosKDAsci5aKSh7fSxkLHtyZWY6bSxpY29uOml9KSl9LHU9bi5mb3J3YXJkUmVmKGEpLGM9dX0sOTk2MTE6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiBjfX0pO3ZhciByPWUoODc0NjIpLG49ZSg2NzI5NCksdD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTQyLjIgNDg2LjJDODQ3LjQgMjg2LjUgNzA0LjEgMTg2IDUxMiAxODZjLTE5Mi4yIDAtMzM1LjQgMTAwLjUtNDMwLjIgMzAwLjNhNjAuMyA2MC4zIDAgMDAwIDUxLjVDMTc2LjYgNzM3LjUgMzE5LjkgODM4IDUxMiA4MzhjMTkyLjIgMCAzMzUuNC0xMDAuNSA0MzAuMi0zMDAuMyA3LjctMTYuMiA3LjctMzUgMC01MS41ek01MTIgNzY2Yy0xNjEuMyAwLTI3OS40LTgxLjgtMzYyLjctMjU0QzIzMi42IDMzOS44IDM1MC43IDI1OCA1MTIgMjU4YzE2MS4zIDAgMjc5LjQgODEuOCAzNjIuNyAyNTRDNzkxLjUgNjg0LjIgNjczLjQgNzY2IDUxMiA3NjZ6bS00LTQzMGMtOTcuMiAwLTE3NiA3OC44LTE3NiAxNzZzNzguOCAxNzYgMTc2IDE3NiAxNzYtNzguOCAxNzYtMTc2LTc4LjgtMTc2LTE3Ni0xNzZ6bTAgMjg4Yy02MS45IDAtMTEyLTUwLjEtMTEyLTExMnM1MC4xLTExMiAxMTItMTEyIDExMiA1MC4xIDExMiAxMTItNTAuMSAxMTItMTEyIDExMnoifX1dfSxuYW1lOiJleWUiLHRoZW1lOiJvdXRsaW5lZCJ9LGk9dCxzPWUoMTM0MDEpLGE9ZnVuY3Rpb24oZCxtKXtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KHMuWiwoMCxyLlopKHt9LGQse3JlZjptLGljb246aX0pKX0sdT1uLmZvcndhcmRSZWYoYSksYz11fSwyNjkxMTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGN9fSk7dmFyIHI9ZSg4NzQ2Miksbj1lKDY3Mjk0KSx0PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NTQuNiAyODguNkw2MzkuNCA3My40Yy02LTYtMTQuMS05LjQtMjIuNi05LjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMxMS4zYzAtOC41LTMuNC0xNi43LTkuNC0yMi43ek03OTAuMiAzMjZINjAyVjEzNy44TDc5MC4yIDMyNnptMS44IDU2MkgyMzJWMTM2aDMwMnYyMTZhNDIgNDIgMCAwMDQyIDQyaDIxNnY0OTR6In19XX0sbmFtZToiZmlsZSIsdGhlbWU6Im91dGxpbmVkIn0saT10LHM9ZSgxMzQwMSksYT1mdW5jdGlvbihkLG0pe3JldHVybiBuLmNyZWF0ZUVsZW1lbnQocy5aLCgwLHIuWikoe30sZCx7cmVmOm0saWNvbjppfSkpfSx1PW4uZm9yd2FyZFJlZihhKSxjPXV9LDU4ODk1OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1o6ZnVuY3Rpb24oKXtyZXR1cm4gY319KTt2YXIgcj1lKDg3NDYyKSxuPWUoNjcyOTQpLHQ9e2ljb246ZnVuY3Rpb24oZCxtKXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTM0IDM1MlYxMzZIMjMydjc1Mmg1NjBWMzk0SDU3NmE0MiA0MiAwIDAxLTQyLTQyeiIsZmlsbDptfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NTQuNiAyODguNkw2MzkuNCA3My40Yy02LTYtMTQuMS05LjQtMjIuNi05LjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMxMS4zYzAtOC41LTMuNC0xNi43LTkuNC0yMi43ek02MDIgMTM3LjhMNzkwLjIgMzI2SDYwMlYxMzcuOHpNNzkyIDg4OEgyMzJWMTM2aDMwMnYyMTZhNDIgNDIgMCAwMDQyIDQyaDIxNnY0OTR6IixmaWxsOmR9fV19fSxuYW1lOiJmaWxlIix0aGVtZToidHdvdG9uZSJ9LGk9dCxzPWUoMTM0MDEpLGE9ZnVuY3Rpb24oZCxtKXtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KHMuWiwoMCxyLlopKHt9LGQse3JlZjptLGljb246aX0pKX0sdT1uLmZvcndhcmRSZWYoYSksYz11fSw5OTk4MjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGN9fSk7dmFyIHI9ZSg4NzQ2Miksbj1lKDY3Mjk0KSx0PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0zNDkgODM4YzAgMTcuNyAxNC4yIDMyIDMxLjggMzJoMjYyLjRjMTcuNiAwIDMxLjgtMTQuMyAzMS44LTMyVjY0MkgzNDl2MTk2em01MzEuMS02ODRIMTQzLjljLTI0LjUgMC0zOS44IDI2LjctMjcuNSA0OGwyMjEuMyAzNzZoMzQ4LjhsMjIxLjMtMzc2YzEyLjEtMjEuMy0zLjItNDgtMjcuNy00OHoifX1dfSxuYW1lOiJmaWx0ZXIiLHRoZW1lOiJmaWxsZWQifSxpPXQscz1lKDEzNDAxKSxhPWZ1bmN0aW9uKGQsbSl7cmV0dXJuIG4uY3JlYXRlRWxlbWVudChzLlosKDAsci5aKSh7fSxkLHtyZWY6bSxpY29uOml9KSl9LHU9bi5mb3J3YXJkUmVmKGEpLGM9dX0sMjYwMjQ6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiBjfX0pO3ZhciByPWUoODc0NjIpLG49ZSg2NzI5NCksdD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwLjEgMTU0SDE0My45Yy0yNC41IDAtMzkuOCAyNi43LTI3LjUgNDhMMzQ5IDU5Ny40VjgzOGMwIDE3LjcgMTQuMiAzMiAzMS44IDMyaDI2Mi40YzE3LjYgMCAzMS44LTE0LjMgMzEuOC0zMlY1OTcuNEw5MDcuNyAyMDJjMTIuMi0yMS4zLTMuMS00OC0yNy42LTQ4ek02MDMuNCA3OThINDIwLjZWNjQyaDE4Mi45djE1NnptOS42LTIzNi42bC05LjUgMTYuNmgtMTgzbC05LjUtMTYuNkwyMTIuNyAyMjZoNTk4LjZMNjEzIDU2MS40eiJ9fV19LG5hbWU6ImZpbHRlciIsdGhlbWU6Im91dGxpbmVkIn0saT10LHM9ZSgxMzQwMSksYT1mdW5jdGlvbihkLG0pe3JldHVybiBuLmNyZWF0ZUVsZW1lbnQocy5aLCgwLHIuWikoe30sZCx7cmVmOm0saWNvbjppfSkpfSx1PW4uZm9yd2FyZFJlZihhKSxjPXV9LDk1NTkxOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1o6ZnVuY3Rpb24oKXtyZXR1cm4gY319KTt2YXIgcj1lKDg3NDYyKSxuPWUoNjcyOTQpLHQ9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkyOCA0NDRIODIwVjMzMC40YzAtMTcuNy0xNC4zLTMyLTMyLTMySDQ3M0wzNTUuNyAxODYuMmE4LjE1IDguMTUgMCAwMC01LjUtMi4ySDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY1OTJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjk4YzEzIDAgMjQuOC03LjkgMjkuNy0yMGwxMzQtMzMyYzEuNS0zLjggMi4zLTcuOSAyLjMtMTIgMC0xNy43LTE0LjMtMzItMzItMzJ6TTEzNiAyNTZoMTg4LjVsMTE5LjYgMTE0LjRINzQ4VjQ0NEgyMzhjLTEzIDAtMjQuOCA3LjktMjkuNyAyMEwxMzYgNjQzLjJWMjU2em02MzUuMyA1MTJIMTU5bDEwMy4zLTI1Nmg2MTIuNEw3NzEuMyA3Njh6In19XX0sbmFtZToiZm9sZGVyLW9wZW4iLHRoZW1lOiJvdXRsaW5lZCJ9LGk9dCxzPWUoMTM0MDEpLGE9ZnVuY3Rpb24oZCxtKXtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KHMuWiwoMCxyLlopKHt9LGQse3JlZjptLGljb246aX0pKX0sdT1uLmZvcndhcmRSZWYoYSksYz11fSwzMjMxOTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGN9fSk7dmFyIHI9ZSg4NzQ2Miksbj1lKDY3Mjk0KSx0PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMjk4LjRINTIxTDQwMy43IDE4Ni4yYTguMTUgOC4xNSAwIDAwLTUuNS0yLjJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY1OTJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMzMC40YzAtMTcuNy0xNC4zLTMyLTMyLTMyek04NDAgNzY4SDE4NFYyNTZoMTg4LjVsMTE5LjYgMTE0LjRIODQwVjc2OHoifX1dfSxuYW1lOiJmb2xkZXIiLHRoZW1lOiJvdXRsaW5lZCJ9LGk9dCxzPWUoMTM0MDEpLGE9ZnVuY3Rpb24oZCxtKXtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KHMuWiwoMCxyLlopKHt9LGQse3JlZjptLGljb246aX0pKX0sdT1uLmZvcndhcmRSZWYoYSksYz11fSwxMTcxMzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGN9fSk7dmFyIHI9ZSg4NzQ2Miksbj1lKDY3Mjk0KSx0PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0zOTEgMjQwLjljLS44LTYuNi04LjktOS40LTEzLjYtNC43bC00My43IDQzLjdMMjAwIDE0Ni4zYTguMDMgOC4wMyAwIDAwLTExLjMgMGwtNDIuNCA0Mi4zYTguMDMgOC4wMyAwIDAwMCAxMS4zTDI4MCAzMzMuNmwtNDMuOSA0My45YTguMDEgOC4wMSAwIDAwNC43IDEzLjZMNDAxIDQxMGM1LjEuNiA5LjUtMy43IDguOS04LjlMMzkxIDI0MC45em0xMC4xIDM3My4yTDI0MC44IDYzM2MtNi42LjgtOS40IDguOS00LjcgMTMuNmw0My45IDQzLjlMMTQ2LjMgODI0YTguMDMgOC4wMyAwIDAwMCAxMS4zbDQyLjQgNDIuM2MzLjEgMy4xIDguMiAzLjEgMTEuMyAwTDMzMy43IDc0NGw0My43IDQzLjdBOC4wMSA4LjAxIDAgMDAzOTEgNzgzbDE4LjktMTYwLjFjLjYtNS4xLTMuNy05LjQtOC44LTguOHptMjIxLjgtMjA0LjJMNzgzLjIgMzkxYzYuNi0uOCA5LjQtOC45IDQuNy0xMy42TDc0NCAzMzMuNiA4NzcuNyAyMDBjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM2wtNDIuNC00Mi4zYTguMDMgOC4wMyAwIDAwLTExLjMgMEw2OTAuMyAyNzkuOWwtNDMuNy00My43YTguMDEgOC4wMSAwIDAwLTEzLjYgNC43TDYxNC4xIDQwMWMtLjYgNS4yIDMuNyA5LjUgOC44IDguOXpNNzQ0IDY5MC40bDQzLjktNDMuOWE4LjAxIDguMDEgMCAwMC00LjctMTMuNkw2MjMgNjE0Yy01LjEtLjYtOS41IDMuNy04LjkgOC45TDYzMyA3ODMuMWMuOCA2LjYgOC45IDkuNCAxMy42IDQuN2w0My43LTQzLjdMODI0IDg3Ny43YzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBsNDIuNC00Mi4zYzMuMS0zLjEgMy4xLTguMiAwLTExLjNMNzQ0IDY5MC40eiJ9fV19LG5hbWU6ImZ1bGxzY3JlZW4tZXhpdCIsdGhlbWU6Im91dGxpbmVkIn0saT10LHM9ZSgxMzQwMSksYT1mdW5jdGlvbihkLG0pe3JldHVybiBuLmNyZWF0ZUVsZW1lbnQocy5aLCgwLHIuWikoe30sZCx7cmVmOm0saWNvbjppfSkpfSx1PW4uZm9yd2FyZFJlZihhKSxjPXV9LDI3NzMyOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1o6ZnVuY3Rpb24oKXtyZXR1cm4gY319KTt2YXIgcj1lKDg3NDYyKSxuPWUoNjcyOTQpLHQ9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTI5MCAyMzYuNGw0My45LTQzLjlhOC4wMSA4LjAxIDAgMDAtNC43LTEzLjZMMTY5IDE2MGMtNS4xLS42LTkuNSAzLjctOC45IDguOUwxNzkgMzI5LjFjLjggNi42IDguOSA5LjQgMTMuNiA0LjdsNDMuNy00My43TDM3MCA0MjMuN2MzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDQyLjQtNDIuM2MzLjEtMy4xIDMuMS04LjIgMC0xMS4zTDI5MCAyMzYuNHptMzUyLjcgMTg3LjNjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGwxMzMuNy0xMzMuNiA0My43IDQzLjdhOC4wMSA4LjAxIDAgMDAxMy42LTQuN0w4NjMuOSAxNjljLjYtNS4xLTMuNy05LjUtOC45LTguOUw2OTQuOCAxNzljLTYuNi44LTkuNCA4LjktNC43IDEzLjZsNDMuOSA0My45TDYwMC4zIDM3MGE4LjAzIDguMDMgMCAwMDAgMTEuM2w0Mi40IDQyLjR6TTg0NSA2OTQuOWMtLjgtNi42LTguOS05LjQtMTMuNi00LjdsLTQzLjcgNDMuN0w2NTQgNjAwLjNhOC4wMyA4LjAzIDAgMDAtMTEuMyAwbC00Mi40IDQyLjNhOC4wMyA4LjAzIDAgMDAwIDExLjNMNzM0IDc4Ny42bC00My45IDQzLjlhOC4wMSA4LjAxIDAgMDA0LjcgMTMuNkw4NTUgODY0YzUuMS42IDkuNS0zLjcgOC45LTguOUw4NDUgNjk0Ljl6bS00NjMuNy05NC42YTguMDMgOC4wMyAwIDAwLTExLjMgMEwyMzYuMyA3MzMuOWwtNDMuNy00My43YTguMDEgOC4wMSAwIDAwLTEzLjYgNC43TDE2MC4xIDg1NWMtLjYgNS4xIDMuNyA5LjUgOC45IDguOUwzMjkuMiA4NDVjNi42LS44IDkuNC04LjkgNC43LTEzLjZMMjkwIDc4Ny42IDQyMy43IDY1NGMzLjEtMy4xIDMuMS04LjIgMC0xMS4zbC00Mi40LTQyLjR6In19XX0sbmFtZToiZnVsbHNjcmVlbiIsdGhlbWU6Im91dGxpbmVkIn0saT10LHM9ZSgxMzQwMSksYT1mdW5jdGlvbihkLG0pe3JldHVybiBuLmNyZWF0ZUVsZW1lbnQocy5aLCgwLHIuWikoe30sZCx7cmVmOm0saWNvbjppfSkpfSx1PW4uZm9yd2FyZFJlZihhKSxjPXV9LDEyMTA6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiBjfX0pO3ZhciByPWUoODc0NjIpLG49ZSg2NzI5NCksdD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTExLjYgNzYuM0MyNjQuMyA3Ni4yIDY0IDI3Ni40IDY0IDUyMy41IDY0IDcxOC45IDE4OS4zIDg4NSAzNjMuOCA5NDZjMjMuNSA1LjkgMTkuOS0xMC44IDE5LjktMjIuMnYtNzcuNWMtMTM1LjcgMTUuOS0xNDEuMi03My45LTE1MC4zLTg4LjlDMjE1IDcyNiAxNzEuNSA3MTggMTg0LjUgNzAzYzMwLjktMTUuOSA2Mi40IDQgOTguOSA1Ny45IDI2LjQgMzkuMSA3Ny45IDMyLjUgMTA0IDI2IDUuNy0yMy41IDE3LjktNDQuNSAzNC43LTYwLjgtMTQwLjYtMjUuMi0xOTkuMi0xMTEtMTk5LjItMjEzIDAtNDkuNSAxNi4zLTk1IDQ4LjMtMTMxLjctMjAuNC02MC41IDEuOS0xMTIuMyA0LjktMTIwIDU4LjEtNS4yIDExOC41IDQxLjYgMTIzLjIgNDUuMyAzMy04LjkgNzAuNy0xMy42IDExMi45LTEzLjYgNDIuNCAwIDgwLjIgNC45IDExMy41IDEzLjkgMTEuMy04LjYgNjcuMy00OC44IDEyMS4zLTQzLjkgMi45IDcuNyAyNC43IDU4LjMgNS41IDExOCAzMi40IDM2LjggNDguOSA4Mi43IDQ4LjkgMTMyLjMgMCAxMDIuMi01OSAxODguMS0yMDAgMjEyLjlhMTI3LjUgMTI3LjUgMCAwMTM4LjEgOTF2MTEyLjVjLjggOSAwIDE3LjkgMTUgMTcuOSAxNzcuMS01OS43IDMwNC42LTIyNyAzMDQuNi00MjQuMSAwLTI0Ny4yLTIwMC40LTQ0Ny4zLTQ0Ny41LTQ0Ny4zeiJ9fV19LG5hbWU6ImdpdGh1YiIsdGhlbWU6Im91dGxpbmVkIn0saT10LHM9ZSgxMzQwMSksYT1mdW5jdGlvbihkLG0pe3JldHVybiBuLmNyZWF0ZUVsZW1lbnQocy5aLCgwLHIuWikoe30sZCx7cmVmOm0saWNvbjppfSkpfSx1PW4uZm9yd2FyZFJlZihhKSxjPXV9LDM0NDQ3OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1o6ZnVuY3Rpb24oKXtyZXR1cm4gY319KTt2YXIgcj1lKDg3NDYyKSxuPWUoNjcyOTQpLHQ9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkyMyAyODMuNmEyNjAuMDQgMjYwLjA0IDAgMDAtNTYuOS04Mi44IDI2NC40IDI2NC40IDAgMDAtODQtNTUuNUEyNjUuMzQgMjY1LjM0IDAgMDA2NzkuNyAxMjVjLTQ5LjMgMC05Ny40IDEzLjUtMTM5LjIgMzktMTAgNi4xLTE5LjUgMTIuOC0yOC41IDIwLjEtOS03LjMtMTguNS0xNC0yOC41LTIwLjEtNDEuOC0yNS41LTg5LjktMzktMTM5LjItMzktMzUuNSAwLTY5LjkgNi44LTEwMi40IDIwLjMtMzEuNCAxMy01OS43IDMxLjctODQgNTUuNWEyNTguNDQgMjU4LjQ0IDAgMDAtNTYuOSA4Mi44Yy0xMy45IDMyLjMtMjEgNjYuNi0yMSAxMDEuOSAwIDMzLjMgNi44IDY4IDIwLjMgMTAzLjMgMTEuMyAyOS41IDI3LjUgNjAuMSA0OC4yIDkxIDMyLjggNDguOSA3Ny45IDk5LjkgMTMzLjkgMTUxLjYgOTIuOCA4NS43IDE4NC43IDE0NC45IDE4OC42IDE0Ny4zbDIzLjcgMTUuMmMxMC41IDYuNyAyNCA2LjcgMzQuNSAwbDIzLjctMTUuMmMzLjktMi41IDk1LjctNjEuNiAxODguNi0xNDcuMyA1Ni01MS43IDEwMS4xLTEwMi43IDEzMy45LTE1MS42IDIwLjctMzAuOSAzNy02MS41IDQ4LjItOTEgMTMuNS0zNS4zIDIwLjMtNzAgMjAuMy0xMDMuMy4xLTM1LjMtNy02OS42LTIwLjktMTAxLjl6In19XX0sbmFtZToiaGVhcnQiLHRoZW1lOiJmaWxsZWQifSxpPXQscz1lKDEzNDAxKSxhPWZ1bmN0aW9uKGQsbSl7cmV0dXJuIG4uY3JlYXRlRWxlbWVudChzLlosKDAsci5aKSh7fSxkLHtyZWY6bSxpY29uOml9KSl9LHU9bi5mb3J3YXJkUmVmKGEpLGM9dX0sNDk2NDc6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiBjfX0pO3ZhciByPWUoODc0NjIpLG49ZSg2NzI5NCksdD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTIzIDI4My42YTI2MC4wNCAyNjAuMDQgMCAwMC01Ni45LTgyLjggMjY0LjQgMjY0LjQgMCAwMC04NC01NS41QTI2NS4zNCAyNjUuMzQgMCAwMDY3OS43IDEyNWMtNDkuMyAwLTk3LjQgMTMuNS0xMzkuMiAzOS0xMCA2LjEtMTkuNSAxMi44LTI4LjUgMjAuMS05LTcuMy0xOC41LTE0LTI4LjUtMjAuMS00MS44LTI1LjUtODkuOS0zOS0xMzkuMi0zOS0zNS41IDAtNjkuOSA2LjgtMTAyLjQgMjAuMy0zMS40IDEzLTU5LjcgMzEuNy04NCA1NS41YTI1OC40NCAyNTguNDQgMCAwMC01Ni45IDgyLjhjLTEzLjkgMzIuMy0yMSA2Ni42LTIxIDEwMS45IDAgMzMuMyA2LjggNjggMjAuMyAxMDMuMyAxMS4zIDI5LjUgMjcuNSA2MC4xIDQ4LjIgOTEgMzIuOCA0OC45IDc3LjkgOTkuOSAxMzMuOSAxNTEuNiA5Mi44IDg1LjcgMTg0LjcgMTQ0LjkgMTg4LjYgMTQ3LjNsMjMuNyAxNS4yYzEwLjUgNi43IDI0IDYuNyAzNC41IDBsMjMuNy0xNS4yYzMuOS0yLjUgOTUuNy02MS42IDE4OC42LTE0Ny4zIDU2LTUxLjcgMTAxLjEtMTAyLjcgMTMzLjktMTUxLjYgMjAuNy0zMC45IDM3LTYxLjUgNDguMi05MSAxMy41LTM1LjMgMjAuMy03MCAyMC4zLTEwMy4zLjEtMzUuMy03LTY5LjYtMjAuOS0xMDEuOXpNNTEyIDgxNC44UzE1NiA1ODYuNyAxNTYgMzg1LjVDMTU2IDI4My42IDI0MC4zIDIwMSAzNDQuMyAyMDFjNzMuMSAwIDEzNi41IDQwLjggMTY3LjcgMTAwLjRDNTQzLjIgMjQxLjggNjA2LjYgMjAxIDY3OS43IDIwMWMxMDQgMCAxODguMyA4Mi42IDE4OC4zIDE4NC41IDAgMjAxLjItMzU2IDQyOS4zLTM1NiA0MjkuM3oifX1dfSxuYW1lOiJoZWFydCIsdGhlbWU6Im91dGxpbmVkIn0saT10LHM9ZSgxMzQwMSksYT1mdW5jdGlvbihkLG0pe3JldHVybiBuLmNyZWF0ZUVsZW1lbnQocy5aLCgwLHIuWikoe30sZCx7cmVmOm0saWNvbjppfSkpfSx1PW4uZm9yd2FyZFJlZihhKSxjPXV9LDI5NzUxOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1o6ZnVuY3Rpb24oKXtyZXR1cm4gY319KTt2YXIgcj1lKDg3NDYyKSxuPWUoNjcyOTQpLHQ9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTMwMCAyNzYuNWE1NiA1NiAwIDEwNTYtOTcgNTYgNTYgMCAwMC01NiA5N3ptMCAyODRhNTYgNTYgMCAxMDU2LTk3IDU2IDU2IDAgMDAtNTYgOTd6TTY0MCAyMjhhNTYgNTYgMCAxMDExMiAwIDU2IDU2IDAgMDAtMTEyIDB6bTAgMjg0YTU2IDU2IDAgMTAxMTIgMCA1NiA1NiAwIDAwLTExMiAwek0zMDAgODQ0LjVhNTYgNTYgMCAxMDU2LTk3IDU2IDU2IDAgMDAtNTYgOTd6TTY0MCA3OTZhNTYgNTYgMCAxMDExMiAwIDU2IDU2IDAgMDAtMTEyIDB6In19XX0sbmFtZToiaG9sZGVyIix0aGVtZToib3V0bGluZWQifSxpPXQscz1lKDEzNDAxKSxhPWZ1bmN0aW9uKGQsbSl7cmV0dXJuIG4uY3JlYXRlRWxlbWVudChzLlosKDAsci5aKSh7fSxkLHtyZWY6bSxpY29uOml9KSl9LHU9bi5mb3J3YXJkUmVmKGEpLGM9dX0sNjQwODI6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiBjfX0pO3ZhciByPWUoODc0NjIpLG49ZSg2NzI5NCksdD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiIwIDAgMTAyNCAxMDI0Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODg1LjIgNDQ2LjNsLS4yLS44LTExMi4yLTI4NS4xYy01LTE2LjEtMTkuOS0yNy4yLTM2LjgtMjcuMkgyODEuMmMtMTcgMC0zMi4xIDExLjMtMzYuOSAyNy42TDEzOS40IDQ0M2wtLjMuNy0uMi44Yy0xLjMgNC45LTEuNyA5LjktMSAxNC44LS4xIDEuNi0uMiAzLjItLjIgNC44VjgzMGE2MC45IDYwLjkgMCAwMDYwLjggNjAuOGg2MjcuMmMzMy41IDAgNjAuOC0yNy4zIDYwLjktNjAuOFY0NjQuMWMwLTEuMyAwLTIuNi0uMS0zLjcuNC00LjkgMC05LjYtMS4zLTE0LjF6bS0yOTUuOC00M2wtLjMgMTUuN2MtLjggNDQuOS0zMS44IDc1LjEtNzcuMSA3NS4xLTIyLjEgMC00MS4xLTcuMS01NC44LTIwLjZTNDM2IDQ0MS4yIDQzNS42IDQxOWwtLjMtMTUuN0gyMjkuNUwzMDkgMjEwaDM5OS4ybDgxLjcgMTkzLjNINTg5LjR6bS0zNzUgNzYuOGgxNTcuM2MyNC4zIDU3LjEgNzYgOTAuOCAxNDAuNCA5MC44IDMzLjcgMCA2NS05LjQgOTAuMy0yNy4yIDIyLjItMTUuNiAzOS41LTM3LjQgNTAuNy02My42aDE1Ni41VjgxNEgyMTQuNFY0ODAuMXoifX1dfSxuYW1lOiJpbmJveCIsdGhlbWU6Im91dGxpbmVkIn0saT10LHM9ZSgxMzQwMSksYT1mdW5jdGlvbihkLG0pe3JldHVybiBuLmNyZWF0ZUVsZW1lbnQocy5aLCgwLHIuWikoe30sZCx7cmVmOm0saWNvbjppfSkpfSx1PW4uZm9yd2FyZFJlZihhKSxjPXV9LDc4ODYwOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1o6ZnVuY3Rpb24oKXtyZXR1cm4gY319KTt2YXIgcj1lKDg3NDYyKSxuPWUoNjcyOTQpLHQ9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0zMiA2NjRjMCA0LjQtMy42IDgtOCA4aC00OGMtNC40IDAtOC0zLjYtOC04VjQ1NmMwLTQuNCAzLjYtOCA4LThoNDhjNC40IDAgOCAzLjYgOCA4djI3MnptLTMyLTM0NGE0OC4wMSA0OC4wMSAwIDAxMC05NiA0OC4wMSA0OC4wMSAwIDAxMCA5NnoifX1dfSxuYW1lOiJpbmZvLWNpcmNsZSIsdGhlbWU6ImZpbGxlZCJ9LGk9dCxzPWUoMTM0MDEpLGE9ZnVuY3Rpb24oZCxtKXtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KHMuWiwoMCxyLlopKHt9LGQse3JlZjptLGljb246aX0pKX0sdT1uLmZvcndhcmRSZWYoYSksYz11fSw0NTYwNTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGN9fSk7dmFyIHI9ZSg4NzQ2Miksbj1lKDY3Mjk0KSx0PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6In19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNDY0IDMzNmE0OCA0OCAwIDEwOTYgMCA0OCA0OCAwIDEwLTk2IDB6bTcyIDExMmgtNDhjLTQuNCAwLTggMy42LTggOHYyNzJjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOFY0NTZjMC00LjQtMy42LTgtOC04eiJ9fV19LG5hbWU6ImluZm8tY2lyY2xlIix0aGVtZToib3V0bGluZWQifSxpPXQscz1lKDEzNDAxKSxhPWZ1bmN0aW9uKGQsbSl7cmV0dXJuIG4uY3JlYXRlRWxlbWVudChzLlosKDAsci5aKSh7fSxkLHtyZWY6bSxpY29uOml9KSl9LHU9bi5mb3J3YXJkUmVmKGEpLGM9dX0sNjE3MTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGN9fSk7dmFyIHI9ZSg4NzQ2Miksbj1lKDY3Mjk0KSx0PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik03MjQgMjE4LjNWMTQxYzAtNi43LTcuNy0xMC40LTEyLjktNi4zTDI2MC4zIDQ4Ni44YTMxLjg2IDMxLjg2IDAgMDAwIDUwLjNsNDUwLjggMzUyLjFjNS4zIDQuMSAxMi45LjQgMTIuOS02LjN2LTc3LjNjMC00LjktMi4zLTkuNi02LjEtMTIuNmwtMzYwLTI4MSAzNjAtMjgxLjFjMy44LTMgNi4xLTcuNyA2LjEtMTIuNnoifX1dfSxuYW1lOiJsZWZ0Iix0aGVtZToib3V0bGluZWQifSxpPXQscz1lKDEzNDAxKSxhPWZ1bmN0aW9uKGQsbSl7cmV0dXJuIG4uY3JlYXRlRWxlbWVudChzLlosKDAsci5aKSh7fSxkLHtyZWY6bSxpY29uOml9KSl9LHU9bi5mb3J3YXJkUmVmKGEpLGM9dX0sNjU0Mjk6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiBjfX0pO3ZhciByPWUoODc0NjIpLG49ZSg2NzI5NCksdD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODg1LjkgNTMzLjdjMTYuOC0yMi4yIDI2LjEtNDkuNCAyNi4xLTc3LjcgMC00NC45LTI1LjEtODcuNC02NS41LTExMS4xYTY3LjY3IDY3LjY3IDAgMDAtMzQuMy05LjNINTcyLjRsNi0xMjIuOWMxLjQtMjkuNy05LjEtNTcuOS0yOS41LTc5LjRBMTA2LjYyIDEwNi42MiAwIDAwNDcxIDk5LjljLTUyIDAtOTggMzUtMTExLjggODUuMWwtODUuOSAzMTFIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYzNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjAxLjNjOS4yIDAgMTguMi0xLjggMjYuNS01LjQgNDcuNi0yMC4zIDc4LjMtNjYuOCA3OC4zLTExOC40IDAtMTIuNi0xLjgtMjUtNS40LTM3IDE2LjgtMjIuMiAyNi4xLTQ5LjQgMjYuMS03Ny43IDAtMTIuNi0xLjgtMjUtNS40LTM3IDE2LjgtMjIuMiAyNi4xLTQ5LjQgMjYuMS03Ny43LS4yLTEyLjYtMi0yNS4xLTUuNi0zNy4xek0xODQgODUyVjU2OGg4MXYyODRoLTgxem02MzYuNC0zNTNsLTIxLjkgMTkgMTMuOSAyNS40YTU2LjIgNTYuMiAwIDAxNi45IDI3LjNjMCAxNi41LTcuMiAzMi4yLTE5LjYgNDNsLTIxLjkgMTkgMTMuOSAyNS40YTU2LjIgNTYuMiAwIDAxNi45IDI3LjNjMCAxNi41LTcuMiAzMi4yLTE5LjYgNDNsLTIxLjkgMTkgMTMuOSAyNS40YTU2LjIgNTYuMiAwIDAxNi45IDI3LjNjMCAyMi40LTEzLjIgNDIuNi0zMy42IDUxLjhIMzI5VjU2NC44bDk5LjUtMzYwLjVhNDQuMSA0NC4xIDAgMDE0Mi4yLTMyLjNjNy42IDAgMTUuMSAyLjIgMjEuMSA2LjcgOS45IDcuNCAxNS4yIDE4LjYgMTQuNiAzMC41bC05LjYgMTk4LjRoMzE0LjRDODI5IDQxOC41IDg0MCA0MzYuOSA4NDAgNDU2YzAgMTYuNS03LjIgMzIuMS0xOS42IDQzeiJ9fV19LG5hbWU6Imxpa2UiLHRoZW1lOiJvdXRsaW5lZCJ9LGk9dCxzPWUoMTM0MDEpLGE9ZnVuY3Rpb24oZCxtKXtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KHMuWiwoMCxyLlopKHt9LGQse3JlZjptLGljb246aX0pKX0sdT1uLmZvcndhcmRSZWYoYSksYz11fSwyOTE1ODpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGN9fSk7dmFyIHI9ZSg4NzQ2Miksbj1lKDY3Mjk0KSx0PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01NzQgNjY1LjRhOC4wMyA4LjAzIDAgMDAtMTEuMyAwTDQ0Ni41IDc4MS42Yy01My44IDUzLjgtMTQ0LjYgNTkuNS0yMDQgMC01OS41LTU5LjUtNTMuOC0xNTAuMiAwLTIwNGwxMTYuMi0xMTYuMmMzLjEtMy4xIDMuMS04LjIgMC0xMS4zbC0zOS44LTM5LjhhOC4wMyA4LjAzIDAgMDAtMTEuMyAwTDE5MS40IDUyNi41Yy04NC42IDg0LjYtODQuNiAyMjEuNSAwIDMwNnMyMjEuNSA4NC42IDMwNiAwbDExNi4yLTExNi4yYzMuMS0zLjEgMy4xLTguMiAwLTExLjNMNTc0IDY2NS40em0yNTguNi00NzRjLTg0LjYtODQuNi0yMjEuNS04NC42LTMwNiAwTDQxMC4zIDMwNy42YTguMDMgOC4wMyAwIDAwMCAxMS4zbDM5LjcgMzkuN2MzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDExNi4yLTExNi4yYzUzLjgtNTMuOCAxNDQuNi01OS41IDIwNCAwIDU5LjUgNTkuNSA1My44IDE1MC4yIDAgMjA0TDY2NS4zIDU2Mi42YTguMDMgOC4wMyAwIDAwMCAxMS4zbDM5LjggMzkuOGMzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDExNi4yLTExNi4yYzg0LjUtODQuNiA4NC41LTIyMS41IDAtMzA2LjF6TTYxMC4xIDM3Mi4zYTguMDMgOC4wMyAwIDAwLTExLjMgMEwzNzIuMyA1OTguN2E4LjAzIDguMDMgMCAwMDAgMTEuM2wzOS42IDM5LjZjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGwyMjYuNC0yMjYuNGMzLjEtMy4xIDMuMS04LjIgMC0xMS4zbC0zOS41LTM5LjZ6In19XX0sbmFtZToibGluayIsdGhlbWU6Im91dGxpbmVkIn0saT10LHM9ZSgxMzQwMSksYT1mdW5jdGlvbihkLG0pe3JldHVybiBuLmNyZWF0ZUVsZW1lbnQocy5aLCgwLHIuWikoe30sZCx7cmVmOm0saWNvbjppfSkpfSx1PW4uZm9yd2FyZFJlZihhKSxjPXV9LDUwODg4OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1o6ZnVuY3Rpb24oKXtyZXR1cm4gY319KTt2YXIgcj1lKDg3NDYyKSxuPWUoNjcyOTQpLHQ9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiMCAwIDEwMjQgMTAyNCIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTk4OCA1NDhjLTE5LjkgMC0zNi0xNi4xLTM2LTM2IDAtNTkuNC0xMS42LTExNy0zNC42LTE3MS4zYTQ0MC40NSA0NDAuNDUgMCAwMC05NC4zLTEzOS45IDQzNy43MSA0MzcuNzEgMCAwMC0xMzkuOS05NC4zQzYyOSA4My42IDU3MS40IDcyIDUxMiA3MmMtMTkuOSAwLTM2LTE2LjEtMzYtMzZzMTYuMS0zNiAzNi0zNmM2OS4xIDAgMTM2LjIgMTMuNSAxOTkuMyA0MC4zQzc3Mi4zIDY2IDgyNyAxMDMgODc0IDE1MGM0NyA0NyA4My45IDEwMS44IDEwOS43IDE2Mi43IDI2LjcgNjMuMSA0MC4yIDEzMC4yIDQwLjIgMTk5LjMuMSAxOS45LTE2IDM2LTM1LjkgMzZ6In19XX0sbmFtZToibG9hZGluZyIsdGhlbWU6Im91dGxpbmVkIn0saT10LHM9ZSgxMzQwMSksYT1mdW5jdGlvbihkLG0pe3JldHVybiBuLmNyZWF0ZUVsZW1lbnQocy5aLCgwLHIuWikoe30sZCx7cmVmOm0saWNvbjppfSkpfSx1PW4uZm9yd2FyZFJlZihhKSxjPXV9LDk0MTQ5OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1o6ZnVuY3Rpb24oKXtyZXR1cm4gY319KTt2YXIgcj1lKDg3NDYyKSxuPWUoNjcyOTQpLHQ9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTgzMiA0NjRoLTY4VjI0MGMwLTcwLjctNTcuMy0xMjgtMTI4LTEyOEgzODhjLTcwLjcgMC0xMjggNTcuMy0xMjggMTI4djIyNGgtNjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjM4NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWNDk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyek0zMzIgMjQwYzAtMzAuOSAyNS4xLTU2IDU2LTU2aDI0OGMzMC45IDAgNTYgMjUuMSA1NiA1NnYyMjRIMzMyVjI0MHptNDYwIDYwMEgyMzJWNTM2aDU2MHYzMDR6TTQ4NCA3MDF2NTNjMCA0LjQgMy42IDggOCA4aDQwYzQuNCAwIDgtMy42IDgtOHYtNTNhNDguMDEgNDguMDEgMCAxMC01NiAweiJ9fV19LG5hbWU6ImxvY2siLHRoZW1lOiJvdXRsaW5lZCJ9LGk9dCxzPWUoMTM0MDEpLGE9ZnVuY3Rpb24oZCxtKXtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KHMuWiwoMCxyLlopKHt9LGQse3JlZjptLGljb246aX0pKX0sdT1uLmZvcndhcmRSZWYoYSksYz11fSw3ODgyNDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoODc0NjIpLG49ZSg2NzI5NCksdD1lKDcwMzkxKSxpPWUoMTM0MDEpLHM9ZnVuY3Rpb24oYyxoKXtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KGkuWiwoMCxyLlopKHt9LGMse3JlZjpoLGljb246dC5afSkpfSxhPW4uZm9yd2FyZFJlZihzKTtwLlo9YX0sODg2NDE6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiBjfX0pO3ZhciByPWUoODc0NjIpLG49ZSg2NzI5NCksdD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTI4IDE2MEg5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjQwYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDgzMmMxNy43IDAgMzItMTQuMyAzMi0zMlYxOTJjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCAxMTAuOFY3OTJIMTM2VjI3MC44bC0yNy42LTIxLjUgMzkuMy01MC41IDQyLjggMzMuM2g2NDMuMWw0Mi44LTMzLjMgMzkuMyA1MC41LTI3LjcgMjEuNXpNODMzLjYgMjMyTDUxMiA0ODIgMTkwLjQgMjMybC00Mi44LTMzLjMtMzkuMyA1MC41IDI3LjYgMjEuNSAzNDEuNiAyNjUuNmE1NS45OSA1NS45OSAwIDAwNjguNyAwTDg4OCAyNzAuOGwyNy42LTIxLjUtMzkuMy01MC41LTQyLjcgMzMuMnoifX1dfSxuYW1lOiJtYWlsIix0aGVtZToib3V0bGluZWQifSxpPXQscz1lKDEzNDAxKSxhPWZ1bmN0aW9uKGQsbSl7cmV0dXJuIG4uY3JlYXRlRWxlbWVudChzLlosKDAsci5aKSh7fSxkLHtyZWY6bSxpY29uOml9KSl9LHU9bi5mb3J3YXJkUmVmKGEpLGM9dX0sMjQ5NDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGN9fSk7dmFyIHI9ZSg4NzQ2Miksbj1lKDY3Mjk0KSx0PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NzQgMTIwSDYyMmMtMy4zIDAtNiAyLjctNiA2djU2YzAgMy4zIDIuNyA2IDYgNmgxNjAuNEw1ODMuMSAzODcuM2MtNTAtMzguNS0xMTEtNTkuMy0xNzUuMS01OS4zLTc2LjkgMC0xNDkuMyAzMC0yMDMuNiA4NC40UzEyMCA1MzkuMSAxMjAgNjE2czMwIDE0OS4zIDg0LjQgMjAzLjZDMjU4LjcgODc0IDMzMS4xIDkwNCA0MDggOTA0czE0OS4zLTMwIDIwMy42LTg0LjRDNjY2IDc2NS4zIDY5NiA2OTIuOSA2OTYgNjE2YzAtNjQuMS0yMC44LTEyNC45LTU5LjItMTc0LjlMODM2IDI0MS45VjQwMmMwIDMuMyAyLjcgNiA2IDZoNTZjMy4zIDAgNi0yLjcgNi02VjE1MGMwLTE2LjUtMTMuNS0zMC0zMC0zMHpNNDA4IDgyOGMtMTE2LjkgMC0yMTItOTUuMS0yMTItMjEyczk1LjEtMjEyIDIxMi0yMTIgMjEyIDk1LjEgMjEyIDIxMi05NS4xIDIxMi0yMTIgMjEyeiJ9fV19LG5hbWU6Im1hbiIsdGhlbWU6Im91dGxpbmVkIn0saT10LHM9ZSgxMzQwMSksYT1mdW5jdGlvbihkLG0pe3JldHVybiBuLmNyZWF0ZUVsZW1lbnQocy5aLCgwLHIuWikoe30sZCx7cmVmOm0saWNvbjppfSkpfSx1PW4uZm9yd2FyZFJlZihhKSxjPXV9LDYwNTMyOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1o6ZnVuY3Rpb24oKXtyZXR1cm4gY319KTt2YXIgcj1lKDg3NDYyKSxuPWUoNjcyOTQpLHQ9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkwNCAxNjBIMTIwYy00LjQgMC04IDMuNi04IDh2NjRjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTY0YzAtNC40LTMuNi04LTgtOHptMCA2MjRIMTIwYy00LjQgMC04IDMuNi04IDh2NjRjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTY0YzAtNC40LTMuNi04LTgtOHptMC0zMTJIMTIwYy00LjQgMC04IDMuNi04IDh2NjRjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTY0YzAtNC40LTMuNi04LTgtOHoifX1dfSxuYW1lOiJtZW51Iix0aGVtZToib3V0bGluZWQifSxpPXQscz1lKDEzNDAxKSxhPWZ1bmN0aW9uKGQsbSl7cmV0dXJuIG4uY3JlYXRlRWxlbWVudChzLlosKDAsci5aKSh7fSxkLHtyZWY6bSxpY29uOml9KSl9LHU9bi5mb3J3YXJkUmVmKGEpLGM9dX0sNTI3NDU6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiBjfX0pO3ZhciByPWUoODc0NjIpLG49ZSg2NzI5NCksdD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODcyIDQ3NEgxNTJjLTQuNCAwLTggMy42LTggOHY2MGMwIDQuNCAzLjYgOCA4IDhoNzIwYzQuNCAwIDgtMy42IDgtOHYtNjBjMC00LjQtMy42LTgtOC04eiJ9fV19LG5hbWU6Im1pbnVzIix0aGVtZToib3V0bGluZWQifSxpPXQscz1lKDEzNDAxKSxhPWZ1bmN0aW9uKGQsbSl7cmV0dXJuIG4uY3JlYXRlRWxlbWVudChzLlosKDAsci5aKSh7fSxkLHtyZWY6bSxpY29uOml9KSl9LHU9bi5mb3J3YXJkUmVmKGEpLGM9dX0sMjg2Mzg6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiBjfX0pO3ZhciByPWUoODc0NjIpLG49ZSg2NzI5NCksdD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMzI4IDU0NGgzNjhjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThIMzI4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4eiJ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6In19XX0sbmFtZToibWludXMtc3F1YXJlIix0aGVtZToib3V0bGluZWQifSxpPXQscz1lKDEzNDAxKSxhPWZ1bmN0aW9uKGQsbSl7cmV0dXJuIG4uY3JlYXRlRWxlbWVudChzLlosKDAsci5aKSh7fSxkLHtyZWY6bSxpY29uOml9KSl9LHU9bi5mb3J3YXJkUmVmKGEpLGM9dX0sMjQ0NTQ6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiBjfX0pO3ZhciByPWUoODc0NjIpLG49ZSg2NzI5NCksdD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNzQ0IDYySDI4MGMtMzUuMyAwLTY0IDI4LjctNjQgNjR2NzY4YzAgMzUuMyAyOC43IDY0IDY0IDY0aDQ2NGMzNS4zIDAgNjQtMjguNyA2NC02NFYxMjZjMC0zNS4zLTI4LjctNjQtNjQtNjR6bS04IDgyNEgyODhWMTM0aDQ0OHY3NTJ6TTQ3MiA3ODRhNDAgNDAgMCAxMDgwIDAgNDAgNDAgMCAxMC04MCAweiJ9fV19LG5hbWU6Im1vYmlsZSIsdGhlbWU6Im91dGxpbmVkIn0saT10LHM9ZSgxMzQwMSksYT1mdW5jdGlvbihkLG0pe3JldHVybiBuLmNyZWF0ZUVsZW1lbnQocy5aLCgwLHIuWikoe30sZCx7cmVmOm0saWNvbjppfSkpfSx1PW4uZm9yd2FyZFJlZihhKSxjPXV9LDU2MDM6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiBjfX0pO3ZhciByPWUoODc0NjIpLG49ZSg2NzI5NCksdD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDExMmMtMy44IDAtNy43LjctMTEuNiAyLjNMMjkyIDM0NS45SDEyOGMtOC44IDAtMTYgNy40LTE2IDE2LjZ2Mjk5YzAgOS4yIDcuMiAxNi42IDE2IDE2LjZoMTAxLjdjLTMuNyAxMS42LTUuNyAyMy45LTUuNyAzNi40IDAgNjUuOSA1My44IDExOS41IDEyMCAxMTkuNSA1NS40IDAgMTAyLjEtMzcuNiAxMTUuOS04OC40bDQwOC42IDE2NC4yYzMuOSAxLjUgNy44IDIuMyAxMS42IDIuMyAxNi45IDAgMzItMTQuMiAzMi0zMy4yVjE0NS4yQzkxMiAxMjYuMiA4OTcgMTEyIDg4MCAxMTJ6TTM0NCA3NjIuM2MtMjYuNSAwLTQ4LTIxLjQtNDgtNDcuOCAwLTExLjIgMy45LTIxLjkgMTEtMzAuNGw4NC45IDM0LjFjLTIgMjQuNi0yMi43IDQ0LjEtNDcuOSA0NC4xem00OTYgNTguNEwzMTguOCA2MTEuM2wtMTIuOS01LjJIMTg0VjQxNy45aDEyMS45bDEyLjktNS4yTDg0MCAyMDMuM3Y2MTcuNHoifX1dfSxuYW1lOiJub3RpZmljYXRpb24iLHRoZW1lOiJvdXRsaW5lZCJ9LGk9dCxzPWUoMTM0MDEpLGE9ZnVuY3Rpb24oZCxtKXtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KHMuWiwoMCxyLlopKHt9LGQse3JlZjptLGljb246aX0pKX0sdT1uLmZvcndhcmRSZWYoYSksYz11fSw1MzkyOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1o6ZnVuY3Rpb24oKXtyZXR1cm4gY319KTt2YXIgcj1lKDg3NDYyKSxuPWUoNjcyOTQpLHQ9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTc3OS4zIDE5Ni42Yy05NC4yLTk0LjItMjQ3LjYtOTQuMi0zNDEuNyAwbC0yNjEgMjYwLjhjLTEuNyAxLjctMi42IDQtMi42IDYuNHMuOSA0LjcgMi42IDYuNGwzNi45IDM2LjlhOSA5IDAgMDAxMi43IDBsMjYxLTI2MC44YzMyLjQtMzIuNCA3NS41LTUwLjIgMTIxLjMtNTAuMnM4OC45IDE3LjggMTIxLjIgNTAuMmMzMi40IDMyLjQgNTAuMiA3NS41IDUwLjIgMTIxLjIgMCA0NS44LTE3LjggODguOC01MC4yIDEyMS4ybC0yNjYgMjY1LjktNDMuMSA0My4xYy00MC4zIDQwLjMtMTA1LjggNDAuMy0xNDYuMSAwLTE5LjUtMTkuNS0zMC4yLTQ1LjQtMzAuMi03M3MxMC43LTUzLjUgMzAuMi03M2wyNjMuOS0yNjMuOGM2LjctNi42IDE1LjUtMTAuMyAyNC45LTEwLjNoLjFjOS40IDAgMTguMSAzLjcgMjQuNyAxMC4zIDYuNyA2LjcgMTAuMyAxNS41IDEwLjMgMjQuOSAwIDkuMy0zLjcgMTguMS0xMC4zIDI0LjdMMzcyLjQgNjUzYy0xLjcgMS43LTIuNiA0LTIuNiA2LjRzLjkgNC43IDIuNiA2LjRsMzYuOSAzNi45YTkgOSAwIDAwMTIuNyAwbDIxNS42LTIxNS42YzE5LjktMTkuOSAzMC44LTQ2LjMgMzAuOC03NC40cy0xMS01NC42LTMwLjgtNzQuNGMtNDEuMS00MS4xLTEwNy45LTQxLTE0OSAwTDQ2MyAzNjQgMjI0LjggNjAyLjFBMTcyLjIyIDE3Mi4yMiAwIDAwMTc0IDcyNC44YzAgNDYuMyAxOC4xIDg5LjggNTAuOCAxMjIuNSAzMy45IDMzLjggNzguMyA1MC43IDEyMi43IDUwLjcgNDQuNCAwIDg4LjgtMTYuOSAxMjIuNi01MC43bDMwOS4yLTMwOUM4MjQuOCA0OTIuNyA4NTAgNDMyIDg1MCAzNjcuNWMuMS02NC42LTI1LjEtMTI1LjMtNzAuNy0xNzAuOXoifX1dfSxuYW1lOiJwYXBlci1jbGlwIix0aGVtZToib3V0bGluZWQifSxpPXQscz1lKDEzNDAxKSxhPWZ1bmN0aW9uKGQsbSl7cmV0dXJuIG4uY3JlYXRlRWxlbWVudChzLlosKDAsci5aKSh7fSxkLHtyZWY6bSxpY29uOml9KSl9LHU9bi5mb3J3YXJkUmVmKGEpLGM9dX0sODI1NDM6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiBjfX0pO3ZhciByPWUoODc0NjIpLG49ZSg2NzI5NCksdD17aWNvbjpmdW5jdGlvbihkLG0pe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MjggMTYwSDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY2NDBjMCAxNy43IDE0LjMgMzIgMzIgMzJoODMyYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE5MmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDYzMkgxMzZ2LTM5LjlsMTM4LjUtMTY0LjMgMTUwLjEgMTc4TDY1OC4xIDQ4OSA4ODggNzYxLjZWNzkyem0wLTEyOS44TDY2NC4yIDM5Ni44Yy0zLjItMy44LTktMy44LTEyLjIgMEw0MjQuNiA2NjYuNGwtMTQ0LTE3MC43Yy0zLjItMy44LTktMy44LTEyLjIgMEwxMzYgNjUyLjdWMjMyaDc1MnY0MzAuMnoiLGZpbGw6ZH19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNDI0LjYgNzY1LjhsLTE1MC4xLTE3OEwxMzYgNzUyLjFWNzkyaDc1MnYtMzAuNEw2NTguMSA0ODl6IixmaWxsOm19fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTEzNiA2NTIuN2wxMzIuNC0xNTdjMy4yLTMuOCA5LTMuOCAxMi4yIDBsMTQ0IDE3MC43TDY1MiAzOTYuOGMzLjItMy44IDktMy44IDEyLjIgMEw4ODggNjYyLjJWMjMySDEzNnY0MjAuN3pNMzA0IDI4MGE4OCA4OCAwIDExMCAxNzYgODggODggMCAwMTAtMTc2eiIsZmlsbDptfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0yNzYgMzY4YTI4IDI4IDAgMTA1NiAwIDI4IDI4IDAgMTAtNTYgMHoiLGZpbGw6bX19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMzA0IDQ1NmE4OCA4OCAwIDEwMC0xNzYgODggODggMCAwMDAgMTc2em0wLTExNmMxNS41IDAgMjggMTIuNSAyOCAyOHMtMTIuNSAyOC0yOCAyOC0yOC0xMi41LTI4LTI4IDEyLjUtMjggMjgtMjh6IixmaWxsOmR9fV19fSxuYW1lOiJwaWN0dXJlIix0aGVtZToidHdvdG9uZSJ9LGk9dCxzPWUoMTM0MDEpLGE9ZnVuY3Rpb24oZCxtKXtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KHMuWiwoMCxyLlopKHt9LGQse3JlZjptLGljb246aX0pKX0sdT1uLmZvcndhcmRSZWYoYSksYz11fSwyNDk2OTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGN9fSk7dmFyIHI9ZSg4NzQ2Miksbj1lKDY3Mjk0KSx0PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00ODIgMTUyaDYwcTggMCA4IDh2NzA0cTAgOC04IDhoLTYwcS04IDAtOC04VjE2MHEwLTggOC04eiJ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTE5MiA0NzRoNjcycTggMCA4IDh2NjBxMCA4LTggOEgxNjBxLTggMC04LTh2LTYwcTAtOCA4LTh6In19XX0sbmFtZToicGx1cyIsdGhlbWU6Im91dGxpbmVkIn0saT10LHM9ZSgxMzQwMSksYT1mdW5jdGlvbihkLG0pe3JldHVybiBuLmNyZWF0ZUVsZW1lbnQocy5aLCgwLHIuWikoe30sZCx7cmVmOm0saWNvbjppfSkpfSx1PW4uZm9yd2FyZFJlZihhKSxjPXV9LDEzOTgyOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1o6ZnVuY3Rpb24oKXtyZXR1cm4gY319KTt2YXIgcj1lKDg3NDYyKSxuPWUoNjcyOTQpLHQ9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTMyOCA1NDRoMTUydjE1MmMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04VjU0NGgxNTJjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThINTQ0VjMyOGMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2MTUySDMyOGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOHoifX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2eiJ9fV19LG5hbWU6InBsdXMtc3F1YXJlIix0aGVtZToib3V0bGluZWQifSxpPXQscz1lKDEzNDAxKSxhPWZ1bmN0aW9uKGQsbSl7cmV0dXJuIG4uY3JlYXRlRWxlbWVudChzLlosKDAsci5aKSh7fSxkLHtyZWY6bSxpY29uOml9KSl9LHU9bi5mb3J3YXJkUmVmKGEpLGM9dX0sMjUwMzU6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiBjfX0pO3ZhciByPWUoODc0NjIpLG49ZSg2NzI5NCksdD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeiJ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTYyMy42IDMxNi43QzU5My42IDI5MC40IDU1NCAyNzYgNTEyIDI3NnMtODEuNiAxNC41LTExMS42IDQwLjdDMzY5LjIgMzQ0IDM1MiAzODAuNyAzNTIgNDIwdjcuNmMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04VjQyMGMwLTQ0LjEgNDMuMS04MCA5Ni04MHM5NiAzNS45IDk2IDgwYzAgMzEuMS0yMiA1OS42LTU2LjEgNzIuNy0yMS4yIDguMS0zOS4yIDIyLjMtNTIuMSA0MC45LTEzLjEgMTktMTkuOSA0MS44LTE5LjkgNjQuOVY2MjBjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOHYtMjIuN2E0OC4zIDQ4LjMgMCAwMTMwLjktNDQuOGM1OS0yMi43IDk3LjEtNzQuNyA5Ny4xLTEzMi41LjEtMzkuMy0xNy4xLTc2LTQ4LjMtMTAzLjN6TTQ3MiA3MzJhNDAgNDAgMCAxMDgwIDAgNDAgNDAgMCAxMC04MCAweiJ9fV19LG5hbWU6InF1ZXN0aW9uLWNpcmNsZSIsdGhlbWU6Im91dGxpbmVkIn0saT10LHM9ZSgxMzQwMSksYT1mdW5jdGlvbihkLG0pe3JldHVybiBuLmNyZWF0ZUVsZW1lbnQocy5aLCgwLHIuWikoe30sZCx7cmVmOm0saWNvbjppfSkpfSx1PW4uZm9yd2FyZFJlZihhKSxjPXV9LDg3NzQwOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1o6ZnVuY3Rpb24oKXtyZXR1cm4gY319KTt2YXIgcj1lKDg3NDYyKSxuPWUoNjcyOTQpLHQ9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTc1OC4yIDgzOS4xQzg1MS44IDc2NS45IDkxMiA2NTEuOSA5MTIgNTIzLjkgOTEyIDMwMyA3MzMuNSAxMjQuMyA1MTIuNiAxMjQgMjkxLjQgMTIzLjcgMTEyIDMwMi44IDExMiA1MjMuOWMwIDEyNS4yIDU3LjUgMjM2LjkgMTQ3LjYgMzEwLjIgMy41IDIuOCA4LjYgMi4yIDExLjQtMS4zbDM5LjQtNTAuNWMyLjctMy40IDIuMS04LjMtMS4yLTExLjEtOC4xLTYuNi0xNS45LTEzLjctMjMuNC0yMS4yYTMxOC42NCAzMTguNjQgMCAwMS02OC42LTEwMS43QzIwMC40IDYwOSAxOTIgNTY3LjEgMTkyIDUyMy45czguNC04NS4xIDI1LjEtMTI0LjVjMTYuMS0zOC4xIDM5LjItNzIuMyA2OC42LTEwMS43IDI5LjQtMjkuNCA2My42LTUyLjUgMTAxLjctNjguNkM0MjYuOSAyMTIuNCA0NjguOCAyMDQgNTEyIDIwNHM4NS4xIDguNCAxMjQuNSAyNS4xYzM4LjEgMTYuMSA3Mi4zIDM5LjIgMTAxLjcgNjguNiAyOS40IDI5LjQgNTIuNSA2My42IDY4LjYgMTAxLjcgMTYuNyAzOS40IDI1LjEgODEuMyAyNS4xIDEyNC41cy04LjQgODUuMS0yNS4xIDEyNC41YTMxOC42NCAzMTguNjQgMCAwMS02OC42IDEwMS43Yy05LjMgOS4zLTE5LjEgMTgtMjkuMyAyNkw2NjguMiA3MjRhOCA4IDAgMDAtMTQuMSAzbC0zOS42IDE2Mi4yYy0xLjIgNSAyLjYgOS45IDcuNyA5LjlsMTY3IC44YzYuNyAwIDEwLjUtNy43IDYuMy0xMi45bC0zNy4zLTQ3Ljl6In19XX0sbmFtZToicmVkbyIsdGhlbWU6Im91dGxpbmVkIn0saT10LHM9ZSgxMzQwMSksYT1mdW5jdGlvbihkLG0pe3JldHVybiBuLmNyZWF0ZUVsZW1lbnQocy5aLCgwLHIuWikoe30sZCx7cmVmOm0saWNvbjppfSkpfSx1PW4uZm9yd2FyZFJlZihhKSxjPXV9LDMzMTYwOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1o6ZnVuY3Rpb24oKXtyZXR1cm4gY319KTt2YXIgcj1lKDg3NDYyKSxuPWUoNjcyOTQpLHQ9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkwOS4xIDIwOS4zbC01Ni40IDQ0LjFDNzc1LjggMTU1LjEgNjU2LjIgOTIgNTIxLjkgOTIgMjkwIDkyIDEwMi4zIDI3OS41IDEwMiA1MTEuNSAxMDEuNyA3NDMuNyAyODkuOCA5MzIgNTIxLjkgOTMyYzE4MS4zIDAgMzM1LjgtMTE1IDM5NC42LTI3Ni4xIDEuNS00LjItLjctOC45LTQuOS0xMC4zbC01Ni43LTE5LjVhOCA4IDAgMDAtMTAuMSA0LjhjLTEuOCA1LTMuOCAxMC01LjkgMTQuOS0xNy4zIDQxLTQyLjEgNzcuOC03My43IDEwOS40QTM0NC43NyAzNDQuNzcgMCAwMTY1NS45IDgyOWMtNDIuMyAxNy45LTg3LjQgMjctMTMzLjggMjctNDYuNSAwLTkxLjUtOS4xLTEzMy44LTI3QTM0MS41IDM0MS41IDAgMDEyNzkgNzU1LjJhMzQyLjE2IDM0Mi4xNiAwIDAxLTczLjctMTA5LjRjLTE3LjktNDIuNC0yNy04Ny40LTI3LTEzMy45czkuMS05MS41IDI3LTEzMy45YzE3LjMtNDEgNDIuMS03Ny44IDczLjctMTA5LjQgMzEuNi0zMS42IDY4LjQtNTYuNCAxMDkuMy03My44IDQyLjMtMTcuOSA4Ny40LTI3IDEzMy44LTI3IDQ2LjUgMCA5MS41IDkuMSAxMzMuOCAyN2EzNDEuNSAzNDEuNSAwIDAxMTA5LjMgNzMuOGM5LjkgOS45IDE5LjIgMjAuNCAyNy44IDMxLjRsLTYwLjIgNDdhOCA4IDAgMDAzIDE0LjFsMTc1LjYgNDNjNSAxLjIgOS45LTIuNiA5LjktNy43bC44LTE4MC45Yy0uMS02LjYtNy44LTEwLjMtMTMtNi4yeiJ9fV19LG5hbWU6InJlbG9hZCIsdGhlbWU6Im91dGxpbmVkIn0saT10LHM9ZSgxMzQwMSksYT1mdW5jdGlvbihkLG0pe3JldHVybiBuLmNyZWF0ZUVsZW1lbnQocy5aLCgwLHIuWikoe30sZCx7cmVmOm0saWNvbjppfSkpfSx1PW4uZm9yd2FyZFJlZihhKSxjPXV9LDkwODE0OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1o6ZnVuY3Rpb24oKXtyZXR1cm4gY319KTt2YXIgcj1lKDg3NDYyKSxuPWUoNjcyOTQpLHQ9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTc2NS43IDQ4Ni44TDMxNC45IDEzNC43QTcuOTcgNy45NyAwIDAwMzAyIDE0MXY3Ny4zYzAgNC45IDIuMyA5LjYgNi4xIDEyLjZsMzYwIDI4MS4xLTM2MCAyODEuMWMtMy45IDMtNi4xIDcuNy02LjEgMTIuNlY4ODNjMCA2LjcgNy43IDEwLjQgMTIuOSA2LjNsNDUwLjgtMzUyLjFhMzEuOTYgMzEuOTYgMCAwMDAtNTAuNHoifX1dfSxuYW1lOiJyaWdodCIsdGhlbWU6Im91dGxpbmVkIn0saT10LHM9ZSgxMzQwMSksYT1mdW5jdGlvbihkLG0pe3JldHVybiBuLmNyZWF0ZUVsZW1lbnQocy5aLCgwLHIuWikoe30sZCx7cmVmOm0saWNvbjppfSkpfSx1PW4uZm9yd2FyZFJlZihhKSxjPXV9LDcxOTY1OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1o6ZnVuY3Rpb24oKXtyZXR1cm4gY319KTt2YXIgcj1lKDg3NDYyKSxuPWUoNjcyOTQpLHQ9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTc5MyAyNDJIMzY2di03NGMwLTYuNy03LjctMTAuNC0xMi45LTYuM2wtMTQyIDExMmE4IDggMCAwMDAgMTIuNmwxNDIgMTEyYzUuMiA0LjEgMTIuOS40IDEyLjktNi4zdi03NGg0MTV2NDcwSDE3NWMtNC40IDAtOCAzLjYtOCA4djYwYzAgNC40IDMuNiA4IDggOGg2MThjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMzA2YzAtMzUuMy0yOC43LTY0LTY0LTY0eiJ9fV19LG5hbWU6InJvbGxiYWNrIix0aGVtZToib3V0bGluZWQifSxpPXQscz1lKDEzNDAxKSxhPWZ1bmN0aW9uKGQsbSl7cmV0dXJuIG4uY3JlYXRlRWxlbWVudChzLlosKDAsci5aKSh7fSxkLHtyZWY6bSxpY29uOml9KSl9LHU9bi5mb3J3YXJkUmVmKGEpLGM9dX0sNDM3NDk6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiBjfX0pO3ZhciByPWUoODc0NjIpLG49ZSg2NzI5NCksdD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6ImRlZnMiLGF0dHJzOnt9LGNoaWxkcmVuOlt7dGFnOiJzdHlsZSIsYXR0cnM6e319XX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02NzIgNDE4SDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NDE0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDUyOGMxNy43IDAgMzItMTQuMyAzMi0zMlY0NTBjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00NCA0MDJIMTg4VjQ5NGg0NDB2MzI2eiJ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTgxOS4zIDMyOC41Yy03OC44LTEwMC43LTE5Ni0xNTMuNi0zMTQuNi0xNTQuMmwtLjItNjRjMC02LjUtNy42LTEwLjEtMTIuNi02LjFsLTEyOCAxMDFjLTQgMy4xLTMuOSA5LjEgMCAxMi4zTDQ5MiAzMTguNmM1LjEgNCAxMi43LjQgMTIuNi02LjF2LTYzLjljMTIuOS4xIDI1LjkuOSAzOC44IDIuNSA0Mi4xIDUuMiA4Mi4xIDE4LjIgMTE5IDM4LjcgMzguMSAyMS4yIDcxLjIgNDkuNyA5OC40IDg0LjMgMjcuMSAzNC43IDQ2LjcgNzMuNyA1OC4xIDExNS44YTMyNS45NSAzMjUuOTUgMCAwMTYuNSAxNDAuOWg3NC45YzE0LjgtMTAzLjYtMTEuMy0yMTMtODEtMzAyLjN6In19XX0sbmFtZToicm90YXRlLWxlZnQiLHRoZW1lOiJvdXRsaW5lZCJ9LGk9dCxzPWUoMTM0MDEpLGE9ZnVuY3Rpb24oZCxtKXtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KHMuWiwoMCxyLlopKHt9LGQse3JlZjptLGljb246aX0pKX0sdT1uLmZvcndhcmRSZWYoYSksYz11fSw1NjQyNDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGN9fSk7dmFyIHI9ZSg4NzQ2Miksbj1lKDY3Mjk0KSx0PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoiZGVmcyIsYXR0cnM6e30sY2hpbGRyZW46W3t0YWc6InN0eWxlIixhdHRyczp7fX1dfSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQ4MC41IDI1MS4yYzEzLTEuNiAyNS45LTIuNCAzOC44LTIuNXY2My45YzAgNi41IDcuNSAxMC4xIDEyLjYgNi4xTDY2MCAyMTcuNmM0LTMuMiA0LTkuMiAwLTEyLjNsLTEyOC0xMDFjLTUuMS00LTEyLjYtLjQtMTIuNiA2LjFsLS4yIDY0Yy0xMTguNi41LTIzNS44IDUzLjQtMzE0LjYgMTU0LjJBMzk5Ljc1IDM5OS43NSAwIDAwMTIzLjUgNjMxaDc0LjljLS45LTUuMy0xLjctMTAuNy0yLjQtMTYuMS01LjEtNDIuMS0yLjEtODQuMSA4LjktMTI0LjggMTEuNC00Mi4yIDMxLTgxLjEgNTguMS0xMTUuOCAyNy4yLTM0LjcgNjAuMy02My4yIDk4LjQtODQuMyAzNy0yMC42IDc2LjktMzMuNiAxMTkuMS0zOC44eiJ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCA0MThIMzUyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY0MTRjMCAxNy43IDE0LjMgMzIgMzIgMzJoNTI4YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjQ1MGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQ0IDQwMkgzOTZWNDk0aDQ0MHYzMjZ6In19XX0sbmFtZToicm90YXRlLXJpZ2h0Iix0aGVtZToib3V0bGluZWQifSxpPXQscz1lKDEzNDAxKSxhPWZ1bmN0aW9uKGQsbSl7cmV0dXJuIG4uY3JlYXRlRWxlbWVudChzLlosKDAsci5aKSh7fSxkLHtyZWY6bSxpY29uOml9KSl9LHU9bi5mb3J3YXJkUmVmKGEpLGM9dX0sNDgyOTY6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiBjfX0pO3ZhciByPWUoODc0NjIpLG49ZSg2NzI5NCksdD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTA5LjYgODU0LjVMNjQ5LjkgNTk0LjhDNjkwLjIgNTQyLjcgNzEyIDQ3OSA3MTIgNDEyYzAtODAuMi0zMS4zLTE1NS40LTg3LjktMjEyLjEtNTYuNi01Ni43LTEzMi04Ny45LTIxMi4xLTg3LjlzLTE1NS41IDMxLjMtMjEyLjEgODcuOUMxNDMuMiAyNTYuNSAxMTIgMzMxLjggMTEyIDQxMmMwIDgwLjEgMzEuMyAxNTUuNSA4Ny45IDIxMi4xQzI1Ni41IDY4MC44IDMzMS44IDcxMiA0MTIgNzEyYzY3IDAgMTMwLjYtMjEuOCAxODIuNy02MmwyNTkuNyAyNTkuNmE4LjIgOC4yIDAgMDAxMS42IDBsNDMuNi00My41YTguMiA4LjIgMCAwMDAtMTEuNnpNNTcwLjQgNTcwLjRDNTI4IDYxMi43IDQ3MS44IDYzNiA0MTIgNjM2cy0xMTYtMjMuMy0xNTguNC02NS42QzIxMS4zIDUyOCAxODggNDcxLjggMTg4IDQxMnMyMy4zLTExNi4xIDY1LjYtMTU4LjRDMjk2IDIxMS4zIDM1Mi4yIDE4OCA0MTIgMTg4czExNi4xIDIzLjIgMTU4LjQgNjUuNlM2MzYgMzUyLjIgNjM2IDQxMnMtMjMuMyAxMTYuMS02NS42IDE1OC40eiJ9fV19LG5hbWU6InNlYXJjaCIsdGhlbWU6Im91dGxpbmVkIn0saT10LHM9ZSgxMzQwMSksYT1mdW5jdGlvbihkLG0pe3JldHVybiBuLmNyZWF0ZUVsZW1lbnQocy5aLCgwLHIuWikoe30sZCx7cmVmOm0saWNvbjppfSkpfSx1PW4uZm9yd2FyZFJlZihhKSxjPXV9LDQyOTUyOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1o6ZnVuY3Rpb24oKXtyZXR1cm4gY319KTt2YXIgcj1lKDg3NDYyKSxuPWUoNjcyOTQpLHQ9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkyNC44IDYyNS43bC02NS41LTU2YzMuMS0xOSA0LjctMzguNCA0LjctNTcuOHMtMS42LTM4LjgtNC43LTU3LjhsNjUuNS01NmEzMi4wMyAzMi4wMyAwIDAwOS4zLTM1LjJsLS45LTIuNmE0NDMuNzQgNDQzLjc0IDAgMDAtNzkuNy0xMzcuOWwtMS44LTIuMWEzMi4xMiAzMi4xMiAwIDAwLTM1LjEtOS41bC04MS4zIDI4LjljLTMwLTI0LjYtNjMuNS00NC05OS43LTU3LjZsLTE1LjctODVhMzIuMDUgMzIuMDUgMCAwMC0yNS44LTI1LjdsLTIuNy0uNWMtNTIuMS05LjQtMTA2LjktOS40LTE1OSAwbC0yLjcuNWEzMi4wNSAzMi4wNSAwIDAwLTI1LjggMjUuN2wtMTUuOCA4NS40YTM1MS44NiAzNTEuODYgMCAwMC05OSA1Ny40bC04MS45LTI5LjFhMzIgMzIgMCAwMC0zNS4xIDkuNWwtMS44IDIuMWE0NDYuMDIgNDQ2LjAyIDAgMDAtNzkuNyAxMzcuOWwtLjkgMi42Yy00LjUgMTIuNS0uOCAyNi41IDkuMyAzNS4ybDY2LjMgNTYuNmMtMy4xIDE4LjgtNC42IDM4LTQuNiA1Ny4xIDAgMTkuMiAxLjUgMzguNCA0LjYgNTcuMUw5OSA2MjUuNWEzMi4wMyAzMi4wMyAwIDAwLTkuMyAzNS4ybC45IDIuNmMxOC4xIDUwLjQgNDQuOSA5Ni45IDc5LjcgMTM3LjlsMS44IDIuMWEzMi4xMiAzMi4xMiAwIDAwMzUuMSA5LjVsODEuOS0yOS4xYzI5LjggMjQuNSA2My4xIDQzLjkgOTkgNTcuNGwxNS44IDg1LjRhMzIuMDUgMzIuMDUgMCAwMDI1LjggMjUuN2wyLjcuNWE0NDkuNCA0NDkuNCAwIDAwMTU5IDBsMi43LS41YTMyLjA1IDMyLjA1IDAgMDAyNS44LTI1LjdsMTUuNy04NWEzNTAgMzUwIDAgMDA5OS43LTU3LjZsODEuMyAyOC45YTMyIDMyIDAgMDAzNS4xLTkuNWwxLjgtMi4xYzM0LjgtNDEuMSA2MS42LTg3LjUgNzkuNy0xMzcuOWwuOS0yLjZjNC41LTEyLjMuOC0yNi4zLTkuMy0zNXpNNzg4LjMgNDY1LjljMi41IDE1LjEgMy44IDMwLjYgMy44IDQ2LjFzLTEuMyAzMS0zLjggNDYuMWwtNi42IDQwLjEgNzQuNyA2My45YTM3MC4wMyAzNzAuMDMgMCAwMS00Mi42IDczLjZMNzIxIDcwMi44bC0zMS40IDI1LjhjLTIzLjkgMTkuNi01MC41IDM1LTc5LjMgNDUuOGwtMzguMSAxNC4zLTE3LjkgOTdhMzc3LjUgMzc3LjUgMCAwMS04NSAwbC0xNy45LTk3LjItMzcuOC0xNC41Yy0yOC41LTEwLjgtNTUtMjYuMi03OC43LTQ1LjdsLTMxLjQtMjUuOS05My40IDMzLjJjLTE3LTIyLjktMzEuMi00Ny42LTQyLjYtNzMuNmw3NS41LTY0LjUtNi41LTQwYy0yLjQtMTQuOS0zLjctMzAuMy0zLjctNDUuNSAwLTE1LjMgMS4yLTMwLjYgMy43LTQ1LjVsNi41LTQwLTc1LjUtNjQuNWMxMS4zLTI2LjEgMjUuNi01MC43IDQyLjYtNzMuNmw5My40IDMzLjIgMzEuNC0yNS45YzIzLjctMTkuNSA1MC4yLTM0LjkgNzguNy00NS43bDM3LjktMTQuMyAxNy45LTk3LjJjMjguMS0zLjIgNTYuOC0zLjIgODUgMGwxNy45IDk3IDM4LjEgMTQuM2MyOC43IDEwLjggNTUuNCAyNi4yIDc5LjMgNDUuOGwzMS40IDI1LjggOTIuOC0zMi45YzE3IDIyLjkgMzEuMiA0Ny42IDQyLjYgNzMuNkw3ODEuOCA0MjZsNi41IDM5Ljl6TTUxMiAzMjZjLTk3LjIgMC0xNzYgNzguOC0xNzYgMTc2czc4LjggMTc2IDE3NiAxNzYgMTc2LTc4LjggMTc2LTE3Ni03OC44LTE3Ni0xNzYtMTc2em03OS4yIDI1NS4yQTExMS42IDExMS42IDAgMDE1MTIgNjE0Yy0yOS45IDAtNTgtMTEuNy03OS4yLTMyLjhBMTExLjYgMTExLjYgMCAwMTQwMCA1MDJjMC0yOS45IDExLjctNTggMzIuOC03OS4yQzQ1NCA0MDEuNiA0ODIuMSAzOTAgNTEyIDM5MGMyOS45IDAgNTggMTEuNiA3OS4yIDMyLjhBMTExLjYgMTExLjYgMCAwMTYyNCA1MDJjMCAyOS45LTExLjcgNTgtMzIuOCA3OS4yeiJ9fV19LG5hbWU6InNldHRpbmciLHRoZW1lOiJvdXRsaW5lZCJ9LGk9dCxzPWUoMTM0MDEpLGE9ZnVuY3Rpb24oZCxtKXtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KHMuWiwoMCxyLlopKHt9LGQse3JlZjptLGljb246aX0pKX0sdT1uLmZvcndhcmRSZWYoYSksYz11fSw5MDU5ODpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGN9fSk7dmFyIHI9ZSg4NzQ2Miksbj1lKDY3Mjk0KSx0PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MDguMSAzNTMuMWwtMjUzLjktMzYuOUw1NDAuNyA4Ni4xYy0zLjEtNi4zLTguMi0xMS40LTE0LjUtMTQuNS0xNS44LTcuOC0zNS0xLjMtNDIuOSAxNC41TDM2OS44IDMxNi4ybC0yNTMuOSAzNi45Yy03IDEtMTMuNCA0LjMtMTguMyA5LjNhMzIuMDUgMzIuMDUgMCAwMC42IDQ1LjNsMTgzLjcgMTc5LjEtNDMuNCAyNTIuOWEzMS45NSAzMS45NSAwIDAwNDYuNCAzMy43TDUxMiA3NTRsMjI3LjEgMTE5LjRjNi4yIDMuMyAxMy40IDQuNCAyMC4zIDMuMiAxNy40LTMgMjkuMS0xOS41IDI2LjEtMzYuOWwtNDMuNC0yNTIuOSAxODMuNy0xNzkuMWM1LTQuOSA4LjMtMTEuMyA5LjMtMTguMyAyLjctMTcuNS05LjUtMzMuNy0yNy0zNi4zeiJ9fV19LG5hbWU6InN0YXIiLHRoZW1lOiJmaWxsZWQifSxpPXQscz1lKDEzNDAxKSxhPWZ1bmN0aW9uKGQsbSl7cmV0dXJuIG4uY3JlYXRlRWxlbWVudChzLlosKDAsci5aKSh7fSxkLHtyZWY6bSxpY29uOml9KSl9LHU9bi5mb3J3YXJkUmVmKGEpLGM9dX0sOTQ2Njg6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiBjfX0pO3ZhciByPWUoODc0NjIpLG49ZSg2NzI5NCksdD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODQ3LjkgNTkySDE1MmMtNC40IDAtOCAzLjYtOCA4djYwYzAgNC40IDMuNiA4IDggOGg2MDUuMkw2MTIuOSA4NTFjLTQuMSA1LjItLjQgMTMgNi4zIDEzaDcyLjVjNC45IDAgOS41LTIuMiAxMi42LTYuMWwxNjguOC0yMTQuMWMxNi41LTIxIDEuNi01MS44LTI1LjItNTEuOHpNODcyIDM1NkgyNjYuOGwxNDQuMy0xODNjNC4xLTUuMi40LTEzLTYuMy0xM2gtNzIuNWMtNC45IDAtOS41IDIuMi0xMi42IDYuMUwxNTAuOSAzODAuMmMtMTYuNSAyMS0xLjYgNTEuOCAyNS4xIDUxLjhoNjk2YzQuNCAwIDgtMy42IDgtOHYtNjBjMC00LjQtMy42LTgtOC04eiJ9fV19LG5hbWU6InN3YXAiLHRoZW1lOiJvdXRsaW5lZCJ9LGk9dCxzPWUoMTM0MDEpLGE9ZnVuY3Rpb24oZCxtKXtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KHMuWiwoMCxyLlopKHt9LGQse3JlZjptLGljb246aX0pKX0sdT1uLmZvcndhcmRSZWYoYSksYz11fSwzMjE5ODpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGN9fSk7dmFyIHI9ZSg4NzQ2Miksbj1lKDY3Mjk0KSx0PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjAgMCAxMDI0IDEwMjQiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NzMuMSA1OTYuMmwtMTY0LTIwOEEzMiAzMiAwIDAwNjg0IDM3NmgtNjQuOGMtNi43IDAtMTAuNCA3LjctNi4zIDEzbDE0NC4zIDE4M0gxNTJjLTQuNCAwLTggMy42LTggOHY2MGMwIDQuNCAzLjYgOCA4IDhoNjk1LjljMjYuOCAwIDQxLjctMzAuOCAyNS4yLTUxLjh6In19XX0sbmFtZToic3dhcC1yaWdodCIsdGhlbWU6Im91dGxpbmVkIn0saT10LHM9ZSgxMzQwMSksYT1mdW5jdGlvbihkLG0pe3JldHVybiBuLmNyZWF0ZUVsZW1lbnQocy5aLCgwLHIuWikoe30sZCx7cmVmOm0saWNvbjppfSkpfSx1PW4uZm9yd2FyZFJlZihhKSxjPXV9LDQwNjY2OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1o6ZnVuY3Rpb24oKXtyZXR1cm4gY319KTt2YXIgcj1lKDg3NDYyKSxuPWUoNjcyOTQpLHQ9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkzOCA0NTguOGwtMjkuNi0zMTIuNmMtMS41LTE2LjItMTQuNC0yOS0zMC42LTMwLjZMNTY1LjIgODZoLS40Yy0zLjIgMC01LjcgMS03LjYgMi45TDg4LjkgNTU3LjJhOS45NiA5Ljk2IDAgMDAwIDE0LjFsMzYzLjggMzYzLjhjMS45IDEuOSA0LjQgMi45IDcuMSAyLjlzNS4yLTEgNy4xLTIuOWw0NjguMy00NjguM2MyLTIuMSAzLTUgMi44LTh6TTQ1OS43IDgzNC43TDE4OS4zIDU2NC4zIDU4OSAxNjQuNiA4MzYgMTg4bDIzLjQgMjQ3LTM5OS43IDM5OS43ek02ODAgMjU2Yy00OC41IDAtODggMzkuNS04OCA4OHMzOS41IDg4IDg4IDg4IDg4LTM5LjUgODgtODgtMzkuNS04OC04OC04OHptMCAxMjBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyeiJ9fV19LG5hbWU6InRhZyIsdGhlbWU6Im91dGxpbmVkIn0saT10LHM9ZSgxMzQwMSksYT1mdW5jdGlvbihkLG0pe3JldHVybiBuLmNyZWF0ZUVsZW1lbnQocy5aLCgwLHIuWikoe30sZCx7cmVmOm0saWNvbjppfSkpfSx1PW4uZm9yd2FyZFJlZihhKSxjPXV9LDU1MzU1OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1o6ZnVuY3Rpb24oKXtyZXR1cm4gY319KTt2YXIgcj1lKDg3NDYyKSxuPWUoNjcyOTQpLHQ9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTgyNC4yIDY5OS45YTMwMS41NSAzMDEuNTUgMCAwMC04Ni40LTYwLjRDNzgzLjEgNjAyLjggODEyIDU0Ni44IDgxMiA0ODRjMC0xMTAuOC05Mi40LTIwMS43LTIwMy4yLTIwMC0xMDkuMSAxLjctMTk3IDkwLjYtMTk3IDIwMCAwIDYyLjggMjkgMTE4LjggNzQuMiAxNTUuNWEzMDAuOTUgMzAwLjk1IDAgMDAtODYuNCA2MC40QzM0NSA3NTQuNiAzMTQgODI2LjggMzEyIDkwMy44YTggOCAwIDAwOCA4LjJoNTZjNC4zIDAgNy45LTMuNCA4LTcuNyAxLjktNTggMjUuNC0xMTIuMyA2Ni43LTE1My41QTIyNi42MiAyMjYuNjIgMCAwMTYxMiA2ODRjNjAuOSAwIDExOC4yIDIzLjcgMTYxLjMgNjYuOEM4MTQuNSA3OTIgODM4IDg0Ni4zIDg0MCA5MDQuM2MuMSA0LjMgMy43IDcuNyA4IDcuN2g1NmE4IDggMCAwMDgtOC4yYy0yLTc3LTMzLTE0OS4yLTg3LjgtMjAzLjl6TTYxMiA2MTJjLTM0LjIgMC02Ni40LTEzLjMtOTAuNS0zNy41YTEyNi44NiAxMjYuODYgMCAwMS0zNy41LTkxLjhjLjMtMzIuOCAxMy40LTY0LjUgMzYuMy04OCAyNC0yNC42IDU2LjEtMzguMyA5MC40LTM4LjcgMzMuOS0uMyA2Ni44IDEyLjkgOTEgMzYuNiAyNC44IDI0LjMgMzguNCA1Ni44IDM4LjQgOTEuNCAwIDM0LjItMTMuMyA2Ni4zLTM3LjUgOTAuNUExMjcuMyAxMjcuMyAwIDAxNjEyIDYxMnpNMzYxLjUgNTEwLjRjLS45LTguNy0xLjQtMTcuNS0xLjQtMjYuNCAwLTE1LjkgMS41LTMxLjQgNC4zLTQ2LjUuNy0zLjYtMS4yLTcuMy00LjUtOC44LTEzLjYtNi4xLTI2LjEtMTQuNS0zNi45LTI1LjFhMTI3LjU0IDEyNy41NCAwIDAxLTM4LjctOTUuNGMuOS0zMi4xIDEzLjgtNjIuNiAzNi4zLTg1LjYgMjQuNy0yNS4zIDU3LjktMzkuMSA5My4yLTM4LjcgMzEuOS4zIDYyLjcgMTIuNiA4NiAzNC40IDcuOSA3LjQgMTQuNyAxNS42IDIwLjQgMjQuNCAyIDMuMSA1LjkgNC40IDkuMyAzLjIgMTcuNi02LjEgMzYuMi0xMC40IDU1LjMtMTIuNCA1LjYtLjYgOC44LTYuNiA2LjMtMTEuNi0zMi41LTY0LjMtOTguOS0xMDguNy0xNzUuNy0xMDkuOS0xMTAuOS0xLjctMjAzLjMgODkuMi0yMDMuMyAxOTkuOSAwIDYyLjggMjguOSAxMTguOCA3NC4yIDE1NS41LTMxLjggMTQuNy02MS4xIDM1LTg2LjUgNjAuNC01NC44IDU0LjctODUuOCAxMjYuOS04Ny44IDIwNGE4IDggMCAwMDggOC4yaDU2LjFjNC4zIDAgNy45LTMuNCA4LTcuNyAxLjktNTggMjUuNC0xMTIuMyA2Ni43LTE1My41IDI5LjQtMjkuNCA2NS40LTQ5LjggMTA0LjctNTkuNyAzLjktMSA2LjUtNC43IDYtOC43eiJ9fV19LG5hbWU6InRlYW0iLHRoZW1lOiJvdXRsaW5lZCJ9LGk9dCxzPWUoMTM0MDEpLGE9ZnVuY3Rpb24oZCxtKXtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KHMuWiwoMCxyLlopKHt9LGQse3JlZjptLGljb246aX0pKX0sdT1uLmZvcndhcmRSZWYoYSksYz11fSwxMDE0OTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGN9fSk7dmFyIHI9ZSg4NzQ2Miksbj1lKDY3Mjk0KSx0PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTEuNCAxMjRDMjkwLjUgMTI0LjMgMTEyIDMwMyAxMTIgNTIzLjljMCAxMjggNjAuMiAyNDIgMTUzLjggMzE1LjJsLTM3LjUgNDhjLTQuMSA1LjMtLjMgMTMgNi4zIDEyLjlsMTY3LS44YzUuMiAwIDktNC45IDcuNy05LjlMMzY5LjggNzI3YTggOCAwIDAwLTE0LjEtM0wzMTUgNzc2LjFjLTEwLjItOC0yMC0xNi43LTI5LjMtMjZhMzE4LjY0IDMxOC42NCAwIDAxLTY4LjYtMTAxLjdDMjAwLjQgNjA5IDE5MiA1NjcuMSAxOTIgNTIzLjlzOC40LTg1LjEgMjUuMS0xMjQuNWMxNi4xLTM4LjEgMzkuMi03Mi4zIDY4LjYtMTAxLjcgMjkuNC0yOS40IDYzLjYtNTIuNSAxMDEuNy02OC42QzQyNi45IDIxMi40IDQ2OC44IDIwNCA1MTIgMjA0czg1LjEgOC40IDEyNC41IDI1LjFjMzguMSAxNi4xIDcyLjMgMzkuMiAxMDEuNyA2OC42IDI5LjQgMjkuNCA1Mi41IDYzLjYgNjguNiAxMDEuNyAxNi43IDM5LjQgMjUuMSA4MS4zIDI1LjEgMTI0LjVzLTguNCA4NS4xLTI1LjEgMTI0LjVhMzE4LjY0IDMxOC42NCAwIDAxLTY4LjYgMTAxLjdjLTcuNSA3LjUtMTUuMyAxNC41LTIzLjQgMjEuMmE3LjkzIDcuOTMgMCAwMC0xLjIgMTEuMWwzOS40IDUwLjVjMi44IDMuNSA3LjkgNC4xIDExLjQgMS4zQzg1NC41IDc2MC44IDkxMiA2NDkuMSA5MTIgNTIzLjljMC0yMjEuMS0xNzkuNC00MDAuMi00MDAuNi0zOTkuOXoifX1dfSxuYW1lOiJ1bmRvIix0aGVtZToib3V0bGluZWQifSxpPXQscz1lKDEzNDAxKSxhPWZ1bmN0aW9uKGQsbSl7cmV0dXJuIG4uY3JlYXRlRWxlbWVudChzLlosKDAsci5aKSh7fSxkLHtyZWY6bSxpY29uOml9KSl9LHU9bi5mb3J3YXJkUmVmKGEpLGM9dX0sMzM1NTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGN9fSk7dmFyIHI9ZSg4NzQ2Miksbj1lKDY3Mjk0KSx0PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04MzIgNDY0SDMzMlYyNDBjMC0zMC45IDI1LjEtNTYgNTYtNTZoMjQ4YzMwLjkgMCA1NiAyNS4xIDU2IDU2djY4YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTY4YzAtNzAuNy01Ny4zLTEyOC0xMjgtMTI4SDM4OGMtNzAuNyAwLTEyOCA1Ny4zLTEyOCAxMjh2MjI0aC02OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2Mzg0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlY0OTZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCAzNzZIMjMyVjUzNmg1NjB2MzA0ek00ODQgNzAxdjUzYzAgNC40IDMuNiA4IDggOGg0MGM0LjQgMCA4LTMuNiA4LTh2LTUzYTQ4LjAxIDQ4LjAxIDAgMTAtNTYgMHoifX1dfSxuYW1lOiJ1bmxvY2siLHRoZW1lOiJvdXRsaW5lZCJ9LGk9dCxzPWUoMTM0MDEpLGE9ZnVuY3Rpb24oZCxtKXtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KHMuWiwoMCxyLlopKHt9LGQse3JlZjptLGljb246aX0pKX0sdT1uLmZvcndhcmRSZWYoYSksYz11fSw0ODExNTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGN9fSk7dmFyIHI9ZSg4NzQ2Miksbj1lKDY3Mjk0KSx0PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04OTAuNSA3NTUuM0w1MzcuOSAyNjkuMmMtMTIuOC0xNy42LTM5LTE3LjYtNTEuNyAwTDEzMy41IDc1NS4zQTggOCAwIDAwMTQwIDc2OGg3NWM1LjEgMCA5LjktMi41IDEyLjktNi42TDUxMiAzNjkuOGwyODQuMSAzOTEuNmMzIDQuMSA3LjggNi42IDEyLjkgNi42aDc1YzYuNSAwIDEwLjMtNy40IDYuNS0xMi43eiJ9fV19LG5hbWU6InVwIix0aGVtZToib3V0bGluZWQifSxpPXQscz1lKDEzNDAxKSxhPWZ1bmN0aW9uKGQsbSl7cmV0dXJuIG4uY3JlYXRlRWxlbWVudChzLlosKDAsci5aKSh7fSxkLHtyZWY6bSxpY29uOml9KSl9LHU9bi5mb3J3YXJkUmVmKGEpLGM9dX0sODg0ODQ6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiBjfX0pO3ZhciByPWUoODc0NjIpLG49ZSg2NzI5NCksdD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNDAwIDMxNy43aDczLjlWNjU2YzAgNC40IDMuNiA4IDggOGg2MGM0LjQgMCA4LTMuNiA4LThWMzE3LjdINjI0YzYuNyAwIDEwLjQtNy43IDYuMy0xMi45TDUxOC4zIDE2M2E4IDggMCAwMC0xMi42IDBsLTExMiAxNDEuN2MtNC4xIDUuMy0uNCAxMyA2LjMgMTN6TTg3OCA2MjZoLTYwYy00LjQgMC04IDMuNi04IDh2MTU0SDIxNFY2MzRjMC00LjQtMy42LTgtOC04aC02MGMtNC40IDAtOCAzLjYtOCA4djE5OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2ODRjMTcuNyAwIDMyLTE0LjMgMzItMzJWNjM0YzAtNC40LTMuNi04LTgtOHoifX1dfSxuYW1lOiJ1cGxvYWQiLHRoZW1lOiJvdXRsaW5lZCJ9LGk9dCxzPWUoMTM0MDEpLGE9ZnVuY3Rpb24oZCxtKXtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KHMuWiwoMCxyLlopKHt9LGQse3JlZjptLGljb246aX0pKX0sdT1uLmZvcndhcmRSZWYoYSksYz11fSw4NzU0NzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGN9fSk7dmFyIHI9ZSg4NzQ2Miksbj1lKDY3Mjk0KSx0PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NTguNSA3NjMuNmEzNzQgMzc0IDAgMDAtODAuNi0xMTkuNSAzNzUuNjMgMzc1LjYzIDAgMDAtMTE5LjUtODAuNmMtLjQtLjItLjgtLjMtMS4yLS41QzcxOS41IDUxOCA3NjAgNDQ0LjcgNzYwIDM2MmMwLTEzNy0xMTEtMjQ4LTI0OC0yNDhTMjY0IDIyNSAyNjQgMzYyYzAgODIuNyA0MC41IDE1NiAxMDIuOCAyMDEuMS0uNC4yLS44LjMtMS4yLjUtNDQuOCAxOC45LTg1IDQ2LTExOS41IDgwLjZhMzc1LjYzIDM3NS42MyAwIDAwLTgwLjYgMTE5LjVBMzcxLjcgMzcxLjcgMCAwMDEzNiA5MDEuOGE4IDggMCAwMDggOC4yaDYwYzQuNCAwIDcuOS0zLjUgOC03LjggMi03Ny4yIDMzLTE0OS41IDg3LjgtMjA0LjMgNTYuNy01Ni43IDEzMi04Ny45IDIxMi4yLTg3LjlzMTU1LjUgMzEuMiAyMTIuMiA4Ny45Qzc3OSA3NTIuNyA4MTAgODI1IDgxMiA5MDIuMmMuMSA0LjQgMy42IDcuOCA4IDcuOGg2MGE4IDggMCAwMDgtOC4yYy0xLTQ3LjgtMTAuOS05NC4zLTI5LjUtMTM4LjJ6TTUxMiA1MzRjLTQ1LjkgMC04OS4xLTE3LjktMTIxLjYtNTAuNFMzNDAgNDA3LjkgMzQwIDM2MmMwLTQ1LjkgMTcuOS04OS4xIDUwLjQtMTIxLjZTNDY2LjEgMTkwIDUxMiAxOTBzODkuMSAxNy45IDEyMS42IDUwLjRTNjg0IDMxNi4xIDY4NCAzNjJjMCA0NS45LTE3LjkgODkuMS01MC40IDEyMS42UzU1Ny45IDUzNCA1MTIgNTM0eiJ9fV19LG5hbWU6InVzZXIiLHRoZW1lOiJvdXRsaW5lZCJ9LGk9dCxzPWUoMTM0MDEpLGE9ZnVuY3Rpb24oZCxtKXtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KHMuWiwoMCxyLlopKHt9LGQse3JlZjptLGljb246aX0pKX0sdT1uLmZvcndhcmRSZWYoYSksYz11fSw2NjAxNzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGN9fSk7dmFyIHI9ZSg4NzQ2Miksbj1lKDY3Mjk0KSx0PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NTkuOSA3ODBIMTY0LjFjLTQuNSAwLTguMSAzLjYtOC4xIDh2NjBjMCA0LjQgMy42IDggOC4xIDhoNjk1LjhjNC41IDAgOC4xLTMuNiA4LjEtOHYtNjBjMC00LjQtMy42LTgtOC4xLTh6TTUwNS43IDY2OWE4IDggMCAwMDEyLjYgMGwxMTItMTQxLjdjNC4xLTUuMi40LTEyLjktNi4zLTEyLjloLTc0LjFWMTc2YzAtNC40LTMuNi04LTgtOGgtNjBjLTQuNCAwLTggMy42LTggOHYzMzguM0g0MDBjLTYuNyAwLTEwLjQgNy43LTYuMyAxMi45bDExMiAxNDEuOHoifX1dfSxuYW1lOiJ2ZXJ0aWNhbC1hbGlnbi1ib3R0b20iLHRoZW1lOiJvdXRsaW5lZCJ9LGk9dCxzPWUoMTM0MDEpLGE9ZnVuY3Rpb24oZCxtKXtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KHMuWiwoMCxyLlopKHt9LGQse3JlZjptLGljb246aX0pKX0sdT1uLmZvcndhcmRSZWYoYSksYz11fSw1MDU4NzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGN9fSk7dmFyIHI9ZSg4NzQ2Miksbj1lKDY3Mjk0KSx0PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NTkuOSA0NzRIMTY0LjFjLTQuNSAwLTguMSAzLjYtOC4xIDh2NjBjMCA0LjQgMy42IDggOC4xIDhoNjk1LjhjNC41IDAgOC4xLTMuNiA4LjEtOHYtNjBjMC00LjQtMy42LTgtOC4xLTh6bS0zNTMuNi03NC43YzIuOSAzLjcgOC41IDMuNyAxMS4zIDBsMTAwLjgtMTI3LjVjMy43LTQuNy40LTExLjctNS43LTExLjdINTUwVjEwNGMwLTQuNC0zLjYtOC04LThoLTYwYy00LjQgMC04IDMuNi04IDh2MTU2aC02Mi44Yy02IDAtOS40IDctNS43IDExLjdsMTAwLjggMTI3LjZ6bTExLjQgMjI1LjRhNy4xNCA3LjE0IDAgMDAtMTEuMyAwTDQwNS42IDc1Mi4zYTcuMjMgNy4yMyAwIDAwNS43IDExLjdINDc0djE1NmMwIDQuNCAzLjYgOCA4IDhoNjBjNC40IDAgOC0zLjYgOC04Vjc2NGg2Mi44YzYgMCA5LjQtNyA1LjctMTEuN0w1MTcuNyA2MjQuN3oifX1dfSxuYW1lOiJ2ZXJ0aWNhbC1hbGlnbi1taWRkbGUiLHRoZW1lOiJvdXRsaW5lZCJ9LGk9dCxzPWUoMTM0MDEpLGE9ZnVuY3Rpb24oZCxtKXtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KHMuWiwoMCxyLlopKHt9LGQse3JlZjptLGljb246aX0pKX0sdT1uLmZvcndhcmRSZWYoYSksYz11fSw2MjYzNTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGN9fSk7dmFyIHI9ZSg4NzQ2Miksbj1lKDY3Mjk0KSx0PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NTkuOSAxNjhIMTY0LjFjLTQuNSAwLTguMSAzLjYtOC4xIDh2NjBjMCA0LjQgMy42IDggOC4xIDhoNjk1LjhjNC41IDAgOC4xLTMuNiA4LjEtOHYtNjBjMC00LjQtMy42LTgtOC4xLTh6TTUxOC4zIDM1NWE4IDggMCAwMC0xMi42IDBsLTExMiAxNDEuN2E3Ljk4IDcuOTggMCAwMDYuMyAxMi45aDczLjlWODQ4YzAgNC40IDMuNiA4IDggOGg2MGM0LjQgMCA4LTMuNiA4LThWNTA5LjdINjI0YzYuNyAwIDEwLjQtNy43IDYuMy0xMi45TDUxOC4zIDM1NXoifX1dfSxuYW1lOiJ2ZXJ0aWNhbC1hbGlnbi10b3AiLHRoZW1lOiJvdXRsaW5lZCJ9LGk9dCxzPWUoMTM0MDEpLGE9ZnVuY3Rpb24oZCxtKXtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KHMuWiwoMCxyLlopKHt9LGQse3JlZjptLGljb246aX0pKX0sdT1uLmZvcndhcmRSZWYoYSksYz11fSwxMDg0NDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGN9fSk7dmFyIHI9ZSg4NzQ2Miksbj1lKDY3Mjk0KSx0PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05NTUuNyA4NTZsLTQxNi03MjBjLTYuMi0xMC43LTE2LjktMTYtMjcuNy0xNnMtMjEuNiA1LjMtMjcuNyAxNmwtNDE2IDcyMEM1NiA4NzcuNCA3MS40IDkwNCA5NiA5MDRoODMyYzI0LjYgMCA0MC0yNi42IDI3LjctNDh6TTQ4MCA0MTZjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHYxODRjMCA0LjQtMy42IDgtOCA4aC00OGMtNC40IDAtOC0zLjYtOC04VjQxNnptMzIgMzUyYTQ4LjAxIDQ4LjAxIDAgMDEwLTk2IDQ4LjAxIDQ4LjAxIDAgMDEwIDk2eiJ9fV19LG5hbWU6Indhcm5pbmciLHRoZW1lOiJmaWxsZWQifSxpPXQscz1lKDEzNDAxKSxhPWZ1bmN0aW9uKGQsbSl7cmV0dXJuIG4uY3JlYXRlRWxlbWVudChzLlosKDAsci5aKSh7fSxkLHtyZWY6bSxpY29uOml9KSl9LHU9bi5mb3J3YXJkUmVmKGEpLGM9dX0sMzU1OTg6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiBjfX0pO3ZhciByPWUoODc0NjIpLG49ZSg2NzI5NCksdD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNjM3IDQ0M0g1MTlWMzA5YzAtNC40LTMuNi04LTgtOGgtNjBjLTQuNCAwLTggMy42LTggOHYxMzRIMzI1Yy00LjQgMC04IDMuNi04IDh2NjBjMCA0LjQgMy42IDggOCA4aDExOHYxMzRjMCA0LjQgMy42IDggOCA4aDYwYzQuNCAwIDgtMy42IDgtOFY1MTloMTE4YzQuNCAwIDgtMy42IDgtOHYtNjBjMC00LjQtMy42LTgtOC04em0yODQgNDI0TDc3NSA3MjFjMTIyLjEtMTQ4LjkgMTEzLjYtMzY5LjUtMjYtNTA5LTE0OC0xNDguMS0zODguNC0xNDguMS01MzcgMC0xNDguMSAxNDguNi0xNDguMSAzODkgMCA1MzcgMTM5LjUgMTM5LjYgMzYwLjEgMTQ4LjEgNTA5IDI2bDE0NiAxNDZjMy4yIDIuOCA4LjMgMi44IDExIDBsNDMtNDNjMi44LTIuNyAyLjgtNy44IDAtMTF6TTY5NiA2OTZjLTExOC44IDExOC43LTMxMS4yIDExOC43LTQzMCAwLTExOC43LTExOC44LTExOC43LTMxMS4yIDAtNDMwIDExOC44LTExOC43IDMxMS4yLTExOC43IDQzMCAwIDExOC43IDExOC44IDExOC43IDMxMS4yIDAgNDMweiJ9fV19LG5hbWU6Inpvb20taW4iLHRoZW1lOiJvdXRsaW5lZCJ9LGk9dCxzPWUoMTM0MDEpLGE9ZnVuY3Rpb24oZCxtKXtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KHMuWiwoMCxyLlopKHt9LGQse3JlZjptLGljb246aX0pKX0sdT1uLmZvcndhcmRSZWYoYSksYz11fSwxNTY2ODpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGN9fSk7dmFyIHI9ZSg4NzQ2Miksbj1lKDY3Mjk0KSx0PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02MzcgNDQzSDMyNWMtNC40IDAtOCAzLjYtOCA4djYwYzAgNC40IDMuNiA4IDggOGgzMTJjNC40IDAgOC0zLjYgOC04di02MGMwLTQuNC0zLjYtOC04LTh6bTI4NCA0MjRMNzc1IDcyMWMxMjIuMS0xNDguOSAxMTMuNi0zNjkuNS0yNi01MDktMTQ4LTE0OC4xLTM4OC40LTE0OC4xLTUzNyAwLTE0OC4xIDE0OC42LTE0OC4xIDM4OSAwIDUzNyAxMzkuNSAxMzkuNiAzNjAuMSAxNDguMSA1MDkgMjZsMTQ2IDE0NmMzLjIgMi44IDguMyAyLjggMTEgMGw0My00M2MyLjgtMi43IDIuOC03LjggMC0xMXpNNjk2IDY5NmMtMTE4LjggMTE4LjctMzExLjIgMTE4LjctNDMwIDAtMTE4LjctMTE4LjgtMTE4LjctMzExLjIgMC00MzAgMTE4LjgtMTE4LjcgMzExLjItMTE4LjcgNDMwIDAgMTE4LjcgMTE4LjggMTE4LjcgMzExLjIgMCA0MzB6In19XX0sbmFtZToiem9vbS1vdXQiLHRoZW1lOiJvdXRsaW5lZCJ9LGk9dCxzPWUoMTM0MDEpLGE9ZnVuY3Rpb24oZCxtKXtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KHMuWiwoMCxyLlopKHt9LGQse3JlZjptLGljb246aX0pKX0sdT1uLmZvcndhcmRSZWYoYSksYz11fSw2NTYyNDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UucihwKSxlLmQocCx7QWNjb3VudEJvb2tGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gaH0sQWNjb3VudEJvb2tPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiB3fSxBY2NvdW50Qm9va1R3b1RvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gU30sQWltT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gR30sQWxlcnRGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGV9LEFsZXJ0T3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gRH0sQWxlcnRUd29Ub25lOmZ1bmN0aW9uKCl7cmV0dXJuIHNlfSxBbGliYWJhT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gUmV9LEFsaWduQ2VudGVyT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gX2V9LEFsaWduTGVmdE91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIE19LEFsaWduUmlnaHRPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiB1ZX0sQWxpcGF5Q2lyY2xlRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIGFlfSxBbGlwYXlDaXJjbGVPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiAkZX0sQWxpcGF5T3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdXR9LEFsaXBheVNxdWFyZUZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBndH0sQWxpd2FuZ3dhbmdGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gT2V9LEFsaXdhbmd3YW5nT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gcHR9LEFsaXl1bk91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIGZufSxBbWF6b25DaXJjbGVGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4geW59LEFtYXpvbk91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIGZ0fSxBbWF6b25TcXVhcmVGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4geG59LEFuZHJvaWRGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gUW59LEFuZHJvaWRPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBXbn0sQW50Q2xvdWRPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBEdH0sQW50RGVzaWduT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gSm59LEFwYXJ0bWVudE91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIEZufSxBcGlGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gRnJ9LEFwaU91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIHZ0fSxBcGlUd29Ub25lOmZ1bmN0aW9uKCl7cmV0dXJuIGJufSxBcHBsZUZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBfbn0sQXBwbGVPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiB4ZX0sQXBwc3RvcmVBZGRPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBqdH0sQXBwc3RvcmVGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gVG59LEFwcHN0b3JlT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gT3R9LEFwcHN0b3JlVHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiBQcn0sQXJlYUNoYXJ0T3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gb2F9LEFycm93RG93bk91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIGVhfSxBcnJvd0xlZnRPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBtcn0sQXJyb3dSaWdodE91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIGphfSxBcnJvd1VwT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gRmF9LEFycm93c0FsdE91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIHpvfSxBdWRpb0ZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBXb30sQXVkaW9NdXRlZE91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIFJvfSxBdWRpb091dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIEJ9LEF1ZGlvVHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiBMdH0sQXVkaXRPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBZdC5afSxCYWNrd2FyZEZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBDcn0sQmFja3dhcmRPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBEcn0sQmFpZHVPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBFYX0sQmFua0ZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBIYX0sQmFua091dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIEdhfSxCYW5rVHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiB4b30sQmFyQ2hhcnRPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBYb30sQmFyY29kZU91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIEtlfSxCYXJzT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4geXQuWn0sQmVoYW5jZUNpcmNsZUZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBkcn0sQmVoYW5jZU91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIGRhfSxCZWhhbmNlU3F1YXJlRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIFdhfSxCZWhhbmNlU3F1YXJlT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gaG99LEJlbGxGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gTWl9LEJlbGxPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBLb30sQmVsbFR3b1RvbmU6ZnVuY3Rpb24oKXtyZXR1cm4ga259LEJnQ29sb3JzT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gYWF9LEJpbGliaWxpRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIFZhfSxCaWxpYmlsaU91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIGplfSxCbG9ja091dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIG5yfSxCb2xkT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gc2x9LEJvb2tGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gYm99LEJvb2tPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBhaX0sQm9va1R3b1RvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gZGl9LEJvcmRlckJvdHRvbU91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIE5sfSxCb3JkZXJIb3Jpem9udGFsT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gV2x9LEJvcmRlcklubmVyT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gSWx9LEJvcmRlckxlZnRPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBOaX0sQm9yZGVyT3V0ZXJPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBYaX0sQm9yZGVyT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gRmx9LEJvcmRlclJpZ2h0T3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4geml9LEJvcmRlclRvcE91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIE9yfSxCb3JkZXJWZXJ0aWNsZU91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIFphfSxCb3JkZXJsZXNzVGFibGVPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBPaX0sQm94UGxvdEZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBzc30sQm94UGxvdE91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIF9vfSxCb3hQbG90VHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiBvaX0sQnJhbmNoZXNPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBMaX0sQnVnRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIEVjfSxCdWdPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBQY30sQnVnVHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiBkc30sQnVpbGRGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gJGN9LEJ1aWxkT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gVmN9LEJ1aWxkVHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiBqY30sQnVsYkZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBrMX0sQnVsYk91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIGtjfSxCdWxiVHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiBfc30sQ2FsY3VsYXRvckZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBYY30sQ2FsY3VsYXRvck91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIGhpfSxDYWxjdWxhdG9yVHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiByMX0sQ2FsZW5kYXJGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gaTF9LENhbGVuZGFyT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gUXMuWn0sQ2FsZW5kYXJUd29Ub25lOmZ1bmN0aW9uKCl7cmV0dXJuIFkxfSxDYW1lcmFGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gaWx9LENhbWVyYU91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIFgxLlp9LENhbWVyYVR3b1RvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gUWx9LENhckZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBsaX0sQ2FyT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdjF9LENhclR3b1RvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gaDF9LENhcmV0RG93bkZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBtMS5afSxDYXJldERvd25PdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBnMS5afSxDYXJldExlZnRGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gZGx9LENhcmV0TGVmdE91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIHFpfSxDYXJldFJpZ2h0RmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIHgxfSxDYXJldFJpZ2h0T3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4ga2F9LENhcmV0VXBGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gSGx9LENhcmV0VXBPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBqby5afSxDYXJyeU91dEZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBlc30sQ2FycnlPdXRPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBic30sQ2FycnlPdXRUd29Ub25lOmZ1bmN0aW9uKCl7cmV0dXJuIE9zfSxDaGVja0NpcmNsZUZpbGxlZDpmdW5jdGlvbigpe3JldHVybiB0cy5afSxDaGVja0NpcmNsZU91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIGhsfSxDaGVja0NpcmNsZVR3b1RvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gZmN9LENoZWNrT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gcnUuWn0sQ2hlY2tTcXVhcmVGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gaGN9LENoZWNrU3F1YXJlT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gRXN9LENoZWNrU3F1YXJlVHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiBNbH0sQ2hyb21lRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIGx1fSxDaHJvbWVPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBBMX0sQ2lDaXJjbGVGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gZ2x9LENpQ2lyY2xlT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4geWN9LENpQ2lyY2xlVHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiBaMX0sQ2lPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBodX0sQ2lUd29Ub25lOmZ1bmN0aW9uKCl7cmV0dXJuIHpzfSxDbGVhck91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIG5zfSxDbG9ja0NpcmNsZUZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBifSxDbG9ja0NpcmNsZU91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIEYuWn0sQ2xvY2tDaXJjbGVUd29Ub25lOmZ1bmN0aW9uKCl7cmV0dXJuICR0fSxDbG9zZUNpcmNsZUZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBJbi5afSxDbG9zZUNpcmNsZU91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIFlyfSxDbG9zZUNpcmNsZVR3b1RvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gaG59LENsb3NlT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gVHIuWn0sQ2xvc2VTcXVhcmVGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gWW99LENsb3NlU3F1YXJlT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gRXV9LENsb3NlU3F1YXJlVHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiBQdX0sQ2xvdWREb3dubG9hZE91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIFp1fSxDbG91ZEZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBWdX0sQ2xvdWRPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBrdX0sQ2xvdWRTZXJ2ZXJPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBYdX0sQ2xvdWRTeW5jT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdDB9LENsb3VkVHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiBpMH0sQ2xvdWRVcGxvYWRPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBkMH0sQ2x1c3Rlck91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIGYwLlp9LENvZGVGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gcDB9LENvZGVPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBPMH0sQ29kZVNhbmRib3hDaXJjbGVGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gTTB9LENvZGVTYW5kYm94T3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gRjB9LENvZGVTYW5kYm94U3F1YXJlRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIEgwfSxDb2RlVHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiBqMH0sQ29kZXBlbkNpcmNsZUZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBfMH0sQ29kZXBlbkNpcmNsZU91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIEowfSxDb2RlcGVuT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gcjR9LENvZGVwZW5TcXVhcmVGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gczR9LENvZmZlZU91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIHY0fSxDb2x1bW5IZWlnaHRPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBoNC5afSxDb2x1bW5XaWR0aE91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIEM0fSxDb21tZW50T3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gYjQuWn0sQ29tcGFzc0ZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBFNH0sQ29tcGFzc091dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIFA0fSxDb21wYXNzVHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiBaNH0sQ29tcHJlc3NPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBWNH0sQ29uc29sZVNxbE91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIGs0fSxDb250YWN0c0ZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBYNH0sQ29udGFjdHNPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiB0Mn0sQ29udGFjdHNUd29Ub25lOmZ1bmN0aW9uKCl7cmV0dXJuIGkyfSxDb250YWluZXJGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gZDJ9LENvbnRhaW5lck91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIGcyfSxDb250YWluZXJUd29Ub25lOmZ1bmN0aW9uKCl7cmV0dXJuIFMyfSxDb250cm9sRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIFQyfSxDb250cm9sT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gejJ9LENvbnRyb2xUd29Ub25lOmZ1bmN0aW9uKCl7cmV0dXJuICQyfSxDb3B5RmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIE4yfSxDb3B5T3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gajIuWn0sQ29weVR3b1RvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gXzJ9LENvcHlyaWdodENpcmNsZUZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBKMn0sQ29weXJpZ2h0Q2lyY2xlT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gcjN9LENvcHlyaWdodENpcmNsZVR3b1RvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gczN9LENvcHlyaWdodE91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIGMzLlp9LENvcHlyaWdodFR3b1RvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gaDN9LENyZWRpdENhcmRGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gQzN9LENyZWRpdENhcmRPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiB3M30sQ3JlZGl0Q2FyZFR3b1RvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gSTN9LENyb3duRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIEwzfSxDcm93bk91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIFozLlp9LENyb3duVHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiBWM30sQ3VzdG9tZXJTZXJ2aWNlRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIGszfSxDdXN0b21lclNlcnZpY2VPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBYM30sQ3VzdG9tZXJTZXJ2aWNlVHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiB0OH0sRGFzaE91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIGk4fSxEYXNoYm9hcmRGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gZDh9LERhc2hib2FyZE91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIGc4fSxEYXNoYm9hcmRUd29Ub25lOmZ1bmN0aW9uKCl7cmV0dXJuIFM4fSxEYXRhYmFzZUZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBUOH0sRGF0YWJhc2VPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiB6OH0sRGF0YWJhc2VUd29Ub25lOmZ1bmN0aW9uKCl7cmV0dXJuICQ4fSxEZWxldGVDb2x1bW5PdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBOOH0sRGVsZXRlRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIEs4fSxEZWxldGVPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBfOC5afSxEZWxldGVSb3dPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBKOH0sRGVsZXRlVHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiByNn0sRGVsaXZlcmVkUHJvY2VkdXJlT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gczZ9LERlcGxveW1lbnRVbml0T3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdjZ9LERlc2t0b3BPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiB5Nn0sRGlmZkZpbGxlZDpmdW5jdGlvbigpe3JldHVybiB4Nn0sRGlmZk91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIFI2fSxEaWZmVHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiBBNn0sRGluZ2RpbmdPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBENn0sRGluZ3RhbGtDaXJjbGVGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gVTZ9LERpbmd0YWxrT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gRzZ9LERpbmd0YWxrU3F1YXJlRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIHE2fSxEaXNjb25uZWN0T3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gYWR9LERpc2NvcmRGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gY2R9LERpc2NvcmRPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBoZH0sRGlzbGlrZUZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBDZH0sRGlzbGlrZU91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIHdkfSxEaXNsaWtlVHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiBJZH0sRG9ja2VyT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gTGR9LERvbGxhckNpcmNsZUZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBCZH0sRG9sbGFyQ2lyY2xlT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gV2R9LERvbGxhckNpcmNsZVR3b1RvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gWWR9LERvbGxhck91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIGVmfSxEb2xsYXJUd29Ub25lOmZ1bmN0aW9uKCl7cmV0dXJuIG9mfSxEb3RDaGFydE91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIGRmfSxEb3ROZXRPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBnZn0sRG91YmxlTGVmdE91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIHBmLlp9LERvdWJsZVJpZ2h0T3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4geWYuWn0sRG93bkNpcmNsZUZpbGxlZDpmdW5jdGlvbigpe3JldHVybiB4Zn0sRG93bkNpcmNsZU91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIFJmfSxEb3duQ2lyY2xlVHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiBBZn0sRG93bk91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIExmLlp9LERvd25TcXVhcmVGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gQmZ9LERvd25TcXVhcmVPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBXZn0sRG93blNxdWFyZVR3b1RvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gWWZ9LERvd25sb2FkT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gWGYuWn0sRHJhZ091dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIHQ1fSxEcmliYmJsZUNpcmNsZUZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBpNX0sRHJpYmJibGVPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBkNX0sRHJpYmJibGVTcXVhcmVGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gZzV9LERyaWJiYmxlU3F1YXJlT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gUzV9LERyb3Bib3hDaXJjbGVGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gVDV9LERyb3Bib3hPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiB6NX0sRHJvcGJveFNxdWFyZUZpbGxlZDpmdW5jdGlvbigpe3JldHVybiAkNX0sRWRpdEZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBONX0sRWRpdE91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIGo1Llp9LEVkaXRUd29Ub25lOmZ1bmN0aW9uKCl7cmV0dXJuIF81fSxFbGxpcHNpc091dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIEc1Llp9LEVudGVyT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gWTUuWn0sRW52aXJvbm1lbnRGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gZXZ9LEVudmlyb25tZW50T3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gb3Z9LEVudmlyb25tZW50VHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiB1dn0sRXVyb0NpcmNsZUZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBtdn0sRXVyb0NpcmNsZU91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIGJ2fSxFdXJvQ2lyY2xlVHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiBFdn0sRXVyb091dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIFB2fSxFdXJvVHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiBadn0sRXhjZXB0aW9uT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gVnZ9LEV4Y2xhbWF0aW9uQ2lyY2xlRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIE52Llp9LEV4Y2xhbWF0aW9uQ2lyY2xlT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4ganYuWn0sRXhjbGFtYXRpb25DaXJjbGVUd29Ub25lOmZ1bmN0aW9uKCl7cmV0dXJuIF92fSxFeGNsYW1hdGlvbk91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIEp2fSxFeHBhbmRBbHRPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiByN30sRXhwYW5kT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gczd9LEV4cGVyaW1lbnRGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdjd9LEV4cGVyaW1lbnRPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiB5N30sRXhwZXJpbWVudFR3b1RvbmU6ZnVuY3Rpb24oKXtyZXR1cm4geDd9LEV4cG9ydE91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIFI3fSxFeWVGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gQTd9LEV5ZUludmlzaWJsZUZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBEN30sRXllSW52aXNpYmxlT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gQjcuWn0sRXllSW52aXNpYmxlVHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiBXN30sRXllT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gazcuWn0sRXllVHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiBYN30sRmFjZWJvb2tGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdDl9LEZhY2Vib29rT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gaTl9LEZhbGxPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBkOX0sRmFzdEJhY2t3YXJkRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIGc5fSxGYXN0QmFja3dhcmRPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBTOX0sRmFzdEZvcndhcmRGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gVDl9LEZhc3RGb3J3YXJkT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gejl9LEZpZWxkQmluYXJ5T3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gJDl9LEZpZWxkTnVtYmVyT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gTjl9LEZpZWxkU3RyaW5nT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gSzl9LEZpZWxkVGltZU91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIFE5fSxGaWxlQWRkRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIG5ofSxGaWxlQWRkT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gbGh9LEZpbGVBZGRUd29Ub25lOmZ1bmN0aW9uKCl7cmV0dXJuIGZofSxGaWxlRG9uZU91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIHBofSxGaWxlRXhjZWxGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gT2h9LEZpbGVFeGNlbE91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIE1ofSxGaWxlRXhjZWxUd29Ub25lOmZ1bmN0aW9uKCl7cmV0dXJuIEZofSxGaWxlRXhjbGFtYXRpb25GaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gSGh9LEZpbGVFeGNsYW1hdGlvbk91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIGpofSxGaWxlRXhjbGFtYXRpb25Ud29Ub25lOmZ1bmN0aW9uKCl7cmV0dXJuIF9ofSxGaWxlRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIEpofSxGaWxlR2lmT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gcm19LEZpbGVJbWFnZUZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBzbX0sRmlsZUltYWdlT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdm19LEZpbGVJbWFnZVR3b1RvbmU6ZnVuY3Rpb24oKXtyZXR1cm4geW19LEZpbGVKcGdPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiB4bX0sRmlsZU1hcmtkb3duRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIFJtfSxGaWxlTWFya2Rvd25PdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBBbX0sRmlsZU1hcmtkb3duVHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiBEbX0sRmlsZU91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIEJtLlp9LEZpbGVQZGZGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gV219LEZpbGVQZGZPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBZbX0sRmlsZVBkZlR3b1RvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gZWd9LEZpbGVQcHRGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gb2d9LEZpbGVQcHRPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiB1Z30sRmlsZVBwdFR3b1RvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gbWd9LEZpbGVQcm90ZWN0T3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gYmd9LEZpbGVTZWFyY2hPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBFZ30sRmlsZVN5bmNPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBQZ30sRmlsZVRleHRGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gWmd9LEZpbGVUZXh0T3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gVmd9LEZpbGVUZXh0VHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiBrZ30sRmlsZVR3b1RvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gS2cuWn0sRmlsZVVua25vd25GaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gUWd9LEZpbGVVbmtub3duT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gbnB9LEZpbGVVbmtub3duVHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiBscH0sRmlsZVdvcmRGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gZnB9LEZpbGVXb3JkT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gcHB9LEZpbGVXb3JkVHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiBPcH0sRmlsZVppcEZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBNcH0sRmlsZVppcE91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIEZwfSxGaWxlWmlwVHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiBIcH0sRmlsdGVyRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIERwLlp9LEZpbHRlck91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIEJwLlp9LEZpbHRlclR3b1RvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gV3B9LEZpcmVGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gWXB9LEZpcmVPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBleX0sRmlyZVR3b1RvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gb3l9LEZsYWdGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdXl9LEZsYWdPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBteX0sRmxhZ1R3b1RvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gYnl9LEZvbGRlckFkZEZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBFeX0sRm9sZGVyQWRkT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gUHl9LEZvbGRlckFkZFR3b1RvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gWnl9LEZvbGRlckZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBWeX0sRm9sZGVyT3BlbkZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBreX0sRm9sZGVyT3Blbk91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIEt5Llp9LEZvbGRlck9wZW5Ud29Ub25lOmZ1bmN0aW9uKCl7cmV0dXJuIFF5fSxGb2xkZXJPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBKeS5afSxGb2xkZXJUd29Ub25lOmZ1bmN0aW9uKCl7cmV0dXJuIHJDfSxGb2xkZXJWaWV3T3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gc0N9LEZvbnRDb2xvcnNPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiB2Q30sRm9udFNpemVPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiB5Q30sRm9ya091dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIHhDfSxGb3JtT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gUkN9LEZvcm1hdFBhaW50ZXJGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gQUN9LEZvcm1hdFBhaW50ZXJPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBEQ30sRm9yd2FyZEZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBVQ30sRm9yd2FyZE91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIEdDfSxGcm93bkZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBxQ30sRnJvd25PdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBhYn0sRnJvd25Ud29Ub25lOmZ1bmN0aW9uKCl7cmV0dXJuIGNifSxGdWxsc2NyZWVuRXhpdE91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIHViLlp9LEZ1bGxzY3JlZW5PdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBkYi5afSxGdW5jdGlvbk91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIGdifSxGdW5kRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIFNifSxGdW5kT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gVGJ9LEZ1bmRQcm9qZWN0aW9uU2NyZWVuT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gemJ9LEZ1bmRUd29Ub25lOmZ1bmN0aW9uKCl7cmV0dXJuICRifSxGdW5kVmlld091dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIE5ifSxGdW5uZWxQbG90RmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIEtifSxGdW5uZWxQbG90T3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gUWJ9LEZ1bm5lbFBsb3RUd29Ub25lOmZ1bmN0aW9uKCl7cmV0dXJuIG5TfSxHYXRld2F5T3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gbFN9LEdpZk91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIGZTfSxHaWZ0RmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIHBTfSxHaWZ0T3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gT1N9LEdpZnRUd29Ub25lOmZ1bmN0aW9uKCl7cmV0dXJuIFJTfSxHaXRodWJGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gQVN9LEdpdGh1Yk91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIExTLlp9LEdpdGxhYkZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBCU30sR2l0bGFiT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gV1N9LEdsb2JhbE91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIFlTfSxHb2xkRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIGVPfSxHb2xkT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gb099LEdvbGRUd29Ub25lOmZ1bmN0aW9uKCl7cmV0dXJuIHVPfSxHb2xkZW5GaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gbU99LEdvb2dsZUNpcmNsZUZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBiT30sR29vZ2xlT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gRU99LEdvb2dsZVBsdXNDaXJjbGVGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gUE99LEdvb2dsZVBsdXNPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBaT30sR29vZ2xlUGx1c1NxdWFyZUZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBWT30sR29vZ2xlU3F1YXJlRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIGtPfSxHcm91cE91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIFhPfSxIYXJtb255T1NPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiB0eH0sSGRkRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIGl4fSxIZGRPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBkeH0sSGRkVHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiBneH0sSGVhcnRGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gcHguWn0sSGVhcnRPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiB5eC5afSxIZWFydFR3b1RvbmU6ZnVuY3Rpb24oKXtyZXR1cm4geHh9LEhlYXRNYXBPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBSeH0sSGlnaGxpZ2h0RmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIEF4fSxIaWdobGlnaHRPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBEeH0sSGlnaGxpZ2h0VHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiBVeH0sSGlzdG9yeU91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIEd4fSxIb2xkZXJPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBZeC5afSxIb21lRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIGV3fSxIb21lT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gb3d9LEhvbWVUd29Ub25lOmZ1bmN0aW9uKCl7cmV0dXJuIHV3fSxIb3VyZ2xhc3NGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gbXd9LEhvdXJnbGFzc091dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIGJ3fSxIb3VyZ2xhc3NUd29Ub25lOmZ1bmN0aW9uKCl7cmV0dXJuIEV3fSxIdG1sNUZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBQd30sSHRtbDVPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBad30sSHRtbDVUd29Ub25lOmZ1bmN0aW9uKCl7cmV0dXJuIFZ3fSxJY29uUHJvdmlkZXI6ZnVuY3Rpb24oKXtyZXR1cm4gSm9lfSxJZGNhcmRGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4ga3d9LElkY2FyZE91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIFh3fSxJZGNhcmRUd29Ub25lOmZ1bmN0aW9uKCl7cmV0dXJuIHRFfSxJZUNpcmNsZUZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBpRX0sSWVPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBkRX0sSWVTcXVhcmVGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gZ0V9LEltcG9ydE91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIFNFfSxJbmJveE91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIE9FLlp9LEluZm9DaXJjbGVGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4geEUuWn0sSW5mb0NpcmNsZU91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIHdFLlp9LEluZm9DaXJjbGVUd29Ub25lOmZ1bmN0aW9uKCl7cmV0dXJuIElFfSxJbmZvT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gTEV9LEluc2VydFJvd0Fib3ZlT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gQkV9LEluc2VydFJvd0JlbG93T3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gV0V9LEluc2VydFJvd0xlZnRPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBZRX0sSW5zZXJ0Um93UmlnaHRPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBlVH0sSW5zdGFncmFtRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIG9UfSxJbnN0YWdyYW1PdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiB1VH0sSW5zdXJhbmNlRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIG1UfSxJbnN1cmFuY2VPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBiVH0sSW5zdXJhbmNlVHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiBFVH0sSW50ZXJhY3Rpb25GaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gUFR9LEludGVyYWN0aW9uT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gWlR9LEludGVyYWN0aW9uVHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiBWVH0sSXNzdWVzQ2xvc2VPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBrVH0sSXRhbGljT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gWFR9LEphdmFPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiB0TX0sSmF2YVNjcmlwdE91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIGlNfSxLZXlPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBkTX0sS3ViZXJuZXRlc091dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIGdNfSxMYXB0b3BPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBTTX0sTGF5b3V0RmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIFRNfSxMYXlvdXRPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiB6TX0sTGF5b3V0VHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiAkTX0sTGVmdENpcmNsZUZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBOTX0sTGVmdENpcmNsZU91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIEtNfSxMZWZ0Q2lyY2xlVHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiBRTX0sTGVmdE91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIEpNLlp9LExlZnRTcXVhcmVGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gclJ9LExlZnRTcXVhcmVPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBzUn0sTGVmdFNxdWFyZVR3b1RvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gdlJ9LExpa2VGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4geVJ9LExpa2VPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBDUi5afSxMaWtlVHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiB3Un0sTGluZUNoYXJ0T3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gSVJ9LExpbmVIZWlnaHRPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBMUn0sTGluZU91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIEJSfSxMaW5rT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gVlIuWn0sTGlua2VkaW5GaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4ga1J9LExpbmtlZGluT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gWFJ9LExpbnV4T3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdEl9LExvYWRpbmczUXVhcnRlcnNPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBpSX0sTG9hZGluZ091dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIGxJLlp9LExvY2tGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gZkl9LExvY2tPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiB2SS5afSxMb2NrVHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiB5SX0sTG9naW5PdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiB4SX0sTG9nb3V0T3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gd0kuWn0sTWFjQ29tbWFuZEZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBJSX0sTWFjQ29tbWFuZE91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIExJfSxNYWlsRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIEJJfSxNYWlsT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gVkkuWn0sTWFpbFR3b1RvbmU6ZnVuY3Rpb24oKXtyZXR1cm4ga0l9LE1hbk91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIEtJLlp9LE1lZGljaW5lQm94RmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIFFJfSxNZWRpY2luZUJveE91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIG5QfSxNZWRpY2luZUJveFR3b1RvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gbFB9LE1lZGl1bUNpcmNsZUZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBmUH0sTWVkaXVtT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gcFB9LE1lZGl1bVNxdWFyZUZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBPUH0sTWVkaXVtV29ya21hcmtPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBNUH0sTWVoRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIEZQfSxNZWhPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBIUH0sTWVoVHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiBqUH0sTWVudUZvbGRPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBfUH0sTWVudU91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIEdQLlp9LE1lbnVVbmZvbGRPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBxUH0sTWVyZ2VDZWxsc091dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIGF6fSxNZXJnZUZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBjen0sTWVyZ2VPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBoen0sTWVzc2FnZUZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBDen0sTWVzc2FnZU91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIHd6fSxNZXNzYWdlVHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiBJen0sTWludXNDaXJjbGVGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gTHp9LE1pbnVzQ2lyY2xlT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gQnp9LE1pbnVzQ2lyY2xlVHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiBXen0sTWludXNPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBrei5afSxNaW51c1NxdWFyZUZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBYen0sTWludXNTcXVhcmVPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBRei5afSxNaW51c1NxdWFyZVR3b1RvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gbkZ9LE1vYmlsZUZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBsRn0sTW9iaWxlT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gc0YuWn0sTW9iaWxlVHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiB2Rn0sTW9uZXlDb2xsZWN0RmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIHlGfSxNb25leUNvbGxlY3RPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiB4Rn0sTW9uZXlDb2xsZWN0VHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiBSRn0sTW9uaXRvck91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIEFGfSxNb29uRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIERGfSxNb29uT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gVUZ9LE1vcmVPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBHRn0sTXV0ZWRGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gcUZ9LE11dGVkT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gYUF9LE5vZGVDb2xsYXBzZU91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIGNBfSxOb2RlRXhwYW5kT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gaEF9LE5vZGVJbmRleE91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIENBfSxOb3RpZmljYXRpb25GaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gd0F9LE5vdGlmaWNhdGlvbk91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIEVBLlp9LE5vdGlmaWNhdGlvblR3b1RvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gUEF9LE51bWJlck91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIFpBfSxPbmVUb09uZU91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIFZBfSxPcGVuQUlGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4ga0F9LE9wZW5BSU91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIFhBfSxPcmRlcmVkTGlzdE91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIHRMfSxQYXBlckNsaXBPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBuTC5afSxQYXJ0aXRpb25PdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBsTH0sUGF1c2VDaXJjbGVGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gZkx9LFBhdXNlQ2lyY2xlT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gcEx9LFBhdXNlQ2lyY2xlVHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiBPTH0sUGF1c2VPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBNTH0sUGF5Q2lyY2xlRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIEZMfSxQYXlDaXJjbGVPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBITH0sUGVyY2VudGFnZU91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIGpMfSxQaG9uZUZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBfTH0sUGhvbmVPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBKTH0sUGhvbmVUd29Ub25lOmZ1bmN0aW9uKCl7cmV0dXJuIHJafSxQaWNDZW50ZXJPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBzWn0sUGljTGVmdE91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIHZafSxQaWNSaWdodE91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIHlafSxQaWN0dXJlRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIHhafSxQaWN0dXJlT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gUlp9LFBpY3R1cmVUd29Ub25lOmZ1bmN0aW9uKCl7cmV0dXJuIElaLlp9LFBpZUNoYXJ0RmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIExafSxQaWVDaGFydE91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIEJafSxQaWVDaGFydFR3b1RvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gV1p9LFBpbnRlcmVzdEZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBZWn0sUGludGVyZXN0T3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gZSR9LFBsYXlDaXJjbGVGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gbyR9LFBsYXlDaXJjbGVPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiB1JH0sUGxheUNpcmNsZVR3b1RvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gbSR9LFBsYXlTcXVhcmVGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gYiR9LFBsYXlTcXVhcmVPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBFJH0sUGxheVNxdWFyZVR3b1RvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gUCR9LFBsdXNDaXJjbGVGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gWiR9LFBsdXNDaXJjbGVPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBWJH0sUGx1c0NpcmNsZVR3b1RvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gayR9LFBsdXNPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBLJC5afSxQbHVzU3F1YXJlRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIFEkfSxQbHVzU3F1YXJlT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gSiQuWn0sUGx1c1NxdWFyZVR3b1RvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gckh9LFBvdW5kQ2lyY2xlRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIHNIfSxQb3VuZENpcmNsZU91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIHZIfSxQb3VuZENpcmNsZVR3b1RvbmU6ZnVuY3Rpb24oKXtyZXR1cm4geUh9LFBvdW5kT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4geEh9LFBvd2Vyb2ZmT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gUkh9LFByaW50ZXJGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gQUh9LFByaW50ZXJPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBESH0sUHJpbnRlclR3b1RvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gVUh9LFByb2R1Y3RGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gR0h9LFByb2R1Y3RPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBxSH0sUHJvZmlsZUZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBhRH0sUHJvZmlsZU91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIGNEfSxQcm9maWxlVHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiBoRH0sUHJvamVjdEZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBDRH0sUHJvamVjdE91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIHdEfSxQcm9qZWN0VHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiBJRH0sUHJvcGVydHlTYWZldHlGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gTER9LFByb3BlcnR5U2FmZXR5T3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gQkR9LFByb3BlcnR5U2FmZXR5VHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiBXRH0sUHVsbFJlcXVlc3RPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBZRH0sUHVzaHBpbkZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBlQn0sUHVzaHBpbk91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIG9CfSxQdXNocGluVHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiB1Qn0sUHl0aG9uT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gbUJ9LFFxQ2lyY2xlRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIGJCfSxRcU91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIEVCfSxRcVNxdWFyZUZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBQQn0sUXJjb2RlT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gWkJ9LFF1ZXN0aW9uQ2lyY2xlRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIFZCfSxRdWVzdGlvbkNpcmNsZU91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIE5CLlp9LFF1ZXN0aW9uQ2lyY2xlVHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiBLQn0sUXVlc3Rpb25PdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBRQn0sUmFkYXJDaGFydE91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIG5WfSxSYWRpdXNCb3R0b21sZWZ0T3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gbFZ9LFJhZGl1c0JvdHRvbXJpZ2h0T3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gZlZ9LFJhZGl1c1NldHRpbmdPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBwVn0sUmFkaXVzVXBsZWZ0T3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gT1Z9LFJhZGl1c1VwcmlnaHRPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBNVn0sUmVhZEZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBGVn0sUmVhZE91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuICRWfSxSZWNvbmNpbGlhdGlvbkZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBOVn0sUmVjb25jaWxpYXRpb25PdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBLVn0sUmVjb25jaWxpYXRpb25Ud29Ub25lOmZ1bmN0aW9uKCl7cmV0dXJuIFFWfSxSZWRFbnZlbG9wZUZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBuTn0sUmVkRW52ZWxvcGVPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBsTn0sUmVkRW52ZWxvcGVUd29Ub25lOmZ1bmN0aW9uKCl7cmV0dXJuIGZOfSxSZWRkaXRDaXJjbGVGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gcE59LFJlZGRpdE91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIE9OfSxSZWRkaXRTcXVhcmVGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gTU59LFJlZG9PdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBSTi5afSxSZWxvYWRPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBJTi5afSxSZXN0RmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIExOfSxSZXN0T3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gQk59LFJlc3RUd29Ub25lOmZ1bmN0aW9uKCl7cmV0dXJuIFdOfSxSZXR3ZWV0T3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gWU59LFJpZ2h0Q2lyY2xlRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIGVqfSxSaWdodENpcmNsZU91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIG9qfSxSaWdodENpcmNsZVR3b1RvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gdWp9LFJpZ2h0T3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gZGouWn0sUmlnaHRTcXVhcmVGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gZ2p9LFJpZ2h0U3F1YXJlT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gU2p9LFJpZ2h0U3F1YXJlVHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiBUan0sUmlzZU91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIHpqfSxSb2JvdEZpbGxlZDpmdW5jdGlvbigpe3JldHVybiAkan0sUm9ib3RPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBOan0sUm9ja2V0RmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIEtqfSxSb2NrZXRPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBRan0sUm9ja2V0VHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiBuVX0sUm9sbGJhY2tPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiByVS5afSxSb3RhdGVMZWZ0T3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gYVUuWn0sUm90YXRlUmlnaHRPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBvVS5afSxSdWJ5T3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdVV9LFNhZmV0eUNlcnRpZmljYXRlRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIG1VfSxTYWZldHlDZXJ0aWZpY2F0ZU91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIGJVfSxTYWZldHlDZXJ0aWZpY2F0ZVR3b1RvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gRVV9LFNhZmV0eU91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIFBVfSxTYXZlRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIFpVfSxTYXZlT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gVlV9LFNhdmVUd29Ub25lOmZ1bmN0aW9uKCl7cmV0dXJuIGtVfSxTY2FuT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gWFV9LFNjaGVkdWxlRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIHRXfSxTY2hlZHVsZU91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIGlXfSxTY2hlZHVsZVR3b1RvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gZFd9LFNjaXNzb3JPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBnV30sU2VhcmNoT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gcFcuWn0sU2VjdXJpdHlTY2FuRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIE9XfSxTZWN1cml0eVNjYW5PdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBNV30sU2VjdXJpdHlTY2FuVHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiBGV30sU2VsZWN0T3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gSFd9LFNlbmRPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBqV30sU2V0dGluZ0ZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBfV30sU2V0dGluZ091dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIEdXLlp9LFNldHRpbmdUd29Ub25lOmZ1bmN0aW9uKCl7cmV0dXJuIHFXfSxTaGFrZU91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIGFrfSxTaGFyZUFsdE91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIGNrfSxTaG9wRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIGhrfSxTaG9wT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gQ2t9LFNob3BUd29Ub25lOmZ1bmN0aW9uKCl7cmV0dXJuIHdrfSxTaG9wcGluZ0NhcnRPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBJa30sU2hvcHBpbmdGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gTGt9LFNob3BwaW5nT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gQmt9LFNob3BwaW5nVHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiBXa30sU2hyaW5rT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gWWt9LFNpZ25hbEZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBlS30sU2lnbmF0dXJlRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIG9LfSxTaWduYXR1cmVPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiB1S30sU2lzdGVybm9kZU91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIG1LfSxTa2V0Y2hDaXJjbGVGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gYkt9LFNrZXRjaE91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIEVLfSxTa2V0Y2hTcXVhcmVGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gUEt9LFNraW5GaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gWkt9LFNraW5PdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBWS30sU2tpblR3b1RvbmU6ZnVuY3Rpb24oKXtyZXR1cm4ga0t9LFNreXBlRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIFhLfSxTa3lwZU91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIHRffSxTbGFja0NpcmNsZUZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBpX30sU2xhY2tPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBkX30sU2xhY2tTcXVhcmVGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gZ199LFNsYWNrU3F1YXJlT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gU199LFNsaWRlcnNGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gVF99LFNsaWRlcnNPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiB6X30sU2xpZGVyc1R3b1RvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gJF99LFNtYWxsRGFzaE91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIE5ffSxTbWlsZUZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBLX30sU21pbGVPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBRX30sU21pbGVUd29Ub25lOmZ1bmN0aW9uKCl7cmV0dXJuIG5HfSxTbmlwcGV0c0ZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBsR30sU25pcHBldHNPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBmR30sU25pcHBldHNUd29Ub25lOmZ1bmN0aW9uKCl7cmV0dXJuIHBHfSxTb2x1dGlvbk91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIE9HfSxTb3J0QXNjZW5kaW5nT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gTUd9LFNvcnREZXNjZW5kaW5nT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gRkd9LFNvdW5kRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIEhHfSxTb3VuZE91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIGpHfSxTb3VuZFR3b1RvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gX0d9LFNwbGl0Q2VsbHNPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBKR30sU3BvdGlmeUZpbGxlZDpmdW5jdGlvbigpe3JldHVybiByWX0sU3BvdGlmeU91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIHNZfSxTdGFyRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIGNZLlp9LFN0YXJPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBoWX0sU3RhclR3b1RvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gQ1l9LFN0ZXBCYWNrd2FyZEZpbGxlZDpmdW5jdGlvbigpe3JldHVybiB3WX0sU3RlcEJhY2t3YXJkT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gSVl9LFN0ZXBGb3J3YXJkRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIExZfSxTdGVwRm9yd2FyZE91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIEJZfSxTdG9ja091dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIFdZfSxTdG9wRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIFlZfSxTdG9wT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gZVh9LFN0b3BUd29Ub25lOmZ1bmN0aW9uKCl7cmV0dXJuIG9YfSxTdHJpa2V0aHJvdWdoT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdVh9LFN1Ym5vZGVPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBtWH0sU3VuRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIGJYfSxTdW5PdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBFWH0sU3dhcExlZnRPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBQWH0sU3dhcE91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIHpYLlp9LFN3YXBSaWdodE91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIEZYLlp9LFN3aXRjaGVyRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIEhYfSxTd2l0Y2hlck91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIGpYfSxTd2l0Y2hlclR3b1RvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gX1h9LFN5bmNPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBKWH0sVGFibGVPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiByUX0sVGFibGV0RmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIHNRfSxUYWJsZXRPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiB2UX0sVGFibGV0VHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiB5UX0sVGFnRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIHhRfSxUYWdPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiB3US5afSxUYWdUd29Ub25lOmZ1bmN0aW9uKCl7cmV0dXJuIElRfSxUYWdzRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIExRfSxUYWdzT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gQlF9LFRhZ3NUd29Ub25lOmZ1bmN0aW9uKCl7cmV0dXJuIFdRfSxUYW9iYW9DaXJjbGVGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gWVF9LFRhb2Jhb0NpcmNsZU91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIGVKfSxUYW9iYW9PdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBvSn0sVGFvYmFvU3F1YXJlRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIHVKfSxUZWFtT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gZEouWn0sVGh1bmRlcmJvbHRGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gZ0p9LFRodW5kZXJib2x0T3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gU0p9LFRodW5kZXJib2x0VHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiBUSn0sVGlrVG9rRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIHpKfSxUaWtUb2tPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiAkSn0sVG9Ub3BPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBOSn0sVG9vbEZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBLSn0sVG9vbE91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIFFKfSxUb29sVHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiBucX0sVHJhZGVtYXJrQ2lyY2xlRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIGxxfSxUcmFkZW1hcmtDaXJjbGVPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBmcX0sVHJhZGVtYXJrQ2lyY2xlVHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiBwcX0sVHJhZGVtYXJrT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gT3F9LFRyYW5zYWN0aW9uT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gTXF9LFRyYW5zbGF0aW9uT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gRnF9LFRyb3BoeUZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBIcX0sVHJvcGh5T3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4ganF9LFRyb3BoeVR3b1RvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gX3F9LFRydWNrRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIEpxfSxUcnVja091dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIHJlZX0sVHdpdGNoRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIHNlZX0sVHdpdGNoT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdmVlfSxUd2l0dGVyQ2lyY2xlRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIHllZX0sVHdpdHRlck91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIHhlZX0sVHdpdHRlclNxdWFyZUZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBSZWV9LFVuZGVybGluZU91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIEFlZX0sVW5kb091dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIExlZS5afSxVbmdyb3VwT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gQmVlfSxVbmxvY2tGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gV2VlfSxVbmxvY2tPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBrZWUuWn0sVW5sb2NrVHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiBYZWV9LFVub3JkZXJlZExpc3RPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiB0dGV9LFVwQ2lyY2xlRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIGl0ZX0sVXBDaXJjbGVPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBkdGV9LFVwQ2lyY2xlVHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiBndGV9LFVwT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gcHRlLlp9LFVwU3F1YXJlRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIE90ZX0sVXBTcXVhcmVPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBNdGV9LFVwU3F1YXJlVHdvVG9uZTpmdW5jdGlvbigpe3JldHVybiBGdGV9LFVwbG9hZE91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIEF0ZS5afSxVc2JGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gRHRlfSxVc2JPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBVdGV9LFVzYlR3b1RvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gR3RlfSxVc2VyQWRkT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gcXRlfSxVc2VyRGVsZXRlT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gYW5lfSxVc2VyT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gb25lLlp9LFVzZXJTd2l0Y2hPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiB1bmV9LFVzZXJncm91cEFkZE91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIG1uZX0sVXNlcmdyb3VwRGVsZXRlT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gYm5lfSxWZXJpZmllZE91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIEVuZX0sVmVydGljYWxBbGlnbkJvdHRvbU91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIFRuZS5afSxWZXJ0aWNhbEFsaWduTWlkZGxlT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gTW5lLlp9LFZlcnRpY2FsQWxpZ25Ub3BPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBSbmUuWn0sVmVydGljYWxMZWZ0T3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gQW5lfSxWZXJ0aWNhbFJpZ2h0T3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gRG5lfSxWaWRlb0NhbWVyYUFkZE91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIFVuZX0sVmlkZW9DYW1lcmFGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gR25lfSxWaWRlb0NhbWVyYU91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIHFuZX0sVmlkZW9DYW1lcmFUd29Ub25lOmZ1bmN0aW9uKCl7cmV0dXJuIGFyZX0sV2FsbGV0RmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIGNyZX0sV2FsbGV0T3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gaHJlfSxXYWxsZXRUd29Ub25lOmZ1bmN0aW9uKCl7cmV0dXJuIENyZX0sV2FybmluZ0ZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBicmUuWn0sV2FybmluZ091dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIEVyZX0sV2FybmluZ1R3b1RvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gUHJlfSxXZWNoYXRGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gWnJlfSxXZWNoYXRPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBWcmV9LFdlY2hhdFdvcmtGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4ga3JlfSxXZWNoYXRXb3JrT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gWHJlfSxXZWlib0NpcmNsZUZpbGxlZDpmdW5jdGlvbigpe3JldHVybiB0YWV9LFdlaWJvQ2lyY2xlT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gaWFlfSxXZWlib091dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIGRhZX0sV2VpYm9TcXVhcmVGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gZ2FlfSxXZWlib1NxdWFyZU91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIFNhZX0sV2hhdHNBcHBPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBUYWV9LFdpZmlPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiB6YWV9LFdpbmRvd3NGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gJGFlfSxXaW5kb3dzT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gTmFlfSxXb21hbk91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIEthZX0sWEZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBRYWV9LFhPdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBub2V9LFlhaG9vRmlsbGVkOmZ1bmN0aW9uKCl7cmV0dXJuIGxvZX0sWWFob29PdXRsaW5lZDpmdW5jdGlvbigpe3JldHVybiBmb2V9LFlvdXR1YmVGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gcG9lfSxZb3V0dWJlT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gT29lfSxZdXF1ZUZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBNb2V9LFl1cXVlT3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gRm9lfSxaaGlodUNpcmNsZUZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBIb2V9LFpoaWh1T3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gam9lfSxaaGlodVNxdWFyZUZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBfb2V9LFpvb21Jbk91dGxpbmVkOmZ1bmN0aW9uKCl7cmV0dXJuIEdvZS5afSxab29tT3V0T3V0bGluZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gWW9lLlp9LGNyZWF0ZUZyb21JY29uZm9udENOOmZ1bmN0aW9uKCl7cmV0dXJuIFhvZS5afSxkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuIFFvZS5afSxnZXRUd29Ub25lQ29sb3I6ZnVuY3Rpb24oKXtyZXR1cm4gYnUubX0sc2V0VHdvVG9uZUNvbG9yOmZ1bmN0aW9uKCl7cmV0dXJuIGJ1LlV9fSk7dmFyIHI9ZSg2MzAxNyksbj1lKDg3NDYyKSx0PWUoNjcyOTQpLGk9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxODRINzEydi02NGMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NjRIMzg0di02NGMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NjRIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY2NjRjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjIxNmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNjQ4LjMgNDI2LjhsLTg3LjcgMTYxLjFoNDUuN2M1LjUgMCAxMCA0LjUgMTAgMTB2MjEuM2MwIDUuNS00LjUgMTAtMTAgMTBoLTYzLjR2MjkuN2g2My40YzUuNSAwIDEwIDQuNSAxMCAxMHYyMS4zYzAgNS41LTQuNSAxMC0xMCAxMGgtNjMuNFY3NTJjMCA1LjUtNC41IDEwLTEwIDEwaC00MS4zYy01LjUgMC0xMC00LjUtMTAtMTB2LTUxLjhoLTYzLjFjLTUuNSAwLTEwLTQuNS0xMC0xMHYtMjEuM2MwLTUuNSA0LjUtMTAgMTAtMTBoNjMuMXYtMjkuN2gtNjMuMWMtNS41IDAtMTAtNC41LTEwLTEwdi0yMS4zYzAtNS41IDQuNS0xMCAxMC0xMGg0NS4ybC04OC0xNjEuMWMtMi42LTQuOC0uOS0xMC45IDQtMTMuNiAxLjUtLjggMy4xLTEuMiA0LjgtMS4yaDQ2YzMuOCAwIDcuMiAyLjEgOC45IDUuNWw3Mi45IDE0NC4zIDczLjItMTQ0LjNhMTAgMTAgMCAwMTguOS01LjVoNDVjNS41IDAgMTAgNC41IDEwIDEwIC4xIDEuNy0uMyAzLjMtMS4xIDQuOHoifX1dfSxuYW1lOiJhY2NvdW50LWJvb2siLHRoZW1lOiJmaWxsZWQifSxzPWksYT1lKDEzNDAxKSx1PWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOnN9KSl9LGM9dC5mb3J3YXJkUmVmKHUpLGg9YyxkPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMTg0SDcxMnYtNjRjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djY0SDM4NHYtNjRjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djY0SDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYyMTZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA2NTZIMTg0VjI1NmgxMjh2NDhjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNDhoMjU2djQ4YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTQ4aDEyOHY1ODR6TTYzOS41IDQxNGgtNDVjLTMgMC01LjggMS43LTcuMSA0LjRMNTE0IDU2My44aC0yLjhsLTczLjQtMTQ1LjRhOCA4IDAgMDAtNy4xLTQuNGgtNDZjLTEuMyAwLTIuNy4zLTMuOCAxLTMuOSAyLjEtNS4zIDctMy4yIDEwLjlsODkuMyAxNjRoLTQ4LjZjLTQuNCAwLTggMy42LTggOHYyMS4zYzAgNC40IDMuNiA4IDggOGg2NS4xdjMzLjdoLTY1LjFjLTQuNCAwLTggMy42LTggOHYyMS4zYzAgNC40IDMuNiA4IDggOGg2NS4xVjc1MmMwIDQuNCAzLjYgOCA4IDhoNDEuM2M0LjQgMCA4LTMuNiA4LTh2LTUzLjhoNjUuNGM0LjQgMCA4LTMuNiA4LTh2LTIxLjNjMC00LjQtMy42LTgtOC04aC02NS40di0zMy43aDY1LjRjNC40IDAgOC0zLjYgOC04di0yMS4zYzAtNC40LTMuNi04LTgtOGgtNDkuMWw4OS4zLTE2NC4xYy42LTEuMiAxLTIuNSAxLTMuOC4xLTQuNC0zLjQtOC03LjktOHoifX1dfSxuYW1lOiJhY2NvdW50LWJvb2siLHRoZW1lOiJvdXRsaW5lZCJ9LG09ZCxDPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOm19KSl9LGc9dC5mb3J3YXJkUmVmKEMpLHc9ZyxFPXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTcxMiAzMDRjMCA0LjQtMy42IDgtOCA4aC01NmMtNC40IDAtOC0zLjYtOC04di00OEgzODR2NDhjMCA0LjQtMy42IDgtOCA4aC01NmMtNC40IDAtOC0zLjYtOC04di00OEgxODR2NTg0aDY1NlYyNTZINzEydjQ4em0tNjUuNiAxMjEuOGwtODkuMyAxNjQuMWg0OS4xYzQuNCAwIDggMy42IDggOHYyMS4zYzAgNC40LTMuNiA4LTggOGgtNjUuNHYzMy43aDY1LjRjNC40IDAgOCAzLjYgOCA4djIxLjNjMCA0LjQtMy42IDgtOCA4aC02NS40Vjc1MmMwIDQuNC0zLjYgOC04IDhoLTQxLjNjLTQuNCAwLTgtMy42LTgtOHYtNTMuOGgtNjUuMWMtNC40IDAtOC0zLjYtOC04di0yMS4zYzAtNC40IDMuNi04IDgtOGg2NS4xdi0zMy43aC02NS4xYy00LjQgMC04LTMuNi04LTh2LTIxLjNjMC00LjQgMy42LTggOC04SDQ2N2wtODkuMy0xNjRjLTIuMS0zLjktLjctOC44IDMuMi0xMC45IDEuMS0uNyAyLjUtMSAzLjgtMWg0NmE4IDggMCAwMTcuMSA0LjRsNzMuNCAxNDUuNGgyLjhsNzMuNC0xNDUuNGMxLjMtMi43IDQuMS00LjQgNy4xLTQuNGg0NWM0LjUgMCA4IDMuNiA3LjkgOCAwIDEuMy0uNCAyLjYtMSAzLjh6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTYzOS41IDQxNGgtNDVjLTMgMC01LjggMS43LTcuMSA0LjRMNTE0IDU2My44aC0yLjhsLTczLjQtMTQ1LjRhOCA4IDAgMDAtNy4xLTQuNGgtNDZjLTEuMyAwLTIuNy4zLTMuOCAxLTMuOSAyLjEtNS4zIDctMy4yIDEwLjlsODkuMyAxNjRoLTQ4LjZjLTQuNCAwLTggMy42LTggOHYyMS4zYzAgNC40IDMuNiA4IDggOGg2NS4xdjMzLjdoLTY1LjFjLTQuNCAwLTggMy42LTggOHYyMS4zYzAgNC40IDMuNiA4IDggOGg2NS4xVjc1MmMwIDQuNCAzLjYgOCA4IDhoNDEuM2M0LjQgMCA4LTMuNiA4LTh2LTUzLjhoNjUuNGM0LjQgMCA4LTMuNiA4LTh2LTIxLjNjMC00LjQtMy42LTgtOC04aC02NS40di0zMy43aDY1LjRjNC40IDAgOC0zLjYgOC04di0yMS4zYzAtNC40LTMuNi04LTgtOGgtNDkuMWw4OS4zLTE2NC4xYy42LTEuMiAxLTIuNSAxLTMuOC4xLTQuNC0zLjQtOC03LjktOHoiLGZpbGw6Zn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDE4NEg3MTJ2LTY0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2NEgzODR2LTY0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2NEgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjE2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNjU2SDE4NFYyNTZoMTI4djQ4YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTQ4aDI1NnY0OGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di00OGgxMjh2NTg0eiIsZmlsbDpmfX1dfX0sbmFtZToiYWNjb3VudC1ib29rIix0aGVtZToidHdvdG9uZSJ9LHg9RSxPPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOnh9KSl9LFQ9dC5mb3J3YXJkUmVmKE8pLFM9VCxMPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoiZGVmcyIsYXR0cnM6e30sY2hpbGRyZW46W3t0YWc6InN0eWxlIixhdHRyczp7fX1dfSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTk1MiA0NzRIODI5LjhDODEyLjUgMzI3LjYgNjk2LjQgMjExLjUgNTUwIDE5NC4yVjcyYzAtNC40LTMuNi04LTgtOGgtNjBjLTQuNCAwLTggMy42LTggOHYxMjIuMkMzMjcuNiAyMTEuNSAyMTEuNSAzMjcuNiAxOTQuMiA0NzRINzJjLTQuNCAwLTggMy42LTggOHY2MGMwIDQuNCAzLjYgOCA4IDhoMTIyLjJDMjExLjUgNjk2LjQgMzI3LjYgODEyLjUgNDc0IDgyOS44Vjk1MmMwIDQuNCAzLjYgOCA4IDhoNjBjNC40IDAgOC0zLjYgOC04VjgyOS44QzY5Ni40IDgxMi41IDgxMi41IDY5Ni40IDgyOS44IDU1MEg5NTJjNC40IDAgOC0zLjYgOC04di02MGMwLTQuNC0zLjYtOC04LTh6TTUxMiA3NTZjLTEzNC44IDAtMjQ0LTEwOS4yLTI0NC0yNDRzMTA5LjItMjQ0IDI0NC0yNDQgMjQ0IDEwOS4yIDI0NCAyNDQtMTA5LjIgMjQ0LTI0NCAyNDR6In19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDM5MmMtMzIuMSAwLTYyLjEgMTIuNC04NC44IDM1LjItMjIuNyAyMi43LTM1LjIgNTIuNy0zNS4yIDg0LjhzMTIuNSA2Mi4xIDM1LjIgODQuOEM0NDkuOSA2MTkuNCA0ODAgNjMyIDUxMiA2MzJzNjIuMS0xMi41IDg0LjgtMzUuMkM2MTkuNCA1NzQuMSA2MzIgNTQ0IDYzMiA1MTJzLTEyLjUtNjIuMS0zNS4yLTg0LjhBMTE4LjU3IDExOC41NyAwIDAwNTEyIDM5MnoifX1dfSxuYW1lOiJhaW0iLHRoZW1lOiJvdXRsaW5lZCJ9LEk9TCxSPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkl9KSl9LHo9dC5mb3J3YXJkUmVmKFIpLEc9eixZPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgMjQ0YzE3Ni4xOCAwIDMxOSAxNDIuODIgMzE5IDMxOXYyMzNhMzIgMzIgMCAwMS0zMiAzMkgyMjVhMzIgMzIgMCAwMS0zMi0zMlY1NjNjMC0xNzYuMTggMTQyLjgyLTMxOSAzMTktMzE5ek00ODQgNjhoNTZhOCA4IDAgMDE4IDh2OTZhOCA4IDAgMDEtOCA4aC01NmE4IDggMCAwMS04LThWNzZhOCA4IDAgMDE4LTh6TTE3Ny4yNSAxOTEuNjZhOCA4IDAgMDExMS4zMiAwbDY3Ljg4IDY3Ljg4YTggOCAwIDAxMCAxMS4zMWwtMzkuNiAzOS42YTggOCAwIDAxLTExLjMxIDBsLTY3Ljg4LTY3Ljg4YTggOCAwIDAxMC0xMS4zMWwzOS42LTM5LjZ6bTY2OS42IDBsMzkuNiAzOS42YTggOCAwIDAxMCAxMS4zbC02Ny44OCA2Ny45YTggOCAwIDAxLTExLjMyIDBsLTM5LjYtMzkuNmE4IDggMCAwMTAtMTEuMzJsNjcuODktNjcuODhhOCA4IDAgMDExMS4zMSAwek0xOTIgODkyaDY0MGEzMiAzMiAwIDAxMzIgMzJ2MjRhOCA4IDAgMDEtOCA4SDE2OGE4IDggMCAwMS04LTh2LTI0YTMyIDMyIDAgMDEzMi0zMnptMTQ4LTMxN3YyNTNoNjRWNTc1aC02NHoifX1dfSxuYW1lOiJhbGVydCIsdGhlbWU6ImZpbGxlZCJ9LGVlPVksSj1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjplZX0pKX0sbWU9dC5mb3J3YXJkUmVmKEopLHRlPW1lLGxlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0xOTMgNzk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDU3NGMxNy43IDAgMzItMTQuMyAzMi0zMlY1NjNjMC0xNzYuMi0xNDIuOC0zMTktMzE5LTMxOVMxOTMgMzg2LjggMTkzIDU2M3YyMzN6bTcyLTIzM2MwLTEzNi40IDExMC42LTI0NyAyNDctMjQ3czI0NyAxMTAuNiAyNDcgMjQ3djE5M0g0MDRWNTg1YzAtNS41LTQuNS0xMC0xMC0xMGgtNDRjLTUuNSAwLTEwIDQuNS0xMCAxMHYxNzFoLTc1VjU2M3ptLTQ4LjEtMjUyLjVsMzkuNi0zOS42YzMuMS0zLjEgMy4xLTguMiAwLTExLjNsLTY3LjktNjcuOWE4LjAzIDguMDMgMCAwMC0xMS4zIDBsLTM5LjYgMzkuNmE4LjAzIDguMDMgMCAwMDAgMTEuM2w2Ny45IDY3LjljMy4xIDMuMSA4LjEgMy4xIDExLjMgMHptNjY5LjYtNzkuMmwtMzkuNi0zOS42YTguMDMgOC4wMyAwIDAwLTExLjMgMGwtNjcuOSA2Ny45YTguMDMgOC4wMyAwIDAwMCAxMS4zbDM5LjYgMzkuNmMzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDY3LjktNjcuOWMzLjEtMy4yIDMuMS04LjIgMC0xMS4zek04MzIgODkySDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MjRjMCA0LjQgMy42IDggOCA4aDY4OGM0LjQgMCA4LTMuNiA4LTh2LTI0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek00ODQgMTgwaDU2YzQuNCAwIDgtMy42IDgtOFY3NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2OTZjMCA0LjQgMy42IDggOCA4eiJ9fV19LG5hbWU6ImFsZXJ0Iix0aGVtZToib3V0bGluZWQifSxjZT1sZSxXPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOmNlfSkpfSxqPXQuZm9yd2FyZFJlZihXKSxEPWosVj17aWNvbjpmdW5jdGlvbihmLHYpe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0zNDAgNTg1YzAtNS41IDQuNS0xMCAxMC0xMGg0NGM1LjUgMCAxMCA0LjUgMTAgMTB2MTcxaDM1NVY1NjNjMC0xMzYuNC0xMTAuNi0yNDctMjQ3LTI0N1MyNjUgNDI2LjYgMjY1IDU2M3YxOTNoNzVWNTg1eiIsZmlsbDp2fX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0yMTYuOSAzMTAuNWwzOS42LTM5LjZjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM2wtNjcuOS02Ny45YTguMDMgOC4wMyAwIDAwLTExLjMgMGwtMzkuNiAzOS42YTguMDMgOC4wMyAwIDAwMCAxMS4zbDY3LjkgNjcuOWMzLjEgMy4xIDguMSAzLjEgMTEuMyAwem02NjkuNi03OS4ybC0zOS42LTM5LjZhOC4wMyA4LjAzIDAgMDAtMTEuMyAwbC02Ny45IDY3LjlhOC4wMyA4LjAzIDAgMDAwIDExLjNsMzkuNiAzOS42YzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBsNjcuOS02Ny45YzMuMS0zLjIgMy4xLTguMiAwLTExLjN6TTQ4NCAxODBoNTZjNC40IDAgOC0zLjYgOC04Vjc2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY5NmMwIDQuNCAzLjYgOCA4IDh6bTM0OCA3MTJIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnYyNGMwIDQuNCAzLjYgOCA4IDhoNjg4YzQuNCAwIDgtMy42IDgtOHYtMjRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS02MzktOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNTc0YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjU2M2MwLTE3Ni4yLTE0Mi44LTMxOS0zMTktMzE5UzE5MyAzODYuOCAxOTMgNTYzdjIzM3ptNzItMjMzYzAtMTM2LjQgMTEwLjYtMjQ3IDI0Ny0yNDdzMjQ3IDExMC42IDI0NyAyNDd2MTkzSDQwNFY1ODVjMC01LjUtNC41LTEwLTEwLTEwaC00NGMtNS41IDAtMTAgNC41LTEwIDEwdjE3MWgtNzVWNTYzeiIsZmlsbDpmfX1dfX0sbmFtZToiYWxlcnQiLHRoZW1lOiJ0d290b25lIn0sWj1WLFA9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246Wn0pKX0sSz10LmZvcndhcmRSZWYoUCksc2U9SyxuZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNjAyLjkgNjY5LjhjLTM3LjIgMi42LTMzLjYtMTcuMy0xMS41LTQ2LjIgNTAuNC02Ny4yIDE0My43LTE1OC41IDE0Ny45LTIyNS4yIDUuOC04Ni42LTgxLjMtMTEzLjQtMTcxLTExMy40LTYyLjQgMS42LTEyNyAxOC45LTE3MSAzNC42LTE1MS42IDUzLjUtMjQ2LjYgMTM3LjUtMzA2LjkgMjMyLTYyLjQgOTMuNC00MyAxODMuMiA5MS44IDE4NS44IDEwMS44LTQuMiAxNzAuNS0zMi41IDIzOS43LTY4LjIuNSAwLTE5Mi41IDU1LjEtMjYzLjkgMTQuNy03LjktNC4yLTE1LjctMTAtMTcuOC0yNi4yIDAtMzMuMSA1NC42LTY3LjcgODYuNi03OC43di01Ni43YzY0LjUgMjIuNiAxNDAuNiAxNi4zIDIwNS43LTMyIDIuMSA1LjggNC4yIDEzLjEgMy43IDIxaDExYzIuNi0yMi42LTEyLjYtNDQuNi0zNy44LTQ2LjIgNy4zIDUuOCAxMi42IDEwLjUgMTUuMiAxNC43bC0xIDEtLjUuNWMtODMuOSA1OC44LTE2NS4zIDMxLjUtMTczLjEgMjkuOWw0Ni43LTQ1LjctMTMuMS0zMy4xYzkyLjktMzIuNSAxNjkuNS01Ni4yIDI5Ni45LTc4LjdsLTI4LjUtMjMgMTQuNy04LjljNzUuNSAyMSAxMjYuNCAzNi43IDEyMy44IDc2LjYtMSA2LjgtMy43IDE0LjctNy45IDIzLjFDNjYwLjEgNDY2LjEgNTk0IDUzOCA1NjcuMiA1NjljLTE3LjMgMjAuNS0zNC42IDM5LjQtNDYuNyA1OC4zLTEzLjYgMTkuNC0yMC41IDM3LjMtMjEgNTMuNSAyLjYgMTMxLjggMzkxLjQtNjEuOSA0NjgtMTEyLjktMTExLjcgNDcuOC0yMzIuOSA5My41LTM2NC42IDEwMS45em04NS0zMDIuOWMyLjggNS4yIDQuMSAxMS42IDQuMSAxOS4xLS4xLTYuOC0xLjQtMTMuMy00LjEtMTkuMXoifX1dfSxuYW1lOiJhbGliYWJhIix0aGVtZToib3V0bGluZWQifSxvZT1uZSxmZT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpvZX0pKX0sRWU9dC5mb3J3YXJkUmVmKGZlKSxSZT1FZSxCZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMjY0IDIzMGg0OTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThIMjY0Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em00OTYgNDI0YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04SDI2NGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg0OTZ6bTE0NCAxNDBIMTIwYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC00MjRIMTIwYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHoifX1dfSxuYW1lOiJhbGlnbi1jZW50ZXIiLHRoZW1lOiJvdXRsaW5lZCJ9LFllPUJlLG90PWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOlllfSkpfSxxZT10LmZvcndhcmRSZWYob3QpLF9lPXFlLEZlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0xMjAgMjMwaDQ5NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOEgxMjBjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6bTAgNDI0aDQ5NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOEgxMjBjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6bTc4NCAxNDBIMTIwYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC00MjRIMTIwYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHoifX1dfSxuYW1lOiJhbGlnbi1sZWZ0Iix0aGVtZToib3V0bGluZWQifSxTZT1GZSxxPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOlNlfSkpfSxrPXQuZm9yd2FyZFJlZihxKSxNPWssQT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTA0IDE1OEg0MDhjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNDk2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wIDQyNEg0MDhjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNDk2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wIDIxMkgxMjBjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNzg0YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wLTQyNEgxMjBjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNzg0YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04eiJ9fV19LG5hbWU6ImFsaWduLXJpZ2h0Iix0aGVtZToib3V0bGluZWQifSxVPUEsTj1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpVfSkpfSxRPXQuZm9yd2FyZFJlZihOKSx1ZT1RLCQ9e2ljb246e3RhZzoic3ZnIixhdHRyczp7ImZpbGwtcnVsZSI6ImV2ZW5vZGQiLHZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRjMjQ3LjQyIDAgNDQ4IDIwMC41OCA0NDggNDQ4Uzc1OS40MiA5NjAgNTEyIDk2MCA2NCA3NTkuNDIgNjQgNTEyIDI2NC41OCA2NCA1MTIgNjRtMzIuNSAxNjhjLTY5LjY3IDAtODYuMDYgMTYuODQtODYuNzIgMzkuMDhsLS4wMiAxLjQzdjQ2LjYySDI5MS40NWMtOS45MiAwLTE0LjI4IDIzLjA1LTE0LjI3IDM5LjMgMCAyLjcgMi4wOCA0LjkzIDQuNzcgNC45M2gxNzUuODF2NTguM2gtMTE2LjVjLTkuOTYgMC0xNC4zIDIzLjc2LTE0LjI3IDM5LjQ3YTQuNzcgNC43NyAwIDAwNC43NyA0Ljc2aDIzMy40NWMtNC41MyA0MS4wNi0xNS40MyA3Ny41OS0zMC43MiAxMDkuMzJsLTEuMjIgMi41LS4zMi0uMjhjLTYwLjI0LTI4LjQ3LTEyMC40My01Mi41Ny0xOTQuNC01Mi41N2wtMi42Mi4wMWMtODQuOTggMS4xMS0xNDQuNzEgNTYuNS0xNDUuOTEgMTI3LjA0bC0uMDIgMS4yMi4wMiAyLjEzYzEuMjQgNzAuNCA2My41NiAxMjYuNDUgMTQ4LjUyIDEyNi40NSA2MS4yNSAwIDExNi4zOC0xNi44NSAxNjMuNDYtNDUuMDJhMTM4LjU4IDEzOC41OCAwIDAwMTQuMDctNy45NiAzNDUuNiAzNDUuNiAwIDAwNTAuMy00MS4xNmw5LjQ1IDYuMzUgMTIuNDYgOC4zMmM1Ny41MyAzOC4yNiAxMTMuNzYgNzIuNjIgMTY5Ljg2IDc5LjI3YTE0Mi42MiAxNDIuNjIgMCAwMDE4LjMxIDEuMTZjNDMuMDIgMCA1NS01Mi42OCA1Ny4zOS05NS41MWwuMTQtMi44NGMuNC04LjQ2LTYuMi0xNS42LTE0LjY1LTE1Ljg2LTc1LjQ2LTIuMzctMTM2LjQ1LTIyLjA1LTE5Mi00Ni4xMWwtNi4yNy0yLjc1YzM1LjE1LTU2LjggNTYuNjYtMTIxLjgxIDU3LjE1LTE4Ni42NmwuMDktMS4wOGMuNC01LjUxLTQtMTAuMi05LjUyLTEwLjJINTQ5LjMzdi01OC4zaDE2NS43M2M5LjkyIDAgMTQuMjgtMjIuMTIgMTQuMjctMzkuMzFhNC44NSA0Ljg1IDAgMDAtNC43OC00LjkySDU0OS4zMnYtODIuMzVhNC44IDQuOCAwIDAwLTQuODMtNC43OE0zMjggNTgzLjg1YzU0LjYzIDAgMTA3LjA4IDIyLjQxIDE1OC4xIDUyLjE5bDUuNzYgMy40Yy0xMDMuNTcgMTE5Ljg0LTI0Ny4xNyA5NS45LTI2MS43MiAyNi4zN2E2Ni44OSA2Ni44OSAwIDAxLTEuMTQtOS44M2wtLjA2LTIuMzQuMDItLjljLjk3LTQwLjEyIDQ1LjMzLTY4LjkgOTkuMDQtNjguOSJ9fV19LG5hbWU6ImFsaXBheS1jaXJjbGUiLHRoZW1lOiJmaWxsZWQifSxfPSQscGU9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246X30pKX0scmU9dC5mb3J3YXJkUmVmKHBlKSxhZT1yZSx3ZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnsiZmlsbC1ydWxlIjoiZXZlbm9kZCIsdmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NGMyNDcuNDIgMCA0NDggMjAwLjU4IDQ0OCA0NDhTNzU5LjQyIDk2MCA1MTIgOTYwIDY0IDc1OS40MiA2NCA1MTIgMjY0LjU4IDY0IDUxMiA2NG0zMi41IDE2OGMtNjkuNjcgMC04Ni4wNiAxNi44NC04Ni43MiAzOS4wOGwtLjAyIDEuNDN2NDYuNjJIMjkxLjQ1Yy05LjkyIDAtMTQuMjggMjMuMDUtMTQuMjcgMzkuMyAwIDIuNyAyLjA4IDQuOTMgNC43NyA0LjkzaDE3NS44MXY1OC4zaC0xMTYuNWMtOS45NiAwLTE0LjMgMjMuNzYtMTQuMjcgMzkuNDdhNC43NyA0Ljc3IDAgMDA0Ljc3IDQuNzZoMjMzLjQ1Yy00LjUzIDQxLjA2LTE1LjQzIDc3LjU5LTMwLjcyIDEwOS4zMmwtMS4yMiAyLjUtLjMyLS4yOGMtNjAuMjQtMjguNDctMTIwLjQzLTUyLjU3LTE5NC40LTUyLjU3bC0yLjYyLjAxYy04NC45OCAxLjExLTE0NC43MSA1Ni41LTE0NS45MSAxMjcuMDRsLS4wMiAxLjIyLjAyIDIuMTNjMS4yNCA3MC40IDYzLjU2IDEyNi40NSAxNDguNTIgMTI2LjQ1IDYxLjI1IDAgMTE2LjM4LTE2Ljg1IDE2My40Ni00NS4wMmExMzguNTggMTM4LjU4IDAgMDAxNC4wNy03Ljk2IDM0NS42IDM0NS42IDAgMDA1MC4zLTQxLjE2bDkuNDUgNi4zNSAxMi40NiA4LjMyYzU3LjUzIDM4LjI2IDExMy43NiA3Mi42MiAxNjkuODYgNzkuMjdhMTQyLjYyIDE0Mi42MiAwIDAwMTguMzEgMS4xNmM0My4wMiAwIDU1LTUyLjY4IDU3LjM5LTk1LjUxbC4xNC0yLjg0Yy40LTguNDYtNi4yLTE1LjYtMTQuNjUtMTUuODYtNzUuNDYtMi4zNy0xMzYuNDUtMjIuMDUtMTkyLTQ2LjExbC02LjI3LTIuNzVjMzUuMTUtNTYuOCA1Ni42Ni0xMjEuODEgNTcuMTUtMTg2LjY2bC4wOS0xLjA4Yy40LTUuNTEtNC0xMC4yLTkuNTItMTAuMkg1NDkuMzN2LTU4LjNoMTY1LjczYzkuOTIgMCAxNC4yOC0yMi4xMiAxNC4yNy0zOS4zMWE0Ljg1IDQuODUgMCAwMC00Ljc4LTQuOTJINTQ5LjMydi04Mi4zNWE0LjggNC44IDAgMDAtNC44My00Ljc4TTMyOCA1ODMuODVjNTQuNjMgMCAxMDcuMDggMjIuNDEgMTU4LjEgNTIuMTlsNS43NiAzLjRjLTEwMy41NyAxMTkuODQtMjQ3LjE3IDk1LjktMjYxLjcyIDI2LjM3YTY2Ljg5IDY2Ljg5IDAgMDEtMS4xNC05LjgzbC0uMDYtMi4zNC4wMi0uOWMuOTctNDAuMTIgNDUuMzMtNjguOSA5OS4wNC02OC45In19XX0sbmFtZToiYWxpcGF5LWNpcmNsZSIsdGhlbWU6Im91dGxpbmVkIn0sTGU9d2UsTWU9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246TGV9KSl9LGJlPXQuZm9yd2FyZFJlZihNZSksJGU9YmUsa2U9e2ljb246e3RhZzoic3ZnIixhdHRyczp7ImZpbGwtcnVsZSI6ImV2ZW5vZGQiLHZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01NTcuMiAxMjlhNi42OCA2LjY4IDAgMDE2LjcyIDYuNjVWMjUwLjJoMjQzLjhhNi43NCA2Ljc0IDAgMDE2LjY1IDYuODRjLjAyIDIzLjkyLTYuMDUgNTQuNjktMTkuODUgNTQuNjlINTYzLjk0djgxLjFoMTY2LjE4YzcuNjkgMCAxMy44IDYuNTEgMTMuMjUgMTQuMThsLS4xMSAxLjUxYy0uNyA5MC4yLTMwLjYzIDE4MC42NC03OS41MiAyNTkuNjVsOC43MSAzLjgyYzc3LjMgMzMuNDggMTYyLjE1IDYwLjg1IDI2Ny4xNSA2NC4xNGEyMS4wOCAyMS4wOCAwIDAxMjAuMzggMjIuMDdsLS4yIDMuOTVjLTMuMzQgNTkuNTctMjAgMTMyLjg1LTc5Ljg1IDEzMi44NS04LjggMC0xNy4yOS0uNTUtMjUuNDgtMS42MS03OC4wNC05LjI1LTE1Ni4yOC01Ny4wNS0yMzYuMzItMTEwLjI3bC0xNy4zMy0xMS41Ny0xMy4xNS04LjgzYTQ4MC44MyA0ODAuODMgMCAwMS02OS45OSA1Ny4yNSAxOTIuOCAxOTIuOCAwIDAxLTE5LjU3IDExLjA4Yy02NS41MSAzOS4xOC0xNDIuMjEgNjIuNi0yMjcuNDIgNjIuNjItMTE4LjIgMC0yMDQuOTItNzcuOTctMjA2LjY0LTE3NS45bC0uMDMtMi45NS4wMy0xLjdjMS42Ni05OC4xMiA4NC43Ny0xNzUuMTggMjAzLTE3Ni43MmwzLjY0LS4wM2MxMDIuOTIgMCAxODYuNjYgMzMuNTQgMjcwLjQ4IDczLjE0bC40NC4zOCAxLjctMy40N2MyMS4yNy00NC4xNCAzNi40NC05NC45NSA0Mi43NC0xNTIuMDZoLTMyNC44YTYuNjQgNi42NCAwIDAxLTYuNjMtNi42MmMtLjA0LTIxLjg2IDYtNTQuOTEgMTkuODUtNTQuOTFoMTYyLjF2LTgxLjFIMTkxLjkyYTYuNzEgNi43MSAwIDAxLTYuNjQtNi44NWMtLjAxLTIyLjYxIDYuMDYtNTQuNjggMTkuODYtNTQuNjhoMjMxLjR2LTY0Ljg1bC4wMi0xLjk5Yy45LTMwLjkzIDIzLjcyLTU0LjM2IDEyMC42NC01NC4zNk0yNTYuOSA2MTljLTc0Ljc3IDAtMTM2LjUzIDM5LjkzLTEzNy44OCA5NS42bC0uMDIgMS4yNi4wOCAzLjI0YTkyLjU1IDkyLjU1IDAgMDAxLjU4IDEzLjY0YzIwLjI2IDk2LjUgMjIwLjE2IDEyOS43MSAzNjQuMzQtMzYuNTlsLTguMDMtNC43MkM0MDUuOTUgNjUwLjExIDMzMi45NCA2MTkgMjU2LjkgNjE5In19XX0sbmFtZToiYWxpcGF5Iix0aGVtZToib3V0bGluZWQifSxBZT1rZSx0dD1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpBZX0pKX0sbXQ9dC5mb3J3YXJkUmVmKHR0KSx1dD1tdCxEZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnsiZmlsbC1ydWxlIjoiZXZlbm9kZCIsdmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg5NC42IDExNi41NGEzMC45IDMwLjkgMCAwMTEyLjg2IDEyLjg1YzIuOTYgNS41NCA0LjU0IDExLjA0IDQuNTQgMjYuMlY4NjguNGMwIDE1LjE2LTEuNTggMjAuNjYtNC41NCAyNi4yYTMwLjkgMzAuOSAwIDAxLTEyLjg1IDEyLjg1Yy01LjU0IDIuOTYtMTEuMDQgNC41NC0yNi4yIDQuNTRIMTU1LjZjLTE1LjE2IDAtMjAuNjYtMS41OC0yNi4yLTQuNTRhMzAuOSAzMC45IDAgMDEtMTIuODUtMTIuODVjLTIuOTItNS40Ny00LjUtMTAuOS00LjU0LTI1LjU5VjE1NS42YzAtMTUuMTYgMS41OC0yMC42NiA0LjU0LTI2LjJhMzAuOSAzMC45IDAgMDExMi44NS0xMi44NWM1LjQ3LTIuOTIgMTAuOS00LjUgMjUuNTktNC41NEg4NjguNGMxNS4xNiAwIDIwLjY2IDEuNTggMjYuMiA0LjU0TTU0MSAyNjJjLTYyLjIgMC03Ni44MyAxNS4wNC03Ny40MiAzNC45bC0uMDIgMS4yN3Y0MS42MkgzMTUuMDhjLTguODYgMC0xMi43NSAyMC41OS0xMi43NCAzNS4xYTQuMyA0LjMgMCAwMDQuMjYgNC40aDE1Ni45N3Y1Mi4wNUgzNTkuNTZjLTguOSAwLTEyLjc3IDIxLjIyLTEyLjc1IDM1LjI1YTQuMjYgNC4yNiAwIDAwNC4yNiA0LjI1aDIwOC40NGMtNC4wNCAzNi42Ni0xMy43OCA2OS4yNy0yNy40MyA5Ny42bC0xLjA5IDIuMjMtLjI4LS4yNWMtNTMuOC0yNS40Mi0xMDcuNTMtNDYuOTQtMTczLjU4LTQ2Ljk0bC0yLjMzLjAxYy03NS44OCAxLTEyOS4yMSA1MC40NS0xMzAuMjggMTEzLjQzbC0uMDIgMS4xLjAyIDEuODljMS4xIDYyLjg1IDU2Ljc1IDExMi45IDEzMi42IDExMi45IDU0LjcgMCAxMDMuOTEtMTUuMDQgMTQ1Ljk1LTQwLjJhMTIzLjczIDEyMy43MyAwIDAwMTIuNTYtNy4xIDMwOC42IDMwOC42IDAgMDA0NC45Mi0zNi43NWw4LjQ0IDUuNjcgMTEuMTIgNy40M2M1MS4zNiAzNC4xNSAxMDEuNTcgNjQuODMgMTUxLjY2IDcwLjc3YTEyNy4zNCAxMjcuMzQgMCAwMDE2LjM1IDEuMDRjMzguNCAwIDQ5LjEtNDcuMDQgNTEuMjQtODUuMjhsLjEzLTIuNTNhMTMuNTMgMTMuNTMgMCAwMC0xMy4wOC0xNC4xN2MtNjcuMzktMi4xLTEyMS44NC0xOS42OC0xNzEuNDQtNDEuMTdsLTUuNi0yLjQ0YzMxLjM5LTUwLjcyIDUwLjYtMTA4Ljc3IDUxLjA0LTE2Ni42N2wuMDctLjk2YTguNTEgOC41MSAwIDAwLTguNS05LjFINTQ1LjMzdi01Mi4wNkg2OTMuM2M4Ljg2IDAgMTIuNzUtMTkuNzUgMTIuNzUtMzUuMS0uMDEtMi40LTEuODctNC40LTQuMjctNC40SDU0NS4zMnYtNzMuNTJhNC4yOSA0LjI5IDAgMDAtNC4zMS00LjI3bS0xOTMuMyAzMTQuMTVjNDguNzcgMCA5NS42IDIwLjAxIDE0MS4xNSA0Ni42bDUuMTUgMy4wNGMtOTIuNDggMTA3LTIyMC42OSA4NS42Mi0yMzMuNjggMjMuNTRhNTkuNzIgNTkuNzIgMCAwMS0xLjAyLTguNzhsLS4wNS0yLjA4LjAxLS44MWMuODctMzUuODIgNDAuNDgtNjEuNTEgODguNDQtNjEuNTEifX1dfSxuYW1lOiJhbGlwYXktc3F1YXJlIix0aGVtZToiZmlsbGVkIn0sTmU9RGUsWGU9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246TmV9KSl9LEplPXQuZm9yd2FyZFJlZihYZSksZ3Q9SmUsZGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg2OC4yIDM3Ny40Yy0xOC45LTQ1LjEtNDYuMy04NS42LTgxLjItMTIwLjZhMzc3LjI2IDM3Ny4yNiAwIDAwLTEyMC41LTgxLjJBMzc1LjY1IDM3NS42NSAwIDAwNTE5IDE0NS44Yy00MS45IDAtODIuOSA2LjctMTIxLjkgMjBDMzA2IDEyMy4zIDIwMC44IDEyMCAxNzAuNiAxMjBjLTIuMiAwLTcuNCAwLTkuNC4yLTExLjkuNC0yMi44IDYuNS0yOS4yIDE2LjQtNi41IDkuOS03LjcgMjIuNC0zLjQgMzMuNWw2NC4zIDE2MS42YTM3OC41OSAzNzguNTkgMCAwMC01Mi44IDE5My4yYzAgNTEuNCAxMCAxMDEgMjkuOCAxNDcuNiAxOC45IDQ1IDQ2LjIgODUuNiA4MS4yIDEyMC41IDM0LjcgMzQuOCA3NS40IDYyLjEgMTIwLjUgODEuMkM0MTguMyA4OTQgNDY3LjkgOTA0IDUxOSA5MDRjNTEuMyAwIDEwMC45LTEwIDE0Ny43LTI5LjggNDQuOS0xOC45IDg1LjUtNDYuMyAxMjAuNC04MS4yIDM0LjctMzQuOCA2Mi4xLTc1LjQgODEuMi0xMjAuNmEzNzYuNSAzNzYuNSAwIDAwMjkuOC0xNDcuNmMtLjItNTEuMi0xMC4xLTEwMC44LTI5LjktMTQ3LjR6bS0zMjUuMiA3OWMwIDIwLjQtMTYuNiAzNy4xLTM3LjEgMzcuMS0yMC40IDAtMzcuMS0xNi43LTM3LjEtMzcuMXYtNTUuMWMwLTIwLjQgMTYuNi0zNy4xIDM3LjEtMzcuMSAyMC40IDAgMzcuMSAxNi42IDM3LjEgMzcuMXY1NS4xem0xNzUuMiAwYzAgMjAuNC0xNi42IDM3LjEtMzcuMSAzNy4xUzY0NCA0NzYuOCA2NDQgNDU2LjR2LTU1LjFjMC0yMC40IDE2LjctMzcuMSAzNy4xLTM3LjEgMjAuNCAwIDM3LjEgMTYuNiAzNy4xIDM3LjF2NTUuMXoifX1dfSxuYW1lOiJhbGl3YW5nd2FuZyIsdGhlbWU6ImZpbGxlZCJ9LFdlPWRlLFN0PWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOldlfSkpfSxjdD10LmZvcndhcmRSZWYoU3QpLE9lPWN0LEdlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NjguMiAzNzcuNGMtMTguOS00NS4xLTQ2LjMtODUuNi04MS4yLTEyMC42YTM3Ny4yNiAzNzcuMjYgMCAwMC0xMjAuNS04MS4yQTM3NS42NSAzNzUuNjUgMCAwMDUxOSAxNDUuOGMtNDEuOSAwLTgyLjkgNi43LTEyMS45IDIwQzMwNiAxMjMuMyAyMDAuOCAxMjAgMTcwLjYgMTIwYy0yLjIgMC03LjQgMC05LjQuMi0xMS45LjQtMjIuOCA2LjUtMjkuMiAxNi40LTYuNSA5LjktNy43IDIyLjQtMy40IDMzLjVsNjQuMyAxNjEuNmEzNzguNTkgMzc4LjU5IDAgMDAtNTIuOCAxOTMuMmMwIDUxLjQgMTAgMTAxIDI5LjggMTQ3LjYgMTguOSA0NSA0Ni4yIDg1LjYgODEuMiAxMjAuNSAzNC43IDM0LjggNzUuNCA2Mi4xIDEyMC41IDgxLjJDNDE4LjMgODk0IDQ2Ny45IDkwNCA1MTkgOTA0YzUxLjMgMCAxMDAuOS0xMC4xIDE0Ny43LTI5LjggNDQuOS0xOC45IDg1LjUtNDYuMyAxMjAuNC04MS4yIDM0LjctMzQuOCA2Mi4xLTc1LjQgODEuMi0xMjAuNmEzNzYuNSAzNzYuNSAwIDAwMjkuOC0xNDcuNmMtLjItNTEuMi0xMC4xLTEwMC44LTI5LjktMTQ3LjR6bS02Ni40IDI2Ni41YTMwNy4wOCAzMDcuMDggMCAwMS02NS45IDk4Yy0yOC40IDI4LjUtNjEuMyA1MC43LTk3LjcgNjUuOWgtLjFjLTM4IDE2LTc4LjMgMjQuMi0xMTkuOSAyNC4yYTMwNi41MSAzMDYuNTEgMCAwMS0yMTcuNS05MC4yYy0yOC40LTI4LjUtNTAuNi02MS40LTY1LjgtOTcuOHYtLjFjLTE2LTM3LjgtMjQuMS03OC4yLTI0LjEtMTE5LjkgMC01NS40IDE0LjgtMTA5LjcgNDIuOC0xNTdsMTMuMi0yMi4xLTkuNS0yMy45TDIwNiAxOTJjMTQuOS42IDM1LjkgMi4xIDU5LjcgNS42IDQzLjggNi41IDgyLjUgMTcuNSAxMTQuOSAzMi42bDE5IDguOSAxOS45LTYuOGMzMS41LTEwLjggNjQuOC0xNi4yIDk4LjktMTYuMmEzMDYuNTEgMzA2LjUxIDAgMDEyMTcuNSA5MC4yYzI4LjQgMjguNSA1MC42IDYxLjQgNjUuOCA5Ny44bC4xLjEuMS4xYzE2IDM3LjYgMjQuMSA3OCAyNC4yIDExOS44LS4xIDQxLjctOC4zIDgyLTI0LjMgMTE5Ljh6TTY4MS4xIDM2NC4yYy0yMC40IDAtMzcuMSAxNi43LTM3LjEgMzcuMXY1NS4xYzAgMjAuNCAxNi42IDM3LjEgMzcuMSAzNy4xczM3LjEtMTYuNyAzNy4xLTM3LjF2LTU1LjFjMC0yMC41LTE2LjctMzcuMS0zNy4xLTM3LjF6bS0xNzUuMiAwYy0yMC41IDAtMzcuMSAxNi43LTM3LjEgMzcuMXY1NS4xYzAgMjAuNCAxNi43IDM3LjEgMzcuMSAzNy4xIDIwLjUgMCAzNy4xLTE2LjcgMzcuMS0zNy4xdi01NS4xYzAtMjAuNS0xNi43LTM3LjEtMzcuMS0zNy4xeiJ9fV19LG5hbWU6ImFsaXdhbmd3YW5nIix0aGVtZToib3V0bGluZWQifSxodD1HZSx6ZT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpodH0pKX0sUWU9dC5mb3J3YXJkUmVmKHplKSxwdD1RZSxidD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTU5LjIgMzgzLjljLS4zLTgyLjEtNjYuOS0xNDguNi0xNDkuMS0xNDguNkg1NzUuOWwyMS42IDg1LjIgMjAxIDQzLjdhNDIuNTggNDIuNTggMCAwMTMyLjkgMzkuN2MuMS41LjEgMjE2LjEgMCAyMTYuNmE0Mi41OCA0Mi41OCAwIDAxLTMyLjkgMzkuN2wtMjAxIDQzLjctMjEuNiA4NS4zaDIzNC4yYzgyLjEgMCAxNDguOC02Ni41IDE0OS4xLTE0OC42VjM4My45ek0yMjUuNSA2NjAuNGE0Mi41OCA0Mi41OCAwIDAxLTMyLjktMzkuN2MtLjEtLjYtLjEtMjE2LjEgMC0yMTYuNi44LTE5LjQgMTQuNi0zNS41IDMyLjktMzkuN2wyMDEtNDMuNyAyMS42LTg1LjJIMjEzLjhjLTgyLjEgMC0xNDguOCA2Ni40LTE0OS4xIDE0OC42VjY0MWMuMyA4Mi4xIDY3IDE0OC42IDE0OS4xIDE0OC42SDQ0OGwtMjEuNi04NS4zLTIwMC45LTQzLjl6bTIwMC45LTE1OC44aDE3MXYyMS4zaC0xNzF6In19XX0sbmFtZToiYWxpeXVuIix0aGVtZToib3V0bGluZWQifSxJdD1idCxUdD1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpJdH0pKX0sWHQ9dC5mb3J3YXJkUmVmKFR0KSxmbj1YdCxubj17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNDg1IDQ2Ny41Yy0xMS42IDQuOS0yMC45IDEyLjItMjcuOCAyMi02LjkgOS44LTEwLjQgMjEuNi0xMC40IDM1LjUgMCAxNy44IDcuNSAzMS41IDIyLjQgNDEuMiAxNC4xIDkuMSAyOC45IDExLjQgNDQuNCA2LjggMTcuOS01LjIgMzAtMTcuOSAzNi40LTM4LjEgMy05LjMgNC41LTE5LjcgNC41LTMxLjN2LTUwLjJjLTEyLjYuNC0yNC40IDEuNi0zNS41IDMuNy0xMS4xIDIuMS0yMi40IDUuNi0zNCAxMC40ek01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMzUuOCAyNjIuN2MtNy4yLTEwLjktMjAuMS0xNi40LTM4LjctMTYuNC0xLjMgMC0zIC4xLTUuMy4zLTIuMi4yLTYuNiAxLjUtMTIuOSAzLjdhNzkuNCA3OS40IDAgMDAtMTcuOSA5LjFjLTUuNSAzLjgtMTEuNSAxMC0xOCAxOC40LTYuNCA4LjUtMTEuNSAxOC40LTE1LjMgMjkuOGwtOTQtOC40YzAtMTIuNCAyLjQtMjQuNyA3LTM2LjkgNC43LTEyLjIgMTEuOC0yMy45IDIxLjQtMzUgOS42LTExLjIgMjEuMS0yMSAzNC41LTI5LjQgMTMuNC04LjUgMjkuNi0xNS4yIDQ4LjQtMjAuMyAxOC45LTUuMSAzOS4xLTcuNiA2MC45LTcuNiAyMS4zIDAgNDAuNiAyLjYgNTcuOCA3LjcgMTcuMiA1LjIgMzEuMSAxMS41IDQxLjQgMTkuMWExMTcgMTE3IDAgMDEyNS45IDI1LjdjNi45IDkuNiAxMS43IDE4LjUgMTQuNCAyNi43IDIuNyA4LjIgNCAxNS43IDQgMjIuOHYxODIuNWMwIDYuNCAxLjQgMTMgNC4zIDE5LjggMi45IDYuOCA2LjMgMTIuOCAxMC4yIDE4IDMuOSA1LjIgNy45IDkuOSAxMiAxNC4zIDQuMSA0LjMgNy42IDcuNyAxMC42IDkuOWw0LjEgMy40LTcyLjUgNjkuNGMtOC41LTcuNy0xNi45LTE1LjQtMjUuMi0yMy40LTguMy04LTE0LjUtMTQtMTguNS0xOC4xbC02LjEtNi4yYy0yLjQtMi4zLTUtNS43LTgtMTAuMi04LjEgMTIuMi0xOC41IDIyLjgtMzEuMSAzMS44LTEyLjcgOS0yNi4zIDE1LjYtNDAuNyAxOS43LTE0LjUgNC4xLTI5LjQgNi41LTQ0LjcgNy4xLTE1LjMuNi0zMC0xLjUtNDMuOS02LjUtMTMuOS01LTI2LjUtMTEuNy0zNy42LTIwLjMtMTEuMS04LjYtMTkuOS0yMC4yLTI2LjUtMzUtNi42LTE0LjgtOS45LTMxLjUtOS45LTUwLjQgMC0xNy40IDMtMzMuMyA4LjktNDcuNyA2LTE0LjUgMTMuNi0yNi41IDIzLTM2LjEgOS40LTkuNiAyMC43LTE4LjIgMzQtMjUuN3MyNi40LTEzLjQgMzkuMi0xNy43YzEyLjgtNC4yIDI2LjYtNy44IDQxLjUtMTAuNyAxNC45LTIuOSAyNy42LTQuOCAzOC4yLTUuNyAxMC42LS45IDIxLjItMS42IDMxLjgtMnYtMzkuNGMwLTEzLjUtMi4zLTIzLjUtNi43LTMwLjF6bTE4MC41IDM3OS42Yy0yLjggMy4zLTcuNSA3LjgtMTQuMSAxMy41cy0xNi44IDEyLjctMzAuNSAyMS4xYy0xMy43IDguNC0yOC44IDE2LTQ1IDIyLjktMTYuMyA2LjktMzYuMyAxMi45LTYwLjEgMTgtMjMuNyA1LjEtNDguMiA3LjYtNzMuMyA3LjYtMjUuNCAwLTUwLjctMy4yLTc2LjEtOS42LTI1LjQtNi40LTQ3LjYtMTQuMy02Ni44LTIzLjctMTkuMS05LjQtMzcuNi0yMC4yLTU1LjEtMzIuMi0xNy42LTEyLjEtMzEuNy0yMi45LTQyLjQtMzIuNS0xMC42LTkuNi0xOS42LTE4LjctMjYuOC0yNy4xLTEuNy0xLjktMi44LTMuNi0zLjItNS4xLS40LTEuNS0uMy0yLjguMy0zLjcuNi0uOSAxLjUtMS42IDIuNi0yLjJhNy40MiA3LjQyIDAgMDE3LjQuOGM0MC45IDI0LjIgNzIuOSA0MS4zIDk1LjkgNTEuNCA4Mi45IDM2LjQgMTY4IDQ1LjcgMjU1LjMgMjcuOSA0MC41LTguMyA4Mi4xLTIyLjIgMTI0LjktNDEuOCAzLjItMS4yIDYtMS41IDguMy0uOSAyLjMuNiAzLjUgMi40IDMuNSA1LjQgMCAyLjgtMS42IDYuMy00LjggMTAuMnptNTkuOS0yOWMtMS44IDExLjEtNC45IDIxLjYtOS4xIDMxLjgtNy4yIDE3LjEtMTYuMyAzMC0yNy4xIDM4LjQtMy42IDIuOS02LjQgMy44LTguMyAyLjgtMS45LTEtMS45LTMuNSAwLTcuNCA0LjUtOS4zIDkuMi0yMS44IDE0LjItMzcuNyA1LTE1LjggNS43LTI2IDIuMS0zMC41LTEuMS0xLjUtMi43LTIuNi01LTMuNi0yLjItLjktNS4xLTEuNS04LjYtMS45cy02LjctLjYtOS40LS44Yy0yLjgtLjItNi41LS4yLTExLjIgMC00LjcuMi04IC40LTEwLjEuNmE4NzQuNCA4NzQuNCAwIDAxLTE3LjEgMS41Yy0xLjMuMi0yLjcuNC00LjEuNS0xLjUuMS0yLjcuMi0zLjUuM2wtMi43LjNjLTEgLjEtMS43LjItMi4yLjJoLTMuMmwtMS0uMi0uNi0uNS0uNS0uOWMtMS4zLTMuMyAzLjctNy40IDE1LTEyLjRzMjIuMy04LjEgMzIuOS05LjNjOS44LTEuNSAyMS4zLTEuNSAzNC41LS4zczIxLjMgMy43IDI0LjMgNy40YzIuMyAzLjUgMi41IDEwLjcuNyAyMS43eiJ9fV19LG5hbWU6ImFtYXpvbi1jaXJjbGUiLHRoZW1lOiJmaWxsZWQifSxvbj1ubixOdD1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpvbn0pKX0sWm49dC5mb3J3YXJkUmVmKE50KSx5bj1abixnbj17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODI1IDc2OC45Yy0zLjMtLjktNy4zLS40LTExLjkgMS4zLTYxLjYgMjguMi0xMjEuNSA0OC4zLTE3OS43IDYwLjJDNTA3LjcgODU2IDM4NS4yIDg0Mi42IDI2NiA3OTAuM2MtMzMuMS0xNC42LTc5LjEtMzkuMi0xMzgtNzRhOS4zNiA5LjM2IDAgMDAtNS4zLTJjLTItLjEtMy43LjEtNS4zLjktMS42LjgtMi44IDEuOC0zLjcgMy4xLS45IDEuMy0xLjEgMy4xLS40IDUuNC42IDIuMiAyLjEgNC43IDQuNiA3LjQgMTAuNCAxMi4yIDIzLjMgMjUuMiAzOC42IDM5czM1LjYgMjkuNCA2MC45IDQ2LjhjMjUuMyAxNy40IDUxLjggMzIuOSA3OS4zIDQ2LjQgMjcuNiAxMy41IDU5LjYgMjQuOSA5Ni4xIDM0LjFzNzMgMTMuOCAxMDkuNCAxMy44YzM2LjIgMCA3MS40LTMuNyAxMDUuNS0xMC45IDM0LjItNy4zIDYzLTE1LjkgODYuNS0yNS45IDIzLjQtOS45IDQ1LTIxIDY0LjgtMzMgMTkuOC0xMiAzNC40LTIyLjIgNDMuOS0zMC4zIDkuNS04LjIgMTYuMy0xNC42IDIwLjItMTkuNCA0LjYtNS43IDYuOS0xMC42IDYuOS0xNC45LjEtNC41LTEuNy03LjEtNS03Ljl6TTUyNy40IDM0OC4xYy0xNS4yIDEuMy0zMy41IDQuMS01NSA4LjMtMjEuNSA0LjEtNDEuNCA5LjMtNTkuOCAxNS40cy0zNy4yIDE0LjYtNTYuMyAyNS40Yy0xOS4yIDEwLjgtMzUuNSAyMy4yLTQ5IDM3cy0yNC41IDMxLjEtMzMuMSA1MmMtOC42IDIwLjgtMTIuOSA0My43LTEyLjkgNjguNyAwIDI3LjEgNC43IDUxLjIgMTQuMyA3Mi41IDkuNSAyMS4zIDIyLjIgMzggMzguMiA1MC40IDE1LjkgMTIuNCAzNCAyMi4xIDU0IDI5LjIgMjAgNy4xIDQxLjIgMTAuMyA2My4yIDkuNCAyMi0uOSA0My41LTQuMyA2NC40LTEwLjMgMjAuOC01LjkgNDAuNC0xNS40IDU4LjYtMjguMyAxOC4yLTEyLjkgMzMuMS0yOC4yIDQ0LjgtNDUuNyA0LjMgNi42IDguMSAxMS41IDExLjUgMTQuN2w4LjcgOC45YzUuOCA1LjkgMTQuNyAxNC42IDI2LjcgMjYuMSAxMS45IDExLjUgMjQuMSAyMi43IDM2LjMgMzMuN2wxMDQuNC05OS45LTYtNC45Yy00LjMtMy4zLTkuNC04LTE1LjItMTQuMy01LjgtNi4yLTExLjYtMTMuMS0xNy4yLTIwLjUtNS43LTcuNC0xMC42LTE2LjEtMTQuNy0yNS45LTQuMS05LjgtNi4yLTE5LjMtNi4yLTI4LjVWMjU4LjdjMC0xMC4xLTEuOS0yMS01LjctMzIuOC0zLjktMTEuNy0xMC43LTI0LjUtMjAuNy0zOC4zLTEwLTEzLjgtMjIuNC0yNi4yLTM3LjItMzctMTQuOS0xMC44LTM0LjctMjAtNTkuNi0yNy40LTI0LjgtNy40LTUyLjYtMTEuMS04My4yLTExLjEtMzEuMyAwLTYwLjQgMy43LTg3LjYgMTAuOS0yNy4xIDcuMy01MC4zIDE3LTY5LjcgMjkuMi0xOS4zIDEyLjItMzUuOSAyNi4zLTQ5LjcgNDIuNC0xMy44IDE2LjEtMjQuMSAzMi45LTMwLjggNTAuNC02LjcgMTcuNS0xMC4xIDM1LjItMTAuMSA1My4xTDQwOCAzMTBjNS41LTE2LjQgMTIuOS0zMC42IDIyLTQyLjggOS4yLTEyLjIgMTcuOS0yMSAyNS44LTI2LjUgOC01LjUgMTYuNi05LjkgMjUuNy0xMy4yIDkuMi0zLjMgMTUuNC01IDE4LjYtNS40IDMuMi0uMyA1LjctLjQgNy42LS40IDI2LjcgMCA0NS4yIDcuOSA1NS42IDIzLjYgNi41IDkuNSA5LjcgMjMuOSA5LjcgNDMuM3Y1Ni42Yy0xNS4yLjYtMzAuNCAxLjYtNDUuNiAyLjl6TTU3My4xIDUwMGMwIDE2LjYtMi4yIDMxLjctNi41IDQ1LTkuMiAyOS4xLTI2LjcgNDcuNC01Mi40IDU0LjgtMjIuNCA2LjYtNDMuNyAzLjMtNjMuOS05LjgtMjEuNS0xNC0zMi4yLTMzLjgtMzIuMi01OS4zIDAtMTkuOSA1LTM2LjkgMTUtNTEuMSAxMC0xNC4xIDIzLjMtMjQuNyA0MC0zMS43czMzLTEyIDQ5LTE0LjljMTUuOS0zIDMzLTQuOCA1MS01LjRWNTAwem0zMzUuMiAyMTguOWMtNC4zLTUuNC0xNS45LTguOS0zNC45LTEwLjctMTktMS44LTM1LjUtMS43LTQ5LjcuNC0xNS4zIDEuOC0zMS4xIDYuMi00Ny4zIDEzLjQtMTYuMyA3LjEtMjMuNCAxMy4xLTIxLjYgMTcuOGwuNyAxLjMuOS43IDEuNC4yaDQuNmMuOCAwIDEuOC0uMSAzLjItLjIgMS40LS4xIDIuNy0uMyAzLjktLjQgMS4yLS4xIDIuOS0uMyA1LjEtLjQgMi4xLS4xIDQuMS0uNCA2LS43LjMgMCAzLjctLjMgMTAuMy0uOSA2LjYtLjYgMTEuNC0xIDE0LjMtMS4zIDIuOS0uMyA3LjgtLjYgMTQuNS0uOSA2LjctLjMgMTIuMS0uMyAxNi4xIDAgNCAuMyA4LjUuNyAxMy42IDEuMSA1LjEuNCA5LjIgMS4zIDEyLjQgMi43IDMuMiAxLjMgNS42IDMgNy4xIDUuMSA1LjIgNi42IDQuMiAyMS4yLTMgNDMuOXMtMTQgNDAuOC0yMC40IDU0LjJjLTIuOCA1LjctMi44IDkuMiAwIDEwLjdzNi43LjEgMTEuOS00YzE1LjYtMTIuMiAyOC42LTMwLjYgMzkuMS01NS4zIDYuMS0xNC42IDEwLjUtMjkuOCAxMy4xLTQ1LjcgMi40LTE1LjkgMi0yNi4yLTEuMy0zMXoifX1dfSxuYW1lOiJhbWF6b24iLHRoZW1lOiJvdXRsaW5lZCJ9LEJuPWduLFZuPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkJufSkpfSxObj10LmZvcndhcmRSZWYoVm4pLGZ0PU5uLGV0PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTU0Ny44IDMyNi43Yy03LjItMTAuOS0yMC4xLTE2LjQtMzguNy0xNi40LTEuMyAwLTMgLjEtNS4zLjMtMi4yLjItNi42IDEuNS0xMi45IDMuN2E3OS40IDc5LjQgMCAwMC0xNy45IDkuMWMtNS41IDMuOC0xMS41IDEwLTE4IDE4LjQtNi40IDguNS0xMS41IDE4LjQtMTUuMyAyOS44bC05NC04LjRjMC0xMi40IDIuNC0yNC43IDctMzYuOXMxMS44LTIzLjkgMjEuNC0zNWM5LjYtMTEuMiAyMS4xLTIxIDM0LjUtMjkuNCAxMy40LTguNSAyOS42LTE1LjIgNDguNC0yMC4zIDE4LjktNS4xIDM5LjEtNy42IDYwLjktNy42IDIxLjMgMCA0MC42IDIuNiA1Ny44IDcuNyAxNy4yIDUuMiAzMS4xIDExLjUgNDEuNCAxOS4xYTExNyAxMTcgMCAwMTI1LjkgMjUuN2M2LjkgOS42IDExLjcgMTguNSAxNC40IDI2LjcgMi43IDguMiA0IDE1LjcgNCAyMi44djE4Mi41YzAgNi40IDEuNCAxMyA0LjMgMTkuOCAyLjkgNi44IDYuMyAxMi44IDEwLjIgMTggMy45IDUuMiA3LjkgOS45IDEyIDE0LjMgNC4xIDQuMyA3LjYgNy43IDEwLjYgOS45bDQuMSAzLjQtNzIuNSA2OS40Yy04LjUtNy43LTE2LjktMTUuNC0yNS4yLTIzLjQtOC4zLTgtMTQuNS0xNC0xOC41LTE4LjFsLTYuMS02LjJjLTIuNC0yLjMtNS01LjctOC0xMC4yLTguMSAxMi4yLTE4LjUgMjIuOC0zMS4xIDMxLjgtMTIuNyA5LTI2LjMgMTUuNi00MC43IDE5LjctMTQuNSA0LjEtMjkuNCA2LjUtNDQuNyA3LjEtMTUuMy42LTMwLTEuNS00My45LTYuNS0xMy45LTUtMjYuNS0xMS43LTM3LjYtMjAuMy0xMS4xLTguNi0xOS45LTIwLjItMjYuNS0zNS02LjYtMTQuOC05LjktMzEuNS05LjktNTAuNCAwLTE3LjQgMy0zMy4zIDguOS00Ny43IDYtMTQuNSAxMy42LTI2LjUgMjMtMzYuMSA5LjQtOS42IDIwLjctMTguMiAzNC0yNS43czI2LjQtMTMuNCAzOS4yLTE3LjdjMTIuOC00LjIgMjYuNi03LjggNDEuNS0xMC43IDE0LjktMi45IDI3LjYtNC44IDM4LjItNS43IDEwLjYtLjkgMjEuMi0xLjYgMzEuOC0ydi0zOS40YzAtMTMuNS0yLjMtMjMuNS02LjctMzAuMXptMTgwLjUgMzc5LjZjLTIuOCAzLjMtNy41IDcuOC0xNC4xIDEzLjVzLTE2LjggMTIuNy0zMC41IDIxLjFjLTEzLjcgOC40LTI4LjggMTYtNDUgMjIuOS0xNi4zIDYuOS0zNi4zIDEyLjktNjAuMSAxOC0yMy43IDUuMS00OC4yIDcuNi03My4zIDcuNi0yNS40IDAtNTAuNy0zLjItNzYuMS05LjYtMjUuNC02LjQtNDcuNi0xNC4zLTY2LjgtMjMuNy0xOS4xLTkuNC0zNy42LTIwLjItNTUuMS0zMi4yLTE3LjYtMTIuMS0zMS43LTIyLjktNDIuNC0zMi41LTEwLjYtOS42LTE5LjYtMTguNy0yNi44LTI3LjEtMS43LTEuOS0yLjgtMy42LTMuMi01LjEtLjQtMS41LS4zLTIuOC4zLTMuNy42LS45IDEuNS0xLjYgMi42LTIuMmE3LjQyIDcuNDIgMCAwMTcuNC44YzQwLjkgMjQuMiA3Mi45IDQxLjMgOTUuOSA1MS40IDgyLjkgMzYuNCAxNjggNDUuNyAyNTUuMyAyNy45IDQwLjUtOC4zIDgyLjEtMjIuMiAxMjQuOS00MS44IDMuMi0xLjIgNi0xLjUgOC4zLS45IDIuMy42IDMuNSAyLjQgMy41IDUuNCAwIDIuOC0xLjYgNi4zLTQuOCAxMC4yem01OS45LTI5Yy0xLjggMTEuMS00LjkgMjEuNi05LjEgMzEuOC03LjIgMTcuMS0xNi4zIDMwLTI3LjEgMzguNC0zLjYgMi45LTYuNCAzLjgtOC4zIDIuOC0xLjktMS0xLjktMy41IDAtNy40IDQuNS05LjMgOS4yLTIxLjggMTQuMi0zNy43IDUtMTUuOCA1LjctMjYgMi4xLTMwLjUtMS4xLTEuNS0yLjctMi42LTUtMy42LTIuMi0uOS01LjEtMS41LTguNi0xLjlzLTYuNy0uNi05LjQtLjhjLTIuOC0uMi02LjUtLjItMTEuMiAwLTQuNy4yLTggLjQtMTAuMS42YTg3NC40IDg3NC40IDAgMDEtMTcuMSAxLjVjLTEuMy4yLTIuNy40LTQuMS41LTEuNS4xLTIuNy4yLTMuNS4zbC0yLjcuM2MtMSAuMS0xLjcuMi0yLjIuMmgtMy4ybC0xLS4yLS42LS41LS41LS45Yy0xLjMtMy4zIDMuNy03LjQgMTUtMTIuNHMyMi4zLTguMSAzMi45LTkuM2M5LjgtMS41IDIxLjMtMS41IDM0LjUtLjNzMjEuMyAzLjcgMjQuMyA3LjRjMi4zIDMuNSAyLjUgMTAuNy43IDIxLjd6TTQ4NSA0NjcuNWMtMTEuNiA0LjktMjAuOSAxMi4yLTI3LjggMjItNi45IDkuOC0xMC40IDIxLjYtMTAuNCAzNS41IDAgMTcuOCA3LjUgMzEuNSAyMi40IDQxLjIgMTQuMSA5LjEgMjguOSAxMS40IDQ0LjQgNi44IDE3LjktNS4yIDMwLTE3LjkgMzYuNC0zOC4xIDMtOS4zIDQuNS0xOS43IDQuNS0zMS4zdi01MC4yYy0xMi42LjQtMjQuNCAxLjYtMzUuNSAzLjctMTEuMSAyLjEtMjIuNCA1LjYtMzQgMTAuNHoifX1dfSxuYW1lOiJhbWF6b24tc3F1YXJlIix0aGVtZToiZmlsbGVkIn0sSnQ9ZXQsd3Q9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246SnR9KSl9LF90PXQuZm9yd2FyZFJlZih3dCkseG49X3QsWW49e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTI3MC4xIDc0MS43YzAgMjMuNCAxOS4xIDQyLjUgNDIuNiA0Mi41aDQ4Ljd2MTIwLjRjMCAzMC41IDI0LjUgNTUuNCA1NC42IDU1LjQgMzAuMiAwIDU0LjYtMjQuOCA1NC42LTU1LjRWNzg0LjFoODV2MTIwLjRjMCAzMC41IDI0LjUgNTUuNCA1NC42IDU1LjQgMzAuMiAwIDU0LjYtMjQuOCA1NC42LTU1LjRWNzg0LjFoNDguN2MyMy41IDAgNDIuNi0xOS4xIDQyLjYtNDIuNVYzNDYuNGgtNDg2djM5NS4zem0zNTcuMS02MDAuMWw0NC45LTY1YzIuNi0zLjggMi04LjktMS41LTExLjQtMy41LTIuNC04LjUtMS4yLTExLjEgMi42bC00Ni42IDY3LjZjLTMwLjctMTIuMS02NC45LTE4LjgtMTAwLjgtMTguOC0zNS45IDAtNzAuMSA2LjctMTAwLjggMTguOGwtNDYuNi02Ny41Yy0yLjYtMy44LTcuNi01LjEtMTEuMS0yLjYtMy41IDIuNC00LjEgNy40LTEuNSAxMS40bDQ0LjkgNjVjLTcxLjQgMzMuMi0xMjEuNCA5Ni4xLTEyNy44IDE2OS42aDQ4NmMtNi42LTczLjYtNTYuNy0xMzYuNS0xMjgtMTY5Ljd6TTQwOS41IDI0NC4xYTI2LjkgMjYuOSAwIDExMjYuOS0yNi45IDI2Ljk3IDI2Ljk3IDAgMDEtMjYuOSAyNi45em0yMDguNCAwYTI2LjkgMjYuOSAwIDExMjYuOS0yNi45IDI2Ljk3IDI2Ljk3IDAgMDEtMjYuOSAyNi45em0yMjMuNCAxMDAuN2MtMzAuMiAwLTU0LjYgMjQuOC01NC42IDU1LjR2MjE2LjRjMCAzMC41IDI0LjUgNTUuNCA1NC42IDU1LjQgMzAuMiAwIDU0LjYtMjQuOCA1NC42LTU1LjRWNDAwLjFjLjEtMzAuNi0yNC4zLTU1LjMtNTQuNi01NS4zem0tNjU4LjYgMGMtMzAuMiAwLTU0LjYgMjQuOC01NC42IDU1LjR2MjE2LjRjMCAzMC41IDI0LjUgNTUuNCA1NC42IDU1LjQgMzAuMiAwIDU0LjYtMjQuOCA1NC42LTU1LjRWNDAwLjFjMC0zMC42LTI0LjUtNTUuMy01NC42LTU1LjN6In19XX0sbmFtZToiYW5kcm9pZCIsdGhlbWU6ImZpbGxlZCJ9LFBuPVluLExuPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOlBufSkpfSxlcj10LmZvcndhcmRSZWYoTG4pLFFuPWVyLHVyPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00NDguMyAyMjUuMmMtMTguNiAwLTMyIDEzLjQtMzIgMzEuOXMxMy41IDMxLjkgMzIgMzEuOWMxOC42IDAgMzItMTMuNCAzMi0zMS45LjEtMTguNC0xMy40LTMxLjktMzItMzEuOXptMzkzLjkgOTYuNGMtMTMuOC0xMy44LTMyLjctMjEuNS01My4yLTIxLjUtMy45IDAtNy40LjQtMTAuNyAxdi0xaC0zLjZjLTUuNS0zMC42LTE4LjYtNjAuNS0zOC4xLTg3LjQtMTguNy0yNS43LTQzLTQ3LjktNzAuOC02NC45bDI1LjEtMzUuOHYtMy4zYzAtLjguNC0yLjMuNy0zLjguNi0yLjQgMS40LTUuNSAxLjQtOC45IDAtMTguNS0xMy41LTMxLjktMzItMzEuOS05LjggMC0xOS41IDUuNy0yNS45IDE1LjRsLTI5LjMgNDIuMWMtMzAtOS44LTYyLjQtMTUtOTMuOC0xNS0zMS4zIDAtNjMuNyA1LjItOTMuOCAxNUwzODkgNzkuNGMtNi42LTkuNi0xNi4xLTE1LjQtMjYtMTUuNC0xOC42IDAtMzIgMTMuNC0zMiAzMS45IDAgNi4yIDIuNSAxMi44IDYuNyAxNy40bDIyLjYgMzIuM2MtMjguNyAxNy01My41IDM5LjQtNzIuMiA2NS4xLTE5LjQgMjYuOS0zMiA1Ni44LTM2LjcgODcuNGgtNS41djFjLTMuMi0uNi02LjctMS0xMC43LTEtMjAuMyAwLTM5LjIgNy41LTUzLjEgMjEuMy0xMy44IDEzLjgtMjEuNSAzMi42LTIxLjUgNTN2MjM1YzAgMjAuMyA3LjUgMzkuMSAyMS40IDUyLjkgMTMuOCAxMy44IDMyLjggMjEuNSA1My4yIDIxLjUgMy45IDAgNy40LS40IDEwLjctMXY5My41YzAgMjkuMiAyMy45IDUzLjEgNTMuMiA1My4xSDMzMXY1OC4zYzAgMjAuMyA3LjUgMzkuMSAyMS40IDUyLjkgMTMuOCAxMy44IDMyLjggMjEuNSA1My4yIDIxLjUgMjAuMyAwIDM5LjItNy41IDUzLjEtMjEuMyAxMy44LTEzLjggMjEuNS0zMi42IDIxLjUtNTN2LTU4LjJINTQ0djU4LjFjMCAyMC4zIDcuNSAzOS4xIDIxLjQgNTIuOSAxMy44IDEzLjggMzIuOCAyMS41IDUzLjIgMjEuNSAyMC40IDAgMzkuMi03LjUgNTMuMS0yMS42IDEzLjgtMTMuOCAyMS41LTMyLjYgMjEuNS01M3YtNTguMmgzMS45YzI5LjMgMCA1My4yLTIzLjggNTMuMi01My4xdi05MS40YzMuMi42IDYuNyAxIDEwLjcgMSAyMC4zIDAgMzkuMi03LjUgNTMuMS0yMS4zIDEzLjgtMTMuOCAyMS41LTMyLjYgMjEuNS01M3YtMjM1Yy0uMS0yMC4zLTcuNi0zOS0yMS40LTUyLjl6TTI0NiA2MDkuNmMwIDYuOC0zLjkgMTAuNi0xMC43IDEwLjYtNi44IDAtMTAuNy0zLjgtMTAuNy0xMC42VjM3NC41YzAtNi44IDMuOS0xMC42IDEwLjctMTAuNiA2LjggMCAxMC43IDMuOCAxMC43IDEwLjZ2MjM1LjF6bTEzMS4xLTM5Ni44YzM3LjUtMjcuMyA4NS4zLTQyLjMgMTM1LTQyLjNzOTcuNSAxNS4xIDEzNSA0Mi41YzMyLjQgMjMuNyA1NC4yIDU0LjIgNjIuNyA4Ny41SDMxNC40YzguNS0zMy40IDMwLjUtNjQgNjIuNy04Ny43em0zOS4zIDY3NC43Yy0uNiA1LjYtNC40IDguNy0xMC41IDguNy02LjggMC0xMC43LTMuOC0xMC43LTEwLjZ2LTU4LjJoMjEuMnY2MC4xem0yMDIuMyA4LjdjLTYuOCAwLTEwLjctMy44LTEwLjctMTAuNnYtNTguMmgyMS4ydjYwLjFjLS42IDUuNi00LjMgOC43LTEwLjUgOC43em05NS44LTEzMi42SDMwOS45VjM2NGg0MDQuNnYzOTkuNnptODUuMi0xNTRjMCA2LjgtMy45IDEwLjYtMTAuNyAxMC42LTYuOCAwLTEwLjctMy44LTEwLjctMTAuNlYzNzQuNWMwLTYuOCAzLjktMTAuNiAxMC43LTEwLjYgNi44IDAgMTAuNyAzLjggMTAuNyAxMC42djIzNS4xek01NzYuMSAyMjUuMmMtMTguNiAwLTMyIDEzLjQtMzIgMzEuOXMxMy41IDMxLjkgMzIgMzEuOWMxOC42IDAgMzIuMS0xMy40IDMyLjEtMzItLjEtMTguNi0xMy40LTMxLjgtMzIuMS0zMS44eiJ9fV19LG5hbWU6ImFuZHJvaWQiLHRoZW1lOiJvdXRsaW5lZCJ9LGlyPXVyLHZuPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOmlyfSkpfSxjcj10LmZvcndhcmRSZWYodm4pLFduPWNyLHduPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0zNzguOSA3MzhjLTMuMSAwLTYuMS0uNS04LjgtMS41bDQuNCAzMC43aDI2LjNsLTE1LjUtMjkuOWMtMi4xLjUtNC4yLjctNi40Ljd6bTQyMS0yOTEuMmMtMTIuNiAwLTI0LjggMS41LTM2LjUgNC4yLTIxLjQtMzguNC02Mi4zLTY0LjMtMTA5LjMtNjQuMy02LjkgMC0xMy42LjYtMjAuMiAxLjYtMzUuNC03Ny40LTExMy40LTEzMS4xLTIwMy45LTEzMS4xLTExMi4zIDAtMjA1LjMgODIuNi0yMjEuNiAxOTAuNEMxMjcuMyA0NTUuNSA2NCA1MjMuOCA2NCA2MDdjMCA4OC40IDcxLjYgMTYwLjEgMTYwIDE2MC4yaDUwbDEzLjItMjcuNmMtMjYuMi04LjMtNDMuMy0yOS0zOS4xLTQ4LjggNC42LTIxLjYgMzIuOC0zMy45IDYzLjEtMjcuNSAyMi45IDQuOSA0MC40IDE5LjEgNDUuNSAzNS4xYTI2LjEgMjYuMSAwIDAxMjIuMS0xMi40aC4yYy0uOC0zLjItMS4yLTYuNS0xLjItOS45IDAtMjAuMSAxNC44LTM2LjcgMzQuMS0zOS42di0yNS40YzAtNC40IDMuNi04IDgtOHM4IDMuNiA4IDh2MjYuM2M0LjYgMS4yIDguOCAzLjIgMTIuNiA1LjhsMTkuNS0yMS40YzMtMy4zIDgtMy41IDExLjMtLjUgMy4zIDMgMy41IDggLjUgMTEuM2wtMjAgMjItLjIuMmE0MCA0MCAwIDAxLTQ2LjkgNTkuMmMtLjQgNS42LTIuNiAxMC43LTYgMTQuOGwyMCAzOC40SDgwNHYtLjFjODYuNS0yLjIgMTU2LTczIDE1Ni0xNjAuMSAwLTg4LjUtNzEuNy0xNjAuMi0xNjAuMS0xNjAuMnpNMzM4LjIgNzM3LjJsLTQuMyAzMGgyNC40bC01LjktNDEuNWMtMy41IDQuNi04LjMgOC41LTE0LjIgMTEuNXpNNzk3LjUgMzA1YTQ4IDQ4IDAgMTA5NiAwIDQ4IDQ4IDAgMTAtOTYgMHptLTY1LjcgNjEuM2EyNCAyNCAwIDEwNDggMCAyNCAyNCAwIDEwLTQ4IDB6TTMwMy40IDc0Mi45bC0xMS42IDI0LjNoMjZsMy41LTI0LjdjLTUuNy44LTExLjcgMS0xNy45LjR6In19XX0sbmFtZToiYW50LWNsb3VkIix0aGVtZToib3V0bGluZWQifSxDdD13bixadD1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpDdH0pKX0sYW49dC5mb3J3YXJkUmVmKFp0KSxEdD1hbixrdD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNzE2LjMgMzEzLjhjMTktMTguOSAxOS00OS43IDAtNjguNmwtNjkuOS02OS45LjEuMWMtMTguNS0xOC41LTUwLjMtNTAuMy05NS4zLTk1LjItMjEuMi0yMC43LTU1LjUtMjAuNS03Ni41LjVMODAuOSA0NzQuMmE1My44NCA1My44NCAwIDAwMCA3Ni40TDQ3NC42IDk0NGE1NC4xNCA1NC4xNCAwIDAwNzYuNSAwbDE2NS4xLTE2NWMxOS0xOC45IDE5LTQ5LjcgMC02OC42YTQ4LjcgNDguNyAwIDAwLTY4LjcgMGwtMTI1IDEyNS4yYy01LjIgNS4yLTEzLjMgNS4yLTE4LjUgMEwxODkuNSA1MjEuNGMtNS4yLTUuMi01LjItMTMuMyAwLTE4LjVsMzE0LjQtMzE0LjJjLjQtLjQuOS0uNyAxLjMtMS4xIDUuMi00LjEgMTIuNC0zLjcgMTcuMiAxLjFsMTI1LjIgMTI1LjFjMTkgMTkgNDkuOCAxOSA2OC43IDB6TTQwOC42IDUxNC40YTEwNi4zIDEwNi4yIDAgMTAyMTIuNiAwIDEwNi4zIDEwNi4yIDAgMTAtMjEyLjYgMHptNTM2LjItMzguNkw4MjEuOSAzNTMuNWMtMTktMTguOS00OS44LTE4LjktNjguNy4xYTQ4LjQgNDguNCAwIDAwMCA2OC42bDgzIDgyLjljNS4yIDUuMiA1LjIgMTMuMyAwIDE4LjVsLTgxLjggODEuN2E0OC40IDQ4LjQgMCAwMDAgNjguNiA0OC43IDQ4LjcgMCAwMDY4LjcgMGwxMjEuOC0xMjEuN2E1My45MyA1My45MyAwIDAwLS4xLTc2LjR6In19XX0sbmFtZToiYW50LWRlc2lnbiIsdGhlbWU6Im91dGxpbmVkIn0sdG49a3QsbW49ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246dG59KSl9LEtuPXQuZm9yd2FyZFJlZihtbiksSm49S24sWG49e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkwOCA2NDBIODA0VjQ4OGMwLTQuNC0zLjYtOC04LThINTQ4di05NmgxMDhjOC44IDAgMTYtNy4yIDE2LTE2VjgwYzAtOC44LTcuMi0xNi0xNi0xNkgzNjhjLTguOCAwLTE2IDcuMi0xNiAxNnYyODhjMCA4LjggNy4yIDE2IDE2IDE2aDEwOHY5NkgyMjhjLTQuNCAwLTggMy42LTggOHYxNTJIMTE2Yy04LjggMC0xNiA3LjItMTYgMTZ2Mjg4YzAgOC44IDcuMiAxNiAxNiAxNmgyODhjOC44IDAgMTYtNy4yIDE2LTE2VjY1NmMwLTguOC03LjItMTYtMTYtMTZIMjkydi04OGg0NDB2ODhINjIwYy04LjggMC0xNiA3LjItMTYgMTZ2Mjg4YzAgOC44IDcuMiAxNiAxNiAxNmgyODhjOC44IDAgMTYtNy4yIDE2LTE2VjY1NmMwLTguOC03LjItMTYtMTYtMTZ6bS01NjQgNzZ2MTY4SDE3NlY3MTZoMTY4em04NC00MDhWMTQwaDE2OHYxNjhINDI4em00MjAgNTc2SDY4MFY3MTZoMTY4djE2OHoifX1dfSxuYW1lOiJhcGFydG1lbnQiLHRoZW1lOiJvdXRsaW5lZCJ9LGZyPVhuLHJyPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOmZyfSkpfSxocj10LmZvcndhcmRSZWYocnIpLEZuPWhyLGFyPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MTcuNyAxNDguOGwtNDIuNC00Mi40Yy0xLjYtMS42LTMuNi0yLjMtNS43LTIuM3MtNC4xLjgtNS43IDIuM2wtNzYuMSA3Ni4xYTE5OS4yNyAxOTkuMjcgMCAwMC0xMTIuMS0zNC4zYy01MS4yIDAtMTAyLjQgMTkuNS0xNDEuNSA1OC42TDQzMi4zIDMwOC43YTguMDMgOC4wMyAwIDAwMCAxMS4zTDcwNCA1OTEuN2MxLjYgMS42IDMuNiAyLjMgNS43IDIuMyAyIDAgNC4xLS44IDUuNy0yLjNsMTAxLjktMTAxLjljNjguOS02OSA3Ny0xNzUuNyAyNC4zLTI1My41bDc2LjEtNzYuMWMzLjEtMy4yIDMuMS04LjMgMC0xMS40ek01NzguOSA1NDYuN2E4LjAzIDguMDMgMCAwMC0xMS4zIDBMNTAxIDYxMy4zIDQxMC43IDUyM2w2Ni43LTY2LjdjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM0w0NDEgNDA4LjZhOC4wMyA4LjAzIDAgMDAtMTEuMyAwTDM2MyA0NzUuM2wtNDMtNDNhNy44NSA3Ljg1IDAgMDAtNS43LTIuM2MtMiAwLTQuMS44LTUuNyAyLjNMMjA2LjggNTM0LjJjLTY4LjkgNjguOS03NyAxNzUuNy0yNC4zIDI1My41bC03Ni4xIDc2LjFhOC4wMyA4LjAzIDAgMDAwIDExLjNsNDIuNCA0Mi40YzEuNiAxLjYgMy42IDIuMyA1LjcgMi4zczQuMS0uOCA1LjctMi4zbDc2LjEtNzYuMWMzMy43IDIyLjkgNzIuOSAzNC4zIDExMi4xIDM0LjMgNTEuMiAwIDEwMi40LTE5LjUgMTQxLjUtNTguNmwxMDEuOS0xMDEuOWMzLjEtMy4xIDMuMS04LjIgMC0xMS4zbC00My00MyA2Ni43LTY2LjdjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM2wtMzYuNi0zNi4yeiJ9fV19LG5hbWU6ImFwaSIsdGhlbWU6ImZpbGxlZCJ9LGxyPWFyLCRuPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOmxyfSkpfSxzcj10LmZvcndhcmRSZWYoJG4pLEZyPXNyLFplPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MTcuNyAxNDguOGwtNDIuNC00Mi40Yy0xLjYtMS42LTMuNi0yLjMtNS43LTIuM3MtNC4xLjgtNS43IDIuM2wtNzYuMSA3Ni4xYTE5OS4yNyAxOTkuMjcgMCAwMC0xMTIuMS0zNC4zYy01MS4yIDAtMTAyLjQgMTkuNS0xNDEuNSA1OC42TDQzMi4zIDMwOC43YTguMDMgOC4wMyAwIDAwMCAxMS4zTDcwNCA1OTEuN2MxLjYgMS42IDMuNiAyLjMgNS43IDIuMyAyIDAgNC4xLS44IDUuNy0yLjNsMTAxLjktMTAxLjljNjguOS02OSA3Ny0xNzUuNyAyNC4zLTI1My41bDc2LjEtNzYuMWMzLjEtMy4yIDMuMS04LjMgMC0xMS40ek03NjkuMSA0NDEuN2wtNTkuNCA1OS40LTE4Ni44LTE4Ni44IDU5LjQtNTkuNGMyNC45LTI0LjkgNTguMS0zOC43IDkzLjQtMzguNyAzNS4zIDAgNjguNCAxMy43IDkzLjQgMzguNyAyNC45IDI0LjkgMzguNyA1OC4xIDM4LjcgOTMuNCAwIDM1LjMtMTMuOCA2OC40LTM4LjcgOTMuNHptLTE5MC4yIDEwNWE4LjAzIDguMDMgMCAwMC0xMS4zIDBMNTAxIDYxMy4zIDQxMC43IDUyM2w2Ni43LTY2LjdjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM0w0NDEgNDA4LjZhOC4wMyA4LjAzIDAgMDAtMTEuMyAwTDM2MyA0NzUuM2wtNDMtNDNhNy44NSA3Ljg1IDAgMDAtNS43LTIuM2MtMiAwLTQuMS44LTUuNyAyLjNMMjA2LjggNTM0LjJjLTY4LjkgNjktNzcgMTc1LjctMjQuMyAyNTMuNWwtNzYuMSA3Ni4xYTguMDMgOC4wMyAwIDAwMCAxMS4zbDQyLjQgNDIuNGMxLjYgMS42IDMuNiAyLjMgNS43IDIuM3M0LjEtLjggNS43LTIuM2w3Ni4xLTc2LjFjMzMuNyAyMi45IDcyLjkgMzQuMyAxMTIuMSAzNC4zIDUxLjIgMCAxMDIuNC0xOS41IDE0MS41LTU4LjZsMTAxLjktMTAxLjljMy4xLTMuMSAzLjEtOC4yIDAtMTEuM2wtNDMtNDMgNjYuNy02Ni43YzMuMS0zLjEgMy4xLTguMiAwLTExLjNsLTM2LjYtMzYuMnpNNDQxLjcgNzY5LjFhMTMxLjMyIDEzMS4zMiAwIDAxLTkzLjQgMzguN2MtMzUuMyAwLTY4LjQtMTMuNy05My40LTM4LjdhMTMxLjMyIDEzMS4zMiAwIDAxLTM4LjctOTMuNGMwLTM1LjMgMTMuNy02OC40IDM4LjctOTMuNGw1OS40LTU5LjQgMTg2LjggMTg2LjgtNTkuNCA1OS40eiJ9fV19LG5hbWU6ImFwaSIsdGhlbWU6Im91dGxpbmVkIn0sSGU9WmUsbnQ9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246SGV9KSl9LHJ0PXQuZm9yd2FyZFJlZihudCksdnQ9cnQsVnQ9e2ljb246ZnVuY3Rpb24oZix2KXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMTQ4LjIgNjc0LjZ6bTEwNi43LTkyLjNjLTI1IDI1LTM4LjcgNTguMS0zOC43IDkzLjRzMTMuOCA2OC41IDM4LjcgOTMuNGMyNSAyNSA1OC4xIDM4LjcgOTMuNCAzOC43IDM1LjMgMCA2OC41LTEzLjggOTMuNC0zOC43bDU5LjQtNTkuNC0xODYuOC0xODYuOC01OS40IDU5LjR6bTQyMC44LTM2Ni4xYy0zNS4zIDAtNjguNSAxMy44LTkzLjQgMzguN2wtNTkuNCA1OS40IDE4Ni44IDE4Ni44IDU5LjQtNTkuNGMyNC45LTI1IDM4LjctNTguMSAzOC43LTkzLjRzLTEzLjgtNjguNS0zOC43LTkzLjRjLTI1LTI1LTU4LjEtMzguNy05My40LTM4Ljd6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTU3OC45IDU0Ni43YTguMDMgOC4wMyAwIDAwLTExLjMgMEw1MDEgNjEzLjMgNDEwLjcgNTIzbDY2LjctNjYuN2MzLjEtMy4xIDMuMS04LjIgMC0xMS4zTDQ0MSA0MDguNmE4LjAzIDguMDMgMCAwMC0xMS4zIDBMMzYzIDQ3NS4zbC00My00M2E3Ljg1IDcuODUgMCAwMC01LjctMi4zYy0yIDAtNC4xLjgtNS43IDIuM0wyMDYuOCA1MzQuMmExOTkuNDUgMTk5LjQ1IDAgMDAtNTguNiAxNDAuNGMtLjIgMzkuNSAxMS4yIDc5LjEgMzQuMyAxMTMuMWwtNzYuMSA3Ni4xYTguMDMgOC4wMyAwIDAwMCAxMS4zbDQyLjQgNDIuNGMxLjYgMS42IDMuNiAyLjMgNS43IDIuM3M0LjEtLjggNS43LTIuM2w3Ni4xLTc2LjFjMzMuNyAyMi45IDcyLjkgMzQuMyAxMTIuMSAzNC4zIDUxLjIgMCAxMDIuNC0xOS41IDE0MS41LTU4LjZsMTAxLjktMTAxLjljMy4xLTMuMSAzLjEtOC4yIDAtMTEuM2wtNDMtNDMgNjYuNy02Ni43YzMuMS0zLjEgMy4xLTguMiAwLTExLjNsLTM2LjYtMzYuMnpNNDQxLjcgNzY5LjFhMTMxLjMyIDEzMS4zMiAwIDAxLTkzLjQgMzguN2MtMzUuMyAwLTY4LjQtMTMuNy05My40LTM4LjctMjQuOS0yNC45LTM4LjctNTguMS0zOC43LTkzLjRzMTMuNy02OC40IDM4LjctOTMuNGw1OS40LTU5LjQgMTg2LjggMTg2LjgtNTkuNCA1OS40em00NzYtNjIwLjNsLTQyLjQtNDIuNGMtMS42LTEuNi0zLjYtMi4zLTUuNy0yLjNzLTQuMS44LTUuNyAyLjNsLTc2LjEgNzYuMWExOTkuMjcgMTk5LjI3IDAgMDAtMTEyLjEtMzQuM2MtNTEuMiAwLTEwMi40IDE5LjUtMTQxLjUgNTguNkw0MzIuMyAzMDguN2E4LjAzIDguMDMgMCAwMDAgMTEuM0w3MDQgNTkxLjdjMS42IDEuNiAzLjYgMi4zIDUuNyAyLjMgMiAwIDQuMS0uOCA1LjctMi4zbDEwMS45LTEwMS45YzY4LjktNjkgNzctMTc1LjcgMjQuMy0yNTMuNWw3Ni4xLTc2LjFjMy4xLTMuMiAzLjEtOC4zIDAtMTEuNHpNNzY5LjEgNDQxLjdsLTU5LjQgNTkuNC0xODYuOC0xODYuOCA1OS40LTU5LjRjMjQuOS0yNC45IDU4LjEtMzguNyA5My40LTM4LjdzNjguNCAxMy43IDkzLjQgMzguN2MyNC45IDI0LjkgMzguNyA1OC4xIDM4LjcgOTMuNHMtMTMuOCA2OC40LTM4LjcgOTMuNHoiLGZpbGw6Zn19XX19LG5hbWU6ImFwaSIsdGhlbWU6InR3b3RvbmUifSxlbj1WdCxSbj1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjplbn0pKX0sam49dC5mb3J3YXJkUmVmKFJuKSxibj1qbixIbj17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNzQ3LjQgNTM1LjdjLS40LTY4LjIgMzAuNS0xMTkuNiA5Mi45LTE1Ny41LTM0LjktNTAtODcuNy03Ny41LTE1Ny4zLTgyLjgtNjUuOS01LjItMTM4IDM4LjQtMTY0LjQgMzguNC0yNy45IDAtOTEuNy0zNi42LTE0MS45LTM2LjZDMjczLjEgMjk4LjggMTYzIDM3OS44IDE2MyA1NDQuNmMwIDQ4LjcgOC45IDk5IDI2LjcgMTUwLjggMjMuOCA2OC4yIDEwOS42IDIzNS4zIDE5OS4xIDIzMi42IDQ2LjgtMS4xIDc5LjktMzMuMiAxNDAuOC0zMy4yIDU5LjEgMCA4OS43IDMzLjIgMTQxLjkgMzMuMiA5MC4zLTEuMyAxNjcuOS0xNTMuMiAxOTAuNS0yMjEuNi0xMjEuMS01Ny4xLTExNC42LTE2Ny4yLTExNC42LTE3MC43em0tMTA1LjEtMzA1YzUwLjctNjAuMiA0Ni4xLTExNSA0NC42LTEzNC43LTQ0LjggMi42LTk2LjYgMzAuNS0xMjYuMSA2NC44LTMyLjUgMzYuOC01MS42IDgyLjMtNDcuNSAxMzMuNiA0OC40IDMuNyA5Mi42LTIxLjIgMTI5LTYzLjd6In19XX0sbmFtZToiYXBwbGUiLHRoZW1lOiJmaWxsZWQifSxHdD1IbixTbj1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpHdH0pKX0sT249dC5mb3J3YXJkUmVmKFNuKSxfbj1PbixQZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNzQ3LjQgNTM1LjdjLS40LTY4LjIgMzAuNS0xMTkuNiA5Mi45LTE1Ny41LTM0LjktNTAtODcuNy03Ny41LTE1Ny4zLTgyLjgtNjUuOS01LjItMTM4IDM4LjQtMTY0LjQgMzguNC0yNy45IDAtOTEuNy0zNi42LTE0MS45LTM2LjZDMjczLjEgMjk4LjggMTYzIDM3OS44IDE2MyA1NDQuNmMwIDQ4LjcgOC45IDk5IDI2LjcgMTUwLjggMjMuOCA2OC4yIDEwOS42IDIzNS4zIDE5OS4xIDIzMi42IDQ2LjgtMS4xIDc5LjktMzMuMiAxNDAuOC0zMy4yIDU5LjEgMCA4OS43IDMzLjIgMTQxLjkgMzMuMiA5MC4zLTEuMyAxNjcuOS0xNTMuMiAxOTAuNS0yMjEuNi0xMjEuMS01Ny4xLTExNC42LTE2Ny4yLTExNC42LTE3MC43em0tMTAuNiAyNjdjLTE0LjMgMTkuOS0yOC43IDM1LjYtNDEuOSA0NS43LTEwLjUgOC0xOC42IDExLjQtMjQgMTEuNi05LS4xLTE3LjctMi4zLTM0LjctOC44LTEuMi0uNS0yLjUtMS00LjItMS42bC00LjQtMS43Yy0xNy40LTYuNy0yNy44LTEwLjMtNDEuMS0xMy44LTE4LjYtNC44LTM3LjEtNy40LTU2LjktNy40LTIwLjIgMC0zOS4yIDIuNS01OC4xIDcuMi0xMy45IDMuNS0yNS42IDcuNC00Mi43IDEzLjgtLjcuMy04LjEgMy4xLTEwLjIgMy45LTMuNSAxLjMtNi4yIDIuMy04LjcgMy4yLTEwLjQgMy42LTE3IDUuMS0yMi45IDUuMi0uNyAwLTEuMy0uMS0xLjgtLjItMS4xLS4yLTIuNS0uNi00LjEtMS4zLTQuNS0xLjgtOS45LTUuMS0xNi05LjgtMTQtMTAuOS0yOS40LTI4LTQ1LjEtNDkuOS0yNy41LTM4LjYtNTMuNS04OS44LTY2LTEyNS43LTE1LjQtNDQuOC0yMy04Ny43LTIzLTEyOC42IDAtNjAuMiAxNy44LTEwNiA0OC40LTEzNy4xIDI2LjMtMjYuNiA2MS43LTQxLjUgOTcuOC00Mi4zIDUuOS4xIDE0LjUgMS41IDI1LjQgNC41IDguNiAyLjMgMTggNS40IDMwLjcgOS45IDMuOCAxLjQgMTYuOSA2LjEgMTguNSA2LjcgNy43IDIuOCAxMy41IDQuOCAxOS4yIDYuNiAxOC4yIDUuOCAzMi4zIDkgNDcuNiA5IDE1LjUgMCAyOC44LTMuMyA0Ny43LTkuOCA3LjEtMi40IDMyLjktMTIgMzcuNS0xMy42IDI1LjYtOS4xIDQ0LjUtMTQgNjAuOC0xNS4yIDQuOC0uNCA5LjEtLjQgMTMuMi0uMSAyMi43IDEuOCA0Mi4xIDYuMyA1OC42IDEzLjgtMzcuNiA0My40LTU3IDk2LjUtNTYuOSAxNTguNC0uMyAxNC43LjkgMzEuNyA1LjEgNTEuOCA2LjQgMzAuNSAxOC42IDYwLjcgMzcuOSA4OSAxNC43IDIxLjUgMzIuOSA0MC45IDU0LjcgNTcuOC0xMS41IDIzLjctMjUuNiA0OC4yLTQwLjQgNjguOHptLTk0LjUtNTcyYzUwLjctNjAuMiA0Ni4xLTExNSA0NC42LTEzNC43LTQ0LjggMi42LTk2LjYgMzAuNS0xMjYuMSA2NC44LTMyLjUgMzYuOC01MS42IDgyLjMtNDcuNSAxMzMuNiA0OC40IDMuNyA5Mi42LTIxLjIgMTI5LTYzLjd6In19XX0sbmFtZToiYXBwbGUiLHRoZW1lOiJvdXRsaW5lZCJ9LGdlPVBlLHZlPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOmdlfSkpfSxJZT10LmZvcndhcmRSZWYodmUpLHhlPUllLGF0PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoiZGVmcyIsYXR0cnM6e30sY2hpbGRyZW46W3t0YWc6InN0eWxlIixhdHRyczp7fX1dfSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQ2NCAxNDRIMTYwYy04LjggMC0xNiA3LjItMTYgMTZ2MzA0YzAgOC44IDcuMiAxNiAxNiAxNmgzMDRjOC44IDAgMTYtNy4yIDE2LTE2VjE2MGMwLTguOC03LjItMTYtMTYtMTZ6bS01MiAyNjhIMjEyVjIxMmgyMDB2MjAwem00NTItMjY4SDU2MGMtOC44IDAtMTYgNy4yLTE2IDE2djMwNGMwIDguOCA3LjIgMTYgMTYgMTZoMzA0YzguOCAwIDE2LTcuMiAxNi0xNlYxNjBjMC04LjgtNy4yLTE2LTE2LTE2em0tNTIgMjY4SDYxMlYyMTJoMjAwdjIwMHptNTIgMTMySDU2MGMtOC44IDAtMTYgNy4yLTE2IDE2djMwNGMwIDguOCA3LjIgMTYgMTYgMTZoMzA0YzguOCAwIDE2LTcuMiAxNi0xNlY1NjBjMC04LjgtNy4yLTE2LTE2LTE2em0tNTIgMjY4SDYxMlY2MTJoMjAwdjIwMHpNNDI0IDcxMkgyOTZWNTg0YzAtNC40LTMuNi04LTgtOGgtNDhjLTQuNCAwLTggMy42LTggOHYxMjhIMTA0Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDEyOHYxMjhjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOFY3NzZoMTI4YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04eiJ9fV19LG5hbWU6ImFwcHN0b3JlLWFkZCIsdGhlbWU6Im91dGxpbmVkIn0sZHQ9YXQsRXQ9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246ZHR9KSl9LEh0PXQuZm9yd2FyZFJlZihFdCksanQ9SHQsRnQ9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg2NCAxNDRINTYwYy04LjggMC0xNiA3LjItMTYgMTZ2MzA0YzAgOC44IDcuMiAxNiAxNiAxNmgzMDRjOC44IDAgMTYtNy4yIDE2LTE2VjE2MGMwLTguOC03LjItMTYtMTYtMTZ6bTAgNDAwSDU2MGMtOC44IDAtMTYgNy4yLTE2IDE2djMwNGMwIDguOCA3LjIgMTYgMTYgMTZoMzA0YzguOCAwIDE2LTcuMiAxNi0xNlY1NjBjMC04LjgtNy4yLTE2LTE2LTE2ek00NjQgMTQ0SDE2MGMtOC44IDAtMTYgNy4yLTE2IDE2djMwNGMwIDguOCA3LjIgMTYgMTYgMTZoMzA0YzguOCAwIDE2LTcuMiAxNi0xNlYxNjBjMC04LjgtNy4yLTE2LTE2LTE2em0wIDQwMEgxNjBjLTguOCAwLTE2IDcuMi0xNiAxNnYzMDRjMCA4LjggNy4yIDE2IDE2IDE2aDMwNGM4LjggMCAxNi03LjIgMTYtMTZWNTYwYzAtOC44LTcuMi0xNi0xNi0xNnoifX1dfSxuYW1lOiJhcHBzdG9yZSIsdGhlbWU6ImZpbGxlZCJ9LHBuPUZ0LGNuPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOnBufSkpfSxvcj10LmZvcndhcmRSZWYoY24pLFRuPW9yLHpuPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00NjQgMTQ0SDE2MGMtOC44IDAtMTYgNy4yLTE2IDE2djMwNGMwIDguOCA3LjIgMTYgMTYgMTZoMzA0YzguOCAwIDE2LTcuMiAxNi0xNlYxNjBjMC04LjgtNy4yLTE2LTE2LTE2em0tNTIgMjY4SDIxMlYyMTJoMjAwdjIwMHptNDUyLTI2OEg1NjBjLTguOCAwLTE2IDcuMi0xNiAxNnYzMDRjMCA4LjggNy4yIDE2IDE2IDE2aDMwNGM4LjggMCAxNi03LjIgMTYtMTZWMTYwYzAtOC44LTcuMi0xNi0xNi0xNnptLTUyIDI2OEg2MTJWMjEyaDIwMHYyMDB6TTQ2NCA1NDRIMTYwYy04LjggMC0xNiA3LjItMTYgMTZ2MzA0YzAgOC44IDcuMiAxNiAxNiAxNmgzMDRjOC44IDAgMTYtNy4yIDE2LTE2VjU2MGMwLTguOC03LjItMTYtMTYtMTZ6bS01MiAyNjhIMjEyVjYxMmgyMDB2MjAwem00NTItMjY4SDU2MGMtOC44IDAtMTYgNy4yLTE2IDE2djMwNGMwIDguOCA3LjIgMTYgMTYgMTZoMzA0YzguOCAwIDE2LTcuMiAxNi0xNlY1NjBjMC04LjgtNy4yLTE2LTE2LTE2em0tNTIgMjY4SDYxMlY2MTJoMjAwdjIwMHoifX1dfSxuYW1lOiJhcHBzdG9yZSIsdGhlbWU6Im91dGxpbmVkIn0scm49em4sS3Q9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246cm59KSl9LHp0PXQuZm9yd2FyZFJlZihLdCksT3Q9enQsbG49e2ljb246ZnVuY3Rpb24oZix2KXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODY0IDE0NEg1NjBjLTguOCAwLTE2IDcuMi0xNiAxNnYzMDRjMCA4LjggNy4yIDE2IDE2IDE2aDMwNGM4LjggMCAxNi03LjIgMTYtMTZWMTYwYzAtOC44LTcuMi0xNi0xNi0xNnptLTUyIDI2OEg2MTJWMjEyaDIwMHYyMDB6TTQ2NCA1NDRIMTYwYy04LjggMC0xNiA3LjItMTYgMTZ2MzA0YzAgOC44IDcuMiAxNiAxNiAxNmgzMDRjOC44IDAgMTYtNy4yIDE2LTE2VjU2MGMwLTguOC03LjItMTYtMTYtMTZ6bS01MiAyNjhIMjEyVjYxMmgyMDB2MjAwem01Mi02NjhIMTYwYy04LjggMC0xNiA3LjItMTYgMTZ2MzA0YzAgOC44IDcuMiAxNiAxNiAxNmgzMDRjOC44IDAgMTYtNy4yIDE2LTE2VjE2MGMwLTguOC03LjItMTYtMTYtMTZ6bS01MiAyNjhIMjEyVjIxMmgyMDB2MjAwem00NTIgMTMySDU2MGMtOC44IDAtMTYgNy4yLTE2IDE2djMwNGMwIDguOCA3LjIgMTYgMTYgMTZoMzA0YzguOCAwIDE2LTcuMiAxNi0xNlY1NjBjMC04LjgtNy4yLTE2LTE2LTE2em0tNTIgMjY4SDYxMlY2MTJoMjAwdjIwMHoiLGZpbGw6Zn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMjEyIDIxMmgyMDB2MjAwSDIxMnptNDAwIDBoMjAwdjIwMEg2MTJ6TTIxMiA2MTJoMjAwdjIwMEgyMTJ6bTQwMCAwaDIwMHYyMDBINjEyeiIsZmlsbDp2fX1dfX0sbmFtZToiYXBwc3RvcmUiLHRoZW1lOiJ0d290b25lIn0sRW49bG4sR249ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246RW59KSl9LHByPXQuZm9yd2FyZFJlZihHbiksUHI9cHIsYnI9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4OCA3OTJIMjAwVjE2OGMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2Njg4YzAgNC40IDMuNiA4IDggOGg3NTJjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS02MTYtNjRoNTM2YzQuNCAwIDgtMy42IDgtOFYyODRjMC03LjItOC43LTEwLjctMTMuNy01LjdMNTkyIDQ4OC42bC0xMjUuNC0xMjRhOC4wMyA4LjAzIDAgMDAtMTEuMyAwbC0xODkgMTg5LjZhNy44NyA3Ljg3IDAgMDAtMi4zIDUuNlY3MjBjMCA0LjQgMy42IDggOCA4eiJ9fV19LG5hbWU6ImFyZWEtY2hhcnQiLHRoZW1lOiJvdXRsaW5lZCJ9LE1yPWJyLCRyPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOk1yfSkpfSxHcj10LmZvcndhcmRSZWYoJHIpLG9hPUdyLHJhPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NjIgNDY1LjNoLTgxYy00LjYgMC05IDItMTIuMSA1LjVMNTUwIDcyMy4xVjE2MGMwLTQuNC0zLjYtOC04LThoLTYwYy00LjQgMC04IDMuNi04IDh2NTYzLjFMMjU1LjEgNDcwLjhjLTMtMy41LTcuNC01LjUtMTIuMS01LjVoLTgxYy02LjggMC0xMC41IDguMS02IDEzLjJMNDg3LjkgODYxYTMxLjk2IDMxLjk2IDAgMDA0OC4zIDBMODY4IDQ3OC41YzQuNS01LjIuOC0xMy4yLTYtMTMuMnoifX1dfSxuYW1lOiJhcnJvdy1kb3duIix0aGVtZToib3V0bGluZWQifSxNYT1yYSxmYT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpNYX0pKX0saGE9dC5mb3J3YXJkUmVmKGZhKSxlYT1oYSxOYT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODcyIDQ3NEgyODYuOWwzNTAuMi0zMDRjNS42LTQuOSAyLjItMTQtNS4yLTE0aC04OC41Yy0zLjkgMC03LjYgMS40LTEwLjUgMy45TDE1NSA0ODcuOGEzMS45NiAzMS45NiAwIDAwMCA0OC4zTDUzNS4xIDg2NmMxLjUgMS4zIDMuMyAyIDUuMiAyaDkxLjVjNy40IDAgMTAuOC05LjIgNS4yLTE0TDI4Ni45IDU1MEg4NzJjNC40IDAgOC0zLjYgOC04di02MGMwLTQuNC0zLjYtOC04LTh6In19XX0sbmFtZToiYXJyb3ctbGVmdCIsdGhlbWU6Im91dGxpbmVkIn0sYmE9TmEsQXI9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246YmF9KSl9LFJyPXQuZm9yd2FyZFJlZihBciksbXI9UnIsSXI9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg2OSA0ODcuOEw0OTEuMiAxNTkuOWMtMi45LTIuNS02LjYtMy45LTEwLjUtMy45aC04OC41Yy03LjQgMC0xMC44IDkuMi01LjIgMTRsMzUwLjIgMzA0SDE1MmMtNC40IDAtOCAzLjYtOCA4djYwYzAgNC40IDMuNiA4IDggOGg1ODUuMUwzODYuOSA4NTRjLTUuNiA0LjktMi4yIDE0IDUuMiAxNGg5MS41YzEuOSAwIDMuOC0uNyA1LjItMkw4NjkgNTM2LjJhMzIuMDcgMzIuMDcgMCAwMDAtNDguNHoifX1dfSxuYW1lOiJhcnJvdy1yaWdodCIsdGhlbWU6Im91dGxpbmVkIn0sSHI9SXIsSnI9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246SHJ9KSl9LFRhPXQuZm9yd2FyZFJlZihKciksamE9VGEsJGE9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg2OCA1NDUuNUw1MzYuMSAxNjNhMzEuOTYgMzEuOTYgMCAwMC00OC4zIDBMMTU2IDU0NS41YTcuOTcgNy45NyAwIDAwNiAxMy4yaDgxYzQuNiAwIDktMiAxMi4xLTUuNUw0NzQgMzAwLjlWODY0YzAgNC40IDMuNiA4IDggOGg2MGM0LjQgMCA4LTMuNiA4LThWMzAwLjlsMjE4LjkgMjUyLjNjMyAzLjUgNy40IDUuNSAxMi4xIDUuNWg4MWM2LjggMCAxMC41LTggNi0xMy4yeiJ9fV19LG5hbWU6ImFycm93LXVwIix0aGVtZToib3V0bGluZWQifSx5cj0kYSxWcj1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjp5cn0pKX0sU2E9dC5mb3J3YXJkUmVmKFZyKSxGYT1TYSxSYT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODU1IDE2MC4xbC0xODkuMiAyMy41Yy02LjYuOC05LjMgOC44LTQuNyAxMy41bDU0LjcgNTQuNy0xNTMuNSAxNTMuNWE4LjAzIDguMDMgMCAwMDAgMTEuM2w0NS4xIDQ1LjFjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGwxNTMuNi0xNTMuNiA1NC43IDU0LjdhNy45NCA3Ljk0IDAgMDAxMy41LTQuN0w4NjMuOSAxNjlhNy45IDcuOSAwIDAwLTguOS04Ljl6TTQxNi42IDU2Mi4zYTguMDMgOC4wMyAwIDAwLTExLjMgMEwyNTEuOCA3MTUuOWwtNTQuNy01NC43YTcuOTQgNy45NCAwIDAwLTEzLjUgNC43TDE2MC4xIDg1NWMtLjYgNS4yIDMuNyA5LjUgOC45IDguOWwxODkuMi0yMy41YzYuNi0uOCA5LjMtOC44IDQuNy0xMy41bC01NC43LTU0LjcgMTUzLjYtMTUzLjZjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM2wtNDUuMi00NXoifX1dfSxuYW1lOiJhcnJvd3MtYWx0Iix0aGVtZToib3V0bGluZWQifSxybz1SYSx1bz1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpyb30pKX0sbm89dC5mb3J3YXJkUmVmKHVvKSx6bz1ubyxnbz17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDYyNGM5My45IDAgMTcwLTc1LjIgMTcwLTE2OFYyMzJjMC05Mi44LTc2LjEtMTY4LTE3MC0xNjhzLTE3MCA3NS4yLTE3MCAxNjh2MjI0YzAgOTIuOCA3Ni4xIDE2OCAxNzAgMTY4em0zMzAtMTcwYzAtNC40LTMuNi04LTgtOGgtNjBjLTQuNCAwLTggMy42LTggOCAwIDE0MC4zLTExMy43IDI1NC0yNTQgMjU0UzI1OCA1OTQuMyAyNTggNDU0YzAtNC40LTMuNi04LTgtOGgtNjBjLTQuNCAwLTggMy42LTggOCAwIDE2OC43IDEyNi42IDMwNy45IDI5MCAzMjcuNlY4ODRIMzI2LjdjLTEzLjcgMC0yNC43IDE0LjMtMjQuNyAzMnYzNmMwIDQuNCAyLjggOCA2LjIgOGg0MDcuNmMzLjQgMCA2LjItMy42IDYuMi04di0zNmMwLTE3LjctMTEtMzItMjQuNy0zMkg1NDhWNzgyLjFjMTY1LjMtMTggMjk0LTE1OCAyOTQtMzI4LjF6In19XX0sbmFtZToiYXVkaW8iLHRoZW1lOiJmaWxsZWQifSxmbz1nbyxUaT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpmb30pKX0sVW89dC5mb3J3YXJkUmVmKFRpKSxXbz1VbyxnaT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6ImRlZnMiLGF0dHJzOnt9LGNoaWxkcmVuOlt7dGFnOiJzdHlsZSIsYXR0cnM6e319XX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02ODIgNDU1VjMxMWwtNzYgNzZ2NjhjLS4xIDUwLjctNDIgOTIuMS05NCA5MmE5NS44IDk1LjggMCAwMS01Mi0xNWwtNTQgNTVjMjkuMSAyMi40IDY1LjkgMzYgMTA2IDM2IDkzLjggMCAxNzAtNzUuMSAxNzAtMTY4eiJ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTgzMyA0NDZoLTYwYy00LjQgMC04IDMuNi04IDggMCAxNDAuMy0xMTMuNyAyNTQtMjU0IDI1NC02MyAwLTEyMC43LTIzLTE2NS02MWwtNTQgNTRhMzM0LjAxIDMzNC4wMSAwIDAwMTc5IDgxdjEwMkgzMjZjLTEzLjkgMC0yNC45IDE0LjMtMjUgMzJ2MzZjLjEgNC40IDIuOSA4IDYgOGg0MDhjMy4yIDAgNi0zLjYgNi04di0zNmMwLTE3LjctMTEtMzItMjUtMzJINTQ3Vjc4MmMxNjUuMy0xNy45IDI5NC0xNTcuOSAyOTQtMzI4IDAtNC40LTMuNi04LTgtOHptMTMuMS0zNzcuN2wtNDMuNS00MS45YTggOCAwIDAwLTExLjIuMWwtMTI5IDEyOUM2MzQuMyAxMDEuMiA1NzcgNjQgNTExIDY0Yy05My45IDAtMTcwIDc1LjMtMTcwIDE2OHYyMjRjMCA2LjcuNCAxMy4zIDEuMiAxOS44bC02OCA2OEEyNTIuMzMgMjUyLjMzIDAgMDEyNTggNDU0Yy0uMi00LjQtMy44LTgtOC04aC02MGMtNC40IDAtOCAzLjYtOCA4IDAgNTMgMTIuNSAxMDMgMzQuNiAxNDcuNGwtMTM3IDEzN2E4LjAzIDguMDMgMCAwMDAgMTEuM2w0Mi43IDQyLjdjMy4xIDMuMSA4LjIgMy4xIDExLjMgMEw4NDYuMiA3OS44bC4xLS4xYzMuMS0zLjIgMy04LjMtLjItMTEuNHpNNDE3IDQwMVYyMzJjMC01MC42IDQxLjktOTIgOTQtOTIgNDYgMCA4NC4xIDMyLjMgOTIuMyA3NC43TDQxNyA0MDF6In19XX0sbmFtZToiYXVkaW8tbXV0ZWQiLHRoZW1lOiJvdXRsaW5lZCJ9LGFvPWdpLHBpPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOmFvfSkpfSxIbz10LmZvcndhcmRSZWYocGkpLFJvPUhvLEZvPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NDIgNDU0YzAtNC40LTMuNi04LTgtOGgtNjBjLTQuNCAwLTggMy42LTggOCAwIDE0MC4zLTExMy43IDI1NC0yNTQgMjU0UzI1OCA1OTQuMyAyNTggNDU0YzAtNC40LTMuNi04LTgtOGgtNjBjLTQuNCAwLTggMy42LTggOCAwIDE2OC43IDEyNi42IDMwNy45IDI5MCAzMjcuNlY4ODRIMzI2LjdjLTEzLjcgMC0yNC43IDE0LjMtMjQuNyAzMnYzNmMwIDQuNCAyLjggOCA2LjIgOGg0MDcuNmMzLjQgMCA2LjItMy42IDYuMi04di0zNmMwLTE3LjctMTEtMzItMjQuNy0zMkg1NDhWNzgyLjFjMTY1LjMtMTggMjk0LTE1OCAyOTQtMzI4LjF6TTUxMiA2MjRjOTMuOSAwIDE3MC03NS4yIDE3MC0xNjhWMjMyYzAtOTIuOC03Ni4xLTE2OC0xNzAtMTY4cy0xNzAgNzUuMi0xNzAgMTY4djIyNGMwIDkyLjggNzYuMSAxNjggMTcwIDE2OHptLTk0LTM5MmMwLTUwLjYgNDEuOS05MiA5NC05MnM5NCA0MS40IDk0IDkydjIyNGMwIDUwLjYtNDEuOSA5Mi05NCA5MnMtOTQtNDEuNC05NC05MlYyMzJ6In19XX0sbmFtZToiYXVkaW8iLHRoZW1lOiJvdXRsaW5lZCJ9LGx0PUZvLGllPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOmx0fSkpfSx5ZT10LmZvcndhcmRSZWYoaWUpLEI9eWUsVmU9e2ljb246ZnVuY3Rpb24oZix2KXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDU1MmM1NC4zIDAgOTgtNDMuMiA5OC05NlYyMzJjMC01Mi44LTQzLjctOTYtOTgtOTZzLTk4IDQzLjItOTggOTZ2MjI0YzAgNTIuOCA0My43IDk2IDk4IDk2eiIsZmlsbDp2fX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NDIgNDU0YzAtNC40LTMuNi04LTgtOGgtNjBjLTQuNCAwLTggMy42LTggOCAwIDE0MC4zLTExMy43IDI1NC0yNTQgMjU0UzI1OCA1OTQuMyAyNTggNDU0YzAtNC40LTMuNi04LTgtOGgtNjBjLTQuNCAwLTggMy42LTggOCAwIDE2OC43IDEyNi42IDMwNy45IDI5MCAzMjcuNlY4ODRIMzI2LjdjLTEzLjcgMC0yNC43IDE0LjMtMjQuNyAzMnYzNmMwIDQuNCAyLjggOCA2LjIgOGg0MDcuNmMzLjQgMCA2LjItMy42IDYuMi04di0zNmMwLTE3LjctMTEtMzItMjQuNy0zMkg1NDhWNzgyLjFjMTY1LjMtMTggMjk0LTE1OCAyOTQtMzI4LjF6IixmaWxsOmZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2MjRjOTMuOSAwIDE3MC03NS4yIDE3MC0xNjhWMjMyYzAtOTIuOC03Ni4xLTE2OC0xNzAtMTY4cy0xNzAgNzUuMi0xNzAgMTY4djIyNGMwIDkyLjggNzYuMSAxNjggMTcwIDE2OHptLTk4LTM5MmMwLTUyLjggNDMuNy05NiA5OC05NnM5OCA0My4yIDk4IDk2djIyNGMwIDUyLjgtNDMuNyA5Ni05OCA5NnMtOTgtNDMuMi05OC05NlYyMzJ6IixmaWxsOmZ9fV19fSxuYW1lOiJhdWRpbyIsdGhlbWU6InR3b3RvbmUifSxzdD1WZSxSdD1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpzdH0pKX0sQnQ9dC5mb3J3YXJkUmVmKFJ0KSxMdD1CdCxZdD1lKDczNDgwKSxBbj17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiIwIDAgMTAyNCAxMDI0Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNDg1LjYgMjQ5LjlMMTk4LjIgNDk4Yy04LjMgNy4xLTguMyAyMC44IDAgMjcuOWwyODcuNCAyNDguMmMxMC43IDkuMiAyNi40LjkgMjYuNC0xNFYyNjMuOGMwLTE0LjgtMTUuNy0yMy4yLTI2LjQtMTMuOXptMzIwIDBMNTE4LjIgNDk4YTE4LjYgMTguNiAwIDAwLTYuMiAxNGMwIDUuMiAyLjEgMTAuNCA2LjIgMTRsMjg3LjQgMjQ4LjJjMTAuNyA5LjIgMjYuNC45IDI2LjQtMTRWMjYzLjhjMC0xNC44LTE1LjctMjMuMi0yNi40LTEzLjl6In19XX0sbmFtZToiYmFja3dhcmQiLHRoZW1lOiJmaWxsZWQifSxzbj1BbixxdD1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpzbn0pKX0sTW49dC5mb3J3YXJkUmVmKHF0KSxDcj1Nbixxbj17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiIwIDAgMTAyNCAxMDI0Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNDg1LjYgMjQ5LjlMMTk4LjIgNDk4Yy04LjMgNy4xLTguMyAyMC44IDAgMjcuOWwyODcuNCAyNDguMmMxMC43IDkuMiAyNi40LjkgMjYuNC0xNFYyNjMuOGMwLTE0LjgtMTUuNy0yMy4yLTI2LjQtMTMuOXptMzIwIDBMNTE4LjIgNDk4YTE4LjYgMTguNiAwIDAwLTYuMiAxNGMwIDUuMiAyLjEgMTAuNCA2LjIgMTRsMjg3LjQgMjQ4LjJjMTAuNyA5LjIgMjYuNC45IDI2LjQtMTRWMjYzLjhjMC0xNC44LTE1LjctMjMuMi0yNi40LTEzLjl6In19XX0sbmFtZToiYmFja3dhcmQiLHRoZW1lOiJvdXRsaW5lZCJ9LGpyPXFuLENuPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOmpyfSkpfSxMcj10LmZvcndhcmRSZWYoQ24pLERyPUxyLE5yPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6eyJmaWxsLXJ1bGUiOiJldmVub2RkIix2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMjUwLjAyIDU0Ny4wNGM5Mi4zNy0xOS44IDc5Ljc3LTEzMC4wNyA3Ni45NS0xNTQuMTgtNC41Ni0zNy4yLTQ4LjI2LTEwMi4xNi0xMDcuNjMtOTcuMDItNzQuNyA2LjctODUuNjUgMTE0LjU4LTg1LjY1IDExNC41OC0xMC4wNCA0OS44OCAyNC4yIDE1Ni40MyAxMTYuMzMgMTM2LjYybTg0LjcgMjE0LjE0YzEwLjI4IDM4LjcgNDMuOTUgNDAuNDMgNDMuOTUgNDAuNDNINDI3VjY4My41NWgtNTEuNzRjLTIzLjIyIDYuOTYtMzQuNSAyNS4xLTM2Ljk4IDMyLjgtMi43NCA3LjgtOC43MSAyNy42LTMuNTcgNDQuODNtMTY5LjA3LTUzMS4xYzAtNzIuNDItNDEuMTMtMTMxLjA4LTkyLjItMTMxLjA4LTUwLjkyIDAtOTIuMjEgNTguNjYtOTIuMjEgMTMxLjA3IDAgNzIuNSA0MS4zIDEzMS4xNiA5Mi4yIDEzMS4xNiA1MS4wOCAwIDkyLjIxLTU4LjY2IDkyLjIxLTEzMS4xNm0yNDguMSA5LjFjOC44Ni01NC45Mi0zNS4wOC0xMTguODgtODMuMzQtMTI5LjgyLTQ4LjM0LTExLjEtMTA4LjcgNjYuMjgtMTE0LjE4IDExNi43NC02LjU1IDYxLjcyIDguNzkgMTIzLjI4IDc2Ljg2IDEzMi4wNiA2OC4xNiA4Ljg3IDExMi4wMy02My44NyAxMjAuNjUtMTE4Ljk3bTQ2LjM1IDQzMy4wMnMtMTA1LjQ3LTgxLjUzLTE2Ny0xNjkuNmMtODMuNC0xMjkuOTEtMjAxLjk4LTc3LjA1LTI0MS42Mi0xMS4wMi0zOS40NyA2Ni4wMy0xMDEgMTA3Ljg3LTEwOS43IDExOC45LTguODcgMTAuOTMtMTI3LjM2IDc0LjgtMTAxLjA3IDE5MS41NSAyNi4yOCAxMTYuNjUgMTE4LjczIDExNC41IDExOC43MyAxMTQuNXM2OC4wOCA2LjcgMTQ3LjEtMTAuOTRDNTIzLjcgODg4LjAzIDU5MS43IDkxMCA1OTEuNyA5MTBzMTg0LjU3IDYxLjcyIDIzNS4wNy01Ny4xOGM1MC40MS0xMTguOTctMjguNTMtMTgwLjYxLTI4LjUzLTE4MC42MU0zNjIuNDIgODQ5LjE3Yy01MS44My0xMC4zNi03Mi40Ny00NS42NS03NS4xMy01MS43LTIuNTctNi4xMy0xNy4yNC0zNC41NS05LjQ1LTgyLjg1IDIyLjM5LTcyLjQxIDg2LjIzLTc3LjYzIDg2LjIzLTc3LjYzaDYzLjg1di03OC40Nmw1NC40LjgyLjA4IDI4OS44MnptMjA1LjM4LS44M2MtNTMuNTYtMTMuNzUtNTYuMDUtNTEuNzgtNTYuMDUtNTEuNzhWNjQzLjk1bDU2LjA1LS45MnYxMzcuMTJjMy40IDE0LjU5IDIxLjY1IDE3LjMyIDIxLjY1IDE3LjMyaDU2Ljg4VjY0My45NWg1OS42MnYyMDQuMzl6bTMyMy44NC0zOTcuNzJjMC0yNi4zNS0yMS44OS0xMDUuNzItMTAzLjE1LTEwNS43Mi04MS40MyAwLTkyLjI5IDc0LjktOTIuMjkgMTI3Ljg0IDAgNTAuNTQgNC4zMSAxMjEuMTMgMTA1LjQgMTE4LjggMTAxLjE1LTIuMTUgOTAuMDQtMTE0LjQxIDkwLjA0LTE0MC45MiJ9fV19LG5hbWU6ImJhaWR1Iix0aGVtZToib3V0bGluZWQifSx0YT1Ocix2YT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjp0YX0pKX0sWHI9dC5mb3J3YXJkUmVmKHZhKSxFYT1Ycixwbz17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODk0IDQ2MmMzMC45IDAgNDMuOC0zOS43IDE4LjctNThMNTMwLjggMTI2LjJhMzEuODEgMzEuODEgMCAwMC0zNy42IDBMMTExLjMgNDA0Yy0yNS4xIDE4LjItMTIuMiA1OCAxOC44IDU4SDE5MnYzNzRoLTcyYy00LjQgMC04IDMuNi04IDh2NTJjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTUyYzAtNC40LTMuNi04LTgtOGgtNzJWNDYyaDYyek0zODEgODM2SDI2NFY0NjJoMTE3djM3NHptMTg5IDBINDUzVjQ2MmgxMTd2Mzc0em0xOTAgMEg2NDJWNDYyaDExOHYzNzR6In19XX0sbmFtZToiYmFuayIsdGhlbWU6ImZpbGxlZCJ9LHlhPXBvLElhPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOnlhfSkpfSxnYT10LmZvcndhcmRSZWYoSWEpLEhhPWdhLFBhPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04OTQgNDYyYzMwLjkgMCA0My44LTM5LjcgMTguNy01OEw1MzAuOCAxMjYuMmEzMS44MSAzMS44MSAwIDAwLTM3LjYgMEwxMTEuMyA0MDRjLTI1LjEgMTguMi0xMi4yIDU4IDE4LjggNThIMTkydjM3NGgtNzJjLTQuNCAwLTggMy42LTggOHY1MmMwIDQuNCAzLjYgOCA4IDhoNzg0YzQuNCAwIDgtMy42IDgtOHYtNTJjMC00LjQtMy42LTgtOC04aC03MlY0NjJoNjJ6TTUxMiAxOTYuN2wyNzEuMSAxOTcuMkgyNDAuOUw1MTIgMTk2Ljd6TTI2NCA0NjJoMTE3djM3NEgyNjRWNDYyem0xODkgMGgxMTd2Mzc0SDQ1M1Y0NjJ6bTMwNyAzNzRINjQyVjQ2MmgxMTh2Mzc0eiJ9fV19LG5hbWU6ImJhbmsiLHRoZW1lOiJvdXRsaW5lZCJ9LGVvPVBhLFVhPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOmVvfSkpfSx2bz10LmZvcndhcmRSZWYoVWEpLEdhPXZvLG9vPXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTI0MC45IDM5My45aDU0Mi4yTDUxMiAxOTYuN3oiLGZpbGw6dn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODk0IDQ2MmMzMC45IDAgNDMuOC0zOS43IDE4LjctNThMNTMwLjggMTI2LjJhMzEuODEgMzEuODEgMCAwMC0zNy42IDBMMTExLjMgNDA0Yy0yNS4xIDE4LjItMTIuMiA1OCAxOC44IDU4SDE5MnYzNzRoLTcyYy00LjQgMC04IDMuNi04IDh2NTJjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTUyYzAtNC40LTMuNi04LTgtOGgtNzJWNDYyaDYyek0zODEgODM2SDI2NFY0NjJoMTE3djM3NHptMTg5IDBINDUzVjQ2MmgxMTd2Mzc0em0xOTAgMEg2NDJWNDYyaDExOHYzNzR6TTI0MC45IDM5My45TDUxMiAxOTYuN2wyNzEuMSAxOTcuMkgyNDAuOXoiLGZpbGw6Zn19XX19LG5hbWU6ImJhbmsiLHRoZW1lOiJ0d290b25lIn0saW89b28sT289ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246aW99KSl9LGxvPXQuZm9yd2FyZFJlZihPbykseG89bG8sQ289e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4OCA3OTJIMjAwVjE2OGMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2Njg4YzAgNC40IDMuNiA4IDggOGg3NTJjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS02MDAtODBoNTZjNC40IDAgOC0zLjYgOC04VjU2MGMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2MTQ0YzAgNC40IDMuNiA4IDggOHptMTUyIDBoNTZjNC40IDAgOC0zLjYgOC04VjM4NGMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2MzIwYzAgNC40IDMuNiA4IDggOHptMTUyIDBoNTZjNC40IDAgOC0zLjYgOC04VjQ2MmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2MjQyYzAgNC40IDMuNiA4IDggOHptMTUyIDBoNTZjNC40IDAgOC0zLjYgOC04VjMwNGMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NDAwYzAgNC40IDMuNiA4IDggOHoifX1dfSxuYW1lOiJiYXItY2hhcnQiLHRoZW1lOiJvdXRsaW5lZCJ9LEhpPUNvLGVsPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkhpfSkpfSx0bD10LmZvcndhcmRSZWYoZWwpLFhvPXRsLERpPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0xMjAgMTYwSDcyYy00LjQgMC04IDMuNi04IDh2Njg4YzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LThWMTY4YzAtNC40LTMuNi04LTgtOHptODMzIDBoLTQ4Yy00LjQgMC04IDMuNi04IDh2Njg4YzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LThWMTY4YzAtNC40LTMuNi04LTgtOHpNMjAwIDczNmgxMTJjNC40IDAgOC0zLjYgOC04VjE2OGMwLTQuNC0zLjYtOC04LThIMjAwYy00LjQgMC04IDMuNi04IDh2NTYwYzAgNC40IDMuNiA4IDggOHptMzIxIDBoNDhjNC40IDAgOC0zLjYgOC04VjE2OGMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2NTYwYzAgNC40IDMuNiA4IDggOHptMTI2IDBoMTc4YzQuNCAwIDgtMy42IDgtOFYxNjhjMC00LjQtMy42LTgtOC04SDY0N2MtNC40IDAtOCAzLjYtOCA4djU2MGMwIDQuNCAzLjYgOCA4IDh6bS0yNTUgMGg0OGM0LjQgMCA4LTMuNiA4LThWMTY4YzAtNC40LTMuNi04LTgtOGgtNDhjLTQuNCAwLTggMy42LTggOHY1NjBjMCA0LjQgMy42IDggOCA4em0tNzkgNjRIMjAxYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDExMmM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOHptMjU3IDBoLTQ4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04em0yNTYgMEg2NDhjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMTc4YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04em0tMzg1IDBoLTQ4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04eiJ9fV19LG5hbWU6ImJhcmNvZGUiLHRoZW1lOiJvdXRsaW5lZCJ9LG5sPURpLHlsPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOm5sfSkpfSxNdD10LmZvcndhcmRSZWYoeWwpLEtlPU10LHl0PWUoMTM3MjgpLFB0PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00MjAuMyA0NzAuM2M4LjctNi4zIDEyLjktMTYuNyAxMi45LTMxIC4zLTYuOC0xLjEtMTMuNS00LjEtMTkuNi0yLjctNC45LTYuNy05LTExLjYtMTEuOWE0NC44IDQ0LjggMCAwMC0xNi42LTZjLTYuNC0xLjItMTIuOS0xLjgtMTkuMy0xLjdoLTcwLjN2NzkuN2g3Ni4xYzEzLjEuMSAyNC4yLTMuMSAzMi45LTkuNXptMTEuOCA3MmMtOS44LTcuNS0yMi45LTExLjItMzkuMi0xMS4yaC04MS44djk0aDgwLjJjNy41IDAgMTQuNC0uNyAyMS4xLTIuMWE1MC41IDUwLjUgMCAwMDE3LjgtNy4yYzUuMS0zLjMgOS4yLTcuOCAxMi4zLTEzLjYgMy01LjggNC41LTEzLjIgNC41LTIyLjEgMC0xNy43LTUtMzAuMi0xNC45LTM3Ljh6TTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em04Ni41IDI4Ni45aDEzOC40djMzLjdINTk4LjV2LTMzLjd6TTUxMiA2MjguOGE4OS41MiA4OS41MiAwIDAxLTI3IDMxYy0xMS44IDguMi0yNC45IDE0LjItMzguOCAxNy43YTE2Ny40IDE2Ny40IDAgMDEtNDQuNiA1LjdIMjM2VjM0Mi4xaDE2MWMxNi4zIDAgMzEuMSAxLjUgNDQuNiA0LjMgMTMuNCAyLjggMjQuOCA3LjYgMzQuNCAxNC4xIDkuNSA2LjUgMTcgMTUuMiAyMi4zIDI2IDUuMiAxMC43IDcuOSAyNC4xIDcuOSA0MCAwIDE3LjItMy45IDMxLjQtMTEuNyA0Mi45LTcuOSAxMS41LTE5LjMgMjAuOC0zNC44IDI4LjEgMjEuMSA2IDM2LjYgMTYuNyA0Ni44IDMxLjcgMTAuNCAxNS4yIDE1LjUgMzMuNCAxNS41IDU0LjggMCAxNy40LTMuMyAzMi4zLTEwIDQ0Ljh6TTc5MC44IDU3Nkg2MTIuNGMwIDE5LjQgNi43IDM4IDE2LjggNDggMTAuMiA5LjkgMjQuOCAxNC45IDQzLjkgMTQuOSAxMy44IDAgMjUuNS0zLjUgMzUuNS0xMC40IDkuOS02LjkgMTUuOS0xNC4yIDE4LjEtMjEuOGg1OS44Yy05LjYgMjkuNy0yNC4yIDUwLjktNDQgNjMuNy0xOS42IDEyLjgtNDMuNiAxOS4yLTcxLjUgMTkuMi0xOS41IDAtMzctMy4yLTUyLjctOS4zLTE1LjEtNS45LTI4LjctMTQuOS0zOS45LTI2LjVhMTIxLjIgMTIxLjIgMCAwMS0yNS4xLTQxLjJjLTYuMS0xNi45LTkuMS0zNC43LTguOS01Mi42IDAtMTguNSAzLjEtMzUuNyA5LjEtNTEuNyAxMS41LTMxLjEgMzUuNC01NiA2NS45LTY4LjkgMTYuMy02LjggMzMuOC0xMC4yIDUxLjUtMTAgMjEgMCAzOS4yIDQgNTUgMTIuMmExMTEuNiAxMTEuNiAwIDAxMzguNiAzMi44YzEwLjEgMTMuNyAxNy4yIDI5LjMgMjEuNyA0Ni45IDQuMyAxNy4zIDUuOCAzNS41IDQuNiA1NC43em0tMTIyLTk1LjZjLTEwLjggMC0xOS45IDEuOS0yNi45IDUuNi03IDMuNy0xMi44IDguMy0xNy4yIDEzLjZhNDguNCA0OC40IDAgMDAtOS4xIDE3LjRjLTEuNiA1LjMtMi43IDEwLjctMy4xIDE2LjJINzIzYy0xLjYtMTcuMy03LjYtMzAuMS0xNS42LTM5LjEtOC40LTguOS0yMS45LTEzLjctMzguNi0xMy43eiJ9fV19LG5hbWU6ImJlaGFuY2UtY2lyY2xlIix0aGVtZToiZmlsbGVkIn0sQXQ9UHQsVXQ9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246QXR9KSl9LGRuPXQuZm9yd2FyZFJlZihVdCksZHI9ZG4sdHI9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTYzNCAyOTQuM2gxOTkuNXY0OC40SDYzNHpNNDM0LjEgNDg1LjhjNDQuMS0yMS4xIDY3LjItNTMuMiA2Ny4yLTEwMi44IDAtOTguMS03My0xMjEuOS0xNTcuMy0xMjEuOUgxMTJ2NDkyLjRoMjM4LjVjODkuNCAwIDE3My4zLTQzIDE3My4zLTE0MyAwLTYxLjgtMjkuMi0xMDcuNS04OS43LTEyNC43ek0yMjAuMiAzNDUuMWgxMDEuNWMzOS4xIDAgNzQuMiAxMC45IDc0LjIgNTYuMyAwIDQxLjgtMjcuMyA1OC42LTY2IDU4LjZIMjIwLjJWMzQ1LjF6bTExNS41IDMyNC44SDIyMC4xVjUzNC4zSDMzOGM0Ny42IDAgNzcuNyAxOS45IDc3LjcgNzAuMyAwIDQ5LjYtMzUuOSA2NS4zLTgwIDY1LjN6bTU3NS44LTg5LjVjMC0xMDUuNS02MS43LTE5My40LTE3My4zLTE5My40LTEwOC41IDAtMTgyLjMgODEuNy0xODIuMyAxODguOCAwIDExMSA2OS45IDE4Ny4yIDE4Mi4zIDE4Ny4yIDg1LjEgMCAxNDAuMi0zOC4zIDE2Ni43LTEyMGgtODYuM2MtOS40IDMwLjUtNDcuNiA0Ni41LTc3LjMgNDYuNS01Ny40IDAtODcuNC0zMy42LTg3LjQtOTAuN2gyNTYuOWMuMy01LjkuNy0xMi4xLjctMTguNHpNNjUzLjkgNTM3YzMuMS00Ni45IDM0LjQtNzYuMiA4MS4yLTc2LjIgNDkuMiAwIDczLjggMjguOSA3OC4xIDc2LjJINjUzLjl6In19XX0sbmFtZToiYmVoYW5jZSIsdGhlbWU6Im91dGxpbmVkIn0senI9dHIsd3I9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246enJ9KSl9LEJyPXQuZm9yd2FyZFJlZih3ciksZGE9QnIsc2E9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNTk4LjUgMzUwLjloMTM4LjR2MzMuN0g1OTguNXYtMzMuN3pNNTEyIDYyOC44YTg5LjUyIDg5LjUyIDAgMDEtMjcgMzFjLTExLjggOC4yLTI0LjkgMTQuMi0zOC44IDE3LjdhMTY3LjQgMTY3LjQgMCAwMS00NC42IDUuN0gyMzZWMzQyLjFoMTYxYzE2LjMgMCAzMS4xIDEuNSA0NC42IDQuMyAxMy40IDIuOCAyNC44IDcuNiAzNC40IDE0LjEgOS41IDYuNSAxNyAxNS4yIDIyLjMgMjYgNS4yIDEwLjcgNy45IDI0LjEgNy45IDQwIDAgMTcuMi0zLjkgMzEuNC0xMS43IDQyLjktNy45IDExLjUtMTkuMyAyMC44LTM0LjggMjguMSAyMS4xIDYgMzYuNiAxNi43IDQ2LjggMzEuNyAxMC40IDE1LjIgMTUuNSAzMy40IDE1LjUgNTQuOCAwIDE3LjQtMy4zIDMyLjMtMTAgNDQuOHpNNzkwLjggNTc2SDYxMi40YzAgMTkuNCA2LjcgMzggMTYuOCA0OCAxMC4yIDkuOSAyNC44IDE0LjkgNDMuOSAxNC45IDEzLjggMCAyNS41LTMuNSAzNS41LTEwLjQgOS45LTYuOSAxNS45LTE0LjIgMTguMS0yMS44aDU5LjhjLTkuNiAyOS43LTI0LjIgNTAuOS00NCA2My43LTE5LjYgMTIuOC00My42IDE5LjItNzEuNSAxOS4yLTE5LjUgMC0zNy0zLjItNTIuNy05LjMtMTUuMS01LjktMjguNy0xNC45LTM5LjktMjYuNWExMjEuMiAxMjEuMiAwIDAxLTI1LjEtNDEuMmMtNi4xLTE2LjktOS4xLTM0LjctOC45LTUyLjYgMC0xOC41IDMuMS0zNS43IDkuMS01MS43IDExLjUtMzEuMSAzNS40LTU2IDY1LjktNjguOSAxNi4zLTYuOCAzMy44LTEwLjIgNTEuNS0xMCAyMSAwIDM5LjIgNCA1NSAxMi4yYTExMS42IDExMS42IDAgMDEzOC42IDMyLjhjMTAuMSAxMy43IDE3LjIgMjkuMyAyMS43IDQ2LjkgNC4zIDE3LjMgNS44IDM1LjUgNC42IDU0Ljd6bS0xMjItOTUuNmMtMTAuOCAwLTE5LjkgMS45LTI2LjkgNS42LTcgMy43LTEyLjggOC4zLTE3LjIgMTMuNmE0OC40IDQ4LjQgMCAwMC05LjEgMTcuNGMtMS42IDUuMy0yLjcgMTAuNy0zLjEgMTYuMkg3MjNjLTEuNi0xNy4zLTcuNi0zMC4xLTE1LjYtMzkuMS04LjQtOC45LTIxLjktMTMuNy0zOC42LTEzLjd6bS0yNDguNS0xMC4xYzguNy02LjMgMTIuOS0xNi43IDEyLjktMzEgLjMtNi44LTEuMS0xMy41LTQuMS0xOS42LTIuNy00LjktNi43LTktMTEuNi0xMS45YTQ0LjggNDQuOCAwIDAwLTE2LjYtNmMtNi40LTEuMi0xMi45LTEuOC0xOS4zLTEuN2gtNzAuM3Y3OS43aDc2LjFjMTMuMS4xIDI0LjItMy4xIDMyLjktOS41em0xMS44IDcyYy05LjgtNy41LTIyLjktMTEuMi0zOS4yLTExLjJoLTgxLjh2OTRoODAuMmM3LjUgMCAxNC40LS43IDIxLjEtMi4xczEyLjctMy44IDE3LjgtNy4yYzUuMS0zLjMgOS4yLTcuOCAxMi4zLTEzLjYgMy01LjggNC41LTEzLjIgNC41LTIyLjEgMC0xNy43LTUtMzAuMi0xNC45LTM3Ljh6In19XX0sbmFtZToiYmVoYW5jZS1zcXVhcmUiLHRoZW1lOiJmaWxsZWQifSx3YT1zYSx6YT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjp3YX0pKX0sTGE9dC5mb3J3YXJkUmVmKHphKSxXYT1MYSxPYT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek01OTguNSAzNTAuOWgxMzguNHYzMy43SDU5OC41di0zMy43ek01MTIgNjI4LjhhODkuNTIgODkuNTIgMCAwMS0yNyAzMWMtMTEuOCA4LjItMjQuOSAxNC4yLTM4LjggMTcuN2ExNjcuNCAxNjcuNCAwIDAxLTQ0LjYgNS43SDIzNlYzNDIuMWgxNjFjMTYuMyAwIDMxLjEgMS41IDQ0LjYgNC4zIDEzLjQgMi44IDI0LjggNy42IDM0LjQgMTQuMSA5LjUgNi41IDE3IDE1LjIgMjIuMyAyNiA1LjIgMTAuNyA3LjkgMjQuMSA3LjkgNDAgMCAxNy4yLTMuOSAzMS40LTExLjcgNDIuOS03LjkgMTEuNS0xOS4zIDIwLjgtMzQuOCAyOC4xIDIxLjEgNiAzNi42IDE2LjcgNDYuOCAzMS43IDEwLjQgMTUuMiAxNS41IDMzLjQgMTUuNSA1NC44IDAgMTcuNC0zLjMgMzIuMy0xMCA0NC44ek03OTAuOCA1NzZINjEyLjRjMCAxOS40IDYuNyAzOCAxNi44IDQ4IDEwLjIgOS45IDI0LjggMTQuOSA0My45IDE0LjkgMTMuOCAwIDI1LjUtMy41IDM1LjUtMTAuNCA5LjktNi45IDE1LjktMTQuMiAxOC4xLTIxLjhoNTkuOGMtOS42IDI5LjctMjQuMiA1MC45LTQ0IDYzLjctMTkuNiAxMi44LTQzLjYgMTkuMi03MS41IDE5LjItMTkuNSAwLTM3LTMuMi01Mi43LTkuMy0xNS4xLTUuOS0yOC43LTE0LjktMzkuOS0yNi41YTEyMS4yIDEyMS4yIDAgMDEtMjUuMS00MS4yYy02LjEtMTYuOS05LjEtMzQuNy04LjktNTIuNiAwLTE4LjUgMy4xLTM1LjcgOS4xLTUxLjcgMTEuNS0zMS4xIDM1LjQtNTYgNjUuOS02OC45IDE2LjMtNi44IDMzLjgtMTAuMiA1MS41LTEwIDIxIDAgMzkuMiA0IDU1IDEyLjJhMTExLjYgMTExLjYgMCAwMTM4LjYgMzIuOGMxMC4xIDEzLjcgMTcuMiAyOS4zIDIxLjcgNDYuOSA0LjMgMTcuMyA1LjggMzUuNSA0LjYgNTQuN3ptLTEyMi05NS42Yy0xMC44IDAtMTkuOSAxLjktMjYuOSA1LjYtNyAzLjctMTIuOCA4LjMtMTcuMiAxMy42YTQ4LjQgNDguNCAwIDAwLTkuMSAxNy40Yy0xLjYgNS4zLTIuNyAxMC43LTMuMSAxNi4ySDcyM2MtMS42LTE3LjMtNy42LTMwLjEtMTUuNi0zOS4xLTguNC04LjktMjEuOS0xMy43LTM4LjYtMTMuN3ptLTI0OC41LTEwLjFjOC43LTYuMyAxMi45LTE2LjcgMTIuOS0zMSAuMy02LjgtMS4xLTEzLjUtNC4xLTE5LjYtMi43LTQuOS02LjctOS0xMS42LTExLjlhNDQuOCA0NC44IDAgMDAtMTYuNi02Yy02LjQtMS4yLTEyLjktMS44LTE5LjMtMS43aC03MC4zdjc5LjdoNzYuMWMxMy4xLjEgMjQuMi0zLjEgMzIuOS05LjV6bTExLjggNzJjLTkuOC03LjUtMjIuOS0xMS4yLTM5LjItMTEuMmgtODEuOHY5NGg4MC4yYzcuNSAwIDE0LjQtLjcgMjEuMS0yLjFzMTIuNy0zLjggMTcuOC03LjJjNS4xLTMuMyA5LjItNy44IDEyLjMtMTMuNiAzLTUuOCA0LjUtMTMuMiA0LjUtMjIuMSAwLTE3LjctNS0zMC4yLTE0LjktMzcuOHoifX1dfSxuYW1lOiJiZWhhbmNlLXNxdWFyZSIsdGhlbWU6Im91dGxpbmVkIn0sSmE9T2EsdG89ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246SmF9KSl9LHdvPXQuZm9yd2FyZFJlZih0byksaG89d28seW89e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTgxNiA3NjhoLTI0VjQyOGMwLTE0MS4xLTEwNC4zLTI1Ny44LTI0MC0yNzcuMlYxMTJjMC0yMi4xLTE3LjktNDAtNDAtNDBzLTQwIDE3LjktNDAgNDB2MzguOEMzMzYuMyAxNzAuMiAyMzIgMjg2LjkgMjMyIDQyOHYzNDBoLTI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYzMmMwIDQuNCAzLjYgOCA4IDhoMjE2YzAgNjEuOCA1MC4yIDExMiAxMTIgMTEyczExMi01MC4yIDExMi0xMTJoMjE2YzQuNCAwIDgtMy42IDgtOHYtMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTUxMiA4ODhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4aDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4eiJ9fV19LG5hbWU6ImJlbGwiLHRoZW1lOiJmaWxsZWQifSxRbz15byxrbz1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpRb30pKX0seWk9dC5mb3J3YXJkUmVmKGtvKSxNaT15aSxDaT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODE2IDc2OGgtMjRWNDI4YzAtMTQxLjEtMTA0LjMtMjU3LjctMjQwLTI3Ny4xVjExMmMwLTIyLjEtMTcuOS00MC00MC00MHMtNDAgMTcuOS00MCA0MHYzOC45Yy0xMzUuNyAxOS40LTI0MCAxMzYtMjQwIDI3Ny4xdjM0MGgtMjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjMyYzAgNC40IDMuNiA4IDggOGgyMTZjMCA2MS44IDUwLjIgMTEyIDExMiAxMTJzMTEyLTUwLjIgMTEyLTExMmgyMTZjNC40IDAgOC0zLjYgOC04di0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNTEyIDg4OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhoOTZjMCAyNi41LTIxLjUgNDgtNDggNDh6TTMwNCA3NjhWNDI4YzAtNTUuNiAyMS42LTEwNy44IDYwLjktMTQ3LjFTNDU2LjQgMjIwIDUxMiAyMjBjNTUuNiAwIDEwNy44IDIxLjYgMTQ3LjEgNjAuOVM3MjAgMzcyLjQgNzIwIDQyOHYzNDBIMzA0eiJ9fV19LG5hbWU6ImJlbGwiLHRoZW1lOiJvdXRsaW5lZCJ9LERvPUNpLEtpPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkRvfSkpfSxSaT10LmZvcndhcmRSZWYoS2kpLEtvPVJpLEpvPXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiAyMjBjLTU1LjYgMC0xMDcuOCAyMS42LTE0Ny4xIDYwLjlTMzA0IDM3Mi40IDMwNCA0Mjh2MzQwaDQxNlY0MjhjMC01NS42LTIxLjYtMTA3LjgtNjAuOS0xNDcuMVM1NjcuNiAyMjAgNTEyIDIyMHptMjgwIDIwOGMwLTE0MS4xLTEwNC4zLTI1Ny44LTI0MC0yNzcuMnYuMWMxMzUuNyAxOS40IDI0MCAxMzYgMjQwIDI3Ny4xek00NzIgMTUwLjl2LS4xQzMzNi4zIDE3MC4yIDIzMiAyODYuOSAyMzIgNDI4YzAtMTQxLjEgMTA0LjMtMjU3LjcgMjQwLTI3Ny4xeiIsZmlsbDp2fX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04MTYgNzY4aC0yNFY0MjhjMC0xNDEuMS0xMDQuMy0yNTcuNy0yNDAtMjc3LjFWMTEyYzAtMjIuMS0xNy45LTQwLTQwLTQwcy00MCAxNy45LTQwIDQwdjM4LjljLTEzNS43IDE5LjQtMjQwIDEzNi0yNDAgMjc3LjF2MzQwaC0yNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MzJjMCA0LjQgMy42IDggOCA4aDIxNmMwIDYxLjggNTAuMiAxMTIgMTEyIDExMnMxMTItNTAuMiAxMTItMTEyaDIxNmM0LjQgMCA4LTMuNiA4LTh2LTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyek01MTIgODg4Yy0yNi41IDAtNDgtMjEuNS00OC00OGg5NmMwIDI2LjUtMjEuNSA0OC00OCA0OHptMjA4LTEyMEgzMDRWNDI4YzAtNTUuNiAyMS42LTEwNy44IDYwLjktMTQ3LjFTNDU2LjQgMjIwIDUxMiAyMjBjNTUuNiAwIDEwNy44IDIxLjYgMTQ3LjEgNjAuOVM3MjAgMzcyLjQgNzIwIDQyOHYzNDB6IixmaWxsOmZ9fV19fSxuYW1lOiJiZWxsIix0aGVtZToidHdvdG9uZSJ9LHFvPUpvLF9pPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOnFvfSkpfSxFbz10LmZvcndhcmRSZWYoX2kpLGtuPUVvLERuPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik03NjYuNCA3NDQuM2M0My43IDAgNzkuNC0zNi4yIDc5LjQtODAuNSAwLTUzLjUtNzkuNC0xNDAuOC03OS40LTE0MC44UzY4NyA2MTAuMyA2ODcgNjYzLjhjMCA0NC4zIDM1LjcgODAuNSA3OS40IDgwLjV6bS0zNzcuMS00NC4xYzcuMSA3LjEgMTguNiA3LjEgMjUuNiAwbDI1Ni4xLTI1NmM3LjEtNy4xIDcuMS0xOC42IDAtMjUuNmwtMjU2LTI1NmMtLjYtLjYtMS4zLTEuMi0yLTEuN2wtNzguMi03OC4yYTkuMTEgOS4xMSAwIDAwLTEyLjggMGwtNDggNDhhOS4xMSA5LjExIDAgMDAwIDEyLjhsNjcuMiA2Ny4yLTIwNy44IDIwNy45Yy03LjEgNy4xLTcuMSAxOC42IDAgMjUuNmwyNTUuOSAyNTZ6bTEyLjktNDQ4LjZsMTc4LjkgMTc4LjlIMjIzLjRsMTc4LjgtMTc4Ljl6TTkwNCA4MTZIMTIwYy00LjQgMC04IDMuNi04IDh2ODBjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTgwYzAtNC40LTMuNi04LTgtOHoifX1dfSxuYW1lOiJiZy1jb2xvcnMiLHRoZW1lOiJvdXRsaW5lZCJ9LFdyPURuLGtyPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOldyfSkpfSxpYT10LmZvcndhcmRSZWYoa3IpLGFhPWlhLG5hPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6eyJmaWxsLXJ1bGUiOiJldmVub2RkIix2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMzEwLjEzIDU5Ni40NWMtOC00LjQ2LTE2LjUtOC40My0yNS0xMS45YTI3My41NSAyNzMuNTUgMCAwMC0yNi45OS03LjQ0Yy0yLjUtLjk5LTIuNSAxLTIuNSAxLjQ5IDAgNy45My41IDE4Ljg0IDEuNSAyNy43NyAxIDcuNDQgMiAxNS4zNyA0IDIyLjggMCAuNSAwIDEgLjUgMS41IDEgLjk5IDIgMS40OCAzIC40OSA4LTQuNDYgMTYtOC40MyAyMy0xMy4zOSA3LjUtNS40NSAxNS41LTExLjkgMjItMTguMzUgMS41LTEuNDggMC0yLjQ3LjUtMi45N20zMjMuOTUtMTEuOWEyNzMuNTUgMjczLjU1IDAgMDAtMjctNy40NGMtMi41LS45OS0yLjUgMS0yLjUgMS40OSAwIDcuOTMuNSAxOC44NCAxLjUgMjcuNzcgMSA3LjQzIDIgMTUuMzcgNCAyMi44IDAgLjUgMCAxIC41IDEuNSAxIC45OSAyIDEuNDggMyAuNDkgOC00LjQ2IDE2LTguNDMgMjMtMTMuMzkgNy41LTUuNDUgMTUuNS0xMS45IDIyLTE4LjM1IDItMS40OC41LTIuNDcuNS0yLjk3LTcuNS00LjQ2LTE2LjUtOC40My0yNS0xMS45In19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNzQxLjUgMTEySDI4M2MtOTQuNSAwLTE3MSA3Ni41LTE3MSAxNzEuNXY0NThjLjUgOTQgNzcgMTcwLjUgMTcxIDE3MC41aDQ1OGM5NC41IDAgMTcxLTc2LjUgMTcxLTE3MC41di00NThjLjUtOTUtNzYtMTcxLjUtMTcwLjUtMTcxLjVtOTUgMzQzLjVIODUydjQ4aC0xNS41ek03NDEgNDU0bDIgNDMtMTMuNSAxLjUtNS00NC41em0tMjMuNSAwbDQgNDUuNUw3MDcgNTAxbC02LjUtNDcuNWgxN3pNNDg3IDQ1NS41aDE1djQ4aC0xNXptLTk2LTEuNWwyIDQzLTEzLjUgMS41LTUtNDQuNXptLTIzLjUgMGw0IDQ1LjUtMTQuNSAyLTYtNDcuNXpNMzY0IDYwM2MtMjAuNSA2NS41LTE0OCA1OS41LTE1OS41IDU3LjUtOS0xNjEuNS0yMy0xOTYuNS0zNC41LTI3NS41bDU0LjUtMjIuNWMxIDcxLjUgOSAxODUgOSAxODVzMTA4LjUtMTUuNSAxMzIgNDdjLjUgMyAwIDYtMS41IDguNW0yMC41IDM1LjVsLTIzLjUtMTI0aDM1LjVsMTMgMTIzem00NC41LThsLTI3LTIzNSAzMy41LTEuNSAyMSAyMzZINDI5em0zNC0xNzVoMTcuNXY0OEg0Njd6bTQxIDE5MGgtMjYuNWwtOS41LTEyNmgzNnptMjEwLTQzQzY5My41IDY2OCA1NjYgNjYyIDU1NC41IDY2MGMtOS0xNjEtMjMtMTk2LTM0LjUtMjc1bDU0LjUtMjIuNWMxIDcxLjUgOSAxODUgOSAxODVTNjkyIDUzMiA3MTUuNSA1OTRjLjUgMyAwIDYtMS41IDguNW0xOS41IDM2bC0yMy0xMjRINzQ2bDEzIDEyM3ptNDUuNS04bC0yNy41LTIzNUw3ODUgMzk0bDIxIDIzNmgtMjd6bTMzLjUtMTc1SDgzMHY0OGgtMTN6bTQxIDE5MEg4MjdsLTkuNS0xMjZoMzZ6In19XX0sbmFtZToiYmlsaWJpbGkiLHRoZW1lOiJmaWxsZWQifSxtYT1uYSx4cj1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjptYX0pKX0sWnI9dC5mb3J3YXJkUmVmKHhyKSxWYT1acixEYT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnsiZmlsbC1ydWxlIjoiZXZlbm9kZCIsdmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTIzNS41MiA2MTYuNTdjMTYuNzMtLjc0IDMyLjI4LTEuNzcgNDcuNjktMi4wNyA2Ni44LTEuMTggMTMyLjQgNi44MSAxOTQuNzYgMzIgMzAuNSAxMi4zIDU5Ljk4IDI2LjUyIDg2LjUgNDYuNTEgMjEuNzYgMTYuNDUgMjYuNSAzNi45IDE2LjU4IDY3LjExLTYuMjIgMTguNjctMTguNjYgMzIuNzQtMzQuMzYgNDUuMDQtMzcuMDMgMjguODgtNzUuODMgNTQuOTYtMTIwLjQxIDY5LjYyQTU5NS44NyA1OTUuODcgMCAwMTMzMCA4OTguMDRjLTQyLjggNi42Ny04Ni4yIDkuNjMtMTI5LjQ1IDEzLjYzLTguODguODktMTcuOTItLjMtMjYuOC0uMy00LjYgMC01Ljc4LTIuMzctNS45My02LjM3LTEuMTgtMTkuNy0yLjA3LTM5LjU1LTMuODUtNTkuMjVhMjYwOS40NyAyNjA5LjQ3IDAgMDAtNy43LTc2LjNjLTQtMzUuNC04LjQ0LTcwLjY2LTEyLjg5LTEwNS45Mi00LjU5LTM3LjE4LTkuMzMtNzQuMjEtMTMuNzctMTExLjQtNC40NC0zNi4zLTguNDQtNzIuNzMtMTMuMTgtMTA5LjAzLTUuMzQtNDEuNDgtMTEuMjYtODIuOTYtMTYuODktMTI0LjQ0LTYuNjYtNDkuMDMtMTUuODUtOTcuNjItMjguNDMtMTQ1LjQ3LS42LTIuMDcgMS4xOC02LjY3IDIuOTYtNy4yNiA0MS45MS0xNi44OSA4My45OC0zMy4zMyAxMjUuODktNTAuMDcgMTMuOTItNS42MyAxNS4xLTcuMjYgMTUuMjUgMTAuMzcuMTUgNzUuMS40NSAxNTAuMjEgMS42MyAyMjUuMzIuNiAzOS4xMSAyLjA4IDc4LjIyIDQuNzQgMTE3LjE4IDMuMjYgNDcuNTUgOC4zIDk1LjEgMTIuNiAxNDIuNjYgMCAyLjA3Ljg4IDQgMS4zMyA1LjE5bTgzLjY4IDIxOC4wNmE3NDM3Mi4zIDc0MzcyLjMgMCAwMDExNC43OC04Ni45NmMtNC43NC02LjgyLTEwOS4zLTQ3Ljg1LTEzMy44OS01My4zMyA2LjIyIDQ2LjM3IDEyLjU5IDkyLjU5IDE5LjEgMTQwLjI5bTQzNC4xMy0xNC4zOWMtMTkuOTQtMjAyLjE0LTM2Ljc4LTQwNi41LTc1LjMyLTYwOS42NyAxMi41NS0xLjQ4IDI1LjEtMy4yNSAzNy44LTQuMyAxNC42My0xLjMyIDI5LjQtMS45MiA0NC4wMS0zLjEgMTIuMjYtMS4wNCAxNi44NCAyLjIyIDE3LjU4IDE0LjIyIDIuMjEgMzIuMTMgNC4xMyA2NC4yNiA2LjM1IDk2LjQgMi45NSA0My4zOSA2LjA1IDg2LjkyIDkuMTUgMTMwLjMxIDIuMjIgMzEuMjUgNC4xNCA2Mi42NCA2LjY1IDkzLjg5IDIuOCAzNC4yIDUuOSA2OC4yNyA5IDEwMi40NyAyLjIyIDI1LjE4IDQuMyA1MC41IDYuOCA3NS42OCAyLjY2IDI3LjI0IDUuNjEgNTQuNDkgOC40MiA4MS43NC43NCA3Ljg1IDEuNjIgMTUuNyAyLjIxIDIzLjU0LjMgNC4zLTIuMDYgNC44OS02LjA1IDQuNDUtMjEuNy0yLjIzLTQzLjQyLTMuODUtNjYuNi01LjYzTTU3MiA1MjcuMTVjMTcuNjItMi41MSAzNC42NC01LjMyIDUxLjY2LTcuMjUgMTIuMjktMS40OCAyNC43Mi0xLjYzIDM3LjAxLTIuODEgNi42Ni0uNiAxMC45NSAxLjc3IDExLjk5IDguMjkgMi44MSAxNy4zMiA1Ljc3IDM0Ljc5IDcuODUgNTIuMjYgMy40IDI5LjAyIDYuMDcgNTguMTggOS4xNyA4Ny4yIDIuNjcgMjUuNDYgNS4zMyA1MC43OCA4LjMgNzYuMjQgMy4yNSAyNy4yNCA2LjggNTQuMzMgMTAuMiA4MS40MiAxLjA0IDggMS43OCAxNi4xNCAyLjgyIDI0Ljg4YTk1MDcuMSA5NTA3LjEgMCAwMC03NC43NiA5LjYyQzYxNC45MyA3NDcuMTUgNTkzLjYxIDYzOC4xOSA1NzIgNTI3LjE1bTM4MiAzMzguODNjLTI0LjA4IDAtNDcuMjguMTQtNzAuNDctLjMtMS45MyAwLTUuMzUtMy40LTUuNS01LjQ4LTMuNTctMzcuMDUtNi42OS03My45Ni05Ljk2LTExMWwtOS4zNy0xMDMuMTZjLTMuMjctMzUuNDItNi4zOS03MC44NC05LjY2LTEwNi4yNi0uMTUtMi4wNy0uNi00LTEuMDQtNy4xMSA4LjYyLTEuMDQgMTYuOC0yLjY3IDI1LjEyLTIuNjcgMjIuNDUgMCA0NC45LjYgNjcuNSAxLjE5IDUuOC4xNCA4LjMyIDQgOC42MiA5LjMzLjc1IDExLjEyIDEuNzkgMjIuMDggMS43OSAzMy4yLjE0IDUyLjE3LS4xNSAxMDQuNDguMyAxNTYuNjUuNDQgNDEuNjUgMS43OCA4My40NCAyLjY3IDEyNS4wOHpNNjIyLjA3IDQ4MGMtNS4zLTQyLjU3LTEwLjYyLTg0LjEtMTYuMDctMTI3LjQgMTMuODYtLjE2IDI3LjcxLS42IDQxLjQyLS42IDQuNTcgMCA2LjY0IDIuNTEgNy4wOCA3LjU0IDMuNjkgMzguNzIgNy41MiA3Ny40NSAxMS41IDExNy42NS0xNC4zLjc0LTI5LjA0IDEuNzgtNDMuOTMgMi44MU05MDEgMzY0LjA3YzExLjk0IDAgMjQuNjItLjE1IDM3LjQ1IDAgNi40Mi4xNCA5LjU1IDIuNjcgOS41NSAxMC4yNC0uNDUgMzYuMjItLjE1IDcyLjQ1LS4xNSAxMDguNTNWNDkxYy0xNS4zNy0uNzQtMzAuMTQtMS40OS00Ni43LTIuMjMtLjE1LTQxLjEyLS4xNS04Mi40LS4xNS0xMjQuN001NjguNTcgNDg5Yy03LjQzLTQxLjItMTUtODIuMS0yMi41Ny0xMjQuMDIgMTMuNTEtMi4wNyAyNy4wMi00LjI5IDQwLjM5LTUuOSA1Ljk0LS43NSA0LjkgNC40MiA1LjIgNy42NyAxLjYzIDEzLjg4IDIuODEgMjcuNiA0LjMgNDEuNDkgMi4zNyAyMS43IDQuNzUgNDMuNCA2Ljk4IDY0Ljk2LjMgMi44IDAgNS43NiAwIDguODYtMTEuMjkgMi4zNi0yMi41NyA0LjU4LTM0LjMgNi45NE04MzkgMzY1LjE2YzEyLjcyIDAgMjUuNDMuMTUgMzgtLjE1IDUuNjktLjE1IDcuNzggMS4wNCA3LjYzIDcuNTYtLjQ0IDE3LjM2LjE1IDM0LjcuMyA1Mi4yLjE1IDIxLjUxIDAgNDMuMTcgMCA2NC41Mi0xMi44NiAxLjM0LTI0LjA5IDIuMzctMzYuMiAzLjcxLTMuMTUtNDEuOTctNi40NC04My44LTkuNzMtMTI3Ljg0In19XX0sbmFtZToiYmlsaWJpbGkiLHRoZW1lOiJvdXRsaW5lZCJ9LHBhPURhLHNvPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOnBhfSkpfSxxYT10LmZvcndhcmRSZWYoc28pLGplPXFhLEtyPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NTYgMzc2SDY0OFYxNjhjMC04LjgtNy4yLTE2LTE2LTE2SDE2OGMtOC44IDAtMTYgNy4yLTE2IDE2djQ2NGMwIDguOCA3LjIgMTYgMTYgMTZoMjA4djIwOGMwIDguOCA3LjIgMTYgMTYgMTZoNDY0YzguOCAwIDE2LTcuMiAxNi0xNlYzOTJjMC04LjgtNy4yLTE2LTE2LTE2em0tNDgwIDE2djE4OEgyMjBWMjIwaDM2MHYxNTZIMzkyYy04LjggMC0xNiA3LjItMTYgMTZ6bTIwNCA1MnYxMzZINDQ0VjQ0NGgxMzZ6bTIyNCAzNjBINDQ0VjY0OGgxODhjOC44IDAgMTYtNy4yIDE2LTE2VjQ0NGgxNTZ2MzYweiJ9fV19LG5hbWU6ImJsb2NrIix0aGVtZToib3V0bGluZWQifSxBbz1LcixJbz1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpBb30pKX0sZWk9dC5mb3J3YXJkUmVmKElvKSxucj1laSxyaT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNjk3LjggNDgxLjRjMzMuNi0zNSA1NC4yLTgyLjMgNTQuMi0xMzQuM3YtMTAuMkM3NTIgMjI5LjMgNjYzLjkgMTQyIDU1NS4zIDE0MkgyNTkuNGMtMTUuMSAwLTI3LjQgMTIuMy0yNy40IDI3LjR2Njc5LjFjMCAxNi4zIDEzLjIgMjkuNSAyOS41IDI5LjVoMzE4LjdjMTE3IDAgMjExLjgtOTQuMiAyMTEuOC0yMTAuNXYtMTFjMC03My0zNy40LTEzNy4zLTk0LjItMTc1LjF6TTMyOCAyMzhoMjI0LjdjNTcuMSAwIDEwMy4zIDQ0LjQgMTAzLjMgOTkuM3Y5LjVjMCA1NC44LTQ2LjMgOTkuMy0xMDMuMyA5OS4zSDMyOFYyMzh6bTM2Ni42IDQyOS40YzAgNjIuOS01MS43IDExMy45LTExNS41IDExMy45SDMyOFY1NDIuN2gyNTEuMWM2My44IDAgMTE1LjUgNTEgMTE1LjUgMTEzLjl2MTAuOHoifX1dfSxuYW1lOiJib2xkIix0aGVtZToib3V0bGluZWQifSxCaT1yaSxybD1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpCaX0pKX0sY2k9dC5mb3J3YXJkUmVmKHJsKSxzbD1jaSxLYT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODMyIDY0SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlY5NmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNjY4IDM0NS45TDYyMS41IDMxMiA1NzIgMzQ3LjRWMTI0aDk2djIyMS45eiJ9fV19LG5hbWU6ImJvb2siLHRoZW1lOiJmaWxsZWQifSxUbz1LYSxWaT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpUb30pKX0sR2k9dC5mb3J3YXJkUmVmKFZpKSxibz1HaSxCbz17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODMyIDY0SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlY5NmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTI2MCA3Mmg5NnYyMDkuOUw2MjEuNSAzMTIgNTcyIDM0Ny40VjEzNnptMjIwIDc1MkgyMzJWMTM2aDI4MHYyOTYuOWMwIDMuMyAxIDYuNiAzIDkuM2ExNS45IDE1LjkgMCAwMDIyLjMgMy43bDgzLjgtNTkuOSA4MS40IDU5LjRjMi43IDIgNiAzLjEgOS40IDMuMSA4LjggMCAxNi03LjIgMTYtMTZWMTM2aDY0djc1MnoifX1dfSxuYW1lOiJib29rIix0aGVtZToib3V0bGluZWQifSxMbz1CbyxFcj1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpMb30pKX0sSWk9dC5mb3J3YXJkUmVmKEVyKSxhaT1JaSx1aT17aWNvbjpmdW5jdGlvbihmLHYpe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04MzIgNjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tMjYwIDcyaDk2djIwOS45TDYyMS41IDMxMiA1NzIgMzQ3LjRWMTM2ek0yMzIgODg4VjEzNmgyODB2Mjk2LjljMCAzLjMgMSA2LjYgMyA5LjNhMTUuOSAxNS45IDAgMDAyMi4zIDMuN2w4My44LTU5LjkgODEuNCA1OS40YzIuNyAyIDYgMy4xIDkuNCAzLjEgOC44IDAgMTYtNy4yIDE2LTE2VjEzNmg2NHY3NTJIMjMyeiIsZmlsbDpmfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02NjggMzQ1LjlWMTM2aC05NnYyMTEuNGw0OS41LTM1LjR6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTcyNy45IDEzNnYyOTYuNWMwIDguOC03LjIgMTYtMTYgMTYtMy40IDAtNi43LTEuMS05LjQtMy4xTDYyMS4xIDM4NmwtODMuOCA1OS45YTE1LjkgMTUuOSAwIDAxLTIyLjMtMy43Yy0yLTIuNy0zLTYtMy05LjNWMTM2SDIzMnY3NTJoNTU5LjlWMTM2aC02NHoiLGZpbGw6dn19XX19LG5hbWU6ImJvb2siLHRoZW1lOiJ0d290b25lIn0sWWk9dWksY2w9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246WWl9KSl9LENsPXQuZm9yd2FyZFJlZihjbCksZGk9Q2wsZmk9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg3MiA4MDhIMTUyYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDcyMGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptLTcyMC05NGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6bTAtNDk4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptMCAzMzJoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em0wLTE2Nmg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6bTE2NiAxNjZoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em0wLTMzMmg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6bTMzMiAwaDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptMCAzMzJoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em0yMjItNzJoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0tMzg4IDcyaDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptMzg4LTQwNGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS0zODggNzJoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em0zODggNDI2aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptLTM4OCA3Mmg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6bTM4OC00MDRoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0tMzg4IDcyaDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHoifX1dfSxuYW1lOiJib3JkZXItYm90dG9tIix0aGVtZToib3V0bGluZWQifSxtbz1maSxiaT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjptb30pKX0sVmw9dC5mb3J3YXJkUmVmKGJpKSxObD1WbCxqbD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTQwIDE0NGgtNTZjLTQuNCAwLTggMy42LTggOHY3MjBjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFYxNTJjMC00LjQtMy42LTgtOC04em0tMTY2IDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em00OTggMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS02NjQgMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTQ5OCAwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNMjA4IDMxMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTY2NCAwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCAzMzJoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0tNjY0IDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wIDE2NmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtMzMyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptNjY0IDMzMmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtMzMyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNMzc0IDgwOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtMzMyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMzMyIDMzMmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtMzMyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHoifX1dfSxuYW1lOiJib3JkZXItaG9yaXpvbnRhbCIsdGhlbWU6Im91dGxpbmVkIn0sVWw9amwscnM9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246VWx9KSl9LGJsPXQuZm9yd2FyZFJlZihycyksV2w9YmwsdWw9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg3MiA0NzZINTQ4VjE0NGgtNzJ2MzMySDE1MmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGgzMjR2MzMyaDcyVjU0OGgzMjRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtMTY2aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCA0OThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wLTY2NGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgNDk4aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNNjUwIDIxNmg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6bTU2IDU5MmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS0zMzIgMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS01Ni01OTJoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em0tMTY2IDBoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em01NiA1OTJoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0tNTYtNDI2aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptNTYgMjYwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHoifX1dfSxuYW1lOiJib3JkZXItaW5uZXIiLHRoZW1lOiJvdXRsaW5lZCJ9LGtsPXVsLExzPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOmtsfSkpfSxTbD10LmZvcndhcmRSZWYoTHMpLElsPVNsLGFzPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0yMDggMTQ0aC01NmMtNC40IDAtOCAzLjYtOCA4djcyMGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04VjE1MmMwLTQuNC0zLjYtOC04LTh6bTE2NiAwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptNDk4IDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0tMzMyIDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0xNjYgMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6TTU0MCAzMTBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0zMzIgMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgMzMyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptLTMzMiAwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCAxNjZoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wLTMzMmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTMzMiAzMzJoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wLTMzMmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6TTM3NCA4MDhoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wLTMzMmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTMzMiAzMzJoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wLTMzMmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6In19XX0sbmFtZToiYm9yZGVyLWxlZnQiLHRoZW1lOiJvdXRsaW5lZCJ9LG9zPWFzLGFsPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOm9zfSkpfSxLbD10LmZvcndhcmRSZWYoYWwpLE5pPUtsLE9sPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2ek00ODQgMzY2aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHpNMzAyIDU0OGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6bTM2NCAwaDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptLTE4MiAwaDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptMCAxODJoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4eiJ9fV19LG5hbWU6ImJvcmRlci1vdXRlciIsdGhlbWU6Im91dGxpbmVkIn0sQWE9T2wsUGw9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246QWF9KSl9LGlzPXQuZm9yd2FyZFJlZihQbCksWGk9aXMsemw9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6In19XX0sbmFtZToiYm9yZGVyIix0aGVtZToib3V0bGluZWQifSxvbD16bCxTaT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpvbH0pKX0sUGk9dC5mb3J3YXJkUmVmKFNpKSxGbD1QaSxBbD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODcyIDE0NGgtNTZjLTQuNCAwLTggMy42LTggOHY3MjBjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFYxNTJjMC00LjQtMy42LTgtOC04em0tMTY2IDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0tNDk4IDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0zMzIgMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS0xNjYgMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTE2NiAxNjZoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0tMzMyIDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wIDMzMmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTMzMiAwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCAxNjZoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wLTMzMmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6TTIwOCA4MDhoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wLTMzMmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTQ5OCAzMzJoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wLTMzMmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6TTM3NCA4MDhoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wLTMzMmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6In19XX0sbmFtZToiYm9yZGVyLXJpZ2h0Iix0aGVtZToib3V0bGluZWQifSxabz1BbCxRaT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpab30pKX0sTGw9dC5mb3J3YXJkUmVmKFFpKSx6aT1MbCxUZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODcyIDE0NEgxNTJjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNzIwYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04ek0yMDggMzEwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCA0OThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wLTMzMmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgMTY2aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMTY2LTE2NmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgMzMyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMzMyIDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wLTMzMmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTE2NiAwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptLTMzMiAwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMzMyIDMzMmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS0zMzIgMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTMzMi00OThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0tMzMyIDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0zMzIgMzMyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptLTMzMiAwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHoifX1dfSxuYW1lOiJib3JkZXItdG9wIix0aGVtZToib3V0bGluZWQifSxpdD1UZSxRdD1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjppdH0pKX0sVW49dC5mb3J3YXJkUmVmKFF0KSxPcj1VbixsYT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODcyIDQ3NkgxNTJjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNzIwYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wLTE2NmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgNDk4aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC02NjRoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wIDQ5OGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6TTY1MCAyMTZoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em01NiA1OTJoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0tMzMyIDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0tNTYtNTkyaDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptLTE2NiAwaDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptMzMyIDBoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4ek0yMDggODA4aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMzMyIDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04ek0xNTIgMzgyaDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptMzMyIDBoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4ek0yMDggNjQyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMzMyIDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04eiJ9fV19LG5hbWU6ImJvcmRlci12ZXJ0aWNsZSIsdGhlbWU6Im91dGxpbmVkIn0sWWE9bGEseGE9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246WWF9KSl9LFZvPXQuZm9yd2FyZFJlZih4YSksWmE9Vm8sWGE9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJkZWZzIixhdHRyczp7fSxjaGlsZHJlbjpbe3RhZzoic3R5bGUiLGF0dHJzOnt9fV19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMTE3IDM2OGgyMzF2NjRIMTE3em01NTkgMGgyNDF2NjRINjc2em0tMjY0IDBoMjAwdjY0SDQxMnptMCAyMjRoMjAwdjY0SDQxMnptMjY0IDBoMjQxdjY0SDY3NnptLTU1OSAwaDIzMXY2NEgxMTd6bTI5NS0xNjBWMTc5aC02NHY2NjZoNjRWNTkyem0yNjQtNjRWMTc5aC02NHY2NjZoNjRWNDMyeiJ9fV19LG5hbWU6ImJvcmRlcmxlc3MtdGFibGUiLHRoZW1lOiJvdXRsaW5lZCJ9LEJhPVhhLFFhPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkJhfSkpfSx2aT10LmZvcndhcmRSZWYoUWEpLE9pPXZpLGNvPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05NTIgMjI0aC01MmMtNC40IDAtOCAzLjYtOCA4djI0OGgtOTJWMzA0YzAtNC40LTMuNi04LTgtOEg0NDh2NDMyaDM0NGM0LjQgMCA4LTMuNiA4LThWNTQ4aDkydjI0NGMwIDQuNCAzLjYgOCA4IDhoNTJjNC40IDAgOC0zLjYgOC04VjIzMmMwLTQuNC0zLjYtOC04LTh6bS03MjggODB2MTc2aC05MlYyMzJjMC00LjQtMy42LTgtOC04SDcyYy00LjQgMC04IDMuNi04IDh2NTYwYzAgNC40IDMuNiA4IDggOGg1MmM0LjQgMCA4LTMuNiA4LThWNTQ4aDkydjE3MmMwIDQuNCAzLjYgOCA4IDhoMTUyVjI5NkgyMzJjLTQuNCAwLTggMy42LTggOHoifX1dfSxuYW1lOiJib3gtcGxvdCIsdGhlbWU6ImZpbGxlZCJ9LGxzPWNvLFpzPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOmxzfSkpfSwkcz10LmZvcndhcmRSZWYoWnMpLHNzPSRzLEhzPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05NTIgMjI0aC01MmMtNC40IDAtOCAzLjYtOCA4djI0OGgtOTJWMzA0YzAtNC40LTMuNi04LTgtOEgyMzJjLTQuNCAwLTggMy42LTggOHYxNzZoLTkyVjIzMmMwLTQuNC0zLjYtOC04LThINzJjLTQuNCAwLTggMy42LTggOHY1NjBjMCA0LjQgMy42IDggOCA4aDUyYzQuNCAwIDgtMy42IDgtOFY1NDhoOTJ2MTcyYzAgNC40IDMuNiA4IDggOGg1NjBjNC40IDAgOC0zLjYgOC04VjU0OGg5MnYyNDRjMCA0LjQgMy42IDggOCA4aDUyYzQuNCAwIDgtMy42IDgtOFYyMzJjMC00LjQtMy42LTgtOC04ek0yOTYgMzY4aDg4djI4OGgtODhWMzY4em00MzIgMjg4SDQ0OFYzNjhoMjgwdjI4OHoifX1dfSxuYW1lOiJib3gtcGxvdCIsdGhlbWU6Im91dGxpbmVkIn0seGw9SHMsU289ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246eGx9KSl9LE5vPXQuZm9yd2FyZFJlZihTbyksX289Tm8sY3M9e2ljb246ZnVuY3Rpb24oZix2KXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMjk2IDM2OGg4OHYyODhoLTg4em0xNTIgMGgyODB2Mjg4SDQ0OHoiLGZpbGw6dn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNOTUyIDIyNGgtNTJjLTQuNCAwLTggMy42LTggOHYyNDhoLTkyVjMwNGMwLTQuNC0zLjYtOC04LThIMjMyYy00LjQgMC04IDMuNi04IDh2MTc2aC05MlYyMzJjMC00LjQtMy42LTgtOC04SDcyYy00LjQgMC04IDMuNi04IDh2NTYwYzAgNC40IDMuNiA4IDggOGg1MmM0LjQgMCA4LTMuNiA4LThWNTQ4aDkydjE3MmMwIDQuNCAzLjYgOCA4IDhoNTYwYzQuNCAwIDgtMy42IDgtOFY1NDhoOTJ2MjQ0YzAgNC40IDMuNiA4IDggOGg1MmM0LjQgMCA4LTMuNiA4LThWMjMyYzAtNC40LTMuNi04LTgtOHpNMzg0IDY1NmgtODhWMzY4aDg4djI4OHptMzQ0IDBINDQ4VjM2OGgyODB2Mjg4eiIsZmlsbDpmfX1dfX0sbmFtZToiYm94LXBsb3QiLHRoZW1lOiJ0d290b25lIn0sX2w9Y3MsR2w9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246X2x9KSl9LFYxPXQuZm9yd2FyZFJlZihHbCksb2k9VjEsRHM9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTc0MCAxNjFjLTYxLjggMC0xMTIgNTAuMi0xMTIgMTEyIDAgNTAuMSAzMy4xIDkyLjYgNzguNSAxMDYuOXY5NS45TDMyMCA2MDIuNFYzMTguMWM0NC4yLTE1IDc2LTU2LjkgNzYtMTA2LjEgMC02MS44LTUwLjItMTEyLTExMi0xMTJzLTExMiA1MC4yLTExMiAxMTJjMCA0OS4yIDMxLjggOTEgNzYgMTA2LjFWNzA2Yy00NC4yIDE1LTc2IDU2LjktNzYgMTA2LjEgMCA2MS44IDUwLjIgMTEyIDExMiAxMTJzMTEyLTUwLjIgMTEyLTExMmMwLTQ5LjItMzEuOC05MS03Ni0xMDYuMXYtMjcuOGw0MjMuNS0xMzguN2E1MC41MiA1MC41MiAwIDAwMzQuOS00OC4yVjM3OC4yYzQyLjktMTUuOCA3My42LTU3IDczLjYtMTA1LjIgMC02MS44LTUwLjItMTEyLTExMi0xMTJ6bS01MDQgNTFhNDguMDEgNDguMDEgMCAwMTk2IDAgNDguMDEgNDguMDEgMCAwMS05NiAwem05NiA2MDBhNDguMDEgNDguMDEgMCAwMS05NiAwIDQ4LjAxIDQ4LjAxIDAgMDE5NiAwem00MDgtNDkxYTQ4LjAxIDQ4LjAxIDAgMDEwLTk2IDQ4LjAxIDQ4LjAxIDAgMDEwIDk2eiJ9fV19LG5hbWU6ImJyYW5jaGVzIix0aGVtZToib3V0bGluZWQifSxCcz1EcyxWcz1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpCc30pKX0sSmk9dC5mb3J3YXJkUmVmKFZzKSxMaT1KaSxZbD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMzA0IDI4MGg0MTZjNC40IDAgOC0zLjYgOC04IDAtNDAtOC44LTc2LjctMjUuOS0xMDguMWExODQuMzEgMTg0LjMxIDAgMDAtNzQtNzRDNTk2LjcgNzIuOCA1NjAgNjQgNTIwIDY0aC0xNmMtNDAgMC03Ni43IDguOC0xMDguMSAyNS45YTE4NC4zMSAxODQuMzEgMCAwMC03NCA3NEMzMDQuOCAxOTUuMyAyOTYgMjMyIDI5NiAyNzJjMCA0LjQgMy42IDggOCA4eiJ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTk0MCA1MTJINzkyVjQxMmM3Ni44IDAgMTM5LTYyLjIgMTM5LTEzOSAwLTQuNC0zLjYtOC04LThoLTYwYy00LjQgMC04IDMuNi04IDhhNjMgNjMgMCAwMS02MyA2M0gyMzJhNjMgNjMgMCAwMS02My02M2MwLTQuNC0zLjYtOC04LThoLTYwYy00LjQgMC04IDMuNi04IDggMCA3Ni44IDYyLjIgMTM5IDEzOSAxMzl2MTAwSDg0Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDE0OHY5NmMwIDYuNS4yIDEzIC43IDE5LjNDMTY0LjEgNzI4LjYgMTE2IDc5Ni43IDExNiA4NzZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOCAwLTQ0LjIgMjMuOS04Mi45IDU5LjYtMTAzLjdhMjczIDI3MyAwIDAwMjIuNyA0OWMyNC4zIDQxLjUgNTkgNzYuMiAxMDAuNSAxMDAuNSAyOC45IDE2LjkgNjEgMjguOCA5NS4zIDM0LjUgNC40IDAgOC0zLjYgOC04VjQ4NGMwLTQuNCAzLjYtOCA4LThoNjBjNC40IDAgOCAzLjYgOCA4djQ2NC4yYzAgNC40IDMuNiA4IDggOCAzNC4zLTUuNyA2Ni40LTE3LjYgOTUuMy0zNC41YTI4MS4zOCAyODEuMzggMCAwMDEyMy4yLTE0OS41QTEyMC40IDEyMC40IDAgMDE4MzYgODc2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTggMC03OS4zLTQ4LjEtMTQ3LjQtMTE2LjctMTc2LjcuNC02LjQuNy0xMi44LjctMTkuM3YtOTZoMTQ4YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04eiJ9fV19LG5hbWU6ImJ1ZyIsdGhlbWU6ImZpbGxlZCJ9LE5zPVlsLGpzPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOk5zfSkpfSx3Yz10LmZvcndhcmRSZWYoanMpLEVjPXdjLFRjPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0zMDQgMjgwaDU2YzQuNCAwIDgtMy42IDgtOCAwLTI4LjMgNS45LTUzLjIgMTcuMS03My41IDEwLjYtMTkuNCAyNi0zNC44IDQ1LjQtNDUuNEM0NTAuOSAxNDIgNDc1LjcgMTM2IDUwNCAxMzZoMTZjMjguMyAwIDUzLjIgNS45IDczLjUgMTcuMSAxOS40IDEwLjYgMzQuOCAyNiA0NS40IDQ1LjRDNjUwIDIxOC45IDY1NiAyNDMuNyA2NTYgMjcyYzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTggMC00MC04LjgtNzYuNy0yNS45LTEwOC4xYTE4NC4zMSAxODQuMzEgMCAwMC03NC03NEM1OTYuNyA3Mi44IDU2MCA2NCA1MjAgNjRoLTE2Yy00MCAwLTc2LjcgOC44LTEwOC4xIDI1LjlhMTg0LjMxIDE4NC4zMSAwIDAwLTc0IDc0QzMwNC44IDE5NS4zIDI5NiAyMzIgMjk2IDI3MmMwIDQuNCAzLjYgOCA4IDh6In19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNOTQwIDUxMkg3OTJWNDEyYzc2LjggMCAxMzktNjIuMiAxMzktMTM5IDAtNC40LTMuNi04LTgtOGgtNjBjLTQuNCAwLTggMy42LTggOGE2MyA2MyAwIDAxLTYzIDYzSDIzMmE2MyA2MyAwIDAxLTYzLTYzYzAtNC40LTMuNi04LTgtOGgtNjBjLTQuNCAwLTggMy42LTggOCAwIDc2LjggNjIuMiAxMzkgMTM5IDEzOXYxMDBIODRjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoMTQ4djk2YzAgNi41LjIgMTMgLjcgMTkuM0MxNjQuMSA3MjguNiAxMTYgNzk2LjcgMTE2IDg3NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04IDAtNDQuMiAyMy45LTgyLjkgNTkuNi0xMDMuN2EyNzMgMjczIDAgMDAyMi43IDQ5YzI0LjMgNDEuNSA1OSA3Ni4yIDEwMC41IDEwMC41UzQ2MC41IDk2MCA1MTIgOTYwczk5LjgtMTMuOSAxNDEuMy0zOC4yYTI4MS4zOCAyODEuMzggMCAwMDEyMy4yLTE0OS41QTEyMCAxMjAgMCAwMTgzNiA4NzZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOCAwLTc5LjMtNDguMS0xNDcuNC0xMTYuNy0xNzYuNy40LTYuNC43LTEyLjguNy0xOS4zdi05NmgxNDhjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6TTcxNiA2ODBjMCAzNi44LTkuNyA3Mi0yNy44IDEwMi45LTE3LjcgMzAuMy00MyA1NS42LTczLjMgNzMuM0M1ODQgODc0LjMgNTQ4LjggODg0IDUxMiA4ODRzLTcyLTkuNy0xMDIuOS0yNy44Yy0zMC4zLTE3LjctNTUuNi00My03My4zLTczLjNBMjAyLjc1IDIwMi43NSAwIDAxMzA4IDY4MFY0MTJoNDA4djI2OHoifX1dfSxuYW1lOiJidWciLHRoZW1lOiJvdXRsaW5lZCJ9LE1jPVRjLFJjPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOk1jfSkpfSxJYz10LmZvcndhcmRSZWYoUmMpLFBjPUljLHpjPXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTMwOCA0MTJ2MjY4YzAgMzYuNzggOS42OCA3MS45NiAyNy44IDEwMi45YTIwNS4zOSAyMDUuMzkgMCAwMDczLjMgNzMuM0EyMDIuNjggMjAyLjY4IDAgMDA1MTIgODg0YzM2Ljc4IDAgNzEuOTYtOS42OCAxMDIuOS0yNy44YTIwNS4zOSAyMDUuMzkgMCAwMDczLjMtNzMuM0EyMDIuNjggMjAyLjY4IDAgMDA3MTYgNjgwVjQxMkgzMDh6bTQ4NCAxNzJ2OTZjMCA2LjUtLjIyIDEyLjk1LS42NiAxOS4zNUM4NTkuOTQgNzI4LjY0IDkwOCA3OTYuNyA5MDggODc2YTggOCAwIDAxLTggOGgtNTZhOCA4IDAgMDEtOC04YzAtNDQuMjQtMjMuOTQtODIuODktNTkuNTctMTAzLjdhMjc4LjYzIDI3OC42MyAwIDAxLTIyLjY2IDQ5LjAyIDI4MS4zOSAyODEuMzkgMCAwMS0xMDAuNDUgMTAwLjQ1QzYxMS44NCA5NDYuMDcgNTYzLjU1IDk2MCA1MTIgOTYwcy05OS44NC0xMy45My0xNDEuMzItMzguMjNhMjgxLjM5IDI4MS4zOSAwIDAxLTEwMC40NS0xMDAuNDUgMjc4LjYzIDI3OC42MyAwIDAxLTIyLjY2LTQ5LjAyQTExOS45NSAxMTkuOTUgMCAwMDE4OCA4NzZhOCA4IDAgMDEtOCA4aC01NmE4IDggMCAwMS04LThjMC03OS4zIDQ4LjA3LTE0Ny4zNiAxMTYuNjYtMTc2LjY1QTI4NC4xMiAyODQuMTIgMCAwMTIzMiA2ODB2LTk2SDg0YTggOCAwIDAxLTgtOHYtNTZhOCA4IDAgMDE4LThoMTQ4VjQxMmMtNzYuNzcgMC0xMzktNjIuMjMtMTM5LTEzOWE4IDggMCAwMTgtOGg2MGE4IDggMCAwMTggOCA2MyA2MyAwIDAwNjMgNjNoNTYwYTYzIDYzIDAgMDA2My02MyA4IDggMCAwMTgtOGg2MGE4IDggMCAwMTggOGMwIDc2Ljc3LTYyLjIzIDEzOS0xMzkgMTM5djEwMGgxNDhhOCA4IDAgMDE4IDh2NTZhOCA4IDAgMDEtOCA4SDc5MnpNMzY4IDI3MmE4IDggMCAwMS04IDhoLTU2YTggOCAwIDAxLTgtOGMwLTQwLjA0IDguNzgtNzYuNzUgMjUuOS0xMDguMDdhMTg0LjU3IDE4NC41NyAwIDAxNzQuMDMtNzQuMDNDNDI3LjI1IDcyLjc4IDQ2My45NiA2NCA1MDQgNjRoMTZjNDAuMDQgMCA3Ni43NSA4Ljc4IDEwOC4wNyAyNS45YTE4NC41NyAxODQuNTcgMCAwMTc0LjAzIDc0LjAzQzcxOS4yMiAxOTUuMjUgNzI4IDIzMS45NiA3MjggMjcyYTggOCAwIDAxLTggOGgtNTZhOCA4IDAgMDEtOC04YzAtMjguMzMtNS45NC01My4xNS0xNy4wOC03My41M2ExMTIuNTYgMTEyLjU2IDAgMDAtNDUuMzktNDUuNEM1NzMuMTUgMTQxLjk1IDU0OC4zMyAxMzYgNTIwIDEzNmgtMTZjLTI4LjMzIDAtNTMuMTUgNS45NC03My41MyAxNy4wOGExMTIuNTYgMTEyLjU2IDAgMDAtNDUuNCA0NS4zOUMzNzMuOTUgMjE4Ljg1IDM2OCAyNDMuNjcgMzY4IDI3MnoiLGZpbGw6Zn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMzA4IDQxMnYyNjhjMCAzNi43OCA5LjY4IDcxLjk2IDI3LjggMTAyLjlhMjA1LjM5IDIwNS4zOSAwIDAwNzMuMyA3My4zQTIwMi42OCAyMDIuNjggMCAwMDUxMiA4ODRjMzYuNzggMCA3MS45Ni05LjY4IDEwMi45LTI3LjhhMjA1LjM5IDIwNS4zOSAwIDAwNzMuMy03My4zQTIwMi42OCAyMDIuNjggMCAwMDcxNiA2ODBWNDEySDMwOHoiLGZpbGw6dn19XX19LG5hbWU6ImJ1ZyIsdGhlbWU6InR3b3RvbmUifSxYbD16YyxGYz1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpYbH0pKX0sdXM9dC5mb3J3YXJkUmVmKEZjKSxkcz11cyxBYz17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTE2IDIxMEgzNzZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjIzNkgxMDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjI3MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg1NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWNTQ2aDIzNmMxNy43IDAgMzItMTQuMyAzMi0zMlYyNDJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTYxMiA3NDZINDEyVjU0NmgyMDB2MjAwem0yNjgtMjY4SDY4MFYyNzhoMjAwdjIwMHoifX1dfSxuYW1lOiJidWlsZCIsdGhlbWU6ImZpbGxlZCJ9LFVzPUFjLExjPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOlVzfSkpfSxaYz10LmZvcndhcmRSZWYoTGMpLCRjPVpjLEhjPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MTYgMjEwSDM3NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MjM2SDEwOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MjcyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDU0MGMxNy43IDAgMzItMTQuMyAzMi0zMlY1NDZoMjM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjI0MmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTUwNCA2OGgyMDB2MjAwSDQxMlYyNzh6bS02OCA0NjhIMTQ0VjU0NmgyMDB2MjAwem0yNjggMEg0MTJWNTQ2aDIwMHYyMDB6bTI2OC0yNjhINjgwVjI3OGgyMDB2MjAweiJ9fV19LG5hbWU6ImJ1aWxkIix0aGVtZToib3V0bGluZWQifSxXcz1IYyxEYz1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpXc30pKX0sQmM9dC5mb3J3YXJkUmVmKERjKSxWYz1CYyxOMT17aWNvbjpmdW5jdGlvbihmLHYpe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0xNDQgNTQ2aDIwMHYyMDBIMTQ0em0yNjgtMjY4aDIwMHYyMDBINDEyeiIsZmlsbDp2fX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MTYgMjEwSDM3NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MjM2SDEwOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MjcyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDU0MGMxNy43IDAgMzItMTQuMyAzMi0zMlY1NDZoMjM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjI0MmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMzQ0IDc0NkgxNDRWNTQ2aDIwMHYyMDB6bTI2OCAwSDQxMlY1NDZoMjAwdjIwMHptMC0yNjhINDEyVjI3OGgyMDB2MjAwem0yNjggMEg2ODBWMjc4aDIwMHYyMDB6IixmaWxsOmZ9fV19fSxuYW1lOiJidWlsZCIsdGhlbWU6InR3b3RvbmUifSxOYz1OMSxqMT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpOY30pKX0sVTE9dC5mb3J3YXJkUmVmKGoxKSxqYz1VMSxVYz17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMzQ4IDY3Ni4xQzI1MCA2MTkuNCAxODQgNTEzLjQgMTg0IDM5MmMwLTE4MS4xIDE0Ni45LTMyOCAzMjgtMzI4czMyOCAxNDYuOSAzMjggMzI4YzAgMTIxLjQtNjYgMjI3LjQtMTY0IDI4NC4xVjc5MmMwIDE3LjctMTQuMyAzMi0zMiAzMkgzODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjY3Ni4xek0zOTIgODg4aDI0MGM0LjQgMCA4IDMuNiA4IDh2MzJjMCAxNy43LTE0LjMgMzItMzIgMzJINDE2Yy0xNy43IDAtMzItMTQuMy0zMi0zMnYtMzJjMC00LjQgMy42LTggOC04eiJ9fV19LG5hbWU6ImJ1bGIiLHRoZW1lOiJmaWxsZWQifSxXYz1VYyxmcz1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpXY30pKX0sVzE9dC5mb3J3YXJkUmVmKGZzKSxrMT1XMSxLMT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNjMyIDg4OEgzOTJjLTQuNCAwLTggMy42LTggOHYzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmgxOTJjMTcuNyAwIDMyLTE0LjMgMzItMzJ2LTMyYzAtNC40LTMuNi04LTgtOHpNNTEyIDY0Yy0xODEuMSAwLTMyOCAxNDYuOS0zMjggMzI4IDAgMTIxLjQgNjYgMjI3LjQgMTY0IDI4NC4xVjc5MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmgyNjRjMTcuNyAwIDMyLTE0LjMgMzItMzJWNjc2LjFjOTgtNTYuNyAxNjQtMTYyLjcgMTY0LTI4NC4xIDAtMTgxLjEtMTQ2LjktMzI4LTMyOC0zMjh6bTEyNy45IDU0OS44TDYwNCA2MzQuNlY3NTJINDIwVjYzNC42bC0zNS45LTIwLjhDMzA1LjQgNTY4LjMgMjU2IDQ4NC41IDI1NiAzOTJjMC0xNDEuNCAxMTQuNi0yNTYgMjU2LTI1NnMyNTYgMTE0LjYgMjU2IDI1NmMwIDkyLjUtNDkuNCAxNzYuMy0xMjguMSAyMjEuOHoifX1dfSxuYW1lOiJidWxiIix0aGVtZToib3V0bGluZWQifSxqaT1LMSxrcz1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpqaX0pKX0sdnM9dC5mb3J3YXJkUmVmKGtzKSxrYz12cyxLYz17aWNvbjpmdW5jdGlvbihmLHYpe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgMTM2Yy0xNDEuNCAwLTI1NiAxMTQuNi0yNTYgMjU2IDAgOTIuNSA0OS40IDE3Ni4zIDEyOC4xIDIyMS44bDM1LjkgMjAuOFY3NTJoMTg0VjYzNC42bDM1LjktMjAuOEM3MTguNiA1NjguMyA3NjggNDg0LjUgNzY4IDM5MmMwLTE0MS40LTExNC42LTI1Ni0yNTYtMjU2eiIsZmlsbDp2fX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02MzIgODg4SDM5MmMtNC40IDAtOCAzLjYtOCA4djMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDE5MmMxNy43IDAgMzItMTQuMyAzMi0zMnYtMzJjMC00LjQtMy42LTgtOC04ek01MTIgNjRjLTE4MS4xIDAtMzI4IDE0Ni45LTMyOCAzMjggMCAxMjEuNCA2NiAyMjcuNCAxNjQgMjg0LjFWNzkyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDI2NGMxNy43IDAgMzItMTQuMyAzMi0zMlY2NzYuMWM5OC01Ni43IDE2NC0xNjIuNyAxNjQtMjg0LjEgMC0xODEuMS0xNDYuOS0zMjgtMzI4LTMyOHptMTI3LjkgNTQ5LjhMNjA0IDYzNC42Vjc1Mkg0MjBWNjM0LjZsLTM1LjktMjAuOEMzMDUuNCA1NjguMyAyNTYgNDg0LjUgMjU2IDM5MmMwLTE0MS40IDExNC42LTI1NiAyNTYtMjU2czI1NiAxMTQuNiAyNTYgMjU2YzAgOTIuNS00OS40IDE3Ni4zLTEyOC4xIDIyMS44eiIsZmlsbDpmfX1dfX0sbmFtZToiYnVsYiIsdGhlbWU6InR3b3RvbmUifSxfYz1LYyxLcz1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpfY30pKX0sWmw9dC5mb3J3YXJkUmVmKEtzKSxfcz1abCxHcz17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek00NDAuMiA3NjVoLTUwLjhjLTIuMiAwLTQuNS0xLjEtNS45LTIuOUwzNDggNzE4LjZsLTM1LjUgNDMuNWE3LjM4IDcuMzggMCAwMS01LjkgMi45aC01MC44Yy02LjYgMC0xMC4yLTcuOS01LjgtMTMuMWw2Mi43LTc2LjgtNjEuMi03NC45Yy00LjMtNS4yLS43LTEzLjEgNS45LTEzLjFoNTAuOWMyLjIgMCA0LjUgMS4xIDUuOSAyLjlsMzQgNDEuNiAzNC00MS42YzEuNS0xLjkgMy42LTIuOSA1LjktMi45aDUwLjhjNi42IDAgMTAuMiA3LjkgNS45IDEzLjFMMzgzLjUgNjc1bDYyLjcgNzYuOGM0LjIgNS4zLjYgMTMuMi02IDEzLjJ6bTcuOC0zODJjMCAyLjItMS40IDQtMy4yIDRIMzc2djY4LjdjMCAxLjktMS44IDMuMy00IDMuM2gtNDhjLTIuMiAwLTQtMS40LTQtMy4yVjM4N2gtNjguOGMtMS44IDAtMy4yLTEuOC0zLjItNHYtNDhjMC0yLjIgMS40LTQgMy4yLTRIMzIwdi02OC44YzAtMS44IDEuOC0zLjIgNC0zLjJoNDhjMi4yIDAgNCAxLjQgNCAzLjJWMzMxaDY4LjdjMS45IDAgMy4zIDEuOCAzLjMgNHY0OHptMzI4IDM2OWMwIDIuMi0xLjQgNC0zLjIgNEg1NzkuMmMtMS44IDAtMy4yLTEuOC0zLjItNHYtNDhjMC0yLjIgMS40LTQgMy4yLTRoMTkzLjVjMS45IDAgMy4zIDEuOCAzLjMgNHY0OHptMC0xMDRjMCAyLjItMS40IDQtMy4yIDRINTc5LjJjLTEuOCAwLTMuMi0xLjgtMy4yLTR2LTQ4YzAtMi4yIDEuNC00IDMuMi00aDE5My41YzEuOSAwIDMuMyAxLjggMy4zIDR2NDh6bTAtMjY1YzAgMi4yLTEuNCA0LTMuMiA0SDU3OS4yYy0xLjggMC0zLjItMS44LTMuMi00di00OGMwLTIuMiAxLjQtNCAzLjItNGgxOTMuNWMxLjkgMCAzLjMgMS44IDMuMyA0djQ4eiJ9fV19LG5hbWU6ImNhbGN1bGF0b3IiLHRoZW1lOiJmaWxsZWQifSxfMT1HcyxHYz1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpfMX0pKX0sWWM9dC5mb3J3YXJkUmVmKEdjKSxYYz1ZYyxRYz17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMjUxLjIgMzg3SDMyMHY2OC44YzAgMS44IDEuOCAzLjIgNCAzLjJoNDhjMi4yIDAgNC0xLjQgNC0zLjNWMzg3aDY4LjhjMS44IDAgMy4yLTEuOCAzLjItNHYtNDhjMC0yLjItMS40LTQtMy4zLTRIMzc2di02OC44YzAtMS44LTEuOC0zLjItNC0zLjJoLTQ4Yy0yLjIgMC00IDEuNC00IDMuMlYzMzFoLTY4LjhjLTEuOCAwLTMuMiAxLjgtMy4yIDR2NDhjMCAyLjIgMS40IDQgMy4yIDR6bTMyOCAwaDE5My42YzEuOCAwIDMuMi0xLjggMy4yLTR2LTQ4YzAtMi4yLTEuNC00LTMuMy00SDU3OS4yYy0xLjggMC0zLjIgMS44LTMuMiA0djQ4YzAgMi4yIDEuNCA0IDMuMiA0em0wIDI2NWgxOTMuNmMxLjggMCAzLjItMS44IDMuMi00di00OGMwLTIuMi0xLjQtNC0zLjMtNEg1NzkuMmMtMS44IDAtMy4yIDEuOC0zLjIgNHY0OGMwIDIuMiAxLjQgNCAzLjIgNHptMCAxMDRoMTkzLjZjMS44IDAgMy4yLTEuOCAzLjItNHYtNDhjMC0yLjItMS40LTQtMy4zLTRINTc5LjJjLTEuOCAwLTMuMiAxLjgtMy4yIDR2NDhjMCAyLjIgMS40IDQgMy4yIDR6bS0xOTUuNy04MWw2MS4yLTc0LjljNC4zLTUuMi43LTEzLjEtNS45LTEzLjFIMzg4Yy0yLjMgMC00LjUgMS01LjkgMi45bC0zNCA0MS42LTM0LTQxLjZhNy44NSA3Ljg1IDAgMDAtNS45LTIuOWgtNTAuOWMtNi42IDAtMTAuMiA3LjktNS45IDEzLjFsNjEuMiA3NC45LTYyLjcgNzYuOGMtNC40IDUuMi0uOCAxMy4xIDUuOCAxMy4xaDUwLjhjMi4zIDAgNC41LTEgNS45LTIuOWwzNS41LTQzLjUgMzUuNSA0My41YzEuNSAxLjggMy43IDIuOSA1LjkgMi45aDUwLjhjNi42IDAgMTAuMi03LjkgNS45LTEzLjFMMzgzLjUgNjc1ek04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS0zNiA3MzJIMTgwVjE4MGg2NjR2NjY0eiJ9fV19LG5hbWU6ImNhbGN1bGF0b3IiLHRoZW1lOiJvdXRsaW5lZCJ9LEpjPVFjLEcxPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkpjfSkpfSx4aT10LmZvcndhcmRSZWYoRzEpLGhpPXhpLHFjPXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6IixmaWxsOmZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTE4NCA4NDBoNjU2VjE4NEgxODR2NjU2em0yNTYuMi03NWgtNTAuOGMtMi4yIDAtNC41LTEuMS01LjktMi45TDM0OCA3MTguNmwtMzUuNSA0My41YTcuMzggNy4zOCAwIDAxLTUuOSAyLjloLTUwLjhjLTYuNiAwLTEwLjItNy45LTUuOC0xMy4xbDYyLjctNzYuOC02MS4yLTc0LjljLTQuMy01LjItLjctMTMuMSA1LjktMTMuMWg1MC45YzIuMiAwIDQuNSAxLjEgNS45IDIuOWwzNCA0MS42IDM0LTQxLjZjMS41LTEuOSAzLjYtMi45IDUuOS0yLjloNTAuOGM2LjYgMCAxMC4yIDcuOSA1LjkgMTMuMUwzODMuNSA2NzVsNjIuNyA3Ni44YzQuMiA1LjMuNiAxMy4yLTYgMTMuMnpNNTc2IDMzNWMwLTIuMiAxLjQtNCAzLjItNGgxOTMuNWMxLjkgMCAzLjMgMS44IDMuMyA0djQ4YzAgMi4yLTEuNCA0LTMuMiA0SDU3OS4yYy0xLjggMC0zLjItMS44LTMuMi00di00OHptMCAyNjVjMC0yLjIgMS40LTQgMy4yLTRoMTkzLjVjMS45IDAgMy4zIDEuOCAzLjMgNHY0OGMwIDIuMi0xLjQgNC0zLjIgNEg1NzkuMmMtMS44IDAtMy4yLTEuOC0zLjItNHYtNDh6bTAgMTA0YzAtMi4yIDEuNC00IDMuMi00aDE5My41YzEuOSAwIDMuMyAxLjggMy4zIDR2NDhjMCAyLjItMS40IDQtMy4yIDRINTc5LjJjLTEuOCAwLTMuMi0xLjgtMy4yLTR2LTQ4ek0yNDggMzM1YzAtMi4yIDEuNC00IDMuMi00SDMyMHYtNjguOGMwLTEuOCAxLjgtMy4yIDQtMy4yaDQ4YzIuMiAwIDQgMS40IDQgMy4yVjMzMWg2OC43YzEuOSAwIDMuMyAxLjggMy4zIDR2NDhjMCAyLjItMS40IDQtMy4yIDRIMzc2djY4LjdjMCAxLjktMS44IDMuMy00IDMuM2gtNDhjLTIuMiAwLTQtMS40LTQtMy4yVjM4N2gtNjguOGMtMS44IDAtMy4yLTEuOC0zLjItNHYtNDh6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTM4My41IDY3NWw2MS4zLTc0LjhjNC4zLTUuMi43LTEzLjEtNS45LTEzLjFoLTUwLjhjLTIuMyAwLTQuNCAxLTUuOSAyLjlsLTM0IDQxLjYtMzQtNDEuNmE3LjY5IDcuNjkgMCAwMC01LjktMi45aC01MC45Yy02LjYgMC0xMC4yIDcuOS01LjkgMTMuMWw2MS4yIDc0LjktNjIuNyA3Ni44Yy00LjQgNS4yLS44IDEzLjEgNS44IDEzLjFoNTAuOGMyLjMgMCA0LjQtMSA1LjktMi45bDM1LjUtNDMuNSAzNS41IDQzLjVjMS40IDEuOCAzLjcgMi45IDUuOSAyLjloNTAuOGM2LjYgMCAxMC4yLTcuOSA2LTEzLjJMMzgzLjUgNjc1ek0yNTEuMiAzODdIMzIwdjY4LjhjMCAxLjggMS44IDMuMiA0IDMuMmg0OGMyLjIgMCA0LTEuNCA0LTMuM1YzODdoNjguOGMxLjggMCAzLjItMS44IDMuMi00di00OGMwLTIuMi0xLjQtNC0zLjMtNEgzNzZ2LTY4LjhjMC0xLjgtMS44LTMuMi00LTMuMmgtNDhjLTIuMiAwLTQgMS40LTQgMy4yVjMzMWgtNjguOGMtMS44IDAtMy4yIDEuOC0zLjIgNHY0OGMwIDIuMiAxLjQgNCAzLjIgNHptMzI4IDM2OWgxOTMuNmMxLjggMCAzLjItMS44IDMuMi00di00OGMwLTIuMi0xLjQtNC0zLjMtNEg1NzkuMmMtMS44IDAtMy4yIDEuOC0zLjIgNHY0OGMwIDIuMiAxLjQgNCAzLjIgNHptMC0xMDRoMTkzLjZjMS44IDAgMy4yLTEuOCAzLjItNHYtNDhjMC0yLjItMS40LTQtMy4zLTRINTc5LjJjLTEuOCAwLTMuMiAxLjgtMy4yIDR2NDhjMCAyLjIgMS40IDQgMy4yIDR6bTAtMjY1aDE5My42YzEuOCAwIDMuMi0xLjggMy4yLTR2LTQ4YzAtMi4yLTEuNC00LTMuMy00SDU3OS4yYy0xLjggMC0zLjIgMS44LTMuMiA0djQ4YzAgMi4yIDEuNCA0IDMuMiA0eiIsZmlsbDpmfX1dfX0sbmFtZToiY2FsY3VsYXRvciIsdGhlbWU6InR3b3RvbmUifSxlMT1xYyx0MT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjplMX0pKX0sbjE9dC5mb3J3YXJkUmVmKHQxKSxyMT1uMSxZcz17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMTEyIDg4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWNDYwSDExMnY0MjB6bTc2OC02OTZINzEydi02NGMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NjRIMzg0di02NGMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NjRIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYxNzZoODAwVjIxNmMwLTE3LjctMTQuMy0zMi0zMi0zMnoifX1dfSxuYW1lOiJjYWxlbmRhciIsdGhlbWU6ImZpbGxlZCJ9LGExPVlzLFhzPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOmExfSkpfSxvMT10LmZvcndhcmRSZWYoWHMpLGkxPW8xLFFzPWUoMjA4NDEpLEpzPXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTcxMiAzMDRjMCA0LjQtMy42IDgtOCA4aC01NmMtNC40IDAtOC0zLjYtOC04di00OEgzODR2NDhjMCA0LjQtMy42IDgtOCA4aC01NmMtNC40IDAtOC0zLjYtOC04di00OEgxODR2MTM2aDY1NlYyNTZINzEydjQ4eiIsZmlsbDp2fX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMTg0SDcxMnYtNjRjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djY0SDM4NHYtNjRjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djY0SDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYyMTZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA2NTZIMTg0VjQ2MGg2NTZ2Mzgwem0wLTQ0OEgxODRWMjU2aDEyOHY0OGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di00OGgyNTZ2NDhjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNDhoMTI4djEzNnoiLGZpbGw6Zn19XX19LG5hbWU6ImNhbGVuZGFyIix0aGVtZToidHdvdG9uZSJ9LGwxPUpzLHFzPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOmwxfSkpfSxocz10LmZvcndhcmRSZWYocXMpLFkxPWhzLHMxPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NjQgMjYwSDcyOGwtMzIuNC05MC44YTMyLjA3IDMyLjA3IDAgMDAtMzAuMi0yMS4ySDM1OC42Yy0xMy41IDAtMjUuNiA4LjUtMzAuMSAyMS4yTDI5NiAyNjBIMTYwYy00NC4yIDAtODAgMzUuOC04MCA4MHY0NTZjMCA0NC4yIDM1LjggODAgODAgODBoNzA0YzQ0LjIgMCA4MC0zNS44IDgwLTgwVjM0MGMwLTQ0LjItMzUuOC04MC04MC04MHpNNTEyIDcxNmMtODguNCAwLTE2MC03MS42LTE2MC0xNjBzNzEuNi0xNjAgMTYwLTE2MCAxNjAgNzEuNiAxNjAgMTYwLTcxLjYgMTYwLTE2MCAxNjB6bS05Ni0xNjBhOTYgOTYgMCAxMDE5MiAwIDk2IDk2IDAgMTAtMTkyIDB6In19XX0sbmFtZToiY2FtZXJhIix0aGVtZToiZmlsbGVkIn0sZWM9czEsYzE9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246ZWN9KSl9LG1zPXQuZm9yd2FyZFJlZihjMSksaWw9bXMsWDE9ZSg4ODkxNiksdTE9e2ljb246ZnVuY3Rpb24oZix2KXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODY0IDMyMEg2NzcuMmwtMTcuMS00Ny44LTIyLjktNjQuMkgzODYuN2wtMjIuOSA2NC4yLTE3LjEgNDcuOEgxNjBjLTQuNCAwLTggMy42LTggOHY0NTZjMCA0LjQgMy42IDggOCA4aDcwNGM0LjQgMCA4LTMuNiA4LThWMzI4YzAtNC40LTMuNi04LTgtOHpNNTEyIDcwNGMtODguNCAwLTE2MC03MS42LTE2MC0xNjBzNzEuNi0xNjAgMTYwLTE2MCAxNjAgNzEuNiAxNjAgMTYwLTcxLjYgMTYwLTE2MCAxNjB6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiAzODRjLTg4LjQgMC0xNjAgNzEuNi0xNjAgMTYwczcxLjYgMTYwIDE2MCAxNjAgMTYwLTcxLjYgMTYwLTE2MC03MS42LTE2MC0xNjAtMTYwem0wIDI1NmMtNTMgMC05Ni00My05Ni05NnM0My05NiA5Ni05NiA5NiA0MyA5NiA5Ni00MyA5Ni05NiA5NnoiLGZpbGw6Zn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODY0IDI0OEg3MjhsLTMyLjQtOTAuOGEzMi4wNyAzMi4wNyAwIDAwLTMwLjItMjEuMkgzNTguNmMtMTMuNSAwLTI1LjYgOC41LTMwLjEgMjEuMkwyOTYgMjQ4SDE2MGMtNDQuMiAwLTgwIDM1LjgtODAgODB2NDU2YzAgNDQuMiAzNS44IDgwIDgwIDgwaDcwNGM0NC4yIDAgODAtMzUuOCA4MC04MFYzMjhjMC00NC4yLTM1LjgtODAtODAtODB6bTggNTM2YzAgNC40LTMuNiA4LTggOEgxNjBjLTQuNCAwLTgtMy42LTgtOFYzMjhjMC00LjQgMy42LTggOC04aDE4Ni43bDE3LjEtNDcuOCAyMi45LTY0LjJoMjUwLjVsMjIuOSA2NC4yIDE3LjEgNDcuOEg4NjRjNC40IDAgOCAzLjYgOCA4djQ1NnoiLGZpbGw6Zn19XX19LG5hbWU6ImNhbWVyYSIsdGhlbWU6InR3b3RvbmUifSx0Yz11MSxkMT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjp0Y30pKX0sZjE9dC5mb3J3YXJkUmVmKGQxKSxRbD1mMSxpaT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTU5IDQxMy40TDkzNS4zIDM3MmE4IDggMCAwMC0xMC45LTIuOWwtNTAuNyAyOS42LTc4LjMtMjE2LjJhNjMuOSA2My45IDAgMDAtNjAuOS00NC40SDMwMS4yYy0zNC43IDAtNjUuNSAyMi40LTc2LjIgNTUuNWwtNzQuNiAyMDUuMi01MC44LTI5LjZhOCA4IDAgMDAtMTAuOSAyLjlMNjUgNDEzLjRjLTIuMiAzLjgtLjkgOC42IDIuOSAxMC44bDYwLjQgMzUuMi0xNC41IDQwYy0xLjIgMy4yLTEuOCA2LjYtMS44IDEwdjM0OC4yYzAgMTUuNyAxMS44IDI4LjQgMjYuMyAyOC40aDY3LjZjMTIuMyAwIDIzLTkuMyAyNS42LTIyLjNsNy43LTM3LjdoNTQ1LjZsNy43IDM3LjdjMi43IDEzIDEzLjMgMjIuMyAyNS42IDIyLjNoNjcuNmMxNC41IDAgMjYuMy0xMi43IDI2LjMtMjguNFY1MDkuNGMwLTMuNC0uNi02LjgtMS44LTEwbC0xNC41LTQwIDYwLjMtMzUuMmE4IDggMCAwMDMtMTAuOHpNMjY0IDYyMWMtMjIuMSAwLTQwLTE3LjktNDAtNDBzMTcuOS00MCA0MC00MCA0MCAxNy45IDQwIDQwLTE3LjkgNDAtNDAgNDB6bTM4OCA3NWMwIDQuNC0zLjYgOC04IDhIMzgwYy00LjQgMC04LTMuNi04LTh2LTg0YzAtNC40IDMuNi04IDgtOGg0MGM0LjQgMCA4IDMuNiA4IDh2MzZoMTY4di0zNmMwLTQuNCAzLjYtOCA4LThoNDBjNC40IDAgOCAzLjYgOCA4djg0em0xMDgtNzVjLTIyLjEgMC00MC0xNy45LTQwLTQwczE3LjktNDAgNDAtNDAgNDAgMTcuOSA0MCA0MC0xNy45IDQwLTQwIDQwek0yMjAgNDE4bDcyLjctMTk5LjkuNS0xLjMuNC0xLjNjMS4xLTMuMyA0LjEtNS41IDcuNi01LjVoNDI3LjZsNzUuNCAyMDhIMjIweiJ9fV19LG5hbWU6ImNhciIsdGhlbWU6ImZpbGxlZCJ9LFExPWlpLEoxPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOlExfSkpfSxncz10LmZvcndhcmRSZWYoSjEpLGxpPWdzLHExPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0zODAgNzA0aDI2NGM0LjQgMCA4LTMuNiA4LTh2LTg0YzAtNC40LTMuNi04LTgtOGgtNDBjLTQuNCAwLTggMy42LTggOHYzNkg0Mjh2LTM2YzAtNC40LTMuNi04LTgtOGgtNDBjLTQuNCAwLTggMy42LTggOHY4NGMwIDQuNCAzLjYgOCA4IDh6bTM0MC0xMjNhNDAgNDAgMCAxMDgwIDAgNDAgNDAgMCAxMC04MCAwem0yMzktMTY3LjZMOTM1LjMgMzcyYTggOCAwIDAwLTEwLjktMi45bC01MC43IDI5LjYtNzguMy0yMTYuMmE2My45IDYzLjkgMCAwMC02MC45LTQ0LjRIMzAxLjJjLTM0LjcgMC02NS41IDIyLjQtNzYuMiA1NS41bC03NC42IDIwNS4yLTUwLjgtMjkuNmE4IDggMCAwMC0xMC45IDIuOUw2NSA0MTMuNGMtMi4yIDMuOC0uOSA4LjYgMi45IDEwLjhsNjAuNCAzNS4yLTE0LjUgNDBjLTEuMiAzLjItMS44IDYuNi0xLjggMTB2MzQ4LjJjMCAxNS43IDExLjggMjguNCAyNi4zIDI4LjRoNjcuNmMxMi4zIDAgMjMtOS4zIDI1LjYtMjIuM2w3LjctMzcuN2g1NDUuNmw3LjcgMzcuN2MyLjcgMTMgMTMuMyAyMi4zIDI1LjYgMjIuM2g2Ny42YzE0LjUgMCAyNi4zLTEyLjcgMjYuMy0yOC40VjUwOS40YzAtMy40LS42LTYuOC0xLjgtMTBsLTE0LjUtNDAgNjAuMy0zNS4yYTggOCAwIDAwMy0xMC44ek04NDAgNTE3djIzN0gxODRWNTE3bDE1LjYtNDNoNjI0LjhsMTUuNiA0M3pNMjkyLjcgMjE4LjFsLjUtMS4zLjQtMS4zYzEuMS0zLjMgNC4xLTUuNSA3LjYtNS41aDQyNy42bDc1LjQgMjA4SDIyMGw3Mi43LTE5OS45ek0yMjQgNTgxYTQwIDQwIDAgMTA4MCAwIDQwIDQwIDAgMTAtODAgMHoifX1dfSxuYW1lOiJjYXIiLHRoZW1lOiJvdXRsaW5lZCJ9LF9yPXExLCRsPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOl9yfSkpfSxuYz10LmZvcndhcmRSZWYoJGwpLHYxPW5jLGV1PXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTE5OS42IDQ3NEwxODQgNTE3djIzN2g2NTZWNTE3bC0xNS42LTQzSDE5OS42ek0yNjQgNjIxYy0yMi4xIDAtNDAtMTcuOS00MC00MHMxNy45LTQwIDQwLTQwIDQwIDE3LjkgNDAgNDAtMTcuOSA0MC00MCA0MHptMzg4IDc1YzAgNC40LTMuNiA4LTggOEgzODBjLTQuNCAwLTgtMy42LTgtOHYtODRjMC00LjQgMy42LTggOC04aDQwYzQuNCAwIDggMy42IDggOHYzNmgxNjh2LTM2YzAtNC40IDMuNi04IDgtOGg0MGM0LjQgMCA4IDMuNiA4IDh2ODR6bTEwOC03NWMtMjIuMSAwLTQwLTE3LjktNDAtNDBzMTcuOS00MCA0MC00MCA0MCAxNy45IDQwIDQwLTE3LjkgNDAtNDAgNDB6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTcyMCA1ODFhNDAgNDAgMCAxMDgwIDAgNDAgNDAgMCAxMC04MCAweiIsZmlsbDpmfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05NTkgNDEzLjRMOTM1LjMgMzcyYTggOCAwIDAwLTEwLjktMi45bC01MC43IDI5LjYtNzguMy0yMTYuMmE2My45IDYzLjkgMCAwMC02MC45LTQ0LjRIMzAxLjJjLTM0LjcgMC02NS41IDIyLjQtNzYuMiA1NS41bC03NC42IDIwNS4yLTUwLjgtMjkuNmE4IDggMCAwMC0xMC45IDIuOUw2NSA0MTMuNGMtMi4yIDMuOC0uOSA4LjYgMi45IDEwLjhsNjAuNCAzNS4yLTE0LjUgNDBjLTEuMiAzLjItMS44IDYuNi0xLjggMTB2MzQ4LjJjMCAxNS43IDExLjggMjguNCAyNi4zIDI4LjRoNjcuNmMxMi4zIDAgMjMtOS4zIDI1LjYtMjIuM2w3LjctMzcuN2g1NDUuNmw3LjcgMzcuN2MyLjcgMTMgMTMuMyAyMi4zIDI1LjYgMjIuM2g2Ny42YzE0LjUgMCAyNi4zLTEyLjcgMjYuMy0yOC40VjUwOS40YzAtMy40LS42LTYuOC0xLjgtMTBsLTE0LjUtNDAgNjAuMy0zNS4yYTggOCAwIDAwMy0xMC44ek0yOTIuNyAyMTguMWwuNS0xLjMuNC0xLjNjMS4xLTMuMyA0LjEtNS41IDcuNi01LjVoNDI3LjZsNzUuNCAyMDhIMjIwbDcyLjctMTk5Ljl6TTg0MCA3NTRIMTg0VjUxN2wxNS42LTQzaDYyNC44bDE1LjYgNDN2MjM3eiIsZmlsbDpmfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0yMjQgNTgxYTQwIDQwIDAgMTA4MCAwIDQwIDQwIDAgMTAtODAgMHptNDIwIDIzaC00MGMtNC40IDAtOCAzLjYtOCA4djM2SDQyOHYtMzZjMC00LjQtMy42LTgtOC04aC00MGMtNC40IDAtOCAzLjYtOCA4djg0YzAgNC40IDMuNiA4IDggOGgyNjRjNC40IDAgOC0zLjYgOC04di04NGMwLTQuNC0zLjYtOC04LTh6IixmaWxsOmZ9fV19fSxuYW1lOiJjYXIiLHRoZW1lOiJ0d290b25lIn0sSmw9ZXUscHM9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246Smx9KSl9LHJjPXQuZm9yd2FyZFJlZihwcyksaDE9cmMsbTE9ZSg2ODI2NSksZzE9ZSgzOTM5OCksYWM9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiMCAwIDEwMjQgMTAyNCIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTY4OSAxNjUuMUwzMDguMiA0OTMuNWMtMTAuOSA5LjQtMTAuOSAyNy41IDAgMzdMNjg5IDg1OC45YzE0LjIgMTIuMiAzNSAxLjIgMzUtMTguNVYxODMuNmMwLTE5LjctMjAuOC0zMC43LTM1LTE4LjV6In19XX0sbmFtZToiY2FyZXQtbGVmdCIsdGhlbWU6ImZpbGxlZCJ9LG9jPWFjLHRpPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOm9jfSkpfSxVaT10LmZvcndhcmRSZWYodGkpLGRsPVVpLHAxPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjAgMCAxMDI0IDEwMjQiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02ODkgMTY1LjFMMzA4LjIgNDkzLjVjLTEwLjkgOS40LTEwLjkgMjcuNSAwIDM3TDY4OSA4NTguOWMxNC4yIDEyLjIgMzUgMS4yIDM1LTE4LjVWMTgzLjZjMC0xOS43LTIwLjgtMzAuNy0zNS0xOC41eiJ9fV19LG5hbWU6ImNhcmV0LWxlZnQiLHRoZW1lOiJvdXRsaW5lZCJ9LHkxPXAxLFdpPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOnkxfSkpfSxDMT10LmZvcndhcmRSZWYoV2kpLHFpPUMxLHR1PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjAgMCAxMDI0IDEwMjQiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik03MTUuOCA0OTMuNUwzMzUgMTY1LjFjLTE0LjItMTIuMi0zNS0xLjItMzUgMTguNXY2NTYuOGMwIDE5LjcgMjAuOCAzMC43IDM1IDE4LjVsMzgwLjgtMzI4LjRjMTAuOS05LjQgMTAuOS0yNy42IDAtMzd6In19XX0sbmFtZToiY2FyZXQtcmlnaHQiLHRoZW1lOiJmaWxsZWQifSxiMT10dSxTMT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpiMX0pKX0sTzE9dC5mb3J3YXJkUmVmKFMxKSx4MT1PMSxudT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiIwIDAgMTAyNCAxMDI0Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNzE1LjggNDkzLjVMMzM1IDE2NS4xYy0xNC4yLTEyLjItMzUtMS4yLTM1IDE4LjV2NjU2LjhjMCAxOS43IDIwLjggMzAuNyAzNSAxOC41bDM4MC44LTMyOC40YzEwLjktOS40IDEwLjktMjcuNiAwLTM3eiJ9fV19LG5hbWU6ImNhcmV0LXJpZ2h0Iix0aGVtZToib3V0bGluZWQifSx5cz1udSxpYz1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjp5c30pKX0sWmk9dC5mb3J3YXJkUmVmKGljKSxrYT1aaSxHbz17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiIwIDAgMTAyNCAxMDI0Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODU4LjkgNjg5TDUzMC41IDMwOC4yYy05LjQtMTAuOS0yNy41LTEwLjktMzcgMEwxNjUuMSA2ODljLTEyLjIgMTQuMi0xLjIgMzUgMTguNSAzNWg2NTYuOGMxOS43IDAgMzAuNy0yMC44IDE4LjUtMzV6In19XX0sbmFtZToiY2FyZXQtdXAiLHRoZW1lOiJmaWxsZWQifSwkbz1HbyxuaT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjokb30pKX0sRmk9dC5mb3J3YXJkUmVmKG5pKSxIbD1GaSxqbz1lKDEwMDEwKSxxbD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDE4NEg3MTJ2LTY0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2NEgzODR2LTY0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2NEgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjE2YzAtMTcuNy0xNC4zLTMyLTMyLTMyek02OTQuNSA0MzIuN0w0ODEuOSA3MjUuNGExNi4xIDE2LjEgMCAwMS0yNiAwbC0xMjYuNC0xNzRjLTMuOC01LjMgMC0xMi43IDYuNS0xMi43aDU1LjJjNS4xIDAgMTAgMi41IDEzIDYuNmw2NC43IDg5IDE1MC45LTIwNy44YzMtNC4xIDcuOC02LjYgMTMtNi42SDY4OGM2LjUuMSAxMC4zIDcuNSA2LjUgMTIuOHoifX1dfSxuYW1lOiJjYXJyeS1vdXQiLHRoZW1lOiJmaWxsZWQifSx3bD1xbCxDcz1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjp3bH0pKX0sbGM9dC5mb3J3YXJkUmVmKENzKSxlcz1sYyx3aT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDE4NEg3MTJ2LTY0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2NEgzODR2LTY0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2NEgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjE2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNjU2SDE4NFYyNTZoMTI4djQ4YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTQ4aDI1NnY0OGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di00OGgxMjh2NTg0ek02ODggNDIwaC01NS4yYy01LjEgMC0xMCAyLjUtMTMgNi42TDQ2OC45IDYzNC40bC02NC43LTg5Yy0zLTQuMS03LjgtNi42LTEzLTYuNkgzMzZjLTYuNSAwLTEwLjMgNy40LTYuNSAxMi43bDEyNi40IDE3NGExNi4xIDE2LjEgMCAwMDI2IDBsMjEyLjYtMjkyLjdjMy44LTUuNCAwLTEyLjgtNi41LTEyLjh6In19XX0sbmFtZToiY2Fycnktb3V0Iix0aGVtZToib3V0bGluZWQifSxzYz13aSxEbD1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpzY30pKX0sbGw9dC5mb3J3YXJkUmVmKERsKSxicz1sbCxjYz17aWNvbjpmdW5jdGlvbihmLHYpe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMTg0SDcxMnYtNjRjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djY0SDM4NHYtNjRjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djY0SDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYyMTZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA2NTZIMTg0VjI1NmgxMjh2NDhjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNDhoMjU2djQ4YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTQ4aDEyOHY1ODR6IixmaWxsOmZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTcxMiAzMDRjMCA0LjQtMy42IDgtOCA4aC01NmMtNC40IDAtOC0zLjYtOC04di00OEgzODR2NDhjMCA0LjQtMy42IDgtOCA4aC01NmMtNC40IDAtOC0zLjYtOC04di00OEgxODR2NTg0aDY1NlYyNTZINzEydjQ4em0tMTcuNSAxMjguOEw0ODEuOSA3MjUuNWExNi4xIDE2LjEgMCAwMS0yNiAwbC0xMjYuNC0xNzRjLTMuOC01LjMgMC0xMi43IDYuNS0xMi43aDU1LjJjNS4yIDAgMTAgMi41IDEzIDYuNmw2NC43IDg5IDE1MC45LTIwNy44YzMtNC4xIDcuOS02LjYgMTMtNi42SDY4OGM2LjUgMCAxMC4zIDcuNCA2LjUgMTIuOHoiLGZpbGw6dn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNjg4IDQyMGgtNTUuMmMtNS4xIDAtMTAgMi41LTEzIDYuNkw0NjguOSA2MzQuNGwtNjQuNy04OWMtMy00LjEtNy44LTYuNi0xMy02LjZIMzM2Yy02LjUgMC0xMC4zIDcuNC02LjUgMTIuN2wxMjYuNCAxNzRhMTYuMSAxNi4xIDAgMDAyNiAwbDIxMi42LTI5Mi43YzMuOC01LjQgMC0xMi44LTYuNS0xMi44eiIsZmlsbDpmfX1dfX0sbmFtZToiY2Fycnktb3V0Iix0aGVtZToidHdvdG9uZSJ9LGZsPWNjLFNzPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOmZsfSkpfSx2bD10LmZvcndhcmRSZWYoU3MpLE9zPXZsLHRzPWUoODk3MzkpLHVjPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02OTkgMzUzaC00Ni45Yy0xMC4yIDAtMTkuOSA0LjktMjUuOSAxMy4zTDQ2OSA1ODQuM2wtNzEuMi05OC44Yy02LTguMy0xNS42LTEzLjMtMjUuOS0xMy4zSDMyNWMtNi41IDAtMTAuMyA3LjQtNi41IDEyLjdsMTI0LjYgMTcyLjhhMzEuOCAzMS44IDAgMDA1MS43IDBsMjEwLjYtMjkyYzMuOS01LjMuMS0xMi43LTYuNC0xMi43eiJ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnoifX1dfSxuYW1lOiJjaGVjay1jaXJjbGUiLHRoZW1lOiJvdXRsaW5lZCJ9LHhzPXVjLHdzPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOnhzfSkpfSxtaT10LmZvcndhcmRSZWYod3MpLGhsPW1pLGtpPXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnoiLGZpbGw6Zn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDE0MGMtMjA1LjQgMC0zNzIgMTY2LjYtMzcyIDM3MnMxNjYuNiAzNzIgMzcyIDM3MiAzNzItMTY2LjYgMzcyLTM3Mi0xNjYuNi0zNzItMzcyLTM3MnptMTkzLjQgMjI1LjdsLTIxMC42IDI5MmEzMS44IDMxLjggMCAwMS01MS43IDBMMzE4LjUgNDg0LjljLTMuOC01LjMgMC0xMi43IDYuNS0xMi43aDQ2LjljMTAuMyAwIDE5LjkgNSAyNS45IDEzLjNsNzEuMiA5OC44IDE1Ny4yLTIxOGM2LTguNCAxNS43LTEzLjMgMjUuOS0xMy4zSDY5OWM2LjUgMCAxMC4zIDcuNCA2LjQgMTIuN3oiLGZpbGw6dn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNjk5IDM1M2gtNDYuOWMtMTAuMiAwLTE5LjkgNC45LTI1LjkgMTMuM0w0NjkgNTg0LjNsLTcxLjItOTguOGMtNi04LjMtMTUuNi0xMy4zLTI1LjktMTMuM0gzMjVjLTYuNSAwLTEwLjMgNy40LTYuNSAxMi43bDEyNC42IDE3Mi44YTMxLjggMzEuOCAwIDAwNTEuNyAwbDIxMC42LTI5MmMzLjktNS4zLjEtMTIuNy02LjQtMTIuN3oiLGZpbGw6Zn19XX19LG5hbWU6ImNoZWNrLWNpcmNsZSIsdGhlbWU6InR3b3RvbmUifSxFaT1raSx3MT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpFaX0pKX0sZGM9dC5mb3J3YXJkUmVmKHcxKSxmYz1kYyxydT1lKDYzNjA2KSxtbD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek02OTUuNSAzNjUuN2wtMjEwLjYgMjkyYTMxLjggMzEuOCAwIDAxLTUxLjcgMEwzMDguNSA0ODQuOWMtMy44LTUuMyAwLTEyLjcgNi41LTEyLjdoNDYuOWMxMC4yIDAgMTkuOSA0LjkgMjUuOSAxMy4zbDcxLjIgOTguOCAxNTcuMi0yMThjNi04LjMgMTUuNi0xMy4zIDI1LjktMTMuM0g2ODljNi41IDAgMTAuMyA3LjQgNi41IDEyLjd6In19XX0sbmFtZToiY2hlY2stc3F1YXJlIix0aGVtZToiZmlsbGVkIn0sRTE9bWwsdmM9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246RTF9KSl9LEVsPXQuZm9yd2FyZFJlZih2YyksaGM9RWwsVGw9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQzMy4xIDY1Ny43YTMxLjggMzEuOCAwIDAwNTEuNyAwbDIxMC42LTI5MmMzLjgtNS4zIDAtMTIuNy02LjUtMTIuN0g2NDJjLTEwLjIgMC0xOS45IDQuOS0yNS45IDEzLjNMNDU5IDU4NC4zbC03MS4yLTk4LjhjLTYtOC4zLTE1LjYtMTMuMy0yNS45LTEzLjNIMzE1Yy02LjUgMC0xMC4zIDcuNC02LjUgMTIuN2wxMjQuNiAxNzIuOHoifX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2eiJ9fV19LG5hbWU6ImNoZWNrLXNxdWFyZSIsdGhlbWU6Im91dGxpbmVkIn0sVDE9VGwsTTE9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246VDF9KSl9LG1jPXQuZm9yd2FyZFJlZihNMSksRXM9bWMsYXU9e2ljb246ZnVuY3Rpb24oZix2KXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNzI4SDE4NFYxODRoNjU2djY1NnoiLGZpbGw6Zn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMTg0IDg0MGg2NTZWMTg0SDE4NHY2NTZ6bTEzMC0zNjcuOGg0Ni45YzEwLjIgMCAxOS45IDQuOSAyNS45IDEzLjNsNzEuMiA5OC44IDE1Ny4yLTIxOGM2LTguMyAxNS42LTEzLjMgMjUuOS0xMy4zSDY4OGM2LjUgMCAxMC4zIDcuNCA2LjUgMTIuN2wtMjEwLjYgMjkyYTMxLjggMzEuOCAwIDAxLTUxLjcgMEwzMDcuNSA0ODQuOWMtMy44LTUuMyAwLTEyLjcgNi41LTEyLjd6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQzMi4yIDY1Ny43YTMxLjggMzEuOCAwIDAwNTEuNyAwbDIxMC42LTI5MmMzLjgtNS4zIDAtMTIuNy02LjUtMTIuN2gtNDYuOWMtMTAuMyAwLTE5LjkgNS0yNS45IDEzLjNMNDU4IDU4NC4zbC03MS4yLTk4LjhjLTYtOC40LTE1LjctMTMuMy0yNS45LTEzLjNIMzE0Yy02LjUgMC0xMC4zIDcuNC02LjUgMTIuN2wxMjQuNyAxNzIuOHoiLGZpbGw6Zn19XX19LG5hbWU6ImNoZWNrLXNxdWFyZSIsdGhlbWU6InR3b3RvbmUifSxvdT1hdSxSMT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpvdX0pKX0sSTE9dC5mb3J3YXJkUmVmKFIxKSxNbD1JMSxpdT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMzcxLjggNTEyYzAgNzcuNSA2Mi43IDE0MC4yIDE0MC4yIDE0MC4yUzY1Mi4yIDU4OS41IDY1Mi4yIDUxMiA1ODkuNSAzNzEuOCA1MTIgMzcxLjggMzcxLjggNDM0LjQgMzcxLjggNTEyek05MDAgMzYyLjRsLTIzNC4zIDEyLjFjNjMuNiA3NC4zIDY0LjYgMTgxLjUgMTEuMSAyNjMuN2wtMTg4IDI4OS4yYzc4IDQuMiAxNTguNC0xMi45IDIzMS4yLTU1LjIgMTgwLTEwNCAyNTMtMzIyLjEgMTgwLTUwOS44ek0zMjAuMyA1OTEuOUwxNjMuOCAyODQuMUE0MTUuMzUgNDE1LjM1IDAgMDA5NiA1MTJjMCAyMDggMTUyLjMgMzgwLjMgMzUxLjQgNDEwLjhsMTA2LjktMjA5LjRjLTk2LjYgMTguMi0xODkuOS0zNC44LTIzNC0xMjEuNXptMjE4LjUtMjg1LjVsMzQ0LjQgMTguMUM4NDggMjU0LjcgNzkyLjYgMTk0IDcxOS44IDE1MS43IDY1My45IDExMy42IDU4MS41IDk1LjUgNTEwLjUgOTZjLTEyMi41LjUtMjQyLjIgNTUuMi0zMjIuMSAxNTQuNWwxMjguMiAxOTYuOWMzMi05MS45IDEyNC44LTE0Ni43IDIyMi4yLTE0MXoifX1dfSxuYW1lOiJjaHJvbWUiLHRoZW1lOiJmaWxsZWQifSxCbD1pdSxQMT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpCbH0pKX0sTW89dC5mb3J3YXJkUmVmKFAxKSxsdT1Nbyx6MT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTI4IDUxMi4zdi0uM2MwLTIyOS44LTE4Ni4yLTQxNi00MTYtNDE2Uzk2IDI4Mi4yIDk2IDUxMnYuNGMwIDIyOS44IDE4Ni4yIDQxNiA0MTYgNDE2czQxNi0xODYuMiA0MTYtNDE2di0uMy4yem0tNi43LTc0LjZsLjYgMy4zLS42LTMuM3pNNjc2LjcgNjM4LjJjNTMuNS04Mi4yIDUyLjUtMTg5LjQtMTEuMS0yNjMuN2wxNjIuNC04LjRjMjAuNSA0NC40IDMyIDkzLjggMzIgMTQ1LjkgMCAxODUuMi0xNDQuNiAzMzYuNi0zMjcuMSAzNDcuNGwxNDMuOC0yMjEuMnpNNTEyIDY1Mi4zYy03Ny41IDAtMTQwLjItNjIuNy0xNDAuMi0xNDAuMiAwLTc3LjcgNjIuNy0xNDAuMiAxNDAuMi0xNDAuMlM2NTIuMiA0MzQuNSA2NTIuMiA1MTIgNTg5LjUgNjUyLjMgNTEyIDY1Mi4zem0zNjkuMi0zMzEuN2wtMy01LjcgMyA1Ljd6TTUxMiAxNjRjMTIxLjMgMCAyMjguMiA2Mi4xIDI5MC40IDE1Ni4ybC0yNjMuNi0xMy45Yy05Ny41LTUuNy0xOTAuMiA0OS4yLTIyMi4zIDE0MS4xTDIyNy44IDMxMWM2My4xLTg4LjkgMTY2LjktMTQ3IDI4NC4yLTE0N3pNMTAyLjUgNTg1LjhjMjYgMTQ1IDEyNy4xIDI2NCAyNjEuNiAzMTUuMUMyMjkuNiA4NTAgMTI4LjUgNzMxIDEwMi41IDU4NS44ek0xNjQgNTEyYzAtNTUuOSAxMy4yLTEwOC43IDM2LjYtMTU1LjVsMTE5LjcgMjM1LjRjNDQuMSA4Ni43IDEzNy40IDEzOS43IDIzNCAxMjEuNmwtNzQgMTQ1LjFDMzAyLjkgODQyLjUgMTY0IDY5My41IDE2NCA1MTJ6bTMyNC43IDQxNS40YzQgLjIgOCAuNCAxMiAuNS00LS4yLTgtLjMtMTItLjV6In19XX0sbmFtZToiY2hyb21lIix0aGVtZToib3V0bGluZWQifSxzdT16MSxjdT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpzdX0pKX0sRjE9dC5mb3J3YXJkUmVmKGN1KSxBMT1GMSx1dT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bS02My42IDY1NmMtMTAzIDAtMTYyLjQtNjguNi0xNjIuNC0xODIuNnYtNDlDMjg2IDM3My41IDM0NS40IDMwNCA0NDguMyAzMDRjODguMyAwIDE1Mi4zIDU2LjkgMTUyLjMgMTM4LjEgMCAyLjQtMiA0LjQtNC40IDQuNGgtNTIuNmMtNC4yIDAtNy42LTMuMi04LTcuNC00LTQ2LjEtMzcuNi03Ny42LTg3LTc3LjYtNjEuMSAwLTk1LjYgNDUuNC05NS42IDEyNi45djQ5LjNjMCA4MC4zIDM0LjUgMTI1LjEgOTUuNiAxMjUuMSA0OS4zIDAgODIuOC0yOS41IDg3LTcyLjQuNC00LjEgMy44LTcuMyA4LTcuM2g1Mi43YzIuNCAwIDQuNCAyIDQuNCA0LjQgMCA3Ny40LTY0LjMgMTMyLjUtMTUyLjMgMTMyLjV6TTczOCA3MDQuMWMwIDQuNC0zLjYgOC04IDhoLTUwLjRjLTQuNCAwLTgtMy42LTgtOFYzMTkuOWMwLTQuNCAzLjYtOCA4LThINzMwYzQuNCAwIDggMy42IDggOHYzODQuMnoifX1dfSxuYW1lOiJjaS1jaXJjbGUiLHRoZW1lOiJmaWxsZWQifSwkaT11dSxnYz1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjokaX0pKX0sZHU9dC5mb3J3YXJkUmVmKGdjKSxnbD1kdSxUcz17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyem0yMTgtNTcyLjFoLTUwLjRjLTQuNCAwLTggMy42LTggOHYzODQuMmMwIDQuNCAzLjYgOCA4IDhINzMwYzQuNCAwIDgtMy42IDgtOFYzMTkuOWMwLTQuNC0zLjYtOC04LTh6bS0yODEuNCA0OS42YzQ5LjUgMCA4My4xIDMxLjUgODcgNzcuNi40IDQuMiAzLjggNy40IDggNy40aDUyLjZjMi40IDAgNC40LTIgNC40LTQuNCAwLTgxLjItNjQtMTM4LjEtMTUyLjMtMTM4LjFDMzQ1LjQgMzA0IDI4NiAzNzMuNSAyODYgNDg4LjR2NDljMCAxMTQgNTkuNCAxODIuNiAxNjIuMyAxODIuNiA4OCAwIDE1Mi4zLTU1LjEgMTUyLjMtMTMyLjUgMC0yLjQtMi00LjQtNC40LTQuNGgtNTIuN2MtNC4yIDAtNy42IDMuMi04IDcuMy00LjIgNDMtMzcuNyA3Mi40LTg3IDcyLjQtNjEuMSAwLTk1LjYtNDQuOS05NS42LTEyNS4ydi00OS4zYy4xLTgxLjQgMzQuNi0xMjYuOCA5NS43LTEyNi44eiJ9fV19LG5hbWU6ImNpLWNpcmNsZSIsdGhlbWU6Im91dGxpbmVkIn0sUmw9VHMsTXM9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246Umx9KSl9LHBjPXQuZm9yd2FyZFJlZihNcykseWM9cGMsZnU9e2ljb246ZnVuY3Rpb24oZix2KXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeiIsZmlsbDpmfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgMTQwYy0yMDUuNCAwLTM3MiAxNjYuNi0zNzIgMzcyczE2Ni42IDM3MiAzNzIgMzcyIDM3Mi0xNjYuNiAzNzItMzcyLTE2Ni42LTM3Mi0zNzItMzcyem0tNjMuNSA1MjIuOGM0OS4zIDAgODIuOC0yOS40IDg3LTcyLjQuNC00LjEgMy44LTcuMyA4LTcuM2g1Mi43YzIuNCAwIDQuNCAyIDQuNCA0LjQgMCA3Ny40LTY0LjMgMTMyLjUtMTUyLjMgMTMyLjVDMzQ1LjQgNzIwIDI4NiA2NTEuNCAyODYgNTM3LjR2LTQ5QzI4NiAzNzMuNSAzNDUuNCAzMDQgNDQ4LjMgMzA0Yzg4LjMgMCAxNTIuMyA1Ni45IDE1Mi4zIDEzOC4xIDAgMi40LTIgNC40LTQuNCA0LjRoLTUyLjZjLTQuMiAwLTcuNi0zLjItOC03LjQtMy45LTQ2LjEtMzcuNS03Ny42LTg3LTc3LjYtNjEuMSAwLTk1LjYgNDUuNC05NS43IDEyNi44djQ5LjNjMCA4MC4zIDM0LjUgMTI1LjIgOTUuNiAxMjUuMnpNNzM4IDcwNC4xYzAgNC40LTMuNiA4LTggOGgtNTAuNGMtNC40IDAtOC0zLjYtOC04VjMxOS45YzAtNC40IDMuNi04IDgtOEg3MzBjNC40IDAgOCAzLjYgOCA4djM4NC4yeiIsZmlsbDp2fX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik03MzAgMzExLjloLTUwLjRjLTQuNCAwLTggMy42LTggOHYzODQuMmMwIDQuNCAzLjYgOCA4IDhINzMwYzQuNCAwIDgtMy42IDgtOFYzMTkuOWMwLTQuNC0zLjYtOC04LTh6bS0yODEuNCA0OS42YzQ5LjUgMCA4My4xIDMxLjUgODcgNzcuNi40IDQuMiAzLjggNy40IDggNy40aDUyLjZjMi40IDAgNC40LTIgNC40LTQuNCAwLTgxLjItNjQtMTM4LjEtMTUyLjMtMTM4LjFDMzQ1LjQgMzA0IDI4NiAzNzMuNSAyODYgNDg4LjR2NDljMCAxMTQgNTkuNCAxODIuNiAxNjIuMyAxODIuNiA4OCAwIDE1Mi4zLTU1LjEgMTUyLjMtMTMyLjUgMC0yLjQtMi00LjQtNC40LTQuNGgtNTIuN2MtNC4yIDAtNy42IDMuMi04IDcuMy00LjIgNDMtMzcuNyA3Mi40LTg3IDcyLjQtNjEuMSAwLTk1LjYtNDQuOS05NS42LTEyNS4ydi00OS4zYy4xLTgxLjQgMzQuNi0xMjYuOCA5NS43LTEyNi44eiIsZmlsbDpmfX1dfX0sbmFtZToiY2ktY2lyY2xlIix0aGVtZToidHdvdG9uZSJ9LENjPWZ1LHZ1PWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkNjfSkpfSxMMT10LmZvcndhcmRSZWYodnUpLFoxPUwxLFJzPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6bTIxOC01NzIuMWgtNTAuNGMtNC40IDAtOCAzLjYtOCA4djM4NC4yYzAgNC40IDMuNiA4IDggOEg3MzBjNC40IDAgOC0zLjYgOC04VjMxOS45YzAtNC40LTMuNi04LTgtOHptLTI4MS40IDQ5LjZjNDkuNSAwIDgzLjEgMzEuNSA4NyA3Ny42LjQgNC4yIDMuOCA3LjQgOCA3LjRoNTIuNmMyLjQgMCA0LjQtMiA0LjQtNC40IDAtODEuMi02NC0xMzguMS0xNTIuMy0xMzguMUMzNDUuNCAzMDQgMjg2IDM3My41IDI4NiA0ODguNHY0OWMwIDExNCA1OS40IDE4Mi42IDE2Mi4zIDE4Mi42IDg4IDAgMTUyLjMtNTUuMSAxNTIuMy0xMzIuNSAwLTIuNC0yLTQuNC00LjQtNC40aC01Mi43Yy00LjIgMC03LjYgMy4yLTggNy4zLTQuMiA0My0zNy43IDcyLjQtODcgNzIuNC02MS4xIDAtOTUuNi00NC45LTk1LjYtMTI1LjJ2LTQ5LjNjLjEtODEuNCAzNC42LTEyNi44IDk1LjctMTI2Ljh6In19XX0sbmFtZToiY2kiLHRoZW1lOiJvdXRsaW5lZCJ9LElzPVJzLCQxPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOklzfSkpfSxiYz10LmZvcndhcmRSZWYoJDEpLGh1PWJjLEgxPXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnoiLGZpbGw6Zn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDE0MGMtMjA1LjQgMC0zNzIgMTY2LjYtMzcyIDM3MnMxNjYuNiAzNzIgMzcyIDM3MiAzNzItMTY2LjYgMzcyLTM3Mi0xNjYuNi0zNzItMzcyLTM3MnptLTYzLjUgNTIyLjhjNDkuMyAwIDgyLjgtMjkuNCA4Ny03Mi40LjQtNC4xIDMuOC03LjMgOC03LjNoNTIuN2MyLjQgMCA0LjQgMiA0LjQgNC40IDAgNzcuNC02NC4zIDEzMi41LTE1Mi4zIDEzMi41QzM0NS40IDcyMCAyODYgNjUxLjQgMjg2IDUzNy40di00OUMyODYgMzczLjUgMzQ1LjQgMzA0IDQ0OC4zIDMwNGM4OC4zIDAgMTUyLjMgNTYuOSAxNTIuMyAxMzguMSAwIDIuNC0yIDQuNC00LjQgNC40aC01Mi42Yy00LjIgMC03LjYtMy4yLTgtNy40LTMuOS00Ni4xLTM3LjUtNzcuNi04Ny03Ny42LTYxLjEgMC05NS42IDQ1LjQtOTUuNyAxMjYuOHY0OS4zYzAgODAuMyAzNC41IDEyNS4yIDk1LjYgMTI1LjJ6TTczOCA3MDQuMWMwIDQuNC0zLjYgOC04IDhoLTUwLjRjLTQuNCAwLTgtMy42LTgtOFYzMTkuOWMwLTQuNCAzLjYtOCA4LThINzMwYzQuNCAwIDggMy42IDggOHYzODQuMnoiLGZpbGw6dn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNzMwIDMxMS45aC01MC40Yy00LjQgMC04IDMuNi04IDh2Mzg0LjJjMCA0LjQgMy42IDggOCA4SDczMGM0LjQgMCA4LTMuNiA4LThWMzE5LjljMC00LjQtMy42LTgtOC04em0tMjgxLjQgNDkuNmM0OS41IDAgODMuMSAzMS41IDg3IDc3LjYuNCA0LjIgMy44IDcuNCA4IDcuNGg1Mi42YzIuNCAwIDQuNC0yIDQuNC00LjQgMC04MS4yLTY0LTEzOC4xLTE1Mi4zLTEzOC4xQzM0NS40IDMwNCAyODYgMzczLjUgMjg2IDQ4OC40djQ5YzAgMTE0IDU5LjQgMTgyLjYgMTYyLjMgMTgyLjYgODggMCAxNTIuMy01NS4xIDE1Mi4zLTEzMi41IDAtMi40LTItNC40LTQuNC00LjRoLTUyLjdjLTQuMiAwLTcuNiAzLjItOCA3LjMtNC4yIDQzLTM3LjcgNzIuNC04NyA3Mi40LTYxLjEgMC05NS42LTQ0LjktOTUuNi0xMjUuMnYtNDkuM2MuMS04MS40IDM0LjYtMTI2LjggOTUuNy0xMjYuOHoiLGZpbGw6Zn19XX19LG5hbWU6ImNpIix0aGVtZToidHdvdG9uZSJ9LFNjPUgxLFBzPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOlNjfSkpfSxPYz10LmZvcndhcmRSZWYoUHMpLHpzPU9jLEQxPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoiZGVmcyIsYXR0cnM6e30sY2hpbGRyZW46W3t0YWc6InN0eWxlIixhdHRyczp7fX1dfSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg5OS4xIDg2OS42bC01My0zMDUuNkg4NjRjMTQuNCAwIDI2LTExLjYgMjYtMjZWMzQ2YzAtMTQuNC0xMS42LTI2LTI2LTI2SDYxOFYxMzhjMC0xNC40LTExLjYtMjYtMjYtMjZINDMyYy0xNC40IDAtMjYgMTEuNi0yNiAyNnYxODJIMTYwYy0xNC40IDAtMjYgMTEuNi0yNiAyNnYxOTJjMCAxNC40IDExLjYgMjYgMjYgMjZoMTcuOWwtNTMgMzA1LjZhMjUuOTUgMjUuOTUgMCAwMDI1LjYgMzAuNGg3MjNjMS41IDAgMy0uMSA0LjQtLjRhMjUuODggMjUuODggMCAwMDIxLjItMzB6TTIwNCAzOTBoMjcyVjE4Mmg3MnYyMDhoMjcydjEwNEgyMDRWMzkwem00NjggNDQwVjY3NGMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2MTU2SDQxNlY2NzRjMC00LjQtMy42LTgtOC04aC00OGMtNC40IDAtOCAzLjYtOCA4djE1NkgyMDIuOGw0NS4xLTI2MEg3NzZsNDUuMSAyNjBINjcyeiJ9fV19LG5hbWU6ImNsZWFyIix0aGVtZToib3V0bGluZWQifSxtdT1EMSxGcz1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjptdX0pKX0sZ3U9dC5mb3J3YXJkUmVmKEZzKSxucz1ndSxwdT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTE3Ni41IDU4NS43bC0yOC42IDM5YTcuOTkgNy45OSAwIDAxLTExLjIgMS43TDQ4My4zIDU2OS44YTcuOTIgNy45MiAwIDAxLTMuMy02LjVWMjg4YzAtNC40IDMuNi04IDgtOGg0OC4xYzQuNCAwIDggMy42IDggOHYyNDcuNWwxNDIuNiAxMDMuMWMzLjYgMi41IDQuNCA3LjUgMS44IDExLjF6In19XX0sbmFtZToiY2xvY2stY2lyY2xlIix0aGVtZToiZmlsbGVkIn0sQXM9cHUsbz1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpBc30pKX0sbD10LmZvcndhcmRSZWYobyksYj1sLEY9ZSgyNDAxOSksWD17aWNvbjpmdW5jdGlvbihmLHYpe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6IixmaWxsOmZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiAxNDBjLTIwNS40IDAtMzcyIDE2Ni42LTM3MiAzNzJzMTY2LjYgMzcyIDM3MiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzItMTY2LjYtMzcyLTM3Mi0zNzJ6bTE3Ni41IDUwOS43bC0yOC42IDM5YTcuOTkgNy45OSAwIDAxLTExLjIgMS43TDQ4My4zIDU2OS44YTcuOTIgNy45MiAwIDAxLTMuMy02LjVWMjg4YzAtNC40IDMuNi04IDgtOGg0OC4xYzQuNCAwIDggMy42IDggOHYyNDcuNWwxNDIuNiAxMDMuMWMzLjYgMi41IDQuNCA3LjUgMS44IDExLjF6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTY4Ni43IDYzOC42TDU0NC4xIDUzNS41VjI4OGMwLTQuNC0zLjYtOC04LThINDg4Yy00LjQgMC04IDMuNi04IDh2Mjc1LjNjMCAyLjYgMS4yIDUgMy4zIDYuNWwxNjUuNCAxMjAuNmMzLjYgMi42IDguNiAxLjkgMTEuMi0xLjdsMjguNi0zOWMyLjYtMy42IDEuOC04LjYtMS44LTExLjF6IixmaWxsOmZ9fV19fSxuYW1lOiJjbG9jay1jaXJjbGUiLHRoZW1lOiJ0d290b25lIn0saGU9WCxVZT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpoZX0pKX0seHQ9dC5mb3J3YXJkUmVmKFVlKSwkdD14dCxJbj1lKDQzNDApLGdyPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6eyJmaWxsLXJ1bGUiOiJldmVub2RkIix2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0YzI0Ny40IDAgNDQ4IDIwMC42IDQ0OCA0NDhTNzU5LjQgOTYwIDUxMiA5NjAgNjQgNzU5LjQgNjQgNTEyIDI2NC42IDY0IDUxMiA2NHptMCA3NmMtMjA1LjQgMC0zNzIgMTY2LjYtMzcyIDM3MnMxNjYuNiAzNzIgMzcyIDM3MiAzNzItMTY2LjYgMzcyLTM3Mi0xNjYuNi0zNzItMzcyLTM3MnptMTI4LjAxIDE5OC44M2MuMDMgMCAuMDUuMDEuMDkuMDZsNDUuMDIgNDUuMDFhLjIuMiAwIDAxLjA1LjA5LjEyLjEyIDAgMDEwIC4wN2MwIC4wMi0uMDEuMDQtLjA1LjA4TDU1Ny4yNSA1MTJsMTI3Ljg3IDEyNy44NmEuMjcuMjcgMCAwMS4wNS4wNnYuMDJhLjEyLjEyIDAgMDEwIC4wN2MwIC4wMy0uMDEuMDUtLjA1LjA5bC00NS4wMiA0NS4wMmEuMi4yIDAgMDEtLjA5LjA1LjEyLjEyIDAgMDEtLjA3IDBjLS4wMiAwLS4wNC0uMDEtLjA4LS4wNUw1MTIgNTU3LjI1IDM4NC4xNCA2ODUuMTJjLS4wNC4wNC0uMDYuMDUtLjA4LjA1YS4xMi4xMiAwIDAxLS4wNyAwYy0uMDMgMC0uMDUtLjAxLS4wOS0uMDVsLTQ1LjAyLTQ1LjAyYS4yLjIgMCAwMS0uMDUtLjA5LjEyLjEyIDAgMDEwLS4wN2MwLS4wMi4wMS0uMDQuMDYtLjA4TDQ2Ni43NSA1MTIgMzM4Ljg4IDM4NC4xNGEuMjcuMjcgMCAwMS0uMDUtLjA2bC0uMDEtLjAyYS4xMi4xMiAwIDAxMC0uMDdjMC0uMDMuMDEtLjA1LjA1LS4wOWw0NS4wMi00NS4wMmEuMi4yIDAgMDEuMDktLjA1LjEyLjEyIDAgMDEuMDcgMGMuMDIgMCAuMDQuMDEuMDguMDZMNTEyIDQ2Ni43NWwxMjcuODYtMTI3Ljg2Yy4wNC0uMDUuMDYtLjA2LjA4LS4wNmEuMTIuMTIgMCAwMS4wNyAweiJ9fV19LG5hbWU6ImNsb3NlLWNpcmNsZSIsdGhlbWU6Im91dGxpbmVkIn0sU3I9Z3IsdnI9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246U3J9KSl9LFVyPXQuZm9yd2FyZFJlZih2ciksWXI9VXIsUXI9e2ljb246ZnVuY3Rpb24oZix2KXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeiIsZmlsbDpmfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgMTQwYy0yMDUuNCAwLTM3MiAxNjYuNi0zNzIgMzcyczE2Ni42IDM3MiAzNzIgMzcyIDM3Mi0xNjYuNiAzNzItMzcyLTE2Ni42LTM3Mi0zNzItMzcyem0xNzEuOCA1MjcuMWMxLjIgMS41IDEuOSAzLjMgMS45IDUuMiAwIDQuNS0zLjYgOC04IDhsLTY2LS4zLTk5LjMtMTE4LjQtOTkuMyAxMTguNS02Ni4xLjNjLTQuNCAwLTgtMy42LTgtOCAwLTEuOS43LTMuNyAxLjktNS4yTDQ3MSA1MTIuM2wtMTMwLjEtMTU1YTguMzIgOC4zMiAwIDAxLTEuOS01LjJjMC00LjUgMy42LTggOC04bDY2LjEuMyA5OS4zIDExOC40IDk5LjQtMTE4LjUgNjYtLjNjNC40IDAgOCAzLjYgOCA4IDAgMS45LS42IDMuOC0xLjggNS4ybC0xMzAuMSAxNTUgMTI5LjkgMTU0Ljl6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTY4NS44IDM1MmMwLTQuNC0zLjYtOC04LThsLTY2IC4zLTk5LjQgMTE4LjUtOTkuMy0xMTguNC02Ni4xLS4zYy00LjQgMC04IDMuNS04IDggMCAxLjkuNyAzLjcgMS45IDUuMmwxMzAuMSAxNTUtMTMwLjEgMTU0LjlhOC4zMiA4LjMyIDAgMDAtMS45IDUuMmMwIDQuNCAzLjYgOCA4IDhsNjYuMS0uMyA5OS4zLTExOC41TDYxMS43IDY4MGw2NiAuM2M0LjQgMCA4LTMuNSA4LTggMC0xLjktLjctMy43LTEuOS01LjJMNTUzLjkgNTEyLjJsMTMwLjEtMTU1YzEuMi0xLjQgMS44LTMuMyAxLjgtNS4yeiIsZmlsbDpmfX1dfX0sbmFtZToiY2xvc2UtY2lyY2xlIix0aGVtZToidHdvdG9uZSJ9LFBvPVFyLHVuPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOlBvfSkpfSxXdD10LmZvcndhcmRSZWYodW4pLGhuPVd0LFRyPWUoOTc5MzcpLHFyPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6eyJmaWxsLXJ1bGUiOiJldmVub2RkIix2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDExMmMxNy43IDAgMzIgMTQuMyAzMiAzMnY3MzZjMCAxNy43LTE0LjMgMzItMzIgMzJIMTQ0Yy0xNy43IDAtMzItMTQuMy0zMi0zMlYxNDRjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTYzOS45OCAzMzguODJoLS4wNGwtLjA4LjA2TDUxMiA0NjYuNzUgMzg0LjE0IDMzOC44OGMtLjA0LS4wNS0uMDYtLjA2LS4wOC0uMDZhLjEyLjEyIDAgMDAtLjA3IDBjLS4wMyAwLS4wNS4wMS0uMDkuMDVsLTQ1LjAyIDQ1LjAyYS4yLjIgMCAwMC0uMDUuMDkuMTIuMTIgMCAwMDAgLjA3di4wMmEuMjcuMjcgMCAwMC4wNi4wNkw0NjYuNzUgNTEyIDMzOC44OCA2MzkuODZjLS4wNS4wNC0uMDYuMDYtLjA2LjA4YS4xMi4xMiAwIDAwMCAuMDdjMCAuMDMuMDEuMDUuMDUuMDlsNDUuMDIgNDUuMDJhLjIuMiAwIDAwLjA5LjA1LjEyLjEyIDAgMDAuMDcgMGMuMDIgMCAuMDQtLjAxLjA4LS4wNUw1MTIgNTU3LjI1bDEyNy44NiAxMjcuODdjLjA0LjA0LjA2LjA1LjA4LjA1YS4xMi4xMiAwIDAwLjA3IDBjLjAzIDAgLjA1LS4wMS4wOS0uMDVsNDUuMDItNDUuMDJhLjIuMiAwIDAwLjA1LS4wOS4xMi4xMiAwIDAwMC0uMDd2LS4wMmEuMjcuMjcgMCAwMC0uMDUtLjA2TDU1Ny4yNSA1MTJsMTI3Ljg3LTEyNy44NmMuMDQtLjA0LjA1LS4wNi4wNS0uMDhhLjEyLjEyIDAgMDAwLS4wN2MwLS4wMy0uMDEtLjA1LS4wNS0uMDlsLTQ1LjAyLTQ1LjAyYS4yLjIgMCAwMC0uMDktLjA1LjEyLjEyIDAgMDAtLjA3IDB6In19XX0sbmFtZToiY2xvc2Utc3F1YXJlIix0aGVtZToiZmlsbGVkIn0sY2E9cXIsdWE9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246Y2F9KSl9LENhPXQuZm9yd2FyZFJlZih1YSksWW89Q2EsX2E9e2ljb246e3RhZzoic3ZnIixhdHRyczp7ImZpbGwtcnVsZSI6ImV2ZW5vZGQiLHZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMTEyYzE3LjcgMCAzMiAxNC4zIDMyIDMydjczNmMwIDE3LjctMTQuMyAzMi0zMiAzMkgxNDRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjE0NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptLTQwIDcySDE4NHY2NTZoNjU2VjE4NHpNNjQwLjAxIDMzOC44M2MuMDMgMCAuMDUuMDEuMDkuMDZsNDUuMDIgNDUuMDFhLjIuMiAwIDAxLjA1LjA5LjEyLjEyIDAgMDEwIC4wN2MwIC4wMi0uMDEuMDQtLjA1LjA4TDU1Ny4yNSA1MTJsMTI3Ljg3IDEyNy44NmEuMjcuMjcgMCAwMS4wNS4wNnYuMDJhLjEyLjEyIDAgMDEwIC4wN2MwIC4wMy0uMDEuMDUtLjA1LjA5bC00NS4wMiA0NS4wMmEuMi4yIDAgMDEtLjA5LjA1LjEyLjEyIDAgMDEtLjA3IDBjLS4wMiAwLS4wNC0uMDEtLjA4LS4wNUw1MTIgNTU3LjI1IDM4NC4xNCA2ODUuMTJjLS4wNC4wNC0uMDYuMDUtLjA4LjA1YS4xMi4xMiAwIDAxLS4wNyAwYy0uMDMgMC0uMDUtLjAxLS4wOS0uMDVsLTQ1LjAyLTQ1LjAyYS4yLjIgMCAwMS0uMDUtLjA5LjEyLjEyIDAgMDEwLS4wN2MwLS4wMi4wMS0uMDQuMDYtLjA4TDQ2Ni43NSA1MTIgMzM4Ljg4IDM4NC4xNGEuMjcuMjcgMCAwMS0uMDUtLjA2bC0uMDEtLjAyYS4xMi4xMiAwIDAxMC0uMDdjMC0uMDMuMDEtLjA1LjA1LS4wOWw0NS4wMi00NS4wMmEuMi4yIDAgMDEuMDktLjA1LjEyLjEyIDAgMDEuMDcgMGMuMDIgMCAuMDQuMDEuMDguMDZMNTEyIDQ2Ni43NWwxMjcuODYtMTI3Ljg2Yy4wNC0uMDUuMDYtLjA2LjA4LS4wNmEuMTIuMTIgMCAwMS4wNyAweiJ9fV19LG5hbWU6ImNsb3NlLXNxdWFyZSIsdGhlbWU6Im91dGxpbmVkIn0scGw9X2EseXU9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246cGx9KSl9LHd1PXQuZm9yd2FyZFJlZih5dSksRXU9d3UsVHU9e2ljb246ZnVuY3Rpb24oZix2KXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNzI4SDE4NFYxODRoNjU2djY1NnoiLGZpbGw6Zn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMTg0IDg0MGg2NTZWMTg0SDE4NHY2NTZ6bTE2My45LTQ3My45QTcuOTUgNy45NSAwIDAxMzU0IDM1M2g1OC45YzQuNyAwIDkuMiAyLjEgMTIuMyA1LjdMNTEyIDQ2Mi4ybDg2LjgtMTAzLjVjMy0zLjYgNy41LTUuNyAxMi4zLTUuN0g2NzBjNi44IDAgMTAuNSA3LjkgNi4xIDEzLjFMNTUzLjggNTEybDEyMi4zIDE0NS45YzQuNCA1LjIuNyAxMy4xLTYuMSAxMy4xaC01OC45Yy00LjcgMC05LjItMi4xLTEyLjMtNS43TDUxMiA1NjEuOGwtODYuOCAxMDMuNWMtMyAzLjYtNy41IDUuNy0xMi4zIDUuN0gzNTRjLTYuOCAwLTEwLjUtNy45LTYuMS0xMy4xTDQ3MC4yIDUxMiAzNDcuOSAzNjYuMXoiLGZpbGw6dn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMzU0IDY3MWg1OC45YzQuOCAwIDkuMy0yLjEgMTIuMy01LjdMNTEyIDU2MS44bDg2LjggMTAzLjVjMy4xIDMuNiA3LjYgNS43IDEyLjMgNS43SDY3MGM2LjggMCAxMC41LTcuOSA2LjEtMTMuMUw1NTMuOCA1MTJsMTIyLjMtMTQ1LjljNC40LTUuMi43LTEzLjEtNi4xLTEzLjFoLTU4LjljLTQuOCAwLTkuMyAyLjEtMTIuMyA1LjdMNTEyIDQ2Mi4ybC04Ni44LTEwMy41Yy0zLjEtMy42LTcuNi01LjctMTIuMy01LjdIMzU0Yy02LjggMC0xMC41IDcuOS02LjEgMTMuMUw0NzAuMiA1MTIgMzQ3LjkgNjU3LjlBNy45NSA3Ljk1IDAgMDAzNTQgNjcxeiIsZmlsbDpmfX1dfX0sbmFtZToiY2xvc2Utc3F1YXJlIix0aGVtZToidHdvdG9uZSJ9LE11PVR1LFJ1PWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOk11fSkpfSxJdT10LmZvcndhcmRSZWYoUnUpLFB1PUl1LHp1PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02MjQgNzA2LjNoLTc0LjFWNDY0YzAtNC40LTMuNi04LTgtOGgtNjBjLTQuNCAwLTggMy42LTggOHYyNDIuM0g0MDBjLTYuNyAwLTEwLjQgNy43LTYuMyAxMi45bDExMiAxNDEuN2E4IDggMCAwMDEyLjYgMGwxMTItMTQxLjdjNC4xLTUuMi40LTEyLjktNi4zLTEyLjl6In19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODExLjQgMzY2LjdDNzY1LjYgMjQ1LjkgNjQ4LjkgMTYwIDUxMi4yIDE2MFMyNTguOCAyNDUuOCAyMTMgMzY2LjZDMTI3LjMgMzg5LjEgNjQgNDY3LjIgNjQgNTYwYzAgMTEwLjUgODkuNSAyMDAgMTk5LjkgMjAwSDMwNGM0LjQgMCA4LTMuNiA4LTh2LTYwYzAtNC40LTMuNi04LTgtOGgtNDAuMWMtMzMuNyAwLTY1LjQtMTMuNC04OS0zNy43LTIzLjUtMjQuMi0zNi01Ni44LTM0LjktOTAuNi45LTI2LjQgOS45LTUxLjIgMjYuMi03Mi4xIDE2LjctMjEuMyA0MC4xLTM2LjggNjYuMS00My43bDM3LjktOS45IDEzLjktMzYuNmM4LjYtMjIuOCAyMC42LTQ0LjEgMzUuNy02My40YTI0NS42IDI0NS42IDAgMDE1Mi40LTQ5LjljNDEuMS0yOC45IDg5LjUtNDQuMiAxNDAtNDQuMnM5OC45IDE1LjMgMTQwIDQ0LjJjMTkuOSAxNCAzNy41IDMwLjggNTIuNCA0OS45IDE1LjEgMTkuMyAyNy4xIDQwLjcgMzUuNyA2My40bDEzLjggMzYuNSAzNy44IDEwQzg0Ni4xIDQ1NC41IDg4NCA1MDMuOCA4ODQgNTYwYzAgMzMuMS0xMi45IDY0LjMtMzYuMyA4Ny43YTEyMy4wNyAxMjMuMDcgMCAwMS04Ny42IDM2LjNINzIwYy00LjQgMC04IDMuNi04IDh2NjBjMCA0LjQgMy42IDggOCA4aDQwLjFDODcwLjUgNzYwIDk2MCA2NzAuNSA5NjAgNTYwYzAtOTIuNy02My4xLTE3MC43LTE0OC42LTE5My4zeiJ9fV19LG5hbWU6ImNsb3VkLWRvd25sb2FkIix0aGVtZToib3V0bGluZWQifSxGdT16dSxBdT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpGdX0pKX0sTHU9dC5mb3J3YXJkUmVmKEF1KSxadT1MdSwkdT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODExLjQgNDE4LjdDNzY1LjYgMjk3LjkgNjQ4LjkgMjEyIDUxMi4yIDIxMlMyNTguOCAyOTcuOCAyMTMgNDE4LjZDMTI3LjMgNDQxLjEgNjQgNTE5LjEgNjQgNjEyYzAgMTEwLjUgODkuNSAyMDAgMTk5LjkgMjAwaDQ5Ni4yQzg3MC41IDgxMiA5NjAgNzIyLjUgOTYwIDYxMmMwLTkyLjctNjMuMS0xNzAuNy0xNDguNi0xOTMuM3oifX1dfSxuYW1lOiJjbG91ZCIsdGhlbWU6ImZpbGxlZCJ9LEh1PSR1LER1PWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkh1fSkpfSxCdT10LmZvcndhcmRSZWYoRHUpLFZ1PUJ1LE51PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04MTEuNCA0MTguN0M3NjUuNiAyOTcuOSA2NDguOSAyMTIgNTEyLjIgMjEyUzI1OC44IDI5Ny44IDIxMyA0MTguNkMxMjcuMyA0NDEuMSA2NCA1MTkuMSA2NCA2MTJjMCAxMTAuNSA4OS41IDIwMCAxOTkuOSAyMDBoNDk2LjJDODcwLjUgODEyIDk2MCA3MjIuNSA5NjAgNjEyYzAtOTIuNy02My4xLTE3MC43LTE0OC42LTE5My4zem0zNi4zIDI4MWExMjMuMDcgMTIzLjA3IDAgMDEtODcuNiAzNi4zSDI2My45Yy0zMy4xIDAtNjQuMi0xMi45LTg3LjYtMzYuM0ExMjMuMyAxMjMuMyAwIDAxMTQwIDYxMmMwLTI4IDkuMS01NC4zIDI2LjItNzYuM2ExMjUuNyAxMjUuNyAwIDAxNjYuMS00My43bDM3LjktOS45IDEzLjktMzYuNmM4LjYtMjIuOCAyMC42LTQ0LjEgMzUuNy02My40YTI0NS42IDI0NS42IDAgMDE1Mi40LTQ5LjljNDEuMS0yOC45IDg5LjUtNDQuMiAxNDAtNDQuMnM5OC45IDE1LjMgMTQwIDQ0LjJjMTkuOSAxNCAzNy41IDMwLjggNTIuNCA0OS45IDE1LjEgMTkuMyAyNy4xIDQwLjcgMzUuNyA2My40bDEzLjggMzYuNSAzNy44IDEwYzU0LjMgMTQuNSA5Mi4xIDYzLjggOTIuMSAxMjAgMCAzMy4xLTEyLjkgNjQuMy0zNi4zIDg3Ljd6In19XX0sbmFtZToiY2xvdWQiLHRoZW1lOiJvdXRsaW5lZCJ9LGp1PU51LFV1PWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOmp1fSkpfSxXdT10LmZvcndhcmRSZWYoVXUpLGt1PVd1LEt1PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik03MDQgNDQ2SDMyMGMtNC40IDAtOCAzLjYtOCA4djQwMmMwIDQuNCAzLjYgOCA4IDhoMzg0YzQuNCAwIDgtMy42IDgtOFY0NTRjMC00LjQtMy42LTgtOC04em0tMzI4IDY0aDI3MnYxMTdIMzc2VjUxMHptMjcyIDI5MEgzNzZWNjgzaDI3MnYxMTd6In19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNDI0IDc0OGEzMiAzMiAwIDEwNjQgMCAzMiAzMiAwIDEwLTY0IDB6bTAtMTc4YTMyIDMyIDAgMTA2NCAwIDMyIDMyIDAgMTAtNjQgMHoifX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04MTEuNCAzNjguOUM3NjUuNiAyNDggNjQ4LjkgMTYyIDUxMi4yIDE2MlMyNTguOCAyNDcuOSAyMTMgMzY4LjhDMTI2LjkgMzkxLjUgNjMuNSA0NzAuMiA2NCA1NjMuNiA2NC42IDY2OCAxNDUuNiA3NTIuOSAyNDcuNiA3NjJjNC43LjQgOC43LTMuMyA4LjctOHYtNjAuNGMwLTQtMy03LjQtNy03LjktMjctMy40LTUyLjUtMTUuMi03Mi4xLTM0LjUtMjQtMjMuNS0zNy4yLTU1LjEtMzcuMi04OC42IDAtMjggOS4xLTU0LjQgMjYuMi03Ni40IDE2LjctMjEuNCA0MC4yLTM2LjkgNjYuMS00My43bDM3LjktMTAgMTMuOS0zNi43YzguNi0yMi44IDIwLjYtNDQuMiAzNS43LTYzLjUgMTQuOS0xOS4yIDMyLjYtMzYgNTIuNC01MCA0MS4xLTI4LjkgODkuNS00NC4yIDE0MC00NC4yczk4LjkgMTUuMyAxNDAgNDQuM2MxOS45IDE0IDM3LjUgMzAuOCA1Mi40IDUwIDE1LjEgMTkuMyAyNy4xIDQwLjcgMzUuNyA2My41bDEzLjggMzYuNiAzNy44IDEwYzU0LjIgMTQuNCA5Mi4xIDYzLjcgOTIuMSAxMjAgMCAzMy42LTEzLjIgNjUuMS0zNy4yIDg4LjYtMTkuNSAxOS4yLTQ0LjkgMzEuMS03MS45IDM0LjUtNCAuNS02LjkgMy45LTYuOSA3LjlWNzU0YzAgNC43IDQuMSA4LjQgOC44IDggMTAxLjctOS4yIDE4Mi41LTk0IDE4My4yLTE5OC4yLjYtOTMuNC02Mi43LTE3Mi4xLTE0OC42LTE5NC45eiJ9fV19LG5hbWU6ImNsb3VkLXNlcnZlciIsdGhlbWU6Im91dGxpbmVkIn0sX3U9S3UsR3U9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246X3V9KSl9LFl1PXQuZm9yd2FyZFJlZihHdSksWHU9WXUsUXU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTgxMS40IDM2OC45Qzc2NS42IDI0OCA2NDguOSAxNjIgNTEyLjIgMTYyUzI1OC44IDI0Ny45IDIxMyAzNjguOEMxMjYuOSAzOTEuNSA2My41IDQ3MC4yIDY0IDU2My42IDY0LjYgNjY4IDE0NS42IDc1Mi45IDI0Ny42IDc2MmM0LjcuNCA4LjctMy4zIDguNy04di02MC40YzAtNC0zLTcuNC03LTcuOS0yNy0zLjQtNTIuNS0xNS4yLTcyLjEtMzQuNS0yNC0yMy41LTM3LjItNTUuMS0zNy4yLTg4LjYgMC0yOCA5LjEtNTQuNCAyNi4yLTc2LjQgMTYuNy0yMS40IDQwLjItMzYuOSA2Ni4xLTQzLjdsMzcuOS0xMCAxMy45LTM2LjdjOC42LTIyLjggMjAuNi00NC4yIDM1LjctNjMuNSAxNC45LTE5LjIgMzIuNi0zNiA1Mi40LTUwIDQxLjEtMjguOSA4OS41LTQ0LjIgMTQwLTQ0LjJzOTguOSAxNS4zIDE0MCA0NC4zYzE5LjkgMTQgMzcuNSAzMC44IDUyLjQgNTAgMTUuMSAxOS4zIDI3LjEgNDAuNyAzNS43IDYzLjVsMTMuOCAzNi42IDM3LjggMTBjNTQuMiAxNC40IDkyLjEgNjMuNyA5Mi4xIDEyMCAwIDMzLjYtMTMuMiA2NS4xLTM3LjIgODguNi0xOS41IDE5LjItNDQuOSAzMS4xLTcxLjkgMzQuNS00IC41LTYuOSAzLjktNi45IDcuOVY3NTRjMCA0LjcgNC4xIDguNCA4LjggOCAxMDEuNy05LjIgMTgyLjUtOTQgMTgzLjItMTk4LjIuNi05My40LTYyLjctMTcyLjEtMTQ4LjYtMTk0Ljl6In19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMzc2LjkgNjU2LjRjMS44LTMzLjUgMTUuNy02NC43IDM5LjUtODguNiAyNS40LTI1LjUgNjAtMzkuOCA5Ni0zOS44IDM2LjIgMCA3MC4zIDE0LjEgOTYgMzkuOCAxLjQgMS40IDIuNyAyLjggNC4xIDQuM2wtMjUgMTkuNmE4IDggMCAwMDMgMTQuMWw5OC4yIDI0YzUgMS4yIDkuOS0yLjYgOS45LTcuN2wuNS0xMDEuM2MwLTYuNy03LjYtMTAuNS0xMi45LTYuM0w2NjMgNTMyLjdjLTM2LjYtNDItOTAuNC02OC42LTE1MC41LTY4LjYtMTA3LjQgMC0xOTUgODUuMS0xOTkuNCAxOTEuNy0uMiA0LjUgMy40IDguMyA4IDguM0gzNjljNC4yLS4xIDcuNy0zLjQgNy45LTcuN3pNNzAzIDY2NGgtNDcuOWMtNC4yIDAtNy43IDMuMy04IDcuNi0xLjggMzMuNS0xNS43IDY0LjctMzkuNSA4OC42LTI1LjQgMjUuNS02MCAzOS44LTk2IDM5LjgtMzYuMiAwLTcwLjMtMTQuMS05Ni0zOS44LTEuNC0xLjQtMi43LTIuOC00LjEtNC4zbDI1LTE5LjZhOCA4IDAgMDAtMy0xNC4xbC05OC4yLTI0Yy01LTEuMi05LjkgMi42LTkuOSA3LjdsLS40IDEwMS40YzAgNi43IDcuNiAxMC41IDEyLjkgNi4zbDIzLjItMTguMmMzNi42IDQyIDkwLjQgNjguNiAxNTAuNSA2OC42IDEwNy40IDAgMTk1LTg1LjEgMTk5LjQtMTkxLjcuMi00LjUtMy40LTguMy04LTguM3oifX1dfSxuYW1lOiJjbG91ZC1zeW5jIix0aGVtZToib3V0bGluZWQifSxKdT1RdSxxdT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpKdX0pKX0sZTA9dC5mb3J3YXJkUmVmKHF1KSx0MD1lMCxuMD17aWNvbjpmdW5jdGlvbihmLHYpe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik03OTEuOSA0OTJsLTM3LjgtMTAtMTMuOC0zNi41Yy04LjYtMjIuNy0yMC42LTQ0LjEtMzUuNy02My40YTI0NS43MyAyNDUuNzMgMCAwMC01Mi40LTQ5LjljLTQxLjEtMjguOS04OS41LTQ0LjItMTQwLTQ0LjJzLTk4LjkgMTUuMy0xNDAgNDQuMmEyNDUuNiAyNDUuNiAwIDAwLTUyLjQgNDkuOSAyNDAuNDcgMjQwLjQ3IDAgMDAtMzUuNyA2My40bC0xMy45IDM2LjYtMzcuOSA5LjlhMTI1LjcgMTI1LjcgMCAwMC02Ni4xIDQzLjdBMTIzLjEgMTIzLjEgMCAwMDE0MCA2MTJjMCAzMy4xIDEyLjkgNjQuMyAzNi4zIDg3LjcgMjMuNCAyMy40IDU0LjUgMzYuMyA4Ny42IDM2LjNoNDk2LjJjMzMuMSAwIDY0LjItMTIuOSA4Ny42LTM2LjNBMTIzLjMgMTIzLjMgMCAwMDg4NCA2MTJjMC01Ni4yLTM3LjgtMTA1LjUtOTIuMS0xMjB6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTgxMS40IDQxOC43Qzc2NS42IDI5Ny45IDY0OC45IDIxMiA1MTIuMiAyMTJTMjU4LjggMjk3LjggMjEzIDQxOC42QzEyNy4zIDQ0MS4xIDY0IDUxOS4xIDY0IDYxMmMwIDExMC41IDg5LjUgMjAwIDE5OS45IDIwMGg0OTYuMkM4NzAuNSA4MTIgOTYwIDcyMi41IDk2MCA2MTJjMC05Mi43LTYzLjEtMTcwLjctMTQ4LjYtMTkzLjN6bTM2LjMgMjgxYTEyMy4wNyAxMjMuMDcgMCAwMS04Ny42IDM2LjNIMjYzLjljLTMzLjEgMC02NC4yLTEyLjktODcuNi0zNi4zQTEyMy4zIDEyMy4zIDAgMDExNDAgNjEyYzAtMjggOS4xLTU0LjMgMjYuMi03Ni4zYTEyNS43IDEyNS43IDAgMDE2Ni4xLTQzLjdsMzcuOS05LjkgMTMuOS0zNi42YzguNi0yMi44IDIwLjYtNDQuMSAzNS43LTYzLjRhMjQ1LjYgMjQ1LjYgMCAwMTUyLjQtNDkuOWM0MS4xLTI4LjkgODkuNS00NC4yIDE0MC00NC4yczk4LjkgMTUuMyAxNDAgNDQuMmMxOS45IDE0IDM3LjUgMzAuOCA1Mi40IDQ5LjkgMTUuMSAxOS4zIDI3LjEgNDAuNyAzNS43IDYzLjRsMTMuOCAzNi41IDM3LjggMTBjNTQuMyAxNC41IDkyLjEgNjMuOCA5Mi4xIDEyMCAwIDMzLjEtMTIuOSA2NC4zLTM2LjMgODcuN3oiLGZpbGw6Zn19XX19LG5hbWU6ImNsb3VkIix0aGVtZToidHdvdG9uZSJ9LHIwPW4wLGEwPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOnIwfSkpfSxvMD10LmZvcndhcmRSZWYoYTApLGkwPW8wLGwwPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTguMyA0NTlhOCA4IDAgMDAtMTIuNiAwbC0xMTIgMTQxLjdhNy45OCA3Ljk4IDAgMDA2LjMgMTIuOWg3My45Vjg1NmMwIDQuNCAzLjYgOCA4IDhoNjBjNC40IDAgOC0zLjYgOC04VjYxMy43SDYyNGM2LjcgMCAxMC40LTcuNyA2LjMtMTIuOUw1MTguMyA0NTl6In19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODExLjQgMzY2LjdDNzY1LjYgMjQ1LjkgNjQ4LjkgMTYwIDUxMi4yIDE2MFMyNTguOCAyNDUuOCAyMTMgMzY2LjZDMTI3LjMgMzg5LjEgNjQgNDY3LjIgNjQgNTYwYzAgMTEwLjUgODkuNSAyMDAgMTk5LjkgMjAwSDMwNGM0LjQgMCA4LTMuNiA4LTh2LTYwYzAtNC40LTMuNi04LTgtOGgtNDAuMWMtMzMuNyAwLTY1LjQtMTMuNC04OS0zNy43LTIzLjUtMjQuMi0zNi01Ni44LTM0LjktOTAuNi45LTI2LjQgOS45LTUxLjIgMjYuMi03Mi4xIDE2LjctMjEuMyA0MC4xLTM2LjggNjYuMS00My43bDM3LjktOS45IDEzLjktMzYuNmM4LjYtMjIuOCAyMC42LTQ0LjEgMzUuNy02My40YTI0NS42IDI0NS42IDAgMDE1Mi40LTQ5LjljNDEuMS0yOC45IDg5LjUtNDQuMiAxNDAtNDQuMnM5OC45IDE1LjMgMTQwIDQ0LjJjMTkuOSAxNCAzNy41IDMwLjggNTIuNCA0OS45IDE1LjEgMTkuMyAyNy4xIDQwLjcgMzUuNyA2My40bDEzLjggMzYuNSAzNy44IDEwQzg0Ni4xIDQ1NC41IDg4NCA1MDMuOCA4ODQgNTYwYzAgMzMuMS0xMi45IDY0LjMtMzYuMyA4Ny43YTEyMy4wNyAxMjMuMDcgMCAwMS04Ny42IDM2LjNINzIwYy00LjQgMC04IDMuNi04IDh2NjBjMCA0LjQgMy42IDggOCA4aDQwLjFDODcwLjUgNzYwIDk2MCA2NzAuNSA5NjAgNTYwYzAtOTIuNy02My4xLTE3MC43LTE0OC42LTE5My4zeiJ9fV19LG5hbWU6ImNsb3VkLXVwbG9hZCIsdGhlbWU6Im91dGxpbmVkIn0sczA9bDAsYzA9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246czB9KSl9LHUwPXQuZm9yd2FyZFJlZihjMCksZDA9dTAsZjA9ZSg0MDcxNyksdjA9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNTEzLjEgNTE4LjFsLTE5MiAxNjFjLTUuMiA0LjQtMTMuMS43LTEzLjEtNi4xdi02Mi43YzAtMi4zIDEuMS00LjYgMi45LTYuMUw0MjAuNyA1MTJsLTEwOS44LTkyLjJhNy42MyA3LjYzIDAgMDEtMi45LTYuMVYzNTFjMC02LjggNy45LTEwLjUgMTMuMS02LjFsMTkyIDE2MC45YzMuOSAzLjIgMy45IDkuMSAwIDEyLjN6TTcxNiA2NzNjMCA0LjQtMy40IDgtNy41IDhoLTE4NWMtNC4xIDAtNy41LTMuNi03LjUtOHYtNDhjMC00LjQgMy40LTggNy41LThoMTg1YzQuMSAwIDcuNSAzLjYgNy41IDh2NDh6In19XX0sbmFtZToiY29kZSIsdGhlbWU6ImZpbGxlZCJ9LGgwPXYwLG0wPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOmgwfSkpfSxnMD10LmZvcndhcmRSZWYobTApLHAwPWcwLHkwPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTYgNjczYzAgNC40IDMuNCA4IDcuNSA4aDE4NWM0LjEgMCA3LjUtMy42IDcuNS04di00OGMwLTQuNC0zLjQtOC03LjUtOGgtMTg1Yy00LjEgMC03LjUgMy42LTcuNSA4djQ4em0tMTk0LjkgNi4xbDE5Mi0xNjFjMy44LTMuMiAzLjgtOS4xIDAtMTIuM2wtMTkyLTE2MC45QTcuOTUgNy45NSAwIDAwMzA4IDM1MXY2Mi43YzAgMi40IDEgNC42IDIuOSA2LjFMNDIwLjcgNTEybC0xMDkuOCA5Mi4yYTguMSA4LjEgMCAwMC0yLjkgNi4xVjY3M2MwIDYuOCA3LjkgMTAuNSAxMy4xIDYuMXpNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNzI4SDE4NFYxODRoNjU2djY1NnoifX1dfSxuYW1lOiJjb2RlIix0aGVtZToib3V0bGluZWQifSxDMD15MCxiMD1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpDMH0pKX0sUzA9dC5mb3J3YXJkUmVmKGIwKSxPMD1TMCx4MD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTI0My43IDU4OS4yTDUxMiA3OTQgMjY4LjMgNjUzLjJWMzcxLjhsMTEwLTYzLjYtLjQtLjJoLjJMNTEyIDIzMWwxMzQgNzdoLS4ybC0uMy4yIDExMC4xIDYzLjZ2MjgxLjR6TTMwNy45IDUzNi43bDg3LjYgNDkuOVY2ODFsOTYuNyA1NS45VjUyNC44TDMwNy45IDQxOC40em0yMDMuOS0xNTEuOEw0MTggMzMxbC05MS4xIDUyLjYgMTg1LjIgMTA3IDE4NS4yLTEwNi45LTkxLjQtNTIuOHptMjAgMzUybDk3LjMtNTYuMnYtOTQuMWw4Ny00OS41VjQxOC41TDUzMS44IDUyNXoifX1dfSxuYW1lOiJjb2RlLXNhbmRib3gtY2lyY2xlIix0aGVtZToiZmlsbGVkIn0sdzA9eDAsRTA9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246dzB9KSl9LFQwPXQuZm9yd2FyZFJlZihFMCksTTA9VDAsUjA9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTcwOS42IDIxMGwuNC0uMmguMkw1MTIgOTYgMzEzLjkgMjA5LjhoLS4ybC43LjNMMTUxLjUgMzA0djQxNkw1MTIgOTI4bDM2MC41LTIwOFYzMDRsLTE2Mi45LTk0ek00ODIuNyA4NDMuNkwzMzkuNiA3NjFWNjIxLjRMMjEwIDU0Ny44VjM3Mi45bDI3Mi43IDE1Ny4zdjMxMy40ek0yMzguMiAzMjEuNWwxMzQuNy03Ny44IDEzOC45IDc5LjcgMTM5LjEtNzkuOSAxMzUuMiA3OC0yNzMuOSAxNTgtMjc0LTE1OHpNODE0IDU0OC4zbC0xMjguOCA3My4xdjEzOS4xbC0xNDMuOSA4M1Y1MzAuNEw4MTQgMzczLjF2MTc1LjJ6In19XX0sbmFtZToiY29kZS1zYW5kYm94Iix0aGVtZToib3V0bGluZWQifSxJMD1SMCxQMD1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpJMH0pKX0sejA9dC5mb3J3YXJkUmVmKFAwKSxGMD16MCxBMD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMzA3LjkgNTM2LjdsODcuNiA0OS45VjY4MWw5Ni43IDU1LjlWNTI0LjhMMzA3LjkgNDE4LjR6TTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNzU1LjcgNjUzLjJMNTEyIDc5NCAyNjguMyA2NTMuMlYzNzEuOGwxMTAtNjMuNi0uNC0uMmguMkw1MTIgMjMxbDEzNCA3N2gtLjJsLS4zLjIgMTEwLjEgNjMuNnYyODEuNHptLTIyMy45IDgzLjdsOTcuMy01Ni4ydi05NC4xbDg3LTQ5LjVWNDE4LjVMNTMxLjggNTI1em0tMjAtMzUyTDQxOCAzMzFsLTkxLjEgNTIuNiAxODUuMiAxMDcgMTg1LjItMTA2LjktOTEuNC01Mi44eiJ9fV19LG5hbWU6ImNvZGUtc2FuZGJveC1zcXVhcmUiLHRoZW1lOiJmaWxsZWQifSxMMD1BMCxaMD1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpMMH0pKX0sJDA9dC5mb3J3YXJkUmVmKFowKSxIMD0kMCxEMD17aWNvbjpmdW5jdGlvbihmLHYpe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2eiIsZmlsbDpmfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0xODQgODQwaDY1NlYxODRIMTg0djY1NnptMzM5LjUtMjIzaDE4NWM0LjEgMCA3LjUgMy42IDcuNSA4djQ4YzAgNC40LTMuNCA4LTcuNSA4aC0xODVjLTQuMSAwLTcuNS0zLjYtNy41LTh2LTQ4YzAtNC40IDMuNC04IDcuNS04ek0zMDggNjEwLjNjMC0yLjMgMS4xLTQuNiAyLjktNi4xTDQyMC43IDUxMmwtMTA5LjgtOTIuMmE3LjYzIDcuNjMgMCAwMS0yLjktNi4xVjM1MWMwLTYuOCA3LjktMTAuNSAxMy4xLTYuMWwxOTIgMTYwLjljMy45IDMuMiAzLjkgOS4xIDAgMTIuM2wtMTkyIDE2MWMtNS4yIDQuNC0xMy4xLjctMTMuMS02LjF2LTYyLjd6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTMyMS4xIDY3OS4xbDE5Mi0xNjFjMy45LTMuMiAzLjktOS4xIDAtMTIuM2wtMTkyLTE2MC45QTcuOTUgNy45NSAwIDAwMzA4IDM1MXY2Mi43YzAgMi40IDEgNC42IDIuOSA2LjFMNDIwLjcgNTEybC0xMDkuOCA5Mi4yYTguMSA4LjEgMCAwMC0yLjkgNi4xVjY3M2MwIDYuOCA3LjkgMTAuNSAxMy4xIDYuMXpNNTE2IDY3M2MwIDQuNCAzLjQgOCA3LjUgOGgxODVjNC4xIDAgNy41LTMuNiA3LjUtOHYtNDhjMC00LjQtMy40LTgtNy41LThoLTE4NWMtNC4xIDAtNy41IDMuNi03LjUgOHY0OHoiLGZpbGw6Zn19XX19LG5hbWU6ImNvZGUiLHRoZW1lOiJ0d290b25lIn0sQjA9RDAsVjA9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246QjB9KSl9LE4wPXQuZm9yd2FyZFJlZihWMCksajA9TjAsVTA9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQ4OC4xIDQxNC43VjMwMy40TDMwMC45IDQyOGw4My42IDU1Ljh6bTI1NC4xIDEzNy43di03OS44bC01OS44IDM5Ljl6TTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0yNzggNTMzYzAgMS4xLS4xIDIuMS0uMiAzLjEgMCAuNC0uMS43LS4yIDFhMTQuMTYgMTQuMTYgMCAwMS0uOCAzLjJjLS4yLjYtLjQgMS4yLS42IDEuNy0uMi40LS40LjgtLjUgMS4yLS4zLjUtLjUgMS4xLS44IDEuNi0uMi40LS40LjctLjcgMS4xLS4zLjUtLjcgMS0xIDEuNS0uMy40LS41LjctLjggMS0uNC40LS44LjktMS4yIDEuMy0uMy4zLS42LjYtMSAuOS0uNC40LS45LjgtMS40IDEuMS0uNC4zLS43LjYtMS4xLjgtLjEuMS0uMy4yLS40LjNMNTI1LjIgNzg2Yy00IDIuNy04LjYgNC0xMy4yIDQtNC43IDAtOS4zLTEuNC0xMy4zLTRMMjQ0LjYgNjE2LjljLS4xLS4xLS4zLS4yLS40LS4zbC0xLjEtLjhjLS41LS40LS45LS43LTEuMy0xLjEtLjMtLjMtLjYtLjYtMS0uOS0uNC0uNC0uOC0uOC0xLjItMS4zYTcgNyAwIDAxLS44LTFjLS40LS41LS43LTEtMS0xLjUtLjItLjQtLjUtLjctLjctMS4xLS4zLS41LS42LTEuMS0uOC0xLjYtLjItLjQtLjQtLjgtLjUtMS4yLS4yLS42LS40LTEuMi0uNi0xLjctLjEtLjQtLjMtLjgtLjQtMS4yLS4yLS43LS4zLTEuMy0uNC0yLS4xLS4zLS4xLS43LS4yLTEtLjEtMS0uMi0yLjEtLjItMy4xVjQyNy45YzAtMSAuMS0yLjEuMi0zLjEuMS0uMy4xLS43LjItMWExNC4xNiAxNC4xNiAwIDAxLjgtMy4yYy4yLS42LjQtMS4yLjYtMS43LjItLjQuNC0uOC41LTEuMi4yLS41LjUtMS4xLjgtMS42LjItLjQuNC0uNy43LTEuMS42LS45IDEuMi0xLjcgMS44LTIuNS40LS40LjgtLjkgMS4yLTEuMy4zLS4zLjYtLjYgMS0uOS40LS40LjktLjggMS4zLTEuMS40LS4zLjctLjYgMS4xLS44LjEtLjEuMy0uMi40LS4zTDQ5OC43IDIzOWM4LTUuMyAxOC41LTUuMyAyNi41IDBsMjU0LjEgMTY5LjFjLjEuMS4zLjIuNC4zbDEuMS44IDEuNCAxLjFjLjMuMy42LjYgMSAuOS40LjQuOC44IDEuMiAxLjMuNy44IDEuMyAxLjYgMS44IDIuNS4yLjQuNS43LjcgMS4xLjMuNS42IDEgLjggMS42LjIuNC40LjguNSAxLjIuMi42LjQgMS4yLjYgMS43LjEuNC4zLjguNCAxLjIuMi43LjMgMS4zLjQgMiAuMS4zLjEuNy4yIDEgLjEgMSAuMiAyLjEuMiAzLjFWNTk3em0tMjU0LjEgMTMuM3YxMTEuM0w3MjMuMSA1OTdsLTgzLjYtNTUuOHpNMjgxLjggNDcyLjZ2NzkuOGw1OS44LTM5Ljl6TTUxMiA0NTYuMWwtODQuNSA1Ni40IDg0LjUgNTYuNCA4NC41LTU2LjR6TTcyMy4xIDQyOEw1MzUuOSAzMDMuNHYxMTEuM2wxMDMuNiA2OS4xek0zODQuNSA1NDEuMkwzMDAuOSA1OTdsMTg3LjIgMTI0LjZWNjEwLjNsLTEwMy42LTY5LjF6In19XX0sbmFtZToiY29kZXBlbi1jaXJjbGUiLHRoZW1lOiJmaWxsZWQifSxXMD1VMCxrMD1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpXMH0pKX0sSzA9dC5mb3J3YXJkUmVmKGswKSxfMD1LMCxHMD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNDg4LjEgNDE0LjdWMzAzLjRMMzAwLjkgNDI4bDgzLjYgNTUuOHptMjU0LjEgMTM3Ljd2LTc5LjhsLTU5LjggMzkuOXpNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTI3OCA1MzNjMCAxLjEtLjEgMi4xLS4yIDMuMSAwIC40LS4xLjctLjIgMWExNC4xNiAxNC4xNiAwIDAxLS44IDMuMmMtLjIuNi0uNCAxLjItLjYgMS43LS4yLjQtLjQuOC0uNSAxLjItLjMuNS0uNSAxLjEtLjggMS42LS4yLjQtLjQuNy0uNyAxLjEtLjMuNS0uNyAxLTEgMS41LS4zLjQtLjUuNy0uOCAxLS40LjQtLjguOS0xLjIgMS4zLS4zLjMtLjYuNi0xIC45LS40LjQtLjkuOC0xLjQgMS4xLS40LjMtLjcuNi0xLjEuOC0uMS4xLS4zLjItLjQuM0w1MjUuMiA3ODZjLTQgMi43LTguNiA0LTEzLjIgNC00LjcgMC05LjMtMS40LTEzLjMtNEwyNDQuNiA2MTYuOWMtLjEtLjEtLjMtLjItLjQtLjNsLTEuMS0uOGMtLjUtLjQtLjktLjctMS4zLTEuMS0uMy0uMy0uNi0uNi0xLS45LS40LS40LS44LS44LTEuMi0xLjNhNyA3IDAgMDEtLjgtMWMtLjQtLjUtLjctMS0xLTEuNS0uMi0uNC0uNS0uNy0uNy0xLjEtLjMtLjUtLjYtMS4xLS44LTEuNi0uMi0uNC0uNC0uOC0uNS0xLjItLjItLjYtLjQtMS4yLS42LTEuNy0uMS0uNC0uMy0uOC0uNC0xLjItLjItLjctLjMtMS4zLS40LTItLjEtLjMtLjEtLjctLjItMS0uMS0xLS4yLTIuMS0uMi0zLjFWNDI3LjljMC0xIC4xLTIuMS4yLTMuMS4xLS4zLjEtLjcuMi0xYTE0LjE2IDE0LjE2IDAgMDEuOC0zLjJjLjItLjYuNC0xLjIuNi0xLjcuMi0uNC40LS44LjUtMS4yLjItLjUuNS0xLjEuOC0xLjYuMi0uNC40LS43LjctMS4xLjYtLjkgMS4yLTEuNyAxLjgtMi41LjQtLjQuOC0uOSAxLjItMS4zLjMtLjMuNi0uNiAxLS45LjQtLjQuOS0uOCAxLjMtMS4xLjQtLjMuNy0uNiAxLjEtLjguMS0uMS4zLS4yLjQtLjNMNDk4LjcgMjM5YzgtNS4zIDE4LjUtNS4zIDI2LjUgMGwyNTQuMSAxNjkuMWMuMS4xLjMuMi40LjNsMS4xLjggMS40IDEuMWMuMy4zLjYuNiAxIC45LjQuNC44LjggMS4yIDEuMy43LjggMS4zIDEuNiAxLjggMi41LjIuNC41LjcuNyAxLjEuMy41LjYgMSAuOCAxLjYuMi40LjQuOC41IDEuMi4yLjYuNCAxLjIuNiAxLjcuMS40LjMuOC40IDEuMi4yLjcuMyAxLjMuNCAyIC4xLjMuMS43LjIgMSAuMSAxIC4yIDIuMS4yIDMuMVY1OTd6bS0yNTQuMSAxMy4zdjExMS4zTDcyMy4xIDU5N2wtODMuNi01NS44ek0yODEuOCA0NzIuNnY3OS44bDU5LjgtMzkuOXpNNTEyIDQ1Ni4xbC04NC41IDU2LjQgODQuNSA1Ni40IDg0LjUtNTYuNHpNNzIzLjEgNDI4TDUzNS45IDMwMy40djExMS4zbDEwMy42IDY5LjF6TTM4NC41IDU0MS4yTDMwMC45IDU5N2wxODcuMiAxMjQuNlY2MTAuM2wtMTAzLjYtNjkuMXoifX1dfSxuYW1lOiJjb2RlcGVuLWNpcmNsZSIsdGhlbWU6Im91dGxpbmVkIn0sWTA9RzAsWDA9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246WTB9KSl9LFEwPXQuZm9yd2FyZFJlZihYMCksSjA9UTAscTA9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkxMS43IDM4NS4zbC0uMy0xLjVjLS4yLTEtLjMtMS45LS42LTIuOS0uMi0uNi0uNC0xLjEtLjUtMS43LS4zLS44LS41LTEuNy0uOS0yLjUtLjItLjYtLjUtMS4xLS44LTEuNy0uNC0uOC0uOC0xLjUtMS4yLTIuMy0uMy0uNS0uNi0xLjEtMS0xLjYtLjgtMS4yLTEuNy0yLjQtMi42LTMuNi0uNS0uNi0xLjEtMS4zLTEuNy0xLjktLjQtLjUtLjktLjktMS40LTEuMy0uNi0uNi0xLjMtMS4xLTEuOS0xLjYtLjUtLjQtMS0uOC0xLjYtMS4yLS4yLS4xLS40LS4zLS42LS40TDUzMS4xIDExNy44YTM0LjMgMzQuMyAwIDAwLTM4LjEgMEwxMjcuMyAzNjEuM2MtLjIuMS0uNC4zLS42LjQtLjUuNC0xIC44LTEuNiAxLjItLjcuNS0xLjMgMS4xLTEuOSAxLjYtLjUuNC0uOS45LTEuNCAxLjMtLjYuNi0xLjIgMS4yLTEuNyAxLjktMSAxLjEtMS44IDIuMy0yLjYgMy42LS4zLjUtLjcgMS0xIDEuNi0uNC43LS44IDEuNS0xLjIgMi4zLS4zLjUtLjUgMS4xLS44IDEuNy0uMy44LS42IDEuNy0uOSAyLjUtLjIuNi0uNCAxLjEtLjUgMS43LS4yLjktLjQgMS45LS42IDIuOWwtLjMgMS41Yy0uMiAxLjUtLjMgMy0uMyA0LjV2MjQzLjVjMCAxLjUuMSAzIC4zIDQuNWwuMyAxLjUuNiAyLjljLjIuNi4zIDEuMS41IDEuNy4zLjkuNiAxLjcuOSAyLjUuMi42LjUgMS4xLjggMS43LjQuOC43IDEuNSAxLjIgMi4zLjMuNS42IDEuMSAxIDEuNi41LjcuOSAxLjQgMS41IDIuMWwxLjIgMS41Yy41LjYgMS4xIDEuMyAxLjcgMS45LjQuNS45LjkgMS40IDEuMy42LjYgMS4zIDEuMSAxLjkgMS42LjUuNCAxIC44IDEuNiAxLjIuMi4xLjQuMy42LjRMNDkzIDkwNS43YzUuNiAzLjggMTIuMyA1LjggMTkuMSA1LjggNi42IDAgMTMuMy0xLjkgMTkuMS01LjhsMzY1LjYtMjQzLjVjLjItLjEuNC0uMy42LS40LjUtLjQgMS0uOCAxLjYtMS4yLjctLjUgMS4zLTEuMSAxLjktMS42LjUtLjQuOS0uOSAxLjQtMS4zLjYtLjYgMS4yLTEuMiAxLjctMS45bDEuMi0xLjUgMS41LTIuMWMuMy0uNS43LTEgMS0xLjYuNC0uOC44LTEuNSAxLjItMi4zLjMtLjUuNS0xLjEuOC0xLjcuMy0uOC42LTEuNy45LTIuNS4yLS41LjQtMS4xLjUtMS43LjMtLjkuNC0xLjkuNi0yLjlsLjMtMS41Yy4yLTEuNS4zLTMgLjMtNC41VjM4OS44Yy0uMy0xLjUtLjQtMy0uNi00LjV6TTU0Ni40IDIxMC41bDI2OS40IDE3OS40LTEyMC4zIDgwLjQtMTQ5LTk5LjZWMjEwLjV6bS02OC44IDB2MTYwLjJsLTE0OSA5OS42LTEyMC4zLTgwLjQgMjY5LjMtMTc5LjR6TTE4MC43IDQ1NC4xbDg2IDU3LjUtODYgNTcuNXYtMTE1em0yOTYuOSAzNTguNUwyMDguMyA2MzMuMmwxMjAuMy04MC40IDE0OSA5OS42djE2MC4yek01MTIgNTkyLjhsLTEyMS42LTgxLjJMNTEyIDQzMC4zbDEyMS42IDgxLjJMNTEyIDU5Mi44em0zNC40IDIxOS44VjY1Mi40bDE0OS05OS42IDEyMC4zIDgwLjQtMjY5LjMgMTc5LjR6TTg0My4zIDU2OWwtODYtNTcuNSA4Ni01Ny41djExNXoifX1dfSxuYW1lOiJjb2RlcGVuIix0aGVtZToib3V0bGluZWQifSxlND1xMCx0ND1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjplNH0pKX0sbjQ9dC5mb3J3YXJkUmVmKHQ0KSxyND1uNCxhND17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNzIzLjEgNDI4TDUzNS45IDMwMy40djExMS4zbDEwMy42IDY5LjF6TTUxMiA0NTYuMWwtODQuNSA1Ni40IDg0LjUgNTYuNCA4NC41LTU2LjR6bTIzLjkgMTU0LjJ2MTExLjNMNzIzLjEgNTk3bC04My42LTU1Ljh6bS0xNTEuNC02OS4xTDMwMC45IDU5N2wxODcuMiAxMjQuNlY2MTAuM2wtMTAzLjYtNjkuMXpNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tOTAgNDg1YzAgMS4xLS4xIDIuMS0uMiAzLjEgMCAuNC0uMS43LS4yIDFhMTQuMTYgMTQuMTYgMCAwMS0uOCAzLjJjLS4yLjYtLjQgMS4yLS42IDEuNy0uMi40LS40LjgtLjUgMS4yLS4zLjUtLjUgMS4xLS44IDEuNi0uMi40LS40LjctLjcgMS4xLS4zLjUtLjcgMS0xIDEuNS0uMy40LS41LjctLjggMS0uNC40LS44LjktMS4yIDEuMy0uMy4zLS42LjYtMSAuOS0uNC40LS45LjgtMS40IDEuMS0uNC4zLS43LjYtMS4xLjgtLjEuMS0uMy4yLS40LjNMNTI1LjIgNzg2Yy00IDIuNy04LjYgNC0xMy4yIDQtNC43IDAtOS4zLTEuNC0xMy4zLTRMMjQ0LjYgNjE2LjljLS4xLS4xLS4zLS4yLS40LS4zbC0xLjEtLjhjLS41LS40LS45LS43LTEuMy0xLjEtLjMtLjMtLjYtLjYtMS0uOS0uNC0uNC0uOC0uOC0xLjItMS4zYTcgNyAwIDAxLS44LTFjLS40LS41LS43LTEtMS0xLjUtLjItLjQtLjUtLjctLjctMS4xLS4zLS41LS42LTEuMS0uOC0xLjYtLjItLjQtLjQtLjgtLjUtMS4yLS4yLS42LS40LTEuMi0uNi0xLjctLjEtLjQtLjMtLjgtLjQtMS4yLS4yLS43LS4zLTEuMy0uNC0yLS4xLS4zLS4xLS43LS4yLTEtLjEtMS0uMi0yLjEtLjItMy4xVjQyNy45YzAtMSAuMS0yLjEuMi0zLjEuMS0uMy4xLS43LjItMWExNC4xNiAxNC4xNiAwIDAxLjgtMy4yYy4yLS42LjQtMS4yLjYtMS43LjItLjQuNC0uOC41LTEuMi4yLS41LjUtMS4xLjgtMS42LjItLjQuNC0uNy43LTEuMS42LS45IDEuMi0xLjcgMS44LTIuNS40LS40LjgtLjkgMS4yLTEuMy4zLS4zLjYtLjYgMS0uOS40LS40LjktLjggMS4zLTEuMS40LS4zLjctLjYgMS4xLS44LjEtLjEuMy0uMi40LS4zTDQ5OC43IDIzOWM4LTUuMyAxOC41LTUuMyAyNi41IDBsMjU0LjEgMTY5LjFjLjEuMS4zLjIuNC4zbDEuMS44IDEuNCAxLjFjLjMuMy42LjYgMSAuOS40LjQuOC44IDEuMiAxLjMuNy44IDEuMyAxLjYgMS44IDIuNS4yLjQuNS43LjcgMS4xLjMuNS42IDEgLjggMS42LjIuNC40LjguNSAxLjIuMi42LjQgMS4yLjYgMS43LjEuNC4zLjguNCAxLjIuMi43LjMgMS4zLjQgMiAuMS4zLjEuNy4yIDEgLjEgMSAuMiAyLjEuMiAzLjFWNTk3em0tNDcuOC00NC42di03OS44bC01OS44IDM5Ljl6bS00NjAuNC03OS44djc5LjhsNTkuOC0zOS45em0yMDYuMy01Ny45VjMwMy40TDMwMC45IDQyOGw4My42IDU1Ljh6In19XX0sbmFtZToiY29kZXBlbi1zcXVhcmUiLHRoZW1lOiJmaWxsZWQifSxvND1hNCxpND1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpvNH0pKX0sbDQ9dC5mb3J3YXJkUmVmKGk0KSxzND1sNCxjND17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiIwIDAgMTAyNCAxMDI0Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMjc1IDI4MWMxOS45IDAgMzYtMTYuMSAzNi0zNlYzNmMwLTE5LjktMTYuMS0zNi0zNi0zNnMtMzYgMTYuMS0zNiAzNnYyMDljMCAxOS45IDE2LjEgMzYgMzYgMzZ6bTYxMyAxNDRINzY4YzAtMzkuOC0zMi4yLTcyLTcyLTcySDIwMGMtMzkuOCAwLTcyIDMyLjItNzIgNzJ2MjQ4YzAgMy40LjIgNi43LjcgOS45LS41IDctLjcgMTQtLjcgMjEuMSAwIDE3Ni43IDE0My4zIDMyMCAzMjAgMzIwIDE2MC4xIDAgMjkyLjctMTE3LjUgMzE2LjMtMjcxSDg4OGMzOS44IDAgNzItMzIuMiA3Mi03MlY0OTdjMC0zOS44LTMyLjItNzItNzItNzJ6TTY5NiA2ODFoLTEuMWMuNyA3LjYgMS4xIDE1LjIgMS4xIDIzIDAgMTM3LTExMSAyNDgtMjQ4IDI0OFMyMDAgODQxIDIwMCA3MDRjMC03LjguNC0xNS40IDEuMS0yM0gyMDBWNDI1aDQ5NnYyNTZ6bTE5Mi04SDc3NlY0OTdoMTEydjE3NnpNNjEzIDI4MWMxOS45IDAgMzYtMTYuMSAzNi0zNlYzNmMwLTE5LjktMTYuMS0zNi0zNi0zNnMtMzYgMTYuMS0zNiAzNnYyMDljMCAxOS45IDE2LjEgMzYgMzYgMzZ6bS0xNzAgMGMxOS45IDAgMzYtMTYuMSAzNi0zNlYzNmMwLTE5LjktMTYuMS0zNi0zNi0zNnMtMzYgMTYuMS0zNiAzNnYyMDljMCAxOS45IDE2LjEgMzYgMzYgMzZ6In19XX0sbmFtZToiY29mZmVlIix0aGVtZToib3V0bGluZWQifSx1ND1jNCxkND1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjp1NH0pKX0sZjQ9dC5mb3J3YXJkUmVmKGQ0KSx2ND1mNCxoND1lKDY4ODY5KSxtND17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMTgwIDE3NmgtNjBjLTQuNCAwLTggMy42LTggOHY2NTZjMCA0LjQgMy42IDggOCA4aDYwYzQuNCAwIDgtMy42IDgtOFYxODRjMC00LjQtMy42LTgtOC04em03MjQgMGgtNjBjLTQuNCAwLTggMy42LTggOHY2NTZjMCA0LjQgMy42IDggOCA4aDYwYzQuNCAwIDgtMy42IDgtOFYxODRjMC00LjQtMy42LTgtOC04ek03ODUuMyA1MDQuM0w2NTcuNyA0MDMuNmE3LjIzIDcuMjMgMCAwMC0xMS43IDUuN1Y0NzZIMzc4di02Mi44YzAtNi03LTkuNC0xMS43LTUuN0wyMzguNyA1MDguM2E3LjE0IDcuMTQgMCAwMDAgMTEuM2wxMjcuNSAxMDAuOGM0LjcgMy43IDExLjcuNCAxMS43LTUuN1Y1NDhoMjY4djYyLjhjMCA2IDcgOS40IDExLjcgNS43bDEyNy41LTEwMC44YzMuOC0yLjkgMy44LTguNS4yLTExLjR6In19XX0sbmFtZToiY29sdW1uLXdpZHRoIix0aGVtZToib3V0bGluZWQifSxnND1tNCxwND1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpnNH0pKX0seTQ9dC5mb3J3YXJkUmVmKHA0KSxDND15NCxiND1lKDcxMjU1KSxTND17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6TTMyNy4zIDcwMi40Yy0yIC45LTQuNCAwLTUuMy0yLjEtLjQtMS0uNC0yLjIgMC0zLjJsOTguNy0yMjUuNSAxMzIuMSAxMzIuMS0yMjUuNSA5OC43em0zNzUuMS0zNzUuMWwtOTguNyAyMjUuNS0xMzIuMS0xMzIuMUw2OTcuMSAzMjJjMi0uOSA0LjQgMCA1LjMgMi4xLjQgMSAuNCAyLjEgMCAzLjJ6In19XX0sbmFtZToiY29tcGFzcyIsdGhlbWU6ImZpbGxlZCJ9LE80PVM0LHg0PWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOk80fSkpfSx3ND10LmZvcndhcmRSZWYoeDQpLEU0PXc0LFQ0PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6bTE5OC40LTU4OC4xYTMyIDMyIDAgMDAtMjQuNS41TDQxNC45IDQxNSAyOTYuNCA2ODZjLTMuNiA4LjItMy42IDE3LjUgMCAyNS43IDMuNCA3LjggOS43IDEzLjkgMTcuNyAxNyAzLjggMS41IDcuNyAyLjIgMTEuNyAyLjIgNC40IDAgOC43LS45IDEyLjgtMi43bDI3MS0xMTguNiAxMTguNS0yNzFhMzIuMDYgMzIuMDYgMCAwMC0xNy43LTQyLjd6TTU3Ni44IDUzNC40bDI2LjIgMjYuMi00Mi40IDQyLjQtMjYuMi0yNi4yTDM4MCA2NDQuNCA0NDcuNSA0OTAgNDIyIDQ2NC40bDQyLjQtNDIuNCAyNS41IDI1LjVMNjQ0LjQgMzgwbC02Ny42IDE1NC40ek00NjQuNCA0MjJMNDIyIDQ2NC40bDI1LjUgMjUuNiA4Ni45IDg2LjggMjYuMiAyNi4yIDQyLjQtNDIuNC0yNi4yLTI2LjItODYuOC04Ni45eiJ9fV19LG5hbWU6ImNvbXBhc3MiLHRoZW1lOiJvdXRsaW5lZCJ9LE00PVQ0LFI0PWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOk00fSkpfSxJND10LmZvcndhcmRSZWYoUjQpLFA0PUk0LHo0PXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiAxNDBjLTIwNS40IDAtMzcyIDE2Ni42LTM3MiAzNzJzMTY2LjYgMzcyIDM3MiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzItMTY2LjYtMzcyLTM3Mi0zNzJ6TTMyNy42IDcwMS43Yy0yIC45LTQuNCAwLTUuMy0yLjEtLjQtMS0uNC0yLjIgMC0zLjJMNDIxIDQ3MC45IDU1My4xIDYwM2wtMjI1LjUgOTguN3ptMzc1LjEtMzc1LjFMNjA0IDU1Mi4xIDQ3MS45IDQyMGwyMjUuNS05OC43YzItLjkgNC40IDAgNS4zIDIuMS40IDEgLjQgMi4xIDAgMy4yeiIsZmlsbDp2fX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0zMjIuMyA2OTYuNGMtLjQgMS0uNCAyLjIgMCAzLjIuOSAyLjEgMy4zIDMgNS4zIDIuMUw1NTMuMSA2MDMgNDIxIDQ3MC45bC05OC43IDIyNS41em0zNzUuMS0zNzUuMUw0NzEuOSA0MjAgNjA0IDU1Mi4xbDk4LjctMjI1LjVjLjQtMS4xLjQtMi4yIDAtMy4yLS45LTIuMS0zLjMtMy01LjMtMi4xeiIsZmlsbDpmfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6IixmaWxsOmZ9fV19fSxuYW1lOiJjb21wYXNzIix0aGVtZToidHdvdG9uZSJ9LEY0PXo0LEE0PWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkY0fSkpfSxMND10LmZvcndhcmRSZWYoQTQpLFo0PUw0LCQ0PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoiZGVmcyIsYXR0cnM6e30sY2hpbGRyZW46W3t0YWc6InN0eWxlIixhdHRyczp7fX1dfSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTMyNiA2NjRIMTA0Yy04LjggMC0xNiA3LjItMTYgMTZ2NDhjMCA4LjggNy4yIDE2IDE2IDE2aDE3NHYxNzZjMCA4LjggNy4yIDE2IDE2IDE2aDQ4YzguOCAwIDE2LTcuMiAxNi0xNlY2OTZjMC0xNy43LTE0LjMtMzItMzItMzJ6bTE2LTU3NmgtNDhjLTguOCAwLTE2IDcuMi0xNiAxNnYxNzZIMTA0Yy04LjggMC0xNiA3LjItMTYgMTZ2NDhjMCA4LjggNy4yIDE2IDE2IDE2aDIyMmMxNy43IDAgMzItMTQuMyAzMi0zMlYxMDRjMC04LjgtNy4yLTE2LTE2LTE2em01NzggNTc2SDY5OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MjI0YzAgOC44IDcuMiAxNiAxNiAxNmg0OGM4LjggMCAxNi03LjIgMTYtMTZWNzQ0aDE3NGM4LjggMCAxNi03LjIgMTYtMTZ2LTQ4YzAtOC44LTcuMi0xNi0xNi0xNnptMC0zODRINzQ2VjEwNGMwLTguOC03LjItMTYtMTYtMTZoLTQ4Yy04LjggMC0xNiA3LjItMTYgMTZ2MjI0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDIyMmM4LjggMCAxNi03LjIgMTYtMTZ2LTQ4YzAtOC44LTcuMi0xNi0xNi0xNnoifX1dfSxuYW1lOiJjb21wcmVzcyIsdGhlbWU6Im91dGxpbmVkIn0sSDQ9JDQsRDQ9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246SDR9KSl9LEI0PXQuZm9yd2FyZFJlZihENCksVjQ9QjQsTjQ9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJkZWZzIixhdHRyczp7fSxjaGlsZHJlbjpbe3RhZzoic3R5bGUiLGF0dHJzOnt9fV19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMzAxLjMgNDk2LjdjLTIzLjggMC00MC4yLTEwLjUtNDEuNi0yNi45SDIwNWMuOSA0My40IDM2LjkgNzAuMyA5My45IDcwLjMgNTkuMSAwIDk1LTI4LjQgOTUtNzUuNSAwLTM1LjgtMjAtNTUuOS02NC41LTY0LjVsLTI5LjEtNS42Yy0yMy44LTQuNy0zMy44LTExLjktMzMuOC0yNC4yIDAtMTUgMTMuMy0yNC41IDMzLjQtMjQuNSAyMC4xIDAgMzUuMyAxMS4xIDM2LjYgMjdoNTNjLS45LTQxLjctMzcuNS03MC4zLTkwLjMtNzAuMy01NC40IDAtODkuNyAyOC45LTg5LjcgNzMgMCAzNS41IDIxLjIgNTggNjIuNSA2NS44bDI5LjcgNS45YzI1LjggNS4yIDM1LjYgMTEuOSAzNS42IDI0LjQuMSAxNC43LTE0LjUgMjUuMS0zNiAyNS4xeiJ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkyOCAxNDBIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjQ5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmgzODB2MTEySDMwNGMtOC44IDAtMTYgNy4yLTE2IDE2djQ4YzAgNC40IDMuNiA4IDggOGg0MzJjNC40IDAgOC0zLjYgOC04di00OGMwLTguOC03LjItMTYtMTYtMTZINTQ4VjcwMGgzODBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTcyYzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNDg4SDEzNlYyMTJoNzUydjQxNnoifX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04MjguNSA0ODYuN2gtOTUuOFYzMDguNWgtNTcuNFY1MzRoMTUzLjJ6bS0yOTguNiA1My40YzE0LjEgMCAyNy4yLTIgMzkuMS01LjhsMTMuMyAyMC4zaDUzLjNMNjA3LjkgNTExYzIxLjEtMjAgMzMtNTEuMSAzMy04OS44IDAtNzMuMy00My4zLTExOC44LTExMC45LTExOC44cy0xMTEuMiA0NS4zLTExMS4yIDExOC44Yy0uMSA3My43IDQzIDExOC45IDExMS4xIDExOC45em0wLTE5MGMzMS42IDAgNTIuNyAyNy43IDUyLjcgNzEuMSAwIDE2LjctMy42IDMwLjYtMTAgNDAuNWwtNS4yLTYuOWgtNDguOEw1NDIgNDkxYy0zLjkuOS04IDEuNC0xMi4yIDEuNC0zMS43IDAtNTIuOC0yNy41LTUyLjgtNzEuMi4xLTQzLjYgMjEuMi03MS4xIDUyLjktNzEuMXoifX1dfSxuYW1lOiJjb25zb2xlLXNxbCIsdGhlbWU6Im91dGxpbmVkIn0sajQ9TjQsVTQ9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246ajR9KSl9LFc0PXQuZm9yd2FyZFJlZihVNCksazQ9VzQsSzQ9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkyOCAyMjRINzY4di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZINTQ4di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZIMzI4di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjU3NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg4MzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjU2YzAtMTcuNy0xNC4zLTMyLTMyLTMyek02NjEgNzM2aC00My45Yy00LjIgMC03LjYtMy4zLTcuOS03LjUtMy44LTUwLjYtNDYtOTAuNS05Ny4yLTkwLjVzLTkzLjQgNDAtOTcuMiA5MC41Yy0uMyA0LjItMy43IDcuNS03LjkgNy41SDM2M2E4IDggMCAwMS04LTguNGMyLjgtNTMuMyAzMi05OS43IDc0LjYtMTI2LjFhMTExLjggMTExLjggMCAwMS0yOS4xLTc1LjVjMC02MS45IDQ5LjktMTEyIDExMS40LTExMiA2MS41IDAgMTExLjQgNTAuMSAxMTEuNCAxMTIgMCAyOS4xLTExIDU1LjUtMjkuMSA3NS41IDQyLjcgMjYuNSA3MS44IDcyLjggNzQuNiAxMjYuMS40IDQuNi0zLjIgOC40LTcuOCA4LjR6TTUxMiA0NzRjLTI4LjUgMC01MS43IDIzLjMtNTEuNyA1MnMyMy4yIDUyIDUxLjcgNTJjMjguNSAwIDUxLjctMjMuMyA1MS43LTUycy0yMy4yLTUyLTUxLjctNTJ6In19XX0sbmFtZToiY29udGFjdHMiLHRoZW1lOiJmaWxsZWQifSxfND1LNCxHND1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpfNH0pKX0sWTQ9dC5mb3J3YXJkUmVmKEc0KSxYND1ZNCxRND17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTk0LjMgNjAxLjVhMTExLjggMTExLjggMCAwMDI5LjEtNzUuNWMwLTYxLjktNDkuOS0xMTItMTExLjQtMTEycy0xMTEuNCA1MC4xLTExMS40IDExMmMwIDI5LjEgMTEgNTUuNSAyOS4xIDc1LjVhMTU4LjA5IDE1OC4wOSAwIDAwLTc0LjYgMTI2LjEgOCA4IDAgMDA4IDguNEg0MDdjNC4yIDAgNy42LTMuMyA3LjktNy41IDMuOC01MC42IDQ2LTkwLjUgOTcuMi05MC41czkzLjQgNDAgOTcuMiA5MC41Yy4zIDQuMiAzLjcgNy41IDcuOSA3LjVINjYxYTggOCAwIDAwOC04LjRjLTIuOC01My4zLTMyLTk5LjctNzQuNy0xMjYuMXpNNTEyIDU3OGMtMjguNSAwLTUxLjctMjMuMy01MS43LTUyczIzLjItNTIgNTEuNy01MiA1MS43IDIzLjMgNTEuNyA1Mi0yMy4yIDUyLTUxLjcgNTJ6bTQxNi0zNTRINzY4di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZINTQ4di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZIMzI4di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjU3NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg4MzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjU2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNTY4SDEzNlYyOTZoMTIwdjU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2aDE0OHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmgxNDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZoMTIwdjQ5NnoifX1dfSxuYW1lOiJjb250YWN0cyIsdGhlbWU6Im91dGxpbmVkIn0sSjQ9UTQscTQ9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246SjR9KSl9LGUyPXQuZm9yd2FyZFJlZihxNCksdDI9ZTIsbjI9e2ljb246ZnVuY3Rpb24oZix2KXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNDYwLjMgNTI2YTUxLjcgNTIgMCAxMDEwMy40IDAgNTEuNyA1MiAwIDEwLTEwMy40IDB6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTc2OCAzNTJjMCA0LjQtMy42IDgtOCA4aC01NmMtNC40IDAtOC0zLjYtOC04di01Nkg1NDh2NTZjMCA0LjQtMy42IDgtOCA4aC01NmMtNC40IDAtOC0zLjYtOC04di01NkgzMjh2NTZjMCA0LjQtMy42IDgtOCA4aC01NmMtNC40IDAtOC0zLjYtOC04di01NkgxMzZ2NDk2aDc1MlYyOTZINzY4djU2ek02NjEgNzM2aC00My44Yy00LjIgMC03LjYtMy4zLTcuOS03LjUtMy44LTUwLjUtNDYtOTAuNS05Ny4yLTkwLjVzLTkzLjQgMzkuOS05Ny4yIDkwLjVjLS4zIDQuMi0zLjcgNy41LTcuOSA3LjVoLTQzLjlhOCA4IDAgMDEtOC04LjRjMi44LTUzLjMgMzEuOS05OS42IDc0LjYtMTI2LjEtMTguMS0yMC0yOS4xLTQ2LjQtMjkuMS03NS41IDAtNjEuOSA0OS45LTExMiAxMTEuNC0xMTJzMTExLjQgNTAuMSAxMTEuNCAxMTJjMCAyOS4xLTExIDU1LjYtMjkuMSA3NS41IDQyLjcgMjYuNCA3MS45IDcyLjggNzQuNyAxMjYuMWE4IDggMCAwMS04IDguNHoiLGZpbGw6dn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTk0LjMgNjAxLjVhMTExLjggMTExLjggMCAwMDI5LjEtNzUuNWMwLTYxLjktNDkuOS0xMTItMTExLjQtMTEycy0xMTEuNCA1MC4xLTExMS40IDExMmMwIDI5LjEgMTEgNTUuNSAyOS4xIDc1LjVhMTU4LjA5IDE1OC4wOSAwIDAwLTc0LjYgMTI2LjEgOCA4IDAgMDA4IDguNEg0MDdjNC4yIDAgNy42LTMuMyA3LjktNy41IDMuOC01MC42IDQ2LTkwLjUgOTcuMi05MC41czkzLjQgNDAgOTcuMiA5MC41Yy4zIDQuMiAzLjcgNy41IDcuOSA3LjVINjYxYTggOCAwIDAwOC04LjRjLTIuOC01My4zLTMyLTk5LjctNzQuNy0xMjYuMXpNNTEyIDU3OGMtMjguNSAwLTUxLjctMjMuMy01MS43LTUyczIzLjItNTIgNTEuNy01MiA1MS43IDIzLjMgNTEuNyA1Mi0yMy4yIDUyLTUxLjcgNTJ6IixmaWxsOmZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkyOCAyMjRINzY4di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZINTQ4di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZIMzI4di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjU3NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg4MzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjU2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNTY4SDEzNlYyOTZoMTIwdjU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2aDE0OHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmgxNDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZoMTIwdjQ5NnoiLGZpbGw6Zn19XX19LG5hbWU6ImNvbnRhY3RzIix0aGVtZToidHdvdG9uZSJ9LHIyPW4yLGEyPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOnIyfSkpfSxvMj10LmZvcndhcmRSZWYoYTIpLGkyPW8yLGwyPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04MzIgNjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY1MjljMC0uNi40LTEgMS0xaDIxOS4zbDUuMiAyNC43QzM5Ny42IDcwOC41IDQ1MC44IDc1MiA1MTIgNzUyczExNC40LTQzLjUgMTI2LjQtMTAzLjNsNS4yLTI0LjdIODYzYy42IDAgMSAuNCAxIDFWOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6TTcxMiA0OTNjMCA0LjQtMy42IDgtOCA4SDMyMGMtNC40IDAtOC0zLjYtOC04di00OGMwLTQuNCAzLjYtOCA4LThoMzg0YzQuNCAwIDggMy42IDggOHY0OHptMC0xNjBjMCA0LjQtMy42IDgtOCA4SDMyMGMtNC40IDAtOC0zLjYtOC04di00OGMwLTQuNCAzLjYtOCA4LThoMzg0YzQuNCAwIDggMy42IDggOHY0OHptMTUxIDM1NEg2OTQuMWMtMTEuNiAzMi44LTMyIDYyLjMtNTkuMSA4NC43LTM0LjUgMjguNi03OC4yIDQ0LjMtMTIzIDQ0LjNzLTg4LjUtMTUuOC0xMjMtNDQuM2ExOTQuMDIgMTk0LjAyIDAgMDEtNTkuMS04NC43SDE2MWMtLjYgMC0xLS40LTEtMXYyNDJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjY4NmMwIC42LS40IDEtMSAxeiJ9fV19LG5hbWU6ImNvbnRhaW5lciIsdGhlbWU6ImZpbGxlZCJ9LHMyPWwyLGMyPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOnMyfSkpfSx1Mj10LmZvcndhcmRSZWYoYzIpLGQyPXUyLGYyPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04MzIgNjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgODI0SDIzMlY2ODdoOTcuOWMxMS42IDMyLjggMzIgNjIuMyA1OS4xIDg0LjcgMzQuNSAyOC41IDc4LjIgNDQuMyAxMjMgNDQuM3M4OC41LTE1LjcgMTIzLTQ0LjNjMjcuMS0yMi40IDQ3LjUtNTEuOSA1OS4xLTg0LjdINzkydi02M0g2NDMuNmwtNS4yIDI0LjdDNjI2LjQgNzA4LjUgNTczLjIgNzUyIDUxMiA3NTJzLTExNC40LTQzLjUtMTI2LjUtMTAzLjNsLTUuMi0yNC43SDIzMlYxMzZoNTYwdjc1MnpNMzIwIDM0MWgzODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThIMzIwYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4em0wIDE2MGgzODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThIMzIwYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4eiJ9fV19LG5hbWU6ImNvbnRhaW5lciIsdGhlbWU6Im91dGxpbmVkIn0sdjI9ZjIsaDI9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246djJ9KSl9LG0yPXQuZm9yd2FyZFJlZihoMiksZzI9bTIscDI9e2ljb246ZnVuY3Rpb24oZix2KXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNjM1IDc3MS43Yy0zNC41IDI4LjYtNzguMiA0NC4zLTEyMyA0NC4zcy04OC41LTE1LjgtMTIzLTQ0LjNhMTk0LjAyIDE5NC4wMiAwIDAxLTU5LjEtODQuN0gyMzJ2MjAxaDU2MFY2ODdoLTk3LjljLTExLjYgMzIuOC0zMiA2Mi4zLTU5LjEgODQuN3oiLGZpbGw6dn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMzIwIDUwMWgzODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThIMzIwYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4eiIsZmlsbDpmfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04MzIgNjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgODI0SDIzMlY2ODdoOTcuOWMxMS42IDMyLjggMzIgNjIuMyA1OS4xIDg0LjcgMzQuNSAyOC41IDc4LjIgNDQuMyAxMjMgNDQuM3M4OC41LTE1LjcgMTIzLTQ0LjNjMjcuMS0yMi40IDQ3LjUtNTEuOSA1OS4xLTg0LjdINzkydjIwMXptMC0yNjRINjQzLjZsLTUuMiAyNC43QzYyNi40IDcwOC41IDU3My4yIDc1MiA1MTIgNzUycy0xMTQuNC00My41LTEyNi41LTEwMy4zbC01LjItMjQuN0gyMzJWMTM2aDU2MHY0ODh6IixmaWxsOmZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTMyMCAzNDFoMzg0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04SDMyMGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOHoiLGZpbGw6Zn19XX19LG5hbWU6ImNvbnRhaW5lciIsdGhlbWU6InR3b3RvbmUifSx5Mj1wMixDMj1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjp5Mn0pKX0sYjI9dC5mb3J3YXJkUmVmKEMyKSxTMj1iMixPMj17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek00MDQgNjgzdjc3YzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOHYtNzdjLTQxLjctMTMuNi03Mi01Mi44LTcyLTk5czMwLjMtODUuNSA3Mi05OVYyNjRjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHYyMjFjNDEuNyAxMy42IDcyIDUyLjggNzIgOTlzLTMwLjMgODUuNS03MiA5OXptMjc5LjYtMTQzLjljLjIgMCAuMy0uMS40LS4xdjIyMWMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LThWNTM5Yy4yIDAgLjMuMS40LjEtNDItMTMuNC03Mi40LTUyLjctNzIuNC05OS4xIDAtNDYuNCAzMC40LTg1LjcgNzIuNC05OS4xLS4yIDAtLjMuMS0uNC4xdi03N2MwLTQuNCAzLjYtOCA4LThoNDhjNC40IDAgOCAzLjYgOCA4djc3Yy0uMiAwLS4zLS4xLS40LS4xIDQyIDEzLjQgNzIuNCA1Mi43IDcyLjQgOTkuMSAwIDQ2LjQtMzAuNCA4NS43LTcyLjQgOTkuMXpNNjE2IDQ0MGEzNiAzNiAwIDEwNzIgMCAzNiAzNiAwIDEwLTcyIDB6TTQwMy40IDU2Ni41bC0xLjUtMi40YzAtLjEtLjEtLjEtLjEtLjJsLS45LTEuMmMtLjEtLjEtLjItLjItLjItLjMtMS0xLjMtMi0yLjUtMy4yLTMuNmwtLjItLjJjLS40LS40LS44LS44LTEuMi0xLjEtLjgtLjgtMS43LTEuNS0yLjYtMi4xaC0uMWwtMS4yLS45Yy0uMS0uMS0uMy0uMi0uNC0uMy0xLjItLjgtMi41LTEuNi0zLjktMi4yLS4yLS4xLS41LS4yLS43LS40LS40LS4yLS43LS4zLTEuMS0uNS0uMy0uMS0uNy0uMy0xLS40LS41LS4yLTEtLjQtMS41LS41LS40LS4xLS45LS4zLTEuMy0uNGwtLjktLjMtMS40LS4zYy0uMi0uMS0uNS0uMS0uNy0uMi0uNy0uMS0xLjQtLjMtMi4xLS40LS4yIDAtLjQgMC0uNi0uMS0uNi0uMS0xLjEtLjEtMS43LS4yLS4yIDAtLjQgMC0uNy0uMS0uOCAwLTEuNS0uMS0yLjMtLjFzLTEuNSAwLTIuMy4xYy0uMiAwLS40IDAtLjcuMS0uNiAwLTEuMi4xLTEuNy4yLS4yIDAtLjQgMC0uNi4xLS43LjEtMS40LjItMi4xLjQtLjIuMS0uNS4xLS43LjJsLTEuNC4zLS45LjNjLS40LjEtLjkuMy0xLjMuNC0uNS4yLTEgLjQtMS41LjUtLjMuMS0uNy4zLTEgLjQtLjQuMi0uNy4zLTEuMS41LS4yLjEtLjUuMi0uNy40LTEuMy43LTIuNiAxLjQtMy45IDIuMi0uMS4xLS4zLjItLjQuM2wtMS4yLjloLS4xYy0uOS43LTEuOCAxLjQtMi42IDIuMS0uNC40LS44LjctMS4yIDEuMWwtLjIuMmE1NC44IDU0LjggMCAwMC0zLjIgMy42Yy0uMS4xLS4yLjItLjIuM2wtLjkgMS4yYzAgLjEtLjEuMS0uMS4ybC0xLjUgMi40Yy0uMS4yLS4yLjMtLjMuNS0yLjcgNS4xLTQuMyAxMC45LTQuMyAxN3MxLjYgMTIgNC4zIDE3Yy4xLjIuMi4zLjMuNWwxLjUgMi40YzAgLjEuMS4xLjEuMmwuOSAxLjJjLjEuMS4yLjIuMi4zIDEgMS4zIDIgMi41IDMuMiAzLjZsLjIuMmMuNC40LjguOCAxLjIgMS4xLjguOCAxLjcgMS41IDIuNiAyLjFoLjFsMS4yLjljLjEuMS4zLjIuNC4zIDEuMi44IDIuNSAxLjYgMy45IDIuMi4yLjEuNS4yLjcuNC40LjIuNy4zIDEuMS41LjMuMS43LjMgMSAuNC41LjIgMSAuNCAxLjUuNS40LjEuOS4zIDEuMy40bC45LjMgMS40LjNjLjIuMS41LjEuNy4yLjcuMSAxLjQuMyAyLjEuNC4yIDAgLjQgMCAuNi4xLjYuMSAxLjEuMSAxLjcuMi4yIDAgLjQgMCAuNy4xLjggMCAxLjUuMSAyLjMuMXMxLjUgMCAyLjMtLjFjLjIgMCAuNCAwIC43LS4xLjYgMCAxLjItLjEgMS43LS4yLjIgMCAuNCAwIC42LS4xLjctLjEgMS40LS4yIDIuMS0uNC4yLS4xLjUtLjEuNy0uMmwxLjQtLjMuOS0uM2MuNC0uMS45LS4zIDEuMy0uNC41LS4yIDEtLjQgMS41LS41LjMtLjEuNy0uMyAxLS40LjQtLjIuNy0uMyAxLjEtLjUuMi0uMS41LS4yLjctLjQgMS4zLS43IDIuNi0xLjQgMy45LTIuMi4xLS4xLjMtLjIuNC0uM2wxLjItLjloLjFjLjktLjcgMS44LTEuNCAyLjYtMi4xLjQtLjQuOC0uNyAxLjItMS4xbC4yLS4yYzEuMS0xLjEgMi4yLTIuNCAzLjItMy42LjEtLjEuMi0uMi4yLS4zbC45LTEuMmMwLS4xLjEtLjEuMS0uMmwxLjUtMi40Yy4xLS4yLjItLjMuMy0uNSAyLjctNS4xIDQuMy0xMC45IDQuMy0xN3MtMS42LTEyLTQuMy0xN2MtLjEtLjItLjItLjQtLjMtLjV6In19XX0sbmFtZToiY29udHJvbCIsdGhlbWU6ImZpbGxlZCJ9LHgyPU8yLHcyPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOngyfSkpfSxFMj10LmZvcndhcmRSZWYodzIpLFQyPUUyLE0yPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2ek0zNDAgNjgzdjc3YzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LTh2LTc3Yy0xMC4xIDMuMy0yMC44IDUtMzIgNXMtMjEuOS0xLjgtMzItNXptNjQtMTk4VjI2NGMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2MjIxYzEwLjEtMy4zIDIwLjgtNSAzMi01czIxLjkgMS44IDMyIDV6bS02NCAxOThjMTAuMSAzLjMgMjAuOCA1IDMyIDVzMjEuOS0xLjggMzItNWM0MS44LTEzLjUgNzItNTIuNyA3Mi05OXMtMzAuMi04NS41LTcyLTk5Yy0xMC4xLTMuMy0yMC44LTUtMzItNXMtMjEuOSAxLjgtMzIgNWMtNDEuOCAxMy41LTcyIDUyLjctNzIgOTlzMzAuMiA4NS41IDcyIDk5em0uMS0xMTUuN2MuMy0uNi43LTEuMiAxLTEuOHYtLjFsMS4yLTEuOGMuMS0uMi4yLS4zLjMtLjUuMy0uNS43LS45IDEtMS40LjEtLjEuMi0uMy4zLS40LjUtLjYuOS0xLjEgMS40LTEuNmwuMy0uMyAxLjItMS4yLjQtLjRjLjUtLjUgMS0uOSAxLjYtMS40LjYtLjUgMS4xLS45IDEuNy0xLjMuMi0uMS4zLS4yLjUtLjMuNS0uMy45LS43IDEuNC0xIC4xLS4xLjMtLjIuNC0uMy42LS40IDEuMi0uNyAxLjktMS4xLjEtLjEuMy0uMS40LS4yLjUtLjMgMS0uNSAxLjYtLjhsLjYtLjNjLjctLjMgMS4zLS42IDItLjguNy0uMyAxLjQtLjUgMi4xLS43LjItLjEuNC0uMS42LS4yLjYtLjIgMS4xLS4zIDEuNy0uNC4yIDAgLjMtLjEuNS0uMS43LS4yIDEuNS0uMyAyLjItLjQuMiAwIC4zIDAgLjUtLjEuNi0uMSAxLjItLjEgMS44LS4yaC42Yy44IDAgMS41LS4xIDIuMy0uMXMxLjUgMCAyLjMuMWguNmMuNiAwIDEuMi4xIDEuOC4yLjIgMCAuMyAwIC41LjEuNy4xIDEuNS4yIDIuMi40LjIgMCAuMy4xLjUuMS42LjEgMS4yLjMgMS43LjQuMi4xLjQuMS42LjIuNy4yIDEuNC40IDIuMS43LjcuMiAxLjMuNSAyIC44bC42LjNjLjUuMiAxLjEuNSAxLjYuOC4xLjEuMy4xLjQuMi42LjMgMS4zLjcgMS45IDEuMS4xLjEuMy4yLjQuMy41LjMgMSAuNiAxLjQgMSAuMi4xLjMuMi41LjMuNi40IDEuMi45IDEuNyAxLjNzMS4xLjkgMS42IDEuNGwuNC40IDEuMiAxLjIuMy4zYy41LjUgMSAxLjEgMS40IDEuNi4xLjEuMi4zLjMuNC40LjQuNy45IDEgMS40LjEuMi4yLjMuMy41bDEuMiAxLjhzMCAuMS4xLjFhMzYuMTggMzYuMTggMCAwMTUuMSAxOC41YzAgNi0xLjUgMTEuNy00LjEgMTYuNy0uMy42LS43IDEuMi0xIDEuOCAwIDAgMCAuMS0uMS4xbC0xLjIgMS44Yy0uMS4yLS4yLjMtLjMuNS0uMy41LS43LjktMSAxLjQtLjEuMS0uMi4zLS4zLjQtLjUuNi0uOSAxLjEtMS40IDEuNmwtLjMuMy0xLjIgMS4yLS40LjRjLS41LjUtMSAuOS0xLjYgMS40LS42LjUtMS4xLjktMS43IDEuMy0uMi4xLS4zLjItLjUuMy0uNS4zLS45LjctMS40IDEtLjEuMS0uMy4yLS40LjMtLjYuNC0xLjIuNy0xLjkgMS4xLS4xLjEtLjMuMS0uNC4yLS41LjMtMSAuNS0xLjYuOGwtLjYuM2MtLjcuMy0xLjMuNi0yIC44LS43LjMtMS40LjUtMi4xLjctLjIuMS0uNC4xLS42LjItLjYuMi0xLjEuMy0xLjcuNC0uMiAwLS4zLjEtLjUuMS0uNy4yLTEuNS4zLTIuMi40LS4yIDAtLjMgMC0uNS4xLS42LjEtMS4yLjEtMS44LjJoLS42Yy0uOCAwLTEuNS4xLTIuMy4xcy0xLjUgMC0yLjMtLjFoLS42Yy0uNiAwLTEuMi0uMS0xLjgtLjItLjIgMC0uMyAwLS41LS4xLS43LS4xLTEuNS0uMi0yLjItLjQtLjIgMC0uMy0uMS0uNS0uMS0uNi0uMS0xLjItLjMtMS43LS40LS4yLS4xLS40LS4xLS42LS4yLS43LS4yLTEuNC0uNC0yLjEtLjctLjctLjItMS4zLS41LTItLjhsLS42LS4zYy0uNS0uMi0xLjEtLjUtMS42LS44LS4xLS4xLS4zLS4xLS40LS4yLS42LS4zLTEuMy0uNy0xLjktMS4xLS4xLS4xLS4zLS4yLS40LS4zLS41LS4zLTEtLjYtMS40LTEtLjItLjEtLjMtLjItLjUtLjMtLjYtLjQtMS4yLS45LTEuNy0xLjNzLTEuMS0uOS0xLjYtMS40bC0uNC0uNC0xLjItMS4yLS4zLS4zYy0uNS0uNS0xLTEuMS0xLjQtMS42LS4xLS4xLS4yLS4zLS4zLS40LS40LS40LS43LS45LTEtMS40LS4xLS4yLS4yLS4zLS4zLS41bC0xLjItMS44di0uMWMtLjQtLjYtLjctMS4yLTEtMS44LTIuNi01LTQuMS0xMC43LTQuMS0xNi43czEuNS0xMS43IDQuMS0xNi43ek02MjAgNTM5djIyMWMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04VjUzOWMtMTAuMSAzLjMtMjAuOCA1LTMyIDVzLTIxLjktMS44LTMyLTV6bTY0LTE5OHYtNzdjMC00LjQtMy42LTgtOC04aC00OGMtNC40IDAtOCAzLjYtOCA4djc3YzEwLjEtMy4zIDIwLjgtNSAzMi01czIxLjkgMS44IDMyIDV6bS02NCAxOThjMTAuMSAzLjMgMjAuOCA1IDMyIDVzMjEuOS0xLjggMzItNWM0MS44LTEzLjUgNzItNTIuNyA3Mi05OXMtMzAuMi04NS41LTcyLTk5Yy0xMC4xLTMuMy0yMC44LTUtMzItNXMtMjEuOSAxLjgtMzIgNWMtNDEuOCAxMy41LTcyIDUyLjctNzIgOTlzMzAuMiA4NS41IDcyIDk5em0uMS0xMTUuN2MuMy0uNi43LTEuMiAxLTEuOHYtLjFsMS4yLTEuOGMuMS0uMi4yLS4zLjMtLjUuMy0uNS43LS45IDEtMS40LjEtLjEuMi0uMy4zLS40LjUtLjYuOS0xLjEgMS40LTEuNmwuMy0uMyAxLjItMS4yLjQtLjRjLjUtLjUgMS0uOSAxLjYtMS40LjYtLjUgMS4xLS45IDEuNy0xLjMuMi0uMS4zLS4yLjUtLjMuNS0uMy45LS43IDEuNC0xIC4xLS4xLjMtLjIuNC0uMy42LS40IDEuMi0uNyAxLjktMS4xLjEtLjEuMy0uMS40LS4yLjUtLjMgMS0uNSAxLjYtLjhsLjYtLjNjLjctLjMgMS4zLS42IDItLjguNy0uMyAxLjQtLjUgMi4xLS43LjItLjEuNC0uMS42LS4yLjYtLjIgMS4xLS4zIDEuNy0uNC4yIDAgLjMtLjEuNS0uMS43LS4yIDEuNS0uMyAyLjItLjQuMiAwIC4zIDAgLjUtLjEuNi0uMSAxLjItLjEgMS44LS4yaC42Yy44IDAgMS41LS4xIDIuMy0uMXMxLjUgMCAyLjMuMWguNmMuNiAwIDEuMi4xIDEuOC4yLjIgMCAuMyAwIC41LjEuNy4xIDEuNS4yIDIuMi40LjIgMCAuMy4xLjUuMS42LjEgMS4yLjMgMS43LjQuMi4xLjQuMS42LjIuNy4yIDEuNC40IDIuMS43LjcuMiAxLjMuNSAyIC44bC42LjNjLjUuMiAxLjEuNSAxLjYuOC4xLjEuMy4xLjQuMi42LjMgMS4zLjcgMS45IDEuMS4xLjEuMy4yLjQuMy41LjMgMSAuNiAxLjQgMSAuMi4xLjMuMi41LjMuNi40IDEuMi45IDEuNyAxLjNzMS4xLjkgMS42IDEuNGwuNC40IDEuMiAxLjIuMy4zYy41LjUgMSAxLjEgMS40IDEuNi4xLjEuMi4zLjMuNC40LjQuNy45IDEgMS40LjEuMi4yLjMuMy41bDEuMiAxLjh2LjFhMzYuMTggMzYuMTggMCAwMTUuMSAxOC41YzAgNi0xLjUgMTEuNy00LjEgMTYuNy0uMy42LS43IDEuMi0xIDEuOHYuMWwtMS4yIDEuOGMtLjEuMi0uMi4zLS4zLjUtLjMuNS0uNy45LTEgMS40LS4xLjEtLjIuMy0uMy40LS41LjYtLjkgMS4xLTEuNCAxLjZsLS4zLjMtMS4yIDEuMi0uNC40Yy0uNS41LTEgLjktMS42IDEuNC0uNi41LTEuMS45LTEuNyAxLjMtLjIuMS0uMy4yLS41LjMtLjUuMy0uOS43LTEuNCAxLS4xLjEtLjMuMi0uNC4zLS42LjQtMS4yLjctMS45IDEuMS0uMS4xLS4zLjEtLjQuMi0uNS4zLTEgLjUtMS42LjhsLS42LjNjLS43LjMtMS4zLjYtMiAuOC0uNy4zLTEuNC41LTIuMS43LS4yLjEtLjQuMS0uNi4yLS42LjItMS4xLjMtMS43LjQtLjIgMC0uMy4xLS41LjEtLjcuMi0xLjUuMy0yLjIuNC0uMiAwLS4zIDAtLjUuMS0uNi4xLTEuMi4xLTEuOC4yaC0uNmMtLjggMC0xLjUuMS0yLjMuMXMtMS41IDAtMi4zLS4xaC0uNmMtLjYgMC0xLjItLjEtMS44LS4yLS4yIDAtLjMgMC0uNS0uMS0uNy0uMS0xLjUtLjItMi4yLS40LS4yIDAtLjMtLjEtLjUtLjEtLjYtLjEtMS4yLS4zLTEuNy0uNC0uMi0uMS0uNC0uMS0uNi0uMi0uNy0uMi0xLjQtLjQtMi4xLS43LS43LS4yLTEuMy0uNS0yLS44bC0uNi0uM2MtLjUtLjItMS4xLS41LTEuNi0uOC0uMS0uMS0uMy0uMS0uNC0uMi0uNi0uMy0xLjMtLjctMS45LTEuMS0uMS0uMS0uMy0uMi0uNC0uMy0uNS0uMy0xLS42LTEuNC0xLS4yLS4xLS4zLS4yLS41LS4zLS42LS40LTEuMi0uOS0xLjctMS4zcy0xLjEtLjktMS42LTEuNGwtLjQtLjQtMS4yLTEuMi0uMy0uM2MtLjUtLjUtMS0xLjEtMS40LTEuNi0uMS0uMS0uMi0uMy0uMy0uNC0uNC0uNC0uNy0uOS0xLTEuNC0uMS0uMi0uMi0uMy0uMy0uNWwtMS4yLTEuOHYtLjFjLS40LS42LS43LTEuMi0xLTEuOC0yLjYtNS00LjEtMTAuNy00LjEtMTYuN3MxLjUtMTEuNyA0LjEtMTYuN3oifX1dfSxuYW1lOiJjb250cm9sIix0aGVtZToib3V0bGluZWQifSxSMj1NMixJMj1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpSMn0pKX0sUDI9dC5mb3J3YXJkUmVmKEkyKSx6Mj1QMixGMj17aWNvbjpmdW5jdGlvbihmLHYpe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2eiIsZmlsbDpmfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02MTYgNDQwYTM2IDM2IDAgMTA3MiAwIDM2IDM2IDAgMTAtNzIgMHpNMzQwLjQgNjAxLjVsMS41IDIuNGMwIC4xLjEuMS4xLjJsLjkgMS4yYy4xLjEuMi4yLjIuMyAxIDEuMyAyIDIuNSAzLjIgMy42bC4yLjJjLjQuNC44LjggMS4yIDEuMS44LjggMS43IDEuNSAyLjYgMi4xaC4xbDEuMi45Yy4xLjEuMy4yLjQuMyAxLjIuOCAyLjUgMS42IDMuOSAyLjIuMi4xLjUuMi43LjQuNC4yLjcuMyAxLjEuNS4zLjEuNy4zIDEgLjQuNS4yIDEgLjQgMS41LjUuNC4xLjkuMyAxLjMuNGwuOS4zIDEuNC4zYy4yLjEuNS4xLjcuMi43LjEgMS40LjMgMi4xLjQuMiAwIC40IDAgLjYuMS42LjEgMS4xLjEgMS43LjIuMiAwIC40IDAgLjcuMS44IDAgMS41LjEgMi4zLjFzMS41IDAgMi4zLS4xYy4yIDAgLjQgMCAuNy0uMS42IDAgMS4yLS4xIDEuNy0uMi4yIDAgLjQgMCAuNi0uMS43LS4xIDEuNC0uMiAyLjEtLjQuMi0uMS41LS4xLjctLjJsMS40LS4zLjktLjNjLjQtLjEuOS0uMyAxLjMtLjQuNS0uMiAxLS40IDEuNS0uNS4zLS4xLjctLjMgMS0uNC40LS4yLjctLjMgMS4xLS41LjItLjEuNS0uMi43LS40IDEuMy0uNyAyLjYtMS40IDMuOS0yLjIuMS0uMS4zLS4yLjQtLjNsMS4yLS45aC4xYy45LS43IDEuOC0xLjQgMi42LTIuMS40LS40LjgtLjcgMS4yLTEuMWwuMi0uMmMxLjEtMS4xIDIuMi0yLjQgMy4yLTMuNi4xLS4xLjItLjIuMi0uM2wuOS0xLjJjMC0uMS4xLS4xLjEtLjJsMS41LTIuNGMuMS0uMi4yLS4zLjMtLjUgMi43LTUuMSA0LjMtMTAuOSA0LjMtMTdzLTEuNi0xMi00LjMtMTdjLS4xLS4yLS4yLS40LS4zLS41bC0xLjUtMi40YzAtLjEtLjEtLjEtLjEtLjJsLS45LTEuMmMtLjEtLjEtLjItLjItLjItLjMtMS0xLjMtMi0yLjUtMy4yLTMuNmwtLjItLjJjLS40LS40LS44LS44LTEuMi0xLjEtLjgtLjgtMS43LTEuNS0yLjYtMi4xaC0uMWwtMS4yLS45Yy0uMS0uMS0uMy0uMi0uNC0uMy0xLjItLjgtMi41LTEuNi0zLjktMi4yLS4yLS4xLS41LS4yLS43LS40LS40LS4yLS43LS4zLTEuMS0uNS0uMy0uMS0uNy0uMy0xLS40LS41LS4yLTEtLjQtMS41LS41LS40LS4xLS45LS4zLTEuMy0uNGwtLjktLjMtMS40LS4zYy0uMi0uMS0uNS0uMS0uNy0uMi0uNy0uMS0xLjQtLjMtMi4xLS40LS4yIDAtLjQgMC0uNi0uMS0uNi0uMS0xLjEtLjEtMS43LS4yLS4yIDAtLjQgMC0uNy0uMS0uOCAwLTEuNS0uMS0yLjMtLjFzLTEuNSAwLTIuMy4xYy0uMiAwLS40IDAtLjcuMS0uNiAwLTEuMi4xLTEuNy4yLS4yIDAtLjQgMC0uNi4xLS43LjEtMS40LjItMi4xLjQtLjIuMS0uNS4xLS43LjJsLTEuNC4zLS45LjNjLS40LjEtLjkuMy0xLjMuNC0uNS4yLTEgLjQtMS41LjUtLjMuMS0uNy4zLTEgLjQtLjQuMi0uNy4zLTEuMS41LS4yLjEtLjUuMi0uNy40LTEuMy43LTIuNiAxLjQtMy45IDIuMi0uMS4xLS4zLjItLjQuM2wtMS4yLjloLS4xYy0uOS43LTEuOCAxLjQtMi42IDIuMS0uNC40LS44LjctMS4yIDEuMWwtLjIuMmE1NC44IDU0LjggMCAwMC0zLjIgMy42Yy0uMS4xLS4yLjItLjIuM2wtLjkgMS4yYzAgLjEtLjEuMS0uMS4ybC0xLjUgMi40Yy0uMS4yLS4yLjMtLjMuNS0yLjcgNS4xLTQuMyAxMC45LTQuMyAxN3MxLjYgMTIgNC4zIDE3Yy4xLjIuMi4zLjMuNXoiLGZpbGw6dn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMTg0IDg0MGg2NTZWMTg0SDE4NHY2NTZ6bTQzNi40LTQ5OS4xYy0uMiAwLS4zLjEtLjQuMXYtNzdjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHY3N2MtLjIgMC0uMy0uMS0uNC0uMSA0MiAxMy40IDcyLjQgNTIuNyA3Mi40IDk5LjEgMCA0Ni40LTMwLjQgODUuNy03Mi40IDk5LjEuMiAwIC4zLS4xLjQtLjF2MjIxYzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOFY1MzljLjIgMCAuMy4xLjQuMS00Mi0xMy40LTcyLjQtNTIuNy03Mi40LTk5LjEgMC00Ni40IDMwLjQtODUuNyA3Mi40LTk5LjF6TTM0MCA0ODVWMjY0YzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh2MjIxYzQxLjcgMTMuNiA3MiA1Mi44IDcyIDk5cy0zMC4zIDg1LjUtNzIgOTl2NzdjMCA0LjQtMy42IDgtOCA4aC00OGMtNC40IDAtOC0zLjYtOC04di03N2MtNDEuNy0xMy42LTcyLTUyLjgtNzItOTlzMzAuMy04NS41IDcyLTk5eiIsZmlsbDp2fX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0zNDAgNjgzdjc3YzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LTh2LTc3YzQxLjctMTMuNSA3Mi01Mi44IDcyLTk5cy0zMC4zLTg1LjQtNzItOTlWMjY0YzAtNC40LTMuNi04LTgtOGgtNDhjLTQuNCAwLTggMy42LTggOHYyMjFjLTQxLjcgMTMuNS03MiA1Mi44LTcyIDk5czMwLjMgODUuNCA3MiA5OXptLjEtMTE2Yy4xLS4yLjItLjMuMy0uNWwxLjUtMi40YzAtLjEuMS0uMS4xLS4ybC45LTEuMmMwLS4xLjEtLjIuMi0uMyAxLTEuMiAyLjEtMi41IDMuMi0zLjZsLjItLjJjLjQtLjQuOC0uNyAxLjItMS4xLjgtLjcgMS43LTEuNCAyLjYtMi4xaC4xbDEuMi0uOWMuMS0uMS4zLS4yLjQtLjMgMS4zLS44IDIuNi0xLjUgMy45LTIuMi4yLS4yLjUtLjMuNy0uNC40LS4yLjctLjMgMS4xLS41LjMtLjEuNy0uMyAxLS40LjUtLjEgMS0uMyAxLjUtLjUuNC0uMS45LS4zIDEuMy0uNGwuOS0uMyAxLjQtLjNjLjItLjEuNS0uMS43LS4yLjctLjIgMS40LS4zIDIuMS0uNC4yLS4xLjQtLjEuNi0uMS41LS4xIDEuMS0uMiAxLjctLjIuMy0uMS41LS4xLjctLjEuOC0uMSAxLjUtLjEgMi4zLS4xczEuNS4xIDIuMy4xYy4zLjEuNS4xLjcuMS42LjEgMS4xLjEgMS43LjIuMi4xLjQuMS42LjEuNy4xIDEuNC4zIDIuMS40LjIuMS41LjEuNy4ybDEuNC4zLjkuM2MuNC4xLjkuMyAxLjMuNC41LjEgMSAuMyAxLjUuNS4zLjEuNy4zIDEgLjQuNC4yLjcuMyAxLjEuNS4yLjIuNS4zLjcuNCAxLjQuNiAyLjcgMS40IDMuOSAyLjIuMS4xLjMuMi40LjNsMS4yLjloLjFjLjkuNiAxLjggMS4zIDIuNiAyLjEuNC4zLjguNyAxLjIgMS4xbC4yLjJjMS4yIDEuMSAyLjIgMi4zIDMuMiAzLjYgMCAuMS4xLjIuMi4zbC45IDEuMmMwIC4xLjEuMS4xLjJsMS41IDIuNEEzNi4wMyAzNi4wMyAwIDAxNDA4IDU4NGMwIDYuMS0xLjYgMTEuOS00LjMgMTctLjEuMi0uMi4zLS4zLjVsLTEuNSAyLjRjMCAuMS0uMS4xLS4xLjJsLS45IDEuMmMwIC4xLS4xLjItLjIuMy0xIDEuMi0yLjEgMi41LTMuMiAzLjZsLS4yLjJjLS40LjQtLjguNy0xLjIgMS4xLS44LjctMS43IDEuNC0yLjYgMi4xaC0uMWwtMS4yLjljLS4xLjEtLjMuMi0uNC4zLTEuMy44LTIuNiAxLjUtMy45IDIuMi0uMi4yLS41LjMtLjcuNC0uNC4yLS43LjMtMS4xLjUtLjMuMS0uNy4zLTEgLjQtLjUuMS0xIC4zLTEuNS41LS40LjEtLjkuMy0xLjMuNGwtLjkuMy0xLjQuM2MtLjIuMS0uNS4xLS43LjItLjcuMi0xLjQuMy0yLjEuNC0uMi4xLS40LjEtLjYuMS0uNS4xLTEuMS4yLTEuNy4yLS4zLjEtLjUuMS0uNy4xLS44LjEtMS41LjEtMi4zLjFzLTEuNS0uMS0yLjMtLjFjLS4zLS4xLS41LS4xLS43LS4xLS42LS4xLTEuMS0uMS0xLjctLjItLjItLjEtLjQtLjEtLjYtLjEtLjctLjEtMS40LS4zLTIuMS0uNC0uMi0uMS0uNS0uMS0uNy0uMmwtMS40LS4zLS45LS4zYy0uNC0uMS0uOS0uMy0xLjMtLjQtLjUtLjEtMS0uMy0xLjUtLjUtLjMtLjEtLjctLjMtMS0uNC0uNC0uMi0uNy0uMy0xLjEtLjUtLjItLjItLjUtLjMtLjctLjQtMS40LS42LTIuNy0xLjQtMy45LTIuMi0uMS0uMS0uMy0uMi0uNC0uM2wtMS4yLS45aC0uMWMtLjktLjYtMS44LTEuMy0yLjYtMi4xLS40LS4zLS44LS43LTEuMi0xLjFsLS4yLS4yYy0xLjItMS4xLTIuMi0yLjMtMy4yLTMuNiAwLS4xLS4xLS4yLS4yLS4zbC0uOS0xLjJjMC0uMS0uMS0uMS0uMS0uMmwtMS41LTIuNGMtLjEtLjItLjItLjMtLjMtLjUtMi43LTUtNC4zLTEwLjktNC4zLTE3czEuNi0xMS45IDQuMy0xN3ptMjgwLjMtMjcuOWMtLjEgMC0uMi0uMS0uNC0uMXYyMjFjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOFY1MzljLS4xIDAtLjIuMS0uNC4xIDQyLTEzLjQgNzIuNC01Mi43IDcyLjQtOTkuMSAwLTQ2LjQtMzAuNC04NS43LTcyLjQtOTkuMS4xIDAgLjIuMS40LjF2LTc3YzAtNC40LTMuNi04LTgtOGgtNDhjLTQuNCAwLTggMy42LTggOHY3N2MuMSAwIC4yLS4xLjQtLjEtNDIgMTMuNC03Mi40IDUyLjctNzIuNCA5OS4xIDAgNDYuNCAzMC40IDg1LjcgNzIuNCA5OS4xek02NTIgNDA0YzE5LjkgMCAzNiAxNi4xIDM2IDM2cy0xNi4xIDM2LTM2IDM2LTM2LTE2LjEtMzYtMzYgMTYuMS0zNiAzNi0zNnoiLGZpbGw6Zn19XX19LG5hbWU6ImNvbnRyb2wiLHRoZW1lOiJ0d290b25lIn0sQTI9RjIsTDI9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246QTJ9KSl9LFoyPXQuZm9yd2FyZFJlZihMMiksJDI9WjIsSDI9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTgzMiA2NEgyOTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNDk2djY4OGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04Vjk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyek03MDQgMTkySDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NTMwLjdjMCA4LjUgMy40IDE2LjYgOS40IDIyLjZsMTczLjMgMTczLjNjMi4yIDIuMiA0LjcgNCA3LjQgNS41djEuOWg0LjJjMy41IDEuMyA3LjIgMiAxMSAySDcwNGMxNy43IDAgMzItMTQuMyAzMi0zMlYyMjRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTM4MiA4OTZoLS4yTDIzMiA3NDYuMnYtLjJoMTUwdjE1MHoifX1dfSxuYW1lOiJjb3B5Iix0aGVtZToiZmlsbGVkIn0sRDI9SDIsQjI9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246RDJ9KSl9LFYyPXQuZm9yd2FyZFJlZihCMiksTjI9VjIsajI9ZSg1NzEzMiksVTI9e2ljb246ZnVuY3Rpb24oZix2KXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMjMyIDcwNmgxNDJjMjIuMSAwIDQwIDE3LjkgNDAgNDB2MTQyaDI1MFYyNjRIMjMydjQ0MnoiLGZpbGw6dn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODMyIDY0SDI5NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg0OTZ2Njg4YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LThWOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6IixmaWxsOmZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTcwNCAxOTJIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY1MzAuN2MwIDguNSAzLjQgMTYuNiA5LjQgMjIuNmwxNzMuMyAxNzMuM2MyLjIgMi4yIDQuNyA0IDcuNCA1LjV2MS45aDQuMmMzLjUgMS4zIDcuMiAyIDExIDJINzA0YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjIyNGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMzUwIDg1Ni4yTDI2My45IDc3MEgzNTB2ODYuMnpNNjY0IDg4OEg0MTRWNzQ2YzAtMjIuMS0xNy45LTQwLTQwLTQwSDIzMlYyNjRoNDMydjYyNHoiLGZpbGw6Zn19XX19LG5hbWU6ImNvcHkiLHRoZW1lOiJ0d290b25lIn0sVzI9VTIsazI9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246VzJ9KSl9LEsyPXQuZm9yd2FyZFJlZihrMiksXzI9SzIsRzI9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em01LjQgNjcwYy0xMTAgMC0xNzMuNC03My4yLTE3My40LTE5NC45di01Mi4zQzM0NCAzNjQuMiA0MDcuNCAyOTAgNTE3LjMgMjkwYzk0LjMgMCAxNjIuNyA2MC43IDE2Mi43IDE0Ny40IDAgMi42LTIuMSA0LjctNC43IDQuN2gtNTYuN2MtNC4yIDAtNy42LTMuMi04LTcuNC00LTQ5LjUtNDAtODMuNC05My04My40LTY1LjMgMC0xMDIuMSA0OC41LTEwMi4xIDEzNS41djUyLjZjMCA4NS43IDM2LjkgMTMzLjYgMTAyLjEgMTMzLjYgNTIuOCAwIDg4LjctMzEuNyA5My03Ny44LjQtNC4xIDMuOC03LjMgOC03LjNoNTYuOGMyLjYgMCA0LjcgMi4xIDQuNyA0LjcgMCA4Mi42LTY4LjcgMTQxLjQtMTYyLjcgMTQxLjR6In19XX0sbmFtZToiY29weXJpZ2h0LWNpcmNsZSIsdGhlbWU6ImZpbGxlZCJ9LFkyPUcyLFgyPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOlkyfSkpfSxRMj10LmZvcndhcmRSZWYoWDIpLEoyPVEyLHEyPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6bTUuNi01MzIuN2M1MyAwIDg5IDMzLjggOTMgODMuNC4zIDQuMiAzLjggNy40IDggNy40aDU2LjdjMi42IDAgNC43LTIuMSA0LjctNC43IDAtODYuNy02OC40LTE0Ny40LTE2Mi43LTE0Ny40QzQwNy40IDI5MCAzNDQgMzY0LjIgMzQ0IDQ4Ni44djUyLjNDMzQ0IDY2MC44IDQwNy40IDczNCA1MTcuMyA3MzRjOTQgMCAxNjIuNy01OC44IDE2Mi43LTE0MS40IDAtMi42LTIuMS00LjctNC43LTQuN2gtNTYuOGMtNC4yIDAtNy42IDMuMi04IDcuMy00LjIgNDYuMS00MC4xIDc3LjgtOTMgNzcuOC02NS4zIDAtMTAyLjEtNDcuOS0xMDIuMS0xMzMuNnYtNTIuNmMuMS04NyAzNy0xMzUuNSAxMDIuMi0xMzUuNXoifX1dfSxuYW1lOiJjb3B5cmlnaHQtY2lyY2xlIix0aGVtZToib3V0bGluZWQifSxlMz1xMix0Mz1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjplM30pKX0sbjM9dC5mb3J3YXJkUmVmKHQzKSxyMz1uMyxhMz17aWNvbjpmdW5jdGlvbihmLHYpe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6IixmaWxsOmZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiAxNDBjLTIwNS40IDAtMzcyIDE2Ni42LTM3MiAzNzJzMTY2LjYgMzcyIDM3MiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzItMTY2LjYtMzcyLTM3Mi0zNzJ6bTUuNSA1MzNjNTIuOSAwIDg4LjgtMzEuNyA5My03Ny44LjQtNC4xIDMuOC03LjMgOC03LjNoNTYuOGMyLjYgMCA0LjcgMi4xIDQuNyA0LjcgMCA4Mi42LTY4LjcgMTQxLjQtMTYyLjcgMTQxLjRDNDA3LjQgNzM0IDM0NCA2NjAuOCAzNDQgNTM5LjF2LTUyLjNDMzQ0IDM2NC4yIDQwNy40IDI5MCA1MTcuMyAyOTBjOTQuMyAwIDE2Mi43IDYwLjcgMTYyLjcgMTQ3LjQgMCAyLjYtMi4xIDQuNy00LjcgNC43aC01Ni43Yy00LjIgMC03LjctMy4yLTgtNy40LTQtNDkuNi00MC04My40LTkzLTgzLjQtNjUuMiAwLTEwMi4xIDQ4LjUtMTAyLjIgMTM1LjV2NTIuNmMwIDg1LjcgMzYuOCAxMzMuNiAxMDIuMSAxMzMuNnoiLGZpbGw6dn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTE3LjYgMzUxLjNjNTMgMCA4OSAzMy44IDkzIDgzLjQuMyA0LjIgMy44IDcuNCA4IDcuNGg1Ni43YzIuNiAwIDQuNy0yLjEgNC43LTQuNyAwLTg2LjctNjguNC0xNDcuNC0xNjIuNy0xNDcuNEM0MDcuNCAyOTAgMzQ0IDM2NC4yIDM0NCA0ODYuOHY1Mi4zQzM0NCA2NjAuOCA0MDcuNCA3MzQgNTE3LjMgNzM0Yzk0IDAgMTYyLjctNTguOCAxNjIuNy0xNDEuNCAwLTIuNi0yLjEtNC43LTQuNy00LjdoLTU2LjhjLTQuMiAwLTcuNiAzLjItOCA3LjMtNC4yIDQ2LjEtNDAuMSA3Ny44LTkzIDc3LjgtNjUuMyAwLTEwMi4xLTQ3LjktMTAyLjEtMTMzLjZ2LTUyLjZjLjEtODcgMzctMTM1LjUgMTAyLjItMTM1LjV6IixmaWxsOmZ9fV19fSxuYW1lOiJjb3B5cmlnaHQtY2lyY2xlIix0aGVtZToidHdvdG9uZSJ9LG8zPWEzLGkzPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOm8zfSkpfSxsMz10LmZvcndhcmRSZWYoaTMpLHMzPWwzLGMzPWUoNzM3MSksdTM9e2ljb246ZnVuY3Rpb24oZix2KXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeiIsZmlsbDpmfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgMTQwYy0yMDUuNCAwLTM3MiAxNjYuNi0zNzIgMzcyczE2Ni42IDM3MiAzNzIgMzcyIDM3Mi0xNjYuNiAzNzItMzcyLTE2Ni42LTM3Mi0zNzItMzcyem01LjUgNTMzYzUyLjkgMCA4OC44LTMxLjcgOTMtNzcuOC40LTQuMSAzLjgtNy4zIDgtNy4zaDU2LjhjMi42IDAgNC43IDIuMSA0LjcgNC43IDAgODIuNi02OC43IDE0MS40LTE2Mi43IDE0MS40QzQwNy40IDczNCAzNDQgNjYwLjggMzQ0IDUzOS4xdi01Mi4zQzM0NCAzNjQuMiA0MDcuNCAyOTAgNTE3LjMgMjkwYzk0LjMgMCAxNjIuNyA2MC43IDE2Mi43IDE0Ny40IDAgMi42LTIuMSA0LjctNC43IDQuN2gtNTYuN2MtNC4yIDAtNy43LTMuMi04LTcuNC00LTQ5LjYtNDAtODMuNC05My04My40LTY1LjIgMC0xMDIuMSA0OC41LTEwMi4yIDEzNS41djUyLjZjMCA4NS43IDM2LjggMTMzLjYgMTAyLjEgMTMzLjZ6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxNy42IDM1MS4zYzUzIDAgODkgMzMuOCA5MyA4My40LjMgNC4yIDMuOCA3LjQgOCA3LjRoNTYuN2MyLjYgMCA0LjctMi4xIDQuNy00LjcgMC04Ni43LTY4LjQtMTQ3LjQtMTYyLjctMTQ3LjRDNDA3LjQgMjkwIDM0NCAzNjQuMiAzNDQgNDg2Ljh2NTIuM0MzNDQgNjYwLjggNDA3LjQgNzM0IDUxNy4zIDczNGM5NCAwIDE2Mi43LTU4LjggMTYyLjctMTQxLjQgMC0yLjYtMi4xLTQuNy00LjctNC43aC01Ni44Yy00LjIgMC03LjYgMy4yLTggNy4zLTQuMiA0Ni4xLTQwLjEgNzcuOC05MyA3Ny44LTY1LjMgMC0xMDIuMS00Ny45LTEwMi4xLTEzMy42di01Mi42Yy4xLTg3IDM3LTEzNS41IDEwMi4yLTEzNS41eiIsZmlsbDpmfX1dfX0sbmFtZToiY29weXJpZ2h0Iix0aGVtZToidHdvdG9uZSJ9LGQzPXUzLGYzPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOmQzfSkpfSx2Mz10LmZvcndhcmRSZWYoZjMpLGgzPXYzLG0zPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MjggMTYwSDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYxNjBoODk2VjE5MmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNjQgODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDgzMmMxNy43IDAgMzItMTQuMyAzMi0zMlY0NDBINjR2Mzkyem01NzktMTg0YzAtNC40IDMuNi04IDgtOGgxNjVjNC40IDAgOCAzLjYgOCA4djcyYzAgNC40LTMuNiA4LTggOEg2NTFjLTQuNCAwLTgtMy42LTgtOHYtNzJ6In19XX0sbmFtZToiY3JlZGl0LWNhcmQiLHRoZW1lOiJmaWxsZWQifSxnMz1tMyxwMz1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpnM30pKX0seTM9dC5mb3J3YXJkUmVmKHAzKSxDMz15MyxiMz17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTI4IDE2MEg5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjQwYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDgzMmMxNy43IDAgMzItMTQuMyAzMi0zMlYxOTJjMC0xNy43LTE0LjMtMzItMzItMzJ6bS03OTIgNzJoNzUydjEyMEgxMzZWMjMyem03NTIgNTYwSDEzNlY0NDBoNzUydjM1MnptLTIzNy02NGgxNjVjNC40IDAgOC0zLjYgOC04di03MmMwLTQuNC0zLjYtOC04LThINjUxYy00LjQgMC04IDMuNi04IDh2NzJjMCA0LjQgMy42IDggOCA4eiJ9fV19LG5hbWU6ImNyZWRpdC1jYXJkIix0aGVtZToib3V0bGluZWQifSxTMz1iMyxPMz1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpTM30pKX0seDM9dC5mb3J3YXJkUmVmKE8zKSx3Mz14MyxFMz17aWNvbjpmdW5jdGlvbihmLHYpe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0xMzYgNzkyaDc1MlY0NDBIMTM2djM1MnptNTA3LTE0NGMwLTQuNCAzLjYtOCA4LThoMTY1YzQuNCAwIDggMy42IDggOHY3MmMwIDQuNC0zLjYgOC04IDhINjUxYy00LjQgMC04LTMuNi04LTh2LTcyek0xMzYgMjMyaDc1MnYxMjBIMTM2eiIsZmlsbDp2fX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02NTEgNzI4aDE2NWM0LjQgMCA4LTMuNiA4LTh2LTcyYzAtNC40LTMuNi04LTgtOEg2NTFjLTQuNCAwLTggMy42LTggOHY3MmMwIDQuNCAzLjYgOCA4IDh6IixmaWxsOmZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkyOCAxNjBIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY0MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg4MzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNjMySDEzNlY0NDBoNzUydjM1MnptMC00NDBIMTM2VjIzMmg3NTJ2MTIweiIsZmlsbDpmfX1dfX0sbmFtZToiY3JlZGl0LWNhcmQiLHRoZW1lOiJ0d290b25lIn0sVDM9RTMsTTM9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246VDN9KSl9LFIzPXQuZm9yd2FyZFJlZihNMyksSTM9UjMsUDM9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg5OS42IDI3Ni41TDcwNSAzOTYuNCA1MTguNCAxNDcuNWE4LjA2IDguMDYgMCAwMC0xMi45IDBMMzE5IDM5Ni40IDEyNC4zIDI3Ni41Yy01LjctMy41LTEzLjEgMS4yLTEyLjIgNy45TDE4OC41IDg2NWMxLjEgNy45IDcuOSAxNCAxNiAxNGg2MTUuMWM4IDAgMTQuOS02IDE1LjktMTRsNzYuNC01ODAuNmMuOC02LjctNi41LTExLjQtMTIuMy03Ljl6TTUxMiA3MzQuMmMtNjIuMSAwLTExMi42LTUwLjUtMTEyLjYtMTEyLjZTNDQ5LjkgNTA5IDUxMiA1MDlzMTEyLjYgNTAuNSAxMTIuNiAxMTIuNlM1NzQuMSA3MzQuMiA1MTIgNzM0LjJ6bTAtMTYwLjljLTI2LjYgMC00OC4yIDIxLjYtNDguMiA0OC4zIDAgMjYuNiAyMS42IDQ4LjMgNDguMiA0OC4zczQ4LjItMjEuNiA0OC4yLTQ4LjNjMC0yNi42LTIxLjYtNDguMy00OC4yLTQ4LjN6In19XX0sbmFtZToiY3Jvd24iLHRoZW1lOiJmaWxsZWQifSx6Mz1QMyxGMz1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjp6M30pKX0sQTM9dC5mb3J3YXJkUmVmKEYzKSxMMz1BMyxaMz1lKDU0ODExKSwkMz17aWNvbjpmdW5jdGlvbihmLHYpe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MTEuOSAyODMuOXYuNUw4MzUuNSA4NjVjLTEgOC03LjkgMTQtMTUuOSAxNEgyMDQuNWMtOC4xIDAtMTQuOS02LjEtMTYtMTRsLTc2LjQtNTgwLjZ2LS42IDEuNkwxODguNSA4NjZjMS4xIDcuOSA3LjkgMTQgMTYgMTRoNjE1LjFjOCAwIDE0LjktNiAxNS45LTE0bDc2LjQtNTgwLjZjLjEtLjUuMS0xIDAtMS41eiIsZmlsbDp2fX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik03NzMuNiA4MTAuNmw1My45LTQwOS40LTEzOS44IDg2LjFMNTEyIDI1Mi45IDMzNi4zIDQ4Ny4zbC0xMzkuOC04Ni4xIDUzLjggNDA5LjRoNTIzLjN6bS0zNzQuMi0xODljMC02Mi4xIDUwLjUtMTEyLjYgMTEyLjYtMTEyLjZzMTEyLjYgNTAuNSAxMTIuNiAxMTIuNnYxYzAgNjIuMS01MC41IDExMi42LTExMi42IDExMi42cy0xMTIuNi01MC41LTExMi42LTExMi42di0xeiIsZmlsbDp2fX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNzM0LjJjNjEuOSAwIDExMi4zLTUwLjIgMTEyLjYtMTEyLjF2LS41YzAtNjIuMS01MC41LTExMi42LTExMi42LTExMi42cy0xMTIuNiA1MC41LTExMi42IDExMi42di41Yy4zIDYxLjkgNTAuNyAxMTIuMSAxMTIuNiAxMTIuMXptMC0xNjAuOWMyNi42IDAgNDguMiAyMS42IDQ4LjIgNDguMyAwIDI2LjYtMjEuNiA0OC4zLTQ4LjIgNDguM3MtNDguMi0yMS42LTQ4LjItNDguM2MwLTI2LjYgMjEuNi00OC4zIDQ4LjItNDguM3oiLGZpbGw6Zn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMTg4LjUgODY1YzEuMSA3LjkgNy45IDE0IDE2IDE0aDYxNS4xYzggMCAxNC45LTYgMTUuOS0xNGw3Ni40LTU4MC42di0uNWMuMy02LjQtNi43LTEwLjgtMTIuMy03LjRMNzA1IDM5Ni40IDUxOC40IDE0Ny41YTguMDYgOC4wNiAwIDAwLTEyLjkgMEwzMTkgMzk2LjQgMTI0LjMgMjc2LjVjLTUuNS0zLjQtMTIuNi45LTEyLjIgNy4zdi42TDE4OC41IDg2NXptMTQ3LjgtMzc3LjdMNTEyIDI1Mi45bDE3NS43IDIzNC40IDEzOS44LTg2LjEtNTMuOSA0MDkuNEgyNTAuM2wtNTMuOC00MDkuNCAxMzkuOCA4Ni4xeiIsZmlsbDpmfX1dfX0sbmFtZToiY3Jvd24iLHRoZW1lOiJ0d290b25lIn0sSDM9JDMsRDM9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246SDN9KSl9LEIzPXQuZm9yd2FyZFJlZihEMyksVjM9QjMsTjM9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiAxMjhjLTIxMi4xIDAtMzg0IDE3MS45LTM4NCAzODR2MzYwYzAgMTMuMyAxMC43IDI0IDI0IDI0aDE4NGMzNS4zIDAgNjQtMjguNyA2NC02NFY2MjRjMC0zNS4zLTI4LjctNjQtNjQtNjRIMjAwdi00OGMwLTE3Mi4zIDEzOS43LTMxMiAzMTItMzEyczMxMiAxMzkuNyAzMTIgMzEydjQ4SDY4OGMtMzUuMyAwLTY0IDI4LjctNjQgNjR2MjA4YzAgMzUuMyAyOC43IDY0IDY0IDY0aDE4NGMxMy4zIDAgMjQtMTAuNyAyNC0yNFY1MTJjMC0yMTIuMS0xNzEuOS0zODQtMzg0LTM4NHoifX1dfSxuYW1lOiJjdXN0b21lci1zZXJ2aWNlIix0aGVtZToiZmlsbGVkIn0sajM9TjMsVTM9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246ajN9KSl9LFczPXQuZm9yd2FyZFJlZihVMyksazM9VzMsSzM9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiAxMjhjLTIxMi4xIDAtMzg0IDE3MS45LTM4NCAzODR2MzYwYzAgMTMuMyAxMC43IDI0IDI0IDI0aDE4NGMzNS4zIDAgNjQtMjguNyA2NC02NFY2MjRjMC0zNS4zLTI4LjctNjQtNjQtNjRIMjAwdi00OGMwLTE3Mi4zIDEzOS43LTMxMiAzMTItMzEyczMxMiAxMzkuNyAzMTIgMzEydjQ4SDY4OGMtMzUuMyAwLTY0IDI4LjctNjQgNjR2MjA4YzAgMzUuMyAyOC43IDY0IDY0IDY0aDE4NGMxMy4zIDAgMjQtMTAuNyAyNC0yNFY1MTJjMC0yMTIuMS0xNzEuOS0zODQtMzg0LTM4NHpNMzI4IDYzMnYxOTJIMjAwVjYzMmgxMjh6bTQ5NiAxOTJINjk2VjYzMmgxMjh2MTkyeiJ9fV19LG5hbWU6ImN1c3RvbWVyLXNlcnZpY2UiLHRoZW1lOiJvdXRsaW5lZCJ9LF8zPUszLEczPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOl8zfSkpfSxZMz10LmZvcndhcmRSZWYoRzMpLFgzPVkzLFEzPXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTY5NiA2MzJoMTI4djE5Mkg2OTZ6bS00OTYgMGgxMjh2MTkySDIwMHoiLGZpbGw6dn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDEyOGMtMjEyLjEgMC0zODQgMTcxLjktMzg0IDM4NHYzNjBjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMTg0YzM1LjMgMCA2NC0yOC43IDY0LTY0VjYyNGMwLTM1LjMtMjguNy02NC02NC02NEgyMDB2LTQ4YzAtMTcyLjMgMTM5LjctMzEyIDMxMi0zMTJzMzEyIDEzOS43IDMxMiAzMTJ2NDhINjg4Yy0zNS4zIDAtNjQgMjguNy02NCA2NHYyMDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRoMTg0YzEzLjMgMCAyNC0xMC43IDI0LTI0VjUxMmMwLTIxMi4xLTE3MS45LTM4NC0zODQtMzg0ek0zMjggNjMydjE5MkgyMDBWNjMyaDEyOHptNDk2IDE5Mkg2OTZWNjMyaDEyOHYxOTJ6IixmaWxsOmZ9fV19fSxuYW1lOiJjdXN0b21lci1zZXJ2aWNlIix0aGVtZToidHdvdG9uZSJ9LEozPVEzLHEzPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkozfSkpfSxlOD10LmZvcndhcmRSZWYocTMpLHQ4PWU4LG44PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0xMTIgNDc2aDE2MHY3MkgxMTJ6bTMyMCAwaDE2MHY3Mkg0MzJ6bTMyMCAwaDE2MHY3Mkg3NTJ6In19XX0sbmFtZToiZGFzaCIsdGhlbWU6Im91dGxpbmVkIn0scjg9bjgsYTg9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246cjh9KSl9LG84PXQuZm9yd2FyZFJlZihhOCksaTg9bzgsbDg9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkyNC44IDM4NS42YTQ0Ni43IDQ0Ni43IDAgMDAtOTYtMTQyLjQgNDQ2LjcgNDQ2LjcgMCAwMC0xNDIuNC05NkM2MzEuMSAxMjMuOCA1NzIuNSAxMTIgNTEyIDExMnMtMTE5LjEgMTEuOC0xNzQuNCAzNS4yYTQ0Ni43IDQ0Ni43IDAgMDAtMTQyLjQgOTYgNDQ2LjcgNDQ2LjcgMCAwMC05NiAxNDIuNEM3NS44IDQ0MC45IDY0IDQ5OS41IDY0IDU2MGMwIDEzMi43IDU4LjMgMjU3LjcgMTU5LjkgMzQzLjFsMS43IDEuNGM1LjggNC44IDEzLjEgNy41IDIwLjYgNy41aDUzMS43YzcuNSAwIDE0LjgtMi43IDIwLjYtNy41bDEuNy0xLjRDOTAxLjcgODE3LjcgOTYwIDY5Mi43IDk2MCA1NjBjMC02MC41LTExLjktMTE5LjEtMzUuMi0xNzQuNHpNNDgyIDIzMmMwLTQuNCAzLjYtOCA4LThoNDRjNC40IDAgOCAzLjYgOCA4djgwYzAgNC40LTMuNiA4LTggOGgtNDRjLTQuNCAwLTgtMy42LTgtOHYtODB6TTI3MCA1ODJjMCA0LjQtMy42IDgtOCA4aC04MGMtNC40IDAtOC0zLjYtOC04di00NGMwLTQuNCAzLjYtOCA4LThoODBjNC40IDAgOCAzLjYgOCA4djQ0em05MC43LTIwNC41bC0zMS4xIDMxLjFhOC4wMyA4LjAzIDAgMDEtMTEuMyAwTDI2MS43IDM1MmE4LjAzIDguMDMgMCAwMTAtMTEuM2wzMS4xLTMxLjFjMy4xLTMuMSA4LjItMy4xIDExLjMgMGw1Ni42IDU2LjZjMy4xIDMuMSAzLjEgOC4yIDAgMTEuM3ptMjkxLjEgODMuNmwtODQuNSA4NC41YzUgMTguNy4yIDM5LjQtMTQuNSA1NC4xYTU1Ljk1IDU1Ljk1IDAgMDEtNzkuMiAwIDU1Ljk1IDU1Ljk1IDAgMDEwLTc5LjIgNTUuODcgNTUuODcgMCAwMTU0LjEtMTQuNWw4NC41LTg0LjVjMy4xLTMuMSA4LjItMy4xIDExLjMgMGwyOC4zIDI4LjNjMy4xIDMuMSAzLjEgOC4xIDAgMTEuM3ptNDMtNTIuNGwtMzEuMS0zMS4xYTguMDMgOC4wMyAwIDAxMC0xMS4zbDU2LjYtNTYuNmMzLjEtMy4xIDguMi0zLjEgMTEuMyAwbDMxLjEgMzEuMWMzLjEgMy4xIDMuMSA4LjIgMCAxMS4zbC01Ni42IDU2LjZhOC4wMyA4LjAzIDAgMDEtMTEuMyAwek04NDYgNTgyYzAgNC40LTMuNiA4LTggOGgtODBjLTQuNCAwLTgtMy42LTgtOHYtNDRjMC00LjQgMy42LTggOC04aDgwYzQuNCAwIDggMy42IDggOHY0NHoifX1dfSxuYW1lOiJkYXNoYm9hcmQiLHRoZW1lOiJmaWxsZWQifSxzOD1sOCxjOD1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpzOH0pKX0sdTg9dC5mb3J3YXJkUmVmKGM4KSxkOD11OCxmOD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTI0LjggMzg1LjZhNDQ2LjcgNDQ2LjcgMCAwMC05Ni0xNDIuNCA0NDYuNyA0NDYuNyAwIDAwLTE0Mi40LTk2QzYzMS4xIDEyMy44IDU3Mi41IDExMiA1MTIgMTEycy0xMTkuMSAxMS44LTE3NC40IDM1LjJhNDQ2LjcgNDQ2LjcgMCAwMC0xNDIuNCA5NiA0NDYuNyA0NDYuNyAwIDAwLTk2IDE0Mi40Qzc1LjggNDQwLjkgNjQgNDk5LjUgNjQgNTYwYzAgMTMyLjcgNTguMyAyNTcuNyAxNTkuOSAzNDMuMWwxLjcgMS40YzUuOCA0LjggMTMuMSA3LjUgMjAuNiA3LjVoNTMxLjdjNy41IDAgMTQuOC0yLjcgMjAuNi03LjVsMS43LTEuNEM5MDEuNyA4MTcuNyA5NjAgNjkyLjcgOTYwIDU2MGMwLTYwLjUtMTEuOS0xMTkuMS0zNS4yLTE3NC40ek03NjEuNCA4MzZIMjYyLjZBMzcxLjEyIDM3MS4xMiAwIDAxMTQwIDU2MGMwLTk5LjQgMzguNy0xOTIuOCAxMDktMjYzIDcwLjMtNzAuMyAxNjMuNy0xMDkgMjYzLTEwOSA5OS40IDAgMTkyLjggMzguNyAyNjMgMTA5IDcwLjMgNzAuMyAxMDkgMTYzLjcgMTA5IDI2MyAwIDEwNS42LTQ0LjUgMjA1LjUtMTIyLjYgMjc2ek02MjMuNSA0MjEuNWE4LjAzIDguMDMgMCAwMC0xMS4zIDBMNTI3LjcgNTA2Yy0xOC43LTUtMzkuNC0uMi01NC4xIDE0LjVhNTUuOTUgNTUuOTUgMCAwMDAgNzkuMiA1NS45NSA1NS45NSAwIDAwNzkuMiAwIDU1Ljg3IDU1Ljg3IDAgMDAxNC41LTU0LjFsODQuNS04NC41YzMuMS0zLjEgMy4xLTguMiAwLTExLjNsLTI4LjMtMjguM3pNNDkwIDMyMGg0NGM0LjQgMCA4LTMuNiA4LTh2LTgwYzAtNC40LTMuNi04LTgtOGgtNDRjLTQuNCAwLTggMy42LTggOHY4MGMwIDQuNCAzLjYgOCA4IDh6bTI2MCAyMTh2NDRjMCA0LjQgMy42IDggOCA4aDgwYzQuNCAwIDgtMy42IDgtOHYtNDRjMC00LjQtMy42LTgtOC04aC04MGMtNC40IDAtOCAzLjYtOCA4em0xMi43LTE5Ny4ybC0zMS4xLTMxLjFhOC4wMyA4LjAzIDAgMDAtMTEuMyAwbC01Ni42IDU2LjZhOC4wMyA4LjAzIDAgMDAwIDExLjNsMzEuMSAzMS4xYzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBsNTYuNi01Ni42YzMuMS0zLjEgMy4xLTguMiAwLTExLjN6bS00NTguNi0zMS4xYTguMDMgOC4wMyAwIDAwLTExLjMgMGwtMzEuMSAzMS4xYTguMDMgOC4wMyAwIDAwMCAxMS4zbDU2LjYgNTYuNmMzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDMxLjEtMzEuMWMzLjEtMy4xIDMuMS04LjIgMC0xMS4zbC01Ni42LTU2LjZ6TTI2MiA1MzBoLTgwYy00LjQgMC04IDMuNi04IDh2NDRjMCA0LjQgMy42IDggOCA4aDgwYzQuNCAwIDgtMy42IDgtOHYtNDRjMC00LjQtMy42LTgtOC04eiJ9fV19LG5hbWU6ImRhc2hib2FyZCIsdGhlbWU6Im91dGxpbmVkIn0sdjg9ZjgsaDg9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246djh9KSl9LG04PXQuZm9yd2FyZFJlZihoOCksZzg9bTgscDg9e2ljb246ZnVuY3Rpb24oZix2KXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDE4OGMtOTkuMyAwLTE5Mi43IDM4LjctMjYzIDEwOS03MC4zIDcwLjItMTA5IDE2My42LTEwOSAyNjMgMCAxMDUuNiA0NC41IDIwNS41IDEyMi42IDI3Nmg0OTguOEEzNzEuMTIgMzcxLjEyIDAgMDA4ODQgNTYwYzAtOTkuMy0zOC43LTE5Mi43LTEwOS0yNjMtNzAuMi03MC4zLTE2My42LTEwOS0yNjMtMTA5em0tMzAgNDRjMC00LjQgMy42LTggOC04aDQ0YzQuNCAwIDggMy42IDggOHY4MGMwIDQuNC0zLjYgOC04IDhoLTQ0Yy00LjQgMC04LTMuNi04LTh2LTgwek0yNzAgNTgyYzAgNC40LTMuNiA4LTggOGgtODBjLTQuNCAwLTgtMy42LTgtOHYtNDRjMC00LjQgMy42LTggOC04aDgwYzQuNCAwIDggMy42IDggOHY0NHptOTAuNy0yMDQuNGwtMzEuMSAzMS4xYTguMDMgOC4wMyAwIDAxLTExLjMgMGwtNTYuNi01Ni42YTguMDMgOC4wMyAwIDAxMC0xMS4zbDMxLjEtMzEuMWMzLjEtMy4xIDguMi0zLjEgMTEuMyAwbDU2LjYgNTYuNmMzLjEgMy4xIDMuMSA4LjIgMCAxMS4zem0yOTEuMSA4My41bC04NC41IDg0LjVjNSAxOC43LjIgMzkuNC0xNC41IDU0LjFhNTUuOTUgNTUuOTUgMCAwMS03OS4yIDAgNTUuOTUgNTUuOTUgMCAwMTAtNzkuMiA1NS44NyA1NS44NyAwIDAxNTQuMS0xNC41bDg0LjUtODQuNWMzLjEtMy4xIDguMi0zLjEgMTEuMyAwbDI4LjMgMjguM2MzLjEgMy4xIDMuMSA4LjIgMCAxMS4zem00My01Mi40bC0zMS4xLTMxLjFhOC4wMyA4LjAzIDAgMDEwLTExLjNsNTYuNi01Ni42YzMuMS0zLjEgOC4yLTMuMSAxMS4zIDBsMzEuMSAzMS4xYzMuMSAzLjEgMy4xIDguMiAwIDExLjNsLTU2LjYgNTYuNmE4LjAzIDguMDMgMCAwMS0xMS4zIDB6TTg0NiA1Mzh2NDRjMCA0LjQtMy42IDgtOCA4aC04MGMtNC40IDAtOC0zLjYtOC04di00NGMwLTQuNCAzLjYtOCA4LThoODBjNC40IDAgOCAzLjYgOCA4eiIsZmlsbDp2fX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02MjMuNSA0MjEuNWE4LjAzIDguMDMgMCAwMC0xMS4zIDBMNTI3LjcgNTA2Yy0xOC43LTUtMzkuNC0uMi01NC4xIDE0LjVhNTUuOTUgNTUuOTUgMCAwMDAgNzkuMiA1NS45NSA1NS45NSAwIDAwNzkuMiAwIDU1Ljg3IDU1Ljg3IDAgMDAxNC41LTU0LjFsODQuNS04NC41YzMuMS0zLjEgMy4xLTguMiAwLTExLjNsLTI4LjMtMjguM3pNNDkwIDMyMGg0NGM0LjQgMCA4LTMuNiA4LTh2LTgwYzAtNC40LTMuNi04LTgtOGgtNDRjLTQuNCAwLTggMy42LTggOHY4MGMwIDQuNCAzLjYgOCA4IDh6IixmaWxsOmZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkyNC44IDM4NS42YTQ0Ni43IDQ0Ni43IDAgMDAtOTYtMTQyLjQgNDQ2LjcgNDQ2LjcgMCAwMC0xNDIuNC05NkM2MzEuMSAxMjMuOCA1NzIuNSAxMTIgNTEyIDExMnMtMTE5LjEgMTEuOC0xNzQuNCAzNS4yYTQ0Ni43IDQ0Ni43IDAgMDAtMTQyLjQgOTYgNDQ2LjcgNDQ2LjcgMCAwMC05NiAxNDIuNEM3NS44IDQ0MC45IDY0IDQ5OS41IDY0IDU2MGMwIDEzMi43IDU4LjMgMjU3LjcgMTU5LjkgMzQzLjFsMS43IDEuNGM1LjggNC44IDEzLjEgNy41IDIwLjYgNy41aDUzMS43YzcuNSAwIDE0LjgtMi43IDIwLjYtNy41bDEuNy0xLjRDOTAxLjcgODE3LjcgOTYwIDY5Mi43IDk2MCA1NjBjMC02MC41LTExLjktMTE5LjEtMzUuMi0xNzQuNHpNNzYxLjQgODM2SDI2Mi42QTM3MS4xMiAzNzEuMTIgMCAwMTE0MCA1NjBjMC05OS40IDM4LjctMTkyLjggMTA5LTI2MyA3MC4zLTcwLjMgMTYzLjctMTA5IDI2My0xMDkgOTkuNCAwIDE5Mi44IDM4LjcgMjYzIDEwOSA3MC4zIDcwLjMgMTA5IDE2My43IDEwOSAyNjMgMCAxMDUuNi00NC41IDIwNS41LTEyMi42IDI3NnoiLGZpbGw6Zn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNzYyLjcgMzQwLjhsLTMxLjEtMzEuMWE4LjAzIDguMDMgMCAwMC0xMS4zIDBsLTU2LjYgNTYuNmE4LjAzIDguMDMgMCAwMDAgMTEuM2wzMS4xIDMxLjFjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGw1Ni42LTU2LjZjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM3pNNzUwIDUzOHY0NGMwIDQuNCAzLjYgOCA4IDhoODBjNC40IDAgOC0zLjYgOC04di00NGMwLTQuNC0zLjYtOC04LThoLTgwYy00LjQgMC04IDMuNi04IDh6TTMwNC4xIDMwOS43YTguMDMgOC4wMyAwIDAwLTExLjMgMGwtMzEuMSAzMS4xYTguMDMgOC4wMyAwIDAwMCAxMS4zbDU2LjYgNTYuNmMzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDMxLjEtMzEuMWMzLjEtMy4xIDMuMS04LjIgMC0xMS4zbC01Ni42LTU2LjZ6TTI2MiA1MzBoLTgwYy00LjQgMC04IDMuNi04IDh2NDRjMCA0LjQgMy42IDggOCA4aDgwYzQuNCAwIDgtMy42IDgtOHYtNDRjMC00LjQtMy42LTgtOC04eiIsZmlsbDpmfX1dfX0sbmFtZToiZGFzaGJvYXJkIix0aGVtZToidHdvdG9uZSJ9LHk4PXA4LEM4PWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOnk4fSkpfSxiOD10LmZvcndhcmRSZWYoQzgpLFM4PWI4LE84PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04MzIgNjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnYyMjRoNzA0Vjk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyek0yODggMjMyYy0yMi4xIDAtNDAtMTcuOS00MC00MHMxNy45LTQwIDQwLTQwIDQwIDE3LjkgNDAgNDAtMTcuOSA0MC00MCA0MHpNMTYwIDkyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWNzA0SDE2MHYyMjR6bTEyOC0xMzZjMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDAtNDAtMTcuOS00MC00MCAxNy45LTQwIDQwLTQwek0xNjAgNjQwaDcwNFYzODRIMTYwdjI1NnptMTI4LTE2OGMyMi4xIDAgNDAgMTcuOSA0MCA0MHMtMTcuOSA0MC00MCA0MC00MC0xNy45LTQwLTQwIDE3LjktNDAgNDAtNDB6In19XX0sbmFtZToiZGF0YWJhc2UiLHRoZW1lOiJmaWxsZWQifSx4OD1POCx3OD1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjp4OH0pKX0sRTg9dC5mb3J3YXJkUmVmKHc4KSxUOD1FOCxNOD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODMyIDY0SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlY5NmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTYwMCA3Mmg1NjB2MjA4SDIzMlYxMzZ6bTU2MCA0ODBIMjMyVjQwOGg1NjB2MjA4em0wIDI3MkgyMzJWNjgwaDU2MHYyMDh6TTMwNCAyNDBhNDAgNDAgMCAxMDgwIDAgNDAgNDAgMCAxMC04MCAwem0wIDI3MmE0MCA0MCAwIDEwODAgMCA0MCA0MCAwIDEwLTgwIDB6bTAgMjcyYTQwIDQwIDAgMTA4MCAwIDQwIDQwIDAgMTAtODAgMHoifX1dfSxuYW1lOiJkYXRhYmFzZSIsdGhlbWU6Im91dGxpbmVkIn0sUjg9TTgsSTg9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246Ujh9KSl9LFA4PXQuZm9yd2FyZFJlZihJOCksejg9UDgsRjg9e2ljb246ZnVuY3Rpb24oZix2KXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMjMyIDYxNmg1NjBWNDA4SDIzMnYyMDh6bTExMi0xNDRjMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDAtNDAtMTcuOS00MC00MCAxNy45LTQwIDQwLTQwek0yMzIgODg4aDU2MFY2ODBIMjMydjIwOHptMTEyLTE0NGMyMi4xIDAgNDAgMTcuOSA0MCA0MHMtMTcuOSA0MC00MCA0MC00MC0xNy45LTQwLTQwIDE3LjktNDAgNDAtNDB6TTIzMiAzNDRoNTYwVjEzNkgyMzJ2MjA4em0xMTItMTQ0YzIyLjEgMCA0MCAxNy45IDQwIDQwcy0xNy45IDQwLTQwIDQwLTQwLTE3LjktNDAtNDAgMTcuOS00MCA0MC00MHoiLGZpbGw6dn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMzA0IDUxMmE0MCA0MCAwIDEwODAgMCA0MCA0MCAwIDEwLTgwIDB6bTAgMjcyYTQwIDQwIDAgMTA4MCAwIDQwIDQwIDAgMTAtODAgMHptMC01NDRhNDAgNDAgMCAxMDgwIDAgNDAgNDAgMCAxMC04MCAweiIsZmlsbDpmfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04MzIgNjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgODI0SDIzMlY2ODBoNTYwdjIwOHptMC0yNzJIMjMyVjQwOGg1NjB2MjA4em0wLTI3MkgyMzJWMTM2aDU2MHYyMDh6IixmaWxsOmZ9fV19fSxuYW1lOiJkYXRhYmFzZSIsdGhlbWU6InR3b3RvbmUifSxBOD1GOCxMOD1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpBOH0pKX0sWjg9dC5mb3J3YXJkUmVmKEw4KSwkOD1aOCxIOD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6ImRlZnMiLGF0dHJzOnt9LGNoaWxkcmVuOlt7dGFnOiJzdHlsZSIsYXR0cnM6e319XX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02NTEuMSA2NDEuOWE3Ljg0IDcuODQgMCAwMC01LjEtMS45aC01NC43Yy0yLjQgMC00LjYgMS4xLTYuMSAyLjlMNTEyIDczMC43bC03My4xLTg3LjhhOC4xIDguMSAwIDAwLTYuMS0yLjlIMzc4Yy0xLjkgMC0zLjcuNy01LjEgMS45YTcuOTcgNy45NyAwIDAwLTEgMTEuM0w0NzQuMiA3NzYgMzcxLjggODk4LjlhOC4wNiA4LjA2IDAgMDA2LjEgMTMuMmg1NC43YzIuNCAwIDQuNi0xLjEgNi4xLTIuOWw3My4xLTg3LjggNzMuMSA4Ny44YTguMSA4LjEgMCAwMDYuMSAyLjloNTVjMS45IDAgMy43LS43IDUuMS0xLjkgMy40LTIuOCAzLjktNy45IDEtMTEuM0w1NDkuOCA3NzZsMTAyLjQtMTIyLjljMi44LTMuNCAyLjMtOC40LTEuMS0xMS4yek00NzIgNTQ0aDgwYzQuNCAwIDgtMy42IDgtOFYxMjBjMC00LjQtMy42LTgtOC04aC04MGMtNC40IDAtOCAzLjYtOCA4djQxNmMwIDQuNCAzLjYgOCA4IDh6TTM1MCAzODZIMTg0VjEzNmMwLTMuMy0yLjctNi02LTZoLTYwYy0zLjMgMC02IDIuNy02IDZ2MjkyYzAgMTYuNiAxMy40IDMwIDMwIDMwaDIwOGMzLjMgMCA2LTIuNyA2LTZ2LTYwYzAtMy4zLTIuNy02LTYtNnptNTU2LTI1NmgtNjBjLTMuMyAwLTYgMi43LTYgNnYyNTBINjc0Yy0zLjMgMC02IDIuNy02IDZ2NjBjMCAzLjMgMi43IDYgNiA2aDIwOGMxNi42IDAgMzAtMTMuNCAzMC0zMFYxMzZjMC0zLjMtMi43LTYtNi02eiJ9fV19LG5hbWU6ImRlbGV0ZS1jb2x1bW4iLHRoZW1lOiJvdXRsaW5lZCJ9LEQ4PUg4LEI4PWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkQ4fSkpfSxWOD10LmZvcndhcmRSZWYoQjgpLE44PVY4LGo4PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NjQgMjU2SDczNnYtODBjMC0zNS4zLTI4LjctNjQtNjQtNjRIMzUyYy0zNS4zIDAtNjQgMjguNy02NCA2NHY4MEgxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjMyYzAgNC40IDMuNiA4IDggOGg2MC40bDI0LjcgNTIzYzEuNiAzNC4xIDI5LjggNjEgNjMuOSA2MWg0NTRjMzQuMiAwIDYyLjMtMjYuOCA2My45LTYxbDI0LjctNTIzSDg4OGM0LjQgMCA4LTMuNiA4LTh2LTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tMjAwIDBIMzYwdi03MmgzMDR2NzJ6In19XX0sbmFtZToiZGVsZXRlIix0aGVtZToiZmlsbGVkIn0sVTg9ajgsVzg9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246VTh9KSl9LGs4PXQuZm9yd2FyZFJlZihXOCksSzg9azgsXzg9ZSg0ODY4OSksRzg9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJkZWZzIixhdHRyczp7fSxjaGlsZHJlbjpbe3RhZzoic3R5bGUiLGF0dHJzOnt9fV19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODE5LjggNTEybDEwMi40LTEyMi45YTguMDYgOC4wNiAwIDAwLTYuMS0xMy4yaC01NC43Yy0yLjQgMC00LjYgMS4xLTYuMSAyLjlMNzgyIDQ2Ni43bC03My4xLTg3LjhhOC4xIDguMSAwIDAwLTYuMS0yLjlINjQ4Yy0xLjkgMC0zLjcuNy01LjEgMS45YTcuOTcgNy45NyAwIDAwLTEgMTEuM0w3NDQuMiA1MTIgNjQxLjggNjM0LjlhOC4wNiA4LjA2IDAgMDA2LjEgMTMuMmg1NC43YzIuNCAwIDQuNi0xLjEgNi4xLTIuOWw3My4xLTg3LjggNzMuMSA4Ny44YTguMSA4LjEgMCAwMDYuMSAyLjloNTVjMS45IDAgMy43LS43IDUuMS0xLjkgMy40LTIuOCAzLjktNy45IDEtMTEuM0w4MTkuOCA1MTJ6TTUzNiA0NjRIMTIwYy00LjQgMC04IDMuNi04IDh2ODBjMCA0LjQgMy42IDggOCA4aDQxNmM0LjQgMCA4LTMuNiA4LTh2LTgwYzAtNC40LTMuNi04LTgtOHptLTg0IDIwNGgtNjBjLTMuMyAwLTYgMi43LTYgNnYxNjZIMTM2Yy0zLjMgMC02IDIuNy02IDZ2NjBjMCAzLjMgMi43IDYgNiA2aDI5MmMxNi42IDAgMzAtMTMuNCAzMC0zMFY2NzRjMC0zLjMtMi43LTYtNi02ek0xMzYgMTg0aDI1MHYxNjZjMCAzLjMgMi43IDYgNiA2aDYwYzMuMyAwIDYtMi43IDYtNlYxNDJjMC0xNi42LTEzLjQtMzAtMzAtMzBIMTM2Yy0zLjMgMC02IDIuNy02IDZ2NjBjMCAzLjMgMi43IDYgNiA2eiJ9fV19LG5hbWU6ImRlbGV0ZS1yb3ciLHRoZW1lOiJvdXRsaW5lZCJ9LFk4PUc4LFg4PWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOlk4fSkpfSxROD10LmZvcndhcmRSZWYoWDgpLEo4PVE4LHE4PXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTI5Mi43IDg0MGg0MzguNmwyNC4yLTUxMmgtNDg3eiIsZmlsbDp2fX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NjQgMjU2SDczNnYtODBjMC0zNS4zLTI4LjctNjQtNjQtNjRIMzUyYy0zNS4zIDAtNjQgMjguNy02NCA2NHY4MEgxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjMyYzAgNC40IDMuNiA4IDggOGg2MC40bDI0LjcgNTIzYzEuNiAzNC4xIDI5LjggNjEgNjMuOSA2MWg0NTRjMzQuMiAwIDYyLjMtMjYuOCA2My45LTYxbDI0LjctNTIzSDg4OGM0LjQgMCA4LTMuNiA4LTh2LTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNTA0LTcyaDMwNHY3MkgzNjB2LTcyem0zNzEuMyA2NTZIMjkyLjdsLTI0LjItNTEyaDQ4N2wtMjQuMiA1MTJ6IixmaWxsOmZ9fV19fSxuYW1lOiJkZWxldGUiLHRoZW1lOiJ0d290b25lIn0sZTY9cTgsdDY9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246ZTZ9KSl9LG42PXQuZm9yd2FyZFJlZih0NikscjY9bjYsYTY9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJkZWZzIixhdHRyczp7fSxjaGlsZHJlbjpbe3RhZzoic3R5bGUiLGF0dHJzOnt9fV19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNjMyIDY5OC4zbDE0MS45LTExMmE4IDggMCAwMDAtMTIuNkw2MzIgNDYxLjdjLTUuMy00LjItMTMtLjQtMTMgNi4zdjc2SDI5NWMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGgzMjR2NzZjMCA2LjcgNy44IDEwLjQgMTMgNi4zem0yNjEuMy00MDVMNzMwLjcgMTMwLjdjLTcuNS03LjUtMTYuNy0xMy0yNi43LTE2VjExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjI3OGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04VjE4NGgxMzZ2MTM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDMyMGMxNy43IDAgMzItMTQuMyAzMi0zMlYyMDUuOGwxMzYgMTM2VjQyMmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di04My41YzAtMTctNi43LTMzLjItMTguNy00NS4yek02NDAgMjg4SDM4NFYxODRoMjU2djEwNHptMjY0IDQzNmgtNTZjLTQuNCAwLTggMy42LTggOHYxMDhIMTg0VjczMmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2MTQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlY3MzJjMC00LjQtMy42LTgtOC04eiJ9fV19LG5hbWU6ImRlbGl2ZXJlZC1wcm9jZWR1cmUiLHRoZW1lOiJvdXRsaW5lZCJ9LG82PWE2LGk2PWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOm82fSkpfSxsNj10LmZvcndhcmRSZWYoaTYpLHM2PWw2LGM2PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODguMyA2OTMuMmMtNDIuNS0yNC42LTk0LjMtMTgtMTI5LjIgMTIuOGwtNTMtMzAuN1Y1MjMuNmMwLTE1LjctOC40LTMwLjMtMjItMzguMWwtMTM2LTc4LjN2LTY3LjFjNDQuMi0xNSA3Ni01Ni44IDc2LTEwNi4xIDAtNjEuOS01MC4xLTExMi0xMTItMTEycy0xMTIgNTAuMS0xMTIgMTEyYzAgNDkuMyAzMS44IDkxLjEgNzYgMTA2LjF2NjcuMWwtMTM2IDc4LjNjLTEzLjYgNy44LTIyIDIyLjQtMjIgMzguMXYxNTEuNmwtNTMgMzAuN2MtMzQuOS0zMC44LTg2LjgtMzcuNC0xMjkuMi0xMi44LTUzLjUgMzEtNzEuNyA5OS40LTQxIDE1Mi45IDMwLjggNTMuNSA5OC45IDcxLjkgMTUyLjIgNDEgNDIuNS0yNC42IDYyLjctNzMgNTMuNi0xMTguOGw0OC43LTI4LjMgMTQwLjYgODFjNi44IDMuOSAxNC40IDUuOSAyMiA1LjlzMTUuMi0yIDIyLTUuOUw2NzQuNSA3NDBsNDguNyAyOC4zYy05LjEgNDUuNyAxMS4yIDk0LjIgNTMuNiAxMTguOCA1My4zIDMwLjkgMTIxLjUgMTIuNiAxNTIuMi00MSAzMC44LTUzLjYgMTIuNi0xMjItNDAuNy0xNTIuOXptLTY3MyAxMzguNGE0Ny42IDQ3LjYgMCAwMS02NS4yLTE3LjZjLTEzLjItMjIuOS01LjQtNTIuMyAxNy41LTY1LjVhNDcuNiA0Ny42IDAgMDE2NS4yIDE3LjZjMTMuMiAyMi45IDUuNCA1Mi4zLTE3LjUgNjUuNXpNNTIyIDQ2My44ek00NjQgMjM0YTQ4LjAxIDQ4LjAxIDAgMDE5NiAwIDQ4LjAxIDQ4LjAxIDAgMDEtOTYgMHptMTcwIDQ0Ni4ybC0xMjIgNzAuMy0xMjItNzAuM1Y1MzkuOGwxMjItNzAuMyAxMjIgNzAuM3YxNDAuNHptMjM5LjkgMTMzLjljLTEzLjIgMjIuOS00Mi40IDMwLjgtNjUuMiAxNy42LTIyLjgtMTMuMi0zMC43LTQyLjYtMTcuNS02NS41czQyLjQtMzAuOCA2NS4yLTE3LjZjMjIuOSAxMy4yIDMwLjcgNDIuNSAxNy41IDY1LjV6In19XX0sbmFtZToiZGVwbG95bWVudC11bml0Iix0aGVtZToib3V0bGluZWQifSx1Nj1jNixkNj1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjp1Nn0pKX0sZjY9dC5mb3J3YXJkUmVmKGQ2KSx2Nj1mNixoNj17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTI4IDE0MEg5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDM4MHYxMTJIMzA0Yy04LjggMC0xNiA3LjItMTYgMTZ2NDhjMCA0LjQgMy42IDggOCA4aDQzMmM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtOC44LTcuMi0xNi0xNi0xNkg1NDhWNzAwaDM4MGMxNy43IDAgMzItMTQuMyAzMi0zMlYxNzJjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA0ODhIMTM2VjIxMmg3NTJ2NDE2eiJ9fV19LG5hbWU6ImRlc2t0b3AiLHRoZW1lOiJvdXRsaW5lZCJ9LG02PWg2LGc2PWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOm02fSkpfSxwNj10LmZvcndhcmRSZWYoZzYpLHk2PXA2LEM2PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NTQuMiAzMDYuNkw2MTEuMyA3Mi45Yy02LTUuNy0xMy45LTguOS0yMi4yLTguOUgyOTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoMjc3bDIxOSAyMTAuNlY4MjRjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFYzMjkuNmMwLTguNy0zLjUtMTctOS44LTIzek01NTMuNCAyMDEuNGMtNi02LTE0LjEtOS40LTIyLjYtOS40SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzA0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDUxMmMxNy43IDAgMzItMTQuMyAzMi0zMlYzOTcuM2MwLTguNS0zLjQtMTYuNi05LjQtMjIuNkw1NTMuNCAyMDEuNHpNNTY4IDc1M2MwIDMuOC0zLjQgNy03LjUgN2gtMjI1Yy00LjEgMC03LjUtMy4yLTcuNS03di00MmMwLTMuOCAzLjQtNyA3LjUtN2gyMjVjNC4xIDAgNy41IDMuMiA3LjUgN3Y0MnptMC0yMjBjMCAzLjgtMy40IDctNy41IDdINDc2djg0LjljMCAzLjktMy4xIDcuMS03IDcuMWgtNDJjLTMuOCAwLTctMy4yLTctNy4xVjU0MGgtODQuNWMtNC4xIDAtNy41LTMuMi03LjUtN3YtNDJjMC0zLjkgMy40LTcgNy41LTdINDIwdi04NC45YzAtMy45IDMuMi03LjEgNy03LjFoNDJjMy45IDAgNyAzLjIgNyA3LjFWNDg0aDg0LjVjNC4xIDAgNy41IDMuMSA3LjUgN3Y0MnoifX1dfSxuYW1lOiJkaWZmIix0aGVtZToiZmlsbGVkIn0sYjY9QzYsUzY9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246YjZ9KSl9LE82PXQuZm9yd2FyZFJlZihTNikseDY9TzYsdzY9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQ3NiAzOTkuMWMwLTMuOS0zLjEtNy4xLTctNy4xaC00MmMtMy44IDAtNyAzLjItNyA3LjFWNDg0aC04NC41Yy00LjEgMC03LjUgMy4xLTcuNSA3djQyYzAgMy44IDMuNCA3IDcuNSA3SDQyMHY4NC45YzAgMy45IDMuMiA3LjEgNyA3LjFoNDJjMy45IDAgNy0zLjIgNy03LjFWNTQwaDg0LjVjNC4xIDAgNy41LTMuMiA3LjUtN3YtNDJjMC0zLjktMy40LTctNy41LTdINDc2di04NC45ek01NjAuNSA3MDRoLTIyNWMtNC4xIDAtNy41IDMuMi03LjUgN3Y0MmMwIDMuOCAzLjQgNyA3LjUgN2gyMjVjNC4xIDAgNy41LTMuMiA3LjUtN3YtNDJjMC0zLjgtMy40LTctNy41LTd6bS03LjEtNTAyLjZjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjcwNGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg1MTJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzk3LjNjMC04LjUtMy40LTE2LjYtOS40LTIyLjZMNTUzLjQgMjAxLjR6TTY2NCA4ODhIMjMyVjI2NGgyODIuMkw2NjQgNDEzLjhWODg4em0xOTAuMi01ODEuNEw2MTEuMyA3Mi45Yy02LTUuNy0xMy45LTguOS0yMi4yLTguOUgyOTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoMjc3bDIxOSAyMTAuNlY4MjRjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFYzMjkuNmMwLTguNy0zLjUtMTctOS44LTIzeiJ9fV19LG5hbWU6ImRpZmYiLHRoZW1lOiJvdXRsaW5lZCJ9LEU2PXc2LFQ2PWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkU2fSkpfSxNNj10LmZvcndhcmRSZWYoVDYpLFI2PU02LEk2PXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTIzMiAyNjR2NjI0aDQzMlY0MTMuOEw1MTQuMiAyNjRIMjMyem0zMzYgNDg5YzAgMy44LTMuNCA3LTcuNSA3aC0yMjVjLTQuMSAwLTcuNS0zLjItNy41LTd2LTQyYzAtMy44IDMuNC03IDcuNS03aDIyNWM0LjEgMCA3LjUgMy4yIDcuNSA3djQyem0wLTI2MnY0MmMwIDMuOC0zLjQgNy03LjUgN0g0NzZ2ODQuOWMwIDMuOS0zLjEgNy4xLTcgNy4xaC00MmMtMy44IDAtNy0zLjItNy03LjFWNTQwaC04NC41Yy00LjEgMC03LjUtMy4yLTcuNS03di00MmMwLTMuOSAzLjQtNyA3LjUtN0g0MjB2LTg0LjljMC0zLjkgMy4yLTcuMSA3LTcuMWg0MmMzLjkgMCA3IDMuMiA3IDcuMVY0ODRoODQuNWM0LjEgMCA3LjUgMy4xIDcuNSA3eiIsZmlsbDp2fX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NTQuMiAzMDYuNkw2MTEuMyA3Mi45Yy02LTUuNy0xMy45LTguOS0yMi4yLTguOUgyOTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoMjc3bDIxOSAyMTAuNlY4MjRjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFYzMjkuNmMwLTguNy0zLjUtMTctOS44LTIzeiIsZmlsbDpmfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01NTMuNCAyMDEuNGMtNi02LTE0LjEtOS40LTIyLjYtOS40SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzA0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDUxMmMxNy43IDAgMzItMTQuMyAzMi0zMlYzOTcuM2MwLTguNS0zLjQtMTYuNi05LjQtMjIuNkw1NTMuNCAyMDEuNHpNNjY0IDg4OEgyMzJWMjY0aDI4Mi4yTDY2NCA0MTMuOFY4ODh6IixmaWxsOmZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQ3NiAzOTkuMWMwLTMuOS0zLjEtNy4xLTctNy4xaC00MmMtMy44IDAtNyAzLjItNyA3LjFWNDg0aC04NC41Yy00LjEgMC03LjUgMy4xLTcuNSA3djQyYzAgMy44IDMuNCA3IDcuNSA3SDQyMHY4NC45YzAgMy45IDMuMiA3LjEgNyA3LjFoNDJjMy45IDAgNy0zLjIgNy03LjFWNTQwaDg0LjVjNC4xIDAgNy41LTMuMiA3LjUtN3YtNDJjMC0zLjktMy40LTctNy41LTdINDc2di04NC45ek01NjAuNSA3MDRoLTIyNWMtNC4xIDAtNy41IDMuMi03LjUgN3Y0MmMwIDMuOCAzLjQgNyA3LjUgN2gyMjVjNC4xIDAgNy41LTMuMiA3LjUtN3YtNDJjMC0zLjgtMy40LTctNy41LTd6IixmaWxsOmZ9fV19fSxuYW1lOiJkaWZmIix0aGVtZToidHdvdG9uZSJ9LFA2PUk2LHo2PWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOlA2fSkpfSxGNj10LmZvcndhcmRSZWYoejYpLEE2PUY2LEw2PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01NzMuNyAyNTIuNUM0MjIuNSAxOTcuNCAyMDEuMyA5Ni43IDIwMS4zIDk2LjdjLTE1LjctNC4xLTE3LjkgMTEuMS0xNy45IDExLjEtNSA2MS4xIDMzLjYgMTYwLjUgNTMuNiAxODIuOCAxOS45IDIyLjMgMzE5LjEgMTEzLjcgMzE5LjEgMTEzLjdTMzI2IDM1Ny45IDI3MC41IDM0MS45Yy01NS42LTE2LTM3LjkgMTcuOC0zNy45IDE3LjggMTEuNCA2MS43IDY0LjkgMTMxLjggMTA3LjIgMTM4LjQgNDIuMiA2LjYgMjIwLjEgNCAyMjAuMSA0cy0zNS41IDQuMS05My4yIDExLjljLTQyLjcgNS44LTk3IDEyLjUtMTExLjEgMTcuOC0zMy4xIDEyLjUgMjQgNjIuNiAyNCA2Mi42IDg0LjcgNzYuOCAxMjkuNyA1MC41IDEyOS43IDUwLjUgMzMuMy0xMC43IDYxLjQtMTguNSA4NS4yLTI0LjJMNTY1IDc0My4xaDg0LjZMNjAzIDkyOGwyMDUuMy0yNzEuOUg3MDAuOGwyMi4zLTM4LjdjLjMuNS40LjguNC44Uzc5OS44IDQ5Ni4xIDgyOSA0MzMuOGwuNi0xaC0uMWM1LTEwLjggOC42LTE5LjcgMTAtMjUuOCAxNy03MS4zLTExNC41LTk5LjQtMjY1LjgtMTU0LjV6In19XX0sbmFtZToiZGluZ2RpbmciLHRoZW1lOiJvdXRsaW5lZCJ9LFo2PUw2LCQ2PWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOlo2fSkpfSxINj10LmZvcndhcmRSZWYoJDYpLEQ2PUg2LEI2PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMjI3IDM4NS4zYy0xIDQuMi0zLjUgMTAuNC03IDE3LjhoLjFsLS40LjdjLTIwLjMgNDMuMS03My4xIDEyNy43LTczLjEgMTI3LjdzLS4xLS4yLS4zLS41bC0xNS41IDI2LjhoNzQuNUw1NzUuMSA4MTBsMzIuMy0xMjhoLTU4LjZsMjAuNC04NC43Yy0xNi41IDMuOS0zNS45IDkuNC01OSAxNi44IDAgMC0zMS4yIDE4LjItODkuOS0zNSAwIDAtMzkuNi0zNC43LTE2LjYtNDMuNCA5LjgtMy43IDQ3LjQtOC40IDc3LTEyLjMgNDAtNS40IDY0LjYtOC4yIDY0LjYtOC4yUzQyMiA1MTcgMzkyLjcgNTEyLjVjLTI5LjMtNC42LTY2LjQtNTMuMS03NC4zLTk1LjggMCAwLTEyLjItMjMuNCAyNi4zLTEyLjMgMzguNSAxMS4xIDE5Ny45IDQzLjIgMTk3LjkgNDMuMnMtMjA3LjQtNjMuMy0yMjEuMi03OC43Yy0xMy44LTE1LjQtNDAuNi04NC4yLTM3LjEtMTI2LjUgMCAwIDEuNS0xMC41IDEyLjQtNy43IDAgMCAxNTMuMyA2OS43IDI1OC4xIDEwNy45IDEwNC44IDM3LjkgMTk1LjkgNTcuMyAxODQuMiAxMDYuN3oifX1dfSxuYW1lOiJkaW5ndGFsay1jaXJjbGUiLHRoZW1lOiJmaWxsZWQifSxWNj1CNixONj1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpWNn0pKX0sajY9dC5mb3J3YXJkUmVmKE42KSxVNj1qNixXNj17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTczLjcgMjUyLjVDNDIyLjUgMTk3LjQgMjAxLjMgOTYuNyAyMDEuMyA5Ni43Yy0xNS43LTQuMS0xNy45IDExLjEtMTcuOSAxMS4xLTUgNjEuMSAzMy42IDE2MC41IDUzLjYgMTgyLjggMTkuOSAyMi4zIDMxOS4xIDExMy43IDMxOS4xIDExMy43UzMyNiAzNTcuOSAyNzAuNSAzNDEuOWMtNTUuNi0xNi0zNy45IDE3LjgtMzcuOSAxNy44IDExLjQgNjEuNyA2NC45IDEzMS44IDEwNy4yIDEzOC40IDQyLjIgNi42IDIyMC4xIDQgMjIwLjEgNHMtMzUuNSA0LjEtOTMuMiAxMS45Yy00Mi43IDUuOC05NyAxMi41LTExMS4xIDE3LjgtMzMuMSAxMi41IDI0IDYyLjYgMjQgNjIuNiA4NC43IDc2LjggMTI5LjcgNTAuNSAxMjkuNyA1MC41IDMzLjMtMTAuNyA2MS40LTE4LjUgODUuMi0yNC4yTDU2NSA3NDMuMWg4NC42TDYwMyA5MjhsMjA1LjMtMjcxLjlINzAwLjhsMjIuMy0zOC43Yy4zLjUuNC44LjQuOFM3OTkuOCA0OTYuMSA4MjkgNDMzLjhsLjYtMWgtLjFjNS0xMC44IDguNi0xOS43IDEwLTI1LjggMTctNzEuMy0xMTQuNS05OS40LTI2NS44LTE1NC41eiJ9fV19LG5hbWU6ImRpbmd0YWxrIix0aGVtZToib3V0bGluZWQifSxrNj1XNixLNj1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjprNn0pKX0sXzY9dC5mb3J3YXJkUmVmKEs2KSxHNj1fNixZNj17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek03MzkgNDQ5LjNjLTEgNC4yLTMuNSAxMC40LTcgMTcuOGguMWwtLjQuN2MtMjAuMyA0My4xLTczLjEgMTI3LjctNzMuMSAxMjcuN3MtLjEtLjItLjMtLjVsLTE1LjUgMjYuOGg3NC41TDU3NS4xIDgxMGwzMi4zLTEyOGgtNTguNmwyMC40LTg0LjdjLTE2LjUgMy45LTM1LjkgOS40LTU5IDE2LjggMCAwLTMxLjIgMTguMi04OS45LTM1IDAgMC0zOS42LTM0LjctMTYuNi00My40IDkuOC0zLjcgNDcuNC04LjQgNzctMTIuMyA0MC01LjQgNjQuNi04LjIgNjQuNi04LjJTNDIyIDUxNyAzOTIuNyA1MTIuNWMtMjkuMy00LjYtNjYuNC01My4xLTc0LjMtOTUuOCAwIDAtMTIuMi0yMy40IDI2LjMtMTIuMyAzOC41IDExLjEgMTk3LjkgNDMuMiAxOTcuOSA0My4ycy0yMDcuNC02My4zLTIyMS4yLTc4LjdjLTEzLjgtMTUuNC00MC42LTg0LjItMzcuMS0xMjYuNSAwIDAgMS41LTEwLjUgMTIuNC03LjcgMCAwIDE1My4zIDY5LjcgMjU4LjEgMTA3LjkgMTA0LjggMzcuOSAxOTUuOSA1Ny4zIDE4NC4yIDEwNi43eiJ9fV19LG5hbWU6ImRpbmd0YWxrLXNxdWFyZSIsdGhlbWU6ImZpbGxlZCJ9LFg2PVk2LFE2PWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOlg2fSkpfSxKNj10LmZvcndhcmRSZWYoUTYpLHE2PUo2LGVkPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04MzIuNiAxOTEuNGMtODQuNi04NC42LTIyMS41LTg0LjYtMzA2IDBsLTk2LjkgOTYuOSA1MSA1MSA5Ni45LTk2LjljNTMuOC01My44IDE0NC42LTU5LjUgMjA0IDAgNTkuNSA1OS41IDUzLjggMTUwLjIgMCAyMDRsLTk2LjkgOTYuOSA1MS4xIDUxLjEgOTYuOS05Ni45Yzg0LjQtODQuNiA4NC40LTIyMS41LS4xLTMwNi4xek00NDYuNSA3ODEuNmMtNTMuOCA1My44LTE0NC42IDU5LjUtMjA0IDAtNTkuNS01OS41LTUzLjgtMTUwLjIgMC0yMDRsOTYuOS05Ni45LTUxLjEtNTEuMS05Ni45IDk2LjljLTg0LjYgODQuNi04NC42IDIyMS41IDAgMzA2czIyMS41IDg0LjYgMzA2IDBsOTYuOS05Ni45LTUxLTUxLTk2LjggOTd6TTI2MC4zIDIwOS40YTguMDMgOC4wMyAwIDAwLTExLjMgMEwyMDkuNCAyNDlhOC4wMyA4LjAzIDAgMDAwIDExLjNsNTU0LjQgNTU0LjRjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGwzOS42LTM5LjZjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM0wyNjAuMyAyMDkuNHoifX1dfSxuYW1lOiJkaXNjb25uZWN0Iix0aGVtZToib3V0bGluZWQifSx0ZD1lZCxuZD1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjp0ZH0pKX0scmQ9dC5mb3J3YXJkUmVmKG5kKSxhZD1yZCxvZD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnsiZmlsbC1ydWxlIjoiZXZlbm9kZCIsdmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTgxMS4xNSA4N2M1MS4xNiAwIDkyLjQxIDQxLjM2IDk0Ljg1IDkwLjAzVjk2MGwtOTcuNC04Mi42OC01My40OC00OC42Ny01OC4zNS01MC44NSAyNC4zNyA4MC4ySDIxMC40MWMtNTEgMC05Mi40MS0zOC43NC05Mi40MS05MC4wNlYxNzcuMjFjMC00OC42NyA0MS40OC05MC4xIDkyLjYtOTAuMWg2MDAuM3pNNTg4LjE2IDI5NC4xaC0xLjA5bC03LjM0IDcuMjhjNzUuMzggMjEuOCAxMTEuODUgNTUuODYgMTExLjg1IDU1Ljg2LTQ4LjU4LTI0LjI4LTkyLjM2LTM2LjQyLTEzNi4xNC00MS4zMi0zMS42NC00LjkxLTYzLjI4LTIuMzMtOTAgMGgtNy4yOGMtMTcuMDkgMC01My40NSA3LjI3LTEwMi4xOCAyNi43LTE2Ljk4IDcuMzktMjYuNzIgMTIuMjItMjYuNzIgMTIuMjJzMzYuNDMtMzYuNDIgMTE2LjcyLTU1Ljg2bC00LjktNC45cy02MC44LTIuMzMtMTI2LjQ0IDQ2LjE1YzAgMC02NS42NCAxMTQuMjYtNjUuNjQgMjU1LjEzIDAgMCAzNi4zNiA2My4yNCAxMzYuMTEgNjUuNjQgMCAwIDE0LjU1LTE5LjM3IDI5LjI3LTM2LjQyLTU2LTE3LTc3LjgyLTUxLjAyLTc3LjgyLTUxLjAyczQuODggMi40IDEyLjE5IDcuMjdoMi4xOGMxLjA5IDAgMS42LjU0IDIuMTggMS4wOXYuMjFjLjU4LjU5IDEuMDkgMS4xIDIuMTggMS4xIDEyIDQuOTQgMjQgOS44IDMzLjgyIDE0LjUzYTI5Ny41OCAyOTcuNTggMCAwMDY1LjQ1IDE5LjQ4YzMzLjgyIDQuOSA3Mi41OSA3LjI3IDExNi43MyAwIDIxLjgyLTQuOSA0My42NC05LjcgNjUuNDYtMTkuNDQgMTQuMTgtNy4yNyAzMS42My0xNC41NCA1MC44LTI2Ljc5IDAgMC0yMS44MiAzNC4wMi04MC4xOSA1MS4wMyAxMiAxNi45NCAyOC45MSAzNi4zNCAyOC45MSAzNi4zNCA5OS43OS0yLjE4IDEzOC41NS02NS40MiAxNDAuNzMtNjIuNzMgMC0xNDAuNjUtNjYtMjU1LjEzLTY2LTI1NS4xMy01OS40NS00NC4xMi0xMTUuMDktNDUuOC0xMjQuOTEtNDUuOGwyLjA0LS43MnpNNTk1IDQ1NGMyNS40NiAwIDQ2IDIxLjc2IDQ2IDQ4LjQxIDAgMjYuODMtMjAuNjUgNDguNTktNDYgNDguNTlzLTQ2LTIxLjc2LTQ2LTQ4LjM3Yy4wNy0yNi44NCAyMC43NS00OC41MiA0Ni00OC41MnptLTE2NS44NSAwYzI1LjM1IDAgNDUuODUgMjEuNzYgNDUuODUgNDguNDEgMCAyNi44My0yMC42NSA0OC41OS00NiA0OC41OXMtNDYtMjEuNzYtNDYtNDguMzdjMC0yNi44NCAyMC42NS00OC41MiA0Ni00OC41MnoifX1dfSxuYW1lOiJkaXNjb3JkIix0aGVtZToiZmlsbGVkIn0saWQ9b2QsbGQ9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246aWR9KSl9LHNkPXQuZm9yd2FyZFJlZihsZCksY2Q9c2QsdWQ9e2ljb246e3RhZzoic3ZnIixhdHRyczp7ImZpbGwtcnVsZSI6ImV2ZW5vZGQiLHZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00MDUgMTU4bC0yNSAzcy0xMTIuMTMgMTIuMjYtMTk0LjAyIDc4LjAyaC0uOTZsLTEuMDIuOTZjLTE4LjM3IDE2LjktMjYuMzcgMzcuNjctMzkgNjguMDRhOTgyLjA4IDk4Mi4wOCAwIDAwLTM4IDExMkM4My4yNyA1MDUuODcgNjQgNjA5Ljg3IDY0IDcwNXY4bDQgOGMyOS42MyA1MiA4Mi4yNCA4NS4xMiAxMzEgMTA4IDQ4Ljc0IDIyLjg4IDkwLjg5IDM1IDEyMCAzNmwxOS4wMi45OSA5Ljk4LTE3IDM1LTYyYzM3LjEzIDguMzggNzkuODggMTQgMTI5IDE0IDQ5LjEyIDAgOTEuODctNS42MiAxMjktMTRsMzUgNjIgMTAuMDIgMTcgMTguOTctMWMyOS4xMi0uOTggNzEuMjctMTMuMTEgMTIwLTM2IDQ4Ljc3LTIyLjg3IDEwMS4zOC01NiAxMzEuMDEtMTA4bDQtOHYtOGMwLTk1LjEzLTE5LjI2LTE5OS4xMy00My0yODQuOThhOTgyLjA4IDk4Mi4wOCAwIDAwLTM4LTExMmMtMTIuNjMtMzAuNC0yMC42My01MS4xNC0zOS02OGwtMS0xLjAzaC0xLjAyQzc1Ni4xNiAxNzMuMjYgNjQ0IDE2MS4wMSA2NDQgMTYxLjAxTDYxOSAxNThsLTkuMDIgMjNzLTkuMjQgMjMuMzctMTQuOTcgNTAuMDJhNjQzLjA0IDY0My4wNCAwIDAwLTgzLjAxLTYuMDFjLTE3LjEyIDAtNDYuNzIgMS4xMi04MyA2LjAxYTM1OS44NSAzNTkuODUgMCAwMC0xNS4wMi01MC4wMXptLTQ0IDczLjAyYzEuMzcgNC40OCAyLjc0IDguMzYgNCAxMi00MS4zOCAxMC4yNC04NS41MSAyNS44Ni0xMjYgNTAuOThsMzQgNTQuMDJDMzU2IDI5Ni41IDQ3NS4yMiAyODkgNTEyIDI4OWMzNi43NCAwIDE1NiA3LjQ5IDIzOSA1OUw3ODUgMjk0Yy00MC40OS0yNS4xMi04NC42Mi00MC43NC0xMjYtNTEgMS4yNi0zLjYyIDIuNjMtNy41IDQtMTIgMjkuODYgNiA4Ni44OSAxOS43NyAxMzQgNTcuMDItLjI2LjEyIDEyIDE4LjYyIDIzIDQ0Ljk5IDExLjI2IDI3LjEzIDIzLjc0IDYzLjI2IDM1IDEwNCAyMS42NCA3OC4xMSAzOC42MyAxNzMuMjUgNDAgMjU2Ljk5LTIwLjE1IDMwLjc1LTU3LjUgNTguNS05Ny4wMiA3Ny4wMkEzMTEuOCAzMTEuOCAwIDAxNzIwIDc5NS45OGwtMTYtMjYuOTdjOS41LTMuNTIgMTguODgtNy4zNiAyNy0xMS4wMSA0OS4yNi0yMS42MyA3Ni00NSA3Ni00NWwtNDItNDhzLTE4IDE2LjUyLTYwIDM1LjAyQzY2My4wMyA3MTguNTIgNTk4Ljg3IDczNyA1MTIgNzM3cy0xNTEtMTguNS0xOTMtMzdjLTQyLTE4LjQ5LTYwLTM1LTYwLTM1bC00MiA0OHMyNi43NCAyMy4zNiA3NiA0NC45OWE0MjQuNDcgNDI0LjQ3IDAgMDAyNyAxMWwtMTYgMjcuMDJhMzExLjggMzExLjggMCAwMS03OC4wMi0yNS4wM2MtMzkuNDgtMTguNS03Ni44Ni00Ni4yNC05Ni45Ni03Ni45OSAxLjM1LTgzLjc0IDE4LjM0LTE3OC44OCA0MC0yNTdBOTE3LjIyIDkxNy4yMiAwIDAxMjA0IDMzM2MxMS0yNi4zNiAyMy4yNi00NC44NiAyMy00NC45OCA0Ny4xMS0zNy4yNSAxMDQuMTQtNTEuMDEgMTM0LTU3bTM5IDIxNy45OWMtMjQuNzQgMC00Ni42MiAxNC4xMS02MCAzMi0xMy4zOCAxNy44OS0yMCAzOS44Ny0yMCA2NHM2LjYyIDQ2LjExIDIwIDY0YzEzLjM4IDE3Ljg5IDM1LjI2IDMyIDYwIDMyIDI0Ljc0IDAgNDYuNjItMTQuMTEgNjAtMzIgMTMuMzgtMTcuODkgMjAtMzkuODcgMjAtNjRzLTYuNjItNDYuMTEtMjAtNjRjLTEzLjM4LTE3Ljg5LTM1LjI2LTMyLTYwLTMybTIyNCAwYy0yNC43NCAwLTQ2LjYyIDE0LjExLTYwIDMyLTEzLjM4IDE3Ljg5LTIwIDM5Ljg3LTIwIDY0czYuNjIgNDYuMTEgMjAgNjRjMTMuMzggMTcuODkgMzUuMjYgMzIgNjAgMzIgMjQuNzQgMCA0Ni42Mi0xNC4xMSA2MC0zMiAxMy4zOC0xNy44OSAyMC0zOS44NyAyMC02NHMtNi42Mi00Ni4xMS0yMC02NGMtMTMuMzgtMTcuODktMzUuMjYtMzItNjAtMzJtLTIyNCA2NGMxLjc2IDAgNCAuNjQgOCA2LjAxIDQgNS4zNSA4IDE0LjcyIDggMjUuOTkgMCAxMS4yNi00IDIwLjY0LTggMjYuMDEtNCA1LjM1LTYuMjQgNS45OS04IDUuOTktMS43NiAwLTQtLjY0LTgtNi4wMmE0NC44MyA0NC44MyAwIDAxLTgtMjUuOThjMC0xMS4yNyA0LTIwLjY0IDgtMjYuMDIgNC01LjM0IDYuMjQtNS45OCA4LTUuOThtMjI0IDBjMS43NiAwIDQgLjY0IDggNi4wMSA0IDUuMzUgOCAxNC43MiA4IDI1Ljk5IDAgMTEuMjYtNCAyMC42NC04IDI2LjAxLTQgNS4zNS02LjI0IDUuOTktOCA1Ljk5LTEuNzYgMC00LS42NC04LTYuMDJhNDQuODMgNDQuODMgMCAwMS04LTI1Ljk4YzAtMTEuMjcgNC0yMC42NCA4LTI2LjAyIDQtNS4zNCA2LjI0LTUuOTggOC01Ljk4In19XX0sbmFtZToiZGlzY29yZCIsdGhlbWU6Im91dGxpbmVkIn0sZGQ9dWQsZmQ9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246ZGR9KSl9LHZkPXQuZm9yd2FyZFJlZihmZCksaGQ9dmQsbWQ9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4NS45IDQ5MC4zYzMuNi0xMiA1LjQtMjQuNCA1LjQtMzcgMC0yOC4zLTkuMy01NS41LTI2LjEtNzcuNyAzLjYtMTIgNS40LTI0LjQgNS40LTM3IDAtMjguMy05LjMtNTUuNS0yNi4xLTc3LjcgMy42LTEyIDUuNC0yNC40IDUuNC0zNyAwLTUxLjYtMzAuNy05OC4xLTc4LjMtMTE4LjRhNjYuMSA2Ni4xIDAgMDAtMjYuNS01LjRIMjczdjQyOGguM2w4NS44IDMxMC44QzM3Mi45IDg4OSA0MTguOSA5MjQgNDcwLjkgOTI0YzI5LjcgMCA1Ny40LTExLjggNzcuOS0zMy40IDIwLjUtMjEuNSAzMS00OS43IDI5LjUtNzkuNGwtNi0xMjIuOWgyMzkuOWMxMi4xIDAgMjMuOS0zLjIgMzQuMy05LjMgNDAuNC0yMy41IDY1LjUtNjYuMSA2NS41LTExMSAwLTI4LjMtOS4zLTU1LjUtMjYuMS03Ny43ek0xMTIgMTMydjM2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NVYxMDBoLTY1Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnoifX1dfSxuYW1lOiJkaXNsaWtlIix0aGVtZToiZmlsbGVkIn0sZ2Q9bWQscGQ9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246Z2R9KSl9LHlkPXQuZm9yd2FyZFJlZihwZCksQ2Q9eWQsYmQ9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4NS45IDQ5MC4zYzMuNi0xMiA1LjQtMjQuNCA1LjQtMzcgMC0yOC4zLTkuMy01NS41LTI2LjEtNzcuNyAzLjYtMTIgNS40LTI0LjQgNS40LTM3IDAtMjguMy05LjMtNTUuNS0yNi4xLTc3LjcgMy42LTEyIDUuNC0yNC40IDUuNC0zNyAwLTUxLjYtMzAuNy05OC4xLTc4LjMtMTE4LjRhNjYuMSA2Ni4xIDAgMDAtMjYuNS01LjRIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYzNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJoMTI5LjNsODUuOCAzMTAuOEMzNzIuOSA4ODkgNDE4LjkgOTI0IDQ3MC45IDkyNGMyOS43IDAgNTcuNC0xMS44IDc3LjktMzMuNCAyMC41LTIxLjUgMzEtNDkuNyAyOS41LTc5LjRsLTYtMTIyLjloMjM5LjljMTIuMSAwIDIzLjktMy4yIDM0LjMtOS4zIDQwLjQtMjMuNSA2NS41LTY2LjEgNjUuNS0xMTEgMC0yOC4zLTkuMy01NS41LTI2LjEtNzcuN3pNMTg0IDQ1NlYxNzJoODF2Mjg0aC04MXptNjI3LjIgMTYwLjRINDk2LjhsOS42IDE5OC40Yy42IDExLjktNC43IDIzLjEtMTQuNiAzMC41LTYuMSA0LjUtMTMuNiA2LjgtMjEuMSA2LjdhNDQuMjggNDQuMjggMCAwMS00Mi4yLTMyLjNMMzI5IDQ1OS4yVjE3Mmg0MTUuNGE1Ni44NSA1Ni44NSAwIDAxMzMuNiA1MS44YzAgOS43LTIuMyAxOC45LTYuOSAyNy4zbC0xMy45IDI1LjQgMjEuOSAxOWE1Ni43NiA1Ni43NiAwIDAxMTkuNiA0M2MwIDkuNy0yLjMgMTguOS02LjkgMjcuM2wtMTMuOSAyNS40IDIxLjkgMTlhNTYuNzYgNTYuNzYgMCAwMTE5LjYgNDNjMCA5LjctMi4zIDE4LjktNi45IDI3LjNsLTE0IDI1LjUgMjEuOSAxOWE1Ni43NiA1Ni43NiAwIDAxMTkuNiA0M2MwIDE5LjEtMTEgMzcuNS0yOC44IDQ4LjR6In19XX0sbmFtZToiZGlzbGlrZSIsdGhlbWU6Im91dGxpbmVkIn0sU2Q9YmQsT2Q9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246U2R9KSl9LHhkPXQuZm9yd2FyZFJlZihPZCksd2Q9eGQsRWQ9e2ljb246ZnVuY3Rpb24oZix2KXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMjczIDEwMC4xdjQyOGguM2wtLjMtNDI4ek04MjAuNCA1MjVsLTIxLjktMTkgMTQtMjUuNWE1Ni4yIDU2LjIgMCAwMDYuOS0yNy4zYzAtMTYuNS03LjEtMzIuMi0xOS42LTQzbC0yMS45LTE5IDEzLjktMjUuNGE1Ni4yIDU2LjIgMCAwMDYuOS0yNy4zYzAtMTYuNS03LjEtMzIuMi0xOS42LTQzbC0yMS45LTE5IDEzLjktMjUuNGE1Ni4yIDU2LjIgMCAwMDYuOS0yNy4zYzAtMjIuNC0xMy4yLTQyLjYtMzMuNi01MS44SDM0NXYzNDUuMmMxOC42IDY3LjIgNDYuNCAxNjggODMuNSAzMDIuNWE0NC4yOCA0NC4yOCAwIDAwNDIuMiAzMi4zYzcuNS4xIDE1LTIuMiAyMS4xLTYuNyA5LjktNy40IDE1LjItMTguNiAxNC42LTMwLjVsLTkuNi0xOTguNGgzMTQuNEM4MjkgNjA1LjUgODQwIDU4Ny4xIDg0MCA1NjhjMC0xNi41LTcuMS0zMi4yLTE5LjYtNDN6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTExMiAxMzJ2MzY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY1VjEwMGgtNjVjLTE3LjcgMC0zMiAxNC4zLTMyIDMyem03NzMuOSAzNTguM2MzLjYtMTIgNS40LTI0LjQgNS40LTM3IDAtMjguMy05LjMtNTUuNS0yNi4xLTc3LjcgMy42LTEyIDUuNC0yNC40IDUuNC0zNyAwLTI4LjMtOS4zLTU1LjUtMjYuMS03Ny43IDMuNi0xMiA1LjQtMjQuNCA1LjQtMzcgMC01MS42LTMwLjctOTguMS03OC4zLTExOC40YTY2LjEgNjYuMSAwIDAwLTI2LjUtNS40SDI3M2wuMyA0MjggODUuOCAzMTAuOEMzNzIuOSA4ODkgNDE4LjkgOTI0IDQ3MC45IDkyNGMyOS43IDAgNTcuNC0xMS44IDc3LjktMzMuNCAyMC41LTIxLjUgMzEtNDkuNyAyOS41LTc5LjRsLTYtMTIyLjloMjM5LjljMTIuMSAwIDIzLjktMy4yIDM0LjMtOS4zIDQwLjQtMjMuNSA2NS41LTY2LjEgNjUuNS0xMTEgMC0yOC4zLTkuMy01NS41LTI2LjEtNzcuN3ptLTc0LjcgMTI2LjFINDk2LjhsOS42IDE5OC40Yy42IDExLjktNC43IDIzLjEtMTQuNiAzMC41LTYuMSA0LjUtMTMuNiA2LjgtMjEuMSA2LjdhNDQuMjggNDQuMjggMCAwMS00Mi4yLTMyLjNjLTM3LjEtMTM0LjQtNjQuOS0yMzUuMi04My41LTMwMi41VjE3MmgzOTkuNGE1Ni44NSA1Ni44NSAwIDAxMzMuNiA1MS44YzAgOS43LTIuMyAxOC45LTYuOSAyNy4zbC0xMy45IDI1LjQgMjEuOSAxOWE1Ni43NiA1Ni43NiAwIDAxMTkuNiA0M2MwIDkuNy0yLjMgMTguOS02LjkgMjcuM2wtMTMuOSAyNS40IDIxLjkgMTlhNTYuNzYgNTYuNzYgMCAwMTE5LjYgNDNjMCA5LjctMi4zIDE4LjktNi45IDI3LjNsLTE0IDI1LjUgMjEuOSAxOWE1Ni43NiA1Ni43NiAwIDAxMTkuNiA0M2MwIDE5LjEtMTEgMzcuNS0yOC44IDQ4LjR6IixmaWxsOmZ9fV19fSxuYW1lOiJkaXNsaWtlIix0aGVtZToidHdvdG9uZSJ9LFRkPUVkLE1kPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOlRkfSkpfSxSZD10LmZvcndhcmRSZWYoTWQpLElkPVJkLFBkPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6eyJmaWxsLXJ1bGUiOiJldmVub2RkIix2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTU1Ljg4IDQ4OC4yNGgtOTIuNjJ2LTgyLjc5aDkyLjYyem0wLTI4Ni4yNGgtOTIuNjJ2ODUuNTloOTIuNjJ6bTEwOS40NSAyMDMuNDVINTcyLjd2ODIuNzloOTIuNjJ6bS0yMTguOS0xMDEuMDJoLTkyLjYxdjg0LjE4aDkyLjZ6bTEwOS40NSAwaC05Mi42MXY4NC4xOGg5Mi42em0zODguNjkgMTQwLjNjLTE5LjY1LTE0LjAyLTY3LjM2LTE4LjIzLTEwMi40NC0xMS4yMi00LjItMzMuNjctMjMuODUtNjMuMTQtNTcuNTMtODkuOGwtMTkuNjUtMTIuNjItMTIuNjIgMTkuNjRjLTI1LjI2IDM5LjI5LTMyLjI4IDEwMy44My01LjYyIDE0NS45Mi0xMi42MyA3LjAyLTM2LjQ4IDE1LjQ0LTY3LjM1IDE1LjQ0SDY3LjU2Yy0xMi42MyA3MS41NiA4LjQyIDE2NC4xNiA2MS43NCAyMjcuM0MxODEuMjIgODAxLjEzIDI1OS44IDgzMiAzNjAuODMgODMyYzIyMC4zIDAgMzg0LjQ4LTEwMS4wMiA0NjAuMjUtMjg2LjI0IDI5LjQ3IDAgOTUuNDIgMCAxMjcuNy02My4xNCAxLjQtMi44IDkuODItMTguMjQgMTEuMjItMjMuODV6bS03MTcuMDQtMzkuMjhoLTkyLjYxdjgyLjc5aDkyLjZ6bTEwOS40NSAwaC05Mi42MXY4Mi43OWg5Mi42em0xMDkuNDUgMGgtOTIuNjF2ODIuNzloOTIuNnpNMzM2Ljk4IDMwNC40M2gtOTIuNjF2ODQuMTloOTIuNnoifX1dfSxuYW1lOiJkb2NrZXIiLHRoZW1lOiJvdXRsaW5lZCJ9LHpkPVBkLEZkPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOnpkfSkpfSxBZD10LmZvcndhcmRSZWYoRmQpLExkPUFkLFpkPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMjIuMyA2NjUuMmwuMiAzMS43YzAgNC40LTMuNiA4LjEtOCA4LjFoLTI4LjRjLTQuNCAwLTgtMy42LTgtOHYtMzEuNEM0MDEuMyA3MjMgMzU5LjUgNjcyLjQgMzU1IDYxNy40Yy0uNC00LjcgMy4zLTguNyA4LTguN2g0Ni4yYzMuOSAwIDcuMyAyLjggNy45IDYuNiA1LjEgMzEuNyAyOS44IDU1LjQgNzQuMSA2MS4zVjUzMy45bC0yNC43LTYuM2MtNTIuMy0xMi41LTEwMi4xLTQ1LjEtMTAyLjEtMTEyLjcgMC03Mi45IDU1LjQtMTEyLjEgMTI2LjItMTE5di0zM2MwLTQuNCAzLjYtOCA4LThoMjguMWM0LjQgMCA4IDMuNiA4IDh2MzIuN2M2OC41IDYuOSAxMTkuOSA0Ni45IDEyNS45IDEwOS4yLjUgNC43LTMuMiA4LjgtOCA4LjhoLTQ0LjljLTQgMC03LjQtMy03LjktNi45LTQtMjkuMi0yNy40LTUzLTY1LjUtNTguMnYxMzQuM2wyNS40IDUuOWM2NC44IDE2IDEwOC45IDQ3IDEwOC45IDExNi40IDAgNzUuMy01NiAxMTcuMy0xMzQuMyAxMjQuMXpNNDI2LjYgNDEwLjNjMCAyNS40IDE1LjcgNDUuMSA0OS41IDU3LjMgNC43IDEuOSA5LjQgMy40IDE1IDV2LTEyNGMtMzYuOSA0LjctNjQuNSAyNS40LTY0LjUgNjEuN3ptMTE2LjUgMTM1LjJjLTIuOC0uNi01LjYtMS4zLTguOC0yLjJWNjc3YzQyLjYtMy44IDcyLTI3LjIgNzItNjYuNCAwLTMwLjctMTUuOS01MC43LTYzLjItNjUuMXoifX1dfSxuYW1lOiJkb2xsYXItY2lyY2xlIix0aGVtZToiZmlsbGVkIn0sJGQ9WmQsSGQ9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246JGR9KSl9LERkPXQuZm9yd2FyZFJlZihIZCksQmQ9RGQsVmQ9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnptNDcuNy0zOTUuMmwtMjUuNC01LjlWMzQ4LjZjMzggNS4yIDYxLjUgMjkgNjUuNSA1OC4yLjUgNCAzLjkgNi45IDcuOSA2LjloNDQuOWM0LjcgMCA4LjQtNC4xIDgtOC44LTYuMS02Mi4zLTU3LjQtMTAyLjMtMTI1LjktMTA5LjJWMjYzYzAtNC40LTMuNi04LTgtOGgtMjguMWMtNC40IDAtOCAzLjYtOCA4djMzYy03MC44IDYuOS0xMjYuMiA0Ni0xMjYuMiAxMTkgMCA2Ny42IDQ5LjggMTAwLjIgMTAyLjEgMTEyLjdsMjQuNyA2LjN2MTQyLjdjLTQ0LjItNS45LTY5LTI5LjUtNzQuMS02MS4zLS42LTMuOC00LTYuNi03LjktNi42SDM2M2MtNC43IDAtOC40IDQtOCA4LjcgNC41IDU1IDQ2LjIgMTA1LjYgMTM1LjIgMTEyLjFWNzYxYzAgNC40IDMuNiA4IDggOGgyOC40YzQuNCAwIDgtMy42IDgtOC4xbC0uMi0zMS43Yzc4LjMtNi45IDEzNC4zLTQ4LjggMTM0LjMtMTI0LS4xLTY5LjQtNDQuMi0xMDAuNC0xMDktMTE2LjR6bS02OC42LTE2LjJjLTUuNi0xLjYtMTAuMy0zLjEtMTUtNS0zMy44LTEyLjItNDkuNS0zMS45LTQ5LjUtNTcuMyAwLTM2LjMgMjcuNS01NyA2NC41LTYxLjd2MTI0ek01MzQuMyA2NzdWNTQzLjNjMy4xLjkgNS45IDEuNiA4LjggMi4yIDQ3LjMgMTQuNCA2My4yIDM0LjQgNjMuMiA2NS4xIDAgMzkuMS0yOS40IDYyLjYtNzIgNjYuNHoifX1dfSxuYW1lOiJkb2xsYXItY2lyY2xlIix0aGVtZToib3V0bGluZWQifSxOZD1WZCxqZD1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpOZH0pKX0sVWQ9dC5mb3J3YXJkUmVmKGpkKSxXZD1VZCxrZD17aWNvbjpmdW5jdGlvbihmLHYpe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6IixmaWxsOmZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQyNi42IDQxMC4zYzAgMjUuNCAxNS43IDQ1LjEgNDkuNSA1Ny4zIDQuNyAxLjkgOS40IDMuNCAxNSA1di0xMjRjLTM3IDQuNy02NC41IDI1LjQtNjQuNSA2MS43em0xMTYuNSAxMzUuMmMtMi45LS42LTUuNy0xLjMtOC44LTIuMlY2NzdjNDIuNi0zLjggNzItMjcuMyA3Mi02Ni40IDAtMzAuNy0xNS45LTUwLjctNjMuMi02NS4xeiIsZmlsbDp2fX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgMTQwYy0yMDUuNCAwLTM3MiAxNjYuNi0zNzIgMzcyczE2Ni42IDM3MiAzNzIgMzcyIDM3Mi0xNjYuNiAzNzItMzcyLTE2Ni42LTM3Mi0zNzItMzcyem0yMi40IDU4OS4ybC4yIDMxLjdjMCA0LjUtMy42IDguMS04IDguMWgtMjguNGMtNC40IDAtOC0zLjYtOC04di0zMS40Yy04OS02LjUtMTMwLjctNTcuMS0xMzUuMi0xMTIuMS0uNC00LjcgMy4zLTguNyA4LTguN2g0Ni4yYzMuOSAwIDcuMyAyLjggNy45IDYuNiA1LjEgMzEuOCAyOS45IDU1LjQgNzQuMSA2MS4zVjUzNGwtMjQuNy02LjNjLTUyLjMtMTIuNS0xMDIuMS00NS4xLTEwMi4xLTExMi43IDAtNzMgNTUuNC0xMTIuMSAxMjYuMi0xMTl2LTMzYzAtNC40IDMuNi04IDgtOGgyOC4xYzQuNCAwIDggMy42IDggOHYzMi43YzY4LjUgNi45IDExOS44IDQ2LjkgMTI1LjkgMTA5LjJhOC4xIDguMSAwIDAxLTggOC44aC00NC45Yy00IDAtNy40LTIuOS03LjktNi45LTQtMjkuMi0yNy41LTUzLTY1LjUtNTguMnYxMzQuM2wyNS40IDUuOWM2NC44IDE2IDEwOC45IDQ3IDEwOSAxMTYuNCAwIDc1LjItNTYgMTE3LjEtMTM0LjMgMTI0eiIsZmlsbDp2fX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01NTkuNyA0ODguOGwtMjUuNC01LjlWMzQ4LjZjMzggNS4yIDYxLjUgMjkgNjUuNSA1OC4yLjUgNCAzLjkgNi45IDcuOSA2LjloNDQuOWM0LjcgMCA4LjQtNC4xIDgtOC44LTYuMS02Mi4zLTU3LjQtMTAyLjMtMTI1LjktMTA5LjJWMjYzYzAtNC40LTMuNi04LTgtOGgtMjguMWMtNC40IDAtOCAzLjYtOCA4djMzYy03MC44IDYuOS0xMjYuMiA0Ni0xMjYuMiAxMTkgMCA2Ny42IDQ5LjggMTAwLjIgMTAyLjEgMTEyLjdsMjQuNyA2LjN2MTQyLjdjLTQ0LjItNS45LTY5LTI5LjUtNzQuMS02MS4zLS42LTMuOC00LTYuNi03LjktNi42SDM2M2MtNC43IDAtOC40IDQtOCA4LjcgNC41IDU1IDQ2LjIgMTA1LjYgMTM1LjIgMTEyLjFWNzYxYzAgNC40IDMuNiA4IDggOGgyOC40YzQuNCAwIDgtMy42IDgtOC4xbC0uMi0zMS43Yzc4LjMtNi45IDEzNC4zLTQ4LjggMTM0LjMtMTI0LS4xLTY5LjQtNDQuMi0xMDAuNC0xMDktMTE2LjR6bS02OC42LTE2LjJjLTUuNi0xLjYtMTAuMy0zLjEtMTUtNS0zMy44LTEyLjItNDkuNS0zMS45LTQ5LjUtNTcuMyAwLTM2LjMgMjcuNS01NyA2NC41LTYxLjd2MTI0ek01MzQuMyA2NzdWNTQzLjNjMy4xLjkgNS45IDEuNiA4LjggMi4yIDQ3LjMgMTQuNCA2My4yIDM0LjQgNjMuMiA2NS4xIDAgMzkuMS0yOS40IDYyLjYtNzIgNjYuNHoiLGZpbGw6Zn19XX19LG5hbWU6ImRvbGxhci1jaXJjbGUiLHRoZW1lOiJ0d290b25lIn0sS2Q9a2QsX2Q9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246S2R9KSl9LEdkPXQuZm9yd2FyZFJlZihfZCksWWQ9R2QsWGQ9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnptNDcuNy0zOTUuMmwtMjUuNC01LjlWMzQ4LjZjMzggNS4yIDYxLjUgMjkgNjUuNSA1OC4yLjUgNCAzLjkgNi45IDcuOSA2LjloNDQuOWM0LjcgMCA4LjQtNC4xIDgtOC44LTYuMS02Mi4zLTU3LjQtMTAyLjMtMTI1LjktMTA5LjJWMjYzYzAtNC40LTMuNi04LTgtOGgtMjguMWMtNC40IDAtOCAzLjYtOCA4djMzYy03MC44IDYuOS0xMjYuMiA0Ni0xMjYuMiAxMTkgMCA2Ny42IDQ5LjggMTAwLjIgMTAyLjEgMTEyLjdsMjQuNyA2LjN2MTQyLjdjLTQ0LjItNS45LTY5LTI5LjUtNzQuMS02MS4zLS42LTMuOC00LTYuNi03LjktNi42SDM2M2MtNC43IDAtOC40IDQtOCA4LjcgNC41IDU1IDQ2LjIgMTA1LjYgMTM1LjIgMTEyLjFWNzYxYzAgNC40IDMuNiA4IDggOGgyOC40YzQuNCAwIDgtMy42IDgtOC4xbC0uMi0zMS43Yzc4LjMtNi45IDEzNC4zLTQ4LjggMTM0LjMtMTI0LS4xLTY5LjQtNDQuMi0xMDAuNC0xMDktMTE2LjR6bS02OC42LTE2LjJjLTUuNi0xLjYtMTAuMy0zLjEtMTUtNS0zMy44LTEyLjItNDkuNS0zMS45LTQ5LjUtNTcuMyAwLTM2LjMgMjcuNS01NyA2NC41LTYxLjd2MTI0ek01MzQuMyA2NzdWNTQzLjNjMy4xLjkgNS45IDEuNiA4LjggMi4yIDQ3LjMgMTQuNCA2My4yIDM0LjQgNjMuMiA2NS4xIDAgMzkuMS0yOS40IDYyLjYtNzIgNjYuNHoifX1dfSxuYW1lOiJkb2xsYXIiLHRoZW1lOiJvdXRsaW5lZCJ9LFFkPVhkLEpkPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOlFkfSkpfSxxZD10LmZvcndhcmRSZWYoSmQpLGVmPXFkLHRmPXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnoiLGZpbGw6Zn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNDI2LjYgNDEwLjNjMCAyNS40IDE1LjcgNDUuMSA0OS41IDU3LjMgNC43IDEuOSA5LjQgMy40IDE1IDV2LTEyNGMtMzcgNC43LTY0LjUgMjUuNC02NC41IDYxLjd6bTExNi41IDEzNS4yYy0yLjktLjYtNS43LTEuMy04LjgtMi4yVjY3N2M0Mi42LTMuOCA3Mi0yNy4zIDcyLTY2LjQgMC0zMC43LTE1LjktNTAuNy02My4yLTY1LjF6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiAxNDBjLTIwNS40IDAtMzcyIDE2Ni42LTM3MiAzNzJzMTY2LjYgMzcyIDM3MiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzItMTY2LjYtMzcyLTM3Mi0zNzJ6bTIyLjQgNTg5LjJsLjIgMzEuN2MwIDQuNS0zLjYgOC4xLTggOC4xaC0yOC40Yy00LjQgMC04LTMuNi04LTh2LTMxLjRjLTg5LTYuNS0xMzAuNy01Ny4xLTEzNS4yLTExMi4xLS40LTQuNyAzLjMtOC43IDgtOC43aDQ2LjJjMy45IDAgNy4zIDIuOCA3LjkgNi42IDUuMSAzMS44IDI5LjkgNTUuNCA3NC4xIDYxLjNWNTM0bC0yNC43LTYuM2MtNTIuMy0xMi41LTEwMi4xLTQ1LjEtMTAyLjEtMTEyLjcgMC03MyA1NS40LTExMi4xIDEyNi4yLTExOXYtMzNjMC00LjQgMy42LTggOC04aDI4LjFjNC40IDAgOCAzLjYgOCA4djMyLjdjNjguNSA2LjkgMTE5LjggNDYuOSAxMjUuOSAxMDkuMmE4LjEgOC4xIDAgMDEtOCA4LjhoLTQ0LjljLTQgMC03LjQtMi45LTcuOS02LjktNC0yOS4yLTI3LjUtNTMtNjUuNS01OC4ydjEzNC4zbDI1LjQgNS45YzY0LjggMTYgMTA4LjkgNDcgMTA5IDExNi40IDAgNzUuMi01NiAxMTcuMS0xMzQuMyAxMjR6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTU1OS43IDQ4OC44bC0yNS40LTUuOVYzNDguNmMzOCA1LjIgNjEuNSAyOSA2NS41IDU4LjIuNSA0IDMuOSA2LjkgNy45IDYuOWg0NC45YzQuNyAwIDguNC00LjEgOC04LjgtNi4xLTYyLjMtNTcuNC0xMDIuMy0xMjUuOS0xMDkuMlYyNjNjMC00LjQtMy42LTgtOC04aC0yOC4xYy00LjQgMC04IDMuNi04IDh2MzNjLTcwLjggNi45LTEyNi4yIDQ2LTEyNi4yIDExOSAwIDY3LjYgNDkuOCAxMDAuMiAxMDIuMSAxMTIuN2wyNC43IDYuM3YxNDIuN2MtNDQuMi01LjktNjktMjkuNS03NC4xLTYxLjMtLjYtMy44LTQtNi42LTcuOS02LjZIMzYzYy00LjcgMC04LjQgNC04IDguNyA0LjUgNTUgNDYuMiAxMDUuNiAxMzUuMiAxMTIuMVY3NjFjMCA0LjQgMy42IDggOCA4aDI4LjRjNC40IDAgOC0zLjYgOC04LjFsLS4yLTMxLjdjNzguMy02LjkgMTM0LjMtNDguOCAxMzQuMy0xMjQtLjEtNjkuNC00NC4yLTEwMC40LTEwOS0xMTYuNHptLTY4LjYtMTYuMmMtNS42LTEuNi0xMC4zLTMuMS0xNS01LTMzLjgtMTIuMi00OS41LTMxLjktNDkuNS01Ny4zIDAtMzYuMyAyNy41LTU3IDY0LjUtNjEuN3YxMjR6TTUzNC4zIDY3N1Y1NDMuM2MzLjEuOSA1LjkgMS42IDguOCAyLjIgNDcuMyAxNC40IDYzLjIgMzQuNCA2My4yIDY1LjEgMCAzOS4xLTI5LjQgNjIuNi03MiA2Ni40eiIsZmlsbDpmfX1dfX0sbmFtZToiZG9sbGFyIix0aGVtZToidHdvdG9uZSJ9LG5mPXRmLHJmPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOm5mfSkpfSxhZj10LmZvcndhcmRSZWYocmYpLG9mPWFmLGxmPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODggNzkySDIwMFYxNjhjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djY4OGMwIDQuNCAzLjYgOCA4IDhoNzUyYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04ek0yODggNjA0YTY0IDY0IDAgMTAxMjggMCA2NCA2NCAwIDEwLTEyOCAwem0xMTgtMjI0YTQ4IDQ4IDAgMTA5NiAwIDQ4IDQ4IDAgMTAtOTYgMHptMTU4IDIyOGE5NiA5NiAwIDEwMTkyIDAgOTYgOTYgMCAxMC0xOTIgMHptMTQ4LTMxNGE1NiA1NiAwIDEwMTEyIDAgNTYgNTYgMCAxMC0xMTIgMHoifX1dfSxuYW1lOiJkb3QtY2hhcnQiLHRoZW1lOiJvdXRsaW5lZCJ9LHNmPWxmLGNmPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOnNmfSkpfSx1Zj10LmZvcndhcmRSZWYoY2YpLGRmPXVmLGZmPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6eyJmaWxsLXJ1bGUiOiJldmVub2RkIix2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6ImciLGF0dHJzOnsiZmlsbC1vcGFjaXR5IjoiLjg4In0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMTAxLjI4IDY2MmMtMTAuNjUgMC0xOS41My0zLjMtMjYuNjMtOS44OS03LjEtNi42LTEwLjY1LTE0LjctMTAuNjUtMjQuMzIgMC05Ljg5IDMuNjUtMTggMTAuOTYtMjQuMzEgNy4zLTYuMzIgMTYuNDItOS40OCAyNy4zNS05LjQ4IDExLjA2IDAgMjAuMSAzLjIgMjcuMTQgOS41OCA3LjAzIDYuMzkgMTAuNTUgMTQuNDYgMTAuNTUgMjQuMjEgMCAxMC4wMy0zLjU4IDE4LjI0LTEwLjc2IDI0LjYzLTcuMTcgNi4zOS0xNi40OSA5LjU4LTI3Ljk2IDkuNThNNDU4IDY1N2gtNjYuOTdsLTEyMS40LTE4NS4zNWMtNy4xMy0xMC44NC0xMi4wNi0xOS0xNC44LTI0LjQ4aC0uODJjMS4xIDEwLjQyIDEuNjUgMjYuMzMgMS42NSA0Ny43MlY2NTdIMTkzVjM2Mmg3MS40OWwxMTYuODkgMTc5LjZhNDIzLjIzIDQyMy4yMyAwIDAxMTQuNzkgMjQuMDZoLjgyYy0xLjEtNi44Ni0xLjY0LTIwLjM3LTEuNjQtNDAuNTNWMzYySDQ1OHpNNzAyIDY1N0g1MjVWMzYyaDE3MC4ydjU0LjFINTkxLjQ5djY1LjYzSDY4OHY1My45aC05Ni41MnY2Ny40N0g3MDJ6TTk2MCA0MTYuMWgtODMuOTVWNjU3aC02Ni41VjQxNi4xSDcyNlYzNjJoMjM0eiJ9fV19XX0sbmFtZToiZG90LW5ldCIsdGhlbWU6Im91dGxpbmVkIn0sdmY9ZmYsaGY9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246dmZ9KSl9LG1mPXQuZm9yd2FyZFJlZihoZiksZ2Y9bWYscGY9ZSgyNDYpLHlmPWUoOTY4NDIpLENmPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMTg0LjUgMzUzLjdsLTE3OCAyNDZhNy45NSA3Ljk1IDAgMDEtMTIuOSAwbC0xNzgtMjQ2Yy0zLjgtNS4zIDAtMTIuNyA2LjUtMTIuN0gzODFjMTAuMiAwIDE5LjkgNC45IDI1LjkgMTMuMkw1MTIgNTYzLjZsMTA1LjItMTQ1LjRjNi04LjMgMTUuNi0xMy4yIDI1LjktMTMuMkg2OTBjNi41IDAgMTAuMyA3LjQgNi41IDEyLjd6In19XX0sbmFtZToiZG93bi1jaXJjbGUiLHRoZW1lOiJmaWxsZWQifSxiZj1DZixTZj1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpiZn0pKX0sT2Y9dC5mb3J3YXJkUmVmKFNmKSx4Zj1PZix3Zj17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNjkwIDQwNWgtNDYuOWMtMTAuMiAwLTE5LjkgNC45LTI1LjkgMTMuMkw1MTIgNTYzLjYgNDA2LjggNDE4LjJjLTYtOC4zLTE1LjYtMTMuMi0yNS45LTEzLjJIMzM0Yy02LjUgMC0xMC4zIDcuNC02LjUgMTIuN2wxNzggMjQ2YzMuMiA0LjQgOS43IDQuNCAxMi45IDBsMTc4LTI0NmMzLjktNS4zLjEtMTIuNy02LjQtMTIuN3oifX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6In19XX0sbmFtZToiZG93bi1jaXJjbGUiLHRoZW1lOiJvdXRsaW5lZCJ9LEVmPXdmLFRmPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkVmfSkpfSxNZj10LmZvcndhcmRSZWYoVGYpLFJmPU1mLElmPXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiAxNDBjLTIwNS40IDAtMzcyIDE2Ni42LTM3MiAzNzJzMTY2LjYgMzcyIDM3MiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzItMTY2LjYtMzcyLTM3Mi0zNzJ6bTE4NC40IDI3Ny43bC0xNzggMjQ2YTcuOTUgNy45NSAwIDAxLTEyLjkgMGwtMTc4LTI0NmMtMy44LTUuMyAwLTEyLjcgNi41LTEyLjdoNDYuOWMxMC4zIDAgMTkuOSA0LjkgMjUuOSAxMy4yTDUxMiA1NjMuNmwxMDUuMi0xNDUuNGM2LTguMyAxNS43LTEzLjIgMjUuOS0xMy4ySDY5MGM2LjUgMCAxMC4zIDcuNCA2LjQgMTIuN3oiLGZpbGw6dn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeiIsZmlsbDpmfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02OTAgNDA1aC00Ni45Yy0xMC4yIDAtMTkuOSA0LjktMjUuOSAxMy4yTDUxMiA1NjMuNiA0MDYuOCA0MTguMmMtNi04LjMtMTUuNi0xMy4yLTI1LjktMTMuMkgzMzRjLTYuNSAwLTEwLjMgNy40LTYuNSAxMi43bDE3OCAyNDZjMy4yIDQuNCA5LjcgNC40IDEyLjkgMGwxNzgtMjQ2YzMuOS01LjMuMS0xMi43LTYuNC0xMi43eiIsZmlsbDpmfX1dfX0sbmFtZToiZG93bi1jaXJjbGUiLHRoZW1lOiJ0d290b25lIn0sUGY9SWYsemY9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246UGZ9KSl9LEZmPXQuZm9yd2FyZFJlZih6ZiksQWY9RmYsTGY9ZSg4MDg4MiksWmY9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNjk2LjUgNDEyLjdsLTE3OCAyNDZhNy45NSA3Ljk1IDAgMDEtMTIuOSAwbC0xNzgtMjQ2Yy0zLjgtNS4zIDAtMTIuNyA2LjUtMTIuN0gzODFjMTAuMiAwIDE5LjkgNC45IDI1LjkgMTMuMkw1MTIgNTU4LjZsMTA1LjItMTQ1LjRjNi04LjMgMTUuNi0xMy4yIDI1LjktMTMuMkg2OTBjNi41IDAgMTAuMyA3LjQgNi41IDEyLjd6In19XX0sbmFtZToiZG93bi1zcXVhcmUiLHRoZW1lOiJmaWxsZWQifSwkZj1aZixIZj1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjokZn0pKX0sRGY9dC5mb3J3YXJkUmVmKEhmKSxCZj1EZixWZj17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTA1LjUgNjU4LjdjMy4yIDQuNCA5LjcgNC40IDEyLjkgMGwxNzgtMjQ2YzMuOC01LjMgMC0xMi43LTYuNS0xMi43SDY0M2MtMTAuMiAwLTE5LjkgNC45LTI1LjkgMTMuMkw1MTIgNTU4LjYgNDA2LjggNDEzLjJjLTYtOC4zLTE1LjYtMTMuMi0yNS45LTEzLjJIMzM0Yy02LjUgMC0xMC4zIDcuNC02LjUgMTIuN2wxNzggMjQ2eiJ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6In19XX0sbmFtZToiZG93bi1zcXVhcmUiLHRoZW1lOiJvdXRsaW5lZCJ9LE5mPVZmLGpmPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOk5mfSkpfSxVZj10LmZvcndhcmRSZWYoamYpLFdmPVVmLGtmPXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6IixmaWxsOmZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTE4NCA4NDBoNjU2VjE4NEgxODR2NjU2em0xNTAtNDQwaDQ2LjljMTAuMyAwIDE5LjkgNC45IDI1LjkgMTMuMkw1MTIgNTU4LjZsMTA1LjItMTQ1LjRjNi04LjMgMTUuNy0xMy4yIDI1LjktMTMuMkg2OTBjNi41IDAgMTAuMyA3LjQgNi40IDEyLjdsLTE3OCAyNDZhNy45NSA3Ljk1IDAgMDEtMTIuOSAwbC0xNzgtMjQ2Yy0zLjgtNS4zIDAtMTIuNyA2LjUtMTIuN3oiLGZpbGw6dn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTA1LjUgNjU4LjdjMy4yIDQuNCA5LjcgNC40IDEyLjkgMGwxNzgtMjQ2YzMuOS01LjMuMS0xMi43LTYuNC0xMi43aC00Ni45Yy0xMC4yIDAtMTkuOSA0LjktMjUuOSAxMy4yTDUxMiA1NTguNiA0MDYuOCA0MTMuMmMtNi04LjMtMTUuNi0xMy4yLTI1LjktMTMuMkgzMzRjLTYuNSAwLTEwLjMgNy40LTYuNSAxMi43bDE3OCAyNDZ6IixmaWxsOmZ9fV19fSxuYW1lOiJkb3duLXNxdWFyZSIsdGhlbWU6InR3b3RvbmUifSxLZj1rZixfZj1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpLZn0pKX0sR2Y9dC5mb3J3YXJkUmVmKF9mKSxZZj1HZixYZj1lKDIzNDMwKSxRZj17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTA5LjMgNTA2LjNMNzgxLjcgNDA1LjZhNy4yMyA3LjIzIDAgMDAtMTEuNyA1LjdWNDc2SDU0OFYyNTRoNjQuOGM2IDAgOS40LTcgNS43LTExLjdMNTE3LjcgMTE0LjdhNy4xNCA3LjE0IDAgMDAtMTEuMyAwTDQwNS42IDI0Mi4zYTcuMjMgNy4yMyAwIDAwNS43IDExLjdINDc2djIyMkgyNTR2LTY0LjhjMC02LTctOS40LTExLjctNS43TDExNC43IDUwNi4zYTcuMTQgNy4xNCAwIDAwMCAxMS4zbDEyNy41IDEwMC44YzQuNyAzLjcgMTEuNy40IDExLjctNS43VjU0OGgyMjJ2MjIyaC02NC44Yy02IDAtOS40IDctNS43IDExLjdsMTAwLjggMTI3LjVjMi45IDMuNyA4LjUgMy43IDExLjMgMGwxMDAuOC0xMjcuNWMzLjctNC43LjQtMTEuNy01LjctMTEuN0g1NDhWNTQ4aDIyMnY2NC44YzAgNiA3IDkuNCAxMS43IDUuN2wxMjcuNS0xMDAuOGE3LjMgNy4zIDAgMDAuMS0xMS40eiJ9fV19LG5hbWU6ImRyYWciLHRoZW1lOiJvdXRsaW5lZCJ9LEpmPVFmLHFmPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkpmfSkpfSxlNT10LmZvcndhcmRSZWYocWYpLHQ1PWU1LG41PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02NzUuMSAzMjguM2EyNDUuMiAyNDUuMiAwIDAwLTIyMC44LTU1LjFjNi44IDkuMSA1MS41IDY5LjkgOTEuOCAxNDQgODcuNS0zMi44IDEyNC41LTgyLjYgMTI5LTg4Ljl6TTU1NCA1NTIuOGMtMTM4LjcgNDguMy0xODguNiAxNDQuNi0xOTMgMTUzLjYgNDEuNyAzMi41IDk0LjEgNTEuOSAxNTEgNTEuOSAzNC4xIDAgNjYuNi02LjkgOTYuMS0xOS41LTMuNy0yMS42LTE3LjktOTYuOC01Mi41LTE4Ni42bC0xLjYuNnptNDcuNy0xMS45YzMyLjIgODguNCA0NS4zIDE2MC40IDQ3LjggMTc1LjQgNTUuMi0zNy4zIDk0LjUtOTYuNCAxMDUuNC0xNjQuOS04LjQtMi42LTc2LjEtMjIuOC0xNTMuMi0xMC41ek01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA3MzZjLTE1OC44IDAtMjg4LTEyOS4yLTI4OC0yODhzMTI5LjItMjg4IDI4OC0yODggMjg4IDEyOS4yIDI4OCAyODgtMTI5LjIgMjg4LTI4OCAyODh6bTUzLjEtMzQ2LjJjNS43IDExLjcgMTEuMiAyMy42IDE2LjMgMzUuNiAxLjggNC4yIDMuNiA4LjQgNS4zIDEyLjcgODEuOC0xMC4zIDE2My4yIDYuMiAxNzEuMyA3LjktLjUtNTguMS0yMS4zLTExMS40LTU1LjUtMTUzLjMtNS4zIDcuMS00Ni41IDYwLTEzNy40IDk3LjF6TTQ5OC42IDQzMmMtNDAuOC03Mi41LTg0LjctMTMzLjQtOTEuMi0xNDIuMy02OC44IDMyLjUtMTIwLjMgOTUuOS0xMzYuMiAxNzIuMiAxMSAuMiAxMTIuNC43IDIyNy40LTI5Ljl6bTMwLjYgODIuNWMzLjItMSA2LjQtMiA5LjctMi45LTYuMi0xNC0xMi45LTI4LTE5LjktNDEuNy0xMjIuOCAzNi44LTI0Mi4xIDM1LjItMjUyLjggMzUtLjEgMi41LS4xIDUtLjEgNy41IDAgNjMuMiAyMy45IDEyMC45IDYzLjIgMTY0LjUgNS41LTkuNiA3My0xMjEuNCAxOTkuOS0xNjIuNHoifX1dfSxuYW1lOiJkcmliYmJsZS1jaXJjbGUiLHRoZW1lOiJmaWxsZWQifSxyNT1uNSxhNT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpyNX0pKX0sbzU9dC5mb3J3YXJkUmVmKGE1KSxpNT1vNSxsNT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDk2QzI4Mi42IDk2IDk2IDI4Mi42IDk2IDUxMnMxODYuNiA0MTYgNDE2IDQxNiA0MTYtMTg2LjYgNDE2LTQxNlM3NDEuNCA5NiA1MTIgOTZ6bTI3NS4xIDE5MS44YzQ5LjUgNjAuNSA3OS41IDEzNy41IDgwLjIgMjIxLjQtMTEuNy0yLjUtMTI5LjItMjYuMy0yNDcuNC0xMS40LTIuNS02LjEtNS0xMi4yLTcuNi0xOC4zLTcuNC0xNy4zLTE1LjMtMzQuNi0yMy42LTUxLjVDNzIwIDM3NC4zIDc3OS42IDI5OCA3ODcuMSAyODcuOHpNNTEyIDE1Ny4yYzkwLjMgMCAxNzIuOCAzMy45IDIzNS41IDg5LjUtNi40IDkuMS01OS45IDgxLTE4Ni4yIDEyOC40LTU4LjItMTA3LTEyMi43LTE5NC44LTEzMi42LTIwOCAyNy4zLTYuNiA1NS4yLTkuOSA4My4zLTkuOXpNMzYwLjkgMTkxYzkuNCAxMi44IDcyLjkgMTAwLjkgMTMxLjcgMjA1LjVDMzI2LjQgNDQwLjYgMTgwIDQ0MCAxNjQuMSA0MzkuOGMyMy4xLTExMC4zIDk3LjQtMjAxLjkgMTk2LjgtMjQ4Ljh6TTE1Ni43IDUxMi41YzAtMy42LjEtNy4zLjItMTAuOSAxNS41LjMgMTg3LjcgMi41IDM2NS4yLTUwLjYgMTAuMiAxOS45IDE5LjkgNDAuMSAyOC44IDYwLjMtNC43IDEuMy05LjQgMi43LTE0IDQuMkMzNTMuNiA1NzQuOSAyNTYuMSA3MzYuNCAyNDggNzUwLjFjLTU2LjctNjMtOTEuMy0xNDYuMy05MS4zLTIzNy42ek01MTIgODY3LjhjLTgyLjIgMC0xNTcuOS0yOC0yMTguMS03NSA2LjQtMTMuMSA3OC4zLTE1MiAyNzguNy0yMjEuOWwyLjMtLjhjNDkuOSAxMjkuNiA3MC41IDIzOC4zIDc1LjggMjY5LjVBMzUwLjQ2IDM1MC40NiAwIDAxNTEyIDg2Ny44em0xOTguNS02MC43Yy0zLjYtMjEuNi0yMi41LTEyNS42LTY5LTI1My4zQzc1Mi45IDUzNiA4NTAuNyA1NjUuMiA4NjIuOCA1NjljLTE1LjggOTguOC03Mi41IDE4NC4yLTE1Mi4zIDIzOC4xeiJ9fV19LG5hbWU6ImRyaWJiYmxlIix0aGVtZToib3V0bGluZWQifSxzNT1sNSxjNT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpzNX0pKX0sdTU9dC5mb3J3YXJkUmVmKGM1KSxkNT11NSxmNT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNDk4LjYgNDMyYy00MC44LTcyLjUtODQuNy0xMzMuNC05MS4yLTE0Mi4zLTY4LjggMzIuNS0xMjAuMyA5NS45LTEzNi4yIDE3Mi4yIDExIC4yIDExMi40LjcgMjI3LjQtMjkuOXptNjYuNSAyMS44YzUuNyAxMS43IDExLjIgMjMuNiAxNi4zIDM1LjYgMS44IDQuMiAzLjYgOC40IDUuMyAxMi43IDgxLjgtMTAuMyAxNjMuMiA2LjIgMTcxLjMgNy45LS41LTU4LjEtMjEuMy0xMTEuNC01NS41LTE1My4zLTUuMyA3LjEtNDYuNSA2MC0xMzcuNCA5Ny4xek04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTUxMiA4MDBjLTE1OC44IDAtMjg4LTEyOS4yLTI4OC0yODhzMTI5LjItMjg4IDI4OC0yODggMjg4IDEyOS4yIDI4OCAyODgtMTI5LjIgMjg4LTI4OCAyODh6bTg5LjctMjU5LjFjMzIuMiA4OC40IDQ1LjMgMTYwLjQgNDcuOCAxNzUuNCA1NS4yLTM3LjMgOTQuNS05Ni40IDEwNS40LTE2NC45LTguNC0yLjYtNzYuMS0yMi44LTE1My4yLTEwLjV6bS03Mi41LTI2LjRjMy4yLTEgNi40LTIgOS43LTIuOS02LjItMTQtMTIuOS0yOC0xOS45LTQxLjctMTIyLjggMzYuOC0yNDIuMSAzNS4yLTI1Mi44IDM1LS4xIDIuNS0uMSA1LS4xIDcuNSAwIDYzLjIgMjMuOSAxMjAuOSA2My4yIDE2NC41IDUuNS05LjYgNzMtMTIxLjQgMTk5LjktMTYyLjR6bTE0NS45LTE4Ni4yYTI0NS4yIDI0NS4yIDAgMDAtMjIwLjgtNTUuMWM2LjggOS4xIDUxLjUgNjkuOSA5MS44IDE0NCA4Ny41LTMyLjggMTI0LjUtODIuNiAxMjktODguOXpNNTU0IDU1Mi44Yy0xMzguNyA0OC4zLTE4OC42IDE0NC42LTE5MyAxNTMuNiA0MS43IDMyLjUgOTQuMSA1MS45IDE1MSA1MS45IDM0LjEgMCA2Ni42LTYuOSA5Ni4xLTE5LjUtMy43LTIxLjYtMTcuOS05Ni44LTUyLjUtMTg2LjZsLTEuNi42eiJ9fV19LG5hbWU6ImRyaWJiYmxlLXNxdWFyZSIsdGhlbWU6ImZpbGxlZCJ9LHY1PWY1LGg1PWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOnY1fSkpfSxtNT10LmZvcndhcmRSZWYoaDUpLGc1PW01LHA1PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00OTguNiA0MzJjLTQwLjgtNzIuNS04NC43LTEzMy40LTkxLjItMTQyLjMtNjguOCAzMi41LTEyMC4zIDk1LjktMTM2LjIgMTcyLjIgMTEgLjIgMTEyLjQuNyAyMjcuNC0yOS45em02Ni41IDIxLjhjNS43IDExLjcgMTEuMiAyMy42IDE2LjMgMzUuNiAxLjggNC4yIDMuNiA4LjQgNS4zIDEyLjcgODEuOC0xMC4zIDE2My4yIDYuMiAxNzEuMyA3LjktLjUtNTguMS0yMS4zLTExMS40LTU1LjUtMTUzLjMtNS4zIDcuMS00Ni41IDYwLTEzNy40IDk3LjF6TTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNTEyIDgwMGMtMTU4LjggMC0yODgtMTI5LjItMjg4LTI4OHMxMjkuMi0yODggMjg4LTI4OCAyODggMTI5LjIgMjg4IDI4OC0xMjkuMiAyODgtMjg4IDI4OHptODkuNy0yNTkuMWMzMi4yIDg4LjQgNDUuMyAxNjAuNCA0Ny44IDE3NS40IDU1LjItMzcuMyA5NC41LTk2LjQgMTA1LjQtMTY0LjktOC40LTIuNi03Ni4xLTIyLjgtMTUzLjItMTAuNXptLTcyLjUtMjYuNGMzLjItMSA2LjQtMiA5LjctMi45LTYuMi0xNC0xMi45LTI4LTE5LjktNDEuNy0xMjIuOCAzNi44LTI0Mi4xIDM1LjItMjUyLjggMzUtLjEgMi41LS4xIDUtLjEgNy41IDAgNjMuMiAyMy45IDEyMC45IDYzLjIgMTY0LjUgNS41LTkuNiA3My0xMjEuNCAxOTkuOS0xNjIuNHptMTQ1LjktMTg2LjJhMjQ1LjIgMjQ1LjIgMCAwMC0yMjAuOC01NS4xYzYuOCA5LjEgNTEuNSA2OS45IDkxLjggMTQ0IDg3LjUtMzIuOCAxMjQuNS04Mi42IDEyOS04OC45ek01NTQgNTUyLjhjLTEzOC43IDQ4LjMtMTg4LjYgMTQ0LjYtMTkzIDE1My42IDQxLjcgMzIuNSA5NC4xIDUxLjkgMTUxIDUxLjkgMzQuMSAwIDY2LjYtNi45IDk2LjEtMTkuNS0zLjctMjEuNi0xNy45LTk2LjgtNTIuNS0xODYuNmwtMS42LjZ6In19XX0sbmFtZToiZHJpYmJibGUtc3F1YXJlIix0aGVtZToib3V0bGluZWQifSx5NT1wNSxDNT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjp5NX0pKX0sYjU9dC5mb3J3YXJkUmVmKEM1KSxTNT1iNSxPNT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNjYzLjggNDU1LjV6bS0xNTEuNS05My44bC0xNTEuOCA5My44IDE1MS44IDkzLjkgMTUxLjUtOTMuOXpNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTE1MS4yIDU5NS41TDUxMi42IDc1MGwtMTUxLTkwLjV2LTMzLjFsNDUuNCAyOS40IDEwNS42LTg3LjcgMTA1LjYgODcuNyA0NS4xLTI5LjR2MzMuMXptLTQ1LjYtMjIuNGwtMTA1LjMtODcuN0w0MDcgNjM3LjFsLTE1MS05OS4yIDEwNC41LTgyLjRMMjU2IDM3MS4yIDQwNyAyNzRsMTA1LjMgODcuN0w2MTcuNiAyNzQgNzY4IDM3Mi4xbC0xMDQuMiA4My41TDc2OCA1MzlsLTE1MC40IDk4LjF6In19XX0sbmFtZToiZHJvcGJveC1jaXJjbGUiLHRoZW1lOiJmaWxsZWQifSx4NT1PNSx3NT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjp4NX0pKX0sRTU9dC5mb3J3YXJkUmVmKHc1KSxUNT1FNSxNNT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNjQgNTU2LjlsMjY0LjIgMTczLjVMNTEyLjUgNTc3IDI0Ni44IDQxMi43em04OTYtMjkwLjN6bTAgMEw2OTYuOCA5NSA1MTIuNSAyNDguNWwyNjUuMiAxNjQuMkw1MTIuNSA1NzdsMTg0LjMgMTUzLjRMOTYwIDU1OC44IDc3Ny43IDQxMi43ek01MTMgNjA5LjhMMzI4LjIgNzYzLjNsLTc5LjQtNTEuNXY1Ny44TDUxMyA5MjhsMjYzLjctMTU4LjR2LTU3LjhsLTc4LjkgNTEuNXpNMzI4LjIgOTVMNjQgMjY1LjFsMTgyLjggMTQ3LjYgMjY1LjctMTY0LjJ6TTY0IDU1Ni45eiJ9fV19LG5hbWU6ImRyb3Bib3giLHRoZW1lOiJvdXRsaW5lZCJ9LFI1PU01LEk1PWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOlI1fSkpfSxQNT10LmZvcndhcmRSZWYoSTUpLHo1PVA1LEY1PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTY2My4yIDY1OS41TDUxMi42IDc1MGwtMTUxLTkwLjV2LTMzLjFsNDUuNCAyOS40IDEwNS42LTg3LjcgMTA1LjYgODcuNyA0NS4xLTI5LjR2MzMuMXptLTQ1LjYtMjIuNGwtMTA1LjMtODcuN0w0MDcgNjM3LjFsLTE1MS05OS4yIDEwNC41LTgyLjRMMjU2IDM3MS4yIDQwNyAyNzRsMTA1LjMgODcuN0w2MTcuNiAyNzQgNzY4IDM3Mi4xbC0xMDQuMiA4My41TDc2OCA1MzlsLTE1MC40IDk4LjF6TTUxMi4zIDM2MS43bC0xNTEuOCA5My44IDE1MS44IDkzLjkgMTUxLjUtOTMuOXptMTUxLjUgOTMuOHoifX1dfSxuYW1lOiJkcm9wYm94LXNxdWFyZSIsdGhlbWU6ImZpbGxlZCJ9LEE1PUY1LEw1PWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkE1fSkpfSxaNT10LmZvcndhcmRSZWYoTDUpLCQ1PVo1LEg1PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgODM2SDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MzZjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTM2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNjIyLjMtODRjMiAwIDQtLjIgNi0uNUw0MzEuOSA3MjJjMi0uNCAzLjktMS4zIDUuMy0yLjhsNDIzLjktNDIzLjlhOS45NiA5Ljk2IDAgMDAwLTE0LjFMNjk0LjkgMTE0LjljLTEuOS0xLjktNC40LTIuOS03LjEtMi45cy01LjIgMS03LjEgMi45TDI1Ni44IDUzOC44Yy0xLjUgMS41LTIuNCAzLjMtMi44IDUuM2wtMjkuNSAxNjguMmEzMy41IDMzLjUgMCAwMDkuNCAyOS44YzYuNiA2LjQgMTQuOSA5LjkgMjMuOCA5Ljl6In19XX0sbmFtZToiZWRpdCIsdGhlbWU6ImZpbGxlZCJ9LEQ1PUg1LEI1PWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkQ1fSkpfSxWNT10LmZvcndhcmRSZWYoQjUpLE41PVY1LGo1PWUoODY1NDgpLFU1PXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTc2MS4xIDI4OC4zTDY4Ny44IDIxNSAzMjUuMSA1NzcuNmwtMTUuNiA4OSA4OC45LTE1Ljd6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCA4MzZIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYzNmMwIDQuNCAzLjYgOCA4IDhoNzg0YzQuNCAwIDgtMy42IDgtOHYtMzZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS02MjIuMy04NGMyIDAgNC0uMiA2LS41TDQzMS45IDcyMmMyLS40IDMuOS0xLjMgNS4zLTIuOGw0MjMuOS00MjMuOWE5Ljk2IDkuOTYgMCAwMDAtMTQuMUw2OTQuOSAxMTQuOWMtMS45LTEuOS00LjQtMi45LTcuMS0yLjlzLTUuMiAxLTcuMSAyLjlMMjU2LjggNTM4LjhjLTEuNSAxLjUtMi40IDMuMy0yLjggNS4zbC0yOS41IDE2OC4yYTMzLjUgMzMuNSAwIDAwOS40IDI5LjhjNi42IDYuNCAxNC45IDkuOSAyMy44IDkuOXptNjcuNC0xNzQuNEw2ODcuOCAyMTVsNzMuMyA3My4zLTM2Mi43IDM2Mi42LTg4LjkgMTUuNyAxNS42LTg5eiIsZmlsbDpmfX1dfX0sbmFtZToiZWRpdCIsdGhlbWU6InR3b3RvbmUifSxXNT1VNSxrNT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpXNX0pKX0sSzU9dC5mb3J3YXJkUmVmKGs1KSxfNT1LNSxHNT1lKDg5NzA1KSxZNT1lKDk5NTcpLFg1PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgMzI3Yy0yOS45IDAtNTggMTEuNi03OS4yIDMyLjhBMTExLjYgMTExLjYgMCAwMDQwMCA0MzljMCAyOS45IDExLjcgNTggMzIuOCA3OS4yQTExMS42IDExMS42IDAgMDA1MTIgNTUxYzI5LjkgMCA1OC0xMS43IDc5LjItMzIuOEM2MTIuNCA0OTcgNjI0IDQ2OC45IDYyNCA0MzljMC0yOS45LTExLjYtNTgtMzIuOC03OS4yUzU0MS45IDMyNyA1MTIgMzI3em0zNDIuNi0zNy45YTM2Mi40OSAzNjIuNDkgMCAwMC03OS45LTExNS43IDM3MC44MyAzNzAuODMgMCAwMC0xMTguMi03Ny44QzYxMC43IDc2LjYgNTYyLjEgNjcgNTEyIDY3Yy01MC4xIDAtOTguNyA5LjYtMTQ0LjUgMjguNS00NC4zIDE4LjMtODQgNDQuNS0xMTguMiA3Ny44QTM2My42IDM2My42IDAgMDAxNjkuNCAyODljLTE5LjUgNDUtMjkuNCA5Mi44LTI5LjQgMTQyIDAgNzAuNiAxNi45IDE0MC45IDUwLjEgMjA4LjcgMjYuNyA1NC41IDY0IDEwNy42IDExMSAxNTguMSA4MC4zIDg2LjIgMTY0LjUgMTM4LjkgMTg4LjQgMTUzYTQzLjkgNDMuOSAwIDAwMjIuNCA2LjFjNy44IDAgMTUuNS0yIDIyLjQtNi4xIDIzLjktMTQuMSAxMDguMS02Ni44IDE4OC40LTE1MyA0Ny01MC40IDg0LjMtMTAzLjYgMTExLTE1OC4xQzg2Ny4xIDU3MiA4ODQgNTAxLjggODg0IDQzMS4xYzAtNDkuMi05LjktOTctMjkuNC0xNDJ6TTUxMiA2MTVjLTk3LjIgMC0xNzYtNzguOC0xNzYtMTc2czc4LjgtMTc2IDE3Ni0xNzYgMTc2IDc4LjggMTc2IDE3Ni03OC44IDE3Ni0xNzYgMTc2eiJ9fV19LG5hbWU6ImVudmlyb25tZW50Iix0aGVtZToiZmlsbGVkIn0sUTU9WDUsSjU9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246UTV9KSl9LHE1PXQuZm9yd2FyZFJlZihKNSksZXY9cTUsdHY9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg1NC42IDI4OS4xYTM2Mi40OSAzNjIuNDkgMCAwMC03OS45LTExNS43IDM3MC44MyAzNzAuODMgMCAwMC0xMTguMi03Ny44QzYxMC43IDc2LjYgNTYyLjEgNjcgNTEyIDY3Yy01MC4xIDAtOTguNyA5LjYtMTQ0LjUgMjguNS00NC4zIDE4LjMtODQgNDQuNS0xMTguMiA3Ny44QTM2My42IDM2My42IDAgMDAxNjkuNCAyODljLTE5LjUgNDUtMjkuNCA5Mi44LTI5LjQgMTQyIDAgNzAuNiAxNi45IDE0MC45IDUwLjEgMjA4LjcgMjYuNyA1NC41IDY0IDEwNy42IDExMSAxNTguMSA4MC4zIDg2LjIgMTY0LjUgMTM4LjkgMTg4LjQgMTUzYTQzLjkgNDMuOSAwIDAwMjIuNCA2LjFjNy44IDAgMTUuNS0yIDIyLjQtNi4xIDIzLjktMTQuMSAxMDguMS02Ni44IDE4OC40LTE1MyA0Ny01MC40IDg0LjMtMTAzLjYgMTExLTE1OC4xQzg2Ny4xIDU3MiA4ODQgNTAxLjggODg0IDQzMS4xYzAtNDkuMi05LjktOTctMjkuNC0xNDJ6TTUxMiA4ODAuMmMtNjUuOS00MS45LTMwMC0yMDcuOC0zMDAtNDQ5LjEgMC03Ny45IDMxLjEtMTUxLjEgODcuNi0yMDYuM0MzNTYuMyAxNjkuNSA0MzEuNyAxMzkgNTEyIDEzOXMxNTUuNyAzMC41IDIxMi40IDg1LjlDNzgwLjkgMjgwIDgxMiAzNTMuMiA4MTIgNDMxLjFjMCAyNDEuMy0yMzQuMSA0MDcuMi0zMDAgNDQ5LjF6bTAtNjE3LjJjLTk3LjIgMC0xNzYgNzguOC0xNzYgMTc2czc4LjggMTc2IDE3NiAxNzYgMTc2LTc4LjggMTc2LTE3Ni03OC44LTE3Ni0xNzYtMTc2em03OS4yIDI1NS4yQTExMS42IDExMS42IDAgMDE1MTIgNTUxYy0yOS45IDAtNTgtMTEuNy03OS4yLTMyLjhBMTExLjYgMTExLjYgMCAwMTQwMCA0MzljMC0yOS45IDExLjctNTggMzIuOC03OS4yQzQ1NCAzMzguNiA0ODIuMSAzMjcgNTEyIDMyN2MyOS45IDAgNTggMTEuNiA3OS4yIDMyLjhDNjEyLjQgMzgxIDYyNCA0MDkuMSA2MjQgNDM5YzAgMjkuOS0xMS42IDU4LTMyLjggNzkuMnoifX1dfSxuYW1lOiJlbnZpcm9ubWVudCIsdGhlbWU6Im91dGxpbmVkIn0sbnY9dHYscnY9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246bnZ9KSl9LGF2PXQuZm9yd2FyZFJlZihydiksb3Y9YXYsaXY9e2ljb246ZnVuY3Rpb24oZix2KXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNzI0LjQgMjI0LjlDNjY3LjcgMTY5LjUgNTkyLjMgMTM5IDUxMiAxMzlzLTE1NS43IDMwLjUtMjEyLjQgODUuOEMyNDMuMSAyODAgMjEyIDM1My4yIDIxMiA0MzEuMWMwIDI0MS4zIDIzNC4xIDQwNy4yIDMwMCA0NDkuMSA2NS45LTQxLjkgMzAwLTIwNy44IDMwMC00NDkuMSAwLTc3LjktMzEuMS0xNTEuMS04Ny42LTIwNi4yek01MTIgNjE1Yy05Ny4yIDAtMTc2LTc4LjgtMTc2LTE3NnM3OC44LTE3NiAxNzYtMTc2IDE3NiA3OC44IDE3NiAxNzYtNzguOCAxNzYtMTc2IDE3NnoiLGZpbGw6dn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDI2M2MtOTcuMiAwLTE3NiA3OC44LTE3NiAxNzZzNzguOCAxNzYgMTc2IDE3NiAxNzYtNzguOCAxNzYtMTc2LTc4LjgtMTc2LTE3Ni0xNzZ6bTc5LjIgMjU1LjJBMTExLjYgMTExLjYgMCAwMTUxMiA1NTFjLTI5LjkgMC01OC0xMS43LTc5LjItMzIuOEExMTEuNiAxMTEuNiAwIDAxNDAwIDQzOWMwLTI5LjkgMTEuNy01OCAzMi44LTc5LjJDNDU0IDMzOC42IDQ4Mi4xIDMyNyA1MTIgMzI3YzI5LjkgMCA1OCAxMS42IDc5LjIgMzIuOFM2MjQgNDA5LjEgNjI0IDQzOWMwIDI5LjktMTEuNiA1OC0zMi44IDc5LjJ6IixmaWxsOmZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg1NC42IDI4OS4xYTM2Mi40OSAzNjIuNDkgMCAwMC03OS45LTExNS43IDM3MC44MyAzNzAuODMgMCAwMC0xMTguMi03Ny44QzYxMC43IDc2LjYgNTYyLjEgNjcgNTEyIDY3Yy01MC4xIDAtOTguNyA5LjYtMTQ0LjUgMjguNS00NC4zIDE4LjMtODQgNDQuNS0xMTguMiA3Ny44QTM2My42IDM2My42IDAgMDAxNjkuNCAyODljLTE5LjUgNDUtMjkuNCA5Mi44LTI5LjQgMTQyIDAgNzAuNiAxNi45IDE0MC45IDUwLjEgMjA4LjcgMjYuNyA1NC41IDY0IDEwNy42IDExMSAxNTguMSA4MC4zIDg2LjIgMTY0LjUgMTM4LjkgMTg4LjQgMTUzYTQzLjkgNDMuOSAwIDAwMjIuNCA2LjFjNy44IDAgMTUuNS0yIDIyLjQtNi4xIDIzLjktMTQuMSAxMDguMS02Ni44IDE4OC40LTE1MyA0Ny01MC40IDg0LjMtMTAzLjYgMTExLTE1OC4xQzg2Ny4xIDU3MiA4ODQgNTAxLjggODg0IDQzMS4xYzAtNDkuMi05LjktOTctMjkuNC0xNDJ6TTUxMiA4ODAuMmMtNjUuOS00MS45LTMwMC0yMDcuOC0zMDAtNDQ5LjEgMC03Ny45IDMxLjEtMTUxLjEgODcuNi0yMDYuM0MzNTYuMyAxNjkuNSA0MzEuNyAxMzkgNTEyIDEzOXMxNTUuNyAzMC41IDIxMi40IDg1LjlDNzgwLjkgMjgwIDgxMiAzNTMuMiA4MTIgNDMxLjFjMCAyNDEuMy0yMzQuMSA0MDcuMi0zMDAgNDQ5LjF6IixmaWxsOmZ9fV19fSxuYW1lOiJlbnZpcm9ubWVudCIsdGhlbWU6InR3b3RvbmUifSxsdj1pdixzdj1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpsdn0pKX0sY3Y9dC5mb3J3YXJkUmVmKHN2KSx1dj1jdixkdj17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTYzLjUgMzc1LjhjNC40IDAgOCAzLjYgOCA4VjQ3NWMwIDQuNC0zLjYgOC04IDhoLTEzNmMtLjMgNC40LS4zIDkuMS0uMyAxMy44djM2aDEzNi4yYzQuNCAwIDggMy42IDggOFY1NjhjMCA0LjQtMy42IDgtOCA4SDQ0NC45YzE1LjMgNjIgNjEuMyA5OC42IDEyOS44IDk4LjYgMTkuOSAwIDM3LjEtMS4yIDUxLjgtNC4xIDQuOS0xIDkuNSAyLjggOS41IDcuOHY0Mi44YzAgMy44LTIuNyA3LTYuNCA3LjgtMTUuOSAzLjQtMzQuMyA1LjEtNTUuMyA1LjEtMTA5LjggMC0xODMtNTguOC0yMDAuMi0xNThIMzQ0Yy00LjQgMC04LTMuNi04LTh2LTI3LjJjMC00LjQgMy42LTggOC04aDI2LjF2LTM2LjljMC00LjQgMC04LjguMy0xMi44SDM0NGMtNC40IDAtOC0zLjYtOC04di0yNy4yYzAtNC40IDMuNi04IDgtOGgzMS43YzE5LjctOTQuMiA5Mi0xNDkuOSAxOTguNi0xNDkuOSAyMC45IDAgMzkuNCAxLjkgNTUuMyA1LjQgMy43LjggNi4zIDQgNi4zIDcuOFYzNDZoLjFjMCA1LjEtNC42IDguOC05LjYgNy44LTE0LjctMi45LTMxLjgtNC40LTUxLjctNC40LTY1LjQgMC0xMTAuNCAzMy41LTEyNy42IDkwLjRoMTI4LjR6In19XX0sbmFtZToiZXVyby1jaXJjbGUiLHRoZW1lOiJmaWxsZWQifSxmdj1kdix2dj1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpmdn0pKX0saHY9dC5mb3J3YXJkUmVmKHZ2KSxtdj1odixndj17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyem0xMTcuNy01ODguNmMtMTUuOS0zLjUtMzQuNC01LjQtNTUuMy01LjQtMTA2LjcgMC0xNzguOSA1NS43LTE5OC42IDE0OS45SDM0NGMtNC40IDAtOCAzLjYtOCA4djI3LjJjMCA0LjQgMy42IDggOCA4aDI2LjRjLS4zIDQuMS0uMyA4LjQtLjMgMTIuOHYzNi45SDM0NGMtNC40IDAtOCAzLjYtOCA4VjU2OGMwIDQuNCAzLjYgOCA4IDhoMzAuMmMxNy4yIDk5LjIgOTAuNCAxNTggMjAwLjIgMTU4IDIwLjkgMCAzOS40LTEuNyA1NS4zLTUuMSAzLjctLjggNi40LTQgNi40LTcuOHYtNDIuOGMwLTUtNC42LTguOC05LjUtNy44LTE0LjcgMi44LTMxLjkgNC4xLTUxLjggNC4xLTY4LjUgMC0xMTQuNS0zNi42LTEyOS44LTk4LjZoMTMwLjZjNC40IDAgOC0zLjYgOC04di0yNy4yYzAtNC40LTMuNi04LTgtOEg0MzkuMnYtMzZjMC00LjcgMC05LjQuMy0xMy44aDEzNS45YzQuNCAwIDgtMy42IDgtOHYtMjcuMmMwLTQuNC0zLjYtOC04LThINDQ3LjFjMTcuMi01Ni45IDYyLjMtOTAuNCAxMjcuNi05MC40IDE5LjkgMCAzNy4xIDEuNSA1MS43IDQuNGE4IDggMCAwMDkuNi03Ljh2LTQyLjhjMC0zLjgtMi42LTctNi4zLTcuOHoifX1dfSxuYW1lOiJldXJvLWNpcmNsZSIsdGhlbWU6Im91dGxpbmVkIn0scHY9Z3YseXY9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246cHZ9KSl9LEN2PXQuZm9yd2FyZFJlZih5diksYnY9Q3YsU3Y9e2ljb246ZnVuY3Rpb24oZix2KXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeiIsZmlsbDpmfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgMTQwYy0yMDUuNCAwLTM3MiAxNjYuNi0zNzIgMzcyczE2Ni42IDM3MiAzNzIgMzcyIDM3Mi0xNjYuNiAzNzItMzcyLTE2Ni42LTM3Mi0zNzItMzcyem0xMTcuMSA1ODEuMWMwIDMuOC0yLjcgNy02LjQgNy44LTE1LjkgMy40LTM0LjQgNS4xLTU1LjMgNS4xLTEwOS44IDAtMTgzLTU4LjgtMjAwLjItMTU4SDMzN2MtNC40IDAtOC0zLjYtOC04di0yNy4yYzAtNC40IDMuNi04IDgtOGgyNi4xdi0zNi45YzAtNC40IDAtOC43LjMtMTIuOEgzMzdjLTQuNCAwLTgtMy42LTgtOHYtMjcuMmMwLTQuNCAzLjYtOCA4LThoMzEuOEMzODguNSAzNDUuNyA0NjAuNyAyOTAgNTY3LjQgMjkwYzIwLjkgMCAzOS40IDEuOSA1NS4zIDUuNCAzLjcuOCA2LjMgNCA2LjMgNy44VjM0NmE4IDggMCAwMS05LjYgNy44Yy0xNC42LTIuOS0zMS44LTQuNC01MS43LTQuNC02NS4zIDAtMTEwLjQgMzMuNS0xMjcuNiA5MC40aDEyOC4zYzQuNCAwIDggMy42IDggOFY0NzVjMCA0LjQtMy42IDgtOCA4SDQzMi41Yy0uMyA0LjQtLjMgOS4xLS4zIDEzLjh2MzZoMTM2LjRjNC40IDAgOCAzLjYgOCA4VjU2OGMwIDQuNC0zLjYgOC04IDhINDM4YzE1LjMgNjIgNjEuMyA5OC42IDEyOS44IDk4LjYgMTkuOSAwIDM3LjEtMS4zIDUxLjgtNC4xIDQuOS0xIDkuNSAyLjggOS41IDcuOHY0Mi44eiIsZmlsbDp2fX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02MTkuNiA2NzAuNWMtMTQuNyAyLjgtMzEuOSA0LjEtNTEuOCA0LjEtNjguNSAwLTExNC41LTM2LjYtMTI5LjgtOTguNmgxMzAuNmM0LjQgMCA4LTMuNiA4LTh2LTI3LjJjMC00LjQtMy42LTgtOC04SDQzMi4ydi0zNmMwLTQuNyAwLTkuNC4zLTEzLjhoMTM1LjljNC40IDAgOC0zLjYgOC04di0yNy4yYzAtNC40LTMuNi04LTgtOEg0NDAuMWMxNy4yLTU2LjkgNjIuMy05MC40IDEyNy42LTkwLjQgMTkuOSAwIDM3LjEgMS41IDUxLjcgNC40YTggOCAwIDAwOS42LTcuOHYtNDIuOGMwLTMuOC0yLjYtNy02LjMtNy44LTE1LjktMy41LTM0LjQtNS40LTU1LjMtNS40LTEwNi43IDAtMTc4LjkgNTUuNy0xOTguNiAxNDkuOUgzMzdjLTQuNCAwLTggMy42LTggOHYyNy4yYzAgNC40IDMuNiA4IDggOGgyNi40Yy0uMyA0LjEtLjMgOC40LS4zIDEyLjh2MzYuOUgzMzdjLTQuNCAwLTggMy42LTggOFY1NjhjMCA0LjQgMy42IDggOCA4aDMwLjJjMTcuMiA5OS4yIDkwLjQgMTU4IDIwMC4yIDE1OCAyMC45IDAgMzkuNC0xLjcgNTUuMy01LjEgMy43LS44IDYuNC00IDYuNC03Ljh2LTQyLjhjMC01LTQuNi04LjgtOS41LTcuOHoiLGZpbGw6Zn19XX19LG5hbWU6ImV1cm8tY2lyY2xlIix0aGVtZToidHdvdG9uZSJ9LE92PVN2LHh2PWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOk92fSkpfSx3dj10LmZvcndhcmRSZWYoeHYpLEV2PXd2LFR2PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6bTExNy43LTU4OC42Yy0xNS45LTMuNS0zNC40LTUuNC01NS4zLTUuNC0xMDYuNyAwLTE3OC45IDU1LjctMTk4LjYgMTQ5LjlIMzQ0Yy00LjQgMC04IDMuNi04IDh2MjcuMmMwIDQuNCAzLjYgOCA4IDhoMjYuNGMtLjMgNC4xLS4zIDguNC0uMyAxMi44djM2LjlIMzQ0Yy00LjQgMC04IDMuNi04IDhWNTY4YzAgNC40IDMuNiA4IDggOGgzMC4yYzE3LjIgOTkuMiA5MC40IDE1OCAyMDAuMiAxNTggMjAuOSAwIDM5LjQtMS43IDU1LjMtNS4xIDMuNy0uOCA2LjQtNCA2LjQtNy44di00Mi44YzAtNS00LjYtOC44LTkuNS03LjgtMTQuNyAyLjgtMzEuOSA0LjEtNTEuOCA0LjEtNjguNSAwLTExNC41LTM2LjYtMTI5LjgtOTguNmgxMzAuNmM0LjQgMCA4LTMuNiA4LTh2LTI3LjJjMC00LjQtMy42LTgtOC04SDQzOS4ydi0zNmMwLTQuNyAwLTkuNC4zLTEzLjhoMTM1LjljNC40IDAgOC0zLjYgOC04di0yNy4yYzAtNC40LTMuNi04LTgtOEg0NDcuMWMxNy4yLTU2LjkgNjIuMy05MC40IDEyNy42LTkwLjQgMTkuOSAwIDM3LjEgMS41IDUxLjcgNC40YTggOCAwIDAwOS42LTcuOHYtNDIuOGMwLTMuOC0yLjYtNy02LjMtNy44eiJ9fV19LG5hbWU6ImV1cm8iLHRoZW1lOiJvdXRsaW5lZCJ9LE12PVR2LFJ2PWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOk12fSkpfSxJdj10LmZvcndhcmRSZWYoUnYpLFB2PUl2LHp2PXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnoiLGZpbGw6Zn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDE0MGMtMjA1LjQgMC0zNzIgMTY2LjYtMzcyIDM3MnMxNjYuNiAzNzIgMzcyIDM3MiAzNzItMTY2LjYgMzcyLTM3Mi0xNjYuNi0zNzItMzcyLTM3MnptMTE3LjEgNTgxLjFjMCAzLjgtMi43IDctNi40IDcuOC0xNS45IDMuNC0zNC40IDUuMS01NS4zIDUuMS0xMDkuOCAwLTE4My01OC44LTIwMC4yLTE1OEgzMzdjLTQuNCAwLTgtMy42LTgtOHYtMjcuMmMwLTQuNCAzLjYtOCA4LThoMjYuMXYtMzYuOWMwLTQuNCAwLTguNy4zLTEyLjhIMzM3Yy00LjQgMC04LTMuNi04LTh2LTI3LjJjMC00LjQgMy42LTggOC04aDMxLjhDMzg4LjUgMzQ1LjcgNDYwLjcgMjkwIDU2Ny40IDI5MGMyMC45IDAgMzkuNCAxLjkgNTUuMyA1LjQgMy43LjggNi4zIDQgNi4zIDcuOFYzNDZhOCA4IDAgMDEtOS42IDcuOGMtMTQuNi0yLjktMzEuOC00LjQtNTEuNy00LjQtNjUuMyAwLTExMC40IDMzLjUtMTI3LjYgOTAuNGgxMjguM2M0LjQgMCA4IDMuNiA4IDhWNDc1YzAgNC40LTMuNiA4LTggOEg0MzIuNWMtLjMgNC40LS4zIDkuMS0uMyAxMy44djM2aDEzNi40YzQuNCAwIDggMy42IDggOFY1NjhjMCA0LjQtMy42IDgtOCA4SDQzOGMxNS4zIDYyIDYxLjMgOTguNiAxMjkuOCA5OC42IDE5LjkgMCAzNy4xLTEuMyA1MS44LTQuMSA0LjktMSA5LjUgMi44IDkuNSA3Ljh2NDIuOHoiLGZpbGw6dn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNjE5LjYgNjcwLjVjLTE0LjcgMi44LTMxLjkgNC4xLTUxLjggNC4xLTY4LjUgMC0xMTQuNS0zNi42LTEyOS44LTk4LjZoMTMwLjZjNC40IDAgOC0zLjYgOC04di0yNy4yYzAtNC40LTMuNi04LTgtOEg0MzIuMnYtMzZjMC00LjcgMC05LjQuMy0xMy44aDEzNS45YzQuNCAwIDgtMy42IDgtOHYtMjcuMmMwLTQuNC0zLjYtOC04LThINDQwLjFjMTcuMi01Ni45IDYyLjMtOTAuNCAxMjcuNi05MC40IDE5LjkgMCAzNy4xIDEuNSA1MS43IDQuNGE4IDggMCAwMDkuNi03Ljh2LTQyLjhjMC0zLjgtMi42LTctNi4zLTcuOC0xNS45LTMuNS0zNC40LTUuNC01NS4zLTUuNC0xMDYuNyAwLTE3OC45IDU1LjctMTk4LjYgMTQ5LjlIMzM3Yy00LjQgMC04IDMuNi04IDh2MjcuMmMwIDQuNCAzLjYgOCA4IDhoMjYuNGMtLjMgNC4xLS4zIDguNC0uMyAxMi44djM2LjlIMzM3Yy00LjQgMC04IDMuNi04IDhWNTY4YzAgNC40IDMuNiA4IDggOGgzMC4yYzE3LjIgOTkuMiA5MC40IDE1OCAyMDAuMiAxNTggMjAuOSAwIDM5LjQtMS43IDU1LjMtNS4xIDMuNy0uOCA2LjQtNCA2LjQtNy44di00Mi44YzAtNS00LjYtOC44LTkuNS03Ljh6IixmaWxsOmZ9fV19fSxuYW1lOiJldXJvIix0aGVtZToidHdvdG9uZSJ9LEZ2PXp2LEF2PWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkZ2fSkpfSxMdj10LmZvcndhcmRSZWYoQXYpLFp2PUx2LCR2PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02ODggMzEydi00OGMwLTQuNC0zLjYtOC04LThIMjk2Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDM4NGM0LjQgMCA4LTMuNiA4LTh6bS0zOTIgODhjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMTg0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04SDI5NnptMzc2IDExNmMtMTE5LjMgMC0yMTYgOTYuNy0yMTYgMjE2czk2LjcgMjE2IDIxNiAyMTYgMjE2LTk2LjcgMjE2LTIxNi05Ni43LTIxNi0yMTYtMjE2em0xMDcuNSAzMjMuNUM3NTAuOCA4NjguMiA3MTIuNiA4ODQgNjcyIDg4NHMtNzguOC0xNS44LTEwNy41LTQ0LjVDNTM1LjggODEwLjggNTIwIDc3Mi42IDUyMCA3MzJzMTUuOC03OC44IDQ0LjUtMTA3LjVDNTkzLjIgNTk1LjggNjMxLjQgNTgwIDY3MiA1ODBzNzguOCAxNS44IDEwNy41IDQ0LjVDODA4LjIgNjUzLjIgODI0IDY5MS40IDgyNCA3MzJzLTE1LjggNzguOC00NC41IDEwNy41ek02NDAgODEyYTMyIDMyIDAgMTA2NCAwIDMyIDMyIDAgMTAtNjQgMHptMTItNjRoNDBjNC40IDAgOC0zLjYgOC04VjYyOGMwLTQuNC0zLjYtOC04LThoLTQwYy00LjQgMC04IDMuNi04IDh2MTEyYzAgNC40IDMuNiA4IDggOHpNNDQwIDg1MkgyMDhWMTQ4aDU2MHYzNDRjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFYxMDhjMC0xNy43LTE0LjMtMzItMzItMzJIMTY4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3ODRjMCAxNy43IDE0LjMgMzIgMzIgMzJoMjcyYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04eiJ9fV19LG5hbWU6ImV4Y2VwdGlvbiIsdGhlbWU6Im91dGxpbmVkIn0sSHY9JHYsRHY9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246SHZ9KSl9LEJ2PXQuZm9yd2FyZFJlZihEdiksVnY9QnYsTnY9ZSgyMTY0MCksanY9ZSgxMTQ3NSksVXY9e2ljb246ZnVuY3Rpb24oZix2KXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeiIsZmlsbDpmfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgMTQwYy0yMDUuNCAwLTM3MiAxNjYuNi0zNzIgMzcyczE2Ni42IDM3MiAzNzIgMzcyIDM3Mi0xNjYuNiAzNzItMzcyLTE2Ni42LTM3Mi0zNzItMzcyem0tMzIgMTU2YzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh2MjcyYzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOFYyOTZ6bTMyIDQ0MGE0OC4wMSA0OC4wMSAwIDAxMC05NiA0OC4wMSA0OC4wMSAwIDAxMCA5NnoiLGZpbGw6dn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNDg4IDU3Nmg0OGM0LjQgMCA4LTMuNiA4LThWMjk2YzAtNC40LTMuNi04LTgtOGgtNDhjLTQuNCAwLTggMy42LTggOHYyNzJjMCA0LjQgMy42IDggOCA4em0tMjQgMTEyYTQ4IDQ4IDAgMTA5NiAwIDQ4IDQ4IDAgMTAtOTYgMHoiLGZpbGw6Zn19XX19LG5hbWU6ImV4Y2xhbWF0aW9uLWNpcmNsZSIsdGhlbWU6InR3b3RvbmUifSxXdj1Vdixrdj1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpXdn0pKX0sS3Y9dC5mb3J3YXJkUmVmKGt2KSxfdj1LdixHdj17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNDQ4IDgwNGE2NCA2NCAwIDEwMTI4IDAgNjQgNjQgMCAxMC0xMjggMHptMzItMTY4aDY0YzQuNCAwIDgtMy42IDgtOFYxNjRjMC00LjQtMy42LTgtOC04aC02NGMtNC40IDAtOCAzLjYtOCA4djQ2NGMwIDQuNCAzLjYgOCA4IDh6In19XX0sbmFtZToiZXhjbGFtYXRpb24iLHRoZW1lOiJvdXRsaW5lZCJ9LFl2PUd2LFh2PWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOll2fSkpfSxRdj10LmZvcndhcmRSZWYoWHYpLEp2PVF2LHF2PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NTUgMTYwLjFsLTE4OS4yIDIzLjVjLTYuNi44LTkuMyA4LjgtNC43IDEzLjVsNTQuNyA1NC43LTE1My41IDE1My41YTguMDMgOC4wMyAwIDAwMCAxMS4zbDQ1LjEgNDUuMWMzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDE1My42LTE1My42IDU0LjcgNTQuN2E3Ljk0IDcuOTQgMCAwMDEzLjUtNC43TDg2My45IDE2OWE3LjkgNy45IDAgMDAtOC45LTguOXpNNDE2LjYgNTYyLjNhOC4wMyA4LjAzIDAgMDAtMTEuMyAwTDI1MS44IDcxNS45bC01NC43LTU0LjdhNy45NCA3Ljk0IDAgMDAtMTMuNSA0LjdMMTYwLjEgODU1Yy0uNiA1LjIgMy43IDkuNSA4LjkgOC45bDE4OS4yLTIzLjVjNi42LS44IDkuMy04LjggNC43LTEzLjVsLTU0LjctNTQuNyAxNTMuNi0xNTMuNmMzLjEtMy4xIDMuMS04LjIgMC0xMS4zbC00NS4yLTQ1eiJ9fV19LG5hbWU6ImV4cGFuZC1hbHQiLHRoZW1lOiJvdXRsaW5lZCJ9LGU3PXF2LHQ3PWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOmU3fSkpfSxuNz10LmZvcndhcmRSZWYodDcpLHI3PW43LGE3PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoiZGVmcyIsYXR0cnM6e30sY2hpbGRyZW46W3t0YWc6InN0eWxlIixhdHRyczp7fX1dfSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTM0MiA4OEgxMjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjIyNGMwIDguOCA3LjIgMTYgMTYgMTZoNDhjOC44IDAgMTYtNy4yIDE2LTE2VjE2OGgxNzRjOC44IDAgMTYtNy4yIDE2LTE2di00OGMwLTguOC03LjItMTYtMTYtMTZ6bTU3OCA1NzZoLTQ4Yy04LjggMC0xNiA3LjItMTYgMTZ2MTc2SDY4MmMtOC44IDAtMTYgNy4yLTE2IDE2djQ4YzAgOC44IDcuMiAxNiAxNiAxNmgyMjJjMTcuNyAwIDMyLTE0LjMgMzItMzJWNjgwYzAtOC44LTcuMi0xNi0xNi0xNnpNMzQyIDg1NkgxNjhWNjgwYzAtOC44LTcuMi0xNi0xNi0xNmgtNDhjLTguOCAwLTE2IDcuMi0xNiAxNnYyMjRjMCAxNy43IDE0LjMgMzIgMzIgMzJoMjIyYzguOCAwIDE2LTcuMiAxNi0xNnYtNDhjMC04LjgtNy4yLTE2LTE2LTE2ek05MDQgODhINjgyYy04LjggMC0xNiA3LjItMTYgMTZ2NDhjMCA4LjggNy4yIDE2IDE2IDE2aDE3NHYxNzZjMCA4LjggNy4yIDE2IDE2IDE2aDQ4YzguOCAwIDE2LTcuMiAxNi0xNlYxMjBjMC0xNy43LTE0LjMtMzItMzItMzJ6In19XX0sbmFtZToiZXhwYW5kIix0aGVtZToib3V0bGluZWQifSxvNz1hNyxpNz1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpvN30pKX0sbDc9dC5mb3J3YXJkUmVmKGk3KSxzNz1sNyxjNz17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMjE4LjkgNjM2LjNsNDIuNiAyNi42Yy4xLjEuMy4yLjQuM2wxMi43IDggLjMuM2ExODYuOSAxODYuOSAwIDAwOTQuMSAyNS4xYzQ0LjkgMCA4Ny4yLTE1LjcgMTIxLTQzLjhhMjU2LjI3IDI1Ni4yNyAwIDAxMTY0LjktNTkuOWM1Mi4zIDAgMTAyLjIgMTUuNyAxNDQuNiA0NC41bDcuOSA1LTExMS42LTI4OVYxNzkuOGg2My41YzQuNCAwIDgtMy42IDgtOFYxMjBjMC00LjQtMy42LTgtOC04SDI2NC43Yy00LjQgMC04IDMuNi04IDh2NTEuOWMwIDQuNCAzLjYgOCA4IDhoNjMuNXYxNzMuNkwyMTguOSA2MzYuM3ptMzMzLTIwMy4xYzIyIDAgMzkuOSAxNy45IDM5LjkgMzkuOVM1NzMuOSA1MTMgNTUxLjkgNTEzIDUxMiA0OTUuMSA1MTIgNDczLjFzMTcuOS0zOS45IDM5LjktMzkuOXpNODc4IDgyNS4xbC0yOS45LTc3LjQtODUuNy01My41LS4xLjFjLS43LS41LTEuNS0xLTIuMi0xLjVsLTguMS01LS4zLS4zYy0yOS0xNy41LTYyLjMtMjYuOC05Ny0yNi44LTQ0LjkgMC04Ny4yIDE1LjctMTIxIDQzLjhhMjU2LjI3IDI1Ni4yNyAwIDAxLTE2NC45IDU5LjljLTUzIDAtMTAzLjUtMTYuMS0xNDYuMi00NS42bC0yOC45LTE4LjFMMTQ2IDgyNS4xYy0yLjggNy40LTQuMyAxNS4yLTQuMyAyMyAwIDM1LjIgMjguNiA2My44IDYzLjggNjMuOGg2MTIuOWM3LjkgMCAxNS43LTEuNSAyMy00LjNhNjMuNiA2My42IDAgMDAzNi42LTgyLjV6In19XX0sbmFtZToiZXhwZXJpbWVudCIsdGhlbWU6ImZpbGxlZCJ9LHU3PWM3LGQ3PWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOnU3fSkpfSxmNz10LmZvcndhcmRSZWYoZDcpLHY3PWY3LGg3PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNDcyYTQwIDQwIDAgMTA4MCAwIDQwIDQwIDAgMTAtODAgMHptMzY3IDM1Mi45TDY5Ni4zIDM1MlYxNzhINzY4di02OEgyNTZ2NjhoNzEuN3YxNzRMMTQ1IDgyNC45Yy0yLjggNy40LTQuMyAxNS4yLTQuMyAyMy4xIDAgMzUuMyAyOC43IDY0IDY0IDY0aDYxNC42YzcuOSAwIDE1LjctMS41IDIzLjEtNC4zIDMzLTEyLjcgNDkuNC00OS44IDM2LjYtODIuOHpNMzk1LjcgMzY0LjdWMTgwaDIzMi42djE4NC43TDcxOS4yIDYwMGMtMjAuNy01LjMtNDIuMS04LTYzLjktOC02MS4yIDAtMTE5LjIgMjEuNS0xNjUuMyA2MGExODguNzggMTg4Ljc4IDAgMDEtMTIxLjMgNDMuOWMtMzIuNyAwLTY0LjEtOC4zLTkxLjgtMjMuN2wxMTguOC0zMDcuNXpNMjEwLjUgODQ0bDQxLjctMTA3LjhjMzUuNyAxOC4xIDc1LjQgMjcuOCAxMTYuNiAyNy44IDYxLjIgMCAxMTkuMi0yMS41IDE2NS4zLTYwIDMzLjktMjguMiA3Ni4zLTQzLjkgMTIxLjMtNDMuOSAzNSAwIDY4LjQgOS41IDk3LjYgMjcuMUw4MTMuNSA4NDRoLTYwM3oifX1dfSxuYW1lOiJleHBlcmltZW50Iix0aGVtZToib3V0bGluZWQifSxtNz1oNyxnNz1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjptN30pKX0scDc9dC5mb3J3YXJkUmVmKGc3KSx5Nz1wNyxDNz17aWNvbjpmdW5jdGlvbihmLHYpe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01NTEuOSA1MTNjMTkuNiAwIDM1LjktMTQuMiAzOS4zLTMyLjhBNDAuMDIgNDAuMDIgMCAwMTU1MiA1MTJhNDAgNDAgMCAwMS00MC0zOS40di41YzAgMjIgMTcuOSAzOS45IDM5LjkgMzkuOXpNNzUyIDY4Ny44bC0uMy0uM2MtMjktMTcuNS02Mi4zLTI2LjgtOTctMjYuOC00NC45IDAtODcuMiAxNS43LTEyMSA0My44YTI1Ni4yNyAyNTYuMjcgMCAwMS0xNjQuOSA1OS45Yy00MS4yIDAtODEtOS44LTExNi43LTI4TDIxMC41IDg0NGg2MDNsLTU5LjktMTU1LjItMS42LTF6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg3OSA4MjQuOUw2OTYuMyAzNTJWMTc4SDc2OHYtNjhIMjU2djY4aDcxLjd2MTc0TDE0NSA4MjQuOWMtMi44IDcuNC00LjMgMTUuMi00LjMgMjMuMSAwIDM1LjMgMjguNyA2NCA2NCA2NGg2MTQuNmM3LjkgMCAxNS43LTEuNSAyMy4xLTQuMyAzMy0xMi43IDQ5LjQtNDkuOCAzNi42LTgyLjh6TTM5NS43IDM2NC43VjE4MGgyMzIuNnYxODQuN0w3MTkuMiA2MDBjLTIwLjctNS4zLTQyLjEtOC02My45LTgtNjEuMiAwLTExOS4yIDIxLjUtMTY1LjMgNjBhMTg4Ljc4IDE4OC43OCAwIDAxLTEyMS4zIDQzLjljLTMyLjcgMC02NC4xLTguMy05MS44LTIzLjdsMTE4LjgtMzA3LjV6TTIxMC41IDg0NGw0MS42LTEwNy42LjEtLjJjMzUuNyAxOC4xIDc1LjQgMjcuOCAxMTYuNiAyNy44IDYxLjIgMCAxMTkuMi0yMS41IDE2NS4zLTYwIDMzLjktMjguMiA3Ni4zLTQzLjkgMTIxLjMtNDMuOSAzNSAwIDY4LjQgOS41IDk3LjYgMjcuMWwuNiAxLjZMODEzLjUgODQ0aC02MDN6IixmaWxsOmZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTU1MiA1MTJjMTkuMyAwIDM1LjQtMTMuNiAzOS4yLTMxLjguNi0yLjcuOC01LjQuOC04LjIgMC0yMi4xLTE3LjktNDAtNDAtNDBzLTQwIDE3LjktNDAgNDB2LjZhNDAgNDAgMCAwMDQwIDM5LjR6IixmaWxsOmZ9fV19fSxuYW1lOiJleHBlcmltZW50Iix0aGVtZToidHdvdG9uZSJ9LGI3PUM3LFM3PWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOmI3fSkpfSxPNz10LmZvcndhcmRSZWYoUzcpLHg3PU83LHc3PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6eyJmaWxsLXJ1bGUiOiJldmVub2RkIix2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDkxMkgxNDRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjE0NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmgzNjBjNC40IDAgOCAzLjYgOCA4djU2YzAgNC40LTMuNiA4LTggOEgxODR2NjU2aDY1NlY1MjBjMC00LjQgMy42LTggOC04aDU2YzQuNCAwIDggMy42IDggOHYzNjBjMCAxNy43LTE0LjMgMzItMzIgMzJ6TTc3MC44NyAxOTkuMTNsLTUyLjItNTIuMmE4LjAxIDguMDEgMCAwMTQuNy0xMy42bDE3OS40LTIxYzUuMS0uNiA5LjUgMy43IDguOSA4LjlsLTIxIDE3OS40Yy0uOCA2LjYtOC45IDkuNC0xMy42IDQuN2wtNTIuNC01Mi40LTI1Ni4yIDI1Ni4yYTguMDMgOC4wMyAwIDAxLTExLjMgMGwtNDIuNC00Mi40YTguMDMgOC4wMyAwIDAxMC0xMS4zbDI1Ni4xLTI1Ni4zeiJ9fV19LG5hbWU6ImV4cG9ydCIsdGhlbWU6Im91dGxpbmVkIn0sRTc9dzcsVDc9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246RTd9KSl9LE03PXQuZm9yd2FyZFJlZihUNyksUjc9TTcsSTc9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTM5NiA1MTJhMTEyIDExMiAwIDEwMjI0IDAgMTEyIDExMiAwIDEwLTIyNCAwem01NDYuMi0yNS44Qzg0Ny40IDI4Ni41IDcwNC4xIDE4NiA1MTIgMTg2Yy0xOTIuMiAwLTMzNS40IDEwMC41LTQzMC4yIDMwMC4zYTYwLjMgNjAuMyAwIDAwMCA1MS41QzE3Ni42IDczNy41IDMxOS45IDgzOCA1MTIgODM4YzE5Mi4yIDAgMzM1LjQtMTAwLjUgNDMwLjItMzAwLjMgNy43LTE2LjIgNy43LTM1IDAtNTEuNXpNNTA4IDY4OGMtOTcuMiAwLTE3Ni03OC44LTE3Ni0xNzZzNzguOC0xNzYgMTc2LTE3NiAxNzYgNzguOCAxNzYgMTc2LTc4LjggMTc2LTE3NiAxNzZ6In19XX0sbmFtZToiZXllIix0aGVtZToiZmlsbGVkIn0sUDc9STcsejc9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246UDd9KSl9LEY3PXQuZm9yd2FyZFJlZih6NyksQTc9RjcsTDc9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUwOCA2MjRhMTEyIDExMiAwIDAwMTEyLTExMmMwLTMuMjgtLjE1LTYuNTMtLjQzLTkuNzRMNDk4LjI2IDYyMy41N2MzLjIxLjI4IDYuNDUuNDMgOS43NC40M3ptMzcwLjcyLTQ1OC40NEw4MzYgMTIyLjg4YTggOCAwIDAwLTExLjMxIDBMNzE1LjM3IDIzMi4yM1E2MjQuOTEgMTg2IDUxMiAxODZxLTI4OC4zIDAtNDMwLjIgMzAwLjNhNjAuMyA2MC4zIDAgMDAwIDUxLjVxNTYuNyAxMTkuNDMgMTM2LjU1IDE5MS40NUwxMTIuNTYgODM1YTggOCAwIDAwMCAxMS4zMUwxNTUuMjUgODg5YTggOCAwIDAwMTEuMzEgMGw3MTIuMTYtNzEyLjEyYTggOCAwIDAwMC0xMS4zMnpNMzMyIDUxMmExNzYgMTc2IDAgMDEyNTguODgtMTU1LjI4bC00OC42MiA0OC42MmExMTIuMDggMTEyLjA4IDAgMDAtMTQwLjkyIDE0MC45MmwtNDguNjIgNDguNjJBMTc1LjA5IDE3NS4wOSAwIDAxMzMyIDUxMnoifX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05NDIuMiA0ODYuMlE4ODkuNCAzNzUgODE2LjUxIDMwNC44NUw2NzIuMzcgNDQ5QTE3Ni4wOCAxNzYuMDggMCAwMTQ0NSA2NzYuMzdMMzIyLjc0IDc5OC42M1E0MDcuODIgODM4IDUxMiA4MzhxMjg4LjMgMCA0MzAuMi0zMDAuM2E2MC4yOSA2MC4yOSAwIDAwMC01MS41eiJ9fV19LG5hbWU6ImV5ZS1pbnZpc2libGUiLHRoZW1lOiJmaWxsZWQifSxaNz1MNywkNz1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpaN30pKX0sSDc9dC5mb3J3YXJkUmVmKCQ3KSxENz1INyxCNz1lKDkwNDIwKSxWNz17aWNvbjpmdW5jdGlvbihmLHYpe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0yNTQuODkgNzU4Ljg1bDEyNS41Ny0xMjUuNTdhMTc2IDE3NiAwIDAxMjQ4LjgyLTI0OC44Mkw3NTcgMjU2LjcyUTY1MS42OSAxODYuMDcgNTEyIDE4NnEtMjg4LjMgMC00MzAuMiAzMDAuM2E2MC4zIDYwLjMgMCAwMDAgNTEuNXE2OS4yNyAxNDUuOTEgMTczLjA5IDIyMS4wNXpNOTQyLjIgNDg2LjJRODg5LjQ2IDM3NS4xMSA4MTYuNyAzMDVMNjcyLjQ4IDQ0OS4yN2ExNzYuMDkgMTc2LjA5IDAgMDEtMjI3LjIyIDIyNy4yMUwzMjMgNzk4Ljc1UTQwOCA4MzggNTEyIDgzOHEyODguMyAwIDQzMC4yLTMwMC4zYTYwLjI5IDYwLjI5IDAgMDAwLTUxLjV6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTk0Mi4yIDQ4Ni4yUTg4OS40NyAzNzUuMTEgODE2LjcgMzA1bC01MC44OCA1MC44OEM4MDcuMzEgMzk1LjUzIDg0My40NSA0NDcuNCA4NzQuNyA1MTIgNzkxLjUgNjg0LjIgNjczLjQgNzY2IDUxMiA3NjZxLTcyLjY3IDAtMTMzLjg3LTIyLjM4TDMyMyA3OTguNzVRNDA4IDgzOCA1MTIgODM4cTI4OC4zIDAgNDMwLjItMzAwLjNhNjAuMjkgNjAuMjkgMCAwMDAtNTEuNXpNODc4LjYzIDE2NS41Nkw4MzYgMTIyLjg4YTggOCAwIDAwLTExLjMyIDBMNzE1LjMxIDIzMi4yUTYyNC44NiAxODYgNTEyIDE4NnEtMjg4LjMgMC00MzAuMiAzMDAuM2E2MC4zIDYwLjMgMCAwMDAgNTEuNXE1Ni42OSAxMTkuNCAxMzYuNSAxOTEuNDFMMTEyLjQ4IDgzNWE4IDggMCAwMDAgMTEuMzFMMTU1LjE3IDg4OWE4IDggMCAwMDExLjMxIDBsNzEyLjE1LTcxMi4xMmE4IDggMCAwMDAtMTEuMzJ6TTE0OS4zIDUxMkMyMzIuNiAzMzkuOCAzNTAuNyAyNTggNTEyIDI1OGM1NC41NCAwIDEwNC4xMyA5LjM2IDE0OS4xMiAyOC4zOWwtNzAuMyA3MC4zYTE3NiAxNzYgMCAwMC0yMzguMTMgMjM4LjEzbC04My40MiA4My40MkMyMjMuMSA2MzcuNDkgMTgzLjMgNTgyLjI4IDE0OS4zIDUxMnptMjQ2LjcgMGExMTIuMTEgMTEyLjExIDAgMDExNDYuMi0xMDYuNjlMNDAxLjMxIDU0Ni4yQTExMiAxMTIgMCAwMTM5NiA1MTJ6IixmaWxsOmZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUwOCA2MjRjLTMuNDYgMC02Ljg3LS4xNi0xMC4yNS0uNDdsLTUyLjgyIDUyLjgyYTE3Ni4wOSAxNzYuMDkgMCAwMDIyNy40Mi0yMjcuNDJsLTUyLjgyIDUyLjgyYy4zMSAzLjM4LjQ3IDYuNzkuNDcgMTAuMjVhMTExLjk0IDExMS45NCAwIDAxLTExMiAxMTJ6IixmaWxsOmZ9fV19fSxuYW1lOiJleWUtaW52aXNpYmxlIix0aGVtZToidHdvdG9uZSJ9LE43PVY3LGo3PWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOk43fSkpfSxVNz10LmZvcndhcmRSZWYoajcpLFc3PVU3LGs3PWUoOTk2MTEpLEs3PXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTgxLjggNTM3LjhhNjAuMyA2MC4zIDAgMDEwLTUxLjVDMTc2LjYgMjg2LjUgMzE5LjggMTg2IDUxMiAxODZjLTE5Mi4yIDAtMzM1LjQgMTAwLjUtNDMwLjIgMzAwLjNhNjAuMyA2MC4zIDAgMDAwIDUxLjVDMTc2LjYgNzM3LjUgMzE5LjkgODM4IDUxMiA4MzhjLTE5Mi4xIDAtMzM1LjQtMTAwLjUtNDMwLjItMzAwLjJ6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiAyNThjLTE2MS4zIDAtMjc5LjQgODEuOC0zNjIuNyAyNTRDMjMyLjYgNjg0LjIgMzUwLjcgNzY2IDUxMiA3NjZjMTYxLjQgMCAyNzkuNS04MS44IDM2Mi43LTI1NEM3OTEuNCAzMzkuOCA2NzMuMyAyNTggNTEyIDI1OHptLTQgNDMwYy05Ny4yIDAtMTc2LTc4LjgtMTc2LTE3NnM3OC44LTE3NiAxNzYtMTc2IDE3NiA3OC44IDE3NiAxNzYtNzguOCAxNzYtMTc2IDE3NnoiLGZpbGw6dn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNOTQyLjIgNDg2LjJDODQ3LjQgMjg2LjUgNzA0LjEgMTg2IDUxMiAxODZjLTE5Mi4yIDAtMzM1LjQgMTAwLjUtNDMwLjIgMzAwLjNhNjAuMyA2MC4zIDAgMDAwIDUxLjVDMTc2LjYgNzM3LjUgMzE5LjkgODM4IDUxMiA4MzhjMTkyLjIgMCAzMzUuNC0xMDAuNSA0MzAuMi0zMDAuMyA3LjctMTYuMiA3LjctMzUgMC01MS41ek01MTIgNzY2Yy0xNjEuMyAwLTI3OS40LTgxLjgtMzYyLjctMjU0QzIzMi42IDMzOS44IDM1MC43IDI1OCA1MTIgMjU4czI3OS40IDgxLjggMzYyLjcgMjU0Qzc5MS41IDY4NC4yIDY3My40IDc2NiA1MTIgNzY2eiIsZmlsbDpmfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MDggMzM2Yy05Ny4yIDAtMTc2IDc4LjgtMTc2IDE3NnM3OC44IDE3NiAxNzYgMTc2IDE3Ni03OC44IDE3Ni0xNzYtNzguOC0xNzYtMTc2LTE3NnptMCAyODhjLTYxLjkgMC0xMTItNTAuMS0xMTItMTEyczUwLjEtMTEyIDExMi0xMTIgMTEyIDUwLjEgMTEyIDExMi01MC4xIDExMi0xMTIgMTEyeiIsZmlsbDpmfX1dfX0sbmFtZToiZXllIix0aGVtZToidHdvdG9uZSJ9LF83PUs3LEc3PWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOl83fSkpfSxZNz10LmZvcndhcmRSZWYoRzcpLFg3PVk3LFE3PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS05Mi40IDIzMy41aC02My45Yy01MC4xIDAtNTkuOCAyMy44LTU5LjggNTguOHY3Ny4xaDExOS42bC0xNS42IDEyMC43aC0xMDRWOTEySDUzOS4yVjYwMi4ySDQzNC45VjQ4MS40aDEwNC4zdi04OWMwLTEwMy4zIDYzLjEtMTU5LjYgMTU1LjMtMTU5LjYgNDQuMiAwIDgyLjEgMy4zIDkzLjIgNC44djEwNy45eiJ9fV19LG5hbWU6ImZhY2Vib29rIix0aGVtZToiZmlsbGVkIn0sSjc9UTcscTc9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246Sjd9KSl9LGU5PXQuZm9yd2FyZFJlZihxNyksdDk9ZTksbjk9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTMyIDczNkg2NjMuOVY2MDIuMmgxMDRsMTUuNi0xMjAuN0g2NjMuOXYtNzcuMWMwLTM1IDkuNy01OC44IDU5LjgtNTguOGg2My45di0xMDhjLTExLjEtMS41LTQ5LTQuOC05My4yLTQuOC05Mi4yIDAtMTU1LjMgNTYuMy0xNTUuMyAxNTkuNnY4OUg0MzQuOXYxMjAuN2gxMDQuM1Y4NDhIMTc2VjE3Nmg2NzJ2NjcyeiJ9fV19LG5hbWU6ImZhY2Vib29rIix0aGVtZToib3V0bGluZWQifSxyOT1uOSxhOT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpyOX0pKX0sbzk9dC5mb3J3YXJkUmVmKGE5KSxpOT1vOSxsOT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTI1LjkgODA0bC0yNC0xOTkuMmMtLjgtNi42LTguOS05LjQtMTMuNi00LjdMODI5IDY1OS41IDU1Ny43IDM4OC4zYy02LjMtNi4yLTE2LjQtNi4yLTIyLjYgMEw0MzMuMyA0OTAgMTU2LjYgMjEzLjNhOC4wMyA4LjAzIDAgMDAtMTEuMyAwbC00NSA0NS4yYTguMDMgOC4wMyAwIDAwMCAxMS4zTDQyMiA1OTEuN2M2LjIgNi4zIDE2LjQgNi4zIDIyLjYgMEw1NDYuNCA0OTBsMjI2LjEgMjI2LTU5LjMgNTkuM2E4LjAxIDguMDEgMCAwMDQuNyAxMy42bDE5OS4yIDI0YzUuMS43IDkuNS0zLjcgOC44LTguOXoifX1dfSxuYW1lOiJmYWxsIix0aGVtZToib3V0bGluZWQifSxzOT1sOSxjOT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpzOX0pKX0sdTk9dC5mb3J3YXJkUmVmKGM5KSxkOT11OSxmOT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiIwIDAgMTAyNCAxMDI0Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTE3LjYgMjczLjVMMjMwLjIgNDk5LjNhMTYuMTQgMTYuMTQgMCAwMDAgMjUuNGwyODcuNCAyMjUuOGMxMC43IDguNCAyNi40LjggMjYuNC0xMi43VjI4Ni4yYzAtMTMuNS0xNS43LTIxLjEtMjYuNC0xMi43em0zMjAgMEw1NTAuMiA0OTkuM2ExNi4xNCAxNi4xNCAwIDAwMCAyNS40bDI4Ny40IDIyNS44YzEwLjcgOC40IDI2LjQuOCAyNi40LTEyLjdWMjg2LjJjMC0xMy41LTE1LjctMjEuMS0yNi40LTEyLjd6bS02MjAtMjUuNWgtNTEuMmMtMy41IDAtNi40IDIuNy02LjQgNnY1MTZjMCAzLjMgMi45IDYgNi40IDZoNTEuMmMzLjUgMCA2LjQtMi43IDYuNC02VjI1NGMwLTMuMy0yLjktNi02LjQtNnoifX1dfSxuYW1lOiJmYXN0LWJhY2t3YXJkIix0aGVtZToiZmlsbGVkIn0sdjk9ZjksaDk9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246djl9KSl9LG05PXQuZm9yd2FyZFJlZihoOSksZzk9bTkscDk9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiMCAwIDEwMjQgMTAyNCIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxNy42IDI3My41TDIzMC4yIDQ5OS4zYTE2LjE0IDE2LjE0IDAgMDAwIDI1LjRsMjg3LjQgMjI1LjhjMTAuNyA4LjQgMjYuNC44IDI2LjQtMTIuN1YyODYuMmMwLTEzLjUtMTUuNy0yMS4xLTI2LjQtMTIuN3ptMzIwIDBMNTUwLjIgNDk5LjNhMTYuMTQgMTYuMTQgMCAwMDAgMjUuNGwyODcuNCAyMjUuOGMxMC43IDguNCAyNi40LjggMjYuNC0xMi43VjI4Ni4yYzAtMTMuNS0xNS43LTIxLjEtMjYuNC0xMi43em0tNjIwLTI1LjVoLTUxLjJjLTMuNSAwLTYuNCAyLjctNi40IDZ2NTE2YzAgMy4zIDIuOSA2IDYuNCA2aDUxLjJjMy41IDAgNi40LTIuNyA2LjQtNlYyNTRjMC0zLjMtMi45LTYtNi40LTZ6In19XX0sbmFtZToiZmFzdC1iYWNrd2FyZCIsdGhlbWU6Im91dGxpbmVkIn0seTk9cDksQzk9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246eTl9KSl9LGI5PXQuZm9yd2FyZFJlZihDOSksUzk9YjksTzk9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiMCAwIDEwMjQgMTAyNCIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTc5My44IDQ5OS4zTDUwNi40IDI3My41Yy0xMC43LTguNC0yNi40LS44LTI2LjQgMTIuN3Y0NTEuNmMwIDEzLjUgMTUuNyAyMS4xIDI2LjQgMTIuN2wyODcuNC0yMjUuOGExNi4xNCAxNi4xNCAwIDAwMC0yNS40em0tMzIwIDBMMTg2LjQgMjczLjVjLTEwLjctOC40LTI2LjQtLjgtMjYuNCAxMi43djQ1MS41YzAgMTMuNSAxNS43IDIxLjEgMjYuNCAxMi43bDI4Ny40LTIyNS44YzQuMS0zLjIgNi4yLTggNi4yLTEyLjcgMC00LjYtMi4xLTkuNC02LjItMTIuNnpNODU3LjYgMjQ4aC01MS4yYy0zLjUgMC02LjQgMi43LTYuNCA2djUxNmMwIDMuMyAyLjkgNiA2LjQgNmg1MS4yYzMuNSAwIDYuNC0yLjcgNi40LTZWMjU0YzAtMy4zLTIuOS02LTYuNC02eiJ9fV19LG5hbWU6ImZhc3QtZm9yd2FyZCIsdGhlbWU6ImZpbGxlZCJ9LHg5PU85LHc5PWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOng5fSkpfSxFOT10LmZvcndhcmRSZWYodzkpLFQ5PUU5LE05PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjAgMCAxMDI0IDEwMjQiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik03OTMuOCA0OTkuM0w1MDYuNCAyNzMuNWMtMTAuNy04LjQtMjYuNC0uOC0yNi40IDEyLjd2NDUxLjZjMCAxMy41IDE1LjcgMjEuMSAyNi40IDEyLjdsMjg3LjQtMjI1LjhhMTYuMTQgMTYuMTQgMCAwMDAtMjUuNHptLTMyMCAwTDE4Ni40IDI3My41Yy0xMC43LTguNC0yNi40LS44LTI2LjQgMTIuN3Y0NTEuNWMwIDEzLjUgMTUuNyAyMS4xIDI2LjQgMTIuN2wyODcuNC0yMjUuOGM0LjEtMy4yIDYuMi04IDYuMi0xMi43IDAtNC42LTIuMS05LjQtNi4yLTEyLjZ6TTg1Ny42IDI0OGgtNTEuMmMtMy41IDAtNi40IDIuNy02LjQgNnY1MTZjMCAzLjMgMi45IDYgNi40IDZoNTEuMmMzLjUgMCA2LjQtMi43IDYuNC02VjI1NGMwLTMuMy0yLjktNi02LjQtNnoifX1dfSxuYW1lOiJmYXN0LWZvcndhcmQiLHRoZW1lOiJvdXRsaW5lZCJ9LFI5PU05LEk5PWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOlI5fSkpfSxQOT10LmZvcndhcmRSZWYoSTkpLHo5PVA5LEY5PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoiZGVmcyIsYXR0cnM6e30sY2hpbGRyZW46W3t0YWc6InN0eWxlIixhdHRyczp7fX1dfSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTYwMCAzOTUuNGg5MVY2NDloNzlWMjY3YzAtNC40LTMuNi04LTgtOGgtNDguMmMtMy43IDAtNyAyLjYtNy43IDYuMy0yLjYgMTIuMS02LjkgMjIuMy0xMi45IDMwLjlhODYuMTQgODYuMTQgMCAwMS0yNi4zIDI0LjRjLTEwLjMgNi4yLTIyIDEwLjUtMzUgMTIuOS0xMC40IDEuOS0yMSAzLTMyIDMuMWE4IDggMCAwMC03LjkgOHY0Mi44YzAgNC40IDMuNiA4IDggOHpNODcxIDcwMkg1NjdjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMzA0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04ek00NDMuOSAzMTIuN2MtMTYuMS0xOS0zNC40LTMyLjQtNTUuMi00MC40LTIxLjMtOC4yLTQ0LjEtMTIuMy02OC40LTEyLjMtMjMuOSAwLTQ2LjQgNC4xLTY3LjcgMTIuMy0yMC44IDgtMzkgMjEuNC01NC44IDQwLjMtMTUuOSAxOS4xLTI4LjcgNDQuNy0zOC4zIDc3LTkuNiAzMi41LTE0LjUgNzMtMTQuNSAxMjEuNSAwIDQ5LjkgNC45IDkxLjQgMTQuNSAxMjQuNCA5LjYgMzIuOCAyMi40IDU4LjcgMzguMyA3Ny43IDE1LjggMTguOSAzNCAzMi4zIDU0LjggNDAuMyAyMS4zIDguMiA0My44IDEyLjMgNjcuNyAxMi4zIDI0LjQgMCA0Ny4yLTQuMSA2OC40LTEyLjMgMjAuOC04IDM5LjItMjEuNCA1NS4yLTQwLjQgMTYuMS0xOSAyOS00NC45IDM4LjYtNzcuNyA5LjYtMzMgMTQuNS03NC41IDE0LjUtMTI0LjQgMC00OC40LTQuOS04OC45LTE0LjUtMTIxLjUtOS41LTMyLjEtMjIuNC01Ny43LTM4LjYtNzYuOHptLTI5LjUgMjUxLjdjLTEgMjEuNC00LjIgNDItOS41IDYxLjktNS41IDIwLjctMTQuNSAzOC41LTI3IDUzLjQtMTMuNiAxNi4zLTMzLjIgMjQuMy01Ny42IDI0LjMtMjQgMC00My4yLTguMS01Ni43LTI0LjQtMTIuMi0xNC44LTIxLjEtMzIuNi0yNi42LTUzLjMtNS4zLTE5LjktOC41LTQwLjYtOS41LTYxLjktMS0yMC44LTEuNS0zOC41LTEuNS01My4yIDAtOC44LjEtMTkuNC40LTMxLjguMi0xMi43IDEuMS0yNS44IDIuNi0zOS4yIDEuNS0xMy42IDQtMjcuMSA3LjYtNDAuNSAzLjctMTMuOCA4LjgtMjYuMyAxNS40LTM3LjQgNi45LTExLjYgMTUuOC0yMS4xIDI2LjctMjguMyAxMS40LTcuNiAyNS4zLTExLjMgNDEuNS0xMS4zIDE2LjEgMCAzMC4xIDMuNyA0MS43IDExLjJhODcuOTQgODcuOTQgMCAwMTI3LjQgMjguMmM2LjkgMTEuMiAxMi4xIDIzLjggMTUuNiAzNy43IDMuMyAxMy4yIDUuOCAyNi42IDcuNSA0MC4xIDEuOCAxMy41IDIuOCAyNi42IDMgMzkuNC4yIDEyLjQuNCAyMyAuNCAzMS44LjEgMTQuOC0uNCAzMi41LTEuNCA1My4zeiJ9fV19LG5hbWU6ImZpZWxkLWJpbmFyeSIsdGhlbWU6Im91dGxpbmVkIn0sQTk9RjksTDk9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246QTl9KSl9LFo5PXQuZm9yd2FyZFJlZihMOSksJDk9WjksSDk9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJkZWZzIixhdHRyczp7fSxjaGlsZHJlbjpbe3RhZzoic3R5bGUiLGF0dHJzOnt9fV19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTA4IDI4MGgtNjMuM2MtMy4zIDAtNiAyLjctNiA2djM0MC4ySDQzM0wxOTcuNCAyODIuNmMtMS4xLTEuNi0zLTIuNi00LjktMi42SDEyNmMtMy4zIDAtNiAyLjctNiA2djQ2NGMwIDMuMyAyLjcgNiA2IDZoNjIuN2MzLjMgMCA2LTIuNyA2LTZWNDA1LjFoNS43bDIzOC4yIDM0OC4zYzEuMSAxLjYgMyAyLjYgNSAyLjZINTA4YzMuMyAwIDYtMi43IDYtNlYyODZjMC0zLjMtMi43LTYtNi02em0zNzggNDEzSDU4MmMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgzMDRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6bS0xNTIuMi02M2M1Mi45IDAgOTUuMi0xNy4yIDEyNi4yLTUxLjcgMjkuNC0zMi45IDQ0LTc1LjggNDQtMTI4LjggMC01My4xLTE0LjYtOTYuNS00NC0xMjkuMy0zMC45LTM0LjgtNzMuMi01Mi4yLTEyNi4yLTUyLjItNTMuNyAwLTk1LjkgMTcuNS0xMjYuMyA1Mi44LTI5LjIgMzMuMS00My40IDc1LjktNDMuNCAxMjguNyAwIDUyLjQgMTQuMyA5NS4yIDQzLjUgMTI4LjMgMzAuNiAzNC43IDczIDUyLjIgMTI2LjIgNTIuMnptLTcxLjUtMjYzLjdjMTYuOS0yMC42IDQwLjMtMzAuOSA3MS40LTMwLjkgMzEuNSAwIDU0LjggOS42IDcxIDI5LjEgMTYuNCAyMC4zIDI0LjkgNDguNiAyNC45IDg0LjkgMCAzNi4zLTguNCA2NC4xLTI0LjggODMuOS0xNi41IDE5LjQtNDAgMjkuMi03MS4xIDI5LjItMzEuMiAwLTU1LTEwLjMtNzEuNC0zMC40LTE2LjMtMjAuMS0yNC41LTQ3LjMtMjQuNS04Mi42LjEtMzUuOCA4LjItNjMgMjQuNS04My4yeiJ9fV19LG5hbWU6ImZpZWxkLW51bWJlciIsdGhlbWU6Im91dGxpbmVkIn0sRDk9SDksQjk9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246RDl9KSl9LFY5PXQuZm9yd2FyZFJlZihCOSksTjk9Vjksajk9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJkZWZzIixhdHRyczp7fSxjaGlsZHJlbjpbe3RhZzoic3R5bGUiLGF0dHJzOnt9fV19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODc1LjYgNTE1LjljMi4xLjggNC40LS4zIDUuMi0yLjQuMi0uNC4yLS45LjItMS40di01OC4zYzAtMS44LTEuMS0zLjMtMi44LTMuOC02LTEuOC0xNy4yLTMtMjcuMi0zLTMyLjkgMC02MS43IDE2LjctNzMuNSA0MS4ydi0yOC42YzAtNC40LTMuNi04LTgtOEg3MTdjLTQuNCAwLTggMy42LTggOFY3MjljMCA0LjQgMy42IDggOCA4aDU0LjhjNC40IDAgOC0zLjYgOC04VjU3Mi43YzAtMzYuMiAyNi4xLTYwLjIgNjUuMS02MC4yIDEwLjQuMSAyNi42IDEuOCAzMC43IDMuNHptLTUzNy00MC41bC01NC43LTEyLjZjLTYxLjItMTQuMi04Ny43LTM0LjgtODcuNy03MC43IDAtNDQuNiAzOS4xLTczLjUgOTYuOS03My41IDUyLjggMCA5MS40IDI2LjUgOTkuOSA2OC45aDcwQzQ1NS45IDMxMS42IDM4Ny42IDI1OSAyOTMuNCAyNTljLTEwMy4zIDAtMTcxIDU1LjUtMTcxIDEzOSAwIDY4LjYgMzguNiAxMDkuNSAxMjIuMiAxMjguNWw2MS42IDE0LjNjNjMuNiAxNC45IDkxLjYgMzcuMSA5MS42IDc1LjEgMCA0NC4xLTQzLjUgNzUuMi0xMDIuNSA3NS4yLTYwLjYgMC0xMDQuNS0yNy4yLTExMi44LTcwLjVIMTExYzcuMiA3OS45IDc1LjYgMTMwLjQgMTc5LjEgMTMwLjRDNDAyLjMgNzUxIDQ3MSA2OTUuMiA0NzEgNjA1LjNjMC03MC4yLTM4LjYtMTA4LjUtMTMyLjQtMTI5Ljl6TTg0MSA3MjlhMzYgMzYgMCAxMDcyIDAgMzYgMzYgMCAxMC03MiAwek02NTMgNDU3LjhoLTUxLjRWMzk2YzAtNC40LTMuNi04LTgtOGgtNTQuN2MtNC40IDAtOCAzLjYtOCA4djYxLjhINDk1Yy00LjQgMC04IDMuNi04IDh2NDIuM2MwIDQuNCAzLjYgOCA4IDhoMzUuOXYxNDcuNWMwIDU2LjIgMjcuNCA3OS40IDkzLjEgNzkuNCAxMS43IDAgMjMuNi0xLjIgMzMuOC0zLjEgMS45LS4zIDMuMi0yIDMuMi0zLjl2LTQ5LjNjMC0yLjItMS44LTQtNC00aC0uNGMtNC45LjUtNi4yLjYtOC4zLjgtNC4xLjMtNy44LjUtMTIuNi41LTI0LjEgMC0zNC4xLTEwLjMtMzQuMS0zNS42VjUxNi4xSDY1M2M0LjQgMCA4LTMuNiA4LTh2LTQyLjNjMC00LjQtMy42LTgtOC04eiJ9fV19LG5hbWU6ImZpZWxkLXN0cmluZyIsdGhlbWU6Im91dGxpbmVkIn0sVTk9ajksVzk9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246VTl9KSl9LGs5PXQuZm9yd2FyZFJlZihXOSksSzk9azksXzk9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJkZWZzIixhdHRyczp7fSxjaGlsZHJlbjpbe3RhZzoic3R5bGUiLGF0dHJzOnt9fV19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNOTQ1IDQxMkg2ODljLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMjU2YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04ek04MTEgNTQ4SDY4OWMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgxMjJjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6TTQ3Ny4zIDMyMi41SDQzNGMtNi4yIDAtMTEuMiA1LTExLjIgMTEuMnYyNDhjMCAzLjYgMS43IDYuOSA0LjYgOWwxNDguOSAxMDguNmM1IDMuNiAxMiAyLjYgMTUuNi0yLjRsMjUuNy0zNS4xdi0uMWMzLjYtNSAyLjUtMTItMi41LTE1LjZsLTEyNi43LTkxLjZWMzMzLjdjLjEtNi4yLTUtMTEuMi0xMS4xLTExLjJ6In19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODA0LjggNjczLjlINzQ3Yy01LjYgMC0xMC45IDIuOS0xMy45IDcuN2EzMjEgMzIxIDAgMDEtNDQuNSA1NS43IDMxNy4xNyAzMTcuMTcgMCAwMS0xMDEuMyA2OC4zYy0zOS4zIDE2LjYtODEgMjUtMTI0IDI1LTQzLjEgMC04NC44LTguNC0xMjQtMjUtMzcuOS0xNi03Mi0zOS0xMDEuMy02OC4zcy01Mi4zLTYzLjQtNjguMy0xMDEuM2MtMTYuNi0zOS4yLTI1LTgwLjktMjUtMTI0IDAtNDMuMSA4LjQtODQuNyAyNS0xMjQgMTYtMzcuOSAzOS03MiA2OC4zLTEwMS4zIDI5LjMtMjkuMyA2My40LTUyLjMgMTAxLjMtNjguMyAzOS4yLTE2LjYgODEtMjUgMTI0LTI1IDQzLjEgMCA4NC44IDguNCAxMjQgMjUgMzcuOSAxNiA3MiAzOSAxMDEuMyA2OC4zYTMyMSAzMjEgMCAwMTQ0LjUgNTUuN2MzIDQuOCA4LjMgNy43IDEzLjkgNy43aDU3LjhjNi45IDAgMTEuMy03LjIgOC4yLTEzLjMtNjUuMi0xMjkuNy0xOTcuNC0yMTQtMzQ1LTIxNS43LTIxNi4xLTIuNy0zOTUuNiAxNzQuMi0zOTYgMzkwLjFDNzEuNiA3MjcuNSAyNDYuOSA5MDMgNDYzLjIgOTAzYzE0OS41IDAgMjgzLjktODQuNiAzNDkuOC0yMTUuOGE5LjE4IDkuMTggMCAwMC04LjItMTMuM3oifX1dfSxuYW1lOiJmaWVsZC10aW1lIix0aGVtZToib3V0bGluZWQifSxHOT1fOSxZOT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpHOX0pKX0sWDk9dC5mb3J3YXJkUmVmKFk5KSxROT1YOSxKOT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNDgwIDU4MEgzNzJhOCA4IDAgMDAtOCA4djQ4YTggOCAwIDAwOCA4aDEwOHYxMDhhOCA4IDAgMDA4IDhoNDhhOCA4IDAgMDA4LThWNjQ0aDEwOGE4IDggMCAwMDgtOHYtNDhhOCA4IDAgMDAtOC04SDU0NFY0NzJhOCA4IDAgMDAtOC04aC00OGE4IDggMCAwMC04IDh2MTA4em0zNzQuNi0yOTEuM2M2IDYgOS40IDE0LjEgOS40IDIyLjZWOTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMySDE5MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWOTZjMC0xNy43IDE0LjMtMzIgMzItMzJoNDI0LjdjOC41IDAgMTYuNyAzLjQgMjIuNyA5LjRsMjE1LjIgMjE1LjN6TTc5MC4yIDMyNkw2MDIgMTM3LjhWMzI2aDE4OC4yeiJ9fV19LG5hbWU6ImZpbGUtYWRkIix0aGVtZToiZmlsbGVkIn0scTk9SjksZWg9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246cTl9KSl9LHRoPXQuZm9yd2FyZFJlZihlaCksbmg9dGgscmg9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg1NC42IDI4OC42TDYzOS40IDczLjRjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzExLjNjMC04LjUtMy40LTE2LjctOS40LTIyLjd6TTc5MC4yIDMyNkg2MDJWMTM3LjhMNzkwLjIgMzI2em0xLjggNTYySDIzMlYxMzZoMzAydjIxNmE0MiA0MiAwIDAwNDIgNDJoMjE2djQ5NHpNNTQ0IDQ3MmMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2MTA4SDM3MmMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgxMDh2MTA4YzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LThWNjQ0aDEwOGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOEg1NDRWNDcyeiJ9fV19LG5hbWU6ImZpbGUtYWRkIix0aGVtZToib3V0bGluZWQifSxhaD1yaCxvaD1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjphaH0pKX0saWg9dC5mb3J3YXJkUmVmKG9oKSxsaD1paCxzaD17aWNvbjpmdW5jdGlvbihmLHYpe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MzQgMzUyVjEzNkgyMzJ2NzUyaDU2MFYzOTRINTc2YTQyIDQyIDAgMDEtNDItNDJ6bTEyNiAyMzZ2NDhjMCA0LjQtMy42IDgtOCA4SDU0NHYxMDhjMCA0LjQtMy42IDgtOCA4aC00OGMtNC40IDAtOC0zLjYtOC04VjY0NEgzNzJjLTQuNCAwLTgtMy42LTgtOHYtNDhjMC00LjQgMy42LTggOC04aDEwOFY0NzJjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHYxMDhoMTA4YzQuNCAwIDggMy42IDggOHoiLGZpbGw6dn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODU0LjYgMjg4LjZMNjM5LjQgNzMuNGMtNi02LTE0LjEtOS40LTIyLjYtOS40SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlYzMTEuM2MwLTguNS0zLjQtMTYuNy05LjQtMjIuN3pNNjAyIDEzNy44TDc5MC4yIDMyNkg2MDJWMTM3Ljh6TTc5MiA4ODhIMjMyVjEzNmgzMDJ2MjE2YTQyIDQyIDAgMDA0MiA0MmgyMTZ2NDk0eiIsZmlsbDpmfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01NDQgNDcyYzAtNC40LTMuNi04LTgtOGgtNDhjLTQuNCAwLTggMy42LTggOHYxMDhIMzcyYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDEwOHYxMDhjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOFY2NDRoMTA4YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04SDU0NFY0NzJ6IixmaWxsOmZ9fV19fSxuYW1lOiJmaWxlLWFkZCIsdGhlbWU6InR3b3RvbmUifSxjaD1zaCx1aD1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpjaH0pKX0sZGg9dC5mb3J3YXJkUmVmKHVoKSxmaD1kaCx2aD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNjg4IDMxMnYtNDhjMC00LjQtMy42LTgtOC04SDI5NmMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgzODRjNC40IDAgOC0zLjYgOC04em0tMzkyIDg4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDE4NGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOEgyOTZ6bTM3NiAxMTZjLTExOS4zIDAtMjE2IDk2LjctMjE2IDIxNnM5Ni43IDIxNiAyMTYgMjE2IDIxNi05Ni43IDIxNi0yMTYtOTYuNy0yMTYtMjE2LTIxNnptMTA3LjUgMzIzLjVDNzUwLjggODY4LjIgNzEyLjYgODg0IDY3MiA4ODRzLTc4LjgtMTUuOC0xMDcuNS00NC41QzUzNS44IDgxMC44IDUyMCA3NzIuNiA1MjAgNzMyczE1LjgtNzguOCA0NC41LTEwNy41QzU5My4yIDU5NS44IDYzMS40IDU4MCA2NzIgNTgwczc4LjggMTUuOCAxMDcuNSA0NC41QzgwOC4yIDY1My4yIDgyNCA2OTEuNCA4MjQgNzMycy0xNS44IDc4LjgtNDQuNSAxMDcuNXpNNzYxIDY1NmgtNDQuM2MtMi42IDAtNSAxLjItNi41IDMuM2wtNjMuNSA4Ny44LTIzLjEtMzEuOWE3LjkyIDcuOTIgMCAwMC02LjUtMy4zSDU3M2MtNi41IDAtMTAuMyA3LjQtNi41IDEyLjdsNzMuOCAxMDIuMWMzLjIgNC40IDkuNyA0LjQgMTIuOSAwbDExNC4yLTE1OGMzLjktNS4zLjEtMTIuNy02LjQtMTIuN3pNNDQwIDg1MkgyMDhWMTQ4aDU2MHYzNDRjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFYxMDhjMC0xNy43LTE0LjMtMzItMzItMzJIMTY4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3ODRjMCAxNy43IDE0LjMgMzIgMzIgMzJoMjcyYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04eiJ9fV19LG5hbWU6ImZpbGUtZG9uZSIsdGhlbWU6Im91dGxpbmVkIn0saGg9dmgsbWg9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246aGh9KSl9LGdoPXQuZm9yd2FyZFJlZihtaCkscGg9Z2gseWg9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg1NC42IDI4OC43YzYgNiA5LjQgMTQuMSA5LjQgMjIuNlY5MjhjMCAxNy43LTE0LjMgMzItMzIgMzJIMTkyYy0xNy43IDAtMzItMTQuMy0zMi0zMlY5NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmg0MjQuN2M4LjUgMCAxNi43IDMuNCAyMi43IDkuNGwyMTUuMiAyMTUuM3pNNzkwLjIgMzI2TDYwMiAxMzcuOFYzMjZoMTg4LjJ6TTU3NS4zNCA0NzcuODRsLTYxLjIyIDEwMi4zTDQ1Mi4zIDQ3Ny44YTEyIDEyIDAgMDAtMTAuMjctNS43OWgtMzguNDRhMTIgMTIgMCAwMC02LjQgMS44NSAxMiAxMiAwIDAwLTMuNzUgMTYuNTZsODIuMzQgMTMwLjQyLTgzLjQ1IDEzMi43OGExMiAxMiAwIDAwLTEuODQgNi4zOSAxMiAxMiAwIDAwMTIgMTJoMzQuNDZhMTIgMTIgMCAwMDEwLjIxLTUuN2w2Mi43LTEwMS40NyA2Mi4zIDEwMS40NWExMiAxMiAwIDAwMTAuMjMgNS43MmgzNy40OGExMiAxMiAwIDAwNi40OC0xLjkgMTIgMTIgMCAwMDMuNjItMTYuNThsLTgzLjgzLTEzMC41NSA4NS4zLTEzMi40N2ExMiAxMiAwIDAwMS45LTYuNSAxMiAxMiAwIDAwLTEyLTEyaC0zNS43YTEyIDEyIDAgMDAtMTAuMjkgNS44NHoifX1dfSxuYW1lOiJmaWxlLWV4Y2VsIix0aGVtZToiZmlsbGVkIn0sQ2g9eWgsYmg9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246Q2h9KSl9LFNoPXQuZm9yd2FyZFJlZihiaCksT2g9U2gseGg9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg1NC42IDI4OC42TDYzOS40IDczLjRjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzExLjNjMC04LjUtMy40LTE2LjctOS40LTIyLjd6TTc5MC4yIDMyNkg2MDJWMTM3LjhMNzkwLjIgMzI2em0xLjggNTYySDIzMlYxMzZoMzAydjIxNmE0MiA0MiAwIDAwNDIgNDJoMjE2djQ5NHpNNTE0LjEgNTgwLjFsLTYxLjgtMTAyLjRjLTIuMi0zLjYtNi4xLTUuOC0xMC4zLTUuOGgtMzguNGMtMi4zIDAtNC41LjYtNi40IDEuOS01LjYgMy41LTcuMyAxMC45LTMuNyAxNi42bDgyLjMgMTMwLjQtODMuNCAxMzIuOGExMi4wNCAxMi4wNCAwIDAwMTAuMiAxOC40aDM0LjVjNC4yIDAgOC0yLjIgMTAuMi01LjdMNTEwIDY2NC44bDYyLjMgMTAxLjRjMi4yIDMuNiA2LjEgNS43IDEwLjIgNS43SDYyMGMyLjMgMCA0LjUtLjcgNi41LTEuOSA1LjYtMy42IDcuMi0xMSAzLjYtMTYuNmwtODQtMTMwLjQgODUuMy0xMzIuNWExMi4wNCAxMi4wNCAwIDAwLTEwLjEtMTguNWgtMzUuN2MtNC4yIDAtOC4xIDIuMi0xMC4zIDUuOGwtNjEuMiAxMDIuM3oifX1dfSxuYW1lOiJmaWxlLWV4Y2VsIix0aGVtZToib3V0bGluZWQifSx3aD14aCxFaD1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjp3aH0pKX0sVGg9dC5mb3J3YXJkUmVmKEVoKSxNaD1UaCxSaD17aWNvbjpmdW5jdGlvbihmLHYpe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MzQgMzUyVjEzNkgyMzJ2NzUyaDU2MFYzOTRINTc2YTQyIDQyIDAgMDEtNDItNDJ6bTUxLjYgMTIwaDM1LjdhMTIuMDQgMTIuMDQgMCAwMTEwLjEgMTguNUw1NDYuMSA2MjNsODQgMTMwLjRjMy42IDUuNiAyIDEzLTMuNiAxNi42LTIgMS4yLTQuMiAxLjktNi41IDEuOWgtMzcuNWMtNC4xIDAtOC0yLjEtMTAuMi01LjdMNTEwIDY2NC44bC02Mi43IDEwMS41Yy0yLjIgMy41LTYgNS43LTEwLjIgNS43aC0zNC41YTEyLjA0IDEyLjA0IDAgMDEtMTAuMi0xOC40bDgzLjQtMTMyLjgtODIuMy0xMzAuNGMtMy42LTUuNy0xLjktMTMuMSAzLjctMTYuNiAxLjktMS4zIDQuMS0xLjkgNi40LTEuOUg0NDJjNC4yIDAgOC4xIDIuMiAxMC4zIDUuOGw2MS44IDEwMi40IDYxLjItMTAyLjNjMi4yLTMuNiA2LjEtNS44IDEwLjMtNS44eiIsZmlsbDp2fX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NTQuNiAyODguNkw2MzkuNCA3My40Yy02LTYtMTQuMS05LjQtMjIuNi05LjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMxMS4zYzAtOC41LTMuNC0xNi43LTkuNC0yMi43ek02MDIgMTM3LjhMNzkwLjIgMzI2SDYwMlYxMzcuOHpNNzkyIDg4OEgyMzJWMTM2aDMwMnYyMTZhNDIgNDIgMCAwMDQyIDQyaDIxNnY0OTR6IixmaWxsOmZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxNC4xIDU4MC4xbC02MS44LTEwMi40Yy0yLjItMy42LTYuMS01LjgtMTAuMy01LjhoLTM4LjRjLTIuMyAwLTQuNS42LTYuNCAxLjktNS42IDMuNS03LjMgMTAuOS0zLjcgMTYuNmw4Mi4zIDEzMC40LTgzLjQgMTMyLjhhMTIuMDQgMTIuMDQgMCAwMDEwLjIgMTguNGgzNC41YzQuMiAwIDgtMi4yIDEwLjItNS43TDUxMCA2NjQuOGw2Mi4zIDEwMS40YzIuMiAzLjYgNi4xIDUuNyAxMC4yIDUuN0g2MjBjMi4zIDAgNC41LS43IDYuNS0xLjkgNS42LTMuNiA3LjItMTEgMy42LTE2LjZsLTg0LTEzMC40IDg1LjMtMTMyLjVhMTIuMDQgMTIuMDQgMCAwMC0xMC4xLTE4LjVoLTM1LjdjLTQuMiAwLTguMSAyLjItMTAuMyA1LjhsLTYxLjIgMTAyLjN6IixmaWxsOmZ9fV19fSxuYW1lOiJmaWxlLWV4Y2VsIix0aGVtZToidHdvdG9uZSJ9LEloPVJoLFBoPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOklofSkpfSx6aD10LmZvcndhcmRSZWYoUGgpLEZoPXpoLEFoPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NTQuNiAyODguN2M2IDYgOS40IDE0LjEgOS40IDIyLjZWOTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMySDE5MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWOTZjMC0xNy43IDE0LjMtMzIgMzItMzJoNDI0LjdjOC41IDAgMTYuNyAzLjQgMjIuNyA5LjRsMjE1LjIgMjE1LjN6TTc5MC4yIDMyNkw2MDIgMTM3LjhWMzI2aDE4OC4yek01MTIgNzg0YTQwIDQwIDAgMTAwLTgwIDQwIDQwIDAgMDAwIDgwem0zMi0xNTJWNDQ4YTggOCAwIDAwLTgtOGgtNDhhOCA4IDAgMDAtOCA4djE4NGE4IDggMCAwMDggOGg0OGE4IDggMCAwMDgtOHoifX1dfSxuYW1lOiJmaWxlLWV4Y2xhbWF0aW9uIix0aGVtZToiZmlsbGVkIn0sTGg9QWgsWmg9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246TGh9KSl9LCRoPXQuZm9yd2FyZFJlZihaaCksSGg9JGgsRGg9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg1NC42IDI4OC42TDYzOS40IDczLjRjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzExLjNjMC04LjUtMy40LTE2LjctOS40LTIyLjd6TTc5MC4yIDMyNkg2MDJWMTM3LjhMNzkwLjIgMzI2em0xLjggNTYySDIzMlYxMzZoMzAydjIxNmE0MiA0MiAwIDAwNDIgNDJoMjE2djQ5NHpNNDcyIDc0NGE0MCA0MCAwIDEwODAgMCA0MCA0MCAwIDEwLTgwIDB6bTE2LTEwNGg0OGM0LjQgMCA4LTMuNiA4LThWNDQ4YzAtNC40LTMuNi04LTgtOGgtNDhjLTQuNCAwLTggMy42LTggOHYxODRjMCA0LjQgMy42IDggOCA4eiJ9fV19LG5hbWU6ImZpbGUtZXhjbGFtYXRpb24iLHRoZW1lOiJvdXRsaW5lZCJ9LEJoPURoLFZoPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkJofSkpfSxOaD10LmZvcndhcmRSZWYoVmgpLGpoPU5oLFVoPXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUzNCAzNTJWMTM2SDIzMnY3NTJoNTYwVjM5NEg1NzZhNDIgNDIgMCAwMS00Mi00MnptLTU0IDk2YzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh2MTg0YzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOFY0NDh6bTMyIDMzNmMtMjIuMSAwLTQwLTE3LjktNDAtNDBzMTcuOS00MCA0MC00MCA0MCAxNy45IDQwIDQwLTE3LjkgNDAtNDAgNDB6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg1NC42IDI4OC42TDYzOS40IDczLjRjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzExLjNjMC04LjUtMy40LTE2LjctOS40LTIyLjd6TTYwMiAxMzcuOEw3OTAuMiAzMjZINjAyVjEzNy44ek03OTIgODg4SDIzMlYxMzZoMzAydjIxNmE0MiA0MiAwIDAwNDIgNDJoMjE2djQ5NHoiLGZpbGw6Zn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNDg4IDY0MGg0OGM0LjQgMCA4LTMuNiA4LThWNDQ4YzAtNC40LTMuNi04LTgtOGgtNDhjLTQuNCAwLTggMy42LTggOHYxODRjMCA0LjQgMy42IDggOCA4em0tMTYgMTA0YTQwIDQwIDAgMTA4MCAwIDQwIDQwIDAgMTAtODAgMHoiLGZpbGw6Zn19XX19LG5hbWU6ImZpbGUtZXhjbGFtYXRpb24iLHRoZW1lOiJ0d290b25lIn0sV2g9VWgsa2g9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246V2h9KSl9LEtoPXQuZm9yd2FyZFJlZihraCksX2g9S2gsR2g9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg1NC42IDI4OC43YzYgNiA5LjQgMTQuMSA5LjQgMjIuNlY5MjhjMCAxNy43LTE0LjMgMzItMzIgMzJIMTkyYy0xNy43IDAtMzItMTQuMy0zMi0zMlY5NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmg0MjQuN2M4LjUgMCAxNi43IDMuNCAyMi43IDkuNGwyMTUuMiAyMTUuM3pNNzkwLjIgMzI2TDYwMiAxMzcuOFYzMjZoMTg4LjJ6In19XX0sbmFtZToiZmlsZSIsdGhlbWU6ImZpbGxlZCJ9LFloPUdoLFhoPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOllofSkpfSxRaD10LmZvcndhcmRSZWYoWGgpLEpoPVFoLHFoPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoiZGVmcyIsYXR0cnM6e30sY2hpbGRyZW46W3t0YWc6InN0eWxlIixhdHRyczp7fX1dfSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTU1MS41IDQ5MC41SDUyMWMtNC42IDAtOC40IDMuNy04LjQgOC40VjcyMGMwIDQuNiAzLjcgOC40IDguNCA4LjRoMzAuNWM0LjYgMCA4LjQtMy43IDguNC04LjRWNDk4LjljLS4xLTQuNi0zLjgtOC40LTguNC04LjR6TTQ3Ny4zIDYwMGgtODguMWMtNC42IDAtOC40IDMuNy04LjQgOC40djIzLjhjMCA0LjYgMy43IDguNCA4LjQgOC40aDQ3LjZ2LjdjLS42IDI5LjktMjMgNDkuOC01Ni41IDQ5LjgtMzkuMiAwLTYzLjYtMzAuNy02My42LTgxLjQgMC01MC4xIDIzLjktODAuNiA2Mi4zLTgwLjYgMjguMSAwIDQ3LjUgMTMuNSA1NS40IDM4LjNsLjkgMi44aDQ5LjJsLS43LTQuNkM0NzUuOSA1MTUuOSA0MzQuNyA0ODQgMzc5IDQ4NGMtNjguOCAwLTExMyA0OS40LTExMyAxMjUuOSAwIDc3LjUgNDMuNyAxMjYuMSAxMTMuNiAxMjYuMSA2NC40IDAgMTA2LTQwLjMgMTA2LTEwMi45di0yNC44YzAtNC42LTMuNy04LjMtOC4zLTguM3oifX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NTQuNiAyODguNkw2MzkuNCA3My40Yy02LTYtMTQuMS05LjQtMjIuNi05LjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMxMS4zYzAtOC41LTMuNC0xNi43LTkuNC0yMi43ek02MDIgMTM3LjhMNzkwLjIgMzI2SDYwMlYxMzcuOHpNNzkyIDg4OEgyMzJWMTM2aDMwMnYyMTZhNDIgNDIgMCAwMDQyIDQyaDIxNnY0OTR6In19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNjA4LjIgNzI3LjhoMzIuM2M0LjYgMCA4LjQtMy43IDguNC04LjR2LTg0LjhoODcuOGM0LjYgMCA4LjQtMy43IDguNC04LjR2LTI1LjVjMC00LjYtMy43LTguNC04LjQtOC40aC04Ny44di01OC45aDk2LjhjNC42IDAgOC40LTMuNyA4LjQtOC40di0yNi44YzAtNC42LTMuNy04LjQtOC40LTguNEg2MDguMmMtNC42IDAtOC40IDMuNy04LjQgOC40djIyMS4xYzAgNC44IDMuOCA4LjUgOC40IDguNXoifX1dfSxuYW1lOiJmaWxlLWdpZiIsdGhlbWU6Im91dGxpbmVkIn0sZW09cWgsdG09ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246ZW19KSl9LG5tPXQuZm9yd2FyZFJlZih0bSkscm09bm0sYW09e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg1NC42IDI4OC43TDYzOS40IDczLjRjLTYtNi0xNC4yLTkuNC0yMi43LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzExLjNjMC04LjUtMy40LTE2LjYtOS40LTIyLjZ6TTQwMCA0MDJjMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDAtNDAtMTcuOS00MC00MCAxNy45LTQwIDQwLTQwem0yOTYgMjk0SDMyOGMtNi43IDAtMTAuNC03LjctNi4zLTEyLjlsOTkuOC0xMjcuMmE4IDggMCAwMTEyLjYgMGw0MS4xIDUyLjQgNzcuOC05OS4yYTggOCAwIDAxMTIuNiAwbDEzNi41IDE3NGM0LjMgNS4yLjUgMTIuOS02LjEgMTIuOXptLTk0LTM3MFYxMzcuOEw3OTAuMiAzMjZINjAyeiJ9fV19LG5hbWU6ImZpbGUtaW1hZ2UiLHRoZW1lOiJmaWxsZWQifSxvbT1hbSxpbT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpvbX0pKX0sbG09dC5mb3J3YXJkUmVmKGltKSxzbT1sbSxjbT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTUzLjEgNTA5LjFsLTc3LjggOTkuMi00MS4xLTUyLjRhOCA4IDAgMDAtMTIuNiAwbC05OS44IDEyNy4yYTcuOTggNy45OCAwIDAwNi4zIDEyLjlINjk2YzYuNyAwIDEwLjQtNy43IDYuMy0xMi45bC0xMzYuNS0xNzRhOC4xIDguMSAwIDAwLTEyLjcgMHpNMzYwIDQ0MmE0MCA0MCAwIDEwODAgMCA0MCA0MCAwIDEwLTgwIDB6bTQ5NC42LTE1My40TDYzOS40IDczLjRjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzExLjNjMC04LjUtMy40LTE2LjctOS40LTIyLjd6TTc5MC4yIDMyNkg2MDJWMTM3LjhMNzkwLjIgMzI2em0xLjggNTYySDIzMlYxMzZoMzAydjIxNmE0MiA0MiAwIDAwNDIgNDJoMjE2djQ5NHoifX1dfSxuYW1lOiJmaWxlLWltYWdlIix0aGVtZToib3V0bGluZWQifSx1bT1jbSxkbT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjp1bX0pKX0sZm09dC5mb3J3YXJkUmVmKGRtKSx2bT1mbSxobT17aWNvbjpmdW5jdGlvbihmLHYpe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MzQgMzUyVjEzNkgyMzJ2NzUyaDU2MFYzOTRINTc2YTQyIDQyIDAgMDEtNDItNDJ6bS0xMzQgNTBjMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDAtNDAtMTcuOS00MC00MCAxNy45LTQwIDQwLTQwem0yOTYgMjk0SDMyOC4xYy02LjcgMC0xMC40LTcuNy02LjMtMTIuOWw5OS44LTEyNy4yYTggOCAwIDAxMTIuNiAwbDQxLjEgNTIuNCA3Ny44LTk5LjJhOC4xIDguMSAwIDAxMTIuNyAwbDEzNi41IDE3NGM0LjEgNS4yLjQgMTIuOS02LjMgMTIuOXoiLGZpbGw6dn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODU0LjYgMjg4LjZMNjM5LjQgNzMuNGMtNi02LTE0LjEtOS40LTIyLjYtOS40SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlYzMTEuM2MwLTguNS0zLjQtMTYuNy05LjQtMjIuN3pNNjAyIDEzNy44TDc5MC4yIDMyNkg2MDJWMTM3Ljh6TTc5MiA4ODhIMjMyVjEzNmgzMDJ2MjE2YTQyIDQyIDAgMDA0MiA0MmgyMTZ2NDk0eiIsZmlsbDpmfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01NTMuMSA1MDkuMWwtNzcuOCA5OS4yLTQxLjEtNTIuNGE4IDggMCAwMC0xMi42IDBsLTk5LjggMTI3LjJhNy45OCA3Ljk4IDAgMDA2LjMgMTIuOUg2OTZjNi43IDAgMTAuNC03LjcgNi4zLTEyLjlsLTEzNi41LTE3NGE4LjEgOC4xIDAgMDAtMTIuNyAwek0zNjAgNDQyYTQwIDQwIDAgMTA4MCAwIDQwIDQwIDAgMTAtODAgMHoiLGZpbGw6Zn19XX19LG5hbWU6ImZpbGUtaW1hZ2UiLHRoZW1lOiJ0d290b25lIn0sbW09aG0sZ209ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246bW19KSl9LHBtPXQuZm9yd2FyZFJlZihnbSkseW09cG0sQ209e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiMCAwIDEwMjQgMTAyNCIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg3NC42IDMwMS44TDU5Ni44IDIxLjNjLTQuNS00LjUtOS40LTguMy0xNC43LTExLjUtMS40LS44LTIuOC0xLjYtNC4zLTIuMy0uOS0uNS0xLjktLjktMi44LTEuMy05LTQtMTguOS02LjItMjktNi4ySDIwMWMtMzkuOCAwLTczIDMyLjItNzMgNzJ2ODgwYzAgMzkuOCAzMy4yIDcyIDczIDcyaDYyM2MzOS44IDAgNzEtMzIuMiA3MS03MlYzNTIuNWMwLTE5LTctMzcuMi0yMC40LTUwLjd6TTU4MyAxMTAuNEw3ODMuOCAzMTJINTgzVjExMC40ek04MjMgOTUySDIwMFY3MmgzMTF2MjQwYzAgMzkuOCAzMy4yIDcyIDczIDcyaDIzOXY1Njh6TTM1MCA2OTYuNWMwIDI0LjItNy41IDMxLjQtMjEuOSAzMS40LTkgMC0xOC40LTUuOC0yNC44LTE4LjVMMjcyLjkgNzMyYzEzLjQgMjIuOSAzMi4zIDM0LjIgNjEuMyAzNC4yIDQxLjYgMCA2MC44LTI5LjkgNjAuOC02Ni4yVjU3N2gtNDV2MTE5LjV6TTUwMS4zIDU3N0g0Mzd2MTg2aDQ0di02MmgyMS42YzM5LjEgMCA3My4xLTE5LjYgNzMuMS02My42IDAtNDUuOC0zMy41LTYwLjQtNzQuNC02MC40em0tLjggODlINDgxdi01M2gxOC4yYzIxLjUgMCAzMy40IDYuMiAzMy40IDI0LjkgMCAxOC4xLTEwLjUgMjguMS0zMi4xIDI4LjF6bTE4Mi41LTl2MzZoMzB2MzAuMWMtNCAyLjktMTEgNC43LTE3LjcgNC43LTM0LjMgMC01MC43LTIxLjQtNTAuNy01OC4yIDAtMzYuMSAxOS43LTU3LjQgNDcuMS01Ny40IDE1LjMgMCAyNSA2LjIgMzQgMTQuNGwyMy43LTI4LjNjLTEyLjctMTIuOC0zMi4xLTI0LjItNTkuMi0yNC4yLTQ5LjYgMC05MS4xIDM1LjMtOTEuMSA5NyAwIDYyLjcgNDAgOTUuMSA5MS41IDk1LjEgMjUuOSAwIDQ5LjItMTAuMiA2MS41LTIyLjZWNjU3SDY4M3oifX1dfSxuYW1lOiJmaWxlLWpwZyIsdGhlbWU6Im91dGxpbmVkIn0sYm09Q20sU209ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246Ym19KSl9LE9tPXQuZm9yd2FyZFJlZihTbSkseG09T20sd209e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg1NC42IDI4OC43YzYgNiA5LjQgMTQuMSA5LjQgMjIuNlY5MjhjMCAxNy43LTE0LjMgMzItMzIgMzJIMTkyYy0xNy43IDAtMzItMTQuMy0zMi0zMlY5NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmg0MjQuN2M4LjUgMCAxNi43IDMuNCAyMi43IDkuNGwyMTUuMiAyMTUuM3pNNzkwLjIgMzI2TDYwMiAxMzcuOFYzMjZoMTg4LjJ6TTQyNi4xMyA2MDAuOTNsNTkuMTEgMTMyLjk3YTE2IDE2IDAgMDAxNC42MiA5LjVoMjQuMDZhMTYgMTYgMCAwMDE0LjYzLTkuNTFsNTkuMS0xMzMuMzVWNzU4YTE2IDE2IDAgMDAxNi4wMSAxNkg2NDFhMTYgMTYgMCAwMDE2LTE2VjQ4NmExNiAxNiAwIDAwLTE2LTE2aC0zNC43NWExNiAxNiAwIDAwLTE0LjY3IDkuNjJMNTEyLjEgNjYyLjJsLTc5LjQ4LTE4Mi41OWExNiAxNiAwIDAwLTE0LjY3LTkuNjFIMzgzYTE2IDE2IDAgMDAtMTYgMTZ2MjcyYTE2IDE2IDAgMDAxNiAxNmgyNy4xM2ExNiAxNiAwIDAwMTYtMTZWNjAwLjkzeiJ9fV19LG5hbWU6ImZpbGUtbWFya2Rvd24iLHRoZW1lOiJmaWxsZWQifSxFbT13bSxUbT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpFbX0pKX0sTW09dC5mb3J3YXJkUmVmKFRtKSxSbT1NbSxJbT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODU0LjYgMjg4LjZMNjM5LjQgNzMuNGMtNi02LTE0LjEtOS40LTIyLjYtOS40SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlYzMTEuM2MwLTguNS0zLjQtMTYuNy05LjQtMjIuN3pNNzkwLjIgMzI2SDYwMlYxMzcuOEw3OTAuMiAzMjZ6bTEuOCA1NjJIMjMyVjEzNmgzMDJ2MjE2YTQyIDQyIDAgMDA0MiA0MmgyMTZ2NDk0ek00MjkgNDgxLjJjLTEuOS00LjQtNi4yLTcuMi0xMS03LjJoLTM1Yy02LjYgMC0xMiA1LjQtMTIgMTJ2MjcyYzAgNi42IDUuNCAxMiAxMiAxMmgyNy4xYzYuNiAwIDEyLTUuNCAxMi0xMlY1ODIuMWw2Ni44IDE1MC4yYTEyIDEyIDAgMDAxMSA3LjFINTI0YzQuNyAwIDktMi44IDExLTcuMWw2Ni44LTE1MC42Vjc1OGMwIDYuNiA1LjQgMTIgMTIgMTJINjQxYzYuNiAwIDEyLTUuNCAxMi0xMlY0ODZjMC02LjYtNS40LTEyLTEyLTEyaC0zNC43Yy00LjggMC05LjEgMi44LTExIDcuMmwtODMuMSAxOTEtODMuMi0xOTF6In19XX0sbmFtZToiZmlsZS1tYXJrZG93biIsdGhlbWU6Im91dGxpbmVkIn0sUG09SW0sem09ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246UG19KSl9LEZtPXQuZm9yd2FyZFJlZih6bSksQW09Rm0sTG09e2ljb246ZnVuY3Rpb24oZix2KXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTM0IDM1MlYxMzZIMjMydjc1Mmg1NjBWMzk0SDU3NmE0MiA0MiAwIDAxLTQyLTQyem03Mi4zIDEyMkg2NDFjNi42IDAgMTIgNS40IDEyIDEydjI3MmMwIDYuNi01LjQgMTItMTIgMTJoLTI3LjJjLTYuNiAwLTEyLTUuNC0xMi0xMlY1ODEuN0w1MzUgNzMyLjNjLTIgNC4zLTYuMyA3LjEtMTEgNy4xaC0yNC4xYTEyIDEyIDAgMDEtMTEtNy4xbC02Ni44LTE1MC4yVjc1OGMwIDYuNi01LjQgMTItMTIgMTJIMzgzYy02LjYgMC0xMi01LjQtMTItMTJWNDg2YzAtNi42IDUuNC0xMiAxMi0xMmgzNWM0LjggMCA5LjEgMi44IDExIDcuMmw4My4yIDE5MSA4My4xLTE5MWMxLjktNC40IDYuMi03LjIgMTEtNy4yeiIsZmlsbDp2fX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NTQuNiAyODguNkw2MzkuNCA3My40Yy02LTYtMTQuMS05LjQtMjIuNi05LjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMxMS4zYzAtOC41LTMuNC0xNi43LTkuNC0yMi43ek02MDIgMTM3LjhMNzkwLjIgMzI2SDYwMlYxMzcuOHpNNzkyIDg4OEgyMzJWMTM2aDMwMnYyMTZhNDIgNDIgMCAwMDQyIDQyaDIxNnY0OTR6IixmaWxsOmZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQyOSA0ODEuMmMtMS45LTQuNC02LjItNy4yLTExLTcuMmgtMzVjLTYuNiAwLTEyIDUuNC0xMiAxMnYyNzJjMCA2LjYgNS40IDEyIDEyIDEyaDI3LjFjNi42IDAgMTItNS40IDEyLTEyVjU4Mi4xbDY2LjggMTUwLjJhMTIgMTIgMCAwMDExIDcuMUg1MjRjNC43IDAgOS0yLjggMTEtNy4xbDY2LjgtMTUwLjZWNzU4YzAgNi42IDUuNCAxMiAxMiAxMkg2NDFjNi42IDAgMTItNS40IDEyLTEyVjQ4NmMwLTYuNi01LjQtMTItMTItMTJoLTM0LjdjLTQuOCAwLTkuMSAyLjgtMTEgNy4ybC04My4xIDE5MS04My4yLTE5MXoiLGZpbGw6Zn19XX19LG5hbWU6ImZpbGUtbWFya2Rvd24iLHRoZW1lOiJ0d290b25lIn0sWm09TG0sJG09ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246Wm19KSl9LEhtPXQuZm9yd2FyZFJlZigkbSksRG09SG0sQm09ZSgyNjkxMSksVm09e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg1NC42IDI4OC43YzYgNiA5LjQgMTQuMSA5LjQgMjIuNlY5MjhjMCAxNy43LTE0LjMgMzItMzIgMzJIMTkyYy0xNy43IDAtMzItMTQuMy0zMi0zMlY5NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmg0MjQuN2M4LjUgMCAxNi43IDMuNCAyMi43IDkuNGwyMTUuMiAyMTUuM3pNNzkwLjIgMzI2TDYwMiAxMzcuOFYzMjZoMTg4LjJ6TTYzMy4yMiA2MzcuMjZjLTE1LjE4LS41LTMxLjMyLjY3LTQ5LjY1IDIuOTYtMjQuMy0xNC45OS00MC42Ni0zNS41OC01Mi4yOC02NS44M2wxLjA3LTQuMzggMS4yNC01LjE4YzQuMy0xOC4xMyA2LjYxLTMxLjM2IDcuMy00NC43LjUyLTEwLjA3LS4wNC0xOS4zNi0xLjgzLTI3Ljk3LTMuMy0xOC41OS0xNi40NS0yOS40Ni0zMy4wMi0zMC4xMy0xNS40NS0uNjMtMjkuNjUgOC0zMy4yOCAyMS4zNy01LjkxIDIxLjYyLTIuNDUgNTAuMDcgMTAuMDggOTguNTktMTUuOTYgMzguMDUtMzcuMDUgODIuNjYtNTEuMiAxMDcuNTQtMTguODkgOS43NC0zMy42IDE4LjYtNDUuOTYgMjguNDItMTYuMyAxMi45Ny0yNi40OCAyNi4zLTI5LjI4IDQwLjMtMS4zNiA2LjQ5LjY5IDE0Ljk3IDUuMzYgMjEuOTIgNS4zIDcuODggMTMuMjggMTMgMjIuODUgMTMuNzQgMjQuMTUgMS44NyA1My44My0yMy4wMyA4Ni42LTc5LjI2IDMuMjktMS4xIDYuNzctMi4yNiAxMS4wMi0zLjdsMTEuOS00LjAyYzcuNTMtMi41NCAxMi45OS00LjM2IDE4LjM5LTYuMTEgMjMuNC03LjYyIDQxLjEtMTIuNDMgNTcuMi0xNS4xNyAyNy45OCAxNC45OCA2MC4zMiAyNC44IDgyLjEgMjQuOCAxNy45OCAwIDMwLjEzLTkuMzIgMzQuNTItMjMuOTkgMy44NS0xMi44OC44LTI3LjgyLTcuNDgtMzYuMDgtOC41Ni04LjQxLTI0LjMtMTIuNDMtNDUuNjUtMTMuMTJ6TTM4NS4yMyA3NjUuNjh2LS4zNmwuMTMtLjM0YTU0Ljg2IDU0Ljg2IDAgMDE1LjYtMTAuNzZjNC4yOC02LjU4IDEwLjE3LTEzLjUgMTcuNDctMjAuODcgMy45Mi0zLjk1IDgtNy44IDEyLjc5LTEyLjEyIDEuMDctLjk2IDcuOTEtNy4wNSA5LjE5LTguMjVsMTEuMTctMTAuNC04LjEyIDEyLjkzYy0xMi4zMiAxOS42NC0yMy40NiAzMy43OC0zMyA0My0zLjUxIDMuNC02LjYgNS45LTkuMSA3LjUxYTE2LjQzIDE2LjQzIDAgMDEtMi42MSAxLjQyYy0uNDEuMTctLjc3LjI3LTEuMTMuM2EyLjIgMi4yIDAgMDEtMS4xMi0uMTUgMi4wNyAyLjA3IDAgMDEtMS4yNy0xLjkxek01MTEuMTcgNTQ3LjRsLTIuMjYgNC0xLjQtNC4zOGMtMy4xLTkuODMtNS4zOC0yNC42NC02LjAxLTM4LS43Mi0xNS4yLjQ5LTI0LjMyIDUuMjktMjQuMzIgNi43NCAwIDkuODMgMTAuOCAxMC4wNyAyNy4wNS4yMiAxNC4yOC0yLjAzIDI5LjE0LTUuNyAzNS42NXptLTUuODEgNTguNDZsMS41My00LjA1IDIuMDkgMy44YzExLjY5IDIxLjI0IDI2Ljg2IDM4Ljk2IDQzLjU0IDUxLjMxbDMuNiAyLjY2LTQuMzkuOWMtMTYuMzMgMy4zOC0zMS41NCA4LjQ2LTUyLjM0IDE2Ljg1IDIuMTctLjg4LTIxLjYyIDguODYtMjcuNjQgMTEuMTdsLTUuMjUgMi4wMSAyLjgtNC44OGMxMi4zNS0yMS41IDIzLjc2LTQ3LjMyIDM2LjA1LTc5Ljc3em0xNTcuNjIgNzYuMjZjLTcuODYgMy4xLTI0Ljc4LjMzLTU0LjU3LTEyLjM5bC03LjU2LTMuMjIgOC4yLS42YzIzLjMtMS43MyAzOS44LS40NSA0OS40MiAzLjA3IDQuMSAxLjUgNi44MyAzLjM5IDguMDQgNS41NWE0LjY0IDQuNjQgMCAwMS0xLjM2IDYuMzEgNi43IDYuNyAwIDAxLTIuMTcgMS4yOHoifX1dfSxuYW1lOiJmaWxlLXBkZiIsdGhlbWU6ImZpbGxlZCJ9LE5tPVZtLGptPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOk5tfSkpfSxVbT10LmZvcndhcmRSZWYoam0pLFdtPVVtLGttPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MzEuMyA1NzQuNGwuMy0xLjRjNS44LTIzLjkgMTMuMS01My43IDcuNC04MC43LTMuOC0yMS4zLTE5LjUtMjkuNi0zMi45LTMwLjItMTUuOC0uNy0yOS45IDguMy0zMy40IDIxLjQtNi42IDI0LS43IDU2LjggMTAuMSA5OC42LTEzLjYgMzIuNC0zNS4zIDc5LjUtNTEuMiAxMDcuNS0yOS42IDE1LjMtNjkuMyAzOC45LTc1LjIgNjguNy0xLjIgNS41LjIgMTIuNSAzLjUgMTguOCAzLjcgNyA5LjYgMTIuNCAxNi41IDE1IDMgMS4xIDYuNiAyIDEwLjggMiAxNy42IDAgNDYuMS0xNC4yIDg0LjEtNzkuNCA1LjgtMS45IDExLjgtMy45IDE3LjYtNS45IDI3LjItOS4yIDU1LjQtMTguOCA4MC45LTIzLjEgMjguMiAxNS4xIDYwLjMgMjQuOCA4Mi4xIDI0LjggMjEuNiAwIDMwLjEtMTIuOCAzMy4zLTIwLjUgNS42LTEzLjUgMi45LTMwLjUtNi4yLTM5LjYtMTMuMi0xMy00NS4zLTE2LjQtOTUuMy0xMC4yLTI0LjYtMTUtNDAuNy0zNS40LTUyLjQtNjUuOHpNNDIxLjYgNzI2LjNjLTEzLjkgMjAuMi0yNC40IDMwLjMtMzAuMSAzNC43IDYuNy0xMi4zIDE5LjgtMjUuMyAzMC4xLTM0Ljd6bTg3LjYtMjM1LjVjNS4yIDguOSA0LjUgMzUuOC41IDQ5LjQtNC45LTE5LjktNS42LTQ4LjEtMi43LTUxLjQuOC4xIDEuNS43IDIuMiAyem0tMS42IDEyMC41YzEwLjcgMTguNSAyNC4yIDM0LjQgMzkuMSA0Ni4yLTIxLjYgNC45LTQxLjMgMTMtNTguOSAyMC4yLTQuMiAxLjctOC4zIDMuNC0xMi4zIDUgMTMuMy0yNC4xIDI0LjQtNTEuNCAzMi4xLTcxLjR6bTE1NS42IDY1LjVjLjEuMi4yLjUtLjQuOWgtLjJsLS4yLjNjLS44LjUtOSA1LjMtNDQuMy04LjYgNDAuNi0xLjkgNDUgNy4zIDQ1LjEgNy40em0xOTEuNC0zODguMkw2MzkuNCA3My40Yy02LTYtMTQuMS05LjQtMjIuNi05LjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMxMS4zYzAtOC41LTMuNC0xNi43LTkuNC0yMi43ek03OTAuMiAzMjZINjAyVjEzNy44TDc5MC4yIDMyNnptMS44IDU2MkgyMzJWMTM2aDMwMnYyMTZhNDIgNDIgMCAwMDQyIDQyaDIxNnY0OTR6In19XX0sbmFtZToiZmlsZS1wZGYiLHRoZW1lOiJvdXRsaW5lZCJ9LEttPWttLF9tPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkttfSkpfSxHbT10LmZvcndhcmRSZWYoX20pLFltPUdtLFhtPXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUwOS4yIDQ5MC44Yy0uNy0xLjMtMS40LTEuOS0yLjItMi0yLjkgMy4zLTIuMiAzMS41IDIuNyA1MS40IDQtMTMuNiA0LjctNDAuNS0uNS00OS40em0tMS42IDEyMC41Yy03LjcgMjAtMTguOCA0Ny4zLTMyLjEgNzEuNCA0LTEuNiA4LjEtMy4zIDEyLjMtNSAxNy42LTcuMiAzNy4zLTE1LjMgNTguOS0yMC4yLTE0LjktMTEuOC0yOC40LTI3LjctMzkuMS00Ni4yeiIsZmlsbDp2fX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MzQgMzUyVjEzNkgyMzJ2NzUyaDU2MFYzOTRINTc2YTQyIDQyIDAgMDEtNDItNDJ6bTU1IDI4Ny42YzE2LjEtMS45IDMwLjYtMi44IDQ0LjMtMi4zIDEyLjguNCAyMy42IDIgMzIgNS4xLjIuMS4zLjEuNS4yLjQuMi44LjMgMS4yLjUuNS4yIDEuMS40IDEuNi43LjEuMS4zLjEuNC4yIDQuMSAxLjggNy41IDQgMTAuMSA2LjYgOS4xIDkuMSAxMS44IDI2LjEgNi4yIDM5LjYtMy4yIDcuNy0xMS43IDIwLjUtMzMuMyAyMC41LTIxLjggMC01My45LTkuNy04Mi4xLTI0LjgtMjUuNSA0LjMtNTMuNyAxMy45LTgwLjkgMjMuMS01LjggMi0xMS44IDQtMTcuNiA1LjktMzggNjUuMi02Ni41IDc5LjQtODQuMSA3OS40LTQuMiAwLTcuOC0uOS0xMC44LTItNi45LTIuNi0xMi44LTgtMTYuNS0xNS0uOS0xLjctMS42LTMuNC0yLjItNS4yLTEuNi00LjgtMi4xLTkuNi0xLjMtMTMuNmwuNi0yLjdjLjEtLjIuMS0uNC4yLS42LjItLjcuNC0xLjQuNy0yLjEgMC0uMS4xLS4yLjEtLjMgNC4xLTExLjkgMTMuNi0yMy40IDI3LjctMzQuNiAxMi4zLTkuOCAyNy4xLTE4LjcgNDUuOS0yOC40IDE1LjktMjggMzcuNi03NS4xIDUxLjItMTA3LjQtMTAuOC00MS44LTE2LjctNzQuNi0xMC4xLTk4LjYuOS0zLjMgMi41LTYuNCA0LjYtOS4xLjItLjIuMy0uNC41LS42LjEtLjEuMS0uMi4yLS4yIDYuMy03LjUgMTYuOS0xMS45IDI4LjEtMTEuNSAxNi42LjcgMjkuNyAxMS41IDMzIDMwLjEgMS43IDggMi4yIDE2LjUgMS45IDI1Ljd2LjdjMCAuNSAwIDEtLjEgMS41LS43IDEzLjMtMyAyNi42LTcuMyA0NC43LS40IDEuNi0uOCAzLjItMS4yIDUuMmwtMSA0LjEtLjEuM2MuMS4yLjEuMy4yLjVsMS44IDQuNWMuMS4zLjMuNy40IDEgLjcgMS42IDEuNCAzLjMgMi4xIDQuOHYuMWM4LjcgMTguOCAxOS43IDMzLjQgMzMuOSA0NS4xIDQuMyAzLjUgOC45IDYuNyAxMy45IDkuOCAxLjgtLjUgMy41LS43IDUuMy0uOXoiLGZpbGw6dn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMzkxLjUgNzYxYzUuNy00LjQgMTYuMi0xNC41IDMwLjEtMzQuNy0xMC4zIDkuNC0yMy40IDIyLjQtMzAuMSAzNC43em0yNzAuOS04M2wuMi0uM2guMmMuNi0uNC41LS43LjQtLjktLjEtLjEtNC41LTkuMy00NS4xLTcuNCAzNS4zIDEzLjkgNDMuNSA5LjEgNDQuMyA4LjZ6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg1NC42IDI4OC42TDYzOS40IDczLjRjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzExLjNjMC04LjUtMy40LTE2LjctOS40LTIyLjd6TTYwMiAxMzcuOEw3OTAuMiAzMjZINjAyVjEzNy44ek03OTIgODg4SDIzMlYxMzZoMzAydjIxNmE0MiA0MiAwIDAwNDIgNDJoMjE2djQ5NHoiLGZpbGw6Zn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTM1LjkgNTg1LjNjLS44LTEuNy0xLjUtMy4zLTIuMi00LjktLjEtLjMtLjMtLjctLjQtMWwtMS44LTQuNWMtLjEtLjItLjEtLjMtLjItLjVsLjEtLjMuMi0xLjFjNC0xNi4zIDguNi0zNS4zIDkuNC01NC40di0uN2MuMy04LjYtLjItMTcuMi0yLTI1LjYtMy44LTIxLjMtMTkuNS0yOS42LTMyLjktMzAuMi0xMS4zLS41LTIxLjggNC0yOC4xIDExLjQtLjEuMS0uMS4yLS4yLjItLjIuMi0uNC40LS41LjYtMi4xIDIuNy0zLjcgNS44LTQuNiA5LjEtNi42IDI0LS43IDU2LjggMTAuMSA5OC42LTEzLjYgMzIuNC0zNS4zIDc5LjQtNTEuMiAxMDcuNHYuMWMtMjcuNyAxNC4zLTY0LjEgMzUuOC03My42IDYyLjkgMCAuMS0uMS4yLS4xLjMtLjIuNy0uNSAxLjQtLjcgMi4xLS4xLjItLjEuNC0uMi42LS4yLjktLjUgMS44LS42IDIuNy0uOSA0LS40IDguOCAxLjMgMTMuNi42IDEuOCAxLjMgMy41IDIuMiA1LjIgMy43IDcgOS42IDEyLjQgMTYuNSAxNSAzIDEuMSA2LjYgMiAxMC44IDIgMTcuNiAwIDQ2LjEtMTQuMiA4NC4xLTc5LjQgNS44LTEuOSAxMS44LTMuOSAxNy42LTUuOSAyNy4yLTkuMiA1NS40LTE4LjggODAuOS0yMy4xIDI4LjIgMTUuMSA2MC4zIDI0LjggODIuMSAyNC44IDIxLjYgMCAzMC4xLTEyLjggMzMuMy0yMC41IDUuNi0xMy41IDIuOS0zMC41LTYuMi0zOS42LTIuNi0yLjYtNi00LjgtMTAuMS02LjYtLjEtLjEtLjMtLjEtLjQtLjItLjUtLjItMS4xLS40LTEuNi0uNy0uNC0uMi0uOC0uMy0xLjItLjUtLjItLjEtLjMtLjEtLjUtLjItMTYuMi01LjgtNDEuNy02LjctNzYuMy0yLjhsLTUuMy42Yy01LTMtOS42LTYuMy0xMy45LTkuOC0xNC4yLTExLjMtMjUuMS0yNS44LTMzLjgtNDQuN3pNMzkxLjUgNzYxYzYuNy0xMi4zIDE5LjgtMjUuMyAzMC4xLTM0LjctMTMuOSAyMC4yLTI0LjQgMzAuMy0zMC4xIDM0Ljd6TTUwNyA0ODguOGMuOC4xIDEuNS43IDIuMiAyIDUuMiA4LjkgNC41IDM1LjguNSA0OS40LTQuOS0xOS45LTUuNi00OC4xLTIuNy01MS40em0tMTkuMiAxODguOWMtNC4yIDEuNy04LjMgMy40LTEyLjMgNSAxMy4zLTI0LjEgMjQuNC01MS40IDMyLjEtNzEuNCAxMC43IDE4LjUgMjQuMiAzNC40IDM5LjEgNDYuMi0yMS42IDQuOS00MS4zIDEzLTU4LjkgMjAuMnptMTc1LjQtLjljLjEuMi4yLjUtLjQuOWgtLjJsLS4yLjNjLS44LjUtOSA1LjMtNDQuMy04LjYgNDAuNi0xLjkgNDUgNy4zIDQ1LjEgNy40eiIsZmlsbDpmfX1dfX0sbmFtZToiZmlsZS1wZGYiLHRoZW1lOiJ0d290b25lIn0sUW09WG0sSm09ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246UW19KSl9LHFtPXQuZm9yd2FyZFJlZihKbSksZWc9cW0sdGc9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg1NC42IDI4OC43YzYgNiA5LjQgMTQuMSA5LjQgMjIuNlY5MjhjMCAxNy43LTE0LjMgMzItMzIgMzJIMTkyYy0xNy43IDAtMzItMTQuMy0zMi0zMlY5NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmg0MjQuN2M4LjUgMCAxNi43IDMuNCAyMi43IDkuNGwyMTUuMiAyMTUuM3pNNzkwLjIgMzI2TDYwMiAxMzcuOFYzMjZoMTg4LjJ6TTQ2OC41MyA3NjB2LTkxLjU0aDU5LjI3YzYwLjU3IDAgMTAwLjItMzkuNjUgMTAwLjItOTguMTIgMC01OC4yMi0zOS41OC05OC4zNC05OS45OC05OC4zNEg0MjRhMTIgMTIgMCAwMC0xMiAxMnYyNzZhMTIgMTIgMCAwMDEyIDEyaDMyLjUzYTEyIDEyIDAgMDAxMi0xMnptMC0xMzkuMzNoMzQuOWM0Ny44MiAwIDY3LjE5LTEyLjkzIDY3LjE5LTUwLjMzIDAtMzIuMDUtMTguMTItNTAuMTItNDkuODctNTAuMTJoLTUyLjIydjEwMC40NXoifX1dfSxuYW1lOiJmaWxlLXBwdCIsdGhlbWU6ImZpbGxlZCJ9LG5nPXRnLHJnPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOm5nfSkpfSxhZz10LmZvcndhcmRSZWYocmcpLG9nPWFnLGlnPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00MjQgNDc2Yy00LjQgMC04IDMuNi04IDh2Mjc2YzAgNC40IDMuNiA4IDggOGgzMi41YzQuNCAwIDgtMy42IDgtOHYtOTUuNWg2My4zYzU5LjQgMCA5Ni4yLTM4LjkgOTYuMi05NC4xIDAtNTQuNS0zNi4zLTk0LjMtOTYtOTQuM0g0MjR6bTE1MC42IDk0LjNjMCA0My40LTI2LjUgNTQuMy03MS4yIDU0LjNoLTM4LjlWNTE2LjJoNTYuMmMzMy44IDAgNTMuOSAxOS43IDUzLjkgNTQuMXptMjgwLTI4MS43TDYzOS40IDczLjRjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzExLjNjMC04LjUtMy40LTE2LjctOS40LTIyLjd6TTc5MC4yIDMyNkg2MDJWMTM3LjhMNzkwLjIgMzI2em0xLjggNTYySDIzMlYxMzZoMzAydjIxNmE0MiA0MiAwIDAwNDIgNDJoMjE2djQ5NHoifX1dfSxuYW1lOiJmaWxlLXBwdCIsdGhlbWU6Im91dGxpbmVkIn0sbGc9aWcsc2c9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246bGd9KSl9LGNnPXQuZm9yd2FyZFJlZihzZyksdWc9Y2csZGc9e2ljb246ZnVuY3Rpb24oZix2KXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNDY0LjUgNTE2LjJ2MTA4LjRoMzguOWM0NC43IDAgNzEuMi0xMC45IDcxLjItNTQuMyAwLTM0LjQtMjAuMS01NC4xLTUzLjktNTQuMWgtNTYuMnoiLGZpbGw6dn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTM0IDM1MlYxMzZIMjMydjc1Mmg1NjBWMzk0SDU3NmE0MiA0MiAwIDAxLTQyLTQyem05MCAyMTguNGMwIDU1LjItMzYuOCA5NC4xLTk2LjIgOTQuMWgtNjMuM1Y3NjBjMCA0LjQtMy42IDgtOCA4SDQyNGMtNC40IDAtOC0zLjYtOC04VjQ4NGMwLTQuNCAzLjYtOCA4LTh2LjFoMTA0YzU5LjcgMCA5NiAzOS44IDk2IDk0LjN6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg1NC42IDI4OC42TDYzOS40IDczLjRjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzExLjNjMC04LjUtMy40LTE2LjctOS40LTIyLjd6TTYwMiAxMzcuOEw3OTAuMiAzMjZINjAyVjEzNy44ek03OTIgODg4SDIzMlYxMzZoMzAydjIxNmE0MiA0MiAwIDAwNDIgNDJoMjE2djQ5NHoiLGZpbGw6Zn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNDI0IDQ3Ni4xYy00LjQtLjEtOCAzLjUtOCA3Ljl2Mjc2YzAgNC40IDMuNiA4IDggOGgzMi41YzQuNCAwIDgtMy42IDgtOHYtOTUuNWg2My4zYzU5LjQgMCA5Ni4yLTM4LjkgOTYuMi05NC4xIDAtNTQuNS0zNi4zLTk0LjMtOTYtOTQuM0g0MjR6bTE1MC42IDk0LjJjMCA0My40LTI2LjUgNTQuMy03MS4yIDU0LjNoLTM4LjlWNTE2LjJoNTYuMmMzMy44IDAgNTMuOSAxOS43IDUzLjkgNTQuMXoiLGZpbGw6Zn19XX19LG5hbWU6ImZpbGUtcHB0Iix0aGVtZToidHdvdG9uZSJ9LGZnPWRnLHZnPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOmZnfSkpfSxoZz10LmZvcndhcmRSZWYodmcpLG1nPWhnLGdnPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02NDQuNyA2NjkuMmE3LjkyIDcuOTIgMCAwMC02LjUtMy4zSDU5NGMtNi41IDAtMTAuMyA3LjQtNi41IDEyLjdsNzMuOCAxMDIuMWMzLjIgNC40IDkuNyA0LjQgMTIuOSAwbDExNC4yLTE1OGMzLjgtNS4zIDAtMTIuNy02LjUtMTIuN2gtNDQuM2MtMi42IDAtNSAxLjItNi41IDMuM2wtNjMuNSA4Ny44LTIyLjktMzEuOXpNNjg4IDMwNnYtNDhjMC00LjQtMy42LTgtOC04SDI5NmMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgzODRjNC40IDAgOC0zLjYgOC04em0tMzkyIDg4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDE4NGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOEgyOTZ6bTE4NCA0NThIMjA4VjE0OGg1NjB2Mjk2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LThWMTA4YzAtMTcuNy0xNC4zLTMyLTMyLTMySDE2OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2Nzg0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDMxMmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptNDAyLjYtMzIwLjhsLTE5Mi02Ni43Yy0uOS0uMy0xLjctLjQtMi42LS40cy0xLjguMS0yLjYuNGwtMTkyIDY2LjdhNy45NiA3Ljk2IDAgMDAtNS40IDcuNXYyNTEuMWMwIDIuNSAxLjEgNC44IDMuMSA2LjNsMTkyIDE1MC4yYzEuNCAxLjEgMy4yIDEuNyA0LjkgMS43czMuNS0uNiA0LjktMS43bDE5Mi0xNTAuMmMxLjktMS41IDMuMS0zLjggMy4xLTYuM1Y1MzguN2MwLTMuNC0yLjItNi40LTUuNC03LjV6TTgyNiA3NjMuN0w2ODggODcxLjYgNTUwIDc2My43VjU3N2wxMzgtNDggMTM4IDQ4djE4Ni43eiJ9fV19LG5hbWU6ImZpbGUtcHJvdGVjdCIsdGhlbWU6Im91dGxpbmVkIn0scGc9Z2cseWc9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246cGd9KSl9LENnPXQuZm9yd2FyZFJlZih5ZyksYmc9Q2csU2c9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTY4OCAzMTJ2LTQ4YzAtNC40LTMuNi04LTgtOEgyOTZjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMzg0YzQuNCAwIDgtMy42IDgtOHptLTM5MiA4OGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgxODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThIMjk2em0xNDQgNDUySDIwOFYxNDhoNTYwdjM0NGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04VjEwOGMwLTE3LjctMTQuMy0zMi0zMi0zMkgxNjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjc4NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmgyNzJjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTQ0NS43IDUxLjVsLTkzLjMtOTMuM0M4MTQuNyA3ODAuNyA4MjggNzQzLjkgODI4IDcwNGMwLTk3LjItNzguOC0xNzYtMTc2LTE3NnMtMTc2IDc4LjgtMTc2IDE3NiA3OC44IDE3NiAxNzYgMTc2YzM1LjggMCA2OS0xMC43IDk2LjgtMjlsOTQuNyA5NC43YzEuNiAxLjYgMy42IDIuMyA1LjYgMi4zczQuMS0uOCA1LjYtMi4zbDMxLTMxYTcuOSA3LjkgMCAwMDAtMTEuMnpNNjUyIDgxNmMtNjEuOSAwLTExMi01MC4xLTExMi0xMTJzNTAuMS0xMTIgMTEyLTExMiAxMTIgNTAuMSAxMTIgMTEyLTUwLjEgMTEyLTExMiAxMTJ6In19XX0sbmFtZToiZmlsZS1zZWFyY2giLHRoZW1lOiJvdXRsaW5lZCJ9LE9nPVNnLHhnPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOk9nfSkpfSx3Zz10LmZvcndhcmRSZWYoeGcpLEVnPXdnLFRnPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0yOTYgMjU2Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDM4NGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOEgyOTZ6bTE5MiAyMDB2LTQ4YzAtNC40LTMuNi04LTgtOEgyOTZjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMTg0YzQuNCAwIDgtMy42IDgtOHptLTQ4IDM5NkgyMDhWMTQ4aDU2MHYzNDRjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFYxMDhjMC0xNy43LTE0LjMtMzItMzItMzJIMTY4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3ODRjMCAxNy43IDE0LjMgMzIgMzIgMzJoMjcyYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0xMDQuMS0xMTUuNmMxLjgtMzQuNSAxNi4yLTY2LjggNDAuOC05MS40IDI2LjItMjYuMiA2Mi00MSA5OS4xLTQxIDM3LjQgMCA3Mi42IDE0LjYgOTkuMSA0MSAzLjIgMy4yIDYuMyA2LjYgOS4yIDEwLjFMNzY5LjIgNjczYTggOCAwIDAwMyAxNC4xbDkzLjMgMjIuNWM1IDEuMiA5LjgtMi42IDkuOS03LjdsLjYtOTUuNGE4IDggMCAwMC0xMi45LTYuNGwtMjAuMyAxNS44QzgwNS40IDU2OS42IDc0OC4xIDU0MCA2ODQgNTQwYy0xMDkuOSAwLTE5OS42IDg2LjktMjA0IDE5NS43LS4yIDQuNSAzLjUgOC4zIDggOC4zaDQ4LjFjNC4zIDAgNy44LTMuMyA4LTcuNnpNODgwIDc0NGgtNDguMWMtNC4zIDAtNy44IDMuMy04IDcuNi0xLjggMzQuNS0xNi4yIDY2LjgtNDAuOCA5MS40LTI2LjIgMjYuMi02MiA0MS05OS4xIDQxLTM3LjQgMC03Mi42LTE0LjYtOTkuMS00MS0zLjItMy4yLTYuMy02LjYtOS4yLTEwLjFsMjMuMS0xNy45YTggOCAwIDAwLTMtMTQuMWwtOTMuMy0yMi41Yy01LTEuMi05LjggMi42LTkuOSA3LjdsLS42IDk1LjRhOCA4IDAgMDAxMi45IDYuNGwyMC4zLTE1LjhDNTYyLjYgOTE4LjQgNjE5LjkgOTQ4IDY4NCA5NDhjMTA5LjkgMCAxOTkuNi04Ni45IDIwNC0xOTUuNy4yLTQuNS0zLjUtOC4zLTgtOC4zeiJ9fV19LG5hbWU6ImZpbGUtc3luYyIsdGhlbWU6Im91dGxpbmVkIn0sTWc9VGcsUmc9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246TWd9KSl9LElnPXQuZm9yd2FyZFJlZihSZyksUGc9SWcsemc9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg1NC42IDI4OC43YzYgNiA5LjQgMTQuMSA5LjQgMjIuNlY5MjhjMCAxNy43LTE0LjMgMzItMzIgMzJIMTkyYy0xNy43IDAtMzItMTQuMy0zMi0zMlY5NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmg0MjQuN2M4LjUgMCAxNi43IDMuNCAyMi43IDkuNGwyMTUuMiAyMTUuM3pNNzkwLjIgMzI2TDYwMiAxMzcuOFYzMjZoMTg4LjJ6TTMyMCA0ODJhOCA4IDAgMDAtOCA4djQ4YTggOCAwIDAwOCA4aDM4NGE4IDggMCAwMDgtOHYtNDhhOCA4IDAgMDAtOC04SDMyMHptMCAxMzZhOCA4IDAgMDAtOCA4djQ4YTggOCAwIDAwOCA4aDE4NGE4IDggMCAwMDgtOHYtNDhhOCA4IDAgMDAtOC04SDMyMHoifX1dfSxuYW1lOiJmaWxlLXRleHQiLHRoZW1lOiJmaWxsZWQifSxGZz16ZyxBZz1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpGZ30pKX0sTGc9dC5mb3J3YXJkUmVmKEFnKSxaZz1MZywkZz17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODU0LjYgMjg4LjZMNjM5LjQgNzMuNGMtNi02LTE0LjEtOS40LTIyLjYtOS40SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlYzMTEuM2MwLTguNS0zLjQtMTYuNy05LjQtMjIuN3pNNzkwLjIgMzI2SDYwMlYxMzcuOEw3OTAuMiAzMjZ6bTEuOCA1NjJIMjMyVjEzNmgzMDJ2MjE2YTQyIDQyIDAgMDA0MiA0MmgyMTZ2NDk0ek01MDQgNjE4SDMyMGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgxODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6TTMxMiA0OTB2NDhjMCA0LjQgMy42IDggOCA4aDM4NGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOEgzMjBjLTQuNCAwLTggMy42LTggOHoifX1dfSxuYW1lOiJmaWxlLXRleHQiLHRoZW1lOiJvdXRsaW5lZCJ9LEhnPSRnLERnPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkhnfSkpfSxCZz10LmZvcndhcmRSZWYoRGcpLFZnPUJnLE5nPXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUzNCAzNTJWMTM2SDIzMnY3NTJoNTYwVjM5NEg1NzZhNDIgNDIgMCAwMS00Mi00MnptLTIyIDMyMmMwIDQuNC0zLjYgOC04IDhIMzIwYy00LjQgMC04LTMuNi04LTh2LTQ4YzAtNC40IDMuNi04IDgtOGgxODRjNC40IDAgOCAzLjYgOCA4djQ4em0yMDAtMTg0djQ4YzAgNC40LTMuNiA4LTggOEgzMjBjLTQuNCAwLTgtMy42LTgtOHYtNDhjMC00LjQgMy42LTggOC04aDM4NGM0LjQgMCA4IDMuNiA4IDh6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg1NC42IDI4OC42TDYzOS40IDczLjRjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzExLjNjMC04LjUtMy40LTE2LjctOS40LTIyLjd6TTYwMiAxMzcuOEw3OTAuMiAzMjZINjAyVjEzNy44ek03OTIgODg4SDIzMlYxMzZoMzAydjIxNmE0MiA0MiAwIDAwNDIgNDJoMjE2djQ5NHoiLGZpbGw6Zn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMzEyIDQ5MHY0OGMwIDQuNCAzLjYgOCA4IDhoMzg0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04SDMyMGMtNC40IDAtOCAzLjYtOCA4em0xOTIgMTI4SDMyMGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgxODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6IixmaWxsOmZ9fV19fSxuYW1lOiJmaWxlLXRleHQiLHRoZW1lOiJ0d290b25lIn0samc9TmcsVWc9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246amd9KSl9LFdnPXQuZm9yd2FyZFJlZihVZyksa2c9V2csS2c9ZSg1ODg5NSksX2c9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg1NC42IDI4OC43YzYgNiA5LjQgMTQuMSA5LjQgMjIuNlY5MjhjMCAxNy43LTE0LjMgMzItMzIgMzJIMTkyYy0xNy43IDAtMzItMTQuMy0zMi0zMlY5NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmg0MjQuN2M4LjUgMCAxNi43IDMuNCAyMi43IDkuNGwyMTUuMiAyMTUuM3pNNzkwLjIgMzI2TDYwMiAxMzcuOFYzMjZoMTg4LjJ6TTQwMiA1NDljMCA1LjQgNC40IDkuNSA5LjggOS41aDMyLjRjNS40IDAgOS44LTQuMiA5LjgtOS40IDAtMjguMiAyNS44LTUxLjYgNTgtNTEuNnM1OCAyMy40IDU4IDUxLjVjMCAyNS4zLTIxIDQ3LjItNDkuMyA1MC45LTE5LjMgMi44LTM0LjUgMjAuMy0zNC43IDQwLjF2MzJjMCA1LjUgNC41IDEwIDEwIDEwaDMyYzUuNSAwIDEwLTQuNSAxMC0xMHYtMTIuMmMwLTYgNC0xMS41IDkuNy0xMy4zIDQ0LjYtMTQuNCA3NS01NCA3NC4zLTk4LjktLjgtNTUuNS00OS4yLTEwMC44LTEwOC41LTEwMS42LTYxLjQtLjctMTExLjUgNDUuNi0xMTEuNSAxMDN6bTExMCAyMjdhMzIgMzIgMCAxMDAtNjQgMzIgMzIgMCAwMDAgNjR6In19XX0sbmFtZToiZmlsZS11bmtub3duIix0aGVtZToiZmlsbGVkIn0sR2c9X2csWWc9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246R2d9KSl9LFhnPXQuZm9yd2FyZFJlZihZZyksUWc9WGcsSmc9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg1NC42IDI4OC43TDYzOS40IDczLjRjLTYtNi0xNC4yLTkuNC0yMi43LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzExLjNjMC04LjUtMy40LTE2LjYtOS40LTIyLjZ6TTc5MC4yIDMyNkg2MDJWMTM3LjhMNzkwLjIgMzI2em0xLjggNTYySDIzMlYxMzZoMzAydjIxNmE0MiA0MiAwIDAwNDIgNDJoMjE2djQ5NHpNNDAyIDU0OWMwIDUuNCA0LjQgOS41IDkuOCA5LjVoMzIuNGM1LjQgMCA5LjgtNC4yIDkuOC05LjQgMC0yOC4yIDI1LjgtNTEuNiA1OC01MS42czU4IDIzLjQgNTggNTEuNWMwIDI1LjMtMjEgNDcuMi00OS4zIDUwLjktMTkuMyAyLjgtMzQuNSAyMC4zLTM0LjcgNDAuMXYzMmMwIDUuNSA0LjUgMTAgMTAgMTBoMzJjNS41IDAgMTAtNC41IDEwLTEwdi0xMi4yYzAtNiA0LTExLjUgOS43LTEzLjMgNDQuNi0xNC40IDc1LTU0IDc0LjMtOTguOS0uOC01NS41LTQ5LjItMTAwLjgtMTA4LjUtMTAxLjYtNjEuNC0uNy0xMTEuNSA0NS42LTExMS41IDEwM3ptNzggMTk1YTMyIDMyIDAgMTA2NCAwIDMyIDMyIDAgMTAtNjQgMHoifX1dfSxuYW1lOiJmaWxlLXVua25vd24iLHRoZW1lOiJvdXRsaW5lZCJ9LHFnPUpnLGVwPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOnFnfSkpfSx0cD10LmZvcndhcmRSZWYoZXApLG5wPXRwLHJwPXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUzNCAzNTJWMTM2SDIzMnY3NTJoNTYwVjM5NEg1NzZhNDIgNDIgMCAwMS00Mi00MnptLTIyIDQyNGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzJ6bTExMC0yMjguNGMuNyA0NC45LTI5LjcgODQuNS03NC4zIDk4LjktNS43IDEuOC05LjcgNy4zLTkuNyAxMy4zVjY3MmMwIDUuNS00LjUgMTAtMTAgMTBoLTMyYy01LjUgMC0xMC00LjUtMTAtMTB2LTMyYy4yLTE5LjggMTUuNC0zNy4zIDM0LjctNDAuMUM1NDkgNTk2LjIgNTcwIDU3NC4zIDU3MCA1NDljMC0yOC4xLTI1LjgtNTEuNS01OC01MS41cy01OCAyMy40LTU4IDUxLjZjMCA1LjItNC40IDkuNC05LjggOS40aC0zMi40Yy01LjQgMC05LjgtNC4xLTkuOC05LjUgMC01Ny40IDUwLjEtMTAzLjcgMTExLjUtMTAzIDU5LjMuOCAxMDcuNyA0Ni4xIDEwOC41IDEwMS42eiIsZmlsbDp2fX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NTQuNiAyODguN0w2MzkuNCA3My40Yy02LTYtMTQuMi05LjQtMjIuNy05LjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMxMS4zYzAtOC41LTMuNC0xNi42LTkuNC0yMi42ek02MDIgMTM3LjhMNzkwLjIgMzI2SDYwMlYxMzcuOHpNNzkyIDg4OEgyMzJWMTM2aDMwMnYyMTZhNDIgNDIgMCAwMDQyIDQyaDIxNnY0OTR6IixmaWxsOmZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQ4MCA3NDRhMzIgMzIgMCAxMDY0IDAgMzIgMzIgMCAxMC02NCAwem0tNzgtMTk1YzAgNS40IDQuNCA5LjUgOS44IDkuNWgzMi40YzUuNCAwIDkuOC00LjIgOS44LTkuNCAwLTI4LjIgMjUuOC01MS42IDU4LTUxLjZzNTggMjMuNCA1OCA1MS41YzAgMjUuMy0yMSA0Ny4yLTQ5LjMgNTAuOS0xOS4zIDIuOC0zNC41IDIwLjMtMzQuNyA0MC4xdjMyYzAgNS41IDQuNSAxMCAxMCAxMGgzMmM1LjUgMCAxMC00LjUgMTAtMTB2LTEyLjJjMC02IDQtMTEuNSA5LjctMTMuMyA0NC42LTE0LjQgNzUtNTQgNzQuMy05OC45LS44LTU1LjUtNDkuMi0xMDAuOC0xMDguNS0xMDEuNi02MS40LS43LTExMS41IDQ1LjYtMTExLjUgMTAzeiIsZmlsbDpmfX1dfX0sbmFtZToiZmlsZS11bmtub3duIix0aGVtZToidHdvdG9uZSJ9LGFwPXJwLG9wPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOmFwfSkpfSxpcD10LmZvcndhcmRSZWYob3ApLGxwPWlwLHNwPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NTQuNiAyODguN2M2IDYgOS40IDE0LjEgOS40IDIyLjZWOTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMySDE5MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWOTZjMC0xNy43IDE0LjMtMzIgMzItMzJoNDI0LjdjOC41IDAgMTYuNyAzLjQgMjIuNyA5LjRsMjE1LjIgMjE1LjN6TTc5MC4yIDMyNkw2MDIgMTM3LjhWMzI2aDE4OC4yek01MTIgNTY2LjFsNTIuODEgMTk3YTEyIDEyIDAgMDAxMS42IDguOWgzMS43N2ExMiAxMiAwIDAwMTEuNi04Ljg4bDc0LjM3LTI3NmExMiAxMiAwIDAwLjQtMy4xMiAxMiAxMiAwIDAwLTEyLTEyaC0zNS41N2ExMiAxMiAwIDAwLTExLjcgOS4zMWwtNDUuNzggMTk5LjEtNDkuNzYtMTk5LjMyQTEyIDEyIDAgMDA1MjguMSA0NzJoLTMyLjJhMTIgMTIgMCAwMC0xMS42NCA5LjFMNDM0LjYgNjgwLjAxIDM4OC41IDQ4MS4zYTEyIDEyIDAgMDAtMTEuNjgtOS4yOWgtMzUuMzlhMTIgMTIgMCAwMC0zLjExLjQxIDEyIDEyIDAgMDAtOC40NyAxNC43bDc0LjE3IDI3NkExMiAxMiAwIDAwNDE1LjYgNzcyaDMxLjk5YTEyIDEyIDAgMDAxMS41OS04LjlsNTIuODEtMTk3eiJ9fV19LG5hbWU6ImZpbGUtd29yZCIsdGhlbWU6ImZpbGxlZCJ9LGNwPXNwLHVwPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOmNwfSkpfSxkcD10LmZvcndhcmRSZWYodXApLGZwPWRwLHZwPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NTQuNiAyODguNkw2MzkuNCA3My40Yy02LTYtMTQuMS05LjQtMjIuNi05LjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMxMS4zYzAtOC41LTMuNC0xNi43LTkuNC0yMi43ek03OTAuMiAzMjZINjAyVjEzNy44TDc5MC4yIDMyNnptMS44IDU2MkgyMzJWMTM2aDMwMnYyMTZhNDIgNDIgMCAwMDQyIDQyaDIxNnY0OTR6TTUyOC4xIDQ3MmgtMzIuMmMtNS41IDAtMTAuMyAzLjctMTEuNiA5LjFMNDM0LjYgNjgwbC00Ni4xLTE5OC43Yy0xLjMtNS40LTYuMS05LjMtMTEuNy05LjNoLTM1LjRhMTIuMDIgMTIuMDIgMCAwMC0xMS42IDE1LjFsNzQuMiAyNzZjMS40IDUuMiA2LjIgOC45IDExLjYgOC45aDMyYzUuNCAwIDEwLjItMy42IDExLjYtOC45bDUyLjgtMTk3IDUyLjggMTk3YzEuNCA1LjIgNi4yIDguOSAxMS42IDguOWgzMS44YzUuNCAwIDEwLjItMy42IDExLjYtOC45bDc0LjQtMjc2YTEyLjA0IDEyLjA0IDAgMDAtMTEuNi0xNS4xSDY0N2MtNS42IDAtMTAuNCAzLjktMTEuNyA5LjNsLTQ1LjggMTk5LjEtNDkuOC0xOTkuM2MtMS4zLTUuNC02LjEtOS4xLTExLjYtOS4xeiJ9fV19LG5hbWU6ImZpbGUtd29yZCIsdGhlbWU6Im91dGxpbmVkIn0saHA9dnAsbXA9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246aHB9KSl9LGdwPXQuZm9yd2FyZFJlZihtcCkscHA9Z3AseXA9e2ljb246ZnVuY3Rpb24oZix2KXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTM0IDM1MlYxMzZIMjMydjc1Mmg1NjBWMzk0SDU3NmE0MiA0MiAwIDAxLTQyLTQyem0xMDEuMyAxMjkuM2MxLjMtNS40IDYuMS05LjMgMTEuNy05LjNoMzUuNmExMi4wNCAxMi4wNCAwIDAxMTEuNiAxNS4xbC03NC40IDI3NmMtMS40IDUuMy02LjIgOC45LTExLjYgOC45aC0zMS44Yy01LjQgMC0xMC4yLTMuNy0xMS42LTguOWwtNTIuOC0xOTctNTIuOCAxOTdjLTEuNCA1LjMtNi4yIDguOS0xMS42IDguOWgtMzJjLTUuNCAwLTEwLjItMy43LTExLjYtOC45bC03NC4yLTI3NmExMi4wMiAxMi4wMiAwIDAxMTEuNi0xNS4xaDM1LjRjNS42IDAgMTAuNCAzLjkgMTEuNyA5LjNMNDM0LjYgNjgwbDQ5LjctMTk4LjljMS4zLTUuNCA2LjEtOS4xIDExLjYtOS4xaDMyLjJjNS41IDAgMTAuMyAzLjcgMTEuNiA5LjFsNDkuOCAxOTkuMyA0NS44LTE5OS4xeiIsZmlsbDp2fX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NTQuNiAyODguNkw2MzkuNCA3My40Yy02LTYtMTQuMS05LjQtMjIuNi05LjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMxMS4zYzAtOC41LTMuNC0xNi43LTkuNC0yMi43ek02MDIgMTM3LjhMNzkwLjIgMzI2SDYwMlYxMzcuOHpNNzkyIDg4OEgyMzJWMTM2aDMwMnYyMTZhNDIgNDIgMCAwMDQyIDQyaDIxNnY0OTR6IixmaWxsOmZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUyOC4xIDQ3MmgtMzIuMmMtNS41IDAtMTAuMyAzLjctMTEuNiA5LjFMNDM0LjYgNjgwbC00Ni4xLTE5OC43Yy0xLjMtNS40LTYuMS05LjMtMTEuNy05LjNoLTM1LjRhMTIuMDIgMTIuMDIgMCAwMC0xMS42IDE1LjFsNzQuMiAyNzZjMS40IDUuMiA2LjIgOC45IDExLjYgOC45aDMyYzUuNCAwIDEwLjItMy42IDExLjYtOC45bDUyLjgtMTk3IDUyLjggMTk3YzEuNCA1LjIgNi4yIDguOSAxMS42IDguOWgzMS44YzUuNCAwIDEwLjItMy42IDExLjYtOC45bDc0LjQtMjc2YTEyLjA0IDEyLjA0IDAgMDAtMTEuNi0xNS4xSDY0N2MtNS42IDAtMTAuNCAzLjktMTEuNyA5LjNsLTQ1LjggMTk5LjEtNDkuOC0xOTkuM2MtMS4zLTUuNC02LjEtOS4xLTExLjYtOS4xeiIsZmlsbDpmfX1dfX0sbmFtZToiZmlsZS13b3JkIix0aGVtZToidHdvdG9uZSJ9LENwPXlwLGJwPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkNwfSkpfSxTcD10LmZvcndhcmRSZWYoYnApLE9wPVNwLHhwPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NTQuNiAyODguN2M2IDYgOS40IDE0LjEgOS40IDIyLjZWOTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMySDE5MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWOTZjMC0xNy43IDE0LjMtMzIgMzItMzJoNDI0LjdjOC41IDAgMTYuNyAzLjQgMjIuNyA5LjRsMjE1LjIgMjE1LjN6TTc5MC4yIDMyNkw2MDIgMTM3LjhWMzI2aDE4OC4yek0yOTYgMTM2djY0aDY0di02NGgtNjR6bTY0IDY0djY0aDY0di02NGgtNjR6bS02NCA2NHY2NGg2NHYtNjRoLTY0em02NCA2NHY2NGg2NHYtNjRoLTY0em0tNjQgNjR2NjRoNjR2LTY0aC02NHptNjQgNjR2NjRoNjR2LTY0aC02NHptLTY0IDY0djY0aDY0di02NGgtNjR6bTAgNjR2MTYwaDEyOFY1ODRIMjk2em00OCA0OGgzMnY2NGgtMzJ2LTY0eiJ9fV19LG5hbWU6ImZpbGUtemlwIix0aGVtZToiZmlsbGVkIn0sd3A9eHAsRXA9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246d3B9KSl9LFRwPXQuZm9yd2FyZFJlZihFcCksTXA9VHAsUnA9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTI5NiAzOTJoNjR2NjRoLTY0em0wIDE5MHYxNjBoMTI4VjU4MmgtNjR2LTYyaC02NHY2MnptODAgNDh2NjRoLTMydi02NGgzMnptLTE2LTMwMmg2NHY2NGgtNjR6bS02NC02NGg2NHY2NGgtNjR6bTY0IDE5Mmg2NHY2NGgtNjR6bTAtMjU2aDY0djY0aC02NHptNDk0LjYgODguNkw2MzkuNCA3My40Yy02LTYtMTQuMS05LjQtMjIuNi05LjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMxMS4zYzAtOC41LTMuNC0xNi43LTkuNC0yMi43ek03OTAuMiAzMjZINjAyVjEzNy44TDc5MC4yIDMyNnptMS44IDU2MkgyMzJWMTM2aDY0djY0aDY0di02NGgxNzR2MjE2YTQyIDQyIDAgMDA0MiA0MmgyMTZ2NDk0eiJ9fV19LG5hbWU6ImZpbGUtemlwIix0aGVtZToib3V0bGluZWQifSxJcD1ScCxQcD1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpJcH0pKX0senA9dC5mb3J3YXJkUmVmKFBwKSxGcD16cCxBcD17aWNvbjpmdW5jdGlvbihmLHYpe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0zNDQgNjMwaDMydjJoLTMyeiIsZmlsbDp2fX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MzQgMzUyVjEzNkgzNjB2NjRoNjR2NjRoLTY0djY0aDY0djY0aC02NHY2NGg2NHY2NGgtNjR2NjJoNjR2MTYwSDI5NlY1MjBoNjR2LTY0aC02NHYtNjRoNjR2LTY0aC02NHYtNjRoNjR2LTY0aC02NHYtNjRoLTY0djc1Mmg1NjBWMzk0SDU3NmE0MiA0MiAwIDAxLTQyLTQyeiIsZmlsbDp2fX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NTQuNiAyODguNkw2MzkuNCA3My40Yy02LTYtMTQuMS05LjQtMjIuNi05LjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMxMS4zYzAtOC41LTMuNC0xNi43LTkuNC0yMi43ek02MDIgMTM3LjhMNzkwLjIgMzI2SDYwMlYxMzcuOHpNNzkyIDg4OEgyMzJWMTM2aDY0djY0aDY0di02NGgxNzR2MjE2YTQyIDQyIDAgMDA0MiA0MmgyMTZ2NDk0eiIsZmlsbDpmfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0yOTYgMzkyaDY0djY0aC02NHptMC0xMjhoNjR2NjRoLTY0em0wIDMxOHYxNjBoMTI4VjU4MmgtNjR2LTYyaC02NHY2MnptNDggNTB2LTJoMzJ2NjRoLTMydi02MnptMTYtNDMyaDY0djY0aC02NHptMCAyNTZoNjR2NjRoLTY0em0wLTEyOGg2NHY2NGgtNjR6IixmaWxsOmZ9fV19fSxuYW1lOiJmaWxlLXppcCIsdGhlbWU6InR3b3RvbmUifSxMcD1BcCxacD1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpMcH0pKX0sJHA9dC5mb3J3YXJkUmVmKFpwKSxIcD0kcCxEcD1lKDk5OTgyKSxCcD1lKDI2MDI0KSxWcD17aWNvbjpmdW5jdGlvbihmLHYpe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00MjAuNiA3OThoMTgyLjlWNjQySDQyMC42ek00MTEgNTYxLjRsOS41IDE2LjZoMTgzbDkuNS0xNi42TDgxMS4zIDIyNkgyMTIuN3oiLGZpbGw6dn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwLjEgMTU0SDE0My45Yy0yNC41IDAtMzkuOCAyNi43LTI3LjUgNDhMMzQ5IDU5Ny40VjgzOGMwIDE3LjcgMTQuMiAzMiAzMS44IDMyaDI2Mi40YzE3LjYgMCAzMS44LTE0LjMgMzEuOC0zMlY1OTcuNEw5MDcuNyAyMDJjMTIuMi0yMS4zLTMuMS00OC0yNy42LTQ4ek02MDMuNSA3OThINDIwLjZWNjQyaDE4Mi45djE1NnptOS41LTIzNi42bC05LjUgMTYuNmgtMTgzbC05LjUtMTYuNkwyMTIuNyAyMjZoNTk4LjZMNjEzIDU2MS40eiIsZmlsbDpmfX1dfX0sbmFtZToiZmlsdGVyIix0aGVtZToidHdvdG9uZSJ9LE5wPVZwLGpwPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOk5wfSkpfSxVcD10LmZvcndhcmRSZWYoanApLFdwPVVwLGtwPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04MzQuMSA0NjkuMkEzNDcuNDkgMzQ3LjQ5IDAgMDA3NTEuMiAzNTRsLTI5LjEtMjYuN2E4LjA5IDguMDkgMCAwMC0xMyAzLjNsLTEzIDM3LjNjLTguMSAyMy40LTIzIDQ3LjMtNDQuMSA3MC44LTEuNCAxLjUtMyAxLjktNC4xIDItMS4xLjEtMi44LS4xLTQuMy0xLjUtMS40LTEuMi0yLjEtMy0yLTQuOCAzLjctNjAuMi0xNC4zLTEyOC4xLTUzLjctMjAyQzU1NS4zIDE3MSA1MTAgMTIzLjEgNDUzLjQgODkuN2wtNDEuMy0yNC4zYy01LjQtMy4yLTEyLjMgMS0xMiA3LjNsMi4yIDQ4YzEuNSAzMi44LTIuMyA2MS44LTExLjMgODUuOS0xMSAyOS41LTI2LjggNTYuOS00NyA4MS41YTI5NS42NCAyOTUuNjQgMCAwMS00Ny41IDQ2LjEgMzUyLjYgMzUyLjYgMCAwMC0xMDAuMyAxMjEuNUEzNDcuNzUgMzQ3Ljc1IDAgMDAxNjAgNjEwYzAgNDcuMiA5LjMgOTIuOSAyNy43IDEzNmEzNDkuNCAzNDkuNCAwIDAwNzUuNSAxMTAuOWMzMi40IDMyIDcwIDU3LjIgMTExLjkgNzQuN0M0MTguNSA5NDkuOCA0NjQuNSA5NTkgNTEyIDk1OXM5My41LTkuMiAxMzYuOS0yNy4zQTM0OC42IDM0OC42IDAgMDA3NjAuOCA4NTdjMzIuNC0zMiA1Ny44LTY5LjQgNzUuNS0xMTAuOWEzNDQuMiAzNDQuMiAwIDAwMjcuNy0xMzZjMC00OC44LTEwLTk2LjItMjkuOS0xNDAuOXoifX1dfSxuYW1lOiJmaXJlIix0aGVtZToiZmlsbGVkIn0sS3A9a3AsX3A9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246S3B9KSl9LEdwPXQuZm9yd2FyZFJlZihfcCksWXA9R3AsWHA9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTgzNC4xIDQ2OS4yQTM0Ny40OSAzNDcuNDkgMCAwMDc1MS4yIDM1NGwtMjkuMS0yNi43YTguMDkgOC4wOSAwIDAwLTEzIDMuM2wtMTMgMzcuM2MtOC4xIDIzLjQtMjMgNDcuMy00NC4xIDcwLjgtMS40IDEuNS0zIDEuOS00LjEgMi0xLjEuMS0yLjgtLjEtNC4zLTEuNS0xLjQtMS4yLTIuMS0zLTItNC44IDMuNy02MC4yLTE0LjMtMTI4LjEtNTMuNy0yMDJDNTU1LjMgMTcxIDUxMCAxMjMuMSA0NTMuNCA4OS43bC00MS4zLTI0LjNjLTUuNC0zLjItMTIuMyAxLTEyIDcuM2wyLjIgNDhjMS41IDMyLjgtMi4zIDYxLjgtMTEuMyA4NS45LTExIDI5LjUtMjYuOCA1Ni45LTQ3IDgxLjVhMjk1LjY0IDI5NS42NCAwIDAxLTQ3LjUgNDYuMSAzNTIuNiAzNTIuNiAwIDAwLTEwMC4zIDEyMS41QTM0Ny43NSAzNDcuNzUgMCAwMDE2MCA2MTBjMCA0Ny4yIDkuMyA5Mi45IDI3LjcgMTM2YTM0OS40IDM0OS40IDAgMDA3NS41IDExMC45YzMyLjQgMzIgNzAgNTcuMiAxMTEuOSA3NC43QzQxOC41IDk0OS44IDQ2NC41IDk1OSA1MTIgOTU5czkzLjUtOS4yIDEzNi45LTI3LjNBMzQ4LjYgMzQ4LjYgMCAwMDc2MC44IDg1N2MzMi40LTMyIDU3LjgtNjkuNCA3NS41LTExMC45YTM0NC4yIDM0NC4yIDAgMDAyNy43LTEzNmMwLTQ4LjgtMTAtOTYuMi0yOS45LTE0MC45ek03MTMgODA4LjVjLTUzLjcgNTMuMi0xMjUgODIuNC0yMDEgODIuNHMtMTQ3LjMtMjkuMi0yMDEtODIuNGMtNTMuNS01My4xLTgzLTEyMy41LTgzLTE5OC40IDAtNDMuNSA5LjgtODUuMiAyOS4xLTEyNCAxOC44LTM3LjkgNDYuOC03MS44IDgwLjgtOTcuOWEzNDkuNiAzNDkuNiAwIDAwNTguNi01Ni44YzI1LTMwLjUgNDQuNi02NC41IDU4LjItMTAxYTI0MCAyNDAgMCAwMDEyLjEtNDYuNWMyNC4xIDIyLjIgNDQuMyA0OSA2MS4yIDgwLjQgMzMuNCA2Mi42IDQ4LjggMTE4LjMgNDUuOCAxNjUuN2E3NC4wMSA3NC4wMSAwIDAwMjQuNCA1OS44IDczLjM2IDczLjM2IDAgMDA1My40IDE4LjhjMTkuNy0xIDM3LjgtOS43IDUxLTI0LjQgMTMuMy0xNC45IDI0LjgtMzAuMSAzNC40LTQ1LjYgMTQgMTcuOSAyNS43IDM3LjQgMzUgNTguNCAxNS45IDM1LjggMjQgNzMuOSAyNCAxMTMuMSAwIDc0LjktMjkuNSAxNDUuNC04MyAxOTguNHoifX1dfSxuYW1lOiJmaXJlIix0aGVtZToib3V0bGluZWQifSxRcD1YcCxKcD1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpRcH0pKX0scXA9dC5mb3J3YXJkUmVmKEpwKSxleT1xcCx0eT17aWNvbjpmdW5jdGlvbihmLHYpe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik03MzcgNDM4LjZjLTkuNiAxNS41LTIxLjEgMzAuNy0zNC40IDQ1LjZhNzMuMSA3My4xIDAgMDEtNTEgMjQuNCA3My4zNiA3My4zNiAwIDAxLTUzLjQtMTguOCA3NC4wMSA3NC4wMSAwIDAxLTI0LjQtNTkuOGMzLTQ3LjQtMTIuNC0xMDMuMS00NS44LTE2NS43LTE2LjktMzEuNC0zNy4xLTU4LjItNjEuMi04MC40YTI0MCAyNDAgMCAwMS0xMi4xIDQ2LjUgMzU0LjI2IDM1NC4yNiAwIDAxLTU4LjIgMTAxIDM0OS42IDM0OS42IDAgMDEtNTguNiA1Ni44Yy0zNCAyNi4xLTYyIDYwLTgwLjggOTcuOWEyNzUuOTYgMjc1Ljk2IDAgMDAtMjkuMSAxMjRjMCA3NC45IDI5LjUgMTQ1LjMgODMgMTk4LjQgNTMuNyA1My4yIDEyNSA4Mi40IDIwMSA4Mi40czE0Ny4zLTI5LjIgMjAxLTgyLjRjNTMuNS01MyA4My0xMjMuNSA4My0xOTguNCAwLTM5LjItOC4xLTc3LjMtMjQtMTEzLjEtOS4zLTIxLTIxLTQwLjUtMzUtNTguNHoiLGZpbGw6dn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODM0LjEgNDY5LjJBMzQ3LjQ5IDM0Ny40OSAwIDAwNzUxLjIgMzU0bC0yOS4xLTI2LjdhOC4wOSA4LjA5IDAgMDAtMTMgMy4zbC0xMyAzNy4zYy04LjEgMjMuNC0yMyA0Ny4zLTQ0LjEgNzAuOC0xLjQgMS41LTMgMS45LTQuMSAyLTEuMS4xLTIuOC0uMS00LjMtMS41LTEuNC0xLjItMi4xLTMtMi00LjggMy43LTYwLjItMTQuMy0xMjguMS01My43LTIwMkM1NTUuMyAxNzEgNTEwIDEyMy4xIDQ1My40IDg5LjdsLTQxLjMtMjQuM2MtNS40LTMuMi0xMi4zIDEtMTIgNy4zbDIuMiA0OGMxLjUgMzIuOC0yLjMgNjEuOC0xMS4zIDg1LjktMTEgMjkuNS0yNi44IDU2LjktNDcgODEuNWEyOTUuNjQgMjk1LjY0IDAgMDEtNDcuNSA0Ni4xIDM1Mi42IDM1Mi42IDAgMDAtMTAwLjMgMTIxLjVBMzQ3Ljc1IDM0Ny43NSAwIDAwMTYwIDYxMGMwIDQ3LjIgOS4zIDkyLjkgMjcuNyAxMzZhMzQ5LjQgMzQ5LjQgMCAwMDc1LjUgMTEwLjljMzIuNCAzMiA3MCA1Ny4yIDExMS45IDc0LjdDNDE4LjUgOTQ5LjggNDY0LjUgOTU5IDUxMiA5NTlzOTMuNS05LjIgMTM2LjktMjcuM0EzNDguNiAzNDguNiAwIDAwNzYwLjggODU3YzMyLjQtMzIgNTcuOC02OS40IDc1LjUtMTEwLjlhMzQ0LjIgMzQ0LjIgMCAwMDI3LjctMTM2YzAtNDguOC0xMC05Ni4yLTI5LjktMTQwLjl6TTcxMyA4MDguNWMtNTMuNyA1My4yLTEyNSA4Mi40LTIwMSA4Mi40cy0xNDcuMy0yOS4yLTIwMS04Mi40Yy01My41LTUzLjEtODMtMTIzLjUtODMtMTk4LjQgMC00My41IDkuOC04NS4yIDI5LjEtMTI0IDE4LjgtMzcuOSA0Ni44LTcxLjggODAuOC05Ny45YTM0OS42IDM0OS42IDAgMDA1OC42LTU2LjhjMjUtMzAuNSA0NC42LTY0LjUgNTguMi0xMDFhMjQwIDI0MCAwIDAwMTIuMS00Ni41YzI0LjEgMjIuMiA0NC4zIDQ5IDYxLjIgODAuNCAzMy40IDYyLjYgNDguOCAxMTguMyA0NS44IDE2NS43YTc0LjAxIDc0LjAxIDAgMDAyNC40IDU5LjggNzMuMzYgNzMuMzYgMCAwMDUzLjQgMTguOGMxOS43LTEgMzcuOC05LjcgNTEtMjQuNCAxMy4zLTE0LjkgMjQuOC0zMC4xIDM0LjQtNDUuNiAxNCAxNy45IDI1LjcgMzcuNCAzNSA1OC40IDE1LjkgMzUuOCAyNCA3My45IDI0IDExMy4xIDAgNzQuOS0yOS41IDE0NS40LTgzIDE5OC40eiIsZmlsbDpmfX1dfX0sbmFtZToiZmlyZSIsdGhlbWU6InR3b3RvbmUifSxueT10eSxyeT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpueX0pKX0sYXk9dC5mb3J3YXJkUmVmKHJ5KSxveT1heSxpeT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDMwNUg2MjRWMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMySDE4NHYtNDBjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djc4NGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04VjY0MGgyNDh2MTEzYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDQxNmMxNy43IDAgMzItMTQuMyAzMi0zMlYzMzdjMC0xNy43LTE0LjMtMzItMzItMzJ6In19XX0sbmFtZToiZmxhZyIsdGhlbWU6ImZpbGxlZCJ9LGx5PWl5LHN5PWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOmx5fSkpfSxjeT10LmZvcndhcmRSZWYoc3kpLHV5PWN5LGR5PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMzA1SDYyNFYxOTJjMC0xNy43LTE0LjMtMzItMzItMzJIMTg0di00MGMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2Nzg0YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LThWNjQwaDI0OHYxMTNjMCAxNy43IDE0LjMgMzIgMzIgMzJoNDE2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMzN2MwLTE3LjctMTQuMy0zMi0zMi0zMnpNMTg0IDU2OFYyMzJoMzY4djMzNkgxODR6bTY1NiAxNDVINTA0di03M2gxMTJjNC40IDAgOC0zLjYgOC04VjM3N2gyMTZ2MzM2eiJ9fV19LG5hbWU6ImZsYWciLHRoZW1lOiJvdXRsaW5lZCJ9LGZ5PWR5LHZ5PWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOmZ5fSkpfSxoeT10LmZvcndhcmRSZWYodnkpLG15PWh5LGd5PXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTE4NCAyMzJoMzY4djMzNkgxODR6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTYyNCA2MzJjMCA0LjQtMy42IDgtOCA4SDUwNHY3M2gzMzZWMzc3SDYyNHYyNTV6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAzMDVINjI0VjE5MmMwLTE3LjctMTQuMy0zMi0zMi0zMkgxODR2LTQwYzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY3ODRjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFY2NDBoMjQ4djExM2MwIDE3LjcgMTQuMyAzMiAzMiAzMmg0MTZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzM3YzAtMTcuNy0xNC4zLTMyLTMyLTMyek0xODQgNTY4VjIzMmgzNjh2MzM2SDE4NHptNjU2IDE0NUg1MDR2LTczaDExMmM0LjQgMCA4LTMuNiA4LThWMzc3aDIxNnYzMzZ6IixmaWxsOmZ9fV19fSxuYW1lOiJmbGFnIix0aGVtZToidHdvdG9uZSJ9LHB5PWd5LHl5PWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOnB5fSkpfSxDeT10LmZvcndhcmRSZWYoeXkpLGJ5PUN5LFN5PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMjk4LjRINTIxTDQwMy43IDE4Ni4yYTguMTUgOC4xNSAwIDAwLTUuNS0yLjJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY1OTJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMzMC40YzAtMTcuNy0xNC4zLTMyLTMyLTMyek02MzIgNTc3YzAgMy44LTMuNCA3LTcuNSA3SDU0MHY4NC45YzAgMy45LTMuMiA3LjEtNyA3LjFoLTQyYy0zLjggMC03LTMuMi03LTcuMVY1ODRoLTg0LjVjLTQuMSAwLTcuNS0zLjItNy41LTd2LTQyYzAtMy44IDMuNC03IDcuNS03SDQ4NHYtODQuOWMwLTMuOSAzLjItNy4xIDctNy4xaDQyYzMuOCAwIDcgMy4yIDcgNy4xVjUyOGg4NC41YzQuMSAwIDcuNSAzLjIgNy41IDd2NDJ6In19XX0sbmFtZToiZm9sZGVyLWFkZCIsdGhlbWU6ImZpbGxlZCJ9LE95PVN5LHh5PWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOk95fSkpfSx3eT10LmZvcndhcmRSZWYoeHkpLEV5PXd5LFR5PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00ODQgNDQzLjFWNTI4aC04NC41Yy00LjEgMC03LjUgMy4xLTcuNSA3djQyYzAgMy44IDMuNCA3IDcuNSA3SDQ4NHY4NC45YzAgMy45IDMuMiA3LjEgNyA3LjFoNDJjMy45IDAgNy0zLjIgNy03LjFWNTg0aDg0LjVjNC4xIDAgNy41LTMuMiA3LjUtN3YtNDJjMC0zLjktMy40LTctNy41LTdINTQwdi04NC45YzAtMy45LTMuMS03LjEtNy03LjFoLTQyYy0zLjggMC03IDMuMi03IDcuMXptMzk2LTE0NC43SDUyMUw0MDMuNyAxODYuMmE4LjE1IDguMTUgMCAwMC01LjUtMi4ySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NTkyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYzMzAuNGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNODQwIDc2OEgxODRWMjU2aDE4OC41bDExOS42IDExNC40SDg0MFY3Njh6In19XX0sbmFtZToiZm9sZGVyLWFkZCIsdGhlbWU6Im91dGxpbmVkIn0sTXk9VHksUnk9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246TXl9KSl9LEl5PXQuZm9yd2FyZFJlZihSeSksUHk9SXksenk9e2ljb246ZnVuY3Rpb24oZix2KXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMzcyLjUgMjU2SDE4NHY1MTJoNjU2VjM3MC40SDQ5Mi4xTDM3Mi41IDI1NnpNNTQwIDQ0My4xVjUyOGg4NC41YzQuMSAwIDcuNSAzLjEgNy41IDd2NDJjMCAzLjgtMy40IDctNy41IDdINTQwdjg0LjljMCAzLjktMy4xIDcuMS03IDcuMWgtNDJjLTMuOCAwLTctMy4yLTctNy4xVjU4NGgtODQuNWMtNC4xIDAtNy41LTMuMi03LjUtN3YtNDJjMC0zLjkgMy40LTcgNy41LTdINDg0di04NC45YzAtMy45IDMuMi03LjEgNy03LjFoNDJjMy45IDAgNyAzLjIgNyA3LjF6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAyOTguNEg1MjFMNDAzLjcgMTg2LjJhOC4xNSA4LjE1IDAgMDAtNS41LTIuMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjU5MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzMwLjRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTg0MCA3NjhIMTg0VjI1NmgxODguNWwxMTkuNiAxMTQuNEg4NDBWNzY4eiIsZmlsbDpmfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00ODQgNDQzLjFWNTI4aC04NC41Yy00LjEgMC03LjUgMy4xLTcuNSA3djQyYzAgMy44IDMuNCA3IDcuNSA3SDQ4NHY4NC45YzAgMy45IDMuMiA3LjEgNyA3LjFoNDJjMy45IDAgNy0zLjIgNy03LjFWNTg0aDg0LjVjNC4xIDAgNy41LTMuMiA3LjUtN3YtNDJjMC0zLjktMy40LTctNy41LTdINTQwdi04NC45YzAtMy45LTMuMS03LjEtNy03LjFoLTQyYy0zLjggMC03IDMuMi03IDcuMXoiLGZpbGw6Zn19XX19LG5hbWU6ImZvbGRlci1hZGQiLHRoZW1lOiJ0d290b25lIn0sRnk9enksQXk9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246Rnl9KSl9LEx5PXQuZm9yd2FyZFJlZihBeSksWnk9THksJHk9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAyOTguNEg1MjFMNDAzLjcgMTg2LjJhOC4xNSA4LjE1IDAgMDAtNS41LTIuMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjU5MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzMwLjRjMC0xNy43LTE0LjMtMzItMzItMzJ6In19XX0sbmFtZToiZm9sZGVyIix0aGVtZToiZmlsbGVkIn0sSHk9JHksRHk9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246SHl9KSl9LEJ5PXQuZm9yd2FyZFJlZihEeSksVnk9QnksTnk9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkyOCA0NDRIODIwVjMzMC40YzAtMTcuNy0xNC4zLTMyLTMyLTMySDQ3M0wzNTUuNyAxODYuMmE4LjE1IDguMTUgMCAwMC01LjUtMi4ySDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY1OTJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjk4YzEzIDAgMjQuOC03LjkgMjkuNy0yMGwxMzQtMzMyYzEuNS0zLjggMi4zLTcuOSAyLjMtMTIgMC0xNy43LTE0LjMtMzItMzItMzJ6bS0xODAgMEgyMzhjLTEzIDAtMjQuOCA3LjktMjkuNyAyMEwxMzYgNjQzLjJWMjU2aDE4OC41bDExOS42IDExNC40SDc0OFY0NDR6In19XX0sbmFtZToiZm9sZGVyLW9wZW4iLHRoZW1lOiJmaWxsZWQifSxqeT1OeSxVeT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpqeX0pKX0sV3k9dC5mb3J3YXJkUmVmKFV5KSxreT1XeSxLeT1lKDk1NTkxKSxfeT17aWNvbjpmdW5jdGlvbihmLHYpe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0xNTkgNzY4aDYxMi4zbDEwMy40LTI1NkgyNjIuM3oiLGZpbGw6dn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNOTI4IDQ0NEg4MjBWMzMwLjRjMC0xNy43LTE0LjMtMzItMzItMzJINDczTDM1NS43IDE4Ni4yYTguMTUgOC4xNSAwIDAwLTUuNS0yLjJIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjU5MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2OThjMTMgMCAyNC44LTcuOSAyOS43LTIwbDEzNC0zMzJjMS41LTMuOCAyLjMtNy45IDIuMy0xMiAwLTE3LjctMTQuMy0zMi0zMi0zMnpNMTM2IDI1NmgxODguNWwxMTkuNiAxMTQuNEg3NDhWNDQ0SDIzOGMtMTMgMC0yNC44IDcuOS0yOS43IDIwTDEzNiA2NDMuMlYyNTZ6bTYzNS4zIDUxMkgxNTlsMTAzLjMtMjU2aDYxMi40TDc3MS4zIDc2OHoiLGZpbGw6Zn19XX19LG5hbWU6ImZvbGRlci1vcGVuIix0aGVtZToidHdvdG9uZSJ9LEd5PV95LFl5PWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkd5fSkpfSxYeT10LmZvcndhcmRSZWYoWXkpLFF5PVh5LEp5PWUoMzIzMTkpLHF5PXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAyOTguNEg1MjFMNDAzLjcgMTg2LjJhOC4xNSA4LjE1IDAgMDAtNS41LTIuMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjU5MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzMwLjRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTg0MCA3NjhIMTg0VjI1NmgxODguNWwxMTkuNiAxMTQuNEg4NDBWNzY4eiIsZmlsbDpmfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0zNzIuNSAyNTZIMTg0djUxMmg2NTZWMzcwLjRINDkyLjF6IixmaWxsOnZ9fV19fSxuYW1lOiJmb2xkZXIiLHRoZW1lOiJ0d290b25lIn0sZUM9cXksdEM9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246ZUN9KSl9LG5DPXQuZm9yd2FyZFJlZih0QyksckM9bkMsYUM9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJkZWZzIixhdHRyczp7fSxjaGlsZHJlbjpbe3RhZzoic3R5bGUiLGF0dHJzOnt9fV19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMzA5LjEgNTU0LjNhNDIuOTIgNDIuOTIgMCAwMDAgMzYuNEMzNTMuMyA2ODQgNDIxLjYgNzMyIDUxMi41IDczMnMxNTkuMi00OC4xIDIwMy40LTE0MS4zYzUuNC0xMS41IDUuNC0yNC44LjEtMzYuM2wtLjEtLjEtLjEtLjFDNjcxLjcgNDYxIDYwMy40IDQxMyA1MTIuNSA0MTNzLTE1OS4yIDQ4LjEtMjAzLjQgMTQxLjN6TTUxMi41IDQ3N2M2Mi4xIDAgMTA3LjQgMzAgMTQxLjEgOTUuNUM2MjAgNjM4IDU3NC42IDY2OCA1MTIuNSA2NjhzLTEwNy40LTMwLTE0MS4xLTk1LjVjMzMuNy02NS41IDc5LTk1LjUgMTQxLjEtOTUuNXoifX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00NTcgNTczYTU2IDU2IDAgMTAxMTIgMCA1NiA1NiAwIDEwLTExMiAweiJ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAyOTguNEg1MjFMNDAzLjcgMTg2LjJhOC4xNSA4LjE1IDAgMDAtNS41LTIuMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjU5MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzMwLjRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTg0MCA3NjhIMTg0VjI1NmgxODguNWwxMTkuNiAxMTQuNEg4NDBWNzY4eiJ9fV19LG5hbWU6ImZvbGRlci12aWV3Iix0aGVtZToib3V0bGluZWQifSxvQz1hQyxpQz1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpvQ30pKX0sbEM9dC5mb3J3YXJkUmVmKGlDKSxzQz1sQyxjQz17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTA0IDgxNkgxMjBjLTQuNCAwLTggMy42LTggOHY4MGMwIDQuNCAzLjYgOCA4IDhoNzg0YzQuNCAwIDgtMy42IDgtOHYtODBjMC00LjQtMy42LTgtOC04em0tNjUwLjMtODBoODVjNC4yIDAgOC0yLjcgOS4zLTYuOGw1My43LTE2NmgyMTkuMmw1My4yIDE2NmMxLjMgNCA1IDYuOCA5LjMgNi44aDg5LjFjMS4xIDAgMi4yLS4yIDMuMi0uNWE5LjcgOS43IDAgMDA2LTEyLjRMNTczLjYgMTE4LjZhOS45IDkuOSAwIDAwLTkuMi02LjZINDYyLjFjLTQuMiAwLTcuOSAyLjYtOS4yIDYuNkwyNDQuNSA3MjMuMWMtLjQgMS0uNSAyLjEtLjUgMy4yLS4xIDUuMyA0LjMgOS43IDkuNyA5Ljd6bTI1NS45LTUxNi4xaDQuMWw4My44IDI2My44SDQyNC45bDg0LjctMjYzLjh6In19XX0sbmFtZToiZm9udC1jb2xvcnMiLHRoZW1lOiJvdXRsaW5lZCJ9LHVDPWNDLGRDPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOnVDfSkpfSxmQz10LmZvcndhcmRSZWYoZEMpLHZDPWZDLGhDPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MjAgNDE2SDYxNmMtNC40IDAtOCAzLjYtOCA4djExMmMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04di01Nmg2MHYzMjBoLTQ2Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDE2NGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOGgtNDZWNDgwaDYwdjU2YzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LThWNDI0YzAtNC40LTMuNi04LTgtOHpNNjU2IDI5NlYxNjhjMC00LjQtMy42LTgtOC04SDEwNGMtNC40IDAtOCAzLjYtOCA4djEyOGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di02NGgxNjh2NTYwaC05MmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGgyNjRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTkyVjIzMmgxNjh2NjRjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHoifX1dfSxuYW1lOiJmb250LXNpemUiLHRoZW1lOiJvdXRsaW5lZCJ9LG1DPWhDLGdDPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOm1DfSkpfSxwQz10LmZvcndhcmRSZWYoZ0MpLHlDPXBDLENDPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik03NTIgMTAwYy02MS44IDAtMTEyIDUwLjItMTEyIDExMiAwIDQ3LjcgMjkuOSA4OC41IDcyIDEwNC42djI3LjZMNTEyIDYwMS40IDMxMiAzNDQuMnYtMjcuNmM0Mi4xLTE2LjEgNzItNTYuOSA3Mi0xMDQuNiAwLTYxLjgtNTAuMi0xMTItMTEyLTExMnMtMTEyIDUwLjItMTEyIDExMmMwIDUwLjYgMzMuOCA5My41IDgwIDEwNy4zdjM0LjRjMCA5LjcgMy4zIDE5LjMgOS4zIDI3TDQ3NiA2NzIuM3YzMy42Yy00NC4yIDE1LTc2IDU2LjktNzYgMTA2LjEgMCA2MS44IDUwLjIgMTEyIDExMiAxMTJzMTEyLTUwLjIgMTEyLTExMmMwLTQ5LjItMzEuOC05MS03Ni0xMDYuMXYtMzMuNmwyMjYuNy0yOTEuNmM2LTcuNyA5LjMtMTcuMyA5LjMtMjd2LTM0LjRjNDYuMi0xMy44IDgwLTU2LjcgODAtMTA3LjMgMC02MS44LTUwLjItMTEyLTExMi0xMTJ6TTIyNCAyMTJhNDguMDEgNDguMDEgMCAwMTk2IDAgNDguMDEgNDguMDEgMCAwMS05NiAwem0zMzYgNjAwYTQ4LjAxIDQ4LjAxIDAgMDEtOTYgMCA0OC4wMSA0OC4wMSAwIDAxOTYgMHptMTkyLTU1MmE0OC4wMSA0OC4wMSAwIDAxMC05NiA0OC4wMSA0OC4wMSAwIDAxMCA5NnoifX1dfSxuYW1lOiJmb3JrIix0aGVtZToib3V0bGluZWQifSxiQz1DQyxTQz1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpiQ30pKX0sT0M9dC5mb3J3YXJkUmVmKFNDKSx4Qz1PQyx3Qz17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTA0IDUxMmgtNTZjLTQuNCAwLTggMy42LTggOHYzMjBIMTg0VjE4NGgzMjBjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjUyMGMwLTQuNC0zLjYtOC04LTh6In19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMzU1LjkgNTM0LjlMMzU0IDY1My44Yy0uMSA4LjkgNy4xIDE2LjIgMTYgMTYuMmguNGwxMTgtMi45YzItLjEgNC0uOSA1LjQtMi4zbDQxNS45LTQxNWMzLjEtMy4xIDMuMS04LjIgMC0xMS4zTDc4NS40IDExNC4zYy0xLjYtMS42LTMuNi0yLjMtNS43LTIuM3MtNC4xLjgtNS43IDIuM2wtNDE1LjggNDE1YTguMyA4LjMgMCAwMC0yLjMgNS42em02My41IDIzLjZMNzc5LjcgMTk5bDQ1LjIgNDUuMS0zNjAuNSAzNTkuNy00NS43IDEuMS43LTQ2LjR6In19XX0sbmFtZToiZm9ybSIsdGhlbWU6Im91dGxpbmVkIn0sRUM9d0MsVEM9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246RUN9KSl9LE1DPXQuZm9yd2FyZFJlZihUQyksUkM9TUMsSUM9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJkZWZzIixhdHRyczp7fSxjaGlsZHJlbjpbe3RhZzoic3R5bGUiLGF0dHJzOnt9fV19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODQwIDE5MmgtNTZ2LTcyYzAtMTMuMy0xMC43LTI0LTI0LTI0SDE2OGMtMTMuMyAwLTI0IDEwLjctMjQgMjR2MjcyYzAgMTMuMyAxMC43IDI0IDI0IDI0aDU5MmMxMy4zIDAgMjQtMTAuNyAyNC0yNFYyNTZoMzJ2MjAwSDQ2NWMtMjIuMSAwLTQwIDE3LjktNDAgNDB2MTM2aC00NGMtNC40IDAtOCAzLjYtOCA4djIyOGMwIDEuMS4yIDIuMi42IDMuMS0uNCAxLjYtLjYgMy4yLS42IDQuOSAwIDQ2LjQgMzcuNiA4NCA4NCA4NHM4NC0zNy42IDg0LTg0YzAtMS43LS4yLTMuMy0uNi00LjkuNC0xIC42LTIgLjYtMy4xVjY0MGMwLTQuNC0zLjYtOC04LThoLTQ0VjUyMGgzNTFjMjIuMSAwIDQwLTE3LjkgNDAtNDBWMjMyYzAtMjIuMS0xNy45LTQwLTQwLTQweiJ9fV19LG5hbWU6ImZvcm1hdC1wYWludGVyIix0aGVtZToiZmlsbGVkIn0sUEM9SUMsekM9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246UEN9KSl9LEZDPXQuZm9yd2FyZFJlZih6QyksQUM9RkMsTEM9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJkZWZzIixhdHRyczp7fSxjaGlsZHJlbjpbe3RhZzoic3R5bGUiLGF0dHJzOnt9fV19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODQwIDE5MmgtNTZ2LTcyYzAtMTMuMy0xMC43LTI0LTI0LTI0SDE2OGMtMTMuMyAwLTI0IDEwLjctMjQgMjR2MjcyYzAgMTMuMyAxMC43IDI0IDI0IDI0aDU5MmMxMy4zIDAgMjQtMTAuNyAyNC0yNFYyNTZoMzJ2MjAwSDQ2NWMtMjIuMSAwLTQwIDE3LjktNDAgNDB2MTM2aC00NGMtNC40IDAtOCAzLjYtOCA4djIyOGMwIC42LjEgMS4zLjIgMS45QTgzLjk5IDgzLjk5IDAgMDA0NTcgOTYwYzQ2LjQgMCA4NC0zNy42IDg0LTg0IDAtMi4xLS4xLTQuMS0uMi02LjEuMS0uNi4yLTEuMi4yLTEuOVY2NDBjMC00LjQtMy42LTgtOC04aC00NFY1MjBoMzUxYzIyLjEgMCA0MC0xNy45IDQwLTQwVjIzMmMwLTIyLjEtMTcuOS00MC00MC00MHpNNzIwIDM1MkgyMDhWMTYwaDUxMnYxOTJ6TTQ3NyA4NzZjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwVjY5Nmg0MHYxODB6In19XX0sbmFtZToiZm9ybWF0LXBhaW50ZXIiLHRoZW1lOiJvdXRsaW5lZCJ9LFpDPUxDLCRDPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOlpDfSkpfSxIQz10LmZvcndhcmRSZWYoJEMpLERDPUhDLEJDPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjAgMCAxMDI0IDEwMjQiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04MjUuOCA0OThMNTM4LjQgMjQ5LjljLTEwLjctOS4yLTI2LjQtLjktMjYuNCAxNHY0OTYuM2MwIDE0LjkgMTUuNyAyMy4yIDI2LjQgMTRMODI1LjggNTI2YzguMy03LjIgOC4zLTIwLjggMC0yOHptLTMyMCAwTDIxOC40IDI0OS45Yy0xMC43LTkuMi0yNi40LS45LTI2LjQgMTR2NDk2LjNjMCAxNC45IDE1LjcgMjMuMiAyNi40IDE0TDUwNS44IDUyNmM0LjEtMy42IDYuMi04LjggNi4yLTE0IDAtNS4yLTIuMS0xMC40LTYuMi0xNHoifX1dfSxuYW1lOiJmb3J3YXJkIix0aGVtZToiZmlsbGVkIn0sVkM9QkMsTkM9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246VkN9KSl9LGpDPXQuZm9yd2FyZFJlZihOQyksVUM9akMsV0M9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiMCAwIDEwMjQgMTAyNCIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTgyNS44IDQ5OEw1MzguNCAyNDkuOWMtMTAuNy05LjItMjYuNC0uOS0yNi40IDE0djQ5Ni4zYzAgMTQuOSAxNS43IDIzLjIgMjYuNCAxNEw4MjUuOCA1MjZjOC4zLTcuMiA4LjMtMjAuOCAwLTI4em0tMzIwIDBMMjE4LjQgMjQ5LjljLTEwLjctOS4yLTI2LjQtLjktMjYuNCAxNHY0OTYuM2MwIDE0LjkgMTUuNyAyMy4yIDI2LjQgMTRMNTA1LjggNTI2YzQuMS0zLjYgNi4yLTguOCA2LjItMTQgMC01LjItMi4xLTEwLjQtNi4yLTE0eiJ9fV19LG5hbWU6ImZvcndhcmQiLHRoZW1lOiJvdXRsaW5lZCJ9LGtDPVdDLEtDPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOmtDfSkpfSxfQz10LmZvcndhcmRSZWYoS0MpLEdDPV9DLFlDPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHpNMjg4IDQyMWE0OC4wMSA0OC4wMSAwIDAxOTYgMCA0OC4wMSA0OC4wMSAwIDAxLTk2IDB6bTM3NiAyNzJoLTQ4LjFjLTQuMiAwLTcuOC0zLjItOC4xLTcuNEM2MDQgNjM2LjEgNTYyLjUgNTk3IDUxMiA1OTdzLTkyLjEgMzkuMS05NS44IDg4LjZjLS4zIDQuMi0zLjkgNy40LTguMSA3LjRIMzYwYTggOCAwIDAxLTgtOC40YzQuNC04NC4zIDc0LjUtMTUxLjYgMTYwLTE1MS42czE1NS42IDY3LjMgMTYwIDE1MS42YTggOCAwIDAxLTggOC40em0yNC0yMjRhNDguMDEgNDguMDEgMCAwMTAtOTYgNDguMDEgNDguMDEgMCAwMTAgOTZ6In19XX0sbmFtZToiZnJvd24iLHRoZW1lOiJmaWxsZWQifSxYQz1ZQyxRQz1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpYQ30pKX0sSkM9dC5mb3J3YXJkUmVmKFFDKSxxQz1KQyxlYj17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMjg4IDQyMWE0OCA0OCAwIDEwOTYgMCA0OCA0OCAwIDEwLTk2IDB6bTM1MiAwYTQ4IDQ4IDAgMTA5NiAwIDQ4IDQ4IDAgMTAtOTYgMHpNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTI2MyA3MTFjLTM0LjIgMzQuMi03NCA2MS0xMTguMyA3OS44QzYxMSA4NzQuMiA1NjIuMyA4ODQgNTEyIDg4NGMtNTAuMyAwLTk5LTkuOC0xNDQuOC0yOS4yQTM3MC40IDM3MC40IDAgMDEyNDguOSA3NzVjLTM0LjItMzQuMi02MS03NC03OS44LTExOC4zQzE0OS44IDYxMSAxNDAgNTYyLjMgMTQwIDUxMnM5LjgtOTkgMjkuMi0xNDQuOEEzNzAuNCAzNzAuNCAwIDAxMjQ5IDI0OC45YzM0LjItMzQuMiA3NC02MSAxMTguMy03OS44QzQxMyAxNDkuOCA0NjEuNyAxNDAgNTEyIDE0MGM1MC4zIDAgOTkgOS44IDE0NC44IDI5LjJBMzcwLjQgMzcwLjQgMCAwMTc3NS4xIDI0OWMzNC4yIDM0LjIgNjEgNzQgNzkuOCAxMTguM0M4NzQuMiA0MTMgODg0IDQ2MS43IDg4NCA1MTJzLTkuOCA5OS0yOS4yIDE0NC44QTM2OC44OSAzNjguODkgMCAwMTc3NSA3NzV6TTUxMiA1MzNjLTg1LjUgMC0xNTUuNiA2Ny4zLTE2MCAxNTEuNmE4IDggMCAwMDggOC40aDQ4LjFjNC4yIDAgNy44LTMuMiA4LjEtNy40QzQyMCA2MzYuMSA0NjEuNSA1OTcgNTEyIDU5N3M5Mi4xIDM5LjEgOTUuOCA4OC42Yy4zIDQuMiAzLjkgNy40IDguMSA3LjRINjY0YTggOCAwIDAwOC04LjRDNjY3LjYgNjAwLjMgNTk3LjUgNTMzIDUxMiA1MzN6In19XX0sbmFtZToiZnJvd24iLHRoZW1lOiJvdXRsaW5lZCJ9LHRiPWViLG5iPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOnRifSkpfSxyYj10LmZvcndhcmRSZWYobmIpLGFiPXJiLG9iPXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnoiLGZpbGw6Zn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDE0MGMtMjA1LjQgMC0zNzIgMTY2LjYtMzcyIDM3MnMxNjYuNiAzNzIgMzcyIDM3MiAzNzItMTY2LjYgMzcyLTM3Mi0xNjYuNi0zNzItMzcyLTM3MnpNMjg4IDQyMWE0OC4wMSA0OC4wMSAwIDAxOTYgMCA0OC4wMSA0OC4wMSAwIDAxLTk2IDB6bTM3NiAyNzJoLTQ4LjFjLTQuMiAwLTcuOC0zLjItOC4xLTcuNEM2MDQgNjM2LjEgNTYyLjUgNTk3IDUxMiA1OTdzLTkyLjEgMzkuMS05NS44IDg4LjZjLS4zIDQuMi0zLjkgNy40LTguMSA3LjRIMzYwYTggOCAwIDAxLTgtOC40YzQuNC04NC4zIDc0LjUtMTUxLjYgMTYwLTE1MS42czE1NS42IDY3LjMgMTYwIDE1MS42YTggOCAwIDAxLTggOC40em0yNC0yMjRhNDguMDEgNDguMDEgMCAwMTAtOTYgNDguMDEgNDguMDEgMCAwMTAgOTZ6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTI4OCA0MjFhNDggNDggMCAxMDk2IDAgNDggNDggMCAxMC05NiAwem0yMjQgMTEyYy04NS41IDAtMTU1LjYgNjcuMy0xNjAgMTUxLjZhOCA4IDAgMDA4IDguNGg0OC4xYzQuMiAwIDcuOC0zLjIgOC4xLTcuNCAzLjctNDkuNSA0NS4zLTg4LjYgOTUuOC04OC42czkyIDM5LjEgOTUuOCA4OC42Yy4zIDQuMiAzLjkgNy40IDguMSA3LjRINjY0YTggOCAwIDAwOC04LjRDNjY3LjYgNjAwLjMgNTk3LjUgNTMzIDUxMiA1MzN6bTEyOC0xMTJhNDggNDggMCAxMDk2IDAgNDggNDggMCAxMC05NiAweiIsZmlsbDpmfX1dfX0sbmFtZToiZnJvd24iLHRoZW1lOiJ0d290b25lIn0saWI9b2IsbGI9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246aWJ9KSl9LHNiPXQuZm9yd2FyZFJlZihsYiksY2I9c2IsdWI9ZSgxMTcxMyksZGI9ZSgyNzczMiksZmI9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJkZWZzIixhdHRyczp7fSxjaGlsZHJlbjpbe3RhZzoic3R5bGUiLGF0dHJzOnt9fV19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODQxIDM3MGMzLTMuMyAyLjctOC4zLS42LTExLjNhOC4yNCA4LjI0IDAgMDAtNS4zLTIuMWgtNzIuNmMtMi40IDAtNC42IDEtNi4xIDIuOEw2MzMuNSA1MDQuNmE3Ljk2IDcuOTYgMCAwMS0xMy40LTEuOWwtNjMuNS0xNDEuM2E3LjkgNy45IDAgMDAtNy4zLTQuN0gzODAuN2wuOS00LjcgOC00Mi4zYzEwLjUtNTUuNCAzOC04MS40IDg1LjgtODEuNCAxOC42IDAgMzUuNSAxLjcgNDguOCA0LjdsMTQuMS02Ni44Yy0yMi42LTQuNy0zNS4yLTYuMS01NC45LTYuMS0xMDMuMyAwLTE1Ni40IDQ0LjMtMTc1LjkgMTQ3LjNsLTkuNCA0OS40aC05Ny42Yy0zLjggMC03LjEgMi43LTcuOCA2LjRMMTgxLjkgNDE1YTguMDcgOC4wNyAwIDAwNy44IDkuN0gyODRsLTg5IDQyOS45YTguMDcgOC4wNyAwIDAwNy44IDkuN0gyNjljMy44IDAgNy4xLTIuNyA3LjgtNi40bDg5LjctNDMzLjFoMTM1LjhsNjguMiAxMzkuMWMxLjQgMi45IDEgNi40LTEuMiA4LjhsLTE4MC42IDIwM2MtMi45IDMuMy0yLjYgOC40LjcgMTEuMyAxLjUgMS4zIDMuNCAyIDUuMyAyaDcyLjdjMi40IDAgNC42LTEgNi4xLTIuOGwxMjMuNy0xNDYuN2MyLjgtMy40IDcuOS0zLjggMTEuMy0xIC45LjggMS42IDEuNyAyLjEgMi44TDY3Ni40IDc4NGMxLjMgMi44IDQuMSA0LjcgNy4zIDQuN2g2NC42YTguMDIgOC4wMiAwIDAwNy4yLTExLjVsLTk1LjItMTk4LjljLTEuNC0yLjktLjktNi40IDEuMy04LjhMODQxIDM3MHoifX1dfSxuYW1lOiJmdW5jdGlvbiIsdGhlbWU6Im91dGxpbmVkIn0sdmI9ZmIsaGI9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246dmJ9KSl9LG1iPXQuZm9yd2FyZFJlZihoYiksZ2I9bWIscGI9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkyNiAxNjRIOTRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY0MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg4MzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tOTIuMyAxOTQuNGwtMjk3IDI5Ny4yYTguMDMgOC4wMyAwIDAxLTExLjMgMEw0MTAuOSA1NDEuMSAyMzguNCA3MTMuN2E4LjAzIDguMDMgMCAwMS0xMS4zIDBsLTM2LjgtMzYuOGE4LjAzIDguMDMgMCAwMTAtMTEuM2wyMTQuOS0yMTVjMy4xLTMuMSA4LjItMy4xIDExLjMgMEw1MzEgNTY1bDI1NC41LTI1NC42YzMuMS0zLjEgOC4yLTMuMSAxMS4zIDBsMzYuOCAzNi44YzMuMiAzIDMuMiA4LjEuMSAxMS4yeiJ9fV19LG5hbWU6ImZ1bmQiLHRoZW1lOiJmaWxsZWQifSx5Yj1wYixDYj1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjp5Yn0pKX0sYmI9dC5mb3J3YXJkUmVmKENiKSxTYj1iYixPYj17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTI2IDE2NEg5NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjQwYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDgzMmMxNy43IDAgMzItMTQuMyAzMi0zMlYxOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA2MzJIMTM0VjIzNmg3NTJ2NTYwem0tNjU4LjktODIuM2MzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDE3Mi41LTE3Mi41IDExNC40IDExNC41YzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBsMjk3LTI5Ny4yYzMuMS0zLjEgMy4xLTguMiAwLTExLjNsLTM2LjgtMzYuOGE4LjAzIDguMDMgMCAwMC0xMS4zIDBMNTMxIDU2NSA0MTYuNiA0NTAuNWE4LjAzIDguMDMgMCAwMC0xMS4zIDBsLTIxNC45IDIxNWE4LjAzIDguMDMgMCAwMDAgMTEuM2wzNi43IDM2Ljl6In19XX0sbmFtZToiZnVuZCIsdGhlbWU6Im91dGxpbmVkIn0seGI9T2Isd2I9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246eGJ9KSl9LEViPXQuZm9yd2FyZFJlZih3YiksVGI9RWIsTWI9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJkZWZzIixhdHRyczp7fSxjaGlsZHJlbjpbe3RhZzoic3R5bGUiLGF0dHJzOnt9fV19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMzEyLjEgNTkxLjVjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGwxMDEuOC0xMDEuOCA4Ni4xIDg2LjJjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGwyMjYuMy0yMjYuNWMzLjEtMy4xIDMuMS04LjIgMC0xMS4zbC0zNi44LTM2LjhhOC4wMyA4LjAzIDAgMDAtMTEuMyAwTDUxNyA0ODUuM2wtODYuMS04Ni4yYTguMDMgOC4wMyAwIDAwLTExLjMgMEwyNzUuMyA1NDMuNGE4LjAzIDguMDMgMCAwMDAgMTEuM2wzNi44IDM2Ljh6In19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNOTA0IDE2MEg1NDhWOTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djY0SDEyMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NTIwYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDM1Ni40djMyTDMxMS42IDg4NC4xYTcuOTIgNy45MiAwIDAwLTIuMyAxMWwzMC4zIDQ3LjJ2LjFjMi40IDMuNyA3LjQgNC43IDExLjEgMi4zTDUxMiA4MzguOWwxNjEuMyAxMDUuOGMzLjcgMi40IDguNyAxLjQgMTEuMS0yLjN2LS4xbDMwLjMtNDcuMmE4IDggMCAwMC0yLjMtMTFMNTQ4IDc3Ni4zVjc0NGgzNTZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNTEySDE2MFYyMzJoNzA0djQ0MHoifX1dfSxuYW1lOiJmdW5kLXByb2plY3Rpb24tc2NyZWVuIix0aGVtZToib3V0bGluZWQifSxSYj1NYixJYj1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpSYn0pKX0sUGI9dC5mb3J3YXJkUmVmKEliKSx6Yj1QYixGYj17aWNvbjpmdW5jdGlvbihmLHYpe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MjggMTYwSDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY2NDBjMCAxNy43IDE0LjMgMzIgMzIgMzJoODMyYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE5MmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDYzMkgxMzZWMjMyaDc1MnY1NjB6IixmaWxsOmZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTEzNiA3OTJoNzUyVjIzMkgxMzZ2NTYwem01Ni40LTEzMC41bDIxNC45LTIxNWMzLjEtMy4xIDguMi0zLjEgMTEuMyAwTDUzMyA1NjFsMjU0LjUtMjU0LjZjMy4xLTMuMSA4LjItMy4xIDExLjMgMGwzNi44IDM2LjhjMy4xIDMuMSAzLjEgOC4yIDAgMTEuM2wtMjk3IDI5Ny4yYTguMDMgOC4wMyAwIDAxLTExLjMgMEw0MTIuOSA1MzcuMiAyNDAuNCA3MDkuN2E4LjAzIDguMDMgMCAwMS0xMS4zIDBsLTM2LjctMzYuOWE4LjAzIDguMDMgMCAwMTAtMTEuM3oiLGZpbGw6dn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMjI5LjEgNzA5LjdjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGwxNzIuNS0xNzIuNSAxMTQuNCAxMTQuNWMzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDI5Ny0yOTcuMmMzLjEtMy4xIDMuMS04LjIgMC0xMS4zbC0zNi44LTM2LjhhOC4wMyA4LjAzIDAgMDAtMTEuMyAwTDUzMyA1NjEgNDE4LjYgNDQ2LjVhOC4wMyA4LjAzIDAgMDAtMTEuMyAwbC0yMTQuOSAyMTVhOC4wMyA4LjAzIDAgMDAwIDExLjNsMzYuNyAzNi45eiIsZmlsbDpmfX1dfX0sbmFtZToiZnVuZCIsdGhlbWU6InR3b3RvbmUifSxBYj1GYixMYj1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpBYn0pKX0sWmI9dC5mb3J3YXJkUmVmKExiKSwkYj1aYixIYj17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6ImRlZnMiLGF0dHJzOnt9LGNoaWxkcmVuOlt7dGFnOiJzdHlsZSIsYXR0cnM6e319XX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05NTYgNjg2LjVsLS4xLS4xLS4xLS4xQzkxMS43IDU5MyA4NDMuNCA1NDUgNzUyLjUgNTQ1cy0xNTkuMiA0OC4xLTIwMy40IDE0MS4zdi4xYTQyLjkyIDQyLjkyIDAgMDAwIDM2LjRDNTkzLjMgODE2IDY2MS42IDg2NCA3NTIuNSA4NjRzMTU5LjItNDguMSAyMDMuNC0xNDEuM2M1LjQtMTEuNSA1LjQtMjQuOC4xLTM2LjJ6TTc1Mi41IDgwMGMtNjIuMSAwLTEwNy40LTMwLTE0MS4xLTk1LjVDNjQ1IDYzOSA2OTAuNCA2MDkgNzUyLjUgNjA5YzYyLjEgMCAxMDcuNCAzMCAxNDEuMSA5NS41Qzg2MCA3NzAgODE0LjYgODAwIDc1Mi41IDgwMHoifX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02OTcgNzA1YTU2IDU2IDAgMTAxMTIgMCA1NiA1NiAwIDEwLTExMiAwek0xMzYgMjMyaDcwNHYyNTNoNzJWMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMySDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY1MjBjMCAxNy43IDE0LjMgMzIgMzIgMzJoMzUydi03MkgxMzZWMjMyeiJ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTcyNC45IDMzOC4xbC0zNi44LTM2LjhhOC4wMyA4LjAzIDAgMDAtMTEuMyAwTDQ5MyA0ODUuM2wtODYuMS04Ni4yYTguMDMgOC4wMyAwIDAwLTExLjMgMEwyNTEuMyA1NDMuNGE4LjAzIDguMDMgMCAwMDAgMTEuM2wzNi44IDM2LjhjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGwxMDEuOC0xMDEuOCA4Ni4xIDg2LjJjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGwyMjYuMy0yMjYuNWMzLjItMy4xIDMuMi04LjIgMC0xMS4zeiJ9fV19LG5hbWU6ImZ1bmQtdmlldyIsdGhlbWU6Im91dGxpbmVkIn0sRGI9SGIsQmI9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246RGJ9KSl9LFZiPXQuZm9yd2FyZFJlZihCYiksTmI9VmIsamI9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTMzNi43IDU4NmgzNTAuNmw4NC45LTE0OEgyNTEuOHptNTQzLjQtNDMySDE0My45Yy0yNC41IDAtMzkuOCAyNi43LTI3LjUgNDhMMjE1IDM3NGg1OTRsOTguNy0xNzJjMTIuMi0yMS4zLTMuMS00OC0yNy42LTQ4ek0zNDkgODM4YzAgMTcuNyAxNC4yIDMyIDMxLjggMzJoMjYyLjRjMTcuNiAwIDMxLjgtMTQuMyAzMS44LTMyVjY1MEgzNDl2MTg4eiJ9fV19LG5hbWU6ImZ1bm5lbC1wbG90Iix0aGVtZToiZmlsbGVkIn0sVWI9amIsV2I9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246VWJ9KSl9LGtiPXQuZm9yd2FyZFJlZihXYiksS2I9a2IsX2I9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MC4xIDE1NEgxNDMuOWMtMjQuNSAwLTM5LjggMjYuNy0yNy41IDQ4TDM0OSA2MDcuNFY4MzhjMCAxNy43IDE0LjIgMzIgMzEuOCAzMmgyNjIuNGMxNy42IDAgMzEuOC0xNC4zIDMxLjgtMzJWNjA3LjRMOTA3LjcgMjAyYzEyLjItMjEuMy0zLjEtNDgtMjcuNi00OHpNNjAzLjQgNzk4SDQyMC42VjY1MGgxODIuOXYxNDh6bTkuNi0yMjYuNmwtOC40IDE0LjZINDE5LjNsLTguNC0xNC42TDMzNC40IDQzOGgzNTUuMkw2MTMgNTcxLjR6TTcyNi4zIDM3NEgyOTcuN2wtODUtMTQ4aDU5OC42bC04NSAxNDh6In19XX0sbmFtZToiZnVubmVsLXBsb3QiLHRoZW1lOiJvdXRsaW5lZCJ9LEdiPV9iLFliPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkdifSkpfSxYYj10LmZvcndhcmRSZWYoWWIpLFFiPVhiLEpiPXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQyMC42IDc5OGgxODIuOVY2NTBINDIwLjZ6TTI5Ny43IDM3NGg0MjguNmw4NS0xNDhIMjEyLjd6bTExMy4yIDE5Ny40bDguNCAxNC42aDE4NS4zbDguNC0xNC42TDY4OS42IDQzOEgzMzQuNHoiLGZpbGw6dn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwLjEgMTU0SDE0My45Yy0yNC41IDAtMzkuOCAyNi43LTI3LjUgNDhMMzQ5IDYwNy40VjgzOGMwIDE3LjcgMTQuMiAzMiAzMS44IDMyaDI2Mi40YzE3LjYgMCAzMS44LTE0LjMgMzEuOC0zMlY2MDcuNEw5MDcuNyAyMDJjMTIuMi0yMS4zLTMuMS00OC0yNy42LTQ4ek02MDMuNSA3OThINDIwLjZWNjUwaDE4Mi45djE0OHptOS41LTIyNi42bC04LjQgMTQuNkg0MTkuM2wtOC40LTE0LjZMMzM0LjQgNDM4aDM1NS4yTDYxMyA1NzEuNHpNNzI2LjMgMzc0SDI5Ny43bC04NS0xNDhoNTk4LjZsLTg1IDE0OHoiLGZpbGw6Zn19XX19LG5hbWU6ImZ1bm5lbC1wbG90Iix0aGVtZToidHdvdG9uZSJ9LHFiPUpiLGVTPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOnFifSkpfSx0Uz10LmZvcndhcmRSZWYoZVMpLG5TPXRTLHJTPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MjggMzkyYzguOCAwIDE2LTcuMiAxNi0xNlYxOTJjMC04LjgtNy4yLTE2LTE2LTE2SDc0NGMtOC44IDAtMTYgNy4yLTE2IDE2djU2SDI5NnYtNTZjMC04LjgtNy4yLTE2LTE2LTE2SDk2Yy04LjggMC0xNiA3LjItMTYgMTZ2MTg0YzAgOC44IDcuMiAxNiAxNiAxNmg1NnYyNDBIOTZjLTguOCAwLTE2IDcuMi0xNiAxNnYxODRjMCA4LjggNy4yIDE2IDE2IDE2aDE4NGM4LjggMCAxNi03LjIgMTYtMTZ2LTU2aDQzMnY1NmMwIDguOCA3LjIgMTYgMTYgMTZoMTg0YzguOCAwIDE2LTcuMiAxNi0xNlY2NDhjMC04LjgtNy4yLTE2LTE2LTE2aC01NlYzOTJoNTZ6TTc5MiAyNDBoODh2ODhoLTg4di04OHptLTY0OCA4OHYtODhoODh2ODhoLTg4em04OCA0NTZoLTg4di04OGg4OHY4OHptNjQ4LTg4djg4aC04OHYtODhoODh6bS04MC02NGgtNTZjLTguOCAwLTE2IDcuMi0xNiAxNnY1NkgyOTZ2LTU2YzAtOC44LTcuMi0xNi0xNi0xNmgtNTZWMzkyaDU2YzguOCAwIDE2LTcuMiAxNi0xNnYtNTZoNDMydjU2YzAgOC44IDcuMiAxNiAxNiAxNmg1NnYyNDB6In19XX0sbmFtZToiZ2F0ZXdheSIsdGhlbWU6Im91dGxpbmVkIn0sYVM9clMsb1M9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246YVN9KSl9LGlTPXQuZm9yd2FyZFJlZihvUyksbFM9aVMsc1M9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJkZWZzIixhdHRyczp7fSxjaGlsZHJlbjpbe3RhZzoic3R5bGUiLGF0dHJzOnt9fV19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNOTQ0IDI5OUg2OTJjLTQuNCAwLTggMy42LTggOHY0MDZjMCA0LjQgMy42IDggOCA4aDU5LjJjNC40IDAgOC0zLjYgOC04VjU0OS45aDE2OC4yYzQuNCAwIDgtMy42IDgtOFY0OTVjMC00LjQtMy42LTgtOC04SDc1OS4yVjM2NC4ySDk0NGM0LjQgMCA4LTMuNiA4LThWMzA3YzAtNC40LTMuNi04LTgtOHptLTM1NiAxaC01NmMtNC40IDAtOCAzLjYtOCA4djQwNmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04VjMwOGMwLTQuNC0zLjYtOC04LTh6TTQ1MiA1MDAuOUgyOTAuNWMtNC40IDAtOCAzLjYtOCA4djQzLjdjMCA0LjQgMy42IDggOCA4aDk0LjlsLS4zIDguOWMtMS4yIDU4LjgtNDUuNiA5OC41LTExMC45IDk4LjUtNzYuMiAwLTEyMy45LTU5LjctMTIzLjktMTU2LjcgMC05NS44IDQ2LjgtMTU1LjIgMTIxLjUtMTU1LjIgNTQuOCAwIDkzLjEgMjYuOSAxMDguNSA3NS40aDc2LjJjLTEzLjYtODcuMi04Ni0xNDMuNC0xODQuNy0xNDMuNEMxNTAgMjg4IDcyIDM3NS4yIDcyIDUxMS45IDcyIDY1MC4yIDE0OS4xIDczNiAyNzMgNzM2YzExNC4xIDAgMTg3LTcwLjcgMTg3LTE4MS42di00NS41YzAtNC40LTMuNi04LTgtOHoifX1dfSxuYW1lOiJnaWYiLHRoZW1lOiJvdXRsaW5lZCJ9LGNTPXNTLHVTPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOmNTfSkpfSxkUz10LmZvcndhcmRSZWYodVMpLGZTPWRTLHZTPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0xNjAgODk0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDI4NlY1NTBIMTYwdjM0NHptMzg2IDMyaDI4NmMxNy43IDAgMzItMTQuMyAzMi0zMlY1NTBINTQ2djM3NnptMzM0LTYxNkg3MzIuNGMxMy42LTIxLjQgMjEuNi00Ni44IDIxLjYtNzQgMC03Ni4xLTYxLjktMTM4LTEzOC0xMzgtNDEuNCAwLTc4LjcgMTguNC0xMDQgNDcuNC0yNS4zLTI5LTYyLjYtNDcuNC0xMDQtNDcuNC03Ni4xIDAtMTM4IDYxLjktMTM4IDEzOCAwIDI3LjIgNy45IDUyLjYgMjEuNiA3NEgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjE0MGgzNjZWMzEwaDY4djE3MmgzNjZWMzQyYzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAyLTRoLTcwYy0zOC42IDAtNzAtMzEuNC03MC03MHMzMS40LTcwIDcwLTcwIDcwIDMxLjQgNzAgNzB2NzB6bTEzOCAwaC03MHYtNzBjMC0zOC42IDMxLjQtNzAgNzAtNzBzNzAgMzEuNCA3MCA3MC0zMS40IDcwLTcwIDcweiJ9fV19LG5hbWU6ImdpZnQiLHRoZW1lOiJmaWxsZWQifSxoUz12UyxtUz1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpoU30pKX0sZ1M9dC5mb3J3YXJkUmVmKG1TKSxwUz1nUyx5Uz17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDMxMEg3MzIuNGMxMy42LTIxLjQgMjEuNi00Ni44IDIxLjYtNzQgMC03Ni4xLTYxLjktMTM4LTEzOC0xMzgtNDEuNCAwLTc4LjcgMTguNC0xMDQgNDcuNC0yNS4zLTI5LTYyLjYtNDcuNC0xMDQtNDcuNC03Ni4xIDAtMTM4IDYxLjktMTM4IDEzOCAwIDI3LjIgNy45IDUyLjYgMjEuNiA3NEgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjIwMGMwIDQuNCAzLjYgOCA4IDhoNDB2MzQ0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlY1NTBoNDBjNC40IDAgOC0zLjYgOC04VjM0MmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTMzNC03NGMwLTM4LjYgMzEuNC03MCA3MC03MHM3MCAzMS40IDcwIDcwLTMxLjQgNzAtNzAgNzBoLTcwdi03MHptLTEzOC03MGMzOC42IDAgNzAgMzEuNCA3MCA3MHY3MGgtNzBjLTM4LjYgMC03MC0zMS40LTcwLTcwczMxLjQtNzAgNzAtNzB6TTE4MCA0ODJWMzc4aDI5OHYxMDRIMTgwem00OCA2OGgyNTB2MzA4SDIyOFY1NTB6bTU2OCAzMDhINTQ2VjU1MGgyNTB2MzA4em00OC0zNzZINTQ2VjM3OGgyOTh2MTA0eiJ9fV19LG5hbWU6ImdpZnQiLHRoZW1lOiJvdXRsaW5lZCJ9LENTPXlTLGJTPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkNTfSkpfSxTUz10LmZvcndhcmRSZWYoYlMpLE9TPVNTLHhTPXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTU0NiAzNzhoMjk4djEwNEg1NDZ6TTIyOCA1NTBoMjUwdjMwOEgyMjh6bS00OC0xNzJoMjk4djEwNEgxODB6bTM2NiAxNzJoMjUwdjMwOEg1NDZ6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAzMTBINzMyLjRjMTMuNi0yMS40IDIxLjYtNDYuOCAyMS42LTc0IDAtNzYuMS02MS45LTEzOC0xMzgtMTM4LTQxLjQgMC03OC43IDE4LjQtMTA0IDQ3LjQtMjUuMy0yOS02Mi42LTQ3LjQtMTA0LTQ3LjQtNzYuMSAwLTEzOCA2MS45LTEzOCAxMzggMCAyNy4yIDcuOSA1Mi42IDIxLjYgNzRIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYyMDBjMCA0LjQgMy42IDggOCA4aDQwdjM0NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWNTUwaDQwYzQuNCAwIDgtMy42IDgtOFYzNDJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTQ3OCA4NThIMjI4VjU1MGgyNTB2MzA4em0wLTM3NkgxODBWMzc4aDI5OHYxMDR6bTAtMTc2aC03MGMtMzguNiAwLTcwLTMxLjQtNzAtNzBzMzEuNC03MCA3MC03MCA3MCAzMS40IDcwIDcwdjcwem02OC03MGMwLTM4LjYgMzEuNC03MCA3MC03MHM3MCAzMS40IDcwIDcwLTMxLjQgNzAtNzAgNzBoLTcwdi03MHptMjUwIDYyMkg1NDZWNTUwaDI1MHYzMDh6bTQ4LTM3Nkg1NDZWMzc4aDI5OHYxMDR6IixmaWxsOmZ9fV19fSxuYW1lOiJnaWZ0Iix0aGVtZToidHdvdG9uZSJ9LHdTPXhTLEVTPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOndTfSkpfSxUUz10LmZvcndhcmRSZWYoRVMpLFJTPVRTLElTPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTEuNiA3Ni4zQzI2NC4zIDc2LjIgNjQgMjc2LjQgNjQgNTIzLjUgNjQgNzE4LjkgMTg5LjMgODg1IDM2My44IDk0NmMyMy41IDUuOSAxOS45LTEwLjggMTkuOS0yMi4ydi03Ny41Yy0xMzUuNyAxNS45LTE0MS4yLTczLjktMTUwLjMtODguOUMyMTUgNzI2IDE3MS41IDcxOCAxODQuNSA3MDNjMzAuOS0xNS45IDYyLjQgNCA5OC45IDU3LjkgMjYuNCAzOS4xIDc3LjkgMzIuNSAxMDQgMjYgNS43LTIzLjUgMTcuOS00NC41IDM0LjctNjAuOC0xNDAuNi0yNS4yLTE5OS4yLTExMS0xOTkuMi0yMTMgMC00OS41IDE2LjMtOTUgNDguMy0xMzEuNy0yMC40LTYwLjUgMS45LTExMi4zIDQuOS0xMjAgNTguMS01LjIgMTE4LjUgNDEuNiAxMjMuMiA0NS4zIDMzLTguOSA3MC43LTEzLjYgMTEyLjktMTMuNiA0Mi40IDAgODAuMiA0LjkgMTEzLjUgMTMuOSAxMS4zLTguNiA2Ny4zLTQ4LjggMTIxLjMtNDMuOSAyLjkgNy43IDI0LjcgNTguMyA1LjUgMTE4IDMyLjQgMzYuOCA0OC45IDgyLjcgNDguOSAxMzIuMyAwIDEwMi4yLTU5IDE4OC4xLTIwMCAyMTIuOWExMjcuNSAxMjcuNSAwIDAxMzguMSA5MXYxMTIuNWMuOCA5IDAgMTcuOSAxNSAxNy45IDE3Ny4xLTU5LjcgMzA0LjYtMjI3IDMwNC42LTQyNC4xIDAtMjQ3LjItMjAwLjQtNDQ3LjMtNDQ3LjUtNDQ3LjN6In19XX0sbmFtZToiZ2l0aHViIix0aGVtZToiZmlsbGVkIn0sUFM9SVMselM9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246UFN9KSl9LEZTPXQuZm9yd2FyZFJlZih6UyksQVM9RlMsTFM9ZSgxMjEwKSxaUz17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTEwLjUgNTUzLjJsLTEwOS0zNzAuOGMtNi44LTIwLjQtMjMuMS0zNC4xLTQ0LjktMzQuMXMtMzkuNSAxMi4zLTQ2LjMgMzIuN2wtNzIuMiAyMTUuNEgzODYuMkwzMTQgMTgxLjFjLTYuOC0yMC40LTI0LjUtMzIuNy00Ni4zLTMyLjdzLTM5LjUgMTMuNi00NC45IDM0LjFMMTEzLjkgNTUzLjJjLTQuMSAxMy42IDEuNCAyOC42IDEyLjMgMzYuOGwzODUuNCAyODkgMzg2LjctMjg5YzEwLjgtOC4xIDE2LjMtMjMuMSAxMi4yLTM2Ljh6In19XX0sbmFtZToiZ2l0bGFiIix0aGVtZToiZmlsbGVkIn0sJFM9WlMsSFM9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246JFN9KSl9LERTPXQuZm9yd2FyZFJlZihIUyksQlM9RFMsVlM9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkxMy45IDU1Mi4yTDgwNSAxODEuNHYtLjFjLTcuNi0yMi45LTI1LjctMzYuNS00OC4zLTM2LjUtMjMuNCAwLTQyLjUgMTMuNS00OS43IDM1LjJsLTcxLjQgMjEzSDM4OC44bC03MS40LTIxM2MtNy4yLTIxLjctMjYuMy0zNS4yLTQ5LjctMzUuMi0yMy4xIDAtNDIuNSAxNC44LTQ4LjQgMzYuNkwxMTAuNSA1NTIuMmMtNC40IDE0LjcgMS4yIDMxLjQgMTMuNSA0MC43bDM2OC41IDI3Ni40YzIuNiAzLjYgNi4yIDYuMyAxMC40IDcuOGw4LjYgNi40IDguNS02LjRjNC45LTEuNyA5LTQuNyAxMS45LTguOWwzNjguNC0yNzUuNGMxMi40LTkuMiAxOC0yNS45IDEzLjYtNDAuNnpNNzUxLjcgMTkzLjRjMS0xLjggMi45LTEuOSAzLjUtMS45IDEuMSAwIDIuNS4zIDMuNCAzTDgxOCAzOTQuM0g2ODQuNWw2Ny4yLTIwMC45em0tNDg3LjQgMWMuOS0yLjYgMi4zLTIuOSAzLjQtMi45IDIuNyAwIDIuOS4xIDMuNCAxLjdsNjcuMyAyMDEuMkgyMDYuNWw1Ny44LTIwMHpNMTU4LjggNTU4LjdsMjguMi05Ny4zIDIwMi40IDI3MC4yLTIzMC42LTE3Mi45em03My45LTExNi40aDEyMi4xbDkwLjggMjg0LjMtMjEyLjktMjg0LjN6TTUxMi45IDc3Nkw0MDUuNyA0NDIuM0g2MjBMNTEyLjkgNzc2em0xNTcuOS0zMzMuN2gxMTkuNUw1ODAgNzIzLjFsOTAuOC0yODAuOHptLTQwLjcgMjkzLjlsMjA3LjMtMjc2LjcgMjkuNSA5OS4yLTIzNi44IDE3Ny41eiJ9fV19LG5hbWU6ImdpdGxhYiIsdGhlbWU6Im91dGxpbmVkIn0sTlM9VlMsalM9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246TlN9KSl9LFVTPXQuZm9yd2FyZFJlZihqUyksV1M9VVMsa1M9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg1NC40IDgwMC45Yy4yLS4zLjUtLjYuNy0uOUM5MjAuNiA3MjIuMSA5NjAgNjIxLjcgOTYwIDUxMnMtMzkuNC0yMTAuMS0xMDQuOC0yODhjLS4yLS4zLS41LS41LS43LS44LTEuMS0xLjMtMi4xLTIuNS0zLjItMy43LS40LS41LS44LS45LTEuMi0xLjRsLTQuMS00LjctLjEtLjFjLTEuNS0xLjctMy4xLTMuNC00LjYtNS4xbC0uMS0uMWMtMy4yLTMuNC02LjQtNi44LTkuNy0xMC4xbC0uMS0uMS00LjgtNC44LS4zLS4zYy0xLjUtMS41LTMtMi45LTQuNS00LjMtLjUtLjUtMS0xLTEuNi0xLjUtMS0xLTItMS45LTMtMi44LS4zLS4zLS43LS42LTEtMUM3MzYuNCAxMDkuMiA2MjkuNSA2NCA1MTIgNjRzLTIyNC40IDQ1LjItMzA0LjMgMTE5LjJjLS4zLjMtLjcuNi0xIDEtMSAuOS0yIDEuOS0zIDIuOS0uNS41LTEgMS0xLjYgMS41LTEuNSAxLjQtMyAyLjktNC41IDQuM2wtLjMuMy00LjggNC44LS4xLjFjLTMuMyAzLjMtNi41IDYuNy05LjcgMTAuMWwtLjEuMWMtMS42IDEuNy0zLjEgMy40LTQuNiA1LjFsLS4xLjFjLTEuNCAxLjUtMi44IDMuMS00LjEgNC43LS40LjUtLjguOS0xLjIgMS40LTEuMSAxLjItMi4xIDIuNS0zLjIgMy43LS4yLjMtLjUuNS0uNy44QzEwMy40IDMwMS45IDY0IDQwMi4zIDY0IDUxMnMzOS40IDIxMC4xIDEwNC44IDI4OGMuMi4zLjUuNi43LjlsMy4xIDMuN2MuNC41LjguOSAxLjIgMS40bDQuMSA0LjdjMCAuMS4xLjEuMS4yIDEuNSAxLjcgMyAzLjQgNC42IDVsLjEuMWMzLjIgMy40IDYuNCA2LjggOS42IDEwLjFsLjEuMWMxLjYgMS42IDMuMSAzLjIgNC43IDQuN2wuMy4zYzMuMyAzLjMgNi43IDYuNSAxMC4xIDkuNiA4MC4xIDc0IDE4NyAxMTkuMiAzMDQuNSAxMTkuMnMyMjQuNC00NS4yIDMwNC4zLTExOS4yYTMwMCAzMDAgMCAwMDEwLTkuNmwuMy0uM2MxLjYtMS42IDMuMi0zLjEgNC43LTQuN2wuMS0uMWMzLjMtMy4zIDYuNS02LjcgOS42LTEwLjFsLjEtLjFjMS41LTEuNyAzLjEtMy4zIDQuNi01IDAtLjEuMS0uMS4xLS4yIDEuNC0xLjUgMi44LTMuMSA0LjEtNC43LjQtLjUuOC0uOSAxLjItMS40YTk5IDk5IDAgMDAzLjMtMy43em00LjEtMTQyLjZjLTEzLjggMzIuNi0zMiA2Mi44LTU0LjIgOTAuMmE0NDQuMDcgNDQ0LjA3IDAgMDAtODEuNS01NS45YzExLjYtNDYuOSAxOC44LTk4LjQgMjAuNy0xNTIuNkg4ODdjLTMgNDAuOS0xMi42IDgwLjYtMjguNSAxMTguM3pNODg3IDQ4NEg3NDMuNWMtMS45LTU0LjItOS4xLTEwNS43LTIwLjctMTUyLjYgMjkuMy0xNS42IDU2LjYtMzQuNCA4MS41LTU1LjlBMzczLjg2IDM3My44NiAwIDAxODg3IDQ4NHpNNjU4LjMgMTY1LjVjMzkuNyAxNi44IDc1LjggNDAgMTA3LjYgNjkuMmEzOTQuNzIgMzk0LjcyIDAgMDEtNTkuNCA0MS44Yy0xNS43LTQ1LTM1LjgtODQuMS01OS4yLTExNS40IDMuNyAxLjQgNy40IDIuOSAxMSA0LjR6bS05MC42IDcwMC42Yy05LjIgNy4yLTE4LjQgMTIuNy0yNy43IDE2LjRWNjk3YTM4OS4xIDM4OS4xIDAgMDExMTUuNyAyNi4yYy04LjMgMjQuNi0xNy45IDQ3LjMtMjkgNjcuOC0xNy40IDMyLjQtMzcuOCA1OC4zLTU5IDc1LjF6bTU5LTYzMy4xYzExIDIwLjYgMjAuNyA0My4zIDI5IDY3LjhBMzg5LjEgMzg5LjEgMCAwMTU0MCAzMjdWMTQxLjZjOS4yIDMuNyAxOC41IDkuMSAyNy43IDE2LjQgMjEuMiAxNi43IDQxLjYgNDIuNiA1OSA3NXpNNTQwIDY0MC45VjU0MGgxNDcuNWMtMS42IDQ0LjItNy4xIDg3LjEtMTYuMyAxMjcuOGwtLjMgMS4yQTQ0NS4wMiA0NDUuMDIgMCAwMDU0MCA2NDAuOXptMC0xNTYuOVYzODMuMWM0NS44LTIuOCA4OS44LTEyLjUgMTMwLjktMjguMWwuMyAxLjJjOS4yIDQwLjcgMTQuNyA4My41IDE2LjMgMTI3LjhINTQwem0tNTYgNTZ2MTAwLjljLTQ1LjggMi44LTg5LjggMTIuNS0xMzAuOSAyOC4xbC0uMy0xLjJjLTkuMi00MC43LTE0LjctODMuNS0xNi4zLTEyNy44SDQ4NHptLTE0Ny41LTU2YzEuNi00NC4yIDcuMS04Ny4xIDE2LjMtMTI3LjhsLjMtMS4yYzQxLjEgMTUuNiA4NSAyNS4zIDEzMC45IDI4LjFWNDg0SDMzNi41ek00ODQgNjk3djE4NS40Yy05LjItMy43LTE4LjUtOS4xLTI3LjctMTYuNC0yMS4yLTE2LjctNDEuNy00Mi43LTU5LjEtNzUuMS0xMS0yMC42LTIwLjctNDMuMy0yOS02Ny44IDM3LjItMTQuNiA3NS45LTIzLjMgMTE1LjgtMjYuMXptMC0zNzBhMzg5LjEgMzg5LjEgMCAwMS0xMTUuNy0yNi4yYzguMy0yNC42IDE3LjktNDcuMyAyOS02Ny44IDE3LjQtMzIuNCAzNy44LTU4LjQgNTkuMS03NS4xIDkuMi03LjIgMTguNC0xMi43IDI3LjctMTYuNFYzMjd6TTM2NS43IDE2NS41YzMuNy0xLjUgNy4zLTMgMTEtNC40LTIzLjQgMzEuMy00My41IDcwLjQtNTkuMiAxMTUuNC0yMS0xMi00MC45LTI2LTU5LjQtNDEuOCAzMS44LTI5LjIgNjcuOS01Mi40IDEwNy42LTY5LjJ6TTE2NS41IDM2NS43YzEzLjgtMzIuNiAzMi02Mi44IDU0LjItOTAuMiAyNC45IDIxLjUgNTIuMiA0MC4zIDgxLjUgNTUuOS0xMS42IDQ2LjktMTguOCA5OC40LTIwLjcgMTUyLjZIMTM3YzMtNDAuOSAxMi42LTgwLjYgMjguNS0xMTguM3pNMTM3IDU0MGgxNDMuNWMxLjkgNTQuMiA5LjEgMTA1LjcgMjAuNyAxNTIuNmE0NDQuMDcgNDQ0LjA3IDAgMDAtODEuNSA1NS45QTM3My44NiAzNzMuODYgMCAwMTEzNyA1NDB6bTIyOC43IDMxOC41Yy0zOS43LTE2LjgtNzUuOC00MC0xMDcuNi02OS4yIDE4LjUtMTUuOCAzOC40LTI5LjcgNTkuNC00MS44IDE1LjcgNDUgMzUuOCA4NC4xIDU5LjIgMTE1LjQtMy43LTEuNC03LjQtMi45LTExLTQuNHptMjkyLjYgMGMtMy43IDEuNS03LjMgMy0xMSA0LjQgMjMuNC0zMS4zIDQzLjUtNzAuNCA1OS4yLTExNS40IDIxIDEyIDQwLjkgMjYgNTkuNCA0MS44YTM3My44MSAzNzMuODEgMCAwMS0xMDcuNiA2OS4yeiJ9fV19LG5hbWU6Imdsb2JhbCIsdGhlbWU6Im91dGxpbmVkIn0sS1M9a1MsX1M9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246S1N9KSl9LEdTPXQuZm9yd2FyZFJlZihfUyksWVM9R1MsWFM9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkwNS45IDgwNi43bC00MC4yLTI0OGMtLjYtMy45LTQtNi43LTcuOS02LjdINTk2LjJjLTMuOSAwLTcuMyAyLjgtNy45IDYuN2wtNDAuMiAyNDhjLS4xLjQtLjEuOS0uMSAxLjMgMCA0LjQgMy42IDggOCA4aDM0MmMuNCAwIC45IDAgMS4zLS4xIDQuMy0uNyA3LjMtNC44IDYuNi05LjJ6bS00NzAuMi0yNDhjLS42LTMuOS00LTYuNy03LjktNi43SDE2Ni4yYy0zLjkgMC03LjMgMi44LTcuOSA2LjdsLTQwLjIgMjQ4Yy0uMS40LS4xLjktLjEgMS4zIDAgNC40IDMuNiA4IDggOGgzNDJjLjQgMCAuOSAwIDEuMy0uMSA0LjQtLjcgNy4zLTQuOCA2LjYtOS4ybC00MC4yLTI0OHpNMzQyIDQ3MmgzNDJjLjQgMCAuOSAwIDEuMy0uMSA0LjQtLjcgNy4zLTQuOCA2LjYtOS4ybC00MC4yLTI0OGMtLjYtMy45LTQtNi43LTcuOS02LjdIMzgyLjJjLTMuOSAwLTcuMyAyLjgtNy45IDYuN2wtNDAuMiAyNDhjLS4xLjQtLjEuOS0uMSAxLjMgMCA0LjQgMy42IDggOCA4eiJ9fV19LG5hbWU6ImdvbGQiLHRoZW1lOiJmaWxsZWQifSxRUz1YUyxKUz1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpRU30pKX0scVM9dC5mb3J3YXJkUmVmKEpTKSxlTz1xUyx0Tz17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMzQyIDQ3MmgzNDJjLjQgMCAuOSAwIDEuMy0uMSA0LjQtLjcgNy4zLTQuOCA2LjYtOS4ybC00MC4yLTI0OGMtLjYtMy45LTQtNi43LTcuOS02LjdIMzgyLjJjLTMuOSAwLTcuMyAyLjgtNy45IDYuN2wtNDAuMiAyNDhjLS4xLjQtLjEuOS0uMSAxLjMgMCA0LjQgMy42IDggOCA4em05MS4yLTE5NmgxNTkuNWwyMC43IDEyOGgtMjAxbDIwLjgtMTI4em0yLjUgMjgyLjdjLS42LTMuOS00LTYuNy03LjktNi43SDE2Ni4yYy0zLjkgMC03LjMgMi44LTcuOSA2LjdsLTQwLjIgMjQ4Yy0uMS40LS4xLjktLjEgMS4zIDAgNC40IDMuNiA4IDggOGgzNDJjLjQgMCAuOSAwIDEuMy0uMSA0LjQtLjcgNy4zLTQuOCA2LjYtOS4ybC00MC4yLTI0OHpNMTk2LjUgNzQ4bDIwLjctMTI4aDE1OS41bDIwLjcgMTI4SDE5Ni41em03MDkuNCA1OC43bC00MC4yLTI0OGMtLjYtMy45LTQtNi43LTcuOS02LjdINTk2LjJjLTMuOSAwLTcuMyAyLjgtNy45IDYuN2wtNDAuMiAyNDhjLS4xLjQtLjEuOS0uMSAxLjMgMCA0LjQgMy42IDggOCA4aDM0MmMuNCAwIC45IDAgMS4zLS4xIDQuMy0uNyA3LjMtNC44IDYuNi05LjJ6TTYyNi41IDc0OGwyMC43LTEyOGgxNTkuNWwyMC43IDEyOEg2MjYuNXoifX1dfSxuYW1lOiJnb2xkIix0aGVtZToib3V0bGluZWQifSxuTz10TyxyTz1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpuT30pKX0sYU89dC5mb3J3YXJkUmVmKHJPKSxvTz1hTyxpTz17aWNvbjpmdW5jdGlvbihmLHYpe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00MzUuNyA1NTguN2MtLjYtMy45LTQtNi43LTcuOS02LjdIMTY2LjJjLTMuOSAwLTcuMyAyLjgtNy45IDYuN2wtNDAuMiAyNDhjLS4xLjQtLjEuOS0uMSAxLjMgMCA0LjQgMy42IDggOCA4aDM0MmMuNCAwIC45IDAgMS4zLS4xIDQuNC0uNyA3LjMtNC44IDYuNi05LjJsLTQwLjItMjQ4ek0xOTYuNSA3NDhsMjAuNy0xMjhoMTU5LjVsMjAuNyAxMjhIMTk2LjV6bTcwOS40IDU4LjdsLTQwLjItMjQ4Yy0uNi0zLjktNC02LjctNy45LTYuN0g1OTYuMmMtMy45IDAtNy4zIDIuOC03LjkgNi43bC00MC4yIDI0OGMtLjEuNC0uMS45LS4xIDEuMyAwIDQuNCAzLjYgOCA4IDhoMzQyYy40IDAgLjkgMCAxLjMtLjEgNC4zLS43IDcuMy00LjggNi42LTkuMnpNNjI2LjUgNzQ4bDIwLjctMTI4aDE1OS41bDIwLjcgMTI4SDYyNi41ek0zNDIgNDcyaDM0MmMuNCAwIC45IDAgMS4zLS4xIDQuNC0uNyA3LjMtNC44IDYuNi05LjJsLTQwLjItMjQ4Yy0uNi0zLjktNC02LjctNy45LTYuN0gzODIuMmMtMy45IDAtNy4zIDIuOC03LjkgNi43bC00MC4yIDI0OGMtLjEuNC0uMS45LS4xIDEuMyAwIDQuNCAzLjYgOCA4IDh6bTkxLjItMTk2aDE1OS41bDIwLjcgMTI4aC0yMDFsMjAuOC0xMjh6IixmaWxsOmZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTU5Mi43IDI3Nkg0MzMuMmwtMjAuOCAxMjhoMjAxek0yMTcuMiA2MjBsLTIwLjcgMTI4aDIwMC45bC0yMC43LTEyOHptNDMwIDBsLTIwLjcgMTI4aDIwMC45bC0yMC43LTEyOHoiLGZpbGw6dn19XX19LG5hbWU6ImdvbGQiLHRoZW1lOiJ0d290b25lIn0sbE89aU8sc089ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246bE99KSl9LGNPPXQuZm9yd2FyZFJlZihzTyksdU89Y08sZE89e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkwNS45IDgwNi43bC00MC4yLTI0OGMtLjYtMy45LTQtNi43LTcuOS02LjdINTk2LjJjLTMuOSAwLTcuMyAyLjgtNy45IDYuN2wtNDAuMiAyNDhjLS4xLjQtLjEuOS0uMSAxLjMgMCA0LjQgMy42IDggOCA4aDM0MmMuNCAwIC45IDAgMS4zLS4xIDQuMy0uNyA3LjMtNC44IDYuNi05LjJ6bS00NzAuMi0yNDhjLS42LTMuOS00LTYuNy03LjktNi43SDE2Ni4yYy0zLjkgMC03LjMgMi44LTcuOSA2LjdsLTQwLjIgMjQ4Yy0uMS40LS4xLjktLjEgMS4zIDAgNC40IDMuNiA4IDggOGgzNDJjLjQgMCAuOSAwIDEuMy0uMSA0LjQtLjcgNy4zLTQuOCA2LjYtOS4ybC00MC4yLTI0OHpNMzQyIDQ3MmgzNDJjLjQgMCAuOSAwIDEuMy0uMSA0LjQtLjcgNy4zLTQuOCA2LjYtOS4ybC00MC4yLTI0OGMtLjYtMy45LTQtNi43LTcuOS02LjdIMzgyLjJjLTMuOSAwLTcuMyAyLjgtNy45IDYuN2wtNDAuMiAyNDhjLS4xLjQtLjEuOS0uMSAxLjMgMCA0LjQgMy42IDggOCA4eiJ9fV19LG5hbWU6ImdvbGRlbiIsdGhlbWU6ImZpbGxlZCJ9LGZPPWRPLHZPPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOmZPfSkpfSxoTz10LmZvcndhcmRSZWYodk8pLG1PPWhPLGdPPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMTY3IDYzMy42QzYzOC40IDczNSA1ODMgNzU3IDUxNi45IDc1N2MtOTUuNyAwLTE3OC41LTU0LjktMjE4LjgtMTM0LjlDMjgxLjUgNTg5IDI3MiA1NTEuNiAyNzIgNTEyczkuNS03NyAyNi4xLTExMC4xYzQwLjMtODAuMSAxMjMuMS0xMzUgMjE4LjgtMTM1IDY2IDAgMTIxLjQgMjQuMyAxNjMuOSA2My44TDYxMC42IDQwMWMtMjUuNC0yNC4zLTU3LjctMzYuNi05My42LTM2LjYtNjMuOCAwLTExNy44IDQzLjEtMTM3LjEgMTAxLTQuOSAxNC43LTcuNyAzMC40LTcuNyA0Ni42czIuOCAzMS45IDcuNyA0Ni42YzE5LjMgNTcuOSA3My4zIDEwMSAxMzcgMTAxIDMzIDAgNjEtOC43IDgyLjktMjMuNCAyNi0xNy40IDQzLjItNDMuMyA0OC45LTc0SDUxNi45di05NC44aDIzMC43YzIuOSAxNi4xIDQuNCAzMi44IDQuNCA1MC4xIDAgNzQuNy0yNi43IDEzNy40LTczIDE4MC4xeiJ9fV19LG5hbWU6Imdvb2dsZS1jaXJjbGUiLHRoZW1lOiJmaWxsZWQifSxwTz1nTyx5Tz1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpwT30pKX0sQ089dC5mb3J3YXJkUmVmKHlPKSxiTz1DTyxTTz17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODgxIDQ0Mi40SDUxOS43djE0OC41aDIwNi40Yy04LjkgNDgtMzUuOSA4OC42LTc2LjYgMTE1LjgtMzQuNCAyMy03OC4zIDM2LjYtMTI5LjkgMzYuNi05OS45IDAtMTg0LjQtNjcuNS0yMTQuNi0xNTguMi03LjYtMjMtMTItNDcuNi0xMi03Mi45czQuNC00OS45IDEyLTcyLjljMzAuMy05MC42IDExNC44LTE1OC4xIDIxNC43LTE1OC4xIDU2LjMgMCAxMDYuOCAxOS40IDE0Ni42IDU3LjRsMTEwLTExMC4xYy02Ni41LTYyLTE1My4yLTEwMC0yNTYuNi0xMDAtMTQ5LjkgMC0yNzkuNiA4Ni0zNDIuNyAyMTEuNC0yNiA1MS44LTQwLjggMTEwLjQtNDAuOCAxNzIuNFMxNTEgNjMyLjggMTc3IDY4NC42QzI0MC4xIDgxMCAzNjkuOCA4OTYgNTE5LjcgODk2YzEwMy42IDAgMTkwLjQtMzQuNCAyNTMuOC05MyA3Mi41LTY2LjggMTE0LjQtMTY1LjIgMTE0LjQtMjgyLjEgMC0yNy4yLTIuNC01My4zLTYuOS03OC41eiJ9fV19LG5hbWU6Imdvb2dsZSIsdGhlbWU6Im91dGxpbmVkIn0sT089U08seE89ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246T099KSl9LHdPPXQuZm9yd2FyZFJlZih4TyksRU89d08sVE89e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0zNi41IDU1OC44Yy00My45IDYxLjgtMTMyLjEgNzkuOC0yMDAuOSA1My4zLTY5LTI2LjMtMTE4LTk5LjItMTEyLjEtMTczLjUgMS41LTkwLjkgODUuMi0xNzAuNiAxNzYuMS0xNjcuNSA0My42LTIgODQuNiAxNi45IDExOCA0My42LTE0LjMgMTYuMi0yOSAzMS44LTQ0LjggNDYuMy00MC4xLTI3LjctOTcuMi0zNS42LTEzNy4zLTMuNi01Ny40IDM5LjctNjAgMTMzLjQtNC44IDE3Ni4xIDUzLjcgNDguNyAxNTUuMiAyNC41IDE3MC4xLTUwLjEtMzMuNi0uNS02Ny40IDAtMTAxLTEuMS0uMS0yMC4xLS4yLTQwLjEtLjEtNjAuMiA1Ni4yLS4yIDExMi41LS4zIDE2OC44LjIgMy4zIDQ3LjMtMyA5Ny41LTMyIDEzNi41ek03OTEgNTM2LjVjLTE2LjguMi0zMy42LjMtNTAuNC40LS4yIDE2LjgtLjMgMzMuNi0uMyA1MC40SDY5MGMtLjItMTYuOC0uMi0zMy41LS4zLTUwLjMtMTYuOC0uMi0zMy42LS4zLTUwLjQtLjV2LTUwLjFjMTYuOC0uMiAzMy42LS4zIDUwLjQtLjMuMS0xNi44LjMtMzMuNi40LTUwLjRoNTAuMmwuMyA1MC40YzE2LjguMiAzMy42LjIgNTAuNC4zdjUwLjF6In19XX0sbmFtZToiZ29vZ2xlLXBsdXMtY2lyY2xlIix0aGVtZToiZmlsbGVkIn0sTU89VE8sUk89ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246TU99KSl9LElPPXQuZm9yd2FyZFJlZihSTyksUE89SU8sek89e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg3OS41IDQ3MC40Yy0uMy0yNy0uNC01NC4yLS41LTgxLjNoLTgwLjhjLS4zIDI3LS41IDU0LjEtLjcgODEuMy0yNy4yLjEtNTQuMi4zLTgxLjIuNnY4MC45YzI3IC4zIDU0LjIuNSA4MS4yLjguMyAyNyAuMyA1NC4xLjUgODEuMWg4MC45Yy4xLTI3IC4zLTU0LjEuNS04MS4zIDI3LjItLjMgNTQuMi0uNCA4MS4yLS43di04MC45Yy0yNi45LS4yLTU0LjEtLjItODEuMS0uNXptLTUzMCAuNGMtLjEgMzIuMyAwIDY0LjcuMSA5NyA1NC4yIDEuOCAxMDguNSAxIDE2Mi43IDEuOC0yMy45IDEyMC4zLTE4Ny40IDE1OS4zLTI3My45IDgwLjctODktNjguOS04NC44LTIyMCA3LjctMjg0IDY0LjctNTEuNiAxNTYuNi0zOC45IDIyMS4zIDUuOCAyNS40LTIzLjUgNDkuMi00OC43IDcyLjEtNzQuNy01My44LTQyLjktMTE5LjgtNzMuNS0xOTAtNzAuMy0xNDYuNi00LjktMjgxLjMgMTIzLjUtMjgzLjcgMjcwLjItOS40IDExOS45IDY5LjQgMjM3LjQgMTgwLjYgMjc5LjggMTEwLjggNDIuNyAyNTIuOSAxMy42IDMyMy43LTg2IDQ2LjctNjIuOSA1Ni44LTE0My45IDUxLjMtMjIwLTkwLjctLjctMTgxLjMtLjYtMjcxLjktLjN6In19XX0sbmFtZToiZ29vZ2xlLXBsdXMiLHRoZW1lOiJvdXRsaW5lZCJ9LEZPPXpPLEFPPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkZPfSkpfSxMTz10LmZvcndhcmRSZWYoQU8pLFpPPUxPLCRPPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTU0OC41IDYyMi44Yy00My45IDYxLjgtMTMyLjEgNzkuOC0yMDAuOSA1My4zLTY5LTI2LjMtMTE4LTk5LjItMTEyLjEtMTczLjUgMS41LTkwLjkgODUuMi0xNzAuNiAxNzYuMS0xNjcuNSA0My42LTIgODQuNiAxNi45IDExOCA0My42LTE0LjMgMTYuMi0yOSAzMS44LTQ0LjggNDYuMy00MC4xLTI3LjctOTcuMi0zNS42LTEzNy4zLTMuNi01Ny40IDM5LjctNjAgMTMzLjQtNC44IDE3Ni4xIDUzLjcgNDguNyAxNTUuMiAyNC41IDE3MC4xLTUwLjEtMzMuNi0uNS02Ny40IDAtMTAxLTEuMS0uMS0yMC4xLS4yLTQwLjEtLjEtNjAuMiA1Ni4yLS4yIDExMi41LS4zIDE2OC44LjIgMy4zIDQ3LjMtMyA5Ny41LTMyIDEzNi41ek03OTEgNTM2LjVjLTE2LjguMi0zMy42LjMtNTAuNC40LS4yIDE2LjgtLjMgMzMuNi0uMyA1MC40SDY5MGMtLjItMTYuOC0uMi0zMy41LS4zLTUwLjMtMTYuOC0uMi0zMy42LS4zLTUwLjQtLjV2LTUwLjFjMTYuOC0uMiAzMy42LS4zIDUwLjQtLjMuMS0xNi44LjMtMzMuNi40LTUwLjRoNTAuMmwuMyA1MC40YzE2LjguMiAzMy42LjIgNTAuNC4zdjUwLjF6In19XX0sbmFtZToiZ29vZ2xlLXBsdXMtc3F1YXJlIix0aGVtZToiZmlsbGVkIn0sSE89JE8sRE89ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246SE99KSl9LEJPPXQuZm9yd2FyZFJlZihETyksVk89Qk8sTk89e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNjc5IDY5Ny42QzYzOC40IDczNSA1ODMgNzU3IDUxNi45IDc1N2MtOTUuNyAwLTE3OC41LTU0LjktMjE4LjgtMTM0LjlBMjQ1LjAyIDI0NS4wMiAwIDAxMjcyIDUxMmMwLTM5LjYgOS41LTc3IDI2LjEtMTEwLjEgNDAuMy04MC4xIDEyMy4xLTEzNSAyMTguOC0xMzUgNjYgMCAxMjEuNCAyNC4zIDE2My45IDYzLjhMNjEwLjYgNDAxYy0yNS40LTI0LjMtNTcuNy0zNi42LTkzLjYtMzYuNi02My44IDAtMTE3LjggNDMuMS0xMzcuMSAxMDEtNC45IDE0LjctNy43IDMwLjQtNy43IDQ2LjZzMi44IDMxLjkgNy43IDQ2LjZjMTkuMyA1Ny45IDczLjMgMTAxIDEzNyAxMDEgMzMgMCA2MS04LjcgODIuOS0yMy40IDI2LTE3LjQgNDMuMi00My4zIDQ4LjktNzRINTE2Ljl2LTk0LjhoMjMwLjdjMi45IDE2LjEgNC40IDMyLjggNC40IDUwLjEgMCA3NC43LTI2LjcgMTM3LjQtNzMgMTgwLjF6In19XX0sbmFtZToiZ29vZ2xlLXNxdWFyZSIsdGhlbWU6ImZpbGxlZCJ9LGpPPU5PLFVPPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOmpPfSkpfSxXTz10LmZvcndhcmRSZWYoVU8pLGtPPVdPLEtPPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoiZGVmcyIsYXR0cnM6e30sY2hpbGRyZW46W3t0YWc6InN0eWxlIixhdHRyczp7fX1dfSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkxMiA4MjAuMVYyMDMuOWMyOC05LjkgNDgtMzYuNiA0OC02Ny45IDAtMzkuOC0zMi4yLTcyLTcyLTcyLTMxLjMgMC01OCAyMC02Ny45IDQ4SDIwMy45QzE5NCA4NCAxNjcuMyA2NCAxMzYgNjRjLTM5LjggMC03MiAzMi4yLTcyIDcyIDAgMzEuMyAyMCA1OCA0OCA2Ny45djYxNi4yQzg0IDgzMCA2NCA4NTYuNyA2NCA4ODhjMCAzOS44IDMyLjIgNzIgNzIgNzIgMzEuMyAwIDU4LTIwIDY3LjktNDhoNjE2LjJjOS45IDI4IDM2LjYgNDggNjcuOSA0OCAzOS44IDAgNzItMzIuMiA3Mi03MiAwLTMxLjMtMjAtNTgtNDgtNjcuOXpNODg4IDExMmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNC0yNC0xMC43LTI0LTI0IDEwLjctMjQgMjQtMjR6TTEzNiA5MTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjQgMjQgMTAuNyAyNCAyNC0xMC43IDI0LTI0IDI0em0wLTc1MmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNCAyNCAxMC43IDI0IDI0LTEwLjcgMjQtMjQgMjR6bTcwNCA2ODBIMTg0VjE4NGg2NTZ2NjU2em00OCA3MmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNCAyNCAxMC43IDI0IDI0LTEwLjcgMjQtMjQgMjR6In19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMjg4IDQ3NGg0NDhjOC44IDAgMTYtNy4yIDE2LTE2VjI4MmMwLTguOC03LjItMTYtMTYtMTZIMjg4Yy04LjggMC0xNiA3LjItMTYgMTZ2MTc2YzAgOC44IDcuMiAxNiAxNiAxNnptNTYtMTM2aDMzNnY2NEgzNDR2LTY0em0tNTYgNDIwaDQ0OGM4LjggMCAxNi03LjIgMTYtMTZWNTY2YzAtOC44LTcuMi0xNi0xNi0xNkgyODhjLTguOCAwLTE2IDcuMi0xNiAxNnYxNzZjMCA4LjggNy4yIDE2IDE2IDE2em01Ni0xMzZoMzM2djY0SDM0NHYtNjR6In19XX0sbmFtZToiZ3JvdXAiLHRoZW1lOiJvdXRsaW5lZCJ9LF9PPUtPLEdPPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOl9PfSkpfSxZTz10LmZvcndhcmRSZWYoR08pLFhPPVlPLFFPPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6eyJmaWxsLXJ1bGUiOiJldmVub2RkIix2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTExLjUgNjVDNzE5Ljk5IDY1IDg4OSAyMzQuMDEgODg5IDQ0Mi41UzcxOS45OSA4MjAgNTExLjUgODIwIDEzNCA2NTAuOTkgMTM0IDQ0Mi41IDMwMy4wMSA2NSA1MTEuNSA2NW0wIDY0QzMzOC4zNiAxMjkgMTk4IDI2OS4zNiAxOTggNDQyLjVTMzM4LjM2IDc1NiA1MTEuNSA3NTYgODI1IDYxNS42NCA4MjUgNDQyLjUgNjg0LjY0IDEyOSA1MTEuNSAxMjlNNzQ1IDg4OXY3MkgyNzh2LTcyeiJ9fV19LG5hbWU6Imhhcm1vbnktby1zIix0aGVtZToib3V0bGluZWQifSxKTz1RTyxxTz1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpKT30pKX0sZXg9dC5mb3J3YXJkUmVmKHFPKSx0eD1leCxueD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODMyIDY0SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MjI0aDcwNFY5NmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNDU2IDIxNmMwIDQuNC0zLjYgOC04IDhIMjY0Yy00LjQgMC04LTMuNi04LTh2LTQ4YzAtNC40IDMuNi04IDgtOGgxODRjNC40IDAgOCAzLjYgOCA4djQ4ek0xNjAgOTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlY3MDRIMTYwdjIyNHptNTc2LTEzNmMyMi4xIDAgNDAgMTcuOSA0MCA0MHMtMTcuOSA0MC00MCA0MC00MC0xNy45LTQwLTQwIDE3LjktNDAgNDAtNDB6TTE2MCA2NDBoNzA0VjM4NEgxNjB2MjU2em05Ni0xNTJjMC00LjQgMy42LTggOC04aDE4NGM0LjQgMCA4IDMuNiA4IDh2NDhjMCA0LjQtMy42IDgtOCA4SDI2NGMtNC40IDAtOC0zLjYtOC04di00OHoifX1dfSxuYW1lOiJoZGQiLHRoZW1lOiJmaWxsZWQifSxyeD1ueCxheD1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpyeH0pKX0sb3g9dC5mb3J3YXJkUmVmKGF4KSxpeD1veCxseD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODMyIDY0SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlY5NmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTYwMCA3Mmg1NjB2MjA4SDIzMlYxMzZ6bTU2MCA0ODBIMjMyVjQwOGg1NjB2MjA4em0wIDI3MkgyMzJWNjgwaDU2MHYyMDh6TTQ5NiAyMDhIMzEyYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDE4NGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOHpNMzEyIDU0NGgxODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThIMzEyYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4em0zMjggMjQ0YTQwIDQwIDAgMTA4MCAwIDQwIDQwIDAgMTAtODAgMHoifX1dfSxuYW1lOiJoZGQiLHRoZW1lOiJvdXRsaW5lZCJ9LHN4PWx4LGN4PWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOnN4fSkpfSx1eD10LmZvcndhcmRSZWYoY3gpLGR4PXV4LGZ4PXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTIzMiA4ODhoNTYwVjY4MEgyMzJ2MjA4em00NDgtMTQwYzIyLjEgMCA0MCAxNy45IDQwIDQwcy0xNy45IDQwLTQwIDQwLTQwLTE3LjktNDAtNDAgMTcuOS00MCA0MC00MHpNMjMyIDYxNmg1NjBWNDA4SDIzMnYyMDh6bTcyLTEyOGMwLTQuNCAzLjYtOCA4LThoMTg0YzQuNCAwIDggMy42IDggOHY0OGMwIDQuNC0zLjYgOC04IDhIMzEyYy00LjQgMC04LTMuNi04LTh2LTQ4em0tNzItMTQ0aDU2MFYxMzZIMjMydjIwOHptNzItMTI4YzAtNC40IDMuNi04IDgtOGgxODRjNC40IDAgOCAzLjYgOCA4djQ4YzAgNC40LTMuNiA4LTggOEgzMTJjLTQuNCAwLTgtMy42LTgtOHYtNDh6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTgzMiA2NEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA4MjRIMjMyVjY4MGg1NjB2MjA4em0wLTI3MkgyMzJWNDA4aDU2MHYyMDh6bTAtMjcySDIzMlYxMzZoNTYwdjIwOHoiLGZpbGw6Zn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMzEyIDU0NGgxODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThIMzEyYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4em0wLTI3MmgxODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThIMzEyYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4em0zMjggNTE2YTQwIDQwIDAgMTA4MCAwIDQwIDQwIDAgMTAtODAgMHoiLGZpbGw6Zn19XX19LG5hbWU6ImhkZCIsdGhlbWU6InR3b3RvbmUifSx2eD1meCxoeD1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjp2eH0pKX0sbXg9dC5mb3J3YXJkUmVmKGh4KSxneD1teCxweD1lKDM0NDQ3KSx5eD1lKDQ5NjQ3KSxDeD17aWNvbjpmdW5jdGlvbihmLHYpe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MjMgMjgzLjZhMjYwLjA0IDI2MC4wNCAwIDAwLTU2LjktODIuOCAyNjQuNCAyNjQuNCAwIDAwLTg0LTU1LjVBMjY1LjM0IDI2NS4zNCAwIDAwNjc5LjcgMTI1Yy00OS4zIDAtOTcuNCAxMy41LTEzOS4yIDM5LTEwIDYuMS0xOS41IDEyLjgtMjguNSAyMC4xLTktNy4zLTE4LjUtMTQtMjguNS0yMC4xLTQxLjgtMjUuNS04OS45LTM5LTEzOS4yLTM5LTM1LjUgMC02OS45IDYuOC0xMDIuNCAyMC4zLTMxLjQgMTMtNTkuNyAzMS43LTg0IDU1LjVhMjU4LjQ0IDI1OC40NCAwIDAwLTU2LjkgODIuOGMtMTMuOSAzMi4zLTIxIDY2LjYtMjEgMTAxLjkgMCAzMy4zIDYuOCA2OCAyMC4zIDEwMy4zIDExLjMgMjkuNSAyNy41IDYwLjEgNDguMiA5MSAzMi44IDQ4LjkgNzcuOSA5OS45IDEzMy45IDE1MS42IDkyLjggODUuNyAxODQuNyAxNDQuOSAxODguNiAxNDcuM2wyMy43IDE1LjJjMTAuNSA2LjcgMjQgNi43IDM0LjUgMGwyMy43LTE1LjJjMy45LTIuNSA5NS43LTYxLjYgMTg4LjYtMTQ3LjMgNTYtNTEuNyAxMDEuMS0xMDIuNyAxMzMuOS0xNTEuNiAyMC43LTMwLjkgMzctNjEuNSA0OC4yLTkxIDEzLjUtMzUuMyAyMC4zLTcwIDIwLjMtMTAzLjMuMS0zNS4zLTctNjkuNi0yMC45LTEwMS45ek01MTIgODE0LjhTMTU2IDU4Ni43IDE1NiAzODUuNUMxNTYgMjgzLjYgMjQwLjMgMjAxIDM0NC4zIDIwMWM3My4xIDAgMTM2LjUgNDAuOCAxNjcuNyAxMDAuNEM1NDMuMiAyNDEuOCA2MDYuNiAyMDEgNjc5LjcgMjAxYzEwNCAwIDE4OC4zIDgyLjYgMTg4LjMgMTg0LjUgMCAyMDEuMi0zNTYgNDI5LjMtMzU2IDQyOS4zeiIsZmlsbDpmfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02NzkuNyAyMDFjLTczLjEgMC0xMzYuNSA0MC44LTE2Ny43IDEwMC40QzQ4MC44IDI0MS44IDQxNy40IDIwMSAzNDQuMyAyMDFjLTEwNCAwLTE4OC4zIDgyLjYtMTg4LjMgMTg0LjUgMCAyMDEuMiAzNTYgNDI5LjMgMzU2IDQyOS4zczM1Ni0yMjguMSAzNTYtNDI5LjNDODY4IDI4My42IDc4My43IDIwMSA2NzkuNyAyMDF6IixmaWxsOnZ9fV19fSxuYW1lOiJoZWFydCIsdGhlbWU6InR3b3RvbmUifSxieD1DeCxTeD1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpieH0pKX0sT3g9dC5mb3J3YXJkUmVmKFN4KSx4eD1PeCx3eD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTU1LjcgODU2bC00MTYtNzIwYy02LjItMTAuNy0xNi45LTE2LTI3LjctMTZzLTIxLjYgNS4zLTI3LjcgMTZsLTQxNiA3MjBDNTYgODc3LjQgNzEuNCA5MDQgOTYgOTA0aDgzMmMyNC42IDAgNDAtMjYuNiAyNy43LTQ4em0tNzkwLjQtMjMuOUw1MTIgMjMxLjkgODU4LjcgODMySDE2NS4zem0zMTktNDc0LjFsLTIyOCAzOTRjLTEyLjMgMjEuMyAzLjEgNDggMjcuNyA0OGg0NTUuOGMyNC43IDAgNDAuMS0yNi43IDI3LjctNDhMNTM5LjcgMzU4Yy02LjItMTAuNy0xNy0xNi0yNy43LTE2LTEwLjggMC0yMS42IDUuMy0yNy43IDE2em0yMTQgMzg2SDMyNS43TDUxMiA0MjJsMTg2LjMgMzIyem0tMjE0LTE5NC4xbC01NyA5OC40QzQxNSA2NjkuNSA0MzAuNCA2OTYgNDU1IDY5NmgxMTRjMjQuNiAwIDM5LjktMjYuNSAyNy43LTQ3LjdsLTU3LTk4LjRjLTYuMS0xMC42LTE2LjktMTUuOS0yNy43LTE1LjlzLTIxLjUgNS4zLTI3LjcgMTUuOXptNTcuMSA5OC40aC01OC43bDI5LjQtNTAuNyAyOS4zIDUwLjd6In19XX0sbmFtZToiaGVhdC1tYXAiLHRoZW1lOiJvdXRsaW5lZCJ9LEV4PXd4LFR4PWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkV4fSkpfSxNeD10LmZvcndhcmRSZWYoVHgpLFJ4PU14LEl4PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05NTcuNiA1MDcuNEw2MDMuMiAxNTguMmE3LjkgNy45IDAgMDAtMTEuMiAwTDM1My4zIDM5My40YTguMDMgOC4wMyAwIDAwLS4xIDExLjNsLjEuMSA0MCAzOS40LTExNy4yIDExNS4zYTguMDMgOC4wMyAwIDAwLS4xIDExLjNsLjEuMSAzOS41IDM4LjktMTg5LjEgMTg3SDcyLjFjLTQuNCAwLTguMSAzLjYtOC4xIDhWODYwYzAgNC40IDMuNiA4IDggOGgzNDQuOWMyLjEgMCA0LjEtLjggNS42LTIuM2w3Ni4xLTc1LjYgNDAuNCAzOS44YTcuOSA3LjkgMCAwMDExLjIgMGwxMTcuMS0xMTUuNiA0MC4xIDM5LjVhNy45IDcuOSAwIDAwMTEuMiAwbDIzOC43LTIzNS4yYzMuNC0zIDMuNC04IC4zLTExLjJ6In19XX0sbmFtZToiaGlnaGxpZ2h0Iix0aGVtZToiZmlsbGVkIn0sUHg9SXgseng9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246UHh9KSl9LEZ4PXQuZm9yd2FyZFJlZih6eCksQXg9RngsTHg9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTk1Ny42IDUwNy40TDYwMy4yIDE1OC4yYTcuOSA3LjkgMCAwMC0xMS4yIDBMMzUzLjMgMzkzLjRhOC4wMyA4LjAzIDAgMDAtLjEgMTEuM2wuMS4xIDQwIDM5LjQtMTE3LjIgMTE1LjNhOC4wMyA4LjAzIDAgMDAtLjEgMTEuM2wuMS4xIDM5LjUgMzguOS0xODkuMSAxODdINzIuMWMtNC40IDAtOC4xIDMuNi04LjEgOFY4NjBjMCA0LjQgMy42IDggOCA4aDM0NC45YzIuMSAwIDQuMS0uOCA1LjYtMi4zbDc2LjEtNzUuNiA0MC40IDM5LjhhNy45IDcuOSAwIDAwMTEuMiAwbDExNy4xLTExNS42IDQwLjEgMzkuNWE3LjkgNy45IDAgMDAxMS4yIDBsMjM4LjctMjM1LjJjMy40LTMgMy40LTggLjMtMTEuMnpNMzg5LjggNzk2LjJIMjI5LjZsMTM0LjQtMTMzIDgwLjEgNzguOS01NC4zIDU0LjF6bTE1NC44LTYyLjFMMzczLjIgNTY1LjJsNjguNi02Ny42IDE3MS40IDE2OC45LTY4LjYgNjcuNnpNNzEzLjEgNjU4TDQ1MC4zIDM5OS4xIDU5Ny42IDI1NGwyNjIuOCAyNTktMTQ3LjMgMTQ1eiJ9fV19LG5hbWU6ImhpZ2hsaWdodCIsdGhlbWU6Im91dGxpbmVkIn0sWng9THgsJHg9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246Wnh9KSl9LEh4PXQuZm9yd2FyZFJlZigkeCksRHg9SHgsQng9e2ljb246ZnVuY3Rpb24oZix2KXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMjI5LjYgNzk2LjNoMTYwLjJsNTQuMy01NC4xLTgwLjEtNzguOXptMjIwLjctMzk3LjFsMjYyLjggMjU4LjkgMTQ3LjMtMTQ1LTI2Mi44LTI1OXptLTc3LjEgMTY2LjFsMTcxLjQgMTY4LjkgNjguNi02Ny42LTE3MS40LTE2OC45eiIsZmlsbDp2fX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05NTcuNiA1MDcuNUw2MDMuMiAxNTguM2E3LjkgNy45IDAgMDAtMTEuMiAwTDM1My4zIDM5My41YTguMDMgOC4wMyAwIDAwLS4xIDExLjNsLjEuMSA0MCAzOS40LTExNy4yIDExNS4zYTguMDMgOC4wMyAwIDAwLS4xIDExLjNsLjEuMSAzOS41IDM4LjktMTg5LjEgMTg3SDcyLjFjLTQuNCAwLTguMSAzLjYtOC4xIDh2NTUuMmMwIDQuNCAzLjYgOCA4IDhoMzQ0LjljMi4xIDAgNC4xLS44IDUuNi0yLjNsNzYuMS03NS42TDUzOSA4MzBhNy45IDcuOSAwIDAwMTEuMiAwbDExNy4xLTExNS42IDQwLjEgMzkuNWE3LjkgNy45IDAgMDAxMS4yIDBsMjM4LjctMjM1LjJjMy40LTMgMy40LTggLjMtMTEuMnpNMzg5LjggNzk2LjNIMjI5LjZsMTM0LjQtMTMzIDgwLjEgNzguOS01NC4zIDU0LjF6bTE1NC44LTYyLjFMMzczLjIgNTY1LjNsNjguNi02Ny42IDE3MS40IDE2OC45LTY4LjYgNjcuNnptMTY4LjUtNzYuMUw0NTAuMyAzOTkuMmwxNDcuMy0xNDUuMSAyNjIuOCAyNTktMTQ3LjMgMTQ1eiIsZmlsbDpmfX1dfX0sbmFtZToiaGlnaGxpZ2h0Iix0aGVtZToidHdvdG9uZSJ9LFZ4PUJ4LE54PWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOlZ4fSkpfSxqeD10LmZvcndhcmRSZWYoTngpLFV4PWp4LFd4PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MzYuMSAyNzNINDg4Yy00LjQgMC04IDMuNi04IDh2Mjc1LjNjMCAyLjYgMS4yIDUgMy4zIDYuNWwxNjUuMyAxMjAuN2MzLjYgMi42IDguNiAxLjkgMTEuMi0xLjdsMjguNi0zOWMyLjctMy43IDEuOS04LjctMS43LTExLjJMNTQ0LjEgNTI4LjVWMjgxYzAtNC40LTMuNi04LTgtOHptMjE5LjggNzUuMmwxNTYuOCAzOC4zYzUgMS4yIDkuOS0yLjYgOS45LTcuN2wuOC0xNjEuNWMwLTYuNy03LjctMTAuNS0xMi45LTYuM0w3NTIuOSAzMzQuMWE4IDggMCAwMDMgMTQuMXptMTY3LjcgMzAxLjFsLTU2LjctMTkuNWE4IDggMCAwMC0xMC4xIDQuOGMtMS45IDUuMS0zLjkgMTAuMS02IDE1LjEtMTcuOCA0Mi4xLTQzLjMgODAtNzUuOSAxMTIuNWEzNTMgMzUzIDAgMDEtMTEyLjUgNzUuOSAzNTIuMTggMzUyLjE4IDAgMDEtMTM3LjcgMjcuOGMtNDcuOCAwLTk0LjEtOS4zLTEzNy43LTI3LjhhMzUzIDM1MyAwIDAxLTExMi41LTc1LjljLTMyLjUtMzIuNS01OC03MC40LTc1LjktMTEyLjVBMzUzLjQ0IDM1My40NCAwIDAxMTcxIDUxMmMwLTQ3LjggOS4zLTk0LjIgMjcuOC0xMzcuOCAxNy44LTQyLjEgNDMuMy04MCA3NS45LTExMi41YTM1MyAzNTMgMCAwMTExMi41LTc1LjlDNDMwLjYgMTY3LjMgNDc3IDE1OCA1MjQuOCAxNThzOTQuMSA5LjMgMTM3LjcgMjcuOEEzNTMgMzUzIDAgMDE3NzUgMjYxLjdjMTAuMiAxMC4zIDE5LjggMjEgMjguNiAzMi4zbDU5LjgtNDYuOEM3ODQuNyAxNDYuNiA2NjIuMiA4MS45IDUyNC42IDgyIDI4NSA4Mi4xIDkyLjYgMjc2LjcgOTUgNTE2LjQgOTcuNCA3NTEuOSAyODguOSA5NDIgNTI0LjggOTQyYzE4NS41IDAgMzQzLjUtMTE3LjYgNDAzLjctMjgyLjMgMS41LTQuMi0uNy04LjktNC45LTEwLjR6In19XX0sbmFtZToiaGlzdG9yeSIsdGhlbWU6Im91dGxpbmVkIn0sa3g9V3gsS3g9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246a3h9KSl9LF94PXQuZm9yd2FyZFJlZihLeCksR3g9X3gsWXg9ZSgyOTc1MSksWHg9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTk0Ni41IDUwNUw1MzQuNiA5My40YTMxLjkzIDMxLjkzIDAgMDAtNDUuMiAwTDc3LjUgNTA1Yy0xMiAxMi0xOC44IDI4LjMtMTguOCA0NS4zIDAgMzUuMyAyOC43IDY0IDY0IDY0aDQzLjRWOTA4YzAgMTcuNyAxNC4zIDMyIDMyIDMySDQ0OFY3MTZoMTEydjIyNGgyNjUuOWMxNy43IDAgMzItMTQuMyAzMi0zMlY2MTQuM2g0My40YzE3IDAgMzMuMy02LjcgNDUuMy0xOC44IDI0LjktMjUgMjQuOS02NS41LS4xLTkwLjV6In19XX0sbmFtZToiaG9tZSIsdGhlbWU6ImZpbGxlZCJ9LFF4PVh4LEp4PWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOlF4fSkpfSxxeD10LmZvcndhcmRSZWYoSngpLGV3PXF4LHR3PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05NDYuNSA1MDVMNTYwLjEgMTE4LjhsLTI1LjktMjUuOWEzMS41IDMxLjUgMCAwMC00NC40IDBMNzcuNSA1MDVhNjMuOSA2My45IDAgMDAtMTguOCA0NmMuNCAzNS4yIDI5LjcgNjMuMyA2NC45IDYzLjNoNDIuNVY5NDBoNjkxLjhWNjE0LjNoNDMuNGMxNy4xIDAgMzMuMi02LjcgNDUuMy0xOC44YTYzLjYgNjMuNiAwIDAwMTguNy00NS4zYzAtMTctNi43LTMzLjEtMTguOC00NS4yek01NjggODY4SDQ1NlY2NjRoMTEydjIwNHptMjE3LjktMzI1LjdWODY4SDYzMlY2NDBjMC0yMi4xLTE3LjktNDAtNDAtNDBINDMyYy0yMi4xIDAtNDAgMTcuOS00MCA0MHYyMjhIMjM4LjFWNTQyLjNoLTk2bDM3MC0zNjkuNyAyMy4xIDIzLjFMODgyIDU0Mi4zaC05Ni4xeiJ9fV19LG5hbWU6ImhvbWUiLHRoZW1lOiJvdXRsaW5lZCJ9LG53PXR3LHJ3PWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOm53fSkpfSxhdz10LmZvcndhcmRSZWYocncpLG93PWF3LGl3PXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMi4xIDE3Mi42bC0zNzAgMzY5LjdoOTZWODY4SDM5MlY2NDBjMC0yMi4xIDE3LjktNDAgNDAtNDBoMTYwYzIyLjEgMCA0MCAxNy45IDQwIDQwdjIyOGgxNTMuOVY1NDIuM0g4ODJMNTM1LjIgMTk1LjdsLTIzLjEtMjMuMXptNDM0LjUgNDIyLjljLTYgNi0xMy4xIDEwLjgtMjAuOCAxMy45IDcuNy0zLjIgMTQuOC03LjkgMjAuOC0xMy45em0tODg3LTM0LjdjNSAzMC4zIDMxLjQgNTMuNSA2My4xIDUzLjVoLjljLTMxLjkgMC01OC45LTIzLTY0LTUzLjV6bS0uOS0xMC41di0xLjkgMS45em0uMS0yLjZjLjEtMy4xLjUtNi4xIDEtOS4xLS42IDIuOS0uOSA2LTEgOS4xeiIsZmlsbDp2fX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05NTEgNTEwYzAtLjEtLjEtLjEtLjEtLjJsLTEuOC0yLjFjLS4xLS4xLS4yLS4zLS40LS40LS43LS44LTEuNS0xLjYtMi4yLTIuNEw1NjAuMSAxMTguOGwtMjUuOS0yNS45YTMxLjUgMzEuNSAwIDAwLTQ0LjQgMEw3Ny41IDUwNWE2My42IDYzLjYgMCAwMC0xNiAyNi42bC0uNiAyLjEtLjMgMS4xLS4zIDEuMmMtLjIuNy0uMyAxLjQtLjQgMi4xIDAgLjEgMCAuMy0uMS40LS42IDMtLjkgNi0xIDkuMXYzLjNjMCAuNSAwIDEgLjEgMS41IDAgLjUgMCAuOS4xIDEuNCAwIC41LjEgMSAuMSAxLjUgMCAuNi4xIDEuMi4yIDEuOCAwIC4zLjEuNi4xLjlsLjMgMi41di4xYzUuMSAzMC41IDMyLjIgNTMuNSA2NCA1My41aDQyLjVWOTQwaDY5MS43VjYxNC4zaDQzLjRjOC42IDAgMTYuOS0xLjcgMjQuNS00LjlzMTQuNy03LjkgMjAuOC0xMy45YTYzLjYgNjMuNiAwIDAwMTguNy00NS4zYzAtMTQuNy01LTI4LjgtMTQuMy00MC4yek01NjggODY4SDQ1NlY2NjRoMTEydjIwNHptMjE3LjktMzI1LjdWODY4SDYzMlY2NDBjMC0yMi4xLTE3LjktNDAtNDAtNDBINDMyYy0yMi4xIDAtNDAgMTcuOS00MCA0MHYyMjhIMjM4LjFWNTQyLjNoLTk2bDM3MC0zNjkuNyAyMy4xIDIzLjFMODgyIDU0Mi4zaC05Ni4xeiIsZmlsbDpmfX1dfX0sbmFtZToiaG9tZSIsdGhlbWU6InR3b3RvbmUifSxsdz1pdyxzdz1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpsd30pKX0sY3c9dC5mb3J3YXJkUmVmKHN3KSx1dz1jdyxkdz17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNzQyIDMxOFYxODRoODZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThIMTk2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDg2djEzNGMwIDgxLjUgNDIuNCAxNTMuMiAxMDYuNCAxOTQtNjQgNDAuOC0xMDYuNCAxMTIuNS0xMDYuNCAxOTR2MTM0aC04NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg2MzJjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTg2VjcwNmMwLTgxLjUtNDIuNC0xNTMuMi0xMDYuNC0xOTQgNjQtNDAuOCAxMDYuNC0xMTIuNSAxMDYuNC0xOTR6In19XX0sbmFtZToiaG91cmdsYXNzIix0aGVtZToiZmlsbGVkIn0sZnc9ZHcsdnc9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246Znd9KSl9LGh3PXQuZm9yd2FyZFJlZih2dyksbXc9aHcsZ3c9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTc0MiAzMThWMTg0aDg2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04SDE5NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg4NnYxMzRjMCA4MS41IDQyLjQgMTUzLjIgMTA2LjQgMTk0LTY0IDQwLjgtMTA2LjQgMTEyLjUtMTA2LjQgMTk0djEzNGgtODZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNjMyYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC04NlY3MDZjMC04MS41LTQyLjQtMTUzLjItMTA2LjQtMTk0IDY0LTQwLjggMTA2LjQtMTEyLjUgMTA2LjQtMTk0em0tNzIgMzg4djEzNEgzNTRWNzA2YzAtNDIuMiAxNi40LTgxLjkgNDYuMy0xMTEuN0M0MzAuMSA1NjQuNCA0NjkuOCA1NDggNTEyIDU0OHM4MS45IDE2LjQgMTExLjcgNDYuM0M2NTMuNiA2MjQuMSA2NzAgNjYzLjggNjcwIDcwNnptMC0zODhjMCA0Mi4yLTE2LjQgODEuOS00Ni4zIDExMS43QzU5My45IDQ1OS42IDU1NC4yIDQ3NiA1MTIgNDc2cy04MS45LTE2LjQtMTExLjctNDYuM0ExNTYuNjMgMTU2LjYzIDAgMDEzNTQgMzE4VjE4NGgzMTZ2MTM0eiJ9fV19LG5hbWU6ImhvdXJnbGFzcyIsdGhlbWU6Im91dGxpbmVkIn0scHc9Z3cseXc9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246cHd9KSl9LEN3PXQuZm9yd2FyZFJlZih5dyksYnc9Q3csU3c9e2ljb246ZnVuY3Rpb24oZix2KXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDU0OGMtNDIuMiAwLTgxLjkgMTYuNC0xMTEuNyA0Ni4zQTE1Ni42MyAxNTYuNjMgMCAwMDM1NCA3MDZ2MTM0aDMxNlY3MDZjMC00Mi4yLTE2LjQtODEuOS00Ni4zLTExMS43QTE1Ni42MyAxNTYuNjMgMCAwMDUxMiA1NDh6TTM1NCAzMThjMCA0Mi4yIDE2LjQgODEuOSA0Ni4zIDExMS43QzQzMC4xIDQ1OS42IDQ2OS44IDQ3NiA1MTIgNDc2czgxLjktMTYuNCAxMTEuNy00Ni4zQzY1My42IDM5OS45IDY3MCAzNjAuMiA2NzAgMzE4VjE4NEgzNTR2MTM0eiIsZmlsbDp2fX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik03NDIgMzE4VjE4NGg4NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOEgxOTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoODZ2MTM0YzAgODEuNSA0Mi40IDE1My4yIDEwNi40IDE5NC02NCA0MC44LTEwNi40IDExMi41LTEwNi40IDE5NHYxMzRoLTg2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDYzMmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtODZWNzA2YzAtODEuNS00Mi40LTE1My4yLTEwNi40LTE5NCA2NC00MC44IDEwNi40LTExMi41IDEwNi40LTE5NHptLTcyIDM4OHYxMzRIMzU0VjcwNmMwLTQyLjIgMTYuNC04MS45IDQ2LjMtMTExLjdDNDMwLjEgNTY0LjQgNDY5LjggNTQ4IDUxMiA1NDhzODEuOSAxNi40IDExMS43IDQ2LjNDNjUzLjYgNjI0LjEgNjcwIDY2My44IDY3MCA3MDZ6bTAtMzg4YzAgNDIuMi0xNi40IDgxLjktNDYuMyAxMTEuN0M1OTMuOSA0NTkuNiA1NTQuMiA0NzYgNTEyIDQ3NnMtODEuOS0xNi40LTExMS43LTQ2LjNBMTU2LjYzIDE1Ni42MyAwIDAxMzU0IDMxOFYxODRoMzE2djEzNHoiLGZpbGw6Zn19XX19LG5hbWU6ImhvdXJnbGFzcyIsdGhlbWU6InR3b3RvbmUifSxPdz1Tdyx4dz1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpPd30pKX0sd3c9dC5mb3J3YXJkUmVmKHh3KSxFdz13dyxUdz17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMTQ1LjIgOTZsNjYgNzQ2LjZMNTEyIDkyOGwyOTkuNi04NS40TDg3OC45IDk2SDE0NS4yem01OTUgMTc3LjFsLTQuOCA0Ny4yLTEuNyAxOS41SDM4Mi4zbDguMiA5NC4yaDMzNS4xbC0zLjMgMjQuMy0yMS4yIDI0Mi4yLTEuNyAxNi4yLTE4NyA1MS42di4zaC0xLjJsLS4zLjF2LS4xaC0uMWwtMTg4LjYtNTJMMzEwLjggNTcyaDkxLjFsNi41IDczLjIgMTAyLjQgMjcuN2guNGwxMDItMjcuNiAxMS40LTExOC42SDUxMC45di0uMUgzMDZsLTIyLjgtMjUzLjUtMS43LTI0LjNoNDYwLjNsLTEuNiAyNC4zeiJ9fV19LG5hbWU6Imh0bWw1Iix0aGVtZToiZmlsbGVkIn0sTXc9VHcsUnc9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246TXd9KSl9LEl3PXQuZm9yd2FyZFJlZihSdyksUHc9SXcsenc9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTE0NSA5Nmw2NiA3NDYuNkw1MTEuOCA5MjhsMjk5LjYtODUuNEw4NzguNyA5NkgxNDV6bTYxMC45IDcwMC42bC0yNDQuMSA2OS42LTI0NS4yLTY5LjYtNTYuNy02NDEuMmg2MDMuOGwtNTcuOCA2NDEuMnpNMjgxIDI0OWwxLjcgMjQuMyAyMi43IDI1My41aDIwNi41di0uMWgxMTIuOWwtMTEuNCAxMTguNUw1MTEgNjcyLjl2LjJoLS44bC0xMDIuNC0yNy43LTYuNS03My4yaC05MWwxMS4zIDE0NC43IDE4OC42IDUyaDEuN3YtLjRsMTg3LjctNTEuNyAxLjctMTYuMyAyMS4yLTI0Mi4yIDMuMi0yNC4zSDUxMXYuMkgzODkuOWwtOC4yLTk0LjJoMzUyLjFsMS43LTE5LjUgNC44LTQ3LjJMNzQyIDI0OUg1MTF6In19XX0sbmFtZToiaHRtbDUiLHRoZW1lOiJvdXRsaW5lZCJ9LEZ3PXp3LEF3PWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkZ3fSkpfSxMdz10LmZvcndhcmRSZWYoQXcpLFp3PUx3LCR3PXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTE0NSA5Nmw2NiA3NDYuNkw1MTEuOCA5MjhsMjk5LjYtODUuNEw4NzguNyA5NkgxNDV6bTYxMC45IDcwMC42bC0yNDQuMSA2OS42LTI0NS4yLTY5LjYtNTYuNy02NDEuMmg2MDMuOGwtNTcuOCA2NDEuMnoiLGZpbGw6Zn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMjA5LjkgMTU1LjRsNTYuNyA2NDEuMiAyNDUuMiA2OS42IDI0NC4xLTY5LjYgNTcuOC02NDEuMkgyMDkuOXptNTMwLjQgMTE3LjlsLTQuOCA0Ny4yLTEuNyAxOS41SDM4MS43bDguMiA5NC4ySDUxMXYtLjJoMjE0LjdsLTMuMiAyNC4zLTIxLjIgMjQyLjItMS43IDE2LjMtMTg3LjcgNTEuN3YuNGgtMS43bC0xODguNi01Mi0xMS4zLTE0NC43aDkxbDYuNSA3My4yIDEwMi40IDI3LjdoLjh2LS4ybDEwMi40LTI3LjcgMTEuNC0xMTguNUg1MTEuOXYuMUgzMDUuNGwtMjIuNy0yNTMuNUwyODEgMjQ5aDQ2MWwtMS43IDI0LjN6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTI4MSAyNDlsMS43IDI0LjMgMjIuNyAyNTMuNWgyMDYuNXYtLjFoMTEyLjlsLTExLjQgMTE4LjVMNTExIDY3Mi45di4yaC0uOGwtMTAyLjQtMjcuNy02LjUtNzMuMmgtOTFsMTEuMyAxNDQuNyAxODguNiA1MmgxLjd2LS40bDE4Ny43LTUxLjcgMS43LTE2LjMgMjEuMi0yNDIuMiAzLjItMjQuM0g1MTF2LjJIMzg5LjlsLTguMi05NC4yaDM1Mi4xbDEuNy0xOS41IDQuOC00Ny4yTDc0MiAyNDlINTExeiIsZmlsbDpmfX1dfX0sbmFtZToiaHRtbDUiLHRoZW1lOiJ0d290b25lIn0sSHc9JHcsRHc9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246SHd9KSl9LEJ3PXQuZm9yd2FyZFJlZihEdyksVnc9QncsTnc9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTM3MyA0MTFjLTI4LjUgMC01MS43IDIzLjMtNTEuNyA1MnMyMy4yIDUyIDUxLjcgNTIgNTEuNy0yMy4zIDUxLjctNTItMjMuMi01Mi01MS43LTUyem01NTUtMjUxSDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY2NDBjMCAxNy43IDE0LjMgMzIgMzIgMzJoODMyYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE5MmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNjA4IDQyMGMwLTQuNCAxLTggMi4zLThoMTIzLjRjMS4zIDAgMi4zIDMuNiAyLjMgOHY0OGMwIDQuNC0xIDgtMi4zIDhINjEwLjNjLTEuMyAwLTIuMy0zLjYtMi4zLTh2LTQ4em0tODYgMjUzaC00My45Yy00LjIgMC03LjYtMy4zLTcuOS03LjUtMy44LTUwLjUtNDYtOTAuNS05Ny4yLTkwLjVzLTkzLjQgNDAtOTcuMiA5MC41Yy0uMyA0LjItMy43IDcuNS03LjkgNy41SDIyNGE4IDggMCAwMS04LTguNGMyLjgtNTMuMyAzMi05OS43IDc0LjYtMTI2LjFhMTExLjggMTExLjggMCAwMS0yOS4xLTc1LjVjMC02MS45IDQ5LjktMTEyIDExMS40LTExMnMxMTEuNCA1MC4xIDExMS40IDExMmMwIDI5LjEtMTEgNTUuNS0yOS4xIDc1LjUgNDIuNyAyNi41IDcxLjggNzIuOCA3NC42IDEyNi4xLjQgNC42LTMuMiA4LjQtNy44IDguNHptMjc4LjktNTNINjE1LjFjLTMuOSAwLTcuMS0zLjYtNy4xLTh2LTQ4YzAtNC40IDMuMi04IDcuMS04aDE4NS43YzMuOSAwIDcuMSAzLjYgNy4xIDh2NDhoLjFjMCA0LjQtMy4yIDgtNy4xIDh6In19XX0sbmFtZToiaWRjYXJkIix0aGVtZToiZmlsbGVkIn0sanc9TncsVXc9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246and9KSl9LFd3PXQuZm9yd2FyZFJlZihVdyksa3c9V3csS3c9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkyOCAxNjBIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY0MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg4MzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNjMySDEzNlYyMzJoNzUydjU2MHpNNjEwLjMgNDc2aDEyMy40YzEuMyAwIDIuMy0zLjYgMi4zLTh2LTQ4YzAtNC40LTEtOC0yLjMtOEg2MTAuM2MtMS4zIDAtMi4zIDMuNi0yLjMgOHY0OGMwIDQuNCAxIDggMi4zIDh6bTQuOCAxNDRoMTg1LjdjMy45IDAgNy4xLTMuNiA3LjEtOHYtNDhjMC00LjQtMy4yLTgtNy4xLThINjE1LjFjLTMuOSAwLTcuMSAzLjYtNy4xIDh2NDhjMCA0LjQgMy4yIDggNy4xIDh6TTIyNCA2NzNoNDMuOWM0LjIgMCA3LjYtMy4zIDcuOS03LjUgMy44LTUwLjUgNDYtOTAuNSA5Ny4yLTkwLjVzOTMuNCA0MCA5Ny4yIDkwLjVjLjMgNC4yIDMuNyA3LjUgNy45IDcuNUg1MjJhOCA4IDAgMDA4LTguNGMtMi44LTUzLjMtMzItOTkuNy03NC42LTEyNi4xYTExMS44IDExMS44IDAgMDAyOS4xLTc1LjVjMC02MS45LTQ5LjktMTEyLTExMS40LTExMnMtMTExLjQgNTAuMS0xMTEuNCAxMTJjMCAyOS4xIDExIDU1LjUgMjkuMSA3NS41YTE1OC4wOSAxNTguMDkgMCAwMC03NC42IDEyNi4xYy0uNCA0LjYgMy4yIDguNCA3LjggOC40em0xNDktMjYyYzI4LjUgMCA1MS43IDIzLjMgNTEuNyA1MnMtMjMuMiA1Mi01MS43IDUyLTUxLjctMjMuMy01MS43LTUyIDIzLjItNTIgNTEuNy01MnoifX1dfSxuYW1lOiJpZGNhcmQiLHRoZW1lOiJvdXRsaW5lZCJ9LF93PUt3LEd3PWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOl93fSkpfSxZdz10LmZvcndhcmRSZWYoR3cpLFh3PVl3LFF3PXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkyOCAxNjBIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY0MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg4MzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNjMySDEzNlYyMzJoNzUydjU2MHoiLGZpbGw6Zn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMTM2IDc5Mmg3NTJWMjMySDEzNnY1NjB6bTQ3Mi0zNzJjMC00LjQgMS04IDIuMy04aDEyMy40YzEuMyAwIDIuMyAzLjYgMi4zIDh2NDhjMCA0LjQtMSA4LTIuMyA4SDYxMC4zYy0xLjMgMC0yLjMtMy42LTIuMy04di00OHptMCAxNDRjMC00LjQgMy4yLTggNy4xLThoMTg1LjdjMy45IDAgNy4xIDMuNiA3LjEgOHY0OGMwIDQuNC0zLjIgOC03LjEgOEg2MTUuMWMtMy45IDAtNy4xLTMuNi03LjEtOHYtNDh6TTIxNi4yIDY2NC42YzIuOC01My4zIDMxLjktOTkuNiA3NC42LTEyNi4xLTE4LjEtMjAtMjkuMS00Ni40LTI5LjEtNzUuNSAwLTYxLjkgNDkuOS0xMTIgMTExLjQtMTEyczExMS40IDUwLjEgMTExLjQgMTEyYzAgMjkuMS0xMSA1NS42LTI5LjEgNzUuNSA0Mi42IDI2LjQgNzEuOCA3Mi44IDc0LjYgMTI2LjFhOCA4IDAgMDEtOCA4LjRoLTQzLjljLTQuMiAwLTcuNi0zLjMtNy45LTcuNS0zLjgtNTAuNS00Ni05MC41LTk3LjItOTAuNXMtOTMuNCA0MC05Ny4yIDkwLjVjLS4zIDQuMi0zLjcgNy41LTcuOSA3LjVIMjI0Yy00LjYgMC04LjItMy44LTcuOC04LjR6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTMyMS4zIDQ2M2E1MS43IDUyIDAgMTAxMDMuNCAwIDUxLjcgNTIgMCAxMC0xMDMuNCAweiIsZmlsbDp2fX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02MTAuMyA0NzZoMTIzLjRjMS4zIDAgMi4zLTMuNiAyLjMtOHYtNDhjMC00LjQtMS04LTIuMy04SDYxMC4zYy0xLjMgMC0yLjMgMy42LTIuMyA4djQ4YzAgNC40IDEgOCAyLjMgOHptNC44IDE0NGgxODUuN2MzLjkgMCA3LjEtMy42IDcuMS04di00OGMwLTQuNC0zLjItOC03LjEtOEg2MTUuMWMtMy45IDAtNy4xIDMuNi03LjEgOHY0OGMwIDQuNCAzLjIgOCA3LjEgOHpNMjI0IDY3M2g0My45YzQuMiAwIDcuNi0zLjMgNy45LTcuNSAzLjgtNTAuNSA0Ni05MC41IDk3LjItOTAuNXM5My40IDQwIDk3LjIgOTAuNWMuMyA0LjIgMy43IDcuNSA3LjkgNy41SDUyMmE4IDggMCAwMDgtOC40Yy0yLjgtNTMuMy0zMi05OS43LTc0LjYtMTI2LjFhMTExLjggMTExLjggMCAwMDI5LjEtNzUuNWMwLTYxLjktNDkuOS0xMTItMTExLjQtMTEycy0xMTEuNCA1MC4xLTExMS40IDExMmMwIDI5LjEgMTEgNTUuNSAyOS4xIDc1LjVhMTU4LjA5IDE1OC4wOSAwIDAwLTc0LjYgMTI2LjFjLS40IDQuNiAzLjIgOC40IDcuOCA4LjR6bTE0OS0yNjJjMjguNSAwIDUxLjcgMjMuMyA1MS43IDUycy0yMy4yIDUyLTUxLjcgNTItNTEuNy0yMy4zLTUxLjctNTIgMjMuMi01MiA1MS43LTUyeiIsZmlsbDpmfX1dfX0sbmFtZToiaWRjYXJkIix0aGVtZToidHdvdG9uZSJ9LEp3PVF3LHF3PWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkp3fSkpfSxlRT10LmZvcndhcmRSZWYocXcpLHRFPWVFLG5FPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02OTMuNiAyODQuNGMtMjQgMC01MS4xIDExLjctNzIuNiAyMiA0Ni4zIDE4IDg2IDU3LjMgMTEyLjMgOTkuNiA3LjEtMTguOSAxNC42LTQ3LjkgMTQuNi02Ny45IDAtMzItMjIuOC01My43LTU0LjMtNTMuN3pNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTI1My45IDQ5Mi45SDQzNy4xYzAgMTAwLjQgMTQ0LjMgMTM2IDE5Ni44IDQ3LjRoMTIwLjhjLTMyLjYgOTEuNy0xMTkuNyAxNDYtMjE2LjggMTQ2LTM1LjEgMC03MC4zLS4xLTEwMS43LTE1LjYtODcuNCA0NC41LTE4MC4zIDU2LjYtMTgwLjMtNDIgMC00NS44IDIzLjItMTA3LjEgNDQtMTQ1QzMzNSA0ODQgMzgxLjMgNDIyLjggNDM1LjYgMzc0LjVjLTQzLjcgMTguOS05MS4xIDY2LjMtMTIyIDEwMS4yIDI1LjktMTEyLjggMTI5LjUtMTkzLjYgMjM3LjEtMTg2LjUgMTMwLTU5LjggMjA5LjctMzQuMSAyMDkuNyAzOC42IDAgMjcuNC0xMC42IDYzLjMtMjEuNCA4Ny45IDI1LjIgNDUuNSAzMy4zIDk3LjYgMjYuOSAxNDEuMnpNNTQwLjUgMzk5LjFjLTUzLjcgMC0xMDIgMzkuNy0xMDQgOTQuOWgyMDhjLTItNTUuMS01MC42LTk0LjktMTA0LTk0Ljl6TTMyMC42IDYwMi45Yy03MyAxNTIuNCAxMS41IDE3Mi4yIDEwMC4zIDEyMy4zLTQ2LjYtMjcuNS04Mi42LTcyLjItMTAwLjMtMTIzLjN6In19XX0sbmFtZToiaWUtY2lyY2xlIix0aGVtZToiZmlsbGVkIn0sckU9bkUsYUU9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246ckV9KSl9LG9FPXQuZm9yd2FyZFJlZihhRSksaUU9b0UsbEU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg1Mi42IDM2Ny42YzE2LjMtMzYuOSAzMi4xLTkwLjcgMzIuMS0xMzEuOCAwLTEwOS4xLTExOS41LTE0Ny42LTMxNC41LTU3LjktMTYxLjQtMTAuOC0zMTYuOCAxMTAuNS0zNTUuNiAyNzkuNyA0Ni4zLTUyLjMgMTE3LjQtMTIzLjQgMTgzLTE1MS43QzMxNi4xIDM3OC4zIDI0Ni43IDQ3MCAxOTQgNTY1LjZjLTMxLjEgNTYuOS02NiAxNDguOC02NiAyMTcuNSAwIDE0Ny45IDEzOS4zIDEyOS44IDI3MC40IDYzIDQ3LjEgMjMuMSA5OS44IDIzLjQgMTUyLjUgMjMuNCAxNDUuNyAwIDI3Ni40LTgxLjQgMzI1LjItMjE5SDY5NC45Yy03OC44IDEzMi45LTI5NS4yIDc5LjUtMjk1LjItNzEuMmg0OTMuMmM5LjYtNjUuNC0yLjUtMTQzLjYtNDAuMy0yMTEuN3pNMjI0LjggNjQ4LjNjMjYuNiA3Ni43IDgwLjYgMTQzLjggMTUwLjQgMTg1LTEzMy4xIDczLjQtMjU5LjkgNDMuNi0xNTAuNC0xODV6bTE3NC0xNjMuM2MzLTgyLjcgNzUuNC0xNDIuMyAxNTYtMTQyLjMgODAuMSAwIDE1MyA1OS42IDE1NiAxNDIuM2gtMzEyem0yNzYuOC0yODEuNGMzMi4xLTE1LjQgNzIuOC0zMyAxMDguOC0zMyA0Ny4xIDAgODEuNCAzMi42IDgxLjQgODAuNiAwIDMwLTExLjEgNzMuNS0yMS45IDEwMS44LTM5LjMtNjMuNS05OC45LTEyMi40LTE2OC4zLTE0OS40eiJ9fV19LG5hbWU6ImllIix0aGVtZToib3V0bGluZWQifSxzRT1sRSxjRT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpzRX0pKX0sdUU9dC5mb3J3YXJkUmVmKGNFKSxkRT11RSxmRT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek03NjUuOSA1NTYuOUg0MzcuMWMwIDEwMC40IDE0NC4zIDEzNiAxOTYuOCA0Ny40aDEyMC44Yy0zMi42IDkxLjctMTE5LjcgMTQ2LTIxNi44IDE0Ni0zNS4xIDAtNzAuMy0uMS0xMDEuNy0xNS42LTg3LjQgNDQuNS0xODAuMyA1Ni42LTE4MC4zLTQyIDAtNDUuOCAyMy4yLTEwNy4xIDQ0LTE0NUMzMzUgNDg0IDM4MS4zIDQyMi44IDQzNS42IDM3NC41Yy00My43IDE4LjktOTEuMSA2Ni4zLTEyMiAxMDEuMiAyNS45LTExMi44IDEyOS41LTE5My42IDIzNy4xLTE4Ni41IDEzMC01OS44IDIwOS43LTM0LjEgMjA5LjcgMzguNiAwIDI3LjQtMTAuNiA2My4zLTIxLjQgODcuOSAyNS4yIDQ1LjUgMzMuMyA5Ny42IDI2LjkgMTQxLjJ6bS03Mi4zLTI3Mi41Yy0yNCAwLTUxLjEgMTEuNy03Mi42IDIyIDQ2LjMgMTggODYgNTcuMyAxMTIuMyA5OS42IDcuMS0xOC45IDE0LjYtNDcuOSAxNC42LTY3LjkgMC0zMi0yMi44LTUzLjctNTQuMy01My43ek01NDAuNSAzOTkuMWMtNTMuNyAwLTEwMiAzOS43LTEwNCA5NC45aDIwOGMtMi01NS4xLTUwLjYtOTQuOS0xMDQtOTQuOXpNMzIwLjYgNjAyLjljLTczIDE1Mi40IDExLjUgMTcyLjIgMTAwLjMgMTIzLjMtNDYuNi0yNy41LTgyLjYtNzIuMi0xMDAuMy0xMjMuM3oifX1dfSxuYW1lOiJpZS1zcXVhcmUiLHRoZW1lOiJmaWxsZWQifSx2RT1mRSxoRT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjp2RX0pKX0sbUU9dC5mb3J3YXJkUmVmKGhFKSxnRT1tRSxwRT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnsiZmlsbC1ydWxlIjoiZXZlbm9kZCIsdmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCA5MTJIMTQ0Yy0xNy43IDAtMzItMTQuMy0zMi0zMlYxNDRjMC0xNy43IDE0LjMtMzIgMzItMzJoMzYwYzQuNCAwIDggMy42IDggOHY1NmMwIDQuNC0zLjYgOC04IDhIMTg0djY1Nmg2NTZWNTIwYzAtNC40IDMuNi04IDgtOGg1NmM0LjQgMCA4IDMuNiA4IDh2MzYwYzAgMTcuNy0xNC4zIDMyLTMyIDMyek02NTMuMyA0MjQuNmw1Mi4yIDUyLjJhOC4wMSA4LjAxIDAgMDEtNC43IDEzLjZsLTE3OS40IDIxYy01LjEuNi05LjUtMy43LTguOS04LjlsMjEtMTc5LjRjLjgtNi42IDguOS05LjQgMTMuNi00LjdsNTIuNCA1Mi40IDI1Ni4yLTI1Ni4yYzMuMS0zLjEgOC4yLTMuMSAxMS4zIDBsNDIuNCA0Mi40YzMuMSAzLjEgMy4xIDguMiAwIDExLjNMNjUzLjMgNDI0LjZ6In19XX0sbmFtZToiaW1wb3J0Iix0aGVtZToib3V0bGluZWQifSx5RT1wRSxDRT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjp5RX0pKX0sYkU9dC5mb3J3YXJkUmVmKENFKSxTRT1iRSxPRT1lKDY0MDgyKSx4RT1lKDc4ODYwKSx3RT1lKDQ1NjA1KSxFRT17aWNvbjpmdW5jdGlvbihmLHYpe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6IixmaWxsOmZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiAxNDBjLTIwNS40IDAtMzcyIDE2Ni42LTM3MiAzNzJzMTY2LjYgMzcyIDM3MiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzItMTY2LjYtMzcyLTM3Mi0zNzJ6bTMyIDU4OGMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LThWNDU2YzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh2Mjcyem0tMzItMzQ0YTQ4LjAxIDQ4LjAxIDAgMDEwLTk2IDQ4LjAxIDQ4LjAxIDAgMDEwIDk2eiIsZmlsbDp2fX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00NjQgMzM2YTQ4IDQ4IDAgMTA5NiAwIDQ4IDQ4IDAgMTAtOTYgMHptNzIgMTEyaC00OGMtNC40IDAtOCAzLjYtOCA4djI3MmMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04VjQ1NmMwLTQuNC0zLjYtOC04LTh6IixmaWxsOmZ9fV19fSxuYW1lOiJpbmZvLWNpcmNsZSIsdGhlbWU6InR3b3RvbmUifSxURT1FRSxNRT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpURX0pKX0sUkU9dC5mb3J3YXJkUmVmKE1FKSxJRT1SRSxQRT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNDQ4IDIyNGE2NCA2NCAwIDEwMTI4IDAgNjQgNjQgMCAxMC0xMjggMHptOTYgMTY4aC02NGMtNC40IDAtOCAzLjYtOCA4djQ2NGMwIDQuNCAzLjYgOCA4IDhoNjRjNC40IDAgOC0zLjYgOC04VjQwMGMwLTQuNC0zLjYtOC04LTh6In19XX0sbmFtZToiaW5mbyIsdGhlbWU6Im91dGxpbmVkIn0sekU9UEUsRkU9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246ekV9KSl9LEFFPXQuZm9yd2FyZFJlZihGRSksTEU9QUUsWkU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJkZWZzIixhdHRyczp7fSxjaGlsZHJlbjpbe3RhZzoic3R5bGUiLGF0dHJzOnt9fV19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODc4LjcgMzM2SDE0NS4zYy0xOC40IDAtMzMuMyAxNC4zLTMzLjMgMzJ2NDY0YzAgMTcuNyAxNC45IDMyIDMzLjMgMzJoNzMzLjNjMTguNCAwIDMzLjMtMTQuMyAzMy4zLTMyVjM2OGMuMS0xNy43LTE0LjgtMzItMzMuMi0zMnpNMzYwIDc5MkgxODRWNjMyaDE3NnYxNjB6bTAtMjI0SDE4NFY0MDhoMTc2djE2MHptMjQwIDIyNEg0MjRWNjMyaDE3NnYxNjB6bTAtMjI0SDQyNFY0MDhoMTc2djE2MHptMjQwIDIyNEg2NjRWNjMyaDE3NnYxNjB6bTAtMjI0SDY2NFY0MDhoMTc2djE2MHptNjQtNDA4SDEyMGMtNC40IDAtOCAzLjYtOCA4djgwYzAgNC40IDMuNiA4IDggOGg3ODRjNC40IDAgOC0zLjYgOC04di04MGMwLTQuNC0zLjYtOC04LTh6In19XX0sbmFtZToiaW5zZXJ0LXJvdy1hYm92ZSIsdGhlbWU6Im91dGxpbmVkIn0sJEU9WkUsSEU9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246JEV9KSl9LERFPXQuZm9yd2FyZFJlZihIRSksQkU9REUsVkU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJkZWZzIixhdHRyczp7fSxjaGlsZHJlbjpbe3RhZzoic3R5bGUiLGF0dHJzOnt9fV19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNOTA0IDc2OEgxMjBjLTQuNCAwLTggMy42LTggOHY4MGMwIDQuNCAzLjYgOCA4IDhoNzg0YzQuNCAwIDgtMy42IDgtOHYtODBjMC00LjQtMy42LTgtOC04em0tMjUuMy02MDhIMTQ1LjNjLTE4LjQgMC0zMy4zIDE0LjMtMzMuMyAzMnY0NjRjMCAxNy43IDE0LjkgMzIgMzMuMyAzMmg3MzMuM2MxOC40IDAgMzMuMy0xNC4zIDMzLjMtMzJWMTkyYy4xLTE3LjctMTQuOC0zMi0zMy4yLTMyek0zNjAgNjE2SDE4NFY0NTZoMTc2djE2MHptMC0yMjRIMTg0VjIzMmgxNzZ2MTYwem0yNDAgMjI0SDQyNFY0NTZoMTc2djE2MHptMC0yMjRINDI0VjIzMmgxNzZ2MTYwem0yNDAgMjI0SDY2NFY0NTZoMTc2djE2MHptMC0yMjRINjY0VjIzMmgxNzZ2MTYweiJ9fV19LG5hbWU6Imluc2VydC1yb3ctYmVsb3ciLHRoZW1lOiJvdXRsaW5lZCJ9LE5FPVZFLGpFPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOk5FfSkpfSxVRT10LmZvcndhcmRSZWYoakUpLFdFPVVFLGtFPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoiZGVmcyIsYXR0cnM6e30sY2hpbGRyZW46W3t0YWc6InN0eWxlIixhdHRyczp7fX1dfSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTI0OCAxMTJoLTgwYy00LjQgMC04IDMuNi04IDh2Nzg0YzAgNC40IDMuNiA4IDggOGg4MGM0LjQgMCA4LTMuNiA4LThWMTIwYzAtNC40LTMuNi04LTgtOHptNTg0IDBIMzY4Yy0xNy43IDAtMzIgMTQuOS0zMiAzMy4zdjczMy4zYzAgMTguNCAxNC4zIDMzLjMgMzIgMzMuM2g0NjRjMTcuNyAwIDMyLTE0LjkgMzItMzMuM1YxNDUuM2MwLTE4LjQtMTQuMy0zMy4zLTMyLTMzLjN6TTU2OCA4NDBINDA4VjY2NGgxNjB2MTc2em0wLTI0MEg0MDhWNDI0aDE2MHYxNzZ6bTAtMjQwSDQwOFYxODRoMTYwdjE3NnptMjI0IDQ4MEg2MzJWNjY0aDE2MHYxNzZ6bTAtMjQwSDYzMlY0MjRoMTYwdjE3NnptMC0yNDBINjMyVjE4NGgxNjB2MTc2eiJ9fV19LG5hbWU6Imluc2VydC1yb3ctbGVmdCIsdGhlbWU6Im91dGxpbmVkIn0sS0U9a0UsX0U9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246S0V9KSl9LEdFPXQuZm9yd2FyZFJlZihfRSksWUU9R0UsWEU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJkZWZzIixhdHRyczp7fSxjaGlsZHJlbjpbe3RhZzoic3R5bGUiLGF0dHJzOnt9fV19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODU2IDExMmgtODBjLTQuNCAwLTggMy42LTggOHY3ODRjMCA0LjQgMy42IDggOCA4aDgwYzQuNCAwIDgtMy42IDgtOFYxMjBjMC00LjQtMy42LTgtOC04em0tMjAwIDBIMTkyYy0xNy43IDAtMzIgMTQuOS0zMiAzMy4zdjczMy4zYzAgMTguNCAxNC4zIDMzLjMgMzIgMzMuM2g0NjRjMTcuNyAwIDMyLTE0LjkgMzItMzMuM1YxNDUuM2MwLTE4LjQtMTQuMy0zMy4zLTMyLTMzLjN6TTM5MiA4NDBIMjMyVjY2NGgxNjB2MTc2em0wLTI0MEgyMzJWNDI0aDE2MHYxNzZ6bTAtMjQwSDIzMlYxODRoMTYwdjE3NnptMjI0IDQ4MEg0NTZWNjY0aDE2MHYxNzZ6bTAtMjQwSDQ1NlY0MjRoMTYwdjE3NnptMC0yNDBINDU2VjE4NGgxNjB2MTc2eiJ9fV19LG5hbWU6Imluc2VydC1yb3ctcmlnaHQiLHRoZW1lOiJvdXRsaW5lZCJ9LFFFPVhFLEpFPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOlFFfSkpfSxxRT10LmZvcndhcmRSZWYoSkUpLGVUPXFFLHRUPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgMzc4LjdjLTczLjQgMC0xMzMuMyA1OS45LTEzMy4zIDEzMy4zUzQzOC42IDY0NS4zIDUxMiA2NDUuMyA2NDUuMyA1ODUuNCA2NDUuMyA1MTIgNTg1LjQgMzc4LjcgNTEyIDM3OC43ek05MTEuOCA1MTJjMC01NS4yLjUtMTA5LjktMi42LTE2NS0zLjEtNjQtMTcuNy0xMjAuOC02NC41LTE2Ny42LTQ2LjktNDYuOS0xMDMuNi02MS40LTE2Ny42LTY0LjUtNTUuMi0zLjEtMTA5LjktMi42LTE2NS0yLjYtNTUuMiAwLTEwOS45LS41LTE2NSAyLjYtNjQgMy4xLTEyMC44IDE3LjctMTY3LjYgNjQuNUMxMzIuNiAyMjYuMyAxMTguMSAyODMgMTE1IDM0N2MtMy4xIDU1LjItMi42IDEwOS45LTIuNiAxNjVzLS41IDEwOS45IDIuNiAxNjVjMy4xIDY0IDE3LjcgMTIwLjggNjQuNSAxNjcuNiA0Ni45IDQ2LjkgMTAzLjYgNjEuNCAxNjcuNiA2NC41IDU1LjIgMy4xIDEwOS45IDIuNiAxNjUgMi42IDU1LjIgMCAxMDkuOS41IDE2NS0yLjYgNjQtMy4xIDEyMC44LTE3LjcgMTY3LjYtNjQuNSA0Ni45LTQ2LjkgNjEuNC0xMDMuNiA2NC41LTE2Ny42IDMuMi01NS4xIDIuNi0xMDkuOCAyLjYtMTY1ek01MTIgNzE3LjFjLTExMy41IDAtMjA1LjEtOTEuNi0yMDUuMS0yMDUuMVMzOTguNSAzMDYuOSA1MTIgMzA2LjkgNzE3LjEgMzk4LjUgNzE3LjEgNTEyIDYyNS41IDcxNy4xIDUxMiA3MTcuMXptMjEzLjUtMzcwLjdjLTI2LjUgMC00Ny45LTIxLjQtNDcuOS00Ny45czIxLjQtNDcuOSA0Ny45LTQ3LjkgNDcuOSAyMS40IDQ3LjkgNDcuOWE0Ny44NCA0Ny44NCAwIDAxLTQ3LjkgNDcuOXoifX1dfSxuYW1lOiJpbnN0YWdyYW0iLHRoZW1lOiJmaWxsZWQifSxuVD10VCxyVD1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpuVH0pKX0sYVQ9dC5mb3J3YXJkUmVmKHJUKSxvVD1hVCxpVD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDMwNi45Yy0xMTMuNSAwLTIwNS4xIDkxLjYtMjA1LjEgMjA1LjFTMzk4LjUgNzE3LjEgNTEyIDcxNy4xIDcxNy4xIDYyNS41IDcxNy4xIDUxMiA2MjUuNSAzMDYuOSA1MTIgMzA2Ljl6bTAgMzM4LjRjLTczLjQgMC0xMzMuMy01OS45LTEzMy4zLTEzMy4zUzQzOC42IDM3OC43IDUxMiAzNzguNyA2NDUuMyA0MzguNiA2NDUuMyA1MTIgNTg1LjQgNjQ1LjMgNTEyIDY0NS4zem0yMTMuNS0zOTQuNmMtMjYuNSAwLTQ3LjkgMjEuNC00Ny45IDQ3LjlzMjEuNCA0Ny45IDQ3LjkgNDcuOSA0Ny45LTIxLjMgNDcuOS00Ny45YTQ3Ljg0IDQ3Ljg0IDAgMDAtNDcuOS00Ny45ek05MTEuOCA1MTJjMC01NS4yLjUtMTA5LjktMi42LTE2NS0zLjEtNjQtMTcuNy0xMjAuOC02NC41LTE2Ny42LTQ2LjktNDYuOS0xMDMuNi02MS40LTE2Ny42LTY0LjUtNTUuMi0zLjEtMTA5LjktMi42LTE2NS0yLjYtNTUuMiAwLTEwOS45LS41LTE2NSAyLjYtNjQgMy4xLTEyMC44IDE3LjctMTY3LjYgNjQuNUMxMzIuNiAyMjYuMyAxMTguMSAyODMgMTE1IDM0N2MtMy4xIDU1LjItMi42IDEwOS45LTIuNiAxNjVzLS41IDEwOS45IDIuNiAxNjVjMy4xIDY0IDE3LjcgMTIwLjggNjQuNSAxNjcuNiA0Ni45IDQ2LjkgMTAzLjYgNjEuNCAxNjcuNiA2NC41IDU1LjIgMy4xIDEwOS45IDIuNiAxNjUgMi42IDU1LjIgMCAxMDkuOS41IDE2NS0yLjYgNjQtMy4xIDEyMC44LTE3LjcgMTY3LjYtNjQuNSA0Ni45LTQ2LjkgNjEuNC0xMDMuNiA2NC41LTE2Ny42IDMuMi01NS4xIDIuNi0xMDkuOCAyLjYtMTY1em0tODggMjM1LjhjLTcuMyAxOC4yLTE2LjEgMzEuOC0zMC4yIDQ1LjgtMTQuMSAxNC4xLTI3LjYgMjIuOS00NS44IDMwLjJDNjk1LjIgODQ0LjcgNTcwLjMgODQwIDUxMiA4NDBjLTU4LjMgMC0xODMuMyA0LjctMjM1LjktMTYuMS0xOC4yLTcuMy0zMS44LTE2LjEtNDUuOC0zMC4yLTE0LjEtMTQuMS0yMi45LTI3LjYtMzAuMi00NS44QzE3OS4zIDY5NS4yIDE4NCA1NzAuMyAxODQgNTEyYzAtNTguMy00LjctMTgzLjMgMTYuMS0yMzUuOSA3LjMtMTguMiAxNi4xLTMxLjggMzAuMi00NS44czI3LjYtMjIuOSA0NS44LTMwLjJDMzI4LjcgMTc5LjMgNDUzLjcgMTg0IDUxMiAxODRzMTgzLjMtNC43IDIzNS45IDE2LjFjMTguMiA3LjMgMzEuOCAxNi4xIDQ1LjggMzAuMiAxNC4xIDE0LjEgMjIuOSAyNy42IDMwLjIgNDUuOEM4NDQuNyAzMjguNyA4NDAgNDUzLjcgODQwIDUxMmMwIDU4LjMgNC43IDE4My4yLTE2LjIgMjM1Ljh6In19XX0sbmFtZToiaW5zdGFncmFtIix0aGVtZToib3V0bGluZWQifSxsVD1pVCxzVD1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpsVH0pKX0sY1Q9dC5mb3J3YXJkUmVmKHNUKSx1VD1jVCxkVD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTE5LjkgMzU4LjhoOTcuOXY0MS42aC05Ny45em0zNDctMTg4LjlMNTI3LjEgNTQuMUM1MjMgNTIuNyA1MTcuNSA1MiA1MTIgNTJzLTExIC43LTE1LjEgMi4xTDE1Ny4xIDE2OS45Yy04LjMgMi44LTE1LjEgMTIuNC0xNS4xIDIxLjJ2NDgyLjRjMCA4LjggNS43IDIwLjQgMTIuNiAyNS45TDQ5OS4zIDk2OGMzLjUgMi43IDggNC4xIDEyLjYgNC4xczkuMi0xLjQgMTIuNi00LjFsMzQ0LjctMjY4LjZjNi45LTUuNCAxMi42LTE3IDEyLjYtMjUuOVYxOTEuMWMuMi04LjgtNi42LTE4LjMtMTQuOS0yMS4yek00MTEuMyA2NTZoLS4yYzAgNC40LTMuNiA4LTggOGgtMzcuM2MtNC40IDAtOC0zLjYtOC04VjQ3MS40Yy03LjcgOS4yLTE1LjQgMTcuOS0yMy4xIDI2YTYuMDQgNi4wNCAwIDAxLTEwLjItMi40bC0xMy4yLTQzLjVjLS42LTItLjItNC4xIDEuMi01LjYgMzctNDMuNCA2NC43LTk1LjEgODIuMi0xNTMuNiAxLjEtMy41IDUtNS4zIDguNC0zLjdsMzguNiAxOC4zYzIuNyAxLjMgNC4xIDQuNCAzLjIgNy4yYTQyOS4yIDQyOS4yIDAgMDEtMzMuNiA3OVY2NTZ6bTI5Ni41LTQ5LjJsLTI2LjMgMzUuM2E1LjkyIDUuOTIgMCAwMS04LjkuN2MtMzAuNi0yOS4zLTU2LjgtNjUuMi03OC4xLTEwNi45VjY1NmMwIDQuNC0zLjYgOC04IDhoLTM2LjJjLTQuNCAwLTgtMy42LTgtOFY1MzZjLTIyIDQ0LjctNDkgODAuOC04MC42IDEwNy42YTUuOSA1LjkgMCAwMS04LjktMS40TDQzMCA2MDUuN2E2IDYgMCAwMTEuNi04LjFjMjguNi0yMC4zIDUxLjktNDUuMiA3MS03NmgtNTUuMWMtNC40IDAtOC0zLjYtOC04VjQ3OGMwLTQuNCAzLjYtOCA4LThoOTQuOXYtMTguNmgtNjUuOWMtNC40IDAtOC0zLjYtOC04VjMxNmMwLTQuNCAzLjYtOCA4LThoMTg0LjdjNC40IDAgOCAzLjYgOCA4djEyNy4yYzAgNC40LTMuNiA4LTggOGgtNjYuN3YxOC42aDk4LjhjNC40IDAgOCAzLjYgOCA4djM1LjZjMCA0LjQtMy42IDgtOCA4aC01OWMxOC4xIDI5LjEgNDEuOCA1NC4zIDcyLjMgNzYuOSAyLjYgMi4xIDMuMiA1LjkgMS4yIDguNXoifX1dfSxuYW1lOiJpbnN1cmFuY2UiLHRoZW1lOiJmaWxsZWQifSxmVD1kVCx2VD1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpmVH0pKX0saFQ9dC5mb3J3YXJkUmVmKHZUKSxtVD1oVCxnVD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNDQxLjYgMzA2LjhMNDAzIDI4OC42YTYuMSA2LjEgMCAwMC04LjQgMy43Yy0xNy41IDU4LjUtNDUuMiAxMTAuMS04Mi4yIDE1My42YTYuMDUgNi4wNSAwIDAwLTEuMiA1LjZsMTMuMiA0My41YzEuMyA0LjQgNyA1LjcgMTAuMiAyLjQgNy43LTguMSAxNS40LTE2LjkgMjMuMS0yNlY2NTZjMCA0LjQgMy42IDggOCA4SDQwM2M0LjQgMCA4LTMuNiA4LThWMzkzLjFhNDI5LjIgNDI5LjIgMCAwMDMzLjYtNzljMS0yLjktLjMtNi0zLTcuM3ptMjYuOCA5LjJ2MTI3LjJjMCA0LjQgMy42IDggOCA4aDY1Ljl2MTguNmgtOTQuOWMtNC40IDAtOCAzLjYtOCA4djM1LjZjMCA0LjQgMy42IDggOCA4aDU1LjFjLTE5LjEgMzAuOC00Mi40IDU1LjctNzEgNzZhNiA2IDAgMDAtMS42IDguMWwyMi44IDM2LjVjMS45IDMuMSA2LjIgMy44IDguOSAxLjQgMzEuNi0yNi44IDU4LjctNjIuOSA4MC42LTEwNy42djEyMGMwIDQuNCAzLjYgOCA4IDhoMzYuMmM0LjQgMCA4LTMuNiA4LThWNTM2YzIxLjMgNDEuNyA0Ny41IDc3LjUgNzguMSAxMDYuOSAyLjYgMi41IDYuOCAyLjEgOC45LS43bDI2LjMtMzUuM2MyLTIuNyAxLjQtNi41LTEuMi04LjQtMzAuNS0yMi42LTU0LjItNDcuOC03Mi4zLTc2LjloNTljNC40IDAgOC0zLjYgOC04VjQ3OGMwLTQuNC0zLjYtOC04LThoLTk4Ljh2LTE4LjZoNjYuN2M0LjQgMCA4LTMuNiA4LThWMzE2YzAtNC40LTMuNi04LTgtOEg0NzYuNGMtNC40IDAtOCAzLjYtOCA4em01MS41IDQyLjhoOTcuOXY0MS42aC05Ny45di00MS42em0zNDctMTg4LjlMNTI3LjEgNTQuMUM1MjMgNTIuNyA1MTcuNSA1MiA1MTIgNTJzLTExIC43LTE1LjEgMi4xTDE1Ny4xIDE2OS45Yy04LjMgMi44LTE1LjEgMTIuNC0xNS4xIDIxLjJ2NDgyLjRjMCA4LjggNS43IDIwLjQgMTIuNiAyNS45TDQ5OS4zIDk2OGMzLjUgMi43IDggNC4xIDEyLjYgNC4xczkuMi0xLjQgMTIuNi00LjFsMzQ0LjctMjY4LjZjNi45LTUuNCAxMi42LTE3IDEyLjYtMjUuOVYxOTEuMWMuMi04LjgtNi42LTE4LjMtMTQuOS0yMS4yek04MTAgNjU0LjNMNTEyIDg4Ni41IDIxNCA2NTQuM1YyMjYuN2wyOTgtMTAxLjYgMjk4IDEwMS42djQyNy42eiJ9fV19LG5hbWU6Imluc3VyYW5jZSIsdGhlbWU6Im91dGxpbmVkIn0scFQ9Z1QseVQ9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246cFR9KSl9LENUPXQuZm9yd2FyZFJlZih5VCksYlQ9Q1QsU1Q9e2ljb246ZnVuY3Rpb24oZix2KXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODY2LjkgMTY5LjlMNTI3LjEgNTQuMUM1MjMgNTIuNyA1MTcuNSA1MiA1MTIgNTJzLTExIC43LTE1LjEgMi4xTDE1Ny4xIDE2OS45Yy04LjMgMi44LTE1LjEgMTIuNC0xNS4xIDIxLjJ2NDgyLjRjMCA4LjggNS43IDIwLjQgMTIuNiAyNS45TDQ5OS4zIDk2OGMzLjUgMi43IDggNC4xIDEyLjYgNC4xczkuMi0xLjQgMTIuNi00LjFsMzQ0LjctMjY4LjZjNi45LTUuNCAxMi42LTE3IDEyLjYtMjUuOVYxOTEuMWMuMi04LjgtNi42LTE4LjMtMTQuOS0yMS4yek04MTAgNjU0LjNMNTEyIDg4Ni41IDIxNCA2NTQuM1YyMjYuN2wyOTgtMTAxLjYgMjk4IDEwMS42djQyNy42eiIsZmlsbDpmfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MjEuOSAzNTguOGg5Ny45djQxLjZoLTk3Ljl6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTIxNCAyMjYuN3Y0MjcuNmwyOTggMjMyLjIgMjk4LTIzMi4yVjIyNi43TDUxMiAxMjUuMSAyMTQgMjI2Ljd6TTQxMy4zIDY1NmgtLjJjMCA0LjQtMy42IDgtOCA4aC0zNy4zYy00LjQgMC04LTMuNi04LThWNDcxLjRjLTcuNyA5LjItMTUuNCAxNy45LTIzLjEgMjZhNi4wNCA2LjA0IDAgMDEtMTAuMi0yLjRsLTEzLjItNDMuNWMtLjYtMi0uMi00LjEgMS4yLTUuNiAzNy00My40IDY0LjctOTUuMSA4Mi4yLTE1My42IDEuMS0zLjUgNS01LjMgOC40LTMuN2wzOC42IDE4LjNjMi43IDEuMyA0LjEgNC40IDMuMiA3LjJhNDI5LjIgNDI5LjIgMCAwMS0zMy42IDc5VjY1NnptMjU3LjktMzQwdjEyNy4yYzAgNC40LTMuNiA4LTggOGgtNjYuN3YxOC42aDk4LjhjNC40IDAgOCAzLjYgOCA4djM1LjZjMCA0LjQtMy42IDgtOCA4aC01OWMxOC4xIDI5LjEgNDEuOCA1NC4zIDcyLjMgNzYuOSAyLjYgMi4xIDMuMiA1LjkgMS4yIDguNWwtMjYuMyAzNS4zYTUuOTIgNS45MiAwIDAxLTguOS43Yy0zMC42LTI5LjMtNTYuOC02NS4yLTc4LjEtMTA2LjlWNjU2YzAgNC40LTMuNiA4LTggOGgtMzYuMmMtNC40IDAtOC0zLjYtOC04VjUzNmMtMjIgNDQuNy00OSA4MC44LTgwLjYgMTA3LjZhNi4zOCA2LjM4IDAgMDEtNC44IDEuNGMtMS43LS4zLTMuMi0xLjMtNC4xLTIuOEw0MzIgNjA1LjdhNiA2IDAgMDExLjYtOC4xYzI4LjYtMjAuMyA1MS45LTQ1LjIgNzEtNzZoLTU1LjFjLTQuNCAwLTgtMy42LTgtOFY0NzhjMC00LjQgMy42LTggOC04aDk0Ljl2LTE4LjZoLTY1LjljLTQuNCAwLTgtMy42LTgtOFYzMTZjMC00LjQgMy42LTggOC04aDE4NC43YzQuNCAwIDggMy42IDggOHoiLGZpbGw6dn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNDQzLjcgMzA2LjlsLTM4LjYtMTguM2MtMy40LTEuNi03LjMuMi04LjQgMy43LTE3LjUgNTguNS00NS4yIDExMC4yLTgyLjIgMTUzLjZhNS43IDUuNyAwIDAwLTEuMiA1LjZsMTMuMiA0My41YzEuNCA0LjUgNyA1LjggMTAuMiAyLjQgNy43LTguMSAxNS40LTE2LjggMjMuMS0yNlY2NTZjMCA0LjQgMy42IDggOCA4aDM3LjNjNC40IDAgOC0zLjYgOC04aC4yVjM5My4xYTQyOS4yIDQyOS4yIDAgMDAzMy42LTc5Yy45LTIuOC0uNS01LjktMy4yLTcuMnptMjYuOCA5LjF2MTI3LjRjMCA0LjQgMy42IDggOCA4aDY1LjlWNDcwaC05NC45Yy00LjQgMC04IDMuNi04IDh2MzUuNmMwIDQuNCAzLjYgOCA4IDhoNTUuMWMtMTkuMSAzMC44LTQyLjQgNTUuNy03MSA3NmE2IDYgMCAwMC0xLjYgOC4xbDIyLjggMzYuNWMuOSAxLjUgMi40IDIuNSA0LjEgMi44IDEuNy4zIDMuNS0uMiA0LjgtMS40IDMxLjYtMjYuOCA1OC42LTYyLjkgODAuNi0xMDcuNnYxMjBjMCA0LjQgMy42IDggOCA4aDM2LjJjNC40IDAgOC0zLjYgOC04VjUzNS45YzIxLjMgNDEuNyA0Ny41IDc3LjYgNzguMSAxMDYuOSAyLjYgMi41IDYuNyAyLjIgOC45LS43bDI2LjMtMzUuM2MyLTIuNiAxLjQtNi40LTEuMi04LjUtMzAuNS0yMi42LTU0LjItNDcuOC03Mi4zLTc2LjloNTljNC40IDAgOC0zLjYgOC04di0zNS42YzAtNC40LTMuNi04LTgtOGgtOTguOHYtMTguNmg2Ni43YzQuNCAwIDgtMy42IDgtOFYzMTZjMC00LjQtMy42LTgtOC04SDQ3OC41Yy00LjQgMC04IDMuNi04IDh6bTUxLjQgNDIuOGg5Ny45djQxLjZoLTk3Ljl2LTQxLjZ6IixmaWxsOmZ9fV19fSxuYW1lOiJpbnN1cmFuY2UiLHRoZW1lOiJ0d290b25lIn0sT1Q9U1QseFQ9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246T1R9KSl9LHdUPXQuZm9yd2FyZFJlZih4VCksRVQ9d1QsVFQ9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNzI2IDU4NS43YzAgNTUuMy00NC43IDEwMC4xLTk5LjcgMTAwLjFINDIwLjZ2NTMuNGMwIDUuNy02LjUgOC44LTEwLjkgNS4zbC0xMDkuMS04NS43Yy0zLjUtMi43LTMuNS04IDAtMTAuN2wxMDkuMS04NS43YzQuNC0zLjUgMTAuOS0uMyAxMC45IDUuM3Y1My40aDIwNS43YzE5LjYgMCAzNS41LTE2IDM1LjUtMzUuNnYtNzguOWMwLTMuNyAzLTYuOCA2LjgtNi44aDUwLjdjMy43IDAgNi44IDMgNi44IDYuOHY3OS4xem0tMi42LTIwOS45bC0xMDkuMSA4NS43Yy00LjQgMy41LTEwLjkuMy0xMC45LTUuM3YtNTMuNEgzOTcuN2MtMTkuNiAwLTM1LjUgMTYtMzUuNSAzNS42djc4LjljMCAzLjctMyA2LjgtNi44IDYuOGgtNTAuN2MtMy43IDAtNi44LTMtNi44LTYuOHYtNzguOWMwLTU1LjMgNDQuNy0xMDAuMSA5OS43LTEwMC4xaDIwNS43di01My40YzAtNS43IDYuNS04LjggMTAuOS01LjNsMTA5LjEgODUuN2MzLjYgMi41IDMuNiA3LjguMSAxMC41eiJ9fV19LG5hbWU6ImludGVyYWN0aW9uIix0aGVtZToiZmlsbGVkIn0sTVQ9VFQsUlQ9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246TVR9KSl9LElUPXQuZm9yd2FyZFJlZihSVCksUFQ9SVQselQ9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6TTMwNC44IDUyNGg1MC43YzMuNyAwIDYuOC0zIDYuOC02Ljh2LTc4LjljMC0xOS43IDE1LjktMzUuNiAzNS41LTM1LjZoMjA1Ljd2NTMuNGMwIDUuNyA2LjUgOC44IDEwLjkgNS4zbDEwOS4xLTg1LjdjMy41LTIuNyAzLjUtOCAwLTEwLjdsLTEwOS4xLTg1LjdjLTQuNC0zLjUtMTAuOS0uMy0xMC45IDUuM1YzMzhIMzk3LjdjLTU1LjEgMC05OS43IDQ0LjgtOTkuNyAxMDAuMVY1MTdjMCA0IDMgNyA2LjggN3ptLTQuMiAxMzQuOWwxMDkuMSA4NS43YzQuNCAzLjUgMTAuOS4zIDEwLjktNS4zdi01My40aDIwNS43YzU1LjEgMCA5OS43LTQ0LjggOTkuNy0xMDAuMXYtNzguOWMwLTMuNy0zLTYuOC02LjgtNi44aC01MC43Yy0zLjcgMC02LjggMy02LjggNi44djc4LjljMCAxOS43LTE1LjkgMzUuNi0zNS41IDM1LjZINDIwLjZWNTY4YzAtNS43LTYuNS04LjgtMTAuOS01LjNsLTEwOS4xIDg1LjdjLTMuNSAyLjUtMy41IDcuOCAwIDEwLjV6In19XX0sbmFtZToiaW50ZXJhY3Rpb24iLHRoZW1lOiJvdXRsaW5lZCJ9LEZUPXpULEFUPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkZUfSkpfSxMVD10LmZvcndhcmRSZWYoQVQpLFpUPUxULCRUPXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6IixmaWxsOmZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTE4NCA4NDBoNjU2VjE4NEgxODR2NjU2em0xMTQtNDAxLjljMC01NS4zIDQ0LjYtMTAwLjEgOTkuNy0xMDAuMWgyMDUuOHYtNTMuNGMwLTUuNiA2LjUtOC44IDEwLjktNS4zTDcyMy41IDM2NWMzLjUgMi43IDMuNSA4IDAgMTAuN2wtMTA5LjEgODUuN2MtNC40IDMuNS0xMC45LjQtMTAuOS01LjN2LTUzLjRIMzk3LjhjLTE5LjYgMC0zNS41IDE1LjktMzUuNSAzNS42djc4LjljMCAzLjgtMy4xIDYuOC02LjggNi44aC01MC43Yy0zLjggMC02LjgtMy02LjgtN3YtNzguOXptMi42IDIxMC4zbDEwOS4xLTg1LjdjNC40LTMuNSAxMC45LS40IDEwLjkgNS4zdjUzLjRoMjA1LjZjMTkuNiAwIDM1LjUtMTUuOSAzNS41LTM1LjZ2LTc4LjljMC0zLjggMy4xLTYuOCA2LjgtNi44aDUwLjdjMy44IDAgNi44IDMuMSA2LjggNi44djc4LjljMCA1NS4zLTQ0LjYgMTAwLjEtOTkuNyAxMDAuMUg0MjAuNnY1My40YzAgNS42LTYuNSA4LjgtMTAuOSA1LjNsLTEwOS4xLTg1LjdjLTMuNS0yLjctMy41LTggMC0xMC41eiIsZmlsbDp2fX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0zMDQuOCA1MjRoNTAuN2MzLjcgMCA2LjgtMyA2LjgtNi44di03OC45YzAtMTkuNyAxNS45LTM1LjYgMzUuNS0zNS42aDIwNS43djUzLjRjMCA1LjcgNi41IDguOCAxMC45IDUuM2wxMDkuMS04NS43YzMuNS0yLjcgMy41LTggMC0xMC43bC0xMDkuMS04NS43Yy00LjQtMy41LTEwLjktLjMtMTAuOSA1LjNWMzM4SDM5Ny43Yy01NS4xIDAtOTkuNyA0NC44LTk5LjcgMTAwLjFWNTE3YzAgNCAzIDcgNi44IDd6bS00LjIgMTM0LjlsMTA5LjEgODUuN2M0LjQgMy41IDEwLjkuMyAxMC45LTUuM3YtNTMuNGgyMDUuN2M1NS4xIDAgOTkuNy00NC44IDk5LjctMTAwLjF2LTc4LjljMC0zLjctMy02LjgtNi44LTYuOGgtNTAuN2MtMy43IDAtNi44IDMtNi44IDYuOHY3OC45YzAgMTkuNy0xNS45IDM1LjYtMzUuNSAzNS42SDQyMC42VjU2OGMwLTUuNy02LjUtOC44LTEwLjktNS4zbC0xMDkuMSA4NS43Yy0zLjUgMi41LTMuNSA3LjggMCAxMC41eiIsZmlsbDpmfX1dfX0sbmFtZToiaW50ZXJhY3Rpb24iLHRoZW1lOiJ0d290b25lIn0sSFQ9JFQsRFQ9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246SFR9KSl9LEJUPXQuZm9yd2FyZFJlZihEVCksVlQ9QlQsTlQ9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQ2NCA2ODhhNDggNDggMCAxMDk2IDAgNDggNDggMCAxMC05NiAwem03Mi0xMTJjNC40IDAgOC0zLjYgOC04VjI5NmMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2MjcyYzAgNC40IDMuNiA4IDggOGg0OHptNDAwLTE4OGgtNTkuM2MtMi42IDAtNSAxLjItNi41IDMuM0w3NjMuNyA1MzguMWwtNDkuOS02OC44YTcuOTIgNy45MiAwIDAwLTYuNS0zLjNINjQ4Yy02LjUgMC0xMC4zIDcuNC02LjUgMTIuN2wxMDkuMiAxNTAuN2ExNi4xIDE2LjEgMCAwMDI2IDBsMTY1LjgtMjI4LjdjMy44LTUuMyAwLTEyLjctNi41LTEyLjd6bS00NCAzMDZoLTY0LjJjLTUuNSAwLTEwLjYgMi45LTEzLjYgNy41YTM1Mi4yIDM1Mi4yIDAgMDEtNDkuOCA2Mi4yQTM1NS45MiAzNTUuOTIgMCAwMTY1MS4xIDg0MGEzNTUgMzU1IDAgMDEtMTM4LjcgMjcuOWMtNDguMSAwLTk0LjgtOS40LTEzOC43LTI3LjlhMzU1LjkyIDM1NS45MiAwIDAxLTExMy4zLTc2LjNBMzUzLjA2IDM1My4wNiAwIDAxMTg0IDY1MC41Yy0xOC42LTQzLjgtMjgtOTAuNS0yOC0xMzguNXM5LjQtOTQuNyAyOC0xMzguNWMxNy45LTQyLjQgNDMuNi04MC41IDc2LjQtMTEzLjIgMzIuOC0zMi43IDcwLjktNTguNCAxMTMuMy03Ni4zYTM1NSAzNTUgMCAwMTEzOC43LTI3LjljNDguMSAwIDk0LjggOS40IDEzOC43IDI3LjkgNDIuNCAxNy45IDgwLjUgNDMuNiAxMTMuMyA3Ni4zIDE5IDE5IDM1LjYgMzkuOCA0OS44IDYyLjIgMi45IDQuNyA4LjEgNy41IDEzLjYgNy41SDg5MmM2IDAgOS44LTYuMyA3LjItMTEuNkM4MjguOCAxNzguNSA2ODQuNyA4MiA1MTcuNyA4MCAyNzguOSA3Ny4yIDgwLjUgMjcyLjUgODAgNTExLjIgNzkuNSA3NTAuMSAyNzMuMyA5NDQgNTEyLjQgOTQ0YzE2OS4yIDAgMzE1LjYtOTcgMzg2LjctMjM4LjRBOCA4IDAgMDA4OTIgNjk0eiJ9fV19LG5hbWU6Imlzc3Vlcy1jbG9zZSIsdGhlbWU6Im91dGxpbmVkIn0salQ9TlQsVVQ9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246alR9KSl9LFdUPXQuZm9yd2FyZFJlZihVVCksa1Q9V1QsS1Q9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTc5OCAxNjBIMzY2Yy00LjQgMC04IDMuNi04IDh2NjRjMCA0LjQgMy42IDggOCA4aDE4MS4ybC0xNTYgNTQ0SDIyOWMtNC40IDAtOCAzLjYtOCA4djY0YzAgNC40IDMuNiA4IDggOGg0MzJjNC40IDAgOC0zLjYgOC04di02NGMwLTQuNC0zLjYtOC04LThINDc0LjRsMTU2LTU0NEg3OThjNC40IDAgOC0zLjYgOC04di02NGMwLTQuNC0zLjYtOC04LTh6In19XX0sbmFtZToiaXRhbGljIix0aGVtZToib3V0bGluZWQifSxfVD1LVCxHVD1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpfVH0pKX0sWVQ9dC5mb3J3YXJkUmVmKEdUKSxYVD1ZVCxRVD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnsiZmlsbC1ydWxlIjoiZXZlbm9kZCIsdmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTM5NC42OCA3NTYuOTlzLTM0LjMzIDE5Ljk1IDI0LjM0IDI2LjZjNzEuMSA4LjA1IDEwNy4zNSA3IDE4NS42NC03Ljg3IDAgMCAyMC42NiAxMi45NCA0OS4zOCAyNC4xNC0xNzUuNDcgNzUuMDgtMzk3LjE4LTQuMzctMjU5LjM2LTQyLjg3bS0yMS4zNy05OC4xN3MtMzguMzUgMjguMzUgMjAuMzIgMzQuNDdjNzUuODMgNy44OCAxMzUuOSA4LjQgMjM5LjU3LTExLjU1IDAgMCAxNC4zNiAxNC41MyAzNi45NSAyMi40LTIxMi40MyA2Mi4xMy00NDguODQgNS4wOC0yOTYuODQtNDUuMzJtMTgwLjczLTE2Ni40M2M0My4yNiA0OS43LTExLjM4IDk0LjUtMTEuMzggOTQuNXMxMDkuOC01Ni43IDU5LjM3LTEyNy41N2MtNDcuMTEtNjYuMTUtODMuMTktOTkuMDUgMTEyLjI1LTIxMi4yNy4xOCAwLTMwNi44MiA3Ni42NS0xNjAuMjQgMjQ1LjM1bTIzMi4yMiAzMzcuMDRzMjUuNCAyMC44Mi0yNy44NSAzNy4xYy0xMDEuNCAzMC42Mi00MjEuNyAzOS45LTUxMC42NiAxLjIyLTMyLjA1LTEzLjgyIDI4LjAyLTMzLjI1IDQ2LjkzLTM3LjI3IDE5LjYyLTQuMiAzMS0zLjUgMzEtMy41LTM1LjU1LTI1LjAzLTIyOS45NCA0OS4xNy05OC43NyA3MC4zNSAzNTcuNiA1OC4xIDY1Mi4xNi0yNi4wOCA1NTkuMzUtNjcuOW0tMzc1LjEyLTI3Mi4zcy0xNjMuMDQgMzguNjgtNTcuNzkgNTIuNjhjNDQuNDggNS45NSAxMzMuMSA0LjU1IDIxNS41OC0yLjI4IDY3LjQyLTUuNiAxMzUuMi0xNy44NSAxMzUuMi0xNy44NXMtMjMuODIgMTAuMTUtNDAuOTggMjEuODhjLTE2NS41IDQzLjU3LTQ4NS4xIDIzLjI3LTM5My4xNi0yMS4xOCA3Ny45My0zNy40NSAxNDEuMTUtMzMuMjUgMTQxLjE1LTMzLjI1TTcwMy42IDcyMC40MmMxNjguMy04Ny4zMyA5MC4zNy0xNzEuMzMgMzYuMDgtMTU5Ljk1LTEzLjMxIDIuOC0xOS4yNyA1LjI1LTE5LjI3IDUuMjVzNC45LTcuNyAxNC4zNi0xMS4wM0M4NDIuMTIgNTE2LjkgOTI0Ljc4IDY2NiA3MDAuMSA3MjQuOTdjMC0uMTggMi42My0yLjQ1IDMuNS00LjU1TTYwMi4wMyA2NHM5My4xNiA5My4xLTg4LjQ0IDIzNi4yNWMtMTQ1LjUzIDExNC44LTMzLjI3IDE4MC40MiAwIDI1NS4xNC04NC45NC03Ni42NS0xNDcuMjgtMTQ0LjAyLTEwNS40Mi0yMDYuODRDNDY5LjYzIDI1Ni42NyA2MzkuNjggMjExLjg3IDYwMi4wMyA2NE00MjcuNzggOTU3LjE5QzU4OS4yNCA5NjcuNSA4MzcuMjIgOTUxLjQgODQzIDg3NS4xYzAgMC0xMS4yIDI4Ljg4LTEzMy40NCA1MS45OC0xMzcuODMgMjUuOS0zMDcuODcgMjIuOTItNDA4LjU3IDYuMyAwLS4xOCAyMC42NiAxNi45NyAxMjYuNzkgMjMuOCJ9fV19LG5hbWU6ImphdmEiLHRoZW1lOiJvdXRsaW5lZCJ9LEpUPVFULHFUPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkpUfSkpfSxlTT10LmZvcndhcmRSZWYocVQpLHRNPWVNLG5NPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6eyJmaWxsLXJ1bGUiOiJldmVub2RkIix2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNDE2IDE3NkgyNTUuNTR2NDI1LjYyYzAgMTA1LjMtMzYuMTYgMTM0LjcxLTk5LjEgMTM0LjcxLTI5LjUgMC01Ni4wNS01LjA1LTc2LjcyLTEyLjE0TDYzIDg0OC43OUM5Mi40OCA4NTguOTEgMTM3LjczIDg2NSAxNzMuMTMgODY1IDMxNy42MyA4NjUgNDE2IDc5Ny4xNiA0MTYgNjAyLjY2em0zNDkuNDktMTZDNjEwLjI2IDE2MCA1MTIgMjQ4LjEzIDUxMiAzNjQuNmMwIDEwMC4zMiA3NS42NyAxNjMuMTMgMTg1LjcgMjAzLjY0IDc5LjU3IDI4LjM2IDExMS4wMyA1My43IDExMS4wMyA5NS4yMiAwIDQ1LjU3LTM2LjM2IDc0Ljk2LTEwNS4xMyA3NC45Ni02My44NyAwLTEyMS44NS0yMS4zMS0xNjEuMTUtNDIuNTh2LS4wNEw1MTIgODIyLjQzQzU0OS4zNiA4NDMuNzMgNjE5LjEyIDg2NSA2OTQuNzQgODY1IDg3Ni41MiA4NjUgOTYxIDc2Ny43NSA5NjEgNjUzLjNjMC05Ny4yNS01NC4wNC0xNjAuMDQtMTcwLjk0LTIwNC42My04Ni40Ny0zNC40NC0xMjIuODEtNTMuNjctMTIyLjgxLTk3LjIzIDAtMzQuNDUgMzEuNDUtNjUuODQgOTYuMy02NS44NCA2My44MyAwIDEwNy43MyAyMS40NSAxMzMuMyAzNC42NGwzOC4zNC0xMjguMTlDODk1LjEgMTc0LjQ2IDg0MS4xMSAxNjAgNzY1LjUgMTYwIn19XX0sbmFtZToiamF2YS1zY3JpcHQiLHRoZW1lOiJvdXRsaW5lZCJ9LHJNPW5NLGFNPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOnJNfSkpfSxvTT10LmZvcndhcmRSZWYoYU0pLGlNPW9NLGxNPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02MDggMTEyYy0xNjcuOSAwLTMwNCAxMzYuMS0zMDQgMzA0IDAgNzAuMyAyMy45IDEzNSA2My45IDE4Ni41bC00MS4xIDQxLjEtNjIuMy02Mi4zYTguMTUgOC4xNSAwIDAwLTExLjQgMGwtMzkuOCAzOS44YTguMTUgOC4xNSAwIDAwMCAxMS40bDYyLjMgNjIuMy00NC45IDQ0LjktNjIuMy02Mi4zYTguMTUgOC4xNSAwIDAwLTExLjQgMGwtMzkuOCAzOS44YTguMTUgOC4xNSAwIDAwMCAxMS40bDYyLjMgNjIuMy02NS4zIDY1LjNhOC4wMyA4LjAzIDAgMDAwIDExLjNsNDIuMyA0Mi4zYzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBsMjUzLjYtMjUzLjZBMzA0LjA2IDMwNC4wNiAwIDAwNjA4IDcyMGMxNjcuOSAwIDMwNC0xMzYuMSAzMDQtMzA0Uzc3NS45IDExMiA2MDggMTEyem0xNjEuMiA0NjUuMkM3MjYuMiA2MjAuMyA2NjguOSA2NDQgNjA4IDY0NGMtNjAuOSAwLTExOC4yLTIzLjctMTYxLjItNjYuOC00My4xLTQzLTY2LjgtMTAwLjMtNjYuOC0xNjEuMiAwLTYwLjkgMjMuNy0xMTguMiA2Ni44LTE2MS4yIDQzLTQzLjEgMTAwLjMtNjYuOCAxNjEuMi02Ni44IDYwLjkgMCAxMTguMiAyMy43IDE2MS4yIDY2LjggNDMuMSA0MyA2Ni44IDEwMC4zIDY2LjggMTYxLjIgMCA2MC45LTIzLjcgMTE4LjItNjYuOCAxNjEuMnoifX1dfSxuYW1lOiJrZXkiLHRoZW1lOiJvdXRsaW5lZCJ9LHNNPWxNLGNNPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOnNNfSkpfSx1TT10LmZvcndhcmRSZWYoY00pLGRNPXVNLGZNPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6eyJmaWxsLXJ1bGUiOiJldmVub2RkIix2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTExLjk5IDExMWE2MS41NSA2MS41NSAwIDAwLTI2LjggNi4xM2wtMjcxLjMgMTMxYTYxLjcxIDYxLjcxIDAgMDAtMzMuMzIgNDEuODVMMTEzLjUzIDU4NC41YTYxLjc3IDYxLjc3IDAgMDAxMS44NiA1Mi4wNkwzMTMuMiA4NzIuNzFhNjEuNjggNjEuNjggMCAwMDQ4LjI2IDIzLjI3aDMwMS4wNWE2MS42OCA2MS42OCAwIDAwNDguMjYtMjMuMjdsMTg3LjgxLTIzNi4xMnYtLjAzYTYxLjczIDYxLjczIDAgMDAxMS45LTUyLjAzdi0uMDNMODQzLjQgMjg5Ljk4di0uMDRhNjEuNzIgNjEuNzIgMCAwMC0zMy4zLTQxLjhsLTI3MS4yOC0xMzFhMTcuNDMgMTcuNDMgMCAwMC0uMDMtLjA0IDYxLjc2IDYxLjc2IDAgMDAtMjYuOC02LjFtMCAzNS4xYzMuOTQgMCA3Ljg3Ljg3IDExLjU1IDIuNjRsMjcxLjMgMTMxYTI2LjU0IDI2LjU0IDAgMDExNC4zNiAxOC4wMmw2Ny4wNCAyOTQuNTJhMjYuNTYgMjYuNTYgMCAwMS01LjEgMjIuNDVMNjgzLjMxIDg1MC44OGEyNi41MSAyNi41MSAwIDAxLTIwLjggMTBIMzYxLjQ1YTI2LjQ1IDI2LjQ1IDAgMDEtMjAuNzctMTBMMTUyLjg4IDYxNC43M2EyNi41OSAyNi41OSAwIDAxLTUuMTQtMjIuNDVsNjcuMDctMjk0LjQ5YTI2LjUxIDI2LjUxIDAgMDExNC4zMi0xOC4wMnYtLjA0bDI3MS4zLTEzMUEyNi41MiAyNi41MiAwIDAxNTEyIDE0Ni4xbS0uMTQgNzMuODJjLTIuNDggMC00Ljk5LjUtNy40IDEuNTEtOS42NSA0LjIxLTE0LjIyIDE1LjQ0LTEwLjAxIDI1LjA5IDQuMDQgOS40OCA1LjQyIDE4Ljk0IDYuNDggMjguNDEuMzUgNC45Mi41NSA5LjY2LjM3IDE0LjQuNTMgNC43NC0xLjk0IDkuNDgtNS40NSAxNC4yMi0zLjY4IDQuNzQtNC4wMyA5LjQ5LTQuNTUgMTQuMjMtNDguMTYgNC43Mi05MS41MSAyNS44My0xMjQuNjUgNTcuNTRsLS4zMS0uMTdjLTQuMDQtMi42My03Ljg4LTUuMjctMTQuMDItNS40NS01Ljc5LS4zNS0xMS4wNi0xLjQtMTQuNC00LjktMy42OC0yLjgtNy4zNS01Ljk1LTEwLjY5LTkuMjktNi44NC02LjY3LTEzLjM2LTEzLjg3LTE4LjEtMjNhMTkuNjYgMTkuNjYgMCAwMC0xMS41OC05LjUgMTkuMjcgMTkuMjcgMCAwMC0yMy42OCAxMy4xN2MtMi45OCAxMCAyLjk4IDIwLjcgMTMuMTYgMjMuNTEgOS44MyAyLjk5IDE4LjA4IDcuOSAyNi4xNSAxMy4xNmExMjcuMzggMTI3LjM4IDAgMDExMS4yNCA4LjZjNC4wNCAyLjY0IDYuMTMgNy41NSA3LjcxIDEzLjE3IDEuMTYgNS42MiA0LjM5IDguODggNy41NCAxMi4wM2EyMDkuMjYgMjA5LjI2IDAgMDAtMzcuMDggMTQyLjYxYy0zLjk0IDEuMzgtNy44MyAyLjg4LTExLjE3IDYuODItMy44NiA0LjM5LTguMDggNy44OC0xMi44MiA4LjIzYTk0LjAzIDk0LjAzIDAgMDEtMTQuMDIgMi42NGMtOS40NyAxLjIzLTE5LjEzIDEuOTMtMjkuMTMtLjE3YTE5LjUzIDE5LjUzIDAgMDAtMTQuNzQgMy4zMmMtOC42IDUuOTctMTAuNTIgMTcuOS00LjU2IDI2LjVhMTkuMTMgMTkuMTMgMCAwMDI2LjY3IDQuNTljOC40Mi01Ljk3IDE3LjM3LTkuMzIgMjYuNS0xMi4zIDQuNTUtMS40MSA5LjEzLTIuNjIgMTMuODctMy41IDQuNTYtMS41OCA5LjY0LS4yIDE1LjA4IDIuMDkgNC41MiAyLjMzIDguNTIgMi4xNSAxMi40OCAxLjc1IDE1LjQ0IDUwLjA4IDQ5LjIyIDkyLjAzIDkzLjMyIDExOC41Mi0xLjUgNC4yMS0yLjkyIDguNi0xLjU3IDE0LjE1IDEuMDUgNS44IDEuMjIgMTEuMjUtMS4yNCAxNS4yOWExNzIuNTggMTcyLjU4IDAgMDEtNi4zIDEyLjc4Yy00LjkyIDguMDctMTAuMTcgMTYuMTUtMTcuOSAyMy4xN2ExOC45NyAxOC45NyAwIDAwLTYuMzMgMTMuNSAxOS4wNiAxOS4wNiAwIDAwMTguNDMgMTkuNjhBMTkuMjEgMTkuMjEgMCAwMDQwOSA3ODcuODhjLjE3LTEwLjM1IDIuOTctMTkuNDYgNi4xMy0yOC41OSAxLjU4LTQuMzggMy41Mi04Ljc3IDUuNjItMTIuOTkgMS41OC00LjU2IDUuNzgtNy45MiAxMC44Ny0xMC43MiA1LjA3LTIuNjIgNy4zNS02LjMyIDkuNjMtMTAuMjJhMjA5LjA5IDIwOS4wOSAwIDAwNzAuNzQgMTIuNTFjMjUuMjYgMCA0OS40LTQuNzIgNzEuODctMTIuOTIgMi4zNyA0LjA2IDQuODIgNy45MSA5LjkgMTAuNjMgNS4xIDIuOTggOS4yOSA2LjE2IDEwLjg3IDEwLjcyIDIuMSA0LjQgMy44NyA4Ljc4IDUuNDUgMTMuMTcgMy4xNSA5LjEyIDUuNzggMTguMjMgNi4xMyAyOC41OCAwIDUuMDkgMi4xIDEwLjAyIDYuMTQgMTMuNzFhMTkuMzIgMTkuMzIgMCAwMDI3LjA0LTEuMjMgMTkuMzIgMTkuMzIgMCAwMC0xLjI0LTI3LjA1Yy03LjcyLTYuODQtMTIuOTgtMTUuMDktMTcuNzItMjMuMzQtMi4yOC00LjAzLTQuMzctOC40LTYuMy0xMi42LTIuNDYtNC4yMi0yLjMtOS41LTEuMDYtMTUuMyAxLjQtNS45Ni0uMTgtMTAuMzQtMS41OC0xNC45bC0uMTQtLjQ1YzQzLjc2LTI2Ljc1IDc3LjA5LTY4LjgzIDkyLjItMTE4LjlsLjU4LjA0YzQuOTEuMzUgOS42NC44NSAxNC45LTIuMTMgNS4yNy0yLjQ2IDEwLjU2LTMuODcgMTUuMTItMi40NyA0LjU2LjcgOS4yOSAxLjc2IDEzLjg1IDIuOTkgOS4xMiAyLjYzIDE4LjI3IDUuNzkgMjYuODcgMTEuNThhMTkuNSAxOS41IDAgMDAxNC43MyAyLjY0IDE4Ljk5IDE4Ljk5IDAgMDAxNC41Ny0yMi42MiAxOS4xMSAxOS4xMSAwIDAwLTIyLjgyLTE0LjU3Yy0xMC4xOCAyLjI4LTE5LjY2IDEuOS0yOS4zIDEuMDMtNC43NS0uNTMtOS4zMi0xLjItMTQuMDYtMi4yNi00Ljc0LS4zNS04LjkyLTMuNS0xMi45Ni03LjcxLTQuMDMtNC43NC04LjYtNS45Ny0xMy4xNi03LjM3bC0uMy0uMWMuNi02LjUxLjk5LTEzLjA4Ljk5LTE5Ljc1IDAtNDMuNS0xMy4yOC04My45OS0zNS45OS0xMTcuNiAzLjMzLTMuNSA2LjctNi44MiA3LjkyLTEyLjc4IDEuNTgtNS42MSAzLjY4LTEwLjUzIDcuNzEtMTMuMTYgMy41MS0zLjE2IDcuMzgtNS45NiAxMS4yNC04Ljc3IDcuOS01LjI3IDE2LjE2LTEwLjM2IDI1Ljk4LTEzLjE2YTE4LjUgMTguNSAwIDAwMTEuNTUtOS42NyAxOC44IDE4LjggMCAwMC04LjIyLTI1LjYgMTguODQgMTguODQgMCAwMC0yNS42NCA4LjIyYy00Ljc0IDkuMTMtMTEuMjIgMTYuMzMtMTcuODkgMjMtMy41MSAzLjM0LTcgNi41MS0xMC43IDkuNS0zLjMzIDMuNS04LjYgNC41NS0xNC4zOSA0LjktNi4xNC4xNy0xMC4wMSAyLjk5LTE0LjA1IDUuNjJhMjEwIDIxMCAwIDAwLTEyNy40LTYwLjAyYy0uNTItNC43My0uODctOS40OC00LjU1LTE0LjIyLTMuNTEtNC43NC01Ljk4LTkuNDgtNS40NS0xNC4yMi0uMTctNC43NC4wMy05LjQ4LjM4LTE0LjQgMS4wNS05LjQ3IDIuNDQtMTguOTQgNi40OC0yOC40MSAxLjkzLTQuNTYgMi4xLTEwIDAtMTUuMDhhMTkuMjMgMTkuMjMgMCAwMC0xNy42OS0xMS41Mm0tMjUuMTYgMTMzLjkxbC0uODUgNi43NWMtMi40NiAxOC45Ni00LjIxIDM4LjA4LTUuOTcgNTcuMDRhODc2IDg3NiAwIDAwLTIuNjQgMzAuMmMtOC42LTYuMTUtMTcuMi0xMi42Ni0yNi4zMi0xOC40NS0xNS43OS0xMC43LTMxLjYtMjEuNDItNDcuOTEtMzEuNmwtNS41Mi0zLjQzYTE3NC40MyAxNzQuNDMgMCAwMTg5LjIxLTQwLjVtNTAuNTkgMGExNzQuMzggMTc0LjM4IDAgMDE5Mi4xNiA0My4yMWwtNS44NiAzLjdjLTE2LjE0IDEwLjM1LTMxLjc0IDIxLjA3LTQ3LjU0IDMxLjc3YTQ5MS4yOCA0OTEuMjggMCAwMC0xOC40NCAxMyA3LjMgNy4zIDAgMDEtMTEuNTgtNS40NmMtLjUzLTcuNTQtMS4yMi0xNC45LTEuOTItMjIuNDUtMS43NS0xOC45NS0zLjUtMzguMDgtNS45Ni01Ny4wM3ptLTE3MyA3OC44Mmw1LjU4IDUuODNjMTMuMzMgMTMuODYgMjYuODYgMjcuMiA0MC41NCA0MC43MSA1LjggNS44IDExLjU4IDExLjI2IDE3LjU1IDE2LjdhNy4xOSA3LjE5IDAgMDEtMi44MSAxMi4yN2MtOC42IDIuNjMtMTcuMjEgNS4wNy0yNS44IDcuODgtMTguMDggNS45Ny0zNi4zMiAxMS42LTU0LjQgMTguMWwtNy45NSAyLjc3Yy0uMTctMy4yLS40OC02LjM3LS40OC05LjYzIDAtMzQuOTIgMTAuMjctNjcuMzMgMjcuNzYtOTQuNjNtMjk3LjUyIDMuNDZhMTc0LjY3IDE3NC42NyAwIDAxMjUuNjcgOTEuMTdjMCAyLjkzLS4zIDUuNzgtLjQ0IDguNjdsLTYuMjQtMS45OGMtMTguMjUtNS45Ny0zNi40OC0xMS4wOS01NC45LTE2LjM1YTkwMC41NCA5MDAuNTQgMCAwMC0zNS44Mi05LjYzYzguOTUtOC42IDE4LjI3LTE3LjA0IDI2Ljg3LTI1LjgxIDEzLjUxLTEzLjUxIDI3LTI3LjAyIDQwLjE3LTQxLjA2ek01MDEuMTIgNDkyLjJoMjEuMzljMy4zMyAwIDYuNSAxLjU4IDguMjYgNC4wNGwxMy42NyAxNy4yYTEwLjY1IDEwLjY1IDAgMDEyLjEzIDguNTdsLTQuOTQgMjEuMjVjLS41MiAzLjM0LTIuODEgNS45Ni01LjYyIDcuNTRsLTE5LjY0IDkuMTJhOS4zNiA5LjM2IDAgMDEtOS4xMSAwbC0xOS42Ny05LjEyYy0yLjgxLTEuNTgtNS4yNy00LjItNS42My03LjU0bC00LjktMjEuMjVjLS41Mi0yLjk4LjItNi4yOCAyLjEzLTguNTZsMTMuNjctMTcuMmExMC4yNSAxMC4yNSAwIDAxOC4yNi00LjA1bS02My4zNyA4My43YzUuNDQtLjg4IDkuODUgNC41NyA3Ljc1IDkuNjZhNzg0LjI4IDc4NC4yOCAwIDAwLTkuNSAyNi4xNSAxOTc2Ljg0IDE5NzYuODQgMCAwMC0xOC43OCA1NC4yMmwtMi40IDcuNTRhMTc1LjI2IDE3NS4yNiAwIDAxLTY4LTg3LjNsOS4zMy0uNzhjMTkuMTMtMS43NiAzNy45LTQuMDYgNTcuMDMtNi4zNCA4LjI1LS44OCAxNi4zMy0yLjEgMjQuNTctMy4xNm0xNTEuNjMgMi40N2M4LjI0Ljg4IDE2LjMyIDEuNzcgMjQuNTcgMi40NyAxOS4xMyAxLjc1IDM4LjA3IDMuNSA1Ny4yIDQuNzNsNi4xLjM0YTE3NS4yNSAxNzUuMjUgMCAwMS02Ni42IDg2LjU4bC0xLjk4LTYuMzhjLTUuNzktMTguMjUtMTIuMS0zNi4zMi0xOC4yMy01NC4yMmE5NTEuNTggOTUxLjU4IDAgMDAtOC42LTIzLjg1IDcuMTYgNy4xNiAwIDAxNy41NC05LjY3bS03Ni4xIDM0LjYyYzIuNSAwIDUuMDEgMS4yNiA2LjQyIDMuOGE1MjYuNDcgNTI2LjQ3IDAgMDAxMi4xMyAyMS43N2M5LjQ4IDE2LjUgMTguOTIgMzMuMTcgMjkuMSA0OS4zMmw0LjE1IDYuNzFhMTc2LjAzIDE3Ni4wMyAwIDAxLTUzLjEgOC4yIDE3Ni4xNCAxNzYuMTQgMCAwMS01MS41Ny03LjcybDQuMzgtNy4wMmMxMC4xOC0xNi4xNSAxOS44My0zMi42NiAyOS40OC00OS4xNWE0NTEuNTggNDUxLjU4IDAgMDAxMi42NS0yMi4xIDcuMiA3LjIgMCAwMTYuMzctMy44MSJ9fV19LG5hbWU6Imt1YmVybmV0ZXMiLHRoZW1lOiJvdXRsaW5lZCJ9LHZNPWZNLGhNPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOnZNfSkpfSxtTT10LmZvcndhcmRSZWYoaE0pLGdNPW1NLHBNPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05NTYuOSA4NDUuMUw4OTYuNCA2MzJWMTY4YzAtMTcuNy0xNC4zLTMyLTMyLTMyaC03MDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjQ2NEw2Ny45IDg0NS4xQzYwLjQgODY2IDc1LjggODg4IDk4IDg4OGg4MjguOGMyMi4yIDAgMzcuNi0yMiAzMC4xLTQyLjl6TTIwMC40IDIwOGg2MjR2Mzk1aC02MjRWMjA4em0yMjguMyA2MDhsOC4xLTM3aDE1MC4zbDguMSAzN0g0MjguN3ptMjI0IDBsLTE5LjEtODYuN2MtLjgtMy43LTQuMS02LjMtNy44LTYuM0gzOTguMmMtMy44IDAtNyAyLjYtNy44IDYuM0wzNzEuMyA4MTZIMTUxbDQyLjMtMTQ5aDYzOC4ybDQyLjMgMTQ5SDY1Mi43eiJ9fV19LG5hbWU6ImxhcHRvcCIsdGhlbWU6Im91dGxpbmVkIn0seU09cE0sQ009ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246eU19KSl9LGJNPXQuZm9yd2FyZFJlZihDTSksU009Yk0sT009e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTM4NCA5MTJoNDk2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjM0MEgzODR2NTcyem00OTYtODAwSDM4NHYxNjRoNTI4VjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTc2OCAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoMTc2VjExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyeiJ9fV19LG5hbWU6ImxheW91dCIsdGhlbWU6ImZpbGxlZCJ9LHhNPU9NLHdNPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOnhNfSkpfSxFTT10LmZvcndhcmRSZWYod00pLFRNPUVNLE1NPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS02OTYgNzJoMTM2djY1NkgxODRWMTg0em02NTYgNjU2SDM4NFYzODRoNDU2djQ1NnpNMzg0IDMyMFYxODRoNDU2djEzNkgzODR6In19XX0sbmFtZToibGF5b3V0Iix0aGVtZToib3V0bGluZWQifSxSTT1NTSxJTT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpSTX0pKX0sUE09dC5mb3J3YXJkUmVmKElNKSx6TT1QTSxGTT17aWNvbjpmdW5jdGlvbihmLHYpe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0zODQgMTg1aDQ1NnYxMzZIMzg0em0tMjAwIDBoMTM2djY1NkgxODR6bTY5Ni03M0gxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjFjMC0xNy43IDE0LjMtMzIgMzItMzJoNzM2YzE3LjcgMCAzMiAxNC4zIDMyIDMydi0xYzAtMTcuNy0xNC4zLTMyLTMyLTMyek0zODQgMzg1aDQ1NnY0NTZIMzg0eiIsZmlsbDp2fX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMTEzSDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDVjMC0xNy43LTE0LjMtMzItMzItMzJ6TTMyMCA4NDFIMTg0VjE4NWgxMzZ2NjU2em01MjAgMEgzODRWMzg1aDQ1NnY0NTZ6bTAtNTIwSDM4NFYxODVoNDU2djEzNnoiLGZpbGw6Zn19XX19LG5hbWU6ImxheW91dCIsdGhlbWU6InR3b3RvbmUifSxBTT1GTSxMTT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpBTX0pKX0sWk09dC5mb3J3YXJkUmVmKExNKSwkTT1aTSxITT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTEwNCAzMTYuOWMwIDEwLjItNC45IDE5LjktMTMuMiAyNS45TDQ1Ny40IDUxMmwxNDUuNCAxMDUuMmM4LjMgNiAxMy4yIDE1LjYgMTMuMiAyNS45VjY5MGMwIDYuNS03LjQgMTAuMy0xMi43IDYuNWwtMjQ2LTE3OGE3Ljk1IDcuOTUgMCAwMTAtMTIuOWwyNDYtMTc4YTggOCAwIDAxMTIuNyA2LjV2NDYuOHoifX1dfSxuYW1lOiJsZWZ0LWNpcmNsZSIsdGhlbWU6ImZpbGxlZCJ9LERNPUhNLEJNPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkRNfSkpfSxWTT10LmZvcndhcmRSZWYoQk0pLE5NPVZNLGpNPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02MDMuMyAzMjcuNWwtMjQ2IDE3OGE3Ljk1IDcuOTUgMCAwMDAgMTIuOWwyNDYgMTc4YzUuMyAzLjggMTIuNyAwIDEyLjctNi41VjY0M2MwLTEwLjItNC45LTE5LjktMTMuMi0yNS45TDQ1Ny40IDUxMmwxNDUuNC0xMDUuMmM4LjMtNiAxMy4yLTE1LjYgMTMuMi0yNS45VjMzNGMwLTYuNS03LjQtMTAuMy0xMi43LTYuNXoifX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6In19XX0sbmFtZToibGVmdC1jaXJjbGUiLHRoZW1lOiJvdXRsaW5lZCJ9LFVNPWpNLFdNPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOlVNfSkpfSxrTT10LmZvcndhcmRSZWYoV00pLEtNPWtNLF9NPXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiAxNDBjLTIwNS40IDAtMzcyIDE2Ni42LTM3MiAzNzJzMTY2LjYgMzcyIDM3MiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzItMTY2LjYtMzcyLTM3Mi0zNzJ6bTEwNCAyNDAuOWMwIDEwLjMtNC45IDE5LjktMTMuMiAyNS45TDQ1Ny40IDUxMmwxNDUuNCAxMDUuMWM4LjMgNiAxMy4yIDE1LjcgMTMuMiAyNS45djQ2LjljMCA2LjUtNy40IDEwLjMtMTIuNyA2LjVsLTI0Ni0xNzhhNy45NSA3Ljk1IDAgMDEwLTEyLjlsMjQ2LTE3OGM1LjMtMy44IDEyLjcgMCAxMi43IDYuNXY0Ni45eiIsZmlsbDp2fX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6IixmaWxsOmZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTYwMy4zIDMyNy41bC0yNDYgMTc4YTcuOTUgNy45NSAwIDAwMCAxMi45bDI0NiAxNzhjNS4zIDMuOCAxMi43IDAgMTIuNy02LjVWNjQzYzAtMTAuMi00LjktMTkuOS0xMy4yLTI1LjlMNDU3LjQgNTEybDE0NS40LTEwNS4yYzguMy02IDEzLjItMTUuNiAxMy4yLTI1LjlWMzM0YzAtNi41LTcuNC0xMC4zLTEyLjctNi41eiIsZmlsbDpmfX1dfX0sbmFtZToibGVmdC1jaXJjbGUiLHRoZW1lOiJ0d290b25lIn0sR009X00sWU09ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246R019KSl9LFhNPXQuZm9yd2FyZFJlZihZTSksUU09WE0sSk09ZSg2MTcxKSxxTT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek02MjQgMzgwLjljMCAxMC4yLTQuOSAxOS45LTEzLjIgMjUuOUw0NjUuNCA1MTJsMTQ1LjQgMTA1LjJjOC4zIDYgMTMuMiAxNS42IDEzLjIgMjUuOVY2OTBjMCA2LjUtNy40IDEwLjMtMTIuNyA2LjVsLTI0Ni0xNzhhNy45NSA3Ljk1IDAgMDEwLTEyLjlsMjQ2LTE3OGM1LjMtMy44IDEyLjcgMCAxMi43IDYuNXY0Ni44eiJ9fV19LG5hbWU6ImxlZnQtc3F1YXJlIix0aGVtZToiZmlsbGVkIn0sZVI9cU0sdFI9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246ZVJ9KSl9LG5SPXQuZm9yd2FyZFJlZih0UiksclI9blIsYVI9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTM2NS4zIDUxOC41bDI0NiAxNzhjNS4zIDMuOCAxMi43IDAgMTIuNy02LjV2LTQ2LjljMC0xMC4yLTQuOS0xOS45LTEzLjItMjUuOUw0NjUuNCA1MTJsMTQ1LjQtMTA1LjJjOC4zLTYgMTMuMi0xNS42IDEzLjItMjUuOVYzMzRjMC02LjUtNy40LTEwLjMtMTIuNy02LjVsLTI0NiAxNzhhOC4wNSA4LjA1IDAgMDAwIDEzeiJ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6In19XX0sbmFtZToibGVmdC1zcXVhcmUiLHRoZW1lOiJvdXRsaW5lZCJ9LG9SPWFSLGlSPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOm9SfSkpfSxsUj10LmZvcndhcmRSZWYoaVIpLHNSPWxSLGNSPXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6IixmaWxsOmZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTE4NCA4NDBoNjU2VjE4NEgxODR2NjU2em0xODEuMy0zMzQuNWwyNDYtMTc4YzUuMy0zLjggMTIuNyAwIDEyLjcgNi41djQ2LjljMCAxMC4zLTQuOSAxOS45LTEzLjIgMjUuOUw0NjUuNCA1MTJsMTQ1LjQgMTA1LjJjOC4zIDYgMTMuMiAxNS43IDEzLjIgMjUuOVY2OTBjMCA2LjUtNy40IDEwLjMtMTIuNyA2LjRsLTI0Ni0xNzhhNy45NSA3Ljk1IDAgMDEwLTEyLjl6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTM2NS4zIDUxOC40bDI0NiAxNzhjNS4zIDMuOSAxMi43LjEgMTIuNy02LjR2LTQ2LjljMC0xMC4yLTQuOS0xOS45LTEzLjItMjUuOUw0NjUuNCA1MTJsMTQ1LjQtMTA1LjJjOC4zLTYgMTMuMi0xNS42IDEzLjItMjUuOVYzMzRjMC02LjUtNy40LTEwLjMtMTIuNy02LjVsLTI0NiAxNzhhNy45NSA3Ljk1IDAgMDAwIDEyLjl6IixmaWxsOmZ9fV19fSxuYW1lOiJsZWZ0LXNxdWFyZSIsdGhlbWU6InR3b3RvbmUifSx1Uj1jUixkUj1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjp1Un0pKX0sZlI9dC5mb3J3YXJkUmVmKGRSKSx2Uj1mUixoUj17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODg1LjkgNTMzLjdjMTYuOC0yMi4yIDI2LjEtNDkuNCAyNi4xLTc3LjcgMC00NC45LTI1LjEtODcuNC02NS41LTExMS4xYTY3LjY3IDY3LjY3IDAgMDAtMzQuMy05LjNINTcyLjRsNi0xMjIuOWMxLjQtMjkuNy05LjEtNTcuOS0yOS41LTc5LjRBMTA2LjYyIDEwNi42MiAwIDAwNDcxIDk5LjljLTUyIDAtOTggMzUtMTExLjggODUuMWwtODUuOSAzMTFoLS4zdjQyOGg0NzIuM2M5LjIgMCAxOC4yLTEuOCAyNi41LTUuNCA0Ny42LTIwLjMgNzguMy02Ni44IDc4LjMtMTE4LjQgMC0xMi42LTEuOC0yNS01LjQtMzcgMTYuOC0yMi4yIDI2LjEtNDkuNCAyNi4xLTc3LjcgMC0xMi42LTEuOC0yNS01LjQtMzcgMTYuOC0yMi4yIDI2LjEtNDkuNCAyNi4xLTc3LjctLjItMTIuNi0yLTI1LjEtNS42LTM3LjF6TTExMiA1Mjh2MzY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY1VjQ5NmgtNjVjLTE3LjcgMC0zMiAxNC4zLTMyIDMyeiJ9fV19LG5hbWU6Imxpa2UiLHRoZW1lOiJmaWxsZWQifSxtUj1oUixnUj1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjptUn0pKX0scFI9dC5mb3J3YXJkUmVmKGdSKSx5Uj1wUixDUj1lKDY1NDI5KSxiUj17aWNvbjpmdW5jdGlvbihmLHYpe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0yNzMgNDk1Ljl2NDI4bC4zLTQyOHptNTM4LjItODguM0g0OTYuOGw5LjYtMTk4LjRjLjYtMTEuOS00LjctMjMuMS0xNC42LTMwLjUtNi4xLTQuNS0xMy42LTYuOC0yMS4xLTYuNy0xOS42LjEtMzYuOSAxMy40LTQyLjIgMzIuMy0zNy4xIDEzNC40LTY0LjkgMjM1LjItODMuNSAzMDIuNVY4NTJoMzk5LjRhNTYuODUgNTYuODUgMCAwMDMzLjYtNTEuOGMwLTkuNy0yLjMtMTguOS02LjktMjcuM2wtMTMuOS0yNS40IDIxLjktMTlhNTYuNzYgNTYuNzYgMCAwMDE5LjYtNDNjMC05LjctMi4zLTE4LjktNi45LTI3LjNsLTEzLjktMjUuNCAyMS45LTE5YTU2Ljc2IDU2Ljc2IDAgMDAxOS42LTQzYzAtOS43LTIuMy0xOC45LTYuOS0yNy4zbC0xNC0yNS41IDIxLjktMTlhNTYuNzYgNTYuNzYgMCAwMDE5LjYtNDNjMC0xOS4xLTExLTM3LjUtMjguOC00OC40eiIsZmlsbDp2fX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0xMTIgNTI4djM2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NVY0OTZoLTY1Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnptNzczLjkgNS43YzE2LjgtMjIuMiAyNi4xLTQ5LjQgMjYuMS03Ny43IDAtNDQuOS0yNS4xLTg3LjUtNjUuNS0xMTFhNjcuNjcgNjcuNjcgMCAwMC0zNC4zLTkuM0g1NzIuM2w2LTEyMi45YzEuNS0yOS43LTktNTcuOS0yOS41LTc5LjRhMTA2LjQgMTA2LjQgMCAwMC03Ny45LTMzLjRjLTUyIDAtOTggMzUtMTExLjggODUuMWwtODUuOCAzMTAuOC0uMyA0MjhoNDcyLjFjOS4zIDAgMTguMi0xLjggMjYuNS01LjQgNDcuNi0yMC4zIDc4LjMtNjYuOCA3OC4zLTExOC40IDAtMTIuNi0xLjgtMjUtNS40LTM3IDE2LjgtMjIuMiAyNi4xLTQ5LjQgMjYuMS03Ny43IDAtMTIuNi0xLjgtMjUtNS40LTM3IDE2LjgtMjIuMiAyNi4xLTQ5LjQgMjYuMS03Ny43IDAtMTIuNi0xLjgtMjUtNS40LTM3ek04MjAuNCA0OTlsLTIxLjkgMTkgMTQgMjUuNWE1Ni4yIDU2LjIgMCAwMTYuOSAyNy4zYzAgMTYuNS03LjEgMzIuMi0xOS42IDQzbC0yMS45IDE5IDEzLjkgMjUuNGE1Ni4yIDU2LjIgMCAwMTYuOSAyNy4zYzAgMTYuNS03LjEgMzIuMi0xOS42IDQzbC0yMS45IDE5IDEzLjkgMjUuNGE1Ni4yIDU2LjIgMCAwMTYuOSAyNy4zYzAgMjIuNC0xMy4yIDQyLjYtMzMuNiA1MS44SDM0NVY1MDYuOGMxOC42LTY3LjIgNDYuNC0xNjggODMuNS0zMDIuNWE0NC4yOCA0NC4yOCAwIDAxNDIuMi0zMi4zYzcuNS0uMSAxNSAyLjIgMjEuMSA2LjcgOS45IDcuNCAxNS4yIDE4LjYgMTQuNiAzMC41bC05LjYgMTk4LjRoMzE0LjRDODI5IDQxOC41IDg0MCA0MzYuOSA4NDAgNDU2YzAgMTYuNS03LjEgMzIuMi0xOS42IDQzeiIsZmlsbDpmfX1dfX0sbmFtZToibGlrZSIsdGhlbWU6InR3b3RvbmUifSxTUj1iUixPUj1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpTUn0pKX0seFI9dC5mb3J3YXJkUmVmKE9SKSx3Uj14UixFUj17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODg4IDc5MkgyMDBWMTY4YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2ODhjMCA0LjQgMy42IDggOCA4aDc1MmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNMzA1LjggNjM3LjdjMy4xIDMuMSA4LjEgMy4xIDExLjMgMGwxMzguMy0xMzcuNkw1ODMgNjI4LjVjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGwyNzUuNC0yNzUuM2MzLjEtMy4xIDMuMS04LjIgMC0xMS4zbC0zOS42LTM5LjZhOC4wMyA4LjAzIDAgMDAtMTEuMyAwbC0yMzAgMjI5LjlMNDYxLjQgNDA0YTguMDMgOC4wMyAwIDAwLTExLjMgMEwyNjYuMyA1ODYuN2E4LjAzIDguMDMgMCAwMDAgMTEuM2wzOS41IDM5Ljd6In19XX0sbmFtZToibGluZS1jaGFydCIsdGhlbWU6Im91dGxpbmVkIn0sVFI9RVIsTVI9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246VFJ9KSl9LFJSPXQuZm9yd2FyZFJlZihNUiksSVI9UlIsUFI9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTY0OCAxNjBIMTA0Yy00LjQgMC04IDMuNi04IDh2MTI4YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTY0aDE2OHY1NjBoLTkyYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDI2NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtOTJWMjMyaDE2OHY2NGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04VjE2OGMwLTQuNC0zLjYtOC04LTh6bTI3Mi44IDU0Nkg4NTZWMzE4aDY0LjhjNiAwIDkuNC03IDUuNy0xMS43TDgyNS43IDE3OC43YTcuMTQgNy4xNCAwIDAwLTExLjMgMEw3MTMuNiAzMDYuM2E3LjIzIDcuMjMgMCAwMDUuNyAxMS43SDc4NHYzODhoLTY0LjhjLTYgMC05LjQgNy01LjcgMTEuN2wxMDAuOCAxMjcuNWMyLjkgMy43IDguNSAzLjcgMTEuMyAwbDEwMC44LTEyNy41YTcuMiA3LjIgMCAwMC01LjYtMTEuN3oifX1dfSxuYW1lOiJsaW5lLWhlaWdodCIsdGhlbWU6Im91dGxpbmVkIn0selI9UFIsRlI9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246elJ9KSl9LEFSPXQuZm9yd2FyZFJlZihGUiksTFI9QVIsWlI9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkwNCA0NzZIMTIwYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHoifX1dfSxuYW1lOiJsaW5lIix0aGVtZToib3V0bGluZWQifSwkUj1aUixIUj1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjokUn0pKX0sRFI9dC5mb3J3YXJkUmVmKEhSKSxCUj1EUixWUj1lKDI5MTU4KSxOUj17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek0zNDkuMyA3OTMuN0gyMzAuNlY0MTEuOWgxMTguN3YzODEuOHptLTU5LjMtNDM0YTY4LjggNjguOCAwIDExNjguOC02OC44Yy0uMSAzOC0zMC45IDY4LjgtNjguOCA2OC44em01MDMuNyA0MzRINjc1LjFWNjA4YzAtNDQuMy0uOC0xMDEuMi02MS43LTEwMS4yLTYxLjcgMC03MS4yIDQ4LjItNzEuMiA5OHYxODguOUg0MjMuN1Y0MTEuOWgxMTMuOHY1Mi4yaDEuNmMxNS44LTMwIDU0LjUtNjEuNyAxMTIuMy02MS43IDEyMC4yIDAgMTQyLjMgNzkuMSAxNDIuMyAxODEuOXYyMDkuNHoifX1dfSxuYW1lOiJsaW5rZWRpbiIsdGhlbWU6ImZpbGxlZCJ9LGpSPU5SLFVSPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOmpSfSkpfSxXUj10LmZvcndhcmRSZWYoVVIpLGtSPVdSLEtSPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NDcuNyAxMTJIMTc2LjNjLTM1LjUgMC02NC4zIDI4LjgtNjQuMyA2NC4zdjY3MS40YzAgMzUuNSAyOC44IDY0LjMgNjQuMyA2NC4zaDY3MS40YzM1LjUgMCA2NC4zLTI4LjggNjQuMy02NC4zVjE3Ni4zYzAtMzUuNS0yOC44LTY0LjMtNjQuMy02NC4zem0wIDczNmMtNDQ3LjgtLjEtNjcxLjctLjItNjcxLjctLjMuMS00NDcuOC4yLTY3MS43LjMtNjcxLjcgNDQ3LjguMSA2NzEuNy4yIDY3MS43LjMtLjEgNDQ3LjgtLjIgNjcxLjctLjMgNjcxLjd6TTIzMC42IDQxMS45aDExOC43djM4MS44SDIzMC42em01OS40LTUyLjJjMzcuOSAwIDY4LjgtMzAuOCA2OC44LTY4LjhhNjguOCA2OC44IDAgMTAtMTM3LjYgMGMtLjEgMzggMzAuNyA2OC44IDY4LjggNjguOHptMjUyLjMgMjQ1LjFjMC00OS44IDkuNS05OCA3MS4yLTk4IDYwLjggMCA2MS43IDU2LjkgNjEuNyAxMDEuMnYxODUuN2gxMTguNlY1ODQuM2MwLTEwMi44LTIyLjItMTgxLjktMTQyLjMtMTgxLjktNTcuNyAwLTk2LjQgMzEuNy0xMTIuMyA2MS43aC0xLjZ2LTUyLjJINDIzLjd2MzgxLjhoMTE4LjZWNjA0Ljh6In19XX0sbmFtZToibGlua2VkaW4iLHRoZW1lOiJvdXRsaW5lZCJ9LF9SPUtSLEdSPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOl9SfSkpfSxZUj10LmZvcndhcmRSZWYoR1IpLFhSPVlSLFFSPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6eyJmaWxsLXJ1bGUiOiJldmVub2RkIix2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTMwLjggNjRjLTUuNzkgMC0xMS43Ni4zLTE3Ljg4Ljc4LTE1Ny44IDEyLjQ0LTExNS45NSAxNzkuNDUtMTE4LjM0IDIzNS4xMS0yLjg4IDQwLjgtMTEuMiA3Mi45NS0zOS4yNCAxMTIuNzgtMzMuMDMgMzkuMjMtNzkuNCAxMDIuNjYtMTAxLjM5IDE2OC43Ny0xMC4zNyAzMS4wNi0xNS4zIDYyLjg3LTEwLjcxIDkyLjkyYTE1LjgzIDE1LjgzIDAgMDAtNC4xNCA1LjA0Yy05LjcgMTAtMTYuNzYgMjIuNDMtMjQuNzIgMzEuMzItNy40MiA3LjQzLTE4LjEgOS45Ni0yOS43NSAxNC45My0xMS42OCA1LjA4LTI0LjU2IDEwLjA0LTMyLjI1IDI1LjQyYTQ5LjcgNDkuNyAwIDAwLTQuOTMgMjIuNDNjMCA3LjQzIDEgMTQuOTcgMi4wNSAyMC4wMSAyLjE3IDE0LjkgNC4zMyAyNy4yMiAxLjQ2IDM2LjIxLTkuMjYgMjUuMzktMTAuNDIgNDIuNzktMy45MiA1NS40NCA2LjUgMTIuNDcgMTkuOTcgMTcuNTEgMzUuMDUgMjIuNDQgMzAuMjggNy40NiA3MS4zIDUuMDQgMTAzLjYgMjIuMzYgMzQuNTYgMTcuNDMgNjkuNjYgMjUuMDUgOTcuNjUgMTcuNTRhNjYuMDEgNjYuMDEgMCAwMDQ1LjEtMzUuMjdjMjEuOTEtLjEyIDQ1LjkyLTEwLjA1IDg0LjM3LTEyLjQ3IDI2LjA5LTIuMTcgNTguNzUgOS45NyA5Ni4yMyA3LjQzLjk0IDUuMDQgMi4zNiA3LjQzIDQuMjYgMTIuNDdsLjExLjFjMTQuNiAyOS4wNSA0MS41NSA0Mi4yNyA3MC4zMyAzOS45OSAyOC43OC0yLjI0IDU5LjQzLTIwLjAxIDg0LjI2LTQ4Ljc2IDIzLjU1LTI4LjU1IDYyLjgzLTQwLjQ2IDg4Ljc3LTU2LjEgMTIuOTktNy40MyAyMy40OC0xNy41MSAyNC4yMy0zMS44NS44Ni0xNC45My03LjQzLTMwLjMtMjYuNjYtNTEuNHYtMy42MmwtLjEtLjExYy02LjM1LTcuNDctOS4zNC0xOS45OC0xMi42My0zNC41Ny0zLjE3LTE0Ljk3LTYuOC0yOS4zNC0xOC4zNi0zOS4wNWgtLjExYy0yLjItMi4wMi00LjYtMi41LTcuMDItNS4wNGExMy4zMyAxMy4zMyAwIDAwLTcuMS0yLjM5YzE2LjEtNDcuNyA5Ljg2LTk1LjItNi40NS0xMzcuOS0xOS45LTUyLjYzLTU0LjctOTguNDgtODEuMi0xMzAuMDItMjkuNzEtMzcuNTItNTguODMtNzMuMDYtNTguMjctMTI1Ljc3IDEtODAuMzMgOC44NS0yMjguOTUtMTMyLjMtMjI5LjE3bTE5Ljc1IDEyNy4xMWguNDhjNy45NSAwIDE0Ljc5IDIuMzEgMjEuOCA3LjQgNy4xMyA1LjAzIDEyLjMyIDEyLjM5IDE2LjQgMTkuODkgMy45MSA5LjY3IDUuODkgMTcuMTMgNi4xOSAyNy4wMyAwLS43NS4yMi0xLjUuMjItMi4ydjMuODhhMy4yMSAzLjIxIDAgMDEtLjE1LS43OWwtLjE1LS45YTY3LjQ2IDY3LjQ2IDAgMDEtNS42IDI2LjM2IDM1LjU4IDM1LjU4IDAgMDEtNy45NSAxMi41IDI2LjUgMjYuNSAwIDAwLTMuMjgtMS41NmMtMy45Mi0xLjY4LTcuNDMtMi4zOS0xMC42NC00Ljk2YTQ4Ljk4IDQ4Ljk4IDAgMDAtOC4xOC0yLjQ3YzEuODMtMi4yIDUuNDItNC45NiA2LjgtNy4zOWE0NC4yMiA0NC4yMiAwIDAwMy4yOC0xNXYtLjcyYTQ1LjE3IDQ1LjE3IDAgMDAtMi4yNy0xNC45M2MtMS42OC01LjA0LTMuNzctNy41LTYuODQtMTIuNDctMy4xMy0yLjQ2LTYuMjMtNC45Mi05Ljk2LTQuOTJoLS42Yy0zLjQ3IDAtNi41NyAxLjEyLTkuNzggNC45MmEyOS44NiAyOS44NiAwIDAwLTcuNjUgMTIuNDcgNDQuMDUgNDQuMDUgMCAwMC0zLjM2IDE0Ljkzdi43MWMuMDcgMy4zMy4zIDYuNjkuNzQgOS45Ny03LjItMi41LTE2LjM1LTUuMDQtMjIuNjYtNy41NC0uMzctMi40Ni0uNi00Ljk0LS42Ny03LjQzdi0uNzVhNjYuMTUgNjYuMTUgMCAwMTUuNi0yOC43IDQwLjQ1IDQwLjQ1IDAgMDExNi4wNS0xOS45IDM2Ljc3IDM2Ljc3IDAgMDEyMi4xOC03LjQzbS0xMTAuNTggMi4yaDEuMzVjNS4zIDAgMTAuMDggMS44IDE0LjkgNS4wNGE1MS42IDUxLjYgMCAwMTEyLjgzIDE3LjM2YzMuMzYgNy40MyA1LjI3IDE0Ljk3IDUuNzIgMjQuOXYuMTVjLjI2IDUgLjIyIDcuNS0uMDggOS45M3YyLjk5Yy0xLjEyLjI2LTIuMDkuNjctMy4xLjktNS42NyAyLjA1LTEwLjIzIDUuMDMtMTQuNjcgNy40Ni40NS0zLjMyLjQ5LTYuNjguMTEtOS45N3YtLjU2Yy0uNDQtNC45Ni0xLjQ1LTcuNDMtMy4wNi0xMi40M2EyMi44OCAyMi44OCAwIDAwLTYuMi05Ljk3IDkuMjYgOS4yNiAwIDAwLTYuODMtMi4zOWgtLjc4Yy0yLjY1LjIzLTQuODUgMS41My02Ljk0IDQuOTNhMjAuNiAyMC42IDAgMDAtNC40OCAxMC4wOCAzNS4yNCAzNS4yNCAwIDAwLS44NiAxMi4zNnYuNTJjLjQ1IDUuMDQgMS4zOCA3LjUgMy4wMiAxMi40NyAxLjY4IDUgMy42MiA3LjQ2IDYuMTYgMTAgLjQxLjM0Ljc5LjY3IDEuMjcuOS0yLjYxIDIuMTMtNC4zNyAyLjYxLTYuNTcgNS4wOGExMS4zOSAxMS4zOSAwIDAxLTQuODkgMi41MyA5Ny44NCA5Ny44NCAwIDAxLTEwLjI3LTE1IDY2LjE1IDY2LjE1IDAgMDEtNS43OC0yNC45IDY1LjY3IDY1LjY3IDAgMDEyLjk4LTI0Ljk0IDUzLjM4IDUzLjM4IDAgMDExMC41Ny0xOS45N2M0Ljc4LTQuOTcgOS43LTcuNDcgMTUuNi03LjQ3TTQ5MS4xNSAyNTdjMTIuMzYgMCAyNy4zMyAyLjQzIDQ1LjM2IDE0LjkgMTAuOTQgNy40NiAxOS41MiAxMC4wNCAzOS4zMSAxNy40N2guMTFjOS41MiA1LjA3IDE1LjEyIDkuOTMgMTcuODQgMTQuOXYtNC45YTIxLjMyIDIxLjMyIDAgMDEuNiAxNy41NWMtNC41OSAxMS42LTE5LjI2IDI0LjA0LTM5LjcyIDMxLjQ3di4wN2MtMTAgNS4wNC0xOC43IDEyLjQzLTI4LjkzIDE3LjM2LTEwLjMgNS4wNC0yMS45NSAxMC45LTM3Ljc4IDkuOTdhNDIuNTIgNDIuNTIgMCAwMS0xNi43Mi0yLjUgMTMzLjEyIDEzMy4xMiAwIDAxLTEyLjAyLTcuNGMtNy4yOC01LjA0LTEzLjU1LTEyLjM5LTIyLjg1LTE3LjM2di0uMThoLS4xOWMtMTQuOTMtOS4xOS0yMi45OS0xOS4xMi0yNS42LTI2LjU0LTIuNTgtMTAtLjE5LTE3LjUxIDcuMi0yMi40IDguMzYtNS4wNCAxNC4xOS0xMC4xMiAxOC4wMy0xMi41NSAzLjg4LTIuNzYgNS4zNC0zLjggNi41Ny00Ljg5aC4wOHYtLjFjNi4zLTcuNTUgMTYuMjctMTcuNTIgMzEuMzItMjIuNDRhNjguNjUgNjguNjUgMCAwMTE3LjQtMi40M20xMDQuNDggODBjMTMuNCA1Mi45IDQ0LjY5IDEyOS43MiA2NC44IDE2Ni45OCAxMC42OCAxOS45MyAzMS45MyA2MS45MyA0MS4xNSAxMTIuODkgNS44Mi0uMTkgMTIuMjguNjcgMTkuMTUgMi4zOSAyNC4xMS02Mi4zOC0yMC4zOS0xMjkuNDMtNDAuNjYtMTQ4LjA2LTguMjUtNy41LTguNjYtMTIuNS00LjU5LTEyLjUgMjEuOTkgMTkuOTMgNTAuOTYgNTguNjggNjEuNDUgMTAyLjkyIDQuODEgMTkuOTcgNS45MyA0MS4yMS43OCA2Mi4zNCAyLjUgMS4wNSA1LjA0IDIuMjggNy42NSAyLjUgMzguNTMgMTkuOTQgNTIuNzUgMzUuMDIgNDUuOTIgNTcuMzh2LTEuNmMtMi4yNy0uMTItNC40OCAwLTYuNzUgMGgtLjU2YzUuNjMtMTcuNDQtNi44LTMwLjgtMzkuNzYtNDUuNy0zNC4xNi0xNC45My02MS40NS0xMi41NC02Ni4xMSAxNy4zNi0uMjcgMS42LS40NSAyLjQ2LS42NCA1LjA0LTIuNTQuODYtNS4xOSAxLjk4LTcuOCAyLjM5LTE2LjA1IDEwLTI0LjcxIDI0Ljk3LTI5LjYgNDQuMzEtNC44NiAxOS45LTYuMzUgNDMuMTYtNy42NiA2OS43N3YuMTFjLS43OCAxMi40Ny02LjM4IDMxLjI5LTExLjkgNTAuNDQtNTYgNDAuMDEtMTMzLjY1IDU3LjQxLTE5OS42OSAxMi40NmE5OC43NCA5OC43NCAwIDAwLTE1LTE5LjkgNTQuMTMgNTQuMTMgMCAwMC0xMC4yNy0xMi40NmM2LjggMCAxMi42Mi0xLjA4IDE3LjM2LTIuNWEyMi45NiAyMi45NiAwIDAwMTEuNzItMTIuNDdjNC4wMy05Ljk3IDAtMjYuMDItMTIuODgtNDMuNDJDMzk4Ljg3IDczMC4yNCAzNzcgNzEwLjUzIDM0NSA2OTAuOWMtMjMuNTEtMTQuODktMzYuOC0zMi40Ny00Mi45My01Mi4xLTYuMTYtMTkuOTQtNS4zMy00MC41MS0uNTYtNjEuNDIgOS4xNS0zOS45NCAzMi42LTc4Ljc3IDQ3LjU2LTEwMy4xNCA0LTIuNDMgMS4zOCA1LjA0LTE1LjIzIDM2LjM2LTE0Ljc4IDI4LjAzLTQyLjYgOTMuMjEtNC41NSAxNDMuODdhMzAzLjI3IDMwMy4yNyAwIDAxMjQuMTUtMTA3LjM2YzIxLjA2LTQ3LjcxIDY1LjA3LTEzMC44MSA2OC41NC0xOTYuNjYgMS44IDEuMzQgOC4xIDUuMDQgMTAuNzkgNy41NCA4LjE0IDQuOTYgMTQuMTggMTIuNDMgMjIuMDIgMTcuMzYgNy44OCA3LjUgMTcuODEgMTIuNSAzMi43IDEyLjUgMS40Ni4xMiAyLjguMjMgNC4xNS4yMyAxNS4zNCAwIDI3LjIxLTUgMzcuMTgtMTAgMTAuODMtNSAxOS40NS0xMi40OCAyNy42My0xNC45NGguMThjMTcuNDQtNS4wNCAzMS4yMS0xNSAzOS4wMS0yNi4xM204MS42IDMzNC40YzEuMzkgMjIuNDQgMTIuODEgNDYuNDggMzIuOTMgNTEuNDEgMjEuOTUgNSA1My41My0xMi40MyA2Ni44Ni0yOC41Nmw3Ljg4LS4zM2MxMS43Ni0uMyAyMS41NC4zNyAzMS42MiA5Ljk3bC4xLjFjNy43NyA3LjQ0IDExLjQgMTkuODMgMTQuNiAzMi43IDMuMTggMTQuOTggNS43NSAyOS4xMyAxNS4yNyAzOS44IDE4LjE1IDE5LjY4IDI0LjA4IDMzLjgyIDIzLjc1IDQyLjU2bC4xLS4yMnYuNjdsLS4xLS40NWMtLjU2IDkuNzgtNi45MSAxNC43OC0xOC42IDIyLjIxLTIzLjUxIDE0Ljk3LTY1LjE3IDI2LjU4LTkxLjcyIDU4LjYxLTIzLjA3IDI3LjUxLTUxLjE4IDQyLjUyLTc2IDQ0LjQ2LTI0Ljc5IDEuOTgtNDYuMTgtNy40Ni01OC43Ni0zMy41MmwtLjE5LS4xMWMtNy44NC0xNC45Ny00LjQ4LTM4LjI3IDIuMS02My4xIDYuNTYtMjQuOTMgMTUuOTctNTAuMiAxNy4yOC03MC44NSAxLjM4LTI2LjY1IDIuODMtNDkuODMgNy4yOC02Ny43MSA0LjQ4LTE3LjM2IDExLjUtMjkuNzYgMjMuOTMtMzYuNzRsMS42OC0uODJ6bS00MDMuNzIgMS44NGguMzdjMS45OCAwIDMuOTIuMTggNS44Ni41MiAxNC4wNCAyLjA1IDI2LjM1IDEyLjQzIDM4LjE5IDI4LjA3bDMzLjk3IDYyLjEyLjExLjExYzkuMDcgMTkuOSAyOC4xNSAzOS43MiA0NC4zOSA2MS4xNSAxNi4yIDIyLjMyIDI4Ljc0IDQyLjIyIDI3LjIxIDU4LjYxdi4yMmMtMi4xMyAyNy43OC0xNy44OCA0Mi44Ni00MiA0OC4zLTI0LjA3IDUuMDUtNTYuNzQuMDgtODkuNC0xNy4zMS0zNi4xNC0yMC4wMS03OS4wNy0xNy41MS0xMDYuNjYtMjIuNDgtMTMuNzctMi40Ni0yMi44LTcuNS0yNi45OS0xNC45Ny00LjE0LTcuNDItNC4yMS0yMi40MyA0LjYtNDUuOTF2LS4xMWwuMDctLjEyYzQuMzctMTIuNDYgMS4xMi0yOC4xLTEtNDEuNzctMi4wNi0xNC45Ny0zLjEtMjYuNDcgMS42LTM1LjA5IDUuOTctMTIuNDcgMTQuNzgtMTQuOSAyNS43Mi0xOS45IDExLjAxLTUuMDQgMjMuOTMtNy41NCAzNC4yLTE3LjVoLjA3di0uMTJjOS41NS0xMCAxNi42MS0yMi40MyAyNC45My0zMS4yOCA3LjEtNy41IDE0LjE5LTEyLjU0IDI0Ljc1LTEyLjU0TTU0MC43NiAzMzQuNWMtMTYuMjQgNy41LTM1LjI3IDE5Ljk3LTU1LjU0IDE5Ljk3LTIwLjI0IDAtMzYuMjEtOS45Ny00Ny43NS0xNy40LTUuNzktNS0xMC40NS0xMC0xMy45Ni0xMi41LTYuMTItNS01LjM4LTEyLjQ3LTIuNzYtMTIuNDcgNC4wNy42IDQuODEgNS4wNCA3LjQzIDcuNSAzLjU4IDIuNDcgOC4wMiA3LjQzIDEzLjQ3IDEyLjQzIDEwLjg2IDcuNDcgMjUuMzkgMTcuNDQgNDMuNTMgMTcuNDQgMTguMSAwIDM5LjMtOS45NyA1Mi4xOS0xNy40IDcuMjgtNS4wNCAxNi42LTEyLjQ3IDI0LjE5LTE3LjQzIDUuODItNS4xMiA1LjU2LTEwIDEwLjQxLTEwIDQuODIuNiAxLjI3IDUtNS40OCAxMi40MmEzMDIuMyAzMDIuMyAwIDAxLTI1Ljc2IDE3LjQ3di0uMDN6bS00MC4zOS01OS4xM3YtLjgzYy0uMjItLjcuNDktMS41NiAxLjA5LTEuODYgMi43Ni0xLjYgNi43Mi0xLjAxIDkuNy4xNSAyLjM1IDAgNS45NyAyLjUgNS42IDUuMDQtLjIyIDEuODMtMy4xNyAyLjQ2LTUuMDQgMi40Ni0yLjA1IDAtMy40My0xLjYtNS4yNi0yLjU0LTEuOTQtLjY3LTUuNDUtLjMtNi4wOS0yLjQybS0yMC41NyAwYy0uNzQgMi4xNi00LjIyIDEuODItNi4yIDIuNDYtMS43NS45My0zLjIgMi41NC01LjE4IDIuNTQtMS45IDAtNC45LS43MS01LjEyLTIuNTQtLjMzLTIuNDcgMy4yOS00Ljk3IDUuNi00Ljk3IDMuMDMtMS4xNSA2Ljg3LTEuNzUgOS42Ny0uMTguNzEuMzMgMS4zNSAxLjEyIDEuMTIgMS44NnYuNzloLjExeiJ9fV19LG5hbWU6ImxpbnV4Iix0aGVtZToib3V0bGluZWQifSxKUj1RUixxUj1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpKUn0pKX0sZUk9dC5mb3J3YXJkUmVmKHFSKSx0ST1lSSxuST17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiIwIDAgMTAyNCAxMDI0Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDEwMjRjLTY5LjEgMC0xMzYuMi0xMy41LTE5OS4zLTQwLjJDMjUxLjcgOTU4IDE5NyA5MjEgMTUwIDg3NGMtNDctNDctODQtMTAxLjctMTA5LjgtMTYyLjdDMTMuNSA2NDguMiAwIDU4MS4xIDAgNTEyYzAtMTkuOSAxNi4xLTM2IDM2LTM2czM2IDE2LjEgMzYgMzZjMCA1OS40IDExLjYgMTE3IDM0LjYgMTcxLjMgMjIuMiA1Mi40IDUzLjkgOTkuNSA5NC4zIDEzOS45IDQwLjQgNDAuNCA4Ny41IDcyLjIgMTM5LjkgOTQuM0MzOTUgOTQwLjQgNDUyLjYgOTUyIDUxMiA5NTJjNTkuNCAwIDExNy0xMS42IDE3MS4zLTM0LjYgNTIuNC0yMi4yIDk5LjUtNTMuOSAxMzkuOS05NC4zIDQwLjQtNDAuNCA3Mi4yLTg3LjUgOTQuMy0xMzkuOUM5NDAuNCA2MjkgOTUyIDU3MS40IDk1MiA1MTJjMC01OS40LTExLjYtMTE3LTM0LjYtMTcxLjNhNDQwLjQ1IDQ0MC40NSAwIDAwLTk0LjMtMTM5LjkgNDM3LjcxIDQzNy43MSAwIDAwLTEzOS45LTk0LjNDNjI5IDgzLjYgNTcxLjQgNzIgNTEyIDcyYy0xOS45IDAtMzYtMTYuMS0zNi0zNnMxNi4xLTM2IDM2LTM2YzY5LjEgMCAxMzYuMiAxMy41IDE5OS4zIDQwLjJDNzcyLjMgNjYgODI3IDEwMyA4NzQgMTUwYzQ3IDQ3IDgzLjkgMTAxLjggMTA5LjcgMTYyLjcgMjYuNyA2My4xIDQwLjIgMTMwLjIgNDAuMiAxOTkuM3MtMTMuNSAxMzYuMi00MC4yIDE5OS4zQzk1OCA3NzIuMyA5MjEgODI3IDg3NCA4NzRjLTQ3IDQ3LTEwMS44IDgzLjktMTYyLjcgMTA5LjctNjMuMSAyNi44LTEzMC4yIDQwLjMtMTk5LjMgNDAuM3oifX1dfSxuYW1lOiJsb2FkaW5nLTMtcXVhcnRlcnMiLHRoZW1lOiJvdXRsaW5lZCJ9LHJJPW5JLGFJPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOnJJfSkpfSxvST10LmZvcndhcmRSZWYoYUkpLGlJPW9JLGxJPWUoNTA4ODgpLHNJPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04MzIgNDY0aC02OFYyNDBjMC03MC43LTU3LjMtMTI4LTEyOC0xMjhIMzg4Yy03MC43IDAtMTI4IDU3LjMtMTI4IDEyOHYyMjRoLTY4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYzODRjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjQ5NmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNTQwIDcwMXY1M2MwIDQuNC0zLjYgOC04IDhoLTQwYy00LjQgMC04LTMuNi04LTh2LTUzYTQ4LjAxIDQ4LjAxIDAgMTE1NiAwem0xNTItMjM3SDMzMlYyNDBjMC0zMC45IDI1LjEtNTYgNTYtNTZoMjQ4YzMwLjkgMCA1NiAyNS4xIDU2IDU2djIyNHoifX1dfSxuYW1lOiJsb2NrIix0aGVtZToiZmlsbGVkIn0sY0k9c0ksdUk9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246Y0l9KSl9LGRJPXQuZm9yd2FyZFJlZih1SSksZkk9ZEksdkk9ZSg5NDE0OSksaEk9e2ljb246ZnVuY3Rpb24oZix2KXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODMyIDQ2NGgtNjhWMjQwYzAtNzAuNy01Ny4zLTEyOC0xMjgtMTI4SDM4OGMtNzAuNyAwLTEyOCA1Ny4zLTEyOCAxMjh2MjI0aC02OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2Mzg0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlY0OTZjMC0xNy43LTE0LjMtMzItMzItMzJ6TTMzMiAyNDBjMC0zMC45IDI1LjEtNTYgNTYtNTZoMjQ4YzMwLjkgMCA1NiAyNS4xIDU2IDU2djIyNEgzMzJWMjQwem00NjAgNjAwSDIzMlY1MzZoNTYwdjMwNHoiLGZpbGw6Zn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMjMyIDg0MGg1NjBWNTM2SDIzMnYzMDR6bTI4MC0yMjZhNDguMDEgNDguMDEgMCAwMTI4IDg3djUzYzAgNC40LTMuNiA4LTggOGgtNDBjLTQuNCAwLTgtMy42LTgtOHYtNTNhNDguMDEgNDguMDEgMCAwMTI4LTg3eiIsZmlsbDp2fX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00ODQgNzAxdjUzYzAgNC40IDMuNiA4IDggOGg0MGM0LjQgMCA4LTMuNiA4LTh2LTUzYTQ4LjAxIDQ4LjAxIDAgMTAtNTYgMHoiLGZpbGw6Zn19XX19LG5hbWU6ImxvY2siLHRoZW1lOiJ0d290b25lIn0sbUk9aEksZ0k9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246bUl9KSl9LHBJPXQuZm9yd2FyZFJlZihnSSkseUk9cEksQ0k9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJkZWZzIixhdHRyczp7fSxjaGlsZHJlbjpbe3RhZzoic3R5bGUiLGF0dHJzOnt9fV19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTIxLjcgODJjLTE1Mi41LS40LTI4Ni43IDc4LjUtMzYzLjQgMTk3LjctMy40IDUuMy40IDEyLjMgNi43IDEyLjNoNzAuM2M0LjggMCA5LjMtMi4xIDEyLjMtNS44IDctOC41IDE0LjUtMTYuNyAyMi40LTI0LjUgMzIuNi0zMi41IDcwLjUtNTguMSAxMTIuNy03NS45IDQzLjYtMTguNCA5MC0yNy44IDEzNy45LTI3LjggNDcuOSAwIDk0LjMgOS4zIDEzNy45IDI3LjggNDIuMiAxNy44IDgwLjEgNDMuNCAxMTIuNyA3NS45IDMyLjYgMzIuNSA1OC4xIDcwLjQgNzYgMTEyLjVDODY1LjcgNDE3LjggODc1IDQ2NC4xIDg3NSA1MTJjMCA0Ny45LTkuNCA5NC4yLTI3LjggMTM3LjgtMTcuOCA0Mi4xLTQzLjQgODAtNzYgMTEyLjVzLTcwLjUgNTguMS0xMTIuNyA3NS45QTM1Mi44IDM1Mi44IDAgMDE1MjAuNiA4NjZjLTQ3LjkgMC05NC4zLTkuNC0xMzcuOS0yNy44QTM1My44NCAzNTMuODQgMCAwMTI3MCA3NjIuM2MtNy45LTcuOS0xNS4zLTE2LjEtMjIuNC0yNC41LTMtMy43LTcuNi01LjgtMTIuMy01LjhIMTY1Yy02LjMgMC0xMC4yIDctNi43IDEyLjNDMjM0LjkgODYzLjIgMzY4LjUgOTQyIDUyMC42IDk0MmMyMzYuMiAwIDQyOC0xOTAuMSA0MzAuNC00MjUuNkM5NTMuNCAyNzcuMSA3NjEuMyA4Mi42IDUyMS43IDgyek0zOTUuMDIgNjI0di03NmgtMzE0Yy00LjQgMC04LTMuNi04LTh2LTU2YzAtNC40IDMuNi04IDgtOGgzMTR2LTc2YzAtNi43IDcuOC0xMC41IDEzLTYuM2wxNDEuOSAxMTJhOCA4IDAgMDEwIDEyLjZsLTE0MS45IDExMmMtNS4yIDQuMS0xMyAuNC0xMy02LjN6In19XX0sbmFtZToibG9naW4iLHRoZW1lOiJvdXRsaW5lZCJ9LGJJPUNJLFNJPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOmJJfSkpfSxPST10LmZvcndhcmRSZWYoU0kpLHhJPU9JLHdJPWUoNzg4MjQpLEVJPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoiZGVmcyIsYXR0cnM6e30sY2hpbGRyZW46W3t0YWc6InN0eWxlIixhdHRyczp7fX1dfSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTYyNCA2NzJhNDguMDEgNDguMDEgMCAwMDk2IDBjMC0yNi41LTIxLjUtNDgtNDgtNDhoLTQ4djQ4em05Ni0zMjBhNDguMDEgNDguMDEgMCAwMC05NiAwdjQ4aDQ4YzI2LjUgMCA0OC0yMS41IDQ4LTQ4eiJ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkyOCA2NEg5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDgzMmMxNy43IDAgMzItMTQuMyAzMi0zMlY5NmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNjcyIDU2MGM2MS45IDAgMTEyIDUwLjEgMTEyIDExMnMtNTAuMSAxMTItMTEyIDExMi0xMTItNTAuMS0xMTItMTEydi00OGgtOTZ2NDhjMCA2MS45LTUwLjEgMTEyLTExMiAxMTJzLTExMi01MC4xLTExMi0xMTIgNTAuMS0xMTIgMTEyLTExMmg0OHYtOTZoLTQ4Yy02MS45IDAtMTEyLTUwLjEtMTEyLTExMnM1MC4xLTExMiAxMTItMTEyIDExMiA1MC4xIDExMiAxMTJ2NDhoOTZ2LTQ4YzAtNjEuOSA1MC4xLTExMiAxMTItMTEyczExMiA1MC4xIDExMiAxMTItNTAuMSAxMTItMTEyIDExMmgtNDh2OTZoNDh6In19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNDY0IDQ2NGg5NnY5NmgtOTZ6TTM1MiAzMDRhNDguMDEgNDguMDEgMCAwMDAgOTZoNDh2LTQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4em0tNDggMzY4YTQ4LjAxIDQ4LjAxIDAgMDA5NiAwdi00OGgtNDhjLTI2LjUgMC00OCAyMS41LTQ4IDQ4eiJ9fV19LG5hbWU6Im1hYy1jb21tYW5kIix0aGVtZToiZmlsbGVkIn0sVEk9RUksTUk9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246VEl9KSl9LFJJPXQuZm9yd2FyZFJlZihNSSksSUk9UkksUEk9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJkZWZzIixhdHRyczp7fSxjaGlsZHJlbjpbe3RhZzoic3R5bGUiLGF0dHJzOnt9fV19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNzI4SDE4NFYxODRoNjU2djY1NnoifX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0zNzAuOCA1NTQuNGMtNTQuNiAwLTk4LjggNDQuMi05OC44IDk4LjhzNDQuMiA5OC44IDk4LjggOTguOCA5OC44LTQ0LjIgOTguOC05OC44di00Mi40aDg0Ljd2NDIuNGMwIDU0LjYgNDQuMiA5OC44IDk4LjggOTguOHM5OC44LTQ0LjIgOTguOC05OC44LTQ0LjItOTguOC05OC44LTk4LjhoLTQyLjR2LTg0LjdoNDIuNGM1NC42IDAgOTguOC00NC4yIDk4LjgtOTguOCAwLTU0LjYtNDQuMi05OC44LTk4LjgtOTguOHMtOTguOCA0NC4yLTk4LjggOTguOHY0Mi40aC04NC43di00Mi40YzAtNTQuNi00NC4yLTk4LjgtOTguOC05OC44UzI3MiAzMTYuMiAyNzIgMzcwLjhzNDQuMiA5OC44IDk4LjggOTguOGg0Mi40djg0LjdoLTQyLjR6bTQyLjQgOTguOGMwIDIzLjQtMTkgNDIuNC00Mi40IDQyLjRzLTQyLjQtMTktNDIuNC00Mi40IDE5LTQyLjQgNDIuNC00Mi40aDQyLjR2NDIuNHptMTk3LjYtMjgyLjRjMC0yMy40IDE5LTQyLjQgNDIuNC00Mi40czQyLjQgMTkgNDIuNCA0Mi40LTE5IDQyLjQtNDIuNCA0Mi40aC00Mi40di00Mi40em0wIDI0MGg0Mi40YzIzLjQgMCA0Mi40IDE5IDQyLjQgNDIuNHMtMTkgNDIuNC00Mi40IDQyLjQtNDIuNC0xOS00Mi40LTQyLjR2LTQyLjR6TTQ2OS42IDQ2OS42aDg0Ljd2ODQuN2gtODQuN3YtODQuN3ptLTk4LjgtNTYuNGMtMjMuNCAwLTQyLjQtMTktNDIuNC00Mi40czE5LTQyLjQgNDIuNC00Mi40IDQyLjQgMTkgNDIuNCA0Mi40djQyLjRoLTQyLjR6In19XX0sbmFtZToibWFjLWNvbW1hbmQiLHRoZW1lOiJvdXRsaW5lZCJ9LHpJPVBJLEZJPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOnpJfSkpfSxBST10LmZvcndhcmRSZWYoRkkpLExJPUFJLFpJPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MjggMTYwSDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY2NDBjMCAxNy43IDE0LjMgMzIgMzIgMzJoODMyYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE5MmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTgwLjggMTA4LjlMNTMxLjcgNTE0LjRjLTcuOCA2LjEtMTguNyA2LjEtMjYuNSAwTDE4OS42IDI2OC45QTcuMiA3LjIgMCAwMTE5NCAyNTZoNjQ4LjhhNy4yIDcuMiAwIDAxNC40IDEyLjl6In19XX0sbmFtZToibWFpbCIsdGhlbWU6ImZpbGxlZCJ9LCRJPVpJLEhJPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOiRJfSkpfSxEST10LmZvcndhcmRSZWYoSEkpLEJJPURJLFZJPWUoODg2NDEpLE5JPXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQ3Ny41IDUzNi4zTDEzNS45IDI3MC43bC0yNy41LTIxLjQgMjcuNiAyMS41Vjc5Mmg3NTJWMjcwLjhMNTQ2LjIgNTM2LjNhNTUuOTkgNTUuOTkgMCAwMS02OC43IDB6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg3Ni4zIDE5OC44bDM5LjMgNTAuNS0yNy42IDIxLjUgMjcuNy0yMS41LTM5LjMtNTAuNXoiLGZpbGw6dn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNOTI4IDE2MEg5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjQwYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDgzMmMxNy43IDAgMzItMTQuMyAzMi0zMlYxOTJjMC0xNy43LTE0LjMtMzItMzItMzJ6bS05NC41IDcyLjFMNTEyIDQ4MiAxOTAuNSAyMzIuMWg2NDN6bTU0LjUgMzguN1Y3OTJIMTM2VjI3MC44bC0yNy42LTIxLjUgMjcuNSAyMS40IDM0MS42IDI2NS42YTU1Ljk5IDU1Ljk5IDAgMDA2OC43IDBMODg4IDI3MC44bDI3LjYtMjEuNS0zOS4zLTUwLjVoLjFsMzkuMyA1MC41LTI3LjcgMjEuNXoiLGZpbGw6Zn19XX19LG5hbWU6Im1haWwiLHRoZW1lOiJ0d290b25lIn0sakk9TkksVUk9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246akl9KSl9LFdJPXQuZm9yd2FyZFJlZihVSSksa0k9V0ksS0k9ZSgyNDk0KSxfST17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODM5LjIgMjc4LjFhMzIgMzIgMCAwMC0zMC40LTIyLjFINzM2VjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMkgzMjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjExMmgtNzIuOGEzMS45IDMxLjkgMCAwMC0zMC40IDIyLjFMMTEyIDUwMnYzNzhjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjUwMmwtNzIuOC0yMjMuOXpNNjYwIDYyOGMwIDQuNC0zLjYgOC04IDhINTQ0djEwOGMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LThWNjM2SDM3MmMtNC40IDAtOC0zLjYtOC04di00OGMwLTQuNCAzLjYtOCA4LThoMTA4VjQ2NGMwLTQuNCAzLjYtOCA4LThoNDhjNC40IDAgOCAzLjYgOCA4djEwOGgxMDhjNC40IDAgOCAzLjYgOCA4djQ4em00LTM3MkgzNjB2LTcyaDMwNHY3MnoifX1dfSxuYW1lOiJtZWRpY2luZS1ib3giLHRoZW1lOiJmaWxsZWQifSxHST1fSSxZST1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpHSX0pKX0sWEk9dC5mb3J3YXJkUmVmKFlJKSxRST1YSSxKST17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODM5LjIgMjc4LjFhMzIgMzIgMCAwMC0zMC40LTIyLjFINzM2VjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMkgzMjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjExMmgtNzIuOGEzMS45IDMxLjkgMCAwMC0zMC40IDIyLjFMMTEyIDUwMnYzNzhjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjUwMmwtNzIuOC0yMjMuOXpNMzYwIDE4NGgzMDR2NzJIMzYwdi03MnptNDgwIDY1NkgxODRWNTEzLjRMMjQ0LjMgMzI4aDUzNS40TDg0MCA1MTMuNFY4NDB6TTY1MiA1NzJINTQ0VjQ2NGMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2MTA4SDM3MmMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgxMDh2MTA4YzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LThWNjM2aDEwOGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOHoifX1dfSxuYW1lOiJtZWRpY2luZS1ib3giLHRoZW1lOiJvdXRsaW5lZCJ9LHFJPUpJLGVQPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOnFJfSkpfSx0UD10LmZvcndhcmRSZWYoZVApLG5QPXRQLHJQPXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTI0NC4zIDMyOEwxODQgNTEzLjRWODQwaDY1NlY1MTMuNEw3NzkuNyAzMjhIMjQ0LjN6TTY2MCA2MjhjMCA0LjQtMy42IDgtOCA4SDU0NHYxMDhjMCA0LjQtMy42IDgtOCA4aC00OGMtNC40IDAtOC0zLjYtOC04VjYzNkgzNzJjLTQuNCAwLTgtMy42LTgtOHYtNDhjMC00LjQgMy42LTggOC04aDEwOFY0NjRjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHYxMDhoMTA4YzQuNCAwIDggMy42IDggOHY0OHoiLGZpbGw6dn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNjUyIDU3Mkg1NDRWNDY0YzAtNC40LTMuNi04LTgtOGgtNDhjLTQuNCAwLTggMy42LTggOHYxMDhIMzcyYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDEwOHYxMDhjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOFY2MzZoMTA4YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04eiIsZmlsbDpmfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04MzkuMiAyNzguMWEzMiAzMiAwIDAwLTMwLjQtMjIuMUg3MzZWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMySDMyMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MTEyaC03Mi44YTMxLjkgMzEuOSAwIDAwLTMwLjQgMjIuMUwxMTIgNTAydjM3OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWNTAybC03Mi44LTIyMy45ek0zNjAgMTg0aDMwNHY3MkgzNjB2LTcyem00ODAgNjU2SDE4NFY1MTMuNEwyNDQuMyAzMjhoNTM1LjRMODQwIDUxMy40Vjg0MHoiLGZpbGw6Zn19XX19LG5hbWU6Im1lZGljaW5lLWJveCIsdGhlbWU6InR3b3RvbmUifSxhUD1yUCxvUD1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjphUH0pKX0saVA9dC5mb3J3YXJkUmVmKG9QKSxsUD1pUCxzUD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTI1NiAyNTMuN2wtNDAuOCAzOS4xYy0zLjYgMi43LTUuMyA3LjEtNC42IDExLjR2Mjg3LjdjLS43IDQuNCAxIDguOCA0LjYgMTEuNGw0MCAzOS4xdjguN0g1NjYuNHYtOC4zbDQxLjMtNDAuMWM0LjEtNC4xIDQuMS01LjMgNC4xLTExLjRWNDIyLjVsLTExNSAyOTEuNmgtMTUuNUwzNDcuNSA0MjIuNVY2MThjLTEuMiA4LjIgMS43IDE2LjUgNy41IDIyLjRsNTMuOCA2NS4xdjguN0gyNTZ2LTguN2w1My44LTY1LjFhMjYuMSAyNi4xIDAgMDA3LTIyLjRWMzkyYy43LTYuMy0xLjctMTIuNC02LjUtMTYuN2wtNDcuOC01Ny42VjMwOUg0MTFsMTE0LjYgMjUxLjUgMTAwLjktMjUxLjNINzY4djguNXoifX1dfSxuYW1lOiJtZWRpdW0tY2lyY2xlIix0aGVtZToiZmlsbGVkIn0sY1A9c1AsdVA9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246Y1B9KSl9LGRQPXQuZm9yd2FyZFJlZih1UCksZlA9ZFAsdlA9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTgzNC43IDI3OS44bDYxLjMtNTguOVYyMDhINjgzLjdMNTMyLjQgNTg2LjQgMzYwLjMgMjA4SDEzNy43djEyLjlsNzEuNiA4Ni42YzcgNi40IDEwLjYgMTUuOCA5LjcgMjUuMlY2NzNjMi4yIDEyLjMtMS43IDI0LjgtMTAuMyAzMy43TDEyOCA4MDV2MTIuN2gyMjguNnYtMTIuOWwtODAuNi05OGEzOS45OSAzOS45OSAwIDAxLTExLjEtMzMuN1YzNzguN2wyMDAuNyA0MzkuMmgyMy4zbDE3Mi42LTQzOS4ydjM0OS45YzAgOS4yIDAgMTEuMS02IDE3LjJsLTYyLjEgNjAuM1Y4MTloMzAxLjJ2LTEyLjlsLTU5LjktNTguOWMtNS4yLTQtNy45LTEwLjctNi44LTE3LjJWMjk3YTE4LjEgMTguMSAwIDAxNi44LTE3LjJ6In19XX0sbmFtZToibWVkaXVtIix0aGVtZToib3V0bGluZWQifSxoUD12UCxtUD1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpoUH0pKX0sZ1A9dC5mb3J3YXJkUmVmKG1QKSxwUD1nUCx5UD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek03NjggMzE3LjdsLTQwLjggMzkuMWMtMy42IDIuNy01LjMgNy4xLTQuNiAxMS40djI4Ny43Yy0uNyA0LjQgMSA4LjggNC42IDExLjRsNDAgMzkuMXY4LjdINTY2LjR2LTguM2w0MS4zLTQwLjFjNC4xLTQuMSA0LjEtNS4zIDQuMS0xMS40VjQyMi41bC0xMTUgMjkxLjZoLTE1LjVMMzQ3LjUgNDIyLjVWNjE4Yy0xLjIgOC4yIDEuNyAxNi41IDcuNSAyMi40bDUzLjggNjUuMXY4LjdIMjU2di04LjdsNTMuOC02NS4xYTI2LjEgMjYuMSAwIDAwNy0yMi40VjM5MmMuNy02LjMtMS43LTEyLjQtNi41LTE2LjdsLTQ3LjgtNTcuNlYzMDlINDExbDExNC42IDI1MS41IDEwMC45LTI1MS4zSDc2OHY4LjV6In19XX0sbmFtZToibWVkaXVtLXNxdWFyZSIsdGhlbWU6ImZpbGxlZCJ9LENQPXlQLGJQPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkNQfSkpfSxTUD10LmZvcndhcmRSZWYoYlApLE9QPVNQLHhQPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjAgMCAxMDI0IDEwMjQiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTcuMiA1OTAuNTVjMCAzLjU1IDAgNC4zNiAyLjQgNi41NWwxMy40MyAxMy4yNXYuNTdoLTU5LjU3di0yNS40N2E0MS40NCA0MS40NCAwIDAxLTM5LjUgMjcuNjVjLTMwLjYxIDAtNTIuODQtMjQuMjUtNTIuODQtNjguODcgMC00MS44IDIzLjk5LTY5LjY5IDU3LjY1LTY5LjY5YTM1LjE1IDM1LjE1IDAgMDEzNC42MSAyMS42N3YtNTYuMTlhNi45OSA2Ljk5IDAgMDAtMi43MS02Ljc5bC0xMi44LTEyLjQ1di0uNTZsNTkuMzMtNy4wNHYxNzcuMzd6bS00My43NC04LjA5di04My44M2EyMi4yIDIyLjIgMCAwMC0xNy43NC04LjRjLTE0LjQ4IDAtMjguNDcgMTMuMjUtMjguNDcgNTIuNjIgMCAzNi44NiAxMi4wNyA0OS44OCAyNy4xIDQ5Ljg4YTIzLjkxIDIzLjkxIDAgMDAxOS4xMS0xMC4yN3ptODMuMjMgMjguNDZWNDk3Ljc0YTcuNjUgNy42NSAwIDAwLTIuNC02Ljc5bC0xMy4xOS0xMy43NHYtLjU3aDU5LjU2djExNC44YzAgMy41NSAwIDQuMzYgMi40IDYuNTRsMTMuMTIgMTIuNDV2LjU3bC01OS40OS0uMDh6bS0yLjE2LTE3NS42N2MwLTEzLjQgMTAuNzQtMjQuMjUgMjMuOTktMjQuMjUgMTMuMjUgMCAyMy45OCAxMC44NiAyMy45OCAyNC4yNSAwIDEzLjQtMTAuNzMgMjQuMjUtMjMuOTggMjQuMjVzLTIzLjk5LTEwLjg1LTIzLjk5LTI0LjI1em0yMDYuODMgMTU1LjA2YzAgMy41NSAwIDQuNiAyLjQgNi43OWwxMy40MyAxMy4yNXYuNTdoLTU5Ljg4VjU4MS45YTQzLjQgNDMuNCAwIDAxLTQxLjAxIDMxLjJjLTI2LjU1IDAtNDAuNzgtMTkuNTYtNDAuNzgtNTYuNTkgMC0xNy44NiAwLTM3LjQzLjU2LTU5LjQxYTYuOTEgNi45MSAwIDAwLTIuNC02LjU1TDYyMC41IDQ3Ny4ydi0uNTdoNTkuMDl2NzMuODFjMCAyNC4yNSAzLjUxIDQwLjQyIDE4LjU0IDQwLjQyYTIzLjk2IDIzLjk2IDAgMDAxOS4zNS0xMi4ydi04MC44NWE3LjY1IDcuNjUgMCAwMC0yLjQtNi43OWwtMTMuMjctMTMuODJ2LS41N2g1OS41NlY1OTAuM3ptMjAyLjc2IDIwLjZjMC00LjM2LjgtNTkuOTcuOC03Mi43NSAwLTI0LjI1LTMuNzYtNDAuOTgtMjAuNjMtNDAuOThhMjYuNyAyNi43IDAgMDAtMjEuMTkgMTEuNjQgOTkuNjggOTkuNjggMCAwMTIuNCAyMy4wNGMwIDE2LjgxLS41NiAzOC4yMy0uOCA1OS42NmE2LjkxIDYuOTEgMCAwMDIuNCA2LjU1bDEzLjQzIDEyLjQ1di41NmgtNjAuMTJjMC00LjA0LjgtNTkuOTguOC03Mi43NiAwLTI0LjY1LTMuNzYtNDAuOTgtMjAuMzktNDAuOTgtOC4yLjMtMTUuNjggNC44LTE5LjgzIDExLjk2djgyLjQ2YzAgMy41NiAwIDQuMzcgMi40IDYuNTVsMTMuMTEgMTIuNDV2LjU2aC01OS40OFY0OTguMTVhNy42NSA3LjY1IDAgMDAtMi40LTYuOGwtMTMuMTktMTQuMTR2LS41N0g4NDF2MjguNzhjNS41My0xOSAyMy4xMy0zMS43NiA0Mi43LTMwLjk2IDE5LjgyIDAgMzMuMjYgMTEuMTYgMzguOTMgMzIuMzRhNDYuNDEgNDYuNDEgMCAwMTQ0Ljc3LTMyLjM0YzI2LjU1IDAgNDEuNTggMTkuOCA0MS41OCA1Ny4yMyAwIDE3Ljg3LS41NiAzOC4yNC0uOCA1OS42NmE2LjUgNi41IDAgMDAyLjcyIDYuNTVsMTMuMTEgMTIuNDV2LjU3aC01OS44OHpNMjE1Ljg3IDU5My4zbDE3LjY2IDE3LjA1di41N2gtODkuNjJ2LS41N2wxNy45OS0xNy4wNWE2LjkxIDYuOTEgMCAwMDIuNC02LjU1VjQ3Ny42OWMwLTQuNiAwLTEwLjgzLjgtMTYuMTZMMTA0LjY2IDYxMy4xaC0uNzJsLTYyLjYtMTM5LjQ1Yy0xLjM3LTMuNDctMS43Ny0zLjcyLTIuNjUtNi4wNnY5MS40M2EzMi4wOCAzMi4wOCAwIDAwMi45NiAxNy44N2wyNS4xOSAzMy40NnYuNTdIMHYtLjU3bDI1LjE4LTMzLjU1YTMyLjE2IDMyLjE2IDAgMDAyLjk2LTE3Ljc4VjQ1Ny45N0ExOS43MSAxOS43MSAwIDAwMjQgNDQ0LjE1TDYuMTYgNDIwLjc4di0uNTZoNjMuOTZsNTMuNTYgMTE4LjEgNDcuMTctMTE4LjFoNjIuNnYuNTZsLTE3LjU4IDE5LjhhNi45OSA2Ljk5IDAgMDAtMi43MiA2Ljh2MTM5LjM3YTYuNSA2LjUgMCAwMDIuNzIgNi41NXptNzAuMTEtNTQuNjV2LjU2YzAgMzQuNiAxNy42NyA0OC41IDM4LjM4IDQ4LjVhNDMuNSA0My41IDAgMDA0MC43Ny0yNC45N2guNTZjLTcuMiAzNC4yLTI4LjE0IDUwLjM2LTU5LjQ4IDUwLjM2LTMzLjgyIDAtNjUuNzItMjAuNjEtNjUuNzItNjguMzkgMC01MC4yIDMxLjk4LTcwLjI1IDY3LjMyLTcwLjI1IDI4LjQ2IDAgNTguNzYgMTMuNTggNTguNzYgNTcuMjR2Ni45NWgtODAuNTl6bTAtNi45NWgzOS40MnYtNy4wNGMwLTM1LjU3LTcuMjgtNDUuMDMtMTguMjMtNDUuMDMtMTMuMjcgMC0yMS4zNSAxNC4xNS0yMS4zNSA1Mi4wN2guMTZ6In19XX0sbmFtZToibWVkaXVtLXdvcmttYXJrIix0aGVtZToib3V0bGluZWQifSx3UD14UCxFUD1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjp3UH0pKX0sVFA9dC5mb3J3YXJkUmVmKEVQKSxNUD1UUCxSUD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6TTI4OCA0MjFhNDguMDEgNDguMDEgMCAwMTk2IDAgNDguMDEgNDguMDEgMCAwMS05NiAwem0zODQgMjAwYzAgNC40LTMuNiA4LTggOEgzNjBjLTQuNCAwLTgtMy42LTgtOHYtNDhjMC00LjQgMy42LTggOC04aDMwNGM0LjQgMCA4IDMuNiA4IDh2NDh6bTE2LTE1MmE0OC4wMSA0OC4wMSAwIDAxMC05NiA0OC4wMSA0OC4wMSAwIDAxMCA5NnoifX1dfSxuYW1lOiJtZWgiLHRoZW1lOiJmaWxsZWQifSxJUD1SUCxQUD1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpJUH0pKX0selA9dC5mb3J3YXJkUmVmKFBQKSxGUD16UCxBUD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMjg4IDQyMWE0OCA0OCAwIDEwOTYgMCA0OCA0OCAwIDEwLTk2IDB6bTM1MiAwYTQ4IDQ4IDAgMTA5NiAwIDQ4IDQ4IDAgMTAtOTYgMHpNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTI2MyA3MTFjLTM0LjIgMzQuMi03NCA2MS0xMTguMyA3OS44QzYxMSA4NzQuMiA1NjIuMyA4ODQgNTEyIDg4NGMtNTAuMyAwLTk5LTkuOC0xNDQuOC0yOS4yQTM3MC40IDM3MC40IDAgMDEyNDguOSA3NzVjLTM0LjItMzQuMi02MS03NC03OS44LTExOC4zQzE0OS44IDYxMSAxNDAgNTYyLjMgMTQwIDUxMnM5LjgtOTkgMjkuMi0xNDQuOEEzNzAuNCAzNzAuNCAwIDAxMjQ5IDI0OC45YzM0LjItMzQuMiA3NC02MSAxMTguMy03OS44QzQxMyAxNDkuOCA0NjEuNyAxNDAgNTEyIDE0MGM1MC4zIDAgOTkgOS44IDE0NC44IDI5LjJBMzcwLjQgMzcwLjQgMCAwMTc3NS4xIDI0OWMzNC4yIDM0LjIgNjEgNzQgNzkuOCAxMTguM0M4NzQuMiA0MTMgODg0IDQ2MS43IDg4NCA1MTJzLTkuOCA5OS0yOS4yIDE0NC44QTM2OC44OSAzNjguODkgMCAwMTc3NSA3NzV6TTY2NCA1NjVIMzYwYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDMwNGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOHoifX1dfSxuYW1lOiJtZWgiLHRoZW1lOiJvdXRsaW5lZCJ9LExQPUFQLFpQPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkxQfSkpfSwkUD10LmZvcndhcmRSZWYoWlApLEhQPSRQLERQPXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnoiLGZpbGw6Zn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDE0MGMtMjA1LjQgMC0zNzIgMTY2LjYtMzcyIDM3MnMxNjYuNiAzNzIgMzcyIDM3MiAzNzItMTY2LjYgMzcyLTM3Mi0xNjYuNi0zNzItMzcyLTM3MnpNMjg4IDQyMWE0OC4wMSA0OC4wMSAwIDAxOTYgMCA0OC4wMSA0OC4wMSAwIDAxLTk2IDB6bTM4NCAyMDBjMCA0LjQtMy42IDgtOCA4SDM2MGMtNC40IDAtOC0zLjYtOC04di00OGMwLTQuNCAzLjYtOCA4LThoMzA0YzQuNCAwIDggMy42IDggOHY0OHptMTYtMTUyYTQ4LjAxIDQ4LjAxIDAgMDEwLTk2IDQ4LjAxIDQ4LjAxIDAgMDEwIDk2eiIsZmlsbDp2fX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0yODggNDIxYTQ4IDQ4IDAgMTA5NiAwIDQ4IDQ4IDAgMTAtOTYgMHptMzc2IDE0NEgzNjBjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMzA0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04em0tMjQtMTQ0YTQ4IDQ4IDAgMTA5NiAwIDQ4IDQ4IDAgMTAtOTYgMHoiLGZpbGw6Zn19XX19LG5hbWU6Im1laCIsdGhlbWU6InR3b3RvbmUifSxCUD1EUCxWUD1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpCUH0pKX0sTlA9dC5mb3J3YXJkUmVmKFZQKSxqUD1OUCxVUD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNDA4IDQ0Mmg0ODBjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThINDA4Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em0tOCAyMDRjMCA0LjQgMy42IDggOCA4aDQ4MGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOEg0MDhjLTQuNCAwLTggMy42LTggOHY1NnptNTA0LTQ4NkgxMjBjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNzg0YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wIDYzMkgxMjBjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNzg0YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04ek0xMTUuNCA1MTguOUwyNzEuNyA2NDJjNS44IDQuNiAxNC40LjUgMTQuNC02LjlWMzg4LjljMC03LjQtOC41LTExLjUtMTQuNC02LjlMMTE1LjQgNTA1LjFhOC43NCA4Ljc0IDAgMDAwIDEzLjh6In19XX0sbmFtZToibWVudS1mb2xkIix0aGVtZToib3V0bGluZWQifSxXUD1VUCxrUD1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpXUH0pKX0sS1A9dC5mb3J3YXJkUmVmKGtQKSxfUD1LUCxHUD1lKDYwNTMyKSxZUD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNDA4IDQ0Mmg0ODBjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThINDA4Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em0tOCAyMDRjMCA0LjQgMy42IDggOCA4aDQ4MGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOEg0MDhjLTQuNCAwLTggMy42LTggOHY1NnptNTA0LTQ4NkgxMjBjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNzg0YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wIDYzMkgxMjBjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNzg0YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04ek0xNDIuNCA2NDIuMUwyOTguNyA1MTlhOC44NCA4Ljg0IDAgMDAwLTEzLjlMMTQyLjQgMzgxLjljLTUuOC00LjYtMTQuNC0uNS0xNC40IDYuOXYyNDYuM2E4LjkgOC45IDAgMDAxNC40IDd6In19XX0sbmFtZToibWVudS11bmZvbGQiLHRoZW1lOiJvdXRsaW5lZCJ9LFhQPVlQLFFQPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOlhQfSkpfSxKUD10LmZvcndhcmRSZWYoUVApLHFQPUpQLGV6PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoiZGVmcyIsYXR0cnM6e30sY2hpbGRyZW46W3t0YWc6InN0eWxlIixhdHRyczp7fX1dfSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQ4Mi4yIDUwOC40TDMzMS4zIDM4OWMtMy0yLjQtNy4zLS4yLTcuMyAzLjZWNDc4SDE4NFYxODRoMjA0djEyOGMwIDIuMiAxLjggNCA0IDRoNjBjMi4yIDAgNC0xLjggNC00VjE0NGMwLTE1LjUtMTIuNS0yOC0yOC0yOEgxNDRjLTE1LjUgMC0yOCAxMi41LTI4IDI4djczNmMwIDE1LjUgMTIuNSAyOCAyOCAyOGgyODRjMTUuNSAwIDI4LTEyLjUgMjgtMjhWNzEyYzAtMi4yLTEuOC00LTQtNGgtNjBjLTIuMiAwLTQgMS44LTQgNHYxMjhIMTg0VjU0NmgxNDB2ODUuNGMwIDMuOCA0LjQgNiA3LjMgMy42bDE1MC45LTExOS40YTQuNSA0LjUgMCAwMDAtNy4yek04ODAgMTE2SDU5NmMtMTUuNSAwLTI4IDEyLjUtMjggMjh2MTY4YzAgMi4yIDEuOCA0IDQgNGg2MGMyLjIgMCA0LTEuOCA0LTRWMTg0aDIwNHYyOTRINzAwdi04NS40YzAtMy44LTQuMy02LTcuMy0zLjZsLTE1MSAxMTkuNGE0LjUyIDQuNTIgMCAwMDAgNy4xbDE1MSAxMTkuNWMyLjkgMi4zIDcuMy4yIDcuMy0zLjZWNTQ2aDE0MHYyOTRINjM2VjcxMmMwLTIuMi0xLjgtNC00LTRoLTYwYy0yLjIgMC00IDEuOC00IDR2MTY4YzAgMTUuNSAxMi41IDI4IDI4IDI4aDI4NGMxNS41IDAgMjgtMTIuNSAyOC0yOFYxNDRjMC0xNS41LTEyLjUtMjgtMjgtMjh6In19XX0sbmFtZToibWVyZ2UtY2VsbHMiLHRoZW1lOiJvdXRsaW5lZCJ9LHR6PWV6LG56PWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOnR6fSkpfSxyej10LmZvcndhcmRSZWYobnopLGF6PXJ6LG96PXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6eyJmaWxsLXJ1bGUiOiJldmVub2RkIix2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMjg0IDkyNGM2MS44NiAwIDExMi01MC4xNCAxMTItMTEyIDAtNDkuMjYtMzEuOC05MS4xLTc2LTEwNi4wOVY0MjEuNjNsMzg2LjQ5IDEyNi41NS4wMSA5NS45MkM2NjEgNjU4LjM0IDYyOCA3MDAuOCA2MjggNzUxYzAgNjEuODYgNTAuMTQgMTEyIDExMiAxMTJzMTEyLTUwLjE0IDExMi0xMTJjMC00OC4zMy0zMC42LTg5LjUtNzMuNS0xMDUuMmwtLjAxLTExMy4wNGE1MC43MyA1MC43MyAwIDAwLTM0Ljk1LTQ4LjJMMzIwIDM0NS44NVYzMTguMWM0My42NC0xNC44IDc1LjItNTUuNzggNzUuOTktMTA0LjI0TDM5NiAyMTJjMC02MS44Ni01MC4xNC0xMTItMTEyLTExMnMtMTEyIDUwLjE0LTExMiAxMTJjMCA0OS4yNiAzMS44IDkxLjEgNzYgMTA2LjA5VjcwNS45Yy00NC4yIDE1LTc2IDU2LjgzLTc2IDEwNi4wOSAwIDYxLjg2IDUwLjE0IDExMiAxMTIgMTEyIn19XX0sbmFtZToibWVyZ2UiLHRoZW1lOiJmaWxsZWQifSxpej1veixsej1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjppen0pKX0sc3o9dC5mb3J3YXJkUmVmKGx6KSxjej1zeix1ej17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnsiZmlsbC1ydWxlIjoiZXZlbm9kZCIsdmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTI0OCA3NTJoNzJWMjY0aC03MnoifX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik03NDAgODYzYzYxLjg2IDAgMTEyLTUwLjE0IDExMi0xMTIgMC00OC4zMy0zMC42LTg5LjUtNzMuNS0xMDUuMmwtLjAxLTExMy4wNGE1MC43MyA1MC43MyAwIDAwLTM0Ljk1LTQ4LjJsLTQzNC45LTE0Mi40MS0yMi40IDY4LjQyIDQyMC4yNSAxMzcuNjEuMDEgOTUuOTJDNjYxIDY1OC4zNCA2MjggNzAwLjggNjI4IDc1MWMwIDYxLjg2IDUwLjE0IDExMiAxMTIgMTEybS00NTYgNjFjNjEuODYgMCAxMTItNTAuMTQgMTEyLTExMnMtNTAuMTQtMTEyLTExMi0xMTItMTEyIDUwLjE0LTExMiAxMTIgNTAuMTQgMTEyIDExMiAxMTJtNDU2LTEyNWE0OCA0OCAwIDExMC05NiA0OCA0OCAwIDAxMCA5Nm0tNDU2IDYxYTQ4IDQ4IDAgMTEwLTk2IDQ4IDQ4IDAgMDEwIDk2bTAtNTM2YzYxLjg2IDAgMTEyLTUwLjE0IDExMi0xMTJzLTUwLjE0LTExMi0xMTItMTEyLTExMiA1MC4xNC0xMTIgMTEyIDUwLjE0IDExMiAxMTIgMTEybTAtNjRhNDggNDggMCAxMTAtOTYgNDggNDggMCAwMTAgOTYifX1dfSxuYW1lOiJtZXJnZSIsdGhlbWU6Im91dGxpbmVkIn0sZHo9dXosZno9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246ZHp9KSl9LHZ6PXQuZm9yd2FyZFJlZihmeiksaHo9dnosbXo9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkyNC4zIDMzOC40YTQ0Ny41NyA0NDcuNTcgMCAwMC05Ni4xLTE0My4zIDQ0My4wOSA0NDMuMDkgMCAwMC0xNDMtOTYuM0E0NDMuOTEgNDQzLjkxIDAgMDA1MTIgNjRoLTJjLTYwLjUuMy0xMTkgMTIuMy0xNzQuMSAzNS45YTQ0NC4wOCA0NDQuMDggMCAwMC0xNDEuNyA5Ni41IDQ0NSA0NDUgMCAwMC05NSAxNDIuOEE0NDkuODkgNDQ5Ljg5IDAgMDA2NSA1MTQuMWMuMyA2OS40IDE2LjkgMTM4LjMgNDcuOSAxOTkuOXYxNTJjMCAyNS40IDIwLjYgNDYgNDUuOSA0NmgxNTEuOGE0NDcuNzIgNDQ3LjcyIDAgMDAxOTkuNSA0OGgyLjFjNTkuOCAwIDExNy43LTExLjYgMTcyLjMtMzQuM0E0NDMuMiA0NDMuMiAwIDAwODI3IDgzMC41YzQxLjItNDAuOSA3My42LTg4LjcgOTYuMy0xNDIgMjMuNS01NS4yIDM1LjUtMTEzLjkgMzUuOC0xNzQuNS4yLTYwLjktMTEuNi0xMjAtMzQuOC0xNzUuNnpNMzEyLjQgNTYwYy0yNi40IDAtNDcuOS0yMS41LTQ3LjktNDhzMjEuNS00OCA0Ny45LTQ4IDQ3LjkgMjEuNSA0Ny45IDQ4LTIxLjQgNDgtNDcuOSA0OHptMTk5LjYgMGMtMjYuNCAwLTQ3LjktMjEuNS00Ny45LTQ4czIxLjUtNDggNDcuOS00OCA0Ny45IDIxLjUgNDcuOSA0OC0yMS41IDQ4LTQ3LjkgNDh6bTE5OS42IDBjLTI2LjQgMC00Ny45LTIxLjUtNDcuOS00OHMyMS41LTQ4IDQ3LjktNDggNDcuOSAyMS41IDQ3LjkgNDgtMjEuNSA0OC00Ny45IDQ4eiJ9fV19LG5hbWU6Im1lc3NhZ2UiLHRoZW1lOiJmaWxsZWQifSxnej1teixwej1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpnen0pKX0seXo9dC5mb3J3YXJkUmVmKHB6KSxDej15eixiej17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNDY0IDUxMmE0OCA0OCAwIDEwOTYgMCA0OCA0OCAwIDEwLTk2IDB6bTIwMCAwYTQ4IDQ4IDAgMTA5NiAwIDQ4IDQ4IDAgMTAtOTYgMHptLTQwMCAwYTQ4IDQ4IDAgMTA5NiAwIDQ4IDQ4IDAgMTAtOTYgMHptNjYxLjItMTczLjZjLTIyLjYtNTMuNy01NS0xMDEuOS05Ni4zLTE0My4zYTQ0NC4zNSA0NDQuMzUgMCAwMC0xNDMuMy05Ni4zQzYzMC42IDc1LjcgNTcyLjIgNjQgNTEyIDY0aC0yYy02MC42LjMtMTE5LjMgMTIuMy0xNzQuNSAzNS45YTQ0NS4zNSA0NDUuMzUgMCAwMC0xNDIgOTYuNWMtNDAuOSA0MS4zLTczIDg5LjMtOTUuMiAxNDIuOC0yMyA1NS40LTM0LjYgMTE0LjMtMzQuMyAxNzQuOUE0NDkuNCA0NDkuNCAwIDAwMTEyIDcxNHYxNTJhNDYgNDYgMCAwMDQ2IDQ2aDE1Mi4xQTQ0OS40IDQ0OS40IDAgMDA1MTAgOTYwaDIuMWM1OS45IDAgMTE4LTExLjYgMTcyLjctMzQuM2E0NDQuNDggNDQ0LjQ4IDAgMDAxNDIuOC05NS4yYzQxLjMtNDAuOSA3My44LTg4LjcgOTYuNS0xNDIgMjMuNi01NS4yIDM1LjYtMTEzLjkgMzUuOS0xNzQuNS4zLTYwLjktMTEuNS0xMjAtMzQuOC0xNzUuNnptLTE1MS4xIDQzOEM3MDQgODQ1LjggNjExIDg4NCA1MTIgODg0aC0xLjdjLTYwLjMtLjMtMTIwLjItMTUuMy0xNzMuMS00My41bC04LjQtNC41SDE4OFY2OTUuMmwtNC41LTguNEMxNTUuMyA2MzMuOSAxNDAuMyA1NzQgMTQwIDUxMy43Yy0uNC05OS43IDM3LjctMTkzLjMgMTA3LjYtMjYzLjggNjkuOC03MC41IDE2My4xLTEwOS41IDI2Mi44LTEwOS45aDEuN2M1MCAwIDk4LjUgOS43IDE0NC4yIDI4LjkgNDQuNiAxOC43IDg0LjYgNDUuNiAxMTkgODAgMzQuMyAzNC4zIDYxLjMgNzQuNCA4MCAxMTkgMTkuNCA0Ni4yIDI5LjEgOTUuMiAyOC45IDE0NS44LS42IDk5LjYtMzkuNyAxOTIuOS0xMTAuMSAyNjIuN3oifX1dfSxuYW1lOiJtZXNzYWdlIix0aGVtZToib3V0bGluZWQifSxTej1ieixPej1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpTen0pKX0seHo9dC5mb3J3YXJkUmVmKE96KSx3ej14eixFej17aWNvbjpmdW5jdGlvbihmLHYpe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik03NzUuMyAyNDguOWEzNjkuNjIgMzY5LjYyIDAgMDAtMTE5LTgwQTM3MC4yIDM3MC4yIDAgMDA1MTIuMSAxNDBoLTEuN2MtOTkuNy40LTE5MyAzOS40LTI2Mi44IDEwOS45LTY5LjkgNzAuNS0xMDggMTY0LjEtMTA3LjYgMjYzLjguMyA2MC4zIDE1LjMgMTIwLjIgNDMuNSAxNzMuMWw0LjUgOC40VjgzNmgxNDAuOGw4LjQgNC41YzUyLjkgMjguMiAxMTIuOCA0My4yIDE3My4xIDQzLjVoMS43Yzk5IDAgMTkyLTM4LjIgMjYyLjEtMTA3LjYgNzAuNC02OS44IDEwOS41LTE2My4xIDExMC4xLTI2Mi43LjItNTAuNi05LjUtOTkuNi0yOC45LTE0NS44YTM3MC4xNSAzNzAuMTUgMCAwMC04MC0xMTl6TTMxMiA1NjBhNDguMDEgNDguMDEgMCAwMTAtOTYgNDguMDEgNDguMDEgMCAwMTAgOTZ6bTIwMCAwYTQ4LjAxIDQ4LjAxIDAgMDEwLTk2IDQ4LjAxIDQ4LjAxIDAgMDEwIDk2em0yMDAgMGE0OC4wMSA0OC4wMSAwIDAxMC05NiA0OC4wMSA0OC4wMSAwIDAxMCA5NnoiLGZpbGw6dn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNjY0IDUxMmE0OCA0OCAwIDEwOTYgMCA0OCA0OCAwIDEwLTk2IDB6bS00MDAgMGE0OCA0OCAwIDEwOTYgMCA0OCA0OCAwIDEwLTk2IDB6IixmaWxsOmZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkyNS4yIDMzOC40Yy0yMi42LTUzLjctNTUtMTAxLjktOTYuMy0xNDMuM2E0NDQuMzUgNDQ0LjM1IDAgMDAtMTQzLjMtOTYuM0M2MzAuNiA3NS43IDU3Mi4yIDY0IDUxMiA2NGgtMmMtNjAuNi4zLTExOS4zIDEyLjMtMTc0LjUgMzUuOWE0NDUuMzUgNDQ1LjM1IDAgMDAtMTQyIDk2LjVjLTQwLjkgNDEuMy03MyA4OS4zLTk1LjIgMTQyLjgtMjMgNTUuNC0zNC42IDExNC4zLTM0LjMgMTc0LjlBNDQ5LjQgNDQ5LjQgMCAwMDExMiA3MTR2MTUyYTQ2IDQ2IDAgMDA0NiA0NmgxNTIuMUE0NDkuNCA0NDkuNCAwIDAwNTEwIDk2MGgyLjFjNTkuOSAwIDExOC0xMS42IDE3Mi43LTM0LjNhNDQ0LjQ4IDQ0NC40OCAwIDAwMTQyLjgtOTUuMmM0MS4zLTQwLjkgNzMuOC04OC43IDk2LjUtMTQyIDIzLjYtNTUuMiAzNS42LTExMy45IDM1LjktMTc0LjUuMy02MC45LTExLjUtMTIwLTM0LjgtMTc1LjZ6bS0xNTEuMSA0MzhDNzA0IDg0NS44IDYxMSA4ODQgNTEyIDg4NGgtMS43Yy02MC4zLS4zLTEyMC4yLTE1LjMtMTczLjEtNDMuNWwtOC40LTQuNUgxODhWNjk1LjJsLTQuNS04LjRDMTU1LjMgNjMzLjkgMTQwLjMgNTc0IDE0MCA1MTMuN2MtLjQtOTkuNyAzNy43LTE5My4zIDEwNy42LTI2My44IDY5LjgtNzAuNSAxNjMuMS0xMDkuNSAyNjIuOC0xMDkuOWgxLjdjNTAgMCA5OC41IDkuNyAxNDQuMiAyOC45IDQ0LjYgMTguNyA4NC42IDQ1LjYgMTE5IDgwIDM0LjMgMzQuMyA2MS4zIDc0LjQgODAgMTE5IDE5LjQgNDYuMiAyOS4xIDk1LjIgMjguOSAxNDUuOC0uNiA5OS42LTM5LjcgMTkyLjktMTEwLjEgMjYyLjd6IixmaWxsOmZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQ2NCA1MTJhNDggNDggMCAxMDk2IDAgNDggNDggMCAxMC05NiAweiIsZmlsbDpmfX1dfX0sbmFtZToibWVzc2FnZSIsdGhlbWU6InR3b3RvbmUifSxUej1FeixNej1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpUen0pKX0sUno9dC5mb3J3YXJkUmVmKE16KSxJej1SeixQej17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTE5MiA0NzJjMCA0LjQtMy42IDgtOCA4SDMyOGMtNC40IDAtOC0zLjYtOC04di00OGMwLTQuNCAzLjYtOCA4LThoMzY4YzQuNCAwIDggMy42IDggOHY0OHoifX1dfSxuYW1lOiJtaW51cy1jaXJjbGUiLHRoZW1lOiJmaWxsZWQifSx6ej1QeixGej1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjp6en0pKX0sQXo9dC5mb3J3YXJkUmVmKEZ6KSxMej1Beixaej17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNjk2IDQ4MEgzMjhjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMzY4YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04eiJ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnoifX1dfSxuYW1lOiJtaW51cy1jaXJjbGUiLHRoZW1lOiJvdXRsaW5lZCJ9LCR6PVp6LEh6PWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOiR6fSkpfSxEej10LmZvcndhcmRSZWYoSHopLEJ6PUR6LFZ6PXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnoiLGZpbGw6Zn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDE0MGMtMjA1LjQgMC0zNzIgMTY2LjYtMzcyIDM3MnMxNjYuNiAzNzIgMzcyIDM3MiAzNzItMTY2LjYgMzcyLTM3Mi0xNjYuNi0zNzItMzcyLTM3MnptMTkyIDM5NmMwIDQuNC0zLjYgOC04IDhIMzI4Yy00LjQgMC04LTMuNi04LTh2LTQ4YzAtNC40IDMuNi04IDgtOGgzNjhjNC40IDAgOCAzLjYgOCA4djQ4eiIsZmlsbDp2fX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02OTYgNDgwSDMyOGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgzNjhjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6IixmaWxsOmZ9fV19fSxuYW1lOiJtaW51cy1jaXJjbGUiLHRoZW1lOiJ0d290b25lIn0sTno9Vnosano9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246Tnp9KSl9LFV6PXQuZm9yd2FyZFJlZihqeiksV3o9VXosa3o9ZSg1Mjc0NSksS3o9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNzA0IDUzNmMwIDQuNC0zLjYgOC04IDhIMzI4Yy00LjQgMC04LTMuNi04LTh2LTQ4YzAtNC40IDMuNi04IDgtOGgzNjhjNC40IDAgOCAzLjYgOCA4djQ4eiJ9fV19LG5hbWU6Im1pbnVzLXNxdWFyZSIsdGhlbWU6ImZpbGxlZCJ9LF96PUt6LEd6PWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOl96fSkpfSxZej10LmZvcndhcmRSZWYoR3opLFh6PVl6LFF6PWUoMjg2MzgpLEp6PXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6IixmaWxsOmZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTE4NCA4NDBoNjU2VjE4NEgxODR2NjU2em0xMzYtMzUyYzAtNC40IDMuNi04IDgtOGgzNjhjNC40IDAgOCAzLjYgOCA4djQ4YzAgNC40LTMuNiA4LTggOEgzMjhjLTQuNCAwLTgtMy42LTgtOHYtNDh6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTMyOCA1NDRoMzY4YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04SDMyOGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOHoiLGZpbGw6Zn19XX19LG5hbWU6Im1pbnVzLXNxdWFyZSIsdGhlbWU6InR3b3RvbmUifSxxej1KeixlRj1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpxen0pKX0sdEY9dC5mb3J3YXJkUmVmKGVGKSxuRj10RixyRj17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNzQ0IDYySDI4MGMtMzUuMyAwLTY0IDI4LjctNjQgNjR2NzY4YzAgMzUuMyAyOC43IDY0IDY0IDY0aDQ2NGMzNS4zIDAgNjQtMjguNyA2NC02NFYxMjZjMC0zNS4zLTI4LjctNjQtNjQtNjR6TTUxMiA4MjRjLTIyLjEgMC00MC0xNy45LTQwLTQwczE3LjktNDAgNDAtNDAgNDAgMTcuOSA0MCA0MC0xNy45IDQwLTQwIDQweiJ9fV19LG5hbWU6Im1vYmlsZSIsdGhlbWU6ImZpbGxlZCJ9LGFGPXJGLG9GPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOmFGfSkpfSxpRj10LmZvcndhcmRSZWYob0YpLGxGPWlGLHNGPWUoMjQ0NTQpLGNGPXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTc0NCA2NEgyODBjLTM1LjMgMC02NCAyOC43LTY0IDY0djc2OGMwIDM1LjMgMjguNyA2NCA2NCA2NGg0NjRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTI4YzAtMzUuMy0yOC43LTY0LTY0LTY0em0tOCA4MjRIMjg4VjEzNmg0NDh2NzUyeiIsZmlsbDpmfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0yODggODg4aDQ0OFYxMzZIMjg4djc1MnptMjI0LTE0MmMyMi4xIDAgNDAgMTcuOSA0MCA0MHMtMTcuOSA0MC00MCA0MC00MC0xNy45LTQwLTQwIDE3LjktNDAgNDAtNDB6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQ3MiA3ODZhNDAgNDAgMCAxMDgwIDAgNDAgNDAgMCAxMC04MCAweiIsZmlsbDpmfX1dfX0sbmFtZToibW9iaWxlIix0aGVtZToidHdvdG9uZSJ9LHVGPWNGLGRGPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOnVGfSkpfSxmRj10LmZvcndhcmRSZWYoZEYpLHZGPWZGLGhGPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MTEuNSA2OTkuN2E4IDggMCAwMC0xMC4zLTQuOEw4NDAgNzE3LjJWMTc5YzAtMzcuNi0zMC40LTY4LTY4LTY4SDI1MmMtMzcuNiAwLTY4IDMwLjQtNjggNjh2NTM4LjJsLTYxLjMtMjIuM2MtLjktLjMtMS44LS41LTIuNy0uNS00LjQgMC04IDMuNi04IDhWNzYyYzAgMy4zIDIuMSA2LjMgNS4zIDcuNUw1MDEgOTA5LjFjNy4xIDIuNiAxNC44IDIuNiAyMS45IDBsMzgzLjgtMTM5LjVjMy4yLTEuMiA1LjMtNC4yIDUuMy03LjV2LTU5LjZjMC0xLS4yLTEuOS0uNS0yLjh6bS0yNDMuOC0zNzdMNTY0IDUxNC4zaDU3LjZjNC40IDAgOCAzLjYgOCA4djI3LjFjMCA0LjQtMy42IDgtOCA4aC03Ni4zdjM5aDc2LjNjNC40IDAgOCAzLjYgOCA4djI3LjFjMCA0LjQtMy42IDgtOCA4aC03Ni4zVjcwM2MwIDQuNC0zLjYgOC04IDhoLTQ5LjljLTQuNCAwLTgtMy42LTgtOHYtNjMuNGgtNzZjLTQuNCAwLTgtMy42LTgtOHYtMjcuMWMwLTQuNCAzLjYtOCA4LThoNzZ2LTM5aC03NmMtNC40IDAtOC0zLjYtOC04di0yNy4xYzAtNC40IDMuNi04IDgtOGg1N0wzNTYuNSAzMjIuOGMtMi4xLTMuOC0uNy04LjcgMy4yLTEwLjggMS4yLS43IDIuNS0xIDMuOC0xaDU1LjdhOCA4IDAgMDE3LjEgNC40TDUxMSA0ODQuMmgzLjNMNTk5IDMxNS40YzEuMy0yLjcgNC4xLTQuNCA3LjEtNC40aDU0LjVjNC40IDAgOCAzLjYgOC4xIDcuOSAwIDEuMy0uNCAyLjYtMSAzLjh6In19XX0sbmFtZToibW9uZXktY29sbGVjdCIsdGhlbWU6ImZpbGxlZCJ9LG1GPWhGLGdGPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOm1GfSkpfSxwRj10LmZvcndhcmRSZWYoZ0YpLHlGPXBGLENGPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MTEuNSA3MDAuN2E4IDggMCAwMC0xMC4zLTQuOEw4NDAgNzE4LjJWMTgwYzAtMzcuNi0zMC40LTY4LTY4LTY4SDI1MmMtMzcuNiAwLTY4IDMwLjQtNjggNjh2NTM4LjJsLTYxLjMtMjIuM2MtLjktLjMtMS44LS41LTIuNy0uNS00LjQgMC04IDMuNi04IDhWNzYzYzAgMy4zIDIuMSA2LjMgNS4zIDcuNUw1MDEgOTEwLjFjNy4xIDIuNiAxNC44IDIuNiAyMS45IDBsMzgzLjgtMTM5LjVjMy4yLTEuMiA1LjMtNC4yIDUuMy03LjV2LTU5LjZjMC0xLS4yLTEuOS0uNS0yLjh6TTUxMiA4MzcuNWwtMjU2LTkzLjFWMTg0aDUxMnY1NjAuNGwtMjU2IDkzLjF6TTY2MC42IDMxMmgtNTQuNWMtMyAwLTUuOCAxLjctNy4xIDQuNGwtODQuNyAxNjguOEg1MTFsLTg0LjctMTY4LjhhOCA4IDAgMDAtNy4xLTQuNGgtNTUuN2MtMS4zIDAtMi42LjMtMy44IDEtMy45IDIuMS01LjMgNy0zLjIgMTAuOGwxMDMuOSAxOTEuNmgtNTdjLTQuNCAwLTggMy42LTggOHYyNy4xYzAgNC40IDMuNiA4IDggOGg3NnYzOWgtNzZjLTQuNCAwLTggMy42LTggOHYyNy4xYzAgNC40IDMuNiA4IDggOGg3NlY3MDRjMCA0LjQgMy42IDggOCA4aDQ5LjljNC40IDAgOC0zLjYgOC04di02My41aDc2LjNjNC40IDAgOC0zLjYgOC04di0yNy4xYzAtNC40LTMuNi04LTgtOGgtNzYuM3YtMzloNzYuM2M0LjQgMCA4LTMuNiA4LTh2LTI3LjFjMC00LjQtMy42LTgtOC04SDU2NGwxMDMuNy0xOTEuNmMuNi0xLjIgMS0yLjUgMS0zLjgtLjEtNC4zLTMuNy03LjktOC4xLTcuOXoifX1dfSxuYW1lOiJtb25leS1jb2xsZWN0Iix0aGVtZToib3V0bGluZWQifSxiRj1DRixTRj1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpiRn0pKX0sT0Y9dC5mb3J3YXJkUmVmKFNGKSx4Rj1PRix3Rj17aWNvbjpmdW5jdGlvbihmLHYpe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0yNTYgNzQ0LjRsMjU2IDkzLjEgMjU2LTkzLjFWMTg0SDI1NnY1NjAuNHpNMzU5LjcgMzEzYzEuMi0uNyAyLjUtMSAzLjgtMWg1NS43YTggOCAwIDAxNy4xIDQuNEw1MTEgNDg1LjJoMy4zTDU5OSAzMTYuNGMxLjMtMi43IDQuMS00LjQgNy4xLTQuNGg1NC41YzQuNCAwIDggMy42IDguMSA3LjkgMCAxLjMtLjQgMi42LTEgMy44TDU2NCA1MTUuM2g1Ny42YzQuNCAwIDggMy42IDggOHYyNy4xYzAgNC40LTMuNiA4LTggOGgtNzYuM3YzOWg3Ni4zYzQuNCAwIDggMy42IDggOHYyNy4xYzAgNC40LTMuNiA4LTggOGgtNzYuM1Y3MDRjMCA0LjQtMy42IDgtOCA4aC00OS45Yy00LjQgMC04LTMuNi04LTh2LTYzLjRoLTc2Yy00LjQgMC04LTMuNi04LTh2LTI3LjFjMC00LjQgMy42LTggOC04aDc2di0zOWgtNzZjLTQuNCAwLTgtMy42LTgtOHYtMjcuMWMwLTQuNCAzLjYtOCA4LThoNTdMMzU2LjUgMzIzLjhjLTIuMS0zLjgtLjctOC43IDMuMi0xMC44eiIsZmlsbDp2fX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MTEuNSA3MDAuN2E4IDggMCAwMC0xMC4zLTQuOEw4NDAgNzE4LjJWMTgwYzAtMzcuNi0zMC40LTY4LTY4LTY4SDI1MmMtMzcuNiAwLTY4IDMwLjQtNjggNjh2NTM4LjJsLTYxLjMtMjIuM2MtLjktLjMtMS44LS41LTIuNy0uNS00LjQgMC04IDMuNi04IDhWNzYzYzAgMy4zIDIuMSA2LjMgNS4zIDcuNUw1MDEgOTEwLjFjNy4xIDIuNiAxNC44IDIuNiAyMS45IDBsMzgzLjgtMTM5LjVjMy4yLTEuMiA1LjMtNC4yIDUuMy03LjV2LTU5LjZjMC0xLS4yLTEuOS0uNS0yLjh6TTc2OCA3NDQuNGwtMjU2IDkzLjEtMjU2LTkzLjFWMTg0aDUxMnY1NjAuNHoiLGZpbGw6Zn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNDYwLjQgNTE1LjRoLTU3Yy00LjQgMC04IDMuNi04IDh2MjcuMWMwIDQuNCAzLjYgOCA4IDhoNzZ2MzloLTc2Yy00LjQgMC04IDMuNi04IDh2MjcuMWMwIDQuNCAzLjYgOCA4IDhoNzZWNzA0YzAgNC40IDMuNiA4IDggOGg0OS45YzQuNCAwIDgtMy42IDgtOHYtNjMuNWg3Ni4zYzQuNCAwIDgtMy42IDgtOHYtMjcuMWMwLTQuNC0zLjYtOC04LThoLTc2LjN2LTM5aDc2LjNjNC40IDAgOC0zLjYgOC04di0yNy4xYzAtNC40LTMuNi04LTgtOEg1NjRsMTAzLjctMTkxLjZjLjYtMS4yIDEtMi41IDEtMy44LS4xLTQuMy0zLjctNy45LTguMS03LjloLTU0LjVjLTMgMC01LjggMS43LTcuMSA0LjRsLTg0LjcgMTY4LjhINTExbC04NC43LTE2OC44YTggOCAwIDAwLTcuMS00LjRoLTU1LjdjLTEuMyAwLTIuNi4zLTMuOCAxLTMuOSAyLjEtNS4zIDctMy4yIDEwLjhsMTAzLjkgMTkxLjZ6IixmaWxsOmZ9fV19fSxuYW1lOiJtb25leS1jb2xsZWN0Iix0aGVtZToidHdvdG9uZSJ9LEVGPXdGLFRGPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkVGfSkpfSxNRj10LmZvcndhcmRSZWYoVEYpLFJGPU1GLElGPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02OTIuOCA0MTIuN2wuMi0uMi0zNC42LTQ0LjNhNy45NyA3Ljk3IDAgMDAtMTEuMi0xLjRsLTUwLjQgMzkuMy03MC41LTkwLjFhNy45NyA3Ljk3IDAgMDAtMTEuMi0xLjRsLTM3LjkgMjkuN2E3Ljk3IDcuOTcgMCAwMC0xLjQgMTEuMmw3MC41IDkwLjItLjIuMSAzNC42IDQ0LjNjMi43IDMuNSA3LjcgNC4xIDExLjIgMS40bDUwLjQtMzkuMyA2NC4xIDgyYzIuNyAzLjUgNy43IDQuMSAxMS4yIDEuNGwzNy45LTI5LjZjMy41LTIuNyA0LjEtNy43IDEuNC0xMS4ybC02NC4xLTgyLjF6TTYwOCAxMTJjLTE2Ny45IDAtMzA0IDEzNi4xLTMwNCAzMDQgMCA3MC4zIDIzLjkgMTM1IDYzLjkgMTg2LjVMMTE0LjMgODU2LjFhOC4wMyA4LjAzIDAgMDAwIDExLjNsNDIuMyA0Mi4zYzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBsMjUzLjYtMjUzLjZDNDczIDY5Ni4xIDUzNy43IDcyMCA2MDggNzIwYzE2Ny45IDAgMzA0LTEzNi4xIDMwNC0zMDRTNzc1LjkgMTEyIDYwOCAxMTJ6bTE2MS4yIDQ2NS4yQzcyNi4yIDYyMC4zIDY2OC45IDY0NCA2MDggNjQ0cy0xMTguMi0yMy43LTE2MS4yLTY2LjhDNDAzLjcgNTM0LjIgMzgwIDQ3Ni45IDM4MCA0MTZzMjMuNy0xMTguMiA2Ni44LTE2MS4yYzQzLTQzLjEgMTAwLjMtNjYuOCAxNjEuMi02Ni44czExOC4yIDIzLjcgMTYxLjIgNjYuOGM0My4xIDQzIDY2LjggMTAwLjMgNjYuOCAxNjEuMnMtMjMuNyAxMTguMi02Ni44IDE2MS4yeiJ9fV19LG5hbWU6Im1vbml0b3IiLHRoZW1lOiJvdXRsaW5lZCJ9LFBGPUlGLHpGPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOlBGfSkpfSxGRj10LmZvcndhcmRSZWYoekYpLEFGPUZGLExGPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6eyJmaWxsLXJ1bGUiOiJldmVub2RkIix2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNDg5LjUgMTExLjY2YzMwLjY1LTEuOCA0NS45OCAzNi40NCAyMi41OCA1Ni4zM0EyNDMuMzUgMjQzLjM1IDAgMDA0MjYgMzU0YzAgMTM0Ljc2IDEwOS4yNCAyNDQgMjQ0IDI0NCA3Mi41OCAwIDEzOS45LTMxLjgzIDE4Ni4wMS04Ni4wOCAxOS44Ny0yMy4zOCA1OC4wNy04LjEgNTYuMzQgMjIuNTNDOTAwLjQgNzQ1LjgyIDcyNS4xNSA5MTIgNTEyLjUgOTEyIDI5MS4zMSA5MTIgMTEyIDczMi42OSAxMTIgNTExLjVjMC0yMTEuMzkgMTY0LjI5LTM4Ni4wMiAzNzQuMi0zOTkuNjVsLjItLjAxeiJ9fV19LG5hbWU6Im1vb24iLHRoZW1lOiJmaWxsZWQifSxaRj1MRiwkRj1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpaRn0pKX0sSEY9dC5mb3J3YXJkUmVmKCRGKSxERj1IRixCRj17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnsiZmlsbC1ydWxlIjoiZXZlbm9kZCIsdmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQ4OS41IDExMS42NmMzMC42NS0xLjggNDUuOTggMzYuNDQgMjIuNTggNTYuMzNBMjQzLjM1IDI0My4zNSAwIDAwNDI2IDM1NGMwIDEzNC43NiAxMDkuMjQgMjQ0IDI0NCAyNDQgNzIuNTggMCAxMzkuOS0zMS44MyAxODYuMDEtODYuMDggMTkuODctMjMuMzggNTguMDctOC4xIDU2LjM0IDIyLjUzQzkwMC40IDc0NS44MiA3MjUuMTUgOTEyIDUxMi41IDkxMiAyOTEuMzEgOTEyIDExMiA3MzIuNjkgMTEyIDUxMS41YzAtMjExLjM5IDE2NC4yOS0zODYuMDIgMzc0LjItMzk5LjY1bC4yLS4wMXptLTgxLjE1IDc5Ljc1bC00LjExIDEuMzZDMjcxLjEgMjM3Ljk0IDE3NiAzNjQuMDkgMTc2IDUxMS41IDE3NiA2OTcuMzQgMzI2LjY2IDg0OCA1MTIuNSA4NDhjMTQ4LjI4IDAgMjc0Ljk0LTk2LjIgMzE5LjQ1LTIzMC40MWwuNjMtMS45My0uMTEuMDdhMzA3LjA2IDMwNy4wNiAwIDAxLTE1OS43MyA0Ni4yNkw2NzAgNjYyYy0xNzAuMSAwLTMwOC0xMzcuOS0zMDgtMzA4IDAtNTguNiAxNi40OC0xMTQuNTQgNDYuMjctMTYyLjQ3eiJ9fV19LG5hbWU6Im1vb24iLHRoZW1lOiJvdXRsaW5lZCJ9LFZGPUJGLE5GPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOlZGfSkpfSxqRj10LmZvcndhcmRSZWYoTkYpLFVGPWpGLFdGPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00NTYgMjMxYTU2IDU2IDAgMTAxMTIgMCA1NiA1NiAwIDEwLTExMiAwem0wIDI4MGE1NiA1NiAwIDEwMTEyIDAgNTYgNTYgMCAxMC0xMTIgMHptMCAyODBhNTYgNTYgMCAxMDExMiAwIDU2IDU2IDAgMTAtMTEyIDB6In19XX0sbmFtZToibW9yZSIsdGhlbWU6Im91dGxpbmVkIn0sa0Y9V0YsS0Y9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246a0Z9KSl9LF9GPXQuZm9yd2FyZFJlZihLRiksR0Y9X0YsWUY9e2ljb246e3RhZzoic3ZnIixhdHRyczp7ImZpbGwtcnVsZSI6ImV2ZW5vZGQiLHZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik03NzEuOTEgMTE1YTMxLjY1IDMxLjY1IDAgMDAtMTcuNDIgNS4yN0w0MDAgMzUxLjk3SDIzNmExNiAxNiAwIDAwLTE2IDE2djI4OC4wNmExNiAxNiAwIDAwMTYgMTZoMTY0bDM1NC41IDIzMS43YTMxLjY2IDMxLjY2IDAgMDAxNy40MiA1LjI3YzE2LjY1IDAgMzIuMDgtMTMuMjUgMzIuMDgtMzIuMDZWMTQ3LjA2YzAtMTguOC0xNS40NC0zMi4wNi0zMi4wOS0zMi4wNiJ9fV19LG5hbWU6Im11dGVkIix0aGVtZToiZmlsbGVkIn0sWEY9WUYsUUY9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246WEZ9KSl9LEpGPXQuZm9yd2FyZFJlZihRRikscUY9SkYsZUE9e2ljb246e3RhZzoic3ZnIixhdHRyczp7ImZpbGwtcnVsZSI6ImV2ZW5vZGQiLHZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik03NzEuOTEgMTE1YTMxLjY1IDMxLjY1IDAgMDAtMTcuNDIgNS4yN0w0MDAgMzUxLjk3SDIzNmExNiAxNiAwIDAwLTE2IDE2djI4OC4wNmExNiAxNiAwIDAwMTYgMTZoMTY0bDM1NC41IDIzMS43YTMxLjY2IDMxLjY2IDAgMDAxNy40MiA1LjI3YzE2LjY1IDAgMzIuMDgtMTMuMjUgMzIuMDgtMzIuMDZWMTQ3LjA2YzAtMTguOC0xNS40NC0zMi4wNi0zMi4wOS0zMi4wNk03MzIgMjIxdjU4Mkw0MzkuMzkgNjExLjc1bC0xNy45NS0xMS43M0gyOTJWNDIzLjk4aDEyOS40NGwxNy45NS0xMS43M3oifX1dfSxuYW1lOiJtdXRlZCIsdGhlbWU6Im91dGxpbmVkIn0sdEE9ZUEsbkE9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246dEF9KSl9LHJBPXQuZm9yd2FyZFJlZihuQSksYUE9ckEsb0E9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJkZWZzIixhdHRyczp7fSxjaGlsZHJlbjpbe3RhZzoic3R5bGUiLGF0dHJzOnt9fV19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNOTUyIDYxMmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOEgyOThhOTUuOTIgOTUuOTIgMCAwMC04OS02MGMtNTMgMC05NiA0My05NiA5NnM0MyA5NiA5NiA5NmM0MC4zIDAgNzQuOC0yNC44IDg5LTYwaDE1MC4zdjE1MmMwIDU1LjIgNDQuOCAxMDAgMTAwIDEwMEg5NTJjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThINTQ4LjNjLTE1LjUgMC0yOC0xMi41LTI4LTI4VjYxMkg5NTJ6TTQ1MS43IDMxMy43bDE3Mi41IDEzNi4yYzYuMyA1LjEgMTUuOC41IDE1LjgtNy43VjM0NGgyNjRjNC40IDAgOC0zLjYgOC04di02MGMwLTQuNC0zLjYtOC04LThINjQwdi05OC4yYzAtOC4xLTkuNC0xMi44LTE1LjgtNy43TDQ1MS43IDI5OC4zYTkuOSA5LjkgMCAwMDAgMTUuNHoifX1dfSxuYW1lOiJub2RlLWNvbGxhcHNlIix0aGVtZToib3V0bGluZWQifSxpQT1vQSxsQT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjppQX0pKX0sc0E9dC5mb3J3YXJkUmVmKGxBKSxjQT1zQSx1QT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6ImRlZnMiLGF0dHJzOnt9LGNoaWxkcmVuOlt7dGFnOiJzdHlsZSIsYXR0cnM6e319XX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05NTIgNjEyYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04SDI5OGE5NS45MiA5NS45MiAwIDAwLTg5LTYwYy01MyAwLTk2IDQzLTk2IDk2czQzIDk2IDk2IDk2YzQwLjMgMCA3NC44LTI0LjggODktNjBoMTUwLjN2MTUyYzAgNTUuMiA0NC44IDEwMCAxMDAgMTAwSDk1MmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOEg1NDguM2MtMTUuNSAwLTI4LTEyLjUtMjgtMjhWNjEySDk1MnpNNDU2IDM0NGgyNjR2OTguMmMwIDguMSA5LjUgMTIuOCAxNS44IDcuN2wxNzIuNS0xMzYuMmM1LTMuOSA1LTExLjQgMC0xNS4zTDczNS44IDE2Mi4xYy02LjQtNS4xLTE1LjgtLjUtMTUuOCA3LjdWMjY4SDQ1NmMtNC40IDAtOCAzLjYtOCA4djYwYzAgNC40IDMuNiA4IDggOHoifX1dfSxuYW1lOiJub2RlLWV4cGFuZCIsdGhlbWU6Im91dGxpbmVkIn0sZEE9dUEsZkE9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246ZEF9KSl9LHZBPXQuZm9yd2FyZFJlZihmQSksaEE9dkEsbUE9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJkZWZzIixhdHRyczp7fSxjaGlsZHJlbjpbe3RhZzoic3R5bGUiLGF0dHJzOnt9fV19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODQzLjUgNzM3LjRjLTEyLjQtNzUuMi03OS4yLTEyOS4xLTE1NS4zLTEyNS40UzU1MC45IDY3NiA1NDYgNzUyYy0xNTMuNS00LjgtMjA4LTQwLjctMTk5LjEtMTEzLjcgMy4zLTI3LjMgMTkuOC00MS45IDUwLjEtNDkgMTguNC00LjMgMzguOC00LjkgNTcuMy0zLjIgMS43LjIgMy41LjMgNS4yLjUgMTEuMyAyLjcgMjIuOCA1IDM0LjMgNi44IDM0LjEgNS42IDY4LjggOC40IDEwMS44IDYuNiA5Mi44LTUgMTU2LTQ1LjkgMTU5LjItMTMyLjcgMy4xLTg0LjEtNTQuNy0xNDMuNy0xNDcuOS0xODMuNi0yOS45LTEyLjgtNjEuNi0yMi43LTkzLjMtMzAuMi0xNC4zLTMuNC0yNi4zLTUuNy0zNS4yLTcuMi03LjktNzUuOS03MS41LTEzMy44LTE0Ny44LTEzNC40LTc2LjMtLjYtMTQwLjkgNTYuMS0xNTAuMSAxMzEuOXM0MCAxNDYuMyAxMTQuMiAxNjMuOWM3NC4yIDE3LjYgMTQ5LjktMjMuMyAxNzUuNy05NS4xIDkuNCAxLjcgMTguNyAzLjYgMjggNS44IDI4LjIgNi42IDU2LjQgMTUuNCA4Mi40IDI2LjYgNzAuNyAzMC4yIDEwOS4zIDcwLjEgMTA3LjUgMTE5LjktMS42IDQ0LjYtMzMuNiA2NS4yLTk2LjIgNjguNi0yNy41IDEuNS01Ny42LS45LTg3LjMtNS44LTguMy0xLjQtMTUuOS0yLjgtMjIuNi00LjMtMy45LS44LTYuNi0xLjUtNy44LTEuOGwtMy4xLS42Yy0yLjItLjMtNS45LS44LTEwLjctMS4zLTI1LTIuMy01Mi4xLTEuNS03OC41IDQuNi01NS4yIDEyLjktOTMuOSA0Ny4yLTEwMS4xIDEwNS44LTE1LjcgMTI2LjIgNzguNiAxODQuNyAyNzYgMTg4LjkgMjkuMSA3MC40IDEwNi40IDEwNy45IDE3OS42IDg3IDczLjMtMjAuOSAxMTkuMy05My40IDEwNi45LTE2OC42ek0zMjkuMSAzNDUuMmE4My4zIDgzLjMgMCAxMS4wMS0xNjYuNjEgODMuMyA4My4zIDAgMDEtLjAxIDE2Ni42MXpNNjk1LjYgODQ1YTgzLjMgODMuMyAwIDExLjAxLTE2Ni42MUE4My4zIDgzLjMgMCAwMTY5NS42IDg0NXoifX1dfSxuYW1lOiJub2RlLWluZGV4Iix0aGVtZToib3V0bGluZWQifSxnQT1tQSxwQT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpnQX0pKX0seUE9dC5mb3J3YXJkUmVmKHBBKSxDQT15QSxiQT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDExMmMtMy44IDAtNy43LjctMTEuNiAyLjNMMjkyIDM0NS45SDEyOGMtOC44IDAtMTYgNy40LTE2IDE2LjZ2Mjk5YzAgOS4yIDcuMiAxNi42IDE2IDE2LjZoMTAxLjZjLTMuNyAxMS42LTUuNiAyMy45LTUuNiAzNi40IDAgNjUuOSA1My44IDExOS41IDEyMCAxMTkuNSA1NS40IDAgMTAyLjEtMzcuNiAxMTUuOS04OC40bDQwOC42IDE2NC4yYzMuOSAxLjUgNy44IDIuMyAxMS42IDIuMyAxNi45IDAgMzItMTQuMiAzMi0zMy4yVjE0NS4yQzkxMiAxMjYuMiA4OTcgMTEyIDg4MCAxMTJ6TTM0NCA3NjIuM2MtMjYuNSAwLTQ4LTIxLjQtNDgtNDcuOCAwLTExLjIgMy45LTIxLjkgMTEtMzAuNGw4NC45IDM0LjFjLTIgMjQuNi0yMi43IDQ0LjEtNDcuOSA0NC4xeiJ9fV19LG5hbWU6Im5vdGlmaWNhdGlvbiIsdGhlbWU6ImZpbGxlZCJ9LFNBPWJBLE9BPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOlNBfSkpfSx4QT10LmZvcndhcmRSZWYoT0EpLHdBPXhBLEVBPWUoNTYwMyksVEE9e2ljb246ZnVuY3Rpb24oZix2KXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMjI5LjYgNjc4LjFjLTMuNyAxMS42LTUuNiAyMy45LTUuNiAzNi40IDAtMTIuNSAyLTI0LjggNS43LTM2LjRoLS4xem03Ni4zLTI2MC4ySDE4NHYxODguMmgxMjEuOWwxMi45IDUuMkw4NDAgODIwLjdWMjAzLjNMMzE4LjggNDEyLjd6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxMTJjLTMuOCAwLTcuNy43LTExLjYgMi4zTDI5MiAzNDUuOUgxMjhjLTguOCAwLTE2IDcuNC0xNiAxNi42djI5OWMwIDkuMiA3LjIgMTYuNiAxNiAxNi42aDEwMS43Yy0zLjcgMTEuNi01LjcgMjMuOS01LjcgMzYuNCAwIDY1LjkgNTMuOCAxMTkuNSAxMjAgMTE5LjUgNTUuNCAwIDEwMi4xLTM3LjYgMTE1LjktODguNGw0MDguNiAxNjQuMmMzLjkgMS41IDcuOCAyLjMgMTEuNiAyLjMgMTYuOSAwIDMyLTE0LjIgMzItMzMuMlYxNDUuMkM5MTIgMTI2LjIgODk3IDExMiA4ODAgMTEyek0zNDQgNzYyLjNjLTI2LjUgMC00OC0yMS40LTQ4LTQ3LjggMC0xMS4yIDMuOS0yMS45IDExLTMwLjRsODQuOSAzNC4xYy0yIDI0LjYtMjIuNyA0NC4xLTQ3LjkgNDQuMXptNDk2IDU4LjRMMzE4LjggNjExLjNsLTEyLjktNS4ySDE4NFY0MTcuOWgxMjEuOWwxMi45LTUuMkw4NDAgMjAzLjN2NjE3LjR6IixmaWxsOmZ9fV19fSxuYW1lOiJub3RpZmljYXRpb24iLHRoZW1lOiJ0d290b25lIn0sTUE9VEEsUkE9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246TUF9KSl9LElBPXQuZm9yd2FyZFJlZihSQSksUEE9SUEsekE9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg3MiAzOTRjNC40IDAgOC0zLjYgOC04di02MGMwLTQuNC0zLjYtOC04LThINzA4VjE1MmMwLTQuNC0zLjYtOC04LThoLTY0Yy00LjQgMC04IDMuNi04IDh2MTY2SDQwMFYxNTJjMC00LjQtMy42LTgtOC04aC02NGMtNC40IDAtOCAzLjYtOCA4djE2NkgxNTJjLTQuNCAwLTggMy42LTggOHY2MGMwIDQuNCAzLjYgOCA4IDhoMTY4djIzNkgxNTJjLTQuNCAwLTggMy42LTggOHY2MGMwIDQuNCAzLjYgOCA4IDhoMTY4djE2NmMwIDQuNCAzLjYgOCA4IDhoNjRjNC40IDAgOC0zLjYgOC04VjcwNmgyMjh2MTY2YzAgNC40IDMuNiA4IDggOGg2NGM0LjQgMCA4LTMuNiA4LThWNzA2aDE2NGM0LjQgMCA4LTMuNiA4LTh2LTYwYzAtNC40LTMuNi04LTgtOEg3MDhWMzk0aDE2NHpNNjI4IDYzMEg0MDBWMzk0aDIyOHYyMzZ6In19XX0sbmFtZToibnVtYmVyIix0aGVtZToib3V0bGluZWQifSxGQT16QSxBQT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpGQX0pKX0sTEE9dC5mb3J3YXJkUmVmKEFBKSxaQT1MQSwkQT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6ImRlZnMiLGF0dHJzOnt9LGNoaWxkcmVuOlt7dGFnOiJzdHlsZSIsYXR0cnM6e319XX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0zMTYgNjcyaDYwYzQuNCAwIDgtMy42IDgtOFYzNjBjMC00LjQtMy42LTgtOC04aC02MGMtNC40IDAtOCAzLjYtOCA4djMwNGMwIDQuNCAzLjYgOCA4IDh6bTE5Ni01MGMyMi4xIDAgNDAtMTcuOSA0MC0zOSAwLTIzLjEtMTcuOS00MS00MC00MXMtNDAgMTcuOS00MCA0MWMwIDIxLjEgMTcuOSAzOSA0MCAzOXptMC0xNDBjMjIuMSAwIDQwLTE3LjkgNDAtMzkgMC0yMy4xLTE3LjktNDEtNDAtNDFzLTQwIDE3LjktNDAgNDFjMCAyMS4xIDE3LjkgMzkgNDAgMzl6In19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNzI4SDE4NFYxODRoNjU2djY1NnoifX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02NDggNjcyaDYwYzQuNCAwIDgtMy42IDgtOFYzNjBjMC00LjQtMy42LTgtOC04aC02MGMtNC40IDAtOCAzLjYtOCA4djMwNGMwIDQuNCAzLjYgOCA4IDh6In19XX0sbmFtZToib25lLXRvLW9uZSIsdGhlbWU6Im91dGxpbmVkIn0sSEE9JEEsREE9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246SEF9KSl9LEJBPXQuZm9yd2FyZFJlZihEQSksVkE9QkEsTkE9e2ljb246e3RhZzoic3ZnIixhdHRyczp7ImZpbGwtcnVsZSI6ImV2ZW5vZGQiLHZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00NzUuNiAxMTJjLTc0LjAzIDAtMTM5LjcyIDQyLjM4LTE3Mi45MiAxMDQuNTh2MjM3LjI4bDkyLjI3IDU2LjQ4IDMuMzgtMjM1LjcgMTg5LTEyNy40NUExOTQuMzMgMTk0LjMzIDAgMDA0NzUuNiAxMTJtMjAyLjkgNjIuMjVjLTEzLjE3IDAtMjYuMDUgMS43Ni0zOC44IDQuMzZMNDUzLjIgMzA0LjM2bC0xLjM3IDk2LjE1IDE4Ni41OC0xMjUuMjUgMjMxLjIyIDEzNy4yOGExOTUuNSAxOTUuNSAwIDAwNC44Ny00Mi4zM2MwLTEwOC4wNC04Ny45My0xOTUuOTYtMTk1Ljk5LTE5NS45Nk0yNDcuMzQgMjY2QzE2Ny4zNCAyOTAuNyAxMDkgMzY1LjIyIDEwOSA0NTMuMmMwIDI3LjkyIDUuOSA1NC44MyAxNi43OSA3OS4zNmwyNDUuNDggMTM5Ljc3IDkwLjU4LTU2LjEyLTIxNC41LTEzMS4zOHptMzkyLjg4IDc0LjY3bC03Mi43IDQ4Ljg1TDc3MS41IDUxNy41OCA3OTcuMyA3NTNDODY3LjQxIDcyMy4xMSA5MTYgNjUzLjk3IDkxNiA1NzMuMWMwLTI3LjU1LTUuODYtNTQuMTItMTYuNTctNzguNTN6bS0xMjMgODIuNmwtNjYuMzYgNDQuNTYtMS4wNSA3Ni4xMiA2NC43IDM5LjY2IDY5LjU0LTQzLjA0LTEuODQtNzYuNDh6bTEyMS4yIDc2LjEybDUuODcgMjQ4LjM0TDQ0MyA4NjYuOUExOTUuNjUgMTk1LjY1IDAgMDA1NjcuODQgOTEyYzc5LjIyIDAgMTQ3LjgtNDYuNTIgMTc4LjYyLTExNC45OUw3MTkuNCA1NTAuMjJ6bS01Mi44NiAxMDUuM0wzNzIuNDMgNzM2LjY4IDE2OS41NiA2MjEuMTVhMTk1LjM1IDE5NS4zNSAwIDAwLTUuMjIgNDQuMTZjMCAxMDIuOTQgNzkuODQgMTg3LjQxIDE4MC44MSAxOTUuMThMNTg4LjIgNzE2LjZ6In19XX0sbmFtZToib3Blbi1hLWkiLHRoZW1lOiJmaWxsZWQifSxqQT1OQSxVQT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpqQX0pKX0sV0E9dC5mb3J3YXJkUmVmKFVBKSxrQT1XQSxLQT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnsiZmlsbC1ydWxlIjoiZXZlbm9kZCIsdmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQ4Mi44OCAxMjhjLTg0LjM1IDAtMTU2LjU4IDUyLjgtMTg1LjY4IDEyNi45OC02MC44OSA4LjEzLTExNS4zIDQzLjYzLTE0Ni42IDk3Ljg0LTQyLjE2IDczLTMyLjU1IDE2MS44OCAxNy4xNCAyMjQuMTYtMjMuMzggNTYuNzUtMTkuODUgMTIxLjYgMTEuNDIgMTc1Ljc4IDQyLjE4IDczLjAyIDEyNC4xIDEwOS4xNSAyMDIuOTQgOTcuMjNDNDE5LjU4IDg5OC42MyA0NzcuNTEgOTI4IDU0MC4xMiA5MjhjODQuMzUgMCAxNTYuNTgtNTIuOCAxODUuNjgtMTI2Ljk4IDYwLjg5LTguMTMgMTE1LjMtNDMuNjIgMTQ2LjYtOTcuODQgNDIuMTYtNzMgMzIuNTUtMTYxLjg4LTE3LjE0LTIyNC4xNiAyMy4zOC01Ni43NSAxOS44NS0xMjEuNi0xMS40Mi0xNzUuNzgtNDIuMTgtNzMuMDItMTI0LjEtMTA5LjE1LTIwMi45NC05Ny4yM0M2MDMuNDIgMTU3LjM4IDU0NS40OSAxMjggNDgyLjg4IDEyOG0wIDYxLjU0YzM1LjYgMCA2OC45NyAxMy45OSA5NC4yMiAzNy43NC0xLjkzIDEuMDMtMy45MiAxLjg0LTUuODMgMi45NGwtMTM2LjY4IDc4LjkxYTQ2LjExIDQ2LjExIDAgMDAtMjMuMDkgMzkuNzhsLS44NCAxODMuNi02NS43Mi0zOC4zNFYzMjcuNGMwLTc2IDYxLjktMTM3Ljg2IDEzNy45NC0xMzcuODZtMTk3LjcgNzUuOWM0NC4xOSAzLjE0IDg2LjE2IDI3LjQ0IDEwOS45MiA2OC41NyAxNy44IDMwLjggMjIuMzggNjYuNyAxNC40MyAxMDAuNDItMS44OC0xLjE3LTMuNi0yLjQ5LTUuNTMtMy42bC0xMzYuNzMtNzguOTFhNDYuMjMgNDYuMjMgMCAwMC00Ni0uMDZsLTE1OS40NyA5MS4xLjM2LTc2LjAyIDE0NC41LTgzLjQxYTEzNy4xOSAxMzcuMTkgMCAwMTc4LjUzLTE4LjA5bS0zOTYuOTIgNTUuNGMtLjA3IDIuMi0uMyA0LjM1LS4zIDYuNTZ2MTU3Ljc1YTQ2LjE5IDQ2LjE5IDAgMDAyMi45MSAzOS45bDE1OC42OCA5Mi41LTY2LjAyIDM3LjY3LTE0NC41NS04My4zNWMtNjUuODYtMzgtODguNDctMTIyLjUzLTUwLjQ1LTE4OC4zNCAxNy43OC0zMC43OCA0Ni41NS01Mi42OSA3OS43My02Mi42OG0zNDAuNCA3OS45M2wxNDQuNTQgODMuMzVjNjUuODYgMzggODguNDcgMTIyLjUzIDUwLjQ1IDE4OC4zNC0xNy43OCAzMC43OC00Ni41NSA1Mi42OS03OS43MyA2Mi42OC4wNy0yLjE5LjMtNC4zNC4zLTYuNTVWNTcwLjg1YTQ2LjE5IDQ2LjE5IDAgMDAtMjIuOS0zOS45bC0xNTguNjktOTIuNXpNNTExLjggNDY0Ljg0bDU0LjU0IDMxLjc5LS4zIDYzLjIyLTU0Ljg0IDMxLjMxLTU0LjU0LTMxLjg1LjMtNjMuMTZ6bTEwMC41NCA1OC42NWw2NS43MiAzOC4zNVY3MjguNmMwIDc2LTYxLjkgMTM3Ljg2LTEzNy45NCAxMzcuODYtMzUuNiAwLTY4Ljk3LTEzLjk5LTk0LjIyLTM3Ljc0IDEuOTMtMS4wMyAzLjkyLTEuODQgNS44My0yLjk0bDEzNi42OC03OC45YTQ2LjExIDQ2LjExIDAgMDAyMy4wOS0zOS44em0tNDYuNTQgODkuNTVsLS4zNiA3Ni4wMi0xNDQuNSA4My40MWMtNjUuODUgMzgtMTUwLjQyIDE1LjM0LTE4OC40NC01MC40OC0xNy44LTMwLjgtMjIuMzgtNjYuNy0xNC40My0xMDAuNDIgMS44OCAxLjE3IDMuNiAyLjUgNS41MyAzLjZsMTM2Ljc0IDc4LjkxYTQ2LjIzIDQ2LjIzIDAgMDA0NiAuMDZ6In19XX0sbmFtZToib3Blbi1hLWkiLHRoZW1lOiJvdXRsaW5lZCJ9LF9BPUtBLEdBPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOl9BfSkpfSxZQT10LmZvcndhcmRSZWYoR0EpLFhBPVlBLFFBPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MjAgNzYwSDMzNmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1ODRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtNTY4SDMzNmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1ODRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgMjg0SDMzNmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1ODRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6TTIxNiA3MTJIMTAwYy0yLjIgMC00IDEuOC00IDR2MzRjMCAyLjIgMS44IDQgNCA0aDcyLjR2MjAuNWgtMzUuN2MtMi4yIDAtNCAxLjgtNCA0djM0YzAgMi4yIDEuOCA0IDQgNGgzNS43VjgzOEgxMDBjLTIuMiAwLTQgMS44LTQgNHYzNGMwIDIuMiAxLjggNCA0IDRoMTE2YzIuMiAwIDQtMS44IDQtNFY3MTZjMC0yLjItMS44LTQtNC00ek0xMDAgMTg4aDM4djEyMGMwIDIuMiAxLjggNCA0IDRoNDBjMi4yIDAgNC0xLjggNC00VjE1MmMwLTQuNC0zLjYtOC04LThoLTc4Yy0yLjIgMC00IDEuOC00IDR2MzZjMCAyLjIgMS44IDQgNCA0em0xMTYgMjQwSDEwMGMtMi4yIDAtNCAxLjgtNCA0djM2YzAgMi4yIDEuOCA0IDQgNGg2OC40bC03MC4zIDc3LjdhOC4zIDguMyAwIDAwLTIuMSA1LjRWNTkyYzAgMi4yIDEuOCA0IDQgNGgxMTZjMi4yIDAgNC0xLjggNC00di0zNmMwLTIuMi0xLjgtNC00LTRoLTY4LjRsNzAuMy03Ny43YTguMyA4LjMgMCAwMDIuMS01LjRWNDMyYzAtMi4yLTEuOC00LTQtNHoifX1dfSxuYW1lOiJvcmRlcmVkLWxpc3QiLHRoZW1lOiJvdXRsaW5lZCJ9LEpBPVFBLHFBPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkpBfSkpfSxlTD10LmZvcndhcmRSZWYocUEpLHRMPWVMLG5MPWUoNTM5Miksckw9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJkZWZzIixhdHRyczp7fSxjaGlsZHJlbjpbe3RhZzoic3R5bGUiLGF0dHJzOnt9fV19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNjQwLjYgNDI5LjhoMjU3LjFjNy45IDAgMTQuMy02LjQgMTQuMy0xNC4zVjE1OC4zYzAtNy45LTYuNC0xNC4zLTE0LjMtMTQuM0g2NDAuNmMtNy45IDAtMTQuMyA2LjQtMTQuMyAxNC4zdjkyLjlINDkwLjZjLTMuOSAwLTcuMSAzLjItNy4xIDcuMXYyMjEuNWgtODUuN3YtOTYuNWMwLTcuOS02LjQtMTQuMy0xNC4zLTE0LjNIMTI2LjNjLTcuOSAwLTE0LjMgNi40LTE0LjMgMTQuM3YyNTcuMmMwIDcuOSA2LjQgMTQuMyAxNC4zIDE0LjNoMjU3LjFjNy45IDAgMTQuMy02LjQgMTQuMy0xNC4zVjU0NGg4NS43djIyMS41YzAgMy45IDMuMiA3LjEgNy4xIDcuMWgxMzUuN3Y5Mi45YzAgNy45IDYuNCAxNC4zIDE0LjMgMTQuM2gyNTcuMWM3LjkgMCAxNC4zLTYuNCAxNC4zLTE0LjN2LTI1N2MwLTcuOS02LjQtMTQuMy0xNC4zLTE0LjNoLTI1N2MtNy45IDAtMTQuMyA2LjQtMTQuMyAxNC4zdjEwMGgtNzguNnYtMzkzaDc4LjZ2MTAwYzAgNy45IDYuNCAxNC4zIDE0LjMgMTQuM3ptNTMuNS0yMTcuOWgxNTBWMzYyaC0xNTBWMjExLjl6TTMyOS45IDU4N2gtMTUwVjQzN2gxNTB2MTUwem0zNjQuMiA3NS4xaDE1MHYxNTAuMWgtMTUwVjY2Mi4xeiJ9fV19LG5hbWU6InBhcnRpdGlvbiIsdGhlbWU6Im91dGxpbmVkIn0sYUw9ckwsb0w9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246YUx9KSl9LGlMPXQuZm9yd2FyZFJlZihvTCksbEw9aUwsc0w9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0tODAgNjAwYzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOFYzNjBjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHYzMDR6bTIyNCAwYzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOFYzNjBjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHYzMDR6In19XX0sbmFtZToicGF1c2UtY2lyY2xlIix0aGVtZToiZmlsbGVkIn0sY0w9c0wsdUw9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246Y0x9KSl9LGRMPXQuZm9yd2FyZFJlZih1TCksZkw9ZEwsdkw9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnptLTg4LTUzMmgtNDhjLTQuNCAwLTggMy42LTggOHYzMDRjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOFYzNjBjMC00LjQtMy42LTgtOC04em0yMjQgMGgtNDhjLTQuNCAwLTggMy42LTggOHYzMDRjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOFYzNjBjMC00LjQtMy42LTgtOC04eiJ9fV19LG5hbWU6InBhdXNlLWNpcmNsZSIsdGhlbWU6Im91dGxpbmVkIn0saEw9dkwsbUw9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246aEx9KSl9LGdMPXQuZm9yd2FyZFJlZihtTCkscEw9Z0wseUw9e2ljb246ZnVuY3Rpb24oZix2KXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeiIsZmlsbDpmfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgMTQwYy0yMDUuNCAwLTM3MiAxNjYuNi0zNzIgMzcyczE2Ni42IDM3MiAzNzIgMzcyIDM3Mi0xNjYuNiAzNzItMzcyLTE2Ni42LTM3Mi0zNzItMzcyem0tODAgNTI0YzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOFYzNjBjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHYzMDR6bTIyNCAwYzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOFYzNjBjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHYzMDR6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQyNCAzNTJoLTQ4Yy00LjQgMC04IDMuNi04IDh2MzA0YzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LThWMzYwYzAtNC40LTMuNi04LTgtOHptMjI0IDBoLTQ4Yy00LjQgMC04IDMuNi04IDh2MzA0YzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LThWMzYwYzAtNC40LTMuNi04LTgtOHoiLGZpbGw6Zn19XX19LG5hbWU6InBhdXNlLWNpcmNsZSIsdGhlbWU6InR3b3RvbmUifSxDTD15TCxiTD1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpDTH0pKX0sU0w9dC5mb3J3YXJkUmVmKGJMKSxPTD1TTCx4TD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMzA0IDE3Nmg4MHY2NzJoLTgwem00MDggMGgtNjRjLTQuNCAwLTggMy42LTggOHY2NTZjMCA0LjQgMy42IDggOCA4aDY0YzQuNCAwIDgtMy42IDgtOFYxODRjMC00LjQtMy42LTgtOC04eiJ9fV19LG5hbWU6InBhdXNlIix0aGVtZToib3V0bGluZWQifSx3TD14TCxFTD1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjp3TH0pKX0sVEw9dC5mb3J3YXJkUmVmKEVMKSxNTD1UTCxSTD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTE2Ni42IDI0Ni44TDU2Ny41IDUxNS42aDYyYzQuNCAwIDggMy42IDggOHYyOS45YzAgNC40LTMuNiA4LTggOGgtODJWNjAzaDgyYzQuNCAwIDggMy42IDggOHYyOS45YzAgNC40LTMuNiA4LTggOGgtODJWNzE3YzAgNC40LTMuNiA4LTggOGgtNTQuM2MtNC40IDAtOC0zLjYtOC04di02OC4xaC04MS43Yy00LjQgMC04LTMuNi04LThWNjExYzAtNC40IDMuNi04IDgtOGg4MS43di00MS41aC04MS43Yy00LjQgMC04LTMuNi04LTh2LTI5LjljMC00LjQgMy42LTggOC04aDYxLjRMMzQ1LjQgMzEwLjhhOC4wNyA4LjA3IDAgMDE3LTExLjloNjAuN2MzIDAgNS44IDEuNyA3LjEgNC40bDkwLjYgMTgwaDMuNGw5MC42LTE4MGE4IDggMCAwMTcuMS00LjRoNTkuNWM0LjQgMCA4IDMuNiA4IDggLjIgMS40LS4yIDIuNy0uOCAzLjl6In19XX0sbmFtZToicGF5LWNpcmNsZSIsdGhlbWU6ImZpbGxlZCJ9LElMPVJMLFBMPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOklMfSkpfSx6TD10LmZvcndhcmRSZWYoUEwpLEZMPXpMLEFMPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6bTE1OS42LTU4NWgtNTkuNWMtMyAwLTUuOCAxLjctNy4xIDQuNGwtOTAuNiAxODBINTExbC05MC42LTE4MGE4IDggMCAwMC03LjEtNC40aC02MC43Yy0xLjMgMC0yLjYuMy0zLjggMS0zLjkgMi4xLTUuMyA3LTMuMiAxMC45TDQ1NyA1MTUuN2gtNjEuNGMtNC40IDAtOCAzLjYtOCA4djI5LjljMCA0LjQgMy42IDggOCA4aDgxLjdWNjAzaC04MS43Yy00LjQgMC04IDMuNi04IDh2MjkuOWMwIDQuNCAzLjYgOCA4IDhoODEuN1Y3MTdjMCA0LjQgMy42IDggOCA4aDU0LjNjNC40IDAgOC0zLjYgOC04di02OC4xaDgyYzQuNCAwIDgtMy42IDgtOFY2MTFjMC00LjQtMy42LTgtOC04aC04MnYtNDEuNWg4MmM0LjQgMCA4LTMuNiA4LTh2LTI5LjljMC00LjQtMy42LTgtOC04aC02MmwxMTEuMS0yMDQuOGMuNi0xLjIgMS0yLjUgMS0zLjgtLjEtNC40LTMuNy04LTguMS04eiJ9fV19LG5hbWU6InBheS1jaXJjbGUiLHRoZW1lOiJvdXRsaW5lZCJ9LExMPUFMLFpMPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkxMfSkpfSwkTD10LmZvcndhcmRSZWYoWkwpLEhMPSRMLERMPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NTUuNyAyMTAuOGwtNDIuNC00Mi40YTguMDMgOC4wMyAwIDAwLTExLjMgMEwxNjguMyA4MDEuOWE4LjAzIDguMDMgMCAwMDAgMTEuM2w0Mi40IDQyLjRjMy4xIDMuMSA4LjIgMy4xIDExLjMgMEw4NTUuNiAyMjJjMy4yLTMgMy4yLTguMS4xLTExLjJ6TTMwNCA0NDhjNzkuNCAwIDE0NC02NC42IDE0NC0xNDRzLTY0LjYtMTQ0LTE0NC0xNDQtMTQ0IDY0LjYtMTQ0IDE0NCA2NC42IDE0NCAxNDQgMTQ0em0wLTIxNmMzOS43IDAgNzIgMzIuMyA3MiA3MnMtMzIuMyA3Mi03MiA3Mi03Mi0zMi4zLTcyLTcyIDMyLjMtNzIgNzItNzJ6bTQxNiAzNDRjLTc5LjQgMC0xNDQgNjQuNi0xNDQgMTQ0czY0LjYgMTQ0IDE0NCAxNDQgMTQ0LTY0LjYgMTQ0LTE0NC02NC42LTE0NC0xNDQtMTQ0em0wIDIxNmMtMzkuNyAwLTcyLTMyLjMtNzItNzJzMzIuMy03MiA3Mi03MiA3MiAzMi4zIDcyIDcyLTMyLjMgNzItNzIgNzJ6In19XX0sbmFtZToicGVyY2VudGFnZSIsdGhlbWU6Im91dGxpbmVkIn0sQkw9REwsVkw9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246Qkx9KSl9LE5MPXQuZm9yd2FyZFJlZihWTCksakw9TkwsVUw9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4NS42IDIzMC4yTDc3OS4xIDEyMy44YTgwLjgzIDgwLjgzIDAgMDAtNTcuMy0yMy44Yy0yMS43IDAtNDIuMSA4LjUtNTcuNCAyMy44TDU0OS44IDIzOC40YTgwLjgzIDgwLjgzIDAgMDAtMjMuOCA1Ny4zYzAgMjEuNyA4LjUgNDIuMSAyMy44IDU3LjRsODMuOCA4My44QTM5My44MiAzOTMuODIgMCAwMTU1My4xIDU1MyAzOTUuMzQgMzk1LjM0IDAgMDE0MzcgNjMzLjhMMzUzLjIgNTUwYTgwLjgzIDgwLjgzIDAgMDAtNTcuMy0yMy44Yy0yMS43IDAtNDIuMSA4LjUtNTcuNCAyMy44TDEyMy44IDY2NC41YTgwLjg5IDgwLjg5IDAgMDAtMjMuOCA1Ny40YzAgMjEuNyA4LjUgNDIuMSAyMy44IDU3LjRsMTA2LjMgMTA2LjNjMjQuNCAyNC41IDU4LjEgMzguNCA5Mi43IDM4LjQgNy4zIDAgMTQuMy0uNiAyMS4yLTEuOCAxMzQuOC0yMi4yIDI2OC41LTkzLjkgMzc2LjQtMjAxLjdDODI4LjIgNjEyLjggODk5LjggNDc5LjIgOTIyLjMgMzQ0YzYuOC00MS4zLTYuOS04My44LTM2LjctMTEzLjh6In19XX0sbmFtZToicGhvbmUiLHRoZW1lOiJmaWxsZWQifSxXTD1VTCxrTD1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpXTH0pKX0sS0w9dC5mb3J3YXJkUmVmKGtMKSxfTD1LTCxHTD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODc3LjEgMjM4LjdMNzcwLjYgMTMyLjNjLTEzLTEzLTMwLjQtMjAuMy00OC44LTIwLjNzLTM1LjggNy4yLTQ4LjggMjAuM0w1NTguMyAyNDYuOGMtMTMgMTMtMjAuMyAzMC41LTIwLjMgNDguOSAwIDE4LjUgNy4yIDM1LjggMjAuMyA0OC45bDg5LjYgODkuN2E0MDUuNDYgNDA1LjQ2IDAgMDEtODYuNCAxMjcuM2MtMzYuNyAzNi45LTc5LjYgNjYtMTI3LjIgODYuNmwtODkuNi04OS43Yy0xMy0xMy0zMC40LTIwLjMtNDguOC0yMC4zYTY4LjIgNjguMiAwIDAwLTQ4LjggMjAuM0wxMzIuMyA2NzNjLTEzIDEzLTIwLjMgMzAuNS0yMC4zIDQ4LjkgMCAxOC41IDcuMiAzNS44IDIwLjMgNDguOWwxMDYuNCAxMDYuNGMyMi4yIDIyLjIgNTIuOCAzNC45IDg0LjIgMzQuOSA2LjUgMCAxMi44LS41IDE5LjItMS42IDEzMi40LTIxLjggMjYzLjgtOTIuMyAzNjkuOS0xOTguM0M4MTggNjA2IDg4OC40IDQ3NC42IDkxMC40IDM0Mi4xYzYuMy0zNy42LTYuMy03Ni4zLTMzLjMtMTAzLjR6bS0zNy42IDkxLjVjLTE5LjUgMTE3LjktODIuOSAyMzUuNS0xNzguNCAzMzFzLTIxMyAxNTguOS0zMzAuOSAxNzguNGMtMTQuOCAyLjUtMzAtMi41LTQwLjgtMTMuMkwxODQuOSA3MjEuOSAyOTUuNyA2MTFsMTE5LjggMTIwIC45LjkgMjEuNi04YTQ4MS4yOSA0ODEuMjkgMCAwMDI4NS43LTI4NS44bDgtMjEuNi0xMjAuOC0xMjAuNyAxMTAuOC0xMTAuOSAxMDQuNSAxMDQuNWMxMC44IDEwLjggMTUuOCAyNiAxMy4zIDQwLjh6In19XX0sbmFtZToicGhvbmUiLHRoZW1lOiJvdXRsaW5lZCJ9LFlMPUdMLFhMPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOllMfSkpfSxRTD10LmZvcndhcmRSZWYoWEwpLEpMPVFMLHFMPXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTcyMS43IDE4NC45TDYxMC45IDI5NS44bDEyMC44IDEyMC43LTggMjEuNkE0ODEuMjkgNDgxLjI5IDAgMDE0MzggNzIzLjlsLTIxLjYgOC0uOS0uOS0xMTkuOC0xMjAtMTEwLjggMTEwLjkgMTA0LjUgMTA0LjVjMTAuOCAxMC43IDI2IDE1LjcgNDAuOCAxMy4yIDExNy45LTE5LjUgMjM1LjQtODIuOSAzMzAuOS0xNzguNHMxNTguOS0yMTMuMSAxNzguNC0zMzFjMi41LTE0LjgtMi41LTMwLTEzLjMtNDAuOEw3MjEuNyAxODQuOXoiLGZpbGw6dn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODc3LjEgMjM4LjdMNzcwLjYgMTMyLjNjLTEzLTEzLTMwLjQtMjAuMy00OC44LTIwLjNzLTM1LjggNy4yLTQ4LjggMjAuM0w1NTguMyAyNDYuOGMtMTMgMTMtMjAuMyAzMC41LTIwLjMgNDguOSAwIDE4LjUgNy4yIDM1LjggMjAuMyA0OC45bDg5LjYgODkuN2E0MDUuNDYgNDA1LjQ2IDAgMDEtODYuNCAxMjcuM2MtMzYuNyAzNi45LTc5LjYgNjYtMTI3LjIgODYuNmwtODkuNi04OS43Yy0xMy0xMy0zMC40LTIwLjMtNDguOC0yMC4zYTY4LjIgNjguMiAwIDAwLTQ4LjggMjAuM0wxMzIuMyA2NzNjLTEzIDEzLTIwLjMgMzAuNS0yMC4zIDQ4LjkgMCAxOC41IDcuMiAzNS44IDIwLjMgNDguOWwxMDYuNCAxMDYuNGMyMi4yIDIyLjIgNTIuOCAzNC45IDg0LjIgMzQuOSA2LjUgMCAxMi44LS41IDE5LjItMS42IDEzMi40LTIxLjggMjYzLjgtOTIuMyAzNjkuOS0xOTguM0M4MTggNjA2IDg4OC40IDQ3NC42IDkxMC40IDM0Mi4xYzYuMy0zNy42LTYuMy03Ni4zLTMzLjMtMTAzLjR6bS0zNy42IDkxLjVjLTE5LjUgMTE3LjktODIuOSAyMzUuNS0xNzguNCAzMzFzLTIxMyAxNTguOS0zMzAuOSAxNzguNGMtMTQuOCAyLjUtMzAtMi41LTQwLjgtMTMuMkwxODQuOSA3MjEuOSAyOTUuNyA2MTFsMTE5LjggMTIwIC45LjkgMjEuNi04YTQ4MS4yOSA0ODEuMjkgMCAwMDI4NS43LTI4NS44bDgtMjEuNi0xMjAuOC0xMjAuNyAxMTAuOC0xMTAuOSAxMDQuNSAxMDQuNWMxMC44IDEwLjggMTUuOCAyNiAxMy4zIDQwLjh6IixmaWxsOmZ9fV19fSxuYW1lOiJwaG9uZSIsdGhlbWU6InR3b3RvbmUifSxlWj1xTCx0Wj1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjplWn0pKX0sblo9dC5mb3J3YXJkUmVmKHRaKSxyWj1uWixhWj17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTUyIDc5Mkg3MmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg4ODBjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtNjMySDcyYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDg4MGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNODQ4IDY2MGM4LjggMCAxNi03LjIgMTYtMTZWMzgwYzAtOC44LTcuMi0xNi0xNi0xNkgxNzZjLTguOCAwLTE2IDcuMi0xNiAxNnYyNjRjMCA4LjggNy4yIDE2IDE2IDE2aDY3MnpNMjMyIDQzNmg1NjB2MTUySDIzMlY0MzZ6In19XX0sbmFtZToicGljLWNlbnRlciIsdGhlbWU6Im91dGxpbmVkIn0sb1o9YVosaVo9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246b1p9KSl9LGxaPXQuZm9yd2FyZFJlZihpWiksc1o9bFosY1o9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTk1MiA3OTJINzJjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoODgwYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wLTYzMkg3MmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg4ODBjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6TTYwOCA2NjBjOC44IDAgMTYtNy4yIDE2LTE2VjM4MGMwLTguOC03LjItMTYtMTYtMTZIOTZjLTguOCAwLTE2IDcuMi0xNiAxNnYyNjRjMCA4LjggNy4yIDE2IDE2IDE2aDUxMnpNMTUyIDQzNmg0MDB2MTUySDE1MlY0MzZ6bTU1MiAyMTBjMCA0LjQgMy42IDggOCA4aDIyNGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOEg3MTJjLTQuNCAwLTggMy42LTggOHY1NnptOC0yMDRoMjI0YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04SDcxMmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHoifX1dfSxuYW1lOiJwaWMtbGVmdCIsdGhlbWU6Im91dGxpbmVkIn0sdVo9Y1osZFo9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246dVp9KSl9LGZaPXQuZm9yd2FyZFJlZihkWiksdlo9ZlosaFo9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTk1MiA3OTJINzJjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoODgwYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wLTYzMkg3MmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg4ODBjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS0yNCA1MDBjOC44IDAgMTYtNy4yIDE2LTE2VjM4MGMwLTguOC03LjItMTYtMTYtMTZINDE2Yy04LjggMC0xNiA3LjItMTYgMTZ2MjY0YzAgOC44IDcuMiAxNiAxNiAxNmg1MTJ6TTQ3MiA0MzZoNDAwdjE1Mkg0NzJWNDM2ek04MCA2NDZjMCA0LjQgMy42IDggOCA4aDIyNGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOEg4OGMtNC40IDAtOCAzLjYtOCA4djU2em04LTIwNGgyMjRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThIODhjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6In19XX0sbmFtZToicGljLXJpZ2h0Iix0aGVtZToib3V0bGluZWQifSxtWj1oWixnWj1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjptWn0pKX0scFo9dC5mb3J3YXJkUmVmKGdaKSx5Wj1wWixDWj17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTI4IDE2MEg5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjQwYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDgzMmMxNy43IDAgMzItMTQuMyAzMi0zMlYxOTJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTMzOCAzMDRjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjQtNjQtMjguNy02NC02NCAyOC43LTY0IDY0LTY0em01MTMuOSA0MzcuMWE4LjExIDguMTEgMCAwMS01LjIgMS45SDE3Ny4yYy00LjQgMC04LTMuNi04LTggMC0xLjkuNy0zLjcgMS45LTUuMmwxNzAuMy0yMDJjMi44LTMuNCA3LjktMy44IDExLjMtMSAuMy4zLjcuNiAxIDFsOTkuNCAxMTggMTU4LjEtMTg3LjVjMi44LTMuNCA3LjktMy44IDExLjMtMSAuMy4zLjcuNiAxIDFsMjI5LjYgMjcxLjZjMi42IDMuMyAyLjIgOC40LTEuMiAxMS4yeiJ9fV19LG5hbWU6InBpY3R1cmUiLHRoZW1lOiJmaWxsZWQifSxiWj1DWixTWj1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpiWn0pKX0sT1o9dC5mb3J3YXJkUmVmKFNaKSx4Wj1PWix3Wj17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTI4IDE2MEg5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjQwYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDgzMmMxNy43IDAgMzItMTQuMyAzMi0zMlYxOTJjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA2MzJIMTM2di0zOS45bDEzOC41LTE2NC4zIDE1MC4xIDE3OEw2NTguMSA0ODkgODg4IDc2MS42Vjc5MnptMC0xMjkuOEw2NjQuMiAzOTYuOGMtMy4yLTMuOC05LTMuOC0xMi4yIDBMNDI0LjYgNjY2LjRsLTE0NC0xNzAuN2MtMy4yLTMuOC05LTMuOC0xMi4yIDBMMTM2IDY1Mi43VjIzMmg3NTJ2NDMwLjJ6TTMwNCA0NTZhODggODggMCAxMDAtMTc2IDg4IDg4IDAgMDAwIDE3NnptMC0xMTZjMTUuNSAwIDI4IDEyLjUgMjggMjhzLTEyLjUgMjgtMjggMjgtMjgtMTIuNS0yOC0yOCAxMi41LTI4IDI4LTI4eiJ9fV19LG5hbWU6InBpY3R1cmUiLHRoZW1lOiJvdXRsaW5lZCJ9LEVaPXdaLFRaPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkVafSkpfSxNWj10LmZvcndhcmRSZWYoVFopLFJaPU1aLElaPWUoODI1NDMpLFBaPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NjMuMSA1MTguNUg1MDUuNVYxNjAuOWMwLTQuNC0zLjYtOC04LThoLTI2YTM5OC41NyAzOTguNTcgMCAwMC0yODIuNSAxMTcgMzk3LjQ3IDM5Ny40NyAwIDAwLTg1LjYgMTI3QzgyLjYgNDQ2LjIgNzIgNDk4LjUgNzIgNTUyLjVTODIuNiA2NTguNyAxMDMuNCA3MDhjMjAuMSA0Ny41IDQ4LjkgOTAuMyA4NS42IDEyNyAzNi43IDM2LjcgNzkuNCA2NS41IDEyNyA4NS42YTM5Ni42NCAzOTYuNjQgMCAwMDE1NS42IDMxLjUgMzk4LjU3IDM5OC41NyAwIDAwMjgyLjUtMTE3YzM2LjctMzYuNyA2NS41LTc5LjQgODUuNi0xMjdhMzk2LjY0IDM5Ni42NCAwIDAwMzEuNS0xNTUuNnYtMjZjLS4xLTQuNC0zLjctOC04LjEtOHpNOTUxIDQ2M2wtMi42LTI4LjJjLTguNS05Mi00OS4zLTE3OC44LTExNS4xLTI0NC4zQTM5OC41IDM5OC41IDAgMDA1ODguNCA3NS42TDU2MC4xIDczYy00LjctLjQtOC43IDMuMi04LjcgNy45djM4My43YzAgNC40IDMuNiA4IDggOGwzODMuNi0xYzQuNy0uMSA4LjQtNCA4LTguNnoifX1dfSxuYW1lOiJwaWUtY2hhcnQiLHRoZW1lOiJmaWxsZWQifSx6Wj1QWixGWj1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjp6Wn0pKX0sQVo9dC5mb3J3YXJkUmVmKEZaKSxMWj1BWixaWj17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODY0IDUxOEg1MDZWMTYwYzAtNC40LTMuNi04LTgtOGgtMjZhMzk4LjQ2IDM5OC40NiAwIDAwLTI4Mi44IDExNy4xIDM5OC4xOSAzOTguMTkgMCAwMC04NS43IDEyNy4xQTM5Ny42MSAzOTcuNjEgMCAwMDcyIDU1MmEzOTguNDYgMzk4LjQ2IDAgMDAxMTcuMSAyODIuOGMzNi43IDM2LjcgNzkuNSA2NS42IDEyNy4xIDg1LjdBMzk3LjYxIDM5Ny42MSAwIDAwNDcyIDk1MmEzOTguNDYgMzk4LjQ2IDAgMDAyODIuOC0xMTcuMWMzNi43LTM2LjcgNjUuNi03OS41IDg1LjctMTI3LjFBMzk3LjYxIDM5Ny42MSAwIDAwODcyIDU1MnYtMjZjMC00LjQtMy42LTgtOC04ek03MDUuNyA3ODcuOEEzMzEuNTkgMzMxLjU5IDAgMDE0NzAuNCA4ODRjLTg4LjEtLjQtMTcwLjktMzQuOS0yMzMuMi05Ny4yQzE3NC41IDcyNC4xIDE0MCA2NDAuNyAxNDAgNTUyYzAtODguNyAzNC41LTE3Mi4xIDk3LjItMjM0LjggNTQuNi01NC42IDEyNC45LTg3LjkgMjAwLjgtOTUuNVY1ODZoMzY0LjNjLTcuNyA3Ni4zLTQxLjMgMTQ3LTk2LjYgMjAxLjh6TTk1MiA0NjIuNGwtMi42LTI4LjJjLTguNS05Mi4xLTQ5LjQtMTc5LTExNS4yLTI0NC42QTM5OS40IDM5OS40IDAgMDA1ODkgNzQuNkw1NjAuNyA3MmMtNC43LS40LTguNyAzLjItOC43IDcuOVY0NjRjMCA0LjQgMy42IDggOCA4bDM4NC0xYzQuNyAwIDguNC00IDgtOC42em0tMzMyLjItNTguMlYxNDcuNmEzMzIuMjQgMzMyLjI0IDAgMDExNjYuNCA4OS44YzQ1LjcgNDUuNiA3NyAxMDMuNiA5MCAxNjYuMWwtMjU2LjQuN3oifX1dfSxuYW1lOiJwaWUtY2hhcnQiLHRoZW1lOiJvdXRsaW5lZCJ9LCRaPVpaLEhaPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOiRafSkpfSxEWj10LmZvcndhcmRSZWYoSFopLEJaPURaLFZaPXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTMxNi4yIDkyMC41Yy00Ny42LTIwLjEtOTAuNC00OS0xMjcuMS04NS43YTM5OC4xOSAzOTguMTkgMCAwMS04NS43LTEyNy4xQTM5Ny4xMiAzOTcuMTIgMCAwMTcyIDU1Mi4ydi4yYTM5OC41NyAzOTguNTcgMCAwMDExNyAyODIuNWMzNi43IDM2LjcgNzkuNCA2NS41IDEyNyA4NS42QTM5Ni42NCAzOTYuNjQgMCAwMDQ3MS42IDk1MmMyNyAwIDUzLjYtMi43IDc5LjctNy45LTI1LjkgNS4yLTUyLjQgNy44LTc5LjMgNy44LTU0IC4xLTEwNi40LTEwLjUtMTU1LjgtMzEuNHpNNTYwIDQ3MmMtNC40IDAtOC0zLjYtOC04Vjc5LjljMC0xLjMuMy0yLjUuOS0zLjYtLjkgMS4zLTEuNSAyLjktMS41IDQuNnYzODMuN2MwIDQuNCAzLjYgOCA4IDhsMzgzLjYtMWMxLjYgMCAzLjEtLjUgNC40LTEuMy0xIC41LTIuMi43LTMuNC43bC0zODQgMXoiLGZpbGw6dn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNjE5LjggMTQ3LjZ2MjU2LjZsMjU2LjQtLjdjLTEzLTYyLjUtNDQuMy0xMjAuNS05MC0xNjYuMWEzMzIuMjQgMzMyLjI0IDAgMDAtMTY2LjQtODkuOHoiLGZpbGw6dn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNDM4IDIyMS43Yy03NS45IDcuNi0xNDYuMiA0MC45LTIwMC44IDk1LjVDMTc0LjUgMzc5LjkgMTQwIDQ2My4zIDE0MCA1NTJzMzQuNSAxNzIuMSA5Ny4yIDIzNC44YzYyLjMgNjIuMyAxNDUuMSA5Ni44IDIzMy4yIDk3LjIgODguMi40IDE3Mi43LTM0LjEgMjM1LjMtOTYuMkM3NjEgNzMzIDc5NC42IDY2Mi4zIDgwMi4zIDU4Nkg0MzhWMjIxLjd6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg2NCA1MThINTA2VjE2MGMwLTQuNC0zLjYtOC04LThoLTI2YTM5OC40NiAzOTguNDYgMCAwMC0yODIuOCAxMTcuMSAzOTguMTkgMzk4LjE5IDAgMDAtODUuNyAxMjcuMUEzOTcuNjEgMzk3LjYxIDAgMDA3MiA1NTJ2LjJjMCA1My45IDEwLjYgMTA2LjIgMzEuNCAxNTUuNSAyMC4xIDQ3LjYgNDkgOTAuNCA4NS43IDEyNy4xIDM2LjcgMzYuNyA3OS41IDY1LjYgMTI3LjEgODUuN0EzOTcuNjEgMzk3LjYxIDAgMDA0NzIgOTUyYzI2LjkgMCA1My40LTIuNiA3OS4zLTcuOCAyNi4xLTUuMyA1MS43LTEzLjEgNzYuNC0yMy42IDQ3LjYtMjAuMSA5MC40LTQ5IDEyNy4xLTg1LjcgMzYuNy0zNi43IDY1LjYtNzkuNSA4NS43LTEyNy4xQTM5Ny42MSAzOTcuNjEgMCAwMDg3MiA1NTJ2LTI2YzAtNC40LTMuNi04LTgtOHpNNzA1LjcgNzg3LjhBMzMxLjU5IDMzMS41OSAwIDAxNDcwLjQgODg0Yy04OC4xLS40LTE3MC45LTM0LjktMjMzLjItOTcuMkMxNzQuNSA3MjQuMSAxNDAgNjQwLjcgMTQwIDU1MnMzNC41LTE3Mi4xIDk3LjItMjM0LjhjNTQuNi01NC42IDEyNC45LTg3LjkgMjAwLjgtOTUuNVY1ODZoMzY0LjNjLTcuNyA3Ni4zLTQxLjMgMTQ3LTk2LjYgMjAxLjh6IixmaWxsOmZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTk1MiA0NjIuNGwtMi42LTI4LjJjLTguNS05Mi4xLTQ5LjQtMTc5LTExNS4yLTI0NC42QTM5OS40IDM5OS40IDAgMDA1ODkgNzQuNkw1NjAuNyA3MmMtMy40LS4zLTYuNCAxLjUtNy44IDQuM2E4LjcgOC43IDAgMDAtLjkgMy42VjQ2NGMwIDQuNCAzLjYgOCA4IDhsMzg0LTFjMS4yIDAgMi4zLS4zIDMuNC0uN2E4LjEgOC4xIDAgMDA0LjYtNy45em0tMzMyLjItNTguMlYxNDcuNmEzMzIuMjQgMzMyLjI0IDAgMDExNjYuNCA4OS44YzQ1LjcgNDUuNiA3NyAxMDMuNiA5MCAxNjYuMWwtMjU2LjQuN3oiLGZpbGw6Zn19XX19LG5hbWU6InBpZS1jaGFydCIsdGhlbWU6InR3b3RvbmUifSxOWj1WWixqWj1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpOWn0pKX0sVVo9dC5mb3J3YXJkUmVmKGpaKSxXWj1VWixrWj17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnsiZmlsbC1ydWxlIjoiZXZlbm9kZCIsdmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuOTcgNjQgNjQgMjY0Ljk3IDY0IDUxMmMwIDE5Mi41MyAxMjIuMDggMzU3LjA0IDI5Mi44OCA0MjAuMjgtNC45Mi00My44Ni00LjE0LTExNS42OCAzLjk3LTE1MC40NiA3LjYtMzIuNjYgNDkuMTEtMjA4LjE2IDQ5LjExLTIwOC4xNnMtMTIuNTMtMjUuMS0xMi41My02Mi4xNmMwLTU4LjI0IDMzLjc0LTEwMS43IDc1Ljc3LTEwMS43IDM1Ljc0IDAgNTIuOTcgMjYuODMgNTIuOTcgNTguOTggMCAzNS45Ni0yMi44NSA4OS42Ni0zNC43IDEzOS40My05Ljg3IDQxLjcgMjAuOTEgNzUuNyA2Mi4wMiA3NS43IDc0LjQzIDAgMTMxLjY0LTc4LjUgMTMxLjY0LTE5MS43NyAwLTEwMC4yNy03Mi4wMy0xNzAuMzgtMTc0LjktMTcwLjM4LTExOS4xNSAwLTE4OS4wOCA4OS4zOC0xODkuMDggMTgxLjc1IDAgMzUuOTggMTMuODUgNzQuNTggMzEuMTYgOTUuNTggMy40MiA0LjE2IDMuOTIgNy43OCAyLjkgMTItMy4xNyAxMy4yMi0xMC4yMiA0MS42Ny0xMS42MyA0Ny41LTEuODIgNy42OC02LjA3IDkuMjgtMTQgNS41OS01Mi4zLTI0LjM2LTg1LTEwMC44MS04NS0xNjIuMjUgMC0xMzIuMSA5NS45Ni0yNTMuNDMgMjc2LjcxLTI1My40MyAxNDUuMjkgMCAyNTguMTggMTAzLjUgMjU4LjE4IDI0MS44OCAwIDE0NC4zNC05MS4wMiAyNjAuNDktMjE3LjMxIDI2MC40OS00Mi40NCAwLTgyLjMzLTIyLjA1LTk1Ljk3LTQ4LjEgMCAwLTIxIDc5Ljk2LTI2LjEgOTkuNTYtOC44MiAzMy45LTQ2LjU1IDEwNC4xMy02NS40OSAxMzYuMDNBNDQ2LjE2IDQ0Ni4xNiAwIDAwNTEyIDk2MGMyNDcuMDQgMCA0NDgtMjAwLjk3IDQ0OC00NDhTNzU5LjA0IDY0IDUxMiA2NCJ9fV19LG5hbWU6InBpbnRlcmVzdCIsdGhlbWU6ImZpbGxlZCJ9LEtaPWtaLF9aPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOktafSkpfSxHWj10LmZvcndhcmRSZWYoX1opLFlaPUdaLFhaPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6eyJmaWxsLXJ1bGUiOiJldmVub2RkIix2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC44IDY0IDY0IDI2NC44IDY0IDUxMnMyMDAuOCA0NDggNDQ4IDQ0OCA0NDgtMjAwLjggNDQ4LTQ0OFM3NTkuMiA2NCA1MTIgNjRtMCAzOC45NmMyMjYuMTQgMCA0MDkuMDQgMTgyLjkgNDA5LjA0IDQwOS4wNCAwIDIyNi4xNC0xODIuOSA0MDkuMDQtNDA5LjA0IDQwOS4wNC00MS4zNyAwLTgxLjI3LTYuMTktMTE4Ljg5LTE3LjU3IDE2Ljc2LTI4LjAyIDM4LjQtNjguMDYgNDYuOTktMTAxLjEyIDUuMS0xOS42IDI2LjEtOTkuNTYgMjYuMS05OS41NiAxMy42NCAyNi4wNCA1My41IDQ4LjA5IDk1Ljk0IDQ4LjA5IDEyNi4zIDAgMjE3LjM0LTExNi4xNSAyMTcuMzQtMjYwLjQ5IDAtMTM4LjM3LTExMi45MS0yNDEuODgtMjU4LjItMjQxLjg4LTE4MC43NSAwLTI3Ni42OSAxMjEuMzItMjc2LjY5IDI1My40IDAgNjEuNDQgMzIuNjggMTM3LjkxIDg1IDE2Mi4yNiA3LjkyIDMuNyAxMi4xNyAyLjEgMTQtNS41OSAxLjQtNS44MyA4LjQ2LTM0LjI1IDExLjYzLTQ3LjQ4IDEuMDItNC4yMi41My03Ljg2LTIuODktMTIuMDItMTcuMzEtMjEtMzEuMi01OS41OC0zMS4yLTk1LjU2IDAtOTIuMzggNjkuOTQtMTgxLjc4IDE4OS4wOC0xODEuNzggMTAyLjg4IDAgMTc0LjkzIDcwLjEzIDE3NC45MyAxNzAuNCAwIDExMy4yOC01Ny4yIDE5MS43OC0xMzEuNjMgMTkxLjc4LTQxLjExIDAtNzEuODktMzQtNjIuMDItNzUuNyAxMS44NC00OS43OCAzNC43LTEwMy40OSAzNC43LTEzOS40NCAwLTMyLjE1LTE3LjI1LTU4Ljk3LTUzLTU4Ljk3LTQyLjAyIDAtNzUuNzggNDMuNDUtNzUuNzggMTAxLjcgMCAzNy4wNiAxMi41NiA2Mi4xNiAxMi41NiA2Mi4xNnMtNDEuNTEgMTc1LjUtNDkuMTIgMjA4LjE3Yy03LjYyIDMyLjY0LTUuNTggNzYuNi0yLjQzIDEwOS4zNEMyMDguNTUgODMwLjUyIDEwMi45NiA2ODMuNzggMTAyLjk2IDUxMmMwLTIyNi4xNCAxODIuOS00MDkuMDQgNDA5LjA0LTQwOS4wNCJ9fV19LG5hbWU6InBpbnRlcmVzdCIsdGhlbWU6Im91dGxpbmVkIn0sUVo9WFosSlo9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246UVp9KSl9LHFaPXQuZm9yd2FyZFJlZihKWiksZSQ9cVosdCQ9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0xNDQuMSA0NTQuOUw0MzcuNyA2NzcuOGE4LjAyIDguMDIgMCAwMS0xMi43LTYuNVYzNTMuN2E4IDggMCAwMTEyLjctNi41TDY1Ni4xIDUwNmE3LjkgNy45IDAgMDEwIDEyLjl6In19XX0sbmFtZToicGxheS1jaXJjbGUiLHRoZW1lOiJmaWxsZWQifSxuJD10JCxyJD1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpuJH0pKX0sYSQ9dC5mb3J3YXJkUmVmKHIkKSxvJD1hJCxpJD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeiJ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTcxOS40IDQ5OS4xbC0yOTYuMS0yMTVBMTUuOSAxNS45IDAgMDAzOTggMjk3djQzMGMwIDEzLjEgMTQuOCAyMC41IDI1LjMgMTIuOWwyOTYuMS0yMTVhMTUuOSAxNS45IDAgMDAwLTI1Ljh6bS0yNTcuNiAxMzRWMzkwLjlMNjI4LjUgNTEyIDQ2MS44IDYzMy4xeiJ9fV19LG5hbWU6InBsYXktY2lyY2xlIix0aGVtZToib3V0bGluZWQifSxsJD1pJCxzJD1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpsJH0pKX0sYyQ9dC5mb3J3YXJkUmVmKHMkKSx1JD1jJCxkJD17aWNvbjpmdW5jdGlvbihmLHYpe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6IixmaWxsOmZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiAxNDBjLTIwNS40IDAtMzcyIDE2Ni42LTM3MiAzNzJzMTY2LjYgMzcyIDM3MiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzItMTY2LjYtMzcyLTM3Mi0zNzJ6bTE2NC4xIDM3OC4yTDQ1Ny43IDY3Ny4xYTguMDIgOC4wMiAwIDAxLTEyLjctNi41VjM1M2E4IDggMCAwMTEyLjctNi41bDIxOC40IDE1OC44YTcuOSA3LjkgMCAwMTAgMTIuOXoiLGZpbGw6dn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNjc2LjEgNTA1LjNMNDU3LjcgMzQ2LjVBOCA4IDAgMDA0NDUgMzUzdjMxNy42YTguMDIgOC4wMiAwIDAwMTIuNyA2LjVsMjE4LjQtMTU4LjlhNy45IDcuOSAwIDAwMC0xMi45eiIsZmlsbDpmfX1dfX0sbmFtZToicGxheS1jaXJjbGUiLHRoZW1lOiJ0d290b25lIn0sZiQ9ZCQsdiQ9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246ZiR9KSl9LGgkPXQuZm9yd2FyZFJlZih2JCksbSQ9aCQsZyQ9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNjQxLjcgNTIwLjhMNDQyLjMgNjc3LjZjLTcuNCA1LjgtMTguMy42LTE4LjMtOC44VjM1NS4zYzAtOS40IDEwLjktMTQuNyAxOC4zLTguOGwxOTkuNCAxNTYuN2ExMS4yIDExLjIgMCAwMTAgMTcuNnoifX1dfSxuYW1lOiJwbGF5LXNxdWFyZSIsdGhlbWU6ImZpbGxlZCJ9LHAkPWckLHkkPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOnAkfSkpfSxDJD10LmZvcndhcmRSZWYoeSQpLGIkPUMkLFMkPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00NDIuMyA2NzcuNmwxOTkuNC0xNTYuN2ExMS4zIDExLjMgMCAwMDAtMTcuN0w0NDIuMyAzNDYuNGMtNy40LTUuOC0xOC4zLS42LTE4LjMgOC44djMxMy41YzAgOS40IDEwLjkgMTQuNyAxOC4zIDguOXoifX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2eiJ9fV19LG5hbWU6InBsYXktc3F1YXJlIix0aGVtZToib3V0bGluZWQifSxPJD1TJCx4JD1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpPJH0pKX0sdyQ9dC5mb3J3YXJkUmVmKHgkKSxFJD13JCxUJD17aWNvbjpmdW5jdGlvbihmLHYpe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2eiIsZmlsbDpmfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0xODQgODQwaDY1NlYxODRIMTg0djY1NnptMjQwLTQ4NC43YzAtOS40IDEwLjktMTQuNyAxOC4zLTguOGwxOTkuNCAxNTYuN2ExMS4yIDExLjIgMCAwMTAgMTcuNkw0NDIuMyA2NzcuNmMtNy40IDUuOC0xOC4zLjYtMTguMy04LjhWMzU1LjN6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQ0Mi4zIDY3Ny42bDE5OS40LTE1Ni44YTExLjIgMTEuMiAwIDAwMC0xNy42TDQ0Mi4zIDM0Ni41Yy03LjQtNS45LTE4LjMtLjYtMTguMyA4Ljh2MzEzLjVjMCA5LjQgMTAuOSAxNC42IDE4LjMgOC44eiIsZmlsbDpmfX1dfX0sbmFtZToicGxheS1zcXVhcmUiLHRoZW1lOiJ0d290b25lIn0sTSQ9VCQsUiQ9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246TSR9KSl9LEkkPXQuZm9yd2FyZFJlZihSJCksUCQ9SSQseiQ9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0xOTIgNDcyYzAgNC40LTMuNiA4LTggOEg1NDR2MTUyYzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOFY1NDRIMzI4Yy00LjQgMC04LTMuNi04LTh2LTQ4YzAtNC40IDMuNi04IDgtOGgxNTJWMzI4YzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh2MTUyaDE1MmM0LjQgMCA4IDMuNiA4IDh2NDh6In19XX0sbmFtZToicGx1cy1jaXJjbGUiLHRoZW1lOiJmaWxsZWQifSxGJD16JCxBJD1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpGJH0pKX0sTCQ9dC5mb3J3YXJkUmVmKEEkKSxaJD1MJCwkJD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNjk2IDQ4MEg1NDRWMzI4YzAtNC40LTMuNi04LTgtOGgtNDhjLTQuNCAwLTggMy42LTggOHYxNTJIMzI4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDE1MnYxNTJjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOFY1NDRoMTUyYzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04eiJ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnoifX1dfSxuYW1lOiJwbHVzLWNpcmNsZSIsdGhlbWU6Im91dGxpbmVkIn0sSCQ9JCQsRCQ9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246SCR9KSl9LEIkPXQuZm9yd2FyZFJlZihEJCksViQ9QiQsTiQ9e2ljb246ZnVuY3Rpb24oZix2KXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeiIsZmlsbDpmfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgMTQwYy0yMDUuNCAwLTM3MiAxNjYuNi0zNzIgMzcyczE2Ni42IDM3MiAzNzIgMzcyIDM3Mi0xNjYuNiAzNzItMzcyLTE2Ni42LTM3Mi0zNzItMzcyem0xOTIgMzk2YzAgNC40LTMuNiA4LTggOEg1NDR2MTUyYzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOFY1NDRIMzI4Yy00LjQgMC04LTMuNi04LTh2LTQ4YzAtNC40IDMuNi04IDgtOGgxNTJWMzI4YzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh2MTUyaDE1MmM0LjQgMCA4IDMuNiA4IDh2NDh6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTY5NiA0ODBINTQ0VjMyOGMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2MTUySDMyOGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgxNTJ2MTUyYzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LThWNTQ0aDE1MmM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOHoiLGZpbGw6Zn19XX19LG5hbWU6InBsdXMtY2lyY2xlIix0aGVtZToidHdvdG9uZSJ9LGokPU4kLFUkPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOmokfSkpfSxXJD10LmZvcndhcmRSZWYoVSQpLGskPVckLEskPWUoMjQ5NjkpLF8kPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTcwNCA1MzZjMCA0LjQtMy42IDgtOCA4SDU0NHYxNTJjMCA0LjQtMy42IDgtOCA4aC00OGMtNC40IDAtOC0zLjYtOC04VjU0NEgzMjhjLTQuNCAwLTgtMy42LTgtOHYtNDhjMC00LjQgMy42LTggOC04aDE1MlYzMjhjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHYxNTJoMTUyYzQuNCAwIDggMy42IDggOHY0OHoifX1dfSxuYW1lOiJwbHVzLXNxdWFyZSIsdGhlbWU6ImZpbGxlZCJ9LEckPV8kLFkkPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkckfSkpfSxYJD10LmZvcndhcmRSZWYoWSQpLFEkPVgkLEokPWUoMTM5ODIpLHEkPXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6IixmaWxsOmZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTE4NCA4NDBoNjU2VjE4NEgxODR2NjU2em0xMzYtMzUyYzAtNC40IDMuNi04IDgtOGgxNTJWMzI4YzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh2MTUyaDE1MmM0LjQgMCA4IDMuNiA4IDh2NDhjMCA0LjQtMy42IDgtOCA4SDU0NHYxNTJjMCA0LjQtMy42IDgtOCA4aC00OGMtNC40IDAtOC0zLjYtOC04VjU0NEgzMjhjLTQuNCAwLTgtMy42LTgtOHYtNDh6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTMyOCA1NDRoMTUydjE1MmMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04VjU0NGgxNTJjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThINTQ0VjMyOGMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2MTUySDMyOGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOHoiLGZpbGw6Zn19XX19LG5hbWU6InBsdXMtc3F1YXJlIix0aGVtZToidHdvdG9uZSJ9LGVIPXEkLHRIPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOmVIfSkpfSxuSD10LmZvcndhcmRSZWYodEgpLHJIPW5ILGFIPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMTQ2IDY1OGMwIDQuNC0zLjYgOC04IDhIMzc2LjJjLTQuNCAwLTgtMy42LTgtOHYtMzguNWMwLTMuNyAyLjUtNi45IDYuMS03LjggNDQtMTAuOSA3Mi44LTQ5IDcyLjgtOTQuMiAwLTE0LjctMi41LTI5LjQtNS45LTQ0LjJIMzc0Yy00LjQgMC04LTMuNi04LTh2LTMwYzAtNC40IDMuNi04IDgtOGg1My43Yy03LjgtMjUuMS0xNC42LTUwLjctMTQuNi03Ny4xIDAtNzUuOCA1OC42LTEyMC4zIDE1MS41LTEyMC4zIDI2LjUgMCA1MS40IDUuNSA3MC4zIDEyLjcgMy4xIDEuMiA1LjIgNC4yIDUuMiA3LjV2MzkuNWE4IDggMCAwMS0xMC42IDcuNmMtMTcuOS02LjQtMzktMTAuNS02MC40LTEwLjUtNTMuMyAwLTg3LjMgMjYuNi04Ny4zIDcwLjIgMCAyNC43IDYuMiA0Ny45IDEzLjQgNzAuNWgxMTJjNC40IDAgOCAzLjYgOCA4djMwYzAgNC40LTMuNiA4LTggOGgtOTguNmMzLjEgMTMuMiA1LjMgMjYuOSA1LjMgNDEgMCA0MC43LTE2LjUgNzMuOS00My45IDkxLjF2NC43aDE4MGM0LjQgMCA4IDMuNiA4IDhWNzIyeiJ9fV19LG5hbWU6InBvdW5kLWNpcmNsZSIsdGhlbWU6ImZpbGxlZCJ9LG9IPWFILGlIPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOm9IfSkpfSxsSD10LmZvcndhcmRSZWYoaUgpLHNIPWxILGNIPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6bTEzOC0yMDkuOEg0NjkuOHYtNC43YzI3LjQtMTcuMiA0My45LTUwLjQgNDMuOS05MS4xIDAtMTQuMS0yLjItMjcuOS01LjMtNDFINjA3YzQuNCAwIDgtMy42IDgtOHYtMzBjMC00LjQtMy42LTgtOC04SDQ5NWMtNy4yLTIyLjYtMTMuNC00NS43LTEzLjQtNzAuNSAwLTQzLjUgMzQtNzAuMiA4Ny4zLTcwLjIgMjEuNSAwIDQyLjUgNC4xIDYwLjQgMTAuNSA1LjIgMS45IDEwLjYtMiAxMC42LTcuNnYtMzkuNWMwLTMuMy0yLjEtNi4zLTUuMi03LjUtMTguOC03LjItNDMuOC0xMi43LTcwLjMtMTIuNy05Mi45IDAtMTUxLjUgNDQuNS0xNTEuNSAxMjAuMyAwIDI2LjMgNi45IDUyIDE0LjYgNzcuMUgzNzRjLTQuNCAwLTggMy42LTggOHYzMGMwIDQuNCAzLjYgOCA4IDhoNjcuMWMzLjQgMTQuNyA1LjkgMjkuNCA1LjkgNDQuMiAwIDQ1LjItMjguOCA4My4zLTcyLjggOTQuMi0zLjYuOS02LjEgNC4xLTYuMSA3LjhWNzIyYzAgNC40IDMuNiA4IDggOEg2NTBjNC40IDAgOC0zLjYgOC04di0zOS44YzAtNC40LTMuNi04LTgtOHoifX1dfSxuYW1lOiJwb3VuZC1jaXJjbGUiLHRoZW1lOiJvdXRsaW5lZCJ9LHVIPWNILGRIPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOnVIfSkpfSxmSD10LmZvcndhcmRSZWYoZEgpLHZIPWZILGhIPXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnoiLGZpbGw6Zn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDE0MGMtMjA1LjQgMC0zNzIgMTY2LjYtMzcyIDM3MnMxNjYuNiAzNzIgMzcyIDM3MiAzNzItMTY2LjYgMzcyLTM3Mi0xNjYuNi0zNzItMzcyLTM3MnptMTQ2IDU4Mi4xYzAgNC40LTMuNiA4LTggOEgzNzYuMmMtNC40IDAtOC0zLjYtOC04di0zOC41YzAtMy43IDIuNS02LjkgNi4xLTcuOCA0NC0xMC45IDcyLjgtNDkgNzIuOC05NC4yIDAtMTQuNy0yLjUtMjkuNC01LjktNDQuMkgzNzRjLTQuNCAwLTgtMy42LTgtOHYtMzBjMC00LjQgMy42LTggOC04aDUzLjdjLTcuOC0yNS4xLTE0LjYtNTAuNy0xNC42LTc3LjEgMC03NS44IDU4LjYtMTIwLjMgMTUxLjUtMTIwLjMgMjYuNSAwIDUxLjQgNS41IDcwLjMgMTIuNyAzLjEgMS4yIDUuMiA0LjIgNS4yIDcuNXYzOS41YTggOCAwIDAxLTEwLjYgNy42Yy0xNy45LTYuNC0zOS0xMC41LTYwLjQtMTAuNS01My4zIDAtODcuMyAyNi42LTg3LjMgNzAuMiAwIDI0LjcgNi4yIDQ3LjkgMTMuNCA3MC41aDExMmM0LjQgMCA4IDMuNiA4IDh2MzBjMCA0LjQtMy42IDgtOCA4aC05OC42YzMuMSAxMy4yIDUuMyAyNi45IDUuMyA0MSAwIDQwLjctMTYuNSA3My45LTQzLjkgOTEuMXY0LjdoMTgwYzQuNCAwIDggMy42IDggOHYzOS44eiIsZmlsbDp2fX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02NTAgNjc0LjNINDcwdi00LjdjMjcuNC0xNy4yIDQzLjktNTAuNCA0My45LTkxLjEgMC0xNC4xLTIuMi0yNy44LTUuMy00MWg5OC42YzQuNCAwIDgtMy42IDgtOHYtMzBjMC00LjQtMy42LTgtOC04aC0xMTJjLTcuMi0yMi42LTEzLjQtNDUuOC0xMy40LTcwLjUgMC00My42IDM0LTcwLjIgODcuMy03MC4yIDIxLjQgMCA0Mi41IDQuMSA2MC40IDEwLjVhOCA4IDAgMDAxMC42LTcuNnYtMzkuNWMwLTMuMy0yLjEtNi4zLTUuMi03LjUtMTguOS03LjItNDMuOC0xMi43LTcwLjMtMTIuNy05Mi45IDAtMTUxLjUgNDQuNS0xNTEuNSAxMjAuMyAwIDI2LjQgNi44IDUyIDE0LjYgNzcuMUgzNzRjLTQuNCAwLTggMy42LTggOHYzMGMwIDQuNCAzLjYgOCA4IDhoNjcuMmMzLjQgMTQuOCA1LjkgMjkuNSA1LjkgNDQuMiAwIDQ1LjItMjguOCA4My4zLTcyLjggOTQuMi0zLjYuOS02LjEgNC4xLTYuMSA3Ljh2MzguNWMwIDQuNCAzLjYgOCA4IDhINjUwYzQuNCAwIDgtMy42IDgtOHYtMzkuOGMwLTQuNC0zLjYtOC04LTh6IixmaWxsOmZ9fV19fSxuYW1lOiJwb3VuZC1jaXJjbGUiLHRoZW1lOiJ0d290b25lIn0sbUg9aEgsZ0g9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246bUh9KSl9LHBIPXQuZm9yd2FyZFJlZihnSCkseUg9cEgsQ0g9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnptMTM4LTIwOS44SDQ2OS44di00LjdjMjcuNC0xNy4yIDQzLjktNTAuNCA0My45LTkxLjEgMC0xNC4xLTIuMi0yNy45LTUuMy00MUg2MDdjNC40IDAgOC0zLjYgOC04di0zMGMwLTQuNC0zLjYtOC04LThINDk1Yy03LjItMjIuNi0xMy40LTQ1LjctMTMuNC03MC41IDAtNDMuNSAzNC03MC4yIDg3LjMtNzAuMiAyMS41IDAgNDIuNSA0LjEgNjAuNCAxMC41IDUuMiAxLjkgMTAuNi0yIDEwLjYtNy42di0zOS41YzAtMy4zLTIuMS02LjMtNS4yLTcuNS0xOC44LTcuMi00My44LTEyLjctNzAuMy0xMi43LTkyLjkgMC0xNTEuNSA0NC41LTE1MS41IDEyMC4zIDAgMjYuMyA2LjkgNTIgMTQuNiA3Ny4xSDM3NGMtNC40IDAtOCAzLjYtOCA4djMwYzAgNC40IDMuNiA4IDggOGg2Ny4xYzMuNCAxNC43IDUuOSAyOS40IDUuOSA0NC4yIDAgNDUuMi0yOC44IDgzLjMtNzIuOCA5NC4yLTMuNi45LTYuMSA0LjEtNi4xIDcuOFY3MjJjMCA0LjQgMy42IDggOCA4SDY1MGM0LjQgMCA4LTMuNiA4LTh2LTM5LjhjMC00LjQtMy42LTgtOC04eiJ9fV19LG5hbWU6InBvdW5kIix0aGVtZToib3V0bGluZWQifSxiSD1DSCxTSD1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpiSH0pKX0sT0g9dC5mb3J3YXJkUmVmKFNIKSx4SD1PSCx3SD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNzA1LjYgMTI0LjlhOCA4IDAgMDAtMTEuNiA3LjJ2NjQuMmMwIDUuNSAyLjkgMTAuNiA3LjUgMTMuNmEzNTIuMiAzNTIuMiAwIDAxNjIuMiA0OS44YzMyLjcgMzIuOCA1OC40IDcwLjkgNzYuMyAxMTMuM2EzNTUgMzU1IDAgMDEyNy45IDEzOC43YzAgNDguMS05LjQgOTQuOC0yNy45IDEzOC43YTM1NS45MiAzNTUuOTIgMCAwMS03Ni4zIDExMy4zIDM1My4wNiAzNTMuMDYgMCAwMS0xMTMuMiA3Ni40Yy00My44IDE4LjYtOTAuNSAyOC0xMzguNSAyOHMtOTQuNy05LjQtMTM4LjUtMjhhMzUzLjA2IDM1My4wNiAwIDAxLTExMy4yLTc2LjRBMzU1LjkyIDM1NS45MiAwIDAxMTg0IDY1MC40YTM1NSAzNTUgMCAwMS0yNy45LTEzOC43YzAtNDguMSA5LjQtOTQuOCAyNy45LTEzOC43IDE3LjktNDIuNCA0My42LTgwLjUgNzYuMy0xMTMuMyAxOS0xOSAzOS44LTM1LjYgNjIuMi00OS44IDQuNy0yLjkgNy41LTguMSA3LjUtMTMuNlYxMzJjMC02LTYuMy05LjgtMTEuNi03LjJDMTc4LjUgMTk1LjIgODIgMzM5LjMgODAgNTA2LjMgNzcuMiA3NDUuMSAyNzIuNSA5NDMuNSA1MTEuMiA5NDRjMjM5IC41IDQzMi44LTE5My4zIDQzMi44LTQzMi40IDAtMTY5LjItOTctMzE1LjctMjM4LjQtMzg2Ljd6TTQ4MCA1NjBoNjRjNC40IDAgOC0zLjYgOC04Vjg4YzAtNC40LTMuNi04LTgtOGgtNjRjLTQuNCAwLTggMy42LTggOHY0NjRjMCA0LjQgMy42IDggOCA4eiJ9fV19LG5hbWU6InBvd2Vyb2ZmIix0aGVtZToib3V0bGluZWQifSxFSD13SCxUSD1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpFSH0pKX0sTUg9dC5mb3J3YXJkUmVmKFRIKSxSSD1NSCxJSD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNzMyIDEyMGMwLTQuNC0zLjYtOC04LThIMzAwYy00LjQgMC04IDMuNi04IDh2MTQ4aDQ0MFYxMjB6bTEyMCAyMTJIMTcyYy00NC4yIDAtODAgMzUuOC04MCA4MHYzMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJoMTY4djEzMmMwIDQuNCAzLjYgOCA4IDhoNDI0YzQuNCAwIDgtMy42IDgtOFY3NzJoMTY4YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjQxMmMwLTQ0LjItMzUuOC04MC04MC04MHpNNjY0IDg0NEgzNjBWNTY4aDMwNHYyNzZ6bTE2NC0zNjBjMCA0LjQtMy42IDgtOCA4aC00MGMtNC40IDAtOC0zLjYtOC04di00MGMwLTQuNCAzLjYtOCA4LThoNDBjNC40IDAgOCAzLjYgOCA4djQweiJ9fV19LG5hbWU6InByaW50ZXIiLHRoZW1lOiJmaWxsZWQifSxQSD1JSCx6SD1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpQSH0pKX0sRkg9dC5mb3J3YXJkUmVmKHpIKSxBSD1GSCxMSD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODIwIDQzNmgtNDBjLTQuNCAwLTggMy42LTggOHY0MGMwIDQuNCAzLjYgOCA4IDhoNDBjNC40IDAgOC0zLjYgOC04di00MGMwLTQuNC0zLjYtOC04LTh6bTMyLTEwNEg3MzJWMTIwYzAtNC40LTMuNi04LTgtOEgzMDBjLTQuNCAwLTggMy42LTggOHYyMTJIMTcyYy00NC4yIDAtODAgMzUuOC04MCA4MHYzMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJoMTY4djEzMmMwIDQuNCAzLjYgOCA4IDhoNDI0YzQuNCAwIDgtMy42IDgtOFY3NzJoMTY4YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjQxMmMwLTQ0LjItMzUuOC04MC04MC04MHpNMzYwIDE4MGgzMDR2MTUySDM2MFYxODB6bTMwNCA2NjRIMzYwVjU2OGgzMDR2Mjc2em0yMDAtMTQwSDczMlY1MDBIMjkydjIwNEgxNjBWNDEyYzAtNi42IDUuNC0xMiAxMi0xMmg2ODBjNi42IDAgMTIgNS40IDEyIDEydjI5MnoifX1dfSxuYW1lOiJwcmludGVyIix0aGVtZToib3V0bGluZWQifSxaSD1MSCwkSD1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpaSH0pKX0sSEg9dC5mb3J3YXJkUmVmKCRIKSxESD1ISCxCSD17aWNvbjpmdW5jdGlvbihmLHYpe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0zNjAgMTgwaDMwNHYxNTJIMzYwem00OTIgMjIwSDE3MmMtNi42IDAtMTIgNS40LTEyIDEydjI5MmgxMzJWNTAwaDQ0MHYyMDRoMTMyVjQxMmMwLTYuNi01LjQtMTItMTItMTJ6bS0yNCA4NGMwIDQuNC0zLjYgOC04IDhoLTQwYy00LjQgMC04LTMuNi04LTh2LTQwYzAtNC40IDMuNi04IDgtOGg0MGM0LjQgMCA4IDMuNiA4IDh2NDB6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg1MiAzMzJINzMyVjEyMGMwLTQuNC0zLjYtOC04LThIMzAwYy00LjQgMC04IDMuNi04IDh2MjEySDE3MmMtNDQuMiAwLTgwIDM1LjgtODAgODB2MzI4YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDE2OHYxMzJjMCA0LjQgMy42IDggOCA4aDQyNGM0LjQgMCA4LTMuNiA4LThWNzcyaDE2OGMxNy43IDAgMzItMTQuMyAzMi0zMlY0MTJjMC00NC4yLTM1LjgtODAtODAtODB6TTM2MCAxODBoMzA0djE1MkgzNjBWMTgwem0zMDQgNjY0SDM2MFY1NjhoMzA0djI3NnptMjAwLTE0MEg3MzJWNTAwSDI5MnYyMDRIMTYwVjQxMmMwLTYuNiA1LjQtMTIgMTItMTJoNjgwYzYuNiAwIDEyIDUuNCAxMiAxMnYyOTJ6IixmaWxsOmZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTgyMCA0MzZoLTQwYy00LjQgMC04IDMuNi04IDh2NDBjMCA0LjQgMy42IDggOCA4aDQwYzQuNCAwIDgtMy42IDgtOHYtNDBjMC00LjQtMy42LTgtOC04eiIsZmlsbDpmfX1dfX0sbmFtZToicHJpbnRlciIsdGhlbWU6InR3b3RvbmUifSxWSD1CSCxOSD1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpWSH0pKX0sakg9dC5mb3J3YXJkUmVmKE5IKSxVSD1qSCxXSD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnsiZmlsbC1ydWxlIjoiZXZlbm9kZCIsdmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTE2MCAxNDRoMzA0YTE2IDE2IDAgMDExNiAxNnYzMDRhMTYgMTYgMCAwMS0xNiAxNkgxNjBhMTYgMTYgMCAwMS0xNi0xNlYxNjBhMTYgMTYgMCAwMTE2LTE2bTU2NC4zMS0yNS4zM2wxODEuMDIgMTgxLjAyYTE2IDE2IDAgMDEwIDIyLjYyTDcyNC4zMSA1MDMuMzNhMTYgMTYgMCAwMS0yMi42MiAwTDUyMC42NyAzMjIuMzFhMTYgMTYgMCAwMTAtMjIuNjJsMTgxLjAyLTE4MS4wMmExNiAxNiAwIDAxMjIuNjIgME0xNjAgNTQ0aDMwNGExNiAxNiAwIDAxMTYgMTZ2MzA0YTE2IDE2IDAgMDEtMTYgMTZIMTYwYTE2IDE2IDAgMDEtMTYtMTZWNTYwYTE2IDE2IDAgMDExNi0xNm00MDAgMGgzMDRhMTYgMTYgMCAwMTE2IDE2djMwNGExNiAxNiAwIDAxLTE2IDE2SDU2MGExNiAxNiAwIDAxLTE2LTE2VjU2MGExNiAxNiAwIDAxMTYtMTYifX1dfSxuYW1lOiJwcm9kdWN0Iix0aGVtZToiZmlsbGVkIn0sa0g9V0gsS0g9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246a0h9KSl9LF9IPXQuZm9yd2FyZFJlZihLSCksR0g9X0gsWUg9e2ljb246e3RhZzoic3ZnIixhdHRyczp7ImZpbGwtcnVsZSI6ImV2ZW5vZGQiLHZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00NjQgMTQ0YTE2IDE2IDAgMDExNiAxNnYzMDRhMTYgMTYgMCAwMS0xNiAxNkgxNjBhMTYgMTYgMCAwMS0xNi0xNlYxNjBhMTYgMTYgMCAwMTE2LTE2em0tNTIgNjhIMjEydjIwMGgyMDB6bTQ5My4zMyA4Ny42OWExNiAxNiAwIDAxMCAyMi42Mkw3MjQuMzEgNTAzLjMzYTE2IDE2IDAgMDEtMjIuNjIgMEw1MjAuNjcgMzIyLjMxYTE2IDE2IDAgMDEwLTIyLjYybDE4MS4wMi0xODEuMDJhMTYgMTYgMCAwMTIyLjYyIDB6bS04NC44NSAxMS4zTDcxMyAyMDMuNTMgNjA1LjUyIDMxMSA3MTMgNDE4LjQ4ek00NjQgNTQ0YTE2IDE2IDAgMDExNiAxNnYzMDRhMTYgMTYgMCAwMS0xNiAxNkgxNjBhMTYgMTYgMCAwMS0xNi0xNlY1NjBhMTYgMTYgMCAwMTE2LTE2em0tNTIgNjhIMjEydjIwMGgyMDB6bTQ1Mi02OGExNiAxNiAwIDAxMTYgMTZ2MzA0YTE2IDE2IDAgMDEtMTYgMTZINTYwYTE2IDE2IDAgMDEtMTYtMTZWNTYwYTE2IDE2IDAgMDExNi0xNnptLTUyIDY4SDYxMnYyMDBoMjAweiJ9fV19LG5hbWU6InByb2R1Y3QiLHRoZW1lOiJvdXRsaW5lZCJ9LFhIPVlILFFIPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOlhIfSkpfSxKSD10LmZvcndhcmRSZWYoUUgpLHFIPUpILGVEPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTM4MCA2OTZjLTIyLjEgMC00MC0xNy45LTQwLTQwczE3LjktNDAgNDAtNDAgNDAgMTcuOSA0MCA0MC0xNy45IDQwLTQwIDQwem0wLTE0NGMtMjIuMSAwLTQwLTE3LjktNDAtNDBzMTcuOS00MCA0MC00MCA0MCAxNy45IDQwIDQwLTE3LjkgNDAtNDAgNDB6bTAtMTQ0Yy0yMi4xIDAtNDAtMTcuOS00MC00MHMxNy45LTQwIDQwLTQwIDQwIDE3LjkgNDAgNDAtMTcuOSA0MC00MCA0MHptMzA0IDI3MmMwIDQuNC0zLjYgOC04IDhINDkyYy00LjQgMC04LTMuNi04LTh2LTQ4YzAtNC40IDMuNi04IDgtOGgxODRjNC40IDAgOCAzLjYgOCA4djQ4em0wLTE0NGMwIDQuNC0zLjYgOC04IDhINDkyYy00LjQgMC04LTMuNi04LTh2LTQ4YzAtNC40IDMuNi04IDgtOGgxODRjNC40IDAgOCAzLjYgOCA4djQ4em0wLTE0NGMwIDQuNC0zLjYgOC04IDhINDkyYy00LjQgMC04LTMuNi04LTh2LTQ4YzAtNC40IDMuNi04IDgtOGgxODRjNC40IDAgOCAzLjYgOCA4djQ4eiJ9fV19LG5hbWU6InByb2ZpbGUiLHRoZW1lOiJmaWxsZWQifSx0RD1lRCxuRD1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjp0RH0pKX0sckQ9dC5mb3J3YXJkUmVmKG5EKSxhRD1yRCxvRD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNzI4SDE4NFYxODRoNjU2djY1NnpNNDkyIDQwMGgxODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThINDkyYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4em0wIDE0NGgxODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThINDkyYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4em0wIDE0NGgxODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThINDkyYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4ek0zNDAgMzY4YTQwIDQwIDAgMTA4MCAwIDQwIDQwIDAgMTAtODAgMHptMCAxNDRhNDAgNDAgMCAxMDgwIDAgNDAgNDAgMCAxMC04MCAwem0wIDE0NGE0MCA0MCAwIDEwODAgMCA0MCA0MCAwIDEwLTgwIDB6In19XX0sbmFtZToicHJvZmlsZSIsdGhlbWU6Im91dGxpbmVkIn0saUQ9b0QsbEQ9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246aUR9KSl9LHNEPXQuZm9yd2FyZFJlZihsRCksY0Q9c0QsdUQ9e2ljb246ZnVuY3Rpb24oZix2KXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNzI4SDE4NFYxODRoNjU2djY1NnoiLGZpbGw6Zn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMTg0IDg0MGg2NTZWMTg0SDE4NHY2NTZ6bTMwMC00OTZjMC00LjQgMy42LTggOC04aDE4NGM0LjQgMCA4IDMuNiA4IDh2NDhjMCA0LjQtMy42IDgtOCA4SDQ5MmMtNC40IDAtOC0zLjYtOC04di00OHptMCAxNDRjMC00LjQgMy42LTggOC04aDE4NGM0LjQgMCA4IDMuNiA4IDh2NDhjMCA0LjQtMy42IDgtOCA4SDQ5MmMtNC40IDAtOC0zLjYtOC04di00OHptMCAxNDRjMC00LjQgMy42LTggOC04aDE4NGM0LjQgMCA4IDMuNiA4IDh2NDhjMCA0LjQtMy42IDgtOCA4SDQ5MmMtNC40IDAtOC0zLjYtOC04di00OHpNMzgwIDMyOGMyMi4xIDAgNDAgMTcuOSA0MCA0MHMtMTcuOSA0MC00MCA0MC00MC0xNy45LTQwLTQwIDE3LjktNDAgNDAtNDB6bTAgMTQ0YzIyLjEgMCA0MCAxNy45IDQwIDQwcy0xNy45IDQwLTQwIDQwLTQwLTE3LjktNDAtNDAgMTcuOS00MCA0MC00MHptMCAxNDRjMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDAtNDAtMTcuOS00MC00MCAxNy45LTQwIDQwLTQweiIsZmlsbDp2fX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0zNDAgNjU2YTQwIDQwIDAgMTA4MCAwIDQwIDQwIDAgMTAtODAgMHptMC0xNDRhNDAgNDAgMCAxMDgwIDAgNDAgNDAgMCAxMC04MCAwem0wLTE0NGE0MCA0MCAwIDEwODAgMCA0MCA0MCAwIDEwLTgwIDB6bTE1MiAzMjBoMTg0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04SDQ5MmMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOHptMC0xNDRoMTg0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04SDQ5MmMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOHptMC0xNDRoMTg0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04SDQ5MmMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOHoiLGZpbGw6Zn19XX19LG5hbWU6InByb2ZpbGUiLHRoZW1lOiJ0d290b25lIn0sZEQ9dUQsZkQ9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246ZER9KSl9LHZEPXQuZm9yd2FyZFJlZihmRCksaEQ9dkQsbUQ9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMzY4IDc0NGMwIDQuNC0zLjYgOC04IDhoLTgwYy00LjQgMC04LTMuNi04LThWMjgwYzAtNC40IDMuNi04IDgtOGg4MGM0LjQgMCA4IDMuNiA4IDh2NDY0em0xOTItMjgwYzAgNC40LTMuNiA4LTggOGgtODBjLTQuNCAwLTgtMy42LTgtOFYyODBjMC00LjQgMy42LTggOC04aDgwYzQuNCAwIDggMy42IDggOHYxODR6bTE5MiA3MmMwIDQuNC0zLjYgOC04IDhoLTgwYy00LjQgMC04LTMuNi04LThWMjgwYzAtNC40IDMuNi04IDgtOGg4MGM0LjQgMCA4IDMuNiA4IDh2MjU2eiJ9fV19LG5hbWU6InByb2plY3QiLHRoZW1lOiJmaWxsZWQifSxnRD1tRCxwRD1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpnRH0pKX0seUQ9dC5mb3J3YXJkUmVmKHBEKSxDRD15RCxiRD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMjgwIDc1Mmg4MGM0LjQgMCA4LTMuNiA4LThWMjgwYzAtNC40LTMuNi04LTgtOGgtODBjLTQuNCAwLTggMy42LTggOHY0NjRjMCA0LjQgMy42IDggOCA4em0xOTItMjgwaDgwYzQuNCAwIDgtMy42IDgtOFYyODBjMC00LjQtMy42LTgtOC04aC04MGMtNC40IDAtOCAzLjYtOCA4djE4NGMwIDQuNCAzLjYgOCA4IDh6bTE5MiA3Mmg4MGM0LjQgMCA4LTMuNiA4LThWMjgwYzAtNC40LTMuNi04LTgtOGgtODBjLTQuNCAwLTggMy42LTggOHYyNTZjMCA0LjQgMy42IDggOCA4em0yMTYtNDMySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2eiJ9fV19LG5hbWU6InByb2plY3QiLHRoZW1lOiJvdXRsaW5lZCJ9LFNEPWJELE9EPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOlNEfSkpfSx4RD10LmZvcndhcmRSZWYoT0QpLHdEPXhELEVEPXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6IixmaWxsOmZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTE4NCA4NDBoNjU2VjE4NEgxODR2NjU2em00NzItNTYwYzAtNC40IDMuNi04IDgtOGg4MGM0LjQgMCA4IDMuNiA4IDh2MjU2YzAgNC40LTMuNiA4LTggOGgtODBjLTQuNCAwLTgtMy42LTgtOFYyODB6bS0xOTIgMGMwLTQuNCAzLjYtOCA4LThoODBjNC40IDAgOCAzLjYgOCA4djE4NGMwIDQuNC0zLjYgOC04IDhoLTgwYy00LjQgMC04LTMuNi04LThWMjgwem0tMTkyIDBjMC00LjQgMy42LTggOC04aDgwYzQuNCAwIDggMy42IDggOHY0NjRjMCA0LjQtMy42IDgtOCA4aC04MGMtNC40IDAtOC0zLjYtOC04VjI4MHoiLGZpbGw6dn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMjgwIDc1Mmg4MGM0LjQgMCA4LTMuNiA4LThWMjgwYzAtNC40LTMuNi04LTgtOGgtODBjLTQuNCAwLTggMy42LTggOHY0NjRjMCA0LjQgMy42IDggOCA4em0xOTItMjgwaDgwYzQuNCAwIDgtMy42IDgtOFYyODBjMC00LjQtMy42LTgtOC04aC04MGMtNC40IDAtOCAzLjYtOCA4djE4NGMwIDQuNCAzLjYgOCA4IDh6bTE5MiA3Mmg4MGM0LjQgMCA4LTMuNiA4LThWMjgwYzAtNC40LTMuNi04LTgtOGgtODBjLTQuNCAwLTggMy42LTggOHYyNTZjMCA0LjQgMy42IDggOCA4eiIsZmlsbDpmfX1dfX0sbmFtZToicHJvamVjdCIsdGhlbWU6InR3b3RvbmUifSxURD1FRCxNRD1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpURH0pKX0sUkQ9dC5mb3J3YXJkUmVmKE1EKSxJRD1SRCxQRD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODY2LjkgMTY5LjlMNTI3LjEgNTQuMUM1MjMgNTIuNyA1MTcuNSA1MiA1MTIgNTJzLTExIC43LTE1LjEgMi4xTDE1Ny4xIDE2OS45Yy04LjMgMi44LTE1LjEgMTIuNC0xNS4xIDIxLjJ2NDgyLjRjMCA4LjggNS43IDIwLjQgMTIuNiAyNS45TDQ5OS4zIDk2OGMzLjUgMi43IDggNC4xIDEyLjYgNC4xczkuMi0xLjQgMTIuNi00LjFsMzQ0LjctMjY4LjZjNi45LTUuNCAxMi42LTE3IDEyLjYtMjUuOVYxOTEuMWMuMi04LjgtNi42LTE4LjMtMTQuOS0yMS4yek02NDguMyAzMzIuOGwtODcuNyAxNjEuMWg0NS43YzUuNSAwIDEwIDQuNSAxMCAxMHYyMS4zYzAgNS41LTQuNSAxMC0xMCAxMGgtNjMuNHYyOS43aDYzLjRjNS41IDAgMTAgNC41IDEwIDEwdjIxLjNjMCA1LjUtNC41IDEwLTEwIDEwaC02My40VjY1OGMwIDUuNS00LjUgMTAtMTAgMTBoLTQxLjNjLTUuNSAwLTEwLTQuNS0xMC0xMHYtNTEuOGgtNjMuMWMtNS41IDAtMTAtNC41LTEwLTEwdi0yMS4zYzAtNS41IDQuNS0xMCAxMC0xMGg2My4xdi0yOS43aC02My4xYy01LjUgMC0xMC00LjUtMTAtMTB2LTIxLjNjMC01LjUgNC41LTEwIDEwLTEwaDQ1LjJsLTg4LTE2MS4xYy0yLjYtNC44LS45LTEwLjkgNC0xMy42IDEuNS0uOCAzLjEtMS4yIDQuOC0xLjJoNDZjMy44IDAgNy4yIDIuMSA4LjkgNS41bDcyLjkgMTQ0LjMgNzMuMi0xNDQuM2ExMCAxMCAwIDAxOC45LTUuNWg0NWM1LjUgMCAxMCA0LjUgMTAgMTAgLjEgMS43LS4zIDMuMy0xLjEgNC44eiJ9fV19LG5hbWU6InByb3BlcnR5LXNhZmV0eSIsdGhlbWU6ImZpbGxlZCJ9LHpEPVBELEZEPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOnpEfSkpfSxBRD10LmZvcndhcmRSZWYoRkQpLExEPUFELFpEPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NjYuOSAxNjkuOUw1MjcuMSA1NC4xQzUyMyA1Mi43IDUxNy41IDUyIDUxMiA1MnMtMTEgLjctMTUuMSAyLjFMMTU3LjEgMTY5LjljLTguMyAyLjgtMTUuMSAxMi40LTE1LjEgMjEuMnY0ODIuNGMwIDguOCA1LjcgMjAuNCAxMi42IDI1LjlMNDk5LjMgOTY4YzMuNSAyLjcgOCA0LjEgMTIuNiA0LjFzOS4yLTEuNCAxMi42LTQuMWwzNDQuNy0yNjguNmM2LjktNS40IDEyLjYtMTcgMTIuNi0yNS45VjE5MS4xYy4yLTguOC02LjYtMTguMy0xNC45LTIxLjJ6TTgxMCA2NTQuM0w1MTIgODg2LjUgMjE0IDY1NC4zVjIyNi43bDI5OC0xMDEuNiAyOTggMTAxLjZ2NDI3LjZ6TTQzMC41IDMxOGgtNDZjLTEuNyAwLTMuMy40LTQuOCAxLjJhMTAuMSAxMC4xIDAgMDAtNCAxMy42bDg4IDE2MS4xaC00NS4yYy01LjUgMC0xMCA0LjUtMTAgMTB2MjEuM2MwIDUuNSA0LjUgMTAgMTAgMTBoNjMuMXYyOS43aC02My4xYy01LjUgMC0xMCA0LjUtMTAgMTB2MjEuM2MwIDUuNSA0LjUgMTAgMTAgMTBoNjMuMVY2NThjMCA1LjUgNC41IDEwIDEwIDEwaDQxLjNjNS41IDAgMTAtNC41IDEwLTEwdi01MS44aDYzLjRjNS41IDAgMTAtNC41IDEwLTEwdi0yMS4zYzAtNS41LTQuNS0xMC0xMC0xMGgtNjMuNHYtMjkuN2g2My40YzUuNSAwIDEwLTQuNSAxMC0xMHYtMjEuM2MwLTUuNS00LjUtMTAtMTAtMTBoLTQ1LjdsODcuNy0xNjEuMWExMC4wNSAxMC4wNSAwIDAwLTguOC0xNC44aC00NWMtMy44IDAtNy4yIDIuMS04LjkgNS41bC03My4yIDE0NC4zLTcyLjktMTQ0LjNjLTEuNy0zLjQtNS4yLTUuNS05LTUuNXoifX1dfSxuYW1lOiJwcm9wZXJ0eS1zYWZldHkiLHRoZW1lOiJvdXRsaW5lZCJ9LCREPVpELEhEPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOiREfSkpfSxERD10LmZvcndhcmRSZWYoSEQpLEJEPURELFZEPXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg2Ni45IDE2OS45TDUyNy4xIDU0LjFDNTIzIDUyLjcgNTE3LjUgNTIgNTEyIDUycy0xMSAuNy0xNS4xIDIuMUwxNTcuMSAxNjkuOWMtOC4zIDIuOC0xNS4xIDEyLjQtMTUuMSAyMS4ydjQ4Mi40YzAgOC44IDUuNyAyMC40IDEyLjYgMjUuOUw0OTkuMyA5NjhjMy41IDIuNyA4IDQuMSAxMi42IDQuMXM5LjItMS40IDEyLjYtNC4xbDM0NC43LTI2OC42YzYuOS01LjQgMTIuNi0xNyAxMi42LTI1LjlWMTkxLjFjLjItOC44LTYuNi0xOC4zLTE0LjktMjEuMnpNODEwIDY1NC4zTDUxMiA4ODYuNSAyMTQgNjU0LjNWMjI2LjdsMjk4LTEwMS42IDI5OCAxMDEuNnY0MjcuNnoiLGZpbGw6Zn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMjE0IDIyNi43djQyNy42bDI5OCAyMzIuMiAyOTgtMjMyLjJWMjI2LjdMNTEyIDEyNS4xIDIxNCAyMjYuN3pNNTkzLjkgMzE4aDQ1YzUuNSAwIDEwIDQuNSAxMCAxMCAuMSAxLjctLjMgMy4zLTEuMSA0LjhsLTg3LjcgMTYxLjFoNDUuN2M1LjUgMCAxMCA0LjUgMTAgMTB2MjEuM2MwIDUuNS00LjUgMTAtMTAgMTBoLTYzLjR2MjkuN2g2My40YzUuNSAwIDEwIDQuNSAxMCAxMHYyMS4zYzAgNS41LTQuNSAxMC0xMCAxMGgtNjMuNFY2NThjMCA1LjUtNC41IDEwLTEwIDEwaC00MS4zYy01LjUgMC0xMC00LjUtMTAtMTB2LTUxLjhINDE4Yy01LjUgMC0xMC00LjUtMTAtMTB2LTIxLjNjMC01LjUgNC41LTEwIDEwLTEwaDYzLjF2LTI5LjdINDE4Yy01LjUgMC0xMC00LjUtMTAtMTB2LTIxLjNjMC01LjUgNC41LTEwIDEwLTEwaDQ1LjJsLTg4LTE2MS4xYy0yLjYtNC44LS45LTEwLjkgNC0xMy42IDEuNS0uOCAzLjEtMS4yIDQuOC0xLjJoNDZjMy44IDAgNy4yIDIuMSA4LjkgNS41bDcyLjkgMTQ0LjNMNTg1IDMyMy41YTEwIDEwIDAgMDE4LjktNS41eiIsZmlsbDp2fX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00MzguOSAzMjMuNWE5Ljg4IDkuODggMCAwMC04LjktNS41aC00NmMtMS43IDAtMy4zLjQtNC44IDEuMi00LjkgMi43LTYuNiA4LjgtNCAxMy42bDg4IDE2MS4xSDQxOGMtNS41IDAtMTAgNC41LTEwIDEwdjIxLjNjMCA1LjUgNC41IDEwIDEwIDEwaDYzLjF2MjkuN0g0MThjLTUuNSAwLTEwIDQuNS0xMCAxMHYyMS4zYzAgNS41IDQuNSAxMCAxMCAxMGg2My4xVjY1OGMwIDUuNSA0LjUgMTAgMTAgMTBoNDEuM2M1LjUgMCAxMC00LjUgMTAtMTB2LTUxLjhoNjMuNGM1LjUgMCAxMC00LjUgMTAtMTB2LTIxLjNjMC01LjUtNC41LTEwLTEwLTEwaC02My40di0yOS43aDYzLjRjNS41IDAgMTAtNC41IDEwLTEwdi0yMS4zYzAtNS41LTQuNS0xMC0xMC0xMGgtNDUuN2w4Ny43LTE2MS4xYy44LTEuNSAxLjItMy4xIDEuMS00LjggMC01LjUtNC41LTEwLTEwLTEwaC00NWExMCAxMCAwIDAwLTguOSA1LjVsLTczLjIgMTQ0LjMtNzIuOS0xNDQuM3oiLGZpbGw6Zn19XX19LG5hbWU6InByb3BlcnR5LXNhZmV0eSIsdGhlbWU6InR3b3RvbmUifSxORD1WRCxqRD1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpORH0pKX0sVUQ9dC5mb3J3YXJkUmVmKGpEKSxXRD1VRCxrRD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNzg4IDcwNS45VjE5MmMwLTguOC03LjItMTYtMTYtMTZINjAydi02OC44YzAtNi03LTkuNC0xMS43LTUuN0w0NjIuNyAyMDIuM2E3LjE0IDcuMTQgMCAwMDAgMTEuM2wxMjcuNSAxMDAuOGM0LjcgMy43IDExLjcuNCAxMS43LTUuN1YyNDBoMTE0djQ2NS45Yy00NC4yIDE1LTc2IDU2LjktNzYgMTA2LjEgMCA2MS44IDUwLjIgMTEyIDExMiAxMTJzMTEyLTUwLjIgMTEyLTExMmMuMS00OS4yLTMxLjctOTEtNzUuOS0xMDYuMXpNNzUyIDg2MGE0OC4wMSA0OC4wMSAwIDAxMC05NiA0OC4wMSA0OC4wMSAwIDAxMCA5NnpNMzg0IDIxMmMwLTYxLjgtNTAuMi0xMTItMTEyLTExMnMtMTEyIDUwLjItMTEyIDExMmMwIDQ5LjIgMzEuOCA5MSA3NiAxMDYuMVY3MDZjLTQ0LjIgMTUtNzYgNTYuOS03NiAxMDYuMSAwIDYxLjggNTAuMiAxMTIgMTEyIDExMnMxMTItNTAuMiAxMTItMTEyYzAtNDkuMi0zMS44LTkxLTc2LTEwNi4xVjMxOC4xYzQ0LjItMTUuMSA3Ni01Ni45IDc2LTEwNi4xem0tMTYwIDBhNDguMDEgNDguMDEgMCAwMTk2IDAgNDguMDEgNDguMDEgMCAwMS05NiAwem05NiA2MDBhNDguMDEgNDguMDEgMCAwMS05NiAwIDQ4LjAxIDQ4LjAxIDAgMDE5NiAweiJ9fV19LG5hbWU6InB1bGwtcmVxdWVzdCIsdGhlbWU6Im91dGxpbmVkIn0sS0Q9a0QsX0Q9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246S0R9KSl9LEdEPXQuZm9yd2FyZFJlZihfRCksWUQ9R0QsWEQ9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg3OC4zIDM5Mi4xTDYzMS45IDE0NS43Yy02LjUtNi41LTE1LTkuNy0yMy41LTkuN3MtMTcgMy4yLTIzLjUgOS43TDQyMy44IDMwNi45Yy0xMi4yLTEuNC0yNC41LTItMzYuOC0yLTczLjIgMC0xNDYuNCAyNC4xLTIwNi41IDcyLjMtMTUuNCAxMi4zLTE2LjYgMzUuNC0yLjcgNDkuNGwxODEuNyAxODEuNy0yMTUuNCAyMTUuMmExNS44IDE1LjggMCAwMC00LjYgOS44bC0zLjQgMzcuMmMtLjkgOS40IDYuNiAxNy40IDE1LjkgMTcuNC41IDAgMSAwIDEuNS0uMWwzNy4yLTMuNGMzLjctLjMgNy4yLTIgOS44LTQuNmwyMTUuNC0yMTUuNCAxODEuNyAxODEuN2M2LjUgNi41IDE1IDkuNyAyMy41IDkuNyA5LjcgMCAxOS4zLTQuMiAyNS45LTEyLjQgNTYuMy03MC4zIDc5LjctMTU4LjMgNzAuMi0yNDMuNGwxNjEuMS0xNjEuMWMxMi45LTEyLjggMTIuOS0zMy44IDAtNDYuOHoifX1dfSxuYW1lOiJwdXNocGluIix0aGVtZToiZmlsbGVkIn0sUUQ9WEQsSkQ9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246UUR9KSl9LHFEPXQuZm9yd2FyZFJlZihKRCksZUI9cUQsdEI9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg3OC4zIDM5Mi4xTDYzMS45IDE0NS43Yy02LjUtNi41LTE1LTkuNy0yMy41LTkuN3MtMTcgMy4yLTIzLjUgOS43TDQyMy44IDMwNi45Yy0xMi4yLTEuNC0yNC41LTItMzYuOC0yLTczLjIgMC0xNDYuNCAyNC4xLTIwNi41IDcyLjNhMzMuMjMgMzMuMjMgMCAwMC0yLjcgNDkuNGwxODEuNyAxODEuNy0yMTUuNCAyMTUuMmExNS44IDE1LjggMCAwMC00LjYgOS44bC0zLjQgMzcuMmMtLjkgOS40IDYuNiAxNy40IDE1LjkgMTcuNC41IDAgMSAwIDEuNS0uMWwzNy4yLTMuNGMzLjctLjMgNy4yLTIgOS44LTQuNmwyMTUuNC0yMTUuNCAxODEuNyAxODEuN2M2LjUgNi41IDE1IDkuNyAyMy41IDkuNyA5LjcgMCAxOS4zLTQuMiAyNS45LTEyLjQgNTYuMy03MC4zIDc5LjctMTU4LjMgNzAuMi0yNDMuNGwxNjEuMS0xNjEuMWMxMi45LTEyLjggMTIuOS0zMy44IDAtNDYuOHpNNjY2LjIgNTQ5LjNsLTI0LjUgMjQuNSAzLjggMzQuNGEyNTkuOTIgMjU5LjkyIDAgMDEtMzAuNCAxNTMuOUwyNjIgNDA4LjhjMTIuOS03LjEgMjYuMy0xMy4xIDQwLjMtMTcuOSAyNy4yLTkuNCA1NS43LTE0LjEgODQuNy0xNC4xIDkuNiAwIDE5LjMuNSAyOC45IDEuNmwzNC40IDMuOCAyNC41LTI0LjVMNjA4LjUgMjI0IDgwMCA0MTUuNSA2NjYuMiA1NDkuM3oifX1dfSxuYW1lOiJwdXNocGluIix0aGVtZToib3V0bGluZWQifSxuQj10QixyQj1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpuQn0pKX0sYUI9dC5mb3J3YXJkUmVmKHJCKSxvQj1hQixpQj17aWNvbjpmdW5jdGlvbihmLHYpe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00NzQuOCAzNTcuN2wtMjQuNSAyNC41LTM0LjQtMy44Yy05LjYtMS4xLTE5LjMtMS42LTI4LjktMS42LTI5IDAtNTcuNSA0LjctODQuNyAxNC4xLTE0IDQuOC0yNy40IDEwLjgtNDAuMyAxNy45bDM1My4xIDM1My4zYTI1OS45MiAyNTkuOTIgMCAwMDMwLjQtMTUzLjlsLTMuOC0zNC40IDI0LjUtMjQuNUw4MDAgNDE1LjUgNjA4LjUgMjI0IDQ3NC44IDM1Ny43eiIsZmlsbDp2fX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NzguMyAzOTIuMUw2MzEuOSAxNDUuN2MtNi41LTYuNS0xNS05LjctMjMuNS05LjdzLTE3IDMuMi0yMy41IDkuN0w0MjMuOCAzMDYuOWMtMTIuMi0xLjQtMjQuNS0yLTM2LjgtMi03My4yIDAtMTQ2LjQgMjQuMS0yMDYuNSA3Mi4zYTMzLjIzIDMzLjIzIDAgMDAtMi43IDQ5LjRsMTgxLjcgMTgxLjctMjE1LjQgMjE1LjJhMTUuOCAxNS44IDAgMDAtNC42IDkuOGwtMy40IDM3LjJjLS45IDkuNCA2LjYgMTcuNCAxNS45IDE3LjQuNSAwIDEgMCAxLjUtLjFsMzcuMi0zLjRjMy43LS4zIDcuMi0yIDkuOC00LjZsMjE1LjQtMjE1LjQgMTgxLjcgMTgxLjdjNi41IDYuNSAxNSA5LjcgMjMuNSA5LjcgOS43IDAgMTkuMy00LjIgMjUuOS0xMi40IDU2LjMtNzAuMyA3OS43LTE1OC4zIDcwLjItMjQzLjRsMTYxLjEtMTYxLjFjMTIuOS0xMi44IDEyLjktMzMuOCAwLTQ2Ljh6TTY2Ni4yIDU0OS4zbC0yNC41IDI0LjUgMy44IDM0LjRhMjU5LjkyIDI1OS45MiAwIDAxLTMwLjQgMTUzLjlMMjYyIDQwOC44YzEyLjktNy4xIDI2LjMtMTMuMSA0MC4zLTE3LjkgMjcuMi05LjQgNTUuNy0xNC4xIDg0LjctMTQuMSA5LjYgMCAxOS4zLjUgMjguOSAxLjZsMzQuNCAzLjggMjQuNS0yNC41TDYwOC41IDIyNCA4MDAgNDE1LjUgNjY2LjIgNTQ5LjN6IixmaWxsOmZ9fV19fSxuYW1lOiJwdXNocGluIix0aGVtZToidHdvdG9uZSJ9LGxCPWlCLHNCPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOmxCfSkpfSxjQj10LmZvcndhcmRSZWYoc0IpLHVCPWNCLGRCPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6eyJmaWxsLXJ1bGUiOiJldmVub2RkIix2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTU1IDc5MC41YTI4LjUgMjguNSAwIDEwNTcgMCAyOC41IDI4LjUgMCAwMC01NyAwbS0xNDMtNTU3YTI4LjUgMjguNSAwIDEwNTcgMCAyOC41IDI4LjUgMCAwMC01NyAwIn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODIxLjUyIDI5Ny43MUg3MjYuM3YtOTUuMjNjMC00OS45LTQwLjU4LTkwLjQ4LTkwLjQ4LTkwLjQ4SDM4OC4xOWMtNDkuOSAwLTkwLjQ4IDQwLjU3LTkwLjQ4IDkwLjQ4djk1LjIzaC05NS4yM2MtNDkuOSAwLTkwLjQ4IDQwLjU4LTkwLjQ4IDkwLjQ4djI0Ny42MmMwIDQ5LjkgNDAuNTcgOTAuNDggOTAuNDggOTAuNDhoOTUuMjN2OTUuMjNjMCA0OS45IDQwLjU4IDkwLjQ4IDkwLjQ4IDkwLjQ4aDI0Ny42MmM0OS45IDAgOTAuNDgtNDAuNTcgOTAuNDgtOTAuNDhWNzI2LjNoOTUuMjNjNDkuOSAwIDkwLjQ4LTQwLjU4IDkwLjQ4LTkwLjQ4VjM4OC4xOWMwLTQ5LjktNDAuNTctOTAuNDgtOTAuNDgtOTAuNDhNMjAyLjQ4IDY2OS4xNGEzMy4zNyAzMy4zNyAwIDAxLTMzLjM0LTMzLjMzVjM4OC4xOWEzMy4zNyAzMy4zNyAwIDAxMzMuMzQtMzMuMzNoMjc4LjU3YTI4LjUzIDI4LjUzIDAgMDAyOC41Ny0yOC41NyAyOC41MyAyOC41MyAwIDAwLTI4LjU3LTI4LjU4aC0xMjYuMnYtOTUuMjNhMzMuMzcgMzMuMzcgMCAwMTMzLjM0LTMzLjM0aDI0Ny42MmEzMy4zNyAzMy4zNyAwIDAxMzMuMzMgMzMuMzR2MjU2LjQ3YTI0LjQ3IDI0LjQ3IDAgMDEtMjQuNDcgMjQuNDhIMzc5LjMzYy00NS4wNCAwLTgxLjYyIDM2LjY2LTgxLjYyIDgxLjYydjEwNC4xem02NTIuMzgtMzMuMzNhMzMuMzcgMzMuMzcgMCAwMS0zMy4zNCAzMy4zM0g1NDIuOTVhMjguNTMgMjguNTMgMCAwMC0yOC41NyAyOC41NyAyOC41MyAyOC41MyAwIDAwMjguNTcgMjguNThoMTI2LjJ2OTUuMjNhMzMuMzcgMzMuMzcgMCAwMS0zMy4zNCAzMy4zNEgzODguMTlhMzMuMzcgMzMuMzcgMCAwMS0zMy4zMy0zMy4zNFY1NjUuMDVhMjQuNDcgMjQuNDcgMCAwMTI0LjQ3LTI0LjQ4aDI2NS4zNGM0NS4wNCAwIDgxLjYyLTM2LjY3IDgxLjYyLTgxLjYydi0xMDQuMWg5NS4yM2EzMy4zNyAzMy4zNyAwIDAxMzMuMzQgMzMuMzR6In19XX0sbmFtZToicHl0aG9uIix0aGVtZToib3V0bGluZWQifSxmQj1kQix2Qj1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpmQn0pKX0saEI9dC5mb3J3YXJkUmVmKHZCKSxtQj1oQixnQj17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTIxMC41IDYxMi40Yy0xMS41IDEuNC00NC45LTUyLjctNDQuOS01Mi43IDAgMzEuMy0xNi4yIDcyLjItNTEuMSAxMDEuOCAxNi45IDUuMiA1NC45IDE5LjIgNDUuOSAzNC40LTcuMyAxMi4zLTEyNS42IDcuOS0xNTkuOCA0LTM0LjIgMy44LTE1Mi41IDguMy0xNTkuOC00LTkuMS0xNS4yIDI4LjktMjkuMiA0NS44LTM0LjQtMzUtMjkuNS01MS4xLTcwLjQtNTEuMS0xMDEuOCAwIDAtMzMuNCA1NC4xLTQ0LjkgNTIuNy01LjQtLjctMTIuNC0yOS42IDkuNC05OS43IDEwLjMtMzMgMjItNjAuNSA0MC4yLTEwNS44LTMuMS0xMTYuOSA0NS4zLTIxNSAxNjAuNC0yMTUgMTEzLjkgMCAxNjMuMyA5Ni4xIDE2MC40IDIxNSAxOC4xIDQ1LjIgMjkuOSA3Mi44IDQwLjIgMTA1LjggMjEuNyA3MC4xIDE0LjYgOTkuMSA5LjMgOTkuN3oifX1dfSxuYW1lOiJxcS1jaXJjbGUiLHRoZW1lOiJmaWxsZWQifSxwQj1nQix5Qj1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpwQn0pKX0sQ0I9dC5mb3J3YXJkUmVmKHlCKSxiQj1DQixTQj17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODI0LjggNjEzLjJjLTE2LTUxLjQtMzQuNC05NC42LTYyLjctMTY1LjNDNzY2LjUgMjYyLjIgNjg5LjMgMTEyIDUxMS41IDExMiAzMzEuNyAxMTIgMjU2LjIgMjY1LjIgMjYxIDQ0Ny45Yy0yOC40IDcwLjgtNDYuNyAxMTMuNy02Mi43IDE2NS4zLTM0IDEwOS41LTIzIDE1NC44LTE0LjYgMTU1LjggMTggMi4yIDcwLjEtODIuNCA3MC4xLTgyLjQgMCA0OSAyNS4yIDExMi45IDc5LjggMTU5LTI2LjQgOC4xLTg1LjcgMjkuOS03MS42IDUzLjggMTEuNCAxOS4zIDE5Ni4yIDEyLjMgMjQ5LjUgNi4zIDUzLjMgNiAyMzguMSAxMyAyNDkuNS02LjMgMTQuMS0yMy44LTQ1LjMtNDUuNy03MS42LTUzLjggNTQuNi00Ni4yIDc5LjgtMTEwLjEgNzkuOC0xNTkgMCAwIDUyLjEgODQuNiA3MC4xIDgyLjQgOC41LTEuMSAxOS41LTQ2LjQtMTQuNS0xNTUuOHoifX1dfSxuYW1lOiJxcSIsdGhlbWU6Im91dGxpbmVkIn0sT0I9U0IseEI9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246T0J9KSl9LHdCPXQuZm9yd2FyZFJlZih4QiksRUI9d0IsVEI9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNzIyLjUgNjc2LjRjLTExLjUgMS40LTQ0LjktNTIuNy00NC45LTUyLjcgMCAzMS4zLTE2LjIgNzIuMi01MS4xIDEwMS44IDE2LjkgNS4yIDU0LjkgMTkuMiA0NS45IDM0LjQtNy4zIDEyLjMtMTI1LjYgNy45LTE1OS44IDQtMzQuMiAzLjgtMTUyLjUgOC4zLTE1OS44LTQtOS4xLTE1LjIgMjguOS0yOS4yIDQ1LjgtMzQuNC0zNS0yOS41LTUxLjEtNzAuNC01MS4xLTEwMS44IDAgMC0zMy40IDU0LjEtNDQuOSA1Mi43LTUuNC0uNy0xMi40LTI5LjYgOS40LTk5LjcgMTAuMy0zMyAyMi02MC41IDQwLjItMTA1LjgtMy4xLTExNi45IDQ1LjMtMjE1IDE2MC40LTIxNSAxMTMuOSAwIDE2My4zIDk2LjEgMTYwLjQgMjE1IDE4LjEgNDUuMiAyOS45IDcyLjggNDAuMiAxMDUuOCAyMS43IDcwLjEgMTQuNiA5OS4xIDkuMyA5OS43eiJ9fV19LG5hbWU6InFxLXNxdWFyZSIsdGhlbWU6ImZpbGxlZCJ9LE1CPVRCLFJCPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOk1CfSkpfSxJQj10LmZvcndhcmRSZWYoUkIpLFBCPUlCLHpCPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00NjggMTI4SDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MzA4YzAgNC40IDMuNiA4IDggOGgzMzJjNC40IDAgOC0zLjYgOC04VjEzNmMwLTQuNC0zLjYtOC04LTh6bS01NiAyODRIMTkyVjE5MmgyMjB2MjIwem0tMTM4LTc0aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptMTk0IDIxMEgxMzZjLTQuNCAwLTggMy42LTggOHYzMDhjMCAxNy43IDE0LjMgMzIgMzIgMzJoMzA4YzQuNCAwIDgtMy42IDgtOFY1NTZjMC00LjQtMy42LTgtOC04em0tNTYgMjg0SDE5MlY2MTJoMjIwdjIyMHptLTEzOC03NGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6bTU5MC02MzBINTU2Yy00LjQgMC04IDMuNi04IDh2MzMyYzAgNC40IDMuNiA4IDggOGgzMzJjNC40IDAgOC0zLjYgOC04VjE2MGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTMyIDI4NEg2MTJWMTkyaDIyMHYyMjB6bS0xMzgtNzRoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em0xOTQgMjEwaC00OGMtNC40IDAtOCAzLjYtOCA4djEzNGgtNzhWNTU2YzAtNC40LTMuNi04LTgtOEg1NTZjLTQuNCAwLTggMy42LTggOHYzMzJjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOFY2NDRoNzh2MTAyYzAgNC40IDMuNiA4IDggOGgxOTBjNC40IDAgOC0zLjYgOC04VjU1NmMwLTQuNC0zLjYtOC04LTh6TTc0NiA4MzJoLTQ4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04em0xNDIgMGgtNDhjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6In19XX0sbmFtZToicXJjb2RlIix0aGVtZToib3V0bGluZWQifSxGQj16QixBQj1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpGQn0pKX0sTEI9dC5mb3J3YXJkUmVmKEFCKSxaQj1MQiwkQj17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgNzA4Yy0yMi4xIDAtNDAtMTcuOS00MC00MHMxNy45LTQwIDQwLTQwIDQwIDE3LjkgNDAgNDAtMTcuOSA0MC00MCA0MHptNjIuOS0yMTkuNWE0OC4zIDQ4LjMgMCAwMC0zMC45IDQ0LjhWNjIwYzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOHYtMjEuNWMwLTIzLjEgNi43LTQ1LjkgMTkuOS02NC45IDEyLjktMTguNiAzMC45LTMyLjggNTIuMS00MC45IDM0LTEzLjEgNTYtNDEuNiA1Ni03Mi43IDAtNDQuMS00My4xLTgwLTk2LTgwcy05NiAzNS45LTk2IDgwdjcuNmMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LThWNDIwYzAtMzkuMyAxNy4yLTc2IDQ4LjQtMTAzLjNDNDMwLjQgMjkwLjQgNDcwIDI3NiA1MTIgMjc2czgxLjYgMTQuNSAxMTEuNiA0MC43QzY1NC44IDM0NCA2NzIgMzgwLjcgNjcyIDQyMGMwIDU3LjgtMzguMSAxMDkuOC05Ny4xIDEzMi41eiJ9fV19LG5hbWU6InF1ZXN0aW9uLWNpcmNsZSIsdGhlbWU6ImZpbGxlZCJ9LEhCPSRCLERCPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkhCfSkpfSxCQj10LmZvcndhcmRSZWYoREIpLFZCPUJCLE5CPWUoMjUwMzUpLGpCPXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnoiLGZpbGw6Zn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDE0MGMtMjA1LjQgMC0zNzIgMTY2LjYtMzcyIDM3MnMxNjYuNiAzNzIgMzcyIDM3MiAzNzItMTY2LjYgMzcyLTM3Mi0xNjYuNi0zNzItMzcyLTM3MnptMCA2MzJjLTIyLjEgMC00MC0xNy45LTQwLTQwczE3LjktNDAgNDAtNDAgNDAgMTcuOSA0MCA0MC0xNy45IDQwLTQwIDQwem02Mi45LTIxOS41YTQ4LjMgNDguMyAwIDAwLTMwLjkgNDQuOFY2MjBjMCA0LjQtMy42IDgtOCA4aC00OGMtNC40IDAtOC0zLjYtOC04di0yMS41YzAtMjMuMSA2LjctNDUuOSAxOS45LTY0LjkgMTIuOS0xOC42IDMwLjktMzIuOCA1Mi4xLTQwLjkgMzQtMTMuMSA1Ni00MS42IDU2LTcyLjcgMC00NC4xLTQzLjEtODAtOTYtODBzLTk2IDM1LjktOTYgODB2Ny42YzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOFY0MjBjMC0zOS4zIDE3LjItNzYgNDguNC0xMDMuM0M0MzAuNCAyOTAuNCA0NzAgMjc2IDUxMiAyNzZzODEuNiAxNC41IDExMS42IDQwLjdDNjU0LjggMzQ0IDY3MiAzODAuNyA2NzIgNDIwYzAgNTcuOC0zOC4xIDEwOS44LTk3LjEgMTMyLjV6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQ3MiA3MzJhNDAgNDAgMCAxMDgwIDAgNDAgNDAgMCAxMC04MCAwem0xNTEuNi00MTUuM0M1OTMuNiAyOTAuNSA1NTQgMjc2IDUxMiAyNzZzLTgxLjYgMTQuNC0xMTEuNiA0MC43QzM2OS4yIDM0NCAzNTIgMzgwLjcgMzUyIDQyMHY3LjZjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOFY0MjBjMC00NC4xIDQzLjEtODAgOTYtODBzOTYgMzUuOSA5NiA4MGMwIDMxLjEtMjIgNTkuNi01NiA3Mi43LTIxLjIgOC4xLTM5LjIgMjIuMy01Mi4xIDQwLjktMTMuMiAxOS0xOS45IDQxLjgtMTkuOSA2NC45VjYyMGMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04di0yMi43YTQ4LjMgNDguMyAwIDAxMzAuOS00NC44YzU5LTIyLjcgOTcuMS03NC43IDk3LjEtMTMyLjUgMC0zOS4zLTE3LjItNzYtNDguNC0xMDMuM3oiLGZpbGw6Zn19XX19LG5hbWU6InF1ZXN0aW9uLWNpcmNsZSIsdGhlbWU6InR3b3RvbmUifSxVQj1qQixXQj1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpVQn0pKX0sa0I9dC5mb3J3YXJkUmVmKFdCKSxLQj1rQixfQj17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNzY0IDI4MC45Yy0xNC0zMC42LTMzLjktNTguMS01OS4zLTgxLjZDNjUzLjEgMTUxLjQgNTg0LjYgMTI1IDUxMiAxMjVzLTE0MS4xIDI2LjQtMTkyLjcgNzQuMmMtMjUuNCAyMy42LTQ1LjMgNTEtNTkuMyA4MS43LTE0LjYgMzItMjIgNjUuOS0yMiAxMDAuOXYyN2MwIDYuMiA1IDExLjIgMTEuMiAxMS4yaDU0YzYuMiAwIDExLjItNSAxMS4yLTExLjJ2LTI3YzAtOTkuNSA4OC42LTE4MC40IDE5Ny42LTE4MC40czE5Ny42IDgwLjkgMTk3LjYgMTgwLjRjMCA0MC44LTE0LjUgNzkuMi00MiAxMTEuMi0yNy4yIDMxLjctNjUuNiA1NC40LTEwOC4xIDY0LTI0LjMgNS41LTQ2LjIgMTkuMi02MS43IDM4LjhhMTEwLjg1IDExMC44NSAwIDAwLTIzLjkgNjguNnYzMS40YzAgNi4yIDUgMTEuMiAxMS4yIDExLjJoNTRjNi4yIDAgMTEuMi01IDExLjItMTEuMnYtMzEuNGMwLTE1LjcgMTAuOS0yOS41IDI2LTMyLjkgNTguNC0xMy4yIDExMS40LTQ0LjcgMTQ5LjMtODguNyAxOS4xLTIyLjMgMzQtNDcuMSA0NC4zLTc0IDEwLjctMjcuOSAxNi4xLTU3LjIgMTYuMS04NyAwLTM1LTcuNC02OS0yMi0xMDAuOXpNNTEyIDc4N2MtMzAuOSAwLTU2IDI1LjEtNTYgNTZzMjUuMSA1NiA1NiA1NiA1Ni0yNS4xIDU2LTU2LTI1LjEtNTYtNTYtNTZ6In19XX0sbmFtZToicXVlc3Rpb24iLHRoZW1lOiJvdXRsaW5lZCJ9LEdCPV9CLFlCPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkdCfSkpfSxYQj10LmZvcndhcmRSZWYoWUIpLFFCPVhCLEpCPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MjYuOCAzOTcuMWwtMzk2LTI4OGEzMS44MSAzMS44MSAwIDAwLTM3LjYgMGwtMzk2IDI4OGEzMS45OSAzMS45OSAwIDAwLTExLjYgMzUuOGwxNTEuMyA0NjZhMzIgMzIgMCAwMDMwLjQgMjIuMWg0ODkuNWMxMy45IDAgMjYuMS04LjkgMzAuNC0yMi4xbDE1MS4zLTQ2NmM0LjItMTMuMi0uNS0yNy42LTExLjctMzUuOHpNODM4LjYgNDE3bC05OC41IDMyLTIwMC0xNDQuN1YxOTkuOUw4MzguNiA0MTd6TTQ2NiA1NjcuMmwtODkuMSAxMjIuMy01NS4yLTE2OS4yTDQ2NiA1NjcuMnptLTExNi4zLTk2LjhMNDg0IDM3My4zdjE0MC44bC0xMzQuMy00My43ek01MTIgNTk5LjJsOTMuOSAxMjguOUg0MTguMUw1MTIgNTk5LjJ6bTI4LjEtMjI1LjlsMTM0LjIgOTcuMUw1NDAuMSA1MTRWMzczLjN6TTU1OCA1NjcuMmwxNDQuMy00Ni45LTU1LjIgMTY5LjJMNTU4IDU2Ny4yem0tNzQtMzY3LjN2MTA0LjRMMjgzLjkgNDQ5bC05OC41LTMyTDQ4NCAxOTkuOXpNMTY5LjMgNDcwLjhsODYuNSAyOC4xIDgwLjQgMjQ2LjQtNTMuOCA3My45LTExMy4xLTM0OC40ek0zMjcuMSA4NTNsNTAuMy02OWgyNjkuM2w1MC4zIDY5SDMyNy4xem00MTQuNS0zMy44bC01My44LTczLjkgODAuNC0yNDYuNCA4Ni41LTI4LjEtMTEzLjEgMzQ4LjR6In19XX0sbmFtZToicmFkYXItY2hhcnQiLHRoZW1lOiJvdXRsaW5lZCJ9LHFCPUpCLGVWPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOnFCfSkpfSx0Vj10LmZvcndhcmRSZWYoZVYpLG5WPXRWLHJWPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik03MTIgODI0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMi02OTZoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04ek0xMzYgMzc0aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptMC0xNzRoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em03NTIgNjI0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC0xNzRoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wLTE3NGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtMTc0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC0xNzRoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0tMzQ4IDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0tMjMwIDcyaDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptMjMwIDYyNEgzNThjLTg3LjMgMC0xNTgtNzAuNy0xNTgtMTU4VjQ4NGMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2MTgyYzAgMTI3IDEwMyAyMzAgMjMwIDIzMGgxODJjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6In19XX0sbmFtZToicmFkaXVzLWJvdHRvbWxlZnQiLHRoZW1lOiJvdXRsaW5lZCJ9LGFWPXJWLG9WPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOmFWfSkpfSxpVj10LmZvcndhcmRSZWYob1YpLGxWPWlWLHNWPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0zNjggODI0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptLTU4LTYyNGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6bTU3OCAxMDJoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wLTE3NGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6TTE5MiA4MjRoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wLTE3NGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtMTc0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC0xNzRoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wLTE3NGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTI5MiA3Mmg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6bTE3NCAwaDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptMjMwIDI3NmgtNTZjLTQuNCAwLTggMy42LTggOHYxODJjMCA4Ny4zLTcwLjcgMTU4LTE1OCAxNThINDg0Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDE4MmMxMjcgMCAyMzAtMTAzIDIzMC0yMzBWNDg0YzAtNC40LTMuNi04LTgtOHoifX1dfSxuYW1lOiJyYWRpdXMtYm90dG9tcmlnaHQiLHRoZW1lOiJvdXRsaW5lZCJ9LGNWPXNWLHVWPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOmNWfSkpfSxkVj10LmZvcndhcmRSZWYodVYpLGZWPWRWLHZWPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0zOTYgMTQwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptLTQ0IDY4NGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTUyNC0yMDRoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04ek0xOTIgMzQ0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCAxNjBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wIDE2MGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgMTYwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMzIwIDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0xNjAgMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTE0MC0yODRjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFYzNzBjMC0xMjctMTAzLTIzMC0yMzAtMjMwSDQ4NGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGgxNzBjODcuMyAwIDE1OCA3MC43IDE1OCAxNTh2MTcwek0yMzYgOTZIOTJjLTQuNCAwLTggMy42LTggOHYxNDRjMCA0LjQgMy42IDggOCA4aDE0NGM0LjQgMCA4LTMuNiA4LThWMTA0YzAtNC40LTMuNi04LTgtOHptLTQ4IDEwMS42YzAgMS4zLTEuMSAyLjQtMi40IDIuNGgtNDMuMmMtMS4zIDAtMi40LTEuMS0yLjQtMi40di00My4yYzAtMS4zIDEuMS0yLjQgMi40LTIuNGg0My4yYzEuMyAwIDIuNCAxLjEgMi40IDIuNHY0My4yek05MjAgNzgwSDc3NmMtNC40IDAtOCAzLjYtOCA4djE0NGMwIDQuNCAzLjYgOCA4IDhoMTQ0YzQuNCAwIDgtMy42IDgtOFY3ODhjMC00LjQtMy42LTgtOC04em0tNDggMTAxLjZjMCAxLjMtMS4xIDIuNC0yLjQgMi40aC00My4yYy0xLjMgMC0yLjQtMS4xLTIuNC0yLjR2LTQzLjJjMC0xLjMgMS4xLTIuNCAyLjQtMi40aDQzLjJjMS4zIDAgMi40IDEuMSAyLjQgMi40djQzLjJ6In19XX0sbmFtZToicmFkaXVzLXNldHRpbmciLHRoZW1lOiJvdXRsaW5lZCJ9LGhWPXZWLG1WPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOmhWfSkpfSxnVj10LmZvcndhcmRSZWYobVYpLHBWPWdWLHlWPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02NTYgMjAwaDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptNTggNjI0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNMTkyIDY1MGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgMTc0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptNjk2LTY5NmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgMTc0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCAxNzRoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wIDE3NGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgMTc0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptLTM0OCAwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptLTE3NCAwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMTc0LTY5NkgzNThjLTEyNyAwLTIzMCAxMDMtMjMwIDIzMHYxODJjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFYzNThjMC04Ny4zIDcwLjctMTU4IDE1OC0xNThoMTgyYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04eiJ9fV19LG5hbWU6InJhZGl1cy11cGxlZnQiLHRoZW1lOiJvdXRsaW5lZCJ9LENWPXlWLGJWPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkNWfSkpfSxTVj10LmZvcndhcmRSZWYoYlYpLE9WPVNWLHhWPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0zNjggMTI4aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptLTIgNjk2aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptNTIyLTE3NGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgMTc0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNMTkyIDEyOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgMTc0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCAxNzRoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wIDE3NGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgMTc0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMzQ4IDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0xNzQgMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS00OC02OTZINDg0Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDE4MmM4Ny4zIDAgMTU4IDcwLjcgMTU4IDE1OHYxODJjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFYzNThjMC0xMjctMTAzLTIzMC0yMzAtMjMweiJ9fV19LG5hbWU6InJhZGl1cy11cHJpZ2h0Iix0aGVtZToib3V0bGluZWQifSx3Vj14VixFVj1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjp3Vn0pKX0sVFY9dC5mb3J3YXJkUmVmKEVWKSxNVj1UVixSVj17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTI4IDE2MUg2OTkuMmMtNDkuMSAwLTk3LjEgMTQuMS0xMzguNCA0MC43TDUxMiAyMzNsLTQ4LjgtMzEuM0EyNTUuMiAyNTUuMiAwIDAwMzI0LjggMTYxSDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY1NjhjMCAxNy43IDE0LjMgMzIgMzIgMzJoMjI4LjhjNDkuMSAwIDk3LjEgMTQuMSAxMzguNCA0MC43bDQ0LjQgMjguNmMxLjMuOCAyLjggMS4zIDQuMyAxLjNzMy0uNCA0LjMtMS4zbDQ0LjQtMjguNkM2MDIgODA3LjEgNjUwLjEgNzkzIDY5OS4yIDc5M0g5MjhjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTkzYzAtMTcuNy0xNC4zLTMyLTMyLTMyek00MDQgNTUzLjVjMCA0LjEtMy4yIDcuNS03LjEgNy41SDIxMS4xYy0zLjkgMC03LjEtMy40LTcuMS03LjV2LTQ1YzAtNC4xIDMuMi03LjUgNy4xLTcuNWgxODUuN2MzLjkgMCA3LjEgMy40IDcuMSA3LjV2NDV6bTAtMTQwYzAgNC4xLTMuMiA3LjUtNy4xIDcuNUgyMTEuMWMtMy45IDAtNy4xLTMuNC03LjEtNy41di00NWMwLTQuMSAzLjItNy41IDcuMS03LjVoMTg1LjdjMy45IDAgNy4xIDMuNCA3LjEgNy41djQ1em00MTYgMTQwYzAgNC4xLTMuMiA3LjUtNy4xIDcuNUg2MjcuMWMtMy45IDAtNy4xLTMuNC03LjEtNy41di00NWMwLTQuMSAzLjItNy41IDcuMS03LjVoMTg1LjdjMy45IDAgNy4xIDMuNCA3LjEgNy41djQ1em0wLTE0MGMwIDQuMS0zLjIgNy41LTcuMSA3LjVINjI3LjFjLTMuOSAwLTcuMS0zLjQtNy4xLTcuNXYtNDVjMC00LjEgMy4yLTcuNSA3LjEtNy41aDE4NS43YzMuOSAwIDcuMSAzLjQgNy4xIDcuNXY0NXoifX1dfSxuYW1lOiJyZWFkIix0aGVtZToiZmlsbGVkIn0sSVY9UlYsUFY9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246SVZ9KSl9LHpWPXQuZm9yd2FyZFJlZihQViksRlY9elYsQVY9ZSgyMjgxMSksTFY9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246QVYuWn0pKX0sWlY9dC5mb3J3YXJkUmVmKExWKSwkVj1aVixIVj17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNjc2IDYyM2MtMTguOCAwLTM0IDE1LjItMzQgMzRzMTUuMiAzNCAzNCAzNCAzNC0xNS4yIDM0LTM0LTE1LjItMzQtMzQtMzR6bTIwNC00NTVINjY4YzAtMzAuOS0yNS4xLTU2LTU2LTU2aC04MGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZIMjY0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYyMDBoLTg4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJoMzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMydi0xNmgzNjhjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjAwYzAtMTcuNy0xNC4zLTMyLTMyLTMyek00NDggODQ4SDE3NlY2MTZoMjcydjIzMnptMC0yOTZIMTc2di04OGgyNzJ2ODh6bTIwLTI3MnYtNDhoNzJ2LTU2aDY0djU2aDcydjQ4SDQ2OHptMTgwIDE2OHY1NmMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LTh2LTU2YzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh6bTI4IDMwMWMtNTAuOCAwLTkyLTQxLjItOTItOTJzNDEuMi05MiA5Mi05MiA5MiA0MS4yIDkyIDkyLTQxLjIgOTItOTIgOTJ6bTkyLTI0NWMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LTh2LTk2YzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh2OTZ6bS05MiA2MWMtNTAuOCAwLTkyIDQxLjItOTIgOTJzNDEuMiA5MiA5MiA5MiA5Mi00MS4yIDkyLTkyLTQxLjItOTItOTItOTJ6bTAgMTI2Yy0xOC44IDAtMzQtMTUuMi0zNC0zNHMxNS4yLTM0IDM0LTM0IDM0IDE1LjIgMzQgMzQtMTUuMiAzNC0zNCAzNHoifX1dfSxuYW1lOiJyZWNvbmNpbGlhdGlvbiIsdGhlbWU6ImZpbGxlZCJ9LERWPUhWLEJWPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkRWfSkpfSxWVj10LmZvcndhcmRSZWYoQlYpLE5WPVZWLGpWPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02NzYgNTY1Yy01MC44IDAtOTIgNDEuMi05MiA5MnM0MS4yIDkyIDkyIDkyIDkyLTQxLjIgOTItOTItNDEuMi05Mi05Mi05MnptMCAxMjZjLTE4LjggMC0zNC0xNS4yLTM0LTM0czE1LjItMzQgMzQtMzQgMzQgMTUuMiAzNCAzNC0xNS4yIDM0LTM0IDM0em0yMDQtNTIzSDY2OGMwLTMwLjktMjUuMS01Ni01Ni01NmgtODBjLTMwLjkgMC01NiAyNS4xLTU2IDU2SDI2NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MjAwaC04OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDMzNmMxNy43IDAgMzItMTQuMyAzMi0zMnYtMTZoMzY4YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjIwMGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQxMiA2NGg3MnYtNTZoNjR2NTZoNzJ2NDhINDY4di00OHptLTIwIDYxNkgxNzZWNjE2aDI3MnYyMzJ6bTAtMjk2SDE3NnYtODhoMjcydjg4em0zOTIgMjQwSDUxMlY0MzJjMC0xNy43LTE0LjMtMzItMzItMzJIMzA0VjI0MGgxMDB2MTA0aDMzNlYyNDBoMTAwdjU1MnpNNzA0IDQwOHY5NmMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04di05NmMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh6TTU5MiA1MTJoNDhjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4eiJ9fV19LG5hbWU6InJlY29uY2lsaWF0aW9uIix0aGVtZToib3V0bGluZWQifSxVVj1qVixXVj1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpVVn0pKX0sa1Y9dC5mb3J3YXJkUmVmKFdWKSxLVj1rVixfVj17aWNvbjpmdW5jdGlvbihmLHYpe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik03NDAgMzQ0SDQwNFYyNDBIMzA0djE2MGgxNzZjMTcuNyAwIDMyIDE0LjMgMzIgMzJ2MzYwaDMyOFYyNDBINzQwdjEwNHpNNTg0IDQ0OGMwLTQuNCAzLjYtOCA4LThoNDhjNC40IDAgOCAzLjYgOCA4djU2YzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOHYtNTZ6bTkyIDMwMWMtNTAuOCAwLTkyLTQxLjItOTItOTJzNDEuMi05MiA5Mi05MiA5MiA0MS4yIDkyIDkyLTQxLjIgOTItOTIgOTJ6bTkyLTM0MXY5NmMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LTh2LTk2YzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTY0MiA2NTdhMzQgMzQgMCAxMDY4IDAgMzQgMzQgMCAxMC02OCAweiIsZmlsbDp2fX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01OTIgNTEyaDQ4YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC00OGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptMTEyLTEwNHY5NmMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04di05NmMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh6IixmaWxsOmZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxNjhINjY4YzAtMzAuOS0yNS4xLTU2LTU2LTU2aC04MGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZIMjY0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYyMDBoLTg4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJoMzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMydi0xNmgzNjhjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjAwYzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDEyIDY0aDcydi01Nmg2NHY1Nmg3MnY0OEg0Njh2LTQ4em0tMjAgNjE2SDE3NlY2MTZoMjcydjIzMnptMC0yOTZIMTc2di04OGgyNzJ2ODh6bTM5MiAyNDBINTEyVjQzMmMwLTE3LjctMTQuMy0zMi0zMi0zMkgzMDRWMjQwaDEwMHYxMDRoMzM2VjI0MGgxMDB2NTUyeiIsZmlsbDpmfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02NzYgNTY1Yy01MC44IDAtOTIgNDEuMi05MiA5MnM0MS4yIDkyIDkyIDkyIDkyLTQxLjIgOTItOTItNDEuMi05Mi05Mi05MnptMCAxMjZjLTE4LjggMC0zNC0xNS4yLTM0LTM0czE1LjItMzQgMzQtMzQgMzQgMTUuMiAzNCAzNC0xNS4yIDM0LTM0IDM0eiIsZmlsbDpmfX1dfX0sbmFtZToicmVjb25jaWxpYXRpb24iLHRoZW1lOiJ0d290b25lIn0sR1Y9X1YsWVY9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246R1Z9KSl9LFhWPXQuZm9yd2FyZFJlZihZViksUVY9WFYsSlY9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTgzMiA2NEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6TTY0NyA0NzAuNGwtODcuMiAxNjFoNDUuOWM0LjYgMCA4LjQgMy44IDguNCA4LjR2MjUuMWMwIDQuNi0zLjggOC40LTguNCA4LjRoLTYzLjN2MjguNmg2My4zYzQuNiAwIDguNCAzLjggOC40IDguNHYyNWMuMiA0LjYtMy42IDguNS04LjIgOC41aC02My4zdjQ5LjljMCA0LjYtMy44IDguNC04LjQgOC40aC00My43Yy00LjYgMC04LjQtMy44LTguNC04LjR2LTQ5LjloLTYzYy00LjYgMC04LjQtMy44LTguNC04LjR2LTI1LjFjMC00LjYgMy44LTguNCA4LjQtOC40aDYzdi0yOC42aC02M2MtNC42IDAtOC40LTMuOC04LjQtOC40di0yNS4xYzAtNC42IDMuOC04LjQgOC40LTguNGg0NS40bC04Ny41LTE2MWMtMi4yLTQuMS0uNy05LjEgMy40LTExLjQgMS4zLS42IDIuNi0xIDMuOS0xaDQ4LjhjMy4yIDAgNi4xIDEuOCA3LjUgNC42bDcxLjkgMTQxLjggNzEuOS0xNDEuOWE4LjUgOC41IDAgMDE3LjUtNC42aDQ3LjhjNC42IDAgOC40IDMuOCA4LjQgOC40LS4xIDEuNS0uNSAyLjktMS4xIDQuMXpNNTEyLjYgMzIzTDI4OSAxNDhoNDQ2TDUxMi42IDMyM3oifX1dfSxuYW1lOiJyZWQtZW52ZWxvcGUiLHRoZW1lOiJmaWxsZWQifSxxVj1KVixlTj1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpxVn0pKX0sdE49dC5mb3J3YXJkUmVmKGVOKSxuTj10TixyTj17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNDQwLjYgNDYyLjZhOC4zOCA4LjM4IDAgMDAtNy41LTQuNmgtNDguOGMtMS4zIDAtMi42LjQtMy45IDFhOC40IDguNCAwIDAwLTMuNCAxMS40bDg3LjQgMTYxLjFINDE5Yy00LjYgMC04LjQgMy44LTguNCA4LjRWNjY1YzAgNC42IDMuOCA4LjQgOC40IDguNGg2M1Y3MDJoLTYzYy00LjYgMC04LjQgMy44LTguNCA4LjR2MjUuMWMwIDQuNiAzLjggOC40IDguNCA4LjRoNjN2NDkuOWMwIDQuNiAzLjggOC40IDguNCA4LjRoNDMuN2M0LjYgMCA4LjQtMy44IDguNC04LjR2LTQ5LjloNjMuM2M0LjcgMCA4LjQtMy44IDguMi04LjV2LTI1YzAtNC42LTMuOC04LjQtOC40LTguNGgtNjMuM3YtMjguNmg2My4zYzQuNiAwIDguNC0zLjggOC40LTguNHYtMjUuMWMwLTQuNi0zLjgtOC40LTguNC04LjRoLTQ1LjlsODcuMi0xNjFhOC40NSA4LjQ1IDAgMDAtNy40LTEyLjRoLTQ3LjhjLTMuMSAwLTYgMS44LTcuNSA0LjZsLTcxLjkgMTQxLjktNzEuNy0xNDJ6TTgzMiA2NEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA4MjRIMjMyVjE5My4xbDI2MC4zIDIwNC4xYzExLjYgOS4xIDI3LjkgOS4xIDM5LjUgMEw3OTIgMTkzLjFWODg4em0wLTc1MS4zaC0zMS43TDUxMiAzMzEuMyAyNjMuNyAxMzYuN0gyMzJ2LS43aDU2MHYuN3oifX1dfSxuYW1lOiJyZWQtZW52ZWxvcGUiLHRoZW1lOiJvdXRsaW5lZCJ9LGFOPXJOLG9OPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOmFOfSkpfSxpTj10LmZvcndhcmRSZWYob04pLGxOPWlOLHNOPXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTgzMiA2NEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA4MjRIMjMyVjE5My4xbDI2MC4zIDIwNC4xYzExLjYgOS4xIDI3LjkgOS4xIDM5LjUgMEw3OTIgMTkzLjFWODg4em0wLTc1MS4zaC0zMS43TDUxMiAzMzEuMyAyNjMuNyAxMzYuN0gyMzJ2LS43aDU2MHYuN3oiLGZpbGw6Zn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNDkyLjMgMzk3LjJMMjMyIDE5My4xVjg4OGg1NjBWMTkzLjFMNTMxLjggMzk3LjJhMzEuOTkgMzEuOTkgMCAwMS0zOS41IDB6bTk5LjQgNjAuOWg0Ny44YTguNDUgOC40NSAwIDAxNy40IDEyLjRsLTg3LjIgMTYxaDQ1LjljNC42IDAgOC40IDMuOCA4LjQgOC40VjY2NWMwIDQuNi0zLjggOC40LTguNCA4LjRoLTYzLjNWNzAyaDYzLjNjNC42IDAgOC40IDMuOCA4LjQgOC40djI1Yy4yIDQuNy0zLjUgOC41LTguMiA4LjVoLTYzLjN2NDkuOWMwIDQuNi0zLjggOC40LTguNCA4LjRoLTQzLjdjLTQuNiAwLTguNC0zLjgtOC40LTguNHYtNDkuOWgtNjNjLTQuNiAwLTguNC0zLjgtOC40LTguNHYtMjUuMWMwLTQuNiAzLjgtOC40IDguNC04LjRoNjN2LTI4LjZoLTYzYy00LjYgMC04LjQtMy44LTguNC04LjR2LTI1LjFjMC00LjYgMy44LTguNCA4LjQtOC40aDQ1LjRMMzc3IDQ3MC40YTguNCA4LjQgMCAwMTMuNC0xMS40YzEuMy0uNiAyLjYtMSAzLjktMWg0OC44YzMuMiAwIDYuMSAxLjggNy41IDQuNmw3MS43IDE0MiA3MS45LTE0MS45YTguNiA4LjYgMCAwMTcuNS00LjZ6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTIzMiAxMzYuN2gzMS43TDUxMiAzMzEuM2wyNDguMy0xOTQuNkg3OTJ2LS43SDIzMnoiLGZpbGw6dn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNDQwLjYgNDYyLjZhOC4zOCA4LjM4IDAgMDAtNy41LTQuNmgtNDguOGMtMS4zIDAtMi42LjQtMy45IDFhOC40IDguNCAwIDAwLTMuNCAxMS40bDg3LjQgMTYxLjFINDE5Yy00LjYgMC04LjQgMy44LTguNCA4LjRWNjY1YzAgNC42IDMuOCA4LjQgOC40IDguNGg2M1Y3MDJoLTYzYy00LjYgMC04LjQgMy44LTguNCA4LjR2MjUuMWMwIDQuNiAzLjggOC40IDguNCA4LjRoNjN2NDkuOWMwIDQuNiAzLjggOC40IDguNCA4LjRoNDMuN2M0LjYgMCA4LjQtMy44IDguNC04LjR2LTQ5LjloNjMuM2M0LjcgMCA4LjQtMy44IDguMi04LjV2LTI1YzAtNC42LTMuOC04LjQtOC40LTguNGgtNjMuM3YtMjguNmg2My4zYzQuNiAwIDguNC0zLjggOC40LTguNHYtMjUuMWMwLTQuNi0zLjgtOC40LTguNC04LjRoLTQ1LjlsODcuMi0xNjFhOC40NSA4LjQ1IDAgMDAtNy40LTEyLjRoLTQ3LjhjLTMuMSAwLTYgMS44LTcuNSA0LjZsLTcxLjkgMTQxLjktNzEuNy0xNDJ6IixmaWxsOmZ9fV19fSxuYW1lOiJyZWQtZW52ZWxvcGUiLHRoZW1lOiJ0d290b25lIn0sY049c04sdU49ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246Y059KSl9LGROPXQuZm9yd2FyZFJlZih1TiksZk49ZE4sdk49e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTU4NCA1NDhhMzYgMzYgMCAxMDcyIDAgMzYgMzYgMCAxMC03MiAwem0xNDQtMTA4YTM1LjkgMzUuOSAwIDAwLTMyLjUgMjAuNmMxOC44IDE0LjMgMzQuNCAzMC43IDQ1LjkgNDguOEEzNS45OCAzNS45OCAwIDAwNzI4IDQ0MHpNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTI0NSA0NzcuOWM0LjYgMTMuNSA3IDI3LjYgNyA0Mi4xIDAgOTkuNC0xMTIuOCAxODAtMjUyIDE4MHMtMjUyLTgwLjYtMjUyLTE4MGMwLTE0LjUgMi40LTI4LjYgNy00Mi4xQTcyLjAxIDcyLjAxIDAgMDEyOTYgNDA0YzI3LjEgMCA1MC42IDE0LjkgNjIuOSAzNyAzNi4yLTE5LjggODAuMi0zMi44IDEyOC4xLTM2LjFsNTguNC0xMzEuMWM0LjMtOS44IDE1LjItMTQuOCAyNS41LTExLjhsOTEuNiAyNi41YTU0LjAzIDU0LjAzIDAgMDExMDEuNiAyNS42YzAgMjkuOC0yNC4yIDU0LTU0IDU0LTIzLjUgMC00My41LTE1LjEtNTAuOS0zNi4xTDU3NyAzMDguM2wtNDMgOTYuNWM0OS4xIDMgOTQuMiAxNi4xIDEzMS4yIDM2LjMgMTIuMy0yMi4xIDM1LjgtMzcgNjIuOS0zNyAzOS44IDAgNzIgMzIuMiA3MiA3Mi0uMSAyOS4zLTE3LjggNTQuNi00My4xIDY1Ljh6bS0xNzEuMyA4M2MtMTQuOSAxMS43LTQ0LjMgMjQuMy03My43IDI0LjNzLTU4LjktMTIuNi03My43LTI0LjNjLTkuMy03LjMtMjIuNy01LjctMzAgMy42LTcuMyA5LjMtNS43IDIyLjcgMy42IDMwIDI1LjcgMjAuNCA2NSAzMy41IDEwMC4xIDMzLjUgMzUuMSAwIDc0LjQtMTMuMSAxMDAuMi0zMy41IDkuMy03LjMgMTAuOS0yMC44IDMuNi0zMGEyMS40NiAyMS40NiAwIDAwLTMwLjEtMy42ek0yOTYgNDQwYTM1Ljk4IDM1Ljk4IDAgMDAtMTMuNCA2OS40YzExLjUtMTguMSAyNy4xLTM0LjUgNDUuOS00OC44QTM1LjkgMzUuOSAwIDAwMjk2IDQ0MHptNzIgMTA4YTM2IDM2IDAgMTA3MiAwIDM2IDM2IDAgMTAtNzIgMHoifX1dfSxuYW1lOiJyZWRkaXQtY2lyY2xlIix0aGVtZToiZmlsbGVkIn0saE49dk4sbU49ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246aE59KSl9LGdOPXQuZm9yd2FyZFJlZihtTikscE49Z04seU49e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTI4OCA1NjhhNTYgNTYgMCAxMDExMiAwIDU2IDU2IDAgMTAtMTEyIDB6bTMzOC43IDExOS43Yy0yMy4xIDE4LjItNjguOSAzNy44LTExNC43IDM3LjhzLTkxLjYtMTkuNi0xMTQuNy0zNy44Yy0xNC40LTExLjMtMzUuMy04LjktNDYuNyA1LjVzLTguOSAzNS4zIDUuNSA0Ni43QzM5Ni4zIDc3MS42IDQ1Ny41IDc5MiA1MTIgNzkyczExNS43LTIwLjQgMTU1LjktNTIuMWEzMy4yNSAzMy4yNSAwIDEwLTQxLjItNTIuMnpNOTYwIDQ1NmMwLTYxLjktNTAuMS0xMTItMTEyLTExMi00Mi4xIDAtNzguNyAyMy4yLTk3LjkgNTcuNi01Ny42LTMxLjUtMTI3LjctNTEuOC0yMDQuMS01Ni41TDYxMi45IDE5NWwxMjcuOSAzNi45YzExLjUgMzIuNiA0Mi42IDU2LjEgNzkuMiA1Ni4xIDQ2LjQgMCA4NC0zNy42IDg0LTg0cy0zNy42LTg0LTg0LTg0Yy0zMiAwLTU5LjggMTcuOS03NCA0NC4yTDYwMy41IDEyM2EzMy4yIDMzLjIgMCAwMC0zOS42IDE4LjRsLTkwLjggMjAzLjljLTc0LjUgNS4yLTE0Mi45IDI1LjQtMTk5LjIgNTYuMkExMTEuOTQgMTExLjk0IDAgMDAxNzYgMzQ0Yy02MS45IDAtMTEyIDUwLjEtMTEyIDExMiAwIDQ1LjggMjcuNSA4NS4xIDY2LjggMTAyLjUtNy4xIDIxLTEwLjggNDMtMTAuOCA2NS41IDAgMTU0LjYgMTc1LjUgMjgwIDM5MiAyODBzMzkyLTEyNS40IDM5Mi0yODBjMC0yMi42LTMuOC00NC41LTEwLjgtNjUuNUM5MzIuNSA1NDEuMSA5NjAgNTAxLjggOTYwIDQ1NnpNODIwIDE3Mi41YTMxLjUgMzEuNSAwIDExMCA2MyAzMS41IDMxLjUgMCAwMTAtNjN6TTEyMCA0NTZjMC0zMC45IDI1LjEtNTYgNTYtNTZhNTYgNTYgMCAwMTUwLjYgMzIuMWMtMjkuMyAyMi4yLTUzLjUgNDcuOC03MS41IDc1LjlhNTYuMjMgNTYuMjMgMCAwMS0zNS4xLTUyem0zOTIgMzgxLjVjLTE3OS44IDAtMzI1LjUtOTUuNi0zMjUuNS0yMTMuNVMzMzIuMiA0MTAuNSA1MTIgNDEwLjUgODM3LjUgNTA2LjEgODM3LjUgNjI0IDY5MS44IDgzNy41IDUxMiA4MzcuNXpNODY4LjggNTA4Yy0xNy45LTI4LjEtNDIuMi01My43LTcxLjUtNzUuOSA5LTE4LjkgMjguMy0zMi4xIDUwLjYtMzIuMSAzMC45IDAgNTYgMjUuMSA1NiA1NiAuMSAyMy41LTE0LjUgNDMuNy0zNS4xIDUyek02MjQgNTY4YTU2IDU2IDAgMTAxMTIgMCA1NiA1NiAwIDEwLTExMiAweiJ9fV19LG5hbWU6InJlZGRpdCIsdGhlbWU6Im91dGxpbmVkIn0sQ049eU4sYk49ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246Q059KSl9LFNOPXQuZm9yd2FyZFJlZihiTiksT049U04seE49e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTI5NiA0NDBhMzUuOTggMzUuOTggMCAwMC0xMy40IDY5LjRjMTEuNS0xOC4xIDI3LjEtMzQuNSA0NS45LTQ4LjhBMzUuOSAzNS45IDAgMDAyOTYgNDQwem0yODkuNyAxODQuOWMtMTQuOSAxMS43LTQ0LjMgMjQuMy03My43IDI0LjNzLTU4LjktMTIuNi03My43LTI0LjNjLTkuMy03LjMtMjIuNy01LjctMzAgMy42LTcuMyA5LjMtNS43IDIyLjcgMy42IDMwIDI1LjcgMjAuNCA2NSAzMy41IDEwMC4xIDMzLjUgMzUuMSAwIDc0LjQtMTMuMSAxMDAuMi0zMy41IDkuMy03LjMgMTAuOS0yMC44IDMuNi0zMGEyMS40NiAyMS40NiAwIDAwLTMwLjEtMy42ek04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTc1NyA1NDEuOWM0LjYgMTMuNSA3IDI3LjYgNyA0Mi4xIDAgOTkuNC0xMTIuOCAxODAtMjUyIDE4MHMtMjUyLTgwLjYtMjUyLTE4MGMwLTE0LjUgMi40LTI4LjYgNy00Mi4xQTcyLjAxIDcyLjAxIDAgMDEyOTYgNDA0YzI3LjEgMCA1MC42IDE0LjkgNjIuOSAzNyAzNi4yLTE5LjggODAuMi0zMi44IDEyOC4xLTM2LjFsNTguNC0xMzEuMWM0LjMtOS44IDE1LjItMTQuOCAyNS41LTExLjhsOTEuNiAyNi41YTU0LjAzIDU0LjAzIDAgMDExMDEuNiAyNS42YzAgMjkuOC0yNC4yIDU0LTU0IDU0LTIzLjUgMC00My41LTE1LjEtNTAuOS0zNi4xTDU3NyAzMDguM2wtNDMgOTYuNWM0OS4xIDMgOTQuMiAxNi4xIDEzMS4yIDM2LjMgMTIuMy0yMi4xIDM1LjgtMzcgNjIuOS0zNyAzOS44IDAgNzIgMzIuMiA3MiA3Mi0uMSAyOS4zLTE3LjggNTQuNi00My4xIDY1Ljh6TTU4NCA1NDhhMzYgMzYgMCAxMDcyIDAgMzYgMzYgMCAxMC03MiAwem0xNDQtMTA4YTM1LjkgMzUuOSAwIDAwLTMyLjUgMjAuNmMxOC44IDE0LjMgMzQuNCAzMC43IDQ1LjkgNDguOEEzNS45OCAzNS45OCAwIDAwNzI4IDQ0MHpNMzY4IDU0OGEzNiAzNiAwIDEwNzIgMCAzNiAzNiAwIDEwLTcyIDB6In19XX0sbmFtZToicmVkZGl0LXNxdWFyZSIsdGhlbWU6ImZpbGxlZCJ9LHdOPXhOLEVOPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOndOfSkpfSxUTj10LmZvcndhcmRSZWYoRU4pLE1OPVROLFJOPWUoODc3NDApLElOPWUoMzMxNjApLFBOPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04MzIgMjU2aC0yOC4xbC0zNS43LTEyMC45Yy00LTEzLjctMTYuNS0yMy4xLTMwLjctMjMuMWgtNDUxYy0xNC4zIDAtMjYuOCA5LjQtMzAuNyAyMy4xTDIyMC4xIDI1NkgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjI4YzAgNC40IDMuNiA4IDggOGg0NS44bDQ3LjcgNTU4LjdhMzIgMzIgMCAwMDMxLjkgMjkuM2g0MjkuMmEzMiAzMiAwIDAwMzEuOS0yOS4zTDgwMi4yIDMyNEg4NTZjNC40IDAgOC0zLjYgOC04di0yOGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNTA4IDcwNGMtNzkuNSAwLTE0NC02NC41LTE0NC0xNDRzNjQuNS0xNDQgMTQ0LTE0NCAxNDQgNjQuNSAxNDQgMTQ0LTY0LjUgMTQ0LTE0NCAxNDR6TTI5MSAyNTZsMjIuNC03NmgzOTcuMmwyMi40IDc2SDI5MXptMTM3IDMwNGE4MCA4MCAwIDEwMTYwIDAgODAgODAgMCAxMC0xNjAgMHoifX1dfSxuYW1lOiJyZXN0Iix0aGVtZToiZmlsbGVkIn0sek49UE4sRk49ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246ek59KSl9LEFOPXQuZm9yd2FyZFJlZihGTiksTE49QU4sWk49e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJkZWZzIixhdHRyczp7fSxjaGlsZHJlbjpbe3RhZzoic3R5bGUiLGF0dHJzOnt9fV19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTA4IDcwNGM3OS41IDAgMTQ0LTY0LjUgMTQ0LTE0NHMtNjQuNS0xNDQtMTQ0LTE0NC0xNDQgNjQuNS0xNDQgMTQ0IDY0LjUgMTQ0IDE0NCAxNDR6bTAtMjI0YzQ0LjIgMCA4MCAzNS44IDgwIDgwcy0zNS44IDgwLTgwIDgwLTgwLTM1LjgtODAtODAgMzUuOC04MCA4MC04MHoifX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04MzIgMjU2aC0yOC4xbC0zNS43LTEyMC45Yy00LTEzLjctMTYuNS0yMy4xLTMwLjctMjMuMWgtNDUxYy0xNC4zIDAtMjYuOCA5LjQtMzAuNyAyMy4xTDIyMC4xIDI1NkgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjI4YzAgNC40IDMuNiA4IDggOGg0NS44bDQ3LjcgNTU4LjdhMzIgMzIgMCAwMDMxLjkgMjkuM2g0MjkuMmEzMiAzMiAwIDAwMzEuOS0yOS4zTDgwMi4yIDMyNEg4NTZjNC40IDAgOC0zLjYgOC04di0yOGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTUxOC42LTc2aDM5Ny4ybDIyLjQgNzZIMjkxbDIyLjQtNzZ6bTM3Ni4yIDY2NEgzMjYuNEwyODIgMzI0aDQ1MS45bC00NC4zIDUyMHoifX1dfSxuYW1lOiJyZXN0Iix0aGVtZToib3V0bGluZWQifSwkTj1aTixITj1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjokTn0pKX0sRE49dC5mb3J3YXJkUmVmKEhOKSxCTj1ETixWTj17aWNvbjpmdW5jdGlvbihmLHYpe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0zMjYuNCA4NDRoMzYzLjJsNDQuMy01MjBIMjgybDQ0LjQgNTIwek01MDggNDE2Yzc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0cy02NC41IDE0NC0xNDQgMTQ0LTE0NC02NC41LTE0NC0xNDQgNjQuNS0xNDQgMTQ0LTE0NHoiLGZpbGw6dn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTA4IDcwNGM3OS41IDAgMTQ0LTY0LjUgMTQ0LTE0NHMtNjQuNS0xNDQtMTQ0LTE0NC0xNDQgNjQuNS0xNDQgMTQ0IDY0LjUgMTQ0IDE0NCAxNDR6bTAtMjI0YzQ0LjIgMCA4MCAzNS44IDgwIDgwcy0zNS44IDgwLTgwIDgwLTgwLTM1LjgtODAtODAgMzUuOC04MCA4MC04MHoiLGZpbGw6Zn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODMyIDI1NmgtMjguMWwtMzUuNy0xMjAuOWMtNC0xMy43LTE2LjUtMjMuMS0zMC43LTIzLjFoLTQ1MWMtMTQuMyAwLTI2LjggOS40LTMwLjcgMjMuMUwyMjAuMSAyNTZIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnYyOGMwIDQuNCAzLjYgOCA4IDhoNDUuOGw0Ny43IDU1OC43YTMyIDMyIDAgMDAzMS45IDI5LjNoNDI5LjJhMzIgMzIgMCAwMDMxLjktMjkuM0w4MDIuMiAzMjRIODU2YzQuNCAwIDgtMy42IDgtOHYtMjhjMC0xNy43LTE0LjMtMzItMzItMzJ6bS01MTguNi03NmgzOTcuMmwyMi40IDc2SDI5MWwyMi40LTc2em0zNzYuMiA2NjRIMzI2LjRMMjgyIDMyNGg0NTEuOWwtNDQuMyA1MjB6IixmaWxsOmZ9fV19fSxuYW1lOiJyZXN0Iix0aGVtZToidHdvdG9uZSJ9LE5OPVZOLGpOPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOk5OfSkpfSxVTj10LmZvcndhcmRSZWYoak4pLFdOPVVOLGtOPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjAgMCAxMDI0IDEwMjQiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0xMzYgNTUyaDYzLjZjNC40IDAgOC0zLjYgOC04VjI4OC43aDUyOC42djcyLjZjMCAxLjkuNiAzLjcgMS44IDUuMmE4LjMgOC4zIDAgMDAxMS43IDEuNEw4OTMgMjU1LjRjNC4zLTUgMy42LTEwLjMgMC0xMy4yTDc0OS43IDEyOS44YTguMjIgOC4yMiAwIDAwLTUuMi0xLjhjLTQuNiAwLTguNCAzLjgtOC40IDguNFYyMDlIMTk5LjdjLTM5LjUgMC03MS43IDMyLjItNzEuNyA3MS44VjU0NGMwIDQuNCAzLjYgOCA4IDh6bTc1Mi04MGgtNjMuNmMtNC40IDAtOCAzLjYtOCA4djI1NS4zSDI4Ny44di03Mi42YzAtMS45LS42LTMuNy0xLjgtNS4yYTguMyA4LjMgMCAwMC0xMS43LTEuNEwxMzEgNzY4LjZjLTQuMyA1LTMuNiAxMC4zIDAgMTMuMmwxNDMuMyAxMTIuNGMxLjUgMS4yIDMuMyAxLjggNS4yIDEuOCA0LjYgMCA4LjQtMy44IDguNC04LjRWODE1aDUzNi42YzM5LjUgMCA3MS43LTMyLjIgNzEuNy03MS44VjQ4MGMtLjItNC40LTMuOC04LTguMi04eiJ9fV19LG5hbWU6InJldHdlZXQiLHRoZW1lOiJvdXRsaW5lZCJ9LEtOPWtOLF9OPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOktOfSkpfSxHTj10LmZvcndhcmRSZWYoX04pLFlOPUdOLFhOPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMTU0LjcgNDU0LjVsLTI0NiAxNzhjLTUuMyAzLjgtMTIuNyAwLTEyLjctNi41di00Ni45YzAtMTAuMiA0LjktMTkuOSAxMy4yLTI1LjlMNTY2LjYgNTEyIDQyMS4yIDQwNi44Yy04LjMtNi0xMy4yLTE1LjYtMTMuMi0yNS45VjMzNGMwLTYuNSA3LjQtMTAuMyAxMi43LTYuNWwyNDYgMTc4YzQuNCAzLjIgNC40IDkuOCAwIDEzeiJ9fV19LG5hbWU6InJpZ2h0LWNpcmNsZSIsdGhlbWU6ImZpbGxlZCJ9LFFOPVhOLEpOPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOlFOfSkpfSxxTj10LmZvcndhcmRSZWYoSk4pLGVqPXFOLHRqPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02NjYuNyA1MDUuNWwtMjQ2LTE3OEE4IDggMCAwMDQwOCAzMzR2NDYuOWMwIDEwLjIgNC45IDE5LjkgMTMuMiAyNS45TDU2Ni42IDUxMiA0MjEuMiA2MTcuMmMtOC4zIDYtMTMuMiAxNS42LTEzLjIgMjUuOVY2OTBjMCA2LjUgNy40IDEwLjMgMTIuNyA2LjVsMjQ2LTE3OGM0LjQtMy4yIDQuNC05LjggMC0xM3oifX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6In19XX0sbmFtZToicmlnaHQtY2lyY2xlIix0aGVtZToib3V0bGluZWQifSxuaj10aixyaj1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpuan0pKX0sYWo9dC5mb3J3YXJkUmVmKHJqKSxvaj1haixpaj17aWNvbjpmdW5jdGlvbihmLHYpe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgMTQwYy0yMDUuNCAwLTM3MiAxNjYuNi0zNzIgMzcyczE2Ni42IDM3MiAzNzIgMzcyIDM3Mi0xNjYuNiAzNzItMzcyLTE2Ni42LTM3Mi0zNzItMzcyem0xNTQuNyAzNzguNGwtMjQ2IDE3OGMtNS4zIDMuOC0xMi43IDAtMTIuNy02LjVWNjQzYzAtMTAuMiA0LjktMTkuOSAxMy4yLTI1LjlMNTY2LjYgNTEyIDQyMS4yIDQwNi44Yy04LjMtNi0xMy4yLTE1LjYtMTMuMi0yNS45VjMzNGMwLTYuNSA3LjQtMTAuMyAxMi43LTYuNWwyNDYgMTc4YzQuNCAzLjIgNC40IDkuNyAwIDEyLjl6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnoiLGZpbGw6Zn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNjY2LjcgNTA1LjVsLTI0Ni0xNzhjLTUuMy0zLjgtMTIuNyAwLTEyLjcgNi41djQ2LjljMCAxMC4zIDQuOSAxOS45IDEzLjIgMjUuOUw1NjYuNiA1MTIgNDIxLjIgNjE3LjFjLTguMyA2LTEzLjIgMTUuNy0xMy4yIDI1Ljl2NDYuOWMwIDYuNSA3LjQgMTAuMyAxMi43IDYuNWwyNDYtMTc4YzQuNC0zLjIgNC40LTkuNyAwLTEyLjl6IixmaWxsOmZ9fV19fSxuYW1lOiJyaWdodC1jaXJjbGUiLHRoZW1lOiJ0d290b25lIn0sbGo9aWosc2o9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246bGp9KSl9LGNqPXQuZm9yd2FyZFJlZihzaiksdWo9Y2osZGo9ZSg5MDgxNCksZmo9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNjU4LjcgNTE4LjVsLTI0NiAxNzhjLTUuMyAzLjgtMTIuNyAwLTEyLjctNi41di00Ni45YzAtMTAuMiA0LjktMTkuOSAxMy4yLTI1LjlMNTU4LjYgNTEyIDQxMy4yIDQwNi44Yy04LjMtNi0xMy4yLTE1LjYtMTMuMi0yNS45VjMzNGMwLTYuNSA3LjQtMTAuMyAxMi43LTYuNWwyNDYgMTc4YzQuNCAzLjIgNC40IDkuOCAwIDEzeiJ9fV19LG5hbWU6InJpZ2h0LXNxdWFyZSIsdGhlbWU6ImZpbGxlZCJ9LHZqPWZqLGhqPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOnZqfSkpfSxtaj10LmZvcndhcmRSZWYoaGopLGdqPW1qLHBqPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00MTIuNyA2OTYuNWwyNDYtMTc4YzQuNC0zLjIgNC40LTkuNyAwLTEyLjlsLTI0Ni0xNzhjLTUuMy0zLjgtMTIuNyAwLTEyLjcgNi41VjM4MWMwIDEwLjIgNC45IDE5LjkgMTMuMiAyNS45TDU1OC42IDUxMiA0MTMuMiA2MTcuMmMtOC4zIDYtMTMuMiAxNS42LTEzLjIgMjUuOVY2OTBjMCA2LjUgNy40IDEwLjMgMTIuNyA2LjV6In19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNzI4SDE4NFYxODRoNjU2djY1NnoifX1dfSxuYW1lOiJyaWdodC1zcXVhcmUiLHRoZW1lOiJvdXRsaW5lZCJ9LHlqPXBqLENqPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOnlqfSkpfSxiaj10LmZvcndhcmRSZWYoQ2opLFNqPWJqLE9qPXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6IixmaWxsOmZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTE4NCA4NDBoNjU2VjE4NEgxODR2NjU2em0yMTYtMTk2LjljMC0xMC4yIDQuOS0xOS45IDEzLjItMjUuOUw1NTguNiA1MTIgNDEzLjIgNDA2LjhjLTguMy02LTEzLjItMTUuNi0xMy4yLTI1LjlWMzM0YzAtNi41IDcuNC0xMC4zIDEyLjctNi41bDI0NiAxNzhjNC40IDMuMiA0LjQgOS43IDAgMTIuOWwtMjQ2IDE3OGMtNS4zIDMuOS0xMi43LjEtMTIuNy02LjR2LTQ2Ljl6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQxMi43IDY5Ni40bDI0Ni0xNzhjNC40LTMuMiA0LjQtOS43IDAtMTIuOWwtMjQ2LTE3OGMtNS4zLTMuOC0xMi43IDAtMTIuNyA2LjV2NDYuOWMwIDEwLjMgNC45IDE5LjkgMTMuMiAyNS45TDU1OC42IDUxMiA0MTMuMiA2MTcuMmMtOC4zIDYtMTMuMiAxNS43LTEzLjIgMjUuOVY2OTBjMCA2LjUgNy40IDEwLjMgMTIuNyA2LjR6IixmaWxsOmZ9fV19fSxuYW1lOiJyaWdodC1zcXVhcmUiLHRoZW1lOiJ0d290b25lIn0seGo9T2osd2o9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246eGp9KSl9LEVqPXQuZm9yd2FyZFJlZih3aiksVGo9RWosTWo9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkxNyAyMTEuMWwtMTk5LjIgMjRjLTYuNi44LTkuNCA4LjktNC43IDEzLjZsNTkuMyA1OS4zLTIyNiAyMjYtMTAxLjgtMTAxLjdjLTYuMy02LjMtMTYuNC02LjItMjIuNiAwTDEwMC4zIDc1NC4xYTguMDMgOC4wMyAwIDAwMCAxMS4zbDQ1IDQ1LjJjMy4xIDMuMSA4LjIgMy4xIDExLjMgMEw0MzMuMyA1MzQgNTM1IDYzNS43YzYuMyA2LjIgMTYuNCA2LjIgMjIuNiAwTDgyOSAzNjQuNWw1OS4zIDU5LjNhOC4wMSA4LjAxIDAgMDAxMy42LTQuN2wyNC0xOTkuMmMuNy01LjEtMy43LTkuNS04LjktOC44eiJ9fV19LG5hbWU6InJpc2UiLHRoZW1lOiJvdXRsaW5lZCJ9LFJqPU1qLElqPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOlJqfSkpfSxQaj10LmZvcndhcmRSZWYoSWopLHpqPVBqLEZqPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoiZGVmcyIsYXR0cnM6e30sY2hpbGRyZW46W3t0YWc6InN0eWxlIixhdHRyczp7fX1dfSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg1MiA2NEgxNzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2ODBjMTcuNyAwIDMyLTE0LjMgMzItMzJWOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6TTMwMCAzMjhjMC0zMy4xIDI2LjktNjAgNjAtNjBzNjAgMjYuOSA2MCA2MC0yNi45IDYwLTYwIDYwLTYwLTI2LjktNjAtNjB6bTM3MiAyNDhjMCA0LjQtMy42IDgtOCA4SDM2MGMtNC40IDAtOC0zLjYtOC04di02MGMwLTQuNCAzLjYtOCA4LThoMzA0YzQuNCAwIDggMy42IDggOHY2MHptLTgtMTg4Yy0zMy4xIDAtNjAtMjYuOS02MC02MHMyNi45LTYwIDYwLTYwIDYwIDI2LjkgNjAgNjAtMjYuOSA2MC02MCA2MHptMTM1IDQ3NkgyMjVjLTEzLjggMC0yNSAxNC4zLTI1IDMydjU2YzAgNC40IDIuOCA4IDYuMiA4aDYxMS41YzMuNCAwIDYuMi0zLjYgNi4yLTh2LTU2Yy4xLTE3LjctMTEuMS0zMi0yNC45LTMyeiJ9fV19LG5hbWU6InJvYm90Iix0aGVtZToiZmlsbGVkIn0sQWo9RmosTGo9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246QWp9KSl9LFpqPXQuZm9yd2FyZFJlZihMaiksJGo9WmosSGo9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTMwMCAzMjhhNjAgNjAgMCAxMDEyMCAwIDYwIDYwIDAgMTAtMTIwIDB6TTg1MiA2NEgxNzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2ODBjMTcuNyAwIDMyLTE0LjMgMzItMzJWOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS0zMiA2NjBIMjA0VjEyOGg2MTZ2NTk2ek02MDQgMzI4YTYwIDYwIDAgMTAxMjAgMCA2MCA2MCAwIDEwLTEyMCAwem0yNTAuMiA1NTZIMTY5LjhjLTE2LjUgMC0yOS44IDE0LjMtMjkuOCAzMnYzNmMwIDQuNCAzLjMgOCA3LjQgOGg3MjkuMWM0LjEgMCA3LjQtMy42IDcuNC04di0zNmMuMS0xNy43LTEzLjItMzItMjkuNy0zMnpNNjY0IDUwOEgzNjBjLTQuNCAwLTggMy42LTggOHY2MGMwIDQuNCAzLjYgOCA4IDhoMzA0YzQuNCAwIDgtMy42IDgtOHYtNjBjMC00LjQtMy42LTgtOC04eiJ9fV19LG5hbWU6InJvYm90Iix0aGVtZToib3V0bGluZWQifSxEaj1IaixCaj1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpEan0pKX0sVmo9dC5mb3J3YXJkUmVmKEJqKSxOaj1Waixqaj17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODY0IDczNmMwLTExMS42LTY1LjQtMjA4LTE2MC0yNTIuOVYzMTcuM2MwLTE1LjEtNS4zLTI5LjctMTUuMS00MS4yTDUzNi41IDk1LjRDNTMwLjEgODcuOCA1MjEgODQgNTEyIDg0cy0xOC4xIDMuOC0yNC41IDExLjRMMzM1LjEgMjc2LjFhNjMuOTcgNjMuOTcgMCAwMC0xNS4xIDQxLjJ2MTY1LjhDMjI1LjQgNTI4IDE2MCA2MjQuNCAxNjAgNzM2aDE1Ni41Yy0yLjMgNy4yLTMuNSAxNS0zLjUgMjMuOCAwIDIyLjEgNy42IDQzLjcgMjEuNCA2MC44YTk3LjIgOTcuMiAwIDAwNDMuMSAzMC42YzIzLjEgNTQgNzUuNiA4OC44IDEzNC41IDg4LjggMjkuMSAwIDU3LjMtOC42IDgxLjQtMjQuOCAyMy42LTE1LjggNDEuOS0zNy45IDUzLTY0YTk3IDk3IDAgMDA0My4xLTMwLjUgOTcuNTIgOTcuNTIgMCAwMDIxLjQtNjAuOGMwLTguNC0xLjEtMTYuNC0zLjEtMjMuOEw4NjQgNzM2ek01MTIgMzUyYTQ4LjAxIDQ4LjAxIDAgMDEwIDk2IDQ4LjAxIDQ4LjAxIDAgMDEwLTk2em0xMTYuMSA0MzIuMmMtNS4yIDMtMTEuMiA0LjItMTcuMSAzLjRsLTE5LjUtMi40LTIuOCAxOS40Yy01LjQgMzcuOS0zOC40IDY2LjUtNzYuNyA2Ni41cy03MS4zLTI4LjYtNzYuNy02Ni41bC0yLjgtMTkuNS0xOS41IDIuNWEyNy43IDI3LjcgMCAwMS0xNy4xLTMuNWMtOC43LTUtMTQuMS0xNC4zLTE0LjEtMjQuNCAwLTEwLjYgNS45LTE5LjQgMTQuNi0yMy44aDIzMS4zYzguOCA0LjUgMTQuNiAxMy4zIDE0LjYgMjMuOC0uMSAxMC4yLTUuNSAxOS42LTE0LjIgMjQuNXoifX1dfSxuYW1lOiJyb2NrZXQiLHRoZW1lOiJmaWxsZWQifSxVaj1qaixXaj1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpVan0pKX0sa2o9dC5mb3J3YXJkUmVmKFdqKSxLaj1raixfaj17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODY0IDczNmMwLTExMS42LTY1LjQtMjA4LTE2MC0yNTIuOVYzMTcuM2MwLTE1LjEtNS4zLTI5LjctMTUuMS00MS4yTDUzNi41IDk1LjRDNTMwLjEgODcuOCA1MjEgODQgNTEyIDg0cy0xOC4xIDMuOC0yNC41IDExLjRMMzM1LjEgMjc2LjFhNjMuOTcgNjMuOTcgMCAwMC0xNS4xIDQxLjJ2MTY1LjhDMjI1LjQgNTI4IDE2MCA2MjQuNCAxNjAgNzM2aDE1Ni41Yy0yLjMgNy4yLTMuNSAxNS0zLjUgMjMuOCAwIDIyLjEgNy42IDQzLjcgMjEuNCA2MC44YTk3LjIgOTcuMiAwIDAwNDMuMSAzMC42YzIzLjEgNTQgNzUuNiA4OC44IDEzNC41IDg4LjggMjkuMSAwIDU3LjMtOC42IDgxLjQtMjQuOCAyMy42LTE1LjggNDEuOS0zNy45IDUzLTY0YTk3IDk3IDAgMDA0My4xLTMwLjUgOTcuNTIgOTcuNTIgMCAwMDIxLjQtNjAuOGMwLTguNC0xLjEtMTYuNC0zLjEtMjMuOEg4NjR6TTc2Mi4zIDYyMS40YzkuNCAxNC42IDE3IDMwLjMgMjIuNSA0Ni42SDcwMFY1NTguN2EyMTEuNiAyMTEuNiAwIDAxNjIuMyA2Mi43ek0zODggNDgzLjFWMzE4LjhsMTI0LTE0NyAxMjQgMTQ3VjY2OEgzODhWNDgzLjF6TTIzOS4yIDY2OGM1LjUtMTYuMyAxMy4xLTMyIDIyLjUtNDYuNiAxNi4zLTI1LjIgMzcuNS00Ni41IDYyLjMtNjIuN1Y2NjhoLTg0Ljh6bTM4OC45IDExNi4yYy01LjIgMy0xMS4yIDQuMi0xNy4xIDMuNGwtMTkuNS0yLjQtMi44IDE5LjRjLTUuNCAzNy45LTM4LjQgNjYuNS03Ni43IDY2LjUtMzguMyAwLTcxLjMtMjguNi03Ni43LTY2LjVsLTIuOC0xOS41LTE5LjUgMi41YTI3LjcgMjcuNyAwIDAxLTE3LjEtMy41Yy04LjctNS0xNC4xLTE0LjMtMTQuMS0yNC40IDAtMTAuNiA1LjktMTkuNCAxNC42LTIzLjhoMjMxLjNjOC44IDQuNSAxNC42IDEzLjMgMTQuNiAyMy44LS4xIDEwLjItNS41IDE5LjYtMTQuMiAyNC41ek00NjQgNDAwYTQ4IDQ4IDAgMTA5NiAwIDQ4IDQ4IDAgMTAtOTYgMHoifX1dfSxuYW1lOiJyb2NrZXQiLHRoZW1lOiJvdXRsaW5lZCJ9LEdqPV9qLFlqPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkdqfSkpfSxYaj10LmZvcndhcmRSZWYoWWopLFFqPVhqLEpqPXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTI2MS43IDYyMS40Yy05LjQgMTQuNi0xNyAzMC4zLTIyLjUgNDYuNkgzMjRWNTU4LjdjLTI0LjggMTYuMi00NiAzNy41LTYyLjMgNjIuN3pNNzAwIDU1OC43VjY2OGg4NC44Yy01LjUtMTYuMy0xMy4xLTMyLTIyLjUtNDYuNmEyMTEuNiAyMTEuNiAwIDAwLTYyLjMtNjIuN3ptLTY0LTIzOS45bC0xMjQtMTQ3LTEyNCAxNDdWNjY4aDI0OFYzMTguOHpNNTEyIDQ0OGE0OC4wMSA0OC4wMSAwIDAxMC05NiA0OC4wMSA0OC4wMSAwIDAxMCA5NnoiLGZpbGw6dn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODY0IDczNmMwLTExMS42LTY1LjQtMjA4LTE2MC0yNTIuOVYzMTcuM2MwLTE1LjEtNS4zLTI5LjctMTUuMS00MS4yTDUzNi41IDk1LjRDNTMwLjEgODcuOCA1MjEgODQgNTEyIDg0cy0xOC4xIDMuOC0yNC41IDExLjRMMzM1LjEgMjc2LjFhNjMuOTcgNjMuOTcgMCAwMC0xNS4xIDQxLjJ2MTY1LjhDMjI1LjQgNTI4IDE2MCA2MjQuNCAxNjAgNzM2aDE1Ni41Yy0yLjMgNy4yLTMuNSAxNS0zLjUgMjMuOCAwIDIyLjEgNy42IDQzLjcgMjEuNCA2MC44YTk3LjIgOTcuMiAwIDAwNDMuMSAzMC42YzIzLjEgNTQgNzUuNiA4OC44IDEzNC41IDg4LjggMjkuMSAwIDU3LjMtOC42IDgxLjQtMjQuOCAyMy42LTE1LjggNDEuOS0zNy45IDUzLTY0YTk3IDk3IDAgMDA0My4xLTMwLjUgOTcuNTIgOTcuNTIgMCAwMDIxLjQtNjAuOGMwLTguNC0xLjEtMTYuNC0zLjEtMjMuOEw4NjQgNzM2em0tNTQwLTY4aC04NC44YzUuNS0xNi4zIDEzLjEtMzIgMjIuNS00Ni42IDE2LjMtMjUuMiAzNy41LTQ2LjUgNjIuMy02Mi43VjY2OHptNjQtMTg0LjlWMzE4LjhsMTI0LTE0NyAxMjQgMTQ3VjY2OEgzODhWNDgzLjF6bTI0MC4xIDMwMS4xYy01LjIgMy0xMS4yIDQuMi0xNy4xIDMuNGwtMTkuNS0yLjQtMi44IDE5LjRjLTUuNCAzNy45LTM4LjQgNjYuNS03Ni43IDY2LjVzLTcxLjMtMjguNi03Ni43LTY2LjVsLTIuOC0xOS41LTE5LjUgMi41YTI3LjcgMjcuNyAwIDAxLTE3LjEtMy41Yy04LjctNS0xNC4xLTE0LjMtMTQuMS0yNC40IDAtMTAuNiA1LjktMTkuNCAxNC42LTIzLjhoMjMxLjNjOC44IDQuNSAxNC42IDEzLjMgMTQuNiAyMy44LS4xIDEwLjItNS41IDE5LjYtMTQuMiAyNC41ek03MDAgNjY4VjU1OC43YTIxMS42IDIxMS42IDAgMDE2Mi4zIDYyLjdjOS40IDE0LjYgMTcgMzAuMyAyMi41IDQ2LjZINzAweiIsZmlsbDpmfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00NjQgNDAwYTQ4IDQ4IDAgMTA5NiAwIDQ4IDQ4IDAgMTAtOTYgMHoiLGZpbGw6Zn19XX19LG5hbWU6InJvY2tldCIsdGhlbWU6InR3b3RvbmUifSxxaj1KaixlVT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpxan0pKX0sdFU9dC5mb3J3YXJkUmVmKGVVKSxuVT10VSxyVT1lKDcxOTY1KSxhVT1lKDQzNzQ5KSxvVT1lKDU2NDI0KSxpVT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnsiZmlsbC1ydWxlIjoiZXZlbm9kZCIsdmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUwOS44MSAxMTIuMDJjLS43My4wNS0xLjQ2LjEyLTIuMi4yMWgtNC4zMmwtMy40IDEuN2EzNi4zMyAzNi4zMyAwIDAwLTguODggNC40bC0xNDUuOTYgNzMuMDItMTUzLjcgMTUzLjctNzIuNjUgMTQ1LjI0YTM2LjMzIDM2LjMzIDAgMDAtNC45IDkuODZsLTEuNTYgMy4xMnYzLjk4YTM2LjMzIDM2LjMzIDAgMDAwIDguM3YyOTguMjNsNi44OCA5LjVhMTk4LjcgMTk4LjcgMCAwMDIwLjU4IDI0LjQyYzM3Ljg2IDM3Ljg1IDg3LjY2IDU3LjE2IDE0Mi42MiA2Mi4wMWEzNi4zNCAzNi4zNCAwIDAwMTEuNTcgMS43N2g1NzUuNzVjMy4xNC41NCA2LjM0LjY2IDkuNTEuMzZhMzYuMzQgMzYuMzQgMCAwMDIuNTYtLjM1aDI5Ljh2LTI5Ljk1YTM2LjMzIDM2LjMzIDAgMDAwLTExLjkyVjI5My44OGEzNi4zMyAzNi4zMyAwIDAwLTEuNzgtMTEuNTdjLTQuODQtNTQuOTUtMjQuMTYtMTA0Ljc1LTYyLjAxLTE0Mi42MmgtLjA3di0uMDdhMjAzLjkyIDIwMy45MiAwIDAwLTI0LjI3LTIwLjQzbC05LjU4LTYuOTZINTE1LjE0YTM2LjM0IDM2LjM0IDAgMDAtNS4zMi0uMjFNNjQzIDE4NC44OWgxNDUuOTZjMi40NyAyLjA4IDUuMjUgNC4wNiA3LjQ1IDYuMjUgMjYuNTkgMjYuNjMgNDAuOTcgNjQuNzQgNDIuMyAxMTEuMTh6TTUxMC4zMSAxOTBsNjUuNzEgMzkuMzgtMjUuNDcgMTU2LjEtNjQuMzYgNjQuMzYtMTAwLjcgMTAwLjY5TDIyOS40IDU3NmwtMzkuMzgtNjUuNyA2MS4xLTEyMi4yNiAxMzYuOTQtMTM2Ljk1em0xMzIuNzYgNzkuNjFsMTIzLjE5IDczLjk0LTEzOC4wOSAxNy4yNHpNODIxLjkgNDA5LjgyYy0yMS4yMSA2OC4yNS02Mi42NiAxNDIuNTgtMTIyLjQgMjExLjg4bC02NS44NS0xODguNHptLTI1Mi41NCA1OS42bDUzLjY0IDE1My41Ni0xNTMuNTUtNTMuNjUgNjguMTItNjguMTJ6bTI2OS41IDgxLjA0djIzN0w3MzguNDQgNjg3LjA0YzQwLjEtNDMuNzQgNzMuNzMtODkuODMgMTAwLjQtMTM2LjU5bS00NzguMDQgNzcuN2wtMTcuMjQgMTM4LjA4LTczLjk0LTEyMy4xOHptNzIuNTIgNS40NmwxODguMzIgNjUuODVjLTY5LjI4IDU5LjcxLTE0My41NyAxMDEuMi0yMTEuOCAxMjIuNHpNMTg0LjkgNjQzbDExNy40MyAxOTUuN2MtNDYuNS0xLjMzLTg0LjYzLTE1Ljc0LTExMS4yNi00Mi4zNy0yLjE2LTIuMTYtNC4xMS00LjkzLTYuMTctNy4zOHptNTAyLjE3IDk1LjQzbDEwMC40IDEwMC40aC0yMzdjNDYuNzctMjYuNjcgOTIuODYtNjAuMyAxMzYuNi0xMDAuNCJ9fV19LG5hbWU6InJ1YnkiLHRoZW1lOiJvdXRsaW5lZCJ9LGxVPWlVLHNVPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOmxVfSkpfSxjVT10LmZvcndhcmRSZWYoc1UpLHVVPWNVLGRVPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NjYuOSAxNjkuOUw1MjcuMSA1NC4xQzUyMyA1Mi43IDUxNy41IDUyIDUxMiA1MnMtMTEgLjctMTUuMSAyLjFMMTU3LjEgMTY5LjljLTguMyAyLjgtMTUuMSAxMi40LTE1LjEgMjEuMnY0ODIuNGMwIDguOCA1LjcgMjAuNCAxMi42IDI1LjlMNDk5LjMgOTY4YzMuNSAyLjcgOCA0LjEgMTIuNiA0LjFzOS4yLTEuNCAxMi42LTQuMWwzNDQuNy0yNjguNmM2LjktNS40IDEyLjYtMTcgMTIuNi0yNS45VjE5MS4xYy4yLTguOC02LjYtMTguMy0xNC45LTIxLjJ6TTY5NC41IDM0MC43TDQ4MS45IDYzMy40YTE2LjEgMTYuMSAwIDAxLTI2IDBsLTEyNi40LTE3NGMtMy44LTUuMyAwLTEyLjcgNi41LTEyLjdoNTUuMmM1LjEgMCAxMCAyLjUgMTMgNi42bDY0LjcgODkgMTUwLjktMjA3LjhjMy00LjEgNy44LTYuNiAxMy02LjZINjg4YzYuNS4xIDEwLjMgNy41IDYuNSAxMi44eiJ9fV19LG5hbWU6InNhZmV0eS1jZXJ0aWZpY2F0ZSIsdGhlbWU6ImZpbGxlZCJ9LGZVPWRVLHZVPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOmZVfSkpfSxoVT10LmZvcndhcmRSZWYodlUpLG1VPWhVLGdVPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NjYuOSAxNjkuOUw1MjcuMSA1NC4xQzUyMyA1Mi43IDUxNy41IDUyIDUxMiA1MnMtMTEgLjctMTUuMSAyLjFMMTU3LjEgMTY5LjljLTguMyAyLjgtMTUuMSAxMi40LTE1LjEgMjEuMnY0ODIuNGMwIDguOCA1LjcgMjAuNCAxMi42IDI1LjlMNDk5LjMgOTY4YzMuNSAyLjcgOCA0LjEgMTIuNiA0LjFzOS4yLTEuNCAxMi42LTQuMWwzNDQuNy0yNjguNmM2LjktNS40IDEyLjYtMTcgMTIuNi0yNS45VjE5MS4xYy4yLTguOC02LjYtMTguMy0xNC45LTIxLjJ6TTgxMCA2NTQuM0w1MTIgODg2LjUgMjE0IDY1NC4zVjIyNi43bDI5OC0xMDEuNiAyOTggMTAxLjZ2NDI3LjZ6bS00MDUuOC0yMDFjLTMtNC4xLTcuOC02LjYtMTMtNi42SDMzNmMtNi41IDAtMTAuMyA3LjQtNi41IDEyLjdsMTI2LjQgMTc0YTE2LjEgMTYuMSAwIDAwMjYgMGwyMTIuNi0yOTIuN2MzLjgtNS4zIDAtMTIuNy02LjUtMTIuN2gtNTUuMmMtNS4xIDAtMTAgMi41LTEzIDYuNkw0NjguOSA1NDIuNGwtNjQuNy04OS4xeiJ9fV19LG5hbWU6InNhZmV0eS1jZXJ0aWZpY2F0ZSIsdGhlbWU6Im91dGxpbmVkIn0scFU9Z1UseVU9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246cFV9KSl9LENVPXQuZm9yd2FyZFJlZih5VSksYlU9Q1UsU1U9e2ljb246ZnVuY3Rpb24oZix2KXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODY2LjkgMTY5LjlMNTI3LjEgNTQuMUM1MjMgNTIuNyA1MTcuNSA1MiA1MTIgNTJzLTExIC43LTE1LjEgMi4xTDE1Ny4xIDE2OS45Yy04LjMgMi44LTE1LjEgMTIuNC0xNS4xIDIxLjJ2NDgyLjRjMCA4LjggNS43IDIwLjQgMTIuNiAyNS45TDQ5OS4zIDk2OGMzLjUgMi43IDggNC4xIDEyLjYgNC4xczkuMi0xLjQgMTIuNi00LjFsMzQ0LjctMjY4LjZjNi45LTUuNCAxMi42LTE3IDEyLjYtMjUuOVYxOTEuMWMuMi04LjgtNi42LTE4LjMtMTQuOS0yMS4yek04MTAgNjU0LjNMNTEyIDg4Ni41IDIxNCA2NTQuM1YyMjYuN2wyOTgtMTAxLjYgMjk4IDEwMS42djQyNy42eiIsZmlsbDpmfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0yMTQgMjI2Ljd2NDI3LjZsMjk4IDIzMi4yIDI5OC0yMzIuMlYyMjYuN0w1MTIgMTI1LjEgMjE0IDIyNi43ek02MzIuOCAzMjhINjg4YzYuNSAwIDEwLjMgNy40IDYuNSAxMi43TDQ4MS45IDYzMy40YTE2LjEgMTYuMSAwIDAxLTI2IDBsLTEyNi40LTE3NGMtMy44LTUuMyAwLTEyLjcgNi41LTEyLjdoNTUuMmM1LjIgMCAxMCAyLjUgMTMgNi42bDY0LjcgODkuMSAxNTAuOS0yMDcuOGMzLTQuMSA3LjktNi42IDEzLTYuNnoiLGZpbGw6dn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNDA0LjIgNDUzLjNjLTMtNC4xLTcuOC02LjYtMTMtNi42SDMzNmMtNi41IDAtMTAuMyA3LjQtNi41IDEyLjdsMTI2LjQgMTc0YTE2LjEgMTYuMSAwIDAwMjYgMGwyMTIuNi0yOTIuN2MzLjgtNS4zIDAtMTIuNy02LjUtMTIuN2gtNTUuMmMtNS4xIDAtMTAgMi41LTEzIDYuNkw0NjguOSA1NDIuNGwtNjQuNy04OS4xeiIsZmlsbDpmfX1dfX0sbmFtZToic2FmZXR5LWNlcnRpZmljYXRlIix0aGVtZToidHdvdG9uZSJ9LE9VPVNVLHhVPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOk9VfSkpfSx3VT10LmZvcndhcmRSZWYoeFUpLEVVPXdVLFRVPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjAgMCAxMDI0IDEwMjQiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRMMTI4IDE5MnYzODRjMCAyMTIuMSAxNzEuOSAzODQgMzg0IDM4NHMzODQtMTcxLjkgMzg0LTM4NFYxOTJMNTEyIDY0em0zMTIgNTEyYzAgMTcyLjMtMTM5LjcgMzEyLTMxMiAzMTJTMjAwIDc0OC4zIDIwMCA1NzZWMjQ2bDMxMi0xMTAgMzEyIDExMHYzMzB6In19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMzc4LjQgNDc1LjFhMzUuOTEgMzUuOTEgMCAwMC01MC45IDAgMzUuOTEgMzUuOTEgMCAwMDAgNTAuOWwxMjkuNCAxMjkuNCAyLjEgMi4xYTMzLjk4IDMzLjk4IDAgMDA0OC4xIDBMNzMwLjYgNDM0YTMzLjk4IDMzLjk4IDAgMDAwLTQ4LjFsLTIuOC0yLjhhMzMuOTggMzMuOTggMCAwMC00OC4xIDBMNDgzIDU3OS43IDM3OC40IDQ3NS4xeiJ9fV19LG5hbWU6InNhZmV0eSIsdGhlbWU6Im91dGxpbmVkIn0sTVU9VFUsUlU9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246TVV9KSl9LElVPXQuZm9yd2FyZFJlZihSVSksUFU9SVUselU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg5My4zIDI5My4zTDczMC43IDEzMC43Yy0xMi0xMi0yOC4zLTE4LjctNDUuMy0xOC43SDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYzMzguNWMwLTE3LTYuNy0zMy4yLTE4LjctNDUuMnpNMzg0IDE3NmgyNTZ2MTEySDM4NFYxNzZ6bTEyOCA1NTRjLTc5LjUgMC0xNDQtNjQuNS0xNDQtMTQ0czY0LjUtMTQ0IDE0NC0xNDQgMTQ0IDY0LjUgMTQ0IDE0NC02NC41IDE0NC0xNDQgMTQ0em0wLTIyNGMtNDQuMiAwLTgwIDM1LjgtODAgODBzMzUuOCA4MCA4MCA4MCA4MC0zNS44IDgwLTgwLTM1LjgtODAtODAtODB6In19XX0sbmFtZToic2F2ZSIsdGhlbWU6ImZpbGxlZCJ9LEZVPXpVLEFVPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkZVfSkpfSxMVT10LmZvcndhcmRSZWYoQVUpLFpVPUxVLCRVPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04OTMuMyAyOTMuM0w3MzAuNyAxMzAuN2MtNy41LTcuNS0xNi43LTEzLTI2LjctMTZWMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYzMzguNWMwLTE3LTYuNy0zMy4yLTE4LjctNDUuMnpNMzg0IDE4NGgyNTZ2MTA0SDM4NFYxODR6bTQ1NiA2NTZIMTg0VjE4NGgxMzZ2MTM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDMyMGMxNy43IDAgMzItMTQuMyAzMi0zMlYyMDUuOGwxMzYgMTM2Vjg0MHpNNTEyIDQ0MmMtNzkuNSAwLTE0NCA2NC41LTE0NCAxNDRzNjQuNSAxNDQgMTQ0IDE0NCAxNDQtNjQuNSAxNDQtMTQ0LTY0LjUtMTQ0LTE0NC0xNDR6bTAgMjI0Yy00NC4yIDAtODAtMzUuOC04MC04MHMzNS44LTgwIDgwLTgwIDgwIDM1LjggODAgODAtMzUuOCA4MC04MCA4MHoifX1dfSxuYW1lOiJzYXZlIix0aGVtZToib3V0bGluZWQifSxIVT0kVSxEVT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpIVX0pKX0sQlU9dC5mb3J3YXJkUmVmKERVKSxWVT1CVSxOVT17aWNvbjpmdW5jdGlvbihmLHYpe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik03MDQgMzIwYzAgMTcuNy0xNC4zIDMyLTMyIDMySDM1MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMTg0SDE4NHY2NTZoNjU2VjM0MS44bC0xMzYtMTM2VjMyMHpNNTEyIDczMGMtNzkuNSAwLTE0NC02NC41LTE0NC0xNDRzNjQuNS0xNDQgMTQ0LTE0NCAxNDQgNjQuNSAxNDQgMTQ0LTY0LjUgMTQ0LTE0NCAxNDR6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA0NDJjLTc5LjUgMC0xNDQgNjQuNS0xNDQgMTQ0czY0LjUgMTQ0IDE0NCAxNDQgMTQ0LTY0LjUgMTQ0LTE0NC02NC41LTE0NC0xNDQtMTQ0em0wIDIyNGMtNDQuMiAwLTgwLTM1LjgtODAtODBzMzUuOC04MCA4MC04MCA4MCAzNS44IDgwIDgwLTM1LjggODAtODAgODB6IixmaWxsOmZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg5My4zIDI5My4zTDczMC43IDEzMC43Yy0uNy0uNy0xLjQtMS4zLTIuMS0yLS4xLS4xLS4zLS4yLS40LS4zLS43LS43LTEuNS0xLjMtMi4yLTEuOWE2NCA2NCAwIDAwLTIyLTExLjdWMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYzMzguNWMwLTE3LTYuNy0zMy4yLTE4LjctNDUuMnpNMzg0IDE4NGgyNTZ2MTA0SDM4NFYxODR6bTQ1NiA2NTZIMTg0VjE4NGgxMzZ2MTM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDMyMGMxNy43IDAgMzItMTQuMyAzMi0zMlYyMDUuOGwxMzYgMTM2Vjg0MHoiLGZpbGw6Zn19XX19LG5hbWU6InNhdmUiLHRoZW1lOiJ0d290b25lIn0salU9TlUsVVU9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246alV9KSl9LFdVPXQuZm9yd2FyZFJlZihVVSksa1U9V1UsS1U9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTEzNiAzODRoNTZjNC40IDAgOC0zLjYgOC04VjIwMGgxNzZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThIMTk2Yy0zNy42IDAtNjggMzAuNC02OCA2OHYxODBjMCA0LjQgMy42IDggOCA4em01MTItMTg0aDE3NnYxNzZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFYxOTZjMC0zNy42LTMwLjQtNjgtNjgtNjhINjQ4Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4ek0zNzYgODI0SDIwMFY2NDhjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djE4MGMwIDM3LjYgMzAuNCA2OCA2OCA2OGgxODBjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTUxMi0xODRoLTU2Yy00LjQgMC04IDMuNi04IDh2MTc2SDY0OGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGgxODBjMzcuNiAwIDY4LTMwLjQgNjgtNjhWNjQ4YzAtNC40LTMuNi04LTgtOHptMTYtMTY0SDEyMGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg3ODRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6In19XX0sbmFtZToic2NhbiIsdGhlbWU6Im91dGxpbmVkIn0sX1U9S1UsR1U9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246X1V9KSl9LFlVPXQuZm9yd2FyZFJlZihHVSksWFU9WVUsUVU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkyOCAyMjRINzY4di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZINTQ4di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZIMzI4di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjU3NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg4MzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjU2YzAtMTcuNy0xNC4zLTMyLTMyLTMyek00MjQgNjg4YzAgNC40LTMuNiA4LTggOEgyMzJjLTQuNCAwLTgtMy42LTgtOHYtNDhjMC00LjQgMy42LTggOC04aDE4NGM0LjQgMCA4IDMuNiA4IDh2NDh6bTAtMTM2YzAgNC40LTMuNiA4LTggOEgyMzJjLTQuNCAwLTgtMy42LTgtOHYtNDhjMC00LjQgMy42LTggOC04aDE4NGM0LjQgMCA4IDMuNiA4IDh2NDh6bTM3NC41LTkxLjNsLTE2NSAyMjguN2ExNS45IDE1LjkgMCAwMS0yNS44IDBMNDkzLjUgNTMxLjJjLTMuOC01LjMgMC0xMi43IDYuNS0xMi43aDU0LjljNS4xIDAgOS45IDIuNSAxMi45IDYuNmw1Mi44IDczLjEgMTAzLjctMTQzLjdjMy00LjIgNy44LTYuNiAxMi45LTYuNkg3OTJjNi41LjEgMTAuMyA3LjUgNi41IDEyLjh6In19XX0sbmFtZToic2NoZWR1bGUiLHRoZW1lOiJmaWxsZWQifSxKVT1RVSxxVT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpKVX0pKX0sZVc9dC5mb3J3YXJkUmVmKHFVKSx0Vz1lVyxuVz17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTI4IDIyNEg3Njh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1Nkg1NDh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NkgzMjh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1Nkg5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NTc2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDgzMmMxNy43IDAgMzItMTQuMyAzMi0zMlYyNTZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA1NjhIMTM2VjI5NmgxMjB2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZoMTQ4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2aDE0OHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmgxMjB2NDk2ek00MTYgNDk2SDIzMmMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgxODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6bTAgMTM2SDIzMmMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgxODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6bTMwOC4yLTE3Ny40TDYyMC42IDU5OC4zbC01Mi44LTczLjFjLTMtNC4yLTcuOC02LjYtMTIuOS02LjZINTAwYy02LjUgMC0xMC4zIDcuNC02LjUgMTIuN2wxMTQuMSAxNTguMmExNS45IDE1LjkgMCAwMDI1LjggMGwxNjUtMjI4LjdjMy44LTUuMyAwLTEyLjctNi41LTEyLjdINzM3Yy01LS4xLTkuOCAyLjQtMTIuOCA2LjV6In19XX0sbmFtZToic2NoZWR1bGUiLHRoZW1lOiJvdXRsaW5lZCJ9LHJXPW5XLGFXPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOnJXfSkpfSxvVz10LmZvcndhcmRSZWYoYVcpLGlXPW9XLGxXPXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTc2OCAzNTJjMCA0LjQtMy42IDgtOCA4aC01NmMtNC40IDAtOC0zLjYtOC04di01Nkg1NDh2NTZjMCA0LjQtMy42IDgtOCA4aC01NmMtNC40IDAtOC0zLjYtOC04di01NkgzMjh2NTZjMCA0LjQtMy42IDgtOCA4aC01NmMtNC40IDAtOC0zLjYtOC04di01NkgxMzZ2NDk2aDc1MlYyOTZINzY4djU2ek00MjQgNjg4YzAgNC40LTMuNiA4LTggOEgyMzJjLTQuNCAwLTgtMy42LTgtOHYtNDhjMC00LjQgMy42LTggOC04aDE4NGM0LjQgMCA4IDMuNiA4IDh2NDh6bTAtMTM2YzAgNC40LTMuNiA4LTggOEgyMzJjLTQuNCAwLTgtMy42LTgtOHYtNDhjMC00LjQgMy42LTggOC04aDE4NGM0LjQgMCA4IDMuNiA4IDh2NDh6bTM3NC40LTkxLjJsLTE2NSAyMjguN2ExNS45IDE1LjkgMCAwMS0yNS44IDBMNDkzLjUgNTMxLjNjLTMuOC01LjMgMC0xMi43IDYuNS0xMi43aDU0LjljNS4xIDAgOS45IDIuNCAxMi45IDYuNmw1Mi44IDczLjEgMTAzLjYtMTQzLjdjMy00LjEgNy44LTYuNiAxMi44LTYuNWg1NC45YzYuNSAwIDEwLjMgNy40IDYuNSAxMi43eiIsZmlsbDp2fX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik03MjQuMiA0NTQuNkw2MjAuNiA1OTguM2wtNTIuOC03My4xYy0zLTQuMi03LjgtNi42LTEyLjktNi42SDUwMGMtNi41IDAtMTAuMyA3LjQtNi41IDEyLjdsMTE0LjEgMTU4LjJhMTUuOSAxNS45IDAgMDAyNS44IDBsMTY1LTIyOC43YzMuOC01LjMgMC0xMi43LTYuNS0xMi43SDczN2MtNS0uMS05LjggMi40LTEyLjggNi41ek00MTYgNDk2SDIzMmMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgxODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6IixmaWxsOmZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkyOCAyMjRINzY4di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZINTQ4di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZIMzI4di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjU3NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg4MzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjU2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNTY4SDEzNlYyOTZoMTIwdjU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2aDE0OHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmgxNDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZoMTIwdjQ5NnoiLGZpbGw6Zn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNDE2IDYzMkgyMzJjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMTg0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04eiIsZmlsbDpmfX1dfX0sbmFtZToic2NoZWR1bGUiLHRoZW1lOiJ0d290b25lIn0sc1c9bFcsY1c9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246c1d9KSl9LHVXPXQuZm9yd2FyZFJlZihjVyksZFc9dVcsZlc9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTU2Ny4xIDUxMmwzMTguNS0zMTkuM2M1LTUgMS41LTEzLjctNS42LTEzLjdoLTkwLjVjLTIuMSAwLTQuMi44LTUuNiAyLjNsLTI3My4zIDI3NC05MC4yLTkwLjVjMTIuNS0yMi4xIDE5LjctNDcuNiAxOS43LTc0LjggMC04My45LTY4LjEtMTUyLTE1Mi0xNTJzLTE1MiA2OC4xLTE1MiAxNTIgNjguMSAxNTIgMTUyIDE1MmMyNy43IDAgNTMuNi03LjQgNzUuOS0yMC4zbDkwIDkwLjMtOTAuMSA5MC4zQTE1MS4wNCAxNTEuMDQgMCAwMDI4OCA1ODJjLTgzLjkgMC0xNTIgNjguMS0xNTIgMTUyczY4LjEgMTUyIDE1MiAxNTIgMTUyLTY4LjEgMTUyLTE1MmMwLTI3LjItNy4yLTUyLjctMTkuNy03NC44bDkwLjItOTAuNSAyNzMuMyAyNzRjMS41IDEuNSAzLjUgMi4zIDUuNiAyLjNIODgwYzcuMSAwIDEwLjctOC42IDUuNi0xMy43TDU2Ny4xIDUxMnpNMjg4IDM3MGMtNDQuMSAwLTgwLTM1LjktODAtODBzMzUuOS04MCA4MC04MCA4MCAzNS45IDgwIDgwLTM1LjkgODAtODAgODB6bTAgNDQ0Yy00NC4xIDAtODAtMzUuOS04MC04MHMzNS45LTgwIDgwLTgwIDgwIDM1LjkgODAgODAtMzUuOSA4MC04MCA4MHoifX1dfSxuYW1lOiJzY2lzc29yIix0aGVtZToib3V0bGluZWQifSx2Vz1mVyxoVz1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjp2V30pKX0sbVc9dC5mb3J3YXJkUmVmKGhXKSxnVz1tVyxwVz1lKDQ4Mjk2KSx5Vz17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODY2LjkgMTY5LjlMNTI3LjEgNTQuMUM1MjMgNTIuNyA1MTcuNSA1MiA1MTIgNTJzLTExIC43LTE1LjEgMi4xTDE1Ny4xIDE2OS45Yy04LjMgMi44LTE1LjEgMTIuNC0xNS4xIDIxLjJ2NDgyLjRjMCA4LjggNS43IDIwLjQgMTIuNiAyNS45TDQ5OS4zIDk2OGMzLjUgMi43IDggNC4xIDEyLjYgNC4xczkuMi0xLjQgMTIuNi00LjFsMzQ0LjctMjY4LjZjNi45LTUuNCAxMi42LTE3IDEyLjYtMjUuOVYxOTEuMWMuMi04LjgtNi42LTE4LjMtMTQuOS0yMS4yek02MjYuOCA1NTRjLTQ4LjUgNDguNS0xMjMgNTUuMi0xNzguNiAyMC4xbC03Ny41IDc3LjVhOC4wMyA4LjAzIDAgMDEtMTEuMyAwbC0zNC0zNGE4LjAzIDguMDMgMCAwMTAtMTEuM2w3Ny41LTc3LjVjLTM1LjEtNTUuNy0yOC40LTEzMC4xIDIwLjEtMTc4LjYgNTYuMy01Ni4zIDE0Ny41LTU2LjMgMjAzLjggMCA1Ni4zIDU2LjMgNTYuMyAxNDcuNSAwIDIwMy44em0tMTU4LjU0LTQ1LjI3YTgwLjEgODAuMSAwIDEwMTEzLjI3LTExMy4yOCA4MC4xIDgwLjEgMCAxMC0xMTMuMjcgMTEzLjI4eiJ9fV19LG5hbWU6InNlY3VyaXR5LXNjYW4iLHRoZW1lOiJmaWxsZWQifSxDVz15VyxiVz1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpDV30pKX0sU1c9dC5mb3J3YXJkUmVmKGJXKSxPVz1TVyx4Vz17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODY2LjkgMTY5LjlMNTI3LjEgNTQuMUM1MjMgNTIuNyA1MTcuNSA1MiA1MTIgNTJzLTExIC43LTE1LjEgMi4xTDE1Ny4xIDE2OS45Yy04LjMgMi44LTE1LjEgMTIuNC0xNS4xIDIxLjJ2NDgyLjRjMCA4LjggNS43IDIwLjQgMTIuNiAyNS45TDQ5OS4zIDk2OGMzLjUgMi43IDggNC4xIDEyLjYgNC4xczkuMi0xLjQgMTIuNi00LjFsMzQ0LjctMjY4LjZjNi45LTUuNCAxMi42LTE3IDEyLjYtMjUuOVYxOTEuMWMuMi04LjgtNi42LTE4LjMtMTQuOS0yMS4yek04MTAgNjU0LjNMNTEyIDg4Ni41IDIxNCA2NTQuM1YyMjYuN2wyOTgtMTAxLjYgMjk4IDEwMS42djQyNy42ek00MDIuOSA1MjguOGwtNzcuNSA3Ny41YTguMDMgOC4wMyAwIDAwMCAxMS4zbDM0IDM0YzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBsNzcuNS03Ny41YzU1LjcgMzUuMSAxMzAuMSAyOC40IDE3OC42LTIwLjEgNTYuMy01Ni4zIDU2LjMtMTQ3LjUgMC0yMDMuOC01Ni4zLTU2LjMtMTQ3LjUtNTYuMy0yMDMuOCAwLTQ4LjUgNDguNS01NS4yIDEyMy0yMC4xIDE3OC42em02NS40LTEzMy4zYzMxLjMtMzEuMyA4Mi0zMS4zIDExMy4yIDAgMzEuMyAzMS4zIDMxLjMgODIgMCAxMTMuMi0zMS4zIDMxLjMtODIgMzEuMy0xMTMuMiAwcy0zMS4zLTgxLjkgMC0xMTMuMnoifX1dfSxuYW1lOiJzZWN1cml0eS1zY2FuIix0aGVtZToib3V0bGluZWQifSx3Vz14VyxFVz1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjp3V30pKX0sVFc9dC5mb3J3YXJkUmVmKEVXKSxNVz1UVyxSVz17aWNvbjpmdW5jdGlvbihmLHYpe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NjYuOSAxNjkuOUw1MjcuMSA1NC4xQzUyMyA1Mi43IDUxNy41IDUyIDUxMiA1MnMtMTEgLjctMTUuMSAyLjFMMTU3LjEgMTY5LjljLTguMyAyLjgtMTUuMSAxMi40LTE1LjEgMjEuMnY0ODIuNGMwIDguOCA1LjcgMjAuNCAxMi42IDI1LjlMNDk5LjMgOTY4YzMuNSAyLjcgOCA0LjEgMTIuNiA0LjFzOS4yLTEuNCAxMi42LTQuMWwzNDQuNy0yNjguNmM2LjktNS40IDEyLjYtMTcgMTIuNi0yNS45VjE5MS4xYy4yLTguOC02LjYtMTguMy0xNC45LTIxLjJ6TTgxMCA2NTQuM0w1MTIgODg2LjUgMjE0IDY1NC4zVjIyNi43bDI5OC0xMDEuNiAyOTggMTAxLjZ2NDI3LjZ6IixmaWxsOmZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQ2MC43IDQ1MS4xYTgwLjEgODAuMSAwIDEwMTYwLjIgMCA4MC4xIDgwLjEgMCAxMC0xNjAuMiAweiIsZmlsbDp2fX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0yMTQgMjI2Ljd2NDI3LjZsMjk4IDIzMi4yIDI5OC0yMzIuMlYyMjYuN0w1MTIgMTI1LjEgMjE0IDIyNi43em00MjguNyAxMjIuNWM1Ni4zIDU2LjMgNTYuMyAxNDcuNSAwIDIwMy44LTQ4LjUgNDguNS0xMjMgNTUuMi0xNzguNiAyMC4xbC03Ny41IDc3LjVhOC4wMyA4LjAzIDAgMDEtMTEuMyAwbC0zNC0zNGE4LjAzIDguMDMgMCAwMTAtMTEuM2w3Ny41LTc3LjVjLTM1LjEtNTUuNy0yOC40LTEzMC4xIDIwLjEtMTc4LjYgNTYuMy01Ni4zIDE0Ny41LTU2LjMgMjAzLjggMHoiLGZpbGw6dn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNDE4LjggNTI3LjhsLTc3LjUgNzcuNWE4LjAzIDguMDMgMCAwMDAgMTEuM2wzNCAzNGMzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDc3LjUtNzcuNWM1NS42IDM1LjEgMTMwLjEgMjguNCAxNzguNi0yMC4xIDU2LjMtNTYuMyA1Ni4zLTE0Ny41IDAtMjAzLjgtNTYuMy01Ni4zLTE0Ny41LTU2LjMtMjAzLjggMC00OC41IDQ4LjUtNTUuMiAxMjIuOS0yMC4xIDE3OC42em02NS40LTEzMy4zYTgwLjEgODAuMSAwIDAxMTEzLjMgMCA4MC4xIDgwLjEgMCAwMTAgMTEzLjNjLTMxLjMgMzEuMy04MiAzMS4zLTExMy4zIDBzLTMxLjMtODIgMC0xMTMuM3oiLGZpbGw6Zn19XX19LG5hbWU6InNlY3VyaXR5LXNjYW4iLHRoZW1lOiJ0d290b25lIn0sSVc9UlcsUFc9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246SVd9KSl9LHpXPXQuZm9yd2FyZFJlZihQVyksRlc9elcsQVc9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoMzYwYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04SDE4NFYxODRoNjU2djMyMGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04VjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNjUzLjMgNTk5LjRsNTIuMi01Mi4yYTguMDEgOC4wMSAwIDAwLTQuNy0xMy42bC0xNzkuNC0yMWMtNS4xLS42LTkuNSAzLjctOC45IDguOWwyMSAxNzkuNGMuOCA2LjYgOC45IDkuNCAxMy42IDQuN2w1Mi40LTUyLjQgMjU2LjIgMjU2LjJjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGw0Mi40LTQyLjRjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM0w2NTMuMyA1OTkuNHoifX1dfSxuYW1lOiJzZWxlY3QiLHRoZW1lOiJvdXRsaW5lZCJ9LExXPUFXLFpXPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkxXfSkpfSwkVz10LmZvcndhcmRSZWYoWlcpLEhXPSRXLERXPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoiZGVmcyIsYXR0cnM6e30sY2hpbGRyZW46W3t0YWc6InN0eWxlIixhdHRyczp7fX1dfSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkzMS40IDQ5OC45TDk0LjkgNzkuNWMtMy40LTEuNy03LjMtMi4xLTExLTEuMmExNS45OSAxNS45OSAwIDAwLTExLjcgMTkuM2w4Ni4yIDM1Mi4yYzEuMyA1LjMgNS4yIDkuNiAxMC40IDExLjNsMTQ3LjcgNTAuNy0xNDcuNiA1MC43Yy01LjIgMS44LTkuMSA2LTEwLjMgMTEuM0w3Mi4yIDkyNi41Yy0uOSAzLjctLjUgNy42IDEuMiAxMC45IDMuOSA3LjkgMTMuNSAxMS4xIDIxLjUgNy4ybDgzNi41LTQxN2MzLjEtMS41IDUuNi00LjEgNy4yLTcuMSAzLjktOCAuNy0xNy42LTcuMi0yMS42ek0xNzAuOCA4MjYuM2w1MC4zLTIwNS42IDI5NS4yLTEwMS4zYzIuMy0uOCA0LjItMi42IDUtNSAxLjQtNC4yLS44LTguNy01LTEwLjJMMjIxLjEgNDAzIDE3MSAxOTguMmw2MjggMzE0LjktNjI4LjIgMzEzLjJ6In19XX0sbmFtZToic2VuZCIsdGhlbWU6Im91dGxpbmVkIn0sQlc9RFcsVlc9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246Qld9KSl9LE5XPXQuZm9yd2FyZFJlZihWVyksalc9TlcsVVc9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMi41IDM5MC42Yy0yOS45IDAtNTcuOSAxMS42LTc5LjEgMzIuOC0yMS4xIDIxLjItMzIuOCA0OS4yLTMyLjggNzkuMSAwIDI5LjkgMTEuNyA1Ny45IDMyLjggNzkuMSAyMS4yIDIxLjEgNDkuMiAzMi44IDc5LjEgMzIuOCAyOS45IDAgNTcuOS0xMS43IDc5LjEtMzIuOCAyMS4xLTIxLjIgMzIuOC00OS4yIDMyLjgtNzkuMSAwLTI5LjktMTEuNy01Ny45LTMyLjgtNzkuMWExMTAuOTYgMTEwLjk2IDAgMDAtNzkuMS0zMi44em00MTIuMyAyMzUuNWwtNjUuNC01NS45YzMuMS0xOSA0LjctMzguNCA0LjctNTcuN3MtMS42LTM4LjgtNC43LTU3LjdsNjUuNC01NS45YTMyLjAzIDMyLjAzIDAgMDA5LjMtMzUuMmwtLjktMi42YTQ0Mi41IDQ0Mi41IDAgMDAtNzkuNi0xMzcuN2wtMS44LTIuMWEzMi4xMiAzMi4xMiAwIDAwLTM1LjEtOS41bC04MS4yIDI4LjljLTMwLTI0LjYtNjMuNC00NC05OS42LTU3LjVsLTE1LjctODQuOWEzMi4wNSAzMi4wNSAwIDAwLTI1LjgtMjUuN2wtMi43LS41Yy01Mi05LjQtMTA2LjgtOS40LTE1OC44IDBsLTIuNy41YTMyLjA1IDMyLjA1IDAgMDAtMjUuOCAyNS43bC0xNS44IDg1LjNhMzUzLjQ0IDM1My40NCAwIDAwLTk4LjkgNTcuM2wtODEuOC0yOS4xYTMyIDMyIDAgMDAtMzUuMSA5LjVsLTEuOCAyLjFhNDQ1LjkzIDQ0NS45MyAwIDAwLTc5LjYgMTM3LjdsLS45IDIuNmMtNC41IDEyLjUtLjggMjYuNSA5LjMgMzUuMmw2Ni4yIDU2LjVjLTMuMSAxOC44LTQuNiAzOC00LjYgNTcgMCAxOS4yIDEuNSAzOC40IDQuNiA1N2wtNjYgNTYuNWEzMi4wMyAzMi4wMyAwIDAwLTkuMyAzNS4ybC45IDIuNmMxOC4xIDUwLjMgNDQuOCA5Ni44IDc5LjYgMTM3LjdsMS44IDIuMWEzMi4xMiAzMi4xMiAwIDAwMzUuMSA5LjVsODEuOC0yOS4xYzI5LjggMjQuNSA2MyA0My45IDk4LjkgNTcuM2wxNS44IDg1LjNhMzIuMDUgMzIuMDUgMCAwMDI1LjggMjUuN2wyLjcuNWE0NDguMjcgNDQ4LjI3IDAgMDAxNTguOCAwbDIuNy0uNWEzMi4wNSAzMi4wNSAwIDAwMjUuOC0yNS43bDE1LjctODQuOWMzNi4yLTEzLjYgNjkuNi0zMi45IDk5LjYtNTcuNWw4MS4yIDI4LjlhMzIgMzIgMCAwMDM1LjEtOS41bDEuOC0yLjFjMzQuOC00MS4xIDYxLjUtODcuNCA3OS42LTEzNy43bC45LTIuNmM0LjMtMTIuNC42LTI2LjMtOS41LTM1em0tNDEyLjMgNTIuMmMtOTcuMSAwLTE3NS44LTc4LjctMTc1LjgtMTc1LjhzNzguNy0xNzUuOCAxNzUuOC0xNzUuOCAxNzUuOCA3OC43IDE3NS44IDE3NS44LTc4LjcgMTc1LjgtMTc1LjggMTc1Ljh6In19XX0sbmFtZToic2V0dGluZyIsdGhlbWU6ImZpbGxlZCJ9LFdXPVVXLGtXPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOldXfSkpfSxLVz10LmZvcndhcmRSZWYoa1cpLF9XPUtXLEdXPWUoNDI5NTIpLFlXPXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg1OS4zIDU2OS43bC4yLjFjMy4xLTE4LjkgNC42LTM4LjIgNC42LTU3LjMgMC0xNy4xLTEuMy0zNC4zLTMuNy01MS4xIDIuNCAxNi43IDMuNiAzMy42IDMuNiA1MC41IDAgMTkuNC0xLjYgMzguOC00LjcgNTcuOHpNOTkgMzk4LjFjLS41LS40LS45LS44LTEuNC0xLjMuNy43IDEuNCAxLjQgMi4yIDIuMWw2NS41IDU1Ljl2LS4xTDk5IDM5OC4xem01MzYuNi0yMTZoLjFsLTE1LjUtODMuOGMtLjItMS0uNC0xLjktLjctMi44LjEuNS4zIDEuMS40IDEuNmwxNS43IDg1em01NCA1NDYuNWwzMS40LTI1LjggOTIuOCAzMi45YzE3LTIyLjkgMzEuMy00Ny41IDQyLjYtNzMuNmwtNzQuNy02My45IDYuNi00MC4xYzIuNS0xNS4xIDMuOC0zMC42IDMuOC00Ni4xcy0xLjMtMzEtMy44LTQ2LjFsLTYuNS0zOS45IDc0LjctNjMuOWMtMTEuNC0yNi0yNS42LTUwLjctNDIuNi03My42bC05Mi44IDMyLjktMzEuNC0yNS44Yy0yMy45LTE5LjYtNTAuNi0zNS03OS4zLTQ1LjhsLTM4LjEtMTQuMy0xNy45LTk3YTM3Ny41IDM3Ny41IDAgMDAtODUgMGwtMTcuOSA5Ny4yLTM3LjkgMTQuM2MtMjguNSAxMC44LTU1IDI2LjItNzguNyA0NS43bC0zMS40IDI1LjktOTMuNC0zMy4yYy0xNyAyMi45LTMxLjMgNDcuNS00Mi42IDczLjZsNzUuNSA2NC41LTYuNSA0MGMtMi41IDE0LjktMy43IDMwLjItMy43IDQ1LjUgMCAxNS4yIDEuMyAzMC42IDMuNyA0NS41bDYuNSA0MC03NS41IDY0LjVjMTEuNCAyNiAyNS42IDUwLjcgNDIuNiA3My42bDkzLjQtMzMuMiAzMS40IDI1LjljMjMuNyAxOS41IDUwLjIgMzQuOSA3OC43IDQ1LjdsMzcuOCAxNC41IDE3LjkgOTcuMmMyOC4yIDMuMiA1Ni45IDMuMiA4NSAwbDE3LjktOTcgMzguMS0xNC4zYzI4LjgtMTAuOCA1NS40LTI2LjIgNzkuMy00NS44em0tMTc3LjEtNTAuM2MtMzAuNSAwLTU5LjItNy44LTg0LjMtMjEuNUMzNzMuMyA2MjcgMzM2IDU2OC45IDMzNiA1MDJjMC05Ny4yIDc4LjgtMTc2IDE3Ni0xNzYgNjYuOSAwIDEyNSAzNy4zIDE1NC44IDkyLjIgMTMuNyAyNSAyMS41IDUzLjcgMjEuNSA4NC4zIDAgOTcuMS03OC43IDE3NS44LTE3NS44IDE3NS44ek0yMDcuMiA4MTIuOGMtNS41IDEuOS0xMS4yIDIuMy0xNi42IDEuMiA1LjcgMS4yIDExLjcgMSAxNy41LTFsODEuNC0yOWMtLjEtLjEtLjMtLjItLjQtLjNsLTgxLjkgMjkuMXptNzE3LjYtNDE0LjdsLTY1LjUgNTZjMCAuMi4xLjUuMS43bDY1LjQtNTUuOWM3LjEtNi4xIDExLjEtMTQuOSAxMS4yLTI0LS4zIDguOC00LjMgMTcuMy0xMS4yIDIzLjJ6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkzNS44IDY0Ni42Yy41IDQuNyAwIDkuNS0xLjcgMTQuMWwtLjkgMi42YTQ0Ni4wMiA0NDYuMDIgMCAwMS03OS43IDEzNy45bC0xLjggMi4xYTMyIDMyIDAgMDEtMzUuMSA5LjVsLTgxLjMtMjguOWEzNTAgMzUwIDAgMDEtOTkuNyA1Ny42bC0xNS43IDg1YTMyLjA1IDMyLjA1IDAgMDEtMjUuOCAyNS43bC0yLjcuNWE0NDUuMiA0NDUuMiAwIDAxLTc5LjIgNy4xaC4zYzI2LjcgMCA1My40LTIuNCA3OS40LTcuMWwyLjctLjVhMzIuMDUgMzIuMDUgMCAwMDI1LjgtMjUuN2wxNS43LTg0LjljMzYuMi0xMy42IDY5LjYtMzIuOSA5OS42LTU3LjVsODEuMiAyOC45YTMyIDMyIDAgMDAzNS4xLTkuNWwxLjgtMi4xYzM0LjgtNDEuMSA2MS41LTg3LjQgNzkuNi0xMzcuN2wuOS0yLjZjMS42LTQuNyAyLjEtOS43IDEuNS0xNC41eiIsZmlsbDp2fX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02ODggNTAyYzAtMzAuMy03LjctNTguOS0yMS4yLTgzLjhDNjM3IDM2My4zIDU3OC45IDMyNiA1MTIgMzI2Yy05Ny4yIDAtMTc2IDc4LjgtMTc2IDE3NiAwIDY2LjkgMzcuMyAxMjUgOTIuMiAxNTQuOCAyNC45IDEzLjUgNTMuNCAyMS4yIDgzLjggMjEuMiA5Ny4yIDAgMTc2LTc4LjggMTc2LTE3NnptLTI4OCAwYzAtMjkuOSAxMS43LTU4IDMyLjgtNzkuMkM0NTQgNDAxLjYgNDgyLjEgMzkwIDUxMiAzOTBjMjkuOSAwIDU4IDExLjYgNzkuMiAzMi44QTExMS42IDExMS42IDAgMDE2MjQgNTAyYzAgMjkuOS0xMS43IDU4LTMyLjggNzkuMkExMTEuNiAxMTEuNiAwIDAxNTEyIDYxNGMtMjkuOSAwLTU4LTExLjctNzkuMi0zMi44QTExMS42IDExMS42IDAgMDE0MDAgNTAyeiIsZmlsbDpmfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01OTQuMSA5NTIuMmEzMi4wNSAzMi4wNSAwIDAwMjUuOC0yNS43bDE1LjctODVhMzUwIDM1MCAwIDAwOTkuNy01Ny42bDgxLjMgMjguOWEzMiAzMiAwIDAwMzUuMS05LjVsMS44LTIuMWMzNC44LTQxLjEgNjEuNi04Ny41IDc5LjctMTM3LjlsLjktMi42YzEuNy00LjYgMi4yLTkuNCAxLjctMTQuMS0uOS03LjktNC43LTE1LjQtMTEtMjAuOWwtNjUuMy01NS45LS4yLS4xYzMuMS0xOSA0LjctMzguNCA0LjctNTcuOCAwLTE2LjktMS4yLTMzLjktMy42LTUwLjUtLjMtMi4yLS43LTQuNC0xLTYuNiAwLS4yLS4xLS41LS4xLS43bDY1LjUtNTZjNi45LTUuOSAxMC45LTE0LjQgMTEuMi0yMy4yLjEtNC0uNS04LjEtMS45LTEybC0uOS0yLjZhNDQzLjc0IDQ0My43NCAwIDAwLTc5LjctMTM3LjlsLTEuOC0yLjFhMzIuMTIgMzIuMTIgMCAwMC0zNS4xLTkuNWwtODEuMyAyOC45Yy0zMC0yNC42LTYzLjQtNDQtOTkuNi01Ny42aC0uMWwtMTUuNy04NWMtLjEtLjUtLjItMS4xLS40LTEuNmEzMi4wOCAzMi4wOCAwIDAwLTI1LjQtMjQuMWwtMi43LS41Yy01Mi4xLTkuNC0xMDYuOS05LjQtMTU5IDBsLTIuNy41YTMyLjA1IDMyLjA1IDAgMDAtMjUuOCAyNS43bC0xNS44IDg1LjRhMzUxLjg2IDM1MS44NiAwIDAwLTk5IDU3LjRsLTgxLjktMjkuMWEzMiAzMiAwIDAwLTM1LjEgOS41bC0xLjggMi4xYTQ0Ni4wMiA0NDYuMDIgMCAwMC03OS43IDEzNy45bC0uOSAyLjZhMzIuMDkgMzIuMDkgMCAwMDcuOSAzMy45Yy41LjQuOS45IDEuNCAxLjNsNjYuMyA1Ni42di4xYy0zLjEgMTguOC00LjYgMzcuOS00LjYgNTcgMCAxOS4yIDEuNSAzOC40IDQuNiA1Ny4xTDk5IDYyNS41YTMyLjAzIDMyLjAzIDAgMDAtOS4zIDM1LjJsLjkgMi42YzE4LjEgNTAuNCA0NC45IDk2LjkgNzkuNyAxMzcuOWwxLjggMi4xYzQuOSA1LjcgMTEuNCA5LjQgMTguNSAxMC43IDUuNCAxIDExLjEuNyAxNi42LTEuMmw4MS45LTI5LjFjLjEuMS4zLjIuNC4zIDI5LjcgMjQuMyA2Mi44IDQzLjYgOTguNiA1Ny4xbDE1LjggODUuNGEzMi4wNSAzMi4wNSAwIDAwMjUuOCAyNS43bDIuNy41YzI2LjEgNC43IDUyLjggNy4xIDc5LjUgNy4xaC4zYzI2LjYgMCA1My4zLTIuNCA3OS4yLTcuMWwyLjctLjV6bS0zOS44LTY2LjVhMzc3LjUgMzc3LjUgMCAwMS04NSAwbC0xNy45LTk3LjItMzcuOC0xNC41Yy0yOC41LTEwLjgtNTUtMjYuMi03OC43LTQ1LjdsLTMxLjQtMjUuOS05My40IDMzLjJjLTE3LTIyLjktMzEuMi00Ny42LTQyLjYtNzMuNmw3NS41LTY0LjUtNi41LTQwYy0yLjQtMTQuOS0zLjctMzAuMy0zLjctNDUuNSAwLTE1LjMgMS4yLTMwLjYgMy43LTQ1LjVsNi41LTQwLTc1LjUtNjQuNWMxMS4zLTI2LjEgMjUuNi01MC43IDQyLjYtNzMuNmw5My40IDMzLjIgMzEuNC0yNS45YzIzLjctMTkuNSA1MC4yLTM0LjkgNzguNy00NS43bDM3LjktMTQuMyAxNy45LTk3LjJjMjguMS0zLjIgNTYuOC0zLjIgODUgMGwxNy45IDk3IDM4LjEgMTQuM2MyOC43IDEwLjggNTUuNCAyNi4yIDc5LjMgNDUuOGwzMS40IDI1LjggOTIuOC0zMi45YzE3IDIyLjkgMzEuMiA0Ny42IDQyLjYgNzMuNkw3ODEuOCA0MjZsNi41IDM5LjljMi41IDE1LjEgMy44IDMwLjYgMy44IDQ2LjFzLTEuMyAzMS0zLjggNDYuMWwtNi42IDQwLjEgNzQuNyA2My45YTM3MC4wMyAzNzAuMDMgMCAwMS00Mi42IDczLjZMNzIxIDcwMi44bC0zMS40IDI1LjhjLTIzLjkgMTkuNi01MC41IDM1LTc5LjMgNDUuOGwtMzguMSAxNC4zLTE3LjkgOTd6IixmaWxsOmZ9fV19fSxuYW1lOiJzZXR0aW5nIix0aGVtZToidHdvdG9uZSJ9LFhXPVlXLFFXPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOlhXfSkpfSxKVz10LmZvcndhcmRSZWYoUVcpLHFXPUpXLGVrPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0zMjQgNjY2YTQ4IDQ4IDAgMTA5NiAwIDQ4IDQ4IDAgMTAtOTYgMHptNjE2LjctMzA5LjZMNjY3LjYgODMuMkM2NTUuMiA3MC45IDYzOC43IDY0IDYyMS4xIDY0cy0zNC4xIDYuOC00Ni41IDE5LjJMODMuMyA1NzQuNWE2NS44NSA2NS44NSAwIDAwMCA5My4xbDI3My4yIDI3My4yYzEyLjMgMTIuMyAyOC45IDE5LjIgNDYuNSAxOS4yczM0LjEtNi44IDQ2LjUtMTkuMmw0OTEuMy00OTEuM2MyNS42LTI1LjcgMjUuNi02Ny41LS4xLTkzLjF6TTQwMyA4ODAuMUwxNDMuOSA2MjFsNDc3LjItNDc3LjIgMjU5IDI1OS4yTDQwMyA4ODAuMXpNMTUyLjggMzczLjdhNy45IDcuOSAwIDAwMTEuMiAwTDM3My43IDE2NGE3LjkgNy45IDAgMDAwLTExLjJsLTM4LjQtMzguNGE3LjkgNy45IDAgMDAtMTEuMiAwTDExNC4zIDMyMy45YTcuOSA3LjkgMCAwMDAgMTEuMmwzOC41IDM4LjZ6bTcxOC42IDI3Ni42YTcuOSA3LjkgMCAwMC0xMS4yIDBMNjUwLjMgODYwLjFhNy45IDcuOSAwIDAwMCAxMS4ybDM4LjQgMzguNGE3LjkgNy45IDAgMDAxMS4yIDBMOTA5LjcgNzAwYTcuOSA3LjkgMCAwMDAtMTEuMmwtMzguMy0zOC41eiJ9fV19LG5hbWU6InNoYWtlIix0aGVtZToib3V0bGluZWQifSx0az1layxuaz1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjp0a30pKX0scms9dC5mb3J3YXJkUmVmKG5rKSxhaz1yayxvaz17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNzUyIDY2NGMtMjguNSAwLTU0LjggMTAtNzUuNCAyNi43TDQ2OS40IDU0MC44YTE2MC42OCAxNjAuNjggMCAwMDAtNTcuNmwyMDcuMi0xNDkuOUM2OTcuMiAzNTAgNzIzLjUgMzYwIDc1MiAzNjBjNjYuMiAwIDEyMC01My44IDEyMC0xMjBzLTUzLjgtMTIwLTEyMC0xMjAtMTIwIDUzLjgtMTIwIDEyMGMwIDExLjYgMS42IDIyLjcgNC43IDMzLjNMNDM5LjkgNDE1LjhDNDEwLjcgMzc3LjEgMzY0LjMgMzUyIDMxMiAzNTJjLTg4LjQgMC0xNjAgNzEuNi0xNjAgMTYwczcxLjYgMTYwIDE2MCAxNjBjNTIuMyAwIDk4LjctMjUuMSAxMjcuOS02My44bDE5Ni44IDE0Mi41Yy0zLjEgMTAuNi00LjcgMjEuOC00LjcgMzMuMyAwIDY2LjIgNTMuOCAxMjAgMTIwIDEyMHMxMjAtNTMuOCAxMjAtMTIwLTUzLjgtMTIwLTEyMC0xMjB6bTAtNDc2YzI4LjcgMCA1MiAyMy4zIDUyIDUycy0yMy4zIDUyLTUyIDUyLTUyLTIzLjMtNTItNTIgMjMuMy01MiA1Mi01MnpNMzEyIDYwMGMtNDguNSAwLTg4LTM5LjUtODgtODhzMzkuNS04OCA4OC04OCA4OCAzOS41IDg4IDg4LTM5LjUgODgtODggODh6bTQ0MCAyMzZjLTI4LjcgMC01Mi0yMy4zLTUyLTUyczIzLjMtNTIgNTItNTIgNTIgMjMuMyA1MiA1Mi0yMy4zIDUyLTUyIDUyeiJ9fV19LG5hbWU6InNoYXJlLWFsdCIsdGhlbWU6Im91dGxpbmVkIn0saWs9b2ssbGs9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246aWt9KSl9LHNrPXQuZm9yd2FyZFJlZihsayksY2s9c2ssdWs9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MiAyNzIuMVYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJIMTc0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYxMjguMWMtMTYuNyAxLTMwIDE0LjktMzAgMzEuOXYxMzEuN2ExNzcgMTc3IDAgMDAxNC40IDcwLjRjNC4zIDEwLjIgOS42IDE5LjggMTUuNiAyOC45djM0NWMwIDE3LjYgMTQuMyAzMiAzMiAzMmgyNzRWNzM2aDEyOHYxNzZoMjc0YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjUzNWExNzUgMTc1IDAgMDAxNS42LTI4LjljOS41LTIyLjMgMTQuNC00NiAxNC40LTcwLjRWMzA0YzAtMTctMTMuMy0zMC45LTMwLTMxLjl6bS03MiA1NjhINjQwVjcwNGMwLTE3LjctMTQuMy0zMi0zMi0zMkg0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjEzNi4xSDIxNFY1OTcuOWMyLjkgMS40IDUuOSAyLjggOSA0IDIyLjMgOS40IDQ2IDE0LjEgNzAuNCAxNC4xczQ4LTQuNyA3MC40LTE0LjFjMTMuOC01LjggMjYuOC0xMy4yIDM4LjctMjIuMS4yLS4xLjQtLjEuNiAwYTE4MC40IDE4MC40IDAgMDAzOC43IDIyLjFjMjIuMyA5LjQgNDYgMTQuMSA3MC40IDE0LjEgMjQuNCAwIDQ4LTQuNyA3MC40LTE0LjEgMTMuOC01LjggMjYuOC0xMy4yIDM4LjctMjIuMS4yLS4xLjQtLjEuNiAwYTE4MC40IDE4MC40IDAgMDAzOC43IDIyLjFjMjIuMyA5LjQgNDYgMTQuMSA3MC40IDE0LjEgMjQuNCAwIDQ4LTQuNyA3MC40LTE0LjEgMy0xLjMgNi0yLjYgOS00djI0Mi4yem0wLTU2OC4xSDIxNHYtODhoNTk2djg4eiJ9fV19LG5hbWU6InNob3AiLHRoZW1lOiJmaWxsZWQifSxkaz11ayxmaz1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpka30pKX0sdms9dC5mb3J3YXJkUmVmKGZrKSxoaz12ayxtaz17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODgyIDI3Mi4xVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMkgxNzRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjEyOC4xYy0xNi43IDEtMzAgMTQuOS0zMCAzMS45djEzMS43YTE3NyAxNzcgMCAwMDE0LjQgNzAuNGM0LjMgMTAuMiA5LjYgMTkuOCAxNS42IDI4Ljl2MzQ1YzAgMTcuNiAxNC4zIDMyIDMyIDMyaDY3NmMxNy43IDAgMzItMTQuMyAzMi0zMlY1MzVhMTc1IDE3NSAwIDAwMTUuNi0yOC45YzkuNS0yMi4zIDE0LjQtNDYgMTQuNC03MC40VjMwNGMwLTE3LTEzLjMtMzAuOS0zMC0zMS45ek0yMTQgMTg0aDU5NnY4OEgyMTR2LTg4em0zNjIgNjU2LjFINDQ4VjczNmgxMjh2MTA0LjF6bTIzNCAwSDY0MFY3MDRjMC0xNy43LTE0LjMtMzItMzItMzJINDE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYxMzYuMUgyMTRWNTk3LjljMi45IDEuNCA1LjkgMi44IDkgNCAyMi4zIDkuNCA0NiAxNC4xIDcwLjQgMTQuMXM0OC00LjcgNzAuNC0xNC4xYzEzLjgtNS44IDI2LjgtMTMuMiAzOC43LTIyLjEuMi0uMS40LS4xLjYgMGExODAuNCAxODAuNCAwIDAwMzguNyAyMi4xYzIyLjMgOS40IDQ2IDE0LjEgNzAuNCAxNC4xIDI0LjQgMCA0OC00LjcgNzAuNC0xNC4xIDEzLjgtNS44IDI2LjgtMTMuMiAzOC43LTIyLjEuMi0uMS40LS4xLjYgMGExODAuNCAxODAuNCAwIDAwMzguNyAyMi4xYzIyLjMgOS40IDQ2IDE0LjEgNzAuNCAxNC4xIDI0LjQgMCA0OC00LjcgNzAuNC0xNC4xIDMtMS4zIDYtMi42IDktNHYyNDIuMnptMzAtNDA0LjRjMCA1OS44LTQ5IDEwOC4zLTEwOS4zIDEwOC4zLTQwLjggMC03Ni40LTIyLjEtOTUuMi01NC45LTIuOS01LTguMS04LjEtMTMuOS04LjFoLS42Yy01LjcgMC0xMSAzLjEtMTMuOSA4LjFBMTA5LjI0IDEwOS4yNCAwIDAxNTEyIDU0NGMtNDAuNyAwLTc2LjItMjItOTUtNTQuNy0zLTUuMS04LjQtOC4zLTE0LjMtOC4zcy0xMS40IDMuMi0xNC4zIDguM2ExMDkuNjMgMTA5LjYzIDAgMDEtOTUuMSA1NC43QzIzMyA1NDQgMTg0IDQ5NS41IDE4NCA0MzUuN3YtOTEuMmMwLS4zLjItLjUuNS0uNWg2NTVjLjMgMCAuNS4yLjUuNXY5MS4yeiJ9fV19LG5hbWU6InNob3AiLHRoZW1lOiJvdXRsaW5lZCJ9LGdrPW1rLHBrPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOmdrfSkpfSx5az10LmZvcndhcmRSZWYocGspLENrPXlrLGJrPXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTgzOS41IDM0NGgtNjU1Yy0uMyAwLS41LjItLjUuNXY5MS4yYzAgNTkuOCA0OSAxMDguMyAxMDkuMyAxMDguMyA0MC43IDAgNzYuMi0yMiA5NS4xLTU0LjcgMi45LTUuMSA4LjQtOC4zIDE0LjMtOC4zczExLjMgMy4yIDE0LjMgOC4zYzE4LjggMzIuNyA1NC4zIDU0LjcgOTUgNTQuNyA0MC44IDAgNzYuNC0yMi4xIDk1LjEtNTQuOSAyLjktNSA4LjItOC4xIDEzLjktOC4xaC42YzUuOCAwIDExIDMuMSAxMy45IDguMSAxOC44IDMyLjggNTQuNCA1NC45IDk1LjIgNTQuOUM3OTEgNTQ0IDg0MCA0OTUuNSA4NDAgNDM1Ljd2LTkxLjJjMC0uMy0uMi0uNS0uNS0uNXoiLGZpbGw6dn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODgyIDI3Mi4xVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMkgxNzRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjEyOC4xYy0xNi43IDEtMzAgMTQuOS0zMCAzMS45djEzMS43YTE3NyAxNzcgMCAwMDE0LjQgNzAuNGM0LjMgMTAuMiA5LjYgMTkuOCAxNS42IDI4Ljl2MzQ1YzAgMTcuNiAxNC4zIDMyIDMyIDMyaDY3NmMxNy43IDAgMzItMTQuMyAzMi0zMlY1MzVhMTc1IDE3NSAwIDAwMTUuNi0yOC45YzkuNS0yMi4zIDE0LjQtNDYgMTQuNC03MC40VjMwNGMwLTE3LTEzLjMtMzAuOS0zMC0zMS45ek0yMTQgMTg0aDU5NnY4OEgyMTR2LTg4em0zNjIgNjU2LjFINDQ4VjczNmgxMjh2MTA0LjF6bTIzNC40IDBINjQwVjcwNGMwLTE3LjctMTQuMy0zMi0zMi0zMkg0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjEzNi4xSDIxNFY1OTcuOWMyLjkgMS40IDUuOSAyLjggOSA0IDIyLjMgOS40IDQ2IDE0LjEgNzAuNCAxNC4xIDI0LjQgMCA0OC00LjcgNzAuNC0xNC4xIDEzLjgtNS44IDI2LjgtMTMuMiAzOC43LTIyLjEuMi0uMS40LS4xLjYgMGExODAuNCAxODAuNCAwIDAwMzguNyAyMi4xYzIyLjMgOS40IDQ2IDE0LjEgNzAuNCAxNC4xczQ4LTQuNyA3MC40LTE0LjFjMTMuOC01LjggMjYuOC0xMy4yIDM4LjctMjIuMS4yLS4xLjQtLjEuNiAwYTE4MC40IDE4MC40IDAgMDAzOC43IDIyLjFjMjIuMyA5LjQgNDYgMTQuMSA3MC40IDE0LjFzNDgtNC43IDcwLjQtMTQuMWMzLTEuMyA2LTIuNiA5LTR2MjQyLjJ6TTg0MCA0MzUuN2MwIDU5LjgtNDkgMTA4LjMtMTA5LjMgMTA4LjMtNDAuOCAwLTc2LjQtMjIuMS05NS4yLTU0LjktMi45LTUtOC4xLTguMS0xMy45LTguMWgtLjZjLTUuNyAwLTExIDMuMS0xMy45IDguMUExMDkuMjQgMTA5LjI0IDAgMDE1MTIgNTQ0Yy00MC43IDAtNzYuMi0yMi05NS01NC43LTMtNS4xLTguNC04LjMtMTQuMy04LjNzLTExLjQgMy4yLTE0LjMgOC4zYTEwOS42MyAxMDkuNjMgMCAwMS05NS4xIDU0LjdDMjMzIDU0NCAxODQgNDk1LjUgMTg0IDQzNS43di05MS4yYzAtLjMuMi0uNS41LS41aDY1NWMuMyAwIC41LjIuNS41djkxLjJ6IixmaWxsOmZ9fV19fSxuYW1lOiJzaG9wIix0aGVtZToidHdvdG9uZSJ9LFNrPWJrLE9rPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOlNrfSkpfSx4az10LmZvcndhcmRSZWYoT2spLHdrPXhrLEVrPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjAgMCAxMDI0IDEwMjQiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MjIuOSA3MDEuOUgzMjcuNGwyOS45LTYwLjkgNDk2LjgtLjljMTYuOCAwIDMxLjItMTIgMzQuMi0yOC42bDY4LjgtMzg1LjFjMS44LTEwLjEtLjktMjAuNS03LjUtMjguNGEzNC45OSAzNC45OSAwIDAwLTI2LjYtMTIuNWwtNjMyLTIuMS01LjQtMjUuNGMtMy40LTE2LjItMTgtMjgtMzQuNi0yOEg5Ni41YTM1LjMgMzUuMyAwIDEwMCA3MC42aDEyNS45TDI0NiAzMTIuOGw1OC4xIDI4MS4zLTc0LjggMTIyLjFhMzQuOTYgMzQuOTYgMCAwMC0zIDM2LjhjNiAxMS45IDE4LjEgMTkuNCAzMS41IDE5LjRoNjIuOGExMDIuNDMgMTAyLjQzIDAgMDAtMjAuNiA2MS43YzAgNTYuNiA0NiAxMDIuNiAxMDIuNiAxMDIuNnMxMDIuNi00NiAxMDIuNi0xMDIuNmMwLTIyLjMtNy40LTQ0LTIwLjYtNjEuN2gxNjEuMWExMDIuNDMgMTAyLjQzIDAgMDAtMjAuNiA2MS43YzAgNTYuNiA0NiAxMDIuNiAxMDIuNiAxMDIuNnMxMDIuNi00NiAxMDIuNi0xMDIuNmMwLTIyLjMtNy40LTQ0LTIwLjYtNjEuN0g5MjNjMTkuNCAwIDM1LjMtMTUuOCAzNS4zLTM1LjNhMzUuNDIgMzUuNDIgMCAwMC0zNS40LTM1LjJ6TTMwNS43IDI1M2w1NzUuOCAxLjktNTYuNCAzMTUuOC00NTIuMy44TDMwNS43IDI1M3ptOTYuOSA2MTIuN2MtMTcuNCAwLTMxLjYtMTQuMi0zMS42LTMxLjYgMC0xNy40IDE0LjItMzEuNiAzMS42LTMxLjZzMzEuNiAxNC4yIDMxLjYgMzEuNmEzMS42IDMxLjYgMCAwMS0zMS42IDMxLjZ6bTMyNS4xIDBjLTE3LjQgMC0zMS42LTE0LjItMzEuNi0zMS42IDAtMTcuNCAxNC4yLTMxLjYgMzEuNi0zMS42czMxLjYgMTQuMiAzMS42IDMxLjZhMzEuNiAzMS42IDAgMDEtMzEuNiAzMS42eiJ9fV19LG5hbWU6InNob3BwaW5nLWNhcnQiLHRoZW1lOiJvdXRsaW5lZCJ9LFRrPUVrLE1rPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOlRrfSkpfSxSaz10LmZvcndhcmRSZWYoTWspLElrPVJrLFBrPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04MzIgMzEySDY5NnYtMTZjMC0xMDEuNi04Mi40LTE4NC0xODQtMTg0cy0xODQgODIuNC0xODQgMTg0djE2SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NTM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlYzNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS0yMDggMEg0MDB2LTE2YzAtNjEuOSA1MC4xLTExMiAxMTItMTEyczExMiA1MC4xIDExMiAxMTJ2MTZ6In19XX0sbmFtZToic2hvcHBpbmciLHRoZW1lOiJmaWxsZWQifSx6az1QayxGaz1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjp6a30pKX0sQWs9dC5mb3J3YXJkUmVmKEZrKSxMaz1Bayxaaz17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODMyIDMxMkg2OTZ2LTE2YzAtMTAxLjYtODIuNC0xODQtMTg0LTE4NHMtMTg0IDgyLjQtMTg0IDE4NHYxNkgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjUzNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDMyLTE2YzAtNjEuOSA1MC4xLTExMiAxMTItMTEyczExMiA1MC4xIDExMiAxMTJ2MTZINDAwdi0xNnptMzkyIDU0NEgyMzJWMzg0aDk2djg4YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTg4aDIyNHY4OGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di04OGg5NnY0NTZ6In19XX0sbmFtZToic2hvcHBpbmciLHRoZW1lOiJvdXRsaW5lZCJ9LCRrPVprLEhrPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOiRrfSkpfSxEaz10LmZvcndhcmRSZWYoSGspLEJrPURrLFZrPXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTY5NiA0NzJjMCA0LjQtMy42IDgtOCA4aC01NmMtNC40IDAtOC0zLjYtOC04di04OEg0MDB2ODhjMCA0LjQtMy42IDgtOCA4aC01NmMtNC40IDAtOC0zLjYtOC04di04OGgtOTZ2NDU2aDU2MFYzODRoLTk2djg4eiIsZmlsbDp2fX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04MzIgMzEySDY5NnYtMTZjMC0xMDEuNi04Mi40LTE4NC0xODQtMTg0cy0xODQgODIuNC0xODQgMTg0djE2SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NTM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlYzNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MzItMTZjMC02MS45IDUwLjEtMTEyIDExMi0xMTJzMTEyIDUwLjEgMTEyIDExMnYxNkg0MDB2LTE2em0zOTIgNTQ0SDIzMlYzODRoOTZ2ODhjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtODhoMjI0djg4YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTg4aDk2djQ1NnoiLGZpbGw6Zn19XX19LG5hbWU6InNob3BwaW5nIix0aGVtZToidHdvdG9uZSJ9LE5rPVZrLGprPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOk5rfSkpfSxVaz10LmZvcndhcmRSZWYoamspLFdrPVVrLGtrPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODEuNyAxODcuNGwtNDUuMS00NS4xYTguMDMgOC4wMyAwIDAwLTExLjMgMEw2NjcuOCAyOTkuOWwtNTQuNy01NC43YTcuOTQgNy45NCAwIDAwLTEzLjUgNC43TDU3Ni4xIDQzOWMtLjYgNS4yIDMuNyA5LjUgOC45IDguOWwxODkuMi0yMy41YzYuNi0uOCA5LjMtOC44IDQuNy0xMy41bC01NC43LTU0LjcgMTU3LjYtMTU3LjZjMy0zIDMtOC4xLS4xLTExLjJ6TTQzOSA1NzYuMWwtMTg5LjIgMjMuNWMtNi42LjgtOS4zIDguOS00LjcgMTMuNWw1NC43IDU0LjctMTU3LjUgMTU3LjVhOC4wMyA4LjAzIDAgMDAwIDExLjNsNDUuMSA0NS4xYzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBsMTU3LjYtMTU3LjYgNTQuNyA1NC43YTcuOTQgNy45NCAwIDAwMTMuNS00LjdMNDQ3LjkgNTg1YTcuOSA3LjkgMCAwMC04LjktOC45eiJ9fV19LG5hbWU6InNocmluayIsdGhlbWU6Im91dGxpbmVkIn0sS2s9a2ssX2s9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246S2t9KSl9LEdrPXQuZm9yd2FyZFJlZihfayksWWs9R2ssWGs9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJkZWZzIixhdHRyczp7fSxjaGlsZHJlbjpbe3RhZzoic3R5bGUiLGF0dHJzOnt9fV19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTg0IDM1Mkg0NDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjU0NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmgxNDRjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzg0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek04OTIgNjRINzQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoMTQ0YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyek0yNzYgNjQwSDEzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MjU2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDE0NGMxNy43IDAgMzItMTQuMyAzMi0zMlY2NzJjMC0xNy43LTE0LjMtMzItMzItMzJ6In19XX0sbmFtZToic2lnbmFsIix0aGVtZToiZmlsbGVkIn0sUWs9WGssSms9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246UWt9KSl9LHFrPXQuZm9yd2FyZFJlZihKayksZUs9cWssdEs9e2ljb246e3RhZzoic3ZnIixhdHRyczp7ImZpbGwtcnVsZSI6ImV2ZW5vZGQiLHZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0xNDUuNzEgNzUyYzIgMCA0LS4yIDUuOTgtLjVMMzE5LjkgNzIyYzEuOTktLjQgMy44OC0xLjMgNS4yOC0yLjhsNDIzLjkxLTQyMy44N2E5LjkzIDkuOTMgMCAwMDAtMTQuMDZMNTgyLjg4IDExNC45QzU4MSAxMTMgNTc4LjUgMTEyIDU3NS44MiAxMTJzLTUuMTggMS03LjA4IDIuOUwxNDQuODIgNTM4Ljc2Yy0xLjUgMS41LTIuNCAzLjI5LTIuOCA1LjI4bC0yOS41IDE2OC4xN2EzMy41OSAzMy41OSAwIDAwOS4zNyAyOS44MWM2LjU4IDYuNDggMTQuOTUgOS45NyAyMy44MiA5Ljk3bTQ1My4xMi0xODQuMDdjMjcuNjktMTQuODEgNTcuMjktMjAuODUgODUuNTQtMTUuNTIgMzIuMzcgNi4xIDU5LjcyIDI2LjUzIDc4Ljk2IDU5LjQgMjkuOTcgNTEuMjIgMjEuNjQgMTAyLjM0LTE4LjQ4IDE0NC4yNi0xNy41OCAxOC4zNi00MS4wNyAzNS4wMS03MCA1MC4zbC0uMy4xNS44Ni4yNmExNDcuODggMTQ3Ljg4IDAgMDA0MS41NCA2LjJsMS4xNy4wMWM2MS4wNyAwIDEwMC45OC0yMi4xIDEyNS4yOC02Ny44N2EzNiAzNiAwIDAxNjMuNiAzMy43NkM4NjkuNyA4NDkuMSA4MDQuOSA4ODUgNzE4LjEyIDg4NWMtNDcuNjkgMC05MS45NC0xNS4wMy0xMjguMTktNDEuMzZsLTEuMDUtLjc4LTEuMzYuNDdjLTQ2LjE4IDE2LTk4Ljc0IDI5Ljk1LTE1NS4zNyA0MS45NGwtMi4yNC40N2ExOTMxLjEgMTkzMS4xIDAgMDEtMTM5LjE2IDIzLjk2IDM2IDM2IDAgMTEtOS41LTcxLjM4IDE4NjAuMSAxODYwLjEgMCAwMDEzMy44NC0yMy4wNGM0Mi44LTkgODMtMTkuMTMgMTE5LjM1LTMwLjM0bC4yNC0uMDgtLjQ0LS42OWMtMTYuNDYtMjYuNDUtMjUuODYtNTUuNDMtMjYuMTQtODMuMjR2LTEuM2MwLTQ5LjkgMzkuNTUtMTA0LjMyIDkwLjczLTEzMS43TTY3MSA2MjMuMTdjLTEwLjc0LTIuMDMtMjQuMS43LTM4LjIyIDguMjYtMjkuNTUgMTUuOC01Mi43IDQ3LjY0LTUyLjcgNjguMiAwIDE4LjIgOC45IDQwLjE0IDI0LjcxIDU5LjczbC4yNC4zIDEuMjItLjUyYzM5LjE3LTE2LjU4IDY4LjQ5LTM0LjI3IDg1LjkzLTUyLjE4bC42NC0uNjdjMTguNzQtMTkuNTcgMjEuMzktMzUuODQgOC4zNi01OC4xLTkuMDYtMTUuNDctMTkuMDMtMjIuOTItMzAuMTgtMjUuMDIifX1dfSxuYW1lOiJzaWduYXR1cmUiLHRoZW1lOiJmaWxsZWQifSxuSz10SyxySz1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpuS30pKX0sYUs9dC5mb3J3YXJkUmVmKHJLKSxvSz1hSyxpSz17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnsiZmlsbC1ydWxlIjoiZXZlbm9kZCIsdmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTE0NS43MSA3NTJjMiAwIDQtLjIgNS45OC0uNUwzMTkuOSA3MjJjMS45OS0uNCAzLjg4LTEuMyA1LjI4LTIuOGw0MjMuOTEtNDIzLjg3YTkuOTMgOS45MyAwIDAwMC0xNC4wNkw1ODIuODggMTE0LjlDNTgxIDExMyA1NzguNSAxMTIgNTc1LjgyIDExMnMtNS4xOCAxLTcuMDggMi45TDE0NC44MiA1MzguNzZjLTEuNSAxLjUtMi40IDMuMjktMi44IDUuMjhsLTI5LjUgMTY4LjE3YTMzLjU5IDMzLjU5IDAgMDA5LjM3IDI5LjgxYzYuNTggNi40OCAxNC45NSA5Ljk3IDIzLjgyIDkuOTdtNTEuNzUtODUuNDNsMTUuNjUtODguOTIgMzYyLjctMzYyLjY3IDczLjI4IDczLjI3LTM2Mi43IDM2Mi42N3ptNDAxLjM3LTk4LjY0YzI3LjY5LTE0LjgxIDU3LjI5LTIwLjg1IDg1LjU0LTE1LjUyIDMyLjM3IDYuMSA1OS43MiAyNi41MyA3OC45NiA1OS40IDI5Ljk3IDUxLjIyIDIxLjY0IDEwMi4zNC0xOC40OCAxNDQuMjYtMTcuNTggMTguMzYtNDEuMDcgMzUuMDEtNzAgNTAuM2wtLjMuMTUuODYuMjZhMTQ3Ljg4IDE0Ny44OCAwIDAwNDEuNTQgNi4ybDEuMTcuMDFjNjEuMDcgMCAxMDAuOTgtMjIuMSAxMjUuMjgtNjcuODdhMzYgMzYgMCAwMTYzLjYgMzMuNzZDODY5LjcgODQ5LjEgODA0LjkgODg1IDcxOC4xMiA4ODVjLTQ3LjY5IDAtOTEuOTQtMTUuMDMtMTI4LjE5LTQxLjM2bC0xLjA1LS43OC0xLjM2LjQ3Yy00Ni4xOCAxNi05OC43NCAyOS45NS0xNTUuMzcgNDEuOTRsLTIuMjQuNDdhMTkzMS4xIDE5MzEuMSAwIDAxLTEzOS4xNiAyMy45NiAzNiAzNiAwIDExLTkuNS03MS4zOCAxODYwLjEgMTg2MC4xIDAgMDAxMzMuODQtMjMuMDRjNDIuOC05IDgzLTE5LjEzIDExOS4zNS0zMC4zNGwuMjQtLjA4LS40NC0uNjljLTE2LjQ2LTI2LjQ1LTI1Ljg2LTU1LjQzLTI2LjE0LTgzLjI0di0xLjNjMC00OS45IDM5LjU1LTEwNC4zMiA5MC43My0xMzEuN002NzEgNjIzLjE3Yy0xMC43NC0yLjAzLTI0LjEuNy0zOC4yMiA4LjI2LTI5LjU1IDE1LjgtNTIuNyA0Ny42NC01Mi43IDY4LjIgMCAxOC4yIDguOSA0MC4xNCAyNC43MSA1OS43M2wuMjQuMyAxLjIyLS41MmMzOS4xNy0xNi41OCA2OC40OS0zNC4yNyA4NS45My01Mi4xOGwuNjQtLjY3YzE4Ljc0LTE5LjU3IDIxLjM5LTM1Ljg0IDguMzYtNTguMS05LjA2LTE1LjQ3LTE5LjAzLTIyLjkyLTMwLjE4LTI1LjAyIn19XX0sbmFtZToic2lnbmF0dXJlIix0aGVtZToib3V0bGluZWQifSxsSz1pSyxzSz1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpsS30pKX0sY0s9dC5mb3J3YXJkUmVmKHNLKSx1Sz1jSyxkSz17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6ImRlZnMiLGF0dHJzOnt9LGNoaWxkcmVuOlt7dGFnOiJzdHlsZSIsYXR0cnM6e319XX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02NzIgNDMyYy0xMjAuMyAwLTIxOS45IDg4LjUtMjM3LjMgMjA0SDMyMGMtMTUuNSAwLTI4LTEyLjUtMjgtMjhWMjQ0aDI5MWMxNC4yIDM1LjIgNDguNyA2MCA4OSA2MCA1MyAwIDk2LTQzIDk2LTk2cy00My05Ni05Ni05NmMtNDAuMyAwLTc0LjggMjQuOC04OSA2MEgxMTJ2NzJoMTA4djM2NGMwIDU1LjIgNDQuOCAxMDAgMTAwIDEwMGgxMTQuN2MxNy40IDExNS41IDExNyAyMDQgMjM3LjMgMjA0IDEzMi41IDAgMjQwLTEwNy41IDI0MC0yNDBTODA0LjUgNDMyIDY3MiA0MzJ6bTEyOCAyNjZjMCA0LjQtMy42IDgtOCA4aC04NnY4NmMwIDQuNC0zLjYgOC04IDhoLTUyYy00LjQgMC04LTMuNi04LTh2LTg2aC04NmMtNC40IDAtOC0zLjYtOC04di01MmMwLTQuNCAzLjYtOCA4LThoODZ2LTg2YzAtNC40IDMuNi04IDgtOGg1MmM0LjQgMCA4IDMuNiA4IDh2ODZoODZjNC40IDAgOCAzLjYgOCA4djUyeiJ9fV19LG5hbWU6InNpc3Rlcm5vZGUiLHRoZW1lOiJvdXRsaW5lZCJ9LGZLPWRLLHZLPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOmZLfSkpfSxoSz10LmZvcndhcmRSZWYodkspLG1LPWhLLGdLPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01ODIuMyA2MjUuNmwxNDcuOS0xNjYuM2gtNjMuNHptOTAtMjAyLjNoNjIuNWwtOTIuMS0xMTUuMXptLTI3NC43IDM2TDUxMiA2ODQuNWwxMTQuNC0yMjUuMnpNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTI4Ni43IDM4MC4yTDUxNS44IDc2Mi4zYy0xIDEuMS0yLjQgMS43LTMuOCAxLjdzLTIuOC0uNi0zLjgtMS43TDIyNS4zIDQ0NC4yYTUuMTQgNS4xNCAwIDAxLS4yLTYuNkwzNjUuNiAyNjJjMS0xLjIgMi40LTEuOSA0LTEuOWgyODQuNmMxLjYgMCAzIC43IDQgMS45bDE0MC41IDE3NS42YTQuOSA0LjkgMCAwMTAgNi42em0tMTkwLjUtMjAuOUw1MTIgMzI2LjFsLTk2LjIgOTcuMnpNNDIwLjMgMzAxLjFsLTIzLjEgODkuOCA4OC44LTg5Ljh6bTE4My40IDBINTM4bDg4LjggODkuOHptLTIyMi40IDcuMWwtOTIuMSAxMTUuMWg2Mi41em0tODcuNSAxNTEuMWwxNDcuOSAxNjYuMy04NC41LTE2Ni4zeiJ9fV19LG5hbWU6InNrZXRjaC1jaXJjbGUiLHRoZW1lOiJmaWxsZWQifSxwSz1nSyx5Sz1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpwS30pKX0sQ0s9dC5mb3J3YXJkUmVmKHlLKSxiSz1DSyxTSz17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTI1LjYgNDA1LjFsLTIwMy0yNTMuN2E2LjUgNi41IDAgMDAtNS0yLjRIMzA2LjRjLTEuOSAwLTMuOC45LTUgMi40bC0yMDMgMjUzLjdhNi41IDYuNSAwIDAwLjIgOC4zbDQwOC42IDQ1OS41YzEuMiAxLjQgMyAyLjEgNC44IDIuMSAxLjggMCAzLjUtLjggNC44LTIuMWw0MDguNi00NTkuNWE2LjUgNi41IDAgMDAuMi04LjN6TTY0NS4yIDIwNi40bDM0LjQgMTMzLjktMTMyLjUtMTMzLjloOTguMXptOC4yIDE3OC41SDM3MC42TDUxMiAyNDJsMTQxLjQgMTQyLjl6TTM3OC44IDIwNi40aDk4LjFMMzQ0LjMgMzQwLjNsMzQuNS0xMzMuOXptLTUzLjQgN2wtNDQuMSAxNzEuNWgtOTMuMWwxMzcuMi0xNzEuNXpNMTk0LjYgNDM0LjlIMjg5bDEyNS44IDI0Ny43LTIyMC4yLTI0Ny43ek01MTIgNzYzLjRMMzQ1LjEgNDM0LjloMzMzLjdMNTEyIDc2My40em05Ny4xLTgwLjhMNzM1IDQzNC45aDk0LjRMNjA5LjEgNjgyLjZ6bTEzMy42LTI5Ny43bC00NC4xLTE3MS41IDEzNy4yIDE3MS41aC05My4xeiJ9fV19LG5hbWU6InNrZXRjaCIsdGhlbWU6Im91dGxpbmVkIn0sT0s9U0sseEs9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246T0t9KSl9LHdLPXQuZm9yd2FyZFJlZih4SyksRUs9d0ssVEs9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTYwOC4yIDQyMy4zTDUxMiAzMjYuMWwtOTYuMiA5Ny4yem0tMjUuOSAyMDIuM2wxNDcuOS0xNjYuM2gtNjMuNHptOTAtMjAyLjNoNjIuNWwtOTIuMS0xMTUuMXpNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tODEuMyAzMzIuMkw1MTUuOCA3NjIuM2MtMSAxLjEtMi40IDEuNy0zLjggMS43cy0yLjgtLjYtMy44LTEuN0wyMjUuMyA0NDQuMmE1LjE0IDUuMTQgMCAwMS0uMi02LjZMMzY1LjYgMjYyYzEtMS4yIDIuNC0xLjkgNC0xLjloMjg0LjZjMS42IDAgMyAuNyA0IDEuOWwxNDAuNSAxNzUuNmE0LjkgNC45IDAgMDEwIDYuNnptLTQwMS4xIDE1LjFMNTEyIDY4NC41bDExNC40LTIyNS4yem0tMTYuMy0xNTEuMWwtOTIuMSAxMTUuMWg2Mi41em0tODcuNSAxNTEuMWwxNDcuOSAxNjYuMy04NC41LTE2Ni4zem0xMjYuNS0xNTguMmwtMjMuMSA4OS44IDg4LjgtODkuOHptMTgzLjQgMEg1MzhsODguOCA4OS44eiJ9fV19LG5hbWU6InNrZXRjaC1zcXVhcmUiLHRoZW1lOiJmaWxsZWQifSxNSz1USyxSSz1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpNS30pKX0sSUs9dC5mb3J3YXJkUmVmKFJLKSxQSz1JSyx6Sz17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODcwIDEyNkg2NjMuOGMtMTcuNCAwLTMyLjkgMTEuOS0zNyAyOS4zQzYxNC4zIDIwOC4xIDU2NyAyNDYgNTEyIDI0NnMtMTAyLjMtMzcuOS0xMTQuOC05MC43YTM3LjkzIDM3LjkzIDAgMDAtMzctMjkuM0gxNTRhNDQgNDQgMCAwMC00NCA0NHYyNTJhNDQgNDQgMCAwMDQ0IDQ0aDc1djM4OGE0NCA0NCAwIDAwNDQgNDRoNDc4YTQ0IDQ0IDAgMDA0NC00NFY0NjZoNzVhNDQgNDQgMCAwMDQ0LTQ0VjE3MGE0NCA0NCAwIDAwLTQ0LTQ0eiJ9fV19LG5hbWU6InNraW4iLHRoZW1lOiJmaWxsZWQifSxGSz16SyxBSz1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpGS30pKX0sTEs9dC5mb3J3YXJkUmVmKEFLKSxaSz1MSywkSz17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODcwIDEyNkg2NjMuOGMtMTcuNCAwLTMyLjkgMTEuOS0zNyAyOS4zQzYxNC4zIDIwOC4xIDU2NyAyNDYgNTEyIDI0NnMtMTAyLjMtMzcuOS0xMTQuOC05MC43YTM3LjkzIDM3LjkzIDAgMDAtMzctMjkuM0gxNTRhNDQgNDQgMCAwMC00NCA0NHYyNTJhNDQgNDQgMCAwMDQ0IDQ0aDc1djM4OGE0NCA0NCAwIDAwNDQgNDRoNDc4YTQ0IDQ0IDAgMDA0NC00NFY0NjZoNzVhNDQgNDQgMCAwMDQ0LTQ0VjE3MGE0NCA0NCAwIDAwLTQ0LTQ0em0tMjggMjY4SDcyM3Y0MzJIMzAxVjM5NEgxODJWMTk4aDE1My4zYzI4LjIgNzEuMiA5Ny41IDEyMCAxNzYuNyAxMjBzMTQ4LjUtNDguOCAxNzYuNy0xMjBIODQydjE5NnoifX1dfSxuYW1lOiJza2luIix0aGVtZToib3V0bGluZWQifSxISz0kSyxESz1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpIS30pKX0sQks9dC5mb3J3YXJkUmVmKERLKSxWSz1CSyxOSz17aWNvbjpmdW5jdGlvbihmLHYpe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgMzE4Yy03OS4yIDAtMTQ4LjUtNDguOC0xNzYuNy0xMjBIMTgydjE5NmgxMTl2NDMyaDQyMlYzOTRoMTE5VjE5OEg2ODguN2MtMjguMiA3MS4yLTk3LjUgMTIwLTE3Ni43IDEyMHoiLGZpbGw6dn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODcwIDEyNkg2NjMuOGMtMTcuNCAwLTMyLjkgMTEuOS0zNyAyOS4zQzYxNC4zIDIwOC4xIDU2NyAyNDYgNTEyIDI0NnMtMTAyLjMtMzcuOS0xMTQuOC05MC43YTM3LjkzIDM3LjkzIDAgMDAtMzctMjkuM0gxNTRhNDQgNDQgMCAwMC00NCA0NHYyNTJhNDQgNDQgMCAwMDQ0IDQ0aDc1djM4OGE0NCA0NCAwIDAwNDQgNDRoNDc4YTQ0IDQ0IDAgMDA0NC00NFY0NjZoNzVhNDQgNDQgMCAwMDQ0LTQ0VjE3MGE0NCA0NCAwIDAwLTQ0LTQ0em0tMjggMjY4SDcyM3Y0MzJIMzAxVjM5NEgxODJWMTk4aDE1My4zYzI4LjIgNzEuMiA5Ny41IDEyMCAxNzYuNyAxMjBzMTQ4LjUtNDguOCAxNzYuNy0xMjBIODQydjE5NnoiLGZpbGw6Zn19XX19LG5hbWU6InNraW4iLHRoZW1lOiJ0d290b25lIn0saks9TkssVUs9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246akt9KSl9LFdLPXQuZm9yd2FyZFJlZihVSyksa0s9V0ssS0s9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4My43IDU3OC42YzQuMS0yMi41IDYuMy00NS41IDYuMy02OC41IDAtNTEtMTAtMTAwLjUtMjkuNy0xNDctMTktNDUtNDYuMy04NS40LTgxLTEyMC4xYTM3NS43OSAzNzUuNzkgMCAwMC0xMjAuMS04MC45Yy00Ni42LTE5LjctOTYtMjkuNy0xNDctMjkuNy0yNCAwLTQ4LjEgMi4zLTcxLjUgNi44QTIyNS4xIDIyNS4xIDAgMDAzMzUuNiAxMTNjLTU5LjcgMC0xMTUuOSAyMy4zLTE1OC4xIDY1LjVBMjIyLjI1IDIyMi4yNSAwIDAwMTEyIDMzNi42YzAgMzggOS44IDc1LjQgMjguMSAxMDguNC0zLjcgMjEuNC01LjcgNDMuMy01LjcgNjUuMSAwIDUxIDEwIDEwMC41IDI5LjcgMTQ3IDE5IDQ1IDQ2LjIgODUuNCA4MC45IDEyMC4xIDM0LjcgMzQuNyA3NS4xIDYxLjkgMTIwLjEgODAuOSA0Ni42IDE5LjcgOTYgMjkuNyAxNDcgMjkuNyAyMi4yIDAgNDQuNC0yIDY2LjItNS45IDMzLjUgMTguOSA3MS4zIDI5IDExMCAyOSA1OS43IDAgMTE1LjktMjMuMiAxNTguMS02NS41IDQyLjMtNDIuMiA2NS41LTk4LjQgNjUuNS0xNTguMS4xLTM4LTkuNy03NS41LTI4LjItMTA4Ljd6bS0zNzAgMTYyLjljLTEzNC4yIDAtMTk0LjItNjYtMTk0LjItMTE1LjQgMC0yNS40IDE4LjctNDMuMSA0NC41LTQzLjEgNTcuNCAwIDQyLjYgODIuNSAxNDkuNyA4Mi41IDU0LjkgMCA4NS4yLTI5LjggODUuMi02MC4zIDAtMTguMy05LTM4LjctNDUuMi00Ny42bC0xMTkuNC0yOS44Yy05Ni4xLTI0LjEtMTEzLjYtNzYuMS0xMTMuNi0xMjQuOSAwLTEwMS40IDk1LjUtMTM5LjUgMTg1LjItMTM5LjUgODIuNiAwIDE4MCA0NS43IDE4MCAxMDYuNSAwIDI2LjEtMjIuNiA0MS4yLTQ4LjQgNDEuMi00OSAwLTQwLTY3LjgtMTM4LjctNjcuOC00OSAwLTc2LjEgMjIuMi03Ni4xIDUzLjlzMzguNyA0MS44IDcyLjMgNDkuNWw4OC40IDE5LjZjOTYuOCAyMS42IDEyMS4zIDc4LjEgMTIxLjMgMTMxLjMgMCA4Mi4zLTYzLjMgMTQzLjktMTkxIDE0My45eiJ9fV19LG5hbWU6InNreXBlIix0aGVtZToiZmlsbGVkIn0sX0s9S0ssR0s9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246X0t9KSl9LFlLPXQuZm9yd2FyZFJlZihHSyksWEs9WUssUUs9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4My43IDU3OC42YzQuMS0yMi41IDYuMy00NS41IDYuMy02OC41IDAtNTEtMTAtMTAwLjUtMjkuNy0xNDctMTktNDUtNDYuMy04NS40LTgxLTEyMC4xYTM3NS43OSAzNzUuNzkgMCAwMC0xMjAuMS04MC45Yy00Ni42LTE5LjctOTYtMjkuNy0xNDctMjkuNy0yNCAwLTQ4LjEgMi4zLTcxLjUgNi44QTIyNS4xIDIyNS4xIDAgMDAzMzUuNiAxMTNjLTU5LjcgMC0xMTUuOSAyMy4zLTE1OC4xIDY1LjVBMjIyLjI1IDIyMi4yNSAwIDAwMTEyIDMzNi42YzAgMzggOS44IDc1LjQgMjguMSAxMDguNC0zLjcgMjEuNC01LjcgNDMuMy01LjcgNjUuMSAwIDUxIDEwIDEwMC41IDI5LjcgMTQ3IDE5IDQ1IDQ2LjIgODUuNCA4MC45IDEyMC4xIDM0LjcgMzQuNyA3NS4xIDYxLjkgMTIwLjEgODAuOSA0Ni42IDE5LjcgOTYgMjkuNyAxNDcgMjkuNyAyMi4yIDAgNDQuNC0yIDY2LjItNS45IDMzLjUgMTguOSA3MS4zIDI5IDExMCAyOSA1OS43IDAgMTE1LjktMjMuMiAxNTguMS02NS41IDQyLjMtNDIuMiA2NS41LTk4LjQgNjUuNS0xNTguMS4xLTM4LTkuNy03NS41LTI4LjItMTA4Ljd6bS04OC4xIDIxNkM3NjYuOSA4MjMuNCA3MjkgODM5IDY4OC40IDgzOWMtMjYuMSAwLTUxLjgtNi44LTc0LjYtMTkuN2wtMjIuNS0xMi43LTI1LjUgNC41Yy0xNy44IDMuMi0zNS44IDQuOC01My42IDQuOC00MS40IDAtODEuMy04LjEtMTE5LjEtMjQuMS0zNi4zLTE1LjMtNjktMzcuMy05Ny4yLTY1LjVhMzA0LjI5IDMwNC4yOSAwIDAxLTY1LjUtOTcuMWMtMTYtMzcuNy0yNC03Ny42LTI0LTExOSAwLTE3LjQgMS42LTM1LjIgNC42LTUyLjhsNC40LTI1LjFMMjAzIDQxMGExNTEuMDIgMTUxLjAyIDAgMDEtMTkuMS03My40YzAtNDAuNiAxNS43LTc4LjUgNDQuNC0xMDcuMkMyNTcuMSAyMDAuNyAyOTUgMTg1IDMzNS42IDE4NWExNTMgMTUzIDAgMDE3MS40IDE3LjlsMjIuNCAxMS44IDI0LjgtNC44YzE4LjktMy42IDM4LjQtNS41IDU4LTUuNSA0MS40IDAgODEuMyA4LjEgMTE5IDI0IDM2LjUgMTUuNCA2OS4xIDM3LjQgOTcuMiA2NS41IDI4LjIgMjguMSA1MC4yIDYwLjggNjUuNiA5Ny4yIDE2IDM3LjcgMjQgNzcuNiAyNCAxMTkgMCAxOC40LTEuNyAzNy01LjEgNTUuNWwtNC43IDI1LjUgMTIuNiAyMi42YzEyLjYgMjIuNSAxOS4yIDQ4IDE5LjIgNzMuNyAwIDQwLjctMTUuNyA3OC41LTQ0LjQgMTA3LjJ6TTU4My40IDQ2Ni4yTDQ5NSA0NDYuNmMtMzMuNi03LjctNzIuMy0xNy44LTcyLjMtNDkuNXMyNy4xLTUzLjkgNzYuMS01My45Yzk4LjcgMCA4OS43IDY3LjggMTM4LjcgNjcuOCAyNS44IDAgNDguNC0xNS4yIDQ4LjQtNDEuMiAwLTYwLjgtOTcuNC0xMDYuNS0xODAtMTA2LjUtODkuNyAwLTE4NS4yIDM4LjEtMTg1LjIgMTM5LjUgMCA0OC44IDE3LjQgMTAwLjggMTEzLjYgMTI0LjlsMTE5LjQgMjkuOGMzNi4xIDguOSA0NS4yIDI5LjIgNDUuMiA0Ny42IDAgMzAuNS0zMC4zIDYwLjMtODUuMiA2MC4zLTEwNy4yIDAtOTIuMy04Mi41LTE0OS43LTgyLjUtMjUuOCAwLTQ0LjUgMTcuOC00NC41IDQzLjEgMCA0OS40IDYwIDExNS40IDE5NC4yIDExNS40IDEyNy43IDAgMTkxLTYxLjUgMTkxLTE0NCAwLTUzLjEtMjQuNS0xMDkuNi0xMjEuMy0xMzEuMnoifX1dfSxuYW1lOiJza3lwZSIsdGhlbWU6Im91dGxpbmVkIn0sSks9UUsscUs9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246Skt9KSl9LGVfPXQuZm9yd2FyZFJlZihxSyksdF89ZV8sbl89e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0ek0zNjEuNSA1ODAuMmMwIDI3LjgtMjIuNSA1MC40LTUwLjMgNTAuNGE1MC4zNSA1MC4zNSAwIDAxLTUwLjMtNTAuNGMwLTI3LjggMjIuNS01MC40IDUwLjMtNTAuNGg1MC4zdjUwLjR6bTEzNCAxMzQuNGMwIDI3LjgtMjIuNSA1MC40LTUwLjMgNTAuNC0yNy44IDAtNTAuMy0yMi42LTUwLjMtNTAuNFY1ODAuMmMwLTI3LjggMjIuNS01MC40IDUwLjMtNTAuNGE1MC4zNSA1MC4zNSAwIDAxNTAuMyA1MC40djEzNC40em0tNTAuMi0yMTguNGgtMTM0Yy0yNy44IDAtNTAuMy0yMi42LTUwLjMtNTAuNCAwLTI3LjggMjIuNS01MC40IDUwLjMtNTAuNGgxMzRjMjcuOCAwIDUwLjMgMjIuNiA1MC4zIDUwLjQtLjEgMjcuOS0yMi42IDUwLjQtNTAuMyA1MC40em0wLTEzNC40Yy0xMy4zIDAtMjYuMS01LjMtMzUuNi0xNC44UzM5NSAzMjQuOCAzOTUgMzExLjRjMC0yNy44IDIyLjUtNTAuNCA1MC4zLTUwLjQgMjcuOCAwIDUwLjMgMjIuNiA1MC4zIDUwLjR2NTAuNGgtNTAuM3ptODMuNy01MC40YzAtMjcuOCAyMi41LTUwLjQgNTAuMy01MC40IDI3LjggMCA1MC4zIDIyLjYgNTAuMyA1MC40djEzNC40YzAgMjcuOC0yMi41IDUwLjQtNTAuMyA1MC40LTI3LjggMC01MC4zLTIyLjYtNTAuMy01MC40VjMxMS40ek01NzkuMyA3NjVjLTI3LjggMC01MC4zLTIyLjYtNTAuMy01MC40di01MC40aDUwLjNjMjcuOCAwIDUwLjMgMjIuNiA1MC4zIDUwLjQgMCAyNy44LTIyLjUgNTAuNC01MC4zIDUwLjR6bTEzNC0xMzQuNGgtMTM0Yy0xMy4zIDAtMjYuMS01LjMtMzUuNi0xNC44UzUyOSA1OTMuNiA1MjkgNTgwLjJjMC0yNy44IDIyLjUtNTAuNCA1MC4zLTUwLjRoMTM0YzI3LjggMCA1MC4zIDIyLjYgNTAuMyA1MC40IDAgMjcuOC0yMi41IDUwLjQtNTAuMyA1MC40em0wLTEzNC40SDY2M3YtNTAuNGMwLTI3LjggMjIuNS01MC40IDUwLjMtNTAuNHM1MC4zIDIyLjYgNTAuMyA1MC40YzAgMjcuOC0yMi41IDUwLjQtNTAuMyA1MC40eiJ9fV19LG5hbWU6InNsYWNrLWNpcmNsZSIsdGhlbWU6ImZpbGxlZCJ9LHJfPW5fLGFfPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOnJffSkpfSxvXz10LmZvcndhcmRSZWYoYV8pLGlfPW9fLGxfPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00MDkuNCAxMjhjLTQyLjQgMC03Ni43IDM0LjQtNzYuNyA3Ni44IDAgMjAuMyA4LjEgMzkuOSAyMi40IDU0LjNhNzYuNzQgNzYuNzQgMCAwMDU0LjMgMjIuNWg3Ni43di03Ni44YzAtNDIuMy0zNC4zLTc2LjctNzYuNy03Ni44em0wIDIwNC44SDIwNC43Yy00Mi40IDAtNzYuNyAzNC40LTc2LjcgNzYuOHMzNC40IDc2LjggNzYuNyA3Ni44aDIwNC42YzQyLjQgMCA3Ni43LTM0LjQgNzYuNy03Ni44LjEtNDIuNC0zNC4zLTc2LjgtNzYuNi03Ni44ek02MTQgNDg2LjRjNDIuNCAwIDc2LjgtMzQuNCA3Ni43LTc2LjhWMjA0LjhjMC00Mi40LTM0LjMtNzYuOC03Ni43LTc2LjgtNDIuNCAwLTc2LjcgMzQuNC03Ni43IDc2Ljh2MjA0LjhjMCA0Mi41IDM0LjMgNzYuOCA3Ni43IDc2Ljh6bTI4MS40LTc2LjhjMC00Mi40LTM0LjQtNzYuOC03Ni43LTc2LjhTNzQyIDM2Ny4yIDc0MiA0MDkuNnY3Ni44aDc2LjdjNDIuMyAwIDc2LjctMzQuNCA3Ni43LTc2Ljh6bS03Ni44IDEyOEg2MTRjLTQyLjQgMC03Ni43IDM0LjQtNzYuNyA3Ni44IDAgMjAuMyA4LjEgMzkuOSAyMi40IDU0LjNhNzYuNzQgNzYuNzQgMCAwMDU0LjMgMjIuNWgyMDQuNmM0Mi40IDAgNzYuNy0zNC40IDc2LjctNzYuOC4xLTQyLjQtMzQuMy03Ni43LTc2LjctNzYuOHpNNjE0IDc0Mi40aC03Ni43djc2LjhjMCA0Mi40IDM0LjQgNzYuOCA3Ni43IDc2LjggNDIuNCAwIDc2LjgtMzQuNCA3Ni43LTc2LjguMS00Mi40LTM0LjMtNzYuNy03Ni43LTc2Ljh6TTQwOS40IDUzNy42Yy00Mi40IDAtNzYuNyAzNC40LTc2LjcgNzYuOHYyMDQuOGMwIDQyLjQgMzQuNCA3Ni44IDc2LjcgNzYuOCA0Mi40IDAgNzYuOC0zNC40IDc2LjctNzYuOFY2MTQuNGMwLTIwLjMtOC4xLTM5LjktMjIuNC01NC4zYTc2LjkyIDc2LjkyIDAgMDAtNTQuMy0yMi41ek0xMjggNjE0LjRjMCAyMC4zIDguMSAzOS45IDIyLjQgNTQuM2E3Ni43NCA3Ni43NCAwIDAwNTQuMyAyMi41YzQyLjQgMCA3Ni44LTM0LjQgNzYuNy03Ni44di03Ni44aC03Ni43Yy00Mi4zIDAtNzYuNyAzNC40LTc2LjcgNzYuOHoifX1dfSxuYW1lOiJzbGFjayIsdGhlbWU6Im91dGxpbmVkIn0sc189bF8sY189ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246c199KSl9LHVfPXQuZm9yd2FyZFJlZihjXyksZF89dV8sZl89e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNTI5IDMxMS40YzAtMjcuOCAyMi41LTUwLjQgNTAuMy01MC40IDI3LjggMCA1MC4zIDIyLjYgNTAuMyA1MC40djEzNC40YzAgMjcuOC0yMi41IDUwLjQtNTAuMyA1MC40LTI3LjggMC01MC4zLTIyLjYtNTAuMy01MC40VjMxMS40ek0zNjEuNSA1ODAuMmMwIDI3LjgtMjIuNSA1MC40LTUwLjMgNTAuNGE1MC4zNSA1MC4zNSAwIDAxLTUwLjMtNTAuNGMwLTI3LjggMjIuNS01MC40IDUwLjMtNTAuNGg1MC4zdjUwLjR6bTEzNCAxMzQuNGMwIDI3LjgtMjIuNSA1MC40LTUwLjMgNTAuNC0yNy44IDAtNTAuMy0yMi42LTUwLjMtNTAuNFY1ODAuMmMwLTI3LjggMjIuNS01MC40IDUwLjMtNTAuNGE1MC4zNSA1MC4zNSAwIDAxNTAuMyA1MC40djEzNC40em0tNTAuMi0yMTguNGgtMTM0Yy0yNy44IDAtNTAuMy0yMi42LTUwLjMtNTAuNCAwLTI3LjggMjIuNS01MC40IDUwLjMtNTAuNGgxMzRjMjcuOCAwIDUwLjMgMjIuNiA1MC4zIDUwLjQtLjEgMjcuOS0yMi42IDUwLjQtNTAuMyA1MC40em0wLTEzNC40Yy0xMy4zIDAtMjYuMS01LjMtMzUuNi0xNC44UzM5NSAzMjQuOCAzOTUgMzExLjRjMC0yNy44IDIyLjUtNTAuNCA1MC4zLTUwLjQgMjcuOCAwIDUwLjMgMjIuNiA1MC4zIDUwLjR2NTAuNGgtNTAuM3ptMTM0IDQwMy4yYy0yNy44IDAtNTAuMy0yMi42LTUwLjMtNTAuNHYtNTAuNGg1MC4zYzI3LjggMCA1MC4zIDIyLjYgNTAuMyA1MC40IDAgMjcuOC0yMi41IDUwLjQtNTAuMyA1MC40em0xMzQtMTM0LjRoLTEzNGE1MC4zNSA1MC4zNSAwIDAxLTUwLjMtNTAuNGMwLTI3LjggMjIuNS01MC40IDUwLjMtNTAuNGgxMzRjMjcuOCAwIDUwLjMgMjIuNiA1MC4zIDUwLjQgMCAyNy44LTIyLjUgNTAuNC01MC4zIDUwLjR6bTAtMTM0LjRINjYzdi01MC40YzAtMjcuOCAyMi41LTUwLjQgNTAuMy01MC40czUwLjMgMjIuNiA1MC4zIDUwLjRjMCAyNy44LTIyLjUgNTAuNC01MC4zIDUwLjR6In19XX0sbmFtZToic2xhY2stc3F1YXJlIix0aGVtZToiZmlsbGVkIn0sdl89Zl8saF89ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246dl99KSl9LG1fPXQuZm9yd2FyZFJlZihoXyksZ189bV8scF89e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNTI5IDMxMS40YzAtMjcuOCAyMi41LTUwLjQgNTAuMy01MC40IDI3LjggMCA1MC4zIDIyLjYgNTAuMyA1MC40djEzNC40YzAgMjcuOC0yMi41IDUwLjQtNTAuMyA1MC40LTI3LjggMC01MC4zLTIyLjYtNTAuMy01MC40VjMxMS40ek0zNjEuNSA1ODAuMmMwIDI3LjgtMjIuNSA1MC40LTUwLjMgNTAuNGE1MC4zNSA1MC4zNSAwIDAxLTUwLjMtNTAuNGMwLTI3LjggMjIuNS01MC40IDUwLjMtNTAuNGg1MC4zdjUwLjR6bTEzNCAxMzQuNGMwIDI3LjgtMjIuNSA1MC40LTUwLjMgNTAuNC0yNy44IDAtNTAuMy0yMi42LTUwLjMtNTAuNFY1ODAuMmMwLTI3LjggMjIuNS01MC40IDUwLjMtNTAuNGE1MC4zNSA1MC4zNSAwIDAxNTAuMyA1MC40djEzNC40em0tNTAuMi0yMTguNGgtMTM0Yy0yNy44IDAtNTAuMy0yMi42LTUwLjMtNTAuNCAwLTI3LjggMjIuNS01MC40IDUwLjMtNTAuNGgxMzRjMjcuOCAwIDUwLjMgMjIuNiA1MC4zIDUwLjQtLjEgMjcuOS0yMi42IDUwLjQtNTAuMyA1MC40em0wLTEzNC40Yy0xMy4zIDAtMjYuMS01LjMtMzUuNi0xNC44UzM5NSAzMjQuOCAzOTUgMzExLjRjMC0yNy44IDIyLjUtNTAuNCA1MC4zLTUwLjQgMjcuOCAwIDUwLjMgMjIuNiA1MC4zIDUwLjR2NTAuNGgtNTAuM3ptMTM0IDQwMy4yYy0yNy44IDAtNTAuMy0yMi42LTUwLjMtNTAuNHYtNTAuNGg1MC4zYzI3LjggMCA1MC4zIDIyLjYgNTAuMyA1MC40IDAgMjcuOC0yMi41IDUwLjQtNTAuMyA1MC40em0xMzQtMTM0LjRoLTEzNGE1MC4zNSA1MC4zNSAwIDAxLTUwLjMtNTAuNGMwLTI3LjggMjIuNS01MC40IDUwLjMtNTAuNGgxMzRjMjcuOCAwIDUwLjMgMjIuNiA1MC4zIDUwLjQgMCAyNy44LTIyLjUgNTAuNC01MC4zIDUwLjR6bTAtMTM0LjRINjYzdi01MC40YzAtMjcuOCAyMi41LTUwLjQgNTAuMy01MC40czUwLjMgMjIuNiA1MC4zIDUwLjRjMCAyNy44LTIyLjUgNTAuNC01MC4zIDUwLjR6In19XX0sbmFtZToic2xhY2stc3F1YXJlIix0aGVtZToib3V0bGluZWQifSx5Xz1wXyxDXz1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjp5X30pKX0sYl89dC5mb3J3YXJkUmVmKENfKSxTXz1iXyxPXz17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTA0IDI5NmgtNjZ2LTk2YzAtNC40LTMuNi04LTgtOGgtNTJjLTQuNCAwLTggMy42LTggOHY5NmgtNjZjLTQuNCAwLTggMy42LTggOHY0MTZjMCA0LjQgMy42IDggOCA4aDY2djk2YzAgNC40IDMuNiA4IDggOGg1MmM0LjQgMCA4LTMuNiA4LTh2LTk2aDY2YzQuNCAwIDgtMy42IDgtOFYzMDRjMC00LjQtMy42LTgtOC04em0tNTg0LTcyaC02NnYtNTZjMC00LjQtMy42LTgtOC04aC01MmMtNC40IDAtOCAzLjYtOCA4djU2aC02NmMtNC40IDAtOCAzLjYtOCA4djU2MGMwIDQuNCAzLjYgOCA4IDhoNjZ2NTZjMCA0LjQgMy42IDggOCA4aDUyYzQuNCAwIDgtMy42IDgtOHYtNTZoNjZjNC40IDAgOC0zLjYgOC04VjIzMmMwLTQuNC0zLjYtOC04LTh6bTI5MiAxODBoLTY2VjIzMmMwLTQuNC0zLjYtOC04LThoLTUyYy00LjQgMC04IDMuNi04IDh2MTcyaC02NmMtNC40IDAtOCAzLjYtOCA4djIwMGMwIDQuNCAzLjYgOCA4IDhoNjZ2MTcyYzAgNC40IDMuNiA4IDggOGg1MmM0LjQgMCA4LTMuNiA4LThWNjIwaDY2YzQuNCAwIDgtMy42IDgtOFY0MTJjMC00LjQtMy42LTgtOC04eiJ9fV19LG5hbWU6InNsaWRlcnMiLHRoZW1lOiJmaWxsZWQifSx4Xz1PXyx3Xz1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjp4X30pKX0sRV89dC5mb3J3YXJkUmVmKHdfKSxUXz1FXyxNXz17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMzIwIDIyNGgtNjZ2LTU2YzAtNC40LTMuNi04LTgtOGgtNTJjLTQuNCAwLTggMy42LTggOHY1NmgtNjZjLTQuNCAwLTggMy42LTggOHY1NjBjMCA0LjQgMy42IDggOCA4aDY2djU2YzAgNC40IDMuNiA4IDggOGg1MmM0LjQgMCA4LTMuNiA4LTh2LTU2aDY2YzQuNCAwIDgtMy42IDgtOFYyMzJjMC00LjQtMy42LTgtOC04em0tNjAgNTA4aC04MFYyOTJoODB2NDQwem02NDQtNDM2aC02NnYtOTZjMC00LjQtMy42LTgtOC04aC01MmMtNC40IDAtOCAzLjYtOCA4djk2aC02NmMtNC40IDAtOCAzLjYtOCA4djQxNmMwIDQuNCAzLjYgOCA4IDhoNjZ2OTZjMCA0LjQgMy42IDggOCA4aDUyYzQuNCAwIDgtMy42IDgtOHYtOTZoNjZjNC40IDAgOC0zLjYgOC04VjMwNGMwLTQuNC0zLjYtOC04LTh6bS02MCAzNjRoLTgwVjM2NGg4MHYyOTZ6TTYxMiA0MDRoLTY2VjIzMmMwLTQuNC0zLjYtOC04LThoLTUyYy00LjQgMC04IDMuNi04IDh2MTcyaC02NmMtNC40IDAtOCAzLjYtOCA4djIwMGMwIDQuNCAzLjYgOCA4IDhoNjZ2MTcyYzAgNC40IDMuNiA4IDggOGg1MmM0LjQgMCA4LTMuNiA4LThWNjIwaDY2YzQuNCAwIDgtMy42IDgtOFY0MTJjMC00LjQtMy42LTgtOC04em0tNjAgMTQ1YTMgMyAwIDAxLTMgM2gtNzRhMyAzIDAgMDEtMy0zdi03NGEzIDMgMCAwMTMtM2g3NGEzIDMgMCAwMTMgM3Y3NHoifX1dfSxuYW1lOiJzbGlkZXJzIix0aGVtZToib3V0bGluZWQifSxSXz1NXyxJXz1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpSX30pKX0sUF89dC5mb3J3YXJkUmVmKElfKSx6Xz1QXyxGXz17aWNvbjpmdW5jdGlvbihmLHYpe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0xODAgMjkyaDgwdjQ0MGgtODB6bTM2OSAxODBoLTc0YTMgMyAwIDAwLTMgM3Y3NGEzIDMgMCAwMDMgM2g3NGEzIDMgMCAwMDMtM3YtNzRhMyAzIDAgMDAtMy0zem0yMTUtMTA4aDgwdjI5NmgtODB6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkwNCAyOTZoLTY2di05NmMwLTQuNC0zLjYtOC04LThoLTUyYy00LjQgMC04IDMuNi04IDh2OTZoLTY2Yy00LjQgMC04IDMuNi04IDh2NDE2YzAgNC40IDMuNiA4IDggOGg2NnY5NmMwIDQuNCAzLjYgOCA4IDhoNTJjNC40IDAgOC0zLjYgOC04di05Nmg2NmM0LjQgMCA4LTMuNiA4LThWMzA0YzAtNC40LTMuNi04LTgtOHptLTYwIDM2NGgtODBWMzY0aDgwdjI5NnpNNjEyIDQwNGgtNjZWMjMyYzAtNC40LTMuNi04LTgtOGgtNTJjLTQuNCAwLTggMy42LTggOHYxNzJoLTY2Yy00LjQgMC04IDMuNi04IDh2MjAwYzAgNC40IDMuNiA4IDggOGg2NnYxNzJjMCA0LjQgMy42IDggOCA4aDUyYzQuNCAwIDgtMy42IDgtOFY2MjBoNjZjNC40IDAgOC0zLjYgOC04VjQxMmMwLTQuNC0zLjYtOC04LTh6bS02MCAxNDVhMyAzIDAgMDEtMyAzaC03NGEzIDMgMCAwMS0zLTN2LTc0YTMgMyAwIDAxMy0zaDc0YTMgMyAwIDAxMyAzdjc0ek0zMjAgMjI0aC02NnYtNTZjMC00LjQtMy42LTgtOC04aC01MmMtNC40IDAtOCAzLjYtOCA4djU2aC02NmMtNC40IDAtOCAzLjYtOCA4djU2MGMwIDQuNCAzLjYgOCA4IDhoNjZ2NTZjMCA0LjQgMy42IDggOCA4aDUyYzQuNCAwIDgtMy42IDgtOHYtNTZoNjZjNC40IDAgOC0zLjYgOC04VjIzMmMwLTQuNC0zLjYtOC04LTh6bS02MCA1MDhoLTgwVjI5Mmg4MHY0NDB6IixmaWxsOmZ9fV19fSxuYW1lOiJzbGlkZXJzIix0aGVtZToidHdvdG9uZSJ9LEFfPUZfLExfPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkFffSkpfSxaXz10LmZvcndhcmRSZWYoTF8pLCRfPVpfLEhfPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0xMTIgNDc2aDcydjcyaC03MnptMTgyIDBoNzJ2NzJoLTcyem0zNjQgMGg3MnY3MmgtNzJ6bTE4MiAwaDcydjcyaC03MnptLTM2NCAwaDcydjcyaC03MnoifX1dfSxuYW1lOiJzbWFsbC1kYXNoIix0aGVtZToib3V0bGluZWQifSxEXz1IXyxCXz1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpEX30pKX0sVl89dC5mb3J3YXJkUmVmKEJfKSxOXz1WXyxqXz17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6TTI4OCA0MjFhNDguMDEgNDguMDEgMCAwMTk2IDAgNDguMDEgNDguMDEgMCAwMS05NiAwem0yMjQgMjcyYy04NS41IDAtMTU1LjYtNjcuMy0xNjAtMTUxLjZhOCA4IDAgMDE4LTguNGg0OC4xYzQuMiAwIDcuOCAzLjIgOC4xIDcuNEM0MjAgNTg5LjkgNDYxLjUgNjI5IDUxMiA2MjlzOTIuMS0zOS4xIDk1LjgtODguNmMuMy00LjIgMy45LTcuNCA4LjEtNy40SDY2NGE4IDggMCAwMTggOC40QzY2Ny42IDYyNS43IDU5Ny41IDY5MyA1MTIgNjkzem0xNzYtMjI0YTQ4LjAxIDQ4LjAxIDAgMDEwLTk2IDQ4LjAxIDQ4LjAxIDAgMDEwIDk2eiJ9fV19LG5hbWU6InNtaWxlIix0aGVtZToiZmlsbGVkIn0sVV89al8sV189ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246VV99KSl9LGtfPXQuZm9yd2FyZFJlZihXXyksS189a18sX189e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTI4OCA0MjFhNDggNDggMCAxMDk2IDAgNDggNDggMCAxMC05NiAwem0zNTIgMGE0OCA0OCAwIDEwOTYgMCA0OCA0OCAwIDEwLTk2IDB6TTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0yNjMgNzExYy0zNC4yIDM0LjItNzQgNjEtMTE4LjMgNzkuOEM2MTEgODc0LjIgNTYyLjMgODg0IDUxMiA4ODRjLTUwLjMgMC05OS05LjgtMTQ0LjgtMjkuMkEzNzAuNCAzNzAuNCAwIDAxMjQ4LjkgNzc1Yy0zNC4yLTM0LjItNjEtNzQtNzkuOC0xMTguM0MxNDkuOCA2MTEgMTQwIDU2Mi4zIDE0MCA1MTJzOS44LTk5IDI5LjItMTQ0LjhBMzcwLjQgMzcwLjQgMCAwMTI0OSAyNDguOWMzNC4yLTM0LjIgNzQtNjEgMTE4LjMtNzkuOEM0MTMgMTQ5LjggNDYxLjcgMTQwIDUxMiAxNDBjNTAuMyAwIDk5IDkuOCAxNDQuOCAyOS4yQTM3MC40IDM3MC40IDAgMDE3NzUuMSAyNDljMzQuMiAzNC4yIDYxIDc0IDc5LjggMTE4LjNDODc0LjIgNDEzIDg4NCA0NjEuNyA4ODQgNTEycy05LjggOTktMjkuMiAxNDQuOEEzNjguODkgMzY4Ljg5IDAgMDE3NzUgNzc1ek02NjQgNTMzaC00OC4xYy00LjIgMC03LjggMy4yLTguMSA3LjRDNjA0IDU4OS45IDU2Mi41IDYyOSA1MTIgNjI5cy05Mi4xLTM5LjEtOTUuOC04OC42Yy0uMy00LjItMy45LTcuNC04LjEtNy40SDM2MGE4IDggMCAwMC04IDguNGM0LjQgODQuMyA3NC41IDE1MS42IDE2MCAxNTEuNnMxNTUuNi02Ny4zIDE2MC0xNTEuNmE4IDggMCAwMC04LTguNHoifX1dfSxuYW1lOiJzbWlsZSIsdGhlbWU6Im91dGxpbmVkIn0sR189X18sWV89ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246R199KSl9LFhfPXQuZm9yd2FyZFJlZihZXyksUV89WF8sSl89e2ljb246ZnVuY3Rpb24oZix2KXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeiIsZmlsbDpmfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgMTQwYy0yMDUuNCAwLTM3MiAxNjYuNi0zNzIgMzcyczE2Ni42IDM3MiAzNzIgMzcyIDM3Mi0xNjYuNiAzNzItMzcyLTE2Ni42LTM3Mi0zNzItMzcyek0yODggNDIxYTQ4LjAxIDQ4LjAxIDAgMDE5NiAwIDQ4LjAxIDQ4LjAxIDAgMDEtOTYgMHptMjI0IDI3MmMtODUuNSAwLTE1NS42LTY3LjMtMTYwLTE1MS42YTggOCAwIDAxOC04LjRoNDguMWM0LjIgMCA3LjggMy4yIDguMSA3LjRDNDIwIDU4OS45IDQ2MS41IDYyOSA1MTIgNjI5czkyLjEtMzkuMSA5NS44LTg4LjZjLjMtNC4yIDMuOS03LjQgOC4xLTcuNEg2NjRhOCA4IDAgMDE4IDguNEM2NjcuNiA2MjUuNyA1OTcuNSA2OTMgNTEyIDY5M3ptMTc2LTIyNGE0OC4wMSA0OC4wMSAwIDAxMC05NiA0OC4wMSA0OC4wMSAwIDAxMCA5NnoiLGZpbGw6dn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMjg4IDQyMWE0OCA0OCAwIDEwOTYgMCA0OCA0OCAwIDEwLTk2IDB6bTM3NiAxMTJoLTQ4LjFjLTQuMiAwLTcuOCAzLjItOC4xIDcuNC0zLjcgNDkuNS00NS4zIDg4LjYtOTUuOCA4OC42cy05Mi0zOS4xLTk1LjgtODguNmMtLjMtNC4yLTMuOS03LjQtOC4xLTcuNEgzNjBhOCA4IDAgMDAtOCA4LjRjNC40IDg0LjMgNzQuNSAxNTEuNiAxNjAgMTUxLjZzMTU1LjYtNjcuMyAxNjAtMTUxLjZhOCA4IDAgMDAtOC04LjR6bS0yNC0xMTJhNDggNDggMCAxMDk2IDAgNDggNDggMCAxMC05NiAweiIsZmlsbDpmfX1dfX0sbmFtZToic21pbGUiLHRoZW1lOiJ0d290b25lIn0scV89Sl8sZUc9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246cV99KSl9LHRHPXQuZm9yd2FyZFJlZihlRyksbkc9dEcsckc9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTgzMiAxMTJINzI0VjcyYzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY0MEg1MDBWNzJjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djQwSDMyMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MTIwaC05NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDUxMmMxNy43IDAgMzItMTQuMyAzMi0zMnYtOTZoOTZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek02NjQgNDg2SDUxNFYzMzZoLjJMNjY0IDQ4NS44di4yem0xMjggMjc0aC01NlY0NTZMNTQ0IDI2NEgzNjB2LTgwaDY4djMyYzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTMyaDE1MnYzMmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di0zMmg2OHY1NzZ6In19XX0sbmFtZToic25pcHBldHMiLHRoZW1lOiJmaWxsZWQifSxhRz1yRyxvRz1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjphR30pKX0saUc9dC5mb3J3YXJkUmVmKG9HKSxsRz1pRyxzRz17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODMyIDExMkg3MjRWNzJjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djQwSDUwMFY3MmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NDBIMzIwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnYxMjBoLTk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY2MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNTEyYzE3LjcgMCAzMi0xNC4zIDMyLTMydi05Nmg5NmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTY2NCA4ODhIMjMyVjMzNmgyMTh2MTc0YzAgMjIuMSAxNy45IDQwIDQwIDQwaDE3NHYzMzh6bTAtNDAySDUxNFYzMzZoLjJMNjY0IDQ4NS44di4yem0xMjggMjc0aC01NlY0NTZMNTQ0IDI2NEgzNjB2LTgwaDY4djMyYzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTMyaDE1MnYzMmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di0zMmg2OHY1NzZ6In19XX0sbmFtZToic25pcHBldHMiLHRoZW1lOiJvdXRsaW5lZCJ9LGNHPXNHLHVHPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOmNHfSkpfSxkRz10LmZvcndhcmRSZWYodUcpLGZHPWRHLHZHPXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQ1MCA1MTBWMzM2SDIzMnY1NTJoNDMyVjU1MEg0OTBjLTIyLjEgMC00MC0xNy45LTQwLTQweiIsZmlsbDp2fX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04MzIgMTEySDcyNFY3MmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NDBINTAwVjcyYzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY0MEgzMjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjEyMGgtOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjYzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg1MTJjMTcuNyAwIDMyLTE0LjMgMzItMzJ2LTk2aDk2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNjY0IDg4OEgyMzJWMzM2aDIxOHYxNzRjMCAyMi4xIDE3LjkgNDAgNDAgNDBoMTc0djMzOHptMC00MDJINTE0VjMzNmguMkw2NjQgNDg1Ljh2LjJ6bTEyOCAyNzRoLTU2VjQ1Nkw1NDQgMjY0SDM2MHYtODBoNjh2MzJjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtMzJoMTUydjMyYzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTMyaDY4djU3NnoiLGZpbGw6Zn19XX19LG5hbWU6InNuaXBwZXRzIix0aGVtZToidHdvdG9uZSJ9LGhHPXZHLG1HPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOmhHfSkpfSxnRz10LmZvcndhcmRSZWYobUcpLHBHPWdHLHlHPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02ODggMjY0YzAtNC40LTMuNi04LTgtOEgyOTZjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMzg0YzQuNCAwIDgtMy42IDgtOHYtNDh6bS04IDEzNkgyOTZjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMzg0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04ek00ODAgNTQ0SDI5NmMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgxODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6bS00OCAzMDhIMjA4VjE0OGg1NjB2MzQ0YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LThWMTA4YzAtMTcuNy0xNC4zLTMyLTMyLTMySDE2OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2Nzg0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDI2NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMzU2LjgtNzQuNGMyOS0yNi4zIDQ3LjItNjQuMyA0Ny4yLTEwNi42IDAtNzkuNS02NC41LTE0NC0xNDQtMTQ0cy0xNDQgNjQuNS0xNDQgMTQ0YzAgNDIuMyAxOC4yIDgwLjMgNDcuMiAxMDYuNi01NyAzMi41LTk2LjIgOTIuNy05OS4yIDE2Mi4xLS4yIDQuNSAzLjUgOC4zIDggOC4zaDQ4LjFjNC4yIDAgNy43LTMuMyA4LTcuNkM1NjQgODcxLjIgNjIxLjcgODE2IDY5MiA4MTZzMTI4IDU1LjIgMTMxLjkgMTI0LjRjLjIgNC4yIDMuNyA3LjYgOCA3LjZIODgwYzQuNiAwIDguMi0zLjggOC04LjMtMi45LTY5LjUtNDIuMi0xMjkuNi05OS4yLTE2Mi4xek02OTIgNTkxYzQ0LjIgMCA4MCAzNS44IDgwIDgwcy0zNS44IDgwLTgwIDgwLTgwLTM1LjgtODAtODAgMzUuOC04MCA4MC04MHoifX1dfSxuYW1lOiJzb2x1dGlvbiIsdGhlbWU6Im91dGxpbmVkIn0sQ0c9eUcsYkc9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246Q0d9KSl9LFNHPXQuZm9yd2FyZFJlZihiRyksT0c9U0cseEc9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTgzOS42IDQzMy44TDc0OSAxNTAuNWE5LjI0IDkuMjQgMCAwMC04LjktNi41aC03Ny40Yy00LjEgMC03LjYgMi42LTguOSA2LjVsLTkxLjMgMjgzLjNjLS4zLjktLjUgMS45LS41IDIuOSAwIDUuMSA0LjIgOS4zIDkuMyA5LjNoNTYuNGM0LjIgMCA3LjgtMi44IDktNi44bDE3LjUtNjEuNmg4OWwxNy4zIDYxLjVjMS4xIDQgNC44IDYuOCA5IDYuOGg2MS4yYzEgMCAxLjktLjEgMi44LS40IDIuNC0uOCA0LjMtMi40IDUuNS00LjYgMS4xLTIuMiAxLjMtNC43LjYtNy4xek02NjMuMyAzMjUuNWwzMi44LTExNi45aDYuM2wzMi4xIDExNi45aC03MS4yem0xNDMuNSA0OTIuOUg2NzcuMnYtLjRsMTMyLjYtMTg4LjljMS4xLTEuNiAxLjctMy40IDEuNy01LjR2LTM2LjRjMC01LjEtNC4yLTkuMy05LjMtOS4zaC0yMDRjLTUuMSAwLTkuMyA0LjItOS4zIDkuM3Y0M2MwIDUuMSA0LjIgOS4zIDkuMyA5LjNoMTIyLjZ2LjRMNTg3LjcgODI4LjlhOS4zNSA5LjM1IDAgMDAtMS43IDUuNHYzNi40YzAgNS4xIDQuMiA5LjMgOS4zIDkuM2gyMTEuNGM1LjEgMCA5LjMtNC4yIDkuMy05LjN2LTQzYTkuMiA5LjIgMCAwMC05LjItOS4zek00MTYgNzAyaC03NlYxNzJjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djUzMGgtNzZjLTYuNyAwLTEwLjUgNy44LTYuMyAxM2wxMTIgMTQxLjlhOCA4IDAgMDAxMi42IDBsMTEyLTE0MS45YzQuMS01LjIuNC0xMy02LjMtMTN6In19XX0sbmFtZToic29ydC1hc2NlbmRpbmciLHRoZW1lOiJvdXRsaW5lZCJ9LHdHPXhHLEVHPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOndHfSkpfSxURz10LmZvcndhcmRSZWYoRUcpLE1HPVRHLFJHPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04MzkuNiA0MzMuOEw3NDkgMTUwLjVhOS4yNCA5LjI0IDAgMDAtOC45LTYuNWgtNzcuNGMtNC4xIDAtNy42IDIuNi04LjkgNi41bC05MS4zIDI4My4zYy0uMy45LS41IDEuOS0uNSAyLjkgMCA1LjEgNC4yIDkuMyA5LjMgOS4zaDU2LjRjNC4yIDAgNy44LTIuOCA5LTYuOGwxNy41LTYxLjZoODlsMTcuMyA2MS41YzEuMSA0IDQuOCA2LjggOSA2LjhoNjEuMmMxIDAgMS45LS4xIDIuOC0uNCAyLjQtLjggNC4zLTIuNCA1LjUtNC42IDEuMS0yLjIgMS4zLTQuNy42LTcuMXpNNjYzLjMgMzI1LjVsMzIuOC0xMTYuOWg2LjNsMzIuMSAxMTYuOWgtNzEuMnptMTQzLjUgNDkyLjlINjc3LjJ2LS40bDEzMi42LTE4OC45YzEuMS0xLjYgMS43LTMuNCAxLjctNS40di0zNi40YzAtNS4xLTQuMi05LjMtOS4zLTkuM2gtMjA0Yy01LjEgMC05LjMgNC4yLTkuMyA5LjN2NDNjMCA1LjEgNC4yIDkuMyA5LjMgOS4zaDEyMi42di40TDU4Ny43IDgyOC45YTkuMzUgOS4zNSAwIDAwLTEuNyA1LjR2MzYuNGMwIDUuMSA0LjIgOS4zIDkuMyA5LjNoMjExLjRjNS4xIDAgOS4zLTQuMiA5LjMtOS4zdi00M2E5LjIgOS4yIDAgMDAtOS4yLTkuM3pNMzEwLjMgMTY3LjFhOCA4IDAgMDAtMTIuNiAwTDE4NS43IDMwOWMtNC4yIDUuMy0uNCAxMyA2LjMgMTNoNzZ2NTMwYzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LThWMzIyaDc2YzYuNyAwIDEwLjUtNy44IDYuMy0xM2wtMTEyLTE0MS45eiJ9fV19LG5hbWU6InNvcnQtZGVzY2VuZGluZyIsdGhlbWU6Im91dGxpbmVkIn0sSUc9UkcsUEc9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246SUd9KSl9LHpHPXQuZm9yd2FyZFJlZihQRyksRkc9ekcsQUc9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg5Mi4xIDczNy44bC0xMTAuMy02My43YTE1LjkgMTUuOSAwIDAwLTIxLjcgNS45bC0xOS45IDM0LjVjLTQuNCA3LjYtMS44IDE3LjQgNS44IDIxLjhMODU2LjMgODAwYTE1LjkgMTUuOSAwIDAwMjEuNy01LjlsMTkuOS0zNC41YzQuNC03LjYgMS43LTE3LjQtNS44LTIxLjh6TTc2MCAzNDRhMTUuOSAxNS45IDAgMDAyMS43IDUuOUw4OTIgMjg2LjJjNy42LTQuNCAxMC4yLTE0LjIgNS44LTIxLjhMODc4IDIzMGExNS45IDE1LjkgMCAwMC0yMS43LTUuOUw3NDYgMjg3LjhhMTUuOTkgMTUuOTkgMCAwMC01LjggMjEuOEw3NjAgMzQ0em0xNzQgMTMySDgwNmMtOC44IDAtMTYgNy4yLTE2IDE2djQwYzAgOC44IDcuMiAxNiAxNiAxNmgxMjhjOC44IDAgMTYtNy4yIDE2LTE2di00MGMwLTguOC03LjItMTYtMTYtMTZ6TTYyNS45IDExNWMtNS45IDAtMTEuOSAxLjYtMTcuNCA1LjNMMjU0IDM1Mkg5MGMtOC44IDAtMTYgNy4yLTE2IDE2djI4OGMwIDguOCA3LjIgMTYgMTYgMTZoMTY0bDM1NC41IDIzMS43YzUuNSAzLjYgMTEuNiA1LjMgMTcuNCA1LjMgMTYuNyAwIDMyLjEtMTMuMyAzMi4xLTMyLjFWMTQ3LjFjMC0xOC44LTE1LjQtMzIuMS0zMi4xLTMyLjF6In19XX0sbmFtZToic291bmQiLHRoZW1lOiJmaWxsZWQifSxMRz1BRyxaRz1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpMR30pKX0sJEc9dC5mb3J3YXJkUmVmKFpHKSxIRz0kRyxERz17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNjI1LjkgMTE1Yy01LjkgMC0xMS45IDEuNi0xNy40IDUuM0wyNTQgMzUySDkwYy04LjggMC0xNiA3LjItMTYgMTZ2Mjg4YzAgOC44IDcuMiAxNiAxNiAxNmgxNjRsMzU0LjUgMjMxLjdjNS41IDMuNiAxMS42IDUuMyAxNy40IDUuMyAxNi43IDAgMzIuMS0xMy4zIDMyLjEtMzIuMVYxNDcuMWMwLTE4LjgtMTUuNC0zMi4xLTMyLjEtMzIuMXpNNTg2IDgwM0wyOTMuNCA2MTEuN2wtMTgtMTEuN0gxNDZWNDI0aDEyOS40bDE3LjktMTEuN0w1ODYgMjIxdjU4MnptMzQ4LTMyN0g4MDZjLTguOCAwLTE2IDcuMi0xNiAxNnY0MGMwIDguOCA3LjIgMTYgMTYgMTZoMTI4YzguOCAwIDE2LTcuMiAxNi0xNnYtNDBjMC04LjgtNy4yLTE2LTE2LTE2em0tNDEuOSAyNjEuOGwtMTEwLjMtNjMuN2ExNS45IDE1LjkgMCAwMC0yMS43IDUuOWwtMTkuOSAzNC41Yy00LjQgNy42LTEuOCAxNy40IDUuOCAyMS44TDg1Ni4zIDgwMGExNS45IDE1LjkgMCAwMDIxLjctNS45bDE5LjktMzQuNWM0LjQtNy42IDEuNy0xNy40LTUuOC0yMS44ek03NjAgMzQ0YTE1LjkgMTUuOSAwIDAwMjEuNyA1LjlMODkyIDI4Ni4yYzcuNi00LjQgMTAuMi0xNC4yIDUuOC0yMS44TDg3OCAyMzBhMTUuOSAxNS45IDAgMDAtMjEuNy01LjlMNzQ2IDI4Ny44YTE1Ljk5IDE1Ljk5IDAgMDAtNS44IDIxLjhMNzYwIDM0NHoifX1dfSxuYW1lOiJzb3VuZCIsdGhlbWU6Im91dGxpbmVkIn0sQkc9REcsVkc9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246Qkd9KSl9LE5HPXQuZm9yd2FyZFJlZihWRyksakc9TkcsVUc9e2ljb246ZnVuY3Rpb24oZix2KXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMjc1LjQgNDI0SDE0NnYxNzZoMTI5LjRsMTggMTEuN0w1ODYgODAzVjIyMUwyOTMuMyA0MTIuM3oiLGZpbGw6dn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODkyLjEgNzM3LjhsLTExMC4zLTYzLjdhMTUuOSAxNS45IDAgMDAtMjEuNyA1LjlsLTE5LjkgMzQuNWMtNC40IDcuNi0xLjggMTcuNCA1LjggMjEuOEw4NTYuMyA4MDBhMTUuOSAxNS45IDAgMDAyMS43LTUuOWwxOS45LTM0LjVjNC40LTcuNiAxLjctMTcuNC01LjgtMjEuOHpNOTM0IDQ3Nkg4MDZjLTguOCAwLTE2IDcuMi0xNiAxNnY0MGMwIDguOCA3LjIgMTYgMTYgMTZoMTI4YzguOCAwIDE2LTcuMiAxNi0xNnYtNDBjMC04LjgtNy4yLTE2LTE2LTE2ek03NjAgMzQ0YTE1LjkgMTUuOSAwIDAwMjEuNyA1LjlMODkyIDI4Ni4yYzcuNi00LjQgMTAuMi0xNC4yIDUuOC0yMS44TDg3OCAyMzBhMTUuOSAxNS45IDAgMDAtMjEuNy01LjlMNzQ2IDI4Ny44YTE1Ljk5IDE1Ljk5IDAgMDAtNS44IDIxLjhMNzYwIDM0NHpNNjI1LjkgMTE1Yy01LjkgMC0xMS45IDEuNi0xNy40IDUuM0wyNTQgMzUySDkwYy04LjggMC0xNiA3LjItMTYgMTZ2Mjg4YzAgOC44IDcuMiAxNiAxNiAxNmgxNjRsMzU0LjUgMjMxLjdjNS41IDMuNiAxMS42IDUuMyAxNy40IDUuMyAxNi43IDAgMzIuMS0xMy4zIDMyLjEtMzIuMVYxNDcuMWMwLTE4LjgtMTUuNC0zMi4xLTMyLjEtMzIuMXpNNTg2IDgwM0wyOTMuNCA2MTEuN2wtMTgtMTEuN0gxNDZWNDI0aDEyOS40bDE3LjktMTEuN0w1ODYgMjIxdjU4MnoiLGZpbGw6Zn19XX19LG5hbWU6InNvdW5kIix0aGVtZToidHdvdG9uZSJ9LFdHPVVHLGtHPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOldHfSkpfSxLRz10LmZvcndhcmRSZWYoa0cpLF9HPUtHLEdHPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoiZGVmcyIsYXR0cnM6e30sY2hpbGRyZW46W3t0YWc6InN0eWxlIixhdHRyczp7fX1dfSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkzOC4yIDUwOC40TDc4Ny4zIDM4OWMtMy0yLjQtNy4zLS4yLTcuMyAzLjZWNDc4SDYzNlYxODRoMjA0djEyOGMwIDIuMiAxLjggNCA0IDRoNjBjMi4yIDAgNC0xLjggNC00VjE0NGMwLTE1LjUtMTIuNS0yOC0yOC0yOEg1OTZjLTE1LjUgMC0yOCAxMi41LTI4IDI4djczNmMwIDE1LjUgMTIuNSAyOCAyOCAyOGgyODRjMTUuNSAwIDI4LTEyLjUgMjgtMjhWNzEyYzAtMi4yLTEuOC00LTQtNGgtNjBjLTIuMiAwLTQgMS44LTQgNHYxMjhINjM2VjU0NmgxNDR2ODUuNGMwIDMuOCA0LjQgNiA3LjMgMy42bDE1MC45LTExOS40YTQuNSA0LjUgMCAwMDAtNy4yek00MjggMTE2SDE0NGMtMTUuNSAwLTI4IDEyLjUtMjggMjh2MTY4YzAgMi4yIDEuOCA0IDQgNGg2MGMyLjIgMCA0LTEuOCA0LTRWMTg0aDIwNHYyOTRIMjQ0di04NS40YzAtMy44LTQuMy02LTcuMy0zLjZsLTE1MSAxMTkuNGE0LjUyIDQuNTIgMCAwMDAgNy4xbDE1MSAxMTkuNWMyLjkgMi4zIDcuMy4yIDcuMy0zLjZWNTQ2aDE0NHYyOTRIMTg0VjcxMmMwLTIuMi0xLjgtNC00LTRoLTYwYy0yLjIgMC00IDEuOC00IDR2MTY4YzAgMTUuNSAxMi41IDI4IDI4IDI4aDI4NGMxNS41IDAgMjgtMTIuNSAyOC0yOFYxNDRjMC0xNS41LTEyLjUtMjgtMjgtMjh6In19XX0sbmFtZToic3BsaXQtY2VsbHMiLHRoZW1lOiJvdXRsaW5lZCJ9LFlHPUdHLFhHPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOllHfSkpfSxRRz10LmZvcndhcmRSZWYoWEcpLEpHPVFHLHFHPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6eyJmaWxsLXJ1bGUiOiJldmVub2RkIix2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNzIxLjQyIDY5NS4xN2MwLTEyLjQ1LTUuODQtMjIuMzYtMTcuNS0yOS43NS03NS4wNi00NC43My0xNjEuOTgtNjcuMDktMjYwLjc1LTY3LjA5LTUxLjczIDAtMTA3LjUzIDYuNjEtMTY3LjQyIDE5Ljg0LTE2LjMzIDMuNS0yNC41IDEzLjYtMjQuNSAzMC4zMyAwIDcuNzggMi42MyAxNC40OSA3Ljg4IDIwLjEzIDUuMjUgNS42MyAxMi4xNSA4LjQ1IDIwLjcgOC40NSAxLjk1IDAgOS4xNC0xLjU1IDIxLjU5LTQuNjYgNTEuMzMtMTAuNSA5OC41OC0xNS43NSAxNDEuNzUtMTUuNzUgODcuODkgMCAxNjUuMDggMjAuMDIgMjMxLjU4IDYwLjA4IDcuMzkgNC4yOCAxMy44IDYuNDIgMTkuMjUgNi40MiA3LjM5IDAgMTMuOC0yLjYzIDE5LjI1LTcuODggNS40NC01LjI1IDguMTctMTEuOTYgOC4xNy0yMC4xMm01Ni0xMjUuNDJjMC0xNS41Ni02LjgtMjcuNDItMjAuNDItMzUuNTgtOTIuMTctNTQuODQtMTk4LjcyLTgyLjI1LTMxOS42Ny04Mi4yNS01OS41IDAtMTE4LjQxIDguMTYtMTc2Ljc1IDI0LjUtMTguNjYgNS4wNS0yOCAxNy41LTI4IDM3LjMzIDAgOS43MiAzLjQgMTcuOTkgMTAuMjEgMjQuOCA2LjggNi44IDE1LjA3IDEwLjIgMjQuOCAxMC4yIDIuNzIgMCA5LjkxLTEuNTYgMjEuNTgtNC42N2E1NTguMjcgNTU4LjI3IDAgMDExNDYuNDEtMTkuMjVjMTA4LjUgMCAyMDMuNCAyNC4xMSAyODQuNjcgNzIuMzQgOS4zMyA1LjA1IDE2LjcyIDcuNTggMjIuMTcgNy41OCA5LjcyIDAgMTcuOTgtMy40IDI0Ljc5LTEwLjIgNi44LTYuODEgMTAuMi0xNS4wOCAxMC4yLTI0LjhtNjMtMTQ0LjY3YzAtMTguMjctNy43Ny0zMS44OS0yMy4zMy00MC44My00OS0yOC4zOS0xMDUuOTctNDkuODgtMTcwLjkxLTY0LjQ2LTY0Ljk1LTE0LjU4LTEzMS42NC0yMS44Ny0yMDAuMDktMjEuODctNzkuMzMgMC0xNTAuMSA5LjE0LTIxMi4zMyAyNy40MWE0Ni4zIDQ2LjMgMCAwMC0yMi40NiAxNC44OGMtNi4wMyA3LjItOS4wNCAxNi42Mi05LjA0IDI4LjI5IDAgMTIuMDYgMy45OSAyMi4xNyAxMS45NiAzMC4zMyA3Ljk3IDguMTcgMTcuOTggMTIuMjUgMzAuMDQgMTIuMjUgNC4yOCAwIDEyLjA2LTEuNTUgMjMuMzMtNC42NiA1MS43My0xNC40IDExMS40Mi0yMS41OSAxNzkuMDktMjEuNTkgNjEuODMgMCAxMjIuMDEgNi42MSAxODAuNTQgMTkuODQgNTguNTMgMTMuMjIgMTA3LjgyIDMxLjcgMTQ3Ljg3IDU1LjQxIDguMTcgNC42NyAxNS45NSA3IDIzLjM0IDcgMTEuMjcgMCAyMS4xLTMuOTggMjkuNDYtMTEuOTYgOC4zNi03Ljk3IDEyLjU0LTE3Ljk4IDEyLjU0LTMwLjA0TTk2MCA1MTJjMCA4MS4yOC0yMC4wMyAxNTYuMjQtNjAuMDggMjI0Ljg4LTQwLjA2IDY4LjYzLTk0LjQgMTIyLjk4LTE2My4wNCAxNjMuMDRDNjY4LjI0IDkzOS45NyA1OTMuMjcgOTYwIDUxMiA5NjBzLTE1Ni4yNC0yMC4wMy0yMjQuODgtNjAuMDhjLTY4LjYzLTQwLjA2LTEyMi45OC05NC40LTE2My4wNC0xNjMuMDRDODQuMDMgNjY4LjI0IDY0IDU5My4yNyA2NCA1MTJzMjAuMDMtMTU2LjI0IDYwLjA4LTIyNC44OGM0MC4wNi02OC42MyA5NC40LTEyMi45OCAxNjMuMDUtMTYzLjA0QzM1NS43NSA4NC4wMyA0MzAuNzMgNjQgNTEyIDY0YzgxLjI4IDAgMTU2LjI0IDIwLjAzIDIyNC44OCA2MC4wOCA2OC42MyA0MC4wNiAxMjIuOTggOTQuNCAxNjMuMDQgMTYzLjA1QzkzOS45NyAzNTUuNzUgOTYwIDQzMC43MyA5NjAgNTEyIn19XX0sbmFtZToic3BvdGlmeSIsdGhlbWU6ImZpbGxlZCJ9LGVZPXFHLHRZPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOmVZfSkpfSxuWT10LmZvcndhcmRSZWYodFkpLHJZPW5ZLGFZPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6eyJmaWxsLXJ1bGUiOiJldmVub2RkIix2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC41MiA2NCA2NCAyNjQuNTIgNjQgNTEyczIwMC41MiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjUyIDQ0OC00NDhTNzU5LjQ4IDY0IDUxMiA2NG0wIDc0LjY2YTM3MS44NiAzNzEuODYgMCAwMTI2NC40MyAxMDguOTFBMzcxLjg2IDM3MS44NiAwIDAxODg1LjMzIDUxMmEzNzEuODYgMzcxLjg2IDAgMDEtMTA4LjkgMjY0LjQzQTM3MS44NiAzNzEuODYgMCAwMTUxMiA4ODUuMzNhMzcxLjg2IDM3MS44NiAwIDAxLTI2NC40My0xMDguOUEzNzEuODYgMzcxLjg2IDAgMDExMzguNjcgNTEyYTM3MS44NiAzNzEuODYgMCAwMTEwOC45LTI2NC40M0EzNzEuODYgMzcxLjg2IDAgMDE1MTIgMTM4LjY3TTQ1Mi40OSAzMTZjLTcyLjYxIDAtMTM1LjkgNi43Mi0xOTYgMjUuNjgtMTUuOSAzLjE4LTI5LjE2IDE1LjE2LTI5LjE2IDM3LjM0IDAgMjIuMTQgMTYuMzUgNDEuNyAzOC41IDM4LjQ1IDkuNDggMCAxNS45LTMuNDcgMjIuMTctMy40NyA1MC41OS0xMi43IDEwNy42My0xOC42NyAxNjQuNDktMTguNjcgMTEwLjU1IDAgMjI0IDI0LjY0IDI5OS44MiA2OC44NSA5LjQ5IDMuMiAxMi43IDYuOTggMjIuMTggNi45OCAyMi4xOCAwIDM3LjYzLTE2LjMyIDQwLjg0LTM4LjUgMC0xOC45Ni05LjQ4LTMxLjA2LTIyLjE3LTM3LjMzQzY5OC4zNiAzNDEuNjUgNTcyLjUyIDMxNiA0NTIuNDkgMzE2TTQ0MiA0NTQuODRjLTY2LjM0IDAtMTEzLjYgOS40OS0xNjEuMDIgMjIuMTgtMTUuNzIgNi4yMy0yNC40OSAxNi4wNS0yNC40OSAzNC45OCAwIDE1Ljc2IDEyLjU0IDMxLjUxIDMxLjUxIDMxLjUxIDYuNDIgMCA5LjE4LS4zIDE4LjY3LTMuNTEgMzQuNzItOS40OCA4Mi40LTE1LjE2IDEzMy4wMi0xNS4xNiAxMDQuMjMgMCAxOTQuOTUgMjUuMzkgMjYxLjMzIDY2LjUgNi4yMyAzLjIgMTIuNyA1LjgyIDIyLjE0IDUuODIgMTguOTYgMCAzMS41LTE2LjA2IDMxLjUtMzQuOTggMC0xMi43LTUuOTctMjUuMjQtMTguNjYtMzEuNTEtODIuMTMtNTAuNTktMTg2LjUyLTc1LjgzLTI5NC03NS44M20xMC40OSAxMzYuNWMtNTMuNjUgMC0xMDQuNTMgNS45Ny0xNTUuMTYgMTguNjYtMTIuNjkgMy4yMS0yMi4xNyAxMi4yNC0yMi4xNyAyOCAwIDEyLjcgOS45MyAyNS42OCAyNS42OCAyNS42OCAzLjIxIDAgMTIuNC0zLjUgMTguNjctMy41YTU4MS43MyA1ODEuNzMgMCAwMTEyOS41LTE1LjJjNzguOSAwIDE1MS4wNiAxOC45NyAyMTEuMTcgNTMuNjkgNi40MiAzLjIgMTMuNTUgNS44MiAxOS44MiA1LjgyIDEyLjcgMCAyNC43OS05LjQ4IDI4LTIyLjE0IDAtMTUuOS02Ljg3LTIxLjc2LTE2LjM1LTI4LTY5LjU1LTQxLjE0LTE1MC44LTYzLjAyLTIzOS4xNi02My4wMiJ9fV19LG5hbWU6InNwb3RpZnkiLHRoZW1lOiJvdXRsaW5lZCJ9LG9ZPWFZLGlZPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOm9ZfSkpfSxsWT10LmZvcndhcmRSZWYoaVkpLHNZPWxZLGNZPWUoOTA1OTgpLHVZPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MDguMSAzNTMuMWwtMjUzLjktMzYuOUw1NDAuNyA4Ni4xYy0zLjEtNi4zLTguMi0xMS40LTE0LjUtMTQuNS0xNS44LTcuOC0zNS0xLjMtNDIuOSAxNC41TDM2OS44IDMxNi4ybC0yNTMuOSAzNi45Yy03IDEtMTMuNCA0LjMtMTguMyA5LjNhMzIuMDUgMzIuMDUgMCAwMC42IDQ1LjNsMTgzLjcgMTc5LjEtNDMuNCAyNTIuOWEzMS45NSAzMS45NSAwIDAwNDYuNCAzMy43TDUxMiA3NTRsMjI3LjEgMTE5LjRjNi4yIDMuMyAxMy40IDQuNCAyMC4zIDMuMiAxNy40LTMgMjkuMS0xOS41IDI2LjEtMzYuOWwtNDMuNC0yNTIuOSAxODMuNy0xNzkuMWM1LTQuOSA4LjMtMTEuMyA5LjMtMTguMyAyLjctMTcuNS05LjUtMzMuNy0yNy0zNi4zek02NjQuOCA1NjEuNmwzNi4xIDIxMC4zTDUxMiA2NzIuNyAzMjMuMSA3NzJsMzYuMS0yMTAuMy0xNTIuOC0xNDlMNDE3LjYgMzgyIDUxMiAxOTAuNyA2MDYuNCAzODJsMjExLjIgMzAuNy0xNTIuOCAxNDguOXoifX1dfSxuYW1lOiJzdGFyIix0aGVtZToib3V0bGluZWQifSxkWT11WSxmWT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpkWX0pKX0sdlk9dC5mb3J3YXJkUmVmKGZZKSxoWT12WSxtWT17aWNvbjpmdW5jdGlvbihmLHYpe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIuNSAxOTAuNGwtOTQuNCAxOTEuMy0yMTEuMiAzMC43IDE1Mi44IDE0OS0zNi4xIDIxMC4zIDE4OC45LTk5LjMgMTg4LjkgOTkuMi0zNi4xLTIxMC4zIDE1Mi44LTE0OC45LTIxMS4yLTMwLjd6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkwOC42IDM1Mi44bC0yNTMuOS0zNi45TDU0MS4yIDg1LjhjLTMuMS02LjMtOC4yLTExLjQtMTQuNS0xNC41LTE1LjgtNy44LTM1LTEuMy00Mi45IDE0LjVMMzcwLjMgMzE1LjlsLTI1My45IDM2LjljLTcgMS0xMy40IDQuMy0xOC4zIDkuM2EzMi4wNSAzMi4wNSAwIDAwLjYgNDUuM2wxODMuNyAxNzkuMUwyMzkgODM5LjRhMzEuOTUgMzEuOTUgMCAwMDQ2LjQgMzMuN2wyMjcuMS0xMTkuNCAyMjcuMSAxMTkuNGM2LjIgMy4zIDEzLjQgNC40IDIwLjMgMy4yIDE3LjQtMyAyOS4xLTE5LjUgMjYuMS0zNi45bC00My40LTI1Mi45IDE4My43LTE3OS4xYzUtNC45IDguMy0xMS4zIDkuMy0xOC4zIDIuNy0xNy41LTkuNS0zMy43LTI3LTM2LjN6TTY2NS4zIDU2MS4zbDM2LjEgMjEwLjMtMTg4LjktOTkuMi0xODguOSA5OS4zIDM2LjEtMjEwLjMtMTUyLjgtMTQ5IDIxMS4yLTMwLjcgOTQuNC0xOTEuMyA5NC40IDE5MS4zIDIxMS4yIDMwLjctMTUyLjggMTQ4Ljl6IixmaWxsOmZ9fV19fSxuYW1lOiJzdGFyIix0aGVtZToidHdvdG9uZSJ9LGdZPW1ZLHBZPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOmdZfSkpfSx5WT10LmZvcndhcmRSZWYocFkpLENZPXlZLGJZPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjAgMCAxMDI0IDEwMjQiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0zNDcuNiA1MjguOTVsMzgzLjIgMzAxLjAyYzE0LjI1IDExLjIgMzUuMiAxLjEgMzUuMi0xNi45NVYyMTAuOTdjMC0xOC4wNS0yMC45NS0yOC4xNC0zNS4yLTE2Ljk0TDM0Ny42IDQ5NS4wNWEyMS41MyAyMS41MyAwIDAwMCAzMy45TTMzMCA4NjRoLTY0YTggOCAwIDAxLTgtOFYxNjhhOCA4IDAgMDE4LThoNjRhOCA4IDAgMDE4IDh2Njg4YTggOCAwIDAxLTggOCJ9fV19LG5hbWU6InN0ZXAtYmFja3dhcmQiLHRoZW1lOiJmaWxsZWQifSxTWT1iWSxPWT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpTWX0pKX0seFk9dC5mb3J3YXJkUmVmKE9ZKSx3WT14WSxFWT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiIwIDAgMTAyNCAxMDI0Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMzQ3LjYgNTI4Ljk1bDM4My4yIDMwMS4wMmMxNC4yNSAxMS4yIDM1LjIgMS4xIDM1LjItMTYuOTVWMjEwLjk3YzAtMTguMDUtMjAuOTUtMjguMTQtMzUuMi0xNi45NEwzNDcuNiA0OTUuMDVhMjEuNTMgMjEuNTMgMCAwMDAgMzMuOU0zMzAgODY0aC02NGE4IDggMCAwMS04LThWMTY4YTggOCAwIDAxOC04aDY0YTggOCAwIDAxOCA4djY4OGE4IDggMCAwMS04IDgifX1dfSxuYW1lOiJzdGVwLWJhY2t3YXJkIix0aGVtZToib3V0bGluZWQifSxUWT1FWSxNWT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpUWX0pKX0sUlk9dC5mb3J3YXJkUmVmKE1ZKSxJWT1SWSxQWT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiIwIDAgMTAyNCAxMDI0Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNjc2LjQgNTI4Ljk1TDI5My4yIDgyOS45N2MtMTQuMjUgMTEuMi0zNS4yIDEuMS0zNS4yLTE2Ljk1VjIxMC45N2MwLTE4LjA1IDIwLjk1LTI4LjE0IDM1LjItMTYuOTRsMzgzLjIgMzAxLjAyYTIxLjUzIDIxLjUzIDAgMDEwIDMzLjlNNjk0IDg2NGg2NGE4IDggMCAwMDgtOFYxNjhhOCA4IDAgMDAtOC04aC02NGE4IDggMCAwMC04IDh2Njg4YTggOCAwIDAwOCA4In19XX0sbmFtZToic3RlcC1mb3J3YXJkIix0aGVtZToiZmlsbGVkIn0selk9UFksRlk9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246ell9KSl9LEFZPXQuZm9yd2FyZFJlZihGWSksTFk9QVksWlk9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiMCAwIDEwMjQgMTAyNCIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTY3Ni40IDUyOC45NUwyOTMuMiA4MjkuOTdjLTE0LjI1IDExLjItMzUuMiAxLjEtMzUuMi0xNi45NVYyMTAuOTdjMC0xOC4wNSAyMC45NS0yOC4xNCAzNS4yLTE2Ljk0bDM4My4yIDMwMS4wMmEyMS41MyAyMS41MyAwIDAxMCAzMy45TTY5NCA4NjRoNjRhOCA4IDAgMDA4LThWMTY4YTggOCAwIDAwLTgtOGgtNjRhOCA4IDAgMDAtOCA4djY4OGE4IDggMCAwMDggOCJ9fV19LG5hbWU6InN0ZXAtZm9yd2FyZCIsdGhlbWU6Im91dGxpbmVkIn0sJFk9WlksSFk9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246JFl9KSl9LERZPXQuZm9yd2FyZFJlZihIWSksQlk9RFksVlk9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkwNCA3NDdIMTIwYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNMTY1LjcgNjIxLjhsMzkuNyAzOS41YzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBsMjM0LjctMjMzLjkgOTcuNiA5Ny4zYTMyLjExIDMyLjExIDAgMDA0NS4yIDBsMjY0LjItMjYzLjJjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM2wtMzkuNy0zOS42YTguMDMgOC4wMyAwIDAwLTExLjMgMGwtMjM1LjcgMjM1LTk3LjctOTcuM2EzMi4xMSAzMi4xMSAwIDAwLTQ1LjIgMEwxNjUuNyA2MTAuNWE3Ljk0IDcuOTQgMCAwMDAgMTEuM3oifX1dfSxuYW1lOiJzdG9jayIsdGhlbWU6Im91dGxpbmVkIn0sTlk9Vlksalk9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246Tll9KSl9LFVZPXQuZm9yd2FyZFJlZihqWSksV1k9VVksa1k9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0yMzQuOCA3MzYuNUwyMjMuNSAyNzcuMmMxNi0xOS43IDM0LTM3LjcgNTMuNy01My43bDUyMy4zIDUyMy4zYy0xNiAxOS42LTM0IDM3LjctNTMuNyA1My43eiJ9fV19LG5hbWU6InN0b3AiLHRoZW1lOiJmaWxsZWQifSxLWT1rWSxfWT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpLWX0pKX0sR1k9dC5mb3J3YXJkUmVmKF9ZKSxZWT1HWSxYWT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyIDAtODkgMzEuMy0xNzAuOCA4My41LTIzNC44bDUyMy4zIDUyMy4zQzY4Mi44IDg1Mi43IDYwMSA4ODQgNTEyIDg4NHptMjg4LjUtMTM3LjJMMjc3LjIgMjIzLjVDMzQxLjIgMTcxLjMgNDIzIDE0MCA1MTIgMTQwYzIwNS40IDAgMzcyIDE2Ni42IDM3MiAzNzIgMCA4OS0zMS4zIDE3MC44LTgzLjUgMjM0Ljh6In19XX0sbmFtZToic3RvcCIsdGhlbWU6Im91dGxpbmVkIn0sUVk9WFksSlk9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246UVl9KSl9LHFZPXQuZm9yd2FyZFJlZihKWSksZVg9cVksdFg9e2ljb246ZnVuY3Rpb24oZix2KXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTI4OC41IDY4Mi44TDI3Ny43IDIyNEMyNTggMjQwIDI0MCAyNTggMjI0IDI3Ny43bDUyMi44IDUyMi44QzY4Mi44IDg1Mi43IDYwMSA4ODQgNTEyIDg4NGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3MmMwIDg5LTMxLjMgMTcwLjgtODMuNSAyMzQuOHoiLGZpbGw6Zn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDE0MGMtMjA1LjQgMC0zNzIgMTY2LjYtMzcyIDM3MnMxNjYuNiAzNzIgMzcyIDM3MmM4OSAwIDE3MC44LTMxLjMgMjM0LjgtODMuNUwyMjQgMjc3LjdjMTYtMTkuNyAzNC0zNy43IDUzLjctNTMuN2w1MjIuOCA1MjIuOEM4NTIuNyA2ODIuOCA4ODQgNjAxIDg4NCA1MTJjMC0yMDUuNC0xNjYuNi0zNzItMzcyLTM3MnoiLGZpbGw6dn19XX19LG5hbWU6InN0b3AiLHRoZW1lOiJ0d290b25lIn0sblg9dFgsclg9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246blh9KSl9LGFYPXQuZm9yd2FyZFJlZihyWCksb1g9YVgsaVg9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTk1MiA0NzRINTY5LjljLTEwLTItMjAuNS00LTMxLjYtNi0xNS45LTIuOS0yMi4yLTQuMS0zMC44LTUuOC01MS4zLTEwLTgyLjItMjAtMTA2LjgtMzQuMi0zNS4xLTIwLjUtNTIuMi00OC4zLTUyLjItODUuMSAwLTM3IDE1LjItNjcuNyA0NC04OSAyOC40LTIxIDY4LjgtMzIuMSAxMTYuOC0zMi4xIDU0LjggMCA5Ny4xIDE0LjQgMTI1LjggNDIuOCAxNC42IDE0LjQgMjUuMyAzMi4xIDMxLjggNTIuNiAxLjMgNC4xIDIuOCAxMCA0LjMgMTcuOC45IDQuOCA1LjIgOC4yIDkuOSA4LjJoNzIuOGM1LjYgMCAxMC4xLTQuNiAxMC4xLTEwLjF2LTFjLS43LTYuOC0xLjMtMTIuMS0yLTE2LTcuMy00My41LTI4LTgxLjctNTkuNy0xMTAuMy00NC40LTQwLjUtMTA5LjctNjEuOC0xODguNy02MS44LTcyLjMgMC0xMzcuNCAxOC4xLTE4My4zIDUwLjktMjUuNiAxOC40LTQ1LjQgNDEuMi01OC42IDY3LjctMTMuNSAyNy4xLTIwLjMgNTguNC0yMC4zIDkyLjkgMCAyOS41IDUuNyA1NC41IDE3LjMgNzYuNSA4LjMgMTUuNyAxOS42IDI5LjUgMzQuMSA0Mkg3MmMtNC40IDAtOCAzLjYtOCA4djYwYzAgNC40IDMuNiA4IDggOGg0MzMuMmMyLjEuNCAzLjkuOCA1LjkgMS4yIDMwLjkgNi4yIDQ5LjUgMTAuNCA2Ni42IDE1LjIgMjMgNi41IDQwLjYgMTMuMyA1NS4yIDIxLjUgMzUuOCAyMC4yIDUzLjMgNDkuMiA1My4zIDg5IDAgMzUuMy0xNS41IDY2LjgtNDMuNiA4OC44LTMwLjUgMjMuOS03NS42IDM2LjQtMTMwLjUgMzYuNC00My43IDAtODAuNy04LjUtMTEwLjItMjUtMjkuMS0xNi4zLTQ5LjEtMzkuOC01OS43LTY5LjUtLjgtMi4yLTEuNy01LjItMi43LTktMS4yLTQuNC01LjMtNy41LTkuNy03LjVoLTc5LjdjLTUuNiAwLTEwLjEgNC42LTEwLjEgMTAuMXYxYy4yIDIuMy40IDQuMi42IDUuNyA2LjUgNDguOCAzMC4zIDg4LjggNzAuNyAxMTguOCA0Ny4xIDM0LjggMTEzLjQgNTMuMiAxOTEuOCA1My4yIDg0LjIgMCAxNTQuOC0xOS44IDIwNC4yLTU3LjMgMjUtMTguOSA0NC4yLTQyLjIgNTcuMS02OSAxMy0yNy4xIDE5LjctNTcuOSAxOS43LTkxLjUgMC0zMS44LTUuOC01OC40LTE3LjgtODEuNC01LjgtMTEuMi0xMy4xLTIxLjUtMjEuOC0zMC44SDk1MmM0LjQgMCA4LTMuNiA4LTh2LTYwYTggOCAwIDAwLTgtNy45eiJ9fV19LG5hbWU6InN0cmlrZXRocm91Z2giLHRoZW1lOiJvdXRsaW5lZCJ9LGxYPWlYLHNYPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOmxYfSkpfSxjWD10LmZvcndhcmRSZWYoc1gpLHVYPWNYLGRYPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoiZGVmcyIsYXR0cnM6e30sY2hpbGRyZW46W3t0YWc6InN0eWxlIixhdHRyczp7fX1dfSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTY4OCAyNDBjLTEzOCAwLTI1MiAxMDIuOC0yNjkuNiAyMzZIMjQ5YTk1LjkyIDk1LjkyIDAgMDAtODktNjBjLTUzIDAtOTYgNDMtOTYgOTZzNDMgOTYgOTYgOTZjNDAuMyAwIDc0LjgtMjQuOCA4OS02MGgxNjkuM0M0MzYgNjgxLjIgNTUwIDc4NCA2ODggNzg0YzE1MC4yIDAgMjcyLTEyMS44IDI3Mi0yNzJTODM4LjIgMjQwIDY4OCAyNDB6bTEyOCAyOThjMCA0LjQtMy42IDgtOCA4aC04NnY4NmMwIDQuNC0zLjYgOC04IDhoLTUyYy00LjQgMC04LTMuNi04LTh2LTg2aC04NmMtNC40IDAtOC0zLjYtOC04di01MmMwLTQuNCAzLjYtOCA4LThoODZ2LTg2YzAtNC40IDMuNi04IDgtOGg1MmM0LjQgMCA4IDMuNiA4IDh2ODZoODZjNC40IDAgOCAzLjYgOCA4djUyeiJ9fV19LG5hbWU6InN1Ym5vZGUiLHRoZW1lOiJvdXRsaW5lZCJ9LGZYPWRYLHZYPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOmZYfSkpfSxoWD10LmZvcndhcmRSZWYodlgpLG1YPWhYLGdYPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6eyJmaWxsLXJ1bGUiOiJldmVub2RkIix2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTQ4IDgxOHYxMjZhMTYgMTYgMCAwMS0xNiAxNmgtNDBhMTYgMTYgMCAwMS0xNi0xNlY4MThjMTUuODUgMS42NCAyNy44NCAyLjQ2IDM2IDIuNDYgOC4xNSAwIDIwLjE2LS44MiAzNi0yLjQ2bTIwNS4yNS0xMTUuNjZsODkuMSA4OS4xYTE2IDE2IDAgMDEwIDIyLjYybC0yOC4yOSAyOC4yOWExNiAxNiAwIDAxLTIyLjYyIDBsLTg5LjEtODkuMWMxMi4zNy0xMC4wNCAyMS40My0xNy45NSAyNy4yLTIzLjcxIDUuNzYtNS43NyAxMy42Ny0xNC44NCAyMy43MS0yNy4ybS00ODIuNSAwYzEwLjA0IDEyLjM2IDE3Ljk1IDIxLjQzIDIzLjcxIDI3LjIgNS43NyA1Ljc2IDE0Ljg0IDEzLjY3IDI3LjIgMjMuNzFsLTg5LjEgODkuMWExNiAxNiAwIDAxLTIyLjYyIDBsLTI4LjI5LTI4LjI5YTE2IDE2IDAgMDEwLTIyLjYzek01MTIgMjc4YzEyOS4yNCAwIDIzNCAxMDQuNzcgMjM0IDIzNFM2NDEuMjQgNzQ2IDUxMiA3NDYgMjc4IDY0MS4yNCAyNzggNTEyczEwNC43Ny0yMzQgMjM0LTIzNE0yMDYgNDc2Yy0xLjY0IDE1Ljg1LTIuNDYgMjcuODQtMi40NiAzNiAwIDguMTUuODIgMjAuMTYgMi40NiAzNkg4MGExNiAxNiAwIDAxLTE2LTE2di00MGExNiAxNiAwIDAxMTYtMTZ6bTczOCAwYTE2IDE2IDAgMDExNiAxNnY0MGExNiAxNiAwIDAxLTE2IDE2SDgxOGMxLjY0LTE1Ljg1IDIuNDYtMjcuODQgMi40Ni0zNiAwLTguMTUtLjgyLTIwLjE2LTIuNDYtMzZ6TTgxNC4wNiAxODAuNjVsMjguMjkgMjguMjlhMTYgMTYgMCAwMTAgMjIuNjNsLTg5LjEgODkuMDljLTEwLjA0LTEyLjM3LTE3Ljk1LTIxLjQzLTIzLjcxLTI3LjItNS43Ny01Ljc2LTE0Ljg0LTEzLjY3LTI3LjItMjMuNzFsODkuMS04OS4xYTE2IDE2IDAgMDEyMi42MiAwbS01ODEuNSAwbDg5LjEgODkuMWMtMTIuMzcgMTAuMDQtMjEuNDMgMTcuOTUtMjcuMiAyMy43MS01Ljc2IDUuNzctMTMuNjcgMTQuODQtMjMuNzEgMjcuMmwtODkuMS04OS4xYTE2IDE2IDAgMDEwLTIyLjYybDI4LjI5LTI4LjI5YTE2IDE2IDAgMDEyMi42MiAwTTUzMiA2NGExNiAxNiAwIDAxMTYgMTZ2MTI2Yy0xNS44NS0xLjY0LTI3Ljg0LTIuNDYtMzYtMi40Ni04LjE1IDAtMjAuMTYuODItMzYgMi40NlY4MGExNiAxNiAwIDAxMTYtMTZ6In19XX0sbmFtZToic3VuIix0aGVtZToiZmlsbGVkIn0scFg9Z1gseVg9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246cFh9KSl9LENYPXQuZm9yd2FyZFJlZih5WCksYlg9Q1gsU1g9e2ljb246e3RhZzoic3ZnIixhdHRyczp7ImZpbGwtcnVsZSI6ImV2ZW5vZGQiLHZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01NDggODE4djEyNmExNiAxNiAwIDAxLTE2IDE2aC00MGExNiAxNiAwIDAxLTE2LTE2VjgxOGMxNS44NSAxLjY0IDI3Ljg0IDIuNDYgMzYgMi40NiA4LjE1IDAgMjAuMTYtLjgyIDM2LTIuNDZtMjA1LjI1LTExNS42Nmw4OS4xIDg5LjFhMTYgMTYgMCAwMTAgMjIuNjJsLTI4LjI5IDI4LjI5YTE2IDE2IDAgMDEtMjIuNjIgMGwtODkuMS04OS4xYzEyLjM3LTEwLjA0IDIxLjQzLTE3Ljk1IDI3LjItMjMuNzEgNS43Ni01Ljc3IDEzLjY3LTE0Ljg0IDIzLjcxLTI3LjJtLTQ4Mi41IDBjMTAuMDQgMTIuMzYgMTcuOTUgMjEuNDMgMjMuNzEgMjcuMiA1Ljc3IDUuNzYgMTQuODQgMTMuNjcgMjcuMiAyMy43MWwtODkuMSA4OS4xYTE2IDE2IDAgMDEtMjIuNjIgMGwtMjguMjktMjguMjlhMTYgMTYgMCAwMTAtMjIuNjN6TTUxMiAyNzhjMTI5LjI0IDAgMjM0IDEwNC43NyAyMzQgMjM0UzY0MS4yNCA3NDYgNTEyIDc0NiAyNzggNjQxLjI0IDI3OCA1MTJzMTA0Ljc3LTIzNCAyMzQtMjM0bTAgNzJjLTg5LjQ3IDAtMTYyIDcyLjUzLTE2MiAxNjJzNzIuNTMgMTYyIDE2MiAxNjIgMTYyLTcyLjUzIDE2Mi0xNjItNzIuNTMtMTYyLTE2Mi0xNjJNMjA2IDQ3NmMtMS42NCAxNS44NS0yLjQ2IDI3Ljg0LTIuNDYgMzYgMCA4LjE1LjgyIDIwLjE2IDIuNDYgMzZIODBhMTYgMTYgMCAwMS0xNi0xNnYtNDBhMTYgMTYgMCAwMTE2LTE2em03MzggMGExNiAxNiAwIDAxMTYgMTZ2NDBhMTYgMTYgMCAwMS0xNiAxNkg4MThjMS42NC0xNS44NSAyLjQ2LTI3Ljg0IDIuNDYtMzYgMC04LjE1LS44Mi0yMC4xNi0yLjQ2LTM2ek04MTQuMDYgMTgwLjY1bDI4LjI5IDI4LjI5YTE2IDE2IDAgMDEwIDIyLjYzbC04OS4xIDg5LjA5Yy0xMC4wNC0xMi4zNy0xNy45NS0yMS40My0yMy43MS0yNy4yLTUuNzctNS43Ni0xNC44NC0xMy42Ny0yNy4yLTIzLjcxbDg5LjEtODkuMWExNiAxNiAwIDAxMjIuNjIgMG0tNTgxLjUgMGw4OS4xIDg5LjFjLTEyLjM3IDEwLjA0LTIxLjQzIDE3Ljk1LTI3LjIgMjMuNzEtNS43NiA1Ljc3LTEzLjY3IDE0Ljg0LTIzLjcxIDI3LjJsLTg5LjEtODkuMWExNiAxNiAwIDAxMC0yMi42MmwyOC4yOS0yOC4yOWExNiAxNiAwIDAxMjIuNjIgME01MzIgNjRhMTYgMTYgMCAwMTE2IDE2djEyNmMtMTUuODUtMS42NC0yNy44NC0yLjQ2LTM2LTIuNDYtOC4xNSAwLTIwLjE2LjgyLTM2IDIuNDZWODBhMTYgMTYgMCAwMTE2LTE2eiJ9fV19LG5hbWU6InN1biIsdGhlbWU6Im91dGxpbmVkIn0sT1g9U1gseFg9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246T1h9KSl9LHdYPXQuZm9yd2FyZFJlZih4WCksRVg9d1gsVFg9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiMCAwIDEwMjQgMTAyNCIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg3MiA1NzJIMjY2LjhsMTQ0LjMtMTgzYzQuMS01LjIuNC0xMy02LjMtMTNIMzQwYy05LjggMC0xOS4xIDQuNS0yNS4xIDEyLjJsLTE2NCAyMDhjLTE2LjUgMjEtMS42IDUxLjggMjUuMSA1MS44aDY5NmM0LjQgMCA4LTMuNiA4LTh2LTYwYzAtNC40LTMuNi04LTgtOHoifX1dfSxuYW1lOiJzd2FwLWxlZnQiLHRoZW1lOiJvdXRsaW5lZCJ9LE1YPVRYLFJYPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOk1YfSkpfSxJWD10LmZvcndhcmRSZWYoUlgpLFBYPUlYLHpYPWUoOTQ2NjgpLEZYPWUoMzIxOTgpLEFYPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik03NTIgMjQwSDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjA4YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDYwOGMxNy43IDAgMzItMTQuMyAzMi0zMlYyNzJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTU5NiA2MDZjMCA0LjQtMy42IDgtOCA4SDMwOGMtNC40IDAtOC0zLjYtOC04di00OGMwLTQuNCAzLjYtOCA4LThoMjgwYzQuNCAwIDggMy42IDggOHY0OHptMjg0LTQ5NEgyNjRjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTc2djU3NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04VjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnoifX1dfSxuYW1lOiJzd2l0Y2hlciIsdGhlbWU6ImZpbGxlZCJ9LExYPUFYLFpYPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkxYfSkpfSwkWD10LmZvcndhcmRSZWYoWlgpLEhYPSRYLERYPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik03NTIgMjQwSDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjA4YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDYwOGMxNy43IDAgMzItMTQuMyAzMi0zMlYyNzJjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA2MDBIMTg0VjMxMmg1Mjh2NTI4em0xNjgtNzI4SDI2NGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NzZ2NTc2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LThWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek0zMDAgNTUwaDI5NnY2NEgzMDB6In19XX0sbmFtZToic3dpdGNoZXIiLHRoZW1lOiJvdXRsaW5lZCJ9LEJYPURYLFZYPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkJYfSkpfSxOWD10LmZvcndhcmRSZWYoVlgpLGpYPU5YLFVYPXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTE4NCA4NDBoNTI4VjMxMkgxODR2NTI4em0xMTYtMjkwaDI5NnY2NEgzMDB2LTY0eiIsZmlsbDp2fX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMTEySDI2NGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NzZ2NTc2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LThWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyeiIsZmlsbDpmfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik03NTIgMjQwSDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjA4YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDYwOGMxNy43IDAgMzItMTQuMyAzMi0zMlYyNzJjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA2MDBIMTg0VjMxMmg1Mjh2NTI4eiIsZmlsbDpmfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0zMDAgNTUwaDI5NnY2NEgzMDB6IixmaWxsOmZ9fV19fSxuYW1lOiJzd2l0Y2hlciIsdGhlbWU6InR3b3RvbmUifSxXWD1VWCxrWD1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpXWH0pKX0sS1g9dC5mb3J3YXJkUmVmKGtYKSxfWD1LWCxHWD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMTY4IDUwNC4yYzEtNDMuNyAxMC04Ni4xIDI2LjktMTI2IDE3LjMtNDEgNDIuMS03Ny43IDczLjctMTA5LjRTMzM3IDIxMi4zIDM3OCAxOTVjNDIuNC0xNy45IDg3LjQtMjcgMTMzLjktMjdzOTEuNSA5LjEgMTMzLjggMjdBMzQxLjUgMzQxLjUgMCAwMTc1NSAyNjguOGM5LjkgOS45IDE5LjIgMjAuNCAyNy44IDMxLjRsLTYwLjIgNDdhOCA4IDAgMDAzIDE0LjFsMTc1LjcgNDNjNSAxLjIgOS45LTIuNiA5LjktNy43bC44LTE4MC45YzAtNi43LTcuNy0xMC41LTEyLjktNi4zbC01Ni40IDQ0LjFDNzY1LjggMTU1LjEgNjQ2LjIgOTIgNTExLjggOTIgMjgyLjcgOTIgOTYuMyAyNzUuNiA5MiA1MDMuOGE4IDggMCAwMDggOC4yaDYwYzQuNCAwIDcuOS0zLjUgOC03Ljh6bTc1NiA3LjhoLTYwYy00LjQgMC03LjkgMy41LTggNy44LTEgNDMuNy0xMCA4Ni4xLTI2LjkgMTI2LTE3LjMgNDEtNDIuMSA3Ny44LTczLjcgMTA5LjRBMzQyLjQ1IDM0Mi40NSAwIDAxNTEyLjEgODU2YTM0Mi4yNCAzNDIuMjQgMCAwMS0yNDMuMi0xMDAuOGMtOS45LTkuOS0xOS4yLTIwLjQtMjcuOC0zMS40bDYwLjItNDdhOCA4IDAgMDAtMy0xNC4xbC0xNzUuNy00M2MtNS0xLjItOS45IDIuNi05LjkgNy43bC0uNyAxODFjMCA2LjcgNy43IDEwLjUgMTIuOSA2LjNsNTYuNC00NC4xQzI1OC4yIDg2OC45IDM3Ny44IDkzMiA1MTIuMiA5MzJjMjI5LjIgMCA0MTUuNS0xODMuNyA0MTkuOC00MTEuOGE4IDggMCAwMC04LTguMnoifX1dfSxuYW1lOiJzeW5jIix0aGVtZToib3V0bGluZWQifSxZWD1HWCxYWD1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpZWH0pKX0sUVg9dC5mb3J3YXJkUmVmKFhYKSxKWD1RWCxxWD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTI4IDE2MEg5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjQwYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDgzMmMxNy43IDAgMzItMTQuMyAzMi0zMlYxOTJjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCAyMDhINjc2VjIzMmgyMTJ2MTM2em0wIDIyNEg2NzZWNDMyaDIxMnYxNjB6TTQxMiA0MzJoMjAwdjE2MEg0MTJWNDMyem0yMDAtNjRINDEyVjIzMmgyMDB2MTM2em0tNDc2IDY0aDIxMnYxNjBIMTM2VjQzMnptMC0yMDBoMjEydjEzNkgxMzZWMjMyem0wIDQyNGgyMTJ2MTM2SDEzNlY2NTZ6bTI3NiAwaDIwMHYxMzZINDEyVjY1NnptNDc2IDEzNkg2NzZWNjU2aDIxMnYxMzZ6In19XX0sbmFtZToidGFibGUiLHRoZW1lOiJvdXRsaW5lZCJ9LGVRPXFYLHRRPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOmVRfSkpfSxuUT10LmZvcndhcmRSZWYodFEpLHJRPW5RLGFRPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04MDAgNjRIMjI0Yy0zNS4zIDAtNjQgMjguNy02NCA2NHY3NjhjMCAzNS4zIDI4LjcgNjQgNjQgNjRoNTc2YzM1LjMgMCA2NC0yOC43IDY0LTY0VjEyOGMwLTM1LjMtMjguNy02NC02NC02NHpNNTEyIDgyNGMtMjIuMSAwLTQwLTE3LjktNDAtNDBzMTcuOS00MCA0MC00MCA0MCAxNy45IDQwIDQwLTE3LjkgNDAtNDAgNDB6In19XX0sbmFtZToidGFibGV0Iix0aGVtZToiZmlsbGVkIn0sb1E9YVEsaVE9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246b1F9KSl9LGxRPXQuZm9yd2FyZFJlZihpUSksc1E9bFEsY1E9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTgwMCA2NEgyMjRjLTM1LjMgMC02NCAyOC43LTY0IDY0djc2OGMwIDM1LjMgMjguNyA2NCA2NCA2NGg1NzZjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTI4YzAtMzUuMy0yOC43LTY0LTY0LTY0em0tOCA4MjRIMjMyVjEzNmg1NjB2NzUyek00NzIgNzg0YTQwIDQwIDAgMTA4MCAwIDQwIDQwIDAgMTAtODAgMHoifX1dfSxuYW1lOiJ0YWJsZXQiLHRoZW1lOiJvdXRsaW5lZCJ9LHVRPWNRLGRRPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOnVRfSkpfSxmUT10LmZvcndhcmRSZWYoZFEpLHZRPWZRLGhRPXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTgwMCA2NEgyMjRjLTM1LjMgMC02NCAyOC43LTY0IDY0djc2OGMwIDM1LjMgMjguNyA2NCA2NCA2NGg1NzZjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTI4YzAtMzUuMy0yOC43LTY0LTY0LTY0em0tOCA4MjRIMjMyVjEzNmg1NjB2NzUyeiIsZmlsbDpmfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0yMzIgODg4aDU2MFYxMzZIMjMydjc1MnptMjgwLTE0NGMyMi4xIDAgNDAgMTcuOSA0MCA0MHMtMTcuOSA0MC00MCA0MC00MC0xNy45LTQwLTQwIDE3LjktNDAgNDAtNDB6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQ3MiA3ODRhNDAgNDAgMCAxMDgwIDAgNDAgNDAgMCAxMC04MCAweiIsZmlsbDpmfX1dfX0sbmFtZToidGFibGV0Iix0aGVtZToidHdvdG9uZSJ9LG1RPWhRLGdRPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOm1RfSkpfSxwUT10LmZvcndhcmRSZWYoZ1EpLHlRPXBRLENRPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MzggNDU4LjhsLTI5LjYtMzEyLjZjLTEuNS0xNi4yLTE0LjQtMjktMzAuNi0zMC42TDU2NS4yIDg2aC0uNGMtMy4yIDAtNS43IDEtNy42IDIuOUw4OC45IDU1Ny4yYTkuOTYgOS45NiAwIDAwMCAxNC4xbDM2My44IDM2My44YzEuOSAxLjkgNC40IDIuOSA3LjEgMi45czUuMi0xIDcuMS0yLjlsNDY4LjMtNDY4LjNjMi0yLjEgMy01IDIuOC04ek02OTkgMzg3Yy0zNS4zIDAtNjQtMjguNy02NC02NHMyOC43LTY0IDY0LTY0IDY0IDI4LjcgNjQgNjQtMjguNyA2NC02NCA2NHoifX1dfSxuYW1lOiJ0YWciLHRoZW1lOiJmaWxsZWQifSxiUT1DUSxTUT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpiUX0pKX0sT1E9dC5mb3J3YXJkUmVmKFNRKSx4UT1PUSx3UT1lKDQwNjY2KSxFUT17aWNvbjpmdW5jdGlvbihmLHYpe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01ODkgMTY0LjZMMTg5LjMgNTY0LjNsMjcwLjQgMjcwLjRMODU5LjQgNDM1IDgzNiAxODhsLTI0Ny0yMy40ek02ODAgNDMyYy00OC41IDAtODgtMzkuNS04OC04OHMzOS41LTg4IDg4LTg4IDg4IDM5LjUgODggODgtMzkuNSA4OC04OCA4OHoiLGZpbGw6dn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNjgwIDI1NmMtNDguNSAwLTg4IDM5LjUtODggODhzMzkuNSA4OCA4OCA4OCA4OC0zOS41IDg4LTg4LTM5LjUtODgtODgtODh6bTAgMTIwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyIDMyIDE0LjMgMzIgMzItMTQuMyAzMi0zMiAzMnoiLGZpbGw6Zn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNOTM4IDQ1OC44bC0yOS42LTMxMi42Yy0xLjUtMTYuMi0xNC40LTI5LTMwLjYtMzAuNkw1NjUuMiA4NmgtLjRjLTMuMiAwLTUuNyAxLTcuNiAyLjlMODguOSA1NTcuMmE5Ljk2IDkuOTYgMCAwMDAgMTQuMWwzNjMuOCAzNjMuOGE5LjkgOS45IDAgMDA3LjEgMi45YzIuNyAwIDUuMi0xIDcuMS0yLjlsNDY4LjMtNDY4LjNjMi0yLjEgMy01IDIuOC04ek00NTkuNyA4MzQuN0wxODkuMyA1NjQuMyA1ODkgMTY0LjYgODM2IDE4OGwyMy40IDI0Ny0zOTkuNyAzOTkuN3oiLGZpbGw6Zn19XX19LG5hbWU6InRhZyIsdGhlbWU6InR3b3RvbmUifSxUUT1FUSxNUT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpUUX0pKX0sUlE9dC5mb3J3YXJkUmVmKE1RKSxJUT1SUSxQUT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNDgzLjIgNzkwLjNMODYxLjQgNDEyYzEuNy0xLjcgMi41LTQgMi4zLTYuM2wtMjUuNS0zMDEuNGMtLjctNy44LTYuOC0xMy45LTE0LjYtMTQuNkw1MjIuMiA2NC4zYy0yLjMtLjItNC43LjYtNi4zIDIuM0wxMzcuNyA0NDQuOGE4LjAzIDguMDMgMCAwMDAgMTEuM2wzMzQuMiAzMzQuMmMzLjEgMy4yIDguMiAzLjIgMTEuMyAwem0xMjIuNy01MzMuNGMxOC43LTE4LjcgNDkuMS0xOC43IDY3LjkgMCAxOC43IDE4LjcgMTguNyA0OS4xIDAgNjcuOS0xOC43IDE4LjctNDkuMSAxOC43LTY3LjkgMC0xOC43LTE4LjctMTguNy00OS4xIDAtNjcuOXptMjgzLjggMjgyLjlsLTM5LjYtMzkuNWE4LjAzIDguMDMgMCAwMC0xMS4zIDBsLTM2MiAzNjEuMy0yMzcuNi0yMzdhOC4wMyA4LjAzIDAgMDAtMTEuMyAwbC0zOS42IDM5LjVhOC4wMyA4LjAzIDAgMDAwIDExLjNsMjQzLjIgMjQyLjggMzkuNiAzOS41YzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBsNDA3LjMtNDA2LjZjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM3oifX1dfSxuYW1lOiJ0YWdzIix0aGVtZToiZmlsbGVkIn0selE9UFEsRlE9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246elF9KSl9LEFRPXQuZm9yd2FyZFJlZihGUSksTFE9QVEsWlE9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQ4My4yIDc5MC4zTDg2MS40IDQxMmMxLjctMS43IDIuNS00IDIuMy02LjNsLTI1LjUtMzAxLjRjLS43LTcuOC02LjgtMTMuOS0xNC42LTE0LjZMNTIyLjIgNjQuM2MtMi4zLS4yLTQuNy42LTYuMyAyLjNMMTM3LjcgNDQ0LjhhOC4wMyA4LjAzIDAgMDAwIDExLjNsMzM0LjIgMzM0LjJjMy4xIDMuMiA4LjIgMy4yIDExLjMgMHptNjIuNi02NTEuN2wyMjQuNiAxOSAxOSAyMjQuNkw0NzcuNSA2OTQgMjMzLjkgNDUwLjVsMzExLjktMzExLjl6bTYwLjE2IDE4Ni4yM2E0OCA0OCAwIDEwNjcuODgtNjcuODkgNDggNDggMCAxMC02Ny44OCA2Ny44OXpNODg5LjcgNTM5LjhsLTM5LjYtMzkuNWE4LjAzIDguMDMgMCAwMC0xMS4zIDBsLTM2MiAzNjEuMy0yMzcuNi0yMzdhOC4wMyA4LjAzIDAgMDAtMTEuMyAwbC0zOS42IDM5LjVhOC4wMyA4LjAzIDAgMDAwIDExLjNsMjQzLjIgMjQyLjggMzkuNiAzOS41YzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBsNDA3LjMtNDA2LjZjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM3oifX1dfSxuYW1lOiJ0YWdzIix0aGVtZToib3V0bGluZWQifSwkUT1aUSxIUT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjokUX0pKX0sRFE9dC5mb3J3YXJkUmVmKEhRKSxCUT1EUSxWUT17aWNvbjpmdW5jdGlvbihmLHYpe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00NzcuNSA2OTRsMzExLjktMzExLjgtMTktMjI0LjYtMjI0LjYtMTktMzExLjkgMzExLjlMNDc3LjUgNjk0em0xMTYtNDE1LjVhNDcuODEgNDcuODEgMCAwMTMzLjktMzMuOWMxNi42LTQuNCAzNC4yLjMgNDYuNCAxMi40YTQ3LjkzIDQ3LjkzIDAgMDExMi40IDQ2LjQgNDcuODEgNDcuODEgMCAwMS0zMy45IDMzLjljLTE2LjYgNC40LTM0LjItLjMtNDYuNC0xMi40YTQ4LjMgNDguMyAwIDAxLTEyLjQtNDYuNHoiLGZpbGw6dn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNDc2LjYgNzkyLjZjLTEuNy0uMi0zLjQtMS00LjctMi4zTDEzNy43IDQ1Ni4xYTguMDMgOC4wMyAwIDAxMC0xMS4zTDUxNS45IDY2LjZjMS4yLTEuMyAyLjktMi4xIDQuNy0yLjNoLS40Yy0yLjMtLjItNC43LjYtNi4zIDIuM0wxMzUuNyA0NDQuOGE4LjAzIDguMDMgMCAwMDAgMTEuM2wzMzQuMiAzMzQuMmMxLjggMS45IDQuMyAyLjYgNi43IDIuM3oiLGZpbGw6dn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODg5LjcgNTM5LjhsLTM5LjYtMzkuNWE4LjAzIDguMDMgMCAwMC0xMS4zIDBsLTM2MiAzNjEuMy0yMzcuNi0yMzdhOC4wMyA4LjAzIDAgMDAtMTEuMyAwbC0zOS42IDM5LjVhOC4wMyA4LjAzIDAgMDAwIDExLjNsMjQzLjIgMjQyLjggMzkuNiAzOS41YzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBsNDA3LjMtNDA2LjZjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM3pNNjUyLjMgMzM3LjNhNDcuODEgNDcuODEgMCAwMDMzLjktMzMuOWM0LjQtMTYuNi0uMy0zNC4yLTEyLjQtNDYuNGE0Ny45MyA0Ny45MyAwIDAwLTQ2LjQtMTIuNCA0Ny44MSA0Ny44MSAwIDAwLTMzLjkgMzMuOWMtNC40IDE2LjYuMyAzNC4yIDEyLjQgNDYuNGE0OC4zIDQ4LjMgMCAwMDQ2LjQgMTIuNHoiLGZpbGw6Zn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMTM3LjcgNDQ0LjhhOC4wMyA4LjAzIDAgMDAwIDExLjNsMzM0LjIgMzM0LjJjMS4zIDEuMyAyLjkgMi4xIDQuNyAyLjMgMi40LjMgNC44LS41IDYuNi0yLjNMODYxLjQgNDEyYzEuNy0xLjcgMi41LTQgMi4zLTYuM2wtMjUuNS0zMDEuNGMtLjctNy44LTYuOC0xMy45LTE0LjYtMTQuNkw1MjIuMiA2NC4zaC0xLjZjLTEuOC4yLTMuNCAxLTQuNyAyLjNMMTM3LjcgNDQ0Ljh6bTQwOC4xLTMwNi4ybDIyNC42IDE5IDE5IDIyNC42TDQ3Ny41IDY5NCAyMzMuOSA0NTAuNWwzMTEuOS0zMTEuOXoiLGZpbGw6Zn19XX19LG5hbWU6InRhZ3MiLHRoZW1lOiJ0d290b25lIn0sTlE9VlEsalE9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246TlF9KSl9LFVRPXQuZm9yd2FyZFJlZihqUSksV1E9VVEsa1E9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0ek0zMTUuNyAyOTEuNWMyNy4zIDAgNDkuNSAyMi4xIDQ5LjUgNDkuNHMtMjIuMSA0OS40LTQ5LjUgNDkuNGE0OS40IDQ5LjQgMCAxMTAtOTguOHpNMzY2LjkgNTc4Yy0xMy42IDQyLjMtMTAuMiAyNi43LTY0LjQgMTQ0LjVsLTc4LjUtNDlzODcuNy03OS44IDEwNS42LTExNi4yYzE5LjItMzguNC0yMS4xLTU4LjktMjEuMS01OC45bC02MC4yLTM3LjUgMzIuNy01MC4yYzQ1LjQgMzMuNyA0OC43IDM2LjYgNzkuMiA2Ny4yIDIzLjggMjMuOSAyMC43IDU2LjggNi43IDEwMC4xem00MjcuMiA1NWMtMTUuMyAxNDMuOC0yMDIuNCA5MC4zLTIwMi40IDkwLjNsMTAuMi00MS4xIDQzLjMgOS4zYzgwIDUgNzIuMy02NC45IDcyLjMtNjQuOVY0MjNjLjYtNzcuMy03Mi42LTg1LjQtMjA0LjItMzguM2wzMC42IDguM2MtMi41IDktMTIuNSAyMy4yLTI1LjIgMzguNmgxNzZ2MzUuNmgtOTkuMXY0NC41aDk4Ljd2MzUuN2gtOTguN1Y2MjJjMTQuOS00LjggMjguNi0xMS41IDQwLjUtMjAuNWwtOC43LTMyLjUgNDYuNS0xNC40IDM4LjggOTQuOS01Ny4zIDIzLjktMTAuMi0zNy44Yy0yNS42IDE5LjUtNzguOCA0OC0xNzEuOCA0NS40LTk5LjIgMi42LTczLjctMTEyLTczLjctMTEybDIuNS0xLjNINDcyYy0uNSAxNC43LTYuNiAzOC43IDEuNyA1MS44IDYuOCAxMC44IDI0LjIgMTIuNiAzNS4zIDEzLjEgMS4zLjEgMi42LjEgMy45LjF2LTg1LjNoLTEwMXYtMzUuN2gxMDF2LTQ0LjVINDg3Yy0yMi43IDI0LjEtNDMuNSA0NC4xLTQzLjUgNDQuMWwtMzAuNi0yNi43YzIxLjctMjIuOSA0My4zLTU5LjEgNTYuOC04My4yLTEwLjkgNC40LTIyIDkuMi0zMy42IDE0LjItMTEuMiAxNC4zLTI0LjIgMjktMzguNyA0My41LjUuOC01MC0yOC40LTUwLTI4LjQgNTIuMi00NC40IDgxLjQtMTM5LjkgODEuNC0xMzkuOWw3Mi41IDIwLjRzLTUuOSAxNC0xOC40IDM1LjZjMjkwLjMtODIuMyAzMDcuNCA1MC41IDMwNy40IDUwLjVzMTkuMSA5MS44IDMuOCAyMzUuN3oifX1dfSxuYW1lOiJ0YW9iYW8tY2lyY2xlIix0aGVtZToiZmlsbGVkIn0sS1E9a1EsX1E9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246S1F9KSl9LEdRPXQuZm9yd2FyZFJlZihfUSksWVE9R1EsWFE9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0ek0zMTUuNyAyOTEuNWMyNy4zIDAgNDkuNSAyMi4xIDQ5LjUgNDkuNHMtMjIuMSA0OS40LTQ5LjUgNDkuNGE0OS40IDQ5LjQgMCAxMTAtOTguOHpNMzY2LjkgNTc4Yy0xMy42IDQyLjMtMTAuMiAyNi43LTY0LjQgMTQ0LjVsLTc4LjUtNDlzODcuNy03OS44IDEwNS42LTExNi4yYzE5LjItMzguNC0yMS4xLTU4LjktMjEuMS01OC45bC02MC4yLTM3LjUgMzIuNy01MC4yYzQ1LjQgMzMuNyA0OC43IDM2LjYgNzkuMiA2Ny4yIDIzLjggMjMuOSAyMC43IDU2LjggNi43IDEwMC4xem00MjcuMiA1NWMtMTUuMyAxNDMuOC0yMDIuNCA5MC4zLTIwMi40IDkwLjNsMTAuMi00MS4xIDQzLjMgOS4zYzgwIDUgNzIuMy02NC45IDcyLjMtNjQuOVY0MjNjLjYtNzcuMy03Mi42LTg1LjQtMjA0LjItMzguM2wzMC42IDguM2MtMi41IDktMTIuNSAyMy4yLTI1LjIgMzguNmgxNzZ2MzUuNmgtOTkuMXY0NC41aDk4Ljd2MzUuN2gtOTguN1Y2MjJjMTQuOS00LjggMjguNi0xMS41IDQwLjUtMjAuNWwtOC43LTMyLjUgNDYuNS0xNC40IDM4LjggOTQuOS01Ny4zIDIzLjktMTAuMi0zNy44Yy0yNS42IDE5LjUtNzguOCA0OC0xNzEuOCA0NS40LTk5LjIgMi42LTczLjctMTEyLTczLjctMTEybDIuNS0xLjNINDcyYy0uNSAxNC43LTYuNiAzOC43IDEuNyA1MS44IDYuOCAxMC44IDI0LjIgMTIuNiAzNS4zIDEzLjEgMS4zLjEgMi42LjEgMy45LjF2LTg1LjNoLTEwMXYtMzUuN2gxMDF2LTQ0LjVINDg3Yy0yMi43IDI0LjEtNDMuNSA0NC4xLTQzLjUgNDQuMWwtMzAuNi0yNi43YzIxLjctMjIuOSA0My4zLTU5LjEgNTYuOC04My4yLTEwLjkgNC40LTIyIDkuMi0zMy42IDE0LjItMTEuMiAxNC4zLTI0LjIgMjktMzguNyA0My41LjUuOC01MC0yOC40LTUwLTI4LjQgNTIuMi00NC40IDgxLjQtMTM5LjkgODEuNC0xMzkuOWw3Mi41IDIwLjRzLTUuOSAxNC0xOC40IDM1LjZjMjkwLjMtODIuMyAzMDcuNCA1MC41IDMwNy40IDUwLjVzMTkuMSA5MS44IDMuOCAyMzUuN3oifX1dfSxuYW1lOiJ0YW9iYW8tY2lyY2xlIix0aGVtZToib3V0bGluZWQifSxRUT1YUSxKUT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpRUX0pKX0scVE9dC5mb3J3YXJkUmVmKEpRKSxlSj1xUSx0Sj17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMTY4LjUgMjczLjdhNjguNyA2OC43IDAgMTAxMzcuNCAwIDY4LjcgNjguNyAwIDEwLTEzNy40IDB6bTczMCA3OS4ycy0yMy43LTE4NC40LTQyNi45LTcwLjFjMTcuMy0zMCAyNS42LTQ5LjUgMjUuNi00OS41TDM5Ni40IDIwNXMtNDAuNiAxMzIuNi0xMTMgMTk0LjRjMCAwIDcwLjEgNDAuNiA2OS40IDM5LjQgMjAuMS0yMC4xIDM4LjItNDAuNiA1My43LTYwLjQgMTYuMS03IDMxLjUtMTMuNiA0Ni43LTE5LjgtMTguNiAzMy41LTQ4LjcgODMuOC03OC44IDExNS42bDQyLjQgMzdzMjguOC0yNy43IDYwLjQtNjEuMmgzNnY2MS44SDM3Mi45djQ5LjVoMTQwLjN2MTE4LjVjLTEuNyAwLTMuNiAwLTUuNC0uMi0xNS40LS43LTM5LjUtMy4zLTQ5LTE4LjItMTEuNS0xOC4xLTMtNTEuNS0yLjQtNzEuOWgtOTdsLTMuNCAxLjhzLTM1LjUgMTU5LjEgMTAyLjMgMTU1LjVjMTI5LjEgMy42IDIwMy0zNiAyMzguNi02My4xbDE0LjIgNTIuNiA3OS42LTMzLjItNTMuOS0xMzEuOS02NC42IDIwLjEgMTIuMSA0NS4yYy0xNi42IDEyLjQtMzUuNiAyMS43LTU2LjIgMjguNFY1NjEuM2gxMzcuMXYtNDkuNUg2MjguMVY0NTBoMTM3LjZ2LTQ5LjVINTIxLjNjMTcuNi0yMS40IDMxLjUtNDEuMSAzNS01My42bC00Mi41LTExLjZjMTgyLjgtNjUuNSAyODQuNS01NC4yIDI4My42IDUzLjJ2MjgyLjhzMTAuOCA5Ny4xLTEwMC40IDkwLjFsLTYwLjItMTIuOS0xNC4yIDU3LjFTODgyLjUgODgwIDkwMy43IDY4MC4yYzIxLjMtMjAwLTUuMi0zMjcuMy01LjItMzI3LjN6bS03MDcuNCAxOC4zbC00NS40IDY5LjcgODMuNiA1Mi4xczU2IDI4LjUgMjkuNCA4MS45QzIzMy44IDYyNS41IDExMiA3MzYuMyAxMTIgNzM2LjNsMTA5IDY4LjFjNzUuNC0xNjMuNyA3MC41LTE0MiA4OS41LTIwMC43IDE5LjUtNjAuMSAyMy43LTEwNS45LTkuNC0xMzkuMS00Mi40LTQyLjYtNDctNDYuNi0xMTAtOTMuNHoifX1dfSxuYW1lOiJ0YW9iYW8iLHRoZW1lOiJvdXRsaW5lZCJ9LG5KPXRKLHJKPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOm5KfSkpfSxhSj10LmZvcndhcmRSZWYockopLG9KPWFKLGlKPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTMxNS43IDI5MS41YzI3LjMgMCA0OS41IDIyLjEgNDkuNSA0OS40cy0yMi4xIDQ5LjQtNDkuNSA0OS40YTQ5LjQgNDkuNCAwIDExMC05OC44ek0zNjYuOSA1NzhjLTEzLjYgNDIuMy0xMC4yIDI2LjctNjQuNCAxNDQuNWwtNzguNS00OXM4Ny43LTc5LjggMTA1LjYtMTE2LjJjMTkuMi0zOC40LTIxLjEtNTguOS0yMS4xLTU4LjlsLTYwLjItMzcuNSAzMi43LTUwLjJjNDUuNCAzMy43IDQ4LjcgMzYuNiA3OS4yIDY3LjIgMjMuOCAyMy45IDIwLjcgNTYuOCA2LjcgMTAwLjF6bTQyNy4yIDU1Yy0xNS4zIDE0My44LTIwMi40IDkwLjMtMjAyLjQgOTAuM2wxMC4yLTQxLjEgNDMuMyA5LjNjODAgNSA3Mi4zLTY0LjkgNzIuMy02NC45VjQyM2MuNi03Ny4zLTcyLjYtODUuNC0yMDQuMi0zOC4zbDMwLjYgOC4zYy0yLjUgOS0xMi41IDIzLjItMjUuMiAzOC42aDE3NnYzNS42aC05OS4xdjQ0LjVoOTguN3YzNS43aC05OC43VjYyMmMxNC45LTQuOCAyOC42LTExLjUgNDAuNS0yMC41bC04LjctMzIuNSA0Ni41LTE0LjQgMzguOCA5NC45LTU3LjMgMjMuOS0xMC4yLTM3LjhjLTI1LjYgMTkuNS03OC44IDQ4LTE3MS44IDQ1LjQtOTkuMiAyLjYtNzMuNy0xMTItNzMuNy0xMTJsMi41LTEuM0g0NzJjLS41IDE0LjctNi42IDM4LjcgMS43IDUxLjggNi44IDEwLjggMjQuMiAxMi42IDM1LjMgMTMuMSAxLjMuMSAyLjYuMSAzLjkuMXYtODUuM2gtMTAxdi0zNS43aDEwMXYtNDQuNUg0ODdjLTIyLjcgMjQuMS00My41IDQ0LjEtNDMuNSA0NC4xbC0zMC42LTI2LjdjMjEuNy0yMi45IDQzLjMtNTkuMSA1Ni44LTgzLjItMTAuOSA0LjQtMjIgOS4yLTMzLjYgMTQuMi0xMS4yIDE0LjMtMjQuMiAyOS0zOC43IDQzLjUuNS44LTUwLTI4LjQtNTAtMjguNCA1Mi4yLTQ0LjQgODEuNC0xMzkuOSA4MS40LTEzOS45bDcyLjUgMjAuNHMtNS45IDE0LTE4LjQgMzUuNmMyOTAuMy04Mi4zIDMwNy40IDUwLjUgMzA3LjQgNTAuNXMxOS4xIDkxLjggMy44IDIzNS43eiJ9fV19LG5hbWU6InRhb2Jhby1zcXVhcmUiLHRoZW1lOiJmaWxsZWQifSxsSj1pSixzSj1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpsSn0pKX0sY0o9dC5mb3J3YXJkUmVmKHNKKSx1Sj1jSixkSj1lKDU1MzU1KSxmSj17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODQ4IDM1OS4zSDYyNy43TDgyNS44IDEwOWM0LjEtNS4zLjQtMTMtNi4zLTEzSDQzNmMtMi44IDAtNS41IDEuNS02LjkgNEwxNzAgNTQ3LjVjLTMuMSA1LjMuNyAxMiA2LjkgMTJoMTc0LjRsLTg5LjQgMzU3LjZjLTEuOSA3LjggNy41IDEzLjMgMTMuMyA3LjdMODUzLjUgMzczYzUuMi00LjkgMS43LTEzLjctNS41LTEzLjd6In19XX0sbmFtZToidGh1bmRlcmJvbHQiLHRoZW1lOiJmaWxsZWQifSx2Sj1mSixoSj1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjp2Sn0pKX0sbUo9dC5mb3J3YXJkUmVmKGhKKSxnSj1tSixwSj17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODQ4IDM1OS4zSDYyNy43TDgyNS44IDEwOWM0LjEtNS4zLjQtMTMtNi4zLTEzSDQzNmMtMi44IDAtNS41IDEuNS02LjkgNEwxNzAgNTQ3LjVjLTMuMSA1LjMuNyAxMiA2LjkgMTJoMTc0LjRsLTg5LjQgMzU3LjZjLTEuOSA3LjggNy41IDEzLjMgMTMuMyA3LjdMODUzLjUgMzczYzUuMi00LjkgMS43LTEzLjctNS41LTEzLjd6TTM3OC4yIDczMi41bDYwLjMtMjQxSDI4MS4xbDE4OS42LTMyNy40aDIyNC42TDQ4NyA0MjcuNGgyMTFMMzc4LjIgNzMyLjV6In19XX0sbmFtZToidGh1bmRlcmJvbHQiLHRoZW1lOiJvdXRsaW5lZCJ9LHlKPXBKLENKPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOnlKfSkpfSxiSj10LmZvcndhcmRSZWYoQ0opLFNKPWJKLE9KPXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTY5NS40IDE2NC4xSDQ3MC44TDI4MS4yIDQ5MS41aDE1Ny40bC02MC4zIDI0MSAzMTkuOC0zMDUuMWgtMjExeiIsZmlsbDp2fX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NDguMSAzNTkuM0g2MjcuOEw4MjUuOSAxMDljNC4xLTUuMy40LTEzLTYuMy0xM0g0MzYuMWMtMi44IDAtNS41IDEuNS02LjkgNEwxNzAuMSA1NDcuNWMtMy4xIDUuMy43IDEyIDYuOSAxMmgxNzQuNEwyNjIgOTE3LjFjLTEuOSA3LjggNy41IDEzLjMgMTMuMyA3LjdMODUzLjYgMzczYzUuMi00LjkgMS43LTEzLjctNS41LTEzLjd6TTM3OC4zIDczMi41bDYwLjMtMjQxSDI4MS4ybDE4OS42LTMyNy40aDIyNC42TDQ4Ny4xIDQyNy40aDIxMUwzNzguMyA3MzIuNXoiLGZpbGw6Zn19XX19LG5hbWU6InRodW5kZXJib2x0Iix0aGVtZToidHdvdG9uZSJ9LHhKPU9KLHdKPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOnhKfSkpfSxFSj10LmZvcndhcmRSZWYod0opLFRKPUVKLE1KPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6eyJmaWxsLXJ1bGUiOiJldmVub2RkIix2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTEyIDIyNC45NkM5MTIgMTYyLjU3IDg2MS40MiAxMTIgNzk5LjA0IDExMkgyMjQuOTZDMTYyLjU3IDExMiAxMTIgMTYyLjU3IDExMiAyMjQuOTZ2NTc0LjA4QzExMiA4NjEuNDMgMTYyLjU4IDkxMiAyMjQuOTYgOTEyaDU3NC4wOEM4NjEuNDIgOTEyIDkxMiA4NjEuNDMgOTEyIDc5OS4wNHpNNzc0Ljc2IDQ2MC45MmMtNTEuNjIuNTctOTkuNzEtMTUuMDMtMTQxLjk0LTQzLjkzdjIwMi44N2ExOTIuMyAxOTIuMyAwIDAxLTE0OSAxODcuODVjLTExOS4wNiAyNy4xNy0yMTkuODYtNTguOTUtMjMyLjU3LTE2MS44My0xMy4zLTEwMi44OSA1Mi4zMi0xOTMuMDYgMTUyLjg5LTIxMy4yOSAxOS42NS00LjA0IDQ5LjItNC4wNCA2NC40Ni0uNTd2MTA4LjY2Yy00LjctMS4xNS05LjA5LTIuMzEtMTMuNzEtMi44OS0zOS4zLTYuOTQtNzcuMzcgMTIuNzItOTIuOTggNDguNTUtMTUuNiAzNS44NC01LjE2IDc3LjQ1IDI2LjYzIDEwMS43MyAyNi41OSAyMC44IDU2LjA5IDIzLjcgODYuMTQgOS44MiAzMC4wNi0xMy4yOSA0Ni4yMS0zNy41NiA0OS42OC03MC41LjU4LTQuNjMuNTQtOS44NC41NC0xNS4wNFYyMjIuMjFjMC0xMC45OS4wOS0xMC41IDExLjA3LTEwLjVoODYuMTJjNi4zNiAwIDguNjcuOSA5LjI1IDguNDMgNC42MiA2Ny4wNCA1NS41MyAxMjQuMTQgMTIwLjg0IDEzMi44MSA2Ljk0IDEuMTYgMTQuMzcgMS42MiAyMi41OCAyLjJ6In19XX0sbmFtZToidGlrLXRvayIsdGhlbWU6ImZpbGxlZCJ9LFJKPU1KLElKPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOlJKfSkpfSxQSj10LmZvcndhcmRSZWYoSUopLHpKPVBKLEZKPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6eyJmaWxsLXJ1bGUiOiJldmVub2RkIix2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTMwLjAxIDExMi42N2M0My42Ny0uNjcgODctLjM0IDEzMC4zMy0uNjcgMi42NyA1MSAyMSAxMDMgNTguMzMgMTM5IDM3LjMzIDM3IDkwIDU0IDE0MS4zMyA1OS42NlY0NDVjLTQ4LTEuNjctOTYuMzMtMTEuNjctMTQwLTMyLjM0LTE5LTguNjYtMzYuNjYtMTkuNjYtNTQtMzEtLjMzIDk3LjMzLjM0IDE5NC42Ny0uNjYgMjkxLjY3LTIuNjcgNDYuNjYtMTggOTMtNDUgMTMxLjMzLTQzLjY2IDY0LTExOS4zMiAxMDUuNjYtMTk2Ljk5IDEwNy00Ny42NiAyLjY2LTk1LjMzLTEwLjM0LTEzNi0zNC4zNEMyMjAuMDQgODM3LjY2IDE3Mi43IDc2NSAxNjUuNyA2ODdjLS42Ny0xNi42Ni0xLTMzLjMzLS4zNC00OS42NiA2LTYzLjM0IDM3LjMzLTEyNCA4Ni0xNjUuMzQgNTUuMzMtNDggMTMyLjY2LTcxIDIwNC45OS01Ny4zMy42NyA0OS4zNC0xLjMzIDk4LjY3LTEuMzMgMTQ4LTMzLTEwLjY3LTcxLjY3LTcuNjctMTAwLjY3IDEyLjMzLTIxIDEzLjY3LTM3IDM0LjY3LTQ1LjMzIDU4LjM0LTcgMTctNSAzNS42Ni00LjY2IDUzLjY2IDggNTQuNjcgNjAuNjYgMTAwLjY3IDExNi42NiA5NS42NyAzNy4zMy0uMzQgNzMtMjIgOTIuMzMtNTMuNjcgNi4zMy0xMSAxMy4zMy0yMi4zMyAxMy42Ni0zNS4zMyAzLjM0LTU5LjY3IDItMTE5IDIuMzQtMTc4LjY2LjMzLTEzNC4zNC0uMzQtMjY4LjMzLjY2LTQwMi4zMyJ9fV19LG5hbWU6InRpay10b2siLHRoZW1lOiJvdXRsaW5lZCJ9LEFKPUZKLExKPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkFKfSkpfSxaSj10LmZvcndhcmRSZWYoTEopLCRKPVpKLEhKPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODUgNzgwSDE2NWMtNC40IDAtOCAzLjYtOCA4djYwYzAgNC40IDMuNiA4IDggOGg3MjBjNC40IDAgOC0zLjYgOC04di02MGMwLTQuNC0zLjYtOC04LTh6TTQwMCAzMjUuN2g3My45VjY2NGMwIDQuNCAzLjYgOCA4IDhoNjBjNC40IDAgOC0zLjYgOC04VjMyNS43SDYyNGM2LjcgMCAxMC40LTcuNyA2LjMtMTIuOUw1MTguMyAxNzFhOCA4IDAgMDAtMTIuNiAwbC0xMTIgMTQxLjdjLTQuMSA1LjMtLjQgMTMgNi4zIDEzeiJ9fV19LG5hbWU6InRvLXRvcCIsdGhlbWU6Im91dGxpbmVkIn0sREo9SEosQko9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246REp9KSl9LFZKPXQuZm9yd2FyZFJlZihCSiksTko9Vkosako9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg2NS4zIDI0NC43Yy0uMy0uMy02MS4xIDU5LjgtMTgyLjEgMTgwLjZsLTg0LjktODQuOSAxODAuOS0xODAuOWMtOTUuMi01Ny4zLTIxNy41LTQyLjYtMjk2LjggMzYuN0EyNDQuNDIgMjQ0LjQyIDAgMDA0MTkgNDMybDEuOCA2LjctMjgzLjUgMjgzLjRjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42bDE0MS40IDE0MS40YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwbDI4My4zLTI4My4zIDYuNyAxLjhjODMuNyAyMi4zIDE3My42LS45IDIzNi02My4zIDc5LjQtNzkuMyA5NC4xLTIwMS42IDM4LTI5Ni42eiJ9fV19LG5hbWU6InRvb2wiLHRoZW1lOiJmaWxsZWQifSxVSj1qSixXSj1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpVSn0pKX0sa0o9dC5mb3J3YXJkUmVmKFdKKSxLSj1rSixfSj17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODc2LjYgMjM5LjVjLS41LS45LTEuMi0xLjgtMi0yLjUtNS01LTEzLjEtNS0xOC4xIDBMNjg0LjIgNDA5LjNsLTY3LjktNjcuOUw3ODguNyAxNjljLjgtLjggMS40LTEuNiAyLTIuNSAzLjYtNi4xIDEuNi0xMy45LTQuNS0xNy41LTk4LjItNTgtMjI2LjgtNDQuNy0zMTEuMyAzOS43LTY3IDY3LTg5LjIgMTYyLTY2LjUgMjQ3LjRsLTI5MyAyOTNjLTMgMy0yLjggNy45LjMgMTFsMTY5LjcgMTY5LjdjMy4xIDMuMSA4LjEgMy4zIDExIC4zbDI5Mi45LTI5Mi45Yzg1LjUgMjIuOCAxODAuNS43IDI0Ny42LTY2LjQgODQuNC04NC41IDk3LjctMjEzLjEgMzkuNy0zMTEuM3pNNzg2IDQ5OS44Yy01OC4xIDU4LjEtMTQ1LjMgNjkuMy0yMTQuNiAzMy42bC04LjggOC44LS4xLS4xLTI3NCAyNzQuMS03OS4yLTc5LjIgMjMwLjEtMjMwLjFzMCAuMS4xLjFsNTIuOC01Mi44Yy0zNS43LTY5LjMtMjQuNS0xNTYuNSAzMy42LTIxNC42YTE4NC4yIDE4NC4yIDAgMDExNDQtNTMuNUw1MzcgMzE4LjlhMzIuMDUgMzIuMDUgMCAwMDAgNDUuM2wxMjQuNSAxMjQuNWEzMi4wNSAzMi4wNSAwIDAwNDUuMyAwbDEzMi44LTEzMi44YzMuNyA1MS44LTE0LjQgMTA0LjgtNTMuNiAxNDMuOXoifX1dfSxuYW1lOiJ0b29sIix0aGVtZToib3V0bGluZWQifSxHSj1fSixZSj1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpHSn0pKX0sWEo9dC5mb3J3YXJkUmVmKFlKKSxRSj1YSixKSj17aWNvbjpmdW5jdGlvbihmLHYpe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik03MDYuOCA0ODguN2EzMi4wNSAzMi4wNSAwIDAxLTQ1LjMgMEw1MzcgMzY0LjJhMzIuMDUgMzIuMDUgMCAwMTAtNDUuM2wxMzIuOS0xMzIuOGExODQuMiAxODQuMiAwIDAwLTE0NCA1My41Yy01OC4xIDU4LjEtNjkuMyAxNDUuMy0zMy42IDIxNC42TDQzOS41IDUwN2MtLjEgMC0uMS0uMS0uMS0uMUwyMDkuMyA3MzdsNzkuMiA3OS4yIDI3NC0yNzQuMS4xLjEgOC44LTguOGM2OS4zIDM1LjcgMTU2LjUgMjQuNSAyMTQuNi0zMy42IDM5LjItMzkuMSA1Ny4zLTkyLjEgNTMuNi0xNDMuOUw3MDYuOCA0ODguN3oiLGZpbGw6dn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODc2LjYgMjM5LjVjLS41LS45LTEuMi0xLjgtMi0yLjUtNS01LTEzLjEtNS0xOC4xIDBMNjg0LjIgNDA5LjNsLTY3LjktNjcuOUw3ODguNyAxNjljLjgtLjggMS40LTEuNiAyLTIuNSAzLjYtNi4xIDEuNi0xMy45LTQuNS0xNy41LTk4LjItNTgtMjI2LjgtNDQuNy0zMTEuMyAzOS43LTY3IDY3LTg5LjIgMTYyLTY2LjUgMjQ3LjRsLTI5MyAyOTNjLTMgMy0yLjggNy45LjMgMTFsMTY5LjcgMTY5LjdjMy4xIDMuMSA4LjEgMy4zIDExIC4zbDI5Mi45LTI5Mi45Yzg1LjUgMjIuOCAxODAuNS43IDI0Ny42LTY2LjQgODQuNC04NC41IDk3LjctMjEzLjEgMzkuNy0zMTEuM3pNNzg2IDQ5OS44Yy01OC4xIDU4LjEtMTQ1LjMgNjkuMy0yMTQuNiAzMy42bC04LjggOC44LS4xLS4xLTI3NCAyNzQuMS03OS4yLTc5LjIgMjMwLjEtMjMwLjFzMCAuMS4xLjFsNTIuOC01Mi44Yy0zNS43LTY5LjMtMjQuNS0xNTYuNSAzMy42LTIxNC42YTE4NC4yIDE4NC4yIDAgMDExNDQtNTMuNUw1MzcgMzE4LjlhMzIuMDUgMzIuMDUgMCAwMDAgNDUuM2wxMjQuNSAxMjQuNWEzMi4wNSAzMi4wNSAwIDAwNDUuMyAwbDEzMi44LTEzMi44YzMuNyA1MS44LTE0LjQgMTA0LjgtNTMuNiAxNDMuOXoiLGZpbGw6Zn19XX19LG5hbWU6InRvb2wiLHRoZW1lOiJ0d290b25lIn0scUo9SkosZXE9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246cUp9KSl9LHRxPXQuZm9yd2FyZFJlZihlcSksbnE9dHEscnE9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0xNjQuNyA2NjAuMmMtMS4xLjUtMi4zLjgtMy41LjhoLTYyYy0zLjEgMC01LjktMS44LTcuMi00LjZsLTc0LjYtMTU5LjJoLTg4LjdWNzE3YzAgNC40LTMuNiA4LTggOEgzNzhjLTQuNCAwLTgtMy42LTgtOFYzMDdjMC00LjQgMy42LTggOC04aDE1NS42Yzk4LjggMCAxNDQuMiA1OS45IDE0NC4yIDEzMS4xIDAgNzAuMi00My42IDEwNi40LTc4LjQgMTE5LjJsODAuOCAxNjQuMmMyLjEgMy45LjQgOC43LTMuNSAxMC43ek01MjMuOSAzNTdoLTgzLjR2MTQ4SDUyMmM1MyAwIDgyLjgtMjUuNiA4Mi44LTcyLjQgMC01MC4zLTMyLjktNzUuNi04MC45LTc1LjZ6In19XX0sbmFtZToidHJhZGVtYXJrLWNpcmNsZSIsdGhlbWU6ImZpbGxlZCJ9LGFxPXJxLG9xPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOmFxfSkpfSxpcT10LmZvcndhcmRSZWYob3EpLGxxPWlxLHNxPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6bTg3LjUtMzM0LjdjMzQuOC0xMi44IDc4LjQtNDkgNzguNC0xMTkuMiAwLTcxLjItNDUuNS0xMzEuMS0xNDQuMi0xMzEuMUgzNzhjLTQuNCAwLTggMy42LTggOHY0MTBjMCA0LjQgMy42IDggOCA4aDU0LjVjNC40IDAgOC0zLjYgOC04VjU2MS4yaDg4LjdsNzQuNiAxNTkuMmMxLjMgMi44IDQuMSA0LjYgNy4yIDQuNmg2MmE3LjkgNy45IDAgMDA3LjEtMTEuNWwtODAuNi0xNjQuMnpNNTIyIDUwNWgtODEuNVYzNTdoODMuNGM0OCAwIDgwLjkgMjUuMyA4MC45IDc1LjUgMCA0Ni45LTI5LjggNzIuNS04Mi44IDcyLjV6In19XX0sbmFtZToidHJhZGVtYXJrLWNpcmNsZSIsdGhlbWU6Im91dGxpbmVkIn0sY3E9c3EsdXE9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246Y3F9KSl9LGRxPXQuZm9yd2FyZFJlZih1cSksZnE9ZHEsdnE9e2ljb246ZnVuY3Rpb24oZix2KXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeiIsZmlsbDpmfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgMTQwYy0yMDUuNCAwLTM3MiAxNjYuNi0zNzIgMzcyczE2Ni42IDM3MiAzNzIgMzcyIDM3Mi0xNjYuNiAzNzItMzcyLTE2Ni42LTM3Mi0zNzItMzcyem0xNzAuNyA1ODQuMmMtMS4xLjUtMi4zLjgtMy41LjhoLTYyYy0zLjEgMC01LjktMS44LTcuMi00LjZsLTc0LjYtMTU5LjJoLTg4LjdWNzE3YzAgNC40LTMuNiA4LTggOEgzODRjLTQuNCAwLTgtMy42LTgtOFYzMDdjMC00LjQgMy42LTggOC04aDE1NS42Yzk4LjggMCAxNDQuMiA1OS45IDE0NC4yIDEzMS4xIDAgNzAuMi00My42IDEwNi40LTc4LjQgMTE5LjJsODAuOCAxNjQuMmMyLjEgMy45LjQgOC43LTMuNSAxMC43eiIsZmlsbDp2fX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MjkuOSAzNTdoLTgzLjR2MTQ4SDUyOGM1MyAwIDgyLjgtMjUuNiA4Mi44LTcyLjQgMC01MC4zLTMyLjktNzUuNi04MC45LTc1LjZ6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTYwNS40IDU0OS4zYzM0LjgtMTIuOCA3OC40LTQ5IDc4LjQtMTE5LjIgMC03MS4yLTQ1LjQtMTMxLjEtMTQ0LjItMTMxLjFIMzg0Yy00LjQgMC04IDMuNi04IDh2NDEwYzAgNC40IDMuNiA4IDggOGg1NC43YzQuNCAwIDgtMy42IDgtOFY1NjEuMmg4OC43TDYxMCA3MjAuNGMxLjMgMi44IDQuMSA0LjYgNy4yIDQuNmg2MmMxLjIgMCAyLjQtLjMgMy41LS44IDMuOS0yIDUuNi02LjggMy41LTEwLjdsLTgwLjgtMTY0LjJ6TTUyOCA1MDVoLTgxLjVWMzU3aDgzLjRjNDggMCA4MC45IDI1LjMgODAuOSA3NS42IDAgNDYuOC0yOS44IDcyLjQtODIuOCA3Mi40eiIsZmlsbDpmfX1dfX0sbmFtZToidHJhZGVtYXJrLWNpcmNsZSIsdGhlbWU6InR3b3RvbmUifSxocT12cSxtcT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpocX0pKX0sZ3E9dC5mb3J3YXJkUmVmKG1xKSxwcT1ncSx5cT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyem04Ny41LTMzNC43YzM0LjgtMTIuOCA3OC40LTQ5IDc4LjQtMTE5LjIgMC03MS4yLTQ1LjUtMTMxLjEtMTQ0LjItMTMxLjFIMzc4Yy00LjQgMC04IDMuNi04IDh2NDEwYzAgNC40IDMuNiA4IDggOGg1NC41YzQuNCAwIDgtMy42IDgtOFY1NjEuMmg4OC43bDc0LjYgMTU5LjJjMS4zIDIuOCA0LjEgNC42IDcuMiA0LjZoNjJhNy45IDcuOSAwIDAwNy4xLTExLjVsLTgwLjYtMTY0LjJ6TTUyMiA1MDVoLTgxLjVWMzU3aDgzLjRjNDggMCA4MC45IDI1LjMgODAuOSA3NS41IDAgNDYuOS0yOS44IDcyLjUtODIuOCA3Mi41eiJ9fV19LG5hbWU6InRyYWRlbWFyayIsdGhlbWU6Im91dGxpbmVkIn0sQ3E9eXEsYnE9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246Q3F9KSl9LFNxPXQuZm9yd2FyZFJlZihicSksT3E9U3EseHE9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTY2OC42IDMyMGMwLTQuNC0zLjYtOC04LThoLTU0LjVjLTMgMC01LjggMS43LTcuMSA0LjRsLTg0LjcgMTY4LjhINTExbC04NC43LTE2OC44YTggOCAwIDAwLTcuMS00LjRoLTU1LjdjLTEuMyAwLTIuNi4zLTMuOCAxLTMuOSAyLjEtNS4zIDctMy4yIDEwLjhsMTAzLjkgMTkxLjZoLTU3Yy00LjQgMC04IDMuNi04IDh2MjcuMWMwIDQuNCAzLjYgOCA4IDhoNzZ2MzloLTc2Yy00LjQgMC04IDMuNi04IDh2MjcuMWMwIDQuNCAzLjYgOCA4IDhoNzZWNzA0YzAgNC40IDMuNiA4IDggOGg0OS45YzQuNCAwIDgtMy42IDgtOHYtNjMuNWg3Ni4zYzQuNCAwIDgtMy42IDgtOHYtMjcuMWMwLTQuNC0zLjYtOC04LThoLTc2LjN2LTM5aDc2LjNjNC40IDAgOC0zLjYgOC04di0yNy4xYzAtNC40LTMuNi04LTgtOEg1NjRsMTAzLjctMTkxLjZjLjUtMS4xLjktMi40LjktMy43ek0xNTcuOSA1MDQuMmEzNTIuNyAzNTIuNyAwIDAxMTAzLjUtMjQyLjRjMzIuNS0zMi41IDcwLjMtNTguMSAxMTIuNC03NS45IDQzLjYtMTguNCA4OS45LTI3LjggMTM3LjYtMjcuOCA0Ny44IDAgOTQuMSA5LjMgMTM3LjYgMjcuOCA0Mi4xIDE3LjggNzkuOSA0My40IDExMi40IDc1LjkgMTAgMTAgMTkuMyAyMC41IDI3LjkgMzEuNGwtNTAgMzkuMWE4IDggMCAwMDMgMTQuMWwxNTYuOCAzOC4zYzUgMS4yIDkuOS0yLjYgOS45LTcuN2wuOC0xNjEuNWMwLTYuNy03LjctMTAuNS0xMi45LTYuM2wtNDcuOCAzNy40Qzc3MC43IDE0Ni4zIDY0OC42IDgyIDUxMS41IDgyIDI3NyA4MiA4Ni4zIDI3MC4xIDgyIDUwMy44YTggOCAwIDAwOCA4LjJoNjBjNC4zIDAgNy44LTMuNSA3LjktNy44ek05MzQgNTEyaC02MGMtNC4zIDAtNy45IDMuNS04IDcuOGEzNTIuNyAzNTIuNyAwIDAxLTEwMy41IDI0Mi40IDM1Mi41NyAzNTIuNTcgMCAwMS0xMTIuNCA3NS45Yy00My42IDE4LjQtODkuOSAyNy44LTEzNy42IDI3LjhzLTk0LjEtOS4zLTEzNy42LTI3LjhhMzUyLjU3IDM1Mi41NyAwIDAxLTExMi40LTc1LjljLTEwLTEwLTE5LjMtMjAuNS0yNy45LTMxLjRsNDkuOS0zOS4xYTggOCAwIDAwLTMtMTQuMWwtMTU2LjgtMzguM2MtNS0xLjItOS45IDIuNi05LjkgNy43bC0uOCAxNjEuN2MwIDYuNyA3LjcgMTAuNSAxMi45IDYuM2w0Ny44LTM3LjRDMjUzLjMgODc3LjcgMzc1LjQgOTQyIDUxMi41IDk0MiA3NDcgOTQyIDkzNy43IDc1My45IDk0MiA1MjAuMmE4IDggMCAwMC04LTguMnoifX1dfSxuYW1lOiJ0cmFuc2FjdGlvbiIsdGhlbWU6Im91dGxpbmVkIn0sd3E9eHEsRXE9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246d3F9KSl9LFRxPXQuZm9yd2FyZFJlZihFcSksTXE9VHEsUnE9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJkZWZzIixhdHRyczp7fSxjaGlsZHJlbjpbe3RhZzoic3R5bGUiLGF0dHJzOnt9fV19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMTQwIDE4OGg1ODR2MTY0aDc2VjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMkg5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDU0NHYtNzZIMTQwVjE4OHoifX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00MTQuMyAyNTZoLTYwLjZjLTMuNCAwLTYuNCAyLjItNy42IDUuNEwyMTkgNjI5LjRjLS4zLjgtLjQgMS43LS40IDIuNiAwIDQuNCAzLjYgOCA4IDhoNTUuMWMzLjQgMCA2LjQtMi4yIDcuNi01LjRMMzIyIDU0MGgxOTYuMkw0MjIgMjYxLjRhOC40MiA4LjQyIDAgMDAtNy43LTUuNHptMTIuNCAyMjhoLTg1LjVMMzg0IDM2MC4yIDQyNi43IDQ4NHpNOTM2IDUyOEg4MDB2LTkzYzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY5M0g1OTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0djE3NmMwIDEzLjMgMTAuNyAyNCAyNCAyNGgxMzZ2MTUyYzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LThWNzUyaDEzNmMxMy4zIDAgMjQtMTAuNyAyNC0yNFY1NTJjMC0xMy4zLTEwLjctMjQtMjQtMjR6TTcyOCA2ODBoLTg4di04MGg4OHY4MHptMTYwIDBoLTg4di04MGg4OHY4MHoifX1dfSxuYW1lOiJ0cmFuc2xhdGlvbiIsdGhlbWU6Im91dGxpbmVkIn0sSXE9UnEsUHE9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246SXF9KSl9LHpxPXQuZm9yd2FyZFJlZihQcSksRnE9enEsQXE9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg2OCAxNjBoLTkydi00MGMwLTQuNC0zLjYtOC04LThIMjU2Yy00LjQgMC04IDMuNi04IDh2NDBoLTkyYTQ0IDQ0IDAgMDAtNDQgNDR2MTQ4YzAgODEuNyA2MCAxNDkuNiAxMzguMiAxNjJDMjY1LjYgNjMwLjIgMzU5IDcyMS44IDQ3NiA3MzQuNXYxMDUuMkgyODBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyVjkwNGMwIDQuNCAzLjYgOCA4IDhoNTEyYzQuNCAwIDgtMy42IDgtOHYtMzIuM2MwLTE3LjctMTQuMy0zMi0zMi0zMkg1NDhWNzM0LjVDNjY1IDcyMS44IDc1OC40IDYzMC4yIDc3My44IDUxNCA4NTIgNTAxLjYgOTEyIDQzMy43IDkxMiAzNTJWMjA0YTQ0IDQ0IDAgMDAtNDQtNDR6TTI0OCA0MzkuNmMtMzcuMS0xMS45LTY0LTQ2LjctNjQtODcuNlYyMzJoNjR2MjA3LjZ6TTg0MCAzNTJjMCA0MS0yNi45IDc1LjgtNjQgODcuNlYyMzJoNjR2MTIweiJ9fV19LG5hbWU6InRyb3BoeSIsdGhlbWU6ImZpbGxlZCJ9LExxPUFxLFpxPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkxxfSkpfSwkcT10LmZvcndhcmRSZWYoWnEpLEhxPSRxLERxPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NjggMTYwaC05MnYtNDBjMC00LjQtMy42LTgtOC04SDI1NmMtNC40IDAtOCAzLjYtOCA4djQwaC05MmE0NCA0NCAwIDAwLTQ0IDQ0djE0OGMwIDgxLjcgNjAgMTQ5LjYgMTM4LjIgMTYyQzI2NS43IDYzMC4yIDM1OSA3MjEuNyA0NzYgNzM0LjV2MTA1LjJIMjgwYy0xNy43IDAtMzIgMTQuMy0zMiAzMlY5MDRjMCA0LjQgMy42IDggOCA4aDUxMmM0LjQgMCA4LTMuNiA4LTh2LTMyLjNjMC0xNy43LTE0LjMtMzItMzItMzJINTQ4VjczNC41QzY2NSA3MjEuNyA3NTguMyA2MzAuMiA3NzMuOCA1MTQgODUyIDUwMS42IDkxMiA0MzMuNyA5MTIgMzUyVjIwNGE0NCA0NCAwIDAwLTQ0LTQ0ek0xODQgMzUyVjIzMmg2NHYyMDcuNmE5MS45OSA5MS45OSAwIDAxLTY0LTg3LjZ6bTUyMCAxMjhjMCA0OS4xLTE5LjEgOTUuNC01My45IDEzMC4xLTM0LjggMzQuOC04MSA1My45LTEzMC4xIDUzLjloLTE2Yy00OS4xIDAtOTUuNC0xOS4xLTEzMC4xLTUzLjktMzQuOC0zNC44LTUzLjktODEtNTMuOS0xMzAuMVYxODRoMzg0djI5NnptMTM2LTEyOGMwIDQxLTI2LjkgNzUuOC02NCA4Ny42VjIzMmg2NHYxMjB6In19XX0sbmFtZToidHJvcGh5Iix0aGVtZToib3V0bGluZWQifSxCcT1EcSxWcT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpCcX0pKX0sTnE9dC5mb3J3YXJkUmVmKFZxKSxqcT1OcSxVcT17aWNvbjpmdW5jdGlvbihmLHYpe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0zMjAgNDgwYzAgNDkuMSAxOS4xIDk1LjMgNTMuOSAxMzAuMSAzNC43IDM0LjggODEgNTMuOSAxMzAuMSA1My45aDE2YzQ5LjEgMCA5NS4zLTE5LjEgMTMwLjEtNTMuOSAzNC44LTM0LjcgNTMuOS04MSA1My45LTEzMC4xVjE4NEgzMjB2Mjk2ek0xODQgMzUyYzAgNDEgMjYuOSA3NS44IDY0IDg3LjYtMzcuMS0xMS45LTY0LTQ2LjctNjQtODcuNnptMzY0IDM4Mi41QzY2NSA3MjEuOCA3NTguNCA2MzAuMiA3NzMuOCA1MTQgNzU4LjMgNjMwLjIgNjY1IDcyMS43IDU0OCA3MzQuNXpNMjUwLjIgNTE0QzI2NS42IDYzMC4yIDM1OSA3MjEuOCA0NzYgNzM0LjUgMzU5IDcyMS43IDI2NS43IDYzMC4yIDI1MC4yIDUxNHoiLGZpbGw6dn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODY4IDE2MGgtOTJ2LTQwYzAtNC40LTMuNi04LTgtOEgyNTZjLTQuNCAwLTggMy42LTggOHY0MGgtOTJhNDQgNDQgMCAwMC00NCA0NHYxNDhjMCA4MS43IDYwIDE0OS42IDEzOC4yIDE2MkMyNjUuNyA2MzAuMiAzNTkgNzIxLjcgNDc2IDczNC41djEwNS4ySDI4MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJWOTA0YzAgNC40IDMuNiA4IDggOGg1MTJjNC40IDAgOC0zLjYgOC04di0zMi4zYzAtMTcuNy0xNC4zLTMyLTMyLTMySDU0OFY3MzQuNUM2NjUgNzIxLjcgNzU4LjMgNjMwLjIgNzczLjggNTE0IDg1MiA1MDEuNiA5MTIgNDMzLjcgOTEyIDM1MlYyMDRhNDQgNDQgMCAwMC00NC00NHpNMjQ4IDQzOS42YTkxLjk5IDkxLjk5IDAgMDEtNjQtODcuNlYyMzJoNjR2MjA3LjZ6TTcwNCA0ODBjMCA0OS4xLTE5LjEgOTUuNC01My45IDEzMC4xLTM0LjggMzQuOC04MSA1My45LTEzMC4xIDUzLjloLTE2Yy00OS4xIDAtOTUuNC0xOS4xLTEzMC4xLTUzLjktMzQuOC0zNC44LTUzLjktODEtNTMuOS0xMzAuMVYxODRoMzg0djI5NnptMTM2LTEyOGMwIDQxLTI2LjkgNzUuOC02NCA4Ny42VjIzMmg2NHYxMjB6IixmaWxsOmZ9fV19fSxuYW1lOiJ0cm9waHkiLHRoZW1lOiJ0d290b25lIn0sV3E9VXEsa3E9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246V3F9KSl9LEtxPXQuZm9yd2FyZFJlZihrcSksX3E9S3EsR3E9e2ljb246e3RhZzoic3ZnIixhdHRyczp7ImZpbGwtcnVsZSI6ImV2ZW5vZGQiLHZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik02MDggMTkyYTMyIDMyIDAgMDEzMiAzMnYxNjBoMTc0LjgxYTMyIDMyIDAgMDEyNi42OCAxNC4zM2wxMTMuMTkgMTcwLjg0YTMyIDMyIDAgMDE1LjMyIDE3LjY4VjY3MmEzMiAzMiAwIDAxLTMyIDMyaC05NmMwIDcwLjctNTcuMyAxMjgtMTI4IDEyOHMtMTI4LTU3LjMtMTI4LTEyOEgzODRjMCA3MC43LTU3LjMgMTI4LTEyOCAxMjhzLTEyOC01Ny4zLTEyOC0xMjhIOTZhMzIgMzIgMCAwMS0zMi0zMlYyMjRhMzIgMzIgMCAwMTMyLTMyek0yNTYgNjQwYTY0IDY0IDAgMDAwIDEyOGgxLjA2QTY0IDY0IDAgMDAyNTYgNjQwbTQ0OCAwYTY0IDY0IDAgMDAwIDEyOGgxLjA2QTY0IDY0IDAgMDA3MDQgNjQwbTkzLjYzLTE5Mkg2NDB2MTQ1LjEyQTEyNy40MyAxMjcuNDMgMCAwMTcwNCA1NzZjNDcuMzggMCA4OC43NSAyNS43NCAxMTAuODggNjRIODk2di00My41MnpNNTAwIDQ0OEgzMzJhMTIgMTIgMCAwMC0xMiAxMnY0MGExMiAxMiAwIDAwMTIgMTJoMTY4YTEyIDEyIDAgMDAxMi0xMnYtNDBhMTIgMTIgMCAwMC0xMi0xMk0zMDggMzIwSDIwNGExMiAxMiAwIDAwLTEyIDEydjQwYTEyIDEyIDAgMDAxMiAxMmgxMDRhMTIgMTIgMCAwMDEyLTEydi00MGExMiAxMiAwIDAwLTEyLTEyIn19XX0sbmFtZToidHJ1Y2siLHRoZW1lOiJmaWxsZWQifSxZcT1HcSxYcT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpZcX0pKX0sUXE9dC5mb3J3YXJkUmVmKFhxKSxKcT1RcSxxcT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnsiZmlsbC1ydWxlIjoiZXZlbm9kZCIsdmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTYwOCAxOTJhMzIgMzIgMCAwMTMyIDMydjE2MGgxNzQuODFhMzIgMzIgMCAwMTI2LjY4IDE0LjMzbDExMy4xOSAxNzAuODRhMzIgMzIgMCAwMTUuMzIgMTcuNjhWNjcyYTMyIDMyIDAgMDEtMzIgMzJoLTk2YzAgNzAuNy01Ny4zIDEyOC0xMjggMTI4cy0xMjgtNTcuMy0xMjgtMTI4SDM4NGMwIDcwLjctNTcuMyAxMjgtMTI4IDEyOHMtMTI4LTU3LjMtMTI4LTEyOEg5NmEzMiAzMiAwIDAxLTMyLTMyVjIyNGEzMiAzMiAwIDAxMzItMzJ6TTI1NiA2NDBhNjQgNjQgMCAwMDAgMTI4aDEuMDZBNjQgNjQgMCAwMDI1NiA2NDBtNDQ4IDBhNjQgNjQgMCAwMDAgMTI4aDEuMDZBNjQgNjQgMCAwMDcwNCA2NDBNNTc2IDI1NkgxMjh2Mzg0aDE3LjEyYzIyLjEzLTM4LjI2IDYzLjUtNjQgMTEwLjg4LTY0IDQ3LjM4IDAgODguNzUgMjUuNzQgMTEwLjg4IDY0SDU3NnptMjIxLjYzIDE5Mkg2NDB2MTQ1LjEyQTEyNy40MyAxMjcuNDMgMCAwMTcwNCA1NzZjNDcuMzggMCA4OC43NSAyNS43NCAxMTAuODggNjRIODk2di00My41MnpNNTAwIDQ0OGExMiAxMiAwIDAxMTIgMTJ2NDBhMTIgMTIgMCAwMS0xMiAxMkgzMzJhMTIgMTIgMCAwMS0xMi0xMnYtNDBhMTIgMTIgMCAwMTEyLTEyek0zMDggMzIwYTEyIDEyIDAgMDExMiAxMnY0MGExMiAxMiAwIDAxLTEyIDEySDIwNGExMiAxMiAwIDAxLTEyLTEydi00MGExMiAxMiAwIDAxMTItMTJ6In19XX0sbmFtZToidHJ1Y2siLHRoZW1lOiJvdXRsaW5lZCJ9LGVlZT1xcSx0ZWU9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246ZWVlfSkpfSxuZWU9dC5mb3J3YXJkUmVmKHRlZSkscmVlPW5lZSxhZWU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7ImZpbGwtcnVsZSI6ImV2ZW5vZGQiLHZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoiZGVmcyIsYXR0cnM6e30sY2hpbGRyZW46W3t0YWc6ImZpbHRlciIsYXR0cnM6e2ZpbHRlclVuaXRzOiJvYmplY3RCb3VuZGluZ0JveCIsaGVpZ2h0OiIxMDIuMyUiLGlkOiJhIix3aWR0aDoiMTAyLjMlIix4OiItMS4yJSIseToiLTEuMiUifSxjaGlsZHJlbjpbe3RhZzoiZmVPZmZzZXQiLGF0dHJzOntkeToiMiIsaW46IlNvdXJjZUFscGhhIixyZXN1bHQ6InNoYWRvd09mZnNldE91dGVyMSJ9fSx7dGFnOiJmZUdhdXNzaWFuQmx1ciIsYXR0cnM6e2luOiJzaGFkb3dPZmZzZXRPdXRlcjEiLHJlc3VsdDoic2hhZG93Qmx1ck91dGVyMSIsc3RkRGV2aWF0aW9uOiIyIn19LHt0YWc6ImZlQ29sb3JNYXRyaXgiLGF0dHJzOntpbjoic2hhZG93Qmx1ck91dGVyMSIscmVzdWx0OiJzaGFkb3dNYXRyaXhPdXRlcjEiLHZhbHVlczoiMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMC41IDAifX0se3RhZzoiZmVNZXJnZSIsYXR0cnM6e30sY2hpbGRyZW46W3t0YWc6ImZlTWVyZ2VOb2RlIixhdHRyczp7aW46InNoYWRvd01hdHJpeE91dGVyMSJ9fSx7dGFnOiJmZU1lcmdlTm9kZSIsYXR0cnM6e2luOiJTb3VyY2VHcmFwaGljIn19XX1dfV19LHt0YWc6ImciLGF0dHJzOntmaWx0ZXI6InVybCgjYSkiLHRyYW5zZm9ybToidHJhbnNsYXRlKDkgOSkifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0xODUuMTQgMTEyTDEyOCAyNTQuODZWNzk3LjdoMTcxLjQzVjkxMkg0MTMuN0w1MjggNzk3LjcxaDE0Mi44NmwyMDAtMjAwVjExMnptMzE0LjI5IDQyOC41N0g0MTMuN1YzMTAuMjFoODUuNzJ6bTIwMCAwSDYxMy43VjMxMC4yMWg4NS43MnoifX1dfV19LG5hbWU6InR3aXRjaCIsdGhlbWU6ImZpbGxlZCJ9LG9lZT1hZWUsaWVlPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOm9lZX0pKX0sbGVlPXQuZm9yd2FyZFJlZihpZWUpLHNlZT1sZWUsY2VlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6eyJmaWxsLXJ1bGUiOiJldmVub2RkIix2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMTY2LjEzIDExMkwxMTQgMjUxLjE3djU1Ni40NmgxOTEuMlY5MTJoMTA0LjRsMTA0LjIzLTEwNC40aDE1Ni41TDg3OSA1OTlWMTEyem02OS41NCA2OS41SDgwOS41djM4Mi42M0w2ODcuNzcgNjg1Ljg3SDQ5Ni41TDM5Mi4yNyA3OTAuMVY2ODUuODdoLTE1Ni42ek00MjcgNTI5LjRoNjkuNVYzMjAuNzNINDI3em0xOTEuMTcgMGg2OS41M1YzMjAuNzNoLTY5LjUzeiJ9fV19LG5hbWU6InR3aXRjaCIsdGhlbWU6Im91dGxpbmVkIn0sdWVlPWNlZSxkZWU9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246dWVlfSkpfSxmZWU9dC5mb3J3YXJkUmVmKGRlZSksdmVlPWZlZSxoZWU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0yMTUuMyAzMzcuN2MuMyA0LjcuMyA5LjYuMyAxNC40IDAgMTQ2LjgtMTExLjggMzE1LjktMzE2LjEgMzE1LjktNjMgMC0xMjEuNC0xOC4zLTE3MC42LTQ5LjggOSAxIDE3LjYgMS40IDI2LjggMS40IDUyIDAgOTkuOC0xNy42IDEzNy45LTQ3LjQtNDguOC0xLTg5LjgtMzMtMTAzLjgtNzcgMTcuMSAyLjUgMzIuNSAyLjUgNTAuMS0yYTExMSAxMTEgMCAwMS04OC45LTEwOXYtMS40YzE0LjcgOC4zIDMyIDEzLjQgNTAuMSAxNC4xYTExMS4xMyAxMTEuMTMgMCAwMS00OS41LTkyLjRjMC0yMC43IDUuNC0zOS42IDE1LjEtNTZhMzE1LjI4IDMxNS4yOCAwIDAwMjI5IDExNi4xQzQ5MiAzNTMuMSA1NDguNCAyOTIgNjE2LjIgMjkyYzMyIDAgNjAuOCAxMy40IDgxLjEgMzUgMjUuMS00LjcgNDkuMS0xNC4xIDcwLjUtMjYuNy04LjMgMjUuNy0yNS43IDQ3LjQtNDguOCA2MS4xIDIyLjQtMi40IDQ0LTguNiA2NC0xNy4zLTE1LjEgMjIuMi0zNCA0MS45LTU1LjcgNTcuNnoifX1dfSxuYW1lOiJ0d2l0dGVyLWNpcmNsZSIsdGhlbWU6ImZpbGxlZCJ9LG1lZT1oZWUsZ2VlPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOm1lZX0pKX0scGVlPXQuZm9yd2FyZFJlZihnZWUpLHllZT1wZWUsQ2VlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MjggMjU0LjNjLTMwLjYgMTMuMi02My45IDIyLjctOTguMiAyNi40YTE3MC4xIDE3MC4xIDAgMDA3NS05NCAzMzYuNjQgMzM2LjY0IDAgMDEtMTA4LjIgNDEuMkExNzAuMSAxNzAuMSAwIDAwNjcyIDE3NGMtOTQuNSAwLTE3MC41IDc2LjYtMTcwLjUgMTcwLjYgMCAxMy4yIDEuNiAyNi40IDQuMiAzOS4xLTE0MS41LTcuNC0yNjcuNy03NS0zNTEuNi0xNzguNWExNjkuMzIgMTY5LjMyIDAgMDAtMjMuMiA4Ni4xYzAgNTkuMiAzMC4xIDExMS40IDc2IDE0Mi4xYTE3MiAxNzIgMCAwMS03Ny4xLTIxLjd2Mi4xYzAgODIuOSA1OC42IDE1MS42IDEzNi43IDE2Ny40YTE4MC42IDE4MC42IDAgMDEtNDQuOSA1LjhjLTExLjEgMC0yMS42LTEuMS0zMi4yLTIuNkMyMTEgNjUyIDI3My45IDcwMS4xIDM0OC44IDcwMi43Yy01OC42IDQ1LjktMTMyIDcyLjktMjExLjcgNzIuOS0xNC4zIDAtMjcuNS0uNS00MS4yLTIuMUMxNzEuNSA4MjIgMjYxLjIgODUwIDM1Ny44IDg1MCA2NzEuNCA4NTAgODQzIDU5MC4yIDg0MyAzNjQuN2MwLTcuNCAwLTE0LjgtLjUtMjIuMiAzMy4yLTI0LjMgNjIuMy01NC40IDg1LjUtODguMnoifX1dfSxuYW1lOiJ0d2l0dGVyIix0aGVtZToib3V0bGluZWQifSxiZWU9Q2VlLFNlZT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpiZWV9KSl9LE9lZT10LmZvcndhcmRSZWYoU2VlKSx4ZWU9T2VlLHdlZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek03MjcuMyA0MDEuN2MuMyA0LjcuMyA5LjYuMyAxNC40IDAgMTQ2LjgtMTExLjggMzE1LjktMzE2LjEgMzE1LjktNjMgMC0xMjEuNC0xOC4zLTE3MC42LTQ5LjggOSAxIDE3LjYgMS40IDI2LjggMS40IDUyIDAgOTkuOC0xNy42IDEzNy45LTQ3LjQtNDguOC0xLTg5LjgtMzMtMTAzLjgtNzcgMTcuMSAyLjUgMzIuNSAyLjUgNTAuMS0yYTExMSAxMTEgMCAwMS04OC45LTEwOXYtMS40YzE0LjcgOC4zIDMyIDEzLjQgNTAuMSAxNC4xYTExMS4xMyAxMTEuMTMgMCAwMS00OS41LTkyLjRjMC0yMC43IDUuNC0zOS42IDE1LjEtNTZhMzE1LjI4IDMxNS4yOCAwIDAwMjI5IDExNi4xQzQ5MiAzNTMuMSA1NDguNCAyOTIgNjE2LjIgMjkyYzMyIDAgNjAuOCAxMy40IDgxLjEgMzUgMjUuMS00LjcgNDkuMS0xNC4xIDcwLjUtMjYuNy04LjMgMjUuNy0yNS43IDQ3LjQtNDguOCA2MS4xIDIyLjQtMi40IDQ0LTguNiA2NC0xNy4zLTE1LjEgMjIuMi0zNCA0MS45LTU1LjcgNTcuNnoifX1dfSxuYW1lOiJ0d2l0dGVyLXNxdWFyZSIsdGhlbWU6ImZpbGxlZCJ9LEVlZT13ZWUsVGVlPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkVlZX0pKX0sTWVlPXQuZm9yd2FyZFJlZihUZWUpLFJlZT1NZWUsSWVlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04MjQgODA0SDIwMGMtNC40IDAtOCAzLjQtOCA3LjZ2NjAuOGMwIDQuMiAzLjYgNy42IDggNy42aDYyNGM0LjQgMCA4LTMuNCA4LTcuNnYtNjAuOGMwLTQuMi0zLjYtNy42LTgtNy42em0tMzEyLTc2YzY5LjQgMCAxMzQuNi0yNy4xIDE4My44LTc2LjJDNzQ1IDYwMi43IDc3MiA1MzcuNCA3NzIgNDY4VjE1NmMwLTYuNi01LjQtMTItMTItMTJoLTYwYy02LjYgMC0xMiA1LjQtMTIgMTJ2MzEyYzAgOTctNzkgMTc2LTE3NiAxNzZzLTE3Ni03OS0xNzYtMTc2VjE1NmMwLTYuNi01LjQtMTItMTItMTJoLTYwYy02LjYgMC0xMiA1LjQtMTIgMTJ2MzEyYzAgNjkuNCAyNy4xIDEzNC42IDc2LjIgMTgzLjhDMzc3LjMgNzAxIDQ0Mi42IDcyOCA1MTIgNzI4eiJ9fV19LG5hbWU6InVuZGVybGluZSIsdGhlbWU6Im91dGxpbmVkIn0sUGVlPUllZSx6ZWU9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246UGVlfSkpfSxGZWU9dC5mb3J3YXJkUmVmKHplZSksQWVlPUZlZSxMZWU9ZSgxMDE0OSksWmVlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoiZGVmcyIsYXR0cnM6e30sY2hpbGRyZW46W3t0YWc6InN0eWxlIixhdHRyczp7fX1dfSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTczNiA1NTBIMjg4Yy04LjggMC0xNiA3LjItMTYgMTZ2MTc2YzAgOC44IDcuMiAxNiAxNiAxNmg0NDhjOC44IDAgMTYtNy4yIDE2LTE2VjU2NmMwLTguOC03LjItMTYtMTYtMTZ6bS01NiAxMzZIMzQ0di02NGgzMzZ2NjR6bTIwOCAxMzBjLTM5LjggMC03MiAzMi4yLTcyIDcyczMyLjIgNzIgNzIgNzIgNzItMzIuMiA3Mi03Mi0zMi4yLTcyLTcyLTcyem0wIDk2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0IDI0IDEwLjcgMjQgMjQtMTAuNyAyNC0yNCAyNHpNNzM2IDI2NkgyODhjLTguOCAwLTE2IDcuMi0xNiAxNnYxNzZjMCA4LjggNy4yIDE2IDE2IDE2aDQ0OGM4LjggMCAxNi03LjIgMTYtMTZWMjgyYzAtOC44LTcuMi0xNi0xNi0xNnptLTU2IDEzNkgzNDR2LTY0aDMzNnY2NHptMjA4LTE5NGMzOS44IDAgNzItMzIuMiA3Mi03MnMtMzIuMi03Mi03Mi03Mi03MiAzMi4yLTcyIDcyIDMyLjIgNzIgNzIgNzJ6bTAtOTZjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjQtMjQtMTAuNy0yNC0yNCAxMC43LTI0IDI0LTI0ek0xMzYgNjRjLTM5LjggMC03MiAzMi4yLTcyIDcyczMyLjIgNzIgNzIgNzIgNzItMzIuMiA3Mi03Mi0zMi4yLTcyLTcyLTcyem0wIDk2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0IDI0IDEwLjcgMjQgMjQtMTAuNyAyNC0yNCAyNHptMCA2NTZjLTM5LjggMC03MiAzMi4yLTcyIDcyczMyLjIgNzIgNzIgNzIgNzItMzIuMiA3Mi03Mi0zMi4yLTcyLTcyLTcyem0wIDk2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0IDI0IDEwLjcgMjQgMjQtMTAuNyAyNC0yNCAyNHoifX1dfSxuYW1lOiJ1bmdyb3VwIix0aGVtZToib3V0bGluZWQifSwkZWU9WmVlLEhlZT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjokZWV9KSl9LERlZT10LmZvcndhcmRSZWYoSGVlKSxCZWU9RGVlLFZlZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODMyIDQ2NEgzMzJWMjQwYzAtMzAuOSAyNS4xLTU2IDU2LTU2aDI0OGMzMC45IDAgNTYgMjUuMSA1NiA1NnY2OGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di02OGMwLTcwLjctNTcuMy0xMjgtMTI4LTEyOEgzODhjLTcwLjcgMC0xMjggNTcuMy0xMjggMTI4djIyNGgtNjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjM4NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWNDk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyek01NDAgNzAxdjUzYzAgNC40LTMuNiA4LTggOGgtNDBjLTQuNCAwLTgtMy42LTgtOHYtNTNhNDguMDEgNDguMDEgMCAxMTU2IDB6In19XX0sbmFtZToidW5sb2NrIix0aGVtZToiZmlsbGVkIn0sTmVlPVZlZSxqZWU9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246TmVlfSkpfSxVZWU9dC5mb3J3YXJkUmVmKGplZSksV2VlPVVlZSxrZWU9ZSgzMzU1KSxLZWU9e2ljb246ZnVuY3Rpb24oZix2KXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMjMyIDg0MGg1NjBWNTM2SDIzMnYzMDR6bTI4MC0yMjZhNDguMDEgNDguMDEgMCAwMTI4IDg3djUzYzAgNC40LTMuNiA4LTggOGgtNDBjLTQuNCAwLTgtMy42LTgtOHYtNTNhNDguMDEgNDguMDEgMCAwMTI4LTg3eiIsZmlsbDp2fX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00ODQgNzAxdjUzYzAgNC40IDMuNiA4IDggOGg0MGM0LjQgMCA4LTMuNiA4LTh2LTUzYTQ4LjAxIDQ4LjAxIDAgMTAtNTYgMHoiLGZpbGw6Zn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNODMyIDQ2NEgzMzJWMjQwYzAtMzAuOSAyNS4xLTU2IDU2LTU2aDI0OGMzMC45IDAgNTYgMjUuMSA1NiA1NnY2OGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di02OGMwLTcwLjctNTcuMy0xMjgtMTI4LTEyOEgzODhjLTcwLjcgMC0xMjggNTcuMy0xMjggMTI4djIyNGgtNjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjM4NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWNDk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgMzc2SDIzMlY1MzZoNTYwdjMwNHoiLGZpbGw6Zn19XX19LG5hbWU6InVubG9jayIsdGhlbWU6InR3b3RvbmUifSxfZWU9S2VlLEdlZT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpfZWV9KSl9LFllZT10LmZvcndhcmRSZWYoR2VlKSxYZWU9WWVlLFFlZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTEyIDE5MkgzMjhjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTg0YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wIDI4NEgzMjhjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTg0YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wIDI4NEgzMjhjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTg0YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04ek0xMDQgMjI4YTU2IDU2IDAgMTAxMTIgMCA1NiA1NiAwIDEwLTExMiAwem0wIDI4NGE1NiA1NiAwIDEwMTEyIDAgNTYgNTYgMCAxMC0xMTIgMHptMCAyODRhNTYgNTYgMCAxMDExMiAwIDU2IDU2IDAgMTAtMTEyIDB6In19XX0sbmFtZToidW5vcmRlcmVkLWxpc3QiLHRoZW1lOiJvdXRsaW5lZCJ9LEplZT1RZWUscWVlPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkplZX0pKX0sZXRlPXQuZm9yd2FyZFJlZihxZWUpLHR0ZT1ldGUsbnRlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMTc4IDU1NWgtNDYuOWMtMTAuMiAwLTE5LjktNC45LTI1LjktMTMuMkw1MTIgNDYwLjQgNDA2LjggNjA1LjhjLTYgOC4zLTE1LjYgMTMuMi0yNS45IDEzLjJIMzM0Yy02LjUgMC0xMC4zLTcuNC02LjUtMTIuN2wxNzgtMjQ2YzMuMi00LjQgOS43LTQuNCAxMi45IDBsMTc4IDI0NmMzLjkgNS4zLjEgMTIuNy02LjQgMTIuN3oifX1dfSxuYW1lOiJ1cC1jaXJjbGUiLHRoZW1lOiJmaWxsZWQifSxydGU9bnRlLGF0ZT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpydGV9KSl9LG90ZT10LmZvcndhcmRSZWYoYXRlKSxpdGU9b3RlLGx0ZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTE4LjUgMzYwLjNhNy45NSA3Ljk1IDAgMDAtMTIuOSAwbC0xNzggMjQ2Yy0zLjggNS4zIDAgMTIuNyA2LjUgMTIuN0gzODFjMTAuMiAwIDE5LjktNC45IDI1LjktMTMuMkw1MTIgNDYwLjRsMTA1LjIgMTQ1LjRjNiA4LjMgMTUuNiAxMy4yIDI1LjkgMTMuMkg2OTBjNi41IDAgMTAuMy03LjQgNi41LTEyLjdsLTE3OC0yNDZ6In19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeiJ9fV19LG5hbWU6InVwLWNpcmNsZSIsdGhlbWU6Im91dGxpbmVkIn0sc3RlPWx0ZSxjdGU9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246c3RlfSkpfSx1dGU9dC5mb3J3YXJkUmVmKGN0ZSksZHRlPXV0ZSxmdGU9e2ljb246ZnVuY3Rpb24oZix2KXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDE0MGMtMjA1LjQgMC0zNzIgMTY2LjYtMzcyIDM3MnMxNjYuNiAzNzIgMzcyIDM3MiAzNzItMTY2LjYgMzcyLTM3Mi0xNjYuNi0zNzItMzcyLTM3MnptMTc4IDQ3OWgtNDYuOWMtMTAuMiAwLTE5LjktNC45LTI1LjktMTMuMkw1MTIgNDYwLjQgNDA2LjggNjA1LjhjLTYgOC4zLTE1LjYgMTMuMi0yNS45IDEzLjJIMzM0Yy02LjUgMC0xMC4zLTcuNC02LjUtMTIuN2wxNzgtMjQ2YzMuMi00LjQgOS43LTQuNCAxMi45IDBsMTc4IDI0NmMzLjkgNS4zLjEgMTIuNy02LjQgMTIuN3oiLGZpbGw6dn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeiIsZmlsbDpmfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTguNCAzNjAuM2E3Ljk1IDcuOTUgMCAwMC0xMi45IDBsLTE3OCAyNDZjLTMuOCA1LjMgMCAxMi43IDYuNSAxMi43aDQ2LjljMTAuMyAwIDE5LjktNC45IDI1LjktMTMuMkw1MTIgNDYwLjRsMTA1LjIgMTQ1LjRjNiA4LjMgMTUuNyAxMy4yIDI1LjkgMTMuMkg2OTBjNi41IDAgMTAuMy03LjQgNi40LTEyLjdsLTE3OC0yNDZ6IixmaWxsOmZ9fV19fSxuYW1lOiJ1cC1jaXJjbGUiLHRoZW1lOiJ0d290b25lIn0sdnRlPWZ0ZSxodGU9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246dnRlfSkpfSxtdGU9dC5mb3J3YXJkUmVmKGh0ZSksZ3RlPW10ZSxwdGU9ZSg0ODExNSkseXRlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTY5MCA2MjRoLTQ2LjljLTEwLjIgMC0xOS45LTQuOS0yNS45LTEzLjJMNTEyIDQ2NS40IDQwNi44IDYxMC44Yy02IDguMy0xNS42IDEzLjItMjUuOSAxMy4ySDMzNGMtNi41IDAtMTAuMy03LjQtNi41LTEyLjdsMTc4LTI0NmMzLjItNC40IDkuNy00LjQgMTIuOSAwbDE3OCAyNDZjMy45IDUuMy4xIDEyLjctNi40IDEyLjd6In19XX0sbmFtZToidXAtc3F1YXJlIix0aGVtZToiZmlsbGVkIn0sQ3RlPXl0ZSxidGU9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246Q3RlfSkpfSxTdGU9dC5mb3J3YXJkUmVmKGJ0ZSksT3RlPVN0ZSx4dGU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTMzNCA2MjRoNDYuOWMxMC4yIDAgMTkuOS00LjkgMjUuOS0xMy4yTDUxMiA0NjUuNGwxMDUuMiAxNDUuNGM2IDguMyAxNS42IDEzLjIgMjUuOSAxMy4ySDY5MGM2LjUgMCAxMC4zLTcuNCA2LjUtMTIuN2wtMTc4LTI0NmE3Ljk1IDcuOTUgMCAwMC0xMi45IDBsLTE3OCAyNDZBNy45NiA3Ljk2IDAgMDAzMzQgNjI0eiJ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6In19XX0sbmFtZToidXAtc3F1YXJlIix0aGVtZToib3V0bGluZWQifSx3dGU9eHRlLEV0ZT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjp3dGV9KSl9LFR0ZT10LmZvcndhcmRSZWYoRXRlKSxNdGU9VHRlLFJ0ZT17aWNvbjpmdW5jdGlvbihmLHYpe3JldHVybnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2eiIsZmlsbDpmfX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0xODQgODQwaDY1NlYxODRIMTg0djY1NnptMTQzLjUtMjI4LjdsMTc4LTI0NmMzLjItNC40IDkuNy00LjQgMTIuOSAwbDE3OCAyNDZjMy45IDUuMy4xIDEyLjctNi40IDEyLjdoLTQ2LjljLTEwLjIgMC0xOS45LTQuOS0yNS45LTEzLjJMNTEyIDQ2NS40IDQwNi44IDYxMC44Yy02IDguMy0xNS42IDEzLjItMjUuOSAxMy4ySDMzNGMtNi41IDAtMTAuMy03LjQtNi41LTEyLjd6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTMzNCA2MjRoNDYuOWMxMC4zIDAgMTkuOS00LjkgMjUuOS0xMy4yTDUxMiA0NjUuNGwxMDUuMiAxNDUuNGM2IDguMyAxNS43IDEzLjIgMjUuOSAxMy4ySDY5MGM2LjUgMCAxMC4zLTcuNCA2LjQtMTIuN2wtMTc4LTI0NmE3Ljk1IDcuOTUgMCAwMC0xMi45IDBsLTE3OCAyNDZjLTMuOCA1LjMgMCAxMi43IDYuNSAxMi43eiIsZmlsbDpmfX1dfX0sbmFtZToidXAtc3F1YXJlIix0aGVtZToidHdvdG9uZSJ9LEl0ZT1SdGUsUHRlPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkl0ZX0pKX0senRlPXQuZm9yd2FyZFJlZihQdGUpLEZ0ZT16dGUsQXRlPWUoODg0ODQpLEx0ZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNDA4IDMxMmg0OGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOGgtNDhjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDh6bTM1MiAxMjBWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMySDI5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2Mjg4Yy02Ni4yIDAtMTIwIDUyLjEtMTIwIDExNnYzNTZjMCA0LjQgMy42IDggOCA4aDcyMGM0LjQgMCA4LTMuNiA4LThWNTQ4YzAtNjMuOS01My44LTExNi0xMjAtMTE2em0tNzIgMEgzMzZWMTg0aDM1MnYyNDh6TTU2OCAzMTJoNDhjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4eiJ9fV19LG5hbWU6InVzYiIsdGhlbWU6ImZpbGxlZCJ9LFp0ZT1MdGUsJHRlPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOlp0ZX0pKX0sSHRlPXQuZm9yd2FyZFJlZigkdGUpLER0ZT1IdGUsQnRlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik03NjAgNDMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMkgyOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjI4OGMtNjYuMiAwLTEyMCA1Mi4xLTEyMCAxMTZ2MzU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LThWNTQ4YzAtMjQuMyAyMS42LTQ0IDQ4LjEtNDRoNDk1LjhjMjYuNSAwIDQ4LjEgMTkuNyA0OC4xIDQ0djM1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04VjU0OGMwLTYzLjktNTMuOC0xMTYtMTIwLTExNnptLTQyNCAwVjE4NGgzNTJ2MjQ4SDMzNnptMTIwLTE4NGgtNDhjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6bTE2MCAwaC00OGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOHoifX1dfSxuYW1lOiJ1c2IiLHRoZW1lOiJvdXRsaW5lZCJ9LFZ0ZT1CdGUsTnRlPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOlZ0ZX0pKX0sanRlPXQuZm9yd2FyZFJlZihOdGUpLFV0ZT1qdGUsV3RlPXtpY29uOmZ1bmN0aW9uKGYsdil7cmV0dXJue3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTc1OS45IDUwNEgyNjQuMWMtMjYuNSAwLTQ4LjEgMTkuNy00OC4xIDQ0djI5Mmg1OTJWNTQ4YzAtMjQuMy0yMS42LTQ0LTQ4LjEtNDR6IixmaWxsOnZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQ1NiAyNDhoLTQ4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04em0xNjAgMGgtNDhjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6IixmaWxsOmZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTc2MCA0MzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMySDI5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2Mjg4Yy02Ni4yIDAtMTIwIDUyLjEtMTIwIDExNnYzNTZjMCA0LjQgMy42IDggOCA4aDcyMGM0LjQgMCA4LTMuNiA4LThWNTQ4YzAtNjMuOS01My44LTExNi0xMjAtMTE2ek0zMzYgMTg0aDM1MnYyNDhIMzM2VjE4NHptNDcyIDY1NkgyMTZWNTQ4YzAtMjQuMyAyMS42LTQ0IDQ4LjEtNDRoNDk1LjhjMjYuNSAwIDQ4LjEgMTkuNyA0OC4xIDQ0djI5MnoiLGZpbGw6Zn19XX19LG5hbWU6InVzYiIsdGhlbWU6InR3b3RvbmUifSxrdGU9V3RlLEt0ZT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjprdGV9KSl9LF90ZT10LmZvcndhcmRSZWYoS3RlKSxHdGU9X3RlLFl0ZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNjc4LjMgNjQyLjRjMjQuMi0xMyA1MS45LTIwLjQgODEuNC0yMC40aC4xYzMgMCA0LjQtMy42IDIuMi01LjZhMzcxLjY3IDM3MS42NyAwIDAwLTEwMy43LTY1LjhjLS40LS4yLS44LS4zLTEuMi0uNUM3MTkuMiA1MDUgNzU5LjYgNDMxLjcgNzU5LjYgMzQ5YzAtMTM3LTExMC44LTI0OC0yNDcuNS0yNDhTMjY0LjcgMjEyIDI2NC43IDM0OWMwIDgyLjcgNDAuNCAxNTYgMTAyLjYgMjAxLjEtLjQuMi0uOC4zLTEuMi41LTQ0LjcgMTguOS04NC44IDQ2LTExOS4zIDgwLjZhMzczLjQyIDM3My40MiAwIDAwLTgwLjQgMTE5LjVBMzczLjYgMzczLjYgMCAwMDEzNyA4ODguOGE4IDggMCAwMDggOC4yaDU5LjljNC4zIDAgNy45LTMuNSA4LTcuOCAyLTc3LjIgMzIuOS0xNDkuNSA4Ny42LTIwNC4zQzM1NyA2MjguMiA0MzIuMiA1OTcgNTEyLjIgNTk3YzU2LjcgMCAxMTEuMSAxNS43IDE1OCA0NS4xYTguMSA4LjEgMCAwMDguMS4zek01MTIuMiA1MjFjLTQ1LjggMC04OC45LTE3LjktMTIxLjQtNTAuNEExNzEuMiAxNzEuMiAwIDAxMzQwLjUgMzQ5YzAtNDUuOSAxNy45LTg5LjEgNTAuMy0xMjEuNlM0NjYuMyAxNzcgNTEyLjIgMTc3czg4LjkgMTcuOSAxMjEuNCA1MC40QTE3MS4yIDE3MS4yIDAgMDE2ODMuOSAzNDljMCA0NS45LTE3LjkgODkuMS01MC4zIDEyMS42QzYwMS4xIDUwMy4xIDU1OCA1MjEgNTEyLjIgNTIxek04ODAgNzU5aC04NHYtODRjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djg0aC04NGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg4NHY4NGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di04NGg4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHoifX1dfSxuYW1lOiJ1c2VyLWFkZCIsdGhlbWU6Im91dGxpbmVkIn0sWHRlPVl0ZSxRdGU9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246WHRlfSkpfSxKdGU9dC5mb3J3YXJkUmVmKFF0ZSkscXRlPUp0ZSxlbmU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTY3OC4zIDY1NS40YzI0LjItMTMgNTEuOS0yMC40IDgxLjQtMjAuNGguMWMzIDAgNC40LTMuNiAyLjItNS42YTM3MS42NyAzNzEuNjcgMCAwMC0xMDMuNy02NS44Yy0uNC0uMi0uOC0uMy0xLjItLjVDNzE5LjIgNTE4IDc1OS42IDQ0NC43IDc1OS42IDM2MmMwLTEzNy0xMTAuOC0yNDgtMjQ3LjUtMjQ4UzI2NC43IDIyNSAyNjQuNyAzNjJjMCA4Mi43IDQwLjQgMTU2IDEwMi42IDIwMS4xLS40LjItLjguMy0xLjIuNS00NC43IDE4LjktODQuOCA0Ni0xMTkuMyA4MC42YTM3My40MiAzNzMuNDIgMCAwMC04MC40IDExOS41QTM3My42IDM3My42IDAgMDAxMzcgOTAxLjhhOCA4IDAgMDA4IDguMmg1OS45YzQuMyAwIDcuOS0zLjUgOC03LjggMi03Ny4yIDMyLjktMTQ5LjUgODcuNi0yMDQuM0MzNTcgNjQxLjIgNDMyLjIgNjEwIDUxMi4yIDYxMGM1Ni43IDAgMTExLjEgMTUuNyAxNTggNDUuMWE4LjEgOC4xIDAgMDA4LjEuM3pNNTEyLjIgNTM0Yy00NS44IDAtODguOS0xNy45LTEyMS40LTUwLjRBMTcxLjIgMTcxLjIgMCAwMTM0MC41IDM2MmMwLTQ1LjkgMTcuOS04OS4xIDUwLjMtMTIxLjZTNDY2LjMgMTkwIDUxMi4yIDE5MHM4OC45IDE3LjkgMTIxLjQgNTAuNEExNzEuMiAxNzEuMiAwIDAxNjgzLjkgMzYyYzAgNDUuOS0xNy45IDg5LjEtNTAuMyAxMjEuNkM2MDEuMSA1MTYuMSA1NTggNTM0IDUxMi4yIDUzNHpNODgwIDc3Mkg2NDBjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoMjQwYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04eiJ9fV19LG5hbWU6InVzZXItZGVsZXRlIix0aGVtZToib3V0bGluZWQifSx0bmU9ZW5lLG5uZT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjp0bmV9KSl9LHJuZT10LmZvcndhcmRSZWYobm5lKSxhbmU9cm5lLG9uZT1lKDg3NTQ3KSxpbmU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJkZWZzIixhdHRyczp7fSxjaGlsZHJlbjpbe3RhZzoic3R5bGUiLGF0dHJzOnt9fV19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNzU5IDMzNWMwLTEzNy0xMTEtMjQ4LTI0OC0yNDhTMjYzIDE5OCAyNjMgMzM1YzAgODIuOCA0MC42IDE1Ni4yIDEwMyAyMDEuMi0uNC4yLS43LjMtLjkuNC00NC43IDE4LjktODQuOCA0Ni0xMTkuMyA4MC42YTM3My40MiAzNzMuNDIgMCAwMC04MC40IDExOS41QTM3My42IDM3My42IDAgMDAxMzYgODc0LjhhOCA4IDAgMDA4IDguMmg1OS45YzQuMyAwIDcuOS0zLjUgOC03LjggMi03Ny4yIDMyLjktMTQ5LjUgODcuNi0yMDQuM0MzNTYgNjE0LjIgNDMxIDU4MyA1MTEgNTgzYzEzNyAwIDI0OC0xMTEgMjQ4LTI0OHpNNTExIDUwN2MtOTUgMC0xNzItNzctMTcyLTE3MnM3Ny0xNzIgMTcyLTE3MiAxNzIgNzcgMTcyIDE3Mi03NyAxNzItMTcyIDE3MnptMTA1IDIyMWgyNjRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThINzAzLjVsNDcuMi02MC4xYTguMSA4LjEgMCAwMDEuNy00LjljMC00LjQtMy42LTgtOC04aC03Mi42Yy00LjkgMC05LjUgMi4zLTEyLjYgNi4xbC02OC41IDg3LjFjLTQuNCA1LjYtNi44IDEyLjYtNi44IDE5LjguMSAxNy43IDE0LjQgMzIgMzIuMSAzMnptMjQwIDY0SDU5MmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGgxNzYuNWwtNDcuMiA2MC4xYTguMSA4LjEgMCAwMC0xLjcgNC45YzAgNC40IDMuNiA4IDggOGg3Mi42YzQuOSAwIDkuNS0yLjMgMTIuNi02LjFsNjguNS04Ny4xYzQuNC01LjYgNi44LTEyLjYgNi44LTE5LjgtLjEtMTcuNy0xNC40LTMyLTMyLjEtMzJ6In19XX0sbmFtZToidXNlci1zd2l0Y2giLHRoZW1lOiJvdXRsaW5lZCJ9LGxuZT1pbmUsc25lPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOmxuZX0pKX0sY25lPXQuZm9yd2FyZFJlZihzbmUpLHVuZT1jbmUsZG5lPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04OTIgNzcyaC04MHYtODBjMC00LjQtMy42LTgtOC04aC00OGMtNC40IDAtOCAzLjYtOCA4djgwaC04MGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGg4MHY4MGMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04di04MGg4MGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOHpNMzczLjUgNDk4LjRjLS45LTguNy0xLjQtMTcuNS0xLjQtMjYuNCAwLTE1LjkgMS41LTMxLjQgNC4zLTQ2LjUuNy0zLjYtMS4yLTcuMy00LjUtOC44LTEzLjYtNi4xLTI2LjEtMTQuNS0zNi45LTI1LjFhMTI3LjU0IDEyNy41NCAwIDAxLTM4LjctOTUuNGMuOS0zMi4xIDEzLjgtNjIuNiAzNi4zLTg1LjYgMjQuNy0yNS4zIDU3LjktMzkuMSA5My4yLTM4LjcgMzEuOS4zIDYyLjcgMTIuNiA4NiAzNC40IDcuOSA3LjQgMTQuNyAxNS42IDIwLjQgMjQuNCAyIDMuMSA1LjkgNC40IDkuMyAzLjIgMTcuNi02LjEgMzYuMi0xMC40IDU1LjMtMTIuNCA1LjYtLjYgOC44LTYuNiA2LjMtMTEuNi0zMi41LTY0LjMtOTguOS0xMDguNy0xNzUuNy0xMDkuOS0xMTAuOC0xLjctMjAzLjIgODkuMi0yMDMuMiAyMDAgMCA2Mi44IDI4LjkgMTE4LjggNzQuMiAxNTUuNS0zMS44IDE0LjctNjEuMSAzNS04Ni41IDYwLjQtNTQuOCA1NC43LTg1LjggMTI2LjktODcuOCAyMDRhOCA4IDAgMDA4IDguMmg1Ni4xYzQuMyAwIDcuOS0zLjQgOC03LjcgMS45LTU4IDI1LjQtMTEyLjMgNjYuNy0xNTMuNSAyOS40LTI5LjQgNjUuNC00OS44IDEwNC43LTU5LjcgMy44LTEuMSA2LjQtNC44IDUuOS04Ljh6TTgyNCA0NzJjMC0xMDkuNC04Ny45LTE5OC4zLTE5Ni45LTIwMEM1MTYuMyAyNzAuMyA0MjQgMzYxLjIgNDI0IDQ3MmMwIDYyLjggMjkgMTE4LjggNzQuMiAxNTUuNWEzMDAuOTUgMzAwLjk1IDAgMDAtODYuNCA2MC40QzM1NyA3NDIuNiAzMjYgODE0LjggMzI0IDg5MS44YTggOCAwIDAwOCA4LjJoNTZjNC4zIDAgNy45LTMuNCA4LTcuNyAxLjktNTggMjUuNC0xMTIuMyA2Ni43LTE1My41QzUwNS44IDY5NS43IDU2MyA2NzIgNjI0IDY3MmMxMTAuNCAwIDIwMC04OS41IDIwMC0yMDB6bS0xMDkuNSA5MC41QzY5MC4zIDU4Ni43IDY1OC4yIDYwMCA2MjQgNjAwcy02Ni4zLTEzLjMtOTAuNS0zNy41YTEyNy4yNiAxMjcuMjYgMCAwMS0zNy41LTkxLjhjLjMtMzIuOCAxMy40LTY0LjUgMzYuMy04OCAyNC0yNC42IDU2LjEtMzguMyA5MC40LTM4LjcgMzMuOS0uMyA2Ni44IDEyLjkgOTEgMzYuNiAyNC44IDI0LjMgMzguNCA1Ni44IDM4LjQgOTEuNC0uMSAzNC4yLTEzLjQgNjYuMy0zNy42IDkwLjV6In19XX0sbmFtZToidXNlcmdyb3VwLWFkZCIsdGhlbWU6Im91dGxpbmVkIn0sZm5lPWRuZSx2bmU9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246Zm5lfSkpfSxobmU9dC5mb3J3YXJkUmVmKHZuZSksbW5lPWhuZSxnbmU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4OCA3ODRINjY0Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDIyNGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOHpNMzczLjUgNTEwLjRjLS45LTguNy0xLjQtMTcuNS0xLjQtMjYuNCAwLTE1LjkgMS41LTMxLjQgNC4zLTQ2LjUuNy0zLjYtMS4yLTcuMy00LjUtOC44LTEzLjYtNi4xLTI2LjEtMTQuNS0zNi45LTI1LjFhMTI3LjU0IDEyNy41NCAwIDAxLTM4LjctOTUuNGMuOS0zMi4xIDEzLjgtNjIuNiAzNi4zLTg1LjYgMjQuNy0yNS4zIDU3LjktMzkuMSA5My4yLTM4LjcgMzEuOS4zIDYyLjcgMTIuNiA4NiAzNC40IDcuOSA3LjQgMTQuNyAxNS42IDIwLjQgMjQuNCAyIDMuMSA1LjkgNC40IDkuMyAzLjIgMTcuNi02LjEgMzYuMi0xMC40IDU1LjMtMTIuNCA1LjYtLjYgOC44LTYuNiA2LjMtMTEuNi0zMi41LTY0LjMtOTguOS0xMDguNy0xNzUuNy0xMDkuOS0xMTAuOS0xLjctMjAzLjMgODkuMi0yMDMuMyAxOTkuOSAwIDYyLjggMjguOSAxMTguOCA3NC4yIDE1NS41LTMxLjggMTQuNy02MS4xIDM1LTg2LjUgNjAuNC01NC44IDU0LjctODUuOCAxMjYuOS04Ny44IDIwNGE4IDggMCAwMDggOC4yaDU2LjFjNC4zIDAgNy45LTMuNCA4LTcuNyAxLjktNTggMjUuNC0xMTIuMyA2Ni43LTE1My41IDI5LjQtMjkuNCA2NS40LTQ5LjggMTA0LjctNTkuNyAzLjktMSA2LjUtNC43IDYtOC43ek04MjQgNDg0YzAtMTA5LjQtODcuOS0xOTguMy0xOTYuOS0yMDBDNTE2LjMgMjgyLjMgNDI0IDM3My4yIDQyNCA0ODRjMCA2Mi44IDI5IDExOC44IDc0LjIgMTU1LjVhMzAwLjk1IDMwMC45NSAwIDAwLTg2LjQgNjAuNEMzNTcgNzU0LjYgMzI2IDgyNi44IDMyNCA5MDMuOGE4IDggMCAwMDggOC4yaDU2YzQuMyAwIDcuOS0zLjQgOC03LjcgMS45LTU4IDI1LjQtMTEyLjMgNjYuNy0xNTMuNUM1MDUuOCA3MDcuNyA1NjMgNjg0IDYyNCA2ODRjMTEwLjQgMCAyMDAtODkuNSAyMDAtMjAwem0tMTA5LjUgOTAuNUM2OTAuMyA1OTguNyA2NTguMiA2MTIgNjI0IDYxMnMtNjYuMy0xMy4zLTkwLjUtMzcuNWExMjcuMjYgMTI3LjI2IDAgMDEtMzcuNS05MS44Yy4zLTMyLjggMTMuNC02NC41IDM2LjMtODggMjQtMjQuNiA1Ni4xLTM4LjMgOTAuNC0zOC43IDMzLjktLjMgNjYuOCAxMi45IDkxIDM2LjYgMjQuOCAyNC4zIDM4LjQgNTYuOCAzOC40IDkxLjQtLjEgMzQuMi0xMy40IDY2LjMtMzcuNiA5MC41eiJ9fV19LG5hbWU6InVzZXJncm91cC1kZWxldGUiLHRoZW1lOiJvdXRsaW5lZCJ9LHBuZT1nbmUseW5lPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOnBuZX0pKX0sQ25lPXQuZm9yd2FyZFJlZih5bmUpLGJuZT1DbmUsU25lPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoiZGVmcyIsYXR0cnM6e30sY2hpbGRyZW46W3t0YWc6InN0eWxlIixhdHRyczp7fX1dfSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQ0Ny44IDU4OC44bC03LjMtMzIuNWMtLjItMS0uNi0xLjktMS4xLTIuN2E3Ljk0IDcuOTQgMCAwMC0xMS4xLTIuMkw0MDUgNTY3VjQxMWMwLTQuNC0zLjYtOC04LThoLTgxYy00LjQgMC04IDMuNi04IDh2MzZjMCA0LjQgMy42IDggOCA4aDM3djE5Mi40YTggOCAwIDAwMTIuNyA2LjVsNzktNTYuOGMyLjYtMS45IDMuOC01LjEgMy4xLTguM3ptLTU2LjctMjE2LjZsLjIuMmMzLjIgMyA4LjMgMi44IDExLjMtLjVsMjQuMS0yNi4yYTguMSA4LjEgMCAwMC0uMy0xMS4ybC01My43LTUyLjFhOCA4IDAgMDAtMTEuMi4xbC0yNC43IDI0LjdjLTMuMSAzLjEtMy4xIDguMi4xIDExLjNsNTQuMiA1My43eiJ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg2Ni45IDE2OS45TDUyNy4xIDU0LjFDNTIzIDUyLjcgNTE3LjUgNTIgNTEyIDUycy0xMSAuNy0xNS4xIDIuMUwxNTcuMSAxNjkuOWMtOC4zIDIuOC0xNS4xIDEyLjQtMTUuMSAyMS4ydjQ4Mi40YzAgOC44IDUuNyAyMC40IDEyLjYgMjUuOUw0OTkuMyA5NjhjMy41IDIuNyA4IDQuMSAxMi42IDQuMXM5LjItMS40IDEyLjYtNC4xbDM0NC43LTI2OC42YzYuOS01LjQgMTIuNi0xNyAxMi42LTI1LjlWMTkxLjFjLjItOC44LTYuNi0xOC4zLTE0LjktMjEuMnpNODEwIDY1NC4zTDUxMiA4ODYuNSAyMTQgNjU0LjNWMjI2LjdsMjk4LTEwMS42IDI5OCAxMDEuNnY0MjcuNnoifX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00NTIgMjk3djM2YzAgNC40IDMuNiA4IDggOGgxMDh2Mjc0aC0zOFY0MDVjMC00LjQtMy42LTgtOC04aC0zNWMtNC40IDAtOCAzLjYtOCA4djIxMGgtMzFjLTQuNCAwLTggMy42LTggOHYzN2MwIDQuNCAzLjYgOCA4IDhoMjQ0YzQuNCAwIDgtMy42IDgtOHYtMzdjMC00LjQtMy42LTgtOC04aC03MlY0OTNoNThjNC40IDAgOC0zLjYgOC04di0zNWMwLTQuNC0zLjYtOC04LThoLTU4VjM0MWg2M2M0LjQgMCA4LTMuNiA4LTh2LTM2YzAtNC40LTMuNi04LTgtOEg0NjBjLTQuNCAwLTggMy42LTggOHoifX1dfSxuYW1lOiJ2ZXJpZmllZCIsdGhlbWU6Im91dGxpbmVkIn0sT25lPVNuZSx4bmU9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246T25lfSkpfSx3bmU9dC5mb3J3YXJkUmVmKHhuZSksRW5lPXduZSxUbmU9ZSg2NjAxNyksTW5lPWUoNTA1ODcpLFJuZT1lKDYyNjM1KSxJbmU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTc2MiAxNjRoLTY0Yy00LjQgMC04IDMuNi04IDh2Njg4YzAgNC40IDMuNiA4IDggOGg2NGM0LjQgMCA4LTMuNiA4LThWMTcyYzAtNC40LTMuNi04LTgtOHptLTUwOCAwdjcyLjRjMCA5LjUgNC4yIDE4LjQgMTEuNCAyNC41TDU2NC42IDUxMiAyNjUuNCA3NjMuMWMtNy4yIDYuMS0xMS40IDE1LTExLjQgMjQuNVY4NjBjMCA2LjggNy45IDEwLjUgMTMuMSA2LjFMNjg5IDUxMiAyNjcuMSAxNTcuOUE3Ljk1IDcuOTUgMCAwMDI1NCAxNjR6In19XX0sbmFtZToidmVydGljYWwtbGVmdCIsdGhlbWU6Im91dGxpbmVkIn0sUG5lPUluZSx6bmU9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246UG5lfSkpfSxGbmU9dC5mb3J3YXJkUmVmKHpuZSksQW5lPUZuZSxMbmU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTMyNiAxNjRoLTY0Yy00LjQgMC04IDMuNi04IDh2Njg4YzAgNC40IDMuNiA4IDggOGg2NGM0LjQgMCA4LTMuNiA4LThWMTcyYzAtNC40LTMuNi04LTgtOHptNDQ0IDcyLjRWMTY0YzAtNi44LTcuOS0xMC41LTEzLjEtNi4xTDMzNSA1MTJsNDIxLjkgMzU0LjFjNS4yIDQuNCAxMy4xLjcgMTMuMS02LjF2LTcyLjRjMC05LjQtNC4yLTE4LjQtMTEuNC0yNC41TDQ1OS40IDUxMmwyOTkuMi0yNTEuMWM3LjItNi4xIDExLjQtMTUuMSAxMS40LTI0LjV6In19XX0sbmFtZToidmVydGljYWwtcmlnaHQiLHRoZW1lOiJvdXRsaW5lZCJ9LFpuZT1MbmUsJG5lPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOlpuZX0pKX0sSG5lPXQuZm9yd2FyZFJlZigkbmUpLERuZT1IbmUsQm5lPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoiZGVmcyIsYXR0cnM6e30sY2hpbGRyZW46W3t0YWc6InN0eWxlIixhdHRyczp7fX1dfSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTM2OCA3MjRIMjUyVjYwOGMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2MTE2SDcyYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDExNnYxMTZjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOFY3ODhoMTE2YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04eiJ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkxMiAzMDIuM0w3ODQgMzc2VjIyNGMwLTM1LjMtMjguNy02NC02NC02NEgxMjhjLTM1LjMgMC02NCAyOC43LTY0IDY0djM1Mmg3MlYyMzJoNTc2djU2MEg0NDh2NzJoMjcyYzM1LjMgMCA2NC0yOC43IDY0LTY0VjY0OGwxMjggNzMuN2MyMS4zIDEyLjMgNDgtMy4xIDQ4LTI3LjZWMzMwYzAtMjQuNi0yNi43LTQwLTQ4LTI3Ljd6TTg4OCA2MjVsLTEwNC01OS44VjQ1OC45TDg4OCAzOTl2MjI2eiJ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTMyMCAzNjBjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThIMjA4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDExMnoifX1dfSxuYW1lOiJ2aWRlby1jYW1lcmEtYWRkIix0aGVtZToib3V0bGluZWQifSxWbmU9Qm5lLE5uZT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpWbmV9KSl9LGpuZT10LmZvcndhcmRSZWYoTm5lKSxVbmU9am5lLFduZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTEyIDMwMi4zTDc4NCAzNzZWMjI0YzAtMzUuMy0yOC43LTY0LTY0LTY0SDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjR2NTc2YzAgMzUuMyAyOC43IDY0IDY0IDY0aDU5MmMzNS4zIDAgNjQtMjguNyA2NC02NFY2NDhsMTI4IDczLjdjMjEuMyAxMi4zIDQ4LTMuMSA0OC0yNy42VjMzMGMwLTI0LjYtMjYuNy00MC00OC0yNy43ek0zMjggMzUyYzAgNC40LTMuNiA4LTggOEgyMDhjLTQuNCAwLTgtMy42LTgtOHYtNDhjMC00LjQgMy42LTggOC04aDExMmM0LjQgMCA4IDMuNiA4IDh2NDh6bTU2MCAyNzNsLTEwNC01OS44VjQ1OC45TDg4OCAzOTl2MjI2eiJ9fV19LG5hbWU6InZpZGVvLWNhbWVyYSIsdGhlbWU6ImZpbGxlZCJ9LGtuZT1XbmUsS25lPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOmtuZX0pKX0sX25lPXQuZm9yd2FyZFJlZihLbmUpLEduZT1fbmUsWW5lPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MTIgMzAyLjNMNzg0IDM3NlYyMjRjMC0zNS4zLTI4LjctNjQtNjQtNjRIMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NHY1NzZjMCAzNS4zIDI4LjcgNjQgNjQgNjRoNTkyYzM1LjMgMCA2NC0yOC43IDY0LTY0VjY0OGwxMjggNzMuN2MyMS4zIDEyLjMgNDgtMy4xIDQ4LTI3LjZWMzMwYzAtMjQuNi0yNi43LTQwLTQ4LTI3Ljd6TTcxMiA3OTJIMTM2VjIzMmg1NzZ2NTYwem0xNzYtMTY3bC0xMDQtNTkuOFY0NTguOUw4ODggMzk5djIyNnpNMjA4IDM2MGgxMTJjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThIMjA4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4eiJ9fV19LG5hbWU6InZpZGVvLWNhbWVyYSIsdGhlbWU6Im91dGxpbmVkIn0sWG5lPVluZSxRbmU9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246WG5lfSkpfSxKbmU9dC5mb3J3YXJkUmVmKFFuZSkscW5lPUpuZSxlcmU9e2ljb246ZnVuY3Rpb24oZix2KXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMTM2IDc5Mmg1NzZWMjMySDEzNnY1NjB6bTY0LTQ4OGMwLTQuNCAzLjYtOCA4LThoMTEyYzQuNCAwIDggMy42IDggOHY0OGMwIDQuNC0zLjYgOC04IDhIMjA4Yy00LjQgMC04LTMuNi04LTh2LTQ4eiIsZmlsbDp2fX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MTIgMzAyLjNMNzg0IDM3NlYyMjRjMC0zNS4zLTI4LjctNjQtNjQtNjRIMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NHY1NzZjMCAzNS4zIDI4LjcgNjQgNjQgNjRoNTkyYzM1LjMgMCA2NC0yOC43IDY0LTY0VjY0OGwxMjggNzMuN2MyMS4zIDEyLjMgNDgtMy4xIDQ4LTI3LjZWMzMwYzAtMjQuNi0yNi43LTQwLTQ4LTI3Ljd6TTcxMiA3OTJIMTM2VjIzMmg1NzZ2NTYwem0xNzYtMTY3bC0xMDQtNTkuOFY0NTguOUw4ODggMzk5djIyNnoiLGZpbGw6Zn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMjA4IDM2MGgxMTJjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThIMjA4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4eiIsZmlsbDpmfX1dfX0sbmFtZToidmlkZW8tY2FtZXJhIix0aGVtZToidHdvdG9uZSJ9LHRyZT1lcmUsbnJlPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOnRyZX0pKX0scnJlPXQuZm9yd2FyZFJlZihucmUpLGFyZT1ycmUsb3JlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS0zMiA0NjRINTI4VjQ0OGgzMjB2MTI4em0tMjY4LTY0YTQwIDQwIDAgMTA4MCAwIDQwIDQwIDAgMTAtODAgMHoifX1dfSxuYW1lOiJ3YWxsZXQiLHRoZW1lOiJmaWxsZWQifSxpcmU9b3JlLGxyZT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjppcmV9KSl9LHNyZT10LmZvcndhcmRSZWYobHJlKSxjcmU9c3JlLHVyZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNDY0SDUyOFY0NDhoMzEydjEyOHptMCAyNjRIMTg0VjE4NGg2NTZ2MjAwSDQ5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MTkyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDM0NHYyMDB6TTU4MCA1MTJhNDAgNDAgMCAxMDgwIDAgNDAgNDAgMCAxMC04MCAweiJ9fV19LG5hbWU6IndhbGxldCIsdGhlbWU6Im91dGxpbmVkIn0sZHJlPXVyZSxmcmU9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246ZHJlfSkpfSx2cmU9dC5mb3J3YXJkUmVmKGZyZSksaHJlPXZyZSxtcmU9e2ljb246ZnVuY3Rpb24oZix2KXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNDY0SDUyOFY0NDhoMzEydjEyOHptMC0xOTJINDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYxOTJjMCAxNy43IDE0LjMgMzIgMzIgMzJoMzQ0djIwMEgxODRWMTg0aDY1NnYyMDB6IixmaWxsOmZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUyOCA1NzZoMzEyVjQ0OEg1Mjh2MTI4em05Mi0xMDRjMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDAtNDAtMTcuOS00MC00MCAxNy45LTQwIDQwLTQweiIsZmlsbDp2fX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01ODAgNTEyYTQwIDQwIDAgMTA4MCAwIDQwIDQwIDAgMTAtODAgMHoiLGZpbGw6Zn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNMTg0IDg0MGg2NTZWNjQwSDQ5NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWNDE2YzAtMTcuNyAxNC4zLTMyIDMyLTMyaDM0NFYxODRIMTg0djY1NnoiLGZpbGw6dn19XX19LG5hbWU6IndhbGxldCIsdGhlbWU6InR3b3RvbmUifSxncmU9bXJlLHByZT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpncmV9KSl9LHlyZT10LmZvcndhcmRSZWYocHJlKSxDcmU9eXJlLGJyZT1lKDEwODQ0KSxTcmU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQ2NCA3MjBhNDggNDggMCAxMDk2IDAgNDggNDggMCAxMC05NiAwem0xNi0zMDR2MTg0YzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LThWNDE2YzAtNC40LTMuNi04LTgtOGgtNDhjLTQuNCAwLTggMy42LTggOHptNDc1LjcgNDQwbC00MTYtNzIwYy02LjItMTAuNy0xNi45LTE2LTI3LjctMTZzLTIxLjYgNS4zLTI3LjcgMTZsLTQxNiA3MjBDNTYgODc3LjQgNzEuNCA5MDQgOTYgOTA0aDgzMmMyNC42IDAgNDAtMjYuNiAyNy43LTQ4em0tNzgzLjUtMjcuOUw1MTIgMjM5LjlsMzM5LjggNTg4LjJIMTcyLjJ6In19XX0sbmFtZToid2FybmluZyIsdGhlbWU6Im91dGxpbmVkIn0sT3JlPVNyZSx4cmU9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246T3JlfSkpfSx3cmU9dC5mb3J3YXJkUmVmKHhyZSksRXJlPXdyZSxUcmU9e2ljb246ZnVuY3Rpb24oZix2KXtyZXR1cm57dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTU1LjcgODU2bC00MTYtNzIwYy02LjItMTAuNy0xNi45LTE2LTI3LjctMTZzLTIxLjYgNS4zLTI3LjcgMTZsLTQxNiA3MjBDNTYgODc3LjQgNzEuNCA5MDQgOTYgOTA0aDgzMmMyNC42IDAgNDAtMjYuNiAyNy43LTQ4em0tNzgzLjUtMjcuOUw1MTIgMjM5LjlsMzM5LjggNTg4LjJIMTcyLjJ6IixmaWxsOmZ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTE3Mi4yIDgyOC4xaDY3OS42TDUxMiAyMzkuOSAxNzIuMiA4MjguMXpNNTYwIDcyMGE0OC4wMSA0OC4wMSAwIDAxLTk2IDAgNDguMDEgNDguMDEgMCAwMTk2IDB6bS0xNi0zMDR2MTg0YzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOFY0MTZjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHoiLGZpbGw6dn19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNDY0IDcyMGE0OCA0OCAwIDEwOTYgMCA0OCA0OCAwIDEwLTk2IDB6bTE2LTMwNHYxODRjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOFY0MTZjMC00LjQtMy42LTgtOC04aC00OGMtNC40IDAtOCAzLjYtOCA4eiIsZmlsbDpmfX1dfX0sbmFtZToid2FybmluZyIsdGhlbWU6InR3b3RvbmUifSxNcmU9VHJlLFJyZT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpNcmV9KSl9LElyZT10LmZvcndhcmRSZWYoUnJlKSxQcmU9SXJlLHpyZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNjkwLjEgMzc3LjRjNS45IDAgMTEuOC4yIDE3LjYuNS0yNC40LTEyOC43LTE1OC4zLTIyNy4xLTMxOS45LTIyNy4xQzIwOSAxNTAuOCA2NCAyNzEuNCA2NCA0MjAuMmMwIDgxLjEgNDMuNiAxNTQuMiAxMTEuOSAyMDMuNmEyMS41IDIxLjUgMCAwMTkuMSAxNy42YzAgMi40LS41IDQuNi0xLjEgNi45LTUuNSAyMC4zLTE0LjIgNTIuOC0xNC42IDU0LjMtLjcgMi42LTEuNyA1LjItMS43IDcuOSAwIDUuOSA0LjggMTAuOCAxMC44IDEwLjggMi4zIDAgNC4yLS45IDYuMi0ybDcwLjktNDAuOWM1LjMtMy4xIDExLTUgMTcuMi01IDMuMiAwIDYuNC41IDkuNSAxLjQgMzMuMSA5LjUgNjguOCAxNC44IDEwNS43IDE0LjggNiAwIDExLjktLjEgMTcuOC0uNC03LjEtMjEtMTAuOS00My4xLTEwLjktNjYgMC0xMzUuOCAxMzIuMi0yNDUuOCAyOTUuMy0yNDUuOHptLTE5NC4zLTg2LjVjMjMuOCAwIDQzLjIgMTkuMyA0My4yIDQzLjFzLTE5LjMgNDMuMS00My4yIDQzLjFjLTIzLjggMC00My4yLTE5LjMtNDMuMi00My4xczE5LjQtNDMuMSA0My4yLTQzLjF6bS0yMTUuOSA4Ni4yYy0yMy44IDAtNDMuMi0xOS4zLTQzLjItNDMuMXMxOS4zLTQzLjEgNDMuMi00My4xIDQzLjIgMTkuMyA0My4yIDQzLjEtMTkuNCA0My4xLTQzLjIgNDMuMXptNTg2LjggNDE1LjZjNTYuOS00MS4yIDkzLjItMTAyIDkzLjItMTY5LjcgMC0xMjQtMTIwLjgtMjI0LjUtMjY5LjktMjI0LjUtMTQ5IDAtMjY5LjkgMTAwLjUtMjY5LjkgMjI0LjVTNTQwLjkgODQ3LjUgNjkwIDg0Ny41YzMwLjggMCA2MC42LTQuNCA4OC4xLTEyLjMgMi42LS44IDUuMi0xLjIgNy45LTEuMiA1LjIgMCA5LjkgMS42IDE0LjMgNC4xbDU5LjEgMzRjMS43IDEgMy4zIDEuNyA1LjIgMS43YTkgOSAwIDAwNi40LTIuNiA5IDkgMCAwMDIuNi02LjRjMC0yLjItLjktNC40LTEuNC02LjYtLjMtMS4yLTcuNi0yOC4zLTEyLjItNDUuMy0uNS0xLjktLjktMy44LS45LTUuNy4xLTUuOSAzLjEtMTEuMiA3LjYtMTQuNXpNNjAwLjIgNTg3LjJjLTE5LjkgMC0zNi0xNi4xLTM2LTM1LjkgMC0xOS44IDE2LjEtMzUuOSAzNi0zNS45czM2IDE2LjEgMzYgMzUuOWMwIDE5LjgtMTYuMiAzNS45LTM2IDM1Ljl6bTE3OS45IDBjLTE5LjkgMC0zNi0xNi4xLTM2LTM1LjkgMC0xOS44IDE2LjEtMzUuOSAzNi0zNS45czM2IDE2LjEgMzYgMzUuOWEzNi4wOCAzNi4wOCAwIDAxLTM2IDM1Ljl6In19XX0sbmFtZToid2VjaGF0Iix0aGVtZToiZmlsbGVkIn0sRnJlPXpyZSxBcmU9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246RnJlfSkpfSxMcmU9dC5mb3J3YXJkUmVmKEFyZSksWnJlPUxyZSwkcmU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTY5MC4xIDM3Ny40YzUuOSAwIDExLjguMiAxNy42LjUtMjQuNC0xMjguNy0xNTguMy0yMjcuMS0zMTkuOS0yMjcuMUMyMDkgMTUwLjggNjQgMjcxLjQgNjQgNDIwLjJjMCA4MS4xIDQzLjYgMTU0LjIgMTExLjkgMjAzLjZhMjEuNSAyMS41IDAgMDE5LjEgMTcuNmMwIDIuNC0uNSA0LjYtMS4xIDYuOS01LjUgMjAuMy0xNC4yIDUyLjgtMTQuNiA1NC4zLS43IDIuNi0xLjcgNS4yLTEuNyA3LjkgMCA1LjkgNC44IDEwLjggMTAuOCAxMC44IDIuMyAwIDQuMi0uOSA2LjItMmw3MC45LTQwLjljNS4zLTMuMSAxMS01IDE3LjItNSAzLjIgMCA2LjQuNSA5LjUgMS40IDMzLjEgOS41IDY4LjggMTQuOCAxMDUuNyAxNC44IDYgMCAxMS45LS4xIDE3LjgtLjQtNy4xLTIxLTEwLjktNDMuMS0xMC45LTY2IDAtMTM1LjggMTMyLjItMjQ1LjggMjk1LjMtMjQ1Ljh6bS0xOTQuMy04Ni41YzIzLjggMCA0My4yIDE5LjMgNDMuMiA0My4xcy0xOS4zIDQzLjEtNDMuMiA0My4xYy0yMy44IDAtNDMuMi0xOS4zLTQzLjItNDMuMXMxOS40LTQzLjEgNDMuMi00My4xem0tMjE1LjkgODYuMmMtMjMuOCAwLTQzLjItMTkuMy00My4yLTQzLjFzMTkuMy00My4xIDQzLjItNDMuMSA0My4yIDE5LjMgNDMuMiA0My4xLTE5LjQgNDMuMS00My4yIDQzLjF6bTU4Ni44IDQxNS42YzU2LjktNDEuMiA5My4yLTEwMiA5My4yLTE2OS43IDAtMTI0LTEyMC44LTIyNC41LTI2OS45LTIyNC41LTE0OSAwLTI2OS45IDEwMC41LTI2OS45IDIyNC41UzU0MC45IDg0Ny41IDY5MCA4NDcuNWMzMC44IDAgNjAuNi00LjQgODguMS0xMi4zIDIuNi0uOCA1LjItMS4yIDcuOS0xLjIgNS4yIDAgOS45IDEuNiAxNC4zIDQuMWw1OS4xIDM0YzEuNyAxIDMuMyAxLjcgNS4yIDEuN2E5IDkgMCAwMDYuNC0yLjYgOSA5IDAgMDAyLjYtNi40YzAtMi4yLS45LTQuNC0xLjQtNi42LS4zLTEuMi03LjYtMjguMy0xMi4yLTQ1LjMtLjUtMS45LS45LTMuOC0uOS01LjcuMS01LjkgMy4xLTExLjIgNy42LTE0LjV6TTYwMC4yIDU4Ny4yYy0xOS45IDAtMzYtMTYuMS0zNi0zNS45IDAtMTkuOCAxNi4xLTM1LjkgMzYtMzUuOXMzNiAxNi4xIDM2IDM1LjljMCAxOS44LTE2LjIgMzUuOS0zNiAzNS45em0xNzkuOSAwYy0xOS45IDAtMzYtMTYuMS0zNi0zNS45IDAtMTkuOCAxNi4xLTM1LjkgMzYtMzUuOXMzNiAxNi4xIDM2IDM1LjlhMzYuMDggMzYuMDggMCAwMS0zNiAzNS45eiJ9fV19LG5hbWU6IndlY2hhdCIsdGhlbWU6Im91dGxpbmVkIn0sSHJlPSRyZSxEcmU9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246SHJlfSkpfSxCcmU9dC5mb3J3YXJkUmVmKERyZSksVnJlPUJyZSxOcmU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7ImZpbGwtcnVsZSI6ImV2ZW5vZGQiLHZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04MDUuMzMgMTEySDIxOC42N0MxNTkuNzYgMTEyIDExMiAxNTkuNzYgMTEyIDIxOC42N3Y1ODYuNjZDMTEyIDg2NC4yNCAxNTkuNzYgOTEyIDIxOC42NyA5MTJoNTg2LjY2Qzg2NC4yNCA5MTIgOTEyIDg2NC4yNCA5MTIgODA1LjMzVjIxOC42N0M5MTIgMTU5Ljc2IDg2NC4yNCAxMTIgODA1LjMzIDExMm0tOTguMTcgNDE3Ljg2YTEwMi4xMyAxMDIuMTMgMCAwMDI4LjEgNTIuNDZsMi4xMyAyLjA2Yy40MS4yNy44LjU3IDEuMTYuOWwuNTUuNjQuMi4wMmE3Ljk2IDcuOTYgMCAwMS0uOTggMTAuODIgNy45NiA3Ljk2IDAgMDEtMTAuODUtLjE4Yy0xLjEtMS4wNS0yLjE0LTIuMTQtMy4yNC0zLjI0YTEwMi40OSAxMDIuNDkgMCAwMC01My44Mi0yOC4zNmwtMi0uMjdjLS42Ni0uMTItMS4zNC0uMzktMS45OC0uMzlhMzMuMjcgMzMuMjcgMCAxMTQwLjM3LTM3LjY2Yy4xNyAxLjA5LjM2IDIuMTYuMzYgMy4ybS0yMTMuMSAxNTMuODJhMjc2Ljc4IDI3Ni43OCAwIDAxLTYxLjcuMTcgMjY3LjMgMjY3LjMgMCAwMS00NC42Ny04LjZsLTY4LjQ0IDM0LjRjLS4zMy4yNC0uNzcuNDMtMS4xNS43MWgtLjI3YTE4LjI5IDE4LjI5IDAgMDEtMjcuNTItMTUuOWMuMDMtLjU5LjEtMS4xNy4yLTEuNzQuMTMtMS45Ny42LTMuOSAxLjM3LTUuNzJsMi43NS0xMS4xNSA5LjU2LTM5LjU2YTI3Ny41NyAyNzcuNTcgMCAwMS00OS4yNS01NC42N0ExODUuOTkgMTg1Ljk5IDAgMDEyMjMuMSA0NzguMWExODIuNDIgMTgyLjQyIDAgMDExOS4wOC04MS4wNCAyMDMuOTggMjAzLjk4IDAgMDEzNy4xOS01Mi4zMmMzOC45MS0zOS45NCA5My4yNi02NS41MiAxNTMuMS03Mi4wM2EyNzguMjUgMjc4LjI1IDAgMDEzMC4xNy0xLjY0YzEwLjUuMDMgMjAuOTkuNjUgMzEuNDIgMS44NiA1OS41OCA2Ljc5IDExMy42NSAzMi40OCAxNTIuMjYgNzIuMzZhMjAyLjk2IDIwMi45NiAwIDAxMzcgNTIuNDggMTgyLjMgMTgyLjMgMCAwMTE4LjE3IDk0LjY3Yy0uNTItLjU3LTEuMDItMS4yLTEuNTctMS43NmEzMy4yNiAzMy4yNiAwIDAwLTQwLjg0LTQuOGMuMjItMi4yNi4yMi00LjU0LjIyLTYuNzlhMTQzLjY0IDE0My42NCAwIDAwLTE0Ljc2LTYzLjM4IDE2NC4wNyAxNjQuMDcgMCAwMC0yOS42OC00Mi4xNWMtMzEuNzgtMzIuNzYtNzYuNDctNTMuOTUtMTI1Ljg5LTU5LjU1YTIzNC4zNyAyMzQuMzcgMCAwMC01MS42Ny0uMTRjLTQ5LjYxIDUuNDEtOTQuNiAyNi40NS0xMjYuNTcgNTkuMjZhMTYzLjYzIDE2My42MyAwIDAwLTI5LjgyIDQxLjk1IDE0My40NCAxNDMuNDQgMCAwMC0xNS4xMiA2My45MyAxNDcuMTYgMTQ3LjE2IDAgMDAyNS4yOSA4MS41MSAxNzAuNSAxNzAuNSAwIDAwMjQuOTMgMjkuNCAxNzIuMzEgMTcyLjMxIDAgMDAxNy41NiAxNC43NSAxNy42IDE3LjYgMCAwMTYuMzUgMTkuNjJsLTYuNDkgMjQuNjctMS44NiA3LjE0LTEuNjIgNi40NWEyLjg1IDIuODUgMCAwMDIuNzcgMi44OCAzLjk5IDMuOTkgMCAwMDEuOTMtLjY4bDQzLjg2LTI1LjkzIDEuNDQtLjc4YTIzLjIgMjMuMiAwIDAxMTguMjQtMS44NCAyMjcuMzggMjI3LjM4IDAgMDAzMy44NyA3LjEybDUuMjIuNjlhMjI3LjI2IDIyNy4yNiAwIDAwNTEuNjctLjE0IDIyNi41OCAyMjYuNTggMCAwMDQyLjc1LTkuMDcgMzMuMiAzMy4yIDAgMDAyMi43MiAzNC43NiAyNjkuMjcgMjY5LjI3IDAgMDEtNjAuMzcgMTQuMTJtODkuMDctMjQuODdhMzMuMzMgMzMuMzMgMCAwMS0zMy43Ni0xOC43NSAzMy4zMiAzMy4zMiAwIDAxNi42NC0zOC4wMyAzMy4xNiAzMy4xNiAwIDAxMTguMjYtOS4zMWMxLjA3LS4xNCAyLjE5LS4zNiAzLjI0LS4zNmExMDIuMzcgMTAyLjM3IDAgMDA1Mi40Ny0yOC4wNWwyLjItMi4zM2ExMC4yMSAxMC4yMSAwIDAxMS41Ny0xLjY4di0uMDNhNy45NyA3Ljk3IDAgMTExMC42NCAxMS44MWwtMy4yNCAzLjI0YTEwMi40NCAxMDIuNDQgMCAwMC0yOC41NiA1My43NGMtLjA5LjYzLS4yOCAxLjM1LS4yOCAybC0uMzkgMi4wMWEzMy4zIDMzLjMgMCAwMS0yOC43OSAyNS43NG05NC40NCA5My44N2EzMy4zIDMzLjMgMCAwMS0zNi4xOC0yNC4yNSAyOCAyOCAwIDAxLTEuMS02LjczIDEwMi40IDEwMi40IDAgMDAtMjguMTUtNTIuMzlsLTIuMy0yLjI1YTcuMiA3LjIgMCAwMS0xLjExLS45bC0uNTQtLjZoLS4wM3YuMDVhNy45NiA3Ljk2IDAgMDEuOTYtMTAuODIgNy45NiA3Ljk2IDAgMDExMC44NS4xOGwzLjIyIDMuMjRhMTAyLjI5IDEwMi4yOSAwIDAwNTMuOCAyOC4zNWwyIC4yOGEzMy4yNyAzMy4yNyAwIDExLTEuNDIgNjUuODRtMTEzLjY3LTEwMy4zNGEzMi44NCAzMi44NCAwIDAxLTE4LjI4IDkuMzEgMjYuMzYgMjYuMzYgMCAwMS0zLjI0LjM2IDEwMi4zMiAxMDIuMzIgMCAwMC01Mi40NCAyOC4xIDQ5LjU3IDQ5LjU3IDAgMDAtMy4xNCAzLjQxbC0uNjguNTZoLjAybC4wOS4wNWE3Ljk0IDcuOTQgMCAxMS0xMC42LTExLjgxbDMuMjMtMy4yNGExMDIuMDUgMTAyLjA1IDAgMDAyOC4zNy01My43IDMzLjI2IDMzLjI2IDAgMTE2Mi40LTEyLjEgMzMuMjEgMzMuMjEgMCAwMS01LjczIDM5LjA2In19XX0sbmFtZToid2VjaGF0LXdvcmsiLHRoZW1lOiJmaWxsZWQifSxqcmU9TnJlLFVyZT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpqcmV9KSl9LFdyZT10LmZvcndhcmRSZWYoVXJlKSxrcmU9V3JlLEtyZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnsiZmlsbC1ydWxlIjoiZXZlbm9kZCIsdmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkwOS43OCA3MjkuNTlhMTM1Ljg3IDEzNS44NyAwIDAwLTQ3LjA0IDE5LjA0IDExNC4yNCAxMTQuMjQgMCAwMS01MS40IDMxLjA4IDc2LjI5IDc2LjI5IDAgMDEyNC40NS00NS40MiAxNjkuMyAxNjkuMyAwIDAwMjMuNC01NS4wMiA1MC40MSA1MC40MSAwIDExNTAuNiA1MC4zMnptLTkyLjIxLTEyMC43NmExNjguODMgMTY4LjgzIDAgMDAtNTQuODEtMjMuNjggNTAuNDEgNTAuNDEgMCAwMS01MC40LTUwLjQyIDUwLjQxIDUwLjQxIDAgMTExMDAuOCAwIDEzNy41IDEzNy41IDAgMDAxOC44MiA0Ny4yIDExNC44IDExNC44IDAgMDEzMC43NiA1MS42NiA3Ni4wOCA3Ni4wOCAwIDAxLTQ1LjAyLTI0Ljc2aC0uMTl6bS04My4wNC0xNzcuNzFjLTE1LjE5LTEyNy4zMy0xNDYuOTgtMjI3LjEtMzA2LjQ0LTIyNy4xLTE2OS44NyAwLTMwOC4wOSAxMTMuMS0zMDguMDkgMjUyLjJBMjM1LjgxIDIzNS44MSAwIDAwMjMwLjA2IDY0Ny42YTMxMS4yOCAzMTEuMjggMCAwMDMzLjYgMjEuNTlMMjUwIDcyMy43NmM0LjkzIDIuMzEgOS43IDQuNzggMTQuNzUgNi45bDY5LTM0LjVjMTAuMDcgMi42MSAyMC42OCA0LjMgMzEuMiA2LjA4IDYuNzMgMS4yIDEzLjQ1IDIuNDMgMjAuMzUgMy4yNWEzNTQuODMgMzU0LjgzIDAgMDAxMjguODEtNy40IDI0OC44OCAyNDguODggMCAwMDEwLjE1IDU1LjA2IDQyNS42NCA0MjUuNjQgMCAwMS05Ni4xNyAxMS4yNCA0MTcuOTggNDE3Ljk4IDAgMDEtODYuNC05LjUyTDIxNi41MiA4MTcuNGEyNy42MiAyNy42MiAwIDAxLTI5Ljk4LTMuMTQgMjguMDIgMjguMDIgMCAwMS05LjY3LTI4LjYxbDIyLjQtOTAuMjRBMjkyLjI2IDI5Mi4yNiAwIDAxNjQgNDU2LjIxQzY0IDI4NS45OCAyMjcgMTQ4IDQyOC4wOSAxNDhjMTkwLjkzIDAgMzQ3LjI5IDEyNC41MyAzNjIuNTIgMjgyLjgyYTI0NC45NyAyNDQuOTcgMCAwMC0yNi40Ny0yLjYyYy05LjkuMzgtMTkuNzkgMS4zMS0yOS42IDIuODh6bS0xMTYuMyAxOTguODFhMTM1Ljc2IDEzNS43NiAwIDAwNDcuMDUtMTkuMDQgMTE0LjI0IDExNC4yNCAwIDAxNTEuNDUtMzEgNzYuNDcgNzYuNDcgMCAwMS0yNC41IDQ1LjM0IDE2OS40OCAxNjkuNDggMCAwMC0yMy40IDU1LjA1IDUwLjQxIDUwLjQxIDAgMDEtMTAwLjguMjMgNTAuNDEgNTAuNDEgMCAwMTUwLjItNTAuNThtOTAuOCAxMjEuMzJhMTY4LjYgMTY4LjYgMCAwMDU0LjY2IDIzLjkgNTAuNDQgNTAuNDQgMCAwMTM1LjY0IDg2LjA4IDUwLjM4IDUwLjM4IDAgMDEtODYuMDQtMzUuNjYgMTM2Ljc0IDEzNi43NCAwIDAwLTE4LjY3LTQ3LjI4IDExNC43MSAxMTQuNzEgMCAwMS0zMC41NC01MS44IDc2IDc2IDAgMDE0NC45NSAyNS4wNnoifX1dfSxuYW1lOiJ3ZWNoYXQtd29yayIsdGhlbWU6Im91dGxpbmVkIn0sX3JlPUtyZSxHcmU9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246X3JlfSkpfSxZcmU9dC5mb3J3YXJkUmVmKEdyZSksWHJlPVlyZSxRcmU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0tNDQuNCA2NzJDMzUzLjEgNzM2IDIzNiA2ODAuNCAyMzYgNTg4LjljMC00Ny44IDMwLjItMTAzLjEgODIuMy0xNTUuMyA2OS41LTY5LjYgMTUwLjYtMTAxLjQgMTgxLjEtNzAuOCAxMy41IDEzLjUgMTQuOCAzNi44IDYuMSA2NC42LTQuNSAxNCAxMy4xIDYuMyAxMy4xIDYuMyA1Ni4yLTIzLjYgMTA1LjItMjUgMTIzLjEuNyA5LjYgMTMuNyA4LjYgMzIuOC0uMiA1NS4xLTQuMSAxMC4yIDEuMyAxMS44IDkgMTQuMSAzMS43IDkuOCA2Ni45IDMzLjYgNjYuOSA3NS41LjIgNjkuNS05OS43IDE1Ni45LTI0OS44IDE1Ni45em0yMDcuMy0yOTAuOGEzNC45IDM0LjkgMCAwMC03LjItMzQuMSAzNC42OCAzNC42OCAwIDAwLTMzLjEtMTAuNyAxOC4yNCAxOC4yNCAwIDAxLTcuNi0zNS43YzI0LjEtNS4xIDUwLjEgMi4zIDY3LjcgMjEuOSAxNy43IDE5LjYgMjIuNCA0Ni4zIDE0LjkgNjkuOGExOC4xMyAxOC4xMyAwIDAxLTIyLjkgMTEuNyAxOC4xOCAxOC4xOCAwIDAxLTExLjgtMjIuOXptMTA2IDM0LjNzMCAuMSAwIDBhMjEuMSAyMS4xIDAgMDEtMjYuNiAxMy43IDIxLjE5IDIxLjE5IDAgMDEtMTMuNi0yNi43YzExLTM0LjIgNC03My4yLTIxLjctMTAxLjhhMTA0LjA0IDEwNC4wNCAwIDAwLTk4LjktMzIuMSAyMS4xNCAyMS4xNCAwIDAxLTI1LjEtMTYuMyAyMS4wNyAyMS4wNyAwIDAxMTYuMi0yNS4xYzQ5LjQtMTAuNSAxMDIuOCA0LjggMTM5LjEgNDUuMSAzNi4zIDQwLjIgNDYuMSA5NS4xIDMwLjYgMTQzLjJ6bS0zMzQuNSA2LjFjLTkxLjQgOS0xNjAuNyA2NS4xLTE1NC43IDEyNS4yIDUuOSA2MC4xIDg0LjggMTAxLjUgMTc2LjIgOTIuNSA5MS40LTkuMSAxNjAuNy02NS4xIDE1NC43LTEyNS4zLTUuOS02MC4xLTg0LjgtMTAxLjUtMTc2LjItOTIuNHptODAuMiAxNDEuN2MtMTguNyA0Mi4zLTcyLjMgNjQuOC0xMTcuOCA1MC4xLTQzLjktMTQuMi02Mi41LTU3LjctNDMuMy05Ni44IDE4LjktMzguNCA2OC02MC4xIDExMS41LTQ4LjggNDUgMTEuNyA2OCA1NC4yIDQ5LjYgOTUuNXptLTkzLTMyLjJjLTE0LjItNS45LTMyLjQuMi00MS4yIDEzLjktOC44IDEzLjgtNC43IDMwLjIgOS4zIDM2LjYgMTQuMyA2LjUgMzMuMi4zIDQyLTEzLjggOC44LTE0LjMgNC4yLTMwLjYtMTAuMS0zNi43em0zNC45LTE0LjVjLTUuNC0yLjItMTIuMi41LTE1LjQgNS44LTMuMSA1LjQtMS40IDExLjUgNC4xIDEzLjggNS41IDIuMyAxMi42LS4zIDE1LjgtNS44IDMtNS42IDEtMTEuOC00LjUtMTMuOHoifX1dfSxuYW1lOiJ3ZWliby1jaXJjbGUiLHRoZW1lOiJmaWxsZWQifSxKcmU9UXJlLHFyZT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpKcmV9KSl9LGVhZT10LmZvcndhcmRSZWYocXJlKSx0YWU9ZWFlLG5hZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bS00NC40IDY3MkMzNTMuMSA3MzYgMjM2IDY4MC40IDIzNiA1ODguOWMwLTQ3LjggMzAuMi0xMDMuMSA4Mi4zLTE1NS4zIDY5LjUtNjkuNiAxNTAuNi0xMDEuNCAxODEuMS03MC44IDEzLjUgMTMuNSAxNC44IDM2LjggNi4xIDY0LjYtNC41IDE0IDEzLjEgNi4zIDEzLjEgNi4zIDU2LjItMjMuNiAxMDUuMi0yNSAxMjMuMS43IDkuNiAxMy43IDguNiAzMi44LS4yIDU1LjEtNC4xIDEwLjIgMS4zIDExLjggOSAxNC4xIDMxLjcgOS44IDY2LjkgMzMuNiA2Ni45IDc1LjUuMiA2OS41LTk5LjcgMTU2LjktMjQ5LjggMTU2Ljl6bTIwNy4zLTI5MC44YTM0LjkgMzQuOSAwIDAwLTcuMi0zNC4xIDM0LjY4IDM0LjY4IDAgMDAtMzMuMS0xMC43IDE4LjI0IDE4LjI0IDAgMDEtNy42LTM1LjdjMjQuMS01LjEgNTAuMSAyLjMgNjcuNyAyMS45IDE3LjcgMTkuNiAyMi40IDQ2LjMgMTQuOSA2OS44YTE4LjEzIDE4LjEzIDAgMDEtMjIuOSAxMS43IDE4LjE4IDE4LjE4IDAgMDEtMTEuOC0yMi45em0xMDYgMzQuM3MwIC4xIDAgMGEyMS4xIDIxLjEgMCAwMS0yNi42IDEzLjcgMjEuMTkgMjEuMTkgMCAwMS0xMy42LTI2LjdjMTEtMzQuMiA0LTczLjItMjEuNy0xMDEuOGExMDQuMDQgMTA0LjA0IDAgMDAtOTguOS0zMi4xIDIxLjE0IDIxLjE0IDAgMDEtMjUuMS0xNi4zIDIxLjA3IDIxLjA3IDAgMDExNi4yLTI1LjFjNDkuNC0xMC41IDEwMi44IDQuOCAxMzkuMSA0NS4xIDM2LjMgNDAuMiA0Ni4xIDk1LjEgMzAuNiAxNDMuMnptLTMzNC41IDYuMWMtOTEuNCA5LTE2MC43IDY1LjEtMTU0LjcgMTI1LjIgNS45IDYwLjEgODQuOCAxMDEuNSAxNzYuMiA5Mi41IDkxLjQtOS4xIDE2MC43LTY1LjEgMTU0LjctMTI1LjMtNS45LTYwLjEtODQuOC0xMDEuNS0xNzYuMi05Mi40em04MC4yIDE0MS43Yy0xOC43IDQyLjMtNzIuMyA2NC44LTExNy44IDUwLjEtNDMuOS0xNC4yLTYyLjUtNTcuNy00My4zLTk2LjggMTguOS0zOC40IDY4LTYwLjEgMTExLjUtNDguOCA0NSAxMS43IDY4IDU0LjIgNDkuNiA5NS41em0tOTMtMzIuMmMtMTQuMi01LjktMzIuNC4yLTQxLjIgMTMuOS04LjggMTMuOC00LjcgMzAuMiA5LjMgMzYuNiAxNC4zIDYuNSAzMy4yLjMgNDItMTMuOCA4LjgtMTQuMyA0LjItMzAuNi0xMC4xLTM2Ljd6bTM0LjktMTQuNWMtNS40LTIuMi0xMi4yLjUtMTUuNCA1LjgtMy4xIDUuNC0xLjQgMTEuNSA0LjEgMTMuOCA1LjUgMi4zIDEyLjYtLjMgMTUuOC01LjggMy01LjYgMS0xMS44LTQuNS0xMy44eiJ9fV19LG5hbWU6IndlaWJvLWNpcmNsZSIsdGhlbWU6Im91dGxpbmVkIn0scmFlPW5hZSxhYWU9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246cmFlfSkpfSxvYWU9dC5mb3J3YXJkUmVmKGFhZSksaWFlPW9hZSxsYWU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTQ1Ny4zIDU0M2MtNjguMS0xNy43LTE0NSAxNi4yLTE3NC42IDc2LjItMzAuMSA2MS4yLTEgMTI5LjEgNjcuOCAxNTEuMyA3MS4yIDIzIDE1NS4yLTEyLjIgMTg0LjQtNzguMyAyOC43LTY0LjYtNy4yLTEzMS03Ny42LTE0OS4yem0tNTIgMTU2LjJjLTEzLjggMjIuMS00My41IDMxLjctNjUuOCAyMS42LTIyLTEwLTI4LjUtMzUuNy0xNC42LTU3LjIgMTMuNy0yMS40IDQyLjMtMzEgNjQuNC0yMS43IDIyLjQgOS41IDI5LjYgMzUgMTYgNTcuM3ptNDUuNS01OC41Yy01IDguNi0xNi4xIDEyLjctMjQuNyA5LjEtOC41LTMuNS0xMS4yLTEzLjEtNi40LTIxLjUgNS04LjQgMTUuNi0xMi40IDI0LjEtOS4xIDguNyAzLjIgMTEuOCAxMi45IDcgMjEuNXptMzM0LjUtMTk3LjJjMTUgNC44IDMxLTMuNCAzNS45LTE4LjMgMTEuOC0zNi42IDQuNC03OC40LTIzLjItMTA5YTExMS4zOSAxMTEuMzkgMCAwMC0xMDYtMzQuMyAyOC40NSAyOC40NSAwIDAwLTIxLjkgMzMuOCAyOC4zOSAyOC4zOSAwIDAwMzMuOCAyMS44YzE4LjQtMy45IDM4LjMgMS44IDUxLjkgMTYuN2E1NC4yIDU0LjIgMCAwMTExLjMgNTMuMyAyOC40NSAyOC40NSAwIDAwMTguMiAzNnptOTkuOC0yMDZjLTU2LjctNjIuOS0xNDAuNC04Ni45LTIxNy43LTcwLjVhMzIuOTggMzIuOTggMCAwMC0yNS40IDM5LjMgMzMuMTIgMzMuMTIgMCAwMDM5LjMgMjUuNWM1NS0xMS43IDExNC40IDUuNCAxNTQuOCA1MC4xIDQwLjMgNDQuNyA1MS4yIDEwNS43IDM0IDE1OS4xLTUuNiAxNy40IDMuOSAzNiAyMS4zIDQxLjcgMTcuNCA1LjYgMzYtMy45IDQxLjYtMjEuMnYtLjFjMjQuMS03NS40IDguOS0xNjEuMS00Ny45LTIyMy45ek03MjkgNDk5Yy0xMi4yLTMuNi0yMC41LTYuMS0xNC4xLTIyLjEgMTMuOC0zNC43IDE1LjItNjQuNy4zLTg2LTI4LTQwLjEtMTA0LjgtMzcuOS0xOTIuOC0xLjEgMCAwLTI3LjYgMTIuMS0yMC42LTkuOCAxMy41LTQzLjUgMTEuNS03OS45LTkuNi0xMDEtNDcuNy00Ny44LTE3NC42IDEuOC0yODMuNSAxMTAuNkMxMjcuMyA0NzEuMSA4MCA1NTcuNSA4MCA2MzIuMiA4MCA3NzUuMSAyNjMuMiA4NjIgNDQyLjUgODYyYzIzNSAwIDM5MS4zLTEzNi41IDM5MS4zLTI0NSAwLTY1LjUtNTUuMi0xMDIuNi0xMDQuOC0xMTh6TTQ0MyA4MTAuOGMtMTQzIDE0LjEtMjY2LjUtNTAuNS0yNzUuOC0xNDQuNS05LjMtOTMuOSA5OS4yLTE4MS41IDI0Mi4yLTE5NS42IDE0My0xNC4yIDI2Ni41IDUwLjUgMjc1LjggMTQ0LjRDNjk0LjQgNzA5IDU4NiA3OTYuNiA0NDMgODEwLjh6In19XX0sbmFtZToid2VpYm8iLHRoZW1lOiJvdXRsaW5lZCJ9LHNhZT1sYWUsY2FlPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOnNhZX0pKX0sdWFlPXQuZm9yd2FyZFJlZihjYWUpLGRhZT11YWUsZmFlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik00MzMuNiA1OTUuMWMtMTQuMi01LjktMzIuNC4yLTQxLjIgMTMuOS04LjggMTMuOC00LjcgMzAuMiA5LjMgMzYuNiAxNC4zIDYuNSAzMy4yLjMgNDItMTMuOCA4LjgtMTQuMyA0LjItMzAuNi0xMC4xLTM2Ljd6TTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNDY3LjYgNzM2QzM1My4xIDczNiAyMzYgNjgwLjQgMjM2IDU4OC45YzAtNDcuOCAzMC4yLTEwMy4xIDgyLjMtMTU1LjMgNjkuNS02OS42IDE1MC42LTEwMS40IDE4MS4xLTcwLjggMTMuNSAxMy41IDE0LjggMzYuOCA2LjEgNjQuNi00LjUgMTQgMTMuMSA2LjMgMTMuMSA2LjMgNTYuMi0yMy42IDEwNS4yLTI1IDEyMy4xLjcgOS42IDEzLjcgOC42IDMyLjgtLjIgNTUuMS00LjEgMTAuMiAxLjMgMTEuOCA5IDE0LjEgMzEuNyA5LjggNjYuOSAzMy42IDY2LjkgNzUuNS4yIDY5LjUtOTkuNyAxNTYuOS0yNDkuOCAxNTYuOXptMjA3LjMtMjkwLjhhMzQuOSAzNC45IDAgMDAtNy4yLTM0LjEgMzQuNjggMzQuNjggMCAwMC0zMy4xLTEwLjcgMTguMjQgMTguMjQgMCAwMS03LjYtMzUuN2MyNC4xLTUuMSA1MC4xIDIuMyA2Ny43IDIxLjkgMTcuNyAxOS42IDIyLjQgNDYuMyAxNC45IDY5LjhhMTguMTMgMTguMTMgMCAwMS0yMi45IDExLjcgMTguMTggMTguMTggMCAwMS0xMS44LTIyLjl6bTEwNiAzNC4zczAgLjEgMCAwYTIxLjEgMjEuMSAwIDAxLTI2LjYgMTMuNyAyMS4xOSAyMS4xOSAwIDAxLTEzLjYtMjYuN2MxMS0zNC4yIDQtNzMuMi0yMS43LTEwMS44YTEwNC4wNCAxMDQuMDQgMCAwMC05OC45LTMyLjEgMjEuMTQgMjEuMTQgMCAwMS0yNS4xLTE2LjMgMjEuMDcgMjEuMDcgMCAwMTE2LjItMjUuMWM0OS40LTEwLjUgMTAyLjggNC44IDEzOS4xIDQ1LjEgMzYuMyA0MC4yIDQ2LjEgOTUuMSAzMC42IDE0My4yem0tMzM0LjUgNi4xYy05MS40IDktMTYwLjcgNjUuMS0xNTQuNyAxMjUuMiA1LjkgNjAuMSA4NC44IDEwMS41IDE3Ni4yIDkyLjUgOTEuNC05LjEgMTYwLjctNjUuMSAxNTQuNy0xMjUuMy01LjktNjAuMS04NC44LTEwMS41LTE3Ni4yLTkyLjR6bTgwLjIgMTQxLjdjLTE4LjcgNDIuMy03Mi4zIDY0LjgtMTE3LjggNTAuMS00My45LTE0LjItNjIuNS01Ny43LTQzLjMtOTYuOCAxOC45LTM4LjQgNjgtNjAuMSAxMTEuNS00OC44IDQ1IDExLjcgNjggNTQuMiA0OS42IDk1LjV6bS01OC4xLTQ2LjdjLTUuNC0yLjItMTIuMi41LTE1LjQgNS44LTMuMSA1LjQtMS40IDExLjUgNC4xIDEzLjggNS41IDIuMyAxMi42LS4zIDE1LjgtNS44IDMtNS42IDEtMTEuOC00LjUtMTMuOHoifX1dfSxuYW1lOiJ3ZWliby1zcXVhcmUiLHRoZW1lOiJmaWxsZWQifSx2YWU9ZmFlLGhhZT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjp2YWV9KSl9LG1hZT10LmZvcndhcmRSZWYoaGFlKSxnYWU9bWFlLHBhZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNDMzLjYgNTk1LjFjLTE0LjItNS45LTMyLjQuMi00MS4yIDEzLjktOC44IDEzLjgtNC43IDMwLjIgOS4zIDM2LjYgMTQuMyA2LjUgMzMuMi4zIDQyLTEzLjggOC44LTE0LjMgNC4yLTMwLjYtMTAuMS0zNi43ek04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTQ2Ny42IDczNkMzNTMuMSA3MzYgMjM2IDY4MC40IDIzNiA1ODguOWMwLTQ3LjggMzAuMi0xMDMuMSA4Mi4zLTE1NS4zIDY5LjUtNjkuNiAxNTAuNi0xMDEuNCAxODEuMS03MC44IDEzLjUgMTMuNSAxNC44IDM2LjggNi4xIDY0LjYtNC41IDE0IDEzLjEgNi4zIDEzLjEgNi4zIDU2LjItMjMuNiAxMDUuMi0yNSAxMjMuMS43IDkuNiAxMy43IDguNiAzMi44LS4yIDU1LjEtNC4xIDEwLjIgMS4zIDExLjggOSAxNC4xIDMxLjcgOS44IDY2LjkgMzMuNiA2Ni45IDc1LjUuMiA2OS41LTk5LjcgMTU2LjktMjQ5LjggMTU2Ljl6bTIwNy4zLTI5MC44YTM0LjkgMzQuOSAwIDAwLTcuMi0zNC4xIDM0LjY4IDM0LjY4IDAgMDAtMzMuMS0xMC43IDE4LjI0IDE4LjI0IDAgMDEtNy42LTM1LjdjMjQuMS01LjEgNTAuMSAyLjMgNjcuNyAyMS45IDE3LjcgMTkuNiAyMi40IDQ2LjMgMTQuOSA2OS44YTE4LjEzIDE4LjEzIDAgMDEtMjIuOSAxMS43IDE4LjE4IDE4LjE4IDAgMDEtMTEuOC0yMi45em0xMDYgMzQuM3MwIC4xIDAgMGEyMS4xIDIxLjEgMCAwMS0yNi42IDEzLjcgMjEuMTkgMjEuMTkgMCAwMS0xMy42LTI2LjdjMTEtMzQuMiA0LTczLjItMjEuNy0xMDEuOGExMDQuMDQgMTA0LjA0IDAgMDAtOTguOS0zMi4xIDIxLjE0IDIxLjE0IDAgMDEtMjUuMS0xNi4zIDIxLjA3IDIxLjA3IDAgMDExNi4yLTI1LjFjNDkuNC0xMC41IDEwMi44IDQuOCAxMzkuMSA0NS4xIDM2LjMgNDAuMiA0Ni4xIDk1LjEgMzAuNiAxNDMuMnptLTMzNC41IDYuMWMtOTEuNCA5LTE2MC43IDY1LjEtMTU0LjcgMTI1LjIgNS45IDYwLjEgODQuOCAxMDEuNSAxNzYuMiA5Mi41IDkxLjQtOS4xIDE2MC43LTY1LjEgMTU0LjctMTI1LjMtNS45LTYwLjEtODQuOC0xMDEuNS0xNzYuMi05Mi40em04MC4yIDE0MS43Yy0xOC43IDQyLjMtNzIuMyA2NC44LTExNy44IDUwLjEtNDMuOS0xNC4yLTYyLjUtNTcuNy00My4zLTk2LjggMTguOS0zOC40IDY4LTYwLjEgMTExLjUtNDguOCA0NSAxMS43IDY4IDU0LjIgNDkuNiA5NS41em0tNTguMS00Ni43Yy01LjQtMi4yLTEyLjIuNS0xNS40IDUuOC0zLjEgNS40LTEuNCAxMS41IDQuMSAxMy44IDUuNSAyLjMgMTIuNi0uMyAxNS44LTUuOCAzLTUuNiAxLTExLjgtNC41LTEzLjh6In19XX0sbmFtZToid2VpYm8tc3F1YXJlIix0aGVtZToib3V0bGluZWQifSx5YWU9cGFlLENhZT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjp5YWV9KSl9LGJhZT10LmZvcndhcmRSZWYoQ2FlKSxTYWU9YmFlLE9hZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6ImRlZnMiLGF0dHJzOnt9LGNoaWxkcmVuOlt7dGFnOiJzdHlsZSIsYXR0cnM6e319XX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik03MTMuNSA1OTkuOWMtMTAuOS01LjYtNjUuMi0zMi4yLTc1LjMtMzUuOC0xMC4xLTMuOC0xNy41LTUuNi0yNC44IDUuNi03LjQgMTEuMS0yOC40IDM1LjgtMzUgNDMuMy02LjQgNy40LTEyLjkgOC4zLTIzLjggMi44LTY0LjgtMzIuNC0xMDcuMy01Ny44LTE1MC0xMzEuMS0xMS4zLTE5LjUgMTEuMy0xOC4xIDMyLjQtNjAuMiAzLjYtNy40IDEuOC0xMy43LTEtMTkuMy0yLjgtNS42LTI0LjgtNTkuOC0zNC04MS45LTguOS0yMS41LTE4LjEtMTguNS0yNC44LTE4LjktNi40LS40LTEzLjctLjQtMjEuMS0uNC03LjQgMC0xOS4zIDIuOC0yOS40IDEzLjctMTAuMSAxMS4xLTM4LjYgMzcuOC0zOC42IDkyczM5LjUgMTA2LjcgNDQuOSAxMTQuMWM1LjYgNy40IDc3LjcgMTE4LjYgMTg4LjQgMTY2LjUgNzAgMzAuMiA5Ny40IDMyLjggMTMyLjQgMjcuNiAyMS4zLTMuMiA2NS4yLTI2LjYgNzQuMy01Mi41IDkuMS0yNS44IDkuMS00Ny45IDYuNC01Mi41LTIuNy00LjktMTAuMS03LjctMjEtMTN6In19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNOTI1LjIgMzM4LjRjLTIyLjYtNTMuNy01NS0xMDEuOS05Ni4zLTE0My4zYTQ0NC4zNSA0NDQuMzUgMCAwMC0xNDMuMy05Ni4zQzYzMC42IDc1LjcgNTcyLjIgNjQgNTEyIDY0aC0yYy02MC42LjMtMTE5LjMgMTIuMy0xNzQuNSAzNS45YTQ0NS4zNSA0NDUuMzUgMCAwMC0xNDIgOTYuNWMtNDAuOSA0MS4zLTczIDg5LjMtOTUuMiAxNDIuOC0yMyA1NS40LTM0LjYgMTE0LjMtMzQuMyAxNzQuOUE0NDkuNCA0NDkuNCAwIDAwMTEyIDcxNHYxNTJhNDYgNDYgMCAwMDQ2IDQ2aDE1Mi4xQTQ0OS40IDQ0OS40IDAgMDA1MTAgOTYwaDIuMWM1OS45IDAgMTE4LTExLjYgMTcyLjctMzQuM2E0NDQuNDggNDQ0LjQ4IDAgMDAxNDIuOC05NS4yYzQxLjMtNDAuOSA3My44LTg4LjcgOTYuNS0xNDIgMjMuNi01NS4yIDM1LjYtMTEzLjkgMzUuOS0xNzQuNS4zLTYwLjktMTEuNS0xMjAtMzQuOC0xNzUuNnptLTE1MS4xIDQzOEM3MDQgODQ1LjggNjExIDg4NCA1MTIgODg0aC0xLjdjLTYwLjMtLjMtMTIwLjItMTUuMy0xNzMuMS00My41bC04LjQtNC41SDE4OFY2OTUuMmwtNC41LTguNEMxNTUuMyA2MzMuOSAxNDAuMyA1NzQgMTQwIDUxMy43Yy0uNC05OS43IDM3LjctMTkzLjMgMTA3LjYtMjYzLjggNjkuOC03MC41IDE2My4xLTEwOS41IDI2Mi44LTEwOS45aDEuN2M1MCAwIDk4LjUgOS43IDE0NC4yIDI4LjkgNDQuNiAxOC43IDg0LjYgNDUuNiAxMTkgODAgMzQuMyAzNC4zIDYxLjMgNzQuNCA4MCAxMTkgMTkuNCA0Ni4yIDI5LjEgOTUuMiAyOC45IDE0NS44LS42IDk5LjYtMzkuNyAxOTIuOS0xMTAuMSAyNjIuN3oifX1dfSxuYW1lOiJ3aGF0cy1hcHAiLHRoZW1lOiJvdXRsaW5lZCJ9LHhhZT1PYWUsd2FlPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOnhhZX0pKX0sRWFlPXQuZm9yd2FyZFJlZih3YWUpLFRhZT1FYWUsTWFlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik03MjMgNjIwLjVDNjY2LjggNTcxLjYgNTkzLjQgNTQyIDUxMyA1NDJzLTE1My44IDI5LjYtMjEwLjEgNzguNmE4LjEgOC4xIDAgMDAtLjggMTEuMmwzNiA0Mi45YzIuOSAzLjQgOCAzLjggMTEuNC45QzM5My4xIDYzNy4yIDQ1MC4zIDYxNCA1MTMgNjE0czExOS45IDIzLjIgMTYzLjUgNjEuNWMzLjQgMi45IDguNSAyLjUgMTEuNC0uOWwzNi00Mi45YzIuOC0zLjMgMi40LTguMy0uOS0xMS4yem0xMTcuNC0xNDAuMUM3NTEuNyA0MDYuNSA2MzcuNiAzNjIgNTEzIDM2MnMtMjM4LjcgNDQuNS0zMjcuNSAxMTguNGE4LjA1IDguMDUgMCAwMC0xIDExLjNsMzYgNDIuOWMyLjggMy40IDcuOSAzLjggMTEuMiAxQzMwOCA0NzIuMiA0MDYuMSA0MzQgNTEzIDQzNHMyMDUgMzguMiAyODEuMiAxMDEuNmMzLjQgMi44IDguNCAyLjQgMTEuMi0xbDM2LTQyLjljMi44LTMuNCAyLjQtOC41LTEtMTEuM3ptMTE2LjctMTM5QzgzNS43IDI0MS44IDY4MC4zIDE4MiA1MTEgMTgyYy0xNjguMiAwLTMyMi42IDU5LTQ0My43IDE1Ny40YTggOCAwIDAwLTEuMSAxMS40bDM2IDQyLjljMi44IDMuMyA3LjggMy44IDExLjEgMS4xQzIyMiAzMDYuNyAzNjAuMyAyNTQgNTExIDI1NGMxNTEuOCAwIDI5MSA1My41IDQwMCAxNDIuNyAzLjQgMi44IDguNCAyLjMgMTEuMi0xLjFsMzYtNDIuOWMyLjktMy40IDIuNC04LjUtMS4xLTExLjN6TTQ0OCA3NzhhNjQgNjQgMCAxMDEyOCAwIDY0IDY0IDAgMTAtMTI4IDB6In19XX0sbmFtZToid2lmaSIsdGhlbWU6Im91dGxpbmVkIn0sUmFlPU1hZSxJYWU9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246UmFlfSkpfSxQYWU9dC5mb3J3YXJkUmVmKElhZSksemFlPVBhZSxGYWU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUyMy44IDE5MS40djI4OC45aDM4MlYxMjguMXptMCA2NDIuMmwzODIgNjIuMnYtMzUyaC0zODJ6TTEyMC4xIDQ4MC4ySDQ0M1YyMDEuOWwtMzIyLjkgNTMuNXptMCAyOTAuNEw0NDMgODIzLjJWNTQzLjhIMTIwLjF6In19XX0sbmFtZToid2luZG93cyIsdGhlbWU6ImZpbGxlZCJ9LEFhZT1GYWUsTGFlPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkFhZX0pKX0sWmFlPXQuZm9yd2FyZFJlZihMYWUpLCRhZT1aYWUsSGFlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0xMjAuMSA3NzAuNkw0NDMgODIzLjJWNTQzLjhIMTIwLjF2MjI2Ljh6bTYzLjQtMTYzLjVoMTk2LjJ2MTQxLjZsLTE5Ni4yLTMxLjlWNjA3LjF6bTM0MC4zIDIyNi41bDM4MiA2Mi4ydi0zNTJoLTM4MnYyODkuOHptNjMuNC0yMjYuNWgyNTUuM3YyMTQuNGwtMjU1LjMtNDEuNlY2MDcuMXptLTYzLjQtNDE1Ljd2Mjg4LjhoMzgyVjEyOC4xbC0zODIgNjMuM3ptMzE4LjcgMjI1LjVINTg3LjNWMjQ1bDI1NS4zLTQyLjN2MjE0LjJ6bS03MjIuNCA2My4zSDQ0M1YyMDEuOWwtMzIyLjkgNTMuNXYyMjQuOHpNMTgzLjUgMzA5bDE5Ni4yLTMyLjV2MTQwLjRIMTgzLjVWMzA5eiJ9fV19LG5hbWU6IndpbmRvd3MiLHRoZW1lOiJvdXRsaW5lZCJ9LERhZT1IYWUsQmFlPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkRhZX0pKX0sVmFlPXQuZm9yd2FyZFJlZihCYWUpLE5hZT1WYWUsamFlPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik03MTIuOCA1NDguOGM1My42LTUzLjYgODMuMi0xMjUgODMuMi0yMDAuOCAwLTc1LjktMjkuNS0xNDcuMi04My4yLTIwMC44QzY1OS4yIDkzLjYgNTg3LjggNjQgNTEyIDY0cy0xNDcuMiAyOS41LTIwMC44IDgzLjJDMjU3LjYgMjAwLjkgMjI4IDI3Mi4xIDIyOCAzNDhjMCA2My44IDIwLjkgMTI0LjQgNTkuNCAxNzMuOSA3LjMgOS40IDE1LjIgMTguMyAyMy43IDI2LjkgOC41IDguNSAxNy41IDE2LjQgMjYuOCAyMy43IDM5LjYgMzAuOCA4Ni4zIDUwLjQgMTM2LjEgNTdWNzM2SDM2MGMtNC40IDAtOCAzLjYtOCA4djYwYzAgNC40IDMuNiA4IDggOGgxMTR2MTQwYzAgNC40IDMuNiA4IDggOGg2MGM0LjQgMCA4LTMuNiA4LThWODEyaDExNGM0LjQgMCA4LTMuNiA4LTh2LTYwYzAtNC40LTMuNi04LTgtOEg1NTBWNjI5LjVjNjEuNS04LjIgMTE4LjItMzYuMSAxNjIuOC04MC43ek01MTIgNTU2Yy01NS42IDAtMTA3LjctMjEuNi0xNDcuMS02MC45QzMyNS42IDQ1NS44IDMwNCA0MDMuNiAzMDQgMzQ4czIxLjYtMTA3LjcgNjAuOS0xNDcuMUM0MDQuMiAxNjEuNSA0NTYuNCAxNDAgNTEyIDE0MHMxMDcuNyAyMS42IDE0Ny4xIDYwLjlDNjk4LjQgMjQwLjIgNzIwIDI5Mi40IDcyMCAzNDhzLTIxLjYgMTA3LjctNjAuOSAxNDcuMUM2MTkuNyA1MzQuNCA1NjcuNiA1NTYgNTEyIDU1NnoifX1dfSxuYW1lOiJ3b21hbiIsdGhlbWU6Im91dGxpbmVkIn0sVWFlPWphZSxXYWU9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246VWFlfSkpfSxrYWU9dC5mb3J3YXJkUmVmKFdhZSksS2FlPWthZSxfYWU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJnIixhdHRyczp7ImZpbGwtcnVsZSI6ImV2ZW5vZGQifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04MjMuMTEgOTEySDIwMC45QTg4LjkgODguOSAwIDAxMTEyIDgyMy4xMVYyMDAuOUE4OC45IDg4LjkgMCAwMTIwMC44OSAxMTJIODIzLjFBODguOSA4OC45IDAgMDE5MTIgMjAwLjg5VjgyMy4xQTg4LjkgODguOSAwIDAxODIzLjExIDkxMiJ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTc0MCA3MzVINTk2Ljk0TDI4NiAyOTFoMTQzLjA2em0tMTI2LjAxLTM3LjY1aDU2Ljk2TDQxMiAzMjguNjVoLTU2Ljk2eiIsImZpbGwtcnVsZSI6Im5vbnplcm8ifX0se3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0zMzEuMyA3MzVMNDkxIDU0OS43MyA0NzAuMTEgNTIyIDI4NiA3MzV6TTUyMSA0NjAuMzlMNTQxLjIxIDQ4OSA3MTUgMjg5aC00NC42N3oiLCJmaWxsLXJ1bGUiOiJub256ZXJvIn19XX1dfSxuYW1lOiJ4Iix0aGVtZToiZmlsbGVkIn0sR2FlPV9hZSxZYWU9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246R2FlfSkpfSxYYWU9dC5mb3J3YXJkUmVmKFlhZSksUWFlPVhhZSxKYWU9e2ljb246e3RhZzoic3ZnIixhdHRyczp7ImZpbGwtcnVsZSI6ImV2ZW5vZGQiLHZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MjEgOTEyTDYwMS4xMSA0NDUuNzVsLjU1LjQzTDg5MC4wOCAxMTJINzkzLjdMNTU4Ljc0IDM4NCAzNzIuMTUgMTEySDExOS4zN2wyOTguNjUgNDM1LjMxLS4wNC0uMDRMMTAzIDkxMmg5Ni4zOUw0NjAuNiA2MDkuMzggNjY4LjIgOTEyek0zMzMuOTYgMTg0LjczbDQ0OC44MyA2NTQuNTRINzA2LjRMMjU3LjIgMTg0LjczeiJ9fV19LG5hbWU6IngiLHRoZW1lOiJvdXRsaW5lZCJ9LHFhZT1KYWUsZW9lPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOnFhZX0pKX0sdG9lPXQuZm9yd2FyZFJlZihlb2UpLG5vZT10b2Uscm9lPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MzcuMyAyMzFIODI0LjdjLTE1LjUgMC0yNy43IDEyLjYtMjcuMSAyOC4xbDEzLjEgMzY2aDg0LjRsNjUuNC0zNjYuNGMyLjctMTUuMi03LjgtMjcuNy0yMy4yLTI3Ljd6bS03Ny40IDQ1MC40aC0xNC4xYy0yNy4xIDAtNDkuMiAyMi4yLTQ5LjIgNDkuM3YxNC4xYzAgMjcuMSAyMi4yIDQ5LjMgNDkuMiA0OS4zaDE0LjFjMjcuMSAwIDQ5LjItMjIuMiA0OS4yLTQ5LjN2LTE0LjFjMC0yNy4xLTIyLjItNDkuMy00OS4yLTQ5LjN6TTQwMi42IDIzMUMyMTYuMiAyMzEgNjUgMzU3IDY1IDUxMi41UzIxNi4yIDc5NCA0MDIuNiA3OTRzMzM3LjYtMTI2IDMzNy42LTI4MS41UzU4OS4xIDIzMSA0MDIuNiAyMzF6bTIyNS4yIDIyNS4yaC02NS4zTDQ1OC45IDU1OS44djY1LjNoODQuNHY1Ni4zSDMxOC4ydi01Ni4zaDg0LjR2LTY1LjNMMjQyLjkgMzk5LjloLTM3di01Ni4zaDE2OC41djU2LjNoLTM3bDkzLjQgOTMuNSAyOC4xLTI4LjFWNDAwaDE2OC44djU2LjJ6In19XX0sbmFtZToieWFob28iLHRoZW1lOiJmaWxsZWQifSxhb2U9cm9lLG9vZT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjphb2V9KSl9LGlvZT10LmZvcndhcmRSZWYob29lKSxsb2U9aW9lLHNvZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODU5LjkgNjgxLjRoLTE0LjFjLTI3LjEgMC00OS4yIDIyLjItNDkuMiA0OS4zdjE0LjFjMCAyNy4xIDIyLjIgNDkuMyA0OS4yIDQ5LjNoMTQuMWMyNy4xIDAgNDkuMi0yMi4yIDQ5LjItNDkuM3YtMTQuMWMwLTI3LjEtMjIuMi00OS4zLTQ5LjItNDkuM3pNNDAyLjYgMjMxQzIxNi4yIDIzMSA2NSAzNTcgNjUgNTEyLjVTMjE2LjIgNzk0IDQwMi42IDc5NHMzMzcuNi0xMjYgMzM3LjYtMjgxLjVTNTg5LjEgMjMxIDQwMi42IDIzMXptMCA1MDdDMjQ1LjEgNzM4IDEyMSA2MzQuNiAxMjEgNTEyLjVjMC02Mi4zIDMyLjMtMTE5LjcgODQuOS0xNjF2NDguNGgzN2wxNTkuOCAxNTkuOXY2NS4zaC04NC40djU2LjNoMjI1LjF2LTU2LjNINDU5di02NS4zbDEwMy41LTEwMy42aDY1LjN2LTU2LjNINDU5djY1LjNsLTI4LjEgMjguMS05My40LTkzLjVoMzd2LTU2LjNIMjE2LjRjNDkuNC0zNSAxMTQuMy01Ni42IDE4Ni4yLTU2LjYgMTU3LjYgMCAyODEuNiAxMDMuNCAyODEuNiAyMjUuNVM1NjAuMiA3MzggNDAyLjYgNzM4em01MzQuNy01MDdIODI0LjdjLTE1LjUgMC0yNy43IDEyLjYtMjcuMSAyOC4xbDEzLjEgMzY2aDg0LjRsNjUuNC0zNjYuNGMyLjctMTUuMi03LjgtMjcuNy0yMy4yLTI3Ljd6In19XX0sbmFtZToieWFob28iLHRoZW1lOiJvdXRsaW5lZCJ9LGNvZT1zb2UsdW9lPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOmNvZX0pKX0sZG9lPXQuZm9yd2FyZFJlZih1b2UpLGZvZT1kb2Usdm9lPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05NDEuMyAyOTYuMWExMTIuMyAxMTIuMyAwIDAwLTc5LjItNzkuM0M3OTIuMiAxOTggNTEyIDE5OCA1MTIgMTk4cy0yODAuMiAwLTM1MC4xIDE4LjdBMTEyLjEyIDExMi4xMiAwIDAwODIuNyAyOTZDNjQgMzY2IDY0IDUxMiA2NCA1MTJzMCAxNDYgMTguNyAyMTUuOWMxMC4zIDM4LjYgNDAuNyA2OSA3OS4yIDc5LjNDMjMxLjggODI2IDUxMiA4MjYgNTEyIDgyNnMyODAuMiAwIDM1MC4xLTE4LjhjMzguNi0xMC4zIDY4LjktNDAuNyA3OS4yLTc5LjNDOTYwIDY1OCA5NjAgNTEyIDk2MCA1MTJzMC0xNDYtMTguNy0yMTUuOXpNNDIzIDY0NlYzNzhsMjMyIDEzMy0yMzIgMTM1eiJ9fV19LG5hbWU6InlvdXR1YmUiLHRoZW1lOiJmaWxsZWQifSxob2U9dm9lLG1vZT1mdW5jdGlvbihmLHYpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoYS5aLCgwLG4uWikoe30sZix7cmVmOnYsaWNvbjpob2V9KSl9LGdvZT10LmZvcndhcmRSZWYobW9lKSxwb2U9Z29lLHlvZT17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTYwIDUwOS4yYzAtMi4yIDAtNC43LS4xLTcuNi0uMS04LjEtLjMtMTcuMi0uNS0yNi45LS44LTI3LjktMi4yLTU1LjctNC40LTgxLjktMy0zNi4xLTcuNC02Ni4yLTEzLjQtODguOGExMzkuNTIgMTM5LjUyIDAgMDAtOTguMy05OC41Yy0yOC4zLTcuNi04My43LTEyLjMtMTYxLjctMTUuMi0zNy4xLTEuNC03Ni44LTIuMy0xMTYuNS0yLjgtMTMuOS0uMi0yNi44LS4zLTM4LjQtLjRoLTI5LjRjLTExLjYuMS0yNC41LjItMzguNC40LTM5LjcuNS03OS40IDEuNC0xMTYuNSAyLjgtNzggMy0xMzMuNSA3LjctMTYxLjcgMTUuMkExMzkuMzUgMTM5LjM1IDAgMDA4Mi40IDMwNEM3Ni4zIDMyNi42IDcyIDM1Ni43IDY5IDM5Mi44Yy0yLjIgMjYuMi0zLjYgNTQtNC40IDgxLjktLjMgOS43LS40IDE4LjgtLjUgMjYuOSAwIDIuOS0uMSA1LjQtLjEgNy42djUuNmMwIDIuMiAwIDQuNy4xIDcuNi4xIDguMS4zIDE3LjIuNSAyNi45LjggMjcuOSAyLjIgNTUuNyA0LjQgODEuOSAzIDM2LjEgNy40IDY2LjIgMTMuNCA4OC44IDEyLjggNDcuOSA1MC40IDg1LjcgOTguMyA5OC41IDI4LjIgNy42IDgzLjcgMTIuMyAxNjEuNyAxNS4yIDM3LjEgMS40IDc2LjggMi4zIDExNi41IDIuOCAxMy45LjIgMjYuOC4zIDM4LjQuNGgyOS40YzExLjYtLjEgMjQuNS0uMiAzOC40LS40IDM5LjctLjUgNzkuNC0xLjQgMTE2LjUtMi44IDc4LTMgMTMzLjUtNy43IDE2MS43LTE1LjIgNDcuOS0xMi44IDg1LjUtNTAuNSA5OC4zLTk4LjUgNi4xLTIyLjYgMTAuNC01Mi43IDEzLjQtODguOCAyLjItMjYuMiAzLjYtNTQgNC40LTgxLjkuMy05LjcuNC0xOC44LjUtMjYuOSAwLTIuOS4xLTUuNC4xLTcuNnYtNS42em0tNzIgNS4yYzAgMi4xIDAgNC40LS4xIDcuMS0uMSA3LjgtLjMgMTYuNC0uNSAyNS43LS43IDI2LjYtMi4xIDUzLjItNC4yIDc3LjktMi43IDMyLjItNi41IDU4LjYtMTEuMiA3Ni4zLTYuMiAyMy4xLTI0LjQgNDEuNC00Ny40IDQ3LjUtMjEgNS42LTczLjkgMTAuMS0xNDUuOCAxMi44LTM2LjQgMS40LTc1LjYgMi4zLTExNC43IDIuOC0xMy43LjItMjYuNC4zLTM3LjguM2gtMjguNmwtMzcuOC0uM2MtMzkuMS0uNS03OC4yLTEuNC0xMTQuNy0yLjgtNzEuOS0yLjgtMTI0LjktNy4yLTE0NS44LTEyLjgtMjMtNi4yLTQxLjItMjQuNC00Ny40LTQ3LjUtNC43LTE3LjctOC41LTQ0LjEtMTEuMi03Ni4zLTIuMS0yNC43LTMuNC01MS4zLTQuMi03Ny45LS4zLTkuMy0uNC0xOC0uNS0yNS43IDAtMi43LS4xLTUuMS0uMS03LjF2LTQuOGMwLTIuMSAwLTQuNC4xLTcuMS4xLTcuOC4zLTE2LjQuNS0yNS43LjctMjYuNiAyLjEtNTMuMiA0LjItNzcuOSAyLjctMzIuMiA2LjUtNTguNiAxMS4yLTc2LjMgNi4yLTIzLjEgMjQuNC00MS40IDQ3LjQtNDcuNSAyMS01LjYgNzMuOS0xMC4xIDE0NS44LTEyLjggMzYuNC0xLjQgNzUuNi0yLjMgMTE0LjctMi44IDEzLjctLjIgMjYuNC0uMyAzNy44LS4zaDI4LjZsMzcuOC4zYzM5LjEuNSA3OC4yIDEuNCAxMTQuNyAyLjggNzEuOSAyLjggMTI0LjkgNy4yIDE0NS44IDEyLjggMjMgNi4yIDQxLjIgMjQuNCA0Ny40IDQ3LjUgNC43IDE3LjcgOC41IDQ0LjEgMTEuMiA3Ni4zIDIuMSAyNC43IDMuNCA1MS4zIDQuMiA3Ny45LjMgOS4zLjQgMTggLjUgMjUuNyAwIDIuNy4xIDUuMS4xIDcuMXY0Ljh6TTQyMyA2NDZsMjMyLTEzNS0yMzItMTMzeiJ9fV19LG5hbWU6InlvdXR1YmUiLHRoZW1lOiJvdXRsaW5lZCJ9LENvZT15b2UsYm9lPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkNvZX0pKX0sU29lPXQuZm9yd2FyZFJlZihib2UpLE9vZT1Tb2UseG9lPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NTQuNiAzNzAuNmMtOS45LTM5LjQgOS45LTEwMi4yIDczLjQtMTI0LjRsLTY3LjktMy42cy0yNS43LTkwLTE0My42LTk4Yy0xMTcuOS04LjEtMTk1LTMtMTk1LTNzODcuNCA1NS42IDUyLjQgMTU0LjdjLTI1LjYgNTIuNS02NS44IDk1LjYtMTA4LjggMTQ0LjctMS4zIDEuMy0yLjUgMi42LTMuNSAzLjdDMzE5LjQgNjA1IDk2IDg2MCA5NiA4NjBjMjQ1LjkgNjQuNCA0MTAuNy02LjMgNTA4LjItOTEuMSAyMC41LS4yIDM1LjktLjMgNDYuMy0uMyAxMzUuOCAwIDI1MC42LTExNy42IDI0NS45LTI0OC40LTMuMi04OS45LTMxLjktMTEwLjItNDEuOC0xNDkuNnoifX1dfSxuYW1lOiJ5dXF1ZSIsdGhlbWU6ImZpbGxlZCJ9LHdvZT14b2UsRW9lPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOndvZX0pKX0sVG9lPXQuZm9yd2FyZFJlZihFb2UpLE1vZT1Ub2UsUm9lPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NTQuNiAzNzAuNmMtOS45LTM5LjQgOS45LTEwMi4yIDczLjQtMTI0LjRsLTY3LjktMy42cy0yNS43LTkwLTE0My42LTk4Yy0xMTcuOC04LjEtMTk0LjktMy0xOTUtMyAuMSAwIDg3LjQgNTUuNiA1Mi40IDE1NC43LTI1LjYgNTIuNS02NS44IDk1LjYtMTA4LjggMTQ0LjctMS4zIDEuMy0yLjUgMi42LTMuNSAzLjdDMzE5LjQgNjA1IDk2IDg2MCA5NiA4NjBjMjQ1LjkgNjQuNCA0MTAuNy02LjMgNTA4LjItOTEuMSAyMC41LS4yIDM1LjktLjMgNDYuMy0uMyAxMzUuOCAwIDI1MC42LTExNy42IDI0NS45LTI0OC40LTMuMi04OS45LTMxLjktMTEwLjItNDEuOC0xNDkuNnptLTIwNC4xIDMzNGMtMTAuNiAwLTI2LjIuMS00Ni44LjNsLTIzLjYuMi0xNy44IDE1LjVjLTQ3LjEgNDEtMTA0LjQgNzEuNS0xNzEuNCA4Ny42LTUyLjUgMTIuNi0xMTAgMTYuMi0xNzIuNyA5LjYgMTgtMjAuNSAzNi41LTQxLjYgNTUuNC02My4xIDkyLTEwNC42IDE3My44LTE5Ny41IDIzNi45LTI2OC41bDEuNC0xLjQgMS4zLTEuNWM0LjEtNC42IDIwLjYtMjMuMyAyNC43LTI4LjEgOS43LTExLjEgMTcuMy0xOS45IDI0LjUtMjguNiAzMC43LTM2LjcgNTIuMi02Ny44IDY5LTEwMi4ybDEuNi0zLjMgMS4yLTMuNGMxMy43LTM4LjggMTUuNC03Ni45IDYuMi0xMTIuOCAyMi41LjcgNDYuNSAxLjkgNzEuNyAzLjYgMzMuMyAyLjMgNTUuNSAxMi45IDcxLjEgMjkuMiA1LjggNiAxMC4yIDEyLjUgMTMuNCAxOC43IDEgMiAxLjcgMy42IDIuMyA1bDUgMTcuN2MtMTUuNyAzNC41LTE5LjkgNzMuMy0xMS40IDEwNy4yIDMgMTEuOCA2LjkgMjIuNCAxMi4zIDM0LjQgMi4xIDQuNyA5LjUgMjAuMSAxMSAyMy4zIDEwLjMgMjIuNyAxNS40IDQzIDE2LjcgNzguNyAzLjMgOTQuNi04Mi43IDE4MS45LTE4MiAxODEuOXoifX1dfSxuYW1lOiJ5dXF1ZSIsdGhlbWU6Im91dGxpbmVkIn0sSW9lPVJvZSxQb2U9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246SW9lfSkpfSx6b2U9dC5mb3J3YXJkUmVmKFBvZSksRm9lPXpvZSxBb2U9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0tOTAuNyA0NzcuOGwtLjEgMS41Yy0xLjUgMjAuNC02LjMgNDMuOS0xMi45IDY3LjZsMjQtMTguMSA3MSA4MC43YzkuMiAzMy0zLjMgNjMuMS0zLjMgNjMuMWwtOTUuNy0xMTEuOXYtLjFjLTguOSAyOS0yMC4xIDU3LjMtMzMuMyA4NC43LTIyLjYgNDUuNy01NS4yIDU0LjctODkuNSA1Ny43LTM0LjQgMy0yMy4zLTUuMy0yMy4zLTUuMyA2OC01NS41IDc4LTg3LjggOTYuOC0xMjMuMSAxMS45LTIyLjMgMjAuNC02NC4zIDI1LjMtOTYuOEgyNjQuMXM0LjgtMzEuMiAxOS4yLTQxLjdoMTAxLjZjLjYtMTUuMy0xLjMtMTAyLjgtMi0xMzEuNGgtNDkuNGMtOS4yIDQ1LTQxIDU2LjctNDguMSA2MC4xLTcgMy40LTIzLjYgNy4xLTIxLjEgMCAyLjYtNy4xIDI3LTQ2LjIgNDMuMi0xMTAuNyAxNi4zLTY0LjYgNjMuOS02MiA2My45LTYyLTEyLjggMjIuNS0yMi40IDczLjYtMjIuNCA3My42aDE1OS43YzEwLjEgMCAxMC42IDM5IDEwLjYgMzloLTkwLjhjLS43IDIyLjctMi44IDgzLjgtNSAxMzEuNEg1MTlzMTIuMiAxNS40IDEyLjIgNDEuN0g0MjEuM3ptMzQ2LjUgMTY3aC04Ny42bC02OS41IDQ2LjYtMTYuNC00Ni42aC00MC4xVjMyMS41aDIxMy42djM4Ny4zek00MDguMiA2MTFzMC0uMSAwIDB6bTIxNiA5NC4zbDU2LjgtMzguMWg0NS42LS4xVjM2NC43SDU5Ni43djMwMi41aDE0LjF6In19XX0sbmFtZToiemhpaHUtY2lyY2xlIix0aGVtZToiZmlsbGVkIn0sTG9lPUFvZSxab2U9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246TG9lfSkpfSwkb2U9dC5mb3J3YXJkUmVmKFpvZSksSG9lPSRvZSxEb2U9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTU2NC43IDIzMC4xVjgwM2g2MGwyNS4yIDcxLjRMNzU2LjMgODAzaDEzMS41VjIzMC4xSDU2NC43em0yNDcuNyA0OTdoLTU5LjlsLTc1LjEgNTAuNC0xNy44LTUwLjRoLTE4VjMwOC4zaDE3MC43djQxOC44ek01MjYuMSA0ODYuOUgzOTMuM2MyLjEtNDQuOSA0LjMtMTA0LjMgNi42LTE3Mi45aDEzMC45bC0uMS04LjFjMC0uNi0uMi0xNC43LTIuMy0yOS4xLTIuMS0xNS02LjYtMzQuOS0yMS0zNC45SDI4Ny44YzQuNC0yMC42IDE1LjctNjkuNyAyOS40LTkzLjhsNi40LTExLjItMTIuOS0uN2MtLjggMC0xOS42LS45LTQxLjQgMTAuNi0zNS43IDE5LTUxLjcgNTYuNC01OC43IDg0LjQtMTguNCA3My4xLTQ0LjYgMTIzLjktNTUuNyAxNDUuNi0zLjMgNi40LTUuMyAxMC4yLTYuMiAxMi44LTEuOCA0LjktLjggOS44IDIuOCAxMyAxMC41IDkuNSAzOC4yLTIuOSAzOC41LTMgLjYtLjMgMS4zLS42IDIuMi0xIDEzLjktNi4zIDU1LjEtMjUgNjkuOC04NC41aDU2LjdjLjcgMzIuMiAzLjEgMTM4LjQgMi45IDE3Mi45aC0xNDFsLTIuMSAxLjVjLTIzLjEgMTYuOS0zMC41IDYzLjItMzAuOCA2NS4ybC0xLjQgOS4yaDE2N2MtMTIuMyA3OC4zLTI2LjUgMTEzLjQtMzQgMTI3LjQtMy43IDctNy4zIDE0LTEwLjcgMjAuOC0yMS4zIDQyLjItNDMuNCA4NS44LTEyNi4zIDE1My42LTMuNiAyLjgtNyA4LTQuOCAxMy43IDIuNCA2LjMgOS4zIDkuMSAyNC42IDkuMSA1LjQgMCAxMS44LS4zIDE5LjQtMSA0OS45LTQuNCAxMDAuOC0xOCAxMzUuMS04Ny42IDE3LTM1LjEgMzEuNy03MS43IDQzLjktMTA4LjlMNDk3IDg1MGw1LTEyYy44LTEuOSAxOS00Ni4zIDUuMS05NS45bC0uNS0xLjgtMTA4LjEtMTIzLTIyIDE2LjZjNi40LTI2LjEgMTAuNi00OS45IDEyLjUtNzEuMWgxNTguN3YtOGMwLTQwLjEtMTguNS02My45LTE5LjItNjQuOWwtMi40LTN6In19XX0sbmFtZToiemhpaHUiLHRoZW1lOiJvdXRsaW5lZCJ9LEJvZT1Eb2UsVm9lPWZ1bmN0aW9uKGYsdil7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChhLlosKDAsbi5aKSh7fSxmLHtyZWY6dixpY29uOkJvZX0pKX0sTm9lPXQuZm9yd2FyZFJlZihWb2UpLGpvZT1Ob2UsVW9lPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTQzMi4zIDU5Mi44bDcxIDgwLjdjOS4yIDMzLTMuMyA2My4xLTMuMyA2My4xbC05NS43LTExMS45di0uMWMtOC45IDI5LTIwLjEgNTcuMy0zMy4zIDg0LjctMjIuNiA0NS43LTU1LjIgNTQuNy04OS41IDU3LjctMzQuNCAzLTIzLjMtNS4zLTIzLjMtNS4zIDY4LTU1LjUgNzgtODcuOCA5Ni44LTEyMy4xIDExLjktMjIuMyAyMC40LTY0LjMgMjUuMy05Ni44SDI2NC4xczQuOC0zMS4yIDE5LjItNDEuN2gxMDEuNmMuNi0xNS4zLTEuMy0xMDIuOC0yLTEzMS40aC00OS40Yy05LjIgNDUtNDEgNTYuNy00OC4xIDYwLjEtNyAzLjQtMjMuNiA3LjEtMjEuMSAwIDIuNi03LjEgMjctNDYuMiA0My4yLTExMC43IDE2LjMtNjQuNiA2My45LTYyIDYzLjktNjItMTIuOCAyMi41LTIyLjQgNzMuNi0yMi40IDczLjZoMTU5LjdjMTAuMSAwIDEwLjYgMzkgMTAuNiAzOWgtOTAuOGMtLjcgMjIuNy0yLjggODMuOC01IDEzMS40SDUxOXMxMi4yIDE1LjQgMTIuMiA0MS43aC0xMTBsLS4xIDEuNWMtMS41IDIwLjQtNi4zIDQzLjktMTIuOSA2Ny42bDI0LjEtMTguMXptMzM1LjUgMTE2aC04Ny42bC02OS41IDQ2LjYtMTYuNC00Ni42aC00MC4xVjMyMS41aDIxMy42djM4Ny4zek00MDguMiA2MTFzMC0uMSAwIDB6bTIxNiA5NC4zbDU2LjgtMzguMWg0NS42LS4xVjM2NC43SDU5Ni43djMwMi41aDE0LjF6In19XX0sbmFtZToiemhpaHUtc3F1YXJlIix0aGVtZToiZmlsbGVkIn0sV29lPVVvZSxrb2U9ZnVuY3Rpb24oZix2KXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGEuWiwoMCxuLlopKHt9LGYse3JlZjp2LGljb246V29lfSkpfSxLb2U9dC5mb3J3YXJkUmVmKGtvZSksX29lPUtvZSxHb2U9ZSgzNTU5OCksWW9lPWUoMTU2NjgpLGJ1PWUoNTkwNjgpLFhvZT1lKDkxMzIxKSxRb2U9ZSgxNjE2NSksSm9lPXIuWi5Qcm92aWRlcn0sNDE3NTU6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7QzM6ZnVuY3Rpb24oKXtyZXR1cm4gVH0sSDk6ZnVuY3Rpb24oKXtyZXR1cm4gRX0sS3A6ZnVuY3Rpb24oKXtyZXR1cm4gZH0sUl86ZnVuY3Rpb24oKXtyZXR1cm4gZ30scHc6ZnVuY3Rpb24oKXtyZXR1cm4gd30scjpmdW5jdGlvbigpe3JldHVybiBtfSx2RDpmdW5jdGlvbigpe3JldHVybiB4fX0pO3ZhciByPWUoMTQxMyksbj1lKDcxMDAyKSx0PWUoODQ4OTgpLGk9ZSg0NDk1OCkscz1lKDI3NTcxKSxhPWUoODAzMzQpLHU9ZSg2NzI5NCksYz1lKDYzMDE3KTtmdW5jdGlvbiBoKFMpe3JldHVybiBTLnJlcGxhY2UoLy0oLikvZyxmdW5jdGlvbihMLEkpe3JldHVybiBJLnRvVXBwZXJDYXNlKCl9KX1mdW5jdGlvbiBkKFMsTCl7KDAsYS5aUCkoUywiW0BhbnQtZGVzaWduL2ljb25zXSAiLmNvbmNhdChMKSl9ZnVuY3Rpb24gbShTKXtyZXR1cm4oMCxuLlopKFMpPT09Im9iamVjdCImJnR5cGVvZiBTLm5hbWU9PSJzdHJpbmciJiZ0eXBlb2YgUy50aGVtZT09InN0cmluZyImJigoMCxuLlopKFMuaWNvbik9PT0ib2JqZWN0Inx8dHlwZW9mIFMuaWNvbj09ImZ1bmN0aW9uIil9ZnVuY3Rpb24gQygpe3ZhciBTPWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dm9pZCAwP2FyZ3VtZW50c1swXTp7fTtyZXR1cm4gT2JqZWN0LmtleXMoUykucmVkdWNlKGZ1bmN0aW9uKEwsSSl7dmFyIFI9U1tJXTtzd2l0Y2goSSl7Y2FzZSJjbGFzcyI6TC5jbGFzc05hbWU9UixkZWxldGUgTC5jbGFzczticmVhaztkZWZhdWx0OmRlbGV0ZSBMW0ldLExbaChJKV09Un1yZXR1cm4gTH0se30pfWZ1bmN0aW9uIGcoUyxMLEkpe3JldHVybiBJP3UuY3JlYXRlRWxlbWVudChTLnRhZywoMCxyLlopKCgwLHIuWikoe2tleTpMfSxDKFMuYXR0cnMpKSxJKSwoUy5jaGlsZHJlbnx8W10pLm1hcChmdW5jdGlvbihSLHope3JldHVybiBnKFIsIiIuY29uY2F0KEwsIi0iKS5jb25jYXQoUy50YWcsIi0iKS5jb25jYXQoeikpfSkpOnUuY3JlYXRlRWxlbWVudChTLnRhZywoMCxyLlopKHtrZXk6TH0sQyhTLmF0dHJzKSksKFMuY2hpbGRyZW58fFtdKS5tYXAoZnVuY3Rpb24oUix6KXtyZXR1cm4gZyhSLCIiLmNvbmNhdChMLCItIikuY29uY2F0KFMudGFnLCItIikuY29uY2F0KHopKX0pKX1mdW5jdGlvbiB3KFMpe3JldHVybigwLHQuZ2VuZXJhdGUpKFMpWzBdfWZ1bmN0aW9uIEUoUyl7cmV0dXJuIFM/QXJyYXkuaXNBcnJheShTKT9TOltTXTpbXX12YXIgeD17d2lkdGg6IjFlbSIsaGVpZ2h0OiIxZW0iLGZpbGw6ImN1cnJlbnRDb2xvciIsImFyaWEtaGlkZGVuIjoidHJ1ZSIsZm9jdXNhYmxlOiJmYWxzZSJ9LE89YAorLmFudGljb24geworICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKKyAgYWxpZ24taXRlbXM6IGNlbnRlcjsKKyAgY29sb3I6IGluaGVyaXQ7CisgIGZvbnQtc3R5bGU6IG5vcm1hbDsKKyAgbGluZS1oZWlnaHQ6IDA7CisgIHRleHQtYWxpZ246IGNlbnRlcjsKKyAgdGV4dC10cmFuc2Zvcm06IG5vbmU7CisgIHZlcnRpY2FsLWFsaWduOiAtMC4xMjVlbTsKKyAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTsKKyAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7CisgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7Cit9CisKKy5hbnRpY29uID4gKiB7CisgIGxpbmUtaGVpZ2h0OiAxOworfQorCisuYW50aWNvbiBzdmcgeworICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Cit9CisKKy5hbnRpY29uOjpiZWZvcmUgeworICBkaXNwbGF5OiBub25lOworfQorCisuYW50aWNvbiAuYW50aWNvbi1pY29uIHsKKyAgZGlzcGxheTogYmxvY2s7Cit9CisKKy5hbnRpY29uW3RhYmluZGV4XSB7CisgIGN1cnNvcjogcG9pbnRlcjsKK30KKworLmFudGljb24tc3Bpbjo6YmVmb3JlLAorLmFudGljb24tc3BpbiB7CisgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgLXdlYmtpdC1hbmltYXRpb246IGxvYWRpbmdDaXJjbGUgMXMgaW5maW5pdGUgbGluZWFyOworICBhbmltYXRpb246IGxvYWRpbmdDaXJjbGUgMXMgaW5maW5pdGUgbGluZWFyOworfQorCitALXdlYmtpdC1rZXlmcmFtZXMgbG9hZGluZ0NpcmNsZSB7CisgIDEwMCUgeworICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsKKyAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOworICB9Cit9CisKK0BrZXlmcmFtZXMgbG9hZGluZ0NpcmNsZSB7CisgIDEwMCUgeworICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsKKyAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOworICB9Cit9CitgLFQ9ZnVuY3Rpb24oTCl7dmFyIEk9KDAsdS51c2VDb250ZXh0KShjLlopLFI9SS5jc3Asej1JLnByZWZpeENscyxHPUkubGF5ZXIsWT1PO3omJihZPVkucmVwbGFjZSgvYW50aWNvbi9nLHopKSxHJiYoWT0iQGxheWVyICIuY29uY2F0KEcsYCB7CitgKS5jb25jYXQoWSxgCit9YCkpLCgwLHUudXNlRWZmZWN0KShmdW5jdGlvbigpe3ZhciBlZT1MLmN1cnJlbnQsSj0oMCxzLkEpKGVlKTsoMCxpLmhxKShZLCJAYW50LWRlc2lnbi1pY29ucyIse3ByZXBlbmQ6IUcsY3NwOlIsYXR0YWNoVG86Sn0pfSxbXSl9fSwzMzE5NzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtxOmZ1bmN0aW9uKCl7cmV0dXJuIEV9fSk7dmFyIHI9ZSgxNDEzKSxuPWUoNzM3MSksdD1lKDI2MDU4KSxpPWUoNjcyOTQpLHM9ZSgyMTUzMiksYT1lKDkzOTY3KSx1PWUubihhKSxjPWUoNDk0MiksaD1lKDY0ODQ3KSxkPWZ1bmN0aW9uKE8pe3JldHVybigwLGMuWikoe30sTy5jb21wb25lbnRDbHMse21hcmdpbkJsb2NrOjAsbWFyZ2luQmxvY2tTdGFydDo0OCxtYXJnaW5CbG9ja0VuZDoyNCxtYXJnaW5JbmxpbmU6MCxwYWRkaW5nQmxvY2s6MCxwYWRkaW5nSW5saW5lOjE2LHRleHRBbGlnbjoiY2VudGVyIiwiJi1saXN0Ijp7bWFyZ2luQmxvY2tFbmQ6OCxjb2xvcjpPLmNvbG9yVGV4dFNlY29uZGFyeSwiJi1saW5rIjp7Y29sb3I6Ty5jb2xvclRleHRTZWNvbmRhcnksdGV4dERlY29yYXRpb246Ty5saW5rRGVjb3JhdGlvbn0sIio6bm90KDpsYXN0LWNoaWxkKSI6e21hcmdpbklubGluZUVuZDo4fSwiJjpob3ZlciI6e2NvbG9yOk8uY29sb3JQcmltYXJ5fX0sIiYtY29weXJpZ2h0Ijp7Zm9udFNpemU6IjE0cHgiLGNvbG9yOk8uY29sb3JUZXh0fX0pfTtmdW5jdGlvbiBtKHgpe3JldHVybigwLGguWGopKCJQcm9MYXlvdXRGb290ZXIiLGZ1bmN0aW9uKE8pe3ZhciBUPSgwLHIuWikoKDAsci5aKSh7fSxPKSx7fSx7Y29tcG9uZW50Q2xzOiIuIi5jb25jYXQoeCl9KTtyZXR1cm5bZChUKV19KX12YXIgQz1lKDg1ODkzKSxnPWZ1bmN0aW9uKE8pe3ZhciBUPU8uY2xhc3NOYW1lLFM9Ty5wcmVmaXhDbHMsTD1PLmxpbmtzLEk9Ty5jb3B5cmlnaHQsUj1PLnN0eWxlLHo9KDAsaS51c2VDb250ZXh0KShzLlpQLkNvbmZpZ0NvbnRleHQpLEc9ei5nZXRQcmVmaXhDbHMoU3x8InByby1nbG9iYWwtZm9vdGVyIiksWT1tKEcpLGVlPVkud3JhcFNTUixKPVkuaGFzaElkO3JldHVybihMPT1udWxsfHxMPT09ITF8fEFycmF5LmlzQXJyYXkoTCkmJkwubGVuZ3RoPT09MCkmJihJPT1udWxsfHxJPT09ITEpP251bGw6ZWUoKDAsQy5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOnUoKShHLEosVCksc3R5bGU6UixjaGlsZHJlbjpbTCYmKDAsQy5qc3gpKCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KEcsIi1saXN0ICIpLmNvbmNhdChKKS50cmltKCksY2hpbGRyZW46TC5tYXAoZnVuY3Rpb24obWUpe3JldHVybigwLEMuanN4KSgiYSIse2NsYXNzTmFtZToiIi5jb25jYXQoRywiLWxpc3QtbGluayAiKS5jb25jYXQoSikudHJpbSgpLHRpdGxlOm1lLmtleSx0YXJnZXQ6bWUuYmxhbmtUYXJnZXQ/Il9ibGFuayI6Il9zZWxmIixocmVmOm1lLmhyZWYscmVsOiJub3JlZmVycmVyIixjaGlsZHJlbjptZS50aXRsZX0sbWUua2V5KX0pfSksSSYmKDAsQy5qc3gpKCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KEcsIi1jb3B5cmlnaHQgIikuY29uY2F0KEopLnRyaW0oKSxjaGlsZHJlbjpJfSldfSkpfSx3PXQuWi5Gb290ZXIsRT1mdW5jdGlvbihPKXt2YXIgVD1PLmxpbmtzLFM9Ty5jb3B5cmlnaHQsTD1PLnN0eWxlLEk9Ty5jbGFzc05hbWUsUj1PLnByZWZpeENscztyZXR1cm4oMCxDLmpzeCkodyx7Y2xhc3NOYW1lOkksc3R5bGU6KDAsci5aKSh7cGFkZGluZzowfSxMKSxjaGlsZHJlbjooMCxDLmpzeCkoZyx7bGlua3M6VCxwcmVmaXhDbHM6Uixjb3B5cmlnaHQ6Uz09PSExP251bGw6KDAsQy5qc3hzKShpLkZyYWdtZW50LHtjaGlsZHJlbjpbKDAsQy5qc3gpKG4uWix7fSksIiAiLFNdfSl9KX0pfX0sMTQxOTI6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7aDpmdW5jdGlvbigpe3JldHVybiByfX0pO3ZhciByPXtuYXZUaGVtZToibGlnaHQiLGxheW91dDoic2lkZSIsY29udGVudFdpZHRoOiJGbHVpZCIsZml4ZWRIZWFkZXI6ITEsZml4U2lkZXJiYXI6ITAsaWNvbmZvbnRVcmw6IiIsY29sb3JQcmltYXJ5OiIjMTY3N0ZGIixzcGxpdE1lbnVzOiExfX0sNTI2NzY6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7ZTpmdW5jdGlvbigpe3JldHVybiBFfSxHOmZ1bmN0aW9uKCl7cmV0dXJuIHd9fSk7dmFyIHI9ZSgxMjA0NCksbj1lKDE0MTMpLHQ9eyJhcHAuc2V0dGluZy5wYWdlc3R5bGUiOiJQYWdlIHN0eWxlIHNldHRpbmciLCJhcHAuc2V0dGluZy5wYWdlc3R5bGUuZGFyayI6IkRhcmsgTWVudSBzdHlsZSIsImFwcC5zZXR0aW5nLnBhZ2VzdHlsZS5saWdodCI6IkxpZ2h0IE1lbnUgc3R5bGUiLCJhcHAuc2V0dGluZy5wYWdlc3R5bGUucmVhbGRhcmsiOiJEYXJrIHN0eWxlIChCZXRhKSIsImFwcC5zZXR0aW5nLmNvbnRlbnQtd2lkdGgiOiJDb250ZW50IFdpZHRoIiwiYXBwLnNldHRpbmcuY29udGVudC13aWR0aC5maXhlZCI6IkZpeGVkIiwiYXBwLnNldHRpbmcuY29udGVudC13aWR0aC5mbHVpZCI6IkZsdWlkIiwiYXBwLnNldHRpbmcudGhlbWVjb2xvciI6IlRoZW1lIENvbG9yIiwiYXBwLnNldHRpbmcudGhlbWVjb2xvci5kdXN0IjoiRHVzdCBSZWQiLCJhcHAuc2V0dGluZy50aGVtZWNvbG9yLnZvbGNhbm8iOiJWb2xjYW5vIiwiYXBwLnNldHRpbmcudGhlbWVjb2xvci5zdW5zZXQiOiJTdW5zZXQgT3JhbmdlIiwiYXBwLnNldHRpbmcudGhlbWVjb2xvci5jeWFuIjoiQ3lhbiIsImFwcC5zZXR0aW5nLnRoZW1lY29sb3IuZ3JlZW4iOiJQb2xhciBHcmVlbiIsImFwcC5zZXR0aW5nLnRoZW1lY29sb3IudGVjaEJsdWUiOiJUZWNoIEJsdWUgKGRlZmF1bHQpIiwiYXBwLnNldHRpbmcudGhlbWVjb2xvci5kYXlicmVhayI6IkRheWJyZWFrIEJsdWUiLCJhcHAuc2V0dGluZy50aGVtZWNvbG9yLmdlZWtibHVlIjoiR2VlayBCbHVlIiwiYXBwLnNldHRpbmcudGhlbWVjb2xvci5wdXJwbGUiOiJHb2xkZW4gUHVycGxlIiwiYXBwLnNldHRpbmcuc2lkZXJtZW51dHlwZSI6IlNpZGVNZW51IFR5cGUiLCJhcHAuc2V0dGluZy5zaWRlcm1lbnV0eXBlLXN1YiI6IkNsYXNzaWMiLCJhcHAuc2V0dGluZy5zaWRlcm1lbnV0eXBlLWdyb3VwIjoiR3JvdXBpbmciLCJhcHAuc2V0dGluZy5uYXZpZ2F0aW9ubW9kZSI6Ik5hdmlnYXRpb24gTW9kZSIsImFwcC5zZXR0aW5nLnJlZ2lvbmFsc2V0dGluZ3MiOiJSZWdpb25hbCBTZXR0aW5ncyIsImFwcC5zZXR0aW5nLnJlZ2lvbmFsc2V0dGluZ3MuaGVhZGVyIjoiSGVhZGVyIiwiYXBwLnNldHRpbmcucmVnaW9uYWxzZXR0aW5ncy5tZW51IjoiTWVudSIsImFwcC5zZXR0aW5nLnJlZ2lvbmFsc2V0dGluZ3MuZm9vdGVyIjoiRm9vdGVyIiwiYXBwLnNldHRpbmcucmVnaW9uYWxzZXR0aW5ncy5tZW51SGVhZGVyIjoiTWVudSBIZWFkZXIiLCJhcHAuc2V0dGluZy5zaWRlbWVudSI6IlNpZGUgTWVudSBMYXlvdXQiLCJhcHAuc2V0dGluZy50b3BtZW51IjoiVG9wIE1lbnUgTGF5b3V0IiwiYXBwLnNldHRpbmcubWl4bWVudSI6Ik1peCBNZW51IExheW91dCIsImFwcC5zZXR0aW5nLnNwbGl0TWVudXMiOiJTcGxpdCBNZW51cyIsImFwcC5zZXR0aW5nLmZpeGVkaGVhZGVyIjoiRml4ZWQgSGVhZGVyIiwiYXBwLnNldHRpbmcuZml4ZWRzaWRlYmFyIjoiRml4ZWQgU2lkZWJhciIsImFwcC5zZXR0aW5nLmZpeGVkc2lkZWJhci5oaW50IjoiV29ya3Mgb24gU2lkZSBNZW51IExheW91dCIsImFwcC5zZXR0aW5nLmhpZGVoZWFkZXIiOiJIaWRkZW4gSGVhZGVyIHdoZW4gc2Nyb2xsaW5nIiwiYXBwLnNldHRpbmcuaGlkZWhlYWRlci5oaW50IjoiV29ya3Mgd2hlbiBIaWRkZW4gSGVhZGVyIGlzIGVuYWJsZWQiLCJhcHAuc2V0dGluZy5vdGhlcnNldHRpbmdzIjoiT3RoZXIgU2V0dGluZ3MiLCJhcHAuc2V0dGluZy53ZWFrbW9kZSI6IldlYWsgTW9kZSIsImFwcC5zZXR0aW5nLmNvcHkiOiJDb3B5IFNldHRpbmciLCJhcHAuc2V0dGluZy5sb2FkaW5nIjoiTG9hZGluZyB0aGVtZSIsImFwcC5zZXR0aW5nLmNvcHlpbmZvIjoiY29weSBzdWNjZXNzXHVGRjBDcGxlYXNlIHJlcGxhY2UgZGVmYXVsdFNldHRpbmdzIGluIHNyYy9tb2RlbHMvc2V0dGluZy5qcyIsImFwcC5zZXR0aW5nLnByb2R1Y3Rpb24uaGludCI6IlNldHRpbmcgcGFuZWwgc2hvd3MgaW4gZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnQgb25seSwgcGxlYXNlIG1hbnVhbGx5IG1vZGlmeSJ9LGk9KDAsbi5aKSh7fSx0KSxzPXsiYXBwLnNldHRpbmcucGFnZXN0eWxlIjoiSW1wb3N0YXppb25pIGRpIHN0aWxlIiwiYXBwLnNldHRpbmcucGFnZXN0eWxlLmRhcmsiOiJUZW1hIHNjdXJvIiwiYXBwLnNldHRpbmcucGFnZXN0eWxlLmxpZ2h0IjoiVGVtYSBjaGlhcm8iLCJhcHAuc2V0dGluZy5jb250ZW50LXdpZHRoIjoiTGFyZ2V6emEgY29udGVudXRvIiwiYXBwLnNldHRpbmcuY29udGVudC13aWR0aC5maXhlZCI6IkZpc3NhIiwiYXBwLnNldHRpbmcuY29udGVudC13aWR0aC5mbHVpZCI6IkZsdWlkYSIsImFwcC5zZXR0aW5nLnRoZW1lY29sb3IiOiJDb2xvcmUgZGVsIHRlbWEiLCJhcHAuc2V0dGluZy50aGVtZWNvbG9yLmR1c3QiOiJSb3NzbyBwb2x2ZXJlIiwiYXBwLnNldHRpbmcudGhlbWVjb2xvci52b2xjYW5vIjoiVnVsY2FubyIsImFwcC5zZXR0aW5nLnRoZW1lY29sb3Iuc3Vuc2V0IjoiQXJhbmNpb25lIHRyYW1vbnRvIiwiYXBwLnNldHRpbmcudGhlbWVjb2xvci5jeWFuIjoiQ2lhbm8iLCJhcHAuc2V0dGluZy50aGVtZWNvbG9yLmdyZWVuIjoiVmVyZGUgcG9sYXJlIiwiYXBwLnNldHRpbmcudGhlbWVjb2xvci50ZWNoQmx1ZSI6IlRlY2ggQmx1IChkZWZhdWx0KSIsImFwcC5zZXR0aW5nLnRoZW1lY29sb3IuZGF5YnJlYWsiOiJCbHUgY2llbG8gbWF0dHV0aW5vIiwiYXBwLnNldHRpbmcudGhlbWVjb2xvci5nZWVrYmx1ZSI6IkJsdSBnZWVrIiwiYXBwLnNldHRpbmcudGhlbWVjb2xvci5wdXJwbGUiOiJWaW9sYSBkb3JhdG8iLCJhcHAuc2V0dGluZy5uYXZpZ2F0aW9ubW9kZSI6Ik1vZGFsaXRceEUwIGRpIG5hdmlnYXppb25lIiwiYXBwLnNldHRpbmcuc2lkZW1lbnUiOiJNZW51IGxhdGVyYWxlIiwiYXBwLnNldHRpbmcudG9wbWVudSI6Ik1lbnUgaW4gdGVzdGF0YSIsImFwcC5zZXR0aW5nLm1peG1lbnUiOiJNZW51IG1pc3RvIiwiYXBwLnNldHRpbmcuc3BsaXRNZW51cyI6Ik1lbnUgZGl2aXNpIiwiYXBwLnNldHRpbmcuZml4ZWRoZWFkZXIiOiJUZXN0YXRhIGZpc3NhIiwiYXBwLnNldHRpbmcuZml4ZWRzaWRlYmFyIjoiTWVudSBsYXRlcmFsZSBmaXNzbyIsImFwcC5zZXR0aW5nLmZpeGVkc2lkZWJhci5oaW50IjoiU29sbyBzZSBzZWxlemlvbmF0byBNZW51IGxhdGVyYWxlIiwiYXBwLnNldHRpbmcuaGlkZWhlYWRlciI6Ik5hc2NvbmRpIHRlc3RhdGEgZHVyYW50ZSBsbyBzY29ycmltZW50byIsImFwcC5zZXR0aW5nLmhpZGVoZWFkZXIuaGludCI6IlNvbG8gc2UgYWJpbGl0YXRvIE5hc2NvbmRpIHRlc3RhdGEgZHVyYW50ZSBsbyBzY29ycmltZW50byIsImFwcC5zZXR0aW5nLm90aGVyc2V0dGluZ3MiOiJBbHRyZSBpbXBvc3RhemlvbmkiLCJhcHAuc2V0dGluZy53ZWFrbW9kZSI6IkludmVydGkgY29sb3JpIiwiYXBwLnNldHRpbmcuY29weSI6IkNvcGlhIGltcG9zdGF6aW9uaSIsImFwcC5zZXR0aW5nLmxvYWRpbmciOiJDYXJpY28gdGVtYS4uLiIsImFwcC5zZXR0aW5nLmNvcHlpbmZvIjoiSW1wb3N0YXppb25pIGNvcGlhdGUgY29uIHN1Y2Nlc3NvISBJbmNvbGxhIGlsIGNvbnRlbnV0byBpbiBjb25maWcvZGVmYXVsdFNldHRpbmdzLmpzIiwiYXBwLnNldHRpbmcucHJvZHVjdGlvbi5oaW50IjoiUXVlc3RvIHBhbm5lbGxvIFx4RTggdmlzaWJpbGUgc29sbyBkdXJhbnRlIGxvIHN2aWx1cHBvLiBMZSBpbXBvc3RhemlvbmkgZGV2b25vIHBvaSBlc3NlcmUgbW9kaWZpY2F0ZSBtYW51bGFtZW50ZSJ9LGE9KDAsbi5aKSh7fSxzKSx1PXsiYXBwLnNldHRpbmcucGFnZXN0eWxlIjoiXHVDMkE0XHVEMEMwXHVDNzdDIFx1QzEyNFx1QzgxNSIsImFwcC5zZXR0aW5nLnBhZ2VzdHlsZS5kYXJrIjoiXHVCMkU0XHVEMDZDIFx1QkFBOFx1QjREQyIsImFwcC5zZXR0aW5nLnBhZ2VzdHlsZS5saWdodCI6Ilx1Qjc3Q1x1Qzc3NFx1RDJCOCBcdUJBQThcdUI0REMiLCJhcHAuc2V0dGluZy5jb250ZW50LXdpZHRoIjoiXHVDRUU4XHVEMTUwXHVDRTIwIFx1QjEwOFx1QkU0NCIsImFwcC5zZXR0aW5nLmNvbnRlbnQtd2lkdGguZml4ZWQiOiJcdUFDRTBcdUM4MTUiLCJhcHAuc2V0dGluZy5jb250ZW50LXdpZHRoLmZsdWlkIjoiXHVENzUwXHVCOTg0IiwiYXBwLnNldHRpbmcudGhlbWVjb2xvciI6Ilx1RDE0Q1x1QjlDOCBcdUMwQzlcdUMwQzEiLCJhcHAuc2V0dGluZy50aGVtZWNvbG9yLmR1c3QiOiJEdXN0IFJlZCIsImFwcC5zZXR0aW5nLnRoZW1lY29sb3Iudm9sY2FubyI6IlZvbGNhbm8iLCJhcHAuc2V0dGluZy50aGVtZWNvbG9yLnN1bnNldCI6IlN1bnNldCBPcmFuZ2UiLCJhcHAuc2V0dGluZy50aGVtZWNvbG9yLmN5YW4iOiJDeWFuIiwiYXBwLnNldHRpbmcudGhlbWVjb2xvci5ncmVlbiI6IlBvbGFyIEdyZWVuIiwiYXBwLnNldHRpbmcudGhlbWVjb2xvci50ZWNoQmx1ZSI6IlRlY2ggQmx1IChkZWZhdWx0KSIsImFwcC5zZXR0aW5nLnRoZW1lY29sb3IuZGF5YnJlYWsiOiJEYXlicmVhayBCbHVlIiwiYXBwLnNldHRpbmcudGhlbWVjb2xvci5nZWVrYmx1ZSI6IkdlZWsgQmx1ZSIsImFwcC5zZXR0aW5nLnRoZW1lY29sb3IucHVycGxlIjoiR29sZGVuIFB1cnBsZSIsImFwcC5zZXR0aW5nLm5hdmlnYXRpb25tb2RlIjoiXHVCMTI0XHVCRTQ0XHVBQzhDXHVDNzc0XHVDMTU4IFx1QkFBOFx1QjREQyIsImFwcC5zZXR0aW5nLnJlZ2lvbmFsc2V0dGluZ3MiOiJcdUM2MDFcdUM1RURcdUJDQzQgXHVDMTI0XHVDODE1IiwiYXBwLnNldHRpbmcucmVnaW9uYWxzZXR0aW5ncy5oZWFkZXIiOiJcdUQ1RTRcdUIzNTQiLCJhcHAuc2V0dGluZy5yZWdpb25hbHNldHRpbmdzLm1lbnUiOiJcdUJBNTRcdUIyNzQiLCJhcHAuc2V0dGluZy5yZWdpb25hbHNldHRpbmdzLmZvb3RlciI6Ilx1QkMxNFx1QjJFNVx1QUUwMCIsImFwcC5zZXR0aW5nLnJlZ2lvbmFsc2V0dGluZ3MubWVudUhlYWRlciI6Ilx1QkE1NFx1QjI3NCBcdUQ1RTRcdUIzNTQiLCJhcHAuc2V0dGluZy5zaWRlbWVudSI6Ilx1QkE1NFx1QjI3NCBcdUMwQUNcdUM3NzRcdUI0REMgXHVCQzMwXHVDRTU4IiwiYXBwLnNldHRpbmcudG9wbWVudSI6Ilx1QkE1NFx1QjI3NCBcdUMwQzFcdUIyRTggXHVCQzMwXHVDRTU4IiwiYXBwLnNldHRpbmcubWl4bWVudSI6Ilx1RDYzQ1x1RDU2OVx1RDYxNSBcdUJDMzBcdUNFNTgiLCJhcHAuc2V0dGluZy5zcGxpdE1lbnVzIjoiXHVCQTU0XHVCMjc0IFx1QkQ4NFx1QjlBQyIsImFwcC5zZXR0aW5nLmZpeGVkaGVhZGVyIjoiXHVENUU0XHVCMzU0IFx1QUNFMFx1QzgxNSIsImFwcC5zZXR0aW5nLmZpeGVkc2lkZWJhciI6Ilx1QzBBQ1x1Qzc3NFx1QjREQ1x1QkMxNCBcdUFDRTBcdUM4MTUiLCJhcHAuc2V0dGluZy5maXhlZHNpZGViYXIuaGludCI6IidcdUJBNTRcdUIyNzQgXHVDMEFDXHVDNzc0XHVCNERDIFx1QkMzMFx1Q0U1OCdcdUI5N0MgXHVDMTIwXHVEMEREXHVENTg4XHVDNzQ0IFx1QjU0QyBcdUIzRDlcdUM3OTFcdUQ1NjgiLCJhcHAuc2V0dGluZy5oaWRlaGVhZGVyIjoiXHVDMkE0XHVEMDZDXHVCODY0IFx1QzkxMSBcdUQ1RTRcdUIzNTQgXHVBQzEwXHVDRDk0XHVBRTMwIiwiYXBwLnNldHRpbmcuaGlkZWhlYWRlci5oaW50IjoiJ1x1RDVFNFx1QjM1NCBcdUFDMTBcdUNEOTRcdUFFMzAgXHVDNjM1XHVDMTU4J1x1Qzc0NCBcdUMxMjBcdUQwRERcdUQ1ODhcdUM3NDQgXHVCNTRDIFx1QjNEOVx1Qzc5MVx1RDU2OCIsImFwcC5zZXR0aW5nLm90aGVyc2V0dGluZ3MiOiJcdUIyRTRcdUI5NzggXHVDMTI0XHVDODE1IiwiYXBwLnNldHRpbmcud2Vha21vZGUiOiJcdUFDRTBcdUIzMDBcdUJFNDQgXHVCQUE4XHVCNERDIiwiYXBwLnNldHRpbmcuY29weSI6Ilx1QzEyNFx1QzgxNVx1QUMxMiBcdUJDRjVcdUMwQUMiLCJhcHAuc2V0dGluZy5sb2FkaW5nIjoiXHVEMTRDXHVCOUM4IFx1Qjg1Q1x1QjUyOSBcdUM5MTEiLCJhcHAuc2V0dGluZy5jb3B5aW5mbyI6Ilx1QkNGNVx1QzBBQyBcdUMxMzFcdUFDRjUuIHNyYy9tb2RlbHMvc2V0dGluZ3MuanNcdUM1RDAgXHVDNzg4XHVCMjk0IGRlZmF1bHRTZXR0aW5nc1x1Qjk3QyBcdUFENTBcdUNDQjRcdUQ1NzQgXHVDOEZDXHVDMTM4XHVDNjk0LiIsImFwcC5zZXR0aW5nLnByb2R1Y3Rpb24uaGludCI6Ilx1QzEyNFx1QzgxNSBcdUQzMTBcdUIxMkNcdUM3NDAgXHVBQzFDXHVCQzFDIFx1RDY1OFx1QUNCRFx1QzVEMFx1QzExQ1x1QjlDQyBcdUJDRjRcdUM1RUNcdUM5RDFcdUIyQzhcdUIyRTQuIFx1QzlDMVx1QzgxMSBcdUMyMThcdUIzRDlcdUM3M0NcdUI4NUMgXHVCQ0MwXHVBQ0JEXHVCQzE0XHVCNzhEXHVCMkM4XHVCMkU0LiJ9LGM9KDAsbi5aKSh7fSx1KSxoPXsiYXBwLnNldHRpbmcucGFnZXN0eWxlIjoiXHU2NTc0XHU0RjUzXHU5OENFXHU2ODNDXHU4QkJFXHU3RjZFIiwiYXBwLnNldHRpbmcucGFnZXN0eWxlLmRhcmsiOiJcdTY2OTdcdTgyNzJcdTgzRENcdTUzNTVcdTk4Q0VcdTY4M0MiLCJhcHAuc2V0dGluZy5wYWdlc3R5bGUubGlnaHQiOiJcdTRFQUVcdTgyNzJcdTgzRENcdTUzNTVcdTk4Q0VcdTY4M0MiLCJhcHAuc2V0dGluZy5wYWdlc3R5bGUucmVhbGRhcmsiOiJcdTY2OTdcdTgyNzJcdTk4Q0VcdTY4M0MoXHU1QjlFXHU5QThDXHU1MjlGXHU4MEZEKSIsImFwcC5zZXR0aW5nLmNvbnRlbnQtd2lkdGgiOiJcdTUxODVcdTVCQjlcdTUzM0FcdTU3REZcdTVCQkRcdTVFQTYiLCJhcHAuc2V0dGluZy5jb250ZW50LXdpZHRoLmZpeGVkIjoiXHU1QjlBXHU1QkJEIiwiYXBwLnNldHRpbmcuY29udGVudC13aWR0aC5mbHVpZCI6Ilx1NkQ0MVx1NUYwRiIsImFwcC5zZXR0aW5nLnRoZW1lY29sb3IiOiJcdTRFM0JcdTk4OThcdTgyNzIiLCJhcHAuc2V0dGluZy50aGVtZWNvbG9yLmR1c3QiOiJcdTg1ODRcdTY2QUUiLCJhcHAuc2V0dGluZy50aGVtZWNvbG9yLnZvbGNhbm8iOiJcdTcwNkJcdTVDNzEiLCJhcHAuc2V0dGluZy50aGVtZWNvbG9yLnN1bnNldCI6Ilx1NjVFNVx1NjZBRSIsImFwcC5zZXR0aW5nLnRoZW1lY29sb3IuY3lhbiI6Ilx1NjYwRVx1OTc1MiIsImFwcC5zZXR0aW5nLnRoZW1lY29sb3IuZ3JlZW4iOiJcdTY3ODFcdTUxNDlcdTdFRkYiLCJhcHAuc2V0dGluZy50aGVtZWNvbG9yLnRlY2hCbHVlIjoiXHU3OUQxXHU2MjgwXHU4NEREXHVGRjA4XHU5RUQ4XHU4QkE0XHVGRjA5IiwiYXBwLnNldHRpbmcudGhlbWVjb2xvci5kYXlicmVhayI6Ilx1NjJDMlx1NjY1MyIsImFwcC5zZXR0aW5nLnRoZW1lY29sb3IuZ2Vla2JsdWUiOiJcdTY3ODFcdTVCQTJcdTg0REQiLCJhcHAuc2V0dGluZy50aGVtZWNvbG9yLnB1cnBsZSI6Ilx1OTE3MVx1N0QyQiIsImFwcC5zZXR0aW5nLm5hdmlnYXRpb25tb2RlIjoiXHU1QkZDXHU4MjJBXHU2QTIxXHU1RjBGIiwiYXBwLnNldHRpbmcuc2lkZXJtZW51dHlwZSI6Ilx1NEZBN1x1OEZCOVx1ODNEQ1x1NTM1NVx1N0M3Qlx1NTc4QiIsImFwcC5zZXR0aW5nLnNpZGVybWVudXR5cGUtc3ViIjoiXHU3RUNGXHU1MTc4XHU2QTIxXHU1RjBGIiwiYXBwLnNldHRpbmcuc2lkZXJtZW51dHlwZS1ncm91cCI6Ilx1NTIwNlx1N0VDNFx1NkEyMVx1NUYwRiIsImFwcC5zZXR0aW5nLnJlZ2lvbmFsc2V0dGluZ3MiOiJcdTUxODVcdTVCQjlcdTUzM0FcdTU3REYiLCJhcHAuc2V0dGluZy5yZWdpb25hbHNldHRpbmdzLmhlYWRlciI6Ilx1OTg3Nlx1NjgwRiIsImFwcC5zZXR0aW5nLnJlZ2lvbmFsc2V0dGluZ3MubWVudSI6Ilx1ODNEQ1x1NTM1NSIsImFwcC5zZXR0aW5nLnJlZ2lvbmFsc2V0dGluZ3MuZm9vdGVyIjoiXHU5ODc1XHU4MTFBIiwiYXBwLnNldHRpbmcucmVnaW9uYWxzZXR0aW5ncy5tZW51SGVhZGVyIjoiXHU4M0RDXHU1MzU1XHU1OTM0IiwiYXBwLnNldHRpbmcuc2lkZW1lbnUiOiJcdTRGQTdcdThGQjlcdTgzRENcdTUzNTVcdTVFMDNcdTVDNDAiLCJhcHAuc2V0dGluZy50b3BtZW51IjoiXHU5ODc2XHU5MEU4XHU4M0RDXHU1MzU1XHU1RTAzXHU1QzQwIiwiYXBwLnNldHRpbmcubWl4bWVudSI6Ilx1NkRGN1x1NTQwOFx1ODNEQ1x1NTM1NVx1NUUwM1x1NUM0MCIsImFwcC5zZXR0aW5nLnNwbGl0TWVudXMiOiJcdTgxRUFcdTUyQThcdTUyMDZcdTUyNzJcdTgzRENcdTUzNTUiLCJhcHAuc2V0dGluZy5maXhlZGhlYWRlciI6Ilx1NTZGQVx1NUI5QSBIZWFkZXIiLCJhcHAuc2V0dGluZy5maXhlZHNpZGViYXIiOiJcdTU2RkFcdTVCOUFcdTRGQTdcdThGQjlcdTgzRENcdTUzNTUiLCJhcHAuc2V0dGluZy5maXhlZHNpZGViYXIuaGludCI6Ilx1NEZBN1x1OEZCOVx1ODNEQ1x1NTM1NVx1NUUwM1x1NUM0MFx1NjVGNlx1NTNFRlx1OTE0RFx1N0Y2RSIsImFwcC5zZXR0aW5nLmhpZGVoZWFkZXIiOiJcdTRFMEJcdTZFRDFcdTY1RjZcdTk2OTBcdTg1Q0YgSGVhZGVyIiwiYXBwLnNldHRpbmcuaGlkZWhlYWRlci5oaW50IjoiXHU1NkZBXHU1QjlBIEhlYWRlciBcdTY1RjZcdTUzRUZcdTkxNERcdTdGNkUiLCJhcHAuc2V0dGluZy5vdGhlcnNldHRpbmdzIjoiXHU1MTc2XHU0RUQ2XHU4QkJFXHU3RjZFIiwiYXBwLnNldHRpbmcud2Vha21vZGUiOiJcdTgyNzJcdTVGMzFcdTZBMjFcdTVGMEYiLCJhcHAuc2V0dGluZy5jb3B5IjoiXHU2MkY3XHU4RDFEXHU4QkJFXHU3RjZFIiwiYXBwLnNldHRpbmcubG9hZGluZyI6Ilx1NkI2M1x1NTcyOFx1NTJBMFx1OEY3RFx1NEUzQlx1OTg5OCIsImFwcC5zZXR0aW5nLmNvcHlpbmZvIjoiXHU2MkY3XHU4RDFEXHU2MjEwXHU1MjlGXHVGRjBDXHU4QkY3XHU1MjMwIHNyYy9kZWZhdWx0U2V0dGluZ3MuanMgXHU0RTJEXHU2NkZGXHU2MzYyXHU5RUQ4XHU4QkE0XHU5MTREXHU3RjZFIiwiYXBwLnNldHRpbmcucHJvZHVjdGlvbi5oaW50IjoiXHU5MTREXHU3RjZFXHU2ODBGXHU1M0VBXHU1NzI4XHU1RjAwXHU1M0QxXHU3M0FGXHU1ODgzXHU3NTI4XHU0RThFXHU5ODg0XHU4OUM4XHVGRjBDXHU3NTFGXHU0RUE3XHU3M0FGXHU1ODgzXHU0RTBEXHU0RjFBXHU1QzU1XHU3M0IwXHVGRjBDXHU4QkY3XHU2MkY3XHU4RDFEXHU1NDBFXHU2MjRCXHU1MkE4XHU0RkVFXHU2NTM5XHU5MTREXHU3RjZFXHU2NTg3XHU0RUY2In0sZD0oMCxuLlopKHt9LGgpLG09eyJhcHAuc2V0dGluZy5wYWdlc3R5bGUiOiJcdTY1NzRcdTlBRDRcdTk4QThcdTY4M0NcdThBMkRcdTdGNkUiLCJhcHAuc2V0dGluZy5wYWdlc3R5bGUuZGFyayI6Ilx1NjY5N1x1ODI3Mlx1ODNEQ1x1NTVBRVx1OThBOFx1NjgzQyIsImFwcC5zZXR0aW5nLnBhZ2VzdHlsZS5yZWFsZGFyayI6Ilx1NjY5N1x1ODI3Mlx1OThBOFx1NjgzQyhcdTVCOUVcdTlBOENcdTUyOUZcdTgwRkQpIiwiYXBwLnNldHRpbmcucGFnZXN0eWxlLmxpZ2h0IjoiXHU0RUFFXHU4MjcyXHU4M0RDXHU1NUFFXHU5OEE4XHU2ODNDIiwiYXBwLnNldHRpbmcuY29udGVudC13aWR0aCI6Ilx1NTE2N1x1NUJCOVx1NTM0MFx1NTdERlx1NUJFQ1x1NUVBNiIsImFwcC5zZXR0aW5nLmNvbnRlbnQtd2lkdGguZml4ZWQiOiJcdTVCOUFcdTVCRUMiLCJhcHAuc2V0dGluZy5jb250ZW50LXdpZHRoLmZsdWlkIjoiXHU2RDQxXHU1RjBGIiwiYXBwLnNldHRpbmcudGhlbWVjb2xvciI6Ilx1NEUzQlx1OTg0Q1x1ODI3MiIsImFwcC5zZXR0aW5nLnRoZW1lY29sb3IuZHVzdCI6Ilx1ODU4NFx1NjZBRSIsImFwcC5zZXR0aW5nLnRoZW1lY29sb3Iudm9sY2FubyI6Ilx1NzA2Qlx1NUM3MSIsImFwcC5zZXR0aW5nLnRoZW1lY29sb3Iuc3Vuc2V0IjoiXHU2NUU1XHU2NkFFIiwiYXBwLnNldHRpbmcudGhlbWVjb2xvci5jeWFuIjoiXHU2NjBFXHU5NzUyIiwiYXBwLnNldHRpbmcudGhlbWVjb2xvci5ncmVlbiI6Ilx1Njk3NVx1NTE0OVx1N0RBMCIsImFwcC5zZXR0aW5nLnRoZW1lY29sb3IudGVjaEJsdWUiOiJcdTc5RDFcdTYyODBcdTg0RERcdUZGMDhcdTlFRDhcdThBOERcdUZGMDkiLCJhcHAuc2V0dGluZy50aGVtZWNvbG9yLmRheWJyZWFrIjoiXHU2MkMyXHU2NkM5XHU4NUNEIiwiYXBwLnNldHRpbmcudGhlbWVjb2xvci5nZWVrYmx1ZSI6Ilx1Njk3NVx1NUJBMlx1ODVDRCIsImFwcC5zZXR0aW5nLnRoZW1lY29sb3IucHVycGxlIjoiXHU5MUFDXHU3RDJCIiwiYXBwLnNldHRpbmcubmF2aWdhdGlvbm1vZGUiOiJcdTVDMEVcdTgyMkFcdTZBMjFcdTVGMEYiLCJhcHAuc2V0dGluZy5zaWRlbWVudSI6Ilx1NTA3NFx1OTA4QVx1ODNEQ1x1NTVBRVx1NUUwM1x1NUM0MCIsImFwcC5zZXR0aW5nLnRvcG1lbnUiOiJcdTk4MDJcdTkwRThcdTgzRENcdTU1QUVcdTVFMDNcdTVDNDAiLCJhcHAuc2V0dGluZy5taXhtZW51IjoiXHU2REY3XHU1NDA4XHU4M0RDXHU1NUFFXHU1RTAzXHU1QzQwIiwiYXBwLnNldHRpbmcuc3BsaXRNZW51cyI6Ilx1ODFFQVx1NTJBOFx1NTIwNlx1NTI3Mlx1ODNEQ1x1NTM1NSIsImFwcC5zZXR0aW5nLmZpeGVkaGVhZGVyIjoiXHU1NkZBXHU1QjlBIEhlYWRlciIsImFwcC5zZXR0aW5nLmZpeGVkc2lkZWJhciI6Ilx1NTZGQVx1NUI5QVx1NTA3NFx1OTA4QVx1ODNEQ1x1NTVBRSIsImFwcC5zZXR0aW5nLmZpeGVkc2lkZWJhci5oaW50IjoiXHU1MDc0XHU5MDhBXHU4M0RDXHU1NUFFXHU1RTAzXHU1QzQwXHU2NjQyXHU1M0VGXHU5MTREXHU3RjZFIiwiYXBwLnNldHRpbmcuaGlkZWhlYWRlciI6Ilx1NEUwQlx1NkVEMVx1NjY0Mlx1OTZCMVx1ODVDRiBIZWFkZXIiLCJhcHAuc2V0dGluZy5oaWRlaGVhZGVyLmhpbnQiOiJcdTU2RkFcdTVCOUEgSGVhZGVyIFx1NjY0Mlx1NTNFRlx1OTE0RFx1N0Y2RSIsImFwcC5zZXR0aW5nLm90aGVyc2V0dGluZ3MiOiJcdTUxNzZcdTRFRDZcdThBMkRcdTdGNkUiLCJhcHAuc2V0dGluZy53ZWFrbW9kZSI6Ilx1ODI3Mlx1NUYzMVx1NkEyMVx1NUYwRiIsImFwcC5zZXR0aW5nLmNvcHkiOiJcdTYyRjdcdThDOURcdThBMkRcdTdGNkUiLCJhcHAuc2V0dGluZy5sb2FkaW5nIjoiXHU2QjYzXHU1NzI4XHU1MkEwXHU4RjA5XHU0RTNCXHU5ODRDIiwiYXBwLnNldHRpbmcuY29weWluZm8iOiJcdTYyRjdcdThDOURcdTYyMTBcdTUyOUZcdUZGMENcdThBQ0JcdTUyMzAgc3JjL2RlZmF1bHRTZXR0aW5ncy5qcyBcdTRFMkRcdTY2RkZcdTYzREJcdTlFRDhcdThBOERcdTkxNERcdTdGNkUiLCJhcHAuc2V0dGluZy5wcm9kdWN0aW9uLmhpbnQiOiJcdTkxNERcdTdGNkVcdTZCMDRcdTUzRUFcdTU3MjhcdTk1OEJcdTc2N0NcdTc0QjBcdTU4ODNcdTc1MjhcdTY1QkNcdTk4MTBcdTg5QkRcdUZGMENcdTc1MUZcdTc1MjJcdTc0QjBcdTU4ODNcdTRFMERcdTY3MDNcdTVDNTVcdTczRkVcdUZGMENcdThBQ0JcdTYyRjdcdThDOURcdTVGOENcdTYyNEJcdTUyRDVcdTRGRUVcdTY1MzlcdTkxNERcdTdGNkVcdTY1ODdcdTRFRjYifSxDPSgwLG4uWikoe30sbSksZz17InpoLUNOIjpkLCJ6aC1UVyI6QywiZW4tVVMiOmksIml0LUlUIjphLCJrby1LUiI6Y30sdz1mdW5jdGlvbigpe2lmKCEoMCxyLmopKCkpcmV0dXJuInpoLUNOIjt2YXIgTz13aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oInVtaV9sb2NhbGUiKTtyZXR1cm4gT3x8d2luZG93LmdfbG9jYWxlfHxuYXZpZ2F0b3IubGFuZ3VhZ2V9LEU9ZnVuY3Rpb24oKXt2YXIgTz13KCk7cmV0dXJuIGdbT118fGdbInpoLUNOIl19fSw2MjgxMjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtPNzpmdW5jdGlvbigpe3JldHVybiBufSxRWDpmdW5jdGlvbigpe3JldHVybiBzfSx0VjpmdW5jdGlvbigpe3JldHVybiBpfX0pO3ZhciByPWUoMTQxMyksbj1mdW5jdGlvbiBhKHUpe3JldHVybih1fHxbXSkucmVkdWNlKGZ1bmN0aW9uKGMsaCl7aWYoaC5rZXkmJmMucHVzaChoLmtleSksaC5jaGlsZHJlbnx8aC5yb3V0ZXMpe3ZhciBkPWMuY29uY2F0KGEoaC5jaGlsZHJlbnx8aC5yb3V0ZXMpfHxbXSk7cmV0dXJuIGR9cmV0dXJuIGN9LFtdKX0sdD17dGVjaEJsdWU6IiMxNjc3RkYiLGRheWJyZWFrOiIjMTg5MGZmIixkdXN0OiIjRjUyMjJEIix2b2xjYW5vOiIjRkE1NDFDIixzdW5zZXQ6IiNGQUFEMTQiLGN5YW46IiMxM0MyQzIiLGdyZWVuOiIjNTJDNDFBIixnZWVrYmx1ZToiIzJGNTRFQiIscHVycGxlOiIjNzIyRUQxIn07ZnVuY3Rpb24gaShhKXtyZXR1cm4gYSYmdFthXT90W2FdOmF8fCIifWZ1bmN0aW9uIHMoYSl7cmV0dXJuIGEubWFwKGZ1bmN0aW9uKHUpe3ZhciBjPXUuY2hpbGRyZW58fFtdLGg9KDAsci5aKSh7fSx1KTtpZighaC5jaGlsZHJlbiYmaC5yb3V0ZXMmJihoLmNoaWxkcmVuPWgucm91dGVzKSwhaC5uYW1lfHxoLmhpZGVJbk1lbnUpcmV0dXJuIG51bGw7aWYoaCYmaCE9PW51bGwmJmghPT12b2lkIDAmJmguY2hpbGRyZW4pe2lmKCFoLmhpZGVDaGlsZHJlbkluTWVudSYmYy5zb21lKGZ1bmN0aW9uKGQpe3JldHVybiBkJiZkLm5hbWUmJiFkLmhpZGVJbk1lbnV9KSlyZXR1cm4oMCxyLlopKCgwLHIuWikoe30sdSkse30se2NoaWxkcmVuOnMoYyl9KTtkZWxldGUgaC5jaGlsZHJlbn1yZXR1cm4gZGVsZXRlIGgucm91dGVzLGh9KS5maWx0ZXIoZnVuY3Rpb24odSl7cmV0dXJuIHV9KX19LDEwOTE1OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse19ZOmZ1bmN0aW9uKCl7cmV0dXJuIGxlfSxMXzpmdW5jdGlvbigpe3JldHVybiBXfSxaUDpmdW5jdGlvbigpe3JldHVybiBqfSxudTpmdW5jdGlvbigpe3JldHVybiBZfSxZQjpmdW5jdGlvbigpe3JldHVybiBjZX19KTt2YXIgcj1lKDc0OTAyKSxuPWUoOTc2ODUpLHQ9ZSg5MSksaT1lKDE0MTMpLHM9ZSgxMTU2OCksYT1lKDIxNTMyKSx1PWUoMzcwMjkpLGM9ZSg2NzI5NCksaD1lKDI1MjY5KSxkPWUoNTA2OCksbT1lKDUxNzc5KSxDPWUoMjc0ODQpLGc9ZS5uKEMpLHc9ZSg2NDg0NyksRT1mdW5jdGlvbihWLFope3ZhciBQLEssc2UsbmUsb2UsZmU9KDAsaS5aKSh7fSxWKTtyZXR1cm4oMCxpLlopKCgwLGkuWikoe2JnTGF5b3V0OiJsaW5lYXItZ3JhZGllbnQoIi5jb25jYXQoWi5jb2xvckJnQ29udGFpbmVyLCIsICIpLmNvbmNhdChaLmNvbG9yQmdMYXlvdXQsIiAyOCUpIiksY29sb3JUZXh0QXBwTGlzdEljb246Wi5jb2xvclRleHRTZWNvbmRhcnksYXBwTGlzdEljb25Ib3ZlckJnQ29sb3I6ZmU9PW51bGx8fChQPWZlLnNpZGVyKT09PW51bGx8fFA9PT12b2lkIDA/dm9pZCAwOlAuY29sb3JCZ01lbnVJdGVtU2VsZWN0ZWQsY29sb3JCZ0FwcExpc3RJY29uSG92ZXI6KDAsdy51SykoWi5jb2xvclRleHRCYXNlLC4wNCksY29sb3JUZXh0QXBwTGlzdEljb25Ib3ZlcjpaLmNvbG9yVGV4dEJhc2V9LGZlKSx7fSx7aGVhZGVyOigwLGkuWikoe2NvbG9yQmdIZWFkZXI6KDAsdy51SykoWi5jb2xvckJnRWxldmF0ZWQsLjYpLGNvbG9yQmdTY3JvbGxIZWFkZXI6KDAsdy51SykoWi5jb2xvckJnRWxldmF0ZWQsLjgpLGNvbG9ySGVhZGVyVGl0bGU6Wi5jb2xvclRleHQsY29sb3JCZ01lbnVJdGVtSG92ZXI6KDAsdy51SykoWi5jb2xvclRleHRCYXNlLC4wMyksY29sb3JCZ01lbnVJdGVtU2VsZWN0ZWQ6InRyYW5zcGFyZW50Iixjb2xvckJnTWVudUVsZXZhdGVkOihmZT09bnVsbHx8KEs9ZmUuaGVhZGVyKT09PW51bGx8fEs9PT12b2lkIDA/dm9pZCAwOksuY29sb3JCZ0hlYWRlcikhPT0icmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYpIj8oc2U9ZmUuaGVhZGVyKT09PW51bGx8fHNlPT09dm9pZCAwP3ZvaWQgMDpzZS5jb2xvckJnSGVhZGVyOlouY29sb3JCZ0VsZXZhdGVkLGNvbG9yVGV4dE1lbnVTZWxlY3RlZDooMCx3LnVLKShaLmNvbG9yVGV4dEJhc2UsLjk1KSxjb2xvckJnUmlnaHRBY3Rpb25zSXRlbUhvdmVyOigwLHcudUspKFouY29sb3JUZXh0QmFzZSwuMDMpLGNvbG9yVGV4dFJpZ2h0QWN0aW9uc0l0ZW06Wi5jb2xvclRleHRUZXJ0aWFyeSxoZWlnaHRMYXlvdXRIZWFkZXI6NTYsY29sb3JUZXh0TWVudTpaLmNvbG9yVGV4dFNlY29uZGFyeSxjb2xvclRleHRNZW51U2Vjb25kYXJ5OlouY29sb3JUZXh0VGVydGlhcnksY29sb3JUZXh0TWVudVRpdGxlOlouY29sb3JUZXh0LGNvbG9yVGV4dE1lbnVBY3RpdmU6Wi5jb2xvclRleHR9LGZlLmhlYWRlciksc2lkZXI6KDAsaS5aKSh7cGFkZGluZ0lubGluZUxheW91dE1lbnU6OCxwYWRkaW5nQmxvY2tMYXlvdXRNZW51OjAsY29sb3JCZ0NvbGxhcHNlZEJ1dHRvbjpaLmNvbG9yQmdFbGV2YXRlZCxjb2xvclRleHRDb2xsYXBzZWRCdXR0b25Ib3ZlcjpaLmNvbG9yVGV4dFNlY29uZGFyeSxjb2xvclRleHRDb2xsYXBzZWRCdXR0b246KDAsdy51SykoWi5jb2xvclRleHRCYXNlLC4yNSksY29sb3JNZW51QmFja2dyb3VuZDoidHJhbnNwYXJlbnQiLGNvbG9yTWVudUl0ZW1EaXZpZGVyOigwLHcudUspKFouY29sb3JUZXh0QmFzZSwuMDYpLGNvbG9yQmdNZW51SXRlbUhvdmVyOigwLHcudUspKFouY29sb3JUZXh0QmFzZSwuMDMpLGNvbG9yQmdNZW51SXRlbVNlbGVjdGVkOigwLHcudUspKFouY29sb3JUZXh0QmFzZSwuMDQpLGNvbG9yVGV4dE1lbnVJdGVtSG92ZXI6Wi5jb2xvclRleHQsY29sb3JUZXh0TWVudVNlbGVjdGVkOigwLHcudUspKFouY29sb3JUZXh0QmFzZSwuOTUpLGNvbG9yVGV4dE1lbnVBY3RpdmU6Wi5jb2xvclRleHQsY29sb3JUZXh0TWVudTpaLmNvbG9yVGV4dFNlY29uZGFyeSxjb2xvclRleHRNZW51U2Vjb25kYXJ5OlouY29sb3JUZXh0VGVydGlhcnksY29sb3JUZXh0TWVudVRpdGxlOlouY29sb3JUZXh0LGNvbG9yVGV4dFN1Yk1lbnVTZWxlY3RlZDooMCx3LnVLKShaLmNvbG9yVGV4dEJhc2UsLjk1KX0sZmUuc2lkZXIpLHBhZ2VDb250YWluZXI6KDAsaS5aKSh7Y29sb3JCZ1BhZ2VDb250YWluZXI6InRyYW5zcGFyZW50IixwYWRkaW5nSW5saW5lUGFnZUNvbnRhaW5lckNvbnRlbnQ6KChuZT1mZS5wYWdlQ29udGFpbmVyKT09PW51bGx8fG5lPT09dm9pZCAwP3ZvaWQgMDpuZS5tYXJnaW5JbmxpbmVQYWdlQ29udGFpbmVyQ29udGVudCl8fDQwLHBhZGRpbmdCbG9ja1BhZ2VDb250YWluZXJDb250ZW50Oigob2U9ZmUucGFnZUNvbnRhaW5lcik9PT1udWxsfHxvZT09PXZvaWQgMD92b2lkIDA6b2UubWFyZ2luQmxvY2tQYWdlQ29udGFpbmVyQ29udGVudCl8fDMyLGNvbG9yQmdQYWdlQ29udGFpbmVyRml4ZWQ6Wi5jb2xvckJnRWxldmF0ZWR9LGZlLnBhZ2VDb250YWluZXIpfSl9LHg9ZSg2NzgwNCksTz1lKDcxMDAyKSxUPWZ1bmN0aW9uKCl7Zm9yKHZhciBWPXt9LFo9YXJndW1lbnRzLmxlbmd0aCxQPW5ldyBBcnJheShaKSxLPTA7SzxaO0srKylQW0tdPWFyZ3VtZW50c1tLXTtmb3IodmFyIHNlPVAubGVuZ3RoLG5lLG9lPTA7b2U8c2U7b2UrPTEpZm9yKG5lIGluIFBbb2VdKVBbb2VdLmhhc093blByb3BlcnR5KG5lKSYmKCgwLE8uWikoVltuZV0pPT09Im9iamVjdCImJigwLE8uWikoUFtvZV1bbmVdKT09PSJvYmplY3QiJiZWW25lXSE9PXZvaWQgMCYmVltuZV0hPT1udWxsJiYhQXJyYXkuaXNBcnJheShWW25lXSkmJiFBcnJheS5pc0FycmF5KFBbb2VdW25lXSk/VltuZV09KDAsaS5aKSgoMCxpLlopKHt9LFZbbmVdKSxQW29lXVtuZV0pOlZbbmVdPVBbb2VdW25lXSk7cmV0dXJuIFZ9LFM9ZSgzMzg1MiksTD1lKDg1ODkzKSxJPWUoMzQxNTUpLFI9WyJsb2NhbGUiLCJnZXRQcmVmaXhDbHMiXSx6PVsibG9jYWxlIiwidGhlbWUiXSxHPWZ1bmN0aW9uKFYpe3ZhciBaPXt9O2lmKE9iamVjdC5rZXlzKFZ8fHt9KS5mb3JFYWNoKGZ1bmN0aW9uKFApe1ZbUF0hPT12b2lkIDAmJihaW1BdPVZbUF0pfSksIShPYmplY3Qua2V5cyhaKS5sZW5ndGg8MSkpcmV0dXJuIFp9LFk9ZnVuY3Rpb24oKXt2YXIgVixaO3JldHVybiEodHlwZW9mIEkhPSJ1bmRlZmluZWQiJiYoKChWPSJwcm9kdWN0aW9uIik9PT1udWxsfHxWPT09dm9pZCAwP3ZvaWQgMDpWLnRvVXBwZXJDYXNlKCkpPT09IlRFU1QifHwoKFo9InByb2R1Y3Rpb24iKT09PW51bGx8fFo9PT12b2lkIDA/dm9pZCAwOloudG9VcHBlckNhc2UoKSk9PT0iREVWIikpfSxlZT1jLmNyZWF0ZUNvbnRleHQoe2ludGw6KDAsaS5aKSgoMCxpLlopKHt9LG0uSGkpLHt9LHtsb2NhbGU6ImRlZmF1bHQifSksdmFsdWVUeXBlTWFwOnt9LHRoZW1lOnguZW1wdHlUaGVtZSxoYXNoZWQ6ITAsZGFyazohMSx0b2tlbjp4LmRlZmF1bHRUb2tlbn0pLEo9ZWUuQ29uc3VtZXIsbWU9ZnVuY3Rpb24oKXt2YXIgVj0oMCxoLmtZKSgpLFo9Vi5jYWNoZTtyZXR1cm4oMCxjLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oKXtaLmNsZWFyKCl9fSxbXSksbnVsbH0sdGU9ZnVuY3Rpb24oVil7dmFyIFosUD1WLmNoaWxkcmVuLEs9Vi5kYXJrLHNlPVYudmFsdWVUeXBlTWFwLG5lPVYuYXV0b0NsZWFyQ2FjaGUsb2U9bmU9PT12b2lkIDA/ITE6bmUsZmU9Vi50b2tlbixFZT1WLnByZWZpeENscyxSZT1WLmludGwsQmU9KDAsYy51c2VDb250ZXh0KShhLlpQLkNvbmZpZ0NvbnRleHQpLFllPUJlLmxvY2FsZSxvdD1CZS5nZXRQcmVmaXhDbHMscWU9KDAsdC5aKShCZSxSKSxfZT0oWj13Lk93LnVzZVRva2VuKT09PW51bGx8fFo9PT12b2lkIDA/dm9pZCAwOlouY2FsbCh3Lk93KSxGZT0oMCxjLnVzZUNvbnRleHQpKGVlKSxTZT1FZT8iLiIuY29uY2F0KEVlKToiLiIuY29uY2F0KG90KCksIi1wcm8iKSxxPSIuIitvdCgpLGs9IiIuY29uY2F0KFNlKSxNPSgwLGMudXNlTWVtbykoZnVuY3Rpb24oKXtyZXR1cm4gRShmZXx8e30sX2UudG9rZW58fHguZGVmYXVsdFRva2VuKX0sW2ZlLF9lLnRva2VuXSksQT0oMCxjLnVzZU1lbW8pKGZ1bmN0aW9uKCl7dmFyIExlLE1lPVllPT1udWxsP3ZvaWQgMDpZZS5sb2NhbGUsYmU9KDAsbS5WeSkoTWUpLCRlPVJlIT1udWxsP1JlOk1lJiYoKExlPUZlLmludGwpPT09bnVsbHx8TGU9PT12b2lkIDA/dm9pZCAwOkxlLmxvY2FsZSk9PT0iZGVmYXVsdCI/bS5Hb1tiZV06RmUuaW50bHx8bS5Hb1tiZV07cmV0dXJuKDAsaS5aKSgoMCxpLlopKHt9LEZlKSx7fSx7ZGFyazpLIT1udWxsP0s6RmUuZGFyayx0b2tlbjpUKEZlLnRva2VuLF9lLnRva2VuLHtwcm9Db21wb25lbnRzQ2xzOlNlLGFudENsczpxLHRoZW1lSWQ6X2UudGhlbWUuaWQsbGF5b3V0Ok19KSxpbnRsOiRlfHxtLkhpfSl9LFtZZT09bnVsbD92b2lkIDA6WWUubG9jYWxlLEZlLEssX2UudG9rZW4sX2UudGhlbWUuaWQsU2UscSxNLFJlXSksVT0oMCxpLlopKCgwLGkuWikoe30sQS50b2tlbnx8e30pLHt9LHtwcm9Db21wb25lbnRzQ2xzOlNlfSksTj0oMCxzLmZwKShfZS50aGVtZSxbX2UudG9rZW4sVSE9bnVsbD9VOnt9XSx7c2FsdDprLG92ZXJyaWRlOlV9KSxRPSgwLG4uWikoTiwyKSx1ZT1RWzBdLCQ9UVsxXSxfPSgwLGMudXNlTWVtbykoZnVuY3Rpb24oKXtyZXR1cm4hKFYuaGFzaGVkPT09ITF8fEZlLmhhc2hlZD09PSExKX0sW0ZlLmhhc2hlZCxWLmhhc2hlZF0pLHBlPSgwLGMudXNlTWVtbykoZnVuY3Rpb24oKXtyZXR1cm4gVi5oYXNoZWQ9PT0hMXx8RmUuaGFzaGVkPT09ITF8fFkoKT09PSExPyIiOl9lLmhhc2hJZD9fZS5oYXNoSWQ6JH0sWyQsRmUuaGFzaGVkLFYuaGFzaGVkXSk7KDAsYy51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7ZygpLmxvY2FsZSgoWWU9PW51bGw/dm9pZCAwOlllLmxvY2FsZSl8fCJ6aC1jbiIpfSxbWWU9PW51bGw/dm9pZCAwOlllLmxvY2FsZV0pO3ZhciByZT0oMCxjLnVzZU1lbW8pKGZ1bmN0aW9uKCl7cmV0dXJuKDAsaS5aKSgoMCxpLlopKHt9LHFlLnRoZW1lKSx7fSx7aGFzaElkOnBlLGhhc2hlZDpfJiZZKCl9KX0sW3FlLnRoZW1lLHBlLF8sWSgpXSksYWU9KDAsYy51c2VNZW1vKShmdW5jdGlvbigpe3JldHVybigwLGkuWikoKDAsaS5aKSh7fSxBKSx7fSx7dmFsdWVUeXBlTWFwOnNlfHwoQT09bnVsbD92b2lkIDA6QS52YWx1ZVR5cGVNYXApLHRva2VuOnVlLHRoZW1lOl9lLnRoZW1lLGhhc2hlZDpfLGhhc2hJZDpwZX0pfSxbQSxzZSx1ZSxfZS50aGVtZSxfLHBlXSksd2U9KDAsYy51c2VNZW1vKShmdW5jdGlvbigpe3JldHVybigwLEwuanN4KShhLlpQLCgwLGkuWikoKDAsaS5aKSh7fSxxZSkse30se3RoZW1lOnJlLGNoaWxkcmVuOigwLEwuanN4KShlZS5Qcm92aWRlcix7dmFsdWU6YWUsY2hpbGRyZW46KDAsTC5qc3hzKShMLkZyYWdtZW50LHtjaGlsZHJlbjpbb2UmJigwLEwuanN4KShtZSx7fSksUF19KX0pfSkpfSxbcWUscmUsYWUsb2UsUF0pO3JldHVybiBvZT8oMCxMLmpzeCkoZC5KJCx7dmFsdWU6e3Byb3ZpZGVyOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBNYXB9fSxjaGlsZHJlbjp3ZX0pOndlfSxsZT1mdW5jdGlvbihWKXt2YXIgWj1WLm5lZWREZXBzLFA9Vi5kYXJrLEs9Vi50b2tlbixzZT0oMCxjLnVzZUNvbnRleHQpKGVlKSxuZT0oMCxjLnVzZUNvbnRleHQpKGEuWlAuQ29uZmlnQ29udGV4dCksb2U9bmUubG9jYWxlLGZlPW5lLnRoZW1lLEVlPSgwLHQuWikobmUseiksUmU9WiYmc2UuaGFzaElkIT09dm9pZCAwJiZPYmplY3Qua2V5cyhWKS5zb3J0KCkuam9pbigiLSIpPT09ImNoaWxkcmVuLW5lZWREZXBzIjtpZihSZSlyZXR1cm4oMCxMLmpzeCkoTC5GcmFnbWVudCx7Y2hpbGRyZW46Vi5jaGlsZHJlbn0pO3ZhciBCZT1mdW5jdGlvbigpe3ZhciBxZT1QIT1udWxsP1A6c2UuZGFyaztyZXR1cm4gcWUmJiFBcnJheS5pc0FycmF5KGZlPT1udWxsP3ZvaWQgMDpmZS5hbGdvcml0aG0pP1t3Lk93LmRhcmtBbGdvcml0aG0sZmU9PW51bGw/dm9pZCAwOmZlLmFsZ29yaXRobV0uZmlsdGVyKEJvb2xlYW4pOnFlJiZBcnJheS5pc0FycmF5KGZlPT1udWxsP3ZvaWQgMDpmZS5hbGdvcml0aG0pP1t3Lk93LmRhcmtBbGdvcml0aG1dLmNvbmNhdCgoMCxyLlopKChmZT09bnVsbD92b2lkIDA6ZmUuYWxnb3JpdGhtKXx8W10pKS5maWx0ZXIoQm9vbGVhbik6ZmU9PW51bGw/dm9pZCAwOmZlLmFsZ29yaXRobX0sWWU9KDAsaS5aKSgoMCxpLlopKHt9LEVlKSx7fSx7bG9jYWxlOm9lfHx1LlosdGhlbWU6RygoMCxpLlopKCgwLGkuWikoe30sZmUpLHt9LHthbGdvcml0aG06QmUoKX0pKX0pO3JldHVybigwLEwuanN4KShhLlpQLCgwLGkuWikoKDAsaS5aKSh7fSxZZSkse30se2NoaWxkcmVuOigwLEwuanN4KSh0ZSwoMCxpLlopKCgwLGkuWikoe30sVikse30se3Rva2VuOkt9KSl9KSl9O2Z1bmN0aW9uIGNlKCl7dmFyIEQ9KDAsYy51c2VDb250ZXh0KShhLlpQLkNvbmZpZ0NvbnRleHQpLFY9RC5sb2NhbGUsWj0oMCxjLnVzZUNvbnRleHQpKGVlKSxQPVouaW50bDtyZXR1cm4gUCYmUC5sb2NhbGUhPT0iZGVmYXVsdCI/UHx8bS5IaTpWIT1udWxsJiZWLmxvY2FsZSYmbS5Hb1soMCxtLlZ5KShWLmxvY2FsZSldfHxtLkhpfWVlLmRpc3BsYXlOYW1lPSJQcm9Qcm92aWRlciI7dmFyIFc9ZWUsaj1lZX0sNTE3Nzk6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7Vnk6ZnVuY3Rpb24oKXtyZXR1cm4gJGV9LEdvOmZ1bmN0aW9uKCl7cmV0dXJuIE1lfSxIaTpmdW5jdGlvbigpe3JldHVybiBQfX0pO3ZhciByPWUoNTY3OTApLG49e21vbmV5U3ltYm9sOiIkIixmb3JtOntsaWdodEZpbHRlcjp7bW9yZToiXHUwNjI3XHUwNjQ0XHUwNjQ1XHUwNjMyXHUwNjRBXHUwNjJGIixjbGVhcjoiXHUwNjQ2XHUwNjM4XHUwNjQxIixjb25maXJtOiJcdTA2MkFcdTA2MjNcdTA2NDNcdTA2NEFcdTA2MkYiLGl0ZW1Vbml0OiJcdTA2MzlcdTA2NDZcdTA2MjdcdTA2MzVcdTA2MzEifX0sdGFibGVGb3JtOntzZWFyY2g6Ilx1MDYyN1x1MDYyOFx1MDYyRFx1MDYyQiIscmVzZXQ6Ilx1MDYyNVx1MDYzOVx1MDYyN1x1MDYyRlx1MDYyOSBcdTA2MkFcdTA2MzlcdTA2NEFcdTA2NEFcdTA2NDYiLHN1Ym1pdDoiXHUwNjI3XHUwNjMxXHUwNjMzXHUwNjI3XHUwNjQ0Iixjb2xsYXBzZWQ6Ilx1MDY0NVx1MDY0Rlx1MDY0Mlx1MDY0NFx1MDYzNSIsZXhwYW5kOiJcdTA2NDVcdTA2NEZcdTA2NDhcdTA2MzNcdTA2MzkiLGlucHV0UGxhY2Vob2xkZXI6Ilx1MDYyN1x1MDY0NFx1MDYzMVx1MDYyQ1x1MDYyN1x1MDYyMSBcdTA2MjdcdTA2NDRcdTA2MjVcdTA2MkZcdTA2MkVcdTA2MjdcdTA2NDQiLHNlbGVjdFBsYWNlaG9sZGVyOiJcdTA2MjdcdTA2NDRcdTA2MzFcdTA2MkNcdTA2MjdcdTA2MjEgXHUwNjI3XHUwNjQ0XHUwNjI1XHUwNjJFXHUwNjJBXHUwNjRBXHUwNjI3XHUwNjMxIn0sYWxlcnQ6e2NsZWFyOiJcdTA2NDZcdTA2MzhcdTA2NDEiLHNlbGVjdGVkOiJcdTA2NDVcdTA2MkRcdTA2MkZcdTA2MkYiLGl0ZW06Ilx1MDYzOVx1MDY0Nlx1MDYzNVx1MDYzMSJ9LHBhZ2luYXRpb246e3RvdGFsOntyYW5nZToiICIsdG90YWw6Ilx1MDY0NVx1MDY0NiIsaXRlbToiXHUwNjM5XHUwNjQ2XHUwNjI3XHUwNjM1XHUwNjMxIn19LHRhYmxlVG9vbEJhcjp7bGVmdFBpbjoiXHUwNjJCXHUwNjI4XHUwNjJBIFx1MDYzOVx1MDY0NFx1MDY0OSBcdTA2MjdcdTA2NDRcdTA2NEFcdTA2MzNcdTA2MjdcdTA2MzEiLHJpZ2h0UGluOiJcdTA2MkJcdTA2MjhcdTA2MkEgXHUwNjM5XHUwNjQ0XHUwNjQ5IFx1MDYyN1x1MDY0NFx1MDY0QVx1MDY0NVx1MDY0QVx1MDY0NiIsbm9QaW46Ilx1MDYyN1x1MDY0NFx1MDYzQVx1MDYyN1x1MDYyMSBcdTA2MjdcdTA2NDRcdTA2MkFcdTA2MkJcdTA2MjhcdTA2NEFcdTA2MkEiLGxlZnRGaXhlZFRpdGxlOiJcdTA2NDRcdTA2MzVcdTA2NDIgXHUwNjM5XHUwNjQ0XHUwNjQ5IFx1MDYyN1x1MDY0NFx1MDY0QVx1MDYzM1x1MDYyN1x1MDYzMSIscmlnaHRGaXhlZFRpdGxlOiJcdTA2NDRcdTA2MzVcdTA2NDIgXHUwNjM5XHUwNjQ0XHUwNjQ5IFx1MDYyN1x1MDY0NFx1MDY0QVx1MDY0NVx1MDY0QVx1MDY0NiIsbm9GaXhlZFRpdGxlOiJcdTA2MjVcdTA2NDRcdTA2M0FcdTA2MjdcdTA2MjEgXHUwNjI3XHUwNjQ0XHUwNjI1XHUwNjQ0XHUwNjM1XHUwNjI3XHUwNjQyIixyZXNldDoiXHUwNjI1XHUwNjM5XHUwNjI3XHUwNjJGXHUwNjI5IFx1MDYyQVx1MDYzOVx1MDY0QVx1MDY0QVx1MDY0NiIsY29sdW1uRGlzcGxheToiXHUwNjI3XHUwNjQ0XHUwNjIzXHUwNjM5XHUwNjQ1XHUwNjJGXHUwNjI5IFx1MDYyN1x1MDY0NFx1MDY0NVx1MDYzOVx1MDYzMVx1MDY0OFx1MDYzNlx1MDYyOSIsY29sdW1uU2V0dGluZzoiXHUwNjI3XHUwNjQ0XHUwNjI1XHUwNjM5XHUwNjJGXHUwNjI3XHUwNjJGXHUwNjI3XHUwNjJBIixmdWxsU2NyZWVuOiJcdTA2NDhcdTA2MzZcdTA2MzkgXHUwNjQzXHUwNjI3XHUwNjQ1XHUwNjQ0IFx1MDYyN1x1MDY0NFx1MDYzNFx1MDYyN1x1MDYzNFx1MDYyOSIsZXhpdEZ1bGxTY3JlZW46Ilx1MDYyN1x1MDY0NFx1MDYyRVx1MDYzMVx1MDY0OFx1MDYyQyBcdTA2NDVcdTA2NDYgXHUwNjQ4XHUwNjM2XHUwNjM5IFx1MDY0M1x1MDYyN1x1MDY0NVx1MDY0NCBcdTA2MjdcdTA2NDRcdTA2MzRcdTA2MjdcdTA2MzRcdTA2MjkiLHJlbG9hZDoiXHUwNjJBXHUwNjJEXHUwNjJGXHUwNjRBXHUwNjJCIixkZW5zaXR5OiJcdTA2MjdcdTA2NDRcdTA2NDNcdTA2MkJcdTA2MjdcdTA2NDFcdTA2MjkiLGRlbnNpdHlEZWZhdWx0OiJcdTA2MjdcdTA2NDFcdTA2MkFcdTA2MzFcdTA2MjdcdTA2MzZcdTA2NEEiLGRlbnNpdHlMYXJnZXI6Ilx1MDYyM1x1MDY0M1x1MDYyOFx1MDYzMSIsZGVuc2l0eU1pZGRsZToiXHUwNjQ4XHUwNjMzXHUwNjM3IixkZW5zaXR5U21hbGw6Ilx1MDY0NVx1MDYyRlx1MDY0NVx1MDYyQyJ9LHN0ZXBzRm9ybTp7bmV4dDoiXHUwNjI3XHUwNjQ0XHUwNjJBXHUwNjI3XHUwNjQ0XHUwNjRBIixwcmV2OiJcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MjhcdTA2NDIiLHN1Ym1pdDoiXHUwNjIzXHUwNjQ2XHUwNjQ3XHUwNjQ5In0sbG9naW5Gb3JtOntzdWJtaXRUZXh0OiJcdTA2MkFcdTA2MzNcdTA2MkNcdTA2NEFcdTA2NDQgXHUwNjI3XHUwNjQ0XHUwNjJGXHUwNjJFXHUwNjQ4XHUwNjQ0In0sZWRpdGFibGVUYWJsZTp7YWN0aW9uOntzYXZlOiJcdTA2MjNcdTA2NDZcdTA2NDJcdTA2MzAiLGNhbmNlbDoiXHUwNjI1XHUwNjQ0XHUwNjNBXHUwNjI3XHUwNjIxIFx1MDYyN1x1MDY0NFx1MDYyM1x1MDY0NVx1MDYzMSIsZGVsZXRlOiJcdTA2MkRcdTA2MzBcdTA2NDEiLGFkZDoiXHUwNjI1XHUwNjM2XHUwNjI3XHUwNjQxXHUwNjI5IFx1MDYzNVx1MDY0MSBcdTA2NDVcdTA2NDYgXHUwNjI3XHUwNjQ0XHUwNjI4XHUwNjRBXHUwNjI3XHUwNjQ2XHUwNjI3XHUwNjJBIn19LHN3aXRjaDp7b3BlbjoiXHUwNjQ1XHUwNjQxXHUwNjJBXHUwNjQ4XHUwNjJEIixjbG9zZToiXHUwNjNBXHUwNjQ0XHUwNjQyIn19LHQ9e21vbmV5U3ltYm9sOiJcdTIwQUMiLGZvcm06e2xpZ2h0RmlsdGVyOnttb3JlOiJNXHhFOXMiLGNsZWFyOiJOZXRlamFyIixjb25maXJtOiJDb25maXJtYXIiLGl0ZW1Vbml0OiJFbGVtZW50cyJ9fSx0YWJsZUZvcm06e3NlYXJjaDoiQ2VyY2FyIixyZXNldDoiTmV0ZWphciIsc3VibWl0OiJFbnZpYXIiLGNvbGxhcHNlZDoiRXhwYW5kaXIiLGV4cGFuZDoiQ29sXHhCN2xhcHNhciIsaW5wdXRQbGFjZWhvbGRlcjoiSW50cm9kdVx4RUZ1IHZhbG9yIixzZWxlY3RQbGFjZWhvbGRlcjoiU2VsZWNjaW9uZXUgdmFsb3IifSxhbGVydDp7Y2xlYXI6Ik5ldGVqYXIiLHNlbGVjdGVkOiJTZWxlY2Npb25hdCIsaXRlbToiQXJ0aWNsZSJ9LHBhZ2luYXRpb246e3RvdGFsOntyYW5nZToiICIsdG90YWw6ImRlIixpdGVtOiJhcnRpY2xlcyJ9fSx0YWJsZVRvb2xCYXI6e2xlZnRQaW46IlBpbiBhIGwnZXNxdWVycmEiLHJpZ2h0UGluOiJQaW4gYSBsYSBkcmV0YSIsbm9QaW46IlNlbnNlIFBpbiIsbGVmdEZpeGVkVGl0bGU6IkZpeGF0IGEgbCdlc3F1ZXJyYSIscmlnaHRGaXhlZFRpdGxlOiJGaXhhdCBhIGxhIGRyZXRhIixub0ZpeGVkVGl0bGU6IlNlbnNlIGZpeGFyIixyZXNldDoiUmVpbmljaWFyIixjb2x1bW5EaXNwbGF5OiJNb3N0cmFyIENvbHVtbmEiLGNvbHVtblNldHRpbmc6IkNvbmZpZ3VyYWNpXHhGMyIsZnVsbFNjcmVlbjoiUGFudGFsbGEgQ29tcGxldGEiLGV4aXRGdWxsU2NyZWVuOiJTb3J0aXIgUGFudGFsbGEgQ29tcGxldGEiLHJlbG9hZDoiUmVmcmVzY2FyIixkZW5zaXR5OiJEZW5zaXRhdCIsZGVuc2l0eURlZmF1bHQ6IlBlciBEZWZlY3RlIixkZW5zaXR5TGFyZ2VyOiJMbGFyZyIsZGVuc2l0eU1pZGRsZToiTWl0alx4RTAiLGRlbnNpdHlTbWFsbDoiQ29tcGFjdGUifSxzdGVwc0Zvcm06e25leHQ6IlNlZ1x4RkNlbnQiLHByZXY6IkFudGVyaW9yIixzdWJtaXQ6IkZpbmFsaXphciJ9LGxvZ2luRm9ybTp7c3VibWl0VGV4dDoiRW50cmFyIn0sZWRpdGFibGVUYWJsZTp7YWN0aW9uOntzYXZlOiJHdWFyZGFyIixjYW5jZWw6IkNhbmNlbFx4QjdsYXIiLGRlbGV0ZToiRWxpbWluYXIiLGFkZDoiYWZlZ2lyIHVuYSBmaWxhIGRlIGRhZGVzIn19LHN3aXRjaDp7b3Blbjoib2JlcnQiLGNsb3NlOiJ0YW5jYXQifX0saT17bW9uZXlTeW1ib2w6IktcdTAxMEQiLGRlbGV0ZVRoaXNMaW5lOiJTbWF6YXQgdGVudG8gXHUwMTU5XHhFMWRlayIsY29weVRoaXNMaW5lOiJLb3BceEVEcm92YXQgdGVudG8gXHUwMTU5XHhFMWRlayIsZm9ybTp7bGlnaHRGaWx0ZXI6e21vcmU6IlZceEVEYyIsY2xlYXI6IlZ5bWF6YXQiLGNvbmZpcm06IlBvdHZyZGl0IixpdGVtVW5pdDoiUG9sb1x1MDE3RWt5In19LHRhYmxlRm9ybTp7c2VhcmNoOiJEb3RheiIscmVzZXQ6IlJlc2V0b3ZhdCIsc3VibWl0OiJPZGVzbGF0Iixjb2xsYXBzZWQ6Ilp2XHUwMTFCdFx1MDE2MWl0IixleHBhbmQ6IlptZW5cdTAxNjFpdCIsaW5wdXRQbGFjZWhvbGRlcjoiWmFkZWp0ZSBwcm9zXHhFRG0iLHNlbGVjdFBsYWNlaG9sZGVyOiJWeWJlcnRlIHByb3NceEVEbSJ9LGFsZXJ0OntjbGVhcjoiVnltYXphdCIsc2VsZWN0ZWQ6IlZ5YnJhblx4RkQiLGl0ZW06IlBvbG9cdTAxN0VrYSJ9LHBhZ2luYXRpb246e3RvdGFsOntyYW5nZToiICIsdG90YWw6InoiLGl0ZW06InBvbG9cdTAxN0VlayJ9fSx0YWJsZVRvb2xCYXI6e2xlZnRQaW46IlBcdTAxNTlpcG5vdXQgZG9sZXZhIixyaWdodFBpbjoiUFx1MDE1OWlwbm91dCBkb3ByYXZhIixub1BpbjoiT2RlcG51dG8iLGxlZnRGaXhlZFRpdGxlOiJGaXhvdlx4RTFubyBuYWxldm8iLHJpZ2h0Rml4ZWRUaXRsZToiRml4b3ZceEUxbm8gbmFwcmF2byIsbm9GaXhlZFRpdGxlOiJOZW9wcmF2ZW5vIixyZXNldDoiUmVzZXRvdmF0Iixjb2x1bW5EaXNwbGF5OiJab2JyYXplblx4RUQgc2xvdXBjXHUwMTZGIixjb2x1bW5TZXR0aW5nOiJOYXN0YXZlblx4RUQiLGZ1bGxTY3JlZW46IkNlbFx4RTEgb2JyYXpvdmthIixleGl0RnVsbFNjcmVlbjoiVWtvblx1MDEwRGV0ZSBjZWxvdSBvYnJhem92a3UiLHJlbG9hZDoiT2Jub3ZpdCIsZGVuc2l0eToiSHVzdG90YSIsZGVuc2l0eURlZmF1bHQ6IlZceEZEY2hvelx4RUQiLGRlbnNpdHlMYXJnZXI6IlZcdTAxMUJ0XHUwMTYxXHhFRCIsZGVuc2l0eU1pZGRsZToiU3RcdTAxNTllZG5ceEVEIixkZW5zaXR5U21hbGw6IktvbXBha3RuXHhFRCJ9LHN0ZXBzRm9ybTp7bmV4dDoiRGFsXHUwMTYxXHhFRCIscHJldjoiUFx1MDE1OWVkY2hvelx4RUQiLHN1Ym1pdDoiRG9rb25cdTAxMERpdCJ9LGxvZ2luRm9ybTp7c3VibWl0VGV4dDoiUFx1MDE1OWlobFx4RTFzaXQgc2UifSxlZGl0YWJsZVRhYmxlOntvbmx5T25lTGluZUVkaXRvcjoiVXByYXZpdCBsemUgcG91emUgamVkZW4gXHUwMTU5XHhFMWRlayIsYWN0aW9uOntzYXZlOiJVbG9cdTAxN0VpdCIsY2FuY2VsOiJacnVcdTAxNjFpdCIsZGVsZXRlOiJWeW1hemF0IixhZGQ6InBcdTAxNTlpZGF0IFx1MDE1OVx4RTFkZWsgZGF0In19LHN3aXRjaDp7b3Blbjoib3Rldlx1MDE1OVx4RUR0IixjbG9zZToiemF2XHUwMTU5XHhFRHQifX0scz17bW9uZXlTeW1ib2w6Ilx1MjBBQyIsZm9ybTp7bGlnaHRGaWx0ZXI6e21vcmU6Ik1laHIiLGNsZWFyOiJadXJceEZDY2tzZXR6ZW4iLGNvbmZpcm06IkJlc3RceEU0dGlnZW4iLGl0ZW1Vbml0OiJFaW50clx4RTRnZSJ9fSx0YWJsZUZvcm06e3NlYXJjaDoiU3VjaGVuIixyZXNldDoiWnVyXHhGQ2Nrc2V0emVuIixzdWJtaXQ6IkFic2VuZGVuIixjb2xsYXBzZWQ6IlplaWdlIG1laHIiLGV4cGFuZDoiWmVpZ2Ugd2VuaWdlciIsaW5wdXRQbGFjZWhvbGRlcjoiQml0dGUgZWluZ2ViZW4iLHNlbGVjdFBsYWNlaG9sZGVyOiJCaXR0ZSBhdXN3XHhFNGhsZW4ifSxhbGVydDp7Y2xlYXI6Ilp1clx4RkNja3NldHplbiIsc2VsZWN0ZWQ6IkF1c2dld1x4RTRobHQiLGl0ZW06IkVpbnRyYWcifSxwYWdpbmF0aW9uOnt0b3RhbDp7cmFuZ2U6IiAiLHRvdGFsOiJ2b24iLGl0ZW06IkVpbnRyXHhFNGdlbiJ9fSx0YWJsZVRvb2xCYXI6e2xlZnRQaW46IkxpbmtzIGFuaGVmdGVuIixyaWdodFBpbjoiUmVjaHRzIGFuaGVmdGVuIixub1BpbjoiTmljaHQgYW5nZWhlZnRldCIsbGVmdEZpeGVkVGl0bGU6IkxpbmtzIGZpeGllcnQiLHJpZ2h0Rml4ZWRUaXRsZToiUmVjaHRzIGZpeGllcnQiLG5vRml4ZWRUaXRsZToiTmljaHQgZml4aWVydCIscmVzZXQ6Ilp1clx4RkNja3NldHplbiIsY29sdW1uRGlzcGxheToiQW5nZXplaWd0ZSBSZWloZW4iLGNvbHVtblNldHRpbmc6IkVpbnN0ZWxsdW5nZW4iLGZ1bGxTY3JlZW46IlZvbGxiaWxkIixleGl0RnVsbFNjcmVlbjoiVm9sbGJpbGQgdmVybGFzc2VuIixyZWxvYWQ6IkFrdHVhbGlzaWVyZW4iLGRlbnNpdHk6IkFic3RhbmQiLGRlbnNpdHlEZWZhdWx0OiJTdGFuZGFyZCIsZGVuc2l0eUxhcmdlcjoiR3JceEY2XHhERmVyIixkZW5zaXR5TWlkZGxlOiJNaXR0ZWwiLGRlbnNpdHlTbWFsbDoiS29tcGFrdCJ9LHN0ZXBzRm9ybTp7bmV4dDoiV2VpdGVyIixwcmV2OiJadXJceEZDY2siLHN1Ym1pdDoiQWJzY2hsaWVceERGZW4ifSxsb2dpbkZvcm06e3N1Ym1pdFRleHQ6IkFubWVsZGVuIn0sZWRpdGFibGVUYWJsZTp7YWN0aW9uOntzYXZlOiJSZXR0ZW4iLGNhbmNlbDoiQWJicmVjaGVuIixkZWxldGU6IkxceEY2c2NoZW4iLGFkZDoiSGluenVmXHhGQ2dlbiBlaW5lciBEYXRlbnplaWxlIn19LHN3aXRjaDp7b3Blbjoib2ZmZW4iLGNsb3NlOiJzY2hsaWVceERGZW4ifX0sYT17bW9uZXlTeW1ib2w6Ilx4QTMiLGZvcm06e2xpZ2h0RmlsdGVyOnttb3JlOiJNb3JlIixjbGVhcjoiQ2xlYXIiLGNvbmZpcm06IkNvbmZpcm0iLGl0ZW1Vbml0OiJJdGVtcyJ9fSx0YWJsZUZvcm06e3NlYXJjaDoiUXVlcnkiLHJlc2V0OiJSZXNldCIsc3VibWl0OiJTdWJtaXQiLGNvbGxhcHNlZDoiRXhwYW5kIixleHBhbmQ6IkNvbGxhcHNlIixpbnB1dFBsYWNlaG9sZGVyOiJQbGVhc2UgZW50ZXIiLHNlbGVjdFBsYWNlaG9sZGVyOiJQbGVhc2Ugc2VsZWN0In0sYWxlcnQ6e2NsZWFyOiJDbGVhciIsc2VsZWN0ZWQ6IlNlbGVjdGVkIixpdGVtOiJJdGVtIn0scGFnaW5hdGlvbjp7dG90YWw6e3JhbmdlOiIgIix0b3RhbDoib2YiLGl0ZW06Iml0ZW1zIn19LHRhYmxlVG9vbEJhcjp7bGVmdFBpbjoiUGluIHRvIGxlZnQiLHJpZ2h0UGluOiJQaW4gdG8gcmlnaHQiLG5vUGluOiJVbnBpbm5lZCIsbGVmdEZpeGVkVGl0bGU6IkZpeGVkIHRvIHRoZSBsZWZ0IixyaWdodEZpeGVkVGl0bGU6IkZpeGVkIHRvIHRoZSByaWdodCIsbm9GaXhlZFRpdGxlOiJOb3QgRml4ZWQiLHJlc2V0OiJSZXNldCIsY29sdW1uRGlzcGxheToiQ29sdW1uIERpc3BsYXkiLGNvbHVtblNldHRpbmc6IlRhYmxlIFNldHRpbmdzIixmdWxsU2NyZWVuOiJGdWxsIFNjcmVlbiIsZXhpdEZ1bGxTY3JlZW46IkV4aXQgRnVsbCBTY3JlZW4iLHJlbG9hZDoiUmVmcmVzaCIsZGVuc2l0eToiRGVuc2l0eSIsZGVuc2l0eURlZmF1bHQ6IkRlZmF1bHQiLGRlbnNpdHlMYXJnZXI6IkxhcmdlciIsZGVuc2l0eU1pZGRsZToiTWlkZGxlIixkZW5zaXR5U21hbGw6IkNvbXBhY3QifSxzdGVwc0Zvcm06e25leHQ6Ik5leHQiLHByZXY6IlByZXZpb3VzIixzdWJtaXQ6IkZpbmlzaCJ9LGxvZ2luRm9ybTp7c3VibWl0VGV4dDoiTG9naW4ifSxlZGl0YWJsZVRhYmxlOntvbmx5T25lTGluZUVkaXRvcjoiT25seSBvbmUgbGluZSBjYW4gYmUgZWRpdGVkIixvbmx5QWRkT25lTGluZToiT25seSBvbmUgbGluZSBjYW4gYmUgYWRkZWQiLGFjdGlvbjp7c2F2ZToiU2F2ZSIsY2FuY2VsOiJDYW5jZWwiLGRlbGV0ZToiRGVsZXRlIixhZGQ6ImFkZCBhIHJvdyBvZiBkYXRhIn19LHN3aXRjaDp7b3Blbjoib3BlbiIsY2xvc2U6ImNsb3NlIn19LHU9e21vbmV5U3ltYm9sOiIkIixkZWxldGVUaGlzTGluZToiRGVsZXRlIHRoaXMgbGluZSIsY29weVRoaXNMaW5lOiJDb3B5IHRoaXMgbGluZSIsZm9ybTp7bGlnaHRGaWx0ZXI6e21vcmU6Ik1vcmUiLGNsZWFyOiJDbGVhciIsY29uZmlybToiQ29uZmlybSIsaXRlbVVuaXQ6Ikl0ZW1zIn19LHRhYmxlRm9ybTp7c2VhcmNoOiJRdWVyeSIscmVzZXQ6IlJlc2V0IixzdWJtaXQ6IlN1Ym1pdCIsY29sbGFwc2VkOiJFeHBhbmQiLGV4cGFuZDoiQ29sbGFwc2UiLGlucHV0UGxhY2Vob2xkZXI6IlBsZWFzZSBlbnRlciIsc2VsZWN0UGxhY2Vob2xkZXI6IlBsZWFzZSBzZWxlY3QifSxhbGVydDp7Y2xlYXI6IkNsZWFyIixzZWxlY3RlZDoiU2VsZWN0ZWQiLGl0ZW06Ikl0ZW0ifSxwYWdpbmF0aW9uOnt0b3RhbDp7cmFuZ2U6IiAiLHRvdGFsOiJvZiIsaXRlbToiaXRlbXMifX0sdGFibGVUb29sQmFyOntsZWZ0UGluOiJQaW4gdG8gbGVmdCIscmlnaHRQaW46IlBpbiB0byByaWdodCIsbm9QaW46IlVucGlubmVkIixsZWZ0Rml4ZWRUaXRsZToiRml4ZWQgdG8gdGhlIGxlZnQiLHJpZ2h0Rml4ZWRUaXRsZToiRml4ZWQgdG8gdGhlIHJpZ2h0Iixub0ZpeGVkVGl0bGU6Ik5vdCBGaXhlZCIscmVzZXQ6IlJlc2V0Iixjb2x1bW5EaXNwbGF5OiJDb2x1bW4gRGlzcGxheSIsY29sdW1uU2V0dGluZzoiVGFibGUgU2V0dGluZ3MiLGZ1bGxTY3JlZW46IkZ1bGwgU2NyZWVuIixleGl0RnVsbFNjcmVlbjoiRXhpdCBGdWxsIFNjcmVlbiIscmVsb2FkOiJSZWZyZXNoIixkZW5zaXR5OiJEZW5zaXR5IixkZW5zaXR5RGVmYXVsdDoiRGVmYXVsdCIsZGVuc2l0eUxhcmdlcjoiTGFyZ2VyIixkZW5zaXR5TWlkZGxlOiJNaWRkbGUiLGRlbnNpdHlTbWFsbDoiQ29tcGFjdCJ9LHN0ZXBzRm9ybTp7bmV4dDoiTmV4dCIscHJldjoiUHJldmlvdXMiLHN1Ym1pdDoiRmluaXNoIn0sbG9naW5Gb3JtOntzdWJtaXRUZXh0OiJMb2dpbiJ9LGVkaXRhYmxlVGFibGU6e29ubHlPbmVMaW5lRWRpdG9yOiJPbmx5IG9uZSBsaW5lIGNhbiBiZSBlZGl0ZWQiLG9ubHlBZGRPbmVMaW5lOiJPbmx5IG9uZSBsaW5lIGNhbiBiZSBhZGRlZCIsYWN0aW9uOntzYXZlOiJTYXZlIixjYW5jZWw6IkNhbmNlbCIsZGVsZXRlOiJEZWxldGUiLGFkZDoiYWRkIGEgcm93IG9mIGRhdGEifX0sc3dpdGNoOntvcGVuOiJvcGVuIixjbG9zZToiY2xvc2UifX0sYz17bW9uZXlTeW1ib2w6Ilx1MjBBQyIsZm9ybTp7bGlnaHRGaWx0ZXI6e21vcmU6Ik1ceEUxcyIsY2xlYXI6IkxpbXBpYXIiLGNvbmZpcm06IkNvbmZpcm1hciIsaXRlbVVuaXQ6ImFydFx4RURjdWxvcyJ9fSx0YWJsZUZvcm06e3NlYXJjaDoiQnVzY2FyIixyZXNldDoiTGltcGlhciIsc3VibWl0OiJTdWJtaXQiLGNvbGxhcHNlZDoiRXhwYW5kaXIiLGV4cGFuZDoiQ29sYXBzYXIiLGlucHV0UGxhY2Vob2xkZXI6IkluZ3Jlc2UgdmFsb3IiLHNlbGVjdFBsYWNlaG9sZGVyOiJTZWxlY2Npb25lIHZhbG9yIn0sYWxlcnQ6e2NsZWFyOiJMaW1waWFyIixzZWxlY3RlZDoiU2VsZWNjaW9uYWRvIixpdGVtOiJBcnRpY3VsbyJ9LHBhZ2luYXRpb246e3RvdGFsOntyYW5nZToiICIsdG90YWw6ImRlIixpdGVtOiJhcnRceEVEY3Vsb3MifX0sdGFibGVUb29sQmFyOntsZWZ0UGluOiJQaW4gYSBsYSBpenF1aWVyZGEiLHJpZ2h0UGluOiJQaW4gYSBsYSBkZXJlY2hhIixub1BpbjoiU2luIFBpbiIsbGVmdEZpeGVkVGl0bGU6IkZpamFkbyBhIGxhIGl6cXVpZXJkYSIscmlnaHRGaXhlZFRpdGxlOiJGaWphZG8gYSBsYSBkZXJlY2hhIixub0ZpeGVkVGl0bGU6IlNpbiBGaWphciIscmVzZXQ6IlJlaW5pY2lhciIsY29sdW1uRGlzcGxheToiTW9zdHJhciBDb2x1bW5hIixjb2x1bW5TZXR0aW5nOiJDb25maWd1cmFjaVx4RjNuIixmdWxsU2NyZWVuOiJQYW50YWxsYSBDb21wbGV0YSIsZXhpdEZ1bGxTY3JlZW46IlNhbGlyIFBhbnRhbGxhIENvbXBsZXRhIixyZWxvYWQ6IlJlZnJlc2NhciIsZGVuc2l0eToiRGVuc2lkYWQiLGRlbnNpdHlEZWZhdWx0OiJQb3IgRGVmZWN0byIsZGVuc2l0eUxhcmdlcjoiTGFyZ28iLGRlbnNpdHlNaWRkbGU6Ik1lZGlvIixkZW5zaXR5U21hbGw6IkNvbXBhY3RvIn0sc3RlcHNGb3JtOntuZXh0OiJTaWd1aWVudGUiLHByZXY6IkFudGVyaW9yIixzdWJtaXQ6IkZpbmFsaXphciJ9LGxvZ2luRm9ybTp7c3VibWl0VGV4dDoiRW50cmFyIn0sZWRpdGFibGVUYWJsZTp7YWN0aW9uOntzYXZlOiJHdWFyZGFyIixjYW5jZWw6IkRlc2NhcnRhciIsZGVsZXRlOiJCb3JyYXIiLGFkZDoiYVx4RjFhZGlyIHVuYSBmaWxhIGRlIGRhdG9zIn19LHN3aXRjaDp7b3BlbjoiYWJyaXIiLGNsb3NlOiJjZXJyYXIifX0saD17bW9uZXlTeW1ib2w6Ilx1MDYyQVx1MDY0OFx1MDY0NVx1MDYyN1x1MDY0NiIsZm9ybTp7bGlnaHRGaWx0ZXI6e21vcmU6Ilx1MDYyOFx1MDZDQ1x1MDYzNFx1MDYyQVx1MDYzMSIsY2xlYXI6Ilx1MDY3RVx1MDYyN1x1MDZBOSBcdTA2QTlcdTA2MzFcdTA2MkZcdTA2NDYiLGNvbmZpcm06Ilx1MDYyQVx1MDYyN1x1MDZDQ1x1MDZDQ1x1MDYyRiIsaXRlbVVuaXQ6Ilx1MDY0NVx1MDY0OFx1MDYzMVx1MDYyRiJ9fSx0YWJsZUZvcm06e3NlYXJjaDoiXHUwNjJDXHUwNjMzXHUwNjJBXHUwNjJDXHUwNjQ4IixyZXNldDoiXHUwNjI4XHUwNjI3XHUwNjMyXHUwNjQ2XHUwNjM0XHUwNjI3XHUwNjQ2XHUwNkNDIixzdWJtaXQ6Ilx1MDYyQVx1MDYyN1x1MDZDQ1x1MDZDQ1x1MDYyRiIsY29sbGFwc2VkOiJcdTA2NDZcdTA2NDVcdTA2MjdcdTA2Q0NcdTA2MzQgXHUwNjI4XHUwNkNDXHUwNjM0XHUwNjJBXHUwNjMxIixleHBhbmQ6Ilx1MDY0Nlx1MDY0NVx1MDYyN1x1MDZDQ1x1MDYzNCBcdTA2QTlcdTA2NDVcdTA2MkFcdTA2MzEiLGlucHV0UGxhY2Vob2xkZXI6Ilx1MDY3RVx1MDZDQ1x1MDYyRlx1MDYyNyBcdTA2QTlcdTA2NDZcdTA2Q0NcdTA2MkYiLHNlbGVjdFBsYWNlaG9sZGVyOiJcdTA2MjdcdTA2NDZcdTA2MkFcdTA2MkVcdTA2MjdcdTA2MjggXHUwNkE5XHUwNjQ2XHUwNkNDXHUwNjJGIn0sYWxlcnQ6e2NsZWFyOiJcdTA2N0VcdTA2MjdcdTA2QTkgXHUwNjMzXHUwNjI3XHUwNjMyXHUwNkNDIixzZWxlY3RlZDoiXHUwNjI3XHUwNjQ2XHUwNjJBXHUwNjJFXHUwNjI3XHUwNjI4IixpdGVtOiJcdTA2NDVcdTA2NDhcdTA2MzFcdTA2MkYifSxwYWdpbmF0aW9uOnt0b3RhbDp7cmFuZ2U6IiAiLHRvdGFsOiJcdTA2MjdcdTA2MzIiLGl0ZW06Ilx1MDY0NVx1MDY0OFx1MDYzMVx1MDYyRiJ9fSx0YWJsZVRvb2xCYXI6e2xlZnRQaW46Ilx1MDYzM1x1MDY0Nlx1MDYyQ1x1MDYyN1x1MDY0MiBcdTA2MjhcdTA2NDcgXHUwNjg2XHUwNjdFIixyaWdodFBpbjoiXHUwNjMzXHUwNjQ2XHUwNjJDXHUwNjI3XHUwNjQyIFx1MDYyOFx1MDY0NyBcdTA2MzFcdTA2MjdcdTA2MzNcdTA2MkEiLG5vUGluOiJcdTA2MzNcdTA2NDZcdTA2MkNcdTA2MjdcdTA2NDIgXHUwNjQ2XHUwNjM0XHUwNjJGXHUwNjQ3IixsZWZ0Rml4ZWRUaXRsZToiXHUwNjJCXHUwNjI3XHUwNjI4XHUwNjJBIFx1MDYzNFx1MDYyRlx1MDY0NyBcdTA2MkZcdTA2MzEgXHUwNjg2XHUwNjdFIixyaWdodEZpeGVkVGl0bGU6Ilx1MDYyQlx1MDYyN1x1MDYyOFx1MDYyQSBcdTA2MzRcdTA2MkZcdTA2NDcgXHUwNjJGXHUwNjMxIFx1MDYzMVx1MDYyN1x1MDYzM1x1MDYyQSIsbm9GaXhlZFRpdGxlOiJcdTA2MzRcdTA2NDZcdTA2MjdcdTA2NDhcdTA2MzEiLHJlc2V0OiJcdTA2MjhcdTA2MjdcdTA2MzJcdTA2NDZcdTA2MzRcdTA2MjdcdTA2NDZcdTA2Q0MiLGNvbHVtbkRpc3BsYXk6Ilx1MDY0Nlx1MDY0NVx1MDYyN1x1MDZDQ1x1MDYzNCBcdTA2NDdcdTA2NDVcdTA2NDciLGNvbHVtblNldHRpbmc6Ilx1MDYyQVx1MDY0Nlx1MDYzOFx1MDZDQ1x1MDY0NVx1MDYyN1x1MDYyQSIsZnVsbFNjcmVlbjoiXHUwNjJBXHUwNjQ1XHUwNjI3XHUwNjQ1IFx1MDYzNVx1MDY0MVx1MDYyRFx1MDY0NyIsZXhpdEZ1bGxTY3JlZW46Ilx1MDYyRVx1MDYzMVx1MDY0OFx1MDYyQyBcdTA2MjdcdTA2MzIgXHUwNjJEXHUwNjI3XHUwNjQ0XHUwNjJBIFx1MDYyQVx1MDY0NVx1MDYyN1x1MDY0NSBcdTA2MzVcdTA2NDFcdTA2MkRcdTA2NDciLHJlbG9hZDoiXHUwNjJBXHUwNjI3XHUwNjMyXHUwNjQ3IFx1MDYzM1x1MDYyN1x1MDYzMlx1MDZDQyIsZGVuc2l0eToiXHUwNjJBXHUwNjMxXHUwNjI3XHUwNkE5XHUwNjQ1IixkZW5zaXR5RGVmYXVsdDoiXHUwNjdFXHUwNkNDXHUwNjM0IFx1MDY0MVx1MDYzMVx1MDYzNiIsZGVuc2l0eUxhcmdlcjoiXHUwNjI4XHUwNjMyXHUwNjMxXHUwNkFGIixkZW5zaXR5TWlkZGxlOiJcdTA2NDVcdTA2MkFcdTA2NDhcdTA2MzNcdTA2MzciLGRlbnNpdHlTbWFsbDoiXHUwNkE5XHUwNjQ4XHUwNjg2XHUwNkE5In0sc3RlcHNGb3JtOntuZXh0OiJcdTA2MjhcdTA2MzlcdTA2MkZcdTA2Q0MiLHByZXY6Ilx1MDY0Mlx1MDYyOFx1MDY0NFx1MDZDQyIsc3VibWl0OiJcdTA2MjdcdTA2MkFcdTA2NDVcdTA2MjdcdTA2NDUifSxsb2dpbkZvcm06e3N1Ym1pdFRleHQ6Ilx1MDY0OFx1MDYzMVx1MDY0OFx1MDYyRiJ9LGVkaXRhYmxlVGFibGU6e2FjdGlvbjp7c2F2ZToiXHUwNjMwXHUwNjJFXHUwNkNDXHUwNjMxXHUwNjQ3IixjYW5jZWw6Ilx1MDY0NFx1MDYzQVx1MDY0OCIsZGVsZXRlOiJcdTA2MkRcdTA2MzBcdTA2NDEiLGFkZDoiXHUwNkNDXHUwNkE5IFx1MDYzMVx1MDYyRlx1MDZDQ1x1MDY0MSBcdTA2MkZcdTA2MjdcdTA2MkZcdTA2NDcgXHUwNjI3XHUwNjM2XHUwNjI3XHUwNjQxXHUwNjQ3IFx1MDZBOVx1MDY0Nlx1MDZDQ1x1MDYyRiJ9fSxzd2l0Y2g6e29wZW46Ilx1MDYyOFx1MDYyN1x1MDYzMiIsY2xvc2U6Ilx1MDY0Nlx1MDYzMlx1MDYyRlx1MDZDQ1x1MDZBOSJ9fSxkPXttb25leVN5bWJvbDoiXHUyMEFDIixmb3JtOntsaWdodEZpbHRlcjp7bW9yZToiUGx1cyIsY2xlYXI6IkVmZmFjZXIiLGNvbmZpcm06IkNvbmZpcm1lciIsaXRlbVVuaXQ6Ikl0ZW1zIn19LHRhYmxlRm9ybTp7c2VhcmNoOiJSZWNoZXJjaGVyIixyZXNldDoiUlx4RTlpbml0aWFsaXNlciIsc3VibWl0OiJFbnZveWVyIixjb2xsYXBzZWQ6IkFncmFuZGlyIixleHBhbmQ6IlJceEU5ZHVpcmUiLGlucHV0UGxhY2Vob2xkZXI6IkVudHJlciB1bmUgdmFsZXVyIixzZWxlY3RQbGFjZWhvbGRlcjoiU1x4RTlsZWN0aW9ubmVyIHVuZSB2YWxldXIifSxhbGVydDp7Y2xlYXI6IlJceEU5aW5pdGlhbGlzZXIiLHNlbGVjdGVkOiJTXHhFOWxlY3Rpb25uXHhFOSIsaXRlbToiSXRlbSJ9LHBhZ2luYXRpb246e3RvdGFsOntyYW5nZToiICIsdG90YWw6InN1ciIsaXRlbToiXHhFOWxceEU5bWVudHMifX0sdGFibGVUb29sQmFyOntsZWZ0UGluOiJceEM5cGluZ2xlciBceEUwIGdhdWNoZSIscmlnaHRQaW46Ilx4QzlwaW5nbGVyIFx4RTAgZ2F1Y2hlIixub1BpbjoiU2FucyBceEU5cGluZ2xlIixsZWZ0Rml4ZWRUaXRsZToiRml4ZXIgXHhFMCBnYXVjaGUiLHJpZ2h0Rml4ZWRUaXRsZToiRml4ZXIgXHhFMCBkcm9pdGUiLG5vRml4ZWRUaXRsZToiTm9uIGZpeFx4RTkiLHJlc2V0OiJSXHhFOWluaXRpYWxpc2VyIixjb2x1bW5EaXNwbGF5OiJBZmZpY2hhZ2UgY29sb25uZSIsY29sdW1uU2V0dGluZzoiUlx4RTlnbGFnZXMiLGZ1bGxTY3JlZW46IlBsZWluIFx4RTljcmFuIixleGl0RnVsbFNjcmVlbjoiUXVpdHRlciBQbGVpbiBceEU5Y3JhbiIscmVsb2FkOiJSYWZyYWljaGlyIixkZW5zaXR5OiJEZW5zaXRceEU5IixkZW5zaXR5RGVmYXVsdDoiUGFyIGRceEU5ZmF1dCIsZGVuc2l0eUxhcmdlcjoiTGFyZ2VyIixkZW5zaXR5TWlkZGxlOiJNb3llbm5lIixkZW5zaXR5U21hbGw6IkNvbXBhY3RlIn0sc3RlcHNGb3JtOntuZXh0OiJTdWl2YW50ZSIscHJldjoiUHJceEU5Y1x4RTlkZW50ZSIsc3VibWl0OiJGaW5hbGlzZXIifSxsb2dpbkZvcm06e3N1Ym1pdFRleHQ6IlNlIGNvbm5lY3RlciJ9LGVkaXRhYmxlVGFibGU6e2FjdGlvbjp7c2F2ZToiU2F1dmVnYXJkZXIiLGNhbmNlbDoiQW5udWxlciIsZGVsZXRlOiJTdXBwcmltZXIiLGFkZDoiYWpvdXRlciB1bmUgbGlnbmUgZGUgZG9ublx4RTllcyJ9fSxzd2l0Y2g6e29wZW46Im91dmVydCIsY2xvc2U6InByXHhFOHMifX0sbT17bW9uZXlTeW1ib2w6Ilx1MjBBQSIsZGVsZXRlVGhpc0xpbmU6Ilx1MDVERVx1MDVEN1x1MDVFNyBcdTA1RTlcdTA1RDVcdTA1RThcdTA1RDQgXHUwNUQ2XHUwNUQ1Iixjb3B5VGhpc0xpbmU6Ilx1MDVENFx1MDVFMlx1MDVFQVx1MDVFNyBcdTA1RTlcdTA1RDVcdTA1RThcdTA1RDQgXHUwNUQ2XHUwNUQ1Iixmb3JtOntsaWdodEZpbHRlcjp7bW9yZToiXHUwNUQ5XHUwNUQ1XHUwNUVBXHUwNUU4IixjbGVhcjoiXHUwNUUwXHUwNUU3XHUwNUQ0Iixjb25maXJtOiJcdTA1RDBcdTA1RDlcdTA1RTlcdTA1RDVcdTA1RTgiLGl0ZW1Vbml0OiJcdTA1RTRcdTA1RThcdTA1RDlcdTA1RDhcdTA1RDlcdTA1REQifX0sdGFibGVGb3JtOntzZWFyY2g6Ilx1MDVEN1x1MDVEOVx1MDVFNFx1MDVENVx1MDVFOSIscmVzZXQ6Ilx1MDVEMFx1MDVEOVx1MDVFNFx1MDVENVx1MDVFMSIsc3VibWl0OiJcdTA1RTlcdTA1RENcdTA1RDciLGNvbGxhcHNlZDoiXHUwNUQ0XHUwNUU4XHUwNUQ3XHUwNUQxIixleHBhbmQ6Ilx1MDVEQlx1MDVENVx1MDVENVx1MDVFNSIsaW5wdXRQbGFjZWhvbGRlcjoiXHUwNUQwXHUwNUUwXHUwNUQwIFx1MDVENFx1MDVEQlx1MDVFMFx1MDVFMSIsc2VsZWN0UGxhY2Vob2xkZXI6Ilx1MDVEMFx1MDVFMFx1MDVEMCBcdTA1RDFcdTA1RDdcdTA1RTgifSxhbGVydDp7Y2xlYXI6Ilx1MDVFMFx1MDVFN1x1MDVENCIsc2VsZWN0ZWQ6Ilx1MDVFMFx1MDVEMVx1MDVEN1x1MDVFOCIsaXRlbToiXHUwNUU0XHUwNUU4XHUwNUQ5XHUwNUQ4In0scGFnaW5hdGlvbjp7dG90YWw6e3JhbmdlOiIgIix0b3RhbDoiXHUwNURFXHUwNUVBXHUwNUQ1XHUwNURBIixpdGVtOiJcdTA1RTRcdTA1RThcdTA1RDlcdTA1RDhcdTA1RDlcdTA1REQifX0sdGFibGVUb29sQmFyOntsZWZ0UGluOiJcdTA1RDRcdTA1RTZcdTA1REVcdTA1RDMgXHUwNURDXHUwNUU5XHUwNURFXHUwNUQwXHUwNURDIixyaWdodFBpbjoiXHUwNUQ0XHUwNUU2XHUwNURFXHUwNUQzIFx1MDVEQ1x1MDVEOVx1MDVERVx1MDVEOVx1MDVERiIsbm9QaW46Ilx1MDVEQ1x1MDVEMCBcdTA1REVcdTA1RTZcdTA1RDVcdTA1RThcdTA1RTMiLGxlZnRGaXhlZFRpdGxlOiJcdTA1REVcdTA1RDVcdTA1RTZcdTA1REVcdTA1RDMgXHUwNURDXHUwNUU5XHUwNURFXHUwNUQwXHUwNURDIixyaWdodEZpeGVkVGl0bGU6Ilx1MDVERVx1MDVENVx1MDVFNlx1MDVERVx1MDVEMyBcdTA1RENcdTA1RDlcdTA1REVcdTA1RDlcdTA1REYiLG5vRml4ZWRUaXRsZToiXHUwNURDXHUwNUQwIFx1MDVERVx1MDVENVx1MDVFNlx1MDVERVx1MDVEMyIscmVzZXQ6Ilx1MDVEMFx1MDVEOVx1MDVFNFx1MDVENVx1MDVFMSIsY29sdW1uRGlzcGxheToiXHUwNUVBXHUwNUU2XHUwNUQ1XHUwNUQyXHUwNUVBIFx1MDVFMlx1MDVERVx1MDVENVx1MDVEM1x1MDVENVx1MDVFQSIsY29sdW1uU2V0dGluZzoiXHUwNUQ0XHUwNUQyXHUwNUQzXHUwNUU4XHUwNUQ1XHUwNUVBIixmdWxsU2NyZWVuOiJcdTA1REVcdTA1RTFcdTA1REEgXHUwNURFXHUwNURDXHUwNUQwIixleGl0RnVsbFNjcmVlbjoiXHUwNUU2XHUwNUQwIFx1MDVERVx1MDVERVx1MDVFMVx1MDVEQSBcdTA1REVcdTA1RENcdTA1RDAiLHJlbG9hZDoiXHUwNUU4XHUwNUUyXHUwNUUwXHUwNURGIixkZW5zaXR5OiJcdTA1RThcdTA1RDZcdTA1RDVcdTA1RENcdTA1RDVcdTA1RTZcdTA1RDlcdTA1RDQiLGRlbnNpdHlEZWZhdWx0OiJcdTA1RDFcdTA1RThcdTA1RDlcdTA1RThcdTA1RUEgXHUwNURFXHUwNUQ3XHUwNUQzXHUwNURDIixkZW5zaXR5TGFyZ2VyOiJcdTA1RDJcdTA1RDNcdTA1RDVcdTA1REMiLGRlbnNpdHlNaWRkbGU6Ilx1MDVEMVx1MDVEOVx1MDVFMFx1MDVENVx1MDVFMFx1MDVEOSIsZGVuc2l0eVNtYWxsOiJcdTA1RTdcdTA1RDhcdTA1REYifSxzdGVwc0Zvcm06e25leHQ6Ilx1MDVENFx1MDVEMVx1MDVEMCIscHJldjoiXHUwNUU3XHUwNUQ1XHUwNUQzXHUwNUREIixzdWJtaXQ6Ilx1MDVFMVx1MDVEOVx1MDVENVx1MDVERCJ9LGxvZ2luRm9ybTp7c3VibWl0VGV4dDoiXHUwNURCXHUwNUUwXHUwNUQ5XHUwNUUxXHUwNUQ0In0sZWRpdGFibGVUYWJsZTp7b25seU9uZUxpbmVFZGl0b3I6Ilx1MDVFMFx1MDVEOVx1MDVFQVx1MDVERiBcdTA1RENcdTA1RTJcdTA1RThcdTA1RDVcdTA1REEgXHUwNUU4XHUwNUU3IFx1MDVFOVx1MDVENVx1MDVFOFx1MDVENCBcdTA1RDBcdTA1RDdcdTA1RUEiLGFjdGlvbjp7c2F2ZToiXHUwNUU5XHUwNURFXHUwNUQ1XHUwNUU4IixjYW5jZWw6Ilx1MDVEMVx1MDVEOVx1MDVEOFx1MDVENVx1MDVEQyIsZGVsZXRlOiJcdTA1REVcdTA1RDdcdTA1RDlcdTA1RTdcdTA1RDQiLGFkZDoiXHUwNUQ0XHUwNUQ1XHUwNUUxXHUwNUUzIFx1MDVFOVx1MDVENVx1MDVFOFx1MDVFQSBcdTA1RTBcdTA1RUFcdTA1RDVcdTA1RTBcdTA1RDlcdTA1REQifX0sc3dpdGNoOntvcGVuOiJcdTA1RTRcdTA1RUFcdTA1RDciLGNsb3NlOiJcdTA1RTFcdTA1RDJcdTA1RDVcdTA1RTgifX0sQz17bW9uZXlTeW1ib2w6ImtuIixmb3JtOntsaWdodEZpbHRlcjp7bW9yZToiVmlcdTAxNjFlIixjbGVhcjoiT1x1MDEwRGlzdGkiLGNvbmZpcm06IlBvdHZyZGkiLGl0ZW1Vbml0OiJTdGF2a2UifX0sdGFibGVGb3JtOntzZWFyY2g6IlByZXRyYVx1MDE3RWkiLHJlc2V0OiJQb25pXHUwMTYxdGkiLHN1Ym1pdDoiUG90dnJkaSIsY29sbGFwc2VkOiJSYVx1MDE2MWlyaSIsZXhwYW5kOiJTa3VwaSIsaW5wdXRQbGFjZWhvbGRlcjoiVW5lc2l0ZSIsc2VsZWN0UGxhY2Vob2xkZXI6Ik9kYWJlcml0ZSJ9LGFsZXJ0OntjbGVhcjoiT1x1MDEwRGlzdGkiLHNlbGVjdGVkOiJPZGFiZXJpIixpdGVtOiJzdGF2a2UifSxwYWdpbmF0aW9uOnt0b3RhbDp7cmFuZ2U6IiAiLHRvdGFsOiJvZCIsaXRlbToic3RhdmtlIn19LHRhYmxlVG9vbEJhcjp7bGVmdFBpbjoiUHJpa2FcdTAxMERpIGxpamV2byIscmlnaHRQaW46IlByaWthXHUwMTBEaSBkZXNubyIsbm9QaW46IkJleiBwcmlrYVx1MDEwRGVuamEiLGxlZnRGaXhlZFRpdGxlOiJGaWtzaXJhaiBsaWpldm8iLHJpZ2h0Rml4ZWRUaXRsZToiRmlrc2lyYWogZGVzbm8iLG5vRml4ZWRUaXRsZToiQmV6IGZpa3NpcmFuamEiLHJlc2V0OiJSZXNldGlyYWoiLGNvbHVtbkRpc3BsYXk6IlByaWtheiBzdHVwYWNhIixjb2x1bW5TZXR0aW5nOiJQb3N0YXZrZSIsZnVsbFNjcmVlbjoiUHVuaSB6YXNsb24iLGV4aXRGdWxsU2NyZWVuOiJJemFcdTAxMTFpIGl6IHB1bm9nIHphc2xvbmEiLHJlbG9hZDoiUG9ub3ZubyB1XHUwMTBEaXRhaiIsZGVuc2l0eToiVmVsaVx1MDEwRGluYSIsZGVuc2l0eURlZmF1bHQ6IlphZGFubyIsZGVuc2l0eUxhcmdlcjoiVmVsaWtvIixkZW5zaXR5TWlkZGxlOiJTcmVkbmplIixkZW5zaXR5U21hbGw6Ik1hbG8ifSxzdGVwc0Zvcm06e25leHQ6IlNsamVkZVx1MDEwN2kiLHByZXY6IlByZXRob2RuaSIsc3VibWl0OiJLcmFqIn0sbG9naW5Gb3JtOntzdWJtaXRUZXh0OiJQcmlqYXZhIn0sZWRpdGFibGVUYWJsZTp7YWN0aW9uOntzYXZlOiJTcHJlbWkiLGNhbmNlbDoiT2R1c3RhbmkiLGRlbGV0ZToiT2JyaVx1MDE2MWkiLGFkZDoiZG9kYWp0ZSByZWQgcG9kYXRha2EifX0sc3dpdGNoOntvcGVuOiJvdHZvcmkiLGNsb3NlOiJ6YXR2b3JpIn19LGc9e21vbmV5U3ltYm9sOiJSUCIsZm9ybTp7bGlnaHRGaWx0ZXI6e21vcmU6IkxlYmloIixjbGVhcjoiSGFwdXMiLGNvbmZpcm06IktvbmZpcm1hc2kiLGl0ZW1Vbml0OiJVbml0In19LHRhYmxlRm9ybTp7c2VhcmNoOiJDYXJpIixyZXNldDoiQXR1ciB1bGFuZyIsc3VibWl0OiJLaXJpbSIsY29sbGFwc2VkOiJMZWJpaCBzZWRpa2l0IixleHBhbmQ6IkxlYmloIGJhbnlhayIsaW5wdXRQbGFjZWhvbGRlcjoiTWFzdWtrYW4gcGVuY2FyaWFuIixzZWxlY3RQbGFjZWhvbGRlcjoiUGlsaWgifSxhbGVydDp7Y2xlYXI6IkhhcHVzIixzZWxlY3RlZDoiRGlwaWxpaCIsaXRlbToiQnV0aXIifSxwYWdpbmF0aW9uOnt0b3RhbDp7cmFuZ2U6IiAiLHRvdGFsOiJEYXJpIixpdGVtOiJCdXRpciJ9fSx0YWJsZVRvb2xCYXI6e2xlZnRQaW46IlBpbiBraXJpIixyaWdodFBpbjoiUGluIGthbmFuIixub1BpbjoiVGlkYWsgYWRhIHBpbiIsbGVmdEZpeGVkVGl0bGU6IlJhdGEga2lyaSIscmlnaHRGaXhlZFRpdGxlOiJSYXRhIGthbmFuIixub0ZpeGVkVGl0bGU6IlRpZGFrIHRldGFwIixyZXNldDoiQXR1ciB1bGFuZyIsY29sdW1uRGlzcGxheToiVGFtcGlsYW4ga29sb20iLGNvbHVtblNldHRpbmc6IlBlbmdhdHVyYW4iLGZ1bGxTY3JlZW46IkxheWFyIHBlbnVoIixleGl0RnVsbFNjcmVlbjoiS2VsdWFyIGxheWFyIHBlbnVoIixyZWxvYWQ6IkF0dXIgdWxhbmciLGRlbnNpdHk6IktlcmFwYXRhbiIsZGVuc2l0eURlZmF1bHQ6IlN0YW5kYXIiLGRlbnNpdHlMYXJnZXI6IkxlYmloIGJlc2FyIixkZW5zaXR5TWlkZGxlOiJTZWRhbmciLGRlbnNpdHlTbWFsbDoiUmFwYXQifSxzdGVwc0Zvcm06e25leHQ6IlNlbGFuanV0bnlhIixwcmV2OiJTZWJlbHVtbnlhIixzdWJtaXQ6IlNlbGVzYWkifSxsb2dpbkZvcm06e3N1Ym1pdFRleHQ6IkxvZ2luIn0sZWRpdGFibGVUYWJsZTp7YWN0aW9uOntzYXZlOiJzaW1wYW4iLGNhbmNlbDoiYmF0YWwiLGRlbGV0ZToiaGFwdXMiLGFkZDoiVGFtYmFoa2FuIGJhcmlzIGRhdGEifX0sc3dpdGNoOntvcGVuOiJidWthIixjbG9zZToidHV0dXAifX0sdz17bW9uZXlTeW1ib2w6Ilx1MjBBQyIsZm9ybTp7bGlnaHRGaWx0ZXI6e21vcmU6InBpXHhGOSIsY2xlYXI6InB1bGlzY2kiLGNvbmZpcm06ImNvbmZlcm1hIixpdGVtVW5pdDoiZWxlbWVudGkifX0sdGFibGVGb3JtOntzZWFyY2g6IkZpbHRyYSIscmVzZXQ6IlB1bGlzY2kiLHN1Ym1pdDoiSW52aWEiLGNvbGxhcHNlZDoiRXNwYW5kaSIsZXhwYW5kOiJDb250cmFpIixpbnB1dFBsYWNlaG9sZGVyOiJEaWdpdGEiLHNlbGVjdFBsYWNlaG9sZGVyOiJTZWxlemlvbmEifSxhbGVydDp7Y2xlYXI6IlJpbXVvdmkiLHNlbGVjdGVkOiJTZWxlemlvbmF0aSIsaXRlbToiZWxlbWVudGkifSxwYWdpbmF0aW9uOnt0b3RhbDp7cmFuZ2U6IiAiLHRvdGFsOiJkaSIsaXRlbToiZWxlbWVudGkifX0sdGFibGVUb29sQmFyOntsZWZ0UGluOiJGaXNzYSBhIHNpbmlzdHJhIixyaWdodFBpbjoiRmlzc2EgYSBkZXN0cmEiLG5vUGluOiJSaXByaXN0aW5hIHBvc2l6aW9uZSIsbGVmdEZpeGVkVGl0bGU6IkZpc3NhdG8gYSBzaW5pc3RyYSIscmlnaHRGaXhlZFRpdGxlOiJGaXNzYXRvIGEgZGVzdHJhIixub0ZpeGVkVGl0bGU6Ik5vbiBmaXNzYXRvIixyZXNldDoiUmlwcmlzdGluYSIsY29sdW1uRGlzcGxheToiRGlzcG9zaXppb25lIGNvbG9ubmUiLGNvbHVtblNldHRpbmc6IkltcG9zdGF6aW9uaSIsZnVsbFNjcmVlbjoiTW9kYWxpdFx4RTAgc2NoZXJtbyBpbnRlcm8iLGV4aXRGdWxsU2NyZWVuOiJFc2NpIGRhIG1vZGFsaXRceEUwIHNjaGVybW8gaW50ZXJvIixyZWxvYWQ6IlJpY2FyaWNhIixkZW5zaXR5OiJHcmFuZGV6emEgdGFiZWxsYSIsZGVuc2l0eURlZmF1bHQ6InByZWRlZmluaXRvIixkZW5zaXR5TGFyZ2VyOiJHcmFuZGUiLGRlbnNpdHlNaWRkbGU6Ik1lZGlhIixkZW5zaXR5U21hbGw6IkNvbXBhdHRhIn0sc3RlcHNGb3JtOntuZXh0OiJzdWNjZXNzaXZvIixwcmV2OiJwcmVjZWRlbnRlIixzdWJtaXQ6ImZpbmlzY2kifSxsb2dpbkZvcm06e3N1Ym1pdFRleHQ6IkFjY2VkaSJ9LGVkaXRhYmxlVGFibGU6e2FjdGlvbjp7c2F2ZToic2FsdmEiLGNhbmNlbDoiYW5udWxsYSIsZGVsZXRlOiJEZWxldGUiLGFkZDoiYWRkIGEgcm93IG9mIGRhdGEifX0sc3dpdGNoOntvcGVuOiJvcGVuIixjbG9zZToiY2hpdWRpIn19LEU9e21vbmV5U3ltYm9sOiJceEE1Iixmb3JtOntsaWdodEZpbHRlcjp7bW9yZToiXHU2NkY0XHUzMDZCIixjbGVhcjoiXHUzMEFGXHUzMEVBXHUzMEEyIixjb25maXJtOiJcdTc4QkFcdThBOEQiLGl0ZW1Vbml0OiJcdTMwQTJcdTMwQTRcdTMwQzZcdTMwRTAifX0sdGFibGVGb3JtOntzZWFyY2g6Ilx1NjkxQ1x1N0QyMiIscmVzZXQ6Ilx1MzBFQVx1MzBCQlx1MzBDM1x1MzBDOCIsc3VibWl0OiJcdTkwMDFcdTRGRTEiLGNvbGxhcHNlZDoiXHU2MkUxXHU1OTI3IixleHBhbmQ6Ilx1NjI5OFx1NzU3MyIsaW5wdXRQbGFjZWhvbGRlcjoiXHU1MTY1XHU1MjlCXHUzMDU3XHUzMDY2XHUzMDRGXHUzMDYwXHUzMDU1XHUzMDQ0IixzZWxlY3RQbGFjZWhvbGRlcjoiXHU5MDc4XHU2MjlFXHUzMDU3XHUzMDY2XHUzMDRGXHUzMDYwXHUzMDU1XHUzMDQ0In0sYWxlcnQ6e2NsZWFyOiJcdTMwQUZcdTMwRUFcdTMwQTIiLHNlbGVjdGVkOiJcdTkwNzhcdTYyOUVcdTMwNTdcdTMwNUYiLGl0ZW06Ilx1MzBBMlx1MzBBNFx1MzBDNlx1MzBFMCJ9LHBhZ2luYXRpb246e3RvdGFsOntyYW5nZToiXHUzMEVDXHUzMEIzXHUzMEZDXHUzMEM5Iix0b3RhbDoiL1x1NTQwOFx1OEEwOCIsaXRlbToiICJ9fSx0YWJsZVRvb2xCYXI6e2xlZnRQaW46Ilx1NURFNlx1MzA2Qlx1NTZGQVx1NUI5QSIscmlnaHRQaW46Ilx1NTNGM1x1MzA2Qlx1NTZGQVx1NUI5QSIsbm9QaW46Ilx1MzBBRFx1MzBFM1x1MzBGM1x1MzBCQlx1MzBFQiIsbGVmdEZpeGVkVGl0bGU6Ilx1NURFNlx1MzA2Qlx1NTZGQVx1NUI5QVx1MzA1NVx1MzA4Q1x1MzA1Rlx1OTgwNVx1NzZFRSIscmlnaHRGaXhlZFRpdGxlOiJcdTUzRjNcdTMwNkJcdTU2RkFcdTVCOUFcdTMwNTVcdTMwOENcdTMwNUZcdTk4MDVcdTc2RUUiLG5vRml4ZWRUaXRsZToiXHU1NkZBXHU1QjlBXHUzMDU1XHUzMDhDXHUzMDY2XHUzMDZBXHUzMDQ0XHU5ODA1XHU3NkVFIixyZXNldDoiXHUzMEVBXHUzMEJCXHUzMEMzXHUzMEM4Iixjb2x1bW5EaXNwbGF5OiJcdTg4NjhcdTc5M0FcdTUyMTciLGNvbHVtblNldHRpbmc6Ilx1NTIxN1x1ODg2OFx1NzkzQVx1OEEyRFx1NUI5QSIsZnVsbFNjcmVlbjoiXHUzMEQ1XHUzMEVCXHUzMEI5XHUzMEFGXHUzMEVBXHUzMEZDXHUzMEYzIixleGl0RnVsbFNjcmVlbjoiXHU3RDQyXHU0RTg2IixyZWxvYWQ6Ilx1NjZGNFx1NjVCMCIsZGVuc2l0eToiXHU4ODRDXHU5QUQ4IixkZW5zaXR5RGVmYXVsdDoiXHUzMEM3XHUzMEQ1XHUzMEE5XHUzMEVCXHUzMEM4IixkZW5zaXR5TGFyZ2VyOiJcdTU5MjciLGRlbnNpdHlNaWRkbGU6Ilx1NEUyRCIsZGVuc2l0eVNtYWxsOiJcdTVDMEYifSxzdGVwc0Zvcm06e25leHQ6Ilx1NkIyMVx1MzA3OCIscHJldjoiXHU1MjREXHUzMDc4IixzdWJtaXQ6Ilx1OTAwMVx1NEZFMSJ9LGxvZ2luRm9ybTp7c3VibWl0VGV4dDoiXHUzMEVEXHUzMEIwXHUzMEE0XHUzMEYzIn0sZWRpdGFibGVUYWJsZTp7YWN0aW9uOntzYXZlOiJcdTRGRERcdTVCNTgiLGNhbmNlbDoiXHUzMEFEXHUzMEUzXHUzMEYzXHUzMEJCXHUzMEVCIixkZWxldGU6Ilx1NTI0QVx1OTY2NCIsYWRkOiJcdThGRkRcdTUyQTAifX0sc3dpdGNoOntvcGVuOiJcdTk1OEJcdTMwNEYiLGNsb3NlOiJcdTk1ODlcdTMwNThcdTMwOEIifX0seD17bW9uZXlTeW1ib2w6Ilx1MjBBOSIsZm9ybTp7bGlnaHRGaWx0ZXI6e21vcmU6Ilx1QjM1NFx1QkNGNFx1QUUzMCIsY2xlYXI6Ilx1Q0QwOFx1QUUzMFx1RDY1NCIsY29uZmlybToiXHVENjU1XHVDNzc4IixpdGVtVW5pdDoiXHVBQzc0XHVDMjE4In19LHRhYmxlRm9ybTp7c2VhcmNoOiJcdUM4NzBcdUQ2OEMiLHJlc2V0OiJcdUNEMDhcdUFFMzBcdUQ2NTQiLHN1Ym1pdDoiXHVDODFDXHVDRDlDIixjb2xsYXBzZWQ6Ilx1RDY1NVx1QzdBNSIsZXhwYW5kOiJcdUIyRUJcdUFFMzAiLGlucHV0UGxhY2Vob2xkZXI6Ilx1Qzc4NVx1QjgyNVx1RDU3NCBcdUM4RkNcdUMxMzhcdUM2OTQiLHNlbGVjdFBsYWNlaG9sZGVyOiJcdUMxMjBcdUQwRERcdUQ1NzQgXHVDOEZDXHVDMTM4XHVDNjk0In0sYWxlcnQ6e2NsZWFyOiJcdUNERThcdUMxOEMiLHNlbGVjdGVkOiJcdUMxMjBcdUQwREQiLGl0ZW06Ilx1QUM3NCJ9LHBhZ2luYXRpb246e3RvdGFsOntyYW5nZToiICIsdG90YWw6Ii8gXHVDRDFEIixpdGVtOiJcdUFDNzQifX0sdGFibGVUb29sQmFyOntsZWZ0UGluOiJcdUM2N0NcdUNBQkRcdUM3M0NcdUI4NUMgXHVENTQwIixyaWdodFBpbjoiXHVDNjI0XHVCOTc4XHVDQUJEXHVDNzNDXHVCODVDIFx1RDU0MCIsbm9QaW46Ilx1RDU0MCBcdUM4MUNcdUFDNzAiLGxlZnRGaXhlZFRpdGxlOiJcdUM2N0NcdUNBQkRcdUM3M0NcdUI4NUMgXHVBQ0UwXHVDODE1IixyaWdodEZpeGVkVGl0bGU6Ilx1QzYyNFx1Qjk3OFx1Q0FCRFx1QzczQ1x1Qjg1QyBcdUFDRTBcdUM4MTUiLG5vRml4ZWRUaXRsZToiXHVCRTQ0XHVBQ0UwXHVDODE1IixyZXNldDoiXHVDRDA4XHVBRTMwXHVENjU0Iixjb2x1bW5EaXNwbGF5OiJcdUNFRUNcdUI3RkMgXHVENDVDXHVDMkRDIixjb2x1bW5TZXR0aW5nOiJcdUMxMjRcdUM4MTUiLGZ1bGxTY3JlZW46Ilx1QzgwNFx1Q0NCNCBcdUQ2NTRcdUJBNzQiLGV4aXRGdWxsU2NyZWVuOiJcdUM4MDRcdUNDQjQgXHVENjU0XHVCQTc0IFx1Q0RFOFx1QzE4QyIscmVsb2FkOiJcdUMwQzhcdUI4NUMgXHVBQ0UwXHVDRTY4IixkZW5zaXR5OiJcdUM1RUNcdUJDMzEiLGRlbnNpdHlEZWZhdWx0OiJcdUFFMzBcdUJDRjgiLGRlbnNpdHlMYXJnZXI6Ilx1QjlDRVx1Qzc0MCBcdUM1RUNcdUJDMzEiLGRlbnNpdHlNaWRkbGU6Ilx1QzkxMVx1QUMwNCBcdUM1RUNcdUJDMzEiLGRlbnNpdHlTbWFsbDoiXHVDODgxXHVDNzQwIFx1QzVFQ1x1QkMzMSJ9LHN0ZXBzRm9ybTp7bmV4dDoiXHVCMkU0XHVDNzRDIixwcmV2OiJcdUM3NzRcdUM4MDQiLHN1Ym1pdDoiXHVDODg1XHVCOENDIn0sbG9naW5Gb3JtOntzdWJtaXRUZXh0OiJcdUI4NUNcdUFERjhcdUM3NzgifSxlZGl0YWJsZVRhYmxlOnthY3Rpb246e3NhdmU6Ilx1QzgwMFx1QzdBNSIsY2FuY2VsOiJcdUNERThcdUMxOEMiLGRlbGV0ZToiXHVDMEFEXHVDODFDIixhZGQ6Ilx1QjM3MFx1Qzc3NFx1RDEzMCBcdUQ1ODkgXHVDRDk0XHVBQzAwIn19LHN3aXRjaDp7b3BlbjoiXHVDNUY0IixjbG9zZToiXHVBQzAwXHVBRTRDIFx1QzZCNCJ9fSxPPXttb25leVN5bWJvbDoiXHUyMEFFIixmb3JtOntsaWdodEZpbHRlcjp7bW9yZToiXHUwNDE4XHUwNDNCXHUwNEFGXHUwNEFGIixjbGVhcjoiXHUwNDI2XHUwNDREXHUwNDMyXHUwNDREXHUwNDQwXHUwNDNCXHUwNDREXHUwNDQ1Iixjb25maXJtOiJcdTA0MTFcdTA0MzBcdTA0NDJcdTA0MzBcdTA0M0JcdTA0MzNcdTA0MzBcdTA0MzBcdTA0MzZcdTA0NDNcdTA0NDNcdTA0M0JcdTA0MzBcdTA0NDUiLGl0ZW1Vbml0OiJcdTA0MURcdTA0NERcdTA0MzNcdTA0MzZcdTA0QUZcdTA0QUZcdTA0MzQifX0sdGFibGVGb3JtOntzZWFyY2g6Ilx1MDQyNVx1MDQzMFx1MDQzOVx1MDQ0NSIscmVzZXQ6Ilx1MDQyOFx1MDQzOFx1MDQzRFx1MDQ0RFx1MDQ0N1x1MDQzQlx1MDQ0RFx1MDQ0NSIsc3VibWl0OiJcdTA0MThcdTA0M0JcdTA0MzNcdTA0NERcdTA0NERcdTA0NDUiLGNvbGxhcHNlZDoiXHUwNEU4XHUwNDQwXHUwNDMzXHUwNEU5XHUwNDQyXHUwNDMzXHUwNEU5XHUwNDQ1IixleHBhbmQ6Ilx1MDQyNVx1MDQ0M1x1MDQ0MFx1MDQzMFx1MDQzMFx1MDQ0NSIsaW5wdXRQbGFjZWhvbGRlcjoiXHUwNDIzXHUwNDQyXHUwNDMzXHUwNDMwIFx1MDQzRVx1MDQ0MFx1MDQ0M1x1MDQ0M1x1MDQzQlx1MDQzRFx1MDQzMCBcdTA0NDNcdTA0NDMiLHNlbGVjdFBsYWNlaG9sZGVyOiJcdTA0MjNcdTA0NDJcdTA0MzNcdTA0MzAgXHUwNDQxXHUwNDNFXHUwNDNEXHUwNDMzXHUwNDNFXHUwNDNEXHUwNDNFIFx1MDQ0M1x1MDQ0MyJ9LGFsZXJ0OntjbGVhcjoiXHUwNDI2XHUwNDREXHUwNDMyXHUwNDREXHUwNDQwXHUwNDNCXHUwNDREXHUwNDQ1IixzZWxlY3RlZDoiXHUwNDIxXHUwNDNFXHUwNDNEXHUwNDMzXHUwNDNFXHUwNDMzXHUwNDM0XHUwNDQxXHUwNDNFXHUwNDNEIixpdGVtOiJcdTA0MURcdTA0NERcdTA0MzNcdTA0MzYifSxwYWdpbmF0aW9uOnt0b3RhbDp7cmFuZ2U6IiAiLHRvdGFsOiJcdTA0MURcdTA0MzhcdTA0MzlcdTA0NDIiLGl0ZW06Ilx1MDQzQ1x1MDRFOVx1MDQ0MCJ9fSx0YWJsZVRvb2xCYXI6e2xlZnRQaW46Ilx1MDQxN1x1MDRBRlx1MDRBRlx1MDQzRCBcdTA0NDJcdTA0MzhcdTA0MzlcdTA0NDggXHUwNDMxXHUwNDREXHUwNDQ1XHUwNDNCXHUwNDREXHUwNDQ1IixyaWdodFBpbjoiXHUwNDExXHUwNDMwXHUwNDQwXHUwNDQzXHUwNDQzXHUwNDNEIFx1MDQ0Mlx1MDQzOFx1MDQzOVx1MDQ0OCBcdTA0MzFcdTA0NERcdTA0NDVcdTA0M0JcdTA0NERcdTA0NDUiLG5vUGluOiJcdTA0MTFcdTA0NERcdTA0NDVcdTA0M0JcdTA0NERcdTA0NDVcdTA0MzNcdTA0QUZcdTA0MzkiLGxlZnRGaXhlZFRpdGxlOiJcdTA0MTdcdTA0QUZcdTA0QUZcdTA0M0QgXHUwNDM3XHUwNDREXHUwNDQwXHUwNDREXHUwNDMzXHUwNDQ2XHUwNEFGXHUwNEFGXHUwNDNCXHUwNDREXHUwNDQ1IixyaWdodEZpeGVkVGl0bGU6Ilx1MDQxMVx1MDQzMFx1MDQ0MFx1MDQ0M1x1MDQ0M1x1MDQzRCBcdTA0MzdcdTA0NERcdTA0NDBcdTA0NERcdTA0MzNcdTA0NDZcdTA0QUZcdTA0QUZcdTA0M0JcdTA0NERcdTA0NDUiLG5vRml4ZWRUaXRsZToiXHUwNDE3XHUwNDREXHUwNDQwXHUwNDREXHUwNDMzXHUwNDQ2XHUwNEFGXHUwNEFGXHUwNDNCXHUwNDREXHUwNDQ1XHUwNDMzXHUwNEFGXHUwNDM5IixyZXNldDoiXHUwNDI4XHUwNDM4XHUwNDNEXHUwNDREXHUwNDQ3XHUwNDNCXHUwNDREXHUwNDQ1Iixjb2x1bW5EaXNwbGF5OiJcdTA0MTFcdTA0MzBcdTA0MzNcdTA0MzBcdTA0M0RcdTA0MzBcdTA0MzBcdTA0NDAgXHUwNDQ1XHUwNDMwXHUwNDQwXHUwNDQzXHUwNDQzXHUwNDNCXHUwNDMwXHUwNDQ1Iixjb2x1bW5TZXR0aW5nOiJcdTA0MjJcdTA0M0VcdTA0NDVcdTA0MzhcdTA0NDBcdTA0MzNcdTA0M0VcdTA0M0UiLGZ1bGxTY3JlZW46Ilx1MDQxMVx1MDRBRlx1MDQ0Mlx1MDQ0RFx1MDQzRCBcdTA0MzRcdTA0NERcdTA0M0JcdTA0MzNcdTA0NERcdTA0NDZcdTA0NERcdTA0NERcdTA0NDAiLGV4aXRGdWxsU2NyZWVuOiJcdTA0MTFcdTA0QUZcdTA0NDJcdTA0NERcdTA0M0QgXHUwNDM0XHUwNDREXHUwNDNCXHUwNDMzXHUwNDREXHUwNDQ2IFx1MDQ0Nlx1MDQ0M1x1MDQ0Nlx1MDQzQlx1MDQzMFx1MDQ0NSIscmVsb2FkOiJcdTA0MjhcdTA0MzhcdTA0M0RcdTA0NERcdTA0NDdcdTA0M0JcdTA0NERcdTA0NDUiLGRlbnNpdHk6Ilx1MDQyNVx1MDQ0RFx1MDQzQ1x1MDQzNlx1MDQ0RFx1MDQ0RCIsZGVuc2l0eURlZmF1bHQ6Ilx1MDQyNVx1MDQ0RFx1MDQzMlx1MDQzOFx1MDQzOVx1MDQzRCIsZGVuc2l0eUxhcmdlcjoiXHUwNDIyXHUwNDNFXHUwNDNDIixkZW5zaXR5TWlkZGxlOiJcdTA0MTRcdTA0NDNcdTA0M0RcdTA0MzQiLGRlbnNpdHlTbWFsbDoiXHUwNDE2XHUwNDM4XHUwNDM2XHUwNDM4XHUwNDMzIn0sc3RlcHNGb3JtOntuZXh0OiJcdTA0MTRcdTA0MzBcdTA0NDBcdTA0MzBcdTA0MzBcdTA0NDUiLHByZXY6Ilx1MDRFOFx1MDQzQ1x1MDQzRFx1MDRFOVx1MDQ0NSIsc3VibWl0OiJcdTA0MTRcdTA0NDNcdTA0NDNcdTA0NDFcdTA0MzNcdTA0MzBcdTA0NDUifSxsb2dpbkZvcm06e3N1Ym1pdFRleHQ6Ilx1MDQxRFx1MDQ0RFx1MDQzMlx1MDQ0Mlx1MDQ0MFx1MDQ0RFx1MDQ0NSJ9LGVkaXRhYmxlVGFibGU6e2FjdGlvbjp7c2F2ZToiXHUwNDI1XHUwNDMwXHUwNDM0XHUwNDMzXHUwNDMwXHUwNDNCXHUwNDMwXHUwNDQ1IixjYW5jZWw6Ilx1MDQyNlx1MDQ0M1x1MDQ0Nlx1MDQzQlx1MDQzMFx1MDQ0NSIsZGVsZXRlOiJcdTA0MjNcdTA0NDFcdTA0NDJcdTA0MzNcdTA0MzBcdTA0NDUiLGFkZDoiXHUwNDFDXHUwNEU5XHUwNDQwIFx1MDQzRFx1MDQ0RFx1MDQzQ1x1MDQ0RFx1MDQ0NSJ9fSxzd2l0Y2g6e29wZW46Ilx1MDQxRFx1MDQ0RFx1MDQ0RFx1MDQ0NSIsY2xvc2U6Ilx1MDQyNVx1MDQzMFx1MDQzMFx1MDQ0NSJ9fSxUPXttb25leVN5bWJvbDoiUk0iLGZvcm06e2xpZ2h0RmlsdGVyOnttb3JlOiJMZWJpaCBiYW55YWsiLGNsZWFyOiJKZWxhcyIsY29uZmlybToiTWVuZ2VzYWhrYW4iLGl0ZW1Vbml0OiJJdGVtIn19LHRhYmxlRm9ybTp7c2VhcmNoOiJDYXJpIixyZXNldDoiTWVuZXRhcGthbiBzZW11bGEiLHN1Ym1pdDoiSGFudGFyIixjb2xsYXBzZWQ6IktlbWJhbmciLGV4cGFuZDoiS3VuY3VwIixpbnB1dFBsYWNlaG9sZGVyOiJTaWxhIG1hc3VrIixzZWxlY3RQbGFjZWhvbGRlcjoiU2lsYSBwaWxpaCJ9LGFsZXJ0OntjbGVhcjoiUGFkYW0iLHNlbGVjdGVkOiJEaXBpbGloIixpdGVtOiJJdGVtIn0scGFnaW5hdGlvbjp7dG90YWw6e3JhbmdlOiIgIix0b3RhbDoiZGFyaXBhZGEiLGl0ZW06Iml0ZW0ifX0sdGFibGVUb29sQmFyOntsZWZ0UGluOiJQaW4ga2Uga2lyaSIscmlnaHRQaW46IlBpbiBrZSBrYW5hbiIsbm9QaW46IlRpZGFrIHBpbiIsbGVmdEZpeGVkVGl0bGU6IlRldGFwIGtlIGtpcmkiLHJpZ2h0Rml4ZWRUaXRsZToiVGV0YXAga2Uga2FuYW4iLG5vRml4ZWRUaXRsZToiVGlkYWsgVGV0YXAiLHJlc2V0OiJNZW5ldGFwa2FuIHNlbXVsYSIsY29sdW1uRGlzcGxheToiTGFqdXIiLGNvbHVtblNldHRpbmc6IlNldHRpbmdzIixmdWxsU2NyZWVuOiJGdWxsIFNjcmVlbiIsZXhpdEZ1bGxTY3JlZW46IktlbHVhciBGdWxsIFNjcmVlbiIscmVsb2FkOiJNdWF0IFNlbXVsYSIsZGVuc2l0eToiRGVuc2l0aSIsZGVuc2l0eURlZmF1bHQ6IkJpYXNhIixkZW5zaXR5TGFyZ2VyOiJCZXNhciIsZGVuc2l0eU1pZGRsZToiVGVuZ2FoIixkZW5zaXR5U21hbGw6IktlY2lsIn0sc3RlcHNGb3JtOntuZXh0OiJTZXRlcnVzbnlhIixwcmV2OiJTZWJlbHVtbnlhIixzdWJtaXQ6IlNlbGVzYWkifSxsb2dpbkZvcm06e3N1Ym1pdFRleHQ6IkxvZyBNYXN1ayJ9LGVkaXRhYmxlVGFibGU6e2FjdGlvbjp7c2F2ZToiU2ltcGFuIixjYW5jZWw6Ik1lbWJhdGFsa2FuIixkZWxldGU6Ik1lbmdoYXB1c2thbiIsYWRkOiJ0YW1iYWggYmFyaXMgZGF0YSJ9fSxzd2l0Y2g6e29wZW46IlRlcmJ1a2EiLGNsb3NlOiJUdXR1cCJ9fSxTPXttb25leVN5bWJvbDoiXHUyMEFDIixkZWxldGVUaGlzTGluZToiVmVyd2lqZGVyIGRlemUgcmVnZWwiLGNvcHlUaGlzTGluZToiS29waWVlciBkZXplIHJlZ2VsIixmb3JtOntsaWdodEZpbHRlcjp7bW9yZToiTWVlciBmaWx0ZXJzIixjbGVhcjoiV2lzc2VuIixjb25maXJtOiJCZXZlc3RpZ2VuIixpdGVtVW5pdDoiaXRlbSJ9fSx0YWJsZUZvcm06e3NlYXJjaDoiWm9la2VuIixyZXNldDoiUmVzZXR0ZW4iLHN1Ym1pdDoiSW5kaWVuZW4iLGNvbGxhcHNlZDoiVWl0dm91d2VuIixleHBhbmQ6Iklua2xhcHBlbiIsaW5wdXRQbGFjZWhvbGRlcjoiVm9lciBpbiIsc2VsZWN0UGxhY2Vob2xkZXI6IlNlbGVjdGVlciJ9LGFsZXJ0OntjbGVhcjoiU2VsZWN0aWUgYW5udWxlcmVuIixzZWxlY3RlZDoiR2VzZWxlY3RlZXJkIixpdGVtOiJpdGVtIn0scGFnaW5hdGlvbjp7dG90YWw6e3JhbmdlOiJWYW4iLHRvdGFsOiJpdGVtcy90b3RhYWwiLGl0ZW06Iml0ZW1zIn19LHRhYmxlVG9vbEJhcjp7bGVmdFBpbjoiVmFzdHpldHRlbiBhYW4gYmVnaW4iLHJpZ2h0UGluOiJWYXN0emV0dGVuIGFhbiBlaW5kZSIsbm9QaW46Ik5pZXQgdmFzdHpldHRlbiIsbGVmdEZpeGVkVGl0bGU6IlZhc3R6ZXR0ZW4gYWFuIGRlIGxpbmtlcmthbnQiLHJpZ2h0Rml4ZWRUaXRsZToiVmFzdHpldHRlbiBhYW4gZGUgcmVjaHRlcmthbnQiLG5vRml4ZWRUaXRsZToiTmlldCB2YXN0emV0dGVuIixyZXNldDoiUmVzZXR0ZW4iLGNvbHVtbkRpc3BsYXk6IktvbG9td2VlcmdhdmUiLGNvbHVtblNldHRpbmc6IktvbG9taW5zdGVsbGluZ2VuIixmdWxsU2NyZWVuOiJWb2xsZWRpZyBzY2hlcm0iLGV4aXRGdWxsU2NyZWVuOiJWZXJsYWF0IHZvbGxlZGlnIHNjaGVybSIscmVsb2FkOiJWZXJuaWV1d2VuIixkZW5zaXR5OiJEaWNodGhlaWQiLGRlbnNpdHlEZWZhdWx0OiJOb3JtYWFsIixkZW5zaXR5TGFyZ2VyOiJSdWltIixkZW5zaXR5TWlkZGxlOiJHZW1pZGRlbGQiLGRlbnNpdHlTbWFsbDoiQ29tcGFjdCJ9LHN0ZXBzRm9ybTp7bmV4dDoiVm9sZ2VuZGUgc3RhcCIscHJldjoiVm9yaWdlIHN0YXAiLHN1Ym1pdDoiSW5kaWVuZW4ifSxsb2dpbkZvcm06e3N1Ym1pdFRleHQ6IklubG9nZ2VuIn0sZWRpdGFibGVUYWJsZTp7b25seU9uZUxpbmVFZGl0b3I6IlNsZWNodHMgXHhFOVx4RTluIHJlZ2VsIHRlZ2VsaWprIGJld2Vya2VuIixhY3Rpb246e3NhdmU6Ik9wc2xhYW4iLGNhbmNlbDoiQW5udWxlcmVuIixkZWxldGU6IlZlcndpamRlcmVuIixhZGQ6IkVlbiByZWdlbCB0b2V2b2VnZW4ifX0sc3dpdGNoOntvcGVuOiJPcGVuZW4iLGNsb3NlOiJTbHVpdGVuIn19LEw9e21vbmV5U3ltYm9sOiJ6XHUwMTQyIixmb3JtOntsaWdodEZpbHRlcjp7bW9yZToiV2lcdTAxMTljZWoiLGNsZWFyOiJXeWN6eVx1MDE1Qlx1MDEwNyIsY29uZmlybToiUG90d2llcmRcdTAxN0EiLGl0ZW1Vbml0OiJJbG9cdTAxNUJcdTAxMDcifX0sdGFibGVGb3JtOntzZWFyY2g6IlN6dWthaiIscmVzZXQ6IlJlc2V0IixzdWJtaXQ6IlphdHdpZXJkXHUwMTdBIixjb2xsYXBzZWQ6IlBva2FcdTAxN0Mgd2llY2VqIixleHBhbmQ6IlBva2FcdTAxN0MgbW5pZWoiLGlucHV0UGxhY2Vob2xkZXI6IlByb3N6XHUwMTE5IHBvZGFcdTAxMDciLHNlbGVjdFBsYWNlaG9sZGVyOiJQcm9zelx1MDExOSB3eWJyYVx1MDEwNyJ9LGFsZXJ0OntjbGVhcjoiV3ljenlcdTAxNUJcdTAxMDciLHNlbGVjdGVkOiJXeWJyYW5lIixpdGVtOiJXcGlzIn0scGFnaW5hdGlvbjp7dG90YWw6e3JhbmdlOiIgIix0b3RhbDoieiIsaXRlbToiV3Bpc1x4RjN3In19LHRhYmxlVG9vbEJhcjp7bGVmdFBpbjoiUHJ6eXBuaWogZG8gbGV3ZWoiLHJpZ2h0UGluOiJQcnp5cG5paiBkbyBwcmF3ZWoiLG5vUGluOiJPZGVwbmlqIixsZWZ0Rml4ZWRUaXRsZToiUHJ6eXBpXHUwMTE5dGUgZG8gbGV3ZWoiLHJpZ2h0Rml4ZWRUaXRsZToiUHJ6eXBpXHUwMTE5dGUgZG8gcHJhd2VqIixub0ZpeGVkVGl0bGU6Ik5pZXByenlwaVx1MDExOXRlIixyZXNldDoiUmVzZXQiLGNvbHVtbkRpc3BsYXk6Ild5XHUwMTVCd2lldGxhbmUgd2llcnN6ZSIsY29sdW1uU2V0dGluZzoiVXN0YXdpZW5pYSIsZnVsbFNjcmVlbjoiUGVcdTAxNDJlbiBla3JhbiIsZXhpdEZ1bGxTY3JlZW46IlphbWtuaWogcGVcdTAxNDJlbiBla3JhbiIscmVsb2FkOiJPZFx1MDE1QndpZVx1MDE3QyIsZGVuc2l0eToiT2RzdFx1MDExOXAiLGRlbnNpdHlEZWZhdWx0OiJTdGFuZGFyZCIsZGVuc2l0eUxhcmdlcjoiV2lla3N6eSIsZGVuc2l0eU1pZGRsZToiU3JlZG5pIixkZW5zaXR5U21hbGw6IktvbXBha3Rvd3kifSxzdGVwc0Zvcm06e25leHQ6IldlaXRlciIscHJldjoiWnVyXHhGQ2NrIixzdWJtaXQ6IkFic2NobGllXHhERmVuIn0sbG9naW5Gb3JtOntzdWJtaXRUZXh0OiJaYWxvZ3VqIHNpXHUwMTE5In0sZWRpdGFibGVUYWJsZTp7YWN0aW9uOntzYXZlOiJaYXBpc2FcdTAxMDciLGNhbmNlbDoiQW51bHVqIixkZWxldGU6IlVzdW5cdTAxMDVcdTAxMDciLGFkZDoiZG9kYXdhbmllIHdpZXJzemEgZGFueWNoIn19LHN3aXRjaDp7b3Blbjoib3R3aWVyYVx1MDEwNyIsY2xvc2U6InphbXlrYVx1MDEwNyJ9fSxJPXttb25leVN5bWJvbDoiUiQiLGZvcm06e2xpZ2h0RmlsdGVyOnttb3JlOiJNYWlzIixjbGVhcjoiTGltcGFyIixjb25maXJtOiJDb25maXJtYXIiLGl0ZW1Vbml0OiJJdGVucyJ9fSx0YWJsZUZvcm06e3NlYXJjaDoiRmlsdHJhciIscmVzZXQ6IkxpbXBhciIsc3VibWl0OiJDb25maXJtYXIiLGNvbGxhcHNlZDoiRXhwYW5kaXIiLGV4cGFuZDoiQ29sYXBzYXIiLGlucHV0UGxhY2Vob2xkZXI6IlBvciBmYXZvciBpbnNpcmEiLHNlbGVjdFBsYWNlaG9sZGVyOiJQb3IgZmF2b3Igc2VsZWNpb25lIn0sYWxlcnQ6e2NsZWFyOiJMaW1wYXIiLHNlbGVjdGVkOiJTZWxlY2lvbmFkbyhzKSIsaXRlbToiSXRlbShzKSJ9LHBhZ2luYXRpb246e3RvdGFsOntyYW5nZToiICIsdG90YWw6ImRlIixpdGVtOiJpdGVucyJ9fSx0YWJsZVRvb2xCYXI6e2xlZnRQaW46IkZpeGFyIFx4RTAgZXNxdWVyZGEiLHJpZ2h0UGluOiJGaXhhciBceEUwIGRpcmVpdGEiLG5vUGluOiJEZXNmaXhhZG8iLGxlZnRGaXhlZFRpdGxlOiJGaXhhZG8gXHhFMCBlc3F1ZXJkYSIscmlnaHRGaXhlZFRpdGxlOiJGaXhhZG8gXHhFMCBkaXJlaXRhIixub0ZpeGVkVGl0bGU6Ik5ceEUzbyBmaXhhZG8iLHJlc2V0OiJMaW1wYXIiLGNvbHVtbkRpc3BsYXk6Ik1vc3RyYXIgQ29sdW5hIixjb2x1bW5TZXR0aW5nOiJDb25maWd1cmFceEU3XHhGNWVzIixmdWxsU2NyZWVuOiJUZWxhIENoZWlhIixleGl0RnVsbFNjcmVlbjoiU2FpciBkYSBUZWxhIENoZWlhIixyZWxvYWQ6IkF0dWFsaXphciIsZGVuc2l0eToiRGVuc2lkYWRlIixkZW5zaXR5RGVmYXVsdDoiUGFkclx4RTNvIixkZW5zaXR5TGFyZ2VyOiJMYXJnbyIsZGVuc2l0eU1pZGRsZToiTVx4RTlkaW8iLGRlbnNpdHlTbWFsbDoiQ29tcGFjdG8ifSxzdGVwc0Zvcm06e25leHQ6IlByXHhGM3hpbW8iLHByZXY6IkFudGVyaW9yIixzdWJtaXQ6IkVudmlhciJ9LGxvZ2luRm9ybTp7c3VibWl0VGV4dDoiRW50cmFyIn0sZWRpdGFibGVUYWJsZTp7YWN0aW9uOntzYXZlOiJTYWx2YXIiLGNhbmNlbDoiQ2FuY2VsYXIiLGRlbGV0ZToiQXBhZ2FyIixhZGQ6ImFkaWNpb25hciB1bWEgbGluaGEgZGUgZGFkb3MifX0sc3dpdGNoOntvcGVuOiJhYnJpciIsY2xvc2U6ImZlY2hhciJ9fSxSPXttb25leVN5bWJvbDoiUk9OIixkZWxldGVUaGlzTGluZToiXHUwMjE4dGVyZ2UgYWNlc3Qgclx4RTJuZCIsY29weVRoaXNMaW5lOiJDb3BpYXpcdTAxMDMgYWNlc3Qgclx4RTJuZCIsZm9ybTp7bGlnaHRGaWx0ZXI6e21vcmU6Ik1haSBtdWx0ZSBmaWx0cmUiLGNsZWFyOiJDdXJcdTAxMDNcdTAyMUJcdTAxMDMiLGNvbmZpcm06IkNvbmZpcm1cdTAxMDMiLGl0ZW1Vbml0OiJlbGVtZW50ZSJ9fSx0YWJsZUZvcm06e3NlYXJjaDoiQ2F1dFx1MDEwMyIscmVzZXQ6IlJlc2V0ZWF6XHUwMTAzIixzdWJtaXQ6IlRyaW1pdGUiLGNvbGxhcHNlZDoiRXh0aW5kZSIsZXhwYW5kOiJSZXN0clx4RTJuZ2UiLGlucHV0UGxhY2Vob2xkZXI6IkludHJvZHVjZVx1MDIxQmkiLHNlbGVjdFBsYWNlaG9sZGVyOiJTZWxlY3RhXHUwMjFCaSJ9LGFsZXJ0OntjbGVhcjoiQW51bGVhelx1MDEwMyBzZWxlY1x1MDIxQmlhIixzZWxlY3RlZDoiU2VsZWN0YXQiLGl0ZW06ImVsZW1lbnRlIn0scGFnaW5hdGlvbjp7dG90YWw6e3JhbmdlOiJEZSBsYSIsdG90YWw6ImVsZW1lbnRlL3RvdGFsIixpdGVtOiJlbGVtZW50ZSJ9fSx0YWJsZVRvb2xCYXI6e2xlZnRQaW46IkZpeGVhelx1MDEwMyBsYSBceEVFbmNlcHV0IixyaWdodFBpbjoiRml4ZWF6XHUwMTAzIGxhIHNmXHhFMnJcdTAyMTlpdCIsbm9QaW46Ik51IGZpeGEiLGxlZnRGaXhlZFRpdGxlOiJGaXhlYXpcdTAxMDMgXHhFRW4gc3RceEUybmdhIixyaWdodEZpeGVkVGl0bGU6IkZpeGVhelx1MDEwMyBceEVFbiBkcmVhcHRhIixub0ZpeGVkVGl0bGU6Ik51IGZpeGEiLHJlc2V0OiJSZXNldGVhelx1MDEwMyIsY29sdW1uRGlzcGxheToiQWZpXHUwMjE5YXJlIGNvbG9hbmUiLGNvbHVtblNldHRpbmc6IlNldFx1MDEwM3JpIGNvbG9hbmUiLGZ1bGxTY3JlZW46IkVjcmFuIGNvbXBsZXQiLGV4aXRGdWxsU2NyZWVuOiJJZVx1MDIxOWkgZGluIGVjcmFuIGNvbXBsZXQiLHJlbG9hZDoiUmVceEVFbmNhcmNcdTAxMDMiLGRlbnNpdHk6IkRlbnNpdGF0ZSIsZGVuc2l0eURlZmF1bHQ6Ik5vcm1hbCIsZGVuc2l0eUxhcmdlcjoiTGFyZyIsZGVuc2l0eU1pZGRsZToiTWVkaXUiLGRlbnNpdHlTbWFsbDoiQ29tcGFjdCJ9LHN0ZXBzRm9ybTp7bmV4dDoiUGFzdWwgdXJtXHUwMTAzdG9yIixwcmV2OiJQYXN1bCBhbnRlcmlvciIsc3VibWl0OiJUcmltaXRlIn0sbG9naW5Gb3JtOntzdWJtaXRUZXh0OiJBdXRlbnRpZmljYXJlIn0sZWRpdGFibGVUYWJsZTp7b25seU9uZUxpbmVFZGl0b3I6IlNlIHBvYXRlIGVkaXRhIGRvYXIgdW4gclx4RTJuZCBzaW11bHRhbiIsYWN0aW9uOntzYXZlOiJTYWx2ZWF6XHUwMTAzIixjYW5jZWw6IkFudWxlYXpcdTAxMDMiLGRlbGV0ZToiXHUwMjE4dGVyZ2UiLGFkZDoiQWRhdWdcdTAxMDMgdW4gclx4RTJuZCJ9fSxzd2l0Y2g6e29wZW46IkRlc2NoaWRlIixjbG9zZToiXHhDRW5jaGlkZSJ9fSx6PXttb25leVN5bWJvbDoiXHUyMEJEIixmb3JtOntsaWdodEZpbHRlcjp7bW9yZToiXHUwNDE1XHUwNDQ5XHUwNDM1IixjbGVhcjoiXHUwNDFFXHUwNDQ3XHUwNDM4XHUwNDQxXHUwNDQyXHUwNDM4XHUwNDQyXHUwNDRDIixjb25maXJtOiJcdTA0MUVcdTA0MUEiLGl0ZW1Vbml0OiJcdTA0MUZcdTA0M0VcdTA0MzdcdTA0MzhcdTA0NDZcdTA0MzhcdTA0MzgifX0sdGFibGVGb3JtOntzZWFyY2g6Ilx1MDQxRFx1MDQzMFx1MDQzOVx1MDQ0Mlx1MDQzOCIscmVzZXQ6Ilx1MDQyMVx1MDQzMVx1MDQ0MFx1MDQzRVx1MDQ0MSIsc3VibWl0OiJcdTA0MUVcdTA0NDJcdTA0M0ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NEMiLGNvbGxhcHNlZDoiXHUwNDIwXHUwNDMwXHUwNDM3XHUwNDMyXHUwNDM1XHUwNDQwXHUwNDNEXHUwNDQzXHUwNDQyXHUwNDRDIixleHBhbmQ6Ilx1MDQyMVx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzRFx1MDQ0M1x1MDQ0Mlx1MDQ0QyIsaW5wdXRQbGFjZWhvbGRlcjoiXHUwNDEyXHUwNDMyXHUwNDM1XHUwNDM0XHUwNDM4XHUwNDQyXHUwNDM1IFx1MDQzN1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNSIsc2VsZWN0UGxhY2Vob2xkZXI6Ilx1MDQxMlx1MDQ0Qlx1MDQzMVx1MDQzNVx1MDQ0MFx1MDQzOFx1MDQ0Mlx1MDQzNSBcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzUifSxhbGVydDp7Y2xlYXI6Ilx1MDQxRVx1MDQ0N1x1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQ0Mlx1MDQ0QyIsc2VsZWN0ZWQ6Ilx1MDQxMlx1MDQ0Qlx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzRFx1MDQzRSIsaXRlbToiXHUwNDREXHUwNDNCXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDNFXHUwNDMyIn0scGFnaW5hdGlvbjp7dG90YWw6e3JhbmdlOiIgIix0b3RhbDoiXHUwNDM4XHUwNDM3IixpdGVtOiJcdTA0NERcdTA0M0JcdTA0MzVcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0M0VcdTA0MzIifX0sdGFibGVUb29sQmFyOntsZWZ0UGluOiJcdTA0MTdcdTA0MzBcdTA0M0FcdTA0NDBcdTA0MzVcdTA0M0ZcdTA0MzhcdTA0NDJcdTA0NEMgXHUwNDQxXHUwNDNCXHUwNDM1XHUwNDMyXHUwNDMwIixyaWdodFBpbjoiXHUwNDE3XHUwNDMwXHUwNDNBXHUwNDQwXHUwNDM1XHUwNDNGXHUwNDM4XHUwNDQyXHUwNDRDIFx1MDQ0MVx1MDQzRlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzMCIsbm9QaW46Ilx1MDQxRVx1MDQ0Mlx1MDQzQVx1MDQ0MFx1MDQzNVx1MDQzRlx1MDQzOFx1MDQ0Mlx1MDQ0QyIsbGVmdEZpeGVkVGl0bGU6Ilx1MDQxN1x1MDQzMFx1MDQzQVx1MDQ0MFx1MDQzNVx1MDQzRlx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzRSBcdTA0NDFcdTA0M0JcdTA0MzVcdTA0MzJcdTA0MzAiLHJpZ2h0Rml4ZWRUaXRsZToiXHUwNDE3XHUwNDMwXHUwNDNBXHUwNDQwXHUwNDM1XHUwNDNGXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDNFIFx1MDQ0MVx1MDQzRlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzMCIsbm9GaXhlZFRpdGxlOiJcdTA0MURcdTA0MzUgXHUwNDM3XHUwNDMwXHUwNDNBXHUwNDQwXHUwNDM1XHUwNDNGXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDNFIixyZXNldDoiXHUwNDIxXHUwNDMxXHUwNDQwXHUwNDNFXHUwNDQxIixjb2x1bW5EaXNwbGF5OiJcdTA0MUVcdTA0NDJcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzUgXHUwNDQxXHUwNDQyXHUwNDNFXHUwNDNCXHUwNDMxXHUwNDQ2XHUwNDMwIixjb2x1bW5TZXR0aW5nOiJcdTA0MURcdTA0MzBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0MzlcdTA0M0FcdTA0MzgiLGZ1bGxTY3JlZW46Ilx1MDQxRlx1MDQzRVx1MDQzQlx1MDQzRFx1MDQ0Qlx1MDQzOSBcdTA0NERcdTA0M0FcdTA0NDBcdTA0MzBcdTA0M0QiLGV4aXRGdWxsU2NyZWVuOiJcdTA0MTJcdTA0NEJcdTA0MzlcdTA0NDJcdTA0MzggXHUwNDM4XHUwNDM3IFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRFx1MDQzRVx1MDQ0RFx1MDQzQVx1MDQ0MFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQzRVx1MDQzM1x1MDQzRSBcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0MzAiLHJlbG9hZDoiXHUwNDFFXHUwNDMxXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRDIixkZW5zaXR5OiJcdTA0MjBcdTA0MzBcdTA0MzdcdTA0M0NcdTA0MzVcdTA0NDAiLGRlbnNpdHlEZWZhdWx0OiJcdTA0MUZcdTA0M0UgXHUwNDQzXHUwNDNDXHUwNDNFXHUwNDNCXHUwNDQ3XHUwNDMwXHUwNDNEXHUwNDM4XHUwNDRFIixkZW5zaXR5TGFyZ2VyOiJcdTA0MTFcdTA0M0VcdTA0M0JcdTA0NENcdTA0NDhcdTA0M0VcdTA0MzkiLGRlbnNpdHlNaWRkbGU6Ilx1MDQyMVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQzRFx1MDQzOFx1MDQzOSIsZGVuc2l0eVNtYWxsOiJcdTA0MjFcdTA0MzZcdTA0MzBcdTA0NDJcdTA0NEJcdTA0MzkifSxzdGVwc0Zvcm06e25leHQ6Ilx1MDQyMVx1MDQzQlx1MDQzNVx1MDQzNFx1MDQ0M1x1MDQ0RVx1MDQ0OVx1MDQzOFx1MDQzOSIscHJldjoiXHUwNDFGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDRCXHUwNDM0XHUwNDQzXHUwNDQ5XHUwNDM4XHUwNDM5IixzdWJtaXQ6Ilx1MDQxN1x1MDQzMFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQ0OFx1MDQzOFx1MDQ0Mlx1MDQ0QyJ9LGxvZ2luRm9ybTp7c3VibWl0VGV4dDoiXHUwNDEyXHUwNDQ1XHUwNDNFXHUwNDM0In0sZWRpdGFibGVUYWJsZTp7YWN0aW9uOntzYXZlOiJcdTA0MjFcdTA0M0VcdTA0NDVcdTA0NDBcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NDJcdTA0NEMiLGNhbmNlbDoiXHUwNDFFXHUwNDQyXHUwNDNDXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDQyXHUwNDRDIixkZWxldGU6Ilx1MDQyM1x1MDQzNFx1MDQzMFx1MDQzQlx1MDQzOFx1MDQ0Mlx1MDQ0QyIsYWRkOiJcdTA0MzRcdTA0M0VcdTA0MzFcdTA0MzBcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NEMgXHUwNDQwXHUwNDRGXHUwNDM0IFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSJ9fSxzd2l0Y2g6e29wZW46Ilx1MDQxRVx1MDQ0Mlx1MDQzQVx1MDQ0MFx1MDQ0Qlx1MDQ0Mlx1MDQ0Qlx1MDQzOSBcdTA0NDdcdTA0MzVcdTA0M0NcdTA0M0ZcdTA0MzhcdTA0M0VcdTA0M0RcdTA0MzBcdTA0NDIgXHUwNDNDXHUwNDM4XHUwNDQwXHUwNDMwIFx1MDQzRlx1MDQzRSBcdTA0NDJcdTA0MzVcdTA0M0RcdTA0M0RcdTA0MzhcdTA0NDFcdTA0NDMiLGNsb3NlOiJcdTA0MUZcdTA0M0UgXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxXHUwNDQzOiJ9fSxHPXttb25leVN5bWJvbDoiXHUyMEFDIixkZWxldGVUaGlzTGluZToiT2RzdHJceEUxbmlcdTAxNjUgdGVudG8gcmlhZG9rIixjb3B5VGhpc0xpbmU6IlNrb3BceEVEcnVqdGUgdGVudG8gcmlhZG9rIixmb3JtOntsaWdodEZpbHRlcjp7bW9yZToiVmlhYyIsY2xlYXI6IlZ5XHUwMTBEaXN0aVx1MDE2NSIsY29uZmlybToiUG90dnJcdTAxMEZ0ZSIsaXRlbVVuaXQ6IlBvbG9cdTAxN0VreSJ9fSx0YWJsZUZvcm06e3NlYXJjaDoiVnlobGFkYVx1MDE2NSIscmVzZXQ6IlJlc2V0b3ZhXHUwMTY1IixzdWJtaXQ6Ik9kb3NsYVx1MDE2NSIsY29sbGFwc2VkOiJSb3piYWxpXHUwMTY1IixleHBhbmQ6IlpiYWxpXHUwMTY1IixpbnB1dFBsYWNlaG9sZGVyOiJQcm9zXHhFRG0sIHphZGFqdGUiLHNlbGVjdFBsYWNlaG9sZGVyOiJQcm9zXHhFRG0sIHZ5YmVydGUifSxhbGVydDp7Y2xlYXI6IlZ5XHUwMTBEaXN0aVx1MDE2NSIsc2VsZWN0ZWQ6IlZ5YnJhblx4RkQiLGl0ZW06IlBvbG9cdTAxN0VrYSJ9LHBhZ2luYXRpb246e3RvdGFsOntyYW5nZToiICIsdG90YWw6InoiLGl0ZW06InBvbG9cdTAxN0VpZWsifX0sdGFibGVUb29sQmFyOntsZWZ0UGluOiJQcmlwblx4RkFcdTAxNjUgdlx1MDEzRWF2byIscmlnaHRQaW46IlByaXBuXHhGQVx1MDE2NSB2cHJhdm8iLG5vUGluOiJPZG9wbnV0XHhFOSIsbGVmdEZpeGVkVGl0bGU6IkZpeG92YW5ceEU5IG5hIFx1MDEzRWF2byIscmlnaHRGaXhlZFRpdGxlOiJGaXhvdmFuXHhFOSBuYSBwcmF2byIsbm9GaXhlZFRpdGxlOiJOZWZpeG92YW5ceEU5IixyZXNldDoiUmVzZXRvdmFcdTAxNjUiLGNvbHVtbkRpc3BsYXk6IlpvYnJhemVuaWUgc3RcdTAxM0FwY292Iixjb2x1bW5TZXR0aW5nOiJOYXN0YXZlbmlhIixmdWxsU2NyZWVuOiJDZWxceEUxIG9icmF6b3ZrYSIsZXhpdEZ1bGxTY3JlZW46IlVrb25cdTAxMERpXHUwMTY1IGNlbFx4RkEgb2JyYXpvdmt1IixyZWxvYWQ6Ik9ibm92aVx1MDE2NSIsZGVuc2l0eToiSHVzdG90YSIsZGVuc2l0eURlZmF1bHQ6IlByZWR2b2xlblx4RTkiLGRlbnNpdHlMYXJnZXI6IlZceEU0XHUwMTBEXHUwMTYxaWUiLGRlbnNpdHlNaWRkbGU6IlN0cmVkblx4RTkiLGRlbnNpdHlTbWFsbDoiS29tcGFrdG5ceEU5In0sc3RlcHNGb3JtOntuZXh0OiJcdTAxMEVhbFx1MDE2MWllIixwcmV2OiJQcmVkY2hceEUxZHphalx4RkFjZSIsc3VibWl0OiJQb3R2cmRpXHUwMTY1In0sbG9naW5Gb3JtOntzdWJtaXRUZXh0OiJQcmlobFx4RTFzaVx1MDE2NSBzYSJ9LGVkaXRhYmxlVGFibGU6e29ubHlPbmVMaW5lRWRpdG9yOiJVcHJhdm92YVx1MDE2NSBtb1x1MDE3RW5vIGliYSBqZWRlbiByaWFkb2siLGFjdGlvbjp7c2F2ZToiVWxvXHUwMTdFaVx1MDE2NSIsY2FuY2VsOiJacnVcdTAxNjFpXHUwMTY1IixkZWxldGU6Ik9kc3RyXHhFMW5pXHUwMTY1IixhZGQ6InByaWRhXHUwMTY1IHJpYWRvayBceEZBZGFqb3YifX0sc3dpdGNoOntvcGVuOiJvdHZvcmlcdTAxNjUiLGNsb3NlOiJ6YXZyaWVcdTAxNjUifX0sWT17bW9uZXlTeW1ib2w6IlJTRCIsZm9ybTp7bGlnaHRGaWx0ZXI6e21vcmU6IlZpXHUwMTYxZSIsY2xlYXI6Ik9cdTAxMERpc3RpIixjb25maXJtOiJQb3R2cmRpIixpdGVtVW5pdDoiU3RhdmtlIn19LHRhYmxlRm9ybTp7c2VhcmNoOiJQcm9uYVx1MDExMWkiLHJlc2V0OiJSZXNldHVqIixzdWJtaXQ6IlBvXHUwMTYxYWxqaSIsY29sbGFwc2VkOiJQcm9cdTAxNjFpcmkiLGV4cGFuZDoiU2t1cGkiLGlucHV0UGxhY2Vob2xkZXI6Ik1vbGltbyB1bmVzaXRlIixzZWxlY3RQbGFjZWhvbGRlcjoiTW9saW1vIG9kYWJlcml0ZSJ9LGFsZXJ0OntjbGVhcjoiT1x1MDEwRGlzdGkiLHNlbGVjdGVkOiJPZGFicmFubyIsaXRlbToiU3RhdmthIn0scGFnaW5hdGlvbjp7dG90YWw6e3JhbmdlOiIgIix0b3RhbDoib2QiLGl0ZW06InN0YXZraSJ9fSx0YWJsZVRvb2xCYXI6e2xlZnRQaW46Ilpha2FcdTAxMERpIGxldm8iLHJpZ2h0UGluOiJaYWthXHUwMTBEaSBkZXNubyIsbm9QaW46Ik5pamUgemFrYVx1MDEwRGVubyIsbGVmdEZpeGVkVGl0bGU6IkZpa3NpcmFubyBsZXZvIixyaWdodEZpeGVkVGl0bGU6IkZpa3NpcmFubyBkZXNubyIsbm9GaXhlZFRpdGxlOiJOaWplIGZpa3NpcmFubyIscmVzZXQ6IlJlc2V0dWoiLGNvbHVtbkRpc3BsYXk6IlByaWtheiBrb2xvbmEiLGNvbHVtblNldHRpbmc6IlBvZGVcdTAxNjFhdmFuamEiLGZ1bGxTY3JlZW46IlB1biBla3JhbiIsZXhpdEZ1bGxTY3JlZW46IlphdHZvcmkgcHVuIGVrcmFuIixyZWxvYWQ6Ik9zdmVcdTAxN0VpIixkZW5zaXR5OiJWZWxpXHUwMTBEaW5hIixkZW5zaXR5RGVmYXVsdDoiUG9kcmF6dW1ldmFuYSIsZGVuc2l0eUxhcmdlcjoiVmVcdTAxMDdhIixkZW5zaXR5TWlkZGxlOiJTcmVkbmphIixkZW5zaXR5U21hbGw6IktvbXBha3RuYSJ9LHN0ZXBzRm9ybTp7bmV4dDoiRGFsamUiLHByZXY6Ik5hemFkIixzdWJtaXQ6IkdvdG92byJ9LGxvZ2luRm9ybTp7c3VibWl0VGV4dDoiUHJpamF2aSBzZSJ9LGVkaXRhYmxlVGFibGU6e2FjdGlvbjp7c2F2ZToiU2FcdTAxMER1dmFqIixjYW5jZWw6IlBvbmlcdTAxNjF0aSIsZGVsZXRlOiJPYnJpXHUwMTYxaSIsYWRkOiJkb2RhanRlIHJlZCBwb2RhdGFrYSJ9fSxzd2l0Y2g6e29wZW46Ilx1MDQxRVx1MDQ0Mlx1MDQzMlx1MDQzRVx1MDQ0MFx1MDQzOFx1MDQ0Mlx1MDQzNSIsY2xvc2U6Ilx1MDQxN1x1MDQzMFx1MDQ0Mlx1MDQzMlx1MDQzRVx1MDQ0MFx1MDQzOFx1MDQ0Mlx1MDQzNSJ9fSxlZT17bW9uZXlTeW1ib2w6IlNFSyIsZGVsZXRlVGhpc0xpbmU6IlJhZGVyYSBkZW5uYSByYWQiLGNvcHlUaGlzTGluZToiS29waWVyYSBkZW5uYSByYWQiLGZvcm06e2xpZ2h0RmlsdGVyOnttb3JlOiJGbGVyIGZpbHRlciIsY2xlYXI6IlJlbnNhIixjb25maXJtOiJCZWtyXHhFNGZ0YSIsaXRlbVVuaXQ6Im9iamVrdCJ9fSx0YWJsZUZvcm06e3NlYXJjaDoiU1x4RjZrIixyZXNldDoiXHhDNXRlcnN0XHhFNGxsIixzdWJtaXQ6IlNraWNrYSIsY29sbGFwc2VkOiJFeHBhbmRlcmEiLGV4cGFuZDoiRlx4RTRsbCBpaG9wIixpbnB1dFBsYWNlaG9sZGVyOiJWXHhFNG5saWdlbiBhbmdlIixzZWxlY3RQbGFjZWhvbGRlcjoiVlx4RTRubGlnZW4gdlx4RTRsaiJ9LGFsZXJ0OntjbGVhcjoiQXZicnl0IHZhbCIsc2VsZWN0ZWQ6IlZhbGQiLGl0ZW06Im9iamVrdCJ9LHBhZ2luYXRpb246e3RvdGFsOntyYW5nZToiRnJceEU1biIsdG90YWw6Im9iamVrdC90b3RhbHQiLGl0ZW06Im9iamVrdCJ9fSx0YWJsZVRvb2xCYXI6e2xlZnRQaW46IkZceEU0c3QgdGlsbCB2XHhFNG5zdGVyIixyaWdodFBpbjoiRlx4RTRzdCB0aWxsIGhceEY2Z2VyIixub1BpbjoiSW50ZSBmXHhFNHN0IixsZWZ0Rml4ZWRUaXRsZToiRlx4RTRzdCB0aWxsIHZceEU0bnN0ZXIiLHJpZ2h0Rml4ZWRUaXRsZToiRlx4RTRzdCB0aWxsIGhceEY2Z2VyIixub0ZpeGVkVGl0bGU6IkludGUgZlx4RTRzdCIscmVzZXQ6Ilx4QzV0ZXJzdFx4RTRsbCIsY29sdW1uRGlzcGxheToiS29sdW1udmlzbmluZyIsY29sdW1uU2V0dGluZzoiS29sdW1uaW5zdFx4RTRsbG5pbmdhciIsZnVsbFNjcmVlbjoiRnVsbHNrXHhFNHJtIixleGl0RnVsbFNjcmVlbjoiQXZzbHV0YSBmdWxsc2tceEU0cm0iLHJlbG9hZDoiTGFkZGEgb20iLGRlbnNpdHk6IlRceEU0dGhldCIsZGVuc2l0eURlZmF1bHQ6Ik5vcm1hbCIsZGVuc2l0eUxhcmdlcjoiTFx4RjZzIixkZW5zaXR5TWlkZGxlOiJNZWRpdW0iLGRlbnNpdHlTbWFsbDoiS29tcGFrdCJ9LHN0ZXBzRm9ybTp7bmV4dDoiTlx4RTRzdGEgc3RlZyIscHJldjoiRlx4RjZyZWdceEU1ZW5kZSBzdGVnIixzdWJtaXQ6IlNraWNrYSJ9LGxvZ2luRm9ybTp7c3VibWl0VGV4dDoiTG9nZ2EgaW4ifSxlZGl0YWJsZVRhYmxlOntvbmx5T25lTGluZUVkaXRvcjoiRW5kYXN0IGVuIHJhZCBrYW4gcmVkaWdlcmFzIFx4RTV0IGdceEU1bmdlbiIsYWN0aW9uOntzYXZlOiJTcGFyYSIsY2FuY2VsOiJBdmJyeXQiLGRlbGV0ZToiUmFkZXJhIixhZGQ6IkxceEU0Z2cgdGlsbCBlbiByYWQifX0sc3dpdGNoOntvcGVuOiJceEQ2cHBuYSIsY2xvc2U6IlN0XHhFNG5nIn19LEo9e21vbmV5U3ltYm9sOiJcdTBFM0YiLGRlbGV0ZVRoaXNMaW5lOiJcdTBFMjVcdTBFMUFcdTBFMUFcdTBFMjNcdTBFMjNcdTBFMTdcdTBFMzFcdTBFMTRcdTBFMTlcdTBFMzVcdTBFNDkiLGNvcHlUaGlzTGluZToiXHUwRTA0XHUwRTMxXHUwRTE0XHUwRTI1XHUwRTJEXHUwRTAxXHUwRTFBXHUwRTIzXHUwRTIzXHUwRTE3XHUwRTMxXHUwRTE0XHUwRTE5XHUwRTM1XHUwRTQ5Iixmb3JtOntsaWdodEZpbHRlcjp7bW9yZToiXHUwRTIxXHUwRTMyXHUwRTAxXHUwRTAxXHUwRTI3XHUwRTQ4XHUwRTMyIixjbGVhcjoiXHUwRTBBXHUwRTMxXHUwRTE0XHUwRTQwXHUwRTA4XHUwRTE5Iixjb25maXJtOiJcdTBFMjJcdTBFMzdcdTBFMTlcdTBFMjJcdTBFMzFcdTBFMTkiLGl0ZW1Vbml0OiJcdTBFMjNcdTBFMzJcdTBFMjJcdTBFMDFcdTBFMzJcdTBFMjMifX0sdGFibGVGb3JtOntzZWFyY2g6Ilx1MEUyQVx1MEUyRFx1MEUxQVx1MEUxNlx1MEUzMlx1MEUyMSIscmVzZXQ6Ilx1MEUyM1x1MEUzNVx1MEU0MFx1MEUwQlx1MEU0N1x1MEUxNSIsc3VibWl0OiJcdTBFMkFcdTBFNDhcdTBFMDciLGNvbGxhcHNlZDoiXHUwRTAyXHUwRTIyXHUwRTMyXHUwRTIyIixleHBhbmQ6Ilx1MEUxN1x1MEUyM1x1MEUzOFx1MEUxNCIsaW5wdXRQbGFjZWhvbGRlcjoiXHUwRTAxXHUwRTIzXHUwRTM4XHUwRTEzXHUwRTMyXHUwRTFCXHUwRTQ5XHUwRTJEXHUwRTE5IixzZWxlY3RQbGFjZWhvbGRlcjoiXHUwRTQyXHUwRTFCXHUwRTIzXHUwRTE0XHUwRTQwXHUwRTI1XHUwRTM3XHUwRTJEXHUwRTAxIn0sYWxlcnQ6e2NsZWFyOiJcdTBFMEFcdTBFMzFcdTBFMTRcdTBFNDBcdTBFMDhcdTBFMTkiLHNlbGVjdGVkOiJcdTBFNDBcdTBFMjVcdTBFMzdcdTBFMkRcdTBFMDFcdTBFNDFcdTBFMjVcdTBFNDlcdTBFMjciLGl0ZW06Ilx1MEUyM1x1MEUzMlx1MEUyMlx1MEUwMVx1MEUzMlx1MEUyMyJ9LHBhZ2luYXRpb246e3RvdGFsOntyYW5nZToiICIsdG90YWw6Ilx1MEUwMlx1MEUyRFx1MEUwNyIsaXRlbToiXHUwRTIzXHUwRTMyXHUwRTIyXHUwRTAxXHUwRTMyXHUwRTIzIn19LHRhYmxlVG9vbEJhcjp7bGVmdFBpbjoiXHUwRTFCXHUwRTMxXHUwRTAxXHUwRTJCXHUwRTIxXHUwRTM4XHUwRTE0XHUwRTQ0XHUwRTFCXHUwRTE3XHUwRTMyXHUwRTA3XHUwRTBCXHUwRTQ5XHUwRTMyXHUwRTIyIixyaWdodFBpbjoiXHUwRTFCXHUwRTMxXHUwRTAxXHUwRTJCXHUwRTIxXHUwRTM4XHUwRTE0XHUwRTQ0XHUwRTFCXHUwRTE3XHUwRTMyXHUwRTA3XHUwRTAyXHUwRTI3XHUwRTMyIixub1BpbjoiXHUwRTQwXHUwRTI1XHUwRTM0XHUwRTAxXHUwRTE1XHUwRTIzXHUwRTM2XHUwRTA3XHUwRTQxXHUwRTI1XHUwRTQ5XHUwRTI3IixsZWZ0Rml4ZWRUaXRsZToiXHUwRTQxXHUwRTAxXHUwRTQ5XHUwRTQ0XHUwRTAyXHUwRTE0XHUwRTQ5XHUwRTMyXHUwRTE5XHUwRTBCXHUwRTQ5XHUwRTMyXHUwRTIyIixyaWdodEZpeGVkVGl0bGU6Ilx1MEU0MVx1MEUwMVx1MEU0OVx1MEU0NFx1MEUwMlx1MEUxNFx1MEU0OVx1MEUzMlx1MEUxOVx1MEUwMlx1MEUyN1x1MEUzMiIsbm9GaXhlZFRpdGxlOiJcdTBFNDRcdTBFMjFcdTBFNDhcdTBFMDRcdTBFMDdcdTBFMTdcdTBFMzVcdTBFNDgiLHJlc2V0OiJcdTBFMjNcdTBFMzVcdTBFNDBcdTBFMEJcdTBFNDdcdTBFMTUiLGNvbHVtbkRpc3BsYXk6Ilx1MEUwMVx1MEUzMlx1MEUyM1x1MEU0MVx1MEUyQVx1MEUxNFx1MEUwN1x1MEUwNFx1MEUyRFx1MEUyNVx1MEUzMVx1MEUyMVx1MEUxOVx1MEU0QyIsY29sdW1uU2V0dGluZzoiXHUwRTAxXHUwRTMyXHUwRTIzXHUwRTE1XHUwRTMxXHUwRTQ5XHUwRTA3XHUwRTA0XHUwRTQ4XHUwRTMyIixmdWxsU2NyZWVuOiJcdTBFNDBcdTBFMTVcdTBFNDdcdTBFMjFcdTBFMDhcdTBFMkQiLGV4aXRGdWxsU2NyZWVuOiJcdTBFMkRcdTBFMkRcdTBFMDFcdTBFMDhcdTBFMzJcdTBFMDFcdTBFNDJcdTBFMkJcdTBFMjFcdTBFMTRcdTBFNDBcdTBFMTVcdTBFNDdcdTBFMjFcdTBFMkJcdTBFMTlcdTBFNDlcdTBFMzJcdTBFMDhcdTBFMkQiLHJlbG9hZDoiXHUwRTIzXHUwRTM1XHUwRTQwXHUwRTFGXHUwRTIzXHUwRTBBIixkZW5zaXR5OiJcdTBFMDRcdTBFMjdcdTBFMzJcdTBFMjFcdTBFMkJcdTBFMTlcdTBFMzJcdTBFNDFcdTBFMTlcdTBFNDhcdTBFMTkiLGRlbnNpdHlEZWZhdWx0OiJcdTBFMDRcdTBFNDhcdTBFMzJcdTBFNDBcdTBFMjNcdTBFMzRcdTBFNDhcdTBFMjFcdTBFMTVcdTBFNDlcdTBFMTkiLGRlbnNpdHlMYXJnZXI6Ilx1MEUwMlx1MEUxOVx1MEUzMlx1MEUxNFx1MEU0M1x1MEUyQlx1MEUwRFx1MEU0OFx1MEUwMlx1MEUzNlx1MEU0OVx1MEUxOSIsZGVuc2l0eU1pZGRsZToiXHUwRTAxXHUwRTI1XHUwRTMyXHUwRTA3IixkZW5zaXR5U21hbGw6Ilx1MEUwMVx1MEUzMFx1MEUxN1x1MEUzMVx1MEUxNFx1MEUyM1x1MEUzMVx1MEUxNCJ9LHN0ZXBzRm9ybTp7bmV4dDoiXHUwRTE2XHUwRTMxXHUwRTE0XHUwRTQ0XHUwRTFCIixwcmV2OiJcdTBFMDFcdTBFNDhcdTBFMkRcdTBFMTlcdTBFMkJcdTBFMTlcdTBFNDlcdTBFMzIiLHN1Ym1pdDoiXHUwRTQwXHUwRTJBXHUwRTIzXHUwRTQ3XHUwRTA4In0sbG9naW5Gb3JtOntzdWJtaXRUZXh0OiJcdTBFNDBcdTBFMDJcdTBFNDlcdTBFMzJcdTBFMkFcdTBFMzlcdTBFNDhcdTBFMjNcdTBFMzBcdTBFMUFcdTBFMUEifSxlZGl0YWJsZVRhYmxlOntvbmx5T25lTGluZUVkaXRvcjoiXHUwRTQxXHUwRTAxXHUwRTQ5XHUwRTQ0XHUwRTAyXHUwRTQ0XHUwRTE0XHUwRTQ5XHUwRTQwXHUwRTFFXHUwRTM1XHUwRTIyXHUwRTA3XHUwRTFBXHUwRTIzXHUwRTIzXHUwRTE3XHUwRTMxXHUwRTE0XHUwRTQwXHUwRTE0XHUwRTM1XHUwRTIyXHUwRTI3XHUwRTQwXHUwRTE3XHUwRTQ4XHUwRTMyXHUwRTE5XHUwRTMxXHUwRTQ5XHUwRTE5IixhY3Rpb246e3NhdmU6Ilx1MEUxQVx1MEUzMVx1MEUxOVx1MEUxN1x1MEUzNlx1MEUwMSIsY2FuY2VsOiJcdTBFMjJcdTBFMDFcdTBFNDBcdTBFMjVcdTBFMzRcdTBFMDEiLGRlbGV0ZToiXHUwRTI1XHUwRTFBIixhZGQ6Ilx1MEU0MFx1MEUxRVx1MEUzNFx1MEU0OFx1MEUyMVx1MEU0MVx1MEUxNlx1MEUyN1x1MEUwMlx1MEUyRFx1MEUwN1x1MEUwMlx1MEU0OVx1MEUyRFx1MEUyMVx1MEUzOVx1MEUyNSJ9fSxzd2l0Y2g6e29wZW46Ilx1MEU0MFx1MEUxQlx1MEUzNFx1MEUxNCIsY2xvc2U6Ilx1MEUxQlx1MEUzNFx1MEUxNCJ9fSxtZT17bW9uZXlTeW1ib2w6Ilx1MjBCQSIsZm9ybTp7bGlnaHRGaWx0ZXI6e21vcmU6IkRhaGEgRmF6bGEiLGNsZWFyOiJUZW1pemxlIixjb25maXJtOiJPbmF5bGEiLGl0ZW1Vbml0OiJceEQ2XHUwMTFGZWxlciJ9fSx0YWJsZUZvcm06e3NlYXJjaDoiRmlsdHJlbGUiLHJlc2V0OiJTXHUwMTMxZlx1MDEzMXJsYSIsc3VibWl0OiJHXHhGNm5kZXIiLGNvbGxhcHNlZDoiRGFoYSBmYXpsYSIsZXhwYW5kOiJEYWhhIGF6IixpbnB1dFBsYWNlaG9sZGVyOiJGaWx0cmVsZW1layBpXHhFN2luIGJpciBkZVx1MDExRmVyIGdpcmluIixzZWxlY3RQbGFjZWhvbGRlcjoiRmlsdHJlbGVtZWsgaVx4RTdpbiBiaXIgZGVcdTAxMUZlciBzZVx4RTdpbiJ9LGFsZXJ0OntjbGVhcjoiVGVtaXpsZSIsc2VsZWN0ZWQ6IlNlXHhFN2lsaSIsaXRlbToiXHhENlx1MDExRmUifSxwYWdpbmF0aW9uOnt0b3RhbDp7cmFuZ2U6IiAiLHRvdGFsOiJUb3BsYW0iLGl0ZW06Ilx4RDZcdTAxMUZlIn19LHRhYmxlVG9vbEJhcjp7bGVmdFBpbjoiU29sYSBzYWJpdGxlIixyaWdodFBpbjoiU2FcdTAxMUZhIHNhYml0bGUiLG5vUGluOiJTYWJpdGxlbWV5aSBrYWxkXHUwMTMxciIsbGVmdEZpeGVkVGl0bGU6IlNvbGEgc2FiaXRsZW5kaSIscmlnaHRGaXhlZFRpdGxlOiJTYVx1MDExRmEgc2FiaXRsZW5kaSIsbm9GaXhlZFRpdGxlOiJTYWJpdGxlbm1lZGkiLHJlc2V0OiJTXHUwMTMxZlx1MDEzMXJsYSIsY29sdW1uRGlzcGxheToiS29sb24gR1x4RjZyXHhGQ25ceEZDbVx4RkMiLGNvbHVtblNldHRpbmc6IkF5YXJsYXIiLGZ1bGxTY3JlZW46IlRhbSBFa3JhbiIsZXhpdEZ1bGxTY3JlZW46IlRhbSBFa3JhbmRhbiBceEM3XHUwMTMxayIscmVsb2FkOiJZZW5pbGUiLGRlbnNpdHk6IkthbFx1MDEzMW5sXHUwMTMxayIsZGVuc2l0eURlZmF1bHQ6IlZhcnNheVx1MDEzMWxhbiIsZGVuc2l0eUxhcmdlcjoiQlx4RkN5XHhGQ2siLGRlbnNpdHlNaWRkbGU6Ik9ydGEiLGRlbnNpdHlTbWFsbDoiS1x4RkNceEU3XHhGQ2sifSxzdGVwc0Zvcm06e25leHQ6IlNcdTAxMzFyYWRha2kiLHByZXY6Ilx4RDZuY2VraSIsc3VibWl0OiJHXHhGNm5kZXIifSxsb2dpbkZvcm06e3N1Ym1pdFRleHQ6IkdpcmlcdTAxNUYgWWFwIn0sZWRpdGFibGVUYWJsZTp7YWN0aW9uOntzYXZlOiJLYXlkZXQiLGNhbmNlbDoiVmF6Z2VceEU3IixkZWxldGU6IlNpbCIsYWRkOiJmb2VnamUgaW4gcmlnZSBnZWdldmVucyB0YSJ9fSxzd2l0Y2g6e29wZW46ImFceEU3XHUwMTMxayIsY2xvc2U6ImthcGF0bWFrIn19LHRlPXttb25leVN5bWJvbDoiXHUyMEI0IixkZWxldGVUaGlzTGluZToiXHUwNDEyXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDQyXHUwNDM4XHUwNDNCXHUwNDM4IFx1MDQ0MFx1MDQ0Rlx1MDQzNFx1MDQzRVx1MDQzQSIsY29weVRoaXNMaW5lOiJcdTA0MjFcdTA0M0FcdTA0M0VcdTA0M0ZcdTA0NTZcdTA0NEVcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzggXHUwNDQwXHUwNDRGXHUwNDM0XHUwNDNFXHUwNDNBIixmb3JtOntsaWdodEZpbHRlcjp7bW9yZToiXHUwNDI5XHUwNDM1IixjbGVhcjoiXHUwNDFFXHUwNDQ3XHUwNDM4XHUwNDQxXHUwNDQyXHUwNDM4XHUwNDQyXHUwNDM4Iixjb25maXJtOiJcdTA0MUVcdTA0M0EiLGl0ZW1Vbml0OiJcdTA0MUZcdTA0M0VcdTA0MzdcdTA0MzhcdTA0NDZcdTA0NTZcdTA0NTcifX0sdGFibGVGb3JtOntzZWFyY2g6Ilx1MDQxRlx1MDQzRVx1MDQ0OFx1MDQ0M1x1MDQzQSIscmVzZXQ6Ilx1MDQxRVx1MDQ0N1x1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQ0Mlx1MDQzOCIsc3VibWl0OiJcdTA0MTJcdTA0NTZcdTA0MzRcdTA0M0ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0NDJcdTA0MzgiLGNvbGxhcHNlZDoiXHUwNDIwXHUwNDNFXHUwNDM3XHUwNDMzXHUwNDNFXHUwNDQwXHUwNDNEXHUwNDQzXHUwNDQyXHUwNDM4IixleHBhbmQ6Ilx1MDQxN1x1MDQzM1x1MDQzRVx1MDQ0MFx1MDQzRFx1MDQ0M1x1MDQ0Mlx1MDQzOCIsaW5wdXRQbGFjZWhvbGRlcjoiXHUwNDEyXHUwNDMyXHUwNDM1XHUwNDM0XHUwNDU2XHUwNDQyXHUwNDRDIFx1MDQzN1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzRFx1MDQ0RiIsc2VsZWN0UGxhY2Vob2xkZXI6Ilx1MDQxRVx1MDQzMVx1MDQzNVx1MDQ0MFx1MDQ1Nlx1MDQ0Mlx1MDQ0QyBcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0M0RcdTA0NEYifSxhbGVydDp7Y2xlYXI6Ilx1MDQxRVx1MDQ0N1x1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQ0Mlx1MDQzOCIsc2VsZWN0ZWQ6Ilx1MDQxRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzRFx1MDQzRSIsaXRlbToiXHUwNDM1XHUwNDNCXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDU2XHUwNDMyIn0scGFnaW5hdGlvbjp7dG90YWw6e3JhbmdlOiIgIix0b3RhbDoiXHUwNDM3IixpdGVtOiJcdTA0MzVcdTA0M0JcdTA0MzVcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0NTZcdTA0MzIifX0sdGFibGVUb29sQmFyOntsZWZ0UGluOiJcdTA0MTdcdTA0MzBcdTA0M0FcdTA0NDBcdTA0NTZcdTA0M0ZcdTA0MzhcdTA0NDJcdTA0MzggXHUwNDM3XHUwNDNCXHUwNDU2XHUwNDMyXHUwNDMwIixyaWdodFBpbjoiXHUwNDE3XHUwNDMwXHUwNDNBXHUwNDQwXHUwNDU2XHUwNDNGXHUwNDM4XHUwNDQyXHUwNDM4IFx1MDQ0MVx1MDQzRlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzMCIsbm9QaW46Ilx1MDQxMlx1MDQ1Nlx1MDQzNFx1MDQzQVx1MDQ0MFx1MDQ1Nlx1MDQzRlx1MDQzOFx1MDQ0Mlx1MDQzOCIsbGVmdEZpeGVkVGl0bGU6Ilx1MDQxN1x1MDQzMFx1MDQzQVx1MDQ0MFx1MDQ1Nlx1MDQzRlx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzRSBcdTA0MzdcdTA0M0JcdTA0NTZcdTA0MzJcdTA0MzAiLHJpZ2h0Rml4ZWRUaXRsZToiXHUwNDE3XHUwNDMwXHUwNDNBXHUwNDQwXHUwNDU2XHUwNDNGXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDNFIFx1MDQ0MVx1MDQzRlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzMCIsbm9GaXhlZFRpdGxlOiJcdTA0MURcdTA0MzUgXHUwNDM3XHUwNDMwXHUwNDNBXHUwNDQwXHUwNDU2XHUwNDNGXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDNFIixyZXNldDoiXHUwNDIxXHUwNDNBXHUwNDM4XHUwNDNEXHUwNDQzXHUwNDQyXHUwNDM4Iixjb2x1bW5EaXNwbGF5OiJcdTA0MTJcdTA0NTZcdTA0MzRcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzZcdTA0MzVcdTA0M0RcdTA0M0RcdTA0NEYgXHUwNDQxXHUwNDQyXHUwNDNFXHUwNDMyXHUwNDNGXHUwNDQ2XHUwNDU2XHUwNDMyIixjb2x1bW5TZXR0aW5nOiJcdTA0MURcdTA0MzBcdTA0M0JcdTA0MzBcdTA0NDhcdTA0NDJcdTA0NDNcdTA0MzJcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEYiLGZ1bGxTY3JlZW46Ilx1MDQxRlx1MDQzRVx1MDQzMlx1MDQzRFx1MDQzRVx1MDQzNVx1MDQzQVx1MDQ0MFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQzOFx1MDQzOSBcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0MiLGV4aXRGdWxsU2NyZWVuOiJcdTA0MTJcdTA0MzhcdTA0MzlcdTA0NDJcdTA0MzggXHUwNDM3IFx1MDQzRlx1MDQzRVx1MDQzMlx1MDQzRFx1MDQzRVx1MDQzNVx1MDQzQVx1MDQ0MFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQzRVx1MDQzM1x1MDQzRSBcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0NDMiLHJlbG9hZDoiXHUwNDFFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDM4IixkZW5zaXR5OiJcdTA0MjBcdTA0M0VcdTA0MzdcdTA0M0NcdTA0NTZcdTA0NDAiLGRlbnNpdHlEZWZhdWx0OiJcdTA0MTdcdTA0MzAgXHUwNDM3XHUwNDMwXHUwNDNDXHUwNDNFXHUwNDMyXHUwNDQ3XHUwNDQzXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRGXHUwNDNDIixkZW5zaXR5TGFyZ2VyOiJcdTA0MTJcdTA0MzVcdTA0M0JcdTA0MzhcdTA0M0FcdTA0MzhcdTA0MzkiLGRlbnNpdHlNaWRkbGU6Ilx1MDQyMVx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQzRFx1MDQ1Nlx1MDQzOSIsZGVuc2l0eVNtYWxsOiJcdTA0MjFcdTA0NDJcdTA0MzhcdTA0NDFcdTA0M0JcdTA0MzhcdTA0MzkifSxzdGVwc0Zvcm06e25leHQ6Ilx1MDQxRFx1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQzRlx1MDQzRFx1MDQzOFx1MDQzOSIscHJldjoiXHUwNDFGXHUwNDNFXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDM0XHUwNDNEXHUwNDU2XHUwNDM5IixzdWJtaXQ6Ilx1MDQxN1x1MDQzMFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQ0OFx1MDQzOFx1MDQ0Mlx1MDQzOCJ9LGxvZ2luRm9ybTp7c3VibWl0VGV4dDoiXHUwNDEyXHUwNDQ1XHUwNDU2XHUwNDQ1In0sZWRpdGFibGVUYWJsZTp7b25seU9uZUxpbmVFZGl0b3I6Ilx1MDQyMlx1MDQ1Nlx1MDQzQlx1MDQ0Q1x1MDQzQVx1MDQzOCBcdTA0M0VcdTA0MzRcdTA0MzhcdTA0M0QgXHUwNDQwXHUwNDRGXHUwNDM0XHUwNDNFXHUwNDNBIFx1MDQzQ1x1MDQzRVx1MDQzNlx1MDQzNSBcdTA0MzFcdTA0NDNcdTA0NDJcdTA0MzggXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDMwXHUwNDMzXHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM5IFx1MDQzRVx1MDQzNFx1MDQzRFx1MDQzRVx1MDQ0N1x1MDQzMFx1MDQ0MVx1MDQzRFx1MDQzRSIsYWN0aW9uOntzYXZlOiJcdTA0MTdcdTA0MzFcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzNcdTA0NDJcdTA0MzgiLGNhbmNlbDoiXHUwNDEyXHUwNDU2XHUwNDM0XHUwNDNDXHUwNDU2XHUwNDNEXHUwNDM4XHUwNDQyXHUwNDM4IixkZWxldGU6Ilx1MDQxMlx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzQlx1MDQzOFx1MDQ0Mlx1MDQzOCIsYWRkOiJcdTA0MzRcdTA0M0VcdTA0MzRcdTA0MzBcdTA0NDJcdTA0MzggXHUwNDQwXHUwNDRGXHUwNDM0XHUwNDNFXHUwNDNBIn19LHN3aXRjaDp7b3BlbjoiXHUwNDEyXHUwNDU2XHUwNDM0XHUwNDNBXHUwNDQwXHUwNDM4XHUwNDQyXHUwNDNFIixjbG9zZToiXHUwNDE3XHUwNDMwXHUwNDNBXHUwNDQwXHUwNDM4XHUwNDQyXHUwNDNFIn19LGxlPXttb25leVN5bWJvbDoiVVpTIixmb3JtOntsaWdodEZpbHRlcjp7bW9yZToiWWFuYSIsY2xlYXI6IlRvemFsYXNoIixjb25maXJtOiJPSyIsaXRlbVVuaXQ6IlBveml0c2l5YWxhciJ9fSx0YWJsZUZvcm06e3NlYXJjaDoiUWlkaXJpc2giLHJlc2V0OiJRYXl0YSB0aWtsYXNoIixzdWJtaXQ6Ill1Ym9yaXNoIixjb2xsYXBzZWQ6IllpZ1x1MjAxOGlzaCIsZXhwYW5kOiJLZW5nYXl0aXJpc2giLGlucHV0UGxhY2Vob2xkZXI6IlFpeW1hdG5pIGtpcml0aW5nIixzZWxlY3RQbGFjZWhvbGRlcjoiUWl5bWF0bmkgdGFubGFuZyJ9LGFsZXJ0OntjbGVhcjoiVG96YWxhc2giLHNlbGVjdGVkOiJUYW5sYW5nYW4iLGl0ZW06ImVsZW1lbnRsYXIifSxwYWdpbmF0aW9uOnt0b3RhbDp7cmFuZ2U6IiAiLHRvdGFsOiJkYW4iLGl0ZW06ImVsZW1lbnRsYXIifX0sdGFibGVUb29sQmFyOntsZWZ0UGluOiJDaGFwZ2EgbWFoa2FtbGFzaCIscmlnaHRQaW46Ik9cdTIwMThuZ2dhIG1haGthbWxhc2giLG5vUGluOiJNYWhrYW1sYXNobmkgb2xpYiB0YXNobGFzaCIsbGVmdEZpeGVkVGl0bGU6IkNoYXBnYSBtYWhrYW1sYW5nYW4iLHJpZ2h0Rml4ZWRUaXRsZToiT1x1MjAxOG5nZ2EgbWFoa2FtbGFuZ2FuIixub0ZpeGVkVGl0bGU6Ik1haGthbWxhc2hzaXoiLHJlc2V0OiJRYXl0YSB0aWtsYXNoIixjb2x1bW5EaXNwbGF5OiJVc3R1bm5pIGtvXHUyMDE4cnNhdGlzaCIsY29sdW1uU2V0dGluZzoiU296bGFtYWxhciIsZnVsbFNjcmVlbjoiVG9cdTIwMThsaXEgZWtyYW4iLGV4aXRGdWxsU2NyZWVuOiJUb1x1MjAxOGxpcSBla3JhbmRhbiBjaGlxaXNoIixyZWxvYWQ6IllhbmdpbGFzaCIsZGVuc2l0eToiT1x1MjAxOGxjaGFtIixkZW5zaXR5RGVmYXVsdDoiU3RhbmRhcnQiLGRlbnNpdHlMYXJnZXI6IkthdHRhIixkZW5zaXR5TWlkZGxlOiJPXHUyMDE4cnRhY2hhIixkZW5zaXR5U21hbGw6IktpY2hpayJ9LHN0ZXBzRm9ybTp7bmV4dDoiS2V5aW5naSIscHJldjoiT2xkaW5naSIsc3VibWl0OiJUdWdhdGlzaCJ9LGxvZ2luRm9ybTp7c3VibWl0VGV4dDoiS2lyaXNoIn0sZWRpdGFibGVUYWJsZTp7YWN0aW9uOntzYXZlOiJTYXFsYXNoIixjYW5jZWw6IkJla29yIHFpbGlzaCIsZGVsZXRlOiJPXHUyMDE4Y2hpcmlzaCIsYWRkOiJtYVx1MDJCQ2x1bW90bGFyIHFhdG9yaW5pIHFvXHUyMDE4c2hpc2gifX0sc3dpdGNoOntvcGVuOiJPY2hpc2giLGNsb3NlOiJZb3Bpc2gifX0sY2U9e21vbmV5U3ltYm9sOiJcdTIwQUIiLGZvcm06e2xpZ2h0RmlsdGVyOnttb3JlOiJOaGlcdTFFQzF1IGhcdTAxQTFuIixjbGVhcjoiVHJvbmciLGNvbmZpcm06IlhceEUxYyBuaFx1MUVBRG4iLGl0ZW1Vbml0OiJNXHUxRUU1YyJ9fSx0YWJsZUZvcm06e3NlYXJjaDoiVFx4RUNtIGtpXHUxRUJGbSIscmVzZXQ6IkxceEUwbSBsXHUxRUExaSIsc3VibWl0OiJHXHUxRUVEaSBcdTAxMTFpIixjb2xsYXBzZWQ6Ik1cdTFFREYgclx1MUVEOW5nIixleHBhbmQ6IlRodSBnXHUxRUNEbiIsaW5wdXRQbGFjZWhvbGRlcjoibmhcdTFFQURwIGRcdTFFRUYgbGlcdTFFQzd1IixzZWxlY3RQbGFjZWhvbGRlcjoiVnVpIGxceEYybmcgY2hcdTFFQ0RuIn0sYWxlcnQ6e2NsZWFyOiJYXHhGM2EiLHNlbGVjdGVkOiJcdTAxMTFceEUzIGNoXHUxRUNEbiIsaXRlbToibVx1MUVFNWMifSxwYWdpbmF0aW9uOnt0b3RhbDp7cmFuZ2U6IiAiLHRvdGFsOiJ0clx4RUFuIixpdGVtOiJtXHUxRUI3dCBoXHhFMG5nIn19LHRhYmxlVG9vbEJhcjp7bGVmdFBpbjoiR2hpbSB0clx4RTFpIixyaWdodFBpbjoiR2hpbSBwaFx1MUVBM2kiLG5vUGluOiJCXHUxRUNGIGdoaW0iLGxlZnRGaXhlZFRpdGxlOiJDXHUxRUQxIFx1MDExMVx1MUVDQm5oIHRyXHhFMWkiLHJpZ2h0Rml4ZWRUaXRsZToiQ1x1MUVEMSBcdTAxMTFcdTFFQ0JuaCBwaFx1MUVBM2kiLG5vRml4ZWRUaXRsZToiQ2hcdTAxQjBhIGNcdTFFRDEgXHUwMTExXHUxRUNCbmgiLHJlc2V0OiJMXHhFMG0gbFx1MUVBMWkiLGNvbHVtbkRpc3BsYXk6IkNcdTFFRDl0IGhpXHUxRUMzbiB0aFx1MUVDQiIsY29sdW1uU2V0dGluZzoiQ1x1MUVBNXUgaFx4RUNuaCIsZnVsbFNjcmVlbjoiQ2hcdTFFQkYgXHUwMTExXHUxRUQ5IHRvXHhFMG4gbVx4RTBuIGhceEVDbmgiLGV4aXRGdWxsU2NyZWVuOiJUaG9ceEUxdCBjaFx1MUVCRiBcdTAxMTFcdTFFRDkgdG9ceEUwbiBtXHhFMG4gaFx4RUNuaCIscmVsb2FkOiJMXHhFMG0gbVx1MUVEQmkiLGRlbnNpdHk6Ik1cdTFFQUR0IFx1MDExMVx1MUVEOSBoaVx1MUVDM24gdGhcdTFFQ0IiLGRlbnNpdHlEZWZhdWx0OiJNXHUxRUI3YyBcdTAxMTFcdTFFQ0JuaCIsZGVuc2l0eUxhcmdlcjoiTVx1MUVCN2MgXHUwMTExXHUxRUNCbmgiLGRlbnNpdHlNaWRkbGU6IlRydW5nIGJceEVDbmgiLGRlbnNpdHlTbWFsbDoiQ2hcdTFFQUR0In0sc3RlcHNGb3JtOntuZXh0OiJTYXUiLHByZXY6IlRyXHUwMUIwXHUxRURCYyIsc3VibWl0OiJLXHUxRUJGdCB0aFx4RkFjIn0sbG9naW5Gb3JtOntzdWJtaXRUZXh0OiJcdTAxMTBcdTAxMDNuZyBuaFx1MUVBRHAifSxlZGl0YWJsZVRhYmxlOnthY3Rpb246e3NhdmU6IkNcdTFFRTl1IixjYW5jZWw6IkhcdTFFRTd5IixkZWxldGU6IlhceEYzYSIsYWRkOiJ0aFx4RUFtIG1cdTFFRDl0IGhceEUwbmcgZFx1MUVFRiBsaVx1MUVDN3UifX0sc3dpdGNoOntvcGVuOiJtXHUxRURGIixjbG9zZToiXHUwMTExXHhGM25nIn19LFc9e21vbmV5U3ltYm9sOiJceEE1IixkZWxldGVUaGlzTGluZToiXHU1MjIwXHU5NjY0XHU2QjY0XHU5ODc5Iixjb3B5VGhpc0xpbmU6Ilx1NTkwRFx1NTIzNlx1NkI2NFx1OTg3OSIsZm9ybTp7bGlnaHRGaWx0ZXI6e21vcmU6Ilx1NjZGNFx1NTkxQVx1N0I1Qlx1OTAwOSIsY2xlYXI6Ilx1NkUwNVx1OTY2NCIsY29uZmlybToiXHU3ODZFXHU4QkE0IixpdGVtVW5pdDoiXHU5ODc5In19LHRhYmxlRm9ybTp7c2VhcmNoOiJcdTY3RTVcdThCRTIiLHJlc2V0OiJcdTkxQ0RcdTdGNkUiLHN1Ym1pdDoiXHU2M0QwXHU0RUE0Iixjb2xsYXBzZWQ6Ilx1NUM1NVx1NUYwMCIsZXhwYW5kOiJcdTY1MzZcdThENzciLGlucHV0UGxhY2Vob2xkZXI6Ilx1OEJGN1x1OEY5M1x1NTE2NSIsc2VsZWN0UGxhY2Vob2xkZXI6Ilx1OEJGN1x1OTAwOVx1NjJFOSJ9LGFsZXJ0OntjbGVhcjoiXHU1M0Q2XHU2RDg4XHU5MDA5XHU2MkU5IixzZWxlY3RlZDoiXHU1REYyXHU5MDA5XHU2MkU5IixpdGVtOiJcdTk4NzkifSxwYWdpbmF0aW9uOnt0b3RhbDp7cmFuZ2U6Ilx1N0IyQyIsdG90YWw6Ilx1Njc2MS9cdTYwM0JcdTUxNzEiLGl0ZW06Ilx1Njc2MSJ9fSx0YWJsZVRvb2xCYXI6e2xlZnRQaW46Ilx1NTZGQVx1NUI5QVx1NTcyOFx1NTIxN1x1OTk5NiIscmlnaHRQaW46Ilx1NTZGQVx1NUI5QVx1NTcyOFx1NTIxN1x1NUMzRSIsbm9QaW46Ilx1NEUwRFx1NTZGQVx1NUI5QSIsbGVmdEZpeGVkVGl0bGU6Ilx1NTZGQVx1NUI5QVx1NTcyOFx1NURFNlx1NEZBNyIscmlnaHRGaXhlZFRpdGxlOiJcdTU2RkFcdTVCOUFcdTU3MjhcdTUzRjNcdTRGQTciLG5vRml4ZWRUaXRsZToiXHU0RTBEXHU1NkZBXHU1QjlBIixyZXNldDoiXHU5MUNEXHU3RjZFIixjb2x1bW5EaXNwbGF5OiJcdTUyMTdcdTVDNTVcdTc5M0EiLGNvbHVtblNldHRpbmc6Ilx1NTIxN1x1OEJCRVx1N0Y2RSIsZnVsbFNjcmVlbjoiXHU1MTY4XHU1QzRGIixleGl0RnVsbFNjcmVlbjoiXHU5MDAwXHU1MUZBXHU1MTY4XHU1QzRGIixyZWxvYWQ6Ilx1NTIzN1x1NjVCMCIsZGVuc2l0eToiXHU1QkM2XHU1RUE2IixkZW5zaXR5RGVmYXVsdDoiXHU2QjYzXHU1RTM4IixkZW5zaXR5TGFyZ2VyOiJcdTVCQkRcdTY3N0UiLGRlbnNpdHlNaWRkbGU6Ilx1NEUyRFx1N0I0OSIsZGVuc2l0eVNtYWxsOiJcdTdEMjdcdTUxRDEifSxzdGVwc0Zvcm06e25leHQ6Ilx1NEUwQlx1NEUwMFx1NkI2NSIscHJldjoiXHU0RTBBXHU0RTAwXHU2QjY1IixzdWJtaXQ6Ilx1NjNEMFx1NEVBNCJ9LGxvZ2luRm9ybTp7c3VibWl0VGV4dDoiXHU3NjdCXHU1RjU1In0sZWRpdGFibGVUYWJsZTp7b25seU9uZUxpbmVFZGl0b3I6Ilx1NTNFQVx1ODBGRFx1NTQwQ1x1NjVGNlx1N0YxNlx1OEY5MVx1NEUwMFx1ODg0QyIsYWN0aW9uOntzYXZlOiJcdTRGRERcdTVCNTgiLGNhbmNlbDoiXHU1M0Q2XHU2RDg4IixkZWxldGU6Ilx1NTIyMFx1OTY2NCIsYWRkOiJcdTZERkJcdTUyQTBcdTRFMDBcdTg4NENcdTY1NzBcdTYzNkUifX0sc3dpdGNoOntvcGVuOiJcdTYyNTNcdTVGMDAiLGNsb3NlOiJcdTUxNzNcdTk1RUQifX0saj17bW9uZXlTeW1ib2w6Ik5UJCIsZGVsZXRlVGhpc0xpbmU6Ilx1NTIyQVx1OTY2NFx1NkI2NFx1OTg3OSIsY29weVRoaXNMaW5lOiJcdTg5MDdcdTg4RkRcdTZCNjRcdTk4NzkiLGZvcm06e2xpZ2h0RmlsdGVyOnttb3JlOiJcdTY2RjRcdTU5MUFcdTdCRTlcdTkwNzgiLGNsZWFyOiJcdTZFMDVcdTk2NjQiLGNvbmZpcm06Ilx1NzhCQVx1OEE4RCIsaXRlbVVuaXQ6Ilx1OTgwNSJ9fSx0YWJsZUZvcm06e3NlYXJjaDoiXHU2N0U1XHU4QTYyIixyZXNldDoiXHU5MUNEXHU3RjZFIixzdWJtaXQ6Ilx1NjNEMFx1NEVBNCIsY29sbGFwc2VkOiJcdTVDNTVcdTk1OEIiLGV4cGFuZDoiXHU2NTM2XHU4RDc3IixpbnB1dFBsYWNlaG9sZGVyOiJcdThBQ0JcdThGMzhcdTUxNjUiLHNlbGVjdFBsYWNlaG9sZGVyOiJcdThBQ0JcdTkwNzhcdTY0QzcifSxhbGVydDp7Y2xlYXI6Ilx1NTNENlx1NkQ4OFx1OTA3OFx1NjRDNyIsc2VsZWN0ZWQ6Ilx1NURGMlx1OTA3OFx1NjRDNyIsaXRlbToiXHU5ODA1In0scGFnaW5hdGlvbjp7dG90YWw6e3JhbmdlOiJcdTdCMkMiLHRvdGFsOiJcdTY4OUQvXHU3RTNEXHU1MTcxIixpdGVtOiJcdTY4OUQifX0sdGFibGVUb29sQmFyOntsZWZ0UGluOiJcdTU2RkFcdTVCOUFcdTUyMzBcdTVERTZcdTkwOEEiLHJpZ2h0UGluOiJcdTU2RkFcdTVCOUFcdTUyMzBcdTUzRjNcdTkwOEEiLG5vUGluOiJcdTRFMERcdTU2RkFcdTVCOUEiLGxlZnRGaXhlZFRpdGxlOiJcdTU2RkFcdTVCOUFcdTU3MjhcdTVERTZcdTUwNzQiLHJpZ2h0Rml4ZWRUaXRsZToiXHU1NkZBXHU1QjlBXHU1NzI4XHU1M0YzXHU1MDc0Iixub0ZpeGVkVGl0bGU6Ilx1NEUwRFx1NTZGQVx1NUI5QSIscmVzZXQ6Ilx1OTFDRFx1N0Y2RSIsY29sdW1uRGlzcGxheToiXHU1MjE3XHU1QzU1XHU3OTNBIixjb2x1bW5TZXR0aW5nOiJcdTUyMTdcdThBMkRcdTdGNkUiLGZ1bGxTY3JlZW46Ilx1NTE2OFx1NUM0RiIsZXhpdEZ1bGxTY3JlZW46Ilx1OTAwMFx1NTFGQVx1NTE2OFx1NUM0RiIscmVsb2FkOiJcdTUyMzdcdTY1QjAiLGRlbnNpdHk6Ilx1NUJDNlx1NUVBNiIsZGVuc2l0eURlZmF1bHQ6Ilx1NkI2M1x1NUUzOCIsZGVuc2l0eUxhcmdlcjoiXHU1QkVDXHU5QjA2IixkZW5zaXR5TWlkZGxlOiJcdTRFMkRcdTdCNDkiLGRlbnNpdHlTbWFsbDoiXHU3RENBXHU2RTRBIn0sc3RlcHNGb3JtOntuZXh0OiJcdTRFMEJcdTRFMDBcdTZCNjUiLHByZXY6Ilx1NEUwQVx1NEUwMFx1NkI2NSIsc3VibWl0OiJcdTVCOENcdTYyMTAifSxsb2dpbkZvcm06e3N1Ym1pdFRleHQ6Ilx1NzY3Qlx1NTE2NSJ9LGVkaXRhYmxlVGFibGU6e29ubHlPbmVMaW5lRWRpdG9yOiJcdTUzRUFcdTgwRkRcdTU0MENcdTY2NDJcdTdERThcdThGMkZcdTRFMDBcdTg4NEMiLGFjdGlvbjp7c2F2ZToiXHU0RkREXHU1QjU4IixjYW5jZWw6Ilx1NTNENlx1NkQ4OCIsZGVsZXRlOiJcdTUyMkFcdTk2NjQiLGFkZDoiXHU2NUIwXHU1ODlFXHU0RTAwXHU4ODRDXHU4Q0M3XHU2NTk5In19LHN3aXRjaDp7b3BlbjoiXHU2MjUzXHU5NThCIixjbG9zZToiXHU5NURDXHU5NTg5In19LEQ9ZnVuY3Rpb24oQWUsdHQpe3JldHVybntnZXRNZXNzYWdlOmZ1bmN0aW9uKHV0LERlKXt2YXIgTmU9KDAsci5VMikodHQsdXQucmVwbGFjZSgvXFsoXGQrKVxdL2csIi4kMSIpLnNwbGl0KCIuIikpfHwiIjtpZihOZSlyZXR1cm4gTmU7dmFyIFhlPUFlLnJlcGxhY2UoIl8iLCItIik7aWYoWGU9PT0iemgtQ04iKXJldHVybiBEZTt2YXIgSmU9TWVbInpoLUNOIl07cmV0dXJuIEplP0plLmdldE1lc3NhZ2UodXQsRGUpOkRlfSxsb2NhbGU6QWV9fSxWPUQoIm1uX01OIixPKSxaPUQoImFyX0VHIixuKSxQPUQoInpoX0NOIixXKSxLPUQoImVuX1VTIix1KSxzZT1EKCJlbl9HQiIsYSksbmU9RCgidmlfVk4iLGNlKSxvZT1EKCJpdF9JVCIsdyksZmU9RCgiamFfSlAiLEUpLEVlPUQoImVzX0VTIixjKSxSZT1EKCJjYV9FUyIsdCksQmU9RCgicnVfUlUiLHopLFllPUQoInNyX1JTIixZKSxvdD1EKCJtc19NWSIsVCkscWU9RCgiemhfVFciLGopLF9lPUQoImZyX0ZSIixkKSxGZT1EKCJwdF9CUiIsSSksU2U9RCgia29fS1IiLHgpLHE9RCgiaWRfSUQiLGcpLGs9RCgiZGVfREUiLHMpLE09RCgiZmFfSVIiLGgpLEE9RCgidHJfVFIiLG1lKSxVPUQoInBsX1BMIixMKSxOPUQoImhyXyIsQyksUT1EKCJ0aF9USCIsSiksdWU9RCgiY3NfY3oiLGkpLCQ9RCgic2tfU0siLEcpLF89RCgiaGVfSUwiLG0pLHBlPUQoInVrX1VBIix0ZSkscmU9RCgidXpfVVoiLGxlKSxhZT1EKCJubF9OTCIsUyksd2U9RCgicm9fUk8iLFIpLExlPUQoInN2X1NFIixlZSksTWU9eyJtbi1NTiI6ViwiYXItRUciOlosInpoLUNOIjpQLCJlbi1VUyI6SywiZW4tR0IiOnNlLCJ2aS1WTiI6bmUsIml0LUlUIjpvZSwiamEtSlAiOmZlLCJlcy1FUyI6RWUsImNhLUVTIjpSZSwicnUtUlUiOkJlLCJzci1SUyI6WWUsIm1zLU1ZIjpvdCwiemgtVFciOnFlLCJmci1GUiI6X2UsInB0LUJSIjpGZSwia28tS1IiOlNlLCJpZC1JRCI6cSwiZGUtREUiOmssImZhLUlSIjpNLCJ0ci1UUiI6QSwicGwtUEwiOlUsImhyLUhSIjpOLCJ0aC1USCI6USwiY3MtQ1oiOnVlLCJzay1TSyI6JCwiaGUtSUwiOl8sInVrLVVBIjpwZSwidXotVVoiOnJlLCJubC1OTCI6YWUsInJvLVJPIjp3ZSwic3YtU0UiOkxlfSxiZT1PYmplY3Qua2V5cyhNZSksJGU9ZnVuY3Rpb24oQWUpe3ZhciB0dD0oQWV8fCJ6aC1DTiIpLnRvTG9jYWxlTG93ZXJDYXNlKCk7cmV0dXJuIGJlLmZpbmQoZnVuY3Rpb24obXQpe3ZhciB1dD1tdC50b0xvY2FsZUxvd2VyQ2FzZSgpO3JldHVybiB1dC5pbmNsdWRlcyh0dCl9KX19LDY0ODQ3OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse05kOmZ1bmN0aW9uKCl7cmV0dXJuIEx9LE93OmZ1bmN0aW9uKCl7cmV0dXJuIE99LFdmOmZ1bmN0aW9uKCl7cmV0dXJuIFN9LHVLOmZ1bmN0aW9uKCl7cmV0dXJuIHd9LFhqOmZ1bmN0aW9uKCl7cmV0dXJuIEl9LGRROmZ1bmN0aW9uKCl7cmV0dXJuIFR9fSk7dmFyIHI9ZSgxNDEzKSxuPWUoMTE1NjgpLHQ9ZSg4NjUwMCksaT1lKDQ4NzAxKSxzPWUoMTM1MCksYT1lKDkwMjc5KSx1PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gUih6LEcpe3o9PT12b2lkIDAmJih6PSIiKSxHPT09dm9pZCAwJiYoRz17fSk7dmFyIFk7aWYoeiBpbnN0YW5jZW9mIFIpcmV0dXJuIHo7dHlwZW9mIHo9PSJudW1iZXIiJiYoej0oMCx0Lll0KSh6KSksdGhpcy5vcmlnaW5hbElucHV0PXo7dmFyIGVlPSgwLHMudUEpKHopO3RoaXMub3JpZ2luYWxJbnB1dD16LHRoaXMucj1lZS5yLHRoaXMuZz1lZS5nLHRoaXMuYj1lZS5iLHRoaXMuYT1lZS5hLHRoaXMucm91bmRBPU1hdGgucm91bmQoMTAwKnRoaXMuYSkvMTAwLHRoaXMuZm9ybWF0PShZPUcuZm9ybWF0KSE9PW51bGwmJlkhPT12b2lkIDA/WTplZS5mb3JtYXQsdGhpcy5ncmFkaWVudFR5cGU9Ry5ncmFkaWVudFR5cGUsdGhpcy5yPDEmJih0aGlzLnI9TWF0aC5yb3VuZCh0aGlzLnIpKSx0aGlzLmc8MSYmKHRoaXMuZz1NYXRoLnJvdW5kKHRoaXMuZykpLHRoaXMuYjwxJiYodGhpcy5iPU1hdGgucm91bmQodGhpcy5iKSksdGhpcy5pc1ZhbGlkPWVlLm9rfXJldHVybiBSLnByb3RvdHlwZS5pc0Rhcms9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRCcmlnaHRuZXNzKCk8MTI4fSxSLnByb3RvdHlwZS5pc0xpZ2h0PWZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuaXNEYXJrKCl9LFIucHJvdG90eXBlLmdldEJyaWdodG5lc3M9ZnVuY3Rpb24oKXt2YXIgej10aGlzLnRvUmdiKCk7cmV0dXJuKHoucioyOTkrei5nKjU4Nyt6LmIqMTE0KS8xZTN9LFIucHJvdG90eXBlLmdldEx1bWluYW5jZT1mdW5jdGlvbigpe3ZhciB6PXRoaXMudG9SZ2IoKSxHLFksZWUsSj16LnIvMjU1LG1lPXouZy8yNTUsdGU9ei5iLzI1NTtyZXR1cm4gSjw9LjAzOTI4P0c9Si8xMi45MjpHPU1hdGgucG93KChKKy4wNTUpLzEuMDU1LDIuNCksbWU8PS4wMzkyOD9ZPW1lLzEyLjkyOlk9TWF0aC5wb3coKG1lKy4wNTUpLzEuMDU1LDIuNCksdGU8PS4wMzkyOD9lZT10ZS8xMi45MjplZT1NYXRoLnBvdygodGUrLjA1NSkvMS4wNTUsMi40KSwuMjEyNipHKy43MTUyKlkrLjA3MjIqZWV9LFIucHJvdG90eXBlLmdldEFscGhhPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYX0sUi5wcm90b3R5cGUuc2V0QWxwaGE9ZnVuY3Rpb24oeil7cmV0dXJuIHRoaXMuYT0oMCxhLllxKSh6KSx0aGlzLnJvdW5kQT1NYXRoLnJvdW5kKDEwMCp0aGlzLmEpLzEwMCx0aGlzfSxSLnByb3RvdHlwZS5pc01vbm9jaHJvbWU9ZnVuY3Rpb24oKXt2YXIgej10aGlzLnRvSHNsKCkucztyZXR1cm4gej09PTB9LFIucHJvdG90eXBlLnRvSHN2PWZ1bmN0aW9uKCl7dmFyIHo9KDAsdC5weSkodGhpcy5yLHRoaXMuZyx0aGlzLmIpO3JldHVybntoOnouaCozNjAsczp6LnMsdjp6LnYsYTp0aGlzLmF9fSxSLnByb3RvdHlwZS50b0hzdlN0cmluZz1mdW5jdGlvbigpe3ZhciB6PSgwLHQucHkpKHRoaXMucix0aGlzLmcsdGhpcy5iKSxHPU1hdGgucm91bmQoei5oKjM2MCksWT1NYXRoLnJvdW5kKHoucyoxMDApLGVlPU1hdGgucm91bmQoei52KjEwMCk7cmV0dXJuIHRoaXMuYT09PTE/ImhzdigiLmNvbmNhdChHLCIsICIpLmNvbmNhdChZLCIlLCAiKS5jb25jYXQoZWUsIiUpIik6ImhzdmEoIi5jb25jYXQoRywiLCAiKS5jb25jYXQoWSwiJSwgIikuY29uY2F0KGVlLCIlLCAiKS5jb25jYXQodGhpcy5yb3VuZEEsIikiKX0sUi5wcm90b3R5cGUudG9Ic2w9ZnVuY3Rpb24oKXt2YXIgej0oMCx0LmxDKSh0aGlzLnIsdGhpcy5nLHRoaXMuYik7cmV0dXJue2g6ei5oKjM2MCxzOnoucyxsOnoubCxhOnRoaXMuYX19LFIucHJvdG90eXBlLnRvSHNsU3RyaW5nPWZ1bmN0aW9uKCl7dmFyIHo9KDAsdC5sQykodGhpcy5yLHRoaXMuZyx0aGlzLmIpLEc9TWF0aC5yb3VuZCh6LmgqMzYwKSxZPU1hdGgucm91bmQoei5zKjEwMCksZWU9TWF0aC5yb3VuZCh6LmwqMTAwKTtyZXR1cm4gdGhpcy5hPT09MT8iaHNsKCIuY29uY2F0KEcsIiwgIikuY29uY2F0KFksIiUsICIpLmNvbmNhdChlZSwiJSkiKToiaHNsYSgiLmNvbmNhdChHLCIsICIpLmNvbmNhdChZLCIlLCAiKS5jb25jYXQoZWUsIiUsICIpLmNvbmNhdCh0aGlzLnJvdW5kQSwiKSIpfSxSLnByb3RvdHlwZS50b0hleD1mdW5jdGlvbih6KXtyZXR1cm4gej09PXZvaWQgMCYmKHo9ITEpLCgwLHQudnEpKHRoaXMucix0aGlzLmcsdGhpcy5iLHopfSxSLnByb3RvdHlwZS50b0hleFN0cmluZz1mdW5jdGlvbih6KXtyZXR1cm4gej09PXZvaWQgMCYmKHo9ITEpLCIjIit0aGlzLnRvSGV4KHopfSxSLnByb3RvdHlwZS50b0hleDg9ZnVuY3Rpb24oeil7cmV0dXJuIHo9PT12b2lkIDAmJih6PSExKSwoMCx0LnMpKHRoaXMucix0aGlzLmcsdGhpcy5iLHRoaXMuYSx6KX0sUi5wcm90b3R5cGUudG9IZXg4U3RyaW5nPWZ1bmN0aW9uKHope3JldHVybiB6PT09dm9pZCAwJiYoej0hMSksIiMiK3RoaXMudG9IZXg4KHopfSxSLnByb3RvdHlwZS50b0hleFNob3J0U3RyaW5nPWZ1bmN0aW9uKHope3JldHVybiB6PT09dm9pZCAwJiYoej0hMSksdGhpcy5hPT09MT90aGlzLnRvSGV4U3RyaW5nKHopOnRoaXMudG9IZXg4U3RyaW5nKHopfSxSLnByb3RvdHlwZS50b1JnYj1mdW5jdGlvbigpe3JldHVybntyOk1hdGgucm91bmQodGhpcy5yKSxnOk1hdGgucm91bmQodGhpcy5nKSxiOk1hdGgucm91bmQodGhpcy5iKSxhOnRoaXMuYX19LFIucHJvdG90eXBlLnRvUmdiU3RyaW5nPWZ1bmN0aW9uKCl7dmFyIHo9TWF0aC5yb3VuZCh0aGlzLnIpLEc9TWF0aC5yb3VuZCh0aGlzLmcpLFk9TWF0aC5yb3VuZCh0aGlzLmIpO3JldHVybiB0aGlzLmE9PT0xPyJyZ2IoIi5jb25jYXQoeiwiLCAiKS5jb25jYXQoRywiLCAiKS5jb25jYXQoWSwiKSIpOiJyZ2JhKCIuY29uY2F0KHosIiwgIikuY29uY2F0KEcsIiwgIikuY29uY2F0KFksIiwgIikuY29uY2F0KHRoaXMucm91bmRBLCIpIil9LFIucHJvdG90eXBlLnRvUGVyY2VudGFnZVJnYj1mdW5jdGlvbigpe3ZhciB6PWZ1bmN0aW9uKEcpe3JldHVybiIiLmNvbmNhdChNYXRoLnJvdW5kKCgwLGEuc2gpKEcsMjU1KSoxMDApLCIlIil9O3JldHVybntyOnoodGhpcy5yKSxnOnoodGhpcy5nKSxiOnoodGhpcy5iKSxhOnRoaXMuYX19LFIucHJvdG90eXBlLnRvUGVyY2VudGFnZVJnYlN0cmluZz1mdW5jdGlvbigpe3ZhciB6PWZ1bmN0aW9uKEcpe3JldHVybiBNYXRoLnJvdW5kKCgwLGEuc2gpKEcsMjU1KSoxMDApfTtyZXR1cm4gdGhpcy5hPT09MT8icmdiKCIuY29uY2F0KHoodGhpcy5yKSwiJSwgIikuY29uY2F0KHoodGhpcy5nKSwiJSwgIikuY29uY2F0KHoodGhpcy5iKSwiJSkiKToicmdiYSgiLmNvbmNhdCh6KHRoaXMuciksIiUsICIpLmNvbmNhdCh6KHRoaXMuZyksIiUsICIpLmNvbmNhdCh6KHRoaXMuYiksIiUsICIpLmNvbmNhdCh0aGlzLnJvdW5kQSwiKSIpfSxSLnByb3RvdHlwZS50b05hbWU9ZnVuY3Rpb24oKXtpZih0aGlzLmE9PT0wKXJldHVybiJ0cmFuc3BhcmVudCI7aWYodGhpcy5hPDEpcmV0dXJuITE7Zm9yKHZhciB6PSIjIisoMCx0LnZxKSh0aGlzLnIsdGhpcy5nLHRoaXMuYiwhMSksRz0wLFk9T2JqZWN0LmVudHJpZXMoaS5SKTtHPFkubGVuZ3RoO0crKyl7dmFyIGVlPVlbR10sSj1lZVswXSxtZT1lZVsxXTtpZih6PT09bWUpcmV0dXJuIEp9cmV0dXJuITF9LFIucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKHope3ZhciBHPSEhejt6PXohPW51bGw/ejp0aGlzLmZvcm1hdDt2YXIgWT0hMSxlZT10aGlzLmE8MSYmdGhpcy5hPj0wLEo9IUcmJmVlJiYoei5zdGFydHNXaXRoKCJoZXgiKXx8ej09PSJuYW1lIik7cmV0dXJuIEo/ej09PSJuYW1lIiYmdGhpcy5hPT09MD90aGlzLnRvTmFtZSgpOnRoaXMudG9SZ2JTdHJpbmcoKTooej09PSJyZ2IiJiYoWT10aGlzLnRvUmdiU3RyaW5nKCkpLHo9PT0icHJnYiImJihZPXRoaXMudG9QZXJjZW50YWdlUmdiU3RyaW5nKCkpLCh6PT09ImhleCJ8fHo9PT0iaGV4NiIpJiYoWT10aGlzLnRvSGV4U3RyaW5nKCkpLHo9PT0iaGV4MyImJihZPXRoaXMudG9IZXhTdHJpbmcoITApKSx6PT09ImhleDQiJiYoWT10aGlzLnRvSGV4OFN0cmluZyghMCkpLHo9PT0iaGV4OCImJihZPXRoaXMudG9IZXg4U3RyaW5nKCkpLHo9PT0ibmFtZSImJihZPXRoaXMudG9OYW1lKCkpLHo9PT0iaHNsIiYmKFk9dGhpcy50b0hzbFN0cmluZygpKSx6PT09ImhzdiImJihZPXRoaXMudG9Ic3ZTdHJpbmcoKSksWXx8dGhpcy50b0hleFN0cmluZygpKX0sUi5wcm90b3R5cGUudG9OdW1iZXI9ZnVuY3Rpb24oKXtyZXR1cm4oTWF0aC5yb3VuZCh0aGlzLnIpPDwxNikrKE1hdGgucm91bmQodGhpcy5nKTw8OCkrTWF0aC5yb3VuZCh0aGlzLmIpfSxSLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBuZXcgUih0aGlzLnRvU3RyaW5nKCkpfSxSLnByb3RvdHlwZS5saWdodGVuPWZ1bmN0aW9uKHope3o9PT12b2lkIDAmJih6PTEwKTt2YXIgRz10aGlzLnRvSHNsKCk7cmV0dXJuIEcubCs9ei8xMDAsRy5sPSgwLGEuVjIpKEcubCksbmV3IFIoRyl9LFIucHJvdG90eXBlLmJyaWdodGVuPWZ1bmN0aW9uKHope3o9PT12b2lkIDAmJih6PTEwKTt2YXIgRz10aGlzLnRvUmdiKCk7cmV0dXJuIEcucj1NYXRoLm1heCgwLE1hdGgubWluKDI1NSxHLnItTWF0aC5yb3VuZCgyNTUqLSh6LzEwMCkpKSksRy5nPU1hdGgubWF4KDAsTWF0aC5taW4oMjU1LEcuZy1NYXRoLnJvdW5kKDI1NSotKHovMTAwKSkpKSxHLmI9TWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsRy5iLU1hdGgucm91bmQoMjU1Ki0oei8xMDApKSkpLG5ldyBSKEcpfSxSLnByb3RvdHlwZS5kYXJrZW49ZnVuY3Rpb24oeil7ej09PXZvaWQgMCYmKHo9MTApO3ZhciBHPXRoaXMudG9Ic2woKTtyZXR1cm4gRy5sLT16LzEwMCxHLmw9KDAsYS5WMikoRy5sKSxuZXcgUihHKX0sUi5wcm90b3R5cGUudGludD1mdW5jdGlvbih6KXtyZXR1cm4gej09PXZvaWQgMCYmKHo9MTApLHRoaXMubWl4KCJ3aGl0ZSIseil9LFIucHJvdG90eXBlLnNoYWRlPWZ1bmN0aW9uKHope3JldHVybiB6PT09dm9pZCAwJiYoej0xMCksdGhpcy5taXgoImJsYWNrIix6KX0sUi5wcm90b3R5cGUuZGVzYXR1cmF0ZT1mdW5jdGlvbih6KXt6PT09dm9pZCAwJiYoej0xMCk7dmFyIEc9dGhpcy50b0hzbCgpO3JldHVybiBHLnMtPXovMTAwLEcucz0oMCxhLlYyKShHLnMpLG5ldyBSKEcpfSxSLnByb3RvdHlwZS5zYXR1cmF0ZT1mdW5jdGlvbih6KXt6PT09dm9pZCAwJiYoej0xMCk7dmFyIEc9dGhpcy50b0hzbCgpO3JldHVybiBHLnMrPXovMTAwLEcucz0oMCxhLlYyKShHLnMpLG5ldyBSKEcpfSxSLnByb3RvdHlwZS5ncmV5c2NhbGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kZXNhdHVyYXRlKDEwMCl9LFIucHJvdG90eXBlLnNwaW49ZnVuY3Rpb24oeil7dmFyIEc9dGhpcy50b0hzbCgpLFk9KEcuaCt6KSUzNjA7cmV0dXJuIEcuaD1ZPDA/MzYwK1k6WSxuZXcgUihHKX0sUi5wcm90b3R5cGUubWl4PWZ1bmN0aW9uKHosRyl7Rz09PXZvaWQgMCYmKEc9NTApO3ZhciBZPXRoaXMudG9SZ2IoKSxlZT1uZXcgUih6KS50b1JnYigpLEo9Ry8xMDAsbWU9e3I6KGVlLnItWS5yKSpKK1kucixnOihlZS5nLVkuZykqSitZLmcsYjooZWUuYi1ZLmIpKkorWS5iLGE6KGVlLmEtWS5hKSpKK1kuYX07cmV0dXJuIG5ldyBSKG1lKX0sUi5wcm90b3R5cGUuYW5hbG9nb3VzPWZ1bmN0aW9uKHosRyl7ej09PXZvaWQgMCYmKHo9NiksRz09PXZvaWQgMCYmKEc9MzApO3ZhciBZPXRoaXMudG9Ic2woKSxlZT0zNjAvRyxKPVt0aGlzXTtmb3IoWS5oPShZLmgtKGVlKno+PjEpKzcyMCklMzYwOy0tejspWS5oPShZLmgrZWUpJTM2MCxKLnB1c2gobmV3IFIoWSkpO3JldHVybiBKfSxSLnByb3RvdHlwZS5jb21wbGVtZW50PWZ1bmN0aW9uKCl7dmFyIHo9dGhpcy50b0hzbCgpO3JldHVybiB6Lmg9KHouaCsxODApJTM2MCxuZXcgUih6KX0sUi5wcm90b3R5cGUubW9ub2Nocm9tYXRpYz1mdW5jdGlvbih6KXt6PT09dm9pZCAwJiYoej02KTtmb3IodmFyIEc9dGhpcy50b0hzdigpLFk9Ry5oLGVlPUcucyxKPUcudixtZT1bXSx0ZT0xL3o7ei0tOyltZS5wdXNoKG5ldyBSKHtoOlksczplZSx2Okp9KSksSj0oSit0ZSklMTtyZXR1cm4gbWV9LFIucHJvdG90eXBlLnNwbGl0Y29tcGxlbWVudD1mdW5jdGlvbigpe3ZhciB6PXRoaXMudG9Ic2woKSxHPXouaDtyZXR1cm5bdGhpcyxuZXcgUih7aDooRys3MiklMzYwLHM6ei5zLGw6ei5sfSksbmV3IFIoe2g6KEcrMjE2KSUzNjAsczp6LnMsbDp6Lmx9KV19LFIucHJvdG90eXBlLm9uQmFja2dyb3VuZD1mdW5jdGlvbih6KXt2YXIgRz10aGlzLnRvUmdiKCksWT1uZXcgUih6KS50b1JnYigpLGVlPUcuYStZLmEqKDEtRy5hKTtyZXR1cm4gbmV3IFIoe3I6KEcucipHLmErWS5yKlkuYSooMS1HLmEpKS9lZSxnOihHLmcqRy5hK1kuZypZLmEqKDEtRy5hKSkvZWUsYjooRy5iKkcuYStZLmIqWS5hKigxLUcuYSkpL2VlLGE6ZWV9KX0sUi5wcm90b3R5cGUudHJpYWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wb2x5YWQoMyl9LFIucHJvdG90eXBlLnRldHJhZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnBvbHlhZCg0KX0sUi5wcm90b3R5cGUucG9seWFkPWZ1bmN0aW9uKHope2Zvcih2YXIgRz10aGlzLnRvSHNsKCksWT1HLmgsZWU9W3RoaXNdLEo9MzYwL3osbWU9MTttZTx6O21lKyspZWUucHVzaChuZXcgUih7aDooWSttZSpKKSUzNjAsczpHLnMsbDpHLmx9KSk7cmV0dXJuIGVlfSxSLnByb3RvdHlwZS5lcXVhbHM9ZnVuY3Rpb24oeil7cmV0dXJuIHRoaXMudG9SZ2JTdHJpbmcoKT09PW5ldyBSKHopLnRvUmdiU3RyaW5nKCl9LFJ9KCk7ZnVuY3Rpb24gYyhSLHope3JldHVybiBSPT09dm9pZCAwJiYoUj0iIiksej09PXZvaWQgMCYmKHo9e30pLG5ldyB1KFIseil9dmFyIGg9ZSg5MzYxKSxkPWUoMjE1MzIpLG09ZSg2NzI5NCksQz1lKDEwOTE1KSxnPWUoNjc4MDQpLHc9ZnVuY3Rpb24oeixHKXtyZXR1cm4gbmV3IHUoeikuc2V0QWxwaGEoRykudG9SZ2JTdHJpbmcoKX0sRT1mdW5jdGlvbih6LEcpe3ZhciBZPW5ldyBUaW55Q29sb3Ioeik7cmV0dXJuIFkubGlnaHRlbihHKS50b0hleFN0cmluZygpfSx4PWZ1bmN0aW9uKCl7cmV0dXJuIHR5cGVvZiBoLlo9PSJ1bmRlZmluZWQifHwhaC5aP2c6aC5afSxPPXgoKSxUPU8udXNlVG9rZW4sUz1mdW5jdGlvbih6KXtyZXR1cm57Ym94U2l6aW5nOiJib3JkZXItYm94IixtYXJnaW46MCxwYWRkaW5nOjAsY29sb3I6ei5jb2xvclRleHQsZm9udFNpemU6ei5mb250U2l6ZSxsaW5lSGVpZ2h0OnoubGluZUhlaWdodCxsaXN0U3R5bGU6Im5vbmUifX0sTD1mdW5jdGlvbih6KXtyZXR1cm57Y29sb3I6ei5jb2xvckxpbmssb3V0bGluZToibm9uZSIsY3Vyc29yOiJwb2ludGVyIix0cmFuc2l0aW9uOiJjb2xvciAiLmNvbmNhdCh6Lm1vdGlvbkR1cmF0aW9uU2xvdyksIiY6Zm9jdXMsICY6aG92ZXIiOntjb2xvcjp6LmNvbG9yTGlua0hvdmVyfSwiJjphY3RpdmUiOntjb2xvcjp6LmNvbG9yTGlua0FjdGl2ZX19fTtmdW5jdGlvbiBJKFIseil7dmFyIEcsWT0oMCxtLnVzZUNvbnRleHQpKEMuTF8pLGVlPVkudG9rZW4sSj1lZT09PXZvaWQgMD97fTplZSxtZT0oMCxtLnVzZUNvbnRleHQpKEMuTF8pLHRlPW1lLmhhc2hlZCxsZT1UKCksY2U9bGUudG9rZW4sVz1sZS5oYXNoSWQsaj0oMCxtLnVzZUNvbnRleHQpKEMuTF8pLEQ9ai50aGVtZSxWPSgwLG0udXNlQ29udGV4dCkoZC5aUC5Db25maWdDb250ZXh0KSxaPVYuZ2V0UHJlZml4Q2xzLFA9Vi5jc3A7cmV0dXJuIEoubGF5b3V0fHwoSj0oMCxyLlopKHt9LGNlKSksSi5wcm9Db21wb25lbnRzQ2xzPShHPUoucHJvQ29tcG9uZW50c0NscykhPT1udWxsJiZHIT09dm9pZCAwP0c6Ii4iLmNvbmNhdChaKCJwcm8iKSksSi5hbnRDbHM9Ii4iLmNvbmNhdChaKCkpLHt3cmFwU1NSOigwLG4ueHkpKHt0aGVtZTpELHRva2VuOkoscGF0aDpbUl0sbm9uY2U6UD09bnVsbD92b2lkIDA6UC5ub25jZSxsYXllcjp7bmFtZToiYW50ZC1wcm8iLGRlcGVuZGVuY2llczpbImFudGQiXX19LGZ1bmN0aW9uKCl7cmV0dXJuIHooSil9KSxoYXNoSWQ6dGU/VzoiIn19fSw2NzgwNDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UucihwKSxlLmQocCx7ZGVmYXVsdFRva2VuOmZ1bmN0aW9uKCl7cmV0dXJuIHN9LGVtcHR5VGhlbWU6ZnVuY3Rpb24oKXtyZXR1cm4gdX0saGFzaENvZGU6ZnVuY3Rpb24oKXtyZXR1cm4gYX0sdG9rZW46ZnVuY3Rpb24oKXtyZXR1cm4gY30sdXNlVG9rZW46ZnVuY3Rpb24oKXtyZXR1cm4gaH19KTt2YXIgcj1lKDE0MTMpLG49ZSgxMTU2OCksdD1lKDkzNjEpLGkscz17Ymx1ZToiIzE2NzdmZiIscHVycGxlOiIjNzIyRUQxIixjeWFuOiIjMTNDMkMyIixncmVlbjoiIzUyQzQxQSIsbWFnZW50YToiI0VCMkY5NiIscGluazoiI2ViMmY5NiIscmVkOiIjRjUyMjJEIixvcmFuZ2U6IiNGQThDMTYiLHllbGxvdzoiI0ZBREIxNCIsdm9sY2FubzoiI0ZBNTQxQyIsZ2Vla2JsdWU6IiMyRjU0RUIiLGdvbGQ6IiNGQUFEMTQiLGxpbWU6IiNBMEQ5MTEiLGNvbG9yUHJpbWFyeToiIzE2NzdmZiIsY29sb3JTdWNjZXNzOiIjNTJjNDFhIixjb2xvcldhcm5pbmc6IiNmYWFkMTQiLGNvbG9yRXJyb3I6IiNmZjc4NzUiLGNvbG9ySW5mbzoiIzE2NzdmZiIsY29sb3JUZXh0QmFzZToiIzAwMCIsY29sb3JCZ0Jhc2U6IiNmZmYiLGZvbnRGYW1pbHk6Ii1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLCAnSGVsdmV0aWNhIE5ldWUnLCBBcmlhbCwgJ05vdG8gU2FucycsIHNhbnMtc2VyaWYsICdBcHBsZSBDb2xvciBFbW9qaScsICdTZWdvZSBVSSBFbW9qaScsICdTZWdvZSBVSSBTeW1ib2wnLCAnTm90byBDb2xvciBFbW9qaSciLGZvbnRTaXplOjE0LGxpbmVXaWR0aDoxLGxpbmVUeXBlOiJzb2xpZCIsbW90aW9uVW5pdDouMSxtb3Rpb25CYXNlOjAsbW90aW9uRWFzZU91dENpcmM6ImN1YmljLWJlemllcigwLjA4LCAwLjgyLCAwLjE3LCAxKSIsbW90aW9uRWFzZUluT3V0Q2lyYzoiY3ViaWMtYmV6aWVyKDAuNzgsIDAuMTQsIDAuMTUsIDAuODYpIixtb3Rpb25FYXNlT3V0OiJjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEsIDAuMzU1LCAxKSIsbW90aW9uRWFzZUluT3V0OiJjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSkiLG1vdGlvbkVhc2VPdXRCYWNrOiJjdWJpYy1iZXppZXIoMC4xMiwgMC40LCAwLjI5LCAxLjQ2KSIsbW90aW9uRWFzZUluUXVpbnQ6ImN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxKSIsbW90aW9uRWFzZU91dFF1aW50OiJjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSkiLGJvcmRlclJhZGl1czo0LHNpemVVbml0OjQsc2l6ZVN0ZXA6NCxzaXplUG9wdXBBcnJvdzoxNixjb250cm9sSGVpZ2h0OjMyLHpJbmRleEJhc2U6MCx6SW5kZXhQb3B1cEJhc2U6MWUzLG9wYWNpdHlJbWFnZToxLHdpcmVmcmFtZTohMSwiYmx1ZS0xIjoiI2U2ZjRmZiIsImJsdWUtMiI6IiNiYWUwZmYiLCJibHVlLTMiOiIjOTFjYWZmIiwiYmx1ZS00IjoiIzY5YjFmZiIsImJsdWUtNSI6IiM0MDk2ZmYiLCJibHVlLTYiOiIjMTY3N2ZmIiwiYmx1ZS03IjoiIzA5NThkOSIsImJsdWUtOCI6IiMwMDNlYjMiLCJibHVlLTkiOiIjMDAyYzhjIiwiYmx1ZS0xMCI6IiMwMDFkNjYiLCJwdXJwbGUtMSI6IiNmOWYwZmYiLCJwdXJwbGUtMiI6IiNlZmRiZmYiLCJwdXJwbGUtMyI6IiNkM2FkZjciLCJwdXJwbGUtNCI6IiNiMzdmZWIiLCJwdXJwbGUtNSI6IiM5MjU0ZGUiLCJwdXJwbGUtNiI6IiM3MjJlZDEiLCJwdXJwbGUtNyI6IiM1MzFkYWIiLCJwdXJwbGUtOCI6IiMzOTEwODUiLCJwdXJwbGUtOSI6IiMyMjA3NWUiLCJwdXJwbGUtMTAiOiIjMTIwMzM4IiwiY3lhbi0xIjoiI2U2ZmZmYiIsImN5YW4tMiI6IiNiNWY1ZWMiLCJjeWFuLTMiOiIjODdlOGRlIiwiY3lhbi00IjoiIzVjZGJkMyIsImN5YW4tNSI6IiMzNmNmYzkiLCJjeWFuLTYiOiIjMTNjMmMyIiwiY3lhbi03IjoiIzA4OTc5YyIsImN5YW4tOCI6IiMwMDZkNzUiLCJjeWFuLTkiOiIjMDA0NzRmIiwiY3lhbi0xMCI6IiMwMDIzMjkiLCJncmVlbi0xIjoiI2Y2ZmZlZCIsImdyZWVuLTIiOiIjZDlmN2JlIiwiZ3JlZW4tMyI6IiNiN2ViOGYiLCJncmVlbi00IjoiIzk1ZGU2NCIsImdyZWVuLTUiOiIjNzNkMTNkIiwiZ3JlZW4tNiI6IiM1MmM0MWEiLCJncmVlbi03IjoiIzM4OWUwZCIsImdyZWVuLTgiOiIjMjM3ODA0IiwiZ3JlZW4tOSI6IiMxMzUyMDAiLCJncmVlbi0xMCI6IiMwOTJiMDAiLCJtYWdlbnRhLTEiOiIjZmZmMGY2IiwibWFnZW50YS0yIjoiI2ZmZDZlNyIsIm1hZ2VudGEtMyI6IiNmZmFkZDIiLCJtYWdlbnRhLTQiOiIjZmY4NWMwIiwibWFnZW50YS01IjoiI2Y3NTlhYiIsIm1hZ2VudGEtNiI6IiNlYjJmOTYiLCJtYWdlbnRhLTciOiIjYzQxZDdmIiwibWFnZW50YS04IjoiIzllMTA2OCIsIm1hZ2VudGEtOSI6IiM3ODA2NTAiLCJtYWdlbnRhLTEwIjoiIzUyMDMzOSIsInBpbmstMSI6IiNmZmYwZjYiLCJwaW5rLTIiOiIjZmZkNmU3IiwicGluay0zIjoiI2ZmYWRkMiIsInBpbmstNCI6IiNmZjg1YzAiLCJwaW5rLTUiOiIjZjc1OWFiIiwicGluay02IjoiI2ViMmY5NiIsInBpbmstNyI6IiNjNDFkN2YiLCJwaW5rLTgiOiIjOWUxMDY4IiwicGluay05IjoiIzc4MDY1MCIsInBpbmstMTAiOiIjNTIwMzM5IiwicmVkLTEiOiIjZmZmMWYwIiwicmVkLTIiOiIjZmZjY2M3IiwicmVkLTMiOiIjZmZhMzllIiwicmVkLTQiOiIjZmY3ODc1IiwicmVkLTUiOiIjZmY0ZDRmIiwicmVkLTYiOiIjZjUyMjJkIiwicmVkLTciOiIjY2YxMzIyIiwicmVkLTgiOiIjYTgwNzFhIiwicmVkLTkiOiIjODIwMDE0IiwicmVkLTEwIjoiIzVjMDAxMSIsIm9yYW5nZS0xIjoiI2ZmZjdlNiIsIm9yYW5nZS0yIjoiI2ZmZTdiYSIsIm9yYW5nZS0zIjoiI2ZmZDU5MSIsIm9yYW5nZS00IjoiI2ZmYzA2OSIsIm9yYW5nZS01IjoiI2ZmYTk0MCIsIm9yYW5nZS02IjoiI2ZhOGMxNiIsIm9yYW5nZS03IjoiI2Q0NmIwOCIsIm9yYW5nZS04IjoiI2FkNGUwMCIsIm9yYW5nZS05IjoiIzg3MzgwMCIsIm9yYW5nZS0xMCI6IiM2MTI1MDAiLCJ5ZWxsb3ctMSI6IiNmZWZmZTYiLCJ5ZWxsb3ctMiI6IiNmZmZmYjgiLCJ5ZWxsb3ctMyI6IiNmZmZiOGYiLCJ5ZWxsb3ctNCI6IiNmZmY1NjYiLCJ5ZWxsb3ctNSI6IiNmZmVjM2QiLCJ5ZWxsb3ctNiI6IiNmYWRiMTQiLCJ5ZWxsb3ctNyI6IiNkNGIxMDYiLCJ5ZWxsb3ctOCI6IiNhZDhiMDAiLCJ5ZWxsb3ctOSI6IiM4NzY4MDAiLCJ5ZWxsb3ctMTAiOiIjNjE0NzAwIiwidm9sY2Fuby0xIjoiI2ZmZjJlOCIsInZvbGNhbm8tMiI6IiNmZmQ4YmYiLCJ2b2xjYW5vLTMiOiIjZmZiYjk2Iiwidm9sY2Fuby00IjoiI2ZmOWM2ZSIsInZvbGNhbm8tNSI6IiNmZjdhNDUiLCJ2b2xjYW5vLTYiOiIjZmE1NDFjIiwidm9sY2Fuby03IjoiI2Q0MzgwZCIsInZvbGNhbm8tOCI6IiNhZDIxMDIiLCJ2b2xjYW5vLTkiOiIjODcxNDAwIiwidm9sY2Fuby0xMCI6IiM2MTBiMDAiLCJnZWVrYmx1ZS0xIjoiI2YwZjVmZiIsImdlZWtibHVlLTIiOiIjZDZlNGZmIiwiZ2Vla2JsdWUtMyI6IiNhZGM2ZmYiLCJnZWVrYmx1ZS00IjoiIzg1YTVmZiIsImdlZWtibHVlLTUiOiIjNTk3ZWY3IiwiZ2Vla2JsdWUtNiI6IiMyZjU0ZWIiLCJnZWVrYmx1ZS03IjoiIzFkMzljNCIsImdlZWtibHVlLTgiOiIjMTAyMzllIiwiZ2Vla2JsdWUtOSI6IiMwNjExNzgiLCJnZWVrYmx1ZS0xMCI6IiMwMzA4NTIiLCJnb2xkLTEiOiIjZmZmYmU2IiwiZ29sZC0yIjoiI2ZmZjFiOCIsImdvbGQtMyI6IiNmZmU1OGYiLCJnb2xkLTQiOiIjZmZkNjY2IiwiZ29sZC01IjoiI2ZmYzUzZCIsImdvbGQtNiI6IiNmYWFkMTQiLCJnb2xkLTciOiIjZDQ4ODA2IiwiZ29sZC04IjoiI2FkNjgwMCIsImdvbGQtOSI6IiM4NzRkMDAiLCJnb2xkLTEwIjoiIzYxMzQwMCIsImxpbWUtMSI6IiNmY2ZmZTYiLCJsaW1lLTIiOiIjZjRmZmI4IiwibGltZS0zIjoiI2VhZmY4ZiIsImxpbWUtNCI6IiNkM2YyNjEiLCJsaW1lLTUiOiIjYmFlNjM3IiwibGltZS02IjoiI2EwZDkxMSIsImxpbWUtNyI6IiM3Y2IzMDUiLCJsaW1lLTgiOiIjNWI4YzAwIiwibGltZS05IjoiIzNmNjYwMCIsImxpbWUtMTAiOiIjMjU0MDAwIixjb2xvclRleHQ6InJnYmEoMCwgMCwgMCwgMC44OCkiLGNvbG9yVGV4dFNlY29uZGFyeToicmdiYSgwLCAwLCAwLCAwLjY1KSIsY29sb3JUZXh0VGVydGlhcnk6InJnYmEoMCwgMCwgMCwgMC40NSkiLGNvbG9yVGV4dFF1YXRlcm5hcnk6InJnYmEoMCwgMCwgMCwgMC4yNSkiLGNvbG9yRmlsbDoicmdiYSgwLCAwLCAwLCAwLjE1KSIsY29sb3JGaWxsU2Vjb25kYXJ5OiJyZ2JhKDAsIDAsIDAsIDAuMDYpIixjb2xvckZpbGxUZXJ0aWFyeToicmdiYSgwLCAwLCAwLCAwLjA0KSIsY29sb3JGaWxsUXVhdGVybmFyeToicmdiYSgwLCAwLCAwLCAwLjAyKSIsY29sb3JCZ0xheW91dDoiaHNsKDIyMCwyMyUsOTclKSIsY29sb3JCZ0NvbnRhaW5lcjoiI2ZmZmZmZiIsY29sb3JCZ0VsZXZhdGVkOiIjZmZmZmZmIixjb2xvckJnU3BvdGxpZ2h0OiJyZ2JhKDAsIDAsIDAsIDAuODUpIixjb2xvckJvcmRlcjoiI2Q5ZDlkOSIsY29sb3JCb3JkZXJTZWNvbmRhcnk6IiNmMGYwZjAiLGNvbG9yUHJpbWFyeUJnOiIjZTZmNGZmIixjb2xvclByaW1hcnlCZ0hvdmVyOiIjYmFlMGZmIixjb2xvclByaW1hcnlCb3JkZXI6IiM5MWNhZmYiLGNvbG9yUHJpbWFyeUJvcmRlckhvdmVyOiIjNjliMWZmIixjb2xvclByaW1hcnlIb3ZlcjoiIzQwOTZmZiIsY29sb3JQcmltYXJ5QWN0aXZlOiIjMDk1OGQ5Iixjb2xvclByaW1hcnlUZXh0SG92ZXI6IiM0MDk2ZmYiLGNvbG9yUHJpbWFyeVRleHQ6IiMxNjc3ZmYiLGNvbG9yUHJpbWFyeVRleHRBY3RpdmU6IiMwOTU4ZDkiLGNvbG9yU3VjY2Vzc0JnOiIjZjZmZmVkIixjb2xvclN1Y2Nlc3NCZ0hvdmVyOiIjZDlmN2JlIixjb2xvclN1Y2Nlc3NCb3JkZXI6IiNiN2ViOGYiLGNvbG9yU3VjY2Vzc0JvcmRlckhvdmVyOiIjOTVkZTY0Iixjb2xvclN1Y2Nlc3NIb3ZlcjoiIzk1ZGU2NCIsY29sb3JTdWNjZXNzQWN0aXZlOiIjMzg5ZTBkIixjb2xvclN1Y2Nlc3NUZXh0SG92ZXI6IiM3M2QxM2QiLGNvbG9yU3VjY2Vzc1RleHQ6IiM1MmM0MWEiLGNvbG9yU3VjY2Vzc1RleHRBY3RpdmU6IiMzODllMGQiLGNvbG9yRXJyb3JCZzoiI2ZmZjJmMCIsY29sb3JFcnJvckJnSG92ZXI6IiNmZmYxZjAiLGNvbG9yRXJyb3JCb3JkZXI6IiNmZmNjYzciLGNvbG9yRXJyb3JCb3JkZXJIb3ZlcjoiI2ZmYTM5ZSIsY29sb3JFcnJvckhvdmVyOiIjZmZhMzllIixjb2xvckVycm9yQWN0aXZlOiIjZDkzNjNlIixjb2xvckVycm9yVGV4dEhvdmVyOiIjZmY3ODc1Iixjb2xvckVycm9yVGV4dDoiI2ZmNGQ0ZiIsY29sb3JFcnJvclRleHRBY3RpdmU6IiNkOTM2M2UiLGNvbG9yV2FybmluZ0JnOiIjZmZmYmU2Iixjb2xvcldhcm5pbmdCZ0hvdmVyOiIjZmZmMWI4Iixjb2xvcldhcm5pbmdCb3JkZXI6IiNmZmU1OGYiLGNvbG9yV2FybmluZ0JvcmRlckhvdmVyOiIjZmZkNjY2Iixjb2xvcldhcm5pbmdIb3ZlcjoiI2ZmZDY2NiIsY29sb3JXYXJuaW5nQWN0aXZlOiIjZDQ4ODA2Iixjb2xvcldhcm5pbmdUZXh0SG92ZXI6IiNmZmM1M2QiLGNvbG9yV2FybmluZ1RleHQ6IiNmYWFkMTQiLGNvbG9yV2FybmluZ1RleHRBY3RpdmU6IiNkNDg4MDYiLGNvbG9ySW5mb0JnOiIjZTZmNGZmIixjb2xvckluZm9CZ0hvdmVyOiIjYmFlMGZmIixjb2xvckluZm9Cb3JkZXI6IiM5MWNhZmYiLGNvbG9ySW5mb0JvcmRlckhvdmVyOiIjNjliMWZmIixjb2xvckluZm9Ib3ZlcjoiIzY5YjFmZiIsY29sb3JJbmZvQWN0aXZlOiIjMDk1OGQ5Iixjb2xvckluZm9UZXh0SG92ZXI6IiM0MDk2ZmYiLGNvbG9ySW5mb1RleHQ6IiMxNjc3ZmYiLGNvbG9ySW5mb1RleHRBY3RpdmU6IiMwOTU4ZDkiLGNvbG9yQmdNYXNrOiJyZ2JhKDAsIDAsIDAsIDAuNDUpIixjb2xvcldoaXRlOiIjZmZmIixzaXplWFhMOjQ4LHNpemVYTDozMixzaXplTEc6MjQsc2l6ZU1EOjIwLHNpemVNUzoxNixzaXplOjE2LHNpemVTTToxMixzaXplWFM6OCxzaXplWFhTOjQsY29udHJvbEhlaWdodFNNOjI0LGNvbnRyb2xIZWlnaHRYUzoxNixjb250cm9sSGVpZ2h0TEc6NDAsbW90aW9uRHVyYXRpb25GYXN0OiIwLjFzIixtb3Rpb25EdXJhdGlvbk1pZDoiMC4ycyIsbW90aW9uRHVyYXRpb25TbG93OiIwLjNzIixmb250U2l6ZXM6WzEyLDE0LDE2LDIwLDI0LDMwLDM4LDQ2LDU2LDY4XSxsaW5lSGVpZ2h0czpbMS42NjY2NjY2NjY2NjY2NjY3LDEuNTcxNDI4NTcxNDI4NTcxNCwxLjUsMS40LDEuMzMzMzMzMzMzMzMzMzMzMywxLjI2NjY2NjY2NjY2NjY2NjYsMS4yMTA1MjYzMTU3ODk0NzM3LDEuMTczOTEzMDQzNDc4MjYxLDEuMTQyODU3MTQyODU3MTQyOCwxLjExNzY0NzA1ODgyMzUyOTRdLGxpbmVXaWR0aEJvbGQ6Mixib3JkZXJSYWRpdXNYUzoxLGJvcmRlclJhZGl1c1NNOjQsYm9yZGVyUmFkaXVzTEc6OCxib3JkZXJSYWRpdXNPdXRlcjo0LGNvbG9yTGluazoiIzE2NzdmZiIsY29sb3JMaW5rSG92ZXI6IiM2OWIxZmYiLGNvbG9yTGlua0FjdGl2ZToiIzA5NThkOSIsY29sb3JGaWxsQ29udGVudDoicmdiYSgwLCAwLCAwLCAwLjA2KSIsY29sb3JGaWxsQ29udGVudEhvdmVyOiJyZ2JhKDAsIDAsIDAsIDAuMTUpIixjb2xvckZpbGxBbHRlcjoicmdiYSgwLCAwLCAwLCAwLjAyKSIsY29sb3JCZ0NvbnRhaW5lckRpc2FibGVkOiJyZ2JhKDAsIDAsIDAsIDAuMDQpIixjb2xvckJvcmRlckJnOiIjZmZmZmZmIixjb2xvclNwbGl0OiJyZ2JhKDUsIDUsIDUsIDAuMDYpIixjb2xvclRleHRQbGFjZWhvbGRlcjoicmdiYSgwLCAwLCAwLCAwLjI1KSIsY29sb3JUZXh0RGlzYWJsZWQ6InJnYmEoMCwgMCwgMCwgMC4yNSkiLGNvbG9yVGV4dEhlYWRpbmc6InJnYmEoMCwgMCwgMCwgMC44OCkiLGNvbG9yVGV4dExhYmVsOiJyZ2JhKDAsIDAsIDAsIDAuNjUpIixjb2xvclRleHREZXNjcmlwdGlvbjoicmdiYSgwLCAwLCAwLCAwLjQ1KSIsY29sb3JUZXh0TGlnaHRTb2xpZDoiI2ZmZiIsY29sb3JIaWdobGlnaHQ6IiNmZjc4NzUiLGNvbG9yQmdUZXh0SG92ZXI6InJnYmEoMCwgMCwgMCwgMC4wNikiLGNvbG9yQmdUZXh0QWN0aXZlOiJyZ2JhKDAsIDAsIDAsIDAuMTUpIixjb2xvckljb246InJnYmEoMCwgMCwgMCwgMC40NSkiLGNvbG9ySWNvbkhvdmVyOiJyZ2JhKDAsIDAsIDAsIDAuODgpIixjb2xvckVycm9yT3V0bGluZToicmdiYSgyNTUsIDM4LCA1LCAwLjA2KSIsY29sb3JXYXJuaW5nT3V0bGluZToicmdiYSgyNTUsIDIxNSwgNSwgMC4xKSIsZm9udFNpemVTTToxMixmb250U2l6ZUxHOjE2LGZvbnRTaXplWEw6MjAsZm9udFNpemVIZWFkaW5nMTozOCxmb250U2l6ZUhlYWRpbmcyOjMwLGZvbnRTaXplSGVhZGluZzM6MjQsZm9udFNpemVIZWFkaW5nNDoyMCxmb250U2l6ZUhlYWRpbmc1OjE2LGZvbnRTaXplSWNvbjoxMixsaW5lSGVpZ2h0OjEuNTcxNDI4NTcxNDI4NTcxNCxsaW5lSGVpZ2h0TEc6MS41LGxpbmVIZWlnaHRTTToxLjY2NjY2NjY2NjY2NjY2NjcsbGluZUhlaWdodEhlYWRpbmcxOjEuMjEwNTI2MzE1Nzg5NDczNyxsaW5lSGVpZ2h0SGVhZGluZzI6MS4yNjY2NjY2NjY2NjY2NjY2LGxpbmVIZWlnaHRIZWFkaW5nMzoxLjMzMzMzMzMzMzMzMzMzMzMsbGluZUhlaWdodEhlYWRpbmc0OjEuNCxsaW5lSGVpZ2h0SGVhZGluZzU6MS41LGNvbnRyb2xPdXRsaW5lV2lkdGg6Mixjb250cm9sSW50ZXJhY3RpdmVTaXplOjE2LGNvbnRyb2xJdGVtQmdIb3ZlcjoicmdiYSgwLCAwLCAwLCAwLjA0KSIsY29udHJvbEl0ZW1CZ0FjdGl2ZToiI2U2ZjRmZiIsY29udHJvbEl0ZW1CZ0FjdGl2ZUhvdmVyOiIjYmFlMGZmIixjb250cm9sSXRlbUJnQWN0aXZlRGlzYWJsZWQ6InJnYmEoMCwgMCwgMCwgMC4xNSkiLGNvbnRyb2xUbXBPdXRsaW5lOiJyZ2JhKDAsIDAsIDAsIDAuMDIpIixjb250cm9sT3V0bGluZToicmdiYSg1LCAxNDUsIDI1NSwgMC4xKSIsZm9udFdlaWdodFN0cm9uZzo2MDAsb3BhY2l0eUxvYWRpbmc6LjY1LGxpbmtEZWNvcmF0aW9uOiJub25lIixsaW5rSG92ZXJEZWNvcmF0aW9uOiJub25lIixsaW5rRm9jdXNEZWNvcmF0aW9uOiJub25lIixjb250cm9sUGFkZGluZ0hvcml6b250YWw6MTIsY29udHJvbFBhZGRpbmdIb3Jpem9udGFsU006OCxwYWRkaW5nWFhTOjQscGFkZGluZ1hTOjgscGFkZGluZ1NNOjEyLHBhZGRpbmc6MTYscGFkZGluZ01EOjIwLHBhZGRpbmdMRzoyNCxwYWRkaW5nWEw6MzIscGFkZGluZ0NvbnRlbnRIb3Jpem9udGFsTEc6MjQscGFkZGluZ0NvbnRlbnRWZXJ0aWNhbExHOjE2LHBhZGRpbmdDb250ZW50SG9yaXpvbnRhbDoxNixwYWRkaW5nQ29udGVudFZlcnRpY2FsOjEyLHBhZGRpbmdDb250ZW50SG9yaXpvbnRhbFNNOjE2LHBhZGRpbmdDb250ZW50VmVydGljYWxTTTo4LG1hcmdpblhYUzo0LG1hcmdpblhTOjgsbWFyZ2luU006MTIsbWFyZ2luOjE2LG1hcmdpbk1EOjIwLG1hcmdpbkxHOjI0LG1hcmdpblhMOjMyLG1hcmdpblhYTDo0OCxib3hTaGFkb3c6IjAgMXB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4wMyksMCAxcHggNnB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjAyKSwwIDJweCA0cHggMCByZ2JhKDAsIDAsIDAsIDAuMDIpIixib3hTaGFkb3dTZWNvbmRhcnk6IjAgNnB4IDE2cHggMCByZ2JhKDAsIDAsIDAsIDAuMDgpLDAgM3B4IDZweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC4xMiksMCA5cHggMjhweCA4cHggcmdiYSgwLCAwLCAwLCAwLjA1KSIsc2NyZWVuWFM6NDgwLHNjcmVlblhTTWluOjQ4MCxzY3JlZW5YU01heDo0Nzksc2NyZWVuU006NTc2LHNjcmVlblNNTWluOjU3NixzY3JlZW5TTU1heDo1NzUsc2NyZWVuTUQ6NzY4LHNjcmVlbk1ETWluOjc2OCxzY3JlZW5NRE1heDo3Njcsc2NyZWVuTEc6OTkyLHNjcmVlbkxHTWluOjk5MixzY3JlZW5MR01heDo5OTEsc2NyZWVuWEw6MTIwMCxzY3JlZW5YTE1pbjoxMjAwLHNjcmVlblhMTWF4OjExOTksc2NyZWVuWFhMOjE2MDAsc2NyZWVuWFhMTWluOjE2MDAsc2NyZWVuWFhMTWF4OjE1OTksYm94U2hhZG93UG9wb3ZlckFycm93OiIzcHggM3B4IDdweCByZ2JhKDAsIDAsIDAsIDAuMSkiLGJveFNoYWRvd0NhcmQ6IjAgMXB4IDJweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4xNiksMCAzcHggNnB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKSwwIDVweCAxMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMDkpIixib3hTaGFkb3dEcmF3ZXJSaWdodDoiLTZweCAwIDE2cHggMCByZ2JhKDAsIDAsIDAsIDAuMDgpLC0zcHggMCA2cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMTIpLC05cHggMCAyOHB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMDUpIixib3hTaGFkb3dEcmF3ZXJMZWZ0OiI2cHggMCAxNnB4IDAgcmdiYSgwLCAwLCAwLCAwLjA4KSwzcHggMCA2cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMTIpLDlweCAwIDI4cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4wNSkiLGJveFNoYWRvd0RyYXdlclVwOiIwIDZweCAxNnB4IDAgcmdiYSgwLCAwLCAwLCAwLjA4KSwwIDNweCA2cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMTIpLDAgOXB4IDI4cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4wNSkiLGJveFNoYWRvd0RyYXdlckRvd246IjAgLTZweCAxNnB4IDAgcmdiYSgwLCAwLCAwLCAwLjA4KSwwIC0zcHggNnB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjEyKSwwIC05cHggMjhweCA4cHggcmdiYSgwLCAwLCAwLCAwLjA1KSIsYm94U2hhZG93VGFic092ZXJmbG93TGVmdDoiaW5zZXQgMTBweCAwIDhweCAtOHB4IHJnYmEoMCwgMCwgMCwgMC4wOCkiLGJveFNoYWRvd1RhYnNPdmVyZmxvd1JpZ2h0OiJpbnNldCAtMTBweCAwIDhweCAtOHB4IHJnYmEoMCwgMCwgMCwgMC4wOCkiLGJveFNoYWRvd1RhYnNPdmVyZmxvd1RvcDoiaW5zZXQgMCAxMHB4IDhweCAtOHB4IHJnYmEoMCwgMCwgMCwgMC4wOCkiLGJveFNoYWRvd1RhYnNPdmVyZmxvd0JvdHRvbToiaW5zZXQgMCAtMTBweCA4cHggLThweCByZ2JhKDAsIDAsIDAsIDAuMDgpIixfdG9rZW5LZXk6IjE5dzgwZmYiLF9oYXNoSWQ6ImNzcy1kZXYtb25seS1kby1ub3Qtb3ZlcnJpZGUtaTJ6dTlxIn0sYT1mdW5jdGlvbihtKXtmb3IodmFyIEM9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOjEsZz0zNzM1OTI4NTU5XkMsdz0xMTAzNTQ3OTkxXkMsRT0wLHg7RTxtLmxlbmd0aDtFKyspeD1tLmNoYXJDb2RlQXQoRSksZz1NYXRoLmltdWwoZ154LDI2NTQ0MzU3NjEpLHc9TWF0aC5pbXVsKHdeeCwxNTk3MzM0Njc3KTtyZXR1cm4gZz1NYXRoLmltdWwoZ15nPj4+MTYsMjI0NjgyMjUwNyleTWF0aC5pbXVsKHdedz4+PjEzLDMyNjY0ODk5MDkpLHc9TWF0aC5pbXVsKHdedz4+PjE2LDIyNDY4MjI1MDcpXk1hdGguaW11bChnXmc+Pj4xMywzMjY2NDg5OTA5KSw0Mjk0OTY3Mjk2KigyMDk3MTUxJncpKyhnPj4+MCl9LHU9KDAsbi5qRykoZnVuY3Rpb24oZCl7cmV0dXJuIGR9KSxjPXt0aGVtZTp1LHRva2VuOigwLHIuWikoKDAsci5aKSh7fSxzKSx0Llo9PT1udWxsfHx0Llo9PT12b2lkIDB8fChpPXQuWi5kZWZhdWx0QWxnb3JpdGhtKT09PW51bGx8fGk9PT12b2lkIDA/dm9pZCAwOmkuY2FsbCh0LlosdC5aPT09bnVsbHx8dC5aPT09dm9pZCAwP3ZvaWQgMDp0LlouZGVmYXVsdFNlZWQpKSxoYXNoSWQ6InByby0iLmNvbmNhdChhKEpTT04uc3RyaW5naWZ5KHMpKSl9LGg9ZnVuY3Rpb24oKXtyZXR1cm4gY319LDE5Nzc6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7bjpmdW5jdGlvbigpe3JldHVybiBkfX0pO3ZhciByPWUoOTc2ODUpLG49ZSg3MTAwMiksdD0vXlt2Xn48Pj1dKj8oXGQrKSg/OlwuKFt4Kl18XGQrKSg/OlwuKFt4Kl18XGQrKSg/OlwuKFt4Kl18XGQrKSk/KD86LShbXGRhLXpcLV0rKD86XC5bXGRhLXpcLV0rKSopKT8oPzpcK1tcZGEtelwtXSsoPzpcLltcZGEtelwtXSspKik/KT8pPyQvaSxpPWZ1bmN0aW9uKEMpe3JldHVybiBDPT09IioifHxDPT09IngifHxDPT09IlgifSxzPWZ1bmN0aW9uKEMpe3ZhciBnPXBhcnNlSW50KEMsMTApO3JldHVybiBpc05hTihnKT9DOmd9LGE9ZnVuY3Rpb24oQyxnKXtyZXR1cm4oMCxuLlopKEMpIT09KDAsbi5aKShnKT9bU3RyaW5nKEMpLFN0cmluZyhnKV06W0MsZ119LHU9ZnVuY3Rpb24oQyxnKXtpZihpKEMpfHxpKGcpKXJldHVybiAwO3ZhciB3PWEocyhDKSxzKGcpKSxFPSgwLHIuWikodywyKSx4PUVbMF0sTz1FWzFdO3JldHVybiB4Pk8/MTp4PE8/LTE6MH0sYz1mdW5jdGlvbihDLGcpe2Zvcih2YXIgdz0wO3c8TWF0aC5tYXgoQy5sZW5ndGgsZy5sZW5ndGgpO3crKyl7dmFyIEU9dShDW3ddfHwiMCIsZ1t3XXx8IjAiKTtpZihFIT09MClyZXR1cm4gRX1yZXR1cm4gMH0saD1mdW5jdGlvbihDKXt2YXIgZyx3PUMubWF0Y2godCk7cmV0dXJuIHc9PW51bGx8fChnPXcuc2hpZnQpPT09bnVsbHx8Zz09PXZvaWQgMHx8Zy5jYWxsKHcpLHd9LGQ9ZnVuY3Rpb24oQyxnKXt2YXIgdz1oKEMpLEU9aChnKSx4PXcucG9wKCksTz1FLnBvcCgpLFQ9Yyh3LEUpO3JldHVybiBUIT09MD9UOnh8fE8/eD8tMToxOjB9fSw3MzE3NzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtYOmZ1bmN0aW9uKCl7cmV0dXJuIGF9LGI6ZnVuY3Rpb24oKXtyZXR1cm4gc319KTt2YXIgcj1lKDY3MTU5KSxuPWUoNTE4MTIpLHQ9ZSgxOTc3KSxpPWUoMzQxNTUpLHM9ZnVuY3Rpb24oKXt2YXIgYztyZXR1cm4gdHlwZW9mIGk9PSJ1bmRlZmluZWQiP3IuWjooKGM9aSk9PT1udWxsfHxpPT09dm9pZCAwfHwoaT17Tk9ERV9FTlY6InByb2R1Y3Rpb24iLFBVQkxJQ19QQVRIOiIvIn0pPT09bnVsbHx8aT09PXZvaWQgMD92b2lkIDA6aS5BTlREX1ZFUlNJT04pfHxyLlp9LGE9ZnVuY3Rpb24oYyxoKXt2YXIgZD0oMCx0Lm4pKHMoKSwiNC4yMy4wIik+LTE/e29wZW46Yyxvbk9wZW5DaGFuZ2U6aH06e3Zpc2libGU6YyxvblZpc2libGVDaGFuZ2U6aH07cmV0dXJuKDAsbi5ZKShkKX19LDEyMDQ0OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse2o6ZnVuY3Rpb24oKXtyZXR1cm4gdH19KTt2YXIgcj1lKDM0MTU1KSxuPXR5cGVvZiByIT0idW5kZWZpbmVkIiYmci52ZXJzaW9ucyE9bnVsbCYmci52ZXJzaW9ucy5ub2RlIT1udWxsLHQ9ZnVuY3Rpb24oKXtyZXR1cm4gdHlwZW9mIHdpbmRvdyE9InVuZGVmaW5lZCImJnR5cGVvZiB3aW5kb3cuZG9jdW1lbnQhPSJ1bmRlZmluZWQiJiZ0eXBlb2Ygd2luZG93Lm1hdGNoTWVkaWEhPSJ1bmRlZmluZWQiJiYhbn19LDkyMjEwOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1Q6ZnVuY3Rpb24oKXtyZXR1cm4gdH19KTt2YXIgcj1lKDE0MTMpLG49ZSg3MTAwMiksdD1mdW5jdGlvbigpe2Zvcih2YXIgcz17fSxhPWFyZ3VtZW50cy5sZW5ndGgsdT1uZXcgQXJyYXkoYSksYz0wO2M8YTtjKyspdVtjXT1hcmd1bWVudHNbY107Zm9yKHZhciBoPXUubGVuZ3RoLGQsbT0wO208aDttKz0xKWZvcihkIGluIHVbbV0pdVttXS5oYXNPd25Qcm9wZXJ0eShkKSYmKCgwLG4uWikoc1tkXSk9PT0ib2JqZWN0IiYmKDAsbi5aKSh1W21dW2RdKT09PSJvYmplY3QiJiZzW2RdIT09dm9pZCAwJiZzW2RdIT09bnVsbCYmIUFycmF5LmlzQXJyYXkoc1tkXSkmJiFBcnJheS5pc0FycmF5KHVbbV1bZF0pP3NbZF09KDAsci5aKSgoMCxyLlopKHt9LHNbZF0pLHVbbV1bZF0pOnNbZF09dVttXVtkXSk7cmV0dXJuIHN9fSw1MTgxMjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtZOmZ1bmN0aW9uKCl7cmV0dXJuIHJ9fSk7dmFyIHI9ZnVuY3Rpb24odCl7dmFyIGk9e307aWYoT2JqZWN0LmtleXModHx8e30pLmZvckVhY2goZnVuY3Rpb24ocyl7dFtzXSE9PXZvaWQgMCYmKGlbc109dFtzXSl9KSwhKE9iamVjdC5rZXlzKGkpLmxlbmd0aDwxKSlyZXR1cm4gaX19LDg2NTAwOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1Q2OmZ1bmN0aW9uKCl7cmV0dXJuIEN9LFZEOmZ1bmN0aW9uKCl7cmV0dXJuIGd9LFdFOmZ1bmN0aW9uKCl7cmV0dXJuIHV9LFl0OmZ1bmN0aW9uKCl7cmV0dXJuIHd9LGxDOmZ1bmN0aW9uKCl7cmV0dXJuIHR9LHB5OmZ1bmN0aW9uKCl7cmV0dXJuIGF9LHJXOmZ1bmN0aW9uKCl7cmV0dXJuIG59LHM6ZnVuY3Rpb24oKXtyZXR1cm4gaH0sdmU6ZnVuY3Rpb24oKXtyZXR1cm4gc30sdnE6ZnVuY3Rpb24oKXtyZXR1cm4gY319KTt2YXIgcj1lKDkwMjc5KTtmdW5jdGlvbiBuKEUseCxPKXtyZXR1cm57cjooMCxyLnNoKShFLDI1NSkqMjU1LGc6KDAsci5zaCkoeCwyNTUpKjI1NSxiOigwLHIuc2gpKE8sMjU1KSoyNTV9fWZ1bmN0aW9uIHQoRSx4LE8pe0U9KDAsci5zaCkoRSwyNTUpLHg9KDAsci5zaCkoeCwyNTUpLE89KDAsci5zaCkoTywyNTUpO3ZhciBUPU1hdGgubWF4KEUseCxPKSxTPU1hdGgubWluKEUseCxPKSxMPTAsST0wLFI9KFQrUykvMjtpZihUPT09UylJPTAsTD0wO2Vsc2V7dmFyIHo9VC1TO3N3aXRjaChJPVI+LjU/ei8oMi1ULVMpOnovKFQrUyksVCl7Y2FzZSBFOkw9KHgtTykveisoeDxPPzY6MCk7YnJlYWs7Y2FzZSB4Okw9KE8tRSkveisyO2JyZWFrO2Nhc2UgTzpMPShFLXgpL3orNDticmVhaztkZWZhdWx0OmJyZWFrfUwvPTZ9cmV0dXJue2g6TCxzOkksbDpSfX1mdW5jdGlvbiBpKEUseCxPKXtyZXR1cm4gTzwwJiYoTys9MSksTz4xJiYoTy09MSksTzwuMTY2NjY2NjY2NjY2NjY2NjY/RSsoeC1FKSooNipPKTpPPC41P3g6TzwuNjY2NjY2NjY2NjY2NjY2Nj9FKyh4LUUpKiguNjY2NjY2NjY2NjY2NjY2Ni1PKSo2OkV9ZnVuY3Rpb24gcyhFLHgsTyl7dmFyIFQsUyxMO2lmKEU9KDAsci5zaCkoRSwzNjApLHg9KDAsci5zaCkoeCwxMDApLE89KDAsci5zaCkoTywxMDApLHg9PT0wKVM9TyxMPU8sVD1PO2Vsc2V7dmFyIEk9TzwuNT9PKigxK3gpOk8reC1PKngsUj0yKk8tSTtUPWkoUixJLEUrLjMzMzMzMzMzMzMzMzMzMzMpLFM9aShSLEksRSksTD1pKFIsSSxFLS4zMzMzMzMzMzMzMzMzMzMzKX1yZXR1cm57cjpUKjI1NSxnOlMqMjU1LGI6TCoyNTV9fWZ1bmN0aW9uIGEoRSx4LE8pe0U9KDAsci5zaCkoRSwyNTUpLHg9KDAsci5zaCkoeCwyNTUpLE89KDAsci5zaCkoTywyNTUpO3ZhciBUPU1hdGgubWF4KEUseCxPKSxTPU1hdGgubWluKEUseCxPKSxMPTAsST1ULFI9VC1TLHo9VD09PTA/MDpSL1Q7aWYoVD09PVMpTD0wO2Vsc2V7c3dpdGNoKFQpe2Nhc2UgRTpMPSh4LU8pL1IrKHg8Tz82OjApO2JyZWFrO2Nhc2UgeDpMPShPLUUpL1IrMjticmVhaztjYXNlIE86TD0oRS14KS9SKzQ7YnJlYWs7ZGVmYXVsdDpicmVha31MLz02fXJldHVybntoOkwsczp6LHY6SX19ZnVuY3Rpb24gdShFLHgsTyl7RT0oMCxyLnNoKShFLDM2MCkqNix4PSgwLHIuc2gpKHgsMTAwKSxPPSgwLHIuc2gpKE8sMTAwKTt2YXIgVD1NYXRoLmZsb29yKEUpLFM9RS1ULEw9TyooMS14KSxJPU8qKDEtUyp4KSxSPU8qKDEtKDEtUykqeCksej1UJTYsRz1bTyxJLEwsTCxSLE9dW3pdLFk9W1IsTyxPLEksTCxMXVt6XSxlZT1bTCxMLFIsTyxPLEldW3pdO3JldHVybntyOkcqMjU1LGc6WSoyNTUsYjplZSoyNTV9fWZ1bmN0aW9uIGMoRSx4LE8sVCl7dmFyIFM9WygwLHIuRlopKE1hdGgucm91bmQoRSkudG9TdHJpbmcoMTYpKSwoMCxyLkZaKShNYXRoLnJvdW5kKHgpLnRvU3RyaW5nKDE2KSksKDAsci5GWikoTWF0aC5yb3VuZChPKS50b1N0cmluZygxNikpXTtyZXR1cm4gVCYmU1swXS5zdGFydHNXaXRoKFNbMF0uY2hhckF0KDEpKSYmU1sxXS5zdGFydHNXaXRoKFNbMV0uY2hhckF0KDEpKSYmU1syXS5zdGFydHNXaXRoKFNbMl0uY2hhckF0KDEpKT9TWzBdLmNoYXJBdCgwKStTWzFdLmNoYXJBdCgwKStTWzJdLmNoYXJBdCgwKTpTLmpvaW4oIiIpfWZ1bmN0aW9uIGgoRSx4LE8sVCxTKXt2YXIgTD1bKDAsci5GWikoTWF0aC5yb3VuZChFKS50b1N0cmluZygxNikpLCgwLHIuRlopKE1hdGgucm91bmQoeCkudG9TdHJpbmcoMTYpKSwoMCxyLkZaKShNYXRoLnJvdW5kKE8pLnRvU3RyaW5nKDE2KSksKDAsci5GWikobShUKSldO3JldHVybiBTJiZMWzBdLnN0YXJ0c1dpdGgoTFswXS5jaGFyQXQoMSkpJiZMWzFdLnN0YXJ0c1dpdGgoTFsxXS5jaGFyQXQoMSkpJiZMWzJdLnN0YXJ0c1dpdGgoTFsyXS5jaGFyQXQoMSkpJiZMWzNdLnN0YXJ0c1dpdGgoTFszXS5jaGFyQXQoMSkpP0xbMF0uY2hhckF0KDApK0xbMV0uY2hhckF0KDApK0xbMl0uY2hhckF0KDApK0xbM10uY2hhckF0KDApOkwuam9pbigiIil9ZnVuY3Rpb24gZChFLHgsTyxUKXt2YXIgUz1bcGFkMihtKFQpKSxwYWQyKE1hdGgucm91bmQoRSkudG9TdHJpbmcoMTYpKSxwYWQyKE1hdGgucm91bmQoeCkudG9TdHJpbmcoMTYpKSxwYWQyKE1hdGgucm91bmQoTykudG9TdHJpbmcoMTYpKV07cmV0dXJuIFMuam9pbigiIil9ZnVuY3Rpb24gbShFKXtyZXR1cm4gTWF0aC5yb3VuZChwYXJzZUZsb2F0KEUpKjI1NSkudG9TdHJpbmcoMTYpfWZ1bmN0aW9uIEMoRSl7cmV0dXJuIGcoRSkvMjU1fWZ1bmN0aW9uIGcoRSl7cmV0dXJuIHBhcnNlSW50KEUsMTYpfWZ1bmN0aW9uIHcoRSl7cmV0dXJue3I6RT4+MTYsZzooRSY2NTI4MCk+PjgsYjpFJjI1NX19fSw0ODcwMTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtSOmZ1bmN0aW9uKCl7cmV0dXJuIHJ9fSk7dmFyIHI9e2FsaWNlYmx1ZToiI2YwZjhmZiIsYW50aXF1ZXdoaXRlOiIjZmFlYmQ3IixhcXVhOiIjMDBmZmZmIixhcXVhbWFyaW5lOiIjN2ZmZmQ0IixhenVyZToiI2YwZmZmZiIsYmVpZ2U6IiNmNWY1ZGMiLGJpc3F1ZToiI2ZmZTRjNCIsYmxhY2s6IiMwMDAwMDAiLGJsYW5jaGVkYWxtb25kOiIjZmZlYmNkIixibHVlOiIjMDAwMGZmIixibHVldmlvbGV0OiIjOGEyYmUyIixicm93bjoiI2E1MmEyYSIsYnVybHl3b29kOiIjZGViODg3IixjYWRldGJsdWU6IiM1ZjllYTAiLGNoYXJ0cmV1c2U6IiM3ZmZmMDAiLGNob2NvbGF0ZToiI2QyNjkxZSIsY29yYWw6IiNmZjdmNTAiLGNvcm5mbG93ZXJibHVlOiIjNjQ5NWVkIixjb3Juc2lsazoiI2ZmZjhkYyIsY3JpbXNvbjoiI2RjMTQzYyIsY3lhbjoiIzAwZmZmZiIsZGFya2JsdWU6IiMwMDAwOGIiLGRhcmtjeWFuOiIjMDA4YjhiIixkYXJrZ29sZGVucm9kOiIjYjg4NjBiIixkYXJrZ3JheToiI2E5YTlhOSIsZGFya2dyZWVuOiIjMDA2NDAwIixkYXJrZ3JleToiI2E5YTlhOSIsZGFya2toYWtpOiIjYmRiNzZiIixkYXJrbWFnZW50YToiIzhiMDA4YiIsZGFya29saXZlZ3JlZW46IiM1NTZiMmYiLGRhcmtvcmFuZ2U6IiNmZjhjMDAiLGRhcmtvcmNoaWQ6IiM5OTMyY2MiLGRhcmtyZWQ6IiM4YjAwMDAiLGRhcmtzYWxtb246IiNlOTk2N2EiLGRhcmtzZWFncmVlbjoiIzhmYmM4ZiIsZGFya3NsYXRlYmx1ZToiIzQ4M2Q4YiIsZGFya3NsYXRlZ3JheToiIzJmNGY0ZiIsZGFya3NsYXRlZ3JleToiIzJmNGY0ZiIsZGFya3R1cnF1b2lzZToiIzAwY2VkMSIsZGFya3Zpb2xldDoiIzk0MDBkMyIsZGVlcHBpbms6IiNmZjE0OTMiLGRlZXBza3libHVlOiIjMDBiZmZmIixkaW1ncmF5OiIjNjk2OTY5IixkaW1ncmV5OiIjNjk2OTY5Iixkb2RnZXJibHVlOiIjMWU5MGZmIixmaXJlYnJpY2s6IiNiMjIyMjIiLGZsb3JhbHdoaXRlOiIjZmZmYWYwIixmb3Jlc3RncmVlbjoiIzIyOGIyMiIsZnVjaHNpYToiI2ZmMDBmZiIsZ2FpbnNib3JvOiIjZGNkY2RjIixnaG9zdHdoaXRlOiIjZjhmOGZmIixnb2xkZW5yb2Q6IiNkYWE1MjAiLGdvbGQ6IiNmZmQ3MDAiLGdyYXk6IiM4MDgwODAiLGdyZWVuOiIjMDA4MDAwIixncmVlbnllbGxvdzoiI2FkZmYyZiIsZ3JleToiIzgwODA4MCIsaG9uZXlkZXc6IiNmMGZmZjAiLGhvdHBpbms6IiNmZjY5YjQiLGluZGlhbnJlZDoiI2NkNWM1YyIsaW5kaWdvOiIjNGIwMDgyIixpdm9yeToiI2ZmZmZmMCIsa2hha2k6IiNmMGU2OGMiLGxhdmVuZGVyYmx1c2g6IiNmZmYwZjUiLGxhdmVuZGVyOiIjZTZlNmZhIixsYXduZ3JlZW46IiM3Y2ZjMDAiLGxlbW9uY2hpZmZvbjoiI2ZmZmFjZCIsbGlnaHRibHVlOiIjYWRkOGU2IixsaWdodGNvcmFsOiIjZjA4MDgwIixsaWdodGN5YW46IiNlMGZmZmYiLGxpZ2h0Z29sZGVucm9keWVsbG93OiIjZmFmYWQyIixsaWdodGdyYXk6IiNkM2QzZDMiLGxpZ2h0Z3JlZW46IiM5MGVlOTAiLGxpZ2h0Z3JleToiI2QzZDNkMyIsbGlnaHRwaW5rOiIjZmZiNmMxIixsaWdodHNhbG1vbjoiI2ZmYTA3YSIsbGlnaHRzZWFncmVlbjoiIzIwYjJhYSIsbGlnaHRza3libHVlOiIjODdjZWZhIixsaWdodHNsYXRlZ3JheToiIzc3ODg5OSIsbGlnaHRzbGF0ZWdyZXk6IiM3Nzg4OTkiLGxpZ2h0c3RlZWxibHVlOiIjYjBjNGRlIixsaWdodHllbGxvdzoiI2ZmZmZlMCIsbGltZToiIzAwZmYwMCIsbGltZWdyZWVuOiIjMzJjZDMyIixsaW5lbjoiI2ZhZjBlNiIsbWFnZW50YToiI2ZmMDBmZiIsbWFyb29uOiIjODAwMDAwIixtZWRpdW1hcXVhbWFyaW5lOiIjNjZjZGFhIixtZWRpdW1ibHVlOiIjMDAwMGNkIixtZWRpdW1vcmNoaWQ6IiNiYTU1ZDMiLG1lZGl1bXB1cnBsZToiIzkzNzBkYiIsbWVkaXVtc2VhZ3JlZW46IiMzY2IzNzEiLG1lZGl1bXNsYXRlYmx1ZToiIzdiNjhlZSIsbWVkaXVtc3ByaW5nZ3JlZW46IiMwMGZhOWEiLG1lZGl1bXR1cnF1b2lzZToiIzQ4ZDFjYyIsbWVkaXVtdmlvbGV0cmVkOiIjYzcxNTg1IixtaWRuaWdodGJsdWU6IiMxOTE5NzAiLG1pbnRjcmVhbToiI2Y1ZmZmYSIsbWlzdHlyb3NlOiIjZmZlNGUxIixtb2NjYXNpbjoiI2ZmZTRiNSIsbmF2YWpvd2hpdGU6IiNmZmRlYWQiLG5hdnk6IiMwMDAwODAiLG9sZGxhY2U6IiNmZGY1ZTYiLG9saXZlOiIjODA4MDAwIixvbGl2ZWRyYWI6IiM2YjhlMjMiLG9yYW5nZToiI2ZmYTUwMCIsb3JhbmdlcmVkOiIjZmY0NTAwIixvcmNoaWQ6IiNkYTcwZDYiLHBhbGVnb2xkZW5yb2Q6IiNlZWU4YWEiLHBhbGVncmVlbjoiIzk4ZmI5OCIscGFsZXR1cnF1b2lzZToiI2FmZWVlZSIscGFsZXZpb2xldHJlZDoiI2RiNzA5MyIscGFwYXlhd2hpcDoiI2ZmZWZkNSIscGVhY2hwdWZmOiIjZmZkYWI5IixwZXJ1OiIjY2Q4NTNmIixwaW5rOiIjZmZjMGNiIixwbHVtOiIjZGRhMGRkIixwb3dkZXJibHVlOiIjYjBlMGU2IixwdXJwbGU6IiM4MDAwODAiLHJlYmVjY2FwdXJwbGU6IiM2NjMzOTkiLHJlZDoiI2ZmMDAwMCIscm9zeWJyb3duOiIjYmM4ZjhmIixyb3lhbGJsdWU6IiM0MTY5ZTEiLHNhZGRsZWJyb3duOiIjOGI0NTEzIixzYWxtb246IiNmYTgwNzIiLHNhbmR5YnJvd246IiNmNGE0NjAiLHNlYWdyZWVuOiIjMmU4YjU3IixzZWFzaGVsbDoiI2ZmZjVlZSIsc2llbm5hOiIjYTA1MjJkIixzaWx2ZXI6IiNjMGMwYzAiLHNreWJsdWU6IiM4N2NlZWIiLHNsYXRlYmx1ZToiIzZhNWFjZCIsc2xhdGVncmF5OiIjNzA4MDkwIixzbGF0ZWdyZXk6IiM3MDgwOTAiLHNub3c6IiNmZmZhZmEiLHNwcmluZ2dyZWVuOiIjMDBmZjdmIixzdGVlbGJsdWU6IiM0NjgyYjQiLHRhbjoiI2QyYjQ4YyIsdGVhbDoiIzAwODA4MCIsdGhpc3RsZToiI2Q4YmZkOCIsdG9tYXRvOiIjZmY2MzQ3Iix0dXJxdW9pc2U6IiM0MGUwZDAiLHZpb2xldDoiI2VlODJlZSIsd2hlYXQ6IiNmNWRlYjMiLHdoaXRlOiIjZmZmZmZmIix3aGl0ZXNtb2tlOiIjZjVmNWY1Iix5ZWxsb3c6IiNmZmZmMDAiLHllbGxvd2dyZWVuOiIjOWFjZDMyIn19LDEzNTA6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7dUE6ZnVuY3Rpb24oKXtyZXR1cm4gaX19KTt2YXIgcj1lKDg2NTAwKSxuPWUoNDg3MDEpLHQ9ZSg5MDI3OSk7ZnVuY3Rpb24gaShnKXt2YXIgdz17cjowLGc6MCxiOjB9LEU9MSx4PW51bGwsTz1udWxsLFQ9bnVsbCxTPSExLEw9ITE7cmV0dXJuIHR5cGVvZiBnPT0ic3RyaW5nIiYmKGc9bShnKSksdHlwZW9mIGc9PSJvYmplY3QiJiYoQyhnLnIpJiZDKGcuZykmJkMoZy5iKT8odz0oMCxyLnJXKShnLnIsZy5nLGcuYiksUz0hMCxMPVN0cmluZyhnLnIpLnN1YnN0cigtMSk9PT0iJSI/InByZ2IiOiJyZ2IiKTpDKGcuaCkmJkMoZy5zKSYmQyhnLnYpPyh4PSgwLHQuSlgpKGcucyksTz0oMCx0LkpYKShnLnYpLHc9KDAsci5XRSkoZy5oLHgsTyksUz0hMCxMPSJoc3YiKTpDKGcuaCkmJkMoZy5zKSYmQyhnLmwpJiYoeD0oMCx0LkpYKShnLnMpLFQ9KDAsdC5KWCkoZy5sKSx3PSgwLHIudmUpKGcuaCx4LFQpLFM9ITAsTD0iaHNsIiksT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGcsImEiKSYmKEU9Zy5hKSksRT0oMCx0LllxKShFKSx7b2s6Uyxmb3JtYXQ6Zy5mb3JtYXR8fEwscjpNYXRoLm1pbigyNTUsTWF0aC5tYXgody5yLDApKSxnOk1hdGgubWluKDI1NSxNYXRoLm1heCh3LmcsMCkpLGI6TWF0aC5taW4oMjU1LE1hdGgubWF4KHcuYiwwKSksYTpFfX12YXIgcz0iWy1cXCtdP1xcZCslPyIsYT0iWy1cXCtdP1xcZCpcXC5cXGQrJT8iLHU9Iig/OiIuY29uY2F0KGEsIil8KD86IikuY29uY2F0KHMsIikiKSxjPSJbXFxzfFxcKF0rKCIuY29uY2F0KHUsIilbLHxcXHNdKygiKS5jb25jYXQodSwiKVssfFxcc10rKCIpLmNvbmNhdCh1LCIpXFxzKlxcKT8iKSxoPSJbXFxzfFxcKF0rKCIuY29uY2F0KHUsIilbLHxcXHNdKygiKS5jb25jYXQodSwiKVssfFxcc10rKCIpLmNvbmNhdCh1LCIpWyx8XFxzXSsoIikuY29uY2F0KHUsIilcXHMqXFwpPyIpLGQ9e0NTU19VTklUOm5ldyBSZWdFeHAodSkscmdiOm5ldyBSZWdFeHAoInJnYiIrYykscmdiYTpuZXcgUmVnRXhwKCJyZ2JhIitoKSxoc2w6bmV3IFJlZ0V4cCgiaHNsIitjKSxoc2xhOm5ldyBSZWdFeHAoImhzbGEiK2gpLGhzdjpuZXcgUmVnRXhwKCJoc3YiK2MpLGhzdmE6bmV3IFJlZ0V4cCgiaHN2YSIraCksaGV4MzovXiM/KFswLTlhLWZBLUZdezF9KShbMC05YS1mQS1GXXsxfSkoWzAtOWEtZkEtRl17MX0pJC8saGV4NjovXiM/KFswLTlhLWZBLUZdezJ9KShbMC05YS1mQS1GXXsyfSkoWzAtOWEtZkEtRl17Mn0pJC8saGV4NDovXiM/KFswLTlhLWZBLUZdezF9KShbMC05YS1mQS1GXXsxfSkoWzAtOWEtZkEtRl17MX0pKFswLTlhLWZBLUZdezF9KSQvLGhleDg6L14jPyhbMC05YS1mQS1GXXsyfSkoWzAtOWEtZkEtRl17Mn0pKFswLTlhLWZBLUZdezJ9KShbMC05YS1mQS1GXXsyfSkkL307ZnVuY3Rpb24gbShnKXtpZihnPWcudHJpbSgpLnRvTG93ZXJDYXNlKCksZy5sZW5ndGg9PT0wKXJldHVybiExO3ZhciB3PSExO2lmKG4uUltnXSlnPW4uUltnXSx3PSEwO2Vsc2UgaWYoZz09PSJ0cmFuc3BhcmVudCIpcmV0dXJue3I6MCxnOjAsYjowLGE6MCxmb3JtYXQ6Im5hbWUifTt2YXIgRT1kLnJnYi5leGVjKGcpO3JldHVybiBFP3tyOkVbMV0sZzpFWzJdLGI6RVszXX06KEU9ZC5yZ2JhLmV4ZWMoZyksRT97cjpFWzFdLGc6RVsyXSxiOkVbM10sYTpFWzRdfTooRT1kLmhzbC5leGVjKGcpLEU/e2g6RVsxXSxzOkVbMl0sbDpFWzNdfTooRT1kLmhzbGEuZXhlYyhnKSxFP3toOkVbMV0sczpFWzJdLGw6RVszXSxhOkVbNF19OihFPWQuaHN2LmV4ZWMoZyksRT97aDpFWzFdLHM6RVsyXSx2OkVbM119OihFPWQuaHN2YS5leGVjKGcpLEU/e2g6RVsxXSxzOkVbMl0sdjpFWzNdLGE6RVs0XX06KEU9ZC5oZXg4LmV4ZWMoZyksRT97cjooMCxyLlZEKShFWzFdKSxnOigwLHIuVkQpKEVbMl0pLGI6KDAsci5WRCkoRVszXSksYTooMCxyLlQ2KShFWzRdKSxmb3JtYXQ6dz8ibmFtZSI6ImhleDgifTooRT1kLmhleDYuZXhlYyhnKSxFP3tyOigwLHIuVkQpKEVbMV0pLGc6KDAsci5WRCkoRVsyXSksYjooMCxyLlZEKShFWzNdKSxmb3JtYXQ6dz8ibmFtZSI6ImhleCJ9OihFPWQuaGV4NC5leGVjKGcpLEU/e3I6KDAsci5WRCkoRVsxXStFWzFdKSxnOigwLHIuVkQpKEVbMl0rRVsyXSksYjooMCxyLlZEKShFWzNdK0VbM10pLGE6KDAsci5UNikoRVs0XStFWzRdKSxmb3JtYXQ6dz8ibmFtZSI6ImhleDgifTooRT1kLmhleDMuZXhlYyhnKSxFP3tyOigwLHIuVkQpKEVbMV0rRVsxXSksZzooMCxyLlZEKShFWzJdK0VbMl0pLGI6KDAsci5WRCkoRVszXStFWzNdKSxmb3JtYXQ6dz8ibmFtZSI6ImhleCJ9OiExKSkpKSkpKSkpfWZ1bmN0aW9uIEMoZyl7cmV0dXJuISFkLkNTU19VTklULmV4ZWMoU3RyaW5nKGcpKX19LDkwMjc5OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse0ZaOmZ1bmN0aW9uKCl7cmV0dXJuIHV9LEpYOmZ1bmN0aW9uKCl7cmV0dXJuIGF9LFYyOmZ1bmN0aW9uKCl7cmV0dXJuIG59LFlxOmZ1bmN0aW9uKCl7cmV0dXJuIHN9LHNoOmZ1bmN0aW9uKCl7cmV0dXJuIHJ9fSk7ZnVuY3Rpb24gcihjLGgpe3QoYykmJihjPSIxMDAlIik7dmFyIGQ9aShjKTtyZXR1cm4gYz1oPT09MzYwP2M6TWF0aC5taW4oaCxNYXRoLm1heCgwLHBhcnNlRmxvYXQoYykpKSxkJiYoYz1wYXJzZUludChTdHJpbmcoYypoKSwxMCkvMTAwKSxNYXRoLmFicyhjLWgpPDFlLTY/MTooaD09PTM2MD9jPShjPDA/YyVoK2g6YyVoKS9wYXJzZUZsb2F0KFN0cmluZyhoKSk6Yz1jJWgvcGFyc2VGbG9hdChTdHJpbmcoaCkpLGMpfWZ1bmN0aW9uIG4oYyl7cmV0dXJuIE1hdGgubWluKDEsTWF0aC5tYXgoMCxjKSl9ZnVuY3Rpb24gdChjKXtyZXR1cm4gdHlwZW9mIGM9PSJzdHJpbmciJiZjLmluZGV4T2YoIi4iKSE9PS0xJiZwYXJzZUZsb2F0KGMpPT09MX1mdW5jdGlvbiBpKGMpe3JldHVybiB0eXBlb2YgYz09InN0cmluZyImJmMuaW5kZXhPZigiJSIpIT09LTF9ZnVuY3Rpb24gcyhjKXtyZXR1cm4gYz1wYXJzZUZsb2F0KGMpLChpc05hTihjKXx8YzwwfHxjPjEpJiYoYz0xKSxjfWZ1bmN0aW9uIGEoYyl7cmV0dXJuIGM8PTE/IiIuY29uY2F0KE51bWJlcihjKSoxMDAsIiUiKTpjfWZ1bmN0aW9uIHUoYyl7cmV0dXJuIGMubGVuZ3RoPT09MT8iMCIrYzpTdHJpbmcoYyl9fSw3NTA0NjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGN0fX0pO3ZhciByPSExO2Z1bmN0aW9uIG4oT2Upe2lmKE9lLnNoZWV0KXJldHVybiBPZS5zaGVldDtmb3IodmFyIEdlPTA7R2U8ZG9jdW1lbnQuc3R5bGVTaGVldHMubGVuZ3RoO0dlKyspaWYoZG9jdW1lbnQuc3R5bGVTaGVldHNbR2VdLm93bmVyTm9kZT09PU9lKXJldHVybiBkb2N1bWVudC5zdHlsZVNoZWV0c1tHZV19ZnVuY3Rpb24gdChPZSl7dmFyIEdlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7cmV0dXJuIEdlLnNldEF0dHJpYnV0ZSgiZGF0YS1lbW90aW9uIixPZS5rZXkpLE9lLm5vbmNlIT09dm9pZCAwJiZHZS5zZXRBdHRyaWJ1dGUoIm5vbmNlIixPZS5ub25jZSksR2UuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiIpKSxHZS5zZXRBdHRyaWJ1dGUoImRhdGEtcyIsIiIpLEdlfXZhciBpPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gT2UoaHQpe3ZhciB6ZT10aGlzO3RoaXMuX2luc2VydFRhZz1mdW5jdGlvbihRZSl7dmFyIHB0O3plLnRhZ3MubGVuZ3RoPT09MD96ZS5pbnNlcnRpb25Qb2ludD9wdD16ZS5pbnNlcnRpb25Qb2ludC5uZXh0U2libGluZzp6ZS5wcmVwZW5kP3B0PXplLmNvbnRhaW5lci5maXJzdENoaWxkOnB0PXplLmJlZm9yZTpwdD16ZS50YWdzW3plLnRhZ3MubGVuZ3RoLTFdLm5leHRTaWJsaW5nLHplLmNvbnRhaW5lci5pbnNlcnRCZWZvcmUoUWUscHQpLHplLnRhZ3MucHVzaChRZSl9LHRoaXMuaXNTcGVlZHk9aHQuc3BlZWR5PT09dm9pZCAwPyFyOmh0LnNwZWVkeSx0aGlzLnRhZ3M9W10sdGhpcy5jdHI9MCx0aGlzLm5vbmNlPWh0Lm5vbmNlLHRoaXMua2V5PWh0LmtleSx0aGlzLmNvbnRhaW5lcj1odC5jb250YWluZXIsdGhpcy5wcmVwZW5kPWh0LnByZXBlbmQsdGhpcy5pbnNlcnRpb25Qb2ludD1odC5pbnNlcnRpb25Qb2ludCx0aGlzLmJlZm9yZT1udWxsfXZhciBHZT1PZS5wcm90b3R5cGU7cmV0dXJuIEdlLmh5ZHJhdGU9ZnVuY3Rpb24oemUpe3plLmZvckVhY2godGhpcy5faW5zZXJ0VGFnKX0sR2UuaW5zZXJ0PWZ1bmN0aW9uKHplKXt0aGlzLmN0ciUodGhpcy5pc1NwZWVkeT82NWUzOjEpPT09MCYmdGhpcy5faW5zZXJ0VGFnKHQodGhpcykpO3ZhciBRZT10aGlzLnRhZ3NbdGhpcy50YWdzLmxlbmd0aC0xXTtpZih0aGlzLmlzU3BlZWR5KXt2YXIgcHQ9bihRZSk7dHJ5e3B0Lmluc2VydFJ1bGUoemUscHQuY3NzUnVsZXMubGVuZ3RoKX1jYXRjaChidCl7fX1lbHNlIFFlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHplKSk7dGhpcy5jdHIrK30sR2UuZmx1c2g9ZnVuY3Rpb24oKXt0aGlzLnRhZ3MuZm9yRWFjaChmdW5jdGlvbih6ZSl7dmFyIFFlO3JldHVybihRZT16ZS5wYXJlbnROb2RlKT09bnVsbD92b2lkIDA6UWUucmVtb3ZlQ2hpbGQoemUpfSksdGhpcy50YWdzPVtdLHRoaXMuY3RyPTB9LE9lfSgpLHM9TWF0aC5hYnMsYT1TdHJpbmcuZnJvbUNoYXJDb2RlLHU9T2JqZWN0LmFzc2lnbjtmdW5jdGlvbiBjKE9lLEdlKXtyZXR1cm4gZyhPZSwwKV40NT8oKChHZTw8Ml5nKE9lLDApKTw8Ml5nKE9lLDEpKTw8Ml5nKE9lLDIpKTw8Ml5nKE9lLDMpOjB9ZnVuY3Rpb24gaChPZSl7cmV0dXJuIE9lLnRyaW0oKX1mdW5jdGlvbiBkKE9lLEdlKXtyZXR1cm4oT2U9R2UuZXhlYyhPZSkpP09lWzBdOk9lfWZ1bmN0aW9uIG0oT2UsR2UsaHQpe3JldHVybiBPZS5yZXBsYWNlKEdlLGh0KX1mdW5jdGlvbiBDKE9lLEdlKXtyZXR1cm4gT2UuaW5kZXhPZihHZSl9ZnVuY3Rpb24gZyhPZSxHZSl7cmV0dXJuIE9lLmNoYXJDb2RlQXQoR2UpfDB9ZnVuY3Rpb24gdyhPZSxHZSxodCl7cmV0dXJuIE9lLnNsaWNlKEdlLGh0KX1mdW5jdGlvbiBFKE9lKXtyZXR1cm4gT2UubGVuZ3RofWZ1bmN0aW9uIHgoT2Upe3JldHVybiBPZS5sZW5ndGh9ZnVuY3Rpb24gTyhPZSxHZSl7cmV0dXJuIEdlLnB1c2goT2UpLE9lfWZ1bmN0aW9uIFQoT2UsR2Upe3JldHVybiBPZS5tYXAoR2UpLmpvaW4oIiIpfXZhciBTPTEsTD0xLEk9MCxSPTAsej0wLEc9IiI7ZnVuY3Rpb24gWShPZSxHZSxodCx6ZSxRZSxwdCxidCl7cmV0dXJue3ZhbHVlOk9lLHJvb3Q6R2UscGFyZW50Omh0LHR5cGU6emUscHJvcHM6UWUsY2hpbGRyZW46cHQsbGluZTpTLGNvbHVtbjpMLGxlbmd0aDpidCxyZXR1cm46IiJ9fWZ1bmN0aW9uIGVlKE9lLEdlKXtyZXR1cm4gdShZKCIiLG51bGwsbnVsbCwiIixudWxsLG51bGwsMCksT2Use2xlbmd0aDotT2UubGVuZ3RofSxHZSl9ZnVuY3Rpb24gSigpe3JldHVybiB6fWZ1bmN0aW9uIG1lKCl7cmV0dXJuIHo9Uj4wP2coRywtLVIpOjAsTC0tLHo9PT0xMCYmKEw9MSxTLS0pLHp9ZnVuY3Rpb24gdGUoKXtyZXR1cm4gej1SPEk/ZyhHLFIrKyk6MCxMKyssej09PTEwJiYoTD0xLFMrKyksen1mdW5jdGlvbiBsZSgpe3JldHVybiBnKEcsUil9ZnVuY3Rpb24gY2UoKXtyZXR1cm4gUn1mdW5jdGlvbiBXKE9lLEdlKXtyZXR1cm4gdyhHLE9lLEdlKX1mdW5jdGlvbiBqKE9lKXtzd2l0Y2goT2Upe2Nhc2UgMDpjYXNlIDk6Y2FzZSAxMDpjYXNlIDEzOmNhc2UgMzI6cmV0dXJuIDU7Y2FzZSAzMzpjYXNlIDQzOmNhc2UgNDQ6Y2FzZSA0NzpjYXNlIDYyOmNhc2UgNjQ6Y2FzZSAxMjY6Y2FzZSA1OTpjYXNlIDEyMzpjYXNlIDEyNTpyZXR1cm4gNDtjYXNlIDU4OnJldHVybiAzO2Nhc2UgMzQ6Y2FzZSAzOTpjYXNlIDQwOmNhc2UgOTE6cmV0dXJuIDI7Y2FzZSA0MTpjYXNlIDkzOnJldHVybiAxfXJldHVybiAwfWZ1bmN0aW9uIEQoT2Upe3JldHVybiBTPUw9MSxJPUUoRz1PZSksUj0wLFtdfWZ1bmN0aW9uIFYoT2Upe3JldHVybiBHPSIiLE9lfWZ1bmN0aW9uIFooT2Upe3JldHVybiBoKFcoUi0xLG9lKE9lPT09OTE/T2UrMjpPZT09PTQwP09lKzE6T2UpKSl9ZnVuY3Rpb24gUChPZSl7cmV0dXJuIFYoc2UoRChPZSkpKX1mdW5jdGlvbiBLKE9lKXtmb3IoOyh6PWxlKCkpJiZ6PDMzOyl0ZSgpO3JldHVybiBqKE9lKT4yfHxqKHopPjM/IiI6IiAifWZ1bmN0aW9uIHNlKE9lKXtmb3IoO3RlKCk7KXN3aXRjaChqKHopKXtjYXNlIDA6YXBwZW5kKEVlKFItMSksT2UpO2JyZWFrO2Nhc2UgMjphcHBlbmQoWih6KSxPZSk7YnJlYWs7ZGVmYXVsdDphcHBlbmQoZnJvbSh6KSxPZSl9cmV0dXJuIE9lfWZ1bmN0aW9uIG5lKE9lLEdlKXtmb3IoOy0tR2UmJnRlKCkmJiEoejw0OHx8ej4xMDJ8fHo+NTcmJno8NjV8fHo+NzAmJno8OTcpOyk7cmV0dXJuIFcoT2UsY2UoKSsoR2U8NiYmbGUoKT09MzImJnRlKCk9PTMyKSl9ZnVuY3Rpb24gb2UoT2Upe2Zvcig7dGUoKTspc3dpdGNoKHope2Nhc2UgT2U6cmV0dXJuIFI7Y2FzZSAzNDpjYXNlIDM5Ok9lIT09MzQmJk9lIT09MzkmJm9lKHopO2JyZWFrO2Nhc2UgNDA6T2U9PT00MSYmb2UoT2UpO2JyZWFrO2Nhc2UgOTI6dGUoKTticmVha31yZXR1cm4gUn1mdW5jdGlvbiBmZShPZSxHZSl7Zm9yKDt0ZSgpJiZPZSt6IT09NTc7KWlmKE9lK3o9PT04NCYmbGUoKT09PTQ3KWJyZWFrO3JldHVybiIvKiIrVyhHZSxSLTEpKyIqIithKE9lPT09NDc/T2U6dGUoKSl9ZnVuY3Rpb24gRWUoT2Upe2Zvcig7IWoobGUoKSk7KXRlKCk7cmV0dXJuIFcoT2UsUil9dmFyIFJlPSItbXMtIixCZT0iLW1vei0iLFllPSItd2Via2l0LSIsb3Q9ImNvbW0iLHFlPSJydWxlIixfZT0iZGVjbCIsRmU9IkBwYWdlIixTZT0iQG1lZGlhIixxPSJAaW1wb3J0IixrPSJAY2hhcnNldCIsTT0iQHZpZXdwb3J0IixBPSJAc3VwcG9ydHMiLFU9IkBkb2N1bWVudCIsTj0iQG5hbWVzcGFjZSIsUT0iQGtleWZyYW1lcyIsdWU9IkBmb250LWZhY2UiLCQ9IkBjb3VudGVyLXN0eWxlIixfPSJAZm9udC1mZWF0dXJlLXZhbHVlcyIscGU9IkBsYXllciI7ZnVuY3Rpb24gcmUoT2UsR2Upe2Zvcih2YXIgaHQ9IiIsemU9eChPZSksUWU9MDtRZTx6ZTtRZSsrKWh0Kz1HZShPZVtRZV0sUWUsT2UsR2UpfHwiIjtyZXR1cm4gaHR9ZnVuY3Rpb24gYWUoT2UsR2UsaHQsemUpe3N3aXRjaChPZS50eXBlKXtjYXNlIHBlOmlmKE9lLmNoaWxkcmVuLmxlbmd0aClicmVhaztjYXNlIHE6Y2FzZSBfZTpyZXR1cm4gT2UucmV0dXJuPU9lLnJldHVybnx8T2UudmFsdWU7Y2FzZSBvdDpyZXR1cm4iIjtjYXNlIFE6cmV0dXJuIE9lLnJldHVybj1PZS52YWx1ZSsieyIrcmUoT2UuY2hpbGRyZW4semUpKyJ9IjtjYXNlIHFlOk9lLnZhbHVlPU9lLnByb3BzLmpvaW4oIiwiKX1yZXR1cm4gRShodD1yZShPZS5jaGlsZHJlbix6ZSkpP09lLnJldHVybj1PZS52YWx1ZSsieyIraHQrIn0iOiIifWZ1bmN0aW9uIHdlKE9lKXt2YXIgR2U9eChPZSk7cmV0dXJuIGZ1bmN0aW9uKGh0LHplLFFlLHB0KXtmb3IodmFyIGJ0PSIiLEl0PTA7SXQ8R2U7SXQrKylidCs9T2VbSXRdKGh0LHplLFFlLHB0KXx8IiI7cmV0dXJuIGJ0fX1mdW5jdGlvbiBMZShPZSl7cmV0dXJuIGZ1bmN0aW9uKEdlKXtHZS5yb290fHwoR2U9R2UucmV0dXJuKSYmT2UoR2UpfX1mdW5jdGlvbiBNZShPZSxHZSxodCx6ZSl7aWYoT2UubGVuZ3RoPi0xJiYhT2UucmV0dXJuKXN3aXRjaChPZS50eXBlKXtjYXNlIERFQ0xBUkFUSU9OOk9lLnJldHVybj1wcmVmaXgoT2UudmFsdWUsT2UubGVuZ3RoLGh0KTtyZXR1cm47Y2FzZSBLRVlGUkFNRVM6cmV0dXJuIHNlcmlhbGl6ZShbY29weShPZSx7dmFsdWU6cmVwbGFjZShPZS52YWx1ZSwiQCIsIkAiK1dFQktJVCl9KV0semUpO2Nhc2UgUlVMRVNFVDppZihPZS5sZW5ndGgpcmV0dXJuIGNvbWJpbmUoT2UucHJvcHMsZnVuY3Rpb24oUWUpe3N3aXRjaChtYXRjaChRZSwvKDo6cGxhY1x3K3w6cmVhZC1cdyspLykpe2Nhc2UiOnJlYWQtb25seSI6Y2FzZSI6cmVhZC13cml0ZSI6cmV0dXJuIHNlcmlhbGl6ZShbY29weShPZSx7cHJvcHM6W3JlcGxhY2UoUWUsLzoocmVhZC1cdyspLywiOiIrTU9aKyIkMSIpXX0pXSx6ZSk7Y2FzZSI6OnBsYWNlaG9sZGVyIjpyZXR1cm4gc2VyaWFsaXplKFtjb3B5KE9lLHtwcm9wczpbcmVwbGFjZShRZSwvOihwbGFjXHcrKS8sIjoiK1dFQktJVCsiaW5wdXQtJDEiKV19KSxjb3B5KE9lLHtwcm9wczpbcmVwbGFjZShRZSwvOihwbGFjXHcrKS8sIjoiK01PWisiJDEiKV19KSxjb3B5KE9lLHtwcm9wczpbcmVwbGFjZShRZSwvOihwbGFjXHcrKS8sTVMrImlucHV0LSQxIildfSldLHplKX1yZXR1cm4iIn0pfX1mdW5jdGlvbiBiZShPZSl7c3dpdGNoKE9lLnR5cGUpe2Nhc2UgUlVMRVNFVDpPZS5wcm9wcz1PZS5wcm9wcy5tYXAoZnVuY3Rpb24oR2Upe3JldHVybiBjb21iaW5lKHRva2VuaXplKEdlKSxmdW5jdGlvbihodCx6ZSxRZSl7c3dpdGNoKGNoYXJhdChodCwwKSl7Y2FzZSAxMjpyZXR1cm4gc3Vic3RyKGh0LDEsc3RybGVuKGh0KSk7Y2FzZSAwOmNhc2UgNDA6Y2FzZSA0MzpjYXNlIDYyOmNhc2UgMTI2OnJldHVybiBodDtjYXNlIDU4OlFlWysremVdPT09Imdsb2JhbCImJihRZVt6ZV09IiIsUWVbKyt6ZV09IlxmIitzdWJzdHIoUWVbemVdLHplPTEsLTEpKTtjYXNlIDMyOnJldHVybiB6ZT09PTE/IiI6aHQ7ZGVmYXVsdDpzd2l0Y2goemUpe2Nhc2UgMDpyZXR1cm4gT2U9aHQsc2l6ZW9mKFFlKT4xPyIiOmh0O2Nhc2UoemU9c2l6ZW9mKFFlKS0xKTpjYXNlIDI6cmV0dXJuIHplPT09Mj9odCtPZStPZTpodCtPZTtkZWZhdWx0OnJldHVybiBodH19fSl9KX19ZnVuY3Rpb24gJGUoT2Upe3JldHVybiBWKGtlKCIiLG51bGwsbnVsbCxudWxsLFsiIl0sT2U9RChPZSksMCxbMF0sT2UpKX1mdW5jdGlvbiBrZShPZSxHZSxodCx6ZSxRZSxwdCxidCxJdCxUdCl7Zm9yKHZhciBYdD0wLGZuPTAsbm49YnQsb249MCxOdD0wLFpuPTAseW49MSxnbj0xLEJuPTEsVm49MCxObj0iIixmdD1RZSxldD1wdCxKdD16ZSx3dD1Objtnbjspc3dpdGNoKFpuPVZuLFZuPXRlKCkpe2Nhc2UgNDA6aWYoWm4hPTEwOCYmZyh3dCxubi0xKT09NTgpe0Mod3QrPW0oWihWbiksIiYiLCImXGYiKSwiJlxmIikhPS0xJiYoQm49LTEpO2JyZWFrfWNhc2UgMzQ6Y2FzZSAzOTpjYXNlIDkxOnd0Kz1aKFZuKTticmVhaztjYXNlIDk6Y2FzZSAxMDpjYXNlIDEzOmNhc2UgMzI6d3QrPUsoWm4pO2JyZWFrO2Nhc2UgOTI6d3QrPW5lKGNlKCktMSw3KTtjb250aW51ZTtjYXNlIDQ3OnN3aXRjaChsZSgpKXtjYXNlIDQyOmNhc2UgNDc6Tyh0dChmZSh0ZSgpLGNlKCkpLEdlLGh0KSxUdCk7YnJlYWs7ZGVmYXVsdDp3dCs9Ii8ifWJyZWFrO2Nhc2UgMTIzKnluOkl0W1h0KytdPUUod3QpKkJuO2Nhc2UgMTI1KnluOmNhc2UgNTk6Y2FzZSAwOnN3aXRjaChWbil7Y2FzZSAwOmNhc2UgMTI1OmduPTA7Y2FzZSA1OStmbjpCbj09LTEmJih3dD1tKHd0LC9cZi9nLCIiKSksTnQ+MCYmRSh3dCktbm4mJk8oTnQ+MzI/bXQod3QrIjsiLHplLGh0LG5uLTEpOm10KG0od3QsIiAiLCIiKSsiOyIsemUsaHQsbm4tMiksVHQpO2JyZWFrO2Nhc2UgNTk6d3QrPSI7IjtkZWZhdWx0OmlmKE8oSnQ9QWUod3QsR2UsaHQsWHQsZm4sUWUsSXQsTm4sZnQ9W10sZXQ9W10sbm4pLHB0KSxWbj09PTEyMylpZihmbj09PTApa2Uod3QsR2UsSnQsSnQsZnQscHQsbm4sSXQsZXQpO2Vsc2Ugc3dpdGNoKG9uPT09OTkmJmcod3QsMyk9PT0xMTA/MTAwOm9uKXtjYXNlIDEwMDpjYXNlIDEwODpjYXNlIDEwOTpjYXNlIDExNTprZShPZSxKdCxKdCx6ZSYmTyhBZShPZSxKdCxKdCwwLDAsUWUsSXQsTm4sUWUsZnQ9W10sbm4pLGV0KSxRZSxldCxubixJdCx6ZT9mdDpldCk7YnJlYWs7ZGVmYXVsdDprZSh3dCxKdCxKdCxKdCxbIiJdLGV0LDAsSXQsZXQpfX1YdD1mbj1OdD0wLHluPUJuPTEsTm49d3Q9IiIsbm49YnQ7YnJlYWs7Y2FzZSA1ODpubj0xK0Uod3QpLE50PVpuO2RlZmF1bHQ6aWYoeW48MSl7aWYoVm49PTEyMyktLXluO2Vsc2UgaWYoVm49PTEyNSYmeW4rKz09MCYmbWUoKT09MTI1KWNvbnRpbnVlfXN3aXRjaCh3dCs9YShWbiksVm4qeW4pe2Nhc2UgMzg6Qm49Zm4+MD8xOih3dCs9IlxmIiwtMSk7YnJlYWs7Y2FzZSA0NDpJdFtYdCsrXT0oRSh3dCktMSkqQm4sQm49MTticmVhaztjYXNlIDY0OmxlKCk9PT00NSYmKHd0Kz1aKHRlKCkpKSxvbj1sZSgpLGZuPW5uPUUoTm49d3QrPUVlKGNlKCkpKSxWbisrO2JyZWFrO2Nhc2UgNDU6Wm49PT00NSYmRSh3dCk9PTImJih5bj0wKX19cmV0dXJuIHB0fWZ1bmN0aW9uIEFlKE9lLEdlLGh0LHplLFFlLHB0LGJ0LEl0LFR0LFh0LGZuKXtmb3IodmFyIG5uPVFlLTEsb249UWU9PT0wP3B0OlsiIl0sTnQ9eChvbiksWm49MCx5bj0wLGduPTA7Wm48emU7Kytabilmb3IodmFyIEJuPTAsVm49dyhPZSxubisxLG5uPXMoeW49YnRbWm5dKSksTm49T2U7Qm48TnQ7KytCbikoTm49aCh5bj4wP29uW0JuXSsiICIrVm46bShWbiwvJlxmL2csb25bQm5dKSkpJiYoVHRbZ24rK109Tm4pO3JldHVybiBZKE9lLEdlLGh0LFFlPT09MD9xZTpJdCxUdCxYdCxmbil9ZnVuY3Rpb24gdHQoT2UsR2UsaHQpe3JldHVybiBZKE9lLEdlLGh0LG90LGEoSigpKSx3KE9lLDIsLTIpLDApfWZ1bmN0aW9uIG10KE9lLEdlLGh0LHplKXtyZXR1cm4gWShPZSxHZSxodCxfZSx3KE9lLDAsemUpLHcoT2UsemUrMSwtMSksemUpfXZhciB1dD1mdW5jdGlvbihHZSxodCx6ZSl7Zm9yKHZhciBRZT0wLHB0PTA7UWU9cHQscHQ9bGUoKSxRZT09PTM4JiZwdD09PTEyJiYoaHRbemVdPTEpLCFqKHB0KTspdGUoKTtyZXR1cm4gVyhHZSxSKX0sRGU9ZnVuY3Rpb24oR2UsaHQpe3ZhciB6ZT0tMSxRZT00NDtkbyBzd2l0Y2goaihRZSkpe2Nhc2UgMDpRZT09PTM4JiZsZSgpPT09MTImJihodFt6ZV09MSksR2VbemVdKz11dChSLTEsaHQsemUpO2JyZWFrO2Nhc2UgMjpHZVt6ZV0rPVooUWUpO2JyZWFrO2Nhc2UgNDppZihRZT09PTQ0KXtHZVsrK3plXT1sZSgpPT09NTg/IiZcZiI6IiIsaHRbemVdPUdlW3plXS5sZW5ndGg7YnJlYWt9ZGVmYXVsdDpHZVt6ZV0rPWEoUWUpfXdoaWxlKFFlPXRlKCkpO3JldHVybiBHZX0sTmU9ZnVuY3Rpb24oR2UsaHQpe3JldHVybiBWKERlKEQoR2UpLGh0KSl9LFhlPW5ldyBXZWFrTWFwLEplPWZ1bmN0aW9uKEdlKXtpZighKEdlLnR5cGUhPT0icnVsZSJ8fCFHZS5wYXJlbnR8fEdlLmxlbmd0aDwxKSl7Zm9yKHZhciBodD1HZS52YWx1ZSx6ZT1HZS5wYXJlbnQsUWU9R2UuY29sdW1uPT09emUuY29sdW1uJiZHZS5saW5lPT09emUubGluZTt6ZS50eXBlIT09InJ1bGUiOylpZih6ZT16ZS5wYXJlbnQsIXplKXJldHVybjtpZighKEdlLnByb3BzLmxlbmd0aD09PTEmJmh0LmNoYXJDb2RlQXQoMCkhPT01OCYmIVhlLmdldCh6ZSkpJiYhUWUpe1hlLnNldChHZSwhMCk7Zm9yKHZhciBwdD1bXSxidD1OZShodCxwdCksSXQ9emUucHJvcHMsVHQ9MCxYdD0wO1R0PGJ0Lmxlbmd0aDtUdCsrKWZvcih2YXIgZm49MDtmbjxJdC5sZW5ndGg7Zm4rKyxYdCsrKUdlLnByb3BzW1h0XT1wdFtUdF0/YnRbVHRdLnJlcGxhY2UoLyZcZi9nLEl0W2ZuXSk6SXRbZm5dKyIgIitidFtUdF19fX0sZ3Q9ZnVuY3Rpb24oR2Upe2lmKEdlLnR5cGU9PT0iZGVjbCIpe3ZhciBodD1HZS52YWx1ZTtodC5jaGFyQ29kZUF0KDApPT09MTA4JiZodC5jaGFyQ29kZUF0KDIpPT09OTgmJihHZS5yZXR1cm49IiIsR2UudmFsdWU9IiIpfX07ZnVuY3Rpb24gZGUoT2UsR2Upe3N3aXRjaChjKE9lLEdlKSl7Y2FzZSA1MTAzOnJldHVybiBZZSsicHJpbnQtIitPZStPZTtjYXNlIDU3Mzc6Y2FzZSA0MjAxOmNhc2UgMzE3NzpjYXNlIDM0MzM6Y2FzZSAxNjQxOmNhc2UgNDQ1NzpjYXNlIDI5MjE6Y2FzZSA1NTcyOmNhc2UgNjM1NjpjYXNlIDU4NDQ6Y2FzZSAzMTkxOmNhc2UgNjY0NTpjYXNlIDMwMDU6Y2FzZSA2MzkxOmNhc2UgNTg3OTpjYXNlIDU2MjM6Y2FzZSA2MTM1OmNhc2UgNDU5OTpjYXNlIDQ4NTU6Y2FzZSA0MjE1OmNhc2UgNjM4OTpjYXNlIDUxMDk6Y2FzZSA1MzY1OmNhc2UgNTYyMTpjYXNlIDM4Mjk6cmV0dXJuIFllK09lK09lO2Nhc2UgNTM0OTpjYXNlIDQyNDY6Y2FzZSA0ODEwOmNhc2UgNjk2ODpjYXNlIDI3NTY6cmV0dXJuIFllK09lK0JlK09lK1JlK09lK09lO2Nhc2UgNjgyODpjYXNlIDQyNjg6cmV0dXJuIFllK09lK1JlK09lK09lO2Nhc2UgNjE2NTpyZXR1cm4gWWUrT2UrUmUrImZsZXgtIitPZStPZTtjYXNlIDUxODc6cmV0dXJuIFllK09lK20oT2UsLyhcdyspLisoOlteXSspLyxZZSsiYm94LSQxJDIiK1JlKyJmbGV4LSQxJDIiKStPZTtjYXNlIDU0NDM6cmV0dXJuIFllK09lK1JlKyJmbGV4LWl0ZW0tIittKE9lLC9mbGV4LXwtc2VsZi8sIiIpK09lO2Nhc2UgNDY3NTpyZXR1cm4gWWUrT2UrUmUrImZsZXgtbGluZS1wYWNrIittKE9lLC9hbGlnbi1jb250ZW50fGZsZXgtfC1zZWxmLywiIikrT2U7Y2FzZSA1NTQ4OnJldHVybiBZZStPZStSZSttKE9lLCJzaHJpbmsiLCJuZWdhdGl2ZSIpK09lO2Nhc2UgNTI5MjpyZXR1cm4gWWUrT2UrUmUrbShPZSwiYmFzaXMiLCJwcmVmZXJyZWQtc2l6ZSIpK09lO2Nhc2UgNjA2MDpyZXR1cm4gWWUrImJveC0iK20oT2UsIi1ncm93IiwiIikrWWUrT2UrUmUrbShPZSwiZ3JvdyIsInBvc2l0aXZlIikrT2U7Y2FzZSA0NTU0OnJldHVybiBZZSttKE9lLC8oW14tXSkodHJhbnNmb3JtKS9nLCIkMSIrWWUrIiQyIikrT2U7Y2FzZSA2MTg3OnJldHVybiBtKG0obShPZSwvKHpvb20tfGdyYWIpLyxZZSsiJDEiKSwvKGltYWdlLXNldCkvLFllKyIkMSIpLE9lLCIiKStPZTtjYXNlIDU0OTU6Y2FzZSAzOTU5OnJldHVybiBtKE9lLC8oaW1hZ2Utc2V0XChbXl0qKS8sWWUrIiQxJGAkMSIpO2Nhc2UgNDk2ODpyZXR1cm4gbShtKE9lLC8oLis6KShmbGV4LSk/KC4qKS8sWWUrImJveC1wYWNrOiQzIitSZSsiZmxleC1wYWNrOiQzIiksL3MuKy1iW147XSsvLCJqdXN0aWZ5IikrWWUrT2UrT2U7Y2FzZSA0MDk1OmNhc2UgMzU4MzpjYXNlIDQwNjg6Y2FzZSAyNTMyOnJldHVybiBtKE9lLC8oLispLWlubGluZSguKykvLFllKyIkMSQyIikrT2U7Y2FzZSA4MTE2OmNhc2UgNzA1OTpjYXNlIDU3NTM6Y2FzZSA1NTM1OmNhc2UgNTQ0NTpjYXNlIDU3MDE6Y2FzZSA0OTMzOmNhc2UgNDY3NzpjYXNlIDU1MzM6Y2FzZSA1Nzg5OmNhc2UgNTAyMTpjYXNlIDQ3NjU6aWYoRShPZSktMS1HZT42KXN3aXRjaChnKE9lLEdlKzEpKXtjYXNlIDEwOTppZihnKE9lLEdlKzQpIT09NDUpYnJlYWs7Y2FzZSAxMDI6cmV0dXJuIG0oT2UsLyguKzopKC4rKS0oW15dKykvLCIkMSIrWWUrIiQyLSQzJDEiK0JlKyhnKE9lLEdlKzMpPT0xMDg/IiQzIjoiJDItJDMiKSkrT2U7Y2FzZSAxMTU6cmV0dXJufkMoT2UsInN0cmV0Y2giKT9kZShtKE9lLCJzdHJldGNoIiwiZmlsbC1hdmFpbGFibGUiKSxHZSkrT2U6T2V9YnJlYWs7Y2FzZSA0OTQ5OmlmKGcoT2UsR2UrMSkhPT0xMTUpYnJlYWs7Y2FzZSA2NDQ0OnN3aXRjaChnKE9lLEUoT2UpLTMtKH5DKE9lLCIhaW1wb3J0YW50IikmJjEwKSkpe2Nhc2UgMTA3OnJldHVybiBtKE9lLCI6IiwiOiIrWWUpK09lO2Nhc2UgMTAxOnJldHVybiBtKE9lLC8oLis6KShbXjshXSspKDt8IS4rKT8vLCIkMSIrWWUrKGcoT2UsMTQpPT09NDU/ImlubGluZS0iOiIiKSsiYm94JDMkMSIrWWUrIiQyJDMkMSIrUmUrIiQyYm94JDMiKStPZX1icmVhaztjYXNlIDU5MzY6c3dpdGNoKGcoT2UsR2UrMTEpKXtjYXNlIDExNDpyZXR1cm4gWWUrT2UrUmUrbShPZSwvW3N2aF1cdystW3RibHJdezJ9LywidGIiKStPZTtjYXNlIDEwODpyZXR1cm4gWWUrT2UrUmUrbShPZSwvW3N2aF1cdystW3RibHJdezJ9LywidGItcmwiKStPZTtjYXNlIDQ1OnJldHVybiBZZStPZStSZSttKE9lLC9bc3ZoXVx3Ky1bdGJscl17Mn0vLCJsciIpK09lfXJldHVybiBZZStPZStSZStPZStPZX1yZXR1cm4gT2V9dmFyIFdlPWZ1bmN0aW9uKEdlLGh0LHplLFFlKXtpZihHZS5sZW5ndGg+LTEmJiFHZS5yZXR1cm4pc3dpdGNoKEdlLnR5cGUpe2Nhc2UgX2U6R2UucmV0dXJuPWRlKEdlLnZhbHVlLEdlLmxlbmd0aCk7YnJlYWs7Y2FzZSBROnJldHVybiByZShbZWUoR2Use3ZhbHVlOm0oR2UudmFsdWUsIkAiLCJAIitZZSl9KV0sUWUpO2Nhc2UgcWU6aWYoR2UubGVuZ3RoKXJldHVybiBUKEdlLnByb3BzLGZ1bmN0aW9uKHB0KXtzd2l0Y2goZChwdCwvKDo6cGxhY1x3K3w6cmVhZC1cdyspLykpe2Nhc2UiOnJlYWQtb25seSI6Y2FzZSI6cmVhZC13cml0ZSI6cmV0dXJuIHJlKFtlZShHZSx7cHJvcHM6W20ocHQsLzoocmVhZC1cdyspLywiOiIrQmUrIiQxIildfSldLFFlKTtjYXNlIjo6cGxhY2Vob2xkZXIiOnJldHVybiByZShbZWUoR2Use3Byb3BzOlttKHB0LC86KHBsYWNcdyspLywiOiIrWWUrImlucHV0LSQxIildfSksZWUoR2Use3Byb3BzOlttKHB0LC86KHBsYWNcdyspLywiOiIrQmUrIiQxIildfSksZWUoR2Use3Byb3BzOlttKHB0LC86KHBsYWNcdyspLyxSZSsiaW5wdXQtJDEiKV19KV0sUWUpfXJldHVybiIifSl9fSxTdD1bV2VdLGN0PWZ1bmN0aW9uKEdlKXt2YXIgaHQ9R2Uua2V5O2lmKGh0PT09ImNzcyIpe3ZhciB6ZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJzdHlsZVtkYXRhLWVtb3Rpb25dOm5vdChbZGF0YS1zXSkiKTtBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKHplLGZ1bmN0aW9uKHluKXt2YXIgZ249eW4uZ2V0QXR0cmlidXRlKCJkYXRhLWVtb3Rpb24iKTtnbi5pbmRleE9mKCIgIikhPT0tMSYmKGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoeW4pLHluLnNldEF0dHJpYnV0ZSgiZGF0YS1zIiwiIikpfSl9dmFyIFFlPUdlLnN0eWxpc1BsdWdpbnN8fFN0LHB0PXt9LGJ0LEl0PVtdO2J0PUdlLmNvbnRhaW5lcnx8ZG9jdW1lbnQuaGVhZCxBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3N0eWxlW2RhdGEtZW1vdGlvbl49IicraHQrJyAiXScpLGZ1bmN0aW9uKHluKXtmb3IodmFyIGduPXluLmdldEF0dHJpYnV0ZSgiZGF0YS1lbW90aW9uIikuc3BsaXQoIiAiKSxCbj0xO0JuPGduLmxlbmd0aDtCbisrKXB0W2duW0JuXV09ITA7SXQucHVzaCh5bil9KTt2YXIgVHQsWHQ9W0plLGd0XTt7dmFyIGZuLG5uPVthZSxMZShmdW5jdGlvbih5bil7Zm4uaW5zZXJ0KHluKX0pXSxvbj13ZShYdC5jb25jYXQoUWUsbm4pKSxOdD1mdW5jdGlvbihnbil7cmV0dXJuIHJlKCRlKGduKSxvbil9O1R0PWZ1bmN0aW9uKGduLEJuLFZuLE5uKXtmbj1WbixOdChnbj9nbisieyIrQm4uc3R5bGVzKyJ9IjpCbi5zdHlsZXMpLE5uJiYoWm4uaW5zZXJ0ZWRbQm4ubmFtZV09ITApfX12YXIgWm49e2tleTpodCxzaGVldDpuZXcgaSh7a2V5Omh0LGNvbnRhaW5lcjpidCxub25jZTpHZS5ub25jZSxzcGVlZHk6R2Uuc3BlZWR5LHByZXBlbmQ6R2UucHJlcGVuZCxpbnNlcnRpb25Qb2ludDpHZS5pbnNlcnRpb25Qb2ludH0pLG5vbmNlOkdlLm5vbmNlLGluc2VydGVkOnB0LHJlZ2lzdGVyZWQ6e30saW5zZXJ0OlR0fTtyZXR1cm4gWm4uc2hlZXQuaHlkcmF0ZShJdCksWm59fSw1OTIwNjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGF9fSk7dmFyIHI9ZSg3NTA0Niksbj1lKDYyMTIxKSx0PWUoNzA0NDQpO2Z1bmN0aW9uIGkoYyxoKXtpZihjLmluc2VydGVkW2gubmFtZV09PT12b2lkIDApcmV0dXJuIGMuaW5zZXJ0KCIiLGgsYy5zaGVldCwhMCl9ZnVuY3Rpb24gcyhjLGgsZCl7dmFyIG09W10sQz0oMCx0LmZwKShjLG0sZCk7cmV0dXJuIG0ubGVuZ3RoPDI/ZDpDK2gobSl9dmFyIGE9ZnVuY3Rpb24oaCl7dmFyIGQ9KDAsci5aKShoKTtkLnNoZWV0LnNwZWVkeT1mdW5jdGlvbihFKXt0aGlzLmlzU3BlZWR5PUV9LGQuY29tcGF0PSEwO3ZhciBtPWZ1bmN0aW9uKCl7Zm9yKHZhciB4PWFyZ3VtZW50cy5sZW5ndGgsTz1uZXcgQXJyYXkoeCksVD0wO1Q8eDtUKyspT1tUXT1hcmd1bWVudHNbVF07dmFyIFM9KDAsbi5PKShPLGQucmVnaXN0ZXJlZCx2b2lkIDApO3JldHVybigwLHQuTXkpKGQsUywhMSksZC5rZXkrIi0iK1MubmFtZX0sQz1mdW5jdGlvbigpe2Zvcih2YXIgeD1hcmd1bWVudHMubGVuZ3RoLE89bmV3IEFycmF5KHgpLFQ9MDtUPHg7VCsrKU9bVF09YXJndW1lbnRzW1RdO3ZhciBTPSgwLG4uTykoTyxkLnJlZ2lzdGVyZWQpLEw9ImFuaW1hdGlvbi0iK1MubmFtZTtyZXR1cm4gaShkLHtuYW1lOlMubmFtZSxzdHlsZXM6IkBrZXlmcmFtZXMgIitMKyJ7IitTLnN0eWxlcysifSJ9KSxMfSxnPWZ1bmN0aW9uKCl7Zm9yKHZhciB4PWFyZ3VtZW50cy5sZW5ndGgsTz1uZXcgQXJyYXkoeCksVD0wO1Q8eDtUKyspT1tUXT1hcmd1bWVudHNbVF07dmFyIFM9KDAsbi5PKShPLGQucmVnaXN0ZXJlZCk7aShkLFMpfSx3PWZ1bmN0aW9uKCl7Zm9yKHZhciB4PWFyZ3VtZW50cy5sZW5ndGgsTz1uZXcgQXJyYXkoeCksVD0wO1Q8eDtUKyspT1tUXT1hcmd1bWVudHNbVF07cmV0dXJuIHMoZC5yZWdpc3RlcmVkLG0sdShPKSl9O3JldHVybntjc3M6bSxjeDp3LGluamVjdEdsb2JhbDpnLGtleWZyYW1lczpDLGh5ZHJhdGU6ZnVuY3Rpb24oeCl7eC5mb3JFYWNoKGZ1bmN0aW9uKE8pe2QuaW5zZXJ0ZWRbT109ITB9KX0sZmx1c2g6ZnVuY3Rpb24oKXtkLnJlZ2lzdGVyZWQ9e30sZC5pbnNlcnRlZD17fSxkLnNoZWV0LmZsdXNoKCl9LHNoZWV0OmQuc2hlZXQsY2FjaGU6ZCxnZXRSZWdpc3RlcmVkU3R5bGVzOnQuZnAuYmluZChudWxsLGQucmVnaXN0ZXJlZCksbWVyZ2U6cy5iaW5kKG51bGwsZC5yZWdpc3RlcmVkLG0pfX0sdT1mdW5jdGlvbiBjKGgpe2Zvcih2YXIgZD0iIixtPTA7bTxoLmxlbmd0aDttKyspe3ZhciBDPWhbbV07aWYoQyE9bnVsbCl7dmFyIGc9dm9pZCAwO3N3aXRjaCh0eXBlb2YgQyl7Y2FzZSJib29sZWFuIjpicmVhaztjYXNlIm9iamVjdCI6e2lmKEFycmF5LmlzQXJyYXkoQykpZz1jKEMpO2Vsc2V7Zz0iIjtmb3IodmFyIHcgaW4gQylDW3ddJiZ3JiYoZyYmKGcrPSIgIiksZys9dyl9YnJlYWt9ZGVmYXVsdDpnPUN9ZyYmKGQmJihkKz0iICIpLGQrPWcpfX1yZXR1cm4gZH19LDk3MTMzOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse0ZzOmZ1bmN0aW9uKCl7cmV0dXJuIHd9LGl2OmZ1bmN0aW9uKCl7cmV0dXJuIEN9fSk7dmFyIHI9ZSg1OTIwNiksbj1lKDc1MDQ2KSx0PWUoNjIxMjEpLGk9KDAsci5aKSh7a2V5OiJjc3MifSkscz1pLmZsdXNoLGE9aS5oeWRyYXRlLHU9aS5jeCxjPWkubWVyZ2UsaD1pLmdldFJlZ2lzdGVyZWRTdHlsZXMsZD1pLmluamVjdEdsb2JhbCxtPWkua2V5ZnJhbWVzLEM9aS5jc3MsZz1pLnNoZWV0LHc9aS5jYWNoZX0sNjIxMjE6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7TzpmdW5jdGlvbigpe3JldHVybiB4fX0pO2Z1bmN0aW9uIHIoTyl7Zm9yKHZhciBUPTAsUyxMPTAsST1PLmxlbmd0aDtJPj00OysrTCxJLT00KVM9Ty5jaGFyQ29kZUF0KEwpJjI1NXwoTy5jaGFyQ29kZUF0KCsrTCkmMjU1KTw8OHwoTy5jaGFyQ29kZUF0KCsrTCkmMjU1KTw8MTZ8KE8uY2hhckNvZGVBdCgrK0wpJjI1NSk8PDI0LFM9KFMmNjU1MzUpKjE1NDA0ODM0NzcrKChTPj4+MTYpKjU5Nzk3PDwxNiksU149Uz4+PjI0LFQ9KFMmNjU1MzUpKjE1NDA0ODM0NzcrKChTPj4+MTYpKjU5Nzk3PDwxNileKFQmNjU1MzUpKjE1NDA0ODM0NzcrKChUPj4+MTYpKjU5Nzk3PDwxNik7c3dpdGNoKEkpe2Nhc2UgMzpUXj0oTy5jaGFyQ29kZUF0KEwrMikmMjU1KTw8MTY7Y2FzZSAyOlRePShPLmNoYXJDb2RlQXQoTCsxKSYyNTUpPDw4O2Nhc2UgMTpUXj1PLmNoYXJDb2RlQXQoTCkmMjU1LFQ9KFQmNjU1MzUpKjE1NDA0ODM0NzcrKChUPj4+MTYpKjU5Nzk3PDwxNil9cmV0dXJuIFRePVQ+Pj4xMyxUPShUJjY1NTM1KSoxNTQwNDgzNDc3KygoVD4+PjE2KSo1OTc5Nzw8MTYpLCgoVF5UPj4+MTUpPj4+MCkudG9TdHJpbmcoMzYpfXZhciBuPXthbmltYXRpb25JdGVyYXRpb25Db3VudDoxLGFzcGVjdFJhdGlvOjEsYm9yZGVySW1hZ2VPdXRzZXQ6MSxib3JkZXJJbWFnZVNsaWNlOjEsYm9yZGVySW1hZ2VXaWR0aDoxLGJveEZsZXg6MSxib3hGbGV4R3JvdXA6MSxib3hPcmRpbmFsR3JvdXA6MSxjb2x1bW5Db3VudDoxLGNvbHVtbnM6MSxmbGV4OjEsZmxleEdyb3c6MSxmbGV4UG9zaXRpdmU6MSxmbGV4U2hyaW5rOjEsZmxleE5lZ2F0aXZlOjEsZmxleE9yZGVyOjEsZ3JpZFJvdzoxLGdyaWRSb3dFbmQ6MSxncmlkUm93U3BhbjoxLGdyaWRSb3dTdGFydDoxLGdyaWRDb2x1bW46MSxncmlkQ29sdW1uRW5kOjEsZ3JpZENvbHVtblNwYW46MSxncmlkQ29sdW1uU3RhcnQ6MSxtc0dyaWRSb3c6MSxtc0dyaWRSb3dTcGFuOjEsbXNHcmlkQ29sdW1uOjEsbXNHcmlkQ29sdW1uU3BhbjoxLGZvbnRXZWlnaHQ6MSxsaW5lSGVpZ2h0OjEsb3BhY2l0eToxLG9yZGVyOjEsb3JwaGFuczoxLHNjYWxlOjEsdGFiU2l6ZToxLHdpZG93czoxLHpJbmRleDoxLHpvb206MSxXZWJraXRMaW5lQ2xhbXA6MSxmaWxsT3BhY2l0eToxLGZsb29kT3BhY2l0eToxLHN0b3BPcGFjaXR5OjEsc3Ryb2tlRGFzaGFycmF5OjEsc3Ryb2tlRGFzaG9mZnNldDoxLHN0cm9rZU1pdGVybGltaXQ6MSxzdHJva2VPcGFjaXR5OjEsc3Ryb2tlV2lkdGg6MX07ZnVuY3Rpb24gdChPKXt2YXIgVD1PYmplY3QuY3JlYXRlKG51bGwpO3JldHVybiBmdW5jdGlvbihTKXtyZXR1cm4gVFtTXT09PXZvaWQgMCYmKFRbU109TyhTKSksVFtTXX19dmFyIGk9ITEscz0vW0EtWl18Xm1zL2csYT0vX0VNT18oW15fXSs/KV8oW15dKj8pX0VNT18vZyx1PWZ1bmN0aW9uKFQpe3JldHVybiBULmNoYXJDb2RlQXQoMSk9PT00NX0sYz1mdW5jdGlvbihUKXtyZXR1cm4gVCE9bnVsbCYmdHlwZW9mIFQhPSJib29sZWFuIn0saD10KGZ1bmN0aW9uKE8pe3JldHVybiB1KE8pP086Ty5yZXBsYWNlKHMsIi0kJiIpLnRvTG93ZXJDYXNlKCl9KSxkPWZ1bmN0aW9uKFQsUyl7c3dpdGNoKFQpe2Nhc2UiYW5pbWF0aW9uIjpjYXNlImFuaW1hdGlvbk5hbWUiOmlmKHR5cGVvZiBTPT0ic3RyaW5nIilyZXR1cm4gUy5yZXBsYWNlKGEsZnVuY3Rpb24oTCxJLFIpe3JldHVybiBFPXtuYW1lOkksc3R5bGVzOlIsbmV4dDpFfSxJfSl9cmV0dXJuIG5bVF0hPT0xJiYhdShUKSYmdHlwZW9mIFM9PSJudW1iZXIiJiZTIT09MD9TKyJweCI6U30sbT0iQ29tcG9uZW50IHNlbGVjdG9ycyBjYW4gb25seSBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggQGVtb3Rpb24vYmFiZWwtcGx1Z2luLCB0aGUgc3djIEVtb3Rpb24gcGx1Z2luLCBvciBhbm90aGVyIEVtb3Rpb24tYXdhcmUgY29tcGlsZXIgdHJhbnNmb3JtLiI7ZnVuY3Rpb24gQyhPLFQsUyl7aWYoUz09bnVsbClyZXR1cm4iIjt2YXIgTD1TO2lmKEwuX19lbW90aW9uX3N0eWxlcyE9PXZvaWQgMClyZXR1cm4gTDtzd2l0Y2godHlwZW9mIFMpe2Nhc2UiYm9vbGVhbiI6cmV0dXJuIiI7Y2FzZSJvYmplY3QiOnt2YXIgST1TO2lmKEkuYW5pbT09PTEpcmV0dXJuIEU9e25hbWU6SS5uYW1lLHN0eWxlczpJLnN0eWxlcyxuZXh0OkV9LEkubmFtZTt2YXIgUj1TO2lmKFIuc3R5bGVzIT09dm9pZCAwKXt2YXIgej1SLm5leHQ7aWYoeiE9PXZvaWQgMClmb3IoO3ohPT12b2lkIDA7KUU9e25hbWU6ei5uYW1lLHN0eWxlczp6LnN0eWxlcyxuZXh0OkV9LHo9ei5uZXh0O3ZhciBHPVIuc3R5bGVzKyI7IjtyZXR1cm4gR31yZXR1cm4gZyhPLFQsUyl9Y2FzZSJmdW5jdGlvbiI6e2lmKE8hPT12b2lkIDApe3ZhciBZPUUsZWU9UyhPKTtyZXR1cm4gRT1ZLEMoTyxULGVlKX1icmVha319dmFyIEo9UztpZihUPT1udWxsKXJldHVybiBKO3ZhciBtZT1UW0pdO3JldHVybiBtZSE9PXZvaWQgMD9tZTpKfWZ1bmN0aW9uIGcoTyxULFMpe3ZhciBMPSIiO2lmKEFycmF5LmlzQXJyYXkoUykpZm9yKHZhciBJPTA7STxTLmxlbmd0aDtJKyspTCs9QyhPLFQsU1tJXSkrIjsiO2Vsc2UgZm9yKHZhciBSIGluIFMpe3ZhciB6PVNbUl07aWYodHlwZW9mIHohPSJvYmplY3QiKXt2YXIgRz16O1QhPW51bGwmJlRbR10hPT12b2lkIDA/TCs9UisieyIrVFtHXSsifSI6YyhHKSYmKEwrPWgoUikrIjoiK2QoUixHKSsiOyIpfWVsc2V7aWYoUj09PSJOT19DT01QT05FTlRfU0VMRUNUT1IiJiZpKXRocm93IG5ldyBFcnJvcihtKTtpZihBcnJheS5pc0FycmF5KHopJiZ0eXBlb2YgelswXT09InN0cmluZyImJihUPT1udWxsfHxUW3pbMF1dPT09dm9pZCAwKSlmb3IodmFyIFk9MDtZPHoubGVuZ3RoO1krKyljKHpbWV0pJiYoTCs9aChSKSsiOiIrZChSLHpbWV0pKyI7Iik7ZWxzZXt2YXIgZWU9QyhPLFQseik7c3dpdGNoKFIpe2Nhc2UiYW5pbWF0aW9uIjpjYXNlImFuaW1hdGlvbk5hbWUiOntMKz1oKFIpKyI6IitlZSsiOyI7YnJlYWt9ZGVmYXVsdDpMKz1SKyJ7IitlZSsifSJ9fX19cmV0dXJuIEx9dmFyIHc9L2xhYmVsOlxzKihbXlxzO3tdKylccyooO3wkKS9nLEU7ZnVuY3Rpb24geChPLFQsUyl7aWYoTy5sZW5ndGg9PT0xJiZ0eXBlb2YgT1swXT09Im9iamVjdCImJk9bMF0hPT1udWxsJiZPWzBdLnN0eWxlcyE9PXZvaWQgMClyZXR1cm4gT1swXTt2YXIgTD0hMCxJPSIiO0U9dm9pZCAwO3ZhciBSPU9bMF07aWYoUj09bnVsbHx8Ui5yYXc9PT12b2lkIDApTD0hMSxJKz1DKFMsVCxSKTtlbHNle3ZhciB6PVI7SSs9elswXX1mb3IodmFyIEc9MTtHPE8ubGVuZ3RoO0crKylpZihJKz1DKFMsVCxPW0ddKSxMKXt2YXIgWT1SO0krPVlbR119dy5sYXN0SW5kZXg9MDtmb3IodmFyIGVlPSIiLEo7KEo9dy5leGVjKEkpKSE9PW51bGw7KWVlKz0iLSIrSlsxXTt2YXIgbWU9cihJKStlZTtyZXR1cm57bmFtZTptZSxzdHlsZXM6SSxuZXh0OkV9fX0sNzA0NDQ6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7TXk6ZnVuY3Rpb24oKXtyZXR1cm4gaX0sZnA6ZnVuY3Rpb24oKXtyZXR1cm4gbn0saEM6ZnVuY3Rpb24oKXtyZXR1cm4gdH19KTt2YXIgcj0hMDtmdW5jdGlvbiBuKHMsYSx1KXt2YXIgYz0iIjtyZXR1cm4gdS5zcGxpdCgiICIpLmZvckVhY2goZnVuY3Rpb24oaCl7c1toXSE9PXZvaWQgMD9hLnB1c2goc1toXSsiOyIpOmgmJihjKz1oKyIgIil9KSxjfXZhciB0PWZ1bmN0aW9uKGEsdSxjKXt2YXIgaD1hLmtleSsiLSIrdS5uYW1lOyhjPT09ITF8fHI9PT0hMSkmJmEucmVnaXN0ZXJlZFtoXT09PXZvaWQgMCYmKGEucmVnaXN0ZXJlZFtoXT11LnN0eWxlcyl9LGk9ZnVuY3Rpb24oYSx1LGMpe3QoYSx1LGMpO3ZhciBoPWEua2V5KyItIit1Lm5hbWU7aWYoYS5pbnNlcnRlZFt1Lm5hbWVdPT09dm9pZCAwKXt2YXIgZD11O2RvIGEuaW5zZXJ0KHU9PT1kPyIuIitoOiIiLGQsYS5zaGVldCwhMCksZD1kLm5leHQ7d2hpbGUoZCE9PXZvaWQgMCl9fX0sMzk4OTk6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7SWw6ZnVuY3Rpb24oKXtyZXR1cm4gT30sRzU6ZnVuY3Rpb24oKXtyZXR1cm4gZWV9LFpQOmZ1bmN0aW9uKCl7cmV0dXJuIF9lfX0pO3ZhciByPWUoODc0NjIpLG49ZSg0OTQyKSx0PWUoOTc2ODUpLGk9ZSg2NzI5NCkscz1lKDE0MTMpLGE9ZSgxNTY3MSksdT1lKDQzMTQ0KSxjPWUoNjAxMzYpLGg9ZSgyOTM4OCksZD1lKDkxKSxtPWUoNzEwMDIpLEM9ZSgxNTA2MyksZz1bImIiXSx3PVsidiJdLEU9ZnVuY3Rpb24oU2Upe3JldHVybiBNYXRoLnJvdW5kKE51bWJlcihTZXx8MCkpfSx4PWZ1bmN0aW9uKFNlKXtpZihTZSBpbnN0YW5jZW9mIEMudClyZXR1cm4gU2U7aWYoU2UmJigwLG0uWikoU2UpPT09Im9iamVjdCImJiJoImluIFNlJiYiYiJpbiBTZSl7dmFyIHE9U2Usaz1xLmIsTT0oMCxkLlopKHEsZyk7cmV0dXJuKDAscy5aKSgoMCxzLlopKHt9LE0pLHt9LHt2Omt9KX1yZXR1cm4gdHlwZW9mIFNlPT0ic3RyaW5nIiYmL2hzYi8udGVzdChTZSk/U2UucmVwbGFjZSgvaHNiLywiaHN2Iik6U2V9LE89ZnVuY3Rpb24oRmUpeygwLGMuWikocSxGZSk7dmFyIFNlPSgwLGguWikocSk7ZnVuY3Rpb24gcShrKXtyZXR1cm4oMCxhLlopKHRoaXMscSksU2UuY2FsbCh0aGlzLHgoaykpfXJldHVybigwLHUuWikocSxbe2tleToidG9Ic2JTdHJpbmciLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIE09dGhpcy50b0hzYigpLEE9RShNLnMqMTAwKSxVPUUoTS5iKjEwMCksTj1FKE0uaCksUT1NLmEsdWU9ImhzYigiLmNvbmNhdChOLCIsICIpLmNvbmNhdChBLCIlLCAiKS5jb25jYXQoVSwiJSkiKSwkPSJoc2JhKCIuY29uY2F0KE4sIiwgIikuY29uY2F0KEEsIiUsICIpLmNvbmNhdChVLCIlLCAiKS5jb25jYXQoUS50b0ZpeGVkKFE9PT0wPzA6MiksIikiKTtyZXR1cm4gUT09PTE/dWU6JH19LHtrZXk6InRvSHNiIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBNPXRoaXMudG9Ic3YoKSxBPU0udixVPSgwLGQuWikoTSx3KTtyZXR1cm4oMCxzLlopKCgwLHMuWikoe30sVSkse30se2I6QSxhOnRoaXMuYX0pfX1dKSxxfShDLnQpLFQ9InJjLWNvbG9yLXBpY2tlciIsUz1mdW5jdGlvbihTZSl7cmV0dXJuIFNlIGluc3RhbmNlb2YgTz9TZTpuZXcgTyhTZSl9LEw9UygiIzE2NzdmZiIpLEk9ZnVuY3Rpb24oU2Upe3ZhciBxPVNlLm9mZnNldCxrPVNlLnRhcmdldFJlZixNPVNlLmNvbnRhaW5lclJlZixBPVNlLmNvbG9yLFU9U2UudHlwZSxOPU0uY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxRPU4ud2lkdGgsdWU9Ti5oZWlnaHQsJD1rLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksXz0kLndpZHRoLHBlPSQuaGVpZ2h0LHJlPV8vMixhZT1wZS8yLHdlPShxLngrcmUpL1EsTGU9MS0ocS55K2FlKS91ZSxNZT1BLnRvSHNiKCksYmU9d2UsJGU9KHEueCtyZSkvUSozNjA7aWYoVSlzd2l0Y2goVSl7Y2FzZSJodWUiOnJldHVybiBTKCgwLHMuWikoKDAscy5aKSh7fSxNZSkse30se2g6JGU8PTA/MDokZX0pKTtjYXNlImFscGhhIjpyZXR1cm4gUygoMCxzLlopKCgwLHMuWikoe30sTWUpLHt9LHthOmJlPD0wPzA6YmV9KSl9cmV0dXJuIFMoe2g6TWUuaCxzOndlPD0wPzA6d2UsYjpMZT49MT8xOkxlLGE6TWUuYX0pfSxSPWZ1bmN0aW9uKFNlLHEpe3ZhciBrPVNlLnRvSHNiKCk7c3dpdGNoKHEpe2Nhc2UiaHVlIjpyZXR1cm57eDprLmgvMzYwKjEwMCx5OjUwfTtjYXNlImFscGhhIjpyZXR1cm57eDpTZS5hKjEwMCx5OjUwfTtkZWZhdWx0OnJldHVybnt4OmsucyoxMDAseTooMS1rLmIpKjEwMH19fSx6PWUoOTM5NjcpLEc9ZS5uKHopLFk9ZnVuY3Rpb24oU2Upe3ZhciBxPVNlLmNvbG9yLGs9U2UucHJlZml4Q2xzLE09U2UuY2xhc3NOYW1lLEE9U2Uuc3R5bGUsVT1TZS5vbkNsaWNrLE49IiIuY29uY2F0KGssIi1jb2xvci1ibG9jayIpO3JldHVybiBpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpHKCkoTixNKSxzdHlsZTpBLG9uQ2xpY2s6VX0saS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KE4sIi1pbm5lciIpLHN0eWxlOntiYWNrZ3JvdW5kOnF9fSkpfSxlZT1ZO2Z1bmN0aW9uIEooRmUpe3ZhciBTZT0idG91Y2hlcyJpbiBGZT9GZS50b3VjaGVzWzBdOkZlLHE9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbExlZnR8fGRvY3VtZW50LmJvZHkuc2Nyb2xsTGVmdHx8d2luZG93LnBhZ2VYT2Zmc2V0LGs9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcHx8ZG9jdW1lbnQuYm9keS5zY3JvbGxUb3B8fHdpbmRvdy5wYWdlWU9mZnNldDtyZXR1cm57cGFnZVg6U2UucGFnZVgtcSxwYWdlWTpTZS5wYWdlWS1rfX1mdW5jdGlvbiBtZShGZSl7dmFyIFNlPUZlLnRhcmdldFJlZixxPUZlLmNvbnRhaW5lclJlZixrPUZlLmRpcmVjdGlvbixNPUZlLm9uRHJhZ0NoYW5nZSxBPUZlLm9uRHJhZ0NoYW5nZUNvbXBsZXRlLFU9RmUuY2FsY3VsYXRlLE49RmUuY29sb3IsUT1GZS5kaXNhYmxlZERyYWcsdWU9KDAsaS51c2VTdGF0ZSkoe3g6MCx5OjB9KSwkPSgwLHQuWikodWUsMiksXz0kWzBdLHBlPSRbMV0scmU9KDAsaS51c2VSZWYpKG51bGwpLGFlPSgwLGkudXNlUmVmKShudWxsKTsoMCxpLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtwZShVKCkpfSxbTl0pLCgwLGkudXNlRWZmZWN0KShmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbigpe2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIscmUuY3VycmVudCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsYWUuY3VycmVudCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixyZS5jdXJyZW50KSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsYWUuY3VycmVudCkscmUuY3VycmVudD1udWxsLGFlLmN1cnJlbnQ9bnVsbH19LFtdKTt2YXIgd2U9ZnVuY3Rpb24oa2Upe3ZhciBBZT1KKGtlKSx0dD1BZS5wYWdlWCxtdD1BZS5wYWdlWSx1dD1xLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksRGU9dXQueCxOZT11dC55LFhlPXV0LndpZHRoLEplPXV0LmhlaWdodCxndD1TZS5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGRlPWd0LndpZHRoLFdlPWd0LmhlaWdodCxTdD1kZS8yLGN0PVdlLzIsT2U9TWF0aC5tYXgoMCxNYXRoLm1pbih0dC1EZSxYZSkpLVN0LEdlPU1hdGgubWF4KDAsTWF0aC5taW4obXQtTmUsSmUpKS1jdCxodD17eDpPZSx5Oms9PT0ieCI/Xy55OkdlfTtpZihkZT09PTAmJldlPT09MHx8ZGUhPT1XZSlyZXR1cm4hMTtNPT1udWxsfHxNKGh0KX0sTGU9ZnVuY3Rpb24oa2Upe2tlLnByZXZlbnREZWZhdWx0KCksd2Uoa2UpfSxNZT1mdW5jdGlvbihrZSl7a2UucHJldmVudERlZmF1bHQoKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHJlLmN1cnJlbnQpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLGFlLmN1cnJlbnQpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIscmUuY3VycmVudCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLGFlLmN1cnJlbnQpLHJlLmN1cnJlbnQ9bnVsbCxhZS5jdXJyZW50PW51bGwsQT09bnVsbHx8QSgpfSxiZT1mdW5jdGlvbihrZSl7ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIixyZS5jdXJyZW50KSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIixhZS5jdXJyZW50KSwhUSYmKHdlKGtlKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLExlKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIixNZSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixMZSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLE1lKSxyZS5jdXJyZW50PUxlLGFlLmN1cnJlbnQ9TWUpfTtyZXR1cm5bXyxiZV19dmFyIHRlPW1lLGxlPWUoNTY3OTApLGNlPWZ1bmN0aW9uKFNlKXt2YXIgcT1TZS5zaXplLGs9cT09PXZvaWQgMD8iZGVmYXVsdCI6cSxNPVNlLmNvbG9yLEE9U2UucHJlZml4Q2xzO3JldHVybiBpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpHKCkoIiIuY29uY2F0KEEsIi1oYW5kbGVyIiksKDAsbi5aKSh7fSwiIi5jb25jYXQoQSwiLWhhbmRsZXItc20iKSxrPT09InNtYWxsIikpLHN0eWxlOntiYWNrZ3JvdW5kQ29sb3I6TX19KX0sVz1jZSxqPWZ1bmN0aW9uKFNlKXt2YXIgcT1TZS5jaGlsZHJlbixrPVNlLnN0eWxlLE09U2UucHJlZml4Q2xzO3JldHVybiBpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiIi5jb25jYXQoTSwiLXBhbGV0dGUiKSxzdHlsZTooMCxzLlopKHtwb3NpdGlvbjoicmVsYXRpdmUifSxrKX0scSl9LEQ9aixWPSgwLGkuZm9yd2FyZFJlZikoZnVuY3Rpb24oRmUsU2Upe3ZhciBxPUZlLmNoaWxkcmVuLGs9RmUueCxNPUZlLnk7cmV0dXJuIGkuY3JlYXRlRWxlbWVudCgiZGl2Iix7cmVmOlNlLHN0eWxlOntwb3NpdGlvbjoiYWJzb2x1dGUiLGxlZnQ6IiIuY29uY2F0KGssIiUiKSx0b3A6IiIuY29uY2F0KE0sIiUiKSx6SW5kZXg6MSx0cmFuc2Zvcm06InRyYW5zbGF0ZSgtNTAlLCAtNTAlKSJ9fSxxKX0pLFo9VixQPWZ1bmN0aW9uKFNlKXt2YXIgcT1TZS5jb2xvcixrPVNlLm9uQ2hhbmdlLE09U2UucHJlZml4Q2xzLEE9U2Uub25DaGFuZ2VDb21wbGV0ZSxVPVNlLmRpc2FibGVkLE49KDAsaS51c2VSZWYpKCksUT0oMCxpLnVzZVJlZikoKSx1ZT0oMCxpLnVzZVJlZikocSksJD0oMCxsZS56WCkoZnVuY3Rpb24od2Upe3ZhciBMZT1JKHtvZmZzZXQ6d2UsdGFyZ2V0UmVmOlEsY29udGFpbmVyUmVmOk4sY29sb3I6cX0pO3VlLmN1cnJlbnQ9TGUsayhMZSl9KSxfPXRlKHtjb2xvcjpxLGNvbnRhaW5lclJlZjpOLHRhcmdldFJlZjpRLGNhbGN1bGF0ZTpmdW5jdGlvbigpe3JldHVybiBSKHEpfSxvbkRyYWdDaGFuZ2U6JCxvbkRyYWdDaGFuZ2VDb21wbGV0ZTpmdW5jdGlvbigpe3JldHVybiBBPT1udWxsP3ZvaWQgMDpBKHVlLmN1cnJlbnQpfSxkaXNhYmxlZERyYWc6VX0pLHBlPSgwLHQuWikoXywyKSxyZT1wZVswXSxhZT1wZVsxXTtyZXR1cm4gaS5jcmVhdGVFbGVtZW50KCJkaXYiLHtyZWY6TixjbGFzc05hbWU6IiIuY29uY2F0KE0sIi1zZWxlY3QiKSxvbk1vdXNlRG93bjphZSxvblRvdWNoU3RhcnQ6YWV9LGkuY3JlYXRlRWxlbWVudChELHtwcmVmaXhDbHM6TX0saS5jcmVhdGVFbGVtZW50KFose3g6cmUueCx5OnJlLnkscmVmOlF9LGkuY3JlYXRlRWxlbWVudChXLHtjb2xvcjpxLnRvUmdiU3RyaW5nKCkscHJlZml4Q2xzOk19KSksaS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KE0sIi1zYXR1cmF0aW9uIiksc3R5bGU6e2JhY2tncm91bmRDb2xvcjoiaHNsKCIuY29uY2F0KHEudG9Ic2IoKS5oLCIsMTAwJSwgNTAlKSIpLGJhY2tncm91bmRJbWFnZToibGluZWFyLWdyYWRpZW50KDBkZWcsICMwMDAsIHRyYW5zcGFyZW50KSxsaW5lYXItZ3JhZGllbnQoOTBkZWcsICNmZmYsIGhzbGEoMCwgMCUsIDEwMCUsIDApKSJ9fSkpKX0sSz1QLHNlPWZ1bmN0aW9uKFNlLHEpe3ZhciBrPSgwLGxlLkM4KShTZSx7dmFsdWU6cX0pLE09KDAsdC5aKShrLDIpLEE9TVswXSxVPU1bMV0sTj0oMCxpLnVzZU1lbW8pKGZ1bmN0aW9uKCl7cmV0dXJuIFMoQSl9LFtBXSk7cmV0dXJuW04sVV19LG5lPXNlLG9lPWZ1bmN0aW9uKFNlKXt2YXIgcT1TZS5jb2xvcnMsaz1TZS5jaGlsZHJlbixNPVNlLmRpcmVjdGlvbixBPU09PT12b2lkIDA/InRvIHJpZ2h0IjpNLFU9U2UudHlwZSxOPVNlLnByZWZpeENscyxRPSgwLGkudXNlTWVtbykoZnVuY3Rpb24oKXtyZXR1cm4gcS5tYXAoZnVuY3Rpb24odWUsJCl7dmFyIF89Uyh1ZSk7cmV0dXJuIFU9PT0iYWxwaGEiJiYkPT09cS5sZW5ndGgtMSYmKF89bmV3IE8oXy5zZXRBKDEpKSksXy50b1JnYlN0cmluZygpfSkuam9pbigiLCIpfSxbcSxVXSk7cmV0dXJuIGkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdChOLCItZ3JhZGllbnQiKSxzdHlsZTp7cG9zaXRpb246ImFic29sdXRlIixpbnNldDowLGJhY2tncm91bmQ6ImxpbmVhci1ncmFkaWVudCgiLmNvbmNhdChBLCIsICIpLmNvbmNhdChRLCIpIil9fSxrKX0sZmU9b2UsRWU9ZnVuY3Rpb24oU2Upe3ZhciBxPVNlLnByZWZpeENscyxrPVNlLmNvbG9ycyxNPVNlLmRpc2FibGVkLEE9U2Uub25DaGFuZ2UsVT1TZS5vbkNoYW5nZUNvbXBsZXRlLE49U2UuY29sb3IsUT1TZS50eXBlLHVlPSgwLGkudXNlUmVmKSgpLCQ9KDAsaS51c2VSZWYpKCksXz0oMCxpLnVzZVJlZikoTikscGU9ZnVuY3Rpb24oQWUpe3JldHVybiBRPT09Imh1ZSI/QWUuZ2V0SHVlKCk6QWUuYSoxMDB9LHJlPSgwLGxlLnpYKShmdW5jdGlvbihrZSl7dmFyIEFlPUkoe29mZnNldDprZSx0YXJnZXRSZWY6JCxjb250YWluZXJSZWY6dWUsY29sb3I6Tix0eXBlOlF9KTtfLmN1cnJlbnQ9QWUsQShwZShBZSkpfSksYWU9dGUoe2NvbG9yOk4sdGFyZ2V0UmVmOiQsY29udGFpbmVyUmVmOnVlLGNhbGN1bGF0ZTpmdW5jdGlvbigpe3JldHVybiBSKE4sUSl9LG9uRHJhZ0NoYW5nZTpyZSxvbkRyYWdDaGFuZ2VDb21wbGV0ZTpmdW5jdGlvbigpe1UocGUoXy5jdXJyZW50KSl9LGRpcmVjdGlvbjoieCIsZGlzYWJsZWREcmFnOk19KSx3ZT0oMCx0LlopKGFlLDIpLExlPXdlWzBdLE1lPXdlWzFdLGJlPWkudXNlTWVtbyhmdW5jdGlvbigpe2lmKFE9PT0iaHVlIil7dmFyIGtlPU4udG9Ic2IoKTtrZS5zPTEsa2UuYj0xLGtlLmE9MTt2YXIgQWU9bmV3IE8oa2UpO3JldHVybiBBZX1yZXR1cm4gTn0sW04sUV0pLCRlPWkudXNlTWVtbyhmdW5jdGlvbigpe3JldHVybiBrLm1hcChmdW5jdGlvbihrZSl7cmV0dXJuIiIuY29uY2F0KGtlLmNvbG9yLCIgIikuY29uY2F0KGtlLnBlcmNlbnQsIiUiKX0pfSxba10pO3JldHVybiBpLmNyZWF0ZUVsZW1lbnQoImRpdiIse3JlZjp1ZSxjbGFzc05hbWU6RygpKCIiLmNvbmNhdChxLCItc2xpZGVyIiksIiIuY29uY2F0KHEsIi1zbGlkZXItIikuY29uY2F0KFEpKSxvbk1vdXNlRG93bjpNZSxvblRvdWNoU3RhcnQ6TWV9LGkuY3JlYXRlRWxlbWVudChELHtwcmVmaXhDbHM6cX0saS5jcmVhdGVFbGVtZW50KFose3g6TGUueCx5OkxlLnkscmVmOiR9LGkuY3JlYXRlRWxlbWVudChXLHtzaXplOiJzbWFsbCIsY29sb3I6YmUudG9IZXhTdHJpbmcoKSxwcmVmaXhDbHM6cX0pKSxpLmNyZWF0ZUVsZW1lbnQoZmUse2NvbG9yczokZSx0eXBlOlEscHJlZml4Q2xzOnF9KSkpfSxSZT1FZTtmdW5jdGlvbiBCZShGZSl7cmV0dXJuIGkudXNlTWVtbyhmdW5jdGlvbigpe3ZhciBTZT1GZXx8e30scT1TZS5zbGlkZXI7cmV0dXJuW3F8fFJlXX0sW0ZlXSl9dmFyIFllPVt7Y29sb3I6InJnYigyNTUsIDAsIDApIixwZXJjZW50OjB9LHtjb2xvcjoicmdiKDI1NSwgMjU1LCAwKSIscGVyY2VudDoxN30se2NvbG9yOiJyZ2IoMCwgMjU1LCAwKSIscGVyY2VudDozM30se2NvbG9yOiJyZ2IoMCwgMjU1LCAyNTUpIixwZXJjZW50OjUwfSx7Y29sb3I6InJnYigwLCAwLCAyNTUpIixwZXJjZW50OjY3fSx7Y29sb3I6InJnYigyNTUsIDAsIDI1NSkiLHBlcmNlbnQ6ODN9LHtjb2xvcjoicmdiKDI1NSwgMCwgMCkiLHBlcmNlbnQ6MTAwfV0sb3Q9KDAsaS5mb3J3YXJkUmVmKShmdW5jdGlvbihGZSxTZSl7dmFyIHE9RmUudmFsdWUsaz1GZS5kZWZhdWx0VmFsdWUsTT1GZS5wcmVmaXhDbHMsQT1NPT09dm9pZCAwP1Q6TSxVPUZlLm9uQ2hhbmdlLE49RmUub25DaGFuZ2VDb21wbGV0ZSxRPUZlLmNsYXNzTmFtZSx1ZT1GZS5zdHlsZSwkPUZlLnBhbmVsUmVuZGVyLF89RmUuZGlzYWJsZWRBbHBoYSxwZT1fPT09dm9pZCAwPyExOl8scmU9RmUuZGlzYWJsZWQsYWU9cmU9PT12b2lkIDA/ITE6cmUsd2U9RmUuY29tcG9uZW50cyxMZT1CZSh3ZSksTWU9KDAsdC5aKShMZSwxKSxiZT1NZVswXSwkZT1uZShrfHxMLHEpLGtlPSgwLHQuWikoJGUsMiksQWU9a2VbMF0sdHQ9a2VbMV0sbXQ9KDAsaS51c2VNZW1vKShmdW5jdGlvbigpe3JldHVybiBBZS5zZXRBKDEpLnRvUmdiU3RyaW5nKCl9LFtBZV0pLHV0PWZ1bmN0aW9uKEdlLGh0KXtxfHx0dChHZSksVT09bnVsbHx8VShHZSxodCl9LERlPWZ1bmN0aW9uKEdlKXtyZXR1cm4gbmV3IE8oQWUuc2V0SHVlKEdlKSl9LE5lPWZ1bmN0aW9uKEdlKXtyZXR1cm4gbmV3IE8oQWUuc2V0QShHZS8xMDApKX0sWGU9ZnVuY3Rpb24oR2Upe3V0KERlKEdlKSx7dHlwZToiaHVlIix2YWx1ZTpHZX0pfSxKZT1mdW5jdGlvbihHZSl7dXQoTmUoR2UpLHt0eXBlOiJhbHBoYSIsdmFsdWU6R2V9KX0sZ3Q9ZnVuY3Rpb24oR2Upe04mJk4oRGUoR2UpKX0sZGU9ZnVuY3Rpb24oR2Upe04mJk4oTmUoR2UpKX0sV2U9RygpKCIiLmNvbmNhdChBLCItcGFuZWwiKSxRLCgwLG4uWikoe30sIiIuY29uY2F0KEEsIi1wYW5lbC1kaXNhYmxlZCIpLGFlKSksU3Q9e3ByZWZpeENsczpBLGRpc2FibGVkOmFlLGNvbG9yOkFlfSxjdD1pLmNyZWF0ZUVsZW1lbnQoaS5GcmFnbWVudCxudWxsLGkuY3JlYXRlRWxlbWVudChLLCgwLHIuWikoe29uQ2hhbmdlOnV0fSxTdCx7b25DaGFuZ2VDb21wbGV0ZTpOfSkpLGkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdChBLCItc2xpZGVyLWNvbnRhaW5lciIpfSxpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpHKCkoIiIuY29uY2F0KEEsIi1zbGlkZXItZ3JvdXAiKSwoMCxuLlopKHt9LCIiLmNvbmNhdChBLCItc2xpZGVyLWdyb3VwLWRpc2FibGVkLWFscGhhIikscGUpKX0saS5jcmVhdGVFbGVtZW50KGJlLCgwLHIuWikoe30sU3Qse3R5cGU6Imh1ZSIsY29sb3JzOlllLG1pbjowLG1heDozNTksdmFsdWU6QWUuZ2V0SHVlKCksb25DaGFuZ2U6WGUsb25DaGFuZ2VDb21wbGV0ZTpndH0pKSwhcGUmJmkuY3JlYXRlRWxlbWVudChiZSwoMCxyLlopKHt9LFN0LHt0eXBlOiJhbHBoYSIsY29sb3JzOlt7cGVyY2VudDowLGNvbG9yOiJyZ2JhKDI1NSwgMCwgNCwgMCkifSx7cGVyY2VudDoxMDAsY29sb3I6bXR9XSxtaW46MCxtYXg6MTAwLHZhbHVlOkFlLmEqMTAwLG9uQ2hhbmdlOkplLG9uQ2hhbmdlQ29tcGxldGU6ZGV9KSkpLGkuY3JlYXRlRWxlbWVudChlZSx7Y29sb3I6QWUudG9SZ2JTdHJpbmcoKSxwcmVmaXhDbHM6QX0pKSk7cmV0dXJuIGkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOldlLHN0eWxlOnVlLHJlZjpTZX0sdHlwZW9mICQ9PSJmdW5jdGlvbiI/JChjdCk6Y3QpfSkscWU9b3QsX2U9cWV9LDI3ODg6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiBHfX0pO3ZhciByPWUoOTc2ODUpLG49ZSg2NzI5NCksdD1lKDczOTM1KSxpPWUoOTg5MjQpLHM9ZSg4MDMzNCksYT1lKDQyNTUwKSx1PW4uY3JlYXRlQ29udGV4dChudWxsKSxjPXUsaD1lKDc0OTAyKSxkPWUoODQxMCksbT1bXTtmdW5jdGlvbiBDKFksZWUpe3ZhciBKPW4udXNlU3RhdGUoZnVuY3Rpb24oKXtpZighKDAsaS5aKSgpKXJldHVybiBudWxsO3ZhciBzZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gc2V9KSxtZT0oMCxyLlopKEosMSksdGU9bWVbMF0sbGU9bi51c2VSZWYoITEpLGNlPW4udXNlQ29udGV4dChjKSxXPW4udXNlU3RhdGUobSksaj0oMCxyLlopKFcsMiksRD1qWzBdLFY9alsxXSxaPWNlfHwobGUuY3VycmVudD92b2lkIDA6ZnVuY3Rpb24oc2Upe1YoZnVuY3Rpb24obmUpe3ZhciBvZT1bc2VdLmNvbmNhdCgoMCxoLlopKG5lKSk7cmV0dXJuIG9lfSl9KTtmdW5jdGlvbiBQKCl7dGUucGFyZW50RWxlbWVudHx8ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0ZSksbGUuY3VycmVudD0hMH1mdW5jdGlvbiBLKCl7dmFyIHNlOyhzZT10ZS5wYXJlbnRFbGVtZW50KT09PW51bGx8fHNlPT09dm9pZCAwfHxzZS5yZW1vdmVDaGlsZCh0ZSksbGUuY3VycmVudD0hMX1yZXR1cm4oMCxkLlopKGZ1bmN0aW9uKCl7cmV0dXJuIFk/Y2U/Y2UoUCk6UCgpOksoKSxLfSxbWV0pLCgwLGQuWikoZnVuY3Rpb24oKXtELmxlbmd0aCYmKEQuZm9yRWFjaChmdW5jdGlvbihzZSl7cmV0dXJuIHNlKCl9KSxWKG0pKX0sW0RdKSxbdGUsWl19dmFyIGc9ZSg0NDk1OCksdz1lKDc0MjA0KTtmdW5jdGlvbiBFKCl7cmV0dXJuIGRvY3VtZW50LmJvZHkuc2Nyb2xsSGVpZ2h0Pih3aW5kb3cuaW5uZXJIZWlnaHR8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQpJiZ3aW5kb3cuaW5uZXJXaWR0aD5kb2N1bWVudC5ib2R5Lm9mZnNldFdpZHRofXZhciB4PSJyYy11dGlsLWxvY2tlci0iLmNvbmNhdChEYXRlLm5vdygpKSxPPTA7ZnVuY3Rpb24gVChZKXt2YXIgZWU9ISFZLEo9bi51c2VTdGF0ZShmdW5jdGlvbigpe3JldHVybiBPKz0xLCIiLmNvbmNhdCh4LCJfIikuY29uY2F0KE8pfSksbWU9KDAsci5aKShKLDEpLHRlPW1lWzBdOygwLGQuWikoZnVuY3Rpb24oKXtpZihlZSl7dmFyIGxlPSgwLHcubykoZG9jdW1lbnQuYm9keSkud2lkdGgsY2U9RSgpOygwLGcuaHEpKGAKK2h0bWwgYm9keSB7CisgIG92ZXJmbG93LXk6IGhpZGRlbjsKKyAgYC5jb25jYXQoY2U/IndpZHRoOiBjYWxjKDEwMCUgLSAiLmNvbmNhdChsZSwicHgpOyIpOiIiLGAKK31gKSx0ZSl9ZWxzZSgwLGcuakwpKHRlKTtyZXR1cm4gZnVuY3Rpb24oKXsoMCxnLmpMKSh0ZSl9fSxbZWUsdGVdKX12YXIgUz0hMTtmdW5jdGlvbiBMKFkpe3JldHVybiB0eXBlb2YgWT09ImJvb2xlYW4iJiYoUz1ZKSxTfXZhciBJPWZ1bmN0aW9uKGVlKXtyZXR1cm4gZWU9PT0hMT8hMTohKDAsaS5aKSgpfHwhZWU/bnVsbDp0eXBlb2YgZWU9PSJzdHJpbmciP2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoZWUpOnR5cGVvZiBlZT09ImZ1bmN0aW9uIj9lZSgpOmVlfSxSPW4uZm9yd2FyZFJlZihmdW5jdGlvbihZLGVlKXt2YXIgSj1ZLm9wZW4sbWU9WS5hdXRvTG9jayx0ZT1ZLmdldENvbnRhaW5lcixsZT1ZLmRlYnVnLGNlPVkuYXV0b0Rlc3Ryb3ksVz1jZT09PXZvaWQgMD8hMDpjZSxqPVkuY2hpbGRyZW4sRD1uLnVzZVN0YXRlKEopLFY9KDAsci5aKShELDIpLFo9VlswXSxQPVZbMV0sSz1afHxKO24udXNlRWZmZWN0KGZ1bmN0aW9uKCl7KFd8fEopJiZQKEopfSxbSixXXSk7dmFyIHNlPW4udXNlU3RhdGUoZnVuY3Rpb24oKXtyZXR1cm4gSSh0ZSl9KSxuZT0oMCxyLlopKHNlLDIpLG9lPW5lWzBdLGZlPW5lWzFdO24udXNlRWZmZWN0KGZ1bmN0aW9uKCl7dmFyIGs9SSh0ZSk7ZmUoayE9bnVsbD9rOm51bGwpfSk7dmFyIEVlPUMoSyYmIW9lLGxlKSxSZT0oMCxyLlopKEVlLDIpLEJlPVJlWzBdLFllPVJlWzFdLG90PW9lIT1udWxsP29lOkJlO1QobWUmJkomJigwLGkuWikoKSYmKG90PT09QmV8fG90PT09ZG9jdW1lbnQuYm9keSkpO3ZhciBxZT1udWxsO2lmKGomJigwLGEuWXIpKGopJiZlZSl7dmFyIF9lPWo7cWU9X2UucmVmfXZhciBGZT0oMCxhLngxKShxZSxlZSk7aWYoIUt8fCEoMCxpLlopKCl8fG9lPT09dm9pZCAwKXJldHVybiBudWxsO3ZhciBTZT1vdD09PSExfHxMKCkscT1qO3JldHVybiBlZSYmKHE9bi5jbG9uZUVsZW1lbnQoaix7cmVmOkZlfSkpLG4uY3JlYXRlRWxlbWVudChjLlByb3ZpZGVyLHt2YWx1ZTpZZX0sU2U/cTooMCx0LmNyZWF0ZVBvcnRhbCkocSxvdCkpfSksej1SLEc9en0sNDAyMjg6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiBTZX19KTt2YXIgcj1lKDE0MTMpLG49ZSg5NzY4NSksdD1lKDkxKSxpPWUoMjc4OCkscz1lKDkzOTY3KSxhPWUubihzKSx1PWUoNDg1NTUpLGM9ZSgzNDIwMyksaD1lKDI3NTcxKSxkPWUoNjY2ODApLG09ZSg3MDI4KSxDPWUoODQxMCksZz1lKDMxMTMxKSx3PWUoNjcyOTQpLEU9ZSg4NzQ2MikseD1lKDI5MzcyKSxPPWUoNDI1NTApO2Z1bmN0aW9uIFQocSl7dmFyIGs9cS5wcmVmaXhDbHMsTT1xLmFsaWduLEE9cS5hcnJvdyxVPXEuYXJyb3dQb3MsTj1BfHx7fSxRPU4uY2xhc3NOYW1lLHVlPU4uY29udGVudCwkPVUueCxfPSQ9PT12b2lkIDA/MDokLHBlPVUueSxyZT1wZT09PXZvaWQgMD8wOnBlLGFlPXcudXNlUmVmKCk7aWYoIU18fCFNLnBvaW50cylyZXR1cm4gbnVsbDt2YXIgd2U9e3Bvc2l0aW9uOiJhYnNvbHV0ZSJ9O2lmKE0uYXV0b0Fycm93IT09ITEpe3ZhciBMZT1NLnBvaW50c1swXSxNZT1NLnBvaW50c1sxXSxiZT1MZVswXSwkZT1MZVsxXSxrZT1NZVswXSxBZT1NZVsxXTtiZT09PWtlfHwhWyJ0IiwiYiJdLmluY2x1ZGVzKGJlKT93ZS50b3A9cmU6YmU9PT0idCI/d2UudG9wPTA6d2UuYm90dG9tPTAsJGU9PT1BZXx8IVsibCIsInIiXS5pbmNsdWRlcygkZSk/d2UubGVmdD1fOiRlPT09ImwiP3dlLmxlZnQ9MDp3ZS5yaWdodD0wfXJldHVybiB3LmNyZWF0ZUVsZW1lbnQoImRpdiIse3JlZjphZSxjbGFzc05hbWU6YSgpKCIiLmNvbmNhdChrLCItYXJyb3ciKSxRKSxzdHlsZTp3ZX0sdWUpfWZ1bmN0aW9uIFMocSl7dmFyIGs9cS5wcmVmaXhDbHMsTT1xLm9wZW4sQT1xLnpJbmRleCxVPXEubWFzayxOPXEubW90aW9uO3JldHVybiBVP3cuY3JlYXRlRWxlbWVudCh4LlpQLCgwLEUuWikoe30sTix7bW90aW9uQXBwZWFyOiEwLHZpc2libGU6TSxyZW1vdmVPbkxlYXZlOiEwfSksZnVuY3Rpb24oUSl7dmFyIHVlPVEuY2xhc3NOYW1lO3JldHVybiB3LmNyZWF0ZUVsZW1lbnQoImRpdiIse3N0eWxlOnt6SW5kZXg6QX0sY2xhc3NOYW1lOmEoKSgiIi5jb25jYXQoaywiLW1hc2siKSx1ZSl9KX0pOm51bGx9dmFyIEw9dy5tZW1vKGZ1bmN0aW9uKHEpe3ZhciBrPXEuY2hpbGRyZW47cmV0dXJuIGt9LGZ1bmN0aW9uKHEsayl7cmV0dXJuIGsuY2FjaGV9KSxJPUwsUj13LmZvcndhcmRSZWYoZnVuY3Rpb24ocSxrKXt2YXIgTT1xLnBvcHVwLEE9cS5jbGFzc05hbWUsVT1xLnByZWZpeENscyxOPXEuc3R5bGUsUT1xLnRhcmdldCx1ZT1xLm9uVmlzaWJsZUNoYW5nZWQsJD1xLm9wZW4sXz1xLmtlZXBEb20scGU9cS5mcmVzaCxyZT1xLm9uQ2xpY2ssYWU9cS5tYXNrLHdlPXEuYXJyb3csTGU9cS5hcnJvd1BvcyxNZT1xLmFsaWduLGJlPXEubW90aW9uLCRlPXEubWFza01vdGlvbixrZT1xLmZvcmNlUmVuZGVyLEFlPXEuZ2V0UG9wdXBDb250YWluZXIsdHQ9cS5hdXRvRGVzdHJveSxtdD1xLnBvcnRhbCx1dD1xLnpJbmRleCxEZT1xLm9uTW91c2VFbnRlcixOZT1xLm9uTW91c2VMZWF2ZSxYZT1xLm9uUG9pbnRlckVudGVyLEplPXEub25Qb2ludGVyRG93bkNhcHR1cmUsZ3Q9cS5yZWFkeSxkZT1xLm9mZnNldFgsV2U9cS5vZmZzZXRZLFN0PXEub2Zmc2V0UixjdD1xLm9mZnNldEIsT2U9cS5vbkFsaWduLEdlPXEub25QcmVwYXJlLGh0PXEuc3RyZXRjaCx6ZT1xLnRhcmdldFdpZHRoLFFlPXEudGFyZ2V0SGVpZ2h0LHB0PXR5cGVvZiBNPT0iZnVuY3Rpb24iP00oKTpNLGJ0PSR8fF8sSXQ9KEFlPT1udWxsP3ZvaWQgMDpBZS5sZW5ndGgpPjAsVHQ9dy51c2VTdGF0ZSghQWV8fCFJdCksWHQ9KDAsbi5aKShUdCwyKSxmbj1YdFswXSxubj1YdFsxXTtpZigoMCxDLlopKGZ1bmN0aW9uKCl7IWZuJiZJdCYmUSYmbm4oITApfSxbZm4sSXQsUV0pLCFmbilyZXR1cm4gbnVsbDt2YXIgb249ImF1dG8iLE50PXtsZWZ0OiItMTAwMHZ3Iix0b3A6Ii0xMDAwdmgiLHJpZ2h0Om9uLGJvdHRvbTpvbn07aWYoZ3R8fCEkKXt2YXIgWm4seW49TWUucG9pbnRzLGduPU1lLmR5bmFtaWNJbnNldHx8KChabj1NZS5fZXhwZXJpbWVudGFsKT09PW51bGx8fFpuPT09dm9pZCAwP3ZvaWQgMDpabi5keW5hbWljSW5zZXQpLEJuPWduJiZ5blswXVsxXT09PSJyIixWbj1nbiYmeW5bMF1bMF09PT0iYiI7Qm4/KE50LnJpZ2h0PVN0LE50LmxlZnQ9b24pOihOdC5sZWZ0PWRlLE50LnJpZ2h0PW9uKSxWbj8oTnQuYm90dG9tPWN0LE50LnRvcD1vbik6KE50LnRvcD1XZSxOdC5ib3R0b209b24pfXZhciBObj17fTtyZXR1cm4gaHQmJihodC5pbmNsdWRlcygiaGVpZ2h0IikmJlFlP05uLmhlaWdodD1RZTpodC5pbmNsdWRlcygibWluSGVpZ2h0IikmJlFlJiYoTm4ubWluSGVpZ2h0PVFlKSxodC5pbmNsdWRlcygid2lkdGgiKSYmemU/Tm4ud2lkdGg9emU6aHQuaW5jbHVkZXMoIm1pbldpZHRoIikmJnplJiYoTm4ubWluV2lkdGg9emUpKSwkfHwoTm4ucG9pbnRlckV2ZW50cz0ibm9uZSIpLHcuY3JlYXRlRWxlbWVudChtdCx7b3BlbjprZXx8YnQsZ2V0Q29udGFpbmVyOkFlJiZmdW5jdGlvbigpe3JldHVybiBBZShRKX0sYXV0b0Rlc3Ryb3k6dHR9LHcuY3JlYXRlRWxlbWVudChTLHtwcmVmaXhDbHM6VSxvcGVuOiQsekluZGV4OnV0LG1hc2s6YWUsbW90aW9uOiRlfSksdy5jcmVhdGVFbGVtZW50KHUuWix7b25SZXNpemU6T2UsZGlzYWJsZWQ6ISR9LGZ1bmN0aW9uKGZ0KXtyZXR1cm4gdy5jcmVhdGVFbGVtZW50KHguWlAsKDAsRS5aKSh7bW90aW9uQXBwZWFyOiEwLG1vdGlvbkVudGVyOiEwLG1vdGlvbkxlYXZlOiEwLHJlbW92ZU9uTGVhdmU6ITEsZm9yY2VSZW5kZXI6a2UsbGVhdmVkQ2xhc3NOYW1lOiIiLmNvbmNhdChVLCItaGlkZGVuIil9LGJlLHtvbkFwcGVhclByZXBhcmU6R2Usb25FbnRlclByZXBhcmU6R2UsdmlzaWJsZTokLG9uVmlzaWJsZUNoYW5nZWQ6ZnVuY3Rpb24oSnQpe3ZhciB3dDtiZT09bnVsbHx8KHd0PWJlLm9uVmlzaWJsZUNoYW5nZWQpPT09bnVsbHx8d3Q9PT12b2lkIDB8fHd0LmNhbGwoYmUsSnQpLHVlKEp0KX19KSxmdW5jdGlvbihldCxKdCl7dmFyIHd0PWV0LmNsYXNzTmFtZSxfdD1ldC5zdHlsZSx4bj1hKCkoVSx3dCxBKTtyZXR1cm4gdy5jcmVhdGVFbGVtZW50KCJkaXYiLHtyZWY6KDAsTy5zUSkoZnQsayxKdCksY2xhc3NOYW1lOnhuLHN0eWxlOigwLHIuWikoKDAsci5aKSgoMCxyLlopKCgwLHIuWikoeyItLWFycm93LXgiOiIiLmNvbmNhdChMZS54fHwwLCJweCIpLCItLWFycm93LXkiOiIiLmNvbmNhdChMZS55fHwwLCJweCIpfSxOdCksTm4pLF90KSx7fSx7Ym94U2l6aW5nOiJib3JkZXItYm94Iix6SW5kZXg6dXR9LE4pLG9uTW91c2VFbnRlcjpEZSxvbk1vdXNlTGVhdmU6TmUsb25Qb2ludGVyRW50ZXI6WGUsb25DbGljazpyZSxvblBvaW50ZXJEb3duQ2FwdHVyZTpKZX0sd2UmJncuY3JlYXRlRWxlbWVudChULHtwcmVmaXhDbHM6VSxhcnJvdzp3ZSxhcnJvd1BvczpMZSxhbGlnbjpNZX0pLHcuY3JlYXRlRWxlbWVudChJLHtjYWNoZTohJCYmIXBlfSxwdCkpfSl9KSl9KSx6PVIsRz13LmZvcndhcmRSZWYoZnVuY3Rpb24ocSxrKXt2YXIgTT1xLmNoaWxkcmVuLEE9cS5nZXRUcmlnZ2VyRE9NTm9kZSxVPSgwLE8uWXIpKE0pLE49dy51c2VDYWxsYmFjayhmdW5jdGlvbih1ZSl7KDAsTy5tSCkoayxBP0EodWUpOnVlKX0sW0FdKSxRPSgwLE8ueDEpKE4sKDAsTy5DNCkoTSkpO3JldHVybiBVP3cuY2xvbmVFbGVtZW50KE0se3JlZjpRfSk6TX0pLFk9RyxlZT13LmNyZWF0ZUNvbnRleHQobnVsbCksSj1lZTtmdW5jdGlvbiBtZShxKXtyZXR1cm4gcT9BcnJheS5pc0FycmF5KHEpP3E6W3FdOltdfWZ1bmN0aW9uIHRlKHEsayxNLEEpe3JldHVybiB3LnVzZU1lbW8oZnVuY3Rpb24oKXt2YXIgVT1tZShNIT1udWxsP006ayksTj1tZShBIT1udWxsP0E6ayksUT1uZXcgU2V0KFUpLHVlPW5ldyBTZXQoTik7cmV0dXJuIHEmJihRLmhhcygiaG92ZXIiKSYmKFEuZGVsZXRlKCJob3ZlciIpLFEuYWRkKCJjbGljayIpKSx1ZS5oYXMoImhvdmVyIikmJih1ZS5kZWxldGUoImhvdmVyIiksdWUuYWRkKCJjbGljayIpKSksW1EsdWVdfSxbcSxrLE0sQV0pfXZhciBsZT1lKDUxMTApO2Z1bmN0aW9uIGNlKCl7dmFyIHE9YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT12b2lkIDA/YXJndW1lbnRzWzBdOltdLGs9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOltdLE09YXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDA7cmV0dXJuIE0/cVswXT09PWtbMF06cVswXT09PWtbMF0mJnFbMV09PT1rWzFdfWZ1bmN0aW9uIFcocSxrLE0sQSl7Zm9yKHZhciBVPU0ucG9pbnRzLE49T2JqZWN0LmtleXMocSksUT0wO1E8Ti5sZW5ndGg7USs9MSl7dmFyIHVlLCQ9TltRXTtpZihjZSgodWU9cVskXSk9PT1udWxsfHx1ZT09PXZvaWQgMD92b2lkIDA6dWUucG9pbnRzLFUsQSkpcmV0dXJuIiIuY29uY2F0KGssIi1wbGFjZW1lbnQtIikuY29uY2F0KCQpfXJldHVybiIifWZ1bmN0aW9uIGoocSxrLE0sQSl7cmV0dXJuIGt8fChNP3ttb3Rpb25OYW1lOiIiLmNvbmNhdChxLCItIikuY29uY2F0KE0pfTpBP3ttb3Rpb25OYW1lOkF9Om51bGwpfWZ1bmN0aW9uIEQocSl7cmV0dXJuIHEub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlld31mdW5jdGlvbiBWKHEpe2Zvcih2YXIgaz1bXSxNPXE9PW51bGw/dm9pZCAwOnEucGFyZW50RWxlbWVudCxBPVsiaGlkZGVuIiwic2Nyb2xsIiwiY2xpcCIsImF1dG8iXTtNOyl7dmFyIFU9RChNKS5nZXRDb21wdXRlZFN0eWxlKE0pLE49VS5vdmVyZmxvd1gsUT1VLm92ZXJmbG93WSx1ZT1VLm92ZXJmbG93O1tOLFEsdWVdLnNvbWUoZnVuY3Rpb24oJCl7cmV0dXJuIEEuaW5jbHVkZXMoJCl9KSYmay5wdXNoKE0pLE09TS5wYXJlbnRFbGVtZW50fXJldHVybiBrfWZ1bmN0aW9uIFoocSl7dmFyIGs9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOjE7cmV0dXJuIE51bWJlci5pc05hTihxKT9rOnF9ZnVuY3Rpb24gUChxKXtyZXR1cm4gWihwYXJzZUZsb2F0KHEpLDApfWZ1bmN0aW9uIEsocSxrKXt2YXIgTT0oMCxyLlopKHt9LHEpO3JldHVybihrfHxbXSkuZm9yRWFjaChmdW5jdGlvbihBKXtpZighKEEgaW5zdGFuY2VvZiBIVE1MQm9keUVsZW1lbnR8fEEgaW5zdGFuY2VvZiBIVE1MSHRtbEVsZW1lbnQpKXt2YXIgVT1EKEEpLmdldENvbXB1dGVkU3R5bGUoQSksTj1VLm92ZXJmbG93LFE9VS5vdmVyZmxvd0NsaXBNYXJnaW4sdWU9VS5ib3JkZXJUb3BXaWR0aCwkPVUuYm9yZGVyQm90dG9tV2lkdGgsXz1VLmJvcmRlckxlZnRXaWR0aCxwZT1VLmJvcmRlclJpZ2h0V2lkdGgscmU9QS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxhZT1BLm9mZnNldEhlaWdodCx3ZT1BLmNsaWVudEhlaWdodCxMZT1BLm9mZnNldFdpZHRoLE1lPUEuY2xpZW50V2lkdGgsYmU9UCh1ZSksJGU9UCgkKSxrZT1QKF8pLEFlPVAocGUpLHR0PVooTWF0aC5yb3VuZChyZS53aWR0aC9MZSoxZTMpLzFlMyksbXQ9WihNYXRoLnJvdW5kKHJlLmhlaWdodC9hZSoxZTMpLzFlMyksdXQ9KExlLU1lLWtlLUFlKSp0dCxEZT0oYWUtd2UtYmUtJGUpKm10LE5lPWJlKm10LFhlPSRlKm10LEplPWtlKnR0LGd0PUFlKnR0LGRlPTAsV2U9MDtpZihOPT09ImNsaXAiKXt2YXIgU3Q9UChRKTtkZT1TdCp0dCxXZT1TdCptdH12YXIgY3Q9cmUueCtKZS1kZSxPZT1yZS55K05lLVdlLEdlPWN0K3JlLndpZHRoKzIqZGUtSmUtZ3QtdXQsaHQ9T2UrcmUuaGVpZ2h0KzIqV2UtTmUtWGUtRGU7TS5sZWZ0PU1hdGgubWF4KE0ubGVmdCxjdCksTS50b3A9TWF0aC5tYXgoTS50b3AsT2UpLE0ucmlnaHQ9TWF0aC5taW4oTS5yaWdodCxHZSksTS5ib3R0b209TWF0aC5taW4oTS5ib3R0b20saHQpfX0pLE19ZnVuY3Rpb24gc2UocSl7dmFyIGs9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOjAsTT0iIi5jb25jYXQoayksQT1NLm1hdGNoKC9eKC4qKVwlJC8pO3JldHVybiBBP3EqKHBhcnNlRmxvYXQoQVsxXSkvMTAwKTpwYXJzZUZsb2F0KE0pfWZ1bmN0aW9uIG5lKHEsayl7dmFyIE09a3x8W10sQT0oMCxuLlopKE0sMiksVT1BWzBdLE49QVsxXTtyZXR1cm5bc2UocS53aWR0aCxVKSxzZShxLmhlaWdodCxOKV19ZnVuY3Rpb24gb2UoKXt2YXIgcT1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXZvaWQgMD9hcmd1bWVudHNbMF06IiI7cmV0dXJuW3FbMF0scVsxXV19ZnVuY3Rpb24gZmUocSxrKXt2YXIgTT1rWzBdLEE9a1sxXSxVLE47cmV0dXJuIE09PT0idCI/Tj1xLnk6TT09PSJiIj9OPXEueStxLmhlaWdodDpOPXEueStxLmhlaWdodC8yLEE9PT0ibCI/VT1xLng6QT09PSJyIj9VPXEueCtxLndpZHRoOlU9cS54K3Eud2lkdGgvMix7eDpVLHk6Tn19ZnVuY3Rpb24gRWUocSxrKXt2YXIgTT17dDoiYiIsYjoidCIsbDoiciIscjoibCJ9O3JldHVybiBxLm1hcChmdW5jdGlvbihBLFUpe3JldHVybiBVPT09az9NW0FdfHwiYyI6QX0pLmpvaW4oIiIpfWZ1bmN0aW9uIFJlKHEsayxNLEEsVSxOLFEpe3ZhciB1ZT13LnVzZVN0YXRlKHtyZWFkeTohMSxvZmZzZXRYOjAsb2Zmc2V0WTowLG9mZnNldFI6MCxvZmZzZXRCOjAsYXJyb3dYOjAsYXJyb3dZOjAsc2NhbGVYOjEsc2NhbGVZOjEsYWxpZ246VVtBXXx8e319KSwkPSgwLG4uWikodWUsMiksXz0kWzBdLHBlPSRbMV0scmU9dy51c2VSZWYoMCksYWU9dy51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJuIGs/VihrKTpbXX0sW2tdKSx3ZT13LnVzZVJlZih7fSksTGU9ZnVuY3Rpb24oKXt3ZS5jdXJyZW50PXt9fTtxfHxMZSgpO3ZhciBNZT0oMCxkLlopKGZ1bmN0aW9uKCl7aWYoayYmTSYmcSl7bGV0IGJhPWZ1bmN0aW9uKFJyLG1yKXt2YXIgSXI9YXJndW1lbnRzLmxlbmd0aD4yJiZhcmd1bWVudHNbMl0hPT12b2lkIDA/YXJndW1lbnRzWzJdOkxuLEhyPVR0LngrUnIsSnI9VHQueSttcixUYT1IcitCbixqYT1KcitnbiwkYT1NYXRoLm1heChIcixJci5sZWZ0KSx5cj1NYXRoLm1heChKcixJci50b3ApLFZyPU1hdGgubWluKFRhLElyLnJpZ2h0KSxTYT1NYXRoLm1pbihqYSxJci5ib3R0b20pO3JldHVybiBNYXRoLm1heCgwLChWci0kYSkqKFNhLXlyKSl9LEFyPWZ1bmN0aW9uKCl7SG49VHQueSskbixHdD1IbitnbixTbj1UdC54K2xyLE9uPVNuK0JufTt2YXIga2UsQWUsdHQsbXQsdXQ9ayxEZT11dC5vd25lckRvY3VtZW50LE5lPUQodXQpLFhlPU5lLmdldENvbXB1dGVkU3R5bGUodXQpLEplPVhlLndpZHRoLGd0PVhlLmhlaWdodCxkZT1YZS5wb3NpdGlvbixXZT11dC5zdHlsZS5sZWZ0LFN0PXV0LnN0eWxlLnRvcCxjdD11dC5zdHlsZS5yaWdodCxPZT11dC5zdHlsZS5ib3R0b20sR2U9dXQuc3R5bGUub3ZlcmZsb3csaHQ9KDAsci5aKSgoMCxyLlopKHt9LFVbQV0pLE4pLHplPURlLmNyZWF0ZUVsZW1lbnQoImRpdiIpOyhrZT11dC5wYXJlbnRFbGVtZW50KT09PW51bGx8fGtlPT09dm9pZCAwfHxrZS5hcHBlbmRDaGlsZCh6ZSksemUuc3R5bGUubGVmdD0iIi5jb25jYXQodXQub2Zmc2V0TGVmdCwicHgiKSx6ZS5zdHlsZS50b3A9IiIuY29uY2F0KHV0Lm9mZnNldFRvcCwicHgiKSx6ZS5zdHlsZS5wb3NpdGlvbj1kZSx6ZS5zdHlsZS5oZWlnaHQ9IiIuY29uY2F0KHV0Lm9mZnNldEhlaWdodCwicHgiKSx6ZS5zdHlsZS53aWR0aD0iIi5jb25jYXQodXQub2Zmc2V0V2lkdGgsInB4IiksdXQuc3R5bGUubGVmdD0iMCIsdXQuc3R5bGUudG9wPSIwIix1dC5zdHlsZS5yaWdodD0iYXV0byIsdXQuc3R5bGUuYm90dG9tPSJhdXRvIix1dC5zdHlsZS5vdmVyZmxvdz0iaGlkZGVuIjt2YXIgUWU7aWYoQXJyYXkuaXNBcnJheShNKSlRZT17eDpNWzBdLHk6TVsxXSx3aWR0aDowLGhlaWdodDowfTtlbHNle3ZhciBwdCxidCxJdD1NLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO0l0Lng9KHB0PUl0LngpIT09bnVsbCYmcHQhPT12b2lkIDA/cHQ6SXQubGVmdCxJdC55PShidD1JdC55KSE9PW51bGwmJmJ0IT09dm9pZCAwP2J0Okl0LnRvcCxRZT17eDpJdC54LHk6SXQueSx3aWR0aDpJdC53aWR0aCxoZWlnaHQ6SXQuaGVpZ2h0fX12YXIgVHQ9dXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7VHQueD0oQWU9VHQueCkhPT1udWxsJiZBZSE9PXZvaWQgMD9BZTpUdC5sZWZ0LFR0Lnk9KHR0PVR0LnkpIT09bnVsbCYmdHQhPT12b2lkIDA/dHQ6VHQudG9wO3ZhciBYdD1EZS5kb2N1bWVudEVsZW1lbnQsZm49WHQuY2xpZW50V2lkdGgsbm49WHQuY2xpZW50SGVpZ2h0LG9uPVh0LnNjcm9sbFdpZHRoLE50PVh0LnNjcm9sbEhlaWdodCxabj1YdC5zY3JvbGxUb3AseW49WHQuc2Nyb2xsTGVmdCxnbj1UdC5oZWlnaHQsQm49VHQud2lkdGgsVm49UWUuaGVpZ2h0LE5uPVFlLndpZHRoLGZ0PXtsZWZ0OjAsdG9wOjAscmlnaHQ6Zm4sYm90dG9tOm5ufSxldD17bGVmdDoteW4sdG9wOi1abixyaWdodDpvbi15bixib3R0b206TnQtWm59LEp0PWh0Lmh0bWxSZWdpb24sd3Q9InZpc2libGUiLF90PSJ2aXNpYmxlRmlyc3QiO0p0IT09InNjcm9sbCImJkp0IT09X3QmJihKdD13dCk7dmFyIHhuPUp0PT09X3QsWW49SyhldCxhZSksUG49SyhmdCxhZSksTG49SnQ9PT13dD9QbjpZbixlcj14bj9QbjpMbjt1dC5zdHlsZS5sZWZ0PSJhdXRvIix1dC5zdHlsZS50b3A9ImF1dG8iLHV0LnN0eWxlLnJpZ2h0PSIwIix1dC5zdHlsZS5ib3R0b209IjAiO3ZhciBRbj11dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt1dC5zdHlsZS5sZWZ0PVdlLHV0LnN0eWxlLnRvcD1TdCx1dC5zdHlsZS5yaWdodD1jdCx1dC5zdHlsZS5ib3R0b209T2UsdXQuc3R5bGUub3ZlcmZsb3c9R2UsKG10PXV0LnBhcmVudEVsZW1lbnQpPT09bnVsbHx8bXQ9PT12b2lkIDB8fG10LnJlbW92ZUNoaWxkKHplKTt2YXIgdXI9WihNYXRoLnJvdW5kKEJuL3BhcnNlRmxvYXQoSmUpKjFlMykvMWUzKSxpcj1aKE1hdGgucm91bmQoZ24vcGFyc2VGbG9hdChndCkqMWUzKS8xZTMpO2lmKHVyPT09MHx8aXI9PT0wfHwoMCxjLlNoKShNKSYmISgwLGxlLlopKE0pKXJldHVybjt2YXIgdm49aHQub2Zmc2V0LGNyPWh0LnRhcmdldE9mZnNldCxXbj1uZShUdCx2biksd249KDAsbi5aKShXbiwyKSxDdD13blswXSxadD13blsxXSxhbj1uZShRZSxjciksRHQ9KDAsbi5aKShhbiwyKSxrdD1EdFswXSx0bj1EdFsxXTtRZS54LT1rdCxRZS55LT10bjt2YXIgbW49aHQucG9pbnRzfHxbXSxLbj0oMCxuLlopKG1uLDIpLEpuPUtuWzBdLFhuPUtuWzFdLGZyPW9lKFhuKSxycj1vZShKbiksaHI9ZmUoUWUsZnIpLEZuPWZlKFR0LHJyKSxhcj0oMCxyLlopKHt9LGh0KSxscj1oci54LUZuLngrQ3QsJG49aHIueS1Gbi55K1p0LHNyPWJhKGxyLCRuKSxGcj1iYShsciwkbixQbiksWmU9ZmUoUWUsWyJ0IiwibCJdKSxIZT1mZShUdCxbInQiLCJsIl0pLG50PWZlKFFlLFsiYiIsInIiXSkscnQ9ZmUoVHQsWyJiIiwiciJdKSx2dD1odC5vdmVyZmxvd3x8e30sVnQ9dnQuYWRqdXN0WCxlbj12dC5hZGp1c3RZLFJuPXZ0LnNoaWZ0WCxqbj12dC5zaGlmdFksYm49ZnVuY3Rpb24obXIpe3JldHVybiB0eXBlb2YgbXI9PSJib29sZWFuIj9tcjptcj49MH0sSG4sR3QsU24sT247QXIoKTt2YXIgX249Ym4oZW4pLFBlPXJyWzBdPT09ZnJbMF07aWYoX24mJnJyWzBdPT09InQiJiYoR3Q+ZXIuYm90dG9tfHx3ZS5jdXJyZW50LmJ0KSl7dmFyIGdlPSRuO1BlP2dlLT1nbi1WbjpnZT1aZS55LXJ0LnktWnQ7dmFyIHZlPWJhKGxyLGdlKSxJZT1iYShscixnZSxQbik7dmU+c3J8fHZlPT09c3ImJigheG58fEllPj1Gcik/KHdlLmN1cnJlbnQuYnQ9ITAsJG49Z2UsWnQ9LVp0LGFyLnBvaW50cz1bRWUocnIsMCksRWUoZnIsMCldKTp3ZS5jdXJyZW50LmJ0PSExfWlmKF9uJiZyclswXT09PSJiIiYmKEhuPGVyLnRvcHx8d2UuY3VycmVudC50Yikpe3ZhciB4ZT0kbjtQZT94ZSs9Z24tVm46eGU9bnQueS1IZS55LVp0O3ZhciBhdD1iYShscix4ZSksZHQ9YmEobHIseGUsUG4pO2F0PnNyfHxhdD09PXNyJiYoIXhufHxkdD49RnIpPyh3ZS5jdXJyZW50LnRiPSEwLCRuPXhlLFp0PS1adCxhci5wb2ludHM9W0VlKHJyLDApLEVlKGZyLDApXSk6d2UuY3VycmVudC50Yj0hMX12YXIgRXQ9Ym4oVnQpLEh0PXJyWzFdPT09ZnJbMV07aWYoRXQmJnJyWzFdPT09ImwiJiYoT24+ZXIucmlnaHR8fHdlLmN1cnJlbnQucmwpKXt2YXIganQ9bHI7SHQ/anQtPUJuLU5uOmp0PVplLngtcnQueC1DdDt2YXIgRnQ9YmEoanQsJG4pLHBuPWJhKGp0LCRuLFBuKTtGdD5zcnx8RnQ9PT1zciYmKCF4bnx8cG4+PUZyKT8od2UuY3VycmVudC5ybD0hMCxscj1qdCxDdD0tQ3QsYXIucG9pbnRzPVtFZShyciwxKSxFZShmciwxKV0pOndlLmN1cnJlbnQucmw9ITF9aWYoRXQmJnJyWzFdPT09InIiJiYoU248ZXIubGVmdHx8d2UuY3VycmVudC5scikpe3ZhciBjbj1scjtIdD9jbis9Qm4tTm46Y249bnQueC1IZS54LUN0O3ZhciBvcj1iYShjbiwkbiksVG49YmEoY24sJG4sUG4pO29yPnNyfHxvcj09PXNyJiYoIXhufHxUbj49RnIpPyh3ZS5jdXJyZW50LmxyPSEwLGxyPWNuLEN0PS1DdCxhci5wb2ludHM9W0VlKHJyLDEpLEVlKGZyLDEpXSk6d2UuY3VycmVudC5scj0hMX1BcigpO3ZhciB6bj1Sbj09PSEwPzA6Um47dHlwZW9mIHpuPT0ibnVtYmVyIiYmKFNuPFBuLmxlZnQmJihsci09U24tUG4ubGVmdC1DdCxRZS54K05uPFBuLmxlZnQrem4mJihscis9UWUueC1Qbi5sZWZ0K05uLXpuKSksT24+UG4ucmlnaHQmJihsci09T24tUG4ucmlnaHQtQ3QsUWUueD5Qbi5yaWdodC16biYmKGxyKz1RZS54LVBuLnJpZ2h0K3puKSkpO3ZhciBybj1qbj09PSEwPzA6am47dHlwZW9mIHJuPT0ibnVtYmVyIiYmKEhuPFBuLnRvcCYmKCRuLT1Ibi1Qbi50b3AtWnQsUWUueStWbjxQbi50b3Arcm4mJigkbis9UWUueS1Qbi50b3ArVm4tcm4pKSxHdD5Qbi5ib3R0b20mJigkbi09R3QtUG4uYm90dG9tLVp0LFFlLnk+UG4uYm90dG9tLXJuJiYoJG4rPVFlLnktUG4uYm90dG9tK3JuKSkpO3ZhciBLdD1UdC54K2xyLHp0PUt0K0JuLE90PVR0LnkrJG4sbG49T3QrZ24sRW49UWUueCxHbj1FbitObixwcj1RZS55LFByPXByK1ZuLGJyPU1hdGgubWF4KEt0LEVuKSxNcj1NYXRoLm1pbih6dCxHbiksJHI9KGJyK01yKS8yLEdyPSRyLUt0LG9hPU1hdGgubWF4KE90LHByKSxyYT1NYXRoLm1pbihsbixQciksTWE9KG9hK3JhKS8yLGZhPU1hLU90O1E9PW51bGx8fFEoayxhcik7dmFyIGhhPVFuLnJpZ2h0LVR0LngtKGxyK1R0LndpZHRoKSxlYT1Rbi5ib3R0b20tVHQueS0oJG4rVHQuaGVpZ2h0KTt1cj09PTEmJihscj1NYXRoLnJvdW5kKGxyKSxoYT1NYXRoLnJvdW5kKGhhKSksaXI9PT0xJiYoJG49TWF0aC5yb3VuZCgkbiksZWE9TWF0aC5yb3VuZChlYSkpO3ZhciBOYT17cmVhZHk6ITAsb2Zmc2V0WDpsci91cixvZmZzZXRZOiRuL2lyLG9mZnNldFI6aGEvdXIsb2Zmc2V0QjplYS9pcixhcnJvd1g6R3IvdXIsYXJyb3dZOmZhL2lyLHNjYWxlWDp1cixzY2FsZVk6aXIsYWxpZ246YXJ9O3BlKE5hKX19KSxiZT1mdW5jdGlvbigpe3JlLmN1cnJlbnQrPTE7dmFyIEFlPXJlLmN1cnJlbnQ7UHJvbWlzZS5yZXNvbHZlKCkudGhlbihmdW5jdGlvbigpe3JlLmN1cnJlbnQ9PT1BZSYmTWUoKX0pfSwkZT1mdW5jdGlvbigpe3BlKGZ1bmN0aW9uKEFlKXtyZXR1cm4oMCxyLlopKCgwLHIuWikoe30sQWUpLHt9LHtyZWFkeTohMX0pfSl9O3JldHVybigwLEMuWikoJGUsW0FdKSwoMCxDLlopKGZ1bmN0aW9uKCl7cXx8JGUoKX0sW3FdKSxbXy5yZWFkeSxfLm9mZnNldFgsXy5vZmZzZXRZLF8ub2Zmc2V0UixfLm9mZnNldEIsXy5hcnJvd1gsXy5hcnJvd1ksXy5zY2FsZVgsXy5zY2FsZVksXy5hbGlnbixiZV19dmFyIEJlPWUoNzQ5MDIpO2Z1bmN0aW9uIFllKHEsayxNLEEsVSl7KDAsQy5aKShmdW5jdGlvbigpe2lmKHEmJmsmJk0pe2xldCByZT1mdW5jdGlvbigpe0EoKSxVKCl9O3ZhciBOPWssUT1NLHVlPVYoTiksJD1WKFEpLF89RChRKSxwZT1uZXcgU2V0KFtfXS5jb25jYXQoKDAsQmUuWikodWUpLCgwLEJlLlopKCQpKSk7cmV0dXJuIHBlLmZvckVhY2goZnVuY3Rpb24oYWUpe2FlLmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIscmUse3Bhc3NpdmU6ITB9KX0pLF8uYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIixyZSx7cGFzc2l2ZTohMH0pLEEoKSxmdW5jdGlvbigpe3BlLmZvckVhY2goZnVuY3Rpb24oYWUpe2FlLnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIscmUpLF8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIixyZSl9KX19fSxbcSxrLE1dKX12YXIgb3Q9ZSg4MDMzNCk7ZnVuY3Rpb24gcWUocSxrLE0sQSxVLE4sUSx1ZSl7dmFyICQ9dy51c2VSZWYocSk7JC5jdXJyZW50PXE7dmFyIF89dy51c2VSZWYoITEpO3cudXNlRWZmZWN0KGZ1bmN0aW9uKCl7aWYoayYmQSYmKCFVfHxOKSl7dmFyIHJlPWZ1bmN0aW9uKCl7Xy5jdXJyZW50PSExfSxhZT1mdW5jdGlvbih0dCl7dmFyIG10OyQuY3VycmVudCYmIVEoKChtdD10dC5jb21wb3NlZFBhdGgpPT09bnVsbHx8bXQ9PT12b2lkIDB8fChtdD1tdC5jYWxsKHR0KSk9PT1udWxsfHxtdD09PXZvaWQgMD92b2lkIDA6bXRbMF0pfHx0dC50YXJnZXQpJiYhXy5jdXJyZW50JiZ1ZSghMSl9LHdlPUQoQSk7d2UuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmRvd24iLHJlLCEwKSx3ZS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLGFlLCEwKSx3ZS5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsYWUsITApO3ZhciBMZT0oMCxoLkEpKE0pO2lmKExlJiYoTGUuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIixhZSwhMCksTGUuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLGFlLCEwKSksMCl2YXIgTWUsYmUsJGUsa2U7cmV0dXJuIGZ1bmN0aW9uKCl7d2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcmRvd24iLHJlLCEwKSx3ZS5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLGFlLCEwKSx3ZS5yZW1vdmVFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsYWUsITApLExlJiYoTGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIixhZSwhMCksTGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLGFlLCEwKSl9fX0sW2ssTSxBLFUsTl0pO2Z1bmN0aW9uIHBlKCl7Xy5jdXJyZW50PSEwfXJldHVybiBwZX12YXIgX2U9WyJwcmVmaXhDbHMiLCJjaGlsZHJlbiIsImFjdGlvbiIsInNob3dBY3Rpb24iLCJoaWRlQWN0aW9uIiwicG9wdXBWaXNpYmxlIiwiZGVmYXVsdFBvcHVwVmlzaWJsZSIsIm9uUG9wdXBWaXNpYmxlQ2hhbmdlIiwiYWZ0ZXJQb3B1cFZpc2libGVDaGFuZ2UiLCJtb3VzZUVudGVyRGVsYXkiLCJtb3VzZUxlYXZlRGVsYXkiLCJmb2N1c0RlbGF5IiwiYmx1ckRlbGF5IiwibWFzayIsIm1hc2tDbG9zYWJsZSIsImdldFBvcHVwQ29udGFpbmVyIiwiZm9yY2VSZW5kZXIiLCJhdXRvRGVzdHJveSIsImRlc3Ryb3lQb3B1cE9uSGlkZSIsInBvcHVwIiwicG9wdXBDbGFzc05hbWUiLCJwb3B1cFN0eWxlIiwicG9wdXBQbGFjZW1lbnQiLCJidWlsdGluUGxhY2VtZW50cyIsInBvcHVwQWxpZ24iLCJ6SW5kZXgiLCJzdHJldGNoIiwiZ2V0UG9wdXBDbGFzc05hbWVGcm9tQWxpZ24iLCJmcmVzaCIsImFsaWduUG9pbnQiLCJvblBvcHVwQ2xpY2siLCJvblBvcHVwQWxpZ24iLCJhcnJvdyIsInBvcHVwTW90aW9uIiwibWFza01vdGlvbiIsInBvcHVwVHJhbnNpdGlvbk5hbWUiLCJwb3B1cEFuaW1hdGlvbiIsIm1hc2tUcmFuc2l0aW9uTmFtZSIsIm1hc2tBbmltYXRpb24iLCJjbGFzc05hbWUiLCJnZXRUcmlnZ2VyRE9NTm9kZSJdO2Z1bmN0aW9uIEZlKCl7dmFyIHE9YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT12b2lkIDA/YXJndW1lbnRzWzBdOmkuWixrPXcuZm9yd2FyZFJlZihmdW5jdGlvbihNLEEpe3ZhciBVPU0ucHJlZml4Q2xzLE49VT09PXZvaWQgMD8icmMtdHJpZ2dlci1wb3B1cCI6VSxRPU0uY2hpbGRyZW4sdWU9TS5hY3Rpb24sJD11ZT09PXZvaWQgMD8iaG92ZXIiOnVlLF89TS5zaG93QWN0aW9uLHBlPU0uaGlkZUFjdGlvbixyZT1NLnBvcHVwVmlzaWJsZSxhZT1NLmRlZmF1bHRQb3B1cFZpc2libGUsd2U9TS5vblBvcHVwVmlzaWJsZUNoYW5nZSxMZT1NLmFmdGVyUG9wdXBWaXNpYmxlQ2hhbmdlLE1lPU0ubW91c2VFbnRlckRlbGF5LGJlPU0ubW91c2VMZWF2ZURlbGF5LCRlPWJlPT09dm9pZCAwPy4xOmJlLGtlPU0uZm9jdXNEZWxheSxBZT1NLmJsdXJEZWxheSx0dD1NLm1hc2ssbXQ9TS5tYXNrQ2xvc2FibGUsdXQ9bXQ9PT12b2lkIDA/ITA6bXQsRGU9TS5nZXRQb3B1cENvbnRhaW5lcixOZT1NLmZvcmNlUmVuZGVyLFhlPU0uYXV0b0Rlc3Ryb3ksSmU9TS5kZXN0cm95UG9wdXBPbkhpZGUsZ3Q9TS5wb3B1cCxkZT1NLnBvcHVwQ2xhc3NOYW1lLFdlPU0ucG9wdXBTdHlsZSxTdD1NLnBvcHVwUGxhY2VtZW50LGN0PU0uYnVpbHRpblBsYWNlbWVudHMsT2U9Y3Q9PT12b2lkIDA/e306Y3QsR2U9TS5wb3B1cEFsaWduLGh0PU0uekluZGV4LHplPU0uc3RyZXRjaCxRZT1NLmdldFBvcHVwQ2xhc3NOYW1lRnJvbUFsaWduLHB0PU0uZnJlc2gsYnQ9TS5hbGlnblBvaW50LEl0PU0ub25Qb3B1cENsaWNrLFR0PU0ub25Qb3B1cEFsaWduLFh0PU0uYXJyb3csZm49TS5wb3B1cE1vdGlvbixubj1NLm1hc2tNb3Rpb24sb249TS5wb3B1cFRyYW5zaXRpb25OYW1lLE50PU0ucG9wdXBBbmltYXRpb24sWm49TS5tYXNrVHJhbnNpdGlvbk5hbWUseW49TS5tYXNrQW5pbWF0aW9uLGduPU0uY2xhc3NOYW1lLEJuPU0uZ2V0VHJpZ2dlckRPTU5vZGUsVm49KDAsdC5aKShNLF9lKSxObj1YZXx8SmV8fCExLGZ0PXcudXNlU3RhdGUoITEpLGV0PSgwLG4uWikoZnQsMiksSnQ9ZXRbMF0sd3Q9ZXRbMV07KDAsQy5aKShmdW5jdGlvbigpe3d0KCgwLGcuWikoKSl9LFtdKTt2YXIgX3Q9dy51c2VSZWYoe30pLHhuPXcudXNlQ29udGV4dChKKSxZbj13LnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm57cmVnaXN0ZXJTdWJQb3B1cDpmdW5jdGlvbihWcixTYSl7X3QuY3VycmVudFtWcl09U2EseG49PW51bGx8fHhuLnJlZ2lzdGVyU3ViUG9wdXAoVnIsU2EpfX19LFt4bl0pLFBuPSgwLG0uWikoKSxMbj13LnVzZVN0YXRlKG51bGwpLGVyPSgwLG4uWikoTG4sMiksUW49ZXJbMF0sdXI9ZXJbMV0saXI9dy51c2VSZWYobnVsbCksdm49KDAsZC5aKShmdW5jdGlvbih5cil7aXIuY3VycmVudD15ciwoMCxjLlNoKSh5cikmJlFuIT09eXImJnVyKHlyKSx4bj09bnVsbHx8eG4ucmVnaXN0ZXJTdWJQb3B1cChQbix5cil9KSxjcj13LnVzZVN0YXRlKG51bGwpLFduPSgwLG4uWikoY3IsMiksd249V25bMF0sQ3Q9V25bMV0sWnQ9dy51c2VSZWYobnVsbCksYW49KDAsZC5aKShmdW5jdGlvbih5cil7KDAsYy5TaCkoeXIpJiZ3biE9PXlyJiYoQ3QoeXIpLFp0LmN1cnJlbnQ9eXIpfSksRHQ9dy5DaGlsZHJlbi5vbmx5KFEpLGt0PShEdD09bnVsbD92b2lkIDA6RHQucHJvcHMpfHx7fSx0bj17fSxtbj0oMCxkLlopKGZ1bmN0aW9uKHlyKXt2YXIgVnIsU2EsRmE9d247cmV0dXJuKEZhPT1udWxsP3ZvaWQgMDpGYS5jb250YWlucyh5cikpfHwoKFZyPSgwLGguQSkoRmEpKT09PW51bGx8fFZyPT09dm9pZCAwP3ZvaWQgMDpWci5ob3N0KT09PXlyfHx5cj09PUZhfHwoUW49PW51bGw/dm9pZCAwOlFuLmNvbnRhaW5zKHlyKSl8fCgoU2E9KDAsaC5BKShRbikpPT09bnVsbHx8U2E9PT12b2lkIDA/dm9pZCAwOlNhLmhvc3QpPT09eXJ8fHlyPT09UW58fE9iamVjdC52YWx1ZXMoX3QuY3VycmVudCkuc29tZShmdW5jdGlvbihSYSl7cmV0dXJuKFJhPT1udWxsP3ZvaWQgMDpSYS5jb250YWlucyh5cikpfHx5cj09PVJhfSl9KSxLbj1qKE4sZm4sTnQsb24pLEpuPWooTixubix5bixabiksWG49dy51c2VTdGF0ZShhZXx8ITEpLGZyPSgwLG4uWikoWG4sMikscnI9ZnJbMF0saHI9ZnJbMV0sRm49cmUhPW51bGw/cmU6cnIsYXI9KDAsZC5aKShmdW5jdGlvbih5cil7cmU9PT12b2lkIDAmJmhyKHlyKX0pOygwLEMuWikoZnVuY3Rpb24oKXtocihyZXx8ITEpfSxbcmVdKTt2YXIgbHI9dy51c2VSZWYoRm4pO2xyLmN1cnJlbnQ9Rm47dmFyICRuPXcudXNlUmVmKFtdKTskbi5jdXJyZW50PVtdO3ZhciBzcj0oMCxkLlopKGZ1bmN0aW9uKHlyKXt2YXIgVnI7YXIoeXIpLCgoVnI9JG4uY3VycmVudFskbi5jdXJyZW50Lmxlbmd0aC0xXSkhPT1udWxsJiZWciE9PXZvaWQgMD9WcjpGbikhPT15ciYmKCRuLmN1cnJlbnQucHVzaCh5ciksd2U9PW51bGx8fHdlKHlyKSl9KSxGcj13LnVzZVJlZigpLFplPWZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KEZyLmN1cnJlbnQpfSxIZT1mdW5jdGlvbihWcil7dmFyIFNhPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTowO1plKCksU2E9PT0wP3NyKFZyKTpGci5jdXJyZW50PXNldFRpbWVvdXQoZnVuY3Rpb24oKXtzcihWcil9LFNhKjFlMyl9O3cudXNlRWZmZWN0KGZ1bmN0aW9uKCl7cmV0dXJuIFplfSxbXSk7dmFyIG50PXcudXNlU3RhdGUoITEpLHJ0PSgwLG4uWikobnQsMiksdnQ9cnRbMF0sVnQ9cnRbMV07KDAsQy5aKShmdW5jdGlvbih5cil7KCF5cnx8Rm4pJiZWdCghMCl9LFtGbl0pO3ZhciBlbj13LnVzZVN0YXRlKG51bGwpLFJuPSgwLG4uWikoZW4sMiksam49Um5bMF0sYm49Um5bMV0sSG49dy51c2VTdGF0ZShudWxsKSxHdD0oMCxuLlopKEhuLDIpLFNuPUd0WzBdLE9uPUd0WzFdLF9uPWZ1bmN0aW9uKFZyKXtPbihbVnIuY2xpZW50WCxWci5jbGllbnRZXSl9LFBlPVJlKEZuLFFuLGJ0JiZTbiE9PW51bGw/U246d24sU3QsT2UsR2UsVHQpLGdlPSgwLG4uWikoUGUsMTEpLHZlPWdlWzBdLEllPWdlWzFdLHhlPWdlWzJdLGF0PWdlWzNdLGR0PWdlWzRdLEV0PWdlWzVdLEh0PWdlWzZdLGp0PWdlWzddLEZ0PWdlWzhdLHBuPWdlWzldLGNuPWdlWzEwXSxvcj10ZShKdCwkLF8scGUpLFRuPSgwLG4uWikob3IsMiksem49VG5bMF0scm49VG5bMV0sS3Q9em4uaGFzKCJjbGljayIpLHp0PXJuLmhhcygiY2xpY2siKXx8cm4uaGFzKCJjb250ZXh0TWVudSIpLE90PSgwLGQuWikoZnVuY3Rpb24oKXt2dHx8Y24oKX0pLGxuPWZ1bmN0aW9uKCl7bHIuY3VycmVudCYmYnQmJnp0JiZIZSghMSl9O1llKEZuLHduLFFuLE90LGxuKSwoMCxDLlopKGZ1bmN0aW9uKCl7T3QoKX0sW1NuLFN0XSksKDAsQy5aKShmdW5jdGlvbigpe0ZuJiYhKE9lIT1udWxsJiZPZVtTdF0pJiZPdCgpfSxbSlNPTi5zdHJpbmdpZnkoR2UpXSk7dmFyIEVuPXcudXNlTWVtbyhmdW5jdGlvbigpe3ZhciB5cj1XKE9lLE4scG4sYnQpO3JldHVybiBhKCkoeXIsUWU9PW51bGw/dm9pZCAwOlFlKHBuKSl9LFtwbixRZSxPZSxOLGJ0XSk7dy51c2VJbXBlcmF0aXZlSGFuZGxlKEEsZnVuY3Rpb24oKXtyZXR1cm57bmF0aXZlRWxlbWVudDpadC5jdXJyZW50LHBvcHVwRWxlbWVudDppci5jdXJyZW50LGZvcmNlQWxpZ246T3R9fSk7dmFyIEduPXcudXNlU3RhdGUoMCkscHI9KDAsbi5aKShHbiwyKSxQcj1wclswXSxicj1wclsxXSxNcj13LnVzZVN0YXRlKDApLCRyPSgwLG4uWikoTXIsMiksR3I9JHJbMF0sb2E9JHJbMV0scmE9ZnVuY3Rpb24oKXtpZih6ZSYmd24pe3ZhciBWcj13bi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTticihWci53aWR0aCksb2EoVnIuaGVpZ2h0KX19LE1hPWZ1bmN0aW9uKCl7cmEoKSxPdCgpfSxmYT1mdW5jdGlvbihWcil7VnQoITEpLGNuKCksTGU9PW51bGx8fExlKFZyKX0saGE9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oVnIpe3JhKCksYm4oZnVuY3Rpb24oKXtyZXR1cm4gVnJ9KX0pfTsoMCxDLlopKGZ1bmN0aW9uKCl7am4mJihjbigpLGpuKCksYm4obnVsbCkpfSxbam5dKTtmdW5jdGlvbiBlYSh5cixWcixTYSxGYSl7dG5beXJdPWZ1bmN0aW9uKFJhKXt2YXIgcm87RmE9PW51bGx8fEZhKFJhKSxIZShWcixTYSk7Zm9yKHZhciB1bz1hcmd1bWVudHMubGVuZ3RoLG5vPW5ldyBBcnJheSh1bz4xP3VvLTE6MCksem89MTt6bzx1bzt6bysrKW5vW3pvLTFdPWFyZ3VtZW50c1t6b107KHJvPWt0W3lyXSk9PT1udWxsfHxybz09PXZvaWQgMHx8cm8uY2FsbC5hcHBseShybyxba3QsUmFdLmNvbmNhdChubykpfX0oS3R8fHp0KSYmKHRuLm9uQ2xpY2s9ZnVuY3Rpb24oeXIpe3ZhciBWcjtsci5jdXJyZW50JiZ6dD9IZSghMSk6IWxyLmN1cnJlbnQmJkt0JiYoX24oeXIpLEhlKCEwKSk7Zm9yKHZhciBTYT1hcmd1bWVudHMubGVuZ3RoLEZhPW5ldyBBcnJheShTYT4xP1NhLTE6MCksUmE9MTtSYTxTYTtSYSsrKUZhW1JhLTFdPWFyZ3VtZW50c1tSYV07KFZyPWt0Lm9uQ2xpY2spPT09bnVsbHx8VnI9PT12b2lkIDB8fFZyLmNhbGwuYXBwbHkoVnIsW2t0LHlyXS5jb25jYXQoRmEpKX0pO3ZhciBOYT1xZShGbix6dCx3bixRbix0dCx1dCxtbixIZSksYmE9em4uaGFzKCJob3ZlciIpLEFyPXJuLmhhcygiaG92ZXIiKSxScixtcjtiYSYmKGVhKCJvbk1vdXNlRW50ZXIiLCEwLE1lLGZ1bmN0aW9uKHlyKXtfbih5cil9KSxlYSgib25Qb2ludGVyRW50ZXIiLCEwLE1lLGZ1bmN0aW9uKHlyKXtfbih5cil9KSxScj1mdW5jdGlvbihWcil7KEZufHx2dCkmJlFuIT09bnVsbCYmUW4hPT12b2lkIDAmJlFuLmNvbnRhaW5zKFZyLnRhcmdldCkmJkhlKCEwLE1lKX0sYnQmJih0bi5vbk1vdXNlTW92ZT1mdW5jdGlvbih5cil7dmFyIFZyOyhWcj1rdC5vbk1vdXNlTW92ZSk9PT1udWxsfHxWcj09PXZvaWQgMHx8VnIuY2FsbChrdCx5cil9KSksQXImJihlYSgib25Nb3VzZUxlYXZlIiwhMSwkZSksZWEoIm9uUG9pbnRlckxlYXZlIiwhMSwkZSksbXI9ZnVuY3Rpb24oKXtIZSghMSwkZSl9KSx6bi5oYXMoImZvY3VzIikmJmVhKCJvbkZvY3VzIiwhMCxrZSkscm4uaGFzKCJmb2N1cyIpJiZlYSgib25CbHVyIiwhMSxBZSksem4uaGFzKCJjb250ZXh0TWVudSIpJiYodG4ub25Db250ZXh0TWVudT1mdW5jdGlvbih5cil7dmFyIFZyO2xyLmN1cnJlbnQmJnJuLmhhcygiY29udGV4dE1lbnUiKT9IZSghMSk6KF9uKHlyKSxIZSghMCkpLHlyLnByZXZlbnREZWZhdWx0KCk7Zm9yKHZhciBTYT1hcmd1bWVudHMubGVuZ3RoLEZhPW5ldyBBcnJheShTYT4xP1NhLTE6MCksUmE9MTtSYTxTYTtSYSsrKUZhW1JhLTFdPWFyZ3VtZW50c1tSYV07KFZyPWt0Lm9uQ29udGV4dE1lbnUpPT09bnVsbHx8VnI9PT12b2lkIDB8fFZyLmNhbGwuYXBwbHkoVnIsW2t0LHlyXS5jb25jYXQoRmEpKX0pLGduJiYodG4uY2xhc3NOYW1lPWEoKShrdC5jbGFzc05hbWUsZ24pKTt2YXIgSXI9KDAsci5aKSgoMCxyLlopKHt9LGt0KSx0biksSHI9e30sSnI9WyJvbkNvbnRleHRNZW51Iiwib25DbGljayIsIm9uTW91c2VEb3duIiwib25Ub3VjaFN0YXJ0Iiwib25Nb3VzZUVudGVyIiwib25Nb3VzZUxlYXZlIiwib25Gb2N1cyIsIm9uQmx1ciJdO0pyLmZvckVhY2goZnVuY3Rpb24oeXIpe1ZuW3lyXSYmKEhyW3lyXT1mdW5jdGlvbigpe2Zvcih2YXIgVnIsU2E9YXJndW1lbnRzLmxlbmd0aCxGYT1uZXcgQXJyYXkoU2EpLFJhPTA7UmE8U2E7UmErKylGYVtSYV09YXJndW1lbnRzW1JhXTsoVnI9SXJbeXJdKT09PW51bGx8fFZyPT09dm9pZCAwfHxWci5jYWxsLmFwcGx5KFZyLFtJcl0uY29uY2F0KEZhKSksVm5beXJdLmFwcGx5KFZuLEZhKX0pfSk7dmFyIFRhPXcuY2xvbmVFbGVtZW50KER0LCgwLHIuWikoKDAsci5aKSh7fSxJciksSHIpKSxqYT17eDpFdCx5Okh0fSwkYT1YdD8oMCxyLlopKHt9LFh0IT09ITA/WHQ6e30pOm51bGw7cmV0dXJuIHcuY3JlYXRlRWxlbWVudCh3LkZyYWdtZW50LG51bGwsdy5jcmVhdGVFbGVtZW50KHUuWix7ZGlzYWJsZWQ6IUZuLHJlZjphbixvblJlc2l6ZTpNYX0sdy5jcmVhdGVFbGVtZW50KFkse2dldFRyaWdnZXJET01Ob2RlOkJufSxUYSkpLHcuY3JlYXRlRWxlbWVudChKLlByb3ZpZGVyLHt2YWx1ZTpZbn0sdy5jcmVhdGVFbGVtZW50KHose3BvcnRhbDpxLHJlZjp2bixwcmVmaXhDbHM6Tixwb3B1cDpndCxjbGFzc05hbWU6YSgpKGRlLEVuKSxzdHlsZTpXZSx0YXJnZXQ6d24sb25Nb3VzZUVudGVyOlJyLG9uTW91c2VMZWF2ZTptcixvblBvaW50ZXJFbnRlcjpScix6SW5kZXg6aHQsb3BlbjpGbixrZWVwRG9tOnZ0LGZyZXNoOnB0LG9uQ2xpY2s6SXQsb25Qb2ludGVyRG93bkNhcHR1cmU6TmEsbWFzazp0dCxtb3Rpb246S24sbWFza01vdGlvbjpKbixvblZpc2libGVDaGFuZ2VkOmZhLG9uUHJlcGFyZTpoYSxmb3JjZVJlbmRlcjpOZSxhdXRvRGVzdHJveTpObixnZXRQb3B1cENvbnRhaW5lcjpEZSxhbGlnbjpwbixhcnJvdzokYSxhcnJvd1BvczpqYSxyZWFkeTp2ZSxvZmZzZXRYOkllLG9mZnNldFk6eGUsb2Zmc2V0UjphdCxvZmZzZXRCOmR0LG9uQWxpZ246T3Qsc3RyZXRjaDp6ZSx0YXJnZXRXaWR0aDpQci9qdCx0YXJnZXRIZWlnaHQ6R3IvRnR9KSkpfSk7cmV0dXJuIGt9dmFyIFNlPUZlKGkuWil9LDY3NjEwOmZ1bmN0aW9uKHkscCl7InVzZSBzdHJpY3QiO3ZhciBlPXtuYXZUaGVtZToibGlnaHQiLGNvbG9yUHJpbWFyeToiIzE4OTBmZiIsbGF5b3V0OiJtaXgiLGNvbnRlbnRXaWR0aDoiRmx1aWQiLGZpeGVkSGVhZGVyOiExLGZpeFNpZGVyYmFyOiEwLGNvbG9yV2VhazohMSx0aXRsZToiQW50IERlc2lnbiBQcm8iLHB3YTohMCxsb2dvOiJodHRwczovL2d3LmFsaXBheW9iamVjdHMuY29tL3pvcy9ybXNwb3J0YWwvS0RwZ3ZndU1wR2ZxYUhQamljUksuc3ZnIixpY29uZm9udFVybDoiIix0b2tlbjp7fX07cC5aPWV9LDEwNTgxOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse2ZpOmZ1bmN0aW9uKCl7cmV0dXJuIGN9LG04OmZ1bmN0aW9uKCl7cmV0dXJuIGF9fSk7dmFyIHI9ZSg1MjY3Nyksbj1lLm4ociksdD1lKDk3ODU3KSxpPWUubih0KSxzPWUoNTU2NDgpLGEsdT0iLyI7ZnVuY3Rpb24gYyhDKXt2YXIgZztyZXR1cm4gQy50eXBlPT09Imhhc2giP2c9KDAscy5xXykoKTpDLnR5cGU9PT0ibWVtb3J5Ij9nPSgwLHMuUFApKEMpOmc9KDAscy5sWCkoKSxDLmJhc2VuYW1lJiYodT1DLmJhc2VuYW1lKSxhPWkoKShpKCkoe30sZykse30se3B1c2g6ZnVuY3Rpb24oRSx4KXtnLnB1c2goZChFLGcpLHgpfSxyZXBsYWNlOmZ1bmN0aW9uKEUseCl7Zy5yZXBsYWNlKGQoRSxnKSx4KX0sZ2V0IGxvY2F0aW9uKCl7cmV0dXJuIGcubG9jYXRpb259LGdldCBhY3Rpb24oKXtyZXR1cm4gZy5hY3Rpb259fSksZ31mdW5jdGlvbiBoKEMpe0MmJihhPUMpfWZ1bmN0aW9uIGQoQyxnKXtpZih0eXBlb2YgQz09InN0cmluZyIpcmV0dXJuIiIuY29uY2F0KG0odSkpLmNvbmNhdChDKTtpZihuKCkoQyk9PT0ib2JqZWN0Iil7dmFyIHc9Zy5sb2NhdGlvbi5wYXRobmFtZTtyZXR1cm4gaSgpKGkoKSh7fSxDKSx7fSx7cGF0aG5hbWU6Qy5wYXRobmFtZT8iIi5jb25jYXQobSh1KSkuY29uY2F0KEMucGF0aG5hbWUpOnd9KX1lbHNlIHRocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCB0bzogIi5jb25jYXQoQykpfWZ1bmN0aW9uIG0oQyl7cmV0dXJuIEMuc2xpY2UoLTEpPT09Ii8iP0Muc2xpY2UoMCwtMSk6Q319LDIwNzYxOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse2dEOmZ1bmN0aW9uKCl7cmV0dXJuIG5sfSxXZTpmdW5jdGlvbigpe3JldHVybiB5bH19KTt2YXIgcj17fTtlLnIociksZS5kKHIse2dldEluaXRpYWxTdGF0ZTpmdW5jdGlvbigpe3JldHVybiBIb30sbGF5b3V0OmZ1bmN0aW9uKCl7cmV0dXJuIEZvfSxvblJvdXRlQ2hhbmdlOmZ1bmN0aW9uKCl7cmV0dXJuIGx0fSxwYXRjaENsaWVudFJvdXRlczpmdW5jdGlvbigpe3JldHVybiB5ZX0scmVuZGVyOmZ1bmN0aW9uKCl7cmV0dXJuIFZlfSxyZXF1ZXN0OmZ1bmN0aW9uKCl7cmV0dXJuIFJ0fX0pO3ZhciBuPXt9O2UucihuKSxlLmQobix7aW5uZXJQcm92aWRlcjpmdW5jdGlvbigpe3JldHVybiBZdH19KTt2YXIgdD17fTtlLnIodCksZS5kKHQse2FjY2Vzc1Byb3ZpZGVyOmZ1bmN0aW9uKCl7cmV0dXJuIE1ufX0pO3ZhciBpPXt9O2UucihpKSxlLmQoaSx7ZGF0YWZsb3dQcm92aWRlcjpmdW5jdGlvbigpe3JldHVybiBqcn19KTt2YXIgcz17fTtlLnIocyksZS5kKHMse3BhdGNoUm91dGVzOmZ1bmN0aW9uKCl7cmV0dXJuIEVhfX0pO3ZhciBhPXt9O2UucihhKSxlLmQoYSx7aTE4blByb3ZpZGVyOmZ1bmN0aW9uKCl7cmV0dXJuIGlvfX0pO3ZhciB1PXt9O2Uucih1KSxlLmQodSx7ZGF0YWZsb3dQcm92aWRlcjpmdW5jdGlvbigpe3JldHVybiBIaX19KTt2YXIgYz1lKDE1MDA5KSxoPWUubihjKSxkPWUoOTc4NTcpLG09ZS5uKGQpLEM9ZSg5OTI4OSksZz1lLm4oQyksdz1lKDk5NzAyKSxFPWUoMjUwMzUpLHg9ZSg3Njc3MiksTz1lKDY3Mjk0KSxUPWUudChPLDIpLFM9ZSg4NTg5MyksTD1mdW5jdGlvbigpe3JldHVybigwLFMuanN4KSh4LlNlbGVjdExhbmcse3N0eWxlOntwYWRkaW5nOjR9fSl9LEk9ZnVuY3Rpb24oKXtyZXR1cm4oMCxTLmpzeCkoImRpdiIse3N0eWxlOntkaXNwbGF5OiJmbGV4IixoZWlnaHQ6MjZ9LG9uQ2xpY2s6ZnVuY3Rpb24oKXt3aW5kb3cub3BlbigiaHR0cHM6Ly9wcm8uYW50LmRlc2lnbi9kb2NzL2dldHRpbmctc3RhcnRlZCIpfSxjaGlsZHJlbjooMCxTLmpzeCkoRS5aLHt9KX0pfSxSPWUoMTk2MzIpLHo9ZS5uKFIpLEc9ZSg4NzU0NyksWT1lKDQyOTUyKSxlZT1lKDc4ODI0KSxKPWUoNTczODEpLG1lPSJhY3NzIix0ZT1lKDE0MTMpLGxlPWUoMTU2NzEpLGNlPWUoNDMxNDQpLFc9ZSg0OTQyKSxqPWUoOTcxMzMpLEQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBNdCgpeygwLGxlLlopKHRoaXMsTXQpLCgwLFcuWikodGhpcywiX2NhY2hlTGlzdCIsW2ouRnNdKX1yZXR1cm4oMCxjZS5aKShNdCxbe2tleToiYWRkIix2YWx1ZTpmdW5jdGlvbih5dCl7dmFyIFB0PXRoaXMuZ2V0Q2FjaGUoeXQua2V5KTtyZXR1cm4gUHR8fCh0aGlzLl9jYWNoZUxpc3QucHVzaCh5dCkseXQpfX0se2tleToiZGVsZXRlIix2YWx1ZTpmdW5jdGlvbih5dCl7dGhpcy5fY2FjaGVMaXN0PXRoaXMuX2NhY2hlTGlzdC5maWx0ZXIoZnVuY3Rpb24oUHQpe3JldHVybiBQdC5rZXkhPT15dC5rZXl9KX19LHtrZXk6Imhhc0NhY2hlIix2YWx1ZTpmdW5jdGlvbih5dCl7cmV0dXJuIHRoaXMuX2NhY2hlTGlzdC5zb21lKGZ1bmN0aW9uKFB0KXtyZXR1cm4gUHQua2V5PT09eXQua2V5fSl9fSx7a2V5OiJnZXRDYWNoZSIsdmFsdWU6ZnVuY3Rpb24oeXQpe3JldHVybiB0aGlzLl9jYWNoZUxpc3QuZmluZChmdW5jdGlvbihQdCl7cmV0dXJuIFB0LmtleT09PXl0fSl9fSx7a2V5OiJnZXRDYWNoZUxpc3QiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NhY2hlTGlzdH19XSksTXR9KCksVj1lKDU5MjA2KSxaPWUoNzA0NDQpLFA9dHlwZW9mIGRvY3VtZW50IT0idW5kZWZpbmVkIixLPWZ1bmN0aW9uKEtlLHl0KXtyZXR1cm4iIi5jb25jYXQoS2UsIi0iKS5jb25jYXQoeXQpfSxzZT1mdW5jdGlvbihLZSx5dCxQdCxBdCl7dmFyIFV0PUF0Lmhhc2hQcmlvcml0eXx8ImhpZ2giOygwLFouaEMpKEtlLHl0LFB0KTt2YXIgZG49Ii4iLmNvbmNhdChLKEtlLmtleSx5dC5uYW1lKSksZHI9VXQ9PT0ibG93Ij8iOndoZXJlKCIuY29uY2F0KGRuLCIpIik6ZG47aWYoS2UuaW5zZXJ0ZWRbeXQubmFtZV09PT12b2lkIDApe3ZhciB0cj0iIix6cj15dDtkb3t2YXIgd3I9S2UuaW5zZXJ0KHl0PT09enI/ZHI6IiIsenIsS2Uuc2hlZXQsITApOyFQJiZ3ciE9PXZvaWQgMCYmKHRyKz13ciksenI9enIubmV4dH13aGlsZSh6ciE9PXZvaWQgMCk7aWYoIVAmJnRyLmxlbmd0aCE9PTApcmV0dXJuIHRyfX0sbmU9ZSg3MTAwMiksb2U9ZnVuY3Rpb24oS2Upe3JldHVybigwLG5lLlopKEtlKT09PSJvYmplY3QiJiYic3R5bGVzImluIEtlJiYibmFtZSJpbiBLZSYmInRvU3RyaW5nImluIEtlfSxmZT1mdW5jdGlvbiBNdChLZSl7Zm9yKHZhciB5dD0iIixQdD0wO1B0PEtlLmxlbmd0aDtQdCsrKXt2YXIgQXQ9S2VbUHRdO2lmKEF0IT09bnVsbCl7dmFyIFV0PXZvaWQgMDtzd2l0Y2goKDAsbmUuWikoQXQpKXtjYXNlImJvb2xlYW4iOmJyZWFrO2Nhc2Uib2JqZWN0Ijp7aWYoQXJyYXkuaXNBcnJheShBdCkpVXQ9TXQoQXQpO2Vsc2V7VXQ9IiI7Zm9yKHZhciBkbiBpbiBBdClBdFtkbl0mJmRuJiYoVXQmJihVdCs9IiAiKSxVdCs9ZG4pfWJyZWFrfWRlZmF1bHQ6VXQ9QXR9VXQmJih5dCYmKHl0Kz0iICIpLHl0Kz1VdCl9fXJldHVybiB5dH0sRWU9ZnVuY3Rpb24oS2UseXQsUHQpe3ZhciBBdD1bXSxVdD0oMCxaLmZwKShLZSxBdCxQdCk7cmV0dXJuIEF0Lmxlbmd0aDwyP1B0OlV0K3l0KEF0KX0sUmU9ZSg2MjEyMSksQmU9ZnVuY3Rpb24oS2UseXQpe3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgUHQ9YXJndW1lbnRzLmxlbmd0aCxBdD1uZXcgQXJyYXkoUHQpLFV0PTA7VXQ8UHQ7VXQrKylBdFtVdF09YXJndW1lbnRzW1V0XTt2YXIgZG49KDAsUmUuTykoQXQsS2UucmVnaXN0ZXJlZCx2b2lkIDApO3JldHVybiBzZShLZSxkbiwhMSx5dCksSyhLZS5rZXksZG4ubmFtZSl9fSxZZT1mdW5jdGlvbihLZSx5dCl7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBQdD1hcmd1bWVudHMubGVuZ3RoLEF0PW5ldyBBcnJheShQdCksVXQ9MDtVdDxQdDtVdCsrKUF0W1V0XT1hcmd1bWVudHNbVXRdO3ZhciBkbj1BdC5tYXAoZnVuY3Rpb24oZHIpe3JldHVybiBvZShkcik/eXQoZHIpOmRyfSk7cmV0dXJuIEVlKEtlLnJlZ2lzdGVyZWQseXQsZmUoZG4pKX19LG90PWZ1bmN0aW9uKEtlLHl0KXt2YXIgUHQ9QmUoS2Use2hhc2hQcmlvcml0eTp5dC5oYXNoUHJpb3JpdHl8fCJoaWdoIixsYWJlbDp5dC5sYWJlbH0pLEF0PVllKEtlLFB0KTtyZXR1cm57Y3NzOlB0LGN4OkF0fX0scWU9ZnVuY3Rpb24oKXtmb3IodmFyIEtlPWFyZ3VtZW50cy5sZW5ndGgseXQ9bmV3IEFycmF5KEtlKSxQdD0wO1B0PEtlO1B0KyspeXRbUHRdPWFyZ3VtZW50c1tQdF07cmV0dXJuKDAsUmUuTykoeXQpfSxfZT1mdW5jdGlvbihLZSl7cmV0dXJuKDAsTy5jcmVhdGVDb250ZXh0KShLZSl9LEZlPWUoNzUwNDYpLFNlPWUoODc0NjIpLHE9ZnVuY3Rpb24oS2Upe3ZhciB5dD1uZXcgV2Vha01hcDtyZXR1cm4gZnVuY3Rpb24oUHQpe2lmKHl0LmhhcyhQdCkpcmV0dXJuIHl0LmdldChQdCk7dmFyIEF0PUtlKFB0KTtyZXR1cm4geXQuc2V0KFB0LEF0KSxBdH19LGs9ZnVuY3Rpb24oS2Upe3JldHVybiBLZSgpfSxNPVQudXNlSW5zZXJ0aW9uRWZmZWN0P1QudXNlSW5zZXJ0aW9uRWZmZWN0OiExLEE9TXx8ayxVPU18fE8udXNlTGF5b3V0RWZmZWN0LE49ITEsUT1PLmNyZWF0ZUNvbnRleHQodHlwZW9mIEhUTUxFbGVtZW50IT0idW5kZWZpbmVkIj8oMCxGZS5aKSh7a2V5OiJjc3MifSk6bnVsbCksdWU9US5Qcm92aWRlciwkPWZ1bmN0aW9uKCl7cmV0dXJuIHVzZUNvbnRleHQoUSl9LF89ZnVuY3Rpb24oS2Upe3JldHVybigwLE8uZm9yd2FyZFJlZikoZnVuY3Rpb24oeXQsUHQpe3ZhciBBdD0oMCxPLnVzZUNvbnRleHQpKFEpO3JldHVybiBLZSh5dCxBdCxQdCl9KX0scGU9Ty5jcmVhdGVDb250ZXh0KHt9KSxyZT1mdW5jdGlvbigpe3JldHVybiBSZWFjdC51c2VDb250ZXh0KHBlKX0sYWU9ZnVuY3Rpb24oS2UseXQpe2lmKHR5cGVvZiB5dD09ImZ1bmN0aW9uIil7dmFyIFB0PXl0KEtlKTtyZXR1cm4gUHR9cmV0dXJuKDAsU2UuWikoe30sS2UseXQpfSx3ZT1xKGZ1bmN0aW9uKE10KXtyZXR1cm4gcShmdW5jdGlvbihLZSl7cmV0dXJuIGFlKE10LEtlKX0pfSksTGU9ZnVuY3Rpb24oS2Upe3ZhciB5dD1PLnVzZUNvbnRleHQocGUpO3JldHVybiBLZS50aGVtZSE9PXl0JiYoeXQ9d2UoeXQpKEtlLnRoZW1lKSksTy5jcmVhdGVFbGVtZW50KHBlLlByb3ZpZGVyLHt2YWx1ZTp5dH0sS2UuY2hpbGRyZW4pfTtmdW5jdGlvbiBNZShNdCl7dmFyIEtlPU10LmRpc3BsYXlOYW1lfHxNdC5uYW1lfHwiQ29tcG9uZW50Iix5dD1SZWFjdC5mb3J3YXJkUmVmKGZ1bmN0aW9uKEF0LFV0KXt2YXIgZG49UmVhY3QudXNlQ29udGV4dChwZSk7cmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoTXQsX2V4dGVuZHMoe3RoZW1lOmRuLHJlZjpVdH0sQXQpKX0pO3JldHVybiB5dC5kaXNwbGF5TmFtZT0iV2l0aFRoZW1lKCIrS2UrIikiLGhvaXN0Tm9uUmVhY3RTdGF0aWNzKHl0LE10KX12YXIgYmU9e30uaGFzT3duUHJvcGVydHksJGU9Il9fRU1PVElPTl9UWVBFX1BMRUFTRV9ET19OT1RfVVNFX18iLGtlPWZ1bmN0aW9uKEtlLHl0KXt2YXIgUHQ9e307Zm9yKHZhciBBdCBpbiB5dCliZS5jYWxsKHl0LEF0KSYmKFB0W0F0XT15dFtBdF0pO3JldHVybiBQdFskZV09S2UsUHR9LEFlPWZ1bmN0aW9uKEtlKXt2YXIgeXQ9S2UuY2FjaGUsUHQ9S2Uuc2VyaWFsaXplZCxBdD1LZS5pc1N0cmluZ1RhZztyZXR1cm4oMCxaLmhDKSh5dCxQdCxBdCksQShmdW5jdGlvbigpe3JldHVybigwLFouTXkpKHl0LFB0LEF0KX0pLG51bGx9LHR0PV8oZnVuY3Rpb24oTXQsS2UseXQpe3ZhciBQdD1NdC5jc3M7dHlwZW9mIFB0PT0ic3RyaW5nIiYmS2UucmVnaXN0ZXJlZFtQdF0hPT12b2lkIDAmJihQdD1LZS5yZWdpc3RlcmVkW1B0XSk7dmFyIEF0PU10WyRlXSxVdD1bUHRdLGRuPSIiO3R5cGVvZiBNdC5jbGFzc05hbWU9PSJzdHJpbmciP2RuPSgwLFouZnApKEtlLnJlZ2lzdGVyZWQsVXQsTXQuY2xhc3NOYW1lKTpNdC5jbGFzc05hbWUhPW51bGwmJihkbj1NdC5jbGFzc05hbWUrIiAiKTt2YXIgZHI9KDAsUmUuTykoVXQsdm9pZCAwLE8udXNlQ29udGV4dChwZSkpO2RuKz1LZS5rZXkrIi0iK2RyLm5hbWU7dmFyIHRyPXt9O2Zvcih2YXIgenIgaW4gTXQpYmUuY2FsbChNdCx6cikmJnpyIT09ImNzcyImJnpyIT09JGUmJiFOJiYodHJbenJdPU10W3pyXSk7cmV0dXJuIHRyLmNsYXNzTmFtZT1kbix5dCYmKHRyLnJlZj15dCksTy5jcmVhdGVFbGVtZW50KE8uRnJhZ21lbnQsbnVsbCxPLmNyZWF0ZUVsZW1lbnQoQWUse2NhY2hlOktlLHNlcmlhbGl6ZWQ6ZHIsaXNTdHJpbmdUYWc6dHlwZW9mIEF0PT0ic3RyaW5nIn0pLE8uY3JlYXRlRWxlbWVudChBdCx0cikpfSksbXQ9dHQsdXQ9ZSg4Njc5KSxEZT1mdW5jdGlvbihLZSx5dCl7dmFyIFB0PWFyZ3VtZW50cztpZih5dD09bnVsbHx8IWJlLmNhbGwoeXQsImNzcyIpKXJldHVybiBPLmNyZWF0ZUVsZW1lbnQuYXBwbHkodm9pZCAwLFB0KTt2YXIgQXQ9UHQubGVuZ3RoLFV0PW5ldyBBcnJheShBdCk7VXRbMF09bXQsVXRbMV09a2UoS2UseXQpO2Zvcih2YXIgZG49MjtkbjxBdDtkbisrKVV0W2RuXT1QdFtkbl07cmV0dXJuIE8uY3JlYXRlRWxlbWVudC5hcHBseShudWxsLFV0KX07KGZ1bmN0aW9uKE10KXt2YXIgS2U7S2V8fChLZT1NdC5KU1h8fChNdC5KU1g9e30pKX0pKERlfHwoRGU9e30pKTt2YXIgTmU9XyhmdW5jdGlvbihNdCxLZSl7dmFyIHl0PU10LnN0eWxlcyxQdD0oMCxSZS5PKShbeXRdLHZvaWQgMCxPLnVzZUNvbnRleHQocGUpKSxBdD1PLnVzZVJlZigpO3JldHVybiBVKGZ1bmN0aW9uKCl7dmFyIFV0PUtlLmtleSsiLWdsb2JhbCIsZG49bmV3IEtlLnNoZWV0LmNvbnN0cnVjdG9yKHtrZXk6VXQsbm9uY2U6S2Uuc2hlZXQubm9uY2UsY29udGFpbmVyOktlLnNoZWV0LmNvbnRhaW5lcixzcGVlZHk6S2Uuc2hlZXQuaXNTcGVlZHl9KSxkcj0hMSx0cj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdzdHlsZVtkYXRhLWVtb3Rpb249IicrVXQrIiAiK1B0Lm5hbWUrJyJdJyk7cmV0dXJuIEtlLnNoZWV0LnRhZ3MubGVuZ3RoJiYoZG4uYmVmb3JlPUtlLnNoZWV0LnRhZ3NbMF0pLHRyIT09bnVsbCYmKGRyPSEwLHRyLnNldEF0dHJpYnV0ZSgiZGF0YS1lbW90aW9uIixVdCksZG4uaHlkcmF0ZShbdHJdKSksQXQuY3VycmVudD1bZG4sZHJdLGZ1bmN0aW9uKCl7ZG4uZmx1c2goKX19LFtLZV0pLFUoZnVuY3Rpb24oKXt2YXIgVXQ9QXQuY3VycmVudCxkbj1VdFswXSxkcj1VdFsxXTtpZihkcil7VXRbMV09ITE7cmV0dXJufWlmKFB0Lm5leHQhPT12b2lkIDAmJigwLFouTXkpKEtlLFB0Lm5leHQsITApLGRuLnRhZ3MubGVuZ3RoKXt2YXIgdHI9ZG4udGFnc1tkbi50YWdzLmxlbmd0aC0xXS5uZXh0RWxlbWVudFNpYmxpbmc7ZG4uYmVmb3JlPXRyLGRuLmZsdXNoKCl9S2UuaW5zZXJ0KCIiLFB0LGRuLCExKX0sW0tlLFB0Lm5hbWVdKSxudWxsfSk7ZnVuY3Rpb24gWGUoKXtmb3IodmFyIE10PWFyZ3VtZW50cy5sZW5ndGgsS2U9bmV3IEFycmF5KE10KSx5dD0wO3l0PE10O3l0KyspS2VbeXRdPWFyZ3VtZW50c1t5dF07cmV0dXJuIHNlcmlhbGl6ZVN0eWxlcyhLZSl9ZnVuY3Rpb24gSmUoKXt2YXIgTXQ9WGUuYXBwbHkodm9pZCAwLGFyZ3VtZW50cyksS2U9ImFuaW1hdGlvbi0iK010Lm5hbWU7cmV0dXJue25hbWU6S2Usc3R5bGVzOiJAa2V5ZnJhbWVzICIrS2UrInsiK010LnN0eWxlcysifSIsYW5pbToxLHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIl9FTU9fIit0aGlzLm5hbWUrIl8iK3RoaXMuc3R5bGVzKyJfRU1PXyJ9fX12YXIgZ3Q9ZnVuY3Rpb24gTXQoS2Upe2Zvcih2YXIgeXQ9S2UubGVuZ3RoLFB0PTAsQXQ9IiI7UHQ8eXQ7UHQrKyl7dmFyIFV0PUtlW1B0XTtpZihVdCE9bnVsbCl7dmFyIGRuPXZvaWQgMDtzd2l0Y2godHlwZW9mIFV0KXtjYXNlImJvb2xlYW4iOmJyZWFrO2Nhc2Uib2JqZWN0Ijp7aWYoQXJyYXkuaXNBcnJheShVdCkpZG49TXQoVXQpO2Vsc2V7ZG49IiI7Zm9yKHZhciBkciBpbiBVdClVdFtkcl0mJmRyJiYoZG4mJihkbis9IiAiKSxkbis9ZHIpfWJyZWFrfWRlZmF1bHQ6ZG49VXR9ZG4mJihBdCYmKEF0Kz0iICIpLEF0Kz1kbil9fXJldHVybiBBdH07ZnVuY3Rpb24gZGUoTXQsS2UseXQpe3ZhciBQdD1bXSxBdD1nZXRSZWdpc3RlcmVkU3R5bGVzKE10LFB0LHl0KTtyZXR1cm4gUHQubGVuZ3RoPDI/eXQ6QXQrS2UoUHQpfXZhciBXZT1mdW5jdGlvbihLZSl7dmFyIHl0PUtlLmNhY2hlLFB0PUtlLnNlcmlhbGl6ZWRBcnI7cmV0dXJuIHVzZUluc2VydGlvbkVmZmVjdEFsd2F5c1dpdGhTeW5jRmFsbGJhY2soZnVuY3Rpb24oKXtmb3IodmFyIEF0PTA7QXQ8UHQubGVuZ3RoO0F0KyspaW5zZXJ0U3R5bGVzKHl0LFB0W0F0XSwhMSl9KSxudWxsfSxTdD1udWxsLGN0PWZ1bmN0aW9uKEtlKXtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIHl0PWFyZ3VtZW50cy5sZW5ndGgsUHQ9bmV3IEFycmF5KHl0KSxBdD0wO0F0PHl0O0F0KyspUHRbQXRdPWFyZ3VtZW50c1tBdF07cmV0dXJuKDAsTy5tZW1vKShmdW5jdGlvbihVdCl7dmFyIGRuPUtlKCk7cmV0dXJuKDAsUy5qc3gpKE5lLHtzdHlsZXM6KDAsUmUuTykoUHQsdm9pZCAwLCgwLHRlLlopKCgwLHRlLlopKHt9LFV0KSx7fSx7dGhlbWU6ZG59KSl9KX0pfX0sT2U9ZnVuY3Rpb24oS2Upe3JldHVybiBmdW5jdGlvbih5dCl7dmFyIFB0PUtlKHl0KTtyZXR1cm4gZnVuY3Rpb24oQXQpe3ZhciBVdD1QdChBdCksZG49VXQuc3R5bGVzO3JldHVybiBkbn19fSxHZT1lKDkxKSxodD1lKDExNTY4KSx6ZT1bImNoaWxkcmVuIiwicHJlZml4Iiwic3BlZWR5IiwiZ2V0U3R5bGVNYW5hZ2VyIiwiY29udGFpbmVyIiwibm9uY2UiLCJpbnNlcnRpb25Qb2ludCIsInN0eWxpc1BsdWdpbnMiLCJsaW50ZXJzIl0sUWU9ZnVuY3Rpb24oS2Upe3JldHVybigwLE8ubWVtbykoZnVuY3Rpb24oeXQpe3ZhciBQdD15dC5jaGlsZHJlbixBdD15dC5wcmVmaXgsVXQ9eXQuc3BlZWR5LGRuPXl0LmdldFN0eWxlTWFuYWdlcixkcj15dC5jb250YWluZXIsdHI9eXQubm9uY2UsenI9eXQuaW5zZXJ0aW9uUG9pbnQsd3I9eXQuc3R5bGlzUGx1Z2lucyxCcj15dC5saW50ZXJzLGRhPSgwLEdlLlopKHl0LHplKSxzYT0oMCxPLnVzZUNvbnRleHQpKEtlKSx3YT1BdCE9bnVsbD9BdDpzYS5zaGVldC5rZXksemE9ZHIhPW51bGw/ZHI6c2Euc2hlZXQuY29udGFpbmVyLExhPVV0IT1udWxsP1V0OnNhLnNoZWV0LmlzU3BlZWR5LFdhPSgwLE8udXNlTWVtbykoZnVuY3Rpb24oKXt2YXIgSmE9ITEsdG89KDAsVi5aKSh7c3BlZWR5OkxhIT1udWxsP0xhOkphLGtleTp3YSxjb250YWluZXI6emEsbm9uY2U6dHIsaW5zZXJ0aW9uUG9pbnQ6enIsc3R5bGlzUGx1Z2luczp3cn0pO2lmKHR5cGVvZiBlLmchPSJ1bmRlZmluZWQiKXt2YXIgd289ZS5nLl9fQU5URF9TVFlMRV9DQUNIRV9NQU5BR0VSX0ZPUl9TU1JfXzt3byYmKHRvLmNhY2hlPXdvLmFkZCh0by5jYWNoZSkpfXJldHVybiB0b30sW3dhLExhLHphLHRyLHpyLHdyXSk7KDAsTy51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7ZG49PW51bGx8fGRuKFdhKX0sW1dhXSk7dmFyIE9hPSgwLFMuanN4KShLZS5Qcm92aWRlcix7dmFsdWU6V2EsY2hpbGRyZW46UHR9KTtyZXR1cm4gT2JqZWN0LmtleXMoZGEpLmxlbmd0aHx8emE/KDAsUy5qc3gpKGh0LlY5LCgwLHRlLlopKCgwLHRlLlopKHtsaW50ZXJzOkJyLGNvbnRhaW5lcjp6YX0sZGEpLHt9LHtjaGlsZHJlbjpPYX0pKTpPYX0pfSxwdD1lKDk3Njg1KSxidD1lKDkzNjEpLEl0PWZ1bmN0aW9uKCl7dmFyIEtlPWJ0LloudXNlVG9rZW4oKSx5dD1LZS50b2tlbjtyZXR1cm4geXR9LFR0PWZ1bmN0aW9uKEtlKXtyZXR1cm4oMCx0ZS5aKSgoMCx0ZS5aKSh7fSxLZSkse30se21vYmlsZTpLZS54cyx0YWJsZXQ6S2UubWQsbGFwdG9wOktlLmxnLGRlc2t0b3A6S2UueHhsfSl9LFh0PWZ1bmN0aW9uKCl7dmFyIEtlPUl0KCkseXQ9e3hzOiJAbWVkaWEgKG1heC13aWR0aDogIi5jb25jYXQoS2Uuc2NyZWVuWFNNYXgsInB4KSIpLHNtOiJAbWVkaWEgKG1heC13aWR0aDogIi5jb25jYXQoS2Uuc2NyZWVuU01NYXgsInB4KSIpLG1kOiJAbWVkaWEgKG1heC13aWR0aDogIi5jb25jYXQoS2Uuc2NyZWVuTURNYXgsInB4KSIpLGxnOiJAbWVkaWEgKG1heC13aWR0aDogIi5jb25jYXQoS2Uuc2NyZWVuTEdNYXgsInB4KSIpLHhsOiJAbWVkaWEgKG1heC13aWR0aDogIi5jb25jYXQoS2Uuc2NyZWVuWExNYXgsInB4KSIpLHh4bDoiQG1lZGlhIChtaW4td2lkdGg6ICIuY29uY2F0KEtlLnNjcmVlblhYTE1pbiwicHgpIil9O3JldHVybigwLE8udXNlTWVtbykoZnVuY3Rpb24oKXtyZXR1cm4gVHQoeXQpfSxbS2VdKX0sZm49ZnVuY3Rpb24oS2UseXQpe3JldHVybiBPYmplY3QuZW50cmllcyhLZSkubWFwKGZ1bmN0aW9uKFB0KXt2YXIgQXQ9KDAscHQuWikoUHQsMiksVXQ9QXRbMF0sZG49QXRbMV0sZHI9ZG47cmV0dXJuIG9lKGRuKXx8KGRyPXFlKGRuKSkseXRbVXRdPyIiLmNvbmNhdCh5dFtVdF0sIiB7IikuY29uY2F0KGRyLnN0eWxlcywifSIpOiIifSkuam9pbigiIil9LG5uPVsic3R5bGlzaCIsImFwcGVhcmFuY2UiLCJpc0RhcmtNb2RlIiwicHJlZml4Q2xzIiwiaWNvblByZWZpeENscyJdLG9uPVsicHJlZml4Q2xzIiwiaWNvblByZWZpeENscyJdLE50PWZ1bmN0aW9uKEtlKXt2YXIgeXQ9S2UuaGFzaFByaW9yaXR5LFB0PUtlLnVzZVRoZW1lLEF0PUtlLkVtb3Rpb25Db250ZXh0O3JldHVybiBmdW5jdGlvbihVdCxkbil7dmFyIGRyPWRuPT1udWxsP3ZvaWQgMDpkbi5fX0JBQkVMX0ZJTEVfTkFNRV9fLHRyPSEhZHI7cmV0dXJuIGZ1bmN0aW9uKHpyKXt2YXIgd3I9UHQoKSxCcj0oMCxPLnVzZUNvbnRleHQpKEF0KSxkYT1Cci5jYWNoZSxzYT1vdChkYSx7aGFzaFByaW9yaXR5Oihkbj09bnVsbD92b2lkIDA6ZG4uaGFzaFByaW9yaXR5KXx8eXQsbGFiZWw6ZG49PW51bGw/dm9pZCAwOmRuLmxhYmVsfSksd2E9c2EuY3gsemE9c2EuY3NzLExhPVh0KCksV2E9KDAsTy51c2VNZW1vKShmdW5jdGlvbigpe3ZhciBPYTtpZihVdCBpbnN0YW5jZW9mIEZ1bmN0aW9uKXt2YXIgSmE9d3Iuc3R5bGlzaCx0bz13ci5hcHBlYXJhbmNlLHdvPXdyLmlzRGFya01vZGUsaG89d3IucHJlZml4Q2xzLHlvPXdyLmljb25QcmVmaXhDbHMsUW89KDAsR2UuWikod3Isbm4pLGtvPWZ1bmN0aW9uKE1pKXtyZXR1cm4gZm4oTWksTGEpfTtPYmplY3QuYXNzaWduKGtvLExhKSxPYT1VdCh7dG9rZW46UW8sc3R5bGlzaDpKYSxhcHBlYXJhbmNlOnRvLGlzRGFya01vZGU6d28scHJlZml4Q2xzOmhvLGljb25QcmVmaXhDbHM6eW8sY3g6d2EsY3NzOnFlLHJlc3BvbnNpdmU6a299LHpyKX1lbHNlIE9hPVV0O3JldHVybigwLG5lLlopKE9hKT09PSJvYmplY3QiJiYob2UoT2EpP09hPXphKE9hKTpPYT1PYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXMoT2EpLm1hcChmdW5jdGlvbih5aSl7dmFyIE1pPSgwLHB0LlopKHlpLDIpLENpPU1pWzBdLERvPU1pWzFdLEtpPXRyPyIiLmNvbmNhdChkciwiLSIpLmNvbmNhdChDaSk6dm9pZCAwO3JldHVybigwLG5lLlopKERvKT09PSJvYmplY3QiP3RyP1tDaSx6YShEbywibGFiZWw6Ii5jb25jYXQoS2kpKV06W0NpLHphKERvKV06W0NpLERvXX0pKSksT2F9LFt6cix3cl0pO3JldHVybigwLE8udXNlTWVtbykoZnVuY3Rpb24oKXt2YXIgT2E9d3IucHJlZml4Q2xzLEphPXdyLmljb25QcmVmaXhDbHMsdG89KDAsR2UuWikod3Isb24pO3JldHVybntzdHlsZXM6V2EsY3g6d2EsdGhlbWU6dG8scHJlZml4Q2xzOk9hLGljb25QcmVmaXhDbHM6SmF9fSxbV2Esd3JdKX19fSxabj1MZSx5bj1wZSxnbj1mdW5jdGlvbihLZSl7aWYoIUtlLlRoZW1lQ29udGV4dCl0aHJvdyJUaGVtZUNvbnRleHQgaXMgcmVxdWlyZWQuIFBsZWFzZSBjaGVjayB5b3VyIGNvbmZpZy4iO3luPUtlLlRoZW1lQ29udGV4dCxabj1jcmVhdGVTdHlsZWRUaGVtZVByb3ZpZGVyKEtlKX0sQm49ZnVuY3Rpb24oS2Upe2lmKEtlLlRoZW1lUHJvdmlkZXIpcmV0dXJuIEtlLlRoZW1lUHJvdmlkZXI7dmFyIHl0PUtlLlRoZW1lQ29udGV4dDtyZXR1cm4gZnVuY3Rpb24oUHQpe3JldHVybigwLFMuanN4KSh5dC5Qcm92aWRlcix7dmFsdWU6UHQudGhlbWUsY2hpbGRyZW46UHQuY2hpbGRyZW59KX19LFZuPWUoNzQ5MDIpLE5uPWUoMjQ1MyksZnQ9ZSgxNjU2OCksZXQ9ZSgxNzc4OCksSnQ9ZSgyMTUzMiksd3Q9ZnVuY3Rpb24oS2Upe3JldHVybiB0eXBlb2Ygd2luZG93IT0idW5kZWZpbmVkIj9tYXRjaE1lZGlhJiZtYXRjaE1lZGlhKCIocHJlZmVycy1jb2xvci1zY2hlbWU6ICIuY29uY2F0KEtlLCIpIikpOnttYXRjaGVzOiExfX0sX3QseG49KDAsTy5jcmVhdGVDb250ZXh0KSh7YXBwZWFyYW5jZToibGlnaHQiLHNldEFwcGVhcmFuY2U6ZnVuY3Rpb24oKXt9LGlzRGFya01vZGU6ITEsdGhlbWVNb2RlOiJsaWdodCIsc2V0VGhlbWVNb2RlOmZ1bmN0aW9uKCl7fSxicm93c2VyUHJlZmVyczooX3Q9d3QoImRhcmsiKSkhPT1udWxsJiZfdCE9PXZvaWQgMCYmX3QubWF0Y2hlcz8iZGFyayI6ImxpZ2h0In0pLFluPWZ1bmN0aW9uKCl7cmV0dXJuKDAsTy51c2VDb250ZXh0KSh4bil9LFBuPSgwLE8ubWVtbykoZnVuY3Rpb24oTXQpe3ZhciBLZT1NdC5jaGlsZHJlbix5dD1NdC50aGVtZSxQdD1NdC5wcmVmaXhDbHMsQXQ9TXQuZ2V0U3RhdGljSW5zdGFuY2UsVXQ9TXQuc3RhdGljSW5zdGFuY2VDb25maWcsZG49WW4oKSxkcj1kbi5hcHBlYXJhbmNlLHRyPWRuLmlzRGFya01vZGUsenI9Tm4uWlAudXNlTWVzc2FnZShVdD09bnVsbD92b2lkIDA6VXQubWVzc2FnZSksd3I9KDAscHQuWikoenIsMiksQnI9d3JbMF0sZGE9d3JbMV0sc2E9ZnQuWlAudXNlTm90aWZpY2F0aW9uKFV0PT1udWxsP3ZvaWQgMDpVdC5ub3RpZmljYXRpb24pLHdhPSgwLHB0LlopKHNhLDIpLHphPXdhWzBdLExhPXdhWzFdLFdhPWV0LloudXNlTW9kYWwoKSxPYT0oMCxwdC5aKShXYSwyKSxKYT1PYVswXSx0bz1PYVsxXTsoMCxPLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtBdD09bnVsbHx8QXQoe21lc3NhZ2U6QnIsbW9kYWw6SmEsbm90aWZpY2F0aW9uOnphfSl9LFtdKTt2YXIgd289KDAsTy51c2VNZW1vKShmdW5jdGlvbigpe3ZhciBobz10cj9idC5aLmRhcmtBbGdvcml0aG06YnQuWi5kZWZhdWx0QWxnb3JpdGhtLHlvPXl0O2lmKHR5cGVvZiB5dD09ImZ1bmN0aW9uIiYmKHlvPXl0KGRyKSksIXlvKXJldHVybnthbGdvcml0aG06aG99O3ZhciBRbz15by5hbGdvcml0aG0/eW8uYWxnb3JpdGhtIGluc3RhbmNlb2YgQXJyYXk/eW8uYWxnb3JpdGhtOlt5by5hbGdvcml0aG1dOltdO3JldHVybigwLHRlLlopKCgwLHRlLlopKHt9LHlvKSx7fSx7YWxnb3JpdGhtOnlvLmFsZ29yaXRobT9baG9dLmNvbmNhdCgoMCxWbi5aKShRbykpOmhvfSl9LFt5dCx0cl0pO3JldHVybigwLFMuanN4cykoSnQuWlAse3ByZWZpeENsczpQdCx0aGVtZTp3byxjaGlsZHJlbjpbZGEsTGEsdG8sS2VdfSl9KTtQbi5kaXNwbGF5TmFtZT0iQW50ZFByb3ZpZGVyIjt2YXIgTG49UG47ZnVuY3Rpb24gZXIoTXQsS2Upe3ZhciB5dD1NdD09bnVsbD9udWxsOnR5cGVvZiBTeW1ib2whPSJ1bmRlZmluZWQiJiZNdFtTeW1ib2wuaXRlcmF0b3JdfHxNdFsiQEBpdGVyYXRvciJdO2lmKHl0IT1udWxsKXt2YXIgUHQsQXQsVXQsZG4sZHI9W10sdHI9ITAsenI9ITE7dHJ5e2lmKFV0PSh5dD15dC5jYWxsKE10KSkubmV4dCxLZT09PTApe2lmKE9iamVjdCh5dCkhPT15dClyZXR1cm47dHI9ITF9ZWxzZSBmb3IoOyEodHI9KFB0PVV0LmNhbGwoeXQpKS5kb25lKSYmKGRyLnB1c2goUHQudmFsdWUpLGRyLmxlbmd0aCE9PUtlKTt0cj0hMCk7fWNhdGNoKHdyKXt6cj0hMCxBdD13cn1maW5hbGx5e3RyeXtpZighdHImJnl0LnJldHVybiE9bnVsbCYmKGRuPXl0LnJldHVybigpLE9iamVjdChkbikhPT1kbikpcmV0dXJufWZpbmFsbHl7aWYoenIpdGhyb3cgQXR9fXJldHVybiBkcn19ZnVuY3Rpb24gUW4oTXQsS2Upe3JldHVybiB1cihNdCl8fGVyKE10LEtlKXx8aXIoTXQsS2UpfHxjcigpfWZ1bmN0aW9uIHVyKE10KXtpZihBcnJheS5pc0FycmF5KE10KSlyZXR1cm4gTXR9ZnVuY3Rpb24gaXIoTXQsS2Upe2lmKE10KXtpZih0eXBlb2YgTXQ9PSJzdHJpbmciKXJldHVybiB2bihNdCxLZSk7dmFyIHl0PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChNdCkuc2xpY2UoOCwtMSk7aWYoeXQ9PT0iT2JqZWN0IiYmTXQuY29uc3RydWN0b3ImJih5dD1NdC5jb25zdHJ1Y3Rvci5uYW1lKSx5dD09PSJNYXAifHx5dD09PSJTZXQiKXJldHVybiBBcnJheS5mcm9tKE10KTtpZih5dD09PSJBcmd1bWVudHMifHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdCh5dCkpcmV0dXJuIHZuKE10LEtlKX19ZnVuY3Rpb24gdm4oTXQsS2UpeyhLZT09bnVsbHx8S2U+TXQubGVuZ3RoKSYmKEtlPU10Lmxlbmd0aCk7Zm9yKHZhciB5dD0wLFB0PW5ldyBBcnJheShLZSk7eXQ8S2U7eXQrKylQdFt5dF09TXRbeXRdO3JldHVybiBQdH1mdW5jdGlvbiBjcigpe3Rocm93IG5ldyBUeXBlRXJyb3IoYEludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuCitJbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuYCl9ZnVuY3Rpb24gV24oTXQsS2Upe3ZhciB5dD1LZXx8e30sUHQ9eXQuZGVmYXVsdFZhbHVlLEF0PXl0LnZhbHVlLFV0PXl0Lm9uQ2hhbmdlLGRuPXl0LnBvc3RTdGF0ZSxkcj1PLnVzZVN0YXRlKGZ1bmN0aW9uKCl7cmV0dXJuIEF0IT09dm9pZCAwP0F0OlB0IT09dm9pZCAwP3R5cGVvZiBQdD09ImZ1bmN0aW9uIj9QdCgpOlB0OnR5cGVvZiBNdD09ImZ1bmN0aW9uIj9NdCgpOk10fSksdHI9UW4oZHIsMiksenI9dHJbMF0sd3I9dHJbMV0sQnI9QXQhPT12b2lkIDA/QXQ6enI7ZG4mJihCcj1kbihCcikpO2Z1bmN0aW9uIGRhKHNhKXt3cihzYSksQnIhPT1zYSYmVXQmJlV0KHNhLEJyKX1yZXR1cm5bQnIsZGFdfXZhciB3bj1XbixDdD1mdW5jdGlvbihLZSl7dHlwZW9mIE8uc3RhcnRUcmFuc2l0aW9uPT0iZnVuY3Rpb24iPygwLE8uc3RhcnRUcmFuc2l0aW9uKShLZSk6S2UoKX0sWnQsYW49ZnVuY3Rpb24oS2Upe3ZhciB5dD1LZS50aGVtZU1vZGUsUHQ9S2Uuc2V0QXBwZWFyYW5jZSxBdD1LZS5zZXRCcm93c2VyUHJlZmVycyxVdD1mdW5jdGlvbigpe0N0KGZ1bmN0aW9uKCl7d3QoImRhcmsiKS5tYXRjaGVzP1B0KCJkYXJrIik6UHQoImxpZ2h0Iil9KX0sZG49ZnVuY3Rpb24oKXtDdChmdW5jdGlvbigpe3d0KCJkYXJrIikubWF0Y2hlcz9BdCgiZGFyayIpOkF0KCJsaWdodCIpfSl9O3JldHVybigwLE8udXNlTGF5b3V0RWZmZWN0KShmdW5jdGlvbigpe2lmKHl0IT09ImF1dG8iKXtDdChmdW5jdGlvbigpe1B0KHl0KX0pO3JldHVybn1yZXR1cm4gc2V0VGltZW91dChVdCwxKSxadHx8KFp0PXd0KCJkYXJrIikpLFp0LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsVXQpLGZ1bmN0aW9uKCl7WnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixVdCl9fSxbeXRdKSwoMCxPLnVzZUxheW91dEVmZmVjdCkoZnVuY3Rpb24oKXtyZXR1cm4gWnR8fChadD13dCgiZGFyayIpKSxadC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGRuKSxmdW5jdGlvbigpe1p0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNoYW5nZSIsZG4pfX0sW10pLG51bGx9LER0PSgwLE8ubWVtbykoZnVuY3Rpb24oTXQpe3ZhciBLZSx5dD1NdC5jaGlsZHJlbixQdD1NdC5hcHBlYXJhbmNlLEF0PU10LmRlZmF1bHRBcHBlYXJhbmNlLFV0PU10Lm9uQXBwZWFyYW5jZUNoYW5nZSxkbj1NdC50aGVtZU1vZGUsZHI9TXQuZGVmYXVsdFRoZW1lTW9kZSx0cj1NdC5vblRoZW1lTW9kZUNoYW5nZSx6cj1NdC51c2VUaGVtZSx3cj16cigpLEJyPXdyLmFwcGVhcmFuY2UsZGE9d3IudGhlbWVNb2RlLHNhPXduKCJsaWdodCIse3ZhbHVlOmRuLGRlZmF1bHRWYWx1ZTpkciE9bnVsbD9kcjpkYSxvbkNoYW5nZTpmdW5jdGlvbih5aSl7cmV0dXJuIHRyPT1udWxsP3ZvaWQgMDp0cih5aSl9fSksd2E9KDAscHQuWikoc2EsMiksemE9d2FbMF0sTGE9d2FbMV0sV2E9d24oImxpZ2h0Iix7dmFsdWU6UHQsZGVmYXVsdFZhbHVlOkF0IT1udWxsP0F0OkJyLG9uQ2hhbmdlOmZ1bmN0aW9uKHlpKXtyZXR1cm4gVXQ9PW51bGw/dm9pZCAwOlV0KHlpKX19KSxPYT0oMCxwdC5aKShXYSwyKSxKYT1PYVswXSx0bz1PYVsxXSx3bz0oMCxPLnVzZVN0YXRlKSgoS2U9d3QoImRhcmsiKSkhPT1udWxsJiZLZSE9PXZvaWQgMCYmS2UubWF0Y2hlcz8iZGFyayI6ImxpZ2h0IiksaG89KDAscHQuWikod28sMikseW89aG9bMF0sUW89aG9bMV07cmV0dXJuKDAsUy5qc3hzKSh4bi5Qcm92aWRlcix7dmFsdWU6e3RoZW1lTW9kZTp6YSxzZXRUaGVtZU1vZGU6TGEsYXBwZWFyYW5jZTpKYSxzZXRBcHBlYXJhbmNlOnRvLGlzRGFya01vZGU6SmE9PT0iZGFyayIsYnJvd3NlclByZWZlcnM6eW99LGNoaWxkcmVuOlt0eXBlb2Ygd2luZG93IT0idW5kZWZpbmVkIiYmKDAsUy5qc3gpKGFuLHt0aGVtZU1vZGU6emEsc2V0QXBwZWFyYW5jZTp0byxzZXRCcm93c2VyUHJlZmVyczpRb30pLHl0XX0pfSk7RHQuZGlzcGxheU5hbWU9IlRoZW1lU3dpdGNoZXIiO3ZhciBrdD1EdCx0bj1mdW5jdGlvbihLZSl7dmFyIHl0PUtlLmNzcyxQdD1LZS50b2tlbjtyZXR1cm57YnV0dG9uRGVmYXVsdEhvdmVyOnl0KHtiYWNrZ3JvdW5kQ29sb3I6UHQuY29sb3JCZ0NvbnRhaW5lcixib3JkZXI6IjFweCBzb2xpZCAiLmNvbmNhdChQdC5jb2xvckJvcmRlciksY3Vyc29yOiJwb2ludGVyIiwiOmhvdmVyIjp7Y29sb3I6UHQuY29sb3JQcmltYXJ5SG92ZXIsYm9yZGVyQ29sb3I6UHQuY29sb3JQcmltYXJ5SG92ZXJ9LCI6YWN0aXZlIjp7Y29sb3I6UHQuY29sb3JQcmltYXJ5QWN0aXZlLGJvcmRlckNvbG9yOlB0LmNvbG9yUHJpbWFyeUFjdGl2ZX19KX19LG1uPWZ1bmN0aW9uKEtlKXtyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKEtlKS5tYXAoZnVuY3Rpb24oeXQpe3ZhciBQdD0oMCxwdC5aKSh5dCwyKSxBdD1QdFswXSxVdD1QdFsxXTtyZXR1cm5bQXQsVXQuc3R5bGVzXX0pKX0sS249ZnVuY3Rpb24oKXt2YXIgS2U9SXQoKSx5dD1ZbigpLFB0PXl0LmFwcGVhcmFuY2UsQXQ9eXQuaXNEYXJrTW9kZTtyZXR1cm4oMCxPLnVzZU1lbW8pKGZ1bmN0aW9uKCl7cmV0dXJuIG1uKHRuKHt0b2tlbjpLZSxjc3M6cWUsYXBwZWFyYW5jZTpQdCxpc0RhcmtNb2RlOkF0fSkpfSxbS2UsUHQsQXRdKX0sSm49ZnVuY3Rpb24oKXt2YXIgS2U9SXQoKSx5dD1LbigpO3JldHVybigwLE8udXNlTWVtbykoZnVuY3Rpb24oKXtyZXR1cm4oMCx0ZS5aKSgoMCx0ZS5aKSh7fSxLZSkse30se3N0eWxpc2g6eXR9KX0sW0tlLHl0XSl9LFhuPVsic3R5bGlzaCJdLGZyPWZ1bmN0aW9uKEtlKXt2YXIgeXQ9S2UuY2hpbGRyZW4sUHQ9S2UuY3VzdG9tVG9rZW4sQXQ9S2UuZGVmYXVsdEN1c3RvbVRva2VuLFV0PUtlLmN1c3RvbVN0eWxpc2gsZG49S2UucHJlZml4Q2xzLGRyPUtlLlN0eWxlZFRoZW1lUHJvdmlkZXIsdHI9WW4oKSx6cj10ci5hcHBlYXJhbmNlLHdyPXRyLmlzRGFya01vZGUsQnI9Sm4oKSxkYT1Cci5zdHlsaXNoLHNhPSgwLEdlLlopKEJyLFhuKSx3YT0oMCxPLnVzZU1lbW8pKGZ1bmN0aW9uKCl7cmV0dXJuIEF0P0F0IGluc3RhbmNlb2YgRnVuY3Rpb24/QXQoe3Rva2VuOnNhLGFwcGVhcmFuY2U6enIsaXNEYXJrTW9kZTp3cn0pOkF0Ont9fSxbQXQsc2EsenJdKSx6YT0oMCxPLnVzZU1lbW8pKGZ1bmN0aW9uKCl7cmV0dXJuIFB0IGluc3RhbmNlb2YgRnVuY3Rpb24/KDAsdGUuWikoKDAsdGUuWikoe30sd2EpLFB0KHt0b2tlbjpzYSxhcHBlYXJhbmNlOnpyLGlzRGFya01vZGU6d3J9KSk6KDAsdGUuWikoKDAsdGUuWikoe30sd2EpLFB0KX0sW3dhLFB0LHNhLHpyXSksTGE9KDAsTy51c2VNZW1vKShmdW5jdGlvbigpe3JldHVybiBVdD9VdCh7dG9rZW46KDAsdGUuWikoKDAsdGUuWikoe30sc2EpLHphKSxzdHlsaXNoOmRhLGFwcGVhcmFuY2U6enIsaXNEYXJrTW9kZTp3cixjc3M6cWV9KTp7fX0sW1V0LHNhLHphLGRhLHpyXSksV2E9KDAsTy51c2VNZW1vKShmdW5jdGlvbigpe3JldHVybigwLHRlLlopKCgwLHRlLlopKHt9LExhKSxkYSl9LFtMYSxkYV0pLE9hPSgwLHRlLlopKCgwLHRlLlopKCgwLHRlLlopKCgwLHRlLlopKHt9LHNhKSx6YSkse30se3N0eWxpc2g6V2F9LHRyKSx7fSx7cHJlZml4Q2xzOmRufSk7cmV0dXJuKDAsUy5qc3gpKGRyLHt0aGVtZTpPYSxjaGlsZHJlbjp5dH0pfSxycj1mcixocj1mdW5jdGlvbihLZSl7dmFyIHl0PUtlLnN0eWxlZENvbmZpZz9CbihLZS5zdHlsZWRDb25maWcpOnZvaWQgMCxQdD1LZS5TdHlsZUVuZ2luZUNvbnRleHQ7cmV0dXJuKDAsTy5tZW1vKShmdW5jdGlvbihBdCl7dmFyIFV0PUF0LmNoaWxkcmVuLGRuPUF0LmN1c3RvbVRva2VuLGRyPUF0LmN1c3RvbVN0eWxpc2gsdHI9QXQudGhlbWUsenI9QXQuZ2V0U3RhdGljSW5zdGFuY2Usd3I9QXQucHJlZml4Q2xzLEJyPUF0LnN0YXRpY0luc3RhbmNlQ29uZmlnLGRhPUF0LmFwcGVhcmFuY2Usc2E9QXQuZGVmYXVsdEFwcGVhcmFuY2Usd2E9QXQub25BcHBlYXJhbmNlQ2hhbmdlLHphPUF0LnRoZW1lTW9kZSxMYT1BdC5kZWZhdWx0VGhlbWVNb2RlLFdhPUF0Lm9uVGhlbWVNb2RlQ2hhbmdlLE9hPUF0LnN0eWxlZCxKYT0oMCxPLnVzZUNvbnRleHQpKFB0KSx0bz1KYS5wcmVmaXhDbHMsd289SmEuU3R5bGVkVGhlbWVDb250ZXh0LGhvPUphLkN1c3RvbVRoZW1lQ29udGV4dCx5bz0oMCxPLnVzZUNvbnRleHQpKGhvKSxRbz1PYT9CbihPYSk6eXR8fFpuLGtvPXdyfHx0bztyZXR1cm4oMCxTLmpzeCkoUHQuUHJvdmlkZXIse3ZhbHVlOntwcmVmaXhDbHM6a28sU3R5bGVkVGhlbWVDb250ZXh0OihPYT09bnVsbD92b2lkIDA6T2EuVGhlbWVDb250ZXh0KXx8d298fHluLEN1c3RvbVRoZW1lQ29udGV4dDpob30sY2hpbGRyZW46KDAsUy5qc3gpKGt0LHt0aGVtZU1vZGU6emEsZGVmYXVsdFRoZW1lTW9kZTpMYSxvblRoZW1lTW9kZUNoYW5nZTpXYSxkZWZhdWx0QXBwZWFyYW5jZTpzYSxhcHBlYXJhbmNlOmRhLG9uQXBwZWFyYW5jZUNoYW5nZTp3YSx1c2VUaGVtZTpLZS51c2VUaGVtZSxjaGlsZHJlbjooMCxTLmpzeCkoTG4se3ByZWZpeENsczprbyxzdGF0aWNJbnN0YW5jZUNvbmZpZzpCcix0aGVtZTp0cixnZXRTdGF0aWNJbnN0YW5jZTp6cixjaGlsZHJlbjooMCxTLmpzeCkocnIse3ByZWZpeENsczprbyxjdXN0b21Ub2tlbjpkbixkZWZhdWx0Q3VzdG9tVG9rZW46eW8sY3VzdG9tU3R5bGlzaDpkcixTdHlsZWRUaGVtZVByb3ZpZGVyOlFvLGNoaWxkcmVuOlV0fSl9KX0pfSl9KX0sRm49ZnVuY3Rpb24oS2Upe3JldHVybiBmdW5jdGlvbigpe3ZhciB5dD1LZS5TdHlsZUVuZ2luZUNvbnRleHQsUHQ9KDAsTy51c2VDb250ZXh0KSh5dCksQXQ9UHQuU3R5bGVkVGhlbWVDb250ZXh0LFV0PVB0LkN1c3RvbVRoZW1lQ29udGV4dCxkbj1QdC5wcmVmaXhDbHMsZHI9Sm4oKSx0cj1ZbigpLHpyPSgwLE8udXNlQ29udGV4dCkoVXQpLHdyPSgwLE8udXNlQ29udGV4dCkoQXQhPW51bGw/QXQ6eW4pfHx7fSxCcj0oMCxPLnVzZUNvbnRleHQpKEp0LlpQLkNvbmZpZ0NvbnRleHQpLGRhPUJyLmljb25QcmVmaXhDbHMsc2E9QnIuZ2V0UHJlZml4Q2xzLHdhPXNhKCksemE9ZG4mJmRuIT09ImFudCI/ZG46d2EsTGE9KDAsTy51c2VNZW1vKShmdW5jdGlvbigpe3JldHVybigwLHRlLlopKCgwLHRlLlopKCgwLHRlLlopKCgwLHRlLlopKHt9LGRyKSx0ciksenIpLHt9LHtwcmVmaXhDbHM6emEsaWNvblByZWZpeENsczpkYX0pfSxbZHIsdHIsenIsemEsZGFdKTtyZXR1cm4hd3J8fE9iamVjdC5rZXlzKHdyKS5sZW5ndGg9PT0wP0xhOigwLHRlLlopKCgwLHRlLlopKHt9LHdyKSx7fSx7cHJlZml4Q2xzOnphLGljb25QcmVmaXhDbHM6ZGF9KX19LGFyPW5ldyBEO3R5cGVvZiBlLmchPSJ1bmRlZmluZWQiJiYoZS5nLl9fQU5URF9TVFlMRV9DQUNIRV9NQU5BR0VSX0ZPUl9TU1JfXz1hcik7dmFyIGxyPWZ1bmN0aW9uKEtlKXt2YXIgeXQsUHQsQXQsVXQ9KDAsdGUuWikoKDAsdGUuWikoe30sS2UpLHt9LHtrZXk6KHl0PUtlLmtleSkhPT1udWxsJiZ5dCE9PXZvaWQgMD95dDoiemNzcyIsc3BlZWR5OihQdD1LZS5zcGVlZHkpIT09bnVsbCYmUHQhPT12b2lkIDA/UHQ6ITF9KSxkbj0oMCxWLlopKHtrZXk6VXQua2V5LHNwZWVkeTpVdC5zcGVlZHksY29udGFpbmVyOlV0LmNvbnRhaW5lcn0pLGRyPV9lKGRuKSx0cj1RZShkcik7ZG4uY2FjaGU9YXIuYWRkKGRuLmNhY2hlKTt2YXIgenI9KDAsTy5jcmVhdGVDb250ZXh0KShVdC5jdXN0b21Ub2tlbj9VdC5jdXN0b21Ub2tlbjp7fSksd3I9KEF0PVV0LnN0eWxlZCk9PT1udWxsfHxBdD09PXZvaWQgMD92b2lkIDA6QXQuVGhlbWVDb250ZXh0LEJyPSgwLE8uY3JlYXRlQ29udGV4dCkoe0N1c3RvbVRoZW1lQ29udGV4dDp6cixTdHlsZWRUaGVtZUNvbnRleHQ6d3IscHJlZml4Q2xzOlV0PT1udWxsP3ZvaWQgMDpVdC5wcmVmaXhDbHMsaWNvblByZWZpeENsczpVdD09bnVsbD92b2lkIDA6VXQuaWNvblByZWZpeENsc30pLGRhPUZuKHtTdHlsZUVuZ2luZUNvbnRleHQ6QnJ9KSxzYT1OdCh7aGFzaFByaW9yaXR5OlV0Lmhhc2hQcmlvcml0eSx1c2VUaGVtZTpkYSxFbW90aW9uQ29udGV4dDpkcn0pLHdhPWN0KGRhKSx6YT1PZShzYSksTGE9aHIoe3N0eWxlZENvbmZpZzpVdC5zdHlsZWQsU3R5bGVFbmdpbmVDb250ZXh0OkJyLHVzZVRoZW1lOmRhfSk7TGEuZGlzcGxheU5hbWU9IkFudGRTdHlsZVRoZW1lUHJvdmlkZXIiO3ZhciBXYT1vdChkbi5jYWNoZSx7aGFzaFByaW9yaXR5OlV0Lmhhc2hQcmlvcml0eX0pLE9hPVdhLmN4LEphPWRuLmluamVjdEdsb2JhbCx0bz1kbi5rZXlmcmFtZXM7cmV0dXJue2NyZWF0ZVN0eWxlczpzYSxjcmVhdGVHbG9iYWxTdHlsZTp3YSxjcmVhdGVTdHlsaXNoOnphLGNzczpxZSxjeDpPYSxrZXlmcmFtZXM6dG8saW5qZWN0R2xvYmFsOkphLHN0eWxlTWFuYWdlcjpkbix1c2VUaGVtZTpkYSxTdHlsZVByb3ZpZGVyOnRyLFRoZW1lUHJvdmlkZXI6TGF9fSwkbj1scih7a2V5Om1lLHNwZWVkeTohMX0pLHNyPSRuLmNyZWF0ZVN0eWxlcyxGcj0kbi5jcmVhdGVHbG9iYWxTdHlsZSxaZT0kbi5jcmVhdGVTdHlsaXNoLEhlPSRuLmNzcyxudD0kbi5jeCxydD0kbi5rZXlmcmFtZXMsdnQ9JG4uaW5qZWN0R2xvYmFsLFZ0PSRuLnN0eWxlTWFuYWdlcixlbj0kbi5UaGVtZVByb3ZpZGVyLFJuPSRuLlN0eWxlUHJvdmlkZXIsam49JG4udXNlVGhlbWUsYm49ZSg4NzczNSksSG49ZSg3MzkzNSksR3Q9ZSgxMzc2OSksU249ZS5uKEd0KSxPbj1lKDk3ODMpLF9uPWUubihPbiksUGU9ZSg4NTQxOCksZ2U9ZSg5Mzk2NyksdmU9ZS5uKGdlKSxJZT1bIm92ZXJsYXlDbGFzc05hbWUiXSx4ZT1zcihmdW5jdGlvbihNdCl7dmFyIEtlPU10LnRva2VuO3JldHVybntkcm9wZG93bjpfbigpKHt9LCJAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAiLmNvbmNhdChLZS5zY3JlZW5YUywicHgpIikse3dpZHRoOiIxMDAlIn0pfX0pLGF0PWZ1bmN0aW9uKEtlKXt2YXIgeXQ9S2Uub3ZlcmxheUNsYXNzTmFtZSxQdD1TbigpKEtlLEllKSxBdD14ZSgpLFV0PUF0LnN0eWxlcztyZXR1cm4oMCxTLmpzeCkoUGUuWixtKCkoe292ZXJsYXlDbGFzc05hbWU6dmUoKShVdC5kcm9wZG93bix5dCl9LFB0KSl9LGR0PWF0LEV0PWUoNjYwMzQpLEh0PWUoMTY1NjApLGp0PWUoMjU5OTUpLEZ0PWZ1bmN0aW9uKCl7dmFyIEtlPSgwLHgudXNlTW9kZWwpKCJAQGluaXRpYWxTdGF0ZSIpLHl0PUtlLmluaXRpYWxTdGF0ZSxQdD15dHx8e30sQXQ9UHQuY3VycmVudFVzZXI7cmV0dXJuKDAsUy5qc3gpKCJzcGFuIix7Y2xhc3NOYW1lOiJhbnRpY29uIixjaGlsZHJlbjpBdD09bnVsbD92b2lkIDA6QXQubmlja05hbWV9KX0scG49c3IoZnVuY3Rpb24oTXQpe3ZhciBLZT1NdC50b2tlbjtyZXR1cm57YWN0aW9uOntkaXNwbGF5OiJmbGV4IixoZWlnaHQ6IjQ4cHgiLG1hcmdpbkxlZnQ6ImF1dG8iLG92ZXJmbG93OiJoaWRkZW4iLGFsaWduSXRlbXM6ImNlbnRlciIscGFkZGluZzoiMCA4cHgiLGN1cnNvcjoicG9pbnRlciIsYm9yZGVyUmFkaXVzOktlLmJvcmRlclJhZGl1cywiJjpob3ZlciI6e2JhY2tncm91bmRDb2xvcjpLZS5jb2xvckJnVGV4dEhvdmVyfX19fSksY249ZnVuY3Rpb24oS2Upe3ZhciB5dD1LZS5tZW51LFB0PUtlLmNoaWxkcmVuLEF0PWZ1bmN0aW9uKCl7dmFyIHdhPWcoKShoKCkoKS5tYXJrKGZ1bmN0aW9uIHphKCl7dmFyIExhLFdhLE9hLEphLHRvO3JldHVybiBoKCkoKS53cmFwKGZ1bmN0aW9uKGhvKXtmb3IoOzspc3dpdGNoKGhvLnByZXY9aG8ubmV4dCl7Y2FzZSAwOnJldHVybiBoby5uZXh0PTIsKDAsanQua1MpKCk7Y2FzZSAyOigwLEh0LmRQKSgpLCgwLEV0LkFQKShudWxsKSxMYT13aW5kb3cubG9jYXRpb24sV2E9TGEuc2VhcmNoLE9hPUxhLnBhdGhuYW1lLEphPW5ldyBVUkwod2luZG93LmxvY2F0aW9uLmhyZWYpLnNlYXJjaFBhcmFtcyx0bz1KYS5nZXQoInJlZGlyZWN0Iiksd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lIT09Ii91c2VyL2xvZ2luIiYmIXRvJiZ4Lmhpc3RvcnkucmVwbGFjZSh7cGF0aG5hbWU6Ii91c2VyL2xvZ2luIixzZWFyY2g6KDAsYm4uc3RyaW5naWZ5KSh7cmVkaXJlY3Q6T2ErV2F9KX0pO2Nhc2UgODpjYXNlImVuZCI6cmV0dXJuIGhvLnN0b3AoKX19LHphKX0pKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gd2EuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSxVdD1wbigpLGRuPVV0LnN0eWxlcyxkcj0oMCx4LnVzZU1vZGVsKSgiQEBpbml0aWFsU3RhdGUiKSx0cj1kci5pbml0aWFsU3RhdGUsenI9ZHIuc2V0SW5pdGlhbFN0YXRlLHdyPSgwLE8udXNlQ2FsbGJhY2spKGZ1bmN0aW9uKHdhKXt2YXIgemE9d2Eua2V5O2lmKHphPT09ImxvZ291dCIpeygwLEhuLmZsdXNoU3luYykoZnVuY3Rpb24oKXt6cihmdW5jdGlvbihMYSl7cmV0dXJuIG0oKShtKCkoe30sTGEpLHt9LHtjdXJyZW50VXNlcjp2b2lkIDB9KX0pfSksQXQoKTtyZXR1cm59eC5oaXN0b3J5LnB1c2goIi9hY2NvdW50LyIuY29uY2F0KHphKSl9LFt6cl0pLEJyPSgwLFMuanN4KSgic3BhbiIse2NsYXNzTmFtZTpkbi5hY3Rpb24sY2hpbGRyZW46KDAsUy5qc3gpKEouWix7c2l6ZToic21hbGwiLHN0eWxlOnttYXJnaW5MZWZ0OjgsbWFyZ2luUmlnaHQ6OH19KX0pO2lmKCF0cilyZXR1cm4gQnI7dmFyIGRhPXRyLmN1cnJlbnRVc2VyO2lmKCFkYXx8IWRhLm5pY2tOYW1lKXJldHVybiBCcjt2YXIgc2E9W10uY29uY2F0KHooKSh5dD9be2tleToiY2VudGVyIixpY29uOigwLFMuanN4KShHLlose30pLGxhYmVsOiJcdTRFMkFcdTRFQkFcdTRFMkRcdTVGQzMifSx7a2V5OiJzZXR0aW5ncyIsaWNvbjooMCxTLmpzeCkoWS5aLHt9KSxsYWJlbDoiXHU0RTJBXHU0RUJBXHU4QkJFXHU3RjZFIn0se3R5cGU6ImRpdmlkZXIifV06W10pLFt7a2V5OiJsb2dvdXQiLGljb246KDAsUy5qc3gpKGVlLlose30pLGxhYmVsOiJcdTkwMDBcdTUxRkFcdTc2N0JcdTVGNTUifV0pO3JldHVybigwLFMuanN4KShkdCx7bWVudTp7c2VsZWN0ZWRLZXlzOltdLG9uQ2xpY2s6d3IsaXRlbXM6c2F9LGNoaWxkcmVuOlB0fSl9LG9yPWUoMjkxNTgpLFRuPWUoNzQxNjUpLHpuPWUoMTU4NjEpLHJuPWUoOTc5MzcpLEt0PWUoNTYwMyksenQ9ZSg1NzEzMiksT3Q9ZSgxMjA0NCksbG49ZSg5MjIxMCksRW49ZSgxOTc3KSxHbj1lKDczMTc3KSxwcj1lKDQ1MDk1KSxQcj1lKDY3MTU5KSxicj1lKDg1MjY1KSxNcj1lKDk2MDc0KSwkcj1lKDI0ODcpLEdyPWUoNzIyNjkpLG9hPWUoMzg5MjUpLHJhPWUoODM2MjIpLE1hPWUoMjE3NzApLGZhPWUoOTg0MjMpLGhhPWUoMTQxOTIpLGVhPWUoNTI2NzYpLE5hPWUoNjI4MTIpLGJhPWUoNjM2MDYpLEFyPWUoODMwNjIpLFJyPWZ1bmN0aW9uKEtlKXt2YXIgeXQ9S2UudmFsdWUsUHQ9S2UuY29uZmlnVHlwZSxBdD1LZS5vbkNoYW5nZSxVdD1LZS5saXN0LGRuPUtlLnByZWZpeENscyxkcj1LZS5oYXNoSWQsdHI9IiIuY29uY2F0KGRuLCItYmxvY2stY2hlY2tib3giKSx6cj0oMCxPLnVzZU1lbW8pKGZ1bmN0aW9uKCl7dmFyIHdyPShVdHx8W10pLm1hcChmdW5jdGlvbihCcil7cmV0dXJuKDAsUy5qc3gpKEFyLlose3RpdGxlOkJyLnRpdGxlLGNoaWxkcmVuOigwLFMuanN4cykoImRpdiIse2NsYXNzTmFtZTp2ZSgpKGRyLCIiLmNvbmNhdCh0ciwiLWl0ZW0iKSwiIi5jb25jYXQodHIsIi1pdGVtLSIpLmNvbmNhdChCci5rZXkpLCIiLmNvbmNhdCh0ciwiLSIpLmNvbmNhdChQdCwiLWl0ZW0iKSksb25DbGljazpmdW5jdGlvbigpe3JldHVybiBBdChCci5rZXkpfSxjaGlsZHJlbjpbKDAsUy5qc3gpKGJhLlose2NsYXNzTmFtZToiIi5jb25jYXQodHIsIi1zZWxlY3RJY29uICIpLmNvbmNhdChkcikudHJpbSgpLHN0eWxlOntkaXNwbGF5Onl0PT09QnIua2V5PyJibG9jayI6Im5vbmUifX0pLEJyIT1udWxsJiZCci5pY29uPygwLFMuanN4KSgiZGl2Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdCh0ciwiLWljb24gIikuY29uY2F0KGRyKS50cmltKCksY2hpbGRyZW46QnIuaWNvbn0pOm51bGxdfSl9LEJyLmtleSl9KTtyZXR1cm4gd3J9LFt5dCxVdD09bnVsbD92b2lkIDA6VXQubGVuZ3RoLEF0XSk7cmV0dXJuKDAsUy5qc3gpKCJkaXYiLHtjbGFzc05hbWU6dmUoKSh0cixkciksY2hpbGRyZW46enJ9KX0sbXI9ZSgzNDA0MSksSXI9ZnVuY3Rpb24oS2Upe3ZhciB5dD1PLmNsb25lRWxlbWVudChLZS5hY3Rpb24se2Rpc2FibGVkOktlLmRpc2FibGVkfSk7cmV0dXJuKDAsUy5qc3gpKEFyLlose3RpdGxlOktlLmRpc2FibGVkP0tlLmRpc2FibGVkUmVhc29uOiIiLHBsYWNlbWVudDoibGVmdCIsY2hpbGRyZW46KDAsUy5qc3gpKCRyLlouSXRlbSx7YWN0aW9uczpbeXRdLGNoaWxkcmVuOigwLFMuanN4KSgic3BhbiIse3N0eWxlOntvcGFjaXR5OktlLmRpc2FibGVkPy41OjF9LGNoaWxkcmVuOktlLnRpdGxlfSl9KX0pfSxIcj1mdW5jdGlvbihLZSl7dmFyIHl0PUtlLnNldHRpbmdzLFB0PUtlLnByZWZpeENscyxBdD1LZS5jaGFuZ2VTZXR0aW5nLFV0PUtlLmhhc2hJZCxkbj1ubygpLGRyPXl0fHxoYS5oLHRyPWRyLmNvbnRlbnRXaWR0aCx6cj1kci5zcGxpdE1lbnVzLHdyPWRyLmZpeGVkSGVhZGVyLEJyPWRyLmxheW91dCxkYT1kci5maXhTaWRlcmJhcjtyZXR1cm4oMCxTLmpzeCkoJHIuWix7Y2xhc3NOYW1lOiIiLmNvbmNhdChQdCwiLWxpc3QgIikuY29uY2F0KFV0KS50cmltKCksc3BsaXQ6ITEsZGF0YVNvdXJjZTpbe3RpdGxlOmRuKHtpZDoiYXBwLnNldHRpbmcuY29udGVudC13aWR0aCIsZGVmYXVsdE1lc3NhZ2U6IkNvbnRlbnQgV2lkdGgifSksYWN0aW9uOigwLFMuanN4cykobXIuWix7dmFsdWU6dHJ8fCJGaXhlZCIsc2l6ZToic21hbGwiLGNsYXNzTmFtZToiY29udGVudC13aWR0aCAiLmNvbmNhdChVdCkudHJpbSgpLG9uU2VsZWN0OmZ1bmN0aW9uKHdhKXtBdCgiY29udGVudFdpZHRoIix3YSl9LHN0eWxlOnt3aWR0aDo4MH0sY2hpbGRyZW46W0JyPT09InNpZGUiP251bGw6KDAsUy5qc3gpKG1yLlouT3B0aW9uLHt2YWx1ZToiRml4ZWQiLGNoaWxkcmVuOmRuKHtpZDoiYXBwLnNldHRpbmcuY29udGVudC13aWR0aC5maXhlZCIsZGVmYXVsdE1lc3NhZ2U6IkZpeGVkIn0pfSksKDAsUy5qc3gpKG1yLlouT3B0aW9uLHt2YWx1ZToiRmx1aWQiLGNoaWxkcmVuOmRuKHtpZDoiYXBwLnNldHRpbmcuY29udGVudC13aWR0aC5mbHVpZCIsZGVmYXVsdE1lc3NhZ2U6IkZsdWlkIn0pfSldfSl9LHt0aXRsZTpkbih7aWQ6ImFwcC5zZXR0aW5nLmZpeGVkaGVhZGVyIixkZWZhdWx0TWVzc2FnZToiRml4ZWQgSGVhZGVyIn0pLGFjdGlvbjooMCxTLmpzeCkoR3IuWix7c2l6ZToic21hbGwiLGNsYXNzTmFtZToiZml4ZWQtaGVhZGVyIixjaGVja2VkOiEhd3Isb25DaGFuZ2U6ZnVuY3Rpb24od2Epe0F0KCJmaXhlZEhlYWRlciIsd2EpfX0pfSx7dGl0bGU6ZG4oe2lkOiJhcHAuc2V0dGluZy5maXhlZHNpZGViYXIiLGRlZmF1bHRNZXNzYWdlOiJGaXhlZCBTaWRlYmFyIn0pLGRpc2FibGVkOkJyPT09InRvcCIsZGlzYWJsZWRSZWFzb246ZG4oe2lkOiJhcHAuc2V0dGluZy5maXhlZHNpZGViYXIuaGludCIsZGVmYXVsdE1lc3NhZ2U6IldvcmtzIG9uIFNpZGUgTWVudSBMYXlvdXQifSksYWN0aW9uOigwLFMuanN4KShHci5aLHtzaXplOiJzbWFsbCIsY2xhc3NOYW1lOiJmaXgtc2lkZXJiYXIiLGNoZWNrZWQ6ISFkYSxvbkNoYW5nZTpmdW5jdGlvbih3YSl7cmV0dXJuIEF0KCJmaXhTaWRlcmJhciIsd2EpfX0pfSx7dGl0bGU6ZG4oe2lkOiJhcHAuc2V0dGluZy5zcGxpdE1lbnVzIn0pLGRpc2FibGVkOkJyIT09Im1peCIsYWN0aW9uOigwLFMuanN4KShHci5aLHtzaXplOiJzbWFsbCIsY2hlY2tlZDohIXpyLGNsYXNzTmFtZToic3BsaXQtbWVudXMiLG9uQ2hhbmdlOmZ1bmN0aW9uKHdhKXtBdCgic3BsaXRNZW51cyIsd2EpfX0pfV0scmVuZGVySXRlbTpJcn0pfSxKcj1mdW5jdGlvbihLZSl7dmFyIHl0PUtlLnNldHRpbmdzLFB0PUtlLnByZWZpeENscyxBdD1LZS5jaGFuZ2VTZXR0aW5nLFV0PUtlLmhhc2hJZCxkbj1ubygpLGRyPVsiaGVhZGVyIiwiZm9vdGVyIiwibWVudSIsIm1lbnVIZWFkZXIiXTtyZXR1cm4oMCxTLmpzeCkoJHIuWix7Y2xhc3NOYW1lOiIiLmNvbmNhdChQdCwiLWxpc3QgIikuY29uY2F0KFV0KS50cmltKCksc3BsaXQ6ITEscmVuZGVySXRlbTpJcixkYXRhU291cmNlOmRyLm1hcChmdW5jdGlvbih0cil7cmV0dXJue3RpdGxlOmRuKHtpZDoiYXBwLnNldHRpbmcucmVnaW9uYWxzZXR0aW5ncy4iLmNvbmNhdCh0cil9KSxhY3Rpb246KDAsUy5qc3gpKEdyLlose3NpemU6InNtYWxsIixjbGFzc05hbWU6InJlZ2lvbmFsLSIuY29uY2F0KHRyLCIgIikuY29uY2F0KFV0KS50cmltKCksY2hlY2tlZDp5dFsiIi5jb25jYXQodHIsIlJlbmRlciIpXXx8eXRbIiIuY29uY2F0KHRyLCJSZW5kZXIiKV09PT12b2lkIDAsb25DaGFuZ2U6ZnVuY3Rpb24od3Ipe3JldHVybiBBdCgiIi5jb25jYXQodHIsIlJlbmRlciIpLHdyPT09ITA/dm9pZCAwOiExKX19KX19KX0pfSxUYT1bImNvbG9yIiwiY2hlY2siXSxqYT1PLmZvcndhcmRSZWYoZnVuY3Rpb24oTXQsS2Upe3ZhciB5dD1NdC5jb2xvcixQdD1NdC5jaGVjayxBdD0oMCxHZS5aKShNdCxUYSk7cmV0dXJuKDAsUy5qc3gpKCJkaXYiLCgwLHRlLlopKCgwLHRlLlopKHt9LEF0KSx7fSx7c3R5bGU6e2JhY2tncm91bmRDb2xvcjp5dH0scmVmOktlLGNoaWxkcmVuOlB0PygwLFMuanN4KShiYS5aLHt9KToiIn0pKX0pLCRhPWZ1bmN0aW9uKEtlKXt2YXIgeXQ9S2UudmFsdWUsUHQ9S2UuY29sb3JMaXN0LEF0PUtlLm9uQ2hhbmdlLFV0PUtlLnByZWZpeENscyxkbj1LZS5mb3JtYXRNZXNzYWdlLGRyPUtlLmhhc2hJZDtpZighUHR8fChQdD09bnVsbD92b2lkIDA6UHQubGVuZ3RoKTwxKXJldHVybiBudWxsO3ZhciB0cj0iIi5jb25jYXQoVXQsIi10aGVtZS1jb2xvciIpO3JldHVybigwLFMuanN4KSgiZGl2Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdCh0ciwiICIpLmNvbmNhdChkcikudHJpbSgpLGNoaWxkcmVuOlB0PT1udWxsP3ZvaWQgMDpQdC5tYXAoZnVuY3Rpb24oenIpe3ZhciB3cj16ci5rZXksQnI9enIuY29sb3IsZGE9enIudGl0bGU7cmV0dXJuIHdyPygwLFMuanN4KShBci5aLHt0aXRsZTpkYSE9bnVsbD9kYTpkbih7aWQ6ImFwcC5zZXR0aW5nLnRoZW1lY29sb3IuIi5jb25jYXQod3IpfSksY2hpbGRyZW46KDAsUy5qc3gpKGphLHtjbGFzc05hbWU6IiIuY29uY2F0KHRyLCItYmxvY2sgIikuY29uY2F0KGRyKS50cmltKCksY29sb3I6QnIsY2hlY2s6eXQ9PT1CcixvbkNsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIEF0JiZBdChCcil9fSl9LEJyKTpudWxsfSl9KX07ZnVuY3Rpb24geXIoKXtyZXR1cm4oMCxTLmpzeHMpKCJzdmciLHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHhtbG5zWGxpbms6Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLHdpZHRoOiIxZW0iLGhlaWdodDoiMWVtIix2aWV3Qm94OiIwIDAgMTA0IDEwNCIsY2hpbGRyZW46WygwLFMuanN4cykoImRlZnMiLHtjaGlsZHJlbjpbKDAsUy5qc3gpKCJyZWN0Iix7aWQ6InBhdGgtMSIsd2lkdGg6IjkwIixoZWlnaHQ6IjcyIix4OiIwIix5OiIwIixyeDoiMTAifSksKDAsUy5qc3hzKSgiZmlsdGVyIix7aWQ6ImZpbHRlci0yIix3aWR0aDoiMTUyLjIlIixoZWlnaHQ6IjE2NS4zJSIseDoiLTI2LjElIix5OiItMjcuMSUiLGZpbHRlclVuaXRzOiJvYmplY3RCb3VuZGluZ0JveCIsY2hpbGRyZW46WygwLFMuanN4KSgiZmVNb3JwaG9sb2d5Iix7aW46IlNvdXJjZUFscGhhIixyYWRpdXM6IjAuMjUiLHJlc3VsdDoic2hhZG93U3ByZWFkT3V0ZXIxIn0pLCgwLFMuanN4KSgiZmVPZmZzZXQiLHtkeToiMSIsaW46InNoYWRvd1NwcmVhZE91dGVyMSIscmVzdWx0OiJzaGFkb3dPZmZzZXRPdXRlcjEifSksKDAsUy5qc3gpKCJmZUdhdXNzaWFuQmx1ciIse2luOiJzaGFkb3dPZmZzZXRPdXRlcjEiLHJlc3VsdDoic2hhZG93Qmx1ck91dGVyMSIsc3RkRGV2aWF0aW9uOiIxIn0pLCgwLFMuanN4KSgiZmVDb2xvck1hdHJpeCIse2luOiJzaGFkb3dCbHVyT3V0ZXIxIixyZXN1bHQ6InNoYWRvd01hdHJpeE91dGVyMSIsdmFsdWVzOiIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwLjA4IDAifSksKDAsUy5qc3gpKCJmZU1vcnBob2xvZ3kiLHtpbjoiU291cmNlQWxwaGEiLHJhZGl1czoiMSIscmVzdWx0OiJzaGFkb3dTcHJlYWRPdXRlcjIifSksKDAsUy5qc3gpKCJmZU9mZnNldCIse2R5OiIyIixpbjoic2hhZG93U3ByZWFkT3V0ZXIyIixyZXN1bHQ6InNoYWRvd09mZnNldE91dGVyMiJ9KSwoMCxTLmpzeCkoImZlR2F1c3NpYW5CbHVyIix7aW46InNoYWRvd09mZnNldE91dGVyMiIscmVzdWx0OiJzaGFkb3dCbHVyT3V0ZXIyIixzdGREZXZpYXRpb246IjQifSksKDAsUy5qc3gpKCJmZUNvbG9yTWF0cml4Iix7aW46InNoYWRvd0JsdXJPdXRlcjIiLHJlc3VsdDoic2hhZG93TWF0cml4T3V0ZXIyIix2YWx1ZXM6IjAgMCAwIDAgMC4wOTg0NjY3MzUgMCAwIDAgMCAwLjA1OTk2OTU0MDMgMCAwIDAgMCAwLjA1OTk2OTU0MDMgMCAwIDAgMC4wNyAwIn0pLCgwLFMuanN4KSgiZmVNb3JwaG9sb2d5Iix7aW46IlNvdXJjZUFscGhhIixyYWRpdXM6IjIiLHJlc3VsdDoic2hhZG93U3ByZWFkT3V0ZXIzIn0pLCgwLFMuanN4KSgiZmVPZmZzZXQiLHtkeToiNCIsaW46InNoYWRvd1NwcmVhZE91dGVyMyIscmVzdWx0OiJzaGFkb3dPZmZzZXRPdXRlcjMifSksKDAsUy5qc3gpKCJmZUdhdXNzaWFuQmx1ciIse2luOiJzaGFkb3dPZmZzZXRPdXRlcjMiLHJlc3VsdDoic2hhZG93Qmx1ck91dGVyMyIsc3RkRGV2aWF0aW9uOiI4In0pLCgwLFMuanN4KSgiZmVDb2xvck1hdHJpeCIse2luOiJzaGFkb3dCbHVyT3V0ZXIzIixyZXN1bHQ6InNoYWRvd01hdHJpeE91dGVyMyIsdmFsdWVzOiIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwLjA1IDAifSksKDAsUy5qc3hzKSgiZmVNZXJnZSIse2NoaWxkcmVuOlsoMCxTLmpzeCkoImZlTWVyZ2VOb2RlIix7aW46InNoYWRvd01hdHJpeE91dGVyMSJ9KSwoMCxTLmpzeCkoImZlTWVyZ2VOb2RlIix7aW46InNoYWRvd01hdHJpeE91dGVyMiJ9KSwoMCxTLmpzeCkoImZlTWVyZ2VOb2RlIix7aW46InNoYWRvd01hdHJpeE91dGVyMyJ9KV19KV19KV19KSwoMCxTLmpzeHMpKCJnIix7ZmlsbDoibm9uZSIsZmlsbFJ1bGU6ImV2ZW5vZGQiLHN0cm9rZToibm9uZSIsc3Ryb2tlV2lkdGg6IjEiLGNoaWxkcmVuOlsoMCxTLmpzeHMpKCJnIix7Y2hpbGRyZW46WygwLFMuanN4KSgidXNlIix7ZmlsbDoiIzAwMCIsZmlsdGVyOiJ1cmwoI2ZpbHRlci0yKSIseGxpbmtIcmVmOiIjcGF0aC0xIn0pLCgwLFMuanN4KSgidXNlIix7ZmlsbDoiI0YwRjJGNSIseGxpbmtIcmVmOiIjcGF0aC0xIn0pXX0pLCgwLFMuanN4KSgicGF0aCIse2ZpbGw6IiNGRkYiLGQ6Ik0yNSAxNWg2NXY0N2MwIDUuNTIzLTQuNDc3IDEwLTEwIDEwSDI1VjE1eiJ9KSwoMCxTLmpzeCkoInBhdGgiLHtzdHJva2U6IiNFNkVBRjAiLHN0cm9rZUxpbmVjYXA6InNxdWFyZSIsZDoiTTAuNSAxNS41TDkwLjUgMTUuNSJ9KSwoMCxTLmpzeCkoInJlY3QiLHt3aWR0aDoiMTQiLGhlaWdodDoiMyIseDoiNCIseToiMjYiLGZpbGw6IiNEN0RERTYiLHJ4OiIxLjUifSksKDAsUy5qc3gpKCJyZWN0Iix7d2lkdGg6IjkiLGhlaWdodDoiMyIseDoiNCIseToiMzIiLGZpbGw6IiNEN0RERTYiLHJ4OiIxLjUifSksKDAsUy5qc3gpKCJyZWN0Iix7d2lkdGg6IjkiLGhlaWdodDoiMyIseDoiNCIseToiNDIiLGZpbGw6IiNFNkVBRjAiLHJ4OiIxLjUifSksKDAsUy5qc3gpKCJyZWN0Iix7d2lkdGg6IjkiLGhlaWdodDoiMyIseDoiNCIseToiMjEiLGZpbGw6IiNFNkVBRjAiLHJ4OiIxLjUifSksKDAsUy5qc3gpKCJyZWN0Iix7d2lkdGg6IjkiLGhlaWdodDoiMyIseDoiNCIseToiNTMiLGZpbGw6IiNEN0RERTYiLHJ4OiIxLjUifSksKDAsUy5qc3gpKCJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjMiLHg6IjQiLHk6IjQ3IixmaWxsOiIjRDdEREU2IixyeDoiMS41In0pLCgwLFMuanN4KSgicGF0aCIse3N0cm9rZToiI0U2RUFGMCIsc3Ryb2tlTGluZWNhcDoic3F1YXJlIixkOiJNMjUuNSAxNS41TDI1LjUgNzIuNSJ9KV19KV19KX1mdW5jdGlvbiBWcigpe3JldHVybigwLFMuanN4cykoInN2ZyIse3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIseG1sbnNYbGluazoiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIsd2lkdGg6IjFlbSIsaGVpZ2h0OiIxZW0iLHZpZXdCb3g6IjAgMCAxMDQgMTA0IixjaGlsZHJlbjpbKDAsUy5qc3hzKSgiZGVmcyIse2NoaWxkcmVuOlsoMCxTLmpzeCkoInJlY3QiLHtpZDoicGF0aC0xIix3aWR0aDoiOTAiLGhlaWdodDoiNzIiLHg6IjAiLHk6IjAiLHJ4OiIxMCJ9KSwoMCxTLmpzeHMpKCJmaWx0ZXIiLHtpZDoiZmlsdGVyLTIiLHdpZHRoOiIxNTIuMiUiLGhlaWdodDoiMTY1LjMlIix4OiItMjYuMSUiLHk6Ii0yNy4xJSIsZmlsdGVyVW5pdHM6Im9iamVjdEJvdW5kaW5nQm94IixjaGlsZHJlbjpbKDAsUy5qc3gpKCJmZU1vcnBob2xvZ3kiLHtpbjoiU291cmNlQWxwaGEiLHJhZGl1czoiMC4yNSIscmVzdWx0OiJzaGFkb3dTcHJlYWRPdXRlcjEifSksKDAsUy5qc3gpKCJmZU9mZnNldCIse2R5OiIxIixpbjoic2hhZG93U3ByZWFkT3V0ZXIxIixyZXN1bHQ6InNoYWRvd09mZnNldE91dGVyMSJ9KSwoMCxTLmpzeCkoImZlR2F1c3NpYW5CbHVyIix7aW46InNoYWRvd09mZnNldE91dGVyMSIscmVzdWx0OiJzaGFkb3dCbHVyT3V0ZXIxIixzdGREZXZpYXRpb246IjEifSksKDAsUy5qc3gpKCJmZUNvbG9yTWF0cml4Iix7aW46InNoYWRvd0JsdXJPdXRlcjEiLHJlc3VsdDoic2hhZG93TWF0cml4T3V0ZXIxIix2YWx1ZXM6IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAuMDggMCJ9KSwoMCxTLmpzeCkoImZlTW9ycGhvbG9neSIse2luOiJTb3VyY2VBbHBoYSIscmFkaXVzOiIxIixyZXN1bHQ6InNoYWRvd1NwcmVhZE91dGVyMiJ9KSwoMCxTLmpzeCkoImZlT2Zmc2V0Iix7ZHk6IjIiLGluOiJzaGFkb3dTcHJlYWRPdXRlcjIiLHJlc3VsdDoic2hhZG93T2Zmc2V0T3V0ZXIyIn0pLCgwLFMuanN4KSgiZmVHYXVzc2lhbkJsdXIiLHtpbjoic2hhZG93T2Zmc2V0T3V0ZXIyIixyZXN1bHQ6InNoYWRvd0JsdXJPdXRlcjIiLHN0ZERldmlhdGlvbjoiNCJ9KSwoMCxTLmpzeCkoImZlQ29sb3JNYXRyaXgiLHtpbjoic2hhZG93Qmx1ck91dGVyMiIscmVzdWx0OiJzaGFkb3dNYXRyaXhPdXRlcjIiLHZhbHVlczoiMCAwIDAgMCAwLjA5ODQ2NjczNSAwIDAgMCAwIDAuMDU5OTY5NTQwMyAwIDAgMCAwIDAuMDU5OTY5NTQwMyAwIDAgMCAwLjA3IDAifSksKDAsUy5qc3gpKCJmZU1vcnBob2xvZ3kiLHtpbjoiU291cmNlQWxwaGEiLHJhZGl1czoiMiIscmVzdWx0OiJzaGFkb3dTcHJlYWRPdXRlcjMifSksKDAsUy5qc3gpKCJmZU9mZnNldCIse2R5OiI0Iixpbjoic2hhZG93U3ByZWFkT3V0ZXIzIixyZXN1bHQ6InNoYWRvd09mZnNldE91dGVyMyJ9KSwoMCxTLmpzeCkoImZlR2F1c3NpYW5CbHVyIix7aW46InNoYWRvd09mZnNldE91dGVyMyIscmVzdWx0OiJzaGFkb3dCbHVyT3V0ZXIzIixzdGREZXZpYXRpb246IjgifSksKDAsUy5qc3gpKCJmZUNvbG9yTWF0cml4Iix7aW46InNoYWRvd0JsdXJPdXRlcjMiLHJlc3VsdDoic2hhZG93TWF0cml4T3V0ZXIzIix2YWx1ZXM6IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAuMDUgMCJ9KSwoMCxTLmpzeHMpKCJmZU1lcmdlIix7Y2hpbGRyZW46WygwLFMuanN4KSgiZmVNZXJnZU5vZGUiLHtpbjoic2hhZG93TWF0cml4T3V0ZXIxIn0pLCgwLFMuanN4KSgiZmVNZXJnZU5vZGUiLHtpbjoic2hhZG93TWF0cml4T3V0ZXIyIn0pLCgwLFMuanN4KSgiZmVNZXJnZU5vZGUiLHtpbjoic2hhZG93TWF0cml4T3V0ZXIzIn0pXX0pXX0pXX0pLCgwLFMuanN4cykoImciLHtmaWxsOiJub25lIixmaWxsUnVsZToiZXZlbm9kZCIsc3Ryb2tlOiJub25lIixzdHJva2VXaWR0aDoiMSIsY2hpbGRyZW46WygwLFMuanN4cykoImciLHtjaGlsZHJlbjpbKDAsUy5qc3gpKCJ1c2UiLHtmaWxsOiIjMDAwIixmaWx0ZXI6InVybCgjZmlsdGVyLTIpIix4bGlua0hyZWY6IiNwYXRoLTEifSksKDAsUy5qc3gpKCJ1c2UiLHtmaWxsOiIjRjBGMkY1Iix4bGlua0hyZWY6IiNwYXRoLTEifSldfSksKDAsUy5qc3gpKCJwYXRoIix7ZmlsbDoiI0ZGRiIsZDoiTTI2IDBoNTVjNS41MjMgMCAxMCA0LjQ3NyAxMCAxMHY4SDI2VjB6In0pLCgwLFMuanN4KSgicGF0aCIse2ZpbGw6IiMwMDE1MjkiLGQ6Ik0xMCAwaDE5djcySDEwQzQuNDc3IDcyIDAgNjcuNTIzIDAgNjJWMTBDMCA0LjQ3NyA0LjQ3NyAwIDEwIDB6In0pLCgwLFMuanN4KSgicmVjdCIse3dpZHRoOiIxNCIsaGVpZ2h0OiIzIix4OiI1Iix5OiIxOCIsZmlsbDoiI0Q3RERFNiIsb3BhY2l0eToiMC4yIixyeDoiMS41In0pLCgwLFMuanN4KSgicmVjdCIse3dpZHRoOiIxNCIsaGVpZ2h0OiIzIix4OiI1Iix5OiI0MiIsZmlsbDoiI0Q3RERFNiIsb3BhY2l0eToiMC4yIixyeDoiMS41In0pLCgwLFMuanN4KSgicmVjdCIse3dpZHRoOiI5IixoZWlnaHQ6IjMiLHg6IjkiLHk6IjI0IixmaWxsOiIjRDdEREU2IixvcGFjaXR5OiIwLjIiLHJ4OiIxLjUifSksKDAsUy5qc3gpKCJyZWN0Iix7d2lkdGg6IjkiLGhlaWdodDoiMyIseDoiOSIseToiNDgiLGZpbGw6IiNEN0RERTYiLG9wYWNpdHk6IjAuMiIscng6IjEuNSJ9KSwoMCxTLmpzeCkoInJlY3QiLHt3aWR0aDoiOSIsaGVpZ2h0OiIzIix4OiI5Iix5OiIzNiIsZmlsbDoiI0Q3RERFNiIsb3BhY2l0eToiMC4yIixyeDoiMS41In0pLCgwLFMuanN4KSgicmVjdCIse3dpZHRoOiIxNCIsaGVpZ2h0OiIzIix4OiI5Iix5OiIzMCIsZmlsbDoiI0Q3RERFNiIsb3BhY2l0eToiMC4yIixyeDoiMS41In0pLCgwLFMuanN4KSgicmVjdCIse3dpZHRoOiIxNCIsaGVpZ2h0OiIzIix4OiI5Iix5OiI1NCIsZmlsbDoiI0Q3RERFNiIsb3BhY2l0eToiMC4yIixyeDoiMS41In0pXX0pXX0pfXZhciBTYT1lKDY0ODQ3KSxGYT1mdW5jdGlvbihLZSl7cmV0dXJuKDAsVy5aKSgoMCxXLlopKHt9LCIiLmNvbmNhdChLZS5jb21wb25lbnRDbHMsIi1oYW5kbGUiKSx7cG9zaXRpb246ImZpeGVkIixpbnNldEJsb2NrU3RhcnQ6IjI0MHB4IixpbnNldElubGluZUVuZDoiMHB4Iix6SW5kZXg6MCxkaXNwbGF5OiJmbGV4IixhbGlnbkl0ZW1zOiJjZW50ZXIiLGp1c3RpZnlDb250ZW50OiJjZW50ZXIiLHdpZHRoOiI0OHB4IixoZWlnaHQ6IjQ4cHgiLGZvbnRTaXplOiIxNnB4Iix0ZXh0QWxpZ246ImNlbnRlciIsYmFja2dyb3VuZENvbG9yOktlLmNvbG9yUHJpbWFyeSxib3JkZXJFbmRTdGFydFJhZGl1czpLZS5ib3JkZXJSYWRpdXNMRyxib3JkZXJTdGFydFN0YXJ0UmFkaXVzOktlLmJvcmRlclJhZGl1c0xHLCItd2Via2l0LWJhY2tkcm9waWx0ZXIiOiJzYXR1cmF0ZSgxODAlKSBibHVyKDIwcHgpIixiYWNrZHJvcEZpbHRlcjoic2F0dXJhdGUoMTgwJSkgYmx1cigyMHB4KSIsY3Vyc29yOiJwb2ludGVyIixwb2ludGVyRXZlbnRzOiJhdXRvIn0pLEtlLmNvbXBvbmVudENscyx7IiYtY29udGVudCI6e3Bvc2l0aW9uOiJyZWxhdGl2ZSIsbWluSGVpZ2h0OiIxMDAlIixjb2xvcjpLZS5jb2xvclRleHR9LCImLWJvZHktdGl0bGUiOnttYXJnaW5CbG9jazpLZS5tYXJnaW5YUyxmb250U2l6ZToiMTRweCIsbGluZUhlaWdodDoiMjJweCIsY29sb3I6S2UuY29sb3JUZXh0SGVhZGluZ30sIiYtYmxvY2stY2hlY2tib3giOntkaXNwbGF5OiJmbGV4IixtaW5IZWlnaHQ6NDIsZ2FwOktlLm1hcmdpblNNLCImICYtaXRlbSI6e3Bvc2l0aW9uOiJyZWxhdGl2ZSIsd2lkdGg6IjQ0cHgiLGhlaWdodDoiMzZweCIsb3ZlcmZsb3c6ImhpZGRlbiIsYm9yZGVyUmFkaXVzOiI0cHgiLGJveFNoYWRvdzpLZS5ib3hTaGFkb3csY3Vyc29yOiJwb2ludGVyIixmb250U2l6ZTo1NixsaW5lSGVpZ2h0OiI1NnB4IiwiJjo6YmVmb3JlIjp7cG9zaXRpb246ImFic29sdXRlIixpbnNldEJsb2NrU3RhcnQ6MCxpbnNldElubGluZVN0YXJ0OjAsd2lkdGg6IjMzJSIsaGVpZ2h0OiIxMDAlIixjb250ZW50OiInJyJ9LCImOjphZnRlciI6e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsaW5zZXRCbG9ja1N0YXJ0OjAsaW5zZXRJbmxpbmVTdGFydDowLHdpZHRoOiIxMDAlIixoZWlnaHQ6IjI1JSIsY29udGVudDoiJycifSwiJi1yZWFsRGFyayI6e2JhY2tncm91bmRDb2xvcjoicmdiYSgwLCAyMSwgNDEsIDAuODUpIiwiJjo6YmVmb3JlIjp7YmFja2dyb3VuZENvbG9yOiJyZ2JhKDAsIDAsIDAsIDAuNjUpIn0sIiY6OmFmdGVyIjp7YmFja2dyb3VuZENvbG9yOiJyZ2JhKDAsIDAsIDAsIDAuODUpIn19LCImLWxpZ2h0Ijp7YmFja2dyb3VuZENvbG9yOiIjZmZmIiwiJjo6YmVmb3JlIjp7YmFja2dyb3VuZENvbG9yOiIjZmZmIn0sIiY6OmFmdGVyIjp7YmFja2dyb3VuZENvbG9yOiIjZmZmIn19LCImLWRhcmssJi1zaWRlIjp7YmFja2dyb3VuZENvbG9yOktlLmNvbG9yQmdFbGV2YXRlZCwiJjo6YmVmb3JlIjp7ekluZGV4OiIxIixiYWNrZ3JvdW5kQ29sb3I6IiMwMDE1MjkifSwiJjo6YWZ0ZXIiOntiYWNrZ3JvdW5kQ29sb3I6S2UuY29sb3JCZ0NvbnRhaW5lcn19LCImLXRvcCI6e2JhY2tncm91bmRDb2xvcjpLZS5jb2xvckJnRWxldmF0ZWQsIiY6OmJlZm9yZSI6e2JhY2tncm91bmRDb2xvcjoidHJhbnNwYXJlbnQifSwiJjo6YWZ0ZXIiOntiYWNrZ3JvdW5kQ29sb3I6IiMwMDE1MjkifX0sIiYtbWl4Ijp7YmFja2dyb3VuZENvbG9yOktlLmNvbG9yQmdFbGV2YXRlZCwiJjo6YmVmb3JlIjp7YmFja2dyb3VuZENvbG9yOktlLmNvbG9yQmdDb250YWluZXJ9LCImOjphZnRlciI6e2JhY2tncm91bmRDb2xvcjoiIzAwMTUyOSJ9fX0sIiYgJi1zZWxlY3RJY29uIjp7cG9zaXRpb246ImFic29sdXRlIixpbnNldElubGluZUVuZDoiNnB4Iixib3R0b206IjRweCIsY29sb3I6S2UuY29sb3JQcmltYXJ5LGZvbnRXZWlnaHQ6ImJvbGQiLGZvbnRTaXplOiIxNHB4Iixwb2ludGVyRXZlbnRzOiJub25lIiwiLmFjdGlvbiI6e2NvbG9yOktlLmNvbG9yUHJpbWFyeX19LCImICYtaWNvbiI6e2ZvbnRTaXplOjU2LGxpbmVIZWlnaHQ6IjU2cHgifX0sIiYtdGhlbWUtY29sb3IiOnttYXJnaW5CbG9ja1N0YXJ0OiIxNnB4IixvdmVyZmxvdzoiaGlkZGVuIiwiJiAmLWJsb2NrIjp7ZmxvYXQ6ImxlZnQiLHdpZHRoOiIyMHB4IixoZWlnaHQ6IjIwcHgiLG1hcmdpbkJsb2NrU3RhcnQ6OCxtYXJnaW5JbmxpbmVFbmQ6OCxjb2xvcjoiI2ZmZiIsZm9udFdlaWdodDoiYm9sZCIsdGV4dEFsaWduOiJjZW50ZXIiLGJvcmRlclJhZGl1czoiMnB4IixjdXJzb3I6InBvaW50ZXIifX0sIiYtbGlzdCI6KDAsVy5aKSh7fSwibGkiLmNvbmNhdChLZS5hbnRDbHMsIi1saXN0LWl0ZW0iKSx7cGFkZGluZ0lubGluZTowLHBhZGRpbmdCbG9jazo4fSl9KX07ZnVuY3Rpb24gUmEoTXQpe3JldHVybigwLFNhLlhqKSgiUHJvTGF5b3V0U2V0dGluZ0RyYXdlciIsZnVuY3Rpb24oS2Upe3ZhciB5dD0oMCx0ZS5aKSgoMCx0ZS5aKSh7fSxLZSkse30se2NvbXBvbmVudENsczoiLiIuY29uY2F0KE10KX0pO3JldHVybltGYSh5dCldfSl9dmFyIHJvPWZ1bmN0aW9uKEtlKXt2YXIgeXQ9S2UuY2hpbGRyZW4sUHQ9S2UuaGFzaElkLEF0PUtlLnByZWZpeENscyxVdD1LZS50aXRsZTtyZXR1cm4oMCxTLmpzeHMpKCJkaXYiLHtzdHlsZTp7bWFyZ2luQmxvY2tFbmQ6MTJ9LGNoaWxkcmVuOlsoMCxTLmpzeCkoImgzIix7Y2xhc3NOYW1lOiIiLmNvbmNhdChBdCwiLWJvZHktdGl0bGUgIikuY29uY2F0KFB0KS50cmltKCksY2hpbGRyZW46VXR9KSx5dF19KX0sdW89ZnVuY3Rpb24oS2Upe3ZhciB5dD17fTtyZXR1cm4gT2JqZWN0LmtleXMoS2UpLmZvckVhY2goZnVuY3Rpb24oUHQpe0tlW1B0XSE9PWhhLmhbUHRdJiZQdCE9PSJjb2xsYXBzZSI/eXRbUHRdPUtlW1B0XTp5dFtQdF09dm9pZCAwLFB0LmluY2x1ZGVzKCJSZW5kZXIiKSYmKHl0W1B0XT1LZVtQdF09PT0hMT8hMTp2b2lkIDApfSkseXQubWVudT12b2lkIDAseXR9LG5vPWZ1bmN0aW9uKCl7dmFyIEtlPWZ1bmN0aW9uKFB0KXt2YXIgQXQ9UHQuaWQsVXQ9KDAsZWEuZSkoKTtyZXR1cm4gVXRbQXRdfTtyZXR1cm4gS2V9LHpvPWZ1bmN0aW9uKEtlLHl0LFB0KXtpZigoMCxPdC5qKSgpKXt2YXIgQXQ9e307T2JqZWN0LmtleXMoS2UpLmZvckVhY2goZnVuY3Rpb24oZG4pe2lmKGhhLmhbZG5dfHxoYS5oW2RuXT09PXZvaWQgMCl7aWYoZG49PT0iY29sb3JQcmltYXJ5Iil7QXRbZG5dPSgwLE5hLnRWKShLZVtkbl0pO3JldHVybn1BdFtkbl09S2VbZG5dfX0pO3ZhciBVdD0oMCxsbi5UKSh7fSx5dCxBdCk7ZGVsZXRlIFV0Lm1lbnUsZGVsZXRlIFV0LnRpdGxlLGRlbGV0ZSBVdC5pY29uZm9udFVybCxQdD09bnVsbHx8UHQoVXQpfX0sZ289ZnVuY3Rpb24oS2UseXQpe3JldHVybigwLE90LmopKCk/KDAsdGUuWikoKDAsdGUuWikoKDAsdGUuWikoe30saGEuaCkseXR8fHt9KSxLZSk6aGEuaH0sZm89ZnVuY3Rpb24oS2Upe3JldHVybiBKU09OLnN0cmluZ2lmeSgoMCxmYS5aKSgoMCx0ZS5aKSgoMCx0ZS5aKSh7fSxLZSkse30se2NvbG9yUHJpbWFyeTpLZS5jb2xvclByaW1hcnl9KSxbImNvbG9yV2VhayJdKSxudWxsLDIpfSxUaT1mdW5jdGlvbihLZSl7dmFyIHl0PUtlLmRlZmF1bHRTZXR0aW5ncyxQdD15dD09PXZvaWQgMD92b2lkIDA6eXQsQXQ9S2Uuc2V0dGluZ3MsVXQ9QXQ9PT12b2lkIDA/dm9pZCAwOkF0LGRuPUtlLmhpZGVIaW50QWxlcnQsZHI9S2UuaGlkZUNvcHlCdXR0b24sdHI9S2UuY29sb3JMaXN0LHpyPXRyPT09dm9pZCAwP1t7a2V5OiJ0ZWNoQmx1ZSIsY29sb3I6IiMxNjc3RkYifSx7a2V5OiJkYXlicmVhayIsY29sb3I6IiMxODkwZmYifSx7a2V5OiJkdXN0Iixjb2xvcjoiI0Y1MjIyRCJ9LHtrZXk6InZvbGNhbm8iLGNvbG9yOiIjRkE1NDFDIn0se2tleToic3Vuc2V0Iixjb2xvcjoiI0ZBQUQxNCJ9LHtrZXk6ImN5YW4iLGNvbG9yOiIjMTNDMkMyIn0se2tleToiZ3JlZW4iLGNvbG9yOiIjNTJDNDFBIn0se2tleToiZ2Vla2JsdWUiLGNvbG9yOiIjMkY1NEVCIn0se2tleToicHVycGxlIixjb2xvcjoiIzcyMkVEMSJ9XTp0cix3cj1LZS5nZXRDb250YWluZXIsQnI9S2Uub25TZXR0aW5nQ2hhbmdlLGRhPUtlLmVuYWJsZURhcmtUaGVtZSxzYT1LZS5wcmVmaXhDbHMsd2E9c2E9PT12b2lkIDA/ImFudC1wcm8iOnNhLHphPUtlLnBhdGhuYW1lLExhPXphPT09dm9pZCAwPygwLE90LmopKCk/d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lOiIiOnphLFdhPUtlLmRpc2FibGVVcmxQYXJhbXMsT2E9V2E9PT12b2lkIDA/ITA6V2EsSmE9S2UudGhlbWVPbmx5LHRvPUtlLmRyYXdlclByb3BzLHdvPSgwLE8udXNlUmVmKSghMCksaG89KDAsTWEuWikoITEse3ZhbHVlOktlLmNvbGxhcHNlLG9uQ2hhbmdlOktlLm9uQ29sbGFwc2VDaGFuZ2V9KSx5bz0oMCxwdC5aKShobywyKSxRbz15b1swXSxrbz15b1sxXSx5aT0oMCxPLnVzZVN0YXRlKSgoMCxlYS5HKSgpKSxNaT0oMCxwdC5aKSh5aSwyKSxDaT1NaVswXSxEbz1NaVsxXSxLaT0oMCxwci5sKSh7fSx7ZGlzYWJsZWQ6T2F9KSxSaT0oMCxwdC5aKShLaSwyKSxLbz1SaVswXSxKbz1SaVsxXSxxbz0oMCxNYS5aKShmdW5jdGlvbigpe3JldHVybiBnbyhLbyxVdHx8UHQpfSx7dmFsdWU6VXQsb25DaGFuZ2U6QnJ9KSxfaT0oMCxwdC5aKShxbywyKSxFbz1faVswXSxrbj1faVsxXSxEbj1Fb3x8e30sV3I9RG4ubmF2VGhlbWUsa3I9RG4uY29sb3JQcmltYXJ5LGlhPURuLnNpZGVyTWVudVR5cGUsYWE9RG4ubGF5b3V0LG5hPURuLmNvbG9yV2VhazsoMCxPLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXt2YXIgcWE9ZnVuY3Rpb24oKXtDaSE9PSgwLGVhLkcpKCkmJkRvKCgwLGVhLkcpKCkpfTtyZXR1cm4oMCxPdC5qKSgpPyh6byhnbyhLbyxVdCksRW8sa24pLHdpbmRvdy5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJsYW5ndWFnZWNoYW5nZSIscWEse3Bhc3NpdmU6ITB9KSxmdW5jdGlvbigpe3JldHVybiB3aW5kb3cuZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibGFuZ3VhZ2VjaGFuZ2UiLHFhKX0pOmZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9fSxbXSksKDAsTy51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7KDAsRW4ubikoUHIuWiwiNS4wLjAiKTwwJiZKdC5aUC5jb25maWcoe3RoZW1lOntwcmltYXJ5Q29sb3I6RW8uY29sb3JQcmltYXJ5fX0pfSxbRW8uY29sb3JQcmltYXJ5LEVvLm5hdlRoZW1lXSk7dmFyIG1hPWZ1bmN0aW9uKGplLEtyKXt2YXIgQW89e307aWYoQW9bamVdPUtyLGplPT09ImxheW91dCImJihBby5jb250ZW50V2lkdGg9S3I9PT0idG9wIj8iRml4ZWQiOiJGbHVpZCIpLGplPT09ImxheW91dCImJktyIT09Im1peCImJihBby5zcGxpdE1lbnVzPSExKSxqZT09PSJsYXlvdXQiJiZLcj09PSJtaXgiJiYoQW8ubmF2VGhlbWU9ImxpZ2h0IiksamU9PT0iY29sb3JXZWFrIiYmS3I9PT0hMCl7dmFyIElvPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImJvZHkiKTtJbyYmKElvLmRhdGFzZXQucHJvc2V0dGluZ2RyYXdlcj1Jby5zdHlsZS5maWx0ZXIsSW8uc3R5bGUuZmlsdGVyPSJpbnZlcnQoODAlKSIpfWlmKGplPT09ImNvbG9yV2VhayImJktyPT09ITEpe3ZhciBlaT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJib2R5Iik7ZWkmJihlaS5zdHlsZS5maWx0ZXI9ZWkuZGF0YXNldC5wcm9zZXR0aW5nZHJhd2VyfHwibm9uZSIsZGVsZXRlIGVpLmRhdGFzZXQucHJvc2V0dGluZ2RyYXdlcil9ZGVsZXRlIEFvLm1lbnUsZGVsZXRlIEFvLnRpdGxlLGRlbGV0ZSBBby5pY29uZm9udFVybCxkZWxldGUgQW8ubG9nbyxkZWxldGUgQW8ucHdhLGtuKCgwLHRlLlopKCgwLHRlLlopKHt9LEVvKSxBbykpfSx4cj1ubygpOygwLE8udXNlRWZmZWN0KShmdW5jdGlvbigpe2lmKCgwLE90LmopKCkmJiFPYSl7aWYod28uY3VycmVudCl7d28uY3VycmVudD0hMTtyZXR1cm59dmFyIHFhPW5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCksamU9T2JqZWN0LmZyb21FbnRyaWVzKHFhLmVudHJpZXMoKSksS3I9dW8oKDAsdGUuWikoKDAsdGUuWikoe30samUpLEVvKSk7ZGVsZXRlIEtyLmxvZ28sZGVsZXRlIEtyLm1lbnUsZGVsZXRlIEtyLnRpdGxlLGRlbGV0ZSBLci5pY29uZm9udFVybCxkZWxldGUgS3IucHdhLEpvKEtyKX19LFtKbyxFbyxLbyxMYSxPYV0pO3ZhciBacj0iIi5jb25jYXQod2EsIi1zZXR0aW5nLWRyYXdlciIpLFZhPVJhKFpyKSxEYT1WYS53cmFwU1NSLHBhPVZhLmhhc2hJZCxzbz0oMCxHbi5YKShRbyk7cmV0dXJuIERhKCgwLFMuanN4cykoUy5GcmFnbWVudCx7Y2hpbGRyZW46WygwLFMuanN4KSgiZGl2Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdChaciwiLWhhbmRsZSAiKS5jb25jYXQocGEpLnRyaW0oKSxvbkNsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIGtvKCFRbyl9LHN0eWxlOnt3aWR0aDo0OCxoZWlnaHQ6NDh9LGNoaWxkcmVuOlFvPygwLFMuanN4KShybi5aLHtzdHlsZTp7Y29sb3I6IiNmZmYiLGZvbnRTaXplOjIwfX0pOigwLFMuanN4KShZLlose3N0eWxlOntjb2xvcjoiI2ZmZiIsZm9udFNpemU6MjB9fSl9KSwoMCxTLmpzeCkoYnIuWiwoMCx0ZS5aKSgoMCx0ZS5aKSgoMCx0ZS5aKSh7fSxzbykse30se3dpZHRoOjMwMCxvbkNsb3NlOmZ1bmN0aW9uKCl7cmV0dXJuIGtvKCExKX0sY2xvc2FibGU6ITEscGxhY2VtZW50OiJyaWdodCIsZ2V0Q29udGFpbmVyOndyLHN0eWxlOnt6SW5kZXg6OTk5fX0sdG8pLHt9LHtjaGlsZHJlbjooMCxTLmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KFpyLCItZHJhd2VyLWNvbnRlbnQgIikuY29uY2F0KHBhKS50cmltKCksY2hpbGRyZW46WygwLFMuanN4KShybyx7dGl0bGU6eHIoe2lkOiJhcHAuc2V0dGluZy5wYWdlc3R5bGUiLGRlZmF1bHRNZXNzYWdlOiJQYWdlIHN0eWxlIHNldHRpbmcifSksaGFzaElkOnBhLHByZWZpeENsczpacixjaGlsZHJlbjooMCxTLmpzeCkoUnIse2hhc2hJZDpwYSxwcmVmaXhDbHM6WnIsbGlzdDpbe2tleToibGlnaHQiLHRpdGxlOnhyKHtpZDoiYXBwLnNldHRpbmcucGFnZXN0eWxlLmxpZ2h0IixkZWZhdWx0TWVzc2FnZToiXHU0RUFFXHU4MjcyXHU4M0RDXHU1MzU1XHU5OENFXHU2ODNDIn0pfSx7a2V5OiJyZWFsRGFyayIsdGl0bGU6eHIoe2lkOiJhcHAuc2V0dGluZy5wYWdlc3R5bGUucmVhbGRhcmsiLGRlZmF1bHRNZXNzYWdlOiJcdTY2OTdcdTgyNzJcdTgzRENcdTUzNTVcdTk4Q0VcdTY4M0MifSl9XS5maWx0ZXIoZnVuY3Rpb24ocWEpe3JldHVybiEocWEua2V5PT09ImRhcmsiJiZFby5sYXlvdXQ9PT0ibWl4Inx8cWEua2V5PT09InJlYWxEYXJrIiYmIWRhKX0pLHZhbHVlOldyLGNvbmZpZ1R5cGU6InRoZW1lIixvbkNoYW5nZTpmdW5jdGlvbihqZSl7cmV0dXJuIG1hKCJuYXZUaGVtZSIsamUpfX0sIm5hdlRoZW1lIil9KSx6ciE9PSExJiYoMCxTLmpzeCkocm8se2hhc2hJZDpwYSx0aXRsZTp4cih7aWQ6ImFwcC5zZXR0aW5nLnRoZW1lY29sb3IiLGRlZmF1bHRNZXNzYWdlOiJUaGVtZSBjb2xvciJ9KSxwcmVmaXhDbHM6WnIsY2hpbGRyZW46KDAsUy5qc3gpKCRhLHtoYXNoSWQ6cGEscHJlZml4Q2xzOlpyLGNvbG9yTGlzdDp6cix2YWx1ZTooMCxOYS50Vikoa3IpLGZvcm1hdE1lc3NhZ2U6eHIsb25DaGFuZ2U6ZnVuY3Rpb24oamUpe3JldHVybiBtYSgiY29sb3JQcmltYXJ5IixqZSl9fSl9KSwhSmEmJigwLFMuanN4cykoUy5GcmFnbWVudCx7Y2hpbGRyZW46WygwLFMuanN4KShNci5aLHt9KSwoMCxTLmpzeCkocm8se2hhc2hJZDpwYSxwcmVmaXhDbHM6WnIsdGl0bGU6eHIoe2lkOiJhcHAuc2V0dGluZy5uYXZpZ2F0aW9ubW9kZSJ9KSxjaGlsZHJlbjooMCxTLmpzeCkoUnIse3ByZWZpeENsczpacix2YWx1ZTphYSxoYXNoSWQ6cGEsY29uZmlnVHlwZToibGF5b3V0IixsaXN0Olt7a2V5OiJzaWRlIix0aXRsZTp4cih7aWQ6ImFwcC5zZXR0aW5nLnNpZGVtZW51In0pfSx7a2V5OiJ0b3AiLHRpdGxlOnhyKHtpZDoiYXBwLnNldHRpbmcudG9wbWVudSJ9KX0se2tleToibWl4Iix0aXRsZTp4cih7aWQ6ImFwcC5zZXR0aW5nLm1peG1lbnUifSl9XSxvbkNoYW5nZTpmdW5jdGlvbihqZSl7cmV0dXJuIG1hKCJsYXlvdXQiLGplKX19LCJsYXlvdXQiKX0pLEVvLmxheW91dD09InNpZGUifHxFby5sYXlvdXQ9PSJtaXgiPygwLFMuanN4KShybyx7aGFzaElkOnBhLHByZWZpeENsczpacix0aXRsZTp4cih7aWQ6ImFwcC5zZXR0aW5nLnNpZGVybWVudXR5cGUifSksY2hpbGRyZW46KDAsUy5qc3gpKFJyLHtwcmVmaXhDbHM6WnIsdmFsdWU6aWEsaGFzaElkOnBhLGNvbmZpZ1R5cGU6InNpZGVyTWVudVR5cGUiLGxpc3Q6W3trZXk6InN1YiIsaWNvbjooMCxTLmpzeCkoVnIse30pLHRpdGxlOnhyKHtpZDoiYXBwLnNldHRpbmcuc2lkZXJtZW51dHlwZS1zdWIifSl9LHtrZXk6Imdyb3VwIixpY29uOigwLFMuanN4KSh5cix7fSksdGl0bGU6eHIoe2lkOiJhcHAuc2V0dGluZy5zaWRlcm1lbnV0eXBlLWdyb3VwIn0pfV0sb25DaGFuZ2U6ZnVuY3Rpb24oamUpe3JldHVybiBtYSgic2lkZXJNZW51VHlwZSIsamUpfX0sInNpZGVyTWVudVR5cGUiKX0pOm51bGwsKDAsUy5qc3gpKEhyLHtwcmVmaXhDbHM6WnIsaGFzaElkOnBhLHNldHRpbmdzOkVvLGNoYW5nZVNldHRpbmc6bWF9KSwoMCxTLmpzeCkoTXIuWix7fSksKDAsUy5qc3gpKHJvLHtoYXNoSWQ6cGEscHJlZml4Q2xzOlpyLHRpdGxlOnhyKHtpZDoiYXBwLnNldHRpbmcucmVnaW9uYWxzZXR0aW5ncyJ9KSxjaGlsZHJlbjooMCxTLmpzeCkoSnIse2hhc2hJZDpwYSxwcmVmaXhDbHM6WnIsc2V0dGluZ3M6RW8sY2hhbmdlU2V0dGluZzptYX0pfSksKDAsUy5qc3gpKE1yLlose30pLCgwLFMuanN4KShybyx7aGFzaElkOnBhLHByZWZpeENsczpacix0aXRsZTp4cih7aWQ6ImFwcC5zZXR0aW5nLm90aGVyc2V0dGluZ3MifSksY2hpbGRyZW46KDAsUy5qc3gpKCRyLlose2NsYXNzTmFtZToiIi5jb25jYXQoWnIsIi1saXN0ICIpLmNvbmNhdChwYSkudHJpbSgpLHNwbGl0OiExLHNpemU6InNtYWxsIixyZW5kZXJJdGVtOklyLGRhdGFTb3VyY2U6W3t0aXRsZTp4cih7aWQ6ImFwcC5zZXR0aW5nLndlYWttb2RlIn0pLGFjdGlvbjooMCxTLmpzeCkoR3IuWix7c2l6ZToic21hbGwiLGNsYXNzTmFtZToiY29sb3Itd2VhayIsY2hlY2tlZDohIW5hLG9uQ2hhbmdlOmZ1bmN0aW9uKGplKXttYSgiY29sb3JXZWFrIixqZSl9fSl9XX0pfSksZG4mJmRyP251bGw6KDAsUy5qc3gpKE1yLlose30pLGRuP251bGw6KDAsUy5qc3gpKG9hLlose3R5cGU6Indhcm5pbmciLG1lc3NhZ2U6eHIoe2lkOiJhcHAuc2V0dGluZy5wcm9kdWN0aW9uLmhpbnQifSksaWNvbjooMCxTLmpzeCkoS3QuWix7fSksc2hvd0ljb246ITAsc3R5bGU6e21hcmdpbkJsb2NrRW5kOjE2fX0pLGRyP251bGw6KDAsUy5qc3gpKHJhLlpQLHtibG9jazohMCxpY29uOigwLFMuanN4KSh6dC5aLHt9KSxzdHlsZTp7bWFyZ2luQmxvY2tFbmQ6MjR9LG9uQ2xpY2s6KDAsem4uWikoKDAsVG4uWikoKS5tYXJrKGZ1bmN0aW9uIHFhKCl7cmV0dXJuKDAsVG4uWikoKS53cmFwKGZ1bmN0aW9uKEtyKXtmb3IoOzspc3dpdGNoKEtyLnByZXY9S3IubmV4dCl7Y2FzZSAwOnJldHVybiBLci5wcmV2PTAsS3IubmV4dD0zLG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KGZvKEVvKSk7Y2FzZSAzOk5uLlpQLnN1Y2Nlc3MoeHIoe2lkOiJhcHAuc2V0dGluZy5jb3B5aW5mbyJ9KSksS3IubmV4dD04O2JyZWFrO2Nhc2UgNjpLci5wcmV2PTYsS3IudDA9S3IuY2F0Y2goMCk7Y2FzZSA4OmNhc2UiZW5kIjpyZXR1cm4gS3Iuc3RvcCgpfX0scWEsbnVsbCxbWzAsNl1dKX0pKSxjaGlsZHJlbjp4cih7aWQ6ImFwcC5zZXR0aW5nLmNvcHkifSl9KV19KV19KX0pKV19KSl9LFVvPWUoNjc2MTApLFdvPWZ1bmN0aW9uKE10KXtyZXR1cm4gTXRbTXQuU0lMRU5UPTBdPSJTSUxFTlQiLE10W010LldBUk5fTUVTU0FHRT0xXT0iV0FSTl9NRVNTQUdFIixNdFtNdC5FUlJPUl9NRVNTQUdFPTJdPSJFUlJPUl9NRVNTQUdFIixNdFtNdC5OT1RJRklDQVRJT049M109Ik5PVElGSUNBVElPTiIsTXRbTXQuUkVESVJFQ1Q9OV09IlJFRElSRUNUIixNdH0oV298fHt9KSxnaT17ZXJyb3JDb25maWc6e2Vycm9yVGhyb3dlcjpmdW5jdGlvbihLZSl7dmFyIHl0PUtlLFB0PXl0LnN1Y2Nlc3MsQXQ9eXQuZGF0YSxVdD15dC5lcnJvckNvZGUsZG49eXQuZXJyb3JNZXNzYWdlLGRyPXl0LnNob3dUeXBlO2lmKCFQdCl7dmFyIHRyPW5ldyBFcnJvcihkbik7dGhyb3cgdHIubmFtZT0iQml6RXJyb3IiLHRyLmluZm89e2Vycm9yQ29kZTpVdCxlcnJvck1lc3NhZ2U6ZG4sc2hvd1R5cGU6ZHIsZGF0YTpBdH0sdHJ9fSxlcnJvckhhbmRsZXI6ZnVuY3Rpb24oS2UseXQpe2lmKHl0IT1udWxsJiZ5dC5za2lwRXJyb3JIYW5kbGVyKXRocm93IEtlO2lmKEtlLm5hbWU9PT0iQml6RXJyb3IiKXt2YXIgUHQ9S2UuaW5mbztpZihQdCl7dmFyIEF0PVB0LmVycm9yTWVzc2FnZSxVdD1QdC5lcnJvckNvZGU7c3dpdGNoKFB0LnNob3dUeXBlKXtjYXNlIFdvLlNJTEVOVDpicmVhaztjYXNlIFdvLldBUk5fTUVTU0FHRTpObi5aUC53YXJuaW5nKEF0KTticmVhaztjYXNlIFdvLkVSUk9SX01FU1NBR0U6Tm4uWlAuZXJyb3IoQXQpO2JyZWFrO2Nhc2UgV28uTk9USUZJQ0FUSU9OOmZ0LlpQLm9wZW4oe2Rlc2NyaXB0aW9uOkF0LG1lc3NhZ2U6VXR9KTticmVhaztjYXNlIFdvLlJFRElSRUNUOmJyZWFrO2RlZmF1bHQ6Tm4uWlAuZXJyb3IoQXQpfX19ZWxzZSBLZS5yZXNwb25zZT9Obi5aUC5lcnJvcigiUmVzcG9uc2Ugc3RhdHVzOiIuY29uY2F0KEtlLnJlc3BvbnNlLnN0YXR1cykpOktlLnJlcXVlc3Q/Tm4uWlAuZXJyb3IoIk5vbmUgcmVzcG9uc2UhIFBsZWFzZSByZXRyeS4iKTpObi5aUC5lcnJvcigiUmVxdWVzdCBlcnJvciwgcGxlYXNlIHJldHJ5LiIpfX0scmVxdWVzdEludGVyY2VwdG9yczpbZnVuY3Rpb24oTXQpe3ZhciBLZSx5dD1NdD09bnVsbHx8KEtlPU10LnVybCk9PT1udWxsfHxLZT09PXZvaWQgMD92b2lkIDA6S2UuY29uY2F0KCI/dG9rZW4gPSAxMjMiKTtyZXR1cm4gbSgpKG0oKSh7fSxNdCkse30se3VybDp5dH0pfV0scmVzcG9uc2VJbnRlcmNlcHRvcnM6W2Z1bmN0aW9uKE10KXt2YXIgS2U9TXQseXQ9S2UuZGF0YTtyZXR1cm4oeXQ9PW51bGw/dm9pZCAwOnl0LnN1Y2Nlc3MpPT09ITEmJk5uLlpQLmVycm9yKCJcdThCRjdcdTZDNDJcdTU5MzFcdThEMjVcdUZGMDEiKSxNdH1dfSxhbz1mdW5jdGlvbihNdCl7cmV0dXJuIE10LkxPR0lOPSIvdXNlci9sb2dpbiIsTXR9KHt9KSxwaT0hMTtmdW5jdGlvbiBIbygpe3JldHVybiBSby5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gUm8oKXtyZXR1cm4gUm89ZygpKGgoKSgpLm1hcmsoZnVuY3Rpb24gTXQoKXt2YXIgS2UseXQsUHQ7cmV0dXJuIGgoKSgpLndyYXAoZnVuY3Rpb24oVXQpe2Zvcig7Oylzd2l0Y2goVXQucHJldj1VdC5uZXh0KXtjYXNlIDA6aWYoS2U9ZnVuY3Rpb24oKXt2YXIgZG49ZygpKGgoKSgpLm1hcmsoZnVuY3Rpb24gZHIoKXt2YXIgdHI7cmV0dXJuIGgoKSgpLndyYXAoZnVuY3Rpb24od3Ipe2Zvcig7Oylzd2l0Y2god3IucHJldj13ci5uZXh0KXtjYXNlIDA6cmV0dXJuIHdyLnByZXY9MCx3ci5uZXh0PTMsKDAsRXQuYkcpKHtza2lwRXJyb3JIYW5kbGVyOiEwfSk7Y2FzZSAzOnJldHVybiB0cj13ci5zZW50LHRyLnVzZXIuYXZhdGFyPT09IiImJih0ci51c2VyLmF2YXRhcj0iaHR0cHM6Ly9ndy5hbGlwYXlvYmplY3RzLmNvbS96b3Mvcm1zcG9ydGFsL0JpYXpmYW54bWFtTlJveHhWeGthLnBuZyIpLHdyLmFicnVwdCgicmV0dXJuIixtKCkobSgpKHt9LHRyLnVzZXIpLHt9LHtwZXJtaXNzaW9uczp0ci5wZXJtaXNzaW9ucyxyb2xlczp0ci5yb2xlc30pKTtjYXNlIDg6d3IucHJldj04LHdyLnQwPXdyLmNhdGNoKDApLGNvbnNvbGUubG9nKHdyLnQwKSx4Lmhpc3RvcnkucHVzaChhby5MT0dJTik7Y2FzZSAxMjpyZXR1cm4gd3IuYWJydXB0KCJyZXR1cm4iLHZvaWQgMCk7Y2FzZSAxMzpjYXNlImVuZCI6cmV0dXJuIHdyLnN0b3AoKX19LGRyLG51bGwsW1swLDhdXSl9KSk7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGRuLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCkseXQ9eC5oaXN0b3J5LmxvY2F0aW9uLHl0LnBhdGhuYW1lPT09YW8uTE9HSU4pe1V0Lm5leHQ9NzticmVha31yZXR1cm4gVXQubmV4dD01LEtlKCk7Y2FzZSA1OnJldHVybiBQdD1VdC5zZW50LFV0LmFicnVwdCgicmV0dXJuIix7ZmV0Y2hVc2VySW5mbzpLZSxjdXJyZW50VXNlcjpQdCxzZXR0aW5nczpVby5afSk7Y2FzZSA3OnJldHVybiBVdC5hYnJ1cHQoInJldHVybiIse2ZldGNoVXNlckluZm86S2Usc2V0dGluZ3M6VW8uWn0pO2Nhc2UgODpjYXNlImVuZCI6cmV0dXJuIFV0LnN0b3AoKX19LE10KX0pKSxSby5hcHBseSh0aGlzLGFyZ3VtZW50cyl9dmFyIEZvPWZ1bmN0aW9uKEtlKXt2YXIgeXQsUHQsQXQ9S2UuaW5pdGlhbFN0YXRlLFV0PUtlLnNldEluaXRpYWxTdGF0ZTtyZXR1cm4gbSgpKHthY3Rpb25zUmVuZGVyOmZ1bmN0aW9uKCl7cmV0dXJuWygwLFMuanN4KShJLHt9LCJkb2MiKSwoMCxTLmpzeCkoTCx7fSwiU2VsZWN0TGFuZyIpXX0sYXZhdGFyUHJvcHM6e3NyYzpBdD09bnVsbHx8KHl0PUF0LmN1cnJlbnRVc2VyKT09PW51bGx8fHl0PT09dm9pZCAwP3ZvaWQgMDp5dC5hdmF0YXIsdGl0bGU6KDAsUy5qc3gpKEZ0LHt9KSxyZW5kZXI6ZnVuY3Rpb24oZHIsdHIpe3JldHVybigwLFMuanN4KShjbix7bWVudToiVHJ1ZSIsY2hpbGRyZW46dHJ9KX19LHdhdGVyTWFya1Byb3BzOnt9LG1lbnU6e2xvY2FsZTohMSxwYXJhbXM6e3VzZXJJZDpBdD09bnVsbHx8KFB0PUF0LmN1cnJlbnRVc2VyKT09PW51bGx8fFB0PT09dm9pZCAwP3ZvaWQgMDpQdC51c2VySWR9LHJlcXVlc3Q6ZnVuY3Rpb24oKXt2YXIgZG49ZygpKGgoKSgpLm1hcmsoZnVuY3Rpb24gdHIoKXt2YXIgenI7cmV0dXJuIGgoKSgpLndyYXAoZnVuY3Rpb24oQnIpe2Zvcig7Oylzd2l0Y2goQnIucHJldj1Cci5uZXh0KXtjYXNlIDA6aWYoQXQhPW51bGwmJih6cj1BdC5jdXJyZW50VXNlcikhPT1udWxsJiZ6ciE9PXZvaWQgMCYmenIudXNlcklkKXtCci5uZXh0PTI7YnJlYWt9cmV0dXJuIEJyLmFicnVwdCgicmV0dXJuIixbXSk7Y2FzZSAyOnJldHVybiBCci5hYnJ1cHQoInJldHVybiIsKDAsRXQuVzUpKCkpO2Nhc2UgMzpjYXNlImVuZCI6cmV0dXJuIEJyLnN0b3AoKX19LHRyKX0pKTtmdW5jdGlvbiBkcigpe3JldHVybiBkbi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIGRyfSgpfSxmb290ZXJSZW5kZXI6ZnVuY3Rpb24oKXtyZXR1cm4oMCxTLmpzeCkody5aLHt9KX0sb25QYWdlQ2hhbmdlOmZ1bmN0aW9uKCl7dmFyIGRyPXguaGlzdG9yeS5sb2NhdGlvbjshKEF0IT1udWxsJiZBdC5jdXJyZW50VXNlcikmJmRyLnBhdGhuYW1lIT09YW8uTE9HSU4mJnguaGlzdG9yeS5wdXNoKGFvLkxPR0lOKX0sbGF5b3V0QmdJbWdMaXN0Olt7c3JjOiJodHRwczovL21kbi5hbGlwYXlvYmplY3RzLmNvbS95dXlhbl9xazBveGgvYWZ0cy9pbWcvRDJMV1NxTm55NHNBQUFBQUFBQUFBQUFBRmw5NEFRQnIiLGxlZnQ6ODUsYm90dG9tOjEwMCxoZWlnaHQ6IjMwM3B4In0se3NyYzoiaHR0cHM6Ly9tZG4uYWxpcGF5b2JqZWN0cy5jb20veXV5YW5fcWswb3hoL2FmdHMvaW1nL0MyVFdScEpwaUMwQUFBQUFBQUFBQUFBQUZsOTRBUUJyIixib3R0b206LTY4LHJpZ2h0Oi00NSxoZWlnaHQ6IjMwM3B4In0se3NyYzoiaHR0cHM6Ly9tZG4uYWxpcGF5b2JqZWN0cy5jb20veXV5YW5fcWswb3hoL2FmdHMvaW1nL0Y2dlNUYmo4S3BZQUFBQUFBQUFBQUFBQUZsOTRBUUJyIixib3R0b206MCxsZWZ0OjAsd2lkdGg6IjMzMXB4In1dLGxpbmtzOnBpP1soMCxTLmpzeHMpKHguTGluayx7dG86Ii91bWkvcGx1Z2luL29wZW5hcGkiLHRhcmdldDoiX2JsYW5rIixjaGlsZHJlbjpbKDAsUy5qc3gpKG9yLlose30pLCgwLFMuanN4KSgic3BhbiIse2NoaWxkcmVuOiJPcGVuQVBJIFx1NjU4N1x1Njg2MyJ9KV19LCJvcGVuYXBpIildOltdLG1lbnVIZWFkZXJSZW5kZXI6dm9pZCAwLGNoaWxkcmVuUmVuZGVyOmZ1bmN0aW9uKGRyKXtyZXR1cm4oMCxTLmpzeHMpKFMuRnJhZ21lbnQse2NoaWxkcmVuOltkciwoMCxTLmpzeCkoVGkse2Rpc2FibGVVcmxQYXJhbXM6ITAsZW5hYmxlRGFya1RoZW1lOiEwLHNldHRpbmdzOkF0PT1udWxsP3ZvaWQgMDpBdC5zZXR0aW5ncyxvblNldHRpbmdDaGFuZ2U6ZnVuY3Rpb24oenIpe1V0KGZ1bmN0aW9uKHdyKXtyZXR1cm4gbSgpKG0oKSh7fSx3cikse30se3NldHRpbmdzOnpyfSl9KX19KV19KX19LEF0PT1udWxsP3ZvaWQgMDpBdC5zZXR0aW5ncyl9O2Z1bmN0aW9uIGx0KE10KXtyZXR1cm4gaWUuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGllKCl7cmV0dXJuIGllPWcoKShoKCkoKS5tYXJrKGZ1bmN0aW9uIE10KEtlKXt2YXIgeXQsUHQsQXQ7cmV0dXJuIGgoKSgpLndyYXAoZnVuY3Rpb24oZG4pe2Zvcig7Oylzd2l0Y2goZG4ucHJldj1kbi5uZXh0KXtjYXNlIDA6eXQ9S2UuY2xpZW50Um91dGVzLFB0PUtlLmxvY2F0aW9uLEF0PSgwLEV0Llc1KSgpLEF0PT09bnVsbCYmUHQucGF0aG5hbWUhPT1hby5MT0dJTiYmKGNvbnNvbGUubG9nKCJyZWZyZXNoIikseC5oaXN0b3J5LmdvKDApKTtjYXNlIDM6Y2FzZSJlbmQiOnJldHVybiBkbi5zdG9wKCl9fSxNdCl9KSksaWUuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHllKE10KXtyZXR1cm4gQi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gQigpe3JldHVybiBCPWcoKShoKCkoKS5tYXJrKGZ1bmN0aW9uIE10KEtlKXt2YXIgeXQ7cmV0dXJuIGgoKSgpLndyYXAoZnVuY3Rpb24oQXQpe2Zvcig7Oylzd2l0Y2goQXQucHJldj1BdC5uZXh0KXtjYXNlIDA6eXQ9S2Uucm91dGVzLCgwLEV0Lm45KSh5dCk7Y2FzZSAyOmNhc2UiZW5kIjpyZXR1cm4gQXQuc3RvcCgpfX0sTXQpfSkpLEIuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIFZlKE10KXt2YXIgS2U9KDAsSHQuaFApKCk7aWYoIUtlfHwoS2U9PW51bGw/dm9pZCAwOktlLmxlbmd0aCk9PT0wKXtNdCgpO3JldHVybn0oMCxFdC5rdykoKS50aGVuKGZ1bmN0aW9uKHl0KXsoMCxFdC5BUCkoeXQpLE10KCl9KX12YXIgc3Q9NSo2MCoxZTMsUnQ9bSgpKG0oKSh7fSxnaSkse30se3JlcXVlc3RJbnRlcmNlcHRvcnM6W2Z1bmN0aW9uKE10LEtlKXt2YXIgeXQ9S2UuaGVhZGVycz9LZS5oZWFkZXJzOltdO2NvbnNvbGUubG9nKCJyZXF1ZXN0ID09PT0+OiIsTXQpO3ZhciBQdD15dC5BdXRob3JpemF0aW9uLEF0PXl0LmlzVG9rZW47aWYoIVB0JiZBdCE9PSExKXt2YXIgVXQ9KDAsSHQuTWkpKCk7aWYoVXQpe3ZhciBkbj1OdW1iZXIoVXQpLW5ldyBEYXRlKCkuZ2V0VGltZSgpLGRyPSgwLEh0LllWKSgpO2lmKGRuPHN0JiZkcilkbjwwJiYoMCxIdC5kUCkoKTtlbHNle3ZhciB0cj0oMCxIdC5oUCkoKTt0ciYmKHl0LkF1dGhvcml6YXRpb249IkJlYXJlciAiLmNvbmNhdCh0cikpfX1lbHNlKDAsSHQuZFApKCl9cmV0dXJue3VybDpNdCxvcHRpb25zOktlfX1dLHJlc3BvbnNlSW50ZXJjZXB0b3JzOltdfSksQnQ9ZSg0NzM4OCksTHQ9e30sWXQ9ZnVuY3Rpb24oS2Upe3JldHVybiBPLmNyZWF0ZUVsZW1lbnQoQnQuQjYse2NvbnRleHQ6THR9LEtlKX0sQW49ZSg0NDg4Niksc249ZSg3ODM4Mik7ZnVuY3Rpb24gcXQoTXQpe3ZhciBLZT0oMCxBbi50KSgiQEBpbml0aWFsU3RhdGUiKSx5dD1LZS5pbml0aWFsU3RhdGUsUHQ9Ty51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJuKDAsSHQuWlApKHl0KX0sW3l0XSk7cmV0dXJuKDAsUy5qc3gpKHNuLkouUHJvdmlkZXIse3ZhbHVlOlB0LGNoaWxkcmVuOk10LmNoaWxkcmVufSl9ZnVuY3Rpb24gTW4oTXQpe3JldHVybigwLFMuanN4KShxdCx7Y2hpbGRyZW46TXR9KX1mdW5jdGlvbiBDcigpe3JldHVybigwLFMuanN4KSgiZGl2Iix7fSl9ZnVuY3Rpb24gcW4oTXQpe3ZhciBLZT1PLnVzZVJlZighMSkseXQ9KDAsQW4udCkoIkBAaW5pdGlhbFN0YXRlIil8fHt9LFB0PXl0LmxvYWRpbmcsQXQ9UHQ9PT12b2lkIDA/ITE6UHQ7cmV0dXJuIE8udXNlRWZmZWN0KGZ1bmN0aW9uKCl7QXR8fChLZS5jdXJyZW50PSEwKX0sW0F0XSksQXQmJiFLZS5jdXJyZW50JiZ0eXBlb2Ygd2luZG93IT0idW5kZWZpbmVkIj8oMCxTLmpzeCkoQ3Ise30pOk10LmNoaWxkcmVufWZ1bmN0aW9uIGpyKE10KXtyZXR1cm4oMCxTLmpzeCkocW4se2NoaWxkcmVuOk10fSl9dmFyIENuPWUoMjI4MTEpLExyPWUoMjc2KSxEcj1mdW5jdGlvbihLZSx5dCl7cmV0dXJuIE8uY3JlYXRlRWxlbWVudChMci5aLCgwLHRlLlopKCgwLHRlLlopKHt9LEtlKSx7fSx7cmVmOnl0LGljb246Q24uWn0pKX0sTnI9Ty5mb3J3YXJkUmVmKERyKSx0YT1Ocix2YT17UmVhZE91dGxpbmVkOnRhfTtmdW5jdGlvbiBYcihNdCl7cmV0dXJuIE10LnJlcGxhY2UoTXRbMF0sTXRbMF0udG9VcHBlckNhc2UoKSkucmVwbGFjZSgvLSh3KS9nLGZ1bmN0aW9uKEtlLHl0KXtyZXR1cm4geXQudG9VcHBlckNhc2UoKX0pfWZ1bmN0aW9uIEVhKE10KXt2YXIgS2U9TXQucm91dGVzO09iamVjdC5rZXlzKEtlKS5mb3JFYWNoKGZ1bmN0aW9uKHl0KXt2YXIgUHQ9S2VbeXRdLmljb247aWYoUHQmJnR5cGVvZiBQdD09InN0cmluZyIpe3ZhciBBdD1YcihQdCk7KHZhW0F0XXx8dmFbQXQrIk91dGxpbmVkIl0pJiYoS2VbeXRdLmljb249Ty5jcmVhdGVFbGVtZW50KHZhW0F0XXx8dmFbQXQrIk91dGxpbmVkIl0pKX19KX12YXIgcG89ZSg1NTc0KSx5YT1lLm4ocG8pLElhPWUoMjc0ODQpLGdhPWUubihJYSksSGE9ZSgyNTA1NCksUGE9ZSgzMzg1MiksZW89ZSg0MzkwMSksVWE9ZSg1NTgzNSk7ZnVuY3Rpb24gdm8oKXt2YXIgTXQ9Z2V0TG9jYWxlKCk7aWYobW9tZW50IT1udWxsJiZtb21lbnQubG9jYWxlKXt2YXIgS2U7bW9tZW50LmxvY2FsZSgoKEtlPWxvY2FsZUluZm9bTXRdKT09PW51bGx8fEtlPT09dm9pZCAwP3ZvaWQgMDpLZS5tb21lbnRMb2NhbGUpfHwiIil9c2V0SW50bChNdCl9dmFyIEdhPXR5cGVvZiB3aW5kb3chPSJ1bmRlZmluZWQiJiZ0eXBlb2Ygd2luZG93LmRvY3VtZW50IT0idW5kZWZpbmVkIiYmdHlwZW9mIHdpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50IT0idW5kZWZpbmVkIj9PLnVzZUxheW91dEVmZmVjdDpPLnVzZUVmZmVjdCxvbz1mdW5jdGlvbihLZSl7dmFyIHl0LFB0PSgwLFVhLktkKSgpLEF0PU8udXNlU3RhdGUoUHQpLFV0PXlhKCkoQXQsMiksZG49VXRbMF0sZHI9VXRbMV0sdHI9Ty51c2VTdGF0ZShmdW5jdGlvbigpe3JldHVybigwLFVhLmx3KShkbiwhMCl9KSx6cj15YSgpKHRyLDIpLHdyPXpyWzBdLEJyPXpyWzFdLGRhPWZ1bmN0aW9uKExhKXtpZihnYSgpIT09bnVsbCYmZ2EoKSE9PXZvaWQgMCYmZ2EoKS5sb2NhbGUpe3ZhciBXYTtnYSgpLmxvY2FsZSgoKFdhPVVhLkg4W0xhXSk9PT1udWxsfHxXYT09PXZvaWQgMD92b2lkIDA6V2EubW9tZW50TG9jYWxlKXx8ImVuIil9ZHIoTGEpLEJyKCgwLFVhLmx3KShMYSkpfTtHYShmdW5jdGlvbigpe3JldHVybiBVYS5CLm9uKFVhLlBaLGRhKSxmdW5jdGlvbigpe1VhLkIub2ZmKFVhLlBaLGRhKX19LFtdKTt2YXIgc2E9e30sd2E9KDAsVWEuTWcpKCk7cmV0dXJuKDAsUy5qc3gpKEp0LlpQLHtkaXJlY3Rpb246d2EsbG9jYWxlOigoeXQ9VWEuSDhbZG5dKT09PW51bGx8fHl0PT09dm9pZCAwP3ZvaWQgMDp5dC5hbnRkKXx8c2EsY2hpbGRyZW46KDAsUy5qc3gpKFVhLmVVLHt2YWx1ZTp3cixjaGlsZHJlbjpLZS5jaGlsZHJlbn0pfSl9O2Z1bmN0aW9uIGlvKE10KXtyZXR1cm4gTy5jcmVhdGVFbGVtZW50KG9vLG51bGwsTXQpfXZhciBPbz17aW5pdGlhbFN0YXRlOnZvaWQgMCxsb2FkaW5nOiEwLGVycm9yOnZvaWQgMH0sbG89ZnVuY3Rpb24oKXt2YXIgTXQ9KDAsTy51c2VTdGF0ZSkoT28pLEtlPXlhKCkoTXQsMikseXQ9S2VbMF0sUHQ9S2VbMV0sQXQ9KDAsTy51c2VDYWxsYmFjaykoZygpKGgoKSgpLm1hcmsoZnVuY3Rpb24gZG4oKXt2YXIgZHI7cmV0dXJuIGgoKSgpLndyYXAoZnVuY3Rpb24oenIpe2Zvcig7Oylzd2l0Y2goenIucHJldj16ci5uZXh0KXtjYXNlIDA6cmV0dXJuIFB0KGZ1bmN0aW9uKHdyKXtyZXR1cm4gbSgpKG0oKSh7fSx3cikse30se2xvYWRpbmc6ITAsZXJyb3I6dm9pZCAwfSl9KSx6ci5wcmV2PTEsenIubmV4dD00LEhvKCk7Y2FzZSA0OmRyPXpyLnNlbnQsUHQoZnVuY3Rpb24od3Ipe3JldHVybiBtKCkobSgpKHt9LHdyKSx7fSx7aW5pdGlhbFN0YXRlOmRyLGxvYWRpbmc6ITF9KX0pLHpyLm5leHQ9MTE7YnJlYWs7Y2FzZSA4OnpyLnByZXY9OCx6ci50MD16ci5jYXRjaCgxKSxQdChmdW5jdGlvbih3cil7cmV0dXJuIG0oKShtKCkoe30sd3IpLHt9LHtlcnJvcjp6ci50MCxsb2FkaW5nOiExfSl9KTtjYXNlIDExOmNhc2UiZW5kIjpyZXR1cm4genIuc3RvcCgpfX0sZG4sbnVsbCxbWzEsOF1dKX0pKSxbXSksVXQ9KDAsTy51c2VDYWxsYmFjaykoZnVuY3Rpb24oKXt2YXIgZG49ZygpKGgoKSgpLm1hcmsoZnVuY3Rpb24gZHIodHIpe3JldHVybiBoKCkoKS53cmFwKGZ1bmN0aW9uKHdyKXtmb3IoOzspc3dpdGNoKHdyLnByZXY9d3IubmV4dCl7Y2FzZSAwOlB0KGZ1bmN0aW9uKEJyKXtyZXR1cm4gdHlwZW9mIHRyPT0iZnVuY3Rpb24iP20oKShtKCkoe30sQnIpLHt9LHtpbml0aWFsU3RhdGU6dHIoQnIuaW5pdGlhbFN0YXRlKSxsb2FkaW5nOiExfSk6bSgpKG0oKSh7fSxCcikse30se2luaXRpYWxTdGF0ZTp0cixsb2FkaW5nOiExfSl9KTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiB3ci5zdG9wKCl9fSxkcil9KSk7cmV0dXJuIGZ1bmN0aW9uKGRyKXtyZXR1cm4gZG4uYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSxbXSk7cmV0dXJuKDAsTy51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7QXQoKX0sW10pLG0oKShtKCkoe30seXQpLHt9LHtyZWZyZXNoOkF0LHNldEluaXRpYWxTdGF0ZTpVdH0pfSx4bz17bW9kZWxfMTp7bmFtZXNwYWNlOiJAQGluaXRpYWxTdGF0ZSIsbW9kZWw6bG99fTtmdW5jdGlvbiBDbyhNdCl7dmFyIEtlPU8udXNlTWVtbyhmdW5jdGlvbigpe3JldHVybiBPYmplY3Qua2V5cyh4bykucmVkdWNlKGZ1bmN0aW9uKHl0LFB0KXtyZXR1cm4geXRbeG9bUHRdLm5hbWVzcGFjZV09eG9bUHRdLm1vZGVsLHl0fSx7fSl9LFtdKTtyZXR1cm4oMCxTLmpzeCkoQW4ueixtKCkobSgpKHttb2RlbHM6S2V9LE10KSx7fSx7Y2hpbGRyZW46TXQuY2hpbGRyZW59KSl9ZnVuY3Rpb24gSGkoTXQsS2Upe3JldHVybigwLFMuanN4KShDbyxtKCkobSgpKHt9LEtlKSx7fSx7Y2hpbGRyZW46TXR9KSl9ZnVuY3Rpb24gZWwoTXQpe3JldHVybiBNdC5kZWZhdWx0P3R5cGVvZiBNdC5kZWZhdWx0PT0iZnVuY3Rpb24iP010LmRlZmF1bHQoKTpNdC5kZWZhdWx0Ok10fWZ1bmN0aW9uIHRsKCl7cmV0dXJuW3thcHBseTplbChyKSxwYXRoOnZvaWQgMH0se2FwcGx5Om4scGF0aDp2b2lkIDB9LHthcHBseTp0LHBhdGg6dm9pZCAwfSx7YXBwbHk6aSxwYXRoOnZvaWQgMH0se2FwcGx5OnMscGF0aDp2b2lkIDB9LHthcHBseTphLHBhdGg6dm9pZCAwfSx7YXBwbHk6dSxwYXRoOnZvaWQgMH1dfWZ1bmN0aW9uIFhvKCl7cmV0dXJuWyJwYXRjaFJvdXRlcyIsInBhdGNoQ2xpZW50Um91dGVzIiwibW9kaWZ5Q29udGV4dE9wdHMiLCJtb2RpZnlDbGllbnRSZW5kZXJPcHRzIiwicm9vdENvbnRhaW5lciIsImlubmVyUHJvdmlkZXIiLCJpMThuUHJvdmlkZXIiLCJhY2Nlc3NQcm92aWRlciIsImRhdGFmbG93UHJvdmlkZXIiLCJvdXRlclByb3ZpZGVyIiwicmVuZGVyIiwib25Sb3V0ZUNoYW5nZSIsImFudGQiLCJnZXRJbml0aWFsU3RhdGUiLCJsYXlvdXQiLCJsb2NhbGUiLCJxaWFua3VuIiwicmVxdWVzdCJdfXZhciBEaT1udWxsO2Z1bmN0aW9uIG5sKCl7cmV0dXJuIERpPXguUGx1Z2luTWFuYWdlci5jcmVhdGUoe3BsdWdpbnM6dGwoKSx2YWxpZEtleXM6WG8oKX0pLERpfWZ1bmN0aW9uIHlsKCl7cmV0dXJuIERpfX0sNzY3NzI6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7QXBwbHlQbHVnaW5zVHlwZTpmdW5jdGlvbigpe3JldHVybiBKbn0sRm9ybWF0dGVkTWVzc2FnZTpmdW5jdGlvbigpe3JldHVybiBuLl9IfSxIZWxtZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSnQucWx9LExpbms6ZnVuY3Rpb24oKXtyZXR1cm4gZXR9LE91dGxldDpmdW5jdGlvbigpe3JldHVybiBPZS5qM30sUGx1Z2luTWFuYWdlcjpmdW5jdGlvbigpe3JldHVybiBYbn0sU2VsZWN0TGFuZzpmdW5jdGlvbigpe3JldHVybiBuLnBEfSxoaXN0b3J5OmZ1bmN0aW9uKCl7cmV0dXJuIGZyLm04fSxtYXRjaFJvdXRlczpmdW5jdGlvbigpe3JldHVybiBPZS5mcH0scmVxdWVzdDpmdW5jdGlvbigpe3JldHVybiBXZX0sdXNlQWNjZXNzOmZ1bmN0aW9uKCl7cmV0dXJuIHIubWR9LHVzZUFwcERhdGE6ZnVuY3Rpb24oKXtyZXR1cm4gZ24uT3Z9LHVzZUludGw6ZnVuY3Rpb24oKXtyZXR1cm4gbi5ZQn0sdXNlTG9jYXRpb246ZnVuY3Rpb24oKXtyZXR1cm4gT2UuVEh9LHVzZU1vZGVsOmZ1bmN0aW9uKCl7cmV0dXJuIHQudH0sdXNlTmF2aWdhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gT2UuczB9LHVzZU91dGxldENvbnRleHQ6ZnVuY3Rpb24oKXtyZXR1cm4gT2UuYnh9LHVzZVBhcmFtczpmdW5jdGlvbigpe3JldHVybiBPZS5VT30sdXNlUmVxdWVzdDpmdW5jdGlvbigpe3JldHVybiBOZX19KTt2YXIgcj1lKDgzMjI4KSxuPWUoNjY5OTkpLHQ9ZSg0NDg4NiksaT1lKDE1MDA5KSxzPWUubihpKSxhPWUoOTkyODkpLHU9ZS5uKGEpLGM9ZSgxMzc2OSksaD1lLm4oYyksZD1lKDUyNjc3KSxtPWUubihkKSxDPWUoOTc4NTcpLGc9ZS5uKEMpLHc9ZSg5NjY5KSxFPWUubih3KSx4PWUoNjcyOTQpLE89ZSg5MTI5NiksVD1lLm4oTyksUz1lKDkzMDk2KSxMPWUubihTKTtmdW5jdGlvbiBJKCl7cmV0dXJuIHR5cGVvZiBkb2N1bWVudCE9InVuZGVmaW5lZCImJnR5cGVvZiBkb2N1bWVudC52aXNpYmlsaXR5U3RhdGUhPSJ1bmRlZmluZWQiP2RvY3VtZW50LnZpc2liaWxpdHlTdGF0ZSE9PSJoaWRkZW4iOiEwfWZ1bmN0aW9uIFIoKXtyZXR1cm4gdHlwZW9mIG5hdmlnYXRvci5vbkxpbmUhPSJ1bmRlZmluZWQiP25hdmlnYXRvci5vbkxpbmU6ITB9dmFyIHo9bmV3IE1hcCxHPWZ1bmN0aW9uKEhlLG50LHJ0KXt2YXIgdnQ9ei5nZXQoSGUpO3Z0IT1udWxsJiZ2dC50aW1lciYmY2xlYXJUaW1lb3V0KHZ0LnRpbWVyKTt2YXIgVnQ9dm9pZCAwO250Pi0xJiYoVnQ9c2V0VGltZW91dChmdW5jdGlvbigpe3ouZGVsZXRlKEhlKX0sbnQpKSx6LnNldChIZSx7ZGF0YTpydCx0aW1lcjpWdCxzdGFydFRpbWU6bmV3IERhdGUoKS5nZXRUaW1lKCl9KX0sWT1mdW5jdGlvbihIZSl7dmFyIG50PXouZ2V0KEhlKTtyZXR1cm57ZGF0YTpudD09bnVsbD92b2lkIDA6bnQuZGF0YSxzdGFydFRpbWU6bnQ9PW51bGw/dm9pZCAwOm50LnN0YXJ0VGltZX19LGVlPWZ1bmN0aW9uKFplLEhlKXt2YXIgbnQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmWmVbU3ltYm9sLml0ZXJhdG9yXTtpZighbnQpcmV0dXJuIFplO3ZhciBydD1udC5jYWxsKFplKSx2dCxWdD1bXSxlbjt0cnl7Zm9yKDsoSGU9PT12b2lkIDB8fEhlLS0gPjApJiYhKHZ0PXJ0Lm5leHQoKSkuZG9uZTspVnQucHVzaCh2dC52YWx1ZSl9Y2F0Y2goUm4pe2VuPXtlcnJvcjpSbn19ZmluYWxseXt0cnl7dnQmJiF2dC5kb25lJiYobnQ9cnQucmV0dXJuKSYmbnQuY2FsbChydCl9ZmluYWxseXtpZihlbil0aHJvdyBlbi5lcnJvcn19cmV0dXJuIFZ0fSxKPWZ1bmN0aW9uKCl7Zm9yKHZhciBaZT1bXSxIZT0wO0hlPGFyZ3VtZW50cy5sZW5ndGg7SGUrKylaZT1aZS5jb25jYXQoZWUoYXJndW1lbnRzW0hlXSkpO3JldHVybiBaZX07ZnVuY3Rpb24gbWUoWmUsSGUpe3ZhciBudD0hMTtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIHJ0PVtdLHZ0PTA7dnQ8YXJndW1lbnRzLmxlbmd0aDt2dCsrKXJ0W3Z0XT1hcmd1bWVudHNbdnRdO250fHwobnQ9ITAsWmUuYXBwbHkodm9pZCAwLEoocnQpKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bnQ9ITF9LEhlKSl9fXZhciB0ZT1mdW5jdGlvbihaZSxIZSl7dmFyIG50PXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlplW1N5bWJvbC5pdGVyYXRvcl07aWYoIW50KXJldHVybiBaZTt2YXIgcnQ9bnQuY2FsbChaZSksdnQsVnQ9W10sZW47dHJ5e2Zvcig7KEhlPT09dm9pZCAwfHxIZS0tID4wKSYmISh2dD1ydC5uZXh0KCkpLmRvbmU7KVZ0LnB1c2godnQudmFsdWUpfWNhdGNoKFJuKXtlbj17ZXJyb3I6Um59fWZpbmFsbHl7dHJ5e3Z0JiYhdnQuZG9uZSYmKG50PXJ0LnJldHVybikmJm50LmNhbGwocnQpfWZpbmFsbHl7aWYoZW4pdGhyb3cgZW4uZXJyb3J9fXJldHVybiBWdH0sbGU9ZnVuY3Rpb24oKXtmb3IodmFyIFplPVtdLEhlPTA7SGU8YXJndW1lbnRzLmxlbmd0aDtIZSsrKVplPVplLmNvbmNhdCh0ZShhcmd1bWVudHNbSGVdKSk7cmV0dXJuIFplfTtmdW5jdGlvbiBjZShaZSl7dmFyIEhlPSgwLHgudXNlUmVmKShmdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiQ2Fubm90IGNhbGwgYW4gZXZlbnQgaGFuZGxlciB3aGlsZSByZW5kZXJpbmcuIil9KTtIZS5jdXJyZW50PVplO3ZhciBudD0oMCx4LnVzZUNhbGxiYWNrKShmdW5jdGlvbigpe2Zvcih2YXIgcnQ9W10sdnQ9MDt2dDxhcmd1bWVudHMubGVuZ3RoO3Z0KyspcnRbdnRdPWFyZ3VtZW50c1t2dF07dmFyIFZ0PUhlLmN1cnJlbnQ7aWYoVnQpcmV0dXJuIFZ0LmFwcGx5KHZvaWQgMCxsZShydCkpfSxbSGVdKTtpZih0eXBlb2YgWmU9PSJmdW5jdGlvbiIpcmV0dXJuIG50fXZhciBXPWNlLGo9ZnVuY3Rpb24oSGUsbnQpe3ZhciBydD0oMCx4LnVzZVJlZikoITEpOygwLHgudXNlRWZmZWN0KShmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbigpe3J0LmN1cnJlbnQ9ITF9fSxbXSksKDAseC51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7aWYoIXJ0LmN1cnJlbnQpcnQuY3VycmVudD0hMDtlbHNlIHJldHVybiBIZSgpfSxudCl9LEQ9aixWPVtdO2Z1bmN0aW9uIFooWmUpe3JldHVybiBWLnB1c2goWmUpLGZ1bmN0aW9uKCl7dmFyIG50PVYuaW5kZXhPZihaZSk7Vi5zcGxpY2UobnQsMSl9fXZhciBQPSExO2lmKHR5cGVvZiB3aW5kb3chPSJ1bmRlZmluZWQiJiZ3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciYmIVApe3ZhciBLPWZ1bmN0aW9uKCl7aWYoISghSSgpfHwhUigpKSlmb3IodmFyIEhlPTA7SGU8Vi5sZW5ndGg7SGUrKyl7dmFyIG50PVZbSGVdO250KCl9fTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidmlzaWJpbGl0eWNoYW5nZSIsSywhMSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIixLLCExKSxQPSEwfXZhciBzZT1aLG5lPVtdO2Z1bmN0aW9uIG9lKFplKXtyZXR1cm4gbmUucHVzaChaZSksZnVuY3Rpb24oKXt2YXIgbnQ9bmUuaW5kZXhPZihaZSk7bmUuc3BsaWNlKG50LDEpfX12YXIgZmU9ITE7aWYodHlwZW9mIHdpbmRvdyE9InVuZGVmaW5lZCImJndpbmRvdy5hZGRFdmVudExpc3RlbmVyJiYhZmUpe3ZhciBFZT1mdW5jdGlvbigpe2lmKEkoKSlmb3IodmFyIEhlPTA7SGU8bmUubGVuZ3RoO0hlKyspe3ZhciBudD1uZVtIZV07bnQoKX19O3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIixFZSwhMSksZmU9ITB9dmFyIFJlPW9lLEJlPWZ1bmN0aW9uKCl7cmV0dXJuIEJlPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKFplKXtmb3IodmFyIEhlLG50PTEscnQ9YXJndW1lbnRzLmxlbmd0aDtudDxydDtudCsrKXtIZT1hcmd1bWVudHNbbnRdO2Zvcih2YXIgdnQgaW4gSGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKEhlLHZ0KSYmKFplW3Z0XT1IZVt2dF0pfXJldHVybiBaZX0sQmUuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxZZT1mdW5jdGlvbihaZSxIZSl7dmFyIG50PXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlplW1N5bWJvbC5pdGVyYXRvcl07aWYoIW50KXJldHVybiBaZTt2YXIgcnQ9bnQuY2FsbChaZSksdnQsVnQ9W10sZW47dHJ5e2Zvcig7KEhlPT09dm9pZCAwfHxIZS0tID4wKSYmISh2dD1ydC5uZXh0KCkpLmRvbmU7KVZ0LnB1c2godnQudmFsdWUpfWNhdGNoKFJuKXtlbj17ZXJyb3I6Um59fWZpbmFsbHl7dHJ5e3Z0JiYhdnQuZG9uZSYmKG50PXJ0LnJldHVybikmJm50LmNhbGwocnQpfWZpbmFsbHl7aWYoZW4pdGhyb3cgZW4uZXJyb3J9fXJldHVybiBWdH0sb3Q9ZnVuY3Rpb24oKXtmb3IodmFyIFplPVtdLEhlPTA7SGU8YXJndW1lbnRzLmxlbmd0aDtIZSsrKVplPVplLmNvbmNhdChZZShhcmd1bWVudHNbSGVdKSk7cmV0dXJuIFplfSxxZT0iQUhPT0tTX1VTRV9SRVFVRVNUX0RFRkFVTFRfS0VZIixfZT1mdW5jdGlvbigpe2Z1bmN0aW9uIFplKEhlLG50LHJ0LHZ0KXt0aGlzLmNvdW50PTAsdGhpcy5wb2xsaW5nV2hlblZpc2libGVGbGFnPSExLHRoaXMucG9sbGluZ1RpbWVyPXZvaWQgMCx0aGlzLmxvYWRpbmdEZWxheVRpbWVyPXZvaWQgMCx0aGlzLnVuc3Vic2NyaWJlPVtdLHRoaXMudGhhdD10aGlzLHRoaXMuc3RhdGU9e2xvYWRpbmc6ITEscGFyYW1zOltdLGRhdGE6dm9pZCAwLGVycm9yOnZvaWQgMCxydW46dGhpcy5ydW4uYmluZCh0aGlzLnRoYXQpLG11dGF0ZTp0aGlzLm11dGF0ZS5iaW5kKHRoaXMudGhhdCkscmVmcmVzaDp0aGlzLnJlZnJlc2guYmluZCh0aGlzLnRoYXQpLGNhbmNlbDp0aGlzLmNhbmNlbC5iaW5kKHRoaXMudGhhdCksdW5tb3VudDp0aGlzLnVubW91bnQuYmluZCh0aGlzLnRoYXQpfSx0aGlzLnNlcnZpY2U9SGUsdGhpcy5jb25maWc9bnQsdGhpcy5zdWJzY3JpYmU9cnQsdnQmJih0aGlzLnN0YXRlPUJlKEJlKHt9LHRoaXMuc3RhdGUpLHZ0KSksdGhpcy5kZWJvdW5jZVJ1bj10aGlzLmNvbmZpZy5kZWJvdW5jZUludGVydmFsP1QoKSh0aGlzLl9ydW4sdGhpcy5jb25maWcuZGVib3VuY2VJbnRlcnZhbCk6dm9pZCAwLHRoaXMudGhyb3R0bGVSdW49dGhpcy5jb25maWcudGhyb3R0bGVJbnRlcnZhbD9MKCkodGhpcy5fcnVuLHRoaXMuY29uZmlnLnRocm90dGxlSW50ZXJ2YWwpOnZvaWQgMCx0aGlzLmxpbWl0UmVmcmVzaD1tZSh0aGlzLnJlZnJlc2guYmluZCh0aGlzKSx0aGlzLmNvbmZpZy5mb2N1c1RpbWVzcGFuKSx0aGlzLmNvbmZpZy5wb2xsaW5nSW50ZXJ2YWwmJnRoaXMudW5zdWJzY3JpYmUucHVzaChSZSh0aGlzLnJlUG9sbGluZy5iaW5kKHRoaXMpKSksdGhpcy5jb25maWcucmVmcmVzaE9uV2luZG93Rm9jdXMmJnRoaXMudW5zdWJzY3JpYmUucHVzaChzZSh0aGlzLmxpbWl0UmVmcmVzaC5iaW5kKHRoaXMpKSl9cmV0dXJuIFplLnByb3RvdHlwZS5zZXRTdGF0ZT1mdW5jdGlvbihIZSl7SGU9PT12b2lkIDAmJihIZT17fSksdGhpcy5zdGF0ZT1CZShCZSh7fSx0aGlzLnN0YXRlKSxIZSksdGhpcy5zdWJzY3JpYmUodGhpcy5zdGF0ZSl9LFplLnByb3RvdHlwZS5fcnVuPWZ1bmN0aW9uKCl7Zm9yKHZhciBIZT10aGlzLG50PVtdLHJ0PTA7cnQ8YXJndW1lbnRzLmxlbmd0aDtydCsrKW50W3J0XT1hcmd1bWVudHNbcnRdO3RoaXMucG9sbGluZ1RpbWVyJiZjbGVhclRpbWVvdXQodGhpcy5wb2xsaW5nVGltZXIpLHRoaXMubG9hZGluZ0RlbGF5VGltZXImJmNsZWFyVGltZW91dCh0aGlzLmxvYWRpbmdEZWxheVRpbWVyKSx0aGlzLmNvdW50Kz0xO3ZhciB2dD10aGlzLmNvdW50O3JldHVybiB0aGlzLnNldFN0YXRlKHtsb2FkaW5nOiF0aGlzLmNvbmZpZy5sb2FkaW5nRGVsYXkscGFyYW1zOm50fSksdGhpcy5jb25maWcubG9hZGluZ0RlbGF5JiYodGhpcy5sb2FkaW5nRGVsYXlUaW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7SGUuc2V0U3RhdGUoe2xvYWRpbmc6ITB9KX0sdGhpcy5jb25maWcubG9hZGluZ0RlbGF5KSksdGhpcy5zZXJ2aWNlLmFwcGx5KHRoaXMsb3QobnQpKS50aGVuKGZ1bmN0aW9uKFZ0KXtpZih2dCE9PUhlLmNvdW50KXJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbigpe30pO0hlLmxvYWRpbmdEZWxheVRpbWVyJiZjbGVhclRpbWVvdXQoSGUubG9hZGluZ0RlbGF5VGltZXIpO3ZhciBlbj1IZS5jb25maWcuZm9ybWF0UmVzdWx0P0hlLmNvbmZpZy5mb3JtYXRSZXN1bHQoVnQpOlZ0O3JldHVybiBIZS5zZXRTdGF0ZSh7ZGF0YTplbixlcnJvcjp2b2lkIDAsbG9hZGluZzohMX0pLEhlLmNvbmZpZy5vblN1Y2Nlc3MmJkhlLmNvbmZpZy5vblN1Y2Nlc3MoZW4sbnQpLGVufSkuY2F0Y2goZnVuY3Rpb24oVnQpe2lmKHZ0IT09SGUuY291bnQpcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKCl7fSk7aWYoSGUubG9hZGluZ0RlbGF5VGltZXImJmNsZWFyVGltZW91dChIZS5sb2FkaW5nRGVsYXlUaW1lciksSGUuc2V0U3RhdGUoe2RhdGE6dm9pZCAwLGVycm9yOlZ0LGxvYWRpbmc6ITF9KSxIZS5jb25maWcub25FcnJvciYmSGUuY29uZmlnLm9uRXJyb3IoVnQsbnQpLEhlLmNvbmZpZy50aHJvd09uRXJyb3IpdGhyb3cgVnQ7cmV0dXJuIGNvbnNvbGUuZXJyb3IoVnQpLFByb21pc2UucmVqZWN0KCJ1c2VSZXF1ZXN0IGhhcyBjYXVnaHQgdGhlIGV4Y2VwdGlvbiwgaWYgeW91IG5lZWQgdG8gaGFuZGxlIHRoZSBleGNlcHRpb24geW91cnNlbGYsIHlvdSBjYW4gc2V0IG9wdGlvbnMudGhyb3dPbkVycm9yIHRvIHRydWUuIil9KS5maW5hbGx5KGZ1bmN0aW9uKCl7aWYodnQ9PT1IZS5jb3VudCYmSGUuY29uZmlnLnBvbGxpbmdJbnRlcnZhbCl7aWYoIUkoKSYmIUhlLmNvbmZpZy5wb2xsaW5nV2hlbkhpZGRlbil7SGUucG9sbGluZ1doZW5WaXNpYmxlRmxhZz0hMDtyZXR1cm59SGUucG9sbGluZ1RpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtIZS5fcnVuLmFwcGx5KEhlLG90KG50KSl9LEhlLmNvbmZpZy5wb2xsaW5nSW50ZXJ2YWwpfX0pfSxaZS5wcm90b3R5cGUucnVuPWZ1bmN0aW9uKCl7Zm9yKHZhciBIZT1bXSxudD0wO250PGFyZ3VtZW50cy5sZW5ndGg7bnQrKylIZVtudF09YXJndW1lbnRzW250XTtyZXR1cm4gdGhpcy5kZWJvdW5jZVJ1bj8odGhpcy5kZWJvdW5jZVJ1bi5hcHBseSh0aGlzLG90KEhlKSksUHJvbWlzZS5yZXNvbHZlKG51bGwpKTp0aGlzLnRocm90dGxlUnVuPyh0aGlzLnRocm90dGxlUnVuLmFwcGx5KHRoaXMsb3QoSGUpKSxQcm9taXNlLnJlc29sdmUobnVsbCkpOnRoaXMuX3J1bi5hcHBseSh0aGlzLG90KEhlKSl9LFplLnByb3RvdHlwZS5jYW5jZWw9ZnVuY3Rpb24oKXt0aGlzLmRlYm91bmNlUnVuJiZ0aGlzLmRlYm91bmNlUnVuLmNhbmNlbCgpLHRoaXMudGhyb3R0bGVSdW4mJnRoaXMudGhyb3R0bGVSdW4uY2FuY2VsKCksdGhpcy5sb2FkaW5nRGVsYXlUaW1lciYmY2xlYXJUaW1lb3V0KHRoaXMubG9hZGluZ0RlbGF5VGltZXIpLHRoaXMucG9sbGluZ1RpbWVyJiZjbGVhclRpbWVvdXQodGhpcy5wb2xsaW5nVGltZXIpLHRoaXMucG9sbGluZ1doZW5WaXNpYmxlRmxhZz0hMSx0aGlzLmNvdW50Kz0xLHRoaXMuc2V0U3RhdGUoe2xvYWRpbmc6ITF9KX0sWmUucHJvdG90eXBlLnJlZnJlc2g9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ydW4uYXBwbHkodGhpcyxvdCh0aGlzLnN0YXRlLnBhcmFtcykpfSxaZS5wcm90b3R5cGUucmVQb2xsaW5nPWZ1bmN0aW9uKCl7dGhpcy5wb2xsaW5nV2hlblZpc2libGVGbGFnJiYodGhpcy5wb2xsaW5nV2hlblZpc2libGVGbGFnPSExLHRoaXMucmVmcmVzaCgpKX0sWmUucHJvdG90eXBlLm11dGF0ZT1mdW5jdGlvbihIZSl7dHlwZW9mIEhlPT0iZnVuY3Rpb24iP3RoaXMuc2V0U3RhdGUoe2RhdGE6SGUodGhpcy5zdGF0ZS5kYXRhKXx8e319KTp0aGlzLnNldFN0YXRlKHtkYXRhOkhlfSl9LFplLnByb3RvdHlwZS51bm1vdW50PWZ1bmN0aW9uKCl7dGhpcy5jYW5jZWwoKSx0aGlzLnVuc3Vic2NyaWJlLmZvckVhY2goZnVuY3Rpb24oSGUpe0hlKCl9KX0sWmV9KCk7ZnVuY3Rpb24gRmUoWmUsSGUpe3ZhciBudD1IZXx8e30scnQ9bnQucmVmcmVzaERlcHMsdnQ9cnQ9PT12b2lkIDA/W106cnQsVnQ9bnQubWFudWFsLGVuPVZ0PT09dm9pZCAwPyExOlZ0LFJuPW50Lm9uU3VjY2Vzcyxqbj1Sbj09PXZvaWQgMD9mdW5jdGlvbigpe306Um4sYm49bnQub25FcnJvcixIbj1ibj09PXZvaWQgMD9mdW5jdGlvbigpe306Ym4sR3Q9bnQuZGVmYXVsdExvYWRpbmcsU249R3Q9PT12b2lkIDA/ITE6R3QsT249bnQubG9hZGluZ0RlbGF5LF9uPW50LnBvbGxpbmdJbnRlcnZhbCxQZT1fbj09PXZvaWQgMD8wOl9uLGdlPW50LnBvbGxpbmdXaGVuSGlkZGVuLHZlPWdlPT09dm9pZCAwPyEwOmdlLEllPW50LmRlZmF1bHRQYXJhbXMseGU9SWU9PT12b2lkIDA/W106SWUsYXQ9bnQucmVmcmVzaE9uV2luZG93Rm9jdXMsZHQ9YXQ9PT12b2lkIDA/ITE6YXQsRXQ9bnQuZm9jdXNUaW1lc3BhbixIdD1FdD09PXZvaWQgMD81ZTM6RXQsanQ9bnQuZmV0Y2hLZXksRnQ9bnQuY2FjaGVLZXkscG49bnQuY2FjaGVUaW1lLGNuPXBuPT09dm9pZCAwPzUqNjAqMWUzOnBuLG9yPW50LnN0YWxlVGltZSxUbj1vcj09PXZvaWQgMD8wOm9yLHpuPW50LmRlYm91bmNlSW50ZXJ2YWwscm49bnQudGhyb3R0bGVJbnRlcnZhbCxLdD1udC5pbml0aWFsRGF0YSx6dD1udC5yZWFkeSxPdD16dD09PXZvaWQgMD8hMDp6dCxsbj1udC50aHJvd09uRXJyb3IsRW49bG49PT12b2lkIDA/ITE6bG4sR249KDAseC51c2VSZWYpKHFlKSxwcj1XKFplKSxQcj1XKGpuKSxicj1XKEhuKSxNcj1XKGp0KSwkcjsiZm9ybWF0UmVzdWx0ImluIG50JiYoJHI9bnQuZm9ybWF0UmVzdWx0KTt2YXIgR3I9Vygkciksb2E9e2Zvcm1hdFJlc3VsdDpHcixvblN1Y2Nlc3M6UHIsb25FcnJvcjpicixsb2FkaW5nRGVsYXk6T24scG9sbGluZ0ludGVydmFsOlBlLHBvbGxpbmdXaGVuSGlkZGVuOnZlLHJlZnJlc2hPbldpbmRvd0ZvY3VzOiFlbiYmZHQsZm9jdXNUaW1lc3BhbjpIdCxkZWJvdW5jZUludGVydmFsOnpuLHRocm90dGxlSW50ZXJ2YWw6cm4sdGhyb3dPbkVycm9yOkVufSxyYT1XKGZ1bmN0aW9uKEhyLEpyKXtoYShmdW5jdGlvbihUYSl7cmV0dXJuIFRhW0hyXT1KcixCZSh7fSxUYSl9KX0pLE1hPVllKCgwLHgudXNlU3RhdGUpKGZ1bmN0aW9uKCl7dmFyIEhyO2lmKEZ0KXt2YXIgSnI9KEhyPVkoRnQpKT09PW51bGx8fEhyPT09dm9pZCAwP3ZvaWQgMDpIci5kYXRhO2lmKEpyKXtHbi5jdXJyZW50PUpyLm5ld3N0RmV0Y2hLZXk7dmFyIFRhPXt9O3JldHVybiBPYmplY3Qua2V5cyhKci5mZXRjaGVzKS5mb3JFYWNoKGZ1bmN0aW9uKGphKXt2YXIgJGE9SnIuZmV0Y2hlc1tqYV0seXI9bmV3IF9lKHByLG9hLHJhLmJpbmQobnVsbCxqYSkse2xvYWRpbmc6JGEubG9hZGluZyxwYXJhbXM6JGEucGFyYW1zLGRhdGE6JGEuZGF0YSxlcnJvcjokYS5lcnJvcn0pO1RhW2phXT15ci5zdGF0ZX0pLFRhfX1yZXR1cm57fX0pLDIpLGZhPU1hWzBdLGhhPU1hWzFdLGVhPSgwLHgudXNlUmVmKShmYSk7ZWEuY3VycmVudD1mYTt2YXIgTmE9KDAseC51c2VSZWYpKCksYmE9KDAseC51c2VDYWxsYmFjaykoZnVuY3Rpb24oKXtmb3IodmFyIEhyPVtdLEpyPTA7SnI8YXJndW1lbnRzLmxlbmd0aDtKcisrKUhyW0pyXT1hcmd1bWVudHNbSnJdO2lmKCFPdCl7TmEuY3VycmVudD1IcjtyZXR1cm59aWYoTXIpe3ZhciBUYT1Nci5hcHBseSh2b2lkIDAsb3QoSHIpKTtHbi5jdXJyZW50PVRhPT09dm9pZCAwP3FlOlRhfXZhciBqYT1Hbi5jdXJyZW50LCRhPWVhLmN1cnJlbnRbamFdO2lmKCEkYSl7dmFyIHlyPW5ldyBfZShwcixvYSxyYS5iaW5kKG51bGwsamEpLHtkYXRhOkt0fSk7JGE9eXIuc3RhdGUsaGEoZnVuY3Rpb24oVnIpe3JldHVybiBWcltqYV09JGEsQmUoe30sVnIpfSl9cmV0dXJuICRhLnJ1bi5hcHBseSgkYSxvdChIcikpfSxbanQscmEsT3RdKSxBcj0oMCx4LnVzZVJlZikoYmEpO0FyLmN1cnJlbnQ9YmEsRChmdW5jdGlvbigpe0Z0JiZHKEZ0LGNuLHtmZXRjaGVzOmZhLG5ld3N0RmV0Y2hLZXk6R24uY3VycmVudH0pfSxbRnQsZmFdKTt2YXIgUnI9KDAseC51c2VSZWYpKCExKTtEKGZ1bmN0aW9uKCl7T3QmJighUnIuY3VycmVudCYmTmEuY3VycmVudCYmQXIuY3VycmVudC5hcHBseShBcixvdChOYS5jdXJyZW50KSksUnIuY3VycmVudD0hMCl9LFtPdF0pLCgwLHgudXNlRWZmZWN0KShmdW5jdGlvbigpe3ZhciBIcjtpZighZW4paWYoT2JqZWN0LmtleXMoZmEpLmxlbmd0aD4wKXt2YXIgSnI9RnQmJigoSHI9WShGdCkpPT09bnVsbHx8SHI9PT12b2lkIDA/dm9pZCAwOkhyLnN0YXJ0VGltZSl8fDA7VG49PT0tMXx8bmV3IERhdGUoKS5nZXRUaW1lKCktSnI8PVRufHxPYmplY3QudmFsdWVzKGZhKS5mb3JFYWNoKGZ1bmN0aW9uKFRhKXtUYS5yZWZyZXNoKCl9KX1lbHNlIEFyLmN1cnJlbnQuYXBwbHkoQXIsb3QoeGUpKX0sW10pO3ZhciBtcj0oMCx4LnVzZUNhbGxiYWNrKShmdW5jdGlvbigpe09iamVjdC52YWx1ZXMoZWEuY3VycmVudCkuZm9yRWFjaChmdW5jdGlvbihIcil7SHIudW5tb3VudCgpfSksR24uY3VycmVudD1xZSxoYSh7fSksZWEuY3VycmVudD17fX0sW2hhXSk7RChmdW5jdGlvbigpe2VufHxPYmplY3QudmFsdWVzKGVhLmN1cnJlbnQpLmZvckVhY2goZnVuY3Rpb24oSHIpe0hyLnJlZnJlc2goKX0pfSxvdCh2dCkpLCgwLHgudXNlRWZmZWN0KShmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbigpe09iamVjdC52YWx1ZXMoZWEuY3VycmVudCkuZm9yRWFjaChmdW5jdGlvbihIcil7SHIudW5tb3VudCgpfSl9fSxbXSk7dmFyIElyPSgwLHgudXNlQ2FsbGJhY2spKGZ1bmN0aW9uKEhyKXtyZXR1cm4gZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIllvdSBzaG91bGQndCBjYWxsICIrSHIrIiB3aGVuIHNlcnZpY2Ugbm90IGV4ZWN1dGVkIG9uY2UuIil9fSxbXSk7cmV0dXJuIEJlKEJlKHtsb2FkaW5nOk90JiYhZW58fFNuLGRhdGE6S3QsZXJyb3I6dm9pZCAwLHBhcmFtczpbXSxjYW5jZWw6SXIoImNhbmNlbCIpLHJlZnJlc2g6SXIoInJlZnJlc2giKSxtdXRhdGU6SXIoIm11dGF0ZSIpfSxmYVtHbi5jdXJyZW50XXx8e30pLHtydW46YmEsZmV0Y2hlczpmYSxyZXNldDptcn0pfXZhciBTZT1GZSxxPWZ1bmN0aW9uKCl7cmV0dXJuIHE9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24oWmUpe2Zvcih2YXIgSGUsbnQ9MSxydD1hcmd1bWVudHMubGVuZ3RoO250PHJ0O250Kyspe0hlPWFyZ3VtZW50c1tudF07Zm9yKHZhciB2dCBpbiBIZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoSGUsdnQpJiYoWmVbdnRdPUhlW3Z0XSl9cmV0dXJuIFplfSxxLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0saz1mdW5jdGlvbihaZSxIZSl7dmFyIG50PXt9O2Zvcih2YXIgcnQgaW4gWmUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKFplLHJ0KSYmSGUuaW5kZXhPZihydCk8MCYmKG50W3J0XT1aZVtydF0pO2lmKFplIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIHZ0PTAscnQ9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhaZSk7dnQ8cnQubGVuZ3RoO3Z0KyspSGUuaW5kZXhPZihydFt2dF0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChaZSxydFt2dF0pJiYobnRbcnRbdnRdXT1aZVtydFt2dF1dKTtyZXR1cm4gbnR9LE09ZnVuY3Rpb24oWmUsSGUpe3ZhciBudD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZaZVtTeW1ib2wuaXRlcmF0b3JdO2lmKCFudClyZXR1cm4gWmU7dmFyIHJ0PW50LmNhbGwoWmUpLHZ0LFZ0PVtdLGVuO3RyeXtmb3IoOyhIZT09PXZvaWQgMHx8SGUtLSA+MCkmJiEodnQ9cnQubmV4dCgpKS5kb25lOylWdC5wdXNoKHZ0LnZhbHVlKX1jYXRjaChSbil7ZW49e2Vycm9yOlJufX1maW5hbGx5e3RyeXt2dCYmIXZ0LmRvbmUmJihudD1ydC5yZXR1cm4pJiZudC5jYWxsKHJ0KX1maW5hbGx5e2lmKGVuKXRocm93IGVuLmVycm9yfX1yZXR1cm4gVnR9LEE9ZnVuY3Rpb24oKXtmb3IodmFyIFplPVtdLEhlPTA7SGU8YXJndW1lbnRzLmxlbmd0aDtIZSsrKVplPVplLmNvbmNhdChNKGFyZ3VtZW50c1tIZV0pKTtyZXR1cm4gWmV9O2Z1bmN0aW9uIFUoWmUsSGUpe3ZhciBudD1IZS5yZWZyZXNoRGVwcyxydD1udD09PXZvaWQgMD9bXTpudCx2dD1IZS5yZWYsVnQ9SGUuaXNOb01vcmUsZW49SGUudGhyZXNob2xkLFJuPWVuPT09dm9pZCAwPzEwMDplbixqbj1IZS5mZXRjaEtleSxibj1rKEhlLFsicmVmcmVzaERlcHMiLCJyZWYiLCJpc05vTW9yZSIsInRocmVzaG9sZCIsImZldGNoS2V5Il0pLEhuPU0oKDAseC51c2VTdGF0ZSkoITEpLDIpLEd0PUhuWzBdLFNuPUhuWzFdOygwLHgudXNlRWZmZWN0KShmdW5jdGlvbigpe0hlLmZldGNoS2V5JiZjb25zb2xlLndhcm4oInVzZVJlcXVlc3QgbG9hZE1vcmUgbW9kZSBkb24ndCBuZWVkIGZldGNoS2V5ISIpfSxbXSk7dmFyIE9uPVNlKFplLHEocSh7fSxibikse2ZldGNoS2V5OmZ1bmN0aW9uKG9yKXt2YXIgVG47cmV0dXJuKChUbj1vcj09bnVsbD92b2lkIDA6b3IubGlzdCk9PT1udWxsfHxUbj09PXZvaWQgMD92b2lkIDA6VG4ubGVuZ3RoKXx8MH0sb25TdWNjZXNzOmZ1bmN0aW9uKCl7Zm9yKHZhciBvcj1bXSxUbj0wO1RuPGFyZ3VtZW50cy5sZW5ndGg7VG4rKylvcltUbl09YXJndW1lbnRzW1RuXTtTbighMSksSGUub25TdWNjZXNzJiZIZS5vblN1Y2Nlc3MuYXBwbHkoSGUsQShvcikpfX0pKSxfbj1Pbi5kYXRhLFBlPU9uLnJ1bixnZT1Pbi5wYXJhbXMsdmU9T24ucmVzZXQsSWU9T24ubG9hZGluZyx4ZT1Pbi5mZXRjaGVzLGF0PSgwLHgudXNlQ2FsbGJhY2spKGZ1bmN0aW9uKCl7dmUoKTt2YXIgY249TShnZSksb3I9Y24uc2xpY2UoMSk7UGUuYXBwbHkodm9pZCAwLEEoW3ZvaWQgMF0sb3IpKX0sW1BlLHZlLGdlXSksZHQ9KDAseC51c2VSZWYpKGF0KTtkdC5jdXJyZW50PWF0LEQoZnVuY3Rpb24oKXtIZS5tYW51YWx8fGR0LmN1cnJlbnQoKX0sQShydCkpO3ZhciBFdD0oMCx4LnVzZU1lbW8pKGZ1bmN0aW9uKCl7dmFyIGNuPVtdLG9yPV9uO3JldHVybiBPYmplY3QudmFsdWVzKHhlKS5mb3JFYWNoKGZ1bmN0aW9uKFRuKXt2YXIgem4scm47ISgoem49VG4uZGF0YSk9PT1udWxsfHx6bj09PXZvaWQgMCkmJnpuLmxpc3QmJihjbj1jbi5jb25jYXQoKHJuPVRuLmRhdGEpPT09bnVsbHx8cm49PT12b2lkIDA/dm9pZCAwOnJuLmxpc3QpKSxUbi5sb2FkaW5nfHwob3I9VG4uZGF0YSl9KSxxKHEoe30sb3IpLHtsaXN0OmNufSl9LFt4ZSxfbl0pLEh0PVZ0PyFJZSYmIUd0JiZWdChFdCk6ITEsanQ9KDAseC51c2VDYWxsYmFjaykoZnVuY3Rpb24oKXtpZighSHQpe1NuKCEwKTt2YXIgY249TShnZSksb3I9Y24uc2xpY2UoMSk7UGUuYXBwbHkodm9pZCAwLEEoW0V0XSxvcikpfX0sW0h0LFBlLEV0LGdlXSksRnQ9ZnVuY3Rpb24oKXtJZXx8R3R8fCF2dHx8IXZ0LmN1cnJlbnR8fHZ0LmN1cnJlbnQuc2Nyb2xsSGVpZ2h0LXZ0LmN1cnJlbnQuc2Nyb2xsVG9wPD12dC5jdXJyZW50LmNsaWVudEhlaWdodCtSbiYmanQoKX0scG49KDAseC51c2VSZWYpKEZ0KTtyZXR1cm4gcG4uY3VycmVudD1GdCwoMCx4LnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtpZighdnR8fCF2dC5jdXJyZW50KXJldHVybiBmdW5jdGlvbigpe307dmFyIGNuPWZ1bmN0aW9uKCl7cmV0dXJuIHBuLmN1cnJlbnQoKX07cmV0dXJuIHZ0LmN1cnJlbnQuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixjbiksZnVuY3Rpb24oKXt2dCYmdnQuY3VycmVudCYmdnQuY3VycmVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLGNuKX19LFtwbl0pLHEocSh7fSxPbikse2RhdGE6RXQscmVsb2FkOmF0LGxvYWRpbmc6SWUmJkV0Lmxpc3QubGVuZ3RoPT09MCxsb2FkTW9yZTpqdCxsb2FkaW5nTW9yZTpHdCxub01vcmU6SHR9KX12YXIgTj1VLFE9ZnVuY3Rpb24oKXtyZXR1cm4gUT1PYmplY3QuYXNzaWdufHxmdW5jdGlvbihaZSl7Zm9yKHZhciBIZSxudD0xLHJ0PWFyZ3VtZW50cy5sZW5ndGg7bnQ8cnQ7bnQrKyl7SGU9YXJndW1lbnRzW250XTtmb3IodmFyIHZ0IGluIEhlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChIZSx2dCkmJihaZVt2dF09SGVbdnRdKX1yZXR1cm4gWmV9LFEuYXBwbHkodGhpcyxhcmd1bWVudHMpfSx1ZT1mdW5jdGlvbihaZSxIZSl7dmFyIG50PXt9O2Zvcih2YXIgcnQgaW4gWmUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKFplLHJ0KSYmSGUuaW5kZXhPZihydCk8MCYmKG50W3J0XT1aZVtydF0pO2lmKFplIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIHZ0PTAscnQ9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhaZSk7dnQ8cnQubGVuZ3RoO3Z0KyspSGUuaW5kZXhPZihydFt2dF0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChaZSxydFt2dF0pJiYobnRbcnRbdnRdXT1aZVtydFt2dF1dKTtyZXR1cm4gbnR9LCQ9ZnVuY3Rpb24oWmUsSGUpe3ZhciBudD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZaZVtTeW1ib2wuaXRlcmF0b3JdO2lmKCFudClyZXR1cm4gWmU7dmFyIHJ0PW50LmNhbGwoWmUpLHZ0LFZ0PVtdLGVuO3RyeXtmb3IoOyhIZT09PXZvaWQgMHx8SGUtLSA+MCkmJiEodnQ9cnQubmV4dCgpKS5kb25lOylWdC5wdXNoKHZ0LnZhbHVlKX1jYXRjaChSbil7ZW49e2Vycm9yOlJufX1maW5hbGx5e3RyeXt2dCYmIXZ0LmRvbmUmJihudD1ydC5yZXR1cm4pJiZudC5jYWxsKHJ0KX1maW5hbGx5e2lmKGVuKXRocm93IGVuLmVycm9yfX1yZXR1cm4gVnR9LF89ZnVuY3Rpb24oKXtmb3IodmFyIFplPVtdLEhlPTA7SGU8YXJndW1lbnRzLmxlbmd0aDtIZSsrKVplPVplLmNvbmNhdCgkKGFyZ3VtZW50c1tIZV0pKTtyZXR1cm4gWmV9O2Z1bmN0aW9uIHBlKFplLEhlKXt2YXIgbnQ9SGUucGFnaW5hdGVkLHJ0PUhlLmRlZmF1bHRQYWdlU2l6ZSx2dD1ydD09PXZvaWQgMD8xMDpydCxWdD1IZS5yZWZyZXNoRGVwcyxlbj1WdD09PXZvaWQgMD9bXTpWdCxSbj1IZS5mZXRjaEtleSxqbj11ZShIZSxbInBhZ2luYXRlZCIsImRlZmF1bHRQYWdlU2l6ZSIsInJlZnJlc2hEZXBzIiwiZmV0Y2hLZXkiXSk7KDAseC51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7Um4mJmNvbnNvbGUuZXJyb3IoInVzZVJlcXVlc3QgcGFnaW5hdGlvbidzIGZldGNoS2V5IHdpbGwgbm90IHdvcmshIil9LFtdKTt2YXIgYm49U2UoWmUsUSh7ZGVmYXVsdFBhcmFtczpbe2N1cnJlbnQ6MSxwYWdlU2l6ZTp2dH1dfSxqbikpLEhuPWJuLmRhdGEsR3Q9Ym4ucGFyYW1zLFNuPWJuLnJ1bixPbj1ibi5sb2FkaW5nLF9uPXVlKGJuLFsiZGF0YSIsInBhcmFtcyIsInJ1biIsImxvYWRpbmciXSksUGU9R3QmJkd0WzBdP0d0WzBdOnt9LGdlPVBlLmN1cnJlbnQsdmU9Z2U9PT12b2lkIDA/MTpnZSxJZT1QZS5wYWdlU2l6ZSx4ZT1JZT09PXZvaWQgMD92dDpJZSxhdD1QZS5zb3J0ZXIsZHQ9YXQ9PT12b2lkIDA/e306YXQsRXQ9UGUuZmlsdGVycyxIdD1FdD09PXZvaWQgMD97fTpFdCxqdD0oMCx4LnVzZUNhbGxiYWNrKShmdW5jdGlvbihLdCl7dmFyIHp0PSQoR3QpLE90PXp0WzBdLGxuPXp0LnNsaWNlKDEpO1NuLmFwcGx5KHZvaWQgMCxfKFtRKFEoe30sT3QpLEt0KV0sbG4pKX0sW1NuLEd0XSksRnQ9KEhuPT1udWxsP3ZvaWQgMDpIbi50b3RhbCl8fDAscG49KDAseC51c2VNZW1vKShmdW5jdGlvbigpe3JldHVybiBNYXRoLmNlaWwoRnQveGUpfSxbeGUsRnRdKSxjbj0oMCx4LnVzZUNhbGxiYWNrKShmdW5jdGlvbihLdCx6dCl7dmFyIE90PUt0PD0wPzE6S3QsbG49enQ8PTA/MTp6dCxFbj1NYXRoLmNlaWwoRnQvbG4pO090PkVuJiYoT3Q9TWF0aC5tYXgoMSxFbikpLGp0KHtjdXJyZW50Ok90LHBhZ2VTaXplOmxufSl9LFtGdCxqdF0pLG9yPSgwLHgudXNlQ2FsbGJhY2spKGZ1bmN0aW9uKEt0KXtjbihLdCx4ZSl9LFtjbix4ZV0pLFRuPSgwLHgudXNlQ2FsbGJhY2spKGZ1bmN0aW9uKEt0KXtjbih2ZSxLdCl9LFtjbix2ZV0pLHpuPSgwLHgudXNlUmVmKShvcik7em4uY3VycmVudD1vcixEKGZ1bmN0aW9uKCl7SGUubWFudWFsfHx6bi5jdXJyZW50KDEpfSxfKGVuKSk7dmFyIHJuPSgwLHgudXNlQ2FsbGJhY2spKGZ1bmN0aW9uKEt0LHp0LE90KXtqdCh7Y3VycmVudDpLdC5jdXJyZW50LHBhZ2VTaXplOkt0LnBhZ2VTaXplfHx2dCxmaWx0ZXJzOnp0LHNvcnRlcjpPdH0pfSxbSHQsZHQsanRdKTtyZXR1cm4gUSh7bG9hZGluZzpPbixkYXRhOkhuLHBhcmFtczpHdCxydW46U24scGFnaW5hdGlvbjp7Y3VycmVudDp2ZSxwYWdlU2l6ZTp4ZSx0b3RhbDpGdCx0b3RhbFBhZ2U6cG4sb25DaGFuZ2U6Y24sY2hhbmdlQ3VycmVudDpvcixjaGFuZ2VQYWdlU2l6ZTpUbn0sdGFibGVQcm9wczp7ZGF0YVNvdXJjZTooSG49PW51bGw/dm9pZCAwOkhuLmxpc3QpfHxbXSxsb2FkaW5nOk9uLG9uQ2hhbmdlOnJuLHBhZ2luYXRpb246e2N1cnJlbnQ6dmUscGFnZVNpemU6eGUsdG90YWw6RnR9fSxzb3J0ZXI6ZHQsZmlsdGVyczpIdH0sX24pfXZhciByZT1wZSxhZT14LmNyZWF0ZUNvbnRleHQoe30pO2FlLmRpc3BsYXlOYW1lPSJVc2VSZXF1ZXN0Q29uZmlnQ29udGV4dCI7dmFyIHdlPWFlLExlPWZ1bmN0aW9uKCl7cmV0dXJuIExlPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKFplKXtmb3IodmFyIEhlLG50PTEscnQ9YXJndW1lbnRzLmxlbmd0aDtudDxydDtudCsrKXtIZT1hcmd1bWVudHNbbnRdO2Zvcih2YXIgdnQgaW4gSGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKEhlLHZ0KSYmKFplW3Z0XT1IZVt2dF0pfXJldHVybiBaZX0sTGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxNZT1mdW5jdGlvbihaZSxIZSl7dmFyIG50PXt9O2Zvcih2YXIgcnQgaW4gWmUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKFplLHJ0KSYmSGUuaW5kZXhPZihydCk8MCYmKG50W3J0XT1aZVtydF0pO2lmKFplIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIHZ0PTAscnQ9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhaZSk7dnQ8cnQubGVuZ3RoO3Z0KyspSGUuaW5kZXhPZihydFt2dF0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChaZSxydFt2dF0pJiYobnRbcnRbdnRdXT1aZVtydFt2dF1dKTtyZXR1cm4gbnR9LGJlPWZ1bmN0aW9uKFplLEhlKXt2YXIgbnQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmWmVbU3ltYm9sLml0ZXJhdG9yXTtpZighbnQpcmV0dXJuIFplO3ZhciBydD1udC5jYWxsKFplKSx2dCxWdD1bXSxlbjt0cnl7Zm9yKDsoSGU9PT12b2lkIDB8fEhlLS0gPjApJiYhKHZ0PXJ0Lm5leHQoKSkuZG9uZTspVnQucHVzaCh2dC52YWx1ZSl9Y2F0Y2goUm4pe2VuPXtlcnJvcjpSbn19ZmluYWxseXt0cnl7dnQmJiF2dC5kb25lJiYobnQ9cnQucmV0dXJuKSYmbnQuY2FsbChydCl9ZmluYWxseXtpZihlbil0aHJvdyBlbi5lcnJvcn19cmV0dXJuIFZ0fSwkZT1mdW5jdGlvbigpe2Zvcih2YXIgWmU9W10sSGU9MDtIZTxhcmd1bWVudHMubGVuZ3RoO0hlKyspWmU9WmUuY29uY2F0KGJlKGFyZ3VtZW50c1tIZV0pKTtyZXR1cm4gWmV9O2Z1bmN0aW9uIGtlKFplLEhlKXtIZT09PXZvaWQgMCYmKEhlPXt9KTt2YXIgbnQ9KDAseC51c2VDb250ZXh0KSh3ZSkscnQ9TGUoTGUoe30sbnQpLEhlKSx2dD1ydC5wYWdpbmF0ZWQsVnQ9cnQubG9hZE1vcmUsZW49cnQucmVxdWVzdE1ldGhvZCxSbj0oMCx4LnVzZVJlZikodnQpLGpuPSgwLHgudXNlUmVmKShWdCk7aWYoUm4uY3VycmVudCE9PXZ0KXRocm93IEVycm9yKCJZb3Ugc2hvdWxkIG5vdCBtb2RpZnkgdGhlIHBhZ2luYXRlZCBvZiBvcHRpb25zIik7aWYoam4uY3VycmVudCE9PVZ0KXRocm93IEVycm9yKCJZb3Ugc2hvdWxkIG5vdCBtb2RpZnkgdGhlIGxvYWRNb3JlIG9mIG9wdGlvbnMiKTtSbi5jdXJyZW50PXZ0LGpuLmN1cnJlbnQ9VnQ7dmFyIGJuPWZ1bmN0aW9uKCl7Zm9yKHZhciBQZT1bXSxnZT0wO2dlPGFyZ3VtZW50cy5sZW5ndGg7Z2UrKylQZVtnZV09YXJndW1lbnRzW2dlXTtyZXR1cm4gZmV0Y2guYXBwbHkodm9pZCAwLCRlKFBlKSkudGhlbihmdW5jdGlvbih2ZSl7aWYodmUub2spcmV0dXJuIHZlLmpzb24oKTt0aHJvdyBuZXcgRXJyb3IodmUuc3RhdHVzVGV4dCl9KX0sSG49ZW58fGJuLEd0O3N3aXRjaCh0eXBlb2YgWmUpe2Nhc2Uic3RyaW5nIjpHdD1mdW5jdGlvbigpe3JldHVybiBIbihaZSl9O2JyZWFrO2Nhc2Uib2JqZWN0Ijp2YXIgU249WmUudXJsLE9uPU1lKFplLFsidXJsIl0pO0d0PWZ1bmN0aW9uKCl7cmV0dXJuIGVuP2VuKFplKTpibihTbixPbil9O2JyZWFrO2RlZmF1bHQ6R3Q9ZnVuY3Rpb24oKXtmb3IodmFyIFBlPVtdLGdlPTA7Z2U8YXJndW1lbnRzLmxlbmd0aDtnZSsrKVBlW2dlXT1hcmd1bWVudHNbZ2VdO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbih2ZSxJZSl7dmFyIHhlPVplLmFwcGx5KHZvaWQgMCwkZShQZSkpLGF0PXhlO2lmKCF4ZS50aGVuKXN3aXRjaCh0eXBlb2YgeGUpe2Nhc2Uic3RyaW5nIjphdD1Ibih4ZSk7YnJlYWs7Y2FzZSJvYmplY3QiOnZhciBkdD14ZS51cmwsRXQ9TWUoeGUsWyJ1cmwiXSk7YXQ9ZW4/ZW4oeGUpOmJuKGR0LEV0KTticmVha31hdC50aGVuKHZlKS5jYXRjaChJZSl9KX19cmV0dXJuIFZ0P04oR3QscnQpOnZ0P3JlKEd0LHJ0KTpTZShHdCxydCl9dmFyIEFlPXdlLlByb3ZpZGVyLHR0PW51bGwsbXQ9a2UsdXQ9ZSgyMDc2MSksRGU9WyJ1cmwiXTtmdW5jdGlvbiBOZShaZSl7dmFyIEhlPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTp7fTtyZXR1cm4gbXQoWmUsZygpKHtmb3JtYXRSZXN1bHQ6ZnVuY3Rpb24ocnQpe3JldHVybiBydD09bnVsbD92b2lkIDA6cnQuZGF0YX0scmVxdWVzdE1ldGhvZDpmdW5jdGlvbihydCl7aWYodHlwZW9mIHJ0PT0ic3RyaW5nIilyZXR1cm4gV2UocnQpO2lmKG0oKShydCk9PT0ib2JqZWN0Iil7dmFyIHZ0PXJ0LnVybCxWdD1oKCkocnQsRGUpO3JldHVybiBXZSh2dCxWdCl9dGhyb3cgbmV3IEVycm9yKCJyZXF1ZXN0IG9wdGlvbnMgZXJyb3IiKX19LEhlKSl9dmFyIFhlLEplLGd0PWZ1bmN0aW9uKCl7cmV0dXJuIEplfHwoSmU9KDAsdXQuV2UpKCkuYXBwbHlQbHVnaW5zKHtrZXk6InJlcXVlc3QiLHR5cGU6Sm4ubW9kaWZ5LGluaXRpYWxWYWx1ZTp7fX0pLEplKX0sZGU9ZnVuY3Rpb24oKXt2YXIgSGUsbnQ7aWYoWGUpcmV0dXJuIFhlO3ZhciBydD1ndCgpO3JldHVybiBYZT1FKCkuY3JlYXRlKHJ0KSxydD09bnVsbHx8KEhlPXJ0LnJlcXVlc3RJbnRlcmNlcHRvcnMpPT09bnVsbHx8SGU9PT12b2lkIDB8fEhlLmZvckVhY2goZnVuY3Rpb24odnQpe3Z0IGluc3RhbmNlb2YgQXJyYXk/WGUuaW50ZXJjZXB0b3JzLnJlcXVlc3QudXNlKGZ1bmN0aW9uKCl7dmFyIFZ0PXUoKShzKCkoKS5tYXJrKGZ1bmN0aW9uIGVuKFJuKXt2YXIgam4sYm4sSG4sR3Q7cmV0dXJuIHMoKSgpLndyYXAoZnVuY3Rpb24oT24pe2Zvcig7Oylzd2l0Y2goT24ucHJldj1Pbi5uZXh0KXtjYXNlIDA6aWYoam49Um4udXJsLHZ0WzBdLmxlbmd0aCE9PTIpe09uLm5leHQ9ODticmVha31yZXR1cm4gT24ubmV4dD00LHZ0WzBdKGpuLFJuKTtjYXNlIDQ6cmV0dXJuIGJuPU9uLnNlbnQsSG49Ym4udXJsLEd0PWJuLm9wdGlvbnMsT24uYWJydXB0KCJyZXR1cm4iLGcoKShnKCkoe30sR3QpLHt9LHt1cmw6SG59KSk7Y2FzZSA4OnJldHVybiBPbi5hYnJ1cHQoInJldHVybiIsdnRbMF0oUm4pKTtjYXNlIDk6Y2FzZSJlbmQiOnJldHVybiBPbi5zdG9wKCl9fSxlbil9KSk7cmV0dXJuIGZ1bmN0aW9uKGVuKXtyZXR1cm4gVnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSx2dFsxXSk6WGUuaW50ZXJjZXB0b3JzLnJlcXVlc3QudXNlKGZ1bmN0aW9uKCl7dmFyIFZ0PXUoKShzKCkoKS5tYXJrKGZ1bmN0aW9uIGVuKFJuKXt2YXIgam4sYm4sSG4sR3Q7cmV0dXJuIHMoKSgpLndyYXAoZnVuY3Rpb24oT24pe2Zvcig7Oylzd2l0Y2goT24ucHJldj1Pbi5uZXh0KXtjYXNlIDA6aWYoam49Um4udXJsLHZ0Lmxlbmd0aCE9PTIpe09uLm5leHQ9ODticmVha31yZXR1cm4gT24ubmV4dD00LHZ0KGpuLFJuKTtjYXNlIDQ6cmV0dXJuIGJuPU9uLnNlbnQsSG49Ym4udXJsLEd0PWJuLm9wdGlvbnMsT24uYWJydXB0KCJyZXR1cm4iLGcoKShnKCkoe30sR3QpLHt9LHt1cmw6SG59KSk7Y2FzZSA4OnJldHVybiBPbi5hYnJ1cHQoInJldHVybiIsdnQoUm4pKTtjYXNlIDk6Y2FzZSJlbmQiOnJldHVybiBPbi5zdG9wKCl9fSxlbil9KSk7cmV0dXJuIGZ1bmN0aW9uKGVuKXtyZXR1cm4gVnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSl9KSxydD09bnVsbHx8KG50PXJ0LnJlc3BvbnNlSW50ZXJjZXB0b3JzKT09PW51bGx8fG50PT09dm9pZCAwfHxudC5mb3JFYWNoKGZ1bmN0aW9uKHZ0KXt2dCBpbnN0YW5jZW9mIEFycmF5P1hlLmludGVyY2VwdG9ycy5yZXNwb25zZS51c2UodnRbMF0sdnRbMV0pOlhlLmludGVyY2VwdG9ycy5yZXNwb25zZS51c2UodnQpfSksWGUuaW50ZXJjZXB0b3JzLnJlc3BvbnNlLnVzZShmdW5jdGlvbih2dCl7dmFyIFZ0LGVuPXZ0LmRhdGE7cmV0dXJuKGVuPT1udWxsP3ZvaWQgMDplbi5zdWNjZXNzKT09PSExJiZydCE9PW51bGwmJnJ0IT09dm9pZCAwJiYoVnQ9cnQuZXJyb3JDb25maWcpIT09bnVsbCYmVnQhPT12b2lkIDAmJlZ0LmVycm9yVGhyb3dlciYmcnQuZXJyb3JDb25maWcuZXJyb3JUaHJvd2VyKGVuKSx2dH0pLFhlfSxXZT1mdW5jdGlvbihIZSl7dmFyIG50PWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTp7bWV0aG9kOiJHRVQifSxydD1kZSgpLHZ0PWd0KCksVnQ9bnQuZ2V0UmVzcG9uc2UsZW49VnQ9PT12b2lkIDA/ITE6VnQsUm49bnQucmVxdWVzdEludGVyY2VwdG9ycyxqbj1udC5yZXNwb25zZUludGVyY2VwdG9ycyxibj1Sbj09bnVsbD92b2lkIDA6Um4ubWFwKGZ1bmN0aW9uKEd0KXtyZXR1cm4gR3QgaW5zdGFuY2VvZiBBcnJheT9ydC5pbnRlcmNlcHRvcnMucmVxdWVzdC51c2UoZnVuY3Rpb24oKXt2YXIgU249dSgpKHMoKSgpLm1hcmsoZnVuY3Rpb24gT24oX24pe3ZhciBQZSxnZSx2ZSxJZTtyZXR1cm4gcygpKCkud3JhcChmdW5jdGlvbihhdCl7Zm9yKDs7KXN3aXRjaChhdC5wcmV2PWF0Lm5leHQpe2Nhc2UgMDppZihQZT1fbi51cmwsR3RbMF0ubGVuZ3RoIT09Mil7YXQubmV4dD04O2JyZWFrfXJldHVybiBhdC5uZXh0PTQsR3RbMF0oUGUsX24pO2Nhc2UgNDpyZXR1cm4gZ2U9YXQuc2VudCx2ZT1nZS51cmwsSWU9Z2Uub3B0aW9ucyxhdC5hYnJ1cHQoInJldHVybiIsZygpKGcoKSh7fSxJZSkse30se3VybDp2ZX0pKTtjYXNlIDg6cmV0dXJuIGF0LmFicnVwdCgicmV0dXJuIixHdFswXShfbikpO2Nhc2UgOTpjYXNlImVuZCI6cmV0dXJuIGF0LnN0b3AoKX19LE9uKX0pKTtyZXR1cm4gZnVuY3Rpb24oT24pe3JldHVybiBTbi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLEd0WzFdKTpydC5pbnRlcmNlcHRvcnMucmVxdWVzdC51c2UoZnVuY3Rpb24oKXt2YXIgU249dSgpKHMoKSgpLm1hcmsoZnVuY3Rpb24gT24oX24pe3ZhciBQZSxnZSx2ZSxJZTtyZXR1cm4gcygpKCkud3JhcChmdW5jdGlvbihhdCl7Zm9yKDs7KXN3aXRjaChhdC5wcmV2PWF0Lm5leHQpe2Nhc2UgMDppZihQZT1fbi51cmwsR3QubGVuZ3RoIT09Mil7YXQubmV4dD04O2JyZWFrfXJldHVybiBhdC5uZXh0PTQsR3QoUGUsX24pO2Nhc2UgNDpyZXR1cm4gZ2U9YXQuc2VudCx2ZT1nZS51cmwsSWU9Z2Uub3B0aW9ucyxhdC5hYnJ1cHQoInJldHVybiIsZygpKGcoKSh7fSxJZSkse30se3VybDp2ZX0pKTtjYXNlIDg6cmV0dXJuIGF0LmFicnVwdCgicmV0dXJuIixHdChfbikpO2Nhc2UgOTpjYXNlImVuZCI6cmV0dXJuIGF0LnN0b3AoKX19LE9uKX0pKTtyZXR1cm4gZnVuY3Rpb24oT24pe3JldHVybiBTbi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpKX0pLEhuPWpuPT1udWxsP3ZvaWQgMDpqbi5tYXAoZnVuY3Rpb24oR3Qpe3JldHVybiBHdCBpbnN0YW5jZW9mIEFycmF5P3J0LmludGVyY2VwdG9ycy5yZXNwb25zZS51c2UoR3RbMF0sR3RbMV0pOnJ0LmludGVyY2VwdG9ycy5yZXNwb25zZS51c2UoR3QpfSk7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKEd0LFNuKXtydC5yZXF1ZXN0KGcoKShnKCkoe30sbnQpLHt9LHt1cmw6SGV9KSkudGhlbihmdW5jdGlvbihPbil7Ym49PW51bGx8fGJuLmZvckVhY2goZnVuY3Rpb24oX24pe3J0LmludGVyY2VwdG9ycy5yZXF1ZXN0LmVqZWN0KF9uKX0pLEhuPT1udWxsfHxIbi5mb3JFYWNoKGZ1bmN0aW9uKF9uKXtydC5pbnRlcmNlcHRvcnMucmVzcG9uc2UuZWplY3QoX24pfSksR3QoZW4/T246T24uZGF0YSl9KS5jYXRjaChmdW5jdGlvbihPbil7Ym49PW51bGx8fGJuLmZvckVhY2goZnVuY3Rpb24oZ2Upe3J0LmludGVyY2VwdG9ycy5yZXF1ZXN0LmVqZWN0KGdlKX0pLEhuPT1udWxsfHxIbi5mb3JFYWNoKGZ1bmN0aW9uKGdlKXtydC5pbnRlcmNlcHRvcnMucmVzcG9uc2UuZWplY3QoZ2UpfSk7dHJ5e3ZhciBfbixQZT12dD09bnVsbHx8KF9uPXZ0LmVycm9yQ29uZmlnKT09PW51bGx8fF9uPT09dm9pZCAwP3ZvaWQgMDpfbi5lcnJvckhhbmRsZXI7UGUmJlBlKE9uLG50LHZ0KX1jYXRjaChnZSl7U24oZ2UpfVNuKE9uKX0pfSl9LFN0PWUoNTgwOTYpLGN0PWUoNzQ4MTcpLE9lPWUoOTY5NzQpLEdlPWUoNTU2NDgpO2Z1bmN0aW9uIGh0KCl7cmV0dXJuIGh0PU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKFplKXtmb3IodmFyIEhlPTE7SGU8YXJndW1lbnRzLmxlbmd0aDtIZSsrKXt2YXIgbnQ9YXJndW1lbnRzW0hlXTtmb3IodmFyIHJ0IGluIG50KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChudCxydCkmJihaZVtydF09bnRbcnRdKX1yZXR1cm4gWmV9LGh0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiB6ZShaZSxIZSl7aWYoWmU9PW51bGwpcmV0dXJue307dmFyIG50PXt9LHJ0PU9iamVjdC5rZXlzKFplKSx2dCxWdDtmb3IoVnQ9MDtWdDxydC5sZW5ndGg7VnQrKyl2dD1ydFtWdF0sIShIZS5pbmRleE9mKHZ0KT49MCkmJihudFt2dF09WmVbdnRdKTtyZXR1cm4gbnR9Y29uc3QgUWU9WyJvbkNsaWNrIiwicmVsb2FkRG9jdW1lbnQiLCJyZXBsYWNlIiwic3RhdGUiLCJ0YXJnZXQiLCJ0byJdLHB0PW51bGw7ZnVuY3Rpb24gYnQoWmUsSGUpe2lmKCFaZSl7dHlwZW9mIGNvbnNvbGUhPSJ1bmRlZmluZWQiJiZjb25zb2xlLndhcm4oSGUpO3RyeXt0aHJvdyBuZXcgRXJyb3IoSGUpfWNhdGNoKG50KXt9fX1mdW5jdGlvbiBJdChaZSl7bGV0e2Jhc2VuYW1lOkhlLGNoaWxkcmVuOm50LHdpbmRvdzpydH09WmUsdnQ9dXNlUmVmKCk7dnQuY3VycmVudD09bnVsbCYmKHZ0LmN1cnJlbnQ9Y3JlYXRlQnJvd3Nlckhpc3Rvcnkoe3dpbmRvdzpydH0pKTtsZXQgVnQ9dnQuY3VycmVudCxbZW4sUm5dPXVzZVN0YXRlKHthY3Rpb246VnQuYWN0aW9uLGxvY2F0aW9uOlZ0LmxvY2F0aW9ufSk7cmV0dXJuIHVzZUxheW91dEVmZmVjdCgoKT0+VnQubGlzdGVuKFJuKSxbVnRdKSxjcmVhdGVFbGVtZW50KFJvdXRlcix7YmFzZW5hbWU6SGUsY2hpbGRyZW46bnQsbG9jYXRpb246ZW4ubG9jYXRpb24sbmF2aWdhdGlvblR5cGU6ZW4uYWN0aW9uLG5hdmlnYXRvcjpWdH0pfWZ1bmN0aW9uIFR0KFplKXtsZXR7YmFzZW5hbWU6SGUsY2hpbGRyZW46bnQsd2luZG93OnJ0fT1aZSx2dD11c2VSZWYoKTt2dC5jdXJyZW50PT1udWxsJiYodnQuY3VycmVudD1jcmVhdGVIYXNoSGlzdG9yeSh7d2luZG93OnJ0fSkpO2xldCBWdD12dC5jdXJyZW50LFtlbixSbl09dXNlU3RhdGUoe2FjdGlvbjpWdC5hY3Rpb24sbG9jYXRpb246VnQubG9jYXRpb259KTtyZXR1cm4gdXNlTGF5b3V0RWZmZWN0KCgpPT5WdC5saXN0ZW4oUm4pLFtWdF0pLGNyZWF0ZUVsZW1lbnQoUm91dGVyLHtiYXNlbmFtZTpIZSxjaGlsZHJlbjpudCxsb2NhdGlvbjplbi5sb2NhdGlvbixuYXZpZ2F0aW9uVHlwZTplbi5hY3Rpb24sbmF2aWdhdG9yOlZ0fSl9ZnVuY3Rpb24gWHQoWmUpe2xldHtiYXNlbmFtZTpIZSxjaGlsZHJlbjpudCxoaXN0b3J5OnJ0fT1aZTtjb25zdFt2dCxWdF09dXNlU3RhdGUoe2FjdGlvbjpydC5hY3Rpb24sbG9jYXRpb246cnQubG9jYXRpb259KTtyZXR1cm4gdXNlTGF5b3V0RWZmZWN0KCgpPT5ydC5saXN0ZW4oVnQpLFtydF0pLGNyZWF0ZUVsZW1lbnQoUm91dGVyLHtiYXNlbmFtZTpIZSxjaGlsZHJlbjpudCxsb2NhdGlvbjp2dC5sb2NhdGlvbixuYXZpZ2F0aW9uVHlwZTp2dC5hY3Rpb24sbmF2aWdhdG9yOnJ0fSl9ZnVuY3Rpb24gZm4oWmUpe3JldHVybiEhKFplLm1ldGFLZXl8fFplLmFsdEtleXx8WmUuY3RybEtleXx8WmUuc2hpZnRLZXkpfWNvbnN0IG5uPSgwLHguZm9yd2FyZFJlZikoZnVuY3Rpb24oSGUsbnQpe2xldHtvbkNsaWNrOnJ0LHJlbG9hZERvY3VtZW50OnZ0LHJlcGxhY2U6VnQ9ITEsc3RhdGU6ZW4sdGFyZ2V0OlJuLHRvOmpufT1IZSxibj16ZShIZSxRZSksSG49KDAsT2Uub1EpKGpuKSxHdD1OdChqbix7cmVwbGFjZTpWdCxzdGF0ZTplbix0YXJnZXQ6Um59KTtmdW5jdGlvbiBTbihPbil7cnQmJnJ0KE9uKSwhT24uZGVmYXVsdFByZXZlbnRlZCYmIXZ0JiZHdChPbil9cmV0dXJuKDAseC5jcmVhdGVFbGVtZW50KSgiYSIsaHQoe30sYm4se2hyZWY6SG4sb25DbGljazpTbixyZWY6bnQsdGFyZ2V0OlJufSkpfSksb249bnVsbDtmdW5jdGlvbiBOdChaZSxIZSl7bGV0e3RhcmdldDpudCxyZXBsYWNlOnJ0LHN0YXRlOnZ0fT1IZT09PXZvaWQgMD97fTpIZSxWdD0oMCxPZS5zMCkoKSxlbj0oMCxPZS5USCkoKSxSbj0oMCxPZS5XVSkoWmUpO3JldHVybigwLHgudXNlQ2FsbGJhY2spKGpuPT57aWYoam4uYnV0dG9uPT09MCYmKCFudHx8bnQ9PT0iX3NlbGYiKSYmIWZuKGpuKSl7am4ucHJldmVudERlZmF1bHQoKTtsZXQgYm49ISFydHx8KDAsR2UuRXApKGVuKT09PSgwLEdlLkVwKShSbik7VnQoWmUse3JlcGxhY2U6Ym4sc3RhdGU6dnR9KX19LFtlbixWdCxSbixydCx2dCxudCxaZV0pfWZ1bmN0aW9uIFpuKFplKXtsZXQgSGU9dXNlUmVmKHluKFplKSksbnQ9dXNlTG9jYXRpb24oKSxydD11c2VNZW1vKCgpPT57bGV0IGVuPXluKG50LnNlYXJjaCk7Zm9yKGxldCBSbiBvZiBIZS5jdXJyZW50LmtleXMoKSllbi5oYXMoUm4pfHxIZS5jdXJyZW50LmdldEFsbChSbikuZm9yRWFjaChqbj0+e2VuLmFwcGVuZChSbixqbil9KTtyZXR1cm4gZW59LFtudC5zZWFyY2hdKSx2dD11c2VOYXZpZ2F0ZSgpLFZ0PXVzZUNhbGxiYWNrKChlbixSbik9Pnt2dCgiPyIreW4oZW4pLFJuKX0sW3Z0XSk7cmV0dXJuW3J0LFZ0XX1mdW5jdGlvbiB5bihaZSl7cmV0dXJuIFplPT09dm9pZCAwJiYoWmU9IiIpLG5ldyBVUkxTZWFyY2hQYXJhbXModHlwZW9mIFplPT0ic3RyaW5nInx8QXJyYXkuaXNBcnJheShaZSl8fFplIGluc3RhbmNlb2YgVVJMU2VhcmNoUGFyYW1zP1plOk9iamVjdC5rZXlzKFplKS5yZWR1Y2UoKEhlLG50KT0+e2xldCBydD1aZVtudF07cmV0dXJuIEhlLmNvbmNhdChBcnJheS5pc0FycmF5KHJ0KT9ydC5tYXAodnQ9PltudCx2dF0pOltbbnQscnRdXSl9LFtdKSl9dmFyIGduPWUoMzQxNjIpLEJuPWUoNDg4MDQpO2Z1bmN0aW9uIFZuKFplLEhlKXt2YXIgbnQ9YXJndW1lbnRzLmxlbmd0aD4yJiZhcmd1bWVudHNbMl0hPT12b2lkIDA/YXJndW1lbnRzWzJdOnt9LHJ0PWFyZ3VtZW50cy5sZW5ndGg+MyYmYXJndW1lbnRzWzNdIT09dm9pZCAwP2FyZ3VtZW50c1szXTp7fTtpZih0eXBlb2YgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIhPSJmdW5jdGlvbiIpcmV0dXJuIG51bGw7dmFyIHZ0PXgudXNlUmVmKHR5cGVvZiBJbnRlcnNlY3Rpb25PYnNlcnZlcj09ImZ1bmN0aW9uIiksVnQ9eC51c2VSZWYobnVsbCk7cmV0dXJuIHgudXNlRWZmZWN0KGZ1bmN0aW9uKCl7aWYoISghWmUuY3VycmVudHx8IXZ0LmN1cnJlbnR8fHJ0LmRpc2FibGVkKSlyZXR1cm4gVnQuY3VycmVudD1uZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oZW4pe3ZhciBSbj0oMCxCbi5aKShlbiwxKSxqbj1SblswXTtIZShqbil9LG50KSxWdC5jdXJyZW50Lm9ic2VydmUoWmUuY3VycmVudCksZnVuY3Rpb24oKXt2YXIgZW47KGVuPVZ0LmN1cnJlbnQpPT09bnVsbHx8ZW49PT12b2lkIDB8fGVuLmRpc2Nvbm5lY3QoKX19LFtIZSxudCxydC5kaXNhYmxlZCxaZV0pLFZ0LmN1cnJlbnR9dmFyIE5uPVsicHJlZmV0Y2giXTtmdW5jdGlvbiBmdChaZSl7dmFyIEhlPXgudXNlUmVmKG51bGwpO3JldHVybiB4LnVzZUVmZmVjdChmdW5jdGlvbigpe1plJiYodHlwZW9mIFplPT0iZnVuY3Rpb24iP1plKEhlLmN1cnJlbnQpOlplLmN1cnJlbnQ9SGUuY3VycmVudCl9KSxIZX12YXIgZXQ9eC5mb3J3YXJkUmVmKGZ1bmN0aW9uKFplLEhlKXt2YXIgbnQscnQ9WmUucHJlZmV0Y2gsdnQ9KDAsY3QuWikoWmUsTm4pLFZ0PXR5cGVvZiB3aW5kb3chPSJ1bmRlZmluZWQiJiZ3aW5kb3cuX191bWlfcm91dGVfcHJlZmV0Y2hfX3x8e2RlZmF1bHRQcmVmZXRjaDoibm9uZSIsZGVmYXVsdFByZWZldGNoVGltZW91dDo1MH0sZW49VnQuZGVmYXVsdFByZWZldGNoLFJuPVZ0LmRlZmF1bHRQcmVmZXRjaFRpbWVvdXQsam49KHJ0PT09ITA/ImludGVudCI6cnQ9PT0hMT8ibm9uZSI6cnQpfHxlbjtpZighWyJpbnRlbnQiLCJyZW5kZXIiLCJ2aWV3cG9ydCIsIm5vbmUiXS5pbmNsdWRlcyhqbikpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHByZWZldGNoIHZhbHVlICIuY29uY2F0KGpuLCIgZm91bmQgaW4gTGluayBjb21wb25lbnQiKSk7dmFyIGJuPSgwLGduLk92KSgpLEhuPXR5cGVvZiBaZS50bz09InN0cmluZyI/WmUudG86KG50PVplLnRvKT09PW51bGx8fG50PT09dm9pZCAwP3ZvaWQgMDpudC5wYXRobmFtZSxHdD14LnVzZVJlZighMSksU249ZnQoSGUpLE9uPWZ1bmN0aW9uKGdlKXtpZihqbj09PSJpbnRlbnQiKXt2YXIgdmU9Z2UudGFyZ2V0fHx7fTt2ZS5wcmVsb2FkVGltZW91dHx8KHZlLnByZWxvYWRUaW1lb3V0PXNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgSWU7dmUucHJlbG9hZFRpbWVvdXQ9bnVsbCwoSWU9Ym4ucHJlbG9hZFJvdXRlKT09PW51bGx8fEllPT09dm9pZCAwfHxJZS5jYWxsKGJuLEhuKX0sWmUucHJlZmV0Y2hUaW1lb3V0fHxSbikpfX0sX249ZnVuY3Rpb24oZ2Upe2lmKGpuPT09ImludGVudCIpe3ZhciB2ZT1nZS50YXJnZXR8fHt9O3ZlLnByZWxvYWRUaW1lb3V0JiYoY2xlYXJUaW1lb3V0KHZlLnByZWxvYWRUaW1lb3V0KSx2ZS5wcmVsb2FkVGltZW91dD1udWxsKX19O3JldHVybigwLHgudXNlTGF5b3V0RWZmZWN0KShmdW5jdGlvbigpe2lmKGpuPT09InJlbmRlciImJiFHdC5jdXJyZW50KXt2YXIgUGU7KFBlPWJuLnByZWxvYWRSb3V0ZSk9PT1udWxsfHxQZT09PXZvaWQgMHx8UGUuY2FsbChibixIbiksR3QuY3VycmVudD0hMH19LFtqbixIbl0pLFZuKFNuLGZ1bmN0aW9uKFBlKXtpZihQZSE9bnVsbCYmUGUuaXNJbnRlcnNlY3Rpbmcpe3ZhciBnZTsoZ2U9Ym4ucHJlbG9hZFJvdXRlKT09PW51bGx8fGdlPT09dm9pZCAwfHxnZS5jYWxsKGJuLEhuKX19LHtyb290TWFyZ2luOiIxMDBweCJ9LHtkaXNhYmxlZDpqbiE9PSJ2aWV3cG9ydCJ9KSxIbj94LmNyZWF0ZUVsZW1lbnQobm4sKDAsU3QuWikoe29uTW91c2VFbnRlcjpPbixvbk1vdXNlTGVhdmU6X24scmVmOlNufSx2dCksWmUuY2hpbGRyZW4pOm51bGx9KSxKdD1lKDQ3Mzg4KTtmdW5jdGlvbiB3dChaZSl7IkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mIjtyZXR1cm4gd3Q9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmdHlwZW9mIFN5bWJvbC5pdGVyYXRvcj09InN5bWJvbCI/ZnVuY3Rpb24oSGUpe3JldHVybiB0eXBlb2YgSGV9OmZ1bmN0aW9uKEhlKXtyZXR1cm4gSGUmJnR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJkhlLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZIZSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIEhlfSx3dChaZSl9ZnVuY3Rpb24gX3QoKXsidXNlIHN0cmljdCI7X3Q9ZnVuY3Rpb24oKXtyZXR1cm4gSGV9O3ZhciBaZSxIZT17fSxudD1PYmplY3QucHJvdG90eXBlLHJ0PW50Lmhhc093blByb3BlcnR5LHZ0PU9iamVjdC5kZWZpbmVQcm9wZXJ0eXx8ZnVuY3Rpb24oS3QsenQsT3Qpe0t0W3p0XT1PdC52YWx1ZX0sVnQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIj9TeW1ib2w6e30sZW49VnQuaXRlcmF0b3J8fCJAQGl0ZXJhdG9yIixSbj1WdC5hc3luY0l0ZXJhdG9yfHwiQEBhc3luY0l0ZXJhdG9yIixqbj1WdC50b1N0cmluZ1RhZ3x8IkBAdG9TdHJpbmdUYWciO2Z1bmN0aW9uIGJuKEt0LHp0LE90KXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KEt0LHp0LHt2YWx1ZTpPdCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pLEt0W3p0XX10cnl7Ym4oe30sIiIpfWNhdGNoKEt0KXtibj1mdW5jdGlvbihPdCxsbixFbil7cmV0dXJuIE90W2xuXT1Fbn19ZnVuY3Rpb24gSG4oS3QsenQsT3QsbG4pe3ZhciBFbj16dCYmenQucHJvdG90eXBlIGluc3RhbmNlb2YgdmU/enQ6dmUsR249T2JqZWN0LmNyZWF0ZShFbi5wcm90b3R5cGUpLHByPW5ldyB6bihsbnx8W10pO3JldHVybiB2dChHbiwiX2ludm9rZSIse3ZhbHVlOnBuKEt0LE90LHByKX0pLEdufWZ1bmN0aW9uIEd0KEt0LHp0LE90KXt0cnl7cmV0dXJue3R5cGU6Im5vcm1hbCIsYXJnOkt0LmNhbGwoenQsT3QpfX1jYXRjaChsbil7cmV0dXJue3R5cGU6InRocm93Iixhcmc6bG59fX1IZS53cmFwPUhuO3ZhciBTbj0ic3VzcGVuZGVkU3RhcnQiLE9uPSJzdXNwZW5kZWRZaWVsZCIsX249ImV4ZWN1dGluZyIsUGU9ImNvbXBsZXRlZCIsZ2U9e307ZnVuY3Rpb24gdmUoKXt9ZnVuY3Rpb24gSWUoKXt9ZnVuY3Rpb24geGUoKXt9dmFyIGF0PXt9O2JuKGF0LGVuLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KTt2YXIgZHQ9T2JqZWN0LmdldFByb3RvdHlwZU9mLEV0PWR0JiZkdChkdChybihbXSkpKTtFdCYmRXQhPT1udCYmcnQuY2FsbChFdCxlbikmJihhdD1FdCk7dmFyIEh0PXhlLnByb3RvdHlwZT12ZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShhdCk7ZnVuY3Rpb24ganQoS3Qpe1sibmV4dCIsInRocm93IiwicmV0dXJuIl0uZm9yRWFjaChmdW5jdGlvbih6dCl7Ym4oS3QsenQsZnVuY3Rpb24oT3Qpe3JldHVybiB0aGlzLl9pbnZva2UoenQsT3QpfSl9KX1mdW5jdGlvbiBGdChLdCx6dCl7ZnVuY3Rpb24gT3QoRW4sR24scHIsUHIpe3ZhciBicj1HdChLdFtFbl0sS3QsR24pO2lmKGJyLnR5cGUhPT0idGhyb3ciKXt2YXIgTXI9YnIuYXJnLCRyPU1yLnZhbHVlO3JldHVybiAkciYmd3QoJHIpPT0ib2JqZWN0IiYmcnQuY2FsbCgkciwiX19hd2FpdCIpP3p0LnJlc29sdmUoJHIuX19hd2FpdCkudGhlbihmdW5jdGlvbihHcil7T3QoIm5leHQiLEdyLHByLFByKX0sZnVuY3Rpb24oR3Ipe090KCJ0aHJvdyIsR3IscHIsUHIpfSk6enQucmVzb2x2ZSgkcikudGhlbihmdW5jdGlvbihHcil7TXIudmFsdWU9R3IscHIoTXIpfSxmdW5jdGlvbihHcil7cmV0dXJuIE90KCJ0aHJvdyIsR3IscHIsUHIpfSl9UHIoYnIuYXJnKX12YXIgbG47dnQodGhpcywiX2ludm9rZSIse3ZhbHVlOmZ1bmN0aW9uKEduLHByKXtmdW5jdGlvbiBQcigpe3JldHVybiBuZXcgenQoZnVuY3Rpb24oYnIsTXIpe090KEduLHByLGJyLE1yKX0pfXJldHVybiBsbj1sbj9sbi50aGVuKFByLFByKTpQcigpfX0pfWZ1bmN0aW9uIHBuKEt0LHp0LE90KXt2YXIgbG49U247cmV0dXJuIGZ1bmN0aW9uKEVuLEduKXtpZihsbj09PV9uKXRocm93IG5ldyBFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgcnVubmluZyIpO2lmKGxuPT09UGUpe2lmKEVuPT09InRocm93Iil0aHJvdyBHbjtyZXR1cm57dmFsdWU6WmUsZG9uZTohMH19Zm9yKE90Lm1ldGhvZD1FbixPdC5hcmc9R247Oyl7dmFyIHByPU90LmRlbGVnYXRlO2lmKHByKXt2YXIgUHI9Y24ocHIsT3QpO2lmKFByKXtpZihQcj09PWdlKWNvbnRpbnVlO3JldHVybiBQcn19aWYoT3QubWV0aG9kPT09Im5leHQiKU90LnNlbnQ9T3QuX3NlbnQ9T3QuYXJnO2Vsc2UgaWYoT3QubWV0aG9kPT09InRocm93Iil7aWYobG49PT1Tbil0aHJvdyBsbj1QZSxPdC5hcmc7T3QuZGlzcGF0Y2hFeGNlcHRpb24oT3QuYXJnKX1lbHNlIE90Lm1ldGhvZD09PSJyZXR1cm4iJiZPdC5hYnJ1cHQoInJldHVybiIsT3QuYXJnKTtsbj1fbjt2YXIgYnI9R3QoS3QsenQsT3QpO2lmKGJyLnR5cGU9PT0ibm9ybWFsIil7aWYobG49T3QuZG9uZT9QZTpPbixici5hcmc9PT1nZSljb250aW51ZTtyZXR1cm57dmFsdWU6YnIuYXJnLGRvbmU6T3QuZG9uZX19YnIudHlwZT09PSJ0aHJvdyImJihsbj1QZSxPdC5tZXRob2Q9InRocm93IixPdC5hcmc9YnIuYXJnKX19fWZ1bmN0aW9uIGNuKEt0LHp0KXt2YXIgT3Q9enQubWV0aG9kLGxuPUt0Lml0ZXJhdG9yW090XTtpZihsbj09PVplKXJldHVybiB6dC5kZWxlZ2F0ZT1udWxsLE90PT09InRocm93IiYmS3QuaXRlcmF0b3IucmV0dXJuJiYoenQubWV0aG9kPSJyZXR1cm4iLHp0LmFyZz1aZSxjbihLdCx6dCksenQubWV0aG9kPT09InRocm93Iil8fE90IT09InJldHVybiImJih6dC5tZXRob2Q9InRocm93Iix6dC5hcmc9bmV3IFR5cGVFcnJvcigiVGhlIGl0ZXJhdG9yIGRvZXMgbm90IHByb3ZpZGUgYSAnIitPdCsiJyBtZXRob2QiKSksZ2U7dmFyIEVuPUd0KGxuLEt0Lml0ZXJhdG9yLHp0LmFyZyk7aWYoRW4udHlwZT09PSJ0aHJvdyIpcmV0dXJuIHp0Lm1ldGhvZD0idGhyb3ciLHp0LmFyZz1Fbi5hcmcsenQuZGVsZWdhdGU9bnVsbCxnZTt2YXIgR249RW4uYXJnO3JldHVybiBHbj9Hbi5kb25lPyh6dFtLdC5yZXN1bHROYW1lXT1Hbi52YWx1ZSx6dC5uZXh0PUt0Lm5leHRMb2MsenQubWV0aG9kIT09InJldHVybiImJih6dC5tZXRob2Q9Im5leHQiLHp0LmFyZz1aZSksenQuZGVsZWdhdGU9bnVsbCxnZSk6R246KHp0Lm1ldGhvZD0idGhyb3ciLHp0LmFyZz1uZXcgVHlwZUVycm9yKCJpdGVyYXRvciByZXN1bHQgaXMgbm90IGFuIG9iamVjdCIpLHp0LmRlbGVnYXRlPW51bGwsZ2UpfWZ1bmN0aW9uIG9yKEt0KXt2YXIgenQ9e3RyeUxvYzpLdFswXX07MSBpbiBLdCYmKHp0LmNhdGNoTG9jPUt0WzFdKSwyIGluIEt0JiYoenQuZmluYWxseUxvYz1LdFsyXSx6dC5hZnRlckxvYz1LdFszXSksdGhpcy50cnlFbnRyaWVzLnB1c2goenQpfWZ1bmN0aW9uIFRuKEt0KXt2YXIgenQ9S3QuY29tcGxldGlvbnx8e307enQudHlwZT0ibm9ybWFsIixkZWxldGUgenQuYXJnLEt0LmNvbXBsZXRpb249enR9ZnVuY3Rpb24gem4oS3Qpe3RoaXMudHJ5RW50cmllcz1be3RyeUxvYzoicm9vdCJ9XSxLdC5mb3JFYWNoKG9yLHRoaXMpLHRoaXMucmVzZXQoITApfWZ1bmN0aW9uIHJuKEt0KXtpZihLdHx8S3Q9PT0iIil7dmFyIHp0PUt0W2VuXTtpZih6dClyZXR1cm4genQuY2FsbChLdCk7aWYodHlwZW9mIEt0Lm5leHQ9PSJmdW5jdGlvbiIpcmV0dXJuIEt0O2lmKCFpc05hTihLdC5sZW5ndGgpKXt2YXIgT3Q9LTEsbG49ZnVuY3Rpb24gRW4oKXtmb3IoOysrT3Q8S3QubGVuZ3RoOylpZihydC5jYWxsKEt0LE90KSlyZXR1cm4gRW4udmFsdWU9S3RbT3RdLEVuLmRvbmU9ITEsRW47cmV0dXJuIEVuLnZhbHVlPVplLEVuLmRvbmU9ITAsRW59O3JldHVybiBsbi5uZXh0PWxufX10aHJvdyBuZXcgVHlwZUVycm9yKHd0KEt0KSsiIGlzIG5vdCBpdGVyYWJsZSIpfXJldHVybiBJZS5wcm90b3R5cGU9eGUsdnQoSHQsImNvbnN0cnVjdG9yIix7dmFsdWU6eGUsY29uZmlndXJhYmxlOiEwfSksdnQoeGUsImNvbnN0cnVjdG9yIix7dmFsdWU6SWUsY29uZmlndXJhYmxlOiEwfSksSWUuZGlzcGxheU5hbWU9Ym4oeGUsam4sIkdlbmVyYXRvckZ1bmN0aW9uIiksSGUuaXNHZW5lcmF0b3JGdW5jdGlvbj1mdW5jdGlvbihLdCl7dmFyIHp0PXR5cGVvZiBLdD09ImZ1bmN0aW9uIiYmS3QuY29uc3RydWN0b3I7cmV0dXJuISF6dCYmKHp0PT09SWV8fCh6dC5kaXNwbGF5TmFtZXx8enQubmFtZSk9PT0iR2VuZXJhdG9yRnVuY3Rpb24iKX0sSGUubWFyaz1mdW5jdGlvbihLdCl7cmV0dXJuIE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YoS3QseGUpOihLdC5fX3Byb3RvX189eGUsYm4oS3Qsam4sIkdlbmVyYXRvckZ1bmN0aW9uIikpLEt0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKEh0KSxLdH0sSGUuYXdyYXA9ZnVuY3Rpb24oS3Qpe3JldHVybntfX2F3YWl0Okt0fX0sanQoRnQucHJvdG90eXBlKSxibihGdC5wcm90b3R5cGUsUm4sZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLEhlLkFzeW5jSXRlcmF0b3I9RnQsSGUuYXN5bmM9ZnVuY3Rpb24oS3QsenQsT3QsbG4sRW4pe0VuPT09dm9pZCAwJiYoRW49UHJvbWlzZSk7dmFyIEduPW5ldyBGdChIbihLdCx6dCxPdCxsbiksRW4pO3JldHVybiBIZS5pc0dlbmVyYXRvckZ1bmN0aW9uKHp0KT9HbjpHbi5uZXh0KCkudGhlbihmdW5jdGlvbihwcil7cmV0dXJuIHByLmRvbmU/cHIudmFsdWU6R24ubmV4dCgpfSl9LGp0KEh0KSxibihIdCxqbiwiR2VuZXJhdG9yIiksYm4oSHQsZW4sZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLGJuKEh0LCJ0b1N0cmluZyIsZnVuY3Rpb24oKXtyZXR1cm4iW29iamVjdCBHZW5lcmF0b3JdIn0pLEhlLmtleXM9ZnVuY3Rpb24oS3Qpe3ZhciB6dD1PYmplY3QoS3QpLE90PVtdO2Zvcih2YXIgbG4gaW4genQpT3QucHVzaChsbik7cmV0dXJuIE90LnJldmVyc2UoKSxmdW5jdGlvbiBFbigpe2Zvcig7T3QubGVuZ3RoOyl7dmFyIEduPU90LnBvcCgpO2lmKEduIGluIHp0KXJldHVybiBFbi52YWx1ZT1HbixFbi5kb25lPSExLEVufXJldHVybiBFbi5kb25lPSEwLEVufX0sSGUudmFsdWVzPXJuLHpuLnByb3RvdHlwZT17Y29uc3RydWN0b3I6em4scmVzZXQ6ZnVuY3Rpb24oenQpe2lmKHRoaXMucHJldj0wLHRoaXMubmV4dD0wLHRoaXMuc2VudD10aGlzLl9zZW50PVplLHRoaXMuZG9uZT0hMSx0aGlzLmRlbGVnYXRlPW51bGwsdGhpcy5tZXRob2Q9Im5leHQiLHRoaXMuYXJnPVplLHRoaXMudHJ5RW50cmllcy5mb3JFYWNoKFRuKSwhenQpZm9yKHZhciBPdCBpbiB0aGlzKU90LmNoYXJBdCgwKT09PSJ0IiYmcnQuY2FsbCh0aGlzLE90KSYmIWlzTmFOKCtPdC5zbGljZSgxKSkmJih0aGlzW090XT1aZSl9LHN0b3A6ZnVuY3Rpb24oKXt0aGlzLmRvbmU9ITA7dmFyIHp0PXRoaXMudHJ5RW50cmllc1swXS5jb21wbGV0aW9uO2lmKHp0LnR5cGU9PT0idGhyb3ciKXRocm93IHp0LmFyZztyZXR1cm4gdGhpcy5ydmFsfSxkaXNwYXRjaEV4Y2VwdGlvbjpmdW5jdGlvbih6dCl7aWYodGhpcy5kb25lKXRocm93IHp0O3ZhciBPdD10aGlzO2Z1bmN0aW9uIGxuKE1yLCRyKXtyZXR1cm4gcHIudHlwZT0idGhyb3ciLHByLmFyZz16dCxPdC5uZXh0PU1yLCRyJiYoT3QubWV0aG9kPSJuZXh0IixPdC5hcmc9WmUpLCEhJHJ9Zm9yKHZhciBFbj10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7RW4+PTA7LS1Fbil7dmFyIEduPXRoaXMudHJ5RW50cmllc1tFbl0scHI9R24uY29tcGxldGlvbjtpZihHbi50cnlMb2M9PT0icm9vdCIpcmV0dXJuIGxuKCJlbmQiKTtpZihHbi50cnlMb2M8PXRoaXMucHJldil7dmFyIFByPXJ0LmNhbGwoR24sImNhdGNoTG9jIiksYnI9cnQuY2FsbChHbiwiZmluYWxseUxvYyIpO2lmKFByJiZicil7aWYodGhpcy5wcmV2PEduLmNhdGNoTG9jKXJldHVybiBsbihHbi5jYXRjaExvYywhMCk7aWYodGhpcy5wcmV2PEduLmZpbmFsbHlMb2MpcmV0dXJuIGxuKEduLmZpbmFsbHlMb2MpfWVsc2UgaWYoUHIpe2lmKHRoaXMucHJldjxHbi5jYXRjaExvYylyZXR1cm4gbG4oR24uY2F0Y2hMb2MsITApfWVsc2V7aWYoIWJyKXRocm93IG5ldyBFcnJvcigidHJ5IHN0YXRlbWVudCB3aXRob3V0IGNhdGNoIG9yIGZpbmFsbHkiKTtpZih0aGlzLnByZXY8R24uZmluYWxseUxvYylyZXR1cm4gbG4oR24uZmluYWxseUxvYyl9fX19LGFicnVwdDpmdW5jdGlvbih6dCxPdCl7Zm9yKHZhciBsbj10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7bG4+PTA7LS1sbil7dmFyIEVuPXRoaXMudHJ5RW50cmllc1tsbl07aWYoRW4udHJ5TG9jPD10aGlzLnByZXYmJnJ0LmNhbGwoRW4sImZpbmFsbHlMb2MiKSYmdGhpcy5wcmV2PEVuLmZpbmFsbHlMb2Mpe3ZhciBHbj1FbjticmVha319R24mJih6dD09PSJicmVhayJ8fHp0PT09ImNvbnRpbnVlIikmJkduLnRyeUxvYzw9T3QmJk90PD1Hbi5maW5hbGx5TG9jJiYoR249bnVsbCk7dmFyIHByPUduP0duLmNvbXBsZXRpb246e307cmV0dXJuIHByLnR5cGU9enQscHIuYXJnPU90LEduPyh0aGlzLm1ldGhvZD0ibmV4dCIsdGhpcy5uZXh0PUduLmZpbmFsbHlMb2MsZ2UpOnRoaXMuY29tcGxldGUocHIpfSxjb21wbGV0ZTpmdW5jdGlvbih6dCxPdCl7aWYoenQudHlwZT09PSJ0aHJvdyIpdGhyb3cgenQuYXJnO3JldHVybiB6dC50eXBlPT09ImJyZWFrInx8enQudHlwZT09PSJjb250aW51ZSI/dGhpcy5uZXh0PXp0LmFyZzp6dC50eXBlPT09InJldHVybiI/KHRoaXMucnZhbD10aGlzLmFyZz16dC5hcmcsdGhpcy5tZXRob2Q9InJldHVybiIsdGhpcy5uZXh0PSJlbmQiKTp6dC50eXBlPT09Im5vcm1hbCImJk90JiYodGhpcy5uZXh0PU90KSxnZX0sZmluaXNoOmZ1bmN0aW9uKHp0KXtmb3IodmFyIE90PXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtPdD49MDstLU90KXt2YXIgbG49dGhpcy50cnlFbnRyaWVzW090XTtpZihsbi5maW5hbGx5TG9jPT09enQpcmV0dXJuIHRoaXMuY29tcGxldGUobG4uY29tcGxldGlvbixsbi5hZnRlckxvYyksVG4obG4pLGdlfX0sY2F0Y2g6ZnVuY3Rpb24oenQpe2Zvcih2YXIgT3Q9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO090Pj0wOy0tT3Qpe3ZhciBsbj10aGlzLnRyeUVudHJpZXNbT3RdO2lmKGxuLnRyeUxvYz09PXp0KXt2YXIgRW49bG4uY29tcGxldGlvbjtpZihFbi50eXBlPT09InRocm93Iil7dmFyIEduPUVuLmFyZztUbihsbil9cmV0dXJuIEdufX10aHJvdyBuZXcgRXJyb3IoImlsbGVnYWwgY2F0Y2ggYXR0ZW1wdCIpfSxkZWxlZ2F0ZVlpZWxkOmZ1bmN0aW9uKHp0LE90LGxuKXtyZXR1cm4gdGhpcy5kZWxlZ2F0ZT17aXRlcmF0b3I6cm4oenQpLHJlc3VsdE5hbWU6T3QsbmV4dExvYzpsbn0sdGhpcy5tZXRob2Q9PT0ibmV4dCImJih0aGlzLmFyZz1aZSksZ2V9fSxIZX1mdW5jdGlvbiB4bihaZSxIZSl7aWYod3QoWmUpIT0ib2JqZWN0Inx8IVplKXJldHVybiBaZTt2YXIgbnQ9WmVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZihudCE9PXZvaWQgMCl7dmFyIHJ0PW50LmNhbGwoWmUsSGV8fCJkZWZhdWx0Iik7aWYod3QocnQpIT0ib2JqZWN0IilyZXR1cm4gcnQ7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oSGU9PT0ic3RyaW5nIj9TdHJpbmc6TnVtYmVyKShaZSl9ZnVuY3Rpb24gWW4oWmUpe3ZhciBIZT14bihaZSwic3RyaW5nIik7cmV0dXJuIHd0KEhlKT09InN5bWJvbCI/SGU6U3RyaW5nKEhlKX1mdW5jdGlvbiBQbihaZSxIZSxudCl7cmV0dXJuIEhlPVluKEhlKSxIZSBpbiBaZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoWmUsSGUse3ZhbHVlOm50LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6WmVbSGVdPW50LFplfWZ1bmN0aW9uIExuKFplLEhlKXt2YXIgbnQ9T2JqZWN0LmtleXMoWmUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBydD1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKFplKTtIZSYmKHJ0PXJ0LmZpbHRlcihmdW5jdGlvbih2dCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoWmUsdnQpLmVudW1lcmFibGV9KSksbnQucHVzaC5hcHBseShudCxydCl9cmV0dXJuIG50fWZ1bmN0aW9uIGVyKFplKXtmb3IodmFyIEhlPTE7SGU8YXJndW1lbnRzLmxlbmd0aDtIZSsrKXt2YXIgbnQ9YXJndW1lbnRzW0hlXSE9bnVsbD9hcmd1bWVudHNbSGVdOnt9O0hlJTI/TG4oT2JqZWN0KG50KSwhMCkuZm9yRWFjaChmdW5jdGlvbihydCl7UG4oWmUscnQsbnRbcnRdKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKFplLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG50KSk6TG4oT2JqZWN0KG50KSkuZm9yRWFjaChmdW5jdGlvbihydCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KFplLHJ0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobnQscnQpKX0pfXJldHVybiBaZX1mdW5jdGlvbiBRbihaZSxIZSxudCxydCx2dCxWdCxlbil7dHJ5e3ZhciBSbj1aZVtWdF0oZW4pLGpuPVJuLnZhbHVlfWNhdGNoKGJuKXtudChibik7cmV0dXJufVJuLmRvbmU/SGUoam4pOlByb21pc2UucmVzb2x2ZShqbikudGhlbihydCx2dCl9ZnVuY3Rpb24gdXIoWmUpe3JldHVybiBmdW5jdGlvbigpe3ZhciBIZT10aGlzLG50PWFyZ3VtZW50cztyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocnQsdnQpe3ZhciBWdD1aZS5hcHBseShIZSxudCk7ZnVuY3Rpb24gZW4oam4pe1FuKFZ0LHJ0LHZ0LGVuLFJuLCJuZXh0Iixqbil9ZnVuY3Rpb24gUm4oam4pe1FuKFZ0LHJ0LHZ0LGVuLFJuLCJ0aHJvdyIsam4pfWVuKHZvaWQgMCl9KX19ZnVuY3Rpb24gaXIoWmUsSGUpeyhIZT09bnVsbHx8SGU+WmUubGVuZ3RoKSYmKEhlPVplLmxlbmd0aCk7Zm9yKHZhciBudD0wLHJ0PW5ldyBBcnJheShIZSk7bnQ8SGU7bnQrKylydFtudF09WmVbbnRdO3JldHVybiBydH1mdW5jdGlvbiB2bihaZSxIZSl7aWYoWmUpe2lmKHR5cGVvZiBaZT09InN0cmluZyIpcmV0dXJuIGlyKFplLEhlKTt2YXIgbnQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFplKS5zbGljZSg4LC0xKTtpZihudD09PSJPYmplY3QiJiZaZS5jb25zdHJ1Y3RvciYmKG50PVplLmNvbnN0cnVjdG9yLm5hbWUpLG50PT09Ik1hcCJ8fG50PT09IlNldCIpcmV0dXJuIEFycmF5LmZyb20oWmUpO2lmKG50PT09IkFyZ3VtZW50cyJ8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG50KSlyZXR1cm4gaXIoWmUsSGUpfX1mdW5jdGlvbiBjcihaZSxIZSl7dmFyIG50PXR5cGVvZiBTeW1ib2whPSJ1bmRlZmluZWQiJiZaZVtTeW1ib2wuaXRlcmF0b3JdfHxaZVsiQEBpdGVyYXRvciJdO2lmKCFudCl7aWYoQXJyYXkuaXNBcnJheShaZSl8fChudD12bihaZSkpfHxIZSYmWmUmJnR5cGVvZiBaZS5sZW5ndGg9PSJudW1iZXIiKXtudCYmKFplPW50KTt2YXIgcnQ9MCx2dD1mdW5jdGlvbigpe307cmV0dXJue3M6dnQsbjpmdW5jdGlvbigpe3JldHVybiBydD49WmUubGVuZ3RoP3tkb25lOiEwfTp7ZG9uZTohMSx2YWx1ZTpaZVtydCsrXX19LGU6ZnVuY3Rpb24oYm4pe3Rocm93IGJufSxmOnZ0fX10aHJvdyBuZXcgVHlwZUVycm9yKGBJbnZhbGlkIGF0dGVtcHQgdG8gaXRlcmF0ZSBub24taXRlcmFibGUgaW5zdGFuY2UuCitJbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuYCl9dmFyIFZ0PSEwLGVuPSExLFJuO3JldHVybntzOmZ1bmN0aW9uKCl7bnQ9bnQuY2FsbChaZSl9LG46ZnVuY3Rpb24oKXt2YXIgYm49bnQubmV4dCgpO3JldHVybiBWdD1ibi5kb25lLGJufSxlOmZ1bmN0aW9uKGJuKXtlbj0hMCxSbj1ibn0sZjpmdW5jdGlvbigpe3RyeXshVnQmJm50LnJldHVybiE9bnVsbCYmbnQucmV0dXJuKCl9ZmluYWxseXtpZihlbil0aHJvdyBSbn19fX1mdW5jdGlvbiBXbihaZSl7aWYoQXJyYXkuaXNBcnJheShaZSkpcmV0dXJuIFplfWZ1bmN0aW9uIHduKFplKXtpZih0eXBlb2YgU3ltYm9sIT0idW5kZWZpbmVkIiYmWmVbU3ltYm9sLml0ZXJhdG9yXSE9bnVsbHx8WmVbIkBAaXRlcmF0b3IiXSE9bnVsbClyZXR1cm4gQXJyYXkuZnJvbShaZSl9ZnVuY3Rpb24gQ3QoKXt0aHJvdyBuZXcgVHlwZUVycm9yKGBJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLgorSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLmApfWZ1bmN0aW9uIFp0KFplKXtyZXR1cm4gV24oWmUpfHx3bihaZSl8fHZuKFplKXx8Q3QoKX1mdW5jdGlvbiBhbihaZSxIZSl7aWYoIShaZSBpbnN0YW5jZW9mIEhlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBEdChaZSxIZSl7Zm9yKHZhciBudD0wO250PEhlLmxlbmd0aDtudCsrKXt2YXIgcnQ9SGVbbnRdO3J0LmVudW1lcmFibGU9cnQuZW51bWVyYWJsZXx8ITEscnQuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBydCYmKHJ0LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoWmUsWW4ocnQua2V5KSxydCl9fWZ1bmN0aW9uIGt0KFplLEhlLG50KXtyZXR1cm4gSGUmJkR0KFplLnByb3RvdHlwZSxIZSksbnQmJkR0KFplLG50KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoWmUsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksWmV9ZnVuY3Rpb24gdG4oWmUsSGUpe2lmKCFaZSl0aHJvdyBuZXcgRXJyb3IoSGUpfWZ1bmN0aW9uIG1uKFplKXt2YXIgSGU9WmUuZm5zLG50PVplLmFyZ3M7aWYoSGUubGVuZ3RoPT09MSlyZXR1cm4gSGVbMF07dmFyIHJ0PUhlLnBvcCgpO3JldHVybiBIZS5yZWR1Y2UoZnVuY3Rpb24odnQsVnQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBWdCh2dCxudCl9fSxydCl9ZnVuY3Rpb24gS24oWmUpe3JldHVybiEhWmUmJnd0KFplKT09PSJvYmplY3QiJiZ0eXBlb2YgWmUudGhlbj09ImZ1bmN0aW9uIn12YXIgSm49ZnVuY3Rpb24oWmUpe3JldHVybiBaZS5jb21wb3NlPSJjb21wb3NlIixaZS5tb2RpZnk9Im1vZGlmeSIsWmUuZXZlbnQ9ImV2ZW50IixaZX0oe30pLFhuPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gWmUoSGUpe2FuKHRoaXMsWmUpLFBuKHRoaXMsIm9wdHMiLHZvaWQgMCksUG4odGhpcywiaG9va3MiLHt9KSx0aGlzLm9wdHM9SGV9cmV0dXJuIGt0KFplLFt7a2V5OiJyZWdpc3RlciIsdmFsdWU6ZnVuY3Rpb24obnQpe3ZhciBydD10aGlzO3RuKG50LmFwcGx5LCJwbHVnaW4gcmVnaXN0ZXIgZmFpbGVkLCBhcHBseSBtdXN0IHN1cHBsaWVkIiksT2JqZWN0LmtleXMobnQuYXBwbHkpLmZvckVhY2goZnVuY3Rpb24odnQpe3RuKHJ0Lm9wdHMudmFsaWRLZXlzLmluZGV4T2YodnQpPi0xLCJyZWdpc3RlciBmYWlsZWQsIGludmFsaWQga2V5ICIuY29uY2F0KHZ0LCIgIikuY29uY2F0KG50LnBhdGg/ImZyb20gcGx1Z2luICIuY29uY2F0KG50LnBhdGgpOiIiLCIuIikpLHJ0Lmhvb2tzW3Z0XT0ocnQuaG9va3NbdnRdfHxbXSkuY29uY2F0KG50LmFwcGx5W3Z0XSl9KX19LHtrZXk6ImdldEhvb2tzIix2YWx1ZTpmdW5jdGlvbihudCl7dmFyIHJ0PW50LnNwbGl0KCIuIiksdnQ9WnQocnQpLFZ0PXZ0WzBdLGVuPXZ0LnNsaWNlKDEpLFJuPXRoaXMuaG9va3NbVnRdfHxbXTtyZXR1cm4gZW4ubGVuZ3RoJiYoUm49Um4ubWFwKGZ1bmN0aW9uKGpuKXt0cnl7dmFyIGJuPWpuLEhuPWNyKGVuKSxHdDt0cnl7Zm9yKEhuLnMoKTshKEd0PUhuLm4oKSkuZG9uZTspe3ZhciBTbj1HdC52YWx1ZTtibj1ibltTbl19fWNhdGNoKE9uKXtIbi5lKE9uKX1maW5hbGx5e0huLmYoKX1yZXR1cm4gYm59Y2F0Y2goT24pe3JldHVybiBudWxsfX0pLmZpbHRlcihCb29sZWFuKSksUm59fSx7a2V5OiJhcHBseVBsdWdpbnMiLHZhbHVlOmZ1bmN0aW9uKG50KXt2YXIgcnQ9bnQua2V5LHZ0PW50LnR5cGUsVnQ9bnQuaW5pdGlhbFZhbHVlLGVuPW50LmFyZ3MsUm49bnQuYXN5bmMsam49dGhpcy5nZXRIb29rcyhydCl8fFtdO3N3aXRjaChlbiYmdG4od3QoZW4pPT09Im9iamVjdCIsImFwcGx5UGx1Z2lucyBmYWlsZWQsIGFyZ3MgbXVzdCBiZSBwbGFpbiBvYmplY3QuIiksUm4mJnRuKHZ0PT09Sm4ubW9kaWZ5fHx2dD09PUpuLmV2ZW50LCJhc3luYyBvbmx5IHdvcmtzIHdpdGggbW9kaWZ5IGFuZCBldmVudCB0eXBlLiIpLHZ0KXtjYXNlIEpuLm1vZGlmeTpyZXR1cm4gUm4/am4ucmVkdWNlKGZ1bmN0aW9uKCl7dmFyIGJuPXVyKF90KCkubWFyayhmdW5jdGlvbiBIbihHdCxTbil7dmFyIE9uO3JldHVybiBfdCgpLndyYXAoZnVuY3Rpb24oUGUpe2Zvcig7Oylzd2l0Y2goUGUucHJldj1QZS5uZXh0KXtjYXNlIDA6aWYodG4odHlwZW9mIFNuPT0iZnVuY3Rpb24ifHx3dChTbik9PT0ib2JqZWN0Inx8S24oU24pLCJhcHBseVBsdWdpbnMgZmFpbGVkLCBhbGwgaG9va3MgZm9yIGtleSAiLmNvbmNhdChydCwiIG11c3QgYmUgZnVuY3Rpb24sIHBsYWluIG9iamVjdCBvciBQcm9taXNlLiIpKSwhS24oR3QpKXtQZS5uZXh0PTU7YnJlYWt9cmV0dXJuIFBlLm5leHQ9NCxHdDtjYXNlIDQ6R3Q9UGUuc2VudDtjYXNlIDU6aWYodHlwZW9mIFNuIT0iZnVuY3Rpb24iKXtQZS5uZXh0PTE2O2JyZWFrfWlmKE9uPVNuKEd0LGVuKSwhS24oT24pKXtQZS5uZXh0PTEzO2JyZWFrfXJldHVybiBQZS5uZXh0PTEwLE9uO2Nhc2UgMTA6cmV0dXJuIFBlLmFicnVwdCgicmV0dXJuIixQZS5zZW50KTtjYXNlIDEzOnJldHVybiBQZS5hYnJ1cHQoInJldHVybiIsT24pO2Nhc2UgMTQ6UGUubmV4dD0yMTticmVhaztjYXNlIDE2OmlmKCFLbihTbikpe1BlLm5leHQ9MjA7YnJlYWt9cmV0dXJuIFBlLm5leHQ9MTksU247Y2FzZSAxOTpTbj1QZS5zZW50O2Nhc2UgMjA6cmV0dXJuIFBlLmFicnVwdCgicmV0dXJuIixlcihlcih7fSxHdCksU24pKTtjYXNlIDIxOmNhc2UiZW5kIjpyZXR1cm4gUGUuc3RvcCgpfX0sSG4pfSkpO3JldHVybiBmdW5jdGlvbihIbixHdCl7cmV0dXJuIGJuLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksS24oVnQpP1Z0OlByb21pc2UucmVzb2x2ZShWdCkpOmpuLnJlZHVjZShmdW5jdGlvbihibixIbil7cmV0dXJuIHRuKHR5cGVvZiBIbj09ImZ1bmN0aW9uInx8d3QoSG4pPT09Im9iamVjdCIsImFwcGx5UGx1Z2lucyBmYWlsZWQsIGFsbCBob29rcyBmb3Iga2V5ICIuY29uY2F0KHJ0LCIgbXVzdCBiZSBmdW5jdGlvbiBvciBwbGFpbiBvYmplY3QuIikpLHR5cGVvZiBIbj09ImZ1bmN0aW9uIj9Ibihibixlbik6ZXIoZXIoe30sYm4pLEhuKX0sVnQpO2Nhc2UgSm4uZXZlbnQ6cmV0dXJuIHVyKF90KCkubWFyayhmdW5jdGlvbiBibigpe3ZhciBIbixHdCxTbixPbjtyZXR1cm4gX3QoKS53cmFwKGZ1bmN0aW9uKFBlKXtmb3IoOzspc3dpdGNoKFBlLnByZXY9UGUubmV4dCl7Y2FzZSAwOkhuPWNyKGpuKSxQZS5wcmV2PTEsSG4ucygpO2Nhc2UgMzppZigoR3Q9SG4ubigpKS5kb25lKXtQZS5uZXh0PTEyO2JyZWFrfWlmKFNuPUd0LnZhbHVlLHRuKHR5cGVvZiBTbj09ImZ1bmN0aW9uIiwiYXBwbHlQbHVnaW5zIGZhaWxlZCwgYWxsIGhvb2tzIGZvciBrZXkgIi5jb25jYXQocnQsIiBtdXN0IGJlIGZ1bmN0aW9uLiIpKSxPbj1TbihlbiksIShSbiYmS24oT24pKSl7UGUubmV4dD0xMDticmVha31yZXR1cm4gUGUubmV4dD0xMCxPbjtjYXNlIDEwOlBlLm5leHQ9MzticmVhaztjYXNlIDEyOlBlLm5leHQ9MTc7YnJlYWs7Y2FzZSAxNDpQZS5wcmV2PTE0LFBlLnQwPVBlLmNhdGNoKDEpLEhuLmUoUGUudDApO2Nhc2UgMTc6cmV0dXJuIFBlLnByZXY9MTcsSG4uZigpLFBlLmZpbmlzaCgxNyk7Y2FzZSAyMDpjYXNlImVuZCI6cmV0dXJuIFBlLnN0b3AoKX19LGJuLG51bGwsW1sxLDE0LDE3LDIwXV0pfSkpKCk7Y2FzZSBKbi5jb21wb3NlOnJldHVybiBmdW5jdGlvbigpe3JldHVybiBtbih7Zm5zOmpuLmNvbmNhdChWdCksYXJnczplbn0pKCl9fX19XSxbe2tleToiY3JlYXRlIix2YWx1ZTpmdW5jdGlvbihudCl7dmFyIHJ0PW5ldyBaZSh7dmFsaWRLZXlzOm50LnZhbGlkS2V5c30pO3JldHVybiBudC5wbHVnaW5zLmZvckVhY2goZnVuY3Rpb24odnQpe3J0LnJlZ2lzdGVyKHZ0KX0pLHJ0fX1dKSxaZX0oKSxmcj1lKDEwNTgxKSxycj0wLGhyPTA7ZnVuY3Rpb24gRm4oWmUsSGUpe2lmKDApdmFyIG50fWZ1bmN0aW9uIGFyKFplKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoWmUsbnVsbCwyKX1mdW5jdGlvbiBscihaZSl7dmFyIEhlPVplLmxlbmd0aD4xP1plLm1hcCgkbikuam9pbigiICIpOlplWzBdO3JldHVybiBtKCkoSGUpPT09Im9iamVjdCI/IiIuY29uY2F0KGFyKEhlKSk6SGUudG9TdHJpbmcoKX1mdW5jdGlvbiAkbihaZSl7cmV0dXJuIG0oKShaZSk9PT0ib2JqZWN0Ij8iIi5jb25jYXQoSlNPTi5zdHJpbmdpZnkoWmUpKTpaZS50b1N0cmluZygpfXZhciBzcj17bG9nOmZ1bmN0aW9uKCl7Zm9yKHZhciBIZT1hcmd1bWVudHMubGVuZ3RoLG50PW5ldyBBcnJheShIZSkscnQ9MDtydDxIZTtydCsrKW50W3J0XT1hcmd1bWVudHNbcnRdO0ZuKCJsb2ciLGxyKG50KSl9LGluZm86ZnVuY3Rpb24oKXtmb3IodmFyIEhlPWFyZ3VtZW50cy5sZW5ndGgsbnQ9bmV3IEFycmF5KEhlKSxydD0wO3J0PEhlO3J0KyspbnRbcnRdPWFyZ3VtZW50c1tydF07Rm4oImluZm8iLGxyKG50KSl9LHdhcm46ZnVuY3Rpb24oKXtmb3IodmFyIEhlPWFyZ3VtZW50cy5sZW5ndGgsbnQ9bmV3IEFycmF5KEhlKSxydD0wO3J0PEhlO3J0KyspbnRbcnRdPWFyZ3VtZW50c1tydF07Rm4oIndhcm4iLGxyKG50KSl9LGVycm9yOmZ1bmN0aW9uKCl7Zm9yKHZhciBIZT1hcmd1bWVudHMubGVuZ3RoLG50PW5ldyBBcnJheShIZSkscnQ9MDtydDxIZTtydCsrKW50W3J0XT1hcmd1bWVudHNbcnRdO0ZuKCJlcnJvciIsbHIobnQpKX0sZ3JvdXA6ZnVuY3Rpb24oKXtocisrfSxncm91cENvbGxhcHNlZDpmdW5jdGlvbigpe2hyKyt9LGdyb3VwRW5kOmZ1bmN0aW9uKCl7aHImJi0taHJ9LGNsZWFyOmZ1bmN0aW9uKCl7Rm4oImNsZWFyIil9LHRyYWNlOmZ1bmN0aW9uKCl7dmFyIEhlOyhIZT1jb25zb2xlKS50cmFjZS5hcHBseShIZSxhcmd1bWVudHMpfSxwcm9maWxlOmZ1bmN0aW9uKCl7dmFyIEhlOyhIZT1jb25zb2xlKS5wcm9maWxlLmFwcGx5KEhlLGFyZ3VtZW50cyl9LHByb2ZpbGVFbmQ6ZnVuY3Rpb24oKXt2YXIgSGU7KEhlPWNvbnNvbGUpLnByb2ZpbGVFbmQuYXBwbHkoSGUsYXJndW1lbnRzKX19LEZyPWZ1bmN0aW9uKCl7fX0sNzgzODI6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7SjpmdW5jdGlvbigpe3JldHVybiBufX0pO3ZhciByPWUoNjcyOTQpLG49ci5jcmVhdGVDb250ZXh0KG51bGwpfSw4MzIyODpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtNZjpmdW5jdGlvbigpe3JldHVybiBhfSxtZDpmdW5jdGlvbigpe3JldHVybiBpfX0pO3ZhciByPWUoNjcyOTQpLG49ZSg3ODM4MiksdD1lKDg1ODkzKSxpPWZ1bmN0aW9uKCl7cmV0dXJuIHIudXNlQ29udGV4dChuLkopfSxzPWZ1bmN0aW9uKGMpe3JldHVybiBfanN4KF9GcmFnbWVudCx7Y2hpbGRyZW46Yy5hY2Nlc3NpYmxlP2MuY2hpbGRyZW46Yy5mYWxsYmFja30pfSxhPWZ1bmN0aW9uKGMpe3ZhciBoPWkoKSxkPXIudXNlTWVtbyhmdW5jdGlvbigpe3ZhciBtPWZ1bmN0aW9uIEMoZyx3LEUpe3ZhciB4LE8sVD1nLmFjY2VzcyxTPWc7aWYoIVQmJncmJihUPXcsUz1FKSxnLnVuYWNjZXNzaWJsZT0hMSx0eXBlb2YgVD09InN0cmluZyIpe3ZhciBMPWhbVF07dHlwZW9mIEw9PSJmdW5jdGlvbiI/Zy51bmFjY2Vzc2libGU9IUwoUyk6dHlwZW9mIEw9PSJib29sZWFuIj9nLnVuYWNjZXNzaWJsZT0hTDp0eXBlb2YgTD09InVuZGVmaW5lZCImJihnLnVuYWNjZXNzaWJsZT0hMCl9aWYoKHg9Zy5jaGlsZHJlbikhPT1udWxsJiZ4IT09dm9pZCAwJiZ4Lmxlbmd0aCl7dmFyIEk9IWcuY2hpbGRyZW4ucmVkdWNlKGZ1bmN0aW9uKHosRyl7cmV0dXJuIEMoRyxULGcpLHp8fCFHLnVuYWNjZXNzaWJsZX0sITEpO0kmJihnLnVuYWNjZXNzaWJsZT0hMCl9aWYoKE89Zy5yb3V0ZXMpIT09bnVsbCYmTyE9PXZvaWQgMCYmTy5sZW5ndGgpe3ZhciBSPSFnLnJvdXRlcy5yZWR1Y2UoZnVuY3Rpb24oeixHKXtyZXR1cm4gQyhHLFQsZyksenx8IUcudW5hY2Nlc3NpYmxlfSwhMSk7UiYmKGcudW5hY2Nlc3NpYmxlPSEwKX1yZXR1cm4gZ307cmV0dXJuIGMubWFwKGZ1bmN0aW9uKEMpe3JldHVybiBtKEMpfSl9LFtjLmxlbmd0aCxoXSk7cmV0dXJuIGR9fSw2Njk5OTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtfSDpmdW5jdGlvbigpe3JldHVybiByLl9IfSxwRDpmdW5jdGlvbigpe3JldHVybiBTfSxZQjpmdW5jdGlvbigpe3JldHVybiByLllCfX0pO3ZhciByPWUoNTU4MzUpLG49ZSg1NTc0KSx0PWUubihuKSxpPWUoOTc4Mykscz1lKDk3ODU3KSxhPWUubihzKSx1PWUoMTM3NjkpLGM9ZS5uKHUpLGg9ZSg2NzI5NCksZD1lKDg1NDE4KSxtPWUoNjcxNTkpLEM9ZSg1MDEzNiksZz1lKDg1ODkzKSx3PVsib3ZlcmxheUNsYXNzTmFtZSJdLEU9WyJnbG9iYWxJY29uQ2xhc3NOYW1lIiwicG9zdExvY2FsZXNEYXRhIiwib25JdGVtQ2xpY2siLCJpY29uIiwic3R5bGUiLCJyZWxvYWQiXSx4PWZ1bmN0aW9uKEkpe3ZhciBSPUkub3ZlcmxheUNsYXNzTmFtZSx6PWMoKShJLHcpO3JldHVybigwLGcuanN4KShkLlosYSgpKHtvdmVybGF5Q2xhc3NOYW1lOlJ9LHopKX0sTz1mdW5jdGlvbihJKXtyZXR1cm4gSS5yZWR1Y2UoZnVuY3Rpb24oUix6KXtyZXR1cm4gei5sYW5nP19vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSxSKSx7fSxfZGVmaW5lUHJvcGVydHkoe30sei5sYW5nLHopKTpSfSx7fSl9LFQ9eyJhci1FRyI6e2xhbmc6ImFyLUVHIixsYWJlbDoiXHUwNjI3XHUwNjQ0XHUwNjM5XHUwNjMxXHUwNjI4XHUwNjRBXHUwNjI5IixpY29uOiJcdXsxRjFFQX1cdXsxRjFFQ30iLHRpdGxlOiJcdTA2NDRcdTA2M0FcdTA2MjkifSwiYXotQVoiOntsYW5nOiJhei1BWiIsbGFiZWw6IkF6XHUwMjU5cmJheWNhbiBkaWxpIixpY29uOiJcdXsxRjFFNn1cdXsxRjFGRn0iLHRpdGxlOiJEaWwifSwiYmctQkciOntsYW5nOiJiZy1CRyIsbGFiZWw6Ilx1MDQxMVx1MDQ0QVx1MDQzQlx1MDQzM1x1MDQzMFx1MDQ0MFx1MDQ0MVx1MDQzQVx1MDQzOCBcdTA0MzVcdTA0MzdcdTA0MzhcdTA0M0EiLGljb246Ilx1ezFGMUU3fVx1ezFGMUVDfSIsdGl0bGU6Ilx1MDQzNVx1MDQzN1x1MDQzOFx1MDQzQSJ9LCJibi1CRCI6e2xhbmc6ImJuLUJEIixsYWJlbDoiXHUwOUFDXHUwOUJFXHUwOTgyXHUwOUIyXHUwOUJFIixpY29uOiJcdXsxRjFFN31cdXsxRjFFOX0iLHRpdGxlOiJcdTA5QURcdTA5QkVcdTA5QjdcdTA5QkUifSwiY2EtRVMiOntsYW5nOiJjYS1FUyIsbGFiZWw6IkNhdGFsXHhFMSIsaWNvbjoiXHV7MUYxRTh9XHV7MUYxRTZ9Iix0aXRsZToibGxlbmd1YSJ9LCJjcy1DWiI6e2xhbmc6ImNzLUNaIixsYWJlbDoiXHUwMTBDZVx1MDE2MXRpbmEiLGljb246Ilx1ezFGMUU4fVx1ezFGMUZGfSIsdGl0bGU6IkphenlrIn0sImRhLURLIjp7bGFuZzoiZGEtREsiLGxhYmVsOiJEYW5zayIsaWNvbjoiXHV7MUYxRTl9XHV7MUYxRjB9Iix0aXRsZToiU3Byb2cifSwiZGUtREUiOntsYW5nOiJkZS1ERSIsbGFiZWw6IkRldXRzY2giLGljb246Ilx1ezFGMUU5fVx1ezFGMUVBfSIsdGl0bGU6IlNwcmFjaGUifSwiZWwtR1IiOntsYW5nOiJlbC1HUiIsbGFiZWw6Ilx1MDM5NVx1MDNCQlx1MDNCQlx1MDNCN1x1MDNCRFx1MDNCOVx1MDNCQVx1MDNBQyIsaWNvbjoiXHV7MUYxRUN9XHV7MUYxRjd9Iix0aXRsZToiXHUwMzkzXHUwM0JCXHUwM0NFXHUwM0MzXHUwM0MzXHUwM0IxIn0sImVuLUdCIjp7bGFuZzoiZW4tR0IiLGxhYmVsOiJFbmdsaXNoIixpY29uOiJcdXsxRjFFQ31cdXsxRjFFN30iLHRpdGxlOiJMYW5ndWFnZSJ9LCJlbi1VUyI6e2xhbmc6ImVuLVVTIixsYWJlbDoiRW5nbGlzaCIsaWNvbjoiXHV7MUYxRkF9XHV7MUYxRjh9Iix0aXRsZToiTGFuZ3VhZ2UifSwiZXMtRVMiOntsYW5nOiJlcy1FUyIsbGFiZWw6IkVzcGFceEYxb2wiLGljb246Ilx1ezFGMUVBfVx1ezFGMUY4fSIsdGl0bGU6IklkaW9tYSJ9LCJldC1FRSI6e2xhbmc6ImV0LUVFIixsYWJlbDoiRWVzdGkiLGljb246Ilx1ezFGMUVBfVx1ezFGMUVBfSIsdGl0bGU6IktlZWwifSwiZmEtSVIiOntsYW5nOiJmYS1JUiIsbGFiZWw6Ilx1MDY0MVx1MDYyN1x1MDYzMVx1MDYzM1x1MDZDQyIsaWNvbjoiXHV7MUYxRUV9XHV7MUYxRjd9Iix0aXRsZToiXHUwNjMyXHUwNjI4XHUwNjI3XHUwNjQ2In0sImZpLUZJIjp7bGFuZzoiZmktRkkiLGxhYmVsOiJTdW9taSIsaWNvbjoiXHV7MUYxRUJ9XHV7MUYxRUV9Iix0aXRsZToiS2llbGkifSwiZnItQkUiOntsYW5nOiJmci1CRSIsbGFiZWw6IkZyYW5ceEU3YWlzIixpY29uOiJcdXsxRjFFN31cdXsxRjFFQX0iLHRpdGxlOiJMYW5ndWUifSwiZnItRlIiOntsYW5nOiJmci1GUiIsbGFiZWw6IkZyYW5ceEU3YWlzIixpY29uOiJcdXsxRjFFQn1cdXsxRjFGN30iLHRpdGxlOiJMYW5ndWUifSwiZ2EtSUUiOntsYW5nOiJnYS1JRSIsbGFiZWw6IkdhZWlsZ2UiLGljb246Ilx1ezFGMUVFfVx1ezFGMUVBfSIsdGl0bGU6IlRlYW5nYSJ9LCJoZS1JTCI6e2xhbmc6ImhlLUlMIixsYWJlbDoiXHUwNUUyXHUwNUQxXHUwNUU4XHUwNUQ5XHUwNUVBIixpY29uOiJcdXsxRjFFRX1cdXsxRjFGMX0iLHRpdGxlOiJcdTA1RTlcdTA1RTRcdTA1RDQifSwiaGktSU4iOntsYW5nOiJoaS1JTiIsbGFiZWw6Ilx1MDkzOVx1MDkzRlx1MDkyOFx1MDk0RFx1MDkyNlx1MDk0MCwgXHUwOTM5XHUwOTNGXHUwOTAyXHUwOTI2XHUwOTQwIixpY29uOiJcdXsxRjFFRX1cdXsxRjFGM30iLHRpdGxlOiJcdTA5MkRcdTA5M0VcdTA5MzdcdTA5M0U6IFx1MDkzOVx1MDkzRlx1MDkyOFx1MDk0RFx1MDkyNlx1MDk0MCJ9LCJoci1IUiI6e2xhbmc6ImhyLUhSIixsYWJlbDoiSHJ2YXRza2kgamV6aWsiLGljb246Ilx1ezFGMUVEfVx1ezFGMUY3fSIsdGl0bGU6IkplemlrIn0sImh1LUhVIjp7bGFuZzoiaHUtSFUiLGxhYmVsOiJNYWd5YXIiLGljb246Ilx1ezFGMUVEfVx1ezFGMUZBfSIsdGl0bGU6Ik55ZWx2In0sImh5LUFNIjp7bGFuZzoiaHUtSFUiLGxhYmVsOiJcdTA1NDBcdTA1NjFcdTA1NzVcdTA1NjVcdTA1ODBcdTA1NjVcdTA1NzYiLGljb246Ilx1ezFGMUU2fVx1ezFGMUYyfSIsdGl0bGU6Ilx1MDUzQ1x1MDU2NVx1MDU2Nlx1MDU3OFx1MDU4MiJ9LCJpZC1JRCI6e2xhbmc6ImlkLUlEIixsYWJlbDoiQmFoYXNhIEluZG9uZXNpYSIsaWNvbjoiXHV7MUYxRUV9XHV7MUYxRTl9Iix0aXRsZToiQmFoYXNhIn0sIml0LUlUIjp7bGFuZzoiaXQtSVQiLGxhYmVsOiJJdGFsaWFubyIsaWNvbjoiXHV7MUYxRUV9XHV7MUYxRjl9Iix0aXRsZToiTGluZ3VhZ2dpbyJ9LCJpcy1JUyI6e2xhbmc6ImlzLUlTIixsYWJlbDoiXHhDRHNsZW5za2EiLGljb246Ilx1ezFGMUVFfVx1ezFGMUY4fSIsdGl0bGU6IlR1bmd1bVx4RTFsIn0sImphLUpQIjp7bGFuZzoiamEtSlAiLGxhYmVsOiJcdTY1RTVcdTY3MkNcdThBOUUiLGljb246Ilx1ezFGMUVGfVx1ezFGMUY1fSIsdGl0bGU6Ilx1OEEwMFx1OEE5RSJ9LCJrdS1JUSI6e2xhbmc6Imt1LUlRIixsYWJlbDoiXHUwNkE5XHUwNjQ4XHUwNjMxXHUwNjJGXHUwNkNDIixpY29uOiJcdXsxRjFFRX1cdXsxRjFGNn0iLHRpdGxlOiJaaW1hbiJ9LCJrbi1JTiI6e2xhbmc6ImtuLUlOIixsYWJlbDoiXHUwQzk1XHUwQ0E4XHUwQ0NEXHUwQ0E4XHUwQ0ExIixpY29uOiJcdXsxRjFFRX1cdXsxRjFGM30iLHRpdGxlOiJcdTBDQURcdTBDQkVcdTBDQjdcdTBDQzYifSwia28tS1IiOntsYW5nOiJrby1LUiIsbGFiZWw6Ilx1RDU1Q1x1QUQ2RFx1QzVCNCIsaWNvbjoiXHV7MUYxRjB9XHV7MUYxRjd9Iix0aXRsZToiXHVDNUI4XHVDNUI0In0sImx2LUxWIjp7bGFuZzoibHYtTFYiLGxhYmVsOiJMYXR2aWVcdTAxNjF1IHZhbG9kYSIsaWNvbjoiXHV7MUYxRjF9XHV7MUYxRUV9Iix0aXRsZToiS2FsYmEifSwibWstTUsiOntsYW5nOiJtay1NSyIsbGFiZWw6Ilx1MDQzQ1x1MDQzMFx1MDQzQVx1MDQzNVx1MDQzNFx1MDQzRVx1MDQzRFx1MDQ0MVx1MDQzQVx1MDQzOCBcdTA0NThcdTA0MzBcdTA0MzdcdTA0MzhcdTA0M0EiLGljb246Ilx1ezFGMUYyfVx1ezFGMUYwfSIsdGl0bGU6Ilx1MDQwOFx1MDQzMFx1MDQzN1x1MDQzOFx1MDQzQSJ9LCJtbi1NTiI6e2xhbmc6Im1uLU1OIixsYWJlbDoiXHUwNDFDXHUwNDNFXHUwNDNEXHUwNDMzXHUwNDNFXHUwNDNCIFx1MDQ0NVx1MDQ0RFx1MDQzQiIsaWNvbjoiXHV7MUYxRjJ9XHV7MUYxRjN9Iix0aXRsZToiXHUwNDI1XHUwNDREXHUwNDNCIn0sIm1zLU1ZIjp7bGFuZzoibXMtTVkiLGxhYmVsOiJcdTA2MjhcdTA2NDdcdTA2MjdcdTA2MzMgXHUwNjQ1XHUwNjQ0XHUwNjI3XHUwNjRBXHUwNjQ4XHUyMDBFIixpY29uOiJcdXsxRjFGMn1cdXsxRjFGRX0iLHRpdGxlOiJCYWhhc2EifSwibmItTk8iOntsYW5nOiJuYi1OTyIsbGFiZWw6Ik5vcnNrIixpY29uOiJcdXsxRjFGM31cdXsxRjFGNH0iLHRpdGxlOiJTcHJceEU1ayJ9LCJuZS1OUCI6e2xhbmc6Im5lLU5QIixsYWJlbDoiXHUwOTI4XHUwOTQ3XHUwOTJBXHUwOTNFXHUwOTMyXHUwOTQwIixpY29uOiJcdXsxRjFGM31cdXsxRjFGNX0iLHRpdGxlOiJcdTA5MkRcdTA5M0VcdTA5MzdcdTA5M0UifSwibmwtQkUiOntsYW5nOiJubC1CRSIsbGFiZWw6IlZsYWFtcyIsaWNvbjoiXHV7MUYxRTd9XHV7MUYxRUF9Iix0aXRsZToiVGFhbCJ9LCJubC1OTCI6e2xhbmc6Im5sLU5MIixsYWJlbDoiTmVkZXJsYW5kcyIsaWNvbjoiXHV7MUYxRjN9XHV7MUYxRjF9Iix0aXRsZToiVGFhbCJ9LCJwbC1QTCI6e2xhbmc6InBsLVBMIixsYWJlbDoiUG9sc2tpIixpY29uOiJcdXsxRjFGNX1cdXsxRjFGMX0iLHRpdGxlOiJKXHUwMTE5enlrIn0sInB0LUJSIjp7bGFuZzoicHQtQlIiLGxhYmVsOiJQb3J0dWd1XHhFQXMiLGljb246Ilx1ezFGMUU3fVx1ezFGMUY3fSIsdGl0bGU6IklkaW9tYXMifSwicHQtUFQiOntsYW5nOiJwdC1QVCIsbGFiZWw6IlBvcnR1Z3VceEVBcyIsaWNvbjoiXHV7MUYxRjV9XHV7MUYxRjl9Iix0aXRsZToiSWRpb21hcyJ9LCJyby1STyI6e2xhbmc6InJvLVJPIixsYWJlbDoiUm9tXHhFMm5cdTAxMDMiLGljb246Ilx1ezFGMUY3fVx1ezFGMUY0fSIsdGl0bGU6IkxpbWJhIn0sInJ1LVJVIjp7bGFuZzoicnUtUlUiLGxhYmVsOiJcdTA0MjBcdTA0NDNcdTA0NDFcdTA0NDFcdTA0M0FcdTA0MzhcdTA0MzkiLGljb246Ilx1ezFGMUY3fVx1ezFGMUZBfSIsdGl0bGU6Ilx1MDQ0Rlx1MDQzN1x1MDQ0Qlx1MDQzQSJ9LCJzay1TSyI6e2xhbmc6InNrLVNLIixsYWJlbDoiU2xvdmVuXHUwMTBEaW5hIixpY29uOiJcdXsxRjFGOH1cdXsxRjFGMH0iLHRpdGxlOiJKYXp5ayJ9LCJzci1SUyI6e2xhbmc6InNyLVJTIixsYWJlbDoiXHUwNDQxXHUwNDQwXHUwNDNGXHUwNDQxXHUwNDNBXHUwNDM4IFx1MDQ1OFx1MDQzNVx1MDQzN1x1MDQzOFx1MDQzQSIsaWNvbjoiXHV7MUYxRjh9XHV7MUYxRjd9Iix0aXRsZToiXHUwNDA4XHUwNDM1XHUwNDM3XHUwNDM4XHUwNDNBIn0sInNsLVNJIjp7bGFuZzoic2wtU0kiLGxhYmVsOiJTbG92ZW5cdTAxNjFcdTAxMERpbmEiLGljb246Ilx1ezFGMUY4fVx1ezFGMUYxfSIsdGl0bGU6IkplemlrIn0sInN2LVNFIjp7bGFuZzoic3YtU0UiLGxhYmVsOiJTdmVuc2thIixpY29uOiJcdXsxRjFGOH1cdXsxRjFFQX0iLHRpdGxlOiJTcHJceEU1ayJ9LCJ0YS1JTiI6e2xhbmc6InRhLUlOIixsYWJlbDoiXHUwQkE0XHUwQkFFXHUwQkJGXHUwQkI0XHUwQkNEIixpY29uOiJcdXsxRjFFRX1cdXsxRjFGM30iLHRpdGxlOiJcdTBCQUVcdTBCQ0FcdTBCQjRcdTBCQkYifSwidGgtVEgiOntsYW5nOiJ0aC1USCIsbGFiZWw6Ilx1MEU0NFx1MEUxN1x1MEUyMiIsaWNvbjoiXHV7MUYxRjl9XHV7MUYxRUR9Iix0aXRsZToiXHUwRTIwXHUwRTMyXHUwRTI5XHUwRTMyIn0sInRyLVRSIjp7bGFuZzoidHItVFIiLGxhYmVsOiJUXHhGQ3JrXHhFN2UiLGljb246Ilx1ezFGMUY5fVx1ezFGMUY3fSIsdGl0bGU6IkRpbCJ9LCJ1ay1VQSI6e2xhbmc6InVrLVVBIixsYWJlbDoiXHUwNDIzXHUwNDNBXHUwNDQwXHUwNDMwXHUwNDU3XHUwNDNEXHUwNDQxXHUwNDRDXHUwNDNBXHUwNDMwIixpY29uOiJcdXsxRjFGQX1cdXsxRjFGMH0iLHRpdGxlOiJcdTA0MUNcdTA0M0VcdTA0MzJcdTA0MzAifSwidmktVk4iOntsYW5nOiJ2aS1WTiIsbGFiZWw6IlRpXHUxRUJGbmcgVmlcdTFFQzd0IixpY29uOiJcdXsxRjFGQn1cdXsxRjFGM30iLHRpdGxlOiJOZ1x4RjRuIG5nXHUxRUVGIn0sInpoLUNOIjp7bGFuZzoiemgtQ04iLGxhYmVsOiJcdTdCODBcdTRGNTNcdTRFMkRcdTY1ODciLGljb246Ilx1ezFGMUU4fVx1ezFGMUYzfSIsdGl0bGU6Ilx1OEJFRFx1OEEwMCJ9LCJ6aC1UVyI6e2xhbmc6InpoLVRXIixsYWJlbDoiXHU3RTQxXHU5QUQ0XHU0RTJEXHU2NTg3IixpY29uOiJcdXsxRjFFRH1cdXsxRjFGMH0iLHRpdGxlOiJcdThBOUVcdThBMDAifX0sUz1mdW5jdGlvbihJKXt2YXIgUix6PUkuZ2xvYmFsSWNvbkNsYXNzTmFtZSxHPUkucG9zdExvY2FsZXNEYXRhLFk9SS5vbkl0ZW1DbGljayxlZT1JLmljb24sSj1JLnN0eWxlLG1lPUkucmVsb2FkLHRlPWMoKShJLEUpLGxlPSgwLGgudXNlU3RhdGUpKGZ1bmN0aW9uKCl7cmV0dXJuKDAsci5LZCkoKX0pLGNlPXQoKShsZSwyKSxXPWNlWzBdLGo9Y2VbMV0sRD1mdW5jdGlvbihSZSl7dmFyIEJlPVJlLmtleTsoMCxyLmlfKShCZSxtZSksaigoMCxyLktkKSgpKX0sVj0oMCxyLlhaKSgpLm1hcChmdW5jdGlvbihFZSl7cmV0dXJuIFRbRWVdfHx7bGFuZzpFZSxsYWJlbDpFZSxpY29uOiJcdXsxRjMxMH0iLHRpdGxlOkVlfX0pLFo9KEc9PW51bGw/dm9pZCAwOkcoVikpfHxWLFA9WT9mdW5jdGlvbihFZSl7cmV0dXJuIFkoRWUpfTpELEs9e21pbldpZHRoOiIxNjBweCJ9LHNlPXttYXJnaW5SaWdodDoiOHB4In0sbmU9e3NlbGVjdGVkS2V5czpbV10sb25DbGljazpQLGl0ZW1zOloubWFwKGZ1bmN0aW9uKEVlKXtyZXR1cm57a2V5OkVlLmxhbmd8fEVlLmtleSxzdHlsZTpLLGxhYmVsOigwLGcuanN4cykoZy5GcmFnbWVudCx7Y2hpbGRyZW46WygwLGcuanN4KSgic3BhbiIse3JvbGU6ImltZyIsImFyaWEtbGFiZWwiOihFZT09bnVsbD92b2lkIDA6RWUubGFiZWwpfHwiZW4tVVMiLHN0eWxlOnNlLGNoaWxkcmVuOihFZT09bnVsbD92b2lkIDA6RWUuaWNvbil8fCJcdXsxRjMxMH0ifSksKEVlPT1udWxsP3ZvaWQgMDpFZS5sYWJlbCl8fCJlbi1VUyJdfSl9fSl9LG9lO20uWi5zdGFydHNXaXRoKCI1LiIpfHxtLlouc3RhcnRzV2l0aCgiNC4yNC4iKT9vZT17bWVudTpuZX06bS5aLnN0YXJ0c1dpdGgoIjMuIik/b2U9e292ZXJsYXk6KDAsZy5qc3gpKEMuWix7Y2hpbGRyZW46bmUuaXRlbXMubWFwKGZ1bmN0aW9uKEVlKXtyZXR1cm4oMCxnLmpzeCkoQy5aLkl0ZW0se29uQ2xpY2s6RWUub25DbGljayxjaGlsZHJlbjpFZS5sYWJlbH0sRWUua2V5KX0pfSl9Om9lPXtvdmVybGF5OigwLGcuanN4KShDLlosYSgpKHt9LG5lKSl9O3ZhciBmZT1hKCkoe2N1cnNvcjoicG9pbnRlciIscGFkZGluZzoiMTJweCIsZGlzcGxheToiaW5saW5lLWZsZXgiLGFsaWduSXRlbXM6ImNlbnRlciIsanVzdGlmeUNvbnRlbnQ6ImNlbnRlciIsZm9udFNpemU6MTgsdmVydGljYWxBbGlnbjoibWlkZGxlIn0sSik7cmV0dXJuKDAsZy5qc3gpKHgsYSgpKGEoKShhKCkoe30sb2UpLHt9LHtwbGFjZW1lbnQ6ImJvdHRvbVJpZ2h0In0sdGUpLHt9LHtjaGlsZHJlbjooMCxnLmpzeCkoInNwYW4iLHtjbGFzc05hbWU6eixzdHlsZTpmZSxjaGlsZHJlbjooMCxnLmpzeCkoImkiLHtjbGFzc05hbWU6ImFudGljb24iLHRpdGxlOihSPVpbV10pPT09bnVsbHx8Uj09PXZvaWQgMD92b2lkIDA6Ui50aXRsZSxjaGlsZHJlbjplZXx8KDAsZy5qc3hzKSgic3ZnIix7dmlld0JveDoiMCAwIDI0IDI0Iixmb2N1c2FibGU6ImZhbHNlIix3aWR0aDoiMWVtIixoZWlnaHQ6IjFlbSIsZmlsbDoiY3VycmVudENvbG9yIiwiYXJpYS1oaWRkZW4iOiJ0cnVlIixjaGlsZHJlbjpbKDAsZy5qc3gpKCJwYXRoIix7ZDoiTTAgMGgyNHYyNEgweiIsZmlsbDoibm9uZSJ9KSwoMCxnLmpzeCkoInBhdGgiLHtkOiJNMTIuODcgMTUuMDdsLTIuNTQtMi41MS4wMy0uMDNjMS43NC0xLjk0IDIuOTgtNC4xNyAzLjcxLTYuNTNIMTdWNGgtN1YySDh2MkgxdjEuOTloMTEuMTdDMTEuNSA3LjkyIDEwLjQ0IDkuNzUgOSAxMS4zNSA4LjA3IDEwLjMyIDcuMyA5LjE5IDYuNjkgOGgtMmMuNzMgMS42MyAxLjczIDMuMTcgMi45OCA0LjU2bC01LjA5IDUuMDJMNCAxOWw1LTUgMy4xMSAzLjExLjc2LTIuMDR6TTE4LjUgMTBoLTJMMTIgMjJoMmwxLjEyLTNoNC43NUwyMSAyMmgybC00LjUtMTJ6bS0yLjYyIDdsMS42Mi00LjMzTDE5LjEyIDE3aC0zLjI0eiAiLGNsYXNzTmFtZToiY3NzLWM0ZDc5diJ9KV19KX0pfSl9KSl9fSw1NTgzNTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtfSDpmdW5jdGlvbigpe3JldHVybiBWdH0sUFo6ZnVuY3Rpb24oKXtyZXR1cm4gbm99LGVVOmZ1bmN0aW9uKCl7cmV0dXJuIHp9LEI6ZnVuY3Rpb24oKXtyZXR1cm4gdW99LFhaOmZ1bmN0aW9uKCl7cmV0dXJuIGx0fSxNZzpmdW5jdGlvbigpe3JldHVybiBwaX0sbHc6ZnVuY3Rpb24oKXtyZXR1cm4gV299LEtkOmZ1bmN0aW9uKCl7cmV0dXJuIGFvfSxIODpmdW5jdGlvbigpe3JldHVybiBnb30saV86ZnVuY3Rpb24oKXtyZXR1cm4gSG99LFlCOmZ1bmN0aW9uKCl7cmV0dXJuIGVufX0pO3ZhciByPWUoMTM3NjkpLG49ZS5uKHIpLHQ9ZSg5Nzg1NyksaT1lLm4odCkscz1lKDEyNDQ0KSxhPWUubihzKSx1PWUoNzIwMDQpLGM9ZS5uKHUpLGg9ZSgzMTk5NiksZD1lLm4oaCksbT1lKDI2MDM3KSxDPWUubihtKSxnPWUoNjcyOTQpLHc9ZS50KGcsMiksRT1lKDk3ODMpLHg9ZSg4Njc5KSxPPWUubih4KSxUPU8oKXx8eDtmdW5jdGlvbiBTKGllKXtyZXR1cm4gaWUuZGlzcGxheU5hbWV8fGllLm5hbWV8fCJDb21wb25lbnQifXZhciBMPWcuY3JlYXRlQ29udGV4dChudWxsKSxJPUwuQ29uc3VtZXIsUj1MLlByb3ZpZGVyLHo9UixHPUw7ZnVuY3Rpb24gWShpZSx5ZSl7dmFyIEI9eWV8fHt9LFZlPUIuaW50bFByb3BOYW1lLHN0PVZlPT09dm9pZCAwPyJpbnRsIjpWZSxSdD1CLmZvcndhcmRSZWYsQnQ9UnQ9PT12b2lkIDA/ITE6UnQsTHQ9Qi5lbmZvcmNlQ29udGV4dCxZdD1MdD09PXZvaWQgMD8hMDpMdCxBbj1mdW5jdGlvbihxdCl7cmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSSxudWxsLGZ1bmN0aW9uKE1uKXtyZXR1cm4gWXQmJmludmFyaWFudEludGxDb250ZXh0KE1uKSxSZWFjdC5jcmVhdGVFbGVtZW50KGllLE9iamVjdC5hc3NpZ24oe30scXQsX2RlZmluZVByb3BlcnR5KHt9LHN0LE1uKSx7cmVmOkJ0P3F0LmZvcndhcmRlZFJlZjpudWxsfSkpfSl9O3JldHVybiBBbi5kaXNwbGF5TmFtZT0iaW5qZWN0SW50bCgiLmNvbmNhdChTKGllKSwiKSIpLEFuLldyYXBwZWRDb21wb25lbnQ9aWUsVChCdD9SZWFjdC5mb3J3YXJkUmVmKGZ1bmN0aW9uKHNuLHF0KXtyZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChBbixPYmplY3QuYXNzaWduKHt9LHNuLHtmb3J3YXJkZWRSZWY6cXR9KSl9KTpBbixpZSl9dmFyIGVlOyhmdW5jdGlvbihpZSl7aWVbaWUubGl0ZXJhbD0wXT0ibGl0ZXJhbCIsaWVbaWUuYXJndW1lbnQ9MV09ImFyZ3VtZW50IixpZVtpZS5udW1iZXI9Ml09Im51bWJlciIsaWVbaWUuZGF0ZT0zXT0iZGF0ZSIsaWVbaWUudGltZT00XT0idGltZSIsaWVbaWUuc2VsZWN0PTVdPSJzZWxlY3QiLGllW2llLnBsdXJhbD02XT0icGx1cmFsIixpZVtpZS5wb3VuZD03XT0icG91bmQifSkoZWV8fChlZT17fSkpO2Z1bmN0aW9uIEooaWUpe3JldHVybiBpZS50eXBlPT09ZWUubGl0ZXJhbH1mdW5jdGlvbiBtZShpZSl7cmV0dXJuIGllLnR5cGU9PT1lZS5hcmd1bWVudH1mdW5jdGlvbiB0ZShpZSl7cmV0dXJuIGllLnR5cGU9PT1lZS5udW1iZXJ9ZnVuY3Rpb24gbGUoaWUpe3JldHVybiBpZS50eXBlPT09ZWUuZGF0ZX1mdW5jdGlvbiBjZShpZSl7cmV0dXJuIGllLnR5cGU9PT1lZS50aW1lfWZ1bmN0aW9uIFcoaWUpe3JldHVybiBpZS50eXBlPT09ZWUuc2VsZWN0fWZ1bmN0aW9uIGooaWUpe3JldHVybiBpZS50eXBlPT09ZWUucGx1cmFsfWZ1bmN0aW9uIEQoaWUpe3JldHVybiBpZS50eXBlPT09ZWUucG91bmR9ZnVuY3Rpb24gVihpZSl7cmV0dXJuISEoaWUmJnR5cGVvZiBpZT09Im9iamVjdCImJmllLnR5cGU9PT0wKX1mdW5jdGlvbiBaKGllKXtyZXR1cm4hIShpZSYmdHlwZW9mIGllPT0ib2JqZWN0IiYmaWUudHlwZT09PTEpfWZ1bmN0aW9uIFAoaWUpe3JldHVybnt0eXBlOmVlLmxpdGVyYWwsdmFsdWU6aWV9fWZ1bmN0aW9uIEsoaWUseWUpe3JldHVybnt0eXBlOmVlLm51bWJlcix2YWx1ZTppZSxzdHlsZTp5ZX19dmFyIHNlPWZ1bmN0aW9uKCl7dmFyIGllPWZ1bmN0aW9uKHllLEIpe3JldHVybiBpZT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24oVmUsc3Qpe1ZlLl9fcHJvdG9fXz1zdH18fGZ1bmN0aW9uKFZlLHN0KXtmb3IodmFyIFJ0IGluIHN0KXN0Lmhhc093blByb3BlcnR5KFJ0KSYmKFZlW1J0XT1zdFtSdF0pfSxpZSh5ZSxCKX07cmV0dXJuIGZ1bmN0aW9uKHllLEIpe2llKHllLEIpO2Z1bmN0aW9uIFZlKCl7dGhpcy5jb25zdHJ1Y3Rvcj15ZX15ZS5wcm90b3R5cGU9Qj09PW51bGw/T2JqZWN0LmNyZWF0ZShCKTooVmUucHJvdG90eXBlPUIucHJvdG90eXBlLG5ldyBWZSl9fSgpLG5lPWZ1bmN0aW9uKCl7cmV0dXJuIG5lPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKGllKXtmb3IodmFyIHllLEI9MSxWZT1hcmd1bWVudHMubGVuZ3RoO0I8VmU7QisrKXt5ZT1hcmd1bWVudHNbQl07Zm9yKHZhciBzdCBpbiB5ZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoeWUsc3QpJiYoaWVbc3RdPXllW3N0XSl9cmV0dXJuIGllfSxuZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LG9lPWZ1bmN0aW9uKGllKXtzZSh5ZSxpZSk7ZnVuY3Rpb24geWUoQixWZSxzdCxSdCl7dmFyIEJ0PWllLmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIEJ0Lm1lc3NhZ2U9QixCdC5leHBlY3RlZD1WZSxCdC5mb3VuZD1zdCxCdC5sb2NhdGlvbj1SdCxCdC5uYW1lPSJTeW50YXhFcnJvciIsdHlwZW9mIEVycm9yLmNhcHR1cmVTdGFja1RyYWNlPT0iZnVuY3Rpb24iJiZFcnJvci5jYXB0dXJlU3RhY2tUcmFjZShCdCx5ZSksQnR9cmV0dXJuIHllLmJ1aWxkTWVzc2FnZT1mdW5jdGlvbihCLFZlKXtmdW5jdGlvbiBzdChzbil7cmV0dXJuIHNuLmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCl9ZnVuY3Rpb24gUnQoc24pe3JldHVybiBzbi5yZXBsYWNlKC9cXC9nLCJcXFxcIikucmVwbGFjZSgvIi9nLCdcXCInKS5yZXBsYWNlKC9cMC9nLCJcXDAiKS5yZXBsYWNlKC9cdC9nLCJcXHQiKS5yZXBsYWNlKC9cbi9nLCJcXG4iKS5yZXBsYWNlKC9cci9nLCJcXHIiKS5yZXBsYWNlKC9bXHgwMC1ceDBGXS9nLGZ1bmN0aW9uKHF0KXtyZXR1cm4iXFx4MCIrc3QocXQpfSkucmVwbGFjZSgvW1x4MTAtXHgxRlx4N0YtXHg5Rl0vZyxmdW5jdGlvbihxdCl7cmV0dXJuIlxceCIrc3QocXQpfSl9ZnVuY3Rpb24gQnQoc24pe3JldHVybiBzbi5yZXBsYWNlKC9cXC9nLCJcXFxcIikucmVwbGFjZSgvXF0vZywiXFxdIikucmVwbGFjZSgvXF4vZywiXFxeIikucmVwbGFjZSgvLS9nLCJcXC0iKS5yZXBsYWNlKC9cMC9nLCJcXDAiKS5yZXBsYWNlKC9cdC9nLCJcXHQiKS5yZXBsYWNlKC9cbi9nLCJcXG4iKS5yZXBsYWNlKC9cci9nLCJcXHIiKS5yZXBsYWNlKC9bXHgwMC1ceDBGXS9nLGZ1bmN0aW9uKHF0KXtyZXR1cm4iXFx4MCIrc3QocXQpfSkucmVwbGFjZSgvW1x4MTAtXHgxRlx4N0YtXHg5Rl0vZyxmdW5jdGlvbihxdCl7cmV0dXJuIlxceCIrc3QocXQpfSl9ZnVuY3Rpb24gTHQoc24pe3N3aXRjaChzbi50eXBlKXtjYXNlImxpdGVyYWwiOnJldHVybiciJytSdChzbi50ZXh0KSsnIic7Y2FzZSJjbGFzcyI6dmFyIHF0PXNuLnBhcnRzLm1hcChmdW5jdGlvbihNbil7cmV0dXJuIEFycmF5LmlzQXJyYXkoTW4pP0J0KE1uWzBdKSsiLSIrQnQoTW5bMV0pOkJ0KE1uKX0pO3JldHVybiJbIisoc24uaW52ZXJ0ZWQ/Il4iOiIiKStxdCsiXSI7Y2FzZSJhbnkiOnJldHVybiJhbnkgY2hhcmFjdGVyIjtjYXNlImVuZCI6cmV0dXJuImVuZCBvZiBpbnB1dCI7Y2FzZSJvdGhlciI6cmV0dXJuIHNuLmRlc2NyaXB0aW9ufX1mdW5jdGlvbiBZdChzbil7dmFyIHF0PXNuLm1hcChMdCksTW4sQ3I7aWYocXQuc29ydCgpLHF0Lmxlbmd0aD4wKXtmb3IoTW49MSxDcj0xO01uPHF0Lmxlbmd0aDtNbisrKXF0W01uLTFdIT09cXRbTW5dJiYocXRbQ3JdPXF0W01uXSxDcisrKTtxdC5sZW5ndGg9Q3J9c3dpdGNoKHF0Lmxlbmd0aCl7Y2FzZSAxOnJldHVybiBxdFswXTtjYXNlIDI6cmV0dXJuIHF0WzBdKyIgb3IgIitxdFsxXTtkZWZhdWx0OnJldHVybiBxdC5zbGljZSgwLC0xKS5qb2luKCIsICIpKyIsIG9yICIrcXRbcXQubGVuZ3RoLTFdfX1mdW5jdGlvbiBBbihzbil7cmV0dXJuIHNuPyciJytSdChzbikrJyInOiJlbmQgb2YgaW5wdXQifXJldHVybiJFeHBlY3RlZCAiK1l0KEIpKyIgYnV0ICIrQW4oVmUpKyIgZm91bmQuIn0seWV9KEVycm9yKTtmdW5jdGlvbiBmZShpZSx5ZSl7eWU9eWUhPT12b2lkIDA/eWU6e307dmFyIEI9e30sVmU9e3N0YXJ0OnVpfSxzdD11aSxSdD1mdW5jdGlvbihUZSl7cmV0dXJuIFRlLmpvaW4oIiIpfSxCdD1mdW5jdGlvbihUZSl7cmV0dXJuIG5lKHt0eXBlOmVlLmxpdGVyYWwsdmFsdWU6VGV9LHppKCkpfSxMdD0iIyIsWXQ9S2EoIiMiLCExKSxBbj1mdW5jdGlvbigpe3JldHVybiBuZSh7dHlwZTplZS5wb3VuZH0semkoKSl9LHNuPWJvKCJhcmd1bWVudEVsZW1lbnQiKSxxdD0ieyIsTW49S2EoInsiLCExKSxDcj0ifSIscW49S2EoIn0iLCExKSxqcj1mdW5jdGlvbihUZSl7cmV0dXJuIG5lKHt0eXBlOmVlLmFyZ3VtZW50LHZhbHVlOlRlfSx6aSgpKX0sQ249Ym8oIm51bWJlclNrZWxldG9uSWQiKSxMcj0vXlsnXC97fV0vLERyPVRvKFsiJyIsIi8iLCJ7IiwifSJdLCExLCExKSxOcj1WaSgpLHRhPWJvKCJudW1iZXJTa2VsZXRvblRva2VuT3B0aW9uIiksdmE9Ii8iLFhyPUthKCIvIiwhMSksRWE9ZnVuY3Rpb24oVGUpe3JldHVybiBUZX0scG89Ym8oIm51bWJlclNrZWxldG9uVG9rZW4iKSx5YT1mdW5jdGlvbihUZSxpdCl7cmV0dXJue3N0ZW06VGUsb3B0aW9uczppdH19LElhPWZ1bmN0aW9uKFRlKXtyZXR1cm4gbmUoe3R5cGU6MCx0b2tlbnM6VGV9LHppKCkpfSxnYT0iOjoiLEhhPUthKCI6OiIsITEpLFBhPWZ1bmN0aW9uKFRlKXtyZXR1cm4gVGV9LGVvPWZ1bmN0aW9uKCl7cmV0dXJuIFpvLnB1c2goIm51bWJlckFyZ1N0eWxlIiksITB9LFVhPWZ1bmN0aW9uKFRlKXtyZXR1cm4gWm8ucG9wKCksVGUucmVwbGFjZSgvXHMqJC8sIiIpfSx2bz0iLCIsR2E9S2EoIiwiLCExKSxvbz0ibnVtYmVyIixpbz1LYSgibnVtYmVyIiwhMSksT289ZnVuY3Rpb24oVGUsaXQsUXQpe3JldHVybiBuZSh7dHlwZTppdD09PSJudW1iZXIiP2VlLm51bWJlcjppdD09PSJkYXRlIj9lZS5kYXRlOmVlLnRpbWUsc3R5bGU6UXQmJlF0WzJdLHZhbHVlOlRlfSx6aSgpKX0sbG89IiciLHhvPUthKCInIiwhMSksQ289L15bXiddLyxIaT1UbyhbIiciXSwhMCwhMSksZWw9L15bXmEtekEtWid7fV0vLHRsPVRvKFtbImEiLCJ6Il0sWyJBIiwiWiJdLCInIiwieyIsIn0iXSwhMCwhMSksWG89L15bYS16QS1aXS8sRGk9VG8oW1siYSIsInoiXSxbIkEiLCJaIl1dLCExLCExKSxubD1mdW5jdGlvbihUZSl7cmV0dXJuIG5lKHt0eXBlOjEscGF0dGVybjpUZX0semkoKSl9LHlsPWZ1bmN0aW9uKCl7cmV0dXJuIFpvLnB1c2goImRhdGVPclRpbWVBcmdTdHlsZSIpLCEwfSxNdD0iZGF0ZSIsS2U9S2EoImRhdGUiLCExKSx5dD0idGltZSIsUHQ9S2EoInRpbWUiLCExKSxBdD0icGx1cmFsIixVdD1LYSgicGx1cmFsIiwhMSksZG49InNlbGVjdG9yZGluYWwiLGRyPUthKCJzZWxlY3RvcmRpbmFsIiwhMSksdHI9Im9mZnNldDoiLHpyPUthKCJvZmZzZXQ6IiwhMSksd3I9ZnVuY3Rpb24oVGUsaXQsUXQsVW4pe3JldHVybiBuZSh7dHlwZTplZS5wbHVyYWwscGx1cmFsVHlwZTppdD09PSJwbHVyYWwiPyJjYXJkaW5hbCI6Im9yZGluYWwiLHZhbHVlOlRlLG9mZnNldDpRdD9RdFsyXTowLG9wdGlvbnM6VW4ucmVkdWNlKGZ1bmN0aW9uKE9yLGxhKXt2YXIgWWE9bGEuaWQseGE9bGEudmFsdWUsVm89bGEubG9jYXRpb247cmV0dXJuIFlhIGluIE9yJiZzbCgnRHVwbGljYXRlIG9wdGlvbiAiJytZYSsnIiBpbiBwbHVyYWwgZWxlbWVudDogIicrQmkoKSsnIicscmwoKSksT3JbWWFdPXt2YWx1ZTp4YSxsb2NhdGlvbjpWb30sT3J9LHt9KX0semkoKSl9LEJyPSJzZWxlY3QiLGRhPUthKCJzZWxlY3QiLCExKSxzYT1mdW5jdGlvbihUZSxpdCl7cmV0dXJuIG5lKHt0eXBlOmVlLnNlbGVjdCx2YWx1ZTpUZSxvcHRpb25zOml0LnJlZHVjZShmdW5jdGlvbihRdCxVbil7dmFyIE9yPVVuLmlkLGxhPVVuLnZhbHVlLFlhPVVuLmxvY2F0aW9uO3JldHVybiBPciBpbiBRdCYmc2woJ0R1cGxpY2F0ZSBvcHRpb24gIicrT3IrJyIgaW4gc2VsZWN0IGVsZW1lbnQ6ICInK0JpKCkrJyInLHJsKCkpLFF0W09yXT17dmFsdWU6bGEsbG9jYXRpb246WWF9LFF0fSx7fSl9LHppKCkpfSx3YT0iPSIsemE9S2EoIj0iLCExKSxMYT1mdW5jdGlvbihUZSl7cmV0dXJuIFpvLnB1c2goInNlbGVjdCIpLCEwfSxXYT1mdW5jdGlvbihUZSxpdCl7cmV0dXJuIFpvLnBvcCgpLG5lKHtpZDpUZSx2YWx1ZTppdH0semkoKSl9LE9hPWZ1bmN0aW9uKFRlKXtyZXR1cm4gWm8ucHVzaCgicGx1cmFsIiksITB9LEphPWZ1bmN0aW9uKFRlLGl0KXtyZXR1cm4gWm8ucG9wKCksbmUoe2lkOlRlLHZhbHVlOml0fSx6aSgpKX0sdG89Ym8oIndoaXRlc3BhY2UiKSx3bz0vXltcdC1cciBceDg1XHhBMFx1MTY4MFx1MjAwMC1cdTIwMEFcdTIwMjhcdTIwMjlcdTIwMkZcdTIwNUZcdTMwMDBdLyxobz1UbyhbWyIJIiwiXHIiXSwiICIsIlx4ODUiLCJceEEwIiwiXHUxNjgwIixbIlx1MjAwMCIsIlx1MjAwQSJdLCJcdTIwMjgiLCJcdTIwMjkiLCJcdTIwMkYiLCJcdTIwNUYiLCJcdTMwMDAiXSwhMSwhMSkseW89Ym8oInN5bnRheCBwYXR0ZXJuIiksUW89L15bIS1cLzotQFstXF5gey1+XHhBMS1ceEE3XHhBOVx4QUJceEFDXHhBRVx4QjBceEIxXHhCNlx4QkJceEJGXHhEN1x4RjdcdTIwMTAtXHUyMDI3XHUyMDMwLVx1MjAzRVx1MjA0MS1cdTIwNTNcdTIwNTUtXHUyMDVFXHUyMTkwLVx1MjQ1Rlx1MjUwMC1cdTI3NzVcdTI3OTQtXHUyQkZGXHUyRTAwLVx1MkU3Rlx1MzAwMS1cdTMwMDNcdTMwMDgtXHUzMDIwXHUzMDMwXHVGRDNFXHVGRDNGXHVGRTQ1XHVGRTQ2XS8sa289VG8oW1siISIsIi8iXSxbIjoiLCJAIl0sWyJbIiwiXiJdLCJgIixbInsiLCJ+Il0sWyJceEExIiwiXHhBNyJdLCJceEE5IiwiXHhBQiIsIlx4QUMiLCJceEFFIiwiXHhCMCIsIlx4QjEiLCJceEI2IiwiXHhCQiIsIlx4QkYiLCJceEQ3IiwiXHhGNyIsWyJcdTIwMTAiLCJcdTIwMjciXSxbIlx1MjAzMCIsIlx1MjAzRSJdLFsiXHUyMDQxIiwiXHUyMDUzIl0sWyJcdTIwNTUiLCJcdTIwNUUiXSxbIlx1MjE5MCIsIlx1MjQ1RiJdLFsiXHUyNTAwIiwiXHUyNzc1Il0sWyJcdTI3OTQiLCJcdTJCRkYiXSxbIlx1MkUwMCIsIlx1MkU3RiJdLFsiXHUzMDAxIiwiXHUzMDAzIl0sWyJcdTMwMDgiLCJcdTMwMjAiXSwiXHUzMDMwIiwiXHVGRDNFIiwiXHVGRDNGIiwiXHVGRTQ1IiwiXHVGRTQ2Il0sITEsITEpLHlpPWJvKCJvcHRpb25hbCB3aGl0ZXNwYWNlIiksTWk9Ym8oIm51bWJlciIpLENpPSItIixEbz1LYSgiLSIsITEpLEtpPWZ1bmN0aW9uKFRlLGl0KXtyZXR1cm4gaXQ/VGU/LWl0Oml0OjB9LFJpPWJvKCJhcG9zdHJvcGhlIiksS289Ym8oImRvdWJsZSBhcG9zdHJvcGhlcyIpLEpvPSInJyIscW89S2EoIicnIiwhMSksX2k9ZnVuY3Rpb24oKXtyZXR1cm4iJyJ9LEVvPWZ1bmN0aW9uKFRlLGl0KXtyZXR1cm4gVGUraXQucmVwbGFjZSgiJyciLCInIil9LGtuPWZ1bmN0aW9uKFRlKXtyZXR1cm4gVGUhPT0ieyImJiEoTGwoKSYmVGU9PT0iIyIpJiYhKFFpKCkmJlRlPT09In0iKX0sRG49YAorYCxXcj1LYShgCitgLCExKSxrcj1mdW5jdGlvbihUZSl7cmV0dXJuIFRlPT09InsifHxUZT09PSJ9Inx8TGwoKSYmVGU9PT0iIyJ9LGlhPWJvKCJhcmdOYW1lT3JOdW1iZXIiKSxhYT1ibygiYXJnTnVtYmVyIiksbmE9IjAiLG1hPUthKCIwIiwhMSkseHI9ZnVuY3Rpb24oKXtyZXR1cm4gMH0sWnI9L15bMS05XS8sVmE9VG8oW1siMSIsIjkiXV0sITEsITEpLERhPS9eWzAtOV0vLHBhPVRvKFtbIjAiLCI5Il1dLCExLCExKSxzbz1mdW5jdGlvbihUZSl7cmV0dXJuIHBhcnNlSW50KFRlLmpvaW4oIiIpLDEwKX0scWE9Ym8oImFyZ05hbWUiKSxqZT0wLEtyPTAsQW89W3tsaW5lOjEsY29sdW1uOjF9XSxJbz0wLGVpPVtdLG5yPTAscmk7aWYoeWUuc3RhcnRSdWxlIT09dm9pZCAwKXtpZighKHllLnN0YXJ0UnVsZSBpbiBWZSkpdGhyb3cgbmV3IEVycm9yKGBDYW4ndCBzdGFydCBwYXJzaW5nIGZyb20gcnVsZSAiYCt5ZS5zdGFydFJ1bGUrJyIuJyk7c3Q9VmVbeWUuc3RhcnRSdWxlXX1mdW5jdGlvbiBCaSgpe3JldHVybiBpZS5zdWJzdHJpbmcoS3IsamUpfWZ1bmN0aW9uIHJsKCl7cmV0dXJuIExvKEtyLGplKX1mdW5jdGlvbiBjaShUZSxpdCl7dGhyb3cgaXQ9aXQhPT12b2lkIDA/aXQ6TG8oS3IsamUpLGFpKFtibyhUZSldLGllLnN1YnN0cmluZyhLcixqZSksaXQpfWZ1bmN0aW9uIHNsKFRlLGl0KXt0aHJvdyBpdD1pdCE9PXZvaWQgMD9pdDpMbyhLcixqZSksSWkoVGUsaXQpfWZ1bmN0aW9uIEthKFRlLGl0KXtyZXR1cm57dHlwZToibGl0ZXJhbCIsdGV4dDpUZSxpZ25vcmVDYXNlOml0fX1mdW5jdGlvbiBUbyhUZSxpdCxRdCl7cmV0dXJue3R5cGU6ImNsYXNzIixwYXJ0czpUZSxpbnZlcnRlZDppdCxpZ25vcmVDYXNlOlF0fX1mdW5jdGlvbiBWaSgpe3JldHVybnt0eXBlOiJhbnkifX1mdW5jdGlvbiBHaSgpe3JldHVybnt0eXBlOiJlbmQifX1mdW5jdGlvbiBibyhUZSl7cmV0dXJue3R5cGU6Im90aGVyIixkZXNjcmlwdGlvbjpUZX19ZnVuY3Rpb24gQm8oVGUpe3ZhciBpdD1Bb1tUZV0sUXQ7aWYoaXQpcmV0dXJuIGl0O2ZvcihRdD1UZS0xOyFBb1tRdF07KVF0LS07Zm9yKGl0PUFvW1F0XSxpdD17bGluZTppdC5saW5lLGNvbHVtbjppdC5jb2x1bW59O1F0PFRlOylpZS5jaGFyQ29kZUF0KFF0KT09PTEwPyhpdC5saW5lKyssaXQuY29sdW1uPTEpOml0LmNvbHVtbisrLFF0Kys7cmV0dXJuIEFvW1RlXT1pdCxpdH1mdW5jdGlvbiBMbyhUZSxpdCl7dmFyIFF0PUJvKFRlKSxVbj1CbyhpdCk7cmV0dXJue3N0YXJ0OntvZmZzZXQ6VGUsbGluZTpRdC5saW5lLGNvbHVtbjpRdC5jb2x1bW59LGVuZDp7b2Zmc2V0Oml0LGxpbmU6VW4ubGluZSxjb2x1bW46VW4uY29sdW1ufX19ZnVuY3Rpb24gRXIoVGUpe2plPElvfHwoamU+SW8mJihJbz1qZSxlaT1bXSksZWkucHVzaChUZSkpfWZ1bmN0aW9uIElpKFRlLGl0KXtyZXR1cm4gbmV3IG9lKFRlLFtdLCIiLGl0KX1mdW5jdGlvbiBhaShUZSxpdCxRdCl7cmV0dXJuIG5ldyBvZShvZS5idWlsZE1lc3NhZ2UoVGUsaXQpLFRlLGl0LFF0KX1mdW5jdGlvbiB1aSgpe3ZhciBUZTtyZXR1cm4gVGU9WWkoKSxUZX1mdW5jdGlvbiBZaSgpe3ZhciBUZSxpdDtmb3IoVGU9W10saXQ9Y2woKTtpdCE9PUI7KVRlLnB1c2goaXQpLGl0PWNsKCk7cmV0dXJuIFRlfWZ1bmN0aW9uIGNsKCl7dmFyIFRlO3JldHVybiBUZT1kaSgpLFRlPT09QiYmKFRlPW1vKCksVGU9PT1CJiYoVGU9U2woKSxUZT09PUImJihUZT1JbCgpLFRlPT09QiYmKFRlPWFzKCksVGU9PT1CJiYoVGU9ZmkoKSkpKSkpLFRlfWZ1bmN0aW9uIENsKCl7dmFyIFRlLGl0LFF0O2lmKFRlPWplLGl0PVtdLFF0PVhpKCksUXQ9PT1CJiYoUXQ9emwoKSxRdD09PUImJihRdD1vbCgpKSksUXQhPT1CKWZvcig7UXQhPT1COylpdC5wdXNoKFF0KSxRdD1YaSgpLFF0PT09QiYmKFF0PXpsKCksUXQ9PT1CJiYoUXQ9b2woKSkpO2Vsc2UgaXQ9QjtyZXR1cm4gaXQhPT1CJiYoS3I9VGUsaXQ9UnQoaXQpKSxUZT1pdCxUZX1mdW5jdGlvbiBkaSgpe3ZhciBUZSxpdDtyZXR1cm4gVGU9amUsaXQ9Q2woKSxpdCE9PUImJihLcj1UZSxpdD1CdChpdCkpLFRlPWl0LFRlfWZ1bmN0aW9uIGZpKCl7dmFyIFRlLGl0O3JldHVybiBUZT1qZSxpZS5jaGFyQ29kZUF0KGplKT09PTM1PyhpdD1MdCxqZSsrKTooaXQ9Qixucj09PTAmJkVyKFl0KSksaXQhPT1CJiYoS3I9VGUsaXQ9QW4oKSksVGU9aXQsVGV9ZnVuY3Rpb24gbW8oKXt2YXIgVGUsaXQsUXQsVW4sT3IsbGE7cmV0dXJuIG5yKyssVGU9amUsaWUuY2hhckNvZGVBdChqZSk9PT0xMjM/KGl0PXF0LGplKyspOihpdD1CLG5yPT09MCYmRXIoTW4pKSxpdCE9PUI/KFF0PUFhKCksUXQhPT1CPyhVbj1QaSgpLFVuIT09Qj8oT3I9QWEoKSxPciE9PUI/KGllLmNoYXJDb2RlQXQoamUpPT09MTI1PyhsYT1DcixqZSsrKToobGE9Qixucj09PTAmJkVyKHFuKSksbGEhPT1CPyhLcj1UZSxpdD1qcihVbiksVGU9aXQpOihqZT1UZSxUZT1CKSk6KGplPVRlLFRlPUIpKTooamU9VGUsVGU9QikpOihqZT1UZSxUZT1CKSk6KGplPVRlLFRlPUIpLG5yLS0sVGU9PT1CJiYoaXQ9Qixucj09PTAmJkVyKHNuKSksVGV9ZnVuY3Rpb24gYmkoKXt2YXIgVGUsaXQsUXQsVW4sT3I7aWYobnIrKyxUZT1qZSxpdD1bXSxRdD1qZSxVbj1qZSxucisrLE9yPU5pKCksT3I9PT1CJiYoTHIudGVzdChpZS5jaGFyQXQoamUpKT8oT3I9aWUuY2hhckF0KGplKSxqZSsrKTooT3I9Qixucj09PTAmJkVyKERyKSkpLG5yLS0sT3I9PT1CP1VuPXZvaWQgMDooamU9VW4sVW49QiksVW4hPT1CPyhpZS5sZW5ndGg+amU/KE9yPWllLmNoYXJBdChqZSksamUrKyk6KE9yPUIsbnI9PT0wJiZFcihOcikpLE9yIT09Qj8oVW49W1VuLE9yXSxRdD1Vbik6KGplPVF0LFF0PUIpKTooamU9UXQsUXQ9QiksUXQhPT1CKWZvcig7UXQhPT1COylpdC5wdXNoKFF0KSxRdD1qZSxVbj1qZSxucisrLE9yPU5pKCksT3I9PT1CJiYoTHIudGVzdChpZS5jaGFyQXQoamUpKT8oT3I9aWUuY2hhckF0KGplKSxqZSsrKTooT3I9Qixucj09PTAmJkVyKERyKSkpLG5yLS0sT3I9PT1CP1VuPXZvaWQgMDooamU9VW4sVW49QiksVW4hPT1CPyhpZS5sZW5ndGg+amU/KE9yPWllLmNoYXJBdChqZSksamUrKyk6KE9yPUIsbnI9PT0wJiZFcihOcikpLE9yIT09Qj8oVW49W1VuLE9yXSxRdD1Vbik6KGplPVF0LFF0PUIpKTooamU9UXQsUXQ9Qik7ZWxzZSBpdD1CO3JldHVybiBpdCE9PUI/VGU9aWUuc3Vic3RyaW5nKFRlLGplKTpUZT1pdCxuci0tLFRlPT09QiYmKGl0PUIsbnI9PT0wJiZFcihDbikpLFRlfWZ1bmN0aW9uIFZsKCl7dmFyIFRlLGl0LFF0O3JldHVybiBucisrLFRlPWplLGllLmNoYXJDb2RlQXQoamUpPT09NDc/KGl0PXZhLGplKyspOihpdD1CLG5yPT09MCYmRXIoWHIpKSxpdCE9PUI/KFF0PWJpKCksUXQhPT1CPyhLcj1UZSxpdD1FYShRdCksVGU9aXQpOihqZT1UZSxUZT1CKSk6KGplPVRlLFRlPUIpLG5yLS0sVGU9PT1CJiYoaXQ9Qixucj09PTAmJkVyKHRhKSksVGV9ZnVuY3Rpb24gTmwoKXt2YXIgVGUsaXQsUXQsVW4sT3I7aWYobnIrKyxUZT1qZSxpdD1BYSgpLGl0IT09QilpZihRdD1iaSgpLFF0IT09Qil7Zm9yKFVuPVtdLE9yPVZsKCk7T3IhPT1COylVbi5wdXNoKE9yKSxPcj1WbCgpO1VuIT09Qj8oS3I9VGUsaXQ9eWEoUXQsVW4pLFRlPWl0KTooamU9VGUsVGU9Qil9ZWxzZSBqZT1UZSxUZT1CO2Vsc2UgamU9VGUsVGU9QjtyZXR1cm4gbnItLSxUZT09PUImJihpdD1CLG5yPT09MCYmRXIocG8pKSxUZX1mdW5jdGlvbiBqbCgpe3ZhciBUZSxpdCxRdDtpZihUZT1qZSxpdD1bXSxRdD1ObCgpLFF0IT09Qilmb3IoO1F0IT09QjspaXQucHVzaChRdCksUXQ9TmwoKTtlbHNlIGl0PUI7cmV0dXJuIGl0IT09QiYmKEtyPVRlLGl0PUlhKGl0KSksVGU9aXQsVGV9ZnVuY3Rpb24gVWwoKXt2YXIgVGUsaXQsUXQ7cmV0dXJuIFRlPWplLGllLnN1YnN0cihqZSwyKT09PWdhPyhpdD1nYSxqZSs9Mik6KGl0PUIsbnI9PT0wJiZFcihIYSkpLGl0IT09Qj8oUXQ9amwoKSxRdCE9PUI/KEtyPVRlLGl0PVBhKFF0KSxUZT1pdCk6KGplPVRlLFRlPUIpKTooamU9VGUsVGU9QiksVGU9PT1CJiYoVGU9amUsS3I9amUsaXQ9ZW8oKSxpdD9pdD12b2lkIDA6aXQ9QixpdCE9PUI/KFF0PUNsKCksUXQhPT1CPyhLcj1UZSxpdD1VYShRdCksVGU9aXQpOihqZT1UZSxUZT1CKSk6KGplPVRlLFRlPUIpKSxUZX1mdW5jdGlvbiBycygpe3ZhciBUZSxpdCxRdCxVbixPcixsYSxZYSx4YSxWbyxaYSxYYSxCYSxRYTtyZXR1cm4gVGU9amUsaWUuY2hhckNvZGVBdChqZSk9PT0xMjM/KGl0PXF0LGplKyspOihpdD1CLG5yPT09MCYmRXIoTW4pKSxpdCE9PUI/KFF0PUFhKCksUXQhPT1CPyhVbj1QaSgpLFVuIT09Qj8oT3I9QWEoKSxPciE9PUI/KGllLmNoYXJDb2RlQXQoamUpPT09NDQ/KGxhPXZvLGplKyspOihsYT1CLG5yPT09MCYmRXIoR2EpKSxsYSE9PUI/KFlhPUFhKCksWWEhPT1CPyhpZS5zdWJzdHIoamUsNik9PT1vbz8oeGE9b28samUrPTYpOih4YT1CLG5yPT09MCYmRXIoaW8pKSx4YSE9PUI/KFZvPUFhKCksVm8hPT1CPyhaYT1qZSxpZS5jaGFyQ29kZUF0KGplKT09PTQ0PyhYYT12byxqZSsrKTooWGE9Qixucj09PTAmJkVyKEdhKSksWGEhPT1CPyhCYT1BYSgpLEJhIT09Qj8oUWE9VWwoKSxRYSE9PUI/KFhhPVtYYSxCYSxRYV0sWmE9WGEpOihqZT1aYSxaYT1CKSk6KGplPVphLFphPUIpKTooamU9WmEsWmE9QiksWmE9PT1CJiYoWmE9bnVsbCksWmEhPT1CPyhYYT1BYSgpLFhhIT09Qj8oaWUuY2hhckNvZGVBdChqZSk9PT0xMjU/KEJhPUNyLGplKyspOihCYT1CLG5yPT09MCYmRXIocW4pKSxCYSE9PUI/KEtyPVRlLGl0PU9vKFVuLHhhLFphKSxUZT1pdCk6KGplPVRlLFRlPUIpKTooamU9VGUsVGU9QikpOihqZT1UZSxUZT1CKSk6KGplPVRlLFRlPUIpKTooamU9VGUsVGU9QikpOihqZT1UZSxUZT1CKSk6KGplPVRlLFRlPUIpKTooamU9VGUsVGU9QikpOihqZT1UZSxUZT1CKSk6KGplPVRlLFRlPUIpKTooamU9VGUsVGU9QiksVGV9ZnVuY3Rpb24gYmwoKXt2YXIgVGUsaXQsUXQsVW47aWYoVGU9amUsaWUuY2hhckNvZGVBdChqZSk9PT0zOT8oaXQ9bG8samUrKyk6KGl0PUIsbnI9PT0wJiZFcih4bykpLGl0IT09Qil7aWYoUXQ9W10sVW49WGkoKSxVbj09PUImJihDby50ZXN0KGllLmNoYXJBdChqZSkpPyhVbj1pZS5jaGFyQXQoamUpLGplKyspOihVbj1CLG5yPT09MCYmRXIoSGkpKSksVW4hPT1CKWZvcig7VW4hPT1COylRdC5wdXNoKFVuKSxVbj1YaSgpLFVuPT09QiYmKENvLnRlc3QoaWUuY2hhckF0KGplKSk/KFVuPWllLmNoYXJBdChqZSksamUrKyk6KFVuPUIsbnI9PT0wJiZFcihIaSkpKTtlbHNlIFF0PUI7UXQhPT1CPyhpZS5jaGFyQ29kZUF0KGplKT09PTM5PyhVbj1sbyxqZSsrKTooVW49Qixucj09PTAmJkVyKHhvKSksVW4hPT1CPyhpdD1baXQsUXQsVW5dLFRlPWl0KTooamU9VGUsVGU9QikpOihqZT1UZSxUZT1CKX1lbHNlIGplPVRlLFRlPUI7aWYoVGU9PT1CKWlmKFRlPVtdLGl0PVhpKCksaXQ9PT1CJiYoZWwudGVzdChpZS5jaGFyQXQoamUpKT8oaXQ9aWUuY2hhckF0KGplKSxqZSsrKTooaXQ9Qixucj09PTAmJkVyKHRsKSkpLGl0IT09Qilmb3IoO2l0IT09QjspVGUucHVzaChpdCksaXQ9WGkoKSxpdD09PUImJihlbC50ZXN0KGllLmNoYXJBdChqZSkpPyhpdD1pZS5jaGFyQXQoamUpLGplKyspOihpdD1CLG5yPT09MCYmRXIodGwpKSk7ZWxzZSBUZT1CO3JldHVybiBUZX1mdW5jdGlvbiBXbCgpe3ZhciBUZSxpdDtpZihUZT1bXSxYby50ZXN0KGllLmNoYXJBdChqZSkpPyhpdD1pZS5jaGFyQXQoamUpLGplKyspOihpdD1CLG5yPT09MCYmRXIoRGkpKSxpdCE9PUIpZm9yKDtpdCE9PUI7KVRlLnB1c2goaXQpLFhvLnRlc3QoaWUuY2hhckF0KGplKSk/KGl0PWllLmNoYXJBdChqZSksamUrKyk6KGl0PUIsbnI9PT0wJiZFcihEaSkpO2Vsc2UgVGU9QjtyZXR1cm4gVGV9ZnVuY3Rpb24gdWwoKXt2YXIgVGUsaXQsUXQsVW47aWYoVGU9amUsaXQ9amUsUXQ9W10sVW49YmwoKSxVbj09PUImJihVbj1XbCgpKSxVbiE9PUIpZm9yKDtVbiE9PUI7KVF0LnB1c2goVW4pLFVuPWJsKCksVW49PT1CJiYoVW49V2woKSk7ZWxzZSBRdD1CO3JldHVybiBRdCE9PUI/aXQ9aWUuc3Vic3RyaW5nKGl0LGplKTppdD1RdCxpdCE9PUImJihLcj1UZSxpdD1ubChpdCkpLFRlPWl0LFRlfWZ1bmN0aW9uIGtsKCl7dmFyIFRlLGl0LFF0O3JldHVybiBUZT1qZSxpZS5zdWJzdHIoamUsMik9PT1nYT8oaXQ9Z2EsamUrPTIpOihpdD1CLG5yPT09MCYmRXIoSGEpKSxpdCE9PUI/KFF0PXVsKCksUXQhPT1CPyhLcj1UZSxpdD1QYShRdCksVGU9aXQpOihqZT1UZSxUZT1CKSk6KGplPVRlLFRlPUIpLFRlPT09QiYmKFRlPWplLEtyPWplLGl0PXlsKCksaXQ/aXQ9dm9pZCAwOml0PUIsaXQhPT1CPyhRdD1DbCgpLFF0IT09Qj8oS3I9VGUsaXQ9VWEoUXQpLFRlPWl0KTooamU9VGUsVGU9QikpOihqZT1UZSxUZT1CKSksVGV9ZnVuY3Rpb24gTHMoKXt2YXIgVGUsaXQsUXQsVW4sT3IsbGEsWWEseGEsVm8sWmEsWGEsQmEsUWE7cmV0dXJuIFRlPWplLGllLmNoYXJDb2RlQXQoamUpPT09MTIzPyhpdD1xdCxqZSsrKTooaXQ9Qixucj09PTAmJkVyKE1uKSksaXQhPT1CPyhRdD1BYSgpLFF0IT09Qj8oVW49UGkoKSxVbiE9PUI/KE9yPUFhKCksT3IhPT1CPyhpZS5jaGFyQ29kZUF0KGplKT09PTQ0PyhsYT12byxqZSsrKToobGE9Qixucj09PTAmJkVyKEdhKSksbGEhPT1CPyhZYT1BYSgpLFlhIT09Qj8oaWUuc3Vic3RyKGplLDQpPT09TXQ/KHhhPU10LGplKz00KTooeGE9Qixucj09PTAmJkVyKEtlKSkseGE9PT1CJiYoaWUuc3Vic3RyKGplLDQpPT09eXQ/KHhhPXl0LGplKz00KTooeGE9Qixucj09PTAmJkVyKFB0KSkpLHhhIT09Qj8oVm89QWEoKSxWbyE9PUI/KFphPWplLGllLmNoYXJDb2RlQXQoamUpPT09NDQ/KFhhPXZvLGplKyspOihYYT1CLG5yPT09MCYmRXIoR2EpKSxYYSE9PUI/KEJhPUFhKCksQmEhPT1CPyhRYT1rbCgpLFFhIT09Qj8oWGE9W1hhLEJhLFFhXSxaYT1YYSk6KGplPVphLFphPUIpKTooamU9WmEsWmE9QikpOihqZT1aYSxaYT1CKSxaYT09PUImJihaYT1udWxsKSxaYSE9PUI/KFhhPUFhKCksWGEhPT1CPyhpZS5jaGFyQ29kZUF0KGplKT09PTEyNT8oQmE9Q3IsamUrKyk6KEJhPUIsbnI9PT0wJiZFcihxbikpLEJhIT09Qj8oS3I9VGUsaXQ9T28oVW4seGEsWmEpLFRlPWl0KTooamU9VGUsVGU9QikpOihqZT1UZSxUZT1CKSk6KGplPVRlLFRlPUIpKTooamU9VGUsVGU9QikpOihqZT1UZSxUZT1CKSk6KGplPVRlLFRlPUIpKTooamU9VGUsVGU9QikpOihqZT1UZSxUZT1CKSk6KGplPVRlLFRlPUIpKTooamU9VGUsVGU9QikpOihqZT1UZSxUZT1CKSxUZX1mdW5jdGlvbiBTbCgpe3ZhciBUZTtyZXR1cm4gVGU9cnMoKSxUZT09PUImJihUZT1McygpKSxUZX1mdW5jdGlvbiBJbCgpe3ZhciBUZSxpdCxRdCxVbixPcixsYSxZYSx4YSxWbyxaYSxYYSxCYSxRYSx2aSxPaSxjbztpZihUZT1qZSxpZS5jaGFyQ29kZUF0KGplKT09PTEyMz8oaXQ9cXQsamUrKyk6KGl0PUIsbnI9PT0wJiZFcihNbikpLGl0IT09QilpZihRdD1BYSgpLFF0IT09QilpZihVbj1QaSgpLFVuIT09QilpZihPcj1BYSgpLE9yIT09QilpZihpZS5jaGFyQ29kZUF0KGplKT09PTQ0PyhsYT12byxqZSsrKToobGE9Qixucj09PTAmJkVyKEdhKSksbGEhPT1CKWlmKFlhPUFhKCksWWEhPT1CKWlmKGllLnN1YnN0cihqZSw2KT09PUF0Pyh4YT1BdCxqZSs9Nik6KHhhPUIsbnI9PT0wJiZFcihVdCkpLHhhPT09QiYmKGllLnN1YnN0cihqZSwxMyk9PT1kbj8oeGE9ZG4samUrPTEzKTooeGE9Qixucj09PTAmJkVyKGRyKSkpLHhhIT09QilpZihWbz1BYSgpLFZvIT09QilpZihpZS5jaGFyQ29kZUF0KGplKT09PTQ0PyhaYT12byxqZSsrKTooWmE9Qixucj09PTAmJkVyKEdhKSksWmEhPT1CKWlmKFhhPUFhKCksWGEhPT1CKWlmKEJhPWplLGllLnN1YnN0cihqZSw3KT09PXRyPyhRYT10cixqZSs9Nyk6KFFhPUIsbnI9PT0wJiZFcih6cikpLFFhIT09Qj8odmk9QWEoKSx2aSE9PUI/KE9pPVBsKCksT2khPT1CPyhRYT1bUWEsdmksT2ldLEJhPVFhKTooamU9QmEsQmE9QikpOihqZT1CYSxCYT1CKSk6KGplPUJhLEJhPUIpLEJhPT09QiYmKEJhPW51bGwpLEJhIT09QilpZihRYT1BYSgpLFFhIT09Qil7aWYodmk9W10sT2k9S2woKSxPaSE9PUIpZm9yKDtPaSE9PUI7KXZpLnB1c2goT2kpLE9pPUtsKCk7ZWxzZSB2aT1CO3ZpIT09Qj8oT2k9QWEoKSxPaSE9PUI/KGllLmNoYXJDb2RlQXQoamUpPT09MTI1Pyhjbz1DcixqZSsrKTooY289Qixucj09PTAmJkVyKHFuKSksY28hPT1CPyhLcj1UZSxpdD13cihVbix4YSxCYSx2aSksVGU9aXQpOihqZT1UZSxUZT1CKSk6KGplPVRlLFRlPUIpKTooamU9VGUsVGU9Qil9ZWxzZSBqZT1UZSxUZT1CO2Vsc2UgamU9VGUsVGU9QjtlbHNlIGplPVRlLFRlPUI7ZWxzZSBqZT1UZSxUZT1CO2Vsc2UgamU9VGUsVGU9QjtlbHNlIGplPVRlLFRlPUI7ZWxzZSBqZT1UZSxUZT1CO2Vsc2UgamU9VGUsVGU9QjtlbHNlIGplPVRlLFRlPUI7ZWxzZSBqZT1UZSxUZT1CO2Vsc2UgamU9VGUsVGU9QjtlbHNlIGplPVRlLFRlPUI7cmV0dXJuIFRlfWZ1bmN0aW9uIGFzKCl7dmFyIFRlLGl0LFF0LFVuLE9yLGxhLFlhLHhhLFZvLFphLFhhLEJhLFFhLHZpO2lmKFRlPWplLGllLmNoYXJDb2RlQXQoamUpPT09MTIzPyhpdD1xdCxqZSsrKTooaXQ9Qixucj09PTAmJkVyKE1uKSksaXQhPT1CKWlmKFF0PUFhKCksUXQhPT1CKWlmKFVuPVBpKCksVW4hPT1CKWlmKE9yPUFhKCksT3IhPT1CKWlmKGllLmNoYXJDb2RlQXQoamUpPT09NDQ/KGxhPXZvLGplKyspOihsYT1CLG5yPT09MCYmRXIoR2EpKSxsYSE9PUIpaWYoWWE9QWEoKSxZYSE9PUIpaWYoaWUuc3Vic3RyKGplLDYpPT09QnI/KHhhPUJyLGplKz02KTooeGE9Qixucj09PTAmJkVyKGRhKSkseGEhPT1CKWlmKFZvPUFhKCksVm8hPT1CKWlmKGllLmNoYXJDb2RlQXQoamUpPT09NDQ/KFphPXZvLGplKyspOihaYT1CLG5yPT09MCYmRXIoR2EpKSxaYSE9PUIpaWYoWGE9QWEoKSxYYSE9PUIpe2lmKEJhPVtdLFFhPWFsKCksUWEhPT1CKWZvcig7UWEhPT1COylCYS5wdXNoKFFhKSxRYT1hbCgpO2Vsc2UgQmE9QjtCYSE9PUI/KFFhPUFhKCksUWEhPT1CPyhpZS5jaGFyQ29kZUF0KGplKT09PTEyNT8odmk9Q3IsamUrKyk6KHZpPUIsbnI9PT0wJiZFcihxbikpLHZpIT09Qj8oS3I9VGUsaXQ9c2EoVW4sQmEpLFRlPWl0KTooamU9VGUsVGU9QikpOihqZT1UZSxUZT1CKSk6KGplPVRlLFRlPUIpfWVsc2UgamU9VGUsVGU9QjtlbHNlIGplPVRlLFRlPUI7ZWxzZSBqZT1UZSxUZT1CO2Vsc2UgamU9VGUsVGU9QjtlbHNlIGplPVRlLFRlPUI7ZWxzZSBqZT1UZSxUZT1CO2Vsc2UgamU9VGUsVGU9QjtlbHNlIGplPVRlLFRlPUI7ZWxzZSBqZT1UZSxUZT1CO2Vsc2UgamU9VGUsVGU9QjtyZXR1cm4gVGV9ZnVuY3Rpb24gb3MoKXt2YXIgVGUsaXQsUXQsVW47cmV0dXJuIFRlPWplLGl0PWplLGllLmNoYXJDb2RlQXQoamUpPT09NjE/KFF0PXdhLGplKyspOihRdD1CLG5yPT09MCYmRXIoemEpKSxRdCE9PUI/KFVuPVBsKCksVW4hPT1CPyhRdD1bUXQsVW5dLGl0PVF0KTooamU9aXQsaXQ9QikpOihqZT1pdCxpdD1CKSxpdCE9PUI/VGU9aWUuc3Vic3RyaW5nKFRlLGplKTpUZT1pdCxUZT09PUImJihUZT1BbCgpKSxUZX1mdW5jdGlvbiBhbCgpe3ZhciBUZSxpdCxRdCxVbixPcixsYSxZYSx4YTtyZXR1cm4gVGU9amUsaXQ9QWEoKSxpdCE9PUI/KFF0PUFsKCksUXQhPT1CPyhVbj1BYSgpLFVuIT09Qj8oaWUuY2hhckNvZGVBdChqZSk9PT0xMjM/KE9yPXF0LGplKyspOihPcj1CLG5yPT09MCYmRXIoTW4pKSxPciE9PUI/KEtyPWplLGxhPUxhKFF0KSxsYT9sYT12b2lkIDA6bGE9QixsYSE9PUI/KFlhPVlpKCksWWEhPT1CPyhpZS5jaGFyQ29kZUF0KGplKT09PTEyNT8oeGE9Q3IsamUrKyk6KHhhPUIsbnI9PT0wJiZFcihxbikpLHhhIT09Qj8oS3I9VGUsaXQ9V2EoUXQsWWEpLFRlPWl0KTooamU9VGUsVGU9QikpOihqZT1UZSxUZT1CKSk6KGplPVRlLFRlPUIpKTooamU9VGUsVGU9QikpOihqZT1UZSxUZT1CKSk6KGplPVRlLFRlPUIpKTooamU9VGUsVGU9QiksVGV9ZnVuY3Rpb24gS2woKXt2YXIgVGUsaXQsUXQsVW4sT3IsbGEsWWEseGE7cmV0dXJuIFRlPWplLGl0PUFhKCksaXQhPT1CPyhRdD1vcygpLFF0IT09Qj8oVW49QWEoKSxVbiE9PUI/KGllLmNoYXJDb2RlQXQoamUpPT09MTIzPyhPcj1xdCxqZSsrKTooT3I9Qixucj09PTAmJkVyKE1uKSksT3IhPT1CPyhLcj1qZSxsYT1PYShRdCksbGE/bGE9dm9pZCAwOmxhPUIsbGEhPT1CPyhZYT1ZaSgpLFlhIT09Qj8oaWUuY2hhckNvZGVBdChqZSk9PT0xMjU/KHhhPUNyLGplKyspOih4YT1CLG5yPT09MCYmRXIocW4pKSx4YSE9PUI/KEtyPVRlLGl0PUphKFF0LFlhKSxUZT1pdCk6KGplPVRlLFRlPUIpKTooamU9VGUsVGU9QikpOihqZT1UZSxUZT1CKSk6KGplPVRlLFRlPUIpKTooamU9VGUsVGU9QikpOihqZT1UZSxUZT1CKSk6KGplPVRlLFRlPUIpLFRlfWZ1bmN0aW9uIE5pKCl7dmFyIFRlLGl0O3JldHVybiBucisrLHdvLnRlc3QoaWUuY2hhckF0KGplKSk/KFRlPWllLmNoYXJBdChqZSksamUrKyk6KFRlPUIsbnI9PT0wJiZFcihobykpLG5yLS0sVGU9PT1CJiYoaXQ9Qixucj09PTAmJkVyKHRvKSksVGV9ZnVuY3Rpb24gT2woKXt2YXIgVGUsaXQ7cmV0dXJuIG5yKyssUW8udGVzdChpZS5jaGFyQXQoamUpKT8oVGU9aWUuY2hhckF0KGplKSxqZSsrKTooVGU9Qixucj09PTAmJkVyKGtvKSksbnItLSxUZT09PUImJihpdD1CLG5yPT09MCYmRXIoeW8pKSxUZX1mdW5jdGlvbiBBYSgpe3ZhciBUZSxpdCxRdDtmb3IobnIrKyxUZT1qZSxpdD1bXSxRdD1OaSgpO1F0IT09QjspaXQucHVzaChRdCksUXQ9TmkoKTtyZXR1cm4gaXQhPT1CP1RlPWllLnN1YnN0cmluZyhUZSxqZSk6VGU9aXQsbnItLSxUZT09PUImJihpdD1CLG5yPT09MCYmRXIoeWkpKSxUZX1mdW5jdGlvbiBQbCgpe3ZhciBUZSxpdCxRdDtyZXR1cm4gbnIrKyxUZT1qZSxpZS5jaGFyQ29kZUF0KGplKT09PTQ1PyhpdD1DaSxqZSsrKTooaXQ9Qixucj09PTAmJkVyKERvKSksaXQ9PT1CJiYoaXQ9bnVsbCksaXQhPT1CPyhRdD1GbCgpLFF0IT09Qj8oS3I9VGUsaXQ9S2koaXQsUXQpLFRlPWl0KTooamU9VGUsVGU9QikpOihqZT1UZSxUZT1CKSxuci0tLFRlPT09QiYmKGl0PUIsbnI9PT0wJiZFcihNaSkpLFRlfWZ1bmN0aW9uIGlzKCl7dmFyIFRlLGl0O3JldHVybiBucisrLGllLmNoYXJDb2RlQXQoamUpPT09Mzk/KFRlPWxvLGplKyspOihUZT1CLG5yPT09MCYmRXIoeG8pKSxuci0tLFRlPT09QiYmKGl0PUIsbnI9PT0wJiZFcihSaSkpLFRlfWZ1bmN0aW9uIFhpKCl7dmFyIFRlLGl0O3JldHVybiBucisrLFRlPWplLGllLnN1YnN0cihqZSwyKT09PUpvPyhpdD1KbyxqZSs9Mik6KGl0PUIsbnI9PT0wJiZFcihxbykpLGl0IT09QiYmKEtyPVRlLGl0PV9pKCkpLFRlPWl0LG5yLS0sVGU9PT1CJiYoaXQ9Qixucj09PTAmJkVyKEtvKSksVGV9ZnVuY3Rpb24gemwoKXt2YXIgVGUsaXQsUXQsVW4sT3IsbGE7aWYoVGU9amUsaWUuY2hhckNvZGVBdChqZSk9PT0zOT8oaXQ9bG8samUrKyk6KGl0PUIsbnI9PT0wJiZFcih4bykpLGl0IT09QilpZihRdD1TaSgpLFF0IT09Qil7Zm9yKFVuPWplLE9yPVtdLGllLnN1YnN0cihqZSwyKT09PUpvPyhsYT1KbyxqZSs9Mik6KGxhPUIsbnI9PT0wJiZFcihxbykpLGxhPT09QiYmKENvLnRlc3QoaWUuY2hhckF0KGplKSk/KGxhPWllLmNoYXJBdChqZSksamUrKyk6KGxhPUIsbnI9PT0wJiZFcihIaSkpKTtsYSE9PUI7KU9yLnB1c2gobGEpLGllLnN1YnN0cihqZSwyKT09PUpvPyhsYT1KbyxqZSs9Mik6KGxhPUIsbnI9PT0wJiZFcihxbykpLGxhPT09QiYmKENvLnRlc3QoaWUuY2hhckF0KGplKSk/KGxhPWllLmNoYXJBdChqZSksamUrKyk6KGxhPUIsbnI9PT0wJiZFcihIaSkpKTtPciE9PUI/VW49aWUuc3Vic3RyaW5nKFVuLGplKTpVbj1PcixVbiE9PUI/KGllLmNoYXJDb2RlQXQoamUpPT09Mzk/KE9yPWxvLGplKyspOihPcj1CLG5yPT09MCYmRXIoeG8pKSxPcj09PUImJihPcj1udWxsKSxPciE9PUI/KEtyPVRlLGl0PUVvKFF0LFVuKSxUZT1pdCk6KGplPVRlLFRlPUIpKTooamU9VGUsVGU9Qil9ZWxzZSBqZT1UZSxUZT1CO2Vsc2UgamU9VGUsVGU9QjtyZXR1cm4gVGV9ZnVuY3Rpb24gb2woKXt2YXIgVGUsaXQsUXQsVW47cmV0dXJuIFRlPWplLGl0PWplLGllLmxlbmd0aD5qZT8oUXQ9aWUuY2hhckF0KGplKSxqZSsrKTooUXQ9Qixucj09PTAmJkVyKE5yKSksUXQhPT1CPyhLcj1qZSxVbj1rbihRdCksVW4/VW49dm9pZCAwOlVuPUIsVW4hPT1CPyhRdD1bUXQsVW5dLGl0PVF0KTooamU9aXQsaXQ9QikpOihqZT1pdCxpdD1CKSxpdD09PUImJihpZS5jaGFyQ29kZUF0KGplKT09PTEwPyhpdD1EbixqZSsrKTooaXQ9Qixucj09PTAmJkVyKFdyKSkpLGl0IT09Qj9UZT1pZS5zdWJzdHJpbmcoVGUsamUpOlRlPWl0LFRlfWZ1bmN0aW9uIFNpKCl7dmFyIFRlLGl0LFF0LFVuO3JldHVybiBUZT1qZSxpdD1qZSxpZS5sZW5ndGg+amU/KFF0PWllLmNoYXJBdChqZSksamUrKyk6KFF0PUIsbnI9PT0wJiZFcihOcikpLFF0IT09Qj8oS3I9amUsVW49a3IoUXQpLFVuP1VuPXZvaWQgMDpVbj1CLFVuIT09Qj8oUXQ9W1F0LFVuXSxpdD1RdCk6KGplPWl0LGl0PUIpKTooamU9aXQsaXQ9QiksaXQhPT1CP1RlPWllLnN1YnN0cmluZyhUZSxqZSk6VGU9aXQsVGV9ZnVuY3Rpb24gUGkoKXt2YXIgVGUsaXQ7cmV0dXJuIG5yKyssVGU9amUsaXQ9RmwoKSxpdD09PUImJihpdD1BbCgpKSxpdCE9PUI/VGU9aWUuc3Vic3RyaW5nKFRlLGplKTpUZT1pdCxuci0tLFRlPT09QiYmKGl0PUIsbnI9PT0wJiZFcihpYSkpLFRlfWZ1bmN0aW9uIEZsKCl7dmFyIFRlLGl0LFF0LFVuLE9yO2lmKG5yKyssVGU9amUsaWUuY2hhckNvZGVBdChqZSk9PT00OD8oaXQ9bmEsamUrKyk6KGl0PUIsbnI9PT0wJiZFcihtYSkpLGl0IT09QiYmKEtyPVRlLGl0PXhyKCkpLFRlPWl0LFRlPT09Qil7aWYoVGU9amUsaXQ9amUsWnIudGVzdChpZS5jaGFyQXQoamUpKT8oUXQ9aWUuY2hhckF0KGplKSxqZSsrKTooUXQ9Qixucj09PTAmJkVyKFZhKSksUXQhPT1CKXtmb3IoVW49W10sRGEudGVzdChpZS5jaGFyQXQoamUpKT8oT3I9aWUuY2hhckF0KGplKSxqZSsrKTooT3I9Qixucj09PTAmJkVyKHBhKSk7T3IhPT1COylVbi5wdXNoKE9yKSxEYS50ZXN0KGllLmNoYXJBdChqZSkpPyhPcj1pZS5jaGFyQXQoamUpLGplKyspOihPcj1CLG5yPT09MCYmRXIocGEpKTtVbiE9PUI/KFF0PVtRdCxVbl0saXQ9UXQpOihqZT1pdCxpdD1CKX1lbHNlIGplPWl0LGl0PUI7aXQhPT1CJiYoS3I9VGUsaXQ9c28oaXQpKSxUZT1pdH1yZXR1cm4gbnItLSxUZT09PUImJihpdD1CLG5yPT09MCYmRXIoYWEpKSxUZX1mdW5jdGlvbiBBbCgpe3ZhciBUZSxpdCxRdCxVbixPcjtpZihucisrLFRlPWplLGl0PVtdLFF0PWplLFVuPWplLG5yKyssT3I9TmkoKSxPcj09PUImJihPcj1PbCgpKSxuci0tLE9yPT09Qj9Vbj12b2lkIDA6KGplPVVuLFVuPUIpLFVuIT09Qj8oaWUubGVuZ3RoPmplPyhPcj1pZS5jaGFyQXQoamUpLGplKyspOihPcj1CLG5yPT09MCYmRXIoTnIpKSxPciE9PUI/KFVuPVtVbixPcl0sUXQ9VW4pOihqZT1RdCxRdD1CKSk6KGplPVF0LFF0PUIpLFF0IT09Qilmb3IoO1F0IT09QjspaXQucHVzaChRdCksUXQ9amUsVW49amUsbnIrKyxPcj1OaSgpLE9yPT09QiYmKE9yPU9sKCkpLG5yLS0sT3I9PT1CP1VuPXZvaWQgMDooamU9VW4sVW49QiksVW4hPT1CPyhpZS5sZW5ndGg+amU/KE9yPWllLmNoYXJBdChqZSksamUrKyk6KE9yPUIsbnI9PT0wJiZFcihOcikpLE9yIT09Qj8oVW49W1VuLE9yXSxRdD1Vbik6KGplPVF0LFF0PUIpKTooamU9UXQsUXQ9Qik7ZWxzZSBpdD1CO3JldHVybiBpdCE9PUI/VGU9aWUuc3Vic3RyaW5nKFRlLGplKTpUZT1pdCxuci0tLFRlPT09QiYmKGl0PUIsbnI9PT0wJiZFcihxYSkpLFRlfXZhciBabz1bInJvb3QiXTtmdW5jdGlvbiBRaSgpe3JldHVybiBaby5sZW5ndGg+MX1mdW5jdGlvbiBMbCgpe3JldHVybiBab1taby5sZW5ndGgtMV09PT0icGx1cmFsIn1mdW5jdGlvbiB6aSgpe3JldHVybiB5ZSYmeWUuY2FwdHVyZUxvY2F0aW9uP3tsb2NhdGlvbjpybCgpfTp7fX1pZihyaT1zdCgpLHJpIT09QiYmamU9PT1pZS5sZW5ndGgpcmV0dXJuIHJpO3Rocm93IHJpIT09QiYmamU8aWUubGVuZ3RoJiZFcihHaSgpKSxhaShlaSxJbzxpZS5sZW5ndGg/aWUuY2hhckF0KElvKTpudWxsLElvPGllLmxlbmd0aD9MbyhJbyxJbysxKTpMbyhJbyxJbykpfXZhciBFZT1mZSxSZT1mdW5jdGlvbigpe2Zvcih2YXIgaWU9MCx5ZT0wLEI9YXJndW1lbnRzLmxlbmd0aDt5ZTxCO3llKyspaWUrPWFyZ3VtZW50c1t5ZV0ubGVuZ3RoO2Zvcih2YXIgVmU9QXJyYXkoaWUpLHN0PTAseWU9MDt5ZTxCO3llKyspZm9yKHZhciBSdD1hcmd1bWVudHNbeWVdLEJ0PTAsTHQ9UnQubGVuZ3RoO0J0PEx0O0J0Kyssc3QrKylWZVtzdF09UnRbQnRdO3JldHVybiBWZX0sQmU9LyhefFteXFxdKSMvZztmdW5jdGlvbiBZZShpZSl7aWUuZm9yRWFjaChmdW5jdGlvbih5ZSl7IWooeWUpJiYhVyh5ZSl8fE9iamVjdC5rZXlzKHllLm9wdGlvbnMpLmZvckVhY2goZnVuY3Rpb24oQil7Zm9yKHZhciBWZSxzdD15ZS5vcHRpb25zW0JdLFJ0PS0xLEJ0PXZvaWQgMCxMdD0wO0x0PHN0LnZhbHVlLmxlbmd0aDtMdCsrKXt2YXIgWXQ9c3QudmFsdWVbTHRdO2lmKEooWXQpJiZCZS50ZXN0KFl0LnZhbHVlKSl7UnQ9THQsQnQ9WXQ7YnJlYWt9fWlmKEJ0KXt2YXIgQW49QnQudmFsdWUucmVwbGFjZShCZSwiJDF7Iit5ZS52YWx1ZSsiLCBudW1iZXJ9Iiksc249RWUoQW4pOyhWZT1zdC52YWx1ZSkuc3BsaWNlLmFwcGx5KFZlLFJlKFtSdCwxXSxzbikpfVllKHN0LnZhbHVlKX0pfSl9ZnVuY3Rpb24gb3QoaWUseWUpe3ZhciBCPUVlKGllLHllKTtyZXR1cm4oIXllfHx5ZS5ub3JtYWxpemVIYXNodGFnSW5QbHVyYWwhPT0hMSkmJlllKEIpLEJ9dmFyIHFlPWZ1bmN0aW9uKCl7Zm9yKHZhciBpZT0wLHllPTAsQj1hcmd1bWVudHMubGVuZ3RoO3llPEI7eWUrKylpZSs9YXJndW1lbnRzW3llXS5sZW5ndGg7Zm9yKHZhciBWZT1BcnJheShpZSksc3Q9MCx5ZT0wO3llPEI7eWUrKylmb3IodmFyIFJ0PWFyZ3VtZW50c1t5ZV0sQnQ9MCxMdD1SdC5sZW5ndGg7QnQ8THQ7QnQrKyxzdCsrKVZlW3N0XT1SdFtCdF07cmV0dXJuIFZlfTtmdW5jdGlvbiBfZShpZSl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KGllLm1hcChmdW5jdGlvbih5ZSl7cmV0dXJuIHllJiZ0eXBlb2YgeWU9PSJvYmplY3QiP0ZlKHllKTp5ZX0pKX1mdW5jdGlvbiBGZShpZSl7cmV0dXJuIE9iamVjdC5rZXlzKGllKS5zb3J0KCkubWFwKGZ1bmN0aW9uKHllKXt2YXIgQjtyZXR1cm4gQj17fSxCW3llXT1pZVt5ZV0sQn0pfXZhciBTZT1mdW5jdGlvbihpZSx5ZSl7cmV0dXJuIHllPT09dm9pZCAwJiYoeWU9e30pLGZ1bmN0aW9uKCl7Zm9yKHZhciBCLFZlPVtdLHN0PTA7c3Q8YXJndW1lbnRzLmxlbmd0aDtzdCsrKVZlW3N0XT1hcmd1bWVudHNbc3RdO3ZhciBSdD1fZShWZSksQnQ9UnQmJnllW1J0XTtyZXR1cm4gQnR8fChCdD1uZXcoKEI9aWUpLmJpbmQuYXBwbHkoQixxZShbdm9pZCAwXSxWZSkpKSxSdCYmKHllW1J0XT1CdCkpLEJ0fX0scT1TZSxrPWZ1bmN0aW9uKCl7cmV0dXJuIGs9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24oaWUpe2Zvcih2YXIgeWUsQj0xLFZlPWFyZ3VtZW50cy5sZW5ndGg7QjxWZTtCKyspe3llPWFyZ3VtZW50c1tCXTtmb3IodmFyIHN0IGluIHllKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh5ZSxzdCkmJihpZVtzdF09eWVbc3RdKX1yZXR1cm4gaWV9LGsuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxNPS8oPzpbRWVjXXsxLDZ9fEd7MSw1fXxbUXFdezEsNX18KD86W3lZdXJdK3xVezEsNX0pfFtNTF17MSw1fXxkezEsMn18RHsxLDN9fEZ7MX18W2FiQl17MSw1fXxbaGtIS117MSwyfXx3ezEsMn18V3sxfXxtezEsMn18c3sxLDJ9fFt6Wk92VnhYXXsxLDR9KSg/PShbXiddKidbXiddKicpKlteJ10qJCkvZztmdW5jdGlvbiBBKGllKXt2YXIgeWU9e307cmV0dXJuIGllLnJlcGxhY2UoTSxmdW5jdGlvbihCKXt2YXIgVmU9Qi5sZW5ndGg7c3dpdGNoKEJbMF0pe2Nhc2UiRyI6eWUuZXJhPVZlPT09ND8ibG9uZyI6VmU9PT01PyJuYXJyb3ciOiJzaG9ydCI7YnJlYWs7Y2FzZSJ5Ijp5ZS55ZWFyPVZlPT09Mj8iMi1kaWdpdCI6Im51bWVyaWMiO2JyZWFrO2Nhc2UiWSI6Y2FzZSJ1IjpjYXNlIlUiOmNhc2UiciI6dGhyb3cgbmV3IFJhbmdlRXJyb3IoImBZL3UvVS9yYCAoeWVhcikgcGF0dGVybnMgYXJlIG5vdCBzdXBwb3J0ZWQsIHVzZSBgeWAgaW5zdGVhZCIpO2Nhc2UicSI6Y2FzZSJRIjp0aHJvdyBuZXcgUmFuZ2VFcnJvcigiYHEvUWAgKHF1YXJ0ZXIpIHBhdHRlcm5zIGFyZSBub3Qgc3VwcG9ydGVkIik7Y2FzZSJNIjpjYXNlIkwiOnllLm1vbnRoPVsibnVtZXJpYyIsIjItZGlnaXQiLCJzaG9ydCIsImxvbmciLCJuYXJyb3ciXVtWZS0xXTticmVhaztjYXNlInciOmNhc2UiVyI6dGhyb3cgbmV3IFJhbmdlRXJyb3IoImB3L1dgICh3ZWVrKSBwYXR0ZXJucyBhcmUgbm90IHN1cHBvcnRlZCIpO2Nhc2UiZCI6eWUuZGF5PVsibnVtZXJpYyIsIjItZGlnaXQiXVtWZS0xXTticmVhaztjYXNlIkQiOmNhc2UiRiI6Y2FzZSJnIjp0aHJvdyBuZXcgUmFuZ2VFcnJvcigiYEQvRi9nYCAoZGF5KSBwYXR0ZXJucyBhcmUgbm90IHN1cHBvcnRlZCwgdXNlIGBkYCBpbnN0ZWFkIik7Y2FzZSJFIjp5ZS53ZWVrZGF5PVZlPT09ND8ic2hvcnQiOlZlPT09NT8ibmFycm93Ijoic2hvcnQiO2JyZWFrO2Nhc2UiZSI6aWYoVmU8NCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiYGUuLmVlZWAgKHdlZWtkYXkpIHBhdHRlcm5zIGFyZSBub3Qgc3VwcG9ydGVkIik7eWUud2Vla2RheT1bInNob3J0IiwibG9uZyIsIm5hcnJvdyIsInNob3J0Il1bVmUtNF07YnJlYWs7Y2FzZSJjIjppZihWZTw0KXRocm93IG5ldyBSYW5nZUVycm9yKCJgYy4uY2NjYCAod2Vla2RheSkgcGF0dGVybnMgYXJlIG5vdCBzdXBwb3J0ZWQiKTt5ZS53ZWVrZGF5PVsic2hvcnQiLCJsb25nIiwibmFycm93Iiwic2hvcnQiXVtWZS00XTticmVhaztjYXNlImEiOnllLmhvdXIxMj0hMDticmVhaztjYXNlImIiOmNhc2UiQiI6dGhyb3cgbmV3IFJhbmdlRXJyb3IoImBiL0JgIChwZXJpb2QpIHBhdHRlcm5zIGFyZSBub3Qgc3VwcG9ydGVkLCB1c2UgYGFgIGluc3RlYWQiKTtjYXNlImgiOnllLmhvdXJDeWNsZT0iaDEyIix5ZS5ob3VyPVsibnVtZXJpYyIsIjItZGlnaXQiXVtWZS0xXTticmVhaztjYXNlIkgiOnllLmhvdXJDeWNsZT0iaDIzIix5ZS5ob3VyPVsibnVtZXJpYyIsIjItZGlnaXQiXVtWZS0xXTticmVhaztjYXNlIksiOnllLmhvdXJDeWNsZT0iaDExIix5ZS5ob3VyPVsibnVtZXJpYyIsIjItZGlnaXQiXVtWZS0xXTticmVhaztjYXNlImsiOnllLmhvdXJDeWNsZT0iaDI0Iix5ZS5ob3VyPVsibnVtZXJpYyIsIjItZGlnaXQiXVtWZS0xXTticmVhaztjYXNlImoiOmNhc2UiSiI6Y2FzZSJDIjp0aHJvdyBuZXcgUmFuZ2VFcnJvcigiYGovSi9DYCAoaG91cikgcGF0dGVybnMgYXJlIG5vdCBzdXBwb3J0ZWQsIHVzZSBgaC9IL0sva2AgaW5zdGVhZCIpO2Nhc2UibSI6eWUubWludXRlPVsibnVtZXJpYyIsIjItZGlnaXQiXVtWZS0xXTticmVhaztjYXNlInMiOnllLnNlY29uZD1bIm51bWVyaWMiLCIyLWRpZ2l0Il1bVmUtMV07YnJlYWs7Y2FzZSJTIjpjYXNlIkEiOnRocm93IG5ldyBSYW5nZUVycm9yKCJgUy9BYCAoc2Vjb25kKSBwYXR0ZW5ycyBhcmUgbm90IHN1cHBvcnRlZCwgdXNlIGBzYCBpbnN0ZWFkIik7Y2FzZSJ6Ijp5ZS50aW1lWm9uZU5hbWU9VmU8ND8ic2hvcnQiOiJsb25nIjticmVhaztjYXNlIloiOmNhc2UiTyI6Y2FzZSJ2IjpjYXNlIlYiOmNhc2UiWCI6Y2FzZSJ4Ijp0aHJvdyBuZXcgUmFuZ2VFcnJvcigiYFovTy92L1YvWC94YCAodGltZVpvbmUpIHBhdHRlbnJzIGFyZSBub3Qgc3VwcG9ydGVkLCB1c2UgYHpgIGluc3RlYWQiKX1yZXR1cm4iIn0pLHllfWZ1bmN0aW9uIFUoaWUpe3JldHVybiBpZS5yZXBsYWNlKC9eKC4qPyktLywiIil9dmFyIE49L15cLig/OigwKykoXCt8IyspPyk/JC9nLFE9L14oQCspPyhcK3wjKyk/JC9nO2Z1bmN0aW9uIHVlKGllKXt2YXIgeWU9e307cmV0dXJuIGllLnJlcGxhY2UoUSxmdW5jdGlvbihCLFZlLHN0KXtyZXR1cm4gdHlwZW9mIHN0IT0ic3RyaW5nIj8oeWUubWluaW11bVNpZ25pZmljYW50RGlnaXRzPVZlLmxlbmd0aCx5ZS5tYXhpbXVtU2lnbmlmaWNhbnREaWdpdHM9VmUubGVuZ3RoKTpzdD09PSIrIj95ZS5taW5pbXVtU2lnbmlmaWNhbnREaWdpdHM9VmUubGVuZ3RoOlZlWzBdPT09IiMiP3llLm1heGltdW1TaWduaWZpY2FudERpZ2l0cz1WZS5sZW5ndGg6KHllLm1pbmltdW1TaWduaWZpY2FudERpZ2l0cz1WZS5sZW5ndGgseWUubWF4aW11bVNpZ25pZmljYW50RGlnaXRzPVZlLmxlbmd0aCsodHlwZW9mIHN0PT0ic3RyaW5nIj9zdC5sZW5ndGg6MCkpLCIifSkseWV9ZnVuY3Rpb24gJChpZSl7c3dpdGNoKGllKXtjYXNlInNpZ24tYXV0byI6cmV0dXJue3NpZ25EaXNwbGF5OiJhdXRvIn07Y2FzZSJzaWduLWFjY291bnRpbmciOnJldHVybntjdXJyZW5jeVNpZ246ImFjY291bnRpbmcifTtjYXNlInNpZ24tYWx3YXlzIjpyZXR1cm57c2lnbkRpc3BsYXk6ImFsd2F5cyJ9O2Nhc2Uic2lnbi1hY2NvdW50aW5nLWFsd2F5cyI6cmV0dXJue3NpZ25EaXNwbGF5OiJhbHdheXMiLGN1cnJlbmN5U2lnbjoiYWNjb3VudGluZyJ9O2Nhc2Uic2lnbi1leGNlcHQtemVybyI6cmV0dXJue3NpZ25EaXNwbGF5OiJleGNlcHRaZXJvIn07Y2FzZSJzaWduLWFjY291bnRpbmctZXhjZXB0LXplcm8iOnJldHVybntzaWduRGlzcGxheToiZXhjZXB0WmVybyIsY3VycmVuY3lTaWduOiJhY2NvdW50aW5nIn07Y2FzZSJzaWduLW5ldmVyIjpyZXR1cm57c2lnbkRpc3BsYXk6Im5ldmVyIn19fWZ1bmN0aW9uIF8oaWUpe3ZhciB5ZT17fSxCPSQoaWUpO3JldHVybiBCfHx5ZX1mdW5jdGlvbiBwZShpZSl7Zm9yKHZhciB5ZT17fSxCPTAsVmU9aWU7QjxWZS5sZW5ndGg7QisrKXt2YXIgc3Q9VmVbQl07c3dpdGNoKHN0LnN0ZW0pe2Nhc2UicGVyY2VudCI6eWUuc3R5bGU9InBlcmNlbnQiO2NvbnRpbnVlO2Nhc2UiY3VycmVuY3kiOnllLnN0eWxlPSJjdXJyZW5jeSIseWUuY3VycmVuY3k9c3Qub3B0aW9uc1swXTtjb250aW51ZTtjYXNlImdyb3VwLW9mZiI6eWUudXNlR3JvdXBpbmc9ITE7Y29udGludWU7Y2FzZSJwcmVjaXNpb24taW50ZWdlciI6eWUubWF4aW11bUZyYWN0aW9uRGlnaXRzPTA7Y29udGludWU7Y2FzZSJtZWFzdXJlLXVuaXQiOnllLnN0eWxlPSJ1bml0Iix5ZS51bml0PVUoc3Qub3B0aW9uc1swXSk7Y29udGludWU7Y2FzZSJjb21wYWN0LXNob3J0Ijp5ZS5ub3RhdGlvbj0iY29tcGFjdCIseWUuY29tcGFjdERpc3BsYXk9InNob3J0Ijtjb250aW51ZTtjYXNlImNvbXBhY3QtbG9uZyI6eWUubm90YXRpb249ImNvbXBhY3QiLHllLmNvbXBhY3REaXNwbGF5PSJsb25nIjtjb250aW51ZTtjYXNlInNjaWVudGlmaWMiOnllPWsoayhrKHt9LHllKSx7bm90YXRpb246InNjaWVudGlmaWMifSksc3Qub3B0aW9ucy5yZWR1Y2UoZnVuY3Rpb24oQnQsTHQpe3JldHVybiBrKGsoe30sQnQpLF8oTHQpKX0se30pKTtjb250aW51ZTtjYXNlImVuZ2luZWVyaW5nIjp5ZT1rKGsoayh7fSx5ZSkse25vdGF0aW9uOiJlbmdpbmVlcmluZyJ9KSxzdC5vcHRpb25zLnJlZHVjZShmdW5jdGlvbihCdCxMdCl7cmV0dXJuIGsoayh7fSxCdCksXyhMdCkpfSx7fSkpO2NvbnRpbnVlO2Nhc2Uibm90YXRpb24tc2ltcGxlIjp5ZS5ub3RhdGlvbj0ic3RhbmRhcmQiO2NvbnRpbnVlO2Nhc2UidW5pdC13aWR0aC1uYXJyb3ciOnllLmN1cnJlbmN5RGlzcGxheT0ibmFycm93U3ltYm9sIix5ZS51bml0RGlzcGxheT0ibmFycm93Ijtjb250aW51ZTtjYXNlInVuaXQtd2lkdGgtc2hvcnQiOnllLmN1cnJlbmN5RGlzcGxheT0iY29kZSIseWUudW5pdERpc3BsYXk9InNob3J0Ijtjb250aW51ZTtjYXNlInVuaXQtd2lkdGgtZnVsbC1uYW1lIjp5ZS5jdXJyZW5jeURpc3BsYXk9Im5hbWUiLHllLnVuaXREaXNwbGF5PSJsb25nIjtjb250aW51ZTtjYXNlInVuaXQtd2lkdGgtaXNvLWNvZGUiOnllLmN1cnJlbmN5RGlzcGxheT0ic3ltYm9sIjtjb250aW51ZX1pZihOLnRlc3Qoc3Quc3RlbSkpe2lmKHN0Lm9wdGlvbnMubGVuZ3RoPjEpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkZyYWN0aW9uLXByZWNpc2lvbiBzdGVtcyBvbmx5IGFjY2VwdCBhIHNpbmdsZSBvcHRpb25hbCBvcHRpb24iKTtzdC5zdGVtLnJlcGxhY2UoTixmdW5jdGlvbihCdCxMdCxZdCl7cmV0dXJuIEJ0PT09Ii4iP3llLm1heGltdW1GcmFjdGlvbkRpZ2l0cz0wOll0PT09IisiP3llLm1pbmltdW1GcmFjdGlvbkRpZ2l0cz1ZdC5sZW5ndGg6THRbMF09PT0iIyI/eWUubWF4aW11bUZyYWN0aW9uRGlnaXRzPUx0Lmxlbmd0aDooeWUubWluaW11bUZyYWN0aW9uRGlnaXRzPUx0Lmxlbmd0aCx5ZS5tYXhpbXVtRnJhY3Rpb25EaWdpdHM9THQubGVuZ3RoKyh0eXBlb2YgWXQ9PSJzdHJpbmciP1l0Lmxlbmd0aDowKSksIiJ9KSxzdC5vcHRpb25zLmxlbmd0aCYmKHllPWsoayh7fSx5ZSksdWUoc3Qub3B0aW9uc1swXSkpKTtjb250aW51ZX1pZihRLnRlc3Qoc3Quc3RlbSkpe3llPWsoayh7fSx5ZSksdWUoc3Quc3RlbSkpO2NvbnRpbnVlfXZhciBSdD0kKHN0LnN0ZW0pO1J0JiYoeWU9ayhrKHt9LHllKSxSdCkpfXJldHVybiB5ZX12YXIgcmU9ZnVuY3Rpb24oKXt2YXIgaWU9ZnVuY3Rpb24oeWUsQil7cmV0dXJuIGllPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihWZSxzdCl7VmUuX19wcm90b19fPXN0fXx8ZnVuY3Rpb24oVmUsc3Qpe2Zvcih2YXIgUnQgaW4gc3Qpc3QuaGFzT3duUHJvcGVydHkoUnQpJiYoVmVbUnRdPXN0W1J0XSl9LGllKHllLEIpfTtyZXR1cm4gZnVuY3Rpb24oeWUsQil7aWUoeWUsQik7ZnVuY3Rpb24gVmUoKXt0aGlzLmNvbnN0cnVjdG9yPXllfXllLnByb3RvdHlwZT1CPT09bnVsbD9PYmplY3QuY3JlYXRlKEIpOihWZS5wcm90b3R5cGU9Qi5wcm90b3R5cGUsbmV3IFZlKX19KCksYWU9ZnVuY3Rpb24oKXtmb3IodmFyIGllPTAseWU9MCxCPWFyZ3VtZW50cy5sZW5ndGg7eWU8Qjt5ZSsrKWllKz1hcmd1bWVudHNbeWVdLmxlbmd0aDtmb3IodmFyIFZlPUFycmF5KGllKSxzdD0wLHllPTA7eWU8Qjt5ZSsrKWZvcih2YXIgUnQ9YXJndW1lbnRzW3llXSxCdD0wLEx0PVJ0Lmxlbmd0aDtCdDxMdDtCdCsrLHN0KyspVmVbc3RdPVJ0W0J0XTtyZXR1cm4gVmV9LHdlPWZ1bmN0aW9uKGllKXtyZSh5ZSxpZSk7ZnVuY3Rpb24geWUoQixWZSl7dmFyIHN0PWllLmNhbGwodGhpcyxCKXx8dGhpcztyZXR1cm4gc3QudmFyaWFibGVJZD1WZSxzdH1yZXR1cm4geWV9KEVycm9yKTtmdW5jdGlvbiBMZShpZSl7cmV0dXJuIGllLmxlbmd0aDwyP2llOmllLnJlZHVjZShmdW5jdGlvbih5ZSxCKXt2YXIgVmU9eWVbeWUubGVuZ3RoLTFdO3JldHVybiFWZXx8VmUudHlwZSE9PTB8fEIudHlwZSE9PTA/eWUucHVzaChCKTpWZS52YWx1ZSs9Qi52YWx1ZSx5ZX0sW10pfWZ1bmN0aW9uIE1lKGllLHllLEIsVmUsc3QsUnQsQnQpe2lmKGllLmxlbmd0aD09PTEmJkooaWVbMF0pKXJldHVyblt7dHlwZTowLHZhbHVlOmllWzBdLnZhbHVlfV07Zm9yKHZhciBMdD1bXSxZdD0wLEFuPWllO1l0PEFuLmxlbmd0aDtZdCsrKXt2YXIgc249QW5bWXRdO2lmKEooc24pKXtMdC5wdXNoKHt0eXBlOjAsdmFsdWU6c24udmFsdWV9KTtjb250aW51ZX1pZihEKHNuKSl7dHlwZW9mIFJ0PT0ibnVtYmVyIiYmTHQucHVzaCh7dHlwZTowLHZhbHVlOkIuZ2V0TnVtYmVyRm9ybWF0KHllKS5mb3JtYXQoUnQpfSk7Y29udGludWV9dmFyIHF0PXNuLnZhbHVlO2lmKCEoc3QmJnF0IGluIHN0KSl0aHJvdyBuZXcgd2UoJ1RoZSBpbnRsIHN0cmluZyBjb250ZXh0IHZhcmlhYmxlICInK3F0KyciIHdhcyBub3QgcHJvdmlkZWQgdG8gdGhlIHN0cmluZyAiJytCdCsnIicpO3ZhciBNbj1zdFtxdF07aWYobWUoc24pKXsoIU1ufHx0eXBlb2YgTW49PSJzdHJpbmcifHx0eXBlb2YgTW49PSJudW1iZXIiKSYmKE1uPXR5cGVvZiBNbj09InN0cmluZyJ8fHR5cGVvZiBNbj09Im51bWJlciI/U3RyaW5nKE1uKToiIiksTHQucHVzaCh7dHlwZToxLHZhbHVlOk1ufSk7Y29udGludWV9aWYobGUoc24pKXt2YXIgQ3I9dHlwZW9mIHNuLnN0eWxlPT0ic3RyaW5nIj9WZS5kYXRlW3NuLnN0eWxlXTp2b2lkIDA7THQucHVzaCh7dHlwZTowLHZhbHVlOkIuZ2V0RGF0ZVRpbWVGb3JtYXQoeWUsQ3IpLmZvcm1hdChNbil9KTtjb250aW51ZX1pZihjZShzbikpe3ZhciBDcj10eXBlb2Ygc24uc3R5bGU9PSJzdHJpbmciP1ZlLnRpbWVbc24uc3R5bGVdOlooc24uc3R5bGUpP0Eoc24uc3R5bGUucGF0dGVybik6dm9pZCAwO0x0LnB1c2goe3R5cGU6MCx2YWx1ZTpCLmdldERhdGVUaW1lRm9ybWF0KHllLENyKS5mb3JtYXQoTW4pfSk7Y29udGludWV9aWYodGUoc24pKXt2YXIgQ3I9dHlwZW9mIHNuLnN0eWxlPT0ic3RyaW5nIj9WZS5udW1iZXJbc24uc3R5bGVdOlYoc24uc3R5bGUpP3BlKHNuLnN0eWxlLnRva2Vucyk6dm9pZCAwO0x0LnB1c2goe3R5cGU6MCx2YWx1ZTpCLmdldE51bWJlckZvcm1hdCh5ZSxDcikuZm9ybWF0KE1uKX0pO2NvbnRpbnVlfWlmKFcoc24pKXt2YXIgcW49c24ub3B0aW9uc1tNbl18fHNuLm9wdGlvbnMub3RoZXI7aWYoIXFuKXRocm93IG5ldyBSYW5nZUVycm9yKCdJbnZhbGlkIHZhbHVlcyBmb3IgIicrc24udmFsdWUrJyI6ICInK01uKyciLiBPcHRpb25zIGFyZSAiJytPYmplY3Qua2V5cyhzbi5vcHRpb25zKS5qb2luKCciLCAiJykrJyInKTtMdC5wdXNoLmFwcGx5KEx0LE1lKHFuLnZhbHVlLHllLEIsVmUsc3QpKTtjb250aW51ZX1pZihqKHNuKSl7dmFyIHFuPXNuLm9wdGlvbnNbIj0iK01uXTtpZighcW4pe2lmKCFJbnRsLlBsdXJhbFJ1bGVzKXRocm93IG5ldyB3ZShgSW50bC5QbHVyYWxSdWxlcyBpcyBub3QgYXZhaWxhYmxlIGluIHRoaXMgZW52aXJvbm1lbnQuCitUcnkgcG9seWZpbGxpbmcgaXQgdXNpbmcgIkBmb3JtYXRqcy9pbnRsLXBsdXJhbHJ1bGVzIgorYCk7dmFyIGpyPUIuZ2V0UGx1cmFsUnVsZXMoeWUse3R5cGU6c24ucGx1cmFsVHlwZX0pLnNlbGVjdChNbi0oc24ub2Zmc2V0fHwwKSk7cW49c24ub3B0aW9uc1tqcl18fHNuLm9wdGlvbnMub3RoZXJ9aWYoIXFuKXRocm93IG5ldyBSYW5nZUVycm9yKCdJbnZhbGlkIHZhbHVlcyBmb3IgIicrc24udmFsdWUrJyI6ICInK01uKyciLiBPcHRpb25zIGFyZSAiJytPYmplY3Qua2V5cyhzbi5vcHRpb25zKS5qb2luKCciLCAiJykrJyInKTtMdC5wdXNoLmFwcGx5KEx0LE1lKHFuLnZhbHVlLHllLEIsVmUsc3QsTW4tKHNuLm9mZnNldHx8MCkpKTtjb250aW51ZX19cmV0dXJuIExlKEx0KX1mdW5jdGlvbiBiZShpZSx5ZSxCLFZlLHN0LFJ0KXt2YXIgQnQ9TWUoaWUseWUsQixWZSxzdCx2b2lkIDAsUnQpO3JldHVybiBCdC5sZW5ndGg9PT0xP0J0WzBdLnZhbHVlOkJ0LnJlZHVjZShmdW5jdGlvbihMdCxZdCl7cmV0dXJuIEx0Kz1ZdC52YWx1ZX0sIiIpfXZhciAkZSxrZT0iQEAiLEFlPS9AQChcZCtfXGQrKUBAL2csdHQ9MDtmdW5jdGlvbiBtdCgpe3JldHVybiBEYXRlLm5vdygpKyJfIisgKyt0dH1mdW5jdGlvbiB1dChpZSx5ZSl7cmV0dXJuIGllLnNwbGl0KEFlKS5maWx0ZXIoQm9vbGVhbikubWFwKGZ1bmN0aW9uKEIpe3JldHVybiB5ZVtCXSE9bnVsbD95ZVtCXTpCfSkucmVkdWNlKGZ1bmN0aW9uKEIsVmUpe3JldHVybiBCLmxlbmd0aCYmdHlwZW9mIFZlPT0ic3RyaW5nIiYmdHlwZW9mIEJbQi5sZW5ndGgtMV09PSJzdHJpbmciP0JbQi5sZW5ndGgtMV0rPVZlOkIucHVzaChWZSksQn0sW10pfXZhciBEZT0vKDwoWzAtOWEtekEtWi1fXSo/KT4oLio/KTxcLyhbMC05YS16QS1aLV9dKj8pPil8KDxbMC05YS16QS1aLV9dKj9cLz4pLyxOZT1EYXRlLm5vdygpKyJAQCIsWGU9WyJhcmVhIiwiYmFzZSIsImJyIiwiY29sIiwiZW1iZWQiLCJociIsImltZyIsImlucHV0IiwibGluayIsIm1ldGEiLCJwYXJhbSIsInNvdXJjZSIsInRyYWNrIiwid2JyIl07ZnVuY3Rpb24gSmUoaWUseWUsQil7dmFyIFZlPWllLnRhZ05hbWUsc3Q9aWUub3V0ZXJIVE1MLFJ0PWllLnRleHRDb250ZW50LEJ0PWllLmNoaWxkTm9kZXM7aWYoIVZlKXJldHVybiB1dChSdHx8IiIseWUpO1ZlPVZlLnRvTG93ZXJDYXNlKCk7dmFyIEx0PX5YZS5pbmRleE9mKFZlKSxZdD1CW1ZlXTtpZihZdCYmTHQpdGhyb3cgbmV3IHdlKFZlKyIgaXMgYSBzZWxmLWNsb3NpbmcgdGFnIGFuZCBjYW4gbm90IGJlIHVzZWQsIHBsZWFzZSB1c2UgYW5vdGhlciB0YWcgbmFtZS4iKTtpZighQnQubGVuZ3RoKXJldHVybltzdF07dmFyIEFuPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKEJ0KS5yZWR1Y2UoZnVuY3Rpb24oc24scXQpe3JldHVybiBzbi5jb25jYXQoSmUocXQseWUsQikpfSxbXSk7cmV0dXJuIFl0P3R5cGVvZiBZdD09ImZ1bmN0aW9uIj9bWXQuYXBwbHkodm9pZCAwLEFuKV06W1l0XTphZShbIjwiK1ZlKyI+Il0sQW4sWyI8LyIrVmUrIj4iXSl9ZnVuY3Rpb24gZ3QoaWUseWUsQixWZSxzdCxSdCl7dmFyIEJ0PU1lKGllLHllLEIsVmUsc3Qsdm9pZCAwLFJ0KSxMdD17fSxZdD1CdC5yZWR1Y2UoZnVuY3Rpb24oTW4sQ3Ipe2lmKENyLnR5cGU9PT0wKXJldHVybiBNbis9Q3IudmFsdWU7dmFyIHFuPW10KCk7cmV0dXJuIEx0W3FuXT1Dci52YWx1ZSxNbis9IiIra2UrcW4ra2V9LCIiKTtpZighRGUudGVzdChZdCkpcmV0dXJuIHV0KFl0LEx0KTtpZighc3QpdGhyb3cgbmV3IHdlKCJNZXNzYWdlIGhhcyBwbGFjZWhvbGRlcnMgYnV0IG5vIHZhbHVlcyB3YXMgZ2l2ZW4iKTtpZih0eXBlb2YgRE9NUGFyc2VyPT0idW5kZWZpbmVkIil0aHJvdyBuZXcgd2UoIkNhbm5vdCBmb3JtYXQgWE1MIG1lc3NhZ2Ugd2l0aG91dCBET01QYXJzZXIiKTskZXx8KCRlPW5ldyBET01QYXJzZXIpO3ZhciBBbj0kZS5wYXJzZUZyb21TdHJpbmcoJzxmb3JtYXR0ZWQtbWVzc2FnZSBpZD0iJytOZSsnIj4nK1l0KyI8L2Zvcm1hdHRlZC1tZXNzYWdlPiIsInRleHQvaHRtbCIpLmdldEVsZW1lbnRCeUlkKE5lKTtpZighQW4pdGhyb3cgbmV3IHdlKCJNYWxmb3JtZWQgSFRNTCBtZXNzYWdlICIrWXQpO3ZhciBzbj1PYmplY3Qua2V5cyhzdCkuZmlsdGVyKGZ1bmN0aW9uKE1uKXtyZXR1cm4hIUFuLmdldEVsZW1lbnRzQnlUYWdOYW1lKE1uKS5sZW5ndGh9KTtpZighc24ubGVuZ3RoKXJldHVybiB1dChZdCxMdCk7dmFyIHF0PXNuLmZpbHRlcihmdW5jdGlvbihNbil7cmV0dXJuIE1uIT09TW4udG9Mb3dlckNhc2UoKX0pO2lmKHF0Lmxlbmd0aCl0aHJvdyBuZXcgd2UoIkhUTUwgdGFnIG11c3QgYmUgbG93ZXJjYXNlZCBidXQgdGhlIGZvbGxvd2luZyB0YWdzIGFyZSBub3Q6ICIrcXQuam9pbigiLCAiKSk7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKEFuLmNoaWxkTm9kZXMpLnJlZHVjZShmdW5jdGlvbihNbixDcil7cmV0dXJuIE1uLmNvbmNhdChKZShDcixMdCxzdCkpfSxbXSl9dmFyIGRlPWZ1bmN0aW9uKCl7cmV0dXJuIGRlPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKGllKXtmb3IodmFyIHllLEI9MSxWZT1hcmd1bWVudHMubGVuZ3RoO0I8VmU7QisrKXt5ZT1hcmd1bWVudHNbQl07Zm9yKHZhciBzdCBpbiB5ZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoeWUsc3QpJiYoaWVbc3RdPXllW3N0XSl9cmV0dXJuIGllfSxkZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O2Z1bmN0aW9uIFdlKGllLHllKXtyZXR1cm4geWU/ZGUoZGUoZGUoe30saWV8fHt9KSx5ZXx8e30pLE9iamVjdC5rZXlzKGllKS5yZWR1Y2UoZnVuY3Rpb24oQixWZSl7cmV0dXJuIEJbVmVdPWRlKGRlKHt9LGllW1ZlXSkseWVbVmVdfHx7fSksQn0se30pKTppZX1mdW5jdGlvbiBTdChpZSx5ZSl7cmV0dXJuIHllP09iamVjdC5rZXlzKGllKS5yZWR1Y2UoZnVuY3Rpb24oQixWZSl7cmV0dXJuIEJbVmVdPVdlKGllW1ZlXSx5ZVtWZV0pLEJ9LGRlKHt9LGllKSk6aWV9ZnVuY3Rpb24gY3QoaWUpe3JldHVybiBpZT09PXZvaWQgMCYmKGllPXtudW1iZXI6e30sZGF0ZVRpbWU6e30scGx1cmFsUnVsZXM6e319KSx7Z2V0TnVtYmVyRm9ybWF0OnEoSW50bC5OdW1iZXJGb3JtYXQsaWUubnVtYmVyKSxnZXREYXRlVGltZUZvcm1hdDpxKEludGwuRGF0ZVRpbWVGb3JtYXQsaWUuZGF0ZVRpbWUpLGdldFBsdXJhbFJ1bGVzOnEoSW50bC5QbHVyYWxSdWxlcyxpZS5wbHVyYWxSdWxlcyl9fXZhciBPZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGllKHllLEIsVmUsc3Qpe3ZhciBSdD10aGlzO2lmKEI9PT12b2lkIDAmJihCPWllLmRlZmF1bHRMb2NhbGUpLHRoaXMuZm9ybWF0dGVyQ2FjaGU9e251bWJlcjp7fSxkYXRlVGltZTp7fSxwbHVyYWxSdWxlczp7fX0sdGhpcy5mb3JtYXQ9ZnVuY3Rpb24oQnQpe3JldHVybiBiZShSdC5hc3QsUnQubG9jYWxlcyxSdC5mb3JtYXR0ZXJzLFJ0LmZvcm1hdHMsQnQsUnQubWVzc2FnZSl9LHRoaXMuZm9ybWF0VG9QYXJ0cz1mdW5jdGlvbihCdCl7cmV0dXJuIE1lKFJ0LmFzdCxSdC5sb2NhbGVzLFJ0LmZvcm1hdHRlcnMsUnQuZm9ybWF0cyxCdCx2b2lkIDAsUnQubWVzc2FnZSl9LHRoaXMuZm9ybWF0SFRNTE1lc3NhZ2U9ZnVuY3Rpb24oQnQpe3JldHVybiBndChSdC5hc3QsUnQubG9jYWxlcyxSdC5mb3JtYXR0ZXJzLFJ0LmZvcm1hdHMsQnQsUnQubWVzc2FnZSl9LHRoaXMucmVzb2x2ZWRPcHRpb25zPWZ1bmN0aW9uKCl7cmV0dXJue2xvY2FsZTpJbnRsLk51bWJlckZvcm1hdC5zdXBwb3J0ZWRMb2NhbGVzT2YoUnQubG9jYWxlcylbMF19fSx0aGlzLmdldEFzdD1mdW5jdGlvbigpe3JldHVybiBSdC5hc3R9LHR5cGVvZiB5ZT09InN0cmluZyIpe2lmKHRoaXMubWVzc2FnZT15ZSwhaWUuX19wYXJzZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnRsTWVzc2FnZUZvcm1hdC5fX3BhcnNlIG11c3QgYmUgc2V0IHRvIHByb2Nlc3MgYG1lc3NhZ2VgIG9mIHR5cGUgYHN0cmluZ2AiKTt0aGlzLmFzdD1pZS5fX3BhcnNlKHllLHtub3JtYWxpemVIYXNodGFnSW5QbHVyYWw6ITF9KX1lbHNlIHRoaXMuYXN0PXllO2lmKCFBcnJheS5pc0FycmF5KHRoaXMuYXN0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJBIG1lc3NhZ2UgbXVzdCBiZSBwcm92aWRlZCBhcyBhIFN0cmluZyBvciBBU1QuIik7dGhpcy5mb3JtYXRzPVN0KGllLmZvcm1hdHMsVmUpLHRoaXMubG9jYWxlcz1CLHRoaXMuZm9ybWF0dGVycz1zdCYmc3QuZm9ybWF0dGVyc3x8Y3QodGhpcy5mb3JtYXR0ZXJDYWNoZSl9cmV0dXJuIGllLmRlZmF1bHRMb2NhbGU9bmV3IEludGwuTnVtYmVyRm9ybWF0KCkucmVzb2x2ZWRPcHRpb25zKCkubG9jYWxlLGllLl9fcGFyc2U9b3QsaWUuZm9ybWF0cz17bnVtYmVyOntjdXJyZW5jeTp7c3R5bGU6ImN1cnJlbmN5In0scGVyY2VudDp7c3R5bGU6InBlcmNlbnQifX0sZGF0ZTp7c2hvcnQ6e21vbnRoOiJudW1lcmljIixkYXk6Im51bWVyaWMiLHllYXI6IjItZGlnaXQifSxtZWRpdW06e21vbnRoOiJzaG9ydCIsZGF5OiJudW1lcmljIix5ZWFyOiJudW1lcmljIn0sbG9uZzp7bW9udGg6ImxvbmciLGRheToibnVtZXJpYyIseWVhcjoibnVtZXJpYyJ9LGZ1bGw6e3dlZWtkYXk6ImxvbmciLG1vbnRoOiJsb25nIixkYXk6Im51bWVyaWMiLHllYXI6Im51bWVyaWMifX0sdGltZTp7c2hvcnQ6e2hvdXI6Im51bWVyaWMiLG1pbnV0ZToibnVtZXJpYyJ9LG1lZGl1bTp7aG91cjoibnVtZXJpYyIsbWludXRlOiJudW1lcmljIixzZWNvbmQ6Im51bWVyaWMifSxsb25nOntob3VyOiJudW1lcmljIixtaW51dGU6Im51bWVyaWMiLHNlY29uZDoibnVtZXJpYyIsdGltZVpvbmVOYW1lOiJzaG9ydCJ9LGZ1bGw6e2hvdXI6Im51bWVyaWMiLG1pbnV0ZToibnVtZXJpYyIsc2Vjb25kOiJudW1lcmljIix0aW1lWm9uZU5hbWU6InNob3J0In19fSxpZX0oKSxHZT1PZSxodD1HZTtmdW5jdGlvbiB6ZShpZSx5ZSxCKXtpZihCPT09dm9pZCAwJiYoQj1FcnJvciksIWllKXRocm93IG5ldyBCKHllKX12YXIgUWU9ezM4OiImYW1wOyIsNjI6IiZndDsiLDYwOiImbHQ7IiwzNDoiJnF1b3Q7IiwzOToiJiN4Mjc7In0scHQ9L1smPjwiJ10vZztmdW5jdGlvbiBidChpZSl7cmV0dXJuKCIiK2llKS5yZXBsYWNlKHB0LGZ1bmN0aW9uKHllKXtyZXR1cm4gUWVbeWUuY2hhckNvZGVBdCgwKV19KX1mdW5jdGlvbiBJdChpZSx5ZSl7dmFyIEI9YXJndW1lbnRzLmxlbmd0aD4yJiZhcmd1bWVudHNbMl0hPT12b2lkIDA/YXJndW1lbnRzWzJdOnt9O3JldHVybiB5ZS5yZWR1Y2UoZnVuY3Rpb24oVmUsc3Qpe3JldHVybiBzdCBpbiBpZT9WZVtzdF09aWVbc3RdOnN0IGluIEImJihWZVtzdF09QltzdF0pLFZlfSx7fSl9ZnVuY3Rpb24gVHQoaWUpe3plKGllLCJbUmVhY3QgSW50bF0gQ291bGQgbm90IGZpbmQgcmVxdWlyZWQgYGludGxgIG9iamVjdC4gPEludGxQcm92aWRlcj4gbmVlZHMgdG8gZXhpc3QgaW4gdGhlIGNvbXBvbmVudCBhbmNlc3RyeS4iKX1mdW5jdGlvbiBYdChpZSx5ZSl7dmFyIEI9eWU/YAorYC5jb25jYXQoeWUuc3RhY2spOiIiO3JldHVybiJbUmVhY3QgSW50bF0gIi5jb25jYXQoaWUpLmNvbmNhdChCKX1mdW5jdGlvbiBmbihpZSl7fXZhciBubj17Zm9ybWF0czp7fSxtZXNzYWdlczp7fSx0aW1lWm9uZTp2b2lkIDAsdGV4dENvbXBvbmVudDpnLkZyYWdtZW50LGRlZmF1bHRMb2NhbGU6ImVuIixkZWZhdWx0Rm9ybWF0czp7fSxvbkVycm9yOmZufTtmdW5jdGlvbiBvbigpe3JldHVybntkYXRlVGltZTp7fSxudW1iZXI6e30sbWVzc2FnZTp7fSxyZWxhdGl2ZVRpbWU6e30scGx1cmFsUnVsZXM6e30sbGlzdDp7fSxkaXNwbGF5TmFtZXM6e319fWZ1bmN0aW9uIE50KCl7dmFyIGllPWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dm9pZCAwP2FyZ3VtZW50c1swXTpvbigpLHllPUludGwuUmVsYXRpdmVUaW1lRm9ybWF0LEI9SW50bC5MaXN0Rm9ybWF0LFZlPUludGwuRGlzcGxheU5hbWVzO3JldHVybntnZXREYXRlVGltZUZvcm1hdDpxKEludGwuRGF0ZVRpbWVGb3JtYXQsaWUuZGF0ZVRpbWUpLGdldE51bWJlckZvcm1hdDpxKEludGwuTnVtYmVyRm9ybWF0LGllLm51bWJlciksZ2V0TWVzc2FnZUZvcm1hdDpxKGh0LGllLm1lc3NhZ2UpLGdldFJlbGF0aXZlVGltZUZvcm1hdDpxKHllLGllLnJlbGF0aXZlVGltZSksZ2V0UGx1cmFsUnVsZXM6cShJbnRsLlBsdXJhbFJ1bGVzLGllLnBsdXJhbFJ1bGVzKSxnZXRMaXN0Rm9ybWF0OnEoQixpZS5saXN0KSxnZXREaXNwbGF5TmFtZXM6cShWZSxpZS5kaXNwbGF5TmFtZXMpfX1mdW5jdGlvbiBabihpZSx5ZSxCLFZlKXt2YXIgc3Q9aWUmJmllW3llXSxSdDtpZihzdCYmKFJ0PXN0W0JdKSxSdClyZXR1cm4gUnQ7VmUoWHQoIk5vICIuY29uY2F0KHllLCIgZm9ybWF0IG5hbWVkOiAiKS5jb25jYXQoQikpKX12YXIgeW49WyJsb2NhbGVNYXRjaGVyIiwic3R5bGUiLCJjdXJyZW5jeSIsImN1cnJlbmN5RGlzcGxheSIsInVuaXQiLCJ1bml0RGlzcGxheSIsInVzZUdyb3VwaW5nIiwibWluaW11bUludGVnZXJEaWdpdHMiLCJtaW5pbXVtRnJhY3Rpb25EaWdpdHMiLCJtYXhpbXVtRnJhY3Rpb25EaWdpdHMiLCJtaW5pbXVtU2lnbmlmaWNhbnREaWdpdHMiLCJtYXhpbXVtU2lnbmlmaWNhbnREaWdpdHMiLCJjb21wYWN0RGlzcGxheSIsImN1cnJlbmN5RGlzcGxheSIsImN1cnJlbmN5U2lnbiIsIm5vdGF0aW9uIiwic2lnbkRpc3BsYXkiLCJ1bml0IiwidW5pdERpc3BsYXkiXTtmdW5jdGlvbiBnbihpZSx5ZSl7dmFyIEI9aWUubG9jYWxlLFZlPWllLmZvcm1hdHMsc3Q9aWUub25FcnJvcixSdD1hcmd1bWVudHMubGVuZ3RoPjImJmFyZ3VtZW50c1syXSE9PXZvaWQgMD9hcmd1bWVudHNbMl06e30sQnQ9UnQuZm9ybWF0LEx0PUJ0JiZabihWZSwibnVtYmVyIixCdCxzdCl8fHt9LFl0PUl0KFJ0LHluLEx0KTtyZXR1cm4geWUoQixZdCl9ZnVuY3Rpb24gQm4oaWUseWUsQil7dmFyIFZlPWFyZ3VtZW50cy5sZW5ndGg+MyYmYXJndW1lbnRzWzNdIT09dm9pZCAwP2FyZ3VtZW50c1szXTp7fTt0cnl7cmV0dXJuIGduKGllLHllLFZlKS5mb3JtYXQoQil9Y2F0Y2goc3Qpe2llLm9uRXJyb3IoWHQoIkVycm9yIGZvcm1hdHRpbmcgbnVtYmVyLiIsc3QpKX1yZXR1cm4gU3RyaW5nKEIpfWZ1bmN0aW9uIFZuKGllLHllLEIpe3ZhciBWZT1hcmd1bWVudHMubGVuZ3RoPjMmJmFyZ3VtZW50c1szXSE9PXZvaWQgMD9hcmd1bWVudHNbM106e307dHJ5e3JldHVybiBnbihpZSx5ZSxWZSkuZm9ybWF0VG9QYXJ0cyhCKX1jYXRjaChzdCl7aWUub25FcnJvcihYdCgiRXJyb3IgZm9ybWF0dGluZyBudW1iZXIuIixzdCkpfXJldHVybltdfXZhciBObj1bIm51bWVyaWMiLCJzdHlsZSJdO2Z1bmN0aW9uIGZ0KGllLHllKXt2YXIgQj1pZS5sb2NhbGUsVmU9aWUuZm9ybWF0cyxzdD1pZS5vbkVycm9yLFJ0PWFyZ3VtZW50cy5sZW5ndGg+MiYmYXJndW1lbnRzWzJdIT09dm9pZCAwP2FyZ3VtZW50c1syXTp7fSxCdD1SdC5mb3JtYXQsTHQ9ISFCdCYmWm4oVmUsInJlbGF0aXZlIixCdCxzdCl8fHt9LFl0PUl0KFJ0LE5uLEx0KTtyZXR1cm4geWUoQixZdCl9ZnVuY3Rpb24gZXQoaWUseWUsQixWZSl7dmFyIHN0PWFyZ3VtZW50cy5sZW5ndGg+NCYmYXJndW1lbnRzWzRdIT09dm9pZCAwP2FyZ3VtZW50c1s0XTp7fTtWZXx8KFZlPSJzZWNvbmQiKTt2YXIgUnQ9SW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQ7UnR8fGllLm9uRXJyb3IoWHQoYEludGwuUmVsYXRpdmVUaW1lRm9ybWF0IGlzIG5vdCBhdmFpbGFibGUgaW4gdGhpcyBlbnZpcm9ubWVudC4KK1RyeSBwb2x5ZmlsbGluZyBpdCB1c2luZyAiQGZvcm1hdGpzL2ludGwtcmVsYXRpdmV0aW1lZm9ybWF0IgorYCkpO3RyeXtyZXR1cm4gZnQoaWUseWUsc3QpLmZvcm1hdChCLFZlKX1jYXRjaChCdCl7aWUub25FcnJvcihYdCgiRXJyb3IgZm9ybWF0dGluZyByZWxhdGl2ZSB0aW1lLiIsQnQpKX1yZXR1cm4gU3RyaW5nKEIpfXZhciBKdD1bImxvY2FsZU1hdGNoZXIiLCJmb3JtYXRNYXRjaGVyIiwidGltZVpvbmUiLCJob3VyMTIiLCJ3ZWVrZGF5IiwiZXJhIiwieWVhciIsIm1vbnRoIiwiZGF5IiwiaG91ciIsIm1pbnV0ZSIsInNlY29uZCIsInRpbWVab25lTmFtZSJdO2Z1bmN0aW9uIHd0KGllLHllLEIpe3ZhciBWZT1pZS5sb2NhbGUsc3Q9aWUuZm9ybWF0cyxSdD1pZS5vbkVycm9yLEJ0PWllLnRpbWVab25lLEx0PWFyZ3VtZW50cy5sZW5ndGg+MyYmYXJndW1lbnRzWzNdIT09dm9pZCAwP2FyZ3VtZW50c1szXTp7fSxZdD1MdC5mb3JtYXQsQW49T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LEJ0JiZ7dGltZVpvbmU6QnR9KSxZdCYmWm4oc3QseWUsWXQsUnQpKSxzbj1JdChMdCxKdCxBbik7cmV0dXJuIHllPT09InRpbWUiJiYhc24uaG91ciYmIXNuLm1pbnV0ZSYmIXNuLnNlY29uZCYmKHNuPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxzbikse2hvdXI6Im51bWVyaWMiLG1pbnV0ZToibnVtZXJpYyJ9KSksQihWZSxzbil9ZnVuY3Rpb24gX3QoaWUseWUsQil7dmFyIFZlPWFyZ3VtZW50cy5sZW5ndGg+MyYmYXJndW1lbnRzWzNdIT09dm9pZCAwP2FyZ3VtZW50c1szXTp7fSxzdD10eXBlb2YgQj09InN0cmluZyI/bmV3IERhdGUoQnx8MCk6Qjt0cnl7cmV0dXJuIHd0KGllLCJkYXRlIix5ZSxWZSkuZm9ybWF0KHN0KX1jYXRjaChSdCl7aWUub25FcnJvcihYdCgiRXJyb3IgZm9ybWF0dGluZyBkYXRlLiIsUnQpKX1yZXR1cm4gU3RyaW5nKHN0KX1mdW5jdGlvbiB4bihpZSx5ZSxCKXt2YXIgVmU9YXJndW1lbnRzLmxlbmd0aD4zJiZhcmd1bWVudHNbM10hPT12b2lkIDA/YXJndW1lbnRzWzNdOnt9LHN0PXR5cGVvZiBCPT0ic3RyaW5nIj9uZXcgRGF0ZShCfHwwKTpCO3RyeXtyZXR1cm4gd3QoaWUsInRpbWUiLHllLFZlKS5mb3JtYXQoc3QpfWNhdGNoKFJ0KXtpZS5vbkVycm9yKFh0KCJFcnJvciBmb3JtYXR0aW5nIHRpbWUuIixSdCkpfXJldHVybiBTdHJpbmcoc3QpfWZ1bmN0aW9uIFluKGllLHllLEIpe3ZhciBWZT1hcmd1bWVudHMubGVuZ3RoPjMmJmFyZ3VtZW50c1szXSE9PXZvaWQgMD9hcmd1bWVudHNbM106e30sc3Q9dHlwZW9mIEI9PSJzdHJpbmciP25ldyBEYXRlKEJ8fDApOkI7dHJ5e3JldHVybiB3dChpZSwiZGF0ZSIseWUsVmUpLmZvcm1hdFRvUGFydHMoc3QpfWNhdGNoKFJ0KXtpZS5vbkVycm9yKFh0KCJFcnJvciBmb3JtYXR0aW5nIGRhdGUuIixSdCkpfXJldHVybltdfWZ1bmN0aW9uIFBuKGllLHllLEIpe3ZhciBWZT1hcmd1bWVudHMubGVuZ3RoPjMmJmFyZ3VtZW50c1szXSE9PXZvaWQgMD9hcmd1bWVudHNbM106e30sc3Q9dHlwZW9mIEI9PSJzdHJpbmciP25ldyBEYXRlKEJ8fDApOkI7dHJ5e3JldHVybiB3dChpZSwidGltZSIseWUsVmUpLmZvcm1hdFRvUGFydHMoc3QpfWNhdGNoKFJ0KXtpZS5vbkVycm9yKFh0KCJFcnJvciBmb3JtYXR0aW5nIHRpbWUuIixSdCkpfXJldHVybltdfXZhciBMbj1bImxvY2FsZU1hdGNoZXIiLCJ0eXBlIl07ZnVuY3Rpb24gZXIoaWUseWUsQil7dmFyIFZlPWllLmxvY2FsZSxzdD1pZS5vbkVycm9yLFJ0PWFyZ3VtZW50cy5sZW5ndGg+MyYmYXJndW1lbnRzWzNdIT09dm9pZCAwP2FyZ3VtZW50c1szXTp7fTtJbnRsLlBsdXJhbFJ1bGVzfHxzdChYdChgSW50bC5QbHVyYWxSdWxlcyBpcyBub3QgYXZhaWxhYmxlIGluIHRoaXMgZW52aXJvbm1lbnQuCitUcnkgcG9seWZpbGxpbmcgaXQgdXNpbmcgIkBmb3JtYXRqcy9pbnRsLXBsdXJhbHJ1bGVzIgorYCkpO3ZhciBCdD1JdChSdCxMbik7dHJ5e3JldHVybiB5ZShWZSxCdCkuc2VsZWN0KEIpfWNhdGNoKEx0KXtzdChYdCgiRXJyb3IgZm9ybWF0dGluZyBwbHVyYWwuIixMdCkpfXJldHVybiJvdGhlciJ9dmFyIFFuPWUoMTk2MzIpLHVyPWUubihRbik7ZnVuY3Rpb24gaXIoaWUseWUpe3JldHVybiBPYmplY3Qua2V5cyhpZSkucmVkdWNlKGZ1bmN0aW9uKEIsVmUpe3JldHVybiBCW1ZlXT1PYmplY3QuYXNzaWduKHt0aW1lWm9uZTp5ZX0saWVbVmVdKSxCfSx7fSl9ZnVuY3Rpb24gdm4oaWUseWUpe3ZhciBCPU9iamVjdC5rZXlzKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxpZSkseWUpKTtyZXR1cm4gQi5yZWR1Y2UoZnVuY3Rpb24oVmUsc3Qpe3JldHVybiBWZVtzdF09T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGllW3N0XXx8e30pLHllW3N0XXx8e30pLFZlfSx7fSl9ZnVuY3Rpb24gY3IoaWUseWUpe2lmKCF5ZSlyZXR1cm4gaWU7dmFyIEI9aHQuZm9ybWF0cztyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sQiksaWUpLHtkYXRlOnZuKGlyKEIuZGF0ZSx5ZSksaXIoaWUuZGF0ZXx8e30seWUpKSx0aW1lOnZuKGlyKEIudGltZSx5ZSksaXIoaWUudGltZXx8e30seWUpKX0pfXZhciBXbj1mdW5jdGlvbih5ZSl7cmV0dXJuIGcuY3JlYXRlRWxlbWVudC5hcHBseSh3LFtnLkZyYWdtZW50LG51bGxdLmNvbmNhdCh1cigpKHllKSkpfTtmdW5jdGlvbiB3bihpZSx5ZSl7dmFyIEI9aWUubG9jYWxlLFZlPWllLmZvcm1hdHMsc3Q9aWUubWVzc2FnZXMsUnQ9aWUuZGVmYXVsdExvY2FsZSxCdD1pZS5kZWZhdWx0Rm9ybWF0cyxMdD1pZS5vbkVycm9yLFl0PWllLnRpbWVab25lLEFuPWFyZ3VtZW50cy5sZW5ndGg+MiYmYXJndW1lbnRzWzJdIT09dm9pZCAwP2FyZ3VtZW50c1syXTp7aWQ6IiJ9LHNuPWFyZ3VtZW50cy5sZW5ndGg+MyYmYXJndW1lbnRzWzNdIT09dm9pZCAwP2FyZ3VtZW50c1szXTp7fSxxdD1Bbi5pZCxNbj1Bbi5kZWZhdWx0TWVzc2FnZTt6ZSghIXF0LCJbUmVhY3QgSW50bF0gQW4gYGlkYCBtdXN0IGJlIHByb3ZpZGVkIHRvIGZvcm1hdCBhIG1lc3NhZ2UuIik7dmFyIENyPXN0JiZzdFtTdHJpbmcocXQpXTtWZT1jcihWZSxZdCksQnQ9Y3IoQnQsWXQpO3ZhciBxbj1bXTtpZihDcil0cnl7dmFyIGpyPXllLmdldE1lc3NhZ2VGb3JtYXQoQ3IsQixWZSx7Zm9ybWF0dGVyczp5ZX0pO3FuPWpyLmZvcm1hdEhUTUxNZXNzYWdlKHNuKX1jYXRjaChMcil7THQoWHQoJ0Vycm9yIGZvcm1hdHRpbmcgbWVzc2FnZTogIicuY29uY2F0KHF0LCciIGZvciBsb2NhbGU6ICInKS5jb25jYXQoQiwnIicpKyhNbj8iLCB1c2luZyBkZWZhdWx0IG1lc3NhZ2UgYXMgZmFsbGJhY2suIjoiIiksTHIpKX1lbHNlKCFNbnx8QiYmQi50b0xvd2VyQ2FzZSgpIT09UnQudG9Mb3dlckNhc2UoKSkmJkx0KFh0KCdNaXNzaW5nIG1lc3NhZ2U6ICInLmNvbmNhdChxdCwnIiBmb3IgbG9jYWxlOiAiJykuY29uY2F0KEIsJyInKSsoTW4/IiwgdXNpbmcgZGVmYXVsdCBtZXNzYWdlIGFzIGZhbGxiYWNrLiI6IiIpKSk7aWYoIXFuLmxlbmd0aCYmTW4pdHJ5e3ZhciBDbj15ZS5nZXRNZXNzYWdlRm9ybWF0KE1uLFJ0LEJ0KTtxbj1Dbi5mb3JtYXRIVE1MTWVzc2FnZShzbil9Y2F0Y2goTHIpe0x0KFh0KCdFcnJvciBmb3JtYXR0aW5nIHRoZSBkZWZhdWx0IG1lc3NhZ2UgZm9yOiAiJy5jb25jYXQocXQsJyInKSxMcikpfXJldHVybiBxbi5sZW5ndGg/cW4ubGVuZ3RoPT09MSYmdHlwZW9mIHFuWzBdPT0ic3RyaW5nIj9xblswXXx8TW58fFN0cmluZyhxdCk6V24ocW4pOihMdChYdCgnQ2Fubm90IGZvcm1hdCBtZXNzYWdlOiAiJy5jb25jYXQocXQsJyIsICcpKyJ1c2luZyBtZXNzYWdlICIuY29uY2F0KENyfHxNbj8ic291cmNlIjoiaWQiLCIgYXMgZmFsbGJhY2suIikpKSx0eXBlb2YgQ3I9PSJzdHJpbmciP0NyfHxNbnx8U3RyaW5nKHF0KTpNbnx8U3RyaW5nKHF0KSl9ZnVuY3Rpb24gQ3QoaWUseWUpe3ZhciBCPWFyZ3VtZW50cy5sZW5ndGg+MiYmYXJndW1lbnRzWzJdIT09dm9pZCAwP2FyZ3VtZW50c1syXTp7aWQ6IiJ9LFZlPWFyZ3VtZW50cy5sZW5ndGg+MyYmYXJndW1lbnRzWzNdIT09dm9pZCAwP2FyZ3VtZW50c1szXTp7fSxzdD1PYmplY3Qua2V5cyhWZSkucmVkdWNlKGZ1bmN0aW9uKFJ0LEJ0KXt2YXIgTHQ9VmVbQnRdO3JldHVybiBSdFtCdF09dHlwZW9mIEx0PT0ic3RyaW5nIj9idChMdCk6THQsUnR9LHt9KTtyZXR1cm4gd24oaWUseWUsQixzdCl9dmFyIFp0PWUoMzgxMzgpLGFuPWUubihadCksRHQ9ZSg1MjY3Nyksa3Q9ZS5uKER0KSx0bj1bImxvY2FsZU1hdGNoZXIiLCJ0eXBlIiwic3R5bGUiXSxtbj1EYXRlLm5vdygpO2Z1bmN0aW9uIEtuKGllKXtyZXR1cm4iIi5jb25jYXQobW4sIl8iKS5jb25jYXQoaWUsIl8iKS5jb25jYXQobW4pfWZ1bmN0aW9uIEpuKGllLHllLEIpe3ZhciBWZT1pZS5sb2NhbGUsc3Q9aWUub25FcnJvcixSdD1hcmd1bWVudHMubGVuZ3RoPjMmJmFyZ3VtZW50c1szXSE9PXZvaWQgMD9hcmd1bWVudHNbM106e30sQnQ9SW50bC5MaXN0Rm9ybWF0O0J0fHxzdChYdChgSW50bC5MaXN0Rm9ybWF0IGlzIG5vdCBhdmFpbGFibGUgaW4gdGhpcyBlbnZpcm9ubWVudC4KK1RyeSBwb2x5ZmlsbGluZyBpdCB1c2luZyAiQGZvcm1hdGpzL2ludGwtbGlzdGZvcm1hdCIKK2ApKTt2YXIgTHQ9SXQoUnQsdG4pO3RyeXt2YXIgWXQ9e30sQW49Qi5tYXAoZnVuY3Rpb24ocXQsTW4pe2lmKGt0KCkocXQpPT09Im9iamVjdCIpe3ZhciBDcj1LbihNbik7cmV0dXJuIFl0W0NyXT1xdCxDcn1yZXR1cm4gU3RyaW5nKHF0KX0pO2lmKCFPYmplY3Qua2V5cyhZdCkubGVuZ3RoKXJldHVybiB5ZShWZSxMdCkuZm9ybWF0KEFuKTt2YXIgc249eWUoVmUsTHQpLmZvcm1hdFRvUGFydHMoQW4pO3JldHVybiBzbi5yZWR1Y2UoZnVuY3Rpb24ocXQsTW4pe3ZhciBDcj1Nbi52YWx1ZTtyZXR1cm4gWXRbQ3JdP3F0LnB1c2goWXRbQ3JdKTp0eXBlb2YgcXRbcXQubGVuZ3RoLTFdPT0ic3RyaW5nIj9xdFtxdC5sZW5ndGgtMV0rPUNyOnF0LnB1c2goQ3IpLHF0fSxbXSl9Y2F0Y2gocXQpe3N0KFh0KCJFcnJvciBmb3JtYXR0aW5nIGxpc3QuIixxdCkpfXJldHVybiBCfXZhciBYbj1bImxvY2FsZU1hdGNoZXIiLCJzdHlsZSIsInR5cGUiLCJmYWxsYmFjayJdO2Z1bmN0aW9uIGZyKGllLHllLEIpe3ZhciBWZT1pZS5sb2NhbGUsc3Q9aWUub25FcnJvcixSdD1hcmd1bWVudHMubGVuZ3RoPjMmJmFyZ3VtZW50c1szXSE9PXZvaWQgMD9hcmd1bWVudHNbM106e30sQnQ9SW50bC5EaXNwbGF5TmFtZXM7QnR8fHN0KFh0KGBJbnRsLkRpc3BsYXlOYW1lcyBpcyBub3QgYXZhaWxhYmxlIGluIHRoaXMgZW52aXJvbm1lbnQuCitUcnkgcG9seWZpbGxpbmcgaXQgdXNpbmcgIkBmb3JtYXRqcy9pbnRsLWRpc3BsYXluYW1lcyIKK2ApKTt2YXIgTHQ9SXQoUnQsWG4pO3RyeXtyZXR1cm4geWUoVmUsTHQpLm9mKEIpfWNhdGNoKFl0KXtzdChYdCgiRXJyb3IgZm9ybWF0dGluZyBkaXNwbGF5IG5hbWUuIixZdCkpfX12YXIgcnI9YW4oKXx8WnQ7ZnVuY3Rpb24gaHIoaWUpe3JldHVybntsb2NhbGU6aWUubG9jYWxlLHRpbWVab25lOmllLnRpbWVab25lLGZvcm1hdHM6aWUuZm9ybWF0cyx0ZXh0Q29tcG9uZW50OmllLnRleHRDb21wb25lbnQsbWVzc2FnZXM6aWUubWVzc2FnZXMsZGVmYXVsdExvY2FsZTppZS5kZWZhdWx0TG9jYWxlLGRlZmF1bHRGb3JtYXRzOmllLmRlZmF1bHRGb3JtYXRzLG9uRXJyb3I6aWUub25FcnJvcn19ZnVuY3Rpb24gRm4oaWUseWUpe3ZhciBCPU50KHllKSxWZT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbm4pLGllKSxzdD1WZS5sb2NhbGUsUnQ9VmUuZGVmYXVsdExvY2FsZSxCdD1WZS5vbkVycm9yO3JldHVybiBzdD8hSW50bC5OdW1iZXJGb3JtYXQuc3VwcG9ydGVkTG9jYWxlc09mKHN0KS5sZW5ndGgmJkJ0P0J0KFh0KCdNaXNzaW5nIGxvY2FsZSBkYXRhIGZvciBsb2NhbGU6ICInLmNvbmNhdChzdCwnIiBpbiBJbnRsLk51bWJlckZvcm1hdC4gVXNpbmcgZGVmYXVsdCBsb2NhbGU6ICInKS5jb25jYXQoUnQsJyIgYXMgZmFsbGJhY2suIFNlZSBodHRwczovL2dpdGh1Yi5jb20vZm9ybWF0anMvcmVhY3QtaW50bC9ibG9iL21hc3Rlci9kb2NzL0dldHRpbmctU3RhcnRlZC5tZCNydW50aW1lLXJlcXVpcmVtZW50cyBmb3IgbW9yZSBkZXRhaWxzJykpKTohSW50bC5EYXRlVGltZUZvcm1hdC5zdXBwb3J0ZWRMb2NhbGVzT2Yoc3QpLmxlbmd0aCYmQnQmJkJ0KFh0KCdNaXNzaW5nIGxvY2FsZSBkYXRhIGZvciBsb2NhbGU6ICInLmNvbmNhdChzdCwnIiBpbiBJbnRsLkRhdGVUaW1lRm9ybWF0LiBVc2luZyBkZWZhdWx0IGxvY2FsZTogIicpLmNvbmNhdChSdCwnIiBhcyBmYWxsYmFjay4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9mb3JtYXRqcy9yZWFjdC1pbnRsL2Jsb2IvbWFzdGVyL2RvY3MvR2V0dGluZy1TdGFydGVkLm1kI3J1bnRpbWUtcmVxdWlyZW1lbnRzIGZvciBtb3JlIGRldGFpbHMnKSkpOihCdCYmQnQoWHQoJyJsb2NhbGUiIHdhcyBub3QgY29uZmlndXJlZCwgdXNpbmcgIicuY29uY2F0KFJ0LCciIGFzIGZhbGxiYWNrLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2Zvcm1hdGpzL3JlYWN0LWludGwvYmxvYi9tYXN0ZXIvZG9jcy9BUEkubWQjaW50bHNoYXBlIGZvciBtb3JlIGRldGFpbHMnKSkpLFZlLmxvY2FsZT1WZS5kZWZhdWx0TG9jYWxlfHwiZW4iKSxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sVmUpLHtmb3JtYXR0ZXJzOkIsZm9ybWF0TnVtYmVyOkJuLmJpbmQobnVsbCxWZSxCLmdldE51bWJlckZvcm1hdCksZm9ybWF0TnVtYmVyVG9QYXJ0czpWbi5iaW5kKG51bGwsVmUsQi5nZXROdW1iZXJGb3JtYXQpLGZvcm1hdFJlbGF0aXZlVGltZTpldC5iaW5kKG51bGwsVmUsQi5nZXRSZWxhdGl2ZVRpbWVGb3JtYXQpLGZvcm1hdERhdGU6X3QuYmluZChudWxsLFZlLEIuZ2V0RGF0ZVRpbWVGb3JtYXQpLGZvcm1hdERhdGVUb1BhcnRzOlluLmJpbmQobnVsbCxWZSxCLmdldERhdGVUaW1lRm9ybWF0KSxmb3JtYXRUaW1lOnhuLmJpbmQobnVsbCxWZSxCLmdldERhdGVUaW1lRm9ybWF0KSxmb3JtYXRUaW1lVG9QYXJ0czpQbi5iaW5kKG51bGwsVmUsQi5nZXREYXRlVGltZUZvcm1hdCksZm9ybWF0UGx1cmFsOmVyLmJpbmQobnVsbCxWZSxCLmdldFBsdXJhbFJ1bGVzKSxmb3JtYXRNZXNzYWdlOnduLmJpbmQobnVsbCxWZSxCKSxmb3JtYXRIVE1MTWVzc2FnZTpDdC5iaW5kKG51bGwsVmUsQiksZm9ybWF0TGlzdDpKbi5iaW5kKG51bGwsVmUsQi5nZXRMaXN0Rm9ybWF0KSxmb3JtYXREaXNwbGF5TmFtZTpmci5iaW5kKG51bGwsVmUsQi5nZXREaXNwbGF5TmFtZXMpfSl9dmFyIGFyPWZ1bmN0aW9uKGllKXtkKCkoQixpZSk7dmFyIHllPUMoKShCKTtmdW5jdGlvbiBCKCl7dmFyIFZlO3JldHVybiBhKCkodGhpcyxCKSxWZT15ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyksVmUuY2FjaGU9b24oKSxWZS5zdGF0ZT17Y2FjaGU6VmUuY2FjaGUsaW50bDpGbihocihWZS5wcm9wcyksVmUuY2FjaGUpLHByZXZDb25maWc6aHIoVmUucHJvcHMpfSxWZX1yZXR1cm4gYygpKEIsW3trZXk6InJlbmRlciIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gVHQodGhpcy5zdGF0ZS5pbnRsKSxnLmNyZWF0ZUVsZW1lbnQoeix7dmFsdWU6dGhpcy5zdGF0ZS5pbnRsfSx0aGlzLnByb3BzLmNoaWxkcmVuKX19XSxbe2tleToiZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzIix2YWx1ZTpmdW5jdGlvbihzdCxSdCl7dmFyIEJ0PVJ0LnByZXZDb25maWcsTHQ9UnQuY2FjaGUsWXQ9aHIoc3QpO3JldHVybiBycihCdCxZdCk/bnVsbDp7aW50bDpGbihZdCxMdCkscHJldkNvbmZpZzpZdH19fV0pLEJ9KGcuUHVyZUNvbXBvbmVudCk7YXIuZGlzcGxheU5hbWU9IkludGxQcm92aWRlciIsYXIuZGVmYXVsdFByb3BzPW5uO3ZhciBscj1lKDIwNzYxKSwkbj1lKDQ4MzcwKSxzcj1lLm4oJG4pLEZyPWUoNDI0NzMpLFplPWUubihGciksSGU9ZnVuY3Rpb24oaWUseWUpe3ZhciBCPXt9O2Zvcih2YXIgVmUgaW4gaWUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGllLFZlKSYmeWUuaW5kZXhPZihWZSk8MCYmKEJbVmVdPWllW1ZlXSk7aWYoaWUhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgc3Q9MCxWZT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGllKTtzdDxWZS5sZW5ndGg7c3QrKyl5ZS5pbmRleE9mKFZlW3N0XSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGllLFZlW3N0XSkmJihCW1ZlW3N0XV09aWVbVmVbc3RdXSk7cmV0dXJuIEJ9LG50PWFuKCl8fFp0LHJ0PWZ1bmN0aW9uKHllLEIpe3JldHVybiB3bihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbm4pLHtsb2NhbGU6ImVuIn0pLE50KCkseWUsQil9LHZ0PWZ1bmN0aW9uKGllKXtkKCkoQixpZSk7dmFyIHllPUMoKShCKTtmdW5jdGlvbiBCKCl7cmV0dXJuIGEoKSh0aGlzLEIpLHllLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gYygpKEIsW3trZXk6InNob3VsZENvbXBvbmVudFVwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24oc3Qpe3ZhciBSdD10aGlzLnByb3BzLEJ0PVJ0LnZhbHVlcyxMdD1IZShSdCxbInZhbHVlcyJdKSxZdD1zdC52YWx1ZXMsQW49SGUoc3QsWyJ2YWx1ZXMiXSk7cmV0dXJuIW50KFl0LEJ0KXx8IW50KEx0LEFuKX19LHtrZXk6InJlbmRlciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgc3Q9dGhpcztyZXR1cm4gZy5jcmVhdGVFbGVtZW50KEcuQ29uc3VtZXIsbnVsbCxmdW5jdGlvbihSdCl7c3QucHJvcHMuZGVmYXVsdE1lc3NhZ2V8fFR0KFJ0KTt2YXIgQnQ9UnR8fHt9LEx0PUJ0LmZvcm1hdE1lc3NhZ2UsWXQ9THQ9PT12b2lkIDA/cnQ6THQsQW49QnQudGV4dENvbXBvbmVudCxzbj1Bbj09PXZvaWQgMD9nLkZyYWdtZW50OkFuLHF0PXN0LnByb3BzLE1uPXF0LmlkLENyPXF0LmRlc2NyaXB0aW9uLHFuPXF0LmRlZmF1bHRNZXNzYWdlLGpyPXF0LnZhbHVlcyxDbj1xdC5jaGlsZHJlbixMcj1xdC50YWdOYW1lLERyPUxyPT09dm9pZCAwP3NuOkxyLE5yPXtpZDpNbixkZXNjcmlwdGlvbjpDcixkZWZhdWx0TWVzc2FnZTpxbn0sdGE9WXQoTnIsanIpO3JldHVybiBBcnJheS5pc0FycmF5KHRhKXx8KHRhPVt0YV0pLHR5cGVvZiBDbj09ImZ1bmN0aW9uIj9Dbi5hcHBseSh2b2lkIDAsdXIoKSh0YSkpOkRyP2cuY3JlYXRlRWxlbWVudC5hcHBseSh3LFtEcixudWxsXS5jb25jYXQodXIoKSh0YSkpKTp0YX0pfX1dKSxCfShnLkNvbXBvbmVudCk7dnQuZGlzcGxheU5hbWU9IkZvcm1hdHRlZE1lc3NhZ2UiLHZ0LmRlZmF1bHRQcm9wcz17dmFsdWVzOnt9fTt2YXIgVnQ9dnQ7ZnVuY3Rpb24gZW4oKXt2YXIgaWU9KDAsZy51c2VDb250ZXh0KShHKTtyZXR1cm4gVHQoaWUpLGllfXZhciBSbj1lKDI0NDU3KSxqbj17ImFwcC5kb2NzLmNvbXBvbmVudHMuaWNvbi5zZWFyY2gucGxhY2Vob2xkZXIiOiJTZWFyY2ggaWNvbnMgaGVyZSwgY2xpY2sgaWNvbiB0byBjb3B5IGNvZGUiLCJhcHAuZG9jcy5jb21wb25lbnRzLmljb24ub3V0bGluZWQiOiJPdXRsaW5lZCIsImFwcC5kb2NzLmNvbXBvbmVudHMuaWNvbi5maWxsZWQiOiJGaWxsZWQiLCJhcHAuZG9jcy5jb21wb25lbnRzLmljb24udHdvLXRvbmUiOiJUd28gVG9uZSIsImFwcC5kb2NzLmNvbXBvbmVudHMuaWNvbi5jYXRlZ29yeS5kaXJlY3Rpb24iOiJEaXJlY3Rpb25hbCBJY29ucyIsImFwcC5kb2NzLmNvbXBvbmVudHMuaWNvbi5jYXRlZ29yeS5zdWdnZXN0aW9uIjoiU3VnZ2VzdGVkIEljb25zIiwiYXBwLmRvY3MuY29tcG9uZW50cy5pY29uLmNhdGVnb3J5LmVkaXRvciI6IkVkaXRvciBJY29ucyIsImFwcC5kb2NzLmNvbXBvbmVudHMuaWNvbi5jYXRlZ29yeS5kYXRhIjoiRGF0YSBJY29ucyIsImFwcC5kb2NzLmNvbXBvbmVudHMuaWNvbi5jYXRlZ29yeS5vdGhlciI6IkFwcGxpY2F0aW9uIEljb25zIiwiYXBwLmRvY3MuY29tcG9uZW50cy5pY29uLmNhdGVnb3J5LmxvZ28iOiJCcmFuZCBhbmQgTG9nb3MiLCJhcHAuZG9jcy5jb21wb25lbnRzLmljb24ucGljLXNlYXJjaGVyLmludHJvIjoiQUkgU2VhcmNoIGJ5IGltYWdlIGlzIG9ubGluZSwgeW91IGFyZSB3ZWxjb21lIHRvIHVzZSBpdCEgXHV7MUYzODl9IiwiYXBwLmRvY3MuY29tcG9uZW50cy5pY29uLnBpYy1zZWFyY2hlci50aXRsZSI6IlNlYXJjaCBieSBpbWFnZSIsImFwcC5kb2NzLmNvbXBvbmVudHMuaWNvbi5waWMtc2VhcmNoZXIudXBsb2FkLXRleHQiOiJDbGljaywgZHJhZywgb3IgcGFzdGUgZmlsZSB0byB0aGlzIGFyZWEgdG8gdXBsb2FkIiwiYXBwLmRvY3MuY29tcG9uZW50cy5pY29uLnBpYy1zZWFyY2hlci51cGxvYWQtaGludCI6IldlIHdpbGwgZmluZCB0aGUgYmVzdCBtYXRjaGluZyBpY29uIGJhc2VkIG9uIHRoZSBpbWFnZSBwcm92aWRlZCIsImFwcC5kb2NzLmNvbXBvbmVudHMuaWNvbi5waWMtc2VhcmNoZXIuc2VydmVyLWVycm9yIjoiUHJlZGljdCBzZXJ2aWNlIGlzIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlIiwiYXBwLmRvY3MuY29tcG9uZW50cy5pY29uLnBpYy1zZWFyY2hlci5tYXRjaGluZyI6Ik1hdGNoaW5nLi4uIiwiYXBwLmRvY3MuY29tcG9uZW50cy5pY29uLnBpYy1zZWFyY2hlci5tb2RlbGxvYWRpbmciOiJNb2RlbCBpcyBsb2FkaW5nLi4uIiwiYXBwLmRvY3MuY29tcG9uZW50cy5pY29uLnBpYy1zZWFyY2hlci5yZXN1bHQtdGlwIjoiTWF0Y2hlZCB0aGUgZm9sbG93aW5nIGljb25zIGZvciB5b3U6IiwiYXBwLmRvY3MuY29tcG9uZW50cy5pY29uLnBpYy1zZWFyY2hlci50aC1pY29uIjoiSWNvbiIsImFwcC5kb2NzLmNvbXBvbmVudHMuaWNvbi5waWMtc2VhcmNoZXIudGgtc2NvcmUiOiJQcm9iYWJpbGl0eSJ9LGJuPXsiY29tcG9uZW50LnRhZ1NlbGVjdC5leHBhbmQiOiJFeHBhbmQiLCJjb21wb25lbnQudGFnU2VsZWN0LmNvbGxhcHNlIjoiQ29sbGFwc2UiLCJjb21wb25lbnQudGFnU2VsZWN0LmFsbCI6IkFsbCJ9LEhuPXsiY29tcG9uZW50Lmdsb2JhbEhlYWRlci5zZWFyY2giOiJTZWFyY2giLCJjb21wb25lbnQuZ2xvYmFsSGVhZGVyLnNlYXJjaC5leGFtcGxlMSI6IlNlYXJjaCBleGFtcGxlIDEiLCJjb21wb25lbnQuZ2xvYmFsSGVhZGVyLnNlYXJjaC5leGFtcGxlMiI6IlNlYXJjaCBleGFtcGxlIDIiLCJjb21wb25lbnQuZ2xvYmFsSGVhZGVyLnNlYXJjaC5leGFtcGxlMyI6IlNlYXJjaCBleGFtcGxlIDMiLCJjb21wb25lbnQuZ2xvYmFsSGVhZGVyLmhlbHAiOiJIZWxwIiwiY29tcG9uZW50Lmdsb2JhbEhlYWRlci5ub3RpZmljYXRpb24iOiJOb3RpZmljYXRpb24iLCJjb21wb25lbnQuZ2xvYmFsSGVhZGVyLm5vdGlmaWNhdGlvbi5lbXB0eSI6IllvdSBoYXZlIHZpZXdlZCBhbGwgbm90aWZpY2F0aW9ucy4iLCJjb21wb25lbnQuZ2xvYmFsSGVhZGVyLm1lc3NhZ2UiOiJNZXNzYWdlIiwiY29tcG9uZW50Lmdsb2JhbEhlYWRlci5tZXNzYWdlLmVtcHR5IjoiWW91IGhhdmUgdmlld2VkIGFsbCBtZXNzc2FnZXMuIiwiY29tcG9uZW50Lmdsb2JhbEhlYWRlci5ldmVudCI6IkV2ZW50IiwiY29tcG9uZW50Lmdsb2JhbEhlYWRlci5ldmVudC5lbXB0eSI6IllvdSBoYXZlIHZpZXdlZCBhbGwgZXZlbnRzLiIsImNvbXBvbmVudC5ub3RpY2VJY29uLmNsZWFyIjoiQ2xlYXIiLCJjb21wb25lbnQubm90aWNlSWNvbi5jbGVhcmVkIjoiQ2xlYXJlZCIsImNvbXBvbmVudC5ub3RpY2VJY29uLmVtcHR5IjoiTm8gbm90aWZpY2F0aW9ucyIsImNvbXBvbmVudC5ub3RpY2VJY29uLnZpZXctbW9yZSI6IlZpZXcgbW9yZSJ9LEd0PXsibWVudS53ZWxjb21lIjoiV2VsY29tZSIsIm1lbnUubW9yZS1ibG9ja3MiOiJNb3JlIEJsb2NrcyIsIm1lbnUuaG9tZSI6IkhvbWUiLCJtZW51LmFkbWluIjoiQWRtaW4iLCJtZW51LmFkbWluLnN1Yi1wYWdlIjoiU3ViLVBhZ2UiLCJtZW51LmxvZ2luIjoiTG9naW4iLCJtZW51LnJlZ2lzdGVyIjoiUmVnaXN0ZXIiLCJtZW51LnJlZ2lzdGVyLXJlc3VsdCI6IlJlZ2lzdGVyIFJlc3VsdCIsIm1lbnUuZGFzaGJvYXJkIjoiRGFzaGJvYXJkIiwibWVudS5kYXNoYm9hcmQuYW5hbHlzaXMiOiJBbmFseXNpcyIsIm1lbnUuZGFzaGJvYXJkLm1vbml0b3IiOiJNb25pdG9yIiwibWVudS5kYXNoYm9hcmQud29ya3BsYWNlIjoiV29ya3BsYWNlIiwibWVudS5leGNlcHRpb24uNDAzIjoiNDAzIiwibWVudS5leGNlcHRpb24uNDA0IjoiNDA0IiwibWVudS5leGNlcHRpb24uNTAwIjoiNTAwIiwibWVudS5mb3JtIjoiRm9ybSIsIm1lbnUuZm9ybS5iYXNpYy1mb3JtIjoiQmFzaWMgRm9ybSIsIm1lbnUuZm9ybS5zdGVwLWZvcm0iOiJTdGVwIEZvcm0iLCJtZW51LmZvcm0uc3RlcC1mb3JtLmluZm8iOiJTdGVwIEZvcm0od3JpdGUgdHJhbnNmZXIgaW5mb3JtYXRpb24pIiwibWVudS5mb3JtLnN0ZXAtZm9ybS5jb25maXJtIjoiU3RlcCBGb3JtKGNvbmZpcm0gdHJhbnNmZXIgaW5mb3JtYXRpb24pIiwibWVudS5mb3JtLnN0ZXAtZm9ybS5yZXN1bHQiOiJTdGVwIEZvcm0oZmluaXNoZWQpIiwibWVudS5mb3JtLmFkdmFuY2VkLWZvcm0iOiJBZHZhbmNlZCBGb3JtIiwibWVudS5saXN0IjoiTGlzdCIsIm1lbnUubGlzdC50YWJsZS1saXN0IjoiU2VhcmNoIFRhYmxlIiwibWVudS5saXN0LmJhc2ljLWxpc3QiOiJCYXNpYyBMaXN0IiwibWVudS5saXN0LmNhcmQtbGlzdCI6IkNhcmQgTGlzdCIsIm1lbnUubGlzdC5zZWFyY2gtbGlzdCI6IlNlYXJjaCBMaXN0IiwibWVudS5saXN0LnNlYXJjaC1saXN0LmFydGljbGVzIjoiU2VhcmNoIExpc3QoYXJ0aWNsZXMpIiwibWVudS5saXN0LnNlYXJjaC1saXN0LnByb2plY3RzIjoiU2VhcmNoIExpc3QocHJvamVjdHMpIiwibWVudS5saXN0LnNlYXJjaC1saXN0LmFwcGxpY2F0aW9ucyI6IlNlYXJjaCBMaXN0KGFwcGxpY2F0aW9ucykiLCJtZW51LnByb2ZpbGUiOiJQcm9maWxlIiwibWVudS5wcm9maWxlLmJhc2ljIjoiQmFzaWMgUHJvZmlsZSIsIm1lbnUucHJvZmlsZS5hZHZhbmNlZCI6IkFkdmFuY2VkIFByb2ZpbGUiLCJtZW51LnJlc3VsdCI6IlJlc3VsdCIsIm1lbnUucmVzdWx0LnN1Y2Nlc3MiOiJTdWNjZXNzIiwibWVudS5yZXN1bHQuZmFpbCI6IkZhaWwiLCJtZW51LmV4Y2VwdGlvbiI6IkV4Y2VwdGlvbiIsIm1lbnUuZXhjZXB0aW9uLm5vdC1wZXJtaXNzaW9uIjoiNDAzIiwibWVudS5leGNlcHRpb24ubm90LWZpbmQiOiI0MDQiLCJtZW51LmV4Y2VwdGlvbi5zZXJ2ZXItZXJyb3IiOiI1MDAiLCJtZW51LmV4Y2VwdGlvbi50cmlnZ2VyIjoiVHJpZ2dlciIsIm1lbnUuYWNjb3VudCI6IkFjY291bnQiLCJtZW51LmFjY291bnQuY2VudGVyIjoiQWNjb3VudCBDZW50ZXIiLCJtZW51LmFjY291bnQuc2V0dGluZ3MiOiJBY2NvdW50IFNldHRpbmdzIiwibWVudS5hY2NvdW50LnRyaWdnZXIiOiJUcmlnZ2VyIEVycm9yIiwibWVudS5hY2NvdW50LmxvZ291dCI6IkxvZ291dCIsIm1lbnUuZWRpdG9yIjoiR3JhcGhpYyBFZGl0b3IiLCJtZW51LmVkaXRvci5mbG93IjoiRmxvdyBFZGl0b3IiLCJtZW51LmVkaXRvci5taW5kIjoiTWluZCBFZGl0b3IiLCJtZW51LmVkaXRvci5rb25pIjoiS29uaSBFZGl0b3IifSxTbj17InBhZ2VzLmxheW91dHMudXNlckxheW91dC50aXRsZSI6IkFudCBEZXNpZ24gaXMgdGhlIG1vc3QgaW5mbHVlbnRpYWwgd2ViIGRlc2lnbiBzcGVjaWZpY2F0aW9uIGluIFhpaHUgZGlzdHJpY3QiLCJwYWdlcy5sb2dpbi5hY2NvdW50TG9naW4udGFiIjoiQWNjb3VudCBMb2dpbiIsInBhZ2VzLmxvZ2luLmFjY291bnRMb2dpbi5lcnJvck1lc3NhZ2UiOiJJbmNvcnJlY3QgdXNlcm5hbWUvcGFzc3dvcmQoYWRtaW4vYWRtaW4xMjMpIiwicGFnZXMubG9naW4uZmFpbHVyZSI6IkxvZ2luIGZhaWxlZCwgcGxlYXNlIHRyeSBhZ2FpbiEiLCJwYWdlcy5sb2dpbi5zdWNjZXNzIjoiTG9naW4gc3VjY2Vzc2Z1bCEiLCJwYWdlcy5sb2dpbi51c2VybmFtZS5wbGFjZWhvbGRlciI6IlVzZXJuYW1lOiBhZG1pbiIsInBhZ2VzLmxvZ2luLnVzZXJuYW1lLnJlcXVpcmVkIjoiUGxlYXNlIGlucHV0IHlvdXIgdXNlcm5hbWUhIiwicGFnZXMubG9naW4ucGFzc3dvcmQucGxhY2Vob2xkZXIiOiJQYXNzd29yZDogYWRtaW4xMjMiLCJwYWdlcy5sb2dpbi5wYXNzd29yZC5yZXF1aXJlZCI6IlBsZWFzZSBpbnB1dCB5b3VyIHBhc3N3b3JkISIsInBhZ2VzLmxvZ2luLnBob25lTG9naW4udGFiIjoiUGhvbmUgTG9naW4iLCJwYWdlcy5sb2dpbi5waG9uZUxvZ2luLmVycm9yTWVzc2FnZSI6IlZlcmlmaWNhdGlvbiBDb2RlIEVycm9yIiwicGFnZXMubG9naW4ucGhvbmVOdW1iZXIucGxhY2Vob2xkZXIiOiJQaG9uZSBOdW1iZXIiLCJwYWdlcy5sb2dpbi5waG9uZU51bWJlci5yZXF1aXJlZCI6IlBsZWFzZSBpbnB1dCB5b3VyIHBob25lIG51bWJlciEiLCJwYWdlcy5sb2dpbi5waG9uZU51bWJlci5pbnZhbGlkIjoiUGhvbmUgbnVtYmVyIGlzIGludmFsaWQhIiwicGFnZXMubG9naW4uY2FwdGNoYS5wbGFjZWhvbGRlciI6IlZlcmlmaWNhdGlvbiBDb2RlIiwicGFnZXMubG9naW4uY2FwdGNoYS5yZXF1aXJlZCI6IlBsZWFzZSBpbnB1dCB2ZXJpZmljYXRpb24gY29kZSEiLCJwYWdlcy5sb2dpbi5waG9uZUxvZ2luLmdldFZlcmlmaWNhdGlvbkNvZGUiOiJHZXQgQ29kZSIsInBhZ2VzLmdldENhcHRjaGFTZWNvbmRUZXh0Ijoic2VjKHMpIiwicGFnZXMubG9naW4ucmVtZW1iZXJNZSI6IlJlbWVtYmVyIG1lIiwicGFnZXMubG9naW4uZm9yZ290UGFzc3dvcmQiOiJGb3Jnb3QgUGFzc3dvcmQgPyIsInBhZ2VzLmxvZ2luLnN1Ym1pdCI6IkxvZ2luIiwicGFnZXMubG9naW4ubG9naW5XaXRoIjoiTG9naW4gd2l0aCA6IiwicGFnZXMubG9naW4ucmVnaXN0ZXJBY2NvdW50IjoiUmVnaXN0ZXIgQWNjb3VudCIsInBhZ2VzLndlbGNvbWUubGluayI6IldlbGNvbWUiLCJwYWdlcy53ZWxjb21lLmFsZXJ0TWVzc2FnZSI6IkZhc3RlciBhbmQgc3Ryb25nZXIgaGVhdnktZHV0eSBjb21wb25lbnRzIGhhdmUgYmVlbiByZWxlYXNlZC4iLCJwYWdlcy5hZG1pbi5zdWJQYWdlLnRpdGxlIjoiVGhpcyBwYWdlIGNhbiBvbmx5IGJlIHZpZXdlZCBieSBBZG1pbiIsInBhZ2VzLmFkbWluLnN1YlBhZ2UuYWxlcnRNZXNzYWdlIjoiVW1pIHVpIGlzIG5vdyByZWxlYXNlZCwgd2VsY29tZSB0byB1c2UgbnBtIHJ1biB1aSB0byBzdGFydCB0aGUgZXhwZXJpZW5jZS4iLCJwYWdlcy5zZWFyY2hUYWJsZS5jcmVhdGVGb3JtLm5ld1J1bGUiOiJOZXcgUnVsZSIsInBhZ2VzLnNlYXJjaFRhYmxlLnVwZGF0ZUZvcm0ucnVsZUNvbmZpZyI6IlJ1bGUgY29uZmlndXJhdGlvbiIsInBhZ2VzLnNlYXJjaFRhYmxlLnVwZGF0ZUZvcm0uYmFzaWNDb25maWciOiJCYXNpYyBJbmZvcm1hdGlvbiIsInBhZ2VzLnNlYXJjaFRhYmxlLnVwZGF0ZUZvcm0ucnVsZU5hbWUubmFtZUxhYmVsIjoiUnVsZSBOYW1lIiwicGFnZXMuc2VhcmNoVGFibGUudXBkYXRlRm9ybS5ydWxlTmFtZS5uYW1lUnVsZXMiOiJQbGVhc2UgZW50ZXIgdGhlIHJ1bGUgbmFtZSEiLCJwYWdlcy5zZWFyY2hUYWJsZS51cGRhdGVGb3JtLnJ1bGVEZXNjLmRlc2NMYWJlbCI6IlJ1bGUgRGVzY3JpcHRpb24iLCJwYWdlcy5zZWFyY2hUYWJsZS51cGRhdGVGb3JtLnJ1bGVEZXNjLmRlc2NQbGFjZWhvbGRlciI6IlBsZWFzZSBlbnRlciBhdCBsZWFzdCBmaXZlIGNoYXJhY3RlcnMiLCJwYWdlcy5zZWFyY2hUYWJsZS51cGRhdGVGb3JtLnJ1bGVEZXNjLmRlc2NSdWxlcyI6IlBsZWFzZSBlbnRlciBhIHJ1bGUgZGVzY3JpcHRpb24gb2YgYXQgbGVhc3QgZml2ZSBjaGFyYWN0ZXJzISIsInBhZ2VzLnNlYXJjaFRhYmxlLnVwZGF0ZUZvcm0ucnVsZVByb3BzLnRpdGxlIjoiQ29uZmlndXJlIFByb3BlcnRpZXMiLCJwYWdlcy5zZWFyY2hUYWJsZS51cGRhdGVGb3JtLm9iamVjdCI6Ik1vbml0b3JpbmcgT2JqZWN0IiwicGFnZXMuc2VhcmNoVGFibGUudXBkYXRlRm9ybS5ydWxlUHJvcHMudGVtcGxhdGVMYWJlbCI6IlJ1bGUgVGVtcGxhdGUiLCJwYWdlcy5zZWFyY2hUYWJsZS51cGRhdGVGb3JtLnJ1bGVQcm9wcy50eXBlTGFiZWwiOiJSdWxlIFR5cGUiLCJwYWdlcy5zZWFyY2hUYWJsZS51cGRhdGVGb3JtLnNjaGVkdWxpbmdQZXJpb2QudGl0bGUiOiJTZXQgU2NoZWR1bGluZyBQZXJpb2QiLCJwYWdlcy5zZWFyY2hUYWJsZS51cGRhdGVGb3JtLnNjaGVkdWxpbmdQZXJpb2QudGltZUxhYmVsIjoiU3RhcnRpbmcgVGltZSIsInBhZ2VzLnNlYXJjaFRhYmxlLnVwZGF0ZUZvcm0uc2NoZWR1bGluZ1BlcmlvZC50aW1lUnVsZXMiOiJQbGVhc2UgY2hvb3NlIGEgc3RhcnQgdGltZSEiLCJwYWdlcy5zZWFyY2hUYWJsZS50aXRsZURlc2MiOiJEZXNjcmlwdGlvbiIsInBhZ2VzLnNlYXJjaFRhYmxlLnJ1bGVOYW1lIjoiUnVsZSBuYW1lIGlzIHJlcXVpcmVkIiwicGFnZXMuc2VhcmNoVGFibGUudGl0bGVDYWxsTm8iOiJOdW1iZXIgb2YgU2VydmljZSBDYWxscyIsInBhZ2VzLnNlYXJjaFRhYmxlLnRpdGxlU3RhdHVzIjoiU3RhdHVzIiwicGFnZXMuc2VhcmNoVGFibGUubmFtZVN0YXR1cy5kZWZhdWx0IjoiZGVmYXVsdCIsInBhZ2VzLnNlYXJjaFRhYmxlLm5hbWVTdGF0dXMucnVubmluZyI6InJ1bm5pbmciLCJwYWdlcy5zZWFyY2hUYWJsZS5uYW1lU3RhdHVzLm9ubGluZSI6Im9ubGluZSIsInBhZ2VzLnNlYXJjaFRhYmxlLm5hbWVTdGF0dXMuYWJub3JtYWwiOiJhYm5vcm1hbCIsInBhZ2VzLnNlYXJjaFRhYmxlLnRpdGxlVXBkYXRlZEF0IjoiTGFzdCBTY2hlZHVsZWQgYXQiLCJwYWdlcy5zZWFyY2hUYWJsZS5leGNlcHRpb24iOiJQbGVhc2UgZW50ZXIgdGhlIHJlYXNvbiBmb3IgdGhlIGV4Y2VwdGlvbiEiLCJwYWdlcy5zZWFyY2hUYWJsZS50aXRsZU9wdGlvbiI6Ik9wdGlvbiIsInBhZ2VzLnNlYXJjaFRhYmxlLmNvbmZpZyI6IkNvbmZpZ3VyYXRpb24iLCJwYWdlcy5zZWFyY2hUYWJsZS5zdWJzY3JpYmVBbGVydCI6IlN1YnNjcmliZSB0byBhbGVydHMiLCJwYWdlcy5zZWFyY2hUYWJsZS50aXRsZSI6IkVucXVpcnkgRm9ybSIsInBhZ2VzLnNlYXJjaFRhYmxlLm5ldyI6Ik5ldyIsInBhZ2VzLnNlYXJjaFRhYmxlLmVkaXQiOiJFZGl0IiwicGFnZXMuc2VhcmNoVGFibGUuZGVsZXRlIjoiRGVsZXRlIiwicGFnZXMuc2VhcmNoVGFibGUuZXhwb3J0IjoiRXhwb3J0IiwicGFnZXMuc2VhcmNoVGFibGUuY2hvc2VuIjoiY2hvc2VuIiwicGFnZXMuc2VhcmNoVGFibGUuaXRlbSI6Iml0ZW0iLCJwYWdlcy5zZWFyY2hUYWJsZS50b3RhbFNlcnZpY2VDYWxscyI6IlRvdGFsIE51bWJlciBvZiBTZXJ2aWNlIENhbGxzIiwicGFnZXMuc2VhcmNoVGFibGUudGVuVGhvdXNhbmQiOiIwMDAwIiwicGFnZXMuc2VhcmNoVGFibGUuYmF0Y2hEZWxldGlvbiI6ImJhdGNoIGRlbGV0aW9uIiwicGFnZXMuc2VhcmNoVGFibGUuYmF0Y2hBcHByb3ZhbCI6ImJhdGNoIGFwcHJvdmFsIn0sT249eyJhcHAucHdhLm9mZmxpbmUiOiJZb3UgYXJlIG9mZmxpbmUgbm93IiwiYXBwLnB3YS5zZXJ2aWNld29ya2VyLnVwZGF0ZWQiOiJOZXcgY29udGVudCBpcyBhdmFpbGFibGUiLCJhcHAucHdhLnNlcnZpY2V3b3JrZXIudXBkYXRlZC5oaW50IjonUGxlYXNlIHByZXNzIHRoZSAiUmVmcmVzaCIgYnV0dG9uIHRvIHJlbG9hZCBjdXJyZW50IHBhZ2UnLCJhcHAucHdhLnNlcnZpY2V3b3JrZXIudXBkYXRlZC5vayI6IlJlZnJlc2gifSxfbj17ImFwcC5zZXR0aW5nLnBhZ2VzdHlsZSI6IlBhZ2Ugc3R5bGUgc2V0dGluZyIsImFwcC5zZXR0aW5nLnBhZ2VzdHlsZS5kYXJrIjoiRGFyayBzdHlsZSIsImFwcC5zZXR0aW5nLnBhZ2VzdHlsZS5saWdodCI6IkxpZ2h0IHN0eWxlIiwiYXBwLnNldHRpbmcuY29udGVudC13aWR0aCI6IkNvbnRlbnQgV2lkdGgiLCJhcHAuc2V0dGluZy5jb250ZW50LXdpZHRoLmZpeGVkIjoiRml4ZWQiLCJhcHAuc2V0dGluZy5jb250ZW50LXdpZHRoLmZsdWlkIjoiRmx1aWQiLCJhcHAuc2V0dGluZy50aGVtZWNvbG9yIjoiVGhlbWUgQ29sb3IiLCJhcHAuc2V0dGluZy50aGVtZWNvbG9yLmR1c3QiOiJEdXN0IFJlZCIsImFwcC5zZXR0aW5nLnRoZW1lY29sb3Iudm9sY2FubyI6IlZvbGNhbm8iLCJhcHAuc2V0dGluZy50aGVtZWNvbG9yLnN1bnNldCI6IlN1bnNldCBPcmFuZ2UiLCJhcHAuc2V0dGluZy50aGVtZWNvbG9yLmN5YW4iOiJDeWFuIiwiYXBwLnNldHRpbmcudGhlbWVjb2xvci5ncmVlbiI6IlBvbGFyIEdyZWVuIiwiYXBwLnNldHRpbmcudGhlbWVjb2xvci5kYXlicmVhayI6IkRheWJyZWFrIEJsdWUgKGRlZmF1bHQpIiwiYXBwLnNldHRpbmcudGhlbWVjb2xvci5nZWVrYmx1ZSI6IkdlZWsgR2x1ZSIsImFwcC5zZXR0aW5nLnRoZW1lY29sb3IucHVycGxlIjoiR29sZGVuIFB1cnBsZSIsImFwcC5zZXR0aW5nLm5hdmlnYXRpb25tb2RlIjoiTmF2aWdhdGlvbiBNb2RlIiwiYXBwLnNldHRpbmcuc2lkZW1lbnUiOiJTaWRlIE1lbnUgTGF5b3V0IiwiYXBwLnNldHRpbmcudG9wbWVudSI6IlRvcCBNZW51IExheW91dCIsImFwcC5zZXR0aW5nLmZpeGVkaGVhZGVyIjoiRml4ZWQgSGVhZGVyIiwiYXBwLnNldHRpbmcuZml4ZWRzaWRlYmFyIjoiRml4ZWQgU2lkZWJhciIsImFwcC5zZXR0aW5nLmZpeGVkc2lkZWJhci5oaW50IjoiV29ya3Mgb24gU2lkZSBNZW51IExheW91dCIsImFwcC5zZXR0aW5nLmhpZGVoZWFkZXIiOiJIaWRkZW4gSGVhZGVyIHdoZW4gc2Nyb2xsaW5nIiwiYXBwLnNldHRpbmcuaGlkZWhlYWRlci5oaW50IjoiV29ya3Mgd2hlbiBIaWRkZW4gSGVhZGVyIGlzIGVuYWJsZWQiLCJhcHAuc2V0dGluZy5vdGhlcnNldHRpbmdzIjoiT3RoZXIgU2V0dGluZ3MiLCJhcHAuc2V0dGluZy53ZWFrbW9kZSI6IldlYWsgTW9kZSIsImFwcC5zZXR0aW5nLmNvcHkiOiJDb3B5IFNldHRpbmciLCJhcHAuc2V0dGluZy5jb3B5aW5mbyI6ImNvcHkgc3VjY2Vzc1x1RkYwQ3BsZWFzZSByZXBsYWNlIGRlZmF1bHRTZXR0aW5ncyBpbiBzcmMvbW9kZWxzL3NldHRpbmcuanMiLCJhcHAuc2V0dGluZy5wcm9kdWN0aW9uLmhpbnQiOiJTZXR0aW5nIHBhbmVsIHNob3dzIGluIGRldmVsb3BtZW50IGVudmlyb25tZW50IG9ubHksIHBsZWFzZSBtYW51YWxseSBtb2RpZnkifSxQZT17ImFwcC5zZXR0aW5ncy5tZW51TWFwLmJhc2ljIjoiQmFzaWMgU2V0dGluZ3MiLCJhcHAuc2V0dGluZ3MubWVudU1hcC5zZWN1cml0eSI6IlNlY3VyaXR5IFNldHRpbmdzIiwiYXBwLnNldHRpbmdzLm1lbnVNYXAuYmluZGluZyI6IkFjY291bnQgQmluZGluZyIsImFwcC5zZXR0aW5ncy5tZW51TWFwLm5vdGlmaWNhdGlvbiI6Ik5ldyBNZXNzYWdlIE5vdGlmaWNhdGlvbiIsImFwcC5zZXR0aW5ncy5iYXNpYy5hdmF0YXIiOiJBdmF0YXIiLCJhcHAuc2V0dGluZ3MuYmFzaWMuY2hhbmdlLWF2YXRhciI6IkNoYW5nZSBhdmF0YXIiLCJhcHAuc2V0dGluZ3MuYmFzaWMuZW1haWwiOiJFbWFpbCIsImFwcC5zZXR0aW5ncy5iYXNpYy5lbWFpbC1tZXNzYWdlIjoiUGxlYXNlIGlucHV0IHlvdXIgZW1haWwhIiwiYXBwLnNldHRpbmdzLmJhc2ljLm5pY2tuYW1lIjoiTmlja25hbWUiLCJhcHAuc2V0dGluZ3MuYmFzaWMubmlja25hbWUtbWVzc2FnZSI6IlBsZWFzZSBpbnB1dCB5b3VyIE5pY2tuYW1lISIsImFwcC5zZXR0aW5ncy5iYXNpYy5wcm9maWxlIjoiUGVyc29uYWwgcHJvZmlsZSIsImFwcC5zZXR0aW5ncy5iYXNpYy5wcm9maWxlLW1lc3NhZ2UiOiJQbGVhc2UgaW5wdXQgeW91ciBwZXJzb25hbCBwcm9maWxlISIsImFwcC5zZXR0aW5ncy5iYXNpYy5wcm9maWxlLXBsYWNlaG9sZGVyIjoiQnJpZWYgaW50cm9kdWN0aW9uIHRvIHlvdXJzZWxmIiwiYXBwLnNldHRpbmdzLmJhc2ljLmNvdW50cnkiOiJDb3VudHJ5L1JlZ2lvbiIsImFwcC5zZXR0aW5ncy5iYXNpYy5jb3VudHJ5LW1lc3NhZ2UiOiJQbGVhc2UgaW5wdXQgeW91ciBjb3VudHJ5ISIsImFwcC5zZXR0aW5ncy5iYXNpYy5nZW9ncmFwaGljIjoiUHJvdmluY2Ugb3IgY2l0eSIsImFwcC5zZXR0aW5ncy5iYXNpYy5nZW9ncmFwaGljLW1lc3NhZ2UiOiJQbGVhc2UgaW5wdXQgeW91ciBnZW9ncmFwaGljIGluZm8hIiwiYXBwLnNldHRpbmdzLmJhc2ljLmFkZHJlc3MiOiJTdHJlZXQgQWRkcmVzcyIsImFwcC5zZXR0aW5ncy5iYXNpYy5hZGRyZXNzLW1lc3NhZ2UiOiJQbGVhc2UgaW5wdXQgeW91ciBhZGRyZXNzISIsImFwcC5zZXR0aW5ncy5iYXNpYy5waG9uZSI6IlBob25lIE51bWJlciIsImFwcC5zZXR0aW5ncy5iYXNpYy5waG9uZS1tZXNzYWdlIjoiUGxlYXNlIGlucHV0IHlvdXIgcGhvbmUhIiwiYXBwLnNldHRpbmdzLmJhc2ljLnVwZGF0ZSI6IlVwZGF0ZSBJbmZvcm1hdGlvbiIsImFwcC5zZXR0aW5ncy5zZWN1cml0eS5zdHJvbmciOiJTdHJvbmciLCJhcHAuc2V0dGluZ3Muc2VjdXJpdHkubWVkaXVtIjoiTWVkaXVtIiwiYXBwLnNldHRpbmdzLnNlY3VyaXR5LndlYWsiOiJXZWFrIiwiYXBwLnNldHRpbmdzLnNlY3VyaXR5LnBhc3N3b3JkIjoiQWNjb3VudCBQYXNzd29yZCIsImFwcC5zZXR0aW5ncy5zZWN1cml0eS5wYXNzd29yZC1kZXNjcmlwdGlvbiI6IkN1cnJlbnQgcGFzc3dvcmQgc3RyZW5ndGgiLCJhcHAuc2V0dGluZ3Muc2VjdXJpdHkucGhvbmUiOiJTZWN1cml0eSBQaG9uZSIsImFwcC5zZXR0aW5ncy5zZWN1cml0eS5waG9uZS1kZXNjcmlwdGlvbiI6IkJvdW5kIHBob25lIiwiYXBwLnNldHRpbmdzLnNlY3VyaXR5LnF1ZXN0aW9uIjoiU2VjdXJpdHkgUXVlc3Rpb24iLCJhcHAuc2V0dGluZ3Muc2VjdXJpdHkucXVlc3Rpb24tZGVzY3JpcHRpb24iOiJUaGUgc2VjdXJpdHkgcXVlc3Rpb24gaXMgbm90IHNldCwgYW5kIHRoZSBzZWN1cml0eSBwb2xpY3kgY2FuIGVmZmVjdGl2ZWx5IHByb3RlY3QgdGhlIGFjY291bnQgc2VjdXJpdHkiLCJhcHAuc2V0dGluZ3Muc2VjdXJpdHkuZW1haWwiOiJCYWNrdXAgRW1haWwiLCJhcHAuc2V0dGluZ3Muc2VjdXJpdHkuZW1haWwtZGVzY3JpcHRpb24iOiJCb3VuZCBFbWFpbCIsImFwcC5zZXR0aW5ncy5zZWN1cml0eS5tZmEiOiJNRkEgRGV2aWNlIiwiYXBwLnNldHRpbmdzLnNlY3VyaXR5Lm1mYS1kZXNjcmlwdGlvbiI6IlVuYm91bmQgTUZBIGRldmljZSwgYWZ0ZXIgYmluZGluZywgY2FuIGJlIGNvbmZpcm1lZCB0d2ljZSIsImFwcC5zZXR0aW5ncy5zZWN1cml0eS5tb2RpZnkiOiJNb2RpZnkiLCJhcHAuc2V0dGluZ3Muc2VjdXJpdHkuc2V0IjoiU2V0IiwiYXBwLnNldHRpbmdzLnNlY3VyaXR5LmJpbmQiOiJCaW5kIiwiYXBwLnNldHRpbmdzLmJpbmRpbmcudGFvYmFvIjoiQmluZGluZyBUYW9iYW8iLCJhcHAuc2V0dGluZ3MuYmluZGluZy50YW9iYW8tZGVzY3JpcHRpb24iOiJDdXJyZW50bHkgdW5ib3VuZCBUYW9iYW8gYWNjb3VudCIsImFwcC5zZXR0aW5ncy5iaW5kaW5nLmFsaXBheSI6IkJpbmRpbmcgQWxpcGF5IiwiYXBwLnNldHRpbmdzLmJpbmRpbmcuYWxpcGF5LWRlc2NyaXB0aW9uIjoiQ3VycmVudGx5IHVuYm91bmQgQWxpcGF5IGFjY291bnQiLCJhcHAuc2V0dGluZ3MuYmluZGluZy5kaW5nZGluZyI6IkJpbmRpbmcgRGluZ1RhbGsiLCJhcHAuc2V0dGluZ3MuYmluZGluZy5kaW5nZGluZy1kZXNjcmlwdGlvbiI6IkN1cnJlbnRseSB1bmJvdW5kIERpbmdUYWxrIGFjY291bnQiLCJhcHAuc2V0dGluZ3MuYmluZGluZy5iaW5kIjoiQmluZCIsImFwcC5zZXR0aW5ncy5ub3RpZmljYXRpb24ucGFzc3dvcmQiOiJBY2NvdW50IFBhc3N3b3JkIiwiYXBwLnNldHRpbmdzLm5vdGlmaWNhdGlvbi5wYXNzd29yZC1kZXNjcmlwdGlvbiI6Ik1lc3NhZ2VzIGZyb20gb3RoZXIgdXNlcnMgd2lsbCBiZSBub3RpZmllZCBpbiB0aGUgZm9ybSBvZiBhIHN0YXRpb24gbGV0dGVyIiwiYXBwLnNldHRpbmdzLm5vdGlmaWNhdGlvbi5tZXNzYWdlcyI6IlN5c3RlbSBNZXNzYWdlcyIsImFwcC5zZXR0aW5ncy5ub3RpZmljYXRpb24ubWVzc2FnZXMtZGVzY3JpcHRpb24iOiJTeXN0ZW0gbWVzc2FnZXMgd2lsbCBiZSBub3RpZmllZCBpbiB0aGUgZm9ybSBvZiBhIHN0YXRpb24gbGV0dGVyIiwiYXBwLnNldHRpbmdzLm5vdGlmaWNhdGlvbi50b2RvIjoiVG8tZG8gTm90aWZpY2F0aW9uIiwiYXBwLnNldHRpbmdzLm5vdGlmaWNhdGlvbi50b2RvLWRlc2NyaXB0aW9uIjoiVGhlIHRvLWRvIGxpc3Qgd2lsbCBiZSBub3RpZmllZCBpbiB0aGUgZm9ybSBvZiBhIGxldHRlciBmcm9tIHRoZSBzdGF0aW9uIiwiYXBwLnNldHRpbmdzLm9wZW4iOiJPcGVuIiwiYXBwLnNldHRpbmdzLmNsb3NlIjoiQ2xvc2UifSxnZT1pKCkoaSgpKGkoKShpKCkoaSgpKGkoKShpKCkoaSgpKHsibmF2QmFyLmxhbmciOiJMYW5ndWFnZXMiLCJsYXlvdXQudXNlci5saW5rLmhlbHAiOiJIZWxwIiwibGF5b3V0LnVzZXIubGluay5wcml2YWN5IjoiUHJpdmFjeSIsImxheW91dC51c2VyLmxpbmsudGVybXMiOiJUZXJtcyIsImFwcC5jb3B5cmlnaHQucHJvZHVjZWQiOiJQcm9kdWNlZCBieSBBbnQgRmluYW5jaWFsIEV4cGVyaWVuY2UgRGVwYXJ0bWVudCIsImFwcC5wcmV2aWV3LmRvd24uYmxvY2siOiJEb3dubG9hZCB0aGlzIHBhZ2UgdG8geW91ciBsb2NhbCBwcm9qZWN0IiwiYXBwLndlbGNvbWUubGluay5mZXRjaC1ibG9ja3MiOiJHZXQgYWxsIGJsb2NrIiwiYXBwLndlbGNvbWUubGluay5ibG9jay1saXN0IjoiUXVpY2tseSBidWlsZCBzdGFuZGFyZCwgcGFnZXMgYmFzZWQgb24gYGJsb2NrYCBkZXZlbG9wbWVudCJ9LGpuKSxIbiksR3QpLF9uKSxQZSksT24pLGJuKSxTbiksdmU9ZSgzNzAyOSksSWU9eyJhcHAuZG9jcy5jb21wb25lbnRzLmljb24uc2VhcmNoLnBsYWNlaG9sZGVyIjoiXHU1NzI4XHU2QjY0XHU2NDFDXHU3RDIyXHU1NkZFXHU2ODA3XHVGRjBDXHU3MEI5XHU1MUZCXHU1NkZFXHU2ODA3XHU1M0VGXHU1OTBEXHU1MjM2XHU0RUUzXHU3ODAxIiwiYXBwLmRvY3MuY29tcG9uZW50cy5pY29uLm91dGxpbmVkIjoiXHU3RUJGXHU2ODQ2XHU5OENFXHU2ODNDIiwiYXBwLmRvY3MuY29tcG9uZW50cy5pY29uLmZpbGxlZCI6Ilx1NUI5RVx1NUU5NVx1OThDRVx1NjgzQyIsImFwcC5kb2NzLmNvbXBvbmVudHMuaWNvbi50d28tdG9uZSI6Ilx1NTNDQ1x1ODI3Mlx1OThDRVx1NjgzQyIsImFwcC5kb2NzLmNvbXBvbmVudHMuaWNvbi5jYXRlZ29yeS5kaXJlY3Rpb24iOiJcdTY1QjlcdTU0MTFcdTYwMjdcdTU2RkVcdTY4MDciLCJhcHAuZG9jcy5jb21wb25lbnRzLmljb24uY2F0ZWdvcnkuc3VnZ2VzdGlvbiI6Ilx1NjNEMFx1NzkzQVx1NUVGQVx1OEJBRVx1NjAyN1x1NTZGRVx1NjgwNyIsImFwcC5kb2NzLmNvbXBvbmVudHMuaWNvbi5jYXRlZ29yeS5lZGl0b3IiOiJcdTdGMTZcdThGOTFcdTdDN0JcdTU2RkVcdTY4MDciLCJhcHAuZG9jcy5jb21wb25lbnRzLmljb24uY2F0ZWdvcnkuZGF0YSI6Ilx1NjU3MFx1NjM2RVx1N0M3Qlx1NTZGRVx1NjgwNyIsImFwcC5kb2NzLmNvbXBvbmVudHMuaWNvbi5jYXRlZ29yeS5vdGhlciI6Ilx1N0Y1MVx1N0FEOVx1OTAxQVx1NzUyOFx1NTZGRVx1NjgwNyIsImFwcC5kb2NzLmNvbXBvbmVudHMuaWNvbi5jYXRlZ29yeS5sb2dvIjoiXHU1NEMxXHU3MjRDXHU1NDhDXHU2ODA3XHU4QkM2IiwiYXBwLmRvY3MuY29tcG9uZW50cy5pY29uLnBpYy1zZWFyY2hlci5pbnRybyI6IkFJIFx1NjIyQVx1NTZGRVx1NjQxQ1x1N0QyMlx1NEUwQVx1N0VCRlx1NEU4Nlx1RkYwQ1x1NUZFQlx1Njc2NVx1NEY1M1x1OUE4Q1x1NTQyN1x1RkYwMVx1ezFGMzg5fSIsImFwcC5kb2NzLmNvbXBvbmVudHMuaWNvbi5waWMtc2VhcmNoZXIudGl0bGUiOiJcdTRFMEFcdTRGMjBcdTU2RkVcdTcyNDdcdTY0MUNcdTdEMjJcdTU2RkVcdTY4MDciLCJhcHAuZG9jcy5jb21wb25lbnRzLmljb24ucGljLXNlYXJjaGVyLnVwbG9hZC10ZXh0IjoiXHU3MEI5XHU1MUZCL1x1NjJENlx1NjJGRC9cdTdDOThcdThEMzRcdTRFMEFcdTRGMjBcdTU2RkVcdTcyNDciLCJhcHAuZG9jcy5jb21wb25lbnRzLmljb24ucGljLXNlYXJjaGVyLnVwbG9hZC1oaW50IjoiXHU2MjExXHU0RUVDXHU0RjFBXHU5MDFBXHU4RkM3XHU0RTBBXHU0RjIwXHU3Njg0XHU1NkZFXHU3MjQ3XHU4RkRCXHU4ODRDXHU1MzM5XHU5MTREXHVGRjBDXHU1Rjk3XHU1MjMwXHU2NzAwXHU3NkY4XHU0RjNDXHU3Njg0XHU1NkZFXHU2ODA3IiwiYXBwLmRvY3MuY29tcG9uZW50cy5pY29uLnBpYy1zZWFyY2hlci5zZXJ2ZXItZXJyb3IiOiJcdThCQzZcdTUyMkJcdTY3MERcdTUyQTFcdTY2ODJcdTRFMERcdTUzRUZcdTc1MjgiLCJhcHAuZG9jcy5jb21wb25lbnRzLmljb24ucGljLXNlYXJjaGVyLm1hdGNoaW5nIjoiXHU1MzM5XHU5MTREXHU0RTJELi4uIiwiYXBwLmRvY3MuY29tcG9uZW50cy5pY29uLnBpYy1zZWFyY2hlci5tb2RlbGxvYWRpbmciOiJcdTc5NUVcdTdFQ0ZcdTdGNTFcdTdFRENcdTZBMjFcdTU3OEJcdTUyQTBcdThGN0RcdTRFMkQuLi4iLCJhcHAuZG9jcy5jb21wb25lbnRzLmljb24ucGljLXNlYXJjaGVyLnJlc3VsdC10aXAiOiJcdTRFM0FcdTYwQThcdTUzMzlcdTkxNERcdTUyMzBcdTRFRTVcdTRFMEJcdTU2RkVcdTY4MDdcdUZGMUEiLCJhcHAuZG9jcy5jb21wb25lbnRzLmljb24ucGljLXNlYXJjaGVyLnRoLWljb24iOiJcdTU2RkVcdTY4MDciLCJhcHAuZG9jcy5jb21wb25lbnRzLmljb24ucGljLXNlYXJjaGVyLnRoLXNjb3JlIjoiXHU1MzM5XHU5MTREXHU1RUE2In0seGU9eyJjb21wb25lbnQudGFnU2VsZWN0LmV4cGFuZCI6Ilx1NUM1NVx1NUYwMCIsImNvbXBvbmVudC50YWdTZWxlY3QuY29sbGFwc2UiOiJcdTY1MzZcdThENzciLCJjb21wb25lbnQudGFnU2VsZWN0LmFsbCI6Ilx1NTE2OFx1OTBFOCJ9LGF0PXsiY29tcG9uZW50Lmdsb2JhbEhlYWRlci5zZWFyY2giOiJcdTdBRDlcdTUxODVcdTY0MUNcdTdEMjIiLCJjb21wb25lbnQuZ2xvYmFsSGVhZGVyLnNlYXJjaC5leGFtcGxlMSI6Ilx1NjQxQ1x1N0QyMlx1NjNEMFx1NzkzQVx1NEUwMCIsImNvbXBvbmVudC5nbG9iYWxIZWFkZXIuc2VhcmNoLmV4YW1wbGUyIjoiXHU2NDFDXHU3RDIyXHU2M0QwXHU3OTNBXHU0RThDIiwiY29tcG9uZW50Lmdsb2JhbEhlYWRlci5zZWFyY2guZXhhbXBsZTMiOiJcdTY0MUNcdTdEMjJcdTYzRDBcdTc5M0FcdTRFMDkiLCJjb21wb25lbnQuZ2xvYmFsSGVhZGVyLmhlbHAiOiJcdTRGN0ZcdTc1MjhcdTY1ODdcdTY4NjMiLCJjb21wb25lbnQuZ2xvYmFsSGVhZGVyLm5vdGlmaWNhdGlvbiI6Ilx1OTAxQVx1NzdFNSIsImNvbXBvbmVudC5nbG9iYWxIZWFkZXIubm90aWZpY2F0aW9uLmVtcHR5IjoiXHU0RjYwXHU1REYyXHU2N0U1XHU3NzBCXHU2MjQwXHU2NzA5XHU5MDFBXHU3N0U1IiwiY29tcG9uZW50Lmdsb2JhbEhlYWRlci5tZXNzYWdlIjoiXHU2RDg4XHU2MDZGIiwiY29tcG9uZW50Lmdsb2JhbEhlYWRlci5tZXNzYWdlLmVtcHR5IjoiXHU2MEE4XHU1REYyXHU4QkZCXHU1QjhDXHU2MjQwXHU2NzA5XHU2RDg4XHU2MDZGIiwiY29tcG9uZW50Lmdsb2JhbEhlYWRlci5ldmVudCI6Ilx1NUY4NVx1NTI5RSIsImNvbXBvbmVudC5nbG9iYWxIZWFkZXIuZXZlbnQuZW1wdHkiOiJcdTRGNjBcdTVERjJcdTVCOENcdTYyMTBcdTYyNDBcdTY3MDlcdTVGODVcdTUyOUUiLCJjb21wb25lbnQubm90aWNlSWNvbi5jbGVhciI6Ilx1NkUwNVx1N0E3QSIsImNvbXBvbmVudC5ub3RpY2VJY29uLmNsZWFyZWQiOiJcdTZFMDVcdTdBN0FcdTRFODYiLCJjb21wb25lbnQubm90aWNlSWNvbi5lbXB0eSI6Ilx1NjY4Mlx1NjVFMFx1NjU3MFx1NjM2RSIsImNvbXBvbmVudC5ub3RpY2VJY29uLnZpZXctbW9yZSI6Ilx1NjdFNVx1NzcwQlx1NjZGNFx1NTkxQSJ9LGR0PXsibWVudS53ZWxjb21lIjoiXHU2QjIyXHU4RkNFIiwibWVudS5tb3JlLWJsb2NrcyI6Ilx1NjZGNFx1NTkxQVx1NTMzQVx1NTc1NyIsIm1lbnUuaG9tZSI6Ilx1OTk5Nlx1OTg3NSIsIm1lbnUuYWRtaW4iOiJcdTdCQTFcdTc0MDZcdTk4NzUiLCJtZW51LmFkbWluLnN1Yi1wYWdlIjoiXHU0RThDXHU3RUE3XHU3QkExXHU3NDA2XHU5ODc1IiwibWVudS5sb2dpbiI6Ilx1NzY3Qlx1NUY1NSIsIm1lbnUucmVnaXN0ZXIiOiJcdTZDRThcdTUxOEMiLCJtZW51LnJlZ2lzdGVyLXJlc3VsdCI6Ilx1NkNFOFx1NTE4Q1x1N0VEM1x1Njc5QyIsIm1lbnUuZGFzaGJvYXJkIjoiRGFzaGJvYXJkIiwibWVudS5kYXNoYm9hcmQuYW5hbHlzaXMiOiJcdTUyMDZcdTY3OTBcdTk4NzUiLCJtZW51LmRhc2hib2FyZC5tb25pdG9yIjoiXHU3NkQxXHU2M0E3XHU5ODc1IiwibWVudS5kYXNoYm9hcmQud29ya3BsYWNlIjoiXHU1REU1XHU0RjVDXHU1M0YwIiwibWVudS5leGNlcHRpb24uNDAzIjoiNDAzIiwibWVudS5leGNlcHRpb24uNDA0IjoiNDA0IiwibWVudS5leGNlcHRpb24uNTAwIjoiNTAwIiwibWVudS5mb3JtIjoiXHU4ODY4XHU1MzU1XHU5ODc1IiwibWVudS5mb3JtLmJhc2ljLWZvcm0iOiJcdTU3RkFcdTc4NDBcdTg4NjhcdTUzNTUiLCJtZW51LmZvcm0uc3RlcC1mb3JtIjoiXHU1MjA2XHU2QjY1XHU4ODY4XHU1MzU1IiwibWVudS5mb3JtLnN0ZXAtZm9ybS5pbmZvIjoiXHU1MjA2XHU2QjY1XHU4ODY4XHU1MzU1XHVGRjA4XHU1ODZCXHU1MTk5XHU4RjZDXHU4RDI2XHU0RkUxXHU2MDZGXHVGRjA5IiwibWVudS5mb3JtLnN0ZXAtZm9ybS5jb25maXJtIjoiXHU1MjA2XHU2QjY1XHU4ODY4XHU1MzU1XHVGRjA4XHU3ODZFXHU4QkE0XHU4RjZDXHU4RDI2XHU0RkUxXHU2MDZGXHVGRjA5IiwibWVudS5mb3JtLnN0ZXAtZm9ybS5yZXN1bHQiOiJcdTUyMDZcdTZCNjVcdTg4NjhcdTUzNTVcdUZGMDhcdTVCOENcdTYyMTBcdUZGMDkiLCJtZW51LmZvcm0uYWR2YW5jZWQtZm9ybSI6Ilx1OUFEOFx1N0VBN1x1ODg2OFx1NTM1NSIsIm1lbnUubGlzdCI6Ilx1NTIxN1x1ODg2OFx1OTg3NSIsIm1lbnUubGlzdC50YWJsZS1saXN0IjoiXHU2N0U1XHU4QkUyXHU4ODY4XHU2ODNDIiwibWVudS5saXN0LmJhc2ljLWxpc3QiOiJcdTY4MDdcdTUxQzZcdTUyMTdcdTg4NjgiLCJtZW51Lmxpc3QuY2FyZC1saXN0IjoiXHU1MzYxXHU3MjQ3XHU1MjE3XHU4ODY4IiwibWVudS5saXN0LnNlYXJjaC1saXN0IjoiXHU2NDFDXHU3RDIyXHU1MjE3XHU4ODY4IiwibWVudS5saXN0LnNlYXJjaC1saXN0LmFydGljbGVzIjoiXHU2NDFDXHU3RDIyXHU1MjE3XHU4ODY4XHVGRjA4XHU2NTg3XHU3QUUwXHVGRjA5IiwibWVudS5saXN0LnNlYXJjaC1saXN0LnByb2plY3RzIjoiXHU2NDFDXHU3RDIyXHU1MjE3XHU4ODY4XHVGRjA4XHU5ODc5XHU3NkVFXHVGRjA5IiwibWVudS5saXN0LnNlYXJjaC1saXN0LmFwcGxpY2F0aW9ucyI6Ilx1NjQxQ1x1N0QyMlx1NTIxN1x1ODg2OFx1RkYwOFx1NUU5NFx1NzUyOFx1RkYwOSIsIm1lbnUucHJvZmlsZSI6Ilx1OEJFNlx1NjBDNVx1OTg3NSIsIm1lbnUucHJvZmlsZS5iYXNpYyI6Ilx1NTdGQVx1Nzg0MFx1OEJFNlx1NjBDNVx1OTg3NSIsIm1lbnUucHJvZmlsZS5hZHZhbmNlZCI6Ilx1OUFEOFx1N0VBN1x1OEJFNlx1NjBDNVx1OTg3NSIsIm1lbnUucmVzdWx0IjoiXHU3RUQzXHU2NzlDXHU5ODc1IiwibWVudS5yZXN1bHQuc3VjY2VzcyI6Ilx1NjIxMFx1NTI5Rlx1OTg3NSIsIm1lbnUucmVzdWx0LmZhaWwiOiJcdTU5MzFcdThEMjVcdTk4NzUiLCJtZW51LmV4Y2VwdGlvbiI6Ilx1NUYwMlx1NUUzOFx1OTg3NSIsIm1lbnUuZXhjZXB0aW9uLm5vdC1wZXJtaXNzaW9uIjoiNDAzIiwibWVudS5leGNlcHRpb24ubm90LWZpbmQiOiI0MDQiLCJtZW51LmV4Y2VwdGlvbi5zZXJ2ZXItZXJyb3IiOiI1MDAiLCJtZW51LmV4Y2VwdGlvbi50cmlnZ2VyIjoiXHU4OUU2XHU1M0QxXHU5NTE5XHU4QkVGIiwibWVudS5hY2NvdW50IjoiXHU0RTJBXHU0RUJBXHU5ODc1IiwibWVudS5hY2NvdW50LmNlbnRlciI6Ilx1NEUyQVx1NEVCQVx1NEUyRFx1NUZDMyIsIm1lbnUuYWNjb3VudC5zZXR0aW5ncyI6Ilx1NEUyQVx1NEVCQVx1OEJCRVx1N0Y2RSIsIm1lbnUuYWNjb3VudC50cmlnZ2VyIjoiXHU4OUU2XHU1M0QxXHU2MkE1XHU5NTE5IiwibWVudS5hY2NvdW50LmxvZ291dCI6Ilx1OTAwMFx1NTFGQVx1NzY3Qlx1NUY1NSIsIm1lbnUuZWRpdG9yIjoiXHU1NkZFXHU1RjYyXHU3RjE2XHU4RjkxXHU1NjY4IiwibWVudS5lZGl0b3IuZmxvdyI6Ilx1NkQ0MVx1N0EwQlx1N0YxNlx1OEY5MVx1NTY2OCIsIm1lbnUuZWRpdG9yLm1pbmQiOiJcdTgxMTFcdTU2RkVcdTdGMTZcdThGOTFcdTU2NjgiLCJtZW51LmVkaXRvci5rb25pIjoiXHU2MkQzXHU2MjUxXHU3RjE2XHU4RjkxXHU1NjY4In0sRXQ9eyJwYWdlcy5sYXlvdXRzLnVzZXJMYXlvdXQudGl0bGUiOiJBbnQgRGVzaWduIFx1NjYyRlx1ODk3Rlx1NkU1Nlx1NTMzQVx1NjcwMFx1NTE3N1x1NUY3MVx1NTRDRFx1NTI5Qlx1NzY4NCBXZWIgXHU4QkJFXHU4QkExXHU4OUM0XHU4MzAzIiwicGFnZXMubG9naW4uYWNjb3VudExvZ2luLnRhYiI6Ilx1OEQyNlx1NjIzN1x1NUJDNlx1NzgwMVx1NzY3Qlx1NUY1NSIsInBhZ2VzLmxvZ2luLmFjY291bnRMb2dpbi5lcnJvck1lc3NhZ2UiOiJcdTk1MTlcdThCRUZcdTc2ODRcdTc1MjhcdTYyMzdcdTU0MERcdTU0OENcdTVCQzZcdTc4MDEoYWRtaW4vYWRtaW4xMjMpIiwicGFnZXMubG9naW4uZmFpbHVyZSI6Ilx1NzY3Qlx1NUY1NVx1NTkzMVx1OEQyNVx1RkYwQ1x1OEJGN1x1OTFDRFx1OEJENVx1RkYwMSIsInBhZ2VzLmxvZ2luLnN1Y2Nlc3MiOiJcdTc2N0JcdTVGNTVcdTYyMTBcdTUyOUZcdUZGMDEiLCJwYWdlcy5sb2dpbi51c2VybmFtZS5wbGFjZWhvbGRlciI6Ilx1NzUyOFx1NjIzN1x1NTQwRDogYWRtaW4iLCJwYWdlcy5sb2dpbi51c2VybmFtZS5yZXF1aXJlZCI6Ilx1NzUyOFx1NjIzN1x1NTQwRFx1NjYyRlx1NUZDNVx1NTg2Qlx1OTg3OVx1RkYwMSIsInBhZ2VzLmxvZ2luLnBhc3N3b3JkLnBsYWNlaG9sZGVyIjoiXHU1QkM2XHU3ODAxOiBhZG1pbjEyMyIsInBhZ2VzLmxvZ2luLnBhc3N3b3JkLnJlcXVpcmVkIjoiXHU1QkM2XHU3ODAxXHU2NjJGXHU1RkM1XHU1ODZCXHU5ODc5XHVGRjAxIiwicGFnZXMubG9naW4ucGhvbmVMb2dpbi50YWIiOiJcdTYyNEJcdTY3M0FcdTUzRjdcdTc2N0JcdTVGNTUiLCJwYWdlcy5sb2dpbi5waG9uZUxvZ2luLmVycm9yTWVzc2FnZSI6Ilx1OUE4Q1x1OEJDMVx1NzgwMVx1OTUxOVx1OEJFRiIsInBhZ2VzLmxvZ2luLnBob25lTnVtYmVyLnBsYWNlaG9sZGVyIjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU2MjRCXHU2NzNBXHU1M0Y3XHVGRjAxIiwicGFnZXMubG9naW4ucGhvbmVOdW1iZXIucmVxdWlyZWQiOiJcdTYyNEJcdTY3M0FcdTUzRjdcdTY2MkZcdTVGQzVcdTU4NkJcdTk4NzlcdUZGMDEiLCJwYWdlcy5sb2dpbi5waG9uZU51bWJlci5pbnZhbGlkIjoiXHU0RTBEXHU1NDA4XHU2Q0Q1XHU3Njg0XHU2MjRCXHU2NzNBXHU1M0Y3XHVGRjAxIiwicGFnZXMubG9naW4uY2FwdGNoYS5wbGFjZWhvbGRlciI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1OUE4Q1x1OEJDMVx1NzgwMVx1RkYwMSIsInBhZ2VzLmxvZ2luLmNhcHRjaGEucmVxdWlyZWQiOiJcdTlBOENcdThCQzFcdTc4MDFcdTY2MkZcdTVGQzVcdTU4NkJcdTk4NzlcdUZGMDEiLCJwYWdlcy5sb2dpbi5waG9uZUxvZ2luLmdldFZlcmlmaWNhdGlvbkNvZGUiOiJcdTgzQjdcdTUzRDZcdTlBOENcdThCQzFcdTc4MDEiLCJwYWdlcy5nZXRDYXB0Y2hhU2Vjb25kVGV4dCI6Ilx1NzlEMlx1NTQwRVx1OTFDRFx1NjVCMFx1ODNCN1x1NTNENiIsInBhZ2VzLmxvZ2luLnJlbWVtYmVyTWUiOiJcdTgxRUFcdTUyQThcdTc2N0JcdTVGNTUiLCJwYWdlcy5sb2dpbi5mb3Jnb3RQYXNzd29yZCI6Ilx1NUZEOFx1OEJCMFx1NUJDNlx1NzgwMSA/IiwicGFnZXMubG9naW4uc3VibWl0IjoiXHU3NjdCXHU1RjU1IiwicGFnZXMubG9naW4ubG9naW5XaXRoIjoiXHU1MTc2XHU0RUQ2XHU3NjdCXHU1RjU1XHU2NUI5XHU1RjBGIDoiLCJwYWdlcy5sb2dpbi5yZWdpc3RlckFjY291bnQiOiJcdTZDRThcdTUxOENcdThEMjZcdTYyMzciLCJwYWdlcy5nb2JhY2siOiJcdThGRDRcdTU2REUiLCJwYWdlcy53ZWxjb21lLmxpbmsiOiJcdTZCMjJcdThGQ0VcdTRGN0ZcdTc1MjgiLCJwYWdlcy53ZWxjb21lLmFsZXJ0TWVzc2FnZSI6Ilx1NjZGNFx1NUZFQlx1NjZGNFx1NUYzQVx1NzY4NFx1OTFDRFx1NTc4Qlx1N0VDNFx1NEVGNlx1RkYwQ1x1NURGMlx1N0VDRlx1NTNEMVx1NUUwM1x1MzAwMiIsInBhZ2VzLmFkbWluLnN1YlBhZ2UudGl0bGUiOiIgXHU4RkQ5XHU0RTJBXHU5ODc1XHU5NzYyXHU1M0VBXHU2NzA5IGFkbWluIFx1Njc0M1x1OTY1MFx1NjI0RFx1ODBGRFx1NjdFNVx1NzcwQiIsInBhZ2VzLmFkbWluLnN1YlBhZ2UuYWxlcnRNZXNzYWdlIjoidW1pIHVpIFx1NzNCMFx1NURGMlx1NTNEMVx1NUUwM1x1RkYwQ1x1NkIyMlx1OEZDRVx1NEY3Rlx1NzUyOCBucG0gcnVuIHVpIFx1NTQyRlx1NTJBOFx1NEY1M1x1OUE4Q1x1MzAwMiIsInBhZ2VzLnNlYXJjaFRhYmxlLmNyZWF0ZUZvcm0ubmV3UnVsZSI6Ilx1NjVCMFx1NUVGQVx1ODlDNFx1NTIxOSIsInBhZ2VzLnNlYXJjaFRhYmxlLnVwZGF0ZUZvcm0ucnVsZUNvbmZpZyI6Ilx1ODlDNFx1NTIxOVx1OTE0RFx1N0Y2RSIsInBhZ2VzLnNlYXJjaFRhYmxlLnVwZGF0ZUZvcm0uYmFzaWNDb25maWciOiJcdTU3RkFcdTY3MkNcdTRGRTFcdTYwNkYiLCJwYWdlcy5zZWFyY2hUYWJsZS51cGRhdGVGb3JtLnJ1bGVOYW1lLm5hbWVMYWJlbCI6Ilx1ODlDNFx1NTIxOVx1NTQwRFx1NzlGMCIsInBhZ2VzLnNlYXJjaFRhYmxlLnVwZGF0ZUZvcm0ucnVsZU5hbWUubmFtZVJ1bGVzIjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU4OUM0XHU1MjE5XHU1NDBEXHU3OUYwXHVGRjAxIiwicGFnZXMuc2VhcmNoVGFibGUudXBkYXRlRm9ybS5ydWxlRGVzYy5kZXNjTGFiZWwiOiJcdTg5QzRcdTUyMTlcdTYzQ0ZcdThGRjAiLCJwYWdlcy5zZWFyY2hUYWJsZS51cGRhdGVGb3JtLnJ1bGVEZXNjLmRlc2NQbGFjZWhvbGRlciI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1ODFGM1x1NUMxMVx1NEU5NFx1NEUyQVx1NUI1N1x1N0IyNiIsInBhZ2VzLnNlYXJjaFRhYmxlLnVwZGF0ZUZvcm0ucnVsZURlc2MuZGVzY1J1bGVzIjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU4MUYzXHU1QzExXHU0RTk0XHU0RTJBXHU1QjU3XHU3QjI2XHU3Njg0XHU4OUM0XHU1MjE5XHU2M0NGXHU4RkYwXHVGRjAxIiwicGFnZXMuc2VhcmNoVGFibGUudXBkYXRlRm9ybS5ydWxlUHJvcHMudGl0bGUiOiJcdTkxNERcdTdGNkVcdTg5QzRcdTUyMTlcdTVDNUVcdTYwMjciLCJwYWdlcy5zZWFyY2hUYWJsZS51cGRhdGVGb3JtLm9iamVjdCI6Ilx1NzZEMVx1NjNBN1x1NUJGOVx1OEM2MSIsInBhZ2VzLnNlYXJjaFRhYmxlLnVwZGF0ZUZvcm0ucnVsZVByb3BzLnRlbXBsYXRlTGFiZWwiOiJcdTg5QzRcdTUyMTlcdTZBMjFcdTY3N0YiLCJwYWdlcy5zZWFyY2hUYWJsZS51cGRhdGVGb3JtLnJ1bGVQcm9wcy50eXBlTGFiZWwiOiJcdTg5QzRcdTUyMTlcdTdDN0JcdTU3OEIiLCJwYWdlcy5zZWFyY2hUYWJsZS51cGRhdGVGb3JtLnNjaGVkdWxpbmdQZXJpb2QudGl0bGUiOiJcdThCQkVcdTVCOUFcdThDMDNcdTVFQTZcdTU0NjhcdTY3MUYiLCJwYWdlcy5zZWFyY2hUYWJsZS51cGRhdGVGb3JtLnNjaGVkdWxpbmdQZXJpb2QudGltZUxhYmVsIjoiXHU1RjAwXHU1OUNCXHU2NUY2XHU5NUY0IiwicGFnZXMuc2VhcmNoVGFibGUudXBkYXRlRm9ybS5zY2hlZHVsaW5nUGVyaW9kLnRpbWVSdWxlcyI6Ilx1OEJGN1x1OTAwOVx1NjJFOVx1NUYwMFx1NTlDQlx1NjVGNlx1OTVGNFx1RkYwMSIsInBhZ2VzLnNlYXJjaFRhYmxlLnVwZGF0ZUZvcm0ucGxlYXNlSW5wdXQiOiJcdThCRjdcdThGOTNcdTUxNjUiLCJwYWdlcy5zZWFyY2hUYWJsZS50aXRsZURlc2MiOiJcdTYzQ0ZcdThGRjAiLCJwYWdlcy5zZWFyY2hUYWJsZS5ydWxlTmFtZSI6Ilx1ODlDNFx1NTIxOVx1NTQwRFx1NzlGMFx1NEUzQVx1NUZDNVx1NTg2Qlx1OTg3OSIsInBhZ2VzLnNlYXJjaFRhYmxlLnRpdGxlQ2FsbE5vIjoiXHU2NzBEXHU1MkExXHU4QzAzXHU3NTI4XHU2QjIxXHU2NTcwIiwicGFnZXMuc2VhcmNoVGFibGUudGl0bGVTdGF0dXMiOiJcdTcyQjZcdTYwMDEiLCJwYWdlcy5zZWFyY2hUYWJsZS5uYW1lU3RhdHVzLmRlZmF1bHQiOiJcdTUxNzNcdTk1RUQiLCJwYWdlcy5zZWFyY2hUYWJsZS5uYW1lU3RhdHVzLnJ1bm5pbmciOiJcdThGRDBcdTg4NENcdTRFMkQiLCJwYWdlcy5zZWFyY2hUYWJsZS5uYW1lU3RhdHVzLm9ubGluZSI6Ilx1NURGMlx1NEUwQVx1N0VCRiIsInBhZ2VzLnNlYXJjaFRhYmxlLm5hbWVTdGF0dXMuYWJub3JtYWwiOiJcdTVGMDJcdTVFMzgiLCJwYWdlcy5zZWFyY2hUYWJsZS50aXRsZVVwZGF0ZWRBdCI6Ilx1NEUwQVx1NkIyMVx1OEMwM1x1NUVBNlx1NjVGNlx1OTVGNCIsInBhZ2VzLnNlYXJjaFRhYmxlLmV4Y2VwdGlvbiI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NUYwMlx1NUUzOFx1NTM5Rlx1NTZFMFx1RkYwMSIsInBhZ2VzLnNlYXJjaFRhYmxlLnRpdGxlT3B0aW9uIjoiXHU2NENEXHU0RjVDIiwicGFnZXMuc2VhcmNoVGFibGUuY29uZmlnIjoiXHU5MTREXHU3RjZFIiwicGFnZXMuc2VhcmNoVGFibGUuc3Vic2NyaWJlQWxlcnQiOiJcdThCQTJcdTk2MDVcdThCNjZcdTYyQTUiLCJwYWdlcy5zZWFyY2hUYWJsZS50aXRsZSI6Ilx1NjdFNVx1OEJFMlx1ODg2OFx1NjgzQyIsInBhZ2VzLnNlYXJjaFRhYmxlLm5ldyI6Ilx1NjVCMFx1NUVGQSIsInBhZ2VzLnNlYXJjaFRhYmxlLmVkaXQiOiJcdTdGMTZcdThGOTEiLCJwYWdlcy5zZWFyY2hUYWJsZS5kZWxldGUiOiJcdTUyMjBcdTk2NjQiLCJwYWdlcy5zZWFyY2hUYWJsZS5jbGVhbkFsbCI6Ilx1NkUwNVx1N0E3QSIsInBhZ2VzLnNlYXJjaFRhYmxlLmV4cG9ydCI6Ilx1NUJGQ1x1NTFGQSIsInBhZ2VzLnNlYXJjaFRhYmxlLmNob3NlbiI6Ilx1NURGMlx1OTAwOVx1NjJFOSIsInBhZ2VzLnNlYXJjaFRhYmxlLml0ZW0iOiJcdTk4NzkiLCJwYWdlcy5zZWFyY2hUYWJsZS50b3RhbFNlcnZpY2VDYWxscyI6Ilx1NjcwRFx1NTJBMVx1OEMwM1x1NzUyOFx1NkIyMVx1NjU3MFx1NjAzQlx1OEJBMSIsInBhZ2VzLnNlYXJjaFRhYmxlLnRlblRob3VzYW5kIjoiXHU0RTA3IiwicGFnZXMuc2VhcmNoVGFibGUuYmF0Y2hEZWxldGlvbiI6Ilx1NjI3OVx1OTFDRlx1NTIyMFx1OTY2NCIsInBhZ2VzLnNlYXJjaFRhYmxlLmJhdGNoQXBwcm92YWwiOiJcdTYyNzlcdTkxQ0ZcdTVCQTFcdTYyNzkifSxIdD17ImFwcC5wd2Eub2ZmbGluZSI6Ilx1NUY1M1x1NTI0RFx1NTkwNFx1NEU4RVx1NzlCQlx1N0VCRlx1NzJCNlx1NjAwMSIsImFwcC5wd2Euc2VydmljZXdvcmtlci51cGRhdGVkIjoiXHU2NzA5XHU2NUIwXHU1MTg1XHU1QkI5IiwiYXBwLnB3YS5zZXJ2aWNld29ya2VyLnVwZGF0ZWQuaGludCI6Ilx1OEJGN1x1NzBCOVx1NTFGQlx1MjAxQ1x1NTIzN1x1NjVCMFx1MjAxRFx1NjMwOVx1OTRBRVx1NjIxNlx1ODAwNVx1NjI0Qlx1NTJBOFx1NTIzN1x1NjVCMFx1OTg3NVx1OTc2MiIsImFwcC5wd2Euc2VydmljZXdvcmtlci51cGRhdGVkLm9rIjoiXHU1MjM3XHU2NUIwIn0sanQ9eyJhcHAuc2V0dGluZy5wYWdlc3R5bGUiOiJcdTY1NzRcdTRGNTNcdTk4Q0VcdTY4M0NcdThCQkVcdTdGNkUiLCJhcHAuc2V0dGluZy5wYWdlc3R5bGUuZGFyayI6Ilx1NjY5N1x1ODI3Mlx1ODNEQ1x1NTM1NVx1OThDRVx1NjgzQyIsImFwcC5zZXR0aW5nLnBhZ2VzdHlsZS5saWdodCI6Ilx1NEVBRVx1ODI3Mlx1ODNEQ1x1NTM1NVx1OThDRVx1NjgzQyIsImFwcC5zZXR0aW5nLmNvbnRlbnQtd2lkdGgiOiJcdTUxODVcdTVCQjlcdTUzM0FcdTU3REZcdTVCQkRcdTVFQTYiLCJhcHAuc2V0dGluZy5jb250ZW50LXdpZHRoLmZpeGVkIjoiXHU1QjlBXHU1QkJEIiwiYXBwLnNldHRpbmcuY29udGVudC13aWR0aC5mbHVpZCI6Ilx1NkQ0MVx1NUYwRiIsImFwcC5zZXR0aW5nLnRoZW1lY29sb3IiOiJcdTRFM0JcdTk4OThcdTgyNzIiLCJhcHAuc2V0dGluZy50aGVtZWNvbG9yLmR1c3QiOiJcdTg1ODRcdTY2QUUiLCJhcHAuc2V0dGluZy50aGVtZWNvbG9yLnZvbGNhbm8iOiJcdTcwNkJcdTVDNzEiLCJhcHAuc2V0dGluZy50aGVtZWNvbG9yLnN1bnNldCI6Ilx1NjVFNVx1NjZBRSIsImFwcC5zZXR0aW5nLnRoZW1lY29sb3IuY3lhbiI6Ilx1NjYwRVx1OTc1MiIsImFwcC5zZXR0aW5nLnRoZW1lY29sb3IuZ3JlZW4iOiJcdTY3ODFcdTUxNDlcdTdFRkYiLCJhcHAuc2V0dGluZy50aGVtZWNvbG9yLmRheWJyZWFrIjoiXHU2MkMyXHU2NjUzXHU4NEREXHVGRjA4XHU5RUQ4XHU4QkE0XHVGRjA5IiwiYXBwLnNldHRpbmcudGhlbWVjb2xvci5nZWVrYmx1ZSI6Ilx1Njc4MVx1NUJBMlx1ODRERCIsImFwcC5zZXR0aW5nLnRoZW1lY29sb3IucHVycGxlIjoiXHU5MTcxXHU3RDJCIiwiYXBwLnNldHRpbmcubmF2aWdhdGlvbm1vZGUiOiJcdTVCRkNcdTgyMkFcdTZBMjFcdTVGMEYiLCJhcHAuc2V0dGluZy5zaWRlbWVudSI6Ilx1NEZBN1x1OEZCOVx1ODNEQ1x1NTM1NVx1NUUwM1x1NUM0MCIsImFwcC5zZXR0aW5nLnRvcG1lbnUiOiJcdTk4NzZcdTkwRThcdTgzRENcdTUzNTVcdTVFMDNcdTVDNDAiLCJhcHAuc2V0dGluZy5maXhlZGhlYWRlciI6Ilx1NTZGQVx1NUI5QSBIZWFkZXIiLCJhcHAuc2V0dGluZy5maXhlZHNpZGViYXIiOiJcdTU2RkFcdTVCOUFcdTRGQTdcdThGQjlcdTgzRENcdTUzNTUiLCJhcHAuc2V0dGluZy5maXhlZHNpZGViYXIuaGludCI6Ilx1NEZBN1x1OEZCOVx1ODNEQ1x1NTM1NVx1NUUwM1x1NUM0MFx1NjVGNlx1NTNFRlx1OTE0RFx1N0Y2RSIsImFwcC5zZXR0aW5nLmhpZGVoZWFkZXIiOiJcdTRFMEJcdTZFRDFcdTY1RjZcdTk2OTBcdTg1Q0YgSGVhZGVyIiwiYXBwLnNldHRpbmcuaGlkZWhlYWRlci5oaW50IjoiXHU1NkZBXHU1QjlBIEhlYWRlciBcdTY1RjZcdTUzRUZcdTkxNERcdTdGNkUiLCJhcHAuc2V0dGluZy5vdGhlcnNldHRpbmdzIjoiXHU1MTc2XHU0RUQ2XHU4QkJFXHU3RjZFIiwiYXBwLnNldHRpbmcud2Vha21vZGUiOiJcdTgyNzJcdTVGMzFcdTZBMjFcdTVGMEYiLCJhcHAuc2V0dGluZy5jb3B5IjoiXHU2MkY3XHU4RDFEXHU4QkJFXHU3RjZFIiwiYXBwLnNldHRpbmcuY29weWluZm8iOiJcdTYyRjdcdThEMURcdTYyMTBcdTUyOUZcdUZGMENcdThCRjdcdTUyMzAgY29uZmlnL2RlZmF1bHRTZXR0aW5ncy5qcyBcdTRFMkRcdTY2RkZcdTYzNjJcdTlFRDhcdThCQTRcdTkxNERcdTdGNkUiLCJhcHAuc2V0dGluZy5wcm9kdWN0aW9uLmhpbnQiOiJcdTkxNERcdTdGNkVcdTY4MEZcdTUzRUFcdTU3MjhcdTVGMDBcdTUzRDFcdTczQUZcdTU4ODNcdTc1MjhcdTRFOEVcdTk4ODRcdTg5QzhcdUZGMENcdTc1MUZcdTRFQTdcdTczQUZcdTU4ODNcdTRFMERcdTRGMUFcdTVDNTVcdTczQjBcdUZGMENcdThCRjdcdTYyRjdcdThEMURcdTU0MEVcdTYyNEJcdTUyQThcdTRGRUVcdTY1MzlcdTkxNERcdTdGNkVcdTY1ODdcdTRFRjYifSxGdD17ImFwcC5zZXR0aW5ncy5tZW51TWFwLmJhc2ljIjoiXHU1N0ZBXHU2NzJDXHU4QkJFXHU3RjZFIiwiYXBwLnNldHRpbmdzLm1lbnVNYXAuc2VjdXJpdHkiOiJcdTVCODlcdTUxNjhcdThCQkVcdTdGNkUiLCJhcHAuc2V0dGluZ3MubWVudU1hcC5iaW5kaW5nIjoiXHU4RDI2XHU1M0Y3XHU3RUQxXHU1QjlBIiwiYXBwLnNldHRpbmdzLm1lbnVNYXAubm90aWZpY2F0aW9uIjoiXHU2NUIwXHU2RDg4XHU2MDZGXHU5MDFBXHU3N0U1IiwiYXBwLnNldHRpbmdzLmJhc2ljLmF2YXRhciI6Ilx1NTkzNFx1NTBDRiIsImFwcC5zZXR0aW5ncy5iYXNpYy5jaGFuZ2UtYXZhdGFyIjoiXHU2NkY0XHU2MzYyXHU1OTM0XHU1MENGIiwiYXBwLnNldHRpbmdzLmJhc2ljLmVtYWlsIjoiXHU5MEFFXHU3QkIxIiwiYXBwLnNldHRpbmdzLmJhc2ljLmVtYWlsLW1lc3NhZ2UiOiJcdThCRjdcdThGOTNcdTUxNjVcdTYwQThcdTc2ODRcdTkwQUVcdTdCQjEhIiwiYXBwLnNldHRpbmdzLmJhc2ljLm5pY2tuYW1lIjoiXHU2NjM1XHU3OUYwIiwiYXBwLnNldHRpbmdzLmJhc2ljLm5pY2tuYW1lLW1lc3NhZ2UiOiJcdThCRjdcdThGOTNcdTUxNjVcdTYwQThcdTc2ODRcdTY2MzVcdTc5RjAhIiwiYXBwLnNldHRpbmdzLmJhc2ljLnByb2ZpbGUiOiJcdTRFMkFcdTRFQkFcdTdCODBcdTRFQ0IiLCJhcHAuc2V0dGluZ3MuYmFzaWMucHJvZmlsZS1tZXNzYWdlIjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU0RTJBXHU0RUJBXHU3QjgwXHU0RUNCISIsImFwcC5zZXR0aW5ncy5iYXNpYy5wcm9maWxlLXBsYWNlaG9sZGVyIjoiXHU0RTJBXHU0RUJBXHU3QjgwXHU0RUNCIiwiYXBwLnNldHRpbmdzLmJhc2ljLmNvdW50cnkiOiJcdTU2RkRcdTVCQjYvXHU1NzMwXHU1MzNBIiwiYXBwLnNldHRpbmdzLmJhc2ljLmNvdW50cnktbWVzc2FnZSI6Ilx1OEJGN1x1OEY5M1x1NTE2NVx1NjBBOFx1NzY4NFx1NTZGRFx1NUJCNlx1NjIxNlx1NTczMFx1NTMzQSEiLCJhcHAuc2V0dGluZ3MuYmFzaWMuZ2VvZ3JhcGhpYyI6Ilx1NjI0MFx1NTcyOFx1NzcwMVx1NUUwMiIsImFwcC5zZXR0aW5ncy5iYXNpYy5nZW9ncmFwaGljLW1lc3NhZ2UiOiJcdThCRjdcdThGOTNcdTUxNjVcdTYwQThcdTc2ODRcdTYyNDBcdTU3MjhcdTc3MDFcdTVFMDIhIiwiYXBwLnNldHRpbmdzLmJhc2ljLmFkZHJlc3MiOiJcdTg4NTdcdTkwNTNcdTU3MzBcdTU3NDAiLCJhcHAuc2V0dGluZ3MuYmFzaWMuYWRkcmVzcy1tZXNzYWdlIjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU2MEE4XHU3Njg0XHU4ODU3XHU5MDUzXHU1NzMwXHU1NzQwISIsImFwcC5zZXR0aW5ncy5iYXNpYy5waG9uZSI6Ilx1ODA1NFx1N0NGQlx1NzUzNVx1OEJERCIsImFwcC5zZXR0aW5ncy5iYXNpYy5waG9uZS1tZXNzYWdlIjoiXHU4QkY3XHU4RjkzXHU1MTY1XHU2MEE4XHU3Njg0XHU4MDU0XHU3Q0ZCXHU3NTM1XHU4QkREISIsImFwcC5zZXR0aW5ncy5iYXNpYy51cGRhdGUiOiJcdTY2RjRcdTY1QjBcdTU3RkFcdTY3MkNcdTRGRTFcdTYwNkYiLCJhcHAuc2V0dGluZ3Muc2VjdXJpdHkuc3Ryb25nIjoiXHU1RjNBIiwiYXBwLnNldHRpbmdzLnNlY3VyaXR5Lm1lZGl1bSI6Ilx1NEUyRCIsImFwcC5zZXR0aW5ncy5zZWN1cml0eS53ZWFrIjoiXHU1RjMxIiwiYXBwLnNldHRpbmdzLnNlY3VyaXR5LnBhc3N3b3JkIjoiXHU4RDI2XHU2MjM3XHU1QkM2XHU3ODAxIiwiYXBwLnNldHRpbmdzLnNlY3VyaXR5LnBhc3N3b3JkLWRlc2NyaXB0aW9uIjoiXHU1RjUzXHU1MjREXHU1QkM2XHU3ODAxXHU1RjNBXHU1RUE2IiwiYXBwLnNldHRpbmdzLnNlY3VyaXR5LnBob25lIjoiXHU1QkM2XHU0RkREXHU2MjRCXHU2NzNBIiwiYXBwLnNldHRpbmdzLnNlY3VyaXR5LnBob25lLWRlc2NyaXB0aW9uIjoiXHU1REYyXHU3RUQxXHU1QjlBXHU2MjRCXHU2NzNBIiwiYXBwLnNldHRpbmdzLnNlY3VyaXR5LnF1ZXN0aW9uIjoiXHU1QkM2XHU0RkREXHU5NUVFXHU5ODk4IiwiYXBwLnNldHRpbmdzLnNlY3VyaXR5LnF1ZXN0aW9uLWRlc2NyaXB0aW9uIjoiXHU2NzJBXHU4QkJFXHU3RjZFXHU1QkM2XHU0RkREXHU5NUVFXHU5ODk4XHVGRjBDXHU1QkM2XHU0RkREXHU5NUVFXHU5ODk4XHU1M0VGXHU2NzA5XHU2NTQ4XHU0RkREXHU2MkE0XHU4RDI2XHU2MjM3XHU1Qjg5XHU1MTY4IiwiYXBwLnNldHRpbmdzLnNlY3VyaXR5LmVtYWlsIjoiXHU1OTA3XHU3NTI4XHU5MEFFXHU3QkIxIiwiYXBwLnNldHRpbmdzLnNlY3VyaXR5LmVtYWlsLWRlc2NyaXB0aW9uIjoiXHU1REYyXHU3RUQxXHU1QjlBXHU5MEFFXHU3QkIxIiwiYXBwLnNldHRpbmdzLnNlY3VyaXR5Lm1mYSI6Ik1GQSBcdThCQkVcdTU5MDciLCJhcHAuc2V0dGluZ3Muc2VjdXJpdHkubWZhLWRlc2NyaXB0aW9uIjoiXHU2NzJBXHU3RUQxXHU1QjlBIE1GQSBcdThCQkVcdTU5MDdcdUZGMENcdTdFRDFcdTVCOUFcdTU0MEVcdUZGMENcdTUzRUZcdTRFRTVcdThGREJcdTg4NENcdTRFOENcdTZCMjFcdTc4NkVcdThCQTQiLCJhcHAuc2V0dGluZ3Muc2VjdXJpdHkubW9kaWZ5IjoiXHU0RkVFXHU2NTM5IiwiYXBwLnNldHRpbmdzLnNlY3VyaXR5LnNldCI6Ilx1OEJCRVx1N0Y2RSIsImFwcC5zZXR0aW5ncy5zZWN1cml0eS5iaW5kIjoiXHU3RUQxXHU1QjlBIiwiYXBwLnNldHRpbmdzLmJpbmRpbmcudGFvYmFvIjoiXHU3RUQxXHU1QjlBXHU2REQ4XHU1QjlEIiwiYXBwLnNldHRpbmdzLmJpbmRpbmcudGFvYmFvLWRlc2NyaXB0aW9uIjoiXHU1RjUzXHU1MjREXHU2NzJBXHU3RUQxXHU1QjlBXHU2REQ4XHU1QjlEXHU4RDI2XHU1M0Y3IiwiYXBwLnNldHRpbmdzLmJpbmRpbmcuYWxpcGF5IjoiXHU3RUQxXHU1QjlBXHU2NTJGXHU0RUQ4XHU1QjlEIiwiYXBwLnNldHRpbmdzLmJpbmRpbmcuYWxpcGF5LWRlc2NyaXB0aW9uIjoiXHU1RjUzXHU1MjREXHU2NzJBXHU3RUQxXHU1QjlBXHU2NTJGXHU0RUQ4XHU1QjlEXHU4RDI2XHU1M0Y3IiwiYXBwLnNldHRpbmdzLmJpbmRpbmcuZGluZ2RpbmciOiJcdTdFRDFcdTVCOUFcdTk0ODlcdTk0ODkiLCJhcHAuc2V0dGluZ3MuYmluZGluZy5kaW5nZGluZy1kZXNjcmlwdGlvbiI6Ilx1NUY1M1x1NTI0RFx1NjcyQVx1N0VEMVx1NUI5QVx1OTQ4OVx1OTQ4OVx1OEQyNlx1NTNGNyIsImFwcC5zZXR0aW5ncy5iaW5kaW5nLmJpbmQiOiJcdTdFRDFcdTVCOUEiLCJhcHAuc2V0dGluZ3Mubm90aWZpY2F0aW9uLnBhc3N3b3JkIjoiXHU4RDI2XHU2MjM3XHU1QkM2XHU3ODAxIiwiYXBwLnNldHRpbmdzLm5vdGlmaWNhdGlvbi5wYXNzd29yZC1kZXNjcmlwdGlvbiI6Ilx1NTE3Nlx1NEVENlx1NzUyOFx1NjIzN1x1NzY4NFx1NkQ4OFx1NjA2Rlx1NUMwNlx1NEVFNVx1N0FEOVx1NTE4NVx1NEZFMVx1NzY4NFx1NUY2Mlx1NUYwRlx1OTAxQVx1NzdFNSIsImFwcC5zZXR0aW5ncy5ub3RpZmljYXRpb24ubWVzc2FnZXMiOiJcdTdDRkJcdTdFREZcdTZEODhcdTYwNkYiLCJhcHAuc2V0dGluZ3Mubm90aWZpY2F0aW9uLm1lc3NhZ2VzLWRlc2NyaXB0aW9uIjoiXHU3Q0ZCXHU3RURGXHU2RDg4XHU2MDZGXHU1QzA2XHU0RUU1XHU3QUQ5XHU1MTg1XHU0RkUxXHU3Njg0XHU1RjYyXHU1RjBGXHU5MDFBXHU3N0U1IiwiYXBwLnNldHRpbmdzLm5vdGlmaWNhdGlvbi50b2RvIjoiXHU1Rjg1XHU1MjlFXHU0RUZCXHU1MkExIiwiYXBwLnNldHRpbmdzLm5vdGlmaWNhdGlvbi50b2RvLWRlc2NyaXB0aW9uIjoiXHU1Rjg1XHU1MjlFXHU0RUZCXHU1MkExXHU1QzA2XHU0RUU1XHU3QUQ5XHU1MTg1XHU0RkUxXHU3Njg0XHU1RjYyXHU1RjBGXHU5MDFBXHU3N0U1IiwiYXBwLnNldHRpbmdzLm9wZW4iOiJcdTVGMDAiLCJhcHAuc2V0dGluZ3MuY2xvc2UiOiJcdTUxNzMifSxwbj17InN5c3RlbS51c2VyLnRpdGxlIjoiXHU3NTI4XHU2MjM3XHU0RkUxXHU2MDZGIiwic3lzdGVtLnVzZXIudXNlcl9pZCI6Ilx1NzUyOFx1NjIzN1x1N0YxNlx1NTNGNyIsInN5c3RlbS51c2VyLmRlcHRfbmFtZSI6Ilx1OTBFOFx1OTVFOCIsInN5c3RlbS51c2VyLnVzZXJfbmFtZSI6Ilx1NzUyOFx1NjIzN1x1OEQyNlx1NTNGNyIsInN5c3RlbS51c2VyLm5pY2tfbmFtZSI6Ilx1NzUyOFx1NjIzN1x1NjYzNVx1NzlGMCIsInN5c3RlbS51c2VyLnVzZXJfdHlwZSI6Ilx1NzUyOFx1NjIzN1x1N0M3Qlx1NTc4QiIsInN5c3RlbS51c2VyLmVtYWlsIjoiXHU3NTI4XHU2MjM3XHU5MEFFXHU3QkIxIiwic3lzdGVtLnVzZXIucGhvbmVudW1iZXIiOiJcdTYyNEJcdTY3M0FcdTUzRjdcdTc4MDEiLCJzeXN0ZW0udXNlci5zZXgiOiJcdTc1MjhcdTYyMzdcdTYwMjdcdTUyMkIiLCJzeXN0ZW0udXNlci5hdmF0YXIiOiJcdTU5MzRcdTUwQ0ZcdTU3MzBcdTU3NDAiLCJzeXN0ZW0udXNlci5wYXNzd29yZCI6Ilx1NUJDNlx1NzgwMSIsInN5c3RlbS51c2VyLnN0YXR1cyI6Ilx1NUUxMFx1NTNGN1x1NzJCNlx1NjAwMSIsInN5c3RlbS51c2VyLmRlbF9mbGFnIjoiXHU1MjIwXHU5NjY0XHU2ODA3XHU1RkQ3Iiwic3lzdGVtLnVzZXIubG9naW5faXAiOiJcdTY3MDBcdTU0MEVcdTc2N0JcdTVGNTVJUCIsInN5c3RlbS51c2VyLmxvZ2luX2RhdGUiOiJcdTY3MDBcdTU0MEVcdTc2N0JcdTVGNTVcdTY1RjZcdTk1RjQiLCJzeXN0ZW0udXNlci5jcmVhdGVfYnkiOiJcdTUyMUJcdTVFRkFcdTgwMDUiLCJzeXN0ZW0udXNlci5jcmVhdGVfdGltZSI6Ilx1NTIxQlx1NUVGQVx1NjVGNlx1OTVGNCIsInN5c3RlbS51c2VyLnVwZGF0ZV9ieSI6Ilx1NjZGNFx1NjVCMFx1ODAwNSIsInN5c3RlbS51c2VyLnVwZGF0ZV90aW1lIjoiXHU2NkY0XHU2NUIwXHU2NUY2XHU5NUY0Iiwic3lzdGVtLnVzZXIucmVtYXJrIjoiXHU1OTA3XHU2Q0U4Iiwic3lzdGVtLnVzZXIucG9zdCI6Ilx1NUM5N1x1NEY0RCIsInN5c3RlbS51c2VyLnJvbGUiOiJcdTg5RDJcdTgyNzIiLCJzeXN0ZW0udXNlci5hdXRoLnJvbGUiOiJcdTUyMDZcdTkxNERcdTg5RDJcdTgyNzIiLCJzeXN0ZW0udXNlci5yZXNldC5wYXNzd29yZCI6Ilx1NUJDNlx1NzgwMVx1OTFDRFx1N0Y2RSIsInN5c3RlbS51c2VyLm1vZGlmeV9pbmZvIjoiXHU3RjE2XHU4RjkxXHU3NTI4XHU2MjM3XHU0RkUxXHU2MDZGIiwic3lzdGVtLnVzZXIub2xkX3Bhc3N3b3JkIjoiXHU2NUU3XHU1QkM2XHU3ODAxIiwic3lzdGVtLnVzZXIubmV3X3Bhc3N3b3JkIjoiXHU2NUIwXHU1QkM2XHU3ODAxIiwic3lzdGVtLnVzZXIuY29uZmlybV9wYXNzd29yZCI6Ilx1Nzg2RVx1OEJBNFx1NUJDNlx1NzgwMSIsInN5c3RlbS51c2VyLm1vZGlmeV9hdmF0YXIiOiJcdTRGRUVcdTY1MzlcdTU5MzRcdTUwQ0YifSxjbj17InN5c3RlbS5tZW51LnRpdGxlIjoiXHU4M0RDXHU1MzU1XHU2NzQzXHU5NjUwIiwic3lzdGVtLm1lbnUubWVudV9pZCI6Ilx1ODNEQ1x1NTM1NVx1N0YxNlx1NTNGNyIsInN5c3RlbS5tZW51Lm1lbnVfbmFtZSI6Ilx1ODNEQ1x1NTM1NVx1NTQwRFx1NzlGMCIsInN5c3RlbS5tZW51LnBhcmVudF9pZCI6Ilx1NEUwQVx1N0VBN1x1ODNEQ1x1NTM1NSIsInN5c3RlbS5tZW51Lm9yZGVyX251bSI6Ilx1NjYzRVx1NzkzQVx1OTg3QVx1NUU4RiIsInN5c3RlbS5tZW51LnBhdGgiOiJcdThERUZcdTc1MzFcdTU3MzBcdTU3NDAiLCJzeXN0ZW0ubWVudS5jb21wb25lbnQiOiJcdTdFQzRcdTRFRjZcdThERUZcdTVGODQiLCJzeXN0ZW0ubWVudS5xdWVyeSI6Ilx1OERFRlx1NzUzMVx1NTNDMlx1NjU3MCIsInN5c3RlbS5tZW51LmlzX2ZyYW1lIjoiXHU2NjJGXHU1NDI2XHU0RTNBXHU1OTE2XHU5NEZFIiwic3lzdGVtLm1lbnUuaXNfY2FjaGUiOiJcdTY2MkZcdTU0MjZcdTdGMTNcdTVCNTgiLCJzeXN0ZW0ubWVudS5tZW51X3R5cGUiOiJcdTgzRENcdTUzNTVcdTdDN0JcdTU3OEIiLCJzeXN0ZW0ubWVudS52aXNpYmxlIjoiXHU2NjNFXHU3OTNBXHU3MkI2XHU2MDAxIiwic3lzdGVtLm1lbnUuc3RhdHVzIjoiXHU4M0RDXHU1MzU1XHU3MkI2XHU2MDAxIiwic3lzdGVtLm1lbnUucGVybXMiOiJcdTY3NDNcdTk2NTBcdTY4MDdcdThCQzYiLCJzeXN0ZW0ubWVudS5pY29uIjoiXHU4M0RDXHU1MzU1XHU1NkZFXHU2ODA3Iiwic3lzdGVtLm1lbnUuY3JlYXRlX2J5IjoiXHU1MjFCXHU1RUZBXHU4MDA1Iiwic3lzdGVtLm1lbnUuY3JlYXRlX3RpbWUiOiJcdTUyMUJcdTVFRkFcdTY1RjZcdTk1RjQiLCJzeXN0ZW0ubWVudS51cGRhdGVfYnkiOiJcdTY2RjRcdTY1QjBcdTgwMDUiLCJzeXN0ZW0ubWVudS51cGRhdGVfdGltZSI6Ilx1NjZGNFx1NjVCMFx1NjVGNlx1OTVGNCIsInN5c3RlbS5tZW51LnJlbWFyayI6Ilx1NTkwN1x1NkNFOCJ9LG9yPXsic3lzdGVtLmRpY3QudGl0bGUiOiJcdTVCNTdcdTUxNzhcdTdDN0JcdTU3OEIiLCJzeXN0ZW0uZGljdC5kaWN0X2lkIjoiXHU1QjU3XHU1MTc4XHU0RTNCXHU5NTJFIiwic3lzdGVtLmRpY3QuZGljdF9uYW1lIjoiXHU1QjU3XHU1MTc4XHU1NDBEXHU3OUYwIiwic3lzdGVtLmRpY3QuZGljdF90eXBlIjoiXHU1QjU3XHU1MTc4XHU3QzdCXHU1NzhCIiwic3lzdGVtLmRpY3Quc3RhdHVzIjoiXHU3MkI2XHU2MDAxIiwic3lzdGVtLmRpY3QuY3JlYXRlX2J5IjoiXHU1MjFCXHU1RUZBXHU4MDA1Iiwic3lzdGVtLmRpY3QuY3JlYXRlX3RpbWUiOiJcdTUyMUJcdTVFRkFcdTY1RjZcdTk1RjQiLCJzeXN0ZW0uZGljdC51cGRhdGVfYnkiOiJcdTY2RjRcdTY1QjBcdTgwMDUiLCJzeXN0ZW0uZGljdC51cGRhdGVfdGltZSI6Ilx1NjZGNFx1NjVCMFx1NjVGNlx1OTVGNCIsInN5c3RlbS5kaWN0LnJlbWFyayI6Ilx1NTkwN1x1NkNFOCJ9LFRuPXsic3lzdGVtLmRpY3QuZGF0YS50aXRsZSI6Ilx1NUI1N1x1NTE3OFx1NjU3MFx1NjM2RSIsInN5c3RlbS5kaWN0LmRhdGEuZGljdF9jb2RlIjoiXHU1QjU3XHU1MTc4XHU3RjE2XHU3ODAxIiwic3lzdGVtLmRpY3QuZGF0YS5kaWN0X3NvcnQiOiJcdTVCNTdcdTUxNzhcdTYzOTJcdTVFOEYiLCJzeXN0ZW0uZGljdC5kYXRhLmRpY3RfbGFiZWwiOiJcdTVCNTdcdTUxNzhcdTY4MDdcdTdCN0UiLCJzeXN0ZW0uZGljdC5kYXRhLmRpY3RfdmFsdWUiOiJcdTVCNTdcdTUxNzhcdTk1MkVcdTUwM0MiLCJzeXN0ZW0uZGljdC5kYXRhLmRpY3RfdHlwZSI6Ilx1NUI1N1x1NTE3OFx1N0M3Qlx1NTc4QiIsInN5c3RlbS5kaWN0LmRhdGEuY3NzX2NsYXNzIjoiXHU2ODM3XHU1RjBGXHU1QzVFXHU2MDI3Iiwic3lzdGVtLmRpY3QuZGF0YS5saXN0X2NsYXNzIjoiXHU1NkRFXHU2NjNFXHU2ODM3XHU1RjBGIiwic3lzdGVtLmRpY3QuZGF0YS5pc19kZWZhdWx0IjoiXHU2NjJGXHU1NDI2XHU5RUQ4XHU4QkE0Iiwic3lzdGVtLmRpY3QuZGF0YS5zdGF0dXMiOiJcdTcyQjZcdTYwMDEiLCJzeXN0ZW0uZGljdC5kYXRhLmNyZWF0ZV9ieSI6Ilx1NTIxQlx1NUVGQVx1ODAwNSIsInN5c3RlbS5kaWN0LmRhdGEuY3JlYXRlX3RpbWUiOiJcdTUyMUJcdTVFRkFcdTY1RjZcdTk1RjQiLCJzeXN0ZW0uZGljdC5kYXRhLnVwZGF0ZV9ieSI6Ilx1NjZGNFx1NjVCMFx1ODAwNSIsInN5c3RlbS5kaWN0LmRhdGEudXBkYXRlX3RpbWUiOiJcdTY2RjRcdTY1QjBcdTY1RjZcdTk1RjQiLCJzeXN0ZW0uZGljdC5kYXRhLnJlbWFyayI6Ilx1NTkwN1x1NkNFOCJ9LHpuPXsic3lzdGVtLnJvbGUudGl0bGUiOiJcdTg5RDJcdTgyNzJcdTRGRTFcdTYwNkYiLCJzeXN0ZW0ucm9sZS5yb2xlX2lkIjoiXHU4OUQyXHU4MjcyXHU3RjE2XHU1M0Y3Iiwic3lzdGVtLnJvbGUucm9sZV9uYW1lIjoiXHU4OUQyXHU4MjcyXHU1NDBEXHU3OUYwIiwic3lzdGVtLnJvbGUucm9sZV9rZXkiOiJcdTY3NDNcdTk2NTBcdTVCNTdcdTdCMjYiLCJzeXN0ZW0ucm9sZS5yb2xlX3NvcnQiOiJcdTY2M0VcdTc5M0FcdTk4N0FcdTVFOEYiLCJzeXN0ZW0ucm9sZS5kYXRhX3Njb3BlIjoiXHU2NTcwXHU2MzZFXHU4MzAzXHU1NkY0Iiwic3lzdGVtLnJvbGUubWVudV9jaGVja19zdHJpY3RseSI6Ilx1ODNEQ1x1NTM1NVx1NjgxMVx1OTAwOVx1NjJFOVx1OTg3OVx1NjYyRlx1NTQyNlx1NTE3M1x1ODA1NFx1NjYzRVx1NzkzQSIsInN5c3RlbS5yb2xlLmRlcHRfY2hlY2tfc3RyaWN0bHkiOiJcdTkwRThcdTk1RThcdTY4MTFcdTkwMDlcdTYyRTlcdTk4NzlcdTY2MkZcdTU0MjZcdTUxNzNcdTgwNTRcdTY2M0VcdTc5M0EiLCJzeXN0ZW0ucm9sZS5zdGF0dXMiOiJcdTg5RDJcdTgyNzJcdTcyQjZcdTYwMDEiLCJzeXN0ZW0ucm9sZS5kZWxfZmxhZyI6Ilx1NTIyMFx1OTY2NFx1NjgwN1x1NUZENyIsInN5c3RlbS5yb2xlLmNyZWF0ZV9ieSI6Ilx1NTIxQlx1NUVGQVx1ODAwNSIsInN5c3RlbS5yb2xlLmNyZWF0ZV90aW1lIjoiXHU1MjFCXHU1RUZBXHU2NUY2XHU5NUY0Iiwic3lzdGVtLnJvbGUudXBkYXRlX2J5IjoiXHU2NkY0XHU2NUIwXHU4MDA1Iiwic3lzdGVtLnJvbGUudXBkYXRlX3RpbWUiOiJcdTY2RjRcdTY1QjBcdTY1RjZcdTk1RjQiLCJzeXN0ZW0ucm9sZS5yZW1hcmsiOiJcdTU5MDdcdTZDRTgiLCJzeXN0ZW0ucm9sZS5hdXRoIjoiXHU4M0RDXHU1MzU1XHU2NzQzXHU5NjUwIiwic3lzdGVtLnJvbGUuYXV0aC51c2VyIjoiXHU5MDA5XHU2MkU5XHU3NTI4XHU2MjM3Iiwic3lzdGVtLnJvbGUuYXV0aC5hZGRVc2VyIjoiXHU2REZCXHU1MkEwXHU3NTI4XHU2MjM3Iiwic3lzdGVtLnJvbGUuYXV0aC5jYW5jZWxBbGwiOiJcdTYyNzlcdTkxQ0ZcdTUzRDZcdTZEODhcdTYzODhcdTY3NDMifSxybj17InN5c3RlbS5kZXB0LnRpdGxlIjoiXHU5MEU4XHU5NUU4Iiwic3lzdGVtLmRlcHQuZGVwdF9pZCI6Ilx1OTBFOFx1OTVFOGlkIiwic3lzdGVtLmRlcHQucGFyZW50X2lkIjoiXHU3MjM2XHU5MEU4XHU5NUU4aWQiLCJzeXN0ZW0uZGVwdC5wYXJlbnRfZGVwdCI6Ilx1NEUwQVx1N0VBN1x1OTBFOFx1OTVFOCIsInN5c3RlbS5kZXB0LmFuY2VzdG9ycyI6Ilx1Nzk1Nlx1N0VBN1x1NTIxN1x1ODg2OCIsInN5c3RlbS5kZXB0LmRlcHRfbmFtZSI6Ilx1OTBFOFx1OTVFOFx1NTQwRFx1NzlGMCIsInN5c3RlbS5kZXB0Lm9yZGVyX251bSI6Ilx1NjYzRVx1NzkzQVx1OTg3QVx1NUU4RiIsInN5c3RlbS5kZXB0LmxlYWRlciI6Ilx1OEQxRlx1OEQyM1x1NEVCQSIsInN5c3RlbS5kZXB0LnBob25lIjoiXHU4MDU0XHU3Q0ZCXHU3NTM1XHU4QkREIiwic3lzdGVtLmRlcHQuZW1haWwiOiJcdTkwQUVcdTdCQjEiLCJzeXN0ZW0uZGVwdC5zdGF0dXMiOiJcdTkwRThcdTk1RThcdTcyQjZcdTYwMDEiLCJzeXN0ZW0uZGVwdC5kZWxfZmxhZyI6Ilx1NTIyMFx1OTY2NFx1NjgwN1x1NUZENyIsInN5c3RlbS5kZXB0LmNyZWF0ZV9ieSI6Ilx1NTIxQlx1NUVGQVx1ODAwNSIsInN5c3RlbS5kZXB0LmNyZWF0ZV90aW1lIjoiXHU1MjFCXHU1RUZBXHU2NUY2XHU5NUY0Iiwic3lzdGVtLmRlcHQudXBkYXRlX2J5IjoiXHU2NkY0XHU2NUIwXHU4MDA1Iiwic3lzdGVtLmRlcHQudXBkYXRlX3RpbWUiOiJcdTY2RjRcdTY1QjBcdTY1RjZcdTk1RjQifSxLdD17InN5c3RlbS5wb3N0LnRpdGxlIjoiXHU1Qzk3XHU0RjREXHU0RkUxXHU2MDZGIiwic3lzdGVtLnBvc3QucG9zdF9pZCI6Ilx1NUM5N1x1NEY0RFx1N0YxNlx1NTNGNyIsInN5c3RlbS5wb3N0LnBvc3RfY29kZSI6Ilx1NUM5N1x1NEY0RFx1N0YxNlx1NzgwMSIsInN5c3RlbS5wb3N0LnBvc3RfbmFtZSI6Ilx1NUM5N1x1NEY0RFx1NTQwRFx1NzlGMCIsInN5c3RlbS5wb3N0LnBvc3Rfc29ydCI6Ilx1NjYzRVx1NzkzQVx1OTg3QVx1NUU4RiIsInN5c3RlbS5wb3N0LnN0YXR1cyI6Ilx1NzJCNlx1NjAwMSIsInN5c3RlbS5wb3N0LmNyZWF0ZV9ieSI6Ilx1NTIxQlx1NUVGQVx1ODAwNSIsInN5c3RlbS5wb3N0LmNyZWF0ZV90aW1lIjoiXHU1MjFCXHU1RUZBXHU2NUY2XHU5NUY0Iiwic3lzdGVtLnBvc3QudXBkYXRlX2J5IjoiXHU2NkY0XHU2NUIwXHU4MDA1Iiwic3lzdGVtLnBvc3QudXBkYXRlX3RpbWUiOiJcdTY2RjRcdTY1QjBcdTY1RjZcdTk1RjQiLCJzeXN0ZW0ucG9zdC5yZW1hcmsiOiJcdTU5MDdcdTZDRTgifSx6dD17InN5c3RlbS5jb25maWcudGl0bGUiOiJcdTUzQzJcdTY1NzBcdTkxNERcdTdGNkUiLCJzeXN0ZW0uY29uZmlnLmNvbmZpZ19pZCI6Ilx1NTNDMlx1NjU3MFx1NEUzQlx1OTUyRSIsInN5c3RlbS5jb25maWcuY29uZmlnX25hbWUiOiJcdTUzQzJcdTY1NzBcdTU0MERcdTc5RjAiLCJzeXN0ZW0uY29uZmlnLmNvbmZpZ19rZXkiOiJcdTUzQzJcdTY1NzBcdTk1MkVcdTU0MEQiLCJzeXN0ZW0uY29uZmlnLmNvbmZpZ192YWx1ZSI6Ilx1NTNDMlx1NjU3MFx1OTUyRVx1NTAzQyIsInN5c3RlbS5jb25maWcuY29uZmlnX3R5cGUiOiJcdTdDRkJcdTdFREZcdTUxODVcdTdGNkUiLCJzeXN0ZW0uY29uZmlnLmNyZWF0ZV9ieSI6Ilx1NTIxQlx1NUVGQVx1ODAwNSIsInN5c3RlbS5jb25maWcuY3JlYXRlX3RpbWUiOiJcdTUyMUJcdTVFRkFcdTY1RjZcdTk1RjQiLCJzeXN0ZW0uY29uZmlnLnVwZGF0ZV9ieSI6Ilx1NjZGNFx1NjVCMFx1ODAwNSIsInN5c3RlbS5jb25maWcudXBkYXRlX3RpbWUiOiJcdTY2RjRcdTY1QjBcdTY1RjZcdTk1RjQiLCJzeXN0ZW0uY29uZmlnLnJlbWFyayI6Ilx1NTkwN1x1NkNFOCIsInN5c3RlbS5jb25maWcucmVmcmVzaENhY2hlIjoiXHU1MjM3XHU2NUIwXHU3RjEzXHU1QjU4In0sT3Q9eyJzeXN0ZW0ubm90aWNlLnRpdGxlIjoiXHU5MDFBXHU3N0U1XHU1MTZDXHU1NDRBIiwic3lzdGVtLm5vdGljZS5ub3RpY2VfaWQiOiJcdTUxNkNcdTU0NEFcdTdGMTZcdTUzRjciLCJzeXN0ZW0ubm90aWNlLm5vdGljZV90aXRsZSI6Ilx1NTE2Q1x1NTQ0QVx1NjgwN1x1OTg5OCIsInN5c3RlbS5ub3RpY2Uubm90aWNlX3R5cGUiOiJcdTUxNkNcdTU0NEFcdTdDN0JcdTU3OEIiLCJzeXN0ZW0ubm90aWNlLm5vdGljZV9jb250ZW50IjoiXHU1MTZDXHU1NDRBXHU1MTg1XHU1QkI5Iiwic3lzdGVtLm5vdGljZS5zdGF0dXMiOiJcdTUxNkNcdTU0NEFcdTcyQjZcdTYwMDEiLCJzeXN0ZW0ubm90aWNlLmNyZWF0ZV9ieSI6Ilx1NTIxQlx1NUVGQVx1ODAwNSIsInN5c3RlbS5ub3RpY2UuY3JlYXRlX3RpbWUiOiJcdTUyMUJcdTVFRkFcdTY1RjZcdTk1RjQiLCJzeXN0ZW0ubm90aWNlLnVwZGF0ZV9ieSI6Ilx1NjZGNFx1NjVCMFx1ODAwNSIsInN5c3RlbS5ub3RpY2UudXBkYXRlX3RpbWUiOiJcdTY2RjRcdTY1QjBcdTY1RjZcdTk1RjQiLCJzeXN0ZW0ubm90aWNlLnJlbWFyayI6Ilx1NTkwN1x1NkNFOCJ9LGxuPXsibW9uaXRvci5vcGVybG9nLnRpdGxlIjoiXHU2NENEXHU0RjVDXHU2NUU1XHU1RkQ3XHU4QkIwXHU1RjU1IiwibW9uaXRvci5vcGVybG9nLm9wZXJfaWQiOiJcdTY1RTVcdTVGRDdcdTRFM0JcdTk1MkUiLCJtb25pdG9yLm9wZXJsb2cuYnVzaW5lc3NfdHlwZSI6Ilx1NEUxQVx1NTJBMVx1N0M3Qlx1NTc4QiIsIm1vbml0b3Iub3BlcmxvZy5tZXRob2QiOiJcdTY1QjlcdTZDRDVcdTU0MERcdTc5RjAiLCJtb25pdG9yLm9wZXJsb2cucmVxdWVzdF9tZXRob2QiOiJcdThCRjdcdTZDNDJcdTY1QjlcdTVGMEYiLCJtb25pdG9yLm9wZXJsb2cub3BlcmF0b3JfdHlwZSI6Ilx1NjRDRFx1NEY1Q1x1N0M3Qlx1NTIyQiIsIm1vbml0b3Iub3BlcmxvZy5vcGVyX25hbWUiOiJcdTY0Q0RcdTRGNUNcdTRFQkFcdTU0NTgiLCJtb25pdG9yLm9wZXJsb2cuZGVwdF9uYW1lIjoiXHU5MEU4XHU5NUU4XHU1NDBEXHU3OUYwIiwibW9uaXRvci5vcGVybG9nLm9wZXJfdXJsIjoiXHU4QkY3XHU2QzQyVVJMIiwibW9uaXRvci5vcGVybG9nLm9wZXJfaXAiOiJcdTRFM0JcdTY3M0FcdTU3MzBcdTU3NDAiLCJtb25pdG9yLm9wZXJsb2cub3Blcl9sb2NhdGlvbiI6Ilx1NjRDRFx1NEY1Q1x1NTczMFx1NzBCOSIsIm1vbml0b3Iub3BlcmxvZy5vcGVyX3BhcmFtIjoiXHU4QkY3XHU2QzQyXHU1M0MyXHU2NTcwIiwibW9uaXRvci5vcGVybG9nLmpzb25fcmVzdWx0IjoiXHU4RkQ0XHU1NkRFXHU1M0MyXHU2NTcwIiwibW9uaXRvci5vcGVybG9nLnN0YXR1cyI6Ilx1NjRDRFx1NEY1Q1x1NzJCNlx1NjAwMSIsIm1vbml0b3Iub3BlcmxvZy5lcnJvcl9tc2ciOiJcdTk1MTlcdThCRUZcdTZEODhcdTYwNkYiLCJtb25pdG9yLm9wZXJsb2cub3Blcl90aW1lIjoiXHU2NENEXHU0RjVDXHU2NUY2XHU5NUY0IiwibW9uaXRvci5vcGVybG9nLm1vZHVsZSI6Ilx1NjRDRFx1NEY1Q1x1NkEyMVx1NTc1NyJ9LEVuPXsibW9uaXRvci5sb2dpbmluZm9yLnRpdGxlIjoiXHU3Q0ZCXHU3RURGXHU4QkJGXHU5NUVFXHU4QkIwXHU1RjU1IiwibW9uaXRvci5sb2dpbmluZm9yLmluZm9faWQiOiJcdThCQkZcdTk1RUVcdTdGMTZcdTUzRjciLCJtb25pdG9yLmxvZ2luaW5mb3IudXNlcl9uYW1lIjoiXHU3NTI4XHU2MjM3XHU4RDI2XHU1M0Y3IiwibW9uaXRvci5sb2dpbmluZm9yLmlwYWRkciI6Ilx1NzY3Qlx1NUY1NUlQXHU1NzMwXHU1NzQwIiwibW9uaXRvci5sb2dpbmluZm9yLmxvZ2luX2xvY2F0aW9uIjoiXHU3NjdCXHU1RjU1XHU1NzMwXHU3MEI5IiwibW9uaXRvci5sb2dpbmluZm9yLmJyb3dzZXIiOiJcdTZENEZcdTg5QzhcdTU2NjhcdTdDN0JcdTU3OEIiLCJtb25pdG9yLmxvZ2luaW5mb3Iub3MiOiJcdTY0Q0RcdTRGNUNcdTdDRkJcdTdFREYiLCJtb25pdG9yLmxvZ2luaW5mb3Iuc3RhdHVzIjoiXHU3NjdCXHU1RjU1XHU3MkI2XHU2MDAxIiwibW9uaXRvci5sb2dpbmluZm9yLm1zZyI6Ilx1NjNEMFx1NzkzQVx1NkQ4OFx1NjA2RiIsIm1vbml0b3IubG9naW5pbmZvci5sb2dpbl90aW1lIjoiXHU4QkJGXHU5NUVFXHU2NUY2XHU5NUY0IiwibW9uaXRvci5sb2dpbmluZm9yLnVubG9jayI6Ilx1ODlFM1x1OTUwMSJ9LEduPXsibW9uaXRvci5vbmxpbmUudXNlci5pZCI6Ilx1N0YxNlx1NTNGNyIsIm1vbml0b3Iub25saW5lLnVzZXIudG9rZW5faWQiOiJcdTRGMUFcdThCRERcdTdGMTZcdTUzRjciLCJtb25pdG9yLm9ubGluZS51c2VyLnVzZXJfbmFtZSI6Ilx1NEYxQVx1OEJERFx1N0YxNlx1NTNGNyIsIm1vbml0b3Iub25saW5lLnVzZXIuaXBhZGRyIjoiXHU3NjdCXHU1RjU1SVBcdTU3MzBcdTU3NDAiLCJtb25pdG9yLm9ubGluZS51c2VyLmxvZ2luX2xvY2F0aW9uIjoiXHU3NjdCXHU1RjU1XHU1NzMwXHU3MEI5IiwibW9uaXRvci5vbmxpbmUudXNlci5icm93c2VyIjoiXHU2RDRGXHU4OUM4XHU1NjY4XHU3QzdCXHU1NzhCIiwibW9uaXRvci5vbmxpbmUudXNlci5vcyI6Ilx1NjRDRFx1NEY1Q1x1N0NGQlx1N0VERiIsIm1vbml0b3Iub25saW5lLnVzZXIuZGVwdF9uYW1lIjoiXHU5MEU4XHU5NUU4IiwibW9uaXRvci5vbmxpbmUudXNlci5sb2dpbl90aW1lIjoiXHU4QkJGXHU5NUVFXHU2NUY2XHU5NUY0IiwibW9uaXRvci5vbmxpbmUudXNlci5mb3JjZV9sb2dvdXQiOiJcdTVGM0FcdTUyMzZcdTkwMDBcdTUxRkEifSxwcj17Im1vbml0b3Iuam9iLnRpdGxlIjoiXHU1QjlBXHU2NUY2XHU0RUZCXHU1MkExXHU4QzAzXHU1RUE2IiwibW9uaXRvci5qb2Iuam9iX2lkIjoiXHU0RUZCXHU1MkExXHU3RjE2XHU1M0Y3IiwibW9uaXRvci5qb2Iuam9iX25hbWUiOiJcdTRFRkJcdTUyQTFcdTU0MERcdTc5RjAiLCJtb25pdG9yLmpvYi5qb2JfZ3JvdXAiOiJcdTRFRkJcdTUyQTFcdTdFQzRcdTU0MEQiLCJtb25pdG9yLmpvYi5pbnZva2VfdGFyZ2V0IjoiXHU4QzAzXHU3NTI4XHU2NUI5XHU2Q0Q1IiwibW9uaXRvci5qb2IuY3Jvbl9leHByZXNzaW9uIjoiY3Jvblx1NjI2N1x1ODg0Q1x1ODg2OFx1OEZCRVx1NUYwRiIsIm1vbml0b3Iuam9iLm1pc2ZpcmVfcG9saWN5IjoiXHU2MjY3XHU4ODRDXHU3QjU2XHU3NTY1IiwibW9uaXRvci5qb2IuY29uY3VycmVudCI6Ilx1NjYyRlx1NTQyNlx1NUU3Nlx1NTNEMVx1NjI2N1x1ODg0QyIsIm1vbml0b3Iuam9iLm5leHRfdmFsaWRfdGltZSI6Ilx1NEUwQlx1NkIyMVx1NjI2N1x1ODg0Q1x1NjVGNlx1OTVGNCIsIm1vbml0b3Iuam9iLnN0YXR1cyI6Ilx1NzJCNlx1NjAwMSIsIm1vbml0b3Iuam9iLmNyZWF0ZV9ieSI6Ilx1NTIxQlx1NUVGQVx1ODAwNSIsIm1vbml0b3Iuam9iLmNyZWF0ZV90aW1lIjoiXHU1MjFCXHU1RUZBXHU2NUY2XHU5NUY0IiwibW9uaXRvci5qb2IudXBkYXRlX2J5IjoiXHU2NkY0XHU2NUIwXHU4MDA1IiwibW9uaXRvci5qb2IudXBkYXRlX3RpbWUiOiJcdTY2RjRcdTY1QjBcdTY1RjZcdTk1RjQiLCJtb25pdG9yLmpvYi5yZW1hcmsiOiJcdTU5MDdcdTZDRThcdTRGRTFcdTYwNkYiLCJtb25pdG9yLmpvYi5kZXRhaWwiOiJcdTRFRkJcdTUyQTFcdThCRTZcdTYwQzUifSxQcj17Im1vbml0b3Iuam9iLmxvZy50aXRsZSI6Ilx1NUI5QVx1NjVGNlx1NEVGQlx1NTJBMVx1OEMwM1x1NUVBNlx1NjVFNVx1NUZENyIsIm1vbml0b3Iuam9iLmxvZy5qb2JfbG9nX2lkIjoiXHU0RUZCXHU1MkExXHU2NUU1XHU1RkQ3XHU3RjE2XHU1M0Y3IiwibW9uaXRvci5qb2IubG9nLmpvYl9uYW1lIjoiXHU0RUZCXHU1MkExXHU1NDBEXHU3OUYwIiwibW9uaXRvci5qb2IubG9nLmpvYl9ncm91cCI6Ilx1NEVGQlx1NTJBMVx1N0VDNFx1NTQwRCIsIm1vbml0b3Iuam9iLmxvZy5pbnZva2VfdGFyZ2V0IjoiXHU4QzAzXHU3NTI4XHU2NUI5XHU2Q0Q1IiwibW9uaXRvci5qb2IubG9nLmpvYl9tZXNzYWdlIjoiXHU2NUU1XHU1RkQ3XHU0RkUxXHU2MDZGIiwibW9uaXRvci5qb2IubG9nLnN0YXR1cyI6Ilx1NjI2N1x1ODg0Q1x1NzJCNlx1NjAwMSIsIm1vbml0b3Iuam9iLmxvZy5leGNlcHRpb25faW5mbyI6Ilx1NUYwMlx1NUUzOFx1NEZFMVx1NjA2RiIsIm1vbml0b3Iuam9iLmxvZy5jcmVhdGVfdGltZSI6Ilx1NTIxQlx1NUVGQVx1NjVGNlx1OTVGNCJ9LGJyPXsibW9uaXRvci5zZXJ2ZXIuY3B1LmNwdU51bSI6Ilx1NjgzOFx1NUZDM1x1NjU3MCIsIm1vbml0b3Iuc2VydmVyLmNwdS50b3RhbCI6Ilx1NjAzQlx1NEY3Rlx1NzUyOFx1NzM4NyIsIm1vbml0b3Iuc2VydmVyLmNwdS5zeXMiOiJcdTdDRkJcdTdFREZcdTRGN0ZcdTc1MjhcdTczODciLCJtb25pdG9yLnNlcnZlci5jcHUudXNlZCI6Ilx1NzUyOFx1NjIzN1x1NEY3Rlx1NzUyOFx1NzM4NyIsIm1vbml0b3Iuc2VydmVyLmNwdS53YWl0IjoiSU9cdTdCNDlcdTVGODUiLCJtb25pdG9yLnNlcnZlci5jcHUuZnJlZSI6Ilx1NUY1M1x1NTI0RFx1N0E3QVx1OTVGMlx1NzM4NyIsIm1vbml0b3Iuc2VydmVyLm1lbS50b3RhbCI6Ilx1NjAzQlx1NTE4NVx1NUI1OCIsIm1vbml0b3Iuc2VydmVyLm1lbS51c2VkIjoiXHU1REYyXHU3NTI4XHU1MTg1XHU1QjU4IiwibW9uaXRvci5zZXJ2ZXIubWVtLmZyZWUiOiJcdTUyNjlcdTRGNTlcdTUxODVcdTVCNTgiLCJtb25pdG9yLnNlcnZlci5tZW0udXNhZ2UiOiJcdTRGN0ZcdTc1MjhcdTczODciLCJtb25pdG9yLnNlcnZlci5kaXNrLmRpck5hbWUiOiJcdTc2RDhcdTdCMjZcdThERUZcdTVGODQiLCJtb25pdG9yLnNlcnZlci5kaXNrLnN5c1R5cGVOYW1lIjoiXHU2NTg3XHU0RUY2XHU3Q0ZCXHU3RURGIiwibW9uaXRvci5zZXJ2ZXIuZGlzay50eXBlTmFtZSI6Ilx1NzZEOFx1N0IyNlx1N0M3Qlx1NTc4QiIsIm1vbml0b3Iuc2VydmVyLmRpc2sudG90YWwiOiJcdTYwM0JcdTU5MjdcdTVDMEYiLCJtb25pdG9yLnNlcnZlci5kaXNrLmZyZWUiOiJcdTUzRUZcdTc1MjhcdTU5MjdcdTVDMEYiLCJtb25pdG9yLnNlcnZlci5kaXNrLnVzZWQiOiJcdTVERjJcdTc1MjhcdTU5MjdcdTVDMEYiLCJtb25pdG9yLnNlcnZlci5kaXNrLnVzYWdlIjoiXHU0RjdGXHU3NTI4XHU3Mzg3In0sTXI9aSgpKGkoKShpKCkoaSgpKGkoKShpKCkoaSgpKGkoKShpKCkoaSgpKGkoKShpKCkoaSgpKGkoKShpKCkoaSgpKGkoKShpKCkoaSgpKGkoKShpKCkoaSgpKGkoKSh7Im5hdkJhci5sYW5nIjoiXHU4QkVEXHU4QTAwIiwibGF5b3V0LnVzZXIubGluay5oZWxwIjoiXHU1RTJFXHU1MkE5IiwibGF5b3V0LnVzZXIubGluay5wcml2YWN5IjoiXHU5NjkwXHU3OUMxIiwibGF5b3V0LnVzZXIubGluay50ZXJtcyI6Ilx1Njc2MVx1NkIzRSIsImFwcC5jb3B5cmlnaHQucHJvZHVjZWQiOiJcdTg2ODJcdTg2ODFcdTk2QzZcdTU2RTJcdTRGNTNcdTlBOENcdTYyODBcdTY3MkZcdTkwRThcdTUxRkFcdTU0QzEiLCJhcHAucHJldmlldy5kb3duLmJsb2NrIjoiXHU0RTBCXHU4RjdEXHU2QjY0XHU5ODc1XHU5NzYyXHU1MjMwXHU2NzJDXHU1NzMwXHU5ODc5XHU3NkVFIiwiYXBwLndlbGNvbWUubGluay5mZXRjaC1ibG9ja3MiOiJcdTgzQjdcdTUzRDZcdTUxNjhcdTkwRThcdTUzM0FcdTU3NTciLCJhcHAud2VsY29tZS5saW5rLmJsb2NrLWxpc3QiOiJcdTU3RkFcdTRFOEUgYmxvY2sgXHU1RjAwXHU1M0QxXHVGRjBDXHU1RkVCXHU5MDFGXHU2Nzg0XHU1RUZBXHU2ODA3XHU1MUM2XHU5ODc1XHU5NzYyIn0sSWUpLEV0KSxhdCksZHQpLGp0KSxGdCksSHQpLHhlKSxwbiksY24pLG9yKSxUbiksem4pLHJuKSxLdCksenQpLE90KSxsbiksRW4pLEduKSxwciksUHIpLGJyKSwkcj1lKDUxMjc1KSxHcj17aXRlbXNfcGVyX3BhZ2U6Ilx1Njg5RC9cdTk4MDEiLGp1bXBfdG86Ilx1OERGM1x1ODFGMyIsanVtcF90b19jb25maXJtOiJcdTc4QkFcdTVCOUEiLHBhZ2U6Ilx1OTgwMSIscHJldl9wYWdlOiJcdTRFMEFcdTRFMDBcdTk4MDEiLG5leHRfcGFnZToiXHU0RTBCXHU0RTAwXHU5ODAxIixwcmV2XzU6Ilx1NTQxMVx1NTI0RCA1IFx1OTgwMSIsbmV4dF81OiJcdTU0MTFcdTVGOEMgNSBcdTk4MDEiLHByZXZfMzoiXHU1NDExXHU1MjREIDMgXHU5ODAxIixuZXh0XzM6Ilx1NTQxMVx1NUY4QyAzIFx1OTgwMSIscGFnZV9zaXplOiJcdTk4MDFcdTc4QkMifSxvYT1HcixyYT1lKDE0MTMpLE1hPWUoMjU1NDEpLGZhPSgwLHJhLlopKCgwLHJhLlopKHt9LE1hLnopLHt9LHtsb2NhbGU6InpoX1RXIix0b2RheToiXHU0RUNBXHU1OTI5Iixub3c6Ilx1NkI2NFx1NTIzQiIsYmFja1RvVG9kYXk6Ilx1OEZENFx1NTZERVx1NEVDQVx1NTkyOSIsb2s6Ilx1NzhCQVx1NUI5QSIsdGltZVNlbGVjdDoiXHU5MDc4XHU2NEM3XHU2NjQyXHU5NTkzIixkYXRlU2VsZWN0OiJcdTkwNzhcdTY0QzdcdTY1RTVcdTY3MUYiLHdlZWtTZWxlY3Q6Ilx1OTA3OFx1NjRDN1x1NTQ2OCIsY2xlYXI6Ilx1NkUwNVx1OTY2NCIsd2VlazoiXHU5MDMxIixtb250aDoiXHU2NzA4Iix5ZWFyOiJcdTVFNzQiLHByZXZpb3VzTW9udGg6Ilx1NEUwQVx1NTAwQlx1NjcwOCAoXHU3RkZCXHU5ODAxXHU0RTBBXHU5Mzc1KSIsbmV4dE1vbnRoOiJcdTRFMEJcdTUwMEJcdTY3MDggKFx1N0ZGQlx1OTgwMVx1NEUwQlx1OTM3NSkiLG1vbnRoU2VsZWN0OiJcdTkwNzhcdTY0QzdcdTY3MDhcdTRFRkQiLHllYXJTZWxlY3Q6Ilx1OTA3OFx1NjRDN1x1NUU3NFx1NEVGRCIsZGVjYWRlU2VsZWN0OiJcdTkwNzhcdTY0QzdcdTVFNzRcdTRFRTMiLHllYXJGb3JtYXQ6IllZWVlcdTVFNzQiLGRhdGVGb3JtYXQ6IllZWVlcdTVFNzRNXHU2NzA4RFx1NjVFNSIsZGF0ZVRpbWVGb3JtYXQ6IllZWVlcdTVFNzRNXHU2NzA4RFx1NjVFNSBISFx1NjY0Mm1tXHU1MjA2c3NcdTc5RDIiLHByZXZpb3VzWWVhcjoiXHU0RTBBXHU0RTAwXHU1RTc0IChDb250cm9sXHU5Mzc1XHU1MkEwXHU1REU2XHU2NUI5XHU1NDExXHU5Mzc1KSIsbmV4dFllYXI6Ilx1NEUwQlx1NEUwMFx1NUU3NCAoQ29udHJvbFx1OTM3NVx1NTJBMFx1NTNGM1x1NjVCOVx1NTQxMVx1OTM3NSkiLHByZXZpb3VzRGVjYWRlOiJcdTRFMEFcdTRFMDBcdTVFNzRcdTRFRTMiLG5leHREZWNhZGU6Ilx1NEUwQlx1NEUwMFx1NUU3NFx1NEVFMyIscHJldmlvdXNDZW50dXJ5OiJcdTRFMEFcdTRFMDBcdTRFMTZcdTdEMDAiLG5leHRDZW50dXJ5OiJcdTRFMEJcdTRFMDBcdTRFMTZcdTdEMDAiLGNlbGxEYXRlRm9ybWF0OiJEIixtb250aEJlZm9yZVllYXI6ITF9KSxoYT1mYSxOYT17cGxhY2Vob2xkZXI6Ilx1OEFDQlx1OTA3OFx1NjRDN1x1NjY0Mlx1OTU5MyJ9O2NvbnN0IGJhPXtsYW5nOk9iamVjdC5hc3NpZ24oe3BsYWNlaG9sZGVyOiJcdThBQ0JcdTkwNzhcdTY0QzdcdTY1RTVcdTY3MUYiLHllYXJQbGFjZWhvbGRlcjoiXHU4QUNCXHU5MDc4XHU2NEM3XHU1RTc0XHU0RUZEIixxdWFydGVyUGxhY2Vob2xkZXI6Ilx1OEFDQlx1OTA3OFx1NjRDN1x1NUI2M1x1NUVBNiIsbW9udGhQbGFjZWhvbGRlcjoiXHU4QUNCXHU5MDc4XHU2NEM3XHU2NzA4XHU0RUZEIix3ZWVrUGxhY2Vob2xkZXI6Ilx1OEFDQlx1OTA3OFx1NjRDN1x1NTQ2OCIscmFuZ2VQbGFjZWhvbGRlcjpbIlx1OTU4Qlx1NTlDQlx1NjVFNVx1NjcxRiIsIlx1N0Q1MFx1Njc1Rlx1NjVFNVx1NjcxRiJdLHJhbmdlWWVhclBsYWNlaG9sZGVyOlsiXHU5NThCXHU1OUNCXHU1RTc0XHU0RUZEIiwiXHU3RDUwXHU2NzVGXHU1RTc0XHU0RUZEIl0scmFuZ2VNb250aFBsYWNlaG9sZGVyOlsiXHU5NThCXHU1OUNCXHU2NzA4XHU0RUZEIiwiXHU3RDUwXHU2NzVGXHU2NzA4XHU0RUZEIl0scmFuZ2VRdWFydGVyUGxhY2Vob2xkZXI6WyJcdTk1OEJcdTU5Q0JcdTVCNjNcdTVFQTYiLCJcdTdENTBcdTY3NUZcdTVCNjNcdTVFQTYiXSxyYW5nZVdlZWtQbGFjZWhvbGRlcjpbIlx1OTU4Qlx1NTlDQlx1NTQ2OCIsIlx1N0Q1MFx1Njc1Rlx1NTQ2OCJdfSxoYSksdGltZVBpY2tlckxvY2FsZTpPYmplY3QuYXNzaWduKHt9LE5hKX07YmEubGFuZy5vaz0iXHU3OEJBIFx1NUI5QSI7dmFyIEFyPWJhLFJyPUFyO2NvbnN0IG1yPSIke2xhYmVsfVx1NEUwRFx1NjYyRlx1NEUwMFx1NTAwQlx1NjcwOVx1NjU0OFx1NzY4NCR7dHlwZX0iO3ZhciBIcj17bG9jYWxlOiJ6aC10dyIsUGFnaW5hdGlvbjpvYSxEYXRlUGlja2VyOkFyLFRpbWVQaWNrZXI6TmEsQ2FsZW5kYXI6UnIsZ2xvYmFsOntwbGFjZWhvbGRlcjoiXHU4QUNCXHU5MDc4XHU2NEM3In0sVGFibGU6e2ZpbHRlclRpdGxlOiJcdTdCRTlcdTkwNzhcdTU2NjgiLGZpbHRlckNvbmZpcm06Ilx1NzhCQVx1NUI5QSIsZmlsdGVyUmVzZXQ6Ilx1OTFDRFx1N0Y2RSIsZmlsdGVyRW1wdHlUZXh0OiJcdTcxMjFcdTdCRTlcdTkwNzhcdTk4MDUiLGZpbHRlckNoZWNrQWxsOiJcdTUxNjhcdTkwNzgiLGZpbHRlclNlYXJjaFBsYWNlaG9sZGVyOiJcdTU3MjhcdTdCRTlcdTkwNzhcdTk4MDVcdTRFMkRcdTY0MUNcdTVDMEIiLGVtcHR5VGV4dDoiXHU2NkFCXHU3MTIxXHU2NTc4XHU2NERBIixzZWxlY3RBbGw6Ilx1NTE2OFx1OTBFOFx1OTA3OFx1NTNENiIsc2VsZWN0SW52ZXJ0OiJcdTUzQ0RcdTU0MTFcdTkwNzhcdTUzRDYiLHNlbGVjdE5vbmU6Ilx1NkUwNVx1N0E3QVx1NjI0MFx1NjcwOSIsc2VsZWN0aW9uQWxsOiJcdTUxNjhcdTkwNzhcdTYyNDBcdTY3MDkiLHNvcnRUaXRsZToiXHU2MzkyXHU1RThGIixleHBhbmQ6Ilx1NUM1NVx1OTU4Qlx1ODg0QyIsY29sbGFwc2U6Ilx1OTVEQ1x1OTU4OVx1ODg0QyIsdHJpZ2dlckRlc2M6Ilx1OUVERVx1NjRDQVx1OTY0RFx1NUU4RiIsdHJpZ2dlckFzYzoiXHU5RURFXHU2NENBXHU1MzQ3XHU1RThGIixjYW5jZWxTb3J0OiJcdTUzRDZcdTZEODhcdTYzOTJcdTVFOEYifSxNb2RhbDp7b2tUZXh0OiJcdTc4QkFcdTVCOUEiLGNhbmNlbFRleHQ6Ilx1NTNENlx1NkQ4OCIsanVzdE9rVGV4dDoiXHU3N0U1XHU5MDUzXHU0RTg2In0sVG91cjp7TmV4dDoiXHU0RTBCXHU0RTAwXHU2QjY1IixQcmV2aW91czoiXHU0RTBBXHU0RTAwXHU2QjY1IixGaW5pc2g6Ilx1N0Q1MFx1Njc1Rlx1NUMwRVx1ODlCRCJ9LFBvcGNvbmZpcm06e29rVGV4dDoiXHU3OEJBXHU1QjlBIixjYW5jZWxUZXh0OiJcdTUzRDZcdTZEODgifSxUcmFuc2Zlcjp7dGl0bGVzOlsiIiwiIl0sc2VhcmNoUGxhY2Vob2xkZXI6Ilx1NjQxQ1x1NUMwQlx1OENDN1x1NjU5OSIsaXRlbVVuaXQ6Ilx1OTgwNVx1NzZFRSIsaXRlbXNVbml0OiJcdTk4MDVcdTc2RUUiLHJlbW92ZToiXHU1MjIwXHU5NjY0IixzZWxlY3RDdXJyZW50OiJcdTUxNjhcdTkwNzhcdTc1NzZcdTk4MDEiLHJlbW92ZUN1cnJlbnQ6Ilx1NTIyMFx1OTY2NFx1NzU3Nlx1OTgwMSIsc2VsZWN0QWxsOiJcdTUxNjhcdTkwNzhcdTYyNDBcdTY3MDkiLHJlbW92ZUFsbDoiXHU1MjIwXHU5NjY0XHU1MTY4XHU5MEU4IixzZWxlY3RJbnZlcnQ6Ilx1NTNDRFx1OTA3OFx1NzU3Nlx1OTgwMSJ9LFVwbG9hZDp7dXBsb2FkaW5nOiJcdTZCNjNcdTU3MjhcdTRFMEFcdTUwQjMuLi4iLHJlbW92ZUZpbGU6Ilx1NTIyQVx1OTY2NFx1NkE5NFx1Njg0OCIsdXBsb2FkRXJyb3I6Ilx1NEUwQVx1NTBCM1x1NTkzMVx1NjU1NyIscHJldmlld0ZpbGU6Ilx1NkE5NFx1Njg0OFx1OTgxMFx1ODlCRCIsZG93bmxvYWRGaWxlOiJcdTRFMEJcdThGN0RcdTY1ODdcdTRFRjYifSxFbXB0eTp7ZGVzY3JpcHRpb246Ilx1NzEyMVx1NkI2NFx1OENDN1x1NjU5OSJ9LEljb246e2ljb246Ilx1NTcxNlx1NkExOSJ9LFRleHQ6e2VkaXQ6Ilx1N0RFOFx1OEYyRiIsY29weToiXHU4OTA3XHU4OEZEIixjb3BpZWQ6Ilx1ODkwN1x1ODhGRFx1NjIxMFx1NTI5RiIsZXhwYW5kOiJcdTVDNTVcdTk1OEIifSxGb3JtOntvcHRpb25hbDoiXHVGRjA4XHU1M0VGXHU5MDc4XHVGRjA5IixkZWZhdWx0VmFsaWRhdGVNZXNzYWdlczp7ZGVmYXVsdDoiXHU1QjU3XHU2QkI1XHU5QTU3XHU4QjQ5XHU5MzJGXHU4QUE0JHtsYWJlbH0iLHJlcXVpcmVkOiJcdThBQ0JcdThGMzhcdTUxNjUke2xhYmVsfSIsZW51bToiJHtsYWJlbH1cdTVGQzVcdTk4MDhcdTY2MkZcdTUxNzZcdTRFMkRcdTRFMDBcdTUwMEJbJHtlbnVtfV0iLHdoaXRlc3BhY2U6IiR7bGFiZWx9XHU0RTBEXHU4MEZEXHU3MEJBXHU3QTdBXHU1QjU3XHU3QjI2IixkYXRlOntmb3JtYXQ6IiR7bGFiZWx9XHU2NUU1XHU2NzFGXHU2ODNDXHU1RjBGXHU3MTIxXHU2NTQ4IixwYXJzZToiJHtsYWJlbH1cdTRFMERcdTgwRkRcdThGNDlcdTYzREJcdTcwQkFcdTY1RTVcdTY3MUYiLGludmFsaWQ6IiR7bGFiZWx9XHU2NjJGXHU0RTAwXHU1MDBCXHU3MTIxXHU2NTQ4XHU2NUU1XHU2NzFGIn0sdHlwZXM6e3N0cmluZzptcixtZXRob2Q6bXIsYXJyYXk6bXIsb2JqZWN0Om1yLG51bWJlcjptcixkYXRlOm1yLGJvb2xlYW46bXIsaW50ZWdlcjptcixmbG9hdDptcixyZWdleHA6bXIsZW1haWw6bXIsdXJsOm1yLGhleDptcn0sc3RyaW5nOntsZW46IiR7bGFiZWx9XHU5ODA4XHU3MEJBJHtsZW59XHU1MDBCXHU1QjU3XHU3QjI2IixtaW46IiR7bGFiZWx9XHU2NzAwXHU1QzExJHttaW59XHU1MDBCXHU1QjU3XHU3QjI2IixtYXg6IiR7bGFiZWx9XHU2NzAwXHU1OTFBJHttYXh9XHU1MDBCXHU1QjU3XHU3QjI2IixyYW5nZToiJHtsYWJlbH1cdTk4MDhcdTU3Mjgke21pbn0tJHttYXh9XHU1QjU3XHU3QjI2XHU0RTRCXHU5NTkzIn0sbnVtYmVyOntsZW46IiR7bGFiZWx9XHU1RkM1XHU5ODA4XHU3QjQ5XHU2NUJDJHtsZW59IixtaW46IiR7bGFiZWx9XHU2NzAwXHU1QzBGXHU1MDNDXHU3MEJBJHttaW59IixtYXg6IiR7bGFiZWx9XHU2NzAwXHU1OTI3XHU1MDNDXHU3MEJBJHttYXh9IixyYW5nZToiJHtsYWJlbH1cdTk4MDhcdTU3Mjgke21pbn0tJHttYXh9XHU0RTRCXHU5NTkzIn0sYXJyYXk6e2xlbjoiXHU5ODA4XHU3MEJBJHtsZW59XHU1MDBCJHtsYWJlbH0iLG1pbjoiXHU2NzAwXHU1QzExJHttaW59XHU1MDBCJHtsYWJlbH0iLG1heDoiXHU2NzAwXHU1OTFBJHttYXh9XHU1MDBCJHtsYWJlbH0iLHJhbmdlOiIke2xhYmVsfVx1NjU3OFx1OTFDRlx1OTgwOFx1NTcyOCR7bWlufS0ke21heH1cdTRFNEJcdTk1OTMifSxwYXR0ZXJuOnttaXNtYXRjaDoiJHtsYWJlbH1cdTgyMDdcdTZBMjFcdTVGMEZcdTRFMERcdTUzMzlcdTkxNEQke3BhdHRlcm59In19fSxJbWFnZTp7cHJldmlldzoiXHU5ODEwXHU4OUJEIn0sUVJDb2RlOntleHBpcmVkOiJcdTRFOENcdTdEQURcdTc4QkNcdTkwNEVcdTY3MUYiLHJlZnJlc2g6Ilx1OUVERVx1NjRDQVx1NTIzN1x1NjVCMCIsc2Nhbm5lZDoiXHU1REYyXHU2MzgzXHU2M0NGIn19LEpyPXsiY29tcG9uZW50LnRhZ1NlbGVjdC5leHBhbmQiOiJcdTVDNTVcdTk1OEIiLCJjb21wb25lbnQudGFnU2VsZWN0LmNvbGxhcHNlIjoiXHU2NTM2XHU4RDc3IiwiY29tcG9uZW50LnRhZ1NlbGVjdC5hbGwiOiJcdTUxNjhcdTkwRTgifSxUYT17ImNvbXBvbmVudC5nbG9iYWxIZWFkZXIuc2VhcmNoIjoiXHU3QUQ5XHU1MTY3XHU2NDFDXHU3RDIyIiwiY29tcG9uZW50Lmdsb2JhbEhlYWRlci5zZWFyY2guZXhhbXBsZTEiOiJcdTY0MUNcdTdEMjJcdTYzRDBcdTc5M0FcdTU4RjkiLCJjb21wb25lbnQuZ2xvYmFsSGVhZGVyLnNlYXJjaC5leGFtcGxlMiI6Ilx1NjQxQ1x1N0QyMlx1NjNEMFx1NzkzQVx1NEU4QyIsImNvbXBvbmVudC5nbG9iYWxIZWFkZXIuc2VhcmNoLmV4YW1wbGUzIjoiXHU2NDFDXHU3RDIyXHU2M0QwXHU3OTNBXHU0RTA5IiwiY29tcG9uZW50Lmdsb2JhbEhlYWRlci5oZWxwIjoiXHU0RjdGXHU3NTI4XHU2MjRCXHU1MThBIiwiY29tcG9uZW50Lmdsb2JhbEhlYWRlci5ub3RpZmljYXRpb24iOiJcdTkwMUFcdTc3RTUiLCJjb21wb25lbnQuZ2xvYmFsSGVhZGVyLm5vdGlmaWNhdGlvbi5lbXB0eSI6Ilx1NTlCM1x1NURGMlx1NjdFNVx1NzcwQlx1NjI0MFx1NjcwOVx1OTAxQVx1NzdFNSIsImNvbXBvbmVudC5nbG9iYWxIZWFkZXIubWVzc2FnZSI6Ilx1NkQ4OFx1NjA2RiIsImNvbXBvbmVudC5nbG9iYWxIZWFkZXIubWVzc2FnZS5lbXB0eSI6Ilx1NjBBOFx1NURGMlx1OEI4MFx1NUI4Q1x1NjI0MFx1NjcwOVx1NkQ4OFx1NjA2RiIsImNvbXBvbmVudC5nbG9iYWxIZWFkZXIuZXZlbnQiOiJcdTVGODVcdThGQTYiLCJjb21wb25lbnQuZ2xvYmFsSGVhZGVyLmV2ZW50LmVtcHR5IjoiXHU1OUIzXHU1REYyXHU1QjhDXHU2MjEwXHU2MjQwXHU2NzA5XHU1Rjg1XHU4RkE2IiwiY29tcG9uZW50Lm5vdGljZUljb24uY2xlYXIiOiJcdTZFMDVcdTdBN0EiLCJjb21wb25lbnQubm90aWNlSWNvbi5jbGVhcmVkIjoiXHU2RTA1XHU3QTdBXHU0RTg2IiwiY29tcG9uZW50Lm5vdGljZUljb24uZW1wdHkiOiJcdTY2QUJcdTcxMjFcdThDQzdcdTY1OTkiLCJjb21wb25lbnQubm90aWNlSWNvbi52aWV3LW1vcmUiOiJcdTY3RTVcdTc3MEJcdTY2RjRcdTU5MUEifSxqYT17Im1lbnUud2VsY29tZSI6Ilx1NkI2MVx1OEZDRSIsIm1lbnUubW9yZS1ibG9ja3MiOiJcdTY2RjRcdTU5MUFcdTUzNDBcdTU4NEEiLCJtZW51LmhvbWUiOiJcdTk5OTZcdTk4MDEiLCJtZW51LmFkbWluIjoiXHU2NzQzXHU5NjUwIiwibWVudS5hZG1pbi5zdWItcGFnZSI6Ilx1NEU4Q1x1N0VBN1x1N0JBMVx1NzQwNlx1OTg3NSIsIm1lbnUubG9naW4iOiJcdTc2N0JcdTkzMDQiLCJtZW51LnJlZ2lzdGVyIjoiXHU4QTNCXHU1MThBIiwibWVudS5yZWdpc3Rlci1yZXN1bHQiOiJcdThBM0JcdTUxOEFcdTdENTBcdTY3OUMiLCJtZW51LmRhc2hib2FyZCI6IkRhc2hib2FyZCIsIm1lbnUuZGFzaGJvYXJkLmFuYWx5c2lzIjoiXHU1MjA2XHU2NzkwXHU5ODAxIiwibWVudS5kYXNoYm9hcmQubW9uaXRvciI6Ilx1NzZFM1x1NjNBN1x1OTgwMSIsIm1lbnUuZGFzaGJvYXJkLndvcmtwbGFjZSI6Ilx1NURFNVx1NEY1Q1x1ODFGQSIsIm1lbnUuZXhjZXB0aW9uLjQwMyI6IjQwMyIsIm1lbnUuZXhjZXB0aW9uLjQwNCI6IjQwNCIsIm1lbnUuZXhjZXB0aW9uLjUwMCI6IjUwMCIsIm1lbnUuZm9ybSI6Ilx1ODg2OFx1NTVBRVx1OTgwMSIsIm1lbnUuZm9ybS5iYXNpYy1mb3JtIjoiXHU1N0ZBXHU3OTBFXHU4ODY4XHU1NUFFIiwibWVudS5mb3JtLnN0ZXAtZm9ybSI6Ilx1NTIwNlx1NkI2NVx1ODg2OFx1NTVBRSIsIm1lbnUuZm9ybS5zdGVwLWZvcm0uaW5mbyI6Ilx1NTIwNlx1NkI2NVx1ODg2OFx1NTVBRVx1RkYwOFx1NTg2Qlx1NUJFQlx1OEY0OVx1OENFQ1x1NEZFMVx1NjA2Rlx1RkYwOSIsIm1lbnUuZm9ybS5zdGVwLWZvcm0uY29uZmlybSI6Ilx1NTIwNlx1NkI2NVx1ODg2OFx1NTVBRVx1RkYwOFx1NzhCQVx1OEE4RFx1OEY0OVx1OENFQ1x1NEZFMVx1NjA2Rlx1RkYwOSIsIm1lbnUuZm9ybS5zdGVwLWZvcm0ucmVzdWx0IjoiXHU1MjA2XHU2QjY1XHU4ODY4XHU1NUFFXHVGRjA4XHU1QjhDXHU2MjEwXHVGRjA5IiwibWVudS5mb3JtLmFkdmFuY2VkLWZvcm0iOiJcdTlBRDhcdTdEMUFcdTg4NjhcdTU1QUUiLCJtZW51Lmxpc3QiOiJcdTUyMTdcdTg4NjhcdTk4MDEiLCJtZW51Lmxpc3QudGFibGUtbGlzdCI6Ilx1NjdFNVx1OEE2Mlx1ODg2OFx1NjgzQyIsIm1lbnUubGlzdC5iYXNpYy1saXN0IjoiXHU2QTE5XHU2REVFXHU1MjE3XHU4ODY4IiwibWVudS5saXN0LmNhcmQtbGlzdCI6Ilx1NTM2MVx1NzI0N1x1NTIxN1x1ODg2OCIsIm1lbnUubGlzdC5zZWFyY2gtbGlzdCI6Ilx1NjQxQ1x1N0QyMlx1NTIxN1x1ODg2OCIsIm1lbnUubGlzdC5zZWFyY2gtbGlzdC5hcnRpY2xlcyI6Ilx1NjQxQ1x1N0QyMlx1NTIxN1x1ODg2OFx1RkYwOFx1NjU4N1x1N0FFMFx1RkYwOSIsIm1lbnUubGlzdC5zZWFyY2gtbGlzdC5wcm9qZWN0cyI6Ilx1NjQxQ1x1N0QyMlx1NTIxN1x1ODg2OFx1RkYwOFx1OTgwNVx1NzZFRVx1RkYwOSIsIm1lbnUubGlzdC5zZWFyY2gtbGlzdC5hcHBsaWNhdGlvbnMiOiJcdTY0MUNcdTdEMjJcdTUyMTdcdTg4NjhcdUZGMDhcdTYxQzlcdTc1MjhcdUZGMDkiLCJtZW51LnByb2ZpbGUiOiJcdThBNzNcdTYwQzVcdTk4MDEiLCJtZW51LnByb2ZpbGUuYmFzaWMiOiJcdTU3RkFcdTc5MEVcdThBNzNcdTYwQzVcdTk4MDEiLCJtZW51LnByb2ZpbGUuYWR2YW5jZWQiOiJcdTlBRDhcdTdEMUFcdThBNzNcdTYwQzVcdTk4MDEiLCJtZW51LnJlc3VsdCI6Ilx1N0Q1MFx1Njc5Q1x1OTgwMSIsIm1lbnUucmVzdWx0LnN1Y2Nlc3MiOiJcdTYyMTBcdTUyOUZcdTk4MDEiLCJtZW51LnJlc3VsdC5mYWlsIjoiXHU1OTMxXHU2NTU3XHU5ODAxIiwibWVudS5leGNlcHRpb24iOiJcdTVGMDJcdTVFMzhcdTk4NzUiLCJtZW51LmV4Y2VwdGlvbi5ub3QtcGVybWlzc2lvbiI6IjQwMyIsIm1lbnUuZXhjZXB0aW9uLm5vdC1maW5kIjoiNDA0IiwibWVudS5leGNlcHRpb24uc2VydmVyLWVycm9yIjoiNTAwIiwibWVudS5leGNlcHRpb24udHJpZ2dlciI6Ilx1ODlFNlx1NTNEMVx1OTUxOVx1OEJFRiIsIm1lbnUuYWNjb3VudCI6Ilx1NTAwQlx1NEVCQVx1OTgwMSIsIm1lbnUuYWNjb3VudC5jZW50ZXIiOiJcdTUwMEJcdTRFQkFcdTRFMkRcdTVGQzMiLCJtZW51LmFjY291bnQuc2V0dGluZ3MiOiJcdTUwMEJcdTRFQkFcdThBMkRcdTdGNkUiLCJtZW51LmFjY291bnQudHJpZ2dlciI6Ilx1ODlGOFx1NzY3Q1x1NTgzMVx1OTMyRiIsIm1lbnUuYWNjb3VudC5sb2dvdXQiOiJcdTkwMDBcdTUxRkFcdTc2N0JcdTkzMDQiLCJtZW51LmVkaXRvciI6Ilx1NTcxNlx1NUY2Mlx1N0RFOFx1OEYyRlx1NTY2OCIsIm1lbnUuZWRpdG9yLmZsb3ciOiJcdTZENDFcdTdBMEJcdTdERThcdThGMkZcdTU2NjgiLCJtZW51LmVkaXRvci5taW5kIjoiXHU4MTY2XHU1NzE2XHU3REU4XHU4RjJGXHU1NjY4IiwibWVudS5lZGl0b3Iua29uaSI6Ilx1NjJEM1x1NjRCMlx1N0RFOFx1OEYyRlx1NTY2OCJ9LCRhPXsiYXBwLnB3YS5vZmZsaW5lIjoiXHU3NTc2XHU1MjREXHU4NjU1XHU2NUJDXHU5NkUyXHU3RERBXHU3MkMwXHU2MTRCIiwiYXBwLnB3YS5zZXJ2aWNld29ya2VyLnVwZGF0ZWQiOiJcdTY3MDlcdTY1QjBcdTUxNjdcdTVCQjkiLCJhcHAucHdhLnNlcnZpY2V3b3JrZXIudXBkYXRlZC5oaW50IjoiXHU4QUNCXHU5RURFXHU2NENBXHUyMDFDXHU1MjM3XHU2NUIwXHUyMDFEXHU2MzA5XHU5MjE1XHU2MjE2XHU4MDA1XHU2MjRCXHU1MkQ1XHU1MjM3XHU2NUIwXHU5ODAxXHU5NzYyIiwiYXBwLnB3YS5zZXJ2aWNld29ya2VyLnVwZGF0ZWQub2siOiJcdTUyMzdcdTY1QjAifSx5cj17ImFwcC5zZXR0aW5nLnBhZ2VzdHlsZSI6Ilx1NjU3NFx1OUFENFx1OThBOFx1NjgzQ1x1OEEyRFx1N0Y2RSIsImFwcC5zZXR0aW5nLnBhZ2VzdHlsZS5kYXJrIjoiXHU2Njk3XHU4MjcyXHU4M0RDXHU1NUFFXHU5OEE4XHU2ODNDIiwiYXBwLnNldHRpbmcucGFnZXN0eWxlLmxpZ2h0IjoiXHU0RUFFXHU4MjcyXHU4M0RDXHU1NUFFXHU5OEE4XHU2ODNDIiwiYXBwLnNldHRpbmcuY29udGVudC13aWR0aCI6Ilx1NTE2N1x1NUJCOVx1NTM0MFx1NTdERlx1NUJFQ1x1NUVBNiIsImFwcC5zZXR0aW5nLmNvbnRlbnQtd2lkdGguZml4ZWQiOiJcdTVCOUFcdTVCRUMiLCJhcHAuc2V0dGluZy5jb250ZW50LXdpZHRoLmZsdWlkIjoiXHU2RDQxXHU1RjBGIiwiYXBwLnNldHRpbmcudGhlbWVjb2xvciI6Ilx1NEUzQlx1OTg0Q1x1ODI3MiIsImFwcC5zZXR0aW5nLnRoZW1lY29sb3IuZHVzdCI6Ilx1ODU4NFx1NjZBRSIsImFwcC5zZXR0aW5nLnRoZW1lY29sb3Iudm9sY2FubyI6Ilx1NzA2Qlx1NUM3MSIsImFwcC5zZXR0aW5nLnRoZW1lY29sb3Iuc3Vuc2V0IjoiXHU2NUU1XHU2NkFFIiwiYXBwLnNldHRpbmcudGhlbWVjb2xvci5jeWFuIjoiXHU2NjBFXHU5NzUyIiwiYXBwLnNldHRpbmcudGhlbWVjb2xvci5ncmVlbiI6Ilx1Njk3NVx1NTE0OVx1N0RBMCIsImFwcC5zZXR0aW5nLnRoZW1lY29sb3IuZGF5YnJlYWsiOiJcdTYyQzJcdTY2QzlcdTg1Q0RcdUZGMDhcdTlFRDhcdThBOERcdUZGMDkiLCJhcHAuc2V0dGluZy50aGVtZWNvbG9yLmdlZWtibHVlIjoiXHU2OTc1XHU1QkEyXHU4NUNEIiwiYXBwLnNldHRpbmcudGhlbWVjb2xvci5wdXJwbGUiOiJcdTkxQUNcdTdEMkIiLCJhcHAuc2V0dGluZy5uYXZpZ2F0aW9ubW9kZSI6Ilx1NUMwRVx1ODIyQVx1NkEyMVx1NUYwRiIsImFwcC5zZXR0aW5nLnNpZGVtZW51IjoiXHU1MDc0XHU5MDhBXHU4M0RDXHU1NUFFXHU1RTAzXHU1QzQwIiwiYXBwLnNldHRpbmcudG9wbWVudSI6Ilx1OTgwMlx1OTBFOFx1ODNEQ1x1NTVBRVx1NUUwM1x1NUM0MCIsImFwcC5zZXR0aW5nLmZpeGVkaGVhZGVyIjoiXHU1NkZBXHU1QjlBIEhlYWRlciIsImFwcC5zZXR0aW5nLmZpeGVkc2lkZWJhciI6Ilx1NTZGQVx1NUI5QVx1NTA3NFx1OTA4QVx1ODNEQ1x1NTVBRSIsImFwcC5zZXR0aW5nLmZpeGVkc2lkZWJhci5oaW50IjoiXHU1MDc0XHU5MDhBXHU4M0RDXHU1NUFFXHU1RTAzXHU1QzQwXHU2NjQyXHU1M0VGXHU5MTREXHU3RjZFIiwiYXBwLnNldHRpbmcuaGlkZWhlYWRlciI6Ilx1NEUwQlx1NkVEMVx1NjY0Mlx1OTZCMVx1ODVDRiBIZWFkZXIiLCJhcHAuc2V0dGluZy5oaWRlaGVhZGVyLmhpbnQiOiJcdTU2RkFcdTVCOUEgSGVhZGVyIFx1NjY0Mlx1NTNFRlx1OTE0RFx1N0Y2RSIsImFwcC5zZXR0aW5nLm90aGVyc2V0dGluZ3MiOiJcdTUxNzZcdTRFRDZcdThBMkRcdTdGNkUiLCJhcHAuc2V0dGluZy53ZWFrbW9kZSI6Ilx1ODI3Mlx1NUYzMVx1NkEyMVx1NUYwRiIsImFwcC5zZXR0aW5nLmNvcHkiOiJcdTYyRjdcdThDOURcdThBMkRcdTdGNkUiLCJhcHAuc2V0dGluZy5jb3B5aW5mbyI6Ilx1NjJGN1x1OEM5RFx1NjIxMFx1NTI5Rlx1RkYwQ1x1OEFDQlx1NTIzMCBjb25maWcvZGVmYXVsdFNldHRpbmdzLmpzIFx1NEUyRFx1NjZGRlx1NjNEQlx1OUVEOFx1OEE4RFx1OTE0RFx1N0Y2RSIsImFwcC5zZXR0aW5nLnByb2R1Y3Rpb24uaGludCI6Ilx1OTE0RFx1N0Y2RVx1NkIwNFx1NTNFQVx1NTcyOFx1OTU4Qlx1NzY3Q1x1NzRCMFx1NTg4M1x1NzUyOFx1NjVCQ1x1OTgxMFx1ODlCRFx1RkYwQ1x1NzUxRlx1NzUyMlx1NzRCMFx1NTg4M1x1NEUwRFx1NjcwM1x1NUM1NVx1NzNGRVx1RkYwQ1x1OEFDQlx1NjJGN1x1OEM5RFx1NUY4Q1x1NjI0Qlx1NTJENVx1NEZFRVx1NjUzOVx1OTE0RFx1N0Y2RVx1NjU4N1x1NEVGNiJ9LFZyPXsiYXBwLnNldHRpbmdzLm1lbnVNYXAuYmFzaWMiOiJcdTU3RkFcdTY3MkNcdThBMkRcdTdGNkUiLCJhcHAuc2V0dGluZ3MubWVudU1hcC5zZWN1cml0eSI6Ilx1NUI4OVx1NTE2OFx1OEEyRFx1N0Y2RSIsImFwcC5zZXR0aW5ncy5tZW51TWFwLmJpbmRpbmciOiJcdThDRUNcdTg2NUZcdTdEODFcdTVCOUEiLCJhcHAuc2V0dGluZ3MubWVudU1hcC5ub3RpZmljYXRpb24iOiJcdTY1QjBcdTZEODhcdTYwNkZcdTkwMUFcdTc3RTUiLCJhcHAuc2V0dGluZ3MuYmFzaWMuYXZhdGFyIjoiXHU5ODJEXHU1MENGIiwiYXBwLnNldHRpbmdzLmJhc2ljLmNoYW5nZS1hdmF0YXIiOiJcdTY2RjRcdTYzREJcdTk4MkRcdTUwQ0YiLCJhcHAuc2V0dGluZ3MuYmFzaWMuZW1haWwiOiJcdTkwRjVcdTdCQjEiLCJhcHAuc2V0dGluZ3MuYmFzaWMuZW1haWwtbWVzc2FnZSI6Ilx1OEFDQlx1OEYzOFx1NTE2NVx1NjBBOFx1NzY4NFx1OTBGNVx1N0JCMSEiLCJhcHAuc2V0dGluZ3MuYmFzaWMubmlja25hbWUiOiJcdTY2MzVcdTdBMzEiLCJhcHAuc2V0dGluZ3MuYmFzaWMubmlja25hbWUtbWVzc2FnZSI6Ilx1OEFDQlx1OEYzOFx1NTE2NVx1NjBBOFx1NzY4NFx1NjYzNVx1N0EzMSEiLCJhcHAuc2V0dGluZ3MuYmFzaWMucHJvZmlsZSI6Ilx1NTAwQlx1NEVCQVx1N0MyMVx1NEVDQiIsImFwcC5zZXR0aW5ncy5iYXNpYy5wcm9maWxlLW1lc3NhZ2UiOiJcdThBQ0JcdThGMzhcdTUxNjVcdTUwMEJcdTRFQkFcdTdDMjFcdTRFQ0IhIiwiYXBwLnNldHRpbmdzLmJhc2ljLnByb2ZpbGUtcGxhY2Vob2xkZXIiOiJcdTUwMEJcdTRFQkFcdTdDMjFcdTRFQ0IiLCJhcHAuc2V0dGluZ3MuYmFzaWMuY291bnRyeSI6Ilx1NTcwQlx1NUJCNi9cdTU3MzBcdTUzNDAiLCJhcHAuc2V0dGluZ3MuYmFzaWMuY291bnRyeS1tZXNzYWdlIjoiXHU4QUNCXHU4RjM4XHU1MTY1XHU2MEE4XHU3Njg0XHU1NzBCXHU1QkI2XHU2MjE2XHU1NzMwXHU1MzQwISIsImFwcC5zZXR0aW5ncy5iYXNpYy5nZW9ncmFwaGljIjoiXHU2MjQwXHU1NzI4XHU3NzAxXHU1RTAyIiwiYXBwLnNldHRpbmdzLmJhc2ljLmdlb2dyYXBoaWMtbWVzc2FnZSI6Ilx1OEFDQlx1OEYzOFx1NTE2NVx1NjBBOFx1NzY4NFx1NjI0MFx1NTcyOFx1NzcwMVx1NUUwMiEiLCJhcHAuc2V0dGluZ3MuYmFzaWMuYWRkcmVzcyI6Ilx1ODg1N1x1OTA1M1x1NTczMFx1NTc0MCIsImFwcC5zZXR0aW5ncy5iYXNpYy5hZGRyZXNzLW1lc3NhZ2UiOiJcdThBQ0JcdThGMzhcdTUxNjVcdTYwQThcdTc2ODRcdTg4NTdcdTkwNTNcdTU3MzBcdTU3NDAhIiwiYXBwLnNldHRpbmdzLmJhc2ljLnBob25lIjoiXHU4MDZGXHU3Q0ZCXHU5NkZCXHU4QTcxIiwiYXBwLnNldHRpbmdzLmJhc2ljLnBob25lLW1lc3NhZ2UiOiJcdThBQ0JcdThGMzhcdTUxNjVcdTYwQThcdTc2ODRcdTgwNkZcdTdDRkJcdTk2RkJcdThBNzEhIiwiYXBwLnNldHRpbmdzLmJhc2ljLnVwZGF0ZSI6Ilx1NjZGNFx1NjVCMFx1NTdGQVx1NjcyQ1x1NEZFMVx1NjA2RiIsImFwcC5zZXR0aW5ncy5zZWN1cml0eS5zdHJvbmciOiJcdTVGMzciLCJhcHAuc2V0dGluZ3Muc2VjdXJpdHkubWVkaXVtIjoiXHU0RTJEIiwiYXBwLnNldHRpbmdzLnNlY3VyaXR5LndlYWsiOiJcdTVGMzEiLCJhcHAuc2V0dGluZ3Muc2VjdXJpdHkucGFzc3dvcmQiOiJcdThDRUNcdTYyMzZcdTVCQzZcdTc4QkMiLCJhcHAuc2V0dGluZ3Muc2VjdXJpdHkucGFzc3dvcmQtZGVzY3JpcHRpb24iOiJcdTc1NzZcdTUyNERcdTVCQzZcdTc4QkNcdTVGMzdcdTVFQTYiLCJhcHAuc2V0dGluZ3Muc2VjdXJpdHkucGhvbmUiOiJcdTVCQzZcdTRGRERcdTYyNEJcdTZBNUYiLCJhcHAuc2V0dGluZ3Muc2VjdXJpdHkucGhvbmUtZGVzY3JpcHRpb24iOiJcdTVERjJcdTdEODFcdTVCOUFcdTYyNEJcdTZBNUYiLCJhcHAuc2V0dGluZ3Muc2VjdXJpdHkucXVlc3Rpb24iOiJcdTVCQzZcdTRGRERcdTU1NEZcdTk4NEMiLCJhcHAuc2V0dGluZ3Muc2VjdXJpdHkucXVlc3Rpb24tZGVzY3JpcHRpb24iOiJcdTY3MkFcdThBMkRcdTdGNkVcdTVCQzZcdTRGRERcdTU1NEZcdTk4NENcdUZGMENcdTVCQzZcdTRGRERcdTU1NEZcdTk4NENcdTUzRUZcdTY3MDlcdTY1NDhcdTRGRERcdThCNzdcdThDRUNcdTYyMzZcdTVCODlcdTUxNjgiLCJhcHAuc2V0dGluZ3Muc2VjdXJpdHkuZW1haWwiOiJcdTUwOTlcdTc1MjhcdTkwRjVcdTdCQjEiLCJhcHAuc2V0dGluZ3Muc2VjdXJpdHkuZW1haWwtZGVzY3JpcHRpb24iOiJcdTVERjJcdTdEODFcdTVCOUFcdTkwRjVcdTdCQjEiLCJhcHAuc2V0dGluZ3Muc2VjdXJpdHkubWZhIjoiTUZBIFx1OEEyRFx1NTA5OSIsImFwcC5zZXR0aW5ncy5zZWN1cml0eS5tZmEtZGVzY3JpcHRpb24iOiJcdTY3MkFcdTdEODFcdTVCOUEgTUZBIFx1OEEyRFx1NTA5OVx1RkYwQ1x1N0Q4MVx1NUI5QVx1NUY4Q1x1RkYwQ1x1NTNFRlx1NEVFNVx1OTAzMlx1ODg0Q1x1NEU4Q1x1NkIyMVx1NzhCQVx1OEE4RCIsImFwcC5zZXR0aW5ncy5zZWN1cml0eS5tb2RpZnkiOiJcdTRGRUVcdTY1MzkiLCJhcHAuc2V0dGluZ3Muc2VjdXJpdHkuc2V0IjoiXHU4QTJEXHU3RjZFIiwiYXBwLnNldHRpbmdzLnNlY3VyaXR5LmJpbmQiOiJcdTdEODFcdTVCOUEiLCJhcHAuc2V0dGluZ3MuYmluZGluZy50YW9iYW8iOiJcdTdEODFcdTVCOUFcdTZERDhcdTVCRjYiLCJhcHAuc2V0dGluZ3MuYmluZGluZy50YW9iYW8tZGVzY3JpcHRpb24iOiJcdTc1NzZcdTUyNERcdTY3MkFcdTdEODFcdTVCOUFcdTZERDhcdTVCRjZcdThDRUNcdTg2NUYiLCJhcHAuc2V0dGluZ3MuYmluZGluZy5hbGlwYXkiOiJcdTdEODFcdTVCOUFcdTY1MkZcdTRFRDhcdTVCRjYiLCJhcHAuc2V0dGluZ3MuYmluZGluZy5hbGlwYXktZGVzY3JpcHRpb24iOiJcdTc1NzZcdTUyNERcdTY3MkFcdTdEODFcdTVCOUFcdTY1MkZcdTRFRDhcdTVCRjZcdThDRUNcdTg2NUYiLCJhcHAuc2V0dGluZ3MuYmluZGluZy5kaW5nZGluZyI6Ilx1N0Q4MVx1NUI5QVx1OTFEOFx1OTFEOCIsImFwcC5zZXR0aW5ncy5iaW5kaW5nLmRpbmdkaW5nLWRlc2NyaXB0aW9uIjoiXHU3NTc2XHU1MjREXHU2NzJBXHU3RDgxXHU1QjlBXHU5MUQ4XHU5MUQ4XHU4Q0VDXHU4NjVGIiwiYXBwLnNldHRpbmdzLmJpbmRpbmcuYmluZCI6Ilx1N0Q4MVx1NUI5QSIsImFwcC5zZXR0aW5ncy5ub3RpZmljYXRpb24ucGFzc3dvcmQiOiJcdThDRUNcdTYyMzZcdTVCQzZcdTc4QkMiLCJhcHAuc2V0dGluZ3Mubm90aWZpY2F0aW9uLnBhc3N3b3JkLWRlc2NyaXB0aW9uIjoiXHU1MTc2XHU0RUQ2XHU3NTI4XHU2MjM2XHU3Njg0XHU2RDg4XHU2MDZGXHU1QzA3XHU0RUU1XHU3QUQ5XHU1MTY3XHU0RkUxXHU3Njg0XHU1RjYyXHU1RjBGXHU5MDFBXHU3N0U1IiwiYXBwLnNldHRpbmdzLm5vdGlmaWNhdGlvbi5tZXNzYWdlcyI6Ilx1N0NGQlx1N0Q3MVx1NkQ4OFx1NjA2RiIsImFwcC5zZXR0aW5ncy5ub3RpZmljYXRpb24ubWVzc2FnZXMtZGVzY3JpcHRpb24iOiJcdTdDRkJcdTdENzFcdTZEODhcdTYwNkZcdTVDMDdcdTRFRTVcdTdBRDlcdTUxNjdcdTRGRTFcdTc2ODRcdTVGNjJcdTVGMEZcdTkwMUFcdTc3RTUiLCJhcHAuc2V0dGluZ3Mubm90aWZpY2F0aW9uLnRvZG8iOiJcdTVGODVcdThGQTZcdTRFRkJcdTUyRDkiLCJhcHAuc2V0dGluZ3Mubm90aWZpY2F0aW9uLnRvZG8tZGVzY3JpcHRpb24iOiJcdTVGODVcdThGQTZcdTRFRkJcdTUyRDlcdTVDMDdcdTRFRTVcdTdBRDlcdTUxNjdcdTRGRTFcdTc2ODRcdTVGNjJcdTVGMEZcdTkwMUFcdTc3RTUiLCJhcHAuc2V0dGluZ3Mub3BlbiI6Ilx1OTU4QiIsImFwcC5zZXR0aW5ncy5jbG9zZSI6Ilx1OTVEQyJ9LFNhPWkoKShpKCkoaSgpKGkoKShpKCkoaSgpKHsibmF2QmFyLmxhbmciOiJcdThBOUVcdThBMDAiLCJsYXlvdXQudXNlci5saW5rLmhlbHAiOiJcdTVFNkJcdTUyQTkiLCJsYXlvdXQudXNlci5saW5rLnByaXZhY3kiOiJcdTk2QjFcdTc5QzEiLCJsYXlvdXQudXNlci5saW5rLnRlcm1zIjoiXHU2ODlEXHU2QjNFIiwiYXBwLnByZXZpZXcuZG93bi5ibG9jayI6Ilx1NEUwQlx1OEYwOVx1NkI2NFx1OTgwMVx1OTc2Mlx1NTIzMFx1NjcyQ1x1NTczMFx1OTgwNVx1NzZFRSJ9LFRhKSxqYSkseXIpLFZyKSwkYSksSnIpLEZhPVsiY2FjaGUiXSxSYSxybz0hMCx1bz1uZXcoc3IoKSksbm89U3ltYm9sKCJMQU5HX0NIQU5HRSIpLHpvPWZ1bmN0aW9uIGllKHllKXt2YXIgQj1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06IiI7cmV0dXJuIE9iamVjdC5rZXlzKHllKS5yZWR1Y2UoZnVuY3Rpb24oVmUsc3Qpe3ZhciBSdD15ZVtzdF0sQnQ9Qj8iIi5jb25jYXQoQiwiLiIpLmNvbmNhdChzdCk6c3Q7cmV0dXJuIHR5cGVvZiBSdD09InN0cmluZyI/VmVbQnRdPVJ0Ok9iamVjdC5hc3NpZ24oVmUsaWUoUnQsQnQpKSxWZX0se30pfSxnbz17ImVuLVVTIjp7bWVzc2FnZXM6aSgpKHt9LHpvKGdlKSksbG9jYWxlOiJlbi1VUyIsYW50ZDppKCkoe30sUm4uWiksbW9tZW50TG9jYWxlOiJlbiJ9LCJ6aC1DTiI6e21lc3NhZ2VzOmkoKShpKCkoe30sem8oTXIpKSx6bygkci5kZWZhdWx0KSksbG9jYWxlOiJ6aC1DTiIsYW50ZDppKCkoe30sdmUuWiksbW9tZW50TG9jYWxlOiJ6aC1jbiJ9LCJ6aC1UVyI6e21lc3NhZ2VzOmkoKSh7fSx6byhTYSkpLGxvY2FsZToiemgtVFciLGFudGQ6aSgpKHt9LEhyKSxtb21lbnRMb2NhbGU6InpoLXR3In19LGZvPWZ1bmN0aW9uKHllLEIsVmUpe3ZhciBzdCxSdCxCdCxMdDtpZih5ZSl7dmFyIFl0PShzdD1nb1t5ZV0pIT09bnVsbCYmc3QhPT12b2lkIDAmJnN0Lm1lc3NhZ2VzP09iamVjdC5hc3NpZ24oe30sZ29beWVdLm1lc3NhZ2VzLEIpOkIsQW49VmV8fHt9LHNuPUFuLm1vbWVudExvY2FsZSxxdD1zbj09PXZvaWQgMD8oUnQ9Z29beWVdKT09PW51bGx8fFJ0PT09dm9pZCAwP3ZvaWQgMDpSdC5tb21lbnRMb2NhbGU6c24sTW49QW4uYW50ZCxDcj1Nbj09PXZvaWQgMD8oQnQ9Z29beWVdKT09PW51bGx8fEJ0PT09dm9pZCAwP3ZvaWQgMDpCdC5hbnRkOk1uLHFuPShMdD15ZS5zcGxpdCgiLSIpKT09PW51bGx8fEx0PT09dm9pZCAwP3ZvaWQgMDpMdC5qb2luKCItIik7Z29beWVdPXttZXNzYWdlczpZdCxsb2NhbGU6cW4sbW9tZW50TG9jYWxlOnF0LGFudGQ6Q3J9LHFuPT09YW8oKSYmdW8uZW1pdChubyxxbil9fSxUaT1mdW5jdGlvbih5ZSl7cmV0dXJuKDAsbHIuV2UpKCkuYXBwbHlQbHVnaW5zKHtrZXk6ImxvY2FsZSIsdHlwZToibW9kaWZ5Iixpbml0aWFsVmFsdWU6eWV9KX0sVW89ZnVuY3Rpb24oeWUpe3ZhciBCPVRpKGdvW3llXSksVmU9Qi5jYWNoZSxzdD1uKCkoQixGYSk7cmV0dXJuIEZuKHN0LFZlKX0sV289ZnVuY3Rpb24oeWUsQil7cmV0dXJuIFJhJiYhQiYmIXllP1JhOih5ZXx8KHllPWFvKCkpLHllJiZnb1t5ZV0/VW8oeWUpOihaZSgpKCF5ZXx8ISFnb1t5ZV0sIlRoZSBjdXJyZW50IHBvcHVsYXIgbGFuZ3VhZ2UgZG9lcyBub3QgZXhpc3QsIHBsZWFzZSBjaGVjayB0aGUgbG9jYWxlcyBmb2xkZXIhIiksZ29bInpoLUNOIl0/VW8oInpoLUNOIik6Rm4oe2xvY2FsZToiemgtQ04iLG1lc3NhZ2VzOnt9fSkpKX0sZ2k9ZnVuY3Rpb24oeWUpe1JhPVdvKHllLCEwKX0sYW89ZnVuY3Rpb24oKXt2YXIgeWU9VGkoe30pO2lmKHR5cGVvZih5ZT09bnVsbD92b2lkIDA6eWUuZ2V0TG9jYWxlKT09ImZ1bmN0aW9uIilyZXR1cm4geWUuZ2V0TG9jYWxlKCk7dmFyIEI9bmF2aWdhdG9yLmNvb2tpZUVuYWJsZWQmJnR5cGVvZiBsb2NhbFN0b3JhZ2UhPSJ1bmRlZmluZWQiJiZybz93aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oInVtaV9sb2NhbGUiKToiIixWZSxzdD10eXBlb2YgbmF2aWdhdG9yIT0idW5kZWZpbmVkIiYmdHlwZW9mIG5hdmlnYXRvci5sYW5ndWFnZT09InN0cmluZyI7cmV0dXJuIFZlPXN0P25hdmlnYXRvci5sYW5ndWFnZS5zcGxpdCgiLSIpLmpvaW4oIi0iKToiIixCfHxWZXx8InpoLUNOIn0scGk9ZnVuY3Rpb24oKXt2YXIgeWU9YW8oKSxCPVsiaGUiLCJhciIsImZhIiwia3UiXSxWZT1CLmZpbHRlcihmdW5jdGlvbihzdCl7cmV0dXJuIHllLnN0YXJ0c1dpdGgoc3QpfSkubGVuZ3RoPyJydGwiOiJsdHIiO3JldHVybiBWZX0sSG89ZnVuY3Rpb24oeWUpe3ZhciBCPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTohMCxWZT1mdW5jdGlvbigpe2lmKGFvKCkhPT15ZSl7aWYobmF2aWdhdG9yLmNvb2tpZUVuYWJsZWQmJnR5cGVvZiB3aW5kb3cubG9jYWxTdG9yYWdlIT0idW5kZWZpbmVkIiYmcm8mJndpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbSgidW1pX2xvY2FsZSIseWV8fCIiKSxnaSh5ZSksQil3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7ZWxzZSBpZih1by5lbWl0KG5vLHllKSx3aW5kb3cuZGlzcGF0Y2hFdmVudCl7dmFyIFJ0PW5ldyBFdmVudCgibGFuZ3VhZ2VjaGFuZ2UiKTt3aW5kb3cuZGlzcGF0Y2hFdmVudChSdCl9fX07VmUoKX0sUm89ITAsRm89ZnVuY3Rpb24oeWUsQil7cmV0dXJuIFJvJiYod2FybmluZyghMSxgVXNpbmcgdGhpcyBBUEkgd2lsbCBjYXVzZSBhdXRvbWF0aWMgcmVmcmVzaCB3aGVuIHN3aXRjaGluZyBsYW5ndWFnZXMsIHBsZWFzZSB1c2UgdXNlSW50bCBvciBpbmplY3RJbnRsLgorCitcdTRGN0ZcdTc1MjhcdTZCNjQgYXBpIFx1NEYxQVx1OTAyMFx1NjIxMFx1NTIwN1x1NjM2Mlx1OEJFRFx1OEEwMFx1NzY4NFx1NjVGNlx1NTAxOVx1NjVFMFx1NkNENVx1ODFFQVx1NTJBOFx1NTIzN1x1NjVCMFx1RkYwQ1x1OEJGN1x1NEY3Rlx1NzUyOCB1c2VJbnRsIFx1NjIxNiBpbmplY3RJbnRsXHUzMDAyCisKK2h0dHA6Ly9qLm1wLzM3RmtkNVEKKyAgICAgIGApLFJvPSExKSxSYXx8Z2koYW8oKSksUmEuZm9ybWF0TWVzc2FnZSh5ZSxCKX0sbHQ9ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmtleXMoZ28pfX0sNDQ4ODY6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7dDpmdW5jdGlvbigpe3JldHVybiBUfSx6OmZ1bmN0aW9uKCl7cmV0dXJuIE99fSk7dmFyIHI9ZSg1NTc0KSxuPWUubihyKSx0PWUoNzIwMDQpLGk9ZS5uKHQpLHM9ZSgxMjQ0NCksYT1lLm4ocyksdT1lKDk3ODMpLGM9ZS5uKHUpLGg9ZSg2NDA2MyksZD1lLm4oaCksbT1lKDY3Mjk0KSxDPWUoODU4OTMpLGc9bS5jcmVhdGVDb250ZXh0KG51bGwpLHc9aSgpKGZ1bmN0aW9uIFMoKXt2YXIgTD10aGlzO2EoKSh0aGlzLFMpLGMoKSh0aGlzLCJjYWxsYmFja3MiLHt9KSxjKCkodGhpcywiZGF0YSIse30pLGMoKSh0aGlzLCJ1cGRhdGUiLGZ1bmN0aW9uKEkpe0wuY2FsbGJhY2tzW0ldJiZMLmNhbGxiYWNrc1tJXS5mb3JFYWNoKGZ1bmN0aW9uKFIpe3RyeXt2YXIgej1MLmRhdGFbSV07Uih6KX1jYXRjaChHKXtSKHZvaWQgMCl9fSl9KX0pO2Z1bmN0aW9uIEUoUyl7dmFyIEw9Uy5ob29rLEk9Uy5vblVwZGF0ZSxSPVMubmFtZXNwYWNlLHo9KDAsbS51c2VSZWYpKEkpLEc9KDAsbS51c2VSZWYpKCExKSxZO3RyeXtZPUwoKX1jYXRjaChlZSl7Y29uc29sZS5lcnJvcigicGx1Z2luLW1vZGVsOiBJbnZva2luZyAnIi5jb25jYXQoUnx8InVua25vd24iLCInIG1vZGVsIGZhaWxlZDoiKSxlZSl9cmV0dXJuKDAsbS51c2VNZW1vKShmdW5jdGlvbigpe3ouY3VycmVudChZKX0sW10pLCgwLG0udXNlRWZmZWN0KShmdW5jdGlvbigpe0cuY3VycmVudD96LmN1cnJlbnQoWSk6Ry5jdXJyZW50PSEwfSksbnVsbH12YXIgeD1uZXcgdztmdW5jdGlvbiBPKFMpe3JldHVybigwLEMuanN4cykoZy5Qcm92aWRlcix7dmFsdWU6e2Rpc3BhdGNoZXI6eH0sY2hpbGRyZW46W09iamVjdC5rZXlzKFMubW9kZWxzKS5tYXAoZnVuY3Rpb24oTCl7cmV0dXJuKDAsQy5qc3gpKEUse2hvb2s6Uy5tb2RlbHNbTF0sbmFtZXNwYWNlOkwsb25VcGRhdGU6ZnVuY3Rpb24oUil7eC5kYXRhW0xdPVIseC51cGRhdGUoTCl9fSxMKX0pLFMuY2hpbGRyZW5dfSl9ZnVuY3Rpb24gVChTLEwpe3ZhciBJPSgwLG0udXNlQ29udGV4dCkoZyksUj1JLmRpc3BhdGNoZXIsej0oMCxtLnVzZVJlZikoTCk7ei5jdXJyZW50PUw7dmFyIEc9KDAsbS51c2VTdGF0ZSkoZnVuY3Rpb24oKXtyZXR1cm4gei5jdXJyZW50P3ouY3VycmVudChSLmRhdGFbU10pOlIuZGF0YVtTXX0pLFk9bigpKEcsMiksZWU9WVswXSxKPVlbMV0sbWU9KDAsbS51c2VSZWYpKGVlKTttZS5jdXJyZW50PWVlO3ZhciB0ZT0oMCxtLnVzZVJlZikoITEpO3JldHVybigwLG0udXNlRWZmZWN0KShmdW5jdGlvbigpe3JldHVybiB0ZS5jdXJyZW50PSEwLGZ1bmN0aW9uKCl7dGUuY3VycmVudD0hMX19LFtdKSwoMCxtLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXt2YXIgbGUsY2U9ZnVuY3Rpb24oail7aWYoIXRlLmN1cnJlbnQpc2V0VGltZW91dChmdW5jdGlvbigpe1IuZGF0YVtTXT1qLFIudXBkYXRlKFMpfSk7ZWxzZXt2YXIgRD16LmN1cnJlbnQ/ei5jdXJyZW50KGopOmosVj1tZS5jdXJyZW50O2QoKShELFYpfHwobWUuY3VycmVudD1ELEooRCkpfX07cmV0dXJuKGxlPVIuY2FsbGJhY2tzKVtTXXx8KGxlW1NdPW5ldyBTZXQpLFIuY2FsbGJhY2tzW1NdLmFkZChjZSksUi51cGRhdGUoUyksZnVuY3Rpb24oKXtSLmNhbGxiYWNrc1tTXS5kZWxldGUoY2UpfX0sW1NdKSxlZX19LDE2NTYwOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse2RQOmZ1bmN0aW9uKCl7cmV0dXJuIEN9LFpQOmZ1bmN0aW9uKCl7cmV0dXJuIHV9LGhQOmZ1bmN0aW9uKCl7cmV0dXJuIGh9LFlWOmZ1bmN0aW9uKCl7cmV0dXJuIGR9LE1pOmZ1bmN0aW9uKCl7cmV0dXJuIG19LFpCOmZ1bmN0aW9uKCl7cmV0dXJuIGN9fSk7dmFyIHI9ZSg1MjY3Nyksbj1lLm4ocik7ZnVuY3Rpb24gdChnLHcpe2lmKHcmJncgaW5zdGFuY2VvZiBBcnJheSYmdy5sZW5ndGg+MCl7dmFyIEU9dyx4PSIqOio6KiIsTz1nLnNvbWUoZnVuY3Rpb24oVCl7cmV0dXJuIHg9PT1UfHxFLmluY2x1ZGVzKFQpfSk7cmV0dXJuISFPfXJldHVybiBjb25zb2xlLmVycm9yKGBuZWVkIHJvbGVzISBMaWtlIGNoZWNrUGVybWk9Ilsnc3lzdGVtOnVzZXI6YWRkJywnc3lzdGVtOnVzZXI6ZWRpdCddImApLCExfWZ1bmN0aW9uIGkoZyx3KXtpZih3JiZ3Lmxlbmd0aD4wKXt2YXIgRT13LHg9Iio6KjoqIixPPWcuc29tZShmdW5jdGlvbihUKXtyZXR1cm4geD09PVR8fEU9PT1UfSk7cmV0dXJuISFPfXJldHVybiBjb25zb2xlLmVycm9yKGBuZWVkIHJvbGVzISBMaWtlIGNoZWNrUGVybWk9Ilsnc3lzdGVtOnVzZXI6YWRkJywnc3lzdGVtOnVzZXI6ZWRpdCddImApLCExfWZ1bmN0aW9uIHMoZyx3KXtpZihnPT09dm9pZCAwKXJldHVybiExO3ZhciBFPW4oKSh3KTtyZXR1cm4gRT09PSJzdHJpbmciP2koZyx3KTp0KGcsdyl9ZnVuY3Rpb24gYShnLHcpe2lmKGcmJncmJncubGVuZ3RoPjApe2Zvcih2YXIgRT0wO0U8KGc9PW51bGw/dm9pZCAwOmcubGVuZ3RoKTtFKyspZm9yKHZhciB4PTA7eDwodz09bnVsbD92b2lkIDA6dy5sZW5ndGgpO3grKylpZih3W3hdPT09Z1tFXS5yb2xlS2V5KXJldHVybiEwfXJldHVybiBjb25zb2xlLmVycm9yKGBuZWVkIHJvbGVzISBMaWtlIGNoZWNrUm9sZT0iWydhZG1pbicsJ2VkaXRvciddImApLCExfWZ1bmN0aW9uIHUoZyl7dmFyIHc9ZyE9bnVsbD9nOnt9LEU9dy5jdXJyZW50VXNlcix4PWZ1bmN0aW9uKFMpe3ZhciBMO3JldHVybiBzKGc9PW51bGx8fChMPWcuY3VycmVudFVzZXIpPT09bnVsbHx8TD09PXZvaWQgMD92b2lkIDA6TC5wZXJtaXNzaW9ucyxTKX0sTz1mdW5jdGlvbihTKXt2YXIgTDtyZXR1cm4gYShnPT1udWxsfHwoTD1nLmN1cnJlbnRVc2VyKT09PW51bGx8fEw9PT12b2lkIDA/dm9pZCAwOkwucm9sZXMsUy5hdXRob3JpdHkpfTtyZXR1cm57Y2FuQWRtaW46RSYmRS5hY2Nlc3M9PT0iYWRtaW4iLGhhc1Blcm1zOngscm9sZUZpbGVyOk99fWZ1bmN0aW9uIGMoZyx3LEUpe2c/bG9jYWxTdG9yYWdlLnNldEl0ZW0oImFjY2Vzc190b2tlbiIsZyk6bG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oImFjY2Vzc190b2tlbiIpLHc/bG9jYWxTdG9yYWdlLnNldEl0ZW0oInJlZnJlc2hfdG9rZW4iLHcpOmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJyZWZyZXNoX3Rva2VuIiksbG9jYWxTdG9yYWdlLnNldEl0ZW0oImV4cGlyZVRpbWUiLCIiLmNvbmNhdChFKSl9ZnVuY3Rpb24gaCgpe3JldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgiYWNjZXNzX3Rva2VuIil9ZnVuY3Rpb24gZCgpe3JldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgicmVmcmVzaF90b2tlbiIpfWZ1bmN0aW9uIG0oKXtyZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0oImV4cGlyZVRpbWUiKX1mdW5jdGlvbiBDKCl7c2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSgidXNlciIpLGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJhY2Nlc3NfdG9rZW4iKSxsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgicmVmcmVzaF90b2tlbiIpLGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJleHBpcmVUaW1lIil9fSw5OTcwMjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoMTIxMCksbj1lKDMzMTk3KSx0PWUoNjcyOTQpLGk9ZSg4NTg5Mykscz1mdW5jdGlvbigpe3JldHVybigwLGkuanN4KShuLnEse3N0eWxlOntiYWNrZ3JvdW5kOiJub25lIn0sbGlua3M6W3trZXk6IkFudCBEZXNpZ24gUHJvIix0aXRsZToiQW50IERlc2lnbiBQcm8iLGhyZWY6Imh0dHBzOi8vcHJvLmFudC5kZXNpZ24iLGJsYW5rVGFyZ2V0OiEwfSx7a2V5OiJnaXRodWIiLHRpdGxlOigwLGkuanN4KShyLlose30pLGhyZWY6Imh0dHBzOi8vZ2l0aHViLmNvbS9hbnQtZGVzaWduL2FudC1kZXNpZ24tcHJvIixibGFua1RhcmdldDohMH0se2tleToiQW50IERlc2lnbiIsdGl0bGU6IkFudCBEZXNpZ24iLGhyZWY6Imh0dHBzOi8vYW50LmRlc2lnbiIsYmxhbmtUYXJnZXQ6ITB9XX0pfTtwLlo9c30sNTEyNzU6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLnIocCkscC5kZWZhdWx0PXsiZ2VuLmltcG9ydCI6Ilx1NUJGQ1x1NTE2NSIsImdlbi50aXRsZSI6Ilx1ODg2OFx1NEZFMVx1NjA2RiIsImdlbi5nb2JhY2siOiJcdThGRDRcdTU2REUiLCJnZW4uc3VibWl0IjoiXHU2M0QwXHU0RUE0IiwiZ2VuLmdlbmNvZGUiOiJcdTc1MUZcdTYyMTAiLCJnZW4ucHJldmlldyI6Ilx1OTg4NFx1ODlDOCJ9fSw2NjAzNDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtBUDpmdW5jdGlvbigpe3JldHVybiB3fSxXNTpmdW5jdGlvbigpe3JldHVybiBnfSxiRzpmdW5jdGlvbigpe3JldHVybiBPfSxrdzpmdW5jdGlvbigpe3JldHVybiBHfSxuOTpmdW5jdGlvbigpe3JldHVybiB4fX0pO3ZhciByPWUoMTUwMDkpLG49ZS5uKHIpLHQ9ZSg5Nzg1NyksaT1lLm4odCkscz1lKDk5Mjg5KSxhPWUubihzKSx1PWUoNjQ1OTkpLGM9ZS5uKHUpLGg9ZSg4MDc2MSksZD1lKDc2NzcyKSxtPWUoNjcyOTQpLEM9bnVsbDtmdW5jdGlvbiBnKCl7cmV0dXJuIEN9ZnVuY3Rpb24gdyhKKXtDPUp9ZnVuY3Rpb24gRShKLG1lLHRlKXt2YXIgbGU9YygpKG1lKSxjZTt0cnl7dmFyIFc9ZnVuY3Rpb24oKXt2YXIgRD1jZS52YWx1ZTtpZihELmNvbXBvbmVudD09PSJMYXlvdXQifHxELmNvbXBvbmVudD09PSJQYXJlbnRWaWV3Iil7aWYoRC5yb3V0ZXMpe3ZhciBWPSExLFo9bnVsbCxQPWMoKShKLnJvdXRlcyksSzt0cnl7Zm9yKFAucygpOyEoSz1QLm4oKSkuZG9uZTspe3ZhciBzZT1LLnZhbHVlO3NlLnBhdGg9PT1ELnBhdGgmJihWPSEwLFo9c2UpfX1jYXRjaChFZSl7UC5lKEVlKX1maW5hbGx5e1AuZigpfVZ8fChaPXtwYXRoOkQucGF0aCxyb3V0ZXM6W10sY2hpbGRyZW46W119LEoucm91dGVzLnB1c2goWikpLEUoWixELnJvdXRlcyx0ZStELnBhdGgrIi8iKX19ZWxzZXt2YXIgbmU9RC5jb21wb25lbnQuc3BsaXQoIi8iKSxvZT0iIjtuZS5mb3JFYWNoKGZ1bmN0aW9uKEVlKXtpZihvZS5sZW5ndGg+MCYmKG9lKz0iLyIpLEVlIT09ImluZGV4Iil7dmFyIFJlO29lKz0oKFJlPUVlLmF0KDApKT09PW51bGx8fFJlPT09dm9pZCAwP3ZvaWQgMDpSZS50b1VwcGVyQ2FzZSgpKStFZS5zdWJzdHIoMSl9ZWxzZSBvZSs9RWV9KSxvZS5lbmRzV2l0aCgiLnRzeCIpfHwob2UrPSIudHN4IiksSi5yb3V0ZXM9PT12b2lkIDAmJihKLnJvdXRlcz1bXSksSi5jaGlsZHJlbj09PXZvaWQgMCYmKEouY2hpbGRyZW49W10pO3ZhciBmZT17ZWxlbWVudDptLmNyZWF0ZUVsZW1lbnQoKDAsbS5sYXp5KShmdW5jdGlvbigpe3JldHVybiBlKDcwNzE3KSgiLi8iK29lKX0pKSxwYXRoOnRlK0QucGF0aH07Si5jaGlsZHJlbi5wdXNoKGZlKSxKLnJvdXRlcy5wdXNoKGZlKX19O2ZvcihsZS5zKCk7IShjZT1sZS5uKCkpLmRvbmU7KVcoKX1jYXRjaChqKXtsZS5lKGopfWZpbmFsbHl7bGUuZigpfX1mdW5jdGlvbiB4KEope2lmKEMhPT1udWxsKXt2YXIgbWU9bnVsbCx0ZT1jKCkoSiksbGU7dHJ5e2Zvcih0ZS5zKCk7IShsZT10ZS5uKCkpLmRvbmU7KXt2YXIgY2U9bGUudmFsdWU7aWYoY2UuaWQ9PT0iYW50LWRlc2lnbi1wcm8tbGF5b3V0Iil7bWU9Y2U7YnJlYWt9fX1jYXRjaChXKXt0ZS5lKFcpfWZpbmFsbHl7dGUuZigpfUUobWUsQywiIil9fWZ1bmN0aW9uIE8oSil7cmV0dXJuIFQuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIFQoKXtyZXR1cm4gVD1hKCkobigpKCkubWFyayhmdW5jdGlvbiBKKG1lKXtyZXR1cm4gbigpKCkud3JhcChmdW5jdGlvbihsZSl7Zm9yKDs7KXN3aXRjaChsZS5wcmV2PWxlLm5leHQpe2Nhc2UgMDpyZXR1cm4gbGUuYWJydXB0KCJyZXR1cm4iLCgwLGQucmVxdWVzdCkoIi9hcGkvZ2V0SW5mbyIsaSgpKHttZXRob2Q6IkdFVCJ9LG1lfHx7fSkpKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBsZS5zdG9wKCl9fSxKKX0pKSxULmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBTKCl7cmV0dXJuIEwuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEwoKXtyZXR1cm4gTD1fYXN5bmNUb0dlbmVyYXRvcihfcmVnZW5lcmF0b3JSdW50aW1lKCkubWFyayhmdW5jdGlvbiBKKCl7cmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uKHRlKXtmb3IoOzspc3dpdGNoKHRlLnByZXY9dGUubmV4dCl7Y2FzZSAwOnJldHVybiB0ZS5hYnJ1cHQoInJldHVybiIscmVxdWVzdCgiL2FwaS9hdXRoL3JlZnJlc2giLHttZXRob2Q6InBvc3QifSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIHRlLnN0b3AoKX19LEopfSkpLEwuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEkoKXtyZXR1cm4gUi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gUigpe3JldHVybiBSPWEoKShuKCkoKS5tYXJrKGZ1bmN0aW9uIEooKXtyZXR1cm4gbigpKCkud3JhcChmdW5jdGlvbih0ZSl7Zm9yKDs7KXN3aXRjaCh0ZS5wcmV2PXRlLm5leHQpe2Nhc2UgMDpyZXR1cm4gdGUuYWJydXB0KCJyZXR1cm4iLCgwLGQucmVxdWVzdCkoIi9hcGkvZ2V0Um91dGVycyIpKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiB0ZS5zdG9wKCl9fSxKKX0pKSxSLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiB6KEope3JldHVybiBKLm1hcChmdW5jdGlvbihtZSl7cmV0dXJue3BhdGg6bWUucGF0aCxpY29uOigwLGguSSkobWUubWV0YS5pY29uKSxuYW1lOm1lLm1ldGEudGl0bGUscm91dGVzOm1lLmNoaWxkcmVuP3oobWUuY2hpbGRyZW4pOnZvaWQgMCxoaWRlQ2hpbGRyZW5Jbk1lbnU6bWUuaGlkZGVuLGhpZGVJbk1lbnU6bWUuaGlkZGVuLGNvbXBvbmVudDptZS5jb21wb25lbnQsYXV0aG9yaXR5Om1lLnBlcm1zfX0pfWZ1bmN0aW9uIEcoKXtyZXR1cm4gWS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gWSgpe3JldHVybiBZPWEoKShuKCkoKS5tYXJrKGZ1bmN0aW9uIEooKXtyZXR1cm4gbigpKCkud3JhcChmdW5jdGlvbih0ZSl7Zm9yKDs7KXN3aXRjaCh0ZS5wcmV2PXRlLm5leHQpe2Nhc2UgMDpyZXR1cm4gdGUuYWJydXB0KCJyZXR1cm4iLEkoKS50aGVuKGZ1bmN0aW9uKGxlKXtyZXR1cm4gbGUuY29kZT09PTIwMD96KGxlLmRhdGEpOltdfSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIHRlLnN0b3AoKX19LEopfSkpLFkuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGVlKEosbWUpe2lmKCFtZSlyZXR1cm5bXTt2YXIgdGU9W107cmV0dXJuIG1lLmZvckVhY2goZnVuY3Rpb24obGUpe2lmKGxlLnBhdGgpe3ZhciBjZTtpZihsZS5wYXRoPT09Sil7dGUucHVzaChsZSk7cmV0dXJufWlmKEoubGVuZ3RoPj0oKGNlPWxlLnBhdGgpPT09bnVsbHx8Y2U9PT12b2lkIDA/dm9pZCAwOmNlLmxlbmd0aCkpe3ZhciBXPSIiLmNvbmNhdChsZS5wYXRoLCIvKiIpO2lmKEoubWF0Y2goVykpaWYobGUucm91dGVzKXt2YXIgaj1KLnN1YnN0cihsZS5wYXRoLmxlbmd0aCsxKSxEPWVlKGosbGUucm91dGVzKTt0ZT10ZS5jb25jYXQoRCl9ZWxzZXt2YXIgVj1KLnNwbGl0KCIvIik7Vi5sZW5ndGg+PTImJlZbMF09PT1sZS5wYXRoJiZWWzFdPT09ImluZGV4IiYmdGUucHVzaChsZSl9fX19KSx0ZX19LDI1OTk1OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse2gyOmZ1bmN0aW9uKCl7cmV0dXJuIGN9LGtTOmZ1bmN0aW9uKCl7cmV0dXJuIEN9LHg0OmZ1bmN0aW9uKCl7cmV0dXJuIGR9fSk7dmFyIHI9ZSgxNTAwOSksbj1lLm4ociksdD1lKDk3ODU3KSxpPWUubih0KSxzPWUoOTkyODkpLGE9ZS5uKHMpLHU9ZSg3Njc3Mik7ZnVuY3Rpb24gYyh4LE8pe3JldHVybiBoLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBoKCl7cmV0dXJuIGg9YSgpKG4oKSgpLm1hcmsoZnVuY3Rpb24geChPLFQpe3JldHVybiBuKCkoKS53cmFwKGZ1bmN0aW9uKEwpe2Zvcig7Oylzd2l0Y2goTC5wcmV2PUwubmV4dCl7Y2FzZSAwOnJldHVybiBMLmFicnVwdCgicmV0dXJuIiwoMCx1LnJlcXVlc3QpKCIvYXBpL2NhcHRjaGFJbWFnZSIsaSgpKHttZXRob2Q6IkdFVCIscGFyYW1zOmkoKSh7fSxPKSxoZWFkZXJzOntpc1Rva2VuOiExfX0sVHx8e30pKSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gTC5zdG9wKCl9fSx4KX0pKSxoLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBkKHgsTyl7cmV0dXJuIG0uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIG0oKXtyZXR1cm4gbT1hKCkobigpKCkubWFyayhmdW5jdGlvbiB4KE8sVCl7cmV0dXJuIG4oKSgpLndyYXAoZnVuY3Rpb24oTCl7Zm9yKDs7KXN3aXRjaChMLnByZXY9TC5uZXh0KXtjYXNlIDA6cmV0dXJuIEwuYWJydXB0KCJyZXR1cm4iLCgwLHUucmVxdWVzdCkoIi9hcGkvbG9naW4iLGkoKSh7bWV0aG9kOiJQT1NUIixoZWFkZXJzOntpc1Rva2VuOiExLCJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sZGF0YTpPfSxUfHx7fSkpKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBMLnN0b3AoKX19LHgpfSkpLG0uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEMoKXtyZXR1cm4gZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gZygpe3JldHVybiBnPWEoKShuKCkoKS5tYXJrKGZ1bmN0aW9uIHgoKXtyZXR1cm4gbigpKCkud3JhcChmdW5jdGlvbihUKXtmb3IoOzspc3dpdGNoKFQucHJldj1ULm5leHQpe2Nhc2UgMDpyZXR1cm4gVC5hYnJ1cHQoInJldHVybiIsKDAsdS5yZXF1ZXN0KSgiL2FwaS9sb2dvdXQiLHttZXRob2Q6ImRlbGV0ZSJ9KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gVC5zdG9wKCl9fSx4KX0pKSxnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiB3KHgpe3JldHVybiBFLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBFKCl7cmV0dXJuIEU9X2FzeW5jVG9HZW5lcmF0b3IoX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24geChPKXtyZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24oUyl7Zm9yKDs7KXN3aXRjaChTLnByZXY9Uy5uZXh0KXtjYXNlIDA6cmV0dXJuIFMuYWJydXB0KCJyZXR1cm4iLHJlcXVlc3QoIi9hcGkvbG9naW4vY2FwdGNoYT9tb2JpbGU9Ii5jb25jYXQoTykpKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBTLnN0b3AoKX19LHgpfSkpLEUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0sODA3NjE6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7STpmdW5jdGlvbigpe3JldHVybiB1fX0pO3ZhciByPWUoNTI2NzcpLG49ZS5uKHIpLHQ9ZSg2NTYyNCksaT1lKDY3Mjk0KSxzPXQ7ZnVuY3Rpb24gYShjKXt2YXIgaD1zW2NdO3JldHVybiBofHwiIn1mdW5jdGlvbiB1KGMpe2lmKG4oKShjKT09PSJvYmplY3QiKXJldHVybiBjO3ZhciBoPXNbY107cmV0dXJuIGg/aS5jcmVhdGVFbGVtZW50KHNbY10pOiIifX0sMjc2OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1o6ZnVuY3Rpb24oKXtyZXR1cm4gTWV9fSk7dmFyIHI9ZSgxNDEzKSxuPWUoOTc2ODUpLHQ9ZSg0OTQyKSxpPWUoOTEpLHM9ZSg2NzI5NCksYT1lKDkzOTY3KSx1PWUubihhKSxjPSgwLHMuY3JlYXRlQ29udGV4dCkoe30pLGg9YyxkPWUoNzEwMDIpLG09ZSg4NjUwMCksQz1lKDEzNTApLGc9Mix3PS4xNixFPS4wNSx4PS4wNSxPPS4xNSxUPTUsUz00LEw9W3tpbmRleDo3LG9wYWNpdHk6LjE1fSx7aW5kZXg6NixvcGFjaXR5Oi4yNX0se2luZGV4OjUsb3BhY2l0eTouM30se2luZGV4OjUsb3BhY2l0eTouNDV9LHtpbmRleDo1LG9wYWNpdHk6LjY1fSx7aW5kZXg6NSxvcGFjaXR5Oi44NX0se2luZGV4OjQsb3BhY2l0eTouOX0se2luZGV4OjMsb3BhY2l0eTouOTV9LHtpbmRleDoyLG9wYWNpdHk6Ljk3fSx7aW5kZXg6MSxvcGFjaXR5Oi45OH1dO2Z1bmN0aW9uIEkoYmUpe3ZhciAkZT1iZS5yLGtlPWJlLmcsQWU9YmUuYix0dD0oMCxtLnB5KSgkZSxrZSxBZSk7cmV0dXJue2g6dHQuaCozNjAsczp0dC5zLHY6dHQudn19ZnVuY3Rpb24gUihiZSl7dmFyICRlPWJlLnIsa2U9YmUuZyxBZT1iZS5iO3JldHVybiIjIi5jb25jYXQoKDAsbS52cSkoJGUsa2UsQWUsITEpKX1mdW5jdGlvbiB6KGJlLCRlLGtlKXt2YXIgQWU9a2UvMTAwLHR0PXtyOigkZS5yLWJlLnIpKkFlK2JlLnIsZzooJGUuZy1iZS5nKSpBZStiZS5nLGI6KCRlLmItYmUuYikqQWUrYmUuYn07cmV0dXJuIHR0fWZ1bmN0aW9uIEcoYmUsJGUsa2Upe3ZhciBBZTtyZXR1cm4gTWF0aC5yb3VuZChiZS5oKT49NjAmJk1hdGgucm91bmQoYmUuaCk8PTI0MD9BZT1rZT9NYXRoLnJvdW5kKGJlLmgpLWcqJGU6TWF0aC5yb3VuZChiZS5oKStnKiRlOkFlPWtlP01hdGgucm91bmQoYmUuaCkrZyokZTpNYXRoLnJvdW5kKGJlLmgpLWcqJGUsQWU8MD9BZSs9MzYwOkFlPj0zNjAmJihBZS09MzYwKSxBZX1mdW5jdGlvbiBZKGJlLCRlLGtlKXtpZihiZS5oPT09MCYmYmUucz09PTApcmV0dXJuIGJlLnM7dmFyIEFlO3JldHVybiBrZT9BZT1iZS5zLXcqJGU6JGU9PT1TP0FlPWJlLnMrdzpBZT1iZS5zK0UqJGUsQWU+MSYmKEFlPTEpLGtlJiYkZT09PVQmJkFlPi4xJiYoQWU9LjEpLEFlPC4wNiYmKEFlPS4wNiksTnVtYmVyKEFlLnRvRml4ZWQoMikpfWZ1bmN0aW9uIGVlKGJlLCRlLGtlKXt2YXIgQWU7cmV0dXJuIGtlP0FlPWJlLnYreCokZTpBZT1iZS52LU8qJGUsQWU+MSYmKEFlPTEpLE51bWJlcihBZS50b0ZpeGVkKDIpKX1mdW5jdGlvbiBKKGJlKXtmb3IodmFyICRlPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTp7fSxrZT1bXSxBZT0oMCxDLnVBKShiZSksdHQ9VDt0dD4wO3R0LT0xKXt2YXIgbXQ9SShBZSksdXQ9UigoMCxDLnVBKSh7aDpHKG10LHR0LCEwKSxzOlkobXQsdHQsITApLHY6ZWUobXQsdHQsITApfSkpO2tlLnB1c2godXQpfWtlLnB1c2goUihBZSkpO2Zvcih2YXIgRGU9MTtEZTw9UztEZSs9MSl7dmFyIE5lPUkoQWUpLFhlPVIoKDAsQy51QSkoe2g6RyhOZSxEZSksczpZKE5lLERlKSx2OmVlKE5lLERlKX0pKTtrZS5wdXNoKFhlKX1yZXR1cm4gJGUudGhlbWU9PT0iZGFyayI/TC5tYXAoZnVuY3Rpb24oSmUpe3ZhciBndD1KZS5pbmRleCxkZT1KZS5vcGFjaXR5LFdlPVIoeigoMCxDLnVBKSgkZS5iYWNrZ3JvdW5kQ29sb3J8fCIjMTQxNDE0IiksKDAsQy51QSkoa2VbZ3RdKSxkZSoxMDApKTtyZXR1cm4gV2V9KTprZX12YXIgbWU9e3JlZDoiI0Y1MjIyRCIsdm9sY2FubzoiI0ZBNTQxQyIsb3JhbmdlOiIjRkE4QzE2Iixnb2xkOiIjRkFBRDE0Iix5ZWxsb3c6IiNGQURCMTQiLGxpbWU6IiNBMEQ5MTEiLGdyZWVuOiIjNTJDNDFBIixjeWFuOiIjMTNDMkMyIixibHVlOiIjMTg5MEZGIixnZWVrYmx1ZToiIzJGNTRFQiIscHVycGxlOiIjNzIyRUQxIixtYWdlbnRhOiIjRUIyRjk2IixncmV5OiIjNjY2NjY2In0sdGU9e30sbGU9e307T2JqZWN0LmtleXMobWUpLmZvckVhY2goZnVuY3Rpb24oYmUpe3RlW2JlXT1KKG1lW2JlXSksdGVbYmVdLnByaW1hcnk9dGVbYmVdWzVdLGxlW2JlXT1KKG1lW2JlXSx7dGhlbWU6ImRhcmsiLGJhY2tncm91bmRDb2xvcjoiIzE0MTQxNCJ9KSxsZVtiZV0ucHJpbWFyeT1sZVtiZV1bNV19KTt2YXIgY2U9dGUucmVkLFc9dGUudm9sY2FubyxqPXRlLmdvbGQsRD10ZS5vcmFuZ2UsVj10ZS55ZWxsb3csWj10ZS5saW1lLFA9dGUuZ3JlZW4sSz10ZS5jeWFuLHNlPXRlLmJsdWUsbmU9dGUuZ2Vla2JsdWUsb2U9dGUucHVycGxlLGZlPXRlLm1hZ2VudGEsRWU9dGUuZ3JleSxSZT1lKDgwMzM0KSxCZT1lKDQ0OTU4KSxZZT1lKDY4OTI5KSxvdD1lLm4oWWUpO2Z1bmN0aW9uIHFlKGJlLCRlKXsoMCxSZS5aUCkoYmUsIltAYW50LWRlc2lnbi9pY29uc10gIi5jb25jYXQoJGUpKX1mdW5jdGlvbiBfZShiZSl7cmV0dXJuKDAsZC5aKShiZSk9PT0ib2JqZWN0IiYmdHlwZW9mIGJlLm5hbWU9PSJzdHJpbmciJiZ0eXBlb2YgYmUudGhlbWU9PSJzdHJpbmciJiYoKDAsZC5aKShiZS5pY29uKT09PSJvYmplY3QifHx0eXBlb2YgYmUuaWNvbj09ImZ1bmN0aW9uIil9ZnVuY3Rpb24gRmUoKXt2YXIgYmU9YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT12b2lkIDA/YXJndW1lbnRzWzBdOnt9O3JldHVybiBPYmplY3Qua2V5cyhiZSkucmVkdWNlKGZ1bmN0aW9uKCRlLGtlKXt2YXIgQWU9YmVba2VdO3N3aXRjaChrZSl7Y2FzZSJjbGFzcyI6JGUuY2xhc3NOYW1lPUFlLGRlbGV0ZSAkZS5jbGFzczticmVhaztkZWZhdWx0OmRlbGV0ZSAkZVtrZV0sJGVbb3QoKShrZSldPUFlfXJldHVybiAkZX0se30pfWZ1bmN0aW9uIFNlKGJlLCRlLGtlKXtyZXR1cm4ga2U/cy5jcmVhdGVFbGVtZW50KGJlLnRhZywoMCxyLlopKCgwLHIuWikoe2tleTokZX0sRmUoYmUuYXR0cnMpKSxrZSksKGJlLmNoaWxkcmVufHxbXSkubWFwKGZ1bmN0aW9uKEFlLHR0KXtyZXR1cm4gU2UoQWUsIiIuY29uY2F0KCRlLCItIikuY29uY2F0KGJlLnRhZywiLSIpLmNvbmNhdCh0dCkpfSkpOnMuY3JlYXRlRWxlbWVudChiZS50YWcsKDAsci5aKSh7a2V5OiRlfSxGZShiZS5hdHRycykpLChiZS5jaGlsZHJlbnx8W10pLm1hcChmdW5jdGlvbihBZSx0dCl7cmV0dXJuIFNlKEFlLCIiLmNvbmNhdCgkZSwiLSIpLmNvbmNhdChiZS50YWcsIi0iKS5jb25jYXQodHQpKX0pKX1mdW5jdGlvbiBxKGJlKXtyZXR1cm4gSihiZSlbMF19ZnVuY3Rpb24gayhiZSl7cmV0dXJuIGJlP0FycmF5LmlzQXJyYXkoYmUpP2JlOltiZV06W119dmFyIE09e3dpZHRoOiIxZW0iLGhlaWdodDoiMWVtIixmaWxsOiJjdXJyZW50Q29sb3IiLCJhcmlhLWhpZGRlbiI6InRydWUiLGZvY3VzYWJsZToiZmFsc2UifSxBPWAKKy5hbnRpY29uIHsKKyAgZGlzcGxheTogaW5saW5lLWZsZXg7CisgIGFsaWduSXRlbXM6IGNlbnRlcjsKKyAgY29sb3I6IGluaGVyaXQ7CisgIGZvbnQtc3R5bGU6IG5vcm1hbDsKKyAgbGluZS1oZWlnaHQ6IDA7CisgIHRleHQtYWxpZ246IGNlbnRlcjsKKyAgdGV4dC10cmFuc2Zvcm06IG5vbmU7CisgIHZlcnRpY2FsLWFsaWduOiAtMC4xMjVlbTsKKyAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTsKKyAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7CisgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7Cit9CisKKy5hbnRpY29uID4gKiB7CisgIGxpbmUtaGVpZ2h0OiAxOworfQorCisuYW50aWNvbiBzdmcgeworICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Cit9CisKKy5hbnRpY29uOjpiZWZvcmUgeworICBkaXNwbGF5OiBub25lOworfQorCisuYW50aWNvbiAuYW50aWNvbi1pY29uIHsKKyAgZGlzcGxheTogYmxvY2s7Cit9CisKKy5hbnRpY29uW3RhYmluZGV4XSB7CisgIGN1cnNvcjogcG9pbnRlcjsKK30KKworLmFudGljb24tc3Bpbjo6YmVmb3JlLAorLmFudGljb24tc3BpbiB7CisgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgLXdlYmtpdC1hbmltYXRpb246IGxvYWRpbmdDaXJjbGUgMXMgaW5maW5pdGUgbGluZWFyOworICBhbmltYXRpb246IGxvYWRpbmdDaXJjbGUgMXMgaW5maW5pdGUgbGluZWFyOworfQorCitALXdlYmtpdC1rZXlmcmFtZXMgbG9hZGluZ0NpcmNsZSB7CisgIDEwMCUgeworICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsKKyAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOworICB9Cit9CisKK0BrZXlmcmFtZXMgbG9hZGluZ0NpcmNsZSB7CisgIDEwMCUgeworICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsKKyAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOworICB9Cit9CitgLFU9ZnVuY3Rpb24oKXt2YXIgJGU9YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT12b2lkIDA/YXJndW1lbnRzWzBdOkEsa2U9KDAscy51c2VDb250ZXh0KShoKSxBZT1rZS5jc3A7KDAscy51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7KDAsQmUuaHEpKCRlLCJAYW50LWRlc2lnbi1pY29ucyIse3ByZXBlbmQ6ITAsY3NwOkFlfSl9LFtdKX0sTj1bImljb24iLCJjbGFzc05hbWUiLCJvbkNsaWNrIiwic3R5bGUiLCJwcmltYXJ5Q29sb3IiLCJzZWNvbmRhcnlDb2xvciJdLFE9e3ByaW1hcnlDb2xvcjoiIzMzMyIsc2Vjb25kYXJ5Q29sb3I6IiNFNkU2RTYiLGNhbGN1bGF0ZWQ6ITF9O2Z1bmN0aW9uIHVlKGJlKXt2YXIgJGU9YmUucHJpbWFyeUNvbG9yLGtlPWJlLnNlY29uZGFyeUNvbG9yO1EucHJpbWFyeUNvbG9yPSRlLFEuc2Vjb25kYXJ5Q29sb3I9a2V8fHEoJGUpLFEuY2FsY3VsYXRlZD0hIWtlfWZ1bmN0aW9uICQoKXtyZXR1cm4oMCxyLlopKHt9LFEpfXZhciBfPWZ1bmN0aW9uKCRlKXt2YXIga2U9JGUuaWNvbixBZT0kZS5jbGFzc05hbWUsdHQ9JGUub25DbGljayxtdD0kZS5zdHlsZSx1dD0kZS5wcmltYXJ5Q29sb3IsRGU9JGUuc2Vjb25kYXJ5Q29sb3IsTmU9KDAsaS5aKSgkZSxOKSxYZT1RO2lmKHV0JiYoWGU9e3ByaW1hcnlDb2xvcjp1dCxzZWNvbmRhcnlDb2xvcjpEZXx8cSh1dCl9KSxVKCkscWUoX2Uoa2UpLCJpY29uIHNob3VsZCBiZSBpY29uIGRlZmluaXRvbiwgYnV0IGdvdCAiLmNvbmNhdChrZSkpLCFfZShrZSkpcmV0dXJuIG51bGw7dmFyIEplPWtlO3JldHVybiBKZSYmdHlwZW9mIEplLmljb249PSJmdW5jdGlvbiImJihKZT0oMCxyLlopKCgwLHIuWikoe30sSmUpLHt9LHtpY29uOkplLmljb24oWGUucHJpbWFyeUNvbG9yLFhlLnNlY29uZGFyeUNvbG9yKX0pKSxTZShKZS5pY29uLCJzdmctIi5jb25jYXQoSmUubmFtZSksKDAsci5aKSh7Y2xhc3NOYW1lOkFlLG9uQ2xpY2s6dHQsc3R5bGU6bXQsImRhdGEtaWNvbiI6SmUubmFtZSx3aWR0aDoiMWVtIixoZWlnaHQ6IjFlbSIsZmlsbDoiY3VycmVudENvbG9yIiwiYXJpYS1oaWRkZW4iOiJ0cnVlIn0sTmUpKX07Xy5kaXNwbGF5TmFtZT0iSWNvblJlYWN0IixfLmdldFR3b1RvbmVDb2xvcnM9JCxfLnNldFR3b1RvbmVDb2xvcnM9dWU7dmFyIHBlPV87ZnVuY3Rpb24gcmUoYmUpe3ZhciAkZT1rKGJlKSxrZT0oMCxuLlopKCRlLDIpLEFlPWtlWzBdLHR0PWtlWzFdO3JldHVybiBwZS5zZXRUd29Ub25lQ29sb3JzKHtwcmltYXJ5Q29sb3I6QWUsc2Vjb25kYXJ5Q29sb3I6dHR9KX1mdW5jdGlvbiBhZSgpe3ZhciBiZT1wZS5nZXRUd29Ub25lQ29sb3JzKCk7cmV0dXJuIGJlLmNhbGN1bGF0ZWQ/W2JlLnByaW1hcnlDb2xvcixiZS5zZWNvbmRhcnlDb2xvcl06YmUucHJpbWFyeUNvbG9yfXZhciB3ZT1bImNsYXNzTmFtZSIsImljb24iLCJzcGluIiwicm90YXRlIiwidGFiSW5kZXgiLCJvbkNsaWNrIiwidHdvVG9uZUNvbG9yIl07cmUoIiMxODkwZmYiKTt2YXIgTGU9cy5mb3J3YXJkUmVmKGZ1bmN0aW9uKGJlLCRlKXt2YXIga2U9YmUuY2xhc3NOYW1lLEFlPWJlLmljb24sdHQ9YmUuc3BpbixtdD1iZS5yb3RhdGUsdXQ9YmUudGFiSW5kZXgsRGU9YmUub25DbGljayxOZT1iZS50d29Ub25lQ29sb3IsWGU9KDAsaS5aKShiZSx3ZSksSmU9cy51c2VDb250ZXh0KGgpLGd0PUplLnByZWZpeENscyxkZT1ndD09PXZvaWQgMD8iYW50aWNvbiI6Z3QsV2U9SmUucm9vdENsYXNzTmFtZSxTdD11KCkoV2UsZGUsKDAsdC5aKSgoMCx0LlopKHt9LCIiLmNvbmNhdChkZSwiLSIpLmNvbmNhdChBZS5uYW1lKSwhIUFlLm5hbWUpLCIiLmNvbmNhdChkZSwiLXNwaW4iKSwhIXR0fHxBZS5uYW1lPT09ImxvYWRpbmciKSxrZSksY3Q9dXQ7Y3Q9PT12b2lkIDAmJkRlJiYoY3Q9LTEpO3ZhciBPZT1tdD97bXNUcmFuc2Zvcm06InJvdGF0ZSgiLmNvbmNhdChtdCwiZGVnKSIpLHRyYW5zZm9ybToicm90YXRlKCIuY29uY2F0KG10LCJkZWcpIil9OnZvaWQgMCxHZT1rKE5lKSxodD0oMCxuLlopKEdlLDIpLHplPWh0WzBdLFFlPWh0WzFdO3JldHVybiBzLmNyZWF0ZUVsZW1lbnQoInNwYW4iLCgwLHIuWikoKDAsci5aKSh7cm9sZToiaW1nIiwiYXJpYS1sYWJlbCI6QWUubmFtZX0sWGUpLHt9LHtyZWY6JGUsdGFiSW5kZXg6Y3Qsb25DbGljazpEZSxjbGFzc05hbWU6U3R9KSxzLmNyZWF0ZUVsZW1lbnQocGUse2ljb246QWUscHJpbWFyeUNvbG9yOnplLHNlY29uZGFyeUNvbG9yOlFlLHN0eWxlOk9lfSkpfSk7TGUuZGlzcGxheU5hbWU9IkFudGRJY29uIixMZS5nZXRUd29Ub25lQ29sb3I9YWUsTGUuc2V0VHdvVG9uZUNvbG9yPXJlO3ZhciBNZT1MZX0sMTMzOTk6ZnVuY3Rpb24oeSl7dmFyIHA9ZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO3ZhciByPU9iamVjdC5wcm90b3R5cGUsbj1yLmhhc093blByb3BlcnR5LHQ9T2JqZWN0LmRlZmluZVByb3BlcnR5fHxmdW5jdGlvbihqLEQsVil7altEXT1WLnZhbHVlfSxpLHM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIj9TeW1ib2w6e30sYT1zLml0ZXJhdG9yfHwiQEBpdGVyYXRvciIsdT1zLmFzeW5jSXRlcmF0b3J8fCJAQGFzeW5jSXRlcmF0b3IiLGM9cy50b1N0cmluZ1RhZ3x8IkBAdG9TdHJpbmdUYWciO2Z1bmN0aW9uIGgoaixELFYpe3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoaixELHt2YWx1ZTpWLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSksaltEXX10cnl7aCh7fSwiIil9Y2F0Y2goail7aD1mdW5jdGlvbihELFYsWil7cmV0dXJuIERbVl09Wn19ZnVuY3Rpb24gZChqLEQsVixaKXt2YXIgUD1EJiZELnByb3RvdHlwZSBpbnN0YW5jZW9mIE8/RDpPLEs9T2JqZWN0LmNyZWF0ZShQLnByb3RvdHlwZSksc2U9bmV3IGxlKFp8fFtdKTtyZXR1cm4gdChLLCJfaW52b2tlIix7dmFsdWU6ZWUoaixWLHNlKX0pLEt9ZS53cmFwPWQ7ZnVuY3Rpb24gbShqLEQsVil7dHJ5e3JldHVybnt0eXBlOiJub3JtYWwiLGFyZzpqLmNhbGwoRCxWKX19Y2F0Y2goWil7cmV0dXJue3R5cGU6InRocm93Iixhcmc6Wn19fXZhciBDPSJzdXNwZW5kZWRTdGFydCIsZz0ic3VzcGVuZGVkWWllbGQiLHc9ImV4ZWN1dGluZyIsRT0iY29tcGxldGVkIix4PXt9O2Z1bmN0aW9uIE8oKXt9ZnVuY3Rpb24gVCgpe31mdW5jdGlvbiBTKCl7fXZhciBMPXt9O2goTCxhLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KTt2YXIgST1PYmplY3QuZ2V0UHJvdG90eXBlT2YsUj1JJiZJKEkoY2UoW10pKSk7UiYmUiE9PXImJm4uY2FsbChSLGEpJiYoTD1SKTt2YXIgej1TLnByb3RvdHlwZT1PLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKEwpO1QucHJvdG90eXBlPVMsdCh6LCJjb25zdHJ1Y3RvciIse3ZhbHVlOlMsY29uZmlndXJhYmxlOiEwfSksdChTLCJjb25zdHJ1Y3RvciIse3ZhbHVlOlQsY29uZmlndXJhYmxlOiEwfSksVC5kaXNwbGF5TmFtZT1oKFMsYywiR2VuZXJhdG9yRnVuY3Rpb24iKTtmdW5jdGlvbiBHKGope1sibmV4dCIsInRocm93IiwicmV0dXJuIl0uZm9yRWFjaChmdW5jdGlvbihEKXtoKGosRCxmdW5jdGlvbihWKXtyZXR1cm4gdGhpcy5faW52b2tlKEQsVil9KX0pfWUuaXNHZW5lcmF0b3JGdW5jdGlvbj1mdW5jdGlvbihqKXt2YXIgRD10eXBlb2Ygaj09ImZ1bmN0aW9uIiYmai5jb25zdHJ1Y3RvcjtyZXR1cm4gRD9EPT09VHx8KEQuZGlzcGxheU5hbWV8fEQubmFtZSk9PT0iR2VuZXJhdG9yRnVuY3Rpb24iOiExfSxlLm1hcms9ZnVuY3Rpb24oail7cmV0dXJuIE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YoaixTKTooai5fX3Byb3RvX189UyxoKGosYywiR2VuZXJhdG9yRnVuY3Rpb24iKSksai5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh6KSxqfSxlLmF3cmFwPWZ1bmN0aW9uKGope3JldHVybntfX2F3YWl0Omp9fTtmdW5jdGlvbiBZKGosRCl7ZnVuY3Rpb24gVihLLHNlLG5lLG9lKXt2YXIgZmU9bShqW0tdLGosc2UpO2lmKGZlLnR5cGU9PT0idGhyb3ciKW9lKGZlLmFyZyk7ZWxzZXt2YXIgRWU9ZmUuYXJnLFJlPUVlLnZhbHVlO3JldHVybiBSZSYmdHlwZW9mIFJlPT0ib2JqZWN0IiYmbi5jYWxsKFJlLCJfX2F3YWl0Iik/RC5yZXNvbHZlKFJlLl9fYXdhaXQpLnRoZW4oZnVuY3Rpb24oQmUpe1YoIm5leHQiLEJlLG5lLG9lKX0sZnVuY3Rpb24oQmUpe1YoInRocm93IixCZSxuZSxvZSl9KTpELnJlc29sdmUoUmUpLnRoZW4oZnVuY3Rpb24oQmUpe0VlLnZhbHVlPUJlLG5lKEVlKX0sZnVuY3Rpb24oQmUpe3JldHVybiBWKCJ0aHJvdyIsQmUsbmUsb2UpfSl9fXZhciBaO2Z1bmN0aW9uIFAoSyxzZSl7ZnVuY3Rpb24gbmUoKXtyZXR1cm4gbmV3IEQoZnVuY3Rpb24ob2UsZmUpe1YoSyxzZSxvZSxmZSl9KX1yZXR1cm4gWj1aP1oudGhlbihuZSxuZSk6bmUoKX10KHRoaXMsIl9pbnZva2UiLHt2YWx1ZTpQfSl9RyhZLnByb3RvdHlwZSksaChZLnByb3RvdHlwZSx1LGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxlLkFzeW5jSXRlcmF0b3I9WSxlLmFzeW5jPWZ1bmN0aW9uKGosRCxWLFosUCl7UD09PXZvaWQgMCYmKFA9UHJvbWlzZSk7dmFyIEs9bmV3IFkoZChqLEQsVixaKSxQKTtyZXR1cm4gZS5pc0dlbmVyYXRvckZ1bmN0aW9uKEQpP0s6Sy5uZXh0KCkudGhlbihmdW5jdGlvbihzZSl7cmV0dXJuIHNlLmRvbmU/c2UudmFsdWU6Sy5uZXh0KCl9KX07ZnVuY3Rpb24gZWUoaixELFYpe3ZhciBaPUM7cmV0dXJuIGZ1bmN0aW9uKEssc2Upe2lmKFo9PT13KXRocm93IG5ldyBFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgcnVubmluZyIpO2lmKFo9PT1FKXtpZihLPT09InRocm93Iil0aHJvdyBzZTtyZXR1cm4gVygpfWZvcihWLm1ldGhvZD1LLFYuYXJnPXNlOzspe3ZhciBuZT1WLmRlbGVnYXRlO2lmKG5lKXt2YXIgb2U9SihuZSxWKTtpZihvZSl7aWYob2U9PT14KWNvbnRpbnVlO3JldHVybiBvZX19aWYoVi5tZXRob2Q9PT0ibmV4dCIpVi5zZW50PVYuX3NlbnQ9Vi5hcmc7ZWxzZSBpZihWLm1ldGhvZD09PSJ0aHJvdyIpe2lmKFo9PT1DKXRocm93IFo9RSxWLmFyZztWLmRpc3BhdGNoRXhjZXB0aW9uKFYuYXJnKX1lbHNlIFYubWV0aG9kPT09InJldHVybiImJlYuYWJydXB0KCJyZXR1cm4iLFYuYXJnKTtaPXc7dmFyIGZlPW0oaixELFYpO2lmKGZlLnR5cGU9PT0ibm9ybWFsIil7aWYoWj1WLmRvbmU/RTpnLGZlLmFyZz09PXgpY29udGludWU7cmV0dXJue3ZhbHVlOmZlLmFyZyxkb25lOlYuZG9uZX19ZWxzZSBmZS50eXBlPT09InRocm93IiYmKFo9RSxWLm1ldGhvZD0idGhyb3ciLFYuYXJnPWZlLmFyZyl9fX1mdW5jdGlvbiBKKGosRCl7dmFyIFY9RC5tZXRob2QsWj1qLml0ZXJhdG9yW1ZdO2lmKFo9PT1pKXJldHVybiBELmRlbGVnYXRlPW51bGwsVj09PSJ0aHJvdyImJmouaXRlcmF0b3IucmV0dXJuJiYoRC5tZXRob2Q9InJldHVybiIsRC5hcmc9aSxKKGosRCksRC5tZXRob2Q9PT0idGhyb3ciKXx8ViE9PSJyZXR1cm4iJiYoRC5tZXRob2Q9InRocm93IixELmFyZz1uZXcgVHlwZUVycm9yKCJUaGUgaXRlcmF0b3IgZG9lcyBub3QgcHJvdmlkZSBhICciK1YrIicgbWV0aG9kIikpLHg7dmFyIFA9bShaLGouaXRlcmF0b3IsRC5hcmcpO2lmKFAudHlwZT09PSJ0aHJvdyIpcmV0dXJuIEQubWV0aG9kPSJ0aHJvdyIsRC5hcmc9UC5hcmcsRC5kZWxlZ2F0ZT1udWxsLHg7dmFyIEs9UC5hcmc7aWYoIUspcmV0dXJuIEQubWV0aG9kPSJ0aHJvdyIsRC5hcmc9bmV3IFR5cGVFcnJvcigiaXRlcmF0b3IgcmVzdWx0IGlzIG5vdCBhbiBvYmplY3QiKSxELmRlbGVnYXRlPW51bGwseDtpZihLLmRvbmUpRFtqLnJlc3VsdE5hbWVdPUsudmFsdWUsRC5uZXh0PWoubmV4dExvYyxELm1ldGhvZCE9PSJyZXR1cm4iJiYoRC5tZXRob2Q9Im5leHQiLEQuYXJnPWkpO2Vsc2UgcmV0dXJuIEs7cmV0dXJuIEQuZGVsZWdhdGU9bnVsbCx4fUcoeiksaCh6LGMsIkdlbmVyYXRvciIpLGgoeixhLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxoKHosInRvU3RyaW5nIixmdW5jdGlvbigpe3JldHVybiJbb2JqZWN0IEdlbmVyYXRvcl0ifSk7ZnVuY3Rpb24gbWUoail7dmFyIEQ9e3RyeUxvYzpqWzBdfTsxIGluIGomJihELmNhdGNoTG9jPWpbMV0pLDIgaW4gaiYmKEQuZmluYWxseUxvYz1qWzJdLEQuYWZ0ZXJMb2M9alszXSksdGhpcy50cnlFbnRyaWVzLnB1c2goRCl9ZnVuY3Rpb24gdGUoail7dmFyIEQ9ai5jb21wbGV0aW9ufHx7fTtELnR5cGU9Im5vcm1hbCIsZGVsZXRlIEQuYXJnLGouY29tcGxldGlvbj1EfWZ1bmN0aW9uIGxlKGope3RoaXMudHJ5RW50cmllcz1be3RyeUxvYzoicm9vdCJ9XSxqLmZvckVhY2gobWUsdGhpcyksdGhpcy5yZXNldCghMCl9ZS5rZXlzPWZ1bmN0aW9uKGope3ZhciBEPU9iamVjdChqKSxWPVtdO2Zvcih2YXIgWiBpbiBEKVYucHVzaChaKTtyZXR1cm4gVi5yZXZlcnNlKCksZnVuY3Rpb24gUCgpe2Zvcig7Vi5sZW5ndGg7KXt2YXIgSz1WLnBvcCgpO2lmKEsgaW4gRClyZXR1cm4gUC52YWx1ZT1LLFAuZG9uZT0hMSxQfXJldHVybiBQLmRvbmU9ITAsUH19O2Z1bmN0aW9uIGNlKGope2lmKGope3ZhciBEPWpbYV07aWYoRClyZXR1cm4gRC5jYWxsKGopO2lmKHR5cGVvZiBqLm5leHQ9PSJmdW5jdGlvbiIpcmV0dXJuIGo7aWYoIWlzTmFOKGoubGVuZ3RoKSl7dmFyIFY9LTEsWj1mdW5jdGlvbiBQKCl7Zm9yKDsrK1Y8ai5sZW5ndGg7KWlmKG4uY2FsbChqLFYpKXJldHVybiBQLnZhbHVlPWpbVl0sUC5kb25lPSExLFA7cmV0dXJuIFAudmFsdWU9aSxQLmRvbmU9ITAsUH07cmV0dXJuIFoubmV4dD1afX1yZXR1cm57bmV4dDpXfX1lLnZhbHVlcz1jZTtmdW5jdGlvbiBXKCl7cmV0dXJue3ZhbHVlOmksZG9uZTohMH19cmV0dXJuIGxlLnByb3RvdHlwZT17Y29uc3RydWN0b3I6bGUscmVzZXQ6ZnVuY3Rpb24oail7aWYodGhpcy5wcmV2PTAsdGhpcy5uZXh0PTAsdGhpcy5zZW50PXRoaXMuX3NlbnQ9aSx0aGlzLmRvbmU9ITEsdGhpcy5kZWxlZ2F0ZT1udWxsLHRoaXMubWV0aG9kPSJuZXh0Iix0aGlzLmFyZz1pLHRoaXMudHJ5RW50cmllcy5mb3JFYWNoKHRlKSwhailmb3IodmFyIEQgaW4gdGhpcylELmNoYXJBdCgwKT09PSJ0IiYmbi5jYWxsKHRoaXMsRCkmJiFpc05hTigrRC5zbGljZSgxKSkmJih0aGlzW0RdPWkpfSxzdG9wOmZ1bmN0aW9uKCl7dGhpcy5kb25lPSEwO3ZhciBqPXRoaXMudHJ5RW50cmllc1swXSxEPWouY29tcGxldGlvbjtpZihELnR5cGU9PT0idGhyb3ciKXRocm93IEQuYXJnO3JldHVybiB0aGlzLnJ2YWx9LGRpc3BhdGNoRXhjZXB0aW9uOmZ1bmN0aW9uKGope2lmKHRoaXMuZG9uZSl0aHJvdyBqO3ZhciBEPXRoaXM7ZnVuY3Rpb24gVihvZSxmZSl7cmV0dXJuIEsudHlwZT0idGhyb3ciLEsuYXJnPWosRC5uZXh0PW9lLGZlJiYoRC5tZXRob2Q9Im5leHQiLEQuYXJnPWkpLCEhZmV9Zm9yKHZhciBaPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtaPj0wOy0tWil7dmFyIFA9dGhpcy50cnlFbnRyaWVzW1pdLEs9UC5jb21wbGV0aW9uO2lmKFAudHJ5TG9jPT09InJvb3QiKXJldHVybiBWKCJlbmQiKTtpZihQLnRyeUxvYzw9dGhpcy5wcmV2KXt2YXIgc2U9bi5jYWxsKFAsImNhdGNoTG9jIiksbmU9bi5jYWxsKFAsImZpbmFsbHlMb2MiKTtpZihzZSYmbmUpe2lmKHRoaXMucHJldjxQLmNhdGNoTG9jKXJldHVybiBWKFAuY2F0Y2hMb2MsITApO2lmKHRoaXMucHJldjxQLmZpbmFsbHlMb2MpcmV0dXJuIFYoUC5maW5hbGx5TG9jKX1lbHNlIGlmKHNlKXtpZih0aGlzLnByZXY8UC5jYXRjaExvYylyZXR1cm4gVihQLmNhdGNoTG9jLCEwKX1lbHNlIGlmKG5lKXtpZih0aGlzLnByZXY8UC5maW5hbGx5TG9jKXJldHVybiBWKFAuZmluYWxseUxvYyl9ZWxzZSB0aHJvdyBuZXcgRXJyb3IoInRyeSBzdGF0ZW1lbnQgd2l0aG91dCBjYXRjaCBvciBmaW5hbGx5Iil9fX0sYWJydXB0OmZ1bmN0aW9uKGosRCl7Zm9yKHZhciBWPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtWPj0wOy0tVil7dmFyIFo9dGhpcy50cnlFbnRyaWVzW1ZdO2lmKFoudHJ5TG9jPD10aGlzLnByZXYmJm4uY2FsbChaLCJmaW5hbGx5TG9jIikmJnRoaXMucHJldjxaLmZpbmFsbHlMb2Mpe3ZhciBQPVo7YnJlYWt9fVAmJihqPT09ImJyZWFrInx8aj09PSJjb250aW51ZSIpJiZQLnRyeUxvYzw9RCYmRDw9UC5maW5hbGx5TG9jJiYoUD1udWxsKTt2YXIgSz1QP1AuY29tcGxldGlvbjp7fTtyZXR1cm4gSy50eXBlPWosSy5hcmc9RCxQPyh0aGlzLm1ldGhvZD0ibmV4dCIsdGhpcy5uZXh0PVAuZmluYWxseUxvYyx4KTp0aGlzLmNvbXBsZXRlKEspfSxjb21wbGV0ZTpmdW5jdGlvbihqLEQpe2lmKGoudHlwZT09PSJ0aHJvdyIpdGhyb3cgai5hcmc7cmV0dXJuIGoudHlwZT09PSJicmVhayJ8fGoudHlwZT09PSJjb250aW51ZSI/dGhpcy5uZXh0PWouYXJnOmoudHlwZT09PSJyZXR1cm4iPyh0aGlzLnJ2YWw9dGhpcy5hcmc9ai5hcmcsdGhpcy5tZXRob2Q9InJldHVybiIsdGhpcy5uZXh0PSJlbmQiKTpqLnR5cGU9PT0ibm9ybWFsIiYmRCYmKHRoaXMubmV4dD1EKSx4fSxmaW5pc2g6ZnVuY3Rpb24oail7Zm9yKHZhciBEPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtEPj0wOy0tRCl7dmFyIFY9dGhpcy50cnlFbnRyaWVzW0RdO2lmKFYuZmluYWxseUxvYz09PWopcmV0dXJuIHRoaXMuY29tcGxldGUoVi5jb21wbGV0aW9uLFYuYWZ0ZXJMb2MpLHRlKFYpLHh9fSxjYXRjaDpmdW5jdGlvbihqKXtmb3IodmFyIEQ9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO0Q+PTA7LS1EKXt2YXIgVj10aGlzLnRyeUVudHJpZXNbRF07aWYoVi50cnlMb2M9PT1qKXt2YXIgWj1WLmNvbXBsZXRpb247aWYoWi50eXBlPT09InRocm93Iil7dmFyIFA9Wi5hcmc7dGUoVil9cmV0dXJuIFB9fXRocm93IG5ldyBFcnJvcigiaWxsZWdhbCBjYXRjaCBhdHRlbXB0Iil9LGRlbGVnYXRlWWllbGQ6ZnVuY3Rpb24oaixELFYpe3JldHVybiB0aGlzLmRlbGVnYXRlPXtpdGVyYXRvcjpjZShqKSxyZXN1bHROYW1lOkQsbmV4dExvYzpWfSx0aGlzLm1ldGhvZD09PSJuZXh0IiYmKHRoaXMuYXJnPWkpLHh9fSxlfSh5LmV4cG9ydHMpO3RyeXtyZWdlbmVyYXRvclJ1bnRpbWU9cH1jYXRjaChlKXt0eXBlb2YgZ2xvYmFsVGhpcz09Im9iamVjdCI/Z2xvYmFsVGhpcy5yZWdlbmVyYXRvclJ1bnRpbWU9cDpGdW5jdGlvbigiciIsInJlZ2VuZXJhdG9yUnVudGltZSA9IHIiKShwKX19LDM0MTYyOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse0lsOmZ1bmN0aW9uKCl7cmV0dXJuIHN9LE92OmZ1bmN0aW9uKCl7cmV0dXJuIGF9LFQkOmZ1bmN0aW9uKCl7cmV0dXJuIGN9fSk7dmFyIHI9ZSg3NDgxNyksbj1lKDY3Mjk0KSx0PWUoOTY5NzQpLGk9WyJlbGVtZW50Il0scz1uLmNyZWF0ZUNvbnRleHQoe30pO2Z1bmN0aW9uIGEoKXtyZXR1cm4gbi51c2VDb250ZXh0KHMpfWZ1bmN0aW9uIHUoKXt2YXIgQz0oMCx0LlRIKSgpLGc9YSgpLHc9Zy5jbGllbnRSb3V0ZXMsRT0oMCx0LmZwKSh3LEMucGF0aG5hbWUpO3JldHVybiBFfHxbXX1mdW5jdGlvbiBjKCl7dmFyIEMsZz11KCkuc2xpY2UoLTEpLHc9KChDPWdbMF0pPT09bnVsbHx8Qz09PXZvaWQgMD92b2lkIDA6Qy5yb3V0ZSl8fHt9LEU9dy5lbGVtZW50LHg9KDAsci5aKSh3LGkpO3JldHVybiB4fWZ1bmN0aW9uIGgoKXt2YXIgQz11KCksZz1hKCksdz1nLnNlcnZlckxvYWRlckRhdGEsRT1nLmJhc2VuYW1lLHg9UmVhY3QudXNlU3RhdGUoZnVuY3Rpb24oKXt2YXIgTD17fSxJPSExO3JldHVybiBDLmZvckVhY2goZnVuY3Rpb24oUil7dmFyIHo9d1tSLnJvdXRlLmlkXTt6JiYoT2JqZWN0LmFzc2lnbihMLHopLEk9ITApfSksST9MOnZvaWQgMH0pLE89X3NsaWNlZFRvQXJyYXkoeCwyKSxUPU9bMF0sUz1PWzFdO3JldHVybiBSZWFjdC51c2VFZmZlY3QoZnVuY3Rpb24oKXt3aW5kb3cuX19VTUlfTE9BREVSX0RBVEFfX3x8UHJvbWlzZS5hbGwoQy5maWx0ZXIoZnVuY3Rpb24oTCl7cmV0dXJuIEwucm91dGUuaGFzU2VydmVyTG9hZGVyfSkubWFwKGZ1bmN0aW9uKEwpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihJKXtmZXRjaFNlcnZlckxvYWRlcih7aWQ6TC5yb3V0ZS5pZCxiYXNlbmFtZTpFLGNiOkl9KX0pfSkpLnRoZW4oZnVuY3Rpb24oTCl7aWYoTC5sZW5ndGgpe3ZhciBJPXt9O0wuZm9yRWFjaChmdW5jdGlvbihSKXtPYmplY3QuYXNzaWduKEksUil9KSxTKEkpfX0pfSxbXSkse2RhdGE6VH19ZnVuY3Rpb24gZCgpe3ZhciBDPXVzZVJvdXRlRGF0YSgpLGc9YSgpO3JldHVybntkYXRhOmcuY2xpZW50TG9hZGVyRGF0YVtDLnJvdXRlLmlkXX19ZnVuY3Rpb24gbSgpe3ZhciBDPWgoKSxnPWQoKTtyZXR1cm57ZGF0YTpfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sQy5kYXRhKSxnLmRhdGEpfX19LDQ3Mzg4OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse0I2OmZ1bmN0aW9uKCl7cmV0dXJuIEVlfSxxbDpmdW5jdGlvbigpe3JldHVybiBTZX19KTt2YXIgcj1lKDY3Mjk0KSxuPWUoNDU2OTcpLHQ9ZS5uKG4pLGk9ZSg2OTU5MCkscz1lLm4oaSksYT1lKDQxMTQzKSx1PWUubihhKSxjPWUoOTY3NzQpLGg9ZS5uKGMpO2Z1bmN0aW9uIGQoKXtyZXR1cm4gZD1PYmplY3QuYXNzaWdufHxmdW5jdGlvbihxKXtmb3IodmFyIGs9MTtrPGFyZ3VtZW50cy5sZW5ndGg7aysrKXt2YXIgTT1hcmd1bWVudHNba107Zm9yKHZhciBBIGluIE0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKE0sQSkmJihxW0FdPU1bQV0pfXJldHVybiBxfSxkLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBtKHEsayl7cS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShrLnByb3RvdHlwZSkscS5wcm90b3R5cGUuY29uc3RydWN0b3I9cSxDKHEsayl9ZnVuY3Rpb24gQyhxLGspe3JldHVybiBDPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8ZnVuY3Rpb24oTSxBKXtyZXR1cm4gTS5fX3Byb3RvX189QSxNfSxDKHEsayl9ZnVuY3Rpb24gZyhxLGspe2lmKHE9PW51bGwpcmV0dXJue307dmFyIE0sQSxVPXt9LE49T2JqZWN0LmtleXMocSk7Zm9yKEE9MDtBPE4ubGVuZ3RoO0ErKylrLmluZGV4T2YoTT1OW0FdKT49MHx8KFVbTV09cVtNXSk7cmV0dXJuIFV9dmFyIHc9e0JBU0U6ImJhc2UiLEJPRFk6ImJvZHkiLEhFQUQ6ImhlYWQiLEhUTUw6Imh0bWwiLExJTks6ImxpbmsiLE1FVEE6Im1ldGEiLE5PU0NSSVBUOiJub3NjcmlwdCIsU0NSSVBUOiJzY3JpcHQiLFNUWUxFOiJzdHlsZSIsVElUTEU6InRpdGxlIixGUkFHTUVOVDoiU3ltYm9sKHJlYWN0LmZyYWdtZW50KSJ9LEU9e3JlbDpbImFtcGh0bWwiLCJjYW5vbmljYWwiLCJhbHRlcm5hdGUiXX0seD17dHlwZTpbImFwcGxpY2F0aW9uL2xkK2pzb24iXX0sTz17Y2hhcnNldDoiIixuYW1lOlsicm9ib3RzIiwiZGVzY3JpcHRpb24iXSxwcm9wZXJ0eTpbIm9nOnR5cGUiLCJvZzp0aXRsZSIsIm9nOnVybCIsIm9nOmltYWdlIiwib2c6aW1hZ2U6YWx0Iiwib2c6ZGVzY3JpcHRpb24iLCJ0d2l0dGVyOnVybCIsInR3aXR0ZXI6dGl0bGUiLCJ0d2l0dGVyOmRlc2NyaXB0aW9uIiwidHdpdHRlcjppbWFnZSIsInR3aXR0ZXI6aW1hZ2U6YWx0IiwidHdpdHRlcjpjYXJkIiwidHdpdHRlcjpzaXRlIl19LFQ9T2JqZWN0LmtleXModykubWFwKGZ1bmN0aW9uKHEpe3JldHVybiB3W3FdfSksUz17YWNjZXNza2V5OiJhY2Nlc3NLZXkiLGNoYXJzZXQ6ImNoYXJTZXQiLGNsYXNzOiJjbGFzc05hbWUiLGNvbnRlbnRlZGl0YWJsZToiY29udGVudEVkaXRhYmxlIixjb250ZXh0bWVudToiY29udGV4dE1lbnUiLCJodHRwLWVxdWl2IjoiaHR0cEVxdWl2IixpdGVtcHJvcDoiaXRlbVByb3AiLHRhYmluZGV4OiJ0YWJJbmRleCJ9LEw9T2JqZWN0LmtleXMoUykucmVkdWNlKGZ1bmN0aW9uKHEsayl7cmV0dXJuIHFbU1trXV09ayxxfSx7fSksST1mdW5jdGlvbihxLGspe2Zvcih2YXIgTT1xLmxlbmd0aC0xO00+PTA7TS09MSl7dmFyIEE9cVtNXTtpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoQSxrKSlyZXR1cm4gQVtrXX1yZXR1cm4gbnVsbH0sUj1mdW5jdGlvbihxKXt2YXIgaz1JKHEsdy5USVRMRSksTT1JKHEsInRpdGxlVGVtcGxhdGUiKTtpZihBcnJheS5pc0FycmF5KGspJiYoaz1rLmpvaW4oIiIpKSxNJiZrKXJldHVybiBNLnJlcGxhY2UoLyVzL2csZnVuY3Rpb24oKXtyZXR1cm4ga30pO3ZhciBBPUkocSwiZGVmYXVsdFRpdGxlIik7cmV0dXJuIGt8fEF8fHZvaWQgMH0sej1mdW5jdGlvbihxKXtyZXR1cm4gSShxLCJvbkNoYW5nZUNsaWVudFN0YXRlIil8fGZ1bmN0aW9uKCl7fX0sRz1mdW5jdGlvbihxLGspe3JldHVybiBrLmZpbHRlcihmdW5jdGlvbihNKXtyZXR1cm4gTVtxXSE9PXZvaWQgMH0pLm1hcChmdW5jdGlvbihNKXtyZXR1cm4gTVtxXX0pLnJlZHVjZShmdW5jdGlvbihNLEEpe3JldHVybiBkKHt9LE0sQSl9LHt9KX0sWT1mdW5jdGlvbihxLGspe3JldHVybiBrLmZpbHRlcihmdW5jdGlvbihNKXtyZXR1cm4gTVt3LkJBU0VdIT09dm9pZCAwfSkubWFwKGZ1bmN0aW9uKE0pe3JldHVybiBNW3cuQkFTRV19KS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKE0sQSl7aWYoIU0ubGVuZ3RoKWZvcih2YXIgVT1PYmplY3Qua2V5cyhBKSxOPTA7TjxVLmxlbmd0aDtOKz0xKXt2YXIgUT1VW05dLnRvTG93ZXJDYXNlKCk7aWYocS5pbmRleE9mKFEpIT09LTEmJkFbUV0pcmV0dXJuIE0uY29uY2F0KEEpfXJldHVybiBNfSxbXSl9LGVlPWZ1bmN0aW9uKHEsayxNKXt2YXIgQT17fTtyZXR1cm4gTS5maWx0ZXIoZnVuY3Rpb24oVSl7cmV0dXJuISFBcnJheS5pc0FycmF5KFVbcV0pfHwoVVtxXSE9PXZvaWQgMCYmY29uc29sZSYmdHlwZW9mIGNvbnNvbGUud2Fybj09ImZ1bmN0aW9uIiYmY29uc29sZS53YXJuKCJIZWxtZXQ6ICIrcSsnIHNob3VsZCBiZSBvZiB0eXBlICJBcnJheSIuIEluc3RlYWQgZm91bmQgdHlwZSAiJyt0eXBlb2YgVVtxXSsnIicpLCExKX0pLm1hcChmdW5jdGlvbihVKXtyZXR1cm4gVVtxXX0pLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oVSxOKXt2YXIgUT17fTtOLmZpbHRlcihmdW5jdGlvbihyZSl7Zm9yKHZhciBhZSx3ZT1PYmplY3Qua2V5cyhyZSksTGU9MDtMZTx3ZS5sZW5ndGg7TGUrPTEpe3ZhciBNZT13ZVtMZV0sYmU9TWUudG9Mb3dlckNhc2UoKTtrLmluZGV4T2YoYmUpPT09LTF8fGFlPT09InJlbCImJnJlW2FlXS50b0xvd2VyQ2FzZSgpPT09ImNhbm9uaWNhbCJ8fGJlPT09InJlbCImJnJlW2JlXS50b0xvd2VyQ2FzZSgpPT09InN0eWxlc2hlZXQifHwoYWU9YmUpLGsuaW5kZXhPZihNZSk9PT0tMXx8TWUhPT0iaW5uZXJIVE1MIiYmTWUhPT0iY3NzVGV4dCImJk1lIT09Iml0ZW1wcm9wInx8KGFlPU1lKX1pZighYWV8fCFyZVthZV0pcmV0dXJuITE7dmFyICRlPXJlW2FlXS50b0xvd2VyQ2FzZSgpO3JldHVybiBBW2FlXXx8KEFbYWVdPXt9KSxRW2FlXXx8KFFbYWVdPXt9KSwhQVthZV1bJGVdJiYoUVthZV1bJGVdPSEwLCEwKX0pLnJldmVyc2UoKS5mb3JFYWNoKGZ1bmN0aW9uKHJlKXtyZXR1cm4gVS5wdXNoKHJlKX0pO2Zvcih2YXIgdWU9T2JqZWN0LmtleXMoUSksJD0wOyQ8dWUubGVuZ3RoOyQrPTEpe3ZhciBfPXVlWyRdLHBlPWQoe30sQVtfXSxRW19dKTtBW19dPXBlfXJldHVybiBVfSxbXSkucmV2ZXJzZSgpfSxKPWZ1bmN0aW9uKHEsayl7aWYoQXJyYXkuaXNBcnJheShxKSYmcS5sZW5ndGgpe2Zvcih2YXIgTT0wO008cS5sZW5ndGg7TSs9MSlpZihxW01dW2tdKXJldHVybiEwfXJldHVybiExfSxtZT1mdW5jdGlvbihxKXtyZXR1cm4gQXJyYXkuaXNBcnJheShxKT9xLmpvaW4oIiIpOnF9LHRlPWZ1bmN0aW9uKHEsayl7cmV0dXJuIEFycmF5LmlzQXJyYXkocSk/cS5yZWR1Y2UoZnVuY3Rpb24oTSxBKXtyZXR1cm4gZnVuY3Rpb24oVSxOKXtmb3IodmFyIFE9T2JqZWN0LmtleXMoVSksdWU9MDt1ZTxRLmxlbmd0aDt1ZSs9MSlpZihOW1FbdWVdXSYmTltRW3VlXV0uaW5jbHVkZXMoVVtRW3VlXV0pKXJldHVybiEwO3JldHVybiExfShBLGspP00ucHJpb3JpdHkucHVzaChBKTpNLmRlZmF1bHQucHVzaChBKSxNfSx7cHJpb3JpdHk6W10sZGVmYXVsdDpbXX0pOntkZWZhdWx0OnF9fSxsZT1mdW5jdGlvbihxLGspe3ZhciBNO3JldHVybiBkKHt9LHEsKChNPXt9KVtrXT12b2lkIDAsTSkpfSxjZT1bdy5OT1NDUklQVCx3LlNDUklQVCx3LlNUWUxFXSxXPWZ1bmN0aW9uKHEsayl7cmV0dXJuIGs9PT12b2lkIDAmJihrPSEwKSxrPT09ITE/U3RyaW5nKHEpOlN0cmluZyhxKS5yZXBsYWNlKC8mL2csIiZhbXA7IikucmVwbGFjZSgvPC9nLCImbHQ7IikucmVwbGFjZSgvPi9nLCImZ3Q7IikucmVwbGFjZSgvIi9nLCImcXVvdDsiKS5yZXBsYWNlKC8nL2csIiYjeDI3OyIpfSxqPWZ1bmN0aW9uKHEpe3JldHVybiBPYmplY3Qua2V5cyhxKS5yZWR1Y2UoZnVuY3Rpb24oayxNKXt2YXIgQT1xW01dIT09dm9pZCAwP00rJz0iJytxW01dKyciJzoiIitNO3JldHVybiBrP2srIiAiK0E6QX0sIiIpfSxEPWZ1bmN0aW9uKHEsayl7cmV0dXJuIGs9PT12b2lkIDAmJihrPXt9KSxPYmplY3Qua2V5cyhxKS5yZWR1Y2UoZnVuY3Rpb24oTSxBKXtyZXR1cm4gTVtTW0FdfHxBXT1xW0FdLE19LGspfSxWPWZ1bmN0aW9uKHEsayl7cmV0dXJuIGsubWFwKGZ1bmN0aW9uKE0sQSl7dmFyIFUsTj0oKFU9e2tleTpBfSlbImRhdGEtcmgiXT0hMCxVKTtyZXR1cm4gT2JqZWN0LmtleXMoTSkuZm9yRWFjaChmdW5jdGlvbihRKXt2YXIgdWU9U1tRXXx8UTt1ZT09PSJpbm5lckhUTUwifHx1ZT09PSJjc3NUZXh0Ij9OLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPXtfX2h0bWw6TS5pbm5lckhUTUx8fE0uY3NzVGV4dH06Tlt1ZV09TVtRXX0pLHIuY3JlYXRlRWxlbWVudChxLE4pfSl9LFo9ZnVuY3Rpb24ocSxrLE0pe3N3aXRjaChxKXtjYXNlIHcuVElUTEU6cmV0dXJue3RvQ29tcG9uZW50OmZ1bmN0aW9uKCl7cmV0dXJuIFU9ay50aXRsZUF0dHJpYnV0ZXMsKE49e2tleTpBPWsudGl0bGV9KVsiZGF0YS1yaCJdPSEwLFE9RChVLE4pLFtyLmNyZWF0ZUVsZW1lbnQody5USVRMRSxRLEEpXTt2YXIgQSxVLE4sUX0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oQSxVLE4sUSl7dmFyIHVlPWooTiksJD1tZShVKTtyZXR1cm4gdWU/IjwiK0ErJyBkYXRhLXJoPSJ0cnVlIiAnK3VlKyI+IitXKCQsUSkrIjwvIitBKyI+IjoiPCIrQSsnIGRhdGEtcmg9InRydWUiPicrVygkLFEpKyI8LyIrQSsiPiJ9KHEsay50aXRsZSxrLnRpdGxlQXR0cmlidXRlcyxNKX19O2Nhc2UiYm9keUF0dHJpYnV0ZXMiOmNhc2UiaHRtbEF0dHJpYnV0ZXMiOnJldHVybnt0b0NvbXBvbmVudDpmdW5jdGlvbigpe3JldHVybiBEKGspfSx0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiBqKGspfX07ZGVmYXVsdDpyZXR1cm57dG9Db21wb25lbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gVihxLGspfSx0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihBLFUsTil7cmV0dXJuIFUucmVkdWNlKGZ1bmN0aW9uKFEsdWUpe3ZhciAkPU9iamVjdC5rZXlzKHVlKS5maWx0ZXIoZnVuY3Rpb24ocmUpe3JldHVybiEocmU9PT0iaW5uZXJIVE1MInx8cmU9PT0iY3NzVGV4dCIpfSkucmVkdWNlKGZ1bmN0aW9uKHJlLGFlKXt2YXIgd2U9dWVbYWVdPT09dm9pZCAwP2FlOmFlKyc9IicrVyh1ZVthZV0sTikrJyInO3JldHVybiByZT9yZSsiICIrd2U6d2V9LCIiKSxfPXVlLmlubmVySFRNTHx8dWUuY3NzVGV4dHx8IiIscGU9Y2UuaW5kZXhPZihBKT09PS0xO3JldHVybiBRKyI8IitBKycgZGF0YS1yaD0idHJ1ZSIgJyskKyhwZT8iLz4iOiI+IitfKyI8LyIrQSsiPiIpfSwiIil9KHEsayxNKX19fX0sUD1mdW5jdGlvbihxKXt2YXIgaz1xLmJhc2VUYWcsTT1xLmJvZHlBdHRyaWJ1dGVzLEE9cS5lbmNvZGUsVT1xLmh0bWxBdHRyaWJ1dGVzLE49cS5ub3NjcmlwdFRhZ3MsUT1xLnN0eWxlVGFncyx1ZT1xLnRpdGxlLCQ9dWU9PT12b2lkIDA/IiI6dWUsXz1xLnRpdGxlQXR0cmlidXRlcyxwZT1xLmxpbmtUYWdzLHJlPXEubWV0YVRhZ3MsYWU9cS5zY3JpcHRUYWdzLHdlPXt0b0NvbXBvbmVudDpmdW5jdGlvbigpe30sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4iIn19O2lmKHEucHJpb3JpdGl6ZVNlb1RhZ3Mpe3ZhciBMZT1mdW5jdGlvbihNZSl7dmFyIGJlPU1lLmxpbmtUYWdzLCRlPU1lLnNjcmlwdFRhZ3Msa2U9TWUuZW5jb2RlLEFlPXRlKE1lLm1ldGFUYWdzLE8pLHR0PXRlKGJlLEUpLG10PXRlKCRlLHgpO3JldHVybntwcmlvcml0eU1ldGhvZHM6e3RvQ29tcG9uZW50OmZ1bmN0aW9uKCl7cmV0dXJuW10uY29uY2F0KFYody5NRVRBLEFlLnByaW9yaXR5KSxWKHcuTElOSyx0dC5wcmlvcml0eSksVih3LlNDUklQVCxtdC5wcmlvcml0eSkpfSx0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiBaKHcuTUVUQSxBZS5wcmlvcml0eSxrZSkrIiAiK1oody5MSU5LLHR0LnByaW9yaXR5LGtlKSsiICIrWih3LlNDUklQVCxtdC5wcmlvcml0eSxrZSl9fSxtZXRhVGFnczpBZS5kZWZhdWx0LGxpbmtUYWdzOnR0LmRlZmF1bHQsc2NyaXB0VGFnczptdC5kZWZhdWx0fX0ocSk7d2U9TGUucHJpb3JpdHlNZXRob2RzLHBlPUxlLmxpbmtUYWdzLHJlPUxlLm1ldGFUYWdzLGFlPUxlLnNjcmlwdFRhZ3N9cmV0dXJue3ByaW9yaXR5OndlLGJhc2U6Wih3LkJBU0UsayxBKSxib2R5QXR0cmlidXRlczpaKCJib2R5QXR0cmlidXRlcyIsTSxBKSxodG1sQXR0cmlidXRlczpaKCJodG1sQXR0cmlidXRlcyIsVSxBKSxsaW5rOloody5MSU5LLHBlLEEpLG1ldGE6Wih3Lk1FVEEscmUsQSksbm9zY3JpcHQ6Wih3Lk5PU0NSSVBULE4sQSksc2NyaXB0Oloody5TQ1JJUFQsYWUsQSksc3R5bGU6Wih3LlNUWUxFLFEsQSksdGl0bGU6Wih3LlRJVExFLHt0aXRsZTokLHRpdGxlQXR0cmlidXRlczpffSxBKX19LEs9W10sc2U9ZnVuY3Rpb24ocSxrKXt2YXIgTT10aGlzO2s9PT12b2lkIDAmJihrPXR5cGVvZiBkb2N1bWVudCE9InVuZGVmaW5lZCIpLHRoaXMuaW5zdGFuY2VzPVtdLHRoaXMudmFsdWU9e3NldEhlbG1ldDpmdW5jdGlvbihBKXtNLmNvbnRleHQuaGVsbWV0PUF9LGhlbG1ldEluc3RhbmNlczp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE0uY2FuVXNlRE9NP0s6TS5pbnN0YW5jZXN9LGFkZDpmdW5jdGlvbihBKXsoTS5jYW5Vc2VET00/SzpNLmluc3RhbmNlcykucHVzaChBKX0scmVtb3ZlOmZ1bmN0aW9uKEEpe3ZhciBVPShNLmNhblVzZURPTT9LOk0uaW5zdGFuY2VzKS5pbmRleE9mKEEpOyhNLmNhblVzZURPTT9LOk0uaW5zdGFuY2VzKS5zcGxpY2UoVSwxKX19fSx0aGlzLmNvbnRleHQ9cSx0aGlzLmNhblVzZURPTT1rLGt8fChxLmhlbG1ldD1QKHtiYXNlVGFnOltdLGJvZHlBdHRyaWJ1dGVzOnt9LGVuY29kZVNwZWNpYWxDaGFyYWN0ZXJzOiEwLGh0bWxBdHRyaWJ1dGVzOnt9LGxpbmtUYWdzOltdLG1ldGFUYWdzOltdLG5vc2NyaXB0VGFnczpbXSxzY3JpcHRUYWdzOltdLHN0eWxlVGFnczpbXSx0aXRsZToiIix0aXRsZUF0dHJpYnV0ZXM6e319KSl9LG5lPXIuY3JlYXRlQ29udGV4dCh7fSksb2U9dCgpLnNoYXBlKHtzZXRIZWxtZXQ6dCgpLmZ1bmMsaGVsbWV0SW5zdGFuY2VzOnQoKS5zaGFwZSh7Z2V0OnQoKS5mdW5jLGFkZDp0KCkuZnVuYyxyZW1vdmU6dCgpLmZ1bmN9KX0pLGZlPXR5cGVvZiBkb2N1bWVudCE9InVuZGVmaW5lZCIsRWU9ZnVuY3Rpb24ocSl7ZnVuY3Rpb24gayhNKXt2YXIgQTtyZXR1cm4oQT1xLmNhbGwodGhpcyxNKXx8dGhpcykuaGVsbWV0RGF0YT1uZXcgc2UoQS5wcm9wcy5jb250ZXh0LGsuY2FuVXNlRE9NKSxBfXJldHVybiBtKGsscSksay5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKCl7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChuZS5Qcm92aWRlcix7dmFsdWU6dGhpcy5oZWxtZXREYXRhLnZhbHVlfSx0aGlzLnByb3BzLmNoaWxkcmVuKX0sa30oci5Db21wb25lbnQpO0VlLmNhblVzZURPTT1mZSxFZS5wcm9wVHlwZXM9e2NvbnRleHQ6dCgpLnNoYXBlKHtoZWxtZXQ6dCgpLnNoYXBlKCl9KSxjaGlsZHJlbjp0KCkubm9kZS5pc1JlcXVpcmVkfSxFZS5kZWZhdWx0UHJvcHM9e2NvbnRleHQ6e319LEVlLmRpc3BsYXlOYW1lPSJIZWxtZXRQcm92aWRlciI7dmFyIFJlPWZ1bmN0aW9uKHEsayl7dmFyIE0sQT1kb2N1bWVudC5oZWFkfHxkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHcuSEVBRCksVT1BLnF1ZXJ5U2VsZWN0b3JBbGwocSsiW2RhdGEtcmhdIiksTj1bXS5zbGljZS5jYWxsKFUpLFE9W107cmV0dXJuIGsmJmsubGVuZ3RoJiZrLmZvckVhY2goZnVuY3Rpb24odWUpe3ZhciAkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQocSk7Zm9yKHZhciBfIGluIHVlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh1ZSxfKSYmKF89PT0iaW5uZXJIVE1MIj8kLmlubmVySFRNTD11ZS5pbm5lckhUTUw6Xz09PSJjc3NUZXh0Ij8kLnN0eWxlU2hlZXQ/JC5zdHlsZVNoZWV0LmNzc1RleHQ9dWUuY3NzVGV4dDokLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHVlLmNzc1RleHQpKTokLnNldEF0dHJpYnV0ZShfLHVlW19dPT09dm9pZCAwPyIiOnVlW19dKSk7JC5zZXRBdHRyaWJ1dGUoImRhdGEtcmgiLCJ0cnVlIiksTi5zb21lKGZ1bmN0aW9uKHBlLHJlKXtyZXR1cm4gTT1yZSwkLmlzRXF1YWxOb2RlKHBlKX0pP04uc3BsaWNlKE0sMSk6US5wdXNoKCQpfSksTi5mb3JFYWNoKGZ1bmN0aW9uKHVlKXtyZXR1cm4gdWUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh1ZSl9KSxRLmZvckVhY2goZnVuY3Rpb24odWUpe3JldHVybiBBLmFwcGVuZENoaWxkKHVlKX0pLHtvbGRUYWdzOk4sbmV3VGFnczpRfX0sQmU9ZnVuY3Rpb24ocSxrKXt2YXIgTT1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShxKVswXTtpZihNKXtmb3IodmFyIEE9TS5nZXRBdHRyaWJ1dGUoImRhdGEtcmgiKSxVPUE/QS5zcGxpdCgiLCIpOltdLE49W10uY29uY2F0KFUpLFE9T2JqZWN0LmtleXMoayksdWU9MDt1ZTxRLmxlbmd0aDt1ZSs9MSl7dmFyICQ9UVt1ZV0sXz1rWyRdfHwiIjtNLmdldEF0dHJpYnV0ZSgkKSE9PV8mJk0uc2V0QXR0cmlidXRlKCQsXyksVS5pbmRleE9mKCQpPT09LTEmJlUucHVzaCgkKTt2YXIgcGU9Ti5pbmRleE9mKCQpO3BlIT09LTEmJk4uc3BsaWNlKHBlLDEpfWZvcih2YXIgcmU9Ti5sZW5ndGgtMTtyZT49MDtyZS09MSlNLnJlbW92ZUF0dHJpYnV0ZShOW3JlXSk7VS5sZW5ndGg9PT1OLmxlbmd0aD9NLnJlbW92ZUF0dHJpYnV0ZSgiZGF0YS1yaCIpOk0uZ2V0QXR0cmlidXRlKCJkYXRhLXJoIikhPT1RLmpvaW4oIiwiKSYmTS5zZXRBdHRyaWJ1dGUoImRhdGEtcmgiLFEuam9pbigiLCIpKX19LFllPWZ1bmN0aW9uKHEsayl7dmFyIE09cS5iYXNlVGFnLEE9cS5odG1sQXR0cmlidXRlcyxVPXEubGlua1RhZ3MsTj1xLm1ldGFUYWdzLFE9cS5ub3NjcmlwdFRhZ3MsdWU9cS5vbkNoYW5nZUNsaWVudFN0YXRlLCQ9cS5zY3JpcHRUYWdzLF89cS5zdHlsZVRhZ3MscGU9cS50aXRsZSxyZT1xLnRpdGxlQXR0cmlidXRlcztCZSh3LkJPRFkscS5ib2R5QXR0cmlidXRlcyksQmUody5IVE1MLEEpLGZ1bmN0aW9uKE1lLGJlKXtNZSE9PXZvaWQgMCYmZG9jdW1lbnQudGl0bGUhPT1NZSYmKGRvY3VtZW50LnRpdGxlPW1lKE1lKSksQmUody5USVRMRSxiZSl9KHBlLHJlKTt2YXIgYWU9e2Jhc2VUYWc6UmUody5CQVNFLE0pLGxpbmtUYWdzOlJlKHcuTElOSyxVKSxtZXRhVGFnczpSZSh3Lk1FVEEsTiksbm9zY3JpcHRUYWdzOlJlKHcuTk9TQ1JJUFQsUSksc2NyaXB0VGFnczpSZSh3LlNDUklQVCwkKSxzdHlsZVRhZ3M6UmUody5TVFlMRSxfKX0sd2U9e30sTGU9e307T2JqZWN0LmtleXMoYWUpLmZvckVhY2goZnVuY3Rpb24oTWUpe3ZhciBiZT1hZVtNZV0sJGU9YmUubmV3VGFncyxrZT1iZS5vbGRUYWdzOyRlLmxlbmd0aCYmKHdlW01lXT0kZSksa2UubGVuZ3RoJiYoTGVbTWVdPWFlW01lXS5vbGRUYWdzKX0pLGsmJmsoKSx1ZShxLHdlLExlKX0sb3Q9bnVsbCxxZT1mdW5jdGlvbihxKXtmdW5jdGlvbiBrKCl7Zm9yKHZhciBBLFU9YXJndW1lbnRzLmxlbmd0aCxOPW5ldyBBcnJheShVKSxRPTA7UTxVO1ErKylOW1FdPWFyZ3VtZW50c1tRXTtyZXR1cm4oQT1xLmNhbGwuYXBwbHkocSxbdGhpc10uY29uY2F0KE4pKXx8dGhpcykucmVuZGVyZWQ9ITEsQX1tKGsscSk7dmFyIE09ay5wcm90b3R5cGU7cmV0dXJuIE0uc2hvdWxkQ29tcG9uZW50VXBkYXRlPWZ1bmN0aW9uKEEpe3JldHVybiFoKCkoQSx0aGlzLnByb3BzKX0sTS5jb21wb25lbnREaWRVcGRhdGU9ZnVuY3Rpb24oKXt0aGlzLmVtaXRDaGFuZ2UoKX0sTS5jb21wb25lbnRXaWxsVW5tb3VudD1mdW5jdGlvbigpe3RoaXMucHJvcHMuY29udGV4dC5oZWxtZXRJbnN0YW5jZXMucmVtb3ZlKHRoaXMpLHRoaXMuZW1pdENoYW5nZSgpfSxNLmVtaXRDaGFuZ2U9ZnVuY3Rpb24oKXt2YXIgQSxVLE49dGhpcy5wcm9wcy5jb250ZXh0LFE9Ti5zZXRIZWxtZXQsdWU9bnVsbCwkPShBPU4uaGVsbWV0SW5zdGFuY2VzLmdldCgpLm1hcChmdW5jdGlvbihfKXt2YXIgcGU9ZCh7fSxfLnByb3BzKTtyZXR1cm4gZGVsZXRlIHBlLmNvbnRleHQscGV9KSx7YmFzZVRhZzpZKFsiaHJlZiJdLEEpLGJvZHlBdHRyaWJ1dGVzOkcoImJvZHlBdHRyaWJ1dGVzIixBKSxkZWZlcjpJKEEsImRlZmVyIiksZW5jb2RlOkkoQSwiZW5jb2RlU3BlY2lhbENoYXJhY3RlcnMiKSxodG1sQXR0cmlidXRlczpHKCJodG1sQXR0cmlidXRlcyIsQSksbGlua1RhZ3M6ZWUody5MSU5LLFsicmVsIiwiaHJlZiJdLEEpLG1ldGFUYWdzOmVlKHcuTUVUQSxbIm5hbWUiLCJjaGFyc2V0IiwiaHR0cC1lcXVpdiIsInByb3BlcnR5IiwiaXRlbXByb3AiXSxBKSxub3NjcmlwdFRhZ3M6ZWUody5OT1NDUklQVCxbImlubmVySFRNTCJdLEEpLG9uQ2hhbmdlQ2xpZW50U3RhdGU6eihBKSxzY3JpcHRUYWdzOmVlKHcuU0NSSVBULFsic3JjIiwiaW5uZXJIVE1MIl0sQSksc3R5bGVUYWdzOmVlKHcuU1RZTEUsWyJjc3NUZXh0Il0sQSksdGl0bGU6UihBKSx0aXRsZUF0dHJpYnV0ZXM6RygidGl0bGVBdHRyaWJ1dGVzIixBKSxwcmlvcml0aXplU2VvVGFnczpKKEEsInByaW9yaXRpemVTZW9UYWdzIil9KTtFZS5jYW5Vc2VET00/KFU9JCxvdCYmY2FuY2VsQW5pbWF0aW9uRnJhbWUob3QpLFUuZGVmZXI/b3Q9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7WWUoVSxmdW5jdGlvbigpe290PW51bGx9KX0pOihZZShVKSxvdD1udWxsKSk6UCYmKHVlPVAoJCkpLFEodWUpfSxNLmluaXQ9ZnVuY3Rpb24oKXt0aGlzLnJlbmRlcmVkfHwodGhpcy5yZW5kZXJlZD0hMCx0aGlzLnByb3BzLmNvbnRleHQuaGVsbWV0SW5zdGFuY2VzLmFkZCh0aGlzKSx0aGlzLmVtaXRDaGFuZ2UoKSl9LE0ucmVuZGVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5pdCgpLG51bGx9LGt9KHIuQ29tcG9uZW50KTtxZS5wcm9wVHlwZXM9e2NvbnRleHQ6b2UuaXNSZXF1aXJlZH0scWUuZGlzcGxheU5hbWU9IkhlbG1ldERpc3BhdGNoZXIiO3ZhciBfZT1bImNoaWxkcmVuIl0sRmU9WyJjaGlsZHJlbiJdLFNlPWZ1bmN0aW9uKHEpe2Z1bmN0aW9uIGsoKXtyZXR1cm4gcS5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9bShrLHEpO3ZhciBNPWsucHJvdG90eXBlO3JldHVybiBNLnNob3VsZENvbXBvbmVudFVwZGF0ZT1mdW5jdGlvbihBKXtyZXR1cm4hcygpKGxlKHRoaXMucHJvcHMsImhlbG1ldERhdGEiKSxsZShBLCJoZWxtZXREYXRhIikpfSxNLm1hcE5lc3RlZENoaWxkcmVuVG9Qcm9wcz1mdW5jdGlvbihBLFUpe2lmKCFVKXJldHVybiBudWxsO3N3aXRjaChBLnR5cGUpe2Nhc2Ugdy5TQ1JJUFQ6Y2FzZSB3Lk5PU0NSSVBUOnJldHVybntpbm5lckhUTUw6VX07Y2FzZSB3LlNUWUxFOnJldHVybntjc3NUZXh0OlV9O2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCI8IitBLnR5cGUrIiAvPiBlbGVtZW50cyBhcmUgc2VsZi1jbG9zaW5nIGFuZCBjYW4gbm90IGNvbnRhaW4gY2hpbGRyZW4uIFJlZmVyIHRvIG91ciBBUEkgZm9yIG1vcmUgaW5mb3JtYXRpb24uIil9fSxNLmZsYXR0ZW5BcnJheVR5cGVDaGlsZHJlbj1mdW5jdGlvbihBKXt2YXIgVSxOPUEuY2hpbGQsUT1BLmFycmF5VHlwZUNoaWxkcmVuO3JldHVybiBkKHt9LFEsKChVPXt9KVtOLnR5cGVdPVtdLmNvbmNhdChRW04udHlwZV18fFtdLFtkKHt9LEEubmV3Q2hpbGRQcm9wcyx0aGlzLm1hcE5lc3RlZENoaWxkcmVuVG9Qcm9wcyhOLEEubmVzdGVkQ2hpbGRyZW4pKV0pLFUpKX0sTS5tYXBPYmplY3RUeXBlQ2hpbGRyZW49ZnVuY3Rpb24oQSl7dmFyIFUsTixRPUEuY2hpbGQsdWU9QS5uZXdQcm9wcywkPUEubmV3Q2hpbGRQcm9wcyxfPUEubmVzdGVkQ2hpbGRyZW47c3dpdGNoKFEudHlwZSl7Y2FzZSB3LlRJVExFOnJldHVybiBkKHt9LHVlLCgoVT17fSlbUS50eXBlXT1fLFUudGl0bGVBdHRyaWJ1dGVzPWQoe30sJCksVSkpO2Nhc2Ugdy5CT0RZOnJldHVybiBkKHt9LHVlLHtib2R5QXR0cmlidXRlczpkKHt9LCQpfSk7Y2FzZSB3LkhUTUw6cmV0dXJuIGQoe30sdWUse2h0bWxBdHRyaWJ1dGVzOmQoe30sJCl9KTtkZWZhdWx0OnJldHVybiBkKHt9LHVlLCgoTj17fSlbUS50eXBlXT1kKHt9LCQpLE4pKX19LE0ubWFwQXJyYXlUeXBlQ2hpbGRyZW5Ub1Byb3BzPWZ1bmN0aW9uKEEsVSl7dmFyIE49ZCh7fSxVKTtyZXR1cm4gT2JqZWN0LmtleXMoQSkuZm9yRWFjaChmdW5jdGlvbihRKXt2YXIgdWU7Tj1kKHt9LE4sKCh1ZT17fSlbUV09QVtRXSx1ZSkpfSksTn0sTS53YXJuT25JbnZhbGlkQ2hpbGRyZW49ZnVuY3Rpb24oQSxVKXtyZXR1cm4gdSgpKFQuc29tZShmdW5jdGlvbihOKXtyZXR1cm4gQS50eXBlPT09Tn0pLHR5cGVvZiBBLnR5cGU9PSJmdW5jdGlvbiI/IllvdSBtYXkgYmUgYXR0ZW1wdGluZyB0byBuZXN0IDxIZWxtZXQ+IGNvbXBvbmVudHMgd2l0aGluIGVhY2ggb3RoZXIsIHdoaWNoIGlzIG5vdCBhbGxvd2VkLiBSZWZlciB0byBvdXIgQVBJIGZvciBtb3JlIGluZm9ybWF0aW9uLiI6Ik9ubHkgZWxlbWVudHMgdHlwZXMgIitULmpvaW4oIiwgIikrIiBhcmUgYWxsb3dlZC4gSGVsbWV0IGRvZXMgbm90IHN1cHBvcnQgcmVuZGVyaW5nIDwiK0EudHlwZSsiPiBlbGVtZW50cy4gUmVmZXIgdG8gb3VyIEFQSSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iKSx1KCkoIVV8fHR5cGVvZiBVPT0ic3RyaW5nInx8QXJyYXkuaXNBcnJheShVKSYmIVUuc29tZShmdW5jdGlvbihOKXtyZXR1cm4gdHlwZW9mIE4hPSJzdHJpbmcifSksIkhlbG1ldCBleHBlY3RzIGEgc3RyaW5nIGFzIGEgY2hpbGQgb2YgPCIrQS50eXBlKyI+LiBEaWQgeW91IGZvcmdldCB0byB3cmFwIHlvdXIgY2hpbGRyZW4gaW4gYnJhY2VzPyAoIDwiK0EudHlwZSsiPntgYH08LyIrQS50eXBlKyI+ICkgUmVmZXIgdG8gb3VyIEFQSSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iKSwhMH0sTS5tYXBDaGlsZHJlblRvUHJvcHM9ZnVuY3Rpb24oQSxVKXt2YXIgTj10aGlzLFE9e307cmV0dXJuIHIuQ2hpbGRyZW4uZm9yRWFjaChBLGZ1bmN0aW9uKHVlKXtpZih1ZSYmdWUucHJvcHMpe3ZhciAkPXVlLnByb3BzLF89JC5jaGlsZHJlbixwZT1nKCQsX2UpLHJlPU9iamVjdC5rZXlzKHBlKS5yZWR1Y2UoZnVuY3Rpb24od2UsTGUpe3JldHVybiB3ZVtMW0xlXXx8TGVdPXBlW0xlXSx3ZX0se30pLGFlPXVlLnR5cGU7c3dpdGNoKHR5cGVvZiBhZT09InN5bWJvbCI/YWU9YWUudG9TdHJpbmcoKTpOLndhcm5PbkludmFsaWRDaGlsZHJlbih1ZSxfKSxhZSl7Y2FzZSB3LkZSQUdNRU5UOlU9Ti5tYXBDaGlsZHJlblRvUHJvcHMoXyxVKTticmVhaztjYXNlIHcuTElOSzpjYXNlIHcuTUVUQTpjYXNlIHcuTk9TQ1JJUFQ6Y2FzZSB3LlNDUklQVDpjYXNlIHcuU1RZTEU6UT1OLmZsYXR0ZW5BcnJheVR5cGVDaGlsZHJlbih7Y2hpbGQ6dWUsYXJyYXlUeXBlQ2hpbGRyZW46USxuZXdDaGlsZFByb3BzOnJlLG5lc3RlZENoaWxkcmVuOl99KTticmVhaztkZWZhdWx0OlU9Ti5tYXBPYmplY3RUeXBlQ2hpbGRyZW4oe2NoaWxkOnVlLG5ld1Byb3BzOlUsbmV3Q2hpbGRQcm9wczpyZSxuZXN0ZWRDaGlsZHJlbjpffSl9fX0pLHRoaXMubWFwQXJyYXlUeXBlQ2hpbGRyZW5Ub1Byb3BzKFEsVSl9LE0ucmVuZGVyPWZ1bmN0aW9uKCl7dmFyIEE9dGhpcy5wcm9wcyxVPUEuY2hpbGRyZW4sTj1nKEEsRmUpLFE9ZCh7fSxOKSx1ZT1OLmhlbG1ldERhdGE7cmV0dXJuIFUmJihRPXRoaXMubWFwQ2hpbGRyZW5Ub1Byb3BzKFUsUSkpLCF1ZXx8dWUgaW5zdGFuY2VvZiBzZXx8KHVlPW5ldyBzZSh1ZS5jb250ZXh0LHVlLmluc3RhbmNlcykpLHVlP3IuY3JlYXRlRWxlbWVudChxZSxkKHt9LFEse2NvbnRleHQ6dWUudmFsdWUsaGVsbWV0RGF0YTp2b2lkIDB9KSk6ci5jcmVhdGVFbGVtZW50KG5lLkNvbnN1bWVyLG51bGwsZnVuY3Rpb24oJCl7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChxZSxkKHt9LFEse2NvbnRleHQ6JH0pKX0pfSxrfShyLkNvbXBvbmVudCk7U2UucHJvcFR5cGVzPXtiYXNlOnQoKS5vYmplY3QsYm9keUF0dHJpYnV0ZXM6dCgpLm9iamVjdCxjaGlsZHJlbjp0KCkub25lT2ZUeXBlKFt0KCkuYXJyYXlPZih0KCkubm9kZSksdCgpLm5vZGVdKSxkZWZhdWx0VGl0bGU6dCgpLnN0cmluZyxkZWZlcjp0KCkuYm9vbCxlbmNvZGVTcGVjaWFsQ2hhcmFjdGVyczp0KCkuYm9vbCxodG1sQXR0cmlidXRlczp0KCkub2JqZWN0LGxpbms6dCgpLmFycmF5T2YodCgpLm9iamVjdCksbWV0YTp0KCkuYXJyYXlPZih0KCkub2JqZWN0KSxub3NjcmlwdDp0KCkuYXJyYXlPZih0KCkub2JqZWN0KSxvbkNoYW5nZUNsaWVudFN0YXRlOnQoKS5mdW5jLHNjcmlwdDp0KCkuYXJyYXlPZih0KCkub2JqZWN0KSxzdHlsZTp0KCkuYXJyYXlPZih0KCkub2JqZWN0KSx0aXRsZTp0KCkuc3RyaW5nLHRpdGxlQXR0cmlidXRlczp0KCkub2JqZWN0LHRpdGxlVGVtcGxhdGU6dCgpLnN0cmluZyxwcmlvcml0aXplU2VvVGFnczp0KCkuYm9vbCxoZWxtZXREYXRhOnQoKS5vYmplY3R9LFNlLmRlZmF1bHRQcm9wcz17ZGVmZXI6ITAsZW5jb2RlU3BlY2lhbENoYXJhY3RlcnM6ITAscHJpb3JpdGl6ZVNlb1RhZ3M6ITF9LFNlLmRpc3BsYXlOYW1lPSJIZWxtZXQifSw0NTA5NTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtsOmZ1bmN0aW9uKCl7cmV0dXJuIGl9fSk7dmFyIHI9ZSg2NzI5NCksbj1mdW5jdGlvbigpe3JldHVybiBuPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKHUpe2Zvcih2YXIgYyxoPTEsZD1hcmd1bWVudHMubGVuZ3RoO2g8ZDtoKyspe2M9YXJndW1lbnRzW2hdO2Zvcih2YXIgbSBpbiBjKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChjLG0pJiYodVttXT1jW21dKX1yZXR1cm4gdX0sbi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O2Z1bmN0aW9uIHQodSl7dmFyIGMsaD0odHlwZW9mIHdpbmRvdyE9InVuZGVmaW5lZCI/d2luZG93Ont9KS5VUkwsZD1uZXcgaCgoYz13aW5kb3c9PW51bGw/dm9pZCAwOndpbmRvdy5sb2NhdGlvbik9PT1udWxsfHxjPT09dm9pZCAwP3ZvaWQgMDpjLmhyZWYpO3JldHVybiBPYmplY3Qua2V5cyh1KS5mb3JFYWNoKGZ1bmN0aW9uKG0pe3ZhciBDPXVbbV07QyE9bnVsbD9BcnJheS5pc0FycmF5KEMpPyhkLnNlYXJjaFBhcmFtcy5kZWxldGUobSksQy5mb3JFYWNoKGZ1bmN0aW9uKGcpe2Quc2VhcmNoUGFyYW1zLmFwcGVuZChtLGcpfSkpOkMgaW5zdGFuY2VvZiBEYXRlP051bWJlci5pc05hTihDLmdldFRpbWUoKSl8fGQuc2VhcmNoUGFyYW1zLnNldChtLEMudG9JU09TdHJpbmcoKSk6dHlwZW9mIEM9PSJvYmplY3QiP2Quc2VhcmNoUGFyYW1zLnNldChtLEpTT04uc3RyaW5naWZ5KEMpKTpkLnNlYXJjaFBhcmFtcy5zZXQobSxDKTpkLnNlYXJjaFBhcmFtcy5kZWxldGUobSl9KSxkfWZ1bmN0aW9uIGkodSxjKXt2YXIgaDt1PT09dm9pZCAwJiYodT17fSksYz09PXZvaWQgMCYmKGM9e2Rpc2FibGVkOiExfSk7dmFyIGQ9KDAsci51c2VTdGF0ZSkoKSxtPWRbMV0sQz10eXBlb2Ygd2luZG93IT0idW5kZWZpbmVkIiYmKChoPXdpbmRvdz09bnVsbD92b2lkIDA6d2luZG93LmxvY2F0aW9uKT09PW51bGx8fGg9PT12b2lkIDA/dm9pZCAwOmguc2VhcmNoKSxnPSgwLHIudXNlTWVtbykoZnVuY3Rpb24oKXtyZXR1cm4gYy5kaXNhYmxlZD97fTpuZXcgVVJMU2VhcmNoUGFyYW1zKEN8fHt9KX0sW2MuZGlzYWJsZWQsQ10pLHc9KDAsci51c2VNZW1vKShmdW5jdGlvbigpe2lmKGMuZGlzYWJsZWQpcmV0dXJue307aWYodHlwZW9mIHdpbmRvdz09InVuZGVmaW5lZCJ8fCF3aW5kb3cuVVJMKXJldHVybnt9O3ZhciBPPVtdO2cuZm9yRWFjaChmdW5jdGlvbihTLEwpe08ucHVzaCh7a2V5OkwsdmFsdWU6U30pfSksTz1PLnJlZHVjZShmdW5jdGlvbihTLEwpe3JldHVybihTW0wua2V5XT1TW0wua2V5XXx8W10pLnB1c2goTCksU30se30pLE89T2JqZWN0LmtleXMoTykubWFwKGZ1bmN0aW9uKFMpe3ZhciBMPU9bU107cmV0dXJuIEwubGVuZ3RoPT09MT9bUyxMWzBdLnZhbHVlXTpbUyxMLm1hcChmdW5jdGlvbihJKXt2YXIgUj1JLnZhbHVlO3JldHVybiBSfSldfSk7dmFyIFQ9bih7fSx1KTtyZXR1cm4gTy5mb3JFYWNoKGZ1bmN0aW9uKFMpe3ZhciBMPVNbMF0sST1TWzFdO1RbTF09YShMLEkse30sdSl9KSxUfSxbYy5kaXNhYmxlZCx1LGddKTtmdW5jdGlvbiBFKE8pe2lmKCEodHlwZW9mIHdpbmRvdz09InVuZGVmaW5lZCJ8fCF3aW5kb3cuVVJMKSl7dmFyIFQ9dChPKTt3aW5kb3cubG9jYXRpb24uc2VhcmNoIT09VC5zZWFyY2gmJndpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZSh7fSwiIixULnRvU3RyaW5nKCkpLGcudG9TdHJpbmcoKSE9PVQuc2VhcmNoUGFyYW1zLnRvU3RyaW5nKCkmJm0oe30pfX0oMCxyLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtjLmRpc2FibGVkfHx0eXBlb2Ygd2luZG93PT0idW5kZWZpbmVkInx8IXdpbmRvdy5VUkx8fEUobihuKHt9LHUpLHcpKX0sW2MuZGlzYWJsZWQsd10pO3ZhciB4PWZ1bmN0aW9uKE8pe0UoTyl9O3JldHVybigwLHIudXNlRWZmZWN0KShmdW5jdGlvbigpe2lmKGMuZGlzYWJsZWQpcmV0dXJuIGZ1bmN0aW9uKCl7fTtpZih0eXBlb2Ygd2luZG93PT0idW5kZWZpbmVkInx8IXdpbmRvdy5VUkwpcmV0dXJuIGZ1bmN0aW9uKCl7fTt2YXIgTz1mdW5jdGlvbigpe20oe30pfTtyZXR1cm4gd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInBvcHN0YXRlIixPKSxmdW5jdGlvbigpe3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJwb3BzdGF0ZSIsTyl9fSxbYy5kaXNhYmxlZF0pLFt3LHhdfXZhciBzPXt0cnVlOiEwLGZhbHNlOiExfTtmdW5jdGlvbiBhKHUsYyxoLGQpe2lmKCFoKXJldHVybiBjO3ZhciBtPWhbdV0sQz1jPT09dm9pZCAwP2RbdV06YztyZXR1cm4gbT09PU51bWJlcj9OdW1iZXIoQyk6bT09PUJvb2xlYW58fGM9PT0idHJ1ZSJ8fGM9PT0iZmFsc2UiP3NbQ106QXJyYXkuaXNBcnJheShtKT9tLmZpbmQoZnVuY3Rpb24oZyl7cmV0dXJuIGc9PUN9KXx8ZFt1XTpDfX0sNDA4NzM6ZnVuY3Rpb24oeSl7dmFyIHA9e2VuX0dCOiJlbi1nYiIsZW5fVVM6ImVuIix6aF9DTjoiemgtY24iLHpoX1RXOiJ6aC10dyJ9LGU9ZnVuY3Rpb24obil7dmFyIHQ9cFtuXTtyZXR1cm4gdHx8bi5zcGxpdCgiXyIpWzBdfTt5LmV4cG9ydHM9ZnVuY3Rpb24ocixuLHQpe3ZhciBpPW4ucHJvdG90eXBlLmxvY2FsZTtuLnByb3RvdHlwZS5sb2NhbGU9ZnVuY3Rpb24ocyl7cmV0dXJuIHR5cGVvZiBzPT0ic3RyaW5nIiYmKHM9ZShzKSksaS5jYWxsKHRoaXMscyl9fX0sODY3NDM6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDY3Mjk0KSxuPWUoMzA0NzApLHQ9ZSg4MzYyMiksaT1lKDMzNjcxKTtmdW5jdGlvbiBzKHUpe3JldHVybiEhKHUhPW51bGwmJnUudGhlbil9Y29uc3QgYT11PT57Y29uc3R7dHlwZTpjLGNoaWxkcmVuOmgscHJlZml4Q2xzOmQsYnV0dG9uUHJvcHM6bSxjbG9zZTpDLGF1dG9Gb2N1czpnLGVtaXRFdmVudDp3LGlzU2lsZW50OkUscXVpdE9uTnVsbGlzaFJldHVyblZhbHVlOngsYWN0aW9uRm46T309dSxUPXIudXNlUmVmKCExKSxTPXIudXNlUmVmKG51bGwpLFtMLEldPSgwLG4uWikoITEpLFI9ZnVuY3Rpb24oKXtDPT1udWxsfHxDLmFwcGx5KHZvaWQgMCxhcmd1bWVudHMpfTtyLnVzZUVmZmVjdCgoKT0+e2xldCBZPW51bGw7cmV0dXJuIGcmJihZPXNldFRpbWVvdXQoKCk9Pnt2YXIgZWU7KGVlPVMuY3VycmVudCk9PT1udWxsfHxlZT09PXZvaWQgMHx8ZWUuZm9jdXMoe3ByZXZlbnRTY3JvbGw6ITB9KX0pKSwoKT0+e1kmJmNsZWFyVGltZW91dChZKX19LFtdKTtjb25zdCB6PVk9PntzKFkpJiYoSSghMCksWS50aGVuKGZ1bmN0aW9uKCl7SSghMSwhMCksUi5hcHBseSh2b2lkIDAsYXJndW1lbnRzKSxULmN1cnJlbnQ9ITF9LGVlPT57aWYoSSghMSwhMCksVC5jdXJyZW50PSExLCEoRSE9bnVsbCYmRSgpKSlyZXR1cm4gUHJvbWlzZS5yZWplY3QoZWUpfSkpfSxHPVk9PntpZihULmN1cnJlbnQpcmV0dXJuO2lmKFQuY3VycmVudD0hMCwhTyl7UigpO3JldHVybn1sZXQgZWU7aWYodyl7aWYoZWU9TyhZKSx4JiYhcyhlZSkpe1QuY3VycmVudD0hMSxSKFkpO3JldHVybn19ZWxzZSBpZihPLmxlbmd0aCllZT1PKEMpLFQuY3VycmVudD0hMTtlbHNlIGlmKGVlPU8oKSwhcyhlZSkpe1IoKTtyZXR1cm59eihlZSl9O3JldHVybiByLmNyZWF0ZUVsZW1lbnQodC5aUCxPYmplY3QuYXNzaWduKHt9LCgwLGkubngpKGMpLHtvbkNsaWNrOkcsbG9hZGluZzpMLHByZWZpeENsczpkfSxtLHtyZWY6U30pLGgpfTtwLlo9YX0sODk5NDI6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDY3Mjk0KSxuPWUoNjUyMjMpLHQ9ZSg0MTczKTtjb25zdCBpPXM9Pntjb25zdHtzcGFjZTphLGZvcm06dSxjaGlsZHJlbjpjfT1zO2lmKGM9PW51bGwpcmV0dXJuIG51bGw7bGV0IGg9YztyZXR1cm4gdSYmKGg9ci5jcmVhdGVFbGVtZW50KG4uVXgse292ZXJyaWRlOiEwLHN0YXR1czohMH0saCkpLGEmJihoPXIuY3JlYXRlRWxlbWVudCh0LkJSLG51bGwsaCkpLGh9O3AuWj1pfSw4NzQ1OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse2k6ZnVuY3Rpb24oKXtyZXR1cm4gc319KTt2YXIgcj1lKDY3Mjk0KSxuPWUoMjE3NzApLHQ9ZSgyMTUzMiksaT1lKDUzMTI0KTtmdW5jdGlvbiBzKHUpe3JldHVybiBjPT5yLmNyZWF0ZUVsZW1lbnQodC5aUCx7dGhlbWU6e3Rva2VuOnttb3Rpb246ITEsekluZGV4UG9wdXBCYXNlOjB9fX0sci5jcmVhdGVFbGVtZW50KHUsT2JqZWN0LmFzc2lnbih7fSxjKSkpfWNvbnN0IGE9KHUsYyxoLGQsbSk9PnMoZz0+e2NvbnN0e3ByZWZpeENsczp3LHN0eWxlOkV9PWcseD1yLnVzZVJlZihudWxsKSxbTyxUXT1yLnVzZVN0YXRlKDApLFtTLExdPXIudXNlU3RhdGUoMCksW0ksUl09KDAsbi5aKSghMSx7dmFsdWU6Zy5vcGVufSkse2dldFByZWZpeENsczp6fT1yLnVzZUNvbnRleHQoaS5FXyksRz16KGR8fCJzZWxlY3QiLHcpO3IudXNlRWZmZWN0KCgpPT57aWYoUighMCksdHlwZW9mIFJlc2l6ZU9ic2VydmVyIT0idW5kZWZpbmVkIil7Y29uc3QgSj1uZXcgUmVzaXplT2JzZXJ2ZXIodGU9Pntjb25zdCBsZT10ZVswXS50YXJnZXQ7VChsZS5vZmZzZXRIZWlnaHQrOCksTChsZS5vZmZzZXRXaWR0aCl9KSxtZT1zZXRJbnRlcnZhbCgoKT0+e3ZhciB0ZTtjb25zdCBsZT1tP2AuJHttKEcpfWA6YC4ke0d9LWRyb3Bkb3duYCxjZT0odGU9eC5jdXJyZW50KT09PW51bGx8fHRlPT09dm9pZCAwP3ZvaWQgMDp0ZS5xdWVyeVNlbGVjdG9yKGxlKTtjZSYmKGNsZWFySW50ZXJ2YWwobWUpLEoub2JzZXJ2ZShjZSkpfSwxMCk7cmV0dXJuKCk9PntjbGVhckludGVydmFsKG1lKSxKLmRpc2Nvbm5lY3QoKX19fSxbXSk7bGV0IFk9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGcpLHtzdHlsZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sRSkse21hcmdpbjowfSksb3BlbjpJLHZpc2libGU6SSxnZXRQb3B1cENvbnRhaW5lcjooKT0+eC5jdXJyZW50fSk7aCYmKFk9aChZKSksYyYmT2JqZWN0LmFzc2lnbihZLHtbY106e292ZXJmbG93OnthZGp1c3RYOiExLGFkanVzdFk6ITF9fX0pO2NvbnN0IGVlPXtwYWRkaW5nQm90dG9tOk8scG9zaXRpb246InJlbGF0aXZlIixtaW5XaWR0aDpTfTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KCJkaXYiLHtyZWY6eCxzdHlsZTplZX0sci5jcmVhdGVFbGVtZW50KHUsT2JqZWN0LmFzc2lnbih7fSxZKSkpfSk7cC5aPWF9LDk4Nzg3OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse28yOmZ1bmN0aW9uKCl7cmV0dXJuIHN9LHlUOmZ1bmN0aW9uKCl7cmV0dXJuIGF9fSk7dmFyIHI9ZSg3NDkwMiksbj1lKDg3OTYpO2NvbnN0IHQ9bi5pLm1hcCh1PT5gJHt1fS1pbnZlcnNlYCksaT1bInN1Y2Nlc3MiLCJwcm9jZXNzaW5nIiwiZXJyb3IiLCJkZWZhdWx0Iiwid2FybmluZyJdO2Z1bmN0aW9uIHModSl7cmV0dXJuKGFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTohMCk/W10uY29uY2F0KCgwLHIuWikodCksKDAsci5aKShuLmkpKS5pbmNsdWRlcyh1KTpuLmkuaW5jbHVkZXModSl9ZnVuY3Rpb24gYSh1KXtyZXR1cm4gaS5pbmNsdWRlcyh1KX19LDM4NzgwOmZ1bmN0aW9uKHkscCl7InVzZSBzdHJpY3QiO2NvbnN0IGU9ZnVuY3Rpb24oKXtjb25zdCByPU9iamVjdC5hc3NpZ24oe30sYXJndW1lbnRzLmxlbmd0aDw9MD92b2lkIDA6YXJndW1lbnRzWzBdKTtmb3IobGV0IG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXtjb25zdCB0PW48MHx8YXJndW1lbnRzLmxlbmd0aDw9bj92b2lkIDA6YXJndW1lbnRzW25dO3QmJk9iamVjdC5rZXlzKHQpLmZvckVhY2goaT0+e2NvbnN0IHM9dFtpXTtzIT09dm9pZCAwJiYocltpXT1zKX0pfXJldHVybiByfTtwLlo9ZX0sNjk3NjA6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiBjfSx3OmZ1bmN0aW9uKCl7cmV0dXJuIGl9fSk7dmFyIHI9ZSg2NzI5NCksbj1lKDk3OTM3KSx0PWUoNjQyMTcpO2Z1bmN0aW9uIGkoaCl7aWYoaClyZXR1cm57Y2xvc2FibGU6aC5jbG9zYWJsZSxjbG9zZUljb246aC5jbG9zZUljb259fWZ1bmN0aW9uIHMoaCl7Y29uc3R7Y2xvc2FibGU6ZCxjbG9zZUljb246bX09aHx8e307cmV0dXJuIHIudXNlTWVtbygoKT0+e2lmKCFkJiYoZD09PSExfHxtPT09ITF8fG09PT1udWxsKSlyZXR1cm4hMTtpZihkPT09dm9pZCAwJiZtPT09dm9pZCAwKXJldHVybiBudWxsO2xldCBDPXtjbG9zZUljb246dHlwZW9mIG0hPSJib29sZWFuIiYmbSE9PW51bGw/bTp2b2lkIDB9O3JldHVybiBkJiZ0eXBlb2YgZD09Im9iamVjdCImJihDPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxDKSxkKSksQ30sW2QsbV0pfWZ1bmN0aW9uIGEoKXtjb25zdCBoPXt9O2Zvcih2YXIgZD1hcmd1bWVudHMubGVuZ3RoLG09bmV3IEFycmF5KGQpLEM9MDtDPGQ7QysrKW1bQ109YXJndW1lbnRzW0NdO3JldHVybiBtLmZvckVhY2goZz0+e2cmJk9iamVjdC5rZXlzKGcpLmZvckVhY2godz0+e2dbd10hPT12b2lkIDAmJihoW3ddPWdbd10pfSl9KSxofWNvbnN0IHU9e307ZnVuY3Rpb24gYyhoLGQpe2xldCBtPWFyZ3VtZW50cy5sZW5ndGg+MiYmYXJndW1lbnRzWzJdIT09dm9pZCAwP2FyZ3VtZW50c1syXTp1O2NvbnN0IEM9cyhoKSxnPXMoZCksdz10eXBlb2YgQyE9ImJvb2xlYW4iPyEhKEMhPW51bGwmJkMuZGlzYWJsZWQpOiExLEU9ci51c2VNZW1vKCgpPT5PYmplY3QuYXNzaWduKHtjbG9zZUljb246ci5jcmVhdGVFbGVtZW50KG4uWixudWxsKX0sbSksW21dKSx4PXIudXNlTWVtbygoKT0+Qz09PSExPyExOkM/YShFLGcsQyk6Zz09PSExPyExOmc/YShFLGcpOkUuY2xvc2FibGU/RTohMSxbQyxnLEVdKTtyZXR1cm4gci51c2VNZW1vKCgpPT57aWYoeD09PSExKXJldHVyblshMSxudWxsLHddO2NvbnN0e2Nsb3NlSWNvblJlbmRlcjpPfT1FLHtjbG9zZUljb246VH09eDtsZXQgUz1UO2lmKFMhPW51bGwpe08mJihTPU8oVCkpO2NvbnN0IEw9KDAsdC5aKSh4LCEwKTtPYmplY3Qua2V5cyhMKS5sZW5ndGgmJihTPXIuaXNWYWxpZEVsZW1lbnQoUyk/ci5jbG9uZUVsZW1lbnQoUyxMKTpyLmNyZWF0ZUVsZW1lbnQoInNwYW4iLE9iamVjdC5hc3NpZ24oe30sTCksUykpfXJldHVyblshMCxTLHddfSxbeCxFXSl9fSw1NzgzODpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIG59fSk7dmFyIHI9ZSg2NzI5NCk7ZnVuY3Rpb24gbigpe2NvbnN0Wyx0XT1yLnVzZVJlZHVjZXIoaT0+aSsxLDApO3JldHVybiB0fX0sODcyNjM6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7Q246ZnVuY3Rpb24oKXtyZXR1cm4gbX0sdTY6ZnVuY3Rpb24oKXtyZXR1cm4gYX19KTt2YXIgcj1lKDY3Mjk0KSxuPWUoMjk2OTEpLHQ9ZSg0Mzk0NSk7Y29uc3QgaT0xMDAsYT1pKjEwLHU9YStpLGM9e01vZGFsOmksRHJhd2VyOmksUG9wb3ZlcjppLFBvcGNvbmZpcm06aSxUb29sdGlwOmksVG91cjppLEZsb2F0QnV0dG9uOml9LGg9e1NlbGVjdExpa2U6NTAsRHJvcGRvd246NTAsRGF0ZVBpY2tlcjo1MCxNZW51OjUwLEltYWdlUHJldmlldzoxfTtmdW5jdGlvbiBkKEMpe3JldHVybiBDIGluIGN9Y29uc3QgbT0oQyxnKT0+e2NvbnN0Wyx3XT0oMCxuLlpQKSgpLEU9ci51c2VDb250ZXh0KHQuWikseD1kKEMpO2xldCBPO2lmKGchPT12b2lkIDApTz1bZyxnXTtlbHNle2xldCBUPUUhPW51bGw/RTowO3g/VCs9KEU/MDp3LnpJbmRleFBvcHVwQmFzZSkrY1tDXTpUKz1oW0NdLE89W0U9PT12b2lkIDA/ZzpULFRdfXJldHVybiBPfX0sMzM2MDM6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7bTpmdW5jdGlvbigpe3JldHVybiBjfX0pO3ZhciByPWUoNTMxMjQpO2NvbnN0IG49KCk9Pih7aGVpZ2h0OjAsb3BhY2l0eTowfSksdD1oPT57Y29uc3R7c2Nyb2xsSGVpZ2h0OmR9PWg7cmV0dXJue2hlaWdodDpkLG9wYWNpdHk6MX19LGk9aD0+KHtoZWlnaHQ6aD9oLm9mZnNldEhlaWdodDowfSkscz0oaCxkKT0+KGQ9PW51bGw/dm9pZCAwOmQuZGVhZGxpbmUpPT09ITB8fGQucHJvcGVydHlOYW1lPT09ImhlaWdodCIsYT1mdW5jdGlvbigpe3JldHVybnttb3Rpb25OYW1lOmAke2FyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dm9pZCAwP2FyZ3VtZW50c1swXTpyLlJmfS1tb3Rpb24tY29sbGFwc2VgLG9uQXBwZWFyU3RhcnQ6bixvbkVudGVyU3RhcnQ6bixvbkFwcGVhckFjdGl2ZTp0LG9uRW50ZXJBY3RpdmU6dCxvbkxlYXZlU3RhcnQ6aSxvbkxlYXZlQWN0aXZlOm4sb25BcHBlYXJFbmQ6cyxvbkVudGVyRW5kOnMsb25MZWF2ZUVuZDpzLG1vdGlvbkRlYWRsaW5lOjUwMH19LHU9bnVsbCxjPShoLGQsbSk9Pm0hPT12b2lkIDA/bTpgJHtofS0ke2R9YDtwLlo9YX0sODA2MzY6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiBhfX0pO3ZhciByPWUoOTc0MTQpO2Z1bmN0aW9uIG4odSxjLGgsZCl7aWYoZD09PSExKXJldHVybnthZGp1c3RYOiExLGFkanVzdFk6ITF9O2NvbnN0IG09ZCYmdHlwZW9mIGQ9PSJvYmplY3QiP2Q6e30sQz17fTtzd2l0Y2godSl7Y2FzZSJ0b3AiOmNhc2UiYm90dG9tIjpDLnNoaWZ0WD1jLmFycm93T2Zmc2V0SG9yaXpvbnRhbCoyK2gsQy5zaGlmdFk9ITAsQy5hZGp1c3RZPSEwO2JyZWFrO2Nhc2UibGVmdCI6Y2FzZSJyaWdodCI6Qy5zaGlmdFk9Yy5hcnJvd09mZnNldFZlcnRpY2FsKjIraCxDLnNoaWZ0WD0hMCxDLmFkanVzdFg9ITA7YnJlYWt9Y29uc3QgZz1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sQyksbSk7cmV0dXJuIGcuc2hpZnRYfHwoZy5hZGp1c3RYPSEwKSxnLnNoaWZ0WXx8KGcuYWRqdXN0WT0hMCksZ31jb25zdCB0PXtsZWZ0Ontwb2ludHM6WyJjciIsImNsIl19LHJpZ2h0Ontwb2ludHM6WyJjbCIsImNyIl19LHRvcDp7cG9pbnRzOlsiYmMiLCJ0YyJdfSxib3R0b206e3BvaW50czpbInRjIiwiYmMiXX0sdG9wTGVmdDp7cG9pbnRzOlsiYmwiLCJ0bCJdfSxsZWZ0VG9wOntwb2ludHM6WyJ0ciIsInRsIl19LHRvcFJpZ2h0Ontwb2ludHM6WyJiciIsInRyIl19LHJpZ2h0VG9wOntwb2ludHM6WyJ0bCIsInRyIl19LGJvdHRvbVJpZ2h0Ontwb2ludHM6WyJ0ciIsImJyIl19LHJpZ2h0Qm90dG9tOntwb2ludHM6WyJibCIsImJyIl19LGJvdHRvbUxlZnQ6e3BvaW50czpbInRsIiwiYmwiXX0sbGVmdEJvdHRvbTp7cG9pbnRzOlsiYnIiLCJibCJdfX0saT17dG9wTGVmdDp7cG9pbnRzOlsiYmwiLCJ0YyJdfSxsZWZ0VG9wOntwb2ludHM6WyJ0ciIsImNsIl19LHRvcFJpZ2h0Ontwb2ludHM6WyJiciIsInRjIl19LHJpZ2h0VG9wOntwb2ludHM6WyJ0bCIsImNyIl19LGJvdHRvbVJpZ2h0Ontwb2ludHM6WyJ0ciIsImJjIl19LHJpZ2h0Qm90dG9tOntwb2ludHM6WyJibCIsImNyIl19LGJvdHRvbUxlZnQ6e3BvaW50czpbInRsIiwiYmMiXX0sbGVmdEJvdHRvbTp7cG9pbnRzOlsiYnIiLCJjbCJdfX0scz1uZXcgU2V0KFsidG9wTGVmdCIsInRvcFJpZ2h0IiwiYm90dG9tTGVmdCIsImJvdHRvbVJpZ2h0IiwibGVmdFRvcCIsImxlZnRCb3R0b20iLCJyaWdodFRvcCIsInJpZ2h0Qm90dG9tIl0pO2Z1bmN0aW9uIGEodSl7Y29uc3R7YXJyb3dXaWR0aDpjLGF1dG9BZGp1c3RPdmVyZmxvdzpoLGFycm93UG9pbnRBdENlbnRlcjpkLG9mZnNldDptLGJvcmRlclJhZGl1czpDLHZpc2libGVGaXJzdDpnfT11LHc9Yy8yLEU9e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goeD0+e2NvbnN0IE89ZCYmaVt4XXx8dFt4XSxUPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxPKSx7b2Zmc2V0OlswLDBdLGR5bmFtaWNJbnNldDohMH0pO3N3aXRjaChFW3hdPVQscy5oYXMoeCkmJihULmF1dG9BcnJvdz0hMSkseCl7Y2FzZSJ0b3AiOmNhc2UidG9wTGVmdCI6Y2FzZSJ0b3BSaWdodCI6VC5vZmZzZXRbMV09LXctbTticmVhaztjYXNlImJvdHRvbSI6Y2FzZSJib3R0b21MZWZ0IjpjYXNlImJvdHRvbVJpZ2h0IjpULm9mZnNldFsxXT13K207YnJlYWs7Y2FzZSJsZWZ0IjpjYXNlImxlZnRUb3AiOmNhc2UibGVmdEJvdHRvbSI6VC5vZmZzZXRbMF09LXctbTticmVhaztjYXNlInJpZ2h0IjpjYXNlInJpZ2h0VG9wIjpjYXNlInJpZ2h0Qm90dG9tIjpULm9mZnNldFswXT13K207YnJlYWt9Y29uc3QgUz0oMCxyLndaKSh7Y29udGVudFJhZGl1czpDLGxpbWl0VmVydGljYWxSYWRpdXM6ITB9KTtpZihkKXN3aXRjaCh4KXtjYXNlInRvcExlZnQiOmNhc2UiYm90dG9tTGVmdCI6VC5vZmZzZXRbMF09LVMuYXJyb3dPZmZzZXRIb3Jpem9udGFsLXc7YnJlYWs7Y2FzZSJ0b3BSaWdodCI6Y2FzZSJib3R0b21SaWdodCI6VC5vZmZzZXRbMF09Uy5hcnJvd09mZnNldEhvcml6b250YWwrdzticmVhaztjYXNlImxlZnRUb3AiOmNhc2UicmlnaHRUb3AiOlQub2Zmc2V0WzFdPS1TLmFycm93T2Zmc2V0SG9yaXpvbnRhbCoyK3c7YnJlYWs7Y2FzZSJsZWZ0Qm90dG9tIjpjYXNlInJpZ2h0Qm90dG9tIjpULm9mZnNldFsxXT1TLmFycm93T2Zmc2V0SG9yaXpvbnRhbCoyLXc7YnJlYWt9VC5vdmVyZmxvdz1uKHgsUyxjLGgpLGcmJihULmh0bWxSZWdpb249InZpc2libGVGaXJzdCIpfSksRX19LDk2MTU5OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse00yOmZ1bmN0aW9uKCl7cmV0dXJuIG59LFRtOmZ1bmN0aW9uKCl7cmV0dXJuIGl9LHdtOmZ1bmN0aW9uKCl7cmV0dXJuIHR9fSk7dmFyIHI9ZSg2NzI5NCk7ZnVuY3Rpb24gbihzKXtyZXR1cm4gcyYmci5pc1ZhbGlkRWxlbWVudChzKSYmcy50eXBlPT09ci5GcmFnbWVudH1jb25zdCB0PShzLGEsdSk9PnIuaXNWYWxpZEVsZW1lbnQocyk/ci5jbG9uZUVsZW1lbnQocyx0eXBlb2YgdT09ImZ1bmN0aW9uIj91KHMucHJvcHN8fHt9KTp1KTphO2Z1bmN0aW9uIGkocyxhKXtyZXR1cm4gdChzLHMsYSl9fSw3NDQ0MzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaUDpmdW5jdGlvbigpe3JldHVybiBhfSxjNDpmdW5jdGlvbigpe3JldHVybiB0fSxtOTpmdW5jdGlvbigpe3JldHVybiB1fX0pO3ZhciByPWUoNjcyOTQpLG49ZSgyOTY5MSk7Y29uc3QgdD1bInh4bCIsInhsIiwibGciLCJtZCIsInNtIiwieHMiXSxpPWM9Pih7eHM6YChtYXgtd2lkdGg6ICR7Yy5zY3JlZW5YU01heH1weClgLHNtOmAobWluLXdpZHRoOiAke2Muc2NyZWVuU019cHgpYCxtZDpgKG1pbi13aWR0aDogJHtjLnNjcmVlbk1EfXB4KWAsbGc6YChtaW4td2lkdGg6ICR7Yy5zY3JlZW5MR31weClgLHhsOmAobWluLXdpZHRoOiAke2Muc2NyZWVuWEx9cHgpYCx4eGw6YChtaW4td2lkdGg6ICR7Yy5zY3JlZW5YWEx9cHgpYH0pLHM9Yz0+e2NvbnN0IGg9YyxkPVtdLmNvbmNhdCh0KS5yZXZlcnNlKCk7cmV0dXJuIGQuZm9yRWFjaCgobSxDKT0+e2NvbnN0IGc9bS50b1VwcGVyQ2FzZSgpLHc9YHNjcmVlbiR7Z31NaW5gLEU9YHNjcmVlbiR7Z31gO2lmKCEoaFt3XTw9aFtFXSkpdGhyb3cgbmV3IEVycm9yKGAke3d9PD0ke0V9IGZhaWxzIDogISgke2hbd119PD0ke2hbRV19KWApO2lmKEM8ZC5sZW5ndGgtMSl7Y29uc3QgeD1gc2NyZWVuJHtnfU1heGA7aWYoIShoW0VdPD1oW3hdKSl0aHJvdyBuZXcgRXJyb3IoYCR7RX08PSR7eH0gZmFpbHMgOiAhKCR7aFtFXX08PSR7aFt4XX0pYCk7Y29uc3QgVD1gc2NyZWVuJHtkW0MrMV0udG9VcHBlckNhc2UoKX1NaW5gO2lmKCEoaFt4XTw9aFtUXSkpdGhyb3cgbmV3IEVycm9yKGAke3h9PD0ke1R9IGZhaWxzIDogISgke2hbeF19PD0ke2hbVF19KWApfX0pLGN9O2Z1bmN0aW9uIGEoKXtjb25zdFssY109KDAsbi5aUCkoKSxoPWkocyhjKSk7cmV0dXJuIHIudXNlTWVtbygoKT0+e2NvbnN0IGQ9bmV3IE1hcDtsZXQgbT0tMSxDPXt9O3JldHVybnttYXRjaEhhbmRsZXJzOnt9LGRpc3BhdGNoKGcpe3JldHVybiBDPWcsZC5mb3JFYWNoKHc9PncoQykpLGQuc2l6ZT49MX0sc3Vic2NyaWJlKGcpe3JldHVybiBkLnNpemV8fHRoaXMucmVnaXN0ZXIoKSxtKz0xLGQuc2V0KG0sZyksZyhDKSxtfSx1bnN1YnNjcmliZShnKXtkLmRlbGV0ZShnKSxkLnNpemV8fHRoaXMudW5yZWdpc3RlcigpfSx1bnJlZ2lzdGVyKCl7T2JqZWN0LmtleXMoaCkuZm9yRWFjaChnPT57Y29uc3Qgdz1oW2ddLEU9dGhpcy5tYXRjaEhhbmRsZXJzW3ddO0U9PW51bGx8fEUubXFsLnJlbW92ZUxpc3RlbmVyKEU9PW51bGw/dm9pZCAwOkUubGlzdGVuZXIpfSksZC5jbGVhcigpfSxyZWdpc3Rlcigpe09iamVjdC5rZXlzKGgpLmZvckVhY2goZz0+e2NvbnN0IHc9aFtnXSxFPU89PntsZXR7bWF0Y2hlczpUfT1PO3RoaXMuZGlzcGF0Y2goT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LEMpLHtbZ106VH0pKX0seD13aW5kb3cubWF0Y2hNZWRpYSh3KTt4LmFkZExpc3RlbmVyKEUpLHRoaXMubWF0Y2hIYW5kbGVyc1t3XT17bXFsOngsbGlzdGVuZXI6RX0sRSh4KX0pfSxyZXNwb25zaXZlTWFwOmh9fSxbY10pfWNvbnN0IHU9KGMsaCk9PntpZihoJiZ0eXBlb2YgaD09Im9iamVjdCIpZm9yKGxldCBkPTA7ZDx0Lmxlbmd0aDtkKyspe2NvbnN0IG09dFtkXTtpZihjW21dJiZoW21dIT09dm9pZCAwKXJldHVybiBoW21dfX19LDk3MDg6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7RjpmdW5jdGlvbigpe3JldHVybiBzfSxaOmZ1bmN0aW9uKCl7cmV0dXJuIGl9fSk7dmFyIHI9ZSg5Mzk2Nyksbj1lLm4ocik7Y29uc3QgdD1udWxsO2Z1bmN0aW9uIGkoYSx1LGMpe3JldHVybiBuKCkoe1tgJHthfS1zdGF0dXMtc3VjY2Vzc2BdOnU9PT0ic3VjY2VzcyIsW2Ake2F9LXN0YXR1cy13YXJuaW5nYF06dT09PSJ3YXJuaW5nIixbYCR7YX0tc3RhdHVzLWVycm9yYF06dT09PSJlcnJvciIsW2Ake2F9LXN0YXR1cy12YWxpZGF0aW5nYF06dT09PSJ2YWxpZGF0aW5nIixbYCR7YX0taGFzLWZlZWRiYWNrYF06Y30pfWNvbnN0IHM9KGEsdSk9PnV8fGF9LDI3Mjg4OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse0c4OmZ1bmN0aW9uKCl7cmV0dXJuIHV9LGxuOmZ1bmN0aW9uKCl7cmV0dXJuIGN9fSk7dmFyIHI9ZSg2NzI5NCksbj1lKDgwMzM0KTtmdW5jdGlvbiB0KCl7fWxldCBpPW51bGw7ZnVuY3Rpb24gcygpe2k9bnVsbCxyY1Jlc2V0V2FybmVkKCl9bGV0IGE9bnVsbDtjb25zdCB1PXIuY3JlYXRlQ29udGV4dCh7fSksYz0oKT0+e2NvbnN0IGQ9KCk9Pnt9O3JldHVybiBkLmRlcHJlY2F0ZWQ9dCxkfTt2YXIgaD1udWxsfSw0NTM1MzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGVlfX0pO3ZhciByPWUoNjcyOTQpLG49ZSg5Mzk2NyksdD1lLm4obiksaT1lKDUxMTApLHM9ZSg0MjU1MCksYT1lKDUzMTI0KSx1PWUoOTYxNTkpLGM9ZSg4MzU1OSk7Y29uc3QgaD1KPT57Y29uc3R7Y29tcG9uZW50Q2xzOm1lLGNvbG9yUHJpbWFyeTp0ZX09SjtyZXR1cm57W21lXTp7cG9zaXRpb246ImFic29sdXRlIixiYWNrZ3JvdW5kOiJ0cmFuc3BhcmVudCIscG9pbnRlckV2ZW50czoibm9uZSIsYm94U2l6aW5nOiJib3JkZXItYm94Iixjb2xvcjpgdmFyKC0td2F2ZS1jb2xvciwgJHt0ZX0pYCxib3hTaGFkb3c6IjAgMCAwIDAgY3VycmVudGNvbG9yIixvcGFjaXR5Oi4yLCImLndhdmUtbW90aW9uLWFwcGVhciI6e3RyYW5zaXRpb246W2Bib3gtc2hhZG93IDAuNHMgJHtKLm1vdGlvbkVhc2VPdXRDaXJjfWAsYG9wYWNpdHkgMnMgJHtKLm1vdGlvbkVhc2VPdXRDaXJjfWBdLmpvaW4oIiwiKSwiJi1hY3RpdmUiOntib3hTaGFkb3c6IjAgMCAwIDZweCBjdXJyZW50Y29sb3IiLG9wYWNpdHk6MH0sIiYud2F2ZS1xdWljayI6e3RyYW5zaXRpb246W2Bib3gtc2hhZG93ICR7Si5tb3Rpb25EdXJhdGlvblNsb3d9ICR7Si5tb3Rpb25FYXNlSW5PdXR9YCxgb3BhY2l0eSAke0oubW90aW9uRHVyYXRpb25TbG93fSAke0oubW90aW9uRWFzZUluT3V0fWBdLmpvaW4oIiwiKX19fX19O3ZhciBkPSgwLGMuQTEpKCJXYXZlIixKPT5baChKKV0pLG09ZSg2NjY4MCksQz1lKDc1MTY0KSxnPWUoMjk2OTEpLHc9ZSgxNzQxNSksRT1lKDI5MzcyKSx4PWUoNjk3MTEpO2Z1bmN0aW9uIE8oSil7cmV0dXJuIEomJkohPT0iI2ZmZiImJkohPT0iI2ZmZmZmZiImJkohPT0icmdiKDI1NSwgMjU1LCAyNTUpIiYmSiE9PSJyZ2JhKDI1NSwgMjU1LCAyNTUsIDEpIiYmIS9yZ2JhXCgoPzpcZCosICl7M30wXCkvLnRlc3QoSikmJkohPT0idHJhbnNwYXJlbnQifWZ1bmN0aW9uIFQoSil7Y29uc3R7Ym9yZGVyVG9wQ29sb3I6bWUsYm9yZGVyQ29sb3I6dGUsYmFja2dyb3VuZENvbG9yOmxlfT1nZXRDb21wdXRlZFN0eWxlKEopO3JldHVybiBPKG1lKT9tZTpPKHRlKT90ZTpPKGxlKT9sZTpudWxsfWZ1bmN0aW9uIFMoSil7cmV0dXJuIE51bWJlci5pc05hTihKKT8wOkp9Y29uc3QgTD1KPT57Y29uc3R7Y2xhc3NOYW1lOm1lLHRhcmdldDp0ZSxjb21wb25lbnQ6bGUscmVnaXN0ZXJVbm1vdW50OmNlfT1KLFc9ci51c2VSZWYobnVsbCksaj1yLnVzZVJlZihudWxsKTtyLnVzZUVmZmVjdCgoKT0+e2ouY3VycmVudD1jZSgpfSxbXSk7Y29uc3RbRCxWXT1yLnVzZVN0YXRlKG51bGwpLFtaLFBdPXIudXNlU3RhdGUoW10pLFtLLHNlXT1yLnVzZVN0YXRlKDApLFtuZSxvZV09ci51c2VTdGF0ZSgwKSxbZmUsRWVdPXIudXNlU3RhdGUoMCksW1JlLEJlXT1yLnVzZVN0YXRlKDApLFtZZSxvdF09ci51c2VTdGF0ZSghMSkscWU9e2xlZnQ6Syx0b3A6bmUsd2lkdGg6ZmUsaGVpZ2h0OlJlLGJvcmRlclJhZGl1czpaLm1hcChTZT0+YCR7U2V9cHhgKS5qb2luKCIgIil9O0QmJihxZVsiLS13YXZlLWNvbG9yIl09RCk7ZnVuY3Rpb24gX2UoKXtjb25zdCBTZT1nZXRDb21wdXRlZFN0eWxlKHRlKTtWKFQodGUpKTtjb25zdCBxPVNlLnBvc2l0aW9uPT09InN0YXRpYyIse2JvcmRlckxlZnRXaWR0aDprLGJvcmRlclRvcFdpZHRoOk19PVNlO3NlKHE/dGUub2Zmc2V0TGVmdDpTKC1wYXJzZUZsb2F0KGspKSksb2UocT90ZS5vZmZzZXRUb3A6UygtcGFyc2VGbG9hdChNKSkpLEVlKHRlLm9mZnNldFdpZHRoKSxCZSh0ZS5vZmZzZXRIZWlnaHQpO2NvbnN0e2JvcmRlclRvcExlZnRSYWRpdXM6QSxib3JkZXJUb3BSaWdodFJhZGl1czpVLGJvcmRlckJvdHRvbUxlZnRSYWRpdXM6Tixib3JkZXJCb3R0b21SaWdodFJhZGl1czpRfT1TZTtQKFtBLFUsUSxOXS5tYXAodWU9PlMocGFyc2VGbG9hdCh1ZSkpKSl9aWYoci51c2VFZmZlY3QoKCk9PntpZih0ZSl7Y29uc3QgU2U9KDAsQy5aKSgoKT0+e19lKCksb3QoITApfSk7bGV0IHE7cmV0dXJuIHR5cGVvZiBSZXNpemVPYnNlcnZlciE9InVuZGVmaW5lZCImJihxPW5ldyBSZXNpemVPYnNlcnZlcihfZSkscS5vYnNlcnZlKHRlKSksKCk9PntDLlouY2FuY2VsKFNlKSxxPT1udWxsfHxxLmRpc2Nvbm5lY3QoKX19fSxbXSksIVllKXJldHVybiBudWxsO2NvbnN0IEZlPShsZT09PSJDaGVja2JveCJ8fGxlPT09IlJhZGlvIikmJih0ZT09bnVsbD92b2lkIDA6dGUuY2xhc3NMaXN0LmNvbnRhaW5zKHcuQSkpO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoRS5aUCx7dmlzaWJsZTohMCxtb3Rpb25BcHBlYXI6ITAsbW90aW9uTmFtZToid2F2ZS1tb3Rpb24iLG1vdGlvbkRlYWRsaW5lOjVlMyxvbkFwcGVhckVuZDooU2UscSk9Pnt2YXIgayxNO2lmKHEuZGVhZGxpbmV8fHEucHJvcGVydHlOYW1lPT09Im9wYWNpdHkiKXtjb25zdCBBPShrPVcuY3VycmVudCk9PT1udWxsfHxrPT09dm9pZCAwP3ZvaWQgMDprLnBhcmVudEVsZW1lbnQ7KE09ai5jdXJyZW50KT09PW51bGx8fE09PT12b2lkIDB8fE0uY2FsbChqKS50aGVuKCgpPT57QT09bnVsbHx8QS5yZW1vdmUoKX0pfXJldHVybiExfX0sKFNlLHEpPT57bGV0e2NsYXNzTmFtZTprfT1TZTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KCJkaXYiLHtyZWY6KDAscy5zUSkoVyxxKSxjbGFzc05hbWU6dCgpKG1lLGsseyJ3YXZlLXF1aWNrIjpGZX0pLHN0eWxlOnFlfSl9KX07dmFyIFI9KEosbWUpPT57dmFyIHRlO2NvbnN0e2NvbXBvbmVudDpsZX09bWU7aWYobGU9PT0iQ2hlY2tib3giJiYhKCEoKHRlPUoucXVlcnlTZWxlY3RvcigiaW5wdXQiKSk9PT1udWxsfHx0ZT09PXZvaWQgMCkmJnRlLmNoZWNrZWQpKXJldHVybjtjb25zdCBjZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtjZS5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLGNlLnN0eWxlLmxlZnQ9IjBweCIsY2Uuc3R5bGUudG9wPSIwcHgiLEo9PW51bGx8fEouaW5zZXJ0QmVmb3JlKGNlLEo9PW51bGw/dm9pZCAwOkouZmlyc3RDaGlsZCk7Y29uc3QgVz0oMCx4LngpKCk7bGV0IGo9bnVsbDtmdW5jdGlvbiBEKCl7cmV0dXJuIGp9aj1XKHIuY3JlYXRlRWxlbWVudChMLE9iamVjdC5hc3NpZ24oe30sbWUse3RhcmdldDpKLHJlZ2lzdGVyVW5tb3VudDpEfSkpLGNlKX0sRz0oSixtZSx0ZSk9Pntjb25zdHt3YXZlOmxlfT1yLnVzZUNvbnRleHQoYS5FXyksWyxjZSxXXT0oMCxnLlpQKSgpLGo9KDAsbS5aKShaPT57Y29uc3QgUD1KLmN1cnJlbnQ7aWYobGUhPW51bGwmJmxlLmRpc2FibGVkfHwhUClyZXR1cm47Y29uc3QgSz1QLnF1ZXJ5U2VsZWN0b3IoYC4ke3cuQX1gKXx8UCx7c2hvd0VmZmVjdDpzZX09bGV8fHt9OyhzZXx8UikoSyx7Y2xhc3NOYW1lOm1lLHRva2VuOmNlLGNvbXBvbmVudDp0ZSxldmVudDpaLGhhc2hJZDpXfSl9KSxEPXIudXNlUmVmKG51bGwpO3JldHVybiBaPT57Qy5aLmNhbmNlbChELmN1cnJlbnQpLEQuY3VycmVudD0oMCxDLlopKCgpPT57aihaKX0pfX0sZWU9Sj0+e2NvbnN0e2NoaWxkcmVuOm1lLGRpc2FibGVkOnRlLGNvbXBvbmVudDpsZX09Six7Z2V0UHJlZml4Q2xzOmNlfT0oMCxyLnVzZUNvbnRleHQpKGEuRV8pLFc9KDAsci51c2VSZWYpKG51bGwpLGo9Y2UoIndhdmUiKSxbLERdPWQoaiksVj1HKFcsdCgpKGosRCksbGUpO2lmKHIudXNlRWZmZWN0KCgpPT57Y29uc3QgUD1XLmN1cnJlbnQ7aWYoIVB8fFAubm9kZVR5cGUhPT0xfHx0ZSlyZXR1cm47Y29uc3QgSz1zZT0+eyEoMCxpLlopKHNlLnRhcmdldCl8fCFQLmdldEF0dHJpYnV0ZXx8UC5nZXRBdHRyaWJ1dGUoImRpc2FibGVkIil8fFAuZGlzYWJsZWR8fFAuY2xhc3NOYW1lLmluY2x1ZGVzKCJkaXNhYmxlZCIpfHxQLmNsYXNzTmFtZS5pbmNsdWRlcygiLWxlYXZlIil8fFYoc2UpfTtyZXR1cm4gUC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsSywhMCksKCk9PntQLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIixLLCEwKX19LFt0ZV0pLCFyLmlzVmFsaWRFbGVtZW50KG1lKSlyZXR1cm4gbWUhPW51bGw/bWU6bnVsbDtjb25zdCBaPSgwLHMuWXIpKG1lKT8oMCxzLnNRKSgoMCxzLkM0KShtZSksVyk6VztyZXR1cm4oMCx1LlRtKShtZSx7cmVmOlp9KX19LDE3NDE1OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse0E6ZnVuY3Rpb24oKXtyZXR1cm4gbn19KTt2YXIgcj1lKDUzMTI0KTtjb25zdCBuPWAke3IuUmZ9LXdhdmUtdGFyZ2V0YH0sNDM5NDU6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDY3Mjk0KTtjb25zdCBuPXIuY3JlYXRlQ29udGV4dCh2b2lkIDApO3AuWj1ufSwzODkyNTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIFp9fSk7dmFyIHI9ZSg2NzI5NCksbj1lKDg5NzM5KSx0PWUoNDM0MCksaT1lKDk3OTM3KSxzPWUoMjE2NDApLGE9ZSg3ODg2MCksdT1lKDkzOTY3KSxjPWUubih1KSxoPWUoMjkzNzIpLGQ9ZSg2NDIxNyksbT1lKDQyNTUwKSxDPWUoOTYxNTkpLGc9ZSg1MzEyNCksdz1lKDExNTY4KSxFPWUoMTQ3NDcpLHg9ZSg4MzU1OSk7Y29uc3QgTz0oUCxLLHNlLG5lLG9lKT0+KHtiYWNrZ3JvdW5kOlAsYm9yZGVyOmAkeygwLHcuYmYpKG5lLmxpbmVXaWR0aCl9ICR7bmUubGluZVR5cGV9ICR7S31gLFtgJHtvZX0taWNvbmBdOntjb2xvcjpzZX19KSxUPVA9Pntjb25zdHtjb21wb25lbnRDbHM6Syxtb3Rpb25EdXJhdGlvblNsb3c6c2UsbWFyZ2luWFM6bmUsbWFyZ2luU006b2UsZm9udFNpemU6ZmUsZm9udFNpemVMRzpFZSxsaW5lSGVpZ2h0OlJlLGJvcmRlclJhZGl1c0xHOkJlLG1vdGlvbkVhc2VJbk91dENpcmM6WWUsd2l0aERlc2NyaXB0aW9uSWNvblNpemU6b3QsY29sb3JUZXh0OnFlLGNvbG9yVGV4dEhlYWRpbmc6X2Usd2l0aERlc2NyaXB0aW9uUGFkZGluZzpGZSxkZWZhdWx0UGFkZGluZzpTZX09UDtyZXR1cm57W0tdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwoMCxFLldmKShQKSkse3Bvc2l0aW9uOiJyZWxhdGl2ZSIsZGlzcGxheToiZmxleCIsYWxpZ25JdGVtczoiY2VudGVyIixwYWRkaW5nOlNlLHdvcmRXcmFwOiJicmVhay13b3JkIixib3JkZXJSYWRpdXM6QmUsW2AmJHtLfS1ydGxgXTp7ZGlyZWN0aW9uOiJydGwifSxbYCR7S30tY29udGVudGBdOntmbGV4OjEsbWluV2lkdGg6MH0sW2Ake0t9LWljb25gXTp7bWFyZ2luSW5saW5lRW5kOm5lLGxpbmVIZWlnaHQ6MH0sIiYtZGVzY3JpcHRpb24iOntkaXNwbGF5OiJub25lIixmb250U2l6ZTpmZSxsaW5lSGVpZ2h0OlJlfSwiJi1tZXNzYWdlIjp7Y29sb3I6X2V9LFtgJiR7S30tbW90aW9uLWxlYXZlYF06e292ZXJmbG93OiJoaWRkZW4iLG9wYWNpdHk6MSx0cmFuc2l0aW9uOmBtYXgtaGVpZ2h0ICR7c2V9ICR7WWV9LCBvcGFjaXR5ICR7c2V9ICR7WWV9LAorICAgICAgICBwYWRkaW5nLXRvcCAke3NlfSAke1llfSwgcGFkZGluZy1ib3R0b20gJHtzZX0gJHtZZX0sCisgICAgICAgIG1hcmdpbi1ib3R0b20gJHtzZX0gJHtZZX1gfSxbYCYke0t9LW1vdGlvbi1sZWF2ZS1hY3RpdmVgXTp7bWF4SGVpZ2h0OjAsbWFyZ2luQm90dG9tOiIwICFpbXBvcnRhbnQiLHBhZGRpbmdUb3A6MCxwYWRkaW5nQm90dG9tOjAsb3BhY2l0eTowfX0pLFtgJHtLfS13aXRoLWRlc2NyaXB0aW9uYF06e2FsaWduSXRlbXM6ImZsZXgtc3RhcnQiLHBhZGRpbmc6RmUsW2Ake0t9LWljb25gXTp7bWFyZ2luSW5saW5lRW5kOm9lLGZvbnRTaXplOm90LGxpbmVIZWlnaHQ6MH0sW2Ake0t9LW1lc3NhZ2VgXTp7ZGlzcGxheToiYmxvY2siLG1hcmdpbkJvdHRvbTpuZSxjb2xvcjpfZSxmb250U2l6ZTpFZX0sW2Ake0t9LWRlc2NyaXB0aW9uYF06e2Rpc3BsYXk6ImJsb2NrIixjb2xvcjpxZX19LFtgJHtLfS1iYW5uZXJgXTp7bWFyZ2luQm90dG9tOjAsYm9yZGVyOiIwICFpbXBvcnRhbnQiLGJvcmRlclJhZGl1czowfX19LFM9UD0+e2NvbnN0e2NvbXBvbmVudENsczpLLGNvbG9yU3VjY2VzczpzZSxjb2xvclN1Y2Nlc3NCb3JkZXI6bmUsY29sb3JTdWNjZXNzQmc6b2UsY29sb3JXYXJuaW5nOmZlLGNvbG9yV2FybmluZ0JvcmRlcjpFZSxjb2xvcldhcm5pbmdCZzpSZSxjb2xvckVycm9yOkJlLGNvbG9yRXJyb3JCb3JkZXI6WWUsY29sb3JFcnJvckJnOm90LGNvbG9ySW5mbzpxZSxjb2xvckluZm9Cb3JkZXI6X2UsY29sb3JJbmZvQmc6RmV9PVA7cmV0dXJue1tLXTp7IiYtc3VjY2VzcyI6TyhvZSxuZSxzZSxQLEspLCImLWluZm8iOk8oRmUsX2UscWUsUCxLKSwiJi13YXJuaW5nIjpPKFJlLEVlLGZlLFAsSyksIiYtZXJyb3IiOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxPKG90LFllLEJlLFAsSykpLHtbYCR7S30tZGVzY3JpcHRpb24gPiBwcmVgXTp7bWFyZ2luOjAscGFkZGluZzowfX0pfX19LEw9UD0+e2NvbnN0e2NvbXBvbmVudENsczpLLGljb25DbHM6c2UsbW90aW9uRHVyYXRpb25NaWQ6bmUsbWFyZ2luWFM6b2UsZm9udFNpemVJY29uOmZlLGNvbG9ySWNvbjpFZSxjb2xvckljb25Ib3ZlcjpSZX09UDtyZXR1cm57W0tdOnsiJi1hY3Rpb24iOnttYXJnaW5JbmxpbmVTdGFydDpvZX0sW2Ake0t9LWNsb3NlLWljb25gXTp7bWFyZ2luSW5saW5lU3RhcnQ6b2UscGFkZGluZzowLG92ZXJmbG93OiJoaWRkZW4iLGZvbnRTaXplOmZlLGxpbmVIZWlnaHQ6KDAsdy5iZikoZmUpLGJhY2tncm91bmRDb2xvcjoidHJhbnNwYXJlbnQiLGJvcmRlcjoibm9uZSIsb3V0bGluZToibm9uZSIsY3Vyc29yOiJwb2ludGVyIixbYCR7c2V9LWNsb3NlYF06e2NvbG9yOkVlLHRyYW5zaXRpb246YGNvbG9yICR7bmV9YCwiJjpob3ZlciI6e2NvbG9yOlJlfX19LCImLWNsb3NlLXRleHQiOntjb2xvcjpFZSx0cmFuc2l0aW9uOmBjb2xvciAke25lfWAsIiY6aG92ZXIiOntjb2xvcjpSZX19fX19LEk9UD0+KHt3aXRoRGVzY3JpcHRpb25JY29uU2l6ZTpQLmZvbnRTaXplSGVhZGluZzMsZGVmYXVsdFBhZGRpbmc6YCR7UC5wYWRkaW5nQ29udGVudFZlcnRpY2FsU019cHggMTJweGAsd2l0aERlc2NyaXB0aW9uUGFkZGluZzpgJHtQLnBhZGRpbmdNRH1weCAke1AucGFkZGluZ0NvbnRlbnRIb3Jpem9udGFsTEd9cHhgfSk7dmFyIFI9KDAseC5JJCkoIkFsZXJ0IixQPT5bVChQKSxTKFApLEwoUCldLEkpLHo9ZnVuY3Rpb24oUCxLKXt2YXIgc2U9e307Zm9yKHZhciBuZSBpbiBQKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChQLG5lKSYmSy5pbmRleE9mKG5lKTwwJiYoc2VbbmVdPVBbbmVdKTtpZihQIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIG9lPTAsbmU9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhQKTtvZTxuZS5sZW5ndGg7b2UrKylLLmluZGV4T2YobmVbb2VdKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoUCxuZVtvZV0pJiYoc2VbbmVbb2VdXT1QW25lW29lXV0pO3JldHVybiBzZX07Y29uc3QgRz17c3VjY2VzczpuLlosaW5mbzphLlosZXJyb3I6dC5aLHdhcm5pbmc6cy5afSxZPVA9Pntjb25zdHtpY29uOksscHJlZml4Q2xzOnNlLHR5cGU6bmV9PVAsb2U9R1tuZV18fG51bGw7cmV0dXJuIEs/KDAsQy53bSkoSyxyLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6YCR7c2V9LWljb25gfSxLKSwoKT0+KHtjbGFzc05hbWU6YygpKGAke3NlfS1pY29uYCxLLnByb3BzLmNsYXNzTmFtZSl9KSk6ci5jcmVhdGVFbGVtZW50KG9lLHtjbGFzc05hbWU6YCR7c2V9LWljb25gfSl9LGVlPVA9Pntjb25zdHtpc0Nsb3NhYmxlOksscHJlZml4Q2xzOnNlLGNsb3NlSWNvbjpuZSxoYW5kbGVDbG9zZTpvZSxhcmlhUHJvcHM6ZmV9PVAsRWU9bmU9PT0hMHx8bmU9PT12b2lkIDA/ci5jcmVhdGVFbGVtZW50KGkuWixudWxsKTpuZTtyZXR1cm4gSz9yLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIsT2JqZWN0LmFzc2lnbih7dHlwZToiYnV0dG9uIixvbkNsaWNrOm9lLGNsYXNzTmFtZTpgJHtzZX0tY2xvc2UtaWNvbmAsdGFiSW5kZXg6MH0sZmUpLEVlKTpudWxsfTt2YXIgbWU9ci5mb3J3YXJkUmVmKChQLEspPT57Y29uc3R7ZGVzY3JpcHRpb246c2UscHJlZml4Q2xzOm5lLG1lc3NhZ2U6b2UsYmFubmVyOmZlLGNsYXNzTmFtZTpFZSxyb290Q2xhc3NOYW1lOlJlLHN0eWxlOkJlLG9uTW91c2VFbnRlcjpZZSxvbk1vdXNlTGVhdmU6b3Qsb25DbGljazpxZSxhZnRlckNsb3NlOl9lLHNob3dJY29uOkZlLGNsb3NhYmxlOlNlLGNsb3NlVGV4dDpxLGNsb3NlSWNvbjprLGFjdGlvbjpNLGlkOkF9PVAsVT16KFAsWyJkZXNjcmlwdGlvbiIsInByZWZpeENscyIsIm1lc3NhZ2UiLCJiYW5uZXIiLCJjbGFzc05hbWUiLCJyb290Q2xhc3NOYW1lIiwic3R5bGUiLCJvbk1vdXNlRW50ZXIiLCJvbk1vdXNlTGVhdmUiLCJvbkNsaWNrIiwiYWZ0ZXJDbG9zZSIsInNob3dJY29uIiwiY2xvc2FibGUiLCJjbG9zZVRleHQiLCJjbG9zZUljb24iLCJhY3Rpb24iLCJpZCJdKSxbTixRXT1yLnVzZVN0YXRlKCExKSx1ZT1yLnVzZVJlZihudWxsKTtyLnVzZUltcGVyYXRpdmVIYW5kbGUoSywoKT0+KHtuYXRpdmVFbGVtZW50OnVlLmN1cnJlbnR9KSk7Y29uc3R7Z2V0UHJlZml4Q2xzOiQsZGlyZWN0aW9uOl8sY2xvc2FibGU6cGUsY2xvc2VJY29uOnJlLGNsYXNzTmFtZTphZSxzdHlsZTp3ZX09KDAsZy5kaikoImFsZXJ0IiksTGU9JCgiYWxlcnQiLG5lKSxbTWUsYmUsJGVdPVIoTGUpLGtlPUplPT57dmFyIGd0O1EoITApLChndD1QLm9uQ2xvc2UpPT09bnVsbHx8Z3Q9PT12b2lkIDB8fGd0LmNhbGwoUCxKZSl9LEFlPXIudXNlTWVtbygoKT0+UC50eXBlIT09dm9pZCAwP1AudHlwZTpmZT8id2FybmluZyI6ImluZm8iLFtQLnR5cGUsZmVdKSx0dD1yLnVzZU1lbW8oKCk9PnR5cGVvZiBTZT09Im9iamVjdCImJlNlLmNsb3NlSWNvbnx8cT8hMDp0eXBlb2YgU2U9PSJib29sZWFuIj9TZTprIT09ITEmJmshPT1udWxsJiZrIT09dm9pZCAwPyEwOiEhcGUsW3EsayxTZSxwZV0pLG10PWZlJiZGZT09PXZvaWQgMD8hMDpGZSx1dD1jKCkoTGUsYCR7TGV9LSR7QWV9YCx7W2Ake0xlfS13aXRoLWRlc2NyaXB0aW9uYF06ISFzZSxbYCR7TGV9LW5vLWljb25gXTohbXQsW2Ake0xlfS1iYW5uZXJgXTohIWZlLFtgJHtMZX0tcnRsYF06Xz09PSJydGwifSxhZSxFZSxSZSwkZSxiZSksRGU9KDAsZC5aKShVLHthcmlhOiEwLGRhdGE6ITB9KSxOZT1yLnVzZU1lbW8oKCk9PnR5cGVvZiBTZT09Im9iamVjdCImJlNlLmNsb3NlSWNvbj9TZS5jbG9zZUljb246cXx8KGshPT12b2lkIDA/azp0eXBlb2YgcGU9PSJvYmplY3QiJiZwZS5jbG9zZUljb24/cGUuY2xvc2VJY29uOnJlKSxbayxTZSxxLHJlXSksWGU9ci51c2VNZW1vKCgpPT57Y29uc3QgSmU9U2UhPW51bGw/U2U6cGU7aWYodHlwZW9mIEplPT0ib2JqZWN0Iil7Y29uc3R7Y2xvc2VJY29uOmd0fT1KZTtyZXR1cm4geihKZSxbImNsb3NlSWNvbiJdKX1yZXR1cm57fX0sW1NlLHBlXSk7cmV0dXJuIE1lKHIuY3JlYXRlRWxlbWVudChoLlpQLHt2aXNpYmxlOiFOLG1vdGlvbk5hbWU6YCR7TGV9LW1vdGlvbmAsbW90aW9uQXBwZWFyOiExLG1vdGlvbkVudGVyOiExLG9uTGVhdmVTdGFydDpKZT0+KHttYXhIZWlnaHQ6SmUub2Zmc2V0SGVpZ2h0fSksb25MZWF2ZUVuZDpfZX0sKEplLGd0KT0+e2xldHtjbGFzc05hbWU6ZGUsc3R5bGU6V2V9PUplO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoImRpdiIsT2JqZWN0LmFzc2lnbih7aWQ6QSxyZWY6KDAsbS5zUSkodWUsZ3QpLCJkYXRhLXNob3ciOiFOLGNsYXNzTmFtZTpjKCkodXQsZGUpLHN0eWxlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHdlKSxCZSksV2UpLG9uTW91c2VFbnRlcjpZZSxvbk1vdXNlTGVhdmU6b3Qsb25DbGljazpxZSxyb2xlOiJhbGVydCJ9LERlKSxtdD9yLmNyZWF0ZUVsZW1lbnQoWSx7ZGVzY3JpcHRpb246c2UsaWNvbjpQLmljb24scHJlZml4Q2xzOkxlLHR5cGU6QWV9KTpudWxsLHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmAke0xlfS1jb250ZW50YH0sb2U/ci5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YCR7TGV9LW1lc3NhZ2VgfSxvZSk6bnVsbCxzZT9yLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpgJHtMZX0tZGVzY3JpcHRpb25gfSxzZSk6bnVsbCksTT9yLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpgJHtMZX0tYWN0aW9uYH0sTSk6bnVsbCxyLmNyZWF0ZUVsZW1lbnQoZWUse2lzQ2xvc2FibGU6dHQscHJlZml4Q2xzOkxlLGNsb3NlSWNvbjpOZSxoYW5kbGVDbG9zZTprZSxhcmlhUHJvcHM6WGV9KSl9KSl9KSx0ZT1lKDE1NjcxKSxsZT1lKDQzMTQ0KSxjZT1lKDUzNjQwKSxXPWUoNjAxMzYpLEQ9ZnVuY3Rpb24oUCl7ZnVuY3Rpb24gSygpe3ZhciBzZTtyZXR1cm4oMCx0ZS5aKSh0aGlzLEspLHNlPSgwLGNlLlopKHRoaXMsSyxhcmd1bWVudHMpLHNlLnN0YXRlPXtlcnJvcjp2b2lkIDAsaW5mbzp7Y29tcG9uZW50U3RhY2s6IiJ9fSxzZX1yZXR1cm4oMCxXLlopKEssUCksKDAsbGUuWikoSyxbe2tleToiY29tcG9uZW50RGlkQ2F0Y2giLHZhbHVlOmZ1bmN0aW9uKG5lLG9lKXt0aGlzLnNldFN0YXRlKHtlcnJvcjpuZSxpbmZvOm9lfSl9fSx7a2V5OiJyZW5kZXIiLHZhbHVlOmZ1bmN0aW9uKCl7Y29uc3R7bWVzc2FnZTpuZSxkZXNjcmlwdGlvbjpvZSxpZDpmZSxjaGlsZHJlbjpFZX09dGhpcy5wcm9wcyx7ZXJyb3I6UmUsaW5mbzpCZX09dGhpcy5zdGF0ZSxZZT0oQmU9PW51bGw/dm9pZCAwOkJlLmNvbXBvbmVudFN0YWNrKXx8bnVsbCxvdD10eXBlb2YgbmU9PSJ1bmRlZmluZWQiPyhSZXx8IiIpLnRvU3RyaW5nKCk6bmUscWU9dHlwZW9mIG9lPT0idW5kZWZpbmVkIj9ZZTpvZTtyZXR1cm4gUmU/ci5jcmVhdGVFbGVtZW50KG1lLHtpZDpmZSx0eXBlOiJlcnJvciIsbWVzc2FnZTpvdCxkZXNjcmlwdGlvbjpyLmNyZWF0ZUVsZW1lbnQoInByZSIse3N0eWxlOntmb250U2l6ZToiMC45ZW0iLG92ZXJmbG93WDoiYXV0byJ9fSxxZSl9KTpFZX19XSl9KHIuQ29tcG9uZW50KTtjb25zdCBWPW1lO1YuRXJyb3JCb3VuZGFyeT1EO3ZhciBaPVZ9LDY2OTY4OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse0o6ZnVuY3Rpb24oKXtyZXR1cm4gbn19KTt2YXIgcj1lKDY3Mjk0KTtjb25zdCBuPXIuY3JlYXRlQ29udGV4dCh7fSksdD1yLmNyZWF0ZUNvbnRleHQoe21lc3NhZ2U6e30sbm90aWZpY2F0aW9uOnt9LG1vZGFsOnt9fSk7dmFyIGk9bnVsbH0sMzM2NzE6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7RG46ZnVuY3Rpb24oKXtyZXR1cm4gaH0sYUc6ZnVuY3Rpb24oKXtyZXR1cm4gYX0saFU6ZnVuY3Rpb24oKXtyZXR1cm4gbX0sbng6ZnVuY3Rpb24oKXtyZXR1cm4gdX19KTt2YXIgcj1lKDc0OTAyKSxuPWUoNjcyOTQpLHQ9ZSg5NjE1OSksaT1lKDg3OTYpO2NvbnN0IHM9L15bXHU0RTAwLVx1OUZBNV17Mn0kLyxhPXMudGVzdC5iaW5kKHMpO2Z1bmN0aW9uIHUoTyl7cmV0dXJuIE89PT0iZGFuZ2VyIj97ZGFuZ2VyOiEwfTp7dHlwZTpPfX1mdW5jdGlvbiBjKE8pe3JldHVybiB0eXBlb2YgTz09InN0cmluZyJ9ZnVuY3Rpb24gaChPKXtyZXR1cm4gTz09PSJ0ZXh0Inx8Tz09PSJsaW5rIn1mdW5jdGlvbiBkKE8sVCl7aWYoTz09bnVsbClyZXR1cm47Y29uc3QgUz1UPyIgIjoiIjtyZXR1cm4gdHlwZW9mIE8hPSJzdHJpbmciJiZ0eXBlb2YgTyE9Im51bWJlciImJmMoTy50eXBlKSYmYShPLnByb3BzLmNoaWxkcmVuKT8oMCx0LlRtKShPLHtjaGlsZHJlbjpPLnByb3BzLmNoaWxkcmVuLnNwbGl0KCIiKS5qb2luKFMpfSk6YyhPKT9hKE8pP24uY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCxPLnNwbGl0KCIiKS5qb2luKFMpKTpuLmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwsTyk6KDAsdC5NMikoTyk/bi5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLE8pOk99ZnVuY3Rpb24gbShPLFQpe2xldCBTPSExO2NvbnN0IEw9W107cmV0dXJuIG4uQ2hpbGRyZW4uZm9yRWFjaChPLEk9Pntjb25zdCBSPXR5cGVvZiBJLHo9Uj09PSJzdHJpbmcifHxSPT09Im51bWJlciI7aWYoUyYmeil7Y29uc3QgRz1MLmxlbmd0aC0xLFk9TFtHXTtMW0ddPWAke1l9JHtJfWB9ZWxzZSBMLnB1c2goSSk7Uz16fSksbi5DaGlsZHJlbi5tYXAoTCxJPT5kKEksVCkpfWNvbnN0IEM9bnVsbCxnPW51bGwsdz1udWxsLEU9bnVsbCx4PVsiZGVmYXVsdCIsInByaW1hcnkiLCJkYW5nZXIiXS5jb25jYXQoKDAsci5aKShpLmkpKX0sODM2MjI6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WlA6ZnVuY3Rpb24oKXtyZXR1cm4gZ3R9fSk7dmFyIHI9ZSg2NzI5NCksbj1lKDkzOTY3KSx0PWUubihuKSxpPWUoOTg0MjMpLHM9ZSg0MjU1MCksYT1lKDQ1MzUzKSx1PWUoNTMxMjQpLGM9ZSg5ODg2NiksaD1lKDk4Njc1KSxkPWUoNDE3MyksbT1lKDI5NjkxKSxDPWZ1bmN0aW9uKGRlLFdlKXt2YXIgU3Q9e307Zm9yKHZhciBjdCBpbiBkZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZGUsY3QpJiZXZS5pbmRleE9mKGN0KTwwJiYoU3RbY3RdPWRlW2N0XSk7aWYoZGUhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgT2U9MCxjdD1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGRlKTtPZTxjdC5sZW5ndGg7T2UrKylXZS5pbmRleE9mKGN0W09lXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGRlLGN0W09lXSkmJihTdFtjdFtPZV1dPWRlW2N0W09lXV0pO3JldHVybiBTdH07Y29uc3QgZz1yLmNyZWF0ZUNvbnRleHQodm9pZCAwKTt2YXIgRT1kZT0+e2NvbnN0e2dldFByZWZpeENsczpXZSxkaXJlY3Rpb246U3R9PXIudXNlQ29udGV4dCh1LkVfKSx7cHJlZml4Q2xzOmN0LHNpemU6T2UsY2xhc3NOYW1lOkdlfT1kZSxodD1DKGRlLFsicHJlZml4Q2xzIiwic2l6ZSIsImNsYXNzTmFtZSJdKSx6ZT1XZSgiYnRuLWdyb3VwIixjdCksWywsUWVdPSgwLG0uWlApKCkscHQ9ci51c2VNZW1vKCgpPT57c3dpdGNoKE9lKXtjYXNlImxhcmdlIjpyZXR1cm4ibGciO2Nhc2Uic21hbGwiOnJldHVybiJzbSI7ZGVmYXVsdDpyZXR1cm4iIn19LFtPZV0pLGJ0PXQoKSh6ZSx7W2Ake3plfS0ke3B0fWBdOnB0LFtgJHt6ZX0tcnRsYF06U3Q9PT0icnRsIn0sR2UsUWUpO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoZy5Qcm92aWRlcix7dmFsdWU6T2V9LHIuY3JlYXRlRWxlbWVudCgiZGl2IixPYmplY3QuYXNzaWduKHt9LGh0LHtjbGFzc05hbWU6YnR9KSkpfSx4PWUoMzM2NzEpLE89ZSg1MDg4OCksVD1lKDI5MzcyKSxMPSgwLHIuZm9yd2FyZFJlZikoKGRlLFdlKT0+e2NvbnN0e2NsYXNzTmFtZTpTdCxzdHlsZTpjdCxjaGlsZHJlbjpPZSxwcmVmaXhDbHM6R2V9PWRlLGh0PXQoKShgJHtHZX0taWNvbmAsU3QpO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtyZWY6V2UsY2xhc3NOYW1lOmh0LHN0eWxlOmN0fSxPZSl9KTtjb25zdCBJPSgwLHIuZm9yd2FyZFJlZikoKGRlLFdlKT0+e2NvbnN0e3ByZWZpeENsczpTdCxjbGFzc05hbWU6Y3Qsc3R5bGU6T2UsaWNvbkNsYXNzTmFtZTpHZX09ZGUsaHQ9dCgpKGAke1N0fS1sb2FkaW5nLWljb25gLGN0KTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KEwse3ByZWZpeENsczpTdCxjbGFzc05hbWU6aHQsc3R5bGU6T2UscmVmOldlfSxyLmNyZWF0ZUVsZW1lbnQoTy5aLHtjbGFzc05hbWU6R2V9KSl9KSxSPSgpPT4oe3dpZHRoOjAsb3BhY2l0eTowLHRyYW5zZm9ybToic2NhbGUoMCkifSksej1kZT0+KHt3aWR0aDpkZS5zY3JvbGxXaWR0aCxvcGFjaXR5OjEsdHJhbnNmb3JtOiJzY2FsZSgxKSJ9KTt2YXIgWT1kZT0+e2NvbnN0e3ByZWZpeENsczpXZSxsb2FkaW5nOlN0LGV4aXN0SWNvbjpjdCxjbGFzc05hbWU6T2Usc3R5bGU6R2UsbW91bnQ6aHR9PWRlLHplPSEhU3Q7cmV0dXJuIGN0P3IuY3JlYXRlRWxlbWVudChJLHtwcmVmaXhDbHM6V2UsY2xhc3NOYW1lOk9lLHN0eWxlOkdlfSk6ci5jcmVhdGVFbGVtZW50KFQuWlAse3Zpc2libGU6emUsbW90aW9uTmFtZTpgJHtXZX0tbG9hZGluZy1pY29uLW1vdGlvbmAsbW90aW9uQXBwZWFyOiFodCxtb3Rpb25FbnRlcjohaHQsbW90aW9uTGVhdmU6IWh0LHJlbW92ZU9uTGVhdmU6ITAsb25BcHBlYXJTdGFydDpSLG9uQXBwZWFyQWN0aXZlOnosb25FbnRlclN0YXJ0OlIsb25FbnRlckFjdGl2ZTp6LG9uTGVhdmVTdGFydDp6LG9uTGVhdmVBY3RpdmU6Un0sKFFlLHB0KT0+e2xldHtjbGFzc05hbWU6YnQsc3R5bGU6SXR9PVFlO2NvbnN0IFR0PU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxHZSksSXQpO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoSSx7cHJlZml4Q2xzOldlLGNsYXNzTmFtZTp0KCkoT2UsYnQpLHN0eWxlOlR0LHJlZjpwdH0pfSl9LGVlPWUoMTE1NjgpLEo9ZSgxNDc0NyksbWU9ZSg4Nzk2KSx0ZT1lKDgzMjYyKSxsZT1lKDgzNTU5KTtjb25zdCBjZT0oZGUsV2UpPT4oe1tgPiBzcGFuLCA+ICR7ZGV9YF06eyImOm5vdCg6bGFzdC1jaGlsZCkiOntbYCYsICYgPiAke2RlfWBdOnsiJjpub3QoOmRpc2FibGVkKSI6e2JvcmRlcklubGluZUVuZENvbG9yOldlfX19LCImOm5vdCg6Zmlyc3QtY2hpbGQpIjp7W2AmLCAmID4gJHtkZX1gXTp7IiY6bm90KDpkaXNhYmxlZCkiOntib3JkZXJJbmxpbmVTdGFydENvbG9yOldlfX19fX0pO3ZhciBqPWRlPT57Y29uc3R7Y29tcG9uZW50Q2xzOldlLGZvbnRTaXplOlN0LGxpbmVXaWR0aDpjdCxncm91cEJvcmRlckNvbG9yOk9lLGNvbG9yRXJyb3JIb3ZlcjpHZX09ZGU7cmV0dXJue1tgJHtXZX0tZ3JvdXBgXTpbe3Bvc2l0aW9uOiJyZWxhdGl2ZSIsZGlzcGxheToiaW5saW5lLWZsZXgiLFtgPiBzcGFuLCA+ICR7V2V9YF06eyImOm5vdCg6bGFzdC1jaGlsZCkiOntbYCYsICYgPiAke1dlfWBdOntib3JkZXJTdGFydEVuZFJhZGl1czowLGJvcmRlckVuZEVuZFJhZGl1czowfX0sIiY6bm90KDpmaXJzdC1jaGlsZCkiOnttYXJnaW5JbmxpbmVTdGFydDpkZS5jYWxjKGN0KS5tdWwoLTEpLmVxdWFsKCksW2AmLCAmID4gJHtXZX1gXTp7Ym9yZGVyU3RhcnRTdGFydFJhZGl1czowLGJvcmRlckVuZFN0YXJ0UmFkaXVzOjB9fX0sW1dlXTp7cG9zaXRpb246InJlbGF0aXZlIix6SW5kZXg6MSwiJjpob3ZlciwgJjpmb2N1cywgJjphY3RpdmUiOnt6SW5kZXg6Mn0sIiZbZGlzYWJsZWRdIjp7ekluZGV4OjB9fSxbYCR7V2V9LWljb24tb25seWBdOntmb250U2l6ZTpTdH19LGNlKGAke1dlfS1wcmltYXJ5YCxPZSksY2UoYCR7V2V9LWRhbmdlcmAsR2UpXX19LEQ9ZSgxMTYxNiksVj1lKDMyNjk1KSxaPWUoNTE3MzQpLFA9ZSg0MjY0Mik7Y29uc3QgSz1kZT0+e2NvbnN0e3BhZGRpbmdJbmxpbmU6V2Usb25seUljb25TaXplOlN0fT1kZTtyZXR1cm4oMCx0ZS5JWCkoZGUse2J1dHRvblBhZGRpbmdIb3Jpem9udGFsOldlLGJ1dHRvblBhZGRpbmdWZXJ0aWNhbDowLGJ1dHRvbkljb25Pbmx5Rm9udFNpemU6U3R9KX0sc2U9ZGU9Pnt2YXIgV2UsU3QsY3QsT2UsR2UsaHQ7Y29uc3QgemU9KFdlPWRlLmNvbnRlbnRGb250U2l6ZSkhPT1udWxsJiZXZSE9PXZvaWQgMD9XZTpkZS5mb250U2l6ZSxRZT0oU3Q9ZGUuY29udGVudEZvbnRTaXplU00pIT09bnVsbCYmU3QhPT12b2lkIDA/U3Q6ZGUuZm9udFNpemUscHQ9KGN0PWRlLmNvbnRlbnRGb250U2l6ZUxHKSE9PW51bGwmJmN0IT09dm9pZCAwP2N0OmRlLmZvbnRTaXplTEcsYnQ9KE9lPWRlLmNvbnRlbnRMaW5lSGVpZ2h0KSE9PW51bGwmJk9lIT09dm9pZCAwP09lOigwLFouRCkoemUpLEl0PShHZT1kZS5jb250ZW50TGluZUhlaWdodFNNKSE9PW51bGwmJkdlIT09dm9pZCAwP0dlOigwLFouRCkoUWUpLFR0PShodD1kZS5jb250ZW50TGluZUhlaWdodExHKSE9PW51bGwmJmh0IT09dm9pZCAwP2h0OigwLFouRCkocHQpLFh0PSgwLFYuVSkobmV3IEQueTkoZGUuY29sb3JCZ1NvbGlkKSwiI2ZmZiIpPyIjMDAwIjoiI2ZmZiIsZm49bWUuaS5yZWR1Y2UoKG5uLG9uKT0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG5uKSx7W2Ake29ufVNoYWRvd0NvbG9yYF06YDAgJHsoMCxlZS5iZikoZGUuY29udHJvbE91dGxpbmVXaWR0aCl9IDAgJHsoMCxQLlopKGRlW2Ake29ufTFgXSxkZS5jb2xvckJnQ29udGFpbmVyKX1gfSkse30pO3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZm4pLHtmb250V2VpZ2h0OjQwMCxkZWZhdWx0U2hhZG93OmAwICR7ZGUuY29udHJvbE91dGxpbmVXaWR0aH1weCAwICR7ZGUuY29udHJvbFRtcE91dGxpbmV9YCxwcmltYXJ5U2hhZG93OmAwICR7ZGUuY29udHJvbE91dGxpbmVXaWR0aH1weCAwICR7ZGUuY29udHJvbE91dGxpbmV9YCxkYW5nZXJTaGFkb3c6YDAgJHtkZS5jb250cm9sT3V0bGluZVdpZHRofXB4IDAgJHtkZS5jb2xvckVycm9yT3V0bGluZX1gLHByaW1hcnlDb2xvcjpkZS5jb2xvclRleHRMaWdodFNvbGlkLGRhbmdlckNvbG9yOmRlLmNvbG9yVGV4dExpZ2h0U29saWQsYm9yZGVyQ29sb3JEaXNhYmxlZDpkZS5jb2xvckJvcmRlcixkZWZhdWx0R2hvc3RDb2xvcjpkZS5jb2xvckJnQ29udGFpbmVyLGdob3N0Qmc6InRyYW5zcGFyZW50IixkZWZhdWx0R2hvc3RCb3JkZXJDb2xvcjpkZS5jb2xvckJnQ29udGFpbmVyLHBhZGRpbmdJbmxpbmU6ZGUucGFkZGluZ0NvbnRlbnRIb3Jpem9udGFsLWRlLmxpbmVXaWR0aCxwYWRkaW5nSW5saW5lTEc6ZGUucGFkZGluZ0NvbnRlbnRIb3Jpem9udGFsLWRlLmxpbmVXaWR0aCxwYWRkaW5nSW5saW5lU006OC1kZS5saW5lV2lkdGgsb25seUljb25TaXplOiJpbmhlcml0Iixvbmx5SWNvblNpemVTTToiaW5oZXJpdCIsb25seUljb25TaXplTEc6ImluaGVyaXQiLGdyb3VwQm9yZGVyQ29sb3I6ZGUuY29sb3JQcmltYXJ5SG92ZXIsbGlua0hvdmVyQmc6InRyYW5zcGFyZW50Iix0ZXh0VGV4dENvbG9yOmRlLmNvbG9yVGV4dCx0ZXh0VGV4dEhvdmVyQ29sb3I6ZGUuY29sb3JUZXh0LHRleHRUZXh0QWN0aXZlQ29sb3I6ZGUuY29sb3JUZXh0LHRleHRIb3ZlckJnOmRlLmNvbG9yRmlsbFRlcnRpYXJ5LGRlZmF1bHRDb2xvcjpkZS5jb2xvclRleHQsZGVmYXVsdEJnOmRlLmNvbG9yQmdDb250YWluZXIsZGVmYXVsdEJvcmRlckNvbG9yOmRlLmNvbG9yQm9yZGVyLGRlZmF1bHRCb3JkZXJDb2xvckRpc2FibGVkOmRlLmNvbG9yQm9yZGVyLGRlZmF1bHRIb3ZlckJnOmRlLmNvbG9yQmdDb250YWluZXIsZGVmYXVsdEhvdmVyQ29sb3I6ZGUuY29sb3JQcmltYXJ5SG92ZXIsZGVmYXVsdEhvdmVyQm9yZGVyQ29sb3I6ZGUuY29sb3JQcmltYXJ5SG92ZXIsZGVmYXVsdEFjdGl2ZUJnOmRlLmNvbG9yQmdDb250YWluZXIsZGVmYXVsdEFjdGl2ZUNvbG9yOmRlLmNvbG9yUHJpbWFyeUFjdGl2ZSxkZWZhdWx0QWN0aXZlQm9yZGVyQ29sb3I6ZGUuY29sb3JQcmltYXJ5QWN0aXZlLHNvbGlkVGV4dENvbG9yOlh0LGNvbnRlbnRGb250U2l6ZTp6ZSxjb250ZW50Rm9udFNpemVTTTpRZSxjb250ZW50Rm9udFNpemVMRzpwdCxjb250ZW50TGluZUhlaWdodDpidCxjb250ZW50TGluZUhlaWdodFNNOkl0LGNvbnRlbnRMaW5lSGVpZ2h0TEc6VHQscGFkZGluZ0Jsb2NrOk1hdGgubWF4KChkZS5jb250cm9sSGVpZ2h0LXplKmJ0KS8yLWRlLmxpbmVXaWR0aCwwKSxwYWRkaW5nQmxvY2tTTTpNYXRoLm1heCgoZGUuY29udHJvbEhlaWdodFNNLVFlKkl0KS8yLWRlLmxpbmVXaWR0aCwwKSxwYWRkaW5nQmxvY2tMRzpNYXRoLm1heCgoZGUuY29udHJvbEhlaWdodExHLXB0KlR0KS8yLWRlLmxpbmVXaWR0aCwwKX0pfSxuZT1kZT0+e2NvbnN0e2NvbXBvbmVudENsczpXZSxpY29uQ2xzOlN0LGZvbnRXZWlnaHQ6Y3Qsb3BhY2l0eUxvYWRpbmc6T2UsbW90aW9uRHVyYXRpb25TbG93OkdlLG1vdGlvbkVhc2VJbk91dDpodCxtYXJnaW5YUzp6ZSxjYWxjOlFlfT1kZTtyZXR1cm57W1dlXTp7b3V0bGluZToibm9uZSIscG9zaXRpb246InJlbGF0aXZlIixkaXNwbGF5OiJpbmxpbmUtZmxleCIsZ2FwOmRlLm1hcmdpblhTLGFsaWduSXRlbXM6ImNlbnRlciIsanVzdGlmeUNvbnRlbnQ6ImNlbnRlciIsZm9udFdlaWdodDpjdCx3aGl0ZVNwYWNlOiJub3dyYXAiLHRleHRBbGlnbjoiY2VudGVyIixiYWNrZ3JvdW5kSW1hZ2U6Im5vbmUiLGJhY2tncm91bmQ6InRyYW5zcGFyZW50Iixib3JkZXI6YCR7KDAsZWUuYmYpKGRlLmxpbmVXaWR0aCl9ICR7ZGUubGluZVR5cGV9IHRyYW5zcGFyZW50YCxjdXJzb3I6InBvaW50ZXIiLHRyYW5zaXRpb246YGFsbCAke2RlLm1vdGlvbkR1cmF0aW9uTWlkfSAke2RlLm1vdGlvbkVhc2VJbk91dH1gLHVzZXJTZWxlY3Q6Im5vbmUiLHRvdWNoQWN0aW9uOiJtYW5pcHVsYXRpb24iLGNvbG9yOmRlLmNvbG9yVGV4dCwiJjpkaXNhYmxlZCA+ICoiOntwb2ludGVyRXZlbnRzOiJub25lIn0sW2Ake1dlfS1pY29uID4gc3ZnYF06KDAsSi5SbykoKSwiPiBhIjp7Y29sb3I6ImN1cnJlbnRDb2xvciJ9LCImOm5vdCg6ZGlzYWJsZWQpIjooMCxKLlF5KShkZSksW2AmJHtXZX0tdHdvLWNoaW5lc2UtY2hhcnM6OmZpcnN0LWxldHRlcmBdOntsZXR0ZXJTcGFjaW5nOiIwLjM0ZW0ifSxbYCYke1dlfS10d28tY2hpbmVzZS1jaGFycyA+ICo6bm90KCR7U3R9KWBdOnttYXJnaW5JbmxpbmVFbmQ6Ii0wLjM0ZW0iLGxldHRlclNwYWNpbmc6IjAuMzRlbSJ9LFtgJiR7V2V9LWljb24tb25seWBdOntwYWRkaW5nSW5saW5lOjAsW2AmJHtXZX0tY29tcGFjdC1pdGVtYF06e2ZsZXg6Im5vbmUifSxbYCYke1dlfS1yb3VuZGBdOnt3aWR0aDoiYXV0byJ9fSxbYCYke1dlfS1sb2FkaW5nYF06e29wYWNpdHk6T2UsY3Vyc29yOiJkZWZhdWx0In0sW2Ake1dlfS1sb2FkaW5nLWljb25gXTp7dHJhbnNpdGlvbjpbIndpZHRoIiwib3BhY2l0eSIsIm1hcmdpbiJdLm1hcChwdD0+YCR7cHR9ICR7R2V9ICR7aHR9YCkuam9pbigiLCIpfSxbYCY6bm90KCR7V2V9LWljb24tZW5kKWBdOntbYCR7V2V9LWxvYWRpbmctaWNvbi1tb3Rpb25gXTp7IiYtYXBwZWFyLXN0YXJ0LCAmLWVudGVyLXN0YXJ0Ijp7bWFyZ2luSW5saW5lRW5kOlFlKHplKS5tdWwoLTEpLmVxdWFsKCl9LCImLWFwcGVhci1hY3RpdmUsICYtZW50ZXItYWN0aXZlIjp7bWFyZ2luSW5saW5lRW5kOjB9LCImLWxlYXZlLXN0YXJ0Ijp7bWFyZ2luSW5saW5lRW5kOjB9LCImLWxlYXZlLWFjdGl2ZSI6e21hcmdpbklubGluZUVuZDpRZSh6ZSkubXVsKC0xKS5lcXVhbCgpfX19LCImLWljb24tZW5kIjp7ZmxleERpcmVjdGlvbjoicm93LXJldmVyc2UiLFtgJHtXZX0tbG9hZGluZy1pY29uLW1vdGlvbmBdOnsiJi1hcHBlYXItc3RhcnQsICYtZW50ZXItc3RhcnQiOnttYXJnaW5JbmxpbmVTdGFydDpRZSh6ZSkubXVsKC0xKS5lcXVhbCgpfSwiJi1hcHBlYXItYWN0aXZlLCAmLWVudGVyLWFjdGl2ZSI6e21hcmdpbklubGluZVN0YXJ0OjB9LCImLWxlYXZlLXN0YXJ0Ijp7bWFyZ2luSW5saW5lU3RhcnQ6MH0sIiYtbGVhdmUtYWN0aXZlIjp7bWFyZ2luSW5saW5lU3RhcnQ6UWUoemUpLm11bCgtMSkuZXF1YWwoKX19fX19fSxvZT0oZGUsV2UsU3QpPT4oe1tgJjpub3QoOmRpc2FibGVkKTpub3QoJHtkZX0tZGlzYWJsZWQpYF06eyImOmhvdmVyIjpXZSwiJjphY3RpdmUiOlN0fX0pLGZlPWRlPT4oe21pbldpZHRoOmRlLmNvbnRyb2xIZWlnaHQscGFkZGluZ0lubGluZVN0YXJ0OjAscGFkZGluZ0lubGluZUVuZDowLGJvcmRlclJhZGl1czoiNTAlIn0pLEVlPWRlPT4oe2JvcmRlclJhZGl1czpkZS5jb250cm9sSGVpZ2h0LHBhZGRpbmdJbmxpbmVTdGFydDpkZS5jYWxjKGRlLmNvbnRyb2xIZWlnaHQpLmRpdigyKS5lcXVhbCgpLHBhZGRpbmdJbmxpbmVFbmQ6ZGUuY2FsYyhkZS5jb250cm9sSGVpZ2h0KS5kaXYoMikuZXF1YWwoKX0pLFJlPWRlPT4oe2N1cnNvcjoibm90LWFsbG93ZWQiLGJvcmRlckNvbG9yOmRlLmJvcmRlckNvbG9yRGlzYWJsZWQsY29sb3I6ZGUuY29sb3JUZXh0RGlzYWJsZWQsYmFja2dyb3VuZDpkZS5jb2xvckJnQ29udGFpbmVyRGlzYWJsZWQsYm94U2hhZG93OiJub25lIn0pLEJlPShkZSxXZSxTdCxjdCxPZSxHZSxodCx6ZSk9Pih7W2AmJHtkZX0tYmFja2dyb3VuZC1naG9zdGBdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7Y29sb3I6U3R8fHZvaWQgMCxiYWNrZ3JvdW5kOldlLGJvcmRlckNvbG9yOmN0fHx2b2lkIDAsYm94U2hhZG93OiJub25lIn0sb2UoZGUsT2JqZWN0LmFzc2lnbih7YmFja2dyb3VuZDpXZX0saHQpLE9iamVjdC5hc3NpZ24oe2JhY2tncm91bmQ6V2V9LHplKSkpLHsiJjpkaXNhYmxlZCI6e2N1cnNvcjoibm90LWFsbG93ZWQiLGNvbG9yOk9lfHx2b2lkIDAsYm9yZGVyQ29sb3I6R2V8fHZvaWQgMH19KX0pLFllPWRlPT4oe1tgJjpkaXNhYmxlZCwgJiR7ZGUuY29tcG9uZW50Q2xzfS1kaXNhYmxlZGBdOk9iamVjdC5hc3NpZ24oe30sUmUoZGUpKX0pLG90PWRlPT4oe1tgJjpkaXNhYmxlZCwgJiR7ZGUuY29tcG9uZW50Q2xzfS1kaXNhYmxlZGBdOntjdXJzb3I6Im5vdC1hbGxvd2VkIixjb2xvcjpkZS5jb2xvclRleHREaXNhYmxlZH19KSxxZT0oZGUsV2UsU3QsY3QpPT57Y29uc3QgR2U9Y3QmJlsibGluayIsInRleHQiXS5pbmNsdWRlcyhjdCk/b3Q6WWU7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxHZShkZSkpLG9lKGRlLmNvbXBvbmVudENscyxXZSxTdCkpfSxfZT0oZGUsV2UsU3QsY3QsT2UpPT4oe1tgJiR7ZGUuY29tcG9uZW50Q2xzfS12YXJpYW50LXNvbGlkYF06T2JqZWN0LmFzc2lnbih7Y29sb3I6V2UsYmFja2dyb3VuZDpTdH0scWUoZGUsY3QsT2UpKX0pLEZlPShkZSxXZSxTdCxjdCxPZSk9Pih7W2AmJHtkZS5jb21wb25lbnRDbHN9LXZhcmlhbnQtb3V0bGluZWQsICYke2RlLmNvbXBvbmVudENsc30tdmFyaWFudC1kYXNoZWRgXTpPYmplY3QuYXNzaWduKHtib3JkZXJDb2xvcjpXZSxiYWNrZ3JvdW5kOlN0fSxxZShkZSxjdCxPZSkpfSksU2U9ZGU9Pih7W2AmJHtkZS5jb21wb25lbnRDbHN9LXZhcmlhbnQtZGFzaGVkYF06e2JvcmRlclN0eWxlOiJkYXNoZWQifX0pLHE9KGRlLFdlLFN0LGN0KT0+KHtbYCYke2RlLmNvbXBvbmVudENsc30tdmFyaWFudC1maWxsZWRgXTpPYmplY3QuYXNzaWduKHtib3hTaGFkb3c6Im5vbmUiLGJhY2tncm91bmQ6V2V9LHFlKGRlLFN0LGN0KSl9KSxrPShkZSxXZSxTdCxjdCxPZSk9Pih7W2AmJHtkZS5jb21wb25lbnRDbHN9LXZhcmlhbnQtJHtTdH1gXTpPYmplY3QuYXNzaWduKHtjb2xvcjpXZSxib3hTaGFkb3c6Im5vbmUifSxxZShkZSxjdCxPZSxTdCkpfSksTT1kZT0+e2NvbnN0e2NvbXBvbmVudENsczpXZX09ZGU7cmV0dXJuIG1lLmkucmVkdWNlKChTdCxjdCk9Pntjb25zdCBPZT1kZVtgJHtjdH02YF0sR2U9ZGVbYCR7Y3R9MWBdLGh0PWRlW2Ake2N0fTVgXSx6ZT1kZVtgJHtjdH0yYF0sUWU9ZGVbYCR7Y3R9M2BdLHB0PWRlW2Ake2N0fTdgXTtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LFN0KSx7W2AmJHtXZX0tY29sb3ItJHtjdH1gXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7Y29sb3I6T2UsYm94U2hhZG93OmRlW2Ake2N0fVNoYWRvd0NvbG9yYF19LF9lKGRlLGRlLmNvbG9yVGV4dExpZ2h0U29saWQsT2Use2JhY2tncm91bmQ6aHR9LHtiYWNrZ3JvdW5kOnB0fSkpLEZlKGRlLE9lLGRlLmNvbG9yQmdDb250YWluZXIse2NvbG9yOmh0LGJvcmRlckNvbG9yOmh0LGJhY2tncm91bmQ6ZGUuY29sb3JCZ0NvbnRhaW5lcn0se2NvbG9yOnB0LGJvcmRlckNvbG9yOnB0LGJhY2tncm91bmQ6ZGUuY29sb3JCZ0NvbnRhaW5lcn0pKSxTZShkZSkpLHEoZGUsR2Use2JhY2tncm91bmQ6emV9LHtiYWNrZ3JvdW5kOlFlfSkpLGsoZGUsT2UsImxpbmsiLHtjb2xvcjpodH0se2NvbG9yOnB0fSkpLGsoZGUsT2UsInRleHQiLHtjb2xvcjpodCxiYWNrZ3JvdW5kOkdlfSx7Y29sb3I6cHQsYmFja2dyb3VuZDpRZX0pKX0pfSx7fSl9LEE9ZGU9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7Y29sb3I6ZGUuZGVmYXVsdENvbG9yLGJveFNoYWRvdzpkZS5kZWZhdWx0U2hhZG93fSxfZShkZSxkZS5zb2xpZFRleHRDb2xvcixkZS5jb2xvckJnU29saWQse2NvbG9yOmRlLnNvbGlkVGV4dENvbG9yLGJhY2tncm91bmQ6ZGUuY29sb3JCZ1NvbGlkSG92ZXJ9LHtjb2xvcjpkZS5zb2xpZFRleHRDb2xvcixiYWNrZ3JvdW5kOmRlLmNvbG9yQmdTb2xpZEFjdGl2ZX0pKSxTZShkZSkpLHEoZGUsZGUuY29sb3JGaWxsVGVydGlhcnkse2JhY2tncm91bmQ6ZGUuY29sb3JGaWxsU2Vjb25kYXJ5fSx7YmFja2dyb3VuZDpkZS5jb2xvckZpbGx9KSksQmUoZGUuY29tcG9uZW50Q2xzLGRlLmdob3N0QmcsZGUuZGVmYXVsdEdob3N0Q29sb3IsZGUuZGVmYXVsdEdob3N0Qm9yZGVyQ29sb3IsZGUuY29sb3JUZXh0RGlzYWJsZWQsZGUuY29sb3JCb3JkZXIpKSxrKGRlLGRlLnRleHRUZXh0Q29sb3IsImxpbmsiLHtjb2xvcjpkZS5jb2xvckxpbmtIb3ZlcixiYWNrZ3JvdW5kOmRlLmxpbmtIb3ZlckJnfSx7Y29sb3I6ZGUuY29sb3JMaW5rQWN0aXZlfSkpLFU9ZGU9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHtjb2xvcjpkZS5jb2xvclByaW1hcnksYm94U2hhZG93OmRlLnByaW1hcnlTaGFkb3d9LEZlKGRlLGRlLmNvbG9yUHJpbWFyeSxkZS5jb2xvckJnQ29udGFpbmVyLHtjb2xvcjpkZS5jb2xvclByaW1hcnlUZXh0SG92ZXIsYm9yZGVyQ29sb3I6ZGUuY29sb3JQcmltYXJ5SG92ZXIsYmFja2dyb3VuZDpkZS5jb2xvckJnQ29udGFpbmVyfSx7Y29sb3I6ZGUuY29sb3JQcmltYXJ5VGV4dEFjdGl2ZSxib3JkZXJDb2xvcjpkZS5jb2xvclByaW1hcnlBY3RpdmUsYmFja2dyb3VuZDpkZS5jb2xvckJnQ29udGFpbmVyfSkpLFNlKGRlKSkscShkZSxkZS5jb2xvclByaW1hcnlCZyx7YmFja2dyb3VuZDpkZS5jb2xvclByaW1hcnlCZ0hvdmVyfSx7YmFja2dyb3VuZDpkZS5jb2xvclByaW1hcnlCb3JkZXJ9KSksayhkZSxkZS5jb2xvclByaW1hcnlUZXh0LCJ0ZXh0Iix7Y29sb3I6ZGUuY29sb3JQcmltYXJ5VGV4dEhvdmVyLGJhY2tncm91bmQ6ZGUuY29sb3JQcmltYXJ5Qmd9LHtjb2xvcjpkZS5jb2xvclByaW1hcnlUZXh0QWN0aXZlLGJhY2tncm91bmQ6ZGUuY29sb3JQcmltYXJ5Qm9yZGVyfSkpLGsoZGUsZGUuY29sb3JQcmltYXJ5VGV4dCwibGluayIse2NvbG9yOmRlLmNvbG9yUHJpbWFyeVRleHRIb3ZlcixiYWNrZ3JvdW5kOmRlLmxpbmtIb3ZlckJnfSx7Y29sb3I6ZGUuY29sb3JQcmltYXJ5VGV4dEFjdGl2ZX0pKSxCZShkZS5jb21wb25lbnRDbHMsZGUuZ2hvc3RCZyxkZS5jb2xvclByaW1hcnksZGUuY29sb3JQcmltYXJ5LGRlLmNvbG9yVGV4dERpc2FibGVkLGRlLmNvbG9yQm9yZGVyLHtjb2xvcjpkZS5jb2xvclByaW1hcnlIb3Zlcixib3JkZXJDb2xvcjpkZS5jb2xvclByaW1hcnlIb3Zlcn0se2NvbG9yOmRlLmNvbG9yUHJpbWFyeUFjdGl2ZSxib3JkZXJDb2xvcjpkZS5jb2xvclByaW1hcnlBY3RpdmV9KSksTj1kZT0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7Y29sb3I6ZGUuY29sb3JFcnJvcixib3hTaGFkb3c6ZGUuZGFuZ2VyU2hhZG93fSxfZShkZSxkZS5kYW5nZXJDb2xvcixkZS5jb2xvckVycm9yLHtiYWNrZ3JvdW5kOmRlLmNvbG9yRXJyb3JIb3Zlcn0se2JhY2tncm91bmQ6ZGUuY29sb3JFcnJvckFjdGl2ZX0pKSxGZShkZSxkZS5jb2xvckVycm9yLGRlLmNvbG9yQmdDb250YWluZXIse2NvbG9yOmRlLmNvbG9yRXJyb3JIb3Zlcixib3JkZXJDb2xvcjpkZS5jb2xvckVycm9yQm9yZGVySG92ZXJ9LHtjb2xvcjpkZS5jb2xvckVycm9yQWN0aXZlLGJvcmRlckNvbG9yOmRlLmNvbG9yRXJyb3JBY3RpdmV9KSksU2UoZGUpKSxxKGRlLGRlLmNvbG9yRXJyb3JCZyx7YmFja2dyb3VuZDpkZS5jb2xvckVycm9yQmdGaWxsZWRIb3Zlcn0se2JhY2tncm91bmQ6ZGUuY29sb3JFcnJvckJnQWN0aXZlfSkpLGsoZGUsZGUuY29sb3JFcnJvciwidGV4dCIse2NvbG9yOmRlLmNvbG9yRXJyb3JIb3ZlcixiYWNrZ3JvdW5kOmRlLmNvbG9yRXJyb3JCZ30se2NvbG9yOmRlLmNvbG9yRXJyb3JIb3ZlcixiYWNrZ3JvdW5kOmRlLmNvbG9yRXJyb3JCZ0FjdGl2ZX0pKSxrKGRlLGRlLmNvbG9yRXJyb3IsImxpbmsiLHtjb2xvcjpkZS5jb2xvckVycm9ySG92ZXJ9LHtjb2xvcjpkZS5jb2xvckVycm9yQWN0aXZlfSkpLEJlKGRlLmNvbXBvbmVudENscyxkZS5naG9zdEJnLGRlLmNvbG9yRXJyb3IsZGUuY29sb3JFcnJvcixkZS5jb2xvclRleHREaXNhYmxlZCxkZS5jb2xvckJvcmRlcix7Y29sb3I6ZGUuY29sb3JFcnJvckhvdmVyLGJvcmRlckNvbG9yOmRlLmNvbG9yRXJyb3JIb3Zlcn0se2NvbG9yOmRlLmNvbG9yRXJyb3JBY3RpdmUsYm9yZGVyQ29sb3I6ZGUuY29sb3JFcnJvckFjdGl2ZX0pKSxRPWRlPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sayhkZSxkZS5jb2xvckxpbmssImxpbmsiLHtjb2xvcjpkZS5jb2xvckxpbmtIb3Zlcn0se2NvbG9yOmRlLmNvbG9yTGlua0FjdGl2ZX0pKSxCZShkZS5jb21wb25lbnRDbHMsZGUuZ2hvc3RCZyxkZS5jb2xvckluZm8sZGUuY29sb3JJbmZvLGRlLmNvbG9yVGV4dERpc2FibGVkLGRlLmNvbG9yQm9yZGVyLHtjb2xvcjpkZS5jb2xvckluZm9Ib3Zlcixib3JkZXJDb2xvcjpkZS5jb2xvckluZm9Ib3Zlcn0se2NvbG9yOmRlLmNvbG9ySW5mb0FjdGl2ZSxib3JkZXJDb2xvcjpkZS5jb2xvckluZm9BY3RpdmV9KSksdWU9ZGU9Pntjb25zdHtjb21wb25lbnRDbHM6V2V9PWRlO3JldHVybiBPYmplY3QuYXNzaWduKHtbYCR7V2V9LWNvbG9yLWRlZmF1bHRgXTpBKGRlKSxbYCR7V2V9LWNvbG9yLXByaW1hcnlgXTpVKGRlKSxbYCR7V2V9LWNvbG9yLWRhbmdlcm91c2BdOk4oZGUpLFtgJHtXZX0tY29sb3ItbGlua2BdOlEoZGUpfSxNKGRlKSl9LCQ9ZGU9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sRmUoZGUsZGUuZGVmYXVsdEJvcmRlckNvbG9yLGRlLmRlZmF1bHRCZyx7Y29sb3I6ZGUuZGVmYXVsdEhvdmVyQ29sb3IsYm9yZGVyQ29sb3I6ZGUuZGVmYXVsdEhvdmVyQm9yZGVyQ29sb3IsYmFja2dyb3VuZDpkZS5kZWZhdWx0SG92ZXJCZ30se2NvbG9yOmRlLmRlZmF1bHRBY3RpdmVDb2xvcixib3JkZXJDb2xvcjpkZS5kZWZhdWx0QWN0aXZlQm9yZGVyQ29sb3IsYmFja2dyb3VuZDpkZS5kZWZhdWx0QWN0aXZlQmd9KSksayhkZSxkZS50ZXh0VGV4dENvbG9yLCJ0ZXh0Iix7Y29sb3I6ZGUudGV4dFRleHRIb3ZlckNvbG9yLGJhY2tncm91bmQ6ZGUudGV4dEhvdmVyQmd9LHtjb2xvcjpkZS50ZXh0VGV4dEFjdGl2ZUNvbG9yLGJhY2tncm91bmQ6ZGUuY29sb3JCZ1RleHRBY3RpdmV9KSksX2UoZGUsZGUucHJpbWFyeUNvbG9yLGRlLmNvbG9yUHJpbWFyeSx7YmFja2dyb3VuZDpkZS5jb2xvclByaW1hcnlIb3Zlcixjb2xvcjpkZS5wcmltYXJ5Q29sb3J9LHtiYWNrZ3JvdW5kOmRlLmNvbG9yUHJpbWFyeUFjdGl2ZSxjb2xvcjpkZS5wcmltYXJ5Q29sb3J9KSksayhkZSxkZS5jb2xvckxpbmssImxpbmsiLHtjb2xvcjpkZS5jb2xvckxpbmtIb3ZlcixiYWNrZ3JvdW5kOmRlLmxpbmtIb3ZlckJnfSx7Y29sb3I6ZGUuY29sb3JMaW5rQWN0aXZlfSkpLF89ZnVuY3Rpb24oZGUpe2xldCBXZT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06IiI7Y29uc3R7Y29tcG9uZW50Q2xzOlN0LGNvbnRyb2xIZWlnaHQ6Y3QsZm9udFNpemU6T2UsYm9yZGVyUmFkaXVzOkdlLGJ1dHRvblBhZGRpbmdIb3Jpem9udGFsOmh0LGljb25DbHM6emUsYnV0dG9uUGFkZGluZ1ZlcnRpY2FsOlFlLGJ1dHRvbkljb25Pbmx5Rm9udFNpemU6cHR9PWRlO3JldHVyblt7W1dlXTp7Zm9udFNpemU6T2UsaGVpZ2h0OmN0LHBhZGRpbmc6YCR7KDAsZWUuYmYpKFFlKX0gJHsoMCxlZS5iZikoaHQpfWAsYm9yZGVyUmFkaXVzOkdlLFtgJiR7U3R9LWljb24tb25seWBdOnt3aWR0aDpjdCxbemVdOntmb250U2l6ZTpwdH19fX0se1tgJHtTdH0ke1N0fS1jaXJjbGUke1dlfWBdOmZlKGRlKX0se1tgJHtTdH0ke1N0fS1yb3VuZCR7V2V9YF06RWUoZGUpfV19LHBlPWRlPT57Y29uc3QgV2U9KDAsdGUuSVgpKGRlLHtmb250U2l6ZTpkZS5jb250ZW50Rm9udFNpemV9KTtyZXR1cm4gXyhXZSxkZS5jb21wb25lbnRDbHMpfSxyZT1kZT0+e2NvbnN0IFdlPSgwLHRlLklYKShkZSx7Y29udHJvbEhlaWdodDpkZS5jb250cm9sSGVpZ2h0U00sZm9udFNpemU6ZGUuY29udGVudEZvbnRTaXplU00scGFkZGluZzpkZS5wYWRkaW5nWFMsYnV0dG9uUGFkZGluZ0hvcml6b250YWw6ZGUucGFkZGluZ0lubGluZVNNLGJ1dHRvblBhZGRpbmdWZXJ0aWNhbDowLGJvcmRlclJhZGl1czpkZS5ib3JkZXJSYWRpdXNTTSxidXR0b25JY29uT25seUZvbnRTaXplOmRlLm9ubHlJY29uU2l6ZVNNfSk7cmV0dXJuIF8oV2UsYCR7ZGUuY29tcG9uZW50Q2xzfS1zbWApfSxhZT1kZT0+e2NvbnN0IFdlPSgwLHRlLklYKShkZSx7Y29udHJvbEhlaWdodDpkZS5jb250cm9sSGVpZ2h0TEcsZm9udFNpemU6ZGUuY29udGVudEZvbnRTaXplTEcsYnV0dG9uUGFkZGluZ0hvcml6b250YWw6ZGUucGFkZGluZ0lubGluZUxHLGJ1dHRvblBhZGRpbmdWZXJ0aWNhbDowLGJvcmRlclJhZGl1czpkZS5ib3JkZXJSYWRpdXNMRyxidXR0b25JY29uT25seUZvbnRTaXplOmRlLm9ubHlJY29uU2l6ZUxHfSk7cmV0dXJuIF8oV2UsYCR7ZGUuY29tcG9uZW50Q2xzfS1sZ2ApfSx3ZT1kZT0+e2NvbnN0e2NvbXBvbmVudENsczpXZX09ZGU7cmV0dXJue1tXZV06e1tgJiR7V2V9LWJsb2NrYF06e3dpZHRoOiIxMDAlIn19fX07dmFyIExlPSgwLGxlLkkkKSgiQnV0dG9uIixkZT0+e2NvbnN0IFdlPUsoZGUpO3JldHVybltuZShXZSkscGUoV2UpLHJlKFdlKSxhZShXZSksd2UoV2UpLHVlKFdlKSwkKFdlKSxqKFdlKV19LHNlLHt1bml0bGVzczp7Zm9udFdlaWdodDohMCxjb250ZW50TGluZUhlaWdodDohMCxjb250ZW50TGluZUhlaWdodFNNOiEwLGNvbnRlbnRMaW5lSGVpZ2h0TEc6ITB9fSksTWU9ZSg4MDExMCk7ZnVuY3Rpb24gYmUoZGUsV2Upe3JldHVybntbYCYtaXRlbTpub3QoJHtXZX0tbGFzdC1pdGVtKWBdOnttYXJnaW5Cb3R0b206ZGUuY2FsYyhkZS5saW5lV2lkdGgpLm11bCgtMSkuZXF1YWwoKX0sIiYtaXRlbSI6eyImOmhvdmVyLCY6Zm9jdXMsJjphY3RpdmUiOnt6SW5kZXg6Mn0sIiZbZGlzYWJsZWRdIjp7ekluZGV4OjB9fX19ZnVuY3Rpb24gJGUoZGUsV2Upe3JldHVybntbYCYtaXRlbTpub3QoJHtXZX0tZmlyc3QtaXRlbSk6bm90KCR7V2V9LWxhc3QtaXRlbSlgXTp7Ym9yZGVyUmFkaXVzOjB9LFtgJi1pdGVtJHtXZX0tZmlyc3QtaXRlbTpub3QoJHtXZX0tbGFzdC1pdGVtKWBdOntbYCYsICYke2RlfS1zbSwgJiR7ZGV9LWxnYF06e2JvcmRlckVuZEVuZFJhZGl1czowLGJvcmRlckVuZFN0YXJ0UmFkaXVzOjB9fSxbYCYtaXRlbSR7V2V9LWxhc3QtaXRlbTpub3QoJHtXZX0tZmlyc3QtaXRlbSlgXTp7W2AmLCAmJHtkZX0tc20sICYke2RlfS1sZ2BdOntib3JkZXJTdGFydFN0YXJ0UmFkaXVzOjAsYm9yZGVyU3RhcnRFbmRSYWRpdXM6MH19fX1mdW5jdGlvbiBrZShkZSl7Y29uc3QgV2U9YCR7ZGUuY29tcG9uZW50Q2xzfS1jb21wYWN0LXZlcnRpY2FsYDtyZXR1cm57W1dlXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sYmUoZGUsV2UpKSwkZShkZS5jb21wb25lbnRDbHMsV2UpKX19Y29uc3QgQWU9ZGU9Pntjb25zdHtjb21wb25lbnRDbHM6V2UsY29sb3JQcmltYXJ5SG92ZXI6U3QsbGluZVdpZHRoOmN0LGNhbGM6T2V9PWRlLEdlPU9lKGN0KS5tdWwoLTEpLmVxdWFsKCksaHQ9emU9Pntjb25zdCBRZT1gJHtXZX0tY29tcGFjdCR7emU/Ii12ZXJ0aWNhbCI6IiJ9LWl0ZW0ke1dlfS1wcmltYXJ5Om5vdChbZGlzYWJsZWRdKWA7cmV0dXJue1tgJHtRZX0gKyAke1FlfTo6YmVmb3JlYF06e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOnplP0dlOjAsaW5zZXRJbmxpbmVTdGFydDp6ZT8wOkdlLGJhY2tncm91bmRDb2xvcjpTdCxjb250ZW50OiciIicsd2lkdGg6emU/IjEwMCUiOmN0LGhlaWdodDp6ZT9jdDoiMTAwJSJ9fX07cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxodCgpKSxodCghMCkpfTt2YXIgdHQ9KDAsbGUuYmspKFsiQnV0dG9uIiwiY29tcGFjdCJdLGRlPT57Y29uc3QgV2U9SyhkZSk7cmV0dXJuWygwLE1lLmMpKFdlKSxrZShXZSksQWUoV2UpXX0sc2UpLG10PWZ1bmN0aW9uKGRlLFdlKXt2YXIgU3Q9e307Zm9yKHZhciBjdCBpbiBkZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZGUsY3QpJiZXZS5pbmRleE9mKGN0KTwwJiYoU3RbY3RdPWRlW2N0XSk7aWYoZGUhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgT2U9MCxjdD1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGRlKTtPZTxjdC5sZW5ndGg7T2UrKylXZS5pbmRleE9mKGN0W09lXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGRlLGN0W09lXSkmJihTdFtjdFtPZV1dPWRlW2N0W09lXV0pO3JldHVybiBTdH07ZnVuY3Rpb24gdXQoZGUpe2lmKHR5cGVvZiBkZT09Im9iamVjdCImJmRlKXtsZXQgV2U9ZGU9PW51bGw/dm9pZCAwOmRlLmRlbGF5O3JldHVybiBXZT0hTnVtYmVyLmlzTmFOKFdlKSYmdHlwZW9mIFdlPT0ibnVtYmVyIj9XZTowLHtsb2FkaW5nOldlPD0wLGRlbGF5OldlfX1yZXR1cm57bG9hZGluZzohIWRlLGRlbGF5OjB9fWNvbnN0IERlPXtkZWZhdWx0OlsiZGVmYXVsdCIsIm91dGxpbmVkIl0scHJpbWFyeTpbInByaW1hcnkiLCJzb2xpZCJdLGRhc2hlZDpbImRlZmF1bHQiLCJkYXNoZWQiXSxsaW5rOlsibGluayIsImxpbmsiXSx0ZXh0OlsiZGVmYXVsdCIsInRleHQiXX0sWGU9ci5mb3J3YXJkUmVmKChkZSxXZSk9Pnt2YXIgU3QsY3Q7Y29uc3R7bG9hZGluZzpPZT0hMSxwcmVmaXhDbHM6R2UsY29sb3I6aHQsdmFyaWFudDp6ZSx0eXBlOlFlLGRhbmdlcjpwdD0hMSxzaGFwZTpidD0iZGVmYXVsdCIsc2l6ZTpJdCxzdHlsZXM6VHQsZGlzYWJsZWQ6WHQsY2xhc3NOYW1lOmZuLHJvb3RDbGFzc05hbWU6bm4sY2hpbGRyZW46b24saWNvbjpOdCxpY29uUG9zaXRpb246Wm49InN0YXJ0IixnaG9zdDp5bj0hMSxibG9jazpnbj0hMSxodG1sVHlwZTpCbj0iYnV0dG9uIixjbGFzc05hbWVzOlZuLHN0eWxlOk5uPXt9LGF1dG9JbnNlcnRTcGFjZTpmdCxhdXRvRm9jdXM6ZXR9PWRlLEp0PW10KGRlLFsibG9hZGluZyIsInByZWZpeENscyIsImNvbG9yIiwidmFyaWFudCIsInR5cGUiLCJkYW5nZXIiLCJzaGFwZSIsInNpemUiLCJzdHlsZXMiLCJkaXNhYmxlZCIsImNsYXNzTmFtZSIsInJvb3RDbGFzc05hbWUiLCJjaGlsZHJlbiIsImljb24iLCJpY29uUG9zaXRpb24iLCJnaG9zdCIsImJsb2NrIiwiaHRtbFR5cGUiLCJjbGFzc05hbWVzIiwic3R5bGUiLCJhdXRvSW5zZXJ0U3BhY2UiLCJhdXRvRm9jdXMiXSksd3Q9UWV8fCJkZWZhdWx0IixbX3QseG5dPSgwLHIudXNlTWVtbykoKCk9PntpZihodCYmemUpcmV0dXJuW2h0LHplXTtjb25zdCBHdD1EZVt3dF18fFtdO3JldHVybiBwdD9bImRhbmdlciIsR3RbMV1dOkd0fSxbUWUsaHQsemUscHRdKSxQbj1fdD09PSJkYW5nZXIiPyJkYW5nZXJvdXMiOl90LHtnZXRQcmVmaXhDbHM6TG4sZGlyZWN0aW9uOmVyLGF1dG9JbnNlcnRTcGFjZTpRbixjbGFzc05hbWU6dXIsc3R5bGU6aXIsY2xhc3NOYW1lczp2bixzdHlsZXM6Y3J9PSgwLHUuZGopKCJidXR0b24iKSxXbj0oU3Q9ZnQhPW51bGw/ZnQ6UW4pIT09bnVsbCYmU3QhPT12b2lkIDA/U3Q6ITAsd249TG4oImJ0biIsR2UpLFtDdCxadCxhbl09TGUod24pLER0PSgwLHIudXNlQ29udGV4dCkoYy5aKSxrdD1YdCE9bnVsbD9YdDpEdCx0bj0oMCxyLnVzZUNvbnRleHQpKGcpLG1uPSgwLHIudXNlTWVtbykoKCk9PnV0KE9lKSxbT2VdKSxbS24sSm5dPSgwLHIudXNlU3RhdGUpKG1uLmxvYWRpbmcpLFtYbixmcl09KDAsci51c2VTdGF0ZSkoITEpLHJyPSgwLHIudXNlUmVmKShudWxsKSxocj0oMCxzLngxKShXZSxyciksRm49ci5DaGlsZHJlbi5jb3VudChvbik9PT0xJiYhTnQmJiEoMCx4LkRuKSh4biksYXI9KDAsci51c2VSZWYpKCEwKTtyLnVzZUVmZmVjdCgoKT0+KGFyLmN1cnJlbnQ9ITEsKCk9Pnthci5jdXJyZW50PSEwfSksW10pLCgwLHIudXNlRWZmZWN0KSgoKT0+e2xldCBHdD1udWxsO21uLmRlbGF5PjA/R3Q9c2V0VGltZW91dCgoKT0+e0d0PW51bGwsSm4oITApfSxtbi5kZWxheSk6Sm4obW4ubG9hZGluZyk7ZnVuY3Rpb24gU24oKXtHdCYmKGNsZWFyVGltZW91dChHdCksR3Q9bnVsbCl9cmV0dXJuIFNufSxbbW5dKSwoMCxyLnVzZUVmZmVjdCkoKCk9PntpZighcnIuY3VycmVudHx8IVduKXJldHVybjtjb25zdCBHdD1yci5jdXJyZW50LnRleHRDb250ZW50fHwiIjtGbiYmKDAseC5hRykoR3QpP1hufHxmcighMCk6WG4mJmZyKCExKX0pLCgwLHIudXNlRWZmZWN0KSgoKT0+e2V0JiZyci5jdXJyZW50JiZyci5jdXJyZW50LmZvY3VzKCl9LFtdKTtjb25zdCBscj1yLnVzZUNhbGxiYWNrKEd0PT57dmFyIFNuO2lmKEtufHxrdCl7R3QucHJldmVudERlZmF1bHQoKTtyZXR1cm59KFNuPWRlLm9uQ2xpY2spPT09bnVsbHx8U249PT12b2lkIDB8fFNuLmNhbGwoZGUsKCJocmVmImluIGRlLEd0KSl9LFtkZS5vbkNsaWNrLEtuLGt0XSkse2NvbXBhY3RTaXplOiRuLGNvbXBhY3RJdGVtQ2xhc3NuYW1lczpzcn09KDAsZC5yaSkod24sZXIpLEZyPXtsYXJnZToibGciLHNtYWxsOiJzbSIsbWlkZGxlOnZvaWQgMH0sWmU9KDAsaC5aKShHdD0+e3ZhciBTbixPbjtyZXR1cm4oT249KFNuPUl0IT1udWxsP0l0OiRuKSE9PW51bGwmJlNuIT09dm9pZCAwP1NuOnRuKSE9PW51bGwmJk9uIT09dm9pZCAwP09uOkd0fSksSGU9WmUmJihjdD1GcltaZV0pIT09bnVsbCYmY3QhPT12b2lkIDA/Y3Q6IiIsbnQ9S24/ImxvYWRpbmciOk50LHJ0PSgwLGkuWikoSnQsWyJuYXZpZ2F0ZSJdKSx2dD10KCkod24sWnQsYW4se1tgJHt3bn0tJHtidH1gXTpidCE9PSJkZWZhdWx0IiYmYnQsW2Ake3dufS0ke3d0fWBdOnd0LFtgJHt3bn0tZGFuZ2Vyb3VzYF06cHQsW2Ake3dufS1jb2xvci0ke1BufWBdOlBuLFtgJHt3bn0tdmFyaWFudC0ke3hufWBdOnhuLFtgJHt3bn0tJHtIZX1gXTpIZSxbYCR7d259LWljb24tb25seWBdOiFvbiYmb24hPT0wJiYhIW50LFtgJHt3bn0tYmFja2dyb3VuZC1naG9zdGBdOnluJiYhKDAseC5EbikoeG4pLFtgJHt3bn0tbG9hZGluZ2BdOktuLFtgJHt3bn0tdHdvLWNoaW5lc2UtY2hhcnNgXTpYbiYmV24mJiFLbixbYCR7d259LWJsb2NrYF06Z24sW2Ake3dufS1ydGxgXTplcj09PSJydGwiLFtgJHt3bn0taWNvbi1lbmRgXTpabj09PSJlbmQifSxzcixmbixubix1ciksVnQ9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGlyKSxObiksZW49dCgpKFZuPT1udWxsP3ZvaWQgMDpWbi5pY29uLHZuLmljb24pLFJuPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwoVHQ9PW51bGw/dm9pZCAwOlR0Lmljb24pfHx7fSksY3IuaWNvbnx8e30pLGpuPU50JiYhS24/ci5jcmVhdGVFbGVtZW50KEwse3ByZWZpeENsczp3bixjbGFzc05hbWU6ZW4sc3R5bGU6Um59LE50KTpPZSYmdHlwZW9mIE9lPT0ib2JqZWN0IiYmT2UuaWNvbj9yLmNyZWF0ZUVsZW1lbnQoTCx7cHJlZml4Q2xzOnduLGNsYXNzTmFtZTplbixzdHlsZTpSbn0sT2UuaWNvbik6ci5jcmVhdGVFbGVtZW50KFkse2V4aXN0SWNvbjohIU50LHByZWZpeENsczp3bixsb2FkaW5nOktuLG1vdW50OmFyLmN1cnJlbnR9KSxibj1vbnx8b249PT0wPygwLHguaFUpKG9uLEZuJiZXbik6bnVsbDtpZihydC5ocmVmIT09dm9pZCAwKXJldHVybiBDdChyLmNyZWF0ZUVsZW1lbnQoImEiLE9iamVjdC5hc3NpZ24oe30scnQse2NsYXNzTmFtZTp0KCkodnQse1tgJHt3bn0tZGlzYWJsZWRgXTprdH0pLGhyZWY6a3Q/dm9pZCAwOnJ0LmhyZWYsc3R5bGU6VnQsb25DbGljazpscixyZWY6aHIsdGFiSW5kZXg6a3Q/LTE6MH0pLGpuLGJuKSk7bGV0IEhuPXIuY3JlYXRlRWxlbWVudCgiYnV0dG9uIixPYmplY3QuYXNzaWduKHt9LEp0LHt0eXBlOkJuLGNsYXNzTmFtZTp2dCxzdHlsZTpWdCxvbkNsaWNrOmxyLGRpc2FibGVkOmt0LHJlZjpocn0pLGpuLGJuLHNyJiZyLmNyZWF0ZUVsZW1lbnQodHQse3ByZWZpeENsczp3bn0pKTtyZXR1cm4oMCx4LkRuKSh4bil8fChIbj1yLmNyZWF0ZUVsZW1lbnQoYS5aLHtjb21wb25lbnQ6IkJ1dHRvbiIsZGlzYWJsZWQ6S259LEhuKSksQ3QoSG4pfSk7WGUuR3JvdXA9RSxYZS5fX0FOVF9CVVRUT049ITA7dmFyIEplPVhlLGd0PUplfSwxMTYxNjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtPdDpmdW5jdGlvbigpe3JldHVybiBpfSx5OTpmdW5jdGlvbigpe3JldHVybiBhfX0pO3ZhciByPWUoMTU2NzEpLG49ZSg0MzE0NCksdD1lKDM5ODk5KTtjb25zdCBpPSh1LGMpPT4odT09bnVsbD92b2lkIDA6dS5yZXBsYWNlKC9bXlx3L10vZywiIikuc2xpY2UoMCxjPzg6NikpfHwiIixzPSh1LGMpPT51P2kodSxjKToiIjtsZXQgYT1mdW5jdGlvbigpe2Z1bmN0aW9uIHUoYyl7KDAsci5aKSh0aGlzLHUpO3ZhciBoO2lmKHRoaXMuY2xlYXJlZD0hMSxjIGluc3RhbmNlb2YgdSl7dGhpcy5tZXRhQ29sb3I9Yy5tZXRhQ29sb3IuY2xvbmUoKSx0aGlzLmNvbG9ycz0oaD1jLmNvbG9ycyk9PT1udWxsfHxoPT09dm9pZCAwP3ZvaWQgMDpoLm1hcChtPT4oe2NvbG9yOm5ldyB1KG0uY29sb3IpLHBlcmNlbnQ6bS5wZXJjZW50fSkpLHRoaXMuY2xlYXJlZD1jLmNsZWFyZWQ7cmV0dXJufWNvbnN0IGQ9QXJyYXkuaXNBcnJheShjKTtkJiZjLmxlbmd0aD8odGhpcy5jb2xvcnM9Yy5tYXAobT0+e2xldHtjb2xvcjpDLHBlcmNlbnQ6Z309bTtyZXR1cm57Y29sb3I6bmV3IHUoQykscGVyY2VudDpnfX0pLHRoaXMubWV0YUNvbG9yPW5ldyB0LklsKHRoaXMuY29sb3JzWzBdLmNvbG9yLm1ldGFDb2xvcikpOnRoaXMubWV0YUNvbG9yPW5ldyB0LklsKGQ/IiI6YyksKCFjfHxkJiYhdGhpcy5jb2xvcnMpJiYodGhpcy5tZXRhQ29sb3I9dGhpcy5tZXRhQ29sb3Iuc2V0QSgwKSx0aGlzLmNsZWFyZWQ9ITApfXJldHVybigwLG4uWikodSxbe2tleToidG9Ic2IiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWV0YUNvbG9yLnRvSHNiKCl9fSx7a2V5OiJ0b0hzYlN0cmluZyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tZXRhQ29sb3IudG9Ic2JTdHJpbmcoKX19LHtrZXk6InRvSGV4Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBzKHRoaXMudG9IZXhTdHJpbmcoKSx0aGlzLm1ldGFDb2xvci5hPDEpfX0se2tleToidG9IZXhTdHJpbmciLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWV0YUNvbG9yLnRvSGV4U3RyaW5nKCl9fSx7a2V5OiJ0b1JnYiIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tZXRhQ29sb3IudG9SZ2IoKX19LHtrZXk6InRvUmdiU3RyaW5nIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1ldGFDb2xvci50b1JnYlN0cmluZygpfX0se2tleToiaXNHcmFkaWVudCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuY29sb3JzJiYhdGhpcy5jbGVhcmVkfX0se2tleToiZ2V0Q29sb3JzIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbG9yc3x8W3tjb2xvcjp0aGlzLHBlcmNlbnQ6MH1dfX0se2tleToidG9Dc3NTdHJpbmciLHZhbHVlOmZ1bmN0aW9uKCl7Y29uc3R7Y29sb3JzOmh9PXRoaXM7cmV0dXJuIGg/YGxpbmVhci1ncmFkaWVudCg5MGRlZywgJHtoLm1hcChtPT5gJHttLmNvbG9yLnRvUmdiU3RyaW5nKCl9ICR7bS5wZXJjZW50fSVgKS5qb2luKCIsICIpfSlgOnRoaXMubWV0YUNvbG9yLnRvUmdiU3RyaW5nKCl9fSx7a2V5OiJlcXVhbHMiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiFofHx0aGlzLmlzR3JhZGllbnQoKSE9PWguaXNHcmFkaWVudCgpPyExOnRoaXMuaXNHcmFkaWVudCgpP3RoaXMuY29sb3JzLmxlbmd0aD09PWguY29sb3JzLmxlbmd0aCYmdGhpcy5jb2xvcnMuZXZlcnkoKGQsbSk9Pntjb25zdCBDPWguY29sb3JzW21dO3JldHVybiBkLnBlcmNlbnQ9PT1DLnBlcmNlbnQmJmQuY29sb3IuZXF1YWxzKEMuY29sb3IpfSk6dGhpcy50b0hleFN0cmluZygpPT09aC50b0hleFN0cmluZygpfX1dKX0oKX0sMzI2OTU6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiBwZX0sVTpmdW5jdGlvbigpe3JldHVybiB1ZX19KTt2YXIgcj1lKDY3Mjk0KSxuPWUoMzk4OTkpLHQ9ZSg5Mzk2NyksaT1lLm4odCkscz1lKDIxNzcwKSxhPWUoOTA4MTQpLHU9ZSg4NzQ2MiksYz1lKDc0OTAyKSxoPWUoOTc2ODUpLGQ9ZSg3MTAwMiksbT1lKDgwMzM0KSxDPWUoOTEpLGc9ZSg1MDM0NCksdz1lKDE0MTMpLEU9ZSg0OTQyKSx4PWUoMjkzNzIpLE89ZSgxNTEwNSksVD1yLmZvcndhcmRSZWYoZnVuY3Rpb24ocmUsYWUpe3ZhciB3ZT1yZS5wcmVmaXhDbHMsTGU9cmUuZm9yY2VSZW5kZXIsTWU9cmUuY2xhc3NOYW1lLGJlPXJlLnN0eWxlLCRlPXJlLmNoaWxkcmVuLGtlPXJlLmlzQWN0aXZlLEFlPXJlLnJvbGUsdHQ9cmUuY2xhc3NOYW1lcyxtdD1yZS5zdHlsZXMsdXQ9ci51c2VTdGF0ZShrZXx8TGUpLERlPSgwLGguWikodXQsMiksTmU9RGVbMF0sWGU9RGVbMV07cmV0dXJuIHIudXNlRWZmZWN0KGZ1bmN0aW9uKCl7KExlfHxrZSkmJlhlKCEwKX0sW0xlLGtlXSksTmU/ci5jcmVhdGVFbGVtZW50KCJkaXYiLHtyZWY6YWUsY2xhc3NOYW1lOmkoKSgiIi5jb25jYXQod2UsIi1jb250ZW50IiksKDAsRS5aKSgoMCxFLlopKHt9LCIiLmNvbmNhdCh3ZSwiLWNvbnRlbnQtYWN0aXZlIiksa2UpLCIiLmNvbmNhdCh3ZSwiLWNvbnRlbnQtaW5hY3RpdmUiKSwha2UpLE1lKSxzdHlsZTpiZSxyb2xlOkFlfSxyLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTppKCkoIiIuY29uY2F0KHdlLCItY29udGVudC1ib3giKSx0dD09bnVsbD92b2lkIDA6dHQuYm9keSksc3R5bGU6bXQ9PW51bGw/dm9pZCAwOm10LmJvZHl9LCRlKSk6bnVsbH0pO1QuZGlzcGxheU5hbWU9IlBhbmVsQ29udGVudCI7dmFyIFM9VCxMPVsic2hvd0Fycm93IiwiaGVhZGVyQ2xhc3MiLCJpc0FjdGl2ZSIsIm9uSXRlbUNsaWNrIiwiZm9yY2VSZW5kZXIiLCJjbGFzc05hbWUiLCJjbGFzc05hbWVzIiwic3R5bGVzIiwicHJlZml4Q2xzIiwiY29sbGFwc2libGUiLCJhY2NvcmRpb24iLCJwYW5lbEtleSIsImV4dHJhIiwiaGVhZGVyIiwiZXhwYW5kSWNvbiIsIm9wZW5Nb3Rpb24iLCJkZXN0cm95SW5hY3RpdmVQYW5lbCIsImNoaWxkcmVuIl0sST1yLmZvcndhcmRSZWYoZnVuY3Rpb24ocmUsYWUpe3ZhciB3ZT1yZS5zaG93QXJyb3csTGU9d2U9PT12b2lkIDA/ITA6d2UsTWU9cmUuaGVhZGVyQ2xhc3MsYmU9cmUuaXNBY3RpdmUsJGU9cmUub25JdGVtQ2xpY2ssa2U9cmUuZm9yY2VSZW5kZXIsQWU9cmUuY2xhc3NOYW1lLHR0PXJlLmNsYXNzTmFtZXMsbXQ9dHQ9PT12b2lkIDA/e306dHQsdXQ9cmUuc3R5bGVzLERlPXV0PT09dm9pZCAwP3t9OnV0LE5lPXJlLnByZWZpeENscyxYZT1yZS5jb2xsYXBzaWJsZSxKZT1yZS5hY2NvcmRpb24sZ3Q9cmUucGFuZWxLZXksZGU9cmUuZXh0cmEsV2U9cmUuaGVhZGVyLFN0PXJlLmV4cGFuZEljb24sY3Q9cmUub3Blbk1vdGlvbixPZT1yZS5kZXN0cm95SW5hY3RpdmVQYW5lbCxHZT1yZS5jaGlsZHJlbixodD0oMCxDLlopKHJlLEwpLHplPVhlPT09ImRpc2FibGVkIixRZT1kZSE9bnVsbCYmdHlwZW9mIGRlIT0iYm9vbGVhbiIscHQ9KDAsRS5aKSgoMCxFLlopKCgwLEUuWikoe29uQ2xpY2s6ZnVuY3Rpb24oKXskZT09bnVsbHx8JGUoZ3QpfSxvbktleURvd246ZnVuY3Rpb24ob24peyhvbi5rZXk9PT0iRW50ZXIifHxvbi5rZXlDb2RlPT09Ty5aLkVOVEVSfHxvbi53aGljaD09PU8uWi5FTlRFUikmJigkZT09bnVsbHx8JGUoZ3QpKX0scm9sZTpKZT8idGFiIjoiYnV0dG9uIn0sImFyaWEtZXhwYW5kZWQiLGJlKSwiYXJpYS1kaXNhYmxlZCIsemUpLCJ0YWJJbmRleCIsemU/LTE6MCksYnQ9dHlwZW9mIFN0PT0iZnVuY3Rpb24iP1N0KHJlKTpyLmNyZWF0ZUVsZW1lbnQoImkiLHtjbGFzc05hbWU6ImFycm93In0pLEl0PWJ0JiZyLmNyZWF0ZUVsZW1lbnQoImRpdiIsKDAsdS5aKSh7Y2xhc3NOYW1lOiIiLmNvbmNhdChOZSwiLWV4cGFuZC1pY29uIil9LFsiaGVhZGVyIiwiaWNvbiJdLmluY2x1ZGVzKFhlKT9wdDp7fSksYnQpLFR0PWkoKSgiIi5jb25jYXQoTmUsIi1pdGVtIiksKDAsRS5aKSgoMCxFLlopKHt9LCIiLmNvbmNhdChOZSwiLWl0ZW0tYWN0aXZlIiksYmUpLCIiLmNvbmNhdChOZSwiLWl0ZW0tZGlzYWJsZWQiKSx6ZSksQWUpLFh0PWkoKShNZSwiIi5jb25jYXQoTmUsIi1oZWFkZXIiKSwoMCxFLlopKHt9LCIiLmNvbmNhdChOZSwiLWNvbGxhcHNpYmxlLSIpLmNvbmNhdChYZSksISFYZSksbXQuaGVhZGVyKSxmbj0oMCx3LlopKHtjbGFzc05hbWU6WHQsc3R5bGU6RGUuaGVhZGVyfSxbImhlYWRlciIsImljb24iXS5pbmNsdWRlcyhYZSk/e306cHQpO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoImRpdiIsKDAsdS5aKSh7fSxodCx7cmVmOmFlLGNsYXNzTmFtZTpUdH0pLHIuY3JlYXRlRWxlbWVudCgiZGl2IixmbixMZSYmSXQsci5jcmVhdGVFbGVtZW50KCJzcGFuIiwoMCx1LlopKHtjbGFzc05hbWU6IiIuY29uY2F0KE5lLCItaGVhZGVyLXRleHQiKX0sWGU9PT0iaGVhZGVyIj9wdDp7fSksV2UpLFFlJiZyLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiIi5jb25jYXQoTmUsIi1leHRyYSIpfSxkZSkpLHIuY3JlYXRlRWxlbWVudCh4LlpQLCgwLHUuWikoe3Zpc2libGU6YmUsbGVhdmVkQ2xhc3NOYW1lOiIiLmNvbmNhdChOZSwiLWNvbnRlbnQtaGlkZGVuIil9LGN0LHtmb3JjZVJlbmRlcjprZSxyZW1vdmVPbkxlYXZlOk9lfSksZnVuY3Rpb24obm4sb24pe3ZhciBOdD1ubi5jbGFzc05hbWUsWm49bm4uc3R5bGU7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChTLHtyZWY6b24scHJlZml4Q2xzOk5lLGNsYXNzTmFtZTpOdCxjbGFzc05hbWVzOm10LHN0eWxlOlpuLHN0eWxlczpEZSxpc0FjdGl2ZTpiZSxmb3JjZVJlbmRlcjprZSxyb2xlOkplPyJ0YWJwYW5lbCI6dm9pZCAwfSxHZSl9KSl9KSxSPUksej1bImNoaWxkcmVuIiwibGFiZWwiLCJrZXkiLCJjb2xsYXBzaWJsZSIsIm9uSXRlbUNsaWNrIiwiZGVzdHJveUluYWN0aXZlUGFuZWwiXSxHPWZ1bmN0aW9uKGFlLHdlKXt2YXIgTGU9d2UucHJlZml4Q2xzLE1lPXdlLmFjY29yZGlvbixiZT13ZS5jb2xsYXBzaWJsZSwkZT13ZS5kZXN0cm95SW5hY3RpdmVQYW5lbCxrZT13ZS5vbkl0ZW1DbGljayxBZT13ZS5hY3RpdmVLZXksdHQ9d2Uub3Blbk1vdGlvbixtdD13ZS5leHBhbmRJY29uO3JldHVybiBhZS5tYXAoZnVuY3Rpb24odXQsRGUpe3ZhciBOZT11dC5jaGlsZHJlbixYZT11dC5sYWJlbCxKZT11dC5rZXksZ3Q9dXQuY29sbGFwc2libGUsZGU9dXQub25JdGVtQ2xpY2ssV2U9dXQuZGVzdHJveUluYWN0aXZlUGFuZWwsU3Q9KDAsQy5aKSh1dCx6KSxjdD1TdHJpbmcoSmUhPW51bGw/SmU6RGUpLE9lPWd0IT1udWxsP2d0OmJlLEdlPVdlIT1udWxsP1dlOiRlLGh0PWZ1bmN0aW9uKHB0KXtPZSE9PSJkaXNhYmxlZCImJihrZShwdCksZGU9PW51bGx8fGRlKHB0KSl9LHplPSExO3JldHVybiBNZT96ZT1BZVswXT09PWN0OnplPUFlLmluZGV4T2YoY3QpPi0xLHIuY3JlYXRlRWxlbWVudChSLCgwLHUuWikoe30sU3Qse3ByZWZpeENsczpMZSxrZXk6Y3QscGFuZWxLZXk6Y3QsaXNBY3RpdmU6emUsYWNjb3JkaW9uOk1lLG9wZW5Nb3Rpb246dHQsZXhwYW5kSWNvbjptdCxoZWFkZXI6WGUsY29sbGFwc2libGU6T2Usb25JdGVtQ2xpY2s6aHQsZGVzdHJveUluYWN0aXZlUGFuZWw6R2V9KSxOZSl9KX0sWT1mdW5jdGlvbihhZSx3ZSxMZSl7aWYoIWFlKXJldHVybiBudWxsO3ZhciBNZT1MZS5wcmVmaXhDbHMsYmU9TGUuYWNjb3JkaW9uLCRlPUxlLmNvbGxhcHNpYmxlLGtlPUxlLmRlc3Ryb3lJbmFjdGl2ZVBhbmVsLEFlPUxlLm9uSXRlbUNsaWNrLHR0PUxlLmFjdGl2ZUtleSxtdD1MZS5vcGVuTW90aW9uLHV0PUxlLmV4cGFuZEljb24sRGU9YWUua2V5fHxTdHJpbmcod2UpLE5lPWFlLnByb3BzLFhlPU5lLmhlYWRlcixKZT1OZS5oZWFkZXJDbGFzcyxndD1OZS5kZXN0cm95SW5hY3RpdmVQYW5lbCxkZT1OZS5jb2xsYXBzaWJsZSxXZT1OZS5vbkl0ZW1DbGljayxTdD0hMTtiZT9TdD10dFswXT09PURlOlN0PXR0LmluZGV4T2YoRGUpPi0xO3ZhciBjdD1kZSE9bnVsbD9kZTokZSxPZT1mdW5jdGlvbih6ZSl7Y3QhPT0iZGlzYWJsZWQiJiYoQWUoemUpLFdlPT1udWxsfHxXZSh6ZSkpfSxHZT17a2V5OkRlLHBhbmVsS2V5OkRlLGhlYWRlcjpYZSxoZWFkZXJDbGFzczpKZSxpc0FjdGl2ZTpTdCxwcmVmaXhDbHM6TWUsZGVzdHJveUluYWN0aXZlUGFuZWw6Z3QhPW51bGw/Z3Q6a2Usb3Blbk1vdGlvbjptdCxhY2NvcmRpb246YmUsY2hpbGRyZW46YWUucHJvcHMuY2hpbGRyZW4sb25JdGVtQ2xpY2s6T2UsZXhwYW5kSWNvbjp1dCxjb2xsYXBzaWJsZTpjdH07cmV0dXJuIHR5cGVvZiBhZS50eXBlPT0ic3RyaW5nIj9hZTooT2JqZWN0LmtleXMoR2UpLmZvckVhY2goZnVuY3Rpb24oaHQpe3R5cGVvZiBHZVtodF09PSJ1bmRlZmluZWQiJiZkZWxldGUgR2VbaHRdfSksci5jbG9uZUVsZW1lbnQoYWUsR2UpKX07ZnVuY3Rpb24gZWUocmUsYWUsd2Upe3JldHVybiBBcnJheS5pc0FycmF5KHJlKT9HKHJlLHdlKTooMCxnLlopKGFlKS5tYXAoZnVuY3Rpb24oTGUsTWUpe3JldHVybiBZKExlLE1lLHdlKX0pfXZhciBKPWVlLG1lPWUoNjQyMTcpO2Z1bmN0aW9uIHRlKHJlKXt2YXIgYWU9cmU7aWYoIUFycmF5LmlzQXJyYXkoYWUpKXt2YXIgd2U9KDAsZC5aKShhZSk7YWU9d2U9PT0ibnVtYmVyInx8d2U9PT0ic3RyaW5nIj9bYWVdOltdfXJldHVybiBhZS5tYXAoZnVuY3Rpb24oTGUpe3JldHVybiBTdHJpbmcoTGUpfSl9dmFyIGxlPXIuZm9yd2FyZFJlZihmdW5jdGlvbihyZSxhZSl7dmFyIHdlPXJlLnByZWZpeENscyxMZT13ZT09PXZvaWQgMD8icmMtY29sbGFwc2UiOndlLE1lPXJlLmRlc3Ryb3lJbmFjdGl2ZVBhbmVsLGJlPU1lPT09dm9pZCAwPyExOk1lLCRlPXJlLnN0eWxlLGtlPXJlLmFjY29yZGlvbixBZT1yZS5jbGFzc05hbWUsdHQ9cmUuY2hpbGRyZW4sbXQ9cmUuY29sbGFwc2libGUsdXQ9cmUub3Blbk1vdGlvbixEZT1yZS5leHBhbmRJY29uLE5lPXJlLmFjdGl2ZUtleSxYZT1yZS5kZWZhdWx0QWN0aXZlS2V5LEplPXJlLm9uQ2hhbmdlLGd0PXJlLml0ZW1zLGRlPWkoKShMZSxBZSksV2U9KDAscy5aKShbXSx7dmFsdWU6TmUsb25DaGFuZ2U6ZnVuY3Rpb24oUWUpe3JldHVybiBKZT09bnVsbD92b2lkIDA6SmUoUWUpfSxkZWZhdWx0VmFsdWU6WGUscG9zdFN0YXRlOnRlfSksU3Q9KDAsaC5aKShXZSwyKSxjdD1TdFswXSxPZT1TdFsxXSxHZT1mdW5jdGlvbihRZSl7cmV0dXJuIE9lKGZ1bmN0aW9uKCl7aWYoa2UpcmV0dXJuIGN0WzBdPT09UWU/W106W1FlXTt2YXIgcHQ9Y3QuaW5kZXhPZihRZSksYnQ9cHQ+LTE7cmV0dXJuIGJ0P2N0LmZpbHRlcihmdW5jdGlvbihJdCl7cmV0dXJuIEl0IT09UWV9KTpbXS5jb25jYXQoKDAsYy5aKShjdCksW1FlXSl9KX07KDAsbS5aUCkoIXR0LCJbcmMtY29sbGFwc2VdIGBjaGlsZHJlbmAgd2lsbCBiZSByZW1vdmVkIGluIG5leHQgbWFqb3IgdmVyc2lvbi4gUGxlYXNlIHVzZSBgaXRlbXNgIGluc3RlYWQuIik7dmFyIGh0PUooZ3QsdHQse3ByZWZpeENsczpMZSxhY2NvcmRpb246a2Usb3Blbk1vdGlvbjp1dCxleHBhbmRJY29uOkRlLGNvbGxhcHNpYmxlOm10LGRlc3Ryb3lJbmFjdGl2ZVBhbmVsOmJlLG9uSXRlbUNsaWNrOkdlLGFjdGl2ZUtleTpjdH0pO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoImRpdiIsKDAsdS5aKSh7cmVmOmFlLGNsYXNzTmFtZTpkZSxzdHlsZTokZSxyb2xlOmtlPyJ0YWJsaXN0Ijp2b2lkIDB9LCgwLG1lLlopKHJlLHthcmlhOiEwLGRhdGE6ITB9KSksaHQpfSksY2U9T2JqZWN0LmFzc2lnbihsZSx7UGFuZWw6Un0pLFc9Y2Usaj1jZS5QYW5lbCxEPWUoOTg0MjMpLFY9ZSgzMzYwMyksWj1lKDk2MTU5KSxQPWUoNTMxMjQpLEs9ZSg5ODY3NSksbmU9ci5mb3J3YXJkUmVmKChyZSxhZSk9Pntjb25zdHtnZXRQcmVmaXhDbHM6d2V9PXIudXNlQ29udGV4dChQLkVfKSx7cHJlZml4Q2xzOkxlLGNsYXNzTmFtZTpNZSxzaG93QXJyb3c6YmU9ITB9PXJlLCRlPXdlKCJjb2xsYXBzZSIsTGUpLGtlPWkoKSh7W2AkeyRlfS1uby1hcnJvd2BdOiFiZX0sTWUpO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoVy5QYW5lbCxPYmplY3QuYXNzaWduKHtyZWY6YWV9LHJlLHtwcmVmaXhDbHM6JGUsY2xhc3NOYW1lOmtlfSkpfSksb2U9ZSgxMTU2OCksZmU9ZSgxNDc0NyksRWU9ZSgzMzUwNyksUmU9ZSg4MzU1OSksQmU9ZSg4MzI2Mik7Y29uc3QgWWU9cmU9Pntjb25zdHtjb21wb25lbnRDbHM6YWUsY29udGVudEJnOndlLHBhZGRpbmc6TGUsaGVhZGVyQmc6TWUsaGVhZGVyUGFkZGluZzpiZSxjb2xsYXBzZUhlYWRlclBhZGRpbmdTTTokZSxjb2xsYXBzZUhlYWRlclBhZGRpbmdMRzprZSxjb2xsYXBzZVBhbmVsQm9yZGVyUmFkaXVzOkFlLGxpbmVXaWR0aDp0dCxsaW5lVHlwZTptdCxjb2xvckJvcmRlcjp1dCxjb2xvclRleHQ6RGUsY29sb3JUZXh0SGVhZGluZzpOZSxjb2xvclRleHREaXNhYmxlZDpYZSxmb250U2l6ZUxHOkplLGxpbmVIZWlnaHQ6Z3QsbGluZUhlaWdodExHOmRlLG1hcmdpblNNOldlLHBhZGRpbmdTTTpTdCxwYWRkaW5nTEc6Y3QscGFkZGluZ1hTOk9lLG1vdGlvbkR1cmF0aW9uU2xvdzpHZSxmb250U2l6ZUljb246aHQsY29udGVudFBhZGRpbmc6emUsZm9udEhlaWdodDpRZSxmb250SGVpZ2h0TEc6cHR9PXJlLGJ0PWAkeygwLG9lLmJmKSh0dCl9ICR7bXR9ICR7dXR9YDtyZXR1cm57W2FlXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sKDAsZmUuV2YpKHJlKSkse2JhY2tncm91bmRDb2xvcjpNZSxib3JkZXI6YnQsYm9yZGVyUmFkaXVzOkFlLCImLXJ0bCI6e2RpcmVjdGlvbjoicnRsIn0sW2AmID4gJHthZX0taXRlbWBdOntib3JkZXJCb3R0b206YnQsIiY6Zmlyc3QtY2hpbGQiOntbYAorICAgICAgICAgICAgJiwKKyAgICAgICAgICAgICYgPiAke2FlfS1oZWFkZXJgXTp7Ym9yZGVyUmFkaXVzOmAkeygwLG9lLmJmKShBZSl9ICR7KDAsb2UuYmYpKEFlKX0gMCAwYH19LCImOmxhc3QtY2hpbGQiOntbYAorICAgICAgICAgICAgJiwKKyAgICAgICAgICAgICYgPiAke2FlfS1oZWFkZXJgXTp7Ym9yZGVyUmFkaXVzOmAwIDAgJHsoMCxvZS5iZikoQWUpfSAkeygwLG9lLmJmKShBZSl9YH19LFtgPiAke2FlfS1oZWFkZXJgXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe3Bvc2l0aW9uOiJyZWxhdGl2ZSIsZGlzcGxheToiZmxleCIsZmxleFdyYXA6Im5vd3JhcCIsYWxpZ25JdGVtczoiZmxleC1zdGFydCIscGFkZGluZzpiZSxjb2xvcjpOZSxsaW5lSGVpZ2h0Omd0LGN1cnNvcjoicG9pbnRlciIsdHJhbnNpdGlvbjpgYWxsICR7R2V9LCB2aXNpYmlsaXR5IDBzYH0sKDAsZmUuUXkpKHJlKSkse1tgPiAke2FlfS1oZWFkZXItdGV4dGBdOntmbGV4OiJhdXRvIn0sW2Ake2FlfS1leHBhbmQtaWNvbmBdOntoZWlnaHQ6UWUsZGlzcGxheToiZmxleCIsYWxpZ25JdGVtczoiY2VudGVyIixwYWRkaW5nSW5saW5lRW5kOldlfSxbYCR7YWV9LWFycm93YF06T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCgwLGZlLlJvKSgpKSx7Zm9udFNpemU6aHQsdHJhbnNpdGlvbjpgdHJhbnNmb3JtICR7R2V9YCxzdmc6e3RyYW5zaXRpb246YHRyYW5zZm9ybSAke0dlfWB9fSksW2Ake2FlfS1oZWFkZXItdGV4dGBdOnttYXJnaW5JbmxpbmVFbmQ6ImF1dG8ifX0pLFtgJHthZX0tY29sbGFwc2libGUtaGVhZGVyYF06e2N1cnNvcjoiZGVmYXVsdCIsW2Ake2FlfS1oZWFkZXItdGV4dGBdOntmbGV4OiJub25lIixjdXJzb3I6InBvaW50ZXIifX0sW2Ake2FlfS1jb2xsYXBzaWJsZS1pY29uYF06e2N1cnNvcjoidW5zZXQiLFtgJHthZX0tZXhwYW5kLWljb25gXTp7Y3Vyc29yOiJwb2ludGVyIn19fSxbYCR7YWV9LWNvbnRlbnRgXTp7Y29sb3I6RGUsYmFja2dyb3VuZENvbG9yOndlLGJvcmRlclRvcDpidCxbYCYgPiAke2FlfS1jb250ZW50LWJveGBdOntwYWRkaW5nOnplfSwiJi1oaWRkZW4iOntkaXNwbGF5OiJub25lIn19LCImLXNtYWxsIjp7W2A+ICR7YWV9LWl0ZW1gXTp7W2A+ICR7YWV9LWhlYWRlcmBdOntwYWRkaW5nOiRlLHBhZGRpbmdJbmxpbmVTdGFydDpPZSxbYD4gJHthZX0tZXhwYW5kLWljb25gXTp7bWFyZ2luSW5saW5lU3RhcnQ6cmUuY2FsYyhTdCkuc3ViKE9lKS5lcXVhbCgpfX0sW2A+ICR7YWV9LWNvbnRlbnQgPiAke2FlfS1jb250ZW50LWJveGBdOntwYWRkaW5nOlN0fX19LCImLWxhcmdlIjp7W2A+ICR7YWV9LWl0ZW1gXTp7Zm9udFNpemU6SmUsbGluZUhlaWdodDpkZSxbYD4gJHthZX0taGVhZGVyYF06e3BhZGRpbmc6a2UscGFkZGluZ0lubGluZVN0YXJ0OkxlLFtgPiAke2FlfS1leHBhbmQtaWNvbmBdOntoZWlnaHQ6cHQsbWFyZ2luSW5saW5lU3RhcnQ6cmUuY2FsYyhjdCkuc3ViKExlKS5lcXVhbCgpfX0sW2A+ICR7YWV9LWNvbnRlbnQgPiAke2FlfS1jb250ZW50LWJveGBdOntwYWRkaW5nOmN0fX19LFtgJHthZX0taXRlbTpsYXN0LWNoaWxkYF06e2JvcmRlckJvdHRvbTowLFtgPiAke2FlfS1jb250ZW50YF06e2JvcmRlclJhZGl1czpgMCAwICR7KDAsb2UuYmYpKEFlKX0gJHsoMCxvZS5iZikoQWUpfWB9fSxbYCYgJHthZX0taXRlbS1kaXNhYmxlZCA+ICR7YWV9LWhlYWRlcmBdOnsiXG4gICAgICAgICAgJixcbiAgICAgICAgICAmID4gLmFycm93XG4gICAgICAgICI6e2NvbG9yOlhlLGN1cnNvcjoibm90LWFsbG93ZWQifX0sW2AmJHthZX0taWNvbi1wb3NpdGlvbi1lbmRgXTp7W2AmID4gJHthZX0taXRlbWBdOntbYD4gJHthZX0taGVhZGVyYF06e1tgJHthZX0tZXhwYW5kLWljb25gXTp7b3JkZXI6MSxwYWRkaW5nSW5saW5lRW5kOjAscGFkZGluZ0lubGluZVN0YXJ0OldlfX19fX0pfX0sb3Q9cmU9Pntjb25zdHtjb21wb25lbnRDbHM6YWV9PXJlLHdlPWA+ICR7YWV9LWl0ZW0gPiAke2FlfS1oZWFkZXIgJHthZX0tYXJyb3dgO3JldHVybntbYCR7YWV9LXJ0bGBdOntbd2VdOnt0cmFuc2Zvcm06InJvdGF0ZSgxODBkZWcpIn19fX0scWU9cmU9Pntjb25zdHtjb21wb25lbnRDbHM6YWUsaGVhZGVyQmc6d2UscGFkZGluZ1hYUzpMZSxjb2xvckJvcmRlcjpNZX09cmU7cmV0dXJue1tgJHthZX0tYm9yZGVybGVzc2BdOntiYWNrZ3JvdW5kQ29sb3I6d2UsYm9yZGVyOjAsW2A+ICR7YWV9LWl0ZW1gXTp7Ym9yZGVyQm90dG9tOmAxcHggc29saWQgJHtNZX1gfSxbYAorICAgICAgICA+ICR7YWV9LWl0ZW06bGFzdC1jaGlsZCwKKyAgICAgICAgPiAke2FlfS1pdGVtOmxhc3QtY2hpbGQgJHthZX0taGVhZGVyCisgICAgICBgXTp7Ym9yZGVyUmFkaXVzOjB9LFtgPiAke2FlfS1pdGVtOmxhc3QtY2hpbGRgXTp7Ym9yZGVyQm90dG9tOjB9LFtgPiAke2FlfS1pdGVtID4gJHthZX0tY29udGVudGBdOntiYWNrZ3JvdW5kQ29sb3I6InRyYW5zcGFyZW50Iixib3JkZXJUb3A6MH0sW2A+ICR7YWV9LWl0ZW0gPiAke2FlfS1jb250ZW50ID4gJHthZX0tY29udGVudC1ib3hgXTp7cGFkZGluZ1RvcDpMZX19fX0sX2U9cmU9Pntjb25zdHtjb21wb25lbnRDbHM6YWUscGFkZGluZ1NNOndlfT1yZTtyZXR1cm57W2Ake2FlfS1naG9zdGBdOntiYWNrZ3JvdW5kQ29sb3I6InRyYW5zcGFyZW50Iixib3JkZXI6MCxbYD4gJHthZX0taXRlbWBdOntib3JkZXJCb3R0b206MCxbYD4gJHthZX0tY29udGVudGBdOntiYWNrZ3JvdW5kQ29sb3I6InRyYW5zcGFyZW50Iixib3JkZXI6MCxbYD4gJHthZX0tY29udGVudC1ib3hgXTp7cGFkZGluZ0Jsb2NrOndlfX19fX19LEZlPXJlPT4oe2hlYWRlclBhZGRpbmc6YCR7cmUucGFkZGluZ1NNfXB4ICR7cmUucGFkZGluZ31weGAsaGVhZGVyQmc6cmUuY29sb3JGaWxsQWx0ZXIsY29udGVudFBhZGRpbmc6YCR7cmUucGFkZGluZ31weCAxNnB4YCxjb250ZW50Qmc6cmUuY29sb3JCZ0NvbnRhaW5lcn0pO3ZhciBTZT0oMCxSZS5JJCkoIkNvbGxhcHNlIixyZT0+e2NvbnN0IGFlPSgwLEJlLklYKShyZSx7Y29sbGFwc2VIZWFkZXJQYWRkaW5nU006YCR7KDAsb2UuYmYpKHJlLnBhZGRpbmdYUyl9ICR7KDAsb2UuYmYpKHJlLnBhZGRpbmdTTSl9YCxjb2xsYXBzZUhlYWRlclBhZGRpbmdMRzpgJHsoMCxvZS5iZikocmUucGFkZGluZyl9ICR7KDAsb2UuYmYpKHJlLnBhZGRpbmdMRyl9YCxjb2xsYXBzZVBhbmVsQm9yZGVyUmFkaXVzOnJlLmJvcmRlclJhZGl1c0xHfSk7cmV0dXJuW1llKGFlKSxxZShhZSksX2UoYWUpLG90KGFlKSwoMCxFZS5aKShhZSldfSxGZSksaz1PYmplY3QuYXNzaWduKHIuZm9yd2FyZFJlZigocmUsYWUpPT57Y29uc3R7Z2V0UHJlZml4Q2xzOndlLGRpcmVjdGlvbjpMZSxleHBhbmRJY29uOk1lLGNsYXNzTmFtZTpiZSxzdHlsZTokZX09KDAsUC5kaikoImNvbGxhcHNlIikse3ByZWZpeENsczprZSxjbGFzc05hbWU6QWUscm9vdENsYXNzTmFtZTp0dCxzdHlsZTptdCxib3JkZXJlZDp1dD0hMCxnaG9zdDpEZSxzaXplOk5lLGV4cGFuZEljb25Qb3NpdGlvbjpYZT0ic3RhcnQiLGNoaWxkcmVuOkplLGV4cGFuZEljb246Z3R9PXJlLGRlPSgwLEsuWikoVHQ9Pnt2YXIgWHQ7cmV0dXJuKFh0PU5lIT1udWxsP05lOlR0KSE9PW51bGwmJlh0IT09dm9pZCAwP1h0OiJtaWRkbGUifSksV2U9d2UoImNvbGxhcHNlIixrZSksU3Q9d2UoKSxbY3QsT2UsR2VdPVNlKFdlKSxodD1yLnVzZU1lbW8oKCk9PlhlPT09ImxlZnQiPyJzdGFydCI6WGU9PT0icmlnaHQiPyJlbmQiOlhlLFtYZV0pLHplPWd0IT1udWxsP2d0Ok1lLFFlPXIudXNlQ2FsbGJhY2soZnVuY3Rpb24oKXtsZXQgVHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT12b2lkIDA/YXJndW1lbnRzWzBdOnt9O2NvbnN0IFh0PXR5cGVvZiB6ZT09ImZ1bmN0aW9uIj96ZShUdCk6ci5jcmVhdGVFbGVtZW50KGEuWix7cm90YXRlOlR0LmlzQWN0aXZlP0xlPT09InJ0bCI/LTkwOjkwOnZvaWQgMCwiYXJpYS1sYWJlbCI6VHQuaXNBY3RpdmU/ImV4cGFuZGVkIjoiY29sbGFwc2VkIn0pO3JldHVybigwLFouVG0pKFh0LCgpPT57dmFyIGZuO3JldHVybntjbGFzc05hbWU6aSgpKChmbj1YdD09bnVsbD92b2lkIDA6WHQucHJvcHMpPT09bnVsbHx8Zm49PT12b2lkIDA/dm9pZCAwOmZuLmNsYXNzTmFtZSxgJHtXZX0tYXJyb3dgKX19KX0sW3plLFdlXSkscHQ9aSgpKGAke1dlfS1pY29uLXBvc2l0aW9uLSR7aHR9YCx7W2Ake1dlfS1ib3JkZXJsZXNzYF06IXV0LFtgJHtXZX0tcnRsYF06TGU9PT0icnRsIixbYCR7V2V9LWdob3N0YF06ISFEZSxbYCR7V2V9LSR7ZGV9YF06ZGUhPT0ibWlkZGxlIn0sYmUsQWUsdHQsT2UsR2UpLGJ0PU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwoMCxWLlopKFN0KSkse21vdGlvbkFwcGVhcjohMSxsZWF2ZWRDbGFzc05hbWU6YCR7V2V9LWNvbnRlbnQtaGlkZGVuYH0pLEl0PXIudXNlTWVtbygoKT0+SmU/KDAsZy5aKShKZSkubWFwKChUdCxYdCk9Pnt2YXIgZm4sbm47Y29uc3Qgb249VHQucHJvcHM7aWYob24hPW51bGwmJm9uLmRpc2FibGVkKXtjb25zdCBOdD0oZm49VHQua2V5KSE9PW51bGwmJmZuIT09dm9pZCAwP2ZuOlN0cmluZyhYdCksWm49T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCgwLEQuWikoVHQucHJvcHMsWyJkaXNhYmxlZCJdKSkse2tleTpOdCxjb2xsYXBzaWJsZToobm49b24uY29sbGFwc2libGUpIT09bnVsbCYmbm4hPT12b2lkIDA/bm46ImRpc2FibGVkIn0pO3JldHVybigwLFouVG0pKFR0LFpuKX1yZXR1cm4gVHR9KTpudWxsLFtKZV0pO3JldHVybiBjdChyLmNyZWF0ZUVsZW1lbnQoVyxPYmplY3QuYXNzaWduKHtyZWY6YWUsb3Blbk1vdGlvbjpidH0sKDAsRC5aKShyZSxbInJvb3RDbGFzc05hbWUiXSkse2V4cGFuZEljb246UWUscHJlZml4Q2xzOldlLGNsYXNzTmFtZTpwdCxzdHlsZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sJGUpLG10KX0pLEl0KSl9KSx7UGFuZWw6bmV9KSxNPWssQT1lKDEwMTEwKSxVPWUoMjk2OTEpLE49ZSg5Mzc2Nik7Y29uc3QgUT1yZT0+cmUubWFwKGFlPT4oYWUuY29sb3JzPWFlLmNvbG9ycy5tYXAoTi52QyksYWUpKSx1ZT0ocmUsYWUpPT57Y29uc3R7cjp3ZSxnOkxlLGI6TWUsYTpiZX09cmUudG9SZ2IoKSwkZT1uZXcgbi5JbChyZS50b1JnYlN0cmluZygpKS5vbkJhY2tncm91bmQoYWUpLnRvSHN2KCk7cmV0dXJuIGJlPD0uNT8kZS52Pi41OndlKi4yOTkrTGUqLjU4NytNZSouMTE0PjE5Mn0sJD0ocmUsYWUpPT57dmFyIHdlO3JldHVybmBwYW5lbC0keyh3ZT1yZS5rZXkpIT09bnVsbCYmd2UhPT12b2lkIDA/d2U6YWV9YH07dmFyIHBlPXJlPT57bGV0e3ByZWZpeENsczphZSxwcmVzZXRzOndlLHZhbHVlOkxlLG9uQ2hhbmdlOk1lfT1yZTtjb25zdFtiZV09KDAsQS5aKSgiQ29sb3JQaWNrZXIiKSxbLCRlXT0oMCxVLlpQKSgpLFtrZV09KDAscy5aKShRKHdlKSx7dmFsdWU6USh3ZSkscG9zdFN0YXRlOlF9KSxBZT1gJHthZX0tcHJlc2V0c2AsdHQ9KDAsci51c2VNZW1vKSgoKT0+a2UucmVkdWNlKChEZSxOZSxYZSk9Pntjb25zdHtkZWZhdWx0T3BlbjpKZT0hMH09TmU7cmV0dXJuIEplJiZEZS5wdXNoKCQoTmUsWGUpKSxEZX0sW10pLFtrZV0pLG10PURlPT57TWU9PW51bGx8fE1lKERlKX0sdXQ9a2UubWFwKChEZSxOZSk9Pnt2YXIgWGU7cmV0dXJue2tleTokKERlLE5lKSxsYWJlbDpyLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpgJHtBZX0tbGFiZWxgfSxEZT09bnVsbD92b2lkIDA6RGUubGFiZWwpLGNoaWxkcmVuOnIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmAke0FlfS1pdGVtc2B9LEFycmF5LmlzQXJyYXkoRGU9PW51bGw/dm9pZCAwOkRlLmNvbG9ycykmJigoWGU9RGUuY29sb3JzKT09PW51bGx8fFhlPT09dm9pZCAwP3ZvaWQgMDpYZS5sZW5ndGgpPjA/RGUuY29sb3JzLm1hcCgoSmUsZ3QpPT5yLmNyZWF0ZUVsZW1lbnQobi5HNSx7a2V5OmBwcmVzZXQtJHtndH0tJHtKZS50b0hleFN0cmluZygpfWAsY29sb3I6KDAsTi52QykoSmUpLnRvUmdiU3RyaW5nKCkscHJlZml4Q2xzOmFlLGNsYXNzTmFtZTppKCkoYCR7QWV9LWNvbG9yYCx7W2Ake0FlfS1jb2xvci1jaGVja2VkYF06SmUudG9IZXhTdHJpbmcoKT09PShMZT09bnVsbD92b2lkIDA6TGUudG9IZXhTdHJpbmcoKSksW2Ake0FlfS1jb2xvci1icmlnaHRgXTp1ZShKZSwkZS5jb2xvckJnRWxldmF0ZWQpfSksb25DbGljazooKT0+bXQoSmUpfSkpOnIuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpgJHtBZX0tZW1wdHlgfSxiZS5wcmVzZXRFbXB0eSkpfX0pO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpBZX0sci5jcmVhdGVFbGVtZW50KE0se2RlZmF1bHRBY3RpdmVLZXk6dHQsZ2hvc3Q6ITAsaXRlbXM6dXR9KSl9fSw5Mzc2NjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtBTzpmdW5jdGlvbigpe3JldHVybiBjfSxUNzpmdW5jdGlvbigpe3JldHVybiB1fSxseDpmdW5jdGlvbigpe3JldHVybiBzfSx1WjpmdW5jdGlvbigpe3JldHVybiBhfSx2QzpmdW5jdGlvbigpe3JldHVybiBpfX0pO3ZhciByPWUoNzQ5MDIpLG49ZSgzOTg5OSksdD1lKDExNjE2KTtjb25zdCBpPWg9PmggaW5zdGFuY2VvZiB0Lnk5P2g6bmV3IHQueTkoaCkscz1oPT5NYXRoLnJvdW5kKE51bWJlcihofHwwKSksYT1oPT5zKGgudG9Ic2IoKS5hKjEwMCksdT0oaCxkKT0+e2NvbnN0IG09aC50b1JnYigpO2lmKCFtLnImJiFtLmcmJiFtLmIpe2NvbnN0IEM9aC50b0hzYigpO3JldHVybiBDLmE9ZHx8MSxpKEMpfXJldHVybiBtLmE9ZHx8MSxpKG0pfSxjPShoLGQpPT57Y29uc3QgbT1be3BlcmNlbnQ6MCxjb2xvcjpoWzBdLmNvbG9yfV0uY29uY2F0KCgwLHIuWikoaCksW3twZXJjZW50OjEwMCxjb2xvcjpoW2gubGVuZ3RoLTFdLmNvbG9yfV0pO2ZvcihsZXQgQz0wO0M8bS5sZW5ndGgtMTtDKz0xKXtjb25zdCBnPW1bQ10ucGVyY2VudCx3PW1bQysxXS5wZXJjZW50LEU9bVtDXS5jb2xvcix4PW1bQysxXS5jb2xvcjtpZihnPD1kJiZkPD13KXtjb25zdCBPPXctZztpZihPPT09MClyZXR1cm4gRTtjb25zdCBUPShkLWcpL08qMTAwLFM9bmV3IG4uSWwoRSksTD1uZXcgbi5JbCh4KTtyZXR1cm4gUy5taXgoTCxUKS50b1JnYlN0cmluZygpfX1yZXR1cm4iIn19LDk4ODY2OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse246ZnVuY3Rpb24oKXtyZXR1cm4gdH19KTt2YXIgcj1lKDY3Mjk0KTtjb25zdCBuPXIuY3JlYXRlQ29udGV4dCghMSksdD1pPT57bGV0e2NoaWxkcmVuOnMsZGlzYWJsZWQ6YX09aTtjb25zdCB1PXIudXNlQ29udGV4dChuKTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KG4uUHJvdmlkZXIse3ZhbHVlOmEhPW51bGw/YTp1fSxzKX07cC5aPW59LDk3NjQ3OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse3E6ZnVuY3Rpb24oKXtyZXR1cm4gdH19KTt2YXIgcj1lKDY3Mjk0KTtjb25zdCBuPXIuY3JlYXRlQ29udGV4dCh2b2lkIDApLHQ9aT0+e2xldHtjaGlsZHJlbjpzLHNpemU6YX09aTtjb25zdCB1PXIudXNlQ29udGV4dChuKTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KG4uUHJvdmlkZXIse3ZhbHVlOmF8fHV9LHMpfTtwLlo9bn0sNjk3MTE6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7eDpmdW5jdGlvbigpe3JldHVybiB0ZX19KTt2YXIgcj1lKDY3Mjk0KSxuPWUoNzM5MzUpLHQ9ZS50KG4sMiksaT1lKDc0MTY1KSxzPWUoMTU4NjEpLGE9ZSg3MTAwMiksdT1lKDE0MTMpLGM9KDAsdS5aKSh7fSx0KSxoPWMudmVyc2lvbixkPWMucmVuZGVyLG09Yy51bm1vdW50Q29tcG9uZW50QXROb2RlLEM7dHJ5e3ZhciBnPU51bWJlcigoaHx8IiIpLnNwbGl0KCIuIilbMF0pO2c+PTE4JiYoQz1jLmNyZWF0ZVJvb3QpfWNhdGNoKGxlKXt9ZnVuY3Rpb24gdyhsZSl7dmFyIGNlPWMuX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQ7Y2UmJigwLGEuWikoY2UpPT09Im9iamVjdCImJihjZS51c2luZ0NsaWVudEVudHJ5UG9pbnQ9bGUpfXZhciBFPSJfX3JjX3JlYWN0X3Jvb3RfXyI7ZnVuY3Rpb24geChsZSxjZSl7dyghMCk7dmFyIFc9Y2VbRV18fEMoY2UpO3coITEpLFcucmVuZGVyKGxlKSxjZVtFXT1XfWZ1bmN0aW9uIE8obGUsY2Upe2Q9PW51bGx8fGQobGUsY2UpfWZ1bmN0aW9uIFQobGUsY2Upe31mdW5jdGlvbiBTKGxlLGNlKXtpZihDKXt4KGxlLGNlKTtyZXR1cm59TyhsZSxjZSl9ZnVuY3Rpb24gTChsZSl7cmV0dXJuIEkuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEkoKXtyZXR1cm4gST0oMCxzLlopKCgwLGkuWikoKS5tYXJrKGZ1bmN0aW9uIGxlKGNlKXtyZXR1cm4oMCxpLlopKCkud3JhcChmdW5jdGlvbihqKXtmb3IoOzspc3dpdGNoKGoucHJldj1qLm5leHQpe2Nhc2UgMDpyZXR1cm4gai5hYnJ1cHQoInJldHVybiIsUHJvbWlzZS5yZXNvbHZlKCkudGhlbihmdW5jdGlvbigpe3ZhciBEOyhEPWNlW0VdKT09PW51bGx8fEQ9PT12b2lkIDB8fEQudW5tb3VudCgpLGRlbGV0ZSBjZVtFXX0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBqLnN0b3AoKX19LGxlKX0pKSxJLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBSKGxlKXttKGxlKX1mdW5jdGlvbiB6KGxlKXt9ZnVuY3Rpb24gRyhsZSl7cmV0dXJuIFkuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIFkoKXtyZXR1cm4gWT0oMCxzLlopKCgwLGkuWikoKS5tYXJrKGZ1bmN0aW9uIGxlKGNlKXtyZXR1cm4oMCxpLlopKCkud3JhcChmdW5jdGlvbihqKXtmb3IoOzspc3dpdGNoKGoucHJldj1qLm5leHQpe2Nhc2UgMDppZihDPT09dm9pZCAwKXtqLm5leHQ9MjticmVha31yZXR1cm4gai5hYnJ1cHQoInJldHVybiIsTChjZSkpO2Nhc2UgMjpSKGNlKTtjYXNlIDM6Y2FzZSJlbmQiOnJldHVybiBqLnN0b3AoKX19LGxlKX0pKSxZLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1sZXQgSj0obGUsY2UpPT4oUyhsZSxjZSksKCk9PkcoY2UpKTtmdW5jdGlvbiBtZShsZSl7Sj1sZX1mdW5jdGlvbiB0ZSgpe3JldHVybiBKfX0sNTMxMjQ6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7RV86ZnVuY3Rpb24oKXtyZXR1cm4gYX0sUmY6ZnVuY3Rpb24oKXtyZXR1cm4gbn0sZGo6ZnVuY3Rpb24oKXtyZXR1cm4gaH0sb1I6ZnVuY3Rpb24oKXtyZXR1cm4gdH0sdHI6ZnVuY3Rpb24oKXtyZXR1cm4gaX19KTt2YXIgcj1lKDY3Mjk0KTtjb25zdCBuPSJhbnQiLHQ9ImFudGljb24iLGk9WyJvdXRsaW5lZCIsImJvcmRlcmxlc3MiLCJmaWxsZWQiLCJ1bmRlcmxpbmVkIl0scz0oZCxtKT0+bXx8KGQ/YCR7bn0tJHtkfWA6biksYT1yLmNyZWF0ZUNvbnRleHQoe2dldFByZWZpeENsczpzLGljb25QcmVmaXhDbHM6dH0pLHtDb25zdW1lcjp1fT1hLGM9e307ZnVuY3Rpb24gaChkKXtjb25zdCBtPXIudXNlQ29udGV4dChhKSx7Z2V0UHJlZml4Q2xzOkMsZGlyZWN0aW9uOmcsZ2V0UG9wdXBDb250YWluZXI6d309bSxFPW1bZF07cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7Y2xhc3NOYW1lczpjLHN0eWxlczpjfSxFKSx7Z2V0UHJlZml4Q2xzOkMsZGlyZWN0aW9uOmcsZ2V0UG9wdXBDb250YWluZXI6d30pfX0sODgyNTg6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDY3Mjk0KSxuPWUoNTMxMjQpLHQ9ZSgzMjk4Myk7Y29uc3QgaT1zPT57Y29uc3R7Y29tcG9uZW50TmFtZTphfT1zLHtnZXRQcmVmaXhDbHM6dX09KDAsci51c2VDb250ZXh0KShuLkVfKSxjPXUoImVtcHR5Iik7c3dpdGNoKGEpe2Nhc2UiVGFibGUiOmNhc2UiTGlzdCI6cmV0dXJuIHIuY3JlYXRlRWxlbWVudCh0Llose2ltYWdlOnQuWi5QUkVTRU5URURfSU1BR0VfU0lNUExFfSk7Y2FzZSJTZWxlY3QiOmNhc2UiVHJlZVNlbGVjdCI6Y2FzZSJDYXNjYWRlciI6Y2FzZSJUcmFuc2ZlciI6Y2FzZSJNZW50aW9ucyI6cmV0dXJuIHIuY3JlYXRlRWxlbWVudCh0Llose2ltYWdlOnQuWi5QUkVTRU5URURfSU1BR0VfU0lNUExFLGNsYXNzTmFtZTpgJHtjfS1zbWFsbGB9KTtjYXNlIlRhYmxlLmZpbHRlciI6cmV0dXJuIG51bGw7ZGVmYXVsdDpyZXR1cm4gci5jcmVhdGVFbGVtZW50KHQuWixudWxsKX19O3AuWj1pfSwzNTc5MjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoMjk2OTEpO2NvbnN0IG49dD0+e2NvbnN0WywsLCxpXT0oMCxyLlpQKSgpO3JldHVybiBpP2Ake3R9LWNzcy12YXJgOiIifTtwLlo9bn0sOTg2NzU6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDY3Mjk0KSxuPWUoOTc2NDcpO2NvbnN0IHQ9aT0+e2NvbnN0IHM9ci51c2VDb250ZXh0KG4uWik7cmV0dXJuIHIudXNlTWVtbygoKT0+aT90eXBlb2YgaT09InN0cmluZyI/aSE9bnVsbD9pOnM6aSBpbnN0YW5jZW9mIEZ1bmN0aW9uP2kocyk6czpzLFtpLHNdKX07cC5aPXR9LDIxNTMyOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1pQOmZ1bmN0aW9uKCl7cmV0dXJuIF99LHc2OmZ1bmN0aW9uKCl7cmV0dXJuIFF9fSk7dmFyIHI9ZSg2NzI5NCksbj1lLnQociwyKSx0PWUoMTE1NjgpLGk9ZSg2MzAxNykscz1lKDU2OTgyKSxhPWUoODg4MCksdT1lKDI3Mjg4KSxjPWUoMzc5MjApLGg9ZSg4MzAwOCksZD1lKDc2NzQ1KTtjb25zdCBtPSJpbnRlcm5hbE1hcmsiO3ZhciBnPXBlPT57Y29uc3R7bG9jYWxlOnJlPXt9LGNoaWxkcmVuOmFlLF9BTlRfTUFSS19fOndlfT1wZTtyLnVzZUVmZmVjdCgoKT0+KDAsaC5mKShyZT09bnVsbD92b2lkIDA6cmUuTW9kYWwpLFtyZV0pO2NvbnN0IExlPXIudXNlTWVtbygoKT0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHJlKSx7ZXhpc3Q6ITB9KSxbcmVdKTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KGQuWi5Qcm92aWRlcix7dmFsdWU6TGV9LGFlKX0sdz1lKDI0NDU3KSxFPWUoMzE1NjcpLHg9ZSgzMzA4MyksTz1lKDI3OTApLFQ9ZSg1MzEyNCksUz1lKDg0ODk4KSxMPWUoMTUwNjMpLEk9ZSg5ODkyNCksUj1lKDQ0OTU4KTtjb25zdCB6PWAtYW50LSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpfWA7ZnVuY3Rpb24gRyhwZSxyZSl7Y29uc3QgYWU9e30sd2U9KGJlLCRlKT0+e2xldCBrZT1iZS5jbG9uZSgpO3JldHVybiBrZT0oJGU9PW51bGw/dm9pZCAwOiRlKGtlKSl8fGtlLGtlLnRvUmdiU3RyaW5nKCl9LExlPShiZSwkZSk9Pntjb25zdCBrZT1uZXcgTC50KGJlKSxBZT0oMCxTLmdlbmVyYXRlKShrZS50b1JnYlN0cmluZygpKTthZVtgJHskZX0tY29sb3JgXT13ZShrZSksYWVbYCR7JGV9LWNvbG9yLWRpc2FibGVkYF09QWVbMV0sYWVbYCR7JGV9LWNvbG9yLWhvdmVyYF09QWVbNF0sYWVbYCR7JGV9LWNvbG9yLWFjdGl2ZWBdPUFlWzZdLGFlW2AkeyRlfS1jb2xvci1vdXRsaW5lYF09a2UuY2xvbmUoKS5zZXRBKC4yKS50b1JnYlN0cmluZygpLGFlW2AkeyRlfS1jb2xvci1kZXByZWNhdGVkLWJnYF09QWVbMF0sYWVbYCR7JGV9LWNvbG9yLWRlcHJlY2F0ZWQtYm9yZGVyYF09QWVbMl19O2lmKHJlLnByaW1hcnlDb2xvcil7TGUocmUucHJpbWFyeUNvbG9yLCJwcmltYXJ5Iik7Y29uc3QgYmU9bmV3IEwudChyZS5wcmltYXJ5Q29sb3IpLCRlPSgwLFMuZ2VuZXJhdGUpKGJlLnRvUmdiU3RyaW5nKCkpOyRlLmZvckVhY2goKEFlLHR0KT0+e2FlW2BwcmltYXJ5LSR7dHQrMX1gXT1BZX0pLGFlWyJwcmltYXJ5LWNvbG9yLWRlcHJlY2F0ZWQtbC0zNSJdPXdlKGJlLEFlPT5BZS5saWdodGVuKDM1KSksYWVbInByaW1hcnktY29sb3ItZGVwcmVjYXRlZC1sLTIwIl09d2UoYmUsQWU9PkFlLmxpZ2h0ZW4oMjApKSxhZVsicHJpbWFyeS1jb2xvci1kZXByZWNhdGVkLXQtMjAiXT13ZShiZSxBZT0+QWUudGludCgyMCkpLGFlWyJwcmltYXJ5LWNvbG9yLWRlcHJlY2F0ZWQtdC01MCJdPXdlKGJlLEFlPT5BZS50aW50KDUwKSksYWVbInByaW1hcnktY29sb3ItZGVwcmVjYXRlZC1mLTEyIl09d2UoYmUsQWU9PkFlLnNldEEoQWUuYSouMTIpKTtjb25zdCBrZT1uZXcgTC50KCRlWzBdKTthZVsicHJpbWFyeS1jb2xvci1hY3RpdmUtZGVwcmVjYXRlZC1mLTMwIl09d2Uoa2UsQWU9PkFlLnNldEEoQWUuYSouMykpLGFlWyJwcmltYXJ5LWNvbG9yLWFjdGl2ZS1kZXByZWNhdGVkLWQtMDIiXT13ZShrZSxBZT0+QWUuZGFya2VuKDIpKX1yZXR1cm4gcmUuc3VjY2Vzc0NvbG9yJiZMZShyZS5zdWNjZXNzQ29sb3IsInN1Y2Nlc3MiKSxyZS53YXJuaW5nQ29sb3ImJkxlKHJlLndhcm5pbmdDb2xvciwid2FybmluZyIpLHJlLmVycm9yQ29sb3ImJkxlKHJlLmVycm9yQ29sb3IsImVycm9yIikscmUuaW5mb0NvbG9yJiZMZShyZS5pbmZvQ29sb3IsImluZm8iKSxgCisgIDpyb290IHsKKyAgICAke09iamVjdC5rZXlzKGFlKS5tYXAoYmU9PmAtLSR7cGV9LSR7YmV9OiAke2FlW2JlXX07YCkuam9pbihgCitgKX0KKyAgfQorICBgLnRyaW0oKX1mdW5jdGlvbiBZKHBlLHJlKXtjb25zdCBhZT1HKHBlLHJlKTsoMCxJLlopKCkmJigwLFIuaHEpKGFlLGAke3p9LWR5bmFtaWMtdGhlbWVgKX12YXIgZWU9ZSg5ODg2NiksSj1lKDk3NjQ3KTtmdW5jdGlvbiBtZSgpe2NvbnN0IHBlPSgwLHIudXNlQ29udGV4dCkoZWUuWikscmU9KDAsci51c2VDb250ZXh0KShKLlopO3JldHVybntjb21wb25lbnREaXNhYmxlZDpwZSxjb21wb25lbnRTaXplOnJlfX12YXIgdGU9bWUsbGU9ZSg5MTg4MSk7Y29uc3QgY2U9T2JqZWN0LmFzc2lnbih7fSxuKSx7dXNlSWQ6V309Y2U7dmFyIFY9dHlwZW9mIFc9PSJ1bmRlZmluZWQiPygpPT4iIjpXO2Z1bmN0aW9uIFoocGUscmUsYWUpe3ZhciB3ZSxMZTtjb25zdCBNZT0oMCx1LmxuKSgiQ29uZmlnUHJvdmlkZXIiKSxiZT1wZXx8e30sJGU9YmUuaW5oZXJpdD09PSExfHwhcmU/T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHgudV8pLHtoYXNoZWQ6KHdlPXJlPT1udWxsP3ZvaWQgMDpyZS5oYXNoZWQpIT09bnVsbCYmd2UhPT12b2lkIDA/d2U6eC51Xy5oYXNoZWQsY3NzVmFyOnJlPT1udWxsP3ZvaWQgMDpyZS5jc3NWYXJ9KTpyZSxrZT1WKCk7cmV0dXJuKDAscy5aKSgoKT0+e3ZhciBBZSx0dDtpZighcGUpcmV0dXJuIHJlO2NvbnN0IG10PU9iamVjdC5hc3NpZ24oe30sJGUuY29tcG9uZW50cyk7T2JqZWN0LmtleXMocGUuY29tcG9uZW50c3x8e30pLmZvckVhY2goTmU9PnttdFtOZV09T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG10W05lXSkscGUuY29tcG9uZW50c1tOZV0pfSk7Y29uc3QgdXQ9YGNzcy12YXItJHtrZS5yZXBsYWNlKC86L2csIiIpfWAsRGU9KChBZT1iZS5jc3NWYXIpIT09bnVsbCYmQWUhPT12b2lkIDA/QWU6JGUuY3NzVmFyKSYmT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe3ByZWZpeDphZT09bnVsbD92b2lkIDA6YWUucHJlZml4Q2xzfSx0eXBlb2YgJGUuY3NzVmFyPT0ib2JqZWN0Ij8kZS5jc3NWYXI6e30pLHR5cGVvZiBiZS5jc3NWYXI9PSJvYmplY3QiP2JlLmNzc1Zhcjp7fSkse2tleTp0eXBlb2YgYmUuY3NzVmFyPT0ib2JqZWN0IiYmKCh0dD1iZS5jc3NWYXIpPT09bnVsbHx8dHQ9PT12b2lkIDA/dm9pZCAwOnR0LmtleSl8fHV0fSk7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCRlKSxiZSkse3Rva2VuOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwkZS50b2tlbiksYmUudG9rZW4pLGNvbXBvbmVudHM6bXQsY3NzVmFyOkRlfSl9LFtiZSwkZV0sKEFlLHR0KT0+QWUuc29tZSgobXQsdXQpPT57Y29uc3QgRGU9dHRbdXRdO3JldHVybiEoMCxsZS5aKShtdCxEZSwhMCl9KSl9dmFyIFA9ZSgyOTM3MiksSz1lKDI5NjkxKTtmdW5jdGlvbiBzZShwZSl7Y29uc3R7Y2hpbGRyZW46cmV9PXBlLFssYWVdPSgwLEsuWlApKCkse21vdGlvbjp3ZX09YWUsTGU9ci51c2VSZWYoITEpO3JldHVybiBMZS5jdXJyZW50PUxlLmN1cnJlbnR8fHdlPT09ITEsTGUuY3VycmVudD9yLmNyZWF0ZUVsZW1lbnQoUC56dCx7bW90aW9uOndlfSxyZSk6cmV9Y29uc3QgbmU9bnVsbDt2YXIgb2U9KCk9Pm51bGwsZmU9ZSgxNDc0NyksUmU9KHBlLHJlKT0+e2NvbnN0W2FlLHdlXT0oMCxLLlpQKSgpO3JldHVybigwLHQueHkpKHt0aGVtZTphZSx0b2tlbjp3ZSxoYXNoSWQ6IiIscGF0aDpbImFudC1kZXNpZ24taWNvbnMiLHBlXSxub25jZTooKT0+cmU9PW51bGw/dm9pZCAwOnJlLm5vbmNlLGxheWVyOntuYW1lOiJhbnRkIn19LCgpPT5bKDAsZmUuSlQpKHBlKV0pfSxCZT1mdW5jdGlvbihwZSxyZSl7dmFyIGFlPXt9O2Zvcih2YXIgd2UgaW4gcGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHBlLHdlKSYmcmUuaW5kZXhPZih3ZSk8MCYmKGFlW3dlXT1wZVt3ZV0pO2lmKHBlIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIExlPTAsd2U9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhwZSk7TGU8d2UubGVuZ3RoO0xlKyspcmUuaW5kZXhPZih3ZVtMZV0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChwZSx3ZVtMZV0pJiYoYWVbd2VbTGVdXT1wZVt3ZVtMZV1dKTtyZXR1cm4gYWV9O2xldCBZZT0hMTtjb25zdCBvdD1udWxsLHFlPW51bGwsX2U9WyJnZXRUYXJnZXRDb250YWluZXIiLCJnZXRQb3B1cENvbnRhaW5lciIsInJlbmRlckVtcHR5IiwiaW5wdXQiLCJwYWdpbmF0aW9uIiwiZm9ybSIsInNlbGVjdCIsImJ1dHRvbiJdO2xldCBGZSxTZSxxLGs7ZnVuY3Rpb24gTSgpe3JldHVybiBGZXx8VC5SZn1mdW5jdGlvbiBBKCl7cmV0dXJuIFNlfHxULm9SfWZ1bmN0aW9uIFUocGUpe3JldHVybiBPYmplY3Qua2V5cyhwZSkuc29tZShyZT0+cmUuZW5kc1dpdGgoIkNvbG9yIikpfWNvbnN0IE49cGU9Pntjb25zdHtwcmVmaXhDbHM6cmUsaWNvblByZWZpeENsczphZSx0aGVtZTp3ZSxob2xkZXJSZW5kZXI6TGV9PXBlO3JlIT09dm9pZCAwJiYoRmU9cmUpLGFlIT09dm9pZCAwJiYoU2U9YWUpLCJob2xkZXJSZW5kZXIiaW4gcGUmJihrPUxlKSx3ZSYmKFUod2UpP1koTSgpLHdlKTpxPXdlKX0sUT0oKT0+KHtnZXRQcmVmaXhDbHM6KHBlLHJlKT0+cmV8fChwZT9gJHtNKCl9LSR7cGV9YDpNKCkpLGdldEljb25QcmVmaXhDbHM6QSxnZXRSb290UHJlZml4Q2xzOigpPT5GZXx8TSgpLGdldFRoZW1lOigpPT5xLGhvbGRlclJlbmRlcjprfSksdWU9cGU9Pntjb25zdHtjaGlsZHJlbjpyZSxjc3A6YWUsYXV0b0luc2VydFNwYWNlSW5CdXR0b246d2UsYWxlcnQ6TGUsYW5jaG9yOk1lLGZvcm06YmUsbG9jYWxlOiRlLGNvbXBvbmVudFNpemU6a2UsZGlyZWN0aW9uOkFlLHNwYWNlOnR0LHNwbGl0dGVyOm10LHZpcnR1YWw6dXQsZHJvcGRvd25NYXRjaFNlbGVjdFdpZHRoOkRlLHBvcHVwTWF0Y2hTZWxlY3RXaWR0aDpOZSxwb3B1cE92ZXJmbG93OlhlLGxlZ2FjeUxvY2FsZTpKZSxwYXJlbnRDb250ZXh0Omd0LGljb25QcmVmaXhDbHM6ZGUsdGhlbWU6V2UsY29tcG9uZW50RGlzYWJsZWQ6U3Qsc2VnbWVudGVkOmN0LHN0YXRpc3RpYzpPZSxzcGluOkdlLGNhbGVuZGFyOmh0LGNhcm91c2VsOnplLGNhc2NhZGVyOlFlLGNvbGxhcHNlOnB0LHR5cG9ncmFwaHk6YnQsY2hlY2tib3g6SXQsZGVzY3JpcHRpb25zOlR0LGRpdmlkZXI6WHQsZHJhd2VyOmZuLHNrZWxldG9uOm5uLHN0ZXBzOm9uLGltYWdlOk50LGxheW91dDpabixsaXN0OnluLG1lbnRpb25zOmduLG1vZGFsOkJuLHByb2dyZXNzOlZuLHJlc3VsdDpObixzbGlkZXI6ZnQsYnJlYWRjcnVtYjpldCxtZW51Okp0LHBhZ2luYXRpb246d3QsaW5wdXQ6X3QsdGV4dEFyZWE6eG4sZW1wdHk6WW4sYmFkZ2U6UG4scmFkaW86TG4scmF0ZTplcixzd2l0Y2g6UW4sdHJhbnNmZXI6dXIsYXZhdGFyOmlyLG1lc3NhZ2U6dm4sdGFnOmNyLHRhYmxlOlduLGNhcmQ6d24sdGFiczpDdCx0aW1lbGluZTpadCx0aW1lUGlja2VyOmFuLHVwbG9hZDpEdCxub3RpZmljYXRpb246a3QsdHJlZTp0bixjb2xvclBpY2tlcjptbixkYXRlUGlja2VyOktuLHJhbmdlUGlja2VyOkpuLGZsZXg6WG4sd2F2ZTpmcixkcm9wZG93bjpycix3YXJuaW5nOmhyLHRvdXI6Rm4sdG9vbHRpcDphcixwb3BvdmVyOmxyLHBvcGNvbmZpcm06JG4sZmxvYXRCdXR0b25Hcm91cDpzcix2YXJpYW50OkZyLGlucHV0TnVtYmVyOlplLHRyZWVTZWxlY3Q6SGV9PXBlLG50PXIudXNlQ2FsbGJhY2soKF9uLFBlKT0+e2NvbnN0e3ByZWZpeENsczpnZX09cGU7aWYoUGUpcmV0dXJuIFBlO2NvbnN0IHZlPWdlfHxndC5nZXRQcmVmaXhDbHMoIiIpO3JldHVybiBfbj9gJHt2ZX0tJHtfbn1gOnZlfSxbZ3QuZ2V0UHJlZml4Q2xzLHBlLnByZWZpeENsc10pLHJ0PWRlfHxndC5pY29uUHJlZml4Q2xzfHxULm9SLHZ0PWFlfHxndC5jc3A7UmUocnQsdnQpO2NvbnN0IFZ0PVooV2UsZ3QudGhlbWUse3ByZWZpeENsczpudCgiIil9KSxlbj17Y3NwOnZ0LGF1dG9JbnNlcnRTcGFjZUluQnV0dG9uOndlLGFsZXJ0OkxlLGFuY2hvcjpNZSxsb2NhbGU6JGV8fEplLGRpcmVjdGlvbjpBZSxzcGFjZTp0dCxzcGxpdHRlcjptdCx2aXJ0dWFsOnV0LHBvcHVwTWF0Y2hTZWxlY3RXaWR0aDpOZSE9bnVsbD9OZTpEZSxwb3B1cE92ZXJmbG93OlhlLGdldFByZWZpeENsczpudCxpY29uUHJlZml4Q2xzOnJ0LHRoZW1lOlZ0LHNlZ21lbnRlZDpjdCxzdGF0aXN0aWM6T2Usc3BpbjpHZSxjYWxlbmRhcjpodCxjYXJvdXNlbDp6ZSxjYXNjYWRlcjpRZSxjb2xsYXBzZTpwdCx0eXBvZ3JhcGh5OmJ0LGNoZWNrYm94Okl0LGRlc2NyaXB0aW9uczpUdCxkaXZpZGVyOlh0LGRyYXdlcjpmbixza2VsZXRvbjpubixzdGVwczpvbixpbWFnZTpOdCxpbnB1dDpfdCx0ZXh0QXJlYTp4bixsYXlvdXQ6Wm4sbGlzdDp5bixtZW50aW9uczpnbixtb2RhbDpCbixwcm9ncmVzczpWbixyZXN1bHQ6Tm4sc2xpZGVyOmZ0LGJyZWFkY3J1bWI6ZXQsbWVudTpKdCxwYWdpbmF0aW9uOnd0LGVtcHR5OlluLGJhZGdlOlBuLHJhZGlvOkxuLHJhdGU6ZXIsc3dpdGNoOlFuLHRyYW5zZmVyOnVyLGF2YXRhcjppcixtZXNzYWdlOnZuLHRhZzpjcix0YWJsZTpXbixjYXJkOnduLHRhYnM6Q3QsdGltZWxpbmU6WnQsdGltZVBpY2tlcjphbix1cGxvYWQ6RHQsbm90aWZpY2F0aW9uOmt0LHRyZWU6dG4sY29sb3JQaWNrZXI6bW4sZGF0ZVBpY2tlcjpLbixyYW5nZVBpY2tlcjpKbixmbGV4OlhuLHdhdmU6ZnIsZHJvcGRvd246cnIsd2FybmluZzpocix0b3VyOkZuLHRvb2x0aXA6YXIscG9wb3Zlcjpscixwb3Bjb25maXJtOiRuLGZsb2F0QnV0dG9uR3JvdXA6c3IsdmFyaWFudDpGcixpbnB1dE51bWJlcjpaZSx0cmVlU2VsZWN0OkhlfSxSbj1PYmplY3QuYXNzaWduKHt9LGd0KTtPYmplY3Qua2V5cyhlbikuZm9yRWFjaChfbj0+e2VuW19uXSE9PXZvaWQgMCYmKFJuW19uXT1lbltfbl0pfSksX2UuZm9yRWFjaChfbj0+e2NvbnN0IFBlPXBlW19uXTtQZSYmKFJuW19uXT1QZSl9KSx0eXBlb2Ygd2UhPSJ1bmRlZmluZWQiJiYoUm4uYnV0dG9uPU9iamVjdC5hc3NpZ24oe2F1dG9JbnNlcnRTcGFjZTp3ZX0sUm4uYnV0dG9uKSk7Y29uc3Qgam49KDAscy5aKSgoKT0+Um4sUm4sKF9uLFBlKT0+e2NvbnN0IGdlPU9iamVjdC5rZXlzKF9uKSx2ZT1PYmplY3Qua2V5cyhQZSk7cmV0dXJuIGdlLmxlbmd0aCE9PXZlLmxlbmd0aHx8Z2Uuc29tZShJZT0+X25bSWVdIT09UGVbSWVdKX0pLHtsYXllcjpibn09ci51c2VDb250ZXh0KHQudVApLEhuPXIudXNlTWVtbygoKT0+KHtwcmVmaXhDbHM6cnQsY3NwOnZ0LGxheWVyOmJuPyJhbnRkIjp2b2lkIDB9KSxbcnQsdnQsYm5dKTtsZXQgR3Q9ci5jcmVhdGVFbGVtZW50KHIuRnJhZ21lbnQsbnVsbCxyLmNyZWF0ZUVsZW1lbnQob2Use2Ryb3Bkb3duTWF0Y2hTZWxlY3RXaWR0aDpEZX0pLHJlKTtjb25zdCBTbj1yLnVzZU1lbW8oKCk9Pnt2YXIgX24sUGUsZ2UsdmU7cmV0dXJuKDAsYS5UKSgoKF9uPXcuWi5Gb3JtKT09PW51bGx8fF9uPT09dm9pZCAwP3ZvaWQgMDpfbi5kZWZhdWx0VmFsaWRhdGVNZXNzYWdlcyl8fHt9LCgoZ2U9KFBlPWpuLmxvY2FsZSk9PT1udWxsfHxQZT09PXZvaWQgMD92b2lkIDA6UGUuRm9ybSk9PT1udWxsfHxnZT09PXZvaWQgMD92b2lkIDA6Z2UuZGVmYXVsdFZhbGlkYXRlTWVzc2FnZXMpfHx7fSwoKHZlPWpuLmZvcm0pPT09bnVsbHx8dmU9PT12b2lkIDA/dm9pZCAwOnZlLnZhbGlkYXRlTWVzc2FnZXMpfHx7fSwoYmU9PW51bGw/dm9pZCAwOmJlLnZhbGlkYXRlTWVzc2FnZXMpfHx7fSl9LFtqbixiZT09bnVsbD92b2lkIDA6YmUudmFsaWRhdGVNZXNzYWdlc10pO09iamVjdC5rZXlzKFNuKS5sZW5ndGg+MCYmKEd0PXIuY3JlYXRlRWxlbWVudChjLlouUHJvdmlkZXIse3ZhbHVlOlNufSxHdCkpLCRlJiYoR3Q9ci5jcmVhdGVFbGVtZW50KGcse2xvY2FsZTokZSxfQU5UX01BUktfXzptfSxHdCkpLChydHx8dnQpJiYoR3Q9ci5jcmVhdGVFbGVtZW50KGkuWi5Qcm92aWRlcix7dmFsdWU6SG59LEd0KSksa2UmJihHdD1yLmNyZWF0ZUVsZW1lbnQoSi5xLHtzaXplOmtlfSxHdCkpLEd0PXIuY3JlYXRlRWxlbWVudChzZSxudWxsLEd0KTtjb25zdCBPbj1yLnVzZU1lbW8oKCk9Pntjb25zdCBfbj1WdHx8e30se2FsZ29yaXRobTpQZSx0b2tlbjpnZSxjb21wb25lbnRzOnZlLGNzc1ZhcjpJZX09X24seGU9QmUoX24sWyJhbGdvcml0aG0iLCJ0b2tlbiIsImNvbXBvbmVudHMiLCJjc3NWYXIiXSksYXQ9UGUmJighQXJyYXkuaXNBcnJheShQZSl8fFBlLmxlbmd0aD4wKT8oMCx0LmpHKShQZSk6RS5aLGR0PXt9O09iamVjdC5lbnRyaWVzKHZlfHx7fSkuZm9yRWFjaChIdD0+e2xldFtqdCxGdF09SHQ7Y29uc3QgcG49T2JqZWN0LmFzc2lnbih7fSxGdCk7ImFsZ29yaXRobSJpbiBwbiYmKHBuLmFsZ29yaXRobT09PSEwP3BuLnRoZW1lPWF0OihBcnJheS5pc0FycmF5KHBuLmFsZ29yaXRobSl8fHR5cGVvZiBwbi5hbGdvcml0aG09PSJmdW5jdGlvbiIpJiYocG4udGhlbWU9KDAsdC5qRykocG4uYWxnb3JpdGhtKSksZGVsZXRlIHBuLmFsZ29yaXRobSksZHRbanRdPXBufSk7Y29uc3QgRXQ9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LE8uWiksZ2UpO3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30seGUpLHt0aGVtZTphdCx0b2tlbjpFdCxjb21wb25lbnRzOmR0LG92ZXJyaWRlOk9iamVjdC5hc3NpZ24oe292ZXJyaWRlOkV0fSxkdCksY3NzVmFyOkllfSl9LFtWdF0pO3JldHVybiBXZSYmKEd0PXIuY3JlYXRlRWxlbWVudCh4Lk1qLlByb3ZpZGVyLHt2YWx1ZTpPbn0sR3QpKSxqbi53YXJuaW5nJiYoR3Q9ci5jcmVhdGVFbGVtZW50KHUuRzguUHJvdmlkZXIse3ZhbHVlOmpuLndhcm5pbmd9LEd0KSksU3QhPT12b2lkIDAmJihHdD1yLmNyZWF0ZUVsZW1lbnQoZWUubix7ZGlzYWJsZWQ6U3R9LEd0KSksci5jcmVhdGVFbGVtZW50KFQuRV8uUHJvdmlkZXIse3ZhbHVlOmpufSxHdCl9LCQ9cGU9Pntjb25zdCByZT1yLnVzZUNvbnRleHQoVC5FXyksYWU9ci51c2VDb250ZXh0KGQuWik7cmV0dXJuIHIuY3JlYXRlRWxlbWVudCh1ZSxPYmplY3QuYXNzaWduKHtwYXJlbnRDb250ZXh0OnJlLGxlZ2FjeUxvY2FsZTphZX0scGUpKX07JC5Db25maWdDb250ZXh0PVQuRV8sJC5TaXplQ29udGV4dD1KLlosJC5jb25maWc9TiwkLnVzZUNvbmZpZz10ZSxPYmplY3QuZGVmaW5lUHJvcGVydHkoJCwiU2l6ZUNvbnRleHQiLHtnZXQ6KCk9PkouWn0pO3ZhciBfPSR9LDg3MjA2OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1o6ZnVuY3Rpb24oKXtyZXR1cm4gdX19KTt2YXIgcj1lKDE0MTMpLG49ZSgyNTU0MSksdD0oMCxyLlopKCgwLHIuWikoe30sbi56KSx7fSx7bG9jYWxlOiJlbl9VUyIsdG9kYXk6IlRvZGF5Iixub3c6Ik5vdyIsYmFja1RvVG9kYXk6IkJhY2sgdG8gdG9kYXkiLG9rOiJPSyIsY2xlYXI6IkNsZWFyIix3ZWVrOiJXZWVrIixtb250aDoiTW9udGgiLHllYXI6IlllYXIiLHRpbWVTZWxlY3Q6InNlbGVjdCB0aW1lIixkYXRlU2VsZWN0OiJzZWxlY3QgZGF0ZSIsd2Vla1NlbGVjdDoiQ2hvb3NlIGEgd2VlayIsbW9udGhTZWxlY3Q6IkNob29zZSBhIG1vbnRoIix5ZWFyU2VsZWN0OiJDaG9vc2UgYSB5ZWFyIixkZWNhZGVTZWxlY3Q6IkNob29zZSBhIGRlY2FkZSIsZGF0ZUZvcm1hdDoiTS9EL1lZWVkiLGRhdGVUaW1lRm9ybWF0OiJNL0QvWVlZWSBISDptbTpzcyIscHJldmlvdXNNb250aDoiUHJldmlvdXMgbW9udGggKFBhZ2VVcCkiLG5leHRNb250aDoiTmV4dCBtb250aCAoUGFnZURvd24pIixwcmV2aW91c1llYXI6Ikxhc3QgeWVhciAoQ29udHJvbCArIGxlZnQpIixuZXh0WWVhcjoiTmV4dCB5ZWFyIChDb250cm9sICsgcmlnaHQpIixwcmV2aW91c0RlY2FkZToiTGFzdCBkZWNhZGUiLG5leHREZWNhZGU6Ik5leHQgZGVjYWRlIixwcmV2aW91c0NlbnR1cnk6Ikxhc3QgY2VudHVyeSIsbmV4dENlbnR1cnk6Ik5leHQgY2VudHVyeSJ9KSxpPXQscz1lKDQyMTE1KSx1PXtsYW5nOk9iamVjdC5hc3NpZ24oe3BsYWNlaG9sZGVyOiJTZWxlY3QgZGF0ZSIseWVhclBsYWNlaG9sZGVyOiJTZWxlY3QgeWVhciIscXVhcnRlclBsYWNlaG9sZGVyOiJTZWxlY3QgcXVhcnRlciIsbW9udGhQbGFjZWhvbGRlcjoiU2VsZWN0IG1vbnRoIix3ZWVrUGxhY2Vob2xkZXI6IlNlbGVjdCB3ZWVrIixyYW5nZVBsYWNlaG9sZGVyOlsiU3RhcnQgZGF0ZSIsIkVuZCBkYXRlIl0scmFuZ2VZZWFyUGxhY2Vob2xkZXI6WyJTdGFydCB5ZWFyIiwiRW5kIHllYXIiXSxyYW5nZVF1YXJ0ZXJQbGFjZWhvbGRlcjpbIlN0YXJ0IHF1YXJ0ZXIiLCJFbmQgcXVhcnRlciJdLHJhbmdlTW9udGhQbGFjZWhvbGRlcjpbIlN0YXJ0IG1vbnRoIiwiRW5kIG1vbnRoIl0scmFuZ2VXZWVrUGxhY2Vob2xkZXI6WyJTdGFydCB3ZWVrIiwiRW5kIHdlZWsiXX0saSksdGltZVBpY2tlckxvY2FsZTpPYmplY3QuYXNzaWduKHt9LHMuWil9fSw5NjA3NDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIHd9fSk7dmFyIHI9ZSg2NzI5NCksbj1lKDkzOTY3KSx0PWUubihuKSxpPWUoNTMxMjQpLHM9ZSgxMTU2OCksYT1lKDE0NzQ3KSx1PWUoODM1NTkpLGM9ZSg4MzI2Mik7Y29uc3QgaD1FPT57Y29uc3R7Y29tcG9uZW50Q2xzOngsc2l6ZVBhZGRpbmdFZGdlSG9yaXpvbnRhbDpPLGNvbG9yU3BsaXQ6VCxsaW5lV2lkdGg6Uyx0ZXh0UGFkZGluZ0lubGluZTpMLG9yaWVudGF0aW9uTWFyZ2luOkksdmVydGljYWxNYXJnaW5JbmxpbmU6Un09RTtyZXR1cm57W3hdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwoMCxhLldmKShFKSkse2JvcmRlckJsb2NrU3RhcnQ6YCR7KDAscy5iZikoUyl9IHNvbGlkICR7VH1gLCImLXZlcnRpY2FsIjp7cG9zaXRpb246InJlbGF0aXZlIix0b3A6Ii0wLjA2ZW0iLGRpc3BsYXk6ImlubGluZS1ibG9jayIsaGVpZ2h0OiIwLjllbSIsbWFyZ2luSW5saW5lOlIsbWFyZ2luQmxvY2s6MCx2ZXJ0aWNhbEFsaWduOiJtaWRkbGUiLGJvcmRlclRvcDowLGJvcmRlcklubGluZVN0YXJ0OmAkeygwLHMuYmYpKFMpfSBzb2xpZCAke1R9YH0sIiYtaG9yaXpvbnRhbCI6e2Rpc3BsYXk6ImZsZXgiLGNsZWFyOiJib3RoIix3aWR0aDoiMTAwJSIsbWluV2lkdGg6IjEwMCUiLG1hcmdpbjpgJHsoMCxzLmJmKShFLmRpdmlkZXJIb3Jpem9udGFsR3V0dGVyTWFyZ2luKX0gMGB9LFtgJi1ob3Jpem9udGFsJHt4fS13aXRoLXRleHRgXTp7ZGlzcGxheToiZmxleCIsYWxpZ25JdGVtczoiY2VudGVyIixtYXJnaW46YCR7KDAscy5iZikoRS5kaXZpZGVySG9yaXpvbnRhbFdpdGhUZXh0R3V0dGVyTWFyZ2luKX0gMGAsY29sb3I6RS5jb2xvclRleHRIZWFkaW5nLGZvbnRXZWlnaHQ6NTAwLGZvbnRTaXplOkUuZm9udFNpemVMRyx3aGl0ZVNwYWNlOiJub3dyYXAiLHRleHRBbGlnbjoiY2VudGVyIixib3JkZXJCbG9ja1N0YXJ0OmAwICR7VH1gLCImOjpiZWZvcmUsICY6OmFmdGVyIjp7cG9zaXRpb246InJlbGF0aXZlIix3aWR0aDoiNTAlIixib3JkZXJCbG9ja1N0YXJ0OmAkeygwLHMuYmYpKFMpfSBzb2xpZCB0cmFuc3BhcmVudGAsYm9yZGVyQmxvY2tTdGFydENvbG9yOiJpbmhlcml0Iixib3JkZXJCbG9ja0VuZDowLHRyYW5zZm9ybToidHJhbnNsYXRlWSg1MCUpIixjb250ZW50OiInJyJ9fSxbYCYtaG9yaXpvbnRhbCR7eH0td2l0aC10ZXh0LXN0YXJ0YF06eyImOjpiZWZvcmUiOnt3aWR0aDpgY2FsYygke0l9ICogMTAwJSlgfSwiJjo6YWZ0ZXIiOnt3aWR0aDpgY2FsYygxMDAlIC0gJHtJfSAqIDEwMCUpYH19LFtgJi1ob3Jpem9udGFsJHt4fS13aXRoLXRleHQtZW5kYF06eyImOjpiZWZvcmUiOnt3aWR0aDpgY2FsYygxMDAlIC0gJHtJfSAqIDEwMCUpYH0sIiY6OmFmdGVyIjp7d2lkdGg6YGNhbGMoJHtJfSAqIDEwMCUpYH19LFtgJHt4fS1pbm5lci10ZXh0YF06e2Rpc3BsYXk6ImlubGluZS1ibG9jayIscGFkZGluZ0Jsb2NrOjAscGFkZGluZ0lubGluZTpMfSwiJi1kYXNoZWQiOntiYWNrZ3JvdW5kOiJub25lIixib3JkZXJDb2xvcjpULGJvcmRlclN0eWxlOiJkYXNoZWQiLGJvcmRlcldpZHRoOmAkeygwLHMuYmYpKFMpfSAwIDBgfSxbYCYtaG9yaXpvbnRhbCR7eH0td2l0aC10ZXh0JHt4fS1kYXNoZWRgXTp7IiY6OmJlZm9yZSwgJjo6YWZ0ZXIiOntib3JkZXJTdHlsZToiZGFzaGVkIG5vbmUgbm9uZSJ9fSxbYCYtdmVydGljYWwke3h9LWRhc2hlZGBdOntib3JkZXJJbmxpbmVTdGFydFdpZHRoOlMsYm9yZGVySW5saW5lRW5kOjAsYm9yZGVyQmxvY2tTdGFydDowLGJvcmRlckJsb2NrRW5kOjB9LCImLWRvdHRlZCI6e2JhY2tncm91bmQ6Im5vbmUiLGJvcmRlckNvbG9yOlQsYm9yZGVyU3R5bGU6ImRvdHRlZCIsYm9yZGVyV2lkdGg6YCR7KDAscy5iZikoUyl9IDAgMGB9LFtgJi1ob3Jpem9udGFsJHt4fS13aXRoLXRleHQke3h9LWRvdHRlZGBdOnsiJjo6YmVmb3JlLCAmOjphZnRlciI6e2JvcmRlclN0eWxlOiJkb3R0ZWQgbm9uZSBub25lIn19LFtgJi12ZXJ0aWNhbCR7eH0tZG90dGVkYF06e2JvcmRlcklubGluZVN0YXJ0V2lkdGg6Uyxib3JkZXJJbmxpbmVFbmQ6MCxib3JkZXJCbG9ja1N0YXJ0OjAsYm9yZGVyQmxvY2tFbmQ6MH0sW2AmLXBsYWluJHt4fS13aXRoLXRleHRgXTp7Y29sb3I6RS5jb2xvclRleHQsZm9udFdlaWdodDoibm9ybWFsIixmb250U2l6ZTpFLmZvbnRTaXplfSxbYCYtaG9yaXpvbnRhbCR7eH0td2l0aC10ZXh0LXN0YXJ0JHt4fS1uby1kZWZhdWx0LW9yaWVudGF0aW9uLW1hcmdpbi1zdGFydGBdOnsiJjo6YmVmb3JlIjp7d2lkdGg6MH0sIiY6OmFmdGVyIjp7d2lkdGg6IjEwMCUifSxbYCR7eH0taW5uZXItdGV4dGBdOntwYWRkaW5nSW5saW5lU3RhcnQ6T319LFtgJi1ob3Jpem9udGFsJHt4fS13aXRoLXRleHQtZW5kJHt4fS1uby1kZWZhdWx0LW9yaWVudGF0aW9uLW1hcmdpbi1lbmRgXTp7IiY6OmJlZm9yZSI6e3dpZHRoOiIxMDAlIn0sIiY6OmFmdGVyIjp7d2lkdGg6MH0sW2Ake3h9LWlubmVyLXRleHRgXTp7cGFkZGluZ0lubGluZUVuZDpPfX19KX19LGQ9RT0+KHt0ZXh0UGFkZGluZ0lubGluZToiMWVtIixvcmllbnRhdGlvbk1hcmdpbjouMDUsdmVydGljYWxNYXJnaW5JbmxpbmU6RS5tYXJnaW5YU30pO3ZhciBtPSgwLHUuSSQpKCJEaXZpZGVyIixFPT57Y29uc3QgeD0oMCxjLklYKShFLHtkaXZpZGVySG9yaXpvbnRhbFdpdGhUZXh0R3V0dGVyTWFyZ2luOkUubWFyZ2luLGRpdmlkZXJIb3Jpem9udGFsR3V0dGVyTWFyZ2luOkUubWFyZ2luTEcsc2l6ZVBhZGRpbmdFZGdlSG9yaXpvbnRhbDowfSk7cmV0dXJuW2goeCldfSxkLHt1bml0bGVzczp7b3JpZW50YXRpb25NYXJnaW46ITB9fSksQz1mdW5jdGlvbihFLHgpe3ZhciBPPXt9O2Zvcih2YXIgVCBpbiBFKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChFLFQpJiZ4LmluZGV4T2YoVCk8MCYmKE9bVF09RVtUXSk7aWYoRSE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBTPTAsVD1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKEUpO1M8VC5sZW5ndGg7UysrKXguaW5kZXhPZihUW1NdKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoRSxUW1NdKSYmKE9bVFtTXV09RVtUW1NdXSk7cmV0dXJuIE99LHc9RT0+e2NvbnN0e2dldFByZWZpeENsczp4LGRpcmVjdGlvbjpPLGNsYXNzTmFtZTpULHN0eWxlOlN9PSgwLGkuZGopKCJkaXZpZGVyIikse3ByZWZpeENsczpMLHR5cGU6ST0iaG9yaXpvbnRhbCIsb3JpZW50YXRpb246Uj0iY2VudGVyIixvcmllbnRhdGlvbk1hcmdpbjp6LGNsYXNzTmFtZTpHLHJvb3RDbGFzc05hbWU6WSxjaGlsZHJlbjplZSxkYXNoZWQ6Six2YXJpYW50Om1lPSJzb2xpZCIscGxhaW46dGUsc3R5bGU6bGV9PUUsY2U9QyhFLFsicHJlZml4Q2xzIiwidHlwZSIsIm9yaWVudGF0aW9uIiwib3JpZW50YXRpb25NYXJnaW4iLCJjbGFzc05hbWUiLCJyb290Q2xhc3NOYW1lIiwiY2hpbGRyZW4iLCJkYXNoZWQiLCJ2YXJpYW50IiwicGxhaW4iLCJzdHlsZSJdKSxXPXgoImRpdmlkZXIiLEwpLFtqLEQsVl09bShXKSxaPSEhZWUsUD1yLnVzZU1lbW8oKCk9PlI9PT0ibGVmdCI/Tz09PSJydGwiPyJlbmQiOiJzdGFydCI6Uj09PSJyaWdodCI/Tz09PSJydGwiPyJzdGFydCI6ImVuZCI6UixbTyxSXSksSz1QPT09InN0YXJ0IiYmeiE9bnVsbCxzZT1QPT09ImVuZCImJnohPW51bGwsbmU9dCgpKFcsVCxELFYsYCR7V30tJHtJfWAse1tgJHtXfS13aXRoLXRleHRgXTpaLFtgJHtXfS13aXRoLXRleHQtJHtQfWBdOlosW2Ake1d9LWRhc2hlZGBdOiEhSixbYCR7V30tJHttZX1gXTptZSE9PSJzb2xpZCIsW2Ake1d9LXBsYWluYF06ISF0ZSxbYCR7V30tcnRsYF06Tz09PSJydGwiLFtgJHtXfS1uby1kZWZhdWx0LW9yaWVudGF0aW9uLW1hcmdpbi1zdGFydGBdOkssW2Ake1d9LW5vLWRlZmF1bHQtb3JpZW50YXRpb24tbWFyZ2luLWVuZGBdOnNlfSxHLFkpLG9lPXIudXNlTWVtbygoKT0+dHlwZW9mIHo9PSJudW1iZXIiP3o6L15cZCskLy50ZXN0KHopP051bWJlcih6KTp6LFt6XSksZmU9e21hcmdpbklubGluZVN0YXJ0Oks/b2U6dm9pZCAwLG1hcmdpbklubGluZUVuZDpzZT9vZTp2b2lkIDB9O3JldHVybiBqKHIuY3JlYXRlRWxlbWVudCgiZGl2IixPYmplY3QuYXNzaWduKHtjbGFzc05hbWU6bmUsc3R5bGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LFMpLGxlKX0sY2Use3JvbGU6InNlcGFyYXRvciJ9KSxlZSYmSSE9PSJ2ZXJ0aWNhbCImJnIuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpgJHtXfS1pbm5lci10ZXh0YCxzdHlsZTpmZX0sZWUpKSl9fSw4NTI2NTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIHVlfX0pO3ZhciByPWUoNjcyOTQpLG49ZSg5Mzk2NyksdD1lLm4obiksaT1lKDE0MTMpLHM9ZSg5NzY4NSksYT1lKDI3ODgpLHU9ZSg4NDEwKSxjPXIuY3JlYXRlQ29udGV4dChudWxsKSxoPXIuY3JlYXRlQ29udGV4dCh7fSksZD1jLG09ZSg0OTQyKSxDPWUoODc0NjIpLGc9ZSgyOTM3Miksdz1lKDE1MTA1KSxFPWUoNjQyMTcpLHg9ZSg5MSksTz1lKDQyNTUwKSxUPVsicHJlZml4Q2xzIiwiY2xhc3NOYW1lIiwiY29udGFpbmVyUmVmIl0sUz1mdW5jdGlvbihfKXt2YXIgcGU9Xy5wcmVmaXhDbHMscmU9Xy5jbGFzc05hbWUsYWU9Xy5jb250YWluZXJSZWYsd2U9KDAseC5aKShfLFQpLExlPXIudXNlQ29udGV4dChoKSxNZT1MZS5wYW5lbCxiZT0oMCxPLngxKShNZSxhZSk7cmV0dXJuIHIuY3JlYXRlRWxlbWVudCgiZGl2IiwoMCxDLlopKHtjbGFzc05hbWU6dCgpKCIiLmNvbmNhdChwZSwiLWNvbnRlbnQiKSxyZSkscm9sZToiZGlhbG9nIixyZWY6YmV9LCgwLEUuWikoXyx7YXJpYTohMH0pLHsiYXJpYS1tb2RhbCI6InRydWUifSx3ZSkpfSxMPVMsST1lKDgwMzM0KTtmdW5jdGlvbiBSKCQpe3JldHVybiB0eXBlb2YgJD09InN0cmluZyImJlN0cmluZyhOdW1iZXIoJCkpPT09JD8oKDAsSS5aUCkoITEsIkludmFsaWQgdmFsdWUgdHlwZSBvZiBgd2lkdGhgIG9yIGBoZWlnaHRgIHdoaWNoIHNob3VsZCBiZSBudW1iZXIgdHlwZSBpbnN0ZWFkLiIpLE51bWJlcigkKSk6JH1mdW5jdGlvbiB6KCQpe3dhcm5pbmcoISgid3JhcHBlckNsYXNzTmFtZSJpbiAkKSwiJ3dyYXBwZXJDbGFzc05hbWUnIGlzIHJlbW92ZWQuIFBsZWFzZSB1c2UgJ3Jvb3RDbGFzc05hbWUnIGluc3RlYWQuIiksd2FybmluZyhjYW5Vc2VEb20oKXx8ISQub3BlbiwiRHJhd2VyIHdpdGggJ29wZW4nIGluIFNTUiBpcyBub3Qgd29yayBzaW5jZSBubyBwbGFjZSB0byBjcmVhdGVQb3J0YWwuIFBsZWFzZSBtb3ZlIHRvICd1c2VFZmZlY3QnIGluc3RlYWQuIil9dmFyIEc9e3dpZHRoOjAsaGVpZ2h0OjAsb3ZlcmZsb3c6ImhpZGRlbiIsb3V0bGluZToibm9uZSIscG9zaXRpb246ImFic29sdXRlIn07ZnVuY3Rpb24gWSgkLF8pe3ZhciBwZSxyZSxhZSx3ZT0kLnByZWZpeENscyxMZT0kLm9wZW4sTWU9JC5wbGFjZW1lbnQsYmU9JC5pbmxpbmUsJGU9JC5wdXNoLGtlPSQuZm9yY2VSZW5kZXIsQWU9JC5hdXRvRm9jdXMsdHQ9JC5rZXlib2FyZCxtdD0kLmNsYXNzTmFtZXMsdXQ9JC5yb290Q2xhc3NOYW1lLERlPSQucm9vdFN0eWxlLE5lPSQuekluZGV4LFhlPSQuY2xhc3NOYW1lLEplPSQuaWQsZ3Q9JC5zdHlsZSxkZT0kLm1vdGlvbixXZT0kLndpZHRoLFN0PSQuaGVpZ2h0LGN0PSQuY2hpbGRyZW4sT2U9JC5tYXNrLEdlPSQubWFza0Nsb3NhYmxlLGh0PSQubWFza01vdGlvbix6ZT0kLm1hc2tDbGFzc05hbWUsUWU9JC5tYXNrU3R5bGUscHQ9JC5hZnRlck9wZW5DaGFuZ2UsYnQ9JC5vbkNsb3NlLEl0PSQub25Nb3VzZUVudGVyLFR0PSQub25Nb3VzZU92ZXIsWHQ9JC5vbk1vdXNlTGVhdmUsZm49JC5vbkNsaWNrLG5uPSQub25LZXlEb3duLG9uPSQub25LZXlVcCxOdD0kLnN0eWxlcyxabj0kLmRyYXdlclJlbmRlcix5bj1yLnVzZVJlZigpLGduPXIudXNlUmVmKCksQm49ci51c2VSZWYoKTtyLnVzZUltcGVyYXRpdmVIYW5kbGUoXyxmdW5jdGlvbigpe3JldHVybiB5bi5jdXJyZW50fSk7dmFyIFZuPWZ1bmN0aW9uKGNyKXt2YXIgV249Y3Iua2V5Q29kZSx3bj1jci5zaGlmdEtleTtzd2l0Y2goV24pe2Nhc2Ugdy5aLlRBQjp7aWYoV249PT13LlouVEFCKXtpZighd24mJmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1Cbi5jdXJyZW50KXt2YXIgQ3Q7KEN0PWduLmN1cnJlbnQpPT09bnVsbHx8Q3Q9PT12b2lkIDB8fEN0LmZvY3VzKHtwcmV2ZW50U2Nyb2xsOiEwfSl9ZWxzZSBpZih3biYmZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PWduLmN1cnJlbnQpe3ZhciBadDsoWnQ9Qm4uY3VycmVudCk9PT1udWxsfHxadD09PXZvaWQgMHx8WnQuZm9jdXMoe3ByZXZlbnRTY3JvbGw6ITB9KX19YnJlYWt9Y2FzZSB3LlouRVNDOntidCYmdHQmJihjci5zdG9wUHJvcGFnYXRpb24oKSxidChjcikpO2JyZWFrfX19O3IudXNlRWZmZWN0KGZ1bmN0aW9uKCl7aWYoTGUmJkFlKXt2YXIgdm47KHZuPXluLmN1cnJlbnQpPT09bnVsbHx8dm49PT12b2lkIDB8fHZuLmZvY3VzKHtwcmV2ZW50U2Nyb2xsOiEwfSl9fSxbTGVdKTt2YXIgTm49ci51c2VTdGF0ZSghMSksZnQ9KDAscy5aKShObiwyKSxldD1mdFswXSxKdD1mdFsxXSx3dD1yLnVzZUNvbnRleHQoZCksX3Q7dHlwZW9mICRlPT0iYm9vbGVhbiI/X3Q9JGU/e306e2Rpc3RhbmNlOjB9Ol90PSRlfHx7fTt2YXIgeG49KHBlPShyZT0oYWU9X3QpPT09bnVsbHx8YWU9PT12b2lkIDA/dm9pZCAwOmFlLmRpc3RhbmNlKSE9PW51bGwmJnJlIT09dm9pZCAwP3JlOnd0PT1udWxsP3ZvaWQgMDp3dC5wdXNoRGlzdGFuY2UpIT09bnVsbCYmcGUhPT12b2lkIDA/cGU6MTgwLFluPXIudXNlTWVtbyhmdW5jdGlvbigpe3JldHVybntwdXNoRGlzdGFuY2U6eG4scHVzaDpmdW5jdGlvbigpe0p0KCEwKX0scHVsbDpmdW5jdGlvbigpe0p0KCExKX19fSxbeG5dKTtyLnVzZUVmZmVjdChmdW5jdGlvbigpe2lmKExlKXt2YXIgdm47d3Q9PW51bGx8fCh2bj13dC5wdXNoKT09PW51bGx8fHZuPT09dm9pZCAwfHx2bi5jYWxsKHd0KX1lbHNle3ZhciBjcjt3dD09bnVsbHx8KGNyPXd0LnB1bGwpPT09bnVsbHx8Y3I9PT12b2lkIDB8fGNyLmNhbGwod3QpfX0sW0xlXSksci51c2VFZmZlY3QoZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgdm47d3Q9PW51bGx8fCh2bj13dC5wdWxsKT09PW51bGx8fHZuPT09dm9pZCAwfHx2bi5jYWxsKHd0KX19LFtdKTt2YXIgUG49T2UmJnIuY3JlYXRlRWxlbWVudChnLlpQLCgwLEMuWikoe2tleToibWFzayJ9LGh0LHt2aXNpYmxlOkxlfSksZnVuY3Rpb24odm4sY3Ipe3ZhciBXbj12bi5jbGFzc05hbWUsd249dm4uc3R5bGU7cmV0dXJuIHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnQoKSgiIi5jb25jYXQod2UsIi1tYXNrIiksV24sbXQ9PW51bGw/dm9pZCAwOm10Lm1hc2ssemUpLHN0eWxlOigwLGkuWikoKDAsaS5aKSgoMCxpLlopKHt9LHduKSxRZSksTnQ9PW51bGw/dm9pZCAwOk50Lm1hc2spLG9uQ2xpY2s6R2UmJkxlP2J0OnZvaWQgMCxyZWY6Y3J9KX0pLExuPXR5cGVvZiBkZT09ImZ1bmN0aW9uIj9kZShNZSk6ZGUsZXI9e307aWYoZXQmJnhuKXN3aXRjaChNZSl7Y2FzZSJ0b3AiOmVyLnRyYW5zZm9ybT0idHJhbnNsYXRlWSgiLmNvbmNhdCh4biwicHgpIik7YnJlYWs7Y2FzZSJib3R0b20iOmVyLnRyYW5zZm9ybT0idHJhbnNsYXRlWSgiLmNvbmNhdCgteG4sInB4KSIpO2JyZWFrO2Nhc2UibGVmdCI6ZXIudHJhbnNmb3JtPSJ0cmFuc2xhdGVYKCIuY29uY2F0KHhuLCJweCkiKTticmVhaztkZWZhdWx0OmVyLnRyYW5zZm9ybT0idHJhbnNsYXRlWCgiLmNvbmNhdCgteG4sInB4KSIpO2JyZWFrfU1lPT09ImxlZnQifHxNZT09PSJyaWdodCI/ZXIud2lkdGg9UihXZSk6ZXIuaGVpZ2h0PVIoU3QpO3ZhciBRbj17b25Nb3VzZUVudGVyOkl0LG9uTW91c2VPdmVyOlR0LG9uTW91c2VMZWF2ZTpYdCxvbkNsaWNrOmZuLG9uS2V5RG93bjpubixvbktleVVwOm9ufSx1cj1yLmNyZWF0ZUVsZW1lbnQoZy5aUCwoMCxDLlopKHtrZXk6InBhbmVsIn0sTG4se3Zpc2libGU6TGUsZm9yY2VSZW5kZXI6a2Usb25WaXNpYmxlQ2hhbmdlZDpmdW5jdGlvbihjcil7cHQ9PW51bGx8fHB0KGNyKX0scmVtb3ZlT25MZWF2ZTohMSxsZWF2ZWRDbGFzc05hbWU6IiIuY29uY2F0KHdlLCItY29udGVudC13cmFwcGVyLWhpZGRlbiIpfSksZnVuY3Rpb24odm4sY3Ipe3ZhciBXbj12bi5jbGFzc05hbWUsd249dm4uc3R5bGUsQ3Q9ci5jcmVhdGVFbGVtZW50KEwsKDAsQy5aKSh7aWQ6SmUsY29udGFpbmVyUmVmOmNyLHByZWZpeENsczp3ZSxjbGFzc05hbWU6dCgpKFhlLG10PT1udWxsP3ZvaWQgMDptdC5jb250ZW50KSxzdHlsZTooMCxpLlopKCgwLGkuWikoe30sZ3QpLE50PT1udWxsP3ZvaWQgMDpOdC5jb250ZW50KX0sKDAsRS5aKSgkLHthcmlhOiEwfSksUW4pLGN0KTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KCJkaXYiLCgwLEMuWikoe2NsYXNzTmFtZTp0KCkoIiIuY29uY2F0KHdlLCItY29udGVudC13cmFwcGVyIiksbXQ9PW51bGw/dm9pZCAwOm10LndyYXBwZXIsV24pLHN0eWxlOigwLGkuWikoKDAsaS5aKSgoMCxpLlopKHt9LGVyKSx3biksTnQ9PW51bGw/dm9pZCAwOk50LndyYXBwZXIpfSwoMCxFLlopKCQse2RhdGE6ITB9KSksWm4/Wm4oQ3QpOkN0KX0pLGlyPSgwLGkuWikoe30sRGUpO3JldHVybiBOZSYmKGlyLnpJbmRleD1OZSksci5jcmVhdGVFbGVtZW50KGQuUHJvdmlkZXIse3ZhbHVlOllufSxyLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTp0KCkod2UsIiIuY29uY2F0KHdlLCItIikuY29uY2F0KE1lKSx1dCwoMCxtLlopKCgwLG0uWikoe30sIiIuY29uY2F0KHdlLCItb3BlbiIpLExlKSwiIi5jb25jYXQod2UsIi1pbmxpbmUiKSxiZSkpLHN0eWxlOmlyLHRhYkluZGV4Oi0xLHJlZjp5bixvbktleURvd246Vm59LFBuLHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7dGFiSW5kZXg6MCxyZWY6Z24sc3R5bGU6RywiYXJpYS1oaWRkZW4iOiJ0cnVlIiwiZGF0YS1zZW50aW5lbCI6InN0YXJ0In0pLHVyLHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7dGFiSW5kZXg6MCxyZWY6Qm4sc3R5bGU6RywiYXJpYS1oaWRkZW4iOiJ0cnVlIiwiZGF0YS1zZW50aW5lbCI6ImVuZCJ9KSkpfXZhciBlZT1yLmZvcndhcmRSZWYoWSksSj1lZSxtZT1mdW5jdGlvbihfKXt2YXIgcGU9Xy5vcGVuLHJlPXBlPT09dm9pZCAwPyExOnBlLGFlPV8ucHJlZml4Q2xzLHdlPWFlPT09dm9pZCAwPyJyYy1kcmF3ZXIiOmFlLExlPV8ucGxhY2VtZW50LE1lPUxlPT09dm9pZCAwPyJyaWdodCI6TGUsYmU9Xy5hdXRvRm9jdXMsJGU9YmU9PT12b2lkIDA/ITA6YmUsa2U9Xy5rZXlib2FyZCxBZT1rZT09PXZvaWQgMD8hMDprZSx0dD1fLndpZHRoLG10PXR0PT09dm9pZCAwPzM3ODp0dCx1dD1fLm1hc2ssRGU9dXQ9PT12b2lkIDA/ITA6dXQsTmU9Xy5tYXNrQ2xvc2FibGUsWGU9TmU9PT12b2lkIDA/ITA6TmUsSmU9Xy5nZXRDb250YWluZXIsZ3Q9Xy5mb3JjZVJlbmRlcixkZT1fLmFmdGVyT3BlbkNoYW5nZSxXZT1fLmRlc3Ryb3lPbkNsb3NlLFN0PV8ub25Nb3VzZUVudGVyLGN0PV8ub25Nb3VzZU92ZXIsT2U9Xy5vbk1vdXNlTGVhdmUsR2U9Xy5vbkNsaWNrLGh0PV8ub25LZXlEb3duLHplPV8ub25LZXlVcCxRZT1fLnBhbmVsUmVmLHB0PXIudXNlU3RhdGUoITEpLGJ0PSgwLHMuWikocHQsMiksSXQ9YnRbMF0sVHQ9YnRbMV0sWHQ9ci51c2VTdGF0ZSghMSksZm49KDAscy5aKShYdCwyKSxubj1mblswXSxvbj1mblsxXTsoMCx1LlopKGZ1bmN0aW9uKCl7b24oITApfSxbXSk7dmFyIE50PW5uP3JlOiExLFpuPXIudXNlUmVmKCkseW49ci51c2VSZWYoKTsoMCx1LlopKGZ1bmN0aW9uKCl7TnQmJih5bi5jdXJyZW50PWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpfSxbTnRdKTt2YXIgZ249ZnVuY3Rpb24oZXQpe3ZhciBKdDtpZihUdChldCksZGU9PW51bGx8fGRlKGV0KSwhZXQmJnluLmN1cnJlbnQmJiEoKEp0PVpuLmN1cnJlbnQpIT09bnVsbCYmSnQhPT12b2lkIDAmJkp0LmNvbnRhaW5zKHluLmN1cnJlbnQpKSl7dmFyIHd0Oyh3dD15bi5jdXJyZW50KT09PW51bGx8fHd0PT09dm9pZCAwfHx3dC5mb2N1cyh7cHJldmVudFNjcm9sbDohMH0pfX0sQm49ci51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJue3BhbmVsOlFlfX0sW1FlXSk7aWYoIWd0JiYhSXQmJiFOdCYmV2UpcmV0dXJuIG51bGw7dmFyIFZuPXtvbk1vdXNlRW50ZXI6U3Qsb25Nb3VzZU92ZXI6Y3Qsb25Nb3VzZUxlYXZlOk9lLG9uQ2xpY2s6R2Usb25LZXlEb3duOmh0LG9uS2V5VXA6emV9LE5uPSgwLGkuWikoKDAsaS5aKSh7fSxfKSx7fSx7b3BlbjpOdCxwcmVmaXhDbHM6d2UscGxhY2VtZW50Ok1lLGF1dG9Gb2N1czokZSxrZXlib2FyZDpBZSx3aWR0aDptdCxtYXNrOkRlLG1hc2tDbG9zYWJsZTpYZSxpbmxpbmU6SmU9PT0hMSxhZnRlck9wZW5DaGFuZ2U6Z24scmVmOlpufSxWbik7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChoLlByb3ZpZGVyLHt2YWx1ZTpCbn0sci5jcmVhdGVFbGVtZW50KGEuWix7b3BlbjpOdHx8Z3R8fEl0LGF1dG9EZXN0cm95OiExLGdldENvbnRhaW5lcjpKZSxhdXRvTG9jazpEZSYmKE50fHxJdCl9LHIuY3JlYXRlRWxlbWVudChKLE5uKSkpfSx0ZT1tZSxsZT10ZSxjZT1lKDg5OTQyKSxXPWUoODcyNjMpLGo9ZSgzMzYwMyksRD1lKDQzOTQ1KSxWPWUoNTMxMjQpLFo9ZSgxNjU2OSksUD1lKDY5NzYwKSxLPWUoNDgwNTQpLG5lPSQ9Pnt2YXIgXyxwZTtjb25zdHtwcmVmaXhDbHM6cmUsdGl0bGU6YWUsZm9vdGVyOndlLGV4dHJhOkxlLGxvYWRpbmc6TWUsb25DbG9zZTpiZSxoZWFkZXJTdHlsZTokZSxib2R5U3R5bGU6a2UsZm9vdGVyU3R5bGU6QWUsY2hpbGRyZW46dHQsY2xhc3NOYW1lczptdCxzdHlsZXM6dXR9PSQsRGU9KDAsVi5kaikoImRyYXdlciIpLE5lPXIudXNlQ2FsbGJhY2soV2U9PnIuY3JlYXRlRWxlbWVudCgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixvbkNsaWNrOmJlLCJhcmlhLWxhYmVsIjoiQ2xvc2UiLGNsYXNzTmFtZTpgJHtyZX0tY2xvc2VgfSxXZSksW2JlXSksW1hlLEplXT0oMCxQLlopKCgwLFAudykoJCksKDAsUC53KShEZSkse2Nsb3NhYmxlOiEwLGNsb3NlSWNvblJlbmRlcjpOZX0pLGd0PXIudXNlTWVtbygoKT0+e3ZhciBXZSxTdDtyZXR1cm4hYWUmJiFYZT9udWxsOnIuY3JlYXRlRWxlbWVudCgiZGl2Iix7c3R5bGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sKFdlPURlLnN0eWxlcyk9PT1udWxsfHxXZT09PXZvaWQgMD92b2lkIDA6V2UuaGVhZGVyKSwkZSksdXQ9PW51bGw/dm9pZCAwOnV0LmhlYWRlciksY2xhc3NOYW1lOnQoKShgJHtyZX0taGVhZGVyYCx7W2Ake3JlfS1oZWFkZXItY2xvc2Utb25seWBdOlhlJiYhYWUmJiFMZX0sKFN0PURlLmNsYXNzTmFtZXMpPT09bnVsbHx8U3Q9PT12b2lkIDA/dm9pZCAwOlN0LmhlYWRlcixtdD09bnVsbD92b2lkIDA6bXQuaGVhZGVyKX0sci5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YCR7cmV9LWhlYWRlci10aXRsZWB9LEplLGFlJiZyLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpgJHtyZX0tdGl0bGVgfSxhZSkpLExlJiZyLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpgJHtyZX0tZXh0cmFgfSxMZSkpfSxbWGUsSmUsTGUsJGUscmUsYWVdKSxkZT1yLnVzZU1lbW8oKCk9Pnt2YXIgV2UsU3Q7aWYoIXdlKXJldHVybiBudWxsO2NvbnN0IGN0PWAke3JlfS1mb290ZXJgO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTp0KCkoY3QsKFdlPURlLmNsYXNzTmFtZXMpPT09bnVsbHx8V2U9PT12b2lkIDA/dm9pZCAwOldlLmZvb3RlcixtdD09bnVsbD92b2lkIDA6bXQuZm9vdGVyKSxzdHlsZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwoU3Q9RGUuc3R5bGVzKT09PW51bGx8fFN0PT09dm9pZCAwP3ZvaWQgMDpTdC5mb290ZXIpLEFlKSx1dD09bnVsbD92b2lkIDA6dXQuZm9vdGVyKX0sd2UpfSxbd2UsQWUscmVdKTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KHIuRnJhZ21lbnQsbnVsbCxndCxyLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTp0KCkoYCR7cmV9LWJvZHlgLG10PT1udWxsP3ZvaWQgMDptdC5ib2R5LChfPURlLmNsYXNzTmFtZXMpPT09bnVsbHx8Xz09PXZvaWQgMD92b2lkIDA6Xy5ib2R5KSxzdHlsZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwocGU9RGUuc3R5bGVzKT09PW51bGx8fHBlPT09dm9pZCAwP3ZvaWQgMDpwZS5ib2R5KSxrZSksdXQ9PW51bGw/dm9pZCAwOnV0LmJvZHkpfSxNZT9yLmNyZWF0ZUVsZW1lbnQoSy5aLHthY3RpdmU6ITAsdGl0bGU6ITEscGFyYWdyYXBoOntyb3dzOjV9LGNsYXNzTmFtZTpgJHtyZX0tYm9keS1za2VsZXRvbmB9KTp0dCksZGUpfSxvZT1lKDExNTY4KSxmZT1lKDE0NzQ3KSxFZT1lKDgzNTU5KSxSZT1lKDgzMjYyKTtjb25zdCBCZT0kPT57Y29uc3QgXz0iMTAwJSI7cmV0dXJue2xlZnQ6YHRyYW5zbGF0ZVgoLSR7X30pYCxyaWdodDpgdHJhbnNsYXRlWCgke199KWAsdG9wOmB0cmFuc2xhdGVZKC0ke199KWAsYm90dG9tOmB0cmFuc2xhdGVZKCR7X30pYH1bJF19LFllPSgkLF8pPT4oeyImLWVudGVyLCAmLWFwcGVhciI6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCQpLHsiJi1hY3RpdmUiOl99KSwiJi1sZWF2ZSI6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LF8pLHsiJi1hY3RpdmUiOiR9KX0pLG90PSgkLF8pPT5PYmplY3QuYXNzaWduKHsiJi1lbnRlciwgJi1hcHBlYXIsICYtbGVhdmUiOnsiJi1zdGFydCI6e3RyYW5zaXRpb246Im5vbmUifSwiJi1hY3RpdmUiOnt0cmFuc2l0aW9uOmBhbGwgJHtffWB9fX0sWWUoe29wYWNpdHk6JH0se29wYWNpdHk6MX0pKSxxZT0oJCxfKT0+W290KC43LF8pLFllKHt0cmFuc2Zvcm06QmUoJCl9LHt0cmFuc2Zvcm06Im5vbmUifSldO3ZhciBGZT0kPT57Y29uc3R7Y29tcG9uZW50Q2xzOl8sbW90aW9uRHVyYXRpb25TbG93OnBlfT0kO3JldHVybntbX106e1tgJHtffS1tYXNrLW1vdGlvbmBdOm90KDAscGUpLFtgJHtffS1wYW5lbC1tb3Rpb25gXTpbImxlZnQiLCJyaWdodCIsInRvcCIsImJvdHRvbSJdLnJlZHVjZSgocmUsYWUpPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30scmUpLHtbYCYtJHthZX1gXTpxZShhZSxwZSl9KSx7fSl9fX07Y29uc3QgU2U9JD0+e2NvbnN0e2JvcmRlclJhZGl1c1NNOl8sY29tcG9uZW50Q2xzOnBlLHpJbmRleFBvcHVwOnJlLGNvbG9yQmdNYXNrOmFlLGNvbG9yQmdFbGV2YXRlZDp3ZSxtb3Rpb25EdXJhdGlvblNsb3c6TGUsbW90aW9uRHVyYXRpb25NaWQ6TWUscGFkZGluZ1hTOmJlLHBhZGRpbmc6JGUscGFkZGluZ0xHOmtlLGZvbnRTaXplTEc6QWUsbGluZUhlaWdodExHOnR0LGxpbmVXaWR0aDptdCxsaW5lVHlwZTp1dCxjb2xvclNwbGl0OkRlLG1hcmdpblhTOk5lLGNvbG9ySWNvbjpYZSxjb2xvckljb25Ib3ZlcjpKZSxjb2xvckJnVGV4dEhvdmVyOmd0LGNvbG9yQmdUZXh0QWN0aXZlOmRlLGNvbG9yVGV4dDpXZSxmb250V2VpZ2h0U3Ryb25nOlN0LGZvb3RlclBhZGRpbmdCbG9jazpjdCxmb290ZXJQYWRkaW5nSW5saW5lOk9lLGNhbGM6R2V9PSQsaHQ9YCR7cGV9LWNvbnRlbnQtd3JhcHBlcmA7cmV0dXJue1twZV06e3Bvc2l0aW9uOiJmaXhlZCIsaW5zZXQ6MCx6SW5kZXg6cmUscG9pbnRlckV2ZW50czoibm9uZSIsY29sb3I6V2UsIiYtcHVyZSI6e3Bvc2l0aW9uOiJyZWxhdGl2ZSIsYmFja2dyb3VuZDp3ZSxkaXNwbGF5OiJmbGV4IixmbGV4RGlyZWN0aW9uOiJjb2x1bW4iLFtgJiR7cGV9LWxlZnRgXTp7Ym94U2hhZG93OiQuYm94U2hhZG93RHJhd2VyTGVmdH0sW2AmJHtwZX0tcmlnaHRgXTp7Ym94U2hhZG93OiQuYm94U2hhZG93RHJhd2VyUmlnaHR9LFtgJiR7cGV9LXRvcGBdOntib3hTaGFkb3c6JC5ib3hTaGFkb3dEcmF3ZXJVcH0sW2AmJHtwZX0tYm90dG9tYF06e2JveFNoYWRvdzokLmJveFNoYWRvd0RyYXdlckRvd259fSwiJi1pbmxpbmUiOntwb3NpdGlvbjoiYWJzb2x1dGUifSxbYCR7cGV9LW1hc2tgXTp7cG9zaXRpb246ImFic29sdXRlIixpbnNldDowLHpJbmRleDpyZSxiYWNrZ3JvdW5kOmFlLHBvaW50ZXJFdmVudHM6ImF1dG8ifSxbaHRdOntwb3NpdGlvbjoiYWJzb2x1dGUiLHpJbmRleDpyZSxtYXhXaWR0aDoiMTAwdnciLHRyYW5zaXRpb246YGFsbCAke0xlfWAsIiYtaGlkZGVuIjp7ZGlzcGxheToibm9uZSJ9fSxbYCYtbGVmdCA+ICR7aHR9YF06e3RvcDowLGJvdHRvbTowLGxlZnQ6e19za2lwX2NoZWNrXzohMCx2YWx1ZTowfSxib3hTaGFkb3c6JC5ib3hTaGFkb3dEcmF3ZXJMZWZ0fSxbYCYtcmlnaHQgPiAke2h0fWBdOnt0b3A6MCxyaWdodDp7X3NraXBfY2hlY2tfOiEwLHZhbHVlOjB9LGJvdHRvbTowLGJveFNoYWRvdzokLmJveFNoYWRvd0RyYXdlclJpZ2h0fSxbYCYtdG9wID4gJHtodH1gXTp7dG9wOjAsaW5zZXRJbmxpbmU6MCxib3hTaGFkb3c6JC5ib3hTaGFkb3dEcmF3ZXJVcH0sW2AmLWJvdHRvbSA+ICR7aHR9YF06e2JvdHRvbTowLGluc2V0SW5saW5lOjAsYm94U2hhZG93OiQuYm94U2hhZG93RHJhd2VyRG93bn0sW2Ake3BlfS1jb250ZW50YF06e2Rpc3BsYXk6ImZsZXgiLGZsZXhEaXJlY3Rpb246ImNvbHVtbiIsd2lkdGg6IjEwMCUiLGhlaWdodDoiMTAwJSIsb3ZlcmZsb3c6ImF1dG8iLGJhY2tncm91bmQ6d2UscG9pbnRlckV2ZW50czoiYXV0byJ9LFtgJHtwZX0taGVhZGVyYF06e2Rpc3BsYXk6ImZsZXgiLGZsZXg6MCxhbGlnbkl0ZW1zOiJjZW50ZXIiLHBhZGRpbmc6YCR7KDAsb2UuYmYpKCRlKX0gJHsoMCxvZS5iZikoa2UpfWAsZm9udFNpemU6QWUsbGluZUhlaWdodDp0dCxib3JkZXJCb3R0b206YCR7KDAsb2UuYmYpKG10KX0gJHt1dH0gJHtEZX1gLCImLXRpdGxlIjp7ZGlzcGxheToiZmxleCIsZmxleDoxLGFsaWduSXRlbXM6ImNlbnRlciIsbWluV2lkdGg6MCxtaW5IZWlnaHQ6MH19LFtgJHtwZX0tZXh0cmFgXTp7ZmxleDoibm9uZSJ9LFtgJHtwZX0tY2xvc2VgXTpPYmplY3QuYXNzaWduKHtkaXNwbGF5OiJpbmxpbmUtZmxleCIsd2lkdGg6R2UoQWUpLmFkZChiZSkuZXF1YWwoKSxoZWlnaHQ6R2UoQWUpLmFkZChiZSkuZXF1YWwoKSxib3JkZXJSYWRpdXM6XyxqdXN0aWZ5Q29udGVudDoiY2VudGVyIixhbGlnbkl0ZW1zOiJjZW50ZXIiLG1hcmdpbklubGluZUVuZDpOZSxjb2xvcjpYZSxmb250V2VpZ2h0OlN0LGZvbnRTaXplOkFlLGZvbnRTdHlsZToibm9ybWFsIixsaW5lSGVpZ2h0OjEsdGV4dEFsaWduOiJjZW50ZXIiLHRleHRUcmFuc2Zvcm06Im5vbmUiLHRleHREZWNvcmF0aW9uOiJub25lIixiYWNrZ3JvdW5kOiJ0cmFuc3BhcmVudCIsYm9yZGVyOjAsY3Vyc29yOiJwb2ludGVyIix0cmFuc2l0aW9uOmBhbGwgJHtNZX1gLHRleHRSZW5kZXJpbmc6ImF1dG8iLCImOmhvdmVyIjp7Y29sb3I6SmUsYmFja2dyb3VuZENvbG9yOmd0LHRleHREZWNvcmF0aW9uOiJub25lIn0sIiY6YWN0aXZlIjp7YmFja2dyb3VuZENvbG9yOmRlfX0sKDAsZmUuUXkpKCQpKSxbYCR7cGV9LXRpdGxlYF06e2ZsZXg6MSxtYXJnaW46MCxmb250V2VpZ2h0OiQuZm9udFdlaWdodFN0cm9uZyxmb250U2l6ZTpBZSxsaW5lSGVpZ2h0OnR0fSxbYCR7cGV9LWJvZHlgXTp7ZmxleDoxLG1pbldpZHRoOjAsbWluSGVpZ2h0OjAscGFkZGluZzprZSxvdmVyZmxvdzoiYXV0byIsW2Ake3BlfS1ib2R5LXNrZWxldG9uYF06e3dpZHRoOiIxMDAlIixoZWlnaHQ6IjEwMCUiLGRpc3BsYXk6ImZsZXgiLGp1c3RpZnlDb250ZW50OiJjZW50ZXIifX0sW2Ake3BlfS1mb290ZXJgXTp7ZmxleFNocmluazowLHBhZGRpbmc6YCR7KDAsb2UuYmYpKGN0KX0gJHsoMCxvZS5iZikoT2UpfWAsYm9yZGVyVG9wOmAkeygwLG9lLmJmKShtdCl9ICR7dXR9ICR7RGV9YH0sIiYtcnRsIjp7ZGlyZWN0aW9uOiJydGwifX19fSxxPSQ9Pih7ekluZGV4UG9wdXA6JC56SW5kZXhQb3B1cEJhc2UsZm9vdGVyUGFkZGluZ0Jsb2NrOiQucGFkZGluZ1hTLGZvb3RlclBhZGRpbmdJbmxpbmU6JC5wYWRkaW5nfSk7dmFyIGs9KDAsRWUuSSQpKCJEcmF3ZXIiLCQ9Pntjb25zdCBfPSgwLFJlLklYKSgkLHt9KTtyZXR1cm5bU2UoXyksRmUoXyldfSxxKSxNPWZ1bmN0aW9uKCQsXyl7dmFyIHBlPXt9O2Zvcih2YXIgcmUgaW4gJClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoJCxyZSkmJl8uaW5kZXhPZihyZSk8MCYmKHBlW3JlXT0kW3JlXSk7aWYoJCE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBhZT0wLHJlPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoJCk7YWU8cmUubGVuZ3RoO2FlKyspXy5pbmRleE9mKHJlW2FlXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKCQscmVbYWVdKSYmKHBlW3JlW2FlXV09JFtyZVthZV1dKTtyZXR1cm4gcGV9O2NvbnN0IEE9bnVsbCxVPXtkaXN0YW5jZToxODB9LE49JD0+e3ZhciBfO2NvbnN0e3Jvb3RDbGFzc05hbWU6cGUsd2lkdGg6cmUsaGVpZ2h0OmFlLHNpemU6d2U9ImRlZmF1bHQiLG1hc2s6TGU9ITAscHVzaDpNZT1VLG9wZW46YmUsYWZ0ZXJPcGVuQ2hhbmdlOiRlLG9uQ2xvc2U6a2UscHJlZml4Q2xzOkFlLGdldENvbnRhaW5lcjp0dCxzdHlsZTptdCxjbGFzc05hbWU6dXQsdmlzaWJsZTpEZSxhZnRlclZpc2libGVDaGFuZ2U6TmUsbWFza1N0eWxlOlhlLGRyYXdlclN0eWxlOkplLGNvbnRlbnRXcmFwcGVyU3R5bGU6Z3R9PSQsZGU9TSgkLFsicm9vdENsYXNzTmFtZSIsIndpZHRoIiwiaGVpZ2h0Iiwic2l6ZSIsIm1hc2siLCJwdXNoIiwib3BlbiIsImFmdGVyT3BlbkNoYW5nZSIsIm9uQ2xvc2UiLCJwcmVmaXhDbHMiLCJnZXRDb250YWluZXIiLCJzdHlsZSIsImNsYXNzTmFtZSIsInZpc2libGUiLCJhZnRlclZpc2libGVDaGFuZ2UiLCJtYXNrU3R5bGUiLCJkcmF3ZXJTdHlsZSIsImNvbnRlbnRXcmFwcGVyU3R5bGUiXSkse2dldFBvcHVwQ29udGFpbmVyOldlLGdldFByZWZpeENsczpTdCxkaXJlY3Rpb246Y3QsY2xhc3NOYW1lOk9lLHN0eWxlOkdlLGNsYXNzTmFtZXM6aHQsc3R5bGVzOnplfT0oMCxWLmRqKSgiZHJhd2VyIiksUWU9U3QoImRyYXdlciIsQWUpLFtwdCxidCxJdF09ayhRZSksVHQ9dHQ9PT12b2lkIDAmJldlPygpPT5XZShkb2N1bWVudC5ib2R5KTp0dCxYdD10KCkoeyJuby1tYXNrIjohTGUsW2Ake1FlfS1ydGxgXTpjdD09PSJydGwifSxwZSxidCxJdCksZm49ci51c2VNZW1vKCgpPT5yZSE9bnVsbD9yZTp3ZT09PSJsYXJnZSI/NzM2OjM3OCxbcmUsd2VdKSxubj1yLnVzZU1lbW8oKCk9PmFlIT1udWxsP2FlOndlPT09ImxhcmdlIj83MzY6Mzc4LFthZSx3ZV0pLG9uPXttb3Rpb25OYW1lOigwLGoubSkoUWUsIm1hc2stbW90aW9uIiksbW90aW9uQXBwZWFyOiEwLG1vdGlvbkVudGVyOiEwLG1vdGlvbkxlYXZlOiEwLG1vdGlvbkRlYWRsaW5lOjUwMH0sTnQ9Tm49Pih7bW90aW9uTmFtZTooMCxqLm0pKFFlLGBwYW5lbC1tb3Rpb24tJHtObn1gKSxtb3Rpb25BcHBlYXI6ITAsbW90aW9uRW50ZXI6ITAsbW90aW9uTGVhdmU6ITAsbW90aW9uRGVhZGxpbmU6NTAwfSksWm49KDAsWi5IKSgpLFt5bixnbl09KDAsVy5DbikoIkRyYXdlciIsZGUuekluZGV4KSx7Y2xhc3NOYW1lczpCbj17fSxzdHlsZXM6Vm49e319PWRlO3JldHVybiBwdChyLmNyZWF0ZUVsZW1lbnQoY2UuWix7Zm9ybTohMCxzcGFjZTohMH0sci5jcmVhdGVFbGVtZW50KEQuWi5Qcm92aWRlcix7dmFsdWU6Z259LHIuY3JlYXRlRWxlbWVudChsZSxPYmplY3QuYXNzaWduKHtwcmVmaXhDbHM6UWUsb25DbG9zZTprZSxtYXNrTW90aW9uOm9uLG1vdGlvbjpOdH0sZGUse2NsYXNzTmFtZXM6e21hc2s6dCgpKEJuLm1hc2ssaHQubWFzayksY29udGVudDp0KCkoQm4uY29udGVudCxodC5jb250ZW50KSx3cmFwcGVyOnQoKShCbi53cmFwcGVyLGh0LndyYXBwZXIpfSxzdHlsZXM6e21hc2s6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sVm4ubWFzayksWGUpLHplLm1hc2spLGNvbnRlbnQ6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sVm4uY29udGVudCksSmUpLHplLmNvbnRlbnQpLHdyYXBwZXI6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sVm4ud3JhcHBlciksZ3QpLHplLndyYXBwZXIpfSxvcGVuOmJlIT1udWxsP2JlOkRlLG1hc2s6TGUscHVzaDpNZSx3aWR0aDpmbixoZWlnaHQ6bm4sc3R5bGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LEdlKSxtdCksY2xhc3NOYW1lOnQoKShPZSx1dCkscm9vdENsYXNzTmFtZTpYdCxnZXRDb250YWluZXI6VHQsYWZ0ZXJPcGVuQ2hhbmdlOiRlIT1udWxsPyRlOk5lLHBhbmVsUmVmOlpuLHpJbmRleDp5bn0pLHIuY3JlYXRlRWxlbWVudChuZSxPYmplY3QuYXNzaWduKHtwcmVmaXhDbHM6UWV9LGRlLHtvbkNsb3NlOmtlfSkpKSkpKX0sUT0kPT57Y29uc3R7cHJlZml4Q2xzOl8sc3R5bGU6cGUsY2xhc3NOYW1lOnJlLHBsYWNlbWVudDphZT0icmlnaHQifT0kLHdlPU0oJCxbInByZWZpeENscyIsInN0eWxlIiwiY2xhc3NOYW1lIiwicGxhY2VtZW50Il0pLHtnZXRQcmVmaXhDbHM6TGV9PXIudXNlQ29udGV4dChWLkVfKSxNZT1MZSgiZHJhd2VyIixfKSxbYmUsJGUsa2VdPWsoTWUpLEFlPXQoKShNZSxgJHtNZX0tcHVyZWAsYCR7TWV9LSR7YWV9YCwkZSxrZSxyZSk7cmV0dXJuIGJlKHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOkFlLHN0eWxlOnBlfSxyLmNyZWF0ZUVsZW1lbnQobmUsT2JqZWN0LmFzc2lnbih7cHJlZml4Q2xzOk1lfSx3ZSkpKSl9O04uX0ludGVybmFsUGFuZWxEb05vdFVzZU9yWW91V2lsbEJlRmlyZWQ9UTt2YXIgdWU9Tn0sNzc0MzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIG9lfX0pO3ZhciByPWUoNjcyOTQpLG49ZSg2MTcxKSx0PWUoOTA4MTQpLGk9ZSg5Mzk2Nykscz1lLm4oaSksYT1lKDI5MTcxKSx1PWUoNjY2ODApLGM9ZSgyMTc3MCksaD1lKDk4NDIzKSxkPWUoODcyNjMpLEM9ZmU9PnR5cGVvZiBmZSE9Im9iamVjdCImJnR5cGVvZiBmZSE9ImZ1bmN0aW9uInx8ZmU9PT1udWxsLGc9ZSg4MDYzNiksdz1lKDg3NDUpLEU9ZSg5NjE1OSkseD1lKDI3Mjg4KSxPPWUoNDM5NDUpLFQ9ZSg1MzEyNCksUz1lKDM1NzkyKSxMPWUoNTAxMzYpLEk9ZSg3NjUyOSksUj1lKDI5NjkxKSx6PWUoMTE1NjgpLEc9ZSgxNDc0NyksWT1lKDY3NzcxKSxlZT1lKDMzMjk3KSxKPWUoNTA0MzgpLG1lPWUoOTc0MTQpLHRlPWUoNzk1MTEpLGxlPWUoODM1NTkpLGNlPWUoODMyNjIpLGo9ZmU9Pntjb25zdHtjb21wb25lbnRDbHM6RWUsbWVudUNsczpSZSxjb2xvckVycm9yOkJlLGNvbG9yVGV4dExpZ2h0U29saWQ6WWV9PWZlLG90PWAke1JlfS1pdGVtYDtyZXR1cm57W2Ake0VlfSwgJHtFZX0tbWVudS1zdWJtZW51YF06e1tgJHtSZX0gJHtvdH1gXTp7W2AmJHtvdH0tZGFuZ2VyOm5vdCgke290fS1kaXNhYmxlZClgXTp7Y29sb3I6QmUsIiY6aG92ZXIiOntjb2xvcjpZZSxiYWNrZ3JvdW5kQ29sb3I6QmV9fX19fX07Y29uc3QgRD1mZT0+e2NvbnN0e2NvbXBvbmVudENsczpFZSxtZW51Q2xzOlJlLHpJbmRleFBvcHVwOkJlLGRyb3Bkb3duQXJyb3dEaXN0YW5jZTpZZSxzaXplUG9wdXBBcnJvdzpvdCxhbnRDbHM6cWUsaWNvbkNsczpfZSxtb3Rpb25EdXJhdGlvbk1pZDpGZSxwYWRkaW5nQmxvY2s6U2UsZm9udFNpemU6cSxkcm9wZG93bkVkZ2VDaGlsZFBhZGRpbmc6ayxjb2xvclRleHREaXNhYmxlZDpNLGZvbnRTaXplSWNvbjpBLGNvbnRyb2xQYWRkaW5nSG9yaXpvbnRhbDpVLGNvbG9yQmdFbGV2YXRlZDpOfT1mZTtyZXR1cm5be1tFZV06e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOi05OTk5LGxlZnQ6e19za2lwX2NoZWNrXzohMCx2YWx1ZTotOTk5OX0sekluZGV4OkJlLGRpc3BsYXk6ImJsb2NrIiwiJjo6YmVmb3JlIjp7cG9zaXRpb246ImFic29sdXRlIixpbnNldEJsb2NrOmZlLmNhbGMob3QpLmRpdigyKS5zdWIoWWUpLmVxdWFsKCksekluZGV4Oi05OTk5LG9wYWNpdHk6MWUtNCxjb250ZW50OiciIid9LCImLW1lbnUtdmVydGljYWwiOnttYXhIZWlnaHQ6IjEwMHZoIixvdmVyZmxvd1k6ImF1dG8ifSxbYCYtdHJpZ2dlciR7cWV9LWJ0bmBdOntbYCYgPiAke19lfS1kb3duLCAmID4gJHtxZX0tYnRuLWljb24gPiAke19lfS1kb3duYF06e2ZvbnRTaXplOkF9fSxbYCR7RWV9LXdyYXBgXTp7cG9zaXRpb246InJlbGF0aXZlIixbYCR7cWV9LWJ0biA+ICR7X2V9LWRvd25gXTp7Zm9udFNpemU6QX0sW2Ake19lfS1kb3duOjpiZWZvcmVgXTp7dHJhbnNpdGlvbjpgdHJhbnNmb3JtICR7RmV9YH19LFtgJHtFZX0td3JhcC1vcGVuYF06e1tgJHtfZX0tZG93bjo6YmVmb3JlYF06e3RyYW5zZm9ybToicm90YXRlKDE4MGRlZykifX0sIlxuICAgICAgICAmLWhpZGRlbixcbiAgICAgICAgJi1tZW51LWhpZGRlbixcbiAgICAgICAgJi1tZW51LXN1Ym1lbnUtaGlkZGVuXG4gICAgICAiOntkaXNwbGF5OiJub25lIn0sW2AmJHtxZX0tc2xpZGUtZG93bi1lbnRlciR7cWV9LXNsaWRlLWRvd24tZW50ZXItYWN0aXZlJHtFZX0tcGxhY2VtZW50LWJvdHRvbUxlZnQsCisgICAgICAgICAgJiR7cWV9LXNsaWRlLWRvd24tYXBwZWFyJHtxZX0tc2xpZGUtZG93bi1hcHBlYXItYWN0aXZlJHtFZX0tcGxhY2VtZW50LWJvdHRvbUxlZnQsCisgICAgICAgICAgJiR7cWV9LXNsaWRlLWRvd24tZW50ZXIke3FlfS1zbGlkZS1kb3duLWVudGVyLWFjdGl2ZSR7RWV9LXBsYWNlbWVudC1ib3R0b20sCisgICAgICAgICAgJiR7cWV9LXNsaWRlLWRvd24tYXBwZWFyJHtxZX0tc2xpZGUtZG93bi1hcHBlYXItYWN0aXZlJHtFZX0tcGxhY2VtZW50LWJvdHRvbSwKKyAgICAgICAgICAmJHtxZX0tc2xpZGUtZG93bi1lbnRlciR7cWV9LXNsaWRlLWRvd24tZW50ZXItYWN0aXZlJHtFZX0tcGxhY2VtZW50LWJvdHRvbVJpZ2h0LAorICAgICAgICAgICYke3FlfS1zbGlkZS1kb3duLWFwcGVhciR7cWV9LXNsaWRlLWRvd24tYXBwZWFyLWFjdGl2ZSR7RWV9LXBsYWNlbWVudC1ib3R0b21SaWdodGBdOnthbmltYXRpb25OYW1lOlkuZkp9LFtgJiR7cWV9LXNsaWRlLXVwLWVudGVyJHtxZX0tc2xpZGUtdXAtZW50ZXItYWN0aXZlJHtFZX0tcGxhY2VtZW50LXRvcExlZnQsCisgICAgICAgICAgJiR7cWV9LXNsaWRlLXVwLWFwcGVhciR7cWV9LXNsaWRlLXVwLWFwcGVhci1hY3RpdmUke0VlfS1wbGFjZW1lbnQtdG9wTGVmdCwKKyAgICAgICAgICAmJHtxZX0tc2xpZGUtdXAtZW50ZXIke3FlfS1zbGlkZS11cC1lbnRlci1hY3RpdmUke0VlfS1wbGFjZW1lbnQtdG9wLAorICAgICAgICAgICYke3FlfS1zbGlkZS11cC1hcHBlYXIke3FlfS1zbGlkZS11cC1hcHBlYXItYWN0aXZlJHtFZX0tcGxhY2VtZW50LXRvcCwKKyAgICAgICAgICAmJHtxZX0tc2xpZGUtdXAtZW50ZXIke3FlfS1zbGlkZS11cC1lbnRlci1hY3RpdmUke0VlfS1wbGFjZW1lbnQtdG9wUmlnaHQsCisgICAgICAgICAgJiR7cWV9LXNsaWRlLXVwLWFwcGVhciR7cWV9LXNsaWRlLXVwLWFwcGVhci1hY3RpdmUke0VlfS1wbGFjZW1lbnQtdG9wUmlnaHRgXTp7YW5pbWF0aW9uTmFtZTpZLlF0fSxbYCYke3FlfS1zbGlkZS1kb3duLWxlYXZlJHtxZX0tc2xpZGUtZG93bi1sZWF2ZS1hY3RpdmUke0VlfS1wbGFjZW1lbnQtYm90dG9tTGVmdCwKKyAgICAgICAgICAmJHtxZX0tc2xpZGUtZG93bi1sZWF2ZSR7cWV9LXNsaWRlLWRvd24tbGVhdmUtYWN0aXZlJHtFZX0tcGxhY2VtZW50LWJvdHRvbSwKKyAgICAgICAgICAmJHtxZX0tc2xpZGUtZG93bi1sZWF2ZSR7cWV9LXNsaWRlLWRvd24tbGVhdmUtYWN0aXZlJHtFZX0tcGxhY2VtZW50LWJvdHRvbVJpZ2h0YF06e2FuaW1hdGlvbk5hbWU6WS5Vd30sW2AmJHtxZX0tc2xpZGUtdXAtbGVhdmUke3FlfS1zbGlkZS11cC1sZWF2ZS1hY3RpdmUke0VlfS1wbGFjZW1lbnQtdG9wTGVmdCwKKyAgICAgICAgICAmJHtxZX0tc2xpZGUtdXAtbGVhdmUke3FlfS1zbGlkZS11cC1sZWF2ZS1hY3RpdmUke0VlfS1wbGFjZW1lbnQtdG9wLAorICAgICAgICAgICYke3FlfS1zbGlkZS11cC1sZWF2ZSR7cWV9LXNsaWRlLXVwLWxlYXZlLWFjdGl2ZSR7RWV9LXBsYWNlbWVudC10b3BSaWdodGBdOnthbmltYXRpb25OYW1lOlkubHl9fX0sKDAsbWUuWlApKGZlLE4se2Fycm93UGxhY2VtZW50Ont0b3A6ITAsYm90dG9tOiEwfX0pLHtbYCR7RWV9ICR7UmV9YF06e3Bvc2l0aW9uOiJyZWxhdGl2ZSIsbWFyZ2luOjB9LFtgJHtSZX0tc3VibWVudS1wb3B1cGBdOntwb3NpdGlvbjoiYWJzb2x1dGUiLHpJbmRleDpCZSxiYWNrZ3JvdW5kOiJ0cmFuc3BhcmVudCIsYm94U2hhZG93OiJub25lIix0cmFuc2Zvcm1PcmlnaW46IjAgMCIsInVsLCBsaSI6e2xpc3RTdHlsZToibm9uZSIsbWFyZ2luOjB9fSxbYCR7RWV9LCAke0VlfS1tZW51LXN1Ym1lbnVgXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sKDAsRy5XZikoZmUpKSx7W1JlXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe3BhZGRpbmc6ayxsaXN0U3R5bGVUeXBlOiJub25lIixiYWNrZ3JvdW5kQ29sb3I6TixiYWNrZ3JvdW5kQ2xpcDoicGFkZGluZy1ib3giLGJvcmRlclJhZGl1czpmZS5ib3JkZXJSYWRpdXNMRyxvdXRsaW5lOiJub25lIixib3hTaGFkb3c6ZmUuYm94U2hhZG93U2Vjb25kYXJ5fSwoMCxHLlF5KShmZSkpLHsiJjplbXB0eSI6e3BhZGRpbmc6MCxib3hTaGFkb3c6Im5vbmUifSxbYCR7UmV9LWl0ZW0tZ3JvdXAtdGl0bGVgXTp7cGFkZGluZzpgJHsoMCx6LmJmKShTZSl9ICR7KDAsei5iZikoVSl9YCxjb2xvcjpmZS5jb2xvclRleHREZXNjcmlwdGlvbix0cmFuc2l0aW9uOmBhbGwgJHtGZX1gfSxbYCR7UmV9LWl0ZW1gXTp7cG9zaXRpb246InJlbGF0aXZlIixkaXNwbGF5OiJmbGV4IixhbGlnbkl0ZW1zOiJjZW50ZXIifSxbYCR7UmV9LWl0ZW0taWNvbmBdOnttaW5XaWR0aDpxLG1hcmdpbklubGluZUVuZDpmZS5tYXJnaW5YUyxmb250U2l6ZTpmZS5mb250U2l6ZVNNfSxbYCR7UmV9LXRpdGxlLWNvbnRlbnRgXTp7ZmxleDoiYXV0byIsIiYtd2l0aC1leHRyYSI6e2Rpc3BsYXk6ImlubGluZS1mbGV4IixhbGlnbkl0ZW1zOiJjZW50ZXIiLHdpZHRoOiIxMDAlIn0sIj4gYSI6e2NvbG9yOiJpbmhlcml0Iix0cmFuc2l0aW9uOmBhbGwgJHtGZX1gLCImOmhvdmVyIjp7Y29sb3I6ImluaGVyaXQifSwiJjo6YWZ0ZXIiOntwb3NpdGlvbjoiYWJzb2x1dGUiLGluc2V0OjAsY29udGVudDonIiInfX0sW2Ake1JlfS1pdGVtLWV4dHJhYF06e3BhZGRpbmdJbmxpbmVTdGFydDpmZS5wYWRkaW5nLG1hcmdpbklubGluZVN0YXJ0OiJhdXRvIixmb250U2l6ZTpmZS5mb250U2l6ZVNNLGNvbG9yOmZlLmNvbG9yVGV4dERlc2NyaXB0aW9ufX0sW2Ake1JlfS1pdGVtLCAke1JlfS1zdWJtZW51LXRpdGxlYF06T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHtkaXNwbGF5OiJmbGV4IixtYXJnaW46MCxwYWRkaW5nOmAkeygwLHouYmYpKFNlKX0gJHsoMCx6LmJmKShVKX1gLGNvbG9yOmZlLmNvbG9yVGV4dCxmb250V2VpZ2h0OiJub3JtYWwiLGZvbnRTaXplOnEsbGluZUhlaWdodDpmZS5saW5lSGVpZ2h0LGN1cnNvcjoicG9pbnRlciIsdHJhbnNpdGlvbjpgYWxsICR7RmV9YCxib3JkZXJSYWRpdXM6ZmUuYm9yZGVyUmFkaXVzU00sIiY6aG92ZXIsICYtYWN0aXZlIjp7YmFja2dyb3VuZENvbG9yOmZlLmNvbnRyb2xJdGVtQmdIb3Zlcn19LCgwLEcuUXkpKGZlKSkseyImLXNlbGVjdGVkIjp7Y29sb3I6ZmUuY29sb3JQcmltYXJ5LGJhY2tncm91bmRDb2xvcjpmZS5jb250cm9sSXRlbUJnQWN0aXZlLCImOmhvdmVyLCAmLWFjdGl2ZSI6e2JhY2tncm91bmRDb2xvcjpmZS5jb250cm9sSXRlbUJnQWN0aXZlSG92ZXJ9fSwiJi1kaXNhYmxlZCI6e2NvbG9yOk0sY3Vyc29yOiJub3QtYWxsb3dlZCIsIiY6aG92ZXIiOntjb2xvcjpNLGJhY2tncm91bmRDb2xvcjpOLGN1cnNvcjoibm90LWFsbG93ZWQifSxhOntwb2ludGVyRXZlbnRzOiJub25lIn19LCImLWRpdmlkZXIiOntoZWlnaHQ6MSxtYXJnaW46YCR7KDAsei5iZikoZmUubWFyZ2luWFhTKX0gMGAsb3ZlcmZsb3c6ImhpZGRlbiIsbGluZUhlaWdodDowLGJhY2tncm91bmRDb2xvcjpmZS5jb2xvclNwbGl0fSxbYCR7RWV9LW1lbnUtc3VibWVudS1leHBhbmQtaWNvbmBdOntwb3NpdGlvbjoiYWJzb2x1dGUiLGluc2V0SW5saW5lRW5kOmZlLnBhZGRpbmdYUyxbYCR7RWV9LW1lbnUtc3VibWVudS1hcnJvdy1pY29uYF06e21hcmdpbklubGluZUVuZDoiMCAhaW1wb3J0YW50Iixjb2xvcjpmZS5jb2xvclRleHREZXNjcmlwdGlvbixmb250U2l6ZTpBLGZvbnRTdHlsZToibm9ybWFsIn19fSksW2Ake1JlfS1pdGVtLWdyb3VwLWxpc3RgXTp7bWFyZ2luOmAwICR7KDAsei5iZikoZmUubWFyZ2luWFMpfWAscGFkZGluZzowLGxpc3RTdHlsZToibm9uZSJ9LFtgJHtSZX0tc3VibWVudS10aXRsZWBdOntwYWRkaW5nSW5saW5lRW5kOmZlLmNhbGMoVSkuYWRkKGZlLmZvbnRTaXplU00pLmVxdWFsKCl9LFtgJHtSZX0tc3VibWVudS12ZXJ0aWNhbGBdOntwb3NpdGlvbjoicmVsYXRpdmUifSxbYCR7UmV9LXN1Ym1lbnUke1JlfS1zdWJtZW51LWRpc2FibGVkICR7RWV9LW1lbnUtc3VibWVudS10aXRsZWBdOntbYCYsICR7RWV9LW1lbnUtc3VibWVudS1hcnJvdy1pY29uYF06e2NvbG9yOk0sYmFja2dyb3VuZENvbG9yOk4sY3Vyc29yOiJub3QtYWxsb3dlZCJ9fSxbYCR7UmV9LXN1Ym1lbnUtc2VsZWN0ZWQgJHtFZX0tbWVudS1zdWJtZW51LXRpdGxlYF06e2NvbG9yOmZlLmNvbG9yUHJpbWFyeX19KX0pfSxbKDAsWS5vTikoZmUsInNsaWRlLXVwIiksKDAsWS5vTikoZmUsInNsaWRlLWRvd24iKSwoMCxlZS5GbSkoZmUsIm1vdmUtdXAiKSwoMCxlZS5GbSkoZmUsIm1vdmUtZG93biIpLCgwLEouX3kpKGZlLCJ6b29tLWJpZyIpXV19LFY9ZmU9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7ekluZGV4UG9wdXA6ZmUuekluZGV4UG9wdXBCYXNlKzUwLHBhZGRpbmdCbG9jazooZmUuY29udHJvbEhlaWdodC1mZS5mb250U2l6ZSpmZS5saW5lSGVpZ2h0KS8yfSwoMCxtZS53Wikoe2NvbnRlbnRSYWRpdXM6ZmUuYm9yZGVyUmFkaXVzTEcsbGltaXRWZXJ0aWNhbFJhZGl1czohMH0pKSwoMCx0ZS53KShmZSkpO3ZhciBaPSgwLGxlLkkkKSgiRHJvcGRvd24iLGZlPT57Y29uc3R7bWFyZ2luWFhTOkVlLHNpemVQb3B1cEFycm93OlJlLHBhZGRpbmdYWFM6QmUsY29tcG9uZW50Q2xzOlllfT1mZSxvdD0oMCxjZS5JWCkoZmUse21lbnVDbHM6YCR7WWV9LW1lbnVgLGRyb3Bkb3duQXJyb3dEaXN0YW5jZTpmZS5jYWxjKFJlKS5kaXYoMikuYWRkKEVlKS5lcXVhbCgpLGRyb3Bkb3duRWRnZUNoaWxkUGFkZGluZzpCZX0pO3JldHVybltEKG90KSxqKG90KV19LFYse3Jlc2V0U3R5bGU6ITF9KTtjb25zdCBQPW51bGwsSz1mZT0+e3ZhciBFZTtjb25zdHttZW51OlJlLGFycm93OkJlLHByZWZpeENsczpZZSxjaGlsZHJlbjpvdCx0cmlnZ2VyOnFlLGRpc2FibGVkOl9lLGRyb3Bkb3duUmVuZGVyOkZlLGdldFBvcHVwQ29udGFpbmVyOlNlLG92ZXJsYXlDbGFzc05hbWU6cSxyb290Q2xhc3NOYW1lOmssb3ZlcmxheVN0eWxlOk0sb3BlbjpBLG9uT3BlbkNoYW5nZTpVLHZpc2libGU6TixvblZpc2libGVDaGFuZ2U6USxtb3VzZUVudGVyRGVsYXk6dWU9LjE1LG1vdXNlTGVhdmVEZWxheTokPS4xLGF1dG9BZGp1c3RPdmVyZmxvdzpfPSEwLHBsYWNlbWVudDpwZT0iIixvdmVybGF5OnJlLHRyYW5zaXRpb25OYW1lOmFlfT1mZSx7Z2V0UG9wdXBDb250YWluZXI6d2UsZ2V0UHJlZml4Q2xzOkxlLGRpcmVjdGlvbjpNZSxkcm9wZG93bjpiZX09ci51c2VDb250ZXh0KFQuRV8pLCRlPSgwLHgubG4pKCJEcm9wZG93biIpLGtlPXIudXNlTWVtbygoKT0+e2NvbnN0IFR0PUxlKCk7cmV0dXJuIGFlIT09dm9pZCAwP2FlOnBlLmluY2x1ZGVzKCJ0b3AiKT9gJHtUdH0tc2xpZGUtZG93bmA6YCR7VHR9LXNsaWRlLXVwYH0sW0xlLHBlLGFlXSksQWU9ci51c2VNZW1vKCgpPT5wZT9wZS5pbmNsdWRlcygiQ2VudGVyIik/cGUuc2xpY2UoMCxwZS5pbmRleE9mKCJDZW50ZXIiKSk6cGU6TWU9PT0icnRsIj8iYm90dG9tUmlnaHQiOiJib3R0b21MZWZ0IixbcGUsTWVdKSx0dD1MZSgiZHJvcGRvd24iLFllKSxtdD0oMCxTLlopKHR0KSxbdXQsRGUsTmVdPVoodHQsbXQpLFssWGVdPSgwLFIuWlApKCksSmU9ci5DaGlsZHJlbi5vbmx5KEMob3QpP3IuY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCxvdCk6b3QpLGd0PSgwLEUuVG0pKEplLHtjbGFzc05hbWU6cygpKGAke3R0fS10cmlnZ2VyYCx7W2Ake3R0fS1ydGxgXTpNZT09PSJydGwifSxKZS5wcm9wcy5jbGFzc05hbWUpLGRpc2FibGVkOihFZT1KZS5wcm9wcy5kaXNhYmxlZCkhPT1udWxsJiZFZSE9PXZvaWQgMD9FZTpfZX0pLGRlPV9lP1tdOnFlLFdlPSEhKGRlIT1udWxsJiZkZS5pbmNsdWRlcygiY29udGV4dE1lbnUiKSksW1N0LGN0XT0oMCxjLlopKCExLHt2YWx1ZTpBIT1udWxsP0E6Tn0pLE9lPSgwLHUuWikoVHQ9PntVPT1udWxsfHxVKFR0LHtzb3VyY2U6InRyaWdnZXIifSksUT09bnVsbHx8UShUdCksY3QoVHQpfSksR2U9cygpKHEsayxEZSxOZSxtdCxiZT09bnVsbD92b2lkIDA6YmUuY2xhc3NOYW1lLHtbYCR7dHR9LXJ0bGBdOk1lPT09InJ0bCJ9KSxodD0oMCxnLlopKHthcnJvd1BvaW50QXRDZW50ZXI6dHlwZW9mIEJlPT0ib2JqZWN0IiYmQmUucG9pbnRBdENlbnRlcixhdXRvQWRqdXN0T3ZlcmZsb3c6XyxvZmZzZXQ6WGUubWFyZ2luWFhTLGFycm93V2lkdGg6QmU/WGUuc2l6ZVBvcHVwQXJyb3c6MCxib3JkZXJSYWRpdXM6WGUuYm9yZGVyUmFkaXVzfSksemU9ci51c2VDYWxsYmFjaygoKT0+e1JlIT1udWxsJiZSZS5zZWxlY3RhYmxlJiYoUmUhPW51bGwmJlJlLm11bHRpcGxlKXx8KFU9PW51bGx8fFUoITEse3NvdXJjZToibWVudSJ9KSxjdCghMSkpfSxbUmU9PW51bGw/dm9pZCAwOlJlLnNlbGVjdGFibGUsUmU9PW51bGw/dm9pZCAwOlJlLm11bHRpcGxlXSksUWU9KCk9PntsZXQgVHQ7cmV0dXJuIFJlIT1udWxsJiZSZS5pdGVtcz9UdD1yLmNyZWF0ZUVsZW1lbnQoTC5aLE9iamVjdC5hc3NpZ24oe30sUmUpKTp0eXBlb2YgcmU9PSJmdW5jdGlvbiI/VHQ9cmUoKTpUdD1yZSxGZSYmKFR0PUZlKFR0KSksVHQ9ci5DaGlsZHJlbi5vbmx5KHR5cGVvZiBUdD09InN0cmluZyI/ci5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLFR0KTpUdCksci5jcmVhdGVFbGVtZW50KEkuSix7cHJlZml4Q2xzOmAke3R0fS1tZW51YCxyb290Q2xhc3NOYW1lOnMoKShOZSxtdCksZXhwYW5kSWNvbjpyLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6YCR7dHR9LW1lbnUtc3VibWVudS1hcnJvd2B9LE1lPT09InJ0bCI/ci5jcmVhdGVFbGVtZW50KG4uWix7Y2xhc3NOYW1lOmAke3R0fS1tZW51LXN1Ym1lbnUtYXJyb3ctaWNvbmB9KTpyLmNyZWF0ZUVsZW1lbnQodC5aLHtjbGFzc05hbWU6YCR7dHR9LW1lbnUtc3VibWVudS1hcnJvdy1pY29uYH0pKSxtb2RlOiJ2ZXJ0aWNhbCIsc2VsZWN0YWJsZTohMSxvbkNsaWNrOnplLHZhbGlkYXRvcjpYdD0+e2xldHttb2RlOmZufT1YdH19LFR0KX0sW3B0LGJ0XT0oMCxkLkNuKSgiRHJvcGRvd24iLE09PW51bGw/dm9pZCAwOk0uekluZGV4KTtsZXQgSXQ9ci5jcmVhdGVFbGVtZW50KGEuWixPYmplY3QuYXNzaWduKHthbGlnblBvaW50OldlfSwoMCxoLlopKGZlLFsicm9vdENsYXNzTmFtZSJdKSx7bW91c2VFbnRlckRlbGF5OnVlLG1vdXNlTGVhdmVEZWxheTokLHZpc2libGU6U3QsYnVpbHRpblBsYWNlbWVudHM6aHQsYXJyb3c6ISFCZSxvdmVybGF5Q2xhc3NOYW1lOkdlLHByZWZpeENsczp0dCxnZXRQb3B1cENvbnRhaW5lcjpTZXx8d2UsdHJhbnNpdGlvbk5hbWU6a2UsdHJpZ2dlcjpkZSxvdmVybGF5OlFlLHBsYWNlbWVudDpBZSxvblZpc2libGVDaGFuZ2U6T2Usb3ZlcmxheVN0eWxlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGJlPT1udWxsP3ZvaWQgMDpiZS5zdHlsZSksTSkse3pJbmRleDpwdH0pfSksZ3QpO3JldHVybiBwdCYmKEl0PXIuY3JlYXRlRWxlbWVudChPLlouUHJvdmlkZXIse3ZhbHVlOmJ0fSxJdCkpLHV0KEl0KX0sc2U9KDAsdy5aKShLLCJhbGlnbiIsdm9pZCAwLCJkcm9wZG93biIsZmU9PmZlKSxuZT1mZT0+ci5jcmVhdGVFbGVtZW50KHNlLE9iamVjdC5hc3NpZ24oe30sZmUpLHIuY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCkpO0suX0ludGVybmFsUGFuZWxEb05vdFVzZU9yWW91V2lsbEJlRmlyZWQ9bmU7dmFyIG9lPUt9LDg1NDE4OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1o6ZnVuY3Rpb24oKXtyZXR1cm4gd319KTt2YXIgcj1lKDc3NDMpLG49ZSg2NzI5NCksdD1lKDg5NzA1KSxpPWUoOTM5NjcpLHM9ZS5uKGkpLGE9ZSg4MzYyMiksdT1lKDUzMTI0KSxjPWUoNzg5NTcpLGg9ZSg0MTczKSxkPWZ1bmN0aW9uKEUseCl7dmFyIE89e307Zm9yKHZhciBUIGluIEUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKEUsVCkmJnguaW5kZXhPZihUKTwwJiYoT1tUXT1FW1RdKTtpZihFIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIFM9MCxUPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoRSk7UzxULmxlbmd0aDtTKyspeC5pbmRleE9mKFRbU10pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChFLFRbU10pJiYoT1tUW1NdXT1FW1RbU11dKTtyZXR1cm4gT307Y29uc3QgbT1FPT57Y29uc3R7Z2V0UG9wdXBDb250YWluZXI6eCxnZXRQcmVmaXhDbHM6TyxkaXJlY3Rpb246VH09bi51c2VDb250ZXh0KHUuRV8pLHtwcmVmaXhDbHM6Uyx0eXBlOkw9ImRlZmF1bHQiLGRhbmdlcjpJLGRpc2FibGVkOlIsbG9hZGluZzp6LG9uQ2xpY2s6RyxodG1sVHlwZTpZLGNoaWxkcmVuOmVlLGNsYXNzTmFtZTpKLG1lbnU6bWUsYXJyb3c6dGUsYXV0b0ZvY3VzOmxlLG92ZXJsYXk6Y2UsdHJpZ2dlcjpXLGFsaWduOmosb3BlbjpELG9uT3BlbkNoYW5nZTpWLHBsYWNlbWVudDpaLGdldFBvcHVwQ29udGFpbmVyOlAsaHJlZjpLLGljb246c2U9bi5jcmVhdGVFbGVtZW50KHQuWixudWxsKSx0aXRsZTpuZSxidXR0b25zUmVuZGVyOm9lPXVlPT51ZSxtb3VzZUVudGVyRGVsYXk6ZmUsbW91c2VMZWF2ZURlbGF5OkVlLG92ZXJsYXlDbGFzc05hbWU6UmUsb3ZlcmxheVN0eWxlOkJlLGRlc3Ryb3lQb3B1cE9uSGlkZTpZZSxkcm9wZG93blJlbmRlcjpvdH09RSxxZT1kKEUsWyJwcmVmaXhDbHMiLCJ0eXBlIiwiZGFuZ2VyIiwiZGlzYWJsZWQiLCJsb2FkaW5nIiwib25DbGljayIsImh0bWxUeXBlIiwiY2hpbGRyZW4iLCJjbGFzc05hbWUiLCJtZW51IiwiYXJyb3ciLCJhdXRvRm9jdXMiLCJvdmVybGF5IiwidHJpZ2dlciIsImFsaWduIiwib3BlbiIsIm9uT3BlbkNoYW5nZSIsInBsYWNlbWVudCIsImdldFBvcHVwQ29udGFpbmVyIiwiaHJlZiIsImljb24iLCJ0aXRsZSIsImJ1dHRvbnNSZW5kZXIiLCJtb3VzZUVudGVyRGVsYXkiLCJtb3VzZUxlYXZlRGVsYXkiLCJvdmVybGF5Q2xhc3NOYW1lIiwib3ZlcmxheVN0eWxlIiwiZGVzdHJveVBvcHVwT25IaWRlIiwiZHJvcGRvd25SZW5kZXIiXSksX2U9TygiZHJvcGRvd24iLFMpLEZlPWAke19lfS1idXR0b25gLFNlPXttZW51Om1lLGFycm93OnRlLGF1dG9Gb2N1czpsZSxhbGlnbjpqLGRpc2FibGVkOlIsdHJpZ2dlcjpSP1tdOlcsb25PcGVuQ2hhbmdlOlYsZ2V0UG9wdXBDb250YWluZXI6UHx8eCxtb3VzZUVudGVyRGVsYXk6ZmUsbW91c2VMZWF2ZURlbGF5OkVlLG92ZXJsYXlDbGFzc05hbWU6UmUsb3ZlcmxheVN0eWxlOkJlLGRlc3Ryb3lQb3B1cE9uSGlkZTpZZSxkcm9wZG93blJlbmRlcjpvdH0se2NvbXBhY3RTaXplOnEsY29tcGFjdEl0ZW1DbGFzc25hbWVzOmt9PSgwLGgucmkpKF9lLFQpLE09cygpKEZlLGssSik7Im92ZXJsYXkiaW4gRSYmKFNlLm92ZXJsYXk9Y2UpLCJvcGVuImluIEUmJihTZS5vcGVuPUQpLCJwbGFjZW1lbnQiaW4gRT9TZS5wbGFjZW1lbnQ9WjpTZS5wbGFjZW1lbnQ9VD09PSJydGwiPyJib3R0b21MZWZ0IjoiYm90dG9tUmlnaHQiO2NvbnN0IEE9bi5jcmVhdGVFbGVtZW50KGEuWlAse3R5cGU6TCxkYW5nZXI6SSxkaXNhYmxlZDpSLGxvYWRpbmc6eixvbkNsaWNrOkcsaHRtbFR5cGU6WSxocmVmOkssdGl0bGU6bmV9LGVlKSxVPW4uY3JlYXRlRWxlbWVudChhLlpQLHt0eXBlOkwsZGFuZ2VyOkksaWNvbjpzZX0pLFtOLFFdPW9lKFtBLFVdKTtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KGMuWi5Db21wYWN0LE9iamVjdC5hc3NpZ24oe2NsYXNzTmFtZTpNLHNpemU6cSxibG9jazohMH0scWUpLE4sbi5jcmVhdGVFbGVtZW50KHIuWixPYmplY3QuYXNzaWduKHt9LFNlKSxRKSl9O20uX19BTlRfQlVUVE9OPSEwO3ZhciBDPW07Y29uc3QgZz1yLlo7Zy5CdXR0b249Qzt2YXIgdz1nfSwzMjk4MzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIEx9fSk7dmFyIHI9ZSg2NzI5NCksbj1lKDkzOTY3KSx0PWUubihuKSxpPWUoMTAxMTApLHM9ZSgxNTA2MyksYT1lKDI5NjkxKSxjPSgpPT57Y29uc3RbLEldPSgwLGEuWlApKCksW1JdPSgwLGkuWikoIkVtcHR5IiksRz1uZXcgcy50KEkuY29sb3JCZ0Jhc2UpLnRvSHNsKCkubDwuNT97b3BhY2l0eTouNjV9Ont9O3JldHVybiByLmNyZWF0ZUVsZW1lbnQoInN2ZyIse3N0eWxlOkcsd2lkdGg6IjE4NCIsaGVpZ2h0OiIxNTIiLHZpZXdCb3g6IjAgMCAxODQgMTUyIix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcifSxyLmNyZWF0ZUVsZW1lbnQoInRpdGxlIixudWxsLChSPT1udWxsP3ZvaWQgMDpSLmRlc2NyaXB0aW9uKXx8IkVtcHR5Iiksci5jcmVhdGVFbGVtZW50KCJnIix7ZmlsbDoibm9uZSIsZmlsbFJ1bGU6ImV2ZW5vZGQifSxyLmNyZWF0ZUVsZW1lbnQoImciLHt0cmFuc2Zvcm06InRyYW5zbGF0ZSgyNCAzMS42NykifSxyLmNyZWF0ZUVsZW1lbnQoImVsbGlwc2UiLHtmaWxsT3BhY2l0eToiLjgiLGZpbGw6IiNGNUY1RjciLGN4OiI2Ny43OTciLGN5OiIxMDYuODkiLHJ4OiI2Ny43OTciLHJ5OiIxMi42NjgifSksci5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTEyMi4wMzQgNjkuNjc0TDk4LjEwOSA0MC4yMjljLTEuMTQ4LTEuMzg2LTIuODI2LTIuMjI1LTQuNTkzLTIuMjI1aC01MS40NGMtMS43NjYgMC0zLjQ0NC44MzktNC41OTIgMi4yMjVMMTMuNTYgNjkuNjc0djE1LjM4M2gxMDguNDc1VjY5LjY3NHoiLGZpbGw6IiNBRUI4QzIifSksci5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTEwMS41MzcgODYuMjE0TDgwLjYzIDYxLjEwMmMtMS4wMDEtMS4yMDctMi41MDctMS44NjctNC4wNDgtMS44NjdIMzEuNzI0Yy0xLjU0IDAtMy4wNDcuNjYtNC4wNDggMS44NjdMNi43NjkgODYuMjE0djEzLjc5Mmg5NC43NjhWODYuMjE0eiIsZmlsbDoidXJsKCNsaW5lYXJHcmFkaWVudC0xKSIsdHJhbnNmb3JtOiJ0cmFuc2xhdGUoMTMuNTYpIn0pLHIuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0zMy44MyAwaDY3LjkzM2E0IDQgMCAwIDEgNCA0djkzLjM0NGE0IDQgMCAwIDEtNCA0SDMzLjgzYTQgNCAwIDAgMS00LTRWNGE0IDQgMCAwIDEgNC00eiIsZmlsbDoiI0Y1RjVGNyJ9KSxyLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNNDIuNjc4IDkuOTUzaDUwLjIzN2EyIDIgMCAwIDEgMiAyVjM2LjkxYTIgMiAwIDAgMS0yIDJINDIuNjc4YTIgMiAwIDAgMS0yLTJWMTEuOTUzYTIgMiAwIDAgMSAyLTJ6TTQyLjk0IDQ5Ljc2N2g0OS43MTNhMi4yNjIgMi4yNjIgMCAxIDEgMCA0LjUyNEg0Mi45NGEyLjI2MiAyLjI2MiAwIDAgMSAwLTQuNTI0ek00Mi45NCA2MS41M2g0OS43MTNhMi4yNjIgMi4yNjIgMCAxIDEgMCA0LjUyNUg0Mi45NGEyLjI2MiAyLjI2MiAwIDAgMSAwLTQuNTI1ek0xMjEuODEzIDEwNS4wMzJjLS43NzUgMy4wNzEtMy40OTcgNS4zNi02LjczNSA1LjM2SDIwLjUxNWMtMy4yMzggMC01Ljk2LTIuMjktNi43MzQtNS4zNmE3LjMwOSA3LjMwOSAwIDAgMS0uMjIyLTEuNzlWNjkuNjc1aDI2LjMxOGMyLjkwNyAwIDUuMjUgMi40NDggNS4yNSA1LjQydi4wNGMwIDIuOTcxIDIuMzcgNS4zNyA1LjI3NyA1LjM3aDM0Ljc4NWMyLjkwNyAwIDUuMjc3LTIuNDIxIDUuMjc3LTUuMzkzVjc1LjFjMC0yLjk3MiAyLjM0My01LjQyNiA1LjI1LTUuNDI2aDI2LjMxOHYzMy41NjljMCAuNjE3LS4wNzcgMS4yMTYtLjIyMSAxLjc4OXoiLGZpbGw6IiNEQ0UwRTYifSkpLHIuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0xNDkuMTIxIDMzLjI5MmwtNi44MyAyLjY1YTEgMSAwIDAgMS0xLjMxNy0xLjIzbDEuOTM3LTYuMjA3Yy0yLjU4OS0yLjk0NC00LjEwOS02LjUzNC00LjEwOS0xMC40MDhDMTM4LjgwMiA4LjEwMiAxNDguOTIgMCAxNjEuNDAyIDAgMTczLjg4MSAwIDE4NCA4LjEwMiAxODQgMTguMDk3YzAgOS45OTUtMTAuMTE4IDE4LjA5Ny0yMi41OTkgMTguMDk3LTQuNTI4IDAtOC43NDQtMS4wNjYtMTIuMjgtMi45MDJ6IixmaWxsOiIjRENFMEU2In0pLHIuY3JlYXRlRWxlbWVudCgiZyIse3RyYW5zZm9ybToidHJhbnNsYXRlKDE0OS42NSAxNS4zODMpIixmaWxsOiIjRkZGIn0sci5jcmVhdGVFbGVtZW50KCJlbGxpcHNlIix7Y3g6IjIwLjY1NCIsY3k6IjMuMTY3IixyeDoiMi44NDkiLHJ5OiIyLjgxNSJ9KSxyLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNNS42OTggNS42M0gwTDIuODk4LjcwNHpNOS4yNTkuNzA0aDQuOTg1VjUuNjNIOS4yNTl6In0pKSkpfSxkPSgpPT57Y29uc3RbLEldPSgwLGEuWlApKCksW1JdPSgwLGkuWikoIkVtcHR5Iikse2NvbG9yRmlsbDp6LGNvbG9yRmlsbFRlcnRpYXJ5OkcsY29sb3JGaWxsUXVhdGVybmFyeTpZLGNvbG9yQmdDb250YWluZXI6ZWV9PUkse2JvcmRlckNvbG9yOkosc2hhZG93Q29sb3I6bWUsY29udGVudENvbG9yOnRlfT0oMCxyLnVzZU1lbW8pKCgpPT4oe2JvcmRlckNvbG9yOm5ldyBzLnQoeikub25CYWNrZ3JvdW5kKGVlKS50b0hleFN0cmluZygpLHNoYWRvd0NvbG9yOm5ldyBzLnQoRykub25CYWNrZ3JvdW5kKGVlKS50b0hleFN0cmluZygpLGNvbnRlbnRDb2xvcjpuZXcgcy50KFkpLm9uQmFja2dyb3VuZChlZSkudG9IZXhTdHJpbmcoKX0pLFt6LEcsWSxlZV0pO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoInN2ZyIse3dpZHRoOiI2NCIsaGVpZ2h0OiI0MSIsdmlld0JveDoiMCAwIDY0IDQxIix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcifSxyLmNyZWF0ZUVsZW1lbnQoInRpdGxlIixudWxsLChSPT1udWxsP3ZvaWQgMDpSLmRlc2NyaXB0aW9uKXx8IkVtcHR5Iiksci5jcmVhdGVFbGVtZW50KCJnIix7dHJhbnNmb3JtOiJ0cmFuc2xhdGUoMCAxKSIsZmlsbDoibm9uZSIsZmlsbFJ1bGU6ImV2ZW5vZGQifSxyLmNyZWF0ZUVsZW1lbnQoImVsbGlwc2UiLHtmaWxsOm1lLGN4OiIzMiIsY3k6IjMzIixyeDoiMzIiLHJ5OiI3In0pLHIuY3JlYXRlRWxlbWVudCgiZyIse2ZpbGxSdWxlOiJub256ZXJvIixzdHJva2U6Sn0sci5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTU1IDEyLjc2TDQ0Ljg1NCAxLjI1OEM0NC4zNjcuNDc0IDQzLjY1NiAwIDQyLjkwNyAwSDIxLjA5M2MtLjc0OSAwLTEuNDYuNDc0LTEuOTQ3IDEuMjU3TDkgMTIuNzYxVjIyaDQ2di05LjI0eiJ9KSxyLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNNDEuNjEzIDE1LjkzMWMwLTEuNjA1Ljk5NC0yLjkzIDIuMjI3LTIuOTMxSDU1djE4LjEzN0M1NSAzMy4yNiA1My42OCAzNSA1Mi4wNSAzNWgtNDAuMUMxMC4zMiAzNSA5IDMzLjI1OSA5IDMxLjEzN1YxM2gxMS4xNmMxLjIzMyAwIDIuMjI3IDEuMzIzIDIuMjI3IDIuOTI4di4wMjJjMCAxLjYwNSAxLjAwNSAyLjkwMSAyLjIzNyAyLjkwMWgxNC43NTJjMS4yMzIgMCAyLjIzNy0xLjMwOCAyLjIzNy0yLjkxM3YtLjAwN3oiLGZpbGw6dGV9KSkpKX0sbT1lKDgzNTU5KSxDPWUoODMyNjIpO2NvbnN0IGc9ST0+e2NvbnN0e2NvbXBvbmVudENsczpSLG1hcmdpbjp6LG1hcmdpblhTOkcsbWFyZ2luWEw6WSxmb250U2l6ZTplZSxsaW5lSGVpZ2h0Okp9PUk7cmV0dXJue1tSXTp7bWFyZ2luSW5saW5lOkcsZm9udFNpemU6ZWUsbGluZUhlaWdodDpKLHRleHRBbGlnbjoiY2VudGVyIixbYCR7Un0taW1hZ2VgXTp7aGVpZ2h0OkkuZW1wdHlJbWdIZWlnaHQsbWFyZ2luQm90dG9tOkcsb3BhY2l0eTpJLm9wYWNpdHlJbWFnZSxpbWc6e2hlaWdodDoiMTAwJSJ9LHN2Zzp7bWF4V2lkdGg6IjEwMCUiLGhlaWdodDoiMTAwJSIsbWFyZ2luOiJhdXRvIn19LFtgJHtSfS1kZXNjcmlwdGlvbmBdOntjb2xvcjpJLmNvbG9yVGV4dERlc2NyaXB0aW9ufSxbYCR7Un0tZm9vdGVyYF06e21hcmdpblRvcDp6fSwiJi1ub3JtYWwiOnttYXJnaW5CbG9jazpZLGNvbG9yOkkuY29sb3JUZXh0RGVzY3JpcHRpb24sW2Ake1J9LWRlc2NyaXB0aW9uYF06e2NvbG9yOkkuY29sb3JUZXh0RGVzY3JpcHRpb259LFtgJHtSfS1pbWFnZWBdOntoZWlnaHQ6SS5lbXB0eUltZ0hlaWdodE1EfX0sIiYtc21hbGwiOnttYXJnaW5CbG9jazpHLGNvbG9yOkkuY29sb3JUZXh0RGVzY3JpcHRpb24sW2Ake1J9LWltYWdlYF06e2hlaWdodDpJLmVtcHR5SW1nSGVpZ2h0U019fX19fTt2YXIgdz0oMCxtLkkkKSgiRW1wdHkiLEk9Pntjb25zdHtjb21wb25lbnRDbHM6Uixjb250cm9sSGVpZ2h0TEc6eixjYWxjOkd9PUksWT0oMCxDLklYKShJLHtlbXB0eUltZ0NsczpgJHtSfS1pbWdgLGVtcHR5SW1nSGVpZ2h0OkcoeikubXVsKDIuNSkuZXF1YWwoKSxlbXB0eUltZ0hlaWdodE1EOnosZW1wdHlJbWdIZWlnaHRTTTpHKHopLm11bCguODc1KS5lcXVhbCgpfSk7cmV0dXJuW2coWSldfSksRT1lKDUzMTI0KSx4PWZ1bmN0aW9uKEksUil7dmFyIHo9e307Zm9yKHZhciBHIGluIEkpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKEksRykmJlIuaW5kZXhPZihHKTwwJiYoeltHXT1JW0ddKTtpZihJIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIFk9MCxHPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoSSk7WTxHLmxlbmd0aDtZKyspUi5pbmRleE9mKEdbWV0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChJLEdbWV0pJiYoeltHW1ldXT1JW0dbWV1dKTtyZXR1cm4gen07Y29uc3QgTz1yLmNyZWF0ZUVsZW1lbnQoYyxudWxsKSxUPXIuY3JlYXRlRWxlbWVudChkLG51bGwpLFM9ST0+e2NvbnN0e2NsYXNzTmFtZTpSLHJvb3RDbGFzc05hbWU6eixwcmVmaXhDbHM6RyxpbWFnZTpZPU8sZGVzY3JpcHRpb246ZWUsY2hpbGRyZW46SixpbWFnZVN0eWxlOm1lLHN0eWxlOnRlLGNsYXNzTmFtZXM6bGUsc3R5bGVzOmNlfT1JLFc9eChJLFsiY2xhc3NOYW1lIiwicm9vdENsYXNzTmFtZSIsInByZWZpeENscyIsImltYWdlIiwiZGVzY3JpcHRpb24iLCJjaGlsZHJlbiIsImltYWdlU3R5bGUiLCJzdHlsZSIsImNsYXNzTmFtZXMiLCJzdHlsZXMiXSkse2dldFByZWZpeENsczpqLGRpcmVjdGlvbjpELGNsYXNzTmFtZTpWLHN0eWxlOlosY2xhc3NOYW1lczpQLHN0eWxlczpLfT0oMCxFLmRqKSgiZW1wdHkiKSxzZT1qKCJlbXB0eSIsRyksW25lLG9lLGZlXT13KHNlKSxbRWVdPSgwLGkuWikoIkVtcHR5IiksUmU9dHlwZW9mIGVlIT0idW5kZWZpbmVkIj9lZTpFZT09bnVsbD92b2lkIDA6RWUuZGVzY3JpcHRpb24sQmU9dHlwZW9mIFJlPT0ic3RyaW5nIj9SZToiZW1wdHkiO2xldCBZZT1udWxsO3JldHVybiB0eXBlb2YgWT09InN0cmluZyI/WWU9ci5jcmVhdGVFbGVtZW50KCJpbWciLHthbHQ6QmUsc3JjOll9KTpZZT1ZLG5lKHIuY3JlYXRlRWxlbWVudCgiZGl2IixPYmplY3QuYXNzaWduKHtjbGFzc05hbWU6dCgpKG9lLGZlLHNlLFYse1tgJHtzZX0tbm9ybWFsYF06WT09PVQsW2Ake3NlfS1ydGxgXTpEPT09InJ0bCJ9LFIseixQLnJvb3QsbGU9PW51bGw/dm9pZCAwOmxlLnJvb3QpLHN0eWxlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sSy5yb290KSxaKSxjZT09bnVsbD92b2lkIDA6Y2Uucm9vdCksdGUpfSxXKSxyLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTp0KCkoYCR7c2V9LWltYWdlYCxQLmltYWdlLGxlPT1udWxsP3ZvaWQgMDpsZS5pbWFnZSksc3R5bGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbWUpLEsuaW1hZ2UpLGNlPT1udWxsP3ZvaWQgMDpjZS5pbWFnZSl9LFllKSxSZSYmci5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6dCgpKGAke3NlfS1kZXNjcmlwdGlvbmAsUC5kZXNjcmlwdGlvbixsZT09bnVsbD92b2lkIDA6bGUuZGVzY3JpcHRpb24pLHN0eWxlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxLLmRlc2NyaXB0aW9uKSxjZT09bnVsbD92b2lkIDA6Y2UuZGVzY3JpcHRpb24pfSxSZSksSiYmci5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6dCgpKGAke3NlfS1mb290ZXJgLFAuZm9vdGVyLGxlPT1udWxsP3ZvaWQgMDpsZS5mb290ZXIpLHN0eWxlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxLLmZvb3RlciksY2U9PW51bGw/dm9pZCAwOmNlLmZvb3Rlcil9LEopKSl9O1MuUFJFU0VOVEVEX0lNQUdFX0RFRkFVTFQ9TyxTLlBSRVNFTlRFRF9JTUFHRV9TSU1QTEU9VDt2YXIgTD1TfSw2NTIyMzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtSVjpmdW5jdGlvbigpe3JldHVybiBhfSxSazpmdW5jdGlvbigpe3JldHVybiB1fSxVeDpmdW5jdGlvbigpe3JldHVybiBofSxhTTpmdW5jdGlvbigpe3JldHVybiBjfSxwZzpmdW5jdGlvbigpe3JldHVybiBkfSxxMzpmdW5jdGlvbigpe3JldHVybiBpfSxxSTpmdW5jdGlvbigpe3JldHVybiBzfX0pO3ZhciByPWUoNjcyOTQpLG49ZSg4ODY5MiksdD1lKDk4NDIzKTtjb25zdCBpPXIuY3JlYXRlQ29udGV4dCh7bGFiZWxBbGlnbjoicmlnaHQiLHZlcnRpY2FsOiExLGl0ZW1SZWY6KCk9Pnt9fSkscz1yLmNyZWF0ZUNvbnRleHQobnVsbCksYT1tPT57Y29uc3QgQz0oMCx0LlopKG0sWyJwcmVmaXhDbHMiXSk7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChuLlJWLE9iamVjdC5hc3NpZ24oe30sQykpfSx1PXIuY3JlYXRlQ29udGV4dCh7cHJlZml4Q2xzOiIifSksYz1yLmNyZWF0ZUNvbnRleHQoe30pLGg9bT0+e2xldHtjaGlsZHJlbjpDLHN0YXR1czpnLG92ZXJyaWRlOnd9PW07Y29uc3QgRT1yLnVzZUNvbnRleHQoYykseD1yLnVzZU1lbW8oKCk9Pntjb25zdCBPPU9iamVjdC5hc3NpZ24oe30sRSk7cmV0dXJuIHcmJmRlbGV0ZSBPLmlzRm9ybUl0ZW1JbnB1dCxnJiYoZGVsZXRlIE8uc3RhdHVzLGRlbGV0ZSBPLmhhc0ZlZWRiYWNrLGRlbGV0ZSBPLmZlZWRiYWNrSWNvbiksT30sW2csdyxFXSk7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChjLlByb3ZpZGVyLHt2YWx1ZTp4fSxDKX0sZD1yLmNyZWF0ZUNvbnRleHQodm9pZCAwKX0sMjc4MzM6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDY3Mjk0KSxuPWUoNjUyMjMpLHQ9ZSg1MzEyNCk7Y29uc3QgaT1mdW5jdGlvbihzLGEpe2xldCB1PWFyZ3VtZW50cy5sZW5ndGg+MiYmYXJndW1lbnRzWzJdIT09dm9pZCAwP2FyZ3VtZW50c1syXTp2b2lkIDA7dmFyIGMsaDtjb25zdHt2YXJpYW50OmQsW3NdOm19PXIudXNlQ29udGV4dCh0LkVfKSxDPXIudXNlQ29udGV4dChuLnBnKSxnPW09PW51bGw/dm9pZCAwOm0udmFyaWFudDtsZXQgdzt0eXBlb2YgYSE9InVuZGVmaW5lZCI/dz1hOnU9PT0hMT93PSJib3JkZXJsZXNzIjp3PShoPShjPUMhPW51bGw/QzpnKSE9PW51bGwmJmMhPT12b2lkIDA/YzpkKSE9PW51bGwmJmghPT12b2lkIDA/aDoib3V0bGluZWQiO2NvbnN0IEU9dC50ci5pbmNsdWRlcyh3KTtyZXR1cm5bdyxFXX07cC5aPWl9LDM3OTIwOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg2NzI5NCk7cC5aPSgwLHIuY3JlYXRlQ29udGV4dCkodm9pZCAwKX0sOTkxMzQ6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDY3Mjk0KTtjb25zdCBuPSgwLHIuY3JlYXRlQ29udGV4dCkoe30pO3AuWj1ufSwyMTU4NDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNjcyOTQpLG49ZSg5Mzk2NyksdD1lLm4obiksaT1lKDUzMTI0KSxzPWUoOTkxMzQpLGE9ZSg2OTk5KSx1PWZ1bmN0aW9uKG0sQyl7dmFyIGc9e307Zm9yKHZhciB3IGluIG0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG0sdykmJkMuaW5kZXhPZih3KTwwJiYoZ1t3XT1tW3ddKTtpZihtIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIEU9MCx3PU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMobSk7RTx3Lmxlbmd0aDtFKyspQy5pbmRleE9mKHdbRV0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChtLHdbRV0pJiYoZ1t3W0VdXT1tW3dbRV1dKTtyZXR1cm4gZ307ZnVuY3Rpb24gYyhtKXtyZXR1cm4gdHlwZW9mIG09PSJudW1iZXIiP2Ake219ICR7bX0gYXV0b2A6L15cZCsoXC5cZCspPyhweHxlbXxyZW18JSkkLy50ZXN0KG0pP2AwIDAgJHttfWA6bX1jb25zdCBoPVsieHMiLCJzbSIsIm1kIiwibGciLCJ4bCIsInh4bCJdLGQ9ci5mb3J3YXJkUmVmKChtLEMpPT57Y29uc3R7Z2V0UHJlZml4Q2xzOmcsZGlyZWN0aW9uOnd9PXIudXNlQ29udGV4dChpLkVfKSx7Z3V0dGVyOkUsd3JhcDp4fT1yLnVzZUNvbnRleHQocy5aKSx7cHJlZml4Q2xzOk8sc3BhbjpULG9yZGVyOlMsb2Zmc2V0OkwscHVzaDpJLHB1bGw6UixjbGFzc05hbWU6eixjaGlsZHJlbjpHLGZsZXg6WSxzdHlsZTplZX09bSxKPXUobSxbInByZWZpeENscyIsInNwYW4iLCJvcmRlciIsIm9mZnNldCIsInB1c2giLCJwdWxsIiwiY2xhc3NOYW1lIiwiY2hpbGRyZW4iLCJmbGV4Iiwic3R5bGUiXSksbWU9ZygiY29sIixPKSxbdGUsbGUsY2VdPSgwLGEuY0cpKG1lKSxXPXt9O2xldCBqPXt9O2guZm9yRWFjaChaPT57bGV0IFA9e307Y29uc3QgSz1tW1pdO3R5cGVvZiBLPT0ibnVtYmVyIj9QLnNwYW49Szp0eXBlb2YgSz09Im9iamVjdCImJihQPUt8fHt9KSxkZWxldGUgSltaXSxqPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxqKSx7W2Ake21lfS0ke1p9LSR7UC5zcGFufWBdOlAuc3BhbiE9PXZvaWQgMCxbYCR7bWV9LSR7Wn0tb3JkZXItJHtQLm9yZGVyfWBdOlAub3JkZXJ8fFAub3JkZXI9PT0wLFtgJHttZX0tJHtafS1vZmZzZXQtJHtQLm9mZnNldH1gXTpQLm9mZnNldHx8UC5vZmZzZXQ9PT0wLFtgJHttZX0tJHtafS1wdXNoLSR7UC5wdXNofWBdOlAucHVzaHx8UC5wdXNoPT09MCxbYCR7bWV9LSR7Wn0tcHVsbC0ke1AucHVsbH1gXTpQLnB1bGx8fFAucHVsbD09PTAsW2Ake21lfS1ydGxgXTp3PT09InJ0bCJ9KSxQLmZsZXgmJihqW2Ake21lfS0ke1p9LWZsZXhgXT0hMCxXW2AtLSR7bWV9LSR7Wn0tZmxleGBdPWMoUC5mbGV4KSl9KTtjb25zdCBEPXQoKShtZSx7W2Ake21lfS0ke1R9YF06VCE9PXZvaWQgMCxbYCR7bWV9LW9yZGVyLSR7U31gXTpTLFtgJHttZX0tb2Zmc2V0LSR7TH1gXTpMLFtgJHttZX0tcHVzaC0ke0l9YF06SSxbYCR7bWV9LXB1bGwtJHtSfWBdOlJ9LHosaixsZSxjZSksVj17fTtpZihFJiZFWzBdPjApe2NvbnN0IFo9RVswXS8yO1YucGFkZGluZ0xlZnQ9WixWLnBhZGRpbmdSaWdodD1afXJldHVybiBZJiYoVi5mbGV4PWMoWSkseD09PSExJiYhVi5taW5XaWR0aCYmKFYubWluV2lkdGg9MCkpLHRlKHIuY3JlYXRlRWxlbWVudCgiZGl2IixPYmplY3QuYXNzaWduKHt9LEose3N0eWxlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LFYpLGVlKSxXKSxjbGFzc05hbWU6RCxyZWY6Q30pLEcpKX0pO3AuWj1kfSwyNTM3ODpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNjcyOTQpLG49ZSg4NDEwKSx0PWUoNTc4MzgpLGk9ZSg3NDQ0Myk7ZnVuY3Rpb24gcygpe2xldCBhPWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dm9pZCAwP2FyZ3VtZW50c1swXTohMCx1PWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTp7fTtjb25zdCBjPSgwLHIudXNlUmVmKSh1KSxoPSgwLHQuWikoKSxkPSgwLGkuWlApKCk7cmV0dXJuKDAsbi5aKSgoKT0+e2NvbnN0IG09ZC5zdWJzY3JpYmUoQz0+e2MuY3VycmVudD1DLGEmJmgoKX0pO3JldHVybigpPT5kLnVuc3Vic2NyaWJlKG0pfSxbXSksYy5jdXJyZW50fXAuWj1zfSwxNzYyMTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIEV9fSk7dmFyIHI9ZSg2NzI5NCksbj1lKDkzOTY3KSx0PWUubihuKSxpPWUoNzQ0NDMpLHM9ZSg1MzEyNCksYT1lKDI1Mzc4KTtmdW5jdGlvbiB1KHgsTyl7Y29uc3QgVD1bdm9pZCAwLHZvaWQgMF0sUz1BcnJheS5pc0FycmF5KHgpP3g6W3gsdm9pZCAwXSxMPU98fHt4czohMCxzbTohMCxtZDohMCxsZzohMCx4bDohMCx4eGw6ITB9O3JldHVybiBTLmZvckVhY2goKEksUik9PntpZih0eXBlb2YgST09Im9iamVjdCImJkkhPT1udWxsKWZvcihsZXQgej0wO3o8aS5jNC5sZW5ndGg7eisrKXtjb25zdCBHPWkuYzRbel07aWYoTFtHXSYmSVtHXSE9PXZvaWQgMCl7VFtSXT1JW0ddO2JyZWFrfX1lbHNlIFRbUl09SX0pLFR9dmFyIGM9ZSg5OTEzNCksaD1lKDY5OTkpLGQ9ZnVuY3Rpb24oeCxPKXt2YXIgVD17fTtmb3IodmFyIFMgaW4geClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoeCxTKSYmTy5pbmRleE9mKFMpPDAmJihUW1NdPXhbU10pO2lmKHghPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgTD0wLFM9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh4KTtMPFMubGVuZ3RoO0wrKylPLmluZGV4T2YoU1tMXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHgsU1tMXSkmJihUW1NbTF1dPXhbU1tMXV0pO3JldHVybiBUfTtjb25zdCBtPW51bGwsQz1udWxsO2Z1bmN0aW9uIGcoeCxPKXtjb25zdFtULFNdPXIudXNlU3RhdGUodHlwZW9mIHg9PSJzdHJpbmciP3g6IiIpLEw9KCk9PntpZih0eXBlb2YgeD09InN0cmluZyImJlMoeCksdHlwZW9mIHg9PSJvYmplY3QiKWZvcihsZXQgST0wO0k8aS5jNC5sZW5ndGg7SSsrKXtjb25zdCBSPWkuYzRbSV07aWYoIU98fCFPW1JdKWNvbnRpbnVlO2NvbnN0IHo9eFtSXTtpZih6IT09dm9pZCAwKXtTKHopO3JldHVybn19fTtyZXR1cm4gci51c2VFZmZlY3QoKCk9PntMKCl9LFtKU09OLnN0cmluZ2lmeSh4KSxPXSksVH12YXIgRT1yLmZvcndhcmRSZWYoKHgsTyk9Pntjb25zdHtwcmVmaXhDbHM6VCxqdXN0aWZ5OlMsYWxpZ246TCxjbGFzc05hbWU6SSxzdHlsZTpSLGNoaWxkcmVuOnosZ3V0dGVyOkc9MCx3cmFwOll9PXgsZWU9ZCh4LFsicHJlZml4Q2xzIiwianVzdGlmeSIsImFsaWduIiwiY2xhc3NOYW1lIiwic3R5bGUiLCJjaGlsZHJlbiIsImd1dHRlciIsIndyYXAiXSkse2dldFByZWZpeENsczpKLGRpcmVjdGlvbjptZX09ci51c2VDb250ZXh0KHMuRV8pLHRlPSgwLGEuWikoITAsbnVsbCksbGU9ZyhMLHRlKSxjZT1nKFMsdGUpLFc9Sigicm93IixUKSxbaixELFZdPSgwLGguVk0pKFcpLFo9dShHLHRlKSxQPXQoKShXLHtbYCR7V30tbm8td3JhcGBdOlk9PT0hMSxbYCR7V30tJHtjZX1gXTpjZSxbYCR7V30tJHtsZX1gXTpsZSxbYCR7V30tcnRsYF06bWU9PT0icnRsIn0sSSxELFYpLEs9e30sc2U9WlswXSE9bnVsbCYmWlswXT4wP1pbMF0vLTI6dm9pZCAwO3NlJiYoSy5tYXJnaW5MZWZ0PXNlLEsubWFyZ2luUmlnaHQ9c2UpO2NvbnN0W25lLG9lXT1aO0sucm93R2FwPW9lO2NvbnN0IGZlPXIudXNlTWVtbygoKT0+KHtndXR0ZXI6W25lLG9lXSx3cmFwOll9KSxbbmUsb2UsWV0pO3JldHVybiBqKHIuY3JlYXRlRWxlbWVudChjLlouUHJvdmlkZXIse3ZhbHVlOmZlfSxyLmNyZWF0ZUVsZW1lbnQoImRpdiIsT2JqZWN0LmFzc2lnbih7fSxlZSx7Y2xhc3NOYW1lOlAsc3R5bGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LEspLFIpLHJlZjpPfSkseikpKX0pfSw2OTk5OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1ZNOmZ1bmN0aW9uKCl7cmV0dXJuIG19LGNHOmZ1bmN0aW9uKCl7cmV0dXJuIGd9LGhkOmZ1bmN0aW9uKCl7cmV0dXJuIEN9fSk7dmFyIHI9ZSgxMTU2OCksbj1lKDgzNTU5KSx0PWUoODMyNjIpO2NvbnN0IGk9dz0+e2NvbnN0e2NvbXBvbmVudENsczpFfT13O3JldHVybntbRV06e2Rpc3BsYXk6ImZsZXgiLGZsZXhGbG93OiJyb3cgd3JhcCIsbWluV2lkdGg6MCwiJjo6YmVmb3JlLCAmOjphZnRlciI6e2Rpc3BsYXk6ImZsZXgifSwiJi1uby13cmFwIjp7ZmxleFdyYXA6Im5vd3JhcCJ9LCImLXN0YXJ0Ijp7anVzdGlmeUNvbnRlbnQ6ImZsZXgtc3RhcnQifSwiJi1jZW50ZXIiOntqdXN0aWZ5Q29udGVudDoiY2VudGVyIn0sIiYtZW5kIjp7anVzdGlmeUNvbnRlbnQ6ImZsZXgtZW5kIn0sIiYtc3BhY2UtYmV0d2VlbiI6e2p1c3RpZnlDb250ZW50OiJzcGFjZS1iZXR3ZWVuIn0sIiYtc3BhY2UtYXJvdW5kIjp7anVzdGlmeUNvbnRlbnQ6InNwYWNlLWFyb3VuZCJ9LCImLXNwYWNlLWV2ZW5seSI6e2p1c3RpZnlDb250ZW50OiJzcGFjZS1ldmVubHkifSwiJi10b3AiOnthbGlnbkl0ZW1zOiJmbGV4LXN0YXJ0In0sIiYtbWlkZGxlIjp7YWxpZ25JdGVtczoiY2VudGVyIn0sIiYtYm90dG9tIjp7YWxpZ25JdGVtczoiZmxleC1lbmQifX19fSxzPXc9Pntjb25zdHtjb21wb25lbnRDbHM6RX09dztyZXR1cm57W0VdOntwb3NpdGlvbjoicmVsYXRpdmUiLG1heFdpZHRoOiIxMDAlIixtaW5IZWlnaHQ6MX19fSxhPSh3LEUpPT57Y29uc3R7cHJlZml4Q2xzOngsY29tcG9uZW50Q2xzOk8sZ3JpZENvbHVtbnM6VH09dyxTPXt9O2ZvcihsZXQgTD1UO0w+PTA7TC0tKUw9PT0wPyhTW2Ake099JHtFfS0ke0x9YF09e2Rpc3BsYXk6Im5vbmUifSxTW2Ake099LXB1c2gtJHtMfWBdPXtpbnNldElubGluZVN0YXJ0OiJhdXRvIn0sU1tgJHtPfS1wdWxsLSR7TH1gXT17aW5zZXRJbmxpbmVFbmQ6ImF1dG8ifSxTW2Ake099JHtFfS1wdXNoLSR7TH1gXT17aW5zZXRJbmxpbmVTdGFydDoiYXV0byJ9LFNbYCR7T30ke0V9LXB1bGwtJHtMfWBdPXtpbnNldElubGluZUVuZDoiYXV0byJ9LFNbYCR7T30ke0V9LW9mZnNldC0ke0x9YF09e21hcmdpbklubGluZVN0YXJ0OjB9LFNbYCR7T30ke0V9LW9yZGVyLSR7TH1gXT17b3JkZXI6MH0pOihTW2Ake099JHtFfS0ke0x9YF09W3siLS1hbnQtZGlzcGxheSI6ImJsb2NrIixkaXNwbGF5OiJibG9jayJ9LHtkaXNwbGF5OiJ2YXIoLS1hbnQtZGlzcGxheSkiLGZsZXg6YDAgMCAke0wvVCoxMDB9JWAsbWF4V2lkdGg6YCR7TC9UKjEwMH0lYH1dLFNbYCR7T30ke0V9LXB1c2gtJHtMfWBdPXtpbnNldElubGluZVN0YXJ0OmAke0wvVCoxMDB9JWB9LFNbYCR7T30ke0V9LXB1bGwtJHtMfWBdPXtpbnNldElubGluZUVuZDpgJHtML1QqMTAwfSVgfSxTW2Ake099JHtFfS1vZmZzZXQtJHtMfWBdPXttYXJnaW5JbmxpbmVTdGFydDpgJHtML1QqMTAwfSVgfSxTW2Ake099JHtFfS1vcmRlci0ke0x9YF09e29yZGVyOkx9KTtyZXR1cm4gU1tgJHtPfSR7RX0tZmxleGBdPXtmbGV4OmB2YXIoLS0ke3h9JHtFfS1mbGV4KWB9LFN9LHU9KHcsRSk9PmEodyxFKSxjPSh3LEUseCk9Pih7W2BAbWVkaWEgKG1pbi13aWR0aDogJHsoMCxyLmJmKShFKX0pYF06T2JqZWN0LmFzc2lnbih7fSx1KHcseCkpfSksaD0oKT0+KHt9KSxkPSgpPT4oe30pLG09KDAsbi5JJCkoIkdyaWQiLGksaCksQz13PT4oe3hzOncuc2NyZWVuWFNNaW4sc206dy5zY3JlZW5TTU1pbixtZDp3LnNjcmVlbk1ETWluLGxnOncuc2NyZWVuTEdNaW4seGw6dy5zY3JlZW5YTE1pbix4eGw6dy5zY3JlZW5YWExNaW59KSxnPSgwLG4uSSQpKCJHcmlkIix3PT57Y29uc3QgRT0oMCx0LklYKSh3LHtncmlkQ29sdW1uczoyNH0pLHg9QyhFKTtyZXR1cm4gZGVsZXRlIHgueHMsW3MoRSksdShFLCIiKSx1KEUsIi14cyIpLE9iamVjdC5rZXlzKHgpLm1hcChPPT5jKEUseFtPXSxgLSR7T31gKSkucmVkdWNlKChPLFQpPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sTyksVCkse30pXX0sZCl9LDQ3NjczOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1RJOmZ1bmN0aW9uKCl7cmV0dXJuIEx9LGlrOmZ1bmN0aW9uKCl7cmV0dXJuIEN9LG56OmZ1bmN0aW9uKCl7cmV0dXJuIGN9LHM3OmZ1bmN0aW9uKCl7cmV0dXJuIGd9LHgwOmZ1bmN0aW9uKCl7cmV0dXJuIG19fSk7dmFyIHI9ZSgxMTU2OCksbj1lKDE0NzQ3KSx0PWUoODAxMTApLGk9ZSg4MzU1OSkscz1lKDgzMjYyKSxhPWUoMjAzNTMpLHU9ZSg5MzkwMCk7Y29uc3QgYz1JPT4oeyImOjotbW96LXBsYWNlaG9sZGVyIjp7b3BhY2l0eToxfSwiJjo6cGxhY2Vob2xkZXIiOntjb2xvcjpJLHVzZXJTZWxlY3Q6Im5vbmUifSwiJjpwbGFjZWhvbGRlci1zaG93biI6e3RleHRPdmVyZmxvdzoiZWxsaXBzaXMifX0pLGg9ST0+KHtib3JkZXJDb2xvcjpJLmFjdGl2ZUJvcmRlckNvbG9yLGJveFNoYWRvdzpJLmFjdGl2ZVNoYWRvdyxvdXRsaW5lOjAsYmFja2dyb3VuZENvbG9yOkkuYWN0aXZlQmd9KSxkPUk9Pntjb25zdHtwYWRkaW5nQmxvY2tMRzpSLGxpbmVIZWlnaHRMRzp6LGJvcmRlclJhZGl1c0xHOkcscGFkZGluZ0lubGluZUxHOll9PUk7cmV0dXJue3BhZGRpbmc6YCR7KDAsci5iZikoUil9ICR7KDAsci5iZikoWSl9YCxmb250U2l6ZTpJLmlucHV0Rm9udFNpemVMRyxsaW5lSGVpZ2h0OnosYm9yZGVyUmFkaXVzOkd9fSxtPUk9Pih7cGFkZGluZzpgJHsoMCxyLmJmKShJLnBhZGRpbmdCbG9ja1NNKX0gJHsoMCxyLmJmKShJLnBhZGRpbmdJbmxpbmVTTSl9YCxmb250U2l6ZTpJLmlucHV0Rm9udFNpemVTTSxib3JkZXJSYWRpdXM6SS5ib3JkZXJSYWRpdXNTTX0pLEM9ST0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHtwb3NpdGlvbjoicmVsYXRpdmUiLGRpc3BsYXk6ImlubGluZS1ibG9jayIsd2lkdGg6IjEwMCUiLG1pbldpZHRoOjAscGFkZGluZzpgJHsoMCxyLmJmKShJLnBhZGRpbmdCbG9jayl9ICR7KDAsci5iZikoSS5wYWRkaW5nSW5saW5lKX1gLGNvbG9yOkkuY29sb3JUZXh0LGZvbnRTaXplOkkuaW5wdXRGb250U2l6ZSxsaW5lSGVpZ2h0OkkubGluZUhlaWdodCxib3JkZXJSYWRpdXM6SS5ib3JkZXJSYWRpdXMsdHJhbnNpdGlvbjpgYWxsICR7SS5tb3Rpb25EdXJhdGlvbk1pZH1gfSxjKEkuY29sb3JUZXh0UGxhY2Vob2xkZXIpKSx7InRleHRhcmVhJiI6e21heFdpZHRoOiIxMDAlIixoZWlnaHQ6ImF1dG8iLG1pbkhlaWdodDpJLmNvbnRyb2xIZWlnaHQsbGluZUhlaWdodDpJLmxpbmVIZWlnaHQsdmVydGljYWxBbGlnbjoiYm90dG9tIix0cmFuc2l0aW9uOmBhbGwgJHtJLm1vdGlvbkR1cmF0aW9uU2xvd30sIGhlaWdodCAwc2AscmVzaXplOiJ2ZXJ0aWNhbCJ9LCImLWxnIjpPYmplY3QuYXNzaWduKHt9LGQoSSkpLCImLXNtIjpPYmplY3QuYXNzaWduKHt9LG0oSSkpLCImLXJ0bCwgJi10ZXh0YXJlYS1ydGwiOntkaXJlY3Rpb246InJ0bCJ9fSksZz1JPT57Y29uc3R7Y29tcG9uZW50Q2xzOlIsYW50Q2xzOnp9PUk7cmV0dXJue3Bvc2l0aW9uOiJyZWxhdGl2ZSIsZGlzcGxheToidGFibGUiLHdpZHRoOiIxMDAlIixib3JkZXJDb2xsYXBzZToic2VwYXJhdGUiLGJvcmRlclNwYWNpbmc6MCwiJltjbGFzcyo9J2NvbC0nXSI6e3BhZGRpbmdJbmxpbmVFbmQ6SS5wYWRkaW5nWFMsIiY6bGFzdC1jaGlsZCI6e3BhZGRpbmdJbmxpbmVFbmQ6MH19LFtgJi1sZyAke1J9LCAmLWxnID4gJHtSfS1ncm91cC1hZGRvbmBdOk9iamVjdC5hc3NpZ24oe30sZChJKSksW2AmLXNtICR7Un0sICYtc20gPiAke1J9LWdyb3VwLWFkZG9uYF06T2JqZWN0LmFzc2lnbih7fSxtKEkpKSxbYCYtbGcgJHt6fS1zZWxlY3Qtc2luZ2xlICR7en0tc2VsZWN0LXNlbGVjdG9yYF06e2hlaWdodDpJLmNvbnRyb2xIZWlnaHRMR30sW2AmLXNtICR7en0tc2VsZWN0LXNpbmdsZSAke3p9LXNlbGVjdC1zZWxlY3RvcmBdOntoZWlnaHQ6SS5jb250cm9sSGVpZ2h0U019LFtgPiAke1J9YF06e2Rpc3BsYXk6InRhYmxlLWNlbGwiLCImOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCkiOntib3JkZXJSYWRpdXM6MH19LFtgJHtSfS1ncm91cGBdOnsiJi1hZGRvbiwgJi13cmFwIjp7ZGlzcGxheToidGFibGUtY2VsbCIsd2lkdGg6MSx3aGl0ZVNwYWNlOiJub3dyYXAiLHZlcnRpY2FsQWxpZ246Im1pZGRsZSIsIiY6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKSI6e2JvcmRlclJhZGl1czowfX0sIiYtd3JhcCA+ICoiOntkaXNwbGF5OiJibG9jayAhaW1wb3J0YW50In0sIiYtYWRkb24iOntwb3NpdGlvbjoicmVsYXRpdmUiLHBhZGRpbmc6YDAgJHsoMCxyLmJmKShJLnBhZGRpbmdJbmxpbmUpfWAsY29sb3I6SS5jb2xvclRleHQsZm9udFdlaWdodDoibm9ybWFsIixmb250U2l6ZTpJLmlucHV0Rm9udFNpemUsdGV4dEFsaWduOiJjZW50ZXIiLGJvcmRlclJhZGl1czpJLmJvcmRlclJhZGl1cyx0cmFuc2l0aW9uOmBhbGwgJHtJLm1vdGlvbkR1cmF0aW9uU2xvd31gLGxpbmVIZWlnaHQ6MSxbYCR7en0tc2VsZWN0YF06e21hcmdpbjpgJHsoMCxyLmJmKShJLmNhbGMoSS5wYWRkaW5nQmxvY2spLmFkZCgxKS5tdWwoLTEpLmVxdWFsKCkpfSAkeygwLHIuYmYpKEkuY2FsYyhJLnBhZGRpbmdJbmxpbmUpLm11bCgtMSkuZXF1YWwoKSl9YCxbYCYke3p9LXNlbGVjdC1zaW5nbGU6bm90KCR7en0tc2VsZWN0LWN1c3RvbWl6ZS1pbnB1dCk6bm90KCR7en0tcGFnaW5hdGlvbi1zaXplLWNoYW5nZXIpYF06e1tgJHt6fS1zZWxlY3Qtc2VsZWN0b3JgXTp7YmFja2dyb3VuZENvbG9yOiJpbmhlcml0Iixib3JkZXI6YCR7KDAsci5iZikoSS5saW5lV2lkdGgpfSAke0kubGluZVR5cGV9IHRyYW5zcGFyZW50YCxib3hTaGFkb3c6Im5vbmUifX19LFtgJHt6fS1jYXNjYWRlci1waWNrZXJgXTp7bWFyZ2luOmAtOXB4ICR7KDAsci5iZikoSS5jYWxjKEkucGFkZGluZ0lubGluZSkubXVsKC0xKS5lcXVhbCgpKX1gLGJhY2tncm91bmRDb2xvcjoidHJhbnNwYXJlbnQiLFtgJHt6fS1jYXNjYWRlci1pbnB1dGBdOnt0ZXh0QWxpZ246InN0YXJ0Iixib3JkZXI6MCxib3hTaGFkb3c6Im5vbmUifX19fSxbUl06e3dpZHRoOiIxMDAlIixtYXJnaW5Cb3R0b206MCx0ZXh0QWxpZ246ImluaGVyaXQiLCImOmZvY3VzIjp7ekluZGV4OjEsYm9yZGVySW5saW5lRW5kV2lkdGg6MX0sIiY6aG92ZXIiOnt6SW5kZXg6MSxib3JkZXJJbmxpbmVFbmRXaWR0aDoxLFtgJHtSfS1zZWFyY2gtd2l0aC1idXR0b24gJmBdOnt6SW5kZXg6MH19fSxbYD4gJHtSfTpmaXJzdC1jaGlsZCwgJHtSfS1ncm91cC1hZGRvbjpmaXJzdC1jaGlsZGBdOntib3JkZXJTdGFydEVuZFJhZGl1czowLGJvcmRlckVuZEVuZFJhZGl1czowLFtgJHt6fS1zZWxlY3QgJHt6fS1zZWxlY3Qtc2VsZWN0b3JgXTp7Ym9yZGVyU3RhcnRFbmRSYWRpdXM6MCxib3JkZXJFbmRFbmRSYWRpdXM6MH19LFtgPiAke1J9LWFmZml4LXdyYXBwZXJgXTp7W2AmOm5vdCg6Zmlyc3QtY2hpbGQpICR7Un1gXTp7Ym9yZGVyU3RhcnRTdGFydFJhZGl1czowLGJvcmRlckVuZFN0YXJ0UmFkaXVzOjB9LFtgJjpub3QoOmxhc3QtY2hpbGQpICR7Un1gXTp7Ym9yZGVyU3RhcnRFbmRSYWRpdXM6MCxib3JkZXJFbmRFbmRSYWRpdXM6MH19LFtgPiAke1J9Omxhc3QtY2hpbGQsICR7Un0tZ3JvdXAtYWRkb246bGFzdC1jaGlsZGBdOntib3JkZXJTdGFydFN0YXJ0UmFkaXVzOjAsYm9yZGVyRW5kU3RhcnRSYWRpdXM6MCxbYCR7en0tc2VsZWN0ICR7en0tc2VsZWN0LXNlbGVjdG9yYF06e2JvcmRlclN0YXJ0U3RhcnRSYWRpdXM6MCxib3JkZXJFbmRTdGFydFJhZGl1czowfX0sW2Ake1J9LWFmZml4LXdyYXBwZXJgXTp7IiY6bm90KDpsYXN0LWNoaWxkKSI6e2JvcmRlclN0YXJ0RW5kUmFkaXVzOjAsYm9yZGVyRW5kRW5kUmFkaXVzOjAsW2Ake1J9LXNlYXJjaCAmYF06e2JvcmRlclN0YXJ0U3RhcnRSYWRpdXM6SS5ib3JkZXJSYWRpdXMsYm9yZGVyRW5kU3RhcnRSYWRpdXM6SS5ib3JkZXJSYWRpdXN9fSxbYCY6bm90KDpmaXJzdC1jaGlsZCksICR7Un0tc2VhcmNoICY6bm90KDpmaXJzdC1jaGlsZClgXTp7Ym9yZGVyU3RhcnRTdGFydFJhZGl1czowLGJvcmRlckVuZFN0YXJ0UmFkaXVzOjB9fSxbYCYke1J9LWdyb3VwLWNvbXBhY3RgXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe2Rpc3BsYXk6ImJsb2NrIn0sKDAsbi5kRikoKSkse1tgJHtSfS1ncm91cC1hZGRvbiwgJHtSfS1ncm91cC13cmFwLCA+ICR7Un1gXTp7IiY6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKSI6e2JvcmRlcklubGluZUVuZFdpZHRoOkkubGluZVdpZHRoLCImOmhvdmVyLCAmOmZvY3VzIjp7ekluZGV4OjF9fX0sIiYgPiAqIjp7ZGlzcGxheToiaW5saW5lLWZsZXgiLGZsb2F0OiJub25lIix2ZXJ0aWNhbEFsaWduOiJ0b3AiLGJvcmRlclJhZGl1czowfSxbYAorICAgICAgICAmID4gJHtSfS1hZmZpeC13cmFwcGVyLAorICAgICAgICAmID4gJHtSfS1udW1iZXItYWZmaXgtd3JhcHBlciwKKyAgICAgICAgJiA+ICR7en0tcGlja2VyLXJhbmdlCisgICAgICBgXTp7ZGlzcGxheToiaW5saW5lLWZsZXgifSwiJiA+ICo6bm90KDpsYXN0LWNoaWxkKSI6e21hcmdpbklubGluZUVuZDpJLmNhbGMoSS5saW5lV2lkdGgpLm11bCgtMSkuZXF1YWwoKSxib3JkZXJJbmxpbmVFbmRXaWR0aDpJLmxpbmVXaWR0aH0sW1JdOntmbG9hdDoibm9uZSJ9LFtgJiA+ICR7en0tc2VsZWN0ID4gJHt6fS1zZWxlY3Qtc2VsZWN0b3IsCisgICAgICAmID4gJHt6fS1zZWxlY3QtYXV0by1jb21wbGV0ZSAke1J9LAorICAgICAgJiA+ICR7en0tY2FzY2FkZXItcGlja2VyICR7Un0sCisgICAgICAmID4gJHtSfS1ncm91cC13cmFwcGVyICR7Un1gXTp7Ym9yZGVySW5saW5lRW5kV2lkdGg6SS5saW5lV2lkdGgsYm9yZGVyUmFkaXVzOjAsIiY6aG92ZXIsICY6Zm9jdXMiOnt6SW5kZXg6MX19LFtgJiA+ICR7en0tc2VsZWN0LWZvY3VzZWRgXTp7ekluZGV4OjF9LFtgJiA+ICR7en0tc2VsZWN0ID4gJHt6fS1zZWxlY3QtYXJyb3dgXTp7ekluZGV4OjF9LFtgJiA+ICo6Zmlyc3QtY2hpbGQsCisgICAgICAmID4gJHt6fS1zZWxlY3Q6Zmlyc3QtY2hpbGQgPiAke3p9LXNlbGVjdC1zZWxlY3RvciwKKyAgICAgICYgPiAke3p9LXNlbGVjdC1hdXRvLWNvbXBsZXRlOmZpcnN0LWNoaWxkICR7Un0sCisgICAgICAmID4gJHt6fS1jYXNjYWRlci1waWNrZXI6Zmlyc3QtY2hpbGQgJHtSfWBdOntib3JkZXJTdGFydFN0YXJ0UmFkaXVzOkkuYm9yZGVyUmFkaXVzLGJvcmRlckVuZFN0YXJ0UmFkaXVzOkkuYm9yZGVyUmFkaXVzfSxbYCYgPiAqOmxhc3QtY2hpbGQsCisgICAgICAmID4gJHt6fS1zZWxlY3Q6bGFzdC1jaGlsZCA+ICR7en0tc2VsZWN0LXNlbGVjdG9yLAorICAgICAgJiA+ICR7en0tY2FzY2FkZXItcGlja2VyOmxhc3QtY2hpbGQgJHtSfSwKKyAgICAgICYgPiAke3p9LWNhc2NhZGVyLXBpY2tlci1mb2N1c2VkOmxhc3QtY2hpbGQgJHtSfWBdOntib3JkZXJJbmxpbmVFbmRXaWR0aDpJLmxpbmVXaWR0aCxib3JkZXJTdGFydEVuZFJhZGl1czpJLmJvcmRlclJhZGl1cyxib3JkZXJFbmRFbmRSYWRpdXM6SS5ib3JkZXJSYWRpdXN9LFtgJiA+ICR7en0tc2VsZWN0LWF1dG8tY29tcGxldGUgJHtSfWBdOnt2ZXJ0aWNhbEFsaWduOiJ0b3AifSxbYCR7Un0tZ3JvdXAtd3JhcHBlciArICR7Un0tZ3JvdXAtd3JhcHBlcmBdOnttYXJnaW5JbmxpbmVTdGFydDpJLmNhbGMoSS5saW5lV2lkdGgpLm11bCgtMSkuZXF1YWwoKSxbYCR7Un0tYWZmaXgtd3JhcHBlcmBdOntib3JkZXJSYWRpdXM6MH19LFtgJHtSfS1ncm91cC13cmFwcGVyOm5vdCg6bGFzdC1jaGlsZClgXTp7W2AmJHtSfS1zZWFyY2ggPiAke1J9LWdyb3VwYF06e1tgJiA+ICR7Un0tZ3JvdXAtYWRkb24gPiAke1J9LXNlYXJjaC1idXR0b25gXTp7Ym9yZGVyUmFkaXVzOjB9LFtgJiA+ICR7Un1gXTp7Ym9yZGVyU3RhcnRTdGFydFJhZGl1czpJLmJvcmRlclJhZGl1cyxib3JkZXJTdGFydEVuZFJhZGl1czowLGJvcmRlckVuZEVuZFJhZGl1czowLGJvcmRlckVuZFN0YXJ0UmFkaXVzOkkuYm9yZGVyUmFkaXVzfX19fSl9fSx3PUk9Pntjb25zdHtjb21wb25lbnRDbHM6Uixjb250cm9sSGVpZ2h0U006eixsaW5lV2lkdGg6RyxjYWxjOll9PUksSj1ZKHopLnN1YihZKEcpLm11bCgyKSkuc3ViKDE2KS5kaXYoMikuZXF1YWwoKTtyZXR1cm57W1JdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sKDAsbi5XZikoSSkpLEMoSSkpLCgwLHUucUcpKEkpKSwoMCx1Lkg4KShJKSksKDAsdS5NdSkoSSkpLCgwLHUudmMpKEkpKSx7JyZbdHlwZT0iY29sb3IiXSc6e2hlaWdodDpJLmNvbnRyb2xIZWlnaHQsW2AmJHtSfS1sZ2BdOntoZWlnaHQ6SS5jb250cm9sSGVpZ2h0TEd9LFtgJiR7Un0tc21gXTp7aGVpZ2h0OnoscGFkZGluZ1RvcDpKLHBhZGRpbmdCb3R0b206Sn19LCcmW3R5cGU9InNlYXJjaCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLCAmW3R5cGU9InNlYXJjaCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uJzp7Ii13ZWJraXQtYXBwZWFyYW5jZSI6Im5vbmUifX0pfX0sRT1JPT57Y29uc3R7Y29tcG9uZW50Q2xzOlJ9PUk7cmV0dXJue1tgJHtSfS1jbGVhci1pY29uYF06e21hcmdpbjowLHBhZGRpbmc6MCxsaW5lSGVpZ2h0OjAsY29sb3I6SS5jb2xvclRleHRRdWF0ZXJuYXJ5LGZvbnRTaXplOkkuZm9udFNpemVJY29uLHZlcnRpY2FsQWxpZ246LTEsY3Vyc29yOiJwb2ludGVyIix0cmFuc2l0aW9uOmBjb2xvciAke0kubW90aW9uRHVyYXRpb25TbG93fWAsYm9yZGVyOiJub25lIixvdXRsaW5lOiJub25lIixiYWNrZ3JvdW5kQ29sb3I6InRyYW5zcGFyZW50IiwiJjpob3ZlciI6e2NvbG9yOkkuY29sb3JUZXh0VGVydGlhcnl9LCImOmFjdGl2ZSI6e2NvbG9yOkkuY29sb3JUZXh0fSwiJi1oaWRkZW4iOnt2aXNpYmlsaXR5OiJoaWRkZW4ifSwiJi1oYXMtc3VmZml4Ijp7bWFyZ2luOmAwICR7KDAsci5iZikoSS5pbnB1dEFmZml4UGFkZGluZyl9YH19fX0seD1JPT57Y29uc3R7Y29tcG9uZW50Q2xzOlIsaW5wdXRBZmZpeFBhZGRpbmc6eixjb2xvclRleHREZXNjcmlwdGlvbjpHLG1vdGlvbkR1cmF0aW9uU2xvdzpZLGNvbG9ySWNvbjplZSxjb2xvckljb25Ib3ZlcjpKLGljb25DbHM6bWV9PUksdGU9YCR7Un0tYWZmaXgtd3JhcHBlcmAsbGU9YCR7Un0tYWZmaXgtd3JhcHBlci1kaXNhYmxlZGA7cmV0dXJue1t0ZV06T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxDKEkpKSx7ZGlzcGxheToiaW5saW5lLWZsZXgiLFtgJjpub3QoJHtSfS1kaXNhYmxlZCk6aG92ZXJgXTp7ekluZGV4OjEsW2Ake1J9LXNlYXJjaC13aXRoLWJ1dHRvbiAmYF06e3pJbmRleDowfX0sIiYtZm9jdXNlZCwgJjpmb2N1cyI6e3pJbmRleDoxfSxbYD4gaW5wdXQke1J9YF06e3BhZGRpbmc6MH0sW2A+IGlucHV0JHtSfSwgPiB0ZXh0YXJlYSR7Un1gXTp7Zm9udFNpemU6ImluaGVyaXQiLGJvcmRlcjoibm9uZSIsYm9yZGVyUmFkaXVzOjAsb3V0bGluZToibm9uZSIsYmFja2dyb3VuZDoidHJhbnNwYXJlbnQiLGNvbG9yOiJpbmhlcml0IiwiJjo6LW1zLXJldmVhbCI6e2Rpc3BsYXk6Im5vbmUifSwiJjpmb2N1cyI6e2JveFNoYWRvdzoibm9uZSAhaW1wb3J0YW50In19LCImOjpiZWZvcmUiOntkaXNwbGF5OiJpbmxpbmUtYmxvY2siLHdpZHRoOjAsdmlzaWJpbGl0eToiaGlkZGVuIixjb250ZW50OiciXFxhMCInfSxbUl06eyImLXByZWZpeCwgJi1zdWZmaXgiOntkaXNwbGF5OiJmbGV4IixmbGV4OiJub25lIixhbGlnbkl0ZW1zOiJjZW50ZXIiLCI+ICo6bm90KDpsYXN0LWNoaWxkKSI6e21hcmdpbklubGluZUVuZDpJLnBhZGRpbmdYU319LCImLXNob3ctY291bnQtc3VmZml4Ijp7Y29sb3I6R30sIiYtc2hvdy1jb3VudC1oYXMtc3VmZml4Ijp7bWFyZ2luSW5saW5lRW5kOkkucGFkZGluZ1hYU30sIiYtcHJlZml4Ijp7bWFyZ2luSW5saW5lRW5kOnp9LCImLXN1ZmZpeCI6e21hcmdpbklubGluZVN0YXJ0Onp9fX0pLEUoSSkpLHtbYCR7bWV9JHtSfS1wYXNzd29yZC1pY29uYF06e2NvbG9yOmVlLGN1cnNvcjoicG9pbnRlciIsdHJhbnNpdGlvbjpgYWxsICR7WX1gLCImOmhvdmVyIjp7Y29sb3I6Sn19fSksW2Ake1J9LXVuZGVybGluZWRgXTp7Ym9yZGVyUmFkaXVzOjB9LFtsZV06e1tgJHttZX0ke1J9LXBhc3N3b3JkLWljb25gXTp7Y29sb3I6ZWUsY3Vyc29yOiJub3QtYWxsb3dlZCIsIiY6aG92ZXIiOntjb2xvcjplZX19fX19LE89ST0+e2NvbnN0e2NvbXBvbmVudENsczpSLGJvcmRlclJhZGl1c0xHOnosYm9yZGVyUmFkaXVzU006R309STtyZXR1cm57W2Ake1J9LWdyb3VwYF06T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sKDAsbi5XZikoSSkpLGcoSSkpLHsiJi1ydGwiOntkaXJlY3Rpb246InJ0bCJ9LCImLXdyYXBwZXIiOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHtkaXNwbGF5OiJpbmxpbmUtYmxvY2siLHdpZHRoOiIxMDAlIix0ZXh0QWxpZ246InN0YXJ0Iix2ZXJ0aWNhbEFsaWduOiJ0b3AiLCImLXJ0bCI6e2RpcmVjdGlvbjoicnRsIn0sIiYtbGciOntbYCR7Un0tZ3JvdXAtYWRkb25gXTp7Ym9yZGVyUmFkaXVzOnosZm9udFNpemU6SS5pbnB1dEZvbnRTaXplTEd9fSwiJi1zbSI6e1tgJHtSfS1ncm91cC1hZGRvbmBdOntib3JkZXJSYWRpdXM6R319fSwoMCx1LmlyKShJKSksKDAsdS5TNSkoSSkpLHtbYCY6bm90KCR7Un0tY29tcGFjdC1maXJzdC1pdGVtKTpub3QoJHtSfS1jb21wYWN0LWxhc3QtaXRlbSkke1J9LWNvbXBhY3QtaXRlbWBdOntbYCR7Un0sICR7Un0tZ3JvdXAtYWRkb25gXTp7Ym9yZGVyUmFkaXVzOjB9fSxbYCY6bm90KCR7Un0tY29tcGFjdC1sYXN0LWl0ZW0pJHtSfS1jb21wYWN0LWZpcnN0LWl0ZW1gXTp7W2Ake1J9LCAke1J9LWdyb3VwLWFkZG9uYF06e2JvcmRlclN0YXJ0RW5kUmFkaXVzOjAsYm9yZGVyRW5kRW5kUmFkaXVzOjB9fSxbYCY6bm90KCR7Un0tY29tcGFjdC1maXJzdC1pdGVtKSR7Un0tY29tcGFjdC1sYXN0LWl0ZW1gXTp7W2Ake1J9LCAke1J9LWdyb3VwLWFkZG9uYF06e2JvcmRlclN0YXJ0U3RhcnRSYWRpdXM6MCxib3JkZXJFbmRTdGFydFJhZGl1czowfX0sW2AmOm5vdCgke1J9LWNvbXBhY3QtbGFzdC1pdGVtKSR7Un0tY29tcGFjdC1pdGVtYF06e1tgJHtSfS1hZmZpeC13cmFwcGVyYF06e2JvcmRlclN0YXJ0RW5kUmFkaXVzOjAsYm9yZGVyRW5kRW5kUmFkaXVzOjB9fSxbYCY6bm90KCR7Un0tY29tcGFjdC1maXJzdC1pdGVtKSR7Un0tY29tcGFjdC1pdGVtYF06e1tgJHtSfS1hZmZpeC13cmFwcGVyYF06e2JvcmRlclN0YXJ0U3RhcnRSYWRpdXM6MCxib3JkZXJFbmRTdGFydFJhZGl1czowfX19KX0pfX0sVD1JPT57Y29uc3R7Y29tcG9uZW50Q2xzOlIsYW50Q2xzOnp9PUksRz1gJHtSfS1zZWFyY2hgO3JldHVybntbR106e1tSXTp7IiY6aG92ZXIsICY6Zm9jdXMiOntbYCsgJHtSfS1ncm91cC1hZGRvbiAke0d9LWJ1dHRvbjpub3QoJHt6fS1idG4tcHJpbWFyeSlgXTp7Ym9yZGVySW5saW5lU3RhcnRDb2xvcjpJLmNvbG9yUHJpbWFyeUhvdmVyfX19LFtgJHtSfS1hZmZpeC13cmFwcGVyYF06e2hlaWdodDpJLmNvbnRyb2xIZWlnaHQsYm9yZGVyUmFkaXVzOjB9LFtgJHtSfS1sZ2BdOntsaW5lSGVpZ2h0OkkuY2FsYyhJLmxpbmVIZWlnaHRMRykuc3ViKDJlLTQpLmVxdWFsKCl9LFtgPiAke1J9LWdyb3VwYF06e1tgPiAke1J9LWdyb3VwLWFkZG9uOmxhc3QtY2hpbGRgXTp7aW5zZXRJbmxpbmVTdGFydDotMSxwYWRkaW5nOjAsYm9yZGVyOjAsW2Ake0d9LWJ1dHRvbmBdOnttYXJnaW5JbmxpbmVFbmQ6LTEsYm9yZGVyU3RhcnRTdGFydFJhZGl1czowLGJvcmRlckVuZFN0YXJ0UmFkaXVzOjAsYm94U2hhZG93OiJub25lIn0sW2Ake0d9LWJ1dHRvbjpub3QoJHt6fS1idG4tcHJpbWFyeSlgXTp7Y29sb3I6SS5jb2xvclRleHREZXNjcmlwdGlvbiwiJjpob3ZlciI6e2NvbG9yOkkuY29sb3JQcmltYXJ5SG92ZXJ9LCImOmFjdGl2ZSI6e2NvbG9yOkkuY29sb3JQcmltYXJ5QWN0aXZlfSxbYCYke3p9LWJ0bi1sb2FkaW5nOjpiZWZvcmVgXTp7aW5zZXRJbmxpbmVTdGFydDowLGluc2V0SW5saW5lRW5kOjAsaW5zZXRCbG9ja1N0YXJ0OjAsaW5zZXRCbG9ja0VuZDowfX19fSxbYCR7R30tYnV0dG9uYF06e2hlaWdodDpJLmNvbnRyb2xIZWlnaHQsIiY6aG92ZXIsICY6Zm9jdXMiOnt6SW5kZXg6MX19LCImLWxhcmdlIjp7W2Ake1J9LWFmZml4LXdyYXBwZXIsICR7R30tYnV0dG9uYF06e2hlaWdodDpJLmNvbnRyb2xIZWlnaHRMR319LCImLXNtYWxsIjp7W2Ake1J9LWFmZml4LXdyYXBwZXIsICR7R30tYnV0dG9uYF06e2hlaWdodDpJLmNvbnRyb2xIZWlnaHRTTX19LCImLXJ0bCI6e2RpcmVjdGlvbjoicnRsIn0sW2AmJHtSfS1jb21wYWN0LWl0ZW1gXTp7W2AmOm5vdCgke1J9LWNvbXBhY3QtbGFzdC1pdGVtKWBdOntbYCR7Un0tZ3JvdXAtYWRkb25gXTp7W2Ake1J9LXNlYXJjaC1idXR0b25gXTp7bWFyZ2luSW5saW5lRW5kOkkuY2FsYyhJLmxpbmVXaWR0aCkubXVsKC0xKS5lcXVhbCgpLGJvcmRlclJhZGl1czowfX19LFtgJjpub3QoJHtSfS1jb21wYWN0LWZpcnN0LWl0ZW0pYF06e1tgJHtSfSwke1J9LWFmZml4LXdyYXBwZXJgXTp7Ym9yZGVyUmFkaXVzOjB9fSxbYD4gJHtSfS1ncm91cC1hZGRvbiAke1J9LXNlYXJjaC1idXR0b24sCisgICAgICAgID4gJHtSfSwKKyAgICAgICAgJHtSfS1hZmZpeC13cmFwcGVyYF06eyImOmhvdmVyLCAmOmZvY3VzLCAmOmFjdGl2ZSI6e3pJbmRleDoyfX0sW2A+ICR7Un0tYWZmaXgtd3JhcHBlci1mb2N1c2VkYF06e3pJbmRleDoyfX19fX0sUz1JPT57Y29uc3R7Y29tcG9uZW50Q2xzOlJ9PUk7cmV0dXJue1tgJHtSfS1vdXQtb2YtcmFuZ2VgXTp7W2AmLCAmIGlucHV0LCAmIHRleHRhcmVhLCAke1J9LXNob3ctY291bnQtc3VmZml4LCAke1J9LWRhdGEtY291bnRgXTp7Y29sb3I6SS5jb2xvckVycm9yfX19fSxMPSgwLGkuSSQpKFsiSW5wdXQiLCJTaGFyZWQiXSxJPT57Y29uc3QgUj0oMCxzLklYKShJLCgwLGEuZSkoSSkpO3JldHVyblt3KFIpLHgoUildfSxhLlQse3Jlc2V0Rm9udDohMX0pO3AuWlA9KDAsaS5JJCkoWyJJbnB1dCIsIkNvbXBvbmVudCJdLEk9Pntjb25zdCBSPSgwLHMuSVgpKEksKDAsYS5lKShJKSk7cmV0dXJuW08oUiksVChSKSxTKFIpLCgwLHQuYykoUildfSxhLlQse3Jlc2V0Rm9udDohMX0pfSwyMDM1MzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtUOmZ1bmN0aW9uKCl7cmV0dXJuIHR9LGU6ZnVuY3Rpb24oKXtyZXR1cm4gbn19KTt2YXIgcj1lKDgzMjYyKTtmdW5jdGlvbiBuKGkpe3JldHVybigwLHIuSVgpKGkse2lucHV0QWZmaXhQYWRkaW5nOmkucGFkZGluZ1hYU30pfWNvbnN0IHQ9aT0+e2NvbnN0e2NvbnRyb2xIZWlnaHQ6cyxmb250U2l6ZTphLGxpbmVIZWlnaHQ6dSxsaW5lV2lkdGg6Yyxjb250cm9sSGVpZ2h0U006aCxjb250cm9sSGVpZ2h0TEc6ZCxmb250U2l6ZUxHOm0sbGluZUhlaWdodExHOkMscGFkZGluZ1NNOmcsY29udHJvbFBhZGRpbmdIb3Jpem9udGFsU006dyxjb250cm9sUGFkZGluZ0hvcml6b250YWw6RSxjb2xvckZpbGxBbHRlcjp4LGNvbG9yUHJpbWFyeUhvdmVyOk8sY29sb3JQcmltYXJ5OlQsY29udHJvbE91dGxpbmVXaWR0aDpTLGNvbnRyb2xPdXRsaW5lOkwsY29sb3JFcnJvck91dGxpbmU6SSxjb2xvcldhcm5pbmdPdXRsaW5lOlIsY29sb3JCZ0NvbnRhaW5lcjp6LGlucHV0Rm9udFNpemU6RyxpbnB1dEZvbnRTaXplTEc6WSxpbnB1dEZvbnRTaXplU006ZWV9PWksSj1HfHxhLG1lPWVlfHxKLHRlPVl8fG0sbGU9TWF0aC5yb3VuZCgocy1KKnUpLzIqMTApLzEwLWMsY2U9TWF0aC5yb3VuZCgoaC1tZSp1KS8yKjEwKS8xMC1jLFc9TWF0aC5jZWlsKChkLXRlKkMpLzIqMTApLzEwLWM7cmV0dXJue3BhZGRpbmdCbG9jazpNYXRoLm1heChsZSwwKSxwYWRkaW5nQmxvY2tTTTpNYXRoLm1heChjZSwwKSxwYWRkaW5nQmxvY2tMRzpNYXRoLm1heChXLDApLHBhZGRpbmdJbmxpbmU6Zy1jLHBhZGRpbmdJbmxpbmVTTTp3LWMscGFkZGluZ0lubGluZUxHOkUtYyxhZGRvbkJnOngsYWN0aXZlQm9yZGVyQ29sb3I6VCxob3ZlckJvcmRlckNvbG9yOk8sYWN0aXZlU2hhZG93OmAwIDAgMCAke1N9cHggJHtMfWAsZXJyb3JBY3RpdmVTaGFkb3c6YDAgMCAwICR7U31weCAke0l9YCx3YXJuaW5nQWN0aXZlU2hhZG93OmAwIDAgMCAke1N9cHggJHtSfWAsaG92ZXJCZzp6LGFjdGl2ZUJnOnosaW5wdXRGb250U2l6ZTpKLGlucHV0Rm9udFNpemVMRzp0ZSxpbnB1dEZvbnRTaXplU006bWV9fX0sOTM5MDA6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7JFU6ZnVuY3Rpb24oKXtyZXR1cm4gc30sSDg6ZnVuY3Rpb24oKXtyZXR1cm4gZ30sTXU6ZnVuY3Rpb24oKXtyZXR1cm4gZH0sUzU6ZnVuY3Rpb24oKXtyZXR1cm4gRX0sWHk6ZnVuY3Rpb24oKXtyZXR1cm4gaX0saXI6ZnVuY3Rpb24oKXtyZXR1cm4gaH0scUc6ZnVuY3Rpb24oKXtyZXR1cm4gdX0sdmM6ZnVuY3Rpb24oKXtyZXR1cm4gVH19KTt2YXIgcj1lKDExNTY4KSxuPWUoODMyNjIpO2NvbnN0IHQ9Uz0+KHtib3JkZXJDb2xvcjpTLmhvdmVyQm9yZGVyQ29sb3IsYmFja2dyb3VuZENvbG9yOlMuaG92ZXJCZ30pLGk9Uz0+KHtjb2xvcjpTLmNvbG9yVGV4dERpc2FibGVkLGJhY2tncm91bmRDb2xvcjpTLmNvbG9yQmdDb250YWluZXJEaXNhYmxlZCxib3JkZXJDb2xvcjpTLmNvbG9yQm9yZGVyLGJveFNoYWRvdzoibm9uZSIsY3Vyc29yOiJub3QtYWxsb3dlZCIsb3BhY2l0eToxLCJpbnB1dFtkaXNhYmxlZF0sIHRleHRhcmVhW2Rpc2FibGVkXSI6e2N1cnNvcjoibm90LWFsbG93ZWQifSwiJjpob3Zlcjpub3QoW2Rpc2FibGVkXSkiOk9iamVjdC5hc3NpZ24oe30sdCgoMCxuLklYKShTLHtob3ZlckJvcmRlckNvbG9yOlMuY29sb3JCb3JkZXIsaG92ZXJCZzpTLmNvbG9yQmdDb250YWluZXJEaXNhYmxlZH0pKSl9KSxzPShTLEwpPT4oe2JhY2tncm91bmQ6Uy5jb2xvckJnQ29udGFpbmVyLGJvcmRlcldpZHRoOlMubGluZVdpZHRoLGJvcmRlclN0eWxlOlMubGluZVR5cGUsYm9yZGVyQ29sb3I6TC5ib3JkZXJDb2xvciwiJjpob3ZlciI6e2JvcmRlckNvbG9yOkwuaG92ZXJCb3JkZXJDb2xvcixiYWNrZ3JvdW5kQ29sb3I6Uy5ob3ZlckJnfSwiJjpmb2N1cywgJjpmb2N1cy13aXRoaW4iOntib3JkZXJDb2xvcjpMLmFjdGl2ZUJvcmRlckNvbG9yLGJveFNoYWRvdzpMLmFjdGl2ZVNoYWRvdyxvdXRsaW5lOjAsYmFja2dyb3VuZENvbG9yOlMuYWN0aXZlQmd9fSksYT0oUyxMKT0+KHtbYCYke1MuY29tcG9uZW50Q2xzfS1zdGF0dXMtJHtMLnN0YXR1c306bm90KCR7Uy5jb21wb25lbnRDbHN9LWRpc2FibGVkKWBdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxzKFMsTCkpLHtbYCR7Uy5jb21wb25lbnRDbHN9LXByZWZpeCwgJHtTLmNvbXBvbmVudENsc30tc3VmZml4YF06e2NvbG9yOkwuYWZmaXhDb2xvcn19KSxbYCYke1MuY29tcG9uZW50Q2xzfS1zdGF0dXMtJHtMLnN0YXR1c30ke1MuY29tcG9uZW50Q2xzfS1kaXNhYmxlZGBdOntib3JkZXJDb2xvcjpMLmJvcmRlckNvbG9yfX0pLHU9KFMsTCk9Pih7IiYtb3V0bGluZWQiOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxzKFMse2JvcmRlckNvbG9yOlMuY29sb3JCb3JkZXIsaG92ZXJCb3JkZXJDb2xvcjpTLmhvdmVyQm9yZGVyQ29sb3IsYWN0aXZlQm9yZGVyQ29sb3I6Uy5hY3RpdmVCb3JkZXJDb2xvcixhY3RpdmVTaGFkb3c6Uy5hY3RpdmVTaGFkb3d9KSkse1tgJiR7Uy5jb21wb25lbnRDbHN9LWRpc2FibGVkLCAmW2Rpc2FibGVkXWBdOk9iamVjdC5hc3NpZ24oe30saShTKSl9KSxhKFMse3N0YXR1czoiZXJyb3IiLGJvcmRlckNvbG9yOlMuY29sb3JFcnJvcixob3ZlckJvcmRlckNvbG9yOlMuY29sb3JFcnJvckJvcmRlckhvdmVyLGFjdGl2ZUJvcmRlckNvbG9yOlMuY29sb3JFcnJvcixhY3RpdmVTaGFkb3c6Uy5lcnJvckFjdGl2ZVNoYWRvdyxhZmZpeENvbG9yOlMuY29sb3JFcnJvcn0pKSxhKFMse3N0YXR1czoid2FybmluZyIsYm9yZGVyQ29sb3I6Uy5jb2xvcldhcm5pbmcsaG92ZXJCb3JkZXJDb2xvcjpTLmNvbG9yV2FybmluZ0JvcmRlckhvdmVyLGFjdGl2ZUJvcmRlckNvbG9yOlMuY29sb3JXYXJuaW5nLGFjdGl2ZVNoYWRvdzpTLndhcm5pbmdBY3RpdmVTaGFkb3csYWZmaXhDb2xvcjpTLmNvbG9yV2FybmluZ30pKSxMKX0pLGM9KFMsTCk9Pih7W2AmJHtTLmNvbXBvbmVudENsc30tZ3JvdXAtd3JhcHBlci1zdGF0dXMtJHtMLnN0YXR1c31gXTp7W2Ake1MuY29tcG9uZW50Q2xzfS1ncm91cC1hZGRvbmBdOntib3JkZXJDb2xvcjpMLmFkZG9uQm9yZGVyQ29sb3IsY29sb3I6TC5hZGRvbkNvbG9yfX19KSxoPVM9Pih7IiYtb3V0bGluZWQiOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHtbYCR7Uy5jb21wb25lbnRDbHN9LWdyb3VwYF06eyImLWFkZG9uIjp7YmFja2dyb3VuZDpTLmFkZG9uQmcsYm9yZGVyOmAkeygwLHIuYmYpKFMubGluZVdpZHRoKX0gJHtTLmxpbmVUeXBlfSAke1MuY29sb3JCb3JkZXJ9YH0sIiYtYWRkb246Zmlyc3QtY2hpbGQiOntib3JkZXJJbmxpbmVFbmQ6MH0sIiYtYWRkb246bGFzdC1jaGlsZCI6e2JvcmRlcklubGluZVN0YXJ0OjB9fX0sYyhTLHtzdGF0dXM6ImVycm9yIixhZGRvbkJvcmRlckNvbG9yOlMuY29sb3JFcnJvcixhZGRvbkNvbG9yOlMuY29sb3JFcnJvclRleHR9KSksYyhTLHtzdGF0dXM6Indhcm5pbmciLGFkZG9uQm9yZGVyQ29sb3I6Uy5jb2xvcldhcm5pbmcsYWRkb25Db2xvcjpTLmNvbG9yV2FybmluZ1RleHR9KSkse1tgJiR7Uy5jb21wb25lbnRDbHN9LWdyb3VwLXdyYXBwZXItZGlzYWJsZWRgXTp7W2Ake1MuY29tcG9uZW50Q2xzfS1ncm91cC1hZGRvbmBdOk9iamVjdC5hc3NpZ24oe30saShTKSl9fSl9KSxkPShTLEwpPT57Y29uc3R7Y29tcG9uZW50Q2xzOkl9PVM7cmV0dXJueyImLWJvcmRlcmxlc3MiOk9iamVjdC5hc3NpZ24oe2JhY2tncm91bmQ6InRyYW5zcGFyZW50Iixib3JkZXI6Im5vbmUiLCImOmZvY3VzLCAmOmZvY3VzLXdpdGhpbiI6e291dGxpbmU6Im5vbmUifSxbYCYke0l9LWRpc2FibGVkLCAmW2Rpc2FibGVkXWBdOntjb2xvcjpTLmNvbG9yVGV4dERpc2FibGVkLGN1cnNvcjoibm90LWFsbG93ZWQifSxbYCYke0l9LXN0YXR1cy1lcnJvcmBdOnsiJiwgJiBpbnB1dCwgJiB0ZXh0YXJlYSI6e2NvbG9yOlMuY29sb3JFcnJvcn19LFtgJiR7SX0tc3RhdHVzLXdhcm5pbmdgXTp7IiYsICYgaW5wdXQsICYgdGV4dGFyZWEiOntjb2xvcjpTLmNvbG9yV2FybmluZ319fSxMKX19LG09KFMsTCk9Pih7YmFja2dyb3VuZDpMLmJnLGJvcmRlcldpZHRoOlMubGluZVdpZHRoLGJvcmRlclN0eWxlOlMubGluZVR5cGUsYm9yZGVyQ29sb3I6InRyYW5zcGFyZW50IiwiaW5wdXQmLCAmIGlucHV0LCB0ZXh0YXJlYSYsICYgdGV4dGFyZWEiOntjb2xvcjpMPT1udWxsP3ZvaWQgMDpMLmlucHV0Q29sb3J9LCImOmhvdmVyIjp7YmFja2dyb3VuZDpMLmhvdmVyQmd9LCImOmZvY3VzLCAmOmZvY3VzLXdpdGhpbiI6e291dGxpbmU6MCxib3JkZXJDb2xvcjpMLmFjdGl2ZUJvcmRlckNvbG9yLGJhY2tncm91bmRDb2xvcjpTLmFjdGl2ZUJnfX0pLEM9KFMsTCk9Pih7W2AmJHtTLmNvbXBvbmVudENsc30tc3RhdHVzLSR7TC5zdGF0dXN9Om5vdCgke1MuY29tcG9uZW50Q2xzfS1kaXNhYmxlZClgXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbShTLEwpKSx7W2Ake1MuY29tcG9uZW50Q2xzfS1wcmVmaXgsICR7Uy5jb21wb25lbnRDbHN9LXN1ZmZpeGBdOntjb2xvcjpMLmFmZml4Q29sb3J9fSl9KSxnPShTLEwpPT4oeyImLWZpbGxlZCI6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG0oUyx7Ymc6Uy5jb2xvckZpbGxUZXJ0aWFyeSxob3ZlckJnOlMuY29sb3JGaWxsU2Vjb25kYXJ5LGFjdGl2ZUJvcmRlckNvbG9yOlMuYWN0aXZlQm9yZGVyQ29sb3J9KSkse1tgJiR7Uy5jb21wb25lbnRDbHN9LWRpc2FibGVkLCAmW2Rpc2FibGVkXWBdOk9iamVjdC5hc3NpZ24oe30saShTKSl9KSxDKFMse3N0YXR1czoiZXJyb3IiLGJnOlMuY29sb3JFcnJvckJnLGhvdmVyQmc6Uy5jb2xvckVycm9yQmdIb3ZlcixhY3RpdmVCb3JkZXJDb2xvcjpTLmNvbG9yRXJyb3IsaW5wdXRDb2xvcjpTLmNvbG9yRXJyb3JUZXh0LGFmZml4Q29sb3I6Uy5jb2xvckVycm9yfSkpLEMoUyx7c3RhdHVzOiJ3YXJuaW5nIixiZzpTLmNvbG9yV2FybmluZ0JnLGhvdmVyQmc6Uy5jb2xvcldhcm5pbmdCZ0hvdmVyLGFjdGl2ZUJvcmRlckNvbG9yOlMuY29sb3JXYXJuaW5nLGlucHV0Q29sb3I6Uy5jb2xvcldhcm5pbmdUZXh0LGFmZml4Q29sb3I6Uy5jb2xvcldhcm5pbmd9KSksTCl9KSx3PShTLEwpPT4oe1tgJiR7Uy5jb21wb25lbnRDbHN9LWdyb3VwLXdyYXBwZXItc3RhdHVzLSR7TC5zdGF0dXN9YF06e1tgJHtTLmNvbXBvbmVudENsc30tZ3JvdXAtYWRkb25gXTp7YmFja2dyb3VuZDpMLmFkZG9uQmcsY29sb3I6TC5hZGRvbkNvbG9yfX19KSxFPVM9Pih7IiYtZmlsbGVkIjpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7W2Ake1MuY29tcG9uZW50Q2xzfS1ncm91cGBdOnsiJi1hZGRvbiI6e2JhY2tncm91bmQ6Uy5jb2xvckZpbGxUZXJ0aWFyeX0sW2Ake1MuY29tcG9uZW50Q2xzfS1maWxsZWQ6bm90KDpmb2N1cyk6bm90KDpmb2N1cy13aXRoaW4pYF06eyImOm5vdCg6Zmlyc3QtY2hpbGQpIjp7Ym9yZGVySW5saW5lU3RhcnQ6YCR7KDAsci5iZikoUy5saW5lV2lkdGgpfSAke1MubGluZVR5cGV9ICR7Uy5jb2xvclNwbGl0fWB9LCImOm5vdCg6bGFzdC1jaGlsZCkiOntib3JkZXJJbmxpbmVFbmQ6YCR7KDAsci5iZikoUy5saW5lV2lkdGgpfSAke1MubGluZVR5cGV9ICR7Uy5jb2xvclNwbGl0fWB9fX19LHcoUyx7c3RhdHVzOiJlcnJvciIsYWRkb25CZzpTLmNvbG9yRXJyb3JCZyxhZGRvbkNvbG9yOlMuY29sb3JFcnJvclRleHR9KSksdyhTLHtzdGF0dXM6Indhcm5pbmciLGFkZG9uQmc6Uy5jb2xvcldhcm5pbmdCZyxhZGRvbkNvbG9yOlMuY29sb3JXYXJuaW5nVGV4dH0pKSx7W2AmJHtTLmNvbXBvbmVudENsc30tZ3JvdXAtd3JhcHBlci1kaXNhYmxlZGBdOntbYCR7Uy5jb21wb25lbnRDbHN9LWdyb3VwYF06eyImLWFkZG9uIjp7YmFja2dyb3VuZDpTLmNvbG9yRmlsbFRlcnRpYXJ5LGNvbG9yOlMuY29sb3JUZXh0RGlzYWJsZWR9LCImLWFkZG9uOmZpcnN0LWNoaWxkIjp7Ym9yZGVySW5saW5lU3RhcnQ6YCR7KDAsci5iZikoUy5saW5lV2lkdGgpfSAke1MubGluZVR5cGV9ICR7Uy5jb2xvckJvcmRlcn1gLGJvcmRlclRvcDpgJHsoMCxyLmJmKShTLmxpbmVXaWR0aCl9ICR7Uy5saW5lVHlwZX0gJHtTLmNvbG9yQm9yZGVyfWAsYm9yZGVyQm90dG9tOmAkeygwLHIuYmYpKFMubGluZVdpZHRoKX0gJHtTLmxpbmVUeXBlfSAke1MuY29sb3JCb3JkZXJ9YH0sIiYtYWRkb246bGFzdC1jaGlsZCI6e2JvcmRlcklubGluZUVuZDpgJHsoMCxyLmJmKShTLmxpbmVXaWR0aCl9ICR7Uy5saW5lVHlwZX0gJHtTLmNvbG9yQm9yZGVyfWAsYm9yZGVyVG9wOmAkeygwLHIuYmYpKFMubGluZVdpZHRoKX0gJHtTLmxpbmVUeXBlfSAke1MuY29sb3JCb3JkZXJ9YCxib3JkZXJCb3R0b206YCR7KDAsci5iZikoUy5saW5lV2lkdGgpfSAke1MubGluZVR5cGV9ICR7Uy5jb2xvckJvcmRlcn1gfX19fSl9KSx4PShTLEwpPT4oe2JhY2tncm91bmQ6Uy5jb2xvckJnQ29udGFpbmVyLGJvcmRlcldpZHRoOmAkeygwLHIuYmYpKFMubGluZVdpZHRoKX0gMGAsYm9yZGVyU3R5bGU6YCR7Uy5saW5lVHlwZX0gbm9uZWAsYm9yZGVyQ29sb3I6YHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICR7TC5ib3JkZXJDb2xvcn0gdHJhbnNwYXJlbnRgLGJvcmRlclJhZGl1czowLCImOmhvdmVyIjp7Ym9yZGVyQ29sb3I6YHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICR7TC5ib3JkZXJDb2xvcn0gdHJhbnNwYXJlbnRgLGJhY2tncm91bmRDb2xvcjpTLmhvdmVyQmd9LCImOmZvY3VzLCAmOmZvY3VzLXdpdGhpbiI6e2JvcmRlckNvbG9yOmB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAke0wuYm9yZGVyQ29sb3J9IHRyYW5zcGFyZW50YCxvdXRsaW5lOjAsYmFja2dyb3VuZENvbG9yOlMuYWN0aXZlQmd9fSksTz0oUyxMKT0+KHtbYCYke1MuY29tcG9uZW50Q2xzfS1zdGF0dXMtJHtMLnN0YXR1c306bm90KCR7Uy5jb21wb25lbnRDbHN9LWRpc2FibGVkKWBdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx4KFMsTCkpLHtbYCR7Uy5jb21wb25lbnRDbHN9LXByZWZpeCwgJHtTLmNvbXBvbmVudENsc30tc3VmZml4YF06e2NvbG9yOkwuYWZmaXhDb2xvcn19KSxbYCYke1MuY29tcG9uZW50Q2xzfS1zdGF0dXMtJHtMLnN0YXR1c30ke1MuY29tcG9uZW50Q2xzfS1kaXNhYmxlZGBdOntib3JkZXJDb2xvcjpgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHtMLmJvcmRlckNvbG9yfSB0cmFuc3BhcmVudGB9fSksVD0oUyxMKT0+KHsiJi11bmRlcmxpbmVkIjpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30seChTLHtib3JkZXJDb2xvcjpTLmNvbG9yQm9yZGVyLGhvdmVyQm9yZGVyQ29sb3I6Uy5ob3ZlckJvcmRlckNvbG9yLGFjdGl2ZUJvcmRlckNvbG9yOlMuYWN0aXZlQm9yZGVyQ29sb3IsYWN0aXZlU2hhZG93OlMuYWN0aXZlU2hhZG93fSkpLHtbYCYke1MuY29tcG9uZW50Q2xzfS1kaXNhYmxlZCwgJltkaXNhYmxlZF1gXTp7Y29sb3I6Uy5jb2xvclRleHREaXNhYmxlZCxib3hTaGFkb3c6Im5vbmUiLGN1cnNvcjoibm90LWFsbG93ZWQiLCImOmhvdmVyIjp7Ym9yZGVyQ29sb3I6YHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICR7Uy5jb2xvckJvcmRlcn0gdHJhbnNwYXJlbnRgfX0sImlucHV0W2Rpc2FibGVkXSwgdGV4dGFyZWFbZGlzYWJsZWRdIjp7Y3Vyc29yOiJub3QtYWxsb3dlZCJ9fSksTyhTLHtzdGF0dXM6ImVycm9yIixib3JkZXJDb2xvcjpTLmNvbG9yRXJyb3IsaG92ZXJCb3JkZXJDb2xvcjpTLmNvbG9yRXJyb3JCb3JkZXJIb3ZlcixhY3RpdmVCb3JkZXJDb2xvcjpTLmNvbG9yRXJyb3IsYWN0aXZlU2hhZG93OlMuZXJyb3JBY3RpdmVTaGFkb3csYWZmaXhDb2xvcjpTLmNvbG9yRXJyb3J9KSksTyhTLHtzdGF0dXM6Indhcm5pbmciLGJvcmRlckNvbG9yOlMuY29sb3JXYXJuaW5nLGhvdmVyQm9yZGVyQ29sb3I6Uy5jb2xvcldhcm5pbmdCb3JkZXJIb3ZlcixhY3RpdmVCb3JkZXJDb2xvcjpTLmNvbG9yV2FybmluZyxhY3RpdmVTaGFkb3c6Uy53YXJuaW5nQWN0aXZlU2hhZG93LGFmZml4Q29sb3I6Uy5jb2xvcldhcm5pbmd9KSksTCl9KX0sNjEzNDU6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7RDpmdW5jdGlvbigpe3JldHVybiBUfSxaOmZ1bmN0aW9uKCl7cmV0dXJuIEl9fSk7dmFyIHI9ZSg2NzI5NCksbj1lKDEzNzI4KSx0PWUoNjE3MSksaT1lKDkwODE0KSxzPWUoOTM5NjcpLGE9ZS5uKHMpLHU9ZSg5ODQyMyksYz1lKDUzMTI0KSxoPWUoODI0MDEpLGQ9ZSgxMTU2OCksbT1lKDI0NzkzKSxDPWUoODM1NTkpO2NvbnN0IGc9Uj0+e2NvbnN0e2NvbXBvbmVudENsczp6LHNpZGVyQmc6Ryxtb3Rpb25EdXJhdGlvbk1pZDpZLG1vdGlvbkR1cmF0aW9uU2xvdzplZSxhbnRDbHM6Six0cmlnZ2VySGVpZ2h0Om1lLHRyaWdnZXJDb2xvcjp0ZSx0cmlnZ2VyQmc6bGUsaGVhZGVySGVpZ2h0OmNlLHplcm9UcmlnZ2VyV2lkdGg6Vyx6ZXJvVHJpZ2dlckhlaWdodDpqLGJvcmRlclJhZGl1c0xHOkQsbGlnaHRTaWRlckJnOlYsbGlnaHRUcmlnZ2VyQ29sb3I6WixsaWdodFRyaWdnZXJCZzpQLGJvZHlCZzpLfT1SO3JldHVybntbel06e3Bvc2l0aW9uOiJyZWxhdGl2ZSIsbWluV2lkdGg6MCxiYWNrZ3JvdW5kOkcsdHJhbnNpdGlvbjpgYWxsICR7WX0sIGJhY2tncm91bmQgMHNgLCImLWhhcy10cmlnZ2VyIjp7cGFkZGluZ0JvdHRvbTptZX0sIiYtcmlnaHQiOntvcmRlcjoxfSxbYCR7en0tY2hpbGRyZW5gXTp7aGVpZ2h0OiIxMDAlIixtYXJnaW5Ub3A6LS4xLHBhZGRpbmdUb3A6LjEsW2Ake0p9LW1lbnUke0p9LW1lbnUtaW5saW5lLWNvbGxhcHNlZGBdOnt3aWR0aDoiYXV0byJ9fSxbYCYtemVyby13aWR0aCAke3p9LWNoaWxkcmVuYF06e292ZXJmbG93OiJoaWRkZW4ifSxbYCR7en0tdHJpZ2dlcmBdOntwb3NpdGlvbjoiZml4ZWQiLGJvdHRvbTowLHpJbmRleDoxLGhlaWdodDptZSxjb2xvcjp0ZSxsaW5lSGVpZ2h0OigwLGQuYmYpKG1lKSx0ZXh0QWxpZ246ImNlbnRlciIsYmFja2dyb3VuZDpsZSxjdXJzb3I6InBvaW50ZXIiLHRyYW5zaXRpb246YGFsbCAke1l9YH0sW2Ake3p9LXplcm8td2lkdGgtdHJpZ2dlcmBdOntwb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDpjZSxpbnNldElubGluZUVuZDpSLmNhbGMoVykubXVsKC0xKS5lcXVhbCgpLHpJbmRleDoxLHdpZHRoOlcsaGVpZ2h0OmosY29sb3I6dGUsZm9udFNpemU6Ui5mb250U2l6ZVhMLGRpc3BsYXk6ImZsZXgiLGFsaWduSXRlbXM6ImNlbnRlciIsanVzdGlmeUNvbnRlbnQ6ImNlbnRlciIsYmFja2dyb3VuZDpHLGJvcmRlclJhZGl1czpgMCAkeygwLGQuYmYpKEQpfSAkeygwLGQuYmYpKEQpfSAwYCxjdXJzb3I6InBvaW50ZXIiLHRyYW5zaXRpb246YGJhY2tncm91bmQgJHtlZX0gZWFzZWAsIiY6OmFmdGVyIjp7cG9zaXRpb246ImFic29sdXRlIixpbnNldDowLGJhY2tncm91bmQ6InRyYW5zcGFyZW50Iix0cmFuc2l0aW9uOmBhbGwgJHtlZX1gLGNvbnRlbnQ6JyIiJ30sIiY6aG92ZXI6OmFmdGVyIjp7YmFja2dyb3VuZDoicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpIn0sIiYtcmlnaHQiOntpbnNldElubGluZVN0YXJ0OlIuY2FsYyhXKS5tdWwoLTEpLmVxdWFsKCksYm9yZGVyUmFkaXVzOmAkeygwLGQuYmYpKEQpfSAwIDAgJHsoMCxkLmJmKShEKX1gfX0sIiYtbGlnaHQiOntiYWNrZ3JvdW5kOlYsW2Ake3p9LXRyaWdnZXJgXTp7Y29sb3I6WixiYWNrZ3JvdW5kOlB9LFtgJHt6fS16ZXJvLXdpZHRoLXRyaWdnZXJgXTp7Y29sb3I6WixiYWNrZ3JvdW5kOlAsYm9yZGVyOmAxcHggc29saWQgJHtLfWAsYm9yZGVySW5saW5lU3RhcnQ6MH19fX19O3ZhciB3PSgwLEMuSSQpKFsiTGF5b3V0IiwiU2lkZXIiXSxSPT5bZyhSKV0sbS5laCx7ZGVwcmVjYXRlZFRva2VuczptLmpufSksRT1mdW5jdGlvbihSLHope3ZhciBHPXt9O2Zvcih2YXIgWSBpbiBSKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChSLFkpJiZ6LmluZGV4T2YoWSk8MCYmKEdbWV09UltZXSk7aWYoUiE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBlZT0wLFk9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhSKTtlZTxZLmxlbmd0aDtlZSsrKXouaW5kZXhPZihZW2VlXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKFIsWVtlZV0pJiYoR1tZW2VlXV09UltZW2VlXV0pO3JldHVybiBHfTtjb25zdCB4PXt4czoiNDc5Ljk4cHgiLHNtOiI1NzUuOThweCIsbWQ6Ijc2Ny45OHB4IixsZzoiOTkxLjk4cHgiLHhsOiIxMTk5Ljk4cHgiLHh4bDoiMTU5OS45OHB4In0sTz1SPT4hTnVtYmVyLmlzTmFOKE51bWJlci5wYXJzZUZsb2F0KFIpKSYmaXNGaW5pdGUoUiksVD1yLmNyZWF0ZUNvbnRleHQoe30pLFM9KCgpPT57bGV0IFI9MDtyZXR1cm4gZnVuY3Rpb24oKXtsZXQgej1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXZvaWQgMD9hcmd1bWVudHNbMF06IiI7cmV0dXJuIFIrPTEsYCR7en0ke1J9YH19KSgpO3ZhciBJPXIuZm9yd2FyZFJlZigoUix6KT0+e2NvbnN0e3ByZWZpeENsczpHLGNsYXNzTmFtZTpZLHRyaWdnZXI6ZWUsY2hpbGRyZW46SixkZWZhdWx0Q29sbGFwc2VkOm1lPSExLHRoZW1lOnRlPSJkYXJrIixzdHlsZTpsZT17fSxjb2xsYXBzaWJsZTpjZT0hMSxyZXZlcnNlQXJyb3c6Vz0hMSx3aWR0aDpqPTIwMCxjb2xsYXBzZWRXaWR0aDpEPTgwLHplcm9XaWR0aFRyaWdnZXJTdHlsZTpWLGJyZWFrcG9pbnQ6WixvbkNvbGxhcHNlOlAsb25CcmVha3BvaW50Okt9PVIsc2U9RShSLFsicHJlZml4Q2xzIiwiY2xhc3NOYW1lIiwidHJpZ2dlciIsImNoaWxkcmVuIiwiZGVmYXVsdENvbGxhcHNlZCIsInRoZW1lIiwic3R5bGUiLCJjb2xsYXBzaWJsZSIsInJldmVyc2VBcnJvdyIsIndpZHRoIiwiY29sbGFwc2VkV2lkdGgiLCJ6ZXJvV2lkdGhUcmlnZ2VyU3R5bGUiLCJicmVha3BvaW50Iiwib25Db2xsYXBzZSIsIm9uQnJlYWtwb2ludCJdKSx7c2lkZXJIb29rOm5lfT0oMCxyLnVzZUNvbnRleHQpKGguViksW29lLGZlXT0oMCxyLnVzZVN0YXRlKSgiY29sbGFwc2VkImluIFI/Ui5jb2xsYXBzZWQ6bWUpLFtFZSxSZV09KDAsci51c2VTdGF0ZSkoITEpOygwLHIudXNlRWZmZWN0KSgoKT0+eyJjb2xsYXBzZWQiaW4gUiYmZmUoUi5jb2xsYXBzZWQpfSxbUi5jb2xsYXBzZWRdKTtjb25zdCBCZT0oTGUsTWUpPT57ImNvbGxhcHNlZCJpbiBSfHxmZShMZSksUD09bnVsbHx8UChMZSxNZSl9LHtnZXRQcmVmaXhDbHM6WWUsZGlyZWN0aW9uOm90fT0oMCxyLnVzZUNvbnRleHQpKGMuRV8pLHFlPVllKCJsYXlvdXQtc2lkZXIiLEcpLFtfZSxGZSxTZV09dyhxZSkscT0oMCxyLnVzZVJlZikobnVsbCk7cS5jdXJyZW50PUxlPT57UmUoTGUubWF0Y2hlcyksSz09bnVsbHx8SyhMZS5tYXRjaGVzKSxvZSE9PUxlLm1hdGNoZXMmJkJlKExlLm1hdGNoZXMsInJlc3BvbnNpdmUiKX0sKDAsci51c2VFZmZlY3QpKCgpPT57ZnVuY3Rpb24gTGUoYmUpe3JldHVybiBxLmN1cnJlbnQoYmUpfWxldCBNZTtpZih0eXBlb2Ygd2luZG93IT0idW5kZWZpbmVkIil7Y29uc3R7bWF0Y2hNZWRpYTpiZX09d2luZG93O2lmKGJlJiZaJiZaIGluIHgpe01lPWJlKGBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICR7eFtaXX0pYCk7dHJ5e01lLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsTGUpfWNhdGNoKCRlKXtNZS5hZGRMaXN0ZW5lcihMZSl9TGUoTWUpfX1yZXR1cm4oKT0+e3RyeXtNZT09bnVsbHx8TWUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixMZSl9Y2F0Y2goYmUpe01lPT1udWxsfHxNZS5yZW1vdmVMaXN0ZW5lcihMZSl9fX0sW1pdKSwoMCxyLnVzZUVmZmVjdCkoKCk9Pntjb25zdCBMZT1TKCJhbnQtc2lkZXItIik7cmV0dXJuIG5lLmFkZFNpZGVyKExlKSwoKT0+bmUucmVtb3ZlU2lkZXIoTGUpfSxbXSk7Y29uc3Qgaz0oKT0+e0JlKCFvZSwiY2xpY2tUcmlnZ2VyIil9LE09KDAsdS5aKShzZSxbImNvbGxhcHNlZCJdKSxBPW9lP0Q6aixVPU8oQSk/YCR7QX1weGA6U3RyaW5nKEEpLE49cGFyc2VGbG9hdChTdHJpbmcoRHx8MCkpPT09MD9yLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtvbkNsaWNrOmssY2xhc3NOYW1lOmEoKShgJHtxZX0temVyby13aWR0aC10cmlnZ2VyYCxgJHtxZX0temVyby13aWR0aC10cmlnZ2VyLSR7Vz8icmlnaHQiOiJsZWZ0In1gKSxzdHlsZTpWfSxlZXx8ci5jcmVhdGVFbGVtZW50KG4uWixudWxsKSk6bnVsbCxRPW90PT09InJ0bCI9PSFXLF89e2V4cGFuZGVkOlE/ci5jcmVhdGVFbGVtZW50KGkuWixudWxsKTpyLmNyZWF0ZUVsZW1lbnQodC5aLG51bGwpLGNvbGxhcHNlZDpRP3IuY3JlYXRlRWxlbWVudCh0LlosbnVsbCk6ci5jcmVhdGVFbGVtZW50KGkuWixudWxsKX1bb2U/ImNvbGxhcHNlZCI6ImV4cGFuZGVkIl0scGU9ZWUhPT1udWxsP058fHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmAke3FlfS10cmlnZ2VyYCxvbkNsaWNrOmssc3R5bGU6e3dpZHRoOlV9fSxlZXx8Xyk6bnVsbCxyZT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbGUpLHtmbGV4OmAwIDAgJHtVfWAsbWF4V2lkdGg6VSxtaW5XaWR0aDpVLHdpZHRoOlV9KSxhZT1hKCkocWUsYCR7cWV9LSR7dGV9YCx7W2Ake3FlfS1jb2xsYXBzZWRgXTohIW9lLFtgJHtxZX0taGFzLXRyaWdnZXJgXTpjZSYmZWUhPT1udWxsJiYhTixbYCR7cWV9LWJlbG93YF06ISFFZSxbYCR7cWV9LXplcm8td2lkdGhgXTpwYXJzZUZsb2F0KFUpPT09MH0sWSxGZSxTZSksd2U9ci51c2VNZW1vKCgpPT4oe3NpZGVyQ29sbGFwc2VkOm9lfSksW29lXSk7cmV0dXJuIF9lKHIuY3JlYXRlRWxlbWVudChULlByb3ZpZGVyLHt2YWx1ZTp3ZX0sci5jcmVhdGVFbGVtZW50KCJhc2lkZSIsT2JqZWN0LmFzc2lnbih7Y2xhc3NOYW1lOmFlfSxNLHtzdHlsZTpyZSxyZWY6en0pLHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmAke3FlfS1jaGlsZHJlbmB9LEopLGNlfHxFZSYmTj9wZTpudWxsKSkpfSl9LDgyNDAxOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1Y6ZnVuY3Rpb24oKXtyZXR1cm4gbn19KTt2YXIgcj1lKDY3Mjk0KTtjb25zdCBuPXIuY3JlYXRlQ29udGV4dCh7c2lkZXJIb29rOnthZGRTaWRlcjooKT0+bnVsbCxyZW1vdmVTaWRlcjooKT0+bnVsbH19KX0sMjYwNTg6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiBSfX0pO3ZhciByPWUoNzQ5MDIpLG49ZSg2NzI5NCksdD1lKDkzOTY3KSxpPWUubih0KSxzPWUoOTg0MjMpLGE9ZSg1MzEyNCksdT1lKDgyNDAxKSxjPWUoNTAzNDQpLGg9ZSg2MTM0NSk7ZnVuY3Rpb24gZCh6LEcsWSl7cmV0dXJuIHR5cGVvZiBZPT0iYm9vbGVhbiI/WTp6Lmxlbmd0aD8hMDooMCxjLlopKEcpLnNvbWUoSj0+Si50eXBlPT09aC5aKX12YXIgbT1lKDI0NzkzKSxDPWZ1bmN0aW9uKHosRyl7dmFyIFk9e307Zm9yKHZhciBlZSBpbiB6KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh6LGVlKSYmRy5pbmRleE9mKGVlKTwwJiYoWVtlZV09eltlZV0pO2lmKHohPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgSj0wLGVlPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoeik7SjxlZS5sZW5ndGg7SisrKUcuaW5kZXhPZihlZVtKXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHosZWVbSl0pJiYoWVtlZVtKXV09eltlZVtKXV0pO3JldHVybiBZfTtmdW5jdGlvbiBnKHope2xldHtzdWZmaXhDbHM6Ryx0YWdOYW1lOlksZGlzcGxheU5hbWU6ZWV9PXo7cmV0dXJuIEo9Pm4uZm9yd2FyZFJlZigodGUsbGUpPT5uLmNyZWF0ZUVsZW1lbnQoSixPYmplY3QuYXNzaWduKHtyZWY6bGUsc3VmZml4Q2xzOkcsdGFnTmFtZTpZfSx0ZSkpKX1jb25zdCB3PW4uZm9yd2FyZFJlZigoeixHKT0+e2NvbnN0e3ByZWZpeENsczpZLHN1ZmZpeENsczplZSxjbGFzc05hbWU6Six0YWdOYW1lOm1lfT16LHRlPUMoeixbInByZWZpeENscyIsInN1ZmZpeENscyIsImNsYXNzTmFtZSIsInRhZ05hbWUiXSkse2dldFByZWZpeENsczpsZX09bi51c2VDb250ZXh0KGEuRV8pLGNlPWxlKCJsYXlvdXQiLFkpLFtXLGosRF09KDAsbS5aUCkoY2UpLFY9ZWU/YCR7Y2V9LSR7ZWV9YDpjZTtyZXR1cm4gVyhuLmNyZWF0ZUVsZW1lbnQobWUsT2JqZWN0LmFzc2lnbih7Y2xhc3NOYW1lOmkoKShZfHxWLEosaixEKSxyZWY6R30sdGUpKSl9KSxFPW4uZm9yd2FyZFJlZigoeixHKT0+e2NvbnN0e2RpcmVjdGlvbjpZfT1uLnVzZUNvbnRleHQoYS5FXyksW2VlLEpdPW4udXNlU3RhdGUoW10pLHtwcmVmaXhDbHM6bWUsY2xhc3NOYW1lOnRlLHJvb3RDbGFzc05hbWU6bGUsY2hpbGRyZW46Y2UsaGFzU2lkZXI6Vyx0YWdOYW1lOmosc3R5bGU6RH09eixWPUMoeixbInByZWZpeENscyIsImNsYXNzTmFtZSIsInJvb3RDbGFzc05hbWUiLCJjaGlsZHJlbiIsImhhc1NpZGVyIiwidGFnTmFtZSIsInN0eWxlIl0pLFo9KDAscy5aKShWLFsic3VmZml4Q2xzIl0pLHtnZXRQcmVmaXhDbHM6UCxjbGFzc05hbWU6SyxzdHlsZTpzZX09KDAsYS5kaikoImxheW91dCIpLG5lPVAoImxheW91dCIsbWUpLG9lPWQoZWUsY2UsVyksW2ZlLEVlLFJlXT0oMCxtLlpQKShuZSksQmU9aSgpKG5lLHtbYCR7bmV9LWhhcy1zaWRlcmBdOm9lLFtgJHtuZX0tcnRsYF06WT09PSJydGwifSxLLHRlLGxlLEVlLFJlKSxZZT1uLnVzZU1lbW8oKCk9Pih7c2lkZXJIb29rOnthZGRTaWRlcjpvdD0+e0oocWU9PltdLmNvbmNhdCgoMCxyLlopKHFlKSxbb3RdKSl9LHJlbW92ZVNpZGVyOm90PT57SihxZT0+cWUuZmlsdGVyKF9lPT5fZSE9PW90KSl9fX0pLFtdKTtyZXR1cm4gZmUobi5jcmVhdGVFbGVtZW50KHUuVi5Qcm92aWRlcix7dmFsdWU6WWV9LG4uY3JlYXRlRWxlbWVudChqLE9iamVjdC5hc3NpZ24oe3JlZjpHLGNsYXNzTmFtZTpCZSxzdHlsZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sc2UpLEQpfSxaKSxjZSkpKX0pLHg9Zyh7dGFnTmFtZToiZGl2IixkaXNwbGF5TmFtZToiTGF5b3V0In0pKEUpLE89Zyh7c3VmZml4Q2xzOiJoZWFkZXIiLHRhZ05hbWU6ImhlYWRlciIsZGlzcGxheU5hbWU6IkhlYWRlciJ9KSh3KSxUPWcoe3N1ZmZpeENsczoiZm9vdGVyIix0YWdOYW1lOiJmb290ZXIiLGRpc3BsYXlOYW1lOiJGb290ZXIifSkodyksUz1nKHtzdWZmaXhDbHM6ImNvbnRlbnQiLHRhZ05hbWU6Im1haW4iLGRpc3BsYXlOYW1lOiJDb250ZW50In0pKHcpO3ZhciBMPXg7Y29uc3QgST1MO0kuSGVhZGVyPU8sSS5Gb290ZXI9VCxJLkNvbnRlbnQ9UyxJLlNpZGVyPWguWixJLl9JbnRlcm5hbFNpZGVyQ29udGV4dD1oLkQ7dmFyIFI9SX0sMjQ3OTM6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7ZWg6ZnVuY3Rpb24oKXtyZXR1cm4gaX0sam46ZnVuY3Rpb24oKXtyZXR1cm4gc319KTt2YXIgcj1lKDExNTY4KSxuPWUoODM1NTkpO2NvbnN0IHQ9YT0+e2NvbnN0e2FudENsczp1LGNvbXBvbmVudENsczpjLGNvbG9yVGV4dDpoLGZvb3RlckJnOmQsaGVhZGVySGVpZ2h0Om0saGVhZGVyUGFkZGluZzpDLGhlYWRlckNvbG9yOmcsZm9vdGVyUGFkZGluZzp3LGZvbnRTaXplOkUsYm9keUJnOngsaGVhZGVyQmc6T309YTtyZXR1cm57W2NdOntkaXNwbGF5OiJmbGV4IixmbGV4OiJhdXRvIixmbGV4RGlyZWN0aW9uOiJjb2x1bW4iLG1pbkhlaWdodDowLGJhY2tncm91bmQ6eCwiJiwgKiI6e2JveFNpemluZzoiYm9yZGVyLWJveCJ9LFtgJiR7Y30taGFzLXNpZGVyYF06e2ZsZXhEaXJlY3Rpb246InJvdyIsW2A+ICR7Y30sID4gJHtjfS1jb250ZW50YF06e3dpZHRoOjB9fSxbYCR7Y30taGVhZGVyLCAmJHtjfS1mb290ZXJgXTp7ZmxleDoiMCAwIGF1dG8ifSwiJi1ydGwiOntkaXJlY3Rpb246InJ0bCJ9fSxbYCR7Y30taGVhZGVyYF06e2hlaWdodDptLHBhZGRpbmc6Qyxjb2xvcjpnLGxpbmVIZWlnaHQ6KDAsci5iZikobSksYmFja2dyb3VuZDpPLFtgJHt1fS1tZW51YF06e2xpbmVIZWlnaHQ6ImluaGVyaXQifX0sW2Ake2N9LWZvb3RlcmBdOntwYWRkaW5nOncsY29sb3I6aCxmb250U2l6ZTpFLGJhY2tncm91bmQ6ZH0sW2Ake2N9LWNvbnRlbnRgXTp7ZmxleDoiYXV0byIsY29sb3I6aCxtaW5IZWlnaHQ6MH19fSxpPWE9Pntjb25zdHtjb2xvckJnTGF5b3V0OnUsY29udHJvbEhlaWdodDpjLGNvbnRyb2xIZWlnaHRMRzpoLGNvbG9yVGV4dDpkLGNvbnRyb2xIZWlnaHRTTTptLG1hcmdpblhYUzpDLGNvbG9yVGV4dExpZ2h0U29saWQ6Zyxjb2xvckJnQ29udGFpbmVyOnd9PWEsRT1oKjEuMjU7cmV0dXJue2NvbG9yQmdIZWFkZXI6IiMwMDE1MjkiLGNvbG9yQmdCb2R5OnUsY29sb3JCZ1RyaWdnZXI6IiMwMDIxNDAiLGJvZHlCZzp1LGhlYWRlckJnOiIjMDAxNTI5IixoZWFkZXJIZWlnaHQ6YyoyLGhlYWRlclBhZGRpbmc6YDAgJHtFfXB4YCxoZWFkZXJDb2xvcjpkLGZvb3RlclBhZGRpbmc6YCR7bX1weCAke0V9cHhgLGZvb3RlckJnOnUsc2lkZXJCZzoiIzAwMTUyOSIsdHJpZ2dlckhlaWdodDpoK0MqMix0cmlnZ2VyQmc6IiMwMDIxNDAiLHRyaWdnZXJDb2xvcjpnLHplcm9UcmlnZ2VyV2lkdGg6aCx6ZXJvVHJpZ2dlckhlaWdodDpoLGxpZ2h0U2lkZXJCZzp3LGxpZ2h0VHJpZ2dlckJnOncsbGlnaHRUcmlnZ2VyQ29sb3I6ZH19LHM9W1siY29sb3JCZ0JvZHkiLCJib2R5QmciXSxbImNvbG9yQmdIZWFkZXIiLCJoZWFkZXJCZyJdLFsiY29sb3JCZ1RyaWdnZXIiLCJ0cmlnZ2VyQmciXV07cC5aUD0oMCxuLkkkKSgiTGF5b3V0IixhPT5bdChhKV0saSx7ZGVwcmVjYXRlZFRva2VuczpzfSl9LDI0ODc6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiBafX0pO3ZhciByPWUoNzQ5MDIpLG49ZSg2NzI5NCksdD1lKDkzOTY3KSxpPWUubih0KSxzPWUoMzg3ODApLGE9ZSg3NDQ0MyksdT1lKDUzMTI0KSxjPWUoODgyNTgpLGg9ZSg5ODY3NSksZD1lKDE3NjIxKSxtPWUoMjUzNzgpLEM9ZSg1ODgyNCksZz1lKDU3MzgxKTtjb25zdCB3PW4uY3JlYXRlQ29udGV4dCh7fSksRT13LkNvbnN1bWVyO3ZhciB4PWUoOTYxNTkpLE89ZSgyMTU4NCksVD1mdW5jdGlvbihQLEspe3ZhciBzZT17fTtmb3IodmFyIG5lIGluIFApT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKFAsbmUpJiZLLmluZGV4T2YobmUpPDAmJihzZVtuZV09UFtuZV0pO2lmKFAhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgb2U9MCxuZT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKFApO29lPG5lLmxlbmd0aDtvZSsrKUsuaW5kZXhPZihuZVtvZV0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChQLG5lW29lXSkmJihzZVtuZVtvZV1dPVBbbmVbb2VdXSk7cmV0dXJuIHNlfTtjb25zdCBTPVA9Pnt2YXJ7cHJlZml4Q2xzOkssY2xhc3NOYW1lOnNlLGF2YXRhcjpuZSx0aXRsZTpvZSxkZXNjcmlwdGlvbjpmZX09UCxFZT1UKFAsWyJwcmVmaXhDbHMiLCJjbGFzc05hbWUiLCJhdmF0YXIiLCJ0aXRsZSIsImRlc2NyaXB0aW9uIl0pO2NvbnN0e2dldFByZWZpeENsczpSZX09KDAsbi51c2VDb250ZXh0KSh1LkVfKSxCZT1SZSgibGlzdCIsSyksWWU9aSgpKGAke0JlfS1pdGVtLW1ldGFgLHNlKSxvdD1uLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpgJHtCZX0taXRlbS1tZXRhLWNvbnRlbnRgfSxvZSYmbi5jcmVhdGVFbGVtZW50KCJoNCIse2NsYXNzTmFtZTpgJHtCZX0taXRlbS1tZXRhLXRpdGxlYH0sb2UpLGZlJiZuLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpgJHtCZX0taXRlbS1tZXRhLWRlc2NyaXB0aW9uYH0sZmUpKTtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KCJkaXYiLE9iamVjdC5hc3NpZ24oe30sRWUse2NsYXNzTmFtZTpZZX0pLG5lJiZuLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpgJHtCZX0taXRlbS1tZXRhLWF2YXRhcmB9LG5lKSwob2V8fGZlKSYmb3QpfSxJPW4uZm9yd2FyZFJlZigoUCxLKT0+e2NvbnN0e3ByZWZpeENsczpzZSxjaGlsZHJlbjpuZSxhY3Rpb25zOm9lLGV4dHJhOmZlLHN0eWxlczpFZSxjbGFzc05hbWU6UmUsY2xhc3NOYW1lczpCZSxjb2xTdHlsZTpZZX09UCxvdD1UKFAsWyJwcmVmaXhDbHMiLCJjaGlsZHJlbiIsImFjdGlvbnMiLCJleHRyYSIsInN0eWxlcyIsImNsYXNzTmFtZSIsImNsYXNzTmFtZXMiLCJjb2xTdHlsZSJdKSx7Z3JpZDpxZSxpdGVtTGF5b3V0Ol9lfT0oMCxuLnVzZUNvbnRleHQpKHcpLHtnZXRQcmVmaXhDbHM6RmUsbGlzdDpTZX09KDAsbi51c2VDb250ZXh0KSh1LkVfKSxxPSQ9Pnt2YXIgXyxwZTtyZXR1cm4gaSgpKChwZT0oXz1TZT09bnVsbD92b2lkIDA6U2UuaXRlbSk9PT1udWxsfHxfPT09dm9pZCAwP3ZvaWQgMDpfLmNsYXNzTmFtZXMpPT09bnVsbHx8cGU9PT12b2lkIDA/dm9pZCAwOnBlWyRdLEJlPT1udWxsP3ZvaWQgMDpCZVskXSl9LGs9JD0+e3ZhciBfLHBlO3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sKHBlPShfPVNlPT1udWxsP3ZvaWQgMDpTZS5pdGVtKT09PW51bGx8fF89PT12b2lkIDA/dm9pZCAwOl8uc3R5bGVzKT09PW51bGx8fHBlPT09dm9pZCAwP3ZvaWQgMDpwZVskXSksRWU9PW51bGw/dm9pZCAwOkVlWyRdKX0sTT0oKT0+e2xldCAkPSExO3JldHVybiBuLkNoaWxkcmVuLmZvckVhY2gobmUsXz0+e3R5cGVvZiBfPT0ic3RyaW5nIiYmKCQ9ITApfSksJCYmbi5DaGlsZHJlbi5jb3VudChuZSk+MX0sQT0oKT0+X2U9PT0idmVydGljYWwiPyEhZmU6IU0oKSxVPUZlKCJsaXN0IixzZSksTj1vZSYmb2UubGVuZ3RoPjAmJm4uY3JlYXRlRWxlbWVudCgidWwiLHtjbGFzc05hbWU6aSgpKGAke1V9LWl0ZW0tYWN0aW9uYCxxKCJhY3Rpb25zIikpLGtleToiYWN0aW9ucyIsc3R5bGU6aygiYWN0aW9ucyIpfSxvZS5tYXAoKCQsXyk9Pm4uY3JlYXRlRWxlbWVudCgibGkiLHtrZXk6YCR7VX0taXRlbS1hY3Rpb24tJHtffWB9LCQsXyE9PW9lLmxlbmd0aC0xJiZuLmNyZWF0ZUVsZW1lbnQoImVtIix7Y2xhc3NOYW1lOmAke1V9LWl0ZW0tYWN0aW9uLXNwbGl0YH0pKSkpLFE9cWU/ImRpdiI6ImxpIix1ZT1uLmNyZWF0ZUVsZW1lbnQoUSxPYmplY3QuYXNzaWduKHt9LG90LHFlP3t9OntyZWY6S30se2NsYXNzTmFtZTppKCkoYCR7VX0taXRlbWAse1tgJHtVfS1pdGVtLW5vLWZsZXhgXTohQSgpfSxSZSl9KSxfZT09PSJ2ZXJ0aWNhbCImJmZlP1tuLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpgJHtVfS1pdGVtLW1haW5gLGtleToiY29udGVudCJ9LG5lLE4pLG4uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmkoKShgJHtVfS1pdGVtLWV4dHJhYCxxKCJleHRyYSIpKSxrZXk6ImV4dHJhIixzdHlsZTprKCJleHRyYSIpfSxmZSldOltuZSxOLCgwLHguVG0pKGZlLHtrZXk6ImV4dHJhIn0pXSk7cmV0dXJuIHFlP24uY3JlYXRlRWxlbWVudChPLlose3JlZjpLLGZsZXg6MSxzdHlsZTpZZX0sdWUpOnVlfSk7SS5NZXRhPVM7dmFyIFI9SSx6PWUoMTE1NjgpLEc9ZSgxNDc0NyksWT1lKDgzNTU5KSxlZT1lKDgzMjYyKTtjb25zdCBKPVA9Pntjb25zdHtsaXN0Qm9yZGVyZWRDbHM6Syxjb21wb25lbnRDbHM6c2UscGFkZGluZ0xHOm5lLG1hcmdpbjpvZSxpdGVtUGFkZGluZ1NNOmZlLGl0ZW1QYWRkaW5nTEc6RWUsbWFyZ2luTEc6UmUsYm9yZGVyUmFkaXVzTEc6QmV9PVA7cmV0dXJue1tLXTp7Ym9yZGVyOmAkeygwLHouYmYpKFAubGluZVdpZHRoKX0gJHtQLmxpbmVUeXBlfSAke1AuY29sb3JCb3JkZXJ9YCxib3JkZXJSYWRpdXM6QmUsW2Ake3NlfS1oZWFkZXIsJHtzZX0tZm9vdGVyLCR7c2V9LWl0ZW1gXTp7cGFkZGluZ0lubGluZTpuZX0sW2Ake3NlfS1wYWdpbmF0aW9uYF06e21hcmdpbjpgJHsoMCx6LmJmKShvZSl9ICR7KDAsei5iZikoUmUpfWB9fSxbYCR7S30ke3NlfS1zbWBdOntbYCR7c2V9LWl0ZW0sJHtzZX0taGVhZGVyLCR7c2V9LWZvb3RlcmBdOntwYWRkaW5nOmZlfX0sW2Ake0t9JHtzZX0tbGdgXTp7W2Ake3NlfS1pdGVtLCR7c2V9LWhlYWRlciwke3NlfS1mb290ZXJgXTp7cGFkZGluZzpFZX19fX0sbWU9UD0+e2NvbnN0e2NvbXBvbmVudENsczpLLHNjcmVlblNNOnNlLHNjcmVlbk1EOm5lLG1hcmdpbkxHOm9lLG1hcmdpblNNOmZlLG1hcmdpbjpFZX09UDtyZXR1cm57W2BAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiR7bmV9cHgpYF06e1tLXTp7W2Ake0t9LWl0ZW1gXTp7W2Ake0t9LWl0ZW0tYWN0aW9uYF06e21hcmdpbklubGluZVN0YXJ0Om9lfX19LFtgJHtLfS12ZXJ0aWNhbGBdOntbYCR7S30taXRlbWBdOntbYCR7S30taXRlbS1leHRyYWBdOnttYXJnaW5JbmxpbmVTdGFydDpvZX19fX0sW2BAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAke3NlfXB4KWBdOntbS106e1tgJHtLfS1pdGVtYF06e2ZsZXhXcmFwOiJ3cmFwIixbYCR7S30tYWN0aW9uYF06e21hcmdpbklubGluZVN0YXJ0OmZlfX19LFtgJHtLfS12ZXJ0aWNhbGBdOntbYCR7S30taXRlbWBdOntmbGV4V3JhcDoid3JhcC1yZXZlcnNlIixbYCR7S30taXRlbS1tYWluYF06e21pbldpZHRoOlAuY29udGVudFdpZHRofSxbYCR7S30taXRlbS1leHRyYWBdOnttYXJnaW46YGF1dG8gYXV0byAkeygwLHouYmYpKEVlKX1gfX19fX19LHRlPVA9Pntjb25zdHtjb21wb25lbnRDbHM6SyxhbnRDbHM6c2UsY29udHJvbEhlaWdodDpuZSxtaW5IZWlnaHQ6b2UscGFkZGluZ1NNOmZlLG1hcmdpbkxHOkVlLHBhZGRpbmc6UmUsaXRlbVBhZGRpbmc6QmUsY29sb3JQcmltYXJ5OlllLGl0ZW1QYWRkaW5nU006b3QsaXRlbVBhZGRpbmdMRzpxZSxwYWRkaW5nWFM6X2UsbWFyZ2luOkZlLGNvbG9yVGV4dDpTZSxjb2xvclRleHREZXNjcmlwdGlvbjpxLG1vdGlvbkR1cmF0aW9uU2xvdzprLGxpbmVXaWR0aDpNLGhlYWRlckJnOkEsZm9vdGVyQmc6VSxlbXB0eVRleHRQYWRkaW5nOk4sbWV0YU1hcmdpbkJvdHRvbTpRLGF2YXRhck1hcmdpblJpZ2h0OnVlLHRpdGxlTWFyZ2luQm90dG9tOiQsZGVzY3JpcHRpb25Gb250U2l6ZTpffT1QO3JldHVybntbS106T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCgwLEcuV2YpKFApKSx7cG9zaXRpb246InJlbGF0aXZlIiwiKiI6e291dGxpbmU6Im5vbmUifSxbYCR7S30taGVhZGVyYF06e2JhY2tncm91bmQ6QX0sW2Ake0t9LWZvb3RlcmBdOntiYWNrZ3JvdW5kOlV9LFtgJHtLfS1oZWFkZXIsICR7S30tZm9vdGVyYF06e3BhZGRpbmdCbG9jazpmZX0sW2Ake0t9LXBhZ2luYXRpb25gXTp7bWFyZ2luQmxvY2tTdGFydDpFZSxbYCR7c2V9LXBhZ2luYXRpb24tb3B0aW9uc2BdOnt0ZXh0QWxpZ246InN0YXJ0In19LFtgJHtLfS1zcGluYF06e21pbkhlaWdodDpvZSx0ZXh0QWxpZ246ImNlbnRlciJ9LFtgJHtLfS1pdGVtc2BdOnttYXJnaW46MCxwYWRkaW5nOjAsbGlzdFN0eWxlOiJub25lIn0sW2Ake0t9LWl0ZW1gXTp7ZGlzcGxheToiZmxleCIsYWxpZ25JdGVtczoiY2VudGVyIixqdXN0aWZ5Q29udGVudDoic3BhY2UtYmV0d2VlbiIscGFkZGluZzpCZSxjb2xvcjpTZSxbYCR7S30taXRlbS1tZXRhYF06e2Rpc3BsYXk6ImZsZXgiLGZsZXg6MSxhbGlnbkl0ZW1zOiJmbGV4LXN0YXJ0IixtYXhXaWR0aDoiMTAwJSIsW2Ake0t9LWl0ZW0tbWV0YS1hdmF0YXJgXTp7bWFyZ2luSW5saW5lRW5kOnVlfSxbYCR7S30taXRlbS1tZXRhLWNvbnRlbnRgXTp7ZmxleDoiMSAwIix3aWR0aDowLGNvbG9yOlNlfSxbYCR7S30taXRlbS1tZXRhLXRpdGxlYF06e21hcmdpbjpgMCAwICR7KDAsei5iZikoUC5tYXJnaW5YWFMpfSAwYCxjb2xvcjpTZSxmb250U2l6ZTpQLmZvbnRTaXplLGxpbmVIZWlnaHQ6UC5saW5lSGVpZ2h0LCI+IGEiOntjb2xvcjpTZSx0cmFuc2l0aW9uOmBhbGwgJHtrfWAsIiY6aG92ZXIiOntjb2xvcjpZZX19fSxbYCR7S30taXRlbS1tZXRhLWRlc2NyaXB0aW9uYF06e2NvbG9yOnEsZm9udFNpemU6XyxsaW5lSGVpZ2h0OlAubGluZUhlaWdodH19LFtgJHtLfS1pdGVtLWFjdGlvbmBdOntmbGV4OiIwIDAgYXV0byIsbWFyZ2luSW5saW5lU3RhcnQ6UC5tYXJnaW5YWEwscGFkZGluZzowLGZvbnRTaXplOjAsbGlzdFN0eWxlOiJub25lIiwiJiA+IGxpIjp7cG9zaXRpb246InJlbGF0aXZlIixkaXNwbGF5OiJpbmxpbmUtYmxvY2siLHBhZGRpbmc6YDAgJHsoMCx6LmJmKShfZSl9YCxjb2xvcjpxLGZvbnRTaXplOlAuZm9udFNpemUsbGluZUhlaWdodDpQLmxpbmVIZWlnaHQsdGV4dEFsaWduOiJjZW50ZXIiLCImOmZpcnN0LWNoaWxkIjp7cGFkZGluZ0lubGluZVN0YXJ0OjB9fSxbYCR7S30taXRlbS1hY3Rpb24tc3BsaXRgXTp7cG9zaXRpb246ImFic29sdXRlIixpbnNldEJsb2NrU3RhcnQ6IjUwJSIsaW5zZXRJbmxpbmVFbmQ6MCx3aWR0aDpNLGhlaWdodDpQLmNhbGMoUC5mb250SGVpZ2h0KS5zdWIoUC5jYWxjKFAubWFyZ2luWFhTKS5tdWwoMikpLmVxdWFsKCksdHJhbnNmb3JtOiJ0cmFuc2xhdGVZKC01MCUpIixiYWNrZ3JvdW5kQ29sb3I6UC5jb2xvclNwbGl0fX19LFtgJHtLfS1lbXB0eWBdOntwYWRkaW5nOmAkeygwLHouYmYpKFJlKX0gMGAsY29sb3I6cSxmb250U2l6ZTpQLmZvbnRTaXplU00sdGV4dEFsaWduOiJjZW50ZXIifSxbYCR7S30tZW1wdHktdGV4dGBdOntwYWRkaW5nOk4sY29sb3I6UC5jb2xvclRleHREaXNhYmxlZCxmb250U2l6ZTpQLmZvbnRTaXplLHRleHRBbGlnbjoiY2VudGVyIn0sW2Ake0t9LWl0ZW0tbm8tZmxleGBdOntkaXNwbGF5OiJibG9jayJ9fSksW2Ake0t9LWdyaWQgJHtzZX0tY29sID4gJHtLfS1pdGVtYF06e2Rpc3BsYXk6ImJsb2NrIixtYXhXaWR0aDoiMTAwJSIsbWFyZ2luQmxvY2tFbmQ6RmUscGFkZGluZ0Jsb2NrOjAsYm9yZGVyQmxvY2tFbmQ6Im5vbmUifSxbYCR7S30tdmVydGljYWwgJHtLfS1pdGVtYF06e2FsaWduSXRlbXM6ImluaXRpYWwiLFtgJHtLfS1pdGVtLW1haW5gXTp7ZGlzcGxheToiYmxvY2siLGZsZXg6MX0sW2Ake0t9LWl0ZW0tZXh0cmFgXTp7bWFyZ2luSW5saW5lU3RhcnQ6RWV9LFtgJHtLfS1pdGVtLW1ldGFgXTp7bWFyZ2luQmxvY2tFbmQ6USxbYCR7S30taXRlbS1tZXRhLXRpdGxlYF06e21hcmdpbkJsb2NrU3RhcnQ6MCxtYXJnaW5CbG9ja0VuZDokLGNvbG9yOlNlLGZvbnRTaXplOlAuZm9udFNpemVMRyxsaW5lSGVpZ2h0OlAubGluZUhlaWdodExHfX0sW2Ake0t9LWl0ZW0tYWN0aW9uYF06e21hcmdpbkJsb2NrU3RhcnQ6UmUsbWFyZ2luSW5saW5lU3RhcnQ6ImF1dG8iLCI+IGxpIjp7cGFkZGluZzpgMCAkeygwLHouYmYpKFJlKX1gLCImOmZpcnN0LWNoaWxkIjp7cGFkZGluZ0lubGluZVN0YXJ0OjB9fX19LFtgJHtLfS1zcGxpdCAke0t9LWl0ZW1gXTp7Ym9yZGVyQmxvY2tFbmQ6YCR7KDAsei5iZikoUC5saW5lV2lkdGgpfSAke1AubGluZVR5cGV9ICR7UC5jb2xvclNwbGl0fWAsIiY6bGFzdC1jaGlsZCI6e2JvcmRlckJsb2NrRW5kOiJub25lIn19LFtgJHtLfS1zcGxpdCAke0t9LWhlYWRlcmBdOntib3JkZXJCbG9ja0VuZDpgJHsoMCx6LmJmKShQLmxpbmVXaWR0aCl9ICR7UC5saW5lVHlwZX0gJHtQLmNvbG9yU3BsaXR9YH0sW2Ake0t9LXNwbGl0JHtLfS1lbXB0eSAke0t9LWZvb3RlcmBdOntib3JkZXJUb3A6YCR7KDAsei5iZikoUC5saW5lV2lkdGgpfSAke1AubGluZVR5cGV9ICR7UC5jb2xvclNwbGl0fWB9LFtgJHtLfS1sb2FkaW5nICR7S30tc3Bpbi1uZXN0ZWQtbG9hZGluZ2BdOnttaW5IZWlnaHQ6bmV9LFtgJHtLfS1zcGxpdCR7S30tc29tZXRoaW5nLWFmdGVyLWxhc3QtaXRlbSAke3NlfS1zcGluLWNvbnRhaW5lciA+ICR7S30taXRlbXMgPiAke0t9LWl0ZW06bGFzdC1jaGlsZGBdOntib3JkZXJCbG9ja0VuZDpgJHsoMCx6LmJmKShQLmxpbmVXaWR0aCl9ICR7UC5saW5lVHlwZX0gJHtQLmNvbG9yU3BsaXR9YH0sW2Ake0t9LWxnICR7S30taXRlbWBdOntwYWRkaW5nOnFlfSxbYCR7S30tc20gJHtLfS1pdGVtYF06e3BhZGRpbmc6b3R9LFtgJHtLfTpub3QoJHtLfS12ZXJ0aWNhbClgXTp7W2Ake0t9LWl0ZW0tbm8tZmxleGBdOntbYCR7S30taXRlbS1hY3Rpb25gXTp7ZmxvYXQ6InJpZ2h0In19fX19LGxlPVA9Pih7Y29udGVudFdpZHRoOjIyMCxpdGVtUGFkZGluZzpgJHsoMCx6LmJmKShQLnBhZGRpbmdDb250ZW50VmVydGljYWwpfSAwYCxpdGVtUGFkZGluZ1NNOmAkeygwLHouYmYpKFAucGFkZGluZ0NvbnRlbnRWZXJ0aWNhbFNNKX0gJHsoMCx6LmJmKShQLnBhZGRpbmdDb250ZW50SG9yaXpvbnRhbCl9YCxpdGVtUGFkZGluZ0xHOmAkeygwLHouYmYpKFAucGFkZGluZ0NvbnRlbnRWZXJ0aWNhbExHKX0gJHsoMCx6LmJmKShQLnBhZGRpbmdDb250ZW50SG9yaXpvbnRhbExHKX1gLGhlYWRlckJnOiJ0cmFuc3BhcmVudCIsZm9vdGVyQmc6InRyYW5zcGFyZW50IixlbXB0eVRleHRQYWRkaW5nOlAucGFkZGluZyxtZXRhTWFyZ2luQm90dG9tOlAucGFkZGluZyxhdmF0YXJNYXJnaW5SaWdodDpQLnBhZGRpbmcsdGl0bGVNYXJnaW5Cb3R0b206UC5wYWRkaW5nU00sZGVzY3JpcHRpb25Gb250U2l6ZTpQLmZvbnRTaXplfSk7dmFyIGNlPSgwLFkuSSQpKCJMaXN0IixQPT57Y29uc3QgSz0oMCxlZS5JWCkoUCx7bGlzdEJvcmRlcmVkQ2xzOmAke1AuY29tcG9uZW50Q2xzfS1ib3JkZXJlZGAsbWluSGVpZ2h0OlAuY29udHJvbEhlaWdodExHfSk7cmV0dXJuW3RlKEspLEooSyksbWUoSyldfSxsZSksVz1mdW5jdGlvbihQLEspe3ZhciBzZT17fTtmb3IodmFyIG5lIGluIFApT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKFAsbmUpJiZLLmluZGV4T2YobmUpPDAmJihzZVtuZV09UFtuZV0pO2lmKFAhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgb2U9MCxuZT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKFApO29lPG5lLmxlbmd0aDtvZSsrKUsuaW5kZXhPZihuZVtvZV0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChQLG5lW29lXSkmJihzZVtuZVtvZV1dPVBbbmVbb2VdXSk7cmV0dXJuIHNlfTtmdW5jdGlvbiBqKFAsSyl7dmFye3BhZ2luYXRpb246c2U9ITEscHJlZml4Q2xzOm5lLGJvcmRlcmVkOm9lPSExLHNwbGl0OmZlPSEwLGNsYXNzTmFtZTpFZSxyb290Q2xhc3NOYW1lOlJlLHN0eWxlOkJlLGNoaWxkcmVuOlllLGl0ZW1MYXlvdXQ6b3QsbG9hZE1vcmU6cWUsZ3JpZDpfZSxkYXRhU291cmNlOkZlPVtdLHNpemU6U2UsaGVhZGVyOnEsZm9vdGVyOmssbG9hZGluZzpNPSExLHJvd0tleTpBLHJlbmRlckl0ZW06VSxsb2NhbGU6Tn09UCxRPVcoUCxbInBhZ2luYXRpb24iLCJwcmVmaXhDbHMiLCJib3JkZXJlZCIsInNwbGl0IiwiY2xhc3NOYW1lIiwicm9vdENsYXNzTmFtZSIsInN0eWxlIiwiY2hpbGRyZW4iLCJpdGVtTGF5b3V0IiwibG9hZE1vcmUiLCJncmlkIiwiZGF0YVNvdXJjZSIsInNpemUiLCJoZWFkZXIiLCJmb290ZXIiLCJsb2FkaW5nIiwicm93S2V5IiwicmVuZGVySXRlbSIsImxvY2FsZSJdKTtjb25zdCB1ZT1zZSYmdHlwZW9mIHNlPT0ib2JqZWN0Ij9zZTp7fSxbJCxfXT1uLnVzZVN0YXRlKHVlLmRlZmF1bHRDdXJyZW50fHwxKSxbcGUscmVdPW4udXNlU3RhdGUodWUuZGVmYXVsdFBhZ2VTaXplfHwxMCkse2dldFByZWZpeENsczphZSxkaXJlY3Rpb246d2UsY2xhc3NOYW1lOkxlLHN0eWxlOk1lfT0oMCx1LmRqKSgibGlzdCIpLHtyZW5kZXJFbXB0eTpiZX09bi51c2VDb250ZXh0KHUuRV8pLCRlPXtjdXJyZW50OjEsdG90YWw6MH0sa2U9bm49PihvbixOdCk9Pnt2YXIgWm47XyhvbikscmUoTnQpLHNlJiYoKFpuPXNlPT1udWxsP3ZvaWQgMDpzZVtubl0pPT09bnVsbHx8Wm49PT12b2lkIDB8fFpuLmNhbGwoc2Usb24sTnQpKX0sQWU9a2UoIm9uQ2hhbmdlIiksdHQ9a2UoIm9uU2hvd1NpemVDaGFuZ2UiKSxtdD0obm4sb24pPT57aWYoIVUpcmV0dXJuIG51bGw7bGV0IE50O3JldHVybiB0eXBlb2YgQT09ImZ1bmN0aW9uIj9OdD1BKG5uKTpBP050PW5uW0FdOk50PW5uLmtleSxOdHx8KE50PWBsaXN0LWl0ZW0tJHtvbn1gKSxuLmNyZWF0ZUVsZW1lbnQobi5GcmFnbWVudCx7a2V5Ok50fSxVKG5uLG9uKSl9LHV0PSgpPT4hIShxZXx8c2V8fGspLERlPWFlKCJsaXN0IixuZSksW05lLFhlLEplXT1jZShEZSk7bGV0IGd0PU07dHlwZW9mIGd0PT0iYm9vbGVhbiImJihndD17c3Bpbm5pbmc6Z3R9KTtjb25zdCBkZT0hIShndCE9bnVsbCYmZ3Quc3Bpbm5pbmcpLFdlPSgwLGguWikoU2UpO2xldCBTdD0iIjtzd2l0Y2goV2Upe2Nhc2UibGFyZ2UiOlN0PSJsZyI7YnJlYWs7Y2FzZSJzbWFsbCI6U3Q9InNtIjticmVhaztkZWZhdWx0OmJyZWFrfWNvbnN0IGN0PWkoKShEZSx7W2Ake0RlfS12ZXJ0aWNhbGBdOm90PT09InZlcnRpY2FsIixbYCR7RGV9LSR7U3R9YF06U3QsW2Ake0RlfS1zcGxpdGBdOmZlLFtgJHtEZX0tYm9yZGVyZWRgXTpvZSxbYCR7RGV9LWxvYWRpbmdgXTpkZSxbYCR7RGV9LWdyaWRgXTohIV9lLFtgJHtEZX0tc29tZXRoaW5nLWFmdGVyLWxhc3QtaXRlbWBdOnV0KCksW2Ake0RlfS1ydGxgXTp3ZT09PSJydGwifSxMZSxFZSxSZSxYZSxKZSksT2U9KDAscy5aKSgkZSx7dG90YWw6RmUubGVuZ3RoLGN1cnJlbnQ6JCxwYWdlU2l6ZTpwZX0sc2V8fHt9KSxHZT1NYXRoLmNlaWwoT2UudG90YWwvT2UucGFnZVNpemUpO09lLmN1cnJlbnQ+R2UmJihPZS5jdXJyZW50PUdlKTtjb25zdCBodD1zZSYmbi5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6aSgpKGAke0RlfS1wYWdpbmF0aW9uYCl9LG4uY3JlYXRlRWxlbWVudChDLlosT2JqZWN0LmFzc2lnbih7YWxpZ246ImVuZCJ9LE9lLHtvbkNoYW5nZTpBZSxvblNob3dTaXplQ2hhbmdlOnR0fSkpKTtsZXQgemU9KDAsci5aKShGZSk7c2UmJkZlLmxlbmd0aD4oT2UuY3VycmVudC0xKSpPZS5wYWdlU2l6ZSYmKHplPSgwLHIuWikoRmUpLnNwbGljZSgoT2UuY3VycmVudC0xKSpPZS5wYWdlU2l6ZSxPZS5wYWdlU2l6ZSkpO2NvbnN0IFFlPU9iamVjdC5rZXlzKF9lfHx7fSkuc29tZShubj0+WyJ4cyIsInNtIiwibWQiLCJsZyIsInhsIiwieHhsIl0uaW5jbHVkZXMobm4pKSxwdD0oMCxtLlopKFFlKSxidD1uLnVzZU1lbW8oKCk9Pntmb3IobGV0IG5uPTA7bm48YS5jNC5sZW5ndGg7bm4rPTEpe2NvbnN0IG9uPWEuYzRbbm5dO2lmKHB0W29uXSlyZXR1cm4gb259fSxbcHRdKSxJdD1uLnVzZU1lbW8oKCk9PntpZighX2UpcmV0dXJuO2NvbnN0IG5uPWJ0JiZfZVtidF0/X2VbYnRdOl9lLmNvbHVtbjtpZihubilyZXR1cm57d2lkdGg6YCR7MTAwL25ufSVgLG1heFdpZHRoOmAkezEwMC9ubn0lYH19LFtKU09OLnN0cmluZ2lmeShfZSksYnRdKTtsZXQgVHQ9ZGUmJm4uY3JlYXRlRWxlbWVudCgiZGl2Iix7c3R5bGU6e21pbkhlaWdodDo1M319KTtpZih6ZS5sZW5ndGg+MCl7Y29uc3Qgbm49emUubWFwKChvbixOdCk9Pm10KG9uLE50KSk7VHQ9X2U/bi5jcmVhdGVFbGVtZW50KGQuWix7Z3V0dGVyOl9lLmd1dHRlcn0sbi5DaGlsZHJlbi5tYXAobm4sb249Pm4uY3JlYXRlRWxlbWVudCgiZGl2Iix7a2V5Om9uPT1udWxsP3ZvaWQgMDpvbi5rZXksc3R5bGU6SXR9LG9uKSkpOm4uY3JlYXRlRWxlbWVudCgidWwiLHtjbGFzc05hbWU6YCR7RGV9LWl0ZW1zYH0sbm4pfWVsc2UhWWUmJiFkZSYmKFR0PW4uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmAke0RlfS1lbXB0eS10ZXh0YH0sKE49PW51bGw/dm9pZCAwOk4uZW1wdHlUZXh0KXx8KGJlPT1udWxsP3ZvaWQgMDpiZSgiTGlzdCIpKXx8bi5jcmVhdGVFbGVtZW50KGMuWix7Y29tcG9uZW50TmFtZToiTGlzdCJ9KSkpO2NvbnN0IFh0PU9lLnBvc2l0aW9ufHwiYm90dG9tIixmbj1uLnVzZU1lbW8oKCk9Pih7Z3JpZDpfZSxpdGVtTGF5b3V0Om90fSksW0pTT04uc3RyaW5naWZ5KF9lKSxvdF0pO3JldHVybiBOZShuLmNyZWF0ZUVsZW1lbnQody5Qcm92aWRlcix7dmFsdWU6Zm59LG4uY3JlYXRlRWxlbWVudCgiZGl2IixPYmplY3QuYXNzaWduKHtyZWY6SyxzdHlsZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sTWUpLEJlKSxjbGFzc05hbWU6Y3R9LFEpLChYdD09PSJ0b3AifHxYdD09PSJib3RoIikmJmh0LHEmJm4uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmAke0RlfS1oZWFkZXJgfSxxKSxuLmNyZWF0ZUVsZW1lbnQoZy5aLE9iamVjdC5hc3NpZ24oe30sZ3QpLFR0LFllKSxrJiZuLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpgJHtEZX0tZm9vdGVyYH0saykscWV8fChYdD09PSJib3R0b20ifHxYdD09PSJib3RoIikmJmh0KSkpfWNvbnN0IFY9bi5mb3J3YXJkUmVmKGopO1YuSXRlbT1SO3ZhciBaPVZ9LDc2NzQ1OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg2NzI5NCk7Y29uc3Qgbj0oMCxyLmNyZWF0ZUNvbnRleHQpKHZvaWQgMCk7cC5aPW59LDI0NDU3OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1o6ZnVuY3Rpb24oKXtyZXR1cm4gdX19KTt2YXIgcj1lKDYyOTA2KSxuPWUoODcyMDYpLHQ9bi5aLGk9ZSg0MjExNSk7Y29uc3Qgcz0iJHtsYWJlbH0gaXMgbm90IGEgdmFsaWQgJHt0eXBlfSI7dmFyIHU9e2xvY2FsZToiZW4iLFBhZ2luYXRpb246ci5aLERhdGVQaWNrZXI6bi5aLFRpbWVQaWNrZXI6aS5aLENhbGVuZGFyOnQsZ2xvYmFsOntwbGFjZWhvbGRlcjoiUGxlYXNlIHNlbGVjdCJ9LFRhYmxlOntmaWx0ZXJUaXRsZToiRmlsdGVyIG1lbnUiLGZpbHRlckNvbmZpcm06Ik9LIixmaWx0ZXJSZXNldDoiUmVzZXQiLGZpbHRlckVtcHR5VGV4dDoiTm8gZmlsdGVycyIsZmlsdGVyQ2hlY2tBbGw6IlNlbGVjdCBhbGwgaXRlbXMiLGZpbHRlclNlYXJjaFBsYWNlaG9sZGVyOiJTZWFyY2ggaW4gZmlsdGVycyIsZW1wdHlUZXh0OiJObyBkYXRhIixzZWxlY3RBbGw6IlNlbGVjdCBjdXJyZW50IHBhZ2UiLHNlbGVjdEludmVydDoiSW52ZXJ0IGN1cnJlbnQgcGFnZSIsc2VsZWN0Tm9uZToiQ2xlYXIgYWxsIGRhdGEiLHNlbGVjdGlvbkFsbDoiU2VsZWN0IGFsbCBkYXRhIixzb3J0VGl0bGU6IlNvcnQiLGV4cGFuZDoiRXhwYW5kIHJvdyIsY29sbGFwc2U6IkNvbGxhcHNlIHJvdyIsdHJpZ2dlckRlc2M6IkNsaWNrIHRvIHNvcnQgZGVzY2VuZGluZyIsdHJpZ2dlckFzYzoiQ2xpY2sgdG8gc29ydCBhc2NlbmRpbmciLGNhbmNlbFNvcnQ6IkNsaWNrIHRvIGNhbmNlbCBzb3J0aW5nIn0sVG91cjp7TmV4dDoiTmV4dCIsUHJldmlvdXM6IlByZXZpb3VzIixGaW5pc2g6IkZpbmlzaCJ9LE1vZGFsOntva1RleHQ6Ik9LIixjYW5jZWxUZXh0OiJDYW5jZWwiLGp1c3RPa1RleHQ6Ik9LIn0sUG9wY29uZmlybTp7b2tUZXh0OiJPSyIsY2FuY2VsVGV4dDoiQ2FuY2VsIn0sVHJhbnNmZXI6e3RpdGxlczpbIiIsIiJdLHNlYXJjaFBsYWNlaG9sZGVyOiJTZWFyY2ggaGVyZSIsaXRlbVVuaXQ6Iml0ZW0iLGl0ZW1zVW5pdDoiaXRlbXMiLHJlbW92ZToiUmVtb3ZlIixzZWxlY3RDdXJyZW50OiJTZWxlY3QgY3VycmVudCBwYWdlIixyZW1vdmVDdXJyZW50OiJSZW1vdmUgY3VycmVudCBwYWdlIixzZWxlY3RBbGw6IlNlbGVjdCBhbGwgZGF0YSIsZGVzZWxlY3RBbGw6IkRlc2VsZWN0IGFsbCBkYXRhIixyZW1vdmVBbGw6IlJlbW92ZSBhbGwgZGF0YSIsc2VsZWN0SW52ZXJ0OiJJbnZlcnQgY3VycmVudCBwYWdlIn0sVXBsb2FkOnt1cGxvYWRpbmc6IlVwbG9hZGluZy4uLiIscmVtb3ZlRmlsZToiUmVtb3ZlIGZpbGUiLHVwbG9hZEVycm9yOiJVcGxvYWQgZXJyb3IiLHByZXZpZXdGaWxlOiJQcmV2aWV3IGZpbGUiLGRvd25sb2FkRmlsZToiRG93bmxvYWQgZmlsZSJ9LEVtcHR5OntkZXNjcmlwdGlvbjoiTm8gZGF0YSJ9LEljb246e2ljb246Imljb24ifSxUZXh0OntlZGl0OiJFZGl0Iixjb3B5OiJDb3B5Iixjb3BpZWQ6IkNvcGllZCIsZXhwYW5kOiJFeHBhbmQiLGNvbGxhcHNlOiJDb2xsYXBzZSJ9LEZvcm06e29wdGlvbmFsOiIob3B0aW9uYWwpIixkZWZhdWx0VmFsaWRhdGVNZXNzYWdlczp7ZGVmYXVsdDoiRmllbGQgdmFsaWRhdGlvbiBlcnJvciBmb3IgJHtsYWJlbH0iLHJlcXVpcmVkOiJQbGVhc2UgZW50ZXIgJHtsYWJlbH0iLGVudW06IiR7bGFiZWx9IG11c3QgYmUgb25lIG9mIFske2VudW19XSIsd2hpdGVzcGFjZToiJHtsYWJlbH0gY2Fubm90IGJlIGEgYmxhbmsgY2hhcmFjdGVyIixkYXRlOntmb3JtYXQ6IiR7bGFiZWx9IGRhdGUgZm9ybWF0IGlzIGludmFsaWQiLHBhcnNlOiIke2xhYmVsfSBjYW5ub3QgYmUgY29udmVydGVkIHRvIGEgZGF0ZSIsaW52YWxpZDoiJHtsYWJlbH0gaXMgYW4gaW52YWxpZCBkYXRlIn0sdHlwZXM6e3N0cmluZzpzLG1ldGhvZDpzLGFycmF5OnMsb2JqZWN0OnMsbnVtYmVyOnMsZGF0ZTpzLGJvb2xlYW46cyxpbnRlZ2VyOnMsZmxvYXQ6cyxyZWdleHA6cyxlbWFpbDpzLHVybDpzLGhleDpzfSxzdHJpbmc6e2xlbjoiJHtsYWJlbH0gbXVzdCBiZSAke2xlbn0gY2hhcmFjdGVycyIsbWluOiIke2xhYmVsfSBtdXN0IGJlIGF0IGxlYXN0ICR7bWlufSBjaGFyYWN0ZXJzIixtYXg6IiR7bGFiZWx9IG11c3QgYmUgdXAgdG8gJHttYXh9IGNoYXJhY3RlcnMiLHJhbmdlOiIke2xhYmVsfSBtdXN0IGJlIGJldHdlZW4gJHttaW59LSR7bWF4fSBjaGFyYWN0ZXJzIn0sbnVtYmVyOntsZW46IiR7bGFiZWx9IG11c3QgYmUgZXF1YWwgdG8gJHtsZW59IixtaW46IiR7bGFiZWx9IG11c3QgYmUgbWluaW11bSAke21pbn0iLG1heDoiJHtsYWJlbH0gbXVzdCBiZSBtYXhpbXVtICR7bWF4fSIscmFuZ2U6IiR7bGFiZWx9IG11c3QgYmUgYmV0d2VlbiAke21pbn0tJHttYXh9In0sYXJyYXk6e2xlbjoiTXVzdCBiZSAke2xlbn0gJHtsYWJlbH0iLG1pbjoiQXQgbGVhc3QgJHttaW59ICR7bGFiZWx9IixtYXg6IkF0IG1vc3QgJHttYXh9ICR7bGFiZWx9IixyYW5nZToiVGhlIGFtb3VudCBvZiAke2xhYmVsfSBtdXN0IGJlIGJldHdlZW4gJHttaW59LSR7bWF4fSJ9LHBhdHRlcm46e21pc21hdGNoOiIke2xhYmVsfSBkb2VzIG5vdCBtYXRjaCB0aGUgcGF0dGVybiAke3BhdHRlcm59In19fSxJbWFnZTp7cHJldmlldzoiUHJldmlldyJ9LFFSQ29kZTp7ZXhwaXJlZDoiUVIgY29kZSBleHBpcmVkIixyZWZyZXNoOiJSZWZyZXNoIixzY2FubmVkOiJTY2FubmVkIn0sQ29sb3JQaWNrZXI6e3ByZXNldEVtcHR5OiJFbXB0eSIsdHJhbnNwYXJlbnQ6IlRyYW5zcGFyZW50IixzaW5nbGVDb2xvcjoiU2luZ2xlIixncmFkaWVudENvbG9yOiJHcmFkaWVudCJ9fX0sMTAxMTA6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDY3Mjk0KSxuPWUoNzY3NDUpLHQ9ZSgyNDQ1Nyk7Y29uc3QgaT0ocyxhKT0+e2NvbnN0IHU9ci51c2VDb250ZXh0KG4uWiksYz1yLnVzZU1lbW8oKCk9Pnt2YXIgZDtjb25zdCBtPWF8fHQuWltzXSxDPShkPXU9PW51bGw/dm9pZCAwOnVbc10pIT09bnVsbCYmZCE9PXZvaWQgMD9kOnt9O3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdHlwZW9mIG09PSJmdW5jdGlvbiI/bSgpOm0pLEN8fHt9KX0sW3MsYSx1XSksaD1yLnVzZU1lbW8oKCk9Pntjb25zdCBkPXU9PW51bGw/dm9pZCAwOnUubG9jYWxlO3JldHVybiB1IT1udWxsJiZ1LmV4aXN0JiYhZD90LloubG9jYWxlOmR9LFt1XSk7cmV0dXJuW2MsaF19O3AuWj1pfSwzNzAyOTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGd9fSk7dmFyIHI9ZSg4MTYyNiksbj1lKDE0MTMpLHQ9ZSgyNTU0MSksaT0oMCxuLlopKCgwLG4uWikoe30sdC56KSx7fSx7bG9jYWxlOiJ6aF9DTiIsdG9kYXk6Ilx1NEVDQVx1NTkyOSIsbm93OiJcdTZCNjRcdTUyM0IiLGJhY2tUb1RvZGF5OiJcdThGRDRcdTU2REVcdTRFQ0FcdTU5MjkiLG9rOiJcdTc4NkVcdTVCOUEiLHRpbWVTZWxlY3Q6Ilx1OTAwOVx1NjJFOVx1NjVGNlx1OTVGNCIsZGF0ZVNlbGVjdDoiXHU5MDA5XHU2MkU5XHU2NUU1XHU2NzFGIix3ZWVrU2VsZWN0OiJcdTkwMDlcdTYyRTlcdTU0NjgiLGNsZWFyOiJcdTZFMDVcdTk2NjQiLHdlZWs6Ilx1NTQ2OCIsbW9udGg6Ilx1NjcwOCIseWVhcjoiXHU1RTc0IixwcmV2aW91c01vbnRoOiJcdTRFMEFcdTRFMkFcdTY3MDggKFx1N0ZGQlx1OTg3NVx1NEUwQVx1OTUyRSkiLG5leHRNb250aDoiXHU0RTBCXHU0RTJBXHU2NzA4IChcdTdGRkJcdTk4NzVcdTRFMEJcdTk1MkUpIixtb250aFNlbGVjdDoiXHU5MDA5XHU2MkU5XHU2NzA4XHU0RUZEIix5ZWFyU2VsZWN0OiJcdTkwMDlcdTYyRTlcdTVFNzRcdTRFRkQiLGRlY2FkZVNlbGVjdDoiXHU5MDA5XHU2MkU5XHU1RTc0XHU0RUUzIixwcmV2aW91c1llYXI6Ilx1NEUwQVx1NEUwMFx1NUU3NCAoQ29udHJvbFx1OTUyRVx1NTJBMFx1NURFNlx1NjVCOVx1NTQxMVx1OTUyRSkiLG5leHRZZWFyOiJcdTRFMEJcdTRFMDBcdTVFNzQgKENvbnRyb2xcdTk1MkVcdTUyQTBcdTUzRjNcdTY1QjlcdTU0MTFcdTk1MkUpIixwcmV2aW91c0RlY2FkZToiXHU0RTBBXHU0RTAwXHU1RTc0XHU0RUUzIixuZXh0RGVjYWRlOiJcdTRFMEJcdTRFMDBcdTVFNzRcdTRFRTMiLHByZXZpb3VzQ2VudHVyeToiXHU0RTBBXHU0RTAwXHU0RTE2XHU3RUFBIixuZXh0Q2VudHVyeToiXHU0RTBCXHU0RTAwXHU0RTE2XHU3RUFBIix5ZWFyRm9ybWF0OiJZWVlZXHU1RTc0IixjZWxsRGF0ZUZvcm1hdDoiRCIsbW9udGhCZWZvcmVZZWFyOiExfSkscz1pLHU9e3BsYWNlaG9sZGVyOiJcdThCRjdcdTkwMDlcdTYyRTlcdTY1RjZcdTk1RjQiLHJhbmdlUGxhY2Vob2xkZXI6WyJcdTVGMDBcdTU5Q0JcdTY1RjZcdTk1RjQiLCJcdTdFRDNcdTY3NUZcdTY1RjZcdTk1RjQiXX07Y29uc3QgYz17bGFuZzpPYmplY3QuYXNzaWduKHtwbGFjZWhvbGRlcjoiXHU4QkY3XHU5MDA5XHU2MkU5XHU2NUU1XHU2NzFGIix5ZWFyUGxhY2Vob2xkZXI6Ilx1OEJGN1x1OTAwOVx1NjJFOVx1NUU3NFx1NEVGRCIscXVhcnRlclBsYWNlaG9sZGVyOiJcdThCRjdcdTkwMDlcdTYyRTlcdTVCNjNcdTVFQTYiLG1vbnRoUGxhY2Vob2xkZXI6Ilx1OEJGN1x1OTAwOVx1NjJFOVx1NjcwOFx1NEVGRCIsd2Vla1BsYWNlaG9sZGVyOiJcdThCRjdcdTkwMDlcdTYyRTlcdTU0NjgiLHJhbmdlUGxhY2Vob2xkZXI6WyJcdTVGMDBcdTU5Q0JcdTY1RTVcdTY3MUYiLCJcdTdFRDNcdTY3NUZcdTY1RTVcdTY3MUYiXSxyYW5nZVllYXJQbGFjZWhvbGRlcjpbIlx1NUYwMFx1NTlDQlx1NUU3NFx1NEVGRCIsIlx1N0VEM1x1Njc1Rlx1NUU3NFx1NEVGRCJdLHJhbmdlTW9udGhQbGFjZWhvbGRlcjpbIlx1NUYwMFx1NTlDQlx1NjcwOFx1NEVGRCIsIlx1N0VEM1x1Njc1Rlx1NjcwOFx1NEVGRCJdLHJhbmdlUXVhcnRlclBsYWNlaG9sZGVyOlsiXHU1RjAwXHU1OUNCXHU1QjYzXHU1RUE2IiwiXHU3RUQzXHU2NzVGXHU1QjYzXHU1RUE2Il0scmFuZ2VXZWVrUGxhY2Vob2xkZXI6WyJcdTVGMDBcdTU5Q0JcdTU0NjgiLCJcdTdFRDNcdTY3NUZcdTU0NjgiXX0scyksdGltZVBpY2tlckxvY2FsZTpPYmplY3QuYXNzaWduKHt9LHUpfTtjLmxhbmcub2s9Ilx1Nzg2RVx1NUI5QSI7dmFyIGg9YyxkPWg7Y29uc3QgbT0iJHtsYWJlbH1cdTRFMERcdTY2MkZcdTRFMDBcdTRFMkFcdTY3MDlcdTY1NDhcdTc2ODQke3R5cGV9Ijt2YXIgZz17bG9jYWxlOiJ6aC1jbiIsUGFnaW5hdGlvbjpyLlosRGF0ZVBpY2tlcjpoLFRpbWVQaWNrZXI6dSxDYWxlbmRhcjpkLGdsb2JhbDp7cGxhY2Vob2xkZXI6Ilx1OEJGN1x1OTAwOVx1NjJFOSJ9LFRhYmxlOntmaWx0ZXJUaXRsZToiXHU3QjVCXHU5MDA5IixmaWx0ZXJDb25maXJtOiJcdTc4NkVcdTVCOUEiLGZpbHRlclJlc2V0OiJcdTkxQ0RcdTdGNkUiLGZpbHRlckVtcHR5VGV4dDoiXHU2NUUwXHU3QjVCXHU5MDA5XHU5ODc5IixmaWx0ZXJDaGVja0FsbDoiXHU1MTY4XHU5MDA5IixmaWx0ZXJTZWFyY2hQbGFjZWhvbGRlcjoiXHU1NzI4XHU3QjVCXHU5MDA5XHU5ODc5XHU0RTJEXHU2NDFDXHU3RDIyIixlbXB0eVRleHQ6Ilx1NjY4Mlx1NjVFMFx1NjU3MFx1NjM2RSIsc2VsZWN0QWxsOiJcdTUxNjhcdTkwMDlcdTVGNTNcdTk4NzUiLHNlbGVjdEludmVydDoiXHU1M0NEXHU5MDA5XHU1RjUzXHU5ODc1IixzZWxlY3ROb25lOiJcdTZFMDVcdTdBN0FcdTYyNDBcdTY3MDkiLHNlbGVjdGlvbkFsbDoiXHU1MTY4XHU5MDA5XHU2MjQwXHU2NzA5Iixzb3J0VGl0bGU6Ilx1NjM5Mlx1NUU4RiIsZXhwYW5kOiJcdTVDNTVcdTVGMDBcdTg4NEMiLGNvbGxhcHNlOiJcdTUxNzNcdTk1RURcdTg4NEMiLHRyaWdnZXJEZXNjOiJcdTcwQjlcdTUxRkJcdTk2NERcdTVFOEYiLHRyaWdnZXJBc2M6Ilx1NzBCOVx1NTFGQlx1NTM0N1x1NUU4RiIsY2FuY2VsU29ydDoiXHU1M0Q2XHU2RDg4XHU2MzkyXHU1RThGIn0sTW9kYWw6e29rVGV4dDoiXHU3ODZFXHU1QjlBIixjYW5jZWxUZXh0OiJcdTUzRDZcdTZEODgiLGp1c3RPa1RleHQ6Ilx1NzdFNVx1OTA1M1x1NEU4NiJ9LFRvdXI6e05leHQ6Ilx1NEUwQlx1NEUwMFx1NkI2NSIsUHJldmlvdXM6Ilx1NEUwQVx1NEUwMFx1NkI2NSIsRmluaXNoOiJcdTdFRDNcdTY3NUZcdTVCRkNcdTg5QzgifSxQb3Bjb25maXJtOntjYW5jZWxUZXh0OiJcdTUzRDZcdTZEODgiLG9rVGV4dDoiXHU3ODZFXHU1QjlBIn0sVHJhbnNmZXI6e3RpdGxlczpbIiIsIiJdLHNlYXJjaFBsYWNlaG9sZGVyOiJcdThCRjdcdThGOTNcdTUxNjVcdTY0MUNcdTdEMjJcdTUxODVcdTVCQjkiLGl0ZW1Vbml0OiJcdTk4NzkiLGl0ZW1zVW5pdDoiXHU5ODc5IixyZW1vdmU6Ilx1NTIyMFx1OTY2NCIsc2VsZWN0Q3VycmVudDoiXHU1MTY4XHU5MDA5XHU1RjUzXHU5ODc1IixyZW1vdmVDdXJyZW50OiJcdTUyMjBcdTk2NjRcdTVGNTNcdTk4NzUiLHNlbGVjdEFsbDoiXHU1MTY4XHU5MDA5XHU2MjQwXHU2NzA5IixkZXNlbGVjdEFsbDoiXHU1M0Q2XHU2RDg4XHU1MTY4XHU5MDA5IixyZW1vdmVBbGw6Ilx1NTIyMFx1OTY2NFx1NTE2OFx1OTBFOCIsc2VsZWN0SW52ZXJ0OiJcdTUzQ0RcdTkwMDlcdTVGNTNcdTk4NzUifSxVcGxvYWQ6e3VwbG9hZGluZzoiXHU2NTg3XHU0RUY2XHU0RTBBXHU0RjIwXHU0RTJEIixyZW1vdmVGaWxlOiJcdTUyMjBcdTk2NjRcdTY1ODdcdTRFRjYiLHVwbG9hZEVycm9yOiJcdTRFMEFcdTRGMjBcdTk1MTlcdThCRUYiLHByZXZpZXdGaWxlOiJcdTk4ODRcdTg5QzhcdTY1ODdcdTRFRjYiLGRvd25sb2FkRmlsZToiXHU0RTBCXHU4RjdEXHU2NTg3XHU0RUY2In0sRW1wdHk6e2Rlc2NyaXB0aW9uOiJcdTY2ODJcdTY1RTBcdTY1NzBcdTYzNkUifSxJY29uOntpY29uOiJcdTU2RkVcdTY4MDcifSxUZXh0OntlZGl0OiJcdTdGMTZcdThGOTEiLGNvcHk6Ilx1NTkwRFx1NTIzNiIsY29waWVkOiJcdTU5MERcdTUyMzZcdTYyMTBcdTUyOUYiLGV4cGFuZDoiXHU1QzU1XHU1RjAwIixjb2xsYXBzZToiXHU2NTM2XHU4RDc3In0sRm9ybTp7b3B0aW9uYWw6Ilx1RkYwOFx1NTNFRlx1OTAwOVx1RkYwOSIsZGVmYXVsdFZhbGlkYXRlTWVzc2FnZXM6e2RlZmF1bHQ6Ilx1NUI1N1x1NkJCNVx1OUE4Q1x1OEJDMVx1OTUxOVx1OEJFRiR7bGFiZWx9IixyZXF1aXJlZDoiXHU4QkY3XHU4RjkzXHU1MTY1JHtsYWJlbH0iLGVudW06IiR7bGFiZWx9XHU1RkM1XHU5ODdCXHU2NjJGXHU1MTc2XHU0RTJEXHU0RTAwXHU0RTJBWyR7ZW51bX1dIix3aGl0ZXNwYWNlOiIke2xhYmVsfVx1NEUwRFx1ODBGRFx1NEUzQVx1N0E3QVx1NUI1N1x1N0IyNiIsZGF0ZTp7Zm9ybWF0OiIke2xhYmVsfVx1NjVFNVx1NjcxRlx1NjgzQ1x1NUYwRlx1NjVFMFx1NjU0OCIscGFyc2U6IiR7bGFiZWx9XHU0RTBEXHU4MEZEXHU4RjZDXHU2MzYyXHU0RTNBXHU2NUU1XHU2NzFGIixpbnZhbGlkOiIke2xhYmVsfVx1NjYyRlx1NEUwMFx1NEUyQVx1NjVFMFx1NjU0OFx1NjVFNVx1NjcxRiJ9LHR5cGVzOntzdHJpbmc6bSxtZXRob2Q6bSxhcnJheTptLG9iamVjdDptLG51bWJlcjptLGRhdGU6bSxib29sZWFuOm0saW50ZWdlcjptLGZsb2F0Om0scmVnZXhwOm0sZW1haWw6bSx1cmw6bSxoZXg6bX0sc3RyaW5nOntsZW46IiR7bGFiZWx9XHU5ODdCXHU0RTNBJHtsZW59XHU0RTJBXHU1QjU3XHU3QjI2IixtaW46IiR7bGFiZWx9XHU2NzAwXHU1QzExJHttaW59XHU0RTJBXHU1QjU3XHU3QjI2IixtYXg6IiR7bGFiZWx9XHU2NzAwXHU1OTFBJHttYXh9XHU0RTJBXHU1QjU3XHU3QjI2IixyYW5nZToiJHtsYWJlbH1cdTk4N0JcdTU3Mjgke21pbn0tJHttYXh9XHU1QjU3XHU3QjI2XHU0RTRCXHU5NUY0In0sbnVtYmVyOntsZW46IiR7bGFiZWx9XHU1RkM1XHU5ODdCXHU3QjQ5XHU0RThFJHtsZW59IixtaW46IiR7bGFiZWx9XHU2NzAwXHU1QzBGXHU1MDNDXHU0RTNBJHttaW59IixtYXg6IiR7bGFiZWx9XHU2NzAwXHU1OTI3XHU1MDNDXHU0RTNBJHttYXh9IixyYW5nZToiJHtsYWJlbH1cdTk4N0JcdTU3Mjgke21pbn0tJHttYXh9XHU0RTRCXHU5NUY0In0sYXJyYXk6e2xlbjoiXHU5ODdCXHU0RTNBJHtsZW59XHU0RTJBJHtsYWJlbH0iLG1pbjoiXHU2NzAwXHU1QzExJHttaW59XHU0RTJBJHtsYWJlbH0iLG1heDoiXHU2NzAwXHU1OTFBJHttYXh9XHU0RTJBJHtsYWJlbH0iLHJhbmdlOiIke2xhYmVsfVx1NjU3MFx1OTFDRlx1OTg3Qlx1NTcyOCR7bWlufS0ke21heH1cdTRFNEJcdTk1RjQifSxwYXR0ZXJuOnttaXNtYXRjaDoiJHtsYWJlbH1cdTRFMEVcdTZBMjFcdTVGMEZcdTRFMERcdTUzMzlcdTkxNEQke3BhdHRlcm59In19fSxJbWFnZTp7cHJldmlldzoiXHU5ODg0XHU4OUM4In0sUVJDb2RlOntleHBpcmVkOiJcdTRFOENcdTdFRjRcdTc4MDFcdThGQzdcdTY3MUYiLHJlZnJlc2g6Ilx1NzBCOVx1NTFGQlx1NTIzN1x1NjVCMCIsc2Nhbm5lZDoiXHU1REYyXHU2MjZCXHU2M0NGIn0sQ29sb3JQaWNrZXI6e3ByZXNldEVtcHR5OiJcdTY2ODJcdTY1RTAiLHRyYW5zcGFyZW50OiJcdTY1RTBcdTgyNzIiLHNpbmdsZUNvbG9yOiJcdTUzNTVcdTgyNzIiLGdyYWRpZW50Q29sb3I6Ilx1NkUxMFx1NTNEOFx1ODI3MiJ9fX0sNzY1Mjk6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7SjpmdW5jdGlvbigpe3JldHVybiBhfX0pO3ZhciByPWUoNjcyOTQpLG49ZSg0MjU1MCksdD1lKDg5OTQyKSxpPWZ1bmN0aW9uKHUsYyl7dmFyIGg9e307Zm9yKHZhciBkIGluIHUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHUsZCkmJmMuaW5kZXhPZihkKTwwJiYoaFtkXT11W2RdKTtpZih1IT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIG09MCxkPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModSk7bTxkLmxlbmd0aDttKyspYy5pbmRleE9mKGRbbV0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh1LGRbbV0pJiYoaFtkW21dXT11W2RbbV1dKTtyZXR1cm4gaH07Y29uc3Qgcz1yLmNyZWF0ZUNvbnRleHQobnVsbCksYT1yLmZvcndhcmRSZWYoKHUsYyk9Pntjb25zdHtjaGlsZHJlbjpofT11LGQ9aSh1LFsiY2hpbGRyZW4iXSksbT1yLnVzZUNvbnRleHQocyksQz1yLnVzZU1lbW8oKCk9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxtKSxkKSxbbSxkLnByZWZpeENscyxkLm1vZGUsZC5zZWxlY3RhYmxlLGQucm9vdENsYXNzTmFtZV0pLGc9KDAsbi50NCkoaCksdz0oMCxuLngxKShjLGc/KDAsbi5DNCkoaCk6bnVsbCk7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChzLlByb3ZpZGVyLHt2YWx1ZTpDfSxyLmNyZWF0ZUVsZW1lbnQodC5aLHtzcGFjZTohMH0sZz9yLmNsb25lRWxlbWVudChoLHtyZWY6d30pOmgpKX0pO3AuWj1zfSw1MDEzNjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIEF9fSk7dmFyIHI9ZSg2NzI5NCksbj1lKDcyNTEyKSx0PWUoNjEzNDUpLGk9ZSg4OTcwNSkscz1lKDkzOTY3KSxhPWUubihzKSx1PWUoNjY2ODApLGM9ZSg5ODQyMyksaD1lKDMzNjAzKSxkPWUoOTYxNTkpLG09ZSg1MzEyNCksQz1lKDM1NzkyKSx3PSgwLHIuY3JlYXRlQ29udGV4dCkoe3ByZWZpeENsczoiIixmaXJzdExldmVsOiEwLGlubGluZUNvbGxhcHNlZDohMX0pLEU9ZnVuY3Rpb24oVSxOKXt2YXIgUT17fTtmb3IodmFyIHVlIGluIFUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKFUsdWUpJiZOLmluZGV4T2YodWUpPDAmJihRW3VlXT1VW3VlXSk7aWYoVSE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciAkPTAsdWU9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhVKTskPHVlLmxlbmd0aDskKyspTi5pbmRleE9mKHVlWyRdKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoVSx1ZVskXSkmJihRW3VlWyRdXT1VW3VlWyRdXSk7cmV0dXJuIFF9LE89VT0+e2NvbnN0e3ByZWZpeENsczpOLGNsYXNzTmFtZTpRLGRhc2hlZDp1ZX09VSwkPUUoVSxbInByZWZpeENscyIsImNsYXNzTmFtZSIsImRhc2hlZCJdKSx7Z2V0UHJlZml4Q2xzOl99PXIudXNlQ29udGV4dChtLkVfKSxwZT1fKCJtZW51IixOKSxyZT1hKCkoe1tgJHtwZX0taXRlbS1kaXZpZGVyLWRhc2hlZGBdOiEhdWV9LFEpO3JldHVybiByLmNyZWF0ZUVsZW1lbnQobi5peixPYmplY3QuYXNzaWduKHtjbGFzc05hbWU6cmV9LCQpKX0sVD1lKDUwMzQ0KSxTPWUoODMwNjIpLEk9VT0+e3ZhciBOO2NvbnN0e2NsYXNzTmFtZTpRLGNoaWxkcmVuOnVlLGljb246JCx0aXRsZTpfLGRhbmdlcjpwZSxleHRyYTpyZX09VSx7cHJlZml4Q2xzOmFlLGZpcnN0TGV2ZWw6d2UsZGlyZWN0aW9uOkxlLGRpc2FibGVNZW51SXRlbVRpdGxlVG9vbHRpcDpNZSxpbmxpbmVDb2xsYXBzZWQ6YmV9PXIudXNlQ29udGV4dCh3KSwkZT1EZT0+e2NvbnN0IE5lPXVlPT1udWxsP3ZvaWQgMDp1ZVswXSxYZT1yLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6YSgpKGAke2FlfS10aXRsZS1jb250ZW50YCx7W2Ake2FlfS10aXRsZS1jb250ZW50LXdpdGgtZXh0cmFgXTohIXJlfHxyZT09PTB9KX0sdWUpO3JldHVybighJHx8ci5pc1ZhbGlkRWxlbWVudCh1ZSkmJnVlLnR5cGU9PT0ic3BhbiIpJiZ1ZSYmRGUmJndlJiZ0eXBlb2YgTmU9PSJzdHJpbmciP3IuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmAke2FlfS1pbmxpbmUtY29sbGFwc2VkLW5vaWNvbmB9LE5lLmNoYXJBdCgwKSk6WGV9LHtzaWRlckNvbGxhcHNlZDprZX09ci51c2VDb250ZXh0KHQuRCk7bGV0IEFlPV87dHlwZW9mIF89PSJ1bmRlZmluZWQiP0FlPXdlP3VlOiIiOl89PT0hMSYmKEFlPSIiKTtjb25zdCB0dD17dGl0bGU6QWV9OyFrZSYmIWJlJiYodHQudGl0bGU9bnVsbCx0dC5vcGVuPSExKTtjb25zdCBtdD0oMCxULlopKHVlKS5sZW5ndGg7bGV0IHV0PXIuY3JlYXRlRWxlbWVudChuLmNrLE9iamVjdC5hc3NpZ24oe30sKDAsYy5aKShVLFsidGl0bGUiLCJpY29uIiwiZGFuZ2VyIl0pLHtjbGFzc05hbWU6YSgpKHtbYCR7YWV9LWl0ZW0tZGFuZ2VyYF06cGUsW2Ake2FlfS1pdGVtLW9ubHktY2hpbGRgXTooJD9tdCsxOm10KT09PTF9LFEpLHRpdGxlOnR5cGVvZiBfPT0ic3RyaW5nIj9fOnZvaWQgMH0pLCgwLGQuVG0pKCQse2NsYXNzTmFtZTphKCkoci5pc1ZhbGlkRWxlbWVudCgkKT8oTj0kLnByb3BzKT09PW51bGx8fE49PT12b2lkIDA/dm9pZCAwOk4uY2xhc3NOYW1lOiIiLGAke2FlfS1pdGVtLWljb25gKX0pLCRlKGJlKSk7cmV0dXJuIE1lfHwodXQ9ci5jcmVhdGVFbGVtZW50KFMuWixPYmplY3QuYXNzaWduKHt9LHR0LHtwbGFjZW1lbnQ6TGU9PT0icnRsIj8ibGVmdCI6InJpZ2h0IixjbGFzc05hbWVzOntyb290OmAke2FlfS1pbmxpbmUtY29sbGFwc2VkLXRvb2x0aXBgfX0pLHV0KSksdXR9LFI9ZSg3NjUyOSksej1lKDExNTY4KSxHPWUoMTUwNjMpLFk9ZSgxNDc0NyksZWU9ZSgzMzUwNyksSj1lKDY3NzcxKSxtZT1lKDUwNDM4KSx0ZT1lKDgzNTU5KSxsZT1lKDgzMjYyKSxXPVU9Pntjb25zdHtjb21wb25lbnRDbHM6Tixtb3Rpb25EdXJhdGlvblNsb3c6USxob3Jpem9udGFsTGluZUhlaWdodDp1ZSxjb2xvclNwbGl0OiQsbGluZVdpZHRoOl8sbGluZVR5cGU6cGUsaXRlbVBhZGRpbmdJbmxpbmU6cmV9PVU7cmV0dXJue1tgJHtOfS1ob3Jpem9udGFsYF06e2xpbmVIZWlnaHQ6dWUsYm9yZGVyOjAsYm9yZGVyQm90dG9tOmAkeygwLHouYmYpKF8pfSAke3BlfSAkeyR9YCxib3hTaGFkb3c6Im5vbmUiLCImOjphZnRlciI6e2Rpc3BsYXk6ImJsb2NrIixjbGVhcjoiYm90aCIsaGVpZ2h0OjAsY29udGVudDonIlxcMjAiJ30sW2Ake059LWl0ZW0sICR7Tn0tc3VibWVudWBdOntwb3NpdGlvbjoicmVsYXRpdmUiLGRpc3BsYXk6ImlubGluZS1ibG9jayIsdmVydGljYWxBbGlnbjoiYm90dG9tIixwYWRkaW5nSW5saW5lOnJlfSxbYD4gJHtOfS1pdGVtOmhvdmVyLAorICAgICAgICA+ICR7Tn0taXRlbS1hY3RpdmUsCisgICAgICAgID4gJHtOfS1zdWJtZW51ICR7Tn0tc3VibWVudS10aXRsZTpob3ZlcmBdOntiYWNrZ3JvdW5kQ29sb3I6InRyYW5zcGFyZW50In0sW2Ake059LWl0ZW0sICR7Tn0tc3VibWVudS10aXRsZWBdOnt0cmFuc2l0aW9uOltgYm9yZGVyLWNvbG9yICR7UX1gLGBiYWNrZ3JvdW5kICR7UX1gXS5qb2luKCIsIil9LFtgJHtOfS1zdWJtZW51LWFycm93YF06e2Rpc3BsYXk6Im5vbmUifX19fSxEPVU9PntsZXR7Y29tcG9uZW50Q2xzOk4sbWVudUFycm93T2Zmc2V0OlEsY2FsYzp1ZX09VTtyZXR1cm57W2Ake059LXJ0bGBdOntkaXJlY3Rpb246InJ0bCJ9LFtgJHtOfS1zdWJtZW51LXJ0bGBdOnt0cmFuc2Zvcm1PcmlnaW46IjEwMCUgMCJ9LFtgJHtOfS1ydGwke059LXZlcnRpY2FsLAorICAgICR7Tn0tc3VibWVudS1ydGwgJHtOfS12ZXJ0aWNhbGBdOntbYCR7Tn0tc3VibWVudS1hcnJvd2BdOnsiJjo6YmVmb3JlIjp7dHJhbnNmb3JtOmByb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGVZKCR7KDAsei5iZikodWUoUSkubXVsKC0xKS5lcXVhbCgpKX0pYH0sIiY6OmFmdGVyIjp7dHJhbnNmb3JtOmByb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZVkoJHsoMCx6LmJmKShRKX0pYH19fX19O2NvbnN0IFY9VT0+T2JqZWN0LmFzc2lnbih7fSwoMCxZLm9OKShVKSk7dmFyIFA9KFUsTik9Pntjb25zdHtjb21wb25lbnRDbHM6USxpdGVtQ29sb3I6dWUsaXRlbVNlbGVjdGVkQ29sb3I6JCxzdWJNZW51SXRlbVNlbGVjdGVkQ29sb3I6Xyxncm91cFRpdGxlQ29sb3I6cGUsaXRlbUJnOnJlLHN1Yk1lbnVJdGVtQmc6YWUsaXRlbVNlbGVjdGVkQmc6d2UsYWN0aXZlQmFySGVpZ2h0OkxlLGFjdGl2ZUJhcldpZHRoOk1lLGFjdGl2ZUJhckJvcmRlcldpZHRoOmJlLG1vdGlvbkR1cmF0aW9uU2xvdzokZSxtb3Rpb25FYXNlSW5PdXQ6a2UsbW90aW9uRWFzZU91dDpBZSxpdGVtUGFkZGluZ0lubGluZTp0dCxtb3Rpb25EdXJhdGlvbk1pZDptdCxpdGVtSG92ZXJDb2xvcjp1dCxsaW5lVHlwZTpEZSxjb2xvclNwbGl0Ok5lLGl0ZW1EaXNhYmxlZENvbG9yOlhlLGRhbmdlckl0ZW1Db2xvcjpKZSxkYW5nZXJJdGVtSG92ZXJDb2xvcjpndCxkYW5nZXJJdGVtU2VsZWN0ZWRDb2xvcjpkZSxkYW5nZXJJdGVtQWN0aXZlQmc6V2UsZGFuZ2VySXRlbVNlbGVjdGVkQmc6U3QscG9wdXBCZzpjdCxpdGVtSG92ZXJCZzpPZSxpdGVtQWN0aXZlQmc6R2UsbWVudVN1Yk1lbnVCZzpodCxob3Jpem9udGFsSXRlbVNlbGVjdGVkQ29sb3I6emUsaG9yaXpvbnRhbEl0ZW1TZWxlY3RlZEJnOlFlLGhvcml6b250YWxJdGVtQm9yZGVyUmFkaXVzOnB0LGhvcml6b250YWxJdGVtSG92ZXJCZzpidH09VTtyZXR1cm57W2Ake1F9LSR7Tn0sICR7UX0tJHtOfSA+ICR7UX1gXTp7Y29sb3I6dWUsYmFja2dyb3VuZDpyZSxbYCYke1F9LXJvb3Q6Zm9jdXMtdmlzaWJsZWBdOk9iamVjdC5hc3NpZ24oe30sVihVKSksW2Ake1F9LWl0ZW1gXTp7IiYtZ3JvdXAtdGl0bGUsICYtZXh0cmEiOntjb2xvcjpwZX19LFtgJHtRfS1zdWJtZW51LXNlbGVjdGVkID4gJHtRfS1zdWJtZW51LXRpdGxlYF06e2NvbG9yOl99LFtgJHtRfS1pdGVtLCAke1F9LXN1Ym1lbnUtdGl0bGVgXTp7Y29sb3I6dWUsW2AmOm5vdCgke1F9LWl0ZW0tZGlzYWJsZWQpOmZvY3VzLXZpc2libGVgXTpPYmplY3QuYXNzaWduKHt9LFYoVSkpfSxbYCR7UX0taXRlbS1kaXNhYmxlZCwgJHtRfS1zdWJtZW51LWRpc2FibGVkYF06e2NvbG9yOmAke1hlfSAhaW1wb3J0YW50YH0sW2Ake1F9LWl0ZW06bm90KCR7UX0taXRlbS1zZWxlY3RlZCk6bm90KCR7UX0tc3VibWVudS1zZWxlY3RlZClgXTp7W2AmOmhvdmVyLCA+ICR7UX0tc3VibWVudS10aXRsZTpob3ZlcmBdOntjb2xvcjp1dH19LFtgJjpub3QoJHtRfS1ob3Jpem9udGFsKWBdOntbYCR7UX0taXRlbTpub3QoJHtRfS1pdGVtLXNlbGVjdGVkKWBdOnsiJjpob3ZlciI6e2JhY2tncm91bmRDb2xvcjpPZX0sIiY6YWN0aXZlIjp7YmFja2dyb3VuZENvbG9yOkdlfX0sW2Ake1F9LXN1Ym1lbnUtdGl0bGVgXTp7IiY6aG92ZXIiOntiYWNrZ3JvdW5kQ29sb3I6T2V9LCImOmFjdGl2ZSI6e2JhY2tncm91bmRDb2xvcjpHZX19fSxbYCR7UX0taXRlbS1kYW5nZXJgXTp7Y29sb3I6SmUsW2AmJHtRfS1pdGVtOmhvdmVyYF06e1tgJjpub3QoJHtRfS1pdGVtLXNlbGVjdGVkKTpub3QoJHtRfS1zdWJtZW51LXNlbGVjdGVkKWBdOntjb2xvcjpndH19LFtgJiR7UX0taXRlbTphY3RpdmVgXTp7YmFja2dyb3VuZDpXZX19LFtgJHtRfS1pdGVtIGFgXTp7IiYsICY6aG92ZXIiOntjb2xvcjoiaW5oZXJpdCJ9fSxbYCR7UX0taXRlbS1zZWxlY3RlZGBdOntjb2xvcjokLFtgJiR7UX0taXRlbS1kYW5nZXJgXTp7Y29sb3I6ZGV9LCJhLCBhOmhvdmVyIjp7Y29sb3I6ImluaGVyaXQifX0sW2AmICR7UX0taXRlbS1zZWxlY3RlZGBdOntiYWNrZ3JvdW5kQ29sb3I6d2UsW2AmJHtRfS1pdGVtLWRhbmdlcmBdOntiYWNrZ3JvdW5kQ29sb3I6U3R9fSxbYCYke1F9LXN1Ym1lbnUgPiAke1F9YF06e2JhY2tncm91bmRDb2xvcjpodH0sW2AmJHtRfS1wb3B1cCA+ICR7UX1gXTp7YmFja2dyb3VuZENvbG9yOmN0fSxbYCYke1F9LXN1Ym1lbnUtcG9wdXAgPiAke1F9YF06e2JhY2tncm91bmRDb2xvcjpjdH0sW2AmJHtRfS1ob3Jpem9udGFsYF06T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LE49PT0iZGFyayI/e2JvcmRlckJvdHRvbTowfTp7fSkse1tgPiAke1F9LWl0ZW0sID4gJHtRfS1zdWJtZW51YF06e3RvcDpiZSxtYXJnaW5Ub3A6VS5jYWxjKGJlKS5tdWwoLTEpLmVxdWFsKCksbWFyZ2luQm90dG9tOjAsYm9yZGVyUmFkaXVzOnB0LCImOjphZnRlciI6e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsaW5zZXRJbmxpbmU6dHQsYm90dG9tOjAsYm9yZGVyQm90dG9tOmAkeygwLHouYmYpKExlKX0gc29saWQgdHJhbnNwYXJlbnRgLHRyYW5zaXRpb246YGJvcmRlci1jb2xvciAkeyRlfSAke2tlfWAsY29udGVudDonIiInfSwiJjpob3ZlciwgJi1hY3RpdmUsICYtb3BlbiI6e2JhY2tncm91bmQ6YnQsIiY6OmFmdGVyIjp7Ym9yZGVyQm90dG9tV2lkdGg6TGUsYm9yZGVyQm90dG9tQ29sb3I6emV9fSwiJi1zZWxlY3RlZCI6e2NvbG9yOnplLGJhY2tncm91bmRDb2xvcjpRZSwiJjpob3ZlciI6e2JhY2tncm91bmRDb2xvcjpRZX0sIiY6OmFmdGVyIjp7Ym9yZGVyQm90dG9tV2lkdGg6TGUsYm9yZGVyQm90dG9tQ29sb3I6emV9fX19KSxbYCYke1F9LXJvb3RgXTp7W2AmJHtRfS1pbmxpbmUsICYke1F9LXZlcnRpY2FsYF06e2JvcmRlcklubGluZUVuZDpgJHsoMCx6LmJmKShiZSl9ICR7RGV9ICR7TmV9YH19LFtgJiR7UX0taW5saW5lYF06e1tgJHtRfS1zdWIke1F9LWlubGluZWBdOntiYWNrZ3JvdW5kOmFlfSxbYCR7UX0taXRlbWBdOntwb3NpdGlvbjoicmVsYXRpdmUiLCImOjphZnRlciI6e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsaW5zZXRCbG9jazowLGluc2V0SW5saW5lRW5kOjAsYm9yZGVySW5saW5lRW5kOmAkeygwLHouYmYpKE1lKX0gc29saWQgJHskfWAsdHJhbnNmb3JtOiJzY2FsZVkoMC4wMDAxKSIsb3BhY2l0eTowLHRyYW5zaXRpb246W2B0cmFuc2Zvcm0gJHttdH0gJHtBZX1gLGBvcGFjaXR5ICR7bXR9ICR7QWV9YF0uam9pbigiLCIpLGNvbnRlbnQ6JyIiJ30sW2AmJHtRfS1pdGVtLWRhbmdlcmBdOnsiJjo6YWZ0ZXIiOntib3JkZXJJbmxpbmVFbmRDb2xvcjpkZX19fSxbYCR7UX0tc2VsZWN0ZWQsICR7UX0taXRlbS1zZWxlY3RlZGBdOnsiJjo6YWZ0ZXIiOnt0cmFuc2Zvcm06InNjYWxlWSgxKSIsb3BhY2l0eToxLHRyYW5zaXRpb246W2B0cmFuc2Zvcm0gJHttdH0gJHtrZX1gLGBvcGFjaXR5ICR7bXR9ICR7a2V9YF0uam9pbigiLCIpfX19fX19O2NvbnN0IEs9VT0+e2NvbnN0e2NvbXBvbmVudENsczpOLGl0ZW1IZWlnaHQ6USxpdGVtTWFyZ2luSW5saW5lOnVlLHBhZGRpbmc6JCxtZW51QXJyb3dTaXplOl8sbWFyZ2luWFM6cGUsaXRlbU1hcmdpbkJsb2NrOnJlLGl0ZW1XaWR0aDphZSxpdGVtUGFkZGluZ0lubGluZTp3ZX09VSxMZT1VLmNhbGMoXykuYWRkKCQpLmFkZChwZSkuZXF1YWwoKTtyZXR1cm57W2Ake059LWl0ZW1gXTp7cG9zaXRpb246InJlbGF0aXZlIixvdmVyZmxvdzoiaGlkZGVuIn0sW2Ake059LWl0ZW0sICR7Tn0tc3VibWVudS10aXRsZWBdOntoZWlnaHQ6USxsaW5lSGVpZ2h0OigwLHouYmYpKFEpLHBhZGRpbmdJbmxpbmU6d2Usb3ZlcmZsb3c6ImhpZGRlbiIsdGV4dE92ZXJmbG93OiJlbGxpcHNpcyIsbWFyZ2luSW5saW5lOnVlLG1hcmdpbkJsb2NrOnJlLHdpZHRoOmFlfSxbYD4gJHtOfS1pdGVtLAorICAgICAgICAgICAgPiAke059LXN1Ym1lbnUgPiAke059LXN1Ym1lbnUtdGl0bGVgXTp7aGVpZ2h0OlEsbGluZUhlaWdodDooMCx6LmJmKShRKX0sW2Ake059LWl0ZW0tZ3JvdXAtbGlzdCAke059LXN1Ym1lbnUtdGl0bGUsCisgICAgICAgICAgICAke059LXN1Ym1lbnUtdGl0bGVgXTp7cGFkZGluZ0lubGluZUVuZDpMZX19fTt2YXIgbmU9VT0+e2NvbnN0e2NvbXBvbmVudENsczpOLGljb25DbHM6USxpdGVtSGVpZ2h0OnVlLGNvbG9yVGV4dExpZ2h0U29saWQ6JCxkcm9wZG93bldpZHRoOl8sY29udHJvbEhlaWdodExHOnBlLG1vdGlvbkVhc2VPdXQ6cmUscGFkZGluZ1hMOmFlLGl0ZW1NYXJnaW5JbmxpbmU6d2UsZm9udFNpemVMRzpMZSxtb3Rpb25EdXJhdGlvbkZhc3Q6TWUsbW90aW9uRHVyYXRpb25TbG93OmJlLHBhZGRpbmdYUzokZSxib3hTaGFkb3dTZWNvbmRhcnk6a2UsY29sbGFwc2VkV2lkdGg6QWUsY29sbGFwc2VkSWNvblNpemU6dHR9PVUsbXQ9e2hlaWdodDp1ZSxsaW5lSGVpZ2h0OigwLHouYmYpKHVlKSxsaXN0U3R5bGVQb3NpdGlvbjoiaW5zaWRlIixsaXN0U3R5bGVUeXBlOiJkaXNjIn07cmV0dXJuW3tbTl06eyImLWlubGluZSwgJi12ZXJ0aWNhbCI6T2JqZWN0LmFzc2lnbih7W2AmJHtOfS1yb290YF06e2JveFNoYWRvdzoibm9uZSJ9fSxLKFUpKX0sW2Ake059LXN1Ym1lbnUtcG9wdXBgXTp7W2Ake059LXZlcnRpY2FsYF06T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LEsoVSkpLHtib3hTaGFkb3c6a2V9KX19LHtbYCR7Tn0tc3VibWVudS1wb3B1cCAke059LXZlcnRpY2FsJHtOfS1zdWJgXTp7bWluV2lkdGg6XyxtYXhIZWlnaHQ6YGNhbGMoMTAwdmggLSAkeygwLHouYmYpKFUuY2FsYyhwZSkubXVsKDIuNSkuZXF1YWwoKSl9KWAscGFkZGluZzoiMCIsb3ZlcmZsb3c6ImhpZGRlbiIsYm9yZGVySW5saW5lRW5kOjAsIiY6bm90KFtjbGFzcyo9Jy1hY3RpdmUnXSkiOntvdmVyZmxvd1g6ImhpZGRlbiIsb3ZlcmZsb3dZOiJhdXRvIn19fSx7W2Ake059LWlubGluZWBdOnt3aWR0aDoiMTAwJSIsW2AmJHtOfS1yb290YF06e1tgJHtOfS1pdGVtLCAke059LXN1Ym1lbnUtdGl0bGVgXTp7ZGlzcGxheToiZmxleCIsYWxpZ25JdGVtczoiY2VudGVyIix0cmFuc2l0aW9uOltgYm9yZGVyLWNvbG9yICR7YmV9YCxgYmFja2dyb3VuZCAke2JlfWAsYHBhZGRpbmcgJHtNZX0gJHtyZX1gXS5qb2luKCIsIiksW2A+ICR7Tn0tdGl0bGUtY29udGVudGBdOntmbGV4OiJhdXRvIixtaW5XaWR0aDowLG92ZXJmbG93OiJoaWRkZW4iLHRleHRPdmVyZmxvdzoiZWxsaXBzaXMifSwiPiAqIjp7ZmxleDoibm9uZSJ9fX0sW2Ake059LXN1YiR7Tn0taW5saW5lYF06e3BhZGRpbmc6MCxib3JkZXI6MCxib3JkZXJSYWRpdXM6MCxib3hTaGFkb3c6Im5vbmUiLFtgJiA+ICR7Tn0tc3VibWVudSA+ICR7Tn0tc3VibWVudS10aXRsZWBdOm10LFtgJiAke059LWl0ZW0tZ3JvdXAtdGl0bGVgXTp7cGFkZGluZ0lubGluZVN0YXJ0OmFlfX0sW2Ake059LWl0ZW1gXTptdH19LHtbYCR7Tn0taW5saW5lLWNvbGxhcHNlZGBdOnt3aWR0aDpBZSxbYCYke059LXJvb3RgXTp7W2Ake059LWl0ZW0sICR7Tn0tc3VibWVudSAke059LXN1Ym1lbnUtdGl0bGVgXTp7W2A+ICR7Tn0taW5saW5lLWNvbGxhcHNlZC1ub2ljb25gXTp7Zm9udFNpemU6TGUsdGV4dEFsaWduOiJjZW50ZXIifX19LFtgPiAke059LWl0ZW0sCisgICAgICAgICAgPiAke059LWl0ZW0tZ3JvdXAgPiAke059LWl0ZW0tZ3JvdXAtbGlzdCA+ICR7Tn0taXRlbSwKKyAgICAgICAgICA+ICR7Tn0taXRlbS1ncm91cCA+ICR7Tn0taXRlbS1ncm91cC1saXN0ID4gJHtOfS1zdWJtZW51ID4gJHtOfS1zdWJtZW51LXRpdGxlLAorICAgICAgICAgID4gJHtOfS1zdWJtZW51ID4gJHtOfS1zdWJtZW51LXRpdGxlYF06e2luc2V0SW5saW5lU3RhcnQ6MCxwYWRkaW5nSW5saW5lOmBjYWxjKDUwJSAtICR7KDAsei5iZikoVS5jYWxjKHR0KS5kaXYoMikuZXF1YWwoKSl9IC0gJHsoMCx6LmJmKSh3ZSl9KWAsdGV4dE92ZXJmbG93OiJjbGlwIixbYAorICAgICAgICAgICAgJHtOfS1zdWJtZW51LWFycm93LAorICAgICAgICAgICAgJHtOfS1zdWJtZW51LWV4cGFuZC1pY29uCisgICAgICAgICAgYF06e29wYWNpdHk6MH0sW2Ake059LWl0ZW0taWNvbiwgJHtRfWBdOnttYXJnaW46MCxmb250U2l6ZTp0dCxsaW5lSGVpZ2h0OigwLHouYmYpKHVlKSwiKyBzcGFuIjp7ZGlzcGxheToiaW5saW5lLWJsb2NrIixvcGFjaXR5OjB9fX0sW2Ake059LWl0ZW0taWNvbiwgJHtRfWBdOntkaXNwbGF5OiJpbmxpbmUtYmxvY2sifSwiJi10b29sdGlwIjp7cG9pbnRlckV2ZW50czoibm9uZSIsW2Ake059LWl0ZW0taWNvbiwgJHtRfWBdOntkaXNwbGF5OiJub25lIn0sImEsIGE6aG92ZXIiOntjb2xvcjokfX0sW2Ake059LWl0ZW0tZ3JvdXAtdGl0bGVgXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sWS52Uykse3BhZGRpbmdJbmxpbmU6JGV9KX19XX07Y29uc3Qgb2U9VT0+e2NvbnN0e2NvbXBvbmVudENsczpOLG1vdGlvbkR1cmF0aW9uU2xvdzpRLG1vdGlvbkR1cmF0aW9uTWlkOnVlLG1vdGlvbkVhc2VJbk91dDokLG1vdGlvbkVhc2VPdXQ6XyxpY29uQ2xzOnBlLGljb25TaXplOnJlLGljb25NYXJnaW5JbmxpbmVFbmQ6YWV9PVU7cmV0dXJue1tgJHtOfS1pdGVtLCAke059LXN1Ym1lbnUtdGl0bGVgXTp7cG9zaXRpb246InJlbGF0aXZlIixkaXNwbGF5OiJibG9jayIsbWFyZ2luOjAsd2hpdGVTcGFjZToibm93cmFwIixjdXJzb3I6InBvaW50ZXIiLHRyYW5zaXRpb246W2Bib3JkZXItY29sb3IgJHtRfWAsYGJhY2tncm91bmQgJHtRfWAsYHBhZGRpbmcgY2FsYygke1F9ICsgMC4xcykgJHskfWBdLmpvaW4oIiwiKSxbYCR7Tn0taXRlbS1pY29uLCAke3BlfWBdOnttaW5XaWR0aDpyZSxmb250U2l6ZTpyZSx0cmFuc2l0aW9uOltgZm9udC1zaXplICR7dWV9ICR7X31gLGBtYXJnaW4gJHtRfSAkeyR9YCxgY29sb3IgJHtRfWBdLmpvaW4oIiwiKSwiKyBzcGFuIjp7bWFyZ2luSW5saW5lU3RhcnQ6YWUsb3BhY2l0eToxLHRyYW5zaXRpb246W2BvcGFjaXR5ICR7UX0gJHskfWAsYG1hcmdpbiAke1F9YCxgY29sb3IgJHtRfWBdLmpvaW4oIiwiKX19LFtgJHtOfS1pdGVtLWljb25gXTpPYmplY3QuYXNzaWduKHt9LCgwLFkuUm8pKCkpLFtgJiR7Tn0taXRlbS1vbmx5LWNoaWxkYF06e1tgPiAke3BlfSwgPiAke059LWl0ZW0taWNvbmBdOnttYXJnaW5JbmxpbmVFbmQ6MH19fSxbYCR7Tn0taXRlbS1kaXNhYmxlZCwgJHtOfS1zdWJtZW51LWRpc2FibGVkYF06e2JhY2tncm91bmQ6Im5vbmUgIWltcG9ydGFudCIsY3Vyc29yOiJub3QtYWxsb3dlZCIsIiY6OmFmdGVyIjp7Ym9yZGVyQ29sb3I6InRyYW5zcGFyZW50ICFpbXBvcnRhbnQifSxhOntjb2xvcjoiaW5oZXJpdCAhaW1wb3J0YW50IixjdXJzb3I6Im5vdC1hbGxvd2VkIixwb2ludGVyRXZlbnRzOiJub25lIn0sW2A+ICR7Tn0tc3VibWVudS10aXRsZWBdOntjb2xvcjoiaW5oZXJpdCAhaW1wb3J0YW50IixjdXJzb3I6Im5vdC1hbGxvd2VkIn19fX0sZmU9VT0+e2NvbnN0e2NvbXBvbmVudENsczpOLG1vdGlvbkR1cmF0aW9uU2xvdzpRLG1vdGlvbkVhc2VJbk91dDp1ZSxib3JkZXJSYWRpdXM6JCxtZW51QXJyb3dTaXplOl8sbWVudUFycm93T2Zmc2V0OnBlfT1VO3JldHVybntbYCR7Tn0tc3VibWVudWBdOnsiJi1leHBhbmQtaWNvbiwgJi1hcnJvdyI6e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOiI1MCUiLGluc2V0SW5saW5lRW5kOlUubWFyZ2luLHdpZHRoOl8sY29sb3I6ImN1cnJlbnRjb2xvciIsdHJhbnNmb3JtOiJ0cmFuc2xhdGVZKC01MCUpIix0cmFuc2l0aW9uOmB0cmFuc2Zvcm0gJHtRfSAke3VlfSwgb3BhY2l0eSAke1F9YH0sIiYtYXJyb3ciOnsiJjo6YmVmb3JlLCAmOjphZnRlciI6e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsd2lkdGg6VS5jYWxjKF8pLm11bCguNikuZXF1YWwoKSxoZWlnaHQ6VS5jYWxjKF8pLm11bCguMTUpLmVxdWFsKCksYmFja2dyb3VuZENvbG9yOiJjdXJyZW50Y29sb3IiLGJvcmRlclJhZGl1czokLHRyYW5zaXRpb246W2BiYWNrZ3JvdW5kICR7UX0gJHt1ZX1gLGB0cmFuc2Zvcm0gJHtRfSAke3VlfWAsYHRvcCAke1F9ICR7dWV9YCxgY29sb3IgJHtRfSAke3VlfWBdLmpvaW4oIiwiKSxjb250ZW50OiciIid9LCImOjpiZWZvcmUiOnt0cmFuc2Zvcm06YHJvdGF0ZSg0NWRlZykgdHJhbnNsYXRlWSgkeygwLHouYmYpKFUuY2FsYyhwZSkubXVsKC0xKS5lcXVhbCgpKX0pYH0sIiY6OmFmdGVyIjp7dHJhbnNmb3JtOmByb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGVZKCR7KDAsei5iZikocGUpfSlgfX19fX0sRWU9VT0+e2NvbnN0e2FudENsczpOLGNvbXBvbmVudENsczpRLGZvbnRTaXplOnVlLG1vdGlvbkR1cmF0aW9uU2xvdzokLG1vdGlvbkR1cmF0aW9uTWlkOl8sbW90aW9uRWFzZUluT3V0OnBlLHBhZGRpbmdYUzpyZSxwYWRkaW5nOmFlLGNvbG9yU3BsaXQ6d2UsbGluZVdpZHRoOkxlLHpJbmRleFBvcHVwOk1lLGJvcmRlclJhZGl1c0xHOmJlLHN1Yk1lbnVJdGVtQm9yZGVyUmFkaXVzOiRlLG1lbnVBcnJvd1NpemU6a2UsbWVudUFycm93T2Zmc2V0OkFlLGxpbmVUeXBlOnR0LGdyb3VwVGl0bGVMaW5lSGVpZ2h0Om10LGdyb3VwVGl0bGVGb250U2l6ZTp1dH09VTtyZXR1cm5beyIiOntbUV06T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCgwLFkuZEYpKCkpLHsiJi1oaWRkZW4iOntkaXNwbGF5OiJub25lIn19KX0sW2Ake1F9LXN1Ym1lbnUtaGlkZGVuYF06e2Rpc3BsYXk6Im5vbmUifX0se1tRXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCgwLFkuV2YpKFUpKSwoMCxZLmRGKSgpKSx7bWFyZ2luQm90dG9tOjAscGFkZGluZ0lubGluZVN0YXJ0OjAsZm9udFNpemU6dWUsbGluZUhlaWdodDowLGxpc3RTdHlsZToibm9uZSIsb3V0bGluZToibm9uZSIsdHJhbnNpdGlvbjpgd2lkdGggJHskfSBjdWJpYy1iZXppZXIoMC4yLCAwLCAwLCAxKSAwc2AsInVsLCBvbCI6e21hcmdpbjowLHBhZGRpbmc6MCxsaXN0U3R5bGU6Im5vbmUifSwiJi1vdmVyZmxvdyI6e2Rpc3BsYXk6ImZsZXgiLFtgJHtRfS1pdGVtYF06e2ZsZXg6Im5vbmUifX0sW2Ake1F9LWl0ZW0sICR7UX0tc3VibWVudSwgJHtRfS1zdWJtZW51LXRpdGxlYF06e2JvcmRlclJhZGl1czpVLml0ZW1Cb3JkZXJSYWRpdXN9LFtgJHtRfS1pdGVtLWdyb3VwLXRpdGxlYF06e3BhZGRpbmc6YCR7KDAsei5iZikocmUpfSAkeygwLHouYmYpKGFlKX1gLGZvbnRTaXplOnV0LGxpbmVIZWlnaHQ6bXQsdHJhbnNpdGlvbjpgYWxsICR7JH1gfSxbYCYtaG9yaXpvbnRhbCAke1F9LXN1Ym1lbnVgXTp7dHJhbnNpdGlvbjpbYGJvcmRlci1jb2xvciAkeyR9ICR7cGV9YCxgYmFja2dyb3VuZCAkeyR9ICR7cGV9YF0uam9pbigiLCIpfSxbYCR7UX0tc3VibWVudSwgJHtRfS1zdWJtZW51LWlubGluZWBdOnt0cmFuc2l0aW9uOltgYm9yZGVyLWNvbG9yICR7JH0gJHtwZX1gLGBiYWNrZ3JvdW5kICR7JH0gJHtwZX1gLGBwYWRkaW5nICR7X30gJHtwZX1gXS5qb2luKCIsIil9LFtgJHtRfS1zdWJtZW51ICR7UX0tc3ViYF06e2N1cnNvcjoiaW5pdGlhbCIsdHJhbnNpdGlvbjpbYGJhY2tncm91bmQgJHskfSAke3BlfWAsYHBhZGRpbmcgJHskfSAke3BlfWBdLmpvaW4oIiwiKX0sW2Ake1F9LXRpdGxlLWNvbnRlbnRgXTp7dHJhbnNpdGlvbjpgY29sb3IgJHskfWAsIiYtd2l0aC1leHRyYSI6e2Rpc3BsYXk6ImlubGluZS1mbGV4IixhbGlnbkl0ZW1zOiJjZW50ZXIiLHdpZHRoOiIxMDAlIn0sW2A+ICR7Tn0tdHlwb2dyYXBoeS1lbGxpcHNpcy1zaW5nbGUtbGluZWBdOntkaXNwbGF5OiJpbmxpbmUiLHZlcnRpY2FsQWxpZ246InVuc2V0In0sW2Ake1F9LWl0ZW0tZXh0cmFgXTp7bWFyZ2luSW5saW5lU3RhcnQ6ImF1dG8iLHBhZGRpbmdJbmxpbmVTdGFydDpVLnBhZGRpbmd9fSxbYCR7UX0taXRlbSBhYF06eyImOjpiZWZvcmUiOntwb3NpdGlvbjoiYWJzb2x1dGUiLGluc2V0OjAsYmFja2dyb3VuZENvbG9yOiJ0cmFuc3BhcmVudCIsY29udGVudDonIiInfX0sW2Ake1F9LWl0ZW0tZGl2aWRlcmBdOntvdmVyZmxvdzoiaGlkZGVuIixsaW5lSGVpZ2h0OjAsYm9yZGVyQ29sb3I6d2UsYm9yZGVyU3R5bGU6dHQsYm9yZGVyV2lkdGg6MCxib3JkZXJUb3BXaWR0aDpMZSxtYXJnaW5CbG9jazpMZSxwYWRkaW5nOjAsIiYtZGFzaGVkIjp7Ym9yZGVyU3R5bGU6ImRhc2hlZCJ9fX0pLG9lKFUpKSx7W2Ake1F9LWl0ZW0tZ3JvdXBgXTp7W2Ake1F9LWl0ZW0tZ3JvdXAtbGlzdGBdOnttYXJnaW46MCxwYWRkaW5nOjAsW2Ake1F9LWl0ZW0sICR7UX0tc3VibWVudS10aXRsZWBdOntwYWRkaW5nSW5saW5lOmAkeygwLHouYmYpKFUuY2FsYyh1ZSkubXVsKDIpLmVxdWFsKCkpfSAkeygwLHouYmYpKGFlKX1gfX19LCImLXN1Ym1lbnUiOnsiJi1wb3B1cCI6e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsekluZGV4Ok1lLGJvcmRlclJhZGl1czpiZSxib3hTaGFkb3c6Im5vbmUiLHRyYW5zZm9ybU9yaWdpbjoiMCAwIixbYCYke1F9LXN1Ym1lbnVgXTp7YmFja2dyb3VuZDoidHJhbnNwYXJlbnQifSwiJjo6YmVmb3JlIjp7cG9zaXRpb246ImFic29sdXRlIixpbnNldDowLHpJbmRleDotMSx3aWR0aDoiMTAwJSIsaGVpZ2h0OiIxMDAlIixvcGFjaXR5OjAsY29udGVudDonIiInfSxbYD4gJHtRfWBdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHtib3JkZXJSYWRpdXM6YmV9LG9lKFUpKSxmZShVKSkse1tgJHtRfS1pdGVtLCAke1F9LXN1Ym1lbnUgPiAke1F9LXN1Ym1lbnUtdGl0bGVgXTp7Ym9yZGVyUmFkaXVzOiRlfSxbYCR7UX0tc3VibWVudS10aXRsZTo6YWZ0ZXJgXTp7dHJhbnNpdGlvbjpgdHJhbnNmb3JtICR7JH0gJHtwZX1gfX0pfSwiXG4gICAgICAgICAgJi1wbGFjZW1lbnQtbGVmdFRvcCxcbiAgICAgICAgICAmLXBsYWNlbWVudC1ib3R0b21SaWdodCxcbiAgICAgICAgICAiOnt0cmFuc2Zvcm1PcmlnaW46IjEwMCUgMCJ9LCJcbiAgICAgICAgICAmLXBsYWNlbWVudC1sZWZ0Qm90dG9tLFxuICAgICAgICAgICYtcGxhY2VtZW50LXRvcFJpZ2h0LFxuICAgICAgICAgICI6e3RyYW5zZm9ybU9yaWdpbjoiMTAwJSAxMDAlIn0sIlxuICAgICAgICAgICYtcGxhY2VtZW50LXJpZ2h0Qm90dG9tLFxuICAgICAgICAgICYtcGxhY2VtZW50LXRvcExlZnQsXG4gICAgICAgICAgIjp7dHJhbnNmb3JtT3JpZ2luOiIwIDEwMCUifSwiXG4gICAgICAgICAgJi1wbGFjZW1lbnQtYm90dG9tTGVmdCxcbiAgICAgICAgICAmLXBsYWNlbWVudC1yaWdodFRvcCxcbiAgICAgICAgICAiOnt0cmFuc2Zvcm1PcmlnaW46IjAgMCJ9LCJcbiAgICAgICAgICAmLXBsYWNlbWVudC1sZWZ0VG9wLFxuICAgICAgICAgICYtcGxhY2VtZW50LWxlZnRCb3R0b21cbiAgICAgICAgICAiOntwYWRkaW5nSW5saW5lRW5kOlUucGFkZGluZ1hTfSwiXG4gICAgICAgICAgJi1wbGFjZW1lbnQtcmlnaHRUb3AsXG4gICAgICAgICAgJi1wbGFjZW1lbnQtcmlnaHRCb3R0b21cbiAgICAgICAgICAiOntwYWRkaW5nSW5saW5lU3RhcnQ6VS5wYWRkaW5nWFN9LCJcbiAgICAgICAgICAmLXBsYWNlbWVudC10b3BSaWdodCxcbiAgICAgICAgICAmLXBsYWNlbWVudC10b3BMZWZ0XG4gICAgICAgICAgIjp7cGFkZGluZ0JvdHRvbTpVLnBhZGRpbmdYU30sIlxuICAgICAgICAgICYtcGxhY2VtZW50LWJvdHRvbVJpZ2h0LFxuICAgICAgICAgICYtcGxhY2VtZW50LWJvdHRvbUxlZnRcbiAgICAgICAgICAiOntwYWRkaW5nVG9wOlUucGFkZGluZ1hTfX19KSxmZShVKSkse1tgJi1pbmxpbmUtY29sbGFwc2VkICR7UX0tc3VibWVudS1hcnJvdywKKyAgICAgICAgJi1pbmxpbmUgJHtRfS1zdWJtZW51LWFycm93YF06eyImOjpiZWZvcmUiOnt0cmFuc2Zvcm06YHJvdGF0ZSgtNDVkZWcpIHRyYW5zbGF0ZVgoJHsoMCx6LmJmKShBZSl9KWB9LCImOjphZnRlciI6e3RyYW5zZm9ybTpgcm90YXRlKDQ1ZGVnKSB0cmFuc2xhdGVYKCR7KDAsei5iZikoVS5jYWxjKEFlKS5tdWwoLTEpLmVxdWFsKCkpfSlgfX0sW2Ake1F9LXN1Ym1lbnUtb3BlbiR7UX0tc3VibWVudS1pbmxpbmUgPiAke1F9LXN1Ym1lbnUtdGl0bGUgPiAke1F9LXN1Ym1lbnUtYXJyb3dgXTp7dHJhbnNmb3JtOmB0cmFuc2xhdGVZKCR7KDAsei5iZikoVS5jYWxjKGtlKS5tdWwoLjIpLm11bCgtMSkuZXF1YWwoKSl9KWAsIiY6OmFmdGVyIjp7dHJhbnNmb3JtOmByb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGVYKCR7KDAsei5iZikoVS5jYWxjKEFlKS5tdWwoLTEpLmVxdWFsKCkpfSlgfSwiJjo6YmVmb3JlIjp7dHJhbnNmb3JtOmByb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZVgoJHsoMCx6LmJmKShBZSl9KWB9fX0pfSx7W2Ake059LWxheW91dC1oZWFkZXJgXTp7W1FdOntsaW5lSGVpZ2h0OiJpbmhlcml0In19fV19LFJlPVU9Pnt2YXIgTixRLHVlO2NvbnN0e2NvbG9yUHJpbWFyeTokLGNvbG9yRXJyb3I6Xyxjb2xvclRleHREaXNhYmxlZDpwZSxjb2xvckVycm9yQmc6cmUsY29sb3JUZXh0OmFlLGNvbG9yVGV4dERlc2NyaXB0aW9uOndlLGNvbG9yQmdDb250YWluZXI6TGUsY29sb3JGaWxsQWx0ZXI6TWUsY29sb3JGaWxsQ29udGVudDpiZSxsaW5lV2lkdGg6JGUsbGluZVdpZHRoQm9sZDprZSxjb250cm9sSXRlbUJnQWN0aXZlOkFlLGNvbG9yQmdUZXh0SG92ZXI6dHQsY29udHJvbEhlaWdodExHOm10LGxpbmVIZWlnaHQ6dXQsY29sb3JCZ0VsZXZhdGVkOkRlLG1hcmdpblhYUzpOZSxwYWRkaW5nOlhlLGZvbnRTaXplOkplLGNvbnRyb2xIZWlnaHRTTTpndCxmb250U2l6ZUxHOmRlLGNvbG9yVGV4dExpZ2h0U29saWQ6V2UsY29sb3JFcnJvckhvdmVyOlN0fT1VLGN0PShOPVUuYWN0aXZlQmFyV2lkdGgpIT09bnVsbCYmTiE9PXZvaWQgMD9OOjAsT2U9KFE9VS5hY3RpdmVCYXJCb3JkZXJXaWR0aCkhPT1udWxsJiZRIT09dm9pZCAwP1E6JGUsR2U9KHVlPVUuaXRlbU1hcmdpbklubGluZSkhPT1udWxsJiZ1ZSE9PXZvaWQgMD91ZTpVLm1hcmdpblhYUyxodD1uZXcgRy50KFdlKS5zZXRBKC42NSkudG9SZ2JTdHJpbmcoKTtyZXR1cm57ZHJvcGRvd25XaWR0aDoxNjAsekluZGV4UG9wdXA6VS56SW5kZXhQb3B1cEJhc2UrNTAscmFkaXVzSXRlbTpVLmJvcmRlclJhZGl1c0xHLGl0ZW1Cb3JkZXJSYWRpdXM6VS5ib3JkZXJSYWRpdXNMRyxyYWRpdXNTdWJNZW51SXRlbTpVLmJvcmRlclJhZGl1c1NNLHN1Yk1lbnVJdGVtQm9yZGVyUmFkaXVzOlUuYm9yZGVyUmFkaXVzU00sY29sb3JJdGVtVGV4dDphZSxpdGVtQ29sb3I6YWUsY29sb3JJdGVtVGV4dEhvdmVyOmFlLGl0ZW1Ib3ZlckNvbG9yOmFlLGNvbG9ySXRlbVRleHRIb3Zlckhvcml6b250YWw6JCxob3Jpem9udGFsSXRlbUhvdmVyQ29sb3I6JCxjb2xvckdyb3VwVGl0bGU6d2UsZ3JvdXBUaXRsZUNvbG9yOndlLGNvbG9ySXRlbVRleHRTZWxlY3RlZDokLGl0ZW1TZWxlY3RlZENvbG9yOiQsc3ViTWVudUl0ZW1TZWxlY3RlZENvbG9yOiQsY29sb3JJdGVtVGV4dFNlbGVjdGVkSG9yaXpvbnRhbDokLGhvcml6b250YWxJdGVtU2VsZWN0ZWRDb2xvcjokLGNvbG9ySXRlbUJnOkxlLGl0ZW1CZzpMZSxjb2xvckl0ZW1CZ0hvdmVyOnR0LGl0ZW1Ib3ZlckJnOnR0LGNvbG9ySXRlbUJnQWN0aXZlOmJlLGl0ZW1BY3RpdmVCZzpBZSxjb2xvclN1Ykl0ZW1CZzpNZSxzdWJNZW51SXRlbUJnOk1lLGNvbG9ySXRlbUJnU2VsZWN0ZWQ6QWUsaXRlbVNlbGVjdGVkQmc6QWUsY29sb3JJdGVtQmdTZWxlY3RlZEhvcml6b250YWw6InRyYW5zcGFyZW50Iixob3Jpem9udGFsSXRlbVNlbGVjdGVkQmc6InRyYW5zcGFyZW50Iixjb2xvckFjdGl2ZUJhcldpZHRoOjAsYWN0aXZlQmFyV2lkdGg6Y3QsY29sb3JBY3RpdmVCYXJIZWlnaHQ6a2UsYWN0aXZlQmFySGVpZ2h0OmtlLGNvbG9yQWN0aXZlQmFyQm9yZGVyU2l6ZTokZSxhY3RpdmVCYXJCb3JkZXJXaWR0aDpPZSxjb2xvckl0ZW1UZXh0RGlzYWJsZWQ6cGUsaXRlbURpc2FibGVkQ29sb3I6cGUsY29sb3JEYW5nZXJJdGVtVGV4dDpfLGRhbmdlckl0ZW1Db2xvcjpfLGNvbG9yRGFuZ2VySXRlbVRleHRIb3ZlcjpfLGRhbmdlckl0ZW1Ib3ZlckNvbG9yOl8sY29sb3JEYW5nZXJJdGVtVGV4dFNlbGVjdGVkOl8sZGFuZ2VySXRlbVNlbGVjdGVkQ29sb3I6Xyxjb2xvckRhbmdlckl0ZW1CZ0FjdGl2ZTpyZSxkYW5nZXJJdGVtQWN0aXZlQmc6cmUsY29sb3JEYW5nZXJJdGVtQmdTZWxlY3RlZDpyZSxkYW5nZXJJdGVtU2VsZWN0ZWRCZzpyZSxpdGVtTWFyZ2luSW5saW5lOkdlLGhvcml6b250YWxJdGVtQm9yZGVyUmFkaXVzOjAsaG9yaXpvbnRhbEl0ZW1Ib3ZlckJnOiJ0cmFuc3BhcmVudCIsaXRlbUhlaWdodDptdCxncm91cFRpdGxlTGluZUhlaWdodDp1dCxjb2xsYXBzZWRXaWR0aDptdCoyLHBvcHVwQmc6RGUsaXRlbU1hcmdpbkJsb2NrOk5lLGl0ZW1QYWRkaW5nSW5saW5lOlhlLGhvcml6b250YWxMaW5lSGVpZ2h0OmAke210KjEuMTV9cHhgLGljb25TaXplOkplLGljb25NYXJnaW5JbmxpbmVFbmQ6Z3QtSmUsY29sbGFwc2VkSWNvblNpemU6ZGUsZ3JvdXBUaXRsZUZvbnRTaXplOkplLGRhcmtJdGVtRGlzYWJsZWRDb2xvcjpuZXcgRy50KFdlKS5zZXRBKC4yNSkudG9SZ2JTdHJpbmcoKSxkYXJrSXRlbUNvbG9yOmh0LGRhcmtEYW5nZXJJdGVtQ29sb3I6XyxkYXJrSXRlbUJnOiIjMDAxNTI5IixkYXJrUG9wdXBCZzoiIzAwMTUyOSIsZGFya1N1Yk1lbnVJdGVtQmc6IiMwMDBjMTciLGRhcmtJdGVtU2VsZWN0ZWRDb2xvcjpXZSxkYXJrSXRlbVNlbGVjdGVkQmc6JCxkYXJrRGFuZ2VySXRlbVNlbGVjdGVkQmc6XyxkYXJrSXRlbUhvdmVyQmc6InRyYW5zcGFyZW50IixkYXJrR3JvdXBUaXRsZUNvbG9yOmh0LGRhcmtJdGVtSG92ZXJDb2xvcjpXZSxkYXJrRGFuZ2VySXRlbUhvdmVyQ29sb3I6U3QsZGFya0Rhbmdlckl0ZW1TZWxlY3RlZENvbG9yOldlLGRhcmtEYW5nZXJJdGVtQWN0aXZlQmc6XyxpdGVtV2lkdGg6Y3Q/YGNhbGMoMTAwJSArICR7T2V9cHgpYDpgY2FsYygxMDAlIC0gJHtHZSoyfXB4KWB9fTt2YXIgQmU9ZnVuY3Rpb24oVSl7bGV0IE49YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOlUsUT1hcmd1bWVudHMubGVuZ3RoPjImJmFyZ3VtZW50c1syXSE9PXZvaWQgMD9hcmd1bWVudHNbMl06ITA7cmV0dXJuKDAsdGUuSSQpKCJNZW51IiwkPT57Y29uc3R7Y29sb3JCZ0VsZXZhdGVkOl8sY29udHJvbEhlaWdodExHOnBlLGZvbnRTaXplOnJlLGRhcmtJdGVtQ29sb3I6YWUsZGFya0Rhbmdlckl0ZW1Db2xvcjp3ZSxkYXJrSXRlbUJnOkxlLGRhcmtTdWJNZW51SXRlbUJnOk1lLGRhcmtJdGVtU2VsZWN0ZWRDb2xvcjpiZSxkYXJrSXRlbVNlbGVjdGVkQmc6JGUsZGFya0Rhbmdlckl0ZW1TZWxlY3RlZEJnOmtlLGRhcmtJdGVtSG92ZXJCZzpBZSxkYXJrR3JvdXBUaXRsZUNvbG9yOnR0LGRhcmtJdGVtSG92ZXJDb2xvcjptdCxkYXJrSXRlbURpc2FibGVkQ29sb3I6dXQsZGFya0Rhbmdlckl0ZW1Ib3ZlckNvbG9yOkRlLGRhcmtEYW5nZXJJdGVtU2VsZWN0ZWRDb2xvcjpOZSxkYXJrRGFuZ2VySXRlbUFjdGl2ZUJnOlhlLHBvcHVwQmc6SmUsZGFya1BvcHVwQmc6Z3R9PSQsZGU9JC5jYWxjKHJlKS5kaXYoNykubXVsKDUpLmVxdWFsKCksV2U9KDAsbGUuSVgpKCQse21lbnVBcnJvd1NpemU6ZGUsbWVudUhvcml6b250YWxIZWlnaHQ6JC5jYWxjKHBlKS5tdWwoMS4xNSkuZXF1YWwoKSxtZW51QXJyb3dPZmZzZXQ6JC5jYWxjKGRlKS5tdWwoLjI1KS5lcXVhbCgpLG1lbnVTdWJNZW51Qmc6XyxjYWxjOiQuY2FsYyxwb3B1cEJnOkplfSksU3Q9KDAsbGUuSVgpKFdlLHtpdGVtQ29sb3I6YWUsaXRlbUhvdmVyQ29sb3I6bXQsZ3JvdXBUaXRsZUNvbG9yOnR0LGl0ZW1TZWxlY3RlZENvbG9yOmJlLHN1Yk1lbnVJdGVtU2VsZWN0ZWRDb2xvcjpiZSxpdGVtQmc6TGUscG9wdXBCZzpndCxzdWJNZW51SXRlbUJnOk1lLGl0ZW1BY3RpdmVCZzoidHJhbnNwYXJlbnQiLGl0ZW1TZWxlY3RlZEJnOiRlLGFjdGl2ZUJhckhlaWdodDowLGFjdGl2ZUJhckJvcmRlcldpZHRoOjAsaXRlbUhvdmVyQmc6QWUsaXRlbURpc2FibGVkQ29sb3I6dXQsZGFuZ2VySXRlbUNvbG9yOndlLGRhbmdlckl0ZW1Ib3ZlckNvbG9yOkRlLGRhbmdlckl0ZW1TZWxlY3RlZENvbG9yOk5lLGRhbmdlckl0ZW1BY3RpdmVCZzpYZSxkYW5nZXJJdGVtU2VsZWN0ZWRCZzprZSxtZW51U3ViTWVudUJnOk1lLGhvcml6b250YWxJdGVtU2VsZWN0ZWRDb2xvcjpiZSxob3Jpem9udGFsSXRlbVNlbGVjdGVkQmc6JGV9KTtyZXR1cm5bRWUoV2UpLFcoV2UpLG5lKFdlKSxQKFdlLCJsaWdodCIpLFAoU3QsImRhcmsiKSxEKFdlKSwoMCxlZS5aKShXZSksKDAsSi5vTikoV2UsInNsaWRlLXVwIiksKDAsSi5vTikoV2UsInNsaWRlLWRvd24iKSwoMCxtZS5feSkoV2UsInpvb20tYmlnIildfSxSZSx7ZGVwcmVjYXRlZFRva2VuczpbWyJjb2xvckdyb3VwVGl0bGUiLCJncm91cFRpdGxlQ29sb3IiXSxbInJhZGl1c0l0ZW0iLCJpdGVtQm9yZGVyUmFkaXVzIl0sWyJyYWRpdXNTdWJNZW51SXRlbSIsInN1Yk1lbnVJdGVtQm9yZGVyUmFkaXVzIl0sWyJjb2xvckl0ZW1UZXh0IiwiaXRlbUNvbG9yIl0sWyJjb2xvckl0ZW1UZXh0SG92ZXIiLCJpdGVtSG92ZXJDb2xvciJdLFsiY29sb3JJdGVtVGV4dEhvdmVySG9yaXpvbnRhbCIsImhvcml6b250YWxJdGVtSG92ZXJDb2xvciJdLFsiY29sb3JJdGVtVGV4dFNlbGVjdGVkIiwiaXRlbVNlbGVjdGVkQ29sb3IiXSxbImNvbG9ySXRlbVRleHRTZWxlY3RlZEhvcml6b250YWwiLCJob3Jpem9udGFsSXRlbVNlbGVjdGVkQ29sb3IiXSxbImNvbG9ySXRlbVRleHREaXNhYmxlZCIsIml0ZW1EaXNhYmxlZENvbG9yIl0sWyJjb2xvckRhbmdlckl0ZW1UZXh0IiwiZGFuZ2VySXRlbUNvbG9yIl0sWyJjb2xvckRhbmdlckl0ZW1UZXh0SG92ZXIiLCJkYW5nZXJJdGVtSG92ZXJDb2xvciJdLFsiY29sb3JEYW5nZXJJdGVtVGV4dFNlbGVjdGVkIiwiZGFuZ2VySXRlbVNlbGVjdGVkQ29sb3IiXSxbImNvbG9yRGFuZ2VySXRlbUJnQWN0aXZlIiwiZGFuZ2VySXRlbUFjdGl2ZUJnIl0sWyJjb2xvckRhbmdlckl0ZW1CZ1NlbGVjdGVkIiwiZGFuZ2VySXRlbVNlbGVjdGVkQmciXSxbImNvbG9ySXRlbUJnIiwiaXRlbUJnIl0sWyJjb2xvckl0ZW1CZ0hvdmVyIiwiaXRlbUhvdmVyQmciXSxbImNvbG9yU3ViSXRlbUJnIiwic3ViTWVudUl0ZW1CZyJdLFsiY29sb3JJdGVtQmdBY3RpdmUiLCJpdGVtQWN0aXZlQmciXSxbImNvbG9ySXRlbUJnU2VsZWN0ZWRIb3Jpem9udGFsIiwiaG9yaXpvbnRhbEl0ZW1TZWxlY3RlZEJnIl0sWyJjb2xvckFjdGl2ZUJhcldpZHRoIiwiYWN0aXZlQmFyV2lkdGgiXSxbImNvbG9yQWN0aXZlQmFySGVpZ2h0IiwiYWN0aXZlQmFySGVpZ2h0Il0sWyJjb2xvckFjdGl2ZUJhckJvcmRlclNpemUiLCJhY3RpdmVCYXJCb3JkZXJXaWR0aCJdLFsiY29sb3JJdGVtQmdTZWxlY3RlZCIsIml0ZW1TZWxlY3RlZEJnIl1dLGluamVjdFN0eWxlOlEsdW5pdGxlc3M6e2dyb3VwVGl0bGVMaW5lSGVpZ2h0OiEwfX0pKFUsTil9LFllPWUoODcyNjMpLHFlPVU9Pnt2YXIgTjtjb25zdHtwb3B1cENsYXNzTmFtZTpRLGljb246dWUsdGl0bGU6JCx0aGVtZTpffT1VLHBlPXIudXNlQ29udGV4dCh3KSx7cHJlZml4Q2xzOnJlLGlubGluZUNvbGxhcHNlZDphZSx0aGVtZTp3ZX09cGUsTGU9KDAsbi5YbCkoKTtsZXQgTWU7aWYoIXVlKU1lPWFlJiYhTGUubGVuZ3RoJiYkJiZ0eXBlb2YgJD09InN0cmluZyI/ci5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YCR7cmV9LWlubGluZS1jb2xsYXBzZWQtbm9pY29uYH0sJC5jaGFyQXQoMCkpOnIuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpgJHtyZX0tdGl0bGUtY29udGVudGB9LCQpO2Vsc2V7Y29uc3Qga2U9ci5pc1ZhbGlkRWxlbWVudCgkKSYmJC50eXBlPT09InNwYW4iO01lPXIuY3JlYXRlRWxlbWVudChyLkZyYWdtZW50LG51bGwsKDAsZC5UbSkodWUse2NsYXNzTmFtZTphKCkoci5pc1ZhbGlkRWxlbWVudCh1ZSk/KE49dWUucHJvcHMpPT09bnVsbHx8Tj09PXZvaWQgMD92b2lkIDA6Ti5jbGFzc05hbWU6IiIsYCR7cmV9LWl0ZW0taWNvbmApfSksa2U/JDpyLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6YCR7cmV9LXRpdGxlLWNvbnRlbnRgfSwkKSl9Y29uc3QgYmU9ci51c2VNZW1vKCgpPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30scGUpLHtmaXJzdExldmVsOiExfSksW3BlXSksWyRlXT0oMCxZZS5DbikoIk1lbnUiKTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KHcuUHJvdmlkZXIse3ZhbHVlOmJlfSxyLmNyZWF0ZUVsZW1lbnQobi5XZCxPYmplY3QuYXNzaWduKHt9LCgwLGMuWikoVSxbImljb24iXSkse3RpdGxlOk1lLHBvcHVwQ2xhc3NOYW1lOmEoKShyZSxRLGAke3JlfS0ke198fHdlfWApLHBvcHVwU3R5bGU6T2JqZWN0LmFzc2lnbih7ekluZGV4OiRlfSxVLnBvcHVwU3R5bGUpfSkpKX0sX2U9ZnVuY3Rpb24oVSxOKXt2YXIgUT17fTtmb3IodmFyIHVlIGluIFUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKFUsdWUpJiZOLmluZGV4T2YodWUpPDAmJihRW3VlXT1VW3VlXSk7aWYoVSE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciAkPTAsdWU9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhVKTskPHVlLmxlbmd0aDskKyspTi5pbmRleE9mKHVlWyRdKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoVSx1ZVskXSkmJihRW3VlWyRdXT1VW3VlWyRdXSk7cmV0dXJuIFF9O2Z1bmN0aW9uIEZlKFUpe3JldHVybiBVPT09bnVsbHx8VT09PSExfWNvbnN0IFNlPXtpdGVtOkksc3VibWVudTpxZSxkaXZpZGVyOk99O3ZhciBrPSgwLHIuZm9yd2FyZFJlZikoKFUsTik9Pnt2YXIgUTtjb25zdCB1ZT1yLnVzZUNvbnRleHQoUi5aKSwkPXVlfHx7fSx7Z2V0UHJlZml4Q2xzOl8sZ2V0UG9wdXBDb250YWluZXI6cGUsZGlyZWN0aW9uOnJlLG1lbnU6YWV9PXIudXNlQ29udGV4dChtLkVfKSx3ZT1fKCkse3ByZWZpeENsczpMZSxjbGFzc05hbWU6TWUsc3R5bGU6YmUsdGhlbWU6JGU9ImxpZ2h0IixleHBhbmRJY29uOmtlLF9pbnRlcm5hbERpc2FibGVNZW51SXRlbVRpdGxlVG9vbHRpcDpBZSxpbmxpbmVDb2xsYXBzZWQ6dHQsc2lkZXJDb2xsYXBzZWQ6bXQscm9vdENsYXNzTmFtZTp1dCxtb2RlOkRlLHNlbGVjdGFibGU6TmUsb25DbGljazpYZSxvdmVyZmxvd2VkSW5kaWNhdG9yUG9wdXBDbGFzc05hbWU6SmV9PVUsZ3Q9X2UoVSxbInByZWZpeENscyIsImNsYXNzTmFtZSIsInN0eWxlIiwidGhlbWUiLCJleHBhbmRJY29uIiwiX2ludGVybmFsRGlzYWJsZU1lbnVJdGVtVGl0bGVUb29sdGlwIiwiaW5saW5lQ29sbGFwc2VkIiwic2lkZXJDb2xsYXBzZWQiLCJyb290Q2xhc3NOYW1lIiwibW9kZSIsInNlbGVjdGFibGUiLCJvbkNsaWNrIiwib3ZlcmZsb3dlZEluZGljYXRvclBvcHVwQ2xhc3NOYW1lIl0pLGRlPSgwLGMuWikoZ3QsWyJjb2xsYXBzZWRXaWR0aCJdKTsoUT0kLnZhbGlkYXRvcik9PT1udWxsfHxRPT09dm9pZCAwfHxRLmNhbGwoJCx7bW9kZTpEZX0pO2NvbnN0IFdlPSgwLHUuWikoZnVuY3Rpb24oKXt2YXIgZm47WGU9PW51bGx8fFhlLmFwcGx5KHZvaWQgMCxhcmd1bWVudHMpLChmbj0kLm9uQ2xpY2spPT09bnVsbHx8Zm49PT12b2lkIDB8fGZuLmNhbGwoJCl9KSxTdD0kLm1vZGV8fERlLGN0PU5lIT1udWxsP05lOiQuc2VsZWN0YWJsZSxPZT10dCE9bnVsbD90dDptdCxHZT17aG9yaXpvbnRhbDp7bW90aW9uTmFtZTpgJHt3ZX0tc2xpZGUtdXBgfSxpbmxpbmU6KDAsaC5aKSh3ZSksb3RoZXI6e21vdGlvbk5hbWU6YCR7d2V9LXpvb20tYmlnYH19LGh0PV8oIm1lbnUiLExlfHwkLnByZWZpeENscyksemU9KDAsQy5aKShodCksW1FlLHB0LGJ0XT1CZShodCx6ZSwhdWUpLEl0PWEoKShgJHtodH0tJHskZX1gLGFlPT1udWxsP3ZvaWQgMDphZS5jbGFzc05hbWUsTWUpLFR0PXIudXNlTWVtbygoKT0+e3ZhciBmbixubjtpZih0eXBlb2Yga2U9PSJmdW5jdGlvbiJ8fEZlKGtlKSlyZXR1cm4ga2V8fG51bGw7aWYodHlwZW9mICQuZXhwYW5kSWNvbj09ImZ1bmN0aW9uInx8RmUoJC5leHBhbmRJY29uKSlyZXR1cm4gJC5leHBhbmRJY29ufHxudWxsO2lmKHR5cGVvZihhZT09bnVsbD92b2lkIDA6YWUuZXhwYW5kSWNvbik9PSJmdW5jdGlvbiJ8fEZlKGFlPT1udWxsP3ZvaWQgMDphZS5leHBhbmRJY29uKSlyZXR1cm4oYWU9PW51bGw/dm9pZCAwOmFlLmV4cGFuZEljb24pfHxudWxsO2NvbnN0IG9uPShmbj1rZSE9bnVsbD9rZTokPT1udWxsP3ZvaWQgMDokLmV4cGFuZEljb24pIT09bnVsbCYmZm4hPT12b2lkIDA/Zm46YWU9PW51bGw/dm9pZCAwOmFlLmV4cGFuZEljb247cmV0dXJuKDAsZC5UbSkob24se2NsYXNzTmFtZTphKCkoYCR7aHR9LXN1Ym1lbnUtZXhwYW5kLWljb25gLHIuaXNWYWxpZEVsZW1lbnQob24pPyhubj1vbi5wcm9wcyk9PT1udWxsfHxubj09PXZvaWQgMD92b2lkIDA6bm4uY2xhc3NOYW1lOnZvaWQgMCl9KX0sW2tlLCQ9PW51bGw/dm9pZCAwOiQuZXhwYW5kSWNvbixhZT09bnVsbD92b2lkIDA6YWUuZXhwYW5kSWNvbixodF0pLFh0PXIudXNlTWVtbygoKT0+KHtwcmVmaXhDbHM6aHQsaW5saW5lQ29sbGFwc2VkOk9lfHwhMSxkaXJlY3Rpb246cmUsZmlyc3RMZXZlbDohMCx0aGVtZTokZSxtb2RlOlN0LGRpc2FibGVNZW51SXRlbVRpdGxlVG9vbHRpcDpBZX0pLFtodCxPZSxyZSxBZSwkZV0pO3JldHVybiBRZShyLmNyZWF0ZUVsZW1lbnQoUi5aLlByb3ZpZGVyLHt2YWx1ZTpudWxsfSxyLmNyZWF0ZUVsZW1lbnQody5Qcm92aWRlcix7dmFsdWU6WHR9LHIuY3JlYXRlRWxlbWVudChuLlpQLE9iamVjdC5hc3NpZ24oe2dldFBvcHVwQ29udGFpbmVyOnBlLG92ZXJmbG93ZWRJbmRpY2F0b3I6ci5jcmVhdGVFbGVtZW50KGkuWixudWxsKSxvdmVyZmxvd2VkSW5kaWNhdG9yUG9wdXBDbGFzc05hbWU6YSgpKGh0LGAke2h0fS0keyRlfWAsSmUpLG1vZGU6U3Qsc2VsZWN0YWJsZTpjdCxvbkNsaWNrOldlfSxkZSx7aW5saW5lQ29sbGFwc2VkOk9lLHN0eWxlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxhZT09bnVsbD92b2lkIDA6YWUuc3R5bGUpLGJlKSxjbGFzc05hbWU6SXQscHJlZml4Q2xzOmh0LGRpcmVjdGlvbjpyZSxkZWZhdWx0TW90aW9uczpHZSxleHBhbmRJY29uOlR0LHJlZjpOLHJvb3RDbGFzc05hbWU6YSgpKHV0LHB0LCQucm9vdENsYXNzTmFtZSxidCx6ZSksX2ludGVybmFsQ29tcG9uZW50czpTZX0pKSkpKX0pO2NvbnN0IE09KDAsci5mb3J3YXJkUmVmKSgoVSxOKT0+e2NvbnN0IFE9KDAsci51c2VSZWYpKG51bGwpLHVlPXIudXNlQ29udGV4dCh0LkQpO3JldHVybigwLHIudXNlSW1wZXJhdGl2ZUhhbmRsZSkoTiwoKT0+KHttZW51OlEuY3VycmVudCxmb2N1czokPT57dmFyIF87KF89US5jdXJyZW50KT09PW51bGx8fF89PT12b2lkIDB8fF8uZm9jdXMoJCl9fSkpLHIuY3JlYXRlRWxlbWVudChrLE9iamVjdC5hc3NpZ24oe3JlZjpRfSxVLHVlKSl9KTtNLkl0ZW09SSxNLlN1Yk1lbnU9cWUsTS5EaXZpZGVyPU8sTS5JdGVtR3JvdXA9bi5CVzt2YXIgQT1NfSwyNDUzOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1pQOmZ1bmN0aW9uKCl7cmV0dXJuICR9fSk7dmFyIHI9ZSg3NDkwMiksbj1lKDY3Mjk0KSx0PWUoNjY5NjgpLGk9ZSg1MzEyNCkscz1lKDIxNTMyKSxhPWUoNjk3MTEpLHU9ZSg4OTczOSksYz1lKDQzNDApLGg9ZSgyMTY0MCksZD1lKDc4ODYwKSxtPWUoNTA4ODgpLEM9ZSg5Mzk2NyksZz1lLm4oQyksdz1lKDQyOTk5KSxFPWUoMzU3OTIpLHg9ZSgxMTU2OCksTz1lKDg3MjYzKSxUPWUoMTQ3NDcpLFM9ZSg4MzU1OSksTD1lKDgzMjYyKTtjb25zdCBJPV89Pntjb25zdHtjb21wb25lbnRDbHM6cGUsaWNvbkNsczpyZSxib3hTaGFkb3c6YWUsY29sb3JUZXh0OndlLGNvbG9yU3VjY2VzczpMZSxjb2xvckVycm9yOk1lLGNvbG9yV2FybmluZzpiZSxjb2xvckluZm86JGUsZm9udFNpemVMRzprZSxtb3Rpb25FYXNlSW5PdXRDaXJjOkFlLG1vdGlvbkR1cmF0aW9uU2xvdzp0dCxtYXJnaW5YUzptdCxwYWRkaW5nWFM6dXQsYm9yZGVyUmFkaXVzTEc6RGUsekluZGV4UG9wdXA6TmUsY29udGVudFBhZGRpbmc6WGUsY29udGVudEJnOkplfT1fLGd0PWAke3BlfS1ub3RpY2VgLGRlPW5ldyB4LkU0KCJNZXNzYWdlTW92ZUluIix7IjAlIjp7cGFkZGluZzowLHRyYW5zZm9ybToidHJhbnNsYXRlWSgtMTAwJSkiLG9wYWNpdHk6MH0sIjEwMCUiOntwYWRkaW5nOnV0LHRyYW5zZm9ybToidHJhbnNsYXRlWSgwKSIsb3BhY2l0eToxfX0pLFdlPW5ldyB4LkU0KCJNZXNzYWdlTW92ZU91dCIseyIwJSI6e21heEhlaWdodDpfLmhlaWdodCxwYWRkaW5nOnV0LG9wYWNpdHk6MX0sIjEwMCUiOnttYXhIZWlnaHQ6MCxwYWRkaW5nOjAsb3BhY2l0eTowfX0pLFN0PXtwYWRkaW5nOnV0LHRleHRBbGlnbjoiY2VudGVyIixbYCR7cGV9LWN1c3RvbS1jb250ZW50YF06e2Rpc3BsYXk6ImZsZXgiLGFsaWduSXRlbXM6ImNlbnRlciJ9LFtgJHtwZX0tY3VzdG9tLWNvbnRlbnQgPiAke3JlfWBdOnttYXJnaW5JbmxpbmVFbmQ6bXQsZm9udFNpemU6a2V9LFtgJHtndH0tY29udGVudGBdOntkaXNwbGF5OiJpbmxpbmUtYmxvY2siLHBhZGRpbmc6WGUsYmFja2dyb3VuZDpKZSxib3JkZXJSYWRpdXM6RGUsYm94U2hhZG93OmFlLHBvaW50ZXJFdmVudHM6ImFsbCJ9LFtgJHtwZX0tc3VjY2VzcyA+ICR7cmV9YF06e2NvbG9yOkxlfSxbYCR7cGV9LWVycm9yID4gJHtyZX1gXTp7Y29sb3I6TWV9LFtgJHtwZX0td2FybmluZyA+ICR7cmV9YF06e2NvbG9yOmJlfSxbYCR7cGV9LWluZm8gPiAke3JlfSwKKyAgICAgICR7cGV9LWxvYWRpbmcgPiAke3JlfWBdOntjb2xvcjokZX19O3JldHVyblt7W3BlXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sKDAsVC5XZikoXykpLHtjb2xvcjp3ZSxwb3NpdGlvbjoiZml4ZWQiLHRvcDptdCx3aWR0aDoiMTAwJSIscG9pbnRlckV2ZW50czoibm9uZSIsekluZGV4Ok5lLFtgJHtwZX0tbW92ZS11cGBdOnthbmltYXRpb25GaWxsTW9kZToiZm9yd2FyZHMifSxbYAorICAgICAgICAke3BlfS1tb3ZlLXVwLWFwcGVhciwKKyAgICAgICAgJHtwZX0tbW92ZS11cC1lbnRlcgorICAgICAgYF06e2FuaW1hdGlvbk5hbWU6ZGUsYW5pbWF0aW9uRHVyYXRpb246dHQsYW5pbWF0aW9uUGxheVN0YXRlOiJwYXVzZWQiLGFuaW1hdGlvblRpbWluZ0Z1bmN0aW9uOkFlfSxbYAorICAgICAgICAke3BlfS1tb3ZlLXVwLWFwcGVhciR7cGV9LW1vdmUtdXAtYXBwZWFyLWFjdGl2ZSwKKyAgICAgICAgJHtwZX0tbW92ZS11cC1lbnRlciR7cGV9LW1vdmUtdXAtZW50ZXItYWN0aXZlCisgICAgICBgXTp7YW5pbWF0aW9uUGxheVN0YXRlOiJydW5uaW5nIn0sW2Ake3BlfS1tb3ZlLXVwLWxlYXZlYF06e2FuaW1hdGlvbk5hbWU6V2UsYW5pbWF0aW9uRHVyYXRpb246dHQsYW5pbWF0aW9uUGxheVN0YXRlOiJwYXVzZWQiLGFuaW1hdGlvblRpbWluZ0Z1bmN0aW9uOkFlfSxbYCR7cGV9LW1vdmUtdXAtbGVhdmUke3BlfS1tb3ZlLXVwLWxlYXZlLWFjdGl2ZWBdOnthbmltYXRpb25QbGF5U3RhdGU6InJ1bm5pbmcifSwiJi1ydGwiOntkaXJlY3Rpb246InJ0bCIsc3Bhbjp7ZGlyZWN0aW9uOiJydGwifX19KX0se1twZV06e1tgJHtndH0td3JhcHBlcmBdOk9iamVjdC5hc3NpZ24oe30sU3QpfX0se1tgJHtwZX0tbm90aWNlLXB1cmUtcGFuZWxgXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sU3QpLHtwYWRkaW5nOjAsdGV4dEFsaWduOiJzdGFydCJ9KX1dfSxSPV89Pih7ekluZGV4UG9wdXA6Xy56SW5kZXhQb3B1cEJhc2UrTy51NisxMCxjb250ZW50Qmc6Xy5jb2xvckJnRWxldmF0ZWQsY29udGVudFBhZGRpbmc6YCR7KF8uY29udHJvbEhlaWdodExHLV8uZm9udFNpemUqXy5saW5lSGVpZ2h0KS8yfXB4ICR7Xy5wYWRkaW5nU019cHhgfSk7dmFyIHo9KDAsUy5JJCkoIk1lc3NhZ2UiLF89Pntjb25zdCBwZT0oMCxMLklYKShfLHtoZWlnaHQ6MTUwfSk7cmV0dXJuW0kocGUpXX0sUiksRz1mdW5jdGlvbihfLHBlKXt2YXIgcmU9e307Zm9yKHZhciBhZSBpbiBfKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChfLGFlKSYmcGUuaW5kZXhPZihhZSk8MCYmKHJlW2FlXT1fW2FlXSk7aWYoXyE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciB3ZT0wLGFlPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoXyk7d2U8YWUubGVuZ3RoO3dlKyspcGUuaW5kZXhPZihhZVt3ZV0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChfLGFlW3dlXSkmJihyZVthZVt3ZV1dPV9bYWVbd2VdXSk7cmV0dXJuIHJlfTtjb25zdCBZPXtpbmZvOm4uY3JlYXRlRWxlbWVudChkLlosbnVsbCksc3VjY2VzczpuLmNyZWF0ZUVsZW1lbnQodS5aLG51bGwpLGVycm9yOm4uY3JlYXRlRWxlbWVudChjLlosbnVsbCksd2FybmluZzpuLmNyZWF0ZUVsZW1lbnQoaC5aLG51bGwpLGxvYWRpbmc6bi5jcmVhdGVFbGVtZW50KG0uWixudWxsKX0sZWU9Xz0+e2xldHtwcmVmaXhDbHM6cGUsdHlwZTpyZSxpY29uOmFlLGNoaWxkcmVuOndlfT1fO3JldHVybiBuLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpnKCkoYCR7cGV9LWN1c3RvbS1jb250ZW50YCxgJHtwZX0tJHtyZX1gKX0sYWV8fFlbcmVdLG4uY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCx3ZSkpfTt2YXIgbWU9Xz0+e2NvbnN0e3ByZWZpeENsczpwZSxjbGFzc05hbWU6cmUsdHlwZTphZSxpY29uOndlLGNvbnRlbnQ6TGV9PV8sTWU9RyhfLFsicHJlZml4Q2xzIiwiY2xhc3NOYW1lIiwidHlwZSIsImljb24iLCJjb250ZW50Il0pLHtnZXRQcmVmaXhDbHM6YmV9PW4udXNlQ29udGV4dChpLkVfKSwkZT1wZXx8YmUoIm1lc3NhZ2UiKSxrZT0oMCxFLlopKCRlKSxbQWUsdHQsbXRdPXooJGUsa2UpO3JldHVybiBBZShuLmNyZWF0ZUVsZW1lbnQody5xWCxPYmplY3QuYXNzaWduKHt9LE1lLHtwcmVmaXhDbHM6JGUsY2xhc3NOYW1lOmcoKShyZSx0dCxgJHskZX0tbm90aWNlLXB1cmUtcGFuZWxgLG10LGtlKSxldmVudEtleToicHVyZSIsZHVyYXRpb246bnVsbCxjb250ZW50Om4uY3JlYXRlRWxlbWVudChlZSx7cHJlZml4Q2xzOiRlLHR5cGU6YWUsaWNvbjp3ZX0sTGUpfSkpKX0sdGU9ZSg5NzkzNyksbGU9ZSgyNzI4OCk7ZnVuY3Rpb24gY2UoXyxwZSl7cmV0dXJue21vdGlvbk5hbWU6cGUhPW51bGw/cGU6YCR7X30tbW92ZS11cGB9fWZ1bmN0aW9uIFcoXyl7bGV0IHBlO2NvbnN0IHJlPW5ldyBQcm9taXNlKHdlPT57cGU9XygoKT0+e3dlKCEwKX0pfSksYWU9KCk9PntwZT09bnVsbHx8cGUoKX07cmV0dXJuIGFlLnRoZW49KHdlLExlKT0+cmUudGhlbih3ZSxMZSksYWUucHJvbWlzZT1yZSxhZX12YXIgaj1mdW5jdGlvbihfLHBlKXt2YXIgcmU9e307Zm9yKHZhciBhZSBpbiBfKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChfLGFlKSYmcGUuaW5kZXhPZihhZSk8MCYmKHJlW2FlXT1fW2FlXSk7aWYoXyE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciB3ZT0wLGFlPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoXyk7d2U8YWUubGVuZ3RoO3dlKyspcGUuaW5kZXhPZihhZVt3ZV0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChfLGFlW3dlXSkmJihyZVthZVt3ZV1dPV9bYWVbd2VdXSk7cmV0dXJuIHJlfTtjb25zdCBEPTgsVj0zLFo9Xz0+e2xldHtjaGlsZHJlbjpwZSxwcmVmaXhDbHM6cmV9PV87Y29uc3QgYWU9KDAsRS5aKShyZSksW3dlLExlLE1lXT16KHJlLGFlKTtyZXR1cm4gd2Uobi5jcmVhdGVFbGVtZW50KHcuSkIse2NsYXNzTmFtZXM6e2xpc3Q6ZygpKExlLE1lLGFlKX19LHBlKSl9LFA9KF8scGUpPT57bGV0e3ByZWZpeENsczpyZSxrZXk6YWV9PXBlO3JldHVybiBuLmNyZWF0ZUVsZW1lbnQoWix7cHJlZml4Q2xzOnJlLGtleTphZX0sXyl9LEs9bi5mb3J3YXJkUmVmKChfLHBlKT0+e2NvbnN0e3RvcDpyZSxwcmVmaXhDbHM6YWUsZ2V0Q29udGFpbmVyOndlLG1heENvdW50OkxlLGR1cmF0aW9uOk1lPVYscnRsOmJlLHRyYW5zaXRpb25OYW1lOiRlLG9uQWxsUmVtb3ZlZDprZX09Xyx7Z2V0UHJlZml4Q2xzOkFlLGdldFBvcHVwQ29udGFpbmVyOnR0LG1lc3NhZ2U6bXQsZGlyZWN0aW9uOnV0fT1uLnVzZUNvbnRleHQoaS5FXyksRGU9YWV8fEFlKCJtZXNzYWdlIiksTmU9KCk9Pih7bGVmdDoiNTAlIix0cmFuc2Zvcm06InRyYW5zbGF0ZVgoLTUwJSkiLHRvcDpyZSE9bnVsbD9yZTpEfSksWGU9KCk9PmcoKSh7W2Ake0RlfS1ydGxgXTpiZSE9bnVsbD9iZTp1dD09PSJydGwifSksSmU9KCk9PmNlKERlLCRlKSxndD1uLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6YCR7RGV9LWNsb3NlLXhgfSxuLmNyZWF0ZUVsZW1lbnQodGUuWix7Y2xhc3NOYW1lOmAke0RlfS1jbG9zZS1pY29uYH0pKSxbZGUsV2VdPSgwLHcubG0pKHtwcmVmaXhDbHM6RGUsc3R5bGU6TmUsY2xhc3NOYW1lOlhlLG1vdGlvbjpKZSxjbG9zYWJsZTohMSxjbG9zZUljb246Z3QsZHVyYXRpb246TWUsZ2V0Q29udGFpbmVyOigpPT4od2U9PW51bGw/dm9pZCAwOndlKCkpfHwodHQ9PW51bGw/dm9pZCAwOnR0KCkpfHxkb2N1bWVudC5ib2R5LG1heENvdW50OkxlLG9uQWxsUmVtb3ZlZDprZSxyZW5kZXJOb3RpZmljYXRpb25zOlB9KTtyZXR1cm4gbi51c2VJbXBlcmF0aXZlSGFuZGxlKHBlLCgpPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZGUpLHtwcmVmaXhDbHM6RGUsbWVzc2FnZTptdH0pKSxXZX0pO2xldCBzZT0wO2Z1bmN0aW9uIG5lKF8pe2NvbnN0IHBlPW4udXNlUmVmKG51bGwpLHJlPSgwLGxlLmxuKSgiTWVzc2FnZSIpO3JldHVybltuLnVzZU1lbW8oKCk9Pntjb25zdCB3ZT1rZT0+e3ZhciBBZTsoQWU9cGUuY3VycmVudCk9PT1udWxsfHxBZT09PXZvaWQgMHx8QWUuY2xvc2Uoa2UpfSxMZT1rZT0+e2lmKCFwZS5jdXJyZW50KXtjb25zdCBPZT0oKT0+e307cmV0dXJuIE9lLnRoZW49KCk9Pnt9LE9lfWNvbnN0e29wZW46QWUscHJlZml4Q2xzOnR0LG1lc3NhZ2U6bXR9PXBlLmN1cnJlbnQsdXQ9YCR7dHR9LW5vdGljZWAse2NvbnRlbnQ6RGUsaWNvbjpOZSx0eXBlOlhlLGtleTpKZSxjbGFzc05hbWU6Z3Qsc3R5bGU6ZGUsb25DbG9zZTpXZX09a2UsU3Q9aihrZSxbImNvbnRlbnQiLCJpY29uIiwidHlwZSIsImtleSIsImNsYXNzTmFtZSIsInN0eWxlIiwib25DbG9zZSJdKTtsZXQgY3Q9SmU7cmV0dXJuIGN0PT1udWxsJiYoc2UrPTEsY3Q9YGFudGQtbWVzc2FnZS0ke3NlfWApLFcoT2U9PihBZShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sU3QpLHtrZXk6Y3QsY29udGVudDpuLmNyZWF0ZUVsZW1lbnQoZWUse3ByZWZpeENsczp0dCx0eXBlOlhlLGljb246TmV9LERlKSxwbGFjZW1lbnQ6InRvcCIsY2xhc3NOYW1lOmcoKShYZSYmYCR7dXR9LSR7WGV9YCxndCxtdD09bnVsbD92b2lkIDA6bXQuY2xhc3NOYW1lKSxzdHlsZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbXQ9PW51bGw/dm9pZCAwOm10LnN0eWxlKSxkZSksb25DbG9zZTooKT0+e1dlPT1udWxsfHxXZSgpLE9lKCl9fSkpLCgpPT57d2UoY3QpfSkpfSxiZT17b3BlbjpMZSxkZXN0cm95OmtlPT57dmFyIEFlO2tlIT09dm9pZCAwP3dlKGtlKTooQWU9cGUuY3VycmVudCk9PT1udWxsfHxBZT09PXZvaWQgMHx8QWUuZGVzdHJveSgpfX07cmV0dXJuWyJpbmZvIiwic3VjY2VzcyIsIndhcm5pbmciLCJlcnJvciIsImxvYWRpbmciXS5mb3JFYWNoKGtlPT57Y29uc3QgQWU9KHR0LG10LHV0KT0+e2xldCBEZTt0dCYmdHlwZW9mIHR0PT0ib2JqZWN0IiYmImNvbnRlbnQiaW4gdHQ/RGU9dHQ6RGU9e2NvbnRlbnQ6dHR9O2xldCBOZSxYZTt0eXBlb2YgbXQ9PSJmdW5jdGlvbiI/WGU9bXQ6KE5lPW10LFhlPXV0KTtjb25zdCBKZT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe29uQ2xvc2U6WGUsZHVyYXRpb246TmV9LERlKSx7dHlwZTprZX0pO3JldHVybiBMZShKZSl9O2JlW2tlXT1BZX0pLGJlfSxbXSksbi5jcmVhdGVFbGVtZW50KEssT2JqZWN0LmFzc2lnbih7a2V5OiJtZXNzYWdlLWhvbGRlciJ9LF8se3JlZjpwZX0pKV19ZnVuY3Rpb24gb2UoXyl7cmV0dXJuIG5lKF8pfWxldCBmZT1udWxsLEVlPV89Pl8oKSxSZT1bXSxCZT17fTtmdW5jdGlvbiBZZSgpe2NvbnN0e2dldENvbnRhaW5lcjpfLGR1cmF0aW9uOnBlLHJ0bDpyZSxtYXhDb3VudDphZSx0b3A6d2V9PUJlLExlPShfPT1udWxsP3ZvaWQgMDpfKCkpfHxkb2N1bWVudC5ib2R5O3JldHVybntnZXRDb250YWluZXI6KCk9PkxlLGR1cmF0aW9uOnBlLHJ0bDpyZSxtYXhDb3VudDphZSx0b3A6d2V9fWNvbnN0IG90PW4uZm9yd2FyZFJlZigoXyxwZSk9Pntjb25zdHttZXNzYWdlQ29uZmlnOnJlLHN5bmM6YWV9PV8se2dldFByZWZpeENsczp3ZX09KDAsbi51c2VDb250ZXh0KShpLkVfKSxMZT1CZS5wcmVmaXhDbHN8fHdlKCJtZXNzYWdlIiksTWU9KDAsbi51c2VDb250ZXh0KSh0LkopLFtiZSwkZV09bmUoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30scmUpLHtwcmVmaXhDbHM6TGV9KSxNZS5tZXNzYWdlKSk7cmV0dXJuIG4udXNlSW1wZXJhdGl2ZUhhbmRsZShwZSwoKT0+e2NvbnN0IGtlPU9iamVjdC5hc3NpZ24oe30sYmUpO3JldHVybiBPYmplY3Qua2V5cyhrZSkuZm9yRWFjaChBZT0+e2tlW0FlXT1mdW5jdGlvbigpe3JldHVybiBhZSgpLGJlW0FlXS5hcHBseShiZSxhcmd1bWVudHMpfX0pLHtpbnN0YW5jZTprZSxzeW5jOmFlfX0pLCRlfSkscWU9bi5mb3J3YXJkUmVmKChfLHBlKT0+e2NvbnN0W3JlLGFlXT1uLnVzZVN0YXRlKFllKSx3ZT0oKT0+e2FlKFllKX07bi51c2VFZmZlY3Qod2UsW10pO2NvbnN0IExlPSgwLHMudzYpKCksTWU9TGUuZ2V0Um9vdFByZWZpeENscygpLGJlPUxlLmdldEljb25QcmVmaXhDbHMoKSwkZT1MZS5nZXRUaGVtZSgpLGtlPW4uY3JlYXRlRWxlbWVudChvdCx7cmVmOnBlLHN5bmM6d2UsbWVzc2FnZUNvbmZpZzpyZX0pO3JldHVybiBuLmNyZWF0ZUVsZW1lbnQocy5aUCx7cHJlZml4Q2xzOk1lLGljb25QcmVmaXhDbHM6YmUsdGhlbWU6JGV9LExlLmhvbGRlclJlbmRlcj9MZS5ob2xkZXJSZW5kZXIoa2UpOmtlKX0pO2Z1bmN0aW9uIF9lKCl7aWYoIWZlKXtjb25zdCBfPWRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSxwZT17ZnJhZ21lbnQ6X307ZmU9cGUsRWUoKCk9PnsoMCxhLngpKCkobi5jcmVhdGVFbGVtZW50KHFlLHtyZWY6YWU9Pntjb25zdHtpbnN0YW5jZTp3ZSxzeW5jOkxlfT1hZXx8e307UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+eyFwZS5pbnN0YW5jZSYmd2UmJihwZS5pbnN0YW5jZT13ZSxwZS5zeW5jPUxlLF9lKCkpfSl9fSksXyl9KTtyZXR1cm59ZmUuaW5zdGFuY2UmJihSZS5mb3JFYWNoKF89Pntjb25zdHt0eXBlOnBlLHNraXBwZWQ6cmV9PV87aWYoIXJlKXN3aXRjaChwZSl7Y2FzZSJvcGVuIjp7RWUoKCk9Pntjb25zdCBhZT1mZS5pbnN0YW5jZS5vcGVuKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxCZSksXy5jb25maWcpKTthZT09bnVsbHx8YWUudGhlbihfLnJlc29sdmUpLF8uc2V0Q2xvc2VGbihhZSl9KTticmVha31jYXNlImRlc3Ryb3kiOkVlKCgpPT57ZmU9PW51bGx8fGZlLmluc3RhbmNlLmRlc3Ryb3koXy5rZXkpfSk7YnJlYWs7ZGVmYXVsdDpFZSgoKT0+e3ZhciBhZTtjb25zdCB3ZT0oYWU9ZmUuaW5zdGFuY2UpW3BlXS5hcHBseShhZSwoMCxyLlopKF8uYXJncykpO3dlPT1udWxsfHx3ZS50aGVuKF8ucmVzb2x2ZSksXy5zZXRDbG9zZUZuKHdlKX0pfX0pLFJlPVtdKX1mdW5jdGlvbiBGZShfKXtCZT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sQmUpLF8pLEVlKCgpPT57dmFyIHBlOyhwZT1mZT09bnVsbD92b2lkIDA6ZmUuc3luYyk9PT1udWxsfHxwZT09PXZvaWQgMHx8cGUuY2FsbChmZSl9KX1mdW5jdGlvbiBTZShfKXtjb25zdCBwZT1XKHJlPT57bGV0IGFlO2NvbnN0IHdlPXt0eXBlOiJvcGVuIixjb25maWc6XyxyZXNvbHZlOnJlLHNldENsb3NlRm46TGU9PnthZT1MZX19O3JldHVybiBSZS5wdXNoKHdlKSwoKT0+e2FlP0VlKCgpPT57YWUoKX0pOndlLnNraXBwZWQ9ITB9fSk7cmV0dXJuIF9lKCkscGV9ZnVuY3Rpb24gcShfLHBlKXtjb25zdCByZT0oMCxzLnc2KSgpLGFlPVcod2U9PntsZXQgTGU7Y29uc3QgTWU9e3R5cGU6XyxhcmdzOnBlLHJlc29sdmU6d2Usc2V0Q2xvc2VGbjpiZT0+e0xlPWJlfX07cmV0dXJuIFJlLnB1c2goTWUpLCgpPT57TGU/RWUoKCk9PntMZSgpfSk6TWUuc2tpcHBlZD0hMH19KTtyZXR1cm4gX2UoKSxhZX1jb25zdCBrPV89PntSZS5wdXNoKHt0eXBlOiJkZXN0cm95IixrZXk6X30pLF9lKCl9LE09WyJzdWNjZXNzIiwiaW5mbyIsIndhcm5pbmciLCJlcnJvciIsImxvYWRpbmciXSxVPXtvcGVuOlNlLGRlc3Ryb3k6ayxjb25maWc6RmUsdXNlTWVzc2FnZTpvZSxfSW50ZXJuYWxQYW5lbERvTm90VXNlT3JZb3VXaWxsQmVGaXJlZDptZX07TS5mb3JFYWNoKF89PntVW19dPWZ1bmN0aW9uKCl7Zm9yKHZhciBwZT1hcmd1bWVudHMubGVuZ3RoLHJlPW5ldyBBcnJheShwZSksYWU9MDthZTxwZTthZSsrKXJlW2FlXT1hcmd1bWVudHNbYWVdO3JldHVybiBxKF8scmUpfX0pO2NvbnN0IE49KCk9Pnt9O2xldCBRPW51bGwsdWU9bnVsbDt2YXIgJD1VfSwxNzc4ODpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGh0fX0pO3ZhciByPWUoNzQ5MDIpLG49ZSg2NzI5NCksdD1lKDUzMTI0KSxpPWUoMjE1MzIpLHM9ZSg2OTcxMSksYT1lKDg5NzM5KSx1PWUoNDM0MCksYz1lKDIxNjQwKSxoPWUoNzg4NjApLGQ9ZSg5Mzk2NyksbT1lLm4oZCksQz1lKDg3MjYzKSxnPWUoMzM2MDMpLHc9ZSgxMDExMCksRT1lKDI5NjkxKSx4PWUoODY3NDMpO2NvbnN0IE89bi5jcmVhdGVDb250ZXh0KHt9KSx7UHJvdmlkZXI6VH09Tzt2YXIgTD0oKT0+e2NvbnN0e2F1dG9Gb2N1c0J1dHRvbjp6ZSxjYW5jZWxCdXR0b25Qcm9wczpRZSxjYW5jZWxUZXh0TG9jYWxlOnB0LGlzU2lsZW50OmJ0LG1lcmdlZE9rQ2FuY2VsOkl0LHJvb3RQcmVmaXhDbHM6VHQsY2xvc2U6WHQsb25DYW5jZWw6Zm4sb25Db25maXJtOm5ufT0oMCxuLnVzZUNvbnRleHQpKE8pO3JldHVybiBJdD9uLmNyZWF0ZUVsZW1lbnQoeC5aLHtpc1NpbGVudDpidCxhY3Rpb25GbjpmbixjbG9zZTpmdW5jdGlvbigpe1h0PT1udWxsfHxYdC5hcHBseSh2b2lkIDAsYXJndW1lbnRzKSxubj09bnVsbHx8bm4oITEpfSxhdXRvRm9jdXM6emU9PT0iY2FuY2VsIixidXR0b25Qcm9wczpRZSxwcmVmaXhDbHM6YCR7VHR9LWJ0bmB9LHB0KTpudWxsfSxSPSgpPT57Y29uc3R7YXV0b0ZvY3VzQnV0dG9uOnplLGNsb3NlOlFlLGlzU2lsZW50OnB0LG9rQnV0dG9uUHJvcHM6YnQscm9vdFByZWZpeENsczpJdCxva1RleHRMb2NhbGU6VHQsb2tUeXBlOlh0LG9uQ29uZmlybTpmbixvbk9rOm5ufT0oMCxuLnVzZUNvbnRleHQpKE8pO3JldHVybiBuLmNyZWF0ZUVsZW1lbnQoeC5aLHtpc1NpbGVudDpwdCx0eXBlOlh0fHwicHJpbWFyeSIsYWN0aW9uRm46bm4sY2xvc2U6ZnVuY3Rpb24oKXtRZT09bnVsbHx8UWUuYXBwbHkodm9pZCAwLGFyZ3VtZW50cyksZm49PW51bGx8fGZuKCEwKX0sYXV0b0ZvY3VzOnplPT09Im9rIixidXR0b25Qcm9wczpidCxwcmVmaXhDbHM6YCR7SXR9LWJ0bmB9LFR0KX0sej1lKDk3OTM3KSxHPWUoNDA5NzQpLFk9ZSg4OTk0MiksZWU9ZSg2OTc2MCksSj1lKDk4OTI0KTtjb25zdCBtZT0oKT0+KDAsSi5aKSgpJiZ3aW5kb3cuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O3ZhciB0ZT1lKDQzOTQ1KSxsZT1lKDM1NzkyKSxjZT1lKDQ4MDU0KSxXPWUoMTY1NjkpLGo9ZSg5ODg2NiksRD1lKDgzNjIyKSxaPSgpPT57Y29uc3R7Y2FuY2VsQnV0dG9uUHJvcHM6emUsY2FuY2VsVGV4dExvY2FsZTpRZSxvbkNhbmNlbDpwdH09KDAsbi51c2VDb250ZXh0KShPKTtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KEQuWlAsT2JqZWN0LmFzc2lnbih7b25DbGljazpwdH0semUpLFFlKX0sUD1lKDMzNjcxKSxzZT0oKT0+e2NvbnN0e2NvbmZpcm1Mb2FkaW5nOnplLG9rQnV0dG9uUHJvcHM6UWUsb2tUeXBlOnB0LG9rVGV4dExvY2FsZTpidCxvbk9rOkl0fT0oMCxuLnVzZUNvbnRleHQpKE8pO3JldHVybiBuLmNyZWF0ZUVsZW1lbnQoRC5aUCxPYmplY3QuYXNzaWduKHt9LCgwLFAubngpKHB0KSx7bG9hZGluZzp6ZSxvbkNsaWNrOkl0fSxRZSksYnQpfSxuZT1lKDgzMDA4KTtmdW5jdGlvbiBvZSh6ZSxRZSl7cmV0dXJuIG4uY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpgJHt6ZX0tY2xvc2UteGB9LFFlfHxuLmNyZWF0ZUVsZW1lbnQoei5aLHtjbGFzc05hbWU6YCR7emV9LWNsb3NlLWljb25gfSkpfWNvbnN0IGZlPXplPT57Y29uc3R7b2tUZXh0OlFlLG9rVHlwZTpwdD0icHJpbWFyeSIsY2FuY2VsVGV4dDpidCxjb25maXJtTG9hZGluZzpJdCxvbk9rOlR0LG9uQ2FuY2VsOlh0LG9rQnV0dG9uUHJvcHM6Zm4sY2FuY2VsQnV0dG9uUHJvcHM6bm4sZm9vdGVyOm9ufT16ZSxbTnRdPSgwLHcuWikoIk1vZGFsIiwoMCxuZS5BKSgpKSxabj1RZXx8KE50PT1udWxsP3ZvaWQgMDpOdC5va1RleHQpLHluPWJ0fHwoTnQ9PW51bGw/dm9pZCAwOk50LmNhbmNlbFRleHQpLGduPXtjb25maXJtTG9hZGluZzpJdCxva0J1dHRvblByb3BzOmZuLGNhbmNlbEJ1dHRvblByb3BzOm5uLG9rVGV4dExvY2FsZTpabixjYW5jZWxUZXh0TG9jYWxlOnluLG9rVHlwZTpwdCxvbk9rOlR0LG9uQ2FuY2VsOlh0fSxCbj1uLnVzZU1lbW8oKCk9PmduLCgwLHIuWikoT2JqZWN0LnZhbHVlcyhnbikpKTtsZXQgVm47cmV0dXJuIHR5cGVvZiBvbj09ImZ1bmN0aW9uInx8dHlwZW9mIG9uPT0idW5kZWZpbmVkIj8oVm49bi5jcmVhdGVFbGVtZW50KG4uRnJhZ21lbnQsbnVsbCxuLmNyZWF0ZUVsZW1lbnQoWixudWxsKSxuLmNyZWF0ZUVsZW1lbnQoc2UsbnVsbCkpLHR5cGVvZiBvbj09ImZ1bmN0aW9uIiYmKFZuPW9uKFZuLHtPa0J0bjpzZSxDYW5jZWxCdG46Wn0pKSxWbj1uLmNyZWF0ZUVsZW1lbnQoVCx7dmFsdWU6Qm59LFZuKSk6Vm49b24sbi5jcmVhdGVFbGVtZW50KGoubix7ZGlzYWJsZWQ6ITF9LFZuKX07dmFyIEVlPWUoNzExOTQpLFJlPWZ1bmN0aW9uKHplLFFlKXt2YXIgcHQ9e307Zm9yKHZhciBidCBpbiB6ZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoemUsYnQpJiZRZS5pbmRleE9mKGJ0KTwwJiYocHRbYnRdPXplW2J0XSk7aWYoemUhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgSXQ9MCxidD1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHplKTtJdDxidC5sZW5ndGg7SXQrKylRZS5pbmRleE9mKGJ0W0l0XSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHplLGJ0W0l0XSkmJihwdFtidFtJdF1dPXplW2J0W0l0XV0pO3JldHVybiBwdH07bGV0IEJlO2NvbnN0IFllPXplPT57QmU9e3g6emUucGFnZVgseTp6ZS5wYWdlWX0sc2V0VGltZW91dCgoKT0+e0JlPW51bGx9LDEwMCl9O21lKCkmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsWWUsITApO3ZhciBxZT16ZT0+e3ZhciBRZTtjb25zdHtnZXRQb3B1cENvbnRhaW5lcjpwdCxnZXRQcmVmaXhDbHM6YnQsZGlyZWN0aW9uOkl0LG1vZGFsOlR0fT1uLnVzZUNvbnRleHQodC5FXyksWHQ9Sm49Pntjb25zdHtvbkNhbmNlbDpYbn09emU7WG49PW51bGx8fFhuKEpuKX0sZm49Sm49Pntjb25zdHtvbk9rOlhufT16ZTtYbj09bnVsbHx8WG4oSm4pfSx7cHJlZml4Q2xzOm5uLGNsYXNzTmFtZTpvbixyb290Q2xhc3NOYW1lOk50LG9wZW46Wm4sd3JhcENsYXNzTmFtZTp5bixjZW50ZXJlZDpnbixnZXRDb250YWluZXI6Qm4sZm9jdXNUcmlnZ2VyQWZ0ZXJDbG9zZTpWbj0hMCxzdHlsZTpObix2aXNpYmxlOmZ0LHdpZHRoOmV0PTUyMCxmb290ZXI6SnQsY2xhc3NOYW1lczp3dCxzdHlsZXM6X3QsY2hpbGRyZW46eG4sbG9hZGluZzpZbn09emUsUG49UmUoemUsWyJwcmVmaXhDbHMiLCJjbGFzc05hbWUiLCJyb290Q2xhc3NOYW1lIiwib3BlbiIsIndyYXBDbGFzc05hbWUiLCJjZW50ZXJlZCIsImdldENvbnRhaW5lciIsImZvY3VzVHJpZ2dlckFmdGVyQ2xvc2UiLCJzdHlsZSIsInZpc2libGUiLCJ3aWR0aCIsImZvb3RlciIsImNsYXNzTmFtZXMiLCJzdHlsZXMiLCJjaGlsZHJlbiIsImxvYWRpbmciXSksTG49YnQoIm1vZGFsIixubiksZXI9YnQoKSxRbj0oMCxsZS5aKShMbiksW3VyLGlyLHZuXT0oMCxFZS5aUCkoTG4sUW4pLGNyPW0oKSh5bix7W2Ake0xufS1jZW50ZXJlZGBdOmduIT1udWxsP2duOlR0PT1udWxsP3ZvaWQgMDpUdC5jZW50ZXJlZCxbYCR7TG59LXdyYXAtcnRsYF06SXQ9PT0icnRsIn0pLFduPUp0IT09bnVsbCYmIVluP24uY3JlYXRlRWxlbWVudChmZSxPYmplY3QuYXNzaWduKHt9LHplLHtvbk9rOmZuLG9uQ2FuY2VsOlh0fSkpOm51bGwsW3duLEN0LFp0XT0oMCxlZS5aKSgoMCxlZS53KSh6ZSksKDAsZWUudykoVHQpLHtjbG9zYWJsZTohMCxjbG9zZUljb246bi5jcmVhdGVFbGVtZW50KHouWix7Y2xhc3NOYW1lOmAke0xufS1jbG9zZS1pY29uYH0pLGNsb3NlSWNvblJlbmRlcjpKbj0+b2UoTG4sSm4pfSksYW49KDAsVy5IKShgLiR7TG59LWNvbnRlbnRgKSxbRHQsa3RdPSgwLEMuQ24pKCJNb2RhbCIsUG4uekluZGV4KSxbdG4sbW5dPW4udXNlTWVtbygoKT0+ZXQmJnR5cGVvZiBldD09Im9iamVjdCI/W3ZvaWQgMCxldF06W2V0LHZvaWQgMF0sW2V0XSksS249bi51c2VNZW1vKCgpPT57Y29uc3QgSm49e307cmV0dXJuIG1uJiZPYmplY3Qua2V5cyhtbikuZm9yRWFjaChYbj0+e2NvbnN0IGZyPW1uW1huXTtmciE9PXZvaWQgMCYmKEpuW2AtLSR7TG59LSR7WG59LXdpZHRoYF09dHlwZW9mIGZyPT0ibnVtYmVyIj9gJHtmcn1weGA6ZnIpfSksSm59LFttbl0pO3JldHVybiB1cihuLmNyZWF0ZUVsZW1lbnQoWS5aLHtmb3JtOiEwLHNwYWNlOiEwfSxuLmNyZWF0ZUVsZW1lbnQodGUuWi5Qcm92aWRlcix7dmFsdWU6a3R9LG4uY3JlYXRlRWxlbWVudChHLlosT2JqZWN0LmFzc2lnbih7d2lkdGg6dG59LFBuLHt6SW5kZXg6RHQsZ2V0Q29udGFpbmVyOkJuPT09dm9pZCAwP3B0OkJuLHByZWZpeENsczpMbixyb290Q2xhc3NOYW1lOm0oKShpcixOdCx2bixRbiksZm9vdGVyOlduLHZpc2libGU6Wm4hPW51bGw/Wm46ZnQsbW91c2VQb3NpdGlvbjooUWU9UG4ubW91c2VQb3NpdGlvbikhPT1udWxsJiZRZSE9PXZvaWQgMD9RZTpCZSxvbkNsb3NlOlh0LGNsb3NhYmxlOnduJiZ7ZGlzYWJsZWQ6WnQsY2xvc2VJY29uOkN0fSxjbG9zZUljb246Q3QsZm9jdXNUcmlnZ2VyQWZ0ZXJDbG9zZTpWbix0cmFuc2l0aW9uTmFtZTooMCxnLm0pKGVyLCJ6b29tIix6ZS50cmFuc2l0aW9uTmFtZSksbWFza1RyYW5zaXRpb25OYW1lOigwLGcubSkoZXIsImZhZGUiLHplLm1hc2tUcmFuc2l0aW9uTmFtZSksY2xhc3NOYW1lOm0oKShpcixvbixUdD09bnVsbD92b2lkIDA6VHQuY2xhc3NOYW1lKSxzdHlsZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxUdD09bnVsbD92b2lkIDA6VHQuc3R5bGUpLE5uKSxLbiksY2xhc3NOYW1lczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxUdD09bnVsbD92b2lkIDA6VHQuY2xhc3NOYW1lcyksd3QpLHt3cmFwcGVyOm0oKShjcix3dD09bnVsbD92b2lkIDA6d3Qud3JhcHBlcil9KSxzdHlsZXM6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LFR0PT1udWxsP3ZvaWQgMDpUdC5zdHlsZXMpLF90KSxwYW5lbFJlZjphbn0pLFluP24uY3JlYXRlRWxlbWVudChjZS5aLHthY3RpdmU6ITAsdGl0bGU6ITEscGFyYWdyYXBoOntyb3dzOjR9LGNsYXNzTmFtZTpgJHtMbn0tYm9keS1za2VsZXRvbmB9KTp4bikpKSl9LF9lPWUoMTE1NjgpLEZlPWUoMTQ3NDcpLFNlPWUoODM1NTkpO2NvbnN0IHE9emU9Pntjb25zdHtjb21wb25lbnRDbHM6UWUsdGl0bGVGb250U2l6ZTpwdCx0aXRsZUxpbmVIZWlnaHQ6YnQsbW9kYWxDb25maXJtSWNvblNpemU6SXQsZm9udFNpemU6VHQsbGluZUhlaWdodDpYdCxtb2RhbFRpdGxlSGVpZ2h0OmZuLGZvbnRIZWlnaHQ6bm4sY29uZmlybUJvZHlQYWRkaW5nOm9ufT16ZSxOdD1gJHtRZX0tY29uZmlybWA7cmV0dXJue1tOdF06eyImLXJ0bCI6e2RpcmVjdGlvbjoicnRsIn0sW2Ake3plLmFudENsc30tbW9kYWwtaGVhZGVyYF06e2Rpc3BsYXk6Im5vbmUifSxbYCR7TnR9LWJvZHktd3JhcHBlcmBdOk9iamVjdC5hc3NpZ24oe30sKDAsRmUuZEYpKCkpLFtgJiR7UWV9ICR7UWV9LWJvZHlgXTp7cGFkZGluZzpvbn0sW2Ake050fS1ib2R5YF06e2Rpc3BsYXk6ImZsZXgiLGZsZXhXcmFwOiJub3dyYXAiLGFsaWduSXRlbXM6InN0YXJ0IixbYD4gJHt6ZS5pY29uQ2xzfWBdOntmbGV4OiJub25lIixmb250U2l6ZTpJdCxtYXJnaW5JbmxpbmVFbmQ6emUuY29uZmlybUljb25NYXJnaW5JbmxpbmVFbmQsbWFyZ2luVG9wOnplLmNhbGMoemUuY2FsYyhubikuc3ViKEl0KS5lcXVhbCgpKS5kaXYoMikuZXF1YWwoKX0sW2AmLWhhcy10aXRsZSA+ICR7emUuaWNvbkNsc31gXTp7bWFyZ2luVG9wOnplLmNhbGMoemUuY2FsYyhmbikuc3ViKEl0KS5lcXVhbCgpKS5kaXYoMikuZXF1YWwoKX19LFtgJHtOdH0tcGFyYWdyYXBoYF06e2Rpc3BsYXk6ImZsZXgiLGZsZXhEaXJlY3Rpb246ImNvbHVtbiIsZmxleDoiYXV0byIscm93R2FwOnplLm1hcmdpblhTLG1heFdpZHRoOmBjYWxjKDEwMCUgLSAkeygwLF9lLmJmKSh6ZS5tYXJnaW5TTSl9KWB9LFtgJHt6ZS5pY29uQ2xzfSArICR7TnR9LXBhcmFncmFwaGBdOnttYXhXaWR0aDpgY2FsYygxMDAlIC0gJHsoMCxfZS5iZikoemUuY2FsYyh6ZS5tb2RhbENvbmZpcm1JY29uU2l6ZSkuYWRkKHplLm1hcmdpblNNKS5lcXVhbCgpKX0pYH0sW2Ake050fS10aXRsZWBdOntjb2xvcjp6ZS5jb2xvclRleHRIZWFkaW5nLGZvbnRXZWlnaHQ6emUuZm9udFdlaWdodFN0cm9uZyxmb250U2l6ZTpwdCxsaW5lSGVpZ2h0OmJ0fSxbYCR7TnR9LWNvbnRlbnRgXTp7Y29sb3I6emUuY29sb3JUZXh0LGZvbnRTaXplOlR0LGxpbmVIZWlnaHQ6WHR9LFtgJHtOdH0tYnRuc2BdOnt0ZXh0QWxpZ246ImVuZCIsbWFyZ2luVG9wOnplLmNvbmZpcm1CdG5zTWFyZ2luVG9wLFtgJHt6ZS5hbnRDbHN9LWJ0biArICR7emUuYW50Q2xzfS1idG5gXTp7bWFyZ2luQm90dG9tOjAsbWFyZ2luSW5saW5lU3RhcnQ6emUubWFyZ2luWFN9fX0sW2Ake050fS1lcnJvciAke050fS1ib2R5ID4gJHt6ZS5pY29uQ2xzfWBdOntjb2xvcjp6ZS5jb2xvckVycm9yfSxbYCR7TnR9LXdhcm5pbmcgJHtOdH0tYm9keSA+ICR7emUuaWNvbkNsc30sCisgICAgICAgICR7TnR9LWNvbmZpcm0gJHtOdH0tYm9keSA+ICR7emUuaWNvbkNsc31gXTp7Y29sb3I6emUuY29sb3JXYXJuaW5nfSxbYCR7TnR9LWluZm8gJHtOdH0tYm9keSA+ICR7emUuaWNvbkNsc31gXTp7Y29sb3I6emUuY29sb3JJbmZvfSxbYCR7TnR9LXN1Y2Nlc3MgJHtOdH0tYm9keSA+ICR7emUuaWNvbkNsc31gXTp7Y29sb3I6emUuY29sb3JTdWNjZXNzfX19O3ZhciBrPSgwLFNlLmJrKShbIk1vZGFsIiwiY29uZmlybSJdLHplPT57Y29uc3QgUWU9KDAsRWUuQjQpKHplKTtyZXR1cm5bcShRZSldfSxFZS5laCx7b3JkZXI6LTFlM30pLE09ZnVuY3Rpb24oemUsUWUpe3ZhciBwdD17fTtmb3IodmFyIGJ0IGluIHplKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh6ZSxidCkmJlFlLmluZGV4T2YoYnQpPDAmJihwdFtidF09emVbYnRdKTtpZih6ZSE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBJdD0wLGJ0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoemUpO0l0PGJ0Lmxlbmd0aDtJdCsrKVFlLmluZGV4T2YoYnRbSXRdKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoemUsYnRbSXRdKSYmKHB0W2J0W0l0XV09emVbYnRbSXRdXSk7cmV0dXJuIHB0fTtmdW5jdGlvbiBBKHplKXtjb25zdHtwcmVmaXhDbHM6UWUsaWNvbjpwdCxva1RleHQ6YnQsY2FuY2VsVGV4dDpJdCxjb25maXJtUHJlZml4Q2xzOlR0LHR5cGU6WHQsb2tDYW5jZWw6Zm4sZm9vdGVyOm5uLGxvY2FsZTpvbn09emUsTnQ9TSh6ZSxbInByZWZpeENscyIsImljb24iLCJva1RleHQiLCJjYW5jZWxUZXh0IiwiY29uZmlybVByZWZpeENscyIsInR5cGUiLCJva0NhbmNlbCIsImZvb3RlciIsImxvY2FsZSJdKTtsZXQgWm49cHQ7aWYoIXB0JiZwdCE9PW51bGwpc3dpdGNoKFh0KXtjYXNlImluZm8iOlpuPW4uY3JlYXRlRWxlbWVudChoLlosbnVsbCk7YnJlYWs7Y2FzZSJzdWNjZXNzIjpabj1uLmNyZWF0ZUVsZW1lbnQoYS5aLG51bGwpO2JyZWFrO2Nhc2UiZXJyb3IiOlpuPW4uY3JlYXRlRWxlbWVudCh1LlosbnVsbCk7YnJlYWs7ZGVmYXVsdDpabj1uLmNyZWF0ZUVsZW1lbnQoYy5aLG51bGwpfWNvbnN0IHluPWZuIT1udWxsP2ZuOlh0PT09ImNvbmZpcm0iLGduPXplLmF1dG9Gb2N1c0J1dHRvbj09PW51bGw/ITE6emUuYXV0b0ZvY3VzQnV0dG9ufHwib2siLFtCbl09KDAsdy5aKSgiTW9kYWwiKSxWbj1vbnx8Qm4sTm49YnR8fCh5bj9Wbj09bnVsbD92b2lkIDA6Vm4ub2tUZXh0OlZuPT1udWxsP3ZvaWQgMDpWbi5qdXN0T2tUZXh0KSxmdD1JdHx8KFZuPT1udWxsP3ZvaWQgMDpWbi5jYW5jZWxUZXh0KSxldD1PYmplY3QuYXNzaWduKHthdXRvRm9jdXNCdXR0b246Z24sY2FuY2VsVGV4dExvY2FsZTpmdCxva1RleHRMb2NhbGU6Tm4sbWVyZ2VkT2tDYW5jZWw6eW59LE50KSxKdD1uLnVzZU1lbW8oKCk9PmV0LCgwLHIuWikoT2JqZWN0LnZhbHVlcyhldCkpKSx3dD1uLmNyZWF0ZUVsZW1lbnQobi5GcmFnbWVudCxudWxsLG4uY3JlYXRlRWxlbWVudChMLG51bGwpLG4uY3JlYXRlRWxlbWVudChSLG51bGwpKSxfdD16ZS50aXRsZSE9PXZvaWQgMCYmemUudGl0bGUhPT1udWxsLHhuPWAke1R0fS1ib2R5YDtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YCR7VHR9LWJvZHktd3JhcHBlcmB9LG4uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOm0oKSh4bix7W2Ake3hufS1oYXMtdGl0bGVgXTpfdH0pfSxabixuLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpgJHtUdH0tcGFyYWdyYXBoYH0sX3QmJm4uY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpgJHtUdH0tdGl0bGVgfSx6ZS50aXRsZSksbi5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YCR7VHR9LWNvbnRlbnRgfSx6ZS5jb250ZW50KSkpLG5uPT09dm9pZCAwfHx0eXBlb2Ygbm49PSJmdW5jdGlvbiI/bi5jcmVhdGVFbGVtZW50KFQse3ZhbHVlOkp0fSxuLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpgJHtUdH0tYnRuc2B9LHR5cGVvZiBubj09ImZ1bmN0aW9uIj9ubih3dCx7T2tCdG46UixDYW5jZWxCdG46TH0pOnd0KSk6bm4sbi5jcmVhdGVFbGVtZW50KGsse3ByZWZpeENsczpRZX0pKX1jb25zdCBVPXplPT57Y29uc3R7Y2xvc2U6UWUsekluZGV4OnB0LG1hc2tTdHlsZTpidCxkaXJlY3Rpb246SXQscHJlZml4Q2xzOlR0LHdyYXBDbGFzc05hbWU6WHQscm9vdFByZWZpeENsczpmbixib2R5U3R5bGU6bm4sY2xvc2FibGU6b249ITEsb25Db25maXJtOk50LHN0eWxlczpabn09emUseW49YCR7VHR9LWNvbmZpcm1gLGduPXplLndpZHRofHw0MTYsQm49emUuc3R5bGV8fHt9LFZuPXplLm1hc2s9PT12b2lkIDA/ITA6emUubWFzayxObj16ZS5tYXNrQ2xvc2FibGU9PT12b2lkIDA/ITE6emUubWFza0Nsb3NhYmxlLGZ0PW0oKSh5bixgJHt5bn0tJHt6ZS50eXBlfWAse1tgJHt5bn0tcnRsYF06SXQ9PT0icnRsIn0semUuY2xhc3NOYW1lKSxbLGV0XT0oMCxFLlpQKSgpLEp0PW4udXNlTWVtbygoKT0+cHQhPT12b2lkIDA/cHQ6ZXQuekluZGV4UG9wdXBCYXNlK0MudTYsW3B0LGV0XSk7cmV0dXJuIG4uY3JlYXRlRWxlbWVudChxZSxPYmplY3QuYXNzaWduKHt9LHplLHtjbGFzc05hbWU6ZnQsd3JhcENsYXNzTmFtZTptKCkoe1tgJHt5bn0tY2VudGVyZWRgXTohIXplLmNlbnRlcmVkfSxYdCksb25DYW5jZWw6KCk9PntRZT09bnVsbHx8UWUoe3RyaWdnZXJDYW5jZWw6ITB9KSxOdD09bnVsbHx8TnQoITEpfSx0aXRsZToiIixmb290ZXI6bnVsbCx0cmFuc2l0aW9uTmFtZTooMCxnLm0pKGZufHwiIiwiem9vbSIsemUudHJhbnNpdGlvbk5hbWUpLG1hc2tUcmFuc2l0aW9uTmFtZTooMCxnLm0pKGZufHwiIiwiZmFkZSIsemUubWFza1RyYW5zaXRpb25OYW1lKSxtYXNrOlZuLG1hc2tDbG9zYWJsZTpObixzdHlsZTpCbixzdHlsZXM6T2JqZWN0LmFzc2lnbih7Ym9keTpubixtYXNrOmJ0fSxabiksd2lkdGg6Z24sekluZGV4Okp0LGNsb3NhYmxlOm9ufSksbi5jcmVhdGVFbGVtZW50KEEsT2JqZWN0LmFzc2lnbih7fSx6ZSx7Y29uZmlybVByZWZpeENsczp5bn0pKSl9O3ZhciBRPXplPT57Y29uc3R7cm9vdFByZWZpeENsczpRZSxpY29uUHJlZml4Q2xzOnB0LGRpcmVjdGlvbjpidCx0aGVtZTpJdH09emU7cmV0dXJuIG4uY3JlYXRlRWxlbWVudChpLlpQLHtwcmVmaXhDbHM6UWUsaWNvblByZWZpeENsczpwdCxkaXJlY3Rpb246YnQsdGhlbWU6SXR9LG4uY3JlYXRlRWxlbWVudChVLE9iamVjdC5hc3NpZ24oe30semUpKSl9LCQ9W107bGV0IF89IiI7ZnVuY3Rpb24gcGUoKXtyZXR1cm4gX31jb25zdCByZT16ZT0+e3ZhciBRZSxwdDtjb25zdHtwcmVmaXhDbHM6YnQsZ2V0Q29udGFpbmVyOkl0LGRpcmVjdGlvbjpUdH09emUsWHQ9KDAsbmUuQSkoKSxmbj0oMCxuLnVzZUNvbnRleHQpKHQuRV8pLG5uPXBlKCl8fGZuLmdldFByZWZpeENscygpLG9uPWJ0fHxgJHtubn0tbW9kYWxgO2xldCBOdD1JdDtyZXR1cm4gTnQ9PT0hMSYmKE50PXZvaWQgMCksbi5jcmVhdGVFbGVtZW50KFEsT2JqZWN0LmFzc2lnbih7fSx6ZSx7cm9vdFByZWZpeENsczpubixwcmVmaXhDbHM6b24saWNvblByZWZpeENsczpmbi5pY29uUHJlZml4Q2xzLHRoZW1lOmZuLnRoZW1lLGRpcmVjdGlvbjpUdCE9bnVsbD9UdDpmbi5kaXJlY3Rpb24sbG9jYWxlOihwdD0oUWU9Zm4ubG9jYWxlKT09PW51bGx8fFFlPT09dm9pZCAwP3ZvaWQgMDpRZS5Nb2RhbCkhPT1udWxsJiZwdCE9PXZvaWQgMD9wdDpYdCxnZXRDb250YWluZXI6TnR9KSl9O2Z1bmN0aW9uIGFlKHplKXtjb25zdCBRZT0oMCxpLnc2KSgpLHB0PWRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtsZXQgYnQ9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHplKSx7Y2xvc2U6bm4sb3BlbjohMH0pLEl0LFR0O2Z1bmN0aW9uIFh0KCl7Zm9yKHZhciBOdCxabj1hcmd1bWVudHMubGVuZ3RoLHluPW5ldyBBcnJheShabiksZ249MDtnbjxabjtnbisrKXluW2duXT1hcmd1bWVudHNbZ25dO2lmKHluLnNvbWUoTm49Pk5uPT1udWxsP3ZvaWQgMDpObi50cmlnZ2VyQ2FuY2VsKSl7dmFyIFZuOyhOdD16ZS5vbkNhbmNlbCk9PT1udWxsfHxOdD09PXZvaWQgMHx8KFZuPU50KS5jYWxsLmFwcGx5KFZuLFt6ZSwoKT0+e31dLmNvbmNhdCgoMCxyLlopKHluLnNsaWNlKDEpKSkpfWZvcihsZXQgTm49MDtObjwkLmxlbmd0aDtObisrKWlmKCRbTm5dPT09bm4peyQuc3BsaWNlKE5uLDEpO2JyZWFrfVR0KCl9ZnVuY3Rpb24gZm4oTnQpe2NsZWFyVGltZW91dChJdCksSXQ9c2V0VGltZW91dCgoKT0+e2NvbnN0IFpuPVFlLmdldFByZWZpeENscyh2b2lkIDAscGUoKSkseW49UWUuZ2V0SWNvblByZWZpeENscygpLGduPVFlLmdldFRoZW1lKCksQm49bi5jcmVhdGVFbGVtZW50KHJlLE9iamVjdC5hc3NpZ24oe30sTnQpKTtUdD0oMCxzLngpKCkobi5jcmVhdGVFbGVtZW50KGkuWlAse3ByZWZpeENsczpabixpY29uUHJlZml4Q2xzOnluLHRoZW1lOmdufSxRZS5ob2xkZXJSZW5kZXI/UWUuaG9sZGVyUmVuZGVyKEJuKTpCbikscHQpfSl9ZnVuY3Rpb24gbm4oKXtmb3IodmFyIE50PWFyZ3VtZW50cy5sZW5ndGgsWm49bmV3IEFycmF5KE50KSx5bj0wO3luPE50O3luKyspWm5beW5dPWFyZ3VtZW50c1t5bl07YnQ9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGJ0KSx7b3BlbjohMSxhZnRlckNsb3NlOigpPT57dHlwZW9mIHplLmFmdGVyQ2xvc2U9PSJmdW5jdGlvbiImJnplLmFmdGVyQ2xvc2UoKSxYdC5hcHBseSh0aGlzLFpuKX19KSxidC52aXNpYmxlJiZkZWxldGUgYnQudmlzaWJsZSxmbihidCl9ZnVuY3Rpb24gb24oTnQpe3R5cGVvZiBOdD09ImZ1bmN0aW9uIj9idD1OdChidCk6YnQ9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGJ0KSxOdCksZm4oYnQpfXJldHVybiBmbihidCksJC5wdXNoKG5uKSx7ZGVzdHJveTpubix1cGRhdGU6b259fWZ1bmN0aW9uIHdlKHplKXtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHplKSx7dHlwZToid2FybmluZyJ9KX1mdW5jdGlvbiBMZSh6ZSl7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx6ZSkse3R5cGU6ImluZm8ifSl9ZnVuY3Rpb24gTWUoemUpe3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30semUpLHt0eXBlOiJzdWNjZXNzIn0pfWZ1bmN0aW9uIGJlKHplKXtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHplKSx7dHlwZToiZXJyb3IifSl9ZnVuY3Rpb24gJGUoemUpe3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30semUpLHt0eXBlOiJjb25maXJtIn0pfWZ1bmN0aW9uIGtlKHplKXtsZXR7cm9vdFByZWZpeENsczpRZX09emU7Xz1RZX12YXIgQWU9ZSg4NzQ1KSx0dD1mdW5jdGlvbih6ZSxRZSl7dmFyIHB0PXt9O2Zvcih2YXIgYnQgaW4gemUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHplLGJ0KSYmUWUuaW5kZXhPZihidCk8MCYmKHB0W2J0XT16ZVtidF0pO2lmKHplIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIEl0PTAsYnQ9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh6ZSk7SXQ8YnQubGVuZ3RoO0l0KyspUWUuaW5kZXhPZihidFtJdF0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh6ZSxidFtJdF0pJiYocHRbYnRbSXRdXT16ZVtidFtJdF1dKTtyZXR1cm4gcHR9O2NvbnN0IG10PXplPT57Y29uc3R7cHJlZml4Q2xzOlFlLGNsYXNzTmFtZTpwdCxjbG9zZUljb246YnQsY2xvc2FibGU6SXQsdHlwZTpUdCx0aXRsZTpYdCxjaGlsZHJlbjpmbixmb290ZXI6bm59PXplLG9uPXR0KHplLFsicHJlZml4Q2xzIiwiY2xhc3NOYW1lIiwiY2xvc2VJY29uIiwiY2xvc2FibGUiLCJ0eXBlIiwidGl0bGUiLCJjaGlsZHJlbiIsImZvb3RlciJdKSx7Z2V0UHJlZml4Q2xzOk50fT1uLnVzZUNvbnRleHQodC5FXyksWm49TnQoKSx5bj1RZXx8TnQoIm1vZGFsIiksZ249KDAsbGUuWikoWm4pLFtCbixWbixObl09KDAsRWUuWlApKHluLGduKSxmdD1gJHt5bn0tY29uZmlybWA7bGV0IGV0PXt9O3JldHVybiBUdD9ldD17Y2xvc2FibGU6SXQhPW51bGw/SXQ6ITEsdGl0bGU6IiIsZm9vdGVyOiIiLGNoaWxkcmVuOm4uY3JlYXRlRWxlbWVudChBLE9iamVjdC5hc3NpZ24oe30semUse3ByZWZpeENsczp5bixjb25maXJtUHJlZml4Q2xzOmZ0LHJvb3RQcmVmaXhDbHM6Wm4sY29udGVudDpmbn0pKX06ZXQ9e2Nsb3NhYmxlOkl0IT1udWxsP0l0OiEwLHRpdGxlOlh0LGZvb3RlcjpubiE9PW51bGwmJm4uY3JlYXRlRWxlbWVudChmZSxPYmplY3QuYXNzaWduKHt9LHplKSksY2hpbGRyZW46Zm59LEJuKG4uY3JlYXRlRWxlbWVudChHLnMsT2JqZWN0LmFzc2lnbih7cHJlZml4Q2xzOnluLGNsYXNzTmFtZTptKCkoVm4sYCR7eW59LXB1cmUtcGFuZWxgLFR0JiZmdCxUdCYmYCR7ZnR9LSR7VHR9YCxwdCxObixnbil9LG9uLHtjbG9zZUljb246b2UoeW4sYnQpLGNsb3NhYmxlOkl0fSxldCkpKX07dmFyIHV0PSgwLEFlLmkpKG10KTtmdW5jdGlvbiBEZSgpe2NvbnN0W3plLFFlXT1uLnVzZVN0YXRlKFtdKSxwdD1uLnVzZUNhbGxiYWNrKGJ0PT4oUWUoSXQ9PltdLmNvbmNhdCgoMCxyLlopKEl0KSxbYnRdKSksKCk9PntRZShJdD0+SXQuZmlsdGVyKFR0PT5UdCE9PWJ0KSl9KSxbXSk7cmV0dXJuW3plLHB0XX12YXIgTmU9ZSgyNDQ1NyksWGU9ZnVuY3Rpb24oemUsUWUpe3ZhciBwdD17fTtmb3IodmFyIGJ0IGluIHplKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh6ZSxidCkmJlFlLmluZGV4T2YoYnQpPDAmJihwdFtidF09emVbYnRdKTtpZih6ZSE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBJdD0wLGJ0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoemUpO0l0PGJ0Lmxlbmd0aDtJdCsrKVFlLmluZGV4T2YoYnRbSXRdKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoemUsYnRbSXRdKSYmKHB0W2J0W0l0XV09emVbYnRbSXRdXSk7cmV0dXJuIHB0fTtjb25zdCBKZT0oemUsUWUpPT57dmFyIHB0LHthZnRlckNsb3NlOmJ0LGNvbmZpZzpJdH09emUsVHQ9WGUoemUsWyJhZnRlckNsb3NlIiwiY29uZmlnIl0pO2NvbnN0W1h0LGZuXT1uLnVzZVN0YXRlKCEwKSxbbm4sb25dPW4udXNlU3RhdGUoSXQpLHtkaXJlY3Rpb246TnQsZ2V0UHJlZml4Q2xzOlpufT1uLnVzZUNvbnRleHQodC5FXykseW49Wm4oIm1vZGFsIiksZ249Wm4oKSxCbj0oKT0+e3ZhciBldDtidCgpLChldD1ubi5hZnRlckNsb3NlKT09PW51bGx8fGV0PT09dm9pZCAwfHxldC5jYWxsKG5uKX0sVm49ZnVuY3Rpb24oKXt2YXIgZXQ7Zm4oITEpO2Zvcih2YXIgSnQ9YXJndW1lbnRzLmxlbmd0aCx3dD1uZXcgQXJyYXkoSnQpLF90PTA7X3Q8SnQ7X3QrKyl3dFtfdF09YXJndW1lbnRzW190XTtpZih3dC5zb21lKFBuPT5Qbj09bnVsbD92b2lkIDA6UG4udHJpZ2dlckNhbmNlbCkpe3ZhciBZbjsoZXQ9bm4ub25DYW5jZWwpPT09bnVsbHx8ZXQ9PT12b2lkIDB8fChZbj1ldCkuY2FsbC5hcHBseShZbixbbm4sKCk9Pnt9XS5jb25jYXQoKDAsci5aKSh3dC5zbGljZSgxKSkpKX19O24udXNlSW1wZXJhdGl2ZUhhbmRsZShRZSwoKT0+KHtkZXN0cm95OlZuLHVwZGF0ZTpldD0+e29uKEp0PT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sSnQpLGV0KSl9fSkpO2NvbnN0IE5uPShwdD1ubi5va0NhbmNlbCkhPT1udWxsJiZwdCE9PXZvaWQgMD9wdDpubi50eXBlPT09ImNvbmZpcm0iLFtmdF09KDAsdy5aKSgiTW9kYWwiLE5lLlouTW9kYWwpO3JldHVybiBuLmNyZWF0ZUVsZW1lbnQoUSxPYmplY3QuYXNzaWduKHtwcmVmaXhDbHM6eW4scm9vdFByZWZpeENsczpnbn0sbm4se2Nsb3NlOlZuLG9wZW46WHQsYWZ0ZXJDbG9zZTpCbixva1RleHQ6bm4ub2tUZXh0fHwoTm4/ZnQ9PW51bGw/dm9pZCAwOmZ0Lm9rVGV4dDpmdD09bnVsbD92b2lkIDA6ZnQuanVzdE9rVGV4dCksZGlyZWN0aW9uOm5uLmRpcmVjdGlvbnx8TnQsY2FuY2VsVGV4dDpubi5jYW5jZWxUZXh0fHwoZnQ9PW51bGw/dm9pZCAwOmZ0LmNhbmNlbFRleHQpfSxUdCkpfTt2YXIgZ3Q9bi5mb3J3YXJkUmVmKEplKTtsZXQgZGU9MDtjb25zdCBXZT1uLm1lbW8obi5mb3J3YXJkUmVmKCh6ZSxRZSk9Pntjb25zdFtwdCxidF09RGUoKTtyZXR1cm4gbi51c2VJbXBlcmF0aXZlSGFuZGxlKFFlLCgpPT4oe3BhdGNoRWxlbWVudDpidH0pLFtdKSxuLmNyZWF0ZUVsZW1lbnQobi5GcmFnbWVudCxudWxsLHB0KX0pKTtmdW5jdGlvbiBTdCgpe2NvbnN0IHplPW4udXNlUmVmKG51bGwpLFtRZSxwdF09bi51c2VTdGF0ZShbXSk7bi51c2VFZmZlY3QoKCk9PntRZS5sZW5ndGgmJigoMCxyLlopKFFlKS5mb3JFYWNoKFh0PT57WHQoKX0pLHB0KFtdKSl9LFtRZV0pO2NvbnN0IGJ0PW4udXNlQ2FsbGJhY2soVHQ9PmZ1bmN0aW9uKGZuKXt2YXIgbm47ZGUrPTE7Y29uc3Qgb249bi5jcmVhdGVSZWYoKTtsZXQgTnQ7Y29uc3QgWm49bmV3IFByb21pc2UoTm49PntOdD1Obn0pO2xldCB5bj0hMSxnbjtjb25zdCBCbj1uLmNyZWF0ZUVsZW1lbnQoZ3Qse2tleTpgbW9kYWwtJHtkZX1gLGNvbmZpZzpUdChmbikscmVmOm9uLGFmdGVyQ2xvc2U6KCk9Pntnbj09bnVsbHx8Z24oKX0saXNTaWxlbnQ6KCk9PnluLG9uQ29uZmlybTpObj0+e050KE5uKX19KTtyZXR1cm4gZ249KG5uPXplLmN1cnJlbnQpPT09bnVsbHx8bm49PT12b2lkIDA/dm9pZCAwOm5uLnBhdGNoRWxlbWVudChCbiksZ24mJiQucHVzaChnbikse2Rlc3Ryb3k6KCk9PntmdW5jdGlvbiBObigpe3ZhciBmdDsoZnQ9b24uY3VycmVudCk9PT1udWxsfHxmdD09PXZvaWQgMHx8ZnQuZGVzdHJveSgpfW9uLmN1cnJlbnQ/Tm4oKTpwdChmdD0+W10uY29uY2F0KCgwLHIuWikoZnQpLFtObl0pKX0sdXBkYXRlOk5uPT57ZnVuY3Rpb24gZnQoKXt2YXIgZXQ7KGV0PW9uLmN1cnJlbnQpPT09bnVsbHx8ZXQ9PT12b2lkIDB8fGV0LnVwZGF0ZShObil9b24uY3VycmVudD9mdCgpOnB0KGV0PT5bXS5jb25jYXQoKDAsci5aKShldCksW2Z0XSkpfSx0aGVuOk5uPT4oeW49ITAsWm4udGhlbihObikpfX0sW10pO3JldHVybltuLnVzZU1lbW8oKCk9Pih7aW5mbzpidChMZSksc3VjY2VzczpidChNZSksZXJyb3I6YnQoYmUpLHdhcm5pbmc6YnQod2UpLGNvbmZpcm06YnQoJGUpfSksW10pLG4uY3JlYXRlRWxlbWVudChXZSx7a2V5OiJtb2RhbC1ob2xkZXIiLHJlZjp6ZX0pXX12YXIgY3Q9U3Q7ZnVuY3Rpb24gT2UoemUpe3JldHVybiBhZSh3ZSh6ZSkpfWNvbnN0IEdlPXFlO0dlLnVzZU1vZGFsPWN0LEdlLmluZm89ZnVuY3Rpb24oUWUpe3JldHVybiBhZShMZShRZSkpfSxHZS5zdWNjZXNzPWZ1bmN0aW9uKFFlKXtyZXR1cm4gYWUoTWUoUWUpKX0sR2UuZXJyb3I9ZnVuY3Rpb24oUWUpe3JldHVybiBhZShiZShRZSkpfSxHZS53YXJuaW5nPU9lLEdlLndhcm49T2UsR2UuY29uZmlybT1mdW5jdGlvbihRZSl7cmV0dXJuIGFlKCRlKFFlKSl9LEdlLmRlc3Ryb3lBbGw9ZnVuY3Rpb24oKXtmb3IoOyQubGVuZ3RoOyl7Y29uc3QgUWU9JC5wb3AoKTtRZSYmUWUoKX19LEdlLmNvbmZpZz1rZSxHZS5fSW50ZXJuYWxQYW5lbERvTm90VXNlT3JZb3VXaWxsQmVGaXJlZD11dDt2YXIgaHQ9R2V9LDgzMDA4OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse0E6ZnVuY3Rpb24oKXtyZXR1cm4gYX0sZjpmdW5jdGlvbigpe3JldHVybiBzfX0pO3ZhciByPWUoMjQ0NTcpO2xldCBuPU9iamVjdC5hc3NpZ24oe30sci5aLk1vZGFsKSx0PVtdO2NvbnN0IGk9KCk9PnQucmVkdWNlKCh1LGMpPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdSksYyksci5aLk1vZGFsKTtmdW5jdGlvbiBzKHUpe2lmKHUpe2NvbnN0IGM9T2JqZWN0LmFzc2lnbih7fSx1KTtyZXR1cm4gdC5wdXNoKGMpLG49aSgpLCgpPT57dD10LmZpbHRlcihoPT5oIT09Yyksbj1pKCl9fW49T2JqZWN0LmFzc2lnbih7fSxyLlouTW9kYWwpfWZ1bmN0aW9uIGEoKXtyZXR1cm4gbn19LDcxMTk0OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse0I0OmZ1bmN0aW9uKCl7cmV0dXJuIHd9LFFBOmZ1bmN0aW9uKCl7cmV0dXJuIGR9LGVoOmZ1bmN0aW9uKCl7cmV0dXJuIEV9fSk7dmFyIHI9ZSg3NDkwMiksbj1lKDExNTY4KSx0PWUoNjk5OSksaT1lKDE0NzQ3KSxzPWUoMTY5MzIpLGE9ZSg1MDQzOCksdT1lKDgzMjYyKSxjPWUoODM1NTkpO2Z1bmN0aW9uIGgoeCl7cmV0dXJue3Bvc2l0aW9uOngsaW5zZXQ6MH19Y29uc3QgZD14PT57Y29uc3R7Y29tcG9uZW50Q2xzOk8sYW50Q2xzOlR9PXg7cmV0dXJuW3tbYCR7T30tcm9vdGBdOntbYCR7T30ke1R9LXpvb20tZW50ZXIsICR7T30ke1R9LXpvb20tYXBwZWFyYF06e3RyYW5zZm9ybToibm9uZSIsb3BhY2l0eTowLGFuaW1hdGlvbkR1cmF0aW9uOngubW90aW9uRHVyYXRpb25TbG93LHVzZXJTZWxlY3Q6Im5vbmUifSxbYCR7T30ke1R9LXpvb20tbGVhdmUgJHtPfS1jb250ZW50YF06e3BvaW50ZXJFdmVudHM6Im5vbmUifSxbYCR7T30tbWFza2BdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxoKCJmaXhlZCIpKSx7ekluZGV4OnguekluZGV4UG9wdXBCYXNlLGhlaWdodDoiMTAwJSIsYmFja2dyb3VuZENvbG9yOnguY29sb3JCZ01hc2sscG9pbnRlckV2ZW50czoibm9uZSIsW2Ake099LWhpZGRlbmBdOntkaXNwbGF5OiJub25lIn19KSxbYCR7T30td3JhcGBdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxoKCJmaXhlZCIpKSx7ekluZGV4OnguekluZGV4UG9wdXBCYXNlLG92ZXJmbG93OiJhdXRvIixvdXRsaW5lOjAsV2Via2l0T3ZlcmZsb3dTY3JvbGxpbmc6InRvdWNoIn0pfX0se1tgJHtPfS1yb290YF06KDAscy5KJCkoeCl9XX0sbT14PT57Y29uc3R7Y29tcG9uZW50Q2xzOk99PXg7cmV0dXJuW3tbYCR7T30tcm9vdGBdOntbYCR7T30td3JhcC1ydGxgXTp7ZGlyZWN0aW9uOiJydGwifSxbYCR7T30tY2VudGVyZWRgXTp7dGV4dEFsaWduOiJjZW50ZXIiLCImOjpiZWZvcmUiOntkaXNwbGF5OiJpbmxpbmUtYmxvY2siLHdpZHRoOjAsaGVpZ2h0OiIxMDAlIix2ZXJ0aWNhbEFsaWduOiJtaWRkbGUiLGNvbnRlbnQ6JyIiJ30sW09dOnt0b3A6MCxkaXNwbGF5OiJpbmxpbmUtYmxvY2siLHBhZGRpbmdCb3R0b206MCx0ZXh0QWxpZ246InN0YXJ0Iix2ZXJ0aWNhbEFsaWduOiJtaWRkbGUifX0sW2BAbWVkaWEgKG1heC13aWR0aDogJHt4LnNjcmVlblNNTWF4fXB4KWBdOntbT106e21heFdpZHRoOiJjYWxjKDEwMHZ3IC0gMTZweCkiLG1hcmdpbjpgJHsoMCxuLmJmKSh4Lm1hcmdpblhTKX0gYXV0b2B9LFtgJHtPfS1jZW50ZXJlZGBdOntbT106e2ZsZXg6MX19fX19LHtbT106T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCgwLGkuV2YpKHgpKSx7cG9pbnRlckV2ZW50czoibm9uZSIscG9zaXRpb246InJlbGF0aXZlIix0b3A6MTAwLHdpZHRoOiJhdXRvIixtYXhXaWR0aDpgY2FsYygxMDB2dyAtICR7KDAsbi5iZikoeC5jYWxjKHgubWFyZ2luKS5tdWwoMikuZXF1YWwoKSl9KWAsbWFyZ2luOiIwIGF1dG8iLHBhZGRpbmdCb3R0b206eC5wYWRkaW5nTEcsW2Ake099LXRpdGxlYF06e21hcmdpbjowLGNvbG9yOngudGl0bGVDb2xvcixmb250V2VpZ2h0OnguZm9udFdlaWdodFN0cm9uZyxmb250U2l6ZTp4LnRpdGxlRm9udFNpemUsbGluZUhlaWdodDp4LnRpdGxlTGluZUhlaWdodCx3b3JkV3JhcDoiYnJlYWstd29yZCJ9LFtgJHtPfS1jb250ZW50YF06e3Bvc2l0aW9uOiJyZWxhdGl2ZSIsYmFja2dyb3VuZENvbG9yOnguY29udGVudEJnLGJhY2tncm91bmRDbGlwOiJwYWRkaW5nLWJveCIsYm9yZGVyOjAsYm9yZGVyUmFkaXVzOnguYm9yZGVyUmFkaXVzTEcsYm94U2hhZG93OnguYm94U2hhZG93LHBvaW50ZXJFdmVudHM6ImF1dG8iLHBhZGRpbmc6eC5jb250ZW50UGFkZGluZ30sW2Ake099LWNsb3NlYF06T2JqZWN0LmFzc2lnbih7cG9zaXRpb246ImFic29sdXRlIix0b3A6eC5jYWxjKHgubW9kYWxIZWFkZXJIZWlnaHQpLnN1Yih4Lm1vZGFsQ2xvc2VCdG5TaXplKS5kaXYoMikuZXF1YWwoKSxpbnNldElubGluZUVuZDp4LmNhbGMoeC5tb2RhbEhlYWRlckhlaWdodCkuc3ViKHgubW9kYWxDbG9zZUJ0blNpemUpLmRpdigyKS5lcXVhbCgpLHpJbmRleDp4LmNhbGMoeC56SW5kZXhQb3B1cEJhc2UpLmFkZCgxMCkuZXF1YWwoKSxwYWRkaW5nOjAsY29sb3I6eC5tb2RhbENsb3NlSWNvbkNvbG9yLGZvbnRXZWlnaHQ6eC5mb250V2VpZ2h0U3Ryb25nLGxpbmVIZWlnaHQ6MSx0ZXh0RGVjb3JhdGlvbjoibm9uZSIsYmFja2dyb3VuZDoidHJhbnNwYXJlbnQiLGJvcmRlclJhZGl1czp4LmJvcmRlclJhZGl1c1NNLHdpZHRoOngubW9kYWxDbG9zZUJ0blNpemUsaGVpZ2h0OngubW9kYWxDbG9zZUJ0blNpemUsYm9yZGVyOjAsb3V0bGluZTowLGN1cnNvcjoicG9pbnRlciIsdHJhbnNpdGlvbjpgY29sb3IgJHt4Lm1vdGlvbkR1cmF0aW9uTWlkfSwgYmFja2dyb3VuZC1jb2xvciAke3gubW90aW9uRHVyYXRpb25NaWR9YCwiJi14Ijp7ZGlzcGxheToiZmxleCIsZm9udFNpemU6eC5mb250U2l6ZUxHLGZvbnRTdHlsZToibm9ybWFsIixsaW5lSGVpZ2h0OigwLG4uYmYpKHgubW9kYWxDbG9zZUJ0blNpemUpLGp1c3RpZnlDb250ZW50OiJjZW50ZXIiLHRleHRUcmFuc2Zvcm06Im5vbmUiLHRleHRSZW5kZXJpbmc6ImF1dG8ifSwiJjpkaXNhYmxlZCI6e3BvaW50ZXJFdmVudHM6Im5vbmUifSwiJjpob3ZlciI6e2NvbG9yOngubW9kYWxDbG9zZUljb25Ib3ZlckNvbG9yLGJhY2tncm91bmRDb2xvcjp4LmNvbG9yQmdUZXh0SG92ZXIsdGV4dERlY29yYXRpb246Im5vbmUifSwiJjphY3RpdmUiOntiYWNrZ3JvdW5kQ29sb3I6eC5jb2xvckJnVGV4dEFjdGl2ZX19LCgwLGkuUXkpKHgpKSxbYCR7T30taGVhZGVyYF06e2NvbG9yOnguY29sb3JUZXh0LGJhY2tncm91bmQ6eC5oZWFkZXJCZyxib3JkZXJSYWRpdXM6YCR7KDAsbi5iZikoeC5ib3JkZXJSYWRpdXNMRyl9ICR7KDAsbi5iZikoeC5ib3JkZXJSYWRpdXNMRyl9IDAgMGAsbWFyZ2luQm90dG9tOnguaGVhZGVyTWFyZ2luQm90dG9tLHBhZGRpbmc6eC5oZWFkZXJQYWRkaW5nLGJvcmRlckJvdHRvbTp4LmhlYWRlckJvcmRlckJvdHRvbX0sW2Ake099LWJvZHlgXTp7Zm9udFNpemU6eC5mb250U2l6ZSxsaW5lSGVpZ2h0OngubGluZUhlaWdodCx3b3JkV3JhcDoiYnJlYWstd29yZCIscGFkZGluZzp4LmJvZHlQYWRkaW5nLFtgJHtPfS1ib2R5LXNrZWxldG9uYF06e3dpZHRoOiIxMDAlIixoZWlnaHQ6IjEwMCUiLGRpc3BsYXk6ImZsZXgiLGp1c3RpZnlDb250ZW50OiJjZW50ZXIiLGFsaWduSXRlbXM6ImNlbnRlciIsbWFyZ2luOmAkeygwLG4uYmYpKHgubWFyZ2luKX0gYXV0b2B9fSxbYCR7T30tZm9vdGVyYF06e3RleHRBbGlnbjoiZW5kIixiYWNrZ3JvdW5kOnguZm9vdGVyQmcsbWFyZ2luVG9wOnguZm9vdGVyTWFyZ2luVG9wLHBhZGRpbmc6eC5mb290ZXJQYWRkaW5nLGJvcmRlclRvcDp4LmZvb3RlckJvcmRlclRvcCxib3JkZXJSYWRpdXM6eC5mb290ZXJCb3JkZXJSYWRpdXMsW2A+ICR7eC5hbnRDbHN9LWJ0biArICR7eC5hbnRDbHN9LWJ0bmBdOnttYXJnaW5JbmxpbmVTdGFydDp4Lm1hcmdpblhTfX0sW2Ake099LW9wZW5gXTp7b3ZlcmZsb3c6ImhpZGRlbiJ9fSl9LHtbYCR7T30tcHVyZS1wYW5lbGBdOnt0b3A6ImF1dG8iLHBhZGRpbmc6MCxkaXNwbGF5OiJmbGV4IixmbGV4RGlyZWN0aW9uOiJjb2x1bW4iLFtgJHtPfS1jb250ZW50LAorICAgICAgICAgICR7T30tYm9keSwKKyAgICAgICAgICAke099LWNvbmZpcm0tYm9keS13cmFwcGVyYF06e2Rpc3BsYXk6ImZsZXgiLGZsZXhEaXJlY3Rpb246ImNvbHVtbiIsZmxleDoiYXV0byJ9LFtgJHtPfS1jb25maXJtLWJvZHlgXTp7bWFyZ2luQm90dG9tOiJhdXRvIn19fV19LEM9eD0+e2NvbnN0e2NvbXBvbmVudENsczpPfT14O3JldHVybntbYCR7T30tcm9vdGBdOntbYCR7T30td3JhcC1ydGxgXTp7ZGlyZWN0aW9uOiJydGwiLFtgJHtPfS1jb25maXJtLWJvZHlgXTp7ZGlyZWN0aW9uOiJydGwifX19fX0sZz14PT57Y29uc3R7Y29tcG9uZW50Q2xzOk99PXgsVD0oMCx0LmhkKSh4KTtkZWxldGUgVC54cztjb25zdCBTPU9iamVjdC5rZXlzKFQpLm1hcChMPT4oe1tgQG1lZGlhIChtaW4td2lkdGg6ICR7KDAsbi5iZikoVFtMXSl9KWBdOnt3aWR0aDpgdmFyKC0tJHtPLnJlcGxhY2UoIi4iLCIiKX0tJHtMfS13aWR0aClgfX0pKTtyZXR1cm57W2Ake099LXJvb3RgXTp7W09dOlt7d2lkdGg6YHZhcigtLSR7Ty5yZXBsYWNlKCIuIiwiIil9LXhzLXdpZHRoKWB9XS5jb25jYXQoKDAsci5aKShTKSl9fX0sdz14PT57Y29uc3QgTz14LnBhZGRpbmcsVD14LmZvbnRTaXplSGVhZGluZzUsUz14LmxpbmVIZWlnaHRIZWFkaW5nNTtyZXR1cm4oMCx1LklYKSh4LHttb2RhbEhlYWRlckhlaWdodDp4LmNhbGMoeC5jYWxjKFMpLm11bChUKS5lcXVhbCgpKS5hZGQoeC5jYWxjKE8pLm11bCgyKS5lcXVhbCgpKS5lcXVhbCgpLG1vZGFsRm9vdGVyQm9yZGVyQ29sb3JTcGxpdDp4LmNvbG9yU3BsaXQsbW9kYWxGb290ZXJCb3JkZXJTdHlsZTp4LmxpbmVUeXBlLG1vZGFsRm9vdGVyQm9yZGVyV2lkdGg6eC5saW5lV2lkdGgsbW9kYWxDbG9zZUljb25Db2xvcjp4LmNvbG9ySWNvbixtb2RhbENsb3NlSWNvbkhvdmVyQ29sb3I6eC5jb2xvckljb25Ib3Zlcixtb2RhbENsb3NlQnRuU2l6ZTp4LmNvbnRyb2xIZWlnaHQsbW9kYWxDb25maXJtSWNvblNpemU6eC5mb250SGVpZ2h0LG1vZGFsVGl0bGVIZWlnaHQ6eC5jYWxjKHgudGl0bGVGb250U2l6ZSkubXVsKHgudGl0bGVMaW5lSGVpZ2h0KS5lcXVhbCgpfSl9LEU9eD0+KHtmb290ZXJCZzoidHJhbnNwYXJlbnQiLGhlYWRlckJnOnguY29sb3JCZ0VsZXZhdGVkLHRpdGxlTGluZUhlaWdodDp4LmxpbmVIZWlnaHRIZWFkaW5nNSx0aXRsZUZvbnRTaXplOnguZm9udFNpemVIZWFkaW5nNSxjb250ZW50Qmc6eC5jb2xvckJnRWxldmF0ZWQsdGl0bGVDb2xvcjp4LmNvbG9yVGV4dEhlYWRpbmcsY29udGVudFBhZGRpbmc6eC53aXJlZnJhbWU/MDpgJHsoMCxuLmJmKSh4LnBhZGRpbmdNRCl9ICR7KDAsbi5iZikoeC5wYWRkaW5nQ29udGVudEhvcml6b250YWxMRyl9YCxoZWFkZXJQYWRkaW5nOngud2lyZWZyYW1lP2AkeygwLG4uYmYpKHgucGFkZGluZyl9ICR7KDAsbi5iZikoeC5wYWRkaW5nTEcpfWA6MCxoZWFkZXJCb3JkZXJCb3R0b206eC53aXJlZnJhbWU/YCR7KDAsbi5iZikoeC5saW5lV2lkdGgpfSAke3gubGluZVR5cGV9ICR7eC5jb2xvclNwbGl0fWA6Im5vbmUiLGhlYWRlck1hcmdpbkJvdHRvbTp4LndpcmVmcmFtZT8wOngubWFyZ2luWFMsYm9keVBhZGRpbmc6eC53aXJlZnJhbWU/eC5wYWRkaW5nTEc6MCxmb290ZXJQYWRkaW5nOngud2lyZWZyYW1lP2AkeygwLG4uYmYpKHgucGFkZGluZ1hTKX0gJHsoMCxuLmJmKSh4LnBhZGRpbmcpfWA6MCxmb290ZXJCb3JkZXJUb3A6eC53aXJlZnJhbWU/YCR7KDAsbi5iZikoeC5saW5lV2lkdGgpfSAke3gubGluZVR5cGV9ICR7eC5jb2xvclNwbGl0fWA6Im5vbmUiLGZvb3RlckJvcmRlclJhZGl1czp4LndpcmVmcmFtZT9gMCAwICR7KDAsbi5iZikoeC5ib3JkZXJSYWRpdXNMRyl9ICR7KDAsbi5iZikoeC5ib3JkZXJSYWRpdXNMRyl9YDowLGZvb3Rlck1hcmdpblRvcDp4LndpcmVmcmFtZT8wOngubWFyZ2luU00sY29uZmlybUJvZHlQYWRkaW5nOngud2lyZWZyYW1lP2AkeygwLG4uYmYpKHgucGFkZGluZyoyKX0gJHsoMCxuLmJmKSh4LnBhZGRpbmcqMil9ICR7KDAsbi5iZikoeC5wYWRkaW5nTEcpfWA6MCxjb25maXJtSWNvbk1hcmdpbklubGluZUVuZDp4LndpcmVmcmFtZT94Lm1hcmdpbjp4Lm1hcmdpblNNLGNvbmZpcm1CdG5zTWFyZ2luVG9wOngud2lyZWZyYW1lP3gubWFyZ2luTEc6eC5tYXJnaW5TTX0pO3AuWlA9KDAsYy5JJCkoIk1vZGFsIix4PT57Y29uc3QgTz13KHgpO3JldHVyblttKE8pLEMoTyksZChPKSwoMCxhLl95KShPLCJ6b29tIiksZyhPKV19LEUse3VuaXRsZXNzOnt0aXRsZUxpbmVIZWlnaHQ6ITB9fSl9LDE2NTY4OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1pQOmZ1bmN0aW9uKCl7cmV0dXJuIHV0fX0pO3ZhciByPWUoNjcyOTQpLG49ZSg2Njk2OCksdD1lKDUzMTI0KSxpPWUoMjE1MzIpLHM9ZSg2OTcxMSksYT1lKDg5NzM5KSx1PWUoNDM0MCksYz1lKDk3OTM3KSxoPWUoMjE2NDApLGQ9ZSg3ODg2MCksbT1lKDUwODg4KSxDPWUoOTM5NjcpLGc9ZS5uKEMpLHc9ZSg0Mjk5OSksRT1lKDM1NzkyKSx4PWUoMTE1NjgpLE89ZSg4NzI2MyksVD1lKDE0NzQ3KSxTPWUoODMyNjIpLEw9ZSg4MzU1OSksUj1EZT0+e2NvbnN0e2NvbXBvbmVudENsczpOZSxub3RpZmljYXRpb25NYXJnaW5FZGdlOlhlLGFuaW1hdGlvbk1heEhlaWdodDpKZX09RGUsZ3Q9YCR7TmV9LW5vdGljZWAsZGU9bmV3IHguRTQoImFudE5vdGlmaWNhdGlvbkZhZGVJbiIseyIwJSI6e3RyYW5zZm9ybToidHJhbnNsYXRlM2QoMTAwJSwgMCwgMCkiLG9wYWNpdHk6MH0sIjEwMCUiOnt0cmFuc2Zvcm06InRyYW5zbGF0ZTNkKDAsIDAsIDApIixvcGFjaXR5OjF9fSksV2U9bmV3IHguRTQoImFudE5vdGlmaWNhdGlvblRvcEZhZGVJbiIseyIwJSI6e3RvcDotSmUsb3BhY2l0eTowfSwiMTAwJSI6e3RvcDowLG9wYWNpdHk6MX19KSxTdD1uZXcgeC5FNCgiYW50Tm90aWZpY2F0aW9uQm90dG9tRmFkZUluIix7IjAlIjp7Ym90dG9tOkRlLmNhbGMoSmUpLm11bCgtMSkuZXF1YWwoKSxvcGFjaXR5OjB9LCIxMDAlIjp7Ym90dG9tOjAsb3BhY2l0eToxfX0pLGN0PW5ldyB4LkU0KCJhbnROb3RpZmljYXRpb25MZWZ0RmFkZUluIix7IjAlIjp7dHJhbnNmb3JtOiJ0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCkiLG9wYWNpdHk6MH0sIjEwMCUiOnt0cmFuc2Zvcm06InRyYW5zbGF0ZTNkKDAsIDAsIDApIixvcGFjaXR5OjF9fSk7cmV0dXJue1tOZV06e1tgJiR7TmV9LXRvcCwgJiR7TmV9LWJvdHRvbWBdOnttYXJnaW5JbmxpbmU6MCxbZ3RdOnttYXJnaW5JbmxpbmU6ImF1dG8gYXV0byJ9fSxbYCYke05lfS10b3BgXTp7W2Ake05lfS1mYWRlLWVudGVyJHtOZX0tZmFkZS1lbnRlci1hY3RpdmUsICR7TmV9LWZhZGUtYXBwZWFyJHtOZX0tZmFkZS1hcHBlYXItYWN0aXZlYF06e2FuaW1hdGlvbk5hbWU6V2V9fSxbYCYke05lfS1ib3R0b21gXTp7W2Ake05lfS1mYWRlLWVudGVyJHtOZX0tZmFkZS1lbnRlci1hY3RpdmUsICR7TmV9LWZhZGUtYXBwZWFyJHtOZX0tZmFkZS1hcHBlYXItYWN0aXZlYF06e2FuaW1hdGlvbk5hbWU6U3R9fSxbYCYke05lfS10b3BSaWdodCwgJiR7TmV9LWJvdHRvbVJpZ2h0YF06e1tgJHtOZX0tZmFkZS1lbnRlciR7TmV9LWZhZGUtZW50ZXItYWN0aXZlLCAke05lfS1mYWRlLWFwcGVhciR7TmV9LWZhZGUtYXBwZWFyLWFjdGl2ZWBdOnthbmltYXRpb25OYW1lOmRlfX0sW2AmJHtOZX0tdG9wTGVmdCwgJiR7TmV9LWJvdHRvbUxlZnRgXTp7bWFyZ2luUmlnaHQ6e3ZhbHVlOjAsX3NraXBfY2hlY2tfOiEwfSxtYXJnaW5MZWZ0Ont2YWx1ZTpYZSxfc2tpcF9jaGVja186ITB9LFtndF06e21hcmdpbklubGluZUVuZDoiYXV0byIsbWFyZ2luSW5saW5lU3RhcnQ6MH0sW2Ake05lfS1mYWRlLWVudGVyJHtOZX0tZmFkZS1lbnRlci1hY3RpdmUsICR7TmV9LWZhZGUtYXBwZWFyJHtOZX0tZmFkZS1hcHBlYXItYWN0aXZlYF06e2FuaW1hdGlvbk5hbWU6Y3R9fX19fTtjb25zdCB6PVsidG9wIiwidG9wTGVmdCIsInRvcFJpZ2h0IiwiYm90dG9tIiwiYm90dG9tTGVmdCIsImJvdHRvbVJpZ2h0Il0sRz17dG9wTGVmdDoibGVmdCIsdG9wUmlnaHQ6InJpZ2h0Iixib3R0b21MZWZ0OiJsZWZ0Iixib3R0b21SaWdodDoicmlnaHQiLHRvcDoibGVmdCIsYm90dG9tOiJsZWZ0In0sWT0oRGUsTmUpPT57Y29uc3R7Y29tcG9uZW50Q2xzOlhlfT1EZTtyZXR1cm57W2Ake1hlfS0ke05lfWBdOntbYCYke1hlfS1zdGFjayA+ICR7WGV9LW5vdGljZS13cmFwcGVyYF06e1tOZS5zdGFydHNXaXRoKCJ0b3AiKT8idG9wIjoiYm90dG9tIl06MCxbR1tOZV1dOnt2YWx1ZTowLF9za2lwX2NoZWNrXzohMH19fX19LGVlPURlPT57Y29uc3QgTmU9e307Zm9yKGxldCBYZT0xO1hlPERlLm5vdGlmaWNhdGlvblN0YWNrTGF5ZXI7WGUrKylOZVtgJjpudGgtbGFzdC1jaGlsZCgke1hlKzF9KWBdPXtvdmVyZmxvdzoiaGlkZGVuIixbYCYgPiAke0RlLmNvbXBvbmVudENsc30tbm90aWNlYF06e29wYWNpdHk6MCx0cmFuc2l0aW9uOmBvcGFjaXR5ICR7RGUubW90aW9uRHVyYXRpb25NaWR9YH19O3JldHVybiBPYmplY3QuYXNzaWduKHtbYCY6bm90KDpudGgtbGFzdC1jaGlsZCgtbiske0RlLm5vdGlmaWNhdGlvblN0YWNrTGF5ZXJ9KSlgXTp7b3BhY2l0eTowLG92ZXJmbG93OiJoaWRkZW4iLGNvbG9yOiJ0cmFuc3BhcmVudCIscG9pbnRlckV2ZW50czoibm9uZSJ9fSxOZSl9LEo9RGU9Pntjb25zdCBOZT17fTtmb3IobGV0IFhlPTE7WGU8RGUubm90aWZpY2F0aW9uU3RhY2tMYXllcjtYZSsrKU5lW2AmOm50aC1sYXN0LWNoaWxkKCR7WGUrMX0pYF09e2JhY2tncm91bmQ6RGUuY29sb3JCZ0JsdXIsYmFja2Ryb3BGaWx0ZXI6ImJsdXIoMTBweCkiLCItd2Via2l0LWJhY2tkcm9wLWZpbHRlciI6ImJsdXIoMTBweCkifTtyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSxOZSl9O3ZhciB0ZT1EZT0+e2NvbnN0e2NvbXBvbmVudENsczpOZX09RGU7cmV0dXJuIE9iamVjdC5hc3NpZ24oe1tgJHtOZX0tc3RhY2tgXTp7W2AmID4gJHtOZX0tbm90aWNlLXdyYXBwZXJgXTpPYmplY3QuYXNzaWduKHt0cmFuc2l0aW9uOmB0cmFuc2Zvcm0gJHtEZS5tb3Rpb25EdXJhdGlvblNsb3d9LCBiYWNrZHJvcC1maWx0ZXIgMHNgLHdpbGxDaGFuZ2U6InRyYW5zZm9ybSwgb3BhY2l0eSIscG9zaXRpb246ImFic29sdXRlIn0sZWUoRGUpKX0sW2Ake05lfS1zdGFjazpub3QoJHtOZX0tc3RhY2stZXhwYW5kZWQpYF06e1tgJiA+ICR7TmV9LW5vdGljZS13cmFwcGVyYF06T2JqZWN0LmFzc2lnbih7fSxKKERlKSl9LFtgJHtOZX0tc3RhY2ske05lfS1zdGFjay1leHBhbmRlZGBdOntbYCYgPiAke05lfS1ub3RpY2Utd3JhcHBlcmBdOnsiJjpub3QoOm50aC1sYXN0LWNoaWxkKC1uICsgMSkpIjp7b3BhY2l0eToxLG92ZXJmbG93OiJ1bnNldCIsY29sb3I6ImluaGVyaXQiLHBvaW50ZXJFdmVudHM6ImF1dG8iLFtgJiA+ICR7RGUuY29tcG9uZW50Q2xzfS1ub3RpY2VgXTp7b3BhY2l0eToxfX0sIiY6YWZ0ZXIiOntjb250ZW50OiciIicscG9zaXRpb246ImFic29sdXRlIixoZWlnaHQ6RGUubWFyZ2luLHdpZHRoOiIxMDAlIixpbnNldElubGluZTowLGJvdHRvbTpEZS5jYWxjKERlLm1hcmdpbikubXVsKC0xKS5lcXVhbCgpLGJhY2tncm91bmQ6InRyYW5zcGFyZW50Iixwb2ludGVyRXZlbnRzOiJhdXRvIn19fX0sei5tYXAoWGU9PlkoRGUsWGUpKS5yZWR1Y2UoKFhlLEplKT0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LFhlKSxKZSkse30pKX07Y29uc3QgbGU9RGU9Pntjb25zdHtpY29uQ2xzOk5lLGNvbXBvbmVudENsczpYZSxib3hTaGFkb3c6SmUsZm9udFNpemVMRzpndCxub3RpZmljYXRpb25NYXJnaW5Cb3R0b206ZGUsYm9yZGVyUmFkaXVzTEc6V2UsY29sb3JTdWNjZXNzOlN0LGNvbG9ySW5mbzpjdCxjb2xvcldhcm5pbmc6T2UsY29sb3JFcnJvcjpHZSxjb2xvclRleHRIZWFkaW5nOmh0LG5vdGlmaWNhdGlvbkJnOnplLG5vdGlmaWNhdGlvblBhZGRpbmc6UWUsbm90aWZpY2F0aW9uTWFyZ2luRWRnZTpwdCxub3RpZmljYXRpb25Qcm9ncmVzc0JnOmJ0LG5vdGlmaWNhdGlvblByb2dyZXNzSGVpZ2h0Okl0LGZvbnRTaXplOlR0LGxpbmVIZWlnaHQ6WHQsd2lkdGg6Zm4sbm90aWZpY2F0aW9uSWNvblNpemU6bm4sY29sb3JUZXh0Om9ufT1EZSxOdD1gJHtYZX0tbm90aWNlYDtyZXR1cm57cG9zaXRpb246InJlbGF0aXZlIixtYXJnaW5Cb3R0b206ZGUsbWFyZ2luSW5saW5lU3RhcnQ6ImF1dG8iLGJhY2tncm91bmQ6emUsYm9yZGVyUmFkaXVzOldlLGJveFNoYWRvdzpKZSxbTnRdOntwYWRkaW5nOlFlLHdpZHRoOmZuLG1heFdpZHRoOmBjYWxjKDEwMHZ3IC0gJHsoMCx4LmJmKShEZS5jYWxjKHB0KS5tdWwoMikuZXF1YWwoKSl9KWAsb3ZlcmZsb3c6ImhpZGRlbiIsbGluZUhlaWdodDpYdCx3b3JkV3JhcDoiYnJlYWstd29yZCJ9LFtgJHtOdH0tbWVzc2FnZWBdOnttYXJnaW5Cb3R0b206RGUubWFyZ2luWFMsY29sb3I6aHQsZm9udFNpemU6Z3QsbGluZUhlaWdodDpEZS5saW5lSGVpZ2h0TEd9LFtgJHtOdH0tZGVzY3JpcHRpb25gXTp7Zm9udFNpemU6VHQsY29sb3I6b259LFtgJHtOdH0tY2xvc2FibGUgJHtOdH0tbWVzc2FnZWBdOntwYWRkaW5nSW5saW5lRW5kOkRlLnBhZGRpbmdMR30sW2Ake050fS13aXRoLWljb24gJHtOdH0tbWVzc2FnZWBdOnttYXJnaW5Cb3R0b206RGUubWFyZ2luWFMsbWFyZ2luSW5saW5lU3RhcnQ6RGUuY2FsYyhEZS5tYXJnaW5TTSkuYWRkKG5uKS5lcXVhbCgpLGZvbnRTaXplOmd0fSxbYCR7TnR9LXdpdGgtaWNvbiAke050fS1kZXNjcmlwdGlvbmBdOnttYXJnaW5JbmxpbmVTdGFydDpEZS5jYWxjKERlLm1hcmdpblNNKS5hZGQobm4pLmVxdWFsKCksZm9udFNpemU6VHR9LFtgJHtOdH0taWNvbmBdOntwb3NpdGlvbjoiYWJzb2x1dGUiLGZvbnRTaXplOm5uLGxpbmVIZWlnaHQ6MSxbYCYtc3VjY2VzcyR7TmV9YF06e2NvbG9yOlN0fSxbYCYtaW5mbyR7TmV9YF06e2NvbG9yOmN0fSxbYCYtd2FybmluZyR7TmV9YF06e2NvbG9yOk9lfSxbYCYtZXJyb3Ike05lfWBdOntjb2xvcjpHZX19LFtgJHtOdH0tY2xvc2VgXTpPYmplY3QuYXNzaWduKHtwb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDpEZS5ub3RpZmljYXRpb25QYWRkaW5nVmVydGljYWwsaW5zZXRJbmxpbmVFbmQ6RGUubm90aWZpY2F0aW9uUGFkZGluZ0hvcml6b250YWwsY29sb3I6RGUuY29sb3JJY29uLG91dGxpbmU6Im5vbmUiLHdpZHRoOkRlLm5vdGlmaWNhdGlvbkNsb3NlQnV0dG9uU2l6ZSxoZWlnaHQ6RGUubm90aWZpY2F0aW9uQ2xvc2VCdXR0b25TaXplLGJvcmRlclJhZGl1czpEZS5ib3JkZXJSYWRpdXNTTSx0cmFuc2l0aW9uOmBiYWNrZ3JvdW5kLWNvbG9yICR7RGUubW90aW9uRHVyYXRpb25NaWR9LCBjb2xvciAke0RlLm1vdGlvbkR1cmF0aW9uTWlkfWAsZGlzcGxheToiZmxleCIsYWxpZ25JdGVtczoiY2VudGVyIixqdXN0aWZ5Q29udGVudDoiY2VudGVyIiwiJjpob3ZlciI6e2NvbG9yOkRlLmNvbG9ySWNvbkhvdmVyLGJhY2tncm91bmRDb2xvcjpEZS5jb2xvckJnVGV4dEhvdmVyfSwiJjphY3RpdmUiOntiYWNrZ3JvdW5kQ29sb3I6RGUuY29sb3JCZ1RleHRBY3RpdmV9fSwoMCxULlF5KShEZSkpLFtgJHtOdH0tcHJvZ3Jlc3NgXTp7cG9zaXRpb246ImFic29sdXRlIixkaXNwbGF5OiJibG9jayIsYXBwZWFyYW5jZToibm9uZSIsV2Via2l0QXBwZWFyYW5jZToibm9uZSIsaW5saW5lU2l6ZTpgY2FsYygxMDAlIC0gJHsoMCx4LmJmKShXZSl9ICogMilgLGxlZnQ6e19za2lwX2NoZWNrXzohMCx2YWx1ZTpXZX0scmlnaHQ6e19za2lwX2NoZWNrXzohMCx2YWx1ZTpXZX0sYm90dG9tOjAsYmxvY2tTaXplOkl0LGJvcmRlcjowLCImLCAmOjotd2Via2l0LXByb2dyZXNzLWJhciI6e2JvcmRlclJhZGl1czpXZSxiYWNrZ3JvdW5kQ29sb3I6InJnYmEoMCwgMCwgMCwgMC4wNCkifSwiJjo6LW1vei1wcm9ncmVzcy1iYXIiOntiYWNrZ3JvdW5kOmJ0fSwiJjo6LXdlYmtpdC1wcm9ncmVzcy12YWx1ZSI6e2JvcmRlclJhZGl1czpXZSxiYWNrZ3JvdW5kOmJ0fX0sW2Ake050fS1hY3Rpb25zYF06e2Zsb2F0OiJyaWdodCIsbWFyZ2luVG9wOkRlLm1hcmdpblNNfX19LGNlPURlPT57Y29uc3R7Y29tcG9uZW50Q2xzOk5lLG5vdGlmaWNhdGlvbk1hcmdpbkJvdHRvbTpYZSxub3RpZmljYXRpb25NYXJnaW5FZGdlOkplLG1vdGlvbkR1cmF0aW9uTWlkOmd0LG1vdGlvbkVhc2VJbk91dDpkZX09RGUsV2U9YCR7TmV9LW5vdGljZWAsU3Q9bmV3IHguRTQoImFudE5vdGlmaWNhdGlvbkZhZGVPdXQiLHsiMCUiOnttYXhIZWlnaHQ6RGUuYW5pbWF0aW9uTWF4SGVpZ2h0LG1hcmdpbkJvdHRvbTpYZX0sIjEwMCUiOnttYXhIZWlnaHQ6MCxtYXJnaW5Cb3R0b206MCxwYWRkaW5nVG9wOjAscGFkZGluZ0JvdHRvbTowLG9wYWNpdHk6MH19KTtyZXR1cm5be1tOZV06T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCgwLFQuV2YpKERlKSkse3Bvc2l0aW9uOiJmaXhlZCIsekluZGV4OkRlLnpJbmRleFBvcHVwLG1hcmdpblJpZ2h0Ont2YWx1ZTpKZSxfc2tpcF9jaGVja186ITB9LFtgJHtOZX0taG9vay1ob2xkZXJgXTp7cG9zaXRpb246InJlbGF0aXZlIn0sW2Ake05lfS1mYWRlLWFwcGVhci1wcmVwYXJlYF06e29wYWNpdHk6IjAgIWltcG9ydGFudCJ9LFtgJHtOZX0tZmFkZS1lbnRlciwgJHtOZX0tZmFkZS1hcHBlYXJgXTp7YW5pbWF0aW9uRHVyYXRpb246RGUubW90aW9uRHVyYXRpb25NaWQsYW5pbWF0aW9uVGltaW5nRnVuY3Rpb246ZGUsYW5pbWF0aW9uRmlsbE1vZGU6ImJvdGgiLG9wYWNpdHk6MCxhbmltYXRpb25QbGF5U3RhdGU6InBhdXNlZCJ9LFtgJHtOZX0tZmFkZS1sZWF2ZWBdOnthbmltYXRpb25UaW1pbmdGdW5jdGlvbjpkZSxhbmltYXRpb25GaWxsTW9kZToiYm90aCIsYW5pbWF0aW9uRHVyYXRpb246Z3QsYW5pbWF0aW9uUGxheVN0YXRlOiJwYXVzZWQifSxbYCR7TmV9LWZhZGUtZW50ZXIke05lfS1mYWRlLWVudGVyLWFjdGl2ZSwgJHtOZX0tZmFkZS1hcHBlYXIke05lfS1mYWRlLWFwcGVhci1hY3RpdmVgXTp7YW5pbWF0aW9uUGxheVN0YXRlOiJydW5uaW5nIn0sW2Ake05lfS1mYWRlLWxlYXZlJHtOZX0tZmFkZS1sZWF2ZS1hY3RpdmVgXTp7YW5pbWF0aW9uTmFtZTpTdCxhbmltYXRpb25QbGF5U3RhdGU6InJ1bm5pbmcifSwiJi1ydGwiOntkaXJlY3Rpb246InJ0bCIsW2Ake1dlfS1hY3Rpb25zYF06e2Zsb2F0OiJsZWZ0In19fSl9LHtbTmVdOntbYCR7V2V9LXdyYXBwZXJgXTpPYmplY3QuYXNzaWduKHt9LGxlKERlKSl9fV19LFc9RGU9Pih7ekluZGV4UG9wdXA6RGUuekluZGV4UG9wdXBCYXNlK08udTYrNTAsd2lkdGg6Mzg0fSksaj1EZT0+e2NvbnN0IE5lPURlLnBhZGRpbmdNRCxYZT1EZS5wYWRkaW5nTEc7cmV0dXJuKDAsUy5JWCkoRGUse25vdGlmaWNhdGlvbkJnOkRlLmNvbG9yQmdFbGV2YXRlZCxub3RpZmljYXRpb25QYWRkaW5nVmVydGljYWw6TmUsbm90aWZpY2F0aW9uUGFkZGluZ0hvcml6b250YWw6WGUsbm90aWZpY2F0aW9uSWNvblNpemU6RGUuY2FsYyhEZS5mb250U2l6ZUxHKS5tdWwoRGUubGluZUhlaWdodExHKS5lcXVhbCgpLG5vdGlmaWNhdGlvbkNsb3NlQnV0dG9uU2l6ZTpEZS5jYWxjKERlLmNvbnRyb2xIZWlnaHRMRykubXVsKC41NSkuZXF1YWwoKSxub3RpZmljYXRpb25NYXJnaW5Cb3R0b206RGUubWFyZ2luLG5vdGlmaWNhdGlvblBhZGRpbmc6YCR7KDAseC5iZikoRGUucGFkZGluZ01EKX0gJHsoMCx4LmJmKShEZS5wYWRkaW5nQ29udGVudEhvcml6b250YWxMRyl9YCxub3RpZmljYXRpb25NYXJnaW5FZGdlOkRlLm1hcmdpbkxHLGFuaW1hdGlvbk1heEhlaWdodDoxNTAsbm90aWZpY2F0aW9uU3RhY2tMYXllcjozLG5vdGlmaWNhdGlvblByb2dyZXNzSGVpZ2h0OjIsbm90aWZpY2F0aW9uUHJvZ3Jlc3NCZzpgbGluZWFyLWdyYWRpZW50KDkwZGVnLCAke0RlLmNvbG9yUHJpbWFyeUJvcmRlckhvdmVyfSwgJHtEZS5jb2xvclByaW1hcnl9KWB9KX07dmFyIEQ9KDAsTC5JJCkoIk5vdGlmaWNhdGlvbiIsRGU9Pntjb25zdCBOZT1qKERlKTtyZXR1cm5bY2UoTmUpLFIoTmUpLHRlKE5lKV19LFcpLFY9KDAsTC5iaykoWyJOb3RpZmljYXRpb24iLCJQdXJlUGFuZWwiXSxEZT0+e2NvbnN0IE5lPWAke0RlLmNvbXBvbmVudENsc30tbm90aWNlYCxYZT1qKERlKTtyZXR1cm57W2Ake05lfS1wdXJlLXBhbmVsYF06T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGxlKFhlKSkse3dpZHRoOlhlLndpZHRoLG1heFdpZHRoOmBjYWxjKDEwMHZ3IC0gJHsoMCx4LmJmKShEZS5jYWxjKFhlLm5vdGlmaWNhdGlvbk1hcmdpbkVkZ2UpLm11bCgyKS5lcXVhbCgpKX0pYCxtYXJnaW46MH0pfX0sVyksWj1mdW5jdGlvbihEZSxOZSl7dmFyIFhlPXt9O2Zvcih2YXIgSmUgaW4gRGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKERlLEplKSYmTmUuaW5kZXhPZihKZSk8MCYmKFhlW0plXT1EZVtKZV0pO2lmKERlIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIGd0PTAsSmU9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhEZSk7Z3Q8SmUubGVuZ3RoO2d0KyspTmUuaW5kZXhPZihKZVtndF0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChEZSxKZVtndF0pJiYoWGVbSmVbZ3RdXT1EZVtKZVtndF1dKTtyZXR1cm4gWGV9O2NvbnN0IFA9e2luZm86ci5jcmVhdGVFbGVtZW50KGQuWixudWxsKSxzdWNjZXNzOnIuY3JlYXRlRWxlbWVudChhLlosbnVsbCksZXJyb3I6ci5jcmVhdGVFbGVtZW50KHUuWixudWxsKSx3YXJuaW5nOnIuY3JlYXRlRWxlbWVudChoLlosbnVsbCksbG9hZGluZzpyLmNyZWF0ZUVsZW1lbnQobS5aLG51bGwpfTtmdW5jdGlvbiBLKERlLE5lKXtyZXR1cm4gTmU9PT1udWxsfHxOZT09PSExP251bGw6TmV8fHIuY3JlYXRlRWxlbWVudChjLlose2NsYXNzTmFtZTpgJHtEZX0tY2xvc2UtaWNvbmB9KX1jb25zdCBzZT17c3VjY2VzczphLlosaW5mbzpkLlosZXJyb3I6dS5aLHdhcm5pbmc6aC5afSxuZT1EZT0+e2NvbnN0e3ByZWZpeENsczpOZSxpY29uOlhlLHR5cGU6SmUsbWVzc2FnZTpndCxkZXNjcmlwdGlvbjpkZSxhY3Rpb25zOldlLHJvbGU6U3Q9ImFsZXJ0In09RGU7bGV0IGN0PW51bGw7cmV0dXJuIFhlP2N0PXIuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpgJHtOZX0taWNvbmB9LFhlKTpKZSYmKGN0PXIuY3JlYXRlRWxlbWVudChzZVtKZV18fG51bGwse2NsYXNzTmFtZTpnKCkoYCR7TmV9LWljb25gLGAke05lfS1pY29uLSR7SmV9YCl9KSksci5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ZygpKHtbYCR7TmV9LXdpdGgtaWNvbmBdOmN0fSkscm9sZTpTdH0sY3Qsci5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YCR7TmV9LW1lc3NhZ2VgfSxndCksci5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YCR7TmV9LWRlc2NyaXB0aW9uYH0sZGUpLFdlJiZyLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpgJHtOZX0tYWN0aW9uc2B9LFdlKSl9O3ZhciBmZT1EZT0+e2NvbnN0e3ByZWZpeENsczpOZSxjbGFzc05hbWU6WGUsaWNvbjpKZSx0eXBlOmd0LG1lc3NhZ2U6ZGUsZGVzY3JpcHRpb246V2UsYnRuOlN0LGFjdGlvbnM6Y3QsY2xvc2FibGU6T2U9ITAsY2xvc2VJY29uOkdlLGNsYXNzTmFtZTpodH09RGUsemU9WihEZSxbInByZWZpeENscyIsImNsYXNzTmFtZSIsImljb24iLCJ0eXBlIiwibWVzc2FnZSIsImRlc2NyaXB0aW9uIiwiYnRuIiwiYWN0aW9ucyIsImNsb3NhYmxlIiwiY2xvc2VJY29uIiwiY2xhc3NOYW1lIl0pLHtnZXRQcmVmaXhDbHM6UWV9PXIudXNlQ29udGV4dCh0LkVfKSxwdD1jdCE9bnVsbD9jdDpTdCxidD1OZXx8UWUoIm5vdGlmaWNhdGlvbiIpLEl0PWAke2J0fS1ub3RpY2VgLFR0PSgwLEUuWikoYnQpLFtYdCxmbixubl09RChidCxUdCk7cmV0dXJuIFh0KHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmcoKShgJHtJdH0tcHVyZS1wYW5lbGAsZm4sWGUsbm4sVHQpfSxyLmNyZWF0ZUVsZW1lbnQoVix7cHJlZml4Q2xzOmJ0fSksci5jcmVhdGVFbGVtZW50KHcucVgsT2JqZWN0LmFzc2lnbih7fSx6ZSx7cHJlZml4Q2xzOmJ0LGV2ZW50S2V5OiJwdXJlIixkdXJhdGlvbjpudWxsLGNsb3NhYmxlOk9lLGNsYXNzTmFtZTpnKCkoe25vdGlmaWNhdGlvbkNsYXNzTmFtZTpodH0pLGNsb3NlSWNvbjpLKGJ0LEdlKSxjb250ZW50OnIuY3JlYXRlRWxlbWVudChuZSx7cHJlZml4Q2xzOkl0LGljb246SmUsdHlwZTpndCxtZXNzYWdlOmRlLGRlc2NyaXB0aW9uOldlLGFjdGlvbnM6cHR9KX0pKSkpfSxFZT1lKDI3Mjg4KSxSZT1lKDI5NjkxKTtmdW5jdGlvbiBCZShEZSxOZSxYZSl7bGV0IEplO3N3aXRjaChEZSl7Y2FzZSJ0b3AiOkplPXtsZWZ0OiI1MCUiLHRyYW5zZm9ybToidHJhbnNsYXRlWCgtNTAlKSIscmlnaHQ6ImF1dG8iLHRvcDpOZSxib3R0b206ImF1dG8ifTticmVhaztjYXNlInRvcExlZnQiOkplPXtsZWZ0OjAsdG9wOk5lLGJvdHRvbToiYXV0byJ9O2JyZWFrO2Nhc2UidG9wUmlnaHQiOkplPXtyaWdodDowLHRvcDpOZSxib3R0b206ImF1dG8ifTticmVhaztjYXNlImJvdHRvbSI6SmU9e2xlZnQ6IjUwJSIsdHJhbnNmb3JtOiJ0cmFuc2xhdGVYKC01MCUpIixyaWdodDoiYXV0byIsdG9wOiJhdXRvIixib3R0b206WGV9O2JyZWFrO2Nhc2UiYm90dG9tTGVmdCI6SmU9e2xlZnQ6MCx0b3A6ImF1dG8iLGJvdHRvbTpYZX07YnJlYWs7ZGVmYXVsdDpKZT17cmlnaHQ6MCx0b3A6ImF1dG8iLGJvdHRvbTpYZX07YnJlYWt9cmV0dXJuIEplfWZ1bmN0aW9uIFllKERlKXtyZXR1cm57bW90aW9uTmFtZTpgJHtEZX0tZmFkZWB9fWZ1bmN0aW9uIG90KERlLE5lLFhlKXtyZXR1cm4gdHlwZW9mIERlIT0idW5kZWZpbmVkIj9EZTp0eXBlb2YoTmU9PW51bGw/dm9pZCAwOk5lLmNsb3NlSWNvbikhPSJ1bmRlZmluZWQiP05lLmNsb3NlSWNvbjpYZT09bnVsbD92b2lkIDA6WGUuY2xvc2VJY29ufXZhciBxZT1mdW5jdGlvbihEZSxOZSl7dmFyIFhlPXt9O2Zvcih2YXIgSmUgaW4gRGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKERlLEplKSYmTmUuaW5kZXhPZihKZSk8MCYmKFhlW0plXT1EZVtKZV0pO2lmKERlIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIGd0PTAsSmU9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhEZSk7Z3Q8SmUubGVuZ3RoO2d0KyspTmUuaW5kZXhPZihKZVtndF0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChEZSxKZVtndF0pJiYoWGVbSmVbZ3RdXT1EZVtKZVtndF1dKTtyZXR1cm4gWGV9O2NvbnN0IF9lPTI0LEZlPTQuNSxTZT0idG9wUmlnaHQiLHE9RGU9PntsZXR7Y2hpbGRyZW46TmUscHJlZml4Q2xzOlhlfT1EZTtjb25zdCBKZT0oMCxFLlopKFhlKSxbZ3QsZGUsV2VdPUQoWGUsSmUpO3JldHVybiBndChyLmNyZWF0ZUVsZW1lbnQody5KQix7Y2xhc3NOYW1lczp7bGlzdDpnKCkoZGUsV2UsSmUpfX0sTmUpKX0saz0oRGUsTmUpPT57bGV0e3ByZWZpeENsczpYZSxrZXk6SmV9PU5lO3JldHVybiByLmNyZWF0ZUVsZW1lbnQocSx7cHJlZml4Q2xzOlhlLGtleTpKZX0sRGUpfSxNPXIuZm9yd2FyZFJlZigoRGUsTmUpPT57Y29uc3R7dG9wOlhlLGJvdHRvbTpKZSxwcmVmaXhDbHM6Z3QsZ2V0Q29udGFpbmVyOmRlLG1heENvdW50OldlLHJ0bDpTdCxvbkFsbFJlbW92ZWQ6Y3Qsc3RhY2s6T2UsZHVyYXRpb246R2UscGF1c2VPbkhvdmVyOmh0PSEwLHNob3dQcm9ncmVzczp6ZX09RGUse2dldFByZWZpeENsczpRZSxnZXRQb3B1cENvbnRhaW5lcjpwdCxub3RpZmljYXRpb246YnQsZGlyZWN0aW9uOkl0fT0oMCxyLnVzZUNvbnRleHQpKHQuRV8pLFssVHRdPSgwLFJlLlpQKSgpLFh0PWd0fHxRZSgibm90aWZpY2F0aW9uIiksZm49eW49PkJlKHluLFhlIT1udWxsP1hlOl9lLEplIT1udWxsP0plOl9lKSxubj0oKT0+ZygpKHtbYCR7WHR9LXJ0bGBdOlN0IT1udWxsP1N0Okl0PT09InJ0bCJ9KSxvbj0oKT0+WWUoWHQpLFtOdCxabl09KDAsdy5sbSkoe3ByZWZpeENsczpYdCxzdHlsZTpmbixjbGFzc05hbWU6bm4sbW90aW9uOm9uLGNsb3NhYmxlOiEwLGNsb3NlSWNvbjpLKFh0KSxkdXJhdGlvbjpHZSE9bnVsbD9HZTpGZSxnZXRDb250YWluZXI6KCk9PihkZT09bnVsbD92b2lkIDA6ZGUoKSl8fChwdD09bnVsbD92b2lkIDA6cHQoKSl8fGRvY3VtZW50LmJvZHksbWF4Q291bnQ6V2UscGF1c2VPbkhvdmVyOmh0LHNob3dQcm9ncmVzczp6ZSxvbkFsbFJlbW92ZWQ6Y3QscmVuZGVyTm90aWZpY2F0aW9uczprLHN0YWNrOk9lPT09ITE/ITE6e3RocmVzaG9sZDp0eXBlb2YgT2U9PSJvYmplY3QiP09lPT1udWxsP3ZvaWQgMDpPZS50aHJlc2hvbGQ6dm9pZCAwLG9mZnNldDo4LGdhcDpUdC5tYXJnaW59fSk7cmV0dXJuIHIudXNlSW1wZXJhdGl2ZUhhbmRsZShOZSwoKT0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LE50KSx7cHJlZml4Q2xzOlh0LG5vdGlmaWNhdGlvbjpidH0pKSxabn0pO2Z1bmN0aW9uIEEoRGUpe2NvbnN0IE5lPXIudXNlUmVmKG51bGwpLFhlPSgwLEVlLmxuKSgiTm90aWZpY2F0aW9uIik7cmV0dXJuW3IudXNlTWVtbygoKT0+e2NvbnN0IGd0PWN0PT57dmFyIE9lO2lmKCFOZS5jdXJyZW50KXJldHVybjtjb25zdHtvcGVuOkdlLHByZWZpeENsczpodCxub3RpZmljYXRpb246emV9PU5lLmN1cnJlbnQsUWU9YCR7aHR9LW5vdGljZWAse21lc3NhZ2U6cHQsZGVzY3JpcHRpb246YnQsaWNvbjpJdCx0eXBlOlR0LGJ0bjpYdCxhY3Rpb25zOmZuLGNsYXNzTmFtZTpubixzdHlsZTpvbixyb2xlOk50PSJhbGVydCIsY2xvc2VJY29uOlpuLGNsb3NhYmxlOnlufT1jdCxnbj1xZShjdCxbIm1lc3NhZ2UiLCJkZXNjcmlwdGlvbiIsImljb24iLCJ0eXBlIiwiYnRuIiwiYWN0aW9ucyIsImNsYXNzTmFtZSIsInN0eWxlIiwicm9sZSIsImNsb3NlSWNvbiIsImNsb3NhYmxlIl0pLEJuPWZuIT1udWxsP2ZuOlh0LFZuPUsoUWUsb3QoWm4sRGUsemUpKTtyZXR1cm4gR2UoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHtwbGFjZW1lbnQ6KE9lPURlPT1udWxsP3ZvaWQgMDpEZS5wbGFjZW1lbnQpIT09bnVsbCYmT2UhPT12b2lkIDA/T2U6U2V9LGduKSx7Y29udGVudDpyLmNyZWF0ZUVsZW1lbnQobmUse3ByZWZpeENsczpRZSxpY29uOkl0LHR5cGU6VHQsbWVzc2FnZTpwdCxkZXNjcmlwdGlvbjpidCxhY3Rpb25zOkJuLHJvbGU6TnR9KSxjbGFzc05hbWU6ZygpKFR0JiZgJHtRZX0tJHtUdH1gLG5uLHplPT1udWxsP3ZvaWQgMDp6ZS5jbGFzc05hbWUpLHN0eWxlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx6ZT09bnVsbD92b2lkIDA6emUuc3R5bGUpLG9uKSxjbG9zZUljb246Vm4sY2xvc2FibGU6eW4hPW51bGw/eW46ISFWbn0pKX0sV2U9e29wZW46Z3QsZGVzdHJveTpjdD0+e3ZhciBPZSxHZTtjdCE9PXZvaWQgMD8oT2U9TmUuY3VycmVudCk9PT1udWxsfHxPZT09PXZvaWQgMHx8T2UuY2xvc2UoY3QpOihHZT1OZS5jdXJyZW50KT09PW51bGx8fEdlPT09dm9pZCAwfHxHZS5kZXN0cm95KCl9fTtyZXR1cm5bInN1Y2Nlc3MiLCJpbmZvIiwid2FybmluZyIsImVycm9yIl0uZm9yRWFjaChjdD0+e1dlW2N0XT1PZT0+Z3QoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LE9lKSx7dHlwZTpjdH0pKX0pLFdlfSxbXSksci5jcmVhdGVFbGVtZW50KE0sT2JqZWN0LmFzc2lnbih7a2V5OiJub3RpZmljYXRpb24taG9sZGVyIn0sRGUse3JlZjpOZX0pKV19ZnVuY3Rpb24gVShEZSl7cmV0dXJuIEEoRGUpfWxldCBOPW51bGwsUT1EZT0+RGUoKSx1ZT1bXSwkPXt9O2Z1bmN0aW9uIF8oKXtjb25zdHtnZXRDb250YWluZXI6RGUscnRsOk5lLG1heENvdW50OlhlLHRvcDpKZSxib3R0b206Z3Qsc2hvd1Byb2dyZXNzOmRlLHBhdXNlT25Ib3ZlcjpXZX09JCxTdD0oRGU9PW51bGw/dm9pZCAwOkRlKCkpfHxkb2N1bWVudC5ib2R5O3JldHVybntnZXRDb250YWluZXI6KCk9PlN0LHJ0bDpOZSxtYXhDb3VudDpYZSx0b3A6SmUsYm90dG9tOmd0LHNob3dQcm9ncmVzczpkZSxwYXVzZU9uSG92ZXI6V2V9fWNvbnN0IHBlPXIuZm9yd2FyZFJlZigoRGUsTmUpPT57Y29uc3R7bm90aWZpY2F0aW9uQ29uZmlnOlhlLHN5bmM6SmV9PURlLHtnZXRQcmVmaXhDbHM6Z3R9PSgwLHIudXNlQ29udGV4dCkodC5FXyksZGU9JC5wcmVmaXhDbHN8fGd0KCJub3RpZmljYXRpb24iKSxXZT0oMCxyLnVzZUNvbnRleHQpKG4uSiksW1N0LGN0XT1BKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LFhlKSx7cHJlZml4Q2xzOmRlfSksV2Uubm90aWZpY2F0aW9uKSk7cmV0dXJuIHIudXNlRWZmZWN0KEplLFtdKSxyLnVzZUltcGVyYXRpdmVIYW5kbGUoTmUsKCk9Pntjb25zdCBPZT1PYmplY3QuYXNzaWduKHt9LFN0KTtyZXR1cm4gT2JqZWN0LmtleXMoT2UpLmZvckVhY2goR2U9PntPZVtHZV09ZnVuY3Rpb24oKXtyZXR1cm4gSmUoKSxTdFtHZV0uYXBwbHkoU3QsYXJndW1lbnRzKX19KSx7aW5zdGFuY2U6T2Usc3luYzpKZX19KSxjdH0pLHJlPXIuZm9yd2FyZFJlZigoRGUsTmUpPT57Y29uc3RbWGUsSmVdPXIudXNlU3RhdGUoXyksZ3Q9KCk9PntKZShfKX07ci51c2VFZmZlY3QoZ3QsW10pO2NvbnN0IGRlPSgwLGkudzYpKCksV2U9ZGUuZ2V0Um9vdFByZWZpeENscygpLFN0PWRlLmdldEljb25QcmVmaXhDbHMoKSxjdD1kZS5nZXRUaGVtZSgpLE9lPXIuY3JlYXRlRWxlbWVudChwZSx7cmVmOk5lLHN5bmM6Z3Qsbm90aWZpY2F0aW9uQ29uZmlnOlhlfSk7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChpLlpQLHtwcmVmaXhDbHM6V2UsaWNvblByZWZpeENsczpTdCx0aGVtZTpjdH0sZGUuaG9sZGVyUmVuZGVyP2RlLmhvbGRlclJlbmRlcihPZSk6T2UpfSk7ZnVuY3Rpb24gYWUoKXtpZighTil7Y29uc3QgRGU9ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLE5lPXtmcmFnbWVudDpEZX07Tj1OZSxRKCgpPT57KDAscy54KSgpKHIuY3JlYXRlRWxlbWVudChyZSx7cmVmOkplPT57Y29uc3R7aW5zdGFuY2U6Z3Qsc3luYzpkZX09SmV8fHt9O1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PnshTmUuaW5zdGFuY2UmJmd0JiYoTmUuaW5zdGFuY2U9Z3QsTmUuc3luYz1kZSxhZSgpKX0pfX0pLERlKX0pO3JldHVybn1OLmluc3RhbmNlJiYodWUuZm9yRWFjaChEZT0+e3N3aXRjaChEZS50eXBlKXtjYXNlIm9wZW4iOntRKCgpPT57Ti5pbnN0YW5jZS5vcGVuKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwkKSxEZS5jb25maWcpKX0pO2JyZWFrfWNhc2UiZGVzdHJveSI6USgoKT0+e049PW51bGx8fE4uaW5zdGFuY2UuZGVzdHJveShEZS5rZXkpfSk7YnJlYWt9fSksdWU9W10pfWZ1bmN0aW9uIHdlKERlKXskPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwkKSxEZSksUSgoKT0+e3ZhciBOZTsoTmU9Tj09bnVsbD92b2lkIDA6Ti5zeW5jKT09PW51bGx8fE5lPT09dm9pZCAwfHxOZS5jYWxsKE4pfSl9ZnVuY3Rpb24gTGUoRGUpe2NvbnN0IE5lPSgwLGkudzYpKCk7dWUucHVzaCh7dHlwZToib3BlbiIsY29uZmlnOkRlfSksYWUoKX1jb25zdCBNZT1EZT0+e3VlLnB1c2goe3R5cGU6ImRlc3Ryb3kiLGtleTpEZX0pLGFlKCl9LGJlPVsic3VjY2VzcyIsImluZm8iLCJ3YXJuaW5nIiwiZXJyb3IiXSxrZT17b3BlbjpMZSxkZXN0cm95Ok1lLGNvbmZpZzp3ZSx1c2VOb3RpZmljYXRpb246VSxfSW50ZXJuYWxQYW5lbERvTm90VXNlT3JZb3VXaWxsQmVGaXJlZDpmZX07YmUuZm9yRWFjaChEZT0+e2tlW0RlXT1OZT0+TGUoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LE5lKSx7dHlwZTpEZX0pKX0pO2NvbnN0IEFlPSgpPT57fTtsZXQgdHQ9bnVsbCxtdD1udWxsO3ZhciB1dD1rZX0sNTg4MjQ6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiB1ZX19KTt2YXIgcj1lKDY3Mjk0KSxuPWUoMjQ2KSx0PWUoOTY4NDIpLGk9ZSg2MTcxKSxzPWUoOTA4MTQpLGE9ZSg5Mzk2NyksdT1lLm4oYSksYz1lKDQ5NDIpLGg9ZSg4NzQ2MiksZD1lKDcxMDAyKSxtPWUoMTQxMyksQz1lKDk3Njg1KSxnPWUoMjE3NzApLHc9ZSgxNTEwNSksRT1lKDY0MjE3KSx4PWUoODAzMzQpLE89ZSg4MTYyNiksVD1bMTAsMjAsNTAsMTAwXSxTPWZ1bmN0aW9uKF8pe3ZhciBwZT1fLnBhZ2VTaXplT3B0aW9ucyxyZT1wZT09PXZvaWQgMD9UOnBlLGFlPV8ubG9jYWxlLHdlPV8uY2hhbmdlU2l6ZSxMZT1fLnBhZ2VTaXplLE1lPV8uZ29CdXR0b24sYmU9Xy5xdWlja0dvLCRlPV8ucm9vdFByZWZpeENscyxrZT1fLmRpc2FibGVkLEFlPV8uYnVpbGRPcHRpb25UZXh0LHR0PV8uc2hvd1NpemVDaGFuZ2VyLG10PV8uc2l6ZUNoYW5nZXJSZW5kZXIsdXQ9ci51c2VTdGF0ZSgiIiksRGU9KDAsQy5aKSh1dCwyKSxOZT1EZVswXSxYZT1EZVsxXSxKZT1mdW5jdGlvbigpe3JldHVybiFOZXx8TnVtYmVyLmlzTmFOKE5lKT92b2lkIDA6TnVtYmVyKE5lKX0sZ3Q9dHlwZW9mIEFlPT0iZnVuY3Rpb24iP0FlOmZ1bmN0aW9uKFFlKXtyZXR1cm4iIi5jb25jYXQoUWUsIiAiKS5jb25jYXQoYWUuaXRlbXNfcGVyX3BhZ2UpfSxkZT1mdW5jdGlvbihwdCl7WGUocHQudGFyZ2V0LnZhbHVlKX0sV2U9ZnVuY3Rpb24ocHQpe01lfHxOZT09PSIifHwoWGUoIiIpLCEocHQucmVsYXRlZFRhcmdldCYmKHB0LnJlbGF0ZWRUYXJnZXQuY2xhc3NOYW1lLmluZGV4T2YoIiIuY29uY2F0KCRlLCItaXRlbS1saW5rIikpPj0wfHxwdC5yZWxhdGVkVGFyZ2V0LmNsYXNzTmFtZS5pbmRleE9mKCIiLmNvbmNhdCgkZSwiLWl0ZW0iKSk+PTApKSYmKGJlPT1udWxsfHxiZShKZSgpKSkpfSxTdD1mdW5jdGlvbihwdCl7TmUhPT0iIiYmKHB0LmtleUNvZGU9PT13LlouRU5URVJ8fHB0LnR5cGU9PT0iY2xpY2siKSYmKFhlKCIiKSxiZT09bnVsbHx8YmUoSmUoKSkpfSxjdD1mdW5jdGlvbigpe3JldHVybiByZS5zb21lKGZ1bmN0aW9uKHB0KXtyZXR1cm4gcHQudG9TdHJpbmcoKT09PUxlLnRvU3RyaW5nKCl9KT9yZTpyZS5jb25jYXQoW0xlXSkuc29ydChmdW5jdGlvbihwdCxidCl7dmFyIEl0PU51bWJlci5pc05hTihOdW1iZXIocHQpKT8wOk51bWJlcihwdCksVHQ9TnVtYmVyLmlzTmFOKE51bWJlcihidCkpPzA6TnVtYmVyKGJ0KTtyZXR1cm4gSXQtVHR9KX0sT2U9IiIuY29uY2F0KCRlLCItb3B0aW9ucyIpO2lmKCF0dCYmIWJlKXJldHVybiBudWxsO3ZhciBHZT1udWxsLGh0PW51bGwsemU9bnVsbDtyZXR1cm4gdHQmJm10JiYoR2U9bXQoe2Rpc2FibGVkOmtlLHNpemU6TGUsb25TaXplQ2hhbmdlOmZ1bmN0aW9uKHB0KXt3ZT09bnVsbHx8d2UoTnVtYmVyKHB0KSl9LCJhcmlhLWxhYmVsIjphZS5wYWdlX3NpemUsY2xhc3NOYW1lOiIiLmNvbmNhdChPZSwiLXNpemUtY2hhbmdlciIpLG9wdGlvbnM6Y3QoKS5tYXAoZnVuY3Rpb24oUWUpe3JldHVybntsYWJlbDpndChRZSksdmFsdWU6UWV9fSl9KSksYmUmJihNZSYmKHplPXR5cGVvZiBNZT09ImJvb2xlYW4iP3IuY3JlYXRlRWxlbWVudCgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixvbkNsaWNrOlN0LG9uS2V5VXA6U3QsZGlzYWJsZWQ6a2UsY2xhc3NOYW1lOiIiLmNvbmNhdChPZSwiLXF1aWNrLWp1bXBlci1idXR0b24iKX0sYWUuanVtcF90b19jb25maXJtKTpyLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtvbkNsaWNrOlN0LG9uS2V5VXA6U3R9LE1lKSksaHQ9ci5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KE9lLCItcXVpY2stanVtcGVyIil9LGFlLmp1bXBfdG8sci5jcmVhdGVFbGVtZW50KCJpbnB1dCIse2Rpc2FibGVkOmtlLHR5cGU6InRleHQiLHZhbHVlOk5lLG9uQ2hhbmdlOmRlLG9uS2V5VXA6U3Qsb25CbHVyOldlLCJhcmlhLWxhYmVsIjphZS5wYWdlfSksYWUucGFnZSx6ZSkpLHIuY3JlYXRlRWxlbWVudCgibGkiLHtjbGFzc05hbWU6T2V9LEdlLGh0KX0sTD1TLEk9ZnVuY3Rpb24oXyl7dmFyIHBlPV8ucm9vdFByZWZpeENscyxyZT1fLnBhZ2UsYWU9Xy5hY3RpdmUsd2U9Xy5jbGFzc05hbWUsTGU9Xy5zaG93VGl0bGUsTWU9Xy5vbkNsaWNrLGJlPV8ub25LZXlQcmVzcywkZT1fLml0ZW1SZW5kZXIsa2U9IiIuY29uY2F0KHBlLCItaXRlbSIpLEFlPXUoKShrZSwiIi5jb25jYXQoa2UsIi0iKS5jb25jYXQocmUpLCgwLGMuWikoKDAsYy5aKSh7fSwiIi5jb25jYXQoa2UsIi1hY3RpdmUiKSxhZSksIiIuY29uY2F0KGtlLCItZGlzYWJsZWQiKSwhcmUpLHdlKSx0dD1mdW5jdGlvbigpe01lKHJlKX0sbXQ9ZnVuY3Rpb24oTmUpe2JlKE5lLE1lLHJlKX0sdXQ9JGUocmUsInBhZ2UiLHIuY3JlYXRlRWxlbWVudCgiYSIse3JlbDoibm9mb2xsb3cifSxyZSkpO3JldHVybiB1dD9yLmNyZWF0ZUVsZW1lbnQoImxpIix7dGl0bGU6TGU/U3RyaW5nKHJlKTpudWxsLGNsYXNzTmFtZTpBZSxvbkNsaWNrOnR0LG9uS2V5RG93bjptdCx0YWJJbmRleDowfSx1dCk6bnVsbH0sUj1JLHo9ZnVuY3Rpb24oXyxwZSxyZSl7cmV0dXJuIHJlfTtmdW5jdGlvbiBHKCl7fWZ1bmN0aW9uIFkoJCl7dmFyIF89TnVtYmVyKCQpO3JldHVybiB0eXBlb2YgXz09Im51bWJlciImJiFOdW1iZXIuaXNOYU4oXykmJmlzRmluaXRlKF8pJiZNYXRoLmZsb29yKF8pPT09X31mdW5jdGlvbiBlZSgkLF8scGUpe3ZhciByZT10eXBlb2YgJD09InVuZGVmaW5lZCI/XzokO3JldHVybiBNYXRoLmZsb29yKChwZS0xKS9yZSkrMX12YXIgSj1mdW5jdGlvbihfKXt2YXIgcGU9Xy5wcmVmaXhDbHMscmU9cGU9PT12b2lkIDA/InJjLXBhZ2luYXRpb24iOnBlLGFlPV8uc2VsZWN0UHJlZml4Q2xzLHdlPWFlPT09dm9pZCAwPyJyYy1zZWxlY3QiOmFlLExlPV8uY2xhc3NOYW1lLE1lPV8uY3VycmVudCxiZT1fLmRlZmF1bHRDdXJyZW50LCRlPWJlPT09dm9pZCAwPzE6YmUsa2U9Xy50b3RhbCxBZT1rZT09PXZvaWQgMD8wOmtlLHR0PV8ucGFnZVNpemUsbXQ9Xy5kZWZhdWx0UGFnZVNpemUsdXQ9bXQ9PT12b2lkIDA/MTA6bXQsRGU9Xy5vbkNoYW5nZSxOZT1EZT09PXZvaWQgMD9HOkRlLFhlPV8uaGlkZU9uU2luZ2xlUGFnZSxKZT1fLmFsaWduLGd0PV8uc2hvd1ByZXZOZXh0SnVtcGVycyxkZT1ndD09PXZvaWQgMD8hMDpndCxXZT1fLnNob3dRdWlja0p1bXBlcixTdD1fLnNob3dMZXNzSXRlbXMsY3Q9Xy5zaG93VGl0bGUsT2U9Y3Q9PT12b2lkIDA/ITA6Y3QsR2U9Xy5vblNob3dTaXplQ2hhbmdlLGh0PUdlPT09dm9pZCAwP0c6R2UsemU9Xy5sb2NhbGUsUWU9emU9PT12b2lkIDA/Ty5aOnplLHB0PV8uc3R5bGUsYnQ9Xy50b3RhbEJvdW5kYXJ5U2hvd1NpemVDaGFuZ2VyLEl0PWJ0PT09dm9pZCAwPzUwOmJ0LFR0PV8uZGlzYWJsZWQsWHQ9Xy5zaW1wbGUsZm49Xy5zaG93VG90YWwsbm49Xy5zaG93U2l6ZUNoYW5nZXIsb249bm49PT12b2lkIDA/QWU+SXQ6bm4sTnQ9Xy5zaXplQ2hhbmdlclJlbmRlcixabj1fLnBhZ2VTaXplT3B0aW9ucyx5bj1fLml0ZW1SZW5kZXIsZ249eW49PT12b2lkIDA/ejp5bixCbj1fLmp1bXBQcmV2SWNvbixWbj1fLmp1bXBOZXh0SWNvbixObj1fLnByZXZJY29uLGZ0PV8ubmV4dEljb24sZXQ9ci51c2VSZWYobnVsbCksSnQ9KDAsZy5aKSgxMCx7dmFsdWU6dHQsZGVmYXVsdFZhbHVlOnV0fSksd3Q9KDAsQy5aKShKdCwyKSxfdD13dFswXSx4bj13dFsxXSxZbj0oMCxnLlopKDEse3ZhbHVlOk1lLGRlZmF1bHRWYWx1ZTokZSxwb3N0U3RhdGU6ZnVuY3Rpb24obG4pe3JldHVybiBNYXRoLm1heCgxLE1hdGgubWluKGxuLGVlKHZvaWQgMCxfdCxBZSkpKX19KSxQbj0oMCxDLlopKFluLDIpLExuPVBuWzBdLGVyPVBuWzFdLFFuPXIudXNlU3RhdGUoTG4pLHVyPSgwLEMuWikoUW4sMiksaXI9dXJbMF0sdm49dXJbMV07KDAsci51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7dm4oTG4pfSxbTG5dKTt2YXIgY3I9TmUhPT1HLFduPSJjdXJyZW50ImluIF8sd249TWF0aC5tYXgoMSxMbi0oU3Q/Mzo1KSksQ3Q9TWF0aC5taW4oZWUodm9pZCAwLF90LEFlKSxMbisoU3Q/Mzo1KSk7ZnVuY3Rpb24gWnQoT3QsbG4pe3ZhciBFbj1PdHx8ci5jcmVhdGVFbGVtZW50KCJidXR0b24iLHt0eXBlOiJidXR0b24iLCJhcmlhLWxhYmVsIjpsbixjbGFzc05hbWU6IiIuY29uY2F0KHJlLCItaXRlbS1saW5rIil9KTtyZXR1cm4gdHlwZW9mIE90PT0iZnVuY3Rpb24iJiYoRW49ci5jcmVhdGVFbGVtZW50KE90LCgwLG0uWikoe30sXykpKSxFbn1mdW5jdGlvbiBhbihPdCl7dmFyIGxuPU90LnRhcmdldC52YWx1ZSxFbj1lZSh2b2lkIDAsX3QsQWUpLEduO3JldHVybiBsbj09PSIiP0duPWxuOk51bWJlci5pc05hTihOdW1iZXIobG4pKT9Hbj1pcjpsbj49RW4/R249RW46R249TnVtYmVyKGxuKSxHbn1mdW5jdGlvbiBEdChPdCl7cmV0dXJuIFkoT3QpJiZPdCE9PUxuJiZZKEFlKSYmQWU+MH12YXIga3Q9QWU+X3Q/V2U6ITE7ZnVuY3Rpb24gdG4oT3QpeyhPdC5rZXlDb2RlPT09dy5aLlVQfHxPdC5rZXlDb2RlPT09dy5aLkRPV04pJiZPdC5wcmV2ZW50RGVmYXVsdCgpfWZ1bmN0aW9uIG1uKE90KXt2YXIgbG49YW4oT3QpO3N3aXRjaChsbiE9PWlyJiZ2bihsbiksT3Qua2V5Q29kZSl7Y2FzZSB3LlouRU5URVI6WG4obG4pO2JyZWFrO2Nhc2Ugdy5aLlVQOlhuKGxuLTEpO2JyZWFrO2Nhc2Ugdy5aLkRPV046WG4obG4rMSk7YnJlYWs7ZGVmYXVsdDpicmVha319ZnVuY3Rpb24gS24oT3Qpe1huKGFuKE90KSl9ZnVuY3Rpb24gSm4oT3Qpe3ZhciBsbj1lZShPdCxfdCxBZSksRW49TG4+bG4mJmxuIT09MD9sbjpMbjt4bihPdCksdm4oRW4pLGh0PT1udWxsfHxodChMbixPdCksZXIoRW4pLE5lPT1udWxsfHxOZShFbixPdCl9ZnVuY3Rpb24gWG4oT3Qpe2lmKER0KE90KSYmIVR0KXt2YXIgbG49ZWUodm9pZCAwLF90LEFlKSxFbj1PdDtyZXR1cm4gT3Q+bG4/RW49bG46T3Q8MSYmKEVuPTEpLEVuIT09aXImJnZuKEVuKSxlcihFbiksTmU9PW51bGx8fE5lKEVuLF90KSxFbn1yZXR1cm4gTG59dmFyIGZyPUxuPjEscnI9TG48ZWUodm9pZCAwLF90LEFlKTtmdW5jdGlvbiBocigpe2ZyJiZYbihMbi0xKX1mdW5jdGlvbiBGbigpe3JyJiZYbihMbisxKX1mdW5jdGlvbiBhcigpe1huKHduKX1mdW5jdGlvbiBscigpe1huKEN0KX1mdW5jdGlvbiAkbihPdCxsbil7aWYoT3Qua2V5PT09IkVudGVyInx8T3QuY2hhckNvZGU9PT13LlouRU5URVJ8fE90LmtleUNvZGU9PT13LlouRU5URVIpe2Zvcih2YXIgRW49YXJndW1lbnRzLmxlbmd0aCxHbj1uZXcgQXJyYXkoRW4+Mj9Fbi0yOjApLHByPTI7cHI8RW47cHIrKylHbltwci0yXT1hcmd1bWVudHNbcHJdO2xuLmFwcGx5KHZvaWQgMCxHbil9fWZ1bmN0aW9uIHNyKE90KXskbihPdCxocil9ZnVuY3Rpb24gRnIoT3QpeyRuKE90LEZuKX1mdW5jdGlvbiBaZShPdCl7JG4oT3QsYXIpfWZ1bmN0aW9uIEhlKE90KXskbihPdCxscil9ZnVuY3Rpb24gbnQoT3Qpe3ZhciBsbj1nbihPdCwicHJldiIsWnQoTm4sInByZXYgcGFnZSIpKTtyZXR1cm4gci5pc1ZhbGlkRWxlbWVudChsbik/ci5jbG9uZUVsZW1lbnQobG4se2Rpc2FibGVkOiFmcn0pOmxufWZ1bmN0aW9uIHJ0KE90KXt2YXIgbG49Z24oT3QsIm5leHQiLFp0KGZ0LCJuZXh0IHBhZ2UiKSk7cmV0dXJuIHIuaXNWYWxpZEVsZW1lbnQobG4pP3IuY2xvbmVFbGVtZW50KGxuLHtkaXNhYmxlZDohcnJ9KTpsbn1mdW5jdGlvbiB2dChPdCl7KE90LnR5cGU9PT0iY2xpY2sifHxPdC5rZXlDb2RlPT09dy5aLkVOVEVSKSYmWG4oaXIpfXZhciBWdD1udWxsLGVuPSgwLEUuWikoXyx7YXJpYTohMCxkYXRhOiEwfSksUm49Zm4mJnIuY3JlYXRlRWxlbWVudCgibGkiLHtjbGFzc05hbWU6IiIuY29uY2F0KHJlLCItdG90YWwtdGV4dCIpfSxmbihBZSxbQWU9PT0wPzA6KExuLTEpKl90KzEsTG4qX3Q+QWU/QWU6TG4qX3RdKSksam49bnVsbCxibj1lZSh2b2lkIDAsX3QsQWUpO2lmKFhlJiZBZTw9X3QpcmV0dXJuIG51bGw7dmFyIEhuPVtdLEd0PXtyb290UHJlZml4Q2xzOnJlLG9uQ2xpY2s6WG4sb25LZXlQcmVzczokbixzaG93VGl0bGU6T2UsaXRlbVJlbmRlcjpnbixwYWdlOi0xfSxTbj1Mbi0xPjA/TG4tMTowLE9uPUxuKzE8Ym4/TG4rMTpibixfbj1XZSYmV2UuZ29CdXR0b24sUGU9KDAsZC5aKShYdCk9PT0ib2JqZWN0Ij9YdC5yZWFkT25seTohWHQsZ2U9X24sdmU9bnVsbDtYdCYmKF9uJiYodHlwZW9mIF9uPT0iYm9vbGVhbiI/Z2U9ci5jcmVhdGVFbGVtZW50KCJidXR0b24iLHt0eXBlOiJidXR0b24iLG9uQ2xpY2s6dnQsb25LZXlVcDp2dH0sUWUuanVtcF90b19jb25maXJtKTpnZT1yLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtvbkNsaWNrOnZ0LG9uS2V5VXA6dnR9LF9uKSxnZT1yLmNyZWF0ZUVsZW1lbnQoImxpIix7dGl0bGU6T2U/IiIuY29uY2F0KFFlLmp1bXBfdG8pLmNvbmNhdChMbiwiLyIpLmNvbmNhdChibik6bnVsbCxjbGFzc05hbWU6IiIuY29uY2F0KHJlLCItc2ltcGxlLXBhZ2VyIil9LGdlKSksdmU9ci5jcmVhdGVFbGVtZW50KCJsaSIse3RpdGxlOk9lPyIiLmNvbmNhdChMbiwiLyIpLmNvbmNhdChibik6bnVsbCxjbGFzc05hbWU6IiIuY29uY2F0KHJlLCItc2ltcGxlLXBhZ2VyIil9LFBlP2lyOnIuY3JlYXRlRWxlbWVudCgiaW5wdXQiLHt0eXBlOiJ0ZXh0IiwiYXJpYS1sYWJlbCI6UWUuanVtcF90byx2YWx1ZTppcixkaXNhYmxlZDpUdCxvbktleURvd246dG4sb25LZXlVcDptbixvbkNoYW5nZTptbixvbkJsdXI6S24sc2l6ZTozfSksci5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiIiLmNvbmNhdChyZSwiLXNsYXNoIil9LCIvIiksYm4pKTt2YXIgSWU9U3Q/MToyO2lmKGJuPD0zK0llKjIpe2JufHxIbi5wdXNoKHIuY3JlYXRlRWxlbWVudChSLCgwLGguWikoe30sR3Qse2tleToibm9QYWdlciIscGFnZToxLGNsYXNzTmFtZToiIi5jb25jYXQocmUsIi1pdGVtLWRpc2FibGVkIil9KSkpO2Zvcih2YXIgeGU9MTt4ZTw9Ym47eGUrPTEpSG4ucHVzaChyLmNyZWF0ZUVsZW1lbnQoUiwoMCxoLlopKHt9LEd0LHtrZXk6eGUscGFnZTp4ZSxhY3RpdmU6TG49PT14ZX0pKSl9ZWxzZXt2YXIgYXQ9U3Q/UWUucHJldl8zOlFlLnByZXZfNSxkdD1TdD9RZS5uZXh0XzM6UWUubmV4dF81LEV0PWduKHduLCJqdW1wLXByZXYiLFp0KEJuLCJwcmV2IHBhZ2UiKSksSHQ9Z24oQ3QsImp1bXAtbmV4dCIsWnQoVm4sIm5leHQgcGFnZSIpKTtkZSYmKFZ0PUV0P3IuY3JlYXRlRWxlbWVudCgibGkiLHt0aXRsZTpPZT9hdDpudWxsLGtleToicHJldiIsb25DbGljazphcix0YWJJbmRleDowLG9uS2V5RG93bjpaZSxjbGFzc05hbWU6dSgpKCIiLmNvbmNhdChyZSwiLWp1bXAtcHJldiIpLCgwLGMuWikoe30sIiIuY29uY2F0KHJlLCItanVtcC1wcmV2LWN1c3RvbS1pY29uIiksISFCbikpfSxFdCk6bnVsbCxqbj1IdD9yLmNyZWF0ZUVsZW1lbnQoImxpIix7dGl0bGU6T2U/ZHQ6bnVsbCxrZXk6Im5leHQiLG9uQ2xpY2s6bHIsdGFiSW5kZXg6MCxvbktleURvd246SGUsY2xhc3NOYW1lOnUoKSgiIi5jb25jYXQocmUsIi1qdW1wLW5leHQiKSwoMCxjLlopKHt9LCIiLmNvbmNhdChyZSwiLWp1bXAtbmV4dC1jdXN0b20taWNvbiIpLCEhVm4pKX0sSHQpOm51bGwpO3ZhciBqdD1NYXRoLm1heCgxLExuLUllKSxGdD1NYXRoLm1pbihMbitJZSxibik7TG4tMTw9SWUmJihGdD0xK0llKjIpLGJuLUxuPD1JZSYmKGp0PWJuLUllKjIpO2Zvcih2YXIgcG49anQ7cG48PUZ0O3BuKz0xKUhuLnB1c2goci5jcmVhdGVFbGVtZW50KFIsKDAsaC5aKSh7fSxHdCx7a2V5OnBuLHBhZ2U6cG4sYWN0aXZlOkxuPT09cG59KSkpO2lmKExuLTE+PUllKjImJkxuIT09MyYmKEhuWzBdPXIuY2xvbmVFbGVtZW50KEhuWzBdLHtjbGFzc05hbWU6dSgpKCIiLmNvbmNhdChyZSwiLWl0ZW0tYWZ0ZXItanVtcC1wcmV2IiksSG5bMF0ucHJvcHMuY2xhc3NOYW1lKX0pLEhuLnVuc2hpZnQoVnQpKSxibi1Mbj49SWUqMiYmTG4hPT1ibi0yKXt2YXIgY249SG5bSG4ubGVuZ3RoLTFdO0huW0huLmxlbmd0aC0xXT1yLmNsb25lRWxlbWVudChjbix7Y2xhc3NOYW1lOnUoKSgiIi5jb25jYXQocmUsIi1pdGVtLWJlZm9yZS1qdW1wLW5leHQiKSxjbi5wcm9wcy5jbGFzc05hbWUpfSksSG4ucHVzaChqbil9anQhPT0xJiZIbi51bnNoaWZ0KHIuY3JlYXRlRWxlbWVudChSLCgwLGguWikoe30sR3Qse2tleToxLHBhZ2U6MX0pKSksRnQhPT1ibiYmSG4ucHVzaChyLmNyZWF0ZUVsZW1lbnQoUiwoMCxoLlopKHt9LEd0LHtrZXk6Ym4scGFnZTpibn0pKSl9dmFyIG9yPW50KFNuKTtpZihvcil7dmFyIFRuPSFmcnx8IWJuO29yPXIuY3JlYXRlRWxlbWVudCgibGkiLHt0aXRsZTpPZT9RZS5wcmV2X3BhZ2U6bnVsbCxvbkNsaWNrOmhyLHRhYkluZGV4OlRuP251bGw6MCxvbktleURvd246c3IsY2xhc3NOYW1lOnUoKSgiIi5jb25jYXQocmUsIi1wcmV2IiksKDAsYy5aKSh7fSwiIi5jb25jYXQocmUsIi1kaXNhYmxlZCIpLFRuKSksImFyaWEtZGlzYWJsZWQiOlRufSxvcil9dmFyIHpuPXJ0KE9uKTtpZih6bil7dmFyIHJuLEt0O1h0Pyhybj0hcnIsS3Q9ZnI/MDpudWxsKToocm49IXJyfHwhYm4sS3Q9cm4/bnVsbDowKSx6bj1yLmNyZWF0ZUVsZW1lbnQoImxpIix7dGl0bGU6T2U/UWUubmV4dF9wYWdlOm51bGwsb25DbGljazpGbix0YWJJbmRleDpLdCxvbktleURvd246RnIsY2xhc3NOYW1lOnUoKSgiIi5jb25jYXQocmUsIi1uZXh0IiksKDAsYy5aKSh7fSwiIi5jb25jYXQocmUsIi1kaXNhYmxlZCIpLHJuKSksImFyaWEtZGlzYWJsZWQiOnJufSx6bil9dmFyIHp0PXUoKShyZSxMZSwoMCxjLlopKCgwLGMuWikoKDAsYy5aKSgoMCxjLlopKCgwLGMuWikoe30sIiIuY29uY2F0KHJlLCItc3RhcnQiKSxKZT09PSJzdGFydCIpLCIiLmNvbmNhdChyZSwiLWNlbnRlciIpLEplPT09ImNlbnRlciIpLCIiLmNvbmNhdChyZSwiLWVuZCIpLEplPT09ImVuZCIpLCIiLmNvbmNhdChyZSwiLXNpbXBsZSIpLFh0KSwiIi5jb25jYXQocmUsIi1kaXNhYmxlZCIpLFR0KSk7cmV0dXJuIHIuY3JlYXRlRWxlbWVudCgidWwiLCgwLGguWikoe2NsYXNzTmFtZTp6dCxzdHlsZTpwdCxyZWY6ZXR9LGVuKSxSbixvcixYdD92ZTpIbix6bixyLmNyZWF0ZUVsZW1lbnQoTCx7bG9jYWxlOlFlLHJvb3RQcmVmaXhDbHM6cmUsZGlzYWJsZWQ6VHQsc2VsZWN0UHJlZml4Q2xzOndlLGNoYW5nZVNpemU6Sm4scGFnZVNpemU6X3QscGFnZVNpemVPcHRpb25zOlpuLHF1aWNrR286a3Q/WG46bnVsbCxnb0J1dHRvbjpnZSxzaG93U2l6ZUNoYW5nZXI6b24sc2l6ZUNoYW5nZXJSZW5kZXI6TnR9KSl9LG1lPUosdGU9ZSg2MjkwNiksbGU9ZSg1MzEyNCksY2U9ZSg5ODY3NSksVz1lKDI1Mzc4KSxqPWUoMTAxMTApLEQ9ZSgzNDA0MSksVj1lKDI5NjkxKSxaPWUoMTE1NjgpLFA9ZSg0NzY3MyksSz1lKDIwMzUzKSxzZT1lKDkzOTAwKSxuZT1lKDE0NzQ3KSxvZT1lKDgzMjYyKSxmZT1lKDgzNTU5KTtjb25zdCBFZT0kPT57Y29uc3R7Y29tcG9uZW50Q2xzOl99PSQ7cmV0dXJue1tgJHtffS1kaXNhYmxlZGBdOnsiJiwgJjpob3ZlciI6e2N1cnNvcjoibm90LWFsbG93ZWQiLFtgJHtffS1pdGVtLWxpbmtgXTp7Y29sb3I6JC5jb2xvclRleHREaXNhYmxlZCxjdXJzb3I6Im5vdC1hbGxvd2VkIn19LCImOmZvY3VzLXZpc2libGUiOntjdXJzb3I6Im5vdC1hbGxvd2VkIixbYCR7X30taXRlbS1saW5rYF06e2NvbG9yOiQuY29sb3JUZXh0RGlzYWJsZWQsY3Vyc29yOiJub3QtYWxsb3dlZCJ9fX0sW2AmJHtffS1kaXNhYmxlZGBdOntjdXJzb3I6Im5vdC1hbGxvd2VkIixbYCR7X30taXRlbWBdOntjdXJzb3I6Im5vdC1hbGxvd2VkIiwiJjpob3ZlciwgJjphY3RpdmUiOntiYWNrZ3JvdW5kQ29sb3I6InRyYW5zcGFyZW50In0sYTp7Y29sb3I6JC5jb2xvclRleHREaXNhYmxlZCxiYWNrZ3JvdW5kQ29sb3I6InRyYW5zcGFyZW50Iixib3JkZXI6Im5vbmUiLGN1cnNvcjoibm90LWFsbG93ZWQifSwiJi1hY3RpdmUiOntib3JkZXJDb2xvcjokLmNvbG9yQm9yZGVyLGJhY2tncm91bmRDb2xvcjokLml0ZW1BY3RpdmVCZ0Rpc2FibGVkLCImOmhvdmVyLCAmOmFjdGl2ZSI6e2JhY2tncm91bmRDb2xvcjokLml0ZW1BY3RpdmVCZ0Rpc2FibGVkfSxhOntjb2xvcjokLml0ZW1BY3RpdmVDb2xvckRpc2FibGVkfX19LFtgJHtffS1pdGVtLWxpbmtgXTp7Y29sb3I6JC5jb2xvclRleHREaXNhYmxlZCxjdXJzb3I6Im5vdC1hbGxvd2VkIiwiJjpob3ZlciwgJjphY3RpdmUiOntiYWNrZ3JvdW5kQ29sb3I6InRyYW5zcGFyZW50In0sW2Ake199LXNpbXBsZSZgXTp7YmFja2dyb3VuZENvbG9yOiJ0cmFuc3BhcmVudCIsIiY6aG92ZXIsICY6YWN0aXZlIjp7YmFja2dyb3VuZENvbG9yOiJ0cmFuc3BhcmVudCJ9fX0sW2Ake199LXNpbXBsZS1wYWdlcmBdOntjb2xvcjokLmNvbG9yVGV4dERpc2FibGVkfSxbYCR7X30tanVtcC1wcmV2LCAke199LWp1bXAtbmV4dGBdOntbYCR7X30taXRlbS1saW5rLWljb25gXTp7b3BhY2l0eTowfSxbYCR7X30taXRlbS1lbGxpcHNpc2BdOntvcGFjaXR5OjF9fX0sW2AmJHtffS1zaW1wbGVgXTp7W2Ake199LXByZXYsICR7X30tbmV4dGBdOntbYCYke199LWRpc2FibGVkICR7X30taXRlbS1saW5rYF06eyImOmhvdmVyLCAmOmFjdGl2ZSI6e2JhY2tncm91bmRDb2xvcjoidHJhbnNwYXJlbnQifX19fX19LFJlPSQ9Pntjb25zdHtjb21wb25lbnRDbHM6X309JDtyZXR1cm57W2AmJHtffS1taW5pICR7X30tdG90YWwtdGV4dCwgJiR7X30tbWluaSAke199LXNpbXBsZS1wYWdlcmBdOntoZWlnaHQ6JC5pdGVtU2l6ZVNNLGxpbmVIZWlnaHQ6KDAsWi5iZikoJC5pdGVtU2l6ZVNNKX0sW2AmJHtffS1taW5pICR7X30taXRlbWBdOnttaW5XaWR0aDokLml0ZW1TaXplU00saGVpZ2h0OiQuaXRlbVNpemVTTSxtYXJnaW46MCxsaW5lSGVpZ2h0OigwLFouYmYpKCQuY2FsYygkLml0ZW1TaXplU00pLnN1YigyKS5lcXVhbCgpKX0sW2AmJHtffS1taW5pOm5vdCgke199LWRpc2FibGVkKSAke199LWl0ZW06bm90KCR7X30taXRlbS1hY3RpdmUpYF06e2JhY2tncm91bmRDb2xvcjoidHJhbnNwYXJlbnQiLGJvcmRlckNvbG9yOiJ0cmFuc3BhcmVudCIsIiY6aG92ZXIiOntiYWNrZ3JvdW5kQ29sb3I6JC5jb2xvckJnVGV4dEhvdmVyfSwiJjphY3RpdmUiOntiYWNrZ3JvdW5kQ29sb3I6JC5jb2xvckJnVGV4dEFjdGl2ZX19LFtgJiR7X30tbWluaSAke199LXByZXYsICYke199LW1pbmkgJHtffS1uZXh0YF06e21pbldpZHRoOiQuaXRlbVNpemVTTSxoZWlnaHQ6JC5pdGVtU2l6ZVNNLG1hcmdpbjowLGxpbmVIZWlnaHQ6KDAsWi5iZikoJC5pdGVtU2l6ZVNNKX0sW2AmJHtffS1taW5pOm5vdCgke199LWRpc2FibGVkKWBdOntbYCR7X30tcHJldiwgJHtffS1uZXh0YF06e1tgJjpob3ZlciAke199LWl0ZW0tbGlua2BdOntiYWNrZ3JvdW5kQ29sb3I6JC5jb2xvckJnVGV4dEhvdmVyfSxbYCY6YWN0aXZlICR7X30taXRlbS1saW5rYF06e2JhY2tncm91bmRDb2xvcjokLmNvbG9yQmdUZXh0QWN0aXZlfSxbYCYke199LWRpc2FibGVkOmhvdmVyICR7X30taXRlbS1saW5rYF06e2JhY2tncm91bmRDb2xvcjoidHJhbnNwYXJlbnQifX19LFtgCisgICAgJiR7X30tbWluaSAke199LXByZXYgJHtffS1pdGVtLWxpbmssCisgICAgJiR7X30tbWluaSAke199LW5leHQgJHtffS1pdGVtLWxpbmsKKyAgICBgXTp7YmFja2dyb3VuZENvbG9yOiJ0cmFuc3BhcmVudCIsYm9yZGVyQ29sb3I6InRyYW5zcGFyZW50IiwiJjo6YWZ0ZXIiOntoZWlnaHQ6JC5pdGVtU2l6ZVNNLGxpbmVIZWlnaHQ6KDAsWi5iZikoJC5pdGVtU2l6ZVNNKX19LFtgJiR7X30tbWluaSAke199LWp1bXAtcHJldiwgJiR7X30tbWluaSAke199LWp1bXAtbmV4dGBdOntoZWlnaHQ6JC5pdGVtU2l6ZVNNLG1hcmdpbklubGluZUVuZDowLGxpbmVIZWlnaHQ6KDAsWi5iZikoJC5pdGVtU2l6ZVNNKX0sW2AmJHtffS1taW5pICR7X30tb3B0aW9uc2BdOnttYXJnaW5JbmxpbmVTdGFydDokLnBhZ2luYXRpb25NaW5pT3B0aW9uc01hcmdpbklubGluZVN0YXJ0LCImLXNpemUtY2hhbmdlciI6e3RvcDokLm1pbmlPcHRpb25zU2l6ZUNoYW5nZXJUb3B9LCImLXF1aWNrLWp1bXBlciI6e2hlaWdodDokLml0ZW1TaXplU00sbGluZUhlaWdodDooMCxaLmJmKSgkLml0ZW1TaXplU00pLGlucHV0Ok9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwoMCxQLngwKSgkKSkse3dpZHRoOiQucGFnaW5hdGlvbk1pbmlRdWlja0p1bXBlcklucHV0V2lkdGgsaGVpZ2h0OiQuY29udHJvbEhlaWdodFNNfSl9fX19LEJlPSQ9Pntjb25zdHtjb21wb25lbnRDbHM6X309JDtyZXR1cm57W2AKKyAgICAmJHtffS1zaW1wbGUgJHtffS1wcmV2LAorICAgICYke199LXNpbXBsZSAke199LW5leHQKKyAgICBgXTp7aGVpZ2h0OiQuaXRlbVNpemVTTSxsaW5lSGVpZ2h0OigwLFouYmYpKCQuaXRlbVNpemVTTSksdmVydGljYWxBbGlnbjoidG9wIixbYCR7X30taXRlbS1saW5rYF06e2hlaWdodDokLml0ZW1TaXplU00sYmFja2dyb3VuZENvbG9yOiJ0cmFuc3BhcmVudCIsYm9yZGVyOjAsIiY6aG92ZXIiOntiYWNrZ3JvdW5kQ29sb3I6JC5jb2xvckJnVGV4dEhvdmVyfSwiJjphY3RpdmUiOntiYWNrZ3JvdW5kQ29sb3I6JC5jb2xvckJnVGV4dEFjdGl2ZX0sIiY6OmFmdGVyIjp7aGVpZ2h0OiQuaXRlbVNpemVTTSxsaW5lSGVpZ2h0OigwLFouYmYpKCQuaXRlbVNpemVTTSl9fX0sW2AmJHtffS1zaW1wbGUgJHtffS1zaW1wbGUtcGFnZXJgXTp7ZGlzcGxheToiaW5saW5lLWJsb2NrIixoZWlnaHQ6JC5pdGVtU2l6ZVNNLG1hcmdpbklubGluZUVuZDokLm1hcmdpblhTLGlucHV0Ontib3hTaXppbmc6ImJvcmRlci1ib3giLGhlaWdodDoiMTAwJSIscGFkZGluZzpgMCAkeygwLFouYmYpKCQucGFnaW5hdGlvbkl0ZW1QYWRkaW5nSW5saW5lKX1gLHRleHRBbGlnbjoiY2VudGVyIixiYWNrZ3JvdW5kQ29sb3I6JC5pdGVtSW5wdXRCZyxib3JkZXI6YCR7KDAsWi5iZikoJC5saW5lV2lkdGgpfSAkeyQubGluZVR5cGV9ICR7JC5jb2xvckJvcmRlcn1gLGJvcmRlclJhZGl1czokLmJvcmRlclJhZGl1cyxvdXRsaW5lOiJub25lIix0cmFuc2l0aW9uOmBib3JkZXItY29sb3IgJHskLm1vdGlvbkR1cmF0aW9uTWlkfWAsY29sb3I6ImluaGVyaXQiLCImOmhvdmVyIjp7Ym9yZGVyQ29sb3I6JC5jb2xvclByaW1hcnl9LCImOmZvY3VzIjp7Ym9yZGVyQ29sb3I6JC5jb2xvclByaW1hcnlIb3Zlcixib3hTaGFkb3c6YCR7KDAsWi5iZikoJC5pbnB1dE91dGxpbmVPZmZzZXQpfSAwICR7KDAsWi5iZikoJC5jb250cm9sT3V0bGluZVdpZHRoKX0gJHskLmNvbnRyb2xPdXRsaW5lfWB9LCImW2Rpc2FibGVkXSI6e2NvbG9yOiQuY29sb3JUZXh0RGlzYWJsZWQsYmFja2dyb3VuZENvbG9yOiQuY29sb3JCZ0NvbnRhaW5lckRpc2FibGVkLGJvcmRlckNvbG9yOiQuY29sb3JCb3JkZXIsY3Vyc29yOiJub3QtYWxsb3dlZCJ9fX19fSxZZT0kPT57Y29uc3R7Y29tcG9uZW50Q2xzOl99PSQ7cmV0dXJue1tgJHtffS1qdW1wLXByZXYsICR7X30tanVtcC1uZXh0YF06e291dGxpbmU6MCxbYCR7X30taXRlbS1jb250YWluZXJgXTp7cG9zaXRpb246InJlbGF0aXZlIixbYCR7X30taXRlbS1saW5rLWljb25gXTp7Y29sb3I6JC5jb2xvclByaW1hcnksZm9udFNpemU6JC5mb250U2l6ZVNNLG9wYWNpdHk6MCx0cmFuc2l0aW9uOmBhbGwgJHskLm1vdGlvbkR1cmF0aW9uTWlkfWAsIiYtc3ZnIjp7dG9wOjAsaW5zZXRJbmxpbmVFbmQ6MCxib3R0b206MCxpbnNldElubGluZVN0YXJ0OjAsbWFyZ2luOiJhdXRvIn19LFtgJHtffS1pdGVtLWVsbGlwc2lzYF06e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOjAsaW5zZXRJbmxpbmVFbmQ6MCxib3R0b206MCxpbnNldElubGluZVN0YXJ0OjAsZGlzcGxheToiYmxvY2siLG1hcmdpbjoiYXV0byIsY29sb3I6JC5jb2xvclRleHREaXNhYmxlZCxsZXR0ZXJTcGFjaW5nOiQucGFnaW5hdGlvbkVsbGlwc2lzTGV0dGVyU3BhY2luZyx0ZXh0QWxpZ246ImNlbnRlciIsdGV4dEluZGVudDokLnBhZ2luYXRpb25FbGxpcHNpc1RleHRJbmRlbnQsb3BhY2l0eToxLHRyYW5zaXRpb246YGFsbCAkeyQubW90aW9uRHVyYXRpb25NaWR9YH19LCImOmhvdmVyIjp7W2Ake199LWl0ZW0tbGluay1pY29uYF06e29wYWNpdHk6MX0sW2Ake199LWl0ZW0tZWxsaXBzaXNgXTp7b3BhY2l0eTowfX19LFtgCisgICAgJHtffS1wcmV2LAorICAgICR7X30tanVtcC1wcmV2LAorICAgICR7X30tanVtcC1uZXh0CisgICAgYF06e21hcmdpbklubGluZUVuZDokLm1hcmdpblhTfSxbYAorICAgICR7X30tcHJldiwKKyAgICAke199LW5leHQsCisgICAgJHtffS1qdW1wLXByZXYsCisgICAgJHtffS1qdW1wLW5leHQKKyAgICBgXTp7ZGlzcGxheToiaW5saW5lLWJsb2NrIixtaW5XaWR0aDokLml0ZW1TaXplLGhlaWdodDokLml0ZW1TaXplLGNvbG9yOiQuY29sb3JUZXh0LGZvbnRGYW1pbHk6JC5mb250RmFtaWx5LGxpbmVIZWlnaHQ6KDAsWi5iZikoJC5pdGVtU2l6ZSksdGV4dEFsaWduOiJjZW50ZXIiLHZlcnRpY2FsQWxpZ246Im1pZGRsZSIsbGlzdFN0eWxlOiJub25lIixib3JkZXJSYWRpdXM6JC5ib3JkZXJSYWRpdXMsY3Vyc29yOiJwb2ludGVyIix0cmFuc2l0aW9uOmBhbGwgJHskLm1vdGlvbkR1cmF0aW9uTWlkfWB9LFtgJHtffS1wcmV2LCAke199LW5leHRgXTp7b3V0bGluZTowLGJ1dHRvbjp7Y29sb3I6JC5jb2xvclRleHQsY3Vyc29yOiJwb2ludGVyIix1c2VyU2VsZWN0OiJub25lIn0sW2Ake199LWl0ZW0tbGlua2BdOntkaXNwbGF5OiJibG9jayIsd2lkdGg6IjEwMCUiLGhlaWdodDoiMTAwJSIscGFkZGluZzowLGZvbnRTaXplOiQuZm9udFNpemVTTSx0ZXh0QWxpZ246ImNlbnRlciIsYmFja2dyb3VuZENvbG9yOiJ0cmFuc3BhcmVudCIsYm9yZGVyOmAkeygwLFouYmYpKCQubGluZVdpZHRoKX0gJHskLmxpbmVUeXBlfSB0cmFuc3BhcmVudGAsYm9yZGVyUmFkaXVzOiQuYm9yZGVyUmFkaXVzLG91dGxpbmU6Im5vbmUiLHRyYW5zaXRpb246YGFsbCAkeyQubW90aW9uRHVyYXRpb25NaWR9YH0sW2AmOmhvdmVyICR7X30taXRlbS1saW5rYF06e2JhY2tncm91bmRDb2xvcjokLmNvbG9yQmdUZXh0SG92ZXJ9LFtgJjphY3RpdmUgJHtffS1pdGVtLWxpbmtgXTp7YmFja2dyb3VuZENvbG9yOiQuY29sb3JCZ1RleHRBY3RpdmV9LFtgJiR7X30tZGlzYWJsZWQ6aG92ZXJgXTp7W2Ake199LWl0ZW0tbGlua2BdOntiYWNrZ3JvdW5kQ29sb3I6InRyYW5zcGFyZW50In19fSxbYCR7X30tc2xhc2hgXTp7bWFyZ2luSW5saW5lRW5kOiQucGFnaW5hdGlvblNsYXNoTWFyZ2luSW5saW5lRW5kLG1hcmdpbklubGluZVN0YXJ0OiQucGFnaW5hdGlvblNsYXNoTWFyZ2luSW5saW5lU3RhcnR9LFtgJHtffS1vcHRpb25zYF06e2Rpc3BsYXk6ImlubGluZS1ibG9jayIsbWFyZ2luSW5saW5lU3RhcnQ6JC5tYXJnaW4sdmVydGljYWxBbGlnbjoibWlkZGxlIiwiJi1zaXplLWNoYW5nZXIiOntkaXNwbGF5OiJpbmxpbmUtYmxvY2siLHdpZHRoOiJhdXRvIn0sIiYtcXVpY2stanVtcGVyIjp7ZGlzcGxheToiaW5saW5lLWJsb2NrIixoZWlnaHQ6JC5jb250cm9sSGVpZ2h0LG1hcmdpbklubGluZVN0YXJ0OiQubWFyZ2luWFMsbGluZUhlaWdodDooMCxaLmJmKSgkLmNvbnRyb2xIZWlnaHQpLHZlcnRpY2FsQWxpZ246InRvcCIsaW5wdXQ6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sKDAsUC5paykoJCkpLCgwLHNlLiRVKSgkLHtib3JkZXJDb2xvcjokLmNvbG9yQm9yZGVyLGhvdmVyQm9yZGVyQ29sb3I6JC5jb2xvclByaW1hcnlIb3ZlcixhY3RpdmVCb3JkZXJDb2xvcjokLmNvbG9yUHJpbWFyeSxhY3RpdmVTaGFkb3c6JC5hY3RpdmVTaGFkb3d9KSkseyImW2Rpc2FibGVkXSI6T2JqZWN0LmFzc2lnbih7fSwoMCxzZS5YeSkoJCkpLHdpZHRoOiQuY2FsYygkLmNvbnRyb2xIZWlnaHRMRykubXVsKDEuMjUpLmVxdWFsKCksaGVpZ2h0OiQuY29udHJvbEhlaWdodCxib3hTaXppbmc6ImJvcmRlci1ib3giLG1hcmdpbjowLG1hcmdpbklubGluZVN0YXJ0OiQubWFyZ2luWFMsbWFyZ2luSW5saW5lRW5kOiQubWFyZ2luWFN9KX19fX0sb3Q9JD0+e2NvbnN0e2NvbXBvbmVudENsczpffT0kO3JldHVybntbYCR7X30taXRlbWBdOntkaXNwbGF5OiJpbmxpbmUtYmxvY2siLG1pbldpZHRoOiQuaXRlbVNpemUsaGVpZ2h0OiQuaXRlbVNpemUsbWFyZ2luSW5saW5lRW5kOiQubWFyZ2luWFMsZm9udEZhbWlseTokLmZvbnRGYW1pbHksbGluZUhlaWdodDooMCxaLmJmKSgkLmNhbGMoJC5pdGVtU2l6ZSkuc3ViKDIpLmVxdWFsKCkpLHRleHRBbGlnbjoiY2VudGVyIix2ZXJ0aWNhbEFsaWduOiJtaWRkbGUiLGxpc3RTdHlsZToibm9uZSIsYmFja2dyb3VuZENvbG9yOiQuaXRlbUJnLGJvcmRlcjpgJHsoMCxaLmJmKSgkLmxpbmVXaWR0aCl9ICR7JC5saW5lVHlwZX0gdHJhbnNwYXJlbnRgLGJvcmRlclJhZGl1czokLmJvcmRlclJhZGl1cyxvdXRsaW5lOjAsY3Vyc29yOiJwb2ludGVyIix1c2VyU2VsZWN0OiJub25lIixhOntkaXNwbGF5OiJibG9jayIscGFkZGluZzpgMCAkeygwLFouYmYpKCQucGFnaW5hdGlvbkl0ZW1QYWRkaW5nSW5saW5lKX1gLGNvbG9yOiQuY29sb3JUZXh0LCImOmhvdmVyIjp7dGV4dERlY29yYXRpb246Im5vbmUifX0sW2AmOm5vdCgke199LWl0ZW0tYWN0aXZlKWBdOnsiJjpob3ZlciI6e3RyYW5zaXRpb246YGFsbCAkeyQubW90aW9uRHVyYXRpb25NaWR9YCxiYWNrZ3JvdW5kQ29sb3I6JC5jb2xvckJnVGV4dEhvdmVyfSwiJjphY3RpdmUiOntiYWNrZ3JvdW5kQ29sb3I6JC5jb2xvckJnVGV4dEFjdGl2ZX19LCImLWFjdGl2ZSI6e2ZvbnRXZWlnaHQ6JC5mb250V2VpZ2h0U3Ryb25nLGJhY2tncm91bmRDb2xvcjokLml0ZW1BY3RpdmVCZyxib3JkZXJDb2xvcjokLmNvbG9yUHJpbWFyeSxhOntjb2xvcjokLmNvbG9yUHJpbWFyeX0sIiY6aG92ZXIiOntib3JkZXJDb2xvcjokLmNvbG9yUHJpbWFyeUhvdmVyfSwiJjpob3ZlciBhIjp7Y29sb3I6JC5jb2xvclByaW1hcnlIb3Zlcn19fX19LHFlPSQ9Pntjb25zdHtjb21wb25lbnRDbHM6X309JDtyZXR1cm57W19dOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwoMCxuZS5XZikoJCkpLHtkaXNwbGF5OiJmbGV4IiwiJi1zdGFydCI6e2p1c3RpZnlDb250ZW50OiJzdGFydCJ9LCImLWNlbnRlciI6e2p1c3RpZnlDb250ZW50OiJjZW50ZXIifSwiJi1lbmQiOntqdXN0aWZ5Q29udGVudDoiZW5kIn0sInVsLCBvbCI6e21hcmdpbjowLHBhZGRpbmc6MCxsaXN0U3R5bGU6Im5vbmUifSwiJjo6YWZ0ZXIiOntkaXNwbGF5OiJibG9jayIsY2xlYXI6ImJvdGgiLGhlaWdodDowLG92ZXJmbG93OiJoaWRkZW4iLHZpc2liaWxpdHk6ImhpZGRlbiIsY29udGVudDonIiInfSxbYCR7X30tdG90YWwtdGV4dGBdOntkaXNwbGF5OiJpbmxpbmUtYmxvY2siLGhlaWdodDokLml0ZW1TaXplLG1hcmdpbklubGluZUVuZDokLm1hcmdpblhTLGxpbmVIZWlnaHQ6KDAsWi5iZikoJC5jYWxjKCQuaXRlbVNpemUpLnN1YigyKS5lcXVhbCgpKSx2ZXJ0aWNhbEFsaWduOiJtaWRkbGUifX0pLG90KCQpKSxZZSgkKSksQmUoJCkpLFJlKCQpKSxFZSgkKSkse1tgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkeyQuc2NyZWVuTEd9cHgpYF06e1tgJHtffS1pdGVtYF06eyImLWFmdGVyLWp1bXAtcHJldiwgJi1iZWZvcmUtanVtcC1uZXh0Ijp7ZGlzcGxheToibm9uZSJ9fX0sW2BAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICR7JC5zY3JlZW5TTX1weClgXTp7W2Ake199LW9wdGlvbnNgXTp7ZGlzcGxheToibm9uZSJ9fX0pLFtgJiR7JC5jb21wb25lbnRDbHN9LXJ0bGBdOntkaXJlY3Rpb246InJ0bCJ9fX0sX2U9JD0+e2NvbnN0e2NvbXBvbmVudENsczpffT0kO3JldHVybntbYCR7X306bm90KCR7X30tZGlzYWJsZWQpYF06e1tgJHtffS1pdGVtYF06T2JqZWN0LmFzc2lnbih7fSwoMCxuZS5ReSkoJCkpLFtgJHtffS1qdW1wLXByZXYsICR7X30tanVtcC1uZXh0YF06eyImOmZvY3VzLXZpc2libGUiOk9iamVjdC5hc3NpZ24oe1tgJHtffS1pdGVtLWxpbmstaWNvbmBdOntvcGFjaXR5OjF9LFtgJHtffS1pdGVtLWVsbGlwc2lzYF06e29wYWNpdHk6MH19LCgwLG5lLm9OKSgkKSl9LFtgJHtffS1wcmV2LCAke199LW5leHRgXTp7W2AmOmZvY3VzLXZpc2libGUgJHtffS1pdGVtLWxpbmtgXTpPYmplY3QuYXNzaWduKHt9LCgwLG5lLm9OKSgkKSl9fX19LEZlPSQ9Pk9iamVjdC5hc3NpZ24oe2l0ZW1CZzokLmNvbG9yQmdDb250YWluZXIsaXRlbVNpemU6JC5jb250cm9sSGVpZ2h0LGl0ZW1TaXplU006JC5jb250cm9sSGVpZ2h0U00saXRlbUFjdGl2ZUJnOiQuY29sb3JCZ0NvbnRhaW5lcixpdGVtTGlua0JnOiQuY29sb3JCZ0NvbnRhaW5lcixpdGVtQWN0aXZlQ29sb3JEaXNhYmxlZDokLmNvbG9yVGV4dERpc2FibGVkLGl0ZW1BY3RpdmVCZ0Rpc2FibGVkOiQuY29udHJvbEl0ZW1CZ0FjdGl2ZURpc2FibGVkLGl0ZW1JbnB1dEJnOiQuY29sb3JCZ0NvbnRhaW5lcixtaW5pT3B0aW9uc1NpemVDaGFuZ2VyVG9wOjB9LCgwLEsuVCkoJCkpLFNlPSQ9PigwLG9lLklYKSgkLHtpbnB1dE91dGxpbmVPZmZzZXQ6MCxwYWdpbmF0aW9uTWluaU9wdGlvbnNNYXJnaW5JbmxpbmVTdGFydDokLmNhbGMoJC5tYXJnaW5YWFMpLmRpdigyKS5lcXVhbCgpLHBhZ2luYXRpb25NaW5pUXVpY2tKdW1wZXJJbnB1dFdpZHRoOiQuY2FsYygkLmNvbnRyb2xIZWlnaHRMRykubXVsKDEuMSkuZXF1YWwoKSxwYWdpbmF0aW9uSXRlbVBhZGRpbmdJbmxpbmU6JC5jYWxjKCQubWFyZ2luWFhTKS5tdWwoMS41KS5lcXVhbCgpLHBhZ2luYXRpb25FbGxpcHNpc0xldHRlclNwYWNpbmc6JC5jYWxjKCQubWFyZ2luWFhTKS5kaXYoMikuZXF1YWwoKSxwYWdpbmF0aW9uU2xhc2hNYXJnaW5JbmxpbmVTdGFydDokLm1hcmdpblNNLHBhZ2luYXRpb25TbGFzaE1hcmdpbklubGluZUVuZDokLm1hcmdpblNNLHBhZ2luYXRpb25FbGxpcHNpc1RleHRJbmRlbnQ6IjAuMTNlbSJ9LCgwLEsuZSkoJCkpO3ZhciBxPSgwLGZlLkkkKSgiUGFnaW5hdGlvbiIsJD0+e2NvbnN0IF89U2UoJCk7cmV0dXJuW3FlKF8pLF9lKF8pXX0sRmUpO2NvbnN0IGs9JD0+e2NvbnN0e2NvbXBvbmVudENsczpffT0kO3JldHVybntbYCR7X30ke199LWJvcmRlcmVkJHtffS1kaXNhYmxlZDpub3QoJHtffS1taW5pKWBdOnsiJiwgJjpob3ZlciI6e1tgJHtffS1pdGVtLWxpbmtgXTp7Ym9yZGVyQ29sb3I6JC5jb2xvckJvcmRlcn19LCImOmZvY3VzLXZpc2libGUiOntbYCR7X30taXRlbS1saW5rYF06e2JvcmRlckNvbG9yOiQuY29sb3JCb3JkZXJ9fSxbYCR7X30taXRlbSwgJHtffS1pdGVtLWxpbmtgXTp7YmFja2dyb3VuZENvbG9yOiQuY29sb3JCZ0NvbnRhaW5lckRpc2FibGVkLGJvcmRlckNvbG9yOiQuY29sb3JCb3JkZXIsW2AmOmhvdmVyOm5vdCgke199LWl0ZW0tYWN0aXZlKWBdOntiYWNrZ3JvdW5kQ29sb3I6JC5jb2xvckJnQ29udGFpbmVyRGlzYWJsZWQsYm9yZGVyQ29sb3I6JC5jb2xvckJvcmRlcixhOntjb2xvcjokLmNvbG9yVGV4dERpc2FibGVkfX0sW2AmJHtffS1pdGVtLWFjdGl2ZWBdOntiYWNrZ3JvdW5kQ29sb3I6JC5pdGVtQWN0aXZlQmdEaXNhYmxlZH19LFtgJHtffS1wcmV2LCAke199LW5leHRgXTp7IiY6aG92ZXIgYnV0dG9uIjp7YmFja2dyb3VuZENvbG9yOiQuY29sb3JCZ0NvbnRhaW5lckRpc2FibGVkLGJvcmRlckNvbG9yOiQuY29sb3JCb3JkZXIsY29sb3I6JC5jb2xvclRleHREaXNhYmxlZH0sW2Ake199LWl0ZW0tbGlua2BdOntiYWNrZ3JvdW5kQ29sb3I6JC5jb2xvckJnQ29udGFpbmVyRGlzYWJsZWQsYm9yZGVyQ29sb3I6JC5jb2xvckJvcmRlcn19fSxbYCR7X30ke199LWJvcmRlcmVkOm5vdCgke199LW1pbmkpYF06e1tgJHtffS1wcmV2LCAke199LW5leHRgXTp7IiY6aG92ZXIgYnV0dG9uIjp7Ym9yZGVyQ29sb3I6JC5jb2xvclByaW1hcnlIb3ZlcixiYWNrZ3JvdW5kQ29sb3I6JC5pdGVtQmd9LFtgJHtffS1pdGVtLWxpbmtgXTp7YmFja2dyb3VuZENvbG9yOiQuaXRlbUxpbmtCZyxib3JkZXJDb2xvcjokLmNvbG9yQm9yZGVyfSxbYCY6aG92ZXIgJHtffS1pdGVtLWxpbmtgXTp7Ym9yZGVyQ29sb3I6JC5jb2xvclByaW1hcnksYmFja2dyb3VuZENvbG9yOiQuaXRlbUJnLGNvbG9yOiQuY29sb3JQcmltYXJ5fSxbYCYke199LWRpc2FibGVkYF06e1tgJHtffS1pdGVtLWxpbmtgXTp7Ym9yZGVyQ29sb3I6JC5jb2xvckJvcmRlcixjb2xvcjokLmNvbG9yVGV4dERpc2FibGVkfX19LFtgJHtffS1pdGVtYF06e2JhY2tncm91bmRDb2xvcjokLml0ZW1CZyxib3JkZXI6YCR7KDAsWi5iZikoJC5saW5lV2lkdGgpfSAkeyQubGluZVR5cGV9ICR7JC5jb2xvckJvcmRlcn1gLFtgJjpob3Zlcjpub3QoJHtffS1pdGVtLWFjdGl2ZSlgXTp7Ym9yZGVyQ29sb3I6JC5jb2xvclByaW1hcnksYmFja2dyb3VuZENvbG9yOiQuaXRlbUJnLGE6e2NvbG9yOiQuY29sb3JQcmltYXJ5fX0sIiYtYWN0aXZlIjp7Ym9yZGVyQ29sb3I6JC5jb2xvclByaW1hcnl9fX19fTt2YXIgTT0oMCxmZS5iaykoWyJQYWdpbmF0aW9uIiwiYm9yZGVyZWQiXSwkPT57Y29uc3QgXz1TZSgkKTtyZXR1cm5bayhfKV19LEZlKTtmdW5jdGlvbiBBKCQpe3JldHVybigwLHIudXNlTWVtbykoKCk9PnR5cGVvZiAkPT0iYm9vbGVhbiI/WyQse31dOiQmJnR5cGVvZiAkPT0ib2JqZWN0Ij9bITAsJF06W3ZvaWQgMCx2b2lkIDBdLFskXSl9dmFyIFU9ZnVuY3Rpb24oJCxfKXt2YXIgcGU9e307Zm9yKHZhciByZSBpbiAkKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCgkLHJlKSYmXy5pbmRleE9mKHJlKTwwJiYocGVbcmVdPSRbcmVdKTtpZigkIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIGFlPTAscmU9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scygkKTthZTxyZS5sZW5ndGg7YWUrKylfLmluZGV4T2YocmVbYWVdKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoJCxyZVthZV0pJiYocGVbcmVbYWVdXT0kW3JlW2FlXV0pO3JldHVybiBwZX0sUT0kPT57Y29uc3R7YWxpZ246XyxwcmVmaXhDbHM6cGUsc2VsZWN0UHJlZml4Q2xzOnJlLGNsYXNzTmFtZTphZSxyb290Q2xhc3NOYW1lOndlLHN0eWxlOkxlLHNpemU6TWUsbG9jYWxlOmJlLHJlc3BvbnNpdmU6JGUsc2hvd1NpemVDaGFuZ2VyOmtlLHNlbGVjdENvbXBvbmVudENsYXNzOkFlLHBhZ2VTaXplT3B0aW9uczp0dH09JCxtdD1VKCQsWyJhbGlnbiIsInByZWZpeENscyIsInNlbGVjdFByZWZpeENscyIsImNsYXNzTmFtZSIsInJvb3RDbGFzc05hbWUiLCJzdHlsZSIsInNpemUiLCJsb2NhbGUiLCJyZXNwb25zaXZlIiwic2hvd1NpemVDaGFuZ2VyIiwic2VsZWN0Q29tcG9uZW50Q2xhc3MiLCJwYWdlU2l6ZU9wdGlvbnMiXSkse3hzOnV0fT0oMCxXLlopKCRlKSxbLERlXT0oMCxWLlpQKSgpLHtnZXRQcmVmaXhDbHM6TmUsZGlyZWN0aW9uOlhlLHNob3dTaXplQ2hhbmdlcjpKZSxjbGFzc05hbWU6Z3Qsc3R5bGU6ZGV9PSgwLGxlLmRqKSgicGFnaW5hdGlvbiIpLFdlPU5lKCJwYWdpbmF0aW9uIixwZSksW1N0LGN0LE9lXT1xKFdlKSxHZT0oMCxjZS5aKShNZSksaHQ9R2U9PT0ic21hbGwifHwhISh1dCYmIUdlJiYkZSksW3plXT0oMCxqLlopKCJQYWdpbmF0aW9uIix0ZS5aKSxRZT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30semUpLGJlKSxbcHQsYnRdPUEoa2UpLFtJdCxUdF09QShKZSksWHQ9cHQhPW51bGw/cHQ6SXQsZm49YnQhPW51bGw/YnQ6VHQsbm49QWV8fEQuWixvbj1yLnVzZU1lbW8oKCk9PnR0P3R0Lm1hcChWbj0+TnVtYmVyKFZuKSk6dm9pZCAwLFt0dF0pLE50PVZuPT57dmFyIE5uO2NvbnN0e2Rpc2FibGVkOmZ0LHNpemU6ZXQsb25TaXplQ2hhbmdlOkp0LCJhcmlhLWxhYmVsIjp3dCxjbGFzc05hbWU6X3Qsb3B0aW9uczp4bn09Vm4se2NsYXNzTmFtZTpZbixvbkNoYW5nZTpQbn09Zm58fHt9LExuPShObj14bi5maW5kKGVyPT5TdHJpbmcoZXIudmFsdWUpPT09U3RyaW5nKGV0KSkpPT09bnVsbHx8Tm49PT12b2lkIDA/dm9pZCAwOk5uLnZhbHVlO3JldHVybiByLmNyZWF0ZUVsZW1lbnQobm4sT2JqZWN0LmFzc2lnbih7ZGlzYWJsZWQ6ZnQsc2hvd1NlYXJjaDohMCxwb3B1cE1hdGNoU2VsZWN0V2lkdGg6ITEsZ2V0UG9wdXBDb250YWluZXI6ZXI9PmVyLnBhcmVudE5vZGUsImFyaWEtbGFiZWwiOnd0LG9wdGlvbnM6eG59LGZuLHt2YWx1ZTpMbixvbkNoYW5nZTooZXIsUW4pPT57SnQ9PW51bGx8fEp0KGVyKSxQbj09bnVsbHx8UG4oZXIsUW4pfSxzaXplOmh0PyJzbWFsbCI6Im1pZGRsZSIsY2xhc3NOYW1lOnUoKShfdCxZbil9KSl9LFpuPXIudXNlTWVtbygoKT0+e2NvbnN0IFZuPXIuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpgJHtXZX0taXRlbS1lbGxpcHNpc2B9LCJcdTIwMjJcdTIwMjJcdTIwMjIiKSxObj1yLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIse2NsYXNzTmFtZTpgJHtXZX0taXRlbS1saW5rYCx0eXBlOiJidXR0b24iLHRhYkluZGV4Oi0xfSxYZT09PSJydGwiP3IuY3JlYXRlRWxlbWVudChzLlosbnVsbCk6ci5jcmVhdGVFbGVtZW50KGkuWixudWxsKSksZnQ9ci5jcmVhdGVFbGVtZW50KCJidXR0b24iLHtjbGFzc05hbWU6YCR7V2V9LWl0ZW0tbGlua2AsdHlwZToiYnV0dG9uIix0YWJJbmRleDotMX0sWGU9PT0icnRsIj9yLmNyZWF0ZUVsZW1lbnQoaS5aLG51bGwpOnIuY3JlYXRlRWxlbWVudChzLlosbnVsbCkpLGV0PXIuY3JlYXRlRWxlbWVudCgiYSIse2NsYXNzTmFtZTpgJHtXZX0taXRlbS1saW5rYH0sci5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YCR7V2V9LWl0ZW0tY29udGFpbmVyYH0sWGU9PT0icnRsIj9yLmNyZWF0ZUVsZW1lbnQodC5aLHtjbGFzc05hbWU6YCR7V2V9LWl0ZW0tbGluay1pY29uYH0pOnIuY3JlYXRlRWxlbWVudChuLlose2NsYXNzTmFtZTpgJHtXZX0taXRlbS1saW5rLWljb25gfSksVm4pKSxKdD1yLmNyZWF0ZUVsZW1lbnQoImEiLHtjbGFzc05hbWU6YCR7V2V9LWl0ZW0tbGlua2B9LHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmAke1dlfS1pdGVtLWNvbnRhaW5lcmB9LFhlPT09InJ0bCI/ci5jcmVhdGVFbGVtZW50KG4uWix7Y2xhc3NOYW1lOmAke1dlfS1pdGVtLWxpbmstaWNvbmB9KTpyLmNyZWF0ZUVsZW1lbnQodC5aLHtjbGFzc05hbWU6YCR7V2V9LWl0ZW0tbGluay1pY29uYH0pLFZuKSk7cmV0dXJue3ByZXZJY29uOk5uLG5leHRJY29uOmZ0LGp1bXBQcmV2SWNvbjpldCxqdW1wTmV4dEljb246SnR9fSxbWGUsV2VdKSx5bj1OZSgic2VsZWN0IixyZSksZ249dSgpKHtbYCR7V2V9LSR7X31gXTohIV8sW2Ake1dlfS1taW5pYF06aHQsW2Ake1dlfS1ydGxgXTpYZT09PSJydGwiLFtgJHtXZX0tYm9yZGVyZWRgXTpEZS53aXJlZnJhbWV9LGd0LGFlLHdlLGN0LE9lKSxCbj1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZGUpLExlKTtyZXR1cm4gU3Qoci5jcmVhdGVFbGVtZW50KHIuRnJhZ21lbnQsbnVsbCxEZS53aXJlZnJhbWUmJnIuY3JlYXRlRWxlbWVudChNLHtwcmVmaXhDbHM6V2V9KSxyLmNyZWF0ZUVsZW1lbnQobWUsT2JqZWN0LmFzc2lnbih7fSxabixtdCx7c3R5bGU6Qm4scHJlZml4Q2xzOldlLHNlbGVjdFByZWZpeENsczp5bixjbGFzc05hbWU6Z24sbG9jYWxlOlFlLHBhZ2VTaXplT3B0aW9uczpvbixzaG93U2l6ZUNoYW5nZXI6WHQsc2l6ZUNoYW5nZXJSZW5kZXI6TnR9KSkpKX0sdWU9UX0sMzQwNDE6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDY3Mjk0KSxuPWUoOTM5NjcpLHQ9ZS5uKG4pLGk9ZSg4MjI3NSkscz1lKDk4NDIzKSxhPWUoODcyNjMpLHU9ZSgzMzYwMyksYz1lKDg3NDUpLGg9ZSg5NzA4KSxkPWUoNTMxMjQpLG09ZSg4ODI1OCksQz1lKDk4ODY2KSxnPWUoMzU3OTIpLHc9ZSg5ODY3NSksRT1lKDY1MjIzKSx4PWUoMjc4MzMpLE89ZSg0MTczKSxUPWUoMjk2OTEpLFM9ZSgzMDMwNyksTD1lKDE1MDMwKSxJPWUoNDMyNzcpLFI9ZSg3ODY0Miksej1mdW5jdGlvbihtZSx0ZSl7dmFyIGxlPXt9O2Zvcih2YXIgY2UgaW4gbWUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG1lLGNlKSYmdGUuaW5kZXhPZihjZSk8MCYmKGxlW2NlXT1tZVtjZV0pO2lmKG1lIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIFc9MCxjZT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG1lKTtXPGNlLmxlbmd0aDtXKyspdGUuaW5kZXhPZihjZVtXXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKG1lLGNlW1ddKSYmKGxlW2NlW1ddXT1tZVtjZVtXXV0pO3JldHVybiBsZX07Y29uc3QgRz0iU0VDUkVUX0NPTUJPQk9YX01PREVfRE9fTk9UX1VTRSIsWT0obWUsdGUpPT57dmFyIGxlO2NvbnN0e3ByZWZpeENsczpjZSxib3JkZXJlZDpXLGNsYXNzTmFtZTpqLHJvb3RDbGFzc05hbWU6RCxnZXRQb3B1cENvbnRhaW5lcjpWLHBvcHVwQ2xhc3NOYW1lOlosZHJvcGRvd25DbGFzc05hbWU6UCxsaXN0SGVpZ2h0Oks9MjU2LHBsYWNlbWVudDpzZSxsaXN0SXRlbUhlaWdodDpuZSxzaXplOm9lLGRpc2FibGVkOmZlLG5vdEZvdW5kQ29udGVudDpFZSxzdGF0dXM6UmUsYnVpbHRpblBsYWNlbWVudHM6QmUsZHJvcGRvd25NYXRjaFNlbGVjdFdpZHRoOlllLHBvcHVwTWF0Y2hTZWxlY3RXaWR0aDpvdCxkaXJlY3Rpb246cWUsc3R5bGU6X2UsYWxsb3dDbGVhcjpGZSx2YXJpYW50OlNlLGRyb3Bkb3duU3R5bGU6cSx0cmFuc2l0aW9uTmFtZTprLHRhZ1JlbmRlcjpNLG1heENvdW50OkEscHJlZml4OlV9PW1lLE49eihtZSxbInByZWZpeENscyIsImJvcmRlcmVkIiwiY2xhc3NOYW1lIiwicm9vdENsYXNzTmFtZSIsImdldFBvcHVwQ29udGFpbmVyIiwicG9wdXBDbGFzc05hbWUiLCJkcm9wZG93bkNsYXNzTmFtZSIsImxpc3RIZWlnaHQiLCJwbGFjZW1lbnQiLCJsaXN0SXRlbUhlaWdodCIsInNpemUiLCJkaXNhYmxlZCIsIm5vdEZvdW5kQ29udGVudCIsInN0YXR1cyIsImJ1aWx0aW5QbGFjZW1lbnRzIiwiZHJvcGRvd25NYXRjaFNlbGVjdFdpZHRoIiwicG9wdXBNYXRjaFNlbGVjdFdpZHRoIiwiZGlyZWN0aW9uIiwic3R5bGUiLCJhbGxvd0NsZWFyIiwidmFyaWFudCIsImRyb3Bkb3duU3R5bGUiLCJ0cmFuc2l0aW9uTmFtZSIsInRhZ1JlbmRlciIsIm1heENvdW50IiwicHJlZml4Il0pLHtnZXRQb3B1cENvbnRhaW5lcjpRLGdldFByZWZpeENsczp1ZSxyZW5kZXJFbXB0eTokLGRpcmVjdGlvbjpfLHZpcnR1YWw6cGUscG9wdXBNYXRjaFNlbGVjdFdpZHRoOnJlLHBvcHVwT3ZlcmZsb3c6YWV9PXIudXNlQ29udGV4dChkLkVfKSx3ZT0oMCxkLmRqKSgic2VsZWN0IiksWyxMZV09KDAsVC5aUCkoKSxNZT1uZSE9bnVsbD9uZTpMZT09bnVsbD92b2lkIDA6TGUuY29udHJvbEhlaWdodCxiZT11ZSgic2VsZWN0IixjZSksJGU9dWUoKSxrZT1xZSE9bnVsbD9xZTpfLHtjb21wYWN0U2l6ZTpBZSxjb21wYWN0SXRlbUNsYXNzbmFtZXM6dHR9PSgwLE8ucmkpKGJlLGtlKSxbbXQsdXRdPSgwLHguWikoInNlbGVjdCIsU2UsVyksRGU9KDAsZy5aKShiZSksW05lLFhlLEplXT0oMCxMLlopKGJlLERlKSxndD1yLnVzZU1lbW8oKCk9Pntjb25zdHttb2RlOlZufT1tZTtpZihWbiE9PSJjb21ib2JveCIpcmV0dXJuIFZuPT09Rz8iY29tYm9ib3giOlZufSxbbWUubW9kZV0pLGRlPWd0PT09Im11bHRpcGxlInx8Z3Q9PT0idGFncyIsV2U9KDAsUi5aKShtZS5zdWZmaXhJY29uLG1lLnNob3dBcnJvdyksU3Q9KGxlPW90IT1udWxsP290OlllKSE9PW51bGwmJmxlIT09dm9pZCAwP2xlOnJlLHtzdGF0dXM6Y3QsaGFzRmVlZGJhY2s6T2UsaXNGb3JtSXRlbUlucHV0OkdlLGZlZWRiYWNrSWNvbjpodH09ci51c2VDb250ZXh0KEUuYU0pLHplPSgwLGguRikoY3QsUmUpO2xldCBRZTtFZSE9PXZvaWQgMD9RZT1FZTpndD09PSJjb21ib2JveCI/UWU9bnVsbDpRZT0oJD09bnVsbD92b2lkIDA6JCgiU2VsZWN0IikpfHxyLmNyZWF0ZUVsZW1lbnQobS5aLHtjb21wb25lbnROYW1lOiJTZWxlY3QifSk7Y29uc3R7c3VmZml4SWNvbjpwdCxpdGVtSWNvbjpidCxyZW1vdmVJY29uOkl0LGNsZWFySWNvbjpUdH09KDAsSS5aKShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sTikse211bHRpcGxlOmRlLGhhc0ZlZWRiYWNrOk9lLGZlZWRiYWNrSWNvbjpodCxzaG93U3VmZml4SWNvbjpXZSxwcmVmaXhDbHM6YmUsY29tcG9uZW50TmFtZToiU2VsZWN0In0pKSxYdD1GZT09PSEwP3tjbGVhckljb246VHR9OkZlLGZuPSgwLHMuWikoTixbInN1ZmZpeEljb24iLCJpdGVtSWNvbiJdKSxubj10KCkoWnx8UCx7W2Ake2JlfS1kcm9wZG93bi0ke2tlfWBdOmtlPT09InJ0bCJ9LEQsSmUsRGUsWGUpLG9uPSgwLHcuWikoVm49Pnt2YXIgTm47cmV0dXJuKE5uPW9lIT1udWxsP29lOkFlKSE9PW51bGwmJk5uIT09dm9pZCAwP05uOlZufSksTnQ9ci51c2VDb250ZXh0KEMuWiksWm49ZmUhPW51bGw/ZmU6TnQseW49dCgpKHtbYCR7YmV9LWxnYF06b249PT0ibGFyZ2UiLFtgJHtiZX0tc21gXTpvbj09PSJzbWFsbCIsW2Ake2JlfS1ydGxgXTprZT09PSJydGwiLFtgJHtiZX0tJHttdH1gXTp1dCxbYCR7YmV9LWluLWZvcm0taXRlbWBdOkdlfSwoMCxoLlopKGJlLHplLE9lKSx0dCx3ZS5jbGFzc05hbWUsaixELEplLERlLFhlKSxnbj1yLnVzZU1lbW8oKCk9PnNlIT09dm9pZCAwP3NlOmtlPT09InJ0bCI/ImJvdHRvbVJpZ2h0IjoiYm90dG9tTGVmdCIsW3NlLGtlXSksW0JuXT0oMCxhLkNuKSgiU2VsZWN0TGlrZSIscT09bnVsbD92b2lkIDA6cS56SW5kZXgpO3JldHVybiBOZShyLmNyZWF0ZUVsZW1lbnQoaS5aUCxPYmplY3QuYXNzaWduKHtyZWY6dGUsdmlydHVhbDpwZSxzaG93U2VhcmNoOndlLnNob3dTZWFyY2h9LGZuLHtzdHlsZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sd2Uuc3R5bGUpLF9lKSxkcm9wZG93bk1hdGNoU2VsZWN0V2lkdGg6U3QsdHJhbnNpdGlvbk5hbWU6KDAsdS5tKSgkZSwic2xpZGUtdXAiLGspLGJ1aWx0aW5QbGFjZW1lbnRzOigwLFMuWikoQmUsYWUpLGxpc3RIZWlnaHQ6SyxsaXN0SXRlbUhlaWdodDpNZSxtb2RlOmd0LHByZWZpeENsczpiZSxwbGFjZW1lbnQ6Z24sZGlyZWN0aW9uOmtlLHByZWZpeDpVLHN1ZmZpeEljb246cHQsbWVudUl0ZW1TZWxlY3RlZEljb246YnQscmVtb3ZlSWNvbjpJdCxhbGxvd0NsZWFyOlh0LG5vdEZvdW5kQ29udGVudDpRZSxjbGFzc05hbWU6eW4sZ2V0UG9wdXBDb250YWluZXI6Vnx8USxkcm9wZG93bkNsYXNzTmFtZTpubixkaXNhYmxlZDpabixkcm9wZG93blN0eWxlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxxKSx7ekluZGV4OkJufSksbWF4Q291bnQ6ZGU/QTp2b2lkIDAsdGFnUmVuZGVyOmRlP006dm9pZCAwfSkpKX0sZWU9ci5mb3J3YXJkUmVmKFkpLEo9KDAsYy5aKShlZSwiZHJvcGRvd25BbGlnbiIpO2VlLlNFQ1JFVF9DT01CT0JPWF9NT0RFX0RPX05PVF9VU0U9RyxlZS5PcHRpb249aS5XeCxlZS5PcHRHcm91cD1pLlhvLGVlLl9JbnRlcm5hbFBhbmVsRG9Ob3RVc2VPcllvdVdpbGxCZUZpcmVkPUoscC5aPWVlfSwzMDMwNzpmdW5jdGlvbih5LHApeyJ1c2Ugc3RyaWN0Ijtjb25zdCBlPW49Pntjb25zdCBpPXtvdmVyZmxvdzp7YWRqdXN0WDohMCxhZGp1c3RZOiEwLHNoaWZ0WTohMH0saHRtbFJlZ2lvbjpuPT09InNjcm9sbCI/InNjcm9sbCI6InZpc2libGUiLGR5bmFtaWNJbnNldDohMH07cmV0dXJue2JvdHRvbUxlZnQ6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGkpLHtwb2ludHM6WyJ0bCIsImJsIl0sb2Zmc2V0OlswLDRdfSksYm90dG9tUmlnaHQ6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGkpLHtwb2ludHM6WyJ0ciIsImJyIl0sb2Zmc2V0OlswLDRdfSksdG9wTGVmdDpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30saSkse3BvaW50czpbImJsIiwidGwiXSxvZmZzZXQ6WzAsLTRdfSksdG9wUmlnaHQ6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGkpLHtwb2ludHM6WyJiciIsInRyIl0sb2Zmc2V0OlswLC00XX0pfX07ZnVuY3Rpb24gcihuLHQpe3JldHVybiBufHxlKHQpfXAuWj1yfSwxNTAzMDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGNlfX0pO3ZhciByPWUoMTQ3NDcpLG49ZSg4MDExMCksdD1lKDgzNTU5KSxpPWUoODMyNjIpLHM9ZSg2Nzc3MSksYT1lKDMzMjk3KTtjb25zdCB1PVc9Pntjb25zdHtvcHRpb25IZWlnaHQ6aixvcHRpb25Gb250U2l6ZTpELG9wdGlvbkxpbmVIZWlnaHQ6VixvcHRpb25QYWRkaW5nOlp9PVc7cmV0dXJue3Bvc2l0aW9uOiJyZWxhdGl2ZSIsZGlzcGxheToiYmxvY2siLG1pbkhlaWdodDpqLHBhZGRpbmc6Wixjb2xvcjpXLmNvbG9yVGV4dCxmb250V2VpZ2h0OiJub3JtYWwiLGZvbnRTaXplOkQsbGluZUhlaWdodDpWLGJveFNpemluZzoiYm9yZGVyLWJveCJ9fTt2YXIgaD1XPT57Y29uc3R7YW50Q2xzOmosY29tcG9uZW50Q2xzOkR9PVcsVj1gJHtEfS1pdGVtYCxaPWAmJHtqfS1zbGlkZS11cC1lbnRlciR7an0tc2xpZGUtdXAtZW50ZXItYWN0aXZlYCxQPWAmJHtqfS1zbGlkZS11cC1hcHBlYXIke2p9LXNsaWRlLXVwLWFwcGVhci1hY3RpdmVgLEs9YCYke2p9LXNsaWRlLXVwLWxlYXZlJHtqfS1zbGlkZS11cC1sZWF2ZS1hY3RpdmVgLHNlPWAke0R9LWRyb3Bkb3duLXBsYWNlbWVudC1gLG5lPWAke1Z9LW9wdGlvbi1zZWxlY3RlZGA7cmV0dXJuW3tbYCR7RH0tZHJvcGRvd25gXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sKDAsci5XZikoVykpLHtwb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDotOTk5OSx6SW5kZXg6Vy56SW5kZXhQb3B1cCxib3hTaXppbmc6ImJvcmRlci1ib3giLHBhZGRpbmc6Vy5wYWRkaW5nWFhTLG92ZXJmbG93OiJoaWRkZW4iLGZvbnRTaXplOlcuZm9udFNpemUsZm9udFZhcmlhbnQ6ImluaXRpYWwiLGJhY2tncm91bmRDb2xvcjpXLmNvbG9yQmdFbGV2YXRlZCxib3JkZXJSYWRpdXM6Vy5ib3JkZXJSYWRpdXNMRyxvdXRsaW5lOiJub25lIixib3hTaGFkb3c6Vy5ib3hTaGFkb3dTZWNvbmRhcnksW2AKKyAgICAgICAgICAke1p9JHtzZX1ib3R0b21MZWZ0LAorICAgICAgICAgICR7UH0ke3NlfWJvdHRvbUxlZnQKKyAgICAgICAgYF06e2FuaW1hdGlvbk5hbWU6cy5mSn0sW2AKKyAgICAgICAgICAke1p9JHtzZX10b3BMZWZ0LAorICAgICAgICAgICR7UH0ke3NlfXRvcExlZnQsCisgICAgICAgICAgJHtafSR7c2V9dG9wUmlnaHQsCisgICAgICAgICAgJHtQfSR7c2V9dG9wUmlnaHQKKyAgICAgICAgYF06e2FuaW1hdGlvbk5hbWU6cy5RdH0sW2Ake0t9JHtzZX1ib3R0b21MZWZ0YF06e2FuaW1hdGlvbk5hbWU6cy5Vd30sW2AKKyAgICAgICAgICAke0t9JHtzZX10b3BMZWZ0LAorICAgICAgICAgICR7S30ke3NlfXRvcFJpZ2h0CisgICAgICAgIGBdOnthbmltYXRpb25OYW1lOnMubHl9LCImLWhpZGRlbiI6e2Rpc3BsYXk6Im5vbmUifSxbVl06T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHUoVykpLHtjdXJzb3I6InBvaW50ZXIiLHRyYW5zaXRpb246YGJhY2tncm91bmQgJHtXLm1vdGlvbkR1cmF0aW9uU2xvd30gZWFzZWAsYm9yZGVyUmFkaXVzOlcuYm9yZGVyUmFkaXVzU00sIiYtZ3JvdXAiOntjb2xvcjpXLmNvbG9yVGV4dERlc2NyaXB0aW9uLGZvbnRTaXplOlcuZm9udFNpemVTTSxjdXJzb3I6ImRlZmF1bHQifSwiJi1vcHRpb24iOntkaXNwbGF5OiJmbGV4IiwiJi1jb250ZW50IjpPYmplY3QuYXNzaWduKHtmbGV4OiJhdXRvIn0sci52UyksIiYtc3RhdGUiOntmbGV4OiJub25lIixkaXNwbGF5OiJmbGV4IixhbGlnbkl0ZW1zOiJjZW50ZXIifSxbYCYtYWN0aXZlOm5vdCgke1Z9LW9wdGlvbi1kaXNhYmxlZClgXTp7YmFja2dyb3VuZENvbG9yOlcub3B0aW9uQWN0aXZlQmd9LFtgJi1zZWxlY3RlZDpub3QoJHtWfS1vcHRpb24tZGlzYWJsZWQpYF06e2NvbG9yOlcub3B0aW9uU2VsZWN0ZWRDb2xvcixmb250V2VpZ2h0Olcub3B0aW9uU2VsZWN0ZWRGb250V2VpZ2h0LGJhY2tncm91bmRDb2xvcjpXLm9wdGlvblNlbGVjdGVkQmcsW2Ake1Z9LW9wdGlvbi1zdGF0ZWBdOntjb2xvcjpXLmNvbG9yUHJpbWFyeX19LCImLWRpc2FibGVkIjp7W2AmJHtWfS1vcHRpb24tc2VsZWN0ZWRgXTp7YmFja2dyb3VuZENvbG9yOlcuY29sb3JCZ0NvbnRhaW5lckRpc2FibGVkfSxjb2xvcjpXLmNvbG9yVGV4dERpc2FibGVkLGN1cnNvcjoibm90LWFsbG93ZWQifSwiJi1ncm91cGVkIjp7cGFkZGluZ0lubGluZVN0YXJ0OlcuY2FsYyhXLmNvbnRyb2xQYWRkaW5nSG9yaXpvbnRhbCkubXVsKDIpLmVxdWFsKCl9fSwiJi1lbXB0eSI6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHUoVykpLHtjb2xvcjpXLmNvbG9yVGV4dERpc2FibGVkfSl9KSxbYCR7bmV9OmhhcygrICR7bmV9KWBdOntib3JkZXJFbmRTdGFydFJhZGl1czowLGJvcmRlckVuZEVuZFJhZGl1czowLFtgJiArICR7bmV9YF06e2JvcmRlclN0YXJ0U3RhcnRSYWRpdXM6MCxib3JkZXJTdGFydEVuZFJhZGl1czowfX0sIiYtcnRsIjp7ZGlyZWN0aW9uOiJydGwifX0pfSwoMCxzLm9OKShXLCJzbGlkZS11cCIpLCgwLHMub04pKFcsInNsaWRlLWRvd24iKSwoMCxhLkZtKShXLCJtb3ZlLXVwIiksKDAsYS5GbSkoVywibW92ZS1kb3duIildfSxkPWUoMTY5MjgpLG09ZSgxMTU2OCk7ZnVuY3Rpb24gQyhXLGope2NvbnN0e2NvbXBvbmVudENsczpELGlucHV0UGFkZGluZ0hvcml6b250YWxCYXNlOlYsYm9yZGVyUmFkaXVzOlp9PVcsUD1XLmNhbGMoVy5jb250cm9sSGVpZ2h0KS5zdWIoVy5jYWxjKFcubGluZVdpZHRoKS5tdWwoMikpLmVxdWFsKCksSz1qP2Ake0R9LSR7an1gOiIiO3JldHVybntbYCR7RH0tc2luZ2xlJHtLfWBdOntmb250U2l6ZTpXLmZvbnRTaXplLGhlaWdodDpXLmNvbnRyb2xIZWlnaHQsW2Ake0R9LXNlbGVjdG9yYF06T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCgwLHIuV2YpKFcsITApKSx7ZGlzcGxheToiZmxleCIsYm9yZGVyUmFkaXVzOlosZmxleDoiMSAxIGF1dG8iLFtgJHtEfS1zZWxlY3Rpb24td3JhcDphZnRlcmBdOntsaW5lSGVpZ2h0OigwLG0uYmYpKFApfSxbYCR7RH0tc2VsZWN0aW9uLXNlYXJjaGBdOntwb3NpdGlvbjoiYWJzb2x1dGUiLGluc2V0OjAsd2lkdGg6IjEwMCUiLCImLWlucHV0Ijp7d2lkdGg6IjEwMCUiLFdlYmtpdEFwcGVhcmFuY2U6InRleHRmaWVsZCJ9fSxbYAorICAgICAgICAgICR7RH0tc2VsZWN0aW9uLWl0ZW0sCisgICAgICAgICAgJHtEfS1zZWxlY3Rpb24tcGxhY2Vob2xkZXIKKyAgICAgICAgYF06e2Rpc3BsYXk6ImJsb2NrIixwYWRkaW5nOjAsbGluZUhlaWdodDooMCxtLmJmKShQKSx0cmFuc2l0aW9uOmBhbGwgJHtXLm1vdGlvbkR1cmF0aW9uU2xvd30sIHZpc2liaWxpdHkgMHNgLGFsaWduU2VsZjoiY2VudGVyIn0sW2Ake0R9LXNlbGVjdGlvbi1wbGFjZWhvbGRlcmBdOnt0cmFuc2l0aW9uOiJub25lIixwb2ludGVyRXZlbnRzOiJub25lIn0sW1siJjphZnRlciIsYCR7RH0tc2VsZWN0aW9uLWl0ZW06ZW1wdHk6YWZ0ZXJgLGAke0R9LXNlbGVjdGlvbi1wbGFjZWhvbGRlcjplbXB0eTphZnRlcmBdLmpvaW4oIiwiKV06e2Rpc3BsYXk6ImlubGluZS1ibG9jayIsd2lkdGg6MCx2aXNpYmlsaXR5OiJoaWRkZW4iLGNvbnRlbnQ6JyJcXGEwIid9fSksW2AKKyAgICAgICAgJiR7RH0tc2hvdy1hcnJvdyAke0R9LXNlbGVjdGlvbi1pdGVtLAorICAgICAgICAmJHtEfS1zaG93LWFycm93ICR7RH0tc2VsZWN0aW9uLXNlYXJjaCwKKyAgICAgICAgJiR7RH0tc2hvdy1hcnJvdyAke0R9LXNlbGVjdGlvbi1wbGFjZWhvbGRlcgorICAgICAgYF06e3BhZGRpbmdJbmxpbmVFbmQ6Vy5zaG93QXJyb3dQYWRkaW5nSW5saW5lRW5kfSxbYCYke0R9LW9wZW4gJHtEfS1zZWxlY3Rpb24taXRlbWBdOntjb2xvcjpXLmNvbG9yVGV4dFBsYWNlaG9sZGVyfSxbYCY6bm90KCR7RH0tY3VzdG9taXplLWlucHV0KWBdOntbYCR7RH0tc2VsZWN0b3JgXTp7d2lkdGg6IjEwMCUiLGhlaWdodDoiMTAwJSIsYWxpZ25JdGVtczoiY2VudGVyIixwYWRkaW5nOmAwICR7KDAsbS5iZikoVil9YCxbYCR7RH0tc2VsZWN0aW9uLXNlYXJjaC1pbnB1dGBdOntoZWlnaHQ6UCxmb250U2l6ZTpXLmZvbnRTaXplfSwiJjphZnRlciI6e2xpbmVIZWlnaHQ6KDAsbS5iZikoUCl9fX0sW2AmJHtEfS1jdXN0b21pemUtaW5wdXRgXTp7W2Ake0R9LXNlbGVjdG9yYF06eyImOmFmdGVyIjp7ZGlzcGxheToibm9uZSJ9LFtgJHtEfS1zZWxlY3Rpb24tc2VhcmNoYF06e3Bvc2l0aW9uOiJzdGF0aWMiLHdpZHRoOiIxMDAlIn0sW2Ake0R9LXNlbGVjdGlvbi1wbGFjZWhvbGRlcmBdOntwb3NpdGlvbjoiYWJzb2x1dGUiLGluc2V0SW5saW5lU3RhcnQ6MCxpbnNldElubGluZUVuZDowLHBhZGRpbmc6YDAgJHsoMCxtLmJmKShWKX1gLCImOmFmdGVyIjp7ZGlzcGxheToibm9uZSJ9fX19fX19ZnVuY3Rpb24gZyhXKXtjb25zdHtjb21wb25lbnRDbHM6an09VyxEPVcuY2FsYyhXLmNvbnRyb2xQYWRkaW5nSG9yaXpvbnRhbFNNKS5zdWIoVy5saW5lV2lkdGgpLmVxdWFsKCk7cmV0dXJuW0MoVyksQygoMCxpLklYKShXLHtjb250cm9sSGVpZ2h0OlcuY29udHJvbEhlaWdodFNNLGJvcmRlclJhZGl1czpXLmJvcmRlclJhZGl1c1NNfSksInNtIikse1tgJHtqfS1zaW5nbGUke2p9LXNtYF06e1tgJjpub3QoJHtqfS1jdXN0b21pemUtaW5wdXQpYF06e1tgJHtqfS1zZWxlY3RvcmBdOntwYWRkaW5nOmAwICR7KDAsbS5iZikoRCl9YH0sW2AmJHtqfS1zaG93LWFycm93ICR7an0tc2VsZWN0aW9uLXNlYXJjaGBdOntpbnNldElubGluZUVuZDpXLmNhbGMoRCkuYWRkKFcuY2FsYyhXLmZvbnRTaXplKS5tdWwoMS41KSkuZXF1YWwoKX0sW2AKKyAgICAgICAgICAgICYke2p9LXNob3ctYXJyb3cgJHtqfS1zZWxlY3Rpb24taXRlbSwKKyAgICAgICAgICAgICYke2p9LXNob3ctYXJyb3cgJHtqfS1zZWxlY3Rpb24tcGxhY2Vob2xkZXIKKyAgICAgICAgICBgXTp7cGFkZGluZ0lubGluZUVuZDpXLmNhbGMoVy5mb250U2l6ZSkubXVsKDEuNSkuZXF1YWwoKX19fX0sQygoMCxpLklYKShXLHtjb250cm9sSGVpZ2h0Olcuc2luZ2xlSXRlbUhlaWdodExHLGZvbnRTaXplOlcuZm9udFNpemVMRyxib3JkZXJSYWRpdXM6Vy5ib3JkZXJSYWRpdXNMR30pLCJsZyIpXX1jb25zdCB3PVc9Pntjb25zdHtmb250U2l6ZTpqLGxpbmVIZWlnaHQ6RCxsaW5lV2lkdGg6Vixjb250cm9sSGVpZ2h0OlosY29udHJvbEhlaWdodFNNOlAsY29udHJvbEhlaWdodExHOksscGFkZGluZ1hYUzpzZSxjb250cm9sUGFkZGluZ0hvcml6b250YWw6bmUsekluZGV4UG9wdXBCYXNlOm9lLGNvbG9yVGV4dDpmZSxmb250V2VpZ2h0U3Ryb25nOkVlLGNvbnRyb2xJdGVtQmdBY3RpdmU6UmUsY29udHJvbEl0ZW1CZ0hvdmVyOkJlLGNvbG9yQmdDb250YWluZXI6WWUsY29sb3JGaWxsU2Vjb25kYXJ5Om90LGNvbG9yQmdDb250YWluZXJEaXNhYmxlZDpxZSxjb2xvclRleHREaXNhYmxlZDpfZSxjb2xvclByaW1hcnlIb3ZlcjpGZSxjb2xvclByaW1hcnk6U2UsY29udHJvbE91dGxpbmU6cX09VyxrPXNlKjIsTT1WKjIsQT1NYXRoLm1pbihaLWssWi1NKSxVPU1hdGgubWluKFAtayxQLU0pLE49TWF0aC5taW4oSy1rLEstTSk7cmV0dXJue0lOVEVSTkFMX0ZJWEVEX0lURU1fTUFSR0lOOk1hdGguZmxvb3Ioc2UvMiksekluZGV4UG9wdXA6b2UrNTAsb3B0aW9uU2VsZWN0ZWRDb2xvcjpmZSxvcHRpb25TZWxlY3RlZEZvbnRXZWlnaHQ6RWUsb3B0aW9uU2VsZWN0ZWRCZzpSZSxvcHRpb25BY3RpdmVCZzpCZSxvcHRpb25QYWRkaW5nOmAkeyhaLWoqRCkvMn1weCAke25lfXB4YCxvcHRpb25Gb250U2l6ZTpqLG9wdGlvbkxpbmVIZWlnaHQ6RCxvcHRpb25IZWlnaHQ6WixzZWxlY3RvckJnOlllLGNsZWFyQmc6WWUsc2luZ2xlSXRlbUhlaWdodExHOkssbXVsdGlwbGVJdGVtQmc6b3QsbXVsdGlwbGVJdGVtQm9yZGVyQ29sb3I6InRyYW5zcGFyZW50IixtdWx0aXBsZUl0ZW1IZWlnaHQ6QSxtdWx0aXBsZUl0ZW1IZWlnaHRTTTpVLG11bHRpcGxlSXRlbUhlaWdodExHOk4sbXVsdGlwbGVTZWxlY3RvckJnRGlzYWJsZWQ6cWUsbXVsdGlwbGVJdGVtQ29sb3JEaXNhYmxlZDpfZSxtdWx0aXBsZUl0ZW1Cb3JkZXJDb2xvckRpc2FibGVkOiJ0cmFuc3BhcmVudCIsc2hvd0Fycm93UGFkZGluZ0lubGluZUVuZDpNYXRoLmNlaWwoVy5mb250U2l6ZSoxLjI1KSxob3ZlckJvcmRlckNvbG9yOkZlLGFjdGl2ZUJvcmRlckNvbG9yOlNlLGFjdGl2ZU91dGxpbmVDb2xvcjpxLHNlbGVjdEFmZml4UGFkZGluZzpzZX19LEU9KFcsaik9Pntjb25zdHtjb21wb25lbnRDbHM6RCxhbnRDbHM6Vixjb250cm9sT3V0bGluZVdpZHRoOlp9PVc7cmV0dXJue1tgJjpub3QoJHtEfS1jdXN0b21pemUtaW5wdXQpICR7RH0tc2VsZWN0b3JgXTp7Ym9yZGVyOmAkeygwLG0uYmYpKFcubGluZVdpZHRoKX0gJHtXLmxpbmVUeXBlfSAke2ouYm9yZGVyQ29sb3J9YCxiYWNrZ3JvdW5kOlcuc2VsZWN0b3JCZ30sW2AmOm5vdCgke0R9LWRpc2FibGVkKTpub3QoJHtEfS1jdXN0b21pemUtaW5wdXQpOm5vdCgke1Z9LXBhZ2luYXRpb24tc2l6ZS1jaGFuZ2VyKWBdOntbYCY6aG92ZXIgJHtEfS1zZWxlY3RvcmBdOntib3JkZXJDb2xvcjpqLmhvdmVyQm9yZGVySG92ZXJ9LFtgJHtEfS1mb2N1c2VkJiAke0R9LXNlbGVjdG9yYF06e2JvcmRlckNvbG9yOmouYWN0aXZlQm9yZGVyQ29sb3IsYm94U2hhZG93OmAwIDAgMCAkeygwLG0uYmYpKFopfSAke2ouYWN0aXZlT3V0bGluZUNvbG9yfWAsb3V0bGluZTowfSxbYCR7RH0tcHJlZml4YF06e2NvbG9yOmouY29sb3J9fX19LHg9KFcsaik9Pih7W2AmJHtXLmNvbXBvbmVudENsc30tc3RhdHVzLSR7ai5zdGF0dXN9YF06T2JqZWN0LmFzc2lnbih7fSxFKFcsaikpfSksTz1XPT4oeyImLW91dGxpbmVkIjpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LEUoVyx7Ym9yZGVyQ29sb3I6Vy5jb2xvckJvcmRlcixob3ZlckJvcmRlckhvdmVyOlcuaG92ZXJCb3JkZXJDb2xvcixhY3RpdmVCb3JkZXJDb2xvcjpXLmFjdGl2ZUJvcmRlckNvbG9yLGFjdGl2ZU91dGxpbmVDb2xvcjpXLmFjdGl2ZU91dGxpbmVDb2xvcixjb2xvcjpXLmNvbG9yVGV4dH0pKSx4KFcse3N0YXR1czoiZXJyb3IiLGJvcmRlckNvbG9yOlcuY29sb3JFcnJvcixob3ZlckJvcmRlckhvdmVyOlcuY29sb3JFcnJvckhvdmVyLGFjdGl2ZUJvcmRlckNvbG9yOlcuY29sb3JFcnJvcixhY3RpdmVPdXRsaW5lQ29sb3I6Vy5jb2xvckVycm9yT3V0bGluZSxjb2xvcjpXLmNvbG9yRXJyb3J9KSkseChXLHtzdGF0dXM6Indhcm5pbmciLGJvcmRlckNvbG9yOlcuY29sb3JXYXJuaW5nLGhvdmVyQm9yZGVySG92ZXI6Vy5jb2xvcldhcm5pbmdIb3ZlcixhY3RpdmVCb3JkZXJDb2xvcjpXLmNvbG9yV2FybmluZyxhY3RpdmVPdXRsaW5lQ29sb3I6Vy5jb2xvcldhcm5pbmdPdXRsaW5lLGNvbG9yOlcuY29sb3JXYXJuaW5nfSkpLHtbYCYke1cuY29tcG9uZW50Q2xzfS1kaXNhYmxlZGBdOntbYCY6bm90KCR7Vy5jb21wb25lbnRDbHN9LWN1c3RvbWl6ZS1pbnB1dCkgJHtXLmNvbXBvbmVudENsc30tc2VsZWN0b3JgXTp7YmFja2dyb3VuZDpXLmNvbG9yQmdDb250YWluZXJEaXNhYmxlZCxjb2xvcjpXLmNvbG9yVGV4dERpc2FibGVkfX0sW2AmJHtXLmNvbXBvbmVudENsc30tbXVsdGlwbGUgJHtXLmNvbXBvbmVudENsc30tc2VsZWN0aW9uLWl0ZW1gXTp7YmFja2dyb3VuZDpXLm11bHRpcGxlSXRlbUJnLGJvcmRlcjpgJHsoMCxtLmJmKShXLmxpbmVXaWR0aCl9ICR7Vy5saW5lVHlwZX0gJHtXLm11bHRpcGxlSXRlbUJvcmRlckNvbG9yfWB9fSl9KSxUPShXLGopPT57Y29uc3R7Y29tcG9uZW50Q2xzOkQsYW50Q2xzOlZ9PVc7cmV0dXJue1tgJjpub3QoJHtEfS1jdXN0b21pemUtaW5wdXQpICR7RH0tc2VsZWN0b3JgXTp7YmFja2dyb3VuZDpqLmJnLGJvcmRlcjpgJHsoMCxtLmJmKShXLmxpbmVXaWR0aCl9ICR7Vy5saW5lVHlwZX0gdHJhbnNwYXJlbnRgLGNvbG9yOmouY29sb3J9LFtgJjpub3QoJHtEfS1kaXNhYmxlZCk6bm90KCR7RH0tY3VzdG9taXplLWlucHV0KTpub3QoJHtWfS1wYWdpbmF0aW9uLXNpemUtY2hhbmdlcilgXTp7W2AmOmhvdmVyICR7RH0tc2VsZWN0b3JgXTp7YmFja2dyb3VuZDpqLmhvdmVyQmd9LFtgJHtEfS1mb2N1c2VkJiAke0R9LXNlbGVjdG9yYF06e2JhY2tncm91bmQ6Vy5zZWxlY3RvckJnLGJvcmRlckNvbG9yOmouYWN0aXZlQm9yZGVyQ29sb3Isb3V0bGluZTowfX19fSxTPShXLGopPT4oe1tgJiR7Vy5jb21wb25lbnRDbHN9LXN0YXR1cy0ke2ouc3RhdHVzfWBdOk9iamVjdC5hc3NpZ24oe30sVChXLGopKX0pLEw9Vz0+KHsiJi1maWxsZWQiOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sVChXLHtiZzpXLmNvbG9yRmlsbFRlcnRpYXJ5LGhvdmVyQmc6Vy5jb2xvckZpbGxTZWNvbmRhcnksYWN0aXZlQm9yZGVyQ29sb3I6Vy5hY3RpdmVCb3JkZXJDb2xvcixjb2xvcjpXLmNvbG9yVGV4dH0pKSxTKFcse3N0YXR1czoiZXJyb3IiLGJnOlcuY29sb3JFcnJvckJnLGhvdmVyQmc6Vy5jb2xvckVycm9yQmdIb3ZlcixhY3RpdmVCb3JkZXJDb2xvcjpXLmNvbG9yRXJyb3IsY29sb3I6Vy5jb2xvckVycm9yfSkpLFMoVyx7c3RhdHVzOiJ3YXJuaW5nIixiZzpXLmNvbG9yV2FybmluZ0JnLGhvdmVyQmc6Vy5jb2xvcldhcm5pbmdCZ0hvdmVyLGFjdGl2ZUJvcmRlckNvbG9yOlcuY29sb3JXYXJuaW5nLGNvbG9yOlcuY29sb3JXYXJuaW5nfSkpLHtbYCYke1cuY29tcG9uZW50Q2xzfS1kaXNhYmxlZGBdOntbYCY6bm90KCR7Vy5jb21wb25lbnRDbHN9LWN1c3RvbWl6ZS1pbnB1dCkgJHtXLmNvbXBvbmVudENsc30tc2VsZWN0b3JgXTp7Ym9yZGVyQ29sb3I6Vy5jb2xvckJvcmRlcixiYWNrZ3JvdW5kOlcuY29sb3JCZ0NvbnRhaW5lckRpc2FibGVkLGNvbG9yOlcuY29sb3JUZXh0RGlzYWJsZWR9fSxbYCYke1cuY29tcG9uZW50Q2xzfS1tdWx0aXBsZSAke1cuY29tcG9uZW50Q2xzfS1zZWxlY3Rpb24taXRlbWBdOntiYWNrZ3JvdW5kOlcuY29sb3JCZ0NvbnRhaW5lcixib3JkZXI6YCR7KDAsbS5iZikoVy5saW5lV2lkdGgpfSAke1cubGluZVR5cGV9ICR7Vy5jb2xvclNwbGl0fWB9fSl9KSxJPVc9Pih7IiYtYm9yZGVybGVzcyI6e1tgJHtXLmNvbXBvbmVudENsc30tc2VsZWN0b3JgXTp7YmFja2dyb3VuZDoidHJhbnNwYXJlbnQiLGJvcmRlcjpgJHsoMCxtLmJmKShXLmxpbmVXaWR0aCl9ICR7Vy5saW5lVHlwZX0gdHJhbnNwYXJlbnRgfSxbYCYke1cuY29tcG9uZW50Q2xzfS1kaXNhYmxlZGBdOntbYCY6bm90KCR7Vy5jb21wb25lbnRDbHN9LWN1c3RvbWl6ZS1pbnB1dCkgJHtXLmNvbXBvbmVudENsc30tc2VsZWN0b3JgXTp7Y29sb3I6Vy5jb2xvclRleHREaXNhYmxlZH19LFtgJiR7Vy5jb21wb25lbnRDbHN9LW11bHRpcGxlICR7Vy5jb21wb25lbnRDbHN9LXNlbGVjdGlvbi1pdGVtYF06e2JhY2tncm91bmQ6Vy5tdWx0aXBsZUl0ZW1CZyxib3JkZXI6YCR7KDAsbS5iZikoVy5saW5lV2lkdGgpfSAke1cubGluZVR5cGV9ICR7Vy5tdWx0aXBsZUl0ZW1Cb3JkZXJDb2xvcn1gfSxbYCYke1cuY29tcG9uZW50Q2xzfS1zdGF0dXMtZXJyb3JgXTp7W2Ake1cuY29tcG9uZW50Q2xzfS1wcmVmaXgsICR7Vy5jb21wb25lbnRDbHN9LXNlbGVjdGlvbi1pdGVtYF06e2NvbG9yOlcuY29sb3JFcnJvcn19LFtgJiR7Vy5jb21wb25lbnRDbHN9LXN0YXR1cy13YXJuaW5nYF06e1tgJHtXLmNvbXBvbmVudENsc30tcHJlZml4LCAke1cuY29tcG9uZW50Q2xzfS1zZWxlY3Rpb24taXRlbWBdOntjb2xvcjpXLmNvbG9yV2FybmluZ319fX0pLFI9KFcsaik9Pntjb25zdHtjb21wb25lbnRDbHM6RCxhbnRDbHM6Vn09VztyZXR1cm57W2AmOm5vdCgke0R9LWN1c3RvbWl6ZS1pbnB1dCkgJHtEfS1zZWxlY3RvcmBdOntib3JkZXJXaWR0aDpgMCAwICR7KDAsbS5iZikoVy5saW5lV2lkdGgpfSAwYCxib3JkZXJTdHlsZTpgbm9uZSBub25lICR7Vy5saW5lVHlwZX0gbm9uZWAsYm9yZGVyQ29sb3I6ai5ib3JkZXJDb2xvcixiYWNrZ3JvdW5kOlcuc2VsZWN0b3JCZyxib3JkZXJSYWRpdXM6MH0sW2AmOm5vdCgke0R9LWRpc2FibGVkKTpub3QoJHtEfS1jdXN0b21pemUtaW5wdXQpOm5vdCgke1Z9LXBhZ2luYXRpb24tc2l6ZS1jaGFuZ2VyKWBdOntbYCY6aG92ZXIgJHtEfS1zZWxlY3RvcmBdOntib3JkZXJDb2xvcjpqLmhvdmVyQm9yZGVySG92ZXJ9LFtgJHtEfS1mb2N1c2VkJiAke0R9LXNlbGVjdG9yYF06e2JvcmRlckNvbG9yOmouYWN0aXZlQm9yZGVyQ29sb3Isb3V0bGluZTowfSxbYCR7RH0tcHJlZml4YF06e2NvbG9yOmouY29sb3J9fX19LHo9KFcsaik9Pih7W2AmJHtXLmNvbXBvbmVudENsc30tc3RhdHVzLSR7ai5zdGF0dXN9YF06T2JqZWN0LmFzc2lnbih7fSxSKFcsaikpfSksRz1XPT4oeyImLXVuZGVybGluZWQiOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sUihXLHtib3JkZXJDb2xvcjpXLmNvbG9yQm9yZGVyLGhvdmVyQm9yZGVySG92ZXI6Vy5ob3ZlckJvcmRlckNvbG9yLGFjdGl2ZUJvcmRlckNvbG9yOlcuYWN0aXZlQm9yZGVyQ29sb3IsYWN0aXZlT3V0bGluZUNvbG9yOlcuYWN0aXZlT3V0bGluZUNvbG9yLGNvbG9yOlcuY29sb3JUZXh0fSkpLHooVyx7c3RhdHVzOiJlcnJvciIsYm9yZGVyQ29sb3I6Vy5jb2xvckVycm9yLGhvdmVyQm9yZGVySG92ZXI6Vy5jb2xvckVycm9ySG92ZXIsYWN0aXZlQm9yZGVyQ29sb3I6Vy5jb2xvckVycm9yLGFjdGl2ZU91dGxpbmVDb2xvcjpXLmNvbG9yRXJyb3JPdXRsaW5lLGNvbG9yOlcuY29sb3JFcnJvcn0pKSx6KFcse3N0YXR1czoid2FybmluZyIsYm9yZGVyQ29sb3I6Vy5jb2xvcldhcm5pbmcsaG92ZXJCb3JkZXJIb3ZlcjpXLmNvbG9yV2FybmluZ0hvdmVyLGFjdGl2ZUJvcmRlckNvbG9yOlcuY29sb3JXYXJuaW5nLGFjdGl2ZU91dGxpbmVDb2xvcjpXLmNvbG9yV2FybmluZ091dGxpbmUsY29sb3I6Vy5jb2xvcldhcm5pbmd9KSkse1tgJiR7Vy5jb21wb25lbnRDbHN9LWRpc2FibGVkYF06e1tgJjpub3QoJHtXLmNvbXBvbmVudENsc30tY3VzdG9taXplLWlucHV0KSAke1cuY29tcG9uZW50Q2xzfS1zZWxlY3RvcmBdOntjb2xvcjpXLmNvbG9yVGV4dERpc2FibGVkfX0sW2AmJHtXLmNvbXBvbmVudENsc30tbXVsdGlwbGUgJHtXLmNvbXBvbmVudENsc30tc2VsZWN0aW9uLWl0ZW1gXTp7YmFja2dyb3VuZDpXLm11bHRpcGxlSXRlbUJnLGJvcmRlcjpgJHsoMCxtLmJmKShXLmxpbmVXaWR0aCl9ICR7Vy5saW5lVHlwZX0gJHtXLm11bHRpcGxlSXRlbUJvcmRlckNvbG9yfWB9fSl9KTt2YXIgZWU9Vz0+KHtbVy5jb21wb25lbnRDbHNdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sTyhXKSksTChXKSksSShXKSksRyhXKSl9KTtjb25zdCBKPVc9Pntjb25zdHtjb21wb25lbnRDbHM6an09VztyZXR1cm57cG9zaXRpb246InJlbGF0aXZlIix0cmFuc2l0aW9uOmBhbGwgJHtXLm1vdGlvbkR1cmF0aW9uTWlkfSAke1cubW90aW9uRWFzZUluT3V0fWAsaW5wdXQ6e2N1cnNvcjoicG9pbnRlciJ9LFtgJHtqfS1zaG93LXNlYXJjaCZgXTp7Y3Vyc29yOiJ0ZXh0IixpbnB1dDp7Y3Vyc29yOiJhdXRvIixjb2xvcjoiaW5oZXJpdCIsaGVpZ2h0OiIxMDAlIn19LFtgJHtqfS1kaXNhYmxlZCZgXTp7Y3Vyc29yOiJub3QtYWxsb3dlZCIsaW5wdXQ6e2N1cnNvcjoibm90LWFsbG93ZWQifX19fSxtZT1XPT57Y29uc3R7Y29tcG9uZW50Q2xzOmp9PVc7cmV0dXJue1tgJHtqfS1zZWxlY3Rpb24tc2VhcmNoLWlucHV0YF06e21hcmdpbjowLHBhZGRpbmc6MCxiYWNrZ3JvdW5kOiJ0cmFuc3BhcmVudCIsYm9yZGVyOiJub25lIixvdXRsaW5lOiJub25lIixhcHBlYXJhbmNlOiJub25lIixmb250RmFtaWx5OiJpbmhlcml0IiwiJjo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbiI6e2Rpc3BsYXk6Im5vbmUiLCItd2Via2l0LWFwcGVhcmFuY2UiOiJub25lIn19fX0sdGU9Vz0+e2NvbnN0e2FudENsczpqLGNvbXBvbmVudENsczpELGlucHV0UGFkZGluZ0hvcml6b250YWxCYXNlOlYsaWNvbkNsczpafT1XO3JldHVybntbRF06T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCgwLHIuV2YpKFcpKSx7cG9zaXRpb246InJlbGF0aXZlIixkaXNwbGF5OiJpbmxpbmUtZmxleCIsY3Vyc29yOiJwb2ludGVyIixbYCY6bm90KCR7RH0tY3VzdG9taXplLWlucHV0KSAke0R9LXNlbGVjdG9yYF06T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LEooVykpLG1lKFcpKSxbYCR7RH0tc2VsZWN0aW9uLWl0ZW1gXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe2ZsZXg6MSxmb250V2VpZ2h0OiJub3JtYWwiLHBvc2l0aW9uOiJyZWxhdGl2ZSIsdXNlclNlbGVjdDoibm9uZSJ9LHIudlMpLHtbYD4gJHtqfS10eXBvZ3JhcGh5YF06e2Rpc3BsYXk6ImlubGluZSJ9fSksW2Ake0R9LXNlbGVjdGlvbi1wbGFjZWhvbGRlcmBdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxyLnZTKSx7ZmxleDoxLGNvbG9yOlcuY29sb3JUZXh0UGxhY2Vob2xkZXIscG9pbnRlckV2ZW50czoibm9uZSJ9KSxbYCR7RH0tYXJyb3dgXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sKDAsci5SbykoKSkse3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOiI1MCUiLGluc2V0SW5saW5lU3RhcnQ6ImF1dG8iLGluc2V0SW5saW5lRW5kOlYsaGVpZ2h0OlcuZm9udFNpemVJY29uLG1hcmdpblRvcDpXLmNhbGMoVy5mb250U2l6ZUljb24pLm11bCgtMSkuZGl2KDIpLmVxdWFsKCksY29sb3I6Vy5jb2xvclRleHRRdWF0ZXJuYXJ5LGZvbnRTaXplOlcuZm9udFNpemVJY29uLGxpbmVIZWlnaHQ6MSx0ZXh0QWxpZ246ImNlbnRlciIscG9pbnRlckV2ZW50czoibm9uZSIsZGlzcGxheToiZmxleCIsYWxpZ25JdGVtczoiY2VudGVyIix0cmFuc2l0aW9uOmBvcGFjaXR5ICR7Vy5tb3Rpb25EdXJhdGlvblNsb3d9IGVhc2VgLFtaXTp7dmVydGljYWxBbGlnbjoidG9wIix0cmFuc2l0aW9uOmB0cmFuc2Zvcm0gJHtXLm1vdGlvbkR1cmF0aW9uU2xvd31gLCI+IHN2ZyI6e3ZlcnRpY2FsQWxpZ246InRvcCJ9LFtgJjpub3QoJHtEfS1zdWZmaXgpYF06e3BvaW50ZXJFdmVudHM6ImF1dG8ifX0sW2Ake0R9LWRpc2FibGVkICZgXTp7Y3Vyc29yOiJub3QtYWxsb3dlZCJ9LCI+ICo6bm90KDpsYXN0LWNoaWxkKSI6e21hcmdpbklubGluZUVuZDo4fX0pLFtgJHtEfS1zZWxlY3Rpb24td3JhcGBdOntkaXNwbGF5OiJmbGV4Iix3aWR0aDoiMTAwJSIscG9zaXRpb246InJlbGF0aXZlIixtaW5XaWR0aDowLCImOmFmdGVyIjp7Y29udGVudDonIlxcYTAiJyx3aWR0aDowLG92ZXJmbG93OiJoaWRkZW4ifX0sW2Ake0R9LXByZWZpeGBdOntmbGV4OiJub25lIixtYXJnaW5JbmxpbmVFbmQ6Vy5zZWxlY3RBZmZpeFBhZGRpbmd9LFtgJHtEfS1jbGVhcmBdOntwb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDoiNTAlIixpbnNldElubGluZVN0YXJ0OiJhdXRvIixpbnNldElubGluZUVuZDpWLHpJbmRleDoxLGRpc3BsYXk6ImlubGluZS1ibG9jayIsd2lkdGg6Vy5mb250U2l6ZUljb24saGVpZ2h0OlcuZm9udFNpemVJY29uLG1hcmdpblRvcDpXLmNhbGMoVy5mb250U2l6ZUljb24pLm11bCgtMSkuZGl2KDIpLmVxdWFsKCksY29sb3I6Vy5jb2xvclRleHRRdWF0ZXJuYXJ5LGZvbnRTaXplOlcuZm9udFNpemVJY29uLGZvbnRTdHlsZToibm9ybWFsIixsaW5lSGVpZ2h0OjEsdGV4dEFsaWduOiJjZW50ZXIiLHRleHRUcmFuc2Zvcm06Im5vbmUiLGN1cnNvcjoicG9pbnRlciIsb3BhY2l0eTowLHRyYW5zaXRpb246YGNvbG9yICR7Vy5tb3Rpb25EdXJhdGlvbk1pZH0gZWFzZSwgb3BhY2l0eSAke1cubW90aW9uRHVyYXRpb25TbG93fSBlYXNlYCx0ZXh0UmVuZGVyaW5nOiJhdXRvIiwiJjpiZWZvcmUiOntkaXNwbGF5OiJibG9jayJ9LCImOmhvdmVyIjp7Y29sb3I6Vy5jb2xvclRleHRUZXJ0aWFyeX19LFtgJjpob3ZlciAke0R9LWNsZWFyYF06e29wYWNpdHk6MSxiYWNrZ3JvdW5kOlcuY29sb3JCZ0Jhc2UsYm9yZGVyUmFkaXVzOiI1MCUifX0pLFtgJHtEfS1zdGF0dXNgXTp7IiYtZXJyb3IsICYtd2FybmluZywgJi1zdWNjZXNzLCAmLXZhbGlkYXRpbmciOntbYCYke0R9LWhhcy1mZWVkYmFja2BdOntbYCR7RH0tY2xlYXJgXTp7aW5zZXRJbmxpbmVFbmQ6Vy5jYWxjKFYpLmFkZChXLmZvbnRTaXplKS5hZGQoVy5wYWRkaW5nWFMpLmVxdWFsKCl9fX19fX0sbGU9Vz0+e2NvbnN0e2NvbXBvbmVudENsczpqfT1XO3JldHVyblt7W2pdOntbYCYke2p9LWluLWZvcm0taXRlbWBdOnt3aWR0aDoiMTAwJSJ9fX0sdGUoVyksZyhXKSwoMCxkLlpQKShXKSxoKFcpLHtbYCR7an0tcnRsYF06e2RpcmVjdGlvbjoicnRsIn19LCgwLG4uYykoVyx7Ym9yZGVyRWxDbHM6YCR7an0tc2VsZWN0b3JgLGZvY3VzRWxDbHM6YCR7an0tZm9jdXNlZGB9KV19O3ZhciBjZT0oMCx0LkkkKSgiU2VsZWN0IiwoVyxqKT0+e2xldHtyb290UHJlZml4Q2xzOkR9PWo7Y29uc3QgVj0oMCxpLklYKShXLHtyb290UHJlZml4Q2xzOkQsaW5wdXRQYWRkaW5nSG9yaXpvbnRhbEJhc2U6Vy5jYWxjKFcucGFkZGluZ1NNKS5zdWIoMSkuZXF1YWwoKSxtdWx0aXBsZVNlbGVjdEl0ZW1IZWlnaHQ6Vy5tdWx0aXBsZUl0ZW1IZWlnaHQsc2VsZWN0SGVpZ2h0OlcuY29udHJvbEhlaWdodH0pO3JldHVybltsZShWKSxlZShWKV19LHcse3VuaXRsZXNzOntvcHRpb25MaW5lSGVpZ2h0OiEwLG9wdGlvblNlbGVjdGVkRm9udFdlaWdodDohMH19KX0sMTY5Mjg6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7X3o6ZnVuY3Rpb24oKXtyZXR1cm4gYX0sZ3A6ZnVuY3Rpb24oKXtyZXR1cm4gaX19KTt2YXIgcj1lKDExNTY4KSxuPWUoMTQ3NDcpLHQ9ZSg4MzI2Mik7Y29uc3QgaT1kPT57Y29uc3R7bXVsdGlwbGVTZWxlY3RJdGVtSGVpZ2h0Om0scGFkZGluZ1hYUzpDLGxpbmVXaWR0aDpnLElOVEVSTkFMX0ZJWEVEX0lURU1fTUFSR0lOOnd9PWQsRT1kLm1heChkLmNhbGMoQykuc3ViKGcpLmVxdWFsKCksMCkseD1kLm1heChkLmNhbGMoRSkuc3ViKHcpLmVxdWFsKCksMCk7cmV0dXJue2Jhc2VQYWRkaW5nOkUsY29udGFpbmVyUGFkZGluZzp4LGl0ZW1IZWlnaHQ6KDAsci5iZikobSksaXRlbUxpbmVIZWlnaHQ6KDAsci5iZikoZC5jYWxjKG0pLnN1YihkLmNhbGMoZC5saW5lV2lkdGgpLm11bCgyKSkuZXF1YWwoKSl9fSxzPWQ9Pntjb25zdHttdWx0aXBsZVNlbGVjdEl0ZW1IZWlnaHQ6bSxzZWxlY3RIZWlnaHQ6QyxsaW5lV2lkdGg6Z309ZDtyZXR1cm4gZC5jYWxjKEMpLnN1YihtKS5kaXYoMikuc3ViKGcpLmVxdWFsKCl9LGE9ZD0+e2NvbnN0e2NvbXBvbmVudENsczptLGljb25DbHM6Qyxib3JkZXJSYWRpdXNTTTpnLG1vdGlvbkR1cmF0aW9uU2xvdzp3LHBhZGRpbmdYUzpFLG11bHRpcGxlSXRlbUNvbG9yRGlzYWJsZWQ6eCxtdWx0aXBsZUl0ZW1Cb3JkZXJDb2xvckRpc2FibGVkOk8sY29sb3JJY29uOlQsY29sb3JJY29uSG92ZXI6UyxJTlRFUk5BTF9GSVhFRF9JVEVNX01BUkdJTjpMfT1kO3JldHVybntbYCR7bX0tc2VsZWN0aW9uLW92ZXJmbG93YF06e3Bvc2l0aW9uOiJyZWxhdGl2ZSIsZGlzcGxheToiZmxleCIsZmxleDoiYXV0byIsZmxleFdyYXA6IndyYXAiLG1heFdpZHRoOiIxMDAlIiwiJi1pdGVtIjp7ZmxleDoibm9uZSIsYWxpZ25TZWxmOiJjZW50ZXIiLG1heFdpZHRoOiIxMDAlIixkaXNwbGF5OiJpbmxpbmUtZmxleCJ9LFtgJHttfS1zZWxlY3Rpb24taXRlbWBdOntkaXNwbGF5OiJmbGV4IixhbGlnblNlbGY6ImNlbnRlciIsZmxleDoibm9uZSIsYm94U2l6aW5nOiJib3JkZXItYm94IixtYXhXaWR0aDoiMTAwJSIsbWFyZ2luQmxvY2s6TCxib3JkZXJSYWRpdXM6ZyxjdXJzb3I6ImRlZmF1bHQiLHRyYW5zaXRpb246YGZvbnQtc2l6ZSAke3d9LCBsaW5lLWhlaWdodCAke3d9LCBoZWlnaHQgJHt3fWAsbWFyZ2luSW5saW5lRW5kOmQuY2FsYyhMKS5tdWwoMikuZXF1YWwoKSxwYWRkaW5nSW5saW5lU3RhcnQ6RSxwYWRkaW5nSW5saW5lRW5kOmQuY2FsYyhFKS5kaXYoMikuZXF1YWwoKSxbYCR7bX0tZGlzYWJsZWQmYF06e2NvbG9yOngsYm9yZGVyQ29sb3I6TyxjdXJzb3I6Im5vdC1hbGxvd2VkIn0sIiYtY29udGVudCI6e2Rpc3BsYXk6ImlubGluZS1ibG9jayIsbWFyZ2luSW5saW5lRW5kOmQuY2FsYyhFKS5kaXYoMikuZXF1YWwoKSxvdmVyZmxvdzoiaGlkZGVuIix3aGl0ZVNwYWNlOiJwcmUiLHRleHRPdmVyZmxvdzoiZWxsaXBzaXMifSwiJi1yZW1vdmUiOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwoMCxuLlJvKSgpKSx7ZGlzcGxheToiaW5saW5lLWZsZXgiLGFsaWduSXRlbXM6ImNlbnRlciIsY29sb3I6VCxmb250V2VpZ2h0OiJib2xkIixmb250U2l6ZToxMCxsaW5lSGVpZ2h0OiJpbmhlcml0IixjdXJzb3I6InBvaW50ZXIiLFtgPiAke0N9YF06e3ZlcnRpY2FsQWxpZ246Ii0wLjJlbSJ9LCImOmhvdmVyIjp7Y29sb3I6U319KX19fX0sdT0oZCxtKT0+e2NvbnN0e2NvbXBvbmVudENsczpDLElOVEVSTkFMX0ZJWEVEX0lURU1fTUFSR0lOOmd9PWQsdz1gJHtDfS1zZWxlY3Rpb24tb3ZlcmZsb3dgLEU9ZC5tdWx0aXBsZVNlbGVjdEl0ZW1IZWlnaHQseD1zKGQpLE89bT9gJHtDfS0ke219YDoiIixUPWkoZCk7cmV0dXJue1tgJHtDfS1tdWx0aXBsZSR7T31gXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sYShkKSkse1tgJHtDfS1zZWxlY3RvcmBdOntkaXNwbGF5OiJmbGV4IixhbGlnbkl0ZW1zOiJjZW50ZXIiLHdpZHRoOiIxMDAlIixoZWlnaHQ6IjEwMCUiLHBhZGRpbmdJbmxpbmU6VC5iYXNlUGFkZGluZyxwYWRkaW5nQmxvY2s6VC5jb250YWluZXJQYWRkaW5nLGJvcmRlclJhZGl1czpkLmJvcmRlclJhZGl1cyxbYCR7Q30tZGlzYWJsZWQmYF06e2JhY2tncm91bmQ6ZC5tdWx0aXBsZVNlbGVjdG9yQmdEaXNhYmxlZCxjdXJzb3I6Im5vdC1hbGxvd2VkIn0sIiY6YWZ0ZXIiOntkaXNwbGF5OiJpbmxpbmUtYmxvY2siLHdpZHRoOjAsbWFyZ2luOmAkeygwLHIuYmYpKGcpfSAwYCxsaW5lSGVpZ2h0OigwLHIuYmYpKEUpLHZpc2liaWxpdHk6ImhpZGRlbiIsY29udGVudDonIlxcYTAiJ319LFtgJHtDfS1zZWxlY3Rpb24taXRlbWBdOntoZWlnaHQ6VC5pdGVtSGVpZ2h0LGxpbmVIZWlnaHQ6KDAsci5iZikoVC5pdGVtTGluZUhlaWdodCl9LFtgJHtDfS1zZWxlY3Rpb24td3JhcGBdOnthbGlnblNlbGY6ImZsZXgtc3RhcnQiLCImOmFmdGVyIjp7bGluZUhlaWdodDooMCxyLmJmKShFKSxtYXJnaW5CbG9jazpnfX0sW2Ake0N9LXByZWZpeGBdOnttYXJnaW5JbmxpbmVTdGFydDpkLmNhbGMoZC5pbnB1dFBhZGRpbmdIb3Jpem9udGFsQmFzZSkuc3ViKFQuYmFzZVBhZGRpbmcpLmVxdWFsKCl9LFtgJHt3fS1pdGVtICsgJHt3fS1pdGVtLAorICAgICAgICAke0N9LXByZWZpeCArICR7Q30tc2VsZWN0aW9uLXdyYXAKKyAgICAgIGBdOntbYCR7Q30tc2VsZWN0aW9uLXNlYXJjaGBdOnttYXJnaW5JbmxpbmVTdGFydDowfSxbYCR7Q30tc2VsZWN0aW9uLXBsYWNlaG9sZGVyYF06e2luc2V0SW5saW5lU3RhcnQ6MH19LFtgJHt3fS1pdGVtLXN1ZmZpeGBdOnttaW5IZWlnaHQ6VC5pdGVtSGVpZ2h0LG1hcmdpbkJsb2NrOmd9LFtgJHtDfS1zZWxlY3Rpb24tc2VhcmNoYF06e2Rpc3BsYXk6ImlubGluZS1mbGV4Iixwb3NpdGlvbjoicmVsYXRpdmUiLG1heFdpZHRoOiIxMDAlIixtYXJnaW5JbmxpbmVTdGFydDpkLmNhbGMoZC5pbnB1dFBhZGRpbmdIb3Jpem9udGFsQmFzZSkuc3ViKHgpLmVxdWFsKCksIlxuICAgICAgICAgICYtaW5wdXQsXG4gICAgICAgICAgJi1taXJyb3JcbiAgICAgICAgIjp7aGVpZ2h0OkUsZm9udEZhbWlseTpkLmZvbnRGYW1pbHksbGluZUhlaWdodDooMCxyLmJmKShFKSx0cmFuc2l0aW9uOmBhbGwgJHtkLm1vdGlvbkR1cmF0aW9uU2xvd31gfSwiJi1pbnB1dCI6e3dpZHRoOiIxMDAlIixtaW5XaWR0aDo0LjF9LCImLW1pcnJvciI6e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOjAsaW5zZXRJbmxpbmVTdGFydDowLGluc2V0SW5saW5lRW5kOiJhdXRvIix6SW5kZXg6OTk5LHdoaXRlU3BhY2U6InByZSIsdmlzaWJpbGl0eToiaGlkZGVuIn19LFtgJHtDfS1zZWxlY3Rpb24tcGxhY2Vob2xkZXJgXTp7cG9zaXRpb246ImFic29sdXRlIix0b3A6IjUwJSIsaW5zZXRJbmxpbmVTdGFydDpkLmNhbGMoZC5pbnB1dFBhZGRpbmdIb3Jpem9udGFsQmFzZSkuc3ViKFQuYmFzZVBhZGRpbmcpLmVxdWFsKCksaW5zZXRJbmxpbmVFbmQ6ZC5pbnB1dFBhZGRpbmdIb3Jpem9udGFsQmFzZSx0cmFuc2Zvcm06InRyYW5zbGF0ZVkoLTUwJSkiLHRyYW5zaXRpb246YGFsbCAke2QubW90aW9uRHVyYXRpb25TbG93fWB9fSl9fTtmdW5jdGlvbiBjKGQsbSl7Y29uc3R7Y29tcG9uZW50Q2xzOkN9PWQsZz1tP2Ake0N9LSR7bX1gOiIiLHc9e1tgJHtDfS1tdWx0aXBsZSR7Z31gXTp7Zm9udFNpemU6ZC5mb250U2l6ZSxbYCR7Q30tc2VsZWN0b3JgXTp7W2Ake0N9LXNob3ctc2VhcmNoJmBdOntjdXJzb3I6InRleHQifX0sW2AKKyAgICAgICAgJiR7Q30tc2hvdy1hcnJvdyAke0N9LXNlbGVjdG9yLAorICAgICAgICAmJHtDfS1hbGxvdy1jbGVhciAke0N9LXNlbGVjdG9yCisgICAgICBgXTp7cGFkZGluZ0lubGluZUVuZDpkLmNhbGMoZC5mb250U2l6ZUljb24pLmFkZChkLmNvbnRyb2xQYWRkaW5nSG9yaXpvbnRhbCkuZXF1YWwoKX19fTtyZXR1cm5bdShkLG0pLHddfWNvbnN0IGg9ZD0+e2NvbnN0e2NvbXBvbmVudENsczptfT1kLEM9KDAsdC5JWCkoZCx7c2VsZWN0SGVpZ2h0OmQuY29udHJvbEhlaWdodFNNLG11bHRpcGxlU2VsZWN0SXRlbUhlaWdodDpkLm11bHRpcGxlSXRlbUhlaWdodFNNLGJvcmRlclJhZGl1czpkLmJvcmRlclJhZGl1c1NNLGJvcmRlclJhZGl1c1NNOmQuYm9yZGVyUmFkaXVzWFN9KSxnPSgwLHQuSVgpKGQse2ZvbnRTaXplOmQuZm9udFNpemVMRyxzZWxlY3RIZWlnaHQ6ZC5jb250cm9sSGVpZ2h0TEcsbXVsdGlwbGVTZWxlY3RJdGVtSGVpZ2h0OmQubXVsdGlwbGVJdGVtSGVpZ2h0TEcsYm9yZGVyUmFkaXVzOmQuYm9yZGVyUmFkaXVzTEcsYm9yZGVyUmFkaXVzU006ZC5ib3JkZXJSYWRpdXN9KTtyZXR1cm5bYyhkKSxjKEMsInNtIikse1tgJHttfS1tdWx0aXBsZSR7bX0tc21gXTp7W2Ake219LXNlbGVjdGlvbi1wbGFjZWhvbGRlcmBdOntpbnNldElubGluZTpkLmNhbGMoZC5jb250cm9sUGFkZGluZ0hvcml6b250YWxTTSkuc3ViKGQubGluZVdpZHRoKS5lcXVhbCgpfSxbYCR7bX0tc2VsZWN0aW9uLXNlYXJjaGBdOnttYXJnaW5JbmxpbmVTdGFydDoyfX19LGMoZywibGciKV19O3AuWlA9aH0sNDMyNzc6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiBjfX0pO3ZhciByPWUoNjcyOTQpLG49ZSg2MzYwNiksdD1lKDQzNDApLGk9ZSg5NzkzNykscz1lKDgwODgyKSxhPWUoNTA4ODgpLHU9ZSg0ODI5Nik7ZnVuY3Rpb24gYyhoKXtsZXR7c3VmZml4SWNvbjpkLGNsZWFySWNvbjptLG1lbnVJdGVtU2VsZWN0ZWRJY29uOkMscmVtb3ZlSWNvbjpnLGxvYWRpbmc6dyxtdWx0aXBsZTpFLGhhc0ZlZWRiYWNrOngscHJlZml4Q2xzOk8sc2hvd1N1ZmZpeEljb246VCxmZWVkYmFja0ljb246UyxzaG93QXJyb3c6TCxjb21wb25lbnROYW1lOkl9PWg7Y29uc3QgUj1tIT1udWxsP206ci5jcmVhdGVFbGVtZW50KHQuWixudWxsKSx6PUo9PmQ9PT1udWxsJiYheCYmIUw/bnVsbDpyLmNyZWF0ZUVsZW1lbnQoci5GcmFnbWVudCxudWxsLFQhPT0hMSYmSix4JiZTKTtsZXQgRz1udWxsO2lmKGQhPT12b2lkIDApRz16KGQpO2Vsc2UgaWYodylHPXooci5jcmVhdGVFbGVtZW50KGEuWix7c3BpbjohMH0pKTtlbHNle2NvbnN0IEo9YCR7T30tc3VmZml4YDtHPW1lPT57bGV0e29wZW46dGUsc2hvd1NlYXJjaDpsZX09bWU7cmV0dXJuIHoodGUmJmxlP3IuY3JlYXRlRWxlbWVudCh1Llose2NsYXNzTmFtZTpKfSk6ci5jcmVhdGVFbGVtZW50KHMuWix7Y2xhc3NOYW1lOkp9KSl9fWxldCBZPW51bGw7QyE9PXZvaWQgMD9ZPUM6RT9ZPXIuY3JlYXRlRWxlbWVudChuLlosbnVsbCk6WT1udWxsO2xldCBlZT1udWxsO3JldHVybiBnIT09dm9pZCAwP2VlPWc6ZWU9ci5jcmVhdGVFbGVtZW50KGkuWixudWxsKSx7Y2xlYXJJY29uOlIsc3VmZml4SWNvbjpHLGl0ZW1JY29uOlkscmVtb3ZlSWNvbjplZX19fSw3ODY0MjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIHJ9fSk7ZnVuY3Rpb24gcihuLHQpe3JldHVybiB0IT09dm9pZCAwP3Q6biE9PW51bGx9fSw0ODA1NDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIHFlfX0pO3ZhciByPWUoNjcyOTQpLG49ZSg5Mzk2NyksdD1lLm4obiksaT1lKDUzMTI0KSxzPWUoOTg0MjMpLHU9X2U9Pntjb25zdHtwcmVmaXhDbHM6RmUsY2xhc3NOYW1lOlNlLHN0eWxlOnEsc2l6ZTprLHNoYXBlOk19PV9lLEE9dCgpKHtbYCR7RmV9LWxnYF06az09PSJsYXJnZSIsW2Ake0ZlfS1zbWBdOms9PT0ic21hbGwifSksVT10KCkoe1tgJHtGZX0tY2lyY2xlYF06TT09PSJjaXJjbGUiLFtgJHtGZX0tc3F1YXJlYF06TT09PSJzcXVhcmUiLFtgJHtGZX0tcm91bmRgXTpNPT09InJvdW5kIn0pLE49ci51c2VNZW1vKCgpPT50eXBlb2Ygaz09Im51bWJlciI/e3dpZHRoOmssaGVpZ2h0OmssbGluZUhlaWdodDpgJHtrfXB4YH06e30sW2tdKTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOnQoKShGZSxBLFUsU2UpLHN0eWxlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxOKSxxKX0pfSxjPWUoMTE1NjgpLGg9ZSg4MzU1OSksZD1lKDgzMjYyKTtjb25zdCBtPW5ldyBjLkU0KCJhbnQtc2tlbGV0b24tbG9hZGluZyIseyIwJSI6e2JhY2tncm91bmRQb3NpdGlvbjoiMTAwJSA1MCUifSwiMTAwJSI6e2JhY2tncm91bmRQb3NpdGlvbjoiMCA1MCUifX0pLEM9X2U9Pih7aGVpZ2h0Ol9lLGxpbmVIZWlnaHQ6KDAsYy5iZikoX2UpfSksZz1fZT0+T2JqZWN0LmFzc2lnbih7d2lkdGg6X2V9LEMoX2UpKSx3PV9lPT4oe2JhY2tncm91bmQ6X2Uuc2tlbGV0b25Mb2FkaW5nQmFja2dyb3VuZCxiYWNrZ3JvdW5kU2l6ZToiNDAwJSAxMDAlIixhbmltYXRpb25OYW1lOm0sYW5pbWF0aW9uRHVyYXRpb246X2Uuc2tlbGV0b25Mb2FkaW5nTW90aW9uRHVyYXRpb24sYW5pbWF0aW9uVGltaW5nRnVuY3Rpb246ImVhc2UiLGFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50OiJpbmZpbml0ZSJ9KSxFPShfZSxGZSk9Pk9iamVjdC5hc3NpZ24oe3dpZHRoOkZlKF9lKS5tdWwoNSkuZXF1YWwoKSxtaW5XaWR0aDpGZShfZSkubXVsKDUpLmVxdWFsKCl9LEMoX2UpKSx4PV9lPT57Y29uc3R7c2tlbGV0b25BdmF0YXJDbHM6RmUsZ3JhZGllbnRGcm9tQ29sb3I6U2UsY29udHJvbEhlaWdodDpxLGNvbnRyb2xIZWlnaHRMRzprLGNvbnRyb2xIZWlnaHRTTTpNfT1fZTtyZXR1cm57W0ZlXTpPYmplY3QuYXNzaWduKHtkaXNwbGF5OiJpbmxpbmUtYmxvY2siLHZlcnRpY2FsQWxpZ246InRvcCIsYmFja2dyb3VuZDpTZX0sZyhxKSksW2Ake0ZlfSR7RmV9LWNpcmNsZWBdOntib3JkZXJSYWRpdXM6IjUwJSJ9LFtgJHtGZX0ke0ZlfS1sZ2BdOk9iamVjdC5hc3NpZ24oe30sZyhrKSksW2Ake0ZlfSR7RmV9LXNtYF06T2JqZWN0LmFzc2lnbih7fSxnKE0pKX19LE89X2U9Pntjb25zdHtjb250cm9sSGVpZ2h0OkZlLGJvcmRlclJhZGl1c1NNOlNlLHNrZWxldG9uSW5wdXRDbHM6cSxjb250cm9sSGVpZ2h0TEc6ayxjb250cm9sSGVpZ2h0U006TSxncmFkaWVudEZyb21Db2xvcjpBLGNhbGM6VX09X2U7cmV0dXJue1txXTpPYmplY3QuYXNzaWduKHtkaXNwbGF5OiJpbmxpbmUtYmxvY2siLHZlcnRpY2FsQWxpZ246InRvcCIsYmFja2dyb3VuZDpBLGJvcmRlclJhZGl1czpTZX0sRShGZSxVKSksW2Ake3F9LWxnYF06T2JqZWN0LmFzc2lnbih7fSxFKGssVSkpLFtgJHtxfS1zbWBdOk9iamVjdC5hc3NpZ24oe30sRShNLFUpKX19LFQ9X2U9Pk9iamVjdC5hc3NpZ24oe3dpZHRoOl9lfSxDKF9lKSksUz1fZT0+e2NvbnN0e3NrZWxldG9uSW1hZ2VDbHM6RmUsaW1hZ2VTaXplQmFzZTpTZSxncmFkaWVudEZyb21Db2xvcjpxLGJvcmRlclJhZGl1c1NNOmssY2FsYzpNfT1fZTtyZXR1cm57W0ZlXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe2Rpc3BsYXk6ImlubGluZS1mbGV4IixhbGlnbkl0ZW1zOiJjZW50ZXIiLGp1c3RpZnlDb250ZW50OiJjZW50ZXIiLHZlcnRpY2FsQWxpZ246Im1pZGRsZSIsYmFja2dyb3VuZDpxLGJvcmRlclJhZGl1czprfSxUKE0oU2UpLm11bCgyKS5lcXVhbCgpKSkse1tgJHtGZX0tcGF0aGBdOntmaWxsOiIjYmZiZmJmIn0sW2Ake0ZlfS1zdmdgXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sVChTZSkpLHttYXhXaWR0aDpNKFNlKS5tdWwoNCkuZXF1YWwoKSxtYXhIZWlnaHQ6TShTZSkubXVsKDQpLmVxdWFsKCl9KSxbYCR7RmV9LXN2ZyR7RmV9LXN2Zy1jaXJjbGVgXTp7Ym9yZGVyUmFkaXVzOiI1MCUifX0pLFtgJHtGZX0ke0ZlfS1jaXJjbGVgXTp7Ym9yZGVyUmFkaXVzOiI1MCUifX19LEw9KF9lLEZlLFNlKT0+e2NvbnN0e3NrZWxldG9uQnV0dG9uQ2xzOnF9PV9lO3JldHVybntbYCR7U2V9JHtxfS1jaXJjbGVgXTp7d2lkdGg6RmUsbWluV2lkdGg6RmUsYm9yZGVyUmFkaXVzOiI1MCUifSxbYCR7U2V9JHtxfS1yb3VuZGBdOntib3JkZXJSYWRpdXM6RmV9fX0sST0oX2UsRmUpPT5PYmplY3QuYXNzaWduKHt3aWR0aDpGZShfZSkubXVsKDIpLmVxdWFsKCksbWluV2lkdGg6RmUoX2UpLm11bCgyKS5lcXVhbCgpfSxDKF9lKSksUj1fZT0+e2NvbnN0e2JvcmRlclJhZGl1c1NNOkZlLHNrZWxldG9uQnV0dG9uQ2xzOlNlLGNvbnRyb2xIZWlnaHQ6cSxjb250cm9sSGVpZ2h0TEc6ayxjb250cm9sSGVpZ2h0U006TSxncmFkaWVudEZyb21Db2xvcjpBLGNhbGM6VX09X2U7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7W1NlXTpPYmplY3QuYXNzaWduKHtkaXNwbGF5OiJpbmxpbmUtYmxvY2siLHZlcnRpY2FsQWxpZ246InRvcCIsYmFja2dyb3VuZDpBLGJvcmRlclJhZGl1czpGZSx3aWR0aDpVKHEpLm11bCgyKS5lcXVhbCgpLG1pbldpZHRoOlUocSkubXVsKDIpLmVxdWFsKCl9LEkocSxVKSl9LEwoX2UscSxTZSkpLHtbYCR7U2V9LWxnYF06T2JqZWN0LmFzc2lnbih7fSxJKGssVSkpfSksTChfZSxrLGAke1NlfS1sZ2ApKSx7W2Ake1NlfS1zbWBdOk9iamVjdC5hc3NpZ24oe30sSShNLFUpKX0pLEwoX2UsTSxgJHtTZX0tc21gKSl9LHo9X2U9Pntjb25zdHtjb21wb25lbnRDbHM6RmUsc2tlbGV0b25BdmF0YXJDbHM6U2Usc2tlbGV0b25UaXRsZUNsczpxLHNrZWxldG9uUGFyYWdyYXBoQ2xzOmssc2tlbGV0b25CdXR0b25DbHM6TSxza2VsZXRvbklucHV0Q2xzOkEsc2tlbGV0b25JbWFnZUNsczpVLGNvbnRyb2xIZWlnaHQ6Tixjb250cm9sSGVpZ2h0TEc6USxjb250cm9sSGVpZ2h0U006dWUsZ3JhZGllbnRGcm9tQ29sb3I6JCxwYWRkaW5nOl8sbWFyZ2luU006cGUsYm9yZGVyUmFkaXVzOnJlLHRpdGxlSGVpZ2h0OmFlLGJsb2NrUmFkaXVzOndlLHBhcmFncmFwaExpSGVpZ2h0OkxlLGNvbnRyb2xIZWlnaHRYUzpNZSxwYXJhZ3JhcGhNYXJnaW5Ub3A6YmV9PV9lO3JldHVybntbRmVdOntkaXNwbGF5OiJ0YWJsZSIsd2lkdGg6IjEwMCUiLFtgJHtGZX0taGVhZGVyYF06e2Rpc3BsYXk6InRhYmxlLWNlbGwiLHBhZGRpbmdJbmxpbmVFbmQ6Xyx2ZXJ0aWNhbEFsaWduOiJ0b3AiLFtTZV06T2JqZWN0LmFzc2lnbih7ZGlzcGxheToiaW5saW5lLWJsb2NrIix2ZXJ0aWNhbEFsaWduOiJ0b3AiLGJhY2tncm91bmQ6JH0sZyhOKSksW2Ake1NlfS1jaXJjbGVgXTp7Ym9yZGVyUmFkaXVzOiI1MCUifSxbYCR7U2V9LWxnYF06T2JqZWN0LmFzc2lnbih7fSxnKFEpKSxbYCR7U2V9LXNtYF06T2JqZWN0LmFzc2lnbih7fSxnKHVlKSl9LFtgJHtGZX0tY29udGVudGBdOntkaXNwbGF5OiJ0YWJsZS1jZWxsIix3aWR0aDoiMTAwJSIsdmVydGljYWxBbGlnbjoidG9wIixbcV06e3dpZHRoOiIxMDAlIixoZWlnaHQ6YWUsYmFja2dyb3VuZDokLGJvcmRlclJhZGl1czp3ZSxbYCsgJHtrfWBdOnttYXJnaW5CbG9ja1N0YXJ0OnVlfX0sW2tdOntwYWRkaW5nOjAsIj4gbGkiOnt3aWR0aDoiMTAwJSIsaGVpZ2h0OkxlLGxpc3RTdHlsZToibm9uZSIsYmFja2dyb3VuZDokLGJvcmRlclJhZGl1czp3ZSwiKyBsaSI6e21hcmdpbkJsb2NrU3RhcnQ6TWV9fX0sW2Ake2t9PiBsaTpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bnRoLWNoaWxkKDIpKWBdOnt3aWR0aDoiNjElIn19LFtgJi1yb3VuZCAke0ZlfS1jb250ZW50YF06e1tgJHtxfSwgJHtrfSA+IGxpYF06e2JvcmRlclJhZGl1czpyZX19fSxbYCR7RmV9LXdpdGgtYXZhdGFyICR7RmV9LWNvbnRlbnRgXTp7W3FdOnttYXJnaW5CbG9ja1N0YXJ0OnBlLFtgKyAke2t9YF06e21hcmdpbkJsb2NrU3RhcnQ6YmV9fX0sW2Ake0ZlfSR7RmV9LWVsZW1lbnRgXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHtkaXNwbGF5OiJpbmxpbmUtYmxvY2siLHdpZHRoOiJhdXRvIn0sUihfZSkpLHgoX2UpKSxPKF9lKSksUyhfZSkpLFtgJHtGZX0ke0ZlfS1ibG9ja2BdOnt3aWR0aDoiMTAwJSIsW01dOnt3aWR0aDoiMTAwJSJ9LFtBXTp7d2lkdGg6IjEwMCUifX0sW2Ake0ZlfSR7RmV9LWFjdGl2ZWBdOntbYAorICAgICAgICAke3F9LAorICAgICAgICAke2t9ID4gbGksCisgICAgICAgICR7U2V9LAorICAgICAgICAke019LAorICAgICAgICAke0F9LAorICAgICAgICAke1V9CisgICAgICBgXTpPYmplY3QuYXNzaWduKHt9LHcoX2UpKX19fSxHPV9lPT57Y29uc3R7Y29sb3JGaWxsQ29udGVudDpGZSxjb2xvckZpbGw6U2V9PV9lLHE9RmUsaz1TZTtyZXR1cm57Y29sb3I6cSxjb2xvckdyYWRpZW50RW5kOmssZ3JhZGllbnRGcm9tQ29sb3I6cSxncmFkaWVudFRvQ29sb3I6ayx0aXRsZUhlaWdodDpfZS5jb250cm9sSGVpZ2h0LzIsYmxvY2tSYWRpdXM6X2UuYm9yZGVyUmFkaXVzU00scGFyYWdyYXBoTWFyZ2luVG9wOl9lLm1hcmdpbkxHK19lLm1hcmdpblhYUyxwYXJhZ3JhcGhMaUhlaWdodDpfZS5jb250cm9sSGVpZ2h0LzJ9fTt2YXIgWT0oMCxoLkkkKSgiU2tlbGV0b24iLF9lPT57Y29uc3R7Y29tcG9uZW50Q2xzOkZlLGNhbGM6U2V9PV9lLHE9KDAsZC5JWCkoX2Use3NrZWxldG9uQXZhdGFyQ2xzOmAke0ZlfS1hdmF0YXJgLHNrZWxldG9uVGl0bGVDbHM6YCR7RmV9LXRpdGxlYCxza2VsZXRvblBhcmFncmFwaENsczpgJHtGZX0tcGFyYWdyYXBoYCxza2VsZXRvbkJ1dHRvbkNsczpgJHtGZX0tYnV0dG9uYCxza2VsZXRvbklucHV0Q2xzOmAke0ZlfS1pbnB1dGAsc2tlbGV0b25JbWFnZUNsczpgJHtGZX0taW1hZ2VgLGltYWdlU2l6ZUJhc2U6U2UoX2UuY29udHJvbEhlaWdodCkubXVsKDEuNSkuZXF1YWwoKSxib3JkZXJSYWRpdXM6MTAwLHNrZWxldG9uTG9hZGluZ0JhY2tncm91bmQ6YGxpbmVhci1ncmFkaWVudCg5MGRlZywgJHtfZS5ncmFkaWVudEZyb21Db2xvcn0gMjUlLCAke19lLmdyYWRpZW50VG9Db2xvcn0gMzclLCAke19lLmdyYWRpZW50RnJvbUNvbG9yfSA2MyUpYCxza2VsZXRvbkxvYWRpbmdNb3Rpb25EdXJhdGlvbjoiMS40cyJ9KTtyZXR1cm5beihxKV19LEcse2RlcHJlY2F0ZWRUb2tlbnM6W1siY29sb3IiLCJncmFkaWVudEZyb21Db2xvciJdLFsiY29sb3JHcmFkaWVudEVuZCIsImdyYWRpZW50VG9Db2xvciJdXX0pLEo9X2U9Pntjb25zdHtwcmVmaXhDbHM6RmUsY2xhc3NOYW1lOlNlLHJvb3RDbGFzc05hbWU6cSxhY3RpdmU6ayxzaGFwZTpNPSJjaXJjbGUiLHNpemU6QT0iZGVmYXVsdCJ9PV9lLHtnZXRQcmVmaXhDbHM6VX09ci51c2VDb250ZXh0KGkuRV8pLE49VSgic2tlbGV0b24iLEZlKSxbUSx1ZSwkXT1ZKE4pLF89KDAscy5aKShfZSxbInByZWZpeENscyIsImNsYXNzTmFtZSJdKSxwZT10KCkoTixgJHtOfS1lbGVtZW50YCx7W2Ake059LWFjdGl2ZWBdOmt9LFNlLHEsdWUsJCk7cmV0dXJuIFEoci5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6cGV9LHIuY3JlYXRlRWxlbWVudCh1LE9iamVjdC5hc3NpZ24oe3ByZWZpeENsczpgJHtOfS1hdmF0YXJgLHNoYXBlOk0sc2l6ZTpBfSxfKSkpKX0sdGU9X2U9Pntjb25zdHtwcmVmaXhDbHM6RmUsY2xhc3NOYW1lOlNlLHJvb3RDbGFzc05hbWU6cSxhY3RpdmU6ayxibG9jazpNPSExLHNpemU6QT0iZGVmYXVsdCJ9PV9lLHtnZXRQcmVmaXhDbHM6VX09ci51c2VDb250ZXh0KGkuRV8pLE49VSgic2tlbGV0b24iLEZlKSxbUSx1ZSwkXT1ZKE4pLF89KDAscy5aKShfZSxbInByZWZpeENscyJdKSxwZT10KCkoTixgJHtOfS1lbGVtZW50YCx7W2Ake059LWFjdGl2ZWBdOmssW2Ake059LWJsb2NrYF06TX0sU2UscSx1ZSwkKTtyZXR1cm4gUShyLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpwZX0sci5jcmVhdGVFbGVtZW50KHUsT2JqZWN0LmFzc2lnbih7cHJlZml4Q2xzOmAke059LWJ1dHRvbmAsc2l6ZTpBfSxfKSkpKX07Y29uc3QgbGU9Ik0zNjUuNzE0Mjg2IDMyOS4xNDI4NTdxMCA0NS43MTQyODYtMzIuMDM2NTcxIDc3LjY3NzcxNHQtNzcuNjc3NzE0IDMyLjAzNjU3MS03Ny42Nzc3MTQtMzIuMDM2NTcxLTMyLjAzNjU3MS03Ny42Nzc3MTQgMzIuMDM2NTcxLTc3LjY3NzcxNCA3Ny42Nzc3MTQtMzIuMDM2NTcxIDc3LjY3NzcxNCAzMi4wMzY1NzEgMzIuMDM2NTcxIDc3LjY3NzcxNHpNOTUwLjg1NzE0MyA1NDguNTcxNDI5bDAgMjU2LTgwNC41NzE0MjkgMCAwLTEwOS43MTQyODYgMTgyLjg1NzE0My0xODIuODU3MTQzIDkxLjQyODU3MSA5MS40Mjg1NzEgMjkyLjU3MTQyOS0yOTIuNTcxNDI5ek0xMDA1LjcxNDI4NiAxNDYuMjg1NzE0bC05MTQuMjg1NzE0IDBxLTcuNDYwNTcxIDAtMTIuODczMTQzIDUuNDEyNTcxdC01LjQxMjU3MSAxMi44NzMxNDNsMCA2OTQuODU3MTQzcTAgNy40NjA1NzEgNS40MTI1NzEgMTIuODczMTQzdDEyLjg3MzE0MyA1LjQxMjU3MWw5MTQuMjg1NzE0IDBxNy40NjA1NzEgMCAxMi44NzMxNDMtNS40MTI1NzF0NS40MTI1NzEtMTIuODczMTQzbDAtNjk0Ljg1NzE0M3EwLTcuNDYwNTcxLTUuNDEyNTcxLTEyLjg3MzE0M3QtMTIuODczMTQzLTUuNDEyNTcxek0xMDk3LjE0Mjg1NyAxNjQuNTcxNDI5bDAgNjk0Ljg1NzE0M3EwIDM3Ljc0MTcxNC0yNi44NDM0MjkgNjQuNTg1MTQzdC02NC41ODUxNDMgMjYuODQzNDI5bC05MTQuMjg1NzE0IDBxLTM3Ljc0MTcxNCAwLTY0LjU4NTE0My0yNi44NDM0Mjl0LTI2Ljg0MzQyOS02NC41ODUxNDNsMC02OTQuODU3MTQzcTAtMzcuNzQxNzE0IDI2Ljg0MzQyOS02NC41ODUxNDN0NjQuNTg1MTQzLTI2Ljg0MzQyOWw5MTQuMjg1NzE0IDBxMzcuNzQxNzE0IDAgNjQuNTg1MTQzIDI2Ljg0MzQyOXQyNi44NDM0MjkgNjQuNTg1MTQzeiI7dmFyIFc9X2U9Pntjb25zdHtwcmVmaXhDbHM6RmUsY2xhc3NOYW1lOlNlLHJvb3RDbGFzc05hbWU6cSxzdHlsZTprLGFjdGl2ZTpNfT1fZSx7Z2V0UHJlZml4Q2xzOkF9PXIudXNlQ29udGV4dChpLkVfKSxVPUEoInNrZWxldG9uIixGZSksW04sUSx1ZV09WShVKSwkPXQoKShVLGAke1V9LWVsZW1lbnRgLHtbYCR7VX0tYWN0aXZlYF06TX0sU2UscSxRLHVlKTtyZXR1cm4gTihyLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTokfSxyLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTp0KCkoYCR7VX0taW1hZ2VgLFNlKSxzdHlsZTprfSxyLmNyZWF0ZUVsZW1lbnQoInN2ZyIse3ZpZXdCb3g6IjAgMCAxMDk4IDEwMjQiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsY2xhc3NOYW1lOmAke1V9LWltYWdlLXN2Z2B9LHIuY3JlYXRlRWxlbWVudCgidGl0bGUiLG51bGwsIkltYWdlIHBsYWNlaG9sZGVyIiksci5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDpsZSxjbGFzc05hbWU6YCR7VX0taW1hZ2UtcGF0aGB9KSkpKSl9LEQ9X2U9Pntjb25zdHtwcmVmaXhDbHM6RmUsY2xhc3NOYW1lOlNlLHJvb3RDbGFzc05hbWU6cSxhY3RpdmU6ayxibG9jazpNLHNpemU6QT0iZGVmYXVsdCJ9PV9lLHtnZXRQcmVmaXhDbHM6VX09ci51c2VDb250ZXh0KGkuRV8pLE49VSgic2tlbGV0b24iLEZlKSxbUSx1ZSwkXT1ZKE4pLF89KDAscy5aKShfZSxbInByZWZpeENscyJdKSxwZT10KCkoTixgJHtOfS1lbGVtZW50YCx7W2Ake059LWFjdGl2ZWBdOmssW2Ake059LWJsb2NrYF06TX0sU2UscSx1ZSwkKTtyZXR1cm4gUShyLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpwZX0sci5jcmVhdGVFbGVtZW50KHUsT2JqZWN0LmFzc2lnbih7cHJlZml4Q2xzOmAke059LWlucHV0YCxzaXplOkF9LF8pKSkpfSxaPV9lPT57Y29uc3R7cHJlZml4Q2xzOkZlLGNsYXNzTmFtZTpTZSxyb290Q2xhc3NOYW1lOnEsc3R5bGU6ayxhY3RpdmU6TSxjaGlsZHJlbjpBfT1fZSx7Z2V0UHJlZml4Q2xzOlV9PXIudXNlQ29udGV4dChpLkVfKSxOPVUoInNrZWxldG9uIixGZSksW1EsdWUsJF09WShOKSxfPXQoKShOLGAke059LWVsZW1lbnRgLHtbYCR7Tn0tYWN0aXZlYF06TX0sdWUsU2UscSwkKTtyZXR1cm4gUShyLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpffSxyLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTp0KCkoYCR7Tn0taW1hZ2VgLFNlKSxzdHlsZTprfSxBKSkpfTtjb25zdCBQPShfZSxGZSk9Pntjb25zdHt3aWR0aDpTZSxyb3dzOnE9Mn09RmU7aWYoQXJyYXkuaXNBcnJheShTZSkpcmV0dXJuIFNlW19lXTtpZihxLTE9PT1fZSlyZXR1cm4gU2V9O3ZhciBzZT1fZT0+e2NvbnN0e3ByZWZpeENsczpGZSxjbGFzc05hbWU6U2Usc3R5bGU6cSxyb3dzOms9MH09X2UsTT1BcnJheS5mcm9tKHtsZW5ndGg6a30pLm1hcCgoQSxVKT0+ci5jcmVhdGVFbGVtZW50KCJsaSIse2tleTpVLHN0eWxlOnt3aWR0aDpQKFUsX2UpfX0pKTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KCJ1bCIse2NsYXNzTmFtZTp0KCkoRmUsU2UpLHN0eWxlOnF9LE0pfSxvZT1fZT0+e2xldHtwcmVmaXhDbHM6RmUsY2xhc3NOYW1lOlNlLHdpZHRoOnEsc3R5bGU6a309X2U7cmV0dXJuIHIuY3JlYXRlRWxlbWVudCgiaDMiLHtjbGFzc05hbWU6dCgpKEZlLFNlKSxzdHlsZTpPYmplY3QuYXNzaWduKHt3aWR0aDpxfSxrKX0pfTtmdW5jdGlvbiBmZShfZSl7cmV0dXJuIF9lJiZ0eXBlb2YgX2U9PSJvYmplY3QiP19lOnt9fWZ1bmN0aW9uIEVlKF9lLEZlKXtyZXR1cm4gX2UmJiFGZT97c2l6ZToibGFyZ2UiLHNoYXBlOiJzcXVhcmUifTp7c2l6ZToibGFyZ2UiLHNoYXBlOiJjaXJjbGUifX1mdW5jdGlvbiBSZShfZSxGZSl7cmV0dXJuIV9lJiZGZT97d2lkdGg6IjM4JSJ9Ol9lJiZGZT97d2lkdGg6IjUwJSJ9Ont9fWZ1bmN0aW9uIEJlKF9lLEZlKXtjb25zdCBTZT17fTtyZXR1cm4oIV9lfHwhRmUpJiYoU2Uud2lkdGg9IjYxJSIpLCFfZSYmRmU/U2Uucm93cz0zOlNlLnJvd3M9MixTZX1jb25zdCBZZT1fZT0+e2NvbnN0e3ByZWZpeENsczpGZSxsb2FkaW5nOlNlLGNsYXNzTmFtZTpxLHJvb3RDbGFzc05hbWU6ayxzdHlsZTpNLGNoaWxkcmVuOkEsYXZhdGFyOlU9ITEsdGl0bGU6Tj0hMCxwYXJhZ3JhcGg6UT0hMCxhY3RpdmU6dWUscm91bmQ6JH09X2Use2dldFByZWZpeENsczpfLGRpcmVjdGlvbjpwZSxjbGFzc05hbWU6cmUsc3R5bGU6YWV9PSgwLGkuZGopKCJza2VsZXRvbiIpLHdlPV8oInNrZWxldG9uIixGZSksW0xlLE1lLGJlXT1ZKHdlKTtpZihTZXx8ISgibG9hZGluZyJpbiBfZSkpe2NvbnN0ICRlPSEhVSxrZT0hIU4sQWU9ISFRO2xldCB0dDtpZigkZSl7Y29uc3QgRGU9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHtwcmVmaXhDbHM6YCR7d2V9LWF2YXRhcmB9LEVlKGtlLEFlKSksZmUoVSkpO3R0PXIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmAke3dlfS1oZWFkZXJgfSxyLmNyZWF0ZUVsZW1lbnQodSxPYmplY3QuYXNzaWduKHt9LERlKSkpfWxldCBtdDtpZihrZXx8QWUpe2xldCBEZTtpZihrZSl7Y29uc3QgWGU9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHtwcmVmaXhDbHM6YCR7d2V9LXRpdGxlYH0sUmUoJGUsQWUpKSxmZShOKSk7RGU9ci5jcmVhdGVFbGVtZW50KG9lLE9iamVjdC5hc3NpZ24oe30sWGUpKX1sZXQgTmU7aWYoQWUpe2NvbnN0IFhlPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7cHJlZml4Q2xzOmAke3dlfS1wYXJhZ3JhcGhgfSxCZSgkZSxrZSkpLGZlKFEpKTtOZT1yLmNyZWF0ZUVsZW1lbnQoc2UsT2JqZWN0LmFzc2lnbih7fSxYZSkpfW10PXIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmAke3dlfS1jb250ZW50YH0sRGUsTmUpfWNvbnN0IHV0PXQoKSh3ZSx7W2Ake3dlfS13aXRoLWF2YXRhcmBdOiRlLFtgJHt3ZX0tYWN0aXZlYF06dWUsW2Ake3dlfS1ydGxgXTpwZT09PSJydGwiLFtgJHt3ZX0tcm91bmRgXTokfSxyZSxxLGssTWUsYmUpO3JldHVybiBMZShyLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTp1dCxzdHlsZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sYWUpLE0pfSx0dCxtdCkpfXJldHVybiBBIT1udWxsP0E6bnVsbH07WWUuQnV0dG9uPXRlLFllLkF2YXRhcj1KLFllLklucHV0PUQsWWUuSW1hZ2U9VyxZZS5Ob2RlPVo7dmFyIG90PVllLHFlPW90fSw0MTczOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse0JSOmZ1bmN0aW9uKCl7cmV0dXJuIG19LHJpOmZ1bmN0aW9uKCl7cmV0dXJuIGR9fSk7dmFyIHI9ZSg2NzI5NCksbj1lKDkzOTY3KSx0PWUubihuKSxpPWUoNTAzNDQpLHM9ZSg1MzEyNCksYT1lKDk4Njc1KSx1PWUoNTE5MTYpLGM9ZnVuY3Rpb24odyxFKXt2YXIgeD17fTtmb3IodmFyIE8gaW4gdylPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodyxPKSYmRS5pbmRleE9mKE8pPDAmJih4W09dPXdbT10pO2lmKHchPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgVD0wLE89T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh3KTtUPE8ubGVuZ3RoO1QrKylFLmluZGV4T2YoT1tUXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHcsT1tUXSkmJih4W09bVF1dPXdbT1tUXV0pO3JldHVybiB4fTtjb25zdCBoPXIuY3JlYXRlQ29udGV4dChudWxsKSxkPSh3LEUpPT57Y29uc3QgeD1yLnVzZUNvbnRleHQoaCksTz1yLnVzZU1lbW8oKCk9PntpZigheClyZXR1cm4iIjtjb25zdHtjb21wYWN0RGlyZWN0aW9uOlQsaXNGaXJzdEl0ZW06Uyxpc0xhc3RJdGVtOkx9PXgsST1UPT09InZlcnRpY2FsIj8iLXZlcnRpY2FsLSI6Ii0iO3JldHVybiB0KCkoYCR7d30tY29tcGFjdCR7SX1pdGVtYCx7W2Ake3d9LWNvbXBhY3Qke0l9Zmlyc3QtaXRlbWBdOlMsW2Ake3d9LWNvbXBhY3Qke0l9bGFzdC1pdGVtYF06TCxbYCR7d30tY29tcGFjdCR7SX1pdGVtLXJ0bGBdOkU9PT0icnRsIn0pfSxbdyxFLHhdKTtyZXR1cm57Y29tcGFjdFNpemU6eD09bnVsbD92b2lkIDA6eC5jb21wYWN0U2l6ZSxjb21wYWN0RGlyZWN0aW9uOng9PW51bGw/dm9pZCAwOnguY29tcGFjdERpcmVjdGlvbixjb21wYWN0SXRlbUNsYXNzbmFtZXM6T319LG09dz0+e2NvbnN0e2NoaWxkcmVuOkV9PXc7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChoLlByb3ZpZGVyLHt2YWx1ZTpudWxsfSxFKX0sQz13PT57Y29uc3R7Y2hpbGRyZW46RX09dyx4PWModyxbImNoaWxkcmVuIl0pO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoaC5Qcm92aWRlcix7dmFsdWU6ci51c2VNZW1vKCgpPT54LFt4XSl9LEUpfSxnPXc9Pntjb25zdHtnZXRQcmVmaXhDbHM6RSxkaXJlY3Rpb246eH09ci51c2VDb250ZXh0KHMuRV8pLHtzaXplOk8sZGlyZWN0aW9uOlQsYmxvY2s6UyxwcmVmaXhDbHM6TCxjbGFzc05hbWU6SSxyb290Q2xhc3NOYW1lOlIsY2hpbGRyZW46en09dyxHPWModyxbInNpemUiLCJkaXJlY3Rpb24iLCJibG9jayIsInByZWZpeENscyIsImNsYXNzTmFtZSIsInJvb3RDbGFzc05hbWUiLCJjaGlsZHJlbiJdKSxZPSgwLGEuWikoaj0+TyE9bnVsbD9POmopLGVlPUUoInNwYWNlLWNvbXBhY3QiLEwpLFtKLG1lXT0oMCx1LlopKGVlKSx0ZT10KCkoZWUsbWUse1tgJHtlZX0tcnRsYF06eD09PSJydGwiLFtgJHtlZX0tYmxvY2tgXTpTLFtgJHtlZX0tdmVydGljYWxgXTpUPT09InZlcnRpY2FsIn0sSSxSKSxsZT1yLnVzZUNvbnRleHQoaCksY2U9KDAsaS5aKSh6KSxXPXIudXNlTWVtbygoKT0+Y2UubWFwKChqLEQpPT57Y29uc3QgVj0oaj09bnVsbD92b2lkIDA6ai5rZXkpfHxgJHtlZX0taXRlbS0ke0R9YDtyZXR1cm4gci5jcmVhdGVFbGVtZW50KEMse2tleTpWLGNvbXBhY3RTaXplOlksY29tcGFjdERpcmVjdGlvbjpULGlzRmlyc3RJdGVtOkQ9PT0wJiYoIWxlfHwobGU9PW51bGw/dm9pZCAwOmxlLmlzRmlyc3RJdGVtKSksaXNMYXN0SXRlbTpEPT09Y2UubGVuZ3RoLTEmJighbGV8fChsZT09bnVsbD92b2lkIDA6bGUuaXNMYXN0SXRlbSkpfSxqKX0pLFtPLGNlLGxlXSk7cmV0dXJuIGNlLmxlbmd0aD09PTA/bnVsbDpKKHIuY3JlYXRlRWxlbWVudCgiZGl2IixPYmplY3QuYXNzaWduKHtjbGFzc05hbWU6dGV9LEcpLFcpKX07cC5aUD1nfSw3ODk1NzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIE99fSk7dmFyIHI9ZSg2NzI5NCksbj1lKDkzOTY3KSx0PWUubihuKSxpPWUoNTAzNDQpO2Z1bmN0aW9uIHMoVCl7cmV0dXJuWyJzbWFsbCIsIm1pZGRsZSIsImxhcmdlIl0uaW5jbHVkZXMoVCl9ZnVuY3Rpb24gYShUKXtyZXR1cm4gVD90eXBlb2YgVD09Im51bWJlciImJiFOdW1iZXIuaXNOYU4oVCk6ITF9dmFyIHU9ZSg1MzEyNCksYz1lKDQxNzMpO2NvbnN0IGg9ci5jcmVhdGVDb250ZXh0KHtsYXRlc3RJbmRleDowfSksZD1oLlByb3ZpZGVyO3ZhciBDPVQ9PntsZXR7Y2xhc3NOYW1lOlMsaW5kZXg6TCxjaGlsZHJlbjpJLHNwbGl0OlIsc3R5bGU6en09VDtjb25zdHtsYXRlc3RJbmRleDpHfT1yLnVzZUNvbnRleHQoaCk7cmV0dXJuIEk9PW51bGw/bnVsbDpyLmNyZWF0ZUVsZW1lbnQoci5GcmFnbWVudCxudWxsLHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOlMsc3R5bGU6en0sSSksTDxHJiZSJiZyLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6YCR7U30tc3BsaXRgfSxSKSl9LGc9ZSg1MTkxNiksdz1mdW5jdGlvbihULFMpe3ZhciBMPXt9O2Zvcih2YXIgSSBpbiBUKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChULEkpJiZTLmluZGV4T2YoSSk8MCYmKExbSV09VFtJXSk7aWYoVCE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBSPTAsST1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKFQpO1I8SS5sZW5ndGg7UisrKVMuaW5kZXhPZihJW1JdKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoVCxJW1JdKSYmKExbSVtSXV09VFtJW1JdXSk7cmV0dXJuIEx9O2NvbnN0IHg9ci5mb3J3YXJkUmVmKChULFMpPT57dmFyIEw7Y29uc3R7Z2V0UHJlZml4Q2xzOkksZGlyZWN0aW9uOlIsc2l6ZTp6LGNsYXNzTmFtZTpHLHN0eWxlOlksY2xhc3NOYW1lczplZSxzdHlsZXM6Sn09KDAsdS5kaikoInNwYWNlIikse3NpemU6bWU9eiE9bnVsbD96OiJzbWFsbCIsYWxpZ246dGUsY2xhc3NOYW1lOmxlLHJvb3RDbGFzc05hbWU6Y2UsY2hpbGRyZW46VyxkaXJlY3Rpb246aj0iaG9yaXpvbnRhbCIscHJlZml4Q2xzOkQsc3BsaXQ6VixzdHlsZTpaLHdyYXA6UD0hMSxjbGFzc05hbWVzOkssc3R5bGVzOnNlfT1ULG5lPXcoVCxbInNpemUiLCJhbGlnbiIsImNsYXNzTmFtZSIsInJvb3RDbGFzc05hbWUiLCJjaGlsZHJlbiIsImRpcmVjdGlvbiIsInByZWZpeENscyIsInNwbGl0Iiwic3R5bGUiLCJ3cmFwIiwiY2xhc3NOYW1lcyIsInN0eWxlcyJdKSxbb2UsZmVdPUFycmF5LmlzQXJyYXkobWUpP21lOlttZSxtZV0sRWU9cyhmZSksUmU9cyhvZSksQmU9YShmZSksWWU9YShvZSksb3Q9KDAsaS5aKShXLHtrZWVwRW1wdHk6ITB9KSxxZT10ZT09PXZvaWQgMCYmaj09PSJob3Jpem9udGFsIj8iY2VudGVyIjp0ZSxfZT1JKCJzcGFjZSIsRCksW0ZlLFNlLHFdPSgwLGcuWikoX2UpLGs9dCgpKF9lLEcsU2UsYCR7X2V9LSR7an1gLHtbYCR7X2V9LXJ0bGBdOlI9PT0icnRsIixbYCR7X2V9LWFsaWduLSR7cWV9YF06cWUsW2Ake19lfS1nYXAtcm93LSR7ZmV9YF06RWUsW2Ake19lfS1nYXAtY29sLSR7b2V9YF06UmV9LGxlLGNlLHEpLE09dCgpKGAke19lfS1pdGVtYCwoTD1LPT1udWxsP3ZvaWQgMDpLLml0ZW0pIT09bnVsbCYmTCE9PXZvaWQgMD9MOmVlLml0ZW0pO2xldCBBPTA7Y29uc3QgVT1vdC5tYXAoKHVlLCQpPT57dmFyIF87dWUhPW51bGwmJihBPSQpO2NvbnN0IHBlPSh1ZT09bnVsbD92b2lkIDA6dWUua2V5KXx8YCR7TX0tJHskfWA7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChDLHtjbGFzc05hbWU6TSxrZXk6cGUsaW5kZXg6JCxzcGxpdDpWLHN0eWxlOihfPXNlPT1udWxsP3ZvaWQgMDpzZS5pdGVtKSE9PW51bGwmJl8hPT12b2lkIDA/XzpKLml0ZW19LHVlKX0pLE49ci51c2VNZW1vKCgpPT4oe2xhdGVzdEluZGV4OkF9KSxbQV0pO2lmKG90Lmxlbmd0aD09PTApcmV0dXJuIG51bGw7Y29uc3QgUT17fTtyZXR1cm4gUCYmKFEuZmxleFdyYXA9IndyYXAiKSwhUmUmJlllJiYoUS5jb2x1bW5HYXA9b2UpLCFFZSYmQmUmJihRLnJvd0dhcD1mZSksRmUoci5jcmVhdGVFbGVtZW50KCJkaXYiLE9iamVjdC5hc3NpZ24oe3JlZjpTLGNsYXNzTmFtZTprLHN0eWxlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LFEpLFkpLFopfSxuZSksci5jcmVhdGVFbGVtZW50KGQse3ZhbHVlOk59LFUpKSl9KTt4LkNvbXBhY3Q9Yy5aUDt2YXIgTz14fSw1MTkxNjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGN9fSk7dmFyIHI9ZSg4MzU1OSksbj1lKDgzMjYyKSxpPWg9Pntjb25zdHtjb21wb25lbnRDbHM6ZH09aDtyZXR1cm57W2RdOnsiJi1ibG9jayI6e2Rpc3BsYXk6ImZsZXgiLHdpZHRoOiIxMDAlIn0sIiYtdmVydGljYWwiOntmbGV4RGlyZWN0aW9uOiJjb2x1bW4ifX19fTtjb25zdCBzPWg9Pntjb25zdHtjb21wb25lbnRDbHM6ZCxhbnRDbHM6bX09aDtyZXR1cm57W2RdOntkaXNwbGF5OiJpbmxpbmUtZmxleCIsIiYtcnRsIjp7ZGlyZWN0aW9uOiJydGwifSwiJi12ZXJ0aWNhbCI6e2ZsZXhEaXJlY3Rpb246ImNvbHVtbiJ9LCImLWFsaWduIjp7ZmxleERpcmVjdGlvbjoiY29sdW1uIiwiJi1jZW50ZXIiOnthbGlnbkl0ZW1zOiJjZW50ZXIifSwiJi1zdGFydCI6e2FsaWduSXRlbXM6ImZsZXgtc3RhcnQifSwiJi1lbmQiOnthbGlnbkl0ZW1zOiJmbGV4LWVuZCJ9LCImLWJhc2VsaW5lIjp7YWxpZ25JdGVtczoiYmFzZWxpbmUifX0sW2Ake2R9LWl0ZW06ZW1wdHlgXTp7ZGlzcGxheToibm9uZSJ9LFtgJHtkfS1pdGVtID4gJHttfS1iYWRnZS1ub3QtYS13cmFwcGVyOm9ubHktY2hpbGRgXTp7ZGlzcGxheToiYmxvY2sifX19fSxhPWg9Pntjb25zdHtjb21wb25lbnRDbHM6ZH09aDtyZXR1cm57W2RdOnsiJi1nYXAtcm93LXNtYWxsIjp7cm93R2FwOmguc3BhY2VHYXBTbWFsbFNpemV9LCImLWdhcC1yb3ctbWlkZGxlIjp7cm93R2FwOmguc3BhY2VHYXBNaWRkbGVTaXplfSwiJi1nYXAtcm93LWxhcmdlIjp7cm93R2FwOmguc3BhY2VHYXBMYXJnZVNpemV9LCImLWdhcC1jb2wtc21hbGwiOntjb2x1bW5HYXA6aC5zcGFjZUdhcFNtYWxsU2l6ZX0sIiYtZ2FwLWNvbC1taWRkbGUiOntjb2x1bW5HYXA6aC5zcGFjZUdhcE1pZGRsZVNpemV9LCImLWdhcC1jb2wtbGFyZ2UiOntjb2x1bW5HYXA6aC5zcGFjZUdhcExhcmdlU2l6ZX19fX0sdT0oKT0+KHt9KTt2YXIgYz0oMCxyLkkkKSgiU3BhY2UiLGg9Pntjb25zdCBkPSgwLG4uSVgpKGgse3NwYWNlR2FwU21hbGxTaXplOmgucGFkZGluZ1hTLHNwYWNlR2FwTWlkZGxlU2l6ZTpoLnBhZGRpbmcsc3BhY2VHYXBMYXJnZVNpemU6aC5wYWRkaW5nTEd9KTtyZXR1cm5bcyhkKSxhKGQpLGkoZCldfSwoKT0+KHt9KSx7cmVzZXRTdHlsZTohMX0pfSw1NzM4MTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIFZ9fSk7dmFyIHI9ZSg2NzI5NCksbj1lKDkzOTY3KSx0PWUubihuKSxpPWUoMjc4NTYpLHM9ZSg1MzEyNCksYT1lKDk2MTU5KSx1PWUoODQxMCk7Y29uc3QgYz0xMDAsaD1jLzUsZD1jLzItaC8yLG09ZCoyKk1hdGguUEksQz01MCxnPVo9Pntjb25zdHtkb3RDbGFzc05hbWU6UCxzdHlsZTpLLGhhc0NpcmNsZUNsczpzZX09WjtyZXR1cm4gci5jcmVhdGVFbGVtZW50KCJjaXJjbGUiLHtjbGFzc05hbWU6dCgpKGAke1B9LWNpcmNsZWAse1tgJHtQfS1jaXJjbGUtYmdgXTpzZX0pLHI6ZCxjeDpDLGN5OkMsc3Ryb2tlV2lkdGg6aCxzdHlsZTpLfSl9O3ZhciBFPVo9PntsZXR7cGVyY2VudDpQLHByZWZpeENsczpLfT1aO2NvbnN0IHNlPWAke0t9LWRvdGAsbmU9YCR7c2V9LWhvbGRlcmAsb2U9YCR7bmV9LWhpZGRlbmAsW2ZlLEVlXT1yLnVzZVN0YXRlKCExKTsoMCx1LlopKCgpPT57UCE9PTAmJkVlKCEwKX0sW1AhPT0wXSk7Y29uc3QgUmU9TWF0aC5tYXgoTWF0aC5taW4oUCwxMDApLDApO2lmKCFmZSlyZXR1cm4gbnVsbDtjb25zdCBCZT17c3Ryb2tlRGFzaG9mZnNldDpgJHttLzR9YCxzdHJva2VEYXNoYXJyYXk6YCR7bSpSZS8xMDB9ICR7bSooMTAwLVJlKS8xMDB9YH07cmV0dXJuIHIuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTp0KCkobmUsYCR7c2V9LXByb2dyZXNzYCxSZTw9MCYmb2UpfSxyLmNyZWF0ZUVsZW1lbnQoInN2ZyIse3ZpZXdCb3g6YDAgMCAke2N9ICR7Y31gLHJvbGU6InByb2dyZXNzYmFyIiwiYXJpYS12YWx1ZW1pbiI6MCwiYXJpYS12YWx1ZW1heCI6MTAwLCJhcmlhLXZhbHVlbm93IjpSZX0sci5jcmVhdGVFbGVtZW50KGcse2RvdENsYXNzTmFtZTpzZSxoYXNDaXJjbGVDbHM6ITB9KSxyLmNyZWF0ZUVsZW1lbnQoZyx7ZG90Q2xhc3NOYW1lOnNlLHN0eWxlOkJlfSkpKX07ZnVuY3Rpb24geChaKXtjb25zdHtwcmVmaXhDbHM6UCxwZXJjZW50Oks9MH09WixzZT1gJHtQfS1kb3RgLG5lPWAke3NlfS1ob2xkZXJgLG9lPWAke25lfS1oaWRkZW5gO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoci5GcmFnbWVudCxudWxsLHIuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTp0KCkobmUsSz4wJiZvZSl9LHIuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTp0KCkoc2UsYCR7UH0tZG90LXNwaW5gKX0sWzEsMiwzLDRdLm1hcChmZT0+ci5jcmVhdGVFbGVtZW50KCJpIix7Y2xhc3NOYW1lOmAke1B9LWRvdC1pdGVtYCxrZXk6ZmV9KSkpKSxyLmNyZWF0ZUVsZW1lbnQoRSx7cHJlZml4Q2xzOlAscGVyY2VudDpLfSkpfWZ1bmN0aW9uIE8oWil7Y29uc3R7cHJlZml4Q2xzOlAsaW5kaWNhdG9yOksscGVyY2VudDpzZX09WixuZT1gJHtQfS1kb3RgO3JldHVybiBLJiZyLmlzVmFsaWRFbGVtZW50KEspPygwLGEuVG0pKEsse2NsYXNzTmFtZTp0KCkoSy5wcm9wcy5jbGFzc05hbWUsbmUpLHBlcmNlbnQ6c2V9KTpyLmNyZWF0ZUVsZW1lbnQoeCx7cHJlZml4Q2xzOlAscGVyY2VudDpzZX0pfXZhciBUPWUoMTE1NjgpLFM9ZSgxNDc0NyksTD1lKDgzNTU5KSxJPWUoODMyNjIpO2NvbnN0IFI9bmV3IFQuRTQoImFudFNwaW5Nb3ZlIix7dG86e29wYWNpdHk6MX19KSx6PW5ldyBULkU0KCJhbnRSb3RhdGUiLHt0bzp7dHJhbnNmb3JtOiJyb3RhdGUoNDA1ZGVnKSJ9fSksRz1aPT57Y29uc3R7Y29tcG9uZW50Q2xzOlAsY2FsYzpLfT1aO3JldHVybntbUF06T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCgwLFMuV2YpKFopKSx7cG9zaXRpb246ImFic29sdXRlIixkaXNwbGF5OiJub25lIixjb2xvcjpaLmNvbG9yUHJpbWFyeSxmb250U2l6ZTowLHRleHRBbGlnbjoiY2VudGVyIix2ZXJ0aWNhbEFsaWduOiJtaWRkbGUiLG9wYWNpdHk6MCx0cmFuc2l0aW9uOmB0cmFuc2Zvcm0gJHtaLm1vdGlvbkR1cmF0aW9uU2xvd30gJHtaLm1vdGlvbkVhc2VJbk91dENpcmN9YCwiJi1zcGlubmluZyI6e3Bvc2l0aW9uOiJyZWxhdGl2ZSIsZGlzcGxheToiaW5saW5lLWJsb2NrIixvcGFjaXR5OjF9LFtgJHtQfS10ZXh0YF06e2ZvbnRTaXplOlouZm9udFNpemUscGFkZGluZ1RvcDpLKEsoWi5kb3RTaXplKS5zdWIoWi5mb250U2l6ZSkpLmRpdigyKS5hZGQoMikuZXF1YWwoKX0sIiYtZnVsbHNjcmVlbiI6e3Bvc2l0aW9uOiJmaXhlZCIsd2lkdGg6IjEwMHZ3IixoZWlnaHQ6IjEwMHZoIixiYWNrZ3JvdW5kQ29sb3I6Wi5jb2xvckJnTWFzayx6SW5kZXg6Wi56SW5kZXhQb3B1cEJhc2UsaW5zZXQ6MCxkaXNwbGF5OiJmbGV4IixhbGlnbkl0ZW1zOiJjZW50ZXIiLGZsZXhEaXJlY3Rpb246ImNvbHVtbiIsanVzdGlmeUNvbnRlbnQ6ImNlbnRlciIsb3BhY2l0eTowLHZpc2liaWxpdHk6ImhpZGRlbiIsdHJhbnNpdGlvbjpgYWxsICR7Wi5tb3Rpb25EdXJhdGlvbk1pZH1gLCImLXNob3ciOntvcGFjaXR5OjEsdmlzaWJpbGl0eToidmlzaWJsZSJ9LFtQXTp7W2Ake1B9LWRvdC1ob2xkZXJgXTp7Y29sb3I6Wi5jb2xvcldoaXRlfSxbYCR7UH0tdGV4dGBdOntjb2xvcjpaLmNvbG9yVGV4dExpZ2h0U29saWR9fX0sIiYtbmVzdGVkLWxvYWRpbmciOntwb3NpdGlvbjoicmVsYXRpdmUiLFtgPiBkaXYgPiAke1B9YF06e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOjAsaW5zZXRJbmxpbmVTdGFydDowLHpJbmRleDo0LGRpc3BsYXk6ImJsb2NrIix3aWR0aDoiMTAwJSIsaGVpZ2h0OiIxMDAlIixtYXhIZWlnaHQ6Wi5jb250ZW50SGVpZ2h0LFtgJHtQfS1kb3RgXTp7cG9zaXRpb246ImFic29sdXRlIix0b3A6IjUwJSIsaW5zZXRJbmxpbmVTdGFydDoiNTAlIixtYXJnaW46SyhaLmRvdFNpemUpLm11bCgtMSkuZGl2KDIpLmVxdWFsKCl9LFtgJHtQfS10ZXh0YF06e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOiI1MCUiLHdpZHRoOiIxMDAlIix0ZXh0U2hhZG93OmAwIDFweCAycHggJHtaLmNvbG9yQmdDb250YWluZXJ9YH0sW2AmJHtQfS1zaG93LXRleHQgJHtQfS1kb3RgXTp7bWFyZ2luVG9wOksoWi5kb3RTaXplKS5kaXYoMikubXVsKC0xKS5zdWIoMTApLmVxdWFsKCl9LCImLXNtIjp7W2Ake1B9LWRvdGBdOnttYXJnaW46SyhaLmRvdFNpemVTTSkubXVsKC0xKS5kaXYoMikuZXF1YWwoKX0sW2Ake1B9LXRleHRgXTp7cGFkZGluZ1RvcDpLKEsoWi5kb3RTaXplU00pLnN1YihaLmZvbnRTaXplKSkuZGl2KDIpLmFkZCgyKS5lcXVhbCgpfSxbYCYke1B9LXNob3ctdGV4dCAke1B9LWRvdGBdOnttYXJnaW5Ub3A6SyhaLmRvdFNpemVTTSkuZGl2KDIpLm11bCgtMSkuc3ViKDEwKS5lcXVhbCgpfX0sIiYtbGciOntbYCR7UH0tZG90YF06e21hcmdpbjpLKFouZG90U2l6ZUxHKS5tdWwoLTEpLmRpdigyKS5lcXVhbCgpfSxbYCR7UH0tdGV4dGBdOntwYWRkaW5nVG9wOksoSyhaLmRvdFNpemVMRykuc3ViKFouZm9udFNpemUpKS5kaXYoMikuYWRkKDIpLmVxdWFsKCl9LFtgJiR7UH0tc2hvdy10ZXh0ICR7UH0tZG90YF06e21hcmdpblRvcDpLKFouZG90U2l6ZUxHKS5kaXYoMikubXVsKC0xKS5zdWIoMTApLmVxdWFsKCl9fX0sW2Ake1B9LWNvbnRhaW5lcmBdOntwb3NpdGlvbjoicmVsYXRpdmUiLHRyYW5zaXRpb246YG9wYWNpdHkgJHtaLm1vdGlvbkR1cmF0aW9uU2xvd31gLCImOjphZnRlciI6e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOjAsaW5zZXRJbmxpbmVFbmQ6MCxib3R0b206MCxpbnNldElubGluZVN0YXJ0OjAsekluZGV4OjEwLHdpZHRoOiIxMDAlIixoZWlnaHQ6IjEwMCUiLGJhY2tncm91bmQ6Wi5jb2xvckJnQ29udGFpbmVyLG9wYWNpdHk6MCx0cmFuc2l0aW9uOmBhbGwgJHtaLm1vdGlvbkR1cmF0aW9uU2xvd31gLGNvbnRlbnQ6JyIiJyxwb2ludGVyRXZlbnRzOiJub25lIn19LFtgJHtQfS1ibHVyYF06e2NsZWFyOiJib3RoIixvcGFjaXR5Oi41LHVzZXJTZWxlY3Q6Im5vbmUiLHBvaW50ZXJFdmVudHM6Im5vbmUiLCImOjphZnRlciI6e29wYWNpdHk6LjQscG9pbnRlckV2ZW50czoiYXV0byJ9fX0sIiYtdGlwIjp7Y29sb3I6Wi5zcGluRG90RGVmYXVsdH0sW2Ake1B9LWRvdC1ob2xkZXJgXTp7d2lkdGg6IjFlbSIsaGVpZ2h0OiIxZW0iLGZvbnRTaXplOlouZG90U2l6ZSxkaXNwbGF5OiJpbmxpbmUtYmxvY2siLHRyYW5zaXRpb246YHRyYW5zZm9ybSAke1oubW90aW9uRHVyYXRpb25TbG93fSBlYXNlLCBvcGFjaXR5ICR7Wi5tb3Rpb25EdXJhdGlvblNsb3d9IGVhc2VgLHRyYW5zZm9ybU9yaWdpbjoiNTAlIDUwJSIsbGluZUhlaWdodDoxLGNvbG9yOlouY29sb3JQcmltYXJ5LCImLWhpZGRlbiI6e3RyYW5zZm9ybToic2NhbGUoMC4zKSIsb3BhY2l0eTowfX0sW2Ake1B9LWRvdC1wcm9ncmVzc2BdOntwb3NpdGlvbjoiYWJzb2x1dGUiLGluc2V0OjB9LFtgJHtQfS1kb3RgXTp7cG9zaXRpb246InJlbGF0aXZlIixkaXNwbGF5OiJpbmxpbmUtYmxvY2siLGZvbnRTaXplOlouZG90U2l6ZSx3aWR0aDoiMWVtIixoZWlnaHQ6IjFlbSIsIiYtaXRlbSI6e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsZGlzcGxheToiYmxvY2siLHdpZHRoOksoWi5kb3RTaXplKS5zdWIoSyhaLm1hcmdpblhYUykuZGl2KDIpKS5kaXYoMikuZXF1YWwoKSxoZWlnaHQ6SyhaLmRvdFNpemUpLnN1YihLKFoubWFyZ2luWFhTKS5kaXYoMikpLmRpdigyKS5lcXVhbCgpLGJhY2tncm91bmQ6ImN1cnJlbnRDb2xvciIsYm9yZGVyUmFkaXVzOiIxMDAlIix0cmFuc2Zvcm06InNjYWxlKDAuNzUpIix0cmFuc2Zvcm1PcmlnaW46IjUwJSA1MCUiLG9wYWNpdHk6LjMsYW5pbWF0aW9uTmFtZTpSLGFuaW1hdGlvbkR1cmF0aW9uOiIxcyIsYW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6ImluZmluaXRlIixhbmltYXRpb25UaW1pbmdGdW5jdGlvbjoibGluZWFyIixhbmltYXRpb25EaXJlY3Rpb246ImFsdGVybmF0ZSIsIiY6bnRoLWNoaWxkKDEpIjp7dG9wOjAsaW5zZXRJbmxpbmVTdGFydDowLGFuaW1hdGlvbkRlbGF5OiIwcyJ9LCImOm50aC1jaGlsZCgyKSI6e3RvcDowLGluc2V0SW5saW5lRW5kOjAsYW5pbWF0aW9uRGVsYXk6IjAuNHMifSwiJjpudGgtY2hpbGQoMykiOntpbnNldElubGluZUVuZDowLGJvdHRvbTowLGFuaW1hdGlvbkRlbGF5OiIwLjhzIn0sIiY6bnRoLWNoaWxkKDQpIjp7Ym90dG9tOjAsaW5zZXRJbmxpbmVTdGFydDowLGFuaW1hdGlvbkRlbGF5OiIxLjJzIn19LCImLXNwaW4iOnt0cmFuc2Zvcm06InJvdGF0ZSg0NWRlZykiLGFuaW1hdGlvbk5hbWU6eixhbmltYXRpb25EdXJhdGlvbjoiMS4ycyIsYW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6ImluZmluaXRlIixhbmltYXRpb25UaW1pbmdGdW5jdGlvbjoibGluZWFyIn0sIiYtY2lyY2xlIjp7c3Ryb2tlTGluZWNhcDoicm91bmQiLHRyYW5zaXRpb246WyJzdHJva2UtZGFzaG9mZnNldCIsInN0cm9rZS1kYXNoYXJyYXkiLCJzdHJva2UiLCJzdHJva2Utd2lkdGgiLCJvcGFjaXR5Il0ubWFwKHNlPT5gJHtzZX0gJHtaLm1vdGlvbkR1cmF0aW9uU2xvd30gZWFzZWApLmpvaW4oIiwiKSxmaWxsT3BhY2l0eTowLHN0cm9rZToiY3VycmVudGNvbG9yIn0sIiYtY2lyY2xlLWJnIjp7c3Ryb2tlOlouY29sb3JGaWxsU2Vjb25kYXJ5fX0sW2AmLXNtICR7UH0tZG90YF06eyImLCAmLWhvbGRlciI6e2ZvbnRTaXplOlouZG90U2l6ZVNNfX0sW2AmLXNtICR7UH0tZG90LWhvbGRlcmBdOntpOnt3aWR0aDpLKEsoWi5kb3RTaXplU00pLnN1YihLKFoubWFyZ2luWFhTKS5kaXYoMikpKS5kaXYoMikuZXF1YWwoKSxoZWlnaHQ6SyhLKFouZG90U2l6ZVNNKS5zdWIoSyhaLm1hcmdpblhYUykuZGl2KDIpKSkuZGl2KDIpLmVxdWFsKCl9fSxbYCYtbGcgJHtQfS1kb3RgXTp7IiYsICYtaG9sZGVyIjp7Zm9udFNpemU6Wi5kb3RTaXplTEd9fSxbYCYtbGcgJHtQfS1kb3QtaG9sZGVyYF06e2k6e3dpZHRoOksoSyhaLmRvdFNpemVMRykuc3ViKFoubWFyZ2luWFhTKSkuZGl2KDIpLmVxdWFsKCksaGVpZ2h0OksoSyhaLmRvdFNpemVMRykuc3ViKFoubWFyZ2luWFhTKSkuZGl2KDIpLmVxdWFsKCl9fSxbYCYke1B9LXNob3ctdGV4dCAke1B9LXRleHRgXTp7ZGlzcGxheToiYmxvY2sifX0pfX0sWT1aPT57Y29uc3R7Y29udHJvbEhlaWdodExHOlAsY29udHJvbEhlaWdodDpLfT1aO3JldHVybntjb250ZW50SGVpZ2h0OjQwMCxkb3RTaXplOlAvMixkb3RTaXplU006UCouMzUsZG90U2l6ZUxHOkt9fTt2YXIgZWU9KDAsTC5JJCkoIlNwaW4iLFo9Pntjb25zdCBQPSgwLEkuSVgpKFose3NwaW5Eb3REZWZhdWx0OlouY29sb3JUZXh0RGVzY3JpcHRpb259KTtyZXR1cm5bRyhQKV19LFkpO2NvbnN0IEo9MjAwLG1lPVtbMzAsLjA1XSxbNzAsLjAzXSxbOTYsLjAxXV07ZnVuY3Rpb24gdGUoWixQKXtjb25zdFtLLHNlXT1yLnVzZVN0YXRlKDApLG5lPXIudXNlUmVmKG51bGwpLG9lPVA9PT0iYXV0byI7cmV0dXJuIHIudXNlRWZmZWN0KCgpPT4ob2UmJlomJihzZSgwKSxuZS5jdXJyZW50PXNldEludGVydmFsKCgpPT57c2UoZmU9Pntjb25zdCBFZT0xMDAtZmU7Zm9yKGxldCBSZT0wO1JlPG1lLmxlbmd0aDtSZSs9MSl7Y29uc3RbQmUsWWVdPW1lW1JlXTtpZihmZTw9QmUpcmV0dXJuIGZlK0VlKlllfXJldHVybiBmZX0pfSxKKSksKCk9PntjbGVhckludGVydmFsKG5lLmN1cnJlbnQpfSksW29lLFpdKSxvZT9LOlB9dmFyIGxlPWZ1bmN0aW9uKFosUCl7dmFyIEs9e307Zm9yKHZhciBzZSBpbiBaKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChaLHNlKSYmUC5pbmRleE9mKHNlKTwwJiYoS1tzZV09WltzZV0pO2lmKFohPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgbmU9MCxzZT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKFopO25lPHNlLmxlbmd0aDtuZSsrKVAuaW5kZXhPZihzZVtuZV0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChaLHNlW25lXSkmJihLW3NlW25lXV09WltzZVtuZV1dKTtyZXR1cm4gS307Y29uc3QgY2U9bnVsbDtsZXQgVztmdW5jdGlvbiBqKFosUCl7cmV0dXJuISFaJiYhIVAmJiFOdW1iZXIuaXNOYU4oTnVtYmVyKFApKX1jb25zdCBEPVo9Pnt2YXIgUDtjb25zdHtwcmVmaXhDbHM6SyxzcGlubmluZzpzZT0hMCxkZWxheTpuZT0wLGNsYXNzTmFtZTpvZSxyb290Q2xhc3NOYW1lOmZlLHNpemU6RWU9ImRlZmF1bHQiLHRpcDpSZSx3cmFwcGVyQ2xhc3NOYW1lOkJlLHN0eWxlOlllLGNoaWxkcmVuOm90LGZ1bGxzY3JlZW46cWU9ITEsaW5kaWNhdG9yOl9lLHBlcmNlbnQ6RmV9PVosU2U9bGUoWixbInByZWZpeENscyIsInNwaW5uaW5nIiwiZGVsYXkiLCJjbGFzc05hbWUiLCJyb290Q2xhc3NOYW1lIiwic2l6ZSIsInRpcCIsIndyYXBwZXJDbGFzc05hbWUiLCJzdHlsZSIsImNoaWxkcmVuIiwiZnVsbHNjcmVlbiIsImluZGljYXRvciIsInBlcmNlbnQiXSkse2dldFByZWZpeENsczpxLGRpcmVjdGlvbjprLGNsYXNzTmFtZTpNLHN0eWxlOkEsaW5kaWNhdG9yOlV9PSgwLHMuZGopKCJzcGluIiksTj1xKCJzcGluIixLKSxbUSx1ZSwkXT1lZShOKSxbXyxwZV09ci51c2VTdGF0ZSgoKT0+c2UmJiFqKHNlLG5lKSkscmU9dGUoXyxGZSk7ci51c2VFZmZlY3QoKCk9PntpZihzZSl7Y29uc3Qga2U9KDAsaS5EKShuZSwoKT0+e3BlKCEwKX0pO3JldHVybiBrZSgpLCgpPT57dmFyIEFlOyhBZT1rZT09bnVsbD92b2lkIDA6a2UuY2FuY2VsKT09PW51bGx8fEFlPT09dm9pZCAwfHxBZS5jYWxsKGtlKX19cGUoITEpfSxbbmUsc2VdKTtjb25zdCBhZT1yLnVzZU1lbW8oKCk9PnR5cGVvZiBvdCE9InVuZGVmaW5lZCImJiFxZSxbb3QscWVdKSx3ZT10KCkoTixNLHtbYCR7Tn0tc21gXTpFZT09PSJzbWFsbCIsW2Ake059LWxnYF06RWU9PT0ibGFyZ2UiLFtgJHtOfS1zcGlubmluZ2BdOl8sW2Ake059LXNob3ctdGV4dGBdOiEhUmUsW2Ake059LXJ0bGBdOms9PT0icnRsIn0sb2UsIXFlJiZmZSx1ZSwkKSxMZT10KCkoYCR7Tn0tY29udGFpbmVyYCx7W2Ake059LWJsdXJgXTpffSksTWU9KFA9X2UhPW51bGw/X2U6VSkhPT1udWxsJiZQIT09dm9pZCAwP1A6VyxiZT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sQSksWWUpLCRlPXIuY3JlYXRlRWxlbWVudCgiZGl2IixPYmplY3QuYXNzaWduKHt9LFNlLHtzdHlsZTpiZSxjbGFzc05hbWU6d2UsImFyaWEtbGl2ZSI6InBvbGl0ZSIsImFyaWEtYnVzeSI6X30pLHIuY3JlYXRlRWxlbWVudChPLHtwcmVmaXhDbHM6TixpbmRpY2F0b3I6TWUscGVyY2VudDpyZX0pLFJlJiYoYWV8fHFlKT9yLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpgJHtOfS10ZXh0YH0sUmUpOm51bGwpO3JldHVybiBRKGFlP3IuY3JlYXRlRWxlbWVudCgiZGl2IixPYmplY3QuYXNzaWduKHt9LFNlLHtjbGFzc05hbWU6dCgpKGAke059LW5lc3RlZC1sb2FkaW5nYCxCZSx1ZSwkKX0pLF8mJnIuY3JlYXRlRWxlbWVudCgiZGl2Iix7a2V5OiJsb2FkaW5nIn0sJGUpLHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOkxlLGtleToiY29udGFpbmVyIn0sb3QpKTpxZT9yLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTp0KCkoYCR7Tn0tZnVsbHNjcmVlbmAse1tgJHtOfS1mdWxsc2NyZWVuLXNob3dgXTpffSxmZSx1ZSwkKX0sJGUpOiRlKX07RC5zZXREZWZhdWx0SW5kaWNhdG9yPVo9PntXPVp9O3ZhciBWPUR9LDgwMTEwOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse2M6ZnVuY3Rpb24oKXtyZXR1cm4gdH19KTtmdW5jdGlvbiByKGkscyxhKXtjb25zdHtmb2N1c0VsQ2xzOnUsZm9jdXM6Yyxib3JkZXJFbENsczpofT1hLGQ9aD8iPiAqIjoiIixtPVsiaG92ZXIiLGM/ImZvY3VzIjpudWxsLCJhY3RpdmUiXS5maWx0ZXIoQm9vbGVhbikubWFwKEM9PmAmOiR7Q30gJHtkfWApLmpvaW4oIiwiKTtyZXR1cm57W2AmLWl0ZW06bm90KCR7c30tbGFzdC1pdGVtKWBdOnttYXJnaW5JbmxpbmVFbmQ6aS5jYWxjKGkubGluZVdpZHRoKS5tdWwoLTEpLmVxdWFsKCl9LCImLWl0ZW0iOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7W21dOnt6SW5kZXg6Mn19LHU/e1tgJiR7dX1gXTp7ekluZGV4OjJ9fTp7fSkse1tgJltkaXNhYmxlZF0gJHtkfWBdOnt6SW5kZXg6MH19KX19ZnVuY3Rpb24gbihpLHMsYSl7Y29uc3R7Ym9yZGVyRWxDbHM6dX09YSxjPXU/YD4gJHt1fWA6IiI7cmV0dXJue1tgJi1pdGVtOm5vdCgke3N9LWZpcnN0LWl0ZW0pOm5vdCgke3N9LWxhc3QtaXRlbSkgJHtjfWBdOntib3JkZXJSYWRpdXM6MH0sW2AmLWl0ZW06bm90KCR7c30tbGFzdC1pdGVtKSR7c30tZmlyc3QtaXRlbWBdOntbYCYgJHtjfSwgJiR7aX0tc20gJHtjfSwgJiR7aX0tbGcgJHtjfWBdOntib3JkZXJTdGFydEVuZFJhZGl1czowLGJvcmRlckVuZEVuZFJhZGl1czowfX0sW2AmLWl0ZW06bm90KCR7c30tZmlyc3QtaXRlbSkke3N9LWxhc3QtaXRlbWBdOntbYCYgJHtjfSwgJiR7aX0tc20gJHtjfSwgJiR7aX0tbGcgJHtjfWBdOntib3JkZXJTdGFydFN0YXJ0UmFkaXVzOjAsYm9yZGVyRW5kU3RhcnRSYWRpdXM6MH19fX1mdW5jdGlvbiB0KGkpe2xldCBzPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTp7Zm9jdXM6ITB9O2NvbnN0e2NvbXBvbmVudENsczphfT1pLHU9YCR7YX0tY29tcGFjdGA7cmV0dXJue1t1XTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30scihpLHUscykpLG4oYSx1LHMpKX19fSwxNDc0NzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtKVDpmdW5jdGlvbigpe3JldHVybiBkfSxMeDpmdW5jdGlvbigpe3JldHVybiBhfSxOZDpmdW5jdGlvbigpe3JldHVybiBtfSxReTpmdW5jdGlvbigpe3JldHVybiBofSxSbzpmdW5jdGlvbigpe3JldHVybiBpfSxXZjpmdW5jdGlvbigpe3JldHVybiB0fSxkRjpmdW5jdGlvbigpe3JldHVybiBzfSxkdTpmdW5jdGlvbigpe3JldHVybiB1fSxvTjpmdW5jdGlvbigpe3JldHVybiBjfSx2UzpmdW5jdGlvbigpe3JldHVybiBufX0pO3ZhciByPWUoMTE1NjgpO2NvbnN0IG49e292ZXJmbG93OiJoaWRkZW4iLHdoaXRlU3BhY2U6Im5vd3JhcCIsdGV4dE92ZXJmbG93OiJlbGxpcHNpcyJ9LHQ9ZnVuY3Rpb24oQyl7bGV0IGc9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOiExO3JldHVybntib3hTaXppbmc6ImJvcmRlci1ib3giLG1hcmdpbjowLHBhZGRpbmc6MCxjb2xvcjpDLmNvbG9yVGV4dCxmb250U2l6ZTpDLmZvbnRTaXplLGxpbmVIZWlnaHQ6Qy5saW5lSGVpZ2h0LGxpc3RTdHlsZToibm9uZSIsZm9udEZhbWlseTpnPyJpbmhlcml0IjpDLmZvbnRGYW1pbHl9fSxpPSgpPT4oe2Rpc3BsYXk6ImlubGluZS1mbGV4IixhbGlnbkl0ZW1zOiJjZW50ZXIiLGNvbG9yOiJpbmhlcml0Iixmb250U3R5bGU6Im5vcm1hbCIsbGluZUhlaWdodDowLHRleHRBbGlnbjoiY2VudGVyIix0ZXh0VHJhbnNmb3JtOiJub25lIix2ZXJ0aWNhbEFsaWduOiItMC4xMjVlbSIsdGV4dFJlbmRlcmluZzoib3B0aW1pemVMZWdpYmlsaXR5IiwiLXdlYmtpdC1mb250LXNtb290aGluZyI6ImFudGlhbGlhc2VkIiwiLW1vei1vc3gtZm9udC1zbW9vdGhpbmciOiJncmF5c2NhbGUiLCI+ICoiOntsaW5lSGVpZ2h0OjF9LHN2Zzp7ZGlzcGxheToiaW5saW5lLWJsb2NrIn19KSxzPSgpPT4oeyImOjpiZWZvcmUiOntkaXNwbGF5OiJ0YWJsZSIsY29udGVudDonIiInfSwiJjo6YWZ0ZXIiOntkaXNwbGF5OiJ0YWJsZSIsY2xlYXI6ImJvdGgiLGNvbnRlbnQ6JyIiJ319KSxhPUM9Pih7YTp7Y29sb3I6Qy5jb2xvckxpbmssdGV4dERlY29yYXRpb246Qy5saW5rRGVjb3JhdGlvbixiYWNrZ3JvdW5kQ29sb3I6InRyYW5zcGFyZW50IixvdXRsaW5lOiJub25lIixjdXJzb3I6InBvaW50ZXIiLHRyYW5zaXRpb246YGNvbG9yICR7Qy5tb3Rpb25EdXJhdGlvblNsb3d9YCwiLXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcCI6Im9iamVjdHMiLCImOmhvdmVyIjp7Y29sb3I6Qy5jb2xvckxpbmtIb3Zlcn0sIiY6YWN0aXZlIjp7Y29sb3I6Qy5jb2xvckxpbmtBY3RpdmV9LCImOmFjdGl2ZSwgJjpob3ZlciI6e3RleHREZWNvcmF0aW9uOkMubGlua0hvdmVyRGVjb3JhdGlvbixvdXRsaW5lOjB9LCImOmZvY3VzIjp7dGV4dERlY29yYXRpb246Qy5saW5rRm9jdXNEZWNvcmF0aW9uLG91dGxpbmU6MH0sIiZbZGlzYWJsZWRdIjp7Y29sb3I6Qy5jb2xvclRleHREaXNhYmxlZCxjdXJzb3I6Im5vdC1hbGxvd2VkIn19fSksdT0oQyxnLHcsRSk9Pntjb25zdCB4PWBbY2xhc3NePSIke2d9Il0sIFtjbGFzcyo9IiAke2d9Il1gLE89dz9gLiR7d31gOngsVD17Ym94U2l6aW5nOiJib3JkZXItYm94IiwiJjo6YmVmb3JlLCAmOjphZnRlciI6e2JveFNpemluZzoiYm9yZGVyLWJveCJ9fTtsZXQgUz17fTtyZXR1cm4gRSE9PSExJiYoUz17Zm9udEZhbWlseTpDLmZvbnRGYW1pbHksZm9udFNpemU6Qy5mb250U2l6ZX0pLHtbT106T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sUyksVCkse1t4XTpUfSl9fSxjPShDLGcpPT4oe291dGxpbmU6YCR7KDAsci5iZikoQy5saW5lV2lkdGhGb2N1cyl9IHNvbGlkICR7Qy5jb2xvclByaW1hcnlCb3JkZXJ9YCxvdXRsaW5lT2Zmc2V0OmchPW51bGw/ZzoxLHRyYW5zaXRpb246Im91dGxpbmUtb2Zmc2V0IDBzLCBvdXRsaW5lIDBzIn0pLGg9KEMsZyk9Pih7IiY6Zm9jdXMtdmlzaWJsZSI6T2JqZWN0LmFzc2lnbih7fSxjKEMsZykpfSksZD1DPT4oe1tgLiR7Q31gXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30saSgpKSx7W2AuJHtDfSAuJHtDfS1pY29uYF06e2Rpc3BsYXk6ImJsb2NrIn19KX0pLG09Qz0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHtjb2xvcjpDLmNvbG9yTGluayx0ZXh0RGVjb3JhdGlvbjpDLmxpbmtEZWNvcmF0aW9uLG91dGxpbmU6Im5vbmUiLGN1cnNvcjoicG9pbnRlciIsdHJhbnNpdGlvbjpgYWxsICR7Qy5tb3Rpb25EdXJhdGlvblNsb3d9YCxib3JkZXI6MCxwYWRkaW5nOjAsYmFja2dyb3VuZDoibm9uZSIsdXNlclNlbGVjdDoibm9uZSJ9LGgoQykpLHsiJjpmb2N1cywgJjpob3ZlciI6e2NvbG9yOkMuY29sb3JMaW5rSG92ZXJ9LCImOmFjdGl2ZSI6e2NvbG9yOkMuY29sb3JMaW5rQWN0aXZlfX0pfSwzMzUwNzpmdW5jdGlvbih5LHApeyJ1c2Ugc3RyaWN0Ijtjb25zdCBlPXI9Pih7W3IuY29tcG9uZW50Q2xzXTp7W2Ake3IuYW50Q2xzfS1tb3Rpb24tY29sbGFwc2UtbGVnYWN5YF06e292ZXJmbG93OiJoaWRkZW4iLCImLWFjdGl2ZSI6e3RyYW5zaXRpb246YGhlaWdodCAke3IubW90aW9uRHVyYXRpb25NaWR9ICR7ci5tb3Rpb25FYXNlSW5PdXR9LAorICAgICAgICBvcGFjaXR5ICR7ci5tb3Rpb25EdXJhdGlvbk1pZH0gJHtyLm1vdGlvbkVhc2VJbk91dH0gIWltcG9ydGFudGB9fSxbYCR7ci5hbnRDbHN9LW1vdGlvbi1jb2xsYXBzZWBdOntvdmVyZmxvdzoiaGlkZGVuIix0cmFuc2l0aW9uOmBoZWlnaHQgJHtyLm1vdGlvbkR1cmF0aW9uTWlkfSAke3IubW90aW9uRWFzZUluT3V0fSwKKyAgICAgICAgb3BhY2l0eSAke3IubW90aW9uRHVyYXRpb25NaWR9ICR7ci5tb3Rpb25FYXNlSW5PdXR9ICFpbXBvcnRhbnRgfX19KTtwLlo9ZX0sMTY5MzI6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7SiQ6ZnVuY3Rpb24oKXtyZXR1cm4gc319KTt2YXIgcj1lKDExNTY4KSxuPWUoOTM1OTApO2NvbnN0IHQ9bmV3IHIuRTQoImFudEZhZGVJbiIseyIwJSI6e29wYWNpdHk6MH0sIjEwMCUiOntvcGFjaXR5OjF9fSksaT1uZXcgci5FNCgiYW50RmFkZU91dCIseyIwJSI6e29wYWNpdHk6MX0sIjEwMCUiOntvcGFjaXR5OjB9fSkscz1mdW5jdGlvbihhKXtsZXQgdT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06ITE7Y29uc3R7YW50Q2xzOmN9PWEsaD1gJHtjfS1mYWRlYCxkPXU/IiYiOiIiO3JldHVyblsoMCxuLlIpKGgsdCxpLGEubW90aW9uRHVyYXRpb25NaWQsdSkse1tgCisgICAgICAgICR7ZH0ke2h9LWVudGVyLAorICAgICAgICAke2R9JHtofS1hcHBlYXIKKyAgICAgIGBdOntvcGFjaXR5OjAsYW5pbWF0aW9uVGltaW5nRnVuY3Rpb246ImxpbmVhciJ9LFtgJHtkfSR7aH0tbGVhdmVgXTp7YW5pbWF0aW9uVGltaW5nRnVuY3Rpb246ImxpbmVhciJ9fV19fSw5MzU5MDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtSOmZ1bmN0aW9uKCl7cmV0dXJuIHR9fSk7Y29uc3Qgcj1pPT4oe2FuaW1hdGlvbkR1cmF0aW9uOmksYW5pbWF0aW9uRmlsbE1vZGU6ImJvdGgifSksbj1pPT4oe2FuaW1hdGlvbkR1cmF0aW9uOmksYW5pbWF0aW9uRmlsbE1vZGU6ImJvdGgifSksdD1mdW5jdGlvbihpLHMsYSx1KXtjb25zdCBoPShhcmd1bWVudHMubGVuZ3RoPjQmJmFyZ3VtZW50c1s0XSE9PXZvaWQgMD9hcmd1bWVudHNbNF06ITEpPyImIjoiIjtyZXR1cm57W2AKKyAgICAgICR7aH0ke2l9LWVudGVyLAorICAgICAgJHtofSR7aX0tYXBwZWFyCisgICAgYF06T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHIodSkpLHthbmltYXRpb25QbGF5U3RhdGU6InBhdXNlZCJ9KSxbYCR7aH0ke2l9LWxlYXZlYF06T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG4odSkpLHthbmltYXRpb25QbGF5U3RhdGU6InBhdXNlZCJ9KSxbYAorICAgICAgJHtofSR7aX0tZW50ZXIke2l9LWVudGVyLWFjdGl2ZSwKKyAgICAgICR7aH0ke2l9LWFwcGVhciR7aX0tYXBwZWFyLWFjdGl2ZQorICAgIGBdOnthbmltYXRpb25OYW1lOnMsYW5pbWF0aW9uUGxheVN0YXRlOiJydW5uaW5nIn0sW2Ake2h9JHtpfS1sZWF2ZSR7aX0tbGVhdmUtYWN0aXZlYF06e2FuaW1hdGlvbk5hbWU6YSxhbmltYXRpb25QbGF5U3RhdGU6InJ1bm5pbmciLHBvaW50ZXJFdmVudHM6Im5vbmUifX19fSwzMzI5NzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtGbTpmdW5jdGlvbigpe3JldHVybiBDfX0pO3ZhciByPWUoMTE1NjgpLG49ZSg5MzU5MCk7Y29uc3QgdD1uZXcgci5FNCgiYW50TW92ZURvd25JbiIseyIwJSI6e3RyYW5zZm9ybToidHJhbnNsYXRlM2QoMCwgMTAwJSwgMCkiLHRyYW5zZm9ybU9yaWdpbjoiMCAwIixvcGFjaXR5OjB9LCIxMDAlIjp7dHJhbnNmb3JtOiJ0cmFuc2xhdGUzZCgwLCAwLCAwKSIsdHJhbnNmb3JtT3JpZ2luOiIwIDAiLG9wYWNpdHk6MX19KSxpPW5ldyByLkU0KCJhbnRNb3ZlRG93bk91dCIseyIwJSI6e3RyYW5zZm9ybToidHJhbnNsYXRlM2QoMCwgMCwgMCkiLHRyYW5zZm9ybU9yaWdpbjoiMCAwIixvcGFjaXR5OjF9LCIxMDAlIjp7dHJhbnNmb3JtOiJ0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKSIsdHJhbnNmb3JtT3JpZ2luOiIwIDAiLG9wYWNpdHk6MH19KSxzPW5ldyByLkU0KCJhbnRNb3ZlTGVmdEluIix7IjAlIjp7dHJhbnNmb3JtOiJ0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCkiLHRyYW5zZm9ybU9yaWdpbjoiMCAwIixvcGFjaXR5OjB9LCIxMDAlIjp7dHJhbnNmb3JtOiJ0cmFuc2xhdGUzZCgwLCAwLCAwKSIsdHJhbnNmb3JtT3JpZ2luOiIwIDAiLG9wYWNpdHk6MX19KSxhPW5ldyByLkU0KCJhbnRNb3ZlTGVmdE91dCIseyIwJSI6e3RyYW5zZm9ybToidHJhbnNsYXRlM2QoMCwgMCwgMCkiLHRyYW5zZm9ybU9yaWdpbjoiMCAwIixvcGFjaXR5OjF9LCIxMDAlIjp7dHJhbnNmb3JtOiJ0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCkiLHRyYW5zZm9ybU9yaWdpbjoiMCAwIixvcGFjaXR5OjB9fSksdT1uZXcgci5FNCgiYW50TW92ZVJpZ2h0SW4iLHsiMCUiOnt0cmFuc2Zvcm06InRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApIix0cmFuc2Zvcm1PcmlnaW46IjAgMCIsb3BhY2l0eTowfSwiMTAwJSI6e3RyYW5zZm9ybToidHJhbnNsYXRlM2QoMCwgMCwgMCkiLHRyYW5zZm9ybU9yaWdpbjoiMCAwIixvcGFjaXR5OjF9fSksYz1uZXcgci5FNCgiYW50TW92ZVJpZ2h0T3V0Iix7IjAlIjp7dHJhbnNmb3JtOiJ0cmFuc2xhdGUzZCgwLCAwLCAwKSIsdHJhbnNmb3JtT3JpZ2luOiIwIDAiLG9wYWNpdHk6MX0sIjEwMCUiOnt0cmFuc2Zvcm06InRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApIix0cmFuc2Zvcm1PcmlnaW46IjAgMCIsb3BhY2l0eTowfX0pLGg9bmV3IHIuRTQoImFudE1vdmVVcEluIix7IjAlIjp7dHJhbnNmb3JtOiJ0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCkiLHRyYW5zZm9ybU9yaWdpbjoiMCAwIixvcGFjaXR5OjB9LCIxMDAlIjp7dHJhbnNmb3JtOiJ0cmFuc2xhdGUzZCgwLCAwLCAwKSIsdHJhbnNmb3JtT3JpZ2luOiIwIDAiLG9wYWNpdHk6MX19KSxkPW5ldyByLkU0KCJhbnRNb3ZlVXBPdXQiLHsiMCUiOnt0cmFuc2Zvcm06InRyYW5zbGF0ZTNkKDAsIDAsIDApIix0cmFuc2Zvcm1PcmlnaW46IjAgMCIsb3BhY2l0eToxfSwiMTAwJSI6e3RyYW5zZm9ybToidHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApIix0cmFuc2Zvcm1PcmlnaW46IjAgMCIsb3BhY2l0eTowfX0pLG09eyJtb3ZlLXVwIjp7aW5LZXlmcmFtZXM6aCxvdXRLZXlmcmFtZXM6ZH0sIm1vdmUtZG93biI6e2luS2V5ZnJhbWVzOnQsb3V0S2V5ZnJhbWVzOml9LCJtb3ZlLWxlZnQiOntpbktleWZyYW1lczpzLG91dEtleWZyYW1lczphfSwibW92ZS1yaWdodCI6e2luS2V5ZnJhbWVzOnUsb3V0S2V5ZnJhbWVzOmN9fSxDPShnLHcpPT57Y29uc3R7YW50Q2xzOkV9PWcseD1gJHtFfS0ke3d9YCx7aW5LZXlmcmFtZXM6TyxvdXRLZXlmcmFtZXM6VH09bVt3XTtyZXR1cm5bKDAsbi5SKSh4LE8sVCxnLm1vdGlvbkR1cmF0aW9uTWlkKSx7W2AKKyAgICAgICAgJHt4fS1lbnRlciwKKyAgICAgICAgJHt4fS1hcHBlYXIKKyAgICAgIGBdOntvcGFjaXR5OjAsYW5pbWF0aW9uVGltaW5nRnVuY3Rpb246Zy5tb3Rpb25FYXNlT3V0Q2lyY30sW2Ake3h9LWxlYXZlYF06e2FuaW1hdGlvblRpbWluZ0Z1bmN0aW9uOmcubW90aW9uRWFzZUluT3V0Q2lyY319XX19LDY3NzcxOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1F0OmZ1bmN0aW9uKCl7cmV0dXJuIHN9LFV3OmZ1bmN0aW9uKCl7cmV0dXJuIGl9LGZKOmZ1bmN0aW9uKCl7cmV0dXJuIHR9LGx5OmZ1bmN0aW9uKCl7cmV0dXJuIGF9LG9OOmZ1bmN0aW9uKCl7cmV0dXJuIEN9fSk7dmFyIHI9ZSgxMTU2OCksbj1lKDkzNTkwKTtjb25zdCB0PW5ldyByLkU0KCJhbnRTbGlkZVVwSW4iLHsiMCUiOnt0cmFuc2Zvcm06InNjYWxlWSgwLjgpIix0cmFuc2Zvcm1PcmlnaW46IjAlIDAlIixvcGFjaXR5OjB9LCIxMDAlIjp7dHJhbnNmb3JtOiJzY2FsZVkoMSkiLHRyYW5zZm9ybU9yaWdpbjoiMCUgMCUiLG9wYWNpdHk6MX19KSxpPW5ldyByLkU0KCJhbnRTbGlkZVVwT3V0Iix7IjAlIjp7dHJhbnNmb3JtOiJzY2FsZVkoMSkiLHRyYW5zZm9ybU9yaWdpbjoiMCUgMCUiLG9wYWNpdHk6MX0sIjEwMCUiOnt0cmFuc2Zvcm06InNjYWxlWSgwLjgpIix0cmFuc2Zvcm1PcmlnaW46IjAlIDAlIixvcGFjaXR5OjB9fSkscz1uZXcgci5FNCgiYW50U2xpZGVEb3duSW4iLHsiMCUiOnt0cmFuc2Zvcm06InNjYWxlWSgwLjgpIix0cmFuc2Zvcm1PcmlnaW46IjEwMCUgMTAwJSIsb3BhY2l0eTowfSwiMTAwJSI6e3RyYW5zZm9ybToic2NhbGVZKDEpIix0cmFuc2Zvcm1PcmlnaW46IjEwMCUgMTAwJSIsb3BhY2l0eToxfX0pLGE9bmV3IHIuRTQoImFudFNsaWRlRG93bk91dCIseyIwJSI6e3RyYW5zZm9ybToic2NhbGVZKDEpIix0cmFuc2Zvcm1PcmlnaW46IjEwMCUgMTAwJSIsb3BhY2l0eToxfSwiMTAwJSI6e3RyYW5zZm9ybToic2NhbGVZKDAuOCkiLHRyYW5zZm9ybU9yaWdpbjoiMTAwJSAxMDAlIixvcGFjaXR5OjB9fSksdT1uZXcgci5FNCgiYW50U2xpZGVMZWZ0SW4iLHsiMCUiOnt0cmFuc2Zvcm06InNjYWxlWCgwLjgpIix0cmFuc2Zvcm1PcmlnaW46IjAlIDAlIixvcGFjaXR5OjB9LCIxMDAlIjp7dHJhbnNmb3JtOiJzY2FsZVgoMSkiLHRyYW5zZm9ybU9yaWdpbjoiMCUgMCUiLG9wYWNpdHk6MX19KSxjPW5ldyByLkU0KCJhbnRTbGlkZUxlZnRPdXQiLHsiMCUiOnt0cmFuc2Zvcm06InNjYWxlWCgxKSIsdHJhbnNmb3JtT3JpZ2luOiIwJSAwJSIsb3BhY2l0eToxfSwiMTAwJSI6e3RyYW5zZm9ybToic2NhbGVYKDAuOCkiLHRyYW5zZm9ybU9yaWdpbjoiMCUgMCUiLG9wYWNpdHk6MH19KSxoPW5ldyByLkU0KCJhbnRTbGlkZVJpZ2h0SW4iLHsiMCUiOnt0cmFuc2Zvcm06InNjYWxlWCgwLjgpIix0cmFuc2Zvcm1PcmlnaW46IjEwMCUgMCUiLG9wYWNpdHk6MH0sIjEwMCUiOnt0cmFuc2Zvcm06InNjYWxlWCgxKSIsdHJhbnNmb3JtT3JpZ2luOiIxMDAlIDAlIixvcGFjaXR5OjF9fSksZD1uZXcgci5FNCgiYW50U2xpZGVSaWdodE91dCIseyIwJSI6e3RyYW5zZm9ybToic2NhbGVYKDEpIix0cmFuc2Zvcm1PcmlnaW46IjEwMCUgMCUiLG9wYWNpdHk6MX0sIjEwMCUiOnt0cmFuc2Zvcm06InNjYWxlWCgwLjgpIix0cmFuc2Zvcm1PcmlnaW46IjEwMCUgMCUiLG9wYWNpdHk6MH19KSxtPXsic2xpZGUtdXAiOntpbktleWZyYW1lczp0LG91dEtleWZyYW1lczppfSwic2xpZGUtZG93biI6e2luS2V5ZnJhbWVzOnMsb3V0S2V5ZnJhbWVzOmF9LCJzbGlkZS1sZWZ0Ijp7aW5LZXlmcmFtZXM6dSxvdXRLZXlmcmFtZXM6Y30sInNsaWRlLXJpZ2h0Ijp7aW5LZXlmcmFtZXM6aCxvdXRLZXlmcmFtZXM6ZH19LEM9KGcsdyk9Pntjb25zdHthbnRDbHM6RX09Zyx4PWAke0V9LSR7d31gLHtpbktleWZyYW1lczpPLG91dEtleWZyYW1lczpUfT1tW3ddO3JldHVyblsoMCxuLlIpKHgsTyxULGcubW90aW9uRHVyYXRpb25NaWQpLHtbYAorICAgICAgJHt4fS1lbnRlciwKKyAgICAgICR7eH0tYXBwZWFyCisgICAgYF06e3RyYW5zZm9ybToic2NhbGUoMCkiLHRyYW5zZm9ybU9yaWdpbjoiMCUgMCUiLG9wYWNpdHk6MCxhbmltYXRpb25UaW1pbmdGdW5jdGlvbjpnLm1vdGlvbkVhc2VPdXRRdWludCwiJi1wcmVwYXJlIjp7dHJhbnNmb3JtOiJzY2FsZSgxKSJ9fSxbYCR7eH0tbGVhdmVgXTp7YW5pbWF0aW9uVGltaW5nRnVuY3Rpb246Zy5tb3Rpb25FYXNlSW5RdWludH19XX19LDUwNDM4OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse195OmZ1bmN0aW9uKCl7cmV0dXJuIHh9LGtyOmZ1bmN0aW9uKCl7cmV0dXJuIHR9fSk7dmFyIHI9ZSgxMTU2OCksbj1lKDkzNTkwKTtjb25zdCB0PW5ldyByLkU0KCJhbnRab29tSW4iLHsiMCUiOnt0cmFuc2Zvcm06InNjYWxlKDAuMikiLG9wYWNpdHk6MH0sIjEwMCUiOnt0cmFuc2Zvcm06InNjYWxlKDEpIixvcGFjaXR5OjF9fSksaT1uZXcgci5FNCgiYW50Wm9vbU91dCIseyIwJSI6e3RyYW5zZm9ybToic2NhbGUoMSkifSwiMTAwJSI6e3RyYW5zZm9ybToic2NhbGUoMC4yKSIsb3BhY2l0eTowfX0pLHM9bmV3IHIuRTQoImFudFpvb21CaWdJbiIseyIwJSI6e3RyYW5zZm9ybToic2NhbGUoMC44KSIsb3BhY2l0eTowfSwiMTAwJSI6e3RyYW5zZm9ybToic2NhbGUoMSkiLG9wYWNpdHk6MX19KSxhPW5ldyByLkU0KCJhbnRab29tQmlnT3V0Iix7IjAlIjp7dHJhbnNmb3JtOiJzY2FsZSgxKSJ9LCIxMDAlIjp7dHJhbnNmb3JtOiJzY2FsZSgwLjgpIixvcGFjaXR5OjB9fSksdT1uZXcgci5FNCgiYW50Wm9vbVVwSW4iLHsiMCUiOnt0cmFuc2Zvcm06InNjYWxlKDAuOCkiLHRyYW5zZm9ybU9yaWdpbjoiNTAlIDAlIixvcGFjaXR5OjB9LCIxMDAlIjp7dHJhbnNmb3JtOiJzY2FsZSgxKSIsdHJhbnNmb3JtT3JpZ2luOiI1MCUgMCUifX0pLGM9bmV3IHIuRTQoImFudFpvb21VcE91dCIseyIwJSI6e3RyYW5zZm9ybToic2NhbGUoMSkiLHRyYW5zZm9ybU9yaWdpbjoiNTAlIDAlIn0sIjEwMCUiOnt0cmFuc2Zvcm06InNjYWxlKDAuOCkiLHRyYW5zZm9ybU9yaWdpbjoiNTAlIDAlIixvcGFjaXR5OjB9fSksaD1uZXcgci5FNCgiYW50Wm9vbUxlZnRJbiIseyIwJSI6e3RyYW5zZm9ybToic2NhbGUoMC44KSIsdHJhbnNmb3JtT3JpZ2luOiIwJSA1MCUiLG9wYWNpdHk6MH0sIjEwMCUiOnt0cmFuc2Zvcm06InNjYWxlKDEpIix0cmFuc2Zvcm1PcmlnaW46IjAlIDUwJSJ9fSksZD1uZXcgci5FNCgiYW50Wm9vbUxlZnRPdXQiLHsiMCUiOnt0cmFuc2Zvcm06InNjYWxlKDEpIix0cmFuc2Zvcm1PcmlnaW46IjAlIDUwJSJ9LCIxMDAlIjp7dHJhbnNmb3JtOiJzY2FsZSgwLjgpIix0cmFuc2Zvcm1PcmlnaW46IjAlIDUwJSIsb3BhY2l0eTowfX0pLG09bmV3IHIuRTQoImFudFpvb21SaWdodEluIix7IjAlIjp7dHJhbnNmb3JtOiJzY2FsZSgwLjgpIix0cmFuc2Zvcm1PcmlnaW46IjEwMCUgNTAlIixvcGFjaXR5OjB9LCIxMDAlIjp7dHJhbnNmb3JtOiJzY2FsZSgxKSIsdHJhbnNmb3JtT3JpZ2luOiIxMDAlIDUwJSJ9fSksQz1uZXcgci5FNCgiYW50Wm9vbVJpZ2h0T3V0Iix7IjAlIjp7dHJhbnNmb3JtOiJzY2FsZSgxKSIsdHJhbnNmb3JtT3JpZ2luOiIxMDAlIDUwJSJ9LCIxMDAlIjp7dHJhbnNmb3JtOiJzY2FsZSgwLjgpIix0cmFuc2Zvcm1PcmlnaW46IjEwMCUgNTAlIixvcGFjaXR5OjB9fSksZz1uZXcgci5FNCgiYW50Wm9vbURvd25JbiIseyIwJSI6e3RyYW5zZm9ybToic2NhbGUoMC44KSIsdHJhbnNmb3JtT3JpZ2luOiI1MCUgMTAwJSIsb3BhY2l0eTowfSwiMTAwJSI6e3RyYW5zZm9ybToic2NhbGUoMSkiLHRyYW5zZm9ybU9yaWdpbjoiNTAlIDEwMCUifX0pLHc9bmV3IHIuRTQoImFudFpvb21Eb3duT3V0Iix7IjAlIjp7dHJhbnNmb3JtOiJzY2FsZSgxKSIsdHJhbnNmb3JtT3JpZ2luOiI1MCUgMTAwJSJ9LCIxMDAlIjp7dHJhbnNmb3JtOiJzY2FsZSgwLjgpIix0cmFuc2Zvcm1PcmlnaW46IjUwJSAxMDAlIixvcGFjaXR5OjB9fSksRT17em9vbTp7aW5LZXlmcmFtZXM6dCxvdXRLZXlmcmFtZXM6aX0sInpvb20tYmlnIjp7aW5LZXlmcmFtZXM6cyxvdXRLZXlmcmFtZXM6YX0sInpvb20tYmlnLWZhc3QiOntpbktleWZyYW1lczpzLG91dEtleWZyYW1lczphfSwiem9vbS1sZWZ0Ijp7aW5LZXlmcmFtZXM6aCxvdXRLZXlmcmFtZXM6ZH0sInpvb20tcmlnaHQiOntpbktleWZyYW1lczptLG91dEtleWZyYW1lczpDfSwiem9vbS11cCI6e2luS2V5ZnJhbWVzOnUsb3V0S2V5ZnJhbWVzOmN9LCJ6b29tLWRvd24iOntpbktleWZyYW1lczpnLG91dEtleWZyYW1lczp3fX0seD0oTyxUKT0+e2NvbnN0e2FudENsczpTfT1PLEw9YCR7U30tJHtUfWAse2luS2V5ZnJhbWVzOkksb3V0S2V5ZnJhbWVzOlJ9PUVbVF07cmV0dXJuWygwLG4uUikoTCxJLFIsVD09PSJ6b29tLWJpZy1mYXN0Ij9PLm1vdGlvbkR1cmF0aW9uRmFzdDpPLm1vdGlvbkR1cmF0aW9uTWlkKSx7W2AKKyAgICAgICAgJHtMfS1lbnRlciwKKyAgICAgICAgJHtMfS1hcHBlYXIKKyAgICAgIGBdOnt0cmFuc2Zvcm06InNjYWxlKDApIixvcGFjaXR5OjAsYW5pbWF0aW9uVGltaW5nRnVuY3Rpb246Ty5tb3Rpb25FYXNlT3V0Q2lyYywiJi1wcmVwYXJlIjp7dHJhbnNmb3JtOiJub25lIn19LFtgJHtMfS1sZWF2ZWBdOnthbmltYXRpb25UaW1pbmdGdW5jdGlvbjpPLm1vdGlvbkVhc2VJbk91dENpcmN9fV19fSw5NzQxNDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaUDpmdW5jdGlvbigpe3JldHVybiBhfSxxTjpmdW5jdGlvbigpe3JldHVybiB0fSx3WjpmdW5jdGlvbigpe3JldHVybiBpfX0pO3ZhciByPWUoMTE1NjgpLG49ZSg3OTUxMSk7Y29uc3QgdD04O2Z1bmN0aW9uIGkodSl7Y29uc3R7Y29udGVudFJhZGl1czpjLGxpbWl0VmVydGljYWxSYWRpdXM6aH09dSxkPWM+MTI/YysyOjEyO3JldHVybnthcnJvd09mZnNldEhvcml6b250YWw6ZCxhcnJvd09mZnNldFZlcnRpY2FsOmg/dDpkfX1mdW5jdGlvbiBzKHUsYyl7cmV0dXJuIHU/Yzp7fX1mdW5jdGlvbiBhKHUsYyxoKXtjb25zdHtjb21wb25lbnRDbHM6ZCxib3hTaGFkb3dQb3BvdmVyQXJyb3c6bSxhcnJvd09mZnNldFZlcnRpY2FsOkMsYXJyb3dPZmZzZXRIb3Jpem9udGFsOmd9PXUse2Fycm93RGlzdGFuY2U6dz0wLGFycm93UGxhY2VtZW50OkU9e2xlZnQ6ITAscmlnaHQ6ITAsdG9wOiEwLGJvdHRvbTohMH19PWh8fHt9O3JldHVybntbZF06T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7W2Ake2R9LWFycm93YF06W09iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7cG9zaXRpb246ImFic29sdXRlIix6SW5kZXg6MSxkaXNwbGF5OiJibG9jayJ9LCgwLG4uVykodSxjLG0pKSx7IiY6YmVmb3JlIjp7YmFja2dyb3VuZDpjfX0pXX0scyghIUUudG9wLHtbW2AmLXBsYWNlbWVudC10b3AgPiAke2R9LWFycm93YCxgJi1wbGFjZW1lbnQtdG9wTGVmdCA+ICR7ZH0tYXJyb3dgLGAmLXBsYWNlbWVudC10b3BSaWdodCA+ICR7ZH0tYXJyb3dgXS5qb2luKCIsIildOntib3R0b206dyx0cmFuc2Zvcm06InRyYW5zbGF0ZVkoMTAwJSkgcm90YXRlKDE4MGRlZykifSxbYCYtcGxhY2VtZW50LXRvcCA+ICR7ZH0tYXJyb3dgXTp7bGVmdDp7X3NraXBfY2hlY2tfOiEwLHZhbHVlOiI1MCUifSx0cmFuc2Zvcm06InRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgxMDAlKSByb3RhdGUoMTgwZGVnKSJ9LCImLXBsYWNlbWVudC10b3BMZWZ0Ijp7Ii0tYXJyb3ctb2Zmc2V0LWhvcml6b250YWwiOmcsW2A+ICR7ZH0tYXJyb3dgXTp7bGVmdDp7X3NraXBfY2hlY2tfOiEwLHZhbHVlOmd9fX0sIiYtcGxhY2VtZW50LXRvcFJpZ2h0Ijp7Ii0tYXJyb3ctb2Zmc2V0LWhvcml6b250YWwiOmBjYWxjKDEwMCUgLSAkeygwLHIuYmYpKGcpfSlgLFtgPiAke2R9LWFycm93YF06e3JpZ2h0Ontfc2tpcF9jaGVja186ITAsdmFsdWU6Z319fX0pKSxzKCEhRS5ib3R0b20se1tbYCYtcGxhY2VtZW50LWJvdHRvbSA+ICR7ZH0tYXJyb3dgLGAmLXBsYWNlbWVudC1ib3R0b21MZWZ0ID4gJHtkfS1hcnJvd2AsYCYtcGxhY2VtZW50LWJvdHRvbVJpZ2h0ID4gJHtkfS1hcnJvd2BdLmpvaW4oIiwiKV06e3RvcDp3LHRyYW5zZm9ybToidHJhbnNsYXRlWSgtMTAwJSkifSxbYCYtcGxhY2VtZW50LWJvdHRvbSA+ICR7ZH0tYXJyb3dgXTp7bGVmdDp7X3NraXBfY2hlY2tfOiEwLHZhbHVlOiI1MCUifSx0cmFuc2Zvcm06InRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtMTAwJSkifSwiJi1wbGFjZW1lbnQtYm90dG9tTGVmdCI6eyItLWFycm93LW9mZnNldC1ob3Jpem9udGFsIjpnLFtgPiAke2R9LWFycm93YF06e2xlZnQ6e19za2lwX2NoZWNrXzohMCx2YWx1ZTpnfX19LCImLXBsYWNlbWVudC1ib3R0b21SaWdodCI6eyItLWFycm93LW9mZnNldC1ob3Jpem9udGFsIjpgY2FsYygxMDAlIC0gJHsoMCxyLmJmKShnKX0pYCxbYD4gJHtkfS1hcnJvd2BdOntyaWdodDp7X3NraXBfY2hlY2tfOiEwLHZhbHVlOmd9fX19KSkscyghIUUubGVmdCx7W1tgJi1wbGFjZW1lbnQtbGVmdCA+ICR7ZH0tYXJyb3dgLGAmLXBsYWNlbWVudC1sZWZ0VG9wID4gJHtkfS1hcnJvd2AsYCYtcGxhY2VtZW50LWxlZnRCb3R0b20gPiAke2R9LWFycm93YF0uam9pbigiLCIpXTp7cmlnaHQ6e19za2lwX2NoZWNrXzohMCx2YWx1ZTp3fSx0cmFuc2Zvcm06InRyYW5zbGF0ZVgoMTAwJSkgcm90YXRlKDkwZGVnKSJ9LFtgJi1wbGFjZW1lbnQtbGVmdCA+ICR7ZH0tYXJyb3dgXTp7dG9wOntfc2tpcF9jaGVja186ITAsdmFsdWU6IjUwJSJ9LHRyYW5zZm9ybToidHJhbnNsYXRlWSgtNTAlKSB0cmFuc2xhdGVYKDEwMCUpIHJvdGF0ZSg5MGRlZykifSxbYCYtcGxhY2VtZW50LWxlZnRUb3AgPiAke2R9LWFycm93YF06e3RvcDpDfSxbYCYtcGxhY2VtZW50LWxlZnRCb3R0b20gPiAke2R9LWFycm93YF06e2JvdHRvbTpDfX0pKSxzKCEhRS5yaWdodCx7W1tgJi1wbGFjZW1lbnQtcmlnaHQgPiAke2R9LWFycm93YCxgJi1wbGFjZW1lbnQtcmlnaHRUb3AgPiAke2R9LWFycm93YCxgJi1wbGFjZW1lbnQtcmlnaHRCb3R0b20gPiAke2R9LWFycm93YF0uam9pbigiLCIpXTp7bGVmdDp7X3NraXBfY2hlY2tfOiEwLHZhbHVlOnd9LHRyYW5zZm9ybToidHJhbnNsYXRlWCgtMTAwJSkgcm90YXRlKC05MGRlZykifSxbYCYtcGxhY2VtZW50LXJpZ2h0ID4gJHtkfS1hcnJvd2BdOnt0b3A6e19za2lwX2NoZWNrXzohMCx2YWx1ZToiNTAlIn0sdHJhbnNmb3JtOiJ0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVgoLTEwMCUpIHJvdGF0ZSgtOTBkZWcpIn0sW2AmLXBsYWNlbWVudC1yaWdodFRvcCA+ICR7ZH0tYXJyb3dgXTp7dG9wOkN9LFtgJi1wbGFjZW1lbnQtcmlnaHRCb3R0b20gPiAke2R9LWFycm93YF06e2JvdHRvbTpDfX0pKX19fSw3OTUxMTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtXOmZ1bmN0aW9uKCl7cmV0dXJuIHR9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gbn19KTt2YXIgcj1lKDExNTY4KTtmdW5jdGlvbiBuKGkpe2NvbnN0e3NpemVQb3B1cEFycm93OnMsYm9yZGVyUmFkaXVzWFM6YSxib3JkZXJSYWRpdXNPdXRlcjp1fT1pLGM9cy8yLGg9MCxkPWMsbT11KjEvTWF0aC5zcXJ0KDIpLEM9Yy11KigxLTEvTWF0aC5zcXJ0KDIpKSxnPWMtYSooMS9NYXRoLnNxcnQoMikpLHc9dSooTWF0aC5zcXJ0KDIpLTEpK2EqKDEvTWF0aC5zcXJ0KDIpKSxFPTIqYy1nLHg9dyxPPTIqYy1tLFQ9QyxTPTIqYy1oLEw9ZCxJPWMqTWF0aC5zcXJ0KDIpK3UqKE1hdGguc3FydCgyKS0yKSxSPXUqKE1hdGguc3FydCgyKS0xKSx6PWBwb2x5Z29uKCR7Un1weCAxMDAlLCA1MCUgJHtSfXB4LCAkezIqYy1SfXB4IDEwMCUsICR7Un1weCAxMDAlKWAsRz1gcGF0aCgnTSAke2h9ICR7ZH0gQSAke3V9ICR7dX0gMCAwIDAgJHttfSAke0N9IEwgJHtnfSAke3d9IEEgJHthfSAke2F9IDAgMCAxICR7RX0gJHt4fSBMICR7T30gJHtUfSBBICR7dX0gJHt1fSAwIDAgMCAke1N9ICR7TH0gWicpYDtyZXR1cm57YXJyb3dTaGFkb3dXaWR0aDpJLGFycm93UGF0aDpHLGFycm93UG9seWdvbjp6fX1jb25zdCB0PShpLHMsYSk9Pntjb25zdHtzaXplUG9wdXBBcnJvdzp1LGFycm93UG9seWdvbjpjLGFycm93UGF0aDpoLGFycm93U2hhZG93V2lkdGg6ZCxib3JkZXJSYWRpdXNYUzptLGNhbGM6Q309aTtyZXR1cm57cG9pbnRlckV2ZW50czoibm9uZSIsd2lkdGg6dSxoZWlnaHQ6dSxvdmVyZmxvdzoiaGlkZGVuIiwiJjo6YmVmb3JlIjp7cG9zaXRpb246ImFic29sdXRlIixib3R0b206MCxpbnNldElubGluZVN0YXJ0OjAsd2lkdGg6dSxoZWlnaHQ6Qyh1KS5kaXYoMikuZXF1YWwoKSxiYWNrZ3JvdW5kOnMsY2xpcFBhdGg6e19tdWx0aV92YWx1ZV86ITAsdmFsdWU6W2MsaF19LGNvbnRlbnQ6JyIiJ30sIiY6OmFmdGVyIjp7Y29udGVudDonIiInLHBvc2l0aW9uOiJhYnNvbHV0ZSIsd2lkdGg6ZCxoZWlnaHQ6ZCxib3R0b206MCxpbnNldElubGluZTowLG1hcmdpbjoiYXV0byIsYm9yZGVyUmFkaXVzOntfc2tpcF9jaGVja186ITAsdmFsdWU6YDAgMCAkeygwLHIuYmYpKG0pfSAwYH0sdHJhbnNmb3JtOiJ0cmFuc2xhdGVZKDUwJSkgcm90YXRlKC0xMzVkZWcpIixib3hTaGFkb3c6YSx6SW5kZXg6MCxiYWNrZ3JvdW5kOiJ0cmFuc3BhcmVudCJ9fX19LDcyMjY5OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1o6ZnVuY3Rpb24oKXtyZXR1cm4gan19KTt2YXIgcj1lKDY3Mjk0KSxuPWUoNTA4ODgpLHQ9ZSg5Mzk2NyksaT1lLm4odCkscz1lKDg3NDYyKSxhPWUoNDk0MiksdT1lKDk3Njg1KSxjPWUoOTEpLGg9ZSgyMTc3MCksZD1lKDE1MTA1KSxtPVsicHJlZml4Q2xzIiwiY2xhc3NOYW1lIiwiY2hlY2tlZCIsImRlZmF1bHRDaGVja2VkIiwiZGlzYWJsZWQiLCJsb2FkaW5nSWNvbiIsImNoZWNrZWRDaGlsZHJlbiIsInVuQ2hlY2tlZENoaWxkcmVuIiwib25DbGljayIsIm9uQ2hhbmdlIiwib25LZXlEb3duIl0sQz1yLmZvcndhcmRSZWYoZnVuY3Rpb24oRCxWKXt2YXIgWixQPUQucHJlZml4Q2xzLEs9UD09PXZvaWQgMD8icmMtc3dpdGNoIjpQLHNlPUQuY2xhc3NOYW1lLG5lPUQuY2hlY2tlZCxvZT1ELmRlZmF1bHRDaGVja2VkLGZlPUQuZGlzYWJsZWQsRWU9RC5sb2FkaW5nSWNvbixSZT1ELmNoZWNrZWRDaGlsZHJlbixCZT1ELnVuQ2hlY2tlZENoaWxkcmVuLFllPUQub25DbGljayxvdD1ELm9uQ2hhbmdlLHFlPUQub25LZXlEb3duLF9lPSgwLGMuWikoRCxtKSxGZT0oMCxoLlopKCExLHt2YWx1ZTpuZSxkZWZhdWx0VmFsdWU6b2V9KSxTZT0oMCx1LlopKEZlLDIpLHE9U2VbMF0saz1TZVsxXTtmdW5jdGlvbiBNKFEsdWUpe3ZhciAkPXE7cmV0dXJuIGZlfHwoJD1RLGsoJCksb3Q9PW51bGx8fG90KCQsdWUpKSwkfWZ1bmN0aW9uIEEoUSl7US53aGljaD09PWQuWi5MRUZUP00oITEsUSk6US53aGljaD09PWQuWi5SSUdIVCYmTSghMCxRKSxxZT09bnVsbHx8cWUoUSl9ZnVuY3Rpb24gVShRKXt2YXIgdWU9TSghcSxRKTtZZT09bnVsbHx8WWUodWUsUSl9dmFyIE49aSgpKEssc2UsKFo9e30sKDAsYS5aKShaLCIiLmNvbmNhdChLLCItY2hlY2tlZCIpLHEpLCgwLGEuWikoWiwiIi5jb25jYXQoSywiLWRpc2FibGVkIiksZmUpLFopKTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KCJidXR0b24iLCgwLHMuWikoe30sX2Use3R5cGU6ImJ1dHRvbiIscm9sZToic3dpdGNoIiwiYXJpYS1jaGVja2VkIjpxLGRpc2FibGVkOmZlLGNsYXNzTmFtZTpOLHJlZjpWLG9uS2V5RG93bjpBLG9uQ2xpY2s6VX0pLEVlLHIuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToiIi5jb25jYXQoSywiLWlubmVyIil9LHIuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToiIi5jb25jYXQoSywiLWlubmVyLWNoZWNrZWQiKX0sUmUpLHIuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToiIi5jb25jYXQoSywiLWlubmVyLXVuY2hlY2tlZCIpfSxCZSkpKX0pO0MuZGlzcGxheU5hbWU9IlN3aXRjaCI7dmFyIGc9Qyx3PWUoNDUzNTMpLEU9ZSg1MzEyNCkseD1lKDk4ODY2KSxPPWUoOTg2NzUpLFQ9ZSgxMTU2OCksUz1lKDE1MDYzKSxMPWUoMTQ3NDcpLEk9ZSg4MzU1OSksUj1lKDgzMjYyKTtjb25zdCB6PUQ9Pntjb25zdHtjb21wb25lbnRDbHM6Vix0cmFja0hlaWdodFNNOlosdHJhY2tQYWRkaW5nOlAsdHJhY2tNaW5XaWR0aFNNOkssaW5uZXJNaW5NYXJnaW5TTTpzZSxpbm5lck1heE1hcmdpblNNOm5lLGhhbmRsZVNpemVTTTpvZSxjYWxjOmZlfT1ELEVlPWAke1Z9LWlubmVyYCxSZT0oMCxULmJmKShmZShvZSkuYWRkKGZlKFApLm11bCgyKSkuZXF1YWwoKSksQmU9KDAsVC5iZikoZmUobmUpLm11bCgyKS5lcXVhbCgpKTtyZXR1cm57W1ZdOntbYCYke1Z9LXNtYWxsYF06e21pbldpZHRoOkssaGVpZ2h0OlosbGluZUhlaWdodDooMCxULmJmKShaKSxbYCR7Vn0taW5uZXJgXTp7cGFkZGluZ0lubGluZVN0YXJ0Om5lLHBhZGRpbmdJbmxpbmVFbmQ6c2UsW2Ake0VlfS1jaGVja2VkLCAke0VlfS11bmNoZWNrZWRgXTp7bWluSGVpZ2h0Olp9LFtgJHtFZX0tY2hlY2tlZGBdOnttYXJnaW5JbmxpbmVTdGFydDpgY2FsYygtMTAwJSArICR7UmV9IC0gJHtCZX0pYCxtYXJnaW5JbmxpbmVFbmQ6YGNhbGMoMTAwJSAtICR7UmV9ICsgJHtCZX0pYH0sW2Ake0VlfS11bmNoZWNrZWRgXTp7bWFyZ2luVG9wOmZlKFopLm11bCgtMSkuZXF1YWwoKSxtYXJnaW5JbmxpbmVTdGFydDowLG1hcmdpbklubGluZUVuZDowfX0sW2Ake1Z9LWhhbmRsZWBdOnt3aWR0aDpvZSxoZWlnaHQ6b2V9LFtgJHtWfS1sb2FkaW5nLWljb25gXTp7dG9wOmZlKGZlKG9lKS5zdWIoRC5zd2l0Y2hMb2FkaW5nSWNvblNpemUpKS5kaXYoMikuZXF1YWwoKSxmb250U2l6ZTpELnN3aXRjaExvYWRpbmdJY29uU2l6ZX0sW2AmJHtWfS1jaGVja2VkYF06e1tgJHtWfS1pbm5lcmBdOntwYWRkaW5nSW5saW5lU3RhcnQ6c2UscGFkZGluZ0lubGluZUVuZDpuZSxbYCR7RWV9LWNoZWNrZWRgXTp7bWFyZ2luSW5saW5lU3RhcnQ6MCxtYXJnaW5JbmxpbmVFbmQ6MH0sW2Ake0VlfS11bmNoZWNrZWRgXTp7bWFyZ2luSW5saW5lU3RhcnQ6YGNhbGMoMTAwJSAtICR7UmV9ICsgJHtCZX0pYCxtYXJnaW5JbmxpbmVFbmQ6YGNhbGMoLTEwMCUgKyAke1JlfSAtICR7QmV9KWB9fSxbYCR7Vn0taGFuZGxlYF06e2luc2V0SW5saW5lU3RhcnQ6YGNhbGMoMTAwJSAtICR7KDAsVC5iZikoZmUob2UpLmFkZChQKS5lcXVhbCgpKX0pYH19LFtgJjpub3QoJHtWfS1kaXNhYmxlZCk6YWN0aXZlYF06e1tgJjpub3QoJHtWfS1jaGVja2VkKSAke0VlfWBdOntbYCR7RWV9LXVuY2hlY2tlZGBdOnttYXJnaW5JbmxpbmVTdGFydDpmZShELm1hcmdpblhYUykuZGl2KDIpLmVxdWFsKCksbWFyZ2luSW5saW5lRW5kOmZlKEQubWFyZ2luWFhTKS5tdWwoLTEpLmRpdigyKS5lcXVhbCgpfX0sW2AmJHtWfS1jaGVja2VkICR7RWV9YF06e1tgJHtFZX0tY2hlY2tlZGBdOnttYXJnaW5JbmxpbmVTdGFydDpmZShELm1hcmdpblhYUykubXVsKC0xKS5kaXYoMikuZXF1YWwoKSxtYXJnaW5JbmxpbmVFbmQ6ZmUoRC5tYXJnaW5YWFMpLmRpdigyKS5lcXVhbCgpfX19fX19fSxHPUQ9Pntjb25zdHtjb21wb25lbnRDbHM6VixoYW5kbGVTaXplOlosY2FsYzpQfT1EO3JldHVybntbVl06e1tgJHtWfS1sb2FkaW5nLWljb24ke0QuaWNvbkNsc31gXTp7cG9zaXRpb246InJlbGF0aXZlIix0b3A6UChQKFopLnN1YihELmZvbnRTaXplKSkuZGl2KDIpLmVxdWFsKCksY29sb3I6RC5zd2l0Y2hMb2FkaW5nSWNvbkNvbG9yLHZlcnRpY2FsQWxpZ246InRvcCJ9LFtgJiR7Vn0tY2hlY2tlZCAke1Z9LWxvYWRpbmctaWNvbmBdOntjb2xvcjpELnN3aXRjaENvbG9yfX19fSxZPUQ9Pntjb25zdHtjb21wb25lbnRDbHM6Vix0cmFja1BhZGRpbmc6WixoYW5kbGVCZzpQLGhhbmRsZVNoYWRvdzpLLGhhbmRsZVNpemU6c2UsY2FsYzpuZX09RCxvZT1gJHtWfS1oYW5kbGVgO3JldHVybntbVl06e1tvZV06e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOlosaW5zZXRJbmxpbmVTdGFydDpaLHdpZHRoOnNlLGhlaWdodDpzZSx0cmFuc2l0aW9uOmBhbGwgJHtELnN3aXRjaER1cmF0aW9ufSBlYXNlLWluLW91dGAsIiY6OmJlZm9yZSI6e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOjAsaW5zZXRJbmxpbmVFbmQ6MCxib3R0b206MCxpbnNldElubGluZVN0YXJ0OjAsYmFja2dyb3VuZENvbG9yOlAsYm9yZGVyUmFkaXVzOm5lKHNlKS5kaXYoMikuZXF1YWwoKSxib3hTaGFkb3c6Syx0cmFuc2l0aW9uOmBhbGwgJHtELnN3aXRjaER1cmF0aW9ufSBlYXNlLWluLW91dGAsY29udGVudDonIiInfX0sW2AmJHtWfS1jaGVja2VkICR7b2V9YF06e2luc2V0SW5saW5lU3RhcnQ6YGNhbGMoMTAwJSAtICR7KDAsVC5iZikobmUoc2UpLmFkZChaKS5lcXVhbCgpKX0pYH0sW2AmOm5vdCgke1Z9LWRpc2FibGVkKTphY3RpdmVgXTp7W2Ake29lfTo6YmVmb3JlYF06e2luc2V0SW5saW5lRW5kOkQuc3dpdGNoSGFuZGxlQWN0aXZlSW5zZXQsaW5zZXRJbmxpbmVTdGFydDowfSxbYCYke1Z9LWNoZWNrZWQgJHtvZX06OmJlZm9yZWBdOntpbnNldElubGluZUVuZDowLGluc2V0SW5saW5lU3RhcnQ6RC5zd2l0Y2hIYW5kbGVBY3RpdmVJbnNldH19fX19LGVlPUQ9Pntjb25zdHtjb21wb25lbnRDbHM6Vix0cmFja0hlaWdodDpaLHRyYWNrUGFkZGluZzpQLGlubmVyTWluTWFyZ2luOkssaW5uZXJNYXhNYXJnaW46c2UsaGFuZGxlU2l6ZTpuZSxjYWxjOm9lfT1ELGZlPWAke1Z9LWlubmVyYCxFZT0oMCxULmJmKShvZShuZSkuYWRkKG9lKFApLm11bCgyKSkuZXF1YWwoKSksUmU9KDAsVC5iZikob2Uoc2UpLm11bCgyKS5lcXVhbCgpKTtyZXR1cm57W1ZdOntbZmVdOntkaXNwbGF5OiJibG9jayIsb3ZlcmZsb3c6ImhpZGRlbiIsYm9yZGVyUmFkaXVzOjEwMCxoZWlnaHQ6IjEwMCUiLHBhZGRpbmdJbmxpbmVTdGFydDpzZSxwYWRkaW5nSW5saW5lRW5kOkssdHJhbnNpdGlvbjpgcGFkZGluZy1pbmxpbmUtc3RhcnQgJHtELnN3aXRjaER1cmF0aW9ufSBlYXNlLWluLW91dCwgcGFkZGluZy1pbmxpbmUtZW5kICR7RC5zd2l0Y2hEdXJhdGlvbn0gZWFzZS1pbi1vdXRgLFtgJHtmZX0tY2hlY2tlZCwgJHtmZX0tdW5jaGVja2VkYF06e2Rpc3BsYXk6ImJsb2NrIixjb2xvcjpELmNvbG9yVGV4dExpZ2h0U29saWQsZm9udFNpemU6RC5mb250U2l6ZVNNLHRyYW5zaXRpb246YG1hcmdpbi1pbmxpbmUtc3RhcnQgJHtELnN3aXRjaER1cmF0aW9ufSBlYXNlLWluLW91dCwgbWFyZ2luLWlubGluZS1lbmQgJHtELnN3aXRjaER1cmF0aW9ufSBlYXNlLWluLW91dGAscG9pbnRlckV2ZW50czoibm9uZSIsbWluSGVpZ2h0Olp9LFtgJHtmZX0tY2hlY2tlZGBdOnttYXJnaW5JbmxpbmVTdGFydDpgY2FsYygtMTAwJSArICR7RWV9IC0gJHtSZX0pYCxtYXJnaW5JbmxpbmVFbmQ6YGNhbGMoMTAwJSAtICR7RWV9ICsgJHtSZX0pYH0sW2Ake2ZlfS11bmNoZWNrZWRgXTp7bWFyZ2luVG9wOm9lKFopLm11bCgtMSkuZXF1YWwoKSxtYXJnaW5JbmxpbmVTdGFydDowLG1hcmdpbklubGluZUVuZDowfX0sW2AmJHtWfS1jaGVja2VkICR7ZmV9YF06e3BhZGRpbmdJbmxpbmVTdGFydDpLLHBhZGRpbmdJbmxpbmVFbmQ6c2UsW2Ake2ZlfS1jaGVja2VkYF06e21hcmdpbklubGluZVN0YXJ0OjAsbWFyZ2luSW5saW5lRW5kOjB9LFtgJHtmZX0tdW5jaGVja2VkYF06e21hcmdpbklubGluZVN0YXJ0OmBjYWxjKDEwMCUgLSAke0VlfSArICR7UmV9KWAsbWFyZ2luSW5saW5lRW5kOmBjYWxjKC0xMDAlICsgJHtFZX0gLSAke1JlfSlgfX0sW2AmOm5vdCgke1Z9LWRpc2FibGVkKTphY3RpdmVgXTp7W2AmOm5vdCgke1Z9LWNoZWNrZWQpICR7ZmV9YF06e1tgJHtmZX0tdW5jaGVja2VkYF06e21hcmdpbklubGluZVN0YXJ0Om9lKFApLm11bCgyKS5lcXVhbCgpLG1hcmdpbklubGluZUVuZDpvZShQKS5tdWwoLTEpLm11bCgyKS5lcXVhbCgpfX0sW2AmJHtWfS1jaGVja2VkICR7ZmV9YF06e1tgJHtmZX0tY2hlY2tlZGBdOnttYXJnaW5JbmxpbmVTdGFydDpvZShQKS5tdWwoLTEpLm11bCgyKS5lcXVhbCgpLG1hcmdpbklubGluZUVuZDpvZShQKS5tdWwoMikuZXF1YWwoKX19fX19fSxKPUQ9Pntjb25zdHtjb21wb25lbnRDbHM6Vix0cmFja0hlaWdodDpaLHRyYWNrTWluV2lkdGg6UH09RDtyZXR1cm57W1ZdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sKDAsTC5XZikoRCkpLHtwb3NpdGlvbjoicmVsYXRpdmUiLGRpc3BsYXk6ImlubGluZS1ibG9jayIsYm94U2l6aW5nOiJib3JkZXItYm94IixtaW5XaWR0aDpQLGhlaWdodDpaLGxpbmVIZWlnaHQ6KDAsVC5iZikoWiksdmVydGljYWxBbGlnbjoibWlkZGxlIixiYWNrZ3JvdW5kOkQuY29sb3JUZXh0UXVhdGVybmFyeSxib3JkZXI6IjAiLGJvcmRlclJhZGl1czoxMDAsY3Vyc29yOiJwb2ludGVyIix0cmFuc2l0aW9uOmBhbGwgJHtELm1vdGlvbkR1cmF0aW9uTWlkfWAsdXNlclNlbGVjdDoibm9uZSIsW2AmOmhvdmVyOm5vdCgke1Z9LWRpc2FibGVkKWBdOntiYWNrZ3JvdW5kOkQuY29sb3JUZXh0VGVydGlhcnl9fSksKDAsTC5ReSkoRCkpLHtbYCYke1Z9LWNoZWNrZWRgXTp7YmFja2dyb3VuZDpELnN3aXRjaENvbG9yLFtgJjpob3Zlcjpub3QoJHtWfS1kaXNhYmxlZClgXTp7YmFja2dyb3VuZDpELmNvbG9yUHJpbWFyeUhvdmVyfX0sW2AmJHtWfS1sb2FkaW5nLCAmJHtWfS1kaXNhYmxlZGBdOntjdXJzb3I6Im5vdC1hbGxvd2VkIixvcGFjaXR5OkQuc3dpdGNoRGlzYWJsZWRPcGFjaXR5LCIqIjp7Ym94U2hhZG93OiJub25lIixjdXJzb3I6Im5vdC1hbGxvd2VkIn19LFtgJiR7Vn0tcnRsYF06e2RpcmVjdGlvbjoicnRsIn19KX19LG1lPUQ9Pntjb25zdHtmb250U2l6ZTpWLGxpbmVIZWlnaHQ6Wixjb250cm9sSGVpZ2h0OlAsY29sb3JXaGl0ZTpLfT1ELHNlPVYqWixuZT1QLzIsb2U9MixmZT1zZS1vZSoyLEVlPW5lLW9lKjI7cmV0dXJue3RyYWNrSGVpZ2h0OnNlLHRyYWNrSGVpZ2h0U006bmUsdHJhY2tNaW5XaWR0aDpmZSoyK29lKjQsdHJhY2tNaW5XaWR0aFNNOkVlKjIrb2UqMix0cmFja1BhZGRpbmc6b2UsaGFuZGxlQmc6SyxoYW5kbGVTaXplOmZlLGhhbmRsZVNpemVTTTpFZSxoYW5kbGVTaGFkb3c6YDAgMnB4IDRweCAwICR7bmV3IFMudCgiIzAwMjMwYiIpLnNldEEoLjIpLnRvUmdiU3RyaW5nKCl9YCxpbm5lck1pbk1hcmdpbjpmZS8yLGlubmVyTWF4TWFyZ2luOmZlK29lK29lKjIsaW5uZXJNaW5NYXJnaW5TTTpFZS8yLGlubmVyTWF4TWFyZ2luU006RWUrb2Urb2UqMn19O3ZhciB0ZT0oMCxJLkkkKSgiU3dpdGNoIixEPT57Y29uc3QgVj0oMCxSLklYKShELHtzd2l0Y2hEdXJhdGlvbjpELm1vdGlvbkR1cmF0aW9uTWlkLHN3aXRjaENvbG9yOkQuY29sb3JQcmltYXJ5LHN3aXRjaERpc2FibGVkT3BhY2l0eTpELm9wYWNpdHlMb2FkaW5nLHN3aXRjaExvYWRpbmdJY29uU2l6ZTpELmNhbGMoRC5mb250U2l6ZUljb24pLm11bCguNzUpLmVxdWFsKCksc3dpdGNoTG9hZGluZ0ljb25Db2xvcjpgcmdiYSgwLCAwLCAwLCAke0Qub3BhY2l0eUxvYWRpbmd9KWAsc3dpdGNoSGFuZGxlQWN0aXZlSW5zZXQ6Ii0zMCUifSk7cmV0dXJuW0ooViksZWUoViksWShWKSxHKFYpLHooVildfSxtZSksbGU9ZnVuY3Rpb24oRCxWKXt2YXIgWj17fTtmb3IodmFyIFAgaW4gRClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoRCxQKSYmVi5pbmRleE9mKFApPDAmJihaW1BdPURbUF0pO2lmKEQhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgSz0wLFA9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhEKTtLPFAubGVuZ3RoO0srKylWLmluZGV4T2YoUFtLXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKEQsUFtLXSkmJihaW1BbS11dPURbUFtLXV0pO3JldHVybiBafTtjb25zdCBXPXIuZm9yd2FyZFJlZigoRCxWKT0+e2NvbnN0e3ByZWZpeENsczpaLHNpemU6UCxkaXNhYmxlZDpLLGxvYWRpbmc6c2UsY2xhc3NOYW1lOm5lLHJvb3RDbGFzc05hbWU6b2Usc3R5bGU6ZmUsY2hlY2tlZDpFZSx2YWx1ZTpSZSxkZWZhdWx0Q2hlY2tlZDpCZSxkZWZhdWx0VmFsdWU6WWUsb25DaGFuZ2U6b3R9PUQscWU9bGUoRCxbInByZWZpeENscyIsInNpemUiLCJkaXNhYmxlZCIsImxvYWRpbmciLCJjbGFzc05hbWUiLCJyb290Q2xhc3NOYW1lIiwic3R5bGUiLCJjaGVja2VkIiwidmFsdWUiLCJkZWZhdWx0Q2hlY2tlZCIsImRlZmF1bHRWYWx1ZSIsIm9uQ2hhbmdlIl0pLFtfZSxGZV09KDAsaC5aKSghMSx7dmFsdWU6RWUhPW51bGw/RWU6UmUsZGVmYXVsdFZhbHVlOkJlIT1udWxsP0JlOlllfSkse2dldFByZWZpeENsczpTZSxkaXJlY3Rpb246cSxzd2l0Y2g6a309ci51c2VDb250ZXh0KEUuRV8pLE09ci51c2VDb250ZXh0KHguWiksQT0oSyE9bnVsbD9LOk0pfHxzZSxVPVNlKCJzd2l0Y2giLFopLE49ci5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YCR7VX0taGFuZGxlYH0sc2UmJnIuY3JlYXRlRWxlbWVudChuLlose2NsYXNzTmFtZTpgJHtVfS1sb2FkaW5nLWljb25gfSkpLFtRLHVlLCRdPXRlKFUpLF89KDAsTy5aKShQKSxwZT1pKCkoaz09bnVsbD92b2lkIDA6ay5jbGFzc05hbWUse1tgJHtVfS1zbWFsbGBdOl89PT0ic21hbGwiLFtgJHtVfS1sb2FkaW5nYF06c2UsW2Ake1V9LXJ0bGBdOnE9PT0icnRsIn0sbmUsb2UsdWUsJCkscmU9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGs9PW51bGw/dm9pZCAwOmsuc3R5bGUpLGZlKSxhZT1mdW5jdGlvbigpe0ZlKGFyZ3VtZW50cy5sZW5ndGg8PTA/dm9pZCAwOmFyZ3VtZW50c1swXSksb3Q9PW51bGx8fG90LmFwcGx5KHZvaWQgMCxhcmd1bWVudHMpfTtyZXR1cm4gUShyLmNyZWF0ZUVsZW1lbnQody5aLHtjb21wb25lbnQ6IlN3aXRjaCJ9LHIuY3JlYXRlRWxlbWVudChnLE9iamVjdC5hc3NpZ24oe30scWUse2NoZWNrZWQ6X2Usb25DaGFuZ2U6YWUscHJlZml4Q2xzOlUsY2xhc3NOYW1lOnBlLHN0eWxlOnJlLGRpc2FibGVkOkEscmVmOlYsbG9hZGluZ0ljb246Tn0pKSkpfSk7Vy5fX0FOVF9TV0lUQ0g9ITA7dmFyIGo9V30sMzMwODM6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7TWo6ZnVuY3Rpb24oKXtyZXR1cm4gaX0sdV86ZnVuY3Rpb24oKXtyZXR1cm4gdH19KTt2YXIgcj1lKDY3Mjk0KSxuPWUoMjc5MCk7Y29uc3QgdD17dG9rZW46bi5aLG92ZXJyaWRlOntvdmVycmlkZTpuLlp9LGhhc2hlZDohMH0saT1yLmNyZWF0ZUNvbnRleHQodCl9LDkzNjE6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiBZfX0pO3ZhciByPWUoMTE1NjgpLG49ZSgzMTU2NyksdD1lKDI3OTApLGk9ZSg5MjM3MiksYT1lZT0+e2NvbnN0IEo9ZWUhPW51bGwmJmVlLmFsZ29yaXRobT8oMCxyLmpHKShlZS5hbGdvcml0aG0pOm4uWixtZT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5aKSxlZT09bnVsbD92b2lkIDA6ZWUudG9rZW4pO3JldHVybigwLHIudDIpKG1lLHtvdmVycmlkZTplZT09bnVsbD92b2lkIDA6ZWUudG9rZW59LEosaS5aKX0sdT1lKDI5NjkxKSxjPWUoMzMwODMpLGg9ZSg2NzE2NCksZD1lKDM3MiksbT1lKDY5NTk0KTtmdW5jdGlvbiBDKGVlKXtjb25zdHtzaXplVW5pdDpKLHNpemVTdGVwOm1lfT1lZSx0ZT1tZS0yO3JldHVybntzaXplWFhMOkoqKHRlKzEwKSxzaXplWEw6SioodGUrNiksc2l6ZUxHOkoqKHRlKzIpLHNpemVNRDpKKih0ZSsyKSxzaXplTVM6SioodGUrMSksc2l6ZTpKKnRlLHNpemVTTTpKKnRlLHNpemVYUzpKKih0ZS0xKSxzaXplWFhTOkoqKHRlLTEpfX12YXIgdz0oZWUsSik9Pntjb25zdCBtZT1KIT1udWxsP0o6KDAsaC5aKShlZSksdGU9bWUuZm9udFNpemVTTSxsZT1tZS5jb250cm9sSGVpZ2h0LTQ7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxtZSksQyhKIT1udWxsP0o6ZWUpKSwoMCxtLlopKHRlKSkse2NvbnRyb2xIZWlnaHQ6bGV9KSwoMCxkLlopKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxtZSkse2NvbnRyb2xIZWlnaHQ6bGV9KSkpfSxFPWUoODQ4OTgpLHg9ZSg1NyksTz1lKDE1MDYzKTtjb25zdCBUPShlZSxKKT0+bmV3IE8udChlZSkuc2V0QShKKS50b1JnYlN0cmluZygpLFM9KGVlLEopPT5uZXcgTy50KGVlKS5saWdodGVuKEopLnRvSGV4U3RyaW5nKCksTD1lZT0+e2NvbnN0IEo9KDAsRS5nZW5lcmF0ZSkoZWUse3RoZW1lOiJkYXJrIn0pO3JldHVybnsxOkpbMF0sMjpKWzFdLDM6SlsyXSw0OkpbM10sNTpKWzZdLDY6Sls1XSw3OkpbNF0sODpKWzZdLDk6Sls1XSwxMDpKWzRdfX0sST0oZWUsSik9Pntjb25zdCBtZT1lZXx8IiMwMDAiLHRlPUp8fCIjZmZmIjtyZXR1cm57Y29sb3JCZ0Jhc2U6bWUsY29sb3JUZXh0QmFzZTp0ZSxjb2xvclRleHQ6VCh0ZSwuODUpLGNvbG9yVGV4dFNlY29uZGFyeTpUKHRlLC42NSksY29sb3JUZXh0VGVydGlhcnk6VCh0ZSwuNDUpLGNvbG9yVGV4dFF1YXRlcm5hcnk6VCh0ZSwuMjUpLGNvbG9yRmlsbDpUKHRlLC4xOCksY29sb3JGaWxsU2Vjb25kYXJ5OlQodGUsLjEyKSxjb2xvckZpbGxUZXJ0aWFyeTpUKHRlLC4wOCksY29sb3JGaWxsUXVhdGVybmFyeTpUKHRlLC4wNCksY29sb3JCZ1NvbGlkOlQodGUsLjk1KSxjb2xvckJnU29saWRIb3ZlcjpUKHRlLDEpLGNvbG9yQmdTb2xpZEFjdGl2ZTpUKHRlLC45KSxjb2xvckJnRWxldmF0ZWQ6UyhtZSwxMiksY29sb3JCZ0NvbnRhaW5lcjpTKG1lLDgpLGNvbG9yQmdMYXlvdXQ6UyhtZSwwKSxjb2xvckJnU3BvdGxpZ2h0OlMobWUsMjYpLGNvbG9yQmdCbHVyOlQodGUsLjA0KSxjb2xvckJvcmRlcjpTKG1lLDI2KSxjb2xvckJvcmRlclNlY29uZGFyeTpTKG1lLDE5KX19O3ZhciB6PShlZSxKKT0+e2NvbnN0IG1lPU9iamVjdC5rZXlzKHQuTSkubWFwKGxlPT57Y29uc3QgY2U9KDAsRS5nZW5lcmF0ZSkoZWVbbGVdLHt0aGVtZToiZGFyayJ9KTtyZXR1cm4gQXJyYXkuZnJvbSh7bGVuZ3RoOjEwfSwoKT0+MSkucmVkdWNlKChXLGosRCk9PihXW2Ake2xlfS0ke0QrMX1gXT1jZVtEXSxXW2Ake2xlfSR7RCsxfWBdPWNlW0RdLFcpLHt9KX0pLnJlZHVjZSgobGUsY2UpPT4obGU9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGxlKSxjZSksbGUpLHt9KSx0ZT1KIT1udWxsP0o6KDAsaC5aKShlZSk7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHRlKSxtZSksKDAseC5aKShlZSx7Z2VuZXJhdGVDb2xvclBhbGV0dGVzOkwsZ2VuZXJhdGVOZXV0cmFsQ29sb3JQYWxldHRlczpJfSkpfTtmdW5jdGlvbiBHKCl7Y29uc3RbZWUsSixtZV09KDAsdS5aUCkoKTtyZXR1cm57dGhlbWU6ZWUsdG9rZW46SixoYXNoSWQ6bWV9fXZhciBZPXtkZWZhdWx0U2VlZDpjLnVfLnRva2VuLHVzZVRva2VuOkcsZGVmYXVsdEFsZ29yaXRobTpoLlosZGFya0FsZ29yaXRobTp6LGNvbXBhY3RBbGdvcml0aG06dyxnZXREZXNpZ25Ub2tlbjphLGRlZmF1bHRDb25maWc6Yy51XyxfaW50ZXJuYWxDb250ZXh0OmMuTWp9fSw4Nzk2OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse2k6ZnVuY3Rpb24oKXtyZXR1cm4gcn19KTtjb25zdCByPVsiYmx1ZSIsInB1cnBsZSIsImN5YW4iLCJncmVlbiIsIm1hZ2VudGEiLCJwaW5rIiwicmVkIiwib3JhbmdlIiwieWVsbG93Iiwidm9sY2FubyIsImdlZWtibHVlIiwibGltZSIsImdvbGQiXX0sNjcxNjQ6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiBFfX0pO3ZhciByPWUoODQ4OTgpLG49ZSgyNzkwKSx0PWUoNTcpLHM9eD0+e2xldCBPPXgsVD14LFM9eCxMPXg7cmV0dXJuIHg8NiYmeD49NT9PPXgrMTp4PDE2JiZ4Pj02P089eCsyOng+PTE2JiYoTz0xNikseDw3JiZ4Pj01P1Q9NDp4PDgmJng+PTc/VD01Ong8MTQmJng+PTg/VD02Ong8MTYmJng+PTE0P1Q9Nzp4Pj0xNiYmKFQ9OCkseDw2JiZ4Pj0yP1M9MTp4Pj02JiYoUz0yKSx4PjQmJng8OD9MPTQ6eD49OCYmKEw9Nikse2JvcmRlclJhZGl1czp4LGJvcmRlclJhZGl1c1hTOlMsYm9yZGVyUmFkaXVzU006VCxib3JkZXJSYWRpdXNMRzpPLGJvcmRlclJhZGl1c091dGVyOkx9fTtmdW5jdGlvbiBhKHgpe2NvbnN0e21vdGlvblVuaXQ6Tyxtb3Rpb25CYXNlOlQsYm9yZGVyUmFkaXVzOlMsbGluZVdpZHRoOkx9PXg7cmV0dXJuIE9iamVjdC5hc3NpZ24oe21vdGlvbkR1cmF0aW9uRmFzdDpgJHsoVCtPKS50b0ZpeGVkKDEpfXNgLG1vdGlvbkR1cmF0aW9uTWlkOmAkeyhUK08qMikudG9GaXhlZCgxKX1zYCxtb3Rpb25EdXJhdGlvblNsb3c6YCR7KFQrTyozKS50b0ZpeGVkKDEpfXNgLGxpbmVXaWR0aEJvbGQ6TCsxfSxzKFMpKX12YXIgdT1lKDM3MiksYz1lKDY5NTk0KTtmdW5jdGlvbiBoKHgpe2NvbnN0e3NpemVVbml0Ok8sc2l6ZVN0ZXA6VH09eDtyZXR1cm57c2l6ZVhYTDpPKihUKzgpLHNpemVYTDpPKihUKzQpLHNpemVMRzpPKihUKzIpLHNpemVNRDpPKihUKzEpLHNpemVNUzpPKlQsc2l6ZTpPKlQsc2l6ZVNNOk8qKFQtMSksc2l6ZVhTOk8qKFQtMiksc2l6ZVhYUzpPKihULTMpfX12YXIgZD1lKDE1MDYzKTtjb25zdCBtPSh4LE8pPT5uZXcgZC50KHgpLnNldEEoTykudG9SZ2JTdHJpbmcoKSxDPSh4LE8pPT5uZXcgZC50KHgpLmRhcmtlbihPKS50b0hleFN0cmluZygpLGc9eD0+e2NvbnN0IE89KDAsci5nZW5lcmF0ZSkoeCk7cmV0dXJuezE6T1swXSwyOk9bMV0sMzpPWzJdLDQ6T1szXSw1Ok9bNF0sNjpPWzVdLDc6T1s2XSw4Ok9bNF0sOTpPWzVdLDEwOk9bNl19fSx3PSh4LE8pPT57Y29uc3QgVD14fHwiI2ZmZiIsUz1PfHwiIzAwMCI7cmV0dXJue2NvbG9yQmdCYXNlOlQsY29sb3JUZXh0QmFzZTpTLGNvbG9yVGV4dDptKFMsLjg4KSxjb2xvclRleHRTZWNvbmRhcnk6bShTLC42NSksY29sb3JUZXh0VGVydGlhcnk6bShTLC40NSksY29sb3JUZXh0UXVhdGVybmFyeTptKFMsLjI1KSxjb2xvckZpbGw6bShTLC4xNSksY29sb3JGaWxsU2Vjb25kYXJ5Om0oUywuMDYpLGNvbG9yRmlsbFRlcnRpYXJ5Om0oUywuMDQpLGNvbG9yRmlsbFF1YXRlcm5hcnk6bShTLC4wMiksY29sb3JCZ1NvbGlkOm0oUywxKSxjb2xvckJnU29saWRIb3ZlcjptKFMsLjc1KSxjb2xvckJnU29saWRBY3RpdmU6bShTLC45NSksY29sb3JCZ0xheW91dDpDKFQsNCksY29sb3JCZ0NvbnRhaW5lcjpDKFQsMCksY29sb3JCZ0VsZXZhdGVkOkMoVCwwKSxjb2xvckJnU3BvdGxpZ2h0Om0oUywuODUpLGNvbG9yQmdCbHVyOiJ0cmFuc3BhcmVudCIsY29sb3JCb3JkZXI6QyhULDE1KSxjb2xvckJvcmRlclNlY29uZGFyeTpDKFQsNil9fTtmdW5jdGlvbiBFKHgpe3IucHJlc2V0UHJpbWFyeUNvbG9ycy5waW5rPXIucHJlc2V0UHJpbWFyeUNvbG9ycy5tYWdlbnRhLHIucHJlc2V0UGFsZXR0ZXMucGluaz1yLnByZXNldFBhbGV0dGVzLm1hZ2VudGE7Y29uc3QgTz1PYmplY3Qua2V5cyhuLk0pLm1hcChUPT57Y29uc3QgUz14W1RdPT09ci5wcmVzZXRQcmltYXJ5Q29sb3JzW1RdP3IucHJlc2V0UGFsZXR0ZXNbVF06KDAsci5nZW5lcmF0ZSkoeFtUXSk7cmV0dXJuIEFycmF5LmZyb20oe2xlbmd0aDoxMH0sKCk9PjEpLnJlZHVjZSgoTCxJLFIpPT4oTFtgJHtUfS0ke1IrMX1gXT1TW1JdLExbYCR7VH0ke1IrMX1gXT1TW1JdLEwpLHt9KX0pLnJlZHVjZSgoVCxTKT0+KFQ9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LFQpLFMpLFQpLHt9KTtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx4KSxPKSwoMCx0LlopKHgse2dlbmVyYXRlQ29sb3JQYWxldHRlczpnLGdlbmVyYXRlTmV1dHJhbENvbG9yUGFsZXR0ZXM6d30pKSwoMCxjLlopKHguZm9udFNpemUpKSxoKHgpKSwoMCx1LlopKHgpKSxhKHgpKX19LDMxNTY3OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSgxMTU2OCksbj1lKDY3MTY0KTtjb25zdCB0PSgwLHIuakcpKG4uWik7cC5aPXR9LDI3OTA6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7TTpmdW5jdGlvbigpe3JldHVybiByfX0pO2NvbnN0IHI9e2JsdWU6IiMxNjc3RkYiLHB1cnBsZToiIzcyMkVEMSIsY3lhbjoiIzEzQzJDMiIsZ3JlZW46IiM1MkM0MUEiLG1hZ2VudGE6IiNFQjJGOTYiLHBpbms6IiNFQjJGOTYiLHJlZDoiI0Y1MjIyRCIsb3JhbmdlOiIjRkE4QzE2Iix5ZWxsb3c6IiNGQURCMTQiLHZvbGNhbm86IiNGQTU0MUMiLGdlZWtibHVlOiIjMkY1NEVCIixnb2xkOiIjRkFBRDE0IixsaW1lOiIjQTBEOTExIn0sbj1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30scikse2NvbG9yUHJpbWFyeToiIzE2NzdmZiIsY29sb3JTdWNjZXNzOiIjNTJjNDFhIixjb2xvcldhcm5pbmc6IiNmYWFkMTQiLGNvbG9yRXJyb3I6IiNmZjRkNGYiLGNvbG9ySW5mbzoiIzE2NzdmZiIsY29sb3JMaW5rOiIiLGNvbG9yVGV4dEJhc2U6IiIsY29sb3JCZ0Jhc2U6IiIsZm9udEZhbWlseTpgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sICdIZWx2ZXRpY2EgTmV1ZScsIEFyaWFsLAorJ05vdG8gU2FucycsIHNhbnMtc2VyaWYsICdBcHBsZSBDb2xvciBFbW9qaScsICdTZWdvZSBVSSBFbW9qaScsICdTZWdvZSBVSSBTeW1ib2wnLAorJ05vdG8gQ29sb3IgRW1vamknYCxmb250RmFtaWx5Q29kZToiJ1NGTW9uby1SZWd1bGFyJywgQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBNZW5sbywgQ291cmllciwgbW9ub3NwYWNlIixmb250U2l6ZToxNCxsaW5lV2lkdGg6MSxsaW5lVHlwZToic29saWQiLG1vdGlvblVuaXQ6LjEsbW90aW9uQmFzZTowLG1vdGlvbkVhc2VPdXRDaXJjOiJjdWJpYy1iZXppZXIoMC4wOCwgMC44MiwgMC4xNywgMSkiLG1vdGlvbkVhc2VJbk91dENpcmM6ImN1YmljLWJlemllcigwLjc4LCAwLjE0LCAwLjE1LCAwLjg2KSIsbW90aW9uRWFzZU91dDoiY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxLCAwLjM1NSwgMSkiLG1vdGlvbkVhc2VJbk91dDoiY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpIixtb3Rpb25FYXNlT3V0QmFjazoiY3ViaWMtYmV6aWVyKDAuMTIsIDAuNCwgMC4yOSwgMS40NikiLG1vdGlvbkVhc2VJbkJhY2s6ImN1YmljLWJlemllcigwLjcxLCAtMC40NiwgMC44OCwgMC42KSIsbW90aW9uRWFzZUluUXVpbnQ6ImN1YmljLWJlemllcigwLjc1NSwgMC4wNSwgMC44NTUsIDAuMDYpIixtb3Rpb25FYXNlT3V0UXVpbnQ6ImN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKSIsYm9yZGVyUmFkaXVzOjYsc2l6ZVVuaXQ6NCxzaXplU3RlcDo0LHNpemVQb3B1cEFycm93OjE2LGNvbnRyb2xIZWlnaHQ6MzIsekluZGV4QmFzZTowLHpJbmRleFBvcHVwQmFzZToxZTMsb3BhY2l0eUltYWdlOjEsd2lyZWZyYW1lOiExLG1vdGlvbjohMH0pO3AuWj1ufSw1NzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIG59fSk7dmFyIHI9ZSgxNTA2Myk7ZnVuY3Rpb24gbih0LGkpe2xldHtnZW5lcmF0ZUNvbG9yUGFsZXR0ZXM6cyxnZW5lcmF0ZU5ldXRyYWxDb2xvclBhbGV0dGVzOmF9PWk7Y29uc3R7Y29sb3JTdWNjZXNzOnUsY29sb3JXYXJuaW5nOmMsY29sb3JFcnJvcjpoLGNvbG9ySW5mbzpkLGNvbG9yUHJpbWFyeTptLGNvbG9yQmdCYXNlOkMsY29sb3JUZXh0QmFzZTpnfT10LHc9cyhtKSxFPXModSkseD1zKGMpLE89cyhoKSxUPXMoZCksUz1hKEMsZyksTD10LmNvbG9yTGlua3x8dC5jb2xvckluZm8sST1zKEwpLFI9bmV3IHIudChPWzFdKS5taXgobmV3IHIudChPWzNdKSw1MCkudG9IZXhTdHJpbmcoKTtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LFMpLHtjb2xvclByaW1hcnlCZzp3WzFdLGNvbG9yUHJpbWFyeUJnSG92ZXI6d1syXSxjb2xvclByaW1hcnlCb3JkZXI6d1szXSxjb2xvclByaW1hcnlCb3JkZXJIb3Zlcjp3WzRdLGNvbG9yUHJpbWFyeUhvdmVyOndbNV0sY29sb3JQcmltYXJ5OndbNl0sY29sb3JQcmltYXJ5QWN0aXZlOndbN10sY29sb3JQcmltYXJ5VGV4dEhvdmVyOndbOF0sY29sb3JQcmltYXJ5VGV4dDp3WzldLGNvbG9yUHJpbWFyeVRleHRBY3RpdmU6d1sxMF0sY29sb3JTdWNjZXNzQmc6RVsxXSxjb2xvclN1Y2Nlc3NCZ0hvdmVyOkVbMl0sY29sb3JTdWNjZXNzQm9yZGVyOkVbM10sY29sb3JTdWNjZXNzQm9yZGVySG92ZXI6RVs0XSxjb2xvclN1Y2Nlc3NIb3ZlcjpFWzRdLGNvbG9yU3VjY2VzczpFWzZdLGNvbG9yU3VjY2Vzc0FjdGl2ZTpFWzddLGNvbG9yU3VjY2Vzc1RleHRIb3ZlcjpFWzhdLGNvbG9yU3VjY2Vzc1RleHQ6RVs5XSxjb2xvclN1Y2Nlc3NUZXh0QWN0aXZlOkVbMTBdLGNvbG9yRXJyb3JCZzpPWzFdLGNvbG9yRXJyb3JCZ0hvdmVyOk9bMl0sY29sb3JFcnJvckJnRmlsbGVkSG92ZXI6Uixjb2xvckVycm9yQmdBY3RpdmU6T1szXSxjb2xvckVycm9yQm9yZGVyOk9bM10sY29sb3JFcnJvckJvcmRlckhvdmVyOk9bNF0sY29sb3JFcnJvckhvdmVyOk9bNV0sY29sb3JFcnJvcjpPWzZdLGNvbG9yRXJyb3JBY3RpdmU6T1s3XSxjb2xvckVycm9yVGV4dEhvdmVyOk9bOF0sY29sb3JFcnJvclRleHQ6T1s5XSxjb2xvckVycm9yVGV4dEFjdGl2ZTpPWzEwXSxjb2xvcldhcm5pbmdCZzp4WzFdLGNvbG9yV2FybmluZ0JnSG92ZXI6eFsyXSxjb2xvcldhcm5pbmdCb3JkZXI6eFszXSxjb2xvcldhcm5pbmdCb3JkZXJIb3Zlcjp4WzRdLGNvbG9yV2FybmluZ0hvdmVyOnhbNF0sY29sb3JXYXJuaW5nOnhbNl0sY29sb3JXYXJuaW5nQWN0aXZlOnhbN10sY29sb3JXYXJuaW5nVGV4dEhvdmVyOnhbOF0sY29sb3JXYXJuaW5nVGV4dDp4WzldLGNvbG9yV2FybmluZ1RleHRBY3RpdmU6eFsxMF0sY29sb3JJbmZvQmc6VFsxXSxjb2xvckluZm9CZ0hvdmVyOlRbMl0sY29sb3JJbmZvQm9yZGVyOlRbM10sY29sb3JJbmZvQm9yZGVySG92ZXI6VFs0XSxjb2xvckluZm9Ib3ZlcjpUWzRdLGNvbG9ySW5mbzpUWzZdLGNvbG9ySW5mb0FjdGl2ZTpUWzddLGNvbG9ySW5mb1RleHRIb3ZlcjpUWzhdLGNvbG9ySW5mb1RleHQ6VFs5XSxjb2xvckluZm9UZXh0QWN0aXZlOlRbMTBdLGNvbG9yTGlua0hvdmVyOklbNF0sY29sb3JMaW5rOklbNl0sY29sb3JMaW5rQWN0aXZlOklbN10sY29sb3JCZ01hc2s6bmV3IHIudCgiIzAwMCIpLnNldEEoLjQ1KS50b1JnYlN0cmluZygpLGNvbG9yV2hpdGU6IiNmZmYifSl9fSwzNzI6ZnVuY3Rpb24oeSxwKXsidXNlIHN0cmljdCI7Y29uc3QgZT1yPT57Y29uc3R7Y29udHJvbEhlaWdodDpufT1yO3JldHVybntjb250cm9sSGVpZ2h0U006biouNzUsY29udHJvbEhlaWdodFhTOm4qLjUsY29udHJvbEhlaWdodExHOm4qMS4yNX19O3AuWj1lfSw2OTU5NDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNTE3MzQpO2NvbnN0IG49dD0+e2NvbnN0IGk9KDAsci5aKSh0KSxzPWkubWFwKGc9Pmcuc2l6ZSksYT1pLm1hcChnPT5nLmxpbmVIZWlnaHQpLHU9c1sxXSxjPXNbMF0saD1zWzJdLGQ9YVsxXSxtPWFbMF0sQz1hWzJdO3JldHVybntmb250U2l6ZVNNOmMsZm9udFNpemU6dSxmb250U2l6ZUxHOmgsZm9udFNpemVYTDpzWzNdLGZvbnRTaXplSGVhZGluZzE6c1s2XSxmb250U2l6ZUhlYWRpbmcyOnNbNV0sZm9udFNpemVIZWFkaW5nMzpzWzRdLGZvbnRTaXplSGVhZGluZzQ6c1szXSxmb250U2l6ZUhlYWRpbmc1OnNbMl0sbGluZUhlaWdodDpkLGxpbmVIZWlnaHRMRzpDLGxpbmVIZWlnaHRTTTptLGZvbnRIZWlnaHQ6TWF0aC5yb3VuZChkKnUpLGZvbnRIZWlnaHRMRzpNYXRoLnJvdW5kKEMqaCksZm9udEhlaWdodFNNOk1hdGgucm91bmQobSpjKSxsaW5lSGVpZ2h0SGVhZGluZzE6YVs2XSxsaW5lSGVpZ2h0SGVhZGluZzI6YVs1XSxsaW5lSGVpZ2h0SGVhZGluZzM6YVs0XSxsaW5lSGVpZ2h0SGVhZGluZzQ6YVszXSxsaW5lSGVpZ2h0SGVhZGluZzU6YVsyXX19O3AuWj1ufSw1MTczNDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtEOmZ1bmN0aW9uKCl7cmV0dXJuIHJ9LFo6ZnVuY3Rpb24oKXtyZXR1cm4gbn19KTtmdW5jdGlvbiByKHQpe3JldHVybih0KzgpL3R9ZnVuY3Rpb24gbih0KXtjb25zdCBpPUFycmF5LmZyb20oe2xlbmd0aDoxMH0pLm1hcCgocyxhKT0+e2NvbnN0IHU9YS0xLGM9dCpNYXRoLnBvdyhNYXRoLkUsdS81KSxoPWE+MT9NYXRoLmZsb29yKGMpOk1hdGguY2VpbChjKTtyZXR1cm4gTWF0aC5mbG9vcihoLzIpKjJ9KTtyZXR1cm4gaVsxXT10LGkubWFwKHM9Pih7c2l6ZTpzLGxpbmVIZWlnaHQ6cihzKX0pKX19LDI5NjkxOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse05KOmZ1bmN0aW9uKCl7cmV0dXJuIGh9LFpQOmZ1bmN0aW9uKCl7cmV0dXJuIGd9fSk7dmFyIHI9ZSg2NzI5NCksbj1lKDExNTY4KSx0PWUoNjcxNTkpLGk9ZSgzMzA4Mykscz1lKDMxNTY3KSxhPWUoMjc5MCksdT1lKDkyMzcyKSxjPWZ1bmN0aW9uKHcsRSl7dmFyIHg9e307Zm9yKHZhciBPIGluIHcpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHcsTykmJkUuaW5kZXhPZihPKTwwJiYoeFtPXT13W09dKTtpZih3IT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIFQ9MCxPPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModyk7VDxPLmxlbmd0aDtUKyspRS5pbmRleE9mKE9bVF0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh3LE9bVF0pJiYoeFtPW1RdXT13W09bVF1dKTtyZXR1cm4geH07Y29uc3QgaD17bGluZUhlaWdodDohMCxsaW5lSGVpZ2h0U006ITAsbGluZUhlaWdodExHOiEwLGxpbmVIZWlnaHRIZWFkaW5nMTohMCxsaW5lSGVpZ2h0SGVhZGluZzI6ITAsbGluZUhlaWdodEhlYWRpbmczOiEwLGxpbmVIZWlnaHRIZWFkaW5nNDohMCxsaW5lSGVpZ2h0SGVhZGluZzU6ITAsb3BhY2l0eUxvYWRpbmc6ITAsZm9udFdlaWdodFN0cm9uZzohMCx6SW5kZXhQb3B1cEJhc2U6ITAsekluZGV4QmFzZTohMCxvcGFjaXR5SW1hZ2U6ITB9LGQ9e3NpemU6ITAsc2l6ZVNNOiEwLHNpemVMRzohMCxzaXplTUQ6ITAsc2l6ZVhTOiEwLHNpemVYWFM6ITAsc2l6ZU1TOiEwLHNpemVYTDohMCxzaXplWFhMOiEwLHNpemVVbml0OiEwLHNpemVTdGVwOiEwLG1vdGlvbkJhc2U6ITAsbW90aW9uVW5pdDohMH0sbT17c2NyZWVuWFM6ITAsc2NyZWVuWFNNaW46ITAsc2NyZWVuWFNNYXg6ITAsc2NyZWVuU006ITAsc2NyZWVuU01NaW46ITAsc2NyZWVuU01NYXg6ITAsc2NyZWVuTUQ6ITAsc2NyZWVuTURNaW46ITAsc2NyZWVuTURNYXg6ITAsc2NyZWVuTEc6ITAsc2NyZWVuTEdNaW46ITAsc2NyZWVuTEdNYXg6ITAsc2NyZWVuWEw6ITAsc2NyZWVuWExNaW46ITAsc2NyZWVuWExNYXg6ITAsc2NyZWVuWFhMOiEwLHNjcmVlblhYTE1pbjohMH0sQz0odyxFLHgpPT57Y29uc3QgTz14LmdldERlcml2YXRpdmVUb2tlbih3KSx7b3ZlcnJpZGU6VH09RSxTPWMoRSxbIm92ZXJyaWRlIl0pO2xldCBMPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxPKSx7b3ZlcnJpZGU6VH0pO3JldHVybiBMPSgwLHUuWikoTCksUyYmT2JqZWN0LmVudHJpZXMoUykuZm9yRWFjaChJPT57bGV0W1Isel09STtjb25zdHt0aGVtZTpHfT16LFk9Yyh6LFsidGhlbWUiXSk7bGV0IGVlPVk7RyYmKGVlPUMoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LEwpLFkpLHtvdmVycmlkZTpZfSxHKSksTFtSXT1lZX0pLEx9O2Z1bmN0aW9uIGcoKXtjb25zdHt0b2tlbjp3LGhhc2hlZDpFLHRoZW1lOngsb3ZlcnJpZGU6Tyxjc3NWYXI6VH09ci51c2VDb250ZXh0KGkuTWopLFM9YCR7dC5afS0ke0V8fCIifWAsTD14fHxzLlosW0ksUix6XT0oMCxuLmZwKShMLFthLlosd10se3NhbHQ6UyxvdmVycmlkZTpPLGdldENvbXB1dGVkVG9rZW46Qyxmb3JtYXRUb2tlbjp1LlosY3NzVmFyOlQmJntwcmVmaXg6VC5wcmVmaXgsa2V5OlQua2V5LHVuaXRsZXNzOmgsaWdub3JlOmQscHJlc2VydmU6bX19KTtyZXR1cm5bTCx6LEU/UjoiIixJLFRdfX0sOTIzNzI6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiBzfX0pO3ZhciByPWUoMTUwNjMpLG49ZSgyNzkwKSx0PWUoNDI2NDIpLGk9ZnVuY3Rpb24oYSx1KXt2YXIgYz17fTtmb3IodmFyIGggaW4gYSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYSxoKSYmdS5pbmRleE9mKGgpPDAmJihjW2hdPWFbaF0pO2lmKGEhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgZD0wLGg9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhhKTtkPGgubGVuZ3RoO2QrKyl1LmluZGV4T2YoaFtkXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGEsaFtkXSkmJihjW2hbZF1dPWFbaFtkXV0pO3JldHVybiBjfTtmdW5jdGlvbiBzKGEpe2NvbnN0e292ZXJyaWRlOnV9PWEsYz1pKGEsWyJvdmVycmlkZSJdKSxoPU9iamVjdC5hc3NpZ24oe30sdSk7T2JqZWN0LmtleXMobi5aKS5mb3JFYWNoKFQ9PntkZWxldGUgaFtUXX0pO2NvbnN0IGQ9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGMpLGgpLG09NDgwLEM9NTc2LGc9NzY4LHc9OTkyLEU9MTIwMCx4PTE2MDA7aWYoZC5tb3Rpb249PT0hMSl7Y29uc3QgVD0iMHMiO2QubW90aW9uRHVyYXRpb25GYXN0PVQsZC5tb3Rpb25EdXJhdGlvbk1pZD1ULGQubW90aW9uRHVyYXRpb25TbG93PVR9cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGQpLHtjb2xvckZpbGxDb250ZW50OmQuY29sb3JGaWxsU2Vjb25kYXJ5LGNvbG9yRmlsbENvbnRlbnRIb3ZlcjpkLmNvbG9yRmlsbCxjb2xvckZpbGxBbHRlcjpkLmNvbG9yRmlsbFF1YXRlcm5hcnksY29sb3JCZ0NvbnRhaW5lckRpc2FibGVkOmQuY29sb3JGaWxsVGVydGlhcnksY29sb3JCb3JkZXJCZzpkLmNvbG9yQmdDb250YWluZXIsY29sb3JTcGxpdDooMCx0LlopKGQuY29sb3JCb3JkZXJTZWNvbmRhcnksZC5jb2xvckJnQ29udGFpbmVyKSxjb2xvclRleHRQbGFjZWhvbGRlcjpkLmNvbG9yVGV4dFF1YXRlcm5hcnksY29sb3JUZXh0RGlzYWJsZWQ6ZC5jb2xvclRleHRRdWF0ZXJuYXJ5LGNvbG9yVGV4dEhlYWRpbmc6ZC5jb2xvclRleHQsY29sb3JUZXh0TGFiZWw6ZC5jb2xvclRleHRTZWNvbmRhcnksY29sb3JUZXh0RGVzY3JpcHRpb246ZC5jb2xvclRleHRUZXJ0aWFyeSxjb2xvclRleHRMaWdodFNvbGlkOmQuY29sb3JXaGl0ZSxjb2xvckhpZ2hsaWdodDpkLmNvbG9yRXJyb3IsY29sb3JCZ1RleHRIb3ZlcjpkLmNvbG9yRmlsbFNlY29uZGFyeSxjb2xvckJnVGV4dEFjdGl2ZTpkLmNvbG9yRmlsbCxjb2xvckljb246ZC5jb2xvclRleHRUZXJ0aWFyeSxjb2xvckljb25Ib3ZlcjpkLmNvbG9yVGV4dCxjb2xvckVycm9yT3V0bGluZTooMCx0LlopKGQuY29sb3JFcnJvckJnLGQuY29sb3JCZ0NvbnRhaW5lciksY29sb3JXYXJuaW5nT3V0bGluZTooMCx0LlopKGQuY29sb3JXYXJuaW5nQmcsZC5jb2xvckJnQ29udGFpbmVyKSxmb250U2l6ZUljb246ZC5mb250U2l6ZVNNLGxpbmVXaWR0aEZvY3VzOmQubGluZVdpZHRoKjMsbGluZVdpZHRoOmQubGluZVdpZHRoLGNvbnRyb2xPdXRsaW5lV2lkdGg6ZC5saW5lV2lkdGgqMixjb250cm9sSW50ZXJhY3RpdmVTaXplOmQuY29udHJvbEhlaWdodC8yLGNvbnRyb2xJdGVtQmdIb3ZlcjpkLmNvbG9yRmlsbFRlcnRpYXJ5LGNvbnRyb2xJdGVtQmdBY3RpdmU6ZC5jb2xvclByaW1hcnlCZyxjb250cm9sSXRlbUJnQWN0aXZlSG92ZXI6ZC5jb2xvclByaW1hcnlCZ0hvdmVyLGNvbnRyb2xJdGVtQmdBY3RpdmVEaXNhYmxlZDpkLmNvbG9yRmlsbCxjb250cm9sVG1wT3V0bGluZTpkLmNvbG9yRmlsbFF1YXRlcm5hcnksY29udHJvbE91dGxpbmU6KDAsdC5aKShkLmNvbG9yUHJpbWFyeUJnLGQuY29sb3JCZ0NvbnRhaW5lciksbGluZVR5cGU6ZC5saW5lVHlwZSxib3JkZXJSYWRpdXM6ZC5ib3JkZXJSYWRpdXMsYm9yZGVyUmFkaXVzWFM6ZC5ib3JkZXJSYWRpdXNYUyxib3JkZXJSYWRpdXNTTTpkLmJvcmRlclJhZGl1c1NNLGJvcmRlclJhZGl1c0xHOmQuYm9yZGVyUmFkaXVzTEcsZm9udFdlaWdodFN0cm9uZzo2MDAsb3BhY2l0eUxvYWRpbmc6LjY1LGxpbmtEZWNvcmF0aW9uOiJub25lIixsaW5rSG92ZXJEZWNvcmF0aW9uOiJub25lIixsaW5rRm9jdXNEZWNvcmF0aW9uOiJub25lIixjb250cm9sUGFkZGluZ0hvcml6b250YWw6MTIsY29udHJvbFBhZGRpbmdIb3Jpem9udGFsU006OCxwYWRkaW5nWFhTOmQuc2l6ZVhYUyxwYWRkaW5nWFM6ZC5zaXplWFMscGFkZGluZ1NNOmQuc2l6ZVNNLHBhZGRpbmc6ZC5zaXplLHBhZGRpbmdNRDpkLnNpemVNRCxwYWRkaW5nTEc6ZC5zaXplTEcscGFkZGluZ1hMOmQuc2l6ZVhMLHBhZGRpbmdDb250ZW50SG9yaXpvbnRhbExHOmQuc2l6ZUxHLHBhZGRpbmdDb250ZW50VmVydGljYWxMRzpkLnNpemVNUyxwYWRkaW5nQ29udGVudEhvcml6b250YWw6ZC5zaXplTVMscGFkZGluZ0NvbnRlbnRWZXJ0aWNhbDpkLnNpemVTTSxwYWRkaW5nQ29udGVudEhvcml6b250YWxTTTpkLnNpemUscGFkZGluZ0NvbnRlbnRWZXJ0aWNhbFNNOmQuc2l6ZVhTLG1hcmdpblhYUzpkLnNpemVYWFMsbWFyZ2luWFM6ZC5zaXplWFMsbWFyZ2luU006ZC5zaXplU00sbWFyZ2luOmQuc2l6ZSxtYXJnaW5NRDpkLnNpemVNRCxtYXJnaW5MRzpkLnNpemVMRyxtYXJnaW5YTDpkLnNpemVYTCxtYXJnaW5YWEw6ZC5zaXplWFhMLGJveFNoYWRvdzpgCisgICAgICAwIDZweCAxNnB4IDAgcmdiYSgwLCAwLCAwLCAwLjA4KSwKKyAgICAgIDAgM3B4IDZweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC4xMiksCisgICAgICAwIDlweCAyOHB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMDUpCisgICAgYCxib3hTaGFkb3dTZWNvbmRhcnk6YAorICAgICAgMCA2cHggMTZweCAwIHJnYmEoMCwgMCwgMCwgMC4wOCksCisgICAgICAwIDNweCA2cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMTIpLAorICAgICAgMCA5cHggMjhweCA4cHggcmdiYSgwLCAwLCAwLCAwLjA1KQorICAgIGAsYm94U2hhZG93VGVydGlhcnk6YAorICAgICAgMCAxcHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjAzKSwKKyAgICAgIDAgMXB4IDZweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4wMiksCisgICAgICAwIDJweCA0cHggMCByZ2JhKDAsIDAsIDAsIDAuMDIpCisgICAgYCxzY3JlZW5YUzptLHNjcmVlblhTTWluOm0sc2NyZWVuWFNNYXg6Qy0xLHNjcmVlblNNOkMsc2NyZWVuU01NaW46QyxzY3JlZW5TTU1heDpnLTEsc2NyZWVuTUQ6ZyxzY3JlZW5NRE1pbjpnLHNjcmVlbk1ETWF4OnctMSxzY3JlZW5MRzp3LHNjcmVlbkxHTWluOncsc2NyZWVuTEdNYXg6RS0xLHNjcmVlblhMOkUsc2NyZWVuWExNaW46RSxzY3JlZW5YTE1heDp4LTEsc2NyZWVuWFhMOngsc2NyZWVuWFhMTWluOngsYm94U2hhZG93UG9wb3ZlckFycm93OiIycHggMnB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMDUpIixib3hTaGFkb3dDYXJkOmAKKyAgICAgIDAgMXB4IDJweCAtMnB4ICR7bmV3IHIudCgicmdiYSgwLCAwLCAwLCAwLjE2KSIpLnRvUmdiU3RyaW5nKCl9LAorICAgICAgMCAzcHggNnB4IDAgJHtuZXcgci50KCJyZ2JhKDAsIDAsIDAsIDAuMTIpIikudG9SZ2JTdHJpbmcoKX0sCisgICAgICAwIDVweCAxMnB4IDRweCAke25ldyByLnQoInJnYmEoMCwgMCwgMCwgMC4wOSkiKS50b1JnYlN0cmluZygpfQorICAgIGAsYm94U2hhZG93RHJhd2VyUmlnaHQ6YAorICAgICAgLTZweCAwIDE2cHggMCByZ2JhKDAsIDAsIDAsIDAuMDgpLAorICAgICAgLTNweCAwIDZweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC4xMiksCisgICAgICAtOXB4IDAgMjhweCA4cHggcmdiYSgwLCAwLCAwLCAwLjA1KQorICAgIGAsYm94U2hhZG93RHJhd2VyTGVmdDpgCisgICAgICA2cHggMCAxNnB4IDAgcmdiYSgwLCAwLCAwLCAwLjA4KSwKKyAgICAgIDNweCAwIDZweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC4xMiksCisgICAgICA5cHggMCAyOHB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMDUpCisgICAgYCxib3hTaGFkb3dEcmF3ZXJVcDpgCisgICAgICAwIDZweCAxNnB4IDAgcmdiYSgwLCAwLCAwLCAwLjA4KSwKKyAgICAgIDAgM3B4IDZweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC4xMiksCisgICAgICAwIDlweCAyOHB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMDUpCisgICAgYCxib3hTaGFkb3dEcmF3ZXJEb3duOmAKKyAgICAgIDAgLTZweCAxNnB4IDAgcmdiYSgwLCAwLCAwLCAwLjA4KSwKKyAgICAgIDAgLTNweCA2cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMTIpLAorICAgICAgMCAtOXB4IDI4cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4wNSkKKyAgICBgLGJveFNoYWRvd1RhYnNPdmVyZmxvd0xlZnQ6Imluc2V0IDEwcHggMCA4cHggLThweCByZ2JhKDAsIDAsIDAsIDAuMDgpIixib3hTaGFkb3dUYWJzT3ZlcmZsb3dSaWdodDoiaW5zZXQgLTEwcHggMCA4cHggLThweCByZ2JhKDAsIDAsIDAsIDAuMDgpIixib3hTaGFkb3dUYWJzT3ZlcmZsb3dUb3A6Imluc2V0IDAgMTBweCA4cHggLThweCByZ2JhKDAsIDAsIDAsIDAuMDgpIixib3hTaGFkb3dUYWJzT3ZlcmZsb3dCb3R0b206Imluc2V0IDAgLTEwcHggOHB4IC04cHggcmdiYSgwLCAwLCAwLCAwLjA4KSJ9KSxoKX19LDk4NzE5OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1o6ZnVuY3Rpb24oKXtyZXR1cm4gbn19KTt2YXIgcj1lKDg3OTYpO2Z1bmN0aW9uIG4odCxpKXtyZXR1cm4gci5pLnJlZHVjZSgocyxhKT0+e2NvbnN0IHU9dFtgJHthfTFgXSxjPXRbYCR7YX0zYF0saD10W2Ake2F9NmBdLGQ9dFtgJHthfTdgXTtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHMpLGkoYSx7bGlnaHRDb2xvcjp1LGxpZ2h0Qm9yZGVyQ29sb3I6YyxkYXJrQ29sb3I6aCx0ZXh0Q29sb3I6ZH0pKX0se30pfX0sODM1NTk6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7QTE6ZnVuY3Rpb24oKXtyZXR1cm4gdX0sSSQ6ZnVuY3Rpb24oKXtyZXR1cm4gYX0sYms6ZnVuY3Rpb24oKXtyZXR1cm4gY319KTt2YXIgcj1lKDY3Mjk0KSxuPWUoODMyNjIpLHQ9ZSg1MzEyNCksaT1lKDE0NzQ3KSxzPWUoMjk2OTEpO2NvbnN0e2dlblN0eWxlSG9va3M6YSxnZW5Db21wb25lbnRTdHlsZUhvb2s6dSxnZW5TdWJTdHlsZUNvbXBvbmVudDpjfT0oMCxuLnJiKSh7dXNlUHJlZml4OigpPT57Y29uc3R7Z2V0UHJlZml4Q2xzOmgsaWNvblByZWZpeENsczpkfT0oMCxyLnVzZUNvbnRleHQpKHQuRV8pO3JldHVybntyb290UHJlZml4Q2xzOmgoKSxpY29uUHJlZml4Q2xzOmR9fSx1c2VUb2tlbjooKT0+e2NvbnN0W2gsZCxtLEMsZ109KDAscy5aUCkoKTtyZXR1cm57dGhlbWU6aCxyZWFsVG9rZW46ZCxoYXNoSWQ6bSx0b2tlbjpDLGNzc1ZhcjpnfX0sdXNlQ1NQOigpPT57Y29uc3R7Y3NwOmh9PSgwLHIudXNlQ29udGV4dCkodC5FXyk7cmV0dXJuIGghPW51bGw/aDp7fX0sZ2V0UmVzZXRTdHlsZXM6KGgsZCk9Pnt2YXIgbTtjb25zdCBDPSgwLGkuTHgpKGgpO3JldHVybltDLHsiJiI6Q30sKDAsaS5KVCkoKG09ZD09bnVsbD92b2lkIDA6ZC5wcmVmaXguaWNvblByZWZpeENscykhPT1udWxsJiZtIT09dm9pZCAwP206dC5vUildfSxnZXRDb21tb25TdHlsZTppLmR1LGdldENvbXBVbml0bGVzczooKT0+cy5OSn0pfSw0MjY0MjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoMTUwNjMpO2Z1bmN0aW9uIG4oaSl7cmV0dXJuIGk+PTAmJmk8PTI1NX1mdW5jdGlvbiB0KGkscyl7Y29uc3R7cjphLGc6dSxiOmMsYTpofT1uZXcgci50KGkpLnRvUmdiKCk7aWYoaDwxKXJldHVybiBpO2NvbnN0e3I6ZCxnOm0sYjpDfT1uZXcgci50KHMpLnRvUmdiKCk7Zm9yKGxldCBnPS4wMTtnPD0xO2crPS4wMSl7Y29uc3Qgdz1NYXRoLnJvdW5kKChhLWQqKDEtZykpL2cpLEU9TWF0aC5yb3VuZCgodS1tKigxLWcpKS9nKSx4PU1hdGgucm91bmQoKGMtQyooMS1nKSkvZyk7aWYobih3KSYmbihFKSYmbih4KSlyZXR1cm4gbmV3IHIudCh7cjp3LGc6RSxiOngsYTpNYXRoLnJvdW5kKGcqMTAwKS8xMDB9KS50b1JnYlN0cmluZygpfXJldHVybiBuZXcgci50KHtyOmEsZzp1LGI6YyxhOjF9KS50b1JnYlN0cmluZygpfXAuWj10fSw0MjExNTpmdW5jdGlvbih5LHApeyJ1c2Ugc3RyaWN0Ijtjb25zdCBlPXtwbGFjZWhvbGRlcjoiU2VsZWN0IHRpbWUiLHJhbmdlUGxhY2Vob2xkZXI6WyJTdGFydCB0aW1lIiwiRW5kIHRpbWUiXX07cC5aPWV9LDgzMDYyOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1o6ZnVuY3Rpb24oKXtyZXR1cm4gan19KTt2YXIgcj1lKDY3Mjk0KSxuPWUoOTM5NjcpLHQ9ZS5uKG4pLGk9ZSg5MjQxOSkscz1lKDIxNzcwKSxhPWUoODk5NDIpLHU9ZSg4NzI2MyksYz1lKDMzNjAzKSxoPWUoODA2MzYpLGQ9ZSg5NjE1OSksbT1lKDI3Mjg4KSxDPWUoNDM5NDUpLGc9ZSgyOTY5MSksdz1lKDUzMTI0KSxFPWUoMTE1NjgpLHg9ZSgxNDc0NyksTz1lKDUwNDM4KSxUPWUoOTc0MTQpLFM9ZSg3OTUxMSksTD1lKDk4NzE5KSxJPWUoODMyNjIpLFI9ZSg4MzU1OSk7Y29uc3Qgej1EPT57Y29uc3R7Y2FsYzpWLGNvbXBvbmVudENsczpaLHRvb2x0aXBNYXhXaWR0aDpQLHRvb2x0aXBDb2xvcjpLLHRvb2x0aXBCZzpzZSx0b29sdGlwQm9yZGVyUmFkaXVzOm5lLHpJbmRleFBvcHVwOm9lLGNvbnRyb2xIZWlnaHQ6ZmUsYm94U2hhZG93U2Vjb25kYXJ5OkVlLHBhZGRpbmdTTTpSZSxwYWRkaW5nWFM6QmUsYXJyb3dPZmZzZXRIb3Jpem9udGFsOlllLHNpemVQb3B1cEFycm93Om90fT1ELHFlPVYobmUpLmFkZChvdCkuYWRkKFllKS5lcXVhbCgpLF9lPVYobmUpLm11bCgyKS5hZGQob3QpLmVxdWFsKCk7cmV0dXJuW3tbWl06T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwoMCx4LldmKShEKSkse3Bvc2l0aW9uOiJhYnNvbHV0ZSIsekluZGV4Om9lLGRpc3BsYXk6ImJsb2NrIix3aWR0aDoibWF4LWNvbnRlbnQiLG1heFdpZHRoOlAsdmlzaWJpbGl0eToidmlzaWJsZSIsIi0tdmFsaWQtb2Zmc2V0LXgiOiJ2YXIoLS1hcnJvdy1vZmZzZXQtaG9yaXpvbnRhbCwgdmFyKC0tYXJyb3cteCkpIix0cmFuc2Zvcm1PcmlnaW46WyJ2YXIoLS12YWxpZC1vZmZzZXQteCwgNTAlKSIsInZhcigtLWFycm93LXksIDUwJSkiXS5qb2luKCIgIiksIiYtaGlkZGVuIjp7ZGlzcGxheToibm9uZSJ9LCItLWFudGQtYXJyb3ctYmFja2dyb3VuZC1jb2xvciI6c2UsW2Ake1p9LWlubmVyYF06e21pbldpZHRoOl9lLG1pbkhlaWdodDpmZSxwYWRkaW5nOmAkeygwLEUuYmYpKEQuY2FsYyhSZSkuZGl2KDIpLmVxdWFsKCkpfSAkeygwLEUuYmYpKEJlKX1gLGNvbG9yOkssdGV4dEFsaWduOiJzdGFydCIsdGV4dERlY29yYXRpb246Im5vbmUiLHdvcmRXcmFwOiJicmVhay13b3JkIixiYWNrZ3JvdW5kQ29sb3I6c2UsYm9yZGVyUmFkaXVzOm5lLGJveFNoYWRvdzpFZSxib3hTaXppbmc6ImJvcmRlci1ib3gifSxbWyImLXBsYWNlbWVudC10b3BMZWZ0IiwiJi1wbGFjZW1lbnQtdG9wUmlnaHQiLCImLXBsYWNlbWVudC1ib3R0b21MZWZ0IiwiJi1wbGFjZW1lbnQtYm90dG9tUmlnaHQiXS5qb2luKCIsIildOnttaW5XaWR0aDpxZX0sW1siJi1wbGFjZW1lbnQtbGVmdCIsIiYtcGxhY2VtZW50LWxlZnRUb3AiLCImLXBsYWNlbWVudC1sZWZ0Qm90dG9tIiwiJi1wbGFjZW1lbnQtcmlnaHQiLCImLXBsYWNlbWVudC1yaWdodFRvcCIsIiYtcGxhY2VtZW50LXJpZ2h0Qm90dG9tIl0uam9pbigiLCIpXTp7W2Ake1p9LWlubmVyYF06e2JvcmRlclJhZGl1czpELm1pbihuZSxULnFOKX19LFtgJHtafS1jb250ZW50YF06e3Bvc2l0aW9uOiJyZWxhdGl2ZSJ9fSksKDAsTC5aKShELChGZSxTZSk9PntsZXR7ZGFya0NvbG9yOnF9PVNlO3JldHVybntbYCYke1p9LSR7RmV9YF06e1tgJHtafS1pbm5lcmBdOntiYWNrZ3JvdW5kQ29sb3I6cX0sW2Ake1p9LWFycm93YF06eyItLWFudGQtYXJyb3ctYmFja2dyb3VuZC1jb2xvciI6cX19fX0pKSx7IiYtcnRsIjp7ZGlyZWN0aW9uOiJydGwifX0pfSwoMCxULlpQKShELCJ2YXIoLS1hbnRkLWFycm93LWJhY2tncm91bmQtY29sb3IpIikse1tgJHtafS1wdXJlYF06e3Bvc2l0aW9uOiJyZWxhdGl2ZSIsbWF4V2lkdGg6Im5vbmUiLG1hcmdpbjpELnNpemVQb3B1cEFycm93fX1dfSxHPUQ9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7ekluZGV4UG9wdXA6RC56SW5kZXhQb3B1cEJhc2UrNzB9LCgwLFQud1opKHtjb250ZW50UmFkaXVzOkQuYm9yZGVyUmFkaXVzLGxpbWl0VmVydGljYWxSYWRpdXM6ITB9KSksKDAsUy53KSgoMCxJLklYKShELHtib3JkZXJSYWRpdXNPdXRlcjpNYXRoLm1pbihELmJvcmRlclJhZGl1c091dGVyLDQpfSkpKTt2YXIgWT1mdW5jdGlvbihEKXtsZXQgVj1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06ITA7cmV0dXJuKDAsUi5JJCkoIlRvb2x0aXAiLFA9Pntjb25zdHtib3JkZXJSYWRpdXM6Syxjb2xvclRleHRMaWdodFNvbGlkOnNlLGNvbG9yQmdTcG90bGlnaHQ6bmV9PVAsb2U9KDAsSS5JWCkoUCx7dG9vbHRpcE1heFdpZHRoOjI1MCx0b29sdGlwQ29sb3I6c2UsdG9vbHRpcEJvcmRlclJhZGl1czpLLHRvb2x0aXBCZzpuZX0pO3JldHVyblt6KG9lKSwoMCxPLl95KShQLCJ6b29tLWJpZy1mYXN0IildfSxHLHtyZXNldFN0eWxlOiExLGluamVjdFN0eWxlOlZ9KShEKX0sZWU9ZSg5ODc4Nyk7ZnVuY3Rpb24gSihELFYpe2NvbnN0IFo9KDAsZWUubzIpKFYpLFA9dCgpKHtbYCR7RH0tJHtWfWBdOlYmJlp9KSxLPXt9LHNlPXt9O3JldHVybiBWJiYhWiYmKEsuYmFja2dyb3VuZD1WLHNlWyItLWFudGQtYXJyb3ctYmFja2dyb3VuZC1jb2xvciJdPVYpLHtjbGFzc05hbWU6UCxvdmVybGF5U3R5bGU6SyxhcnJvd1N0eWxlOnNlfX12YXIgdGU9RD0+e2NvbnN0e3ByZWZpeENsczpWLGNsYXNzTmFtZTpaLHBsYWNlbWVudDpQPSJ0b3AiLHRpdGxlOkssY29sb3I6c2Usb3ZlcmxheUlubmVyU3R5bGU6bmV9PUQse2dldFByZWZpeENsczpvZX09ci51c2VDb250ZXh0KHcuRV8pLGZlPW9lKCJ0b29sdGlwIixWKSxbRWUsUmUsQmVdPVkoZmUpLFllPUooZmUsc2UpLG90PVllLmFycm93U3R5bGUscWU9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG5lKSxZZS5vdmVybGF5U3R5bGUpLF9lPXQoKShSZSxCZSxmZSxgJHtmZX0tcHVyZWAsYCR7ZmV9LXBsYWNlbWVudC0ke1B9YCxaLFllLmNsYXNzTmFtZSk7cmV0dXJuIEVlKHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOl9lLHN0eWxlOm90fSxyLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpgJHtmZX0tYXJyb3dgfSksci5jcmVhdGVFbGVtZW50KGkuRyxPYmplY3QuYXNzaWduKHt9LEQse2NsYXNzTmFtZTpSZSxwcmVmaXhDbHM6ZmUsb3ZlcmxheUlubmVyU3R5bGU6cWV9KSxLKSkpfSxsZT1mdW5jdGlvbihELFYpe3ZhciBaPXt9O2Zvcih2YXIgUCBpbiBEKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChELFApJiZWLmluZGV4T2YoUCk8MCYmKFpbUF09RFtQXSk7aWYoRCE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBLPTAsUD1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKEQpO0s8UC5sZW5ndGg7SysrKVYuaW5kZXhPZihQW0tdKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoRCxQW0tdKSYmKFpbUFtLXV09RFtQW0tdXSk7cmV0dXJuIFp9O2NvbnN0IFc9ci5mb3J3YXJkUmVmKChELFYpPT57dmFyIFosUDtjb25zdHtwcmVmaXhDbHM6SyxvcGVuQ2xhc3NOYW1lOnNlLGdldFRvb2x0aXBDb250YWluZXI6bmUsY29sb3I6b2Usb3ZlcmxheUlubmVyU3R5bGU6ZmUsY2hpbGRyZW46RWUsYWZ0ZXJPcGVuQ2hhbmdlOlJlLGFmdGVyVmlzaWJsZUNoYW5nZTpCZSxkZXN0cm95VG9vbHRpcE9uSGlkZTpZZSxhcnJvdzpvdD0hMCx0aXRsZTpxZSxvdmVybGF5Ol9lLGJ1aWx0aW5QbGFjZW1lbnRzOkZlLGFycm93UG9pbnRBdENlbnRlcjpTZT0hMSxhdXRvQWRqdXN0T3ZlcmZsb3c6cT0hMCxtb3Rpb246ayxnZXRQb3B1cENvbnRhaW5lcjpNLHBsYWNlbWVudDpBPSJ0b3AiLG1vdXNlRW50ZXJEZWxheTpVPS4xLG1vdXNlTGVhdmVEZWxheTpOPS4xLG92ZXJsYXlTdHlsZTpRLHJvb3RDbGFzc05hbWU6dWUsb3ZlcmxheUNsYXNzTmFtZTokLHN0eWxlczpfLGNsYXNzTmFtZXM6cGV9PUQscmU9bGUoRCxbInByZWZpeENscyIsIm9wZW5DbGFzc05hbWUiLCJnZXRUb29sdGlwQ29udGFpbmVyIiwiY29sb3IiLCJvdmVybGF5SW5uZXJTdHlsZSIsImNoaWxkcmVuIiwiYWZ0ZXJPcGVuQ2hhbmdlIiwiYWZ0ZXJWaXNpYmxlQ2hhbmdlIiwiZGVzdHJveVRvb2x0aXBPbkhpZGUiLCJhcnJvdyIsInRpdGxlIiwib3ZlcmxheSIsImJ1aWx0aW5QbGFjZW1lbnRzIiwiYXJyb3dQb2ludEF0Q2VudGVyIiwiYXV0b0FkanVzdE92ZXJmbG93IiwibW90aW9uIiwiZ2V0UG9wdXBDb250YWluZXIiLCJwbGFjZW1lbnQiLCJtb3VzZUVudGVyRGVsYXkiLCJtb3VzZUxlYXZlRGVsYXkiLCJvdmVybGF5U3R5bGUiLCJyb290Q2xhc3NOYW1lIiwib3ZlcmxheUNsYXNzTmFtZSIsInN0eWxlcyIsImNsYXNzTmFtZXMiXSksYWU9ISFvdCxbLHdlXT0oMCxnLlpQKSgpLHtnZXRQb3B1cENvbnRhaW5lcjpMZSxnZXRQcmVmaXhDbHM6TWUsZGlyZWN0aW9uOmJlLGNsYXNzTmFtZTokZSxzdHlsZTprZSxjbGFzc05hbWVzOkFlLHN0eWxlczp0dH09KDAsdy5kaikoInRvb2x0aXAiKSxtdD0oMCxtLmxuKSgiVG9vbHRpcCIpLHV0PXIudXNlUmVmKG51bGwpLERlPSgpPT57dmFyIGduOyhnbj11dC5jdXJyZW50KT09PW51bGx8fGduPT09dm9pZCAwfHxnbi5mb3JjZUFsaWduKCl9O3IudXNlSW1wZXJhdGl2ZUhhbmRsZShWLCgpPT57dmFyIGduLEJuO3JldHVybntmb3JjZUFsaWduOkRlLGZvcmNlUG9wdXBBbGlnbjooKT0+e210LmRlcHJlY2F0ZWQoITEsImZvcmNlUG9wdXBBbGlnbiIsImZvcmNlQWxpZ24iKSxEZSgpfSxuYXRpdmVFbGVtZW50Oihnbj11dC5jdXJyZW50KT09PW51bGx8fGduPT09dm9pZCAwP3ZvaWQgMDpnbi5uYXRpdmVFbGVtZW50LHBvcHVwRWxlbWVudDooQm49dXQuY3VycmVudCk9PT1udWxsfHxCbj09PXZvaWQgMD92b2lkIDA6Qm4ucG9wdXBFbGVtZW50fX0pO2NvbnN0W05lLFhlXT0oMCxzLlopKCExLHt2YWx1ZTooWj1ELm9wZW4pIT09bnVsbCYmWiE9PXZvaWQgMD9aOkQudmlzaWJsZSxkZWZhdWx0VmFsdWU6KFA9RC5kZWZhdWx0T3BlbikhPT1udWxsJiZQIT09dm9pZCAwP1A6RC5kZWZhdWx0VmlzaWJsZX0pLEplPSFxZSYmIV9lJiZxZSE9PTAsZ3Q9Z249Pnt2YXIgQm4sVm47WGUoSmU/ITE6Z24pLEplfHwoKEJuPUQub25PcGVuQ2hhbmdlKT09PW51bGx8fEJuPT09dm9pZCAwfHxCbi5jYWxsKEQsZ24pLChWbj1ELm9uVmlzaWJsZUNoYW5nZSk9PT1udWxsfHxWbj09PXZvaWQgMHx8Vm4uY2FsbChELGduKSl9LGRlPXIudXNlTWVtbygoKT0+e3ZhciBnbixCbjtsZXQgVm49U2U7cmV0dXJuIHR5cGVvZiBvdD09Im9iamVjdCImJihWbj0oQm49KGduPW90LnBvaW50QXRDZW50ZXIpIT09bnVsbCYmZ24hPT12b2lkIDA/Z246b3QuYXJyb3dQb2ludEF0Q2VudGVyKSE9PW51bGwmJkJuIT09dm9pZCAwP0JuOlNlKSxGZXx8KDAsaC5aKSh7YXJyb3dQb2ludEF0Q2VudGVyOlZuLGF1dG9BZGp1c3RPdmVyZmxvdzpxLGFycm93V2lkdGg6YWU/d2Uuc2l6ZVBvcHVwQXJyb3c6MCxib3JkZXJSYWRpdXM6d2UuYm9yZGVyUmFkaXVzLG9mZnNldDp3ZS5tYXJnaW5YWFMsdmlzaWJsZUZpcnN0OiEwfSl9LFtTZSxvdCxGZSx3ZV0pLFdlPXIudXNlTWVtbygoKT0+cWU9PT0wP3FlOl9lfHxxZXx8IiIsW19lLHFlXSksU3Q9ci5jcmVhdGVFbGVtZW50KGEuWix7c3BhY2U6ITB9LHR5cGVvZiBXZT09ImZ1bmN0aW9uIj9XZSgpOldlKSxjdD1NZSgidG9vbHRpcCIsSyksT2U9TWUoKSxHZT1EWyJkYXRhLXBvcG92ZXItaW5qZWN0Il07bGV0IGh0PU5lOyEoIm9wZW4iaW4gRCkmJiEoInZpc2libGUiaW4gRCkmJkplJiYoaHQ9ITEpO2NvbnN0IHplPXIuaXNWYWxpZEVsZW1lbnQoRWUpJiYhKDAsZC5NMikoRWUpP0VlOnIuY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCxFZSksUWU9emUucHJvcHMscHQ9IVFlLmNsYXNzTmFtZXx8dHlwZW9mIFFlLmNsYXNzTmFtZT09InN0cmluZyI/dCgpKFFlLmNsYXNzTmFtZSxzZXx8YCR7Y3R9LW9wZW5gKTpRZS5jbGFzc05hbWUsW2J0LEl0LFR0XT1ZKGN0LCFHZSksWHQ9SihjdCxvZSksZm49WHQuYXJyb3dTdHlsZSxubj10KCkoJCx7W2Ake2N0fS1ydGxgXTpiZT09PSJydGwifSxYdC5jbGFzc05hbWUsdWUsSXQsVHQsJGUsQWUucm9vdCxwZT09bnVsbD92b2lkIDA6cGUucm9vdCksb249dCgpKEFlLmJvZHkscGU9PW51bGw/dm9pZCAwOnBlLmJvZHkpLFtOdCxabl09KDAsdS5DbikoIlRvb2x0aXAiLHJlLnpJbmRleCkseW49ci5jcmVhdGVFbGVtZW50KGkuWixPYmplY3QuYXNzaWduKHt9LHJlLHt6SW5kZXg6TnQsc2hvd0Fycm93OmFlLHBsYWNlbWVudDpBLG1vdXNlRW50ZXJEZWxheTpVLG1vdXNlTGVhdmVEZWxheTpOLHByZWZpeENsczpjdCxjbGFzc05hbWVzOntyb290Om5uLGJvZHk6b259LHN0eWxlczp7cm9vdDpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZm4pLHR0LnJvb3QpLGtlKSxRKSxfPT1udWxsP3ZvaWQgMDpfLnJvb3QpLGJvZHk6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0dC5ib2R5KSxmZSksXz09bnVsbD92b2lkIDA6Xy5ib2R5KSxYdC5vdmVybGF5U3R5bGUpfSxnZXRUb29sdGlwQ29udGFpbmVyOk18fG5lfHxMZSxyZWY6dXQsYnVpbHRpblBsYWNlbWVudHM6ZGUsb3ZlcmxheTpTdCx2aXNpYmxlOmh0LG9uVmlzaWJsZUNoYW5nZTpndCxhZnRlclZpc2libGVDaGFuZ2U6UmUhPW51bGw/UmU6QmUsYXJyb3dDb250ZW50OnIuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpgJHtjdH0tYXJyb3ctY29udGVudGB9KSxtb3Rpb246e21vdGlvbk5hbWU6KDAsYy5tKShPZSwiem9vbS1iaWctZmFzdCIsRC50cmFuc2l0aW9uTmFtZSksbW90aW9uRGVhZGxpbmU6MWUzfSxkZXN0cm95VG9vbHRpcE9uSGlkZTohIVllfSksaHQ/KDAsZC5UbSkoemUse2NsYXNzTmFtZTpwdH0pOnplKTtyZXR1cm4gYnQoci5jcmVhdGVFbGVtZW50KEMuWi5Qcm92aWRlcix7dmFsdWU6Wm59LHluKSl9KTtXLl9JbnRlcm5hbFBhbmVsRG9Ob3RVc2VPcllvdVdpbGxCZUZpcmVkPXRlO3ZhciBqPVd9LDY3MTU5OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1o6ZnVuY3Rpb24oKXtyZXR1cm4gbn19KTt2YXIgcj0iNS4yNC4zIixuPXJ9LDE2NTY5OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse0g6ZnVuY3Rpb24oKXtyZXR1cm4gc319KTt2YXIgcj1lKDY3Mjk0KSxuPWUoNjY2ODApO2Z1bmN0aW9uIHQoKXt9Y29uc3QgaT1yLmNyZWF0ZUNvbnRleHQoe2FkZDp0LHJlbW92ZTp0fSk7ZnVuY3Rpb24gcyh1KXtjb25zdCBjPXIudXNlQ29udGV4dChpKSxoPXIudXNlUmVmKG51bGwpO3JldHVybigwLG4uWikobT0+e2lmKG0pe2NvbnN0IEM9dT9tLnF1ZXJ5U2VsZWN0b3IodSk6bTtjLmFkZChDKSxoLmN1cnJlbnQ9Q31lbHNlIGMucmVtb3ZlKGguY3VycmVudCl9KX12YXIgYT1udWxsfSw5NjY5OmZ1bmN0aW9uKHkscCxlKXt5LmV4cG9ydHM9ZSg1MTYwOSl9LDU1NDQ4OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg2NDg2Nyksbj1lKDM2MDI2KSx0PWUoNDM3MiksaT1lKDE1MzI3KSxzPWUoOTQwOTcpLGE9ZSg4NDEwOSksdT1lKDY3OTg1KSxjPWUoNzc4NzQpLGg9ZSg4MjY0OCksZD1lKDYwNjQ0KSxtPWUoOTAyMDUpO3kuZXhwb3J0cz1mdW5jdGlvbihnKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oRSx4KXt2YXIgTz1nLmRhdGEsVD1nLmhlYWRlcnMsUz1nLnJlc3BvbnNlVHlwZSxMO2Z1bmN0aW9uIEkoKXtnLmNhbmNlbFRva2VuJiZnLmNhbmNlbFRva2VuLnVuc3Vic2NyaWJlKEwpLGcuc2lnbmFsJiZnLnNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsTCl9ci5pc0Zvcm1EYXRhKE8pJiZyLmlzU3RhbmRhcmRCcm93c2VyRW52KCkmJmRlbGV0ZSBUWyJDb250ZW50LVR5cGUiXTt2YXIgUj1uZXcgWE1MSHR0cFJlcXVlc3Q7aWYoZy5hdXRoKXt2YXIgej1nLmF1dGgudXNlcm5hbWV8fCIiLEc9Zy5hdXRoLnBhc3N3b3JkP3VuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChnLmF1dGgucGFzc3dvcmQpKToiIjtULkF1dGhvcml6YXRpb249IkJhc2ljICIrYnRvYSh6KyI6IitHKX12YXIgWT1zKGcuYmFzZVVSTCxnLnVybCk7Ui5vcGVuKGcubWV0aG9kLnRvVXBwZXJDYXNlKCksaShZLGcucGFyYW1zLGcucGFyYW1zU2VyaWFsaXplciksITApLFIudGltZW91dD1nLnRpbWVvdXQ7ZnVuY3Rpb24gZWUoKXtpZihSKXt2YXIgdGU9ImdldEFsbFJlc3BvbnNlSGVhZGVycyJpbiBSP2EoUi5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSk6bnVsbCxsZT0hU3x8Uz09PSJ0ZXh0Inx8Uz09PSJqc29uIj9SLnJlc3BvbnNlVGV4dDpSLnJlc3BvbnNlLGNlPXtkYXRhOmxlLHN0YXR1czpSLnN0YXR1cyxzdGF0dXNUZXh0OlIuc3RhdHVzVGV4dCxoZWFkZXJzOnRlLGNvbmZpZzpnLHJlcXVlc3Q6Un07bihmdW5jdGlvbihqKXtFKGopLEkoKX0sZnVuY3Rpb24oail7eChqKSxJKCl9LGNlKSxSPW51bGx9fWlmKCJvbmxvYWRlbmQiaW4gUj9SLm9ubG9hZGVuZD1lZTpSLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpeyFSfHxSLnJlYWR5U3RhdGUhPT00fHxSLnN0YXR1cz09PTAmJiEoUi5yZXNwb25zZVVSTCYmUi5yZXNwb25zZVVSTC5pbmRleE9mKCJmaWxlOiIpPT09MCl8fHNldFRpbWVvdXQoZWUpfSxSLm9uYWJvcnQ9ZnVuY3Rpb24oKXtSJiYoeChuZXcgaCgiUmVxdWVzdCBhYm9ydGVkIixoLkVDT05OQUJPUlRFRCxnLFIpKSxSPW51bGwpfSxSLm9uZXJyb3I9ZnVuY3Rpb24oKXt4KG5ldyBoKCJOZXR3b3JrIEVycm9yIixoLkVSUl9ORVRXT1JLLGcsUixSKSksUj1udWxsfSxSLm9udGltZW91dD1mdW5jdGlvbigpe3ZhciBsZT1nLnRpbWVvdXQ/InRpbWVvdXQgb2YgIitnLnRpbWVvdXQrIm1zIGV4Y2VlZGVkIjoidGltZW91dCBleGNlZWRlZCIsY2U9Zy50cmFuc2l0aW9uYWx8fGM7Zy50aW1lb3V0RXJyb3JNZXNzYWdlJiYobGU9Zy50aW1lb3V0RXJyb3JNZXNzYWdlKSx4KG5ldyBoKGxlLGNlLmNsYXJpZnlUaW1lb3V0RXJyb3I/aC5FVElNRURPVVQ6aC5FQ09OTkFCT1JURUQsZyxSKSksUj1udWxsfSxyLmlzU3RhbmRhcmRCcm93c2VyRW52KCkpe3ZhciBKPShnLndpdGhDcmVkZW50aWFsc3x8dShZKSkmJmcueHNyZkNvb2tpZU5hbWU/dC5yZWFkKGcueHNyZkNvb2tpZU5hbWUpOnZvaWQgMDtKJiYoVFtnLnhzcmZIZWFkZXJOYW1lXT1KKX0ic2V0UmVxdWVzdEhlYWRlciJpbiBSJiZyLmZvckVhY2goVCxmdW5jdGlvbihsZSxjZSl7dHlwZW9mIE89PSJ1bmRlZmluZWQiJiZjZS50b0xvd2VyQ2FzZSgpPT09ImNvbnRlbnQtdHlwZSI/ZGVsZXRlIFRbY2VdOlIuc2V0UmVxdWVzdEhlYWRlcihjZSxsZSl9KSxyLmlzVW5kZWZpbmVkKGcud2l0aENyZWRlbnRpYWxzKXx8KFIud2l0aENyZWRlbnRpYWxzPSEhZy53aXRoQ3JlZGVudGlhbHMpLFMmJlMhPT0ianNvbiImJihSLnJlc3BvbnNlVHlwZT1nLnJlc3BvbnNlVHlwZSksdHlwZW9mIGcub25Eb3dubG9hZFByb2dyZXNzPT0iZnVuY3Rpb24iJiZSLmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixnLm9uRG93bmxvYWRQcm9ncmVzcyksdHlwZW9mIGcub25VcGxvYWRQcm9ncmVzcz09ImZ1bmN0aW9uIiYmUi51cGxvYWQmJlIudXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixnLm9uVXBsb2FkUHJvZ3Jlc3MpLChnLmNhbmNlbFRva2VufHxnLnNpZ25hbCkmJihMPWZ1bmN0aW9uKHRlKXtSJiYoeCghdGV8fHRlJiZ0ZS50eXBlP25ldyBkOnRlKSxSLmFib3J0KCksUj1udWxsKX0sZy5jYW5jZWxUb2tlbiYmZy5jYW5jZWxUb2tlbi5zdWJzY3JpYmUoTCksZy5zaWduYWwmJihnLnNpZ25hbC5hYm9ydGVkP0woKTpnLnNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsTCkpKSxPfHwoTz1udWxsKTt2YXIgbWU9bShZKTtpZihtZSYmWyJodHRwIiwiaHR0cHMiLCJmaWxlIl0uaW5kZXhPZihtZSk9PT0tMSl7eChuZXcgaCgiVW5zdXBwb3J0ZWQgcHJvdG9jb2wgIittZSsiOiIsaC5FUlJfQkFEX1JFUVVFU1QsZykpO3JldHVybn1SLnNlbmQoTyl9KX19LDUxNjA5OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg2NDg2Nyksbj1lKDkxODQ5KSx0PWUoMzAzMjEpLGk9ZSg0NzE4NSkscz1lKDQ1NTQ2KTtmdW5jdGlvbiBhKGMpe3ZhciBoPW5ldyB0KGMpLGQ9bih0LnByb3RvdHlwZS5yZXF1ZXN0LGgpO3JldHVybiByLmV4dGVuZChkLHQucHJvdG90eXBlLGgpLHIuZXh0ZW5kKGQsaCksZC5jcmVhdGU9ZnVuY3Rpb24oQyl7cmV0dXJuIGEoaShjLEMpKX0sZH12YXIgdT1hKHMpO3UuQXhpb3M9dCx1LkNhbmNlbGVkRXJyb3I9ZSg2MDY0NCksdS5DYW5jZWxUb2tlbj1lKDE0OTcyKSx1LmlzQ2FuY2VsPWUoMjY1MDIpLHUuVkVSU0lPTj1lKDk3Mjg4KS52ZXJzaW9uLHUudG9Gb3JtRGF0YT1lKDQ3Njc1KSx1LkF4aW9zRXJyb3I9ZSg4MjY0OCksdS5DYW5jZWw9dS5DYW5jZWxlZEVycm9yLHUuYWxsPWZ1bmN0aW9uKGgpe3JldHVybiBQcm9taXNlLmFsbChoKX0sdS5zcHJlYWQ9ZSg4NzEzKSx1LmlzQXhpb3NFcnJvcj1lKDE2MjY4KSx5LmV4cG9ydHM9dSx5LmV4cG9ydHMuZGVmYXVsdD11fSwxNDk3MjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNjA2NDQpO2Z1bmN0aW9uIG4odCl7aWYodHlwZW9mIHQhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiZXhlY3V0b3IgbXVzdCBiZSBhIGZ1bmN0aW9uLiIpO3ZhciBpO3RoaXMucHJvbWlzZT1uZXcgUHJvbWlzZShmdW5jdGlvbih1KXtpPXV9KTt2YXIgcz10aGlzO3RoaXMucHJvbWlzZS50aGVuKGZ1bmN0aW9uKGEpe2lmKHMuX2xpc3RlbmVycyl7dmFyIHUsYz1zLl9saXN0ZW5lcnMubGVuZ3RoO2Zvcih1PTA7dTxjO3UrKylzLl9saXN0ZW5lcnNbdV0oYSk7cy5fbGlzdGVuZXJzPW51bGx9fSksdGhpcy5wcm9taXNlLnRoZW49ZnVuY3Rpb24oYSl7dmFyIHUsYz1uZXcgUHJvbWlzZShmdW5jdGlvbihoKXtzLnN1YnNjcmliZShoKSx1PWh9KS50aGVuKGEpO3JldHVybiBjLmNhbmNlbD1mdW5jdGlvbigpe3MudW5zdWJzY3JpYmUodSl9LGN9LHQoZnVuY3Rpb24odSl7cy5yZWFzb258fChzLnJlYXNvbj1uZXcgcih1KSxpKHMucmVhc29uKSl9KX1uLnByb3RvdHlwZS50aHJvd0lmUmVxdWVzdGVkPWZ1bmN0aW9uKCl7aWYodGhpcy5yZWFzb24pdGhyb3cgdGhpcy5yZWFzb259LG4ucHJvdG90eXBlLnN1YnNjcmliZT1mdW5jdGlvbihpKXtpZih0aGlzLnJlYXNvbil7aSh0aGlzLnJlYXNvbik7cmV0dXJufXRoaXMuX2xpc3RlbmVycz90aGlzLl9saXN0ZW5lcnMucHVzaChpKTp0aGlzLl9saXN0ZW5lcnM9W2ldfSxuLnByb3RvdHlwZS51bnN1YnNjcmliZT1mdW5jdGlvbihpKXtpZih0aGlzLl9saXN0ZW5lcnMpe3ZhciBzPXRoaXMuX2xpc3RlbmVycy5pbmRleE9mKGkpO3MhPT0tMSYmdGhpcy5fbGlzdGVuZXJzLnNwbGljZShzLDEpfX0sbi5zb3VyY2U9ZnVuY3Rpb24oKXt2YXIgaSxzPW5ldyBuKGZ1bmN0aW9uKHUpe2k9dX0pO3JldHVybnt0b2tlbjpzLGNhbmNlbDppfX0seS5leHBvcnRzPW59LDYwNjQ0OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg4MjY0OCksbj1lKDY0ODY3KTtmdW5jdGlvbiB0KGkpe3IuY2FsbCh0aGlzLGk9PW51bGw/ImNhbmNlbGVkIjppLHIuRVJSX0NBTkNFTEVEKSx0aGlzLm5hbWU9IkNhbmNlbGVkRXJyb3IifW4uaW5oZXJpdHModCxyLHtfX0NBTkNFTF9fOiEwfSkseS5leHBvcnRzPXR9LDI2NTAyOmZ1bmN0aW9uKHkpeyJ1c2Ugc3RyaWN0Ijt5LmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuISEoZSYmZS5fX0NBTkNFTF9fKX19LDMwMzIxOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg2NDg2Nyksbj1lKDE1MzI3KSx0PWUoODA3ODIpLGk9ZSgxMzU3Mikscz1lKDQ3MTg1KSxhPWUoOTQwOTcpLHU9ZSg1NDg3NSksYz11LnZhbGlkYXRvcnM7ZnVuY3Rpb24gaChkKXt0aGlzLmRlZmF1bHRzPWQsdGhpcy5pbnRlcmNlcHRvcnM9e3JlcXVlc3Q6bmV3IHQscmVzcG9uc2U6bmV3IHR9fWgucHJvdG90eXBlLnJlcXVlc3Q9ZnVuY3Rpb24obSxDKXt0eXBlb2YgbT09InN0cmluZyI/KEM9Q3x8e30sQy51cmw9bSk6Qz1tfHx7fSxDPXModGhpcy5kZWZhdWx0cyxDKSxDLm1ldGhvZD9DLm1ldGhvZD1DLm1ldGhvZC50b0xvd2VyQ2FzZSgpOnRoaXMuZGVmYXVsdHMubWV0aG9kP0MubWV0aG9kPXRoaXMuZGVmYXVsdHMubWV0aG9kLnRvTG93ZXJDYXNlKCk6Qy5tZXRob2Q9ImdldCI7dmFyIGc9Qy50cmFuc2l0aW9uYWw7ZyE9PXZvaWQgMCYmdS5hc3NlcnRPcHRpb25zKGcse3NpbGVudEpTT05QYXJzaW5nOmMudHJhbnNpdGlvbmFsKGMuYm9vbGVhbiksZm9yY2VkSlNPTlBhcnNpbmc6Yy50cmFuc2l0aW9uYWwoYy5ib29sZWFuKSxjbGFyaWZ5VGltZW91dEVycm9yOmMudHJhbnNpdGlvbmFsKGMuYm9vbGVhbil9LCExKTt2YXIgdz1bXSxFPSEwO3RoaXMuaW50ZXJjZXB0b3JzLnJlcXVlc3QuZm9yRWFjaChmdW5jdGlvbih6KXt0eXBlb2Ygei5ydW5XaGVuPT0iZnVuY3Rpb24iJiZ6LnJ1bldoZW4oQyk9PT0hMXx8KEU9RSYmei5zeW5jaHJvbm91cyx3LnVuc2hpZnQoei5mdWxmaWxsZWQsei5yZWplY3RlZCkpfSk7dmFyIHg9W107dGhpcy5pbnRlcmNlcHRvcnMucmVzcG9uc2UuZm9yRWFjaChmdW5jdGlvbih6KXt4LnB1c2goei5mdWxmaWxsZWQsei5yZWplY3RlZCl9KTt2YXIgTztpZighRSl7dmFyIFQ9W2ksdm9pZCAwXTtmb3IoQXJyYXkucHJvdG90eXBlLnVuc2hpZnQuYXBwbHkoVCx3KSxUPVQuY29uY2F0KHgpLE89UHJvbWlzZS5yZXNvbHZlKEMpO1QubGVuZ3RoOylPPU8udGhlbihULnNoaWZ0KCksVC5zaGlmdCgpKTtyZXR1cm4gT31mb3IodmFyIFM9Qzt3Lmxlbmd0aDspe3ZhciBMPXcuc2hpZnQoKSxJPXcuc2hpZnQoKTt0cnl7Uz1MKFMpfWNhdGNoKFIpe0koUik7YnJlYWt9fXRyeXtPPWkoUyl9Y2F0Y2goUil7cmV0dXJuIFByb21pc2UucmVqZWN0KFIpfWZvcig7eC5sZW5ndGg7KU89Ty50aGVuKHguc2hpZnQoKSx4LnNoaWZ0KCkpO3JldHVybiBPfSxoLnByb3RvdHlwZS5nZXRVcmk9ZnVuY3Rpb24obSl7bT1zKHRoaXMuZGVmYXVsdHMsbSk7dmFyIEM9YShtLmJhc2VVUkwsbS51cmwpO3JldHVybiBuKEMsbS5wYXJhbXMsbS5wYXJhbXNTZXJpYWxpemVyKX0sci5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsIm9wdGlvbnMiXSxmdW5jdGlvbihtKXtoLnByb3RvdHlwZVttXT1mdW5jdGlvbihDLGcpe3JldHVybiB0aGlzLnJlcXVlc3QocyhnfHx7fSx7bWV0aG9kOm0sdXJsOkMsZGF0YTooZ3x8e30pLmRhdGF9KSl9fSksci5mb3JFYWNoKFsicG9zdCIsInB1dCIsInBhdGNoIl0sZnVuY3Rpb24obSl7ZnVuY3Rpb24gQyhnKXtyZXR1cm4gZnVuY3Rpb24oRSx4LE8pe3JldHVybiB0aGlzLnJlcXVlc3QocyhPfHx7fSx7bWV0aG9kOm0saGVhZGVyczpnP3siQ29udGVudC1UeXBlIjoibXVsdGlwYXJ0L2Zvcm0tZGF0YSJ9Ont9LHVybDpFLGRhdGE6eH0pKX19aC5wcm90b3R5cGVbbV09QygpLGgucHJvdG90eXBlW20rIkZvcm0iXT1DKCEwKX0pLHkuZXhwb3J0cz1ofSw4MjY0ODpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNjQ4NjcpO2Z1bmN0aW9uIG4ocyxhLHUsYyxoKXtFcnJvci5jYWxsKHRoaXMpLHRoaXMubWVzc2FnZT1zLHRoaXMubmFtZT0iQXhpb3NFcnJvciIsYSYmKHRoaXMuY29kZT1hKSx1JiYodGhpcy5jb25maWc9dSksYyYmKHRoaXMucmVxdWVzdD1jKSxoJiYodGhpcy5yZXNwb25zZT1oKX1yLmluaGVyaXRzKG4sRXJyb3Ise3RvSlNPTjpmdW5jdGlvbigpe3JldHVybnttZXNzYWdlOnRoaXMubWVzc2FnZSxuYW1lOnRoaXMubmFtZSxkZXNjcmlwdGlvbjp0aGlzLmRlc2NyaXB0aW9uLG51bWJlcjp0aGlzLm51bWJlcixmaWxlTmFtZTp0aGlzLmZpbGVOYW1lLGxpbmVOdW1iZXI6dGhpcy5saW5lTnVtYmVyLGNvbHVtbk51bWJlcjp0aGlzLmNvbHVtbk51bWJlcixzdGFjazp0aGlzLnN0YWNrLGNvbmZpZzp0aGlzLmNvbmZpZyxjb2RlOnRoaXMuY29kZSxzdGF0dXM6dGhpcy5yZXNwb25zZSYmdGhpcy5yZXNwb25zZS5zdGF0dXM/dGhpcy5yZXNwb25zZS5zdGF0dXM6bnVsbH19fSk7dmFyIHQ9bi5wcm90b3R5cGUsaT17fTtbIkVSUl9CQURfT1BUSU9OX1ZBTFVFIiwiRVJSX0JBRF9PUFRJT04iLCJFQ09OTkFCT1JURUQiLCJFVElNRURPVVQiLCJFUlJfTkVUV09SSyIsIkVSUl9GUl9UT09fTUFOWV9SRURJUkVDVFMiLCJFUlJfREVQUkVDQVRFRCIsIkVSUl9CQURfUkVTUE9OU0UiLCJFUlJfQkFEX1JFUVVFU1QiLCJFUlJfQ0FOQ0VMRUQiXS5mb3JFYWNoKGZ1bmN0aW9uKHMpe2lbc109e3ZhbHVlOnN9fSksT2JqZWN0LmRlZmluZVByb3BlcnRpZXMobixpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiaXNBeGlvc0Vycm9yIix7dmFsdWU6ITB9KSxuLmZyb209ZnVuY3Rpb24ocyxhLHUsYyxoLGQpe3ZhciBtPU9iamVjdC5jcmVhdGUodCk7cmV0dXJuIHIudG9GbGF0T2JqZWN0KHMsbSxmdW5jdGlvbihnKXtyZXR1cm4gZyE9PUVycm9yLnByb3RvdHlwZX0pLG4uY2FsbChtLHMubWVzc2FnZSxhLHUsYyxoKSxtLm5hbWU9cy5uYW1lLGQmJk9iamVjdC5hc3NpZ24obSxkKSxtfSx5LmV4cG9ydHM9bn0sODA3ODI6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDY0ODY3KTtmdW5jdGlvbiBuKCl7dGhpcy5oYW5kbGVycz1bXX1uLnByb3RvdHlwZS51c2U9ZnVuY3Rpb24oaSxzLGEpe3JldHVybiB0aGlzLmhhbmRsZXJzLnB1c2goe2Z1bGZpbGxlZDppLHJlamVjdGVkOnMsc3luY2hyb25vdXM6YT9hLnN5bmNocm9ub3VzOiExLHJ1bldoZW46YT9hLnJ1bldoZW46bnVsbH0pLHRoaXMuaGFuZGxlcnMubGVuZ3RoLTF9LG4ucHJvdG90eXBlLmVqZWN0PWZ1bmN0aW9uKGkpe3RoaXMuaGFuZGxlcnNbaV0mJih0aGlzLmhhbmRsZXJzW2ldPW51bGwpfSxuLnByb3RvdHlwZS5mb3JFYWNoPWZ1bmN0aW9uKGkpe3IuZm9yRWFjaCh0aGlzLmhhbmRsZXJzLGZ1bmN0aW9uKGEpe2EhPT1udWxsJiZpKGEpfSl9LHkuZXhwb3J0cz1ufSw5NDA5NzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoOTE3OTMpLG49ZSg3MzAzKTt5LmV4cG9ydHM9ZnVuY3Rpb24oaSxzKXtyZXR1cm4gaSYmIXIocyk/bihpLHMpOnN9fSwxMzU3MjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNjQ4NjcpLG49ZSgxODUyNyksdD1lKDI2NTAyKSxpPWUoNDU1NDYpLHM9ZSg2MDY0NCk7ZnVuY3Rpb24gYSh1KXtpZih1LmNhbmNlbFRva2VuJiZ1LmNhbmNlbFRva2VuLnRocm93SWZSZXF1ZXN0ZWQoKSx1LnNpZ25hbCYmdS5zaWduYWwuYWJvcnRlZCl0aHJvdyBuZXcgc315LmV4cG9ydHM9ZnVuY3Rpb24oYyl7YShjKSxjLmhlYWRlcnM9Yy5oZWFkZXJzfHx7fSxjLmRhdGE9bi5jYWxsKGMsYy5kYXRhLGMuaGVhZGVycyxjLnRyYW5zZm9ybVJlcXVlc3QpLGMuaGVhZGVycz1yLm1lcmdlKGMuaGVhZGVycy5jb21tb258fHt9LGMuaGVhZGVyc1tjLm1ldGhvZF18fHt9LGMuaGVhZGVycyksci5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsInBvc3QiLCJwdXQiLCJwYXRjaCIsImNvbW1vbiJdLGZ1bmN0aW9uKG0pe2RlbGV0ZSBjLmhlYWRlcnNbbV19KTt2YXIgaD1jLmFkYXB0ZXJ8fGkuYWRhcHRlcjtyZXR1cm4gaChjKS50aGVuKGZ1bmN0aW9uKG0pe3JldHVybiBhKGMpLG0uZGF0YT1uLmNhbGwoYyxtLmRhdGEsbS5oZWFkZXJzLGMudHJhbnNmb3JtUmVzcG9uc2UpLG19LGZ1bmN0aW9uKG0pe3JldHVybiB0KG0pfHwoYShjKSxtJiZtLnJlc3BvbnNlJiYobS5yZXNwb25zZS5kYXRhPW4uY2FsbChjLG0ucmVzcG9uc2UuZGF0YSxtLnJlc3BvbnNlLmhlYWRlcnMsYy50cmFuc2Zvcm1SZXNwb25zZSkpKSxQcm9taXNlLnJlamVjdChtKX0pfX0sNDcxODU6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDY0ODY3KTt5LmV4cG9ydHM9ZnVuY3Rpb24odCxpKXtpPWl8fHt9O3ZhciBzPXt9O2Z1bmN0aW9uIGEoQyxnKXtyZXR1cm4gci5pc1BsYWluT2JqZWN0KEMpJiZyLmlzUGxhaW5PYmplY3QoZyk/ci5tZXJnZShDLGcpOnIuaXNQbGFpbk9iamVjdChnKT9yLm1lcmdlKHt9LGcpOnIuaXNBcnJheShnKT9nLnNsaWNlKCk6Z31mdW5jdGlvbiB1KEMpe2lmKHIuaXNVbmRlZmluZWQoaVtDXSkpe2lmKCFyLmlzVW5kZWZpbmVkKHRbQ10pKXJldHVybiBhKHZvaWQgMCx0W0NdKX1lbHNlIHJldHVybiBhKHRbQ10saVtDXSl9ZnVuY3Rpb24gYyhDKXtpZighci5pc1VuZGVmaW5lZChpW0NdKSlyZXR1cm4gYSh2b2lkIDAsaVtDXSl9ZnVuY3Rpb24gaChDKXtpZihyLmlzVW5kZWZpbmVkKGlbQ10pKXtpZighci5pc1VuZGVmaW5lZCh0W0NdKSlyZXR1cm4gYSh2b2lkIDAsdFtDXSl9ZWxzZSByZXR1cm4gYSh2b2lkIDAsaVtDXSl9ZnVuY3Rpb24gZChDKXtpZihDIGluIGkpcmV0dXJuIGEodFtDXSxpW0NdKTtpZihDIGluIHQpcmV0dXJuIGEodm9pZCAwLHRbQ10pfXZhciBtPXt1cmw6YyxtZXRob2Q6YyxkYXRhOmMsYmFzZVVSTDpoLHRyYW5zZm9ybVJlcXVlc3Q6aCx0cmFuc2Zvcm1SZXNwb25zZTpoLHBhcmFtc1NlcmlhbGl6ZXI6aCx0aW1lb3V0OmgsdGltZW91dE1lc3NhZ2U6aCx3aXRoQ3JlZGVudGlhbHM6aCxhZGFwdGVyOmgscmVzcG9uc2VUeXBlOmgseHNyZkNvb2tpZU5hbWU6aCx4c3JmSGVhZGVyTmFtZTpoLG9uVXBsb2FkUHJvZ3Jlc3M6aCxvbkRvd25sb2FkUHJvZ3Jlc3M6aCxkZWNvbXByZXNzOmgsbWF4Q29udGVudExlbmd0aDpoLG1heEJvZHlMZW5ndGg6aCxiZWZvcmVSZWRpcmVjdDpoLHRyYW5zcG9ydDpoLGh0dHBBZ2VudDpoLGh0dHBzQWdlbnQ6aCxjYW5jZWxUb2tlbjpoLHNvY2tldFBhdGg6aCxyZXNwb25zZUVuY29kaW5nOmgsdmFsaWRhdGVTdGF0dXM6ZH07cmV0dXJuIHIuZm9yRWFjaChPYmplY3Qua2V5cyh0KS5jb25jYXQoT2JqZWN0LmtleXMoaSkpLGZ1bmN0aW9uKGcpe3ZhciB3PW1bZ118fHUsRT13KGcpO3IuaXNVbmRlZmluZWQoRSkmJnchPT1kfHwoc1tnXT1FKX0pLHN9fSwzNjAyNjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoODI2NDgpO3kuZXhwb3J0cz1mdW5jdGlvbih0LGkscyl7dmFyIGE9cy5jb25maWcudmFsaWRhdGVTdGF0dXM7IXMuc3RhdHVzfHwhYXx8YShzLnN0YXR1cyk/dChzKTppKG5ldyByKCJSZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyBjb2RlICIrcy5zdGF0dXMsW3IuRVJSX0JBRF9SRVFVRVNULHIuRVJSX0JBRF9SRVNQT05TRV1bTWF0aC5mbG9vcihzLnN0YXR1cy8xMDApLTRdLHMuY29uZmlnLHMucmVxdWVzdCxzKSl9fSwxODUyNzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNjQ4NjcpLG49ZSg0NTU0Nik7eS5leHBvcnRzPWZ1bmN0aW9uKGkscyxhKXt2YXIgdT10aGlzfHxuO3JldHVybiByLmZvckVhY2goYSxmdW5jdGlvbihoKXtpPWguY2FsbCh1LGkscyl9KSxpfX0sNDU1NDY6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDM0MTU1KSxuPWUoNjQ4NjcpLHQ9ZSgxNjAxNiksaT1lKDgyNjQ4KSxzPWUoNzc4NzQpLGE9ZSg0NzY3NSksdT17IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCJ9O2Z1bmN0aW9uIGMoQyxnKXshbi5pc1VuZGVmaW5lZChDKSYmbi5pc1VuZGVmaW5lZChDWyJDb250ZW50LVR5cGUiXSkmJihDWyJDb250ZW50LVR5cGUiXT1nKX1mdW5jdGlvbiBoKCl7dmFyIEM7cmV0dXJuKHR5cGVvZiBYTUxIdHRwUmVxdWVzdCE9InVuZGVmaW5lZCJ8fHR5cGVvZiByIT0idW5kZWZpbmVkIiYmT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHIpPT09IltvYmplY3QgcHJvY2Vzc10iKSYmKEM9ZSg1NTQ0OCkpLEN9ZnVuY3Rpb24gZChDLGcsdyl7aWYobi5pc1N0cmluZyhDKSl0cnl7cmV0dXJuKGd8fEpTT04ucGFyc2UpKEMpLG4udHJpbShDKX1jYXRjaChFKXtpZihFLm5hbWUhPT0iU3ludGF4RXJyb3IiKXRocm93IEV9cmV0dXJuKHd8fEpTT04uc3RyaW5naWZ5KShDKX12YXIgbT17dHJhbnNpdGlvbmFsOnMsYWRhcHRlcjpoKCksdHJhbnNmb3JtUmVxdWVzdDpbZnVuY3Rpb24oZyx3KXtpZih0KHcsIkFjY2VwdCIpLHQodywiQ29udGVudC1UeXBlIiksbi5pc0Zvcm1EYXRhKGcpfHxuLmlzQXJyYXlCdWZmZXIoZyl8fG4uaXNCdWZmZXIoZyl8fG4uaXNTdHJlYW0oZyl8fG4uaXNGaWxlKGcpfHxuLmlzQmxvYihnKSlyZXR1cm4gZztpZihuLmlzQXJyYXlCdWZmZXJWaWV3KGcpKXJldHVybiBnLmJ1ZmZlcjtpZihuLmlzVVJMU2VhcmNoUGFyYW1zKGcpKXJldHVybiBjKHcsImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PXV0Zi04IiksZy50b1N0cmluZygpO3ZhciBFPW4uaXNPYmplY3QoZykseD13JiZ3WyJDb250ZW50LVR5cGUiXSxPO2lmKChPPW4uaXNGaWxlTGlzdChnKSl8fEUmJng9PT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIpe3ZhciBUPXRoaXMuZW52JiZ0aGlzLmVudi5Gb3JtRGF0YTtyZXR1cm4gYShPP3siZmlsZXNbXSI6Z306ZyxUJiZuZXcgVCl9ZWxzZSBpZihFfHx4PT09ImFwcGxpY2F0aW9uL2pzb24iKXJldHVybiBjKHcsImFwcGxpY2F0aW9uL2pzb24iKSxkKGcpO3JldHVybiBnfV0sdHJhbnNmb3JtUmVzcG9uc2U6W2Z1bmN0aW9uKGcpe3ZhciB3PXRoaXMudHJhbnNpdGlvbmFsfHxtLnRyYW5zaXRpb25hbCxFPXcmJncuc2lsZW50SlNPTlBhcnNpbmcseD13JiZ3LmZvcmNlZEpTT05QYXJzaW5nLE89IUUmJnRoaXMucmVzcG9uc2VUeXBlPT09Impzb24iO2lmKE98fHgmJm4uaXNTdHJpbmcoZykmJmcubGVuZ3RoKXRyeXtyZXR1cm4gSlNPTi5wYXJzZShnKX1jYXRjaChUKXtpZihPKXRocm93IFQubmFtZT09PSJTeW50YXhFcnJvciI/aS5mcm9tKFQsaS5FUlJfQkFEX1JFU1BPTlNFLHRoaXMsbnVsbCx0aGlzLnJlc3BvbnNlKTpUfXJldHVybiBnfV0sdGltZW91dDowLHhzcmZDb29raWVOYW1lOiJYU1JGLVRPS0VOIix4c3JmSGVhZGVyTmFtZToiWC1YU1JGLVRPS0VOIixtYXhDb250ZW50TGVuZ3RoOi0xLG1heEJvZHlMZW5ndGg6LTEsZW52OntGb3JtRGF0YTplKDkxNjIzKX0sdmFsaWRhdGVTdGF0dXM6ZnVuY3Rpb24oZyl7cmV0dXJuIGc+PTIwMCYmZzwzMDB9LGhlYWRlcnM6e2NvbW1vbjp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L3BsYWluLCAqLyoifX19O24uZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiXSxmdW5jdGlvbihnKXttLmhlYWRlcnNbZ109e319KSxuLmZvckVhY2goWyJwb3N0IiwicHV0IiwicGF0Y2giXSxmdW5jdGlvbihnKXttLmhlYWRlcnNbZ109bi5tZXJnZSh1KX0pLHkuZXhwb3J0cz1tfSw3Nzg3NDpmdW5jdGlvbih5KXsidXNlIHN0cmljdCI7eS5leHBvcnRzPXtzaWxlbnRKU09OUGFyc2luZzohMCxmb3JjZWRKU09OUGFyc2luZzohMCxjbGFyaWZ5VGltZW91dEVycm9yOiExfX0sOTcyODg6ZnVuY3Rpb24oeSl7eS5leHBvcnRzPXt2ZXJzaW9uOiIwLjI3LjIifX0sOTE4NDk6ZnVuY3Rpb24oeSl7InVzZSBzdHJpY3QiO3kuZXhwb3J0cz1mdW5jdGlvbihlLHIpe3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgdD1uZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aCksaT0wO2k8dC5sZW5ndGg7aSsrKXRbaV09YXJndW1lbnRzW2ldO3JldHVybiBlLmFwcGx5KHIsdCl9fX0sMTUzMjc6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDY0ODY3KTtmdW5jdGlvbiBuKHQpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQodCkucmVwbGFjZSgvJTNBL2dpLCI6IikucmVwbGFjZSgvJTI0L2csIiQiKS5yZXBsYWNlKC8lMkMvZ2ksIiwiKS5yZXBsYWNlKC8lMjAvZywiKyIpLnJlcGxhY2UoLyU1Qi9naSwiWyIpLnJlcGxhY2UoLyU1RC9naSwiXSIpfXkuZXhwb3J0cz1mdW5jdGlvbihpLHMsYSl7aWYoIXMpcmV0dXJuIGk7dmFyIHU7aWYoYSl1PWEocyk7ZWxzZSBpZihyLmlzVVJMU2VhcmNoUGFyYW1zKHMpKXU9cy50b1N0cmluZygpO2Vsc2V7dmFyIGM9W107ci5mb3JFYWNoKHMsZnVuY3Rpb24obSxDKXttPT09bnVsbHx8dHlwZW9mIG09PSJ1bmRlZmluZWQifHwoci5pc0FycmF5KG0pP0M9QysiW10iOm09W21dLHIuZm9yRWFjaChtLGZ1bmN0aW9uKHcpe3IuaXNEYXRlKHcpP3c9dy50b0lTT1N0cmluZygpOnIuaXNPYmplY3QodykmJih3PUpTT04uc3RyaW5naWZ5KHcpKSxjLnB1c2gobihDKSsiPSIrbih3KSl9KSl9KSx1PWMuam9pbigiJiIpfWlmKHUpe3ZhciBoPWkuaW5kZXhPZigiIyIpO2ghPT0tMSYmKGk9aS5zbGljZSgwLGgpKSxpKz0oaS5pbmRleE9mKCI/Iik9PT0tMT8iPyI6IiYiKSt1fXJldHVybiBpfX0sNzMwMzpmdW5jdGlvbih5KXsidXNlIHN0cmljdCI7eS5leHBvcnRzPWZ1bmN0aW9uKGUscil7cmV0dXJuIHI/ZS5yZXBsYWNlKC9cLyskLywiIikrIi8iK3IucmVwbGFjZSgvXlwvKy8sIiIpOmV9fSw0MzcyOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg2NDg2Nyk7eS5leHBvcnRzPXIuaXNTdGFuZGFyZEJyb3dzZXJFbnYoKT9mdW5jdGlvbigpe3JldHVybnt3cml0ZTpmdW5jdGlvbihpLHMsYSx1LGMsaCl7dmFyIGQ9W107ZC5wdXNoKGkrIj0iK2VuY29kZVVSSUNvbXBvbmVudChzKSksci5pc051bWJlcihhKSYmZC5wdXNoKCJleHBpcmVzPSIrbmV3IERhdGUoYSkudG9HTVRTdHJpbmcoKSksci5pc1N0cmluZyh1KSYmZC5wdXNoKCJwYXRoPSIrdSksci5pc1N0cmluZyhjKSYmZC5wdXNoKCJkb21haW49IitjKSxoPT09ITAmJmQucHVzaCgic2VjdXJlIiksZG9jdW1lbnQuY29va2llPWQuam9pbigiOyAiKX0scmVhZDpmdW5jdGlvbihpKXt2YXIgcz1kb2N1bWVudC5jb29raWUubWF0Y2gobmV3IFJlZ0V4cCgiKF58O1xccyopKCIraSsiKT0oW147XSopIikpO3JldHVybiBzP2RlY29kZVVSSUNvbXBvbmVudChzWzNdKTpudWxsfSxyZW1vdmU6ZnVuY3Rpb24oaSl7dGhpcy53cml0ZShpLCIiLERhdGUubm93KCktODY0ZTUpfX19KCk6ZnVuY3Rpb24oKXtyZXR1cm57d3JpdGU6ZnVuY3Rpb24oKXt9LHJlYWQ6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0scmVtb3ZlOmZ1bmN0aW9uKCl7fX19KCl9LDkxNzkzOmZ1bmN0aW9uKHkpeyJ1c2Ugc3RyaWN0Ijt5LmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuL14oW2Etel1bYS16XGQrXC0uXSo6KT9cL1wvL2kudGVzdChlKX19LDE2MjY4OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg2NDg2Nyk7eS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiByLmlzT2JqZWN0KHQpJiZ0LmlzQXhpb3NFcnJvcj09PSEwfX0sNjc5ODU6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDY0ODY3KTt5LmV4cG9ydHM9ci5pc1N0YW5kYXJkQnJvd3NlckVudigpP2Z1bmN0aW9uKCl7dmFyIHQ9Lyhtc2llfHRyaWRlbnQpL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSxpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKSxzO2Z1bmN0aW9uIGEodSl7dmFyIGM9dTtyZXR1cm4gdCYmKGkuc2V0QXR0cmlidXRlKCJocmVmIixjKSxjPWkuaHJlZiksaS5zZXRBdHRyaWJ1dGUoImhyZWYiLGMpLHtocmVmOmkuaHJlZixwcm90b2NvbDppLnByb3RvY29sP2kucHJvdG9jb2wucmVwbGFjZSgvOiQvLCIiKToiIixob3N0OmkuaG9zdCxzZWFyY2g6aS5zZWFyY2g/aS5zZWFyY2gucmVwbGFjZSgvXlw/LywiIik6IiIsaGFzaDppLmhhc2g/aS5oYXNoLnJlcGxhY2UoL14jLywiIik6IiIsaG9zdG5hbWU6aS5ob3N0bmFtZSxwb3J0OmkucG9ydCxwYXRobmFtZTppLnBhdGhuYW1lLmNoYXJBdCgwKT09PSIvIj9pLnBhdGhuYW1lOiIvIitpLnBhdGhuYW1lfX1yZXR1cm4gcz1hKHdpbmRvdy5sb2NhdGlvbi5ocmVmKSxmdW5jdGlvbihjKXt2YXIgaD1yLmlzU3RyaW5nKGMpP2EoYyk6YztyZXR1cm4gaC5wcm90b2NvbD09PXMucHJvdG9jb2wmJmguaG9zdD09PXMuaG9zdH19KCk6ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4hMH19KCl9LDE2MDE2OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg2NDg2Nyk7eS5leHBvcnRzPWZ1bmN0aW9uKHQsaSl7ci5mb3JFYWNoKHQsZnVuY3Rpb24oYSx1KXt1IT09aSYmdS50b1VwcGVyQ2FzZSgpPT09aS50b1VwcGVyQ2FzZSgpJiYodFtpXT1hLGRlbGV0ZSB0W3VdKX0pfX0sOTE2MjM6ZnVuY3Rpb24oeSl7eS5leHBvcnRzPW51bGx9LDg0MTA5OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg2NDg2Nyksbj1bImFnZSIsImF1dGhvcml6YXRpb24iLCJjb250ZW50LWxlbmd0aCIsImNvbnRlbnQtdHlwZSIsImV0YWciLCJleHBpcmVzIiwiZnJvbSIsImhvc3QiLCJpZi1tb2RpZmllZC1zaW5jZSIsImlmLXVubW9kaWZpZWQtc2luY2UiLCJsYXN0LW1vZGlmaWVkIiwibG9jYXRpb24iLCJtYXgtZm9yd2FyZHMiLCJwcm94eS1hdXRob3JpemF0aW9uIiwicmVmZXJlciIsInJldHJ5LWFmdGVyIiwidXNlci1hZ2VudCJdO3kuZXhwb3J0cz1mdW5jdGlvbihpKXt2YXIgcz17fSxhLHUsYztyZXR1cm4gaSYmci5mb3JFYWNoKGkuc3BsaXQoYAorYCksZnVuY3Rpb24oZCl7aWYoYz1kLmluZGV4T2YoIjoiKSxhPXIudHJpbShkLnN1YnN0cigwLGMpKS50b0xvd2VyQ2FzZSgpLHU9ci50cmltKGQuc3Vic3RyKGMrMSkpLGEpe2lmKHNbYV0mJm4uaW5kZXhPZihhKT49MClyZXR1cm47YT09PSJzZXQtY29va2llIj9zW2FdPShzW2FdP3NbYV06W10pLmNvbmNhdChbdV0pOnNbYV09c1thXT9zW2FdKyIsICIrdTp1fX0pLHN9fSw5MDIwNTpmdW5jdGlvbih5KXsidXNlIHN0cmljdCI7eS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciByPS9eKFstK1x3XXsxLDI1fSkoOj9cL1wvfDopLy5leGVjKGUpO3JldHVybiByJiZyWzFdfHwiIn19LDg3MTM6ZnVuY3Rpb24oeSl7InVzZSBzdHJpY3QiO3kuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIGUuYXBwbHkobnVsbCxuKX19fSw0NzY3NTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNDg3NjQpLmxXLG49ZSg2NDg2Nyk7ZnVuY3Rpb24gdChpLHMpe3M9c3x8bmV3IEZvcm1EYXRhO3ZhciBhPVtdO2Z1bmN0aW9uIHUoaCl7cmV0dXJuIGg9PT1udWxsPyIiOm4uaXNEYXRlKGgpP2gudG9JU09TdHJpbmcoKTpuLmlzQXJyYXlCdWZmZXIoaCl8fG4uaXNUeXBlZEFycmF5KGgpP3R5cGVvZiBCbG9iPT0iZnVuY3Rpb24iP25ldyBCbG9iKFtoXSk6ci5mcm9tKGgpOmh9ZnVuY3Rpb24gYyhoLGQpe2lmKG4uaXNQbGFpbk9iamVjdChoKXx8bi5pc0FycmF5KGgpKXtpZihhLmluZGV4T2YoaCkhPT0tMSl0aHJvdyBFcnJvcigiQ2lyY3VsYXIgcmVmZXJlbmNlIGRldGVjdGVkIGluICIrZCk7YS5wdXNoKGgpLG4uZm9yRWFjaChoLGZ1bmN0aW9uKEMsZyl7aWYoIW4uaXNVbmRlZmluZWQoQykpe3ZhciB3PWQ/ZCsiLiIrZzpnLEU7aWYoQyYmIWQmJnR5cGVvZiBDPT0ib2JqZWN0Iil7aWYobi5lbmRzV2l0aChnLCJ7fSIpKUM9SlNPTi5zdHJpbmdpZnkoQyk7ZWxzZSBpZihuLmVuZHNXaXRoKGcsIltdIikmJihFPW4udG9BcnJheShDKSkpe0UuZm9yRWFjaChmdW5jdGlvbih4KXshbi5pc1VuZGVmaW5lZCh4KSYmcy5hcHBlbmQodyx1KHgpKX0pO3JldHVybn19YyhDLHcpfX0pLGEucG9wKCl9ZWxzZSBzLmFwcGVuZChkLHUoaCkpfXJldHVybiBjKGkpLHN9eS5leHBvcnRzPXR9LDU0ODc1OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg5NzI4OCkudmVyc2lvbixuPWUoODI2NDgpLHQ9e307WyJvYmplY3QiLCJib29sZWFuIiwibnVtYmVyIiwiZnVuY3Rpb24iLCJzdHJpbmciLCJzeW1ib2wiXS5mb3JFYWNoKGZ1bmN0aW9uKGEsdSl7dFthXT1mdW5jdGlvbihoKXtyZXR1cm4gdHlwZW9mIGg9PT1hfHwiYSIrKHU8MT8ibiAiOiIgIikrYX19KTt2YXIgaT17fTt0LnRyYW5zaXRpb25hbD1mdW5jdGlvbih1LGMsaCl7ZnVuY3Rpb24gZChtLEMpe3JldHVybiJbQXhpb3MgdiIrcisiXSBUcmFuc2l0aW9uYWwgb3B0aW9uICciK20rIiciK0MrKGg/Ii4gIitoOiIiKX1yZXR1cm4gZnVuY3Rpb24obSxDLGcpe2lmKHU9PT0hMSl0aHJvdyBuZXcgbihkKEMsIiBoYXMgYmVlbiByZW1vdmVkIisoYz8iIGluICIrYzoiIikpLG4uRVJSX0RFUFJFQ0FURUQpO3JldHVybiBjJiYhaVtDXSYmKGlbQ109ITAsY29uc29sZS53YXJuKGQoQywiIGhhcyBiZWVuIGRlcHJlY2F0ZWQgc2luY2UgdiIrYysiIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5lYXIgZnV0dXJlIikpKSx1P3UobSxDLGcpOiEwfX07ZnVuY3Rpb24gcyhhLHUsYyl7aWYodHlwZW9mIGEhPSJvYmplY3QiKXRocm93IG5ldyBuKCJvcHRpb25zIG11c3QgYmUgYW4gb2JqZWN0IixuLkVSUl9CQURfT1BUSU9OX1ZBTFVFKTtmb3IodmFyIGg9T2JqZWN0LmtleXMoYSksZD1oLmxlbmd0aDtkLS0gPjA7KXt2YXIgbT1oW2RdLEM9dVttXTtpZihDKXt2YXIgZz1hW21dLHc9Zz09PXZvaWQgMHx8QyhnLG0sYSk7aWYodyE9PSEwKXRocm93IG5ldyBuKCJvcHRpb24gIittKyIgbXVzdCBiZSAiK3csbi5FUlJfQkFEX09QVElPTl9WQUxVRSk7Y29udGludWV9aWYoYyE9PSEwKXRocm93IG5ldyBuKCJVbmtub3duIG9wdGlvbiAiK20sbi5FUlJfQkFEX09QVElPTil9fXkuZXhwb3J0cz17YXNzZXJ0T3B0aW9uczpzLHZhbGlkYXRvcnM6dH19LDY0ODY3OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg5MTg0OSksbj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLHQ9ZnVuY3Rpb24oail7cmV0dXJuIGZ1bmN0aW9uKEQpe3ZhciBWPW4uY2FsbChEKTtyZXR1cm4galtWXXx8KGpbVl09Vi5zbGljZSg4LC0xKS50b0xvd2VyQ2FzZSgpKX19KE9iamVjdC5jcmVhdGUobnVsbCkpO2Z1bmN0aW9uIGkoail7cmV0dXJuIGo9ai50b0xvd2VyQ2FzZSgpLGZ1bmN0aW9uKFYpe3JldHVybiB0KFYpPT09an19ZnVuY3Rpb24gcyhqKXtyZXR1cm4gQXJyYXkuaXNBcnJheShqKX1mdW5jdGlvbiBhKGope3JldHVybiB0eXBlb2Ygaj09InVuZGVmaW5lZCJ9ZnVuY3Rpb24gdShqKXtyZXR1cm4gaiE9PW51bGwmJiFhKGopJiZqLmNvbnN0cnVjdG9yIT09bnVsbCYmIWEoai5jb25zdHJ1Y3RvcikmJnR5cGVvZiBqLmNvbnN0cnVjdG9yLmlzQnVmZmVyPT0iZnVuY3Rpb24iJiZqLmNvbnN0cnVjdG9yLmlzQnVmZmVyKGopfXZhciBjPWkoIkFycmF5QnVmZmVyIik7ZnVuY3Rpb24gaChqKXt2YXIgRDtyZXR1cm4gdHlwZW9mIEFycmF5QnVmZmVyIT0idW5kZWZpbmVkIiYmQXJyYXlCdWZmZXIuaXNWaWV3P0Q9QXJyYXlCdWZmZXIuaXNWaWV3KGopOkQ9aiYmai5idWZmZXImJmMoai5idWZmZXIpLER9ZnVuY3Rpb24gZChqKXtyZXR1cm4gdHlwZW9mIGo9PSJzdHJpbmcifWZ1bmN0aW9uIG0oail7cmV0dXJuIHR5cGVvZiBqPT0ibnVtYmVyIn1mdW5jdGlvbiBDKGope3JldHVybiBqIT09bnVsbCYmdHlwZW9mIGo9PSJvYmplY3QifWZ1bmN0aW9uIGcoail7aWYodChqKSE9PSJvYmplY3QiKXJldHVybiExO3ZhciBEPU9iamVjdC5nZXRQcm90b3R5cGVPZihqKTtyZXR1cm4gRD09PW51bGx8fEQ9PT1PYmplY3QucHJvdG90eXBlfXZhciB3PWkoIkRhdGUiKSxFPWkoIkZpbGUiKSx4PWkoIkJsb2IiKSxPPWkoIkZpbGVMaXN0Iik7ZnVuY3Rpb24gVChqKXtyZXR1cm4gbi5jYWxsKGopPT09IltvYmplY3QgRnVuY3Rpb25dIn1mdW5jdGlvbiBTKGope3JldHVybiBDKGopJiZUKGoucGlwZSl9ZnVuY3Rpb24gTChqKXt2YXIgRD0iW29iamVjdCBGb3JtRGF0YV0iO3JldHVybiBqJiYodHlwZW9mIEZvcm1EYXRhPT0iZnVuY3Rpb24iJiZqIGluc3RhbmNlb2YgRm9ybURhdGF8fG4uY2FsbChqKT09PUR8fFQoai50b1N0cmluZykmJmoudG9TdHJpbmcoKT09PUQpfXZhciBJPWkoIlVSTFNlYXJjaFBhcmFtcyIpO2Z1bmN0aW9uIFIoail7cmV0dXJuIGoudHJpbT9qLnRyaW0oKTpqLnJlcGxhY2UoL15ccyt8XHMrJC9nLCIiKX1mdW5jdGlvbiB6KCl7cmV0dXJuIHR5cGVvZiBuYXZpZ2F0b3IhPSJ1bmRlZmluZWQiJiYobmF2aWdhdG9yLnByb2R1Y3Q9PT0iUmVhY3ROYXRpdmUifHxuYXZpZ2F0b3IucHJvZHVjdD09PSJOYXRpdmVTY3JpcHQifHxuYXZpZ2F0b3IucHJvZHVjdD09PSJOUyIpPyExOnR5cGVvZiB3aW5kb3chPSJ1bmRlZmluZWQiJiZ0eXBlb2YgZG9jdW1lbnQhPSJ1bmRlZmluZWQifWZ1bmN0aW9uIEcoaixEKXtpZighKGo9PT1udWxsfHx0eXBlb2Ygaj09InVuZGVmaW5lZCIpKWlmKHR5cGVvZiBqIT0ib2JqZWN0IiYmKGo9W2pdKSxzKGopKWZvcih2YXIgVj0wLFo9ai5sZW5ndGg7VjxaO1YrKylELmNhbGwobnVsbCxqW1ZdLFYsaik7ZWxzZSBmb3IodmFyIFAgaW4gailPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaixQKSYmRC5jYWxsKG51bGwsaltQXSxQLGopfWZ1bmN0aW9uIFkoKXt2YXIgaj17fTtmdW5jdGlvbiBEKFAsSyl7ZyhqW0tdKSYmZyhQKT9qW0tdPVkoaltLXSxQKTpnKFApP2pbS109WSh7fSxQKTpzKFApP2pbS109UC5zbGljZSgpOmpbS109UH1mb3IodmFyIFY9MCxaPWFyZ3VtZW50cy5sZW5ndGg7VjxaO1YrKylHKGFyZ3VtZW50c1tWXSxEKTtyZXR1cm4gan1mdW5jdGlvbiBlZShqLEQsVil7cmV0dXJuIEcoRCxmdW5jdGlvbihQLEspe1YmJnR5cGVvZiBQPT0iZnVuY3Rpb24iP2pbS109cihQLFYpOmpbS109UH0pLGp9ZnVuY3Rpb24gSihqKXtyZXR1cm4gai5jaGFyQ29kZUF0KDApPT09NjUyNzkmJihqPWouc2xpY2UoMSkpLGp9ZnVuY3Rpb24gbWUoaixELFYsWil7ai5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShELnByb3RvdHlwZSxaKSxqLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1qLFYmJk9iamVjdC5hc3NpZ24oai5wcm90b3R5cGUsVil9ZnVuY3Rpb24gdGUoaixELFYpe3ZhciBaLFAsSyxzZT17fTtEPUR8fHt9O2Rve2ZvcihaPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGopLFA9Wi5sZW5ndGg7UC0tID4wOylLPVpbUF0sc2VbS118fChEW0tdPWpbS10sc2VbS109ITApO2o9T2JqZWN0LmdldFByb3RvdHlwZU9mKGopfXdoaWxlKGomJighVnx8VihqLEQpKSYmaiE9PU9iamVjdC5wcm90b3R5cGUpO3JldHVybiBEfWZ1bmN0aW9uIGxlKGosRCxWKXtqPVN0cmluZyhqKSwoVj09PXZvaWQgMHx8Vj5qLmxlbmd0aCkmJihWPWoubGVuZ3RoKSxWLT1ELmxlbmd0aDt2YXIgWj1qLmluZGV4T2YoRCxWKTtyZXR1cm4gWiE9PS0xJiZaPT09Vn1mdW5jdGlvbiBjZShqKXtpZighailyZXR1cm4gbnVsbDt2YXIgRD1qLmxlbmd0aDtpZihhKEQpKXJldHVybiBudWxsO2Zvcih2YXIgVj1uZXcgQXJyYXkoRCk7RC0tID4wOylWW0RdPWpbRF07cmV0dXJuIFZ9dmFyIFc9ZnVuY3Rpb24oail7cmV0dXJuIGZ1bmN0aW9uKEQpe3JldHVybiBqJiZEIGluc3RhbmNlb2Ygan19KHR5cGVvZiBVaW50OEFycmF5IT0idW5kZWZpbmVkIiYmT2JqZWN0LmdldFByb3RvdHlwZU9mKFVpbnQ4QXJyYXkpKTt5LmV4cG9ydHM9e2lzQXJyYXk6cyxpc0FycmF5QnVmZmVyOmMsaXNCdWZmZXI6dSxpc0Zvcm1EYXRhOkwsaXNBcnJheUJ1ZmZlclZpZXc6aCxpc1N0cmluZzpkLGlzTnVtYmVyOm0saXNPYmplY3Q6Qyxpc1BsYWluT2JqZWN0OmcsaXNVbmRlZmluZWQ6YSxpc0RhdGU6dyxpc0ZpbGU6RSxpc0Jsb2I6eCxpc0Z1bmN0aW9uOlQsaXNTdHJlYW06Uyxpc1VSTFNlYXJjaFBhcmFtczpJLGlzU3RhbmRhcmRCcm93c2VyRW52OnosZm9yRWFjaDpHLG1lcmdlOlksZXh0ZW5kOmVlLHRyaW06UixzdHJpcEJPTTpKLGluaGVyaXRzOm1lLHRvRmxhdE9iamVjdDp0ZSxraW5kT2Y6dCxraW5kT2ZUZXN0OmksZW5kc1dpdGg6bGUsdG9BcnJheTpjZSxpc1R5cGVkQXJyYXk6Vyxpc0ZpbGVMaXN0Ok99fSw3OTc0MjpmdW5jdGlvbih5LHApeyJ1c2Ugc3RyaWN0IjtwLmJ5dGVMZW5ndGg9dSxwLnRvQnl0ZUFycmF5PWgscC5mcm9tQnl0ZUFycmF5PUM7Zm9yKHZhciBlPVtdLHI9W10sbj10eXBlb2YgVWludDhBcnJheSE9InVuZGVmaW5lZCI/VWludDhBcnJheTpBcnJheSx0PSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIixpPTAscz10Lmxlbmd0aDtpPHM7KytpKWVbaV09dFtpXSxyW3QuY2hhckNvZGVBdChpKV09aTtyWzQ1XT02MixyWzk1XT02MztmdW5jdGlvbiBhKGcpe3ZhciB3PWcubGVuZ3RoO2lmKHclND4wKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBzdHJpbmcuIExlbmd0aCBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgNCIpO3ZhciBFPWcuaW5kZXhPZigiPSIpO0U9PT0tMSYmKEU9dyk7dmFyIHg9RT09PXc/MDo0LUUlNDtyZXR1cm5bRSx4XX1mdW5jdGlvbiB1KGcpe3ZhciB3PWEoZyksRT13WzBdLHg9d1sxXTtyZXR1cm4oRSt4KSozLzQteH1mdW5jdGlvbiBjKGcsdyxFKXtyZXR1cm4odytFKSozLzQtRX1mdW5jdGlvbiBoKGcpe3ZhciB3LEU9YShnKSx4PUVbMF0sTz1FWzFdLFQ9bmV3IG4oYyhnLHgsTykpLFM9MCxMPU8+MD94LTQ6eCxJO2ZvcihJPTA7STxMO0krPTQpdz1yW2cuY2hhckNvZGVBdChJKV08PDE4fHJbZy5jaGFyQ29kZUF0KEkrMSldPDwxMnxyW2cuY2hhckNvZGVBdChJKzIpXTw8NnxyW2cuY2hhckNvZGVBdChJKzMpXSxUW1MrK109dz4+MTYmMjU1LFRbUysrXT13Pj44JjI1NSxUW1MrK109dyYyNTU7cmV0dXJuIE89PT0yJiYodz1yW2cuY2hhckNvZGVBdChJKV08PDJ8cltnLmNoYXJDb2RlQXQoSSsxKV0+PjQsVFtTKytdPXcmMjU1KSxPPT09MSYmKHc9cltnLmNoYXJDb2RlQXQoSSldPDwxMHxyW2cuY2hhckNvZGVBdChJKzEpXTw8NHxyW2cuY2hhckNvZGVBdChJKzIpXT4+MixUW1MrK109dz4+OCYyNTUsVFtTKytdPXcmMjU1KSxUfWZ1bmN0aW9uIGQoZyl7cmV0dXJuIGVbZz4+MTgmNjNdK2VbZz4+MTImNjNdK2VbZz4+NiY2M10rZVtnJjYzXX1mdW5jdGlvbiBtKGcsdyxFKXtmb3IodmFyIHgsTz1bXSxUPXc7VDxFO1QrPTMpeD0oZ1tUXTw8MTYmMTY3MTE2ODApKyhnW1QrMV08PDgmNjUyODApKyhnW1QrMl0mMjU1KSxPLnB1c2goZCh4KSk7cmV0dXJuIE8uam9pbigiIil9ZnVuY3Rpb24gQyhnKXtmb3IodmFyIHcsRT1nLmxlbmd0aCx4PUUlMyxPPVtdLFQ9MTYzODMsUz0wLEw9RS14O1M8TDtTKz1UKU8ucHVzaChtKGcsUyxTK1Q+TD9MOlMrVCkpO3JldHVybiB4PT09MT8odz1nW0UtMV0sTy5wdXNoKGVbdz4+Ml0rZVt3PDw0JjYzXSsiPT0iKSk6eD09PTImJih3PShnW0UtMl08PDgpK2dbRS0xXSxPLnB1c2goZVt3Pj4xMF0rZVt3Pj40JjYzXStlW3c8PDImNjNdKyI9IikpLE8uam9pbigiIil9fSw0ODc2NDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByO3ZhciBuPWUoNzk3NDIpLHQ9ZSg4MDY0NSksaT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZ0eXBlb2YgU3ltYm9sLmZvcj09ImZ1bmN0aW9uIj9TeW1ib2wuZm9yKCJub2RlanMudXRpbC5pbnNwZWN0LmN1c3RvbSIpOm51bGw7cC5sVz1jLHI9UyxwLmgyPTUwO3ZhciBzPTIxNDc0ODM2NDc7cj1zLGMuVFlQRURfQVJSQVlfU1VQUE9SVD1hKCksIWMuVFlQRURfQVJSQVlfU1VQUE9SVCYmdHlwZW9mIGNvbnNvbGUhPSJ1bmRlZmluZWQiJiZ0eXBlb2YgY29uc29sZS5lcnJvcj09ImZ1bmN0aW9uIiYmY29uc29sZS5lcnJvcigiVGhpcyBicm93c2VyIGxhY2tzIHR5cGVkIGFycmF5IChVaW50OEFycmF5KSBzdXBwb3J0IHdoaWNoIGlzIHJlcXVpcmVkIGJ5IGBidWZmZXJgIHY1LnguIFVzZSBgYnVmZmVyYCB2NC54IGlmIHlvdSByZXF1aXJlIG9sZCBicm93c2VyIHN1cHBvcnQuIik7ZnVuY3Rpb24gYSgpe3RyeXt2YXIgaz1uZXcgVWludDhBcnJheSgxKSxNPXtmb286ZnVuY3Rpb24oKXtyZXR1cm4gNDJ9fTtyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mKE0sVWludDhBcnJheS5wcm90b3R5cGUpLE9iamVjdC5zZXRQcm90b3R5cGVPZihrLE0pLGsuZm9vKCk9PT00Mn1jYXRjaChBKXtyZXR1cm4hMX19T2JqZWN0LmRlZmluZVByb3BlcnR5KGMucHJvdG90eXBlLCJwYXJlbnQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe2lmKGMuaXNCdWZmZXIodGhpcykpcmV0dXJuIHRoaXMuYnVmZmVyfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLnByb3RvdHlwZSwib2Zmc2V0Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtpZihjLmlzQnVmZmVyKHRoaXMpKXJldHVybiB0aGlzLmJ5dGVPZmZzZXR9fSk7ZnVuY3Rpb24gdShrKXtpZihrPnMpdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RoZSB2YWx1ZSAiJytrKyciIGlzIGludmFsaWQgZm9yIG9wdGlvbiAic2l6ZSInKTt2YXIgTT1uZXcgVWludDhBcnJheShrKTtyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mKE0sYy5wcm90b3R5cGUpLE19ZnVuY3Rpb24gYyhrLE0sQSl7aWYodHlwZW9mIGs9PSJudW1iZXIiKXtpZih0eXBlb2YgTT09InN0cmluZyIpdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlICJzdHJpbmciIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBzdHJpbmcuIFJlY2VpdmVkIHR5cGUgbnVtYmVyJyk7cmV0dXJuIEMoayl9cmV0dXJuIGgoayxNLEEpfWMucG9vbFNpemU9ODE5MjtmdW5jdGlvbiBoKGssTSxBKXtpZih0eXBlb2Ygaz09InN0cmluZyIpcmV0dXJuIGcoayxNKTtpZihBcnJheUJ1ZmZlci5pc1ZpZXcoaykpcmV0dXJuIEUoayk7aWYoaz09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKCJUaGUgZmlyc3QgYXJndW1lbnQgbXVzdCBiZSBvbmUgb2YgdHlwZSBzdHJpbmcsIEJ1ZmZlciwgQXJyYXlCdWZmZXIsIEFycmF5LCBvciBBcnJheS1saWtlIE9iamVjdC4gUmVjZWl2ZWQgdHlwZSAiK3R5cGVvZiBrKTtpZihGZShrLEFycmF5QnVmZmVyKXx8ayYmRmUoay5idWZmZXIsQXJyYXlCdWZmZXIpfHx0eXBlb2YgU2hhcmVkQXJyYXlCdWZmZXIhPSJ1bmRlZmluZWQiJiYoRmUoayxTaGFyZWRBcnJheUJ1ZmZlcil8fGsmJkZlKGsuYnVmZmVyLFNoYXJlZEFycmF5QnVmZmVyKSkpcmV0dXJuIHgoayxNLEEpO2lmKHR5cGVvZiBrPT0ibnVtYmVyIil0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgInZhbHVlIiBhcmd1bWVudCBtdXN0IG5vdCBiZSBvZiB0eXBlIG51bWJlci4gUmVjZWl2ZWQgdHlwZSBudW1iZXInKTt2YXIgVT1rLnZhbHVlT2YmJmsudmFsdWVPZigpO2lmKFUhPW51bGwmJlUhPT1rKXJldHVybiBjLmZyb20oVSxNLEEpO3ZhciBOPU8oayk7aWYoTilyZXR1cm4gTjtpZih0eXBlb2YgU3ltYm9sIT0idW5kZWZpbmVkIiYmU3ltYm9sLnRvUHJpbWl0aXZlIT1udWxsJiZ0eXBlb2Yga1tTeW1ib2wudG9QcmltaXRpdmVdPT0iZnVuY3Rpb24iKXJldHVybiBjLmZyb20oa1tTeW1ib2wudG9QcmltaXRpdmVdKCJzdHJpbmciKSxNLEEpO3Rocm93IG5ldyBUeXBlRXJyb3IoIlRoZSBmaXJzdCBhcmd1bWVudCBtdXN0IGJlIG9uZSBvZiB0eXBlIHN0cmluZywgQnVmZmVyLCBBcnJheUJ1ZmZlciwgQXJyYXksIG9yIEFycmF5LWxpa2UgT2JqZWN0LiBSZWNlaXZlZCB0eXBlICIrdHlwZW9mIGspfWMuZnJvbT1mdW5jdGlvbihrLE0sQSl7cmV0dXJuIGgoayxNLEEpfSxPYmplY3Quc2V0UHJvdG90eXBlT2YoYy5wcm90b3R5cGUsVWludDhBcnJheS5wcm90b3R5cGUpLE9iamVjdC5zZXRQcm90b3R5cGVPZihjLFVpbnQ4QXJyYXkpO2Z1bmN0aW9uIGQoayl7aWYodHlwZW9mIGshPSJudW1iZXIiKXRocm93IG5ldyBUeXBlRXJyb3IoJyJzaXplIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgbnVtYmVyJyk7aWYoazwwKXRocm93IG5ldyBSYW5nZUVycm9yKCdUaGUgdmFsdWUgIicraysnIiBpcyBpbnZhbGlkIGZvciBvcHRpb24gInNpemUiJyl9ZnVuY3Rpb24gbShrLE0sQSl7cmV0dXJuIGQoayksazw9MD91KGspOk0hPT12b2lkIDA/dHlwZW9mIEE9PSJzdHJpbmciP3UoaykuZmlsbChNLEEpOnUoaykuZmlsbChNKTp1KGspfWMuYWxsb2M9ZnVuY3Rpb24oayxNLEEpe3JldHVybiBtKGssTSxBKX07ZnVuY3Rpb24gQyhrKXtyZXR1cm4gZChrKSx1KGs8MD8wOlQoayl8MCl9Yy5hbGxvY1Vuc2FmZT1mdW5jdGlvbihrKXtyZXR1cm4gQyhrKX0sYy5hbGxvY1Vuc2FmZVNsb3c9ZnVuY3Rpb24oayl7cmV0dXJuIEMoayl9O2Z1bmN0aW9uIGcoayxNKXtpZigodHlwZW9mIE0hPSJzdHJpbmcifHxNPT09IiIpJiYoTT0idXRmOCIpLCFjLmlzRW5jb2RpbmcoTSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiVW5rbm93biBlbmNvZGluZzogIitNKTt2YXIgQT1MKGssTSl8MCxVPXUoQSksTj1VLndyaXRlKGssTSk7cmV0dXJuIE4hPT1BJiYoVT1VLnNsaWNlKDAsTikpLFV9ZnVuY3Rpb24gdyhrKXtmb3IodmFyIE09ay5sZW5ndGg8MD8wOlQoay5sZW5ndGgpfDAsQT11KE0pLFU9MDtVPE07VSs9MSlBW1VdPWtbVV0mMjU1O3JldHVybiBBfWZ1bmN0aW9uIEUoayl7aWYoRmUoayxVaW50OEFycmF5KSl7dmFyIE09bmV3IFVpbnQ4QXJyYXkoayk7cmV0dXJuIHgoTS5idWZmZXIsTS5ieXRlT2Zmc2V0LE0uYnl0ZUxlbmd0aCl9cmV0dXJuIHcoayl9ZnVuY3Rpb24geChrLE0sQSl7aWYoTTwwfHxrLmJ5dGVMZW5ndGg8TSl0aHJvdyBuZXcgUmFuZ2VFcnJvcignIm9mZnNldCIgaXMgb3V0c2lkZSBvZiBidWZmZXIgYm91bmRzJyk7aWYoay5ieXRlTGVuZ3RoPE0rKEF8fDApKXRocm93IG5ldyBSYW5nZUVycm9yKCcibGVuZ3RoIiBpcyBvdXRzaWRlIG9mIGJ1ZmZlciBib3VuZHMnKTt2YXIgVTtyZXR1cm4gTT09PXZvaWQgMCYmQT09PXZvaWQgMD9VPW5ldyBVaW50OEFycmF5KGspOkE9PT12b2lkIDA/VT1uZXcgVWludDhBcnJheShrLE0pOlU9bmV3IFVpbnQ4QXJyYXkoayxNLEEpLE9iamVjdC5zZXRQcm90b3R5cGVPZihVLGMucHJvdG90eXBlKSxVfWZ1bmN0aW9uIE8oayl7aWYoYy5pc0J1ZmZlcihrKSl7dmFyIE09VChrLmxlbmd0aCl8MCxBPXUoTSk7cmV0dXJuIEEubGVuZ3RoPT09MHx8ay5jb3B5KEEsMCwwLE0pLEF9aWYoay5sZW5ndGghPT12b2lkIDApcmV0dXJuIHR5cGVvZiBrLmxlbmd0aCE9Im51bWJlciJ8fFNlKGsubGVuZ3RoKT91KDApOncoayk7aWYoay50eXBlPT09IkJ1ZmZlciImJkFycmF5LmlzQXJyYXkoay5kYXRhKSlyZXR1cm4gdyhrLmRhdGEpfWZ1bmN0aW9uIFQoayl7aWYoaz49cyl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQXR0ZW1wdCB0byBhbGxvY2F0ZSBCdWZmZXIgbGFyZ2VyIHRoYW4gbWF4aW11bSBzaXplOiAweCIrcy50b1N0cmluZygxNikrIiBieXRlcyIpO3JldHVybiBrfDB9ZnVuY3Rpb24gUyhrKXtyZXR1cm4rayE9ayYmKGs9MCksYy5hbGxvYygrayl9Yy5pc0J1ZmZlcj1mdW5jdGlvbihNKXtyZXR1cm4gTSE9bnVsbCYmTS5faXNCdWZmZXI9PT0hMCYmTSE9PWMucHJvdG90eXBlfSxjLmNvbXBhcmU9ZnVuY3Rpb24oTSxBKXtpZihGZShNLFVpbnQ4QXJyYXkpJiYoTT1jLmZyb20oTSxNLm9mZnNldCxNLmJ5dGVMZW5ndGgpKSxGZShBLFVpbnQ4QXJyYXkpJiYoQT1jLmZyb20oQSxBLm9mZnNldCxBLmJ5dGVMZW5ndGgpKSwhYy5pc0J1ZmZlcihNKXx8IWMuaXNCdWZmZXIoQSkpdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlICJidWYxIiwgImJ1ZjIiIGFyZ3VtZW50cyBtdXN0IGJlIG9uZSBvZiB0eXBlIEJ1ZmZlciBvciBVaW50OEFycmF5Jyk7aWYoTT09PUEpcmV0dXJuIDA7Zm9yKHZhciBVPU0ubGVuZ3RoLE49QS5sZW5ndGgsUT0wLHVlPU1hdGgubWluKFUsTik7UTx1ZTsrK1EpaWYoTVtRXSE9PUFbUV0pe1U9TVtRXSxOPUFbUV07YnJlYWt9cmV0dXJuIFU8Tj8tMTpOPFU/MTowfSxjLmlzRW5jb2Rpbmc9ZnVuY3Rpb24oTSl7c3dpdGNoKFN0cmluZyhNKS50b0xvd2VyQ2FzZSgpKXtjYXNlImhleCI6Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpjYXNlImFzY2lpIjpjYXNlImxhdGluMSI6Y2FzZSJiaW5hcnkiOmNhc2UiYmFzZTY0IjpjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19LGMuY29uY2F0PWZ1bmN0aW9uKE0sQSl7aWYoIUFycmF5LmlzQXJyYXkoTSkpdGhyb3cgbmV3IFR5cGVFcnJvcignImxpc3QiIGFyZ3VtZW50IG11c3QgYmUgYW4gQXJyYXkgb2YgQnVmZmVycycpO2lmKE0ubGVuZ3RoPT09MClyZXR1cm4gYy5hbGxvYygwKTt2YXIgVTtpZihBPT09dm9pZCAwKWZvcihBPTAsVT0wO1U8TS5sZW5ndGg7KytVKUErPU1bVV0ubGVuZ3RoO3ZhciBOPWMuYWxsb2NVbnNhZmUoQSksUT0wO2ZvcihVPTA7VTxNLmxlbmd0aDsrK1Upe3ZhciB1ZT1NW1VdO2lmKEZlKHVlLFVpbnQ4QXJyYXkpKVErdWUubGVuZ3RoPk4ubGVuZ3RoP2MuZnJvbSh1ZSkuY29weShOLFEpOlVpbnQ4QXJyYXkucHJvdG90eXBlLnNldC5jYWxsKE4sdWUsUSk7ZWxzZSBpZihjLmlzQnVmZmVyKHVlKSl1ZS5jb3B5KE4sUSk7ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKCcibGlzdCIgYXJndW1lbnQgbXVzdCBiZSBhbiBBcnJheSBvZiBCdWZmZXJzJyk7USs9dWUubGVuZ3RofXJldHVybiBOfTtmdW5jdGlvbiBMKGssTSl7aWYoYy5pc0J1ZmZlcihrKSlyZXR1cm4gay5sZW5ndGg7aWYoQXJyYXlCdWZmZXIuaXNWaWV3KGspfHxGZShrLEFycmF5QnVmZmVyKSlyZXR1cm4gay5ieXRlTGVuZ3RoO2lmKHR5cGVvZiBrIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgInN0cmluZyIgYXJndW1lbnQgbXVzdCBiZSBvbmUgb2YgdHlwZSBzdHJpbmcsIEJ1ZmZlciwgb3IgQXJyYXlCdWZmZXIuIFJlY2VpdmVkIHR5cGUgJyt0eXBlb2Ygayk7dmFyIEE9ay5sZW5ndGgsVT1hcmd1bWVudHMubGVuZ3RoPjImJmFyZ3VtZW50c1syXT09PSEwO2lmKCFVJiZBPT09MClyZXR1cm4gMDtmb3IodmFyIE49ITE7Oylzd2l0Y2goTSl7Y2FzZSJhc2NpaSI6Y2FzZSJsYXRpbjEiOmNhc2UiYmluYXJ5IjpyZXR1cm4gQTtjYXNlInV0ZjgiOmNhc2UidXRmLTgiOnJldHVybiBCZShrKS5sZW5ndGg7Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOnJldHVybiBBKjI7Y2FzZSJoZXgiOnJldHVybiBBPj4+MTtjYXNlImJhc2U2NCI6cmV0dXJuIHFlKGspLmxlbmd0aDtkZWZhdWx0OmlmKE4pcmV0dXJuIFU/LTE6QmUoaykubGVuZ3RoO009KCIiK00pLnRvTG93ZXJDYXNlKCksTj0hMH19Yy5ieXRlTGVuZ3RoPUw7ZnVuY3Rpb24gSShrLE0sQSl7dmFyIFU9ITE7aWYoKE09PT12b2lkIDB8fE08MCkmJihNPTApLE0+dGhpcy5sZW5ndGh8fCgoQT09PXZvaWQgMHx8QT50aGlzLmxlbmd0aCkmJihBPXRoaXMubGVuZ3RoKSxBPD0wKXx8KEE+Pj49MCxNPj4+PTAsQTw9TSkpcmV0dXJuIiI7Zm9yKGt8fChrPSJ1dGY4Iik7Oylzd2l0Y2goayl7Y2FzZSJoZXgiOnJldHVybiBaKHRoaXMsTSxBKTtjYXNlInV0ZjgiOmNhc2UidXRmLTgiOnJldHVybiBjZSh0aGlzLE0sQSk7Y2FzZSJhc2NpaSI6cmV0dXJuIEQodGhpcyxNLEEpO2Nhc2UibGF0aW4xIjpjYXNlImJpbmFyeSI6cmV0dXJuIFYodGhpcyxNLEEpO2Nhc2UiYmFzZTY0IjpyZXR1cm4gbGUodGhpcyxNLEEpO2Nhc2UidWNzMiI6Y2FzZSJ1Y3MtMiI6Y2FzZSJ1dGYxNmxlIjpjYXNlInV0Zi0xNmxlIjpyZXR1cm4gUCh0aGlzLE0sQSk7ZGVmYXVsdDppZihVKXRocm93IG5ldyBUeXBlRXJyb3IoIlVua25vd24gZW5jb2Rpbmc6ICIrayk7az0oaysiIikudG9Mb3dlckNhc2UoKSxVPSEwfX1jLnByb3RvdHlwZS5faXNCdWZmZXI9ITA7ZnVuY3Rpb24gUihrLE0sQSl7dmFyIFU9a1tNXTtrW01dPWtbQV0sa1tBXT1VfWMucHJvdG90eXBlLnN3YXAxNj1mdW5jdGlvbigpe3ZhciBNPXRoaXMubGVuZ3RoO2lmKE0lMiE9PTApdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkJ1ZmZlciBzaXplIG11c3QgYmUgYSBtdWx0aXBsZSBvZiAxNi1iaXRzIik7Zm9yKHZhciBBPTA7QTxNO0ErPTIpUih0aGlzLEEsQSsxKTtyZXR1cm4gdGhpc30sYy5wcm90b3R5cGUuc3dhcDMyPWZ1bmN0aW9uKCl7dmFyIE09dGhpcy5sZW5ndGg7aWYoTSU0IT09MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQnVmZmVyIHNpemUgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDMyLWJpdHMiKTtmb3IodmFyIEE9MDtBPE07QSs9NClSKHRoaXMsQSxBKzMpLFIodGhpcyxBKzEsQSsyKTtyZXR1cm4gdGhpc30sYy5wcm90b3R5cGUuc3dhcDY0PWZ1bmN0aW9uKCl7dmFyIE09dGhpcy5sZW5ndGg7aWYoTSU4IT09MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQnVmZmVyIHNpemUgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDY0LWJpdHMiKTtmb3IodmFyIEE9MDtBPE07QSs9OClSKHRoaXMsQSxBKzcpLFIodGhpcyxBKzEsQSs2KSxSKHRoaXMsQSsyLEErNSksUih0aGlzLEErMyxBKzQpO3JldHVybiB0aGlzfSxjLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3ZhciBNPXRoaXMubGVuZ3RoO3JldHVybiBNPT09MD8iIjphcmd1bWVudHMubGVuZ3RoPT09MD9jZSh0aGlzLDAsTSk6SS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LGMucHJvdG90eXBlLnRvTG9jYWxlU3RyaW5nPWMucHJvdG90eXBlLnRvU3RyaW5nLGMucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbihNKXtpZighYy5pc0J1ZmZlcihNKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyIik7cmV0dXJuIHRoaXM9PT1NPyEwOmMuY29tcGFyZSh0aGlzLE0pPT09MH0sYy5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3ZhciBNPSIiLEE9cC5oMjtyZXR1cm4gTT10aGlzLnRvU3RyaW5nKCJoZXgiLDAsQSkucmVwbGFjZSgvKC57Mn0pL2csIiQxICIpLnRyaW0oKSx0aGlzLmxlbmd0aD5BJiYoTSs9IiAuLi4gIiksIjxCdWZmZXIgIitNKyI+In0saSYmKGMucHJvdG90eXBlW2ldPWMucHJvdG90eXBlLmluc3BlY3QpLGMucHJvdG90eXBlLmNvbXBhcmU9ZnVuY3Rpb24oTSxBLFUsTixRKXtpZihGZShNLFVpbnQ4QXJyYXkpJiYoTT1jLmZyb20oTSxNLm9mZnNldCxNLmJ5dGVMZW5ndGgpKSwhYy5pc0J1ZmZlcihNKSl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgInRhcmdldCIgYXJndW1lbnQgbXVzdCBiZSBvbmUgb2YgdHlwZSBCdWZmZXIgb3IgVWludDhBcnJheS4gUmVjZWl2ZWQgdHlwZSAnK3R5cGVvZiBNKTtpZihBPT09dm9pZCAwJiYoQT0wKSxVPT09dm9pZCAwJiYoVT1NP00ubGVuZ3RoOjApLE49PT12b2lkIDAmJihOPTApLFE9PT12b2lkIDAmJihRPXRoaXMubGVuZ3RoKSxBPDB8fFU+TS5sZW5ndGh8fE48MHx8UT50aGlzLmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigib3V0IG9mIHJhbmdlIGluZGV4Iik7aWYoTj49USYmQT49VSlyZXR1cm4gMDtpZihOPj1RKXJldHVybi0xO2lmKEE+PVUpcmV0dXJuIDE7aWYoQT4+Pj0wLFU+Pj49MCxOPj4+PTAsUT4+Pj0wLHRoaXM9PT1NKXJldHVybiAwO2Zvcih2YXIgdWU9US1OLCQ9VS1BLF89TWF0aC5taW4odWUsJCkscGU9dGhpcy5zbGljZShOLFEpLHJlPU0uc2xpY2UoQSxVKSxhZT0wO2FlPF87KythZSlpZihwZVthZV0hPT1yZVthZV0pe3VlPXBlW2FlXSwkPXJlW2FlXTticmVha31yZXR1cm4gdWU8JD8tMTokPHVlPzE6MH07ZnVuY3Rpb24geihrLE0sQSxVLE4pe2lmKGsubGVuZ3RoPT09MClyZXR1cm4tMTtpZih0eXBlb2YgQT09InN0cmluZyI/KFU9QSxBPTApOkE+MjE0NzQ4MzY0Nz9BPTIxNDc0ODM2NDc6QTwtMjE0NzQ4MzY0OCYmKEE9LTIxNDc0ODM2NDgpLEE9K0EsU2UoQSkmJihBPU4/MDprLmxlbmd0aC0xKSxBPDAmJihBPWsubGVuZ3RoK0EpLEE+PWsubGVuZ3RoKXtpZihOKXJldHVybi0xO0E9ay5sZW5ndGgtMX1lbHNlIGlmKEE8MClpZihOKUE9MDtlbHNlIHJldHVybi0xO2lmKHR5cGVvZiBNPT0ic3RyaW5nIiYmKE09Yy5mcm9tKE0sVSkpLGMuaXNCdWZmZXIoTSkpcmV0dXJuIE0ubGVuZ3RoPT09MD8tMTpHKGssTSxBLFUsTik7aWYodHlwZW9mIE09PSJudW1iZXIiKXJldHVybiBNPU0mMjU1LHR5cGVvZiBVaW50OEFycmF5LnByb3RvdHlwZS5pbmRleE9mPT0iZnVuY3Rpb24iP04/VWludDhBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKGssTSxBKTpVaW50OEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZi5jYWxsKGssTSxBKTpHKGssW01dLEEsVSxOKTt0aHJvdyBuZXcgVHlwZUVycm9yKCJ2YWwgbXVzdCBiZSBzdHJpbmcsIG51bWJlciBvciBCdWZmZXIiKX1mdW5jdGlvbiBHKGssTSxBLFUsTil7dmFyIFE9MSx1ZT1rLmxlbmd0aCwkPU0ubGVuZ3RoO2lmKFUhPT12b2lkIDAmJihVPVN0cmluZyhVKS50b0xvd2VyQ2FzZSgpLFU9PT0idWNzMiJ8fFU9PT0idWNzLTIifHxVPT09InV0ZjE2bGUifHxVPT09InV0Zi0xNmxlIikpe2lmKGsubGVuZ3RoPDJ8fE0ubGVuZ3RoPDIpcmV0dXJuLTE7UT0yLHVlLz0yLCQvPTIsQS89Mn1mdW5jdGlvbiBfKExlLE1lKXtyZXR1cm4gUT09PTE/TGVbTWVdOkxlLnJlYWRVSW50MTZCRShNZSpRKX12YXIgcGU7aWYoTil7dmFyIHJlPS0xO2ZvcihwZT1BO3BlPHVlO3BlKyspaWYoXyhrLHBlKT09PV8oTSxyZT09PS0xPzA6cGUtcmUpKXtpZihyZT09PS0xJiYocmU9cGUpLHBlLXJlKzE9PT0kKXJldHVybiByZSpRfWVsc2UgcmUhPT0tMSYmKHBlLT1wZS1yZSkscmU9LTF9ZWxzZSBmb3IoQSskPnVlJiYoQT11ZS0kKSxwZT1BO3BlPj0wO3BlLS0pe2Zvcih2YXIgYWU9ITAsd2U9MDt3ZTwkO3dlKyspaWYoXyhrLHBlK3dlKSE9PV8oTSx3ZSkpe2FlPSExO2JyZWFrfWlmKGFlKXJldHVybiBwZX1yZXR1cm4tMX1jLnByb3RvdHlwZS5pbmNsdWRlcz1mdW5jdGlvbihNLEEsVSl7cmV0dXJuIHRoaXMuaW5kZXhPZihNLEEsVSkhPT0tMX0sYy5wcm90b3R5cGUuaW5kZXhPZj1mdW5jdGlvbihNLEEsVSl7cmV0dXJuIHoodGhpcyxNLEEsVSwhMCl9LGMucHJvdG90eXBlLmxhc3RJbmRleE9mPWZ1bmN0aW9uKE0sQSxVKXtyZXR1cm4geih0aGlzLE0sQSxVLCExKX07ZnVuY3Rpb24gWShrLE0sQSxVKXtBPU51bWJlcihBKXx8MDt2YXIgTj1rLmxlbmd0aC1BO1U/KFU9TnVtYmVyKFUpLFU+TiYmKFU9TikpOlU9Tjt2YXIgUT1NLmxlbmd0aDtVPlEvMiYmKFU9US8yKTtmb3IodmFyIHVlPTA7dWU8VTsrK3VlKXt2YXIgJD1wYXJzZUludChNLnN1YnN0cih1ZSoyLDIpLDE2KTtpZihTZSgkKSlyZXR1cm4gdWU7a1tBK3VlXT0kfXJldHVybiB1ZX1mdW5jdGlvbiBlZShrLE0sQSxVKXtyZXR1cm4gX2UoQmUoTSxrLmxlbmd0aC1BKSxrLEEsVSl9ZnVuY3Rpb24gSihrLE0sQSxVKXtyZXR1cm4gX2UoWWUoTSksayxBLFUpfWZ1bmN0aW9uIG1lKGssTSxBLFUpe3JldHVybiBfZShxZShNKSxrLEEsVSl9ZnVuY3Rpb24gdGUoayxNLEEsVSl7cmV0dXJuIF9lKG90KE0say5sZW5ndGgtQSksayxBLFUpfWMucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKE0sQSxVLE4pe2lmKEE9PT12b2lkIDApTj0idXRmOCIsVT10aGlzLmxlbmd0aCxBPTA7ZWxzZSBpZihVPT09dm9pZCAwJiZ0eXBlb2YgQT09InN0cmluZyIpTj1BLFU9dGhpcy5sZW5ndGgsQT0wO2Vsc2UgaWYoaXNGaW5pdGUoQSkpQT1BPj4+MCxpc0Zpbml0ZShVKT8oVT1VPj4+MCxOPT09dm9pZCAwJiYoTj0idXRmOCIpKTooTj1VLFU9dm9pZCAwKTtlbHNlIHRocm93IG5ldyBFcnJvcigiQnVmZmVyLndyaXRlKHN0cmluZywgZW5jb2RpbmcsIG9mZnNldFssIGxlbmd0aF0pIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQiKTt2YXIgUT10aGlzLmxlbmd0aC1BO2lmKChVPT09dm9pZCAwfHxVPlEpJiYoVT1RKSxNLmxlbmd0aD4wJiYoVTwwfHxBPDApfHxBPnRoaXMubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJBdHRlbXB0IHRvIHdyaXRlIG91dHNpZGUgYnVmZmVyIGJvdW5kcyIpO058fChOPSJ1dGY4Iik7Zm9yKHZhciB1ZT0hMTs7KXN3aXRjaChOKXtjYXNlImhleCI6cmV0dXJuIFkodGhpcyxNLEEsVSk7Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpyZXR1cm4gZWUodGhpcyxNLEEsVSk7Y2FzZSJhc2NpaSI6Y2FzZSJsYXRpbjEiOmNhc2UiYmluYXJ5IjpyZXR1cm4gSih0aGlzLE0sQSxVKTtjYXNlImJhc2U2NCI6cmV0dXJuIG1lKHRoaXMsTSxBLFUpO2Nhc2UidWNzMiI6Y2FzZSJ1Y3MtMiI6Y2FzZSJ1dGYxNmxlIjpjYXNlInV0Zi0xNmxlIjpyZXR1cm4gdGUodGhpcyxNLEEsVSk7ZGVmYXVsdDppZih1ZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK04pO049KCIiK04pLnRvTG93ZXJDYXNlKCksdWU9ITB9fSxjLnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm57dHlwZToiQnVmZmVyIixkYXRhOkFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHRoaXMuX2Fycnx8dGhpcywwKX19O2Z1bmN0aW9uIGxlKGssTSxBKXtyZXR1cm4gTT09PTAmJkE9PT1rLmxlbmd0aD9uLmZyb21CeXRlQXJyYXkoayk6bi5mcm9tQnl0ZUFycmF5KGsuc2xpY2UoTSxBKSl9ZnVuY3Rpb24gY2UoayxNLEEpe0E9TWF0aC5taW4oay5sZW5ndGgsQSk7Zm9yKHZhciBVPVtdLE49TTtOPEE7KXt2YXIgUT1rW05dLHVlPW51bGwsJD1RPjIzOT80OlE+MjIzPzM6UT4xOTE/MjoxO2lmKE4rJDw9QSl7dmFyIF8scGUscmUsYWU7c3dpdGNoKCQpe2Nhc2UgMTpRPDEyOCYmKHVlPVEpO2JyZWFrO2Nhc2UgMjpfPWtbTisxXSwoXyYxOTIpPT09MTI4JiYoYWU9KFEmMzEpPDw2fF8mNjMsYWU+MTI3JiYodWU9YWUpKTticmVhaztjYXNlIDM6Xz1rW04rMV0scGU9a1tOKzJdLChfJjE5Mik9PT0xMjgmJihwZSYxOTIpPT09MTI4JiYoYWU9KFEmMTUpPDwxMnwoXyY2Myk8PDZ8cGUmNjMsYWU+MjA0NyYmKGFlPDU1Mjk2fHxhZT41NzM0MykmJih1ZT1hZSkpO2JyZWFrO2Nhc2UgNDpfPWtbTisxXSxwZT1rW04rMl0scmU9a1tOKzNdLChfJjE5Mik9PT0xMjgmJihwZSYxOTIpPT09MTI4JiYocmUmMTkyKT09PTEyOCYmKGFlPShRJjE1KTw8MTh8KF8mNjMpPDwxMnwocGUmNjMpPDw2fHJlJjYzLGFlPjY1NTM1JiZhZTwxMTE0MTEyJiYodWU9YWUpKX19dWU9PT1udWxsPyh1ZT02NTUzMywkPTEpOnVlPjY1NTM1JiYodWUtPTY1NTM2LFUucHVzaCh1ZT4+PjEwJjEwMjN8NTUyOTYpLHVlPTU2MzIwfHVlJjEwMjMpLFUucHVzaCh1ZSksTis9JH1yZXR1cm4gaihVKX12YXIgVz00MDk2O2Z1bmN0aW9uIGooayl7dmFyIE09ay5sZW5ndGg7aWYoTTw9VylyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShTdHJpbmcsayk7Zm9yKHZhciBBPSIiLFU9MDtVPE07KUErPVN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLGsuc2xpY2UoVSxVKz1XKSk7cmV0dXJuIEF9ZnVuY3Rpb24gRChrLE0sQSl7dmFyIFU9IiI7QT1NYXRoLm1pbihrLmxlbmd0aCxBKTtmb3IodmFyIE49TTtOPEE7KytOKVUrPVN0cmluZy5mcm9tQ2hhckNvZGUoa1tOXSYxMjcpO3JldHVybiBVfWZ1bmN0aW9uIFYoayxNLEEpe3ZhciBVPSIiO0E9TWF0aC5taW4oay5sZW5ndGgsQSk7Zm9yKHZhciBOPU07TjxBOysrTilVKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGtbTl0pO3JldHVybiBVfWZ1bmN0aW9uIFooayxNLEEpe3ZhciBVPWsubGVuZ3RoOyghTXx8TTwwKSYmKE09MCksKCFBfHxBPDB8fEE+VSkmJihBPVUpO2Zvcih2YXIgTj0iIixRPU07UTxBOysrUSlOKz1xW2tbUV1dO3JldHVybiBOfWZ1bmN0aW9uIFAoayxNLEEpe2Zvcih2YXIgVT1rLnNsaWNlKE0sQSksTj0iIixRPTA7UTxVLmxlbmd0aC0xO1ErPTIpTis9U3RyaW5nLmZyb21DaGFyQ29kZShVW1FdK1VbUSsxXSoyNTYpO3JldHVybiBOfWMucHJvdG90eXBlLnNsaWNlPWZ1bmN0aW9uKE0sQSl7dmFyIFU9dGhpcy5sZW5ndGg7TT1+fk0sQT1BPT09dm9pZCAwP1U6fn5BLE08MD8oTSs9VSxNPDAmJihNPTApKTpNPlUmJihNPVUpLEE8MD8oQSs9VSxBPDAmJihBPTApKTpBPlUmJihBPVUpLEE8TSYmKEE9TSk7dmFyIE49dGhpcy5zdWJhcnJheShNLEEpO3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2YoTixjLnByb3RvdHlwZSksTn07ZnVuY3Rpb24gSyhrLE0sQSl7aWYoayUxIT09MHx8azwwKXRocm93IG5ldyBSYW5nZUVycm9yKCJvZmZzZXQgaXMgbm90IHVpbnQiKTtpZihrK00+QSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiVHJ5aW5nIHRvIGFjY2VzcyBiZXlvbmQgYnVmZmVyIGxlbmd0aCIpfWMucHJvdG90eXBlLnJlYWRVaW50TEU9Yy5wcm90b3R5cGUucmVhZFVJbnRMRT1mdW5jdGlvbihNLEEsVSl7TT1NPj4+MCxBPUE+Pj4wLFV8fEsoTSxBLHRoaXMubGVuZ3RoKTtmb3IodmFyIE49dGhpc1tNXSxRPTEsdWU9MDsrK3VlPEEmJihRKj0yNTYpOylOKz10aGlzW00rdWVdKlE7cmV0dXJuIE59LGMucHJvdG90eXBlLnJlYWRVaW50QkU9Yy5wcm90b3R5cGUucmVhZFVJbnRCRT1mdW5jdGlvbihNLEEsVSl7TT1NPj4+MCxBPUE+Pj4wLFV8fEsoTSxBLHRoaXMubGVuZ3RoKTtmb3IodmFyIE49dGhpc1tNKy0tQV0sUT0xO0E+MCYmKFEqPTI1Nik7KU4rPXRoaXNbTSstLUFdKlE7cmV0dXJuIE59LGMucHJvdG90eXBlLnJlYWRVaW50OD1jLnByb3RvdHlwZS5yZWFkVUludDg9ZnVuY3Rpb24oTSxBKXtyZXR1cm4gTT1NPj4+MCxBfHxLKE0sMSx0aGlzLmxlbmd0aCksdGhpc1tNXX0sYy5wcm90b3R5cGUucmVhZFVpbnQxNkxFPWMucHJvdG90eXBlLnJlYWRVSW50MTZMRT1mdW5jdGlvbihNLEEpe3JldHVybiBNPU0+Pj4wLEF8fEsoTSwyLHRoaXMubGVuZ3RoKSx0aGlzW01dfHRoaXNbTSsxXTw8OH0sYy5wcm90b3R5cGUucmVhZFVpbnQxNkJFPWMucHJvdG90eXBlLnJlYWRVSW50MTZCRT1mdW5jdGlvbihNLEEpe3JldHVybiBNPU0+Pj4wLEF8fEsoTSwyLHRoaXMubGVuZ3RoKSx0aGlzW01dPDw4fHRoaXNbTSsxXX0sYy5wcm90b3R5cGUucmVhZFVpbnQzMkxFPWMucHJvdG90eXBlLnJlYWRVSW50MzJMRT1mdW5jdGlvbihNLEEpe3JldHVybiBNPU0+Pj4wLEF8fEsoTSw0LHRoaXMubGVuZ3RoKSwodGhpc1tNXXx0aGlzW00rMV08PDh8dGhpc1tNKzJdPDwxNikrdGhpc1tNKzNdKjE2Nzc3MjE2fSxjLnByb3RvdHlwZS5yZWFkVWludDMyQkU9Yy5wcm90b3R5cGUucmVhZFVJbnQzMkJFPWZ1bmN0aW9uKE0sQSl7cmV0dXJuIE09TT4+PjAsQXx8SyhNLDQsdGhpcy5sZW5ndGgpLHRoaXNbTV0qMTY3NzcyMTYrKHRoaXNbTSsxXTw8MTZ8dGhpc1tNKzJdPDw4fHRoaXNbTSszXSl9LGMucHJvdG90eXBlLnJlYWRJbnRMRT1mdW5jdGlvbihNLEEsVSl7TT1NPj4+MCxBPUE+Pj4wLFV8fEsoTSxBLHRoaXMubGVuZ3RoKTtmb3IodmFyIE49dGhpc1tNXSxRPTEsdWU9MDsrK3VlPEEmJihRKj0yNTYpOylOKz10aGlzW00rdWVdKlE7cmV0dXJuIFEqPTEyOCxOPj1RJiYoTi09TWF0aC5wb3coMiw4KkEpKSxOfSxjLnByb3RvdHlwZS5yZWFkSW50QkU9ZnVuY3Rpb24oTSxBLFUpe009TT4+PjAsQT1BPj4+MCxVfHxLKE0sQSx0aGlzLmxlbmd0aCk7Zm9yKHZhciBOPUEsUT0xLHVlPXRoaXNbTSstLU5dO04+MCYmKFEqPTI1Nik7KXVlKz10aGlzW00rLS1OXSpRO3JldHVybiBRKj0xMjgsdWU+PVEmJih1ZS09TWF0aC5wb3coMiw4KkEpKSx1ZX0sYy5wcm90b3R5cGUucmVhZEludDg9ZnVuY3Rpb24oTSxBKXtyZXR1cm4gTT1NPj4+MCxBfHxLKE0sMSx0aGlzLmxlbmd0aCksdGhpc1tNXSYxMjg/KDI1NS10aGlzW01dKzEpKi0xOnRoaXNbTV19LGMucHJvdG90eXBlLnJlYWRJbnQxNkxFPWZ1bmN0aW9uKE0sQSl7TT1NPj4+MCxBfHxLKE0sMix0aGlzLmxlbmd0aCk7dmFyIFU9dGhpc1tNXXx0aGlzW00rMV08PDg7cmV0dXJuIFUmMzI3Njg/VXw0Mjk0OTAxNzYwOlV9LGMucHJvdG90eXBlLnJlYWRJbnQxNkJFPWZ1bmN0aW9uKE0sQSl7TT1NPj4+MCxBfHxLKE0sMix0aGlzLmxlbmd0aCk7dmFyIFU9dGhpc1tNKzFdfHRoaXNbTV08PDg7cmV0dXJuIFUmMzI3Njg/VXw0Mjk0OTAxNzYwOlV9LGMucHJvdG90eXBlLnJlYWRJbnQzMkxFPWZ1bmN0aW9uKE0sQSl7cmV0dXJuIE09TT4+PjAsQXx8SyhNLDQsdGhpcy5sZW5ndGgpLHRoaXNbTV18dGhpc1tNKzFdPDw4fHRoaXNbTSsyXTw8MTZ8dGhpc1tNKzNdPDwyNH0sYy5wcm90b3R5cGUucmVhZEludDMyQkU9ZnVuY3Rpb24oTSxBKXtyZXR1cm4gTT1NPj4+MCxBfHxLKE0sNCx0aGlzLmxlbmd0aCksdGhpc1tNXTw8MjR8dGhpc1tNKzFdPDwxNnx0aGlzW00rMl08PDh8dGhpc1tNKzNdfSxjLnByb3RvdHlwZS5yZWFkRmxvYXRMRT1mdW5jdGlvbihNLEEpe3JldHVybiBNPU0+Pj4wLEF8fEsoTSw0LHRoaXMubGVuZ3RoKSx0LnJlYWQodGhpcyxNLCEwLDIzLDQpfSxjLnByb3RvdHlwZS5yZWFkRmxvYXRCRT1mdW5jdGlvbihNLEEpe3JldHVybiBNPU0+Pj4wLEF8fEsoTSw0LHRoaXMubGVuZ3RoKSx0LnJlYWQodGhpcyxNLCExLDIzLDQpfSxjLnByb3RvdHlwZS5yZWFkRG91YmxlTEU9ZnVuY3Rpb24oTSxBKXtyZXR1cm4gTT1NPj4+MCxBfHxLKE0sOCx0aGlzLmxlbmd0aCksdC5yZWFkKHRoaXMsTSwhMCw1Miw4KX0sYy5wcm90b3R5cGUucmVhZERvdWJsZUJFPWZ1bmN0aW9uKE0sQSl7cmV0dXJuIE09TT4+PjAsQXx8SyhNLDgsdGhpcy5sZW5ndGgpLHQucmVhZCh0aGlzLE0sITEsNTIsOCl9O2Z1bmN0aW9uIHNlKGssTSxBLFUsTixRKXtpZighYy5pc0J1ZmZlcihrKSl0aHJvdyBuZXcgVHlwZUVycm9yKCciYnVmZmVyIiBhcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyIGluc3RhbmNlJyk7aWYoTT5OfHxNPFEpdGhyb3cgbmV3IFJhbmdlRXJyb3IoJyJ2YWx1ZSIgYXJndW1lbnQgaXMgb3V0IG9mIGJvdW5kcycpO2lmKEErVT5rLmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIil9Yy5wcm90b3R5cGUud3JpdGVVaW50TEU9Yy5wcm90b3R5cGUud3JpdGVVSW50TEU9ZnVuY3Rpb24oTSxBLFUsTil7aWYoTT0rTSxBPUE+Pj4wLFU9VT4+PjAsIU4pe3ZhciBRPU1hdGgucG93KDIsOCpVKS0xO3NlKHRoaXMsTSxBLFUsUSwwKX12YXIgdWU9MSwkPTA7Zm9yKHRoaXNbQV09TSYyNTU7KyskPFUmJih1ZSo9MjU2KTspdGhpc1tBKyRdPU0vdWUmMjU1O3JldHVybiBBK1V9LGMucHJvdG90eXBlLndyaXRlVWludEJFPWMucHJvdG90eXBlLndyaXRlVUludEJFPWZ1bmN0aW9uKE0sQSxVLE4pe2lmKE09K00sQT1BPj4+MCxVPVU+Pj4wLCFOKXt2YXIgUT1NYXRoLnBvdygyLDgqVSktMTtzZSh0aGlzLE0sQSxVLFEsMCl9dmFyIHVlPVUtMSwkPTE7Zm9yKHRoaXNbQSt1ZV09TSYyNTU7LS11ZT49MCYmKCQqPTI1Nik7KXRoaXNbQSt1ZV09TS8kJjI1NTtyZXR1cm4gQStVfSxjLnByb3RvdHlwZS53cml0ZVVpbnQ4PWMucHJvdG90eXBlLndyaXRlVUludDg9ZnVuY3Rpb24oTSxBLFUpe3JldHVybiBNPStNLEE9QT4+PjAsVXx8c2UodGhpcyxNLEEsMSwyNTUsMCksdGhpc1tBXT1NJjI1NSxBKzF9LGMucHJvdG90eXBlLndyaXRlVWludDE2TEU9Yy5wcm90b3R5cGUud3JpdGVVSW50MTZMRT1mdW5jdGlvbihNLEEsVSl7cmV0dXJuIE09K00sQT1BPj4+MCxVfHxzZSh0aGlzLE0sQSwyLDY1NTM1LDApLHRoaXNbQV09TSYyNTUsdGhpc1tBKzFdPU0+Pj44LEErMn0sYy5wcm90b3R5cGUud3JpdGVVaW50MTZCRT1jLnByb3RvdHlwZS53cml0ZVVJbnQxNkJFPWZ1bmN0aW9uKE0sQSxVKXtyZXR1cm4gTT0rTSxBPUE+Pj4wLFV8fHNlKHRoaXMsTSxBLDIsNjU1MzUsMCksdGhpc1tBXT1NPj4+OCx0aGlzW0ErMV09TSYyNTUsQSsyfSxjLnByb3RvdHlwZS53cml0ZVVpbnQzMkxFPWMucHJvdG90eXBlLndyaXRlVUludDMyTEU9ZnVuY3Rpb24oTSxBLFUpe3JldHVybiBNPStNLEE9QT4+PjAsVXx8c2UodGhpcyxNLEEsNCw0Mjk0OTY3Mjk1LDApLHRoaXNbQSszXT1NPj4+MjQsdGhpc1tBKzJdPU0+Pj4xNix0aGlzW0ErMV09TT4+PjgsdGhpc1tBXT1NJjI1NSxBKzR9LGMucHJvdG90eXBlLndyaXRlVWludDMyQkU9Yy5wcm90b3R5cGUud3JpdGVVSW50MzJCRT1mdW5jdGlvbihNLEEsVSl7cmV0dXJuIE09K00sQT1BPj4+MCxVfHxzZSh0aGlzLE0sQSw0LDQyOTQ5NjcyOTUsMCksdGhpc1tBXT1NPj4+MjQsdGhpc1tBKzFdPU0+Pj4xNix0aGlzW0ErMl09TT4+PjgsdGhpc1tBKzNdPU0mMjU1LEErNH0sYy5wcm90b3R5cGUud3JpdGVJbnRMRT1mdW5jdGlvbihNLEEsVSxOKXtpZihNPStNLEE9QT4+PjAsIU4pe3ZhciBRPU1hdGgucG93KDIsOCpVLTEpO3NlKHRoaXMsTSxBLFUsUS0xLC1RKX12YXIgdWU9MCwkPTEsXz0wO2Zvcih0aGlzW0FdPU0mMjU1OysrdWU8VSYmKCQqPTI1Nik7KU08MCYmXz09PTAmJnRoaXNbQSt1ZS0xXSE9PTAmJihfPTEpLHRoaXNbQSt1ZV09KE0vJD4+MCktXyYyNTU7cmV0dXJuIEErVX0sYy5wcm90b3R5cGUud3JpdGVJbnRCRT1mdW5jdGlvbihNLEEsVSxOKXtpZihNPStNLEE9QT4+PjAsIU4pe3ZhciBRPU1hdGgucG93KDIsOCpVLTEpO3NlKHRoaXMsTSxBLFUsUS0xLC1RKX12YXIgdWU9VS0xLCQ9MSxfPTA7Zm9yKHRoaXNbQSt1ZV09TSYyNTU7LS11ZT49MCYmKCQqPTI1Nik7KU08MCYmXz09PTAmJnRoaXNbQSt1ZSsxXSE9PTAmJihfPTEpLHRoaXNbQSt1ZV09KE0vJD4+MCktXyYyNTU7cmV0dXJuIEErVX0sYy5wcm90b3R5cGUud3JpdGVJbnQ4PWZ1bmN0aW9uKE0sQSxVKXtyZXR1cm4gTT0rTSxBPUE+Pj4wLFV8fHNlKHRoaXMsTSxBLDEsMTI3LC0xMjgpLE08MCYmKE09MjU1K00rMSksdGhpc1tBXT1NJjI1NSxBKzF9LGMucHJvdG90eXBlLndyaXRlSW50MTZMRT1mdW5jdGlvbihNLEEsVSl7cmV0dXJuIE09K00sQT1BPj4+MCxVfHxzZSh0aGlzLE0sQSwyLDMyNzY3LC0zMjc2OCksdGhpc1tBXT1NJjI1NSx0aGlzW0ErMV09TT4+PjgsQSsyfSxjLnByb3RvdHlwZS53cml0ZUludDE2QkU9ZnVuY3Rpb24oTSxBLFUpe3JldHVybiBNPStNLEE9QT4+PjAsVXx8c2UodGhpcyxNLEEsMiwzMjc2NywtMzI3NjgpLHRoaXNbQV09TT4+PjgsdGhpc1tBKzFdPU0mMjU1LEErMn0sYy5wcm90b3R5cGUud3JpdGVJbnQzMkxFPWZ1bmN0aW9uKE0sQSxVKXtyZXR1cm4gTT0rTSxBPUE+Pj4wLFV8fHNlKHRoaXMsTSxBLDQsMjE0NzQ4MzY0NywtMjE0NzQ4MzY0OCksdGhpc1tBXT1NJjI1NSx0aGlzW0ErMV09TT4+PjgsdGhpc1tBKzJdPU0+Pj4xNix0aGlzW0ErM109TT4+PjI0LEErNH0sYy5wcm90b3R5cGUud3JpdGVJbnQzMkJFPWZ1bmN0aW9uKE0sQSxVKXtyZXR1cm4gTT0rTSxBPUE+Pj4wLFV8fHNlKHRoaXMsTSxBLDQsMjE0NzQ4MzY0NywtMjE0NzQ4MzY0OCksTTwwJiYoTT00Mjk0OTY3Mjk1K00rMSksdGhpc1tBXT1NPj4+MjQsdGhpc1tBKzFdPU0+Pj4xNix0aGlzW0ErMl09TT4+PjgsdGhpc1tBKzNdPU0mMjU1LEErNH07ZnVuY3Rpb24gbmUoayxNLEEsVSxOLFEpe2lmKEErVT5rLmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIik7aWYoQTwwKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbmRleCBvdXQgb2YgcmFuZ2UiKX1mdW5jdGlvbiBvZShrLE0sQSxVLE4pe3JldHVybiBNPStNLEE9QT4+PjAsTnx8bmUoayxNLEEsNCwzNDAyODIzNDY2Mzg1Mjg4NmUyMiwtMzQwMjgyMzQ2NjM4NTI4ODZlMjIpLHQud3JpdGUoayxNLEEsVSwyMyw0KSxBKzR9Yy5wcm90b3R5cGUud3JpdGVGbG9hdExFPWZ1bmN0aW9uKE0sQSxVKXtyZXR1cm4gb2UodGhpcyxNLEEsITAsVSl9LGMucHJvdG90eXBlLndyaXRlRmxvYXRCRT1mdW5jdGlvbihNLEEsVSl7cmV0dXJuIG9lKHRoaXMsTSxBLCExLFUpfTtmdW5jdGlvbiBmZShrLE0sQSxVLE4pe3JldHVybiBNPStNLEE9QT4+PjAsTnx8bmUoayxNLEEsOCwxNzk3NjkzMTM0ODYyMzE1N2UyOTIsLTE3OTc2OTMxMzQ4NjIzMTU3ZTI5MiksdC53cml0ZShrLE0sQSxVLDUyLDgpLEErOH1jLnByb3RvdHlwZS53cml0ZURvdWJsZUxFPWZ1bmN0aW9uKE0sQSxVKXtyZXR1cm4gZmUodGhpcyxNLEEsITAsVSl9LGMucHJvdG90eXBlLndyaXRlRG91YmxlQkU9ZnVuY3Rpb24oTSxBLFUpe3JldHVybiBmZSh0aGlzLE0sQSwhMSxVKX0sYy5wcm90b3R5cGUuY29weT1mdW5jdGlvbihNLEEsVSxOKXtpZighYy5pc0J1ZmZlcihNKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJhcmd1bWVudCBzaG91bGQgYmUgYSBCdWZmZXIiKTtpZihVfHwoVT0wKSwhTiYmTiE9PTAmJihOPXRoaXMubGVuZ3RoKSxBPj1NLmxlbmd0aCYmKEE9TS5sZW5ndGgpLEF8fChBPTApLE4+MCYmTjxVJiYoTj1VKSxOPT09VXx8TS5sZW5ndGg9PT0wfHx0aGlzLmxlbmd0aD09PTApcmV0dXJuIDA7aWYoQTwwKXRocm93IG5ldyBSYW5nZUVycm9yKCJ0YXJnZXRTdGFydCBvdXQgb2YgYm91bmRzIik7aWYoVTwwfHxVPj10aGlzLmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIik7aWYoTjwwKXRocm93IG5ldyBSYW5nZUVycm9yKCJzb3VyY2VFbmQgb3V0IG9mIGJvdW5kcyIpO04+dGhpcy5sZW5ndGgmJihOPXRoaXMubGVuZ3RoKSxNLmxlbmd0aC1BPE4tVSYmKE49TS5sZW5ndGgtQStVKTt2YXIgUT1OLVU7cmV0dXJuIHRoaXM9PT1NJiZ0eXBlb2YgVWludDhBcnJheS5wcm90b3R5cGUuY29weVdpdGhpbj09ImZ1bmN0aW9uIj90aGlzLmNvcHlXaXRoaW4oQSxVLE4pOlVpbnQ4QXJyYXkucHJvdG90eXBlLnNldC5jYWxsKE0sdGhpcy5zdWJhcnJheShVLE4pLEEpLFF9LGMucHJvdG90eXBlLmZpbGw9ZnVuY3Rpb24oTSxBLFUsTil7aWYodHlwZW9mIE09PSJzdHJpbmciKXtpZih0eXBlb2YgQT09InN0cmluZyI/KE49QSxBPTAsVT10aGlzLmxlbmd0aCk6dHlwZW9mIFU9PSJzdHJpbmciJiYoTj1VLFU9dGhpcy5sZW5ndGgpLE4hPT12b2lkIDAmJnR5cGVvZiBOIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCJlbmNvZGluZyBtdXN0IGJlIGEgc3RyaW5nIik7aWYodHlwZW9mIE49PSJzdHJpbmciJiYhYy5pc0VuY29kaW5nKE4pKXRocm93IG5ldyBUeXBlRXJyb3IoIlVua25vd24gZW5jb2Rpbmc6ICIrTik7aWYoTS5sZW5ndGg9PT0xKXt2YXIgUT1NLmNoYXJDb2RlQXQoMCk7KE49PT0idXRmOCImJlE8MTI4fHxOPT09ImxhdGluMSIpJiYoTT1RKX19ZWxzZSB0eXBlb2YgTT09Im51bWJlciI/TT1NJjI1NTp0eXBlb2YgTT09ImJvb2xlYW4iJiYoTT1OdW1iZXIoTSkpO2lmKEE8MHx8dGhpcy5sZW5ndGg8QXx8dGhpcy5sZW5ndGg8VSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiT3V0IG9mIHJhbmdlIGluZGV4Iik7aWYoVTw9QSlyZXR1cm4gdGhpcztBPUE+Pj4wLFU9VT09PXZvaWQgMD90aGlzLmxlbmd0aDpVPj4+MCxNfHwoTT0wKTt2YXIgdWU7aWYodHlwZW9mIE09PSJudW1iZXIiKWZvcih1ZT1BO3VlPFU7Kyt1ZSl0aGlzW3VlXT1NO2Vsc2V7dmFyICQ9Yy5pc0J1ZmZlcihNKT9NOmMuZnJvbShNLE4pLF89JC5sZW5ndGg7aWYoXz09PTApdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlIHZhbHVlICInK00rJyIgaXMgaW52YWxpZCBmb3IgYXJndW1lbnQgInZhbHVlIicpO2Zvcih1ZT0wO3VlPFUtQTsrK3VlKXRoaXNbdWUrQV09JFt1ZSVfXX1yZXR1cm4gdGhpc307dmFyIEVlPS9bXisvMC05QS1aYS16LV9dL2c7ZnVuY3Rpb24gUmUoayl7aWYoaz1rLnNwbGl0KCI9IilbMF0saz1rLnRyaW0oKS5yZXBsYWNlKEVlLCIiKSxrLmxlbmd0aDwyKXJldHVybiIiO2Zvcig7ay5sZW5ndGglNCE9PTA7KWs9aysiPSI7cmV0dXJuIGt9ZnVuY3Rpb24gQmUoayxNKXtNPU18fDEvMDtmb3IodmFyIEEsVT1rLmxlbmd0aCxOPW51bGwsUT1bXSx1ZT0wO3VlPFU7Kyt1ZSl7aWYoQT1rLmNoYXJDb2RlQXQodWUpLEE+NTUyOTUmJkE8NTczNDQpe2lmKCFOKXtpZihBPjU2MzE5KXsoTS09Myk+LTEmJlEucHVzaCgyMzksMTkxLDE4OSk7Y29udGludWV9ZWxzZSBpZih1ZSsxPT09VSl7KE0tPTMpPi0xJiZRLnB1c2goMjM5LDE5MSwxODkpO2NvbnRpbnVlfU49QTtjb250aW51ZX1pZihBPDU2MzIwKXsoTS09Myk+LTEmJlEucHVzaCgyMzksMTkxLDE4OSksTj1BO2NvbnRpbnVlfUE9KE4tNTUyOTY8PDEwfEEtNTYzMjApKzY1NTM2fWVsc2UgTiYmKE0tPTMpPi0xJiZRLnB1c2goMjM5LDE5MSwxODkpO2lmKE49bnVsbCxBPDEyOCl7aWYoKE0tPTEpPDApYnJlYWs7US5wdXNoKEEpfWVsc2UgaWYoQTwyMDQ4KXtpZigoTS09Mik8MClicmVhaztRLnB1c2goQT4+NnwxOTIsQSY2M3wxMjgpfWVsc2UgaWYoQTw2NTUzNil7aWYoKE0tPTMpPDApYnJlYWs7US5wdXNoKEE+PjEyfDIyNCxBPj42JjYzfDEyOCxBJjYzfDEyOCl9ZWxzZSBpZihBPDExMTQxMTIpe2lmKChNLT00KTwwKWJyZWFrO1EucHVzaChBPj4xOHwyNDAsQT4+MTImNjN8MTI4LEE+PjYmNjN8MTI4LEEmNjN8MTI4KX1lbHNlIHRocm93IG5ldyBFcnJvcigiSW52YWxpZCBjb2RlIHBvaW50Iil9cmV0dXJuIFF9ZnVuY3Rpb24gWWUoayl7Zm9yKHZhciBNPVtdLEE9MDtBPGsubGVuZ3RoOysrQSlNLnB1c2goay5jaGFyQ29kZUF0KEEpJjI1NSk7cmV0dXJuIE19ZnVuY3Rpb24gb3QoayxNKXtmb3IodmFyIEEsVSxOLFE9W10sdWU9MDt1ZTxrLmxlbmd0aCYmISgoTS09Mik8MCk7Kyt1ZSlBPWsuY2hhckNvZGVBdCh1ZSksVT1BPj44LE49QSUyNTYsUS5wdXNoKE4pLFEucHVzaChVKTtyZXR1cm4gUX1mdW5jdGlvbiBxZShrKXtyZXR1cm4gbi50b0J5dGVBcnJheShSZShrKSl9ZnVuY3Rpb24gX2UoayxNLEEsVSl7Zm9yKHZhciBOPTA7TjxVJiYhKE4rQT49TS5sZW5ndGh8fE4+PWsubGVuZ3RoKTsrK04pTVtOK0FdPWtbTl07cmV0dXJuIE59ZnVuY3Rpb24gRmUoayxNKXtyZXR1cm4gayBpbnN0YW5jZW9mIE18fGshPW51bGwmJmsuY29uc3RydWN0b3IhPW51bGwmJmsuY29uc3RydWN0b3IubmFtZSE9bnVsbCYmay5jb25zdHJ1Y3Rvci5uYW1lPT09TS5uYW1lfWZ1bmN0aW9uIFNlKGspe3JldHVybiBrIT09a312YXIgcT1mdW5jdGlvbigpe2Zvcih2YXIgaz0iMDEyMzQ1Njc4OWFiY2RlZiIsTT1uZXcgQXJyYXkoMjU2KSxBPTA7QTwxNjsrK0EpZm9yKHZhciBVPUEqMTYsTj0wO048MTY7KytOKU1bVStOXT1rW0FdK2tbTl07cmV0dXJuIE19KCl9LDUxODA0OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3NTYxOCksbj1lKDE3MjA1KSx0PWUoNjcxOTEpLGk9ZSg1NTE2KSxzPWUoNDk5ODEpLGE9eS5leHBvcnRzPWZ1bmN0aW9uKHUsYyl7dmFyIGgsZCxtLEMsZztyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwyfHx0eXBlb2YgdSE9InN0cmluZyI/KEM9YyxjPXUsdT1udWxsKTpDPWFyZ3VtZW50c1syXSxyKHUpPyhoPXMuY2FsbCh1LCJjIiksZD1zLmNhbGwodSwiZSIpLG09cy5jYWxsKHUsInciKSk6KGg9bT0hMCxkPSExKSxnPXt2YWx1ZTpjLGNvbmZpZ3VyYWJsZTpoLGVudW1lcmFibGU6ZCx3cml0YWJsZTptfSxDP3QoaShDKSxnKTpnfTthLmdzPWZ1bmN0aW9uKHUsYyxoKXt2YXIgZCxtLEMsZztyZXR1cm4gdHlwZW9mIHUhPSJzdHJpbmciPyhDPWgsaD1jLGM9dSx1PW51bGwpOkM9YXJndW1lbnRzWzNdLHIoYyk/bihjKT9yKGgpP24oaCl8fChDPWgsaD12b2lkIDApOmg9dm9pZCAwOihDPWMsYz1oPXZvaWQgMCk6Yz12b2lkIDAscih1KT8oZD1zLmNhbGwodSwiYyIpLG09cy5jYWxsKHUsImUiKSk6KGQ9ITAsbT0hMSksZz17Z2V0OmMsc2V0OmgsY29uZmlndXJhYmxlOmQsZW51bWVyYWJsZTptfSxDP3QoaShDKSxnKTpnfX0sMjc0ODQ6ZnVuY3Rpb24oeSl7KGZ1bmN0aW9uKHAsZSl7eS5leHBvcnRzPWUoKX0pKHRoaXMsZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIHA9MWUzLGU9NmU0LHI9MzZlNSxuPSJtaWxsaXNlY29uZCIsdD0ic2Vjb25kIixpPSJtaW51dGUiLHM9ImhvdXIiLGE9ImRheSIsdT0id2VlayIsYz0ibW9udGgiLGg9InF1YXJ0ZXIiLGQ9InllYXIiLG09ImRhdGUiLEM9IkludmFsaWQgRGF0ZSIsZz0vXihcZHs0fSlbLS9dPyhcZHsxLDJ9KT9bLS9dPyhcZHswLDJ9KVtUdFxzXSooXGR7MSwyfSk/Oj8oXGR7MSwyfSk/Oj8oXGR7MSwyfSk/Wy46XT8oXGQrKT8kLyx3PS9cWyhbXlxdXSspXXxZezEsNH18TXsxLDR9fER7MSwyfXxkezEsNH18SHsxLDJ9fGh7MSwyfXxhfEF8bXsxLDJ9fHN7MSwyfXxaezEsMn18U1NTL2csRT17bmFtZToiZW4iLHdlZWtkYXlzOiJTdW5kYXlfTW9uZGF5X1R1ZXNkYXlfV2VkbmVzZGF5X1RodXJzZGF5X0ZyaWRheV9TYXR1cmRheSIuc3BsaXQoIl8iKSxtb250aHM6IkphbnVhcnlfRmVicnVhcnlfTWFyY2hfQXByaWxfTWF5X0p1bmVfSnVseV9BdWd1c3RfU2VwdGVtYmVyX09jdG9iZXJfTm92ZW1iZXJfRGVjZW1iZXIiLnNwbGl0KCJfIiksb3JkaW5hbDpmdW5jdGlvbihKKXt2YXIgbWU9WyJ0aCIsInN0IiwibmQiLCJyZCJdLHRlPUolMTAwO3JldHVybiJbIitKKyhtZVsodGUtMjApJTEwXXx8bWVbdGVdfHxtZVswXSkrIl0ifX0seD1mdW5jdGlvbihKLG1lLHRlKXt2YXIgbGU9U3RyaW5nKEopO3JldHVybiFsZXx8bGUubGVuZ3RoPj1tZT9KOiIiK0FycmF5KG1lKzEtbGUubGVuZ3RoKS5qb2luKHRlKStKfSxPPXtzOngsejpmdW5jdGlvbihKKXt2YXIgbWU9LUoudXRjT2Zmc2V0KCksdGU9TWF0aC5hYnMobWUpLGxlPU1hdGguZmxvb3IodGUvNjApLGNlPXRlJTYwO3JldHVybihtZTw9MD8iKyI6Ii0iKSt4KGxlLDIsIjAiKSsiOiIreChjZSwyLCIwIil9LG06ZnVuY3Rpb24gSihtZSx0ZSl7aWYobWUuZGF0ZSgpPHRlLmRhdGUoKSlyZXR1cm4tSih0ZSxtZSk7dmFyIGxlPTEyKih0ZS55ZWFyKCktbWUueWVhcigpKSsodGUubW9udGgoKS1tZS5tb250aCgpKSxjZT1tZS5jbG9uZSgpLmFkZChsZSxjKSxXPXRlLWNlPDAsaj1tZS5jbG9uZSgpLmFkZChsZSsoVz8tMToxKSxjKTtyZXR1cm4rKC0obGUrKHRlLWNlKS8oVz9jZS1qOmotY2UpKXx8MCl9LGE6ZnVuY3Rpb24oSil7cmV0dXJuIEo8MD9NYXRoLmNlaWwoSil8fDA6TWF0aC5mbG9vcihKKX0scDpmdW5jdGlvbihKKXtyZXR1cm57TTpjLHk6ZCx3OnUsZDphLEQ6bSxoOnMsbTppLHM6dCxtczpuLFE6aH1bSl18fFN0cmluZyhKfHwiIikudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9zJC8sIiIpfSx1OmZ1bmN0aW9uKEope3JldHVybiBKPT09dm9pZCAwfX0sVD0iZW4iLFM9e307U1tUXT1FO3ZhciBMPSIkaXNEYXlqc09iamVjdCIsST1mdW5jdGlvbihKKXtyZXR1cm4gSiBpbnN0YW5jZW9mIFl8fCEoIUp8fCFKW0xdKX0sUj1mdW5jdGlvbiBKKG1lLHRlLGxlKXt2YXIgY2U7aWYoIW1lKXJldHVybiBUO2lmKHR5cGVvZiBtZT09InN0cmluZyIpe3ZhciBXPW1lLnRvTG93ZXJDYXNlKCk7U1tXXSYmKGNlPVcpLHRlJiYoU1tXXT10ZSxjZT1XKTt2YXIgaj1tZS5zcGxpdCgiLSIpO2lmKCFjZSYmai5sZW5ndGg+MSlyZXR1cm4gSihqWzBdKX1lbHNle3ZhciBEPW1lLm5hbWU7U1tEXT1tZSxjZT1EfXJldHVybiFsZSYmY2UmJihUPWNlKSxjZXx8IWxlJiZUfSx6PWZ1bmN0aW9uKEosbWUpe2lmKEkoSikpcmV0dXJuIEouY2xvbmUoKTt2YXIgdGU9dHlwZW9mIG1lPT0ib2JqZWN0Ij9tZTp7fTtyZXR1cm4gdGUuZGF0ZT1KLHRlLmFyZ3M9YXJndW1lbnRzLG5ldyBZKHRlKX0sRz1PO0cubD1SLEcuaT1JLEcudz1mdW5jdGlvbihKLG1lKXtyZXR1cm4geihKLHtsb2NhbGU6bWUuJEwsdXRjOm1lLiR1LHg6bWUuJHgsJG9mZnNldDptZS4kb2Zmc2V0fSl9O3ZhciBZPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gSih0ZSl7dGhpcy4kTD1SKHRlLmxvY2FsZSxudWxsLCEwKSx0aGlzLnBhcnNlKHRlKSx0aGlzLiR4PXRoaXMuJHh8fHRlLnh8fHt9LHRoaXNbTF09ITB9dmFyIG1lPUoucHJvdG90eXBlO3JldHVybiBtZS5wYXJzZT1mdW5jdGlvbih0ZSl7dGhpcy4kZD1mdW5jdGlvbihsZSl7dmFyIGNlPWxlLmRhdGUsVz1sZS51dGM7aWYoY2U9PT1udWxsKXJldHVybiBuZXcgRGF0ZShOYU4pO2lmKEcudShjZSkpcmV0dXJuIG5ldyBEYXRlO2lmKGNlIGluc3RhbmNlb2YgRGF0ZSlyZXR1cm4gbmV3IERhdGUoY2UpO2lmKHR5cGVvZiBjZT09InN0cmluZyImJiEvWiQvaS50ZXN0KGNlKSl7dmFyIGo9Y2UubWF0Y2goZyk7aWYoail7dmFyIEQ9alsyXS0xfHwwLFY9KGpbN118fCIwIikuc3Vic3RyaW5nKDAsMyk7cmV0dXJuIFc/bmV3IERhdGUoRGF0ZS5VVEMoalsxXSxELGpbM118fDEsals0XXx8MCxqWzVdfHwwLGpbNl18fDAsVikpOm5ldyBEYXRlKGpbMV0sRCxqWzNdfHwxLGpbNF18fDAsals1XXx8MCxqWzZdfHwwLFYpfX1yZXR1cm4gbmV3IERhdGUoY2UpfSh0ZSksdGhpcy5pbml0KCl9LG1lLmluaXQ9ZnVuY3Rpb24oKXt2YXIgdGU9dGhpcy4kZDt0aGlzLiR5PXRlLmdldEZ1bGxZZWFyKCksdGhpcy4kTT10ZS5nZXRNb250aCgpLHRoaXMuJEQ9dGUuZ2V0RGF0ZSgpLHRoaXMuJFc9dGUuZ2V0RGF5KCksdGhpcy4kSD10ZS5nZXRIb3VycygpLHRoaXMuJG09dGUuZ2V0TWludXRlcygpLHRoaXMuJHM9dGUuZ2V0U2Vjb25kcygpLHRoaXMuJG1zPXRlLmdldE1pbGxpc2Vjb25kcygpfSxtZS4kdXRpbHM9ZnVuY3Rpb24oKXtyZXR1cm4gR30sbWUuaXNWYWxpZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLiRkLnRvU3RyaW5nKCkhPT1DfSxtZS5pc1NhbWU9ZnVuY3Rpb24odGUsbGUpe3ZhciBjZT16KHRlKTtyZXR1cm4gdGhpcy5zdGFydE9mKGxlKTw9Y2UmJmNlPD10aGlzLmVuZE9mKGxlKX0sbWUuaXNBZnRlcj1mdW5jdGlvbih0ZSxsZSl7cmV0dXJuIHoodGUpPHRoaXMuc3RhcnRPZihsZSl9LG1lLmlzQmVmb3JlPWZ1bmN0aW9uKHRlLGxlKXtyZXR1cm4gdGhpcy5lbmRPZihsZSk8eih0ZSl9LG1lLiRnPWZ1bmN0aW9uKHRlLGxlLGNlKXtyZXR1cm4gRy51KHRlKT90aGlzW2xlXTp0aGlzLnNldChjZSx0ZSl9LG1lLnVuaXg9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5mbG9vcih0aGlzLnZhbHVlT2YoKS8xZTMpfSxtZS52YWx1ZU9mPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJGQuZ2V0VGltZSgpfSxtZS5zdGFydE9mPWZ1bmN0aW9uKHRlLGxlKXt2YXIgY2U9dGhpcyxXPSEhRy51KGxlKXx8bGUsaj1HLnAodGUpLEQ9ZnVuY3Rpb24oZmUsRWUpe3ZhciBSZT1HLncoY2UuJHU/RGF0ZS5VVEMoY2UuJHksRWUsZmUpOm5ldyBEYXRlKGNlLiR5LEVlLGZlKSxjZSk7cmV0dXJuIFc/UmU6UmUuZW5kT2YoYSl9LFY9ZnVuY3Rpb24oZmUsRWUpe3JldHVybiBHLncoY2UudG9EYXRlKClbZmVdLmFwcGx5KGNlLnRvRGF0ZSgicyIpLChXP1swLDAsMCwwXTpbMjMsNTksNTksOTk5XSkuc2xpY2UoRWUpKSxjZSl9LFo9dGhpcy4kVyxQPXRoaXMuJE0sSz10aGlzLiRELHNlPSJzZXQiKyh0aGlzLiR1PyJVVEMiOiIiKTtzd2l0Y2goail7Y2FzZSBkOnJldHVybiBXP0QoMSwwKTpEKDMxLDExKTtjYXNlIGM6cmV0dXJuIFc/RCgxLFApOkQoMCxQKzEpO2Nhc2UgdTp2YXIgbmU9dGhpcy4kbG9jYWxlKCkud2Vla1N0YXJ0fHwwLG9lPShaPG5lP1orNzpaKS1uZTtyZXR1cm4gRChXP0stb2U6SysoNi1vZSksUCk7Y2FzZSBhOmNhc2UgbTpyZXR1cm4gVihzZSsiSG91cnMiLDApO2Nhc2UgczpyZXR1cm4gVihzZSsiTWludXRlcyIsMSk7Y2FzZSBpOnJldHVybiBWKHNlKyJTZWNvbmRzIiwyKTtjYXNlIHQ6cmV0dXJuIFYoc2UrIk1pbGxpc2Vjb25kcyIsMyk7ZGVmYXVsdDpyZXR1cm4gdGhpcy5jbG9uZSgpfX0sbWUuZW5kT2Y9ZnVuY3Rpb24odGUpe3JldHVybiB0aGlzLnN0YXJ0T2YodGUsITEpfSxtZS4kc2V0PWZ1bmN0aW9uKHRlLGxlKXt2YXIgY2UsVz1HLnAodGUpLGo9InNldCIrKHRoaXMuJHU/IlVUQyI6IiIpLEQ9KGNlPXt9LGNlW2FdPWorIkRhdGUiLGNlW21dPWorIkRhdGUiLGNlW2NdPWorIk1vbnRoIixjZVtkXT1qKyJGdWxsWWVhciIsY2Vbc109aisiSG91cnMiLGNlW2ldPWorIk1pbnV0ZXMiLGNlW3RdPWorIlNlY29uZHMiLGNlW25dPWorIk1pbGxpc2Vjb25kcyIsY2UpW1ddLFY9Vz09PWE/dGhpcy4kRCsobGUtdGhpcy4kVyk6bGU7aWYoVz09PWN8fFc9PT1kKXt2YXIgWj10aGlzLmNsb25lKCkuc2V0KG0sMSk7Wi4kZFtEXShWKSxaLmluaXQoKSx0aGlzLiRkPVouc2V0KG0sTWF0aC5taW4odGhpcy4kRCxaLmRheXNJbk1vbnRoKCkpKS4kZH1lbHNlIEQmJnRoaXMuJGRbRF0oVik7cmV0dXJuIHRoaXMuaW5pdCgpLHRoaXN9LG1lLnNldD1mdW5jdGlvbih0ZSxsZSl7cmV0dXJuIHRoaXMuY2xvbmUoKS4kc2V0KHRlLGxlKX0sbWUuZ2V0PWZ1bmN0aW9uKHRlKXtyZXR1cm4gdGhpc1tHLnAodGUpXSgpfSxtZS5hZGQ9ZnVuY3Rpb24odGUsbGUpe3ZhciBjZSxXPXRoaXM7dGU9TnVtYmVyKHRlKTt2YXIgaj1HLnAobGUpLEQ9ZnVuY3Rpb24oUCl7dmFyIEs9eihXKTtyZXR1cm4gRy53KEsuZGF0ZShLLmRhdGUoKStNYXRoLnJvdW5kKFAqdGUpKSxXKX07aWYoaj09PWMpcmV0dXJuIHRoaXMuc2V0KGMsdGhpcy4kTSt0ZSk7aWYoaj09PWQpcmV0dXJuIHRoaXMuc2V0KGQsdGhpcy4keSt0ZSk7aWYoaj09PWEpcmV0dXJuIEQoMSk7aWYoaj09PXUpcmV0dXJuIEQoNyk7dmFyIFY9KGNlPXt9LGNlW2ldPWUsY2Vbc109cixjZVt0XT1wLGNlKVtqXXx8MSxaPXRoaXMuJGQuZ2V0VGltZSgpK3RlKlY7cmV0dXJuIEcudyhaLHRoaXMpfSxtZS5zdWJ0cmFjdD1mdW5jdGlvbih0ZSxsZSl7cmV0dXJuIHRoaXMuYWRkKC0xKnRlLGxlKX0sbWUuZm9ybWF0PWZ1bmN0aW9uKHRlKXt2YXIgbGU9dGhpcyxjZT10aGlzLiRsb2NhbGUoKTtpZighdGhpcy5pc1ZhbGlkKCkpcmV0dXJuIGNlLmludmFsaWREYXRlfHxDO3ZhciBXPXRlfHwiWVlZWS1NTS1ERFRISDptbTpzc1oiLGo9Ry56KHRoaXMpLEQ9dGhpcy4kSCxWPXRoaXMuJG0sWj10aGlzLiRNLFA9Y2Uud2Vla2RheXMsSz1jZS5tb250aHMsc2U9Y2UubWVyaWRpZW0sbmU9ZnVuY3Rpb24oRWUsUmUsQmUsWWUpe3JldHVybiBFZSYmKEVlW1JlXXx8RWUobGUsVykpfHxCZVtSZV0uc2xpY2UoMCxZZSl9LG9lPWZ1bmN0aW9uKEVlKXtyZXR1cm4gRy5zKEQlMTJ8fDEyLEVlLCIwIil9LGZlPXNlfHxmdW5jdGlvbihFZSxSZSxCZSl7dmFyIFllPUVlPDEyPyJBTSI6IlBNIjtyZXR1cm4gQmU/WWUudG9Mb3dlckNhc2UoKTpZZX07cmV0dXJuIFcucmVwbGFjZSh3LGZ1bmN0aW9uKEVlLFJlKXtyZXR1cm4gUmV8fGZ1bmN0aW9uKEJlKXtzd2l0Y2goQmUpe2Nhc2UiWVkiOnJldHVybiBTdHJpbmcobGUuJHkpLnNsaWNlKC0yKTtjYXNlIllZWVkiOnJldHVybiBHLnMobGUuJHksNCwiMCIpO2Nhc2UiTSI6cmV0dXJuIForMTtjYXNlIk1NIjpyZXR1cm4gRy5zKForMSwyLCIwIik7Y2FzZSJNTU0iOnJldHVybiBuZShjZS5tb250aHNTaG9ydCxaLEssMyk7Y2FzZSJNTU1NIjpyZXR1cm4gbmUoSyxaKTtjYXNlIkQiOnJldHVybiBsZS4kRDtjYXNlIkREIjpyZXR1cm4gRy5zKGxlLiRELDIsIjAiKTtjYXNlImQiOnJldHVybiBTdHJpbmcobGUuJFcpO2Nhc2UiZGQiOnJldHVybiBuZShjZS53ZWVrZGF5c01pbixsZS4kVyxQLDIpO2Nhc2UiZGRkIjpyZXR1cm4gbmUoY2Uud2Vla2RheXNTaG9ydCxsZS4kVyxQLDMpO2Nhc2UiZGRkZCI6cmV0dXJuIFBbbGUuJFddO2Nhc2UiSCI6cmV0dXJuIFN0cmluZyhEKTtjYXNlIkhIIjpyZXR1cm4gRy5zKEQsMiwiMCIpO2Nhc2UiaCI6cmV0dXJuIG9lKDEpO2Nhc2UiaGgiOnJldHVybiBvZSgyKTtjYXNlImEiOnJldHVybiBmZShELFYsITApO2Nhc2UiQSI6cmV0dXJuIGZlKEQsViwhMSk7Y2FzZSJtIjpyZXR1cm4gU3RyaW5nKFYpO2Nhc2UibW0iOnJldHVybiBHLnMoViwyLCIwIik7Y2FzZSJzIjpyZXR1cm4gU3RyaW5nKGxlLiRzKTtjYXNlInNzIjpyZXR1cm4gRy5zKGxlLiRzLDIsIjAiKTtjYXNlIlNTUyI6cmV0dXJuIEcucyhsZS4kbXMsMywiMCIpO2Nhc2UiWiI6cmV0dXJuIGp9cmV0dXJuIG51bGx9KEVlKXx8ai5yZXBsYWNlKCI6IiwiIil9KX0sbWUudXRjT2Zmc2V0PWZ1bmN0aW9uKCl7cmV0dXJuIDE1Ki1NYXRoLnJvdW5kKHRoaXMuJGQuZ2V0VGltZXpvbmVPZmZzZXQoKS8xNSl9LG1lLmRpZmY9ZnVuY3Rpb24odGUsbGUsY2Upe3ZhciBXLGo9dGhpcyxEPUcucChsZSksVj16KHRlKSxaPShWLnV0Y09mZnNldCgpLXRoaXMudXRjT2Zmc2V0KCkpKmUsUD10aGlzLVYsSz1mdW5jdGlvbigpe3JldHVybiBHLm0oaixWKX07c3dpdGNoKEQpe2Nhc2UgZDpXPUsoKS8xMjticmVhaztjYXNlIGM6Vz1LKCk7YnJlYWs7Y2FzZSBoOlc9SygpLzM7YnJlYWs7Y2FzZSB1Olc9KFAtWikvNjA0OGU1O2JyZWFrO2Nhc2UgYTpXPShQLVopLzg2NGU1O2JyZWFrO2Nhc2UgczpXPVAvcjticmVhaztjYXNlIGk6Vz1QL2U7YnJlYWs7Y2FzZSB0Olc9UC9wO2JyZWFrO2RlZmF1bHQ6Vz1QfXJldHVybiBjZT9XOkcuYShXKX0sbWUuZGF5c0luTW9udGg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbmRPZihjKS4kRH0sbWUuJGxvY2FsZT1mdW5jdGlvbigpe3JldHVybiBTW3RoaXMuJExdfSxtZS5sb2NhbGU9ZnVuY3Rpb24odGUsbGUpe2lmKCF0ZSlyZXR1cm4gdGhpcy4kTDt2YXIgY2U9dGhpcy5jbG9uZSgpLFc9Uih0ZSxsZSwhMCk7cmV0dXJuIFcmJihjZS4kTD1XKSxjZX0sbWUuY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gRy53KHRoaXMuJGQsdGhpcyl9LG1lLnRvRGF0ZT1mdW5jdGlvbigpe3JldHVybiBuZXcgRGF0ZSh0aGlzLnZhbHVlT2YoKSl9LG1lLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzVmFsaWQoKT90aGlzLnRvSVNPU3RyaW5nKCk6bnVsbH0sbWUudG9JU09TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kZC50b0lTT1N0cmluZygpfSxtZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLiRkLnRvVVRDU3RyaW5nKCl9LEp9KCksZWU9WS5wcm90b3R5cGU7cmV0dXJuIHoucHJvdG90eXBlPWVlLFtbIiRtcyIsbl0sWyIkcyIsdF0sWyIkbSIsaV0sWyIkSCIsc10sWyIkVyIsYV0sWyIkTSIsY10sWyIkeSIsZF0sWyIkRCIsbV1dLmZvckVhY2goZnVuY3Rpb24oSil7ZWVbSlsxXV09ZnVuY3Rpb24obWUpe3JldHVybiB0aGlzLiRnKG1lLEpbMF0sSlsxXSl9fSksei5leHRlbmQ9ZnVuY3Rpb24oSixtZSl7cmV0dXJuIEouJGl8fChKKG1lLFkseiksSi4kaT0hMCksen0sei5sb2NhbGU9Uix6LmlzRGF5anM9SSx6LnVuaXg9ZnVuY3Rpb24oSil7cmV0dXJuIHooMWUzKkopfSx6LmVuPVNbVF0sei5Mcz1TLHoucD17fSx6fSl9LDI1MDU0OmZ1bmN0aW9uKHkpeyhmdW5jdGlvbihwLGUpe3kuZXhwb3J0cz1lKCl9KSh0aGlzLGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3JldHVybntuYW1lOiJlbiIsd2Vla2RheXM6IlN1bmRheV9Nb25kYXlfVHVlc2RheV9XZWRuZXNkYXlfVGh1cnNkYXlfRnJpZGF5X1NhdHVyZGF5Ii5zcGxpdCgiXyIpLG1vbnRoczoiSmFudWFyeV9GZWJydWFyeV9NYXJjaF9BcHJpbF9NYXlfSnVuZV9KdWx5X0F1Z3VzdF9TZXB0ZW1iZXJfT2N0b2Jlcl9Ob3ZlbWJlcl9EZWNlbWJlciIuc3BsaXQoIl8iKSxvcmRpbmFsOmZ1bmN0aW9uKHApe3ZhciBlPVsidGgiLCJzdCIsIm5kIiwicmQiXSxyPXAlMTAwO3JldHVybiJbIitwKyhlWyhyLTIwKSUxMF18fGVbcl18fGVbMF0pKyJdIn19fSl9LDMzODUyOmZ1bmN0aW9uKHkscCxlKXsoZnVuY3Rpb24ocixuKXt5LmV4cG9ydHM9bihlKDI3NDg0KSl9KSh0aGlzLGZ1bmN0aW9uKHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHMpe3JldHVybiBzJiZ0eXBlb2Ygcz09Im9iamVjdCImJiJkZWZhdWx0ImluIHM/czp7ZGVmYXVsdDpzfX12YXIgdD1uKHIpLGk9e25hbWU6InpoLWNuIix3ZWVrZGF5czoiXHU2NjFGXHU2NzFGXHU2NUU1X1x1NjYxRlx1NjcxRlx1NEUwMF9cdTY2MUZcdTY3MUZcdTRFOENfXHU2NjFGXHU2NzFGXHU0RTA5X1x1NjYxRlx1NjcxRlx1NTZEQl9cdTY2MUZcdTY3MUZcdTRFOTRfXHU2NjFGXHU2NzFGXHU1MTZEIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1NTQ2OFx1NjVFNV9cdTU0NjhcdTRFMDBfXHU1NDY4XHU0RThDX1x1NTQ2OFx1NEUwOV9cdTU0NjhcdTU2REJfXHU1NDY4XHU0RTk0X1x1NTQ2OFx1NTE2RCIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHU2NUU1X1x1NEUwMF9cdTRFOENfXHU0RTA5X1x1NTZEQl9cdTRFOTRfXHU1MTZEIi5zcGxpdCgiXyIpLG1vbnRoczoiXHU0RTAwXHU2NzA4X1x1NEU4Q1x1NjcwOF9cdTRFMDlcdTY3MDhfXHU1NkRCXHU2NzA4X1x1NEU5NFx1NjcwOF9cdTUxNkRcdTY3MDhfXHU0RTAzXHU2NzA4X1x1NTE2Qlx1NjcwOF9cdTRFNURcdTY3MDhfXHU1MzQxXHU2NzA4X1x1NTM0MVx1NEUwMFx1NjcwOF9cdTUzNDFcdTRFOENcdTY3MDgiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6IjFcdTY3MDhfMlx1NjcwOF8zXHU2NzA4XzRcdTY3MDhfNVx1NjcwOF82XHU2NzA4XzdcdTY3MDhfOFx1NjcwOF85XHU2NzA4XzEwXHU2NzA4XzExXHU2NzA4XzEyXHU2NzA4Ii5zcGxpdCgiXyIpLG9yZGluYWw6ZnVuY3Rpb24ocyxhKXtyZXR1cm4gYT09PSJXIj9zKyJcdTU0NjgiOnMrIlx1NjVFNSJ9LHdlZWtTdGFydDoxLHllYXJTdGFydDo0LGZvcm1hdHM6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiWVlZWS9NTS9ERCIsTEw6IllZWVlcdTVFNzRNXHU2NzA4RFx1NjVFNSIsTExMOiJZWVlZXHU1RTc0TVx1NjcwOERcdTY1RTVBaFx1NzBCOW1tXHU1MjA2IixMTExMOiJZWVlZXHU1RTc0TVx1NjcwOERcdTY1RTVkZGRkQWhcdTcwQjltbVx1NTIwNiIsbDoiWVlZWS9NL0QiLGxsOiJZWVlZXHU1RTc0TVx1NjcwOERcdTY1RTUiLGxsbDoiWVlZWVx1NUU3NE1cdTY3MDhEXHU2NUU1IEhIOm1tIixsbGxsOiJZWVlZXHU1RTc0TVx1NjcwOERcdTY1RTVkZGRkIEhIOm1tIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6IiVzXHU1MTg1IixwYXN0OiIlc1x1NTI0RCIsczoiXHU1MUUwXHU3OUQyIixtOiIxIFx1NTIwNlx1OTQ5RiIsbW06IiVkIFx1NTIwNlx1OTQ5RiIsaDoiMSBcdTVDMEZcdTY1RjYiLGhoOiIlZCBcdTVDMEZcdTY1RjYiLGQ6IjEgXHU1OTI5IixkZDoiJWQgXHU1OTI5IixNOiIxIFx1NEUyQVx1NjcwOCIsTU06IiVkIFx1NEUyQVx1NjcwOCIseToiMSBcdTVFNzQiLHl5OiIlZCBcdTVFNzQifSxtZXJpZGllbTpmdW5jdGlvbihzLGEpe3ZhciB1PTEwMCpzK2E7cmV0dXJuIHU8NjAwPyJcdTUxQ0NcdTY2NjgiOnU8OTAwPyJcdTY1RTlcdTRFMEEiOnU8MTEwMD8iXHU0RTBBXHU1MzQ4Ijp1PDEzMDA/Ilx1NEUyRFx1NTM0OCI6dTwxODAwPyJcdTRFMEJcdTUzNDgiOiJcdTY2NUFcdTRFMEEifX07cmV0dXJuIHQuZGVmYXVsdC5sb2NhbGUoaSxudWxsLCEwKSxpfSl9LDQzOTAxOmZ1bmN0aW9uKHkscCxlKXsoZnVuY3Rpb24ocixuKXt5LmV4cG9ydHM9bihlKDI3NDg0KSl9KSh0aGlzLGZ1bmN0aW9uKHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHMpe3JldHVybiBzJiZ0eXBlb2Ygcz09Im9iamVjdCImJiJkZWZhdWx0ImluIHM/czp7ZGVmYXVsdDpzfX12YXIgdD1uKHIpLGk9e25hbWU6InpoLXR3Iix3ZWVrZGF5czoiXHU2NjFGXHU2NzFGXHU2NUU1X1x1NjYxRlx1NjcxRlx1NEUwMF9cdTY2MUZcdTY3MUZcdTRFOENfXHU2NjFGXHU2NzFGXHU0RTA5X1x1NjYxRlx1NjcxRlx1NTZEQl9cdTY2MUZcdTY3MUZcdTRFOTRfXHU2NjFGXHU2NzFGXHU1MTZEIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1OTAzMVx1NjVFNV9cdTkwMzFcdTRFMDBfXHU5MDMxXHU0RThDX1x1OTAzMVx1NEUwOV9cdTkwMzFcdTU2REJfXHU5MDMxXHU0RTk0X1x1OTAzMVx1NTE2RCIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHU2NUU1X1x1NEUwMF9cdTRFOENfXHU0RTA5X1x1NTZEQl9cdTRFOTRfXHU1MTZEIi5zcGxpdCgiXyIpLG1vbnRoczoiXHU0RTAwXHU2NzA4X1x1NEU4Q1x1NjcwOF9cdTRFMDlcdTY3MDhfXHU1NkRCXHU2NzA4X1x1NEU5NFx1NjcwOF9cdTUxNkRcdTY3MDhfXHU0RTAzXHU2NzA4X1x1NTE2Qlx1NjcwOF9cdTRFNURcdTY3MDhfXHU1MzQxXHU2NzA4X1x1NTM0MVx1NEUwMFx1NjcwOF9cdTUzNDFcdTRFOENcdTY3MDgiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6IjFcdTY3MDhfMlx1NjcwOF8zXHU2NzA4XzRcdTY3MDhfNVx1NjcwOF82XHU2NzA4XzdcdTY3MDhfOFx1NjcwOF85XHU2NzA4XzEwXHU2NzA4XzExXHU2NzA4XzEyXHU2NzA4Ii5zcGxpdCgiXyIpLG9yZGluYWw6ZnVuY3Rpb24ocyxhKXtyZXR1cm4gYT09PSJXIj9zKyJcdTkwMzEiOnMrIlx1NjVFNSJ9LGZvcm1hdHM6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiWVlZWS9NTS9ERCIsTEw6IllZWVlcdTVFNzRNXHU2NzA4RFx1NjVFNSIsTExMOiJZWVlZXHU1RTc0TVx1NjcwOERcdTY1RTUgSEg6bW0iLExMTEw6IllZWVlcdTVFNzRNXHU2NzA4RFx1NjVFNWRkZGQgSEg6bW0iLGw6IllZWVkvTS9EIixsbDoiWVlZWVx1NUU3NE1cdTY3MDhEXHU2NUU1IixsbGw6IllZWVlcdTVFNzRNXHU2NzA4RFx1NjVFNSBISDptbSIsbGxsbDoiWVlZWVx1NUU3NE1cdTY3MDhEXHU2NUU1ZGRkZCBISDptbSJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiIlc1x1NTE2NyIscGFzdDoiJXNcdTUyNEQiLHM6Ilx1NUU3RVx1NzlEMiIsbToiMSBcdTUyMDZcdTk0MTgiLG1tOiIlZCBcdTUyMDZcdTk0MTgiLGg6IjEgXHU1QzBGXHU2NjQyIixoaDoiJWQgXHU1QzBGXHU2NjQyIixkOiIxIFx1NTkyOSIsZGQ6IiVkIFx1NTkyOSIsTToiMSBcdTUwMEJcdTY3MDgiLE1NOiIlZCBcdTUwMEJcdTY3MDgiLHk6IjEgXHU1RTc0Iix5eToiJWQgXHU1RTc0In0sbWVyaWRpZW06ZnVuY3Rpb24ocyxhKXt2YXIgdT0xMDAqcythO3JldHVybiB1PDYwMD8iXHU1MUNDXHU2NjY4Ijp1PDkwMD8iXHU2NUU5XHU0RTBBIjp1PDExMDA/Ilx1NEUwQVx1NTM0OCI6dTwxMzAwPyJcdTRFMkRcdTUzNDgiOnU8MTgwMD8iXHU0RTBCXHU1MzQ4IjoiXHU2NjVBXHU0RTBBIn19O3JldHVybiB0LmRlZmF1bHQubG9jYWxlKGksbnVsbCwhMCksaX0pfSwyODczNDpmdW5jdGlvbih5KXsoZnVuY3Rpb24ocCxlKXt5LmV4cG9ydHM9ZSgpfSkodGhpcyxmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0IjtyZXR1cm4gZnVuY3Rpb24ocCxlKXt2YXIgcj1lLnByb3RvdHlwZSxuPXIuZm9ybWF0O3IuZm9ybWF0PWZ1bmN0aW9uKHQpe3ZhciBpPXRoaXMscz10aGlzLiRsb2NhbGUoKTtpZighdGhpcy5pc1ZhbGlkKCkpcmV0dXJuIG4uYmluZCh0aGlzKSh0KTt2YXIgYT10aGlzLiR1dGlscygpLHU9KHR8fCJZWVlZLU1NLUREVEhIOm1tOnNzWiIpLnJlcGxhY2UoL1xbKFteXF1dKyldfFF8d298d3d8d3xXV3xXfHp6enx6fGdnZ2d8R0dHR3xEb3xYfHh8a3sxLDJ9fFMvZyxmdW5jdGlvbihjKXtzd2l0Y2goYyl7Y2FzZSJRIjpyZXR1cm4gTWF0aC5jZWlsKChpLiRNKzEpLzMpO2Nhc2UiRG8iOnJldHVybiBzLm9yZGluYWwoaS4kRCk7Y2FzZSJnZ2dnIjpyZXR1cm4gaS53ZWVrWWVhcigpO2Nhc2UiR0dHRyI6cmV0dXJuIGkuaXNvV2Vla1llYXIoKTtjYXNlIndvIjpyZXR1cm4gcy5vcmRpbmFsKGkud2VlaygpLCJXIik7Y2FzZSJ3IjpjYXNlInd3IjpyZXR1cm4gYS5zKGkud2VlaygpLGM9PT0idyI/MToyLCIwIik7Y2FzZSJXIjpjYXNlIldXIjpyZXR1cm4gYS5zKGkuaXNvV2VlaygpLGM9PT0iVyI/MToyLCIwIik7Y2FzZSJrIjpjYXNlImtrIjpyZXR1cm4gYS5zKFN0cmluZyhpLiRIPT09MD8yNDppLiRIKSxjPT09ImsiPzE6MiwiMCIpO2Nhc2UiWCI6cmV0dXJuIE1hdGguZmxvb3IoaS4kZC5nZXRUaW1lKCkvMWUzKTtjYXNlIngiOnJldHVybiBpLiRkLmdldFRpbWUoKTtjYXNlInoiOnJldHVybiJbIitpLm9mZnNldE5hbWUoKSsiXSI7Y2FzZSJ6enoiOnJldHVybiJbIitpLm9mZnNldE5hbWUoImxvbmciKSsiXSI7ZGVmYXVsdDpyZXR1cm4gY319KTtyZXR1cm4gbi5iaW5kKHRoaXMpKHUpfX19KX0sMTAyODU6ZnVuY3Rpb24oeSl7KGZ1bmN0aW9uKHAsZSl7eS5leHBvcnRzPWUoKX0pKHRoaXMsZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIHA9e0xUUzoiaDptbTpzcyBBIixMVDoiaDptbSBBIixMOiJNTS9ERC9ZWVlZIixMTDoiTU1NTSBELCBZWVlZIixMTEw6Ik1NTU0gRCwgWVlZWSBoOm1tIEEiLExMTEw6ImRkZGQsIE1NTU0gRCwgWVlZWSBoOm1tIEEifSxlPS8oXFtbXltdKlxdKXwoWy1fOi8uLCgpXHNdKyl8KEF8YXxRfFlZWVl8WVk/fHd3P3xNTT9NP00/fERvfEREP3xoaD98SEg/fG1tP3xzcz98U3sxLDN9fHp8Wlo/KS9nLHI9L1xkLyxuPS9cZFxkLyx0PS9cZFxkPy8saT0vXGQqW14tXzovLCgpXHNcZF0rLyxzPXt9LGE9ZnVuY3Rpb24oZyl7cmV0dXJuKGc9K2cpKyhnPjY4PzE5MDA6MmUzKX0sdT1mdW5jdGlvbihnKXtyZXR1cm4gZnVuY3Rpb24odyl7dGhpc1tnXT0rd319LGM9Wy9bKy1dXGRcZDo/KFxkXGQpP3xaLyxmdW5jdGlvbihnKXsodGhpcy56b25lfHwodGhpcy56b25lPXt9KSkub2Zmc2V0PWZ1bmN0aW9uKHcpe2lmKCF3fHx3PT09IloiKXJldHVybiAwO3ZhciBFPXcubWF0Y2goLyhbKy1dfFxkXGQpL2cpLHg9NjAqRVsxXSsoK0VbMl18fDApO3JldHVybiB4PT09MD8wOkVbMF09PT0iKyI/LXg6eH0oZyl9XSxoPWZ1bmN0aW9uKGcpe3ZhciB3PXNbZ107cmV0dXJuIHcmJih3LmluZGV4T2Y/dzp3LnMuY29uY2F0KHcuZikpfSxkPWZ1bmN0aW9uKGcsdyl7dmFyIEUseD1zLm1lcmlkaWVtO2lmKHgpe2Zvcih2YXIgTz0xO088PTI0O08rPTEpaWYoZy5pbmRleE9mKHgoTywwLHcpKT4tMSl7RT1PPjEyO2JyZWFrfX1lbHNlIEU9Zz09PSh3PyJwbSI6IlBNIik7cmV0dXJuIEV9LG09e0E6W2ksZnVuY3Rpb24oZyl7dGhpcy5hZnRlcm5vb249ZChnLCExKX1dLGE6W2ksZnVuY3Rpb24oZyl7dGhpcy5hZnRlcm5vb249ZChnLCEwKX1dLFE6W3IsZnVuY3Rpb24oZyl7dGhpcy5tb250aD0zKihnLTEpKzF9XSxTOltyLGZ1bmN0aW9uKGcpe3RoaXMubWlsbGlzZWNvbmRzPTEwMCorZ31dLFNTOltuLGZ1bmN0aW9uKGcpe3RoaXMubWlsbGlzZWNvbmRzPTEwKitnfV0sU1NTOlsvXGR7M30vLGZ1bmN0aW9uKGcpe3RoaXMubWlsbGlzZWNvbmRzPStnfV0sczpbdCx1KCJzZWNvbmRzIildLHNzOlt0LHUoInNlY29uZHMiKV0sbTpbdCx1KCJtaW51dGVzIildLG1tOlt0LHUoIm1pbnV0ZXMiKV0sSDpbdCx1KCJob3VycyIpXSxoOlt0LHUoImhvdXJzIildLEhIOlt0LHUoImhvdXJzIildLGhoOlt0LHUoImhvdXJzIildLEQ6W3QsdSgiZGF5IildLEREOltuLHUoImRheSIpXSxEbzpbaSxmdW5jdGlvbihnKXt2YXIgdz1zLm9yZGluYWwsRT1nLm1hdGNoKC9cZCsvKTtpZih0aGlzLmRheT1FWzBdLHcpZm9yKHZhciB4PTE7eDw9MzE7eCs9MSl3KHgpLnJlcGxhY2UoL1xbfFxdL2csIiIpPT09ZyYmKHRoaXMuZGF5PXgpfV0sdzpbdCx1KCJ3ZWVrIildLHd3OltuLHUoIndlZWsiKV0sTTpbdCx1KCJtb250aCIpXSxNTTpbbix1KCJtb250aCIpXSxNTU06W2ksZnVuY3Rpb24oZyl7dmFyIHc9aCgibW9udGhzIiksRT0oaCgibW9udGhzU2hvcnQiKXx8dy5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHguc2xpY2UoMCwzKX0pKS5pbmRleE9mKGcpKzE7aWYoRTwxKXRocm93IG5ldyBFcnJvcjt0aGlzLm1vbnRoPUUlMTJ8fEV9XSxNTU1NOltpLGZ1bmN0aW9uKGcpe3ZhciB3PWgoIm1vbnRocyIpLmluZGV4T2YoZykrMTtpZih3PDEpdGhyb3cgbmV3IEVycm9yO3RoaXMubW9udGg9dyUxMnx8d31dLFk6Wy9bKy1dP1xkKy8sdSgieWVhciIpXSxZWTpbbixmdW5jdGlvbihnKXt0aGlzLnllYXI9YShnKX1dLFlZWVk6Wy9cZHs0fS8sdSgieWVhciIpXSxaOmMsWlo6Y307ZnVuY3Rpb24gQyhnKXt2YXIgdyxFO3c9ZyxFPXMmJnMuZm9ybWF0cztmb3IodmFyIHg9KGc9dy5yZXBsYWNlKC8oXFtbXlxdXStdKXwoTFRTP3xsezEsNH18THsxLDR9KS9nLGZ1bmN0aW9uKHosRyxZKXt2YXIgZWU9WSYmWS50b1VwcGVyQ2FzZSgpO3JldHVybiBHfHxFW1ldfHxwW1ldfHxFW2VlXS5yZXBsYWNlKC8oXFtbXlxdXStdKXwoTU1NTXxNTXxERHxkZGRkKS9nLGZ1bmN0aW9uKEosbWUsdGUpe3JldHVybiBtZXx8dGUuc2xpY2UoMSl9KX0pKS5tYXRjaChlKSxPPXgubGVuZ3RoLFQ9MDtUPE87VCs9MSl7dmFyIFM9eFtUXSxMPW1bU10sST1MJiZMWzBdLFI9TCYmTFsxXTt4W1RdPVI/e3JlZ2V4OkkscGFyc2VyOlJ9OlMucmVwbGFjZSgvXlxbfFxdJC9nLCIiKX1yZXR1cm4gZnVuY3Rpb24oeil7Zm9yKHZhciBHPXt9LFk9MCxlZT0wO1k8TztZKz0xKXt2YXIgSj14W1ldO2lmKHR5cGVvZiBKPT0ic3RyaW5nIillZSs9Si5sZW5ndGg7ZWxzZXt2YXIgbWU9Si5yZWdleCx0ZT1KLnBhcnNlcixsZT16LnNsaWNlKGVlKSxjZT1tZS5leGVjKGxlKVswXTt0ZS5jYWxsKEcsY2UpLHo9ei5yZXBsYWNlKGNlLCIiKX19cmV0dXJuIGZ1bmN0aW9uKFcpe3ZhciBqPVcuYWZ0ZXJub29uO2lmKGohPT12b2lkIDApe3ZhciBEPVcuaG91cnM7aj9EPDEyJiYoVy5ob3Vycys9MTIpOkQ9PT0xMiYmKFcuaG91cnM9MCksZGVsZXRlIFcuYWZ0ZXJub29ufX0oRyksR319cmV0dXJuIGZ1bmN0aW9uKGcsdyxFKXtFLnAuY3VzdG9tUGFyc2VGb3JtYXQ9ITAsZyYmZy5wYXJzZVR3b0RpZ2l0WWVhciYmKGE9Zy5wYXJzZVR3b0RpZ2l0WWVhcik7dmFyIHg9dy5wcm90b3R5cGUsTz14LnBhcnNlO3gucGFyc2U9ZnVuY3Rpb24oVCl7dmFyIFM9VC5kYXRlLEw9VC51dGMsST1ULmFyZ3M7dGhpcy4kdT1MO3ZhciBSPUlbMV07aWYodHlwZW9mIFI9PSJzdHJpbmciKXt2YXIgej1JWzJdPT09ITAsRz1JWzNdPT09ITAsWT16fHxHLGVlPUlbMl07RyYmKGVlPUlbMl0pLHM9dGhpcy4kbG9jYWxlKCksIXomJmVlJiYocz1FLkxzW2VlXSksdGhpcy4kZD1mdW5jdGlvbihsZSxjZSxXLGope3RyeXtpZihbIngiLCJYIl0uaW5kZXhPZihjZSk+LTEpcmV0dXJuIG5ldyBEYXRlKChjZT09PSJYIj8xZTM6MSkqbGUpO3ZhciBEPUMoY2UpKGxlKSxWPUQueWVhcixaPUQubW9udGgsUD1ELmRheSxLPUQuaG91cnMsc2U9RC5taW51dGVzLG5lPUQuc2Vjb25kcyxvZT1ELm1pbGxpc2Vjb25kcyxmZT1ELnpvbmUsRWU9RC53ZWVrLFJlPW5ldyBEYXRlLEJlPVB8fChWfHxaPzE6UmUuZ2V0RGF0ZSgpKSxZZT1WfHxSZS5nZXRGdWxsWWVhcigpLG90PTA7ViYmIVp8fChvdD1aPjA/Wi0xOlJlLmdldE1vbnRoKCkpO3ZhciBxZSxfZT1LfHwwLEZlPXNlfHwwLFNlPW5lfHwwLHE9b2V8fDA7cmV0dXJuIGZlP25ldyBEYXRlKERhdGUuVVRDKFllLG90LEJlLF9lLEZlLFNlLHErNjAqZmUub2Zmc2V0KjFlMykpOlc/bmV3IERhdGUoRGF0ZS5VVEMoWWUsb3QsQmUsX2UsRmUsU2UscSkpOihxZT1uZXcgRGF0ZShZZSxvdCxCZSxfZSxGZSxTZSxxKSxFZSYmKHFlPWoocWUpLndlZWsoRWUpLnRvRGF0ZSgpKSxxZSl9Y2F0Y2goayl7cmV0dXJuIG5ldyBEYXRlKCIiKX19KFMsUixMLEUpLHRoaXMuaW5pdCgpLGVlJiZlZSE9PSEwJiYodGhpcy4kTD10aGlzLmxvY2FsZShlZSkuJEwpLFkmJlMhPXRoaXMuZm9ybWF0KFIpJiYodGhpcy4kZD1uZXcgRGF0ZSgiIikpLHM9e319ZWxzZSBpZihSIGluc3RhbmNlb2YgQXJyYXkpZm9yKHZhciBKPVIubGVuZ3RoLG1lPTE7bWU8PUo7bWUrPTEpe0lbMV09UlttZS0xXTt2YXIgdGU9RS5hcHBseSh0aGlzLEkpO2lmKHRlLmlzVmFsaWQoKSl7dGhpcy4kZD10ZS4kZCx0aGlzLiRMPXRlLiRMLHRoaXMuaW5pdCgpO2JyZWFrfW1lPT09SiYmKHRoaXMuJGQ9bmV3IERhdGUoIiIpKX1lbHNlIE8uY2FsbCh0aGlzLFQpfX19KX0sMTY0NjpmdW5jdGlvbih5KXsoZnVuY3Rpb24ocCxlKXt5LmV4cG9ydHM9ZSgpfSkodGhpcyxmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgcCxlLHI9MWUzLG49NmU0LHQ9MzZlNSxpPTg2NGU1LHM9L1xbKFteXF1dKyldfFl7MSw0fXxNezEsNH18RHsxLDJ9fGR7MSw0fXxIezEsMn18aHsxLDJ9fGF8QXxtezEsMn18c3sxLDJ9fFp7MSwyfXxTU1MvZyxhPTMxNTM2ZTYsdT0yNjI4ZTYsYz0vXigtfFwrKT9QKD86KFstK10/WzAtOSwuXSopWSk/KD86KFstK10/WzAtOSwuXSopTSk/KD86KFstK10/WzAtOSwuXSopVyk/KD86KFstK10/WzAtOSwuXSopRCk/KD86VCg/OihbLStdP1swLTksLl0qKUgpPyg/OihbLStdP1swLTksLl0qKU0pPyg/OihbLStdP1swLTksLl0qKVMpPyk/JC8saD17eWVhcnM6YSxtb250aHM6dSxkYXlzOmksaG91cnM6dCxtaW51dGVzOm4sc2Vjb25kczpyLG1pbGxpc2Vjb25kczoxLHdlZWtzOjYwNDhlNX0sZD1mdW5jdGlvbihTKXtyZXR1cm4gUyBpbnN0YW5jZW9mIE99LG09ZnVuY3Rpb24oUyxMLEkpe3JldHVybiBuZXcgTyhTLEksTC4kbCl9LEM9ZnVuY3Rpb24oUyl7cmV0dXJuIGUucChTKSsicyJ9LGc9ZnVuY3Rpb24oUyl7cmV0dXJuIFM8MH0sdz1mdW5jdGlvbihTKXtyZXR1cm4gZyhTKT9NYXRoLmNlaWwoUyk6TWF0aC5mbG9vcihTKX0sRT1mdW5jdGlvbihTKXtyZXR1cm4gTWF0aC5hYnMoUyl9LHg9ZnVuY3Rpb24oUyxMKXtyZXR1cm4gUz9nKFMpP3tuZWdhdGl2ZTohMCxmb3JtYXQ6IiIrRShTKStMfTp7bmVnYXRpdmU6ITEsZm9ybWF0OiIiK1MrTH06e25lZ2F0aXZlOiExLGZvcm1hdDoiIn19LE89ZnVuY3Rpb24oKXtmdW5jdGlvbiBTKEksUix6KXt2YXIgRz10aGlzO2lmKHRoaXMuJGQ9e30sdGhpcy4kbD16LEk9PT12b2lkIDAmJih0aGlzLiRtcz0wLHRoaXMucGFyc2VGcm9tTWlsbGlzZWNvbmRzKCkpLFIpcmV0dXJuIG0oSSpoW0MoUildLHRoaXMpO2lmKHR5cGVvZiBJPT0ibnVtYmVyIilyZXR1cm4gdGhpcy4kbXM9SSx0aGlzLnBhcnNlRnJvbU1pbGxpc2Vjb25kcygpLHRoaXM7aWYodHlwZW9mIEk9PSJvYmplY3QiKXJldHVybiBPYmplY3Qua2V5cyhJKS5mb3JFYWNoKGZ1bmN0aW9uKEope0cuJGRbQyhKKV09SVtKXX0pLHRoaXMuY2FsTWlsbGlzZWNvbmRzKCksdGhpcztpZih0eXBlb2YgST09InN0cmluZyIpe3ZhciBZPUkubWF0Y2goYyk7aWYoWSl7dmFyIGVlPVkuc2xpY2UoMikubWFwKGZ1bmN0aW9uKEope3JldHVybiBKIT1udWxsP051bWJlcihKKTowfSk7cmV0dXJuIHRoaXMuJGQueWVhcnM9ZWVbMF0sdGhpcy4kZC5tb250aHM9ZWVbMV0sdGhpcy4kZC53ZWVrcz1lZVsyXSx0aGlzLiRkLmRheXM9ZWVbM10sdGhpcy4kZC5ob3Vycz1lZVs0XSx0aGlzLiRkLm1pbnV0ZXM9ZWVbNV0sdGhpcy4kZC5zZWNvbmRzPWVlWzZdLHRoaXMuY2FsTWlsbGlzZWNvbmRzKCksdGhpc319cmV0dXJuIHRoaXN9dmFyIEw9Uy5wcm90b3R5cGU7cmV0dXJuIEwuY2FsTWlsbGlzZWNvbmRzPWZ1bmN0aW9uKCl7dmFyIEk9dGhpczt0aGlzLiRtcz1PYmplY3Qua2V5cyh0aGlzLiRkKS5yZWR1Y2UoZnVuY3Rpb24oUix6KXtyZXR1cm4gUisoSS4kZFt6XXx8MCkqaFt6XX0sMCl9LEwucGFyc2VGcm9tTWlsbGlzZWNvbmRzPWZ1bmN0aW9uKCl7dmFyIEk9dGhpcy4kbXM7dGhpcy4kZC55ZWFycz13KEkvYSksSSU9YSx0aGlzLiRkLm1vbnRocz13KEkvdSksSSU9dSx0aGlzLiRkLmRheXM9dyhJL2kpLEklPWksdGhpcy4kZC5ob3Vycz13KEkvdCksSSU9dCx0aGlzLiRkLm1pbnV0ZXM9dyhJL24pLEklPW4sdGhpcy4kZC5zZWNvbmRzPXcoSS9yKSxJJT1yLHRoaXMuJGQubWlsbGlzZWNvbmRzPUl9LEwudG9JU09TdHJpbmc9ZnVuY3Rpb24oKXt2YXIgST14KHRoaXMuJGQueWVhcnMsIlkiKSxSPXgodGhpcy4kZC5tb250aHMsIk0iKSx6PSt0aGlzLiRkLmRheXN8fDA7dGhpcy4kZC53ZWVrcyYmKHorPTcqdGhpcy4kZC53ZWVrcyk7dmFyIEc9eCh6LCJEIiksWT14KHRoaXMuJGQuaG91cnMsIkgiKSxlZT14KHRoaXMuJGQubWludXRlcywiTSIpLEo9dGhpcy4kZC5zZWNvbmRzfHwwO3RoaXMuJGQubWlsbGlzZWNvbmRzJiYoSis9dGhpcy4kZC5taWxsaXNlY29uZHMvMWUzLEo9TWF0aC5yb3VuZCgxZTMqSikvMWUzKTt2YXIgbWU9eChKLCJTIiksdGU9SS5uZWdhdGl2ZXx8Ui5uZWdhdGl2ZXx8Ry5uZWdhdGl2ZXx8WS5uZWdhdGl2ZXx8ZWUubmVnYXRpdmV8fG1lLm5lZ2F0aXZlLGxlPVkuZm9ybWF0fHxlZS5mb3JtYXR8fG1lLmZvcm1hdD8iVCI6IiIsY2U9KHRlPyItIjoiIikrIlAiK0kuZm9ybWF0K1IuZm9ybWF0K0cuZm9ybWF0K2xlK1kuZm9ybWF0K2VlLmZvcm1hdCttZS5mb3JtYXQ7cmV0dXJuIGNlPT09IlAifHxjZT09PSItUCI/IlAwRCI6Y2V9LEwudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9JU09TdHJpbmcoKX0sTC5mb3JtYXQ9ZnVuY3Rpb24oSSl7dmFyIFI9SXx8IllZWVktTU0tRERUSEg6bW06c3MiLHo9e1k6dGhpcy4kZC55ZWFycyxZWTplLnModGhpcy4kZC55ZWFycywyLCIwIiksWVlZWTplLnModGhpcy4kZC55ZWFycyw0LCIwIiksTTp0aGlzLiRkLm1vbnRocyxNTTplLnModGhpcy4kZC5tb250aHMsMiwiMCIpLEQ6dGhpcy4kZC5kYXlzLEREOmUucyh0aGlzLiRkLmRheXMsMiwiMCIpLEg6dGhpcy4kZC5ob3VycyxISDplLnModGhpcy4kZC5ob3VycywyLCIwIiksbTp0aGlzLiRkLm1pbnV0ZXMsbW06ZS5zKHRoaXMuJGQubWludXRlcywyLCIwIiksczp0aGlzLiRkLnNlY29uZHMsc3M6ZS5zKHRoaXMuJGQuc2Vjb25kcywyLCIwIiksU1NTOmUucyh0aGlzLiRkLm1pbGxpc2Vjb25kcywzLCIwIil9O3JldHVybiBSLnJlcGxhY2UocyxmdW5jdGlvbihHLFkpe3JldHVybiBZfHxTdHJpbmcoeltHXSl9KX0sTC5hcz1mdW5jdGlvbihJKXtyZXR1cm4gdGhpcy4kbXMvaFtDKEkpXX0sTC5nZXQ9ZnVuY3Rpb24oSSl7dmFyIFI9dGhpcy4kbXMsej1DKEkpO3JldHVybiB6PT09Im1pbGxpc2Vjb25kcyI/UiU9MWUzOlI9ej09PSJ3ZWVrcyI/dyhSL2hbel0pOnRoaXMuJGRbel0sUnx8MH0sTC5hZGQ9ZnVuY3Rpb24oSSxSLHope3ZhciBHO3JldHVybiBHPVI/SSpoW0MoUildOmQoSSk/SS4kbXM6bShJLHRoaXMpLiRtcyxtKHRoaXMuJG1zK0cqKHo/LTE6MSksdGhpcyl9LEwuc3VidHJhY3Q9ZnVuY3Rpb24oSSxSKXtyZXR1cm4gdGhpcy5hZGQoSSxSLCEwKX0sTC5sb2NhbGU9ZnVuY3Rpb24oSSl7dmFyIFI9dGhpcy5jbG9uZSgpO3JldHVybiBSLiRsPUksUn0sTC5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBtKHRoaXMuJG1zLHRoaXMpfSxMLmh1bWFuaXplPWZ1bmN0aW9uKEkpe3JldHVybiBwKCkuYWRkKHRoaXMuJG1zLCJtcyIpLmxvY2FsZSh0aGlzLiRsKS5mcm9tTm93KCFJKX0sTC52YWx1ZU9mPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYXNNaWxsaXNlY29uZHMoKX0sTC5taWxsaXNlY29uZHM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXQoIm1pbGxpc2Vjb25kcyIpfSxMLmFzTWlsbGlzZWNvbmRzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYXMoIm1pbGxpc2Vjb25kcyIpfSxMLnNlY29uZHM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXQoInNlY29uZHMiKX0sTC5hc1NlY29uZHM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hcygic2Vjb25kcyIpfSxMLm1pbnV0ZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXQoIm1pbnV0ZXMiKX0sTC5hc01pbnV0ZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hcygibWludXRlcyIpfSxMLmhvdXJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0KCJob3VycyIpfSxMLmFzSG91cnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hcygiaG91cnMiKX0sTC5kYXlzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0KCJkYXlzIil9LEwuYXNEYXlzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYXMoImRheXMiKX0sTC53ZWVrcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmdldCgid2Vla3MiKX0sTC5hc1dlZWtzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYXMoIndlZWtzIil9LEwubW9udGhzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0KCJtb250aHMiKX0sTC5hc01vbnRocz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmFzKCJtb250aHMiKX0sTC55ZWFycz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmdldCgieWVhcnMiKX0sTC5hc1llYXJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYXMoInllYXJzIil9LFN9KCksVD1mdW5jdGlvbihTLEwsSSl7cmV0dXJuIFMuYWRkKEwueWVhcnMoKSpJLCJ5IikuYWRkKEwubW9udGhzKCkqSSwiTSIpLmFkZChMLmRheXMoKSpJLCJkIikuYWRkKEwuaG91cnMoKSpJLCJoIikuYWRkKEwubWludXRlcygpKkksIm0iKS5hZGQoTC5zZWNvbmRzKCkqSSwicyIpLmFkZChMLm1pbGxpc2Vjb25kcygpKkksIm1zIil9O3JldHVybiBmdW5jdGlvbihTLEwsSSl7cD1JLGU9SSgpLiR1dGlscygpLEkuZHVyYXRpb249ZnVuY3Rpb24oRyxZKXt2YXIgZWU9SS5sb2NhbGUoKTtyZXR1cm4gbShHLHskbDplZX0sWSl9LEkuaXNEdXJhdGlvbj1kO3ZhciBSPUwucHJvdG90eXBlLmFkZCx6PUwucHJvdG90eXBlLnN1YnRyYWN0O0wucHJvdG90eXBlLmFkZD1mdW5jdGlvbihHLFkpe3JldHVybiBkKEcpP1QodGhpcyxHLDEpOlIuYmluZCh0aGlzKShHLFkpfSxMLnByb3RvdHlwZS5zdWJ0cmFjdD1mdW5jdGlvbihHLFkpe3JldHVybiBkKEcpP1QodGhpcyxHLC0xKTp6LmJpbmQodGhpcykoRyxZKX19fSl9LDM0NDI1OmZ1bmN0aW9uKHkpeyhmdW5jdGlvbihwLGUpe3kuZXhwb3J0cz1lKCl9KSh0aGlzLGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3JldHVybiBmdW5jdGlvbihwLGUscil7ci5pc01vbWVudD1mdW5jdGlvbihuKXtyZXR1cm4gci5pc0RheWpzKG4pfX19KX0sNzkyMTI6ZnVuY3Rpb24oeSl7KGZ1bmN0aW9uKHAsZSl7eS5leHBvcnRzPWUoKX0pKHRoaXMsZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7cmV0dXJuIGZ1bmN0aW9uKHAsZSl7ZS5wcm90b3R5cGUuaXNTYW1lT3JBZnRlcj1mdW5jdGlvbihyLG4pe3JldHVybiB0aGlzLmlzU2FtZShyLG4pfHx0aGlzLmlzQWZ0ZXIocixuKX19fSl9LDM3NDEyOmZ1bmN0aW9uKHkpeyhmdW5jdGlvbihwLGUpe3kuZXhwb3J0cz1lKCl9KSh0aGlzLGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3JldHVybiBmdW5jdGlvbihwLGUpe2UucHJvdG90eXBlLmlzU2FtZU9yQmVmb3JlPWZ1bmN0aW9uKHIsbil7cmV0dXJuIHRoaXMuaXNTYW1lKHIsbil8fHRoaXMuaXNCZWZvcmUocixuKX19fSl9LDk2MDM2OmZ1bmN0aW9uKHkpeyhmdW5jdGlvbihwLGUpe3kuZXhwb3J0cz1lKCl9KSh0aGlzLGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3JldHVybiBmdW5jdGlvbihwLGUscil7dmFyIG49ZS5wcm90b3R5cGUsdD1mdW5jdGlvbihjKXtyZXR1cm4gYyYmKGMuaW5kZXhPZj9jOmMucyl9LGk9ZnVuY3Rpb24oYyxoLGQsbSxDKXt2YXIgZz1jLm5hbWU/YzpjLiRsb2NhbGUoKSx3PXQoZ1toXSksRT10KGdbZF0pLHg9d3x8RS5tYXAoZnVuY3Rpb24oVCl7cmV0dXJuIFQuc2xpY2UoMCxtKX0pO2lmKCFDKXJldHVybiB4O3ZhciBPPWcud2Vla1N0YXJ0O3JldHVybiB4Lm1hcChmdW5jdGlvbihULFMpe3JldHVybiB4WyhTKyhPfHwwKSklN119KX0scz1mdW5jdGlvbigpe3JldHVybiByLkxzW3IubG9jYWxlKCldfSxhPWZ1bmN0aW9uKGMsaCl7cmV0dXJuIGMuZm9ybWF0c1toXXx8ZnVuY3Rpb24oZCl7cmV0dXJuIGQucmVwbGFjZSgvKFxbW15cXV0rXSl8KE1NTU18TU18RER8ZGRkZCkvZyxmdW5jdGlvbihtLEMsZyl7cmV0dXJuIEN8fGcuc2xpY2UoMSl9KX0oYy5mb3JtYXRzW2gudG9VcHBlckNhc2UoKV0pfSx1PWZ1bmN0aW9uKCl7dmFyIGM9dGhpcztyZXR1cm57bW9udGhzOmZ1bmN0aW9uKGgpe3JldHVybiBoP2guZm9ybWF0KCJNTU1NIik6aShjLCJtb250aHMiKX0sbW9udGhzU2hvcnQ6ZnVuY3Rpb24oaCl7cmV0dXJuIGg/aC5mb3JtYXQoIk1NTSIpOmkoYywibW9udGhzU2hvcnQiLCJtb250aHMiLDMpfSxmaXJzdERheU9mV2VlazpmdW5jdGlvbigpe3JldHVybiBjLiRsb2NhbGUoKS53ZWVrU3RhcnR8fDB9LHdlZWtkYXlzOmZ1bmN0aW9uKGgpe3JldHVybiBoP2guZm9ybWF0KCJkZGRkIik6aShjLCJ3ZWVrZGF5cyIpfSx3ZWVrZGF5c01pbjpmdW5jdGlvbihoKXtyZXR1cm4gaD9oLmZvcm1hdCgiZGQiKTppKGMsIndlZWtkYXlzTWluIiwid2Vla2RheXMiLDIpfSx3ZWVrZGF5c1Nob3J0OmZ1bmN0aW9uKGgpe3JldHVybiBoP2guZm9ybWF0KCJkZGQiKTppKGMsIndlZWtkYXlzU2hvcnQiLCJ3ZWVrZGF5cyIsMyl9LGxvbmdEYXRlRm9ybWF0OmZ1bmN0aW9uKGgpe3JldHVybiBhKGMuJGxvY2FsZSgpLGgpfSxtZXJpZGllbTp0aGlzLiRsb2NhbGUoKS5tZXJpZGllbSxvcmRpbmFsOnRoaXMuJGxvY2FsZSgpLm9yZGluYWx9fTtuLmxvY2FsZURhdGE9ZnVuY3Rpb24oKXtyZXR1cm4gdS5iaW5kKHRoaXMpKCl9LHIubG9jYWxlRGF0YT1mdW5jdGlvbigpe3ZhciBjPXMoKTtyZXR1cm57Zmlyc3REYXlPZldlZWs6ZnVuY3Rpb24oKXtyZXR1cm4gYy53ZWVrU3RhcnR8fDB9LHdlZWtkYXlzOmZ1bmN0aW9uKCl7cmV0dXJuIHIud2Vla2RheXMoKX0sd2Vla2RheXNTaG9ydDpmdW5jdGlvbigpe3JldHVybiByLndlZWtkYXlzU2hvcnQoKX0sd2Vla2RheXNNaW46ZnVuY3Rpb24oKXtyZXR1cm4gci53ZWVrZGF5c01pbigpfSxtb250aHM6ZnVuY3Rpb24oKXtyZXR1cm4gci5tb250aHMoKX0sbW9udGhzU2hvcnQ6ZnVuY3Rpb24oKXtyZXR1cm4gci5tb250aHNTaG9ydCgpfSxsb25nRGF0ZUZvcm1hdDpmdW5jdGlvbihoKXtyZXR1cm4gYShjLGgpfSxtZXJpZGllbTpjLm1lcmlkaWVtLG9yZGluYWw6Yy5vcmRpbmFsfX0sci5tb250aHM9ZnVuY3Rpb24oKXtyZXR1cm4gaShzKCksIm1vbnRocyIpfSxyLm1vbnRoc1Nob3J0PWZ1bmN0aW9uKCl7cmV0dXJuIGkocygpLCJtb250aHNTaG9ydCIsIm1vbnRocyIsMyl9LHIud2Vla2RheXM9ZnVuY3Rpb24oYyl7cmV0dXJuIGkocygpLCJ3ZWVrZGF5cyIsbnVsbCxudWxsLGMpfSxyLndlZWtkYXlzU2hvcnQ9ZnVuY3Rpb24oYyl7cmV0dXJuIGkocygpLCJ3ZWVrZGF5c1Nob3J0Iiwid2Vla2RheXMiLDMsYyl9LHIud2Vla2RheXNNaW49ZnVuY3Rpb24oYyl7cmV0dXJuIGkocygpLCJ3ZWVrZGF5c01pbiIsIndlZWtkYXlzIiwyLGMpfX19KX0sNTYxNzY6ZnVuY3Rpb24oeSl7KGZ1bmN0aW9uKHAsZSl7eS5leHBvcnRzPWUoKX0pKHRoaXMsZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIHA9e0xUUzoiaDptbTpzcyBBIixMVDoiaDptbSBBIixMOiJNTS9ERC9ZWVlZIixMTDoiTU1NTSBELCBZWVlZIixMTEw6Ik1NTU0gRCwgWVlZWSBoOm1tIEEiLExMTEw6ImRkZGQsIE1NTU0gRCwgWVlZWSBoOm1tIEEifTtyZXR1cm4gZnVuY3Rpb24oZSxyLG4pe3ZhciB0PXIucHJvdG90eXBlLGk9dC5mb3JtYXQ7bi5lbi5mb3JtYXRzPXAsdC5mb3JtYXQ9ZnVuY3Rpb24ocyl7cz09PXZvaWQgMCYmKHM9IllZWVktTU0tRERUSEg6bW06c3NaIik7dmFyIGE9dGhpcy4kbG9jYWxlKCkuZm9ybWF0cyx1PWZ1bmN0aW9uKGMsaCl7cmV0dXJuIGMucmVwbGFjZSgvKFxbW15cXV0rXSl8KExUUz98bHsxLDR9fEx7MSw0fSkvZyxmdW5jdGlvbihkLG0sQyl7dmFyIGc9QyYmQy50b1VwcGVyQ2FzZSgpO3JldHVybiBtfHxoW0NdfHxwW0NdfHxoW2ddLnJlcGxhY2UoLyhcW1teXF1dK10pfChNTU1NfE1NfEREfGRkZGQpL2csZnVuY3Rpb24odyxFLHgpe3JldHVybiBFfHx4LnNsaWNlKDEpfSl9KX0ocyxhPT09dm9pZCAwP3t9OmEpO3JldHVybiBpLmNhbGwodGhpcyx1KX19fSl9LDU1MTgzOmZ1bmN0aW9uKHkpeyhmdW5jdGlvbihwLGUpe3kuZXhwb3J0cz1lKCl9KSh0aGlzLGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBwPSJ3ZWVrIixlPSJ5ZWFyIjtyZXR1cm4gZnVuY3Rpb24ocixuLHQpe3ZhciBpPW4ucHJvdG90eXBlO2kud2Vlaz1mdW5jdGlvbihzKXtpZihzPT09dm9pZCAwJiYocz1udWxsKSxzIT09bnVsbClyZXR1cm4gdGhpcy5hZGQoNyoocy10aGlzLndlZWsoKSksImRheSIpO3ZhciBhPXRoaXMuJGxvY2FsZSgpLnllYXJTdGFydHx8MTtpZih0aGlzLm1vbnRoKCk9PT0xMSYmdGhpcy5kYXRlKCk+MjUpe3ZhciB1PXQodGhpcykuc3RhcnRPZihlKS5hZGQoMSxlKS5kYXRlKGEpLGM9dCh0aGlzKS5lbmRPZihwKTtpZih1LmlzQmVmb3JlKGMpKXJldHVybiAxfXZhciBoPXQodGhpcykuc3RhcnRPZihlKS5kYXRlKGEpLnN0YXJ0T2YocCkuc3VidHJhY3QoMSwibWlsbGlzZWNvbmQiKSxkPXRoaXMuZGlmZihoLHAsITApO3JldHVybiBkPDA/dCh0aGlzKS5zdGFydE9mKCJ3ZWVrIikud2VlaygpOk1hdGguY2VpbChkKX0saS53ZWVrcz1mdW5jdGlvbihzKXtyZXR1cm4gcz09PXZvaWQgMCYmKHM9bnVsbCksdGhpcy53ZWVrKHMpfX19KX0sMTcyOmZ1bmN0aW9uKHkpeyhmdW5jdGlvbihwLGUpe3kuZXhwb3J0cz1lKCl9KSh0aGlzLGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3JldHVybiBmdW5jdGlvbihwLGUpe2UucHJvdG90eXBlLndlZWtZZWFyPWZ1bmN0aW9uKCl7dmFyIHI9dGhpcy5tb250aCgpLG49dGhpcy53ZWVrKCksdD10aGlzLnllYXIoKTtyZXR1cm4gbj09PTEmJnI9PT0xMT90KzE6cj09PTAmJm4+PTUyP3QtMTp0fX19KX0sNjgzMzpmdW5jdGlvbih5KXsoZnVuY3Rpb24ocCxlKXt5LmV4cG9ydHM9ZSgpfSkodGhpcyxmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0IjtyZXR1cm4gZnVuY3Rpb24ocCxlKXtlLnByb3RvdHlwZS53ZWVrZGF5PWZ1bmN0aW9uKHIpe3ZhciBuPXRoaXMuJGxvY2FsZSgpLndlZWtTdGFydHx8MCx0PXRoaXMuJFcsaT0odDxuP3QrNzp0KS1uO3JldHVybiB0aGlzLiR1dGlscygpLnUocik/aTp0aGlzLnN1YnRyYWN0KGksImRheSIpLmFkZChyLCJkYXkiKX19fSl9LDcwNDMwOmZ1bmN0aW9uKHkpeyJ1c2Ugc3RyaWN0Ijt5LmV4cG9ydHM9ZnVuY3Rpb24oKXt9fSw2NzE5MTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3kuZXhwb3J0cz1lKDk2NTYwKSgpP09iamVjdC5hc3NpZ246ZSg0NzM0Nil9LDk2NTYwOmZ1bmN0aW9uKHkpeyJ1c2Ugc3RyaWN0Ijt5LmV4cG9ydHM9ZnVuY3Rpb24oKXt2YXIgcD1PYmplY3QuYXNzaWduLGU7cmV0dXJuIHR5cGVvZiBwIT0iZnVuY3Rpb24iPyExOihlPXtmb286InJheiJ9LHAoZSx7YmFyOiJkd2EifSx7dHJ6eToidHJ6eSJ9KSxlLmZvbytlLmJhcitlLnRyenk9PT0icmF6ZHdhdHJ6eSIpfX0sNDczNDY6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDQ1MTAzKSxuPWUoMzI3NDUpLHQ9TWF0aC5tYXg7eS5leHBvcnRzPWZ1bmN0aW9uKGkscyl7dmFyIGEsdSxjPXQoYXJndW1lbnRzLmxlbmd0aCwyKSxoO2ZvcihpPU9iamVjdChuKGkpKSxoPWZ1bmN0aW9uKGQpe3RyeXtpW2RdPXNbZF19Y2F0Y2gobSl7YXx8KGE9bSl9fSx1PTE7dTxjOysrdSlzPWFyZ3VtZW50c1t1XSxyKHMpLmZvckVhY2goaCk7aWYoYSE9PXZvaWQgMCl0aHJvdyBhO3JldHVybiBpfX0sNzY5MTQ6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDcwNDMwKSgpO3kuZXhwb3J0cz1mdW5jdGlvbihuKXtyZXR1cm4gbiE9PXImJm4hPT1udWxsfX0sNDUxMDM6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt5LmV4cG9ydHM9ZSgxNzQ0NikoKT9PYmplY3Qua2V5czplKDk2MTM3KX0sMTc0NDY6ZnVuY3Rpb24oeSl7InVzZSBzdHJpY3QiO3kuZXhwb3J0cz1mdW5jdGlvbigpe3RyeXtyZXR1cm4gT2JqZWN0LmtleXMoInByaW1pdGl2ZSIpLCEwfWNhdGNoKHApe3JldHVybiExfX19LDk2MTM3OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3NjkxNCksbj1PYmplY3Qua2V5czt5LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIG4ocih0KT9PYmplY3QodCk6dCl9fSw1NTE2OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3NjkxNCksbj1BcnJheS5wcm90b3R5cGUuZm9yRWFjaCx0PU9iamVjdC5jcmVhdGUsaT1mdW5jdGlvbihzLGEpe3ZhciB1O2Zvcih1IGluIHMpYVt1XT1zW3VdfTt5LmV4cG9ydHM9ZnVuY3Rpb24ocyl7dmFyIGE9dChudWxsKTtyZXR1cm4gbi5jYWxsKGFyZ3VtZW50cyxmdW5jdGlvbih1KXtyKHUpJiZpKE9iamVjdCh1KSxhKX0pLGF9fSwzMTI5MDpmdW5jdGlvbih5KXsidXNlIHN0cmljdCI7eS5leHBvcnRzPWZ1bmN0aW9uKHApe2lmKHR5cGVvZiBwIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IocCsiIGlzIG5vdCBhIGZ1bmN0aW9uIik7cmV0dXJuIHB9fSwzMjc0NTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzY5MTQpO3kuZXhwb3J0cz1mdW5jdGlvbihuKXtpZighcihuKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgdXNlIG51bGwgb3IgdW5kZWZpbmVkIik7cmV0dXJuIG59fSw0OTk4MTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3kuZXhwb3J0cz1lKDQzNTkxKSgpP1N0cmluZy5wcm90b3R5cGUuY29udGFpbnM6ZSg2MDQyKX0sNDM1OTE6ZnVuY3Rpb24oeSl7InVzZSBzdHJpY3QiO3ZhciBwPSJyYXpkd2F0cnp5Ijt5LmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm4gdHlwZW9mIHAuY29udGFpbnMhPSJmdW5jdGlvbiI/ITE6cC5jb250YWlucygiZHdhIik9PT0hMCYmcC5jb250YWlucygiZm9vIik9PT0hMX19LDYwNDI6ZnVuY3Rpb24oeSl7InVzZSBzdHJpY3QiO3ZhciBwPVN0cmluZy5wcm90b3R5cGUuaW5kZXhPZjt5LmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIHAuY2FsbCh0aGlzLGUsYXJndW1lbnRzWzFdKT4tMX19LDQ4MzcwOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg1MTgwNCksbj1lKDMxMjkwKSx0PUZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseSxpPUZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsLHM9T2JqZWN0LmNyZWF0ZSxhPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSx1PU9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzLGM9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxoPXtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMSx3cml0YWJsZTohMH0sZCxtLEMsZyx3LEUseDtkPWZ1bmN0aW9uKE8sVCl7dmFyIFM7cmV0dXJuIG4oVCksYy5jYWxsKHRoaXMsIl9fZWVfXyIpP1M9dGhpcy5fX2VlX186KFM9aC52YWx1ZT1zKG51bGwpLGEodGhpcywiX19lZV9fIixoKSxoLnZhbHVlPW51bGwpLFNbT10/dHlwZW9mIFNbT109PSJvYmplY3QiP1NbT10ucHVzaChUKTpTW09dPVtTW09dLFRdOlNbT109VCx0aGlzfSxtPWZ1bmN0aW9uKE8sVCl7dmFyIFMsTDtyZXR1cm4gbihUKSxMPXRoaXMsZC5jYWxsKHRoaXMsTyxTPWZ1bmN0aW9uKCl7Qy5jYWxsKEwsTyxTKSx0LmNhbGwoVCx0aGlzLGFyZ3VtZW50cyl9KSxTLl9fZWVPbmNlTGlzdGVuZXJfXz1ULHRoaXN9LEM9ZnVuY3Rpb24oTyxUKXt2YXIgUyxMLEksUjtpZihuKFQpLCFjLmNhbGwodGhpcywiX19lZV9fIikpcmV0dXJuIHRoaXM7aWYoUz10aGlzLl9fZWVfXywhU1tPXSlyZXR1cm4gdGhpcztpZihMPVNbT10sdHlwZW9mIEw9PSJvYmplY3QiKWZvcihSPTA7ST1MW1JdOysrUikoST09PVR8fEkuX19lZU9uY2VMaXN0ZW5lcl9fPT09VCkmJihMLmxlbmd0aD09PTI/U1tPXT1MW1I/MDoxXTpMLnNwbGljZShSLDEpKTtlbHNlKEw9PT1UfHxMLl9fZWVPbmNlTGlzdGVuZXJfXz09PVQpJiZkZWxldGUgU1tPXTtyZXR1cm4gdGhpc30sZz1mdW5jdGlvbihPKXt2YXIgVCxTLEwsSSxSO2lmKGMuY2FsbCh0aGlzLCJfX2VlX18iKSYmKEk9dGhpcy5fX2VlX19bT10sISFJKSlpZih0eXBlb2YgST09Im9iamVjdCIpe2ZvcihTPWFyZ3VtZW50cy5sZW5ndGgsUj1uZXcgQXJyYXkoUy0xKSxUPTE7VDxTOysrVClSW1QtMV09YXJndW1lbnRzW1RdO2ZvcihJPUkuc2xpY2UoKSxUPTA7TD1JW1RdOysrVCl0LmNhbGwoTCx0aGlzLFIpfWVsc2Ugc3dpdGNoKGFyZ3VtZW50cy5sZW5ndGgpe2Nhc2UgMTppLmNhbGwoSSx0aGlzKTticmVhaztjYXNlIDI6aS5jYWxsKEksdGhpcyxhcmd1bWVudHNbMV0pO2JyZWFrO2Nhc2UgMzppLmNhbGwoSSx0aGlzLGFyZ3VtZW50c1sxXSxhcmd1bWVudHNbMl0pO2JyZWFrO2RlZmF1bHQ6Zm9yKFM9YXJndW1lbnRzLmxlbmd0aCxSPW5ldyBBcnJheShTLTEpLFQ9MTtUPFM7KytUKVJbVC0xXT1hcmd1bWVudHNbVF07dC5jYWxsKEksdGhpcyxSKX19LHc9e29uOmQsb25jZTptLG9mZjpDLGVtaXQ6Z30sRT17b246cihkKSxvbmNlOnIobSksb2ZmOnIoQyksZW1pdDpyKGcpfSx4PXUoe30sRSkseS5leHBvcnRzPXA9ZnVuY3Rpb24oTyl7cmV0dXJuIE89PW51bGw/cyh4KTp1KE9iamVjdChPKSxFKX0scC5tZXRob2RzPXd9LDY0MDYzOmZ1bmN0aW9uKHkpeyJ1c2Ugc3RyaWN0Ijt5LmV4cG9ydHM9ZnVuY3Rpb24gcChlLHIpe2lmKGU9PT1yKXJldHVybiEwO2lmKGUmJnImJnR5cGVvZiBlPT0ib2JqZWN0IiYmdHlwZW9mIHI9PSJvYmplY3QiKXtpZihlLmNvbnN0cnVjdG9yIT09ci5jb25zdHJ1Y3RvcilyZXR1cm4hMTt2YXIgbix0LGk7aWYoQXJyYXkuaXNBcnJheShlKSl7aWYobj1lLmxlbmd0aCxuIT1yLmxlbmd0aClyZXR1cm4hMTtmb3IodD1uO3QtLSE9PTA7KWlmKCFwKGVbdF0sclt0XSkpcmV0dXJuITE7cmV0dXJuITB9aWYoZS5jb25zdHJ1Y3Rvcj09PVJlZ0V4cClyZXR1cm4gZS5zb3VyY2U9PT1yLnNvdXJjZSYmZS5mbGFncz09PXIuZmxhZ3M7aWYoZS52YWx1ZU9mIT09T2JqZWN0LnByb3RvdHlwZS52YWx1ZU9mKXJldHVybiBlLnZhbHVlT2YoKT09PXIudmFsdWVPZigpO2lmKGUudG9TdHJpbmchPT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nKXJldHVybiBlLnRvU3RyaW5nKCk9PT1yLnRvU3RyaW5nKCk7aWYoaT1PYmplY3Qua2V5cyhlKSxuPWkubGVuZ3RoLG4hPT1PYmplY3Qua2V5cyhyKS5sZW5ndGgpcmV0dXJuITE7Zm9yKHQ9bjt0LS0hPT0wOylpZighT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHIsaVt0XSkpcmV0dXJuITE7Zm9yKHQ9bjt0LS0hPT0wOyl7dmFyIHM9aVt0XTtpZighcChlW3NdLHJbc10pKXJldHVybiExfXJldHVybiEwfXJldHVybiBlIT09ZSYmciE9PXJ9fSw1NTY0ODpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtFcDpmdW5jdGlvbigpe3JldHVybiBFfSxQUDpmdW5jdGlvbigpe3JldHVybiBkfSxhVTpmdW5jdGlvbigpe3JldHVybiBufSxjUDpmdW5jdGlvbigpe3JldHVybiB4fSxsWDpmdW5jdGlvbigpe3JldHVybiBjfSxxXzpmdW5jdGlvbigpe3JldHVybiBofX0pO3ZhciByPWUoODc0NjIpLG47KGZ1bmN0aW9uKE8pe08uUG9wPSJQT1AiLE8uUHVzaD0iUFVTSCIsTy5SZXBsYWNlPSJSRVBMQUNFIn0pKG58fChuPXt9KSk7dmFyIHQ9ZnVuY3Rpb24oTyl7cmV0dXJuIE99O2Z1bmN0aW9uIGkoTyxUKXtpZighTyl7dHlwZW9mIGNvbnNvbGUhPSJ1bmRlZmluZWQiJiZjb25zb2xlLndhcm4oVCk7dHJ5e3Rocm93IG5ldyBFcnJvcihUKX1jYXRjaChTKXt9fX12YXIgcz0iYmVmb3JldW5sb2FkIixhPSJoYXNoY2hhbmdlIix1PSJwb3BzdGF0ZSI7ZnVuY3Rpb24gYyhPKXtPPT09dm9pZCAwJiYoTz17fSk7dmFyIFQ9TyxTPVQud2luZG93LEw9Uz09PXZvaWQgMD9kb2N1bWVudC5kZWZhdWx0VmlldzpTLEk9TC5oaXN0b3J5O2Z1bmN0aW9uIFIoKXt2YXIgbmU9TC5sb2NhdGlvbixvZT1uZS5wYXRobmFtZSxmZT1uZS5zZWFyY2gsRWU9bmUuaGFzaCxSZT1JLnN0YXRlfHx7fTtyZXR1cm5bUmUuaWR4LHQoe3BhdGhuYW1lOm9lLHNlYXJjaDpmZSxoYXNoOkVlLHN0YXRlOlJlLnVzcnx8bnVsbCxrZXk6UmUua2V5fHwiZGVmYXVsdCJ9KV19dmFyIHo9bnVsbDtmdW5jdGlvbiBHKCl7aWYoeilsZS5jYWxsKHopLHo9bnVsbDtlbHNle3ZhciBuZT1uLlBvcCxvZT1SKCksZmU9b2VbMF0sRWU9b2VbMV07aWYobGUubGVuZ3RoKXtpZihmZSE9bnVsbCl7dmFyIFJlPUotZmU7UmUmJih6PXthY3Rpb246bmUsbG9jYXRpb246RWUscmV0cnk6ZnVuY3Rpb24oKXtLKFJlKi0xKX19LEsoUmUpKX19ZWxzZSBWKG5lKX19TC5hZGRFdmVudExpc3RlbmVyKHUsRyk7dmFyIFk9bi5Qb3AsZWU9UigpLEo9ZWVbMF0sbWU9ZWVbMV0sdGU9ZygpLGxlPWcoKTtKPT1udWxsJiYoSj0wLEkucmVwbGFjZVN0YXRlKCgwLHIuWikoe30sSS5zdGF0ZSx7aWR4Okp9KSwiIikpO2Z1bmN0aW9uIGNlKG5lKXtyZXR1cm4gdHlwZW9mIG5lPT0ic3RyaW5nIj9uZTpFKG5lKX1mdW5jdGlvbiBXKG5lLG9lKXtyZXR1cm4gb2U9PT12b2lkIDAmJihvZT1udWxsKSx0KCgwLHIuWikoe3BhdGhuYW1lOm1lLnBhdGhuYW1lLGhhc2g6IiIsc2VhcmNoOiIifSx0eXBlb2YgbmU9PSJzdHJpbmciP3gobmUpOm5lLHtzdGF0ZTpvZSxrZXk6dygpfSkpfWZ1bmN0aW9uIGoobmUsb2Upe3JldHVyblt7dXNyOm5lLnN0YXRlLGtleTpuZS5rZXksaWR4Om9lfSxjZShuZSldfWZ1bmN0aW9uIEQobmUsb2UsZmUpe3JldHVybiFsZS5sZW5ndGh8fChsZS5jYWxsKHthY3Rpb246bmUsbG9jYXRpb246b2UscmV0cnk6ZmV9KSwhMSl9ZnVuY3Rpb24gVihuZSl7WT1uZTt2YXIgb2U9UigpO0o9b2VbMF0sbWU9b2VbMV0sdGUuY2FsbCh7YWN0aW9uOlksbG9jYXRpb246bWV9KX1mdW5jdGlvbiBaKG5lLG9lKXt2YXIgZmU9bi5QdXNoLEVlPVcobmUsb2UpO2Z1bmN0aW9uIFJlKCl7WihuZSxvZSl9aWYoRChmZSxFZSxSZSkpe3ZhciBCZT1qKEVlLEorMSksWWU9QmVbMF0sb3Q9QmVbMV07dHJ5e0kucHVzaFN0YXRlKFllLCIiLG90KX1jYXRjaChxZSl7TC5sb2NhdGlvbi5hc3NpZ24ob3QpfVYoZmUpfX1mdW5jdGlvbiBQKG5lLG9lKXt2YXIgZmU9bi5SZXBsYWNlLEVlPVcobmUsb2UpO2Z1bmN0aW9uIFJlKCl7UChuZSxvZSl9aWYoRChmZSxFZSxSZSkpe3ZhciBCZT1qKEVlLEopLFllPUJlWzBdLG90PUJlWzFdO0kucmVwbGFjZVN0YXRlKFllLCIiLG90KSxWKGZlKX19ZnVuY3Rpb24gSyhuZSl7SS5nbyhuZSl9dmFyIHNlPXtnZXQgYWN0aW9uKCl7cmV0dXJuIFl9LGdldCBsb2NhdGlvbigpe3JldHVybiBtZX0sY3JlYXRlSHJlZjpjZSxwdXNoOloscmVwbGFjZTpQLGdvOkssYmFjazpmdW5jdGlvbigpe0soLTEpfSxmb3J3YXJkOmZ1bmN0aW9uKCl7SygxKX0sbGlzdGVuOmZ1bmN0aW9uKG9lKXtyZXR1cm4gdGUucHVzaChvZSl9LGJsb2NrOmZ1bmN0aW9uKG9lKXt2YXIgZmU9bGUucHVzaChvZSk7cmV0dXJuIGxlLmxlbmd0aD09PTEmJkwuYWRkRXZlbnRMaXN0ZW5lcihzLEMpLGZ1bmN0aW9uKCl7ZmUoKSxsZS5sZW5ndGh8fEwucmVtb3ZlRXZlbnRMaXN0ZW5lcihzLEMpfX19O3JldHVybiBzZX1mdW5jdGlvbiBoKE8pe089PT12b2lkIDAmJihPPXt9KTt2YXIgVD1PLFM9VC53aW5kb3csTD1TPT09dm9pZCAwP2RvY3VtZW50LmRlZmF1bHRWaWV3OlMsST1MLmhpc3Rvcnk7ZnVuY3Rpb24gUigpe3ZhciBvZT14KEwubG9jYXRpb24uaGFzaC5zdWJzdHIoMSkpLGZlPW9lLnBhdGhuYW1lLEVlPWZlPT09dm9pZCAwPyIvIjpmZSxSZT1vZS5zZWFyY2gsQmU9UmU9PT12b2lkIDA/IiI6UmUsWWU9b2UuaGFzaCxvdD1ZZT09PXZvaWQgMD8iIjpZZSxxZT1JLnN0YXRlfHx7fTtyZXR1cm5bcWUuaWR4LHQoe3BhdGhuYW1lOkVlLHNlYXJjaDpCZSxoYXNoOm90LHN0YXRlOnFlLnVzcnx8bnVsbCxrZXk6cWUua2V5fHwiZGVmYXVsdCJ9KV19dmFyIHo9bnVsbDtmdW5jdGlvbiBHKCl7aWYoeilsZS5jYWxsKHopLHo9bnVsbDtlbHNle3ZhciBvZT1uLlBvcCxmZT1SKCksRWU9ZmVbMF0sUmU9ZmVbMV07aWYobGUubGVuZ3RoKXtpZihFZSE9bnVsbCl7dmFyIEJlPUotRWU7QmUmJih6PXthY3Rpb246b2UsbG9jYXRpb246UmUscmV0cnk6ZnVuY3Rpb24oKXtzZShCZSotMSl9fSxzZShCZSkpfX1lbHNlIFoob2UpfX1MLmFkZEV2ZW50TGlzdGVuZXIodSxHKSxMLmFkZEV2ZW50TGlzdGVuZXIoYSxmdW5jdGlvbigpe3ZhciBvZT1SKCksZmU9b2VbMV07RShmZSkhPT1FKG1lKSYmRygpfSk7dmFyIFk9bi5Qb3AsZWU9UigpLEo9ZWVbMF0sbWU9ZWVbMV0sdGU9ZygpLGxlPWcoKTtKPT1udWxsJiYoSj0wLEkucmVwbGFjZVN0YXRlKCgwLHIuWikoe30sSS5zdGF0ZSx7aWR4Okp9KSwiIikpO2Z1bmN0aW9uIGNlKCl7dmFyIG9lPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImJhc2UiKSxmZT0iIjtpZihvZSYmb2UuZ2V0QXR0cmlidXRlKCJocmVmIikpe3ZhciBFZT1MLmxvY2F0aW9uLmhyZWYsUmU9RWUuaW5kZXhPZigiIyIpO2ZlPVJlPT09LTE/RWU6RWUuc2xpY2UoMCxSZSl9cmV0dXJuIGZlfWZ1bmN0aW9uIFcob2Upe3JldHVybiBjZSgpKyIjIisodHlwZW9mIG9lPT0ic3RyaW5nIj9vZTpFKG9lKSl9ZnVuY3Rpb24gaihvZSxmZSl7cmV0dXJuIGZlPT09dm9pZCAwJiYoZmU9bnVsbCksdCgoMCxyLlopKHtwYXRobmFtZTptZS5wYXRobmFtZSxoYXNoOiIiLHNlYXJjaDoiIn0sdHlwZW9mIG9lPT0ic3RyaW5nIj94KG9lKTpvZSx7c3RhdGU6ZmUsa2V5OncoKX0pKX1mdW5jdGlvbiBEKG9lLGZlKXtyZXR1cm5be3VzcjpvZS5zdGF0ZSxrZXk6b2Uua2V5LGlkeDpmZX0sVyhvZSldfWZ1bmN0aW9uIFYob2UsZmUsRWUpe3JldHVybiFsZS5sZW5ndGh8fChsZS5jYWxsKHthY3Rpb246b2UsbG9jYXRpb246ZmUscmV0cnk6RWV9KSwhMSl9ZnVuY3Rpb24gWihvZSl7WT1vZTt2YXIgZmU9UigpO0o9ZmVbMF0sbWU9ZmVbMV0sdGUuY2FsbCh7YWN0aW9uOlksbG9jYXRpb246bWV9KX1mdW5jdGlvbiBQKG9lLGZlKXt2YXIgRWU9bi5QdXNoLFJlPWoob2UsZmUpO2Z1bmN0aW9uIEJlKCl7UChvZSxmZSl9aWYoVihFZSxSZSxCZSkpe3ZhciBZZT1EKFJlLEorMSksb3Q9WWVbMF0scWU9WWVbMV07dHJ5e0kucHVzaFN0YXRlKG90LCIiLHFlKX1jYXRjaChfZSl7TC5sb2NhdGlvbi5hc3NpZ24ocWUpfVooRWUpfX1mdW5jdGlvbiBLKG9lLGZlKXt2YXIgRWU9bi5SZXBsYWNlLFJlPWoob2UsZmUpO2Z1bmN0aW9uIEJlKCl7SyhvZSxmZSl9aWYoVihFZSxSZSxCZSkpe3ZhciBZZT1EKFJlLEopLG90PVllWzBdLHFlPVllWzFdO0kucmVwbGFjZVN0YXRlKG90LCIiLHFlKSxaKEVlKX19ZnVuY3Rpb24gc2Uob2Upe0kuZ28ob2UpfXZhciBuZT17Z2V0IGFjdGlvbigpe3JldHVybiBZfSxnZXQgbG9jYXRpb24oKXtyZXR1cm4gbWV9LGNyZWF0ZUhyZWY6VyxwdXNoOlAscmVwbGFjZTpLLGdvOnNlLGJhY2s6ZnVuY3Rpb24oKXtzZSgtMSl9LGZvcndhcmQ6ZnVuY3Rpb24oKXtzZSgxKX0sbGlzdGVuOmZ1bmN0aW9uKGZlKXtyZXR1cm4gdGUucHVzaChmZSl9LGJsb2NrOmZ1bmN0aW9uKGZlKXt2YXIgRWU9bGUucHVzaChmZSk7cmV0dXJuIGxlLmxlbmd0aD09PTEmJkwuYWRkRXZlbnRMaXN0ZW5lcihzLEMpLGZ1bmN0aW9uKCl7RWUoKSxsZS5sZW5ndGh8fEwucmVtb3ZlRXZlbnRMaXN0ZW5lcihzLEMpfX19O3JldHVybiBuZX1mdW5jdGlvbiBkKE8pe089PT12b2lkIDAmJihPPXt9KTt2YXIgVD1PLFM9VC5pbml0aWFsRW50cmllcyxMPVM9PT12b2lkIDA/WyIvIl06UyxJPVQuaW5pdGlhbEluZGV4LFI9TC5tYXAoZnVuY3Rpb24oWil7dmFyIFA9dCgoMCxyLlopKHtwYXRobmFtZToiLyIsc2VhcmNoOiIiLGhhc2g6IiIsc3RhdGU6bnVsbCxrZXk6dygpfSx0eXBlb2YgWj09InN0cmluZyI/eChaKTpaKSk7cmV0dXJuIFB9KSx6PW0oST09bnVsbD9SLmxlbmd0aC0xOkksMCxSLmxlbmd0aC0xKSxHPW4uUG9wLFk9Ult6XSxlZT1nKCksSj1nKCk7ZnVuY3Rpb24gbWUoWil7cmV0dXJuIHR5cGVvZiBaPT0ic3RyaW5nIj9aOkUoWil9ZnVuY3Rpb24gdGUoWixQKXtyZXR1cm4gUD09PXZvaWQgMCYmKFA9bnVsbCksdCgoMCxyLlopKHtwYXRobmFtZTpZLnBhdGhuYW1lLHNlYXJjaDoiIixoYXNoOiIifSx0eXBlb2YgWj09InN0cmluZyI/eChaKTpaLHtzdGF0ZTpQLGtleTp3KCl9KSl9ZnVuY3Rpb24gbGUoWixQLEspe3JldHVybiFKLmxlbmd0aHx8KEouY2FsbCh7YWN0aW9uOlosbG9jYXRpb246UCxyZXRyeTpLfSksITEpfWZ1bmN0aW9uIGNlKFosUCl7Rz1aLFk9UCxlZS5jYWxsKHthY3Rpb246Ryxsb2NhdGlvbjpZfSl9ZnVuY3Rpb24gVyhaLFApe3ZhciBLPW4uUHVzaCxzZT10ZShaLFApO2Z1bmN0aW9uIG5lKCl7VyhaLFApfWxlKEssc2UsbmUpJiYoeis9MSxSLnNwbGljZSh6LFIubGVuZ3RoLHNlKSxjZShLLHNlKSl9ZnVuY3Rpb24gaihaLFApe3ZhciBLPW4uUmVwbGFjZSxzZT10ZShaLFApO2Z1bmN0aW9uIG5lKCl7aihaLFApfWxlKEssc2UsbmUpJiYoUlt6XT1zZSxjZShLLHNlKSl9ZnVuY3Rpb24gRChaKXt2YXIgUD1tKHorWiwwLFIubGVuZ3RoLTEpLEs9bi5Qb3Asc2U9UltQXTtmdW5jdGlvbiBuZSgpe0QoWil9bGUoSyxzZSxuZSkmJih6PVAsY2UoSyxzZSkpfXZhciBWPXtnZXQgaW5kZXgoKXtyZXR1cm4gen0sZ2V0IGFjdGlvbigpe3JldHVybiBHfSxnZXQgbG9jYXRpb24oKXtyZXR1cm4gWX0sY3JlYXRlSHJlZjptZSxwdXNoOlcscmVwbGFjZTpqLGdvOkQsYmFjazpmdW5jdGlvbigpe0QoLTEpfSxmb3J3YXJkOmZ1bmN0aW9uKCl7RCgxKX0sbGlzdGVuOmZ1bmN0aW9uKFApe3JldHVybiBlZS5wdXNoKFApfSxibG9jazpmdW5jdGlvbihQKXtyZXR1cm4gSi5wdXNoKFApfX07cmV0dXJuIFZ9ZnVuY3Rpb24gbShPLFQsUyl7cmV0dXJuIE1hdGgubWluKE1hdGgubWF4KE8sVCksUyl9ZnVuY3Rpb24gQyhPKXtPLnByZXZlbnREZWZhdWx0KCksTy5yZXR1cm5WYWx1ZT0iIn1mdW5jdGlvbiBnKCl7dmFyIE89W107cmV0dXJue2dldCBsZW5ndGgoKXtyZXR1cm4gTy5sZW5ndGh9LHB1c2g6ZnVuY3Rpb24oUyl7cmV0dXJuIE8ucHVzaChTKSxmdW5jdGlvbigpe089Ty5maWx0ZXIoZnVuY3Rpb24oTCl7cmV0dXJuIEwhPT1TfSl9fSxjYWxsOmZ1bmN0aW9uKFMpe08uZm9yRWFjaChmdW5jdGlvbihMKXtyZXR1cm4gTCYmTChTKX0pfX19ZnVuY3Rpb24gdygpe3JldHVybiBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHIoMiw4KX1mdW5jdGlvbiBFKE8pe3ZhciBUPU8ucGF0aG5hbWUsUz1UPT09dm9pZCAwPyIvIjpULEw9Ty5zZWFyY2gsST1MPT09dm9pZCAwPyIiOkwsUj1PLmhhc2gsej1SPT09dm9pZCAwPyIiOlI7cmV0dXJuIEkmJkkhPT0iPyImJihTKz1JLmNoYXJBdCgwKT09PSI/Ij9JOiI/IitJKSx6JiZ6IT09IiMiJiYoUys9ei5jaGFyQXQoMCk9PT0iIyI/ejoiIyIreiksU31mdW5jdGlvbiB4KE8pe3ZhciBUPXt9O2lmKE8pe3ZhciBTPU8uaW5kZXhPZigiIyIpO1M+PTAmJihULmhhc2g9Ty5zdWJzdHIoUyksTz1PLnN1YnN0cigwLFMpKTt2YXIgTD1PLmluZGV4T2YoIj8iKTtMPj0wJiYoVC5zZWFyY2g9Ty5zdWJzdHIoTCksTz1PLnN1YnN0cigwLEwpKSxPJiYoVC5wYXRobmFtZT1PKX1yZXR1cm4gVH19LDg2Nzk6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDU5ODY0KSxuPXtjaGlsZENvbnRleHRUeXBlczohMCxjb250ZXh0VHlwZTohMCxjb250ZXh0VHlwZXM6ITAsZGVmYXVsdFByb3BzOiEwLGRpc3BsYXlOYW1lOiEwLGdldERlZmF1bHRQcm9wczohMCxnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3I6ITAsZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzOiEwLG1peGluczohMCxwcm9wVHlwZXM6ITAsdHlwZTohMH0sdD17bmFtZTohMCxsZW5ndGg6ITAscHJvdG90eXBlOiEwLGNhbGxlcjohMCxjYWxsZWU6ITAsYXJndW1lbnRzOiEwLGFyaXR5OiEwfSxpPXskJHR5cGVvZjohMCxyZW5kZXI6ITAsZGVmYXVsdFByb3BzOiEwLGRpc3BsYXlOYW1lOiEwLHByb3BUeXBlczohMH0scz17JCR0eXBlb2Y6ITAsY29tcGFyZTohMCxkZWZhdWx0UHJvcHM6ITAsZGlzcGxheU5hbWU6ITAscHJvcFR5cGVzOiEwLHR5cGU6ITB9LGE9e307YVtyLkZvcndhcmRSZWZdPWksYVtyLk1lbW9dPXM7ZnVuY3Rpb24gdShFKXtyZXR1cm4gci5pc01lbW8oRSk/czphW0UuJCR0eXBlb2ZdfHxufXZhciBjPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxoPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzLGQ9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyxtPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsQz1PYmplY3QuZ2V0UHJvdG90eXBlT2YsZz1PYmplY3QucHJvdG90eXBlO2Z1bmN0aW9uIHcoRSx4LE8pe2lmKHR5cGVvZiB4IT0ic3RyaW5nIil7aWYoZyl7dmFyIFQ9Qyh4KTtUJiZUIT09ZyYmdyhFLFQsTyl9dmFyIFM9aCh4KTtkJiYoUz1TLmNvbmNhdChkKHgpKSk7Zm9yKHZhciBMPXUoRSksST11KHgpLFI9MDtSPFMubGVuZ3RoOysrUil7dmFyIHo9U1tSXTtpZighdFt6XSYmIShPJiZPW3pdKSYmIShJJiZJW3pdKSYmIShMJiZMW3pdKSl7dmFyIEc9bSh4LHopO3RyeXtjKEUseixHKX1jYXRjaChZKXt9fX19cmV0dXJuIEV9eS5leHBvcnRzPXd9LDgwNjQ1OmZ1bmN0aW9uKHkscCl7cC5yZWFkPWZ1bmN0aW9uKGUscixuLHQsaSl7dmFyIHMsYSx1PWkqOC10LTEsYz0oMTw8dSktMSxoPWM+PjEsZD0tNyxtPW4/aS0xOjAsQz1uPy0xOjEsZz1lW3IrbV07Zm9yKG0rPUMscz1nJigxPDwtZCktMSxnPj49LWQsZCs9dTtkPjA7cz1zKjI1NitlW3IrbV0sbSs9QyxkLT04KTtmb3IoYT1zJigxPDwtZCktMSxzPj49LWQsZCs9dDtkPjA7YT1hKjI1NitlW3IrbV0sbSs9QyxkLT04KTtpZihzPT09MClzPTEtaDtlbHNle2lmKHM9PT1jKXJldHVybiBhP05hTjooZz8tMToxKSooMS8wKTthPWErTWF0aC5wb3coMix0KSxzPXMtaH1yZXR1cm4oZz8tMToxKSphKk1hdGgucG93KDIscy10KX0scC53cml0ZT1mdW5jdGlvbihlLHIsbix0LGkscyl7dmFyIGEsdSxjLGg9cyo4LWktMSxkPSgxPDxoKS0xLG09ZD4+MSxDPWk9PT0yMz9NYXRoLnBvdygyLC0yNCktTWF0aC5wb3coMiwtNzcpOjAsZz10PzA6cy0xLHc9dD8xOi0xLEU9cjwwfHxyPT09MCYmMS9yPDA/MTowO2ZvcihyPU1hdGguYWJzKHIpLGlzTmFOKHIpfHxyPT09MS8wPyh1PWlzTmFOKHIpPzE6MCxhPWQpOihhPU1hdGguZmxvb3IoTWF0aC5sb2cocikvTWF0aC5MTjIpLHIqKGM9TWF0aC5wb3coMiwtYSkpPDEmJihhLS0sYyo9MiksYSttPj0xP3IrPUMvYzpyKz1DKk1hdGgucG93KDIsMS1tKSxyKmM+PTImJihhKyssYy89MiksYSttPj1kPyh1PTAsYT1kKTphK20+PTE/KHU9KHIqYy0xKSpNYXRoLnBvdygyLGkpLGE9YSttKToodT1yKk1hdGgucG93KDIsbS0xKSpNYXRoLnBvdygyLGkpLGE9MCkpO2k+PTg7ZVtuK2ddPXUmMjU1LGcrPXcsdS89MjU2LGktPTgpO2ZvcihhPWE8PGl8dSxoKz1pO2g+MDtlW24rZ109YSYyNTUsZys9dyxhLz0yNTYsaC09OCk7ZVtuK2ctd118PUUqMTI4fX0sNDExNDM6ZnVuY3Rpb24oeSl7InVzZSBzdHJpY3QiO3ZhciBwPWZ1bmN0aW9uKGUscixuLHQsaSxzLGEsdSl7aWYoIWUpe3ZhciBjO2lmKHI9PT12b2lkIDApYz1uZXcgRXJyb3IoIk1pbmlmaWVkIGV4Y2VwdGlvbiBvY2N1cnJlZDsgdXNlIHRoZSBub24tbWluaWZpZWQgZGV2IGVudmlyb25tZW50IGZvciB0aGUgZnVsbCBlcnJvciBtZXNzYWdlIGFuZCBhZGRpdGlvbmFsIGhlbHBmdWwgd2FybmluZ3MuIik7ZWxzZXt2YXIgaD1bbix0LGkscyxhLHVdLGQ9MDtjPW5ldyBFcnJvcihyLnJlcGxhY2UoLyVzL2csZnVuY3Rpb24oKXtyZXR1cm4gaFtkKytdfSkpLGMubmFtZT0iSW52YXJpYW50IFZpb2xhdGlvbiJ9dGhyb3cgYy5mcmFtZXNUb1BvcD0xLGN9fTt5LmV4cG9ydHM9cH0sOTEyOTY6ZnVuY3Rpb24oeSxwLGUpe3ZhciByPSJFeHBlY3RlZCBhIGZ1bmN0aW9uIixuPU5hTix0PSJbb2JqZWN0IFN5bWJvbF0iLGk9L15ccyt8XHMrJC9nLHM9L15bLStdMHhbMC05YS1mXSskL2ksYT0vXjBiWzAxXSskL2ksdT0vXjBvWzAtN10rJC9pLGM9cGFyc2VJbnQsaD10eXBlb2YgZS5nPT0ib2JqZWN0IiYmZS5nJiZlLmcuT2JqZWN0PT09T2JqZWN0JiZlLmcsZD10eXBlb2Ygc2VsZj09Im9iamVjdCImJnNlbGYmJnNlbGYuT2JqZWN0PT09T2JqZWN0JiZzZWxmLG09aHx8ZHx8RnVuY3Rpb24oInJldHVybiB0aGlzIikoKSxDPU9iamVjdC5wcm90b3R5cGUsZz1DLnRvU3RyaW5nLHc9TWF0aC5tYXgsRT1NYXRoLm1pbix4PWZ1bmN0aW9uKCl7cmV0dXJuIG0uRGF0ZS5ub3coKX07ZnVuY3Rpb24gTyhSLHosRyl7dmFyIFksZWUsSixtZSx0ZSxsZSxjZT0wLFc9ITEsaj0hMSxEPSEwO2lmKHR5cGVvZiBSIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3Iocik7ej1JKHopfHwwLFQoRykmJihXPSEhRy5sZWFkaW5nLGo9Im1heFdhaXQiaW4gRyxKPWo/dyhJKEcubWF4V2FpdCl8fDAseik6SixEPSJ0cmFpbGluZyJpbiBHPyEhRy50cmFpbGluZzpEKTtmdW5jdGlvbiBWKFJlKXt2YXIgQmU9WSxZZT1lZTtyZXR1cm4gWT1lZT12b2lkIDAsY2U9UmUsbWU9Ui5hcHBseShZZSxCZSksbWV9ZnVuY3Rpb24gWihSZSl7cmV0dXJuIGNlPVJlLHRlPXNldFRpbWVvdXQoc2UseiksVz9WKFJlKTptZX1mdW5jdGlvbiBQKFJlKXt2YXIgQmU9UmUtbGUsWWU9UmUtY2Usb3Q9ei1CZTtyZXR1cm4gaj9FKG90LEotWWUpOm90fWZ1bmN0aW9uIEsoUmUpe3ZhciBCZT1SZS1sZSxZZT1SZS1jZTtyZXR1cm4gbGU9PT12b2lkIDB8fEJlPj16fHxCZTwwfHxqJiZZZT49Sn1mdW5jdGlvbiBzZSgpe3ZhciBSZT14KCk7aWYoSyhSZSkpcmV0dXJuIG5lKFJlKTt0ZT1zZXRUaW1lb3V0KHNlLFAoUmUpKX1mdW5jdGlvbiBuZShSZSl7cmV0dXJuIHRlPXZvaWQgMCxEJiZZP1YoUmUpOihZPWVlPXZvaWQgMCxtZSl9ZnVuY3Rpb24gb2UoKXt0ZSE9PXZvaWQgMCYmY2xlYXJUaW1lb3V0KHRlKSxjZT0wLFk9bGU9ZWU9dGU9dm9pZCAwfWZ1bmN0aW9uIGZlKCl7cmV0dXJuIHRlPT09dm9pZCAwP21lOm5lKHgoKSl9ZnVuY3Rpb24gRWUoKXt2YXIgUmU9eCgpLEJlPUsoUmUpO2lmKFk9YXJndW1lbnRzLGVlPXRoaXMsbGU9UmUsQmUpe2lmKHRlPT09dm9pZCAwKXJldHVybiBaKGxlKTtpZihqKXJldHVybiB0ZT1zZXRUaW1lb3V0KHNlLHopLFYobGUpfXJldHVybiB0ZT09PXZvaWQgMCYmKHRlPXNldFRpbWVvdXQoc2UseikpLG1lfXJldHVybiBFZS5jYW5jZWw9b2UsRWUuZmx1c2g9ZmUsRWV9ZnVuY3Rpb24gVChSKXt2YXIgej10eXBlb2YgUjtyZXR1cm4hIVImJih6PT0ib2JqZWN0Inx8ej09ImZ1bmN0aW9uIil9ZnVuY3Rpb24gUyhSKXtyZXR1cm4hIVImJnR5cGVvZiBSPT0ib2JqZWN0In1mdW5jdGlvbiBMKFIpe3JldHVybiB0eXBlb2YgUj09InN5bWJvbCJ8fFMoUikmJmcuY2FsbChSKT09dH1mdW5jdGlvbiBJKFIpe2lmKHR5cGVvZiBSPT0ibnVtYmVyIilyZXR1cm4gUjtpZihMKFIpKXJldHVybiBuO2lmKFQoUikpe3ZhciB6PXR5cGVvZiBSLnZhbHVlT2Y9PSJmdW5jdGlvbiI/Ui52YWx1ZU9mKCk6UjtSPVQoeik/eisiIjp6fWlmKHR5cGVvZiBSIT0ic3RyaW5nIilyZXR1cm4gUj09PTA/UjorUjtSPVIucmVwbGFjZShpLCIiKTt2YXIgRz1hLnRlc3QoUik7cmV0dXJuIEd8fHUudGVzdChSKT9jKFIuc2xpY2UoMiksRz8yOjgpOnMudGVzdChSKT9uOitSfXkuZXhwb3J0cz1PfSw5MzA5NjpmdW5jdGlvbih5LHAsZSl7dmFyIHI9IkV4cGVjdGVkIGEgZnVuY3Rpb24iLG49TmFOLHQ9IltvYmplY3QgU3ltYm9sXSIsaT0vXlxzK3xccyskL2cscz0vXlstK10weFswLTlhLWZdKyQvaSxhPS9eMGJbMDFdKyQvaSx1PS9eMG9bMC03XSskL2ksYz1wYXJzZUludCxoPXR5cGVvZiBlLmc9PSJvYmplY3QiJiZlLmcmJmUuZy5PYmplY3Q9PT1PYmplY3QmJmUuZyxkPXR5cGVvZiBzZWxmPT0ib2JqZWN0IiYmc2VsZiYmc2VsZi5PYmplY3Q9PT1PYmplY3QmJnNlbGYsbT1ofHxkfHxGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpLEM9T2JqZWN0LnByb3RvdHlwZSxnPUMudG9TdHJpbmcsdz1NYXRoLm1heCxFPU1hdGgubWluLHg9ZnVuY3Rpb24oKXtyZXR1cm4gbS5EYXRlLm5vdygpfTtmdW5jdGlvbiBPKHosRyxZKXt2YXIgZWUsSixtZSx0ZSxsZSxjZSxXPTAsaj0hMSxEPSExLFY9ITA7aWYodHlwZW9mIHohPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcihyKTtHPVIoRyl8fDAsUyhZKSYmKGo9ISFZLmxlYWRpbmcsRD0ibWF4V2FpdCJpbiBZLG1lPUQ/dyhSKFkubWF4V2FpdCl8fDAsRyk6bWUsVj0idHJhaWxpbmciaW4gWT8hIVkudHJhaWxpbmc6Vik7ZnVuY3Rpb24gWihCZSl7dmFyIFllPWVlLG90PUo7cmV0dXJuIGVlPUo9dm9pZCAwLFc9QmUsdGU9ei5hcHBseShvdCxZZSksdGV9ZnVuY3Rpb24gUChCZSl7cmV0dXJuIFc9QmUsbGU9c2V0VGltZW91dChuZSxHKSxqP1ooQmUpOnRlfWZ1bmN0aW9uIEsoQmUpe3ZhciBZZT1CZS1jZSxvdD1CZS1XLHFlPUctWWU7cmV0dXJuIEQ/RShxZSxtZS1vdCk6cWV9ZnVuY3Rpb24gc2UoQmUpe3ZhciBZZT1CZS1jZSxvdD1CZS1XO3JldHVybiBjZT09PXZvaWQgMHx8WWU+PUd8fFllPDB8fEQmJm90Pj1tZX1mdW5jdGlvbiBuZSgpe3ZhciBCZT14KCk7aWYoc2UoQmUpKXJldHVybiBvZShCZSk7bGU9c2V0VGltZW91dChuZSxLKEJlKSl9ZnVuY3Rpb24gb2UoQmUpe3JldHVybiBsZT12b2lkIDAsViYmZWU/WihCZSk6KGVlPUo9dm9pZCAwLHRlKX1mdW5jdGlvbiBmZSgpe2xlIT09dm9pZCAwJiZjbGVhclRpbWVvdXQobGUpLFc9MCxlZT1jZT1KPWxlPXZvaWQgMH1mdW5jdGlvbiBFZSgpe3JldHVybiBsZT09PXZvaWQgMD90ZTpvZSh4KCkpfWZ1bmN0aW9uIFJlKCl7dmFyIEJlPXgoKSxZZT1zZShCZSk7aWYoZWU9YXJndW1lbnRzLEo9dGhpcyxjZT1CZSxZZSl7aWYobGU9PT12b2lkIDApcmV0dXJuIFAoY2UpO2lmKEQpcmV0dXJuIGxlPXNldFRpbWVvdXQobmUsRyksWihjZSl9cmV0dXJuIGxlPT09dm9pZCAwJiYobGU9c2V0VGltZW91dChuZSxHKSksdGV9cmV0dXJuIFJlLmNhbmNlbD1mZSxSZS5mbHVzaD1FZSxSZX1mdW5jdGlvbiBUKHosRyxZKXt2YXIgZWU9ITAsSj0hMDtpZih0eXBlb2YgeiE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKHIpO3JldHVybiBTKFkpJiYoZWU9ImxlYWRpbmciaW4gWT8hIVkubGVhZGluZzplZSxKPSJ0cmFpbGluZyJpbiBZPyEhWS50cmFpbGluZzpKKSxPKHosRyx7bGVhZGluZzplZSxtYXhXYWl0OkcsdHJhaWxpbmc6Sn0pfWZ1bmN0aW9uIFMoeil7dmFyIEc9dHlwZW9mIHo7cmV0dXJuISF6JiYoRz09Im9iamVjdCJ8fEc9PSJmdW5jdGlvbiIpfWZ1bmN0aW9uIEwoeil7cmV0dXJuISF6JiZ0eXBlb2Ygej09Im9iamVjdCJ9ZnVuY3Rpb24gSSh6KXtyZXR1cm4gdHlwZW9mIHo9PSJzeW1ib2wifHxMKHopJiZnLmNhbGwoeik9PXR9ZnVuY3Rpb24gUih6KXtpZih0eXBlb2Ygej09Im51bWJlciIpcmV0dXJuIHo7aWYoSSh6KSlyZXR1cm4gbjtpZihTKHopKXt2YXIgRz10eXBlb2Ygei52YWx1ZU9mPT0iZnVuY3Rpb24iP3oudmFsdWVPZigpOno7ej1TKEcpP0crIiI6R31pZih0eXBlb2YgeiE9InN0cmluZyIpcmV0dXJuIHo9PT0wP3o6K3o7ej16LnJlcGxhY2UoaSwiIik7dmFyIFk9YS50ZXN0KHopO3JldHVybiBZfHx1LnRlc3Qoeik/Yyh6LnNsaWNlKDIpLFk/Mjo4KTpzLnRlc3Qoeik/bjoren15LmV4cG9ydHM9VH0sNjI3MDU6ZnVuY3Rpb24oeSxwLGUpe3ZhciByPWUoNTU2MzkpLG49ci5TeW1ib2w7eS5leHBvcnRzPW59LDI5OTMyOmZ1bmN0aW9uKHkpe2Z1bmN0aW9uIHAoZSxyKXtmb3IodmFyIG49LTEsdD1lPT1udWxsPzA6ZS5sZW5ndGgsaT1BcnJheSh0KTsrK248dDspaVtuXT1yKGVbbl0sbixlKTtyZXR1cm4gaX15LmV4cG9ydHM9cH0sNjI2NjM6ZnVuY3Rpb24oeSl7ZnVuY3Rpb24gcChlLHIsbix0KXt2YXIgaT0tMSxzPWU9PW51bGw/MDplLmxlbmd0aDtmb3IodCYmcyYmKG49ZVsrK2ldKTsrK2k8czspbj1yKG4sZVtpXSxpLGUpO3JldHVybiBufXkuZXhwb3J0cz1wfSw0NDI4NjpmdW5jdGlvbih5KXtmdW5jdGlvbiBwKGUpe3JldHVybiBlLnNwbGl0KCIiKX15LmV4cG9ydHM9cH0sNDkwMjk6ZnVuY3Rpb24oeSl7dmFyIHA9L1teXHgwMC1ceDJmXHgzYS1ceDQwXHg1Yi1ceDYwXHg3Yi1ceDdmXSsvZztmdW5jdGlvbiBlKHIpe3JldHVybiByLm1hdGNoKHApfHxbXX15LmV4cG9ydHM9ZX0sNDQyMzk6ZnVuY3Rpb24oeSxwLGUpe3ZhciByPWUoNjI3MDUpLG49ZSg4OTYwNyksdD1lKDIzMzMpLGk9IltvYmplY3QgTnVsbF0iLHM9IltvYmplY3QgVW5kZWZpbmVkXSIsYT1yP3IudG9TdHJpbmdUYWc6dm9pZCAwO2Z1bmN0aW9uIHUoYyl7cmV0dXJuIGM9PW51bGw/Yz09PXZvaWQgMD9zOmk6YSYmYSBpbiBPYmplY3QoYyk/bihjKTp0KGMpfXkuZXhwb3J0cz11fSwxODY3NDpmdW5jdGlvbih5KXtmdW5jdGlvbiBwKGUpe3JldHVybiBmdW5jdGlvbihyKXtyZXR1cm4gZT09bnVsbD92b2lkIDA6ZVtyXX19eS5leHBvcnRzPXB9LDE0MjU5OmZ1bmN0aW9uKHkpe2Z1bmN0aW9uIHAoZSxyLG4pe3ZhciB0PS0xLGk9ZS5sZW5ndGg7cjwwJiYocj0tcj5pPzA6aStyKSxuPW4+aT9pOm4sbjwwJiYobis9aSksaT1yPm4/MDpuLXI+Pj4wLHI+Pj49MDtmb3IodmFyIHM9QXJyYXkoaSk7Kyt0PGk7KXNbdF09ZVt0K3JdO3JldHVybiBzfXkuZXhwb3J0cz1wfSw4MDUzMTpmdW5jdGlvbih5LHAsZSl7dmFyIHI9ZSg2MjcwNSksbj1lKDI5OTMyKSx0PWUoMTQ2OSksaT1lKDMzNDQ4KSxzPTEvMCxhPXI/ci5wcm90b3R5cGU6dm9pZCAwLHU9YT9hLnRvU3RyaW5nOnZvaWQgMDtmdW5jdGlvbiBjKGgpe2lmKHR5cGVvZiBoPT0ic3RyaW5nIilyZXR1cm4gaDtpZih0KGgpKXJldHVybiBuKGgsYykrIiI7aWYoaShoKSlyZXR1cm4gdT91LmNhbGwoaCk6IiI7dmFyIGQ9aCsiIjtyZXR1cm4gZD09IjAiJiYxL2g9PS1zPyItMCI6ZH15LmV4cG9ydHM9Y30sNDAxODA6ZnVuY3Rpb24oeSxwLGUpe3ZhciByPWUoMTQyNTkpO2Z1bmN0aW9uIG4odCxpLHMpe3ZhciBhPXQubGVuZ3RoO3JldHVybiBzPXM9PT12b2lkIDA/YTpzLCFpJiZzPj1hP3Q6cih0LGkscyl9eS5leHBvcnRzPW59LDk4ODA1OmZ1bmN0aW9uKHkscCxlKXt2YXIgcj1lKDQwMTgwKSxuPWUoNjI2ODkpLHQ9ZSg4MzE0MCksaT1lKDc5ODMzKTtmdW5jdGlvbiBzKGEpe3JldHVybiBmdW5jdGlvbih1KXt1PWkodSk7dmFyIGM9bih1KT90KHUpOnZvaWQgMCxoPWM/Y1swXTp1LmNoYXJBdCgwKSxkPWM/cihjLDEpLmpvaW4oIiIpOnUuc2xpY2UoMSk7cmV0dXJuIGhbYV0oKStkfX15LmV4cG9ydHM9c30sMzUzOTM6ZnVuY3Rpb24oeSxwLGUpe3ZhciByPWUoNjI2NjMpLG49ZSg1MzgxNiksdD1lKDU4NzQ4KSxpPSJbJ1x1MjAxOV0iLHM9UmVnRXhwKGksImciKTtmdW5jdGlvbiBhKHUpe3JldHVybiBmdW5jdGlvbihjKXtyZXR1cm4gcih0KG4oYykucmVwbGFjZShzLCIiKSksdSwiIil9fXkuZXhwb3J0cz1hfSw2OTM4OTpmdW5jdGlvbih5LHAsZSl7dmFyIHI9ZSgxODY3NCksbj17XHUwMEMwOiJBIixcdTAwQzE6IkEiLFx1MDBDMjoiQSIsXHUwMEMzOiJBIixcdTAwQzQ6IkEiLFx1MDBDNToiQSIsXHUwMEUwOiJhIixcdTAwRTE6ImEiLFx1MDBFMjoiYSIsXHUwMEUzOiJhIixcdTAwRTQ6ImEiLFx1MDBFNToiYSIsXHUwMEM3OiJDIixcdTAwRTc6ImMiLFx1MDBEMDoiRCIsXHUwMEYwOiJkIixcdTAwQzg6IkUiLFx1MDBDOToiRSIsXHUwMENBOiJFIixcdTAwQ0I6IkUiLFx1MDBFODoiZSIsXHUwMEU5OiJlIixcdTAwRUE6ImUiLFx1MDBFQjoiZSIsXHUwMENDOiJJIixcdTAwQ0Q6IkkiLFx1MDBDRToiSSIsXHUwMENGOiJJIixcdTAwRUM6ImkiLFx1MDBFRDoiaSIsXHUwMEVFOiJpIixcdTAwRUY6ImkiLFx1MDBEMToiTiIsXHUwMEYxOiJuIixcdTAwRDI6Ik8iLFx1MDBEMzoiTyIsXHUwMEQ0OiJPIixcdTAwRDU6Ik8iLFx1MDBENjoiTyIsXHUwMEQ4OiJPIixcdTAwRjI6Im8iLFx1MDBGMzoibyIsXHUwMEY0OiJvIixcdTAwRjU6Im8iLFx1MDBGNjoibyIsXHUwMEY4OiJvIixcdTAwRDk6IlUiLFx1MDBEQToiVSIsXHUwMERCOiJVIixcdTAwREM6IlUiLFx1MDBGOToidSIsXHUwMEZBOiJ1IixcdTAwRkI6InUiLFx1MDBGQzoidSIsXHUwMEREOiJZIixcdTAwRkQ6InkiLFx1MDBGRjoieSIsXHUwMEM2OiJBZSIsXHUwMEU2OiJhZSIsXHUwMERFOiJUaCIsXHUwMEZFOiJ0aCIsXHUwMERGOiJzcyIsXHUwMTAwOiJBIixcdTAxMDI6IkEiLFx1MDEwNDoiQSIsXHUwMTAxOiJhIixcdTAxMDM6ImEiLFx1MDEwNToiYSIsXHUwMTA2OiJDIixcdTAxMDg6IkMiLFx1MDEwQToiQyIsXHUwMTBDOiJDIixcdTAxMDc6ImMiLFx1MDEwOToiYyIsXHUwMTBCOiJjIixcdTAxMEQ6ImMiLFx1MDEwRToiRCIsXHUwMTEwOiJEIixcdTAxMEY6ImQiLFx1MDExMToiZCIsXHUwMTEyOiJFIixcdTAxMTQ6IkUiLFx1MDExNjoiRSIsXHUwMTE4OiJFIixcdTAxMUE6IkUiLFx1MDExMzoiZSIsXHUwMTE1OiJlIixcdTAxMTc6ImUiLFx1MDExOToiZSIsXHUwMTFCOiJlIixcdTAxMUM6IkciLFx1MDExRToiRyIsXHUwMTIwOiJHIixcdTAxMjI6IkciLFx1MDExRDoiZyIsXHUwMTFGOiJnIixcdTAxMjE6ImciLFx1MDEyMzoiZyIsXHUwMTI0OiJIIixcdTAxMjY6IkgiLFx1MDEyNToiaCIsXHUwMTI3OiJoIixcdTAxMjg6IkkiLFx1MDEyQToiSSIsXHUwMTJDOiJJIixcdTAxMkU6IkkiLFx1MDEzMDoiSSIsXHUwMTI5OiJpIixcdTAxMkI6ImkiLFx1MDEyRDoiaSIsXHUwMTJGOiJpIixcdTAxMzE6ImkiLFx1MDEzNDoiSiIsXHUwMTM1OiJqIixcdTAxMzY6IksiLFx1MDEzNzoiayIsXHUwMTM4OiJrIixcdTAxMzk6IkwiLFx1MDEzQjoiTCIsXHUwMTNEOiJMIixcdTAxM0Y6IkwiLFx1MDE0MToiTCIsXHUwMTNBOiJsIixcdTAxM0M6ImwiLFx1MDEzRToibCIsXHUwMTQwOiJsIixcdTAxNDI6ImwiLFx1MDE0MzoiTiIsXHUwMTQ1OiJOIixcdTAxNDc6Ik4iLFx1MDE0QToiTiIsXHUwMTQ0OiJuIixcdTAxNDY6Im4iLFx1MDE0ODoibiIsXHUwMTRCOiJuIixcdTAxNEM6Ik8iLFx1MDE0RToiTyIsXHUwMTUwOiJPIixcdTAxNEQ6Im8iLFx1MDE0RjoibyIsXHUwMTUxOiJvIixcdTAxNTQ6IlIiLFx1MDE1NjoiUiIsXHUwMTU4OiJSIixcdTAxNTU6InIiLFx1MDE1NzoiciIsXHUwMTU5OiJyIixcdTAxNUE6IlMiLFx1MDE1QzoiUyIsXHUwMTVFOiJTIixcdTAxNjA6IlMiLFx1MDE1QjoicyIsXHUwMTVEOiJzIixcdTAxNUY6InMiLFx1MDE2MToicyIsXHUwMTYyOiJUIixcdTAxNjQ6IlQiLFx1MDE2NjoiVCIsXHUwMTYzOiJ0IixcdTAxNjU6InQiLFx1MDE2NzoidCIsXHUwMTY4OiJVIixcdTAxNkE6IlUiLFx1MDE2QzoiVSIsXHUwMTZFOiJVIixcdTAxNzA6IlUiLFx1MDE3MjoiVSIsXHUwMTY5OiJ1IixcdTAxNkI6InUiLFx1MDE2RDoidSIsXHUwMTZGOiJ1IixcdTAxNzE6InUiLFx1MDE3MzoidSIsXHUwMTc0OiJXIixcdTAxNzU6InciLFx1MDE3NjoiWSIsXHUwMTc3OiJ5IixcdTAxNzg6IlkiLFx1MDE3OToiWiIsXHUwMTdCOiJaIixcdTAxN0Q6IloiLFx1MDE3QToieiIsXHUwMTdDOiJ6IixcdTAxN0U6InoiLFx1MDEzMjoiSUoiLFx1MDEzMzoiaWoiLFx1MDE1MjoiT2UiLFx1MDE1Mzoib2UiLFx1MDE0OToiJ24iLFx1MDE3RjoicyJ9LHQ9cihuKTt5LmV4cG9ydHM9dH0sMzE5NTc6ZnVuY3Rpb24oeSxwLGUpe3ZhciByPXR5cGVvZiBlLmc9PSJvYmplY3QiJiZlLmcmJmUuZy5PYmplY3Q9PT1PYmplY3QmJmUuZzt5LmV4cG9ydHM9cn0sODk2MDc6ZnVuY3Rpb24oeSxwLGUpe3ZhciByPWUoNjI3MDUpLG49T2JqZWN0LnByb3RvdHlwZSx0PW4uaGFzT3duUHJvcGVydHksaT1uLnRvU3RyaW5nLHM9cj9yLnRvU3RyaW5nVGFnOnZvaWQgMDtmdW5jdGlvbiBhKHUpe3ZhciBjPXQuY2FsbCh1LHMpLGg9dVtzXTt0cnl7dVtzXT12b2lkIDA7dmFyIGQ9ITB9Y2F0Y2goQyl7fXZhciBtPWkuY2FsbCh1KTtyZXR1cm4gZCYmKGM/dVtzXT1oOmRlbGV0ZSB1W3NdKSxtfXkuZXhwb3J0cz1hfSw2MjY4OTpmdW5jdGlvbih5KXt2YXIgcD0iXFx1ZDgwMC1cXHVkZmZmIixlPSJcXHUwMzAwLVxcdTAzNmYiLHI9IlxcdWZlMjAtXFx1ZmUyZiIsbj0iXFx1MjBkMC1cXHUyMGZmIix0PWUrcituLGk9IlxcdWZlMGVcXHVmZTBmIixzPSJcXHUyMDBkIixhPVJlZ0V4cCgiWyIrcytwK3QraSsiXSIpO2Z1bmN0aW9uIHUoYyl7cmV0dXJuIGEudGVzdChjKX15LmV4cG9ydHM9dX0sOTMxNTc6ZnVuY3Rpb24oeSl7dmFyIHA9L1thLXpdW0EtWl18W0EtWl17Mn1bYS16XXxbMC05XVthLXpBLVpdfFthLXpBLVpdWzAtOV18W15hLXpBLVowLTkgXS87ZnVuY3Rpb24gZShyKXtyZXR1cm4gcC50ZXN0KHIpfXkuZXhwb3J0cz1lfSwyMzMzOmZ1bmN0aW9uKHkpe3ZhciBwPU9iamVjdC5wcm90b3R5cGUsZT1wLnRvU3RyaW5nO2Z1bmN0aW9uIHIobil7cmV0dXJuIGUuY2FsbChuKX15LmV4cG9ydHM9cn0sNTU2Mzk6ZnVuY3Rpb24oeSxwLGUpe3ZhciByPWUoMzE5NTcpLG49dHlwZW9mIHNlbGY9PSJvYmplY3QiJiZzZWxmJiZzZWxmLk9iamVjdD09PU9iamVjdCYmc2VsZix0PXJ8fG58fEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCk7eS5leHBvcnRzPXR9LDgzMTQwOmZ1bmN0aW9uKHkscCxlKXt2YXIgcj1lKDQ0Mjg2KSxuPWUoNjI2ODkpLHQ9ZSg2NzYpO2Z1bmN0aW9uIGkocyl7cmV0dXJuIG4ocyk/dChzKTpyKHMpfXkuZXhwb3J0cz1pfSw2NzY6ZnVuY3Rpb24oeSl7dmFyIHA9IlxcdWQ4MDAtXFx1ZGZmZiIsZT0iXFx1MDMwMC1cXHUwMzZmIixyPSJcXHVmZTIwLVxcdWZlMmYiLG49IlxcdTIwZDAtXFx1MjBmZiIsdD1lK3IrbixpPSJcXHVmZTBlXFx1ZmUwZiIscz0iWyIrcCsiXSIsYT0iWyIrdCsiXSIsdT0iXFx1ZDgzY1tcXHVkZmZiLVxcdWRmZmZdIixjPSIoPzoiK2ErInwiK3UrIikiLGg9IlteIitwKyJdIixkPSIoPzpcXHVkODNjW1xcdWRkZTYtXFx1ZGRmZl0pezJ9IixtPSJbXFx1ZDgwMC1cXHVkYmZmXVtcXHVkYzAwLVxcdWRmZmZdIixDPSJcXHUyMDBkIixnPWMrIj8iLHc9IlsiK2krIl0/IixFPSIoPzoiK0MrIig/OiIrW2gsZCxtXS5qb2luKCJ8IikrIikiK3crZysiKSoiLHg9dytnK0UsTz0iKD86IitbaCthKyI/IixhLGQsbSxzXS5qb2luKCJ8IikrIikiLFQ9UmVnRXhwKHUrIig/PSIrdSsiKXwiK08reCwiZyIpO2Z1bmN0aW9uIFMoTCl7cmV0dXJuIEwubWF0Y2goVCl8fFtdfXkuZXhwb3J0cz1TfSwyNzU3OmZ1bmN0aW9uKHkpe3ZhciBwPSJcXHVkODAwLVxcdWRmZmYiLGU9IlxcdTAzMDAtXFx1MDM2ZiIscj0iXFx1ZmUyMC1cXHVmZTJmIixuPSJcXHUyMGQwLVxcdTIwZmYiLHQ9ZStyK24saT0iXFx1MjcwMC1cXHUyN2JmIixzPSJhLXpcXHhkZi1cXHhmNlxceGY4LVxceGZmIixhPSJcXHhhY1xceGIxXFx4ZDdcXHhmNyIsdT0iXFx4MDAtXFx4MmZcXHgzYS1cXHg0MFxceDViLVxceDYwXFx4N2ItXFx4YmYiLGM9IlxcdTIwMDAtXFx1MjA2ZiIsaD0iIFxcdFxceDBiXFxmXFx4YTBcXHVmZWZmXFxuXFxyXFx1MjAyOFxcdTIwMjlcXHUxNjgwXFx1MTgwZVxcdTIwMDBcXHUyMDAxXFx1MjAwMlxcdTIwMDNcXHUyMDA0XFx1MjAwNVxcdTIwMDZcXHUyMDA3XFx1MjAwOFxcdTIwMDlcXHUyMDBhXFx1MjAyZlxcdTIwNWZcXHUzMDAwIixkPSJBLVpcXHhjMC1cXHhkNlxceGQ4LVxceGRlIixtPSJcXHVmZTBlXFx1ZmUwZiIsQz1hK3UrYytoLGc9IlsnXHUyMDE5XSIsdz0iWyIrQysiXSIsRT0iWyIrdCsiXSIseD0iXFxkKyIsTz0iWyIraSsiXSIsVD0iWyIrcysiXSIsUz0iW14iK3ArQyt4K2krcytkKyJdIixMPSJcXHVkODNjW1xcdWRmZmItXFx1ZGZmZl0iLEk9Iig/OiIrRSsifCIrTCsiKSIsUj0iW14iK3ArIl0iLHo9Iig/OlxcdWQ4M2NbXFx1ZGRlNi1cXHVkZGZmXSl7Mn0iLEc9IltcXHVkODAwLVxcdWRiZmZdW1xcdWRjMDAtXFx1ZGZmZl0iLFk9IlsiK2QrIl0iLGVlPSJcXHUyMDBkIixKPSIoPzoiK1QrInwiK1MrIikiLG1lPSIoPzoiK1krInwiK1MrIikiLHRlPSIoPzoiK2crIig/OmR8bGx8bXxyZXxzfHR8dmUpKT8iLGxlPSIoPzoiK2crIig/OkR8TEx8TXxSRXxTfFR8VkUpKT8iLGNlPUkrIj8iLFc9IlsiK20rIl0/IixqPSIoPzoiK2VlKyIoPzoiK1tSLHosR10uam9pbigifCIpKyIpIitXK2NlKyIpKiIsRD0iXFxkKig/OjFzdHwybmR8M3JkfCg/IVsxMjNdKVxcZHRoKSg/PVxcYnxbQS1aX10pIixWPSJcXGQqKD86MVNUfDJORHwzUkR8KD8hWzEyM10pXFxkVEgpKD89XFxifFthLXpfXSkiLFo9VytjZStqLFA9Iig/OiIrW08seixHXS5qb2luKCJ8IikrIikiK1osSz1SZWdFeHAoW1krIj8iK1QrIisiK3RlKyIoPz0iK1t3LFksIiQiXS5qb2luKCJ8IikrIikiLG1lKyIrIitsZSsiKD89IitbdyxZK0osIiQiXS5qb2luKCJ8IikrIikiLFkrIj8iK0orIisiK3RlLFkrIisiK2xlLFYsRCx4LFBdLmpvaW4oInwiKSwiZyIpO2Z1bmN0aW9uIHNlKG5lKXtyZXR1cm4gbmUubWF0Y2goSyl8fFtdfXkuZXhwb3J0cz1zZX0sNjg5Mjk6ZnVuY3Rpb24oeSxwLGUpe3ZhciByPWUoNDg0MDMpLG49ZSgzNTM5MyksdD1uKGZ1bmN0aW9uKGkscyxhKXtyZXR1cm4gcz1zLnRvTG93ZXJDYXNlKCksaSsoYT9yKHMpOnMpfSk7eS5leHBvcnRzPXR9LDQ4NDAzOmZ1bmN0aW9uKHkscCxlKXt2YXIgcj1lKDc5ODMzKSxuPWUoMTE3MDApO2Z1bmN0aW9uIHQoaSl7cmV0dXJuIG4ocihpKS50b0xvd2VyQ2FzZSgpKX15LmV4cG9ydHM9dH0sNTM4MTY6ZnVuY3Rpb24oeSxwLGUpe3ZhciByPWUoNjkzODkpLG49ZSg3OTgzMyksdD0vW1x4YzAtXHhkNlx4ZDgtXHhmNlx4ZjgtXHhmZlx1MDEwMC1cdTAxN2ZdL2csaT0iXFx1MDMwMC1cXHUwMzZmIixzPSJcXHVmZTIwLVxcdWZlMmYiLGE9IlxcdTIwZDAtXFx1MjBmZiIsdT1pK3MrYSxjPSJbIit1KyJdIixoPVJlZ0V4cChjLCJnIik7ZnVuY3Rpb24gZChtKXtyZXR1cm4gbT1uKG0pLG0mJm0ucmVwbGFjZSh0LHIpLnJlcGxhY2UoaCwiIil9eS5leHBvcnRzPWR9LDE0Njk6ZnVuY3Rpb24oeSl7dmFyIHA9QXJyYXkuaXNBcnJheTt5LmV4cG9ydHM9cH0sMzcwMDU6ZnVuY3Rpb24oeSl7ZnVuY3Rpb24gcChlKXtyZXR1cm4gZSE9bnVsbCYmdHlwZW9mIGU9PSJvYmplY3QifXkuZXhwb3J0cz1wfSwzMzQ0ODpmdW5jdGlvbih5LHAsZSl7dmFyIHI9ZSg0NDIzOSksbj1lKDM3MDA1KSx0PSJbb2JqZWN0IFN5bWJvbF0iO2Z1bmN0aW9uIGkocyl7cmV0dXJuIHR5cGVvZiBzPT0ic3ltYm9sInx8bihzKSYmcihzKT09dH15LmV4cG9ydHM9aX0sNzk4MzM6ZnVuY3Rpb24oeSxwLGUpe3ZhciByPWUoODA1MzEpO2Z1bmN0aW9uIG4odCl7cmV0dXJuIHQ9PW51bGw/IiI6cih0KX15LmV4cG9ydHM9bn0sMTE3MDA6ZnVuY3Rpb24oeSxwLGUpe3ZhciByPWUoOTg4MDUpLG49cigidG9VcHBlckNhc2UiKTt5LmV4cG9ydHM9bn0sNTg3NDg6ZnVuY3Rpb24oeSxwLGUpe3ZhciByPWUoNDkwMjkpLG49ZSg5MzE1NyksdD1lKDc5ODMzKSxpPWUoMjc1Nyk7ZnVuY3Rpb24gcyhhLHUsYyl7cmV0dXJuIGE9dChhKSx1PWM/dm9pZCAwOnUsdT09PXZvaWQgMD9uKGEpP2koYSk6cihhKTphLm1hdGNoKHUpfHxbXX15LmV4cG9ydHM9c30sMzQxNTU6ZnVuY3Rpb24oeSl7dmFyIHA9eS5leHBvcnRzPXt9LGUscjtmdW5jdGlvbiBuKCl7dGhyb3cgbmV3IEVycm9yKCJzZXRUaW1lb3V0IGhhcyBub3QgYmVlbiBkZWZpbmVkIil9ZnVuY3Rpb24gdCgpe3Rocm93IG5ldyBFcnJvcigiY2xlYXJUaW1lb3V0IGhhcyBub3QgYmVlbiBkZWZpbmVkIil9KGZ1bmN0aW9uKCl7dHJ5e3R5cGVvZiBzZXRUaW1lb3V0PT0iZnVuY3Rpb24iP2U9c2V0VGltZW91dDplPW59Y2F0Y2godyl7ZT1ufXRyeXt0eXBlb2YgY2xlYXJUaW1lb3V0PT0iZnVuY3Rpb24iP3I9Y2xlYXJUaW1lb3V0OnI9dH1jYXRjaCh3KXtyPXR9fSkoKTtmdW5jdGlvbiBpKHcpe2lmKGU9PT1zZXRUaW1lb3V0KXJldHVybiBzZXRUaW1lb3V0KHcsMCk7aWYoKGU9PT1ufHwhZSkmJnNldFRpbWVvdXQpcmV0dXJuIGU9c2V0VGltZW91dCxzZXRUaW1lb3V0KHcsMCk7dHJ5e3JldHVybiBlKHcsMCl9Y2F0Y2goRSl7dHJ5e3JldHVybiBlLmNhbGwobnVsbCx3LDApfWNhdGNoKHgpe3JldHVybiBlLmNhbGwodGhpcyx3LDApfX19ZnVuY3Rpb24gcyh3KXtpZihyPT09Y2xlYXJUaW1lb3V0KXJldHVybiBjbGVhclRpbWVvdXQodyk7aWYoKHI9PT10fHwhcikmJmNsZWFyVGltZW91dClyZXR1cm4gcj1jbGVhclRpbWVvdXQsY2xlYXJUaW1lb3V0KHcpO3RyeXtyZXR1cm4gcih3KX1jYXRjaChFKXt0cnl7cmV0dXJuIHIuY2FsbChudWxsLHcpfWNhdGNoKHgpe3JldHVybiByLmNhbGwodGhpcyx3KX19fXZhciBhPVtdLHU9ITEsYyxoPS0xO2Z1bmN0aW9uIGQoKXshdXx8IWN8fCh1PSExLGMubGVuZ3RoP2E9Yy5jb25jYXQoYSk6aD0tMSxhLmxlbmd0aCYmbSgpKX1mdW5jdGlvbiBtKCl7aWYoIXUpe3ZhciB3PWkoZCk7dT0hMDtmb3IodmFyIEU9YS5sZW5ndGg7RTspe2ZvcihjPWEsYT1bXTsrK2g8RTspYyYmY1toXS5ydW4oKTtoPS0xLEU9YS5sZW5ndGh9Yz1udWxsLHU9ITEscyh3KX19cC5uZXh0VGljaz1mdW5jdGlvbih3KXt2YXIgRT1uZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aC0xKTtpZihhcmd1bWVudHMubGVuZ3RoPjEpZm9yKHZhciB4PTE7eDxhcmd1bWVudHMubGVuZ3RoO3grKylFW3gtMV09YXJndW1lbnRzW3hdO2EucHVzaChuZXcgQyh3LEUpKSxhLmxlbmd0aD09PTEmJiF1JiZpKG0pfTtmdW5jdGlvbiBDKHcsRSl7dGhpcy5mdW49dyx0aGlzLmFycmF5PUV9Qy5wcm90b3R5cGUucnVuPWZ1bmN0aW9uKCl7dGhpcy5mdW4uYXBwbHkobnVsbCx0aGlzLmFycmF5KX0scC50aXRsZT0iYnJvd3NlciIscC5icm93c2VyPSEwLHAuZW52PXt9LHAuYXJndj1bXSxwLnZlcnNpb249IiIscC52ZXJzaW9ucz17fTtmdW5jdGlvbiBnKCl7fXAub249ZyxwLmFkZExpc3RlbmVyPWcscC5vbmNlPWcscC5vZmY9ZyxwLnJlbW92ZUxpc3RlbmVyPWcscC5yZW1vdmVBbGxMaXN0ZW5lcnM9ZyxwLmVtaXQ9ZyxwLnByZXBlbmRMaXN0ZW5lcj1nLHAucHJlcGVuZE9uY2VMaXN0ZW5lcj1nLHAubGlzdGVuZXJzPWZ1bmN0aW9uKHcpe3JldHVybltdfSxwLmJpbmRpbmc9ZnVuY3Rpb24odyl7dGhyb3cgbmV3IEVycm9yKCJwcm9jZXNzLmJpbmRpbmcgaXMgbm90IHN1cHBvcnRlZCIpfSxwLmN3ZD1mdW5jdGlvbigpe3JldHVybiIvIn0scC5jaGRpcj1mdW5jdGlvbih3KXt0aHJvdyBuZXcgRXJyb3IoInByb2Nlc3MuY2hkaXIgaXMgbm90IHN1cHBvcnRlZCIpfSxwLnVtYXNrPWZ1bmN0aW9uKCl7cmV0dXJuIDB9fSw5MjcwMzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNTA0MTQpO2Z1bmN0aW9uIG4oKXt9ZnVuY3Rpb24gdCgpe310LnJlc2V0V2FybmluZ0NhY2hlPW4seS5leHBvcnRzPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gaSh1LGMsaCxkLG0sQyl7aWYoQyE9PXIpe3ZhciBnPW5ldyBFcnJvcigiQ2FsbGluZyBQcm9wVHlwZXMgdmFsaWRhdG9ycyBkaXJlY3RseSBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBgcHJvcC10eXBlc2AgcGFja2FnZS4gVXNlIFByb3BUeXBlcy5jaGVja1Byb3BUeXBlcygpIHRvIGNhbGwgdGhlbS4gUmVhZCBtb3JlIGF0IGh0dHA6Ly9mYi5tZS91c2UtY2hlY2stcHJvcC10eXBlcyIpO3Rocm93IGcubmFtZT0iSW52YXJpYW50IFZpb2xhdGlvbiIsZ319aS5pc1JlcXVpcmVkPWk7ZnVuY3Rpb24gcygpe3JldHVybiBpfXZhciBhPXthcnJheTppLGJpZ2ludDppLGJvb2w6aSxmdW5jOmksbnVtYmVyOmksb2JqZWN0Omksc3RyaW5nOmksc3ltYm9sOmksYW55OmksYXJyYXlPZjpzLGVsZW1lbnQ6aSxlbGVtZW50VHlwZTppLGluc3RhbmNlT2Y6cyxub2RlOmksb2JqZWN0T2Y6cyxvbmVPZjpzLG9uZU9mVHlwZTpzLHNoYXBlOnMsZXhhY3Q6cyxjaGVja1Byb3BUeXBlczp0LHJlc2V0V2FybmluZ0NhY2hlOm59O3JldHVybiBhLlByb3BUeXBlcz1hLGF9fSw0NTY5NzpmdW5jdGlvbih5LHAsZSl7aWYoMCl2YXIgcixuO2Vsc2UgeS5leHBvcnRzPWUoOTI3MDMpKCl9LDUwNDE0OmZ1bmN0aW9uKHkpeyJ1c2Ugc3RyaWN0Ijt2YXIgcD0iU0VDUkVUX0RPX05PVF9QQVNTX1RISVNfT1JfWU9VX1dJTExfQkVfRklSRUQiO3kuZXhwb3J0cz1wfSwyOTMzNTpmdW5jdGlvbih5KXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcChyLG4pe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocixuKX15LmV4cG9ydHM9ZnVuY3Rpb24ocixuLHQsaSl7bj1ufHwiJiIsdD10fHwiPSI7dmFyIHM9e307aWYodHlwZW9mIHIhPSJzdHJpbmcifHxyLmxlbmd0aD09PTApcmV0dXJuIHM7dmFyIGE9L1wrL2c7cj1yLnNwbGl0KG4pO3ZhciB1PTFlMztpJiZ0eXBlb2YgaS5tYXhLZXlzPT0ibnVtYmVyIiYmKHU9aS5tYXhLZXlzKTt2YXIgYz1yLmxlbmd0aDt1PjAmJmM+dSYmKGM9dSk7Zm9yKHZhciBoPTA7aDxjOysraCl7dmFyIGQ9cltoXS5yZXBsYWNlKGEsIiUyMCIpLG09ZC5pbmRleE9mKHQpLEMsZyx3LEU7bT49MD8oQz1kLnN1YnN0cigwLG0pLGc9ZC5zdWJzdHIobSsxKSk6KEM9ZCxnPSIiKSx3PWRlY29kZVVSSUNvbXBvbmVudChDKSxFPWRlY29kZVVSSUNvbXBvbmVudChnKSxwKHMsdyk/ZShzW3ddKT9zW3ddLnB1c2goRSk6c1t3XT1bc1t3XSxFXTpzW3ddPUV9cmV0dXJuIHN9O3ZhciBlPUFycmF5LmlzQXJyYXl8fGZ1bmN0aW9uKHIpe3JldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocik9PT0iW29iamVjdCBBcnJheV0ifX0sNjg3OTU6ZnVuY3Rpb24oeSl7InVzZSBzdHJpY3QiO3ZhciBwPWZ1bmN0aW9uKHQpe3N3aXRjaCh0eXBlb2YgdCl7Y2FzZSJzdHJpbmciOnJldHVybiB0O2Nhc2UiYm9vbGVhbiI6cmV0dXJuIHQ/InRydWUiOiJmYWxzZSI7Y2FzZSJudW1iZXIiOnJldHVybiBpc0Zpbml0ZSh0KT90OiIiO2RlZmF1bHQ6cmV0dXJuIiJ9fTt5LmV4cG9ydHM9ZnVuY3Rpb24odCxpLHMsYSl7cmV0dXJuIGk9aXx8IiYiLHM9c3x8Ij0iLHQ9PT1udWxsJiYodD12b2lkIDApLHR5cGVvZiB0PT0ib2JqZWN0Ij9yKG4odCksZnVuY3Rpb24odSl7dmFyIGM9ZW5jb2RlVVJJQ29tcG9uZW50KHAodSkpK3M7cmV0dXJuIGUodFt1XSk/cih0W3VdLGZ1bmN0aW9uKGgpe3JldHVybiBjK2VuY29kZVVSSUNvbXBvbmVudChwKGgpKX0pLmpvaW4oaSk6YytlbmNvZGVVUklDb21wb25lbnQocCh0W3VdKSl9KS5qb2luKGkpOmE/ZW5jb2RlVVJJQ29tcG9uZW50KHAoYSkpK3MrZW5jb2RlVVJJQ29tcG9uZW50KHAodCkpOiIifTt2YXIgZT1BcnJheS5pc0FycmF5fHxmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpPT09IltvYmplY3QgQXJyYXldIn07ZnVuY3Rpb24gcih0LGkpe2lmKHQubWFwKXJldHVybiB0Lm1hcChpKTtmb3IodmFyIHM9W10sYT0wO2E8dC5sZW5ndGg7YSsrKXMucHVzaChpKHRbYV0sYSkpO3JldHVybiBzfXZhciBuPU9iamVjdC5rZXlzfHxmdW5jdGlvbih0KXt2YXIgaT1bXTtmb3IodmFyIHMgaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxzKSYmaS5wdXNoKHMpO3JldHVybiBpfX0sODc3MzU6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcjtyPWUoMjkzMzUpLHI9cC5zdHJpbmdpZnk9ZSg2ODc5NSl9LDQwOTc0OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse3M6ZnVuY3Rpb24oKXtyZXR1cm4gen0sWjpmdW5jdGlvbigpe3JldHVybiBqfX0pO3ZhciByPWUoODc0NjIpLG49ZSg5NzY4NSksdD1lKDI3ODgpLGk9ZSg2NzI5NCkscz1pLmNyZWF0ZUNvbnRleHQoe30pLGE9ZSgxNDEzKSx1PWUoOTM5NjcpLGM9ZS5uKHUpLGg9ZSg5NDk5OSksZD1lKDcwMjgpLG09ZSgxNTEwNSksQz1lKDY0MjE3KTtmdW5jdGlvbiBnKEQsVixaKXt2YXIgUD1WO3JldHVybiFQJiZaJiYoUD0iIi5jb25jYXQoRCwiLSIpLmNvbmNhdChaKSksUH1mdW5jdGlvbiB3KEQsVil7dmFyIFo9RFsicGFnZSIuY29uY2F0KFY/IlkiOiJYIiwiT2Zmc2V0IildLFA9InNjcm9sbCIuY29uY2F0KFY/IlRvcCI6IkxlZnQiKTtpZih0eXBlb2YgWiE9Im51bWJlciIpe3ZhciBLPUQuZG9jdW1lbnQ7Wj1LLmRvY3VtZW50RWxlbWVudFtQXSx0eXBlb2YgWiE9Im51bWJlciImJihaPUsuYm9keVtQXSl9cmV0dXJuIFp9ZnVuY3Rpb24gRShEKXt2YXIgVj1ELmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFo9e2xlZnQ6Vi5sZWZ0LHRvcDpWLnRvcH0sUD1ELm93bmVyRG9jdW1lbnQsSz1QLmRlZmF1bHRWaWV3fHxQLnBhcmVudFdpbmRvdztyZXR1cm4gWi5sZWZ0Kz13KEspLFoudG9wKz13KEssITApLFp9dmFyIHg9ZSgyOTM3MiksTz1lKDcxMDAyKSxUPWUoNDI1NTApLFM9aS5tZW1vKGZ1bmN0aW9uKEQpe3ZhciBWPUQuY2hpbGRyZW47cmV0dXJuIFZ9LGZ1bmN0aW9uKEQsVil7dmFyIFo9Vi5zaG91bGRVcGRhdGU7cmV0dXJuIVp9KSxMPXt3aWR0aDowLGhlaWdodDowLG92ZXJmbG93OiJoaWRkZW4iLG91dGxpbmU6Im5vbmUifSxJPXtvdXRsaW5lOiJub25lIn0sUj1pLmZvcndhcmRSZWYoZnVuY3Rpb24oRCxWKXt2YXIgWj1ELnByZWZpeENscyxQPUQuY2xhc3NOYW1lLEs9RC5zdHlsZSxzZT1ELnRpdGxlLG5lPUQuYXJpYUlkLG9lPUQuZm9vdGVyLGZlPUQuY2xvc2FibGUsRWU9RC5jbG9zZUljb24sUmU9RC5vbkNsb3NlLEJlPUQuY2hpbGRyZW4sWWU9RC5ib2R5U3R5bGUsb3Q9RC5ib2R5UHJvcHMscWU9RC5tb2RhbFJlbmRlcixfZT1ELm9uTW91c2VEb3duLEZlPUQub25Nb3VzZVVwLFNlPUQuaG9sZGVyUmVmLHE9RC52aXNpYmxlLGs9RC5mb3JjZVJlbmRlcixNPUQud2lkdGgsQT1ELmhlaWdodCxVPUQuY2xhc3NOYW1lcyxOPUQuc3R5bGVzLFE9aS51c2VDb250ZXh0KHMpLHVlPVEucGFuZWwsJD0oMCxULngxKShTZSx1ZSksXz0oMCxpLnVzZVJlZikoKSxwZT0oMCxpLnVzZVJlZikoKTtpLnVzZUltcGVyYXRpdmVIYW5kbGUoVixmdW5jdGlvbigpe3JldHVybntmb2N1czpmdW5jdGlvbigpe3ZhciB0dDsodHQ9Xy5jdXJyZW50KT09PW51bGx8fHR0PT09dm9pZCAwfHx0dC5mb2N1cyh7cHJldmVudFNjcm9sbDohMH0pfSxjaGFuZ2VBY3RpdmU6ZnVuY3Rpb24odHQpe3ZhciBtdD1kb2N1bWVudCx1dD1tdC5hY3RpdmVFbGVtZW50O3R0JiZ1dD09PXBlLmN1cnJlbnQ/Xy5jdXJyZW50LmZvY3VzKHtwcmV2ZW50U2Nyb2xsOiEwfSk6IXR0JiZ1dD09PV8uY3VycmVudCYmcGUuY3VycmVudC5mb2N1cyh7cHJldmVudFNjcm9sbDohMH0pfX19KTt2YXIgcmU9e307TSE9PXZvaWQgMCYmKHJlLndpZHRoPU0pLEEhPT12b2lkIDAmJihyZS5oZWlnaHQ9QSk7dmFyIGFlPW9lP2kuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmMoKSgiIi5jb25jYXQoWiwiLWZvb3RlciIpLFU9PW51bGw/dm9pZCAwOlUuZm9vdGVyKSxzdHlsZTooMCxhLlopKHt9LE49PW51bGw/dm9pZCAwOk4uZm9vdGVyKX0sb2UpOm51bGwsd2U9c2U/aS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YygpKCIiLmNvbmNhdChaLCItaGVhZGVyIiksVT09bnVsbD92b2lkIDA6VS5oZWFkZXIpLHN0eWxlOigwLGEuWikoe30sTj09bnVsbD92b2lkIDA6Ti5oZWFkZXIpfSxpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiIi5jb25jYXQoWiwiLXRpdGxlIiksaWQ6bmV9LHNlKSk6bnVsbCxMZT0oMCxpLnVzZU1lbW8pKGZ1bmN0aW9uKCl7cmV0dXJuKDAsTy5aKShmZSk9PT0ib2JqZWN0IiYmZmUhPT1udWxsP2ZlOmZlP3tjbG9zZUljb246RWUhPW51bGw/RWU6aS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiIiLmNvbmNhdChaLCItY2xvc2UteCIpfSl9Ont9fSxbZmUsRWUsWl0pLE1lPSgwLEMuWikoTGUsITApLGJlPSgwLE8uWikoZmUpPT09Im9iamVjdCImJmZlLmRpc2FibGVkLCRlPWZlP2kuY3JlYXRlRWxlbWVudCgiYnV0dG9uIiwoMCxyLlopKHt0eXBlOiJidXR0b24iLG9uQ2xpY2s6UmUsImFyaWEtbGFiZWwiOiJDbG9zZSJ9LE1lLHtjbGFzc05hbWU6IiIuY29uY2F0KFosIi1jbG9zZSIpLGRpc2FibGVkOmJlfSksTGUuY2xvc2VJY29uKTpudWxsLGtlPWkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmMoKSgiIi5jb25jYXQoWiwiLWNvbnRlbnQiKSxVPT1udWxsP3ZvaWQgMDpVLmNvbnRlbnQpLHN0eWxlOk49PW51bGw/dm9pZCAwOk4uY29udGVudH0sJGUsd2UsaS5jcmVhdGVFbGVtZW50KCJkaXYiLCgwLHIuWikoe2NsYXNzTmFtZTpjKCkoIiIuY29uY2F0KFosIi1ib2R5IiksVT09bnVsbD92b2lkIDA6VS5ib2R5KSxzdHlsZTooMCxhLlopKCgwLGEuWikoe30sWWUpLE49PW51bGw/dm9pZCAwOk4uYm9keSl9LG90KSxCZSksYWUpO3JldHVybiBpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2tleToiZGlhbG9nLWVsZW1lbnQiLHJvbGU6ImRpYWxvZyIsImFyaWEtbGFiZWxsZWRieSI6c2U/bmU6bnVsbCwiYXJpYS1tb2RhbCI6InRydWUiLHJlZjokLHN0eWxlOigwLGEuWikoKDAsYS5aKSh7fSxLKSxyZSksY2xhc3NOYW1lOmMoKShaLFApLG9uTW91c2VEb3duOl9lLG9uTW91c2VVcDpGZX0saS5jcmVhdGVFbGVtZW50KCJkaXYiLHtyZWY6Xyx0YWJJbmRleDowLHN0eWxlOkl9LGkuY3JlYXRlRWxlbWVudChTLHtzaG91bGRVcGRhdGU6cXx8a30scWU/cWUoa2UpOmtlKSksaS5jcmVhdGVFbGVtZW50KCJkaXYiLHt0YWJJbmRleDowLHJlZjpwZSxzdHlsZTpMfSkpfSksej1SLEc9aS5mb3J3YXJkUmVmKGZ1bmN0aW9uKEQsVil7dmFyIFo9RC5wcmVmaXhDbHMsUD1ELnRpdGxlLEs9RC5zdHlsZSxzZT1ELmNsYXNzTmFtZSxuZT1ELnZpc2libGUsb2U9RC5mb3JjZVJlbmRlcixmZT1ELmRlc3Ryb3lPbkNsb3NlLEVlPUQubW90aW9uTmFtZSxSZT1ELmFyaWFJZCxCZT1ELm9uVmlzaWJsZUNoYW5nZWQsWWU9RC5tb3VzZVBvc2l0aW9uLG90PSgwLGkudXNlUmVmKSgpLHFlPWkudXNlU3RhdGUoKSxfZT0oMCxuLlopKHFlLDIpLEZlPV9lWzBdLFNlPV9lWzFdLHE9e307RmUmJihxLnRyYW5zZm9ybU9yaWdpbj1GZSk7ZnVuY3Rpb24gaygpe3ZhciBNPUUob3QuY3VycmVudCk7U2UoWWUmJihZZS54fHxZZS55KT8iIi5jb25jYXQoWWUueC1NLmxlZnQsInB4ICIpLmNvbmNhdChZZS55LU0udG9wLCJweCIpOiIiKX1yZXR1cm4gaS5jcmVhdGVFbGVtZW50KHguWlAse3Zpc2libGU6bmUsb25WaXNpYmxlQ2hhbmdlZDpCZSxvbkFwcGVhclByZXBhcmU6ayxvbkVudGVyUHJlcGFyZTprLGZvcmNlUmVuZGVyOm9lLG1vdGlvbk5hbWU6RWUscmVtb3ZlT25MZWF2ZTpmZSxyZWY6b3R9LGZ1bmN0aW9uKE0sQSl7dmFyIFU9TS5jbGFzc05hbWUsTj1NLnN0eWxlO3JldHVybiBpLmNyZWF0ZUVsZW1lbnQoeiwoMCxyLlopKHt9LEQse3JlZjpWLHRpdGxlOlAsYXJpYUlkOlJlLHByZWZpeENsczpaLGhvbGRlclJlZjpBLHN0eWxlOigwLGEuWikoKDAsYS5aKSgoMCxhLlopKHt9LE4pLEspLHEpLGNsYXNzTmFtZTpjKCkoc2UsVSl9KSl9KX0pO0cuZGlzcGxheU5hbWU9IkNvbnRlbnQiO3ZhciBZPUcsZWU9ZnVuY3Rpb24oVil7dmFyIFo9Vi5wcmVmaXhDbHMsUD1WLnN0eWxlLEs9Vi52aXNpYmxlLHNlPVYubWFza1Byb3BzLG5lPVYubW90aW9uTmFtZSxvZT1WLmNsYXNzTmFtZTtyZXR1cm4gaS5jcmVhdGVFbGVtZW50KHguWlAse2tleToibWFzayIsdmlzaWJsZTpLLG1vdGlvbk5hbWU6bmUsbGVhdmVkQ2xhc3NOYW1lOiIiLmNvbmNhdChaLCItbWFzay1oaWRkZW4iKX0sZnVuY3Rpb24oZmUsRWUpe3ZhciBSZT1mZS5jbGFzc05hbWUsQmU9ZmUuc3R5bGU7cmV0dXJuIGkuY3JlYXRlRWxlbWVudCgiZGl2IiwoMCxyLlopKHtyZWY6RWUsc3R5bGU6KDAsYS5aKSgoMCxhLlopKHt9LEJlKSxQKSxjbGFzc05hbWU6YygpKCIiLmNvbmNhdChaLCItbWFzayIpLFJlLG9lKX0sc2UpKX0pfSxKPWVlLG1lPWUoODAzMzQpLHRlPWZ1bmN0aW9uKFYpe3ZhciBaPVYucHJlZml4Q2xzLFA9Wj09PXZvaWQgMD8icmMtZGlhbG9nIjpaLEs9Vi56SW5kZXgsc2U9Vi52aXNpYmxlLG5lPXNlPT09dm9pZCAwPyExOnNlLG9lPVYua2V5Ym9hcmQsZmU9b2U9PT12b2lkIDA/ITA6b2UsRWU9Vi5mb2N1c1RyaWdnZXJBZnRlckNsb3NlLFJlPUVlPT09dm9pZCAwPyEwOkVlLEJlPVYud3JhcFN0eWxlLFllPVYud3JhcENsYXNzTmFtZSxvdD1WLndyYXBQcm9wcyxxZT1WLm9uQ2xvc2UsX2U9Vi5hZnRlck9wZW5DaGFuZ2UsRmU9Vi5hZnRlckNsb3NlLFNlPVYudHJhbnNpdGlvbk5hbWUscT1WLmFuaW1hdGlvbixrPVYuY2xvc2FibGUsTT1rPT09dm9pZCAwPyEwOmssQT1WLm1hc2ssVT1BPT09dm9pZCAwPyEwOkEsTj1WLm1hc2tUcmFuc2l0aW9uTmFtZSxRPVYubWFza0FuaW1hdGlvbix1ZT1WLm1hc2tDbG9zYWJsZSwkPXVlPT09dm9pZCAwPyEwOnVlLF89Vi5tYXNrU3R5bGUscGU9Vi5tYXNrUHJvcHMscmU9Vi5yb290Q2xhc3NOYW1lLGFlPVYuY2xhc3NOYW1lcyx3ZT1WLnN0eWxlcyxMZT0oMCxpLnVzZVJlZikoKSxNZT0oMCxpLnVzZVJlZikoKSxiZT0oMCxpLnVzZVJlZikoKSwkZT1pLnVzZVN0YXRlKG5lKSxrZT0oMCxuLlopKCRlLDIpLEFlPWtlWzBdLHR0PWtlWzFdLG10PSgwLGQuWikoKTtmdW5jdGlvbiB1dCgpeygwLGguWikoTWUuY3VycmVudCxkb2N1bWVudC5hY3RpdmVFbGVtZW50KXx8KExlLmN1cnJlbnQ9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCl9ZnVuY3Rpb24gRGUoKXtpZighKDAsaC5aKShNZS5jdXJyZW50LGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpKXt2YXIgR2U7KEdlPWJlLmN1cnJlbnQpPT09bnVsbHx8R2U9PT12b2lkIDB8fEdlLmZvY3VzKCl9fWZ1bmN0aW9uIE5lKEdlKXtpZihHZSlEZSgpO2Vsc2V7aWYodHQoITEpLFUmJkxlLmN1cnJlbnQmJlJlKXt0cnl7TGUuY3VycmVudC5mb2N1cyh7cHJldmVudFNjcm9sbDohMH0pfWNhdGNoKGh0KXt9TGUuY3VycmVudD1udWxsfUFlJiYoRmU9PW51bGx8fEZlKCkpfV9lPT1udWxsfHxfZShHZSl9ZnVuY3Rpb24gWGUoR2Upe3FlPT1udWxsfHxxZShHZSl9dmFyIEplPSgwLGkudXNlUmVmKSghMSksZ3Q9KDAsaS51c2VSZWYpKCksZGU9ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQoZ3QuY3VycmVudCksSmUuY3VycmVudD0hMH0sV2U9ZnVuY3Rpb24oKXtndC5jdXJyZW50PXNldFRpbWVvdXQoZnVuY3Rpb24oKXtKZS5jdXJyZW50PSExfSl9LFN0PW51bGw7JCYmKFN0PWZ1bmN0aW9uKGh0KXtKZS5jdXJyZW50P0plLmN1cnJlbnQ9ITE6TWUuY3VycmVudD09PWh0LnRhcmdldCYmWGUoaHQpfSk7ZnVuY3Rpb24gY3QoR2Upe2lmKGZlJiZHZS5rZXlDb2RlPT09bS5aLkVTQyl7R2Uuc3RvcFByb3BhZ2F0aW9uKCksWGUoR2UpO3JldHVybn1uZSYmR2Uua2V5Q29kZT09PW0uWi5UQUImJmJlLmN1cnJlbnQuY2hhbmdlQWN0aXZlKCFHZS5zaGlmdEtleSl9KDAsaS51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7bmUmJih0dCghMCksdXQoKSl9LFtuZV0pLCgwLGkudXNlRWZmZWN0KShmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbigpe2NsZWFyVGltZW91dChndC5jdXJyZW50KX19LFtdKTt2YXIgT2U9KDAsYS5aKSgoMCxhLlopKCgwLGEuWikoe3pJbmRleDpLfSxCZSksd2U9PW51bGw/dm9pZCAwOndlLndyYXBwZXIpLHt9LHtkaXNwbGF5OkFlP251bGw6Im5vbmUifSk7cmV0dXJuIGkuY3JlYXRlRWxlbWVudCgiZGl2IiwoMCxyLlopKHtjbGFzc05hbWU6YygpKCIiLmNvbmNhdChQLCItcm9vdCIpLHJlKX0sKDAsQy5aKShWLHtkYXRhOiEwfSkpLGkuY3JlYXRlRWxlbWVudChKLHtwcmVmaXhDbHM6UCx2aXNpYmxlOlUmJm5lLG1vdGlvbk5hbWU6ZyhQLE4sUSksc3R5bGU6KDAsYS5aKSgoMCxhLlopKHt6SW5kZXg6S30sXyksd2U9PW51bGw/dm9pZCAwOndlLm1hc2spLG1hc2tQcm9wczpwZSxjbGFzc05hbWU6YWU9PW51bGw/dm9pZCAwOmFlLm1hc2t9KSxpLmNyZWF0ZUVsZW1lbnQoImRpdiIsKDAsci5aKSh7dGFiSW5kZXg6LTEsb25LZXlEb3duOmN0LGNsYXNzTmFtZTpjKCkoIiIuY29uY2F0KFAsIi13cmFwIiksWWUsYWU9PW51bGw/dm9pZCAwOmFlLndyYXBwZXIpLHJlZjpNZSxvbkNsaWNrOlN0LHN0eWxlOk9lfSxvdCksaS5jcmVhdGVFbGVtZW50KFksKDAsci5aKSh7fSxWLHtvbk1vdXNlRG93bjpkZSxvbk1vdXNlVXA6V2UscmVmOmJlLGNsb3NhYmxlOk0sYXJpYUlkOm10LHByZWZpeENsczpQLHZpc2libGU6bmUmJkFlLG9uQ2xvc2U6WGUsb25WaXNpYmxlQ2hhbmdlZDpOZSxtb3Rpb25OYW1lOmcoUCxTZSxxKX0pKSkpfSxsZT10ZSxjZT1mdW5jdGlvbihWKXt2YXIgWj1WLnZpc2libGUsUD1WLmdldENvbnRhaW5lcixLPVYuZm9yY2VSZW5kZXIsc2U9Vi5kZXN0cm95T25DbG9zZSxuZT1zZT09PXZvaWQgMD8hMTpzZSxvZT1WLmFmdGVyQ2xvc2UsZmU9Vi5wYW5lbFJlZixFZT1pLnVzZVN0YXRlKFopLFJlPSgwLG4uWikoRWUsMiksQmU9UmVbMF0sWWU9UmVbMV0sb3Q9aS51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJue3BhbmVsOmZlfX0sW2ZlXSk7cmV0dXJuIGkudXNlRWZmZWN0KGZ1bmN0aW9uKCl7WiYmWWUoITApfSxbWl0pLCFLJiZuZSYmIUJlP251bGw6aS5jcmVhdGVFbGVtZW50KHMuUHJvdmlkZXIse3ZhbHVlOm90fSxpLmNyZWF0ZUVsZW1lbnQodC5aLHtvcGVuOlp8fEt8fEJlLGF1dG9EZXN0cm95OiExLGdldENvbnRhaW5lcjpQLGF1dG9Mb2NrOlp8fEJlfSxpLmNyZWF0ZUVsZW1lbnQobGUsKDAsci5aKSh7fSxWLHtkZXN0cm95T25DbG9zZTpuZSxhZnRlckNsb3NlOmZ1bmN0aW9uKCl7b2U9PW51bGx8fG9lKCksWWUoITEpfX0pKSkpfTtjZS5kaXNwbGF5TmFtZT0iRGlhbG9nIjt2YXIgVz1jZSxqPVd9LDI5MTcxOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1o6ZnVuY3Rpb24oKXtyZXR1cm4gR319KTt2YXIgcj1lKDg3NDYyKSxuPWUoNDk0MiksdD1lKDk3Njg1KSxpPWUoOTEpLHM9ZSg0MDIyOCksYT1lKDkzOTY3KSx1PWUubihhKSxjPWUoNDI1NTApLGg9ZSg2NzI5NCksZD1lKDE1MTA1KSxtPWUoNzUxNjQpLEM9ZC5aLkVTQyxnPWQuWi5UQUI7ZnVuY3Rpb24gdyhZKXt2YXIgZWU9WS52aXNpYmxlLEo9WS50cmlnZ2VyUmVmLG1lPVkub25WaXNpYmxlQ2hhbmdlLHRlPVkuYXV0b0ZvY3VzLGxlPVkub3ZlcmxheVJlZixjZT1oLnVzZVJlZighMSksVz1mdW5jdGlvbigpe2lmKGVlKXt2YXIgWixQOyhaPUouY3VycmVudCk9PT1udWxsfHxaPT09dm9pZCAwfHwoUD1aLmZvY3VzKT09PW51bGx8fFA9PT12b2lkIDB8fFAuY2FsbChaKSxtZT09bnVsbHx8bWUoITEpfX0saj1mdW5jdGlvbigpe3ZhciBaO3JldHVybihaPWxlLmN1cnJlbnQpIT09bnVsbCYmWiE9PXZvaWQgMCYmWi5mb2N1cz8obGUuY3VycmVudC5mb2N1cygpLGNlLmN1cnJlbnQ9ITAsITApOiExfSxEPWZ1bmN0aW9uKFope3N3aXRjaChaLmtleUNvZGUpe2Nhc2UgQzpXKCk7YnJlYWs7Y2FzZSBnOnt2YXIgUD0hMTtjZS5jdXJyZW50fHwoUD1qKCkpLFA/Wi5wcmV2ZW50RGVmYXVsdCgpOlcoKTticmVha319fTtoLnVzZUVmZmVjdChmdW5jdGlvbigpe3JldHVybiBlZT8od2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLEQpLHRlJiYoMCxtLlopKGosMyksZnVuY3Rpb24oKXt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsRCksY2UuY3VycmVudD0hMX0pOmZ1bmN0aW9uKCl7Y2UuY3VycmVudD0hMX19LFtlZV0pfXZhciBFPSgwLGguZm9yd2FyZFJlZikoZnVuY3Rpb24oWSxlZSl7dmFyIEo9WS5vdmVybGF5LG1lPVkuYXJyb3csdGU9WS5wcmVmaXhDbHMsbGU9KDAsaC51c2VNZW1vKShmdW5jdGlvbigpe3ZhciBXO3JldHVybiB0eXBlb2YgSj09ImZ1bmN0aW9uIj9XPUooKTpXPUosV30sW0pdKSxjZT0oMCxjLnNRKShlZSwoMCxjLkM0KShsZSkpO3JldHVybiBoLmNyZWF0ZUVsZW1lbnQoaC5GcmFnbWVudCxudWxsLG1lJiZoLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiIi5jb25jYXQodGUsIi1hcnJvdyIpfSksaC5jbG9uZUVsZW1lbnQobGUse3JlZjooMCxjLllyKShsZSk/Y2U6dm9pZCAwfSkpfSkseD1FLE89e2FkanVzdFg6MSxhZGp1c3RZOjF9LFQ9WzAsMF0sUz17dG9wTGVmdDp7cG9pbnRzOlsiYmwiLCJ0bCJdLG92ZXJmbG93Ok8sb2Zmc2V0OlswLC00XSx0YXJnZXRPZmZzZXQ6VH0sdG9wOntwb2ludHM6WyJiYyIsInRjIl0sb3ZlcmZsb3c6TyxvZmZzZXQ6WzAsLTRdLHRhcmdldE9mZnNldDpUfSx0b3BSaWdodDp7cG9pbnRzOlsiYnIiLCJ0ciJdLG92ZXJmbG93Ok8sb2Zmc2V0OlswLC00XSx0YXJnZXRPZmZzZXQ6VH0sYm90dG9tTGVmdDp7cG9pbnRzOlsidGwiLCJibCJdLG92ZXJmbG93Ok8sb2Zmc2V0OlswLDRdLHRhcmdldE9mZnNldDpUfSxib3R0b206e3BvaW50czpbInRjIiwiYmMiXSxvdmVyZmxvdzpPLG9mZnNldDpbMCw0XSx0YXJnZXRPZmZzZXQ6VH0sYm90dG9tUmlnaHQ6e3BvaW50czpbInRyIiwiYnIiXSxvdmVyZmxvdzpPLG9mZnNldDpbMCw0XSx0YXJnZXRPZmZzZXQ6VH19LEw9UyxJPVsiYXJyb3ciLCJwcmVmaXhDbHMiLCJ0cmFuc2l0aW9uTmFtZSIsImFuaW1hdGlvbiIsImFsaWduIiwicGxhY2VtZW50IiwicGxhY2VtZW50cyIsImdldFBvcHVwQ29udGFpbmVyIiwic2hvd0FjdGlvbiIsImhpZGVBY3Rpb24iLCJvdmVybGF5Q2xhc3NOYW1lIiwib3ZlcmxheVN0eWxlIiwidmlzaWJsZSIsInRyaWdnZXIiLCJhdXRvRm9jdXMiLCJvdmVybGF5IiwiY2hpbGRyZW4iLCJvblZpc2libGVDaGFuZ2UiXTtmdW5jdGlvbiBSKFksZWUpe3ZhciBKLG1lPVkuYXJyb3csdGU9bWU9PT12b2lkIDA/ITE6bWUsbGU9WS5wcmVmaXhDbHMsY2U9bGU9PT12b2lkIDA/InJjLWRyb3Bkb3duIjpsZSxXPVkudHJhbnNpdGlvbk5hbWUsaj1ZLmFuaW1hdGlvbixEPVkuYWxpZ24sVj1ZLnBsYWNlbWVudCxaPVY9PT12b2lkIDA/ImJvdHRvbUxlZnQiOlYsUD1ZLnBsYWNlbWVudHMsSz1QPT09dm9pZCAwP0w6UCxzZT1ZLmdldFBvcHVwQ29udGFpbmVyLG5lPVkuc2hvd0FjdGlvbixvZT1ZLmhpZGVBY3Rpb24sZmU9WS5vdmVybGF5Q2xhc3NOYW1lLEVlPVkub3ZlcmxheVN0eWxlLFJlPVkudmlzaWJsZSxCZT1ZLnRyaWdnZXIsWWU9QmU9PT12b2lkIDA/WyJob3ZlciJdOkJlLG90PVkuYXV0b0ZvY3VzLHFlPVkub3ZlcmxheSxfZT1ZLmNoaWxkcmVuLEZlPVkub25WaXNpYmxlQ2hhbmdlLFNlPSgwLGkuWikoWSxJKSxxPWgudXNlU3RhdGUoKSxrPSgwLHQuWikocSwyKSxNPWtbMF0sQT1rWzFdLFU9InZpc2libGUiaW4gWT9SZTpNLE49aC51c2VSZWYobnVsbCksUT1oLnVzZVJlZihudWxsKSx1ZT1oLnVzZVJlZihudWxsKTtoLnVzZUltcGVyYXRpdmVIYW5kbGUoZWUsZnVuY3Rpb24oKXtyZXR1cm4gTi5jdXJyZW50fSk7dmFyICQ9ZnVuY3Rpb24oJGUpe0EoJGUpLEZlPT1udWxsfHxGZSgkZSl9O3coe3Zpc2libGU6VSx0cmlnZ2VyUmVmOnVlLG9uVmlzaWJsZUNoYW5nZTokLGF1dG9Gb2N1czpvdCxvdmVybGF5UmVmOlF9KTt2YXIgXz1mdW5jdGlvbigkZSl7dmFyIGtlPVkub25PdmVybGF5Q2xpY2s7QSghMSksa2UmJmtlKCRlKX0scGU9ZnVuY3Rpb24oKXtyZXR1cm4gaC5jcmVhdGVFbGVtZW50KHgse3JlZjpRLG92ZXJsYXk6cWUscHJlZml4Q2xzOmNlLGFycm93OnRlfSl9LHJlPWZ1bmN0aW9uKCl7cmV0dXJuIHR5cGVvZiBxZT09ImZ1bmN0aW9uIj9wZTpwZSgpfSxhZT1mdW5jdGlvbigpe3ZhciAkZT1ZLm1pbk92ZXJsYXlXaWR0aE1hdGNoVHJpZ2dlcixrZT1ZLmFsaWduUG9pbnQ7cmV0dXJuIm1pbk92ZXJsYXlXaWR0aE1hdGNoVHJpZ2dlciJpbiBZPyRlOiFrZX0sd2U9ZnVuY3Rpb24oKXt2YXIgJGU9WS5vcGVuQ2xhc3NOYW1lO3JldHVybiAkZSE9PXZvaWQgMD8kZToiIi5jb25jYXQoY2UsIi1vcGVuIil9LExlPWguY2xvbmVFbGVtZW50KF9lLHtjbGFzc05hbWU6dSgpKChKPV9lLnByb3BzKT09PW51bGx8fEo9PT12b2lkIDA/dm9pZCAwOkouY2xhc3NOYW1lLFUmJndlKCkpLHJlZjooMCxjLllyKShfZSk/KDAsYy5zUSkodWUsKDAsYy5DNCkoX2UpKTp2b2lkIDB9KSxNZT1vZTtyZXR1cm4hTWUmJlllLmluZGV4T2YoImNvbnRleHRNZW51IikhPT0tMSYmKE1lPVsiY2xpY2siXSksaC5jcmVhdGVFbGVtZW50KHMuWiwoMCxyLlopKHtidWlsdGluUGxhY2VtZW50czpLfSxTZSx7cHJlZml4Q2xzOmNlLHJlZjpOLHBvcHVwQ2xhc3NOYW1lOnUoKShmZSwoMCxuLlopKHt9LCIiLmNvbmNhdChjZSwiLXNob3ctYXJyb3ciKSx0ZSkpLHBvcHVwU3R5bGU6RWUsYWN0aW9uOlllLHNob3dBY3Rpb246bmUsaGlkZUFjdGlvbjpNZSxwb3B1cFBsYWNlbWVudDpaLHBvcHVwQWxpZ246RCxwb3B1cFRyYW5zaXRpb25OYW1lOlcscG9wdXBBbmltYXRpb246aixwb3B1cFZpc2libGU6VSxzdHJldGNoOmFlKCk/Im1pbldpZHRoIjoiIixwb3B1cDpyZSgpLG9uUG9wdXBWaXNpYmxlQ2hhbmdlOiQsb25Qb3B1cENsaWNrOl8sZ2V0UG9wdXBDb250YWluZXI6c2V9KSxMZSl9dmFyIHo9aC5mb3J3YXJkUmVmKFIpLEc9en0sODg2OTI6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7Z046ZnVuY3Rpb24oKXtyZXR1cm4gSm59LHpiOmZ1bmN0aW9uKCl7cmV0dXJuIEx9LFJWOmZ1bmN0aW9uKCl7cmV0dXJuIHJ0fSxhVjpmdW5jdGlvbigpe3JldHVybiBmcn0sWk06ZnVuY3Rpb24oKXtyZXR1cm4gUn0sWlA6ZnVuY3Rpb24oKXtyZXR1cm4gX259LGNJOmZ1bmN0aW9uKCl7cmV0dXJuIEhlfSxxbzpmdW5jdGlvbigpe3JldHVybiBHdH19KTt2YXIgcj1lKDY3Mjk0KSxuPWUoODc0NjIpLHQ9ZSg5MSksaT1lKDc0MTY1KSxzPWUoMTU4NjEpLGE9ZSgxNDEzKSx1PWUoNzQ5MDIpLGM9ZSgxNTY3MSksaD1lKDQzMTQ0KSxkPWUoOTczMjYpLG09ZSg2MDEzNiksQz1lKDI5Mzg4KSxnPWUoNDk0Miksdz1lKDUwMzQ0KSxFPWUoOTE4ODEpLHg9ZSg4MDMzNCksTz0iUkNfRk9STV9JTlRFUk5BTF9IT09LUyIsVD1mdW5jdGlvbigpeygwLHguWlApKCExLCJDYW4gbm90IGZpbmQgRm9ybUNvbnRleHQuIFBsZWFzZSBtYWtlIHN1cmUgeW91IHdyYXAgRmllbGQgdW5kZXIgRm9ybS4iKX0sUz1yLmNyZWF0ZUNvbnRleHQoe2dldEZpZWxkVmFsdWU6VCxnZXRGaWVsZHNWYWx1ZTpULGdldEZpZWxkRXJyb3I6VCxnZXRGaWVsZFdhcm5pbmc6VCxnZXRGaWVsZHNFcnJvcjpULGlzRmllbGRzVG91Y2hlZDpULGlzRmllbGRUb3VjaGVkOlQsaXNGaWVsZFZhbGlkYXRpbmc6VCxpc0ZpZWxkc1ZhbGlkYXRpbmc6VCxyZXNldEZpZWxkczpULHNldEZpZWxkczpULHNldEZpZWxkVmFsdWU6VCxzZXRGaWVsZHNWYWx1ZTpULHZhbGlkYXRlRmllbGRzOlQsc3VibWl0OlQsZ2V0SW50ZXJuYWxIb29rczpmdW5jdGlvbigpe3JldHVybiBUKCkse2Rpc3BhdGNoOlQsaW5pdEVudGl0eVZhbHVlOlQscmVnaXN0ZXJGaWVsZDpULHVzZVN1YnNjcmliZTpULHNldEluaXRpYWxWYWx1ZXM6VCxkZXN0cm95Rm9ybTpULHNldENhbGxiYWNrczpULHJlZ2lzdGVyV2F0Y2g6VCxnZXRGaWVsZHM6VCxzZXRWYWxpZGF0ZU1lc3NhZ2VzOlQsc2V0UHJlc2VydmU6VCxnZXRJbml0aWFsVmFsdWU6VH19fSksTD1TLEk9ci5jcmVhdGVDb250ZXh0KG51bGwpLFI9STtmdW5jdGlvbiB6KFBlKXtyZXR1cm4gUGU9PW51bGw/W106QXJyYXkuaXNBcnJheShQZSk/UGU6W1BlXX1mdW5jdGlvbiBHKFBlKXtyZXR1cm4gUGUmJiEhUGUuX2luaXR9dmFyIFk9ZSg3MTAwMik7ZnVuY3Rpb24gZWUoKXtyZXR1cm57ZGVmYXVsdDoiVmFsaWRhdGlvbiBlcnJvciBvbiBmaWVsZCAlcyIscmVxdWlyZWQ6IiVzIGlzIHJlcXVpcmVkIixlbnVtOiIlcyBtdXN0IGJlIG9uZSBvZiAlcyIsd2hpdGVzcGFjZToiJXMgY2Fubm90IGJlIGVtcHR5IixkYXRlOntmb3JtYXQ6IiVzIGRhdGUgJXMgaXMgaW52YWxpZCBmb3IgZm9ybWF0ICVzIixwYXJzZToiJXMgZGF0ZSBjb3VsZCBub3QgYmUgcGFyc2VkLCAlcyBpcyBpbnZhbGlkICIsaW52YWxpZDoiJXMgZGF0ZSAlcyBpcyBpbnZhbGlkIn0sdHlwZXM6e3N0cmluZzoiJXMgaXMgbm90IGEgJXMiLG1ldGhvZDoiJXMgaXMgbm90IGEgJXMgKGZ1bmN0aW9uKSIsYXJyYXk6IiVzIGlzIG5vdCBhbiAlcyIsb2JqZWN0OiIlcyBpcyBub3QgYW4gJXMiLG51bWJlcjoiJXMgaXMgbm90IGEgJXMiLGRhdGU6IiVzIGlzIG5vdCBhICVzIixib29sZWFuOiIlcyBpcyBub3QgYSAlcyIsaW50ZWdlcjoiJXMgaXMgbm90IGFuICVzIixmbG9hdDoiJXMgaXMgbm90IGEgJXMiLHJlZ2V4cDoiJXMgaXMgbm90IGEgdmFsaWQgJXMiLGVtYWlsOiIlcyBpcyBub3QgYSB2YWxpZCAlcyIsdXJsOiIlcyBpcyBub3QgYSB2YWxpZCAlcyIsaGV4OiIlcyBpcyBub3QgYSB2YWxpZCAlcyJ9LHN0cmluZzp7bGVuOiIlcyBtdXN0IGJlIGV4YWN0bHkgJXMgY2hhcmFjdGVycyIsbWluOiIlcyBtdXN0IGJlIGF0IGxlYXN0ICVzIGNoYXJhY3RlcnMiLG1heDoiJXMgY2Fubm90IGJlIGxvbmdlciB0aGFuICVzIGNoYXJhY3RlcnMiLHJhbmdlOiIlcyBtdXN0IGJlIGJldHdlZW4gJXMgYW5kICVzIGNoYXJhY3RlcnMifSxudW1iZXI6e2xlbjoiJXMgbXVzdCBlcXVhbCAlcyIsbWluOiIlcyBjYW5ub3QgYmUgbGVzcyB0aGFuICVzIixtYXg6IiVzIGNhbm5vdCBiZSBncmVhdGVyIHRoYW4gJXMiLHJhbmdlOiIlcyBtdXN0IGJlIGJldHdlZW4gJXMgYW5kICVzIn0sYXJyYXk6e2xlbjoiJXMgbXVzdCBiZSBleGFjdGx5ICVzIGluIGxlbmd0aCIsbWluOiIlcyBjYW5ub3QgYmUgbGVzcyB0aGFuICVzIGluIGxlbmd0aCIsbWF4OiIlcyBjYW5ub3QgYmUgZ3JlYXRlciB0aGFuICVzIGluIGxlbmd0aCIscmFuZ2U6IiVzIG11c3QgYmUgYmV0d2VlbiAlcyBhbmQgJXMgaW4gbGVuZ3RoIn0scGF0dGVybjp7bWlzbWF0Y2g6IiVzIHZhbHVlICVzIGRvZXMgbm90IG1hdGNoIHBhdHRlcm4gJXMifSxjbG9uZTpmdW5jdGlvbigpe3ZhciBnZT1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMpKTtyZXR1cm4gZ2UuY2xvbmU9dGhpcy5jbG9uZSxnZX19fXZhciBKPWVlKCksbWU9ZSg2MTEyMCksdGU9ZSg4OTYxMSk7ZnVuY3Rpb24gbGUoUGUpe3RyeXtyZXR1cm4gRnVuY3Rpb24udG9TdHJpbmcuY2FsbChQZSkuaW5kZXhPZigiW25hdGl2ZSBjb2RlXSIpIT09LTF9Y2F0Y2goZ2Upe3JldHVybiB0eXBlb2YgUGU9PSJmdW5jdGlvbiJ9fXZhciBjZT1lKDc4ODE0KTtmdW5jdGlvbiBXKFBlLGdlLHZlKXtpZigoMCxjZS5aKSgpKXJldHVybiBSZWZsZWN0LmNvbnN0cnVjdC5hcHBseShudWxsLGFyZ3VtZW50cyk7dmFyIEllPVtudWxsXTtJZS5wdXNoLmFwcGx5KEllLGdlKTt2YXIgeGU9bmV3KFBlLmJpbmQuYXBwbHkoUGUsSWUpKTtyZXR1cm4gdmUmJigwLHRlLlopKHhlLHZlLnByb3RvdHlwZSkseGV9ZnVuY3Rpb24gaihQZSl7dmFyIGdlPXR5cGVvZiBNYXA9PSJmdW5jdGlvbiI/bmV3IE1hcDp2b2lkIDA7cmV0dXJuIGo9ZnVuY3Rpb24oSWUpe2lmKEllPT09bnVsbHx8IWxlKEllKSlyZXR1cm4gSWU7aWYodHlwZW9mIEllIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7aWYoZ2UhPT12b2lkIDApe2lmKGdlLmhhcyhJZSkpcmV0dXJuIGdlLmdldChJZSk7Z2Uuc2V0KEllLHhlKX1mdW5jdGlvbiB4ZSgpe3JldHVybiBXKEllLGFyZ3VtZW50cywoMCxtZS5aKSh0aGlzKS5jb25zdHJ1Y3Rvcil9cmV0dXJuIHhlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKEllLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOnhlLGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLCgwLHRlLlopKHhlLEllKX0saihQZSl9dmFyIEQ9ZSgzNDE1NSksVj0vJVtzZGolXS9nLFo9ZnVuY3Rpb24oKXt9O2Z1bmN0aW9uIFAoUGUpe2lmKCFQZXx8IVBlLmxlbmd0aClyZXR1cm4gbnVsbDt2YXIgZ2U9e307cmV0dXJuIFBlLmZvckVhY2goZnVuY3Rpb24odmUpe3ZhciBJZT12ZS5maWVsZDtnZVtJZV09Z2VbSWVdfHxbXSxnZVtJZV0ucHVzaCh2ZSl9KSxnZX1mdW5jdGlvbiBLKFBlKXtmb3IodmFyIGdlPWFyZ3VtZW50cy5sZW5ndGgsdmU9bmV3IEFycmF5KGdlPjE/Z2UtMTowKSxJZT0xO0llPGdlO0llKyspdmVbSWUtMV09YXJndW1lbnRzW0llXTt2YXIgeGU9MCxhdD12ZS5sZW5ndGg7aWYodHlwZW9mIFBlPT0iZnVuY3Rpb24iKXJldHVybiBQZS5hcHBseShudWxsLHZlKTtpZih0eXBlb2YgUGU9PSJzdHJpbmciKXt2YXIgZHQ9UGUucmVwbGFjZShWLGZ1bmN0aW9uKEV0KXtpZihFdD09PSIlJSIpcmV0dXJuIiUiO2lmKHhlPj1hdClyZXR1cm4gRXQ7c3dpdGNoKEV0KXtjYXNlIiVzIjpyZXR1cm4gU3RyaW5nKHZlW3hlKytdKTtjYXNlIiVkIjpyZXR1cm4gTnVtYmVyKHZlW3hlKytdKTtjYXNlIiVqIjp0cnl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KHZlW3hlKytdKX1jYXRjaChIdCl7cmV0dXJuIltDaXJjdWxhcl0ifWJyZWFrO2RlZmF1bHQ6cmV0dXJuIEV0fX0pO3JldHVybiBkdH1yZXR1cm4gUGV9ZnVuY3Rpb24gc2UoUGUpe3JldHVybiBQZT09PSJzdHJpbmcifHxQZT09PSJ1cmwifHxQZT09PSJoZXgifHxQZT09PSJlbWFpbCJ8fFBlPT09ImRhdGUifHxQZT09PSJwYXR0ZXJuIn1mdW5jdGlvbiBuZShQZSxnZSl7cmV0dXJuISEoUGU9PW51bGx8fGdlPT09ImFycmF5IiYmQXJyYXkuaXNBcnJheShQZSkmJiFQZS5sZW5ndGh8fHNlKGdlKSYmdHlwZW9mIFBlPT0ic3RyaW5nIiYmIVBlKX1mdW5jdGlvbiBvZShQZSl7cmV0dXJuIE9iamVjdC5rZXlzKFBlKS5sZW5ndGg9PT0wfWZ1bmN0aW9uIGZlKFBlLGdlLHZlKXt2YXIgSWU9W10seGU9MCxhdD1QZS5sZW5ndGg7ZnVuY3Rpb24gZHQoRXQpe0llLnB1c2guYXBwbHkoSWUsKDAsdS5aKShFdHx8W10pKSx4ZSsrLHhlPT09YXQmJnZlKEllKX1QZS5mb3JFYWNoKGZ1bmN0aW9uKEV0KXtnZShFdCxkdCl9KX1mdW5jdGlvbiBFZShQZSxnZSx2ZSl7dmFyIEllPTAseGU9UGUubGVuZ3RoO2Z1bmN0aW9uIGF0KGR0KXtpZihkdCYmZHQubGVuZ3RoKXt2ZShkdCk7cmV0dXJufXZhciBFdD1JZTtJZT1JZSsxLEV0PHhlP2dlKFBlW0V0XSxhdCk6dmUoW10pfWF0KFtdKX1mdW5jdGlvbiBSZShQZSl7dmFyIGdlPVtdO3JldHVybiBPYmplY3Qua2V5cyhQZSkuZm9yRWFjaChmdW5jdGlvbih2ZSl7Z2UucHVzaC5hcHBseShnZSwoMCx1LlopKFBlW3ZlXXx8W10pKX0pLGdlfXZhciBCZT1mdW5jdGlvbihQZSl7KDAsbS5aKSh2ZSxQZSk7dmFyIGdlPSgwLEMuWikodmUpO2Z1bmN0aW9uIHZlKEllLHhlKXt2YXIgYXQ7cmV0dXJuKDAsYy5aKSh0aGlzLHZlKSxhdD1nZS5jYWxsKHRoaXMsIkFzeW5jIFZhbGlkYXRpb24gRXJyb3IiKSwoMCxnLlopKCgwLGQuWikoYXQpLCJlcnJvcnMiLHZvaWQgMCksKDAsZy5aKSgoMCxkLlopKGF0KSwiZmllbGRzIix2b2lkIDApLGF0LmVycm9ycz1JZSxhdC5maWVsZHM9eGUsYXR9cmV0dXJuKDAsaC5aKSh2ZSl9KGooRXJyb3IpKTtmdW5jdGlvbiBZZShQZSxnZSx2ZSxJZSx4ZSl7aWYoZ2UuZmlyc3Qpe3ZhciBhdD1uZXcgUHJvbWlzZShmdW5jdGlvbihjbixvcil7dmFyIFRuPWZ1bmN0aW9uKEt0KXtyZXR1cm4gSWUoS3QpLEt0Lmxlbmd0aD9vcihuZXcgQmUoS3QsUChLdCkpKTpjbih4ZSl9LHpuPVJlKFBlKTtFZSh6bix2ZSxUbil9KTtyZXR1cm4gYXQuY2F0Y2goZnVuY3Rpb24oY24pe3JldHVybiBjbn0pLGF0fXZhciBkdD1nZS5maXJzdEZpZWxkcz09PSEwP09iamVjdC5rZXlzKFBlKTpnZS5maXJzdEZpZWxkc3x8W10sRXQ9T2JqZWN0LmtleXMoUGUpLEh0PUV0Lmxlbmd0aCxqdD0wLEZ0PVtdLHBuPW5ldyBQcm9taXNlKGZ1bmN0aW9uKGNuLG9yKXt2YXIgVG49ZnVuY3Rpb24ocm4pe2lmKEZ0LnB1c2guYXBwbHkoRnQscm4pLGp0KyssanQ9PT1IdClyZXR1cm4gSWUoRnQpLEZ0Lmxlbmd0aD9vcihuZXcgQmUoRnQsUChGdCkpKTpjbih4ZSl9O0V0Lmxlbmd0aHx8KEllKEZ0KSxjbih4ZSkpLEV0LmZvckVhY2goZnVuY3Rpb24oem4pe3ZhciBybj1QZVt6bl07ZHQuaW5kZXhPZih6bikhPT0tMT9FZShybix2ZSxUbik6ZmUocm4sdmUsVG4pfSl9KTtyZXR1cm4gcG4uY2F0Y2goZnVuY3Rpb24oY24pe3JldHVybiBjbn0pLHBufWZ1bmN0aW9uIG90KFBlKXtyZXR1cm4hIShQZSYmUGUubWVzc2FnZSE9PXZvaWQgMCl9ZnVuY3Rpb24gcWUoUGUsZ2Upe2Zvcih2YXIgdmU9UGUsSWU9MDtJZTxnZS5sZW5ndGg7SWUrKyl7aWYodmU9PW51bGwpcmV0dXJuIHZlO3ZlPXZlW2dlW0llXV19cmV0dXJuIHZlfWZ1bmN0aW9uIF9lKFBlLGdlKXtyZXR1cm4gZnVuY3Rpb24odmUpe3ZhciBJZTtyZXR1cm4gUGUuZnVsbEZpZWxkcz9JZT1xZShnZSxQZS5mdWxsRmllbGRzKTpJZT1nZVt2ZS5maWVsZHx8UGUuZnVsbEZpZWxkXSxvdCh2ZSk/KHZlLmZpZWxkPXZlLmZpZWxkfHxQZS5mdWxsRmllbGQsdmUuZmllbGRWYWx1ZT1JZSx2ZSk6e21lc3NhZ2U6dHlwZW9mIHZlPT0iZnVuY3Rpb24iP3ZlKCk6dmUsZmllbGRWYWx1ZTpJZSxmaWVsZDp2ZS5maWVsZHx8UGUuZnVsbEZpZWxkfX19ZnVuY3Rpb24gRmUoUGUsZ2Upe2lmKGdlKXtmb3IodmFyIHZlIGluIGdlKWlmKGdlLmhhc093blByb3BlcnR5KHZlKSl7dmFyIEllPWdlW3ZlXTsoMCxZLlopKEllKT09PSJvYmplY3QiJiYoMCxZLlopKFBlW3ZlXSk9PT0ib2JqZWN0Ij9QZVt2ZV09KDAsYS5aKSgoMCxhLlopKHt9LFBlW3ZlXSksSWUpOlBlW3ZlXT1JZX19cmV0dXJuIFBlfXZhciBTZT0iZW51bSIscT1mdW5jdGlvbihnZSx2ZSxJZSx4ZSxhdCl7Z2VbU2VdPUFycmF5LmlzQXJyYXkoZ2VbU2VdKT9nZVtTZV06W10sZ2VbU2VdLmluZGV4T2YodmUpPT09LTEmJnhlLnB1c2goSyhhdC5tZXNzYWdlc1tTZV0sZ2UuZnVsbEZpZWxkLGdlW1NlXS5qb2luKCIsICIpKSl9LGs9cSxNPWZ1bmN0aW9uKGdlLHZlLEllLHhlLGF0KXtpZihnZS5wYXR0ZXJuKXtpZihnZS5wYXR0ZXJuIGluc3RhbmNlb2YgUmVnRXhwKWdlLnBhdHRlcm4ubGFzdEluZGV4PTAsZ2UucGF0dGVybi50ZXN0KHZlKXx8eGUucHVzaChLKGF0Lm1lc3NhZ2VzLnBhdHRlcm4ubWlzbWF0Y2gsZ2UuZnVsbEZpZWxkLHZlLGdlLnBhdHRlcm4pKTtlbHNlIGlmKHR5cGVvZiBnZS5wYXR0ZXJuPT0ic3RyaW5nIil7dmFyIGR0PW5ldyBSZWdFeHAoZ2UucGF0dGVybik7ZHQudGVzdCh2ZSl8fHhlLnB1c2goSyhhdC5tZXNzYWdlcy5wYXR0ZXJuLm1pc21hdGNoLGdlLmZ1bGxGaWVsZCx2ZSxnZS5wYXR0ZXJuKSl9fX0sQT1NLFU9ZnVuY3Rpb24oZ2UsdmUsSWUseGUsYXQpe3ZhciBkdD10eXBlb2YgZ2UubGVuPT0ibnVtYmVyIixFdD10eXBlb2YgZ2UubWluPT0ibnVtYmVyIixIdD10eXBlb2YgZ2UubWF4PT0ibnVtYmVyIixqdD0vW1x1RDgwMC1cdURCRkZdW1x1REMwMC1cdURGRkZdL2csRnQ9dmUscG49bnVsbCxjbj10eXBlb2YgdmU9PSJudW1iZXIiLG9yPXR5cGVvZiB2ZT09InN0cmluZyIsVG49QXJyYXkuaXNBcnJheSh2ZSk7aWYoY24/cG49Im51bWJlciI6b3I/cG49InN0cmluZyI6VG4mJihwbj0iYXJyYXkiKSwhcG4pcmV0dXJuITE7VG4mJihGdD12ZS5sZW5ndGgpLG9yJiYoRnQ9dmUucmVwbGFjZShqdCwiXyIpLmxlbmd0aCksZHQ/RnQhPT1nZS5sZW4mJnhlLnB1c2goSyhhdC5tZXNzYWdlc1twbl0ubGVuLGdlLmZ1bGxGaWVsZCxnZS5sZW4pKTpFdCYmIUh0JiZGdDxnZS5taW4/eGUucHVzaChLKGF0Lm1lc3NhZ2VzW3BuXS5taW4sZ2UuZnVsbEZpZWxkLGdlLm1pbikpOkh0JiYhRXQmJkZ0PmdlLm1heD94ZS5wdXNoKEsoYXQubWVzc2FnZXNbcG5dLm1heCxnZS5mdWxsRmllbGQsZ2UubWF4KSk6RXQmJkh0JiYoRnQ8Z2UubWlufHxGdD5nZS5tYXgpJiZ4ZS5wdXNoKEsoYXQubWVzc2FnZXNbcG5dLnJhbmdlLGdlLmZ1bGxGaWVsZCxnZS5taW4sZ2UubWF4KSl9LE49VSxRPWZ1bmN0aW9uKGdlLHZlLEllLHhlLGF0LGR0KXtnZS5yZXF1aXJlZCYmKCFJZS5oYXNPd25Qcm9wZXJ0eShnZS5maWVsZCl8fG5lKHZlLGR0fHxnZS50eXBlKSkmJnhlLnB1c2goSyhhdC5tZXNzYWdlcy5yZXF1aXJlZCxnZS5mdWxsRmllbGQpKX0sdWU9USwkLF89ZnVuY3Rpb24oKXtpZigkKXJldHVybiAkO3ZhciBQZT0iW2EtZkEtRlxcZDpdIixnZT1mdW5jdGlvbihHbil7cmV0dXJuIEduJiZHbi5pbmNsdWRlQm91bmRhcmllcz8iKD86KD88PVxcc3xeKSg/PSIuY29uY2F0KFBlLCIpfCg/PD0iKS5jb25jYXQoUGUsIikoPz1cXHN8JCkpIik6IiJ9LHZlPSIoPzoyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldXFxkfFxcZCkoPzpcXC4oPzoyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldXFxkfFxcZCkpezN9IixJZT0iW2EtZkEtRlxcZF17MSw0fSIseGU9WyIoPzoiLmNvbmNhdChJZSwiOil7N30oPzoiKS5jb25jYXQoSWUsInw6KSIpLCIoPzoiLmNvbmNhdChJZSwiOil7Nn0oPzoiKS5jb25jYXQodmUsInw6IikuY29uY2F0KEllLCJ8OikiKSwiKD86Ii5jb25jYXQoSWUsIjopezV9KD86OiIpLmNvbmNhdCh2ZSwifCg/OjoiKS5jb25jYXQoSWUsIil7MSwyfXw6KSIpLCIoPzoiLmNvbmNhdChJZSwiOil7NH0oPzooPzo6IikuY29uY2F0KEllLCIpezAsMX06IikuY29uY2F0KHZlLCJ8KD86OiIpLmNvbmNhdChJZSwiKXsxLDN9fDopIiksIig/OiIuY29uY2F0KEllLCI6KXszfSg/Oig/OjoiKS5jb25jYXQoSWUsIil7MCwyfToiKS5jb25jYXQodmUsInwoPzo6IikuY29uY2F0KEllLCIpezEsNH18OikiKSwiKD86Ii5jb25jYXQoSWUsIjopezJ9KD86KD86OiIpLmNvbmNhdChJZSwiKXswLDN9OiIpLmNvbmNhdCh2ZSwifCg/OjoiKS5jb25jYXQoSWUsIil7MSw1fXw6KSIpLCIoPzoiLmNvbmNhdChJZSwiOil7MX0oPzooPzo6IikuY29uY2F0KEllLCIpezAsNH06IikuY29uY2F0KHZlLCJ8KD86OiIpLmNvbmNhdChJZSwiKXsxLDZ9fDopIiksIig/OjooPzooPzo6Ii5jb25jYXQoSWUsIil7MCw1fToiKS5jb25jYXQodmUsInwoPzo6IikuY29uY2F0KEllLCIpezEsN318OikpIildLGF0PSIoPzolWzAtOWEtekEtWl17MSx9KT8iLGR0PSIoPzoiLmNvbmNhdCh4ZS5qb2luKCJ8IiksIikiKS5jb25jYXQoYXQpLEV0PW5ldyBSZWdFeHAoIig/Ol4iLmNvbmNhdCh2ZSwiJCl8KD86XiIpLmNvbmNhdChkdCwiJCkiKSksSHQ9bmV3IFJlZ0V4cCgiXiIuY29uY2F0KHZlLCIkIikpLGp0PW5ldyBSZWdFeHAoIl4iLmNvbmNhdChkdCwiJCIpKSxGdD1mdW5jdGlvbihHbil7cmV0dXJuIEduJiZHbi5leGFjdD9FdDpuZXcgUmVnRXhwKCIoPzoiLmNvbmNhdChnZShHbikpLmNvbmNhdCh2ZSkuY29uY2F0KGdlKEduKSwiKXwoPzoiKS5jb25jYXQoZ2UoR24pKS5jb25jYXQoZHQpLmNvbmNhdChnZShHbiksIikiKSwiZyIpfTtGdC52ND1mdW5jdGlvbihFbil7cmV0dXJuIEVuJiZFbi5leGFjdD9IdDpuZXcgUmVnRXhwKCIiLmNvbmNhdChnZShFbikpLmNvbmNhdCh2ZSkuY29uY2F0KGdlKEVuKSksImciKX0sRnQudjY9ZnVuY3Rpb24oRW4pe3JldHVybiBFbiYmRW4uZXhhY3Q/anQ6bmV3IFJlZ0V4cCgiIi5jb25jYXQoZ2UoRW4pKS5jb25jYXQoZHQpLmNvbmNhdChnZShFbikpLCJnIil9O3ZhciBwbj0iKD86KD86W2Etel0rOik/Ly8pIixjbj0iKD86XFxTKyg/OjpcXFMqKT9AKT8iLG9yPUZ0LnY0KCkuc291cmNlLFRuPUZ0LnY2KCkuc291cmNlLHpuPSIoPzooPzpbYS16XFx1MDBhMS1cXHVmZmZmMC05XVstX10qKSpbYS16XFx1MDBhMS1cXHVmZmZmMC05XSspIixybj0iKD86XFwuKD86W2EtelxcdTAwYTEtXFx1ZmZmZjAtOV0tKikqW2EtelxcdTAwYTEtXFx1ZmZmZjAtOV0rKSoiLEt0PSIoPzpcXC4oPzpbYS16XFx1MDBhMS1cXHVmZmZmXXsyLH0pKSIsenQ9Iig/OjpcXGR7Miw1fSk/IixPdD0nKD86Wy8/I11bXlxccyJdKik/Jyxsbj0iKD86Ii5jb25jYXQocG4sInx3d3dcXC4pIikuY29uY2F0KGNuLCIoPzpsb2NhbGhvc3R8IikuY29uY2F0KG9yLCJ8IikuY29uY2F0KFRuLCJ8IikuY29uY2F0KHpuKS5jb25jYXQocm4pLmNvbmNhdChLdCwiKSIpLmNvbmNhdCh6dCkuY29uY2F0KE90KTtyZXR1cm4gJD1uZXcgUmVnRXhwKCIoPzpeIi5jb25jYXQobG4sIiQpIiksImkiKSwkfSxwZT17ZW1haWw6L14oKFtePD4oKVxbXF1cXC4sOzpcc0AiXSsoXC5bXjw+KClcW1xdXFwuLDs6XHNAIl0rKSopfCgiLisiKSlAKChcW1swLTldezEsM31cLlswLTldezEsM31cLlswLTldezEsM31cLlswLTldezEsM31dKXwoKFthLXpBLVpcLTAtOVx1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0rXC4pK1thLXpBLVpcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdezIsfSkpJC8saGV4Oi9eIz8oW2EtZjAtOV17Nn18W2EtZjAtOV17M30pJC9pfSxyZT17aW50ZWdlcjpmdW5jdGlvbihnZSl7cmV0dXJuIHJlLm51bWJlcihnZSkmJnBhcnNlSW50KGdlLDEwKT09PWdlfSxmbG9hdDpmdW5jdGlvbihnZSl7cmV0dXJuIHJlLm51bWJlcihnZSkmJiFyZS5pbnRlZ2VyKGdlKX0sYXJyYXk6ZnVuY3Rpb24oZ2Upe3JldHVybiBBcnJheS5pc0FycmF5KGdlKX0scmVnZXhwOmZ1bmN0aW9uKGdlKXtpZihnZSBpbnN0YW5jZW9mIFJlZ0V4cClyZXR1cm4hMDt0cnl7cmV0dXJuISFuZXcgUmVnRXhwKGdlKX1jYXRjaCh2ZSl7cmV0dXJuITF9fSxkYXRlOmZ1bmN0aW9uKGdlKXtyZXR1cm4gdHlwZW9mIGdlLmdldFRpbWU9PSJmdW5jdGlvbiImJnR5cGVvZiBnZS5nZXRNb250aD09ImZ1bmN0aW9uIiYmdHlwZW9mIGdlLmdldFllYXI9PSJmdW5jdGlvbiImJiFpc05hTihnZS5nZXRUaW1lKCkpfSxudW1iZXI6ZnVuY3Rpb24oZ2Upe3JldHVybiBpc05hTihnZSk/ITE6dHlwZW9mIGdlPT0ibnVtYmVyIn0sb2JqZWN0OmZ1bmN0aW9uKGdlKXtyZXR1cm4oMCxZLlopKGdlKT09PSJvYmplY3QiJiYhcmUuYXJyYXkoZ2UpfSxtZXRob2Q6ZnVuY3Rpb24oZ2Upe3JldHVybiB0eXBlb2YgZ2U9PSJmdW5jdGlvbiJ9LGVtYWlsOmZ1bmN0aW9uKGdlKXtyZXR1cm4gdHlwZW9mIGdlPT0ic3RyaW5nIiYmZ2UubGVuZ3RoPD0zMjAmJiEhZ2UubWF0Y2gocGUuZW1haWwpfSx1cmw6ZnVuY3Rpb24oZ2Upe3JldHVybiB0eXBlb2YgZ2U9PSJzdHJpbmciJiZnZS5sZW5ndGg8PTIwNDgmJiEhZ2UubWF0Y2goXygpKX0saGV4OmZ1bmN0aW9uKGdlKXtyZXR1cm4gdHlwZW9mIGdlPT0ic3RyaW5nIiYmISFnZS5tYXRjaChwZS5oZXgpfX0sYWU9ZnVuY3Rpb24oZ2UsdmUsSWUseGUsYXQpe2lmKGdlLnJlcXVpcmVkJiZ2ZT09PXZvaWQgMCl7dWUoZ2UsdmUsSWUseGUsYXQpO3JldHVybn12YXIgZHQ9WyJpbnRlZ2VyIiwiZmxvYXQiLCJhcnJheSIsInJlZ2V4cCIsIm9iamVjdCIsIm1ldGhvZCIsImVtYWlsIiwibnVtYmVyIiwiZGF0ZSIsInVybCIsImhleCJdLEV0PWdlLnR5cGU7ZHQuaW5kZXhPZihFdCk+LTE/cmVbRXRdKHZlKXx8eGUucHVzaChLKGF0Lm1lc3NhZ2VzLnR5cGVzW0V0XSxnZS5mdWxsRmllbGQsZ2UudHlwZSkpOkV0JiYoMCxZLlopKHZlKSE9PWdlLnR5cGUmJnhlLnB1c2goSyhhdC5tZXNzYWdlcy50eXBlc1tFdF0sZ2UuZnVsbEZpZWxkLGdlLnR5cGUpKX0sd2U9YWUsTGU9ZnVuY3Rpb24oZ2UsdmUsSWUseGUsYXQpeygvXlxzKyQvLnRlc3QodmUpfHx2ZT09PSIiKSYmeGUucHVzaChLKGF0Lm1lc3NhZ2VzLndoaXRlc3BhY2UsZ2UuZnVsbEZpZWxkKSl9LE1lPUxlLGJlPXtyZXF1aXJlZDp1ZSx3aGl0ZXNwYWNlOk1lLHR5cGU6d2UscmFuZ2U6TixlbnVtOmsscGF0dGVybjpBfSwkZT1mdW5jdGlvbihnZSx2ZSxJZSx4ZSxhdCl7dmFyIGR0PVtdLEV0PWdlLnJlcXVpcmVkfHwhZ2UucmVxdWlyZWQmJnhlLmhhc093blByb3BlcnR5KGdlLmZpZWxkKTtpZihFdCl7aWYobmUodmUpJiYhZ2UucmVxdWlyZWQpcmV0dXJuIEllKCk7YmUucmVxdWlyZWQoZ2UsdmUseGUsZHQsYXQpfUllKGR0KX0sa2U9JGUsQWU9ZnVuY3Rpb24oZ2UsdmUsSWUseGUsYXQpe3ZhciBkdD1bXSxFdD1nZS5yZXF1aXJlZHx8IWdlLnJlcXVpcmVkJiZ4ZS5oYXNPd25Qcm9wZXJ0eShnZS5maWVsZCk7aWYoRXQpe2lmKHZlPT1udWxsJiYhZ2UucmVxdWlyZWQpcmV0dXJuIEllKCk7YmUucmVxdWlyZWQoZ2UsdmUseGUsZHQsYXQsImFycmF5IiksdmUhPW51bGwmJihiZS50eXBlKGdlLHZlLHhlLGR0LGF0KSxiZS5yYW5nZShnZSx2ZSx4ZSxkdCxhdCkpfUllKGR0KX0sdHQ9QWUsbXQ9ZnVuY3Rpb24oZ2UsdmUsSWUseGUsYXQpe3ZhciBkdD1bXSxFdD1nZS5yZXF1aXJlZHx8IWdlLnJlcXVpcmVkJiZ4ZS5oYXNPd25Qcm9wZXJ0eShnZS5maWVsZCk7aWYoRXQpe2lmKG5lKHZlKSYmIWdlLnJlcXVpcmVkKXJldHVybiBJZSgpO2JlLnJlcXVpcmVkKGdlLHZlLHhlLGR0LGF0KSx2ZSE9PXZvaWQgMCYmYmUudHlwZShnZSx2ZSx4ZSxkdCxhdCl9SWUoZHQpfSx1dD1tdCxEZT1mdW5jdGlvbihnZSx2ZSxJZSx4ZSxhdCl7dmFyIGR0PVtdLEV0PWdlLnJlcXVpcmVkfHwhZ2UucmVxdWlyZWQmJnhlLmhhc093blByb3BlcnR5KGdlLmZpZWxkKTtpZihFdCl7aWYobmUodmUsImRhdGUiKSYmIWdlLnJlcXVpcmVkKXJldHVybiBJZSgpO2lmKGJlLnJlcXVpcmVkKGdlLHZlLHhlLGR0LGF0KSwhbmUodmUsImRhdGUiKSl7dmFyIEh0O3ZlIGluc3RhbmNlb2YgRGF0ZT9IdD12ZTpIdD1uZXcgRGF0ZSh2ZSksYmUudHlwZShnZSxIdCx4ZSxkdCxhdCksSHQmJmJlLnJhbmdlKGdlLEh0LmdldFRpbWUoKSx4ZSxkdCxhdCl9fUllKGR0KX0sTmU9RGUsWGU9ImVudW0iLEplPWZ1bmN0aW9uKGdlLHZlLEllLHhlLGF0KXt2YXIgZHQ9W10sRXQ9Z2UucmVxdWlyZWR8fCFnZS5yZXF1aXJlZCYmeGUuaGFzT3duUHJvcGVydHkoZ2UuZmllbGQpO2lmKEV0KXtpZihuZSh2ZSkmJiFnZS5yZXF1aXJlZClyZXR1cm4gSWUoKTtiZS5yZXF1aXJlZChnZSx2ZSx4ZSxkdCxhdCksdmUhPT12b2lkIDAmJmJlW1hlXShnZSx2ZSx4ZSxkdCxhdCl9SWUoZHQpfSxndD1KZSxkZT1mdW5jdGlvbihnZSx2ZSxJZSx4ZSxhdCl7dmFyIGR0PVtdLEV0PWdlLnJlcXVpcmVkfHwhZ2UucmVxdWlyZWQmJnhlLmhhc093blByb3BlcnR5KGdlLmZpZWxkKTtpZihFdCl7aWYobmUodmUpJiYhZ2UucmVxdWlyZWQpcmV0dXJuIEllKCk7YmUucmVxdWlyZWQoZ2UsdmUseGUsZHQsYXQpLHZlIT09dm9pZCAwJiYoYmUudHlwZShnZSx2ZSx4ZSxkdCxhdCksYmUucmFuZ2UoZ2UsdmUseGUsZHQsYXQpKX1JZShkdCl9LFdlPWRlLFN0PWZ1bmN0aW9uKGdlLHZlLEllLHhlLGF0KXt2YXIgZHQ9W10sRXQ9Z2UucmVxdWlyZWR8fCFnZS5yZXF1aXJlZCYmeGUuaGFzT3duUHJvcGVydHkoZ2UuZmllbGQpO2lmKEV0KXtpZihuZSh2ZSkmJiFnZS5yZXF1aXJlZClyZXR1cm4gSWUoKTtiZS5yZXF1aXJlZChnZSx2ZSx4ZSxkdCxhdCksdmUhPT12b2lkIDAmJihiZS50eXBlKGdlLHZlLHhlLGR0LGF0KSxiZS5yYW5nZShnZSx2ZSx4ZSxkdCxhdCkpfUllKGR0KX0sY3Q9U3QsT2U9ZnVuY3Rpb24oZ2UsdmUsSWUseGUsYXQpe3ZhciBkdD1bXSxFdD1nZS5yZXF1aXJlZHx8IWdlLnJlcXVpcmVkJiZ4ZS5oYXNPd25Qcm9wZXJ0eShnZS5maWVsZCk7aWYoRXQpe2lmKG5lKHZlKSYmIWdlLnJlcXVpcmVkKXJldHVybiBJZSgpO2JlLnJlcXVpcmVkKGdlLHZlLHhlLGR0LGF0KSx2ZSE9PXZvaWQgMCYmYmUudHlwZShnZSx2ZSx4ZSxkdCxhdCl9SWUoZHQpfSxHZT1PZSxodD1mdW5jdGlvbihnZSx2ZSxJZSx4ZSxhdCl7dmFyIGR0PVtdLEV0PWdlLnJlcXVpcmVkfHwhZ2UucmVxdWlyZWQmJnhlLmhhc093blByb3BlcnR5KGdlLmZpZWxkKTtpZihFdCl7aWYodmU9PT0iIiYmKHZlPXZvaWQgMCksbmUodmUpJiYhZ2UucmVxdWlyZWQpcmV0dXJuIEllKCk7YmUucmVxdWlyZWQoZ2UsdmUseGUsZHQsYXQpLHZlIT09dm9pZCAwJiYoYmUudHlwZShnZSx2ZSx4ZSxkdCxhdCksYmUucmFuZ2UoZ2UsdmUseGUsZHQsYXQpKX1JZShkdCl9LHplPWh0LFFlPWZ1bmN0aW9uKGdlLHZlLEllLHhlLGF0KXt2YXIgZHQ9W10sRXQ9Z2UucmVxdWlyZWR8fCFnZS5yZXF1aXJlZCYmeGUuaGFzT3duUHJvcGVydHkoZ2UuZmllbGQpO2lmKEV0KXtpZihuZSh2ZSkmJiFnZS5yZXF1aXJlZClyZXR1cm4gSWUoKTtiZS5yZXF1aXJlZChnZSx2ZSx4ZSxkdCxhdCksdmUhPT12b2lkIDAmJmJlLnR5cGUoZ2UsdmUseGUsZHQsYXQpfUllKGR0KX0scHQ9UWUsYnQ9ZnVuY3Rpb24oZ2UsdmUsSWUseGUsYXQpe3ZhciBkdD1bXSxFdD1nZS5yZXF1aXJlZHx8IWdlLnJlcXVpcmVkJiZ4ZS5oYXNPd25Qcm9wZXJ0eShnZS5maWVsZCk7aWYoRXQpe2lmKG5lKHZlLCJzdHJpbmciKSYmIWdlLnJlcXVpcmVkKXJldHVybiBJZSgpO2JlLnJlcXVpcmVkKGdlLHZlLHhlLGR0LGF0KSxuZSh2ZSwic3RyaW5nIil8fGJlLnBhdHRlcm4oZ2UsdmUseGUsZHQsYXQpfUllKGR0KX0sSXQ9YnQsVHQ9ZnVuY3Rpb24oZ2UsdmUsSWUseGUsYXQpe3ZhciBkdD1bXSxFdD1nZS5yZXF1aXJlZHx8IWdlLnJlcXVpcmVkJiZ4ZS5oYXNPd25Qcm9wZXJ0eShnZS5maWVsZCk7aWYoRXQpe2lmKG5lKHZlKSYmIWdlLnJlcXVpcmVkKXJldHVybiBJZSgpO2JlLnJlcXVpcmVkKGdlLHZlLHhlLGR0LGF0KSxuZSh2ZSl8fGJlLnR5cGUoZ2UsdmUseGUsZHQsYXQpfUllKGR0KX0sWHQ9VHQsZm49ZnVuY3Rpb24oZ2UsdmUsSWUseGUsYXQpe3ZhciBkdD1bXSxFdD1BcnJheS5pc0FycmF5KHZlKT8iYXJyYXkiOigwLFkuWikodmUpO2JlLnJlcXVpcmVkKGdlLHZlLHhlLGR0LGF0LEV0KSxJZShkdCl9LG5uPWZuLG9uPWZ1bmN0aW9uKGdlLHZlLEllLHhlLGF0KXt2YXIgZHQ9W10sRXQ9Z2UucmVxdWlyZWR8fCFnZS5yZXF1aXJlZCYmeGUuaGFzT3duUHJvcGVydHkoZ2UuZmllbGQpO2lmKEV0KXtpZihuZSh2ZSwic3RyaW5nIikmJiFnZS5yZXF1aXJlZClyZXR1cm4gSWUoKTtiZS5yZXF1aXJlZChnZSx2ZSx4ZSxkdCxhdCwic3RyaW5nIiksbmUodmUsInN0cmluZyIpfHwoYmUudHlwZShnZSx2ZSx4ZSxkdCxhdCksYmUucmFuZ2UoZ2UsdmUseGUsZHQsYXQpLGJlLnBhdHRlcm4oZ2UsdmUseGUsZHQsYXQpLGdlLndoaXRlc3BhY2U9PT0hMCYmYmUud2hpdGVzcGFjZShnZSx2ZSx4ZSxkdCxhdCkpfUllKGR0KX0sTnQ9b24sWm49ZnVuY3Rpb24oZ2UsdmUsSWUseGUsYXQpe3ZhciBkdD1nZS50eXBlLEV0PVtdLEh0PWdlLnJlcXVpcmVkfHwhZ2UucmVxdWlyZWQmJnhlLmhhc093blByb3BlcnR5KGdlLmZpZWxkKTtpZihIdCl7aWYobmUodmUsZHQpJiYhZ2UucmVxdWlyZWQpcmV0dXJuIEllKCk7YmUucmVxdWlyZWQoZ2UsdmUseGUsRXQsYXQsZHQpLG5lKHZlLGR0KXx8YmUudHlwZShnZSx2ZSx4ZSxFdCxhdCl9SWUoRXQpfSx5bj1abixnbj17c3RyaW5nOk50LG1ldGhvZDpHZSxudW1iZXI6emUsYm9vbGVhbjp1dCxyZWdleHA6WHQsaW50ZWdlcjpjdCxmbG9hdDpXZSxhcnJheTp0dCxvYmplY3Q6cHQsZW51bTpndCxwYXR0ZXJuOkl0LGRhdGU6TmUsdXJsOnluLGhleDp5bixlbWFpbDp5bixyZXF1aXJlZDpubixhbnk6a2V9LEJuPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gUGUoZ2UpeygwLGMuWikodGhpcyxQZSksKDAsZy5aKSh0aGlzLCJydWxlcyIsbnVsbCksKDAsZy5aKSh0aGlzLCJfbWVzc2FnZXMiLEopLHRoaXMuZGVmaW5lKGdlKX1yZXR1cm4oMCxoLlopKFBlLFt7a2V5OiJkZWZpbmUiLHZhbHVlOmZ1bmN0aW9uKHZlKXt2YXIgSWU9dGhpcztpZighdmUpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgY29uZmlndXJlIGEgc2NoZW1hIHdpdGggbm8gcnVsZXMiKTtpZigoMCxZLlopKHZlKSE9PSJvYmplY3QifHxBcnJheS5pc0FycmF5KHZlKSl0aHJvdyBuZXcgRXJyb3IoIlJ1bGVzIG11c3QgYmUgYW4gb2JqZWN0Iik7dGhpcy5ydWxlcz17fSxPYmplY3Qua2V5cyh2ZSkuZm9yRWFjaChmdW5jdGlvbih4ZSl7dmFyIGF0PXZlW3hlXTtJZS5ydWxlc1t4ZV09QXJyYXkuaXNBcnJheShhdCk/YXQ6W2F0XX0pfX0se2tleToibWVzc2FnZXMiLHZhbHVlOmZ1bmN0aW9uKHZlKXtyZXR1cm4gdmUmJih0aGlzLl9tZXNzYWdlcz1GZShlZSgpLHZlKSksdGhpcy5fbWVzc2FnZXN9fSx7a2V5OiJ2YWxpZGF0ZSIsdmFsdWU6ZnVuY3Rpb24odmUpe3ZhciBJZT10aGlzLHhlPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTp7fSxhdD1hcmd1bWVudHMubGVuZ3RoPjImJmFyZ3VtZW50c1syXSE9PXZvaWQgMD9hcmd1bWVudHNbMl06ZnVuY3Rpb24oKXt9LGR0PXZlLEV0PXhlLEh0PWF0O2lmKHR5cGVvZiBFdD09ImZ1bmN0aW9uIiYmKEh0PUV0LEV0PXt9KSwhdGhpcy5ydWxlc3x8T2JqZWN0LmtleXModGhpcy5ydWxlcykubGVuZ3RoPT09MClyZXR1cm4gSHQmJkh0KG51bGwsZHQpLFByb21pc2UucmVzb2x2ZShkdCk7ZnVuY3Rpb24ganQoVG4pe3ZhciB6bj1bXSxybj17fTtmdW5jdGlvbiBLdChPdCl7aWYoQXJyYXkuaXNBcnJheShPdCkpe3ZhciBsbjt6bj0obG49em4pLmNvbmNhdC5hcHBseShsbiwoMCx1LlopKE90KSl9ZWxzZSB6bi5wdXNoKE90KX1mb3IodmFyIHp0PTA7enQ8VG4ubGVuZ3RoO3p0KyspS3QoVG5benRdKTt6bi5sZW5ndGg/KHJuPVAoem4pLEh0KHpuLHJuKSk6SHQobnVsbCxkdCl9aWYoRXQubWVzc2FnZXMpe3ZhciBGdD10aGlzLm1lc3NhZ2VzKCk7RnQ9PT1KJiYoRnQ9ZWUoKSksRmUoRnQsRXQubWVzc2FnZXMpLEV0Lm1lc3NhZ2VzPUZ0fWVsc2UgRXQubWVzc2FnZXM9dGhpcy5tZXNzYWdlcygpO3ZhciBwbj17fSxjbj1FdC5rZXlzfHxPYmplY3Qua2V5cyh0aGlzLnJ1bGVzKTtjbi5mb3JFYWNoKGZ1bmN0aW9uKFRuKXt2YXIgem49SWUucnVsZXNbVG5dLHJuPWR0W1RuXTt6bi5mb3JFYWNoKGZ1bmN0aW9uKEt0KXt2YXIgenQ9S3Q7dHlwZW9mIHp0LnRyYW5zZm9ybT09ImZ1bmN0aW9uIiYmKGR0PT09dmUmJihkdD0oMCxhLlopKHt9LGR0KSkscm49ZHRbVG5dPXp0LnRyYW5zZm9ybShybikscm4hPW51bGwmJih6dC50eXBlPXp0LnR5cGV8fChBcnJheS5pc0FycmF5KHJuKT8iYXJyYXkiOigwLFkuWikocm4pKSkpLHR5cGVvZiB6dD09ImZ1bmN0aW9uIj96dD17dmFsaWRhdG9yOnp0fTp6dD0oMCxhLlopKHt9LHp0KSx6dC52YWxpZGF0b3I9SWUuZ2V0VmFsaWRhdGlvbk1ldGhvZCh6dCksenQudmFsaWRhdG9yJiYoenQuZmllbGQ9VG4senQuZnVsbEZpZWxkPXp0LmZ1bGxGaWVsZHx8VG4senQudHlwZT1JZS5nZXRUeXBlKHp0KSxwbltUbl09cG5bVG5dfHxbXSxwbltUbl0ucHVzaCh7cnVsZTp6dCx2YWx1ZTpybixzb3VyY2U6ZHQsZmllbGQ6VG59KSl9KX0pO3ZhciBvcj17fTtyZXR1cm4gWWUocG4sRXQsZnVuY3Rpb24oVG4sem4pe3ZhciBybj1Ubi5ydWxlLEt0PShybi50eXBlPT09Im9iamVjdCJ8fHJuLnR5cGU9PT0iYXJyYXkiKSYmKCgwLFkuWikocm4uZmllbGRzKT09PSJvYmplY3QifHwoMCxZLlopKHJuLmRlZmF1bHRGaWVsZCk9PT0ib2JqZWN0Iik7S3Q9S3QmJihybi5yZXF1aXJlZHx8IXJuLnJlcXVpcmVkJiZUbi52YWx1ZSkscm4uZmllbGQ9VG4uZmllbGQ7ZnVuY3Rpb24genQocHIsUHIpe3JldHVybigwLGEuWikoKDAsYS5aKSh7fSxQcikse30se2Z1bGxGaWVsZDoiIi5jb25jYXQocm4uZnVsbEZpZWxkLCIuIikuY29uY2F0KHByKSxmdWxsRmllbGRzOnJuLmZ1bGxGaWVsZHM/W10uY29uY2F0KCgwLHUuWikocm4uZnVsbEZpZWxkcyksW3ByXSk6W3ByXX0pfWZ1bmN0aW9uIE90KCl7dmFyIHByPWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dm9pZCAwP2FyZ3VtZW50c1swXTpbXSxQcj1BcnJheS5pc0FycmF5KHByKT9wcjpbcHJdOyFFdC5zdXBwcmVzc1dhcm5pbmcmJlByLmxlbmd0aCYmUGUud2FybmluZygiYXN5bmMtdmFsaWRhdG9yOiIsUHIpLFByLmxlbmd0aCYmcm4ubWVzc2FnZSE9PXZvaWQgMCYmKFByPVtdLmNvbmNhdChybi5tZXNzYWdlKSk7dmFyIGJyPVByLm1hcChfZShybixkdCkpO2lmKEV0LmZpcnN0JiZici5sZW5ndGgpcmV0dXJuIG9yW3JuLmZpZWxkXT0xLHpuKGJyKTtpZighS3Qpem4oYnIpO2Vsc2V7aWYocm4ucmVxdWlyZWQmJiFUbi52YWx1ZSlyZXR1cm4gcm4ubWVzc2FnZSE9PXZvaWQgMD9icj1bXS5jb25jYXQocm4ubWVzc2FnZSkubWFwKF9lKHJuLGR0KSk6RXQuZXJyb3ImJihicj1bRXQuZXJyb3Iocm4sSyhFdC5tZXNzYWdlcy5yZXF1aXJlZCxybi5maWVsZCkpXSksem4oYnIpO3ZhciBNcj17fTtybi5kZWZhdWx0RmllbGQmJk9iamVjdC5rZXlzKFRuLnZhbHVlKS5tYXAoZnVuY3Rpb24ob2Epe01yW29hXT1ybi5kZWZhdWx0RmllbGR9KSxNcj0oMCxhLlopKCgwLGEuWikoe30sTXIpLFRuLnJ1bGUuZmllbGRzKTt2YXIgJHI9e307T2JqZWN0LmtleXMoTXIpLmZvckVhY2goZnVuY3Rpb24ob2Epe3ZhciByYT1NcltvYV0sTWE9QXJyYXkuaXNBcnJheShyYSk/cmE6W3JhXTskcltvYV09TWEubWFwKHp0LmJpbmQobnVsbCxvYSkpfSk7dmFyIEdyPW5ldyBQZSgkcik7R3IubWVzc2FnZXMoRXQubWVzc2FnZXMpLFRuLnJ1bGUub3B0aW9ucyYmKFRuLnJ1bGUub3B0aW9ucy5tZXNzYWdlcz1FdC5tZXNzYWdlcyxUbi5ydWxlLm9wdGlvbnMuZXJyb3I9RXQuZXJyb3IpLEdyLnZhbGlkYXRlKFRuLnZhbHVlLFRuLnJ1bGUub3B0aW9uc3x8RXQsZnVuY3Rpb24ob2Epe3ZhciByYT1bXTticiYmYnIubGVuZ3RoJiZyYS5wdXNoLmFwcGx5KHJhLCgwLHUuWikoYnIpKSxvYSYmb2EubGVuZ3RoJiZyYS5wdXNoLmFwcGx5KHJhLCgwLHUuWikob2EpKSx6bihyYS5sZW5ndGg/cmE6bnVsbCl9KX19dmFyIGxuO2lmKHJuLmFzeW5jVmFsaWRhdG9yKWxuPXJuLmFzeW5jVmFsaWRhdG9yKHJuLFRuLnZhbHVlLE90LFRuLnNvdXJjZSxFdCk7ZWxzZSBpZihybi52YWxpZGF0b3Ipe3RyeXtsbj1ybi52YWxpZGF0b3Iocm4sVG4udmFsdWUsT3QsVG4uc291cmNlLEV0KX1jYXRjaChwcil7dmFyIEVuLEduOyhFbj0oR249Y29uc29sZSkuZXJyb3IpPT09bnVsbHx8RW49PT12b2lkIDB8fEVuLmNhbGwoR24scHIpLEV0LnN1cHByZXNzVmFsaWRhdG9yRXJyb3J8fHNldFRpbWVvdXQoZnVuY3Rpb24oKXt0aHJvdyBwcn0sMCksT3QocHIubWVzc2FnZSl9bG49PT0hMD9PdCgpOmxuPT09ITE/T3QodHlwZW9mIHJuLm1lc3NhZ2U9PSJmdW5jdGlvbiI/cm4ubWVzc2FnZShybi5mdWxsRmllbGR8fHJuLmZpZWxkKTpybi5tZXNzYWdlfHwiIi5jb25jYXQocm4uZnVsbEZpZWxkfHxybi5maWVsZCwiIGZhaWxzIikpOmxuIGluc3RhbmNlb2YgQXJyYXk/T3QobG4pOmxuIGluc3RhbmNlb2YgRXJyb3ImJk90KGxuLm1lc3NhZ2UpfWxuJiZsbi50aGVuJiZsbi50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIE90KCl9LGZ1bmN0aW9uKHByKXtyZXR1cm4gT3QocHIpfSl9LGZ1bmN0aW9uKFRuKXtqdChUbil9LGR0KX19LHtrZXk6ImdldFR5cGUiLHZhbHVlOmZ1bmN0aW9uKHZlKXtpZih2ZS50eXBlPT09dm9pZCAwJiZ2ZS5wYXR0ZXJuIGluc3RhbmNlb2YgUmVnRXhwJiYodmUudHlwZT0icGF0dGVybiIpLHR5cGVvZiB2ZS52YWxpZGF0b3IhPSJmdW5jdGlvbiImJnZlLnR5cGUmJiFnbi5oYXNPd25Qcm9wZXJ0eSh2ZS50eXBlKSl0aHJvdyBuZXcgRXJyb3IoSygiVW5rbm93biBydWxlIHR5cGUgJXMiLHZlLnR5cGUpKTtyZXR1cm4gdmUudHlwZXx8InN0cmluZyJ9fSx7a2V5OiJnZXRWYWxpZGF0aW9uTWV0aG9kIix2YWx1ZTpmdW5jdGlvbih2ZSl7aWYodHlwZW9mIHZlLnZhbGlkYXRvcj09ImZ1bmN0aW9uIilyZXR1cm4gdmUudmFsaWRhdG9yO3ZhciBJZT1PYmplY3Qua2V5cyh2ZSkseGU9SWUuaW5kZXhPZigibWVzc2FnZSIpO3JldHVybiB4ZSE9PS0xJiZJZS5zcGxpY2UoeGUsMSksSWUubGVuZ3RoPT09MSYmSWVbMF09PT0icmVxdWlyZWQiP2duLnJlcXVpcmVkOmduW3RoaXMuZ2V0VHlwZSh2ZSldfHx2b2lkIDB9fV0pLFBlfSgpOygwLGcuWikoQm4sInJlZ2lzdGVyIixmdW5jdGlvbihnZSx2ZSl7aWYodHlwZW9mIHZlIT0iZnVuY3Rpb24iKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHJlZ2lzdGVyIGEgdmFsaWRhdG9yIGJ5IHR5cGUsIHZhbGlkYXRvciBpcyBub3QgYSBmdW5jdGlvbiIpO2duW2dlXT12ZX0pLCgwLGcuWikoQm4sIndhcm5pbmciLFopLCgwLGcuWikoQm4sIm1lc3NhZ2VzIixKKSwoMCxnLlopKEJuLCJ2YWxpZGF0b3JzIixnbik7dmFyIFZuPUJuLE5uPSInJHtuYW1lfScgaXMgbm90IGEgdmFsaWQgJHt0eXBlfSIsZnQ9e2RlZmF1bHQ6IlZhbGlkYXRpb24gZXJyb3Igb24gZmllbGQgJyR7bmFtZX0nIixyZXF1aXJlZDoiJyR7bmFtZX0nIGlzIHJlcXVpcmVkIixlbnVtOiInJHtuYW1lfScgbXVzdCBiZSBvbmUgb2YgWyR7ZW51bX1dIix3aGl0ZXNwYWNlOiInJHtuYW1lfScgY2Fubm90IGJlIGVtcHR5IixkYXRlOntmb3JtYXQ6Iicke25hbWV9JyBpcyBpbnZhbGlkIGZvciBmb3JtYXQgZGF0ZSIscGFyc2U6Iicke25hbWV9JyBjb3VsZCBub3QgYmUgcGFyc2VkIGFzIGRhdGUiLGludmFsaWQ6Iicke25hbWV9JyBpcyBpbnZhbGlkIGRhdGUifSx0eXBlczp7c3RyaW5nOk5uLG1ldGhvZDpObixhcnJheTpObixvYmplY3Q6Tm4sbnVtYmVyOk5uLGRhdGU6Tm4sYm9vbGVhbjpObixpbnRlZ2VyOk5uLGZsb2F0Ok5uLHJlZ2V4cDpObixlbWFpbDpObix1cmw6Tm4saGV4Ok5ufSxzdHJpbmc6e2xlbjoiJyR7bmFtZX0nIG11c3QgYmUgZXhhY3RseSAke2xlbn0gY2hhcmFjdGVycyIsbWluOiInJHtuYW1lfScgbXVzdCBiZSBhdCBsZWFzdCAke21pbn0gY2hhcmFjdGVycyIsbWF4OiInJHtuYW1lfScgY2Fubm90IGJlIGxvbmdlciB0aGFuICR7bWF4fSBjaGFyYWN0ZXJzIixyYW5nZToiJyR7bmFtZX0nIG11c3QgYmUgYmV0d2VlbiAke21pbn0gYW5kICR7bWF4fSBjaGFyYWN0ZXJzIn0sbnVtYmVyOntsZW46Iicke25hbWV9JyBtdXN0IGVxdWFsICR7bGVufSIsbWluOiInJHtuYW1lfScgY2Fubm90IGJlIGxlc3MgdGhhbiAke21pbn0iLG1heDoiJyR7bmFtZX0nIGNhbm5vdCBiZSBncmVhdGVyIHRoYW4gJHttYXh9IixyYW5nZToiJyR7bmFtZX0nIG11c3QgYmUgYmV0d2VlbiAke21pbn0gYW5kICR7bWF4fSJ9LGFycmF5OntsZW46Iicke25hbWV9JyBtdXN0IGJlIGV4YWN0bHkgJHtsZW59IGluIGxlbmd0aCIsbWluOiInJHtuYW1lfScgY2Fubm90IGJlIGxlc3MgdGhhbiAke21pbn0gaW4gbGVuZ3RoIixtYXg6Iicke25hbWV9JyBjYW5ub3QgYmUgZ3JlYXRlciB0aGFuICR7bWF4fSBpbiBsZW5ndGgiLHJhbmdlOiInJHtuYW1lfScgbXVzdCBiZSBiZXR3ZWVuICR7bWlufSBhbmQgJHttYXh9IGluIGxlbmd0aCJ9LHBhdHRlcm46e21pc21hdGNoOiInJHtuYW1lfScgZG9lcyBub3QgbWF0Y2ggcGF0dGVybiAke3BhdHRlcm59In19LGV0PWUoODg4MCksSnQ9Vm47ZnVuY3Rpb24gd3QoUGUsZ2Upe3JldHVybiBQZS5yZXBsYWNlKC9cXD9cJFx7XHcrXH0vZyxmdW5jdGlvbih2ZSl7aWYodmUuc3RhcnRzV2l0aCgiXFwiKSlyZXR1cm4gdmUuc2xpY2UoMSk7dmFyIEllPXZlLnNsaWNlKDIsLTEpO3JldHVybiBnZVtJZV19KX12YXIgX3Q9IkNPREVfTE9HSUNfRVJST1IiO2Z1bmN0aW9uIHhuKFBlLGdlLHZlLEllLHhlKXtyZXR1cm4gWW4uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIFluKCl7cmV0dXJuIFluPSgwLHMuWikoKDAsaS5aKSgpLm1hcmsoZnVuY3Rpb24gUGUoZ2UsdmUsSWUseGUsYXQpe3ZhciBkdCxFdCxIdCxqdCxGdCxwbixjbixvcixUbjtyZXR1cm4oMCxpLlopKCkud3JhcChmdW5jdGlvbihybil7Zm9yKDs7KXN3aXRjaChybi5wcmV2PXJuLm5leHQpe2Nhc2UgMDpyZXR1cm4gZHQ9KDAsYS5aKSh7fSxJZSksZGVsZXRlIGR0LnJ1bGVJbmRleCxKdC53YXJuaW5nPWZ1bmN0aW9uKCl7fSxkdC52YWxpZGF0b3ImJihFdD1kdC52YWxpZGF0b3IsZHQudmFsaWRhdG9yPWZ1bmN0aW9uKCl7dHJ5e3JldHVybiBFdC5hcHBseSh2b2lkIDAsYXJndW1lbnRzKX1jYXRjaChLdCl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoS3QpLFByb21pc2UucmVqZWN0KF90KX19KSxIdD1udWxsLGR0JiZkdC50eXBlPT09ImFycmF5IiYmZHQuZGVmYXVsdEZpZWxkJiYoSHQ9ZHQuZGVmYXVsdEZpZWxkLGRlbGV0ZSBkdC5kZWZhdWx0RmllbGQpLGp0PW5ldyBKdCgoMCxnLlopKHt9LGdlLFtkdF0pKSxGdD0oMCxldC5UKShmdCx4ZS52YWxpZGF0ZU1lc3NhZ2VzKSxqdC5tZXNzYWdlcyhGdCkscG49W10scm4ucHJldj0xMCxybi5uZXh0PTEzLFByb21pc2UucmVzb2x2ZShqdC52YWxpZGF0ZSgoMCxnLlopKHt9LGdlLHZlKSwoMCxhLlopKHt9LHhlKSkpO2Nhc2UgMTM6cm4ubmV4dD0xODticmVhaztjYXNlIDE1OnJuLnByZXY9MTUscm4udDA9cm4uY2F0Y2goMTApLHJuLnQwLmVycm9ycyYmKHBuPXJuLnQwLmVycm9ycy5tYXAoZnVuY3Rpb24oS3QsenQpe3ZhciBPdD1LdC5tZXNzYWdlLGxuPU90PT09X3Q/RnQuZGVmYXVsdDpPdDtyZXR1cm4gci5pc1ZhbGlkRWxlbWVudChsbik/ci5jbG9uZUVsZW1lbnQobG4se2tleToiZXJyb3JfIi5jb25jYXQoenQpfSk6bG59KSk7Y2FzZSAxODppZighKCFwbi5sZW5ndGgmJkh0KSl7cm4ubmV4dD0yMzticmVha31yZXR1cm4gcm4ubmV4dD0yMSxQcm9taXNlLmFsbCh2ZS5tYXAoZnVuY3Rpb24oS3QsenQpe3JldHVybiB4bigiIi5jb25jYXQoZ2UsIi4iKS5jb25jYXQoenQpLEt0LEh0LHhlLGF0KX0pKTtjYXNlIDIxOnJldHVybiBjbj1ybi5zZW50LHJuLmFicnVwdCgicmV0dXJuIixjbi5yZWR1Y2UoZnVuY3Rpb24oS3QsenQpe3JldHVybltdLmNvbmNhdCgoMCx1LlopKEt0KSwoMCx1LlopKHp0KSl9LFtdKSk7Y2FzZSAyMzpyZXR1cm4gb3I9KDAsYS5aKSgoMCxhLlopKHt9LEllKSx7fSx7bmFtZTpnZSxlbnVtOihJZS5lbnVtfHxbXSkuam9pbigiLCAiKX0sYXQpLFRuPXBuLm1hcChmdW5jdGlvbihLdCl7cmV0dXJuIHR5cGVvZiBLdD09InN0cmluZyI/d3QoS3Qsb3IpOkt0fSkscm4uYWJydXB0KCJyZXR1cm4iLFRuKTtjYXNlIDI2OmNhc2UiZW5kIjpyZXR1cm4gcm4uc3RvcCgpfX0sUGUsbnVsbCxbWzEwLDE1XV0pfSkpLFluLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBQbihQZSxnZSx2ZSxJZSx4ZSxhdCl7dmFyIGR0PVBlLmpvaW4oIi4iKSxFdD12ZS5tYXAoZnVuY3Rpb24oRnQscG4pe3ZhciBjbj1GdC52YWxpZGF0b3Isb3I9KDAsYS5aKSgoMCxhLlopKHt9LEZ0KSx7fSx7cnVsZUluZGV4OnBufSk7cmV0dXJuIGNuJiYob3IudmFsaWRhdG9yPWZ1bmN0aW9uKFRuLHpuLHJuKXt2YXIgS3Q9ITEsenQ9ZnVuY3Rpb24oKXtmb3IodmFyIEVuPWFyZ3VtZW50cy5sZW5ndGgsR249bmV3IEFycmF5KEVuKSxwcj0wO3ByPEVuO3ByKyspR25bcHJdPWFyZ3VtZW50c1twcl07UHJvbWlzZS5yZXNvbHZlKCkudGhlbihmdW5jdGlvbigpeygwLHguWlApKCFLdCwiWW91ciB2YWxpZGF0b3IgZnVuY3Rpb24gaGFzIGFscmVhZHkgcmV0dXJuIGEgcHJvbWlzZS4gYGNhbGxiYWNrYCB3aWxsIGJlIGlnbm9yZWQuIiksS3R8fHJuLmFwcGx5KHZvaWQgMCxHbil9KX0sT3Q9Y24oVG4sem4senQpO0t0PU90JiZ0eXBlb2YgT3QudGhlbj09ImZ1bmN0aW9uIiYmdHlwZW9mIE90LmNhdGNoPT0iZnVuY3Rpb24iLCgwLHguWlApKEt0LCJgY2FsbGJhY2tgIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSByZXR1cm4gYSBwcm9taXNlIGluc3RlYWQuIiksS3QmJk90LnRoZW4oZnVuY3Rpb24oKXtybigpfSkuY2F0Y2goZnVuY3Rpb24obG4pe3JuKGxufHwiICIpfSl9KSxvcn0pLnNvcnQoZnVuY3Rpb24oRnQscG4pe3ZhciBjbj1GdC53YXJuaW5nT25seSxvcj1GdC5ydWxlSW5kZXgsVG49cG4ud2FybmluZ09ubHksem49cG4ucnVsZUluZGV4O3JldHVybiEhY249PSEhVG4/b3Item46Y24/MTotMX0pLEh0O2lmKHhlPT09ITApSHQ9bmV3IFByb21pc2UoZnVuY3Rpb24oKXt2YXIgRnQ9KDAscy5aKSgoMCxpLlopKCkubWFyayhmdW5jdGlvbiBwbihjbixvcil7dmFyIFRuLHpuLHJuO3JldHVybigwLGkuWikoKS53cmFwKGZ1bmN0aW9uKHp0KXtmb3IoOzspc3dpdGNoKHp0LnByZXY9enQubmV4dCl7Y2FzZSAwOlRuPTA7Y2FzZSAxOmlmKCEoVG48RXQubGVuZ3RoKSl7enQubmV4dD0xMjticmVha31yZXR1cm4gem49RXRbVG5dLHp0Lm5leHQ9NSx4bihkdCxnZSx6bixJZSxhdCk7Y2FzZSA1OmlmKHJuPXp0LnNlbnQsIXJuLmxlbmd0aCl7enQubmV4dD05O2JyZWFrfXJldHVybiBvcihbe2Vycm9yczpybixydWxlOnpufV0pLHp0LmFicnVwdCgicmV0dXJuIik7Y2FzZSA5OlRuKz0xLHp0Lm5leHQ9MTticmVhaztjYXNlIDEyOmNuKFtdKTtjYXNlIDEzOmNhc2UiZW5kIjpyZXR1cm4genQuc3RvcCgpfX0scG4pfSkpO3JldHVybiBmdW5jdGlvbihwbixjbil7cmV0dXJuIEZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCkpO2Vsc2V7dmFyIGp0PUV0Lm1hcChmdW5jdGlvbihGdCl7cmV0dXJuIHhuKGR0LGdlLEZ0LEllLGF0KS50aGVuKGZ1bmN0aW9uKHBuKXtyZXR1cm57ZXJyb3JzOnBuLHJ1bGU6RnR9fSl9KTtIdD0oeGU/UW4oanQpOkxuKGp0KSkudGhlbihmdW5jdGlvbihGdCl7cmV0dXJuIFByb21pc2UucmVqZWN0KEZ0KX0pfXJldHVybiBIdC5jYXRjaChmdW5jdGlvbihGdCl7cmV0dXJuIEZ0fSksSHR9ZnVuY3Rpb24gTG4oUGUpe3JldHVybiBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gZXIoKXtyZXR1cm4gZXI9KDAscy5aKSgoMCxpLlopKCkubWFyayhmdW5jdGlvbiBQZShnZSl7cmV0dXJuKDAsaS5aKSgpLndyYXAoZnVuY3Rpb24oSWUpe2Zvcig7Oylzd2l0Y2goSWUucHJldj1JZS5uZXh0KXtjYXNlIDA6cmV0dXJuIEllLmFicnVwdCgicmV0dXJuIixQcm9taXNlLmFsbChnZSkudGhlbihmdW5jdGlvbih4ZSl7dmFyIGF0LGR0PShhdD1bXSkuY29uY2F0LmFwcGx5KGF0LCgwLHUuWikoeGUpKTtyZXR1cm4gZHR9KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gSWUuc3RvcCgpfX0sUGUpfSkpLGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBRbihQZSl7cmV0dXJuIHVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiB1cigpe3JldHVybiB1cj0oMCxzLlopKCgwLGkuWikoKS5tYXJrKGZ1bmN0aW9uIFBlKGdlKXt2YXIgdmU7cmV0dXJuKDAsaS5aKSgpLndyYXAoZnVuY3Rpb24oeGUpe2Zvcig7Oylzd2l0Y2goeGUucHJldj14ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIHZlPTAseGUuYWJydXB0KCJyZXR1cm4iLG5ldyBQcm9taXNlKGZ1bmN0aW9uKGF0KXtnZS5mb3JFYWNoKGZ1bmN0aW9uKGR0KXtkdC50aGVuKGZ1bmN0aW9uKEV0KXtFdC5lcnJvcnMubGVuZ3RoJiZhdChbRXRdKSx2ZSs9MSx2ZT09PWdlLmxlbmd0aCYmYXQoW10pfSl9KX0pKTtjYXNlIDI6Y2FzZSJlbmQiOnJldHVybiB4ZS5zdG9wKCl9fSxQZSl9KSksdXIuYXBwbHkodGhpcyxhcmd1bWVudHMpfXZhciBpcj1lKDg4MzA2KTtmdW5jdGlvbiB2bihQZSl7cmV0dXJuIHooUGUpfWZ1bmN0aW9uIGNyKFBlLGdlKXt2YXIgdmU9e307cmV0dXJuIGdlLmZvckVhY2goZnVuY3Rpb24oSWUpe3ZhciB4ZT0oMCxpci5aKShQZSxJZSk7dmU9KDAsZXQuWikodmUsSWUseGUpfSksdmV9ZnVuY3Rpb24gV24oUGUsZ2Upe3ZhciB2ZT1hcmd1bWVudHMubGVuZ3RoPjImJmFyZ3VtZW50c1syXSE9PXZvaWQgMD9hcmd1bWVudHNbMl06ITE7cmV0dXJuIFBlJiZQZS5zb21lKGZ1bmN0aW9uKEllKXtyZXR1cm4gd24oZ2UsSWUsdmUpfSl9ZnVuY3Rpb24gd24oUGUsZ2Upe3ZhciB2ZT1hcmd1bWVudHMubGVuZ3RoPjImJmFyZ3VtZW50c1syXSE9PXZvaWQgMD9hcmd1bWVudHNbMl06ITE7cmV0dXJuIVBlfHwhZ2V8fCF2ZSYmUGUubGVuZ3RoIT09Z2UubGVuZ3RoPyExOmdlLmV2ZXJ5KGZ1bmN0aW9uKEllLHhlKXtyZXR1cm4gUGVbeGVdPT09SWV9KX1mdW5jdGlvbiBDdChQZSxnZSl7aWYoUGU9PT1nZSlyZXR1cm4hMDtpZighUGUmJmdlfHxQZSYmIWdlfHwhUGV8fCFnZXx8KDAsWS5aKShQZSkhPT0ib2JqZWN0Inx8KDAsWS5aKShnZSkhPT0ib2JqZWN0IilyZXR1cm4hMTt2YXIgdmU9T2JqZWN0LmtleXMoUGUpLEllPU9iamVjdC5rZXlzKGdlKSx4ZT1uZXcgU2V0KFtdLmNvbmNhdCh2ZSxJZSkpO3JldHVybigwLHUuWikoeGUpLmV2ZXJ5KGZ1bmN0aW9uKGF0KXt2YXIgZHQ9UGVbYXRdLEV0PWdlW2F0XTtyZXR1cm4gdHlwZW9mIGR0PT0iZnVuY3Rpb24iJiZ0eXBlb2YgRXQ9PSJmdW5jdGlvbiI/ITA6ZHQ9PT1FdH0pfWZ1bmN0aW9uIFp0KFBlKXt2YXIgZ2U9YXJndW1lbnRzLmxlbmd0aDw9MT92b2lkIDA6YXJndW1lbnRzWzFdO3JldHVybiBnZSYmZ2UudGFyZ2V0JiYoMCxZLlopKGdlLnRhcmdldCk9PT0ib2JqZWN0IiYmUGUgaW4gZ2UudGFyZ2V0P2dlLnRhcmdldFtQZV06Z2V9ZnVuY3Rpb24gYW4oUGUsZ2UsdmUpe3ZhciBJZT1QZS5sZW5ndGg7aWYoZ2U8MHx8Z2U+PUllfHx2ZTwwfHx2ZT49SWUpcmV0dXJuIFBlO3ZhciB4ZT1QZVtnZV0sYXQ9Z2UtdmU7cmV0dXJuIGF0PjA/W10uY29uY2F0KCgwLHUuWikoUGUuc2xpY2UoMCx2ZSkpLFt4ZV0sKDAsdS5aKShQZS5zbGljZSh2ZSxnZSkpLCgwLHUuWikoUGUuc2xpY2UoZ2UrMSxJZSkpKTphdDwwP1tdLmNvbmNhdCgoMCx1LlopKFBlLnNsaWNlKDAsZ2UpKSwoMCx1LlopKFBlLnNsaWNlKGdlKzEsdmUrMSkpLFt4ZV0sKDAsdS5aKShQZS5zbGljZSh2ZSsxLEllKSkpOlBlfXZhciBEdD1bIm5hbWUiXSxrdD1bXTtmdW5jdGlvbiB0bihQZSxnZSx2ZSxJZSx4ZSxhdCl7cmV0dXJuIHR5cGVvZiBQZT09ImZ1bmN0aW9uIj9QZShnZSx2ZSwic291cmNlImluIGF0P3tzb3VyY2U6YXQuc291cmNlfTp7fSk6SWUhPT14ZX12YXIgbW49ZnVuY3Rpb24oUGUpeygwLG0uWikodmUsUGUpO3ZhciBnZT0oMCxDLlopKHZlKTtmdW5jdGlvbiB2ZShJZSl7dmFyIHhlO2lmKCgwLGMuWikodGhpcyx2ZSkseGU9Z2UuY2FsbCh0aGlzLEllKSwoMCxnLlopKCgwLGQuWikoeGUpLCJzdGF0ZSIse3Jlc2V0Q291bnQ6MH0pLCgwLGcuWikoKDAsZC5aKSh4ZSksImNhbmNlbFJlZ2lzdGVyRnVuYyIsbnVsbCksKDAsZy5aKSgoMCxkLlopKHhlKSwibW91bnRlZCIsITEpLCgwLGcuWikoKDAsZC5aKSh4ZSksInRvdWNoZWQiLCExKSwoMCxnLlopKCgwLGQuWikoeGUpLCJkaXJ0eSIsITEpLCgwLGcuWikoKDAsZC5aKSh4ZSksInZhbGlkYXRlUHJvbWlzZSIsdm9pZCAwKSwoMCxnLlopKCgwLGQuWikoeGUpLCJwcmV2VmFsaWRhdGluZyIsdm9pZCAwKSwoMCxnLlopKCgwLGQuWikoeGUpLCJlcnJvcnMiLGt0KSwoMCxnLlopKCgwLGQuWikoeGUpLCJ3YXJuaW5ncyIsa3QpLCgwLGcuWikoKDAsZC5aKSh4ZSksImNhbmNlbFJlZ2lzdGVyIixmdW5jdGlvbigpe3ZhciBIdD14ZS5wcm9wcyxqdD1IdC5wcmVzZXJ2ZSxGdD1IdC5pc0xpc3RGaWVsZCxwbj1IdC5uYW1lO3hlLmNhbmNlbFJlZ2lzdGVyRnVuYyYmeGUuY2FuY2VsUmVnaXN0ZXJGdW5jKEZ0LGp0LHZuKHBuKSkseGUuY2FuY2VsUmVnaXN0ZXJGdW5jPW51bGx9KSwoMCxnLlopKCgwLGQuWikoeGUpLCJnZXROYW1lUGF0aCIsZnVuY3Rpb24oKXt2YXIgSHQ9eGUucHJvcHMsanQ9SHQubmFtZSxGdD1IdC5maWVsZENvbnRleHQscG49RnQucHJlZml4TmFtZSxjbj1wbj09PXZvaWQgMD9bXTpwbjtyZXR1cm4ganQhPT12b2lkIDA/W10uY29uY2F0KCgwLHUuWikoY24pLCgwLHUuWikoanQpKTpbXX0pLCgwLGcuWikoKDAsZC5aKSh4ZSksImdldFJ1bGVzIixmdW5jdGlvbigpe3ZhciBIdD14ZS5wcm9wcyxqdD1IdC5ydWxlcyxGdD1qdD09PXZvaWQgMD9bXTpqdCxwbj1IdC5maWVsZENvbnRleHQ7cmV0dXJuIEZ0Lm1hcChmdW5jdGlvbihjbil7cmV0dXJuIHR5cGVvZiBjbj09ImZ1bmN0aW9uIj9jbihwbik6Y259KX0pLCgwLGcuWikoKDAsZC5aKSh4ZSksInJlZnJlc2giLGZ1bmN0aW9uKCl7eGUubW91bnRlZCYmeGUuc2V0U3RhdGUoZnVuY3Rpb24oSHQpe3ZhciBqdD1IdC5yZXNldENvdW50O3JldHVybntyZXNldENvdW50Omp0KzF9fSl9KSwoMCxnLlopKCgwLGQuWikoeGUpLCJtZXRhQ2FjaGUiLG51bGwpLCgwLGcuWikoKDAsZC5aKSh4ZSksInRyaWdnZXJNZXRhRXZlbnQiLGZ1bmN0aW9uKEh0KXt2YXIganQ9eGUucHJvcHMub25NZXRhQ2hhbmdlO2lmKGp0KXt2YXIgRnQ9KDAsYS5aKSgoMCxhLlopKHt9LHhlLmdldE1ldGEoKSkse30se2Rlc3Ryb3k6SHR9KTsoMCxFLlopKHhlLm1ldGFDYWNoZSxGdCl8fGp0KEZ0KSx4ZS5tZXRhQ2FjaGU9RnR9ZWxzZSB4ZS5tZXRhQ2FjaGU9bnVsbH0pLCgwLGcuWikoKDAsZC5aKSh4ZSksIm9uU3RvcmVDaGFuZ2UiLGZ1bmN0aW9uKEh0LGp0LEZ0KXt2YXIgcG49eGUucHJvcHMsY249cG4uc2hvdWxkVXBkYXRlLG9yPXBuLmRlcGVuZGVuY2llcyxUbj1vcj09PXZvaWQgMD9bXTpvcix6bj1wbi5vblJlc2V0LHJuPUZ0LnN0b3JlLEt0PXhlLmdldE5hbWVQYXRoKCksenQ9eGUuZ2V0VmFsdWUoSHQpLE90PXhlLmdldFZhbHVlKHJuKSxsbj1qdCYmV24oanQsS3QpO3N3aXRjaChGdC50eXBlPT09InZhbHVlVXBkYXRlIiYmRnQuc291cmNlPT09ImV4dGVybmFsIiYmISgwLEUuWikoenQsT3QpJiYoeGUudG91Y2hlZD0hMCx4ZS5kaXJ0eT0hMCx4ZS52YWxpZGF0ZVByb21pc2U9bnVsbCx4ZS5lcnJvcnM9a3QseGUud2FybmluZ3M9a3QseGUudHJpZ2dlck1ldGFFdmVudCgpKSxGdC50eXBlKXtjYXNlInJlc2V0IjppZighanR8fGxuKXt4ZS50b3VjaGVkPSExLHhlLmRpcnR5PSExLHhlLnZhbGlkYXRlUHJvbWlzZT12b2lkIDAseGUuZXJyb3JzPWt0LHhlLndhcm5pbmdzPWt0LHhlLnRyaWdnZXJNZXRhRXZlbnQoKSx6bj09bnVsbHx8em4oKSx4ZS5yZWZyZXNoKCk7cmV0dXJufWJyZWFrO2Nhc2UicmVtb3ZlIjp7aWYoY24mJnRuKGNuLEh0LHJuLHp0LE90LEZ0KSl7eGUucmVSZW5kZXIoKTtyZXR1cm59YnJlYWt9Y2FzZSJzZXRGaWVsZCI6e3ZhciBFbj1GdC5kYXRhO2lmKGxuKXsidG91Y2hlZCJpbiBFbiYmKHhlLnRvdWNoZWQ9RW4udG91Y2hlZCksInZhbGlkYXRpbmciaW4gRW4mJiEoIm9yaWdpblJDRmllbGQiaW4gRW4pJiYoeGUudmFsaWRhdGVQcm9taXNlPUVuLnZhbGlkYXRpbmc/UHJvbWlzZS5yZXNvbHZlKFtdKTpudWxsKSwiZXJyb3JzImluIEVuJiYoeGUuZXJyb3JzPUVuLmVycm9yc3x8a3QpLCJ3YXJuaW5ncyJpbiBFbiYmKHhlLndhcm5pbmdzPUVuLndhcm5pbmdzfHxrdCkseGUuZGlydHk9ITAseGUudHJpZ2dlck1ldGFFdmVudCgpLHhlLnJlUmVuZGVyKCk7cmV0dXJufWVsc2UgaWYoInZhbHVlImluIEVuJiZXbihqdCxLdCwhMCkpe3hlLnJlUmVuZGVyKCk7cmV0dXJufWlmKGNuJiYhS3QubGVuZ3RoJiZ0bihjbixIdCxybix6dCxPdCxGdCkpe3hlLnJlUmVuZGVyKCk7cmV0dXJufWJyZWFrfWNhc2UiZGVwZW5kZW5jaWVzVXBkYXRlIjp7dmFyIEduPVRuLm1hcCh2bik7aWYoR24uc29tZShmdW5jdGlvbihwcil7cmV0dXJuIFduKEZ0LnJlbGF0ZWRGaWVsZHMscHIpfSkpe3hlLnJlUmVuZGVyKCk7cmV0dXJufWJyZWFrfWRlZmF1bHQ6aWYobG58fCghVG4ubGVuZ3RofHxLdC5sZW5ndGh8fGNuKSYmdG4oY24sSHQscm4senQsT3QsRnQpKXt4ZS5yZVJlbmRlcigpO3JldHVybn1icmVha31jbj09PSEwJiZ4ZS5yZVJlbmRlcigpfSksKDAsZy5aKSgoMCxkLlopKHhlKSwidmFsaWRhdGVSdWxlcyIsZnVuY3Rpb24oSHQpe3ZhciBqdD14ZS5nZXROYW1lUGF0aCgpLEZ0PXhlLmdldFZhbHVlKCkscG49SHR8fHt9LGNuPXBuLnRyaWdnZXJOYW1lLG9yPXBuLnZhbGlkYXRlT25seSxUbj1vcj09PXZvaWQgMD8hMTpvcix6bj1Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgwLHMuWikoKDAsaS5aKSgpLm1hcmsoZnVuY3Rpb24gcm4oKXt2YXIgS3QsenQsT3QsbG4sRW4sR24scHI7cmV0dXJuKDAsaS5aKSgpLndyYXAoZnVuY3Rpb24oYnIpe2Zvcig7Oylzd2l0Y2goYnIucHJldj1ici5uZXh0KXtjYXNlIDA6aWYoeGUubW91bnRlZCl7YnIubmV4dD0yO2JyZWFrfXJldHVybiBici5hYnJ1cHQoInJldHVybiIsW10pO2Nhc2UgMjppZihLdD14ZS5wcm9wcyx6dD1LdC52YWxpZGF0ZUZpcnN0LE90PXp0PT09dm9pZCAwPyExOnp0LGxuPUt0Lm1lc3NhZ2VWYXJpYWJsZXMsRW49S3QudmFsaWRhdGVEZWJvdW5jZSxHbj14ZS5nZXRSdWxlcygpLGNuJiYoR249R24uZmlsdGVyKGZ1bmN0aW9uKE1yKXtyZXR1cm4gTXJ9KS5maWx0ZXIoZnVuY3Rpb24oTXIpe3ZhciAkcj1Nci52YWxpZGF0ZVRyaWdnZXI7aWYoISRyKXJldHVybiEwO3ZhciBHcj16KCRyKTtyZXR1cm4gR3IuaW5jbHVkZXMoY24pfSkpLCEoRW4mJmNuKSl7YnIubmV4dD0xMDticmVha31yZXR1cm4gYnIubmV4dD04LG5ldyBQcm9taXNlKGZ1bmN0aW9uKE1yKXtzZXRUaW1lb3V0KE1yLEVuKX0pO2Nhc2UgODppZih4ZS52YWxpZGF0ZVByb21pc2U9PT16bil7YnIubmV4dD0xMDticmVha31yZXR1cm4gYnIuYWJydXB0KCJyZXR1cm4iLFtdKTtjYXNlIDEwOnJldHVybiBwcj1QbihqdCxGdCxHbixIdCxPdCxsbikscHIuY2F0Y2goZnVuY3Rpb24oTXIpe3JldHVybiBNcn0pLnRoZW4oZnVuY3Rpb24oKXt2YXIgTXI9YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT12b2lkIDA/YXJndW1lbnRzWzBdOmt0O2lmKHhlLnZhbGlkYXRlUHJvbWlzZT09PXpuKXt2YXIgJHI7eGUudmFsaWRhdGVQcm9taXNlPW51bGw7dmFyIEdyPVtdLG9hPVtdOygkcj1Nci5mb3JFYWNoKT09PW51bGx8fCRyPT09dm9pZCAwfHwkci5jYWxsKE1yLGZ1bmN0aW9uKHJhKXt2YXIgTWE9cmEucnVsZS53YXJuaW5nT25seSxmYT1yYS5lcnJvcnMsaGE9ZmE9PT12b2lkIDA/a3Q6ZmE7TWE/b2EucHVzaC5hcHBseShvYSwoMCx1LlopKGhhKSk6R3IucHVzaC5hcHBseShHciwoMCx1LlopKGhhKSl9KSx4ZS5lcnJvcnM9R3IseGUud2FybmluZ3M9b2EseGUudHJpZ2dlck1ldGFFdmVudCgpLHhlLnJlUmVuZGVyKCl9fSksYnIuYWJydXB0KCJyZXR1cm4iLHByKTtjYXNlIDEzOmNhc2UiZW5kIjpyZXR1cm4gYnIuc3RvcCgpfX0scm4pfSkpKTtyZXR1cm4gVG58fCh4ZS52YWxpZGF0ZVByb21pc2U9em4seGUuZGlydHk9ITAseGUuZXJyb3JzPWt0LHhlLndhcm5pbmdzPWt0LHhlLnRyaWdnZXJNZXRhRXZlbnQoKSx4ZS5yZVJlbmRlcigpKSx6bn0pLCgwLGcuWikoKDAsZC5aKSh4ZSksImlzRmllbGRWYWxpZGF0aW5nIixmdW5jdGlvbigpe3JldHVybiEheGUudmFsaWRhdGVQcm9taXNlfSksKDAsZy5aKSgoMCxkLlopKHhlKSwiaXNGaWVsZFRvdWNoZWQiLGZ1bmN0aW9uKCl7cmV0dXJuIHhlLnRvdWNoZWR9KSwoMCxnLlopKCgwLGQuWikoeGUpLCJpc0ZpZWxkRGlydHkiLGZ1bmN0aW9uKCl7aWYoeGUuZGlydHl8fHhlLnByb3BzLmluaXRpYWxWYWx1ZSE9PXZvaWQgMClyZXR1cm4hMDt2YXIgSHQ9eGUucHJvcHMuZmllbGRDb250ZXh0LGp0PUh0LmdldEludGVybmFsSG9va3MoTyksRnQ9anQuZ2V0SW5pdGlhbFZhbHVlO3JldHVybiBGdCh4ZS5nZXROYW1lUGF0aCgpKSE9PXZvaWQgMH0pLCgwLGcuWikoKDAsZC5aKSh4ZSksImdldEVycm9ycyIsZnVuY3Rpb24oKXtyZXR1cm4geGUuZXJyb3JzfSksKDAsZy5aKSgoMCxkLlopKHhlKSwiZ2V0V2FybmluZ3MiLGZ1bmN0aW9uKCl7cmV0dXJuIHhlLndhcm5pbmdzfSksKDAsZy5aKSgoMCxkLlopKHhlKSwiaXNMaXN0RmllbGQiLGZ1bmN0aW9uKCl7cmV0dXJuIHhlLnByb3BzLmlzTGlzdEZpZWxkfSksKDAsZy5aKSgoMCxkLlopKHhlKSwiaXNMaXN0IixmdW5jdGlvbigpe3JldHVybiB4ZS5wcm9wcy5pc0xpc3R9KSwoMCxnLlopKCgwLGQuWikoeGUpLCJpc1ByZXNlcnZlIixmdW5jdGlvbigpe3JldHVybiB4ZS5wcm9wcy5wcmVzZXJ2ZX0pLCgwLGcuWikoKDAsZC5aKSh4ZSksImdldE1ldGEiLGZ1bmN0aW9uKCl7eGUucHJldlZhbGlkYXRpbmc9eGUuaXNGaWVsZFZhbGlkYXRpbmcoKTt2YXIgSHQ9e3RvdWNoZWQ6eGUuaXNGaWVsZFRvdWNoZWQoKSx2YWxpZGF0aW5nOnhlLnByZXZWYWxpZGF0aW5nLGVycm9yczp4ZS5lcnJvcnMsd2FybmluZ3M6eGUud2FybmluZ3MsbmFtZTp4ZS5nZXROYW1lUGF0aCgpLHZhbGlkYXRlZDp4ZS52YWxpZGF0ZVByb21pc2U9PT1udWxsfTtyZXR1cm4gSHR9KSwoMCxnLlopKCgwLGQuWikoeGUpLCJnZXRPbmx5Q2hpbGQiLGZ1bmN0aW9uKEh0KXtpZih0eXBlb2YgSHQ9PSJmdW5jdGlvbiIpe3ZhciBqdD14ZS5nZXRNZXRhKCk7cmV0dXJuKDAsYS5aKSgoMCxhLlopKHt9LHhlLmdldE9ubHlDaGlsZChIdCh4ZS5nZXRDb250cm9sbGVkKCksanQseGUucHJvcHMuZmllbGRDb250ZXh0KSkpLHt9LHtpc0Z1bmN0aW9uOiEwfSl9dmFyIEZ0PSgwLHcuWikoSHQpO3JldHVybiBGdC5sZW5ndGghPT0xfHwhci5pc1ZhbGlkRWxlbWVudChGdFswXSk/e2NoaWxkOkZ0LGlzRnVuY3Rpb246ITF9OntjaGlsZDpGdFswXSxpc0Z1bmN0aW9uOiExfX0pLCgwLGcuWikoKDAsZC5aKSh4ZSksImdldFZhbHVlIixmdW5jdGlvbihIdCl7dmFyIGp0PXhlLnByb3BzLmZpZWxkQ29udGV4dC5nZXRGaWVsZHNWYWx1ZSxGdD14ZS5nZXROYW1lUGF0aCgpO3JldHVybigwLGlyLlopKEh0fHxqdCghMCksRnQpfSksKDAsZy5aKSgoMCxkLlopKHhlKSwiZ2V0Q29udHJvbGxlZCIsZnVuY3Rpb24oKXt2YXIgSHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT12b2lkIDA/YXJndW1lbnRzWzBdOnt9LGp0PXhlLnByb3BzLEZ0PWp0Lm5hbWUscG49anQudHJpZ2dlcixjbj1qdC52YWxpZGF0ZVRyaWdnZXIsb3I9anQuZ2V0VmFsdWVGcm9tRXZlbnQsVG49anQubm9ybWFsaXplLHpuPWp0LnZhbHVlUHJvcE5hbWUscm49anQuZ2V0VmFsdWVQcm9wcyxLdD1qdC5maWVsZENvbnRleHQsenQ9Y24hPT12b2lkIDA/Y246S3QudmFsaWRhdGVUcmlnZ2VyLE90PXhlLmdldE5hbWVQYXRoKCksbG49S3QuZ2V0SW50ZXJuYWxIb29rcyxFbj1LdC5nZXRGaWVsZHNWYWx1ZSxHbj1sbihPKSxwcj1Hbi5kaXNwYXRjaCxQcj14ZS5nZXRWYWx1ZSgpLGJyPXJufHxmdW5jdGlvbihyYSl7cmV0dXJuKDAsZy5aKSh7fSx6bixyYSl9LE1yPUh0W3BuXSwkcj1GdCE9PXZvaWQgMD9icihQcik6e30sR3I9KDAsYS5aKSgoMCxhLlopKHt9LEh0KSwkcik7R3JbcG5dPWZ1bmN0aW9uKCl7eGUudG91Y2hlZD0hMCx4ZS5kaXJ0eT0hMCx4ZS50cmlnZ2VyTWV0YUV2ZW50KCk7Zm9yKHZhciByYSxNYT1hcmd1bWVudHMubGVuZ3RoLGZhPW5ldyBBcnJheShNYSksaGE9MDtoYTxNYTtoYSsrKWZhW2hhXT1hcmd1bWVudHNbaGFdO29yP3JhPW9yLmFwcGx5KHZvaWQgMCxmYSk6cmE9WnQuYXBwbHkodm9pZCAwLFt6bl0uY29uY2F0KGZhKSksVG4mJihyYT1UbihyYSxQcixFbighMCkpKSxyYSE9PVByJiZwcih7dHlwZToidXBkYXRlVmFsdWUiLG5hbWVQYXRoOk90LHZhbHVlOnJhfSksTXImJk1yLmFwcGx5KHZvaWQgMCxmYSl9O3ZhciBvYT16KHp0fHxbXSk7cmV0dXJuIG9hLmZvckVhY2goZnVuY3Rpb24ocmEpe3ZhciBNYT1HcltyYV07R3JbcmFdPWZ1bmN0aW9uKCl7TWEmJk1hLmFwcGx5KHZvaWQgMCxhcmd1bWVudHMpO3ZhciBmYT14ZS5wcm9wcy5ydWxlcztmYSYmZmEubGVuZ3RoJiZwcih7dHlwZToidmFsaWRhdGVGaWVsZCIsbmFtZVBhdGg6T3QsdHJpZ2dlck5hbWU6cmF9KX19KSxHcn0pLEllLmZpZWxkQ29udGV4dCl7dmFyIGF0PUllLmZpZWxkQ29udGV4dC5nZXRJbnRlcm5hbEhvb2tzLGR0PWF0KE8pLEV0PWR0LmluaXRFbnRpdHlWYWx1ZTtFdCgoMCxkLlopKHhlKSl9cmV0dXJuIHhlfXJldHVybigwLGguWikodmUsW3trZXk6ImNvbXBvbmVudERpZE1vdW50Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB4ZT10aGlzLnByb3BzLGF0PXhlLnNob3VsZFVwZGF0ZSxkdD14ZS5maWVsZENvbnRleHQ7aWYodGhpcy5tb3VudGVkPSEwLGR0KXt2YXIgRXQ9ZHQuZ2V0SW50ZXJuYWxIb29rcyxIdD1FdChPKSxqdD1IdC5yZWdpc3RlckZpZWxkO3RoaXMuY2FuY2VsUmVnaXN0ZXJGdW5jPWp0KHRoaXMpfWF0PT09ITAmJnRoaXMucmVSZW5kZXIoKX19LHtrZXk6ImNvbXBvbmVudFdpbGxVbm1vdW50Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuY2FuY2VsUmVnaXN0ZXIoKSx0aGlzLnRyaWdnZXJNZXRhRXZlbnQoITApLHRoaXMubW91bnRlZD0hMX19LHtrZXk6InJlUmVuZGVyIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMubW91bnRlZCYmdGhpcy5mb3JjZVVwZGF0ZSgpfX0se2tleToicmVuZGVyIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB4ZT10aGlzLnN0YXRlLnJlc2V0Q291bnQsYXQ9dGhpcy5wcm9wcy5jaGlsZHJlbixkdD10aGlzLmdldE9ubHlDaGlsZChhdCksRXQ9ZHQuY2hpbGQsSHQ9ZHQuaXNGdW5jdGlvbixqdDtyZXR1cm4gSHQ/anQ9RXQ6ci5pc1ZhbGlkRWxlbWVudChFdCk/anQ9ci5jbG9uZUVsZW1lbnQoRXQsdGhpcy5nZXRDb250cm9sbGVkKEV0LnByb3BzKSk6KCgwLHguWlApKCFFdCwiYGNoaWxkcmVuYCBvZiBGaWVsZCBpcyBub3QgdmFsaWRhdGUgUmVhY3RFbGVtZW50LiIpLGp0PUV0KSxyLmNyZWF0ZUVsZW1lbnQoci5GcmFnbWVudCx7a2V5OnhlfSxqdCl9fV0pLHZlfShyLkNvbXBvbmVudCk7KDAsZy5aKShtbiwiY29udGV4dFR5cGUiLEwpLCgwLGcuWikobW4sImRlZmF1bHRQcm9wcyIse3RyaWdnZXI6Im9uQ2hhbmdlIix2YWx1ZVByb3BOYW1lOiJ2YWx1ZSJ9KTtmdW5jdGlvbiBLbihQZSl7dmFyIGdlLHZlPVBlLm5hbWUsSWU9KDAsdC5aKShQZSxEdCkseGU9ci51c2VDb250ZXh0KEwpLGF0PXIudXNlQ29udGV4dChSKSxkdD12ZSE9PXZvaWQgMD92bih2ZSk6dm9pZCAwLEV0PShnZT1JZS5pc0xpc3RGaWVsZCkhPT1udWxsJiZnZSE9PXZvaWQgMD9nZTohIWF0LEh0PSJrZWVwIjtyZXR1cm4gRXR8fChIdD0iXyIuY29uY2F0KChkdHx8W10pLmpvaW4oIl8iKSkpLHIuY3JlYXRlRWxlbWVudChtbiwoMCxuLlopKHtrZXk6SHQsbmFtZTpkdCxpc0xpc3RGaWVsZDpFdH0sSWUse2ZpZWxkQ29udGV4dDp4ZX0pKX12YXIgSm49S247ZnVuY3Rpb24gWG4oUGUpe3ZhciBnZT1QZS5uYW1lLHZlPVBlLmluaXRpYWxWYWx1ZSxJZT1QZS5jaGlsZHJlbix4ZT1QZS5ydWxlcyxhdD1QZS52YWxpZGF0ZVRyaWdnZXIsZHQ9UGUuaXNMaXN0RmllbGQsRXQ9ci51c2VDb250ZXh0KEwpLEh0PXIudXNlQ29udGV4dChSKSxqdD1yLnVzZVJlZih7a2V5czpbXSxpZDowfSksRnQ9anQuY3VycmVudCxwbj1yLnVzZU1lbW8oZnVuY3Rpb24oKXt2YXIgem49dm4oRXQucHJlZml4TmFtZSl8fFtdO3JldHVybltdLmNvbmNhdCgoMCx1LlopKHpuKSwoMCx1LlopKHZuKGdlKSkpfSxbRXQucHJlZml4TmFtZSxnZV0pLGNuPXIudXNlTWVtbyhmdW5jdGlvbigpe3JldHVybigwLGEuWikoKDAsYS5aKSh7fSxFdCkse30se3ByZWZpeE5hbWU6cG59KX0sW0V0LHBuXSksb3I9ci51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJue2dldEtleTpmdW5jdGlvbihybil7dmFyIEt0PXBuLmxlbmd0aCx6dD1ybltLdF07cmV0dXJuW0Z0LmtleXNbenRdLHJuLnNsaWNlKEt0KzEpXX19fSxbcG5dKTtpZih0eXBlb2YgSWUhPSJmdW5jdGlvbiIpcmV0dXJuKDAseC5aUCkoITEsIkZvcm0uTGlzdCBvbmx5IGFjY2VwdHMgZnVuY3Rpb24gYXMgY2hpbGRyZW4uIiksbnVsbDt2YXIgVG49ZnVuY3Rpb24ocm4sS3QsenQpe3ZhciBPdD16dC5zb3VyY2U7cmV0dXJuIE90PT09ImludGVybmFsIj8hMTpybiE9PUt0fTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KFIuUHJvdmlkZXIse3ZhbHVlOm9yfSxyLmNyZWF0ZUVsZW1lbnQoTC5Qcm92aWRlcix7dmFsdWU6Y259LHIuY3JlYXRlRWxlbWVudChKbix7bmFtZTpbXSxzaG91bGRVcGRhdGU6VG4scnVsZXM6eGUsdmFsaWRhdGVUcmlnZ2VyOmF0LGluaXRpYWxWYWx1ZTp2ZSxpc0xpc3Q6ITAsaXNMaXN0RmllbGQ6ZHQhPW51bGw/ZHQ6ISFIdH0sZnVuY3Rpb24oem4scm4pe3ZhciBLdD16bi52YWx1ZSx6dD1LdD09PXZvaWQgMD9bXTpLdCxPdD16bi5vbkNoYW5nZSxsbj1FdC5nZXRGaWVsZFZhbHVlLEVuPWZ1bmN0aW9uKCl7dmFyIGJyPWxuKHBufHxbXSk7cmV0dXJuIGJyfHxbXX0sR249e2FkZDpmdW5jdGlvbihicixNcil7dmFyICRyPUVuKCk7TXI+PTAmJk1yPD0kci5sZW5ndGg/KEZ0LmtleXM9W10uY29uY2F0KCgwLHUuWikoRnQua2V5cy5zbGljZSgwLE1yKSksW0Z0LmlkXSwoMCx1LlopKEZ0LmtleXMuc2xpY2UoTXIpKSksT3QoW10uY29uY2F0KCgwLHUuWikoJHIuc2xpY2UoMCxNcikpLFticl0sKDAsdS5aKSgkci5zbGljZShNcikpKSkpOihGdC5rZXlzPVtdLmNvbmNhdCgoMCx1LlopKEZ0LmtleXMpLFtGdC5pZF0pLE90KFtdLmNvbmNhdCgoMCx1LlopKCRyKSxbYnJdKSkpLEZ0LmlkKz0xfSxyZW1vdmU6ZnVuY3Rpb24oYnIpe3ZhciBNcj1FbigpLCRyPW5ldyBTZXQoQXJyYXkuaXNBcnJheShicik/YnI6W2JyXSk7JHIuc2l6ZTw9MHx8KEZ0LmtleXM9RnQua2V5cy5maWx0ZXIoZnVuY3Rpb24oR3Isb2Epe3JldHVybiEkci5oYXMob2EpfSksT3QoTXIuZmlsdGVyKGZ1bmN0aW9uKEdyLG9hKXtyZXR1cm4hJHIuaGFzKG9hKX0pKSl9LG1vdmU6ZnVuY3Rpb24oYnIsTXIpe2lmKGJyIT09TXIpe3ZhciAkcj1FbigpO2JyPDB8fGJyPj0kci5sZW5ndGh8fE1yPDB8fE1yPj0kci5sZW5ndGh8fChGdC5rZXlzPWFuKEZ0LmtleXMsYnIsTXIpLE90KGFuKCRyLGJyLE1yKSkpfX19LHByPXp0fHxbXTtyZXR1cm4gQXJyYXkuaXNBcnJheShwcil8fChwcj1bXSksSWUocHIubWFwKGZ1bmN0aW9uKFByLGJyKXt2YXIgTXI9RnQua2V5c1ticl07cmV0dXJuIE1yPT09dm9pZCAwJiYoRnQua2V5c1ticl09RnQuaWQsTXI9RnQua2V5c1ticl0sRnQuaWQrPTEpLHtuYW1lOmJyLGtleTpNcixpc0xpc3RGaWVsZDohMH19KSxHbixybil9KSkpfXZhciBmcj1Ybixycj1lKDk3Njg1KTtmdW5jdGlvbiBocihQZSl7dmFyIGdlPSExLHZlPVBlLmxlbmd0aCxJZT1bXTtyZXR1cm4gUGUubGVuZ3RoP25ldyBQcm9taXNlKGZ1bmN0aW9uKHhlLGF0KXtQZS5mb3JFYWNoKGZ1bmN0aW9uKGR0LEV0KXtkdC5jYXRjaChmdW5jdGlvbihIdCl7cmV0dXJuIGdlPSEwLEh0fSkudGhlbihmdW5jdGlvbihIdCl7dmUtPTEsSWVbRXRdPUh0LCEodmU+MCkmJihnZSYmYXQoSWUpLHhlKEllKSl9KX0pfSk6UHJvbWlzZS5yZXNvbHZlKFtdKX12YXIgRm49Il9fQGZpZWxkX3NwbGl0X18iO2Z1bmN0aW9uIGFyKFBlKXtyZXR1cm4gUGUubWFwKGZ1bmN0aW9uKGdlKXtyZXR1cm4iIi5jb25jYXQoKDAsWS5aKShnZSksIjoiKS5jb25jYXQoZ2UpfSkuam9pbihGbil9dmFyIGxyPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gUGUoKXsoMCxjLlopKHRoaXMsUGUpLCgwLGcuWikodGhpcywia3ZzIixuZXcgTWFwKX1yZXR1cm4oMCxoLlopKFBlLFt7a2V5OiJzZXQiLHZhbHVlOmZ1bmN0aW9uKHZlLEllKXt0aGlzLmt2cy5zZXQoYXIodmUpLEllKX19LHtrZXk6ImdldCIsdmFsdWU6ZnVuY3Rpb24odmUpe3JldHVybiB0aGlzLmt2cy5nZXQoYXIodmUpKX19LHtrZXk6InVwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24odmUsSWUpe3ZhciB4ZT10aGlzLmdldCh2ZSksYXQ9SWUoeGUpO2F0P3RoaXMuc2V0KHZlLGF0KTp0aGlzLmRlbGV0ZSh2ZSl9fSx7a2V5OiJkZWxldGUiLHZhbHVlOmZ1bmN0aW9uKHZlKXt0aGlzLmt2cy5kZWxldGUoYXIodmUpKX19LHtrZXk6Im1hcCIsdmFsdWU6ZnVuY3Rpb24odmUpe3JldHVybigwLHUuWikodGhpcy5rdnMuZW50cmllcygpKS5tYXAoZnVuY3Rpb24oSWUpe3ZhciB4ZT0oMCxyci5aKShJZSwyKSxhdD14ZVswXSxkdD14ZVsxXSxFdD1hdC5zcGxpdChGbik7cmV0dXJuIHZlKHtrZXk6RXQubWFwKGZ1bmN0aW9uKEh0KXt2YXIganQ9SHQubWF0Y2goL14oW146XSopOiguKikkLyksRnQ9KDAscnIuWikoanQsMykscG49RnRbMV0sY249RnRbMl07cmV0dXJuIHBuPT09Im51bWJlciI/TnVtYmVyKGNuKTpjbn0pLHZhbHVlOmR0fSl9KX19LHtrZXk6InRvSlNPTiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdmU9e307cmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKEllKXt2YXIgeGU9SWUua2V5LGF0PUllLnZhbHVlO3JldHVybiB2ZVt4ZS5qb2luKCIuIildPWF0LG51bGx9KSx2ZX19XSksUGV9KCksJG49bHIsc3I9WyJuYW1lIl0sRnI9KDAsaC5aKShmdW5jdGlvbiBQZShnZSl7dmFyIHZlPXRoaXM7KDAsYy5aKSh0aGlzLFBlKSwoMCxnLlopKHRoaXMsImZvcm1Ib29rZWQiLCExKSwoMCxnLlopKHRoaXMsImZvcmNlUm9vdFVwZGF0ZSIsdm9pZCAwKSwoMCxnLlopKHRoaXMsInN1YnNjcmliYWJsZSIsITApLCgwLGcuWikodGhpcywic3RvcmUiLHt9KSwoMCxnLlopKHRoaXMsImZpZWxkRW50aXRpZXMiLFtdKSwoMCxnLlopKHRoaXMsImluaXRpYWxWYWx1ZXMiLHt9KSwoMCxnLlopKHRoaXMsImNhbGxiYWNrcyIse30pLCgwLGcuWikodGhpcywidmFsaWRhdGVNZXNzYWdlcyIsbnVsbCksKDAsZy5aKSh0aGlzLCJwcmVzZXJ2ZSIsbnVsbCksKDAsZy5aKSh0aGlzLCJsYXN0VmFsaWRhdGVQcm9taXNlIixudWxsKSwoMCxnLlopKHRoaXMsImdldEZvcm0iLGZ1bmN0aW9uKCl7cmV0dXJue2dldEZpZWxkVmFsdWU6dmUuZ2V0RmllbGRWYWx1ZSxnZXRGaWVsZHNWYWx1ZTp2ZS5nZXRGaWVsZHNWYWx1ZSxnZXRGaWVsZEVycm9yOnZlLmdldEZpZWxkRXJyb3IsZ2V0RmllbGRXYXJuaW5nOnZlLmdldEZpZWxkV2FybmluZyxnZXRGaWVsZHNFcnJvcjp2ZS5nZXRGaWVsZHNFcnJvcixpc0ZpZWxkc1RvdWNoZWQ6dmUuaXNGaWVsZHNUb3VjaGVkLGlzRmllbGRUb3VjaGVkOnZlLmlzRmllbGRUb3VjaGVkLGlzRmllbGRWYWxpZGF0aW5nOnZlLmlzRmllbGRWYWxpZGF0aW5nLGlzRmllbGRzVmFsaWRhdGluZzp2ZS5pc0ZpZWxkc1ZhbGlkYXRpbmcscmVzZXRGaWVsZHM6dmUucmVzZXRGaWVsZHMsc2V0RmllbGRzOnZlLnNldEZpZWxkcyxzZXRGaWVsZFZhbHVlOnZlLnNldEZpZWxkVmFsdWUsc2V0RmllbGRzVmFsdWU6dmUuc2V0RmllbGRzVmFsdWUsdmFsaWRhdGVGaWVsZHM6dmUudmFsaWRhdGVGaWVsZHMsc3VibWl0OnZlLnN1Ym1pdCxfaW5pdDohMCxnZXRJbnRlcm5hbEhvb2tzOnZlLmdldEludGVybmFsSG9va3N9fSksKDAsZy5aKSh0aGlzLCJnZXRJbnRlcm5hbEhvb2tzIixmdW5jdGlvbihJZSl7cmV0dXJuIEllPT09Tz8odmUuZm9ybUhvb2tlZD0hMCx7ZGlzcGF0Y2g6dmUuZGlzcGF0Y2gsaW5pdEVudGl0eVZhbHVlOnZlLmluaXRFbnRpdHlWYWx1ZSxyZWdpc3RlckZpZWxkOnZlLnJlZ2lzdGVyRmllbGQsdXNlU3Vic2NyaWJlOnZlLnVzZVN1YnNjcmliZSxzZXRJbml0aWFsVmFsdWVzOnZlLnNldEluaXRpYWxWYWx1ZXMsZGVzdHJveUZvcm06dmUuZGVzdHJveUZvcm0sc2V0Q2FsbGJhY2tzOnZlLnNldENhbGxiYWNrcyxzZXRWYWxpZGF0ZU1lc3NhZ2VzOnZlLnNldFZhbGlkYXRlTWVzc2FnZXMsZ2V0RmllbGRzOnZlLmdldEZpZWxkcyxzZXRQcmVzZXJ2ZTp2ZS5zZXRQcmVzZXJ2ZSxnZXRJbml0aWFsVmFsdWU6dmUuZ2V0SW5pdGlhbFZhbHVlLHJlZ2lzdGVyV2F0Y2g6dmUucmVnaXN0ZXJXYXRjaH0pOigoMCx4LlpQKSghMSwiYGdldEludGVybmFsSG9va3NgIGlzIGludGVybmFsIHVzYWdlLiBTaG91bGQgbm90IGNhbGwgZGlyZWN0bHkuIiksbnVsbCl9KSwoMCxnLlopKHRoaXMsInVzZVN1YnNjcmliZSIsZnVuY3Rpb24oSWUpe3ZlLnN1YnNjcmliYWJsZT1JZX0pLCgwLGcuWikodGhpcywicHJldldpdGhvdXRQcmVzZXJ2ZXMiLG51bGwpLCgwLGcuWikodGhpcywic2V0SW5pdGlhbFZhbHVlcyIsZnVuY3Rpb24oSWUseGUpe2lmKHZlLmluaXRpYWxWYWx1ZXM9SWV8fHt9LHhlKXt2YXIgYXQsZHQ9KDAsZXQuVCkoSWUsdmUuc3RvcmUpOyhhdD12ZS5wcmV2V2l0aG91dFByZXNlcnZlcyk9PT1udWxsfHxhdD09PXZvaWQgMHx8YXQubWFwKGZ1bmN0aW9uKEV0KXt2YXIgSHQ9RXQua2V5O2R0PSgwLGV0LlopKGR0LEh0LCgwLGlyLlopKEllLEh0KSl9KSx2ZS5wcmV2V2l0aG91dFByZXNlcnZlcz1udWxsLHZlLnVwZGF0ZVN0b3JlKGR0KX19KSwoMCxnLlopKHRoaXMsImRlc3Ryb3lGb3JtIixmdW5jdGlvbihJZSl7aWYoSWUpdmUudXBkYXRlU3RvcmUoe30pO2Vsc2V7dmFyIHhlPW5ldyAkbjt2ZS5nZXRGaWVsZEVudGl0aWVzKCEwKS5mb3JFYWNoKGZ1bmN0aW9uKGF0KXt2ZS5pc01lcmdlZFByZXNlcnZlKGF0LmlzUHJlc2VydmUoKSl8fHhlLnNldChhdC5nZXROYW1lUGF0aCgpLCEwKX0pLHZlLnByZXZXaXRob3V0UHJlc2VydmVzPXhlfX0pLCgwLGcuWikodGhpcywiZ2V0SW5pdGlhbFZhbHVlIixmdW5jdGlvbihJZSl7dmFyIHhlPSgwLGlyLlopKHZlLmluaXRpYWxWYWx1ZXMsSWUpO3JldHVybiBJZS5sZW5ndGg/KDAsZXQuVCkoeGUpOnhlfSksKDAsZy5aKSh0aGlzLCJzZXRDYWxsYmFja3MiLGZ1bmN0aW9uKEllKXt2ZS5jYWxsYmFja3M9SWV9KSwoMCxnLlopKHRoaXMsInNldFZhbGlkYXRlTWVzc2FnZXMiLGZ1bmN0aW9uKEllKXt2ZS52YWxpZGF0ZU1lc3NhZ2VzPUllfSksKDAsZy5aKSh0aGlzLCJzZXRQcmVzZXJ2ZSIsZnVuY3Rpb24oSWUpe3ZlLnByZXNlcnZlPUllfSksKDAsZy5aKSh0aGlzLCJ3YXRjaExpc3QiLFtdKSwoMCxnLlopKHRoaXMsInJlZ2lzdGVyV2F0Y2giLGZ1bmN0aW9uKEllKXtyZXR1cm4gdmUud2F0Y2hMaXN0LnB1c2goSWUpLGZ1bmN0aW9uKCl7dmUud2F0Y2hMaXN0PXZlLndhdGNoTGlzdC5maWx0ZXIoZnVuY3Rpb24oeGUpe3JldHVybiB4ZSE9PUllfSl9fSksKDAsZy5aKSh0aGlzLCJub3RpZnlXYXRjaCIsZnVuY3Rpb24oKXt2YXIgSWU9YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT12b2lkIDA/YXJndW1lbnRzWzBdOltdO2lmKHZlLndhdGNoTGlzdC5sZW5ndGgpe3ZhciB4ZT12ZS5nZXRGaWVsZHNWYWx1ZSgpLGF0PXZlLmdldEZpZWxkc1ZhbHVlKCEwKTt2ZS53YXRjaExpc3QuZm9yRWFjaChmdW5jdGlvbihkdCl7ZHQoeGUsYXQsSWUpfSl9fSksKDAsZy5aKSh0aGlzLCJ0aW1lb3V0SWQiLG51bGwpLCgwLGcuWikodGhpcywid2FybmluZ1VuaG9va2VkIixmdW5jdGlvbigpe30pLCgwLGcuWikodGhpcywidXBkYXRlU3RvcmUiLGZ1bmN0aW9uKEllKXt2ZS5zdG9yZT1JZX0pLCgwLGcuWikodGhpcywiZ2V0RmllbGRFbnRpdGllcyIsZnVuY3Rpb24oKXt2YXIgSWU9YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT12b2lkIDA/YXJndW1lbnRzWzBdOiExO3JldHVybiBJZT92ZS5maWVsZEVudGl0aWVzLmZpbHRlcihmdW5jdGlvbih4ZSl7cmV0dXJuIHhlLmdldE5hbWVQYXRoKCkubGVuZ3RofSk6dmUuZmllbGRFbnRpdGllc30pLCgwLGcuWikodGhpcywiZ2V0RmllbGRzTWFwIixmdW5jdGlvbigpe3ZhciBJZT1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXZvaWQgMD9hcmd1bWVudHNbMF06ITEseGU9bmV3ICRuO3JldHVybiB2ZS5nZXRGaWVsZEVudGl0aWVzKEllKS5mb3JFYWNoKGZ1bmN0aW9uKGF0KXt2YXIgZHQ9YXQuZ2V0TmFtZVBhdGgoKTt4ZS5zZXQoZHQsYXQpfSkseGV9KSwoMCxnLlopKHRoaXMsImdldEZpZWxkRW50aXRpZXNGb3JOYW1lUGF0aExpc3QiLGZ1bmN0aW9uKEllKXtpZighSWUpcmV0dXJuIHZlLmdldEZpZWxkRW50aXRpZXMoITApO3ZhciB4ZT12ZS5nZXRGaWVsZHNNYXAoITApO3JldHVybiBJZS5tYXAoZnVuY3Rpb24oYXQpe3ZhciBkdD12bihhdCk7cmV0dXJuIHhlLmdldChkdCl8fHtJTlZBTElEQVRFX05BTUVfUEFUSDp2bihhdCl9fSl9KSwoMCxnLlopKHRoaXMsImdldEZpZWxkc1ZhbHVlIixmdW5jdGlvbihJZSx4ZSl7dmUud2FybmluZ1VuaG9va2VkKCk7dmFyIGF0LGR0LEV0O2lmKEllPT09ITB8fEFycmF5LmlzQXJyYXkoSWUpPyhhdD1JZSxkdD14ZSk6SWUmJigwLFkuWikoSWUpPT09Im9iamVjdCImJihFdD1JZS5zdHJpY3QsZHQ9SWUuZmlsdGVyKSxhdD09PSEwJiYhZHQpcmV0dXJuIHZlLnN0b3JlO3ZhciBIdD12ZS5nZXRGaWVsZEVudGl0aWVzRm9yTmFtZVBhdGhMaXN0KEFycmF5LmlzQXJyYXkoYXQpP2F0Om51bGwpLGp0PVtdO3JldHVybiBIdC5mb3JFYWNoKGZ1bmN0aW9uKEZ0KXt2YXIgcG4sY24sb3I9IklOVkFMSURBVEVfTkFNRV9QQVRIImluIEZ0P0Z0LklOVkFMSURBVEVfTkFNRV9QQVRIOkZ0LmdldE5hbWVQYXRoKCk7aWYoRXQpe3ZhciBUbix6bjtpZigoVG49KHpuPUZ0KS5pc0xpc3QpIT09bnVsbCYmVG4hPT12b2lkIDAmJlRuLmNhbGwoem4pKXJldHVybn1lbHNlIGlmKCFhdCYmKHBuPShjbj1GdCkuaXNMaXN0RmllbGQpIT09bnVsbCYmcG4hPT12b2lkIDAmJnBuLmNhbGwoY24pKXJldHVybjtpZighZHQpanQucHVzaChvcik7ZWxzZXt2YXIgcm49ImdldE1ldGEiaW4gRnQ/RnQuZ2V0TWV0YSgpOm51bGw7ZHQocm4pJiZqdC5wdXNoKG9yKX19KSxjcih2ZS5zdG9yZSxqdC5tYXAodm4pKX0pLCgwLGcuWikodGhpcywiZ2V0RmllbGRWYWx1ZSIsZnVuY3Rpb24oSWUpe3ZlLndhcm5pbmdVbmhvb2tlZCgpO3ZhciB4ZT12bihJZSk7cmV0dXJuKDAsaXIuWikodmUuc3RvcmUseGUpfSksKDAsZy5aKSh0aGlzLCJnZXRGaWVsZHNFcnJvciIsZnVuY3Rpb24oSWUpe3ZlLndhcm5pbmdVbmhvb2tlZCgpO3ZhciB4ZT12ZS5nZXRGaWVsZEVudGl0aWVzRm9yTmFtZVBhdGhMaXN0KEllKTtyZXR1cm4geGUubWFwKGZ1bmN0aW9uKGF0LGR0KXtyZXR1cm4gYXQmJiEoIklOVkFMSURBVEVfTkFNRV9QQVRIImluIGF0KT97bmFtZTphdC5nZXROYW1lUGF0aCgpLGVycm9yczphdC5nZXRFcnJvcnMoKSx3YXJuaW5nczphdC5nZXRXYXJuaW5ncygpfTp7bmFtZTp2bihJZVtkdF0pLGVycm9yczpbXSx3YXJuaW5nczpbXX19KX0pLCgwLGcuWikodGhpcywiZ2V0RmllbGRFcnJvciIsZnVuY3Rpb24oSWUpe3ZlLndhcm5pbmdVbmhvb2tlZCgpO3ZhciB4ZT12bihJZSksYXQ9dmUuZ2V0RmllbGRzRXJyb3IoW3hlXSlbMF07cmV0dXJuIGF0LmVycm9yc30pLCgwLGcuWikodGhpcywiZ2V0RmllbGRXYXJuaW5nIixmdW5jdGlvbihJZSl7dmUud2FybmluZ1VuaG9va2VkKCk7dmFyIHhlPXZuKEllKSxhdD12ZS5nZXRGaWVsZHNFcnJvcihbeGVdKVswXTtyZXR1cm4gYXQud2FybmluZ3N9KSwoMCxnLlopKHRoaXMsImlzRmllbGRzVG91Y2hlZCIsZnVuY3Rpb24oKXt2ZS53YXJuaW5nVW5ob29rZWQoKTtmb3IodmFyIEllPWFyZ3VtZW50cy5sZW5ndGgseGU9bmV3IEFycmF5KEllKSxhdD0wO2F0PEllO2F0KyspeGVbYXRdPWFyZ3VtZW50c1thdF07dmFyIGR0PXhlWzBdLEV0PXhlWzFdLEh0LGp0PSExO3hlLmxlbmd0aD09PTA/SHQ9bnVsbDp4ZS5sZW5ndGg9PT0xP0FycmF5LmlzQXJyYXkoZHQpPyhIdD1kdC5tYXAodm4pLGp0PSExKTooSHQ9bnVsbCxqdD1kdCk6KEh0PWR0Lm1hcCh2biksanQ9RXQpO3ZhciBGdD12ZS5nZXRGaWVsZEVudGl0aWVzKCEwKSxwbj1mdW5jdGlvbihybil7cmV0dXJuIHJuLmlzRmllbGRUb3VjaGVkKCl9O2lmKCFIdClyZXR1cm4ganQ/RnQuZXZlcnkoZnVuY3Rpb24oem4pe3JldHVybiBwbih6bil8fHpuLmlzTGlzdCgpfSk6RnQuc29tZShwbik7dmFyIGNuPW5ldyAkbjtIdC5mb3JFYWNoKGZ1bmN0aW9uKHpuKXtjbi5zZXQoem4sW10pfSksRnQuZm9yRWFjaChmdW5jdGlvbih6bil7dmFyIHJuPXpuLmdldE5hbWVQYXRoKCk7SHQuZm9yRWFjaChmdW5jdGlvbihLdCl7S3QuZXZlcnkoZnVuY3Rpb24oenQsT3Qpe3JldHVybiBybltPdF09PT16dH0pJiZjbi51cGRhdGUoS3QsZnVuY3Rpb24oenQpe3JldHVybltdLmNvbmNhdCgoMCx1LlopKHp0KSxbem5dKX0pfSl9KTt2YXIgb3I9ZnVuY3Rpb24ocm4pe3JldHVybiBybi5zb21lKHBuKX0sVG49Y24ubWFwKGZ1bmN0aW9uKHpuKXt2YXIgcm49em4udmFsdWU7cmV0dXJuIHJufSk7cmV0dXJuIGp0P1RuLmV2ZXJ5KG9yKTpUbi5zb21lKG9yKX0pLCgwLGcuWikodGhpcywiaXNGaWVsZFRvdWNoZWQiLGZ1bmN0aW9uKEllKXtyZXR1cm4gdmUud2FybmluZ1VuaG9va2VkKCksdmUuaXNGaWVsZHNUb3VjaGVkKFtJZV0pfSksKDAsZy5aKSh0aGlzLCJpc0ZpZWxkc1ZhbGlkYXRpbmciLGZ1bmN0aW9uKEllKXt2ZS53YXJuaW5nVW5ob29rZWQoKTt2YXIgeGU9dmUuZ2V0RmllbGRFbnRpdGllcygpO2lmKCFJZSlyZXR1cm4geGUuc29tZShmdW5jdGlvbihkdCl7cmV0dXJuIGR0LmlzRmllbGRWYWxpZGF0aW5nKCl9KTt2YXIgYXQ9SWUubWFwKHZuKTtyZXR1cm4geGUuc29tZShmdW5jdGlvbihkdCl7dmFyIEV0PWR0LmdldE5hbWVQYXRoKCk7cmV0dXJuIFduKGF0LEV0KSYmZHQuaXNGaWVsZFZhbGlkYXRpbmcoKX0pfSksKDAsZy5aKSh0aGlzLCJpc0ZpZWxkVmFsaWRhdGluZyIsZnVuY3Rpb24oSWUpe3JldHVybiB2ZS53YXJuaW5nVW5ob29rZWQoKSx2ZS5pc0ZpZWxkc1ZhbGlkYXRpbmcoW0llXSl9KSwoMCxnLlopKHRoaXMsInJlc2V0V2l0aEZpZWxkSW5pdGlhbFZhbHVlIixmdW5jdGlvbigpe3ZhciBJZT1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXZvaWQgMD9hcmd1bWVudHNbMF06e30seGU9bmV3ICRuLGF0PXZlLmdldEZpZWxkRW50aXRpZXMoITApO2F0LmZvckVhY2goZnVuY3Rpb24oSHQpe3ZhciBqdD1IdC5wcm9wcy5pbml0aWFsVmFsdWUsRnQ9SHQuZ2V0TmFtZVBhdGgoKTtpZihqdCE9PXZvaWQgMCl7dmFyIHBuPXhlLmdldChGdCl8fG5ldyBTZXQ7cG4uYWRkKHtlbnRpdHk6SHQsdmFsdWU6anR9KSx4ZS5zZXQoRnQscG4pfX0pO3ZhciBkdD1mdW5jdGlvbihqdCl7anQuZm9yRWFjaChmdW5jdGlvbihGdCl7dmFyIHBuPUZ0LnByb3BzLmluaXRpYWxWYWx1ZTtpZihwbiE9PXZvaWQgMCl7dmFyIGNuPUZ0LmdldE5hbWVQYXRoKCksb3I9dmUuZ2V0SW5pdGlhbFZhbHVlKGNuKTtpZihvciE9PXZvaWQgMCkoMCx4LlpQKSghMSwiRm9ybSBhbHJlYWR5IHNldCAnaW5pdGlhbFZhbHVlcycgd2l0aCBwYXRoICciLmNvbmNhdChjbi5qb2luKCIuIiksIicuIEZpZWxkIGNhbiBub3Qgb3ZlcndyaXRlIGl0LiIpKTtlbHNle3ZhciBUbj14ZS5nZXQoY24pO2lmKFRuJiZUbi5zaXplPjEpKDAseC5aUCkoITEsIk11bHRpcGxlIEZpZWxkIHdpdGggcGF0aCAnIi5jb25jYXQoY24uam9pbigiLiIpLCInIHNldCAnaW5pdGlhbFZhbHVlJy4gQ2FuIG5vdCBkZWNpZGUgd2hpY2ggb25lIHRvIHBpY2suIikpO2Vsc2UgaWYoVG4pe3ZhciB6bj12ZS5nZXRGaWVsZFZhbHVlKGNuKSxybj1GdC5pc0xpc3RGaWVsZCgpOyFybiYmKCFJZS5za2lwRXhpc3R8fHpuPT09dm9pZCAwKSYmdmUudXBkYXRlU3RvcmUoKDAsZXQuWikodmUuc3RvcmUsY24sKDAsdS5aKShUbilbMF0udmFsdWUpKX19fX0pfSxFdDtJZS5lbnRpdGllcz9FdD1JZS5lbnRpdGllczpJZS5uYW1lUGF0aExpc3Q/KEV0PVtdLEllLm5hbWVQYXRoTGlzdC5mb3JFYWNoKGZ1bmN0aW9uKEh0KXt2YXIganQ9eGUuZ2V0KEh0KTtpZihqdCl7dmFyIEZ0OyhGdD1FdCkucHVzaC5hcHBseShGdCwoMCx1LlopKCgwLHUuWikoanQpLm1hcChmdW5jdGlvbihwbil7cmV0dXJuIHBuLmVudGl0eX0pKSl9fSkpOkV0PWF0LGR0KEV0KX0pLCgwLGcuWikodGhpcywicmVzZXRGaWVsZHMiLGZ1bmN0aW9uKEllKXt2ZS53YXJuaW5nVW5ob29rZWQoKTt2YXIgeGU9dmUuc3RvcmU7aWYoIUllKXt2ZS51cGRhdGVTdG9yZSgoMCxldC5UKSh2ZS5pbml0aWFsVmFsdWVzKSksdmUucmVzZXRXaXRoRmllbGRJbml0aWFsVmFsdWUoKSx2ZS5ub3RpZnlPYnNlcnZlcnMoeGUsbnVsbCx7dHlwZToicmVzZXQifSksdmUubm90aWZ5V2F0Y2goKTtyZXR1cm59dmFyIGF0PUllLm1hcCh2bik7YXQuZm9yRWFjaChmdW5jdGlvbihkdCl7dmFyIEV0PXZlLmdldEluaXRpYWxWYWx1ZShkdCk7dmUudXBkYXRlU3RvcmUoKDAsZXQuWikodmUuc3RvcmUsZHQsRXQpKX0pLHZlLnJlc2V0V2l0aEZpZWxkSW5pdGlhbFZhbHVlKHtuYW1lUGF0aExpc3Q6YXR9KSx2ZS5ub3RpZnlPYnNlcnZlcnMoeGUsYXQse3R5cGU6InJlc2V0In0pLHZlLm5vdGlmeVdhdGNoKGF0KX0pLCgwLGcuWikodGhpcywic2V0RmllbGRzIixmdW5jdGlvbihJZSl7dmUud2FybmluZ1VuaG9va2VkKCk7dmFyIHhlPXZlLnN0b3JlLGF0PVtdO0llLmZvckVhY2goZnVuY3Rpb24oZHQpe3ZhciBFdD1kdC5uYW1lLEh0PSgwLHQuWikoZHQsc3IpLGp0PXZuKEV0KTthdC5wdXNoKGp0KSwidmFsdWUiaW4gSHQmJnZlLnVwZGF0ZVN0b3JlKCgwLGV0LlopKHZlLnN0b3JlLGp0LEh0LnZhbHVlKSksdmUubm90aWZ5T2JzZXJ2ZXJzKHhlLFtqdF0se3R5cGU6InNldEZpZWxkIixkYXRhOmR0fSl9KSx2ZS5ub3RpZnlXYXRjaChhdCl9KSwoMCxnLlopKHRoaXMsImdldEZpZWxkcyIsZnVuY3Rpb24oKXt2YXIgSWU9dmUuZ2V0RmllbGRFbnRpdGllcyghMCkseGU9SWUubWFwKGZ1bmN0aW9uKGF0KXt2YXIgZHQ9YXQuZ2V0TmFtZVBhdGgoKSxFdD1hdC5nZXRNZXRhKCksSHQ9KDAsYS5aKSgoMCxhLlopKHt9LEV0KSx7fSx7bmFtZTpkdCx2YWx1ZTp2ZS5nZXRGaWVsZFZhbHVlKGR0KX0pO3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoSHQsIm9yaWdpblJDRmllbGQiLHt2YWx1ZTohMH0pLEh0fSk7cmV0dXJuIHhlfSksKDAsZy5aKSh0aGlzLCJpbml0RW50aXR5VmFsdWUiLGZ1bmN0aW9uKEllKXt2YXIgeGU9SWUucHJvcHMuaW5pdGlhbFZhbHVlO2lmKHhlIT09dm9pZCAwKXt2YXIgYXQ9SWUuZ2V0TmFtZVBhdGgoKSxkdD0oMCxpci5aKSh2ZS5zdG9yZSxhdCk7ZHQ9PT12b2lkIDAmJnZlLnVwZGF0ZVN0b3JlKCgwLGV0LlopKHZlLnN0b3JlLGF0LHhlKSl9fSksKDAsZy5aKSh0aGlzLCJpc01lcmdlZFByZXNlcnZlIixmdW5jdGlvbihJZSl7dmFyIHhlPUllIT09dm9pZCAwP0llOnZlLnByZXNlcnZlO3JldHVybiB4ZSE9bnVsbD94ZTohMH0pLCgwLGcuWikodGhpcywicmVnaXN0ZXJGaWVsZCIsZnVuY3Rpb24oSWUpe3ZlLmZpZWxkRW50aXRpZXMucHVzaChJZSk7dmFyIHhlPUllLmdldE5hbWVQYXRoKCk7aWYodmUubm90aWZ5V2F0Y2goW3hlXSksSWUucHJvcHMuaW5pdGlhbFZhbHVlIT09dm9pZCAwKXt2YXIgYXQ9dmUuc3RvcmU7dmUucmVzZXRXaXRoRmllbGRJbml0aWFsVmFsdWUoe2VudGl0aWVzOltJZV0sc2tpcEV4aXN0OiEwfSksdmUubm90aWZ5T2JzZXJ2ZXJzKGF0LFtJZS5nZXROYW1lUGF0aCgpXSx7dHlwZToidmFsdWVVcGRhdGUiLHNvdXJjZToiaW50ZXJuYWwifSl9cmV0dXJuIGZ1bmN0aW9uKGR0LEV0KXt2YXIgSHQ9YXJndW1lbnRzLmxlbmd0aD4yJiZhcmd1bWVudHNbMl0hPT12b2lkIDA/YXJndW1lbnRzWzJdOltdO2lmKHZlLmZpZWxkRW50aXRpZXM9dmUuZmllbGRFbnRpdGllcy5maWx0ZXIoZnVuY3Rpb24ocG4pe3JldHVybiBwbiE9PUllfSksIXZlLmlzTWVyZ2VkUHJlc2VydmUoRXQpJiYoIWR0fHxIdC5sZW5ndGg+MSkpe3ZhciBqdD1kdD92b2lkIDA6dmUuZ2V0SW5pdGlhbFZhbHVlKHhlKTtpZih4ZS5sZW5ndGgmJnZlLmdldEZpZWxkVmFsdWUoeGUpIT09anQmJnZlLmZpZWxkRW50aXRpZXMuZXZlcnkoZnVuY3Rpb24ocG4pe3JldHVybiF3bihwbi5nZXROYW1lUGF0aCgpLHhlKX0pKXt2YXIgRnQ9dmUuc3RvcmU7dmUudXBkYXRlU3RvcmUoKDAsZXQuWikoRnQseGUsanQsITApKSx2ZS5ub3RpZnlPYnNlcnZlcnMoRnQsW3hlXSx7dHlwZToicmVtb3ZlIn0pLHZlLnRyaWdnZXJEZXBlbmRlbmNpZXNVcGRhdGUoRnQseGUpfX12ZS5ub3RpZnlXYXRjaChbeGVdKX19KSwoMCxnLlopKHRoaXMsImRpc3BhdGNoIixmdW5jdGlvbihJZSl7c3dpdGNoKEllLnR5cGUpe2Nhc2UidXBkYXRlVmFsdWUiOnt2YXIgeGU9SWUubmFtZVBhdGgsYXQ9SWUudmFsdWU7dmUudXBkYXRlVmFsdWUoeGUsYXQpO2JyZWFrfWNhc2UidmFsaWRhdGVGaWVsZCI6e3ZhciBkdD1JZS5uYW1lUGF0aCxFdD1JZS50cmlnZ2VyTmFtZTt2ZS52YWxpZGF0ZUZpZWxkcyhbZHRdLHt0cmlnZ2VyTmFtZTpFdH0pO2JyZWFrfWRlZmF1bHQ6fX0pLCgwLGcuWikodGhpcywibm90aWZ5T2JzZXJ2ZXJzIixmdW5jdGlvbihJZSx4ZSxhdCl7aWYodmUuc3Vic2NyaWJhYmxlKXt2YXIgZHQ9KDAsYS5aKSgoMCxhLlopKHt9LGF0KSx7fSx7c3RvcmU6dmUuZ2V0RmllbGRzVmFsdWUoITApfSk7dmUuZ2V0RmllbGRFbnRpdGllcygpLmZvckVhY2goZnVuY3Rpb24oRXQpe3ZhciBIdD1FdC5vblN0b3JlQ2hhbmdlO0h0KEllLHhlLGR0KX0pfWVsc2UgdmUuZm9yY2VSb290VXBkYXRlKCl9KSwoMCxnLlopKHRoaXMsInRyaWdnZXJEZXBlbmRlbmNpZXNVcGRhdGUiLGZ1bmN0aW9uKEllLHhlKXt2YXIgYXQ9dmUuZ2V0RGVwZW5kZW5jeUNoaWxkcmVuRmllbGRzKHhlKTtyZXR1cm4gYXQubGVuZ3RoJiZ2ZS52YWxpZGF0ZUZpZWxkcyhhdCksdmUubm90aWZ5T2JzZXJ2ZXJzKEllLGF0LHt0eXBlOiJkZXBlbmRlbmNpZXNVcGRhdGUiLHJlbGF0ZWRGaWVsZHM6W3hlXS5jb25jYXQoKDAsdS5aKShhdCkpfSksYXR9KSwoMCxnLlopKHRoaXMsInVwZGF0ZVZhbHVlIixmdW5jdGlvbihJZSx4ZSl7dmFyIGF0PXZuKEllKSxkdD12ZS5zdG9yZTt2ZS51cGRhdGVTdG9yZSgoMCxldC5aKSh2ZS5zdG9yZSxhdCx4ZSkpLHZlLm5vdGlmeU9ic2VydmVycyhkdCxbYXRdLHt0eXBlOiJ2YWx1ZVVwZGF0ZSIsc291cmNlOiJpbnRlcm5hbCJ9KSx2ZS5ub3RpZnlXYXRjaChbYXRdKTt2YXIgRXQ9dmUudHJpZ2dlckRlcGVuZGVuY2llc1VwZGF0ZShkdCxhdCksSHQ9dmUuY2FsbGJhY2tzLm9uVmFsdWVzQ2hhbmdlO2lmKEh0KXt2YXIganQ9Y3IodmUuc3RvcmUsW2F0XSk7SHQoanQsdmUuZ2V0RmllbGRzVmFsdWUoKSl9dmUudHJpZ2dlck9uRmllbGRzQ2hhbmdlKFthdF0uY29uY2F0KCgwLHUuWikoRXQpKSl9KSwoMCxnLlopKHRoaXMsInNldEZpZWxkc1ZhbHVlIixmdW5jdGlvbihJZSl7dmUud2FybmluZ1VuaG9va2VkKCk7dmFyIHhlPXZlLnN0b3JlO2lmKEllKXt2YXIgYXQ9KDAsZXQuVCkodmUuc3RvcmUsSWUpO3ZlLnVwZGF0ZVN0b3JlKGF0KX12ZS5ub3RpZnlPYnNlcnZlcnMoeGUsbnVsbCx7dHlwZToidmFsdWVVcGRhdGUiLHNvdXJjZToiZXh0ZXJuYWwifSksdmUubm90aWZ5V2F0Y2goKX0pLCgwLGcuWikodGhpcywic2V0RmllbGRWYWx1ZSIsZnVuY3Rpb24oSWUseGUpe3ZlLnNldEZpZWxkcyhbe25hbWU6SWUsdmFsdWU6eGUsZXJyb3JzOltdLHdhcm5pbmdzOltdfV0pfSksKDAsZy5aKSh0aGlzLCJnZXREZXBlbmRlbmN5Q2hpbGRyZW5GaWVsZHMiLGZ1bmN0aW9uKEllKXt2YXIgeGU9bmV3IFNldCxhdD1bXSxkdD1uZXcgJG47dmUuZ2V0RmllbGRFbnRpdGllcygpLmZvckVhY2goZnVuY3Rpb24oSHQpe3ZhciBqdD1IdC5wcm9wcy5kZXBlbmRlbmNpZXM7KGp0fHxbXSkuZm9yRWFjaChmdW5jdGlvbihGdCl7dmFyIHBuPXZuKEZ0KTtkdC51cGRhdGUocG4sZnVuY3Rpb24oKXt2YXIgY249YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT12b2lkIDA/YXJndW1lbnRzWzBdOm5ldyBTZXQ7cmV0dXJuIGNuLmFkZChIdCksY259KX0pfSk7dmFyIEV0PWZ1bmN0aW9uIEh0KGp0KXt2YXIgRnQ9ZHQuZ2V0KGp0KXx8bmV3IFNldDtGdC5mb3JFYWNoKGZ1bmN0aW9uKHBuKXtpZigheGUuaGFzKHBuKSl7eGUuYWRkKHBuKTt2YXIgY249cG4uZ2V0TmFtZVBhdGgoKTtwbi5pc0ZpZWxkRGlydHkoKSYmY24ubGVuZ3RoJiYoYXQucHVzaChjbiksSHQoY24pKX19KX07cmV0dXJuIEV0KEllKSxhdH0pLCgwLGcuWikodGhpcywidHJpZ2dlck9uRmllbGRzQ2hhbmdlIixmdW5jdGlvbihJZSx4ZSl7dmFyIGF0PXZlLmNhbGxiYWNrcy5vbkZpZWxkc0NoYW5nZTtpZihhdCl7dmFyIGR0PXZlLmdldEZpZWxkcygpO2lmKHhlKXt2YXIgRXQ9bmV3ICRuO3hlLmZvckVhY2goZnVuY3Rpb24oanQpe3ZhciBGdD1qdC5uYW1lLHBuPWp0LmVycm9ycztFdC5zZXQoRnQscG4pfSksZHQuZm9yRWFjaChmdW5jdGlvbihqdCl7anQuZXJyb3JzPUV0LmdldChqdC5uYW1lKXx8anQuZXJyb3JzfSl9dmFyIEh0PWR0LmZpbHRlcihmdW5jdGlvbihqdCl7dmFyIEZ0PWp0Lm5hbWU7cmV0dXJuIFduKEllLEZ0KX0pO0h0Lmxlbmd0aCYmYXQoSHQsZHQpfX0pLCgwLGcuWikodGhpcywidmFsaWRhdGVGaWVsZHMiLGZ1bmN0aW9uKEllLHhlKXt2ZS53YXJuaW5nVW5ob29rZWQoKTt2YXIgYXQsZHQ7QXJyYXkuaXNBcnJheShJZSl8fHR5cGVvZiBJZT09InN0cmluZyJ8fHR5cGVvZiB4ZT09InN0cmluZyI/KGF0PUllLGR0PXhlKTpkdD1JZTt2YXIgRXQ9ISFhdCxIdD1FdD9hdC5tYXAodm4pOltdLGp0PVtdLEZ0PVN0cmluZyhEYXRlLm5vdygpKSxwbj1uZXcgU2V0LGNuPWR0fHx7fSxvcj1jbi5yZWN1cnNpdmUsVG49Y24uZGlydHk7dmUuZ2V0RmllbGRFbnRpdGllcyghMCkuZm9yRWFjaChmdW5jdGlvbih6dCl7aWYoRXR8fEh0LnB1c2goenQuZ2V0TmFtZVBhdGgoKSksISghenQucHJvcHMucnVsZXN8fCF6dC5wcm9wcy5ydWxlcy5sZW5ndGgpJiYhKFRuJiYhenQuaXNGaWVsZERpcnR5KCkpKXt2YXIgT3Q9enQuZ2V0TmFtZVBhdGgoKTtpZihwbi5hZGQoT3Quam9pbihGdCkpLCFFdHx8V24oSHQsT3Qsb3IpKXt2YXIgbG49enQudmFsaWRhdGVSdWxlcygoMCxhLlopKHt2YWxpZGF0ZU1lc3NhZ2VzOigwLGEuWikoKDAsYS5aKSh7fSxmdCksdmUudmFsaWRhdGVNZXNzYWdlcyl9LGR0KSk7anQucHVzaChsbi50aGVuKGZ1bmN0aW9uKCl7cmV0dXJue25hbWU6T3QsZXJyb3JzOltdLHdhcm5pbmdzOltdfX0pLmNhdGNoKGZ1bmN0aW9uKEVuKXt2YXIgR24scHI9W10sUHI9W107cmV0dXJuKEduPUVuLmZvckVhY2gpPT09bnVsbHx8R249PT12b2lkIDB8fEduLmNhbGwoRW4sZnVuY3Rpb24oYnIpe3ZhciBNcj1ici5ydWxlLndhcm5pbmdPbmx5LCRyPWJyLmVycm9ycztNcj9Qci5wdXNoLmFwcGx5KFByLCgwLHUuWikoJHIpKTpwci5wdXNoLmFwcGx5KHByLCgwLHUuWikoJHIpKX0pLHByLmxlbmd0aD9Qcm9taXNlLnJlamVjdCh7bmFtZTpPdCxlcnJvcnM6cHIsd2FybmluZ3M6UHJ9KTp7bmFtZTpPdCxlcnJvcnM6cHIsd2FybmluZ3M6UHJ9fSkpfX19KTt2YXIgem49aHIoanQpO3ZlLmxhc3RWYWxpZGF0ZVByb21pc2U9em4sem4uY2F0Y2goZnVuY3Rpb24oenQpe3JldHVybiB6dH0pLnRoZW4oZnVuY3Rpb24oenQpe3ZhciBPdD16dC5tYXAoZnVuY3Rpb24obG4pe3ZhciBFbj1sbi5uYW1lO3JldHVybiBFbn0pO3ZlLm5vdGlmeU9ic2VydmVycyh2ZS5zdG9yZSxPdCx7dHlwZToidmFsaWRhdGVGaW5pc2gifSksdmUudHJpZ2dlck9uRmllbGRzQ2hhbmdlKE90LHp0KX0pO3ZhciBybj16bi50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHZlLmxhc3RWYWxpZGF0ZVByb21pc2U9PT16bj9Qcm9taXNlLnJlc29sdmUodmUuZ2V0RmllbGRzVmFsdWUoSHQpKTpQcm9taXNlLnJlamVjdChbXSl9KS5jYXRjaChmdW5jdGlvbih6dCl7dmFyIE90PXp0LmZpbHRlcihmdW5jdGlvbihsbil7cmV0dXJuIGxuJiZsbi5lcnJvcnMubGVuZ3RofSk7cmV0dXJuIFByb21pc2UucmVqZWN0KHt2YWx1ZXM6dmUuZ2V0RmllbGRzVmFsdWUoSHQpLGVycm9yRmllbGRzOk90LG91dE9mRGF0ZTp2ZS5sYXN0VmFsaWRhdGVQcm9taXNlIT09em59KX0pO3JuLmNhdGNoKGZ1bmN0aW9uKHp0KXtyZXR1cm4genR9KTt2YXIgS3Q9SHQuZmlsdGVyKGZ1bmN0aW9uKHp0KXtyZXR1cm4gcG4uaGFzKHp0LmpvaW4oRnQpKX0pO3JldHVybiB2ZS50cmlnZ2VyT25GaWVsZHNDaGFuZ2UoS3QpLHJufSksKDAsZy5aKSh0aGlzLCJzdWJtaXQiLGZ1bmN0aW9uKCl7dmUud2FybmluZ1VuaG9va2VkKCksdmUudmFsaWRhdGVGaWVsZHMoKS50aGVuKGZ1bmN0aW9uKEllKXt2YXIgeGU9dmUuY2FsbGJhY2tzLm9uRmluaXNoO2lmKHhlKXRyeXt4ZShJZSl9Y2F0Y2goYXQpe2NvbnNvbGUuZXJyb3IoYXQpfX0pLmNhdGNoKGZ1bmN0aW9uKEllKXt2YXIgeGU9dmUuY2FsbGJhY2tzLm9uRmluaXNoRmFpbGVkO3hlJiZ4ZShJZSl9KX0pLHRoaXMuZm9yY2VSb290VXBkYXRlPWdlfSk7ZnVuY3Rpb24gWmUoUGUpe3ZhciBnZT1yLnVzZVJlZigpLHZlPXIudXNlU3RhdGUoe30pLEllPSgwLHJyLlopKHZlLDIpLHhlPUllWzFdO2lmKCFnZS5jdXJyZW50KWlmKFBlKWdlLmN1cnJlbnQ9UGU7ZWxzZXt2YXIgYXQ9ZnVuY3Rpb24oKXt4ZSh7fSl9LGR0PW5ldyBGcihhdCk7Z2UuY3VycmVudD1kdC5nZXRGb3JtKCl9cmV0dXJuW2dlLmN1cnJlbnRdfXZhciBIZT1aZSxudD1yLmNyZWF0ZUNvbnRleHQoe3RyaWdnZXJGb3JtQ2hhbmdlOmZ1bmN0aW9uKCl7fSx0cmlnZ2VyRm9ybUZpbmlzaDpmdW5jdGlvbigpe30scmVnaXN0ZXJGb3JtOmZ1bmN0aW9uKCl7fSx1bnJlZ2lzdGVyRm9ybTpmdW5jdGlvbigpe319KSxydD1mdW5jdGlvbihnZSl7dmFyIHZlPWdlLnZhbGlkYXRlTWVzc2FnZXMsSWU9Z2Uub25Gb3JtQ2hhbmdlLHhlPWdlLm9uRm9ybUZpbmlzaCxhdD1nZS5jaGlsZHJlbixkdD1yLnVzZUNvbnRleHQobnQpLEV0PXIudXNlUmVmKHt9KTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KG50LlByb3ZpZGVyLHt2YWx1ZTooMCxhLlopKCgwLGEuWikoe30sZHQpLHt9LHt2YWxpZGF0ZU1lc3NhZ2VzOigwLGEuWikoKDAsYS5aKSh7fSxkdC52YWxpZGF0ZU1lc3NhZ2VzKSx2ZSksdHJpZ2dlckZvcm1DaGFuZ2U6ZnVuY3Rpb24oanQsRnQpe0llJiZJZShqdCx7Y2hhbmdlZEZpZWxkczpGdCxmb3JtczpFdC5jdXJyZW50fSksZHQudHJpZ2dlckZvcm1DaGFuZ2UoanQsRnQpfSx0cmlnZ2VyRm9ybUZpbmlzaDpmdW5jdGlvbihqdCxGdCl7eGUmJnhlKGp0LHt2YWx1ZXM6RnQsZm9ybXM6RXQuY3VycmVudH0pLGR0LnRyaWdnZXJGb3JtRmluaXNoKGp0LEZ0KX0scmVnaXN0ZXJGb3JtOmZ1bmN0aW9uKGp0LEZ0KXtqdCYmKEV0LmN1cnJlbnQ9KDAsYS5aKSgoMCxhLlopKHt9LEV0LmN1cnJlbnQpLHt9LCgwLGcuWikoe30sanQsRnQpKSksZHQucmVnaXN0ZXJGb3JtKGp0LEZ0KX0sdW5yZWdpc3RlckZvcm06ZnVuY3Rpb24oanQpe3ZhciBGdD0oMCxhLlopKHt9LEV0LmN1cnJlbnQpO2RlbGV0ZSBGdFtqdF0sRXQuY3VycmVudD1GdCxkdC51bnJlZ2lzdGVyRm9ybShqdCl9fSl9LGF0KX0sdnQ9bnQsVnQ9WyJuYW1lIiwiaW5pdGlhbFZhbHVlcyIsImZpZWxkcyIsImZvcm0iLCJwcmVzZXJ2ZSIsImNoaWxkcmVuIiwiY29tcG9uZW50IiwidmFsaWRhdGVNZXNzYWdlcyIsInZhbGlkYXRlVHJpZ2dlciIsIm9uVmFsdWVzQ2hhbmdlIiwib25GaWVsZHNDaGFuZ2UiLCJvbkZpbmlzaCIsIm9uRmluaXNoRmFpbGVkIiwiY2xlYXJPbkRlc3Ryb3kiXSxlbj1mdW5jdGlvbihnZSx2ZSl7dmFyIEllPWdlLm5hbWUseGU9Z2UuaW5pdGlhbFZhbHVlcyxhdD1nZS5maWVsZHMsZHQ9Z2UuZm9ybSxFdD1nZS5wcmVzZXJ2ZSxIdD1nZS5jaGlsZHJlbixqdD1nZS5jb21wb25lbnQsRnQ9anQ9PT12b2lkIDA/ImZvcm0iOmp0LHBuPWdlLnZhbGlkYXRlTWVzc2FnZXMsY249Z2UudmFsaWRhdGVUcmlnZ2VyLG9yPWNuPT09dm9pZCAwPyJvbkNoYW5nZSI6Y24sVG49Z2Uub25WYWx1ZXNDaGFuZ2Usem49Z2Uub25GaWVsZHNDaGFuZ2Uscm49Z2Uub25GaW5pc2gsS3Q9Z2Uub25GaW5pc2hGYWlsZWQsenQ9Z2UuY2xlYXJPbkRlc3Ryb3ksT3Q9KDAsdC5aKShnZSxWdCksbG49ci51c2VSZWYobnVsbCksRW49ci51c2VDb250ZXh0KHZ0KSxHbj1IZShkdCkscHI9KDAscnIuWikoR24sMSksUHI9cHJbMF0sYnI9UHIuZ2V0SW50ZXJuYWxIb29rcyhPKSxNcj1ici51c2VTdWJzY3JpYmUsJHI9YnIuc2V0SW5pdGlhbFZhbHVlcyxHcj1ici5zZXRDYWxsYmFja3Msb2E9YnIuc2V0VmFsaWRhdGVNZXNzYWdlcyxyYT1ici5zZXRQcmVzZXJ2ZSxNYT1ici5kZXN0cm95Rm9ybTtyLnVzZUltcGVyYXRpdmVIYW5kbGUodmUsZnVuY3Rpb24oKXtyZXR1cm4oMCxhLlopKCgwLGEuWikoe30sUHIpLHt9LHtuYXRpdmVFbGVtZW50OmxuLmN1cnJlbnR9KX0pLHIudXNlRWZmZWN0KGZ1bmN0aW9uKCl7cmV0dXJuIEVuLnJlZ2lzdGVyRm9ybShJZSxQciksZnVuY3Rpb24oKXtFbi51bnJlZ2lzdGVyRm9ybShJZSl9fSxbRW4sUHIsSWVdKSxvYSgoMCxhLlopKCgwLGEuWikoe30sRW4udmFsaWRhdGVNZXNzYWdlcykscG4pKSxHcih7b25WYWx1ZXNDaGFuZ2U6VG4sb25GaWVsZHNDaGFuZ2U6ZnVuY3Rpb24oSXIpe2lmKEVuLnRyaWdnZXJGb3JtQ2hhbmdlKEllLElyKSx6bil7Zm9yKHZhciBIcj1hcmd1bWVudHMubGVuZ3RoLEpyPW5ldyBBcnJheShIcj4xP0hyLTE6MCksVGE9MTtUYTxIcjtUYSsrKUpyW1RhLTFdPWFyZ3VtZW50c1tUYV07em4uYXBwbHkodm9pZCAwLFtJcl0uY29uY2F0KEpyKSl9fSxvbkZpbmlzaDpmdW5jdGlvbihJcil7RW4udHJpZ2dlckZvcm1GaW5pc2goSWUsSXIpLHJuJiZybihJcil9LG9uRmluaXNoRmFpbGVkOkt0fSkscmEoRXQpO3ZhciBmYT1yLnVzZVJlZihudWxsKTskcih4ZSwhZmEuY3VycmVudCksZmEuY3VycmVudHx8KGZhLmN1cnJlbnQ9ITApLHIudXNlRWZmZWN0KGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIE1hKHp0KX19LFtdKTt2YXIgaGEsZWE9dHlwZW9mIEh0PT0iZnVuY3Rpb24iO2lmKGVhKXt2YXIgTmE9UHIuZ2V0RmllbGRzVmFsdWUoITApO2hhPUh0KE5hLFByKX1lbHNlIGhhPUh0O01yKCFlYSk7dmFyIGJhPXIudXNlUmVmKCk7ci51c2VFZmZlY3QoZnVuY3Rpb24oKXtDdChiYS5jdXJyZW50fHxbXSxhdHx8W10pfHxQci5zZXRGaWVsZHMoYXR8fFtdKSxiYS5jdXJyZW50PWF0fSxbYXQsUHJdKTt2YXIgQXI9ci51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJuKDAsYS5aKSgoMCxhLlopKHt9LFByKSx7fSx7dmFsaWRhdGVUcmlnZ2VyOm9yfSl9LFtQcixvcl0pLFJyPXIuY3JlYXRlRWxlbWVudChSLlByb3ZpZGVyLHt2YWx1ZTpudWxsfSxyLmNyZWF0ZUVsZW1lbnQoTC5Qcm92aWRlcix7dmFsdWU6QXJ9LGhhKSk7cmV0dXJuIEZ0PT09ITE/UnI6ci5jcmVhdGVFbGVtZW50KEZ0LCgwLG4uWikoe30sT3Qse3JlZjpsbixvblN1Ym1pdDpmdW5jdGlvbihJcil7SXIucHJldmVudERlZmF1bHQoKSxJci5zdG9wUHJvcGFnYXRpb24oKSxQci5zdWJtaXQoKX0sb25SZXNldDpmdW5jdGlvbihJcil7dmFyIEhyO0lyLnByZXZlbnREZWZhdWx0KCksUHIucmVzZXRGaWVsZHMoKSwoSHI9T3Qub25SZXNldCk9PT1udWxsfHxIcj09PXZvaWQgMHx8SHIuY2FsbChPdCxJcil9fSksUnIpfSxSbj1lbjtmdW5jdGlvbiBqbihQZSl7dHJ5e3JldHVybiBKU09OLnN0cmluZ2lmeShQZSl9Y2F0Y2goZ2Upe3JldHVybiBNYXRoLnJhbmRvbSgpfX12YXIgYm49ZnVuY3Rpb24oKXt9O2Z1bmN0aW9uIEhuKCl7Zm9yKHZhciBQZT1hcmd1bWVudHMubGVuZ3RoLGdlPW5ldyBBcnJheShQZSksdmU9MDt2ZTxQZTt2ZSsrKWdlW3ZlXT1hcmd1bWVudHNbdmVdO3ZhciBJZT1nZVswXSx4ZT1nZVsxXSxhdD14ZT09PXZvaWQgMD97fTp4ZSxkdD1HKGF0KT97Zm9ybTphdH06YXQsRXQ9ZHQuZm9ybSxIdD0oMCxyLnVzZVN0YXRlKSgpLGp0PSgwLHJyLlopKEh0LDIpLEZ0PWp0WzBdLHBuPWp0WzFdLGNuPSgwLHIudXNlTWVtbykoZnVuY3Rpb24oKXtyZXR1cm4gam4oRnQpfSxbRnRdKSxvcj0oMCxyLnVzZVJlZikoY24pO29yLmN1cnJlbnQ9Y247dmFyIFRuPSgwLHIudXNlQ29udGV4dCkoTCksem49RXR8fFRuLHJuPXpuJiZ6bi5faW5pdCxLdD12bihJZSksenQ9KDAsci51c2VSZWYpKEt0KTtyZXR1cm4genQuY3VycmVudD1LdCxibihLdCksKDAsci51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7aWYocm4pe3ZhciBPdD16bi5nZXRGaWVsZHNWYWx1ZSxsbj16bi5nZXRJbnRlcm5hbEhvb2tzLEVuPWxuKE8pLEduPUVuLnJlZ2lzdGVyV2F0Y2gscHI9ZnVuY3Rpb24oJHIsR3Ipe3ZhciBvYT1kdC5wcmVzZXJ2ZT9HcjokcjtyZXR1cm4gdHlwZW9mIEllPT0iZnVuY3Rpb24iP0llKG9hKTooMCxpci5aKShvYSx6dC5jdXJyZW50KX0sUHI9R24oZnVuY3Rpb24oTXIsJHIpe3ZhciBHcj1wcihNciwkciksb2E9am4oR3IpO29yLmN1cnJlbnQhPT1vYSYmKG9yLmN1cnJlbnQ9b2EscG4oR3IpKX0pLGJyPXByKE90KCksT3QoITApKTtyZXR1cm4gRnQhPT1iciYmcG4oYnIpLFByfX0sW3JuXSksRnR9dmFyIEd0PUhuLFNuPXIuZm9yd2FyZFJlZihSbiksT249U247T24uRm9ybVByb3ZpZGVyPXJ0LE9uLkZpZWxkPUpuLE9uLkxpc3Q9ZnIsT24udXNlRm9ybT1IZSxPbi51c2VXYXRjaD1HdDt2YXIgX249T259LDcyNTEyOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse2l6OmZ1bmN0aW9uKCl7cmV0dXJuIHd0fSxjazpmdW5jdGlvbigpe3JldHVybiBPZX0sQlc6ZnVuY3Rpb24oKXtyZXR1cm4gUG59LHNOOmZ1bmN0aW9uKCl7cmV0dXJuIE9lfSxXZDpmdW5jdGlvbigpe3JldHVybiBldH0sWlA6ZnVuY3Rpb24oKXtyZXR1cm4gd259LFhsOmZ1bmN0aW9uKCl7cmV0dXJuIEp9fSk7dmFyIHI9ZSg4NzQ2Miksbj1lKDQ5NDIpLHQ9ZSgxNDEzKSxpPWUoNzQ5MDIpLHM9ZSg5NzY4NSksYT1lKDkxKSx1PWUoOTM5NjcpLGM9ZS5uKHUpLGg9ZSgzOTk4MyksZD1lKDIxNzcwKSxtPWUoOTE4ODEpLEM9ZSg4MDMzNCksZz1lKDY3Mjk0KSx3PWUoNzM5MzUpLEU9Zy5jcmVhdGVDb250ZXh0KG51bGwpO2Z1bmN0aW9uIHgoQ3QsWnQpe3JldHVybiBDdD09PXZvaWQgMD9udWxsOiIiLmNvbmNhdChDdCwiLSIpLmNvbmNhdChadCl9ZnVuY3Rpb24gTyhDdCl7dmFyIFp0PWcudXNlQ29udGV4dChFKTtyZXR1cm4geChadCxDdCl9dmFyIFQ9ZSg1Njk4MiksUz1bImNoaWxkcmVuIiwibG9ja2VkIl0sTD1nLmNyZWF0ZUNvbnRleHQobnVsbCk7ZnVuY3Rpb24gSShDdCxadCl7dmFyIGFuPSgwLHQuWikoe30sQ3QpO3JldHVybiBPYmplY3Qua2V5cyhadCkuZm9yRWFjaChmdW5jdGlvbihEdCl7dmFyIGt0PVp0W0R0XTtrdCE9PXZvaWQgMCYmKGFuW0R0XT1rdCl9KSxhbn1mdW5jdGlvbiBSKEN0KXt2YXIgWnQ9Q3QuY2hpbGRyZW4sYW49Q3QubG9ja2VkLER0PSgwLGEuWikoQ3QsUyksa3Q9Zy51c2VDb250ZXh0KEwpLHRuPSgwLFQuWikoZnVuY3Rpb24oKXtyZXR1cm4gSShrdCxEdCl9LFtrdCxEdF0sZnVuY3Rpb24obW4sS24pe3JldHVybiFhbiYmKG1uWzBdIT09S25bMF18fCEoMCxtLlopKG1uWzFdLEtuWzFdLCEwKSl9KTtyZXR1cm4gZy5jcmVhdGVFbGVtZW50KEwuUHJvdmlkZXIse3ZhbHVlOnRufSxadCl9dmFyIHo9W10sRz1nLmNyZWF0ZUNvbnRleHQobnVsbCk7ZnVuY3Rpb24gWSgpe3JldHVybiBnLnVzZUNvbnRleHQoRyl9dmFyIGVlPWcuY3JlYXRlQ29udGV4dCh6KTtmdW5jdGlvbiBKKEN0KXt2YXIgWnQ9Zy51c2VDb250ZXh0KGVlKTtyZXR1cm4gZy51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJuIEN0IT09dm9pZCAwP1tdLmNvbmNhdCgoMCxpLlopKFp0KSxbQ3RdKTpadH0sW1p0LEN0XSl9dmFyIG1lPWcuY3JlYXRlQ29udGV4dChudWxsKSx0ZT1nLmNyZWF0ZUNvbnRleHQoe30pLGxlPXRlLGNlPWUoNTExMCk7ZnVuY3Rpb24gVyhDdCl7dmFyIFp0PWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTohMTtpZigoMCxjZS5aKShDdCkpe3ZhciBhbj1DdC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpLER0PVsiaW5wdXQiLCJzZWxlY3QiLCJ0ZXh0YXJlYSIsImJ1dHRvbiJdLmluY2x1ZGVzKGFuKXx8Q3QuaXNDb250ZW50RWRpdGFibGV8fGFuPT09ImEiJiYhIUN0LmdldEF0dHJpYnV0ZSgiaHJlZiIpLGt0PUN0LmdldEF0dHJpYnV0ZSgidGFiaW5kZXgiKSx0bj1OdW1iZXIoa3QpLG1uPW51bGw7cmV0dXJuIGt0JiYhTnVtYmVyLmlzTmFOKHRuKT9tbj10bjpEdCYmbW49PT1udWxsJiYobW49MCksRHQmJkN0LmRpc2FibGVkJiYobW49bnVsbCksbW4hPT1udWxsJiYobW4+PTB8fFp0JiZtbjwwKX1yZXR1cm4hMX1mdW5jdGlvbiBqKEN0KXt2YXIgWnQ9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOiExLGFuPSgwLGkuWikoQ3QucXVlcnlTZWxlY3RvckFsbCgiKiIpKS5maWx0ZXIoZnVuY3Rpb24oRHQpe3JldHVybiBXKER0LFp0KX0pO3JldHVybiBXKEN0LFp0KSYmYW4udW5zaGlmdChDdCksYW59dmFyIEQ9bnVsbDtmdW5jdGlvbiBWKCl7RD1kb2N1bWVudC5hY3RpdmVFbGVtZW50fWZ1bmN0aW9uIFooKXtEPW51bGx9ZnVuY3Rpb24gUCgpe2lmKEQpdHJ5e0QuZm9jdXMoKX1jYXRjaChDdCl7fX1mdW5jdGlvbiBLKEN0LFp0KXtpZihadC5rZXlDb2RlPT09OSl7dmFyIGFuPWooQ3QpLER0PWFuW1p0LnNoaWZ0S2V5PzA6YW4ubGVuZ3RoLTFdLGt0PUR0PT09ZG9jdW1lbnQuYWN0aXZlRWxlbWVudHx8Q3Q9PT1kb2N1bWVudC5hY3RpdmVFbGVtZW50O2lmKGt0KXt2YXIgdG49YW5bWnQuc2hpZnRLZXk/YW4ubGVuZ3RoLTE6MF07dG4uZm9jdXMoKSxadC5wcmV2ZW50RGVmYXVsdCgpfX19dmFyIHNlPWUoMTUxMDUpLG5lPWUoNzUxNjQpLG9lPXNlLlouTEVGVCxmZT1zZS5aLlJJR0hULEVlPXNlLlouVVAsUmU9c2UuWi5ET1dOLEJlPXNlLlouRU5URVIsWWU9c2UuWi5FU0Msb3Q9c2UuWi5IT01FLHFlPXNlLlouRU5ELF9lPVtFZSxSZSxvZSxmZV07ZnVuY3Rpb24gRmUoQ3QsWnQsYW4sRHQpe3ZhciBrdCx0bj0icHJldiIsbW49Im5leHQiLEtuPSJjaGlsZHJlbiIsSm49InBhcmVudCI7aWYoQ3Q9PT0iaW5saW5lIiYmRHQ9PT1CZSlyZXR1cm57aW5saW5lVHJpZ2dlcjohMH07dmFyIFhuPSgwLG4uWikoKDAsbi5aKSh7fSxFZSx0biksUmUsbW4pLGZyPSgwLG4uWikoKDAsbi5aKSgoMCxuLlopKCgwLG4uWikoe30sb2UsYW4/bW46dG4pLGZlLGFuP3RuOm1uKSxSZSxLbiksQmUsS24pLHJyPSgwLG4uWikoKDAsbi5aKSgoMCxuLlopKCgwLG4uWikoKDAsbi5aKSgoMCxuLlopKHt9LEVlLHRuKSxSZSxtbiksQmUsS24pLFllLEpuKSxvZSxhbj9LbjpKbiksZmUsYW4/Sm46S24pLGhyPXtpbmxpbmU6WG4saG9yaXpvbnRhbDpmcix2ZXJ0aWNhbDpycixpbmxpbmVTdWI6WG4saG9yaXpvbnRhbFN1Yjpycix2ZXJ0aWNhbFN1Yjpycn0sRm49KGt0PWhyWyIiLmNvbmNhdChDdCkuY29uY2F0KFp0PyIiOiJTdWIiKV0pPT09bnVsbHx8a3Q9PT12b2lkIDA/dm9pZCAwOmt0W0R0XTtzd2l0Y2goRm4pe2Nhc2UgdG46cmV0dXJue29mZnNldDotMSxzaWJsaW5nOiEwfTtjYXNlIG1uOnJldHVybntvZmZzZXQ6MSxzaWJsaW5nOiEwfTtjYXNlIEpuOnJldHVybntvZmZzZXQ6LTEsc2libGluZzohMX07Y2FzZSBLbjpyZXR1cm57b2Zmc2V0OjEsc2libGluZzohMX07ZGVmYXVsdDpyZXR1cm4gbnVsbH19ZnVuY3Rpb24gU2UoQ3Qpe2Zvcih2YXIgWnQ9Q3Q7WnQ7KXtpZihadC5nZXRBdHRyaWJ1dGUoImRhdGEtbWVudS1saXN0IikpcmV0dXJuIFp0O1p0PVp0LnBhcmVudEVsZW1lbnR9cmV0dXJuIG51bGx9ZnVuY3Rpb24gcShDdCxadCl7Zm9yKHZhciBhbj1DdHx8ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDthbjspe2lmKFp0LmhhcyhhbikpcmV0dXJuIGFuO2FuPWFuLnBhcmVudEVsZW1lbnR9cmV0dXJuIG51bGx9ZnVuY3Rpb24gayhDdCxadCl7dmFyIGFuPWooQ3QsITApO3JldHVybiBhbi5maWx0ZXIoZnVuY3Rpb24oRHQpe3JldHVybiBadC5oYXMoRHQpfSl9ZnVuY3Rpb24gTShDdCxadCxhbil7dmFyIER0PWFyZ3VtZW50cy5sZW5ndGg+MyYmYXJndW1lbnRzWzNdIT09dm9pZCAwP2FyZ3VtZW50c1szXToxO2lmKCFDdClyZXR1cm4gbnVsbDt2YXIga3Q9ayhDdCxadCksdG49a3QubGVuZ3RoLG1uPWt0LmZpbmRJbmRleChmdW5jdGlvbihLbil7cmV0dXJuIGFuPT09S259KTtyZXR1cm4gRHQ8MD9tbj09PS0xP21uPXRuLTE6bW4tPTE6RHQ+MCYmKG1uKz0xKSxtbj0obW4rdG4pJXRuLGt0W21uXX12YXIgQT1mdW5jdGlvbihadCxhbil7dmFyIER0PW5ldyBTZXQsa3Q9bmV3IE1hcCx0bj1uZXcgTWFwO3JldHVybiBadC5mb3JFYWNoKGZ1bmN0aW9uKG1uKXt2YXIgS249ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiW2RhdGEtbWVudS1pZD0nIi5jb25jYXQoeChhbixtbiksIiddIikpO0tuJiYoRHQuYWRkKEtuKSx0bi5zZXQoS24sbW4pLGt0LnNldChtbixLbikpfSkse2VsZW1lbnRzOkR0LGtleTJlbGVtZW50Omt0LGVsZW1lbnQya2V5OnRufX07ZnVuY3Rpb24gVShDdCxadCxhbixEdCxrdCx0bixtbixLbixKbixYbil7dmFyIGZyPWcudXNlUmVmKCkscnI9Zy51c2VSZWYoKTtyci5jdXJyZW50PVp0O3ZhciBocj1mdW5jdGlvbigpe25lLlouY2FuY2VsKGZyLmN1cnJlbnQpfTtyZXR1cm4gZy51c2VFZmZlY3QoZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oKXtocigpfX0sW10pLGZ1bmN0aW9uKEZuKXt2YXIgYXI9Rm4ud2hpY2g7aWYoW10uY29uY2F0KF9lLFtCZSxZZSxvdCxxZV0pLmluY2x1ZGVzKGFyKSl7dmFyIGxyPXRuKCksJG49QShscixEdCksc3I9JG4sRnI9c3IuZWxlbWVudHMsWmU9c3Iua2V5MmVsZW1lbnQsSGU9c3IuZWxlbWVudDJrZXksbnQ9WmUuZ2V0KFp0KSxydD1xKG50LEZyKSx2dD1IZS5nZXQocnQpLFZ0PUZlKEN0LG1uKHZ0LCEwKS5sZW5ndGg9PT0xLGFuLGFyKTtpZighVnQmJmFyIT09b3QmJmFyIT09cWUpcmV0dXJuOyhfZS5pbmNsdWRlcyhhcil8fFtvdCxxZV0uaW5jbHVkZXMoYXIpKSYmRm4ucHJldmVudERlZmF1bHQoKTt2YXIgZW49ZnVuY3Rpb24oX24pe2lmKF9uKXt2YXIgUGU9X24sZ2U9X24ucXVlcnlTZWxlY3RvcigiYSIpO2dlIT1udWxsJiZnZS5nZXRBdHRyaWJ1dGUoImhyZWYiKSYmKFBlPWdlKTt2YXIgdmU9SGUuZ2V0KF9uKTtLbih2ZSksaHIoKSxmci5jdXJyZW50PSgwLG5lLlopKGZ1bmN0aW9uKCl7cnIuY3VycmVudD09PXZlJiZQZS5mb2N1cygpfSl9fTtpZihbb3QscWVdLmluY2x1ZGVzKGFyKXx8VnQuc2libGluZ3x8IXJ0KXt2YXIgUm47IXJ0fHxDdD09PSJpbmxpbmUiP1JuPWt0LmN1cnJlbnQ6Um49U2UocnQpO3ZhciBqbixibj1rKFJuLEZyKTthcj09PW90P2puPWJuWzBdOmFyPT09cWU/am49Ym5bYm4ubGVuZ3RoLTFdOmpuPU0oUm4sRnIscnQsVnQub2Zmc2V0KSxlbihqbil9ZWxzZSBpZihWdC5pbmxpbmVUcmlnZ2VyKUpuKHZ0KTtlbHNlIGlmKFZ0Lm9mZnNldD4wKUpuKHZ0LCEwKSxocigpLGZyLmN1cnJlbnQ9KDAsbmUuWikoZnVuY3Rpb24oKXskbj1BKGxyLER0KTt2YXIgT249cnQuZ2V0QXR0cmlidXRlKCJhcmlhLWNvbnRyb2xzIiksX249ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoT24pLFBlPU0oX24sJG4uZWxlbWVudHMpO2VuKFBlKX0sNSk7ZWxzZSBpZihWdC5vZmZzZXQ8MCl7dmFyIEhuPW1uKHZ0LCEwKSxHdD1IbltIbi5sZW5ndGgtMl0sU249WmUuZ2V0KEd0KTtKbihHdCwhMSksZW4oU24pfX1Ybj09bnVsbHx8WG4oRm4pfX1mdW5jdGlvbiBOKEN0KXtQcm9taXNlLnJlc29sdmUoKS50aGVuKEN0KX12YXIgUT0iX19SQ19VVElMX1BBVEhfU1BMSVRfXyIsdWU9ZnVuY3Rpb24oWnQpe3JldHVybiBadC5qb2luKFEpfSwkPWZ1bmN0aW9uKFp0KXtyZXR1cm4gWnQuc3BsaXQoUSl9LF89InJjLW1lbnUtbW9yZSI7ZnVuY3Rpb24gcGUoKXt2YXIgQ3Q9Zy51c2VTdGF0ZSh7fSksWnQ9KDAscy5aKShDdCwyKSxhbj1adFsxXSxEdD0oMCxnLnVzZVJlZikobmV3IE1hcCksa3Q9KDAsZy51c2VSZWYpKG5ldyBNYXApLHRuPWcudXNlU3RhdGUoW10pLG1uPSgwLHMuWikodG4sMiksS249bW5bMF0sSm49bW5bMV0sWG49KDAsZy51c2VSZWYpKDApLGZyPSgwLGcudXNlUmVmKSghMSkscnI9ZnVuY3Rpb24oKXtmci5jdXJyZW50fHxhbih7fSl9LGhyPSgwLGcudXNlQ2FsbGJhY2spKGZ1bmN0aW9uKFplLEhlKXt2YXIgbnQ9dWUoSGUpO2t0LmN1cnJlbnQuc2V0KG50LFplKSxEdC5jdXJyZW50LnNldChaZSxudCksWG4uY3VycmVudCs9MTt2YXIgcnQ9WG4uY3VycmVudDtOKGZ1bmN0aW9uKCl7cnQ9PT1Ybi5jdXJyZW50JiZycigpfSl9LFtdKSxGbj0oMCxnLnVzZUNhbGxiYWNrKShmdW5jdGlvbihaZSxIZSl7dmFyIG50PXVlKEhlKTtrdC5jdXJyZW50LmRlbGV0ZShudCksRHQuY3VycmVudC5kZWxldGUoWmUpfSxbXSksYXI9KDAsZy51c2VDYWxsYmFjaykoZnVuY3Rpb24oWmUpe0puKFplKX0sW10pLGxyPSgwLGcudXNlQ2FsbGJhY2spKGZ1bmN0aW9uKFplLEhlKXt2YXIgbnQ9RHQuY3VycmVudC5nZXQoWmUpfHwiIixydD0kKG50KTtyZXR1cm4gSGUmJktuLmluY2x1ZGVzKHJ0WzBdKSYmcnQudW5zaGlmdChfKSxydH0sW0tuXSksJG49KDAsZy51c2VDYWxsYmFjaykoZnVuY3Rpb24oWmUsSGUpe3JldHVybiBaZS5maWx0ZXIoZnVuY3Rpb24obnQpe3JldHVybiBudCE9PXZvaWQgMH0pLnNvbWUoZnVuY3Rpb24obnQpe3ZhciBydD1scihudCwhMCk7cmV0dXJuIHJ0LmluY2x1ZGVzKEhlKX0pfSxbbHJdKSxzcj1mdW5jdGlvbigpe3ZhciBIZT0oMCxpLlopKER0LmN1cnJlbnQua2V5cygpKTtyZXR1cm4gS24ubGVuZ3RoJiZIZS5wdXNoKF8pLEhlfSxGcj0oMCxnLnVzZUNhbGxiYWNrKShmdW5jdGlvbihaZSl7dmFyIEhlPSIiLmNvbmNhdChEdC5jdXJyZW50LmdldChaZSkpLmNvbmNhdChRKSxudD1uZXcgU2V0O3JldHVybigwLGkuWikoa3QuY3VycmVudC5rZXlzKCkpLmZvckVhY2goZnVuY3Rpb24ocnQpe3J0LnN0YXJ0c1dpdGgoSGUpJiZudC5hZGQoa3QuY3VycmVudC5nZXQocnQpKX0pLG50fSxbXSk7cmV0dXJuIGcudXNlRWZmZWN0KGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKCl7ZnIuY3VycmVudD0hMH19LFtdKSx7cmVnaXN0ZXJQYXRoOmhyLHVucmVnaXN0ZXJQYXRoOkZuLHJlZnJlc2hPdmVyZmxvd0tleXM6YXIsaXNTdWJQYXRoS2V5OiRuLGdldEtleVBhdGg6bHIsZ2V0S2V5czpzcixnZXRTdWJQYXRoS2V5czpGcn19ZnVuY3Rpb24gcmUoQ3Qpe3ZhciBadD1nLnVzZVJlZihDdCk7WnQuY3VycmVudD1DdDt2YXIgYW49Zy51c2VDYWxsYmFjayhmdW5jdGlvbigpe2Zvcih2YXIgRHQsa3Q9YXJndW1lbnRzLmxlbmd0aCx0bj1uZXcgQXJyYXkoa3QpLG1uPTA7bW48a3Q7bW4rKyl0blttbl09YXJndW1lbnRzW21uXTtyZXR1cm4oRHQ9WnQuY3VycmVudCk9PT1udWxsfHxEdD09PXZvaWQgMD92b2lkIDA6RHQuY2FsbC5hcHBseShEdCxbWnRdLmNvbmNhdCh0bikpfSxbXSk7cmV0dXJuIEN0P2FuOnZvaWQgMH12YXIgYWU9TWF0aC5yYW5kb20oKS50b0ZpeGVkKDUpLnRvU3RyaW5nKCkuc2xpY2UoMiksd2U9MDtmdW5jdGlvbiBMZShDdCl7dmFyIFp0PSgwLGQuWikoQ3Qse3ZhbHVlOkN0fSksYW49KDAscy5aKShadCwyKSxEdD1hblswXSxrdD1hblsxXTtyZXR1cm4gZy51c2VFZmZlY3QoZnVuY3Rpb24oKXt3ZSs9MTt2YXIgdG49IiIuY29uY2F0KGFlLCItIikuY29uY2F0KHdlKTtrdCgicmMtbWVudS11dWlkLSIuY29uY2F0KHRuKSl9LFtdKSxEdH12YXIgTWU9ZSgxNTY3MSksYmU9ZSg0MzE0NCksJGU9ZSg2MDEzNiksa2U9ZSgyOTM4OCksQWU9ZSg5ODQyMyksdHQ9ZSg0MjU1MCk7ZnVuY3Rpb24gbXQoQ3QsWnQsYW4sRHQpe3ZhciBrdD1nLnVzZUNvbnRleHQoTCksdG49a3QuYWN0aXZlS2V5LG1uPWt0Lm9uQWN0aXZlLEtuPWt0Lm9uSW5hY3RpdmUsSm49e2FjdGl2ZTp0bj09PUN0fTtyZXR1cm4gWnR8fChKbi5vbk1vdXNlRW50ZXI9ZnVuY3Rpb24oWG4pe2FuPT1udWxsfHxhbih7a2V5OkN0LGRvbUV2ZW50OlhufSksbW4oQ3QpfSxKbi5vbk1vdXNlTGVhdmU9ZnVuY3Rpb24oWG4pe0R0PT1udWxsfHxEdCh7a2V5OkN0LGRvbUV2ZW50OlhufSksS24oQ3QpfSksSm59ZnVuY3Rpb24gdXQoQ3Qpe3ZhciBadD1nLnVzZUNvbnRleHQoTCksYW49WnQubW9kZSxEdD1adC5ydGwsa3Q9WnQuaW5saW5lSW5kZW50O2lmKGFuIT09ImlubGluZSIpcmV0dXJuIG51bGw7dmFyIHRuPUN0O3JldHVybiBEdD97cGFkZGluZ1JpZ2h0OnRuKmt0fTp7cGFkZGluZ0xlZnQ6dG4qa3R9fWZ1bmN0aW9uIERlKEN0KXt2YXIgWnQ9Q3QuaWNvbixhbj1DdC5wcm9wcyxEdD1DdC5jaGlsZHJlbixrdDtyZXR1cm4gWnQ9PT1udWxsfHxadD09PSExP251bGw6KHR5cGVvZiBadD09ImZ1bmN0aW9uIj9rdD1nLmNyZWF0ZUVsZW1lbnQoWnQsKDAsdC5aKSh7fSxhbikpOnR5cGVvZiBadCE9ImJvb2xlYW4iJiYoa3Q9WnQpLGt0fHxEdHx8bnVsbCl9dmFyIE5lPVsiaXRlbSJdO2Z1bmN0aW9uIFhlKEN0KXt2YXIgWnQ9Q3QuaXRlbSxhbj0oMCxhLlopKEN0LE5lKTtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGFuLCJpdGVtIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuKDAsQy5aUCkoITEsImBpbmZvLml0ZW1gIGlzIGRlcHJlY2F0ZWQgc2luY2Ugd2Ugd2lsbCBtb3ZlIHRvIGZ1bmN0aW9uIGNvbXBvbmVudCB0aGF0IG5vdCBwcm92aWRlcyBSZWFjdCBOb2RlIGluc3RhbmNlIGluIGZ1dHVyZS4iKSxadH19KSxhbn12YXIgSmU9WyJ0aXRsZSIsImF0dHJpYnV0ZSIsImVsZW1lbnRSZWYiXSxndD1bInN0eWxlIiwiY2xhc3NOYW1lIiwiZXZlbnRLZXkiLCJ3YXJuS2V5IiwiZGlzYWJsZWQiLCJpdGVtSWNvbiIsImNoaWxkcmVuIiwicm9sZSIsIm9uTW91c2VFbnRlciIsIm9uTW91c2VMZWF2ZSIsIm9uQ2xpY2siLCJvbktleURvd24iLCJvbkZvY3VzIl0sZGU9WyJhY3RpdmUiXSxXZT1mdW5jdGlvbihDdCl7KDAsJGUuWikoYW4sQ3QpO3ZhciBadD0oMCxrZS5aKShhbik7ZnVuY3Rpb24gYW4oKXtyZXR1cm4oMCxNZS5aKSh0aGlzLGFuKSxadC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuKDAsYmUuWikoYW4sW3trZXk6InJlbmRlciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIga3Q9dGhpcy5wcm9wcyx0bj1rdC50aXRsZSxtbj1rdC5hdHRyaWJ1dGUsS249a3QuZWxlbWVudFJlZixKbj0oMCxhLlopKGt0LEplKSxYbj0oMCxBZS5aKShKbixbImV2ZW50S2V5IiwicG9wdXBDbGFzc05hbWUiLCJwb3B1cE9mZnNldCIsIm9uVGl0bGVDbGljayJdKTtyZXR1cm4oMCxDLlpQKSghbW4sImBhdHRyaWJ1dGVgIG9mIE1lbnUuSXRlbSBpcyBkZXByZWNhdGVkLiBQbGVhc2UgcGFzcyBhdHRyaWJ1dGUgZGlyZWN0bHkuIiksZy5jcmVhdGVFbGVtZW50KGguWi5JdGVtLCgwLHIuWikoe30sbW4se3RpdGxlOnR5cGVvZiB0bj09InN0cmluZyI/dG46dm9pZCAwfSxYbix7cmVmOktufSkpfX1dKSxhbn0oZy5Db21wb25lbnQpLFN0PWcuZm9yd2FyZFJlZihmdW5jdGlvbihDdCxadCl7dmFyIGFuPUN0LnN0eWxlLER0PUN0LmNsYXNzTmFtZSxrdD1DdC5ldmVudEtleSx0bj1DdC53YXJuS2V5LG1uPUN0LmRpc2FibGVkLEtuPUN0Lml0ZW1JY29uLEpuPUN0LmNoaWxkcmVuLFhuPUN0LnJvbGUsZnI9Q3Qub25Nb3VzZUVudGVyLHJyPUN0Lm9uTW91c2VMZWF2ZSxocj1DdC5vbkNsaWNrLEZuPUN0Lm9uS2V5RG93bixhcj1DdC5vbkZvY3VzLGxyPSgwLGEuWikoQ3QsZ3QpLCRuPU8oa3QpLHNyPWcudXNlQ29udGV4dChMKSxGcj1zci5wcmVmaXhDbHMsWmU9c3Iub25JdGVtQ2xpY2ssSGU9c3IuZGlzYWJsZWQsbnQ9c3Iub3ZlcmZsb3dEaXNhYmxlZCxydD1zci5pdGVtSWNvbix2dD1zci5zZWxlY3RlZEtleXMsVnQ9c3Iub25BY3RpdmUsZW49Zy51c2VDb250ZXh0KGxlKSxSbj1lbi5faW50ZXJuYWxSZW5kZXJNZW51SXRlbSxqbj0iIi5jb25jYXQoRnIsIi1pdGVtIiksYm49Zy51c2VSZWYoKSxIbj1nLnVzZVJlZigpLEd0PUhlfHxtbixTbj0oMCx0dC54MSkoWnQsSG4pLE9uPUooa3QpLF9uPWZ1bmN0aW9uKGNuKXtyZXR1cm57a2V5Omt0LGtleVBhdGg6KDAsaS5aKShPbikucmV2ZXJzZSgpLGl0ZW06Ym4uY3VycmVudCxkb21FdmVudDpjbn19LFBlPUtufHxydCxnZT1tdChrdCxHdCxmcixyciksdmU9Z2UuYWN0aXZlLEllPSgwLGEuWikoZ2UsZGUpLHhlPXZ0LmluY2x1ZGVzKGt0KSxhdD11dChPbi5sZW5ndGgpLGR0PWZ1bmN0aW9uKGNuKXtpZighR3Qpe3ZhciBvcj1fbihjbik7aHI9PW51bGx8fGhyKFhlKG9yKSksWmUob3IpfX0sRXQ9ZnVuY3Rpb24oY24pe2lmKEZuPT1udWxsfHxGbihjbiksY24ud2hpY2g9PT1zZS5aLkVOVEVSKXt2YXIgb3I9X24oY24pO2hyPT1udWxsfHxocihYZShvcikpLFplKG9yKX19LEh0PWZ1bmN0aW9uKGNuKXtWdChrdCksYXI9PW51bGx8fGFyKGNuKX0sanQ9e307Q3Qucm9sZT09PSJvcHRpb24iJiYoanRbImFyaWEtc2VsZWN0ZWQiXT14ZSk7dmFyIEZ0PWcuY3JlYXRlRWxlbWVudChXZSwoMCxyLlopKHtyZWY6Ym4sZWxlbWVudFJlZjpTbixyb2xlOlhuPT09bnVsbD8ibm9uZSI6WG58fCJtZW51aXRlbSIsdGFiSW5kZXg6bW4/bnVsbDotMSwiZGF0YS1tZW51LWlkIjpudCYmJG4/bnVsbDokbn0sKDAsQWUuWikobHIsWyJleHRyYSJdKSxJZSxqdCx7Y29tcG9uZW50OiJsaSIsImFyaWEtZGlzYWJsZWQiOm1uLHN0eWxlOigwLHQuWikoKDAsdC5aKSh7fSxhdCksYW4pLGNsYXNzTmFtZTpjKCkoam4sKDAsbi5aKSgoMCxuLlopKCgwLG4uWikoe30sIiIuY29uY2F0KGpuLCItYWN0aXZlIiksdmUpLCIiLmNvbmNhdChqbiwiLXNlbGVjdGVkIikseGUpLCIiLmNvbmNhdChqbiwiLWRpc2FibGVkIiksR3QpLER0KSxvbkNsaWNrOmR0LG9uS2V5RG93bjpFdCxvbkZvY3VzOkh0fSksSm4sZy5jcmVhdGVFbGVtZW50KERlLHtwcm9wczooMCx0LlopKCgwLHQuWikoe30sQ3QpLHt9LHtpc1NlbGVjdGVkOnhlfSksaWNvbjpQZX0pKTtyZXR1cm4gUm4mJihGdD1SbihGdCxDdCx7c2VsZWN0ZWQ6eGV9KSksRnR9KTtmdW5jdGlvbiBjdChDdCxadCl7dmFyIGFuPUN0LmV2ZW50S2V5LER0PVkoKSxrdD1KKGFuKTtyZXR1cm4gZy51c2VFZmZlY3QoZnVuY3Rpb24oKXtpZihEdClyZXR1cm4gRHQucmVnaXN0ZXJQYXRoKGFuLGt0KSxmdW5jdGlvbigpe0R0LnVucmVnaXN0ZXJQYXRoKGFuLGt0KX19LFtrdF0pLER0P251bGw6Zy5jcmVhdGVFbGVtZW50KFN0LCgwLHIuWikoe30sQ3Qse3JlZjpadH0pKX12YXIgT2U9Zy5mb3J3YXJkUmVmKGN0KSxHZT1bImNsYXNzTmFtZSIsImNoaWxkcmVuIl0saHQ9ZnVuY3Rpb24oWnQsYW4pe3ZhciBEdD1adC5jbGFzc05hbWUsa3Q9WnQuY2hpbGRyZW4sdG49KDAsYS5aKShadCxHZSksbW49Zy51c2VDb250ZXh0KEwpLEtuPW1uLnByZWZpeENscyxKbj1tbi5tb2RlLFhuPW1uLnJ0bDtyZXR1cm4gZy5jcmVhdGVFbGVtZW50KCJ1bCIsKDAsci5aKSh7Y2xhc3NOYW1lOmMoKShLbixYbiYmIiIuY29uY2F0KEtuLCItcnRsIiksIiIuY29uY2F0KEtuLCItc3ViIiksIiIuY29uY2F0KEtuLCItIikuY29uY2F0KEpuPT09ImlubGluZSI/ImlubGluZSI6InZlcnRpY2FsIiksRHQpLHJvbGU6Im1lbnUifSx0bix7ImRhdGEtbWVudS1saXN0IjohMCxyZWY6YW59KSxrdCl9LHplPWcuZm9yd2FyZFJlZihodCk7emUuZGlzcGxheU5hbWU9IlN1Yk1lbnVMaXN0Ijt2YXIgUWU9emUscHQ9ZSg1MDM0NCk7ZnVuY3Rpb24gYnQoQ3QsWnQpe3JldHVybigwLHB0LlopKEN0KS5tYXAoZnVuY3Rpb24oYW4sRHQpe2lmKGcuaXNWYWxpZEVsZW1lbnQoYW4pKXt2YXIga3QsdG4sbW49YW4ua2V5LEtuPShrdD0odG49YW4ucHJvcHMpPT09bnVsbHx8dG49PT12b2lkIDA/dm9pZCAwOnRuLmV2ZW50S2V5KSE9PW51bGwmJmt0IT09dm9pZCAwP2t0Om1uLEpuPUtuPT1udWxsO0puJiYoS249InRtcF9rZXktIi5jb25jYXQoW10uY29uY2F0KCgwLGkuWikoWnQpLFtEdF0pLmpvaW4oIi0iKSkpO3ZhciBYbj17a2V5OktuLGV2ZW50S2V5OktufTtyZXR1cm4gZy5jbG9uZUVsZW1lbnQoYW4sWG4pfXJldHVybiBhbn0pfXZhciBJdD1lKDQwMjI4KSxUdD17YWRqdXN0WDoxLGFkanVzdFk6MX0sWHQ9e3RvcExlZnQ6e3BvaW50czpbImJsIiwidGwiXSxvdmVyZmxvdzpUdH0sdG9wUmlnaHQ6e3BvaW50czpbImJyIiwidHIiXSxvdmVyZmxvdzpUdH0sYm90dG9tTGVmdDp7cG9pbnRzOlsidGwiLCJibCJdLG92ZXJmbG93OlR0fSxib3R0b21SaWdodDp7cG9pbnRzOlsidHIiLCJiciJdLG92ZXJmbG93OlR0fSxsZWZ0VG9wOntwb2ludHM6WyJ0ciIsInRsIl0sb3ZlcmZsb3c6VHR9LGxlZnRCb3R0b206e3BvaW50czpbImJyIiwiYmwiXSxvdmVyZmxvdzpUdH0scmlnaHRUb3A6e3BvaW50czpbInRsIiwidHIiXSxvdmVyZmxvdzpUdH0scmlnaHRCb3R0b206e3BvaW50czpbImJsIiwiYnIiXSxvdmVyZmxvdzpUdH19LGZuPXt0b3BMZWZ0Ontwb2ludHM6WyJibCIsInRsIl0sb3ZlcmZsb3c6VHR9LHRvcFJpZ2h0Ontwb2ludHM6WyJiciIsInRyIl0sb3ZlcmZsb3c6VHR9LGJvdHRvbUxlZnQ6e3BvaW50czpbInRsIiwiYmwiXSxvdmVyZmxvdzpUdH0sYm90dG9tUmlnaHQ6e3BvaW50czpbInRyIiwiYnIiXSxvdmVyZmxvdzpUdH0scmlnaHRUb3A6e3BvaW50czpbInRyIiwidGwiXSxvdmVyZmxvdzpUdH0scmlnaHRCb3R0b206e3BvaW50czpbImJyIiwiYmwiXSxvdmVyZmxvdzpUdH0sbGVmdFRvcDp7cG9pbnRzOlsidGwiLCJ0ciJdLG92ZXJmbG93OlR0fSxsZWZ0Qm90dG9tOntwb2ludHM6WyJibCIsImJyIl0sb3ZlcmZsb3c6VHR9fSxubj1udWxsO2Z1bmN0aW9uIG9uKEN0LFp0LGFuKXtpZihadClyZXR1cm4gWnQ7aWYoYW4pcmV0dXJuIGFuW0N0XXx8YW4ub3RoZXJ9dmFyIE50PXtob3Jpem9udGFsOiJib3R0b21MZWZ0Iix2ZXJ0aWNhbDoicmlnaHRUb3AiLCJ2ZXJ0aWNhbC1sZWZ0IjoicmlnaHRUb3AiLCJ2ZXJ0aWNhbC1yaWdodCI6ImxlZnRUb3AifTtmdW5jdGlvbiBabihDdCl7dmFyIFp0PUN0LnByZWZpeENscyxhbj1DdC52aXNpYmxlLER0PUN0LmNoaWxkcmVuLGt0PUN0LnBvcHVwLHRuPUN0LnBvcHVwU3R5bGUsbW49Q3QucG9wdXBDbGFzc05hbWUsS249Q3QucG9wdXBPZmZzZXQsSm49Q3QuZGlzYWJsZWQsWG49Q3QubW9kZSxmcj1DdC5vblZpc2libGVDaGFuZ2UscnI9Zy51c2VDb250ZXh0KEwpLGhyPXJyLmdldFBvcHVwQ29udGFpbmVyLEZuPXJyLnJ0bCxhcj1yci5zdWJNZW51T3BlbkRlbGF5LGxyPXJyLnN1Yk1lbnVDbG9zZURlbGF5LCRuPXJyLmJ1aWx0aW5QbGFjZW1lbnRzLHNyPXJyLnRyaWdnZXJTdWJNZW51QWN0aW9uLEZyPXJyLmZvcmNlU3ViTWVudVJlbmRlcixaZT1yci5yb290Q2xhc3NOYW1lLEhlPXJyLm1vdGlvbixudD1yci5kZWZhdWx0TW90aW9ucyxydD1nLnVzZVN0YXRlKCExKSx2dD0oMCxzLlopKHJ0LDIpLFZ0PXZ0WzBdLGVuPXZ0WzFdLFJuPUZuPygwLHQuWikoKDAsdC5aKSh7fSxmbiksJG4pOigwLHQuWikoKDAsdC5aKSh7fSxYdCksJG4pLGpuPU50W1huXSxibj1vbihYbixIZSxudCksSG49Zy51c2VSZWYoYm4pO1huIT09ImlubGluZSImJihIbi5jdXJyZW50PWJuKTt2YXIgR3Q9KDAsdC5aKSgoMCx0LlopKHt9LEhuLmN1cnJlbnQpLHt9LHtsZWF2ZWRDbGFzc05hbWU6IiIuY29uY2F0KFp0LCItaGlkZGVuIikscmVtb3ZlT25MZWF2ZTohMSxtb3Rpb25BcHBlYXI6ITB9KSxTbj1nLnVzZVJlZigpO3JldHVybiBnLnVzZUVmZmVjdChmdW5jdGlvbigpe3JldHVybiBTbi5jdXJyZW50PSgwLG5lLlopKGZ1bmN0aW9uKCl7ZW4oYW4pfSksZnVuY3Rpb24oKXtuZS5aLmNhbmNlbChTbi5jdXJyZW50KX19LFthbl0pLGcuY3JlYXRlRWxlbWVudChJdC5aLHtwcmVmaXhDbHM6WnQscG9wdXBDbGFzc05hbWU6YygpKCIiLmNvbmNhdChadCwiLXBvcHVwIiksKDAsbi5aKSh7fSwiIi5jb25jYXQoWnQsIi1ydGwiKSxGbiksbW4sWmUpLHN0cmV0Y2g6WG49PT0iaG9yaXpvbnRhbCI/Im1pbldpZHRoIjpudWxsLGdldFBvcHVwQ29udGFpbmVyOmhyLGJ1aWx0aW5QbGFjZW1lbnRzOlJuLHBvcHVwUGxhY2VtZW50OmpuLHBvcHVwVmlzaWJsZTpWdCxwb3B1cDprdCxwb3B1cFN0eWxlOnRuLHBvcHVwQWxpZ246S24mJntvZmZzZXQ6S259LGFjdGlvbjpKbj9bXTpbc3JdLG1vdXNlRW50ZXJEZWxheTphcixtb3VzZUxlYXZlRGVsYXk6bHIsb25Qb3B1cFZpc2libGVDaGFuZ2U6ZnIsZm9yY2VSZW5kZXI6RnIscG9wdXBNb3Rpb246R3QsZnJlc2g6ITB9LER0KX12YXIgeW49ZSgyOTM3Mik7ZnVuY3Rpb24gZ24oQ3Qpe3ZhciBadD1DdC5pZCxhbj1DdC5vcGVuLER0PUN0LmtleVBhdGgsa3Q9Q3QuY2hpbGRyZW4sdG49ImlubGluZSIsbW49Zy51c2VDb250ZXh0KEwpLEtuPW1uLnByZWZpeENscyxKbj1tbi5mb3JjZVN1Yk1lbnVSZW5kZXIsWG49bW4ubW90aW9uLGZyPW1uLmRlZmF1bHRNb3Rpb25zLHJyPW1uLm1vZGUsaHI9Zy51c2VSZWYoITEpO2hyLmN1cnJlbnQ9cnI9PT10bjt2YXIgRm49Zy51c2VTdGF0ZSghaHIuY3VycmVudCksYXI9KDAscy5aKShGbiwyKSxscj1hclswXSwkbj1hclsxXSxzcj1oci5jdXJyZW50P2FuOiExO2cudXNlRWZmZWN0KGZ1bmN0aW9uKCl7aHIuY3VycmVudCYmJG4oITEpfSxbcnJdKTt2YXIgRnI9KDAsdC5aKSh7fSxvbih0bixYbixmcikpO0R0Lmxlbmd0aD4xJiYoRnIubW90aW9uQXBwZWFyPSExKTt2YXIgWmU9RnIub25WaXNpYmxlQ2hhbmdlZDtyZXR1cm4gRnIub25WaXNpYmxlQ2hhbmdlZD1mdW5jdGlvbihIZSl7cmV0dXJuIWhyLmN1cnJlbnQmJiFIZSYmJG4oITApLFplPT1udWxsP3ZvaWQgMDpaZShIZSl9LGxyP251bGw6Zy5jcmVhdGVFbGVtZW50KFIse21vZGU6dG4sbG9ja2VkOiFoci5jdXJyZW50fSxnLmNyZWF0ZUVsZW1lbnQoeW4uWlAsKDAsci5aKSh7dmlzaWJsZTpzcn0sRnIse2ZvcmNlUmVuZGVyOkpuLHJlbW92ZU9uTGVhdmU6ITEsbGVhdmVkQ2xhc3NOYW1lOiIiLmNvbmNhdChLbiwiLWhpZGRlbiIpfSksZnVuY3Rpb24oSGUpe3ZhciBudD1IZS5jbGFzc05hbWUscnQ9SGUuc3R5bGU7cmV0dXJuIGcuY3JlYXRlRWxlbWVudChRZSx7aWQ6WnQsY2xhc3NOYW1lOm50LHN0eWxlOnJ0fSxrdCl9KSl9dmFyIEJuPVsic3R5bGUiLCJjbGFzc05hbWUiLCJ0aXRsZSIsImV2ZW50S2V5Iiwid2FybktleSIsImRpc2FibGVkIiwiaW50ZXJuYWxQb3B1cENsb3NlIiwiY2hpbGRyZW4iLCJpdGVtSWNvbiIsImV4cGFuZEljb24iLCJwb3B1cENsYXNzTmFtZSIsInBvcHVwT2Zmc2V0IiwicG9wdXBTdHlsZSIsIm9uQ2xpY2siLCJvbk1vdXNlRW50ZXIiLCJvbk1vdXNlTGVhdmUiLCJvblRpdGxlQ2xpY2siLCJvblRpdGxlTW91c2VFbnRlciIsIm9uVGl0bGVNb3VzZUxlYXZlIl0sVm49WyJhY3RpdmUiXSxObj1nLmZvcndhcmRSZWYoZnVuY3Rpb24oQ3QsWnQpe3ZhciBhbj1DdC5zdHlsZSxEdD1DdC5jbGFzc05hbWUsa3Q9Q3QudGl0bGUsdG49Q3QuZXZlbnRLZXksbW49Q3Qud2FybktleSxLbj1DdC5kaXNhYmxlZCxKbj1DdC5pbnRlcm5hbFBvcHVwQ2xvc2UsWG49Q3QuY2hpbGRyZW4sZnI9Q3QuaXRlbUljb24scnI9Q3QuZXhwYW5kSWNvbixocj1DdC5wb3B1cENsYXNzTmFtZSxGbj1DdC5wb3B1cE9mZnNldCxhcj1DdC5wb3B1cFN0eWxlLGxyPUN0Lm9uQ2xpY2ssJG49Q3Qub25Nb3VzZUVudGVyLHNyPUN0Lm9uTW91c2VMZWF2ZSxGcj1DdC5vblRpdGxlQ2xpY2ssWmU9Q3Qub25UaXRsZU1vdXNlRW50ZXIsSGU9Q3Qub25UaXRsZU1vdXNlTGVhdmUsbnQ9KDAsYS5aKShDdCxCbikscnQ9Tyh0biksdnQ9Zy51c2VDb250ZXh0KEwpLFZ0PXZ0LnByZWZpeENscyxlbj12dC5tb2RlLFJuPXZ0Lm9wZW5LZXlzLGpuPXZ0LmRpc2FibGVkLGJuPXZ0Lm92ZXJmbG93RGlzYWJsZWQsSG49dnQuYWN0aXZlS2V5LEd0PXZ0LnNlbGVjdGVkS2V5cyxTbj12dC5pdGVtSWNvbixPbj12dC5leHBhbmRJY29uLF9uPXZ0Lm9uSXRlbUNsaWNrLFBlPXZ0Lm9uT3BlbkNoYW5nZSxnZT12dC5vbkFjdGl2ZSx2ZT1nLnVzZUNvbnRleHQobGUpLEllPXZlLl9pbnRlcm5hbFJlbmRlclN1Yk1lbnVJdGVtLHhlPWcudXNlQ29udGV4dChtZSksYXQ9eGUuaXNTdWJQYXRoS2V5LGR0PUooKSxFdD0iIi5jb25jYXQoVnQsIi1zdWJtZW51IiksSHQ9am58fEtuLGp0PWcudXNlUmVmKCksRnQ9Zy51c2VSZWYoKSxwbj1mciE9bnVsbD9mcjpTbixjbj1yciE9bnVsbD9ycjpPbixvcj1Sbi5pbmNsdWRlcyh0biksVG49IWJuJiZvcix6bj1hdChHdCx0bikscm49bXQodG4sSHQsWmUsSGUpLEt0PXJuLmFjdGl2ZSx6dD0oMCxhLlopKHJuLFZuKSxPdD1nLnVzZVN0YXRlKCExKSxsbj0oMCxzLlopKE90LDIpLEVuPWxuWzBdLEduPWxuWzFdLHByPWZ1bmN0aW9uKG1yKXtIdHx8R24obXIpfSxQcj1mdW5jdGlvbihtcil7cHIoITApLCRuPT1udWxsfHwkbih7a2V5OnRuLGRvbUV2ZW50Om1yfSl9LGJyPWZ1bmN0aW9uKG1yKXtwcighMSksc3I9PW51bGx8fHNyKHtrZXk6dG4sZG9tRXZlbnQ6bXJ9KX0sTXI9Zy51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJuIEt0fHwoZW4hPT0iaW5saW5lIj9Fbnx8YXQoW0huXSx0bik6ITEpfSxbZW4sS3QsSG4sRW4sdG4sYXRdKSwkcj11dChkdC5sZW5ndGgpLEdyPWZ1bmN0aW9uKG1yKXtIdHx8KEZyPT1udWxsfHxGcih7a2V5OnRuLGRvbUV2ZW50Om1yfSksZW49PT0iaW5saW5lIiYmUGUodG4sIW9yKSl9LG9hPXJlKGZ1bmN0aW9uKFJyKXtscj09bnVsbHx8bHIoWGUoUnIpKSxfbihScil9KSxyYT1mdW5jdGlvbihtcil7ZW4hPT0iaW5saW5lIiYmUGUodG4sbXIpfSxNYT1mdW5jdGlvbigpe2dlKHRuKX0sZmE9cnQmJiIiLmNvbmNhdChydCwiLXBvcHVwIiksaGE9Zy51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJuIGcuY3JlYXRlRWxlbWVudChEZSx7aWNvbjplbiE9PSJob3Jpem9udGFsIj9jbjp2b2lkIDAscHJvcHM6KDAsdC5aKSgoMCx0LlopKHt9LEN0KSx7fSx7aXNPcGVuOlRuLGlzU3ViTWVudTohMH0pfSxnLmNyZWF0ZUVsZW1lbnQoImkiLHtjbGFzc05hbWU6IiIuY29uY2F0KEV0LCItYXJyb3ciKX0pKX0sW2VuLGNuLEN0LFRuLEV0XSksZWE9Zy5jcmVhdGVFbGVtZW50KCJkaXYiLCgwLHIuWikoe3JvbGU6Im1lbnVpdGVtIixzdHlsZTokcixjbGFzc05hbWU6IiIuY29uY2F0KEV0LCItdGl0bGUiKSx0YWJJbmRleDpIdD9udWxsOi0xLHJlZjpqdCx0aXRsZTp0eXBlb2Yga3Q9PSJzdHJpbmciP2t0Om51bGwsImRhdGEtbWVudS1pZCI6Ym4mJnJ0P251bGw6cnQsImFyaWEtZXhwYW5kZWQiOlRuLCJhcmlhLWhhc3BvcHVwIjohMCwiYXJpYS1jb250cm9scyI6ZmEsImFyaWEtZGlzYWJsZWQiOkh0LG9uQ2xpY2s6R3Isb25Gb2N1czpNYX0senQpLGt0LGhhKSxOYT1nLnVzZVJlZihlbik7aWYoZW4hPT0iaW5saW5lIiYmZHQubGVuZ3RoPjE/TmEuY3VycmVudD0idmVydGljYWwiOk5hLmN1cnJlbnQ9ZW4sIWJuKXt2YXIgYmE9TmEuY3VycmVudDtlYT1nLmNyZWF0ZUVsZW1lbnQoWm4se21vZGU6YmEscHJlZml4Q2xzOkV0LHZpc2libGU6IUpuJiZUbiYmZW4hPT0iaW5saW5lIixwb3B1cENsYXNzTmFtZTpocixwb3B1cE9mZnNldDpGbixwb3B1cFN0eWxlOmFyLHBvcHVwOmcuY3JlYXRlRWxlbWVudChSLHttb2RlOmJhPT09Imhvcml6b250YWwiPyJ2ZXJ0aWNhbCI6YmF9LGcuY3JlYXRlRWxlbWVudChRZSx7aWQ6ZmEscmVmOkZ0fSxYbikpLGRpc2FibGVkOkh0LG9uVmlzaWJsZUNoYW5nZTpyYX0sZWEpfXZhciBBcj1nLmNyZWF0ZUVsZW1lbnQoaC5aLkl0ZW0sKDAsci5aKSh7cmVmOlp0LHJvbGU6Im5vbmUifSxudCx7Y29tcG9uZW50OiJsaSIsc3R5bGU6YW4sY2xhc3NOYW1lOmMoKShFdCwiIi5jb25jYXQoRXQsIi0iKS5jb25jYXQoZW4pLER0LCgwLG4uWikoKDAsbi5aKSgoMCxuLlopKCgwLG4uWikoe30sIiIuY29uY2F0KEV0LCItb3BlbiIpLFRuKSwiIi5jb25jYXQoRXQsIi1hY3RpdmUiKSxNciksIiIuY29uY2F0KEV0LCItc2VsZWN0ZWQiKSx6biksIiIuY29uY2F0KEV0LCItZGlzYWJsZWQiKSxIdCkpLG9uTW91c2VFbnRlcjpQcixvbk1vdXNlTGVhdmU6YnJ9KSxlYSwhYm4mJmcuY3JlYXRlRWxlbWVudChnbix7aWQ6ZmEsb3BlbjpUbixrZXlQYXRoOmR0fSxYbikpO3JldHVybiBJZSYmKEFyPUllKEFyLEN0LHtzZWxlY3RlZDp6bixhY3RpdmU6TXIsb3BlbjpUbixkaXNhYmxlZDpIdH0pKSxnLmNyZWF0ZUVsZW1lbnQoUix7b25JdGVtQ2xpY2s6b2EsbW9kZTplbj09PSJob3Jpem9udGFsIj8idmVydGljYWwiOmVuLGl0ZW1JY29uOnBuLGV4cGFuZEljb246Y259LEFyKX0pLGZ0PWcuZm9yd2FyZFJlZihmdW5jdGlvbihDdCxadCl7dmFyIGFuPUN0LmV2ZW50S2V5LER0PUN0LmNoaWxkcmVuLGt0PUooYW4pLHRuPWJ0KER0LGt0KSxtbj1ZKCk7Zy51c2VFZmZlY3QoZnVuY3Rpb24oKXtpZihtbilyZXR1cm4gbW4ucmVnaXN0ZXJQYXRoKGFuLGt0KSxmdW5jdGlvbigpe21uLnVucmVnaXN0ZXJQYXRoKGFuLGt0KX19LFtrdF0pO3ZhciBLbjtyZXR1cm4gbW4/S249dG46S249Zy5jcmVhdGVFbGVtZW50KE5uLCgwLHIuWikoe3JlZjpadH0sQ3QpLHRuKSxnLmNyZWF0ZUVsZW1lbnQoZWUuUHJvdmlkZXIse3ZhbHVlOmt0fSxLbil9KSxldD1mdCxKdD1lKDcxMDAyKTtmdW5jdGlvbiB3dChDdCl7dmFyIFp0PUN0LmNsYXNzTmFtZSxhbj1DdC5zdHlsZSxEdD1nLnVzZUNvbnRleHQoTCksa3Q9RHQucHJlZml4Q2xzLHRuPVkoKTtyZXR1cm4gdG4/bnVsbDpnLmNyZWF0ZUVsZW1lbnQoImxpIix7cm9sZToic2VwYXJhdG9yIixjbGFzc05hbWU6YygpKCIiLmNvbmNhdChrdCwiLWl0ZW0tZGl2aWRlciIpLFp0KSxzdHlsZTphbn0pfXZhciBfdD1bImNsYXNzTmFtZSIsInRpdGxlIiwiZXZlbnRLZXkiLCJjaGlsZHJlbiJdLHhuPWcuZm9yd2FyZFJlZihmdW5jdGlvbihDdCxadCl7dmFyIGFuPUN0LmNsYXNzTmFtZSxEdD1DdC50aXRsZSxrdD1DdC5ldmVudEtleSx0bj1DdC5jaGlsZHJlbixtbj0oMCxhLlopKEN0LF90KSxLbj1nLnVzZUNvbnRleHQoTCksSm49S24ucHJlZml4Q2xzLFhuPSIiLmNvbmNhdChKbiwiLWl0ZW0tZ3JvdXAiKTtyZXR1cm4gZy5jcmVhdGVFbGVtZW50KCJsaSIsKDAsci5aKSh7cmVmOlp0LHJvbGU6InByZXNlbnRhdGlvbiJ9LG1uLHtvbkNsaWNrOmZ1bmN0aW9uKHJyKXtyZXR1cm4gcnIuc3RvcFByb3BhZ2F0aW9uKCl9LGNsYXNzTmFtZTpjKCkoWG4sYW4pfSksZy5jcmVhdGVFbGVtZW50KCJkaXYiLHtyb2xlOiJwcmVzZW50YXRpb24iLGNsYXNzTmFtZToiIi5jb25jYXQoWG4sIi10aXRsZSIpLHRpdGxlOnR5cGVvZiBEdD09InN0cmluZyI/RHQ6dm9pZCAwfSxEdCksZy5jcmVhdGVFbGVtZW50KCJ1bCIse3JvbGU6Imdyb3VwIixjbGFzc05hbWU6IiIuY29uY2F0KFhuLCItbGlzdCIpfSx0bikpfSksWW49Zy5mb3J3YXJkUmVmKGZ1bmN0aW9uKEN0LFp0KXt2YXIgYW49Q3QuZXZlbnRLZXksRHQ9Q3QuY2hpbGRyZW4sa3Q9SihhbiksdG49YnQoRHQsa3QpLG1uPVkoKTtyZXR1cm4gbW4/dG46Zy5jcmVhdGVFbGVtZW50KHhuLCgwLHIuWikoe3JlZjpadH0sKDAsQWUuWikoQ3QsWyJ3YXJuS2V5Il0pKSx0bil9KSxQbj1ZbixMbj1bImxhYmVsIiwiY2hpbGRyZW4iLCJrZXkiLCJ0eXBlIiwiZXh0cmEiXTtmdW5jdGlvbiBlcihDdCxadCxhbil7dmFyIER0PVp0Lml0ZW0sa3Q9WnQuZ3JvdXAsdG49WnQuc3VibWVudSxtbj1adC5kaXZpZGVyO3JldHVybihDdHx8W10pLm1hcChmdW5jdGlvbihLbixKbil7aWYoS24mJigwLEp0LlopKEtuKT09PSJvYmplY3QiKXt2YXIgWG49S24sZnI9WG4ubGFiZWwscnI9WG4uY2hpbGRyZW4saHI9WG4ua2V5LEZuPVhuLnR5cGUsYXI9WG4uZXh0cmEsbHI9KDAsYS5aKShYbixMbiksJG49aHIhPW51bGw/aHI6InRtcC0iLmNvbmNhdChKbik7cmV0dXJuIHJyfHxGbj09PSJncm91cCI/Rm49PT0iZ3JvdXAiP2cuY3JlYXRlRWxlbWVudChrdCwoMCxyLlopKHtrZXk6JG59LGxyLHt0aXRsZTpmcn0pLGVyKHJyLFp0LGFuKSk6Zy5jcmVhdGVFbGVtZW50KHRuLCgwLHIuWikoe2tleTokbn0sbHIse3RpdGxlOmZyfSksZXIocnIsWnQsYW4pKTpGbj09PSJkaXZpZGVyIj9nLmNyZWF0ZUVsZW1lbnQobW4sKDAsci5aKSh7a2V5OiRufSxscikpOmcuY3JlYXRlRWxlbWVudChEdCwoMCxyLlopKHtrZXk6JG59LGxyLHtleHRyYTphcn0pLGZyLCghIWFyfHxhcj09PTApJiZnLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6IiIuY29uY2F0KGFuLCItaXRlbS1leHRyYSIpfSxhcikpfXJldHVybiBudWxsfSkuZmlsdGVyKGZ1bmN0aW9uKEtuKXtyZXR1cm4gS259KX1mdW5jdGlvbiBRbihDdCxadCxhbixEdCxrdCl7dmFyIHRuPUN0LG1uPSgwLHQuWikoe2RpdmlkZXI6d3QsaXRlbTpPZSxncm91cDpQbixzdWJtZW51OmV0fSxEdCk7cmV0dXJuIFp0JiYodG49ZXIoWnQsbW4sa3QpKSxidCh0bixhbil9dmFyIHVyPVsicHJlZml4Q2xzIiwicm9vdENsYXNzTmFtZSIsInN0eWxlIiwiY2xhc3NOYW1lIiwidGFiSW5kZXgiLCJpdGVtcyIsImNoaWxkcmVuIiwiZGlyZWN0aW9uIiwiaWQiLCJtb2RlIiwiaW5saW5lQ29sbGFwc2VkIiwiZGlzYWJsZWQiLCJkaXNhYmxlZE92ZXJmbG93Iiwic3ViTWVudU9wZW5EZWxheSIsInN1Yk1lbnVDbG9zZURlbGF5IiwiZm9yY2VTdWJNZW51UmVuZGVyIiwiZGVmYXVsdE9wZW5LZXlzIiwib3BlbktleXMiLCJhY3RpdmVLZXkiLCJkZWZhdWx0QWN0aXZlRmlyc3QiLCJzZWxlY3RhYmxlIiwibXVsdGlwbGUiLCJkZWZhdWx0U2VsZWN0ZWRLZXlzIiwic2VsZWN0ZWRLZXlzIiwib25TZWxlY3QiLCJvbkRlc2VsZWN0IiwiaW5saW5lSW5kZW50IiwibW90aW9uIiwiZGVmYXVsdE1vdGlvbnMiLCJ0cmlnZ2VyU3ViTWVudUFjdGlvbiIsImJ1aWx0aW5QbGFjZW1lbnRzIiwiaXRlbUljb24iLCJleHBhbmRJY29uIiwib3ZlcmZsb3dlZEluZGljYXRvciIsIm92ZXJmbG93ZWRJbmRpY2F0b3JQb3B1cENsYXNzTmFtZSIsImdldFBvcHVwQ29udGFpbmVyIiwib25DbGljayIsIm9uT3BlbkNoYW5nZSIsIm9uS2V5RG93biIsIm9wZW5BbmltYXRpb24iLCJvcGVuVHJhbnNpdGlvbk5hbWUiLCJfaW50ZXJuYWxSZW5kZXJNZW51SXRlbSIsIl9pbnRlcm5hbFJlbmRlclN1Yk1lbnVJdGVtIiwiX2ludGVybmFsQ29tcG9uZW50cyJdLGlyPVtdLHZuPWcuZm9yd2FyZFJlZihmdW5jdGlvbihDdCxadCl7dmFyIGFuLER0PUN0LGt0PUR0LnByZWZpeENscyx0bj1rdD09PXZvaWQgMD8icmMtbWVudSI6a3QsbW49RHQucm9vdENsYXNzTmFtZSxLbj1EdC5zdHlsZSxKbj1EdC5jbGFzc05hbWUsWG49RHQudGFiSW5kZXgsZnI9WG49PT12b2lkIDA/MDpYbixycj1EdC5pdGVtcyxocj1EdC5jaGlsZHJlbixGbj1EdC5kaXJlY3Rpb24sYXI9RHQuaWQsbHI9RHQubW9kZSwkbj1scj09PXZvaWQgMD8idmVydGljYWwiOmxyLHNyPUR0LmlubGluZUNvbGxhcHNlZCxGcj1EdC5kaXNhYmxlZCxaZT1EdC5kaXNhYmxlZE92ZXJmbG93LEhlPUR0LnN1Yk1lbnVPcGVuRGVsYXksbnQ9SGU9PT12b2lkIDA/LjE6SGUscnQ9RHQuc3ViTWVudUNsb3NlRGVsYXksdnQ9cnQ9PT12b2lkIDA/LjE6cnQsVnQ9RHQuZm9yY2VTdWJNZW51UmVuZGVyLGVuPUR0LmRlZmF1bHRPcGVuS2V5cyxSbj1EdC5vcGVuS2V5cyxqbj1EdC5hY3RpdmVLZXksYm49RHQuZGVmYXVsdEFjdGl2ZUZpcnN0LEhuPUR0LnNlbGVjdGFibGUsR3Q9SG49PT12b2lkIDA/ITA6SG4sU249RHQubXVsdGlwbGUsT249U249PT12b2lkIDA/ITE6U24sX249RHQuZGVmYXVsdFNlbGVjdGVkS2V5cyxQZT1EdC5zZWxlY3RlZEtleXMsZ2U9RHQub25TZWxlY3QsdmU9RHQub25EZXNlbGVjdCxJZT1EdC5pbmxpbmVJbmRlbnQseGU9SWU9PT12b2lkIDA/MjQ6SWUsYXQ9RHQubW90aW9uLGR0PUR0LmRlZmF1bHRNb3Rpb25zLEV0PUR0LnRyaWdnZXJTdWJNZW51QWN0aW9uLEh0PUV0PT09dm9pZCAwPyJob3ZlciI6RXQsanQ9RHQuYnVpbHRpblBsYWNlbWVudHMsRnQ9RHQuaXRlbUljb24scG49RHQuZXhwYW5kSWNvbixjbj1EdC5vdmVyZmxvd2VkSW5kaWNhdG9yLG9yPWNuPT09dm9pZCAwPyIuLi4iOmNuLFRuPUR0Lm92ZXJmbG93ZWRJbmRpY2F0b3JQb3B1cENsYXNzTmFtZSx6bj1EdC5nZXRQb3B1cENvbnRhaW5lcixybj1EdC5vbkNsaWNrLEt0PUR0Lm9uT3BlbkNoYW5nZSx6dD1EdC5vbktleURvd24sT3Q9RHQub3BlbkFuaW1hdGlvbixsbj1EdC5vcGVuVHJhbnNpdGlvbk5hbWUsRW49RHQuX2ludGVybmFsUmVuZGVyTWVudUl0ZW0sR249RHQuX2ludGVybmFsUmVuZGVyU3ViTWVudUl0ZW0scHI9RHQuX2ludGVybmFsQ29tcG9uZW50cyxQcj0oMCxhLlopKER0LHVyKSxicj1nLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm5bUW4oaHIscnIsaXIscHIsdG4pLFFuKGhyLHJyLGlyLHt9LHRuKV19LFtocixycixwcl0pLE1yPSgwLHMuWikoYnIsMiksJHI9TXJbMF0sR3I9TXJbMV0sb2E9Zy51c2VTdGF0ZSghMSkscmE9KDAscy5aKShvYSwyKSxNYT1yYVswXSxmYT1yYVsxXSxoYT1nLnVzZVJlZigpLGVhPUxlKGFyKSxOYT1Gbj09PSJydGwiLGJhPSgwLGQuWikoZW4se3ZhbHVlOlJuLHBvc3RTdGF0ZTpmdW5jdGlvbihJYSl7cmV0dXJuIElhfHxpcn19KSxBcj0oMCxzLlopKGJhLDIpLFJyPUFyWzBdLG1yPUFyWzFdLElyPWZ1bmN0aW9uKElhKXt2YXIgZ2E9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOiExO2Z1bmN0aW9uIEhhKCl7bXIoSWEpLEt0PT1udWxsfHxLdChJYSl9Z2E/KDAsdy5mbHVzaFN5bmMpKEhhKTpIYSgpfSxIcj1nLnVzZVN0YXRlKFJyKSxKcj0oMCxzLlopKEhyLDIpLFRhPUpyWzBdLGphPUpyWzFdLCRhPWcudXNlUmVmKCExKSx5cj1nLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4oJG49PT0iaW5saW5lInx8JG49PT0idmVydGljYWwiKSYmc3I/WyJ2ZXJ0aWNhbCIsc3JdOlskbiwhMV19LFskbixzcl0pLFZyPSgwLHMuWikoeXIsMiksU2E9VnJbMF0sRmE9VnJbMV0sUmE9U2E9PT0iaW5saW5lIixybz1nLnVzZVN0YXRlKFNhKSx1bz0oMCxzLlopKHJvLDIpLG5vPXVvWzBdLHpvPXVvWzFdLGdvPWcudXNlU3RhdGUoRmEpLGZvPSgwLHMuWikoZ28sMiksVGk9Zm9bMF0sVW89Zm9bMV07Zy51c2VFZmZlY3QoZnVuY3Rpb24oKXt6byhTYSksVW8oRmEpLCRhLmN1cnJlbnQmJihSYT9tcihUYSk6SXIoaXIpKX0sW1NhLEZhXSk7dmFyIFdvPWcudXNlU3RhdGUoMCksZ2k9KDAscy5aKShXbywyKSxhbz1naVswXSxwaT1naVsxXSxIbz1hbz49JHIubGVuZ3RoLTF8fG5vIT09Imhvcml6b250YWwifHxaZTtnLnVzZUVmZmVjdChmdW5jdGlvbigpe1JhJiZqYShScil9LFtScl0pLGcudXNlRWZmZWN0KGZ1bmN0aW9uKCl7cmV0dXJuICRhLmN1cnJlbnQ9ITAsZnVuY3Rpb24oKXskYS5jdXJyZW50PSExfX0sW10pO3ZhciBSbz1wZSgpLEZvPVJvLnJlZ2lzdGVyUGF0aCxsdD1Sby51bnJlZ2lzdGVyUGF0aCxpZT1Sby5yZWZyZXNoT3ZlcmZsb3dLZXlzLHllPVJvLmlzU3ViUGF0aEtleSxCPVJvLmdldEtleVBhdGgsVmU9Um8uZ2V0S2V5cyxzdD1Sby5nZXRTdWJQYXRoS2V5cyxSdD1nLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm57cmVnaXN0ZXJQYXRoOkZvLHVucmVnaXN0ZXJQYXRoOmx0fX0sW0ZvLGx0XSksQnQ9Zy51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJue2lzU3ViUGF0aEtleTp5ZX19LFt5ZV0pO2cudXNlRWZmZWN0KGZ1bmN0aW9uKCl7aWUoSG8/aXI6JHIuc2xpY2UoYW8rMSkubWFwKGZ1bmN0aW9uKHlhKXtyZXR1cm4geWEua2V5fSkpfSxbYW8sSG9dKTt2YXIgTHQ9KDAsZC5aKShqbnx8Ym4mJigoYW49JHJbMF0pPT09bnVsbHx8YW49PT12b2lkIDA/dm9pZCAwOmFuLmtleSkse3ZhbHVlOmpufSksWXQ9KDAscy5aKShMdCwyKSxBbj1ZdFswXSxzbj1ZdFsxXSxxdD1yZShmdW5jdGlvbih5YSl7c24oeWEpfSksTW49cmUoZnVuY3Rpb24oKXtzbih2b2lkIDApfSk7KDAsZy51c2VJbXBlcmF0aXZlSGFuZGxlKShadCxmdW5jdGlvbigpe3JldHVybntsaXN0OmhhLmN1cnJlbnQsZm9jdXM6ZnVuY3Rpb24oSWEpe3ZhciBnYSxIYT1WZSgpLFBhPUEoSGEsZWEpLGVvPVBhLmVsZW1lbnRzLFVhPVBhLmtleTJlbGVtZW50LHZvPVBhLmVsZW1lbnQya2V5LEdhPWsoaGEuY3VycmVudCxlbyksb289QW4hPW51bGw/QW46R2FbMF0/dm8uZ2V0KEdhWzBdKTooZ2E9JHIuZmluZChmdW5jdGlvbihsbyl7cmV0dXJuIWxvLnByb3BzLmRpc2FibGVkfSkpPT09bnVsbHx8Z2E9PT12b2lkIDA/dm9pZCAwOmdhLmtleSxpbz1VYS5nZXQob28pO2lmKG9vJiZpbyl7dmFyIE9vO2lvPT1udWxsfHwoT289aW8uZm9jdXMpPT09bnVsbHx8T289PT12b2lkIDB8fE9vLmNhbGwoaW8sSWEpfX19fSk7dmFyIENyPSgwLGQuWikoX258fFtdLHt2YWx1ZTpQZSxwb3N0U3RhdGU6ZnVuY3Rpb24oSWEpe3JldHVybiBBcnJheS5pc0FycmF5KElhKT9JYTpJYT09bnVsbD9pcjpbSWFdfX0pLHFuPSgwLHMuWikoQ3IsMiksanI9cW5bMF0sQ249cW5bMV0sTHI9ZnVuY3Rpb24oSWEpe2lmKEd0KXt2YXIgZ2E9SWEua2V5LEhhPWpyLmluY2x1ZGVzKGdhKSxQYTtPbj9IYT9QYT1qci5maWx0ZXIoZnVuY3Rpb24oVWEpe3JldHVybiBVYSE9PWdhfSk6UGE9W10uY29uY2F0KCgwLGkuWikoanIpLFtnYV0pOlBhPVtnYV0sQ24oUGEpO3ZhciBlbz0oMCx0LlopKCgwLHQuWikoe30sSWEpLHt9LHtzZWxlY3RlZEtleXM6UGF9KTtIYT92ZT09bnVsbHx8dmUoZW8pOmdlPT1udWxsfHxnZShlbyl9IU9uJiZSci5sZW5ndGgmJm5vIT09ImlubGluZSImJklyKGlyKX0sRHI9cmUoZnVuY3Rpb24oeWEpe3JuPT1udWxsfHxybihYZSh5YSkpLExyKHlhKX0pLE5yPXJlKGZ1bmN0aW9uKHlhLElhKXt2YXIgZ2E9UnIuZmlsdGVyKGZ1bmN0aW9uKFBhKXtyZXR1cm4gUGEhPT15YX0pO2lmKElhKWdhLnB1c2goeWEpO2Vsc2UgaWYobm8hPT0iaW5saW5lIil7dmFyIEhhPXN0KHlhKTtnYT1nYS5maWx0ZXIoZnVuY3Rpb24oUGEpe3JldHVybiFIYS5oYXMoUGEpfSl9KDAsbS5aKShScixnYSwhMCl8fElyKGdhLCEwKX0pLHRhPWZ1bmN0aW9uKElhLGdhKXt2YXIgSGE9Z2EhPW51bGw/Z2E6IVJyLmluY2x1ZGVzKElhKTtOcihJYSxIYSl9LHZhPVUobm8sQW4sTmEsZWEsaGEsVmUsQixzbix0YSx6dCk7Zy51c2VFZmZlY3QoZnVuY3Rpb24oKXtmYSghMCl9LFtdKTt2YXIgWHI9Zy51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJue19pbnRlcm5hbFJlbmRlck1lbnVJdGVtOkVuLF9pbnRlcm5hbFJlbmRlclN1Yk1lbnVJdGVtOkdufX0sW0VuLEduXSksRWE9bm8hPT0iaG9yaXpvbnRhbCJ8fFplPyRyOiRyLm1hcChmdW5jdGlvbih5YSxJYSl7cmV0dXJuIGcuY3JlYXRlRWxlbWVudChSLHtrZXk6eWEua2V5LG92ZXJmbG93RGlzYWJsZWQ6SWE+YW99LHlhKX0pLHBvPWcuY3JlYXRlRWxlbWVudChoLlosKDAsci5aKSh7aWQ6YXIscmVmOmhhLHByZWZpeENsczoiIi5jb25jYXQodG4sIi1vdmVyZmxvdyIpLGNvbXBvbmVudDoidWwiLGl0ZW1Db21wb25lbnQ6T2UsY2xhc3NOYW1lOmMoKSh0biwiIi5jb25jYXQodG4sIi1yb290IiksIiIuY29uY2F0KHRuLCItIikuY29uY2F0KG5vKSxKbiwoMCxuLlopKCgwLG4uWikoe30sIiIuY29uY2F0KHRuLCItaW5saW5lLWNvbGxhcHNlZCIpLFRpKSwiIi5jb25jYXQodG4sIi1ydGwiKSxOYSksbW4pLGRpcjpGbixzdHlsZTpLbixyb2xlOiJtZW51Iix0YWJJbmRleDpmcixkYXRhOkVhLHJlbmRlclJhd0l0ZW06ZnVuY3Rpb24oSWEpe3JldHVybiBJYX0scmVuZGVyUmF3UmVzdDpmdW5jdGlvbihJYSl7dmFyIGdhPUlhLmxlbmd0aCxIYT1nYT8kci5zbGljZSgtZ2EpOm51bGw7cmV0dXJuIGcuY3JlYXRlRWxlbWVudChldCx7ZXZlbnRLZXk6Xyx0aXRsZTpvcixkaXNhYmxlZDpIbyxpbnRlcm5hbFBvcHVwQ2xvc2U6Z2E9PT0wLHBvcHVwQ2xhc3NOYW1lOlRufSxIYSl9LG1heENvdW50Om5vIT09Imhvcml6b250YWwifHxaZT9oLlouSU5WQUxJREFURTpoLlouUkVTUE9OU0lWRSxzc3I6ImZ1bGwiLCJkYXRhLW1lbnUtbGlzdCI6ITAsb25WaXNpYmxlQ2hhbmdlOmZ1bmN0aW9uKElhKXtwaShJYSl9LG9uS2V5RG93bjp2YX0sUHIpKTtyZXR1cm4gZy5jcmVhdGVFbGVtZW50KGxlLlByb3ZpZGVyLHt2YWx1ZTpYcn0sZy5jcmVhdGVFbGVtZW50KEUuUHJvdmlkZXIse3ZhbHVlOmVhfSxnLmNyZWF0ZUVsZW1lbnQoUix7cHJlZml4Q2xzOnRuLHJvb3RDbGFzc05hbWU6bW4sbW9kZTpubyxvcGVuS2V5czpScixydGw6TmEsZGlzYWJsZWQ6RnIsbW90aW9uOk1hP2F0Om51bGwsZGVmYXVsdE1vdGlvbnM6TWE/ZHQ6bnVsbCxhY3RpdmVLZXk6QW4sb25BY3RpdmU6cXQsb25JbmFjdGl2ZTpNbixzZWxlY3RlZEtleXM6anIsaW5saW5lSW5kZW50OnhlLHN1Yk1lbnVPcGVuRGVsYXk6bnQsc3ViTWVudUNsb3NlRGVsYXk6dnQsZm9yY2VTdWJNZW51UmVuZGVyOlZ0LGJ1aWx0aW5QbGFjZW1lbnRzOmp0LHRyaWdnZXJTdWJNZW51QWN0aW9uOkh0LGdldFBvcHVwQ29udGFpbmVyOnpuLGl0ZW1JY29uOkZ0LGV4cGFuZEljb246cG4sb25JdGVtQ2xpY2s6RHIsb25PcGVuQ2hhbmdlOk5yfSxnLmNyZWF0ZUVsZW1lbnQobWUuUHJvdmlkZXIse3ZhbHVlOkJ0fSxwbyksZy5jcmVhdGVFbGVtZW50KCJkaXYiLHtzdHlsZTp7ZGlzcGxheToibm9uZSJ9LCJhcmlhLWhpZGRlbiI6ITB9LGcuY3JlYXRlRWxlbWVudChHLlByb3ZpZGVyLHt2YWx1ZTpSdH0sR3IpKSkpKX0pLGNyPXZuLFduPWNyO1duLkl0ZW09T2UsV24uU3ViTWVudT1ldCxXbi5JdGVtR3JvdXA9UG4sV24uRGl2aWRlcj13dDt2YXIgd249V259LDI5MzcyOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1Y0OmZ1bmN0aW9uKCl7cmV0dXJuIERlfSx6dDpmdW5jdGlvbigpe3JldHVybiBnfSxaUDpmdW5jdGlvbigpe3JldHVybiBOZX19KTt2YXIgcj1lKDQ5NDIpLG49ZSgxNDEzKSx0PWUoOTc2ODUpLGk9ZSg3MTAwMikscz1lKDkzOTY3KSxhPWUubihzKSx1PWUoMzQyMDMpLGM9ZSg0MjU1MCksaD1lKDY3Mjk0KSxkPWUoOTEpLG09WyJjaGlsZHJlbiJdLEM9aC5jcmVhdGVDb250ZXh0KHt9KTtmdW5jdGlvbiBnKFhlKXt2YXIgSmU9WGUuY2hpbGRyZW4sZ3Q9KDAsZC5aKShYZSxtKTtyZXR1cm4gaC5jcmVhdGVFbGVtZW50KEMuUHJvdmlkZXIse3ZhbHVlOmd0fSxKZSl9dmFyIHc9ZSgxNTY3MSksRT1lKDQzMTQ0KSx4PWUoNjAxMzYpLE89ZSgyOTM4OCksVD1mdW5jdGlvbihYZSl7KDAseC5aKShndCxYZSk7dmFyIEplPSgwLE8uWikoZ3QpO2Z1bmN0aW9uIGd0KCl7cmV0dXJuKDAsdy5aKSh0aGlzLGd0KSxKZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuKDAsRS5aKShndCxbe2tleToicmVuZGVyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnByb3BzLmNoaWxkcmVufX1dKSxndH0oaC5Db21wb25lbnQpLFM9VCxMPWUoNTY3OTApLEk9ZSgzMDQ3MCksUj1lKDY2NjgwKTtmdW5jdGlvbiB6KFhlKXt2YXIgSmU9aC51c2VSZWR1Y2VyKGZ1bmN0aW9uKE9lKXtyZXR1cm4gT2UrMX0sMCksZ3Q9KDAsdC5aKShKZSwyKSxkZT1ndFsxXSxXZT1oLnVzZVJlZihYZSksU3Q9KDAsUi5aKShmdW5jdGlvbigpe3JldHVybiBXZS5jdXJyZW50fSksY3Q9KDAsUi5aKShmdW5jdGlvbihPZSl7V2UuY3VycmVudD10eXBlb2YgT2U9PSJmdW5jdGlvbiI/T2UoV2UuY3VycmVudCk6T2UsZGUoKX0pO3JldHVybltTdCxjdF19dmFyIEc9Im5vbmUiLFk9ImFwcGVhciIsZWU9ImVudGVyIixKPSJsZWF2ZSIsbWU9Im5vbmUiLHRlPSJwcmVwYXJlIixsZT0ic3RhcnQiLGNlPSJhY3RpdmUiLFc9ImVuZCIsaj0icHJlcGFyZWQiLEQ9ZSg5ODkyNCk7ZnVuY3Rpb24gVihYZSxKZSl7dmFyIGd0PXt9O3JldHVybiBndFtYZS50b0xvd2VyQ2FzZSgpXT1KZS50b0xvd2VyQ2FzZSgpLGd0WyJXZWJraXQiLmNvbmNhdChYZSldPSJ3ZWJraXQiLmNvbmNhdChKZSksZ3RbIk1veiIuY29uY2F0KFhlKV09Im1veiIuY29uY2F0KEplKSxndFsibXMiLmNvbmNhdChYZSldPSJNUyIuY29uY2F0KEplKSxndFsiTyIuY29uY2F0KFhlKV09Im8iLmNvbmNhdChKZS50b0xvd2VyQ2FzZSgpKSxndH1mdW5jdGlvbiBaKFhlLEplKXt2YXIgZ3Q9e2FuaW1hdGlvbmVuZDpWKCJBbmltYXRpb24iLCJBbmltYXRpb25FbmQiKSx0cmFuc2l0aW9uZW5kOlYoIlRyYW5zaXRpb24iLCJUcmFuc2l0aW9uRW5kIil9O3JldHVybiBYZSYmKCJBbmltYXRpb25FdmVudCJpbiBKZXx8ZGVsZXRlIGd0LmFuaW1hdGlvbmVuZC5hbmltYXRpb24sIlRyYW5zaXRpb25FdmVudCJpbiBKZXx8ZGVsZXRlIGd0LnRyYW5zaXRpb25lbmQudHJhbnNpdGlvbiksZ3R9dmFyIFA9WigoMCxELlopKCksdHlwZW9mIHdpbmRvdyE9InVuZGVmaW5lZCI/d2luZG93Ont9KSxLPXt9O2lmKCgwLEQuWikoKSl7dmFyIHNlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO0s9c2Uuc3R5bGV9dmFyIG5lPXt9O2Z1bmN0aW9uIG9lKFhlKXtpZihuZVtYZV0pcmV0dXJuIG5lW1hlXTt2YXIgSmU9UFtYZV07aWYoSmUpZm9yKHZhciBndD1PYmplY3Qua2V5cyhKZSksZGU9Z3QubGVuZ3RoLFdlPTA7V2U8ZGU7V2UrPTEpe3ZhciBTdD1ndFtXZV07aWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKEplLFN0KSYmU3QgaW4gSylyZXR1cm4gbmVbWGVdPUplW1N0XSxuZVtYZV19cmV0dXJuIiJ9dmFyIGZlPW9lKCJhbmltYXRpb25lbmQiKSxFZT1vZSgidHJhbnNpdGlvbmVuZCIpLFJlPSEhKGZlJiZFZSksQmU9ZmV8fCJhbmltYXRpb25lbmQiLFllPUVlfHwidHJhbnNpdGlvbmVuZCI7ZnVuY3Rpb24gb3QoWGUsSmUpe2lmKCFYZSlyZXR1cm4gbnVsbDtpZigoMCxpLlopKFhlKT09PSJvYmplY3QiKXt2YXIgZ3Q9SmUucmVwbGFjZSgvLVx3L2csZnVuY3Rpb24oZGUpe3JldHVybiBkZVsxXS50b1VwcGVyQ2FzZSgpfSk7cmV0dXJuIFhlW2d0XX1yZXR1cm4iIi5jb25jYXQoWGUsIi0iKS5jb25jYXQoSmUpfXZhciBxZT1mdW5jdGlvbihYZSl7dmFyIEplPSgwLGgudXNlUmVmKSgpO2Z1bmN0aW9uIGd0KFdlKXtXZSYmKFdlLnJlbW92ZUV2ZW50TGlzdGVuZXIoWWUsWGUpLFdlLnJlbW92ZUV2ZW50TGlzdGVuZXIoQmUsWGUpKX1mdW5jdGlvbiBkZShXZSl7SmUuY3VycmVudCYmSmUuY3VycmVudCE9PVdlJiZndChKZS5jdXJyZW50KSxXZSYmV2UhPT1KZS5jdXJyZW50JiYoV2UuYWRkRXZlbnRMaXN0ZW5lcihZZSxYZSksV2UuYWRkRXZlbnRMaXN0ZW5lcihCZSxYZSksSmUuY3VycmVudD1XZSl9cmV0dXJuIGgudXNlRWZmZWN0KGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKCl7Z3QoSmUuY3VycmVudCl9fSxbXSksW2RlLGd0XX0sX2U9KDAsRC5aKSgpP2gudXNlTGF5b3V0RWZmZWN0OmgudXNlRWZmZWN0LEZlPV9lLFNlPWUoNzUxNjQpLHE9ZnVuY3Rpb24oKXt2YXIgWGU9aC51c2VSZWYobnVsbCk7ZnVuY3Rpb24gSmUoKXtTZS5aLmNhbmNlbChYZS5jdXJyZW50KX1mdW5jdGlvbiBndChkZSl7dmFyIFdlPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXToyO0plKCk7dmFyIFN0PSgwLFNlLlopKGZ1bmN0aW9uKCl7V2U8PTE/ZGUoe2lzQ2FuY2VsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gU3QhPT1YZS5jdXJyZW50fX0pOmd0KGRlLFdlLTEpfSk7WGUuY3VycmVudD1TdH1yZXR1cm4gaC51c2VFZmZlY3QoZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oKXtKZSgpfX0sW10pLFtndCxKZV19LGs9W3RlLGxlLGNlLFddLE09W3RlLGpdLEE9ITEsVT0hMDtmdW5jdGlvbiBOKFhlKXtyZXR1cm4gWGU9PT1jZXx8WGU9PT1XfXZhciBRPWZ1bmN0aW9uKFhlLEplLGd0KXt2YXIgZGU9KDAsSS5aKShtZSksV2U9KDAsdC5aKShkZSwyKSxTdD1XZVswXSxjdD1XZVsxXSxPZT1xKCksR2U9KDAsdC5aKShPZSwyKSxodD1HZVswXSx6ZT1HZVsxXTtmdW5jdGlvbiBRZSgpe2N0KHRlLCEwKX12YXIgcHQ9SmU/TTprO3JldHVybiBGZShmdW5jdGlvbigpe2lmKFN0IT09bWUmJlN0IT09Vyl7dmFyIGJ0PXB0LmluZGV4T2YoU3QpLEl0PXB0W2J0KzFdLFR0PWd0KFN0KTtUdD09PUE/Y3QoSXQsITApOkl0JiZodChmdW5jdGlvbihYdCl7ZnVuY3Rpb24gZm4oKXtYdC5pc0NhbmNlbGVkKCl8fGN0KEl0LCEwKX1UdD09PSEwP2ZuKCk6UHJvbWlzZS5yZXNvbHZlKFR0KS50aGVuKGZuKX0pfX0sW1hlLFN0XSksaC51c2VFZmZlY3QoZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oKXt6ZSgpfX0sW10pLFtRZSxTdF19O2Z1bmN0aW9uIHVlKFhlLEplLGd0LGRlKXt2YXIgV2U9ZGUubW90aW9uRW50ZXIsU3Q9V2U9PT12b2lkIDA/ITA6V2UsY3Q9ZGUubW90aW9uQXBwZWFyLE9lPWN0PT09dm9pZCAwPyEwOmN0LEdlPWRlLm1vdGlvbkxlYXZlLGh0PUdlPT09dm9pZCAwPyEwOkdlLHplPWRlLm1vdGlvbkRlYWRsaW5lLFFlPWRlLm1vdGlvbkxlYXZlSW1tZWRpYXRlbHkscHQ9ZGUub25BcHBlYXJQcmVwYXJlLGJ0PWRlLm9uRW50ZXJQcmVwYXJlLEl0PWRlLm9uTGVhdmVQcmVwYXJlLFR0PWRlLm9uQXBwZWFyU3RhcnQsWHQ9ZGUub25FbnRlclN0YXJ0LGZuPWRlLm9uTGVhdmVTdGFydCxubj1kZS5vbkFwcGVhckFjdGl2ZSxvbj1kZS5vbkVudGVyQWN0aXZlLE50PWRlLm9uTGVhdmVBY3RpdmUsWm49ZGUub25BcHBlYXJFbmQseW49ZGUub25FbnRlckVuZCxnbj1kZS5vbkxlYXZlRW5kLEJuPWRlLm9uVmlzaWJsZUNoYW5nZWQsVm49KDAsSS5aKSgpLE5uPSgwLHQuWikoVm4sMiksZnQ9Tm5bMF0sZXQ9Tm5bMV0sSnQ9eihHKSx3dD0oMCx0LlopKEp0LDIpLF90PXd0WzBdLHhuPXd0WzFdLFluPSgwLEkuWikobnVsbCksUG49KDAsdC5aKShZbiwyKSxMbj1QblswXSxlcj1QblsxXSxRbj1fdCgpLHVyPSgwLGgudXNlUmVmKSghMSksaXI9KDAsaC51c2VSZWYpKG51bGwpO2Z1bmN0aW9uIHZuKCl7cmV0dXJuIGd0KCl9dmFyIGNyPSgwLGgudXNlUmVmKSghMSk7ZnVuY3Rpb24gV24oKXt4bihHKSxlcihudWxsLCEwKX12YXIgd249KDAsTC56WCkoZnVuY3Rpb24oRm4pe3ZhciBhcj1fdCgpO2lmKGFyIT09Ryl7dmFyIGxyPXZuKCk7aWYoIShGbiYmIUZuLmRlYWRsaW5lJiZGbi50YXJnZXQhPT1scikpe3ZhciAkbj1jci5jdXJyZW50LHNyO2FyPT09WSYmJG4/c3I9Wm49PW51bGw/dm9pZCAwOlpuKGxyLEZuKTphcj09PWVlJiYkbj9zcj15bj09bnVsbD92b2lkIDA6eW4obHIsRm4pOmFyPT09SiYmJG4mJihzcj1nbj09bnVsbD92b2lkIDA6Z24obHIsRm4pKSwkbiYmc3IhPT0hMSYmV24oKX19fSksQ3Q9cWUod24pLFp0PSgwLHQuWikoQ3QsMSksYW49WnRbMF0sRHQ9ZnVuY3Rpb24oYXIpe3N3aXRjaChhcil7Y2FzZSBZOnJldHVybigwLHIuWikoKDAsci5aKSgoMCxyLlopKHt9LHRlLHB0KSxsZSxUdCksY2Usbm4pO2Nhc2UgZWU6cmV0dXJuKDAsci5aKSgoMCxyLlopKCgwLHIuWikoe30sdGUsYnQpLGxlLFh0KSxjZSxvbik7Y2FzZSBKOnJldHVybigwLHIuWikoKDAsci5aKSgoMCxyLlopKHt9LHRlLEl0KSxsZSxmbiksY2UsTnQpO2RlZmF1bHQ6cmV0dXJue319fSxrdD1oLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4gRHQoUW4pfSxbUW5dKSx0bj1RKFFuLCFYZSxmdW5jdGlvbihGbil7aWYoRm49PT10ZSl7dmFyIGFyPWt0W3RlXTtyZXR1cm4gYXI/YXIodm4oKSk6QX1pZihKbiBpbiBrdCl7dmFyIGxyO2VyKCgobHI9a3RbSm5dKT09PW51bGx8fGxyPT09dm9pZCAwP3ZvaWQgMDpsci5jYWxsKGt0LHZuKCksbnVsbCkpfHxudWxsKX1yZXR1cm4gSm49PT1jZSYmUW4hPT1HJiYoYW4odm4oKSksemU+MCYmKGNsZWFyVGltZW91dChpci5jdXJyZW50KSxpci5jdXJyZW50PXNldFRpbWVvdXQoZnVuY3Rpb24oKXt3bih7ZGVhZGxpbmU6ITB9KX0semUpKSksSm49PT1qJiZXbigpLFV9KSxtbj0oMCx0LlopKHRuLDIpLEtuPW1uWzBdLEpuPW1uWzFdLFhuPU4oSm4pO2NyLmN1cnJlbnQ9WG47dmFyIGZyPSgwLGgudXNlUmVmKShudWxsKTtGZShmdW5jdGlvbigpe2lmKCEodXIuY3VycmVudCYmZnIuY3VycmVudD09PUplKSl7ZXQoSmUpO3ZhciBGbj11ci5jdXJyZW50O3VyLmN1cnJlbnQ9ITA7dmFyIGFyOyFGbiYmSmUmJk9lJiYoYXI9WSksRm4mJkplJiZTdCYmKGFyPWVlKSwoRm4mJiFKZSYmaHR8fCFGbiYmUWUmJiFKZSYmaHQpJiYoYXI9Sik7dmFyIGxyPUR0KGFyKTthciYmKFhlfHxsclt0ZV0pPyh4bihhciksS24oKSk6eG4oRyksZnIuY3VycmVudD1KZX19LFtKZV0pLCgwLGgudXNlRWZmZWN0KShmdW5jdGlvbigpeyhRbj09PVkmJiFPZXx8UW49PT1lZSYmIVN0fHxRbj09PUomJiFodCkmJnhuKEcpfSxbT2UsU3QsaHRdKSwoMCxoLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oKXt1ci5jdXJyZW50PSExLGNsZWFyVGltZW91dChpci5jdXJyZW50KX19LFtdKTt2YXIgcnI9aC51c2VSZWYoITEpOygwLGgudXNlRWZmZWN0KShmdW5jdGlvbigpe2Z0JiYocnIuY3VycmVudD0hMCksZnQhPT12b2lkIDAmJlFuPT09RyYmKChyci5jdXJyZW50fHxmdCkmJihCbj09bnVsbHx8Qm4oZnQpKSxyci5jdXJyZW50PSEwKX0sW2Z0LFFuXSk7dmFyIGhyPUxuO3JldHVybiBrdFt0ZV0mJkpuPT09bGUmJihocj0oMCxuLlopKHt0cmFuc2l0aW9uOiJub25lIn0saHIpKSxbUW4sSm4saHIsZnQhPW51bGw/ZnQ6SmVdfWZ1bmN0aW9uICQoWGUpe3ZhciBKZT1YZTsoMCxpLlopKFhlKT09PSJvYmplY3QiJiYoSmU9WGUudHJhbnNpdGlvblN1cHBvcnQpO2Z1bmN0aW9uIGd0KFdlLFN0KXtyZXR1cm4hIShXZS5tb3Rpb25OYW1lJiZKZSYmU3QhPT0hMSl9dmFyIGRlPWguZm9yd2FyZFJlZihmdW5jdGlvbihXZSxTdCl7dmFyIGN0PVdlLnZpc2libGUsT2U9Y3Q9PT12b2lkIDA/ITA6Y3QsR2U9V2UucmVtb3ZlT25MZWF2ZSxodD1HZT09PXZvaWQgMD8hMDpHZSx6ZT1XZS5mb3JjZVJlbmRlcixRZT1XZS5jaGlsZHJlbixwdD1XZS5tb3Rpb25OYW1lLGJ0PVdlLmxlYXZlZENsYXNzTmFtZSxJdD1XZS5ldmVudFByb3BzLFR0PWgudXNlQ29udGV4dChDKSxYdD1UdC5tb3Rpb24sZm49Z3QoV2UsWHQpLG5uPSgwLGgudXNlUmVmKSgpLG9uPSgwLGgudXNlUmVmKSgpO2Z1bmN0aW9uIE50KCl7dHJ5e3JldHVybiBubi5jdXJyZW50IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQ/bm4uY3VycmVudDooMCx1LlpQKShvbi5jdXJyZW50KX1jYXRjaChQbil7cmV0dXJuIG51bGx9fXZhciBabj11ZShmbixPZSxOdCxXZSkseW49KDAsdC5aKShabiw0KSxnbj15blswXSxCbj15blsxXSxWbj15blsyXSxObj15blszXSxmdD1oLnVzZVJlZihObik7Tm4mJihmdC5jdXJyZW50PSEwKTt2YXIgZXQ9aC51c2VDYWxsYmFjayhmdW5jdGlvbihQbil7bm4uY3VycmVudD1QbiwoMCxjLm1IKShTdCxQbil9LFtTdF0pLEp0LHd0PSgwLG4uWikoKDAsbi5aKSh7fSxJdCkse30se3Zpc2libGU6T2V9KTtpZighUWUpSnQ9bnVsbDtlbHNlIGlmKGduPT09RylObj9KdD1RZSgoMCxuLlopKHt9LHd0KSxldCk6IWh0JiZmdC5jdXJyZW50JiZidD9KdD1RZSgoMCxuLlopKCgwLG4uWikoe30sd3QpLHt9LHtjbGFzc05hbWU6YnR9KSxldCk6emV8fCFodCYmIWJ0P0p0PVFlKCgwLG4uWikoKDAsbi5aKSh7fSx3dCkse30se3N0eWxlOntkaXNwbGF5OiJub25lIn19KSxldCk6SnQ9bnVsbDtlbHNle3ZhciBfdDtCbj09PXRlP190PSJwcmVwYXJlIjpOKEJuKT9fdD0iYWN0aXZlIjpCbj09PWxlJiYoX3Q9InN0YXJ0Iik7dmFyIHhuPW90KHB0LCIiLmNvbmNhdChnbiwiLSIpLmNvbmNhdChfdCkpO0p0PVFlKCgwLG4uWikoKDAsbi5aKSh7fSx3dCkse30se2NsYXNzTmFtZTphKCkob3QocHQsZ24pLCgwLHIuWikoKDAsci5aKSh7fSx4bix4biYmX3QpLHB0LHR5cGVvZiBwdD09InN0cmluZyIpKSxzdHlsZTpWbn0pLGV0KX1pZihoLmlzVmFsaWRFbGVtZW50KEp0KSYmKDAsYy5ZcikoSnQpKXt2YXIgWW49KDAsYy5DNCkoSnQpO1lufHwoSnQ9aC5jbG9uZUVsZW1lbnQoSnQse3JlZjpldH0pKX1yZXR1cm4gaC5jcmVhdGVFbGVtZW50KFMse3JlZjpvbn0sSnQpfSk7cmV0dXJuIGRlLmRpc3BsYXlOYW1lPSJDU1NNb3Rpb24iLGRlfXZhciBfPSQoUmUpLHBlPWUoODc0NjIpLHJlPWUoOTczMjYpLGFlPSJhZGQiLHdlPSJrZWVwIixMZT0icmVtb3ZlIixNZT0icmVtb3ZlZCI7ZnVuY3Rpb24gYmUoWGUpe3ZhciBKZTtyZXR1cm4gWGUmJigwLGkuWikoWGUpPT09Im9iamVjdCImJiJrZXkiaW4gWGU/SmU9WGU6SmU9e2tleTpYZX0sKDAsbi5aKSgoMCxuLlopKHt9LEplKSx7fSx7a2V5OlN0cmluZyhKZS5rZXkpfSl9ZnVuY3Rpb24gJGUoKXt2YXIgWGU9YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT12b2lkIDA/YXJndW1lbnRzWzBdOltdO3JldHVybiBYZS5tYXAoYmUpfWZ1bmN0aW9uIGtlKCl7dmFyIFhlPWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dm9pZCAwP2FyZ3VtZW50c1swXTpbXSxKZT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06W10sZ3Q9W10sZGU9MCxXZT1KZS5sZW5ndGgsU3Q9JGUoWGUpLGN0PSRlKEplKTtTdC5mb3JFYWNoKGZ1bmN0aW9uKGh0KXtmb3IodmFyIHplPSExLFFlPWRlO1FlPFdlO1FlKz0xKXt2YXIgcHQ9Y3RbUWVdO2lmKHB0LmtleT09PWh0LmtleSl7ZGU8UWUmJihndD1ndC5jb25jYXQoY3Quc2xpY2UoZGUsUWUpLm1hcChmdW5jdGlvbihidCl7cmV0dXJuKDAsbi5aKSgoMCxuLlopKHt9LGJ0KSx7fSx7c3RhdHVzOmFlfSl9KSksZGU9UWUpLGd0LnB1c2goKDAsbi5aKSgoMCxuLlopKHt9LHB0KSx7fSx7c3RhdHVzOndlfSkpLGRlKz0xLHplPSEwO2JyZWFrfX16ZXx8Z3QucHVzaCgoMCxuLlopKCgwLG4uWikoe30saHQpLHt9LHtzdGF0dXM6TGV9KSl9KSxkZTxXZSYmKGd0PWd0LmNvbmNhdChjdC5zbGljZShkZSkubWFwKGZ1bmN0aW9uKGh0KXtyZXR1cm4oMCxuLlopKCgwLG4uWikoe30saHQpLHt9LHtzdGF0dXM6YWV9KX0pKSk7dmFyIE9lPXt9O2d0LmZvckVhY2goZnVuY3Rpb24oaHQpe3ZhciB6ZT1odC5rZXk7T2VbemVdPShPZVt6ZV18fDApKzF9KTt2YXIgR2U9T2JqZWN0LmtleXMoT2UpLmZpbHRlcihmdW5jdGlvbihodCl7cmV0dXJuIE9lW2h0XT4xfSk7cmV0dXJuIEdlLmZvckVhY2goZnVuY3Rpb24oaHQpe2d0PWd0LmZpbHRlcihmdW5jdGlvbih6ZSl7dmFyIFFlPXplLmtleSxwdD16ZS5zdGF0dXM7cmV0dXJuIFFlIT09aHR8fHB0IT09TGV9KSxndC5mb3JFYWNoKGZ1bmN0aW9uKHplKXt6ZS5rZXk9PT1odCYmKHplLnN0YXR1cz13ZSl9KX0pLGd0fXZhciBBZT1bImNvbXBvbmVudCIsImNoaWxkcmVuIiwib25WaXNpYmxlQ2hhbmdlZCIsIm9uQWxsUmVtb3ZlZCJdLHR0PVsic3RhdHVzIl0sbXQ9WyJldmVudFByb3BzIiwidmlzaWJsZSIsImNoaWxkcmVuIiwibW90aW9uTmFtZSIsIm1vdGlvbkFwcGVhciIsIm1vdGlvbkVudGVyIiwibW90aW9uTGVhdmUiLCJtb3Rpb25MZWF2ZUltbWVkaWF0ZWx5IiwibW90aW9uRGVhZGxpbmUiLCJyZW1vdmVPbkxlYXZlIiwibGVhdmVkQ2xhc3NOYW1lIiwib25BcHBlYXJQcmVwYXJlIiwib25BcHBlYXJTdGFydCIsIm9uQXBwZWFyQWN0aXZlIiwib25BcHBlYXJFbmQiLCJvbkVudGVyU3RhcnQiLCJvbkVudGVyQWN0aXZlIiwib25FbnRlckVuZCIsIm9uTGVhdmVTdGFydCIsIm9uTGVhdmVBY3RpdmUiLCJvbkxlYXZlRW5kIl07ZnVuY3Rpb24gdXQoWGUpe3ZhciBKZT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06XyxndD1mdW5jdGlvbihkZSl7KDAseC5aKShTdCxkZSk7dmFyIFdlPSgwLE8uWikoU3QpO2Z1bmN0aW9uIFN0KCl7dmFyIGN0OygwLHcuWikodGhpcyxTdCk7Zm9yKHZhciBPZT1hcmd1bWVudHMubGVuZ3RoLEdlPW5ldyBBcnJheShPZSksaHQ9MDtodDxPZTtodCsrKUdlW2h0XT1hcmd1bWVudHNbaHRdO3JldHVybiBjdD1XZS5jYWxsLmFwcGx5KFdlLFt0aGlzXS5jb25jYXQoR2UpKSwoMCxyLlopKCgwLHJlLlopKGN0KSwic3RhdGUiLHtrZXlFbnRpdGllczpbXX0pLCgwLHIuWikoKDAscmUuWikoY3QpLCJyZW1vdmVLZXkiLGZ1bmN0aW9uKHplKXtjdC5zZXRTdGF0ZShmdW5jdGlvbihRZSl7dmFyIHB0PVFlLmtleUVudGl0aWVzLm1hcChmdW5jdGlvbihidCl7cmV0dXJuIGJ0LmtleSE9PXplP2J0OigwLG4uWikoKDAsbi5aKSh7fSxidCkse30se3N0YXR1czpNZX0pfSk7cmV0dXJue2tleUVudGl0aWVzOnB0fX0sZnVuY3Rpb24oKXt2YXIgUWU9Y3Quc3RhdGUua2V5RW50aXRpZXMscHQ9UWUuZmlsdGVyKGZ1bmN0aW9uKGJ0KXt2YXIgSXQ9YnQuc3RhdHVzO3JldHVybiBJdCE9PU1lfSkubGVuZ3RoO3B0PT09MCYmY3QucHJvcHMub25BbGxSZW1vdmVkJiZjdC5wcm9wcy5vbkFsbFJlbW92ZWQoKX0pfSksY3R9cmV0dXJuKDAsRS5aKShTdCxbe2tleToicmVuZGVyIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBPZT10aGlzLEdlPXRoaXMuc3RhdGUua2V5RW50aXRpZXMsaHQ9dGhpcy5wcm9wcyx6ZT1odC5jb21wb25lbnQsUWU9aHQuY2hpbGRyZW4scHQ9aHQub25WaXNpYmxlQ2hhbmdlZCxidD1odC5vbkFsbFJlbW92ZWQsSXQ9KDAsZC5aKShodCxBZSksVHQ9emV8fGguRnJhZ21lbnQsWHQ9e307cmV0dXJuIG10LmZvckVhY2goZnVuY3Rpb24oZm4pe1h0W2ZuXT1JdFtmbl0sZGVsZXRlIEl0W2ZuXX0pLGRlbGV0ZSBJdC5rZXlzLGguY3JlYXRlRWxlbWVudChUdCxJdCxHZS5tYXAoZnVuY3Rpb24oZm4sbm4pe3ZhciBvbj1mbi5zdGF0dXMsTnQ9KDAsZC5aKShmbix0dCksWm49b249PT1hZXx8b249PT13ZTtyZXR1cm4gaC5jcmVhdGVFbGVtZW50KEplLCgwLHBlLlopKHt9LFh0LHtrZXk6TnQua2V5LHZpc2libGU6Wm4sZXZlbnRQcm9wczpOdCxvblZpc2libGVDaGFuZ2VkOmZ1bmN0aW9uKGduKXtwdD09bnVsbHx8cHQoZ24se2tleTpOdC5rZXl9KSxnbnx8T2UucmVtb3ZlS2V5KE50LmtleSl9fSksZnVuY3Rpb24oeW4sZ24pe3JldHVybiBRZSgoMCxuLlopKCgwLG4uWikoe30seW4pLHt9LHtpbmRleDpubn0pLGduKX0pfSkpfX1dLFt7a2V5OiJnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMiLHZhbHVlOmZ1bmN0aW9uKE9lLEdlKXt2YXIgaHQ9T2Uua2V5cyx6ZT1HZS5rZXlFbnRpdGllcyxRZT0kZShodCkscHQ9a2UoemUsUWUpO3JldHVybntrZXlFbnRpdGllczpwdC5maWx0ZXIoZnVuY3Rpb24oYnQpe3ZhciBJdD16ZS5maW5kKGZ1bmN0aW9uKFR0KXt2YXIgWHQ9VHQua2V5O3JldHVybiBidC5rZXk9PT1YdH0pO3JldHVybiEoSXQmJkl0LnN0YXR1cz09PU1lJiZidC5zdGF0dXM9PT1MZSl9KX19fV0pLFN0fShoLkNvbXBvbmVudCk7cmV0dXJuKDAsci5aKShndCwiZGVmYXVsdFByb3BzIix7Y29tcG9uZW50OiJkaXYifSksZ3R9dmFyIERlPXV0KFJlKSxOZT1ffSw0Mjk5OTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtxWDpmdW5jdGlvbigpe3JldHVybiB4fSxKQjpmdW5jdGlvbigpe3JldHVybiBTfSxsbTpmdW5jdGlvbigpe3JldHVybiBEfX0pO3ZhciByPWUoNzQ5MDIpLG49ZSg5NzY4NSksdD1lKDkxKSxpPWUoNjcyOTQpLHM9ZSgxNDEzKSxhPWUoNzM5MzUpLHU9ZSg4NzQ2MiksYz1lKDQ5NDIpLGg9ZSg5Mzk2NyksZD1lLm4oaCksbT1lKDI5MzcyKSxDPWUoNzEwMDIpLGc9ZSgxNTEwNSksdz1lKDY0MjE3KSxFPWkuZm9yd2FyZFJlZihmdW5jdGlvbihWLFope3ZhciBQPVYucHJlZml4Q2xzLEs9Vi5zdHlsZSxzZT1WLmNsYXNzTmFtZSxuZT1WLmR1cmF0aW9uLG9lPW5lPT09dm9pZCAwPzQuNTpuZSxmZT1WLnNob3dQcm9ncmVzcyxFZT1WLnBhdXNlT25Ib3ZlcixSZT1FZT09PXZvaWQgMD8hMDpFZSxCZT1WLmV2ZW50S2V5LFllPVYuY29udGVudCxvdD1WLmNsb3NhYmxlLHFlPVYuY2xvc2VJY29uLF9lPXFlPT09dm9pZCAwPyJ4IjpxZSxGZT1WLnByb3BzLFNlPVYub25DbGljayxxPVYub25Ob3RpY2VDbG9zZSxrPVYudGltZXMsTT1WLmhvdmVyaW5nLEE9aS51c2VTdGF0ZSghMSksVT0oMCxuLlopKEEsMiksTj1VWzBdLFE9VVsxXSx1ZT1pLnVzZVN0YXRlKDApLCQ9KDAsbi5aKSh1ZSwyKSxfPSRbMF0scGU9JFsxXSxyZT1pLnVzZVN0YXRlKDApLGFlPSgwLG4uWikocmUsMiksd2U9YWVbMF0sTGU9YWVbMV0sTWU9TXx8TixiZT1vZT4wJiZmZSwkZT1mdW5jdGlvbigpe3EoQmUpfSxrZT1mdW5jdGlvbihOZSl7KE5lLmtleT09PSJFbnRlciJ8fE5lLmNvZGU9PT0iRW50ZXIifHxOZS5rZXlDb2RlPT09Zy5aLkVOVEVSKSYmJGUoKX07aS51c2VFZmZlY3QoZnVuY3Rpb24oKXtpZighTWUmJm9lPjApe3ZhciBEZT1EYXRlLm5vdygpLXdlLE5lPXNldFRpbWVvdXQoZnVuY3Rpb24oKXskZSgpfSxvZSoxZTMtd2UpO3JldHVybiBmdW5jdGlvbigpe1JlJiZjbGVhclRpbWVvdXQoTmUpLExlKERhdGUubm93KCktRGUpfX19LFtvZSxNZSxrXSksaS51c2VFZmZlY3QoZnVuY3Rpb24oKXtpZighTWUmJmJlJiYoUmV8fHdlPT09MCkpe3ZhciBEZT1wZXJmb3JtYW5jZS5ub3coKSxOZSxYZT1mdW5jdGlvbiBKZSgpe2NhbmNlbEFuaW1hdGlvbkZyYW1lKE5lKSxOZT1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oZ3Qpe3ZhciBkZT1ndCt3ZS1EZSxXZT1NYXRoLm1pbihkZS8ob2UqMWUzKSwxKTtwZShXZSoxMDApLFdlPDEmJkplKCl9KX07cmV0dXJuIFhlKCksZnVuY3Rpb24oKXtSZSYmY2FuY2VsQW5pbWF0aW9uRnJhbWUoTmUpfX19LFtvZSx3ZSxNZSxiZSxrXSk7dmFyIEFlPWkudXNlTWVtbyhmdW5jdGlvbigpe3JldHVybigwLEMuWikob3QpPT09Im9iamVjdCImJm90IT09bnVsbD9vdDpvdD97Y2xvc2VJY29uOl9lfTp7fX0sW290LF9lXSksdHQ9KDAsdy5aKShBZSwhMCksbXQ9MTAwLSghX3x8XzwwPzA6Xz4xMDA/MTAwOl8pLHV0PSIiLmNvbmNhdChQLCItbm90aWNlIik7cmV0dXJuIGkuY3JlYXRlRWxlbWVudCgiZGl2IiwoMCx1LlopKHt9LEZlLHtyZWY6WixjbGFzc05hbWU6ZCgpKHV0LHNlLCgwLGMuWikoe30sIiIuY29uY2F0KHV0LCItY2xvc2FibGUiKSxvdCkpLHN0eWxlOkssb25Nb3VzZUVudGVyOmZ1bmN0aW9uKE5lKXt2YXIgWGU7USghMCksRmU9PW51bGx8fChYZT1GZS5vbk1vdXNlRW50ZXIpPT09bnVsbHx8WGU9PT12b2lkIDB8fFhlLmNhbGwoRmUsTmUpfSxvbk1vdXNlTGVhdmU6ZnVuY3Rpb24oTmUpe3ZhciBYZTtRKCExKSxGZT09bnVsbHx8KFhlPUZlLm9uTW91c2VMZWF2ZSk9PT1udWxsfHxYZT09PXZvaWQgMHx8WGUuY2FsbChGZSxOZSl9LG9uQ2xpY2s6U2V9KSxpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiIi5jb25jYXQodXQsIi1jb250ZW50Iil9LFllKSxvdCYmaS5jcmVhdGVFbGVtZW50KCJhIiwoMCx1LlopKHt0YWJJbmRleDowLGNsYXNzTmFtZToiIi5jb25jYXQodXQsIi1jbG9zZSIpLG9uS2V5RG93bjprZSwiYXJpYS1sYWJlbCI6IkNsb3NlIn0sdHQse29uQ2xpY2s6ZnVuY3Rpb24oTmUpe05lLnByZXZlbnREZWZhdWx0KCksTmUuc3RvcFByb3BhZ2F0aW9uKCksJGUoKX19KSxBZS5jbG9zZUljb24pLGJlJiZpLmNyZWF0ZUVsZW1lbnQoInByb2dyZXNzIix7Y2xhc3NOYW1lOiIiLmNvbmNhdCh1dCwiLXByb2dyZXNzIiksbWF4OiIxMDAiLHZhbHVlOm10fSxtdCsiJSIpKX0pLHg9RSxPPWkuY3JlYXRlQ29udGV4dCh7fSksVD1mdW5jdGlvbihaKXt2YXIgUD1aLmNoaWxkcmVuLEs9Wi5jbGFzc05hbWVzO3JldHVybiBpLmNyZWF0ZUVsZW1lbnQoTy5Qcm92aWRlcix7dmFsdWU6e2NsYXNzTmFtZXM6S319LFApfSxTPVQsTD04LEk9MyxSPTE2LHo9ZnVuY3Rpb24oWil7dmFyIFA9e29mZnNldDpMLHRocmVzaG9sZDpJLGdhcDpSfTtpZihaJiYoMCxDLlopKFopPT09Im9iamVjdCIpe3ZhciBLLHNlLG5lO1Aub2Zmc2V0PShLPVoub2Zmc2V0KSE9PW51bGwmJkshPT12b2lkIDA/SzpMLFAudGhyZXNob2xkPShzZT1aLnRocmVzaG9sZCkhPT1udWxsJiZzZSE9PXZvaWQgMD9zZTpJLFAuZ2FwPShuZT1aLmdhcCkhPT1udWxsJiZuZSE9PXZvaWQgMD9uZTpSfXJldHVyblshIVosUF19LEc9eixZPVsiY2xhc3NOYW1lIiwic3R5bGUiLCJjbGFzc05hbWVzIiwic3R5bGVzIl0sZWU9ZnVuY3Rpb24oWil7dmFyIFA9Wi5jb25maWdMaXN0LEs9Wi5wbGFjZW1lbnQsc2U9Wi5wcmVmaXhDbHMsbmU9Wi5jbGFzc05hbWUsb2U9Wi5zdHlsZSxmZT1aLm1vdGlvbixFZT1aLm9uQWxsTm90aWNlUmVtb3ZlZCxSZT1aLm9uTm90aWNlQ2xvc2UsQmU9Wi5zdGFjayxZZT0oMCxpLnVzZUNvbnRleHQpKE8pLG90PVllLmNsYXNzTmFtZXMscWU9KDAsaS51c2VSZWYpKHt9KSxfZT0oMCxpLnVzZVN0YXRlKShudWxsKSxGZT0oMCxuLlopKF9lLDIpLFNlPUZlWzBdLHE9RmVbMV0saz0oMCxpLnVzZVN0YXRlKShbXSksTT0oMCxuLlopKGssMiksQT1NWzBdLFU9TVsxXSxOPVAubWFwKGZ1bmN0aW9uKE1lKXtyZXR1cm57Y29uZmlnOk1lLGtleTpTdHJpbmcoTWUua2V5KX19KSxRPUcoQmUpLHVlPSgwLG4uWikoUSwyKSwkPXVlWzBdLF89dWVbMV0scGU9Xy5vZmZzZXQscmU9Xy50aHJlc2hvbGQsYWU9Xy5nYXAsd2U9JCYmKEEubGVuZ3RoPjB8fE4ubGVuZ3RoPD1yZSksTGU9dHlwZW9mIGZlPT0iZnVuY3Rpb24iP2ZlKEspOmZlO3JldHVybigwLGkudXNlRWZmZWN0KShmdW5jdGlvbigpeyQmJkEubGVuZ3RoPjEmJlUoZnVuY3Rpb24oTWUpe3JldHVybiBNZS5maWx0ZXIoZnVuY3Rpb24oYmUpe3JldHVybiBOLnNvbWUoZnVuY3Rpb24oJGUpe3ZhciBrZT0kZS5rZXk7cmV0dXJuIGJlPT09a2V9KX0pfSl9LFtBLE4sJF0pLCgwLGkudXNlRWZmZWN0KShmdW5jdGlvbigpe3ZhciBNZTtpZigkJiZxZS5jdXJyZW50WyhNZT1OW04ubGVuZ3RoLTFdKT09PW51bGx8fE1lPT09dm9pZCAwP3ZvaWQgMDpNZS5rZXldKXt2YXIgYmU7cShxZS5jdXJyZW50WyhiZT1OW04ubGVuZ3RoLTFdKT09PW51bGx8fGJlPT09dm9pZCAwP3ZvaWQgMDpiZS5rZXldKX19LFtOLCRdKSxpLmNyZWF0ZUVsZW1lbnQobS5WNCwoMCx1LlopKHtrZXk6SyxjbGFzc05hbWU6ZCgpKHNlLCIiLmNvbmNhdChzZSwiLSIpLmNvbmNhdChLKSxvdD09bnVsbD92b2lkIDA6b3QubGlzdCxuZSwoMCxjLlopKCgwLGMuWikoe30sIiIuY29uY2F0KHNlLCItc3RhY2siKSwhISQpLCIiLmNvbmNhdChzZSwiLXN0YWNrLWV4cGFuZGVkIiksd2UpKSxzdHlsZTpvZSxrZXlzOk4sbW90aW9uQXBwZWFyOiEwfSxMZSx7b25BbGxSZW1vdmVkOmZ1bmN0aW9uKCl7RWUoSyl9fSksZnVuY3Rpb24oTWUsYmUpe3ZhciAkZT1NZS5jb25maWcsa2U9TWUuY2xhc3NOYW1lLEFlPU1lLnN0eWxlLHR0PU1lLmluZGV4LG10PSRlLHV0PW10LmtleSxEZT1tdC50aW1lcyxOZT1TdHJpbmcodXQpLFhlPSRlLEplPVhlLmNsYXNzTmFtZSxndD1YZS5zdHlsZSxkZT1YZS5jbGFzc05hbWVzLFdlPVhlLnN0eWxlcyxTdD0oMCx0LlopKFhlLFkpLGN0PU4uZmluZEluZGV4KGZ1bmN0aW9uKG5uKXtyZXR1cm4gbm4ua2V5PT09TmV9KSxPZT17fTtpZigkKXt2YXIgR2U9Ti5sZW5ndGgtMS0oY3Q+LTE/Y3Q6dHQtMSksaHQ9Sz09PSJ0b3AifHxLPT09ImJvdHRvbSI/Ii01MCUiOiIwIjtpZihHZT4wKXt2YXIgemUsUWUscHQ7T2UuaGVpZ2h0PXdlPyh6ZT1xZS5jdXJyZW50W05lXSk9PT1udWxsfHx6ZT09PXZvaWQgMD92b2lkIDA6emUub2Zmc2V0SGVpZ2h0OlNlPT1udWxsP3ZvaWQgMDpTZS5vZmZzZXRIZWlnaHQ7Zm9yKHZhciBidD0wLEl0PTA7SXQ8R2U7SXQrKyl7dmFyIFR0O2J0Kz0oKFR0PXFlLmN1cnJlbnRbTltOLmxlbmd0aC0xLUl0XS5rZXldKT09PW51bGx8fFR0PT09dm9pZCAwP3ZvaWQgMDpUdC5vZmZzZXRIZWlnaHQpK2FlfXZhciBYdD0od2U/YnQ6R2UqcGUpKihLLnN0YXJ0c1dpdGgoInRvcCIpPzE6LTEpLGZuPSF3ZSYmU2UhPT1udWxsJiZTZSE9PXZvaWQgMCYmU2Uub2Zmc2V0V2lkdGgmJihRZT1xZS5jdXJyZW50W05lXSkhPT1udWxsJiZRZSE9PXZvaWQgMCYmUWUub2Zmc2V0V2lkdGg/KChTZT09bnVsbD92b2lkIDA6U2Uub2Zmc2V0V2lkdGgpLXBlKjIqKEdlPDM/R2U6MykpLygocHQ9cWUuY3VycmVudFtOZV0pPT09bnVsbHx8cHQ9PT12b2lkIDA/dm9pZCAwOnB0Lm9mZnNldFdpZHRoKToxO09lLnRyYW5zZm9ybT0idHJhbnNsYXRlM2QoIi5jb25jYXQoaHQsIiwgIikuY29uY2F0KFh0LCJweCwgMCkgc2NhbGVYKCIpLmNvbmNhdChmbiwiKSIpfWVsc2UgT2UudHJhbnNmb3JtPSJ0cmFuc2xhdGUzZCgiLmNvbmNhdChodCwiLCAwLCAwKSIpfXJldHVybiBpLmNyZWF0ZUVsZW1lbnQoImRpdiIse3JlZjpiZSxjbGFzc05hbWU6ZCgpKCIiLmNvbmNhdChzZSwiLW5vdGljZS13cmFwcGVyIiksa2UsZGU9PW51bGw/dm9pZCAwOmRlLndyYXBwZXIpLHN0eWxlOigwLHMuWikoKDAscy5aKSgoMCxzLlopKHt9LEFlKSxPZSksV2U9PW51bGw/dm9pZCAwOldlLndyYXBwZXIpLG9uTW91c2VFbnRlcjpmdW5jdGlvbigpe3JldHVybiBVKGZ1bmN0aW9uKG9uKXtyZXR1cm4gb24uaW5jbHVkZXMoTmUpP29uOltdLmNvbmNhdCgoMCxyLlopKG9uKSxbTmVdKX0pfSxvbk1vdXNlTGVhdmU6ZnVuY3Rpb24oKXtyZXR1cm4gVShmdW5jdGlvbihvbil7cmV0dXJuIG9uLmZpbHRlcihmdW5jdGlvbihOdCl7cmV0dXJuIE50IT09TmV9KX0pfX0saS5jcmVhdGVFbGVtZW50KHgsKDAsdS5aKSh7fSxTdCx7cmVmOmZ1bmN0aW9uKG9uKXtjdD4tMT9xZS5jdXJyZW50W05lXT1vbjpkZWxldGUgcWUuY3VycmVudFtOZV19LHByZWZpeENsczpzZSxjbGFzc05hbWVzOmRlLHN0eWxlczpXZSxjbGFzc05hbWU6ZCgpKEplLG90PT1udWxsP3ZvaWQgMDpvdC5ub3RpY2UpLHN0eWxlOmd0LHRpbWVzOkRlLGtleTp1dCxldmVudEtleTp1dCxvbk5vdGljZUNsb3NlOlJlLGhvdmVyaW5nOiQmJkEubGVuZ3RoPjB9KSkpfSl9LEo9ZWUsbWU9aS5mb3J3YXJkUmVmKGZ1bmN0aW9uKFYsWil7dmFyIFA9Vi5wcmVmaXhDbHMsSz1QPT09dm9pZCAwPyJyYy1ub3RpZmljYXRpb24iOlAsc2U9Vi5jb250YWluZXIsbmU9Vi5tb3Rpb24sb2U9Vi5tYXhDb3VudCxmZT1WLmNsYXNzTmFtZSxFZT1WLnN0eWxlLFJlPVYub25BbGxSZW1vdmVkLEJlPVYuc3RhY2ssWWU9Vi5yZW5kZXJOb3RpZmljYXRpb25zLG90PWkudXNlU3RhdGUoW10pLHFlPSgwLG4uWikob3QsMiksX2U9cWVbMF0sRmU9cWVbMV0sU2U9ZnVuY3Rpb24oJCl7dmFyIF8scGU9X2UuZmluZChmdW5jdGlvbihyZSl7cmV0dXJuIHJlLmtleT09PSR9KTtwZT09bnVsbHx8KF89cGUub25DbG9zZSk9PT1udWxsfHxfPT09dm9pZCAwfHxfLmNhbGwocGUpLEZlKGZ1bmN0aW9uKHJlKXtyZXR1cm4gcmUuZmlsdGVyKGZ1bmN0aW9uKGFlKXtyZXR1cm4gYWUua2V5IT09JH0pfSl9O2kudXNlSW1wZXJhdGl2ZUhhbmRsZShaLGZ1bmN0aW9uKCl7cmV0dXJue29wZW46ZnVuY3Rpb24oJCl7RmUoZnVuY3Rpb24oXyl7dmFyIHBlPSgwLHIuWikoXykscmU9cGUuZmluZEluZGV4KGZ1bmN0aW9uKExlKXtyZXR1cm4gTGUua2V5PT09JC5rZXl9KSxhZT0oMCxzLlopKHt9LCQpO2lmKHJlPj0wKXt2YXIgd2U7YWUudGltZXM9KCgod2U9X1tyZV0pPT09bnVsbHx8d2U9PT12b2lkIDA/dm9pZCAwOndlLnRpbWVzKXx8MCkrMSxwZVtyZV09YWV9ZWxzZSBhZS50aW1lcz0wLHBlLnB1c2goYWUpO3JldHVybiBvZT4wJiZwZS5sZW5ndGg+b2UmJihwZT1wZS5zbGljZSgtb2UpKSxwZX0pfSxjbG9zZTpmdW5jdGlvbigkKXtTZSgkKX0sZGVzdHJveTpmdW5jdGlvbigpe0ZlKFtdKX19fSk7dmFyIHE9aS51c2VTdGF0ZSh7fSksaz0oMCxuLlopKHEsMiksTT1rWzBdLEE9a1sxXTtpLnVzZUVmZmVjdChmdW5jdGlvbigpe3ZhciB1ZT17fTtfZS5mb3JFYWNoKGZ1bmN0aW9uKCQpe3ZhciBfPSQucGxhY2VtZW50LHBlPV89PT12b2lkIDA/InRvcFJpZ2h0IjpfO3BlJiYodWVbcGVdPXVlW3BlXXx8W10sdWVbcGVdLnB1c2goJCkpfSksT2JqZWN0LmtleXMoTSkuZm9yRWFjaChmdW5jdGlvbigkKXt1ZVskXT11ZVskXXx8W119KSxBKHVlKX0sW19lXSk7dmFyIFU9ZnVuY3Rpb24oJCl7QShmdW5jdGlvbihfKXt2YXIgcGU9KDAscy5aKSh7fSxfKSxyZT1wZVskXXx8W107cmV0dXJuIHJlLmxlbmd0aHx8ZGVsZXRlIHBlWyRdLHBlfSl9LE49aS51c2VSZWYoITEpO2lmKGkudXNlRWZmZWN0KGZ1bmN0aW9uKCl7T2JqZWN0LmtleXMoTSkubGVuZ3RoPjA/Ti5jdXJyZW50PSEwOk4uY3VycmVudCYmKFJlPT1udWxsfHxSZSgpLE4uY3VycmVudD0hMSl9LFtNXSksIXNlKXJldHVybiBudWxsO3ZhciBRPU9iamVjdC5rZXlzKE0pO3JldHVybigwLGEuY3JlYXRlUG9ydGFsKShpLmNyZWF0ZUVsZW1lbnQoaS5GcmFnbWVudCxudWxsLFEubWFwKGZ1bmN0aW9uKHVlKXt2YXIgJD1NW3VlXSxfPWkuY3JlYXRlRWxlbWVudChKLHtrZXk6dWUsY29uZmlnTGlzdDokLHBsYWNlbWVudDp1ZSxwcmVmaXhDbHM6SyxjbGFzc05hbWU6ZmU9PW51bGw/dm9pZCAwOmZlKHVlKSxzdHlsZTpFZT09bnVsbD92b2lkIDA6RWUodWUpLG1vdGlvbjpuZSxvbk5vdGljZUNsb3NlOlNlLG9uQWxsTm90aWNlUmVtb3ZlZDpVLHN0YWNrOkJlfSk7cmV0dXJuIFllP1llKF8se3ByZWZpeENsczpLLGtleTp1ZX0pOl99KSksc2UpfSksdGU9bWUsbGU9WyJnZXRDb250YWluZXIiLCJtb3Rpb24iLCJwcmVmaXhDbHMiLCJtYXhDb3VudCIsImNsYXNzTmFtZSIsInN0eWxlIiwib25BbGxSZW1vdmVkIiwic3RhY2siLCJyZW5kZXJOb3RpZmljYXRpb25zIl0sY2U9ZnVuY3Rpb24oKXtyZXR1cm4gZG9jdW1lbnQuYm9keX0sVz0wO2Z1bmN0aW9uIGooKXtmb3IodmFyIFY9e30sWj1hcmd1bWVudHMubGVuZ3RoLFA9bmV3IEFycmF5KFopLEs9MDtLPFo7SysrKVBbS109YXJndW1lbnRzW0tdO3JldHVybiBQLmZvckVhY2goZnVuY3Rpb24oc2Upe3NlJiZPYmplY3Qua2V5cyhzZSkuZm9yRWFjaChmdW5jdGlvbihuZSl7dmFyIG9lPXNlW25lXTtvZSE9PXZvaWQgMCYmKFZbbmVdPW9lKX0pfSksVn1mdW5jdGlvbiBEKCl7dmFyIFY9YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT12b2lkIDA/YXJndW1lbnRzWzBdOnt9LFo9Vi5nZXRDb250YWluZXIsUD1aPT09dm9pZCAwP2NlOlosSz1WLm1vdGlvbixzZT1WLnByZWZpeENscyxuZT1WLm1heENvdW50LG9lPVYuY2xhc3NOYW1lLGZlPVYuc3R5bGUsRWU9Vi5vbkFsbFJlbW92ZWQsUmU9Vi5zdGFjayxCZT1WLnJlbmRlck5vdGlmaWNhdGlvbnMsWWU9KDAsdC5aKShWLGxlKSxvdD1pLnVzZVN0YXRlKCkscWU9KDAsbi5aKShvdCwyKSxfZT1xZVswXSxGZT1xZVsxXSxTZT1pLnVzZVJlZigpLHE9aS5jcmVhdGVFbGVtZW50KHRlLHtjb250YWluZXI6X2UscmVmOlNlLHByZWZpeENsczpzZSxtb3Rpb246SyxtYXhDb3VudDpuZSxjbGFzc05hbWU6b2Usc3R5bGU6ZmUsb25BbGxSZW1vdmVkOkVlLHN0YWNrOlJlLHJlbmRlck5vdGlmaWNhdGlvbnM6QmV9KSxrPWkudXNlU3RhdGUoW10pLE09KDAsbi5aKShrLDIpLEE9TVswXSxVPU1bMV0sTj1pLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm57b3BlbjpmdW5jdGlvbih1ZSl7dmFyICQ9aihZZSx1ZSk7KCQua2V5PT09bnVsbHx8JC5rZXk9PT12b2lkIDApJiYoJC5rZXk9InJjLW5vdGlmaWNhdGlvbi0iLmNvbmNhdChXKSxXKz0xKSxVKGZ1bmN0aW9uKF8pe3JldHVybltdLmNvbmNhdCgoMCxyLlopKF8pLFt7dHlwZToib3BlbiIsY29uZmlnOiR9XSl9KX0sY2xvc2U6ZnVuY3Rpb24odWUpe1UoZnVuY3Rpb24oJCl7cmV0dXJuW10uY29uY2F0KCgwLHIuWikoJCksW3t0eXBlOiJjbG9zZSIsa2V5OnVlfV0pfSl9LGRlc3Ryb3k6ZnVuY3Rpb24oKXtVKGZ1bmN0aW9uKHVlKXtyZXR1cm5bXS5jb25jYXQoKDAsci5aKSh1ZSksW3t0eXBlOiJkZXN0cm95In1dKX0pfX19LFtdKTtyZXR1cm4gaS51c2VFZmZlY3QoZnVuY3Rpb24oKXtGZShQKCkpfSksaS51c2VFZmZlY3QoZnVuY3Rpb24oKXtpZihTZS5jdXJyZW50JiZBLmxlbmd0aCl7QS5mb3JFYWNoKGZ1bmN0aW9uKCQpe3N3aXRjaCgkLnR5cGUpe2Nhc2Uib3BlbiI6U2UuY3VycmVudC5vcGVuKCQuY29uZmlnKTticmVhaztjYXNlImNsb3NlIjpTZS5jdXJyZW50LmNsb3NlKCQua2V5KTticmVhaztjYXNlImRlc3Ryb3kiOlNlLmN1cnJlbnQuZGVzdHJveSgpO2JyZWFrfX0pO3ZhciBRLHVlO1UoZnVuY3Rpb24oJCl7cmV0dXJuKFEhPT0kfHwhdWUpJiYoUT0kLHVlPSQuZmlsdGVyKGZ1bmN0aW9uKF8pe3JldHVybiFBLmluY2x1ZGVzKF8pfSkpLHVlfSl9fSxbQV0pLFtOLHFdfX0sMzk5ODM6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiBWfX0pO3ZhciByPWUoODc0NjIpLG49ZSgxNDEzKSx0PWUoOTc2ODUpLGk9ZSg5MSkscz1lKDY3Mjk0KSxhPWUoOTM5NjcpLHU9ZS5uKGEpLGM9ZSg0ODU1NSksaD1lKDg0MTApLGQ9WyJwcmVmaXhDbHMiLCJpbnZhbGlkYXRlIiwiaXRlbSIsInJlbmRlckl0ZW0iLCJyZXNwb25zaXZlIiwicmVzcG9uc2l2ZURpc2FibGVkIiwicmVnaXN0ZXJTaXplIiwiaXRlbUtleSIsImNsYXNzTmFtZSIsInN0eWxlIiwiY2hpbGRyZW4iLCJkaXNwbGF5Iiwib3JkZXIiLCJjb21wb25lbnQiXSxtPXZvaWQgMDtmdW5jdGlvbiBDKFosUCl7dmFyIEs9Wi5wcmVmaXhDbHMsc2U9Wi5pbnZhbGlkYXRlLG5lPVouaXRlbSxvZT1aLnJlbmRlckl0ZW0sZmU9Wi5yZXNwb25zaXZlLEVlPVoucmVzcG9uc2l2ZURpc2FibGVkLFJlPVoucmVnaXN0ZXJTaXplLEJlPVouaXRlbUtleSxZZT1aLmNsYXNzTmFtZSxvdD1aLnN0eWxlLHFlPVouY2hpbGRyZW4sX2U9Wi5kaXNwbGF5LEZlPVoub3JkZXIsU2U9Wi5jb21wb25lbnQscT1TZT09PXZvaWQgMD8iZGl2IjpTZSxrPSgwLGkuWikoWixkKSxNPWZlJiYhX2U7ZnVuY3Rpb24gQSgkKXtSZShCZSwkKX1zLnVzZUVmZmVjdChmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbigpe0EobnVsbCl9fSxbXSk7dmFyIFU9b2UmJm5lIT09bT9vZShuZSx7aW5kZXg6RmV9KTpxZSxOO3NlfHwoTj17b3BhY2l0eTpNPzA6MSxoZWlnaHQ6TT8wOm0sb3ZlcmZsb3dZOk0/ImhpZGRlbiI6bSxvcmRlcjpmZT9GZTptLHBvaW50ZXJFdmVudHM6TT8ibm9uZSI6bSxwb3NpdGlvbjpNPyJhYnNvbHV0ZSI6bX0pO3ZhciBRPXt9O00mJihRWyJhcmlhLWhpZGRlbiJdPSEwKTt2YXIgdWU9cy5jcmVhdGVFbGVtZW50KHEsKDAsci5aKSh7Y2xhc3NOYW1lOnUoKSghc2UmJkssWWUpLHN0eWxlOigwLG4uWikoKDAsbi5aKSh7fSxOKSxvdCl9LFEsayx7cmVmOlB9KSxVKTtyZXR1cm4gZmUmJih1ZT1zLmNyZWF0ZUVsZW1lbnQoYy5aLHtvblJlc2l6ZTpmdW5jdGlvbihfKXt2YXIgcGU9Xy5vZmZzZXRXaWR0aDtBKHBlKX0sZGlzYWJsZWQ6RWV9LHVlKSksdWV9dmFyIGc9cy5mb3J3YXJkUmVmKEMpO2cuZGlzcGxheU5hbWU9Ikl0ZW0iO3ZhciB3PWcsRT1lKDY2NjgwKSx4PWUoNzM5MzUpLE89ZSg3NTE2NCk7ZnVuY3Rpb24gVChaKXtpZih0eXBlb2YgTWVzc2FnZUNoYW5uZWw9PSJ1bmRlZmluZWQiKSgwLE8uWikoWik7ZWxzZXt2YXIgUD1uZXcgTWVzc2FnZUNoYW5uZWw7UC5wb3J0MS5vbm1lc3NhZ2U9ZnVuY3Rpb24oKXtyZXR1cm4gWigpfSxQLnBvcnQyLnBvc3RNZXNzYWdlKHZvaWQgMCl9fWZ1bmN0aW9uIFMoKXt2YXIgWj1zLnVzZVJlZihudWxsKSxQPWZ1bmN0aW9uKHNlKXtaLmN1cnJlbnR8fChaLmN1cnJlbnQ9W10sVChmdW5jdGlvbigpeygwLHgudW5zdGFibGVfYmF0Y2hlZFVwZGF0ZXMpKGZ1bmN0aW9uKCl7Wi5jdXJyZW50LmZvckVhY2goZnVuY3Rpb24obmUpe25lKCl9KSxaLmN1cnJlbnQ9bnVsbH0pfSkpLFouY3VycmVudC5wdXNoKHNlKX07cmV0dXJuIFB9ZnVuY3Rpb24gTChaLFApe3ZhciBLPXMudXNlU3RhdGUoUCksc2U9KDAsdC5aKShLLDIpLG5lPXNlWzBdLG9lPXNlWzFdLGZlPSgwLEUuWikoZnVuY3Rpb24oRWUpe1ooZnVuY3Rpb24oKXtvZShFZSl9KX0pO3JldHVybltuZSxmZV19dmFyIEk9cy5jcmVhdGVDb250ZXh0KG51bGwpLFI9WyJjb21wb25lbnQiXSx6PVsiY2xhc3NOYW1lIl0sRz1bImNsYXNzTmFtZSJdLFk9ZnVuY3Rpb24oUCxLKXt2YXIgc2U9cy51c2VDb250ZXh0KEkpO2lmKCFzZSl7dmFyIG5lPVAuY29tcG9uZW50LG9lPW5lPT09dm9pZCAwPyJkaXYiOm5lLGZlPSgwLGkuWikoUCxSKTtyZXR1cm4gcy5jcmVhdGVFbGVtZW50KG9lLCgwLHIuWikoe30sZmUse3JlZjpLfSkpfXZhciBFZT1zZS5jbGFzc05hbWUsUmU9KDAsaS5aKShzZSx6KSxCZT1QLmNsYXNzTmFtZSxZZT0oMCxpLlopKFAsRyk7cmV0dXJuIHMuY3JlYXRlRWxlbWVudChJLlByb3ZpZGVyLHt2YWx1ZTpudWxsfSxzLmNyZWF0ZUVsZW1lbnQodywoMCxyLlopKHtyZWY6SyxjbGFzc05hbWU6dSgpKEVlLEJlKX0sUmUsWWUpKSl9LGVlPXMuZm9yd2FyZFJlZihZKTtlZS5kaXNwbGF5TmFtZT0iUmF3SXRlbSI7dmFyIEo9ZWUsbWU9WyJwcmVmaXhDbHMiLCJkYXRhIiwicmVuZGVySXRlbSIsInJlbmRlclJhd0l0ZW0iLCJpdGVtS2V5IiwiaXRlbVdpZHRoIiwic3NyIiwic3R5bGUiLCJjbGFzc05hbWUiLCJtYXhDb3VudCIsInJlbmRlclJlc3QiLCJyZW5kZXJSYXdSZXN0Iiwic3VmZml4IiwiY29tcG9uZW50IiwiaXRlbUNvbXBvbmVudCIsIm9uVmlzaWJsZUNoYW5nZSJdLHRlPSJyZXNwb25zaXZlIixsZT0iaW52YWxpZGF0ZSI7ZnVuY3Rpb24gY2UoWil7cmV0dXJuIisgIi5jb25jYXQoWi5sZW5ndGgsIiAuLi4iKX1mdW5jdGlvbiBXKFosUCl7dmFyIEs9Wi5wcmVmaXhDbHMsc2U9Sz09PXZvaWQgMD8icmMtb3ZlcmZsb3ciOkssbmU9Wi5kYXRhLG9lPW5lPT09dm9pZCAwP1tdOm5lLGZlPVoucmVuZGVySXRlbSxFZT1aLnJlbmRlclJhd0l0ZW0sUmU9Wi5pdGVtS2V5LEJlPVouaXRlbVdpZHRoLFllPUJlPT09dm9pZCAwPzEwOkJlLG90PVouc3NyLHFlPVouc3R5bGUsX2U9Wi5jbGFzc05hbWUsRmU9Wi5tYXhDb3VudCxTZT1aLnJlbmRlclJlc3QscT1aLnJlbmRlclJhd1Jlc3Qsaz1aLnN1ZmZpeCxNPVouY29tcG9uZW50LEE9TT09PXZvaWQgMD8iZGl2IjpNLFU9Wi5pdGVtQ29tcG9uZW50LE49Wi5vblZpc2libGVDaGFuZ2UsUT0oMCxpLlopKFosbWUpLHVlPW90PT09ImZ1bGwiLCQ9UygpLF89TCgkLG51bGwpLHBlPSgwLHQuWikoXywyKSxyZT1wZVswXSxhZT1wZVsxXSx3ZT1yZXx8MCxMZT1MKCQsbmV3IE1hcCksTWU9KDAsdC5aKShMZSwyKSxiZT1NZVswXSwkZT1NZVsxXSxrZT1MKCQsMCksQWU9KDAsdC5aKShrZSwyKSx0dD1BZVswXSxtdD1BZVsxXSx1dD1MKCQsMCksRGU9KDAsdC5aKSh1dCwyKSxOZT1EZVswXSxYZT1EZVsxXSxKZT1MKCQsMCksZ3Q9KDAsdC5aKShKZSwyKSxkZT1ndFswXSxXZT1ndFsxXSxTdD0oMCxzLnVzZVN0YXRlKShudWxsKSxjdD0oMCx0LlopKFN0LDIpLE9lPWN0WzBdLEdlPWN0WzFdLGh0PSgwLHMudXNlU3RhdGUpKG51bGwpLHplPSgwLHQuWikoaHQsMiksUWU9emVbMF0scHQ9emVbMV0sYnQ9cy51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJuIFFlPT09bnVsbCYmdWU/TnVtYmVyLk1BWF9TQUZFX0lOVEVHRVI6UWV8fDB9LFtRZSxyZV0pLEl0PSgwLHMudXNlU3RhdGUpKCExKSxUdD0oMCx0LlopKEl0LDIpLFh0PVR0WzBdLGZuPVR0WzFdLG5uPSIiLmNvbmNhdChzZSwiLWl0ZW0iKSxvbj1NYXRoLm1heCh0dCxOZSksTnQ9RmU9PT10ZSxabj1vZS5sZW5ndGgmJk50LHluPUZlPT09bGUsZ249Wm58fHR5cGVvZiBGZT09Im51bWJlciImJm9lLmxlbmd0aD5GZSxCbj0oMCxzLnVzZU1lbW8pKGZ1bmN0aW9uKCl7dmFyIFduPW9lO3JldHVybiBabj9yZT09PW51bGwmJnVlP1duPW9lOlduPW9lLnNsaWNlKDAsTWF0aC5taW4ob2UubGVuZ3RoLHdlL1llKSk6dHlwZW9mIEZlPT0ibnVtYmVyIiYmKFduPW9lLnNsaWNlKDAsRmUpKSxXbn0sW29lLFllLHJlLEZlLFpuXSksVm49KDAscy51c2VNZW1vKShmdW5jdGlvbigpe3JldHVybiBabj9vZS5zbGljZShidCsxKTpvZS5zbGljZShCbi5sZW5ndGgpfSxbb2UsQm4sWm4sYnRdKSxObj0oMCxzLnVzZUNhbGxiYWNrKShmdW5jdGlvbihXbix3bil7dmFyIEN0O3JldHVybiB0eXBlb2YgUmU9PSJmdW5jdGlvbiI/UmUoV24pOihDdD1SZSYmKFduPT1udWxsP3ZvaWQgMDpXbltSZV0pKSE9PW51bGwmJkN0IT09dm9pZCAwP0N0OndufSxbUmVdKSxmdD0oMCxzLnVzZUNhbGxiYWNrKShmZXx8ZnVuY3Rpb24oV24pe3JldHVybiBXbn0sW2ZlXSk7ZnVuY3Rpb24gZXQoV24sd24sQ3Qpe1FlPT09V24mJih3bj09PXZvaWQgMHx8d249PT1PZSl8fChwdChXbiksQ3R8fChmbihXbjxvZS5sZW5ndGgtMSksTj09bnVsbHx8TihXbikpLHduIT09dm9pZCAwJiZHZSh3bikpfWZ1bmN0aW9uIEp0KFduLHduKXthZSh3bi5jbGllbnRXaWR0aCl9ZnVuY3Rpb24gd3QoV24sd24peyRlKGZ1bmN0aW9uKEN0KXt2YXIgWnQ9bmV3IE1hcChDdCk7cmV0dXJuIHduPT09bnVsbD9adC5kZWxldGUoV24pOlp0LnNldChXbix3biksWnR9KX1mdW5jdGlvbiBfdChXbix3bil7WGUod24pLG10KE5lKX1mdW5jdGlvbiB4bihXbix3bil7V2Uod24pfWZ1bmN0aW9uIFluKFduKXtyZXR1cm4gYmUuZ2V0KE5uKEJuW1duXSxXbikpfSgwLGguWikoZnVuY3Rpb24oKXtpZih3ZSYmdHlwZW9mIG9uPT0ibnVtYmVyIiYmQm4pe3ZhciBXbj1kZSx3bj1Cbi5sZW5ndGgsQ3Q9d24tMTtpZighd24pe2V0KDAsbnVsbCk7cmV0dXJufWZvcih2YXIgWnQ9MDtadDx3bjtadCs9MSl7dmFyIGFuPVluKFp0KTtpZih1ZSYmKGFuPWFufHwwKSxhbj09PXZvaWQgMCl7ZXQoWnQtMSx2b2lkIDAsITApO2JyZWFrfWlmKFduKz1hbixDdD09PTAmJlduPD13ZXx8WnQ9PT1DdC0xJiZXbitZbihDdCk8PXdlKXtldChDdCxudWxsKTticmVha31lbHNlIGlmKFduK29uPndlKXtldChadC0xLFduLWFuLWRlK05lKTticmVha319ayYmWW4oMCkrZGU+d2UmJkdlKG51bGwpfX0sW3dlLGJlLE5lLGRlLE5uLEJuXSk7dmFyIFBuPVh0JiYhIVZuLmxlbmd0aCxMbj17fTtPZSE9PW51bGwmJlpuJiYoTG49e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsbGVmdDpPZSx0b3A6MH0pO3ZhciBlcj17cHJlZml4Q2xzOm5uLHJlc3BvbnNpdmU6Wm4sY29tcG9uZW50OlUsaW52YWxpZGF0ZTp5bn0sUW49RWU/ZnVuY3Rpb24oV24sd24pe3ZhciBDdD1ObihXbix3bik7cmV0dXJuIHMuY3JlYXRlRWxlbWVudChJLlByb3ZpZGVyLHtrZXk6Q3QsdmFsdWU6KDAsbi5aKSgoMCxuLlopKHt9LGVyKSx7fSx7b3JkZXI6d24saXRlbTpXbixpdGVtS2V5OkN0LHJlZ2lzdGVyU2l6ZTp3dCxkaXNwbGF5OnduPD1idH0pfSxFZShXbix3bikpfTpmdW5jdGlvbihXbix3bil7dmFyIEN0PU5uKFduLHduKTtyZXR1cm4gcy5jcmVhdGVFbGVtZW50KHcsKDAsci5aKSh7fSxlcix7b3JkZXI6d24sa2V5OkN0LGl0ZW06V24scmVuZGVySXRlbTpmdCxpdGVtS2V5OkN0LHJlZ2lzdGVyU2l6ZTp3dCxkaXNwbGF5OnduPD1idH0pKX0sdXI9e29yZGVyOlBuP2J0Ok51bWJlci5NQVhfU0FGRV9JTlRFR0VSLGNsYXNzTmFtZToiIi5jb25jYXQobm4sIi1yZXN0IikscmVnaXN0ZXJTaXplOl90LGRpc3BsYXk6UG59LGlyPVNlfHxjZSx2bj1xP3MuY3JlYXRlRWxlbWVudChJLlByb3ZpZGVyLHt2YWx1ZTooMCxuLlopKCgwLG4uWikoe30sZXIpLHVyKX0scShWbikpOnMuY3JlYXRlRWxlbWVudCh3LCgwLHIuWikoe30sZXIsdXIpLHR5cGVvZiBpcj09ImZ1bmN0aW9uIj9pcihWbik6aXIpLGNyPXMuY3JlYXRlRWxlbWVudChBLCgwLHIuWikoe2NsYXNzTmFtZTp1KCkoIXluJiZzZSxfZSksc3R5bGU6cWUscmVmOlB9LFEpLEJuLm1hcChRbiksZ24/dm46bnVsbCxrJiZzLmNyZWF0ZUVsZW1lbnQodywoMCxyLlopKHt9LGVyLHtyZXNwb25zaXZlOk50LHJlc3BvbnNpdmVEaXNhYmxlZDohWm4sb3JkZXI6YnQsY2xhc3NOYW1lOiIiLmNvbmNhdChubiwiLXN1ZmZpeCIpLHJlZ2lzdGVyU2l6ZTp4bixkaXNwbGF5OiEwLHN0eWxlOkxufSksaykpO3JldHVybiBOdD9zLmNyZWF0ZUVsZW1lbnQoYy5aLHtvblJlc2l6ZTpKdCxkaXNhYmxlZDohWm59LGNyKTpjcn12YXIgaj1zLmZvcndhcmRSZWYoVyk7ai5kaXNwbGF5TmFtZT0iT3ZlcmZsb3ciLGouSXRlbT1KLGouUkVTUE9OU0lWRT10ZSxqLklOVkFMSURBVEU9bGU7dmFyIEQ9aixWPUR9LDYyOTA2OmZ1bmN0aW9uKHkscCl7InVzZSBzdHJpY3QiO3ZhciBlPXtpdGVtc19wZXJfcGFnZToiLyBwYWdlIixqdW1wX3RvOiJHbyB0byIsanVtcF90b19jb25maXJtOiJjb25maXJtIixwYWdlOiJQYWdlIixwcmV2X3BhZ2U6IlByZXZpb3VzIFBhZ2UiLG5leHRfcGFnZToiTmV4dCBQYWdlIixwcmV2XzU6IlByZXZpb3VzIDUgUGFnZXMiLG5leHRfNToiTmV4dCA1IFBhZ2VzIixwcmV2XzM6IlByZXZpb3VzIDMgUGFnZXMiLG5leHRfMzoiTmV4dCAzIFBhZ2VzIixwYWdlX3NpemU6IlBhZ2UgU2l6ZSJ9O3AuWj1lfSw4MTYyNjpmdW5jdGlvbih5LHApeyJ1c2Ugc3RyaWN0Ijt2YXIgZT17aXRlbXNfcGVyX3BhZ2U6Ilx1Njc2MS9cdTk4NzUiLGp1bXBfdG86Ilx1OERGM1x1ODFGMyIsanVtcF90b19jb25maXJtOiJcdTc4NkVcdTVCOUEiLHBhZ2U6Ilx1OTg3NSIscHJldl9wYWdlOiJcdTRFMEFcdTRFMDBcdTk4NzUiLG5leHRfcGFnZToiXHU0RTBCXHU0RTAwXHU5ODc1IixwcmV2XzU6Ilx1NTQxMVx1NTI0RCA1IFx1OTg3NSIsbmV4dF81OiJcdTU0MTFcdTU0MEUgNSBcdTk4NzUiLHByZXZfMzoiXHU1NDExXHU1MjREIDMgXHU5ODc1IixuZXh0XzM6Ilx1NTQxMVx1NTQwRSAzIFx1OTg3NSIscGFnZV9zaXplOiJcdTk4NzVcdTc4MDEifTtwLlo9ZX0sMjU1NDE6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7ejpmdW5jdGlvbigpe3JldHVybiByfX0pO3ZhciByPXt5ZWFyRm9ybWF0OiJZWVlZIixkYXlGb3JtYXQ6IkQiLGNlbGxNZXJpZGllbUZvcm1hdDoiQSIsbW9udGhCZWZvcmVZZWFyOiEwfX0sNDg1NTU6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiBsZX19KTt2YXIgcj1lKDg3NDYyKSxuPWUoNjcyOTQpLHQ9ZSg1MDM0NCksaT1lKDgwMzM0KSxzPWUoMTQxMyksYT1lKDcxMDAyKSx1PWUoMzQyMDMpLGM9ZSg0MjU1MCksaD1uLmNyZWF0ZUNvbnRleHQobnVsbCk7ZnVuY3Rpb24gZChjZSl7dmFyIFc9Y2UuY2hpbGRyZW4saj1jZS5vbkJhdGNoUmVzaXplLEQ9bi51c2VSZWYoMCksVj1uLnVzZVJlZihbXSksWj1uLnVzZUNvbnRleHQoaCksUD1uLnVzZUNhbGxiYWNrKGZ1bmN0aW9uKEssc2UsbmUpe0QuY3VycmVudCs9MTt2YXIgb2U9RC5jdXJyZW50O1YuY3VycmVudC5wdXNoKHtzaXplOkssZWxlbWVudDpzZSxkYXRhOm5lfSksUHJvbWlzZS5yZXNvbHZlKCkudGhlbihmdW5jdGlvbigpe29lPT09RC5jdXJyZW50JiYoaj09bnVsbHx8aihWLmN1cnJlbnQpLFYuY3VycmVudD1bXSl9KSxaPT1udWxsfHxaKEssc2UsbmUpfSxbaixaXSk7cmV0dXJuIG4uY3JlYXRlRWxlbWVudChoLlByb3ZpZGVyLHt2YWx1ZTpQfSxXKX12YXIgbT1lKDkxMDMzKSxDPW5ldyBNYXA7ZnVuY3Rpb24gZyhjZSl7Y2UuZm9yRWFjaChmdW5jdGlvbihXKXt2YXIgaixEPVcudGFyZ2V0OyhqPUMuZ2V0KEQpKT09PW51bGx8fGo9PT12b2lkIDB8fGouZm9yRWFjaChmdW5jdGlvbihWKXtyZXR1cm4gVihEKX0pfSl9dmFyIHc9bmV3IG0uWihnKSxFPW51bGwseD1udWxsO2Z1bmN0aW9uIE8oY2UsVyl7Qy5oYXMoY2UpfHwoQy5zZXQoY2UsbmV3IFNldCksdy5vYnNlcnZlKGNlKSksQy5nZXQoY2UpLmFkZChXKX1mdW5jdGlvbiBUKGNlLFcpe0MuaGFzKGNlKSYmKEMuZ2V0KGNlKS5kZWxldGUoVyksQy5nZXQoY2UpLnNpemV8fCh3LnVub2JzZXJ2ZShjZSksQy5kZWxldGUoY2UpKSl9dmFyIFM9ZSgxNTY3MSksTD1lKDQzMTQ0KSxJPWUoNjAxMzYpLFI9ZSgyOTM4OCksej1mdW5jdGlvbihjZSl7KDAsSS5aKShqLGNlKTt2YXIgVz0oMCxSLlopKGopO2Z1bmN0aW9uIGooKXtyZXR1cm4oMCxTLlopKHRoaXMsaiksVy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuKDAsTC5aKShqLFt7a2V5OiJyZW5kZXIiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHJvcHMuY2hpbGRyZW59fV0pLGp9KG4uQ29tcG9uZW50KTtmdW5jdGlvbiBHKGNlLFcpe3ZhciBqPWNlLmNoaWxkcmVuLEQ9Y2UuZGlzYWJsZWQsVj1uLnVzZVJlZihudWxsKSxaPW4udXNlUmVmKG51bGwpLFA9bi51c2VDb250ZXh0KGgpLEs9dHlwZW9mIGo9PSJmdW5jdGlvbiIsc2U9Sz9qKFYpOmosbmU9bi51c2VSZWYoe3dpZHRoOi0xLGhlaWdodDotMSxvZmZzZXRXaWR0aDotMSxvZmZzZXRIZWlnaHQ6LTF9KSxvZT0hSyYmbi5pc1ZhbGlkRWxlbWVudChzZSkmJigwLGMuWXIpKHNlKSxmZT1vZT8oMCxjLkM0KShzZSk6bnVsbCxFZT0oMCxjLngxKShmZSxWKSxSZT1mdW5jdGlvbigpe3ZhciBxZTtyZXR1cm4oMCx1LlpQKShWLmN1cnJlbnQpfHwoVi5jdXJyZW50JiYoMCxhLlopKFYuY3VycmVudCk9PT0ib2JqZWN0Ij8oMCx1LlpQKSgocWU9Vi5jdXJyZW50KT09PW51bGx8fHFlPT09dm9pZCAwP3ZvaWQgMDpxZS5uYXRpdmVFbGVtZW50KTpudWxsKXx8KDAsdS5aUCkoWi5jdXJyZW50KX07bi51c2VJbXBlcmF0aXZlSGFuZGxlKFcsZnVuY3Rpb24oKXtyZXR1cm4gUmUoKX0pO3ZhciBCZT1uLnVzZVJlZihjZSk7QmUuY3VycmVudD1jZTt2YXIgWWU9bi51c2VDYWxsYmFjayhmdW5jdGlvbihvdCl7dmFyIHFlPUJlLmN1cnJlbnQsX2U9cWUub25SZXNpemUsRmU9cWUuZGF0YSxTZT1vdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxxPVNlLndpZHRoLGs9U2UuaGVpZ2h0LE09b3Qub2Zmc2V0V2lkdGgsQT1vdC5vZmZzZXRIZWlnaHQsVT1NYXRoLmZsb29yKHEpLE49TWF0aC5mbG9vcihrKTtpZihuZS5jdXJyZW50LndpZHRoIT09VXx8bmUuY3VycmVudC5oZWlnaHQhPT1OfHxuZS5jdXJyZW50Lm9mZnNldFdpZHRoIT09TXx8bmUuY3VycmVudC5vZmZzZXRIZWlnaHQhPT1BKXt2YXIgUT17d2lkdGg6VSxoZWlnaHQ6TixvZmZzZXRXaWR0aDpNLG9mZnNldEhlaWdodDpBfTtuZS5jdXJyZW50PVE7dmFyIHVlPU09PT1NYXRoLnJvdW5kKHEpP3E6TSwkPUE9PT1NYXRoLnJvdW5kKGspP2s6QSxfPSgwLHMuWikoKDAscy5aKSh7fSxRKSx7fSx7b2Zmc2V0V2lkdGg6dWUsb2Zmc2V0SGVpZ2h0OiR9KTtQPT1udWxsfHxQKF8sb3QsRmUpLF9lJiZQcm9taXNlLnJlc29sdmUoKS50aGVuKGZ1bmN0aW9uKCl7X2UoXyxvdCl9KX19LFtdKTtyZXR1cm4gbi51c2VFZmZlY3QoZnVuY3Rpb24oKXt2YXIgb3Q9UmUoKTtyZXR1cm4gb3QmJiFEJiZPKG90LFllKSxmdW5jdGlvbigpe3JldHVybiBUKG90LFllKX19LFtWLmN1cnJlbnQsRF0pLG4uY3JlYXRlRWxlbWVudCh6LHtyZWY6Wn0sb2U/bi5jbG9uZUVsZW1lbnQoc2Use3JlZjpFZX0pOnNlKX12YXIgWT1uLmZvcndhcmRSZWYoRyksZWU9WSxKPSJyYy1vYnNlcnZlci1rZXkiO2Z1bmN0aW9uIG1lKGNlLFcpe3ZhciBqPWNlLmNoaWxkcmVuLEQ9dHlwZW9mIGo9PSJmdW5jdGlvbiI/W2pdOigwLHQuWikoaik7cmV0dXJuIEQubWFwKGZ1bmN0aW9uKFYsWil7dmFyIFA9KFY9PW51bGw/dm9pZCAwOlYua2V5KXx8IiIuY29uY2F0KEosIi0iKS5jb25jYXQoWik7cmV0dXJuIG4uY3JlYXRlRWxlbWVudChlZSwoMCxyLlopKHt9LGNlLHtrZXk6UCxyZWY6Wj09PTA/Vzp2b2lkIDB9KSxWKX0pfXZhciB0ZT1uLmZvcndhcmRSZWYobWUpO3RlLkNvbGxlY3Rpb249ZDt2YXIgbGU9dGV9LDg4NzA4OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1pQOmZ1bmN0aW9uKCl7cmV0dXJuIHV9fSk7dmFyIHI9ZSg5NzY4NSksbj1lKDY3Mjk0KSx0PWUoOTg5MjQpLGk9MCxzPSgwLHQuWikoKTtmdW5jdGlvbiBhKCl7dmFyIGM7cmV0dXJuIHM/KGM9aSxpKz0xKTpjPSJURVNUX09SX1NTUiIsY31mdW5jdGlvbiB1KGMpe3ZhciBoPW4udXNlU3RhdGUoKSxkPSgwLHIuWikoaCwyKSxtPWRbMF0sQz1kWzFdO3JldHVybiBuLnVzZUVmZmVjdChmdW5jdGlvbigpe0MoInJjX3NlbGVjdF8iLmNvbmNhdChhKCkpKX0sW10pLGN8fG19fSw4MjI3NTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtBYzpmdW5jdGlvbigpe3JldHVybiBiZX0sWG86ZnVuY3Rpb24oKXtyZXR1cm4ga2V9LFd4OmZ1bmN0aW9uKCl7cmV0dXJuIHR0fSxaUDpmdW5jdGlvbigpe3JldHVybiBObn0sbGs6ZnVuY3Rpb24oKXtyZXR1cm4gTH19KTt2YXIgcj1lKDg3NDYyKSxuPWUoNzQ5MDIpLHQ9ZSg0OTQyKSxpPWUoMTQxMykscz1lKDk3Njg1KSxhPWUoOTEpLHU9ZSg3MTAwMiksYz1lKDIxNzcwKSxoPWUoODAzMzQpLGQ9ZSg2NzI5NCksbT1lKDkzOTY3KSxDPWUubihtKSxnPWUoODQxMCksdz1lKDMxMTMxKSxFPWUoNDI1NTApLHg9ZnVuY3Rpb24oZXQpe3ZhciBKdD1ldC5jbGFzc05hbWUsd3Q9ZXQuY3VzdG9taXplSWNvbixfdD1ldC5jdXN0b21pemVJY29uUHJvcHMseG49ZXQuY2hpbGRyZW4sWW49ZXQub25Nb3VzZURvd24sUG49ZXQub25DbGljayxMbj10eXBlb2Ygd3Q9PSJmdW5jdGlvbiI/d3QoX3QpOnd0O3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6SnQsb25Nb3VzZURvd246ZnVuY3Rpb24oUW4pe1FuLnByZXZlbnREZWZhdWx0KCksWW49PW51bGx8fFluKFFuKX0sc3R5bGU6e3VzZXJTZWxlY3Q6Im5vbmUiLFdlYmtpdFVzZXJTZWxlY3Q6Im5vbmUifSx1bnNlbGVjdGFibGU6Im9uIixvbkNsaWNrOlBuLCJhcmlhLWhpZGRlbiI6ITB9LExuIT09dm9pZCAwP0xuOmQuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpDKCkoSnQuc3BsaXQoL1xzKy8pLm1hcChmdW5jdGlvbihlcil7cmV0dXJuIiIuY29uY2F0KGVyLCItaWNvbiIpfSkpfSx4bikpfSxPPXgsVD1mdW5jdGlvbihldCxKdCx3dCxfdCx4bil7dmFyIFluPWFyZ3VtZW50cy5sZW5ndGg+NSYmYXJndW1lbnRzWzVdIT09dm9pZCAwP2FyZ3VtZW50c1s1XTohMSxQbj1hcmd1bWVudHMubGVuZ3RoPjY/YXJndW1lbnRzWzZdOnZvaWQgMCxMbj1hcmd1bWVudHMubGVuZ3RoPjc/YXJndW1lbnRzWzddOnZvaWQgMCxlcj1kLnVzZU1lbW8oZnVuY3Rpb24oKXtpZigoMCx1LlopKF90KT09PSJvYmplY3QiKXJldHVybiBfdC5jbGVhckljb247aWYoeG4pcmV0dXJuIHhufSxbX3QseG5dKSxRbj1kLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4hISghWW4mJl90JiYod3QubGVuZ3RofHxQbikmJiEoTG49PT0iY29tYm9ib3giJiZQbj09PSIiKSl9LFtfdCxZbix3dC5sZW5ndGgsUG4sTG5dKTtyZXR1cm57YWxsb3dDbGVhcjpRbixjbGVhckljb246ZC5jcmVhdGVFbGVtZW50KE8se2NsYXNzTmFtZToiIi5jb25jYXQoZXQsIi1jbGVhciIpLG9uTW91c2VEb3duOkp0LGN1c3RvbWl6ZUljb246ZXJ9LCJceEQ3Iil9fSxTPWQuY3JlYXRlQ29udGV4dChudWxsKTtmdW5jdGlvbiBMKCl7cmV0dXJuIGQudXNlQ29udGV4dChTKX1mdW5jdGlvbiBJKCl7dmFyIGZ0PWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dm9pZCAwP2FyZ3VtZW50c1swXToxMCxldD1kLnVzZVN0YXRlKCExKSxKdD0oMCxzLlopKGV0LDIpLHd0PUp0WzBdLF90PUp0WzFdLHhuPWQudXNlUmVmKG51bGwpLFluPWZ1bmN0aW9uKCl7d2luZG93LmNsZWFyVGltZW91dCh4bi5jdXJyZW50KX07ZC51c2VFZmZlY3QoZnVuY3Rpb24oKXtyZXR1cm4gWW59LFtdKTt2YXIgUG49ZnVuY3Rpb24oZXIsUW4pe1luKCkseG4uY3VycmVudD13aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpe190KGVyKSxRbiYmUW4oKX0sZnQpfTtyZXR1cm5bd3QsUG4sWW5dfWZ1bmN0aW9uIFIoKXt2YXIgZnQ9YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT12b2lkIDA/YXJndW1lbnRzWzBdOjI1MCxldD1kLnVzZVJlZihudWxsKSxKdD1kLnVzZVJlZihudWxsKTtkLnVzZUVmZmVjdChmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbigpe3dpbmRvdy5jbGVhclRpbWVvdXQoSnQuY3VycmVudCl9fSxbXSk7ZnVuY3Rpb24gd3QoX3QpeyhfdHx8ZXQuY3VycmVudD09PW51bGwpJiYoZXQuY3VycmVudD1fdCksd2luZG93LmNsZWFyVGltZW91dChKdC5jdXJyZW50KSxKdC5jdXJyZW50PXdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZXQuY3VycmVudD1udWxsfSxmdCl9cmV0dXJuW2Z1bmN0aW9uKCl7cmV0dXJuIGV0LmN1cnJlbnR9LHd0XX1mdW5jdGlvbiB6KGZ0LGV0LEp0LHd0KXt2YXIgX3Q9ZC51c2VSZWYobnVsbCk7X3QuY3VycmVudD17b3BlbjpldCx0cmlnZ2VyT3BlbjpKdCxjdXN0b21pemVkVHJpZ2dlcjp3dH0sZC51c2VFZmZlY3QoZnVuY3Rpb24oKXtmdW5jdGlvbiB4bihZbil7dmFyIFBuO2lmKCEoKFBuPV90LmN1cnJlbnQpIT09bnVsbCYmUG4hPT12b2lkIDAmJlBuLmN1c3RvbWl6ZWRUcmlnZ2VyKSl7dmFyIExuPVluLnRhcmdldDtMbi5zaGFkb3dSb290JiZZbi5jb21wb3NlZCYmKExuPVluLmNvbXBvc2VkUGF0aCgpWzBdfHxMbiksX3QuY3VycmVudC5vcGVuJiZmdCgpLmZpbHRlcihmdW5jdGlvbihlcil7cmV0dXJuIGVyfSkuZXZlcnkoZnVuY3Rpb24oZXIpe3JldHVybiFlci5jb250YWlucyhMbikmJmVyIT09TG59KSYmX3QuY3VycmVudC50cmlnZ2VyT3BlbighMSl9fXJldHVybiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIix4biksZnVuY3Rpb24oKXtyZXR1cm4gd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIseG4pfX0sW10pfXZhciBHPWUoMTUxMDUpO2Z1bmN0aW9uIFkoZnQpe3JldHVybiBmdCYmIVtHLlouRVNDLEcuWi5TSElGVCxHLlouQkFDS1NQQUNFLEcuWi5UQUIsRy5aLldJTl9LRVksRy5aLkFMVCxHLlouTUVUQSxHLlouV0lOX0tFWV9SSUdIVCxHLlouQ1RSTCxHLlouU0VNSUNPTE9OLEcuWi5FUVVBTFMsRy5aLkNBUFNfTE9DSyxHLlouQ09OVEVYVF9NRU5VLEcuWi5GMSxHLlouRjIsRy5aLkYzLEcuWi5GNCxHLlouRjUsRy5aLkY2LEcuWi5GNyxHLlouRjgsRy5aLkY5LEcuWi5GMTAsRy5aLkYxMSxHLlouRjEyXS5pbmNsdWRlcyhmdCl9dmFyIGVlPWUoNjQyMTcpLEo9ZSgzOTk4MyksbWU9ZnVuY3Rpb24oZXQsSnQpe3ZhciB3dCxfdD1ldC5wcmVmaXhDbHMseG49ZXQuaWQsWW49ZXQuaW5wdXRFbGVtZW50LFBuPWV0LmRpc2FibGVkLExuPWV0LnRhYkluZGV4LGVyPWV0LmF1dG9Gb2N1cyxRbj1ldC5hdXRvQ29tcGxldGUsdXI9ZXQuZWRpdGFibGUsaXI9ZXQuYWN0aXZlRGVzY2VuZGFudElkLHZuPWV0LnZhbHVlLGNyPWV0Lm1heExlbmd0aCxXbj1ldC5vbktleURvd24sd249ZXQub25Nb3VzZURvd24sQ3Q9ZXQub25DaGFuZ2UsWnQ9ZXQub25QYXN0ZSxhbj1ldC5vbkNvbXBvc2l0aW9uU3RhcnQsRHQ9ZXQub25Db21wb3NpdGlvbkVuZCxrdD1ldC5vbkJsdXIsdG49ZXQub3Blbixtbj1ldC5hdHRycyxLbj1Zbnx8ZC5jcmVhdGVFbGVtZW50KCJpbnB1dCIsbnVsbCksSm49S24sWG49Sm4ucmVmLGZyPUpuLnByb3BzLHJyPWZyLm9uS2V5RG93bixocj1mci5vbkNoYW5nZSxGbj1mci5vbk1vdXNlRG93bixhcj1mci5vbkNvbXBvc2l0aW9uU3RhcnQsbHI9ZnIub25Db21wb3NpdGlvbkVuZCwkbj1mci5vbkJsdXIsc3I9ZnIuc3R5bGU7cmV0dXJuKDAsaC5LcCkoISgibWF4TGVuZ3RoImluIEtuLnByb3BzKSwiUGFzc2luZyAnbWF4TGVuZ3RoJyB0byBpbnB1dCBlbGVtZW50IGRpcmVjdGx5IG1heSBub3Qgd29yayBiZWNhdXNlIGlucHV0IGluIEJhc2VTZWxlY3QgaXMgY29udHJvbGxlZC4iKSxLbj1kLmNsb25lRWxlbWVudChLbiwoMCxpLlopKCgwLGkuWikoKDAsaS5aKSh7dHlwZToic2VhcmNoIn0sZnIpLHt9LHtpZDp4bixyZWY6KDAsRS5zUSkoSnQsWG4pLGRpc2FibGVkOlBuLHRhYkluZGV4OkxuLGF1dG9Db21wbGV0ZTpRbnx8Im9mZiIsYXV0b0ZvY3VzOmVyLGNsYXNzTmFtZTpDKCkoIiIuY29uY2F0KF90LCItc2VsZWN0aW9uLXNlYXJjaC1pbnB1dCIpLCh3dD1Lbik9PT1udWxsfHx3dD09PXZvaWQgMHx8KHd0PXd0LnByb3BzKT09PW51bGx8fHd0PT09dm9pZCAwP3ZvaWQgMDp3dC5jbGFzc05hbWUpLHJvbGU6ImNvbWJvYm94IiwiYXJpYS1leHBhbmRlZCI6dG58fCExLCJhcmlhLWhhc3BvcHVwIjoibGlzdGJveCIsImFyaWEtb3ducyI6IiIuY29uY2F0KHhuLCJfbGlzdCIpLCJhcmlhLWF1dG9jb21wbGV0ZSI6Imxpc3QiLCJhcmlhLWNvbnRyb2xzIjoiIi5jb25jYXQoeG4sIl9saXN0IiksImFyaWEtYWN0aXZlZGVzY2VuZGFudCI6dG4/aXI6dm9pZCAwfSxtbikse30se3ZhbHVlOnVyP3ZuOiIiLG1heExlbmd0aDpjcixyZWFkT25seTohdXIsdW5zZWxlY3RhYmxlOnVyP251bGw6Im9uIixzdHlsZTooMCxpLlopKCgwLGkuWikoe30sc3IpLHt9LHtvcGFjaXR5OnVyP251bGw6MH0pLG9uS2V5RG93bjpmdW5jdGlvbihaZSl7V24oWmUpLHJyJiZycihaZSl9LG9uTW91c2VEb3duOmZ1bmN0aW9uKFplKXt3bihaZSksRm4mJkZuKFplKX0sb25DaGFuZ2U6ZnVuY3Rpb24oWmUpe0N0KFplKSxociYmaHIoWmUpfSxvbkNvbXBvc2l0aW9uU3RhcnQ6ZnVuY3Rpb24oWmUpe2FuKFplKSxhciYmYXIoWmUpfSxvbkNvbXBvc2l0aW9uRW5kOmZ1bmN0aW9uKFplKXtEdChaZSksbHImJmxyKFplKX0sb25QYXN0ZTpadCxvbkJsdXI6ZnVuY3Rpb24oWmUpe2t0KFplKSwkbiYmJG4oWmUpfX0pKSxLbn0sdGU9ZC5mb3J3YXJkUmVmKG1lKSxsZT10ZTtmdW5jdGlvbiBjZShmdCl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZnQpP2Z0OmZ0IT09dm9pZCAwP1tmdF06W119dmFyIFc9dHlwZW9mIHdpbmRvdyE9InVuZGVmaW5lZCImJndpbmRvdy5kb2N1bWVudCYmd2luZG93LmRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxqPVc7ZnVuY3Rpb24gRChmdCl7cmV0dXJuIGZ0IT1udWxsfWZ1bmN0aW9uIFYoZnQpe3JldHVybiFmdCYmZnQhPT0wfWZ1bmN0aW9uIFooZnQpe3JldHVyblsic3RyaW5nIiwibnVtYmVyIl0uaW5jbHVkZXMoKDAsdS5aKShmdCkpfWZ1bmN0aW9uIFAoZnQpe3ZhciBldD12b2lkIDA7cmV0dXJuIGZ0JiYoWihmdC50aXRsZSk/ZXQ9ZnQudGl0bGUudG9TdHJpbmcoKTpaKGZ0LmxhYmVsKSYmKGV0PWZ0LmxhYmVsLnRvU3RyaW5nKCkpKSxldH1mdW5jdGlvbiBLKGZ0LGV0KXtqP2QudXNlTGF5b3V0RWZmZWN0KGZ0LGV0KTpkLnVzZUVmZmVjdChmdCxldCl9ZnVuY3Rpb24gc2UoZnQpe3ZhciBldDtyZXR1cm4oZXQ9ZnQua2V5KSE9PW51bGwmJmV0IT09dm9pZCAwP2V0OmZ0LnZhbHVlfXZhciBuZT1mdW5jdGlvbihldCl7ZXQucHJldmVudERlZmF1bHQoKSxldC5zdG9wUHJvcGFnYXRpb24oKX0sb2U9ZnVuY3Rpb24oZXQpe3ZhciBKdD1ldC5pZCx3dD1ldC5wcmVmaXhDbHMsX3Q9ZXQudmFsdWVzLHhuPWV0Lm9wZW4sWW49ZXQuc2VhcmNoVmFsdWUsUG49ZXQuYXV0b0NsZWFyU2VhcmNoVmFsdWUsTG49ZXQuaW5wdXRSZWYsZXI9ZXQucGxhY2Vob2xkZXIsUW49ZXQuZGlzYWJsZWQsdXI9ZXQubW9kZSxpcj1ldC5zaG93U2VhcmNoLHZuPWV0LmF1dG9Gb2N1cyxjcj1ldC5hdXRvQ29tcGxldGUsV249ZXQuYWN0aXZlRGVzY2VuZGFudElkLHduPWV0LnRhYkluZGV4LEN0PWV0LnJlbW92ZUljb24sWnQ9ZXQubWF4VGFnQ291bnQsYW49ZXQubWF4VGFnVGV4dExlbmd0aCxEdD1ldC5tYXhUYWdQbGFjZWhvbGRlcixrdD1EdD09PXZvaWQgMD9mdW5jdGlvbihfbil7cmV0dXJuIisgIi5jb25jYXQoX24ubGVuZ3RoLCIgLi4uIil9OkR0LHRuPWV0LnRhZ1JlbmRlcixtbj1ldC5vblRvZ2dsZU9wZW4sS249ZXQub25SZW1vdmUsSm49ZXQub25JbnB1dENoYW5nZSxYbj1ldC5vbklucHV0UGFzdGUsZnI9ZXQub25JbnB1dEtleURvd24scnI9ZXQub25JbnB1dE1vdXNlRG93bixocj1ldC5vbklucHV0Q29tcG9zaXRpb25TdGFydCxGbj1ldC5vbklucHV0Q29tcG9zaXRpb25FbmQsYXI9ZXQub25JbnB1dEJsdXIsbHI9ZC51c2VSZWYobnVsbCksJG49KDAsZC51c2VTdGF0ZSkoMCksc3I9KDAscy5aKSgkbiwyKSxGcj1zclswXSxaZT1zclsxXSxIZT0oMCxkLnVzZVN0YXRlKSghMSksbnQ9KDAscy5aKShIZSwyKSxydD1udFswXSx2dD1udFsxXSxWdD0iIi5jb25jYXQod3QsIi1zZWxlY3Rpb24iKSxlbj14bnx8dXI9PT0ibXVsdGlwbGUiJiZQbj09PSExfHx1cj09PSJ0YWdzIj9ZbjoiIixSbj11cj09PSJ0YWdzInx8dXI9PT0ibXVsdGlwbGUiJiZQbj09PSExfHxpciYmKHhufHxydCk7SyhmdW5jdGlvbigpe1plKGxyLmN1cnJlbnQuc2Nyb2xsV2lkdGgpfSxbZW5dKTt2YXIgam49ZnVuY3Rpb24oUGUsZ2UsdmUsSWUseGUpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHt0aXRsZTpQKFBlKSxjbGFzc05hbWU6QygpKCIiLmNvbmNhdChWdCwiLWl0ZW0iKSwoMCx0LlopKHt9LCIiLmNvbmNhdChWdCwiLWl0ZW0tZGlzYWJsZWQiKSx2ZSkpfSxkLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6IiIuY29uY2F0KFZ0LCItaXRlbS1jb250ZW50Iil9LGdlKSxJZSYmZC5jcmVhdGVFbGVtZW50KE8se2NsYXNzTmFtZToiIi5jb25jYXQoVnQsIi1pdGVtLXJlbW92ZSIpLG9uTW91c2VEb3duOm5lLG9uQ2xpY2s6eGUsY3VzdG9taXplSWNvbjpDdH0sIlx4RDciKSl9LGJuPWZ1bmN0aW9uKFBlLGdlLHZlLEllLHhlLGF0KXt2YXIgZHQ9ZnVuY3Rpb24oSHQpe25lKEh0KSxtbigheG4pfTtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KCJzcGFuIix7b25Nb3VzZURvd246ZHR9LHRuKHtsYWJlbDpnZSx2YWx1ZTpQZSxkaXNhYmxlZDp2ZSxjbG9zYWJsZTpJZSxvbkNsb3NlOnhlLGlzTWF4VGFnOiEhYXR9KSl9LEhuPWZ1bmN0aW9uKFBlKXt2YXIgZ2U9UGUuZGlzYWJsZWQsdmU9UGUubGFiZWwsSWU9UGUudmFsdWUseGU9IVFuJiYhZ2UsYXQ9dmU7aWYodHlwZW9mIGFuPT0ibnVtYmVyIiYmKHR5cGVvZiB2ZT09InN0cmluZyJ8fHR5cGVvZiB2ZT09Im51bWJlciIpKXt2YXIgZHQ9U3RyaW5nKGF0KTtkdC5sZW5ndGg+YW4mJihhdD0iIi5jb25jYXQoZHQuc2xpY2UoMCxhbiksIi4uLiIpKX12YXIgRXQ9ZnVuY3Rpb24oanQpe2p0JiZqdC5zdG9wUHJvcGFnYXRpb24oKSxLbihQZSl9O3JldHVybiB0eXBlb2YgdG49PSJmdW5jdGlvbiI/Ym4oSWUsYXQsZ2UseGUsRXQpOmpuKFBlLGF0LGdlLHhlLEV0KX0sR3Q9ZnVuY3Rpb24oUGUpe2lmKCFfdC5sZW5ndGgpcmV0dXJuIG51bGw7dmFyIGdlPXR5cGVvZiBrdD09ImZ1bmN0aW9uIj9rdChQZSk6a3Q7cmV0dXJuIHR5cGVvZiB0bj09ImZ1bmN0aW9uIj9ibih2b2lkIDAsZ2UsITEsITEsdm9pZCAwLCEwKTpqbih7dGl0bGU6Z2V9LGdlLCExKX0sU249ZC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KFZ0LCItc2VhcmNoIiksc3R5bGU6e3dpZHRoOkZyfSxvbkZvY3VzOmZ1bmN0aW9uKCl7dnQoITApfSxvbkJsdXI6ZnVuY3Rpb24oKXt2dCghMSl9fSxkLmNyZWF0ZUVsZW1lbnQobGUse3JlZjpMbixvcGVuOnhuLHByZWZpeENsczp3dCxpZDpKdCxpbnB1dEVsZW1lbnQ6bnVsbCxkaXNhYmxlZDpRbixhdXRvRm9jdXM6dm4sYXV0b0NvbXBsZXRlOmNyLGVkaXRhYmxlOlJuLGFjdGl2ZURlc2NlbmRhbnRJZDpXbix2YWx1ZTplbixvbktleURvd246ZnIsb25Nb3VzZURvd246cnIsb25DaGFuZ2U6Sm4sb25QYXN0ZTpYbixvbkNvbXBvc2l0aW9uU3RhcnQ6aHIsb25Db21wb3NpdGlvbkVuZDpGbixvbkJsdXI6YXIsdGFiSW5kZXg6d24sYXR0cnM6KDAsZWUuWikoZXQsITApfSksZC5jcmVhdGVFbGVtZW50KCJzcGFuIix7cmVmOmxyLGNsYXNzTmFtZToiIi5jb25jYXQoVnQsIi1zZWFyY2gtbWlycm9yIiksImFyaWEtaGlkZGVuIjohMH0sZW4sIlx4QTAiKSksT249ZC5jcmVhdGVFbGVtZW50KEouWix7cHJlZml4Q2xzOiIiLmNvbmNhdChWdCwiLW92ZXJmbG93IiksZGF0YTpfdCxyZW5kZXJJdGVtOkhuLHJlbmRlclJlc3Q6R3Qsc3VmZml4OlNuLGl0ZW1LZXk6c2UsbWF4Q291bnQ6WnR9KTtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiIiLmNvbmNhdChWdCwiLXdyYXAiKX0sT24sIV90Lmxlbmd0aCYmIWVuJiZkLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6IiIuY29uY2F0KFZ0LCItcGxhY2Vob2xkZXIiKX0sZXIpKX0sZmU9b2UsRWU9ZnVuY3Rpb24oZXQpe3ZhciBKdD1ldC5pbnB1dEVsZW1lbnQsd3Q9ZXQucHJlZml4Q2xzLF90PWV0LmlkLHhuPWV0LmlucHV0UmVmLFluPWV0LmRpc2FibGVkLFBuPWV0LmF1dG9Gb2N1cyxMbj1ldC5hdXRvQ29tcGxldGUsZXI9ZXQuYWN0aXZlRGVzY2VuZGFudElkLFFuPWV0Lm1vZGUsdXI9ZXQub3Blbixpcj1ldC52YWx1ZXMsdm49ZXQucGxhY2Vob2xkZXIsY3I9ZXQudGFiSW5kZXgsV249ZXQuc2hvd1NlYXJjaCx3bj1ldC5zZWFyY2hWYWx1ZSxDdD1ldC5hY3RpdmVWYWx1ZSxadD1ldC5tYXhMZW5ndGgsYW49ZXQub25JbnB1dEtleURvd24sRHQ9ZXQub25JbnB1dE1vdXNlRG93bixrdD1ldC5vbklucHV0Q2hhbmdlLHRuPWV0Lm9uSW5wdXRQYXN0ZSxtbj1ldC5vbklucHV0Q29tcG9zaXRpb25TdGFydCxLbj1ldC5vbklucHV0Q29tcG9zaXRpb25FbmQsSm49ZXQub25JbnB1dEJsdXIsWG49ZXQudGl0bGUsZnI9ZC51c2VTdGF0ZSghMSkscnI9KDAscy5aKShmciwyKSxocj1yclswXSxGbj1yclsxXSxhcj1Rbj09PSJjb21ib2JveCIsbHI9YXJ8fFduLCRuPWlyWzBdLHNyPXdufHwiIjthciYmQ3QmJiFociYmKHNyPUN0KSxkLnVzZUVmZmVjdChmdW5jdGlvbigpe2FyJiZGbighMSl9LFthcixDdF0pO3ZhciBGcj1RbiE9PSJjb21ib2JveCImJiF1ciYmIVduPyExOiEhc3IsWmU9WG49PT12b2lkIDA/UCgkbik6WG4sSGU9ZC51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJuICRuP251bGw6ZC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiIiLmNvbmNhdCh3dCwiLXNlbGVjdGlvbi1wbGFjZWhvbGRlciIpLHN0eWxlOkZyP3t2aXNpYmlsaXR5OiJoaWRkZW4ifTp2b2lkIDB9LHZuKX0sWyRuLEZyLHZuLHd0XSk7cmV0dXJuIGQuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToiIi5jb25jYXQod3QsIi1zZWxlY3Rpb24td3JhcCIpfSxkLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6IiIuY29uY2F0KHd0LCItc2VsZWN0aW9uLXNlYXJjaCIpfSxkLmNyZWF0ZUVsZW1lbnQobGUse3JlZjp4bixwcmVmaXhDbHM6d3QsaWQ6X3Qsb3Blbjp1cixpbnB1dEVsZW1lbnQ6SnQsZGlzYWJsZWQ6WW4sYXV0b0ZvY3VzOlBuLGF1dG9Db21wbGV0ZTpMbixlZGl0YWJsZTpscixhY3RpdmVEZXNjZW5kYW50SWQ6ZXIsdmFsdWU6c3Isb25LZXlEb3duOmFuLG9uTW91c2VEb3duOkR0LG9uQ2hhbmdlOmZ1bmN0aW9uKHJ0KXtGbighMCksa3QocnQpfSxvblBhc3RlOnRuLG9uQ29tcG9zaXRpb25TdGFydDptbixvbkNvbXBvc2l0aW9uRW5kOktuLG9uQmx1cjpKbix0YWJJbmRleDpjcixhdHRyczooMCxlZS5aKShldCwhMCksbWF4TGVuZ3RoOmFyP1p0OnZvaWQgMH0pKSwhYXImJiRuP2QuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToiIi5jb25jYXQod3QsIi1zZWxlY3Rpb24taXRlbSIpLHRpdGxlOlplLHN0eWxlOkZyP3t2aXNpYmlsaXR5OiJoaWRkZW4ifTp2b2lkIDB9LCRuLmxhYmVsKTpudWxsLEhlKX0sUmU9RWUsQmU9ZnVuY3Rpb24oZXQsSnQpe3ZhciB3dD0oMCxkLnVzZVJlZikobnVsbCksX3Q9KDAsZC51c2VSZWYpKCExKSx4bj1ldC5wcmVmaXhDbHMsWW49ZXQub3BlbixQbj1ldC5tb2RlLExuPWV0LnNob3dTZWFyY2gsZXI9ZXQudG9rZW5XaXRoRW50ZXIsUW49ZXQuZGlzYWJsZWQsdXI9ZXQucHJlZml4LGlyPWV0LmF1dG9DbGVhclNlYXJjaFZhbHVlLHZuPWV0Lm9uU2VhcmNoLGNyPWV0Lm9uU2VhcmNoU3VibWl0LFduPWV0Lm9uVG9nZ2xlT3Blbix3bj1ldC5vbklucHV0S2V5RG93bixDdD1ldC5vbklucHV0Qmx1cixadD1ldC5kb21SZWY7ZC51c2VJbXBlcmF0aXZlSGFuZGxlKEp0LGZ1bmN0aW9uKCl7cmV0dXJue2ZvY3VzOmZ1bmN0aW9uKFplKXt3dC5jdXJyZW50LmZvY3VzKFplKX0sYmx1cjpmdW5jdGlvbigpe3d0LmN1cnJlbnQuYmx1cigpfX19KTt2YXIgYW49UigwKSxEdD0oMCxzLlopKGFuLDIpLGt0PUR0WzBdLHRuPUR0WzFdLG1uPWZ1bmN0aW9uKFplKXt2YXIgSGU9WmUud2hpY2gsbnQ9d3QuY3VycmVudCBpbnN0YW5jZW9mIEhUTUxUZXh0QXJlYUVsZW1lbnQ7IW50JiZZbiYmKEhlPT09Ry5aLlVQfHxIZT09PUcuWi5ET1dOKSYmWmUucHJldmVudERlZmF1bHQoKSx3biYmd24oWmUpLEhlPT09Ry5aLkVOVEVSJiZQbj09PSJ0YWdzIiYmIV90LmN1cnJlbnQmJiFZbiYmKGNyPT1udWxsfHxjcihaZS50YXJnZXQudmFsdWUpKSwhKG50JiYhWW4mJn5bRy5aLlVQLEcuWi5ET1dOLEcuWi5MRUZULEcuWi5SSUdIVF0uaW5kZXhPZihIZSkpJiZZKEhlKSYmV24oITApfSxLbj1mdW5jdGlvbigpe3RuKCEwKX0sSm49KDAsZC51c2VSZWYpKG51bGwpLFhuPWZ1bmN0aW9uKFplKXt2bihaZSwhMCxfdC5jdXJyZW50KSE9PSExJiZXbighMCl9LGZyPWZ1bmN0aW9uKCl7X3QuY3VycmVudD0hMH0scnI9ZnVuY3Rpb24oWmUpe190LmN1cnJlbnQ9ITEsUG4hPT0iY29tYm9ib3giJiZYbihaZS50YXJnZXQudmFsdWUpfSxocj1mdW5jdGlvbihaZSl7dmFyIEhlPVplLnRhcmdldC52YWx1ZTtpZihlciYmSm4uY3VycmVudCYmL1tcclxuXS8udGVzdChKbi5jdXJyZW50KSl7dmFyIG50PUpuLmN1cnJlbnQucmVwbGFjZSgvW1xyXG5dKyQvLCIiKS5yZXBsYWNlKC9cclxuL2csIiAiKS5yZXBsYWNlKC9bXHJcbl0vZywiICIpO0hlPUhlLnJlcGxhY2UobnQsSm4uY3VycmVudCl9Sm4uY3VycmVudD1udWxsLFhuKEhlKX0sRm49ZnVuY3Rpb24oWmUpe3ZhciBIZT1aZS5jbGlwYm9hcmREYXRhLG50PUhlPT1udWxsP3ZvaWQgMDpIZS5nZXREYXRhKCJ0ZXh0Iik7Sm4uY3VycmVudD1udHx8IiJ9LGFyPWZ1bmN0aW9uKFplKXt2YXIgSGU9WmUudGFyZ2V0O2lmKEhlIT09d3QuY3VycmVudCl7dmFyIG50PWRvY3VtZW50LmJvZHkuc3R5bGUubXNUb3VjaEFjdGlvbiE9PXZvaWQgMDtudD9zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7d3QuY3VycmVudC5mb2N1cygpfSk6d3QuY3VycmVudC5mb2N1cygpfX0sbHI9ZnVuY3Rpb24oWmUpe3ZhciBIZT1rdCgpO1plLnRhcmdldCE9PXd0LmN1cnJlbnQmJiFIZSYmIShQbj09PSJjb21ib2JveCImJlFuKSYmWmUucHJldmVudERlZmF1bHQoKSwoUG4hPT0iY29tYm9ib3giJiYoIUxufHwhSGUpfHwhWW4pJiYoWW4mJmlyIT09ITEmJnZuKCIiLCEwLCExKSxXbigpKX0sJG49e2lucHV0UmVmOnd0LG9uSW5wdXRLZXlEb3duOm1uLG9uSW5wdXRNb3VzZURvd246S24sb25JbnB1dENoYW5nZTpocixvbklucHV0UGFzdGU6Rm4sb25JbnB1dENvbXBvc2l0aW9uU3RhcnQ6ZnIsb25JbnB1dENvbXBvc2l0aW9uRW5kOnJyLG9uSW5wdXRCbHVyOkN0fSxzcj1Qbj09PSJtdWx0aXBsZSJ8fFBuPT09InRhZ3MiP2QuY3JlYXRlRWxlbWVudChmZSwoMCxyLlopKHt9LGV0LCRuKSk6ZC5jcmVhdGVFbGVtZW50KFJlLCgwLHIuWikoe30sZXQsJG4pKTtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KCJkaXYiLHtyZWY6WnQsY2xhc3NOYW1lOiIiLmNvbmNhdCh4biwiLXNlbGVjdG9yIiksb25DbGljazphcixvbk1vdXNlRG93bjpscn0sdXImJmQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdCh4biwiLXByZWZpeCIpfSx1ciksc3IpfSxZZT1kLmZvcndhcmRSZWYoQmUpLG90PVllLHFlPWUoNDAyMjgpLF9lPVsicHJlZml4Q2xzIiwiZGlzYWJsZWQiLCJ2aXNpYmxlIiwiY2hpbGRyZW4iLCJwb3B1cEVsZW1lbnQiLCJhbmltYXRpb24iLCJ0cmFuc2l0aW9uTmFtZSIsImRyb3Bkb3duU3R5bGUiLCJkcm9wZG93bkNsYXNzTmFtZSIsImRpcmVjdGlvbiIsInBsYWNlbWVudCIsImJ1aWx0aW5QbGFjZW1lbnRzIiwiZHJvcGRvd25NYXRjaFNlbGVjdFdpZHRoIiwiZHJvcGRvd25SZW5kZXIiLCJkcm9wZG93bkFsaWduIiwiZ2V0UG9wdXBDb250YWluZXIiLCJlbXB0eSIsImdldFRyaWdnZXJET01Ob2RlIiwib25Qb3B1cFZpc2libGVDaGFuZ2UiLCJvblBvcHVwTW91c2VFbnRlciJdLEZlPWZ1bmN0aW9uKGV0KXt2YXIgSnQ9ZXQ9PT0hMD8wOjE7cmV0dXJue2JvdHRvbUxlZnQ6e3BvaW50czpbInRsIiwiYmwiXSxvZmZzZXQ6WzAsNF0sb3ZlcmZsb3c6e2FkanVzdFg6SnQsYWRqdXN0WToxfSxodG1sUmVnaW9uOiJzY3JvbGwifSxib3R0b21SaWdodDp7cG9pbnRzOlsidHIiLCJiciJdLG9mZnNldDpbMCw0XSxvdmVyZmxvdzp7YWRqdXN0WDpKdCxhZGp1c3RZOjF9LGh0bWxSZWdpb246InNjcm9sbCJ9LHRvcExlZnQ6e3BvaW50czpbImJsIiwidGwiXSxvZmZzZXQ6WzAsLTRdLG92ZXJmbG93OnthZGp1c3RYOkp0LGFkanVzdFk6MX0saHRtbFJlZ2lvbjoic2Nyb2xsIn0sdG9wUmlnaHQ6e3BvaW50czpbImJyIiwidHIiXSxvZmZzZXQ6WzAsLTRdLG92ZXJmbG93OnthZGp1c3RYOkp0LGFkanVzdFk6MX0saHRtbFJlZ2lvbjoic2Nyb2xsIn19fSxTZT1mdW5jdGlvbihldCxKdCl7dmFyIHd0PWV0LnByZWZpeENscyxfdD1ldC5kaXNhYmxlZCx4bj1ldC52aXNpYmxlLFluPWV0LmNoaWxkcmVuLFBuPWV0LnBvcHVwRWxlbWVudCxMbj1ldC5hbmltYXRpb24sZXI9ZXQudHJhbnNpdGlvbk5hbWUsUW49ZXQuZHJvcGRvd25TdHlsZSx1cj1ldC5kcm9wZG93bkNsYXNzTmFtZSxpcj1ldC5kaXJlY3Rpb24sdm49aXI9PT12b2lkIDA/Imx0ciI6aXIsY3I9ZXQucGxhY2VtZW50LFduPWV0LmJ1aWx0aW5QbGFjZW1lbnRzLHduPWV0LmRyb3Bkb3duTWF0Y2hTZWxlY3RXaWR0aCxDdD1ldC5kcm9wZG93blJlbmRlcixadD1ldC5kcm9wZG93bkFsaWduLGFuPWV0LmdldFBvcHVwQ29udGFpbmVyLER0PWV0LmVtcHR5LGt0PWV0LmdldFRyaWdnZXJET01Ob2RlLHRuPWV0Lm9uUG9wdXBWaXNpYmxlQ2hhbmdlLG1uPWV0Lm9uUG9wdXBNb3VzZUVudGVyLEtuPSgwLGEuWikoZXQsX2UpLEpuPSIiLmNvbmNhdCh3dCwiLWRyb3Bkb3duIiksWG49UG47Q3QmJihYbj1DdChQbikpO3ZhciBmcj1kLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4gV258fEZlKHduKX0sW1duLHduXSkscnI9TG4/IiIuY29uY2F0KEpuLCItIikuY29uY2F0KExuKTplcixocj10eXBlb2Ygd249PSJudW1iZXIiLEZuPWQudXNlTWVtbyhmdW5jdGlvbigpe3JldHVybiBocj9udWxsOnduPT09ITE/Im1pbldpZHRoIjoid2lkdGgifSxbd24saHJdKSxhcj1RbjtociYmKGFyPSgwLGkuWikoKDAsaS5aKSh7fSxhcikse30se3dpZHRoOndufSkpO3ZhciBscj1kLnVzZVJlZihudWxsKTtyZXR1cm4gZC51c2VJbXBlcmF0aXZlSGFuZGxlKEp0LGZ1bmN0aW9uKCl7cmV0dXJue2dldFBvcHVwRWxlbWVudDpmdW5jdGlvbigpe3ZhciBzcjtyZXR1cm4oc3I9bHIuY3VycmVudCk9PT1udWxsfHxzcj09PXZvaWQgMD92b2lkIDA6c3IucG9wdXBFbGVtZW50fX19KSxkLmNyZWF0ZUVsZW1lbnQocWUuWiwoMCxyLlopKHt9LEtuLHtzaG93QWN0aW9uOnRuP1siY2xpY2siXTpbXSxoaWRlQWN0aW9uOnRuP1siY2xpY2siXTpbXSxwb3B1cFBsYWNlbWVudDpjcnx8KHZuPT09InJ0bCI/ImJvdHRvbVJpZ2h0IjoiYm90dG9tTGVmdCIpLGJ1aWx0aW5QbGFjZW1lbnRzOmZyLHByZWZpeENsczpKbixwb3B1cFRyYW5zaXRpb25OYW1lOnJyLHBvcHVwOmQuY3JlYXRlRWxlbWVudCgiZGl2Iix7b25Nb3VzZUVudGVyOm1ufSxYbikscmVmOmxyLHN0cmV0Y2g6Rm4scG9wdXBBbGlnbjpadCxwb3B1cFZpc2libGU6eG4sZ2V0UG9wdXBDb250YWluZXI6YW4scG9wdXBDbGFzc05hbWU6QygpKHVyLCgwLHQuWikoe30sIiIuY29uY2F0KEpuLCItZW1wdHkiKSxEdCkpLHBvcHVwU3R5bGU6YXIsZ2V0VHJpZ2dlckRPTU5vZGU6a3Qsb25Qb3B1cFZpc2libGVDaGFuZ2U6dG59KSxZbil9LHE9ZC5mb3J3YXJkUmVmKFNlKSxrPXEsTT1lKDg0NTA2KTtmdW5jdGlvbiBBKGZ0LGV0KXt2YXIgSnQ9ZnQua2V5LHd0O3JldHVybiJ2YWx1ZSJpbiBmdCYmKHd0PWZ0LnZhbHVlKSxKdCE9bnVsbD9KdDp3dCE9PXZvaWQgMD93dDoicmMtaW5kZXgta2V5LSIuY29uY2F0KGV0KX1mdW5jdGlvbiBVKGZ0KXtyZXR1cm4gdHlwZW9mIGZ0IT0idW5kZWZpbmVkIiYmIU51bWJlci5pc05hTihmdCl9ZnVuY3Rpb24gTihmdCxldCl7dmFyIEp0PWZ0fHx7fSx3dD1KdC5sYWJlbCxfdD1KdC52YWx1ZSx4bj1KdC5vcHRpb25zLFluPUp0Lmdyb3VwTGFiZWwsUG49d3R8fChldD8iY2hpbGRyZW4iOiJsYWJlbCIpO3JldHVybntsYWJlbDpQbix2YWx1ZTpfdHx8InZhbHVlIixvcHRpb25zOnhufHwib3B0aW9ucyIsZ3JvdXBMYWJlbDpZbnx8UG59fWZ1bmN0aW9uIFEoZnQpe3ZhciBldD1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06e30sSnQ9ZXQuZmllbGROYW1lcyx3dD1ldC5jaGlsZHJlbkFzRGF0YSxfdD1bXSx4bj1OKEp0LCExKSxZbj14bi5sYWJlbCxQbj14bi52YWx1ZSxMbj14bi5vcHRpb25zLGVyPXhuLmdyb3VwTGFiZWw7ZnVuY3Rpb24gUW4odXIsaXIpe0FycmF5LmlzQXJyYXkodXIpJiZ1ci5mb3JFYWNoKGZ1bmN0aW9uKHZuKXtpZihpcnx8IShMbiBpbiB2bikpe3ZhciBjcj12bltQbl07X3QucHVzaCh7a2V5OkEodm4sX3QubGVuZ3RoKSxncm91cE9wdGlvbjppcixkYXRhOnZuLGxhYmVsOnZuW1luXSx2YWx1ZTpjcn0pfWVsc2V7dmFyIFduPXZuW2VyXTtXbj09PXZvaWQgMCYmd3QmJihXbj12bi5sYWJlbCksX3QucHVzaCh7a2V5OkEodm4sX3QubGVuZ3RoKSxncm91cDohMCxkYXRhOnZuLGxhYmVsOldufSksUW4odm5bTG5dLCEwKX19KX1yZXR1cm4gUW4oZnQsITEpLF90fWZ1bmN0aW9uIHVlKGZ0KXt2YXIgZXQ9KDAsaS5aKSh7fSxmdCk7cmV0dXJuInByb3BzImluIGV0fHxPYmplY3QuZGVmaW5lUHJvcGVydHkoZXQsInByb3BzIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuKDAsaC5aUCkoITEsIlJldHVybiB0eXBlIGlzIG9wdGlvbiBpbnN0ZWFkIG9mIE9wdGlvbiBpbnN0YW5jZS4gUGxlYXNlIHJlYWQgdmFsdWUgZGlyZWN0bHkgaW5zdGVhZCBvZiByZWFkaW5nIGZyb20gYHByb3BzYC4iKSxldH19KSxldH12YXIgJD1mdW5jdGlvbihldCxKdCx3dCl7aWYoIUp0fHwhSnQubGVuZ3RoKXJldHVybiBudWxsO3ZhciBfdD0hMSx4bj1mdW5jdGlvbiBQbihMbixlcil7dmFyIFFuPSgwLE0uWikoZXIpLHVyPVFuWzBdLGlyPVFuLnNsaWNlKDEpO2lmKCF1cilyZXR1cm5bTG5dO3ZhciB2bj1Mbi5zcGxpdCh1cik7cmV0dXJuIF90PV90fHx2bi5sZW5ndGg+MSx2bi5yZWR1Y2UoZnVuY3Rpb24oY3IsV24pe3JldHVybltdLmNvbmNhdCgoMCxuLlopKGNyKSwoMCxuLlopKFBuKFduLGlyKSkpfSxbXSkuZmlsdGVyKEJvb2xlYW4pfSxZbj14bihldCxKdCk7cmV0dXJuIF90P3R5cGVvZiB3dCE9InVuZGVmaW5lZCI/WW4uc2xpY2UoMCx3dCk6WW46bnVsbH0sXz1kLmNyZWF0ZUNvbnRleHQobnVsbCkscGU9XztmdW5jdGlvbiByZShmdCl7dmFyIGV0PWZ0LnZpc2libGUsSnQ9ZnQudmFsdWVzO2lmKCFldClyZXR1cm4gbnVsbDt2YXIgd3Q9NTA7cmV0dXJuIGQuY3JlYXRlRWxlbWVudCgic3BhbiIseyJhcmlhLWxpdmUiOiJwb2xpdGUiLHN0eWxlOnt3aWR0aDowLGhlaWdodDowLHBvc2l0aW9uOiJhYnNvbHV0ZSIsb3ZlcmZsb3c6ImhpZGRlbiIsb3BhY2l0eTowfX0sIiIuY29uY2F0KEp0LnNsaWNlKDAsd3QpLm1hcChmdW5jdGlvbihfdCl7dmFyIHhuPV90LmxhYmVsLFluPV90LnZhbHVlO3JldHVyblsibnVtYmVyIiwic3RyaW5nIl0uaW5jbHVkZXMoKDAsdS5aKSh4bikpP3huOllufSkuam9pbigiLCAiKSksSnQubGVuZ3RoPnd0PyIsIC4uLiI6bnVsbCl9dmFyIGFlPVsiaWQiLCJwcmVmaXhDbHMiLCJjbGFzc05hbWUiLCJzaG93U2VhcmNoIiwidGFnUmVuZGVyIiwiZGlyZWN0aW9uIiwib21pdERvbVByb3BzIiwiZGlzcGxheVZhbHVlcyIsIm9uRGlzcGxheVZhbHVlc0NoYW5nZSIsImVtcHR5T3B0aW9ucyIsIm5vdEZvdW5kQ29udGVudCIsIm9uQ2xlYXIiLCJtb2RlIiwiZGlzYWJsZWQiLCJsb2FkaW5nIiwiZ2V0SW5wdXRFbGVtZW50IiwiZ2V0UmF3SW5wdXRFbGVtZW50Iiwib3BlbiIsImRlZmF1bHRPcGVuIiwib25Ecm9wZG93blZpc2libGVDaGFuZ2UiLCJhY3RpdmVWYWx1ZSIsIm9uQWN0aXZlVmFsdWVDaGFuZ2UiLCJhY3RpdmVEZXNjZW5kYW50SWQiLCJzZWFyY2hWYWx1ZSIsImF1dG9DbGVhclNlYXJjaFZhbHVlIiwib25TZWFyY2giLCJvblNlYXJjaFNwbGl0IiwidG9rZW5TZXBhcmF0b3JzIiwiYWxsb3dDbGVhciIsInByZWZpeCIsInN1ZmZpeEljb24iLCJjbGVhckljb24iLCJPcHRpb25MaXN0IiwiYW5pbWF0aW9uIiwidHJhbnNpdGlvbk5hbWUiLCJkcm9wZG93blN0eWxlIiwiZHJvcGRvd25DbGFzc05hbWUiLCJkcm9wZG93bk1hdGNoU2VsZWN0V2lkdGgiLCJkcm9wZG93blJlbmRlciIsImRyb3Bkb3duQWxpZ24iLCJwbGFjZW1lbnQiLCJidWlsdGluUGxhY2VtZW50cyIsImdldFBvcHVwQ29udGFpbmVyIiwic2hvd0FjdGlvbiIsIm9uRm9jdXMiLCJvbkJsdXIiLCJvbktleVVwIiwib25LZXlEb3duIiwib25Nb3VzZURvd24iXSx3ZT1bInZhbHVlIiwib25DaGFuZ2UiLCJyZW1vdmVJY29uIiwicGxhY2Vob2xkZXIiLCJhdXRvRm9jdXMiLCJtYXhUYWdDb3VudCIsIm1heFRhZ1RleHRMZW5ndGgiLCJtYXhUYWdQbGFjZWhvbGRlciIsImNob2ljZVRyYW5zaXRpb25OYW1lIiwib25JbnB1dEtleURvd24iLCJvblBvcHVwU2Nyb2xsIiwidGFiSW5kZXgiXSxMZT1mdW5jdGlvbihldCl7cmV0dXJuIGV0PT09InRhZ3MifHxldD09PSJtdWx0aXBsZSJ9LE1lPWQuZm9yd2FyZFJlZihmdW5jdGlvbihmdCxldCl7dmFyIEp0LHd0PWZ0LmlkLF90PWZ0LnByZWZpeENscyx4bj1mdC5jbGFzc05hbWUsWW49ZnQuc2hvd1NlYXJjaCxQbj1mdC50YWdSZW5kZXIsTG49ZnQuZGlyZWN0aW9uLGVyPWZ0Lm9taXREb21Qcm9wcyxRbj1mdC5kaXNwbGF5VmFsdWVzLHVyPWZ0Lm9uRGlzcGxheVZhbHVlc0NoYW5nZSxpcj1mdC5lbXB0eU9wdGlvbnMsdm49ZnQubm90Rm91bmRDb250ZW50LGNyPXZuPT09dm9pZCAwPyJOb3QgRm91bmQiOnZuLFduPWZ0Lm9uQ2xlYXIsd249ZnQubW9kZSxDdD1mdC5kaXNhYmxlZCxadD1mdC5sb2FkaW5nLGFuPWZ0LmdldElucHV0RWxlbWVudCxEdD1mdC5nZXRSYXdJbnB1dEVsZW1lbnQsa3Q9ZnQub3Blbix0bj1mdC5kZWZhdWx0T3Blbixtbj1mdC5vbkRyb3Bkb3duVmlzaWJsZUNoYW5nZSxLbj1mdC5hY3RpdmVWYWx1ZSxKbj1mdC5vbkFjdGl2ZVZhbHVlQ2hhbmdlLFhuPWZ0LmFjdGl2ZURlc2NlbmRhbnRJZCxmcj1mdC5zZWFyY2hWYWx1ZSxycj1mdC5hdXRvQ2xlYXJTZWFyY2hWYWx1ZSxocj1mdC5vblNlYXJjaCxGbj1mdC5vblNlYXJjaFNwbGl0LGFyPWZ0LnRva2VuU2VwYXJhdG9ycyxscj1mdC5hbGxvd0NsZWFyLCRuPWZ0LnByZWZpeCxzcj1mdC5zdWZmaXhJY29uLEZyPWZ0LmNsZWFySWNvbixaZT1mdC5PcHRpb25MaXN0LEhlPWZ0LmFuaW1hdGlvbixudD1mdC50cmFuc2l0aW9uTmFtZSxydD1mdC5kcm9wZG93blN0eWxlLHZ0PWZ0LmRyb3Bkb3duQ2xhc3NOYW1lLFZ0PWZ0LmRyb3Bkb3duTWF0Y2hTZWxlY3RXaWR0aCxlbj1mdC5kcm9wZG93blJlbmRlcixSbj1mdC5kcm9wZG93bkFsaWduLGpuPWZ0LnBsYWNlbWVudCxibj1mdC5idWlsdGluUGxhY2VtZW50cyxIbj1mdC5nZXRQb3B1cENvbnRhaW5lcixHdD1mdC5zaG93QWN0aW9uLFNuPUd0PT09dm9pZCAwP1tdOkd0LE9uPWZ0Lm9uRm9jdXMsX249ZnQub25CbHVyLFBlPWZ0Lm9uS2V5VXAsZ2U9ZnQub25LZXlEb3duLHZlPWZ0Lm9uTW91c2VEb3duLEllPSgwLGEuWikoZnQsYWUpLHhlPUxlKHduKSxhdD0oWW4hPT12b2lkIDA/WW46eGUpfHx3bj09PSJjb21ib2JveCIsZHQ9KDAsaS5aKSh7fSxJZSk7d2UuZm9yRWFjaChmdW5jdGlvbihMdCl7ZGVsZXRlIGR0W0x0XX0pLGVyPT1udWxsfHxlci5mb3JFYWNoKGZ1bmN0aW9uKEx0KXtkZWxldGUgZHRbTHRdfSk7dmFyIEV0PWQudXNlU3RhdGUoITEpLEh0PSgwLHMuWikoRXQsMiksanQ9SHRbMF0sRnQ9SHRbMV07ZC51c2VFZmZlY3QoZnVuY3Rpb24oKXtGdCgoMCx3LlopKCkpfSxbXSk7dmFyIHBuPWQudXNlUmVmKG51bGwpLGNuPWQudXNlUmVmKG51bGwpLG9yPWQudXNlUmVmKG51bGwpLFRuPWQudXNlUmVmKG51bGwpLHpuPWQudXNlUmVmKG51bGwpLHJuPWQudXNlUmVmKCExKSxLdD1JKCksenQ9KDAscy5aKShLdCwzKSxPdD16dFswXSxsbj16dFsxXSxFbj16dFsyXTtkLnVzZUltcGVyYXRpdmVIYW5kbGUoZXQsZnVuY3Rpb24oKXt2YXIgTHQsWXQ7cmV0dXJue2ZvY3VzOihMdD1Ubi5jdXJyZW50KT09PW51bGx8fEx0PT09dm9pZCAwP3ZvaWQgMDpMdC5mb2N1cyxibHVyOihZdD1Ubi5jdXJyZW50KT09PW51bGx8fFl0PT09dm9pZCAwP3ZvaWQgMDpZdC5ibHVyLHNjcm9sbFRvOmZ1bmN0aW9uKHNuKXt2YXIgcXQ7cmV0dXJuKHF0PXpuLmN1cnJlbnQpPT09bnVsbHx8cXQ9PT12b2lkIDA/dm9pZCAwOnF0LnNjcm9sbFRvKHNuKX0sbmF0aXZlRWxlbWVudDpwbi5jdXJyZW50fHxjbi5jdXJyZW50fX0pO3ZhciBHbj1kLnVzZU1lbW8oZnVuY3Rpb24oKXt2YXIgTHQ7aWYod24hPT0iY29tYm9ib3giKXJldHVybiBmcjt2YXIgWXQ9KEx0PVFuWzBdKT09PW51bGx8fEx0PT09dm9pZCAwP3ZvaWQgMDpMdC52YWx1ZTtyZXR1cm4gdHlwZW9mIFl0PT0ic3RyaW5nInx8dHlwZW9mIFl0PT0ibnVtYmVyIj9TdHJpbmcoWXQpOiIifSxbZnIsd24sUW5dKSxwcj13bj09PSJjb21ib2JveCImJnR5cGVvZiBhbj09ImZ1bmN0aW9uIiYmYW4oKXx8bnVsbCxQcj10eXBlb2YgRHQ9PSJmdW5jdGlvbiImJkR0KCksYnI9KDAsRS54MSkoY24sUHI9PW51bGx8fChKdD1Qci5wcm9wcyk9PT1udWxsfHxKdD09PXZvaWQgMD92b2lkIDA6SnQucmVmKSxNcj1kLnVzZVN0YXRlKCExKSwkcj0oMCxzLlopKE1yLDIpLEdyPSRyWzBdLG9hPSRyWzFdOygwLGcuWikoZnVuY3Rpb24oKXtvYSghMCl9LFtdKTt2YXIgcmE9KDAsYy5aKSghMSx7ZGVmYXVsdFZhbHVlOnRuLHZhbHVlOmt0fSksTWE9KDAscy5aKShyYSwyKSxmYT1NYVswXSxoYT1NYVsxXSxlYT1Hcj9mYTohMSxOYT0hY3ImJmlyOyhDdHx8TmEmJmVhJiZ3bj09PSJjb21ib2JveCIpJiYoZWE9ITEpO3ZhciBiYT1OYT8hMTplYSxBcj1kLnVzZUNhbGxiYWNrKGZ1bmN0aW9uKEx0KXt2YXIgWXQ9THQhPT12b2lkIDA/THQ6IWVhO0N0fHwoaGEoWXQpLGVhIT09WXQmJihtbj09bnVsbHx8bW4oWXQpKSl9LFtDdCxlYSxoYSxtbl0pLFJyPWQudXNlTWVtbyhmdW5jdGlvbigpe3JldHVybihhcnx8W10pLnNvbWUoZnVuY3Rpb24oTHQpe3JldHVybltgCitgLGBccgorYF0uaW5jbHVkZXMoTHQpfSl9LFthcl0pLG1yPWQudXNlQ29udGV4dChwZSl8fHt9LElyPW1yLm1heENvdW50LEhyPW1yLnJhd1ZhbHVlcyxKcj1mdW5jdGlvbihZdCxBbixzbil7aWYoISh4ZSYmVShJcikmJihIcj09bnVsbD92b2lkIDA6SHIuc2l6ZSk+PUlyKSl7dmFyIHF0PSEwLE1uPVl0O0puPT1udWxsfHxKbihudWxsKTt2YXIgQ3I9JChZdCxhcixVKElyKT9Jci1Ici5zaXplOnZvaWQgMCkscW49c24/bnVsbDpDcjtyZXR1cm4gd24hPT0iY29tYm9ib3giJiZxbiYmKE1uPSIiLEZuPT1udWxsfHxGbihxbiksQXIoITEpLHF0PSExKSxociYmR24hPT1NbiYmaHIoTW4se3NvdXJjZTpBbj8idHlwaW5nIjoiZWZmZWN0In0pLHF0fX0sVGE9ZnVuY3Rpb24oWXQpeyFZdHx8IVl0LnRyaW0oKXx8aHIoWXQse3NvdXJjZToic3VibWl0In0pfTtkLnVzZUVmZmVjdChmdW5jdGlvbigpeyFlYSYmIXhlJiZ3biE9PSJjb21ib2JveCImJkpyKCIiLCExLCExKX0sW2VhXSksZC51c2VFZmZlY3QoZnVuY3Rpb24oKXtmYSYmQ3QmJmhhKCExKSxDdCYmIXJuLmN1cnJlbnQmJmxuKCExKX0sW0N0XSk7dmFyIGphPVIoKSwkYT0oMCxzLlopKGphLDIpLHlyPSRhWzBdLFZyPSRhWzFdLFNhPWQudXNlUmVmKCExKSxGYT1mdW5jdGlvbihZdCl7dmFyIEFuPXlyKCksc249WXQua2V5LHF0PXNuPT09IkVudGVyIjtpZihxdCYmKHduIT09ImNvbWJvYm94IiYmWXQucHJldmVudERlZmF1bHQoKSxlYXx8QXIoITApKSxWcighIUduKSxzbj09PSJCYWNrc3BhY2UiJiYhQW4mJnhlJiYhR24mJlFuLmxlbmd0aCl7Zm9yKHZhciBNbj0oMCxuLlopKFFuKSxDcj1udWxsLHFuPU1uLmxlbmd0aC0xO3FuPj0wO3FuLT0xKXt2YXIganI9TW5bcW5dO2lmKCFqci5kaXNhYmxlZCl7TW4uc3BsaWNlKHFuLDEpLENyPWpyO2JyZWFrfX1DciYmdXIoTW4se3R5cGU6InJlbW92ZSIsdmFsdWVzOltDcl19KX1mb3IodmFyIENuPWFyZ3VtZW50cy5sZW5ndGgsTHI9bmV3IEFycmF5KENuPjE/Q24tMTowKSxEcj0xO0RyPENuO0RyKyspTHJbRHItMV09YXJndW1lbnRzW0RyXTtpZihlYSYmKCFxdHx8IVNhLmN1cnJlbnQpKXt2YXIgTnI7cXQmJihTYS5jdXJyZW50PSEwKSwoTnI9em4uY3VycmVudCk9PT1udWxsfHxOcj09PXZvaWQgMHx8TnIub25LZXlEb3duLmFwcGx5KE5yLFtZdF0uY29uY2F0KExyKSl9Z2U9PW51bGx8fGdlLmFwcGx5KHZvaWQgMCxbWXRdLmNvbmNhdChMcikpfSxSYT1mdW5jdGlvbihZdCl7Zm9yKHZhciBBbj1hcmd1bWVudHMubGVuZ3RoLHNuPW5ldyBBcnJheShBbj4xP0FuLTE6MCkscXQ9MTtxdDxBbjtxdCsrKXNuW3F0LTFdPWFyZ3VtZW50c1txdF07aWYoZWEpe3ZhciBNbjsoTW49em4uY3VycmVudCk9PT1udWxsfHxNbj09PXZvaWQgMHx8TW4ub25LZXlVcC5hcHBseShNbixbWXRdLmNvbmNhdChzbikpfVl0LmtleT09PSJFbnRlciImJihTYS5jdXJyZW50PSExKSxQZT09bnVsbHx8UGUuYXBwbHkodm9pZCAwLFtZdF0uY29uY2F0KHNuKSl9LHJvPWZ1bmN0aW9uKFl0KXt2YXIgQW49UW4uZmlsdGVyKGZ1bmN0aW9uKHNuKXtyZXR1cm4gc24hPT1ZdH0pO3VyKEFuLHt0eXBlOiJyZW1vdmUiLHZhbHVlczpbWXRdfSl9LHVvPWZ1bmN0aW9uKCl7U2EuY3VycmVudD0hMX0sbm89ZC51c2VSZWYoITEpLHpvPWZ1bmN0aW9uKCl7bG4oITApLEN0fHwoT24mJiFuby5jdXJyZW50JiZPbi5hcHBseSh2b2lkIDAsYXJndW1lbnRzKSxTbi5pbmNsdWRlcygiZm9jdXMiKSYmQXIoITApKSxuby5jdXJyZW50PSEwfSxnbz1mdW5jdGlvbigpe3JuLmN1cnJlbnQ9ITAsbG4oITEsZnVuY3Rpb24oKXtuby5jdXJyZW50PSExLHJuLmN1cnJlbnQ9ITEsQXIoITEpfSksIUN0JiYoR24mJih3bj09PSJ0YWdzIj9ocihHbix7c291cmNlOiJzdWJtaXQifSk6d249PT0ibXVsdGlwbGUiJiZocigiIix7c291cmNlOiJibHVyIn0pKSxfbiYmX24uYXBwbHkodm9pZCAwLGFyZ3VtZW50cykpfSxmbz1bXTtkLnVzZUVmZmVjdChmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbigpe2ZvLmZvckVhY2goZnVuY3Rpb24oTHQpe3JldHVybiBjbGVhclRpbWVvdXQoTHQpfSksZm8uc3BsaWNlKDAsZm8ubGVuZ3RoKX19LFtdKTt2YXIgVGk9ZnVuY3Rpb24oWXQpe3ZhciBBbixzbj1ZdC50YXJnZXQscXQ9KEFuPW9yLmN1cnJlbnQpPT09bnVsbHx8QW49PT12b2lkIDA/dm9pZCAwOkFuLmdldFBvcHVwRWxlbWVudCgpO2lmKHF0JiZxdC5jb250YWlucyhzbikpe3ZhciBNbj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIENuPWZvLmluZGV4T2YoTW4pO2lmKENuIT09LTEmJmZvLnNwbGljZShDbiwxKSxFbigpLCFqdCYmIXF0LmNvbnRhaW5zKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpKXt2YXIgTHI7KExyPVRuLmN1cnJlbnQpPT09bnVsbHx8THI9PT12b2lkIDB8fExyLmZvY3VzKCl9fSk7Zm8ucHVzaChNbil9Zm9yKHZhciBDcj1hcmd1bWVudHMubGVuZ3RoLHFuPW5ldyBBcnJheShDcj4xP0NyLTE6MCksanI9MTtqcjxDcjtqcisrKXFuW2pyLTFdPWFyZ3VtZW50c1tqcl07dmU9PW51bGx8fHZlLmFwcGx5KHZvaWQgMCxbWXRdLmNvbmNhdChxbikpfSxVbz1kLnVzZVN0YXRlKHt9KSxXbz0oMCxzLlopKFVvLDIpLGdpPVdvWzFdO2Z1bmN0aW9uIGFvKCl7Z2koe30pfXZhciBwaTtQciYmKHBpPWZ1bmN0aW9uKFl0KXtBcihZdCl9KSx6KGZ1bmN0aW9uKCl7dmFyIEx0O3JldHVybltwbi5jdXJyZW50LChMdD1vci5jdXJyZW50KT09PW51bGx8fEx0PT09dm9pZCAwP3ZvaWQgMDpMdC5nZXRQb3B1cEVsZW1lbnQoKV19LGJhLEFyLCEhUHIpO3ZhciBIbz1kLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4oMCxpLlopKCgwLGkuWikoe30sZnQpLHt9LHtub3RGb3VuZENvbnRlbnQ6Y3Isb3BlbjplYSx0cmlnZ2VyT3BlbjpiYSxpZDp3dCxzaG93U2VhcmNoOmF0LG11bHRpcGxlOnhlLHRvZ2dsZU9wZW46QXJ9KX0sW2Z0LGNyLGJhLGVhLHd0LGF0LHhlLEFyXSksUm89ISFzcnx8WnQsRm87Um8mJihGbz1kLmNyZWF0ZUVsZW1lbnQoTyx7Y2xhc3NOYW1lOkMoKSgiIi5jb25jYXQoX3QsIi1hcnJvdyIpLCgwLHQuWikoe30sIiIuY29uY2F0KF90LCItYXJyb3ctbG9hZGluZyIpLFp0KSksY3VzdG9taXplSWNvbjpzcixjdXN0b21pemVJY29uUHJvcHM6e2xvYWRpbmc6WnQsc2VhcmNoVmFsdWU6R24sb3BlbjplYSxmb2N1c2VkOk90LHNob3dTZWFyY2g6YXR9fSkpO3ZhciBsdD1mdW5jdGlvbigpe3ZhciBZdDtXbj09bnVsbHx8V24oKSwoWXQ9VG4uY3VycmVudCk9PT1udWxsfHxZdD09PXZvaWQgMHx8WXQuZm9jdXMoKSx1cihbXSx7dHlwZToiY2xlYXIiLHZhbHVlczpRbn0pLEpyKCIiLCExLCExKX0saWU9VChfdCxsdCxRbixscixGcixDdCxHbix3bikseWU9aWUuYWxsb3dDbGVhcixCPWllLmNsZWFySWNvbixWZT1kLmNyZWF0ZUVsZW1lbnQoWmUse3JlZjp6bn0pLHN0PUMoKShfdCx4biwoMCx0LlopKCgwLHQuWikoKDAsdC5aKSgoMCx0LlopKCgwLHQuWikoKDAsdC5aKSgoMCx0LlopKCgwLHQuWikoKDAsdC5aKSgoMCx0LlopKHt9LCIiLmNvbmNhdChfdCwiLWZvY3VzZWQiKSxPdCksIiIuY29uY2F0KF90LCItbXVsdGlwbGUiKSx4ZSksIiIuY29uY2F0KF90LCItc2luZ2xlIiksIXhlKSwiIi5jb25jYXQoX3QsIi1hbGxvdy1jbGVhciIpLGxyKSwiIi5jb25jYXQoX3QsIi1zaG93LWFycm93IiksUm8pLCIiLmNvbmNhdChfdCwiLWRpc2FibGVkIiksQ3QpLCIiLmNvbmNhdChfdCwiLWxvYWRpbmciKSxadCksIiIuY29uY2F0KF90LCItb3BlbiIpLGVhKSwiIi5jb25jYXQoX3QsIi1jdXN0b21pemUtaW5wdXQiKSxwciksIiIuY29uY2F0KF90LCItc2hvdy1zZWFyY2giKSxhdCkpLFJ0PWQuY3JlYXRlRWxlbWVudChrLHtyZWY6b3IsZGlzYWJsZWQ6Q3QscHJlZml4Q2xzOl90LHZpc2libGU6YmEscG9wdXBFbGVtZW50OlZlLGFuaW1hdGlvbjpIZSx0cmFuc2l0aW9uTmFtZTpudCxkcm9wZG93blN0eWxlOnJ0LGRyb3Bkb3duQ2xhc3NOYW1lOnZ0LGRpcmVjdGlvbjpMbixkcm9wZG93bk1hdGNoU2VsZWN0V2lkdGg6VnQsZHJvcGRvd25SZW5kZXI6ZW4sZHJvcGRvd25BbGlnbjpSbixwbGFjZW1lbnQ6am4sYnVpbHRpblBsYWNlbWVudHM6Ym4sZ2V0UG9wdXBDb250YWluZXI6SG4sZW1wdHk6aXIsZ2V0VHJpZ2dlckRPTU5vZGU6ZnVuY3Rpb24oWXQpe3JldHVybiBjbi5jdXJyZW50fHxZdH0sb25Qb3B1cFZpc2libGVDaGFuZ2U6cGksb25Qb3B1cE1vdXNlRW50ZXI6YW99LFByP2QuY2xvbmVFbGVtZW50KFByLHtyZWY6YnJ9KTpkLmNyZWF0ZUVsZW1lbnQob3QsKDAsci5aKSh7fSxmdCx7ZG9tUmVmOmNuLHByZWZpeENsczpfdCxpbnB1dEVsZW1lbnQ6cHIscmVmOlRuLGlkOnd0LHByZWZpeDokbixzaG93U2VhcmNoOmF0LGF1dG9DbGVhclNlYXJjaFZhbHVlOnJyLG1vZGU6d24sYWN0aXZlRGVzY2VuZGFudElkOlhuLHRhZ1JlbmRlcjpQbix2YWx1ZXM6UW4sb3BlbjplYSxvblRvZ2dsZU9wZW46QXIsYWN0aXZlVmFsdWU6S24sc2VhcmNoVmFsdWU6R24sb25TZWFyY2g6SnIsb25TZWFyY2hTdWJtaXQ6VGEsb25SZW1vdmU6cm8sdG9rZW5XaXRoRW50ZXI6UnIsb25JbnB1dEJsdXI6dW99KSkpLEJ0O3JldHVybiBQcj9CdD1SdDpCdD1kLmNyZWF0ZUVsZW1lbnQoImRpdiIsKDAsci5aKSh7Y2xhc3NOYW1lOnN0fSxkdCx7cmVmOnBuLG9uTW91c2VEb3duOlRpLG9uS2V5RG93bjpGYSxvbktleVVwOlJhLG9uRm9jdXM6em8sb25CbHVyOmdvfSksZC5jcmVhdGVFbGVtZW50KHJlLHt2aXNpYmxlOk90JiYhZWEsdmFsdWVzOlFufSksUnQsRm8seWUmJkIpLGQuY3JlYXRlRWxlbWVudChTLlByb3ZpZGVyLHt2YWx1ZTpIb30sQnQpfSksYmU9TWUsJGU9ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH07JGUuaXNTZWxlY3RPcHRHcm91cD0hMDt2YXIga2U9JGUsQWU9ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH07QWUuaXNTZWxlY3RPcHRpb249ITA7dmFyIHR0PUFlLG10PWUoNTY5ODIpLHV0PWUoOTg0MjMpLERlPWUoODc3MTgpO2Z1bmN0aW9uIE5lKCl7cmV0dXJuLyhtYWNcc29zfG1hY2ludG9zaCkvaS50ZXN0KG5hdmlnYXRvci5hcHBWZXJzaW9uKX12YXIgWGU9WyJkaXNhYmxlZCIsInRpdGxlIiwiY2hpbGRyZW4iLCJzdHlsZSIsImNsYXNzTmFtZSJdO2Z1bmN0aW9uIEplKGZ0KXtyZXR1cm4gdHlwZW9mIGZ0PT0ic3RyaW5nInx8dHlwZW9mIGZ0PT0ibnVtYmVyIn12YXIgZ3Q9ZnVuY3Rpb24oZXQsSnQpe3ZhciB3dD1MKCksX3Q9d3QucHJlZml4Q2xzLHhuPXd0LmlkLFluPXd0Lm9wZW4sUG49d3QubXVsdGlwbGUsTG49d3QubW9kZSxlcj13dC5zZWFyY2hWYWx1ZSxRbj13dC50b2dnbGVPcGVuLHVyPXd0Lm5vdEZvdW5kQ29udGVudCxpcj13dC5vblBvcHVwU2Nyb2xsLHZuPWQudXNlQ29udGV4dChwZSksY3I9dm4ubWF4Q291bnQsV249dm4uZmxhdHRlbk9wdGlvbnMsd249dm4ub25BY3RpdmVWYWx1ZSxDdD12bi5kZWZhdWx0QWN0aXZlRmlyc3RPcHRpb24sWnQ9dm4ub25TZWxlY3QsYW49dm4ubWVudUl0ZW1TZWxlY3RlZEljb24sRHQ9dm4ucmF3VmFsdWVzLGt0PXZuLmZpZWxkTmFtZXMsdG49dm4udmlydHVhbCxtbj12bi5kaXJlY3Rpb24sS249dm4ubGlzdEhlaWdodCxKbj12bi5saXN0SXRlbUhlaWdodCxYbj12bi5vcHRpb25SZW5kZXIsZnI9IiIuY29uY2F0KF90LCItaXRlbSIpLHJyPSgwLG10LlopKGZ1bmN0aW9uKCl7cmV0dXJuIFdufSxbWW4sV25dLGZ1bmN0aW9uKEd0LFNuKXtyZXR1cm4gU25bMF0mJkd0WzFdIT09U25bMV19KSxocj1kLnVzZVJlZihudWxsKSxGbj1kLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4gUG4mJlUoY3IpJiYoRHQ9PW51bGw/dm9pZCAwOkR0LnNpemUpPj1jcn0sW1BuLGNyLER0PT1udWxsP3ZvaWQgMDpEdC5zaXplXSksYXI9ZnVuY3Rpb24oU24pe1NuLnByZXZlbnREZWZhdWx0KCl9LGxyPWZ1bmN0aW9uKFNuKXt2YXIgT247KE9uPWhyLmN1cnJlbnQpPT09bnVsbHx8T249PT12b2lkIDB8fE9uLnNjcm9sbFRvKHR5cGVvZiBTbj09Im51bWJlciI/e2luZGV4OlNufTpTbil9LCRuPWQudXNlQ2FsbGJhY2soZnVuY3Rpb24oR3Qpe3JldHVybiBMbj09PSJjb21ib2JveCI/ITE6RHQuaGFzKEd0KX0sW0xuLCgwLG4uWikoRHQpLnRvU3RyaW5nKCksRHQuc2l6ZV0pLHNyPWZ1bmN0aW9uKFNuKXtmb3IodmFyIE9uPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXToxLF9uPXJyLmxlbmd0aCxQZT0wO1BlPF9uO1BlKz0xKXt2YXIgZ2U9KFNuK1BlKk9uK19uKSVfbix2ZT1ycltnZV18fHt9LEllPXZlLmdyb3VwLHhlPXZlLmRhdGE7aWYoIUllJiYhKHhlIT1udWxsJiZ4ZS5kaXNhYmxlZCkmJigkbih4ZS52YWx1ZSl8fCFGbikpcmV0dXJuIGdlfXJldHVybi0xfSxGcj1kLnVzZVN0YXRlKGZ1bmN0aW9uKCl7cmV0dXJuIHNyKDApfSksWmU9KDAscy5aKShGciwyKSxIZT1aZVswXSxudD1aZVsxXSxydD1mdW5jdGlvbihTbil7dmFyIE9uPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTohMTtudChTbik7dmFyIF9uPXtzb3VyY2U6T24/ImtleWJvYXJkIjoibW91c2UifSxQZT1ycltTbl07aWYoIVBlKXt3bihudWxsLC0xLF9uKTtyZXR1cm59d24oUGUudmFsdWUsU24sX24pfTsoMCxkLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtydChDdCE9PSExP3NyKDApOi0xKX0sW3JyLmxlbmd0aCxlcl0pO3ZhciB2dD1kLnVzZUNhbGxiYWNrKGZ1bmN0aW9uKEd0KXtyZXR1cm4gTG49PT0iY29tYm9ib3giP1N0cmluZyhHdCkudG9Mb3dlckNhc2UoKT09PWVyLnRvTG93ZXJDYXNlKCk6RHQuaGFzKEd0KX0sW0xuLGVyLCgwLG4uWikoRHQpLnRvU3RyaW5nKCksRHQuc2l6ZV0pOygwLGQudXNlRWZmZWN0KShmdW5jdGlvbigpe3ZhciBHdD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aWYoIVBuJiZZbiYmRHQuc2l6ZT09PTEpe3ZhciBPbj1BcnJheS5mcm9tKER0KVswXSxfbj1yci5maW5kSW5kZXgoZnVuY3Rpb24oUGUpe3ZhciBnZT1QZS5kYXRhO3JldHVybiBnZS52YWx1ZT09PU9ufSk7X24hPT0tMSYmKHJ0KF9uKSxscihfbikpfX0pO2lmKFluKXt2YXIgU247KFNuPWhyLmN1cnJlbnQpPT09bnVsbHx8U249PT12b2lkIDB8fFNuLnNjcm9sbFRvKHZvaWQgMCl9cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGNsZWFyVGltZW91dChHdCl9fSxbWW4sZXJdKTt2YXIgVnQ9ZnVuY3Rpb24oU24pe1NuIT09dm9pZCAwJiZadChTbix7c2VsZWN0ZWQ6IUR0LmhhcyhTbil9KSxQbnx8UW4oITEpfTtpZihkLnVzZUltcGVyYXRpdmVIYW5kbGUoSnQsZnVuY3Rpb24oKXtyZXR1cm57b25LZXlEb3duOmZ1bmN0aW9uKFNuKXt2YXIgT249U24ud2hpY2gsX249U24uY3RybEtleTtzd2l0Y2goT24pe2Nhc2UgRy5aLk46Y2FzZSBHLlouUDpjYXNlIEcuWi5VUDpjYXNlIEcuWi5ET1dOOnt2YXIgUGU9MDtpZihPbj09PUcuWi5VUD9QZT0tMTpPbj09PUcuWi5ET1dOP1BlPTE6TmUoKSYmX24mJihPbj09PUcuWi5OP1BlPTE6T249PT1HLlouUCYmKFBlPS0xKSksUGUhPT0wKXt2YXIgZ2U9c3IoSGUrUGUsUGUpO2xyKGdlKSxydChnZSwhMCl9YnJlYWt9Y2FzZSBHLlouVEFCOmNhc2UgRy5aLkVOVEVSOnt2YXIgdmUsSWU9cnJbSGVdO0llJiYhKEllIT1udWxsJiYodmU9SWUuZGF0YSkhPT1udWxsJiZ2ZSE9PXZvaWQgMCYmdmUuZGlzYWJsZWQpJiYhRm4/VnQoSWUudmFsdWUpOlZ0KHZvaWQgMCksWW4mJlNuLnByZXZlbnREZWZhdWx0KCk7YnJlYWt9Y2FzZSBHLlouRVNDOlFuKCExKSxZbiYmU24uc3RvcFByb3BhZ2F0aW9uKCl9fSxvbktleVVwOmZ1bmN0aW9uKCl7fSxzY3JvbGxUbzpmdW5jdGlvbihTbil7bHIoU24pfX19KSxyci5sZW5ndGg9PT0wKXJldHVybiBkLmNyZWF0ZUVsZW1lbnQoImRpdiIse3JvbGU6Imxpc3Rib3giLGlkOiIiLmNvbmNhdCh4biwiX2xpc3QiKSxjbGFzc05hbWU6IiIuY29uY2F0KGZyLCItZW1wdHkiKSxvbk1vdXNlRG93bjphcn0sdXIpO3ZhciBlbj1PYmplY3Qua2V5cyhrdCkubWFwKGZ1bmN0aW9uKEd0KXtyZXR1cm4ga3RbR3RdfSksUm49ZnVuY3Rpb24oU24pe3JldHVybiBTbi5sYWJlbH07ZnVuY3Rpb24gam4oR3QsU24pe3ZhciBPbj1HdC5ncm91cDtyZXR1cm57cm9sZTpPbj8icHJlc2VudGF0aW9uIjoib3B0aW9uIixpZDoiIi5jb25jYXQoeG4sIl9saXN0XyIpLmNvbmNhdChTbil9fXZhciBibj1mdW5jdGlvbihTbil7dmFyIE9uPXJyW1NuXTtpZighT24pcmV0dXJuIG51bGw7dmFyIF9uPU9uLmRhdGF8fHt9LFBlPV9uLnZhbHVlLGdlPU9uLmdyb3VwLHZlPSgwLGVlLlopKF9uLCEwKSxJZT1SbihPbik7cmV0dXJuIE9uP2QuY3JlYXRlRWxlbWVudCgiZGl2IiwoMCxyLlopKHsiYXJpYS1sYWJlbCI6dHlwZW9mIEllPT0ic3RyaW5nIiYmIWdlP0llOm51bGx9LHZlLHtrZXk6U259LGpuKE9uLFNuKSx7ImFyaWEtc2VsZWN0ZWQiOnZ0KFBlKX0pLFBlKTpudWxsfSxIbj17cm9sZToibGlzdGJveCIsaWQ6IiIuY29uY2F0KHhuLCJfbGlzdCIpfTtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGQuRnJhZ21lbnQsbnVsbCx0biYmZC5jcmVhdGVFbGVtZW50KCJkaXYiLCgwLHIuWikoe30sSG4se3N0eWxlOntoZWlnaHQ6MCx3aWR0aDowLG92ZXJmbG93OiJoaWRkZW4ifX0pLGJuKEhlLTEpLGJuKEhlKSxibihIZSsxKSksZC5jcmVhdGVFbGVtZW50KERlLlose2l0ZW1LZXk6ImtleSIscmVmOmhyLGRhdGE6cnIsaGVpZ2h0OktuLGl0ZW1IZWlnaHQ6Sm4sZnVsbEhlaWdodDohMSxvbk1vdXNlRG93bjphcixvblNjcm9sbDppcix2aXJ0dWFsOnRuLGRpcmVjdGlvbjptbixpbm5lclByb3BzOnRuP251bGw6SG59LGZ1bmN0aW9uKEd0LFNuKXt2YXIgT249R3QuZ3JvdXAsX249R3QuZ3JvdXBPcHRpb24sUGU9R3QuZGF0YSxnZT1HdC5sYWJlbCx2ZT1HdC52YWx1ZSxJZT1QZS5rZXk7aWYoT24pe3ZhciB4ZSxhdD0oeGU9UGUudGl0bGUpIT09bnVsbCYmeGUhPT12b2lkIDA/eGU6SmUoZ2UpP2dlLnRvU3RyaW5nKCk6dm9pZCAwO3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpDKCkoZnIsIiIuY29uY2F0KGZyLCItZ3JvdXAiKSxQZS5jbGFzc05hbWUpLHRpdGxlOmF0fSxnZSE9PXZvaWQgMD9nZTpJZSl9dmFyIGR0PVBlLmRpc2FibGVkLEV0PVBlLnRpdGxlLEh0PVBlLmNoaWxkcmVuLGp0PVBlLnN0eWxlLEZ0PVBlLmNsYXNzTmFtZSxwbj0oMCxhLlopKFBlLFhlKSxjbj0oMCx1dC5aKShwbixlbiksb3I9JG4odmUpLFRuPWR0fHwhb3ImJkZuLHpuPSIiLmNvbmNhdChmciwiLW9wdGlvbiIpLHJuPUMoKShmcix6bixGdCwoMCx0LlopKCgwLHQuWikoKDAsdC5aKSgoMCx0LlopKHt9LCIiLmNvbmNhdCh6biwiLWdyb3VwZWQiKSxfbiksIiIuY29uY2F0KHpuLCItYWN0aXZlIiksSGU9PT1TbiYmIVRuKSwiIi5jb25jYXQoem4sIi1kaXNhYmxlZCIpLFRuKSwiIi5jb25jYXQoem4sIi1zZWxlY3RlZCIpLG9yKSksS3Q9Um4oR3QpLHp0PSFhbnx8dHlwZW9mIGFuPT0iZnVuY3Rpb24ifHxvcixPdD10eXBlb2YgS3Q9PSJudW1iZXIiP0t0Okt0fHx2ZSxsbj1KZShPdCk/T3QudG9TdHJpbmcoKTp2b2lkIDA7cmV0dXJuIEV0IT09dm9pZCAwJiYobG49RXQpLGQuY3JlYXRlRWxlbWVudCgiZGl2IiwoMCxyLlopKHt9LCgwLGVlLlopKGNuKSx0bj97fTpqbihHdCxTbikseyJhcmlhLXNlbGVjdGVkIjp2dCh2ZSksY2xhc3NOYW1lOnJuLHRpdGxlOmxuLG9uTW91c2VNb3ZlOmZ1bmN0aW9uKCl7SGU9PT1Tbnx8VG58fHJ0KFNuKX0sb25DbGljazpmdW5jdGlvbigpe1RufHxWdCh2ZSl9LHN0eWxlOmp0fSksZC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KHpuLCItY29udGVudCIpfSx0eXBlb2YgWG49PSJmdW5jdGlvbiI/WG4oR3Qse2luZGV4OlNufSk6T3QpLGQuaXNWYWxpZEVsZW1lbnQoYW4pfHxvcix6dCYmZC5jcmVhdGVFbGVtZW50KE8se2NsYXNzTmFtZToiIi5jb25jYXQoZnIsIi1vcHRpb24tc3RhdGUiKSxjdXN0b21pemVJY29uOmFuLGN1c3RvbWl6ZUljb25Qcm9wczp7dmFsdWU6dmUsZGlzYWJsZWQ6VG4saXNTZWxlY3RlZDpvcn19LG9yPyJcdTI3MTMiOm51bGwpKX0pKX0sZGU9ZC5mb3J3YXJkUmVmKGd0KSxXZT1kZSxTdD1mdW5jdGlvbihmdCxldCl7dmFyIEp0PWQudXNlUmVmKHt2YWx1ZXM6bmV3IE1hcCxvcHRpb25zOm5ldyBNYXB9KSx3dD1kLnVzZU1lbW8oZnVuY3Rpb24oKXt2YXIgeG49SnQuY3VycmVudCxZbj14bi52YWx1ZXMsUG49eG4ub3B0aW9ucyxMbj1mdC5tYXAoZnVuY3Rpb24odXIpe2lmKHVyLmxhYmVsPT09dm9pZCAwKXt2YXIgaXI7cmV0dXJuKDAsaS5aKSgoMCxpLlopKHt9LHVyKSx7fSx7bGFiZWw6KGlyPVluLmdldCh1ci52YWx1ZSkpPT09bnVsbHx8aXI9PT12b2lkIDA/dm9pZCAwOmlyLmxhYmVsfSl9cmV0dXJuIHVyfSksZXI9bmV3IE1hcCxRbj1uZXcgTWFwO3JldHVybiBMbi5mb3JFYWNoKGZ1bmN0aW9uKHVyKXtlci5zZXQodXIudmFsdWUsdXIpLFFuLnNldCh1ci52YWx1ZSxldC5nZXQodXIudmFsdWUpfHxQbi5nZXQodXIudmFsdWUpKX0pLEp0LmN1cnJlbnQudmFsdWVzPWVyLEp0LmN1cnJlbnQub3B0aW9ucz1RbixMbn0sW2Z0LGV0XSksX3Q9ZC51c2VDYWxsYmFjayhmdW5jdGlvbih4bil7cmV0dXJuIGV0LmdldCh4bil8fEp0LmN1cnJlbnQub3B0aW9ucy5nZXQoeG4pfSxbZXRdKTtyZXR1cm5bd3QsX3RdfTtmdW5jdGlvbiBjdChmdCxldCl7cmV0dXJuIGNlKGZ0KS5qb2luKCIiKS50b1VwcGVyQ2FzZSgpLmluY2x1ZGVzKGV0KX12YXIgT2U9ZnVuY3Rpb24oZnQsZXQsSnQsd3QsX3Qpe3JldHVybiBkLnVzZU1lbW8oZnVuY3Rpb24oKXtpZighSnR8fHd0PT09ITEpcmV0dXJuIGZ0O3ZhciB4bj1ldC5vcHRpb25zLFluPWV0LmxhYmVsLFBuPWV0LnZhbHVlLExuPVtdLGVyPXR5cGVvZiB3dD09ImZ1bmN0aW9uIixRbj1KdC50b1VwcGVyQ2FzZSgpLHVyPWVyP3d0OmZ1bmN0aW9uKHZuLGNyKXtyZXR1cm4gX3Q/Y3QoY3JbX3RdLFFuKTpjclt4bl0/Y3QoY3JbWW4hPT0iY2hpbGRyZW4iP1luOiJsYWJlbCJdLFFuKTpjdChjcltQbl0sUW4pfSxpcj1lcj9mdW5jdGlvbih2bil7cmV0dXJuIHVlKHZuKX06ZnVuY3Rpb24odm4pe3JldHVybiB2bn07cmV0dXJuIGZ0LmZvckVhY2goZnVuY3Rpb24odm4pe2lmKHZuW3huXSl7dmFyIGNyPXVyKEp0LGlyKHZuKSk7aWYoY3IpTG4ucHVzaCh2bik7ZWxzZXt2YXIgV249dm5beG5dLmZpbHRlcihmdW5jdGlvbih3bil7cmV0dXJuIHVyKEp0LGlyKHduKSl9KTtXbi5sZW5ndGgmJkxuLnB1c2goKDAsaS5aKSgoMCxpLlopKHt9LHZuKSx7fSwoMCx0LlopKHt9LHhuLFduKSkpfXJldHVybn11cihKdCxpcih2bikpJiZMbi5wdXNoKHZuKX0pLExufSxbZnQsd3QsX3QsSnQsZXRdKX0sR2U9ZSg4ODcwOCksaHQ9ZSg1MDM0NCksemU9WyJjaGlsZHJlbiIsInZhbHVlIl0sUWU9WyJjaGlsZHJlbiJdO2Z1bmN0aW9uIHB0KGZ0KXt2YXIgZXQ9ZnQsSnQ9ZXQua2V5LHd0PWV0LnByb3BzLF90PXd0LmNoaWxkcmVuLHhuPXd0LnZhbHVlLFluPSgwLGEuWikod3QsemUpO3JldHVybigwLGkuWikoe2tleTpKdCx2YWx1ZTp4biE9PXZvaWQgMD94bjpKdCxjaGlsZHJlbjpfdH0sWW4pfWZ1bmN0aW9uIGJ0KGZ0KXt2YXIgZXQ9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOiExO3JldHVybigwLGh0LlopKGZ0KS5tYXAoZnVuY3Rpb24oSnQsd3Qpe2lmKCFkLmlzVmFsaWRFbGVtZW50KEp0KXx8IUp0LnR5cGUpcmV0dXJuIG51bGw7dmFyIF90PUp0LHhuPV90LnR5cGUuaXNTZWxlY3RPcHRHcm91cCxZbj1fdC5rZXksUG49X3QucHJvcHMsTG49UG4uY2hpbGRyZW4sZXI9KDAsYS5aKShQbixRZSk7cmV0dXJuIGV0fHwheG4/cHQoSnQpOigwLGkuWikoKDAsaS5aKSh7a2V5OiJfX1JDX1NFTEVDVF9HUlBfXyIuY29uY2F0KFluPT09bnVsbD93dDpZbiwiX18iKSxsYWJlbDpZbn0sZXIpLHt9LHtvcHRpb25zOmJ0KExuKX0pfSkuZmlsdGVyKGZ1bmN0aW9uKEp0KXtyZXR1cm4gSnR9KX12YXIgSXQ9ZnVuY3Rpb24oZXQsSnQsd3QsX3QseG4pe3JldHVybiBkLnVzZU1lbW8oZnVuY3Rpb24oKXt2YXIgWW49ZXQsUG49IWV0O1BuJiYoWW49YnQoSnQpKTt2YXIgTG49bmV3IE1hcCxlcj1uZXcgTWFwLFFuPWZ1bmN0aW9uKHZuLGNyLFduKXtXbiYmdHlwZW9mIFduPT0ic3RyaW5nIiYmdm4uc2V0KGNyW1duXSxjcil9LHVyPWZ1bmN0aW9uIGlyKHZuKXtmb3IodmFyIGNyPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTohMSxXbj0wO1duPHZuLmxlbmd0aDtXbis9MSl7dmFyIHduPXZuW1duXTshd25bd3Qub3B0aW9uc118fGNyPyhMbi5zZXQod25bd3QudmFsdWVdLHduKSxRbihlcix3bix3dC5sYWJlbCksUW4oZXIsd24sX3QpLFFuKGVyLHduLHhuKSk6aXIod25bd3Qub3B0aW9uc10sITApfX07cmV0dXJuIHVyKFluKSx7b3B0aW9uczpZbix2YWx1ZU9wdGlvbnM6TG4sbGFiZWxPcHRpb25zOmVyfX0sW2V0LEp0LHd0LF90LHhuXSl9LFR0PUl0O2Z1bmN0aW9uIFh0KGZ0KXt2YXIgZXQ9ZC51c2VSZWYoKTtldC5jdXJyZW50PWZ0O3ZhciBKdD1kLnVzZUNhbGxiYWNrKGZ1bmN0aW9uKCl7cmV0dXJuIGV0LmN1cnJlbnQuYXBwbHkoZXQsYXJndW1lbnRzKX0sW10pO3JldHVybiBKdH1mdW5jdGlvbiBmbihmdCl7dmFyIGV0PWZ0Lm1vZGUsSnQ9ZnQub3B0aW9ucyx3dD1mdC5jaGlsZHJlbixfdD1mdC5iYWNrZmlsbCx4bj1mdC5hbGxvd0NsZWFyLFluPWZ0LnBsYWNlaG9sZGVyLFBuPWZ0LmdldElucHV0RWxlbWVudCxMbj1mdC5zaG93U2VhcmNoLGVyPWZ0Lm9uU2VhcmNoLFFuPWZ0LmRlZmF1bHRPcGVuLHVyPWZ0LmF1dG9Gb2N1cyxpcj1mdC5sYWJlbEluVmFsdWUsdm49ZnQudmFsdWUsY3I9ZnQuaW5wdXRWYWx1ZSxXbj1mdC5vcHRpb25MYWJlbFByb3Asd249aXNNdWx0aXBsZShldCksQ3Q9TG4hPT12b2lkIDA/TG46d258fGV0PT09ImNvbWJvYm94IixadD1KdHx8Y29udmVydENoaWxkcmVuVG9EYXRhKHd0KTtpZih3YXJuaW5nKGV0IT09InRhZ3MifHxadC5ldmVyeShmdW5jdGlvbih0bil7cmV0dXJuIXRuLmRpc2FibGVkfSksIlBsZWFzZSBhdm9pZCBzZXR0aW5nIG9wdGlvbiB0byBkaXNhYmxlZCBpbiB0YWdzIG1vZGUgc2luY2UgdXNlciBjYW4gYWx3YXlzIHR5cGUgdGV4dCBhcyB0YWcuIiksZXQ9PT0idGFncyJ8fGV0PT09ImNvbWJvYm94Iil7dmFyIGFuPVp0LnNvbWUoZnVuY3Rpb24odG4pe3JldHVybiB0bi5vcHRpb25zP3RuLm9wdGlvbnMuc29tZShmdW5jdGlvbihtbil7cmV0dXJuIHR5cGVvZigidmFsdWUiaW4gbW4/bW4udmFsdWU6bW4ua2V5KT09Im51bWJlciJ9KTp0eXBlb2YoInZhbHVlImluIHRuP3RuLnZhbHVlOnRuLmtleSk9PSJudW1iZXIifSk7d2FybmluZyghYW4sImB2YWx1ZWAgb2YgT3B0aW9uIHNob3VsZCBub3QgdXNlIG51bWJlciB0eXBlIHdoZW4gYG1vZGVgIGlzIGB0YWdzYCBvciBgY29tYm9ib3hgLiIpfWlmKHdhcm5pbmcoZXQhPT0iY29tYm9ib3gifHwhV24sImBjb21ib2JveGAgbW9kZSBub3Qgc3VwcG9ydCBgb3B0aW9uTGFiZWxQcm9wYC4gUGxlYXNlIHNldCBgdmFsdWVgIG9uIE9wdGlvbiBkaXJlY3RseS4iKSx3YXJuaW5nKGV0PT09ImNvbWJvYm94Inx8IV90LCJgYmFja2ZpbGxgIG9ubHkgd29ya3Mgd2l0aCBgY29tYm9ib3hgIG1vZGUuIiksd2FybmluZyhldD09PSJjb21ib2JveCJ8fCFQbiwiYGdldElucHV0RWxlbWVudGAgb25seSB3b3JrIHdpdGggYGNvbWJvYm94YCBtb2RlLiIpLG5vdGVPbmNlKGV0IT09ImNvbWJvYm94Inx8IVBufHwheG58fCFZbiwiQ3VzdG9taXplIGBnZXRJbnB1dEVsZW1lbnRgIHNob3VsZCBjdXN0b21pemUgY2xlYXIgYW5kIHBsYWNlaG9sZGVyIGxvZ2ljIGluc3RlYWQgb2YgY29uZmlndXJpbmcgYGFsbG93Q2xlYXJgIGFuZCBgcGxhY2Vob2xkZXJgLiIpLGVyJiYhQ3QmJmV0IT09ImNvbWJvYm94IiYmZXQhPT0idGFncyImJndhcm5pbmcoITEsImBvblNlYXJjaGAgc2hvdWxkIHdvcmsgd2l0aCBgc2hvd1NlYXJjaGAgaW5zdGVhZCBvZiB1c2UgYWxvbmUuIiksbm90ZU9uY2UoIVFufHx1ciwiYGRlZmF1bHRPcGVuYCBtYWtlcyBTZWxlY3Qgb3BlbiB3aXRob3V0IGZvY3VzIHdoaWNoIG1lYW5zIGl0IHdpbGwgbm90IGNsb3NlIGJ5IGNsaWNrIG91dHNpZGUuIFlvdSBjYW4gc2V0IGBhdXRvRm9jdXNgIGlmIG5lZWRlZC4iKSx2biE9bnVsbCl7dmFyIER0PXRvQXJyYXkodm4pO3dhcm5pbmcoIWlyfHxEdC5ldmVyeShmdW5jdGlvbih0bil7cmV0dXJuIF90eXBlb2YodG4pPT09Im9iamVjdCImJigia2V5ImluIHRufHwidmFsdWUiaW4gdG4pfSksImB2YWx1ZWAgc2hvdWxkIGluIHNoYXBlIG9mIGB7IHZhbHVlOiBzdHJpbmcgfCBudW1iZXIsIGxhYmVsPzogUmVhY3ROb2RlIH1gIHdoZW4geW91IHNldCBgbGFiZWxJblZhbHVlYCB0byBgdHJ1ZWAiKSx3YXJuaW5nKCF3bnx8QXJyYXkuaXNBcnJheSh2biksImB2YWx1ZWAgc2hvdWxkIGJlIGFycmF5IHdoZW4gYG1vZGVgIGlzIGBtdWx0aXBsZWAgb3IgYHRhZ3NgIil9aWYod3Qpe3ZhciBrdD1udWxsO3RvTm9kZUFycmF5KHd0KS5zb21lKGZ1bmN0aW9uKHRuKXtpZighUmVhY3QuaXNWYWxpZEVsZW1lbnQodG4pfHwhdG4udHlwZSlyZXR1cm4hMTt2YXIgbW49dG4sS249bW4udHlwZTtpZihLbi5pc1NlbGVjdE9wdGlvbilyZXR1cm4hMTtpZihLbi5pc1NlbGVjdE9wdEdyb3VwKXt2YXIgSm49dG9Ob2RlQXJyYXkodG4ucHJvcHMuY2hpbGRyZW4pLmV2ZXJ5KGZ1bmN0aW9uKFhuKXtyZXR1cm4hUmVhY3QuaXNWYWxpZEVsZW1lbnQoWG4pfHwhdG4udHlwZXx8WG4udHlwZS5pc1NlbGVjdE9wdGlvbj8hMDooa3Q9WG4udHlwZSwhMSl9KTtyZXR1cm4hSm59cmV0dXJuIGt0PUtuLCEwfSksa3QmJndhcm5pbmcoITEsImBjaGlsZHJlbmAgc2hvdWxkIGJlIGBTZWxlY3QuT3B0aW9uYCBvciBgU2VsZWN0Lk9wdEdyb3VwYCBpbnN0ZWFkIG9mIGAiLmNvbmNhdChrdC5kaXNwbGF5TmFtZXx8a3QubmFtZXx8a3QsImAuIikpLHdhcm5pbmcoY3I9PT12b2lkIDAsImBpbnB1dFZhbHVlYCBpcyBkZXByZWNhdGVkLCBwbGVhc2UgdXNlIGBzZWFyY2hWYWx1ZWAgaW5zdGVhZC4iKX19ZnVuY3Rpb24gbm4oZnQsZXQpe2lmKGZ0KXt2YXIgSnQ9ZnVuY3Rpb24gd3QoX3Qpe2Zvcih2YXIgeG49YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOiExLFluPTA7WW48X3QubGVuZ3RoO1luKyspe3ZhciBQbj1fdFtZbl07aWYoUG5bZXQ9PW51bGw/dm9pZCAwOmV0LnZhbHVlXT09PW51bGwpcmV0dXJuIHdhcm5pbmcoITEsImB2YWx1ZWAgaW4gU2VsZWN0IG9wdGlvbnMgc2hvdWxkIG5vdCBiZSBgbnVsbGAuIiksITA7aWYoIXhuJiZBcnJheS5pc0FycmF5KFBuW2V0PT1udWxsP3ZvaWQgMDpldC5vcHRpb25zXSkmJnd0KFBuW2V0PT1udWxsP3ZvaWQgMDpldC5vcHRpb25zXSwhMCkpYnJlYWt9fTtKdChmdCl9fXZhciBvbj1udWxsLE50PVsiaWQiLCJtb2RlIiwicHJlZml4Q2xzIiwiYmFja2ZpbGwiLCJmaWVsZE5hbWVzIiwiaW5wdXRWYWx1ZSIsInNlYXJjaFZhbHVlIiwib25TZWFyY2giLCJhdXRvQ2xlYXJTZWFyY2hWYWx1ZSIsIm9uU2VsZWN0Iiwib25EZXNlbGVjdCIsImRyb3Bkb3duTWF0Y2hTZWxlY3RXaWR0aCIsImZpbHRlck9wdGlvbiIsImZpbHRlclNvcnQiLCJvcHRpb25GaWx0ZXJQcm9wIiwib3B0aW9uTGFiZWxQcm9wIiwib3B0aW9ucyIsIm9wdGlvblJlbmRlciIsImNoaWxkcmVuIiwiZGVmYXVsdEFjdGl2ZUZpcnN0T3B0aW9uIiwibWVudUl0ZW1TZWxlY3RlZEljb24iLCJ2aXJ0dWFsIiwiZGlyZWN0aW9uIiwibGlzdEhlaWdodCIsImxpc3RJdGVtSGVpZ2h0IiwibGFiZWxSZW5kZXIiLCJ2YWx1ZSIsImRlZmF1bHRWYWx1ZSIsImxhYmVsSW5WYWx1ZSIsIm9uQ2hhbmdlIiwibWF4Q291bnQiXSxabj1bImlucHV0VmFsdWUiXTtmdW5jdGlvbiB5bihmdCl7cmV0dXJuIWZ0fHwoMCx1LlopKGZ0KSE9PSJvYmplY3QifXZhciBnbj1kLmZvcndhcmRSZWYoZnVuY3Rpb24oZnQsZXQpe3ZhciBKdD1mdC5pZCx3dD1mdC5tb2RlLF90PWZ0LnByZWZpeENscyx4bj1fdD09PXZvaWQgMD8icmMtc2VsZWN0IjpfdCxZbj1mdC5iYWNrZmlsbCxQbj1mdC5maWVsZE5hbWVzLExuPWZ0LmlucHV0VmFsdWUsZXI9ZnQuc2VhcmNoVmFsdWUsUW49ZnQub25TZWFyY2gsdXI9ZnQuYXV0b0NsZWFyU2VhcmNoVmFsdWUsaXI9dXI9PT12b2lkIDA/ITA6dXIsdm49ZnQub25TZWxlY3QsY3I9ZnQub25EZXNlbGVjdCxXbj1mdC5kcm9wZG93bk1hdGNoU2VsZWN0V2lkdGgsd249V249PT12b2lkIDA/ITA6V24sQ3Q9ZnQuZmlsdGVyT3B0aW9uLFp0PWZ0LmZpbHRlclNvcnQsYW49ZnQub3B0aW9uRmlsdGVyUHJvcCxEdD1mdC5vcHRpb25MYWJlbFByb3Asa3Q9ZnQub3B0aW9ucyx0bj1mdC5vcHRpb25SZW5kZXIsbW49ZnQuY2hpbGRyZW4sS249ZnQuZGVmYXVsdEFjdGl2ZUZpcnN0T3B0aW9uLEpuPWZ0Lm1lbnVJdGVtU2VsZWN0ZWRJY29uLFhuPWZ0LnZpcnR1YWwsZnI9ZnQuZGlyZWN0aW9uLHJyPWZ0Lmxpc3RIZWlnaHQsaHI9cnI9PT12b2lkIDA/MjAwOnJyLEZuPWZ0Lmxpc3RJdGVtSGVpZ2h0LGFyPUZuPT09dm9pZCAwPzIwOkZuLGxyPWZ0LmxhYmVsUmVuZGVyLCRuPWZ0LnZhbHVlLHNyPWZ0LmRlZmF1bHRWYWx1ZSxGcj1mdC5sYWJlbEluVmFsdWUsWmU9ZnQub25DaGFuZ2UsSGU9ZnQubWF4Q291bnQsbnQ9KDAsYS5aKShmdCxOdCkscnQ9KDAsR2UuWlApKEp0KSx2dD1MZSh3dCksVnQ9ISEoIWt0JiZtbiksZW49ZC51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJuIEN0PT09dm9pZCAwJiZ3dD09PSJjb21ib2JveCI/ITE6Q3R9LFtDdCx3dF0pLFJuPWQudXNlTWVtbyhmdW5jdGlvbigpe3JldHVybiBOKFBuLFZ0KX0sW0pTT04uc3RyaW5naWZ5KFBuKSxWdF0pLGpuPSgwLGMuWikoIiIse3ZhbHVlOmVyIT09dm9pZCAwP2VyOkxuLHBvc3RTdGF0ZTpmdW5jdGlvbihScil7cmV0dXJuIFJyfHwiIn19KSxibj0oMCxzLlopKGpuLDIpLEhuPWJuWzBdLEd0PWJuWzFdLFNuPVR0KGt0LG1uLFJuLGFuLER0KSxPbj1Tbi52YWx1ZU9wdGlvbnMsX249U24ubGFiZWxPcHRpb25zLFBlPVNuLm9wdGlvbnMsZ2U9ZC51c2VDYWxsYmFjayhmdW5jdGlvbihBcil7dmFyIFJyPWNlKEFyKTtyZXR1cm4gUnIubWFwKGZ1bmN0aW9uKG1yKXt2YXIgSXIsSHIsSnIsVGEsamE7aWYoeW4obXIpKUlyPW1yO2Vsc2V7dmFyICRhO0pyPW1yLmtleSxIcj1tci5sYWJlbCxJcj0oJGE9bXIudmFsdWUpIT09bnVsbCYmJGEhPT12b2lkIDA/JGE6SnJ9dmFyIHlyPU9uLmdldChJcik7aWYoeXIpe3ZhciBWcjtpZihIcj09PXZvaWQgMCYmKEhyPXlyPT1udWxsP3ZvaWQgMDp5cltEdHx8Um4ubGFiZWxdKSxKcj09PXZvaWQgMCYmKEpyPShWcj15cj09bnVsbD92b2lkIDA6eXIua2V5KSE9PW51bGwmJlZyIT09dm9pZCAwP1ZyOklyKSxUYT15cj09bnVsbD92b2lkIDA6eXIuZGlzYWJsZWQsamE9eXI9PW51bGw/dm9pZCAwOnlyLnRpdGxlLDApdmFyIFNhfXJldHVybntsYWJlbDpIcix2YWx1ZTpJcixrZXk6SnIsZGlzYWJsZWQ6VGEsdGl0bGU6amF9fSl9LFtSbixEdCxPbl0pLHZlPSgwLGMuWikoc3Ise3ZhbHVlOiRufSksSWU9KDAscy5aKSh2ZSwyKSx4ZT1JZVswXSxhdD1JZVsxXSxkdD1kLnVzZU1lbW8oZnVuY3Rpb24oKXt2YXIgQXIsUnI9dnQmJnhlPT09bnVsbD9bXTp4ZSxtcj1nZShScik7cmV0dXJuIHd0PT09ImNvbWJvYm94IiYmVigoQXI9bXJbMF0pPT09bnVsbHx8QXI9PT12b2lkIDA/dm9pZCAwOkFyLnZhbHVlKT9bXTptcn0sW3hlLGdlLHd0LHZ0XSksRXQ9U3QoZHQsT24pLEh0PSgwLHMuWikoRXQsMiksanQ9SHRbMF0sRnQ9SHRbMV0scG49ZC51c2VNZW1vKGZ1bmN0aW9uKCl7aWYoIXd0JiZqdC5sZW5ndGg9PT0xKXt2YXIgQXI9anRbMF07aWYoQXIudmFsdWU9PT1udWxsJiYoQXIubGFiZWw9PT1udWxsfHxBci5sYWJlbD09PXZvaWQgMCkpcmV0dXJuW119cmV0dXJuIGp0Lm1hcChmdW5jdGlvbihScil7dmFyIG1yO3JldHVybigwLGkuWikoKDAsaS5aKSh7fSxScikse30se2xhYmVsOihtcj10eXBlb2YgbHI9PSJmdW5jdGlvbiI/bHIoUnIpOlJyLmxhYmVsKSE9PW51bGwmJm1yIT09dm9pZCAwP21yOlJyLnZhbHVlfSl9KX0sW3d0LGp0LGxyXSksY249ZC51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBTZXQoanQubWFwKGZ1bmN0aW9uKEFyKXtyZXR1cm4gQXIudmFsdWV9KSl9LFtqdF0pO2QudXNlRWZmZWN0KGZ1bmN0aW9uKCl7aWYod3Q9PT0iY29tYm9ib3giKXt2YXIgQXIsUnI9KEFyPWp0WzBdKT09PW51bGx8fEFyPT09dm9pZCAwP3ZvaWQgMDpBci52YWx1ZTtHdChEKFJyKT9TdHJpbmcoUnIpOiIiKX19LFtqdF0pO3ZhciBvcj1YdChmdW5jdGlvbihBcixScil7dmFyIG1yPVJyIT1udWxsP1JyOkFyO3JldHVybigwLHQuWikoKDAsdC5aKSh7fSxSbi52YWx1ZSxBciksUm4ubGFiZWwsbXIpfSksVG49ZC51c2VNZW1vKGZ1bmN0aW9uKCl7aWYod3QhPT0idGFncyIpcmV0dXJuIFBlO3ZhciBBcj0oMCxuLlopKFBlKSxScj1mdW5jdGlvbihJcil7cmV0dXJuIE9uLmhhcyhJcil9O3JldHVybigwLG4uWikoanQpLnNvcnQoZnVuY3Rpb24obXIsSXIpe3JldHVybiBtci52YWx1ZTxJci52YWx1ZT8tMToxfSkuZm9yRWFjaChmdW5jdGlvbihtcil7dmFyIElyPW1yLnZhbHVlO1JyKElyKXx8QXIucHVzaChvcihJcixtci5sYWJlbCkpfSksQXJ9LFtvcixQZSxPbixqdCx3dF0pLHpuPU9lKFRuLFJuLEhuLGVuLGFuKSxybj1kLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4gd3QhPT0idGFncyJ8fCFIbnx8em4uc29tZShmdW5jdGlvbihBcil7cmV0dXJuIEFyW2FufHwidmFsdWUiXT09PUhufSl8fHpuLnNvbWUoZnVuY3Rpb24oQXIpe3JldHVybiBBcltSbi52YWx1ZV09PT1Ibn0pP3puOltvcihIbildLmNvbmNhdCgoMCxuLlopKHpuKSl9LFtvcixhbix3dCx6bixIbixSbl0pLEt0PWZ1bmN0aW9uIEFyKFJyKXt2YXIgbXI9KDAsbi5aKShScikuc29ydChmdW5jdGlvbihJcixIcil7cmV0dXJuIFp0KElyLEhyLHtzZWFyY2hWYWx1ZTpIbn0pfSk7cmV0dXJuIG1yLm1hcChmdW5jdGlvbihJcil7cmV0dXJuIEFycmF5LmlzQXJyYXkoSXIub3B0aW9ucyk/KDAsaS5aKSgoMCxpLlopKHt9LElyKSx7fSx7b3B0aW9uczpJci5vcHRpb25zLmxlbmd0aD4wP0FyKElyLm9wdGlvbnMpOklyLm9wdGlvbnN9KTpJcn0pfSx6dD1kLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4gWnQ/S3Qocm4pOnJufSxbcm4sWnQsSG5dKSxPdD1kLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4gUSh6dCx7ZmllbGROYW1lczpSbixjaGlsZHJlbkFzRGF0YTpWdH0pfSxbenQsUm4sVnRdKSxsbj1mdW5jdGlvbihScil7dmFyIG1yPWdlKFJyKTtpZihhdChtciksWmUmJihtci5sZW5ndGghPT1qdC5sZW5ndGh8fG1yLnNvbWUoZnVuY3Rpb24oSnIsVGEpe3ZhciBqYTtyZXR1cm4oKGphPWp0W1RhXSk9PT1udWxsfHxqYT09PXZvaWQgMD92b2lkIDA6amEudmFsdWUpIT09KEpyPT1udWxsP3ZvaWQgMDpKci52YWx1ZSl9KSkpe3ZhciBJcj1Gcj9tcjptci5tYXAoZnVuY3Rpb24oSnIpe3JldHVybiBKci52YWx1ZX0pLEhyPW1yLm1hcChmdW5jdGlvbihKcil7cmV0dXJuIHVlKEZ0KEpyLnZhbHVlKSl9KTtaZSh2dD9JcjpJclswXSx2dD9IcjpIclswXSl9fSxFbj1kLnVzZVN0YXRlKG51bGwpLEduPSgwLHMuWikoRW4sMikscHI9R25bMF0sUHI9R25bMV0sYnI9ZC51c2VTdGF0ZSgwKSxNcj0oMCxzLlopKGJyLDIpLCRyPU1yWzBdLEdyPU1yWzFdLG9hPUtuIT09dm9pZCAwP0tuOnd0IT09ImNvbWJvYm94IixyYT1kLnVzZUNhbGxiYWNrKGZ1bmN0aW9uKEFyLFJyKXt2YXIgbXI9YXJndW1lbnRzLmxlbmd0aD4yJiZhcmd1bWVudHNbMl0hPT12b2lkIDA/YXJndW1lbnRzWzJdOnt9LElyPW1yLnNvdXJjZSxIcj1Jcj09PXZvaWQgMD8ia2V5Ym9hcmQiOklyO0dyKFJyKSxZbiYmd3Q9PT0iY29tYm9ib3giJiZBciE9PW51bGwmJkhyPT09ImtleWJvYXJkIiYmUHIoU3RyaW5nKEFyKSl9LFtZbix3dF0pLE1hPWZ1bmN0aW9uKFJyLG1yLElyKXt2YXIgSHI9ZnVuY3Rpb24oKXt2YXIgcm8sdW89RnQoUnIpO3JldHVybltGcj97bGFiZWw6dW89PW51bGw/dm9pZCAwOnVvW1JuLmxhYmVsXSx2YWx1ZTpScixrZXk6KHJvPXVvPT1udWxsP3ZvaWQgMDp1by5rZXkpIT09bnVsbCYmcm8hPT12b2lkIDA/cm86UnJ9OlJyLHVlKHVvKV19O2lmKG1yJiZ2bil7dmFyIEpyPUhyKCksVGE9KDAscy5aKShKciwyKSxqYT1UYVswXSwkYT1UYVsxXTt2bihqYSwkYSl9ZWxzZSBpZighbXImJmNyJiZJciE9PSJjbGVhciIpe3ZhciB5cj1IcigpLFZyPSgwLHMuWikoeXIsMiksU2E9VnJbMF0sRmE9VnJbMV07Y3IoU2EsRmEpfX0sZmE9WHQoZnVuY3Rpb24oQXIsUnIpe3ZhciBtcixJcj12dD9Sci5zZWxlY3RlZDohMDtJcj9tcj12dD9bXS5jb25jYXQoKDAsbi5aKShqdCksW0FyXSk6W0FyXTptcj1qdC5maWx0ZXIoZnVuY3Rpb24oSHIpe3JldHVybiBIci52YWx1ZSE9PUFyfSksbG4obXIpLE1hKEFyLElyKSx3dD09PSJjb21ib2JveCI/UHIoIiIpOighTGV8fGlyKSYmKEd0KCIiKSxQcigiIikpfSksaGE9ZnVuY3Rpb24oUnIsbXIpe2xuKFJyKTt2YXIgSXI9bXIudHlwZSxIcj1tci52YWx1ZXM7KElyPT09InJlbW92ZSJ8fElyPT09ImNsZWFyIikmJkhyLmZvckVhY2goZnVuY3Rpb24oSnIpe01hKEpyLnZhbHVlLCExLElyKX0pfSxlYT1mdW5jdGlvbihScixtcil7aWYoR3QoUnIpLFByKG51bGwpLG1yLnNvdXJjZT09PSJzdWJtaXQiKXt2YXIgSXI9KFJyfHwiIikudHJpbSgpO2lmKElyKXt2YXIgSHI9QXJyYXkuZnJvbShuZXcgU2V0KFtdLmNvbmNhdCgoMCxuLlopKGNuKSxbSXJdKSkpO2xuKEhyKSxNYShJciwhMCksR3QoIiIpfXJldHVybn1tci5zb3VyY2UhPT0iYmx1ciImJih3dD09PSJjb21ib2JveCImJmxuKFJyKSxRbj09bnVsbHx8UW4oUnIpKX0sTmE9ZnVuY3Rpb24oUnIpe3ZhciBtcj1Scjt3dCE9PSJ0YWdzIiYmKG1yPVJyLm1hcChmdW5jdGlvbihIcil7dmFyIEpyPV9uLmdldChIcik7cmV0dXJuIEpyPT1udWxsP3ZvaWQgMDpKci52YWx1ZX0pLmZpbHRlcihmdW5jdGlvbihIcil7cmV0dXJuIEhyIT09dm9pZCAwfSkpO3ZhciBJcj1BcnJheS5mcm9tKG5ldyBTZXQoW10uY29uY2F0KCgwLG4uWikoY24pLCgwLG4uWikobXIpKSkpO2xuKElyKSxJci5mb3JFYWNoKGZ1bmN0aW9uKEhyKXtNYShIciwhMCl9KX0sYmE9ZC51c2VNZW1vKGZ1bmN0aW9uKCl7dmFyIEFyPVhuIT09ITEmJnduIT09ITE7cmV0dXJuKDAsaS5aKSgoMCxpLlopKHt9LFNuKSx7fSx7ZmxhdHRlbk9wdGlvbnM6T3Qsb25BY3RpdmVWYWx1ZTpyYSxkZWZhdWx0QWN0aXZlRmlyc3RPcHRpb246b2Esb25TZWxlY3Q6ZmEsbWVudUl0ZW1TZWxlY3RlZEljb246Sm4scmF3VmFsdWVzOmNuLGZpZWxkTmFtZXM6Um4sdmlydHVhbDpBcixkaXJlY3Rpb246ZnIsbGlzdEhlaWdodDpocixsaXN0SXRlbUhlaWdodDphcixjaGlsZHJlbkFzRGF0YTpWdCxtYXhDb3VudDpIZSxvcHRpb25SZW5kZXI6dG59KX0sW0hlLFNuLE90LHJhLG9hLGZhLEpuLGNuLFJuLFhuLHduLGZyLGhyLGFyLFZ0LHRuXSk7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChwZS5Qcm92aWRlcix7dmFsdWU6YmF9LGQuY3JlYXRlRWxlbWVudChiZSwoMCxyLlopKHt9LG50LHtpZDpydCxwcmVmaXhDbHM6eG4scmVmOmV0LG9taXREb21Qcm9wczpabixtb2RlOnd0LGRpc3BsYXlWYWx1ZXM6cG4sb25EaXNwbGF5VmFsdWVzQ2hhbmdlOmhhLGRpcmVjdGlvbjpmcixzZWFyY2hWYWx1ZTpIbixvblNlYXJjaDplYSxhdXRvQ2xlYXJTZWFyY2hWYWx1ZTppcixvblNlYXJjaFNwbGl0Ok5hLGRyb3Bkb3duTWF0Y2hTZWxlY3RXaWR0aDp3bixPcHRpb25MaXN0OldlLGVtcHR5T3B0aW9uczohT3QubGVuZ3RoLGFjdGl2ZVZhbHVlOnByLGFjdGl2ZURlc2NlbmRhbnRJZDoiIi5jb25jYXQocnQsIl9saXN0XyIpLmNvbmNhdCgkcil9KSkpfSksQm49Z247Qm4uT3B0aW9uPXR0LEJuLk9wdEdyb3VwPWtlO3ZhciBWbj1CbixObj1Wbn0sOTI0MTk6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7RzpmdW5jdGlvbigpe3JldHVybiBpfSxaOmZ1bmN0aW9uKCl7cmV0dXJuIFR9fSk7dmFyIHI9ZSg5Mzk2Nyksbj1lLm4ociksdD1lKDY3Mjk0KTtmdW5jdGlvbiBpKFMpe3ZhciBMPVMuY2hpbGRyZW4sST1TLnByZWZpeENscyxSPVMuaWQsej1TLm92ZXJsYXlJbm5lclN0eWxlLEc9Uy5ib2R5Q2xhc3NOYW1lLFk9Uy5jbGFzc05hbWUsZWU9Uy5zdHlsZTtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bigpKCIiLmNvbmNhdChJLCItY29udGVudCIpLFkpLHN0eWxlOmVlfSx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpuKCkoIiIuY29uY2F0KEksIi1pbm5lciIpLEcpLGlkOlIscm9sZToidG9vbHRpcCIsc3R5bGU6en0sdHlwZW9mIEw9PSJmdW5jdGlvbiI/TCgpOkwpKX12YXIgcz1lKDg3NDYyKSxhPWUoMTQxMyksdT1lKDkxKSxjPWUoNDAyMjgpLGg9e3NoaWZ0WDo2NCxhZGp1c3RZOjF9LGQ9e2FkanVzdFg6MSxzaGlmdFk6ITB9LG09WzAsMF0sQz17bGVmdDp7cG9pbnRzOlsiY3IiLCJjbCJdLG92ZXJmbG93OmQsb2Zmc2V0OlstNCwwXSx0YXJnZXRPZmZzZXQ6bX0scmlnaHQ6e3BvaW50czpbImNsIiwiY3IiXSxvdmVyZmxvdzpkLG9mZnNldDpbNCwwXSx0YXJnZXRPZmZzZXQ6bX0sdG9wOntwb2ludHM6WyJiYyIsInRjIl0sb3ZlcmZsb3c6aCxvZmZzZXQ6WzAsLTRdLHRhcmdldE9mZnNldDptfSxib3R0b206e3BvaW50czpbInRjIiwiYmMiXSxvdmVyZmxvdzpoLG9mZnNldDpbMCw0XSx0YXJnZXRPZmZzZXQ6bX0sdG9wTGVmdDp7cG9pbnRzOlsiYmwiLCJ0bCJdLG92ZXJmbG93Omgsb2Zmc2V0OlswLC00XSx0YXJnZXRPZmZzZXQ6bX0sbGVmdFRvcDp7cG9pbnRzOlsidHIiLCJ0bCJdLG92ZXJmbG93OmQsb2Zmc2V0OlstNCwwXSx0YXJnZXRPZmZzZXQ6bX0sdG9wUmlnaHQ6e3BvaW50czpbImJyIiwidHIiXSxvdmVyZmxvdzpoLG9mZnNldDpbMCwtNF0sdGFyZ2V0T2Zmc2V0Om19LHJpZ2h0VG9wOntwb2ludHM6WyJ0bCIsInRyIl0sb3ZlcmZsb3c6ZCxvZmZzZXQ6WzQsMF0sdGFyZ2V0T2Zmc2V0Om19LGJvdHRvbVJpZ2h0Ontwb2ludHM6WyJ0ciIsImJyIl0sb3ZlcmZsb3c6aCxvZmZzZXQ6WzAsNF0sdGFyZ2V0T2Zmc2V0Om19LHJpZ2h0Qm90dG9tOntwb2ludHM6WyJibCIsImJyIl0sb3ZlcmZsb3c6ZCxvZmZzZXQ6WzQsMF0sdGFyZ2V0T2Zmc2V0Om19LGJvdHRvbUxlZnQ6e3BvaW50czpbInRsIiwiYmwiXSxvdmVyZmxvdzpoLG9mZnNldDpbMCw0XSx0YXJnZXRPZmZzZXQ6bX0sbGVmdEJvdHRvbTp7cG9pbnRzOlsiYnIiLCJibCJdLG92ZXJmbG93OmQsb2Zmc2V0OlstNCwwXSx0YXJnZXRPZmZzZXQ6bX19LGc9bnVsbCx3PWUoNzAyOCksRT1bIm92ZXJsYXlDbGFzc05hbWUiLCJ0cmlnZ2VyIiwibW91c2VFbnRlckRlbGF5IiwibW91c2VMZWF2ZURlbGF5Iiwib3ZlcmxheVN0eWxlIiwicHJlZml4Q2xzIiwiY2hpbGRyZW4iLCJvblZpc2libGVDaGFuZ2UiLCJhZnRlclZpc2libGVDaGFuZ2UiLCJ0cmFuc2l0aW9uTmFtZSIsImFuaW1hdGlvbiIsIm1vdGlvbiIsInBsYWNlbWVudCIsImFsaWduIiwiZGVzdHJveVRvb2x0aXBPbkhpZGUiLCJkZWZhdWx0VmlzaWJsZSIsImdldFRvb2x0aXBDb250YWluZXIiLCJvdmVybGF5SW5uZXJTdHlsZSIsImFycm93Q29udGVudCIsIm92ZXJsYXkiLCJpZCIsInNob3dBcnJvdyIsImNsYXNzTmFtZXMiLCJzdHlsZXMiXSx4PWZ1bmN0aW9uKEwsSSl7dmFyIFI9TC5vdmVybGF5Q2xhc3NOYW1lLHo9TC50cmlnZ2VyLEc9ej09PXZvaWQgMD9bImhvdmVyIl06eixZPUwubW91c2VFbnRlckRlbGF5LGVlPVk9PT12b2lkIDA/MDpZLEo9TC5tb3VzZUxlYXZlRGVsYXksbWU9Sj09PXZvaWQgMD8uMTpKLHRlPUwub3ZlcmxheVN0eWxlLGxlPUwucHJlZml4Q2xzLGNlPWxlPT09dm9pZCAwPyJyYy10b29sdGlwIjpsZSxXPUwuY2hpbGRyZW4saj1MLm9uVmlzaWJsZUNoYW5nZSxEPUwuYWZ0ZXJWaXNpYmxlQ2hhbmdlLFY9TC50cmFuc2l0aW9uTmFtZSxaPUwuYW5pbWF0aW9uLFA9TC5tb3Rpb24sSz1MLnBsYWNlbWVudCxzZT1LPT09dm9pZCAwPyJyaWdodCI6SyxuZT1MLmFsaWduLG9lPW5lPT09dm9pZCAwP3t9Om5lLGZlPUwuZGVzdHJveVRvb2x0aXBPbkhpZGUsRWU9ZmU9PT12b2lkIDA/ITE6ZmUsUmU9TC5kZWZhdWx0VmlzaWJsZSxCZT1MLmdldFRvb2x0aXBDb250YWluZXIsWWU9TC5vdmVybGF5SW5uZXJTdHlsZSxvdD1MLmFycm93Q29udGVudCxxZT1MLm92ZXJsYXksX2U9TC5pZCxGZT1MLnNob3dBcnJvdyxTZT1GZT09PXZvaWQgMD8hMDpGZSxxPUwuY2xhc3NOYW1lcyxrPUwuc3R5bGVzLE09KDAsdS5aKShMLEUpLEE9KDAsdy5aKShfZSksVT0oMCx0LnVzZVJlZikobnVsbCk7KDAsdC51c2VJbXBlcmF0aXZlSGFuZGxlKShJLGZ1bmN0aW9uKCl7cmV0dXJuIFUuY3VycmVudH0pO3ZhciBOPSgwLGEuWikoe30sTSk7InZpc2libGUiaW4gTCYmKE4ucG9wdXBWaXNpYmxlPUwudmlzaWJsZSk7dmFyIFE9ZnVuY3Rpb24oKXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KGkse2tleToiY29udGVudCIscHJlZml4Q2xzOmNlLGlkOkEsYm9keUNsYXNzTmFtZTpxPT1udWxsP3ZvaWQgMDpxLmJvZHksb3ZlcmxheUlubmVyU3R5bGU6KDAsYS5aKSgoMCxhLlopKHt9LFllKSxrPT1udWxsP3ZvaWQgMDprLmJvZHkpfSxxZSl9LHVlPWZ1bmN0aW9uKCl7dmFyIF89dC5DaGlsZHJlbi5vbmx5KFcpLHBlPShfPT1udWxsP3ZvaWQgMDpfLnByb3BzKXx8e30scmU9KDAsYS5aKSgoMCxhLlopKHt9LHBlKSx7fSx7ImFyaWEtZGVzY3JpYmVkYnkiOnFlP0E6bnVsbH0pO3JldHVybiB0LmNsb25lRWxlbWVudChXLHJlKX07cmV0dXJuIHQuY3JlYXRlRWxlbWVudChjLlosKDAscy5aKSh7cG9wdXBDbGFzc05hbWU6bigpKFIscT09bnVsbD92b2lkIDA6cS5yb290KSxwcmVmaXhDbHM6Y2UscG9wdXA6USxhY3Rpb246RyxidWlsdGluUGxhY2VtZW50czpDLHBvcHVwUGxhY2VtZW50OnNlLHJlZjpVLHBvcHVwQWxpZ246b2UsZ2V0UG9wdXBDb250YWluZXI6QmUsb25Qb3B1cFZpc2libGVDaGFuZ2U6aixhZnRlclBvcHVwVmlzaWJsZUNoYW5nZTpELHBvcHVwVHJhbnNpdGlvbk5hbWU6Vixwb3B1cEFuaW1hdGlvbjpaLHBvcHVwTW90aW9uOlAsZGVmYXVsdFBvcHVwVmlzaWJsZTpSZSxhdXRvRGVzdHJveTpFZSxtb3VzZUxlYXZlRGVsYXk6bWUscG9wdXBTdHlsZTooMCxhLlopKCgwLGEuWikoe30sdGUpLGs9PW51bGw/dm9pZCAwOmsucm9vdCksbW91c2VFbnRlckRlbGF5OmVlLGFycm93OlNlfSxOKSx1ZSgpKX0sTz0oMCx0LmZvcndhcmRSZWYpKHgpLFQ9T30sNTAzNDQ6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiB0fX0pO3ZhciByPWUoMjU1MTcpLG49ZSg2NzI5NCk7ZnVuY3Rpb24gdChpKXt2YXIgcz1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06e30sYT1bXTtyZXR1cm4gbi5DaGlsZHJlbi5mb3JFYWNoKGksZnVuY3Rpb24odSl7dT09bnVsbCYmIXMua2VlcEVtcHR5fHwoQXJyYXkuaXNBcnJheSh1KT9hPWEuY29uY2F0KHQodSkpOigwLHIuWikodSkmJnUucHJvcHM/YT1hLmNvbmNhdCh0KHUucHJvcHMuY2hpbGRyZW4scykpOmEucHVzaCh1KSl9KSxhfX0sOTg5MjQ6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiByfX0pO2Z1bmN0aW9uIHIoKXtyZXR1cm4hISh0eXBlb2Ygd2luZG93IT0idW5kZWZpbmVkIiYmd2luZG93LmRvY3VtZW50JiZ3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCl9fSw5NDk5OTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIHJ9fSk7ZnVuY3Rpb24gcihuLHQpe2lmKCFuKXJldHVybiExO2lmKG4uY29udGFpbnMpcmV0dXJuIG4uY29udGFpbnModCk7Zm9yKHZhciBpPXQ7aTspe2lmKGk9PT1uKXJldHVybiEwO2k9aS5wYXJlbnROb2RlfXJldHVybiExfX0sNDQ5NTg6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7aHE6ZnVuY3Rpb24oKXtyZXR1cm4gT30sakw6ZnVuY3Rpb24oKXtyZXR1cm4gd319KTt2YXIgcj1lKDE0MTMpLG49ZSg5ODkyNCksdD1lKDk0OTk5KSxpPSJkYXRhLXJjLW9yZGVyIixzPSJkYXRhLXJjLXByaW9yaXR5IixhPSJyYy11dGlsLWtleSIsdT1uZXcgTWFwO2Z1bmN0aW9uIGMoKXt2YXIgVD1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXZvaWQgMD9hcmd1bWVudHNbMF06e30sUz1ULm1hcms7cmV0dXJuIFM/Uy5zdGFydHNXaXRoKCJkYXRhLSIpP1M6ImRhdGEtIi5jb25jYXQoUyk6YX1mdW5jdGlvbiBoKFQpe2lmKFQuYXR0YWNoVG8pcmV0dXJuIFQuYXR0YWNoVG87dmFyIFM9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaGVhZCIpO3JldHVybiBTfHxkb2N1bWVudC5ib2R5fWZ1bmN0aW9uIGQoVCl7cmV0dXJuIFQ9PT0icXVldWUiPyJwcmVwZW5kUXVldWUiOlQ/InByZXBlbmQiOiJhcHBlbmQifWZ1bmN0aW9uIG0oVCl7cmV0dXJuIEFycmF5LmZyb20oKHUuZ2V0KFQpfHxUKS5jaGlsZHJlbikuZmlsdGVyKGZ1bmN0aW9uKFMpe3JldHVybiBTLnRhZ05hbWU9PT0iU1RZTEUifSl9ZnVuY3Rpb24gQyhUKXt2YXIgUz1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06e307aWYoISgwLG4uWikoKSlyZXR1cm4gbnVsbDt2YXIgTD1TLmNzcCxJPVMucHJlcGVuZCxSPVMucHJpb3JpdHksej1SPT09dm9pZCAwPzA6UixHPWQoSSksWT1HPT09InByZXBlbmRRdWV1ZSIsZWU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtlZS5zZXRBdHRyaWJ1dGUoaSxHKSxZJiZ6JiZlZS5zZXRBdHRyaWJ1dGUocywiIi5jb25jYXQoeikpLEwhPW51bGwmJkwubm9uY2UmJihlZS5ub25jZT1MPT1udWxsP3ZvaWQgMDpMLm5vbmNlKSxlZS5pbm5lckhUTUw9VDt2YXIgSj1oKFMpLG1lPUouZmlyc3RDaGlsZDtpZihJKXtpZihZKXt2YXIgdGU9KFMuc3R5bGVzfHxtKEopKS5maWx0ZXIoZnVuY3Rpb24obGUpe2lmKCFbInByZXBlbmQiLCJwcmVwZW5kUXVldWUiXS5pbmNsdWRlcyhsZS5nZXRBdHRyaWJ1dGUoaSkpKXJldHVybiExO3ZhciBjZT1OdW1iZXIobGUuZ2V0QXR0cmlidXRlKHMpfHwwKTtyZXR1cm4gej49Y2V9KTtpZih0ZS5sZW5ndGgpcmV0dXJuIEouaW5zZXJ0QmVmb3JlKGVlLHRlW3RlLmxlbmd0aC0xXS5uZXh0U2libGluZyksZWV9Si5pbnNlcnRCZWZvcmUoZWUsbWUpfWVsc2UgSi5hcHBlbmRDaGlsZChlZSk7cmV0dXJuIGVlfWZ1bmN0aW9uIGcoVCl7dmFyIFM9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOnt9LEw9aChTKTtyZXR1cm4oUy5zdHlsZXN8fG0oTCkpLmZpbmQoZnVuY3Rpb24oSSl7cmV0dXJuIEkuZ2V0QXR0cmlidXRlKGMoUykpPT09VH0pfWZ1bmN0aW9uIHcoVCl7dmFyIFM9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOnt9LEw9ZyhULFMpO2lmKEwpe3ZhciBJPWgoUyk7SS5yZW1vdmVDaGlsZChMKX19ZnVuY3Rpb24gRShULFMpe3ZhciBMPXUuZ2V0KFQpO2lmKCFMfHwhKDAsdC5aKShkb2N1bWVudCxMKSl7dmFyIEk9QygiIixTKSxSPUkucGFyZW50Tm9kZTt1LnNldChULFIpLFQucmVtb3ZlQ2hpbGQoSSl9fWZ1bmN0aW9uIHgoKXt1LmNsZWFyKCl9ZnVuY3Rpb24gTyhULFMpe3ZhciBMPWFyZ3VtZW50cy5sZW5ndGg+MiYmYXJndW1lbnRzWzJdIT09dm9pZCAwP2FyZ3VtZW50c1syXTp7fSxJPWgoTCksUj1tKEkpLHo9KDAsci5aKSgoMCxyLlopKHt9LEwpLHt9LHtzdHlsZXM6Un0pO0UoSSx6KTt2YXIgRz1nKFMseik7aWYoRyl7dmFyIFksZWU7aWYoKFk9ei5jc3ApIT09bnVsbCYmWSE9PXZvaWQgMCYmWS5ub25jZSYmRy5ub25jZSE9PSgoZWU9ei5jc3ApPT09bnVsbHx8ZWU9PT12b2lkIDA/dm9pZCAwOmVlLm5vbmNlKSl7dmFyIEo7Ry5ub25jZT0oSj16LmNzcCk9PT1udWxsfHxKPT09dm9pZCAwP3ZvaWQgMDpKLm5vbmNlfXJldHVybiBHLmlubmVySFRNTCE9PVQmJihHLmlubmVySFRNTD1UKSxHfXZhciBtZT1DKFQseik7cmV0dXJuIG1lLnNldEF0dHJpYnV0ZShjKHopLFMpLG1lfX0sMzQyMDM6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7U2g6ZnVuY3Rpb24oKXtyZXR1cm4gaX0sWlA6ZnVuY3Rpb24oKXtyZXR1cm4gYX0sYm46ZnVuY3Rpb24oKXtyZXR1cm4gc319KTt2YXIgcj1lKDcxMDAyKSxuPWUoNjcyOTQpLHQ9ZSg3MzkzNSk7ZnVuY3Rpb24gaSh1KXtyZXR1cm4gdSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50fHx1IGluc3RhbmNlb2YgU1ZHRWxlbWVudH1mdW5jdGlvbiBzKHUpe3JldHVybiB1JiYoMCxyLlopKHUpPT09Im9iamVjdCImJmkodS5uYXRpdmVFbGVtZW50KT91Lm5hdGl2ZUVsZW1lbnQ6aSh1KT91Om51bGx9ZnVuY3Rpb24gYSh1KXt2YXIgYz1zKHUpO2lmKGMpcmV0dXJuIGM7aWYodSBpbnN0YW5jZW9mIG4uQ29tcG9uZW50KXt2YXIgaDtyZXR1cm4oaD10LmZpbmRET01Ob2RlKT09PW51bGx8fGg9PT12b2lkIDA/dm9pZCAwOmguY2FsbCh0LHUpfXJldHVybiBudWxsfX0sNTExMDpmdW5jdGlvbih5LHApeyJ1c2Ugc3RyaWN0IjtwLlo9ZnVuY3Rpb24oZSl7aWYoIWUpcmV0dXJuITE7aWYoZSBpbnN0YW5jZW9mIEVsZW1lbnQpe2lmKGUub2Zmc2V0UGFyZW50KXJldHVybiEwO2lmKGUuZ2V0QkJveCl7dmFyIHI9ZS5nZXRCQm94KCksbj1yLndpZHRoLHQ9ci5oZWlnaHQ7aWYobnx8dClyZXR1cm4hMH1pZihlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCl7dmFyIGk9ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxzPWkud2lkdGgsYT1pLmhlaWdodDtpZihzfHxhKXJldHVybiEwfX1yZXR1cm4hMX19LDI3NTcxOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse0E6ZnVuY3Rpb24oKXtyZXR1cm4gdH19KTtmdW5jdGlvbiByKGkpe3ZhciBzO3JldHVybiBpPT1udWxsfHwocz1pLmdldFJvb3ROb2RlKT09PW51bGx8fHM9PT12b2lkIDA/dm9pZCAwOnMuY2FsbChpKX1mdW5jdGlvbiBuKGkpe3JldHVybiByKGkpaW5zdGFuY2VvZiBTaGFkb3dSb290fWZ1bmN0aW9uIHQoaSl7cmV0dXJuIG4oaSk/cihpKTpudWxsfX0sMTUxMDU6ZnVuY3Rpb24oeSxwKXsidXNlIHN0cmljdCI7dmFyIGU9e01BQ19FTlRFUjozLEJBQ0tTUEFDRTo4LFRBQjo5LE5VTV9DRU5URVI6MTIsRU5URVI6MTMsU0hJRlQ6MTYsQ1RSTDoxNyxBTFQ6MTgsUEFVU0U6MTksQ0FQU19MT0NLOjIwLEVTQzoyNyxTUEFDRTozMixQQUdFX1VQOjMzLFBBR0VfRE9XTjozNCxFTkQ6MzUsSE9NRTozNixMRUZUOjM3LFVQOjM4LFJJR0hUOjM5LERPV046NDAsUFJJTlRfU0NSRUVOOjQ0LElOU0VSVDo0NSxERUxFVEU6NDYsWkVSTzo0OCxPTkU6NDksVFdPOjUwLFRIUkVFOjUxLEZPVVI6NTIsRklWRTo1MyxTSVg6NTQsU0VWRU46NTUsRUlHSFQ6NTYsTklORTo1NyxRVUVTVElPTl9NQVJLOjYzLEE6NjUsQjo2NixDOjY3LEQ6NjgsRTo2OSxGOjcwLEc6NzEsSDo3MixJOjczLEo6NzQsSzo3NSxMOjc2LE06NzcsTjo3OCxPOjc5LFA6ODAsUTo4MSxSOjgyLFM6ODMsVDo4NCxVOjg1LFY6ODYsVzo4NyxYOjg4LFk6ODksWjo5MCxNRVRBOjkxLFdJTl9LRVlfUklHSFQ6OTIsQ09OVEVYVF9NRU5VOjkzLE5VTV9aRVJPOjk2LE5VTV9PTkU6OTcsTlVNX1RXTzo5OCxOVU1fVEhSRUU6OTksTlVNX0ZPVVI6MTAwLE5VTV9GSVZFOjEwMSxOVU1fU0lYOjEwMixOVU1fU0VWRU46MTAzLE5VTV9FSUdIVDoxMDQsTlVNX05JTkU6MTA1LE5VTV9NVUxUSVBMWToxMDYsTlVNX1BMVVM6MTA3LE5VTV9NSU5VUzoxMDksTlVNX1BFUklPRDoxMTAsTlVNX0RJVklTSU9OOjExMSxGMToxMTIsRjI6MTEzLEYzOjExNCxGNDoxMTUsRjU6MTE2LEY2OjExNyxGNzoxMTgsRjg6MTE5LEY5OjEyMCxGMTA6MTIxLEYxMToxMjIsRjEyOjEyMyxOVU1MT0NLOjE0NCxTRU1JQ09MT046MTg2LERBU0g6MTg5LEVRVUFMUzoxODcsQ09NTUE6MTg4LFBFUklPRDoxOTAsU0xBU0g6MTkxLEFQT1NUUk9QSEU6MTkyLFNJTkdMRV9RVU9URToyMjIsT1BFTl9TUVVBUkVfQlJBQ0tFVDoyMTksQkFDS1NMQVNIOjIyMCxDTE9TRV9TUVVBUkVfQlJBQ0tFVDoyMjEsV0lOX0tFWToyMjQsTUFDX0ZGX01FVEE6MjI0LFdJTl9JTUU6MjI5LGlzVGV4dE1vZGlmeWluZ0tleUV2ZW50OmZ1bmN0aW9uKG4pe3ZhciB0PW4ua2V5Q29kZTtpZihuLmFsdEtleSYmIW4uY3RybEtleXx8bi5tZXRhS2V5fHx0Pj1lLkYxJiZ0PD1lLkYxMilyZXR1cm4hMTtzd2l0Y2godCl7Y2FzZSBlLkFMVDpjYXNlIGUuQ0FQU19MT0NLOmNhc2UgZS5DT05URVhUX01FTlU6Y2FzZSBlLkNUUkw6Y2FzZSBlLkRPV046Y2FzZSBlLkVORDpjYXNlIGUuRVNDOmNhc2UgZS5IT01FOmNhc2UgZS5JTlNFUlQ6Y2FzZSBlLkxFRlQ6Y2FzZSBlLk1BQ19GRl9NRVRBOmNhc2UgZS5NRVRBOmNhc2UgZS5OVU1MT0NLOmNhc2UgZS5OVU1fQ0VOVEVSOmNhc2UgZS5QQUdFX0RPV046Y2FzZSBlLlBBR0VfVVA6Y2FzZSBlLlBBVVNFOmNhc2UgZS5QUklOVF9TQ1JFRU46Y2FzZSBlLlJJR0hUOmNhc2UgZS5TSElGVDpjYXNlIGUuVVA6Y2FzZSBlLldJTl9LRVk6Y2FzZSBlLldJTl9LRVlfUklHSFQ6cmV0dXJuITE7ZGVmYXVsdDpyZXR1cm4hMH19LGlzQ2hhcmFjdGVyS2V5OmZ1bmN0aW9uKG4pe2lmKG4+PWUuWkVSTyYmbjw9ZS5OSU5FfHxuPj1lLk5VTV9aRVJPJiZuPD1lLk5VTV9NVUxUSVBMWXx8bj49ZS5BJiZuPD1lLlp8fHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIldlYktpdCIpIT09LTEmJm49PT0wKXJldHVybiEwO3N3aXRjaChuKXtjYXNlIGUuU1BBQ0U6Y2FzZSBlLlFVRVNUSU9OX01BUks6Y2FzZSBlLk5VTV9QTFVTOmNhc2UgZS5OVU1fTUlOVVM6Y2FzZSBlLk5VTV9QRVJJT0Q6Y2FzZSBlLk5VTV9ESVZJU0lPTjpjYXNlIGUuU0VNSUNPTE9OOmNhc2UgZS5EQVNIOmNhc2UgZS5FUVVBTFM6Y2FzZSBlLkNPTU1BOmNhc2UgZS5QRVJJT0Q6Y2FzZSBlLlNMQVNIOmNhc2UgZS5BUE9TVFJPUEhFOmNhc2UgZS5TSU5HTEVfUVVPVEU6Y2FzZSBlLk9QRU5fU1FVQVJFX0JSQUNLRVQ6Y2FzZSBlLkJBQ0tTTEFTSDpjYXNlIGUuQ0xPU0VfU1FVQVJFX0JSQUNLRVQ6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19fTtwLlo9ZX0sMjU1MTc6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiBzfX0pO3ZhciByPWUoNzEwMDIpLG49U3ltYm9sLmZvcigicmVhY3QuZWxlbWVudCIpLHQ9U3ltYm9sLmZvcigicmVhY3QudHJhbnNpdGlvbmFsLmVsZW1lbnQiKSxpPVN5bWJvbC5mb3IoInJlYWN0LmZyYWdtZW50Iik7ZnVuY3Rpb24gcyhhKXtyZXR1cm4gYSYmKDAsci5aKShhKT09PSJvYmplY3QiJiYoYS4kJHR5cGVvZj09PW58fGEuJCR0eXBlb2Y9PT10KSYmYS50eXBlPT09aX19LDc0MjA0OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1o6ZnVuY3Rpb24oKXtyZXR1cm4gaX0sbzpmdW5jdGlvbigpe3JldHVybiBzfX0pO3ZhciByPWUoNDQ5NTgpLG47ZnVuY3Rpb24gdChhKXt2YXIgdT0icmMtc2Nyb2xsYmFyLW1lYXN1cmUtIi5jb25jYXQoTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDcpKSxjPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2MuaWQ9dTt2YXIgaD1jLnN0eWxlO2gucG9zaXRpb249ImFic29sdXRlIixoLmxlZnQ9IjAiLGgudG9wPSIwIixoLndpZHRoPSIxMDBweCIsaC5oZWlnaHQ9IjEwMHB4IixoLm92ZXJmbG93PSJzY3JvbGwiO3ZhciBkLG07aWYoYSl7dmFyIEM9Z2V0Q29tcHV0ZWRTdHlsZShhKTtoLnNjcm9sbGJhckNvbG9yPUMuc2Nyb2xsYmFyQ29sb3IsaC5zY3JvbGxiYXJXaWR0aD1DLnNjcm9sbGJhcldpZHRoO3ZhciBnPWdldENvbXB1dGVkU3R5bGUoYSwiOjotd2Via2l0LXNjcm9sbGJhciIpLHc9cGFyc2VJbnQoZy53aWR0aCwxMCksRT1wYXJzZUludChnLmhlaWdodCwxMCk7dHJ5e3ZhciB4PXc/IndpZHRoOiAiLmNvbmNhdChnLndpZHRoLCI7Iik6IiIsTz1FPyJoZWlnaHQ6ICIuY29uY2F0KGcuaGVpZ2h0LCI7Iik6IiI7KDAsci5ocSkoYAorI2AuY29uY2F0KHUsYDo6LXdlYmtpdC1zY3JvbGxiYXIgeworYCkuY29uY2F0KHgsYAorYCkuY29uY2F0KE8sYAorfWApLHUpfWNhdGNoKEwpe2NvbnNvbGUuZXJyb3IoTCksZD13LG09RX19ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjKTt2YXIgVD1hJiZkJiYhaXNOYU4oZCk/ZDpjLm9mZnNldFdpZHRoLWMuY2xpZW50V2lkdGgsUz1hJiZtJiYhaXNOYU4obSk/bTpjLm9mZnNldEhlaWdodC1jLmNsaWVudEhlaWdodDtyZXR1cm4gZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChjKSwoMCxyLmpMKSh1KSx7d2lkdGg6VCxoZWlnaHQ6U319ZnVuY3Rpb24gaShhKXtyZXR1cm4gdHlwZW9mIGRvY3VtZW50PT0idW5kZWZpbmVkIj8wOigoYXx8bj09PXZvaWQgMCkmJihuPXQoKSksbi53aWR0aCl9ZnVuY3Rpb24gcyhhKXtyZXR1cm4gdHlwZW9mIGRvY3VtZW50PT0idW5kZWZpbmVkInx8IWF8fCEoYSBpbnN0YW5jZW9mIEVsZW1lbnQpP3t3aWR0aDowLGhlaWdodDowfTp0KGEpfX0sNjY2ODA6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiBufX0pO3ZhciByPWUoNjcyOTQpO2Z1bmN0aW9uIG4odCl7dmFyIGk9ci51c2VSZWYoKTtpLmN1cnJlbnQ9dDt2YXIgcz1yLnVzZUNhbGxiYWNrKGZ1bmN0aW9uKCl7Zm9yKHZhciBhLHU9YXJndW1lbnRzLmxlbmd0aCxjPW5ldyBBcnJheSh1KSxoPTA7aDx1O2grKyljW2hdPWFyZ3VtZW50c1toXTtyZXR1cm4oYT1pLmN1cnJlbnQpPT09bnVsbHx8YT09PXZvaWQgMD92b2lkIDA6YS5jYWxsLmFwcGx5KGEsW2ldLmNvbmNhdChjKSl9LFtdKTtyZXR1cm4gc319LDcwMjg6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcixuPWUoOTc2ODUpLHQ9ZSgxNDEzKSxpPWUoNjcyOTQpO2Z1bmN0aW9uIHMoKXt2YXIgaD0oMCx0LlopKHt9LHJ8fChyPWUudChpLDIpKSk7cmV0dXJuIGgudXNlSWR9dmFyIGE9MDtmdW5jdGlvbiB1KCl7fXZhciBjPXMoKTtwLlo9Yz9mdW5jdGlvbihkKXt2YXIgbT1jKCk7cmV0dXJuIGR8fG19OmZ1bmN0aW9uKGQpe3ZhciBtPWkudXNlU3RhdGUoInNzci1pZCIpLEM9KDAsbi5aKShtLDIpLGc9Q1swXSx3PUNbMV07cmV0dXJuIGkudXNlRWZmZWN0KGZ1bmN0aW9uKCl7dmFyIEU9YTthKz0xLHcoInJjX3VuaXF1ZV8iLmNvbmNhdChFKSl9LFtdKSxkfHxnfX0sODQxMDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtvOmZ1bmN0aW9uKCl7cmV0dXJuIHN9fSk7dmFyIHI9ZSg2NzI5NCksbj1lKDk4OTI0KSx0PSgwLG4uWikoKT9yLnVzZUxheW91dEVmZmVjdDpyLnVzZUVmZmVjdCxpPWZ1bmN0aW9uKHUsYyl7dmFyIGg9ci51c2VSZWYoITApO3QoZnVuY3Rpb24oKXtyZXR1cm4gdShoLmN1cnJlbnQpfSxjKSx0KGZ1bmN0aW9uKCl7cmV0dXJuIGguY3VycmVudD0hMSxmdW5jdGlvbigpe2guY3VycmVudD0hMH19LFtdKX0scz1mdW5jdGlvbih1LGMpe2koZnVuY3Rpb24oaCl7aWYoIWgpcmV0dXJuIHUoKX0sYyl9O3AuWj1pfSw1Njk4MjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIG59fSk7dmFyIHI9ZSg2NzI5NCk7ZnVuY3Rpb24gbih0LGkscyl7dmFyIGE9ci51c2VSZWYoe30pO3JldHVybighKCJ2YWx1ZSJpbiBhLmN1cnJlbnQpfHxzKGEuY3VycmVudC5jb25kaXRpb24saSkpJiYoYS5jdXJyZW50LnZhbHVlPXQoKSxhLmN1cnJlbnQuY29uZGl0aW9uPWkpLGEuY3VycmVudC52YWx1ZX19LDIxNzcwOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1o6ZnVuY3Rpb24oKXtyZXR1cm4gYX19KTt2YXIgcj1lKDk3Njg1KSxuPWUoNjY2ODApLHQ9ZSg4NDEwKSxpPWUoMzA0NzApO2Z1bmN0aW9uIHModSl7cmV0dXJuIHUhPT12b2lkIDB9ZnVuY3Rpb24gYSh1LGMpe3ZhciBoPWN8fHt9LGQ9aC5kZWZhdWx0VmFsdWUsbT1oLnZhbHVlLEM9aC5vbkNoYW5nZSxnPWgucG9zdFN0YXRlLHc9KDAsaS5aKShmdW5jdGlvbigpe3JldHVybiBzKG0pP206cyhkKT90eXBlb2YgZD09ImZ1bmN0aW9uIj9kKCk6ZDp0eXBlb2YgdT09ImZ1bmN0aW9uIj91KCk6dX0pLEU9KDAsci5aKSh3LDIpLHg9RVswXSxPPUVbMV0sVD1tIT09dm9pZCAwP206eCxTPWc/ZyhUKTpULEw9KDAsbi5aKShDKSxJPSgwLGkuWikoW1RdKSxSPSgwLHIuWikoSSwyKSx6PVJbMF0sRz1SWzFdOygwLHQubykoZnVuY3Rpb24oKXt2YXIgZWU9elswXTt4IT09ZWUmJkwoeCxlZSl9LFt6XSksKDAsdC5vKShmdW5jdGlvbigpe3MobSl8fE8obSl9LFttXSk7dmFyIFk9KDAsbi5aKShmdW5jdGlvbihlZSxKKXtPKGVlLEopLEcoW1RdLEopfSk7cmV0dXJuW1MsWV19fSwzMDQ3MDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIHR9fSk7dmFyIHI9ZSg5NzY4NSksbj1lKDY3Mjk0KTtmdW5jdGlvbiB0KGkpe3ZhciBzPW4udXNlUmVmKCExKSxhPW4udXNlU3RhdGUoaSksdT0oMCxyLlopKGEsMiksYz11WzBdLGg9dVsxXTtuLnVzZUVmZmVjdChmdW5jdGlvbigpe3JldHVybiBzLmN1cnJlbnQ9ITEsZnVuY3Rpb24oKXtzLmN1cnJlbnQ9ITB9fSxbXSk7ZnVuY3Rpb24gZChtLEMpe0MmJnMuY3VycmVudHx8aChtKX1yZXR1cm5bYyxkXX19LDU2NzkwOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse0M4OmZ1bmN0aW9uKCl7cmV0dXJuIG4uWn0sVTI6ZnVuY3Rpb24oKXtyZXR1cm4gaS5afSx0ODpmdW5jdGlvbigpe3JldHVybiBzLlp9LHpYOmZ1bmN0aW9uKCl7cmV0dXJuIHIuWn19KTt2YXIgcj1lKDY2NjgwKSxuPWUoMjE3NzApLHQ9ZSg0MjU1MCksaT1lKDg4MzA2KSxzPWUoODg4MCksYT1lKDgwMzM0KX0sOTE4ODE6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDcxMDAyKSxuPWUoODAzMzQpO2Z1bmN0aW9uIHQoaSxzKXt2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjImJmFyZ3VtZW50c1syXSE9PXZvaWQgMD9hcmd1bWVudHNbMl06ITEsdT1uZXcgU2V0O2Z1bmN0aW9uIGMoaCxkKXt2YXIgbT1hcmd1bWVudHMubGVuZ3RoPjImJmFyZ3VtZW50c1syXSE9PXZvaWQgMD9hcmd1bWVudHNbMl06MSxDPXUuaGFzKGgpO2lmKCgwLG4uWlApKCFDLCJXYXJuaW5nOiBUaGVyZSBtYXkgYmUgY2lyY3VsYXIgcmVmZXJlbmNlcyIpLEMpcmV0dXJuITE7aWYoaD09PWQpcmV0dXJuITA7aWYoYSYmbT4xKXJldHVybiExO3UuYWRkKGgpO3ZhciBnPW0rMTtpZihBcnJheS5pc0FycmF5KGgpKXtpZighQXJyYXkuaXNBcnJheShkKXx8aC5sZW5ndGghPT1kLmxlbmd0aClyZXR1cm4hMTtmb3IodmFyIHc9MDt3PGgubGVuZ3RoO3crKylpZighYyhoW3ddLGRbd10sZykpcmV0dXJuITE7cmV0dXJuITB9aWYoaCYmZCYmKDAsci5aKShoKT09PSJvYmplY3QiJiYoMCxyLlopKGQpPT09Im9iamVjdCIpe3ZhciBFPU9iamVjdC5rZXlzKGgpO3JldHVybiBFLmxlbmd0aCE9PU9iamVjdC5rZXlzKGQpLmxlbmd0aD8hMTpFLmV2ZXJ5KGZ1bmN0aW9uKHgpe3JldHVybiBjKGhbeF0sZFt4XSxnKX0pfXJldHVybiExfXJldHVybiBjKGkscyl9cC5aPXR9LDMxMTMxOmZ1bmN0aW9uKHkscCl7InVzZSBzdHJpY3QiO3AuWj1mdW5jdGlvbigpe2lmKHR5cGVvZiBuYXZpZ2F0b3I9PSJ1bmRlZmluZWQifHx0eXBlb2Ygd2luZG93PT0idW5kZWZpbmVkIilyZXR1cm4hMTt2YXIgZT1uYXZpZ2F0b3IudXNlckFnZW50fHxuYXZpZ2F0b3IudmVuZG9yfHx3aW5kb3cub3BlcmE7cmV0dXJuLyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcmlzfGtpbmRsZXxsZ2UgfG1hZW1vfG1pZHB8bW1wfG1vYmlsZS4rZmlyZWZveHxuZXRmcm9udHxvcGVyYSBtKG9ifGluKWl8cGFsbSggb3MpP3xwaG9uZXxwKGl4aXxyZSlcL3xwbHVja2VyfHBvY2tldHxwc3B8c2VyaWVzKDR8NikwfHN5bWJpYW58dHJlb3x1cFwuKGJyb3dzZXJ8bGluayl8dm9kYWZvbmV8d2FwfHdpbmRvd3MgY2V8eGRhfHhpaW5vfGFuZHJvaWR8aXBhZHxwbGF5Ym9va3xzaWxrL2kudGVzdChlKXx8LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHMtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfC1tfHIgfHMgKXxhdmFufGJlKGNrfGxsfG5xKXxiaShsYnxyZCl8YmwoYWN8YXopfGJyKGV8dil3fGJ1bWJ8YnctKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbS18Y2VsbHxjaHRtfGNsZGN8Y21kLXxjbyhtcHxuZCl8Y3Jhd3xkYShpdHxsbHxuZyl8ZGJ0ZXxkYy1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoLXxfKXxnMSB1fGc1NjB8Z2VuZXxnZi01fGctbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkLShtfHB8dCl8aGVpLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzLWN8aHQoYygtfCB8X3xhfGd8cHxzfHQpfHRwKXxodShhd3x0Yyl8aS0oMjB8Z298bWEpfGkyMzB8aWFjKCB8LXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Yy18a3lvKGN8ayl8bGUobm98eGkpfGxnKCBnfFwvKGt8bHx1KXw1MHw1NHwtW2Etd10pfGxpYnd8bHlueHxtMS13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtLWNyfG1lKHJjfHJpKXxtaShvOHxvYXx0cyl8bW1lZnxtbygwMXwwMnxiaXxkZXxkb3x0KC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKS18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfC0oWzEtOF18YykpfHBoaWx8cGlyZXxwbChheXx1Yyl8cG4tMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0LWd8cWEtYXxxYygwN3wxMnwyMXwzMnw2MHwtWzItN118aS0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGgtfG9vfHAtKXxzZGtcL3xzZShjKC18MHwxKXw0N3xtY3xuZHxyaSl8c2doLXxzaGFyfHNpZSgtfG0pfHNrLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aC18di18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2wtfHRkZy18dGVsKGl8bSl8dGltLXx0LW1vfHRvKHBsfHNoKXx0cyg3MHxtLXxtM3xtNSl8dHgtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYygtfCApfHdlYmN8d2hpdHx3aShnIHxuY3xudyl8d21sYnx3b251fHg3MDB8eWFzLXx5b3VyfHpldG98enRlLS9pLnRlc3QoZT09bnVsbD92b2lkIDA6ZS5zdWJzdHIoMCw0KSl9fSw5ODQyMzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIHJ9fSk7ZnVuY3Rpb24gcihuLHQpe3ZhciBpPU9iamVjdC5hc3NpZ24oe30sbik7cmV0dXJuIEFycmF5LmlzQXJyYXkodCkmJnQuZm9yRWFjaChmdW5jdGlvbihzKXtkZWxldGUgaVtzXX0pLGl9fSw2NDIxNzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGN9fSk7dmFyIHI9ZSgxNDEzKSxuPWBhY2NlcHQgYWNjZXB0Q2hhcnNldCBhY2Nlc3NLZXkgYWN0aW9uIGFsbG93RnVsbFNjcmVlbiBhbGxvd1RyYW5zcGFyZW5jeQorICAgIGFsdCBhc3luYyBhdXRvQ29tcGxldGUgYXV0b0ZvY3VzIGF1dG9QbGF5IGNhcHR1cmUgY2VsbFBhZGRpbmcgY2VsbFNwYWNpbmcgY2hhbGxlbmdlCisgICAgY2hhclNldCBjaGVja2VkIGNsYXNzSUQgY2xhc3NOYW1lIGNvbFNwYW4gY29scyBjb250ZW50IGNvbnRlbnRFZGl0YWJsZSBjb250ZXh0TWVudQorICAgIGNvbnRyb2xzIGNvb3JkcyBjcm9zc09yaWdpbiBkYXRhIGRhdGVUaW1lIGRlZmF1bHQgZGVmZXIgZGlyIGRpc2FibGVkIGRvd25sb2FkIGRyYWdnYWJsZQorICAgIGVuY1R5cGUgZm9ybSBmb3JtQWN0aW9uIGZvcm1FbmNUeXBlIGZvcm1NZXRob2QgZm9ybU5vVmFsaWRhdGUgZm9ybVRhcmdldCBmcmFtZUJvcmRlcgorICAgIGhlYWRlcnMgaGVpZ2h0IGhpZGRlbiBoaWdoIGhyZWYgaHJlZkxhbmcgaHRtbEZvciBodHRwRXF1aXYgaWNvbiBpZCBpbnB1dE1vZGUgaW50ZWdyaXR5CisgICAgaXMga2V5UGFyYW1zIGtleVR5cGUga2luZCBsYWJlbCBsYW5nIGxpc3QgbG9vcCBsb3cgbWFuaWZlc3QgbWFyZ2luSGVpZ2h0IG1hcmdpbldpZHRoIG1heCBtYXhMZW5ndGggbWVkaWEKKyAgICBtZWRpYUdyb3VwIG1ldGhvZCBtaW4gbWluTGVuZ3RoIG11bHRpcGxlIG11dGVkIG5hbWUgbm9WYWxpZGF0ZSBub25jZSBvcGVuCisgICAgb3B0aW11bSBwYXR0ZXJuIHBsYWNlaG9sZGVyIHBvc3RlciBwcmVsb2FkIHJhZGlvR3JvdXAgcmVhZE9ubHkgcmVsIHJlcXVpcmVkCisgICAgcmV2ZXJzZWQgcm9sZSByb3dTcGFuIHJvd3Mgc2FuZGJveCBzY29wZSBzY29wZWQgc2Nyb2xsaW5nIHNlYW1sZXNzIHNlbGVjdGVkCisgICAgc2hhcGUgc2l6ZSBzaXplcyBzcGFuIHNwZWxsQ2hlY2sgc3JjIHNyY0RvYyBzcmNMYW5nIHNyY1NldCBzdGFydCBzdGVwIHN0eWxlCisgICAgc3VtbWFyeSB0YWJJbmRleCB0YXJnZXQgdGl0bGUgdHlwZSB1c2VNYXAgdmFsdWUgd2lkdGggd21vZGUgd3JhcGAsdD1gb25Db3B5IG9uQ3V0IG9uUGFzdGUgb25Db21wb3NpdGlvbkVuZCBvbkNvbXBvc2l0aW9uU3RhcnQgb25Db21wb3NpdGlvblVwZGF0ZSBvbktleURvd24KKyAgICBvbktleVByZXNzIG9uS2V5VXAgb25Gb2N1cyBvbkJsdXIgb25DaGFuZ2Ugb25JbnB1dCBvblN1Ym1pdCBvbkNsaWNrIG9uQ29udGV4dE1lbnUgb25Eb3VibGVDbGljaworICAgIG9uRHJhZyBvbkRyYWdFbmQgb25EcmFnRW50ZXIgb25EcmFnRXhpdCBvbkRyYWdMZWF2ZSBvbkRyYWdPdmVyIG9uRHJhZ1N0YXJ0IG9uRHJvcCBvbk1vdXNlRG93bgorICAgIG9uTW91c2VFbnRlciBvbk1vdXNlTGVhdmUgb25Nb3VzZU1vdmUgb25Nb3VzZU91dCBvbk1vdXNlT3ZlciBvbk1vdXNlVXAgb25TZWxlY3Qgb25Ub3VjaENhbmNlbAorICAgIG9uVG91Y2hFbmQgb25Ub3VjaE1vdmUgb25Ub3VjaFN0YXJ0IG9uU2Nyb2xsIG9uV2hlZWwgb25BYm9ydCBvbkNhblBsYXkgb25DYW5QbGF5VGhyb3VnaAorICAgIG9uRHVyYXRpb25DaGFuZ2Ugb25FbXB0aWVkIG9uRW5jcnlwdGVkIG9uRW5kZWQgb25FcnJvciBvbkxvYWRlZERhdGEgb25Mb2FkZWRNZXRhZGF0YQorICAgIG9uTG9hZFN0YXJ0IG9uUGF1c2Ugb25QbGF5IG9uUGxheWluZyBvblByb2dyZXNzIG9uUmF0ZUNoYW5nZSBvblNlZWtlZCBvblNlZWtpbmcgb25TdGFsbGVkIG9uU3VzcGVuZCBvblRpbWVVcGRhdGUgb25Wb2x1bWVDaGFuZ2Ugb25XYWl0aW5nIG9uTG9hZCBvbkVycm9yYCxpPSIiLmNvbmNhdChuLCIgIikuY29uY2F0KHQpLnNwbGl0KC9bXHNcbl0rLykscz0iYXJpYS0iLGE9ImRhdGEtIjtmdW5jdGlvbiB1KGgsZCl7cmV0dXJuIGguaW5kZXhPZihkKT09PTB9ZnVuY3Rpb24gYyhoKXt2YXIgZD1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06ITEsbTtkPT09ITE/bT17YXJpYTohMCxkYXRhOiEwLGF0dHI6ITB9OmQ9PT0hMD9tPXthcmlhOiEwfTptPSgwLHIuWikoe30sZCk7dmFyIEM9e307cmV0dXJuIE9iamVjdC5rZXlzKGgpLmZvckVhY2goZnVuY3Rpb24oZyl7KG0uYXJpYSYmKGc9PT0icm9sZSJ8fHUoZyxzKSl8fG0uZGF0YSYmdShnLGEpfHxtLmF0dHImJmkuaW5jbHVkZXMoZykpJiYoQ1tnXT1oW2ddKX0pLEN9fSw3NTE2NDpmdW5jdGlvbih5LHApeyJ1c2Ugc3RyaWN0Ijt2YXIgZT1mdW5jdGlvbih1KXtyZXR1cm4rc2V0VGltZW91dCh1LDE2KX0scj1mdW5jdGlvbih1KXtyZXR1cm4gY2xlYXJUaW1lb3V0KHUpfTt0eXBlb2Ygd2luZG93IT0idW5kZWZpbmVkIiYmInJlcXVlc3RBbmltYXRpb25GcmFtZSJpbiB3aW5kb3cmJihlPWZ1bmN0aW9uKHUpe3JldHVybiB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKHUpfSxyPWZ1bmN0aW9uKHUpe3JldHVybiB3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUodSl9KTt2YXIgbj0wLHQ9bmV3IE1hcDtmdW5jdGlvbiBpKGEpe3QuZGVsZXRlKGEpfXZhciBzPWZ1bmN0aW9uKHUpe3ZhciBjPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXToxO24rPTE7dmFyIGg9bjtmdW5jdGlvbiBkKG0pe2lmKG09PT0wKWkoaCksdSgpO2Vsc2V7dmFyIEM9ZShmdW5jdGlvbigpe2QobS0xKX0pO3Quc2V0KGgsQyl9fXJldHVybiBkKGMpLGh9O3MuY2FuY2VsPWZ1bmN0aW9uKGEpe3ZhciB1PXQuZ2V0KGEpO3JldHVybiBpKGEpLHIodSl9LHAuWj1zfSw0MjU1MDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtDNDpmdW5jdGlvbigpe3JldHVybiBnfSxZcjpmdW5jdGlvbigpe3JldHVybiBkfSxtSDpmdW5jdGlvbigpe3JldHVybiB1fSxzUTpmdW5jdGlvbigpe3JldHVybiBjfSx0NDpmdW5jdGlvbigpe3JldHVybiBDfSx4MTpmdW5jdGlvbigpe3JldHVybiBofX0pO3ZhciByPWUoNzEwMDIpLG49ZSg2NzI5NCksdD1lKDExODA1KSxpPWUoNTY5ODIpLHM9ZSgyNTUxNyksYT1OdW1iZXIobi52ZXJzaW9uLnNwbGl0KCIuIilbMF0pLHU9ZnVuY3Rpb24oRSx4KXt0eXBlb2YgRT09ImZ1bmN0aW9uIj9FKHgpOigwLHIuWikoRSk9PT0ib2JqZWN0IiYmRSYmImN1cnJlbnQiaW4gRSYmKEUuY3VycmVudD14KX0sYz1mdW5jdGlvbigpe2Zvcih2YXIgRT1hcmd1bWVudHMubGVuZ3RoLHg9bmV3IEFycmF5KEUpLE89MDtPPEU7TysrKXhbT109YXJndW1lbnRzW09dO3ZhciBUPXguZmlsdGVyKEJvb2xlYW4pO3JldHVybiBULmxlbmd0aDw9MT9UWzBdOmZ1bmN0aW9uKFMpe3guZm9yRWFjaChmdW5jdGlvbihMKXt1KEwsUyl9KX19LGg9ZnVuY3Rpb24oKXtmb3IodmFyIEU9YXJndW1lbnRzLmxlbmd0aCx4PW5ldyBBcnJheShFKSxPPTA7TzxFO08rKyl4W09dPWFyZ3VtZW50c1tPXTtyZXR1cm4oMCxpLlopKGZ1bmN0aW9uKCl7cmV0dXJuIGMuYXBwbHkodm9pZCAwLHgpfSx4LGZ1bmN0aW9uKFQsUyl7cmV0dXJuIFQubGVuZ3RoIT09Uy5sZW5ndGh8fFQuZXZlcnkoZnVuY3Rpb24oTCxJKXtyZXR1cm4gTCE9PVNbSV19KX0pfSxkPWZ1bmN0aW9uKEUpe3ZhciB4LE87aWYoIUUpcmV0dXJuITE7aWYobShFKSYmYT49MTkpcmV0dXJuITA7dmFyIFQ9KDAsdC5pc01lbW8pKEUpP0UudHlwZS50eXBlOkUudHlwZTtyZXR1cm4hKHR5cGVvZiBUPT0iZnVuY3Rpb24iJiYhKCh4PVQucHJvdG90eXBlKSE9PW51bGwmJnghPT12b2lkIDAmJngucmVuZGVyKSYmVC4kJHR5cGVvZiE9PXQuRm9yd2FyZFJlZnx8dHlwZW9mIEU9PSJmdW5jdGlvbiImJiEoKE89RS5wcm90b3R5cGUpIT09bnVsbCYmTyE9PXZvaWQgMCYmTy5yZW5kZXIpJiZFLiQkdHlwZW9mIT09dC5Gb3J3YXJkUmVmKX07ZnVuY3Rpb24gbSh3KXtyZXR1cm4oMCxuLmlzVmFsaWRFbGVtZW50KSh3KSYmISgwLHMuWikodyl9dmFyIEM9ZnVuY3Rpb24oRSl7cmV0dXJuIG0oRSkmJmQoRSl9LGc9ZnVuY3Rpb24oRSl7aWYoRSYmbShFKSl7dmFyIHg9RTtyZXR1cm4geC5wcm9wcy5wcm9wZXJ0eUlzRW51bWVyYWJsZSgicmVmIik/eC5wcm9wcy5yZWY6eC5yZWZ9cmV0dXJuIG51bGx9fSw4ODMwNjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIHJ9fSk7ZnVuY3Rpb24gcihuLHQpe2Zvcih2YXIgaT1uLHM9MDtzPHQubGVuZ3RoO3MrPTEpe2lmKGk9PW51bGwpcmV0dXJuO2k9aVt0W3NdXX1yZXR1cm4gaX19LDg4ODA6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7VDpmdW5jdGlvbigpe3JldHVybiBtfSxaOmZ1bmN0aW9uKCl7cmV0dXJuIHV9fSk7dmFyIHI9ZSg3MTAwMiksbj1lKDE0MTMpLHQ9ZSg3NDkwMiksaT1lKDg0NTA2KSxzPWUoODgzMDYpO2Z1bmN0aW9uIGEoQyxnLHcsRSl7aWYoIWcubGVuZ3RoKXJldHVybiB3O3ZhciB4PSgwLGkuWikoZyksTz14WzBdLFQ9eC5zbGljZSgxKSxTO3JldHVybiFDJiZ0eXBlb2YgTz09Im51bWJlciI/Uz1bXTpBcnJheS5pc0FycmF5KEMpP1M9KDAsdC5aKShDKTpTPSgwLG4uWikoe30sQyksRSYmdz09PXZvaWQgMCYmVC5sZW5ndGg9PT0xP2RlbGV0ZSBTW09dW1RbMF1dOlNbT109YShTW09dLFQsdyxFKSxTfWZ1bmN0aW9uIHUoQyxnLHcpe3ZhciBFPWFyZ3VtZW50cy5sZW5ndGg+MyYmYXJndW1lbnRzWzNdIT09dm9pZCAwP2FyZ3VtZW50c1szXTohMTtyZXR1cm4gZy5sZW5ndGgmJkUmJnc9PT12b2lkIDAmJiEoMCxzLlopKEMsZy5zbGljZSgwLC0xKSk/QzphKEMsZyx3LEUpfWZ1bmN0aW9uIGMoQyl7cmV0dXJuKDAsci5aKShDKT09PSJvYmplY3QiJiZDIT09bnVsbCYmT2JqZWN0LmdldFByb3RvdHlwZU9mKEMpPT09T2JqZWN0LnByb3RvdHlwZX1mdW5jdGlvbiBoKEMpe3JldHVybiBBcnJheS5pc0FycmF5KEMpP1tdOnt9fXZhciBkPXR5cGVvZiBSZWZsZWN0PT0idW5kZWZpbmVkIj9PYmplY3Qua2V5czpSZWZsZWN0Lm93bktleXM7ZnVuY3Rpb24gbSgpe2Zvcih2YXIgQz1hcmd1bWVudHMubGVuZ3RoLGc9bmV3IEFycmF5KEMpLHc9MDt3PEM7dysrKWdbd109YXJndW1lbnRzW3ddO3ZhciBFPWgoZ1swXSk7cmV0dXJuIGcuZm9yRWFjaChmdW5jdGlvbih4KXtmdW5jdGlvbiBPKFQsUyl7dmFyIEw9bmV3IFNldChTKSxJPSgwLHMuWikoeCxUKSxSPUFycmF5LmlzQXJyYXkoSSk7aWYoUnx8YyhJKSl7aWYoIUwuaGFzKEkpKXtMLmFkZChJKTt2YXIgej0oMCxzLlopKEUsVCk7Uj9FPXUoRSxULFtdKTooIXp8fCgwLHIuWikoeikhPT0ib2JqZWN0IikmJihFPXUoRSxULGgoSSkpKSxkKEkpLmZvckVhY2goZnVuY3Rpb24oRyl7TyhbXS5jb25jYXQoKDAsdC5aKShUKSxbR10pLEwpfSl9fWVsc2UgRT11KEUsVCxJKX1PKFtdKX0pLEV9fSw4MDMzNDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtFVDpmdW5jdGlvbigpe3JldHVybiBofSxLcDpmdW5jdGlvbigpe3JldHVybiBpfX0pO3ZhciByPXt9LG49W10sdD1mdW5jdGlvbihtKXtuLnB1c2gobSl9O2Z1bmN0aW9uIGkoZCxtKXtpZigwKXZhciBDfWZ1bmN0aW9uIHMoZCxtKXtpZigwKXZhciBDfWZ1bmN0aW9uIGEoKXtyPXt9fWZ1bmN0aW9uIHUoZCxtLEMpeyFtJiYhcltDXSYmKGQoITEsQykscltDXT0hMCl9ZnVuY3Rpb24gYyhkLG0pe3UoaSxkLG0pfWZ1bmN0aW9uIGgoZCxtKXt1KHMsZCxtKX1jLnByZU1lc3NhZ2U9dCxjLnJlc2V0V2FybmVkPWEsYy5ub3RlT25jZT1oLHAuWlA9Y30sNTExNjI6ZnVuY3Rpb24oeSxwKXsidXNlIHN0cmljdCI7dmFyIGU7dmFyIHI9U3ltYm9sLmZvcigicmVhY3QuZWxlbWVudCIpLG49U3ltYm9sLmZvcigicmVhY3QucG9ydGFsIiksdD1TeW1ib2wuZm9yKCJyZWFjdC5mcmFnbWVudCIpLGk9U3ltYm9sLmZvcigicmVhY3Quc3RyaWN0X21vZGUiKSxzPVN5bWJvbC5mb3IoInJlYWN0LnByb2ZpbGVyIiksYT1TeW1ib2wuZm9yKCJyZWFjdC5wcm92aWRlciIpLHU9U3ltYm9sLmZvcigicmVhY3QuY29udGV4dCIpLGM9U3ltYm9sLmZvcigicmVhY3Quc2VydmVyX2NvbnRleHQiKSxoPVN5bWJvbC5mb3IoInJlYWN0LmZvcndhcmRfcmVmIiksZD1TeW1ib2wuZm9yKCJyZWFjdC5zdXNwZW5zZSIpLG09U3ltYm9sLmZvcigicmVhY3Quc3VzcGVuc2VfbGlzdCIpLEM9U3ltYm9sLmZvcigicmVhY3QubWVtbyIpLGc9U3ltYm9sLmZvcigicmVhY3QubGF6eSIpLHc9U3ltYm9sLmZvcigicmVhY3Qub2Zmc2NyZWVuIiksRTtFPVN5bWJvbC5mb3IoInJlYWN0Lm1vZHVsZS5yZWZlcmVuY2UiKTtmdW5jdGlvbiB4KE8pe2lmKHR5cGVvZiBPPT0ib2JqZWN0IiYmTyE9PW51bGwpe3ZhciBUPU8uJCR0eXBlb2Y7c3dpdGNoKFQpe2Nhc2Ugcjpzd2l0Y2goTz1PLnR5cGUsTyl7Y2FzZSB0OmNhc2UgczpjYXNlIGk6Y2FzZSBkOmNhc2UgbTpyZXR1cm4gTztkZWZhdWx0OnN3aXRjaChPPU8mJk8uJCR0eXBlb2YsTyl7Y2FzZSBjOmNhc2UgdTpjYXNlIGg6Y2FzZSBnOmNhc2UgQzpjYXNlIGE6cmV0dXJuIE87ZGVmYXVsdDpyZXR1cm4gVH19Y2FzZSBuOnJldHVybiBUfX19ZT11LGU9YSxlPXIscC5Gb3J3YXJkUmVmPWgsZT10LGU9ZyxlPUMsZT1uLGU9cyxlPWksZT1kLGU9bSxlPWZ1bmN0aW9uKCl7cmV0dXJuITF9LGU9ZnVuY3Rpb24oKXtyZXR1cm4hMX0sZT1mdW5jdGlvbihPKXtyZXR1cm4geChPKT09PXV9LGU9ZnVuY3Rpb24oTyl7cmV0dXJuIHgoTyk9PT1hfSxlPWZ1bmN0aW9uKE8pe3JldHVybiB0eXBlb2YgTz09Im9iamVjdCImJk8hPT1udWxsJiZPLiQkdHlwZW9mPT09cn0sZT1mdW5jdGlvbihPKXtyZXR1cm4geChPKT09PWh9LGU9ZnVuY3Rpb24oTyl7cmV0dXJuIHgoTyk9PT10fSxlPWZ1bmN0aW9uKE8pe3JldHVybiB4KE8pPT09Z30scC5pc01lbW89ZnVuY3Rpb24oTyl7cmV0dXJuIHgoTyk9PT1DfSxlPWZ1bmN0aW9uKE8pe3JldHVybiB4KE8pPT09bn0sZT1mdW5jdGlvbihPKXtyZXR1cm4geChPKT09PXN9LGU9ZnVuY3Rpb24oTyl7cmV0dXJuIHgoTyk9PT1pfSxlPWZ1bmN0aW9uKE8pe3JldHVybiB4KE8pPT09ZH0sZT1mdW5jdGlvbihPKXtyZXR1cm4geChPKT09PW19LGU9ZnVuY3Rpb24oTyl7cmV0dXJuIHR5cGVvZiBPPT0ic3RyaW5nInx8dHlwZW9mIE89PSJmdW5jdGlvbiJ8fE89PT10fHxPPT09c3x8Tz09PWl8fE89PT1kfHxPPT09bXx8Tz09PXd8fHR5cGVvZiBPPT0ib2JqZWN0IiYmTyE9PW51bGwmJihPLiQkdHlwZW9mPT09Z3x8Ty4kJHR5cGVvZj09PUN8fE8uJCR0eXBlb2Y9PT1hfHxPLiQkdHlwZW9mPT09dXx8Ty4kJHR5cGVvZj09PWh8fE8uJCR0eXBlb2Y9PT1FfHxPLmdldE1vZHVsZUlkIT09dm9pZCAwKX0sZT14fSwxMTgwNTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3kuZXhwb3J0cz1lKDUxMTYyKX0sODc3MTg6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiBGZX19KTt2YXIgcj1lKDg3NDYyKSxuPWUoNzEwMDIpLHQ9ZSgxNDEzKSxpPWUoNDk0Mikscz1lKDk3Njg1KSxhPWUoOTEpLHU9ZSg5Mzk2NyksYz1lLm4odSksaD1lKDQ4NTU1KSxkPWUoNTY3OTApLG09ZSg4NDEwKSxDPWUoNjcyOTQpLGc9ZSg3MzkzNSksdz1DLmZvcndhcmRSZWYoZnVuY3Rpb24oU2UscSl7dmFyIGs9U2UuaGVpZ2h0LE09U2Uub2Zmc2V0WSxBPVNlLm9mZnNldFgsVT1TZS5jaGlsZHJlbixOPVNlLnByZWZpeENscyxRPVNlLm9uSW5uZXJSZXNpemUsdWU9U2UuaW5uZXJQcm9wcywkPVNlLnJ0bCxfPVNlLmV4dHJhLHBlPXt9LHJlPXtkaXNwbGF5OiJmbGV4IixmbGV4RGlyZWN0aW9uOiJjb2x1bW4ifTtyZXR1cm4gTSE9PXZvaWQgMCYmKHBlPXtoZWlnaHQ6ayxwb3NpdGlvbjoicmVsYXRpdmUiLG92ZXJmbG93OiJoaWRkZW4ifSxyZT0oMCx0LlopKCgwLHQuWikoe30scmUpLHt9LCgwLGkuWikoKDAsaS5aKSgoMCxpLlopKCgwLGkuWikoKDAsaS5aKSh7dHJhbnNmb3JtOiJ0cmFuc2xhdGVZKCIuY29uY2F0KE0sInB4KSIpfSwkPyJtYXJnaW5SaWdodCI6Im1hcmdpbkxlZnQiLC1BKSwicG9zaXRpb24iLCJhYnNvbHV0ZSIpLCJsZWZ0IiwwKSwicmlnaHQiLDApLCJ0b3AiLDApKSksQy5jcmVhdGVFbGVtZW50KCJkaXYiLHtzdHlsZTpwZX0sQy5jcmVhdGVFbGVtZW50KGguWix7b25SZXNpemU6ZnVuY3Rpb24od2Upe3ZhciBMZT13ZS5vZmZzZXRIZWlnaHQ7TGUmJlEmJlEoKX19LEMuY3JlYXRlRWxlbWVudCgiZGl2IiwoMCxyLlopKHtzdHlsZTpyZSxjbGFzc05hbWU6YygpKCgwLGkuWikoe30sIiIuY29uY2F0KE4sIi1ob2xkZXItaW5uZXIiKSxOKSkscmVmOnF9LHVlKSxVLF8pKSl9KTt3LmRpc3BsYXlOYW1lPSJGaWxsZXIiO3ZhciBFPXc7ZnVuY3Rpb24geChTZSl7dmFyIHE9U2UuY2hpbGRyZW4saz1TZS5zZXRSZWYsTT1DLnVzZUNhbGxiYWNrKGZ1bmN0aW9uKEEpe2soQSl9LFtdKTtyZXR1cm4gQy5jbG9uZUVsZW1lbnQocSx7cmVmOk19KX1mdW5jdGlvbiBPKFNlLHEsayxNLEEsVSxOLFEpe3ZhciB1ZT1RLmdldEtleTtyZXR1cm4gU2Uuc2xpY2UocSxrKzEpLm1hcChmdW5jdGlvbigkLF8pe3ZhciBwZT1xK18scmU9TigkLHBlLHtzdHlsZTp7d2lkdGg6TX0sb2Zmc2V0WDpBfSksYWU9dWUoJCk7cmV0dXJuIEMuY3JlYXRlRWxlbWVudCh4LHtrZXk6YWUsc2V0UmVmOmZ1bmN0aW9uKExlKXtyZXR1cm4gVSgkLExlKX19LHJlKX0pfWZ1bmN0aW9uIFQoU2UscSxrLE0pe3ZhciBBPWstU2UsVT1xLWssTj1NYXRoLm1pbihBLFUpKjI7aWYoTTw9Til7dmFyIFE9TWF0aC5mbG9vcihNLzIpO3JldHVybiBNJTI/aytRKzE6ay1RfXJldHVybiBBPlU/ay0oTS1VKTprKyhNLUEpfWZ1bmN0aW9uIFMoU2UscSxrKXt2YXIgTT1TZS5sZW5ndGgsQT1xLmxlbmd0aCxVLE47aWYoTT09PTAmJkE9PT0wKXJldHVybiBudWxsO008QT8oVT1TZSxOPXEpOihVPXEsTj1TZSk7dmFyIFE9e19fRU1QVFlfSVRFTV9fOiEwfTtmdW5jdGlvbiB1ZSh3ZSl7cmV0dXJuIHdlIT09dm9pZCAwP2sod2UpOlF9Zm9yKHZhciAkPW51bGwsXz1NYXRoLmFicyhNLUEpIT09MSxwZT0wO3BlPE4ubGVuZ3RoO3BlKz0xKXt2YXIgcmU9dWUoVVtwZV0pLGFlPXVlKE5bcGVdKTtpZihyZSE9PWFlKXskPXBlLF89X3x8cmUhPT11ZShOW3BlKzFdKTticmVha319cmV0dXJuICQ9PT1udWxsP251bGw6e2luZGV4OiQsbXVsdGlwbGU6X319ZnVuY3Rpb24gTChTZSxxLGspe3ZhciBNPUMudXNlU3RhdGUoU2UpLEE9KDAscy5aKShNLDIpLFU9QVswXSxOPUFbMV0sUT1DLnVzZVN0YXRlKG51bGwpLHVlPSgwLHMuWikoUSwyKSwkPXVlWzBdLF89dWVbMV07cmV0dXJuIEMudXNlRWZmZWN0KGZ1bmN0aW9uKCl7dmFyIHBlPVMoVXx8W10sU2V8fFtdLHEpOyhwZT09bnVsbD92b2lkIDA6cGUuaW5kZXgpIT09dm9pZCAwJiYoaz09bnVsbHx8ayhwZS5pbmRleCksXyhTZVtwZS5pbmRleF0pKSxOKFNlKX0sW1NlXSksWyRdfXZhciBJPWUoNzUxNjQpLFI9KHR5cGVvZiBuYXZpZ2F0b3I9PSJ1bmRlZmluZWQiPyJ1bmRlZmluZWQiOigwLG4uWikobmF2aWdhdG9yKSk9PT0ib2JqZWN0IiYmL0ZpcmVmb3gvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpLHo9UixHPWZ1bmN0aW9uKFNlLHEsayxNKXt2YXIgQT0oMCxDLnVzZVJlZikoITEpLFU9KDAsQy51c2VSZWYpKG51bGwpO2Z1bmN0aW9uIE4oKXtjbGVhclRpbWVvdXQoVS5jdXJyZW50KSxBLmN1cnJlbnQ9ITAsVS5jdXJyZW50PXNldFRpbWVvdXQoZnVuY3Rpb24oKXtBLmN1cnJlbnQ9ITF9LDUwKX12YXIgUT0oMCxDLnVzZVJlZikoe3RvcDpTZSxib3R0b206cSxsZWZ0OmsscmlnaHQ6TX0pO3JldHVybiBRLmN1cnJlbnQudG9wPVNlLFEuY3VycmVudC5ib3R0b209cSxRLmN1cnJlbnQubGVmdD1rLFEuY3VycmVudC5yaWdodD1NLGZ1bmN0aW9uKHVlLCQpe3ZhciBfPWFyZ3VtZW50cy5sZW5ndGg+MiYmYXJndW1lbnRzWzJdIT09dm9pZCAwP2FyZ3VtZW50c1syXTohMSxwZT11ZT8kPDAmJlEuY3VycmVudC5sZWZ0fHwkPjAmJlEuY3VycmVudC5yaWdodDokPDAmJlEuY3VycmVudC50b3B8fCQ+MCYmUS5jdXJyZW50LmJvdHRvbTtyZXR1cm4gXyYmcGU/KGNsZWFyVGltZW91dChVLmN1cnJlbnQpLEEuY3VycmVudD0hMSk6KCFwZXx8QS5jdXJyZW50KSYmTigpLCFBLmN1cnJlbnQmJnBlfX07ZnVuY3Rpb24gWShTZSxxLGssTSxBLFUsTil7dmFyIFE9KDAsQy51c2VSZWYpKDApLHVlPSgwLEMudXNlUmVmKShudWxsKSwkPSgwLEMudXNlUmVmKShudWxsKSxfPSgwLEMudXNlUmVmKSghMSkscGU9RyhxLGssTSxBKTtmdW5jdGlvbiByZSgkZSxrZSl7aWYoSS5aLmNhbmNlbCh1ZS5jdXJyZW50KSwhcGUoITEsa2UpKXt2YXIgQWU9JGU7aWYoIUFlLl92aXJ0dWFsSGFuZGxlZClBZS5fdmlydHVhbEhhbmRsZWQ9ITA7ZWxzZSByZXR1cm47US5jdXJyZW50Kz1rZSwkLmN1cnJlbnQ9a2Usenx8QWUucHJldmVudERlZmF1bHQoKSx1ZS5jdXJyZW50PSgwLEkuWikoZnVuY3Rpb24oKXt2YXIgdHQ9Xy5jdXJyZW50PzEwOjE7TihRLmN1cnJlbnQqdHQsITEpLFEuY3VycmVudD0wfSl9fWZ1bmN0aW9uIGFlKCRlLGtlKXtOKGtlLCEwKSx6fHwkZS5wcmV2ZW50RGVmYXVsdCgpfXZhciB3ZT0oMCxDLnVzZVJlZikobnVsbCksTGU9KDAsQy51c2VSZWYpKG51bGwpO2Z1bmN0aW9uIE1lKCRlKXtpZihTZSl7SS5aLmNhbmNlbChMZS5jdXJyZW50KSxMZS5jdXJyZW50PSgwLEkuWikoZnVuY3Rpb24oKXt3ZS5jdXJyZW50PW51bGx9LDIpO3ZhciBrZT0kZS5kZWx0YVgsQWU9JGUuZGVsdGFZLHR0PSRlLnNoaWZ0S2V5LG10PWtlLHV0PUFlOyh3ZS5jdXJyZW50PT09InN4Inx8IXdlLmN1cnJlbnQmJnR0JiZBZSYmIWtlKSYmKG10PUFlLHV0PTAsd2UuY3VycmVudD0ic3giKTt2YXIgRGU9TWF0aC5hYnMobXQpLE5lPU1hdGguYWJzKHV0KTt3ZS5jdXJyZW50PT09bnVsbCYmKHdlLmN1cnJlbnQ9VSYmRGU+TmU/IngiOiJ5Iiksd2UuY3VycmVudD09PSJ5Ij9yZSgkZSx1dCk6YWUoJGUsbXQpfX1mdW5jdGlvbiBiZSgkZSl7U2UmJihfLmN1cnJlbnQ9JGUuZGV0YWlsPT09JC5jdXJyZW50KX1yZXR1cm5bTWUsYmVdfWZ1bmN0aW9uIGVlKFNlLHEsayxNKXt2YXIgQT1DLnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm5bbmV3IE1hcCxbXV19LFtTZSxrLmlkLE1dKSxVPSgwLHMuWikoQSwyKSxOPVVbMF0sUT1VWzFdLHVlPWZ1bmN0aW9uKF8pe3ZhciBwZT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06XyxyZT1OLmdldChfKSxhZT1OLmdldChwZSk7aWYocmU9PT12b2lkIDB8fGFlPT09dm9pZCAwKWZvcih2YXIgd2U9U2UubGVuZ3RoLExlPVEubGVuZ3RoO0xlPHdlO0xlKz0xKXt2YXIgTWUsYmU9U2VbTGVdLCRlPXEoYmUpO04uc2V0KCRlLExlKTt2YXIga2U9KE1lPWsuZ2V0KCRlKSkhPT1udWxsJiZNZSE9PXZvaWQgMD9NZTpNO2lmKFFbTGVdPShRW0xlLTFdfHwwKStrZSwkZT09PV8mJihyZT1MZSksJGU9PT1wZSYmKGFlPUxlKSxyZSE9PXZvaWQgMCYmYWUhPT12b2lkIDApYnJlYWt9cmV0dXJue3RvcDpRW3JlLTFdfHwwLGJvdHRvbTpRW2FlXX19O3JldHVybiB1ZX12YXIgSj1lKDE1NjcxKSxtZT1lKDQzMTQ0KSx0ZT1mdW5jdGlvbigpe2Z1bmN0aW9uIFNlKCl7KDAsSi5aKSh0aGlzLFNlKSwoMCxpLlopKHRoaXMsIm1hcHMiLHZvaWQgMCksKDAsaS5aKSh0aGlzLCJpZCIsMCksKDAsaS5aKSh0aGlzLCJkaWZmS2V5cyIsbmV3IFNldCksdGhpcy5tYXBzPU9iamVjdC5jcmVhdGUobnVsbCl9cmV0dXJuKDAsbWUuWikoU2UsW3trZXk6InNldCIsdmFsdWU6ZnVuY3Rpb24oayxNKXt0aGlzLm1hcHNba109TSx0aGlzLmlkKz0xLHRoaXMuZGlmZktleXMuYWRkKGspfX0se2tleToiZ2V0Iix2YWx1ZTpmdW5jdGlvbihrKXtyZXR1cm4gdGhpcy5tYXBzW2tdfX0se2tleToicmVzZXRSZWNvcmQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5kaWZmS2V5cy5jbGVhcigpfX0se2tleToiZ2V0UmVjb3JkIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRpZmZLZXlzfX1dKSxTZX0oKSxsZT10ZTtmdW5jdGlvbiBjZShTZSl7dmFyIHE9cGFyc2VGbG9hdChTZSk7cmV0dXJuIGlzTmFOKHEpPzA6cX1mdW5jdGlvbiBXKFNlLHEsayl7dmFyIE09Qy51c2VTdGF0ZSgwKSxBPSgwLHMuWikoTSwyKSxVPUFbMF0sTj1BWzFdLFE9KDAsQy51c2VSZWYpKG5ldyBNYXApLHVlPSgwLEMudXNlUmVmKShuZXcgbGUpLCQ9KDAsQy51c2VSZWYpKDApO2Z1bmN0aW9uIF8oKXskLmN1cnJlbnQrPTF9ZnVuY3Rpb24gcGUoKXt2YXIgYWU9YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT12b2lkIDA/YXJndW1lbnRzWzBdOiExO18oKTt2YXIgd2U9ZnVuY3Rpb24oKXt2YXIgYmU9ITE7US5jdXJyZW50LmZvckVhY2goZnVuY3Rpb24oJGUsa2Upe2lmKCRlJiYkZS5vZmZzZXRQYXJlbnQpe3ZhciBBZT0kZS5vZmZzZXRIZWlnaHQsdHQ9Z2V0Q29tcHV0ZWRTdHlsZSgkZSksbXQ9dHQubWFyZ2luVG9wLHV0PXR0Lm1hcmdpbkJvdHRvbSxEZT1jZShtdCksTmU9Y2UodXQpLFhlPUFlK0RlK05lO3VlLmN1cnJlbnQuZ2V0KGtlKSE9PVhlJiYodWUuY3VycmVudC5zZXQoa2UsWGUpLGJlPSEwKX19KSxiZSYmTihmdW5jdGlvbigkZSl7cmV0dXJuICRlKzF9KX07aWYoYWUpd2UoKTtlbHNleyQuY3VycmVudCs9MTt2YXIgTGU9JC5jdXJyZW50O1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oZnVuY3Rpb24oKXtMZT09PSQuY3VycmVudCYmd2UoKX0pfX1mdW5jdGlvbiByZShhZSx3ZSl7dmFyIExlPVNlKGFlKSxNZT1RLmN1cnJlbnQuZ2V0KExlKTt3ZT8oUS5jdXJyZW50LnNldChMZSx3ZSkscGUoKSk6US5jdXJyZW50LmRlbGV0ZShMZSksIU1lIT0hd2UmJih3ZT9xPT1udWxsfHxxKGFlKTprPT1udWxsfHxrKGFlKSl9cmV0dXJuKDAsQy51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7cmV0dXJuIF99LFtdKSxbcmUscGUsdWUuY3VycmVudCxVXX12YXIgaj0xNC8xNTtmdW5jdGlvbiBEKFNlLHEsayl7dmFyIE09KDAsQy51c2VSZWYpKCExKSxBPSgwLEMudXNlUmVmKSgwKSxVPSgwLEMudXNlUmVmKSgwKSxOPSgwLEMudXNlUmVmKShudWxsKSxRPSgwLEMudXNlUmVmKShudWxsKSx1ZSwkPWZ1bmN0aW9uKGFlKXtpZihNLmN1cnJlbnQpe3ZhciB3ZT1NYXRoLmNlaWwoYWUudG91Y2hlc1swXS5wYWdlWCksTGU9TWF0aC5jZWlsKGFlLnRvdWNoZXNbMF0ucGFnZVkpLE1lPUEuY3VycmVudC13ZSxiZT1VLmN1cnJlbnQtTGUsJGU9TWF0aC5hYnMoTWUpPk1hdGguYWJzKGJlKTskZT9BLmN1cnJlbnQ9d2U6VS5jdXJyZW50PUxlO3ZhciBrZT1rKCRlLCRlP01lOmJlLCExLGFlKTtrZSYmYWUucHJldmVudERlZmF1bHQoKSxjbGVhckludGVydmFsKFEuY3VycmVudCksa2UmJihRLmN1cnJlbnQ9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXskZT9NZSo9ajpiZSo9ajt2YXIgQWU9TWF0aC5mbG9vcigkZT9NZTpiZSk7KCFrKCRlLEFlLCEwKXx8TWF0aC5hYnMoQWUpPD0uMSkmJmNsZWFySW50ZXJ2YWwoUS5jdXJyZW50KX0sMTYpKX19LF89ZnVuY3Rpb24oKXtNLmN1cnJlbnQ9ITEsdWUoKX0scGU9ZnVuY3Rpb24oYWUpe3VlKCksYWUudG91Y2hlcy5sZW5ndGg9PT0xJiYhTS5jdXJyZW50JiYoTS5jdXJyZW50PSEwLEEuY3VycmVudD1NYXRoLmNlaWwoYWUudG91Y2hlc1swXS5wYWdlWCksVS5jdXJyZW50PU1hdGguY2VpbChhZS50b3VjaGVzWzBdLnBhZ2VZKSxOLmN1cnJlbnQ9YWUudGFyZ2V0LE4uY3VycmVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLCQse3Bhc3NpdmU6ITF9KSxOLmN1cnJlbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLF8se3Bhc3NpdmU6ITB9KSl9O3VlPWZ1bmN0aW9uKCl7Ti5jdXJyZW50JiYoTi5jdXJyZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsJCksTi5jdXJyZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIixfKSl9LCgwLG0uWikoZnVuY3Rpb24oKXtyZXR1cm4gU2UmJnEuY3VycmVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixwZSx7cGFzc2l2ZTohMH0pLGZ1bmN0aW9uKCl7dmFyIHJlOyhyZT1xLmN1cnJlbnQpPT09bnVsbHx8cmU9PT12b2lkIDB8fHJlLnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHBlKSx1ZSgpLGNsZWFySW50ZXJ2YWwoUS5jdXJyZW50KX19LFtTZV0pfWZ1bmN0aW9uIFYoU2Upe3JldHVybiBNYXRoLmZsb29yKE1hdGgucG93KFNlLC41KSl9ZnVuY3Rpb24gWihTZSxxKXt2YXIgaz0idG91Y2hlcyJpbiBTZT9TZS50b3VjaGVzWzBdOlNlO3JldHVybiBrW3E/InBhZ2VYIjoicGFnZVkiXS13aW5kb3dbcT8ic2Nyb2xsWCI6InNjcm9sbFkiXX1mdW5jdGlvbiBQKFNlLHEsayl7Qy51c2VFZmZlY3QoZnVuY3Rpb24oKXt2YXIgTT1xLmN1cnJlbnQ7aWYoU2UmJk0pe3ZhciBBPSExLFUsTixRPWZ1bmN0aW9uKCl7SS5aLmNhbmNlbChVKX0sdWU9ZnVuY3Rpb24gcmUoKXtRKCksVT0oMCxJLlopKGZ1bmN0aW9uKCl7ayhOKSxyZSgpfSl9LCQ9ZnVuY3Rpb24oYWUpe2lmKCFhZS50YXJnZXQuZHJhZ2dhYmxlKXt2YXIgd2U9YWU7d2UuX3ZpcnR1YWxIYW5kbGVkfHwod2UuX3ZpcnR1YWxIYW5kbGVkPSEwLEE9ITApfX0sXz1mdW5jdGlvbigpe0E9ITEsUSgpfSxwZT1mdW5jdGlvbihhZSl7aWYoQSl7dmFyIHdlPVooYWUsITEpLExlPU0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksTWU9TGUudG9wLGJlPUxlLmJvdHRvbTtpZih3ZTw9TWUpe3ZhciAkZT1NZS13ZTtOPS1WKCRlKSx1ZSgpfWVsc2UgaWYod2U+PWJlKXt2YXIga2U9d2UtYmU7Tj1WKGtlKSx1ZSgpfWVsc2UgUSgpfX07cmV0dXJuIE0uYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIiwkKSxNLm93bmVyRG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsXyksTS5vd25lckRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIscGUpLGZ1bmN0aW9uKCl7TS5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLCQpLE0ub3duZXJEb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIixfKSxNLm93bmVyRG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIixwZSksUSgpfX19LFtTZV0pfXZhciBLPTEwO2Z1bmN0aW9uIHNlKFNlLHEsayxNLEEsVSxOLFEpe3ZhciB1ZT1DLnVzZVJlZigpLCQ9Qy51c2VTdGF0ZShudWxsKSxfPSgwLHMuWikoJCwyKSxwZT1fWzBdLHJlPV9bMV07cmV0dXJuKDAsbS5aKShmdW5jdGlvbigpe2lmKHBlJiZwZS50aW1lczxLKXtpZighU2UuY3VycmVudCl7cmUoZnVuY3Rpb24oaHQpe3JldHVybigwLHQuWikoe30saHQpfSk7cmV0dXJufVUoKTt2YXIgYWU9cGUudGFyZ2V0QWxpZ24sd2U9cGUub3JpZ2luQWxpZ24sTGU9cGUuaW5kZXgsTWU9cGUub2Zmc2V0LGJlPVNlLmN1cnJlbnQuY2xpZW50SGVpZ2h0LCRlPSExLGtlPWFlLEFlPW51bGw7aWYoYmUpe2Zvcih2YXIgdHQ9YWV8fHdlLG10PTAsdXQ9MCxEZT0wLE5lPU1hdGgubWluKHEubGVuZ3RoLTEsTGUpLFhlPTA7WGU8PU5lO1hlKz0xKXt2YXIgSmU9QShxW1hlXSk7dXQ9bXQ7dmFyIGd0PWsuZ2V0KEplKTtEZT11dCsoZ3Q9PT12b2lkIDA/TTpndCksbXQ9RGV9Zm9yKHZhciBkZT10dD09PSJ0b3AiP01lOmJlLU1lLFdlPU5lO1dlPj0wO1dlLT0xKXt2YXIgU3Q9QShxW1dlXSksY3Q9ay5nZXQoU3QpO2lmKGN0PT09dm9pZCAwKXskZT0hMDticmVha31pZihkZS09Y3QsZGU8PTApYnJlYWt9c3dpdGNoKHR0KXtjYXNlInRvcCI6QWU9dXQtTWU7YnJlYWs7Y2FzZSJib3R0b20iOkFlPURlLWJlK01lO2JyZWFrO2RlZmF1bHQ6e3ZhciBPZT1TZS5jdXJyZW50LnNjcm9sbFRvcCxHZT1PZStiZTt1dDxPZT9rZT0idG9wIjpEZT5HZSYmKGtlPSJib3R0b20iKX19QWUhPT1udWxsJiZOKEFlKSxBZSE9PXBlLmxhc3RUb3AmJigkZT0hMCl9JGUmJnJlKCgwLHQuWikoKDAsdC5aKSh7fSxwZSkse30se3RpbWVzOnBlLnRpbWVzKzEsdGFyZ2V0QWxpZ246a2UsbGFzdFRvcDpBZX0pKX19LFtwZSxTZS5jdXJyZW50XSksZnVuY3Rpb24oYWUpe2lmKGFlPT1udWxsKXtRKCk7cmV0dXJufWlmKEkuWi5jYW5jZWwodWUuY3VycmVudCksdHlwZW9mIGFlPT0ibnVtYmVyIilOKGFlKTtlbHNlIGlmKGFlJiYoMCxuLlopKGFlKT09PSJvYmplY3QiKXt2YXIgd2UsTGU9YWUuYWxpZ247ImluZGV4ImluIGFlP3dlPWFlLmluZGV4OndlPXEuZmluZEluZGV4KGZ1bmN0aW9uKCRlKXtyZXR1cm4gQSgkZSk9PT1hZS5rZXl9KTt2YXIgTWU9YWUub2Zmc2V0LGJlPU1lPT09dm9pZCAwPzA6TWU7cmUoe3RpbWVzOjAsaW5kZXg6d2Usb2Zmc2V0OmJlLG9yaWdpbkFsaWduOkxlfSl9fX12YXIgbmU9Qy5mb3J3YXJkUmVmKGZ1bmN0aW9uKFNlLHEpe3ZhciBrPVNlLnByZWZpeENscyxNPVNlLnJ0bCxBPVNlLnNjcm9sbE9mZnNldCxVPVNlLnNjcm9sbFJhbmdlLE49U2Uub25TdGFydE1vdmUsUT1TZS5vblN0b3BNb3ZlLHVlPVNlLm9uU2Nyb2xsLCQ9U2UuaG9yaXpvbnRhbCxfPVNlLnNwaW5TaXplLHBlPVNlLmNvbnRhaW5lclNpemUscmU9U2Uuc3R5bGUsYWU9U2UudGh1bWJTdHlsZSx3ZT1TZS5zaG93U2Nyb2xsQmFyLExlPUMudXNlU3RhdGUoITEpLE1lPSgwLHMuWikoTGUsMiksYmU9TWVbMF0sJGU9TWVbMV0sa2U9Qy51c2VTdGF0ZShudWxsKSxBZT0oMCxzLlopKGtlLDIpLHR0PUFlWzBdLG10PUFlWzFdLHV0PUMudXNlU3RhdGUobnVsbCksRGU9KDAscy5aKSh1dCwyKSxOZT1EZVswXSxYZT1EZVsxXSxKZT0hTSxndD1DLnVzZVJlZigpLGRlPUMudXNlUmVmKCksV2U9Qy51c2VTdGF0ZSh3ZSksU3Q9KDAscy5aKShXZSwyKSxjdD1TdFswXSxPZT1TdFsxXSxHZT1DLnVzZVJlZigpLGh0PWZ1bmN0aW9uKCl7d2U9PT0hMHx8d2U9PT0hMXx8KGNsZWFyVGltZW91dChHZS5jdXJyZW50KSxPZSghMCksR2UuY3VycmVudD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7T2UoITEpfSwzZTMpKX0semU9VS1wZXx8MCxRZT1wZS1ffHwwLHB0PUMudXNlTWVtbyhmdW5jdGlvbigpe2lmKEE9PT0wfHx6ZT09PTApcmV0dXJuIDA7dmFyIFpuPUEvemU7cmV0dXJuIFpuKlFlfSxbQSx6ZSxRZV0pLGJ0PWZ1bmN0aW9uKHluKXt5bi5zdG9wUHJvcGFnYXRpb24oKSx5bi5wcmV2ZW50RGVmYXVsdCgpfSxJdD1DLnVzZVJlZih7dG9wOnB0LGRyYWdnaW5nOmJlLHBhZ2VZOnR0LHN0YXJ0VG9wOk5lfSk7SXQuY3VycmVudD17dG9wOnB0LGRyYWdnaW5nOmJlLHBhZ2VZOnR0LHN0YXJ0VG9wOk5lfTt2YXIgVHQ9ZnVuY3Rpb24oeW4peyRlKCEwKSxtdChaKHluLCQpKSxYZShJdC5jdXJyZW50LnRvcCksTigpLHluLnN0b3BQcm9wYWdhdGlvbigpLHluLnByZXZlbnREZWZhdWx0KCl9O0MudXNlRWZmZWN0KGZ1bmN0aW9uKCl7dmFyIFpuPWZ1bmN0aW9uKFZuKXtWbi5wcmV2ZW50RGVmYXVsdCgpfSx5bj1ndC5jdXJyZW50LGduPWRlLmN1cnJlbnQ7cmV0dXJuIHluLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLFpuLHtwYXNzaXZlOiExfSksZ24uYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsVHQse3Bhc3NpdmU6ITF9KSxmdW5jdGlvbigpe3luLnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLFpuKSxnbi5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixUdCl9fSxbXSk7dmFyIFh0PUMudXNlUmVmKCk7WHQuY3VycmVudD16ZTt2YXIgZm49Qy51c2VSZWYoKTtmbi5jdXJyZW50PVFlLEMudXNlRWZmZWN0KGZ1bmN0aW9uKCl7aWYoYmUpe3ZhciBabix5bj1mdW5jdGlvbihWbil7dmFyIE5uPUl0LmN1cnJlbnQsZnQ9Tm4uZHJhZ2dpbmcsZXQ9Tm4ucGFnZVksSnQ9Tm4uc3RhcnRUb3A7SS5aLmNhbmNlbChabik7dmFyIHd0PWd0LmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksX3Q9cGUvKCQ/d3Qud2lkdGg6d3QuaGVpZ2h0KTtpZihmdCl7dmFyIHhuPShaKFZuLCQpLWV0KSpfdCxZbj1KdDshSmUmJiQ/WW4tPXhuOlluKz14bjt2YXIgUG49WHQuY3VycmVudCxMbj1mbi5jdXJyZW50LGVyPUxuP1luL0xuOjAsUW49TWF0aC5jZWlsKGVyKlBuKTtRbj1NYXRoLm1heChRbiwwKSxRbj1NYXRoLm1pbihRbixQbiksWm49KDAsSS5aKShmdW5jdGlvbigpe3VlKFFuLCQpfSl9fSxnbj1mdW5jdGlvbigpeyRlKCExKSxRKCl9O3JldHVybiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix5bix7cGFzc2l2ZTohMH0pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLHluLHtwYXNzaXZlOiEwfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLGduLHtwYXNzaXZlOiEwfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIixnbix7cGFzc2l2ZTohMH0pLGZ1bmN0aW9uKCl7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIseW4pLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLHluKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsZ24pLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsZ24pLEkuWi5jYW5jZWwoWm4pfX19LFtiZV0pLEMudXNlRWZmZWN0KGZ1bmN0aW9uKCl7cmV0dXJuIGh0KCksZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQoR2UuY3VycmVudCl9fSxbQV0pLEMudXNlSW1wZXJhdGl2ZUhhbmRsZShxLGZ1bmN0aW9uKCl7cmV0dXJue2RlbGF5SGlkZGVuOmh0fX0pO3ZhciBubj0iIi5jb25jYXQoaywiLXNjcm9sbGJhciIpLG9uPXtwb3NpdGlvbjoiYWJzb2x1dGUiLHZpc2liaWxpdHk6Y3Q/bnVsbDoiaGlkZGVuIn0sTnQ9e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsYmFja2dyb3VuZDoicmdiYSgwLCAwLCAwLCAwLjUpIixib3JkZXJSYWRpdXM6OTksY3Vyc29yOiJwb2ludGVyIix1c2VyU2VsZWN0OiJub25lIn07cmV0dXJuICQ/KG9uLmhlaWdodD04LG9uLmxlZnQ9MCxvbi5yaWdodD0wLG9uLmJvdHRvbT0wLE50LmhlaWdodD0iMTAwJSIsTnQud2lkdGg9XyxKZT9OdC5sZWZ0PXB0Ok50LnJpZ2h0PXB0KToob24ud2lkdGg9OCxvbi50b3A9MCxvbi5ib3R0b209MCxKZT9vbi5yaWdodD0wOm9uLmxlZnQ9MCxOdC53aWR0aD0iMTAwJSIsTnQuaGVpZ2h0PV8sTnQudG9wPXB0KSxDLmNyZWF0ZUVsZW1lbnQoImRpdiIse3JlZjpndCxjbGFzc05hbWU6YygpKG5uLCgwLGkuWikoKDAsaS5aKSgoMCxpLlopKHt9LCIiLmNvbmNhdChubiwiLWhvcml6b250YWwiKSwkKSwiIi5jb25jYXQobm4sIi12ZXJ0aWNhbCIpLCEkKSwiIi5jb25jYXQobm4sIi12aXNpYmxlIiksY3QpKSxzdHlsZTooMCx0LlopKCgwLHQuWikoe30sb24pLHJlKSxvbk1vdXNlRG93bjpidCxvbk1vdXNlTW92ZTpodH0sQy5jcmVhdGVFbGVtZW50KCJkaXYiLHtyZWY6ZGUsY2xhc3NOYW1lOmMoKSgiIi5jb25jYXQobm4sIi10aHVtYiIpLCgwLGkuWikoe30sIiIuY29uY2F0KG5uLCItdGh1bWItbW92aW5nIiksYmUpKSxzdHlsZTooMCx0LlopKCgwLHQuWikoe30sTnQpLGFlKSxvbk1vdXNlRG93bjpUdH0pKX0pLG9lPW5lLGZlPTIwO2Z1bmN0aW9uIEVlKCl7dmFyIFNlPWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dm9pZCAwP2FyZ3VtZW50c1swXTowLHE9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOjAsaz1TZS9xKlNlO3JldHVybiBpc05hTihrKSYmKGs9MCksaz1NYXRoLm1heChrLGZlKSxNYXRoLmZsb29yKGspfXZhciBSZT1bInByZWZpeENscyIsImNsYXNzTmFtZSIsImhlaWdodCIsIml0ZW1IZWlnaHQiLCJmdWxsSGVpZ2h0Iiwic3R5bGUiLCJkYXRhIiwiY2hpbGRyZW4iLCJpdGVtS2V5IiwidmlydHVhbCIsImRpcmVjdGlvbiIsInNjcm9sbFdpZHRoIiwiY29tcG9uZW50Iiwib25TY3JvbGwiLCJvblZpcnR1YWxTY3JvbGwiLCJvblZpc2libGVDaGFuZ2UiLCJpbm5lclByb3BzIiwiZXh0cmFSZW5kZXIiLCJzdHlsZXMiLCJzaG93U2Nyb2xsQmFyIl0sQmU9W10sWWU9e292ZXJmbG93WToiYXV0byIsb3ZlcmZsb3dBbmNob3I6Im5vbmUifTtmdW5jdGlvbiBvdChTZSxxKXt2YXIgaz1TZS5wcmVmaXhDbHMsTT1rPT09dm9pZCAwPyJyYy12aXJ0dWFsLWxpc3QiOmssQT1TZS5jbGFzc05hbWUsVT1TZS5oZWlnaHQsTj1TZS5pdGVtSGVpZ2h0LFE9U2UuZnVsbEhlaWdodCx1ZT1RPT09dm9pZCAwPyEwOlEsJD1TZS5zdHlsZSxfPVNlLmRhdGEscGU9U2UuY2hpbGRyZW4scmU9U2UuaXRlbUtleSxhZT1TZS52aXJ0dWFsLHdlPVNlLmRpcmVjdGlvbixMZT1TZS5zY3JvbGxXaWR0aCxNZT1TZS5jb21wb25lbnQsYmU9TWU9PT12b2lkIDA/ImRpdiI6TWUsJGU9U2Uub25TY3JvbGwsa2U9U2Uub25WaXJ0dWFsU2Nyb2xsLEFlPVNlLm9uVmlzaWJsZUNoYW5nZSx0dD1TZS5pbm5lclByb3BzLG10PVNlLmV4dHJhUmVuZGVyLHV0PVNlLnN0eWxlcyxEZT1TZS5zaG93U2Nyb2xsQmFyLE5lPURlPT09dm9pZCAwPyJvcHRpb25hbCI6RGUsWGU9KDAsYS5aKShTZSxSZSksSmU9Qy51c2VDYWxsYmFjayhmdW5jdGlvbihQZSl7cmV0dXJuIHR5cGVvZiByZT09ImZ1bmN0aW9uIj9yZShQZSk6UGU9PW51bGw/dm9pZCAwOlBlW3JlXX0sW3JlXSksZ3Q9VyhKZSxudWxsLG51bGwpLGRlPSgwLHMuWikoZ3QsNCksV2U9ZGVbMF0sU3Q9ZGVbMV0sY3Q9ZGVbMl0sT2U9ZGVbM10sR2U9ISEoYWUhPT0hMSYmVSYmTiksaHQ9Qy51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC52YWx1ZXMoY3QubWFwcykucmVkdWNlKGZ1bmN0aW9uKFBlLGdlKXtyZXR1cm4gUGUrZ2V9LDApfSxbY3QuaWQsY3QubWFwc10pLHplPUdlJiZfJiYoTWF0aC5tYXgoTipfLmxlbmd0aCxodCk+VXx8ISFMZSksUWU9d2U9PT0icnRsIixwdD1jKCkoTSwoMCxpLlopKHt9LCIiLmNvbmNhdChNLCItcnRsIiksUWUpLEEpLGJ0PV98fEJlLEl0PSgwLEMudXNlUmVmKSgpLFR0PSgwLEMudXNlUmVmKSgpLFh0PSgwLEMudXNlUmVmKSgpLGZuPSgwLEMudXNlU3RhdGUpKDApLG5uPSgwLHMuWikoZm4sMiksb249bm5bMF0sTnQ9bm5bMV0sWm49KDAsQy51c2VTdGF0ZSkoMCkseW49KDAscy5aKShabiwyKSxnbj15blswXSxCbj15blsxXSxWbj0oMCxDLnVzZVN0YXRlKSghMSksTm49KDAscy5aKShWbiwyKSxmdD1OblswXSxldD1OblsxXSxKdD1mdW5jdGlvbigpe2V0KCEwKX0sd3Q9ZnVuY3Rpb24oKXtldCghMSl9LF90PXtnZXRLZXk6SmV9O2Z1bmN0aW9uIHhuKFBlKXtOdChmdW5jdGlvbihnZSl7dmFyIHZlO3R5cGVvZiBQZT09ImZ1bmN0aW9uIj92ZT1QZShnZSk6dmU9UGU7dmFyIEllPWZyKHZlKTtyZXR1cm4gSXQuY3VycmVudC5zY3JvbGxUb3A9SWUsSWV9KX12YXIgWW49KDAsQy51c2VSZWYpKHtzdGFydDowLGVuZDpidC5sZW5ndGh9KSxQbj0oMCxDLnVzZVJlZikoKSxMbj1MKGJ0LEplKSxlcj0oMCxzLlopKExuLDEpLFFuPWVyWzBdO1BuLmN1cnJlbnQ9UW47dmFyIHVyPUMudXNlTWVtbyhmdW5jdGlvbigpe2lmKCFHZSlyZXR1cm57c2Nyb2xsSGVpZ2h0OnZvaWQgMCxzdGFydDowLGVuZDpidC5sZW5ndGgtMSxvZmZzZXQ6dm9pZCAwfTtpZighemUpe3ZhciBQZTtyZXR1cm57c2Nyb2xsSGVpZ2h0OigoUGU9VHQuY3VycmVudCk9PT1udWxsfHxQZT09PXZvaWQgMD92b2lkIDA6UGUub2Zmc2V0SGVpZ2h0KXx8MCxzdGFydDowLGVuZDpidC5sZW5ndGgtMSxvZmZzZXQ6dm9pZCAwfX1mb3IodmFyIGdlPTAsdmUsSWUseGUsYXQ9YnQubGVuZ3RoLGR0PTA7ZHQ8YXQ7ZHQrPTEpe3ZhciBFdD1idFtkdF0sSHQ9SmUoRXQpLGp0PWN0LmdldChIdCksRnQ9Z2UrKGp0PT09dm9pZCAwP046anQpO0Z0Pj1vbiYmdmU9PT12b2lkIDAmJih2ZT1kdCxJZT1nZSksRnQ+b24rVSYmeGU9PT12b2lkIDAmJih4ZT1kdCksZ2U9RnR9cmV0dXJuIHZlPT09dm9pZCAwJiYodmU9MCxJZT0wLHhlPU1hdGguY2VpbChVL04pKSx4ZT09PXZvaWQgMCYmKHhlPWJ0Lmxlbmd0aC0xKSx4ZT1NYXRoLm1pbih4ZSsxLGJ0Lmxlbmd0aC0xKSx7c2Nyb2xsSGVpZ2h0OmdlLHN0YXJ0OnZlLGVuZDp4ZSxvZmZzZXQ6SWV9fSxbemUsR2Usb24sYnQsT2UsVV0pLGlyPXVyLnNjcm9sbEhlaWdodCx2bj11ci5zdGFydCxjcj11ci5lbmQsV249dXIub2Zmc2V0O1luLmN1cnJlbnQuc3RhcnQ9dm4sWW4uY3VycmVudC5lbmQ9Y3IsQy51c2VMYXlvdXRFZmZlY3QoZnVuY3Rpb24oKXt2YXIgUGU9Y3QuZ2V0UmVjb3JkKCk7aWYoUGUuc2l6ZT09PTEpe3ZhciBnZT1BcnJheS5mcm9tKFBlKVswXSx2ZT1idFt2bl07aWYodmUpe3ZhciBJZT1KZSh2ZSk7aWYoSWU9PT1nZSl7dmFyIHhlPWN0LmdldChnZSksYXQ9eGUtTjt4bihmdW5jdGlvbihkdCl7cmV0dXJuIGR0K2F0fSl9fX1jdC5yZXNldFJlY29yZCgpfSxbaXJdKTt2YXIgd249Qy51c2VTdGF0ZSh7d2lkdGg6MCxoZWlnaHQ6VX0pLEN0PSgwLHMuWikod24sMiksWnQ9Q3RbMF0sYW49Q3RbMV0sRHQ9ZnVuY3Rpb24oZ2Upe2FuKHt3aWR0aDpnZS5vZmZzZXRXaWR0aCxoZWlnaHQ6Z2Uub2Zmc2V0SGVpZ2h0fSl9LGt0PSgwLEMudXNlUmVmKSgpLHRuPSgwLEMudXNlUmVmKSgpLG1uPUMudXNlTWVtbyhmdW5jdGlvbigpe3JldHVybiBFZShadC53aWR0aCxMZSl9LFtadC53aWR0aCxMZV0pLEtuPUMudXNlTWVtbyhmdW5jdGlvbigpe3JldHVybiBFZShadC5oZWlnaHQsaXIpfSxbWnQuaGVpZ2h0LGlyXSksSm49aXItVSxYbj0oMCxDLnVzZVJlZikoSm4pO1huLmN1cnJlbnQ9Sm47ZnVuY3Rpb24gZnIoUGUpe3ZhciBnZT1QZTtyZXR1cm4gTnVtYmVyLmlzTmFOKFhuLmN1cnJlbnQpfHwoZ2U9TWF0aC5taW4oZ2UsWG4uY3VycmVudCkpLGdlPU1hdGgubWF4KGdlLDApLGdlfXZhciBycj1vbjw9MCxocj1vbj49Sm4sRm49Z248PTAsYXI9Z24+PUxlLGxyPUcocnIsaHIsRm4sYXIpLCRuPWZ1bmN0aW9uKCl7cmV0dXJue3g6UWU/LWduOmduLHk6b259fSxzcj0oMCxDLnVzZVJlZikoJG4oKSksRnI9KDAsZC56WCkoZnVuY3Rpb24oUGUpe2lmKGtlKXt2YXIgZ2U9KDAsdC5aKSgoMCx0LlopKHt9LCRuKCkpLFBlKTsoc3IuY3VycmVudC54IT09Z2UueHx8c3IuY3VycmVudC55IT09Z2UueSkmJihrZShnZSksc3IuY3VycmVudD1nZSl9fSk7ZnVuY3Rpb24gWmUoUGUsZ2Upe3ZhciB2ZT1QZTtnZT8oKDAsZy5mbHVzaFN5bmMpKGZ1bmN0aW9uKCl7Qm4odmUpfSksRnIoKSk6eG4odmUpfWZ1bmN0aW9uIEhlKFBlKXt2YXIgZ2U9UGUuY3VycmVudFRhcmdldC5zY3JvbGxUb3A7Z2UhPT1vbiYmeG4oZ2UpLCRlPT1udWxsfHwkZShQZSksRnIoKX12YXIgbnQ9ZnVuY3Rpb24oZ2Upe3ZhciB2ZT1nZSxJZT1MZT9MZS1adC53aWR0aDowO3JldHVybiB2ZT1NYXRoLm1heCh2ZSwwKSx2ZT1NYXRoLm1pbih2ZSxJZSksdmV9LHJ0PSgwLGQuelgpKGZ1bmN0aW9uKFBlLGdlKXtnZT8oKDAsZy5mbHVzaFN5bmMpKGZ1bmN0aW9uKCl7Qm4oZnVuY3Rpb24odmUpe3ZhciBJZT12ZSsoUWU/LVBlOlBlKTtyZXR1cm4gbnQoSWUpfSl9KSxGcigpKTp4bihmdW5jdGlvbih2ZSl7dmFyIEllPXZlK1BlO3JldHVybiBJZX0pfSksdnQ9WShHZSxycixocixGbixhciwhIUxlLHJ0KSxWdD0oMCxzLlopKHZ0LDIpLGVuPVZ0WzBdLFJuPVZ0WzFdO0QoR2UsSXQsZnVuY3Rpb24oUGUsZ2UsdmUsSWUpe3ZhciB4ZT1JZTtyZXR1cm4gbHIoUGUsZ2UsdmUpPyExOiF4ZXx8IXhlLl92aXJ0dWFsSGFuZGxlZD8oeGUmJih4ZS5fdmlydHVhbEhhbmRsZWQ9ITApLGVuKHtwcmV2ZW50RGVmYXVsdDpmdW5jdGlvbigpe30sZGVsdGFYOlBlP2dlOjAsZGVsdGFZOlBlPzA6Z2V9KSwhMCk6ITF9KSxQKHplLEl0LGZ1bmN0aW9uKFBlKXt4bihmdW5jdGlvbihnZSl7cmV0dXJuIGdlK1BlfSl9KSwoMCxtLlopKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gUGUodmUpe3ZhciBJZT1yciYmdmUuZGV0YWlsPDAseGU9aHImJnZlLmRldGFpbD4wO0dlJiYhSWUmJiF4ZSYmdmUucHJldmVudERlZmF1bHQoKX12YXIgZ2U9SXQuY3VycmVudDtyZXR1cm4gZ2UuYWRkRXZlbnRMaXN0ZW5lcigid2hlZWwiLGVuLHtwYXNzaXZlOiExfSksZ2UuYWRkRXZlbnRMaXN0ZW5lcigiRE9NTW91c2VTY3JvbGwiLFJuLHtwYXNzaXZlOiEwfSksZ2UuYWRkRXZlbnRMaXN0ZW5lcigiTW96TW91c2VQaXhlbFNjcm9sbCIsUGUse3Bhc3NpdmU6ITF9KSxmdW5jdGlvbigpe2dlLnJlbW92ZUV2ZW50TGlzdGVuZXIoIndoZWVsIixlbiksZ2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigiRE9NTW91c2VTY3JvbGwiLFJuKSxnZS5yZW1vdmVFdmVudExpc3RlbmVyKCJNb3pNb3VzZVBpeGVsU2Nyb2xsIixQZSl9fSxbR2UscnIsaHJdKSwoMCxtLlopKGZ1bmN0aW9uKCl7aWYoTGUpe3ZhciBQZT1udChnbik7Qm4oUGUpLEZyKHt4OlBlfSl9fSxbWnQud2lkdGgsTGVdKTt2YXIgam49ZnVuY3Rpb24oKXt2YXIgZ2UsdmU7KGdlPWt0LmN1cnJlbnQpPT09bnVsbHx8Z2U9PT12b2lkIDB8fGdlLmRlbGF5SGlkZGVuKCksKHZlPXRuLmN1cnJlbnQpPT09bnVsbHx8dmU9PT12b2lkIDB8fHZlLmRlbGF5SGlkZGVuKCl9LGJuPXNlKEl0LGJ0LGN0LE4sSmUsZnVuY3Rpb24oKXtyZXR1cm4gU3QoITApfSx4bixqbik7Qy51c2VJbXBlcmF0aXZlSGFuZGxlKHEsZnVuY3Rpb24oKXtyZXR1cm57bmF0aXZlRWxlbWVudDpYdC5jdXJyZW50LGdldFNjcm9sbEluZm86JG4sc2Nyb2xsVG86ZnVuY3Rpb24oZ2Upe2Z1bmN0aW9uIHZlKEllKXtyZXR1cm4gSWUmJigwLG4uWikoSWUpPT09Im9iamVjdCImJigibGVmdCJpbiBJZXx8InRvcCJpbiBJZSl9dmUoZ2UpPyhnZS5sZWZ0IT09dm9pZCAwJiZCbihudChnZS5sZWZ0KSksYm4oZ2UudG9wKSk6Ym4oZ2UpfX19KSwoMCxtLlopKGZ1bmN0aW9uKCl7aWYoQWUpe3ZhciBQZT1idC5zbGljZSh2bixjcisxKTtBZShQZSxidCl9fSxbdm4sY3IsYnRdKTt2YXIgSG49ZWUoYnQsSmUsY3QsTiksR3Q9bXQ9PW51bGw/dm9pZCAwOm10KHtzdGFydDp2bixlbmQ6Y3IsdmlydHVhbDp6ZSxvZmZzZXRYOmduLG9mZnNldFk6V24scnRsOlFlLGdldFNpemU6SG59KSxTbj1PKGJ0LHZuLGNyLExlLGduLFdlLHBlLF90KSxPbj1udWxsO1UmJihPbj0oMCx0LlopKCgwLGkuWikoe30sdWU/ImhlaWdodCI6Im1heEhlaWdodCIsVSksWWUpLEdlJiYoT24ub3ZlcmZsb3dZPSJoaWRkZW4iLExlJiYoT24ub3ZlcmZsb3dYPSJoaWRkZW4iKSxmdCYmKE9uLnBvaW50ZXJFdmVudHM9Im5vbmUiKSkpO3ZhciBfbj17fTtyZXR1cm4gUWUmJihfbi5kaXI9InJ0bCIpLEMuY3JlYXRlRWxlbWVudCgiZGl2IiwoMCxyLlopKHtyZWY6WHQsc3R5bGU6KDAsdC5aKSgoMCx0LlopKHt9LCQpLHt9LHtwb3NpdGlvbjoicmVsYXRpdmUifSksY2xhc3NOYW1lOnB0fSxfbixYZSksQy5jcmVhdGVFbGVtZW50KGguWix7b25SZXNpemU6RHR9LEMuY3JlYXRlRWxlbWVudChiZSx7Y2xhc3NOYW1lOiIiLmNvbmNhdChNLCItaG9sZGVyIiksc3R5bGU6T24scmVmOkl0LG9uU2Nyb2xsOkhlLG9uTW91c2VFbnRlcjpqbn0sQy5jcmVhdGVFbGVtZW50KEUse3ByZWZpeENsczpNLGhlaWdodDppcixvZmZzZXRYOmduLG9mZnNldFk6V24sc2Nyb2xsV2lkdGg6TGUsb25Jbm5lclJlc2l6ZTpTdCxyZWY6VHQsaW5uZXJQcm9wczp0dCxydGw6UWUsZXh0cmE6R3R9LFNuKSkpLHplJiZpcj5VJiZDLmNyZWF0ZUVsZW1lbnQob2Use3JlZjprdCxwcmVmaXhDbHM6TSxzY3JvbGxPZmZzZXQ6b24sc2Nyb2xsUmFuZ2U6aXIscnRsOlFlLG9uU2Nyb2xsOlplLG9uU3RhcnRNb3ZlOkp0LG9uU3RvcE1vdmU6d3Qsc3BpblNpemU6S24sY29udGFpbmVyU2l6ZTpadC5oZWlnaHQsc3R5bGU6dXQ9PW51bGw/dm9pZCAwOnV0LnZlcnRpY2FsU2Nyb2xsQmFyLHRodW1iU3R5bGU6dXQ9PW51bGw/dm9pZCAwOnV0LnZlcnRpY2FsU2Nyb2xsQmFyVGh1bWIsc2hvd1Njcm9sbEJhcjpOZX0pLHplJiZMZT5adC53aWR0aCYmQy5jcmVhdGVFbGVtZW50KG9lLHtyZWY6dG4scHJlZml4Q2xzOk0sc2Nyb2xsT2Zmc2V0OmduLHNjcm9sbFJhbmdlOkxlLHJ0bDpRZSxvblNjcm9sbDpaZSxvblN0YXJ0TW92ZTpKdCxvblN0b3BNb3ZlOnd0LHNwaW5TaXplOm1uLGNvbnRhaW5lclNpemU6WnQud2lkdGgsaG9yaXpvbnRhbDohMCxzdHlsZTp1dD09bnVsbD92b2lkIDA6dXQuaG9yaXpvbnRhbFNjcm9sbEJhcix0aHVtYlN0eWxlOnV0PT1udWxsP3ZvaWQgMDp1dC5ob3Jpem9udGFsU2Nyb2xsQmFyVGh1bWIsc2hvd1Njcm9sbEJhcjpOZX0pKX12YXIgcWU9Qy5mb3J3YXJkUmVmKG90KTtxZS5kaXNwbGF5TmFtZT0iTGlzdCI7dmFyIF9lPXFlLEZlPV9lfSw2NDQ0ODpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNjcyOTQpLG49ZSg2Mzg0MCk7ZnVuY3Rpb24gdChvKXtmb3IodmFyIGw9Imh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9lcnJvci1kZWNvZGVyLmh0bWw/aW52YXJpYW50PSIrbyxiPTE7Yjxhcmd1bWVudHMubGVuZ3RoO2IrKylsKz0iJmFyZ3NbXT0iK2VuY29kZVVSSUNvbXBvbmVudChhcmd1bWVudHNbYl0pO3JldHVybiJNaW5pZmllZCBSZWFjdCBlcnJvciAjIitvKyI7IHZpc2l0ICIrbCsiIGZvciB0aGUgZnVsbCBtZXNzYWdlIG9yIHVzZSB0aGUgbm9uLW1pbmlmaWVkIGRldiBlbnZpcm9ubWVudCBmb3IgZnVsbCBlcnJvcnMgYW5kIGFkZGl0aW9uYWwgaGVscGZ1bCB3YXJuaW5ncy4ifXZhciBpPW5ldyBTZXQscz17fTtmdW5jdGlvbiBhKG8sbCl7dShvLGwpLHUobysiQ2FwdHVyZSIsbCl9ZnVuY3Rpb24gdShvLGwpe2ZvcihzW29dPWwsbz0wO288bC5sZW5ndGg7bysrKWkuYWRkKGxbb10pfXZhciBjPSEodHlwZW9mIHdpbmRvdz09InVuZGVmaW5lZCJ8fHR5cGVvZiB3aW5kb3cuZG9jdW1lbnQ9PSJ1bmRlZmluZWQifHx0eXBlb2Ygd2luZG93LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQ9PSJ1bmRlZmluZWQiKSxoPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksZD0vXls6QS1aX2Etelx1MDBDMC1cdTAwRDZcdTAwRDgtXHUwMEY2XHUwMEY4LVx1MDJGRlx1MDM3MC1cdTAzN0RcdTAzN0YtXHUxRkZGXHUyMDBDLVx1MjAwRFx1MjA3MC1cdTIxOEZcdTJDMDAtXHUyRkVGXHUzMDAxLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkZEXVs6QS1aX2Etelx1MDBDMC1cdTAwRDZcdTAwRDgtXHUwMEY2XHUwMEY4LVx1MDJGRlx1MDM3MC1cdTAzN0RcdTAzN0YtXHUxRkZGXHUyMDBDLVx1MjAwRFx1MjA3MC1cdTIxOEZcdTJDMDAtXHUyRkVGXHUzMDAxLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkZEXC0uMC05XHUwMEI3XHUwMzAwLVx1MDM2Rlx1MjAzRi1cdTIwNDBdKiQvLG09e30sQz17fTtmdW5jdGlvbiBnKG8pe3JldHVybiBoLmNhbGwoQyxvKT8hMDpoLmNhbGwobSxvKT8hMTpkLnRlc3Qobyk/Q1tvXT0hMDoobVtvXT0hMCwhMSl9ZnVuY3Rpb24gdyhvLGwsYixGKXtpZihiIT09bnVsbCYmYi50eXBlPT09MClyZXR1cm4hMTtzd2l0Y2godHlwZW9mIGwpe2Nhc2UiZnVuY3Rpb24iOmNhc2Uic3ltYm9sIjpyZXR1cm4hMDtjYXNlImJvb2xlYW4iOnJldHVybiBGPyExOmIhPT1udWxsPyFiLmFjY2VwdHNCb29sZWFuczoobz1vLnRvTG93ZXJDYXNlKCkuc2xpY2UoMCw1KSxvIT09ImRhdGEtIiYmbyE9PSJhcmlhLSIpO2RlZmF1bHQ6cmV0dXJuITF9fWZ1bmN0aW9uIEUobyxsLGIsRil7aWYobD09PW51bGx8fHR5cGVvZiBsPT0idW5kZWZpbmVkInx8dyhvLGwsYixGKSlyZXR1cm4hMDtpZihGKXJldHVybiExO2lmKGIhPT1udWxsKXN3aXRjaChiLnR5cGUpe2Nhc2UgMzpyZXR1cm4hbDtjYXNlIDQ6cmV0dXJuIGw9PT0hMTtjYXNlIDU6cmV0dXJuIGlzTmFOKGwpO2Nhc2UgNjpyZXR1cm4gaXNOYU4obCl8fDE+bH1yZXR1cm4hMX1mdW5jdGlvbiB4KG8sbCxiLEYsWCxoZSxVZSl7dGhpcy5hY2NlcHRzQm9vbGVhbnM9bD09PTJ8fGw9PT0zfHxsPT09NCx0aGlzLmF0dHJpYnV0ZU5hbWU9Rix0aGlzLmF0dHJpYnV0ZU5hbWVzcGFjZT1YLHRoaXMubXVzdFVzZVByb3BlcnR5PWIsdGhpcy5wcm9wZXJ0eU5hbWU9byx0aGlzLnR5cGU9bCx0aGlzLnNhbml0aXplVVJMPWhlLHRoaXMucmVtb3ZlRW1wdHlTdHJpbmc9VWV9dmFyIE89e307ImNoaWxkcmVuIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIGRlZmF1bHRWYWx1ZSBkZWZhdWx0Q2hlY2tlZCBpbm5lckhUTUwgc3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nIHN1cHByZXNzSHlkcmF0aW9uV2FybmluZyBzdHlsZSIuc3BsaXQoIiAiKS5mb3JFYWNoKGZ1bmN0aW9uKG8pe09bb109bmV3IHgobywwLCExLG8sbnVsbCwhMSwhMSl9KSxbWyJhY2NlcHRDaGFyc2V0IiwiYWNjZXB0LWNoYXJzZXQiXSxbImNsYXNzTmFtZSIsImNsYXNzIl0sWyJodG1sRm9yIiwiZm9yIl0sWyJodHRwRXF1aXYiLCJodHRwLWVxdWl2Il1dLmZvckVhY2goZnVuY3Rpb24obyl7dmFyIGw9b1swXTtPW2xdPW5ldyB4KGwsMSwhMSxvWzFdLG51bGwsITEsITEpfSksWyJjb250ZW50RWRpdGFibGUiLCJkcmFnZ2FibGUiLCJzcGVsbENoZWNrIiwidmFsdWUiXS5mb3JFYWNoKGZ1bmN0aW9uKG8pe09bb109bmV3IHgobywyLCExLG8udG9Mb3dlckNhc2UoKSxudWxsLCExLCExKX0pLFsiYXV0b1JldmVyc2UiLCJleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkIiwiZm9jdXNhYmxlIiwicHJlc2VydmVBbHBoYSJdLmZvckVhY2goZnVuY3Rpb24obyl7T1tvXT1uZXcgeChvLDIsITEsbyxudWxsLCExLCExKX0pLCJhbGxvd0Z1bGxTY3JlZW4gYXN5bmMgYXV0b0ZvY3VzIGF1dG9QbGF5IGNvbnRyb2xzIGRlZmF1bHQgZGVmZXIgZGlzYWJsZWQgZGlzYWJsZVBpY3R1cmVJblBpY3R1cmUgZGlzYWJsZVJlbW90ZVBsYXliYWNrIGZvcm1Ob1ZhbGlkYXRlIGhpZGRlbiBsb29wIG5vTW9kdWxlIG5vVmFsaWRhdGUgb3BlbiBwbGF5c0lubGluZSByZWFkT25seSByZXF1aXJlZCByZXZlcnNlZCBzY29wZWQgc2VhbWxlc3MgaXRlbVNjb3BlIi5zcGxpdCgiICIpLmZvckVhY2goZnVuY3Rpb24obyl7T1tvXT1uZXcgeChvLDMsITEsby50b0xvd2VyQ2FzZSgpLG51bGwsITEsITEpfSksWyJjaGVja2VkIiwibXVsdGlwbGUiLCJtdXRlZCIsInNlbGVjdGVkIl0uZm9yRWFjaChmdW5jdGlvbihvKXtPW29dPW5ldyB4KG8sMywhMCxvLG51bGwsITEsITEpfSksWyJjYXB0dXJlIiwiZG93bmxvYWQiXS5mb3JFYWNoKGZ1bmN0aW9uKG8pe09bb109bmV3IHgobyw0LCExLG8sbnVsbCwhMSwhMSl9KSxbImNvbHMiLCJyb3dzIiwic2l6ZSIsInNwYW4iXS5mb3JFYWNoKGZ1bmN0aW9uKG8pe09bb109bmV3IHgobyw2LCExLG8sbnVsbCwhMSwhMSl9KSxbInJvd1NwYW4iLCJzdGFydCJdLmZvckVhY2goZnVuY3Rpb24obyl7T1tvXT1uZXcgeChvLDUsITEsby50b0xvd2VyQ2FzZSgpLG51bGwsITEsITEpfSk7dmFyIFQ9L1tcLTpdKFthLXpdKS9nO2Z1bmN0aW9uIFMobyl7cmV0dXJuIG9bMV0udG9VcHBlckNhc2UoKX0iYWNjZW50LWhlaWdodCBhbGlnbm1lbnQtYmFzZWxpbmUgYXJhYmljLWZvcm0gYmFzZWxpbmUtc2hpZnQgY2FwLWhlaWdodCBjbGlwLXBhdGggY2xpcC1ydWxlIGNvbG9yLWludGVycG9sYXRpb24gY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzIGNvbG9yLXByb2ZpbGUgY29sb3ItcmVuZGVyaW5nIGRvbWluYW50LWJhc2VsaW5lIGVuYWJsZS1iYWNrZ3JvdW5kIGZpbGwtb3BhY2l0eSBmaWxsLXJ1bGUgZmxvb2QtY29sb3IgZmxvb2Qtb3BhY2l0eSBmb250LWZhbWlseSBmb250LXNpemUgZm9udC1zaXplLWFkanVzdCBmb250LXN0cmV0Y2ggZm9udC1zdHlsZSBmb250LXZhcmlhbnQgZm9udC13ZWlnaHQgZ2x5cGgtbmFtZSBnbHlwaC1vcmllbnRhdGlvbi1ob3Jpem9udGFsIGdseXBoLW9yaWVudGF0aW9uLXZlcnRpY2FsIGhvcml6LWFkdi14IGhvcml6LW9yaWdpbi14IGltYWdlLXJlbmRlcmluZyBsZXR0ZXItc3BhY2luZyBsaWdodGluZy1jb2xvciBtYXJrZXItZW5kIG1hcmtlci1taWQgbWFya2VyLXN0YXJ0IG92ZXJsaW5lLXBvc2l0aW9uIG92ZXJsaW5lLXRoaWNrbmVzcyBwYWludC1vcmRlciBwYW5vc2UtMSBwb2ludGVyLWV2ZW50cyByZW5kZXJpbmctaW50ZW50IHNoYXBlLXJlbmRlcmluZyBzdG9wLWNvbG9yIHN0b3Atb3BhY2l0eSBzdHJpa2V0aHJvdWdoLXBvc2l0aW9uIHN0cmlrZXRocm91Z2gtdGhpY2tuZXNzIHN0cm9rZS1kYXNoYXJyYXkgc3Ryb2tlLWRhc2hvZmZzZXQgc3Ryb2tlLWxpbmVjYXAgc3Ryb2tlLWxpbmVqb2luIHN0cm9rZS1taXRlcmxpbWl0IHN0cm9rZS1vcGFjaXR5IHN0cm9rZS13aWR0aCB0ZXh0LWFuY2hvciB0ZXh0LWRlY29yYXRpb24gdGV4dC1yZW5kZXJpbmcgdW5kZXJsaW5lLXBvc2l0aW9uIHVuZGVybGluZS10aGlja25lc3MgdW5pY29kZS1iaWRpIHVuaWNvZGUtcmFuZ2UgdW5pdHMtcGVyLWVtIHYtYWxwaGFiZXRpYyB2LWhhbmdpbmcgdi1pZGVvZ3JhcGhpYyB2LW1hdGhlbWF0aWNhbCB2ZWN0b3ItZWZmZWN0IHZlcnQtYWR2LXkgdmVydC1vcmlnaW4teCB2ZXJ0LW9yaWdpbi15IHdvcmQtc3BhY2luZyB3cml0aW5nLW1vZGUgeG1sbnM6eGxpbmsgeC1oZWlnaHQiLnNwbGl0KCIgIikuZm9yRWFjaChmdW5jdGlvbihvKXt2YXIgbD1vLnJlcGxhY2UoVCxTKTtPW2xdPW5ldyB4KGwsMSwhMSxvLG51bGwsITEsITEpfSksInhsaW5rOmFjdHVhdGUgeGxpbms6YXJjcm9sZSB4bGluazpyb2xlIHhsaW5rOnNob3cgeGxpbms6dGl0bGUgeGxpbms6dHlwZSIuc3BsaXQoIiAiKS5mb3JFYWNoKGZ1bmN0aW9uKG8pe3ZhciBsPW8ucmVwbGFjZShULFMpO09bbF09bmV3IHgobCwxLCExLG8sImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLCExLCExKX0pLFsieG1sOmJhc2UiLCJ4bWw6bGFuZyIsInhtbDpzcGFjZSJdLmZvckVhY2goZnVuY3Rpb24obyl7dmFyIGw9by5yZXBsYWNlKFQsUyk7T1tsXT1uZXcgeChsLDEsITEsbywiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIiwhMSwhMSl9KSxbInRhYkluZGV4IiwiY3Jvc3NPcmlnaW4iXS5mb3JFYWNoKGZ1bmN0aW9uKG8pe09bb109bmV3IHgobywxLCExLG8udG9Mb3dlckNhc2UoKSxudWxsLCExLCExKX0pLE8ueGxpbmtIcmVmPW5ldyB4KCJ4bGlua0hyZWYiLDEsITEsInhsaW5rOmhyZWYiLCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiwhMCwhMSksWyJzcmMiLCJocmVmIiwiYWN0aW9uIiwiZm9ybUFjdGlvbiJdLmZvckVhY2goZnVuY3Rpb24obyl7T1tvXT1uZXcgeChvLDEsITEsby50b0xvd2VyQ2FzZSgpLG51bGwsITAsITApfSk7ZnVuY3Rpb24gTChvLGwsYixGKXt2YXIgWD1PLmhhc093blByb3BlcnR5KGwpP09bbF06bnVsbDsoWCE9PW51bGw/WC50eXBlIT09MDpGfHwhKDI8bC5sZW5ndGgpfHxsWzBdIT09Im8iJiZsWzBdIT09Ik8ifHxsWzFdIT09Im4iJiZsWzFdIT09Ik4iKSYmKEUobCxiLFgsRikmJihiPW51bGwpLEZ8fFg9PT1udWxsP2cobCkmJihiPT09bnVsbD9vLnJlbW92ZUF0dHJpYnV0ZShsKTpvLnNldEF0dHJpYnV0ZShsLCIiK2IpKTpYLm11c3RVc2VQcm9wZXJ0eT9vW1gucHJvcGVydHlOYW1lXT1iPT09bnVsbD9YLnR5cGU9PT0zPyExOiIiOmI6KGw9WC5hdHRyaWJ1dGVOYW1lLEY9WC5hdHRyaWJ1dGVOYW1lc3BhY2UsYj09PW51bGw/by5yZW1vdmVBdHRyaWJ1dGUobCk6KFg9WC50eXBlLGI9WD09PTN8fFg9PT00JiZiPT09ITA/IiI6IiIrYixGP28uc2V0QXR0cmlidXRlTlMoRixsLGIpOm8uc2V0QXR0cmlidXRlKGwsYikpKSl9dmFyIEk9ci5fX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRCxSPVN5bWJvbC5mb3IoInJlYWN0LmVsZW1lbnQiKSx6PVN5bWJvbC5mb3IoInJlYWN0LnBvcnRhbCIpLEc9U3ltYm9sLmZvcigicmVhY3QuZnJhZ21lbnQiKSxZPVN5bWJvbC5mb3IoInJlYWN0LnN0cmljdF9tb2RlIiksZWU9U3ltYm9sLmZvcigicmVhY3QucHJvZmlsZXIiKSxKPVN5bWJvbC5mb3IoInJlYWN0LnByb3ZpZGVyIiksbWU9U3ltYm9sLmZvcigicmVhY3QuY29udGV4dCIpLHRlPVN5bWJvbC5mb3IoInJlYWN0LmZvcndhcmRfcmVmIiksbGU9U3ltYm9sLmZvcigicmVhY3Quc3VzcGVuc2UiKSxjZT1TeW1ib2wuZm9yKCJyZWFjdC5zdXNwZW5zZV9saXN0IiksVz1TeW1ib2wuZm9yKCJyZWFjdC5tZW1vIiksaj1TeW1ib2wuZm9yKCJyZWFjdC5sYXp5Iik7U3ltYm9sLmZvcigicmVhY3Quc2NvcGUiKSxTeW1ib2wuZm9yKCJyZWFjdC5kZWJ1Z190cmFjZV9tb2RlIik7dmFyIEQ9U3ltYm9sLmZvcigicmVhY3Qub2Zmc2NyZWVuIik7U3ltYm9sLmZvcigicmVhY3QubGVnYWN5X2hpZGRlbiIpLFN5bWJvbC5mb3IoInJlYWN0LmNhY2hlIiksU3ltYm9sLmZvcigicmVhY3QudHJhY2luZ19tYXJrZXIiKTt2YXIgVj1TeW1ib2wuaXRlcmF0b3I7ZnVuY3Rpb24gWihvKXtyZXR1cm4gbz09PW51bGx8fHR5cGVvZiBvIT0ib2JqZWN0Ij9udWxsOihvPVYmJm9bVl18fG9bIkBAaXRlcmF0b3IiXSx0eXBlb2Ygbz09ImZ1bmN0aW9uIj9vOm51bGwpfXZhciBQPU9iamVjdC5hc3NpZ24sSztmdW5jdGlvbiBzZShvKXtpZihLPT09dm9pZCAwKXRyeXt0aHJvdyBFcnJvcigpfWNhdGNoKGIpe3ZhciBsPWIuc3RhY2sudHJpbSgpLm1hdGNoKC9cbiggKihhdCApPykvKTtLPWwmJmxbMV18fCIifXJldHVybmAKK2ArSytvfXZhciBuZT0hMTtmdW5jdGlvbiBvZShvLGwpe2lmKCFvfHxuZSlyZXR1cm4iIjtuZT0hMDt2YXIgYj1FcnJvci5wcmVwYXJlU3RhY2tUcmFjZTtFcnJvci5wcmVwYXJlU3RhY2tUcmFjZT12b2lkIDA7dHJ5e2lmKGwpaWYobD1mdW5jdGlvbigpe3Rocm93IEVycm9yKCl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShsLnByb3RvdHlwZSwicHJvcHMiLHtzZXQ6ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcigpfX0pLHR5cGVvZiBSZWZsZWN0PT0ib2JqZWN0IiYmUmVmbGVjdC5jb25zdHJ1Y3Qpe3RyeXtSZWZsZWN0LmNvbnN0cnVjdChsLFtdKX1jYXRjaChJbil7dmFyIEY9SW59UmVmbGVjdC5jb25zdHJ1Y3QobyxbXSxsKX1lbHNle3RyeXtsLmNhbGwoKX1jYXRjaChJbil7Rj1Jbn1vLmNhbGwobC5wcm90b3R5cGUpfWVsc2V7dHJ5e3Rocm93IEVycm9yKCl9Y2F0Y2goSW4pe0Y9SW59bygpfX1jYXRjaChJbil7aWYoSW4mJkYmJnR5cGVvZiBJbi5zdGFjaz09InN0cmluZyIpe2Zvcih2YXIgWD1Jbi5zdGFjay5zcGxpdChgCitgKSxoZT1GLnN0YWNrLnNwbGl0KGAKK2ApLFVlPVgubGVuZ3RoLTEseHQ9aGUubGVuZ3RoLTE7MTw9VWUmJjA8PXh0JiZYW1VlXSE9PWhlW3h0XTspeHQtLTtmb3IoOzE8PVVlJiYwPD14dDtVZS0tLHh0LS0paWYoWFtVZV0hPT1oZVt4dF0pe2lmKFVlIT09MXx8eHQhPT0xKWRvIGlmKFVlLS0seHQtLSwwPnh0fHxYW1VlXSE9PWhlW3h0XSl7dmFyICR0PWAKK2ArWFtVZV0ucmVwbGFjZSgiIGF0IG5ldyAiLCIgYXQgIik7cmV0dXJuIG8uZGlzcGxheU5hbWUmJiR0LmluY2x1ZGVzKCI8YW5vbnltb3VzPiIpJiYoJHQ9JHQucmVwbGFjZSgiPGFub255bW91cz4iLG8uZGlzcGxheU5hbWUpKSwkdH13aGlsZSgxPD1VZSYmMDw9eHQpO2JyZWFrfX19ZmluYWxseXtuZT0hMSxFcnJvci5wcmVwYXJlU3RhY2tUcmFjZT1ifXJldHVybihvPW8/by5kaXNwbGF5TmFtZXx8by5uYW1lOiIiKT9zZShvKToiIn1mdW5jdGlvbiBmZShvKXtzd2l0Y2goby50YWcpe2Nhc2UgNTpyZXR1cm4gc2Uoby50eXBlKTtjYXNlIDE2OnJldHVybiBzZSgiTGF6eSIpO2Nhc2UgMTM6cmV0dXJuIHNlKCJTdXNwZW5zZSIpO2Nhc2UgMTk6cmV0dXJuIHNlKCJTdXNwZW5zZUxpc3QiKTtjYXNlIDA6Y2FzZSAyOmNhc2UgMTU6cmV0dXJuIG89b2Uoby50eXBlLCExKSxvO2Nhc2UgMTE6cmV0dXJuIG89b2Uoby50eXBlLnJlbmRlciwhMSksbztjYXNlIDE6cmV0dXJuIG89b2Uoby50eXBlLCEwKSxvO2RlZmF1bHQ6cmV0dXJuIiJ9fWZ1bmN0aW9uIEVlKG8pe2lmKG89PW51bGwpcmV0dXJuIG51bGw7aWYodHlwZW9mIG89PSJmdW5jdGlvbiIpcmV0dXJuIG8uZGlzcGxheU5hbWV8fG8ubmFtZXx8bnVsbDtpZih0eXBlb2Ygbz09InN0cmluZyIpcmV0dXJuIG87c3dpdGNoKG8pe2Nhc2UgRzpyZXR1cm4iRnJhZ21lbnQiO2Nhc2UgejpyZXR1cm4iUG9ydGFsIjtjYXNlIGVlOnJldHVybiJQcm9maWxlciI7Y2FzZSBZOnJldHVybiJTdHJpY3RNb2RlIjtjYXNlIGxlOnJldHVybiJTdXNwZW5zZSI7Y2FzZSBjZTpyZXR1cm4iU3VzcGVuc2VMaXN0In1pZih0eXBlb2Ygbz09Im9iamVjdCIpc3dpdGNoKG8uJCR0eXBlb2Ype2Nhc2UgbWU6cmV0dXJuKG8uZGlzcGxheU5hbWV8fCJDb250ZXh0IikrIi5Db25zdW1lciI7Y2FzZSBKOnJldHVybihvLl9jb250ZXh0LmRpc3BsYXlOYW1lfHwiQ29udGV4dCIpKyIuUHJvdmlkZXIiO2Nhc2UgdGU6dmFyIGw9by5yZW5kZXI7cmV0dXJuIG89by5kaXNwbGF5TmFtZSxvfHwobz1sLmRpc3BsYXlOYW1lfHxsLm5hbWV8fCIiLG89byE9PSIiPyJGb3J3YXJkUmVmKCIrbysiKSI6IkZvcndhcmRSZWYiKSxvO2Nhc2UgVzpyZXR1cm4gbD1vLmRpc3BsYXlOYW1lfHxudWxsLGwhPT1udWxsP2w6RWUoby50eXBlKXx8Ik1lbW8iO2Nhc2UgajpsPW8uX3BheWxvYWQsbz1vLl9pbml0O3RyeXtyZXR1cm4gRWUobyhsKSl9Y2F0Y2goYil7fX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBSZShvKXt2YXIgbD1vLnR5cGU7c3dpdGNoKG8udGFnKXtjYXNlIDI0OnJldHVybiJDYWNoZSI7Y2FzZSA5OnJldHVybihsLmRpc3BsYXlOYW1lfHwiQ29udGV4dCIpKyIuQ29uc3VtZXIiO2Nhc2UgMTA6cmV0dXJuKGwuX2NvbnRleHQuZGlzcGxheU5hbWV8fCJDb250ZXh0IikrIi5Qcm92aWRlciI7Y2FzZSAxODpyZXR1cm4iRGVoeWRyYXRlZEZyYWdtZW50IjtjYXNlIDExOnJldHVybiBvPWwucmVuZGVyLG89by5kaXNwbGF5TmFtZXx8by5uYW1lfHwiIixsLmRpc3BsYXlOYW1lfHwobyE9PSIiPyJGb3J3YXJkUmVmKCIrbysiKSI6IkZvcndhcmRSZWYiKTtjYXNlIDc6cmV0dXJuIkZyYWdtZW50IjtjYXNlIDU6cmV0dXJuIGw7Y2FzZSA0OnJldHVybiJQb3J0YWwiO2Nhc2UgMzpyZXR1cm4iUm9vdCI7Y2FzZSA2OnJldHVybiJUZXh0IjtjYXNlIDE2OnJldHVybiBFZShsKTtjYXNlIDg6cmV0dXJuIGw9PT1ZPyJTdHJpY3RNb2RlIjoiTW9kZSI7Y2FzZSAyMjpyZXR1cm4iT2Zmc2NyZWVuIjtjYXNlIDEyOnJldHVybiJQcm9maWxlciI7Y2FzZSAyMTpyZXR1cm4iU2NvcGUiO2Nhc2UgMTM6cmV0dXJuIlN1c3BlbnNlIjtjYXNlIDE5OnJldHVybiJTdXNwZW5zZUxpc3QiO2Nhc2UgMjU6cmV0dXJuIlRyYWNpbmdNYXJrZXIiO2Nhc2UgMTpjYXNlIDA6Y2FzZSAxNzpjYXNlIDI6Y2FzZSAxNDpjYXNlIDE1OmlmKHR5cGVvZiBsPT0iZnVuY3Rpb24iKXJldHVybiBsLmRpc3BsYXlOYW1lfHxsLm5hbWV8fG51bGw7aWYodHlwZW9mIGw9PSJzdHJpbmciKXJldHVybiBsfXJldHVybiBudWxsfWZ1bmN0aW9uIEJlKG8pe3N3aXRjaCh0eXBlb2Ygbyl7Y2FzZSJib29sZWFuIjpjYXNlIm51bWJlciI6Y2FzZSJzdHJpbmciOmNhc2UidW5kZWZpbmVkIjpyZXR1cm4gbztjYXNlIm9iamVjdCI6cmV0dXJuIG87ZGVmYXVsdDpyZXR1cm4iIn19ZnVuY3Rpb24gWWUobyl7dmFyIGw9by50eXBlO3JldHVybihvPW8ubm9kZU5hbWUpJiZvLnRvTG93ZXJDYXNlKCk9PT0iaW5wdXQiJiYobD09PSJjaGVja2JveCJ8fGw9PT0icmFkaW8iKX1mdW5jdGlvbiBvdChvKXt2YXIgbD1ZZShvKT8iY2hlY2tlZCI6InZhbHVlIixiPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioby5jb25zdHJ1Y3Rvci5wcm90b3R5cGUsbCksRj0iIitvW2xdO2lmKCFvLmhhc093blByb3BlcnR5KGwpJiZ0eXBlb2YgYiE9InVuZGVmaW5lZCImJnR5cGVvZiBiLmdldD09ImZ1bmN0aW9uIiYmdHlwZW9mIGIuc2V0PT0iZnVuY3Rpb24iKXt2YXIgWD1iLmdldCxoZT1iLnNldDtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sbCx7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBYLmNhbGwodGhpcyl9LHNldDpmdW5jdGlvbihVZSl7Rj0iIitVZSxoZS5jYWxsKHRoaXMsVWUpfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLGwse2VudW1lcmFibGU6Yi5lbnVtZXJhYmxlfSkse2dldFZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIEZ9LHNldFZhbHVlOmZ1bmN0aW9uKFVlKXtGPSIiK1VlfSxzdG9wVHJhY2tpbmc6ZnVuY3Rpb24oKXtvLl92YWx1ZVRyYWNrZXI9bnVsbCxkZWxldGUgb1tsXX19fX1mdW5jdGlvbiBxZShvKXtvLl92YWx1ZVRyYWNrZXJ8fChvLl92YWx1ZVRyYWNrZXI9b3QobykpfWZ1bmN0aW9uIF9lKG8pe2lmKCFvKXJldHVybiExO3ZhciBsPW8uX3ZhbHVlVHJhY2tlcjtpZighbClyZXR1cm4hMDt2YXIgYj1sLmdldFZhbHVlKCksRj0iIjtyZXR1cm4gbyYmKEY9WWUobyk/by5jaGVja2VkPyJ0cnVlIjoiZmFsc2UiOm8udmFsdWUpLG89RixvIT09Yj8obC5zZXRWYWx1ZShvKSwhMCk6ITF9ZnVuY3Rpb24gRmUobyl7aWYobz1vfHwodHlwZW9mIGRvY3VtZW50IT0idW5kZWZpbmVkIj9kb2N1bWVudDp2b2lkIDApLHR5cGVvZiBvPT0idW5kZWZpbmVkIilyZXR1cm4gbnVsbDt0cnl7cmV0dXJuIG8uYWN0aXZlRWxlbWVudHx8by5ib2R5fWNhdGNoKGwpe3JldHVybiBvLmJvZHl9fWZ1bmN0aW9uIFNlKG8sbCl7dmFyIGI9bC5jaGVja2VkO3JldHVybiBQKHt9LGwse2RlZmF1bHRDaGVja2VkOnZvaWQgMCxkZWZhdWx0VmFsdWU6dm9pZCAwLHZhbHVlOnZvaWQgMCxjaGVja2VkOmIhPW51bGw/YjpvLl93cmFwcGVyU3RhdGUuaW5pdGlhbENoZWNrZWR9KX1mdW5jdGlvbiBxKG8sbCl7dmFyIGI9bC5kZWZhdWx0VmFsdWU9PW51bGw/IiI6bC5kZWZhdWx0VmFsdWUsRj1sLmNoZWNrZWQhPW51bGw/bC5jaGVja2VkOmwuZGVmYXVsdENoZWNrZWQ7Yj1CZShsLnZhbHVlIT1udWxsP2wudmFsdWU6Yiksby5fd3JhcHBlclN0YXRlPXtpbml0aWFsQ2hlY2tlZDpGLGluaXRpYWxWYWx1ZTpiLGNvbnRyb2xsZWQ6bC50eXBlPT09ImNoZWNrYm94Inx8bC50eXBlPT09InJhZGlvIj9sLmNoZWNrZWQhPW51bGw6bC52YWx1ZSE9bnVsbH19ZnVuY3Rpb24gayhvLGwpe2w9bC5jaGVja2VkLGwhPW51bGwmJkwobywiY2hlY2tlZCIsbCwhMSl9ZnVuY3Rpb24gTShvLGwpe2sobyxsKTt2YXIgYj1CZShsLnZhbHVlKSxGPWwudHlwZTtpZihiIT1udWxsKUY9PT0ibnVtYmVyIj8oYj09PTAmJm8udmFsdWU9PT0iInx8by52YWx1ZSE9YikmJihvLnZhbHVlPSIiK2IpOm8udmFsdWUhPT0iIitiJiYoby52YWx1ZT0iIitiKTtlbHNlIGlmKEY9PT0ic3VibWl0Inx8Rj09PSJyZXNldCIpe28ucmVtb3ZlQXR0cmlidXRlKCJ2YWx1ZSIpO3JldHVybn1sLmhhc093blByb3BlcnR5KCJ2YWx1ZSIpP1UobyxsLnR5cGUsYik6bC5oYXNPd25Qcm9wZXJ0eSgiZGVmYXVsdFZhbHVlIikmJlUobyxsLnR5cGUsQmUobC5kZWZhdWx0VmFsdWUpKSxsLmNoZWNrZWQ9PW51bGwmJmwuZGVmYXVsdENoZWNrZWQhPW51bGwmJihvLmRlZmF1bHRDaGVja2VkPSEhbC5kZWZhdWx0Q2hlY2tlZCl9ZnVuY3Rpb24gQShvLGwsYil7aWYobC5oYXNPd25Qcm9wZXJ0eSgidmFsdWUiKXx8bC5oYXNPd25Qcm9wZXJ0eSgiZGVmYXVsdFZhbHVlIikpe3ZhciBGPWwudHlwZTtpZighKEYhPT0ic3VibWl0IiYmRiE9PSJyZXNldCJ8fGwudmFsdWUhPT12b2lkIDAmJmwudmFsdWUhPT1udWxsKSlyZXR1cm47bD0iIitvLl93cmFwcGVyU3RhdGUuaW5pdGlhbFZhbHVlLGJ8fGw9PT1vLnZhbHVlfHwoby52YWx1ZT1sKSxvLmRlZmF1bHRWYWx1ZT1sfWI9by5uYW1lLGIhPT0iIiYmKG8ubmFtZT0iIiksby5kZWZhdWx0Q2hlY2tlZD0hIW8uX3dyYXBwZXJTdGF0ZS5pbml0aWFsQ2hlY2tlZCxiIT09IiImJihvLm5hbWU9Yil9ZnVuY3Rpb24gVShvLGwsYil7KGwhPT0ibnVtYmVyInx8RmUoby5vd25lckRvY3VtZW50KSE9PW8pJiYoYj09bnVsbD9vLmRlZmF1bHRWYWx1ZT0iIitvLl93cmFwcGVyU3RhdGUuaW5pdGlhbFZhbHVlOm8uZGVmYXVsdFZhbHVlIT09IiIrYiYmKG8uZGVmYXVsdFZhbHVlPSIiK2IpKX12YXIgTj1BcnJheS5pc0FycmF5O2Z1bmN0aW9uIFEobyxsLGIsRil7aWYobz1vLm9wdGlvbnMsbCl7bD17fTtmb3IodmFyIFg9MDtYPGIubGVuZ3RoO1grKylsWyIkIitiW1hdXT0hMDtmb3IoYj0wO2I8by5sZW5ndGg7YisrKVg9bC5oYXNPd25Qcm9wZXJ0eSgiJCIrb1tiXS52YWx1ZSksb1tiXS5zZWxlY3RlZCE9PVgmJihvW2JdLnNlbGVjdGVkPVgpLFgmJkYmJihvW2JdLmRlZmF1bHRTZWxlY3RlZD0hMCl9ZWxzZXtmb3IoYj0iIitCZShiKSxsPW51bGwsWD0wO1g8by5sZW5ndGg7WCsrKXtpZihvW1hdLnZhbHVlPT09Yil7b1tYXS5zZWxlY3RlZD0hMCxGJiYob1tYXS5kZWZhdWx0U2VsZWN0ZWQ9ITApO3JldHVybn1sIT09bnVsbHx8b1tYXS5kaXNhYmxlZHx8KGw9b1tYXSl9bCE9PW51bGwmJihsLnNlbGVjdGVkPSEwKX19ZnVuY3Rpb24gdWUobyxsKXtpZihsLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIT1udWxsKXRocm93IEVycm9yKHQoOTEpKTtyZXR1cm4gUCh7fSxsLHt2YWx1ZTp2b2lkIDAsZGVmYXVsdFZhbHVlOnZvaWQgMCxjaGlsZHJlbjoiIitvLl93cmFwcGVyU3RhdGUuaW5pdGlhbFZhbHVlfSl9ZnVuY3Rpb24gJChvLGwpe3ZhciBiPWwudmFsdWU7aWYoYj09bnVsbCl7aWYoYj1sLmNoaWxkcmVuLGw9bC5kZWZhdWx0VmFsdWUsYiE9bnVsbCl7aWYobCE9bnVsbCl0aHJvdyBFcnJvcih0KDkyKSk7aWYoTihiKSl7aWYoMTxiLmxlbmd0aCl0aHJvdyBFcnJvcih0KDkzKSk7Yj1iWzBdfWw9Yn1sPT1udWxsJiYobD0iIiksYj1sfW8uX3dyYXBwZXJTdGF0ZT17aW5pdGlhbFZhbHVlOkJlKGIpfX1mdW5jdGlvbiBfKG8sbCl7dmFyIGI9QmUobC52YWx1ZSksRj1CZShsLmRlZmF1bHRWYWx1ZSk7YiE9bnVsbCYmKGI9IiIrYixiIT09by52YWx1ZSYmKG8udmFsdWU9YiksbC5kZWZhdWx0VmFsdWU9PW51bGwmJm8uZGVmYXVsdFZhbHVlIT09YiYmKG8uZGVmYXVsdFZhbHVlPWIpKSxGIT1udWxsJiYoby5kZWZhdWx0VmFsdWU9IiIrRil9ZnVuY3Rpb24gcGUobyl7dmFyIGw9by50ZXh0Q29udGVudDtsPT09by5fd3JhcHBlclN0YXRlLmluaXRpYWxWYWx1ZSYmbCE9PSIiJiZsIT09bnVsbCYmKG8udmFsdWU9bCl9ZnVuY3Rpb24gcmUobyl7c3dpdGNoKG8pe2Nhc2Uic3ZnIjpyZXR1cm4iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciO2Nhc2UibWF0aCI6cmV0dXJuImh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUwiO2RlZmF1bHQ6cmV0dXJuImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwifX1mdW5jdGlvbiBhZShvLGwpe3JldHVybiBvPT1udWxsfHxvPT09Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiP3JlKGwpOm89PT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciJiZsPT09ImZvcmVpZ25PYmplY3QiPyJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIjpvfXZhciB3ZSxMZT1mdW5jdGlvbihvKXtyZXR1cm4gdHlwZW9mIE1TQXBwIT0idW5kZWZpbmVkIiYmTVNBcHAuZXhlY1Vuc2FmZUxvY2FsRnVuY3Rpb24/ZnVuY3Rpb24obCxiLEYsWCl7TVNBcHAuZXhlY1Vuc2FmZUxvY2FsRnVuY3Rpb24oZnVuY3Rpb24oKXtyZXR1cm4gbyhsLGIsRixYKX0pfTpvfShmdW5jdGlvbihvLGwpe2lmKG8ubmFtZXNwYWNlVVJJIT09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnInx8ImlubmVySFRNTCJpbiBvKW8uaW5uZXJIVE1MPWw7ZWxzZXtmb3Iod2U9d2V8fGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHdlLmlubmVySFRNTD0iPHN2Zz4iK2wudmFsdWVPZigpLnRvU3RyaW5nKCkrIjwvc3ZnPiIsbD13ZS5maXJzdENoaWxkO28uZmlyc3RDaGlsZDspby5yZW1vdmVDaGlsZChvLmZpcnN0Q2hpbGQpO2Zvcig7bC5maXJzdENoaWxkOylvLmFwcGVuZENoaWxkKGwuZmlyc3RDaGlsZCl9fSk7ZnVuY3Rpb24gTWUobyxsKXtpZihsKXt2YXIgYj1vLmZpcnN0Q2hpbGQ7aWYoYiYmYj09PW8ubGFzdENoaWxkJiZiLm5vZGVUeXBlPT09Myl7Yi5ub2RlVmFsdWU9bDtyZXR1cm59fW8udGV4dENvbnRlbnQ9bH12YXIgYmU9e2FuaW1hdGlvbkl0ZXJhdGlvbkNvdW50OiEwLGFzcGVjdFJhdGlvOiEwLGJvcmRlckltYWdlT3V0c2V0OiEwLGJvcmRlckltYWdlU2xpY2U6ITAsYm9yZGVySW1hZ2VXaWR0aDohMCxib3hGbGV4OiEwLGJveEZsZXhHcm91cDohMCxib3hPcmRpbmFsR3JvdXA6ITAsY29sdW1uQ291bnQ6ITAsY29sdW1uczohMCxmbGV4OiEwLGZsZXhHcm93OiEwLGZsZXhQb3NpdGl2ZTohMCxmbGV4U2hyaW5rOiEwLGZsZXhOZWdhdGl2ZTohMCxmbGV4T3JkZXI6ITAsZ3JpZEFyZWE6ITAsZ3JpZFJvdzohMCxncmlkUm93RW5kOiEwLGdyaWRSb3dTcGFuOiEwLGdyaWRSb3dTdGFydDohMCxncmlkQ29sdW1uOiEwLGdyaWRDb2x1bW5FbmQ6ITAsZ3JpZENvbHVtblNwYW46ITAsZ3JpZENvbHVtblN0YXJ0OiEwLGZvbnRXZWlnaHQ6ITAsbGluZUNsYW1wOiEwLGxpbmVIZWlnaHQ6ITAsb3BhY2l0eTohMCxvcmRlcjohMCxvcnBoYW5zOiEwLHRhYlNpemU6ITAsd2lkb3dzOiEwLHpJbmRleDohMCx6b29tOiEwLGZpbGxPcGFjaXR5OiEwLGZsb29kT3BhY2l0eTohMCxzdG9wT3BhY2l0eTohMCxzdHJva2VEYXNoYXJyYXk6ITAsc3Ryb2tlRGFzaG9mZnNldDohMCxzdHJva2VNaXRlcmxpbWl0OiEwLHN0cm9rZU9wYWNpdHk6ITAsc3Ryb2tlV2lkdGg6ITB9LCRlPVsiV2Via2l0IiwibXMiLCJNb3oiLCJPIl07T2JqZWN0LmtleXMoYmUpLmZvckVhY2goZnVuY3Rpb24obyl7JGUuZm9yRWFjaChmdW5jdGlvbihsKXtsPWwrby5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStvLnN1YnN0cmluZygxKSxiZVtsXT1iZVtvXX0pfSk7ZnVuY3Rpb24ga2UobyxsLGIpe3JldHVybiBsPT1udWxsfHx0eXBlb2YgbD09ImJvb2xlYW4ifHxsPT09IiI/IiI6Ynx8dHlwZW9mIGwhPSJudW1iZXIifHxsPT09MHx8YmUuaGFzT3duUHJvcGVydHkobykmJmJlW29dPygiIitsKS50cmltKCk6bCsicHgifWZ1bmN0aW9uIEFlKG8sbCl7bz1vLnN0eWxlO2Zvcih2YXIgYiBpbiBsKWlmKGwuaGFzT3duUHJvcGVydHkoYikpe3ZhciBGPWIuaW5kZXhPZigiLS0iKT09PTAsWD1rZShiLGxbYl0sRik7Yj09PSJmbG9hdCImJihiPSJjc3NGbG9hdCIpLEY/by5zZXRQcm9wZXJ0eShiLFgpOm9bYl09WH19dmFyIHR0PVAoe21lbnVpdGVtOiEwfSx7YXJlYTohMCxiYXNlOiEwLGJyOiEwLGNvbDohMCxlbWJlZDohMCxocjohMCxpbWc6ITAsaW5wdXQ6ITAsa2V5Z2VuOiEwLGxpbms6ITAsbWV0YTohMCxwYXJhbTohMCxzb3VyY2U6ITAsdHJhY2s6ITAsd2JyOiEwfSk7ZnVuY3Rpb24gbXQobyxsKXtpZihsKXtpZih0dFtvXSYmKGwuY2hpbGRyZW4hPW51bGx8fGwuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwhPW51bGwpKXRocm93IEVycm9yKHQoMTM3LG8pKTtpZihsLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIT1udWxsKXtpZihsLmNoaWxkcmVuIT1udWxsKXRocm93IEVycm9yKHQoNjApKTtpZih0eXBlb2YgbC5kYW5nZXJvdXNseVNldElubmVySFRNTCE9Im9iamVjdCJ8fCEoIl9faHRtbCJpbiBsLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MKSl0aHJvdyBFcnJvcih0KDYxKSl9aWYobC5zdHlsZSE9bnVsbCYmdHlwZW9mIGwuc3R5bGUhPSJvYmplY3QiKXRocm93IEVycm9yKHQoNjIpKX19ZnVuY3Rpb24gdXQobyxsKXtpZihvLmluZGV4T2YoIi0iKT09PS0xKXJldHVybiB0eXBlb2YgbC5pcz09InN0cmluZyI7c3dpdGNoKG8pe2Nhc2UiYW5ub3RhdGlvbi14bWwiOmNhc2UiY29sb3ItcHJvZmlsZSI6Y2FzZSJmb250LWZhY2UiOmNhc2UiZm9udC1mYWNlLXNyYyI6Y2FzZSJmb250LWZhY2UtdXJpIjpjYXNlImZvbnQtZmFjZS1mb3JtYXQiOmNhc2UiZm9udC1mYWNlLW5hbWUiOmNhc2UibWlzc2luZy1nbHlwaCI6cmV0dXJuITE7ZGVmYXVsdDpyZXR1cm4hMH19dmFyIERlPW51bGw7ZnVuY3Rpb24gTmUobyl7cmV0dXJuIG89by50YXJnZXR8fG8uc3JjRWxlbWVudHx8d2luZG93LG8uY29ycmVzcG9uZGluZ1VzZUVsZW1lbnQmJihvPW8uY29ycmVzcG9uZGluZ1VzZUVsZW1lbnQpLG8ubm9kZVR5cGU9PT0zP28ucGFyZW50Tm9kZTpvfXZhciBYZT1udWxsLEplPW51bGwsZ3Q9bnVsbDtmdW5jdGlvbiBkZShvKXtpZihvPVdyKG8pKXtpZih0eXBlb2YgWGUhPSJmdW5jdGlvbiIpdGhyb3cgRXJyb3IodCgyODApKTt2YXIgbD1vLnN0YXRlTm9kZTtsJiYobD1pYShsKSxYZShvLnN0YXRlTm9kZSxvLnR5cGUsbCkpfX1mdW5jdGlvbiBXZShvKXtKZT9ndD9ndC5wdXNoKG8pOmd0PVtvXTpKZT1vfWZ1bmN0aW9uIFN0KCl7aWYoSmUpe3ZhciBvPUplLGw9Z3Q7aWYoZ3Q9SmU9bnVsbCxkZShvKSxsKWZvcihvPTA7bzxsLmxlbmd0aDtvKyspZGUobFtvXSl9fWZ1bmN0aW9uIGN0KG8sbCl7cmV0dXJuIG8obCl9ZnVuY3Rpb24gT2UoKXt9dmFyIEdlPSExO2Z1bmN0aW9uIGh0KG8sbCxiKXtpZihHZSlyZXR1cm4gbyhsLGIpO0dlPSEwO3RyeXtyZXR1cm4gY3QobyxsLGIpfWZpbmFsbHl7R2U9ITEsKEplIT09bnVsbHx8Z3QhPT1udWxsKSYmKE9lKCksU3QoKSl9fWZ1bmN0aW9uIHplKG8sbCl7dmFyIGI9by5zdGF0ZU5vZGU7aWYoYj09PW51bGwpcmV0dXJuIG51bGw7dmFyIEY9aWEoYik7aWYoRj09PW51bGwpcmV0dXJuIG51bGw7Yj1GW2xdO2U6c3dpdGNoKGwpe2Nhc2Uib25DbGljayI6Y2FzZSJvbkNsaWNrQ2FwdHVyZSI6Y2FzZSJvbkRvdWJsZUNsaWNrIjpjYXNlIm9uRG91YmxlQ2xpY2tDYXB0dXJlIjpjYXNlIm9uTW91c2VEb3duIjpjYXNlIm9uTW91c2VEb3duQ2FwdHVyZSI6Y2FzZSJvbk1vdXNlTW92ZSI6Y2FzZSJvbk1vdXNlTW92ZUNhcHR1cmUiOmNhc2Uib25Nb3VzZVVwIjpjYXNlIm9uTW91c2VVcENhcHR1cmUiOmNhc2Uib25Nb3VzZUVudGVyIjooRj0hRi5kaXNhYmxlZCl8fChvPW8udHlwZSxGPSEobz09PSJidXR0b24ifHxvPT09ImlucHV0Inx8bz09PSJzZWxlY3QifHxvPT09InRleHRhcmVhIikpLG89IUY7YnJlYWsgZTtkZWZhdWx0Om89ITF9aWYobylyZXR1cm4gbnVsbDtpZihiJiZ0eXBlb2YgYiE9ImZ1bmN0aW9uIil0aHJvdyBFcnJvcih0KDIzMSxsLHR5cGVvZiBiKSk7cmV0dXJuIGJ9dmFyIFFlPSExO2lmKGMpdHJ5e3ZhciBwdD17fTtPYmplY3QuZGVmaW5lUHJvcGVydHkocHQsInBhc3NpdmUiLHtnZXQ6ZnVuY3Rpb24oKXtRZT0hMH19KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidGVzdCIscHQscHQpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJ0ZXN0IixwdCxwdCl9Y2F0Y2gobyl7UWU9ITF9ZnVuY3Rpb24gYnQobyxsLGIsRixYLGhlLFVlLHh0LCR0KXt2YXIgSW49QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDMpO3RyeXtsLmFwcGx5KGIsSW4pfWNhdGNoKGdyKXt0aGlzLm9uRXJyb3IoZ3IpfX12YXIgSXQ9ITEsVHQ9bnVsbCxYdD0hMSxmbj1udWxsLG5uPXtvbkVycm9yOmZ1bmN0aW9uKG8pe0l0PSEwLFR0PW99fTtmdW5jdGlvbiBvbihvLGwsYixGLFgsaGUsVWUseHQsJHQpe0l0PSExLFR0PW51bGwsYnQuYXBwbHkobm4sYXJndW1lbnRzKX1mdW5jdGlvbiBOdChvLGwsYixGLFgsaGUsVWUseHQsJHQpe2lmKG9uLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxJdCl7aWYoSXQpe3ZhciBJbj1UdDtJdD0hMSxUdD1udWxsfWVsc2UgdGhyb3cgRXJyb3IodCgxOTgpKTtYdHx8KFh0PSEwLGZuPUluKX19ZnVuY3Rpb24gWm4obyl7dmFyIGw9byxiPW87aWYoby5hbHRlcm5hdGUpZm9yKDtsLnJldHVybjspbD1sLnJldHVybjtlbHNle289bDtkbyBsPW8sbC5mbGFncyY0MDk4JiYoYj1sLnJldHVybiksbz1sLnJldHVybjt3aGlsZShvKX1yZXR1cm4gbC50YWc9PT0zP2I6bnVsbH1mdW5jdGlvbiB5bihvKXtpZihvLnRhZz09PTEzKXt2YXIgbD1vLm1lbW9pemVkU3RhdGU7aWYobD09PW51bGwmJihvPW8uYWx0ZXJuYXRlLG8hPT1udWxsJiYobD1vLm1lbW9pemVkU3RhdGUpKSxsIT09bnVsbClyZXR1cm4gbC5kZWh5ZHJhdGVkfXJldHVybiBudWxsfWZ1bmN0aW9uIGduKG8pe2lmKFpuKG8pIT09byl0aHJvdyBFcnJvcih0KDE4OCkpfWZ1bmN0aW9uIEJuKG8pe3ZhciBsPW8uYWx0ZXJuYXRlO2lmKCFsKXtpZihsPVpuKG8pLGw9PT1udWxsKXRocm93IEVycm9yKHQoMTg4KSk7cmV0dXJuIGwhPT1vP251bGw6b31mb3IodmFyIGI9byxGPWw7Oyl7dmFyIFg9Yi5yZXR1cm47aWYoWD09PW51bGwpYnJlYWs7dmFyIGhlPVguYWx0ZXJuYXRlO2lmKGhlPT09bnVsbCl7aWYoRj1YLnJldHVybixGIT09bnVsbCl7Yj1GO2NvbnRpbnVlfWJyZWFrfWlmKFguY2hpbGQ9PT1oZS5jaGlsZCl7Zm9yKGhlPVguY2hpbGQ7aGU7KXtpZihoZT09PWIpcmV0dXJuIGduKFgpLG87aWYoaGU9PT1GKXJldHVybiBnbihYKSxsO2hlPWhlLnNpYmxpbmd9dGhyb3cgRXJyb3IodCgxODgpKX1pZihiLnJldHVybiE9PUYucmV0dXJuKWI9WCxGPWhlO2Vsc2V7Zm9yKHZhciBVZT0hMSx4dD1YLmNoaWxkO3h0Oyl7aWYoeHQ9PT1iKXtVZT0hMCxiPVgsRj1oZTticmVha31pZih4dD09PUYpe1VlPSEwLEY9WCxiPWhlO2JyZWFrfXh0PXh0LnNpYmxpbmd9aWYoIVVlKXtmb3IoeHQ9aGUuY2hpbGQ7eHQ7KXtpZih4dD09PWIpe1VlPSEwLGI9aGUsRj1YO2JyZWFrfWlmKHh0PT09Ril7VWU9ITAsRj1oZSxiPVg7YnJlYWt9eHQ9eHQuc2libGluZ31pZighVWUpdGhyb3cgRXJyb3IodCgxODkpKX19aWYoYi5hbHRlcm5hdGUhPT1GKXRocm93IEVycm9yKHQoMTkwKSl9aWYoYi50YWchPT0zKXRocm93IEVycm9yKHQoMTg4KSk7cmV0dXJuIGIuc3RhdGVOb2RlLmN1cnJlbnQ9PT1iP286bH1mdW5jdGlvbiBWbihvKXtyZXR1cm4gbz1CbihvKSxvIT09bnVsbD9ObihvKTpudWxsfWZ1bmN0aW9uIE5uKG8pe2lmKG8udGFnPT09NXx8by50YWc9PT02KXJldHVybiBvO2ZvcihvPW8uY2hpbGQ7byE9PW51bGw7KXt2YXIgbD1ObihvKTtpZihsIT09bnVsbClyZXR1cm4gbDtvPW8uc2libGluZ31yZXR1cm4gbnVsbH12YXIgZnQ9bi51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrLGV0PW4udW5zdGFibGVfY2FuY2VsQ2FsbGJhY2ssSnQ9bi51bnN0YWJsZV9zaG91bGRZaWVsZCx3dD1uLnVuc3RhYmxlX3JlcXVlc3RQYWludCxfdD1uLnVuc3RhYmxlX25vdyx4bj1uLnVuc3RhYmxlX2dldEN1cnJlbnRQcmlvcml0eUxldmVsLFluPW4udW5zdGFibGVfSW1tZWRpYXRlUHJpb3JpdHksUG49bi51bnN0YWJsZV9Vc2VyQmxvY2tpbmdQcmlvcml0eSxMbj1uLnVuc3RhYmxlX05vcm1hbFByaW9yaXR5LGVyPW4udW5zdGFibGVfTG93UHJpb3JpdHksUW49bi51bnN0YWJsZV9JZGxlUHJpb3JpdHksdXI9bnVsbCxpcj1udWxsO2Z1bmN0aW9uIHZuKG8pe2lmKGlyJiZ0eXBlb2YgaXIub25Db21taXRGaWJlclJvb3Q9PSJmdW5jdGlvbiIpdHJ5e2lyLm9uQ29tbWl0RmliZXJSb290KHVyLG8sdm9pZCAwLChvLmN1cnJlbnQuZmxhZ3MmMTI4KT09PTEyOCl9Y2F0Y2gobCl7fX12YXIgY3I9TWF0aC5jbHozMj9NYXRoLmNsejMyOkN0LFduPU1hdGgubG9nLHduPU1hdGguTE4yO2Z1bmN0aW9uIEN0KG8pe3JldHVybiBvPj4+PTAsbz09PTA/MzI6MzEtKFduKG8pL3dufDApfDB9dmFyIFp0PTY0LGFuPTQxOTQzMDQ7ZnVuY3Rpb24gRHQobyl7c3dpdGNoKG8mLW8pe2Nhc2UgMTpyZXR1cm4gMTtjYXNlIDI6cmV0dXJuIDI7Y2FzZSA0OnJldHVybiA0O2Nhc2UgODpyZXR1cm4gODtjYXNlIDE2OnJldHVybiAxNjtjYXNlIDMyOnJldHVybiAzMjtjYXNlIDY0OmNhc2UgMTI4OmNhc2UgMjU2OmNhc2UgNTEyOmNhc2UgMTAyNDpjYXNlIDIwNDg6Y2FzZSA0MDk2OmNhc2UgODE5MjpjYXNlIDE2Mzg0OmNhc2UgMzI3Njg6Y2FzZSA2NTUzNjpjYXNlIDEzMTA3MjpjYXNlIDI2MjE0NDpjYXNlIDUyNDI4ODpjYXNlIDEwNDg1NzY6Y2FzZSAyMDk3MTUyOnJldHVybiBvJjQxOTQyNDA7Y2FzZSA0MTk0MzA0OmNhc2UgODM4ODYwODpjYXNlIDE2Nzc3MjE2OmNhc2UgMzM1NTQ0MzI6Y2FzZSA2NzEwODg2NDpyZXR1cm4gbyYxMzAwMjM0MjQ7Y2FzZSAxMzQyMTc3Mjg6cmV0dXJuIDEzNDIxNzcyODtjYXNlIDI2ODQzNTQ1NjpyZXR1cm4gMjY4NDM1NDU2O2Nhc2UgNTM2ODcwOTEyOnJldHVybiA1MzY4NzA5MTI7Y2FzZSAxMDczNzQxODI0OnJldHVybiAxMDczNzQxODI0O2RlZmF1bHQ6cmV0dXJuIG99fWZ1bmN0aW9uIGt0KG8sbCl7dmFyIGI9by5wZW5kaW5nTGFuZXM7aWYoYj09PTApcmV0dXJuIDA7dmFyIEY9MCxYPW8uc3VzcGVuZGVkTGFuZXMsaGU9by5waW5nZWRMYW5lcyxVZT1iJjI2ODQzNTQ1NTtpZihVZSE9PTApe3ZhciB4dD1VZSZ+WDt4dCE9PTA/Rj1EdCh4dCk6KGhlJj1VZSxoZSE9PTAmJihGPUR0KGhlKSkpfWVsc2UgVWU9YiZ+WCxVZSE9PTA/Rj1EdChVZSk6aGUhPT0wJiYoRj1EdChoZSkpO2lmKEY9PT0wKXJldHVybiAwO2lmKGwhPT0wJiZsIT09RiYmIShsJlgpJiYoWD1GJi1GLGhlPWwmLWwsWD49aGV8fFg9PT0xNiYmKGhlJjQxOTQyNDApIT09MCkpcmV0dXJuIGw7aWYoRiY0JiYoRnw9YiYxNiksbD1vLmVudGFuZ2xlZExhbmVzLGwhPT0wKWZvcihvPW8uZW50YW5nbGVtZW50cyxsJj1GOzA8bDspYj0zMS1jcihsKSxYPTE8PGIsRnw9b1tiXSxsJj1+WDtyZXR1cm4gRn1mdW5jdGlvbiB0bihvLGwpe3N3aXRjaChvKXtjYXNlIDE6Y2FzZSAyOmNhc2UgNDpyZXR1cm4gbCsyNTA7Y2FzZSA4OmNhc2UgMTY6Y2FzZSAzMjpjYXNlIDY0OmNhc2UgMTI4OmNhc2UgMjU2OmNhc2UgNTEyOmNhc2UgMTAyNDpjYXNlIDIwNDg6Y2FzZSA0MDk2OmNhc2UgODE5MjpjYXNlIDE2Mzg0OmNhc2UgMzI3Njg6Y2FzZSA2NTUzNjpjYXNlIDEzMTA3MjpjYXNlIDI2MjE0NDpjYXNlIDUyNDI4ODpjYXNlIDEwNDg1NzY6Y2FzZSAyMDk3MTUyOnJldHVybiBsKzVlMztjYXNlIDQxOTQzMDQ6Y2FzZSA4Mzg4NjA4OmNhc2UgMTY3NzcyMTY6Y2FzZSAzMzU1NDQzMjpjYXNlIDY3MTA4ODY0OnJldHVybi0xO2Nhc2UgMTM0MjE3NzI4OmNhc2UgMjY4NDM1NDU2OmNhc2UgNTM2ODcwOTEyOmNhc2UgMTA3Mzc0MTgyNDpyZXR1cm4tMTtkZWZhdWx0OnJldHVybi0xfX1mdW5jdGlvbiBtbihvLGwpe2Zvcih2YXIgYj1vLnN1c3BlbmRlZExhbmVzLEY9by5waW5nZWRMYW5lcyxYPW8uZXhwaXJhdGlvblRpbWVzLGhlPW8ucGVuZGluZ0xhbmVzOzA8aGU7KXt2YXIgVWU9MzEtY3IoaGUpLHh0PTE8PFVlLCR0PVhbVWVdOyR0PT09LTE/KCEoeHQmYil8fHh0JkYpJiYoWFtVZV09dG4oeHQsbCkpOiR0PD1sJiYoby5leHBpcmVkTGFuZXN8PXh0KSxoZSY9fnh0fX1mdW5jdGlvbiBLbihvKXtyZXR1cm4gbz1vLnBlbmRpbmdMYW5lcyYtMTA3Mzc0MTgyNSxvIT09MD9vOm8mMTA3Mzc0MTgyND8xMDczNzQxODI0OjB9ZnVuY3Rpb24gSm4oKXt2YXIgbz1adDtyZXR1cm4gWnQ8PD0xLCEoWnQmNDE5NDI0MCkmJihadD02NCksb31mdW5jdGlvbiBYbihvKXtmb3IodmFyIGw9W10sYj0wOzMxPmI7YisrKWwucHVzaChvKTtyZXR1cm4gbH1mdW5jdGlvbiBmcihvLGwsYil7by5wZW5kaW5nTGFuZXN8PWwsbCE9PTUzNjg3MDkxMiYmKG8uc3VzcGVuZGVkTGFuZXM9MCxvLnBpbmdlZExhbmVzPTApLG89by5ldmVudFRpbWVzLGw9MzEtY3IobCksb1tsXT1ifWZ1bmN0aW9uIHJyKG8sbCl7dmFyIGI9by5wZW5kaW5nTGFuZXMmfmw7by5wZW5kaW5nTGFuZXM9bCxvLnN1c3BlbmRlZExhbmVzPTAsby5waW5nZWRMYW5lcz0wLG8uZXhwaXJlZExhbmVzJj1sLG8ubXV0YWJsZVJlYWRMYW5lcyY9bCxvLmVudGFuZ2xlZExhbmVzJj1sLGw9by5lbnRhbmdsZW1lbnRzO3ZhciBGPW8uZXZlbnRUaW1lcztmb3Iobz1vLmV4cGlyYXRpb25UaW1lczswPGI7KXt2YXIgWD0zMS1jcihiKSxoZT0xPDxYO2xbWF09MCxGW1hdPS0xLG9bWF09LTEsYiY9fmhlfX1mdW5jdGlvbiBocihvLGwpe3ZhciBiPW8uZW50YW5nbGVkTGFuZXN8PWw7Zm9yKG89by5lbnRhbmdsZW1lbnRzO2I7KXt2YXIgRj0zMS1jcihiKSxYPTE8PEY7WCZsfG9bRl0mbCYmKG9bRl18PWwpLGImPX5YfX12YXIgRm49MDtmdW5jdGlvbiBhcihvKXtyZXR1cm4gbyY9LW8sMTxvPzQ8bz9vJjI2ODQzNTQ1NT8xNjo1MzY4NzA5MTI6NDoxfXZhciBsciwkbixzcixGcixaZSxIZT0hMSxudD1bXSxydD1udWxsLHZ0PW51bGwsVnQ9bnVsbCxlbj1uZXcgTWFwLFJuPW5ldyBNYXAsam49W10sYm49Im1vdXNlZG93biBtb3VzZXVwIHRvdWNoY2FuY2VsIHRvdWNoZW5kIHRvdWNoc3RhcnQgYXV4Y2xpY2sgZGJsY2xpY2sgcG9pbnRlcmNhbmNlbCBwb2ludGVyZG93biBwb2ludGVydXAgZHJhZ2VuZCBkcmFnc3RhcnQgZHJvcCBjb21wb3NpdGlvbmVuZCBjb21wb3NpdGlvbnN0YXJ0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgaW5wdXQgdGV4dElucHV0IGNvcHkgY3V0IHBhc3RlIGNsaWNrIGNoYW5nZSBjb250ZXh0bWVudSByZXNldCBzdWJtaXQiLnNwbGl0KCIgIik7ZnVuY3Rpb24gSG4obyxsKXtzd2l0Y2gobyl7Y2FzZSJmb2N1c2luIjpjYXNlImZvY3Vzb3V0IjpydD1udWxsO2JyZWFrO2Nhc2UiZHJhZ2VudGVyIjpjYXNlImRyYWdsZWF2ZSI6dnQ9bnVsbDticmVhaztjYXNlIm1vdXNlb3ZlciI6Y2FzZSJtb3VzZW91dCI6VnQ9bnVsbDticmVhaztjYXNlInBvaW50ZXJvdmVyIjpjYXNlInBvaW50ZXJvdXQiOmVuLmRlbGV0ZShsLnBvaW50ZXJJZCk7YnJlYWs7Y2FzZSJnb3Rwb2ludGVyY2FwdHVyZSI6Y2FzZSJsb3N0cG9pbnRlcmNhcHR1cmUiOlJuLmRlbGV0ZShsLnBvaW50ZXJJZCl9fWZ1bmN0aW9uIEd0KG8sbCxiLEYsWCxoZSl7cmV0dXJuIG89PT1udWxsfHxvLm5hdGl2ZUV2ZW50IT09aGU/KG89e2Jsb2NrZWRPbjpsLGRvbUV2ZW50TmFtZTpiLGV2ZW50U3lzdGVtRmxhZ3M6RixuYXRpdmVFdmVudDpoZSx0YXJnZXRDb250YWluZXJzOltYXX0sbCE9PW51bGwmJihsPVdyKGwpLGwhPT1udWxsJiYkbihsKSksbyk6KG8uZXZlbnRTeXN0ZW1GbGFnc3w9RixsPW8udGFyZ2V0Q29udGFpbmVycyxYIT09bnVsbCYmbC5pbmRleE9mKFgpPT09LTEmJmwucHVzaChYKSxvKX1mdW5jdGlvbiBTbihvLGwsYixGLFgpe3N3aXRjaChsKXtjYXNlImZvY3VzaW4iOnJldHVybiBydD1HdChydCxvLGwsYixGLFgpLCEwO2Nhc2UiZHJhZ2VudGVyIjpyZXR1cm4gdnQ9R3QodnQsbyxsLGIsRixYKSwhMDtjYXNlIm1vdXNlb3ZlciI6cmV0dXJuIFZ0PUd0KFZ0LG8sbCxiLEYsWCksITA7Y2FzZSJwb2ludGVyb3ZlciI6dmFyIGhlPVgucG9pbnRlcklkO3JldHVybiBlbi5zZXQoaGUsR3QoZW4uZ2V0KGhlKXx8bnVsbCxvLGwsYixGLFgpKSwhMDtjYXNlImdvdHBvaW50ZXJjYXB0dXJlIjpyZXR1cm4gaGU9WC5wb2ludGVySWQsUm4uc2V0KGhlLEd0KFJuLmdldChoZSl8fG51bGwsbyxsLGIsRixYKSksITB9cmV0dXJuITF9ZnVuY3Rpb24gT24obyl7dmFyIGw9RG4oby50YXJnZXQpO2lmKGwhPT1udWxsKXt2YXIgYj1abihsKTtpZihiIT09bnVsbCl7aWYobD1iLnRhZyxsPT09MTMpe2lmKGw9eW4oYiksbCE9PW51bGwpe28uYmxvY2tlZE9uPWwsWmUoby5wcmlvcml0eSxmdW5jdGlvbigpe3NyKGIpfSk7cmV0dXJufX1lbHNlIGlmKGw9PT0zJiZiLnN0YXRlTm9kZS5jdXJyZW50Lm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkKXtvLmJsb2NrZWRPbj1iLnRhZz09PTM/Yi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbzpudWxsO3JldHVybn19fW8uYmxvY2tlZE9uPW51bGx9ZnVuY3Rpb24gX24obyl7aWYoby5ibG9ja2VkT24hPT1udWxsKXJldHVybiExO2Zvcih2YXIgbD1vLnRhcmdldENvbnRhaW5lcnM7MDxsLmxlbmd0aDspe3ZhciBiPUZ0KG8uZG9tRXZlbnROYW1lLG8uZXZlbnRTeXN0ZW1GbGFncyxsWzBdLG8ubmF0aXZlRXZlbnQpO2lmKGI9PT1udWxsKXtiPW8ubmF0aXZlRXZlbnQ7dmFyIEY9bmV3IGIuY29uc3RydWN0b3IoYi50eXBlLGIpO0RlPUYsYi50YXJnZXQuZGlzcGF0Y2hFdmVudChGKSxEZT1udWxsfWVsc2UgcmV0dXJuIGw9V3IoYiksbCE9PW51bGwmJiRuKGwpLG8uYmxvY2tlZE9uPWIsITE7bC5zaGlmdCgpfXJldHVybiEwfWZ1bmN0aW9uIFBlKG8sbCxiKXtfbihvKSYmYi5kZWxldGUobCl9ZnVuY3Rpb24gZ2UoKXtIZT0hMSxydCE9PW51bGwmJl9uKHJ0KSYmKHJ0PW51bGwpLHZ0IT09bnVsbCYmX24odnQpJiYodnQ9bnVsbCksVnQhPT1udWxsJiZfbihWdCkmJihWdD1udWxsKSxlbi5mb3JFYWNoKFBlKSxSbi5mb3JFYWNoKFBlKX1mdW5jdGlvbiB2ZShvLGwpe28uYmxvY2tlZE9uPT09bCYmKG8uYmxvY2tlZE9uPW51bGwsSGV8fChIZT0hMCxuLnVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2sobi51bnN0YWJsZV9Ob3JtYWxQcmlvcml0eSxnZSkpKX1mdW5jdGlvbiBJZShvKXtmdW5jdGlvbiBsKFgpe3JldHVybiB2ZShYLG8pfWlmKDA8bnQubGVuZ3RoKXt2ZShudFswXSxvKTtmb3IodmFyIGI9MTtiPG50Lmxlbmd0aDtiKyspe3ZhciBGPW50W2JdO0YuYmxvY2tlZE9uPT09byYmKEYuYmxvY2tlZE9uPW51bGwpfX1mb3IocnQhPT1udWxsJiZ2ZShydCxvKSx2dCE9PW51bGwmJnZlKHZ0LG8pLFZ0IT09bnVsbCYmdmUoVnQsbyksZW4uZm9yRWFjaChsKSxSbi5mb3JFYWNoKGwpLGI9MDtiPGpuLmxlbmd0aDtiKyspRj1qbltiXSxGLmJsb2NrZWRPbj09PW8mJihGLmJsb2NrZWRPbj1udWxsKTtmb3IoOzA8am4ubGVuZ3RoJiYoYj1qblswXSxiLmJsb2NrZWRPbj09PW51bGwpOylPbihiKSxiLmJsb2NrZWRPbj09PW51bGwmJmpuLnNoaWZ0KCl9dmFyIHhlPUkuUmVhY3RDdXJyZW50QmF0Y2hDb25maWcsYXQ9ITA7ZnVuY3Rpb24gZHQobyxsLGIsRil7dmFyIFg9Rm4saGU9eGUudHJhbnNpdGlvbjt4ZS50cmFuc2l0aW9uPW51bGw7dHJ5e0ZuPTEsSHQobyxsLGIsRil9ZmluYWxseXtGbj1YLHhlLnRyYW5zaXRpb249aGV9fWZ1bmN0aW9uIEV0KG8sbCxiLEYpe3ZhciBYPUZuLGhlPXhlLnRyYW5zaXRpb247eGUudHJhbnNpdGlvbj1udWxsO3RyeXtGbj00LEh0KG8sbCxiLEYpfWZpbmFsbHl7Rm49WCx4ZS50cmFuc2l0aW9uPWhlfX1mdW5jdGlvbiBIdChvLGwsYixGKXtpZihhdCl7dmFyIFg9RnQobyxsLGIsRik7aWYoWD09PW51bGwpd3IobyxsLEYsanQsYiksSG4obyxGKTtlbHNlIGlmKFNuKFgsbyxsLGIsRikpRi5zdG9wUHJvcGFnYXRpb24oKTtlbHNlIGlmKEhuKG8sRiksbCY0JiYtMTxibi5pbmRleE9mKG8pKXtmb3IoO1ghPT1udWxsOyl7dmFyIGhlPVdyKFgpO2lmKGhlIT09bnVsbCYmbHIoaGUpLGhlPUZ0KG8sbCxiLEYpLGhlPT09bnVsbCYmd3IobyxsLEYsanQsYiksaGU9PT1YKWJyZWFrO1g9aGV9WCE9PW51bGwmJkYuc3RvcFByb3BhZ2F0aW9uKCl9ZWxzZSB3cihvLGwsRixudWxsLGIpfX12YXIganQ9bnVsbDtmdW5jdGlvbiBGdChvLGwsYixGKXtpZihqdD1udWxsLG89TmUoRiksbz1EbihvKSxvIT09bnVsbClpZihsPVpuKG8pLGw9PT1udWxsKW89bnVsbDtlbHNlIGlmKGI9bC50YWcsYj09PTEzKXtpZihvPXluKGwpLG8hPT1udWxsKXJldHVybiBvO289bnVsbH1lbHNlIGlmKGI9PT0zKXtpZihsLnN0YXRlTm9kZS5jdXJyZW50Lm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkKXJldHVybiBsLnRhZz09PTM/bC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbzpudWxsO289bnVsbH1lbHNlIGwhPT1vJiYobz1udWxsKTtyZXR1cm4ganQ9byxudWxsfWZ1bmN0aW9uIHBuKG8pe3N3aXRjaChvKXtjYXNlImNhbmNlbCI6Y2FzZSJjbGljayI6Y2FzZSJjbG9zZSI6Y2FzZSJjb250ZXh0bWVudSI6Y2FzZSJjb3B5IjpjYXNlImN1dCI6Y2FzZSJhdXhjbGljayI6Y2FzZSJkYmxjbGljayI6Y2FzZSJkcmFnZW5kIjpjYXNlImRyYWdzdGFydCI6Y2FzZSJkcm9wIjpjYXNlImZvY3VzaW4iOmNhc2UiZm9jdXNvdXQiOmNhc2UiaW5wdXQiOmNhc2UiaW52YWxpZCI6Y2FzZSJrZXlkb3duIjpjYXNlImtleXByZXNzIjpjYXNlImtleXVwIjpjYXNlIm1vdXNlZG93biI6Y2FzZSJtb3VzZXVwIjpjYXNlInBhc3RlIjpjYXNlInBhdXNlIjpjYXNlInBsYXkiOmNhc2UicG9pbnRlcmNhbmNlbCI6Y2FzZSJwb2ludGVyZG93biI6Y2FzZSJwb2ludGVydXAiOmNhc2UicmF0ZWNoYW5nZSI6Y2FzZSJyZXNldCI6Y2FzZSJyZXNpemUiOmNhc2Uic2Vla2VkIjpjYXNlInN1Ym1pdCI6Y2FzZSJ0b3VjaGNhbmNlbCI6Y2FzZSJ0b3VjaGVuZCI6Y2FzZSJ0b3VjaHN0YXJ0IjpjYXNlInZvbHVtZWNoYW5nZSI6Y2FzZSJjaGFuZ2UiOmNhc2Uic2VsZWN0aW9uY2hhbmdlIjpjYXNlInRleHRJbnB1dCI6Y2FzZSJjb21wb3NpdGlvbnN0YXJ0IjpjYXNlImNvbXBvc2l0aW9uZW5kIjpjYXNlImNvbXBvc2l0aW9udXBkYXRlIjpjYXNlImJlZm9yZWJsdXIiOmNhc2UiYWZ0ZXJibHVyIjpjYXNlImJlZm9yZWlucHV0IjpjYXNlImJsdXIiOmNhc2UiZnVsbHNjcmVlbmNoYW5nZSI6Y2FzZSJmb2N1cyI6Y2FzZSJoYXNoY2hhbmdlIjpjYXNlInBvcHN0YXRlIjpjYXNlInNlbGVjdCI6Y2FzZSJzZWxlY3RzdGFydCI6cmV0dXJuIDE7Y2FzZSJkcmFnIjpjYXNlImRyYWdlbnRlciI6Y2FzZSJkcmFnZXhpdCI6Y2FzZSJkcmFnbGVhdmUiOmNhc2UiZHJhZ292ZXIiOmNhc2UibW91c2Vtb3ZlIjpjYXNlIm1vdXNlb3V0IjpjYXNlIm1vdXNlb3ZlciI6Y2FzZSJwb2ludGVybW92ZSI6Y2FzZSJwb2ludGVyb3V0IjpjYXNlInBvaW50ZXJvdmVyIjpjYXNlInNjcm9sbCI6Y2FzZSJ0b2dnbGUiOmNhc2UidG91Y2htb3ZlIjpjYXNlIndoZWVsIjpjYXNlIm1vdXNlZW50ZXIiOmNhc2UibW91c2VsZWF2ZSI6Y2FzZSJwb2ludGVyZW50ZXIiOmNhc2UicG9pbnRlcmxlYXZlIjpyZXR1cm4gNDtjYXNlIm1lc3NhZ2UiOnN3aXRjaCh4bigpKXtjYXNlIFluOnJldHVybiAxO2Nhc2UgUG46cmV0dXJuIDQ7Y2FzZSBMbjpjYXNlIGVyOnJldHVybiAxNjtjYXNlIFFuOnJldHVybiA1MzY4NzA5MTI7ZGVmYXVsdDpyZXR1cm4gMTZ9ZGVmYXVsdDpyZXR1cm4gMTZ9fXZhciBjbj1udWxsLG9yPW51bGwsVG49bnVsbDtmdW5jdGlvbiB6bigpe2lmKFRuKXJldHVybiBUbjt2YXIgbyxsPW9yLGI9bC5sZW5ndGgsRixYPSJ2YWx1ZSJpbiBjbj9jbi52YWx1ZTpjbi50ZXh0Q29udGVudCxoZT1YLmxlbmd0aDtmb3Iobz0wO288YiYmbFtvXT09PVhbb107bysrKTt2YXIgVWU9Yi1vO2ZvcihGPTE7Rjw9VWUmJmxbYi1GXT09PVhbaGUtRl07RisrKTtyZXR1cm4gVG49WC5zbGljZShvLDE8Rj8xLUY6dm9pZCAwKX1mdW5jdGlvbiBybihvKXt2YXIgbD1vLmtleUNvZGU7cmV0dXJuImNoYXJDb2RlImluIG8/KG89by5jaGFyQ29kZSxvPT09MCYmbD09PTEzJiYobz0xMykpOm89bCxvPT09MTAmJihvPTEzKSwzMjw9b3x8bz09PTEzP286MH1mdW5jdGlvbiBLdCgpe3JldHVybiEwfWZ1bmN0aW9uIHp0KCl7cmV0dXJuITF9ZnVuY3Rpb24gT3Qobyl7ZnVuY3Rpb24gbChiLEYsWCxoZSxVZSl7dGhpcy5fcmVhY3ROYW1lPWIsdGhpcy5fdGFyZ2V0SW5zdD1YLHRoaXMudHlwZT1GLHRoaXMubmF0aXZlRXZlbnQ9aGUsdGhpcy50YXJnZXQ9VWUsdGhpcy5jdXJyZW50VGFyZ2V0PW51bGw7Zm9yKHZhciB4dCBpbiBvKW8uaGFzT3duUHJvcGVydHkoeHQpJiYoYj1vW3h0XSx0aGlzW3h0XT1iP2IoaGUpOmhlW3h0XSk7cmV0dXJuIHRoaXMuaXNEZWZhdWx0UHJldmVudGVkPShoZS5kZWZhdWx0UHJldmVudGVkIT1udWxsP2hlLmRlZmF1bHRQcmV2ZW50ZWQ6aGUucmV0dXJuVmFsdWU9PT0hMSk/S3Q6enQsdGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZD16dCx0aGlzfXJldHVybiBQKGwucHJvdG90eXBlLHtwcmV2ZW50RGVmYXVsdDpmdW5jdGlvbigpe3RoaXMuZGVmYXVsdFByZXZlbnRlZD0hMDt2YXIgYj10aGlzLm5hdGl2ZUV2ZW50O2ImJihiLnByZXZlbnREZWZhdWx0P2IucHJldmVudERlZmF1bHQoKTp0eXBlb2YgYi5yZXR1cm5WYWx1ZSE9InVua25vd24iJiYoYi5yZXR1cm5WYWx1ZT0hMSksdGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQ9S3QpfSxzdG9wUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt2YXIgYj10aGlzLm5hdGl2ZUV2ZW50O2ImJihiLnN0b3BQcm9wYWdhdGlvbj9iLnN0b3BQcm9wYWdhdGlvbigpOnR5cGVvZiBiLmNhbmNlbEJ1YmJsZSE9InVua25vd24iJiYoYi5jYW5jZWxCdWJibGU9ITApLHRoaXMuaXNQcm9wYWdhdGlvblN0b3BwZWQ9S3QpfSxwZXJzaXN0OmZ1bmN0aW9uKCl7fSxpc1BlcnNpc3RlbnQ6S3R9KSxsfXZhciBsbj17ZXZlbnRQaGFzZTowLGJ1YmJsZXM6MCxjYW5jZWxhYmxlOjAsdGltZVN0YW1wOmZ1bmN0aW9uKG8pe3JldHVybiBvLnRpbWVTdGFtcHx8RGF0ZS5ub3coKX0sZGVmYXVsdFByZXZlbnRlZDowLGlzVHJ1c3RlZDowfSxFbj1PdChsbiksR249UCh7fSxsbix7dmlldzowLGRldGFpbDowfSkscHI9T3QoR24pLFByLGJyLE1yLCRyPVAoe30sR24se3NjcmVlblg6MCxzY3JlZW5ZOjAsY2xpZW50WDowLGNsaWVudFk6MCxwYWdlWDowLHBhZ2VZOjAsY3RybEtleTowLHNoaWZ0S2V5OjAsYWx0S2V5OjAsbWV0YUtleTowLGdldE1vZGlmaWVyU3RhdGU6VGEsYnV0dG9uOjAsYnV0dG9uczowLHJlbGF0ZWRUYXJnZXQ6ZnVuY3Rpb24obyl7cmV0dXJuIG8ucmVsYXRlZFRhcmdldD09PXZvaWQgMD9vLmZyb21FbGVtZW50PT09by5zcmNFbGVtZW50P28udG9FbGVtZW50Om8uZnJvbUVsZW1lbnQ6by5yZWxhdGVkVGFyZ2V0fSxtb3ZlbWVudFg6ZnVuY3Rpb24obyl7cmV0dXJuIm1vdmVtZW50WCJpbiBvP28ubW92ZW1lbnRYOihvIT09TXImJihNciYmby50eXBlPT09Im1vdXNlbW92ZSI/KFByPW8uc2NyZWVuWC1Nci5zY3JlZW5YLGJyPW8uc2NyZWVuWS1Nci5zY3JlZW5ZKTpicj1Qcj0wLE1yPW8pLFByKX0sbW92ZW1lbnRZOmZ1bmN0aW9uKG8pe3JldHVybiJtb3ZlbWVudFkiaW4gbz9vLm1vdmVtZW50WTpicn19KSxHcj1PdCgkciksb2E9UCh7fSwkcix7ZGF0YVRyYW5zZmVyOjB9KSxyYT1PdChvYSksTWE9UCh7fSxHbix7cmVsYXRlZFRhcmdldDowfSksZmE9T3QoTWEpLGhhPVAoe30sbG4se2FuaW1hdGlvbk5hbWU6MCxlbGFwc2VkVGltZTowLHBzZXVkb0VsZW1lbnQ6MH0pLGVhPU90KGhhKSxOYT1QKHt9LGxuLHtjbGlwYm9hcmREYXRhOmZ1bmN0aW9uKG8pe3JldHVybiJjbGlwYm9hcmREYXRhImluIG8/by5jbGlwYm9hcmREYXRhOndpbmRvdy5jbGlwYm9hcmREYXRhfX0pLGJhPU90KE5hKSxBcj1QKHt9LGxuLHtkYXRhOjB9KSxScj1PdChBciksbXI9e0VzYzoiRXNjYXBlIixTcGFjZWJhcjoiICIsTGVmdDoiQXJyb3dMZWZ0IixVcDoiQXJyb3dVcCIsUmlnaHQ6IkFycm93UmlnaHQiLERvd246IkFycm93RG93biIsRGVsOiJEZWxldGUiLFdpbjoiT1MiLE1lbnU6IkNvbnRleHRNZW51IixBcHBzOiJDb250ZXh0TWVudSIsU2Nyb2xsOiJTY3JvbGxMb2NrIixNb3pQcmludGFibGVLZXk6IlVuaWRlbnRpZmllZCJ9LElyPXs4OiJCYWNrc3BhY2UiLDk6IlRhYiIsMTI6IkNsZWFyIiwxMzoiRW50ZXIiLDE2OiJTaGlmdCIsMTc6IkNvbnRyb2wiLDE4OiJBbHQiLDE5OiJQYXVzZSIsMjA6IkNhcHNMb2NrIiwyNzoiRXNjYXBlIiwzMjoiICIsMzM6IlBhZ2VVcCIsMzQ6IlBhZ2VEb3duIiwzNToiRW5kIiwzNjoiSG9tZSIsMzc6IkFycm93TGVmdCIsMzg6IkFycm93VXAiLDM5OiJBcnJvd1JpZ2h0Iiw0MDoiQXJyb3dEb3duIiw0NToiSW5zZXJ0Iiw0NjoiRGVsZXRlIiwxMTI6IkYxIiwxMTM6IkYyIiwxMTQ6IkYzIiwxMTU6IkY0IiwxMTY6IkY1IiwxMTc6IkY2IiwxMTg6IkY3IiwxMTk6IkY4IiwxMjA6IkY5IiwxMjE6IkYxMCIsMTIyOiJGMTEiLDEyMzoiRjEyIiwxNDQ6Ik51bUxvY2siLDE0NToiU2Nyb2xsTG9jayIsMjI0OiJNZXRhIn0sSHI9e0FsdDoiYWx0S2V5IixDb250cm9sOiJjdHJsS2V5IixNZXRhOiJtZXRhS2V5IixTaGlmdDoic2hpZnRLZXkifTtmdW5jdGlvbiBKcihvKXt2YXIgbD10aGlzLm5hdGl2ZUV2ZW50O3JldHVybiBsLmdldE1vZGlmaWVyU3RhdGU/bC5nZXRNb2RpZmllclN0YXRlKG8pOihvPUhyW29dKT8hIWxbb106ITF9ZnVuY3Rpb24gVGEoKXtyZXR1cm4gSnJ9dmFyIGphPVAoe30sR24se2tleTpmdW5jdGlvbihvKXtpZihvLmtleSl7dmFyIGw9bXJbby5rZXldfHxvLmtleTtpZihsIT09IlVuaWRlbnRpZmllZCIpcmV0dXJuIGx9cmV0dXJuIG8udHlwZT09PSJrZXlwcmVzcyI/KG89cm4obyksbz09PTEzPyJFbnRlciI6U3RyaW5nLmZyb21DaGFyQ29kZShvKSk6by50eXBlPT09ImtleWRvd24ifHxvLnR5cGU9PT0ia2V5dXAiP0lyW28ua2V5Q29kZV18fCJVbmlkZW50aWZpZWQiOiIifSxjb2RlOjAsbG9jYXRpb246MCxjdHJsS2V5OjAsc2hpZnRLZXk6MCxhbHRLZXk6MCxtZXRhS2V5OjAscmVwZWF0OjAsbG9jYWxlOjAsZ2V0TW9kaWZpZXJTdGF0ZTpUYSxjaGFyQ29kZTpmdW5jdGlvbihvKXtyZXR1cm4gby50eXBlPT09ImtleXByZXNzIj9ybihvKTowfSxrZXlDb2RlOmZ1bmN0aW9uKG8pe3JldHVybiBvLnR5cGU9PT0ia2V5ZG93biJ8fG8udHlwZT09PSJrZXl1cCI/by5rZXlDb2RlOjB9LHdoaWNoOmZ1bmN0aW9uKG8pe3JldHVybiBvLnR5cGU9PT0ia2V5cHJlc3MiP3JuKG8pOm8udHlwZT09PSJrZXlkb3duInx8by50eXBlPT09ImtleXVwIj9vLmtleUNvZGU6MH19KSwkYT1PdChqYSkseXI9UCh7fSwkcix7cG9pbnRlcklkOjAsd2lkdGg6MCxoZWlnaHQ6MCxwcmVzc3VyZTowLHRhbmdlbnRpYWxQcmVzc3VyZTowLHRpbHRYOjAsdGlsdFk6MCx0d2lzdDowLHBvaW50ZXJUeXBlOjAsaXNQcmltYXJ5OjB9KSxWcj1PdCh5ciksU2E9UCh7fSxHbix7dG91Y2hlczowLHRhcmdldFRvdWNoZXM6MCxjaGFuZ2VkVG91Y2hlczowLGFsdEtleTowLG1ldGFLZXk6MCxjdHJsS2V5OjAsc2hpZnRLZXk6MCxnZXRNb2RpZmllclN0YXRlOlRhfSksRmE9T3QoU2EpLFJhPVAoe30sbG4se3Byb3BlcnR5TmFtZTowLGVsYXBzZWRUaW1lOjAscHNldWRvRWxlbWVudDowfSkscm89T3QoUmEpLHVvPVAoe30sJHIse2RlbHRhWDpmdW5jdGlvbihvKXtyZXR1cm4iZGVsdGFYImluIG8/by5kZWx0YVg6IndoZWVsRGVsdGFYImluIG8/LW8ud2hlZWxEZWx0YVg6MH0sZGVsdGFZOmZ1bmN0aW9uKG8pe3JldHVybiJkZWx0YVkiaW4gbz9vLmRlbHRhWToid2hlZWxEZWx0YVkiaW4gbz8tby53aGVlbERlbHRhWToid2hlZWxEZWx0YSJpbiBvPy1vLndoZWVsRGVsdGE6MH0sZGVsdGFaOjAsZGVsdGFNb2RlOjB9KSxubz1PdCh1byksem89WzksMTMsMjcsMzJdLGdvPWMmJiJDb21wb3NpdGlvbkV2ZW50ImluIHdpbmRvdyxmbz1udWxsO2MmJiJkb2N1bWVudE1vZGUiaW4gZG9jdW1lbnQmJihmbz1kb2N1bWVudC5kb2N1bWVudE1vZGUpO3ZhciBUaT1jJiYiVGV4dEV2ZW50ImluIHdpbmRvdyYmIWZvLFVvPWMmJighZ298fGZvJiY4PGZvJiYxMT49Zm8pLFdvPSIgIixnaT0hMTtmdW5jdGlvbiBhbyhvLGwpe3N3aXRjaChvKXtjYXNlImtleXVwIjpyZXR1cm4gem8uaW5kZXhPZihsLmtleUNvZGUpIT09LTE7Y2FzZSJrZXlkb3duIjpyZXR1cm4gbC5rZXlDb2RlIT09MjI5O2Nhc2Uia2V5cHJlc3MiOmNhc2UibW91c2Vkb3duIjpjYXNlImZvY3Vzb3V0IjpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX1mdW5jdGlvbiBwaShvKXtyZXR1cm4gbz1vLmRldGFpbCx0eXBlb2Ygbz09Im9iamVjdCImJiJkYXRhImluIG8/by5kYXRhOm51bGx9dmFyIEhvPSExO2Z1bmN0aW9uIFJvKG8sbCl7c3dpdGNoKG8pe2Nhc2UiY29tcG9zaXRpb25lbmQiOnJldHVybiBwaShsKTtjYXNlImtleXByZXNzIjpyZXR1cm4gbC53aGljaCE9PTMyP251bGw6KGdpPSEwLFdvKTtjYXNlInRleHRJbnB1dCI6cmV0dXJuIG89bC5kYXRhLG89PT1XbyYmZ2k/bnVsbDpvO2RlZmF1bHQ6cmV0dXJuIG51bGx9fWZ1bmN0aW9uIEZvKG8sbCl7aWYoSG8pcmV0dXJuIG89PT0iY29tcG9zaXRpb25lbmQifHwhZ28mJmFvKG8sbCk/KG89em4oKSxUbj1vcj1jbj1udWxsLEhvPSExLG8pOm51bGw7c3dpdGNoKG8pe2Nhc2UicGFzdGUiOnJldHVybiBudWxsO2Nhc2Uia2V5cHJlc3MiOmlmKCEobC5jdHJsS2V5fHxsLmFsdEtleXx8bC5tZXRhS2V5KXx8bC5jdHJsS2V5JiZsLmFsdEtleSl7aWYobC5jaGFyJiYxPGwuY2hhci5sZW5ndGgpcmV0dXJuIGwuY2hhcjtpZihsLndoaWNoKXJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGwud2hpY2gpfXJldHVybiBudWxsO2Nhc2UiY29tcG9zaXRpb25lbmQiOnJldHVybiBVbyYmbC5sb2NhbGUhPT0ia28iP251bGw6bC5kYXRhO2RlZmF1bHQ6cmV0dXJuIG51bGx9fXZhciBsdD17Y29sb3I6ITAsZGF0ZTohMCxkYXRldGltZTohMCwiZGF0ZXRpbWUtbG9jYWwiOiEwLGVtYWlsOiEwLG1vbnRoOiEwLG51bWJlcjohMCxwYXNzd29yZDohMCxyYW5nZTohMCxzZWFyY2g6ITAsdGVsOiEwLHRleHQ6ITAsdGltZTohMCx1cmw6ITAsd2VlazohMH07ZnVuY3Rpb24gaWUobyl7dmFyIGw9byYmby5ub2RlTmFtZSYmby5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybiBsPT09ImlucHV0Ij8hIWx0W28udHlwZV06bD09PSJ0ZXh0YXJlYSJ9ZnVuY3Rpb24geWUobyxsLGIsRil7V2UoRiksbD1kYShsLCJvbkNoYW5nZSIpLDA8bC5sZW5ndGgmJihiPW5ldyBFbigib25DaGFuZ2UiLCJjaGFuZ2UiLG51bGwsYixGKSxvLnB1c2goe2V2ZW50OmIsbGlzdGVuZXJzOmx9KSl9dmFyIEI9bnVsbCxWZT1udWxsO2Z1bmN0aW9uIHN0KG8pe0F0KG8sMCl9ZnVuY3Rpb24gUnQobyl7dmFyIGw9a3Iobyk7aWYoX2UobCkpcmV0dXJuIG99ZnVuY3Rpb24gQnQobyxsKXtpZihvPT09ImNoYW5nZSIpcmV0dXJuIGx9dmFyIEx0PSExO2lmKGMpe3ZhciBZdDtpZihjKXt2YXIgQW49Im9uaW5wdXQiaW4gZG9jdW1lbnQ7aWYoIUFuKXt2YXIgc249ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7c24uc2V0QXR0cmlidXRlKCJvbmlucHV0IiwicmV0dXJuOyIpLEFuPXR5cGVvZiBzbi5vbmlucHV0PT0iZnVuY3Rpb24ifVl0PUFufWVsc2UgWXQ9ITE7THQ9WXQmJighZG9jdW1lbnQuZG9jdW1lbnRNb2RlfHw5PGRvY3VtZW50LmRvY3VtZW50TW9kZSl9ZnVuY3Rpb24gcXQoKXtCJiYoQi5kZXRhY2hFdmVudCgib25wcm9wZXJ0eWNoYW5nZSIsTW4pLFZlPUI9bnVsbCl9ZnVuY3Rpb24gTW4obyl7aWYoby5wcm9wZXJ0eU5hbWU9PT0idmFsdWUiJiZSdChWZSkpe3ZhciBsPVtdO3llKGwsVmUsbyxOZShvKSksaHQoc3QsbCl9fWZ1bmN0aW9uIENyKG8sbCxiKXtvPT09ImZvY3VzaW4iPyhxdCgpLEI9bCxWZT1iLEIuYXR0YWNoRXZlbnQoIm9ucHJvcGVydHljaGFuZ2UiLE1uKSk6bz09PSJmb2N1c291dCImJnF0KCl9ZnVuY3Rpb24gcW4obyl7aWYobz09PSJzZWxlY3Rpb25jaGFuZ2UifHxvPT09ImtleXVwInx8bz09PSJrZXlkb3duIilyZXR1cm4gUnQoVmUpfWZ1bmN0aW9uIGpyKG8sbCl7aWYobz09PSJjbGljayIpcmV0dXJuIFJ0KGwpfWZ1bmN0aW9uIENuKG8sbCl7aWYobz09PSJpbnB1dCJ8fG89PT0iY2hhbmdlIilyZXR1cm4gUnQobCl9ZnVuY3Rpb24gTHIobyxsKXtyZXR1cm4gbz09PWwmJihvIT09MHx8MS9vPT09MS9sKXx8byE9PW8mJmwhPT1sfXZhciBEcj10eXBlb2YgT2JqZWN0LmlzPT0iZnVuY3Rpb24iP09iamVjdC5pczpMcjtmdW5jdGlvbiBOcihvLGwpe2lmKERyKG8sbCkpcmV0dXJuITA7aWYodHlwZW9mIG8hPSJvYmplY3QifHxvPT09bnVsbHx8dHlwZW9mIGwhPSJvYmplY3QifHxsPT09bnVsbClyZXR1cm4hMTt2YXIgYj1PYmplY3Qua2V5cyhvKSxGPU9iamVjdC5rZXlzKGwpO2lmKGIubGVuZ3RoIT09Ri5sZW5ndGgpcmV0dXJuITE7Zm9yKEY9MDtGPGIubGVuZ3RoO0YrKyl7dmFyIFg9YltGXTtpZighaC5jYWxsKGwsWCl8fCFEcihvW1hdLGxbWF0pKXJldHVybiExfXJldHVybiEwfWZ1bmN0aW9uIHRhKG8pe2Zvcig7byYmby5maXJzdENoaWxkOylvPW8uZmlyc3RDaGlsZDtyZXR1cm4gb31mdW5jdGlvbiB2YShvLGwpe3ZhciBiPXRhKG8pO289MDtmb3IodmFyIEY7Yjspe2lmKGIubm9kZVR5cGU9PT0zKXtpZihGPW8rYi50ZXh0Q29udGVudC5sZW5ndGgsbzw9bCYmRj49bClyZXR1cm57bm9kZTpiLG9mZnNldDpsLW99O289Rn1lOntmb3IoO2I7KXtpZihiLm5leHRTaWJsaW5nKXtiPWIubmV4dFNpYmxpbmc7YnJlYWsgZX1iPWIucGFyZW50Tm9kZX1iPXZvaWQgMH1iPXRhKGIpfX1mdW5jdGlvbiBYcihvLGwpe3JldHVybiBvJiZsP289PT1sPyEwOm8mJm8ubm9kZVR5cGU9PT0zPyExOmwmJmwubm9kZVR5cGU9PT0zP1hyKG8sbC5wYXJlbnROb2RlKToiY29udGFpbnMiaW4gbz9vLmNvbnRhaW5zKGwpOm8uY29tcGFyZURvY3VtZW50UG9zaXRpb24/ISEoby5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihsKSYxNik6ITE6ITF9ZnVuY3Rpb24gRWEoKXtmb3IodmFyIG89d2luZG93LGw9RmUoKTtsIGluc3RhbmNlb2Ygby5IVE1MSUZyYW1lRWxlbWVudDspe3RyeXt2YXIgYj10eXBlb2YgbC5jb250ZW50V2luZG93LmxvY2F0aW9uLmhyZWY9PSJzdHJpbmcifWNhdGNoKEYpe2I9ITF9aWYoYilvPWwuY29udGVudFdpbmRvdztlbHNlIGJyZWFrO2w9RmUoby5kb2N1bWVudCl9cmV0dXJuIGx9ZnVuY3Rpb24gcG8obyl7dmFyIGw9byYmby5ub2RlTmFtZSYmby5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybiBsJiYobD09PSJpbnB1dCImJihvLnR5cGU9PT0idGV4dCJ8fG8udHlwZT09PSJzZWFyY2gifHxvLnR5cGU9PT0idGVsInx8by50eXBlPT09InVybCJ8fG8udHlwZT09PSJwYXNzd29yZCIpfHxsPT09InRleHRhcmVhInx8by5jb250ZW50RWRpdGFibGU9PT0idHJ1ZSIpfWZ1bmN0aW9uIHlhKG8pe3ZhciBsPUVhKCksYj1vLmZvY3VzZWRFbGVtLEY9by5zZWxlY3Rpb25SYW5nZTtpZihsIT09YiYmYiYmYi5vd25lckRvY3VtZW50JiZYcihiLm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LGIpKXtpZihGIT09bnVsbCYmcG8oYikpe2lmKGw9Ri5zdGFydCxvPUYuZW5kLG89PT12b2lkIDAmJihvPWwpLCJzZWxlY3Rpb25TdGFydCJpbiBiKWIuc2VsZWN0aW9uU3RhcnQ9bCxiLnNlbGVjdGlvbkVuZD1NYXRoLm1pbihvLGIudmFsdWUubGVuZ3RoKTtlbHNlIGlmKG89KGw9Yi5vd25lckRvY3VtZW50fHxkb2N1bWVudCkmJmwuZGVmYXVsdFZpZXd8fHdpbmRvdyxvLmdldFNlbGVjdGlvbil7bz1vLmdldFNlbGVjdGlvbigpO3ZhciBYPWIudGV4dENvbnRlbnQubGVuZ3RoLGhlPU1hdGgubWluKEYuc3RhcnQsWCk7Rj1GLmVuZD09PXZvaWQgMD9oZTpNYXRoLm1pbihGLmVuZCxYKSwhby5leHRlbmQmJmhlPkYmJihYPUYsRj1oZSxoZT1YKSxYPXZhKGIsaGUpO3ZhciBVZT12YShiLEYpO1gmJlVlJiYoby5yYW5nZUNvdW50IT09MXx8by5hbmNob3JOb2RlIT09WC5ub2RlfHxvLmFuY2hvck9mZnNldCE9PVgub2Zmc2V0fHxvLmZvY3VzTm9kZSE9PVVlLm5vZGV8fG8uZm9jdXNPZmZzZXQhPT1VZS5vZmZzZXQpJiYobD1sLmNyZWF0ZVJhbmdlKCksbC5zZXRTdGFydChYLm5vZGUsWC5vZmZzZXQpLG8ucmVtb3ZlQWxsUmFuZ2VzKCksaGU+Rj8oby5hZGRSYW5nZShsKSxvLmV4dGVuZChVZS5ub2RlLFVlLm9mZnNldCkpOihsLnNldEVuZChVZS5ub2RlLFVlLm9mZnNldCksby5hZGRSYW5nZShsKSkpfX1mb3IobD1bXSxvPWI7bz1vLnBhcmVudE5vZGU7KW8ubm9kZVR5cGU9PT0xJiZsLnB1c2goe2VsZW1lbnQ6byxsZWZ0Om8uc2Nyb2xsTGVmdCx0b3A6by5zY3JvbGxUb3B9KTtmb3IodHlwZW9mIGIuZm9jdXM9PSJmdW5jdGlvbiImJmIuZm9jdXMoKSxiPTA7YjxsLmxlbmd0aDtiKyspbz1sW2JdLG8uZWxlbWVudC5zY3JvbGxMZWZ0PW8ubGVmdCxvLmVsZW1lbnQuc2Nyb2xsVG9wPW8udG9wfX12YXIgSWE9YyYmImRvY3VtZW50TW9kZSJpbiBkb2N1bWVudCYmMTE+PWRvY3VtZW50LmRvY3VtZW50TW9kZSxnYT1udWxsLEhhPW51bGwsUGE9bnVsbCxlbz0hMTtmdW5jdGlvbiBVYShvLGwsYil7dmFyIEY9Yi53aW5kb3c9PT1iP2IuZG9jdW1lbnQ6Yi5ub2RlVHlwZT09PTk/YjpiLm93bmVyRG9jdW1lbnQ7ZW98fGdhPT1udWxsfHxnYSE9PUZlKEYpfHwoRj1nYSwic2VsZWN0aW9uU3RhcnQiaW4gRiYmcG8oRik/Rj17c3RhcnQ6Ri5zZWxlY3Rpb25TdGFydCxlbmQ6Ri5zZWxlY3Rpb25FbmR9OihGPShGLm93bmVyRG9jdW1lbnQmJkYub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlld3x8d2luZG93KS5nZXRTZWxlY3Rpb24oKSxGPXthbmNob3JOb2RlOkYuYW5jaG9yTm9kZSxhbmNob3JPZmZzZXQ6Ri5hbmNob3JPZmZzZXQsZm9jdXNOb2RlOkYuZm9jdXNOb2RlLGZvY3VzT2Zmc2V0OkYuZm9jdXNPZmZzZXR9KSxQYSYmTnIoUGEsRil8fChQYT1GLEY9ZGEoSGEsIm9uU2VsZWN0IiksMDxGLmxlbmd0aCYmKGw9bmV3IEVuKCJvblNlbGVjdCIsInNlbGVjdCIsbnVsbCxsLGIpLG8ucHVzaCh7ZXZlbnQ6bCxsaXN0ZW5lcnM6Rn0pLGwudGFyZ2V0PWdhKSkpfWZ1bmN0aW9uIHZvKG8sbCl7dmFyIGI9e307cmV0dXJuIGJbby50b0xvd2VyQ2FzZSgpXT1sLnRvTG93ZXJDYXNlKCksYlsiV2Via2l0IitvXT0id2Via2l0IitsLGJbIk1veiIrb109Im1veiIrbCxifXZhciBHYT17YW5pbWF0aW9uZW5kOnZvKCJBbmltYXRpb24iLCJBbmltYXRpb25FbmQiKSxhbmltYXRpb25pdGVyYXRpb246dm8oIkFuaW1hdGlvbiIsIkFuaW1hdGlvbkl0ZXJhdGlvbiIpLGFuaW1hdGlvbnN0YXJ0OnZvKCJBbmltYXRpb24iLCJBbmltYXRpb25TdGFydCIpLHRyYW5zaXRpb25lbmQ6dm8oIlRyYW5zaXRpb24iLCJUcmFuc2l0aW9uRW5kIil9LG9vPXt9LGlvPXt9O2MmJihpbz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKS5zdHlsZSwiQW5pbWF0aW9uRXZlbnQiaW4gd2luZG93fHwoZGVsZXRlIEdhLmFuaW1hdGlvbmVuZC5hbmltYXRpb24sZGVsZXRlIEdhLmFuaW1hdGlvbml0ZXJhdGlvbi5hbmltYXRpb24sZGVsZXRlIEdhLmFuaW1hdGlvbnN0YXJ0LmFuaW1hdGlvbiksIlRyYW5zaXRpb25FdmVudCJpbiB3aW5kb3d8fGRlbGV0ZSBHYS50cmFuc2l0aW9uZW5kLnRyYW5zaXRpb24pO2Z1bmN0aW9uIE9vKG8pe2lmKG9vW29dKXJldHVybiBvb1tvXTtpZighR2Fbb10pcmV0dXJuIG87dmFyIGw9R2Fbb10sYjtmb3IoYiBpbiBsKWlmKGwuaGFzT3duUHJvcGVydHkoYikmJmIgaW4gaW8pcmV0dXJuIG9vW29dPWxbYl07cmV0dXJuIG99dmFyIGxvPU9vKCJhbmltYXRpb25lbmQiKSx4bz1PbygiYW5pbWF0aW9uaXRlcmF0aW9uIiksQ289T28oImFuaW1hdGlvbnN0YXJ0IiksSGk9T28oInRyYW5zaXRpb25lbmQiKSxlbD1uZXcgTWFwLHRsPSJhYm9ydCBhdXhDbGljayBjYW5jZWwgY2FuUGxheSBjYW5QbGF5VGhyb3VnaCBjbGljayBjbG9zZSBjb250ZXh0TWVudSBjb3B5IGN1dCBkcmFnIGRyYWdFbmQgZHJhZ0VudGVyIGRyYWdFeGl0IGRyYWdMZWF2ZSBkcmFnT3ZlciBkcmFnU3RhcnQgZHJvcCBkdXJhdGlvbkNoYW5nZSBlbXB0aWVkIGVuY3J5cHRlZCBlbmRlZCBlcnJvciBnb3RQb2ludGVyQ2FwdHVyZSBpbnB1dCBpbnZhbGlkIGtleURvd24ga2V5UHJlc3Mga2V5VXAgbG9hZCBsb2FkZWREYXRhIGxvYWRlZE1ldGFkYXRhIGxvYWRTdGFydCBsb3N0UG9pbnRlckNhcHR1cmUgbW91c2VEb3duIG1vdXNlTW92ZSBtb3VzZU91dCBtb3VzZU92ZXIgbW91c2VVcCBwYXN0ZSBwYXVzZSBwbGF5IHBsYXlpbmcgcG9pbnRlckNhbmNlbCBwb2ludGVyRG93biBwb2ludGVyTW92ZSBwb2ludGVyT3V0IHBvaW50ZXJPdmVyIHBvaW50ZXJVcCBwcm9ncmVzcyByYXRlQ2hhbmdlIHJlc2V0IHJlc2l6ZSBzZWVrZWQgc2Vla2luZyBzdGFsbGVkIHN1Ym1pdCBzdXNwZW5kIHRpbWVVcGRhdGUgdG91Y2hDYW5jZWwgdG91Y2hFbmQgdG91Y2hTdGFydCB2b2x1bWVDaGFuZ2Ugc2Nyb2xsIHRvZ2dsZSB0b3VjaE1vdmUgd2FpdGluZyB3aGVlbCIuc3BsaXQoIiAiKTtmdW5jdGlvbiBYbyhvLGwpe2VsLnNldChvLGwpLGEobCxbb10pfWZvcih2YXIgRGk9MDtEaTx0bC5sZW5ndGg7RGkrKyl7dmFyIG5sPXRsW0RpXSx5bD1ubC50b0xvd2VyQ2FzZSgpLE10PW5sWzBdLnRvVXBwZXJDYXNlKCkrbmwuc2xpY2UoMSk7WG8oeWwsIm9uIitNdCl9WG8obG8sIm9uQW5pbWF0aW9uRW5kIiksWG8oeG8sIm9uQW5pbWF0aW9uSXRlcmF0aW9uIiksWG8oQ28sIm9uQW5pbWF0aW9uU3RhcnQiKSxYbygiZGJsY2xpY2siLCJvbkRvdWJsZUNsaWNrIiksWG8oImZvY3VzaW4iLCJvbkZvY3VzIiksWG8oImZvY3Vzb3V0Iiwib25CbHVyIiksWG8oSGksIm9uVHJhbnNpdGlvbkVuZCIpLHUoIm9uTW91c2VFbnRlciIsWyJtb3VzZW91dCIsIm1vdXNlb3ZlciJdKSx1KCJvbk1vdXNlTGVhdmUiLFsibW91c2VvdXQiLCJtb3VzZW92ZXIiXSksdSgib25Qb2ludGVyRW50ZXIiLFsicG9pbnRlcm91dCIsInBvaW50ZXJvdmVyIl0pLHUoIm9uUG9pbnRlckxlYXZlIixbInBvaW50ZXJvdXQiLCJwb2ludGVyb3ZlciJdKSxhKCJvbkNoYW5nZSIsImNoYW5nZSBjbGljayBmb2N1c2luIGZvY3Vzb3V0IGlucHV0IGtleWRvd24ga2V5dXAgc2VsZWN0aW9uY2hhbmdlIi5zcGxpdCgiICIpKSxhKCJvblNlbGVjdCIsImZvY3Vzb3V0IGNvbnRleHRtZW51IGRyYWdlbmQgZm9jdXNpbiBrZXlkb3duIGtleXVwIG1vdXNlZG93biBtb3VzZXVwIHNlbGVjdGlvbmNoYW5nZSIuc3BsaXQoIiAiKSksYSgib25CZWZvcmVJbnB1dCIsWyJjb21wb3NpdGlvbmVuZCIsImtleXByZXNzIiwidGV4dElucHV0IiwicGFzdGUiXSksYSgib25Db21wb3NpdGlvbkVuZCIsImNvbXBvc2l0aW9uZW5kIGZvY3Vzb3V0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgbW91c2Vkb3duIi5zcGxpdCgiICIpKSxhKCJvbkNvbXBvc2l0aW9uU3RhcnQiLCJjb21wb3NpdGlvbnN0YXJ0IGZvY3Vzb3V0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgbW91c2Vkb3duIi5zcGxpdCgiICIpKSxhKCJvbkNvbXBvc2l0aW9uVXBkYXRlIiwiY29tcG9zaXRpb251cGRhdGUgZm9jdXNvdXQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBtb3VzZWRvd24iLnNwbGl0KCIgIikpO3ZhciBLZT0iYWJvcnQgY2FucGxheSBjYW5wbGF5dGhyb3VnaCBkdXJhdGlvbmNoYW5nZSBlbXB0aWVkIGVuY3J5cHRlZCBlbmRlZCBlcnJvciBsb2FkZWRkYXRhIGxvYWRlZG1ldGFkYXRhIGxvYWRzdGFydCBwYXVzZSBwbGF5IHBsYXlpbmcgcHJvZ3Jlc3MgcmF0ZWNoYW5nZSByZXNpemUgc2Vla2VkIHNlZWtpbmcgc3RhbGxlZCBzdXNwZW5kIHRpbWV1cGRhdGUgdm9sdW1lY2hhbmdlIHdhaXRpbmciLnNwbGl0KCIgIikseXQ9bmV3IFNldCgiY2FuY2VsIGNsb3NlIGludmFsaWQgbG9hZCBzY3JvbGwgdG9nZ2xlIi5zcGxpdCgiICIpLmNvbmNhdChLZSkpO2Z1bmN0aW9uIFB0KG8sbCxiKXt2YXIgRj1vLnR5cGV8fCJ1bmtub3duLWV2ZW50IjtvLmN1cnJlbnRUYXJnZXQ9YixOdChGLGwsdm9pZCAwLG8pLG8uY3VycmVudFRhcmdldD1udWxsfWZ1bmN0aW9uIEF0KG8sbCl7bD0obCY0KSE9PTA7Zm9yKHZhciBiPTA7YjxvLmxlbmd0aDtiKyspe3ZhciBGPW9bYl0sWD1GLmV2ZW50O0Y9Ri5saXN0ZW5lcnM7ZTp7dmFyIGhlPXZvaWQgMDtpZihsKWZvcih2YXIgVWU9Ri5sZW5ndGgtMTswPD1VZTtVZS0tKXt2YXIgeHQ9RltVZV0sJHQ9eHQuaW5zdGFuY2UsSW49eHQuY3VycmVudFRhcmdldDtpZih4dD14dC5saXN0ZW5lciwkdCE9PWhlJiZYLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpYnJlYWsgZTtQdChYLHh0LEluKSxoZT0kdH1lbHNlIGZvcihVZT0wO1VlPEYubGVuZ3RoO1VlKyspe2lmKHh0PUZbVWVdLCR0PXh0Lmluc3RhbmNlLEluPXh0LmN1cnJlbnRUYXJnZXQseHQ9eHQubGlzdGVuZXIsJHQhPT1oZSYmWC5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpKWJyZWFrIGU7UHQoWCx4dCxJbiksaGU9JHR9fX1pZihYdCl0aHJvdyBvPWZuLFh0PSExLGZuPW51bGwsb31mdW5jdGlvbiBVdChvLGwpe3ZhciBiPWxbX2ldO2I9PT12b2lkIDAmJihiPWxbX2ldPW5ldyBTZXQpO3ZhciBGPW8rIl9fYnViYmxlIjtiLmhhcyhGKXx8KHpyKGwsbywyLCExKSxiLmFkZChGKSl9ZnVuY3Rpb24gZG4obyxsLGIpe3ZhciBGPTA7bCYmKEZ8PTQpLHpyKGIsbyxGLGwpfXZhciBkcj0iX3JlYWN0TGlzdGVuaW5nIitNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyKTtmdW5jdGlvbiB0cihvKXtpZighb1tkcl0pe29bZHJdPSEwLGkuZm9yRWFjaChmdW5jdGlvbihiKXtiIT09InNlbGVjdGlvbmNoYW5nZSImJih5dC5oYXMoYil8fGRuKGIsITEsbyksZG4oYiwhMCxvKSl9KTt2YXIgbD1vLm5vZGVUeXBlPT09OT9vOm8ub3duZXJEb2N1bWVudDtsPT09bnVsbHx8bFtkcl18fChsW2RyXT0hMCxkbigic2VsZWN0aW9uY2hhbmdlIiwhMSxsKSl9fWZ1bmN0aW9uIHpyKG8sbCxiLEYpe3N3aXRjaChwbihsKSl7Y2FzZSAxOnZhciBYPWR0O2JyZWFrO2Nhc2UgNDpYPUV0O2JyZWFrO2RlZmF1bHQ6WD1IdH1iPVguYmluZChudWxsLGwsYixvKSxYPXZvaWQgMCwhUWV8fGwhPT0idG91Y2hzdGFydCImJmwhPT0idG91Y2htb3ZlIiYmbCE9PSJ3aGVlbCJ8fChYPSEwKSxGP1ghPT12b2lkIDA/by5hZGRFdmVudExpc3RlbmVyKGwsYix7Y2FwdHVyZTohMCxwYXNzaXZlOlh9KTpvLmFkZEV2ZW50TGlzdGVuZXIobCxiLCEwKTpYIT09dm9pZCAwP28uYWRkRXZlbnRMaXN0ZW5lcihsLGIse3Bhc3NpdmU6WH0pOm8uYWRkRXZlbnRMaXN0ZW5lcihsLGIsITEpfWZ1bmN0aW9uIHdyKG8sbCxiLEYsWCl7dmFyIGhlPUY7aWYoIShsJjEpJiYhKGwmMikmJkYhPT1udWxsKWU6Zm9yKDs7KXtpZihGPT09bnVsbClyZXR1cm47dmFyIFVlPUYudGFnO2lmKFVlPT09M3x8VWU9PT00KXt2YXIgeHQ9Ri5zdGF0ZU5vZGUuY29udGFpbmVySW5mbztpZih4dD09PVh8fHh0Lm5vZGVUeXBlPT09OCYmeHQucGFyZW50Tm9kZT09PVgpYnJlYWs7aWYoVWU9PT00KWZvcihVZT1GLnJldHVybjtVZSE9PW51bGw7KXt2YXIgJHQ9VWUudGFnO2lmKCgkdD09PTN8fCR0PT09NCkmJigkdD1VZS5zdGF0ZU5vZGUuY29udGFpbmVySW5mbywkdD09PVh8fCR0Lm5vZGVUeXBlPT09OCYmJHQucGFyZW50Tm9kZT09PVgpKXJldHVybjtVZT1VZS5yZXR1cm59Zm9yKDt4dCE9PW51bGw7KXtpZihVZT1Ebih4dCksVWU9PT1udWxsKXJldHVybjtpZigkdD1VZS50YWcsJHQ9PT01fHwkdD09PTYpe0Y9aGU9VWU7Y29udGludWUgZX14dD14dC5wYXJlbnROb2RlfX1GPUYucmV0dXJufWh0KGZ1bmN0aW9uKCl7dmFyIEluPWhlLGdyPU5lKGIpLFNyPVtdO2U6e3ZhciB2cj1lbC5nZXQobyk7aWYodnIhPT12b2lkIDApe3ZhciBVcj1FbixZcj1vO3N3aXRjaChvKXtjYXNlImtleXByZXNzIjppZihybihiKT09PTApYnJlYWsgZTtjYXNlImtleWRvd24iOmNhc2Uia2V5dXAiOlVyPSRhO2JyZWFrO2Nhc2UiZm9jdXNpbiI6WXI9ImZvY3VzIixVcj1mYTticmVhaztjYXNlImZvY3Vzb3V0IjpZcj0iYmx1ciIsVXI9ZmE7YnJlYWs7Y2FzZSJiZWZvcmVibHVyIjpjYXNlImFmdGVyYmx1ciI6VXI9ZmE7YnJlYWs7Y2FzZSJjbGljayI6aWYoYi5idXR0b249PT0yKWJyZWFrIGU7Y2FzZSJhdXhjbGljayI6Y2FzZSJkYmxjbGljayI6Y2FzZSJtb3VzZWRvd24iOmNhc2UibW91c2Vtb3ZlIjpjYXNlIm1vdXNldXAiOmNhc2UibW91c2VvdXQiOmNhc2UibW91c2VvdmVyIjpjYXNlImNvbnRleHRtZW51IjpVcj1HcjticmVhaztjYXNlImRyYWciOmNhc2UiZHJhZ2VuZCI6Y2FzZSJkcmFnZW50ZXIiOmNhc2UiZHJhZ2V4aXQiOmNhc2UiZHJhZ2xlYXZlIjpjYXNlImRyYWdvdmVyIjpjYXNlImRyYWdzdGFydCI6Y2FzZSJkcm9wIjpVcj1yYTticmVhaztjYXNlInRvdWNoY2FuY2VsIjpjYXNlInRvdWNoZW5kIjpjYXNlInRvdWNobW92ZSI6Y2FzZSJ0b3VjaHN0YXJ0IjpVcj1GYTticmVhaztjYXNlIGxvOmNhc2UgeG86Y2FzZSBDbzpVcj1lYTticmVhaztjYXNlIEhpOlVyPXJvO2JyZWFrO2Nhc2Uic2Nyb2xsIjpVcj1wcjticmVhaztjYXNlIndoZWVsIjpVcj1ubzticmVhaztjYXNlImNvcHkiOmNhc2UiY3V0IjpjYXNlInBhc3RlIjpVcj1iYTticmVhaztjYXNlImdvdHBvaW50ZXJjYXB0dXJlIjpjYXNlImxvc3Rwb2ludGVyY2FwdHVyZSI6Y2FzZSJwb2ludGVyY2FuY2VsIjpjYXNlInBvaW50ZXJkb3duIjpjYXNlInBvaW50ZXJtb3ZlIjpjYXNlInBvaW50ZXJvdXQiOmNhc2UicG9pbnRlcm92ZXIiOmNhc2UicG9pbnRlcnVwIjpVcj1Wcn12YXIgUXI9KGwmNCkhPT0wLFBvPSFRciYmbz09PSJzY3JvbGwiLHVuPVFyP3ZyIT09bnVsbD92cisiQ2FwdHVyZSI6bnVsbDp2cjtRcj1bXTtmb3IodmFyIFd0PUluLGhuO1d0IT09bnVsbDspe2huPVd0O3ZhciBUcj1obi5zdGF0ZU5vZGU7aWYoaG4udGFnPT09NSYmVHIhPT1udWxsJiYoaG49VHIsdW4hPT1udWxsJiYoVHI9emUoV3QsdW4pLFRyIT1udWxsJiZRci5wdXNoKEJyKFd0LFRyLGhuKSkpKSxQbylicmVhaztXdD1XdC5yZXR1cm59MDxRci5sZW5ndGgmJih2cj1uZXcgVXIodnIsWXIsbnVsbCxiLGdyKSxTci5wdXNoKHtldmVudDp2cixsaXN0ZW5lcnM6UXJ9KSl9fWlmKCEobCY3KSl7ZTp7aWYodnI9bz09PSJtb3VzZW92ZXIifHxvPT09InBvaW50ZXJvdmVyIixVcj1vPT09Im1vdXNlb3V0Inx8bz09PSJwb2ludGVyb3V0Iix2ciYmYiE9PURlJiYoWXI9Yi5yZWxhdGVkVGFyZ2V0fHxiLmZyb21FbGVtZW50KSYmKERuKFlyKXx8WXJbcW9dKSlicmVhayBlO2lmKChVcnx8dnIpJiYodnI9Z3Iud2luZG93PT09Z3I/Z3I6KHZyPWdyLm93bmVyRG9jdW1lbnQpP3ZyLmRlZmF1bHRWaWV3fHx2ci5wYXJlbnRXaW5kb3c6d2luZG93LFVyPyhZcj1iLnJlbGF0ZWRUYXJnZXR8fGIudG9FbGVtZW50LFVyPUluLFlyPVlyP0RuKFlyKTpudWxsLFlyIT09bnVsbCYmKFBvPVpuKFlyKSxZciE9PVBvfHxZci50YWchPT01JiZZci50YWchPT02KSYmKFlyPW51bGwpKTooVXI9bnVsbCxZcj1JbiksVXIhPT1Zcikpe2lmKFFyPUdyLFRyPSJvbk1vdXNlTGVhdmUiLHVuPSJvbk1vdXNlRW50ZXIiLFd0PSJtb3VzZSIsKG89PT0icG9pbnRlcm91dCJ8fG89PT0icG9pbnRlcm92ZXIiKSYmKFFyPVZyLFRyPSJvblBvaW50ZXJMZWF2ZSIsdW49Im9uUG9pbnRlckVudGVyIixXdD0icG9pbnRlciIpLFBvPVVyPT1udWxsP3ZyOmtyKFVyKSxobj1Zcj09bnVsbD92cjprcihZciksdnI9bmV3IFFyKFRyLFd0KyJsZWF2ZSIsVXIsYixnciksdnIudGFyZ2V0PVBvLHZyLnJlbGF0ZWRUYXJnZXQ9aG4sVHI9bnVsbCxEbihncik9PT1JbiYmKFFyPW5ldyBRcih1bixXdCsiZW50ZXIiLFlyLGIsZ3IpLFFyLnRhcmdldD1obixRci5yZWxhdGVkVGFyZ2V0PVBvLFRyPVFyKSxQbz1UcixVciYmWXIpdDp7Zm9yKFFyPVVyLHVuPVlyLFd0PTAsaG49UXI7aG47aG49c2EoaG4pKVd0Kys7Zm9yKGhuPTAsVHI9dW47VHI7VHI9c2EoVHIpKWhuKys7Zm9yKDswPFd0LWhuOylRcj1zYShRciksV3QtLTtmb3IoOzA8aG4tV3Q7KXVuPXNhKHVuKSxobi0tO2Zvcig7V3QtLTspe2lmKFFyPT09dW58fHVuIT09bnVsbCYmUXI9PT11bi5hbHRlcm5hdGUpYnJlYWsgdDtRcj1zYShRciksdW49c2EodW4pfVFyPW51bGx9ZWxzZSBRcj1udWxsO1VyIT09bnVsbCYmd2EoU3IsdnIsVXIsUXIsITEpLFlyIT09bnVsbCYmUG8hPT1udWxsJiZ3YShTcixQbyxZcixRciwhMCl9fWU6e2lmKHZyPUluP2tyKEluKTp3aW5kb3csVXI9dnIubm9kZU5hbWUmJnZyLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCksVXI9PT0ic2VsZWN0Inx8VXI9PT0iaW5wdXQiJiZ2ci50eXBlPT09ImZpbGUiKXZhciBxcj1CdDtlbHNlIGlmKGllKHZyKSlpZihMdClxcj1DbjtlbHNle3FyPXFuO3ZhciBjYT1Dcn1lbHNlKFVyPXZyLm5vZGVOYW1lKSYmVXIudG9Mb3dlckNhc2UoKT09PSJpbnB1dCImJih2ci50eXBlPT09ImNoZWNrYm94Inx8dnIudHlwZT09PSJyYWRpbyIpJiYocXI9anIpO2lmKHFyJiYocXI9cXIobyxJbikpKXt5ZShTcixxcixiLGdyKTticmVhayBlfWNhJiZjYShvLHZyLEluKSxvPT09ImZvY3Vzb3V0IiYmKGNhPXZyLl93cmFwcGVyU3RhdGUpJiZjYS5jb250cm9sbGVkJiZ2ci50eXBlPT09Im51bWJlciImJlUodnIsIm51bWJlciIsdnIudmFsdWUpfXN3aXRjaChjYT1Jbj9rcihJbik6d2luZG93LG8pe2Nhc2UiZm9jdXNpbiI6KGllKGNhKXx8Y2EuY29udGVudEVkaXRhYmxlPT09InRydWUiKSYmKGdhPWNhLEhhPUluLFBhPW51bGwpO2JyZWFrO2Nhc2UiZm9jdXNvdXQiOlBhPUhhPWdhPW51bGw7YnJlYWs7Y2FzZSJtb3VzZWRvd24iOmVvPSEwO2JyZWFrO2Nhc2UiY29udGV4dG1lbnUiOmNhc2UibW91c2V1cCI6Y2FzZSJkcmFnZW5kIjplbz0hMSxVYShTcixiLGdyKTticmVhaztjYXNlInNlbGVjdGlvbmNoYW5nZSI6aWYoSWEpYnJlYWs7Y2FzZSJrZXlkb3duIjpjYXNlImtleXVwIjpVYShTcixiLGdyKX12YXIgdWE7aWYoZ28pZTp7c3dpdGNoKG8pe2Nhc2UiY29tcG9zaXRpb25zdGFydCI6dmFyIENhPSJvbkNvbXBvc2l0aW9uU3RhcnQiO2JyZWFrIGU7Y2FzZSJjb21wb3NpdGlvbmVuZCI6Q2E9Im9uQ29tcG9zaXRpb25FbmQiO2JyZWFrIGU7Y2FzZSJjb21wb3NpdGlvbnVwZGF0ZSI6Q2E9Im9uQ29tcG9zaXRpb25VcGRhdGUiO2JyZWFrIGV9Q2E9dm9pZCAwfWVsc2UgSG8/YW8obyxiKSYmKENhPSJvbkNvbXBvc2l0aW9uRW5kIik6bz09PSJrZXlkb3duIiYmYi5rZXlDb2RlPT09MjI5JiYoQ2E9Im9uQ29tcG9zaXRpb25TdGFydCIpO0NhJiYoVW8mJmIubG9jYWxlIT09ImtvIiYmKEhvfHxDYSE9PSJvbkNvbXBvc2l0aW9uU3RhcnQiP0NhPT09Im9uQ29tcG9zaXRpb25FbmQiJiZIbyYmKHVhPXpuKCkpOihjbj1ncixvcj0idmFsdWUiaW4gY24/Y24udmFsdWU6Y24udGV4dENvbnRlbnQsSG89ITApKSxjYT1kYShJbixDYSksMDxjYS5sZW5ndGgmJihDYT1uZXcgUnIoQ2EsbyxudWxsLGIsZ3IpLFNyLnB1c2goe2V2ZW50OkNhLGxpc3RlbmVyczpjYX0pLHVhP0NhLmRhdGE9dWE6KHVhPXBpKGIpLHVhIT09bnVsbCYmKENhLmRhdGE9dWEpKSkpLCh1YT1UaT9SbyhvLGIpOkZvKG8sYikpJiYoSW49ZGEoSW4sIm9uQmVmb3JlSW5wdXQiKSwwPEluLmxlbmd0aCYmKGdyPW5ldyBScigib25CZWZvcmVJbnB1dCIsImJlZm9yZWlucHV0IixudWxsLGIsZ3IpLFNyLnB1c2goe2V2ZW50OmdyLGxpc3RlbmVyczpJbn0pLGdyLmRhdGE9dWEpKX1BdChTcixsKX0pfWZ1bmN0aW9uIEJyKG8sbCxiKXtyZXR1cm57aW5zdGFuY2U6byxsaXN0ZW5lcjpsLGN1cnJlbnRUYXJnZXQ6Yn19ZnVuY3Rpb24gZGEobyxsKXtmb3IodmFyIGI9bCsiQ2FwdHVyZSIsRj1bXTtvIT09bnVsbDspe3ZhciBYPW8saGU9WC5zdGF0ZU5vZGU7WC50YWc9PT01JiZoZSE9PW51bGwmJihYPWhlLGhlPXplKG8sYiksaGUhPW51bGwmJkYudW5zaGlmdChCcihvLGhlLFgpKSxoZT16ZShvLGwpLGhlIT1udWxsJiZGLnB1c2goQnIobyxoZSxYKSkpLG89by5yZXR1cm59cmV0dXJuIEZ9ZnVuY3Rpb24gc2Eobyl7aWYobz09PW51bGwpcmV0dXJuIG51bGw7ZG8gbz1vLnJldHVybjt3aGlsZShvJiZvLnRhZyE9PTUpO3JldHVybiBvfHxudWxsfWZ1bmN0aW9uIHdhKG8sbCxiLEYsWCl7Zm9yKHZhciBoZT1sLl9yZWFjdE5hbWUsVWU9W107YiE9PW51bGwmJmIhPT1GOyl7dmFyIHh0PWIsJHQ9eHQuYWx0ZXJuYXRlLEluPXh0LnN0YXRlTm9kZTtpZigkdCE9PW51bGwmJiR0PT09RilicmVhazt4dC50YWc9PT01JiZJbiE9PW51bGwmJih4dD1JbixYPygkdD16ZShiLGhlKSwkdCE9bnVsbCYmVWUudW5zaGlmdChCcihiLCR0LHh0KSkpOlh8fCgkdD16ZShiLGhlKSwkdCE9bnVsbCYmVWUucHVzaChCcihiLCR0LHh0KSkpKSxiPWIucmV0dXJufVVlLmxlbmd0aCE9PTAmJm8ucHVzaCh7ZXZlbnQ6bCxsaXN0ZW5lcnM6VWV9KX12YXIgemE9L1xyXG4/L2csTGE9L1x1MDAwMHxcdUZGRkQvZztmdW5jdGlvbiBXYShvKXtyZXR1cm4odHlwZW9mIG89PSJzdHJpbmciP286IiIrbykucmVwbGFjZSh6YSxgCitgKS5yZXBsYWNlKExhLCIiKX1mdW5jdGlvbiBPYShvLGwsYil7aWYobD1XYShsKSxXYShvKSE9PWwmJmIpdGhyb3cgRXJyb3IodCg0MjUpKX1mdW5jdGlvbiBKYSgpe312YXIgdG89bnVsbCx3bz1udWxsO2Z1bmN0aW9uIGhvKG8sbCl7cmV0dXJuIG89PT0idGV4dGFyZWEifHxvPT09Im5vc2NyaXB0Inx8dHlwZW9mIGwuY2hpbGRyZW49PSJzdHJpbmcifHx0eXBlb2YgbC5jaGlsZHJlbj09Im51bWJlciJ8fHR5cGVvZiBsLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPT0ib2JqZWN0IiYmbC5kYW5nZXJvdXNseVNldElubmVySFRNTCE9PW51bGwmJmwuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwuX19odG1sIT1udWxsfXZhciB5bz10eXBlb2Ygc2V0VGltZW91dD09ImZ1bmN0aW9uIj9zZXRUaW1lb3V0OnZvaWQgMCxRbz10eXBlb2YgY2xlYXJUaW1lb3V0PT0iZnVuY3Rpb24iP2NsZWFyVGltZW91dDp2b2lkIDAsa289dHlwZW9mIFByb21pc2U9PSJmdW5jdGlvbiI/UHJvbWlzZTp2b2lkIDAseWk9dHlwZW9mIHF1ZXVlTWljcm90YXNrPT0iZnVuY3Rpb24iP3F1ZXVlTWljcm90YXNrOnR5cGVvZiBrbyE9InVuZGVmaW5lZCI/ZnVuY3Rpb24obyl7cmV0dXJuIGtvLnJlc29sdmUobnVsbCkudGhlbihvKS5jYXRjaChNaSl9OnlvO2Z1bmN0aW9uIE1pKG8pe3NldFRpbWVvdXQoZnVuY3Rpb24oKXt0aHJvdyBvfSl9ZnVuY3Rpb24gQ2kobyxsKXt2YXIgYj1sLEY9MDtkb3t2YXIgWD1iLm5leHRTaWJsaW5nO2lmKG8ucmVtb3ZlQ2hpbGQoYiksWCYmWC5ub2RlVHlwZT09PTgpaWYoYj1YLmRhdGEsYj09PSIvJCIpe2lmKEY9PT0wKXtvLnJlbW92ZUNoaWxkKFgpLEllKGwpO3JldHVybn1GLS19ZWxzZSBiIT09IiQiJiZiIT09IiQ/IiYmYiE9PSIkISJ8fEYrKztiPVh9d2hpbGUoYik7SWUobCl9ZnVuY3Rpb24gRG8obyl7Zm9yKDtvIT1udWxsO289by5uZXh0U2libGluZyl7dmFyIGw9by5ub2RlVHlwZTtpZihsPT09MXx8bD09PTMpYnJlYWs7aWYobD09PTgpe2lmKGw9by5kYXRhLGw9PT0iJCJ8fGw9PT0iJCEifHxsPT09IiQ/IilicmVhaztpZihsPT09Ii8kIilyZXR1cm4gbnVsbH19cmV0dXJuIG99ZnVuY3Rpb24gS2kobyl7bz1vLnByZXZpb3VzU2libGluZztmb3IodmFyIGw9MDtvOyl7aWYoby5ub2RlVHlwZT09PTgpe3ZhciBiPW8uZGF0YTtpZihiPT09IiQifHxiPT09IiQhInx8Yj09PSIkPyIpe2lmKGw9PT0wKXJldHVybiBvO2wtLX1lbHNlIGI9PT0iLyQiJiZsKyt9bz1vLnByZXZpb3VzU2libGluZ31yZXR1cm4gbnVsbH12YXIgUmk9TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMiksS289Il9fcmVhY3RGaWJlciQiK1JpLEpvPSJfX3JlYWN0UHJvcHMkIitSaSxxbz0iX19yZWFjdENvbnRhaW5lciQiK1JpLF9pPSJfX3JlYWN0RXZlbnRzJCIrUmksRW89Il9fcmVhY3RMaXN0ZW5lcnMkIitSaSxrbj0iX19yZWFjdEhhbmRsZXMkIitSaTtmdW5jdGlvbiBEbihvKXt2YXIgbD1vW0tvXTtpZihsKXJldHVybiBsO2Zvcih2YXIgYj1vLnBhcmVudE5vZGU7Yjspe2lmKGw9Yltxb118fGJbS29dKXtpZihiPWwuYWx0ZXJuYXRlLGwuY2hpbGQhPT1udWxsfHxiIT09bnVsbCYmYi5jaGlsZCE9PW51bGwpZm9yKG89S2kobyk7byE9PW51bGw7KXtpZihiPW9bS29dKXJldHVybiBiO289S2kobyl9cmV0dXJuIGx9bz1iLGI9by5wYXJlbnROb2RlfXJldHVybiBudWxsfWZ1bmN0aW9uIFdyKG8pe3JldHVybiBvPW9bS29dfHxvW3FvXSwhb3x8by50YWchPT01JiZvLnRhZyE9PTYmJm8udGFnIT09MTMmJm8udGFnIT09Mz9udWxsOm99ZnVuY3Rpb24ga3Iobyl7aWYoby50YWc9PT01fHxvLnRhZz09PTYpcmV0dXJuIG8uc3RhdGVOb2RlO3Rocm93IEVycm9yKHQoMzMpKX1mdW5jdGlvbiBpYShvKXtyZXR1cm4gb1tKb118fG51bGx9dmFyIGFhPVtdLG5hPS0xO2Z1bmN0aW9uIG1hKG8pe3JldHVybntjdXJyZW50Om99fWZ1bmN0aW9uIHhyKG8pezA+bmF8fChvLmN1cnJlbnQ9YWFbbmFdLGFhW25hXT1udWxsLG5hLS0pfWZ1bmN0aW9uIFpyKG8sbCl7bmErKyxhYVtuYV09by5jdXJyZW50LG8uY3VycmVudD1sfXZhciBWYT17fSxEYT1tYShWYSkscGE9bWEoITEpLHNvPVZhO2Z1bmN0aW9uIHFhKG8sbCl7dmFyIGI9by50eXBlLmNvbnRleHRUeXBlcztpZighYilyZXR1cm4gVmE7dmFyIEY9by5zdGF0ZU5vZGU7aWYoRiYmRi5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZFVubWFza2VkQ2hpbGRDb250ZXh0PT09bClyZXR1cm4gRi5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZE1hc2tlZENoaWxkQ29udGV4dDt2YXIgWD17fSxoZTtmb3IoaGUgaW4gYilYW2hlXT1sW2hlXTtyZXR1cm4gRiYmKG89by5zdGF0ZU5vZGUsby5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZFVubWFza2VkQ2hpbGRDb250ZXh0PWwsby5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZE1hc2tlZENoaWxkQ29udGV4dD1YKSxYfWZ1bmN0aW9uIGplKG8pe3JldHVybiBvPW8uY2hpbGRDb250ZXh0VHlwZXMsbyE9bnVsbH1mdW5jdGlvbiBLcigpe3hyKHBhKSx4cihEYSl9ZnVuY3Rpb24gQW8obyxsLGIpe2lmKERhLmN1cnJlbnQhPT1WYSl0aHJvdyBFcnJvcih0KDE2OCkpO1pyKERhLGwpLFpyKHBhLGIpfWZ1bmN0aW9uIElvKG8sbCxiKXt2YXIgRj1vLnN0YXRlTm9kZTtpZihsPWwuY2hpbGRDb250ZXh0VHlwZXMsdHlwZW9mIEYuZ2V0Q2hpbGRDb250ZXh0IT0iZnVuY3Rpb24iKXJldHVybiBiO0Y9Ri5nZXRDaGlsZENvbnRleHQoKTtmb3IodmFyIFggaW4gRilpZighKFggaW4gbCkpdGhyb3cgRXJyb3IodCgxMDgsUmUobyl8fCJVbmtub3duIixYKSk7cmV0dXJuIFAoe30sYixGKX1mdW5jdGlvbiBlaShvKXtyZXR1cm4gbz0obz1vLnN0YXRlTm9kZSkmJm8uX19yZWFjdEludGVybmFsTWVtb2l6ZWRNZXJnZWRDaGlsZENvbnRleHR8fFZhLHNvPURhLmN1cnJlbnQsWnIoRGEsbyksWnIocGEscGEuY3VycmVudCksITB9ZnVuY3Rpb24gbnIobyxsLGIpe3ZhciBGPW8uc3RhdGVOb2RlO2lmKCFGKXRocm93IEVycm9yKHQoMTY5KSk7Yj8obz1JbyhvLGwsc28pLEYuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNZXJnZWRDaGlsZENvbnRleHQ9byx4cihwYSkseHIoRGEpLFpyKERhLG8pKTp4cihwYSksWnIocGEsYil9dmFyIHJpPW51bGwsQmk9ITEscmw9ITE7ZnVuY3Rpb24gY2kobyl7cmk9PT1udWxsP3JpPVtvXTpyaS5wdXNoKG8pfWZ1bmN0aW9uIHNsKG8pe0JpPSEwLGNpKG8pfWZ1bmN0aW9uIEthKCl7aWYoIXJsJiZyaSE9PW51bGwpe3JsPSEwO3ZhciBvPTAsbD1Gbjt0cnl7dmFyIGI9cmk7Zm9yKEZuPTE7bzxiLmxlbmd0aDtvKyspe3ZhciBGPWJbb107ZG8gRj1GKCEwKTt3aGlsZShGIT09bnVsbCl9cmk9bnVsbCxCaT0hMX1jYXRjaChYKXt0aHJvdyByaSE9PW51bGwmJihyaT1yaS5zbGljZShvKzEpKSxmdChZbixLYSksWH1maW5hbGx5e0ZuPWwscmw9ITF9fXJldHVybiBudWxsfXZhciBUbz1bXSxWaT0wLEdpPW51bGwsYm89MCxCbz1bXSxMbz0wLEVyPW51bGwsSWk9MSxhaT0iIjtmdW5jdGlvbiB1aShvLGwpe1RvW1ZpKytdPWJvLFRvW1ZpKytdPUdpLEdpPW8sYm89bH1mdW5jdGlvbiBZaShvLGwsYil7Qm9bTG8rK109SWksQm9bTG8rK109YWksQm9bTG8rK109RXIsRXI9bzt2YXIgRj1JaTtvPWFpO3ZhciBYPTMyLWNyKEYpLTE7RiY9figxPDxYKSxiKz0xO3ZhciBoZT0zMi1jcihsKStYO2lmKDMwPGhlKXt2YXIgVWU9WC1YJTU7aGU9KEYmKDE8PFVlKS0xKS50b1N0cmluZygzMiksRj4+PVVlLFgtPVVlLElpPTE8PDMyLWNyKGwpK1h8Yjw8WHxGLGFpPWhlK299ZWxzZSBJaT0xPDxoZXxiPDxYfEYsYWk9b31mdW5jdGlvbiBjbChvKXtvLnJldHVybiE9PW51bGwmJih1aShvLDEpLFlpKG8sMSwwKSl9ZnVuY3Rpb24gQ2wobyl7Zm9yKDtvPT09R2k7KUdpPVRvWy0tVmldLFRvW1ZpXT1udWxsLGJvPVRvWy0tVmldLFRvW1ZpXT1udWxsO2Zvcig7bz09PUVyOylFcj1Cb1stLUxvXSxCb1tMb109bnVsbCxhaT1Cb1stLUxvXSxCb1tMb109bnVsbCxJaT1Cb1stLUxvXSxCb1tMb109bnVsbH12YXIgZGk9bnVsbCxmaT1udWxsLG1vPSExLGJpPW51bGw7ZnVuY3Rpb24gVmwobyxsKXt2YXIgYj0kaSg1LG51bGwsbnVsbCwwKTtiLmVsZW1lbnRUeXBlPSJERUxFVEVEIixiLnN0YXRlTm9kZT1sLGIucmV0dXJuPW8sbD1vLmRlbGV0aW9ucyxsPT09bnVsbD8oby5kZWxldGlvbnM9W2JdLG8uZmxhZ3N8PTE2KTpsLnB1c2goYil9ZnVuY3Rpb24gTmwobyxsKXtzd2l0Y2goby50YWcpe2Nhc2UgNTp2YXIgYj1vLnR5cGU7cmV0dXJuIGw9bC5ub2RlVHlwZSE9PTF8fGIudG9Mb3dlckNhc2UoKSE9PWwubm9kZU5hbWUudG9Mb3dlckNhc2UoKT9udWxsOmwsbCE9PW51bGw/KG8uc3RhdGVOb2RlPWwsZGk9byxmaT1EbyhsLmZpcnN0Q2hpbGQpLCEwKTohMTtjYXNlIDY6cmV0dXJuIGw9by5wZW5kaW5nUHJvcHM9PT0iInx8bC5ub2RlVHlwZSE9PTM/bnVsbDpsLGwhPT1udWxsPyhvLnN0YXRlTm9kZT1sLGRpPW8sZmk9bnVsbCwhMCk6ITE7Y2FzZSAxMzpyZXR1cm4gbD1sLm5vZGVUeXBlIT09OD9udWxsOmwsbCE9PW51bGw/KGI9RXIhPT1udWxsP3tpZDpJaSxvdmVyZmxvdzphaX06bnVsbCxvLm1lbW9pemVkU3RhdGU9e2RlaHlkcmF0ZWQ6bCx0cmVlQ29udGV4dDpiLHJldHJ5TGFuZToxMDczNzQxODI0fSxiPSRpKDE4LG51bGwsbnVsbCwwKSxiLnN0YXRlTm9kZT1sLGIucmV0dXJuPW8sby5jaGlsZD1iLGRpPW8sZmk9bnVsbCwhMCk6ITE7ZGVmYXVsdDpyZXR1cm4hMX19ZnVuY3Rpb24gamwobyl7cmV0dXJuKG8ubW9kZSYxKSE9PTAmJihvLmZsYWdzJjEyOCk9PT0wfWZ1bmN0aW9uIFVsKG8pe2lmKG1vKXt2YXIgbD1maTtpZihsKXt2YXIgYj1sO2lmKCFObChvLGwpKXtpZihqbChvKSl0aHJvdyBFcnJvcih0KDQxOCkpO2w9RG8oYi5uZXh0U2libGluZyk7dmFyIEY9ZGk7bCYmTmwobyxsKT9WbChGLGIpOihvLmZsYWdzPW8uZmxhZ3MmLTQwOTd8Mixtbz0hMSxkaT1vKX19ZWxzZXtpZihqbChvKSl0aHJvdyBFcnJvcih0KDQxOCkpO28uZmxhZ3M9by5mbGFncyYtNDA5N3wyLG1vPSExLGRpPW99fX1mdW5jdGlvbiBycyhvKXtmb3Iobz1vLnJldHVybjtvIT09bnVsbCYmby50YWchPT01JiZvLnRhZyE9PTMmJm8udGFnIT09MTM7KW89by5yZXR1cm47ZGk9b31mdW5jdGlvbiBibChvKXtpZihvIT09ZGkpcmV0dXJuITE7aWYoIW1vKXJldHVybiBycyhvKSxtbz0hMCwhMTt2YXIgbDtpZigobD1vLnRhZyE9PTMpJiYhKGw9by50YWchPT01KSYmKGw9by50eXBlLGw9bCE9PSJoZWFkIiYmbCE9PSJib2R5IiYmIWhvKG8udHlwZSxvLm1lbW9pemVkUHJvcHMpKSxsJiYobD1maSkpe2lmKGpsKG8pKXRocm93IFdsKCksRXJyb3IodCg0MTgpKTtmb3IoO2w7KVZsKG8sbCksbD1EbyhsLm5leHRTaWJsaW5nKX1pZihycyhvKSxvLnRhZz09PTEzKXtpZihvPW8ubWVtb2l6ZWRTdGF0ZSxvPW8hPT1udWxsP28uZGVoeWRyYXRlZDpudWxsLCFvKXRocm93IEVycm9yKHQoMzE3KSk7ZTp7Zm9yKG89by5uZXh0U2libGluZyxsPTA7bzspe2lmKG8ubm9kZVR5cGU9PT04KXt2YXIgYj1vLmRhdGE7aWYoYj09PSIvJCIpe2lmKGw9PT0wKXtmaT1EbyhvLm5leHRTaWJsaW5nKTticmVhayBlfWwtLX1lbHNlIGIhPT0iJCImJmIhPT0iJCEiJiZiIT09IiQ/Inx8bCsrfW89by5uZXh0U2libGluZ31maT1udWxsfX1lbHNlIGZpPWRpP0RvKG8uc3RhdGVOb2RlLm5leHRTaWJsaW5nKTpudWxsO3JldHVybiEwfWZ1bmN0aW9uIFdsKCl7Zm9yKHZhciBvPWZpO287KW89RG8oby5uZXh0U2libGluZyl9ZnVuY3Rpb24gdWwoKXtmaT1kaT1udWxsLG1vPSExfWZ1bmN0aW9uIGtsKG8pe2JpPT09bnVsbD9iaT1bb106YmkucHVzaChvKX12YXIgTHM9SS5SZWFjdEN1cnJlbnRCYXRjaENvbmZpZztmdW5jdGlvbiBTbChvLGwsYil7aWYobz1iLnJlZixvIT09bnVsbCYmdHlwZW9mIG8hPSJmdW5jdGlvbiImJnR5cGVvZiBvIT0ib2JqZWN0Iil7aWYoYi5fb3duZXIpe2lmKGI9Yi5fb3duZXIsYil7aWYoYi50YWchPT0xKXRocm93IEVycm9yKHQoMzA5KSk7dmFyIEY9Yi5zdGF0ZU5vZGV9aWYoIUYpdGhyb3cgRXJyb3IodCgxNDcsbykpO3ZhciBYPUYsaGU9IiIrbztyZXR1cm4gbCE9PW51bGwmJmwucmVmIT09bnVsbCYmdHlwZW9mIGwucmVmPT0iZnVuY3Rpb24iJiZsLnJlZi5fc3RyaW5nUmVmPT09aGU/bC5yZWY6KGw9ZnVuY3Rpb24oVWUpe3ZhciB4dD1YLnJlZnM7VWU9PT1udWxsP2RlbGV0ZSB4dFtoZV06eHRbaGVdPVVlfSxsLl9zdHJpbmdSZWY9aGUsbCl9aWYodHlwZW9mIG8hPSJzdHJpbmciKXRocm93IEVycm9yKHQoMjg0KSk7aWYoIWIuX293bmVyKXRocm93IEVycm9yKHQoMjkwLG8pKX1yZXR1cm4gb31mdW5jdGlvbiBJbChvLGwpe3Rocm93IG89T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGwpLEVycm9yKHQoMzEsbz09PSJbb2JqZWN0IE9iamVjdF0iPyJvYmplY3Qgd2l0aCBrZXlzIHsiK09iamVjdC5rZXlzKGwpLmpvaW4oIiwgIikrIn0iOm8pKX1mdW5jdGlvbiBhcyhvKXt2YXIgbD1vLl9pbml0O3JldHVybiBsKG8uX3BheWxvYWQpfWZ1bmN0aW9uIG9zKG8pe2Z1bmN0aW9uIGwodW4sV3Qpe2lmKG8pe3ZhciBobj11bi5kZWxldGlvbnM7aG49PT1udWxsPyh1bi5kZWxldGlvbnM9W1d0XSx1bi5mbGFnc3w9MTYpOmhuLnB1c2goV3QpfX1mdW5jdGlvbiBiKHVuLFd0KXtpZighbylyZXR1cm4gbnVsbDtmb3IoO1d0IT09bnVsbDspbCh1bixXdCksV3Q9V3Quc2libGluZztyZXR1cm4gbnVsbH1mdW5jdGlvbiBGKHVuLFd0KXtmb3IodW49bmV3IE1hcDtXdCE9PW51bGw7KVd0LmtleSE9PW51bGw/dW4uc2V0KFd0LmtleSxXdCk6dW4uc2V0KFd0LmluZGV4LFd0KSxXdD1XdC5zaWJsaW5nO3JldHVybiB1bn1mdW5jdGlvbiBYKHVuLFd0KXtyZXR1cm4gdW49Z2wodW4sV3QpLHVuLmluZGV4PTAsdW4uc2libGluZz1udWxsLHVufWZ1bmN0aW9uIGhlKHVuLFd0LGhuKXtyZXR1cm4gdW4uaW5kZXg9aG4sbz8oaG49dW4uYWx0ZXJuYXRlLGhuIT09bnVsbD8oaG49aG4uaW5kZXgsaG48V3Q/KHVuLmZsYWdzfD0yLFd0KTpobik6KHVuLmZsYWdzfD0yLFd0KSk6KHVuLmZsYWdzfD0xMDQ4NTc2LFd0KX1mdW5jdGlvbiBVZSh1bil7cmV0dXJuIG8mJnVuLmFsdGVybmF0ZT09PW51bGwmJih1bi5mbGFnc3w9MiksdW59ZnVuY3Rpb24geHQodW4sV3QsaG4sVHIpe3JldHVybiBXdD09PW51bGx8fFd0LnRhZyE9PTY/KFd0PXBjKGhuLHVuLm1vZGUsVHIpLFd0LnJldHVybj11bixXdCk6KFd0PVgoV3QsaG4pLFd0LnJldHVybj11bixXdCl9ZnVuY3Rpb24gJHQodW4sV3QsaG4sVHIpe3ZhciBxcj1obi50eXBlO3JldHVybiBxcj09PUc/Z3IodW4sV3QsaG4ucHJvcHMuY2hpbGRyZW4sVHIsaG4ua2V5KTpXdCE9PW51bGwmJihXdC5lbGVtZW50VHlwZT09PXFyfHx0eXBlb2YgcXI9PSJvYmplY3QiJiZxciE9PW51bGwmJnFyLiQkdHlwZW9mPT09aiYmYXMocXIpPT09V3QudHlwZSk/KFRyPVgoV3QsaG4ucHJvcHMpLFRyLnJlZj1TbCh1bixXdCxobiksVHIucmV0dXJuPXVuLFRyKTooVHI9VHMoaG4udHlwZSxobi5rZXksaG4ucHJvcHMsbnVsbCx1bi5tb2RlLFRyKSxUci5yZWY9U2wodW4sV3QsaG4pLFRyLnJldHVybj11bixUcil9ZnVuY3Rpb24gSW4odW4sV3QsaG4sVHIpe3JldHVybiBXdD09PW51bGx8fFd0LnRhZyE9PTR8fFd0LnN0YXRlTm9kZS5jb250YWluZXJJbmZvIT09aG4uY29udGFpbmVySW5mb3x8V3Quc3RhdGVOb2RlLmltcGxlbWVudGF0aW9uIT09aG4uaW1wbGVtZW50YXRpb24/KFd0PXljKGhuLHVuLm1vZGUsVHIpLFd0LnJldHVybj11bixXdCk6KFd0PVgoV3QsaG4uY2hpbGRyZW58fFtdKSxXdC5yZXR1cm49dW4sV3QpfWZ1bmN0aW9uIGdyKHVuLFd0LGhuLFRyLHFyKXtyZXR1cm4gV3Q9PT1udWxsfHxXdC50YWchPT03PyhXdD1SbChobix1bi5tb2RlLFRyLHFyKSxXdC5yZXR1cm49dW4sV3QpOihXdD1YKFd0LGhuKSxXdC5yZXR1cm49dW4sV3QpfWZ1bmN0aW9uIFNyKHVuLFd0LGhuKXtpZih0eXBlb2YgV3Q9PSJzdHJpbmciJiZXdCE9PSIifHx0eXBlb2YgV3Q9PSJudW1iZXIiKXJldHVybiBXdD1wYygiIitXdCx1bi5tb2RlLGhuKSxXdC5yZXR1cm49dW4sV3Q7aWYodHlwZW9mIFd0PT0ib2JqZWN0IiYmV3QhPT1udWxsKXtzd2l0Y2goV3QuJCR0eXBlb2Ype2Nhc2UgUjpyZXR1cm4gaG49VHMoV3QudHlwZSxXdC5rZXksV3QucHJvcHMsbnVsbCx1bi5tb2RlLGhuKSxobi5yZWY9U2wodW4sbnVsbCxXdCksaG4ucmV0dXJuPXVuLGhuO2Nhc2UgejpyZXR1cm4gV3Q9eWMoV3QsdW4ubW9kZSxobiksV3QucmV0dXJuPXVuLFd0O2Nhc2Ugajp2YXIgVHI9V3QuX2luaXQ7cmV0dXJuIFNyKHVuLFRyKFd0Ll9wYXlsb2FkKSxobil9aWYoTihXdCl8fFooV3QpKXJldHVybiBXdD1SbChXdCx1bi5tb2RlLGhuLG51bGwpLFd0LnJldHVybj11bixXdDtJbCh1bixXdCl9cmV0dXJuIG51bGx9ZnVuY3Rpb24gdnIodW4sV3QsaG4sVHIpe3ZhciBxcj1XdCE9PW51bGw/V3Qua2V5Om51bGw7aWYodHlwZW9mIGhuPT0ic3RyaW5nIiYmaG4hPT0iInx8dHlwZW9mIGhuPT0ibnVtYmVyIilyZXR1cm4gcXIhPT1udWxsP251bGw6eHQodW4sV3QsIiIraG4sVHIpO2lmKHR5cGVvZiBobj09Im9iamVjdCImJmhuIT09bnVsbCl7c3dpdGNoKGhuLiQkdHlwZW9mKXtjYXNlIFI6cmV0dXJuIGhuLmtleT09PXFyPyR0KHVuLFd0LGhuLFRyKTpudWxsO2Nhc2UgejpyZXR1cm4gaG4ua2V5PT09cXI/SW4odW4sV3QsaG4sVHIpOm51bGw7Y2FzZSBqOnJldHVybiBxcj1obi5faW5pdCx2cih1bixXdCxxcihobi5fcGF5bG9hZCksVHIpfWlmKE4oaG4pfHxaKGhuKSlyZXR1cm4gcXIhPT1udWxsP251bGw6Z3IodW4sV3QsaG4sVHIsbnVsbCk7SWwodW4saG4pfXJldHVybiBudWxsfWZ1bmN0aW9uIFVyKHVuLFd0LGhuLFRyLHFyKXtpZih0eXBlb2YgVHI9PSJzdHJpbmciJiZUciE9PSIifHx0eXBlb2YgVHI9PSJudW1iZXIiKXJldHVybiB1bj11bi5nZXQoaG4pfHxudWxsLHh0KFd0LHVuLCIiK1RyLHFyKTtpZih0eXBlb2YgVHI9PSJvYmplY3QiJiZUciE9PW51bGwpe3N3aXRjaChUci4kJHR5cGVvZil7Y2FzZSBSOnJldHVybiB1bj11bi5nZXQoVHIua2V5PT09bnVsbD9objpUci5rZXkpfHxudWxsLCR0KFd0LHVuLFRyLHFyKTtjYXNlIHo6cmV0dXJuIHVuPXVuLmdldChUci5rZXk9PT1udWxsP2huOlRyLmtleSl8fG51bGwsSW4oV3QsdW4sVHIscXIpO2Nhc2Ugajp2YXIgY2E9VHIuX2luaXQ7cmV0dXJuIFVyKHVuLFd0LGhuLGNhKFRyLl9wYXlsb2FkKSxxcil9aWYoTihUcil8fFooVHIpKXJldHVybiB1bj11bi5nZXQoaG4pfHxudWxsLGdyKFd0LHVuLFRyLHFyLG51bGwpO0lsKFd0LFRyKX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBZcih1bixXdCxobixUcil7Zm9yKHZhciBxcj1udWxsLGNhPW51bGwsdWE9V3QsQ2E9V3Q9MCxZbz1udWxsO3VhIT09bnVsbCYmQ2E8aG4ubGVuZ3RoO0NhKyspe3VhLmluZGV4PkNhPyhZbz11YSx1YT1udWxsKTpZbz11YS5zaWJsaW5nO3ZhciBfYT12cih1bix1YSxobltDYV0sVHIpO2lmKF9hPT09bnVsbCl7dWE9PT1udWxsJiYodWE9WW8pO2JyZWFrfW8mJnVhJiZfYS5hbHRlcm5hdGU9PT1udWxsJiZsKHVuLHVhKSxXdD1oZShfYSxXdCxDYSksY2E9PT1udWxsP3FyPV9hOmNhLnNpYmxpbmc9X2EsY2E9X2EsdWE9WW99aWYoQ2E9PT1obi5sZW5ndGgpcmV0dXJuIGIodW4sdWEpLG1vJiZ1aSh1bixDYSkscXI7aWYodWE9PT1udWxsKXtmb3IoO0NhPGhuLmxlbmd0aDtDYSsrKXVhPVNyKHVuLGhuW0NhXSxUciksdWEhPT1udWxsJiYoV3Q9aGUodWEsV3QsQ2EpLGNhPT09bnVsbD9xcj11YTpjYS5zaWJsaW5nPXVhLGNhPXVhKTtyZXR1cm4gbW8mJnVpKHVuLENhKSxxcn1mb3IodWE9Rih1bix1YSk7Q2E8aG4ubGVuZ3RoO0NhKyspWW89VXIodWEsdW4sQ2EsaG5bQ2FdLFRyKSxZbyE9PW51bGwmJihvJiZZby5hbHRlcm5hdGUhPT1udWxsJiZ1YS5kZWxldGUoWW8ua2V5PT09bnVsbD9DYTpZby5rZXkpLFd0PWhlKFlvLFd0LENhKSxjYT09PW51bGw/cXI9WW86Y2Euc2libGluZz1ZbyxjYT1Zbyk7cmV0dXJuIG8mJnVhLmZvckVhY2goZnVuY3Rpb24ocGwpe3JldHVybiBsKHVuLHBsKX0pLG1vJiZ1aSh1bixDYSkscXJ9ZnVuY3Rpb24gUXIodW4sV3QsaG4sVHIpe3ZhciBxcj1aKGhuKTtpZih0eXBlb2YgcXIhPSJmdW5jdGlvbiIpdGhyb3cgRXJyb3IodCgxNTApKTtpZihobj1xci5jYWxsKGhuKSxobj09bnVsbCl0aHJvdyBFcnJvcih0KDE1MSkpO2Zvcih2YXIgY2E9cXI9bnVsbCx1YT1XdCxDYT1XdD0wLFlvPW51bGwsX2E9aG4ubmV4dCgpO3VhIT09bnVsbCYmIV9hLmRvbmU7Q2ErKyxfYT1obi5uZXh0KCkpe3VhLmluZGV4PkNhPyhZbz11YSx1YT1udWxsKTpZbz11YS5zaWJsaW5nO3ZhciBwbD12cih1bix1YSxfYS52YWx1ZSxUcik7aWYocGw9PT1udWxsKXt1YT09PW51bGwmJih1YT1Zbyk7YnJlYWt9byYmdWEmJnBsLmFsdGVybmF0ZT09PW51bGwmJmwodW4sdWEpLFd0PWhlKHBsLFd0LENhKSxjYT09PW51bGw/cXI9cGw6Y2Euc2libGluZz1wbCxjYT1wbCx1YT1Zb31pZihfYS5kb25lKXJldHVybiBiKHVuLHVhKSxtbyYmdWkodW4sQ2EpLHFyO2lmKHVhPT09bnVsbCl7Zm9yKDshX2EuZG9uZTtDYSsrLF9hPWhuLm5leHQoKSlfYT1Tcih1bixfYS52YWx1ZSxUciksX2EhPT1udWxsJiYoV3Q9aGUoX2EsV3QsQ2EpLGNhPT09bnVsbD9xcj1fYTpjYS5zaWJsaW5nPV9hLGNhPV9hKTtyZXR1cm4gbW8mJnVpKHVuLENhKSxxcn1mb3IodWE9Rih1bix1YSk7IV9hLmRvbmU7Q2ErKyxfYT1obi5uZXh0KCkpX2E9VXIodWEsdW4sQ2EsX2EudmFsdWUsVHIpLF9hIT09bnVsbCYmKG8mJl9hLmFsdGVybmF0ZSE9PW51bGwmJnVhLmRlbGV0ZShfYS5rZXk9PT1udWxsP0NhOl9hLmtleSksV3Q9aGUoX2EsV3QsQ2EpLGNhPT09bnVsbD9xcj1fYTpjYS5zaWJsaW5nPV9hLGNhPV9hKTtyZXR1cm4gbyYmdWEuZm9yRWFjaChmdW5jdGlvbih5dSl7cmV0dXJuIGwodW4seXUpfSksbW8mJnVpKHVuLENhKSxxcn1mdW5jdGlvbiBQbyh1bixXdCxobixUcil7aWYodHlwZW9mIGhuPT0ib2JqZWN0IiYmaG4hPT1udWxsJiZobi50eXBlPT09RyYmaG4ua2V5PT09bnVsbCYmKGhuPWhuLnByb3BzLmNoaWxkcmVuKSx0eXBlb2YgaG49PSJvYmplY3QiJiZobiE9PW51bGwpe3N3aXRjaChobi4kJHR5cGVvZil7Y2FzZSBSOmU6e2Zvcih2YXIgcXI9aG4ua2V5LGNhPVd0O2NhIT09bnVsbDspe2lmKGNhLmtleT09PXFyKXtpZihxcj1obi50eXBlLHFyPT09Ryl7aWYoY2EudGFnPT09Nyl7Yih1bixjYS5zaWJsaW5nKSxXdD1YKGNhLGhuLnByb3BzLmNoaWxkcmVuKSxXdC5yZXR1cm49dW4sdW49V3Q7YnJlYWsgZX19ZWxzZSBpZihjYS5lbGVtZW50VHlwZT09PXFyfHx0eXBlb2YgcXI9PSJvYmplY3QiJiZxciE9PW51bGwmJnFyLiQkdHlwZW9mPT09aiYmYXMocXIpPT09Y2EudHlwZSl7Yih1bixjYS5zaWJsaW5nKSxXdD1YKGNhLGhuLnByb3BzKSxXdC5yZWY9U2wodW4sY2EsaG4pLFd0LnJldHVybj11bix1bj1XdDticmVhayBlfWIodW4sY2EpO2JyZWFrfWVsc2UgbCh1bixjYSk7Y2E9Y2Euc2libGluZ31obi50eXBlPT09Rz8oV3Q9UmwoaG4ucHJvcHMuY2hpbGRyZW4sdW4ubW9kZSxUcixobi5rZXkpLFd0LnJldHVybj11bix1bj1XdCk6KFRyPVRzKGhuLnR5cGUsaG4ua2V5LGhuLnByb3BzLG51bGwsdW4ubW9kZSxUciksVHIucmVmPVNsKHVuLFd0LGhuKSxUci5yZXR1cm49dW4sdW49VHIpfXJldHVybiBVZSh1bik7Y2FzZSB6OmU6e2ZvcihjYT1obi5rZXk7V3QhPT1udWxsOyl7aWYoV3Qua2V5PT09Y2EpaWYoV3QudGFnPT09NCYmV3Quc3RhdGVOb2RlLmNvbnRhaW5lckluZm89PT1obi5jb250YWluZXJJbmZvJiZXdC5zdGF0ZU5vZGUuaW1wbGVtZW50YXRpb249PT1obi5pbXBsZW1lbnRhdGlvbil7Yih1bixXdC5zaWJsaW5nKSxXdD1YKFd0LGhuLmNoaWxkcmVufHxbXSksV3QucmV0dXJuPXVuLHVuPVd0O2JyZWFrIGV9ZWxzZXtiKHVuLFd0KTticmVha31lbHNlIGwodW4sV3QpO1d0PVd0LnNpYmxpbmd9V3Q9eWMoaG4sdW4ubW9kZSxUciksV3QucmV0dXJuPXVuLHVuPVd0fXJldHVybiBVZSh1bik7Y2FzZSBqOnJldHVybiBjYT1obi5faW5pdCxQbyh1bixXdCxjYShobi5fcGF5bG9hZCksVHIpfWlmKE4oaG4pKXJldHVybiBZcih1bixXdCxobixUcik7aWYoWihobikpcmV0dXJuIFFyKHVuLFd0LGhuLFRyKTtJbCh1bixobil9cmV0dXJuIHR5cGVvZiBobj09InN0cmluZyImJmhuIT09IiJ8fHR5cGVvZiBobj09Im51bWJlciI/KGhuPSIiK2huLFd0IT09bnVsbCYmV3QudGFnPT09Nj8oYih1bixXdC5zaWJsaW5nKSxXdD1YKFd0LGhuKSxXdC5yZXR1cm49dW4sdW49V3QpOihiKHVuLFd0KSxXdD1wYyhobix1bi5tb2RlLFRyKSxXdC5yZXR1cm49dW4sdW49V3QpLFVlKHVuKSk6Yih1bixXdCl9cmV0dXJuIFBvfXZhciBhbD1vcyghMCksS2w9b3MoITEpLE5pPW1hKG51bGwpLE9sPW51bGwsQWE9bnVsbCxQbD1udWxsO2Z1bmN0aW9uIGlzKCl7UGw9QWE9T2w9bnVsbH1mdW5jdGlvbiBYaShvKXt2YXIgbD1OaS5jdXJyZW50O3hyKE5pKSxvLl9jdXJyZW50VmFsdWU9bH1mdW5jdGlvbiB6bChvLGwsYil7Zm9yKDtvIT09bnVsbDspe3ZhciBGPW8uYWx0ZXJuYXRlO2lmKChvLmNoaWxkTGFuZXMmbCkhPT1sPyhvLmNoaWxkTGFuZXN8PWwsRiE9PW51bGwmJihGLmNoaWxkTGFuZXN8PWwpKTpGIT09bnVsbCYmKEYuY2hpbGRMYW5lcyZsKSE9PWwmJihGLmNoaWxkTGFuZXN8PWwpLG89PT1iKWJyZWFrO289by5yZXR1cm59fWZ1bmN0aW9uIG9sKG8sbCl7T2w9byxQbD1BYT1udWxsLG89by5kZXBlbmRlbmNpZXMsbyE9PW51bGwmJm8uZmlyc3RDb250ZXh0IT09bnVsbCYmKG8ubGFuZXMmbCYmKHhpPSEwKSxvLmZpcnN0Q29udGV4dD1udWxsKX1mdW5jdGlvbiBTaShvKXt2YXIgbD1vLl9jdXJyZW50VmFsdWU7aWYoUGwhPT1vKWlmKG89e2NvbnRleHQ6byxtZW1vaXplZFZhbHVlOmwsbmV4dDpudWxsfSxBYT09PW51bGwpe2lmKE9sPT09bnVsbCl0aHJvdyBFcnJvcih0KDMwOCkpO0FhPW8sT2wuZGVwZW5kZW5jaWVzPXtsYW5lczowLGZpcnN0Q29udGV4dDpvfX1lbHNlIEFhPUFhLm5leHQ9bztyZXR1cm4gbH12YXIgUGk9bnVsbDtmdW5jdGlvbiBGbChvKXtQaT09PW51bGw/UGk9W29dOlBpLnB1c2gobyl9ZnVuY3Rpb24gQWwobyxsLGIsRil7dmFyIFg9bC5pbnRlcmxlYXZlZDtyZXR1cm4gWD09PW51bGw/KGIubmV4dD1iLEZsKGwpKTooYi5uZXh0PVgubmV4dCxYLm5leHQ9YiksbC5pbnRlcmxlYXZlZD1iLFpvKG8sRil9ZnVuY3Rpb24gWm8obyxsKXtvLmxhbmVzfD1sO3ZhciBiPW8uYWx0ZXJuYXRlO2ZvcihiIT09bnVsbCYmKGIubGFuZXN8PWwpLGI9byxvPW8ucmV0dXJuO28hPT1udWxsOylvLmNoaWxkTGFuZXN8PWwsYj1vLmFsdGVybmF0ZSxiIT09bnVsbCYmKGIuY2hpbGRMYW5lc3w9bCksYj1vLG89by5yZXR1cm47cmV0dXJuIGIudGFnPT09Mz9iLnN0YXRlTm9kZTpudWxsfXZhciBRaT0hMTtmdW5jdGlvbiBMbChvKXtvLnVwZGF0ZVF1ZXVlPXtiYXNlU3RhdGU6by5tZW1vaXplZFN0YXRlLGZpcnN0QmFzZVVwZGF0ZTpudWxsLGxhc3RCYXNlVXBkYXRlOm51bGwsc2hhcmVkOntwZW5kaW5nOm51bGwsaW50ZXJsZWF2ZWQ6bnVsbCxsYW5lczowfSxlZmZlY3RzOm51bGx9fWZ1bmN0aW9uIHppKG8sbCl7bz1vLnVwZGF0ZVF1ZXVlLGwudXBkYXRlUXVldWU9PT1vJiYobC51cGRhdGVRdWV1ZT17YmFzZVN0YXRlOm8uYmFzZVN0YXRlLGZpcnN0QmFzZVVwZGF0ZTpvLmZpcnN0QmFzZVVwZGF0ZSxsYXN0QmFzZVVwZGF0ZTpvLmxhc3RCYXNlVXBkYXRlLHNoYXJlZDpvLnNoYXJlZCxlZmZlY3RzOm8uZWZmZWN0c30pfWZ1bmN0aW9uIFRlKG8sbCl7cmV0dXJue2V2ZW50VGltZTpvLGxhbmU6bCx0YWc6MCxwYXlsb2FkOm51bGwsY2FsbGJhY2s6bnVsbCxuZXh0Om51bGx9fWZ1bmN0aW9uIGl0KG8sbCxiKXt2YXIgRj1vLnVwZGF0ZVF1ZXVlO2lmKEY9PT1udWxsKXJldHVybiBudWxsO2lmKEY9Ri5zaGFyZWQsa2EmMil7dmFyIFg9Ri5wZW5kaW5nO3JldHVybiBYPT09bnVsbD9sLm5leHQ9bDoobC5uZXh0PVgubmV4dCxYLm5leHQ9bCksRi5wZW5kaW5nPWwsWm8obyxiKX1yZXR1cm4gWD1GLmludGVybGVhdmVkLFg9PT1udWxsPyhsLm5leHQ9bCxGbChGKSk6KGwubmV4dD1YLm5leHQsWC5uZXh0PWwpLEYuaW50ZXJsZWF2ZWQ9bCxabyhvLGIpfWZ1bmN0aW9uIFF0KG8sbCxiKXtpZihsPWwudXBkYXRlUXVldWUsbCE9PW51bGwmJihsPWwuc2hhcmVkLChiJjQxOTQyNDApIT09MCkpe3ZhciBGPWwubGFuZXM7RiY9by5wZW5kaW5nTGFuZXMsYnw9RixsLmxhbmVzPWIsaHIobyxiKX19ZnVuY3Rpb24gVW4obyxsKXt2YXIgYj1vLnVwZGF0ZVF1ZXVlLEY9by5hbHRlcm5hdGU7aWYoRiE9PW51bGwmJihGPUYudXBkYXRlUXVldWUsYj09PUYpKXt2YXIgWD1udWxsLGhlPW51bGw7aWYoYj1iLmZpcnN0QmFzZVVwZGF0ZSxiIT09bnVsbCl7ZG97dmFyIFVlPXtldmVudFRpbWU6Yi5ldmVudFRpbWUsbGFuZTpiLmxhbmUsdGFnOmIudGFnLHBheWxvYWQ6Yi5wYXlsb2FkLGNhbGxiYWNrOmIuY2FsbGJhY2ssbmV4dDpudWxsfTtoZT09PW51bGw/WD1oZT1VZTpoZT1oZS5uZXh0PVVlLGI9Yi5uZXh0fXdoaWxlKGIhPT1udWxsKTtoZT09PW51bGw/WD1oZT1sOmhlPWhlLm5leHQ9bH1lbHNlIFg9aGU9bDtiPXtiYXNlU3RhdGU6Ri5iYXNlU3RhdGUsZmlyc3RCYXNlVXBkYXRlOlgsbGFzdEJhc2VVcGRhdGU6aGUsc2hhcmVkOkYuc2hhcmVkLGVmZmVjdHM6Ri5lZmZlY3RzfSxvLnVwZGF0ZVF1ZXVlPWI7cmV0dXJufW89Yi5sYXN0QmFzZVVwZGF0ZSxvPT09bnVsbD9iLmZpcnN0QmFzZVVwZGF0ZT1sOm8ubmV4dD1sLGIubGFzdEJhc2VVcGRhdGU9bH1mdW5jdGlvbiBPcihvLGwsYixGKXt2YXIgWD1vLnVwZGF0ZVF1ZXVlO1FpPSExO3ZhciBoZT1YLmZpcnN0QmFzZVVwZGF0ZSxVZT1YLmxhc3RCYXNlVXBkYXRlLHh0PVguc2hhcmVkLnBlbmRpbmc7aWYoeHQhPT1udWxsKXtYLnNoYXJlZC5wZW5kaW5nPW51bGw7dmFyICR0PXh0LEluPSR0Lm5leHQ7JHQubmV4dD1udWxsLFVlPT09bnVsbD9oZT1JbjpVZS5uZXh0PUluLFVlPSR0O3ZhciBncj1vLmFsdGVybmF0ZTtnciE9PW51bGwmJihncj1nci51cGRhdGVRdWV1ZSx4dD1nci5sYXN0QmFzZVVwZGF0ZSx4dCE9PVVlJiYoeHQ9PT1udWxsP2dyLmZpcnN0QmFzZVVwZGF0ZT1Jbjp4dC5uZXh0PUluLGdyLmxhc3RCYXNlVXBkYXRlPSR0KSl9aWYoaGUhPT1udWxsKXt2YXIgU3I9WC5iYXNlU3RhdGU7VWU9MCxncj1Jbj0kdD1udWxsLHh0PWhlO2Rve3ZhciB2cj14dC5sYW5lLFVyPXh0LmV2ZW50VGltZTtpZigoRiZ2cik9PT12cil7Z3IhPT1udWxsJiYoZ3I9Z3IubmV4dD17ZXZlbnRUaW1lOlVyLGxhbmU6MCx0YWc6eHQudGFnLHBheWxvYWQ6eHQucGF5bG9hZCxjYWxsYmFjazp4dC5jYWxsYmFjayxuZXh0Om51bGx9KTtlOnt2YXIgWXI9byxRcj14dDtzd2l0Y2godnI9bCxVcj1iLFFyLnRhZyl7Y2FzZSAxOmlmKFlyPVFyLnBheWxvYWQsdHlwZW9mIFlyPT0iZnVuY3Rpb24iKXtTcj1Zci5jYWxsKFVyLFNyLHZyKTticmVhayBlfVNyPVlyO2JyZWFrIGU7Y2FzZSAzOllyLmZsYWdzPVlyLmZsYWdzJi02NTUzN3wxMjg7Y2FzZSAwOmlmKFlyPVFyLnBheWxvYWQsdnI9dHlwZW9mIFlyPT0iZnVuY3Rpb24iP1lyLmNhbGwoVXIsU3IsdnIpOllyLHZyPT1udWxsKWJyZWFrIGU7U3I9UCh7fSxTcix2cik7YnJlYWsgZTtjYXNlIDI6UWk9ITB9fXh0LmNhbGxiYWNrIT09bnVsbCYmeHQubGFuZSE9PTAmJihvLmZsYWdzfD02NCx2cj1YLmVmZmVjdHMsdnI9PT1udWxsP1guZWZmZWN0cz1beHRdOnZyLnB1c2goeHQpKX1lbHNlIFVyPXtldmVudFRpbWU6VXIsbGFuZTp2cix0YWc6eHQudGFnLHBheWxvYWQ6eHQucGF5bG9hZCxjYWxsYmFjazp4dC5jYWxsYmFjayxuZXh0Om51bGx9LGdyPT09bnVsbD8oSW49Z3I9VXIsJHQ9U3IpOmdyPWdyLm5leHQ9VXIsVWV8PXZyO2lmKHh0PXh0Lm5leHQseHQ9PT1udWxsKXtpZih4dD1YLnNoYXJlZC5wZW5kaW5nLHh0PT09bnVsbClicmVhazt2cj14dCx4dD12ci5uZXh0LHZyLm5leHQ9bnVsbCxYLmxhc3RCYXNlVXBkYXRlPXZyLFguc2hhcmVkLnBlbmRpbmc9bnVsbH19d2hpbGUoITApO2lmKGdyPT09bnVsbCYmKCR0PVNyKSxYLmJhc2VTdGF0ZT0kdCxYLmZpcnN0QmFzZVVwZGF0ZT1JbixYLmxhc3RCYXNlVXBkYXRlPWdyLGw9WC5zaGFyZWQuaW50ZXJsZWF2ZWQsbCE9PW51bGwpe1g9bDtkbyBVZXw9WC5sYW5lLFg9WC5uZXh0O3doaWxlKFghPT1sKX1lbHNlIGhlPT09bnVsbCYmKFguc2hhcmVkLmxhbmVzPTApO3dsfD1VZSxvLmxhbmVzPVVlLG8ubWVtb2l6ZWRTdGF0ZT1Tcn19ZnVuY3Rpb24gbGEobyxsLGIpe2lmKG89bC5lZmZlY3RzLGwuZWZmZWN0cz1udWxsLG8hPT1udWxsKWZvcihsPTA7bDxvLmxlbmd0aDtsKyspe3ZhciBGPW9bbF0sWD1GLmNhbGxiYWNrO2lmKFghPT1udWxsKXtpZihGLmNhbGxiYWNrPW51bGwsRj1iLHR5cGVvZiBYIT0iZnVuY3Rpb24iKXRocm93IEVycm9yKHQoMTkxLFgpKTtYLmNhbGwoRil9fX12YXIgWWE9e30seGE9bWEoWWEpLFZvPW1hKFlhKSxaYT1tYShZYSk7ZnVuY3Rpb24gWGEobyl7aWYobz09PVlhKXRocm93IEVycm9yKHQoMTc0KSk7cmV0dXJuIG99ZnVuY3Rpb24gQmEobyxsKXtzd2l0Y2goWnIoWmEsbCksWnIoVm8sbyksWnIoeGEsWWEpLG89bC5ub2RlVHlwZSxvKXtjYXNlIDk6Y2FzZSAxMTpsPShsPWwuZG9jdW1lbnRFbGVtZW50KT9sLm5hbWVzcGFjZVVSSTphZShudWxsLCIiKTticmVhaztkZWZhdWx0Om89bz09PTg/bC5wYXJlbnROb2RlOmwsbD1vLm5hbWVzcGFjZVVSSXx8bnVsbCxvPW8udGFnTmFtZSxsPWFlKGwsbyl9eHIoeGEpLFpyKHhhLGwpfWZ1bmN0aW9uIFFhKCl7eHIoeGEpLHhyKFZvKSx4cihaYSl9ZnVuY3Rpb24gdmkobyl7WGEoWmEuY3VycmVudCk7dmFyIGw9WGEoeGEuY3VycmVudCksYj1hZShsLG8udHlwZSk7bCE9PWImJihacihWbyxvKSxacih4YSxiKSl9ZnVuY3Rpb24gT2kobyl7Vm8uY3VycmVudD09PW8mJih4cih4YSkseHIoVm8pKX12YXIgY289bWEoMCk7ZnVuY3Rpb24gbHMobyl7Zm9yKHZhciBsPW87bCE9PW51bGw7KXtpZihsLnRhZz09PTEzKXt2YXIgYj1sLm1lbW9pemVkU3RhdGU7aWYoYiE9PW51bGwmJihiPWIuZGVoeWRyYXRlZCxiPT09bnVsbHx8Yi5kYXRhPT09IiQ/Inx8Yi5kYXRhPT09IiQhIikpcmV0dXJuIGx9ZWxzZSBpZihsLnRhZz09PTE5JiZsLm1lbW9pemVkUHJvcHMucmV2ZWFsT3JkZXIhPT12b2lkIDApe2lmKGwuZmxhZ3MmMTI4KXJldHVybiBsfWVsc2UgaWYobC5jaGlsZCE9PW51bGwpe2wuY2hpbGQucmV0dXJuPWwsbD1sLmNoaWxkO2NvbnRpbnVlfWlmKGw9PT1vKWJyZWFrO2Zvcig7bC5zaWJsaW5nPT09bnVsbDspe2lmKGwucmV0dXJuPT09bnVsbHx8bC5yZXR1cm49PT1vKXJldHVybiBudWxsO2w9bC5yZXR1cm59bC5zaWJsaW5nLnJldHVybj1sLnJldHVybixsPWwuc2libGluZ31yZXR1cm4gbnVsbH12YXIgWnM9W107ZnVuY3Rpb24gJHMoKXtmb3IodmFyIG89MDtvPFpzLmxlbmd0aDtvKyspWnNbb10uX3dvcmtJblByb2dyZXNzVmVyc2lvblByaW1hcnk9bnVsbDtacy5sZW5ndGg9MH12YXIgc3M9SS5SZWFjdEN1cnJlbnREaXNwYXRjaGVyLEhzPUkuUmVhY3RDdXJyZW50QmF0Y2hDb25maWcseGw9MCxTbz1udWxsLE5vPW51bGwsX289bnVsbCxjcz0hMSxfbD0hMSxHbD0wLFYxPTA7ZnVuY3Rpb24gb2koKXt0aHJvdyBFcnJvcih0KDMyMSkpfWZ1bmN0aW9uIERzKG8sbCl7aWYobD09PW51bGwpcmV0dXJuITE7Zm9yKHZhciBiPTA7YjxsLmxlbmd0aCYmYjxvLmxlbmd0aDtiKyspaWYoIURyKG9bYl0sbFtiXSkpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gQnMobyxsLGIsRixYLGhlKXtpZih4bD1oZSxTbz1sLGwubWVtb2l6ZWRTdGF0ZT1udWxsLGwudXBkYXRlUXVldWU9bnVsbCxsLmxhbmVzPTAsc3MuY3VycmVudD1vPT09bnVsbHx8by5tZW1vaXplZFN0YXRlPT09bnVsbD9XMTprMSxvPWIoRixYKSxfbCl7aGU9MDtkb3tpZihfbD0hMSxHbD0wLDI1PD1oZSl0aHJvdyBFcnJvcih0KDMwMSkpO2hlKz0xLF9vPU5vPW51bGwsbC51cGRhdGVRdWV1ZT1udWxsLHNzLmN1cnJlbnQ9SzEsbz1iKEYsWCl9d2hpbGUoX2wpfWlmKHNzLmN1cnJlbnQ9ZnMsbD1ObyE9PW51bGwmJk5vLm5leHQhPT1udWxsLHhsPTAsX289Tm89U289bnVsbCxjcz0hMSxsKXRocm93IEVycm9yKHQoMzAwKSk7cmV0dXJuIG99ZnVuY3Rpb24gVnMoKXt2YXIgbz1HbCE9PTA7cmV0dXJuIEdsPTAsb31mdW5jdGlvbiBKaSgpe3ZhciBvPXttZW1vaXplZFN0YXRlOm51bGwsYmFzZVN0YXRlOm51bGwsYmFzZVF1ZXVlOm51bGwscXVldWU6bnVsbCxuZXh0Om51bGx9O3JldHVybiBfbz09PW51bGw/U28ubWVtb2l6ZWRTdGF0ZT1fbz1vOl9vPV9vLm5leHQ9byxfb31mdW5jdGlvbiBMaSgpe2lmKE5vPT09bnVsbCl7dmFyIG89U28uYWx0ZXJuYXRlO289byE9PW51bGw/by5tZW1vaXplZFN0YXRlOm51bGx9ZWxzZSBvPU5vLm5leHQ7dmFyIGw9X289PT1udWxsP1NvLm1lbW9pemVkU3RhdGU6X28ubmV4dDtpZihsIT09bnVsbClfbz1sLE5vPW87ZWxzZXtpZihvPT09bnVsbCl0aHJvdyBFcnJvcih0KDMxMCkpO05vPW8sbz17bWVtb2l6ZWRTdGF0ZTpOby5tZW1vaXplZFN0YXRlLGJhc2VTdGF0ZTpOby5iYXNlU3RhdGUsYmFzZVF1ZXVlOk5vLmJhc2VRdWV1ZSxxdWV1ZTpOby5xdWV1ZSxuZXh0Om51bGx9LF9vPT09bnVsbD9Tby5tZW1vaXplZFN0YXRlPV9vPW86X289X28ubmV4dD1vfXJldHVybiBfb31mdW5jdGlvbiBZbChvLGwpe3JldHVybiB0eXBlb2YgbD09ImZ1bmN0aW9uIj9sKG8pOmx9ZnVuY3Rpb24gTnMobyl7dmFyIGw9TGkoKSxiPWwucXVldWU7aWYoYj09PW51bGwpdGhyb3cgRXJyb3IodCgzMTEpKTtiLmxhc3RSZW5kZXJlZFJlZHVjZXI9bzt2YXIgRj1ObyxYPUYuYmFzZVF1ZXVlLGhlPWIucGVuZGluZztpZihoZSE9PW51bGwpe2lmKFghPT1udWxsKXt2YXIgVWU9WC5uZXh0O1gubmV4dD1oZS5uZXh0LGhlLm5leHQ9VWV9Ri5iYXNlUXVldWU9WD1oZSxiLnBlbmRpbmc9bnVsbH1pZihYIT09bnVsbCl7aGU9WC5uZXh0LEY9Ri5iYXNlU3RhdGU7dmFyIHh0PVVlPW51bGwsJHQ9bnVsbCxJbj1oZTtkb3t2YXIgZ3I9SW4ubGFuZTtpZigoeGwmZ3IpPT09Z3IpJHQhPT1udWxsJiYoJHQ9JHQubmV4dD17bGFuZTowLGFjdGlvbjpJbi5hY3Rpb24saGFzRWFnZXJTdGF0ZTpJbi5oYXNFYWdlclN0YXRlLGVhZ2VyU3RhdGU6SW4uZWFnZXJTdGF0ZSxuZXh0Om51bGx9KSxGPUluLmhhc0VhZ2VyU3RhdGU/SW4uZWFnZXJTdGF0ZTpvKEYsSW4uYWN0aW9uKTtlbHNle3ZhciBTcj17bGFuZTpncixhY3Rpb246SW4uYWN0aW9uLGhhc0VhZ2VyU3RhdGU6SW4uaGFzRWFnZXJTdGF0ZSxlYWdlclN0YXRlOkluLmVhZ2VyU3RhdGUsbmV4dDpudWxsfTskdD09PW51bGw/KHh0PSR0PVNyLFVlPUYpOiR0PSR0Lm5leHQ9U3IsU28ubGFuZXN8PWdyLHdsfD1ncn1Jbj1Jbi5uZXh0fXdoaWxlKEluIT09bnVsbCYmSW4hPT1oZSk7JHQ9PT1udWxsP1VlPUY6JHQubmV4dD14dCxEcihGLGwubWVtb2l6ZWRTdGF0ZSl8fCh4aT0hMCksbC5tZW1vaXplZFN0YXRlPUYsbC5iYXNlU3RhdGU9VWUsbC5iYXNlUXVldWU9JHQsYi5sYXN0UmVuZGVyZWRTdGF0ZT1GfWlmKG89Yi5pbnRlcmxlYXZlZCxvIT09bnVsbCl7WD1vO2RvIGhlPVgubGFuZSxTby5sYW5lc3w9aGUsd2x8PWhlLFg9WC5uZXh0O3doaWxlKFghPT1vKX1lbHNlIFg9PT1udWxsJiYoYi5sYW5lcz0wKTtyZXR1cm5bbC5tZW1vaXplZFN0YXRlLGIuZGlzcGF0Y2hdfWZ1bmN0aW9uIGpzKG8pe3ZhciBsPUxpKCksYj1sLnF1ZXVlO2lmKGI9PT1udWxsKXRocm93IEVycm9yKHQoMzExKSk7Yi5sYXN0UmVuZGVyZWRSZWR1Y2VyPW87dmFyIEY9Yi5kaXNwYXRjaCxYPWIucGVuZGluZyxoZT1sLm1lbW9pemVkU3RhdGU7aWYoWCE9PW51bGwpe2IucGVuZGluZz1udWxsO3ZhciBVZT1YPVgubmV4dDtkbyBoZT1vKGhlLFVlLmFjdGlvbiksVWU9VWUubmV4dDt3aGlsZShVZSE9PVgpO0RyKGhlLGwubWVtb2l6ZWRTdGF0ZSl8fCh4aT0hMCksbC5tZW1vaXplZFN0YXRlPWhlLGwuYmFzZVF1ZXVlPT09bnVsbCYmKGwuYmFzZVN0YXRlPWhlKSxiLmxhc3RSZW5kZXJlZFN0YXRlPWhlfXJldHVybltoZSxGXX1mdW5jdGlvbiB3Yygpe31mdW5jdGlvbiBFYyhvLGwpe3ZhciBiPVNvLEY9TGkoKSxYPWwoKSxoZT0hRHIoRi5tZW1vaXplZFN0YXRlLFgpO2lmKGhlJiYoRi5tZW1vaXplZFN0YXRlPVgseGk9ITApLEY9Ri5xdWV1ZSxVcyhSYy5iaW5kKG51bGwsYixGLG8pLFtvXSksRi5nZXRTbmFwc2hvdCE9PWx8fGhlfHxfbyE9PW51bGwmJl9vLm1lbW9pemVkU3RhdGUudGFnJjEpe2lmKGIuZmxhZ3N8PTIwNDgsWGwoOSxNYy5iaW5kKG51bGwsYixGLFgsbCksdm9pZCAwLG51bGwpLEdvPT09bnVsbCl0aHJvdyBFcnJvcih0KDM0OSkpO3hsJjMwfHxUYyhiLGwsWCl9cmV0dXJuIFh9ZnVuY3Rpb24gVGMobyxsLGIpe28uZmxhZ3N8PTE2Mzg0LG89e2dldFNuYXBzaG90OmwsdmFsdWU6Yn0sbD1Tby51cGRhdGVRdWV1ZSxsPT09bnVsbD8obD17bGFzdEVmZmVjdDpudWxsLHN0b3JlczpudWxsfSxTby51cGRhdGVRdWV1ZT1sLGwuc3RvcmVzPVtvXSk6KGI9bC5zdG9yZXMsYj09PW51bGw/bC5zdG9yZXM9W29dOmIucHVzaChvKSl9ZnVuY3Rpb24gTWMobyxsLGIsRil7bC52YWx1ZT1iLGwuZ2V0U25hcHNob3Q9RixJYyhsKSYmUGMobyl9ZnVuY3Rpb24gUmMobyxsLGIpe3JldHVybiBiKGZ1bmN0aW9uKCl7SWMobCkmJlBjKG8pfSl9ZnVuY3Rpb24gSWMobyl7dmFyIGw9by5nZXRTbmFwc2hvdDtvPW8udmFsdWU7dHJ5e3ZhciBiPWwoKTtyZXR1cm4hRHIobyxiKX1jYXRjaChGKXtyZXR1cm4hMH19ZnVuY3Rpb24gUGMobyl7dmFyIGw9Wm8obywxKTtsIT09bnVsbCYma2kobCxvLDEsLTEpfWZ1bmN0aW9uIHpjKG8pe3ZhciBsPUppKCk7cmV0dXJuIHR5cGVvZiBvPT0iZnVuY3Rpb24iJiYobz1vKCkpLGwubWVtb2l6ZWRTdGF0ZT1sLmJhc2VTdGF0ZT1vLG89e3BlbmRpbmc6bnVsbCxpbnRlcmxlYXZlZDpudWxsLGxhbmVzOjAsZGlzcGF0Y2g6bnVsbCxsYXN0UmVuZGVyZWRSZWR1Y2VyOllsLGxhc3RSZW5kZXJlZFN0YXRlOm99LGwucXVldWU9byxvPW8uZGlzcGF0Y2g9VTEuYmluZChudWxsLFNvLG8pLFtsLm1lbW9pemVkU3RhdGUsb119ZnVuY3Rpb24gWGwobyxsLGIsRil7cmV0dXJuIG89e3RhZzpvLGNyZWF0ZTpsLGRlc3Ryb3k6YixkZXBzOkYsbmV4dDpudWxsfSxsPVNvLnVwZGF0ZVF1ZXVlLGw9PT1udWxsPyhsPXtsYXN0RWZmZWN0Om51bGwsc3RvcmVzOm51bGx9LFNvLnVwZGF0ZVF1ZXVlPWwsbC5sYXN0RWZmZWN0PW8ubmV4dD1vKTooYj1sLmxhc3RFZmZlY3QsYj09PW51bGw/bC5sYXN0RWZmZWN0PW8ubmV4dD1vOihGPWIubmV4dCxiLm5leHQ9byxvLm5leHQ9RixsLmxhc3RFZmZlY3Q9bykpLG99ZnVuY3Rpb24gRmMoKXtyZXR1cm4gTGkoKS5tZW1vaXplZFN0YXRlfWZ1bmN0aW9uIHVzKG8sbCxiLEYpe3ZhciBYPUppKCk7U28uZmxhZ3N8PW8sWC5tZW1vaXplZFN0YXRlPVhsKDF8bCxiLHZvaWQgMCxGPT09dm9pZCAwP251bGw6Ril9ZnVuY3Rpb24gZHMobyxsLGIsRil7dmFyIFg9TGkoKTtGPUY9PT12b2lkIDA/bnVsbDpGO3ZhciBoZT12b2lkIDA7aWYoTm8hPT1udWxsKXt2YXIgVWU9Tm8ubWVtb2l6ZWRTdGF0ZTtpZihoZT1VZS5kZXN0cm95LEYhPT1udWxsJiZEcyhGLFVlLmRlcHMpKXtYLm1lbW9pemVkU3RhdGU9WGwobCxiLGhlLEYpO3JldHVybn19U28uZmxhZ3N8PW8sWC5tZW1vaXplZFN0YXRlPVhsKDF8bCxiLGhlLEYpfWZ1bmN0aW9uIEFjKG8sbCl7cmV0dXJuIHVzKDgzOTA2NTYsOCxvLGwpfWZ1bmN0aW9uIFVzKG8sbCl7cmV0dXJuIGRzKDIwNDgsOCxvLGwpfWZ1bmN0aW9uIExjKG8sbCl7cmV0dXJuIGRzKDQsMixvLGwpfWZ1bmN0aW9uIFpjKG8sbCl7cmV0dXJuIGRzKDQsNCxvLGwpfWZ1bmN0aW9uICRjKG8sbCl7aWYodHlwZW9mIGw9PSJmdW5jdGlvbiIpcmV0dXJuIG89bygpLGwobyksZnVuY3Rpb24oKXtsKG51bGwpfTtpZihsIT1udWxsKXJldHVybiBvPW8oKSxsLmN1cnJlbnQ9byxmdW5jdGlvbigpe2wuY3VycmVudD1udWxsfX1mdW5jdGlvbiBIYyhvLGwsYil7cmV0dXJuIGI9YiE9bnVsbD9iLmNvbmNhdChbb10pOm51bGwsZHMoNCw0LCRjLmJpbmQobnVsbCxsLG8pLGIpfWZ1bmN0aW9uIFdzKCl7fWZ1bmN0aW9uIERjKG8sbCl7dmFyIGI9TGkoKTtsPWw9PT12b2lkIDA/bnVsbDpsO3ZhciBGPWIubWVtb2l6ZWRTdGF0ZTtyZXR1cm4gRiE9PW51bGwmJmwhPT1udWxsJiZEcyhsLEZbMV0pP0ZbMF06KGIubWVtb2l6ZWRTdGF0ZT1bbyxsXSxvKX1mdW5jdGlvbiBCYyhvLGwpe3ZhciBiPUxpKCk7bD1sPT09dm9pZCAwP251bGw6bDt2YXIgRj1iLm1lbW9pemVkU3RhdGU7cmV0dXJuIEYhPT1udWxsJiZsIT09bnVsbCYmRHMobCxGWzFdKT9GWzBdOihvPW8oKSxiLm1lbW9pemVkU3RhdGU9W28sbF0sbyl9ZnVuY3Rpb24gVmMobyxsLGIpe3JldHVybiB4bCYyMT8oRHIoYixsKXx8KGI9Sm4oKSxTby5sYW5lc3w9Yix3bHw9YixvLmJhc2VTdGF0ZT0hMCksbCk6KG8uYmFzZVN0YXRlJiYoby5iYXNlU3RhdGU9ITEseGk9ITApLG8ubWVtb2l6ZWRTdGF0ZT1iKX1mdW5jdGlvbiBOMShvLGwpe3ZhciBiPUZuO0ZuPWIhPT0wJiY0PmI/Yjo0LG8oITApO3ZhciBGPUhzLnRyYW5zaXRpb247SHMudHJhbnNpdGlvbj17fTt0cnl7byghMSksbCgpfWZpbmFsbHl7Rm49YixIcy50cmFuc2l0aW9uPUZ9fWZ1bmN0aW9uIE5jKCl7cmV0dXJuIExpKCkubWVtb2l6ZWRTdGF0ZX1mdW5jdGlvbiBqMShvLGwsYil7dmFyIEY9aGwobyk7aWYoYj17bGFuZTpGLGFjdGlvbjpiLGhhc0VhZ2VyU3RhdGU6ITEsZWFnZXJTdGF0ZTpudWxsLG5leHQ6bnVsbH0samMobykpVWMobCxiKTtlbHNlIGlmKGI9QWwobyxsLGIsRiksYiE9PW51bGwpe3ZhciBYPW1pKCk7a2koYixvLEYsWCksV2MoYixsLEYpfX1mdW5jdGlvbiBVMShvLGwsYil7dmFyIEY9aGwobyksWD17bGFuZTpGLGFjdGlvbjpiLGhhc0VhZ2VyU3RhdGU6ITEsZWFnZXJTdGF0ZTpudWxsLG5leHQ6bnVsbH07aWYoamMobykpVWMobCxYKTtlbHNle3ZhciBoZT1vLmFsdGVybmF0ZTtpZihvLmxhbmVzPT09MCYmKGhlPT09bnVsbHx8aGUubGFuZXM9PT0wKSYmKGhlPWwubGFzdFJlbmRlcmVkUmVkdWNlcixoZSE9PW51bGwpKXRyeXt2YXIgVWU9bC5sYXN0UmVuZGVyZWRTdGF0ZSx4dD1oZShVZSxiKTtpZihYLmhhc0VhZ2VyU3RhdGU9ITAsWC5lYWdlclN0YXRlPXh0LERyKHh0LFVlKSl7dmFyICR0PWwuaW50ZXJsZWF2ZWQ7JHQ9PT1udWxsPyhYLm5leHQ9WCxGbChsKSk6KFgubmV4dD0kdC5uZXh0LCR0Lm5leHQ9WCksbC5pbnRlcmxlYXZlZD1YO3JldHVybn19Y2F0Y2goSW4pe31maW5hbGx5e31iPUFsKG8sbCxYLEYpLGIhPT1udWxsJiYoWD1taSgpLGtpKGIsbyxGLFgpLFdjKGIsbCxGKSl9fWZ1bmN0aW9uIGpjKG8pe3ZhciBsPW8uYWx0ZXJuYXRlO3JldHVybiBvPT09U298fGwhPT1udWxsJiZsPT09U299ZnVuY3Rpb24gVWMobyxsKXtfbD1jcz0hMDt2YXIgYj1vLnBlbmRpbmc7Yj09PW51bGw/bC5uZXh0PWw6KGwubmV4dD1iLm5leHQsYi5uZXh0PWwpLG8ucGVuZGluZz1sfWZ1bmN0aW9uIFdjKG8sbCxiKXtpZihiJjQxOTQyNDApe3ZhciBGPWwubGFuZXM7RiY9by5wZW5kaW5nTGFuZXMsYnw9RixsLmxhbmVzPWIsaHIobyxiKX19dmFyIGZzPXtyZWFkQ29udGV4dDpTaSx1c2VDYWxsYmFjazpvaSx1c2VDb250ZXh0Om9pLHVzZUVmZmVjdDpvaSx1c2VJbXBlcmF0aXZlSGFuZGxlOm9pLHVzZUluc2VydGlvbkVmZmVjdDpvaSx1c2VMYXlvdXRFZmZlY3Q6b2ksdXNlTWVtbzpvaSx1c2VSZWR1Y2VyOm9pLHVzZVJlZjpvaSx1c2VTdGF0ZTpvaSx1c2VEZWJ1Z1ZhbHVlOm9pLHVzZURlZmVycmVkVmFsdWU6b2ksdXNlVHJhbnNpdGlvbjpvaSx1c2VNdXRhYmxlU291cmNlOm9pLHVzZVN5bmNFeHRlcm5hbFN0b3JlOm9pLHVzZUlkOm9pLHVuc3RhYmxlX2lzTmV3UmVjb25jaWxlcjohMX0sVzE9e3JlYWRDb250ZXh0OlNpLHVzZUNhbGxiYWNrOmZ1bmN0aW9uKG8sbCl7cmV0dXJuIEppKCkubWVtb2l6ZWRTdGF0ZT1bbyxsPT09dm9pZCAwP251bGw6bF0sb30sdXNlQ29udGV4dDpTaSx1c2VFZmZlY3Q6QWMsdXNlSW1wZXJhdGl2ZUhhbmRsZTpmdW5jdGlvbihvLGwsYil7cmV0dXJuIGI9YiE9bnVsbD9iLmNvbmNhdChbb10pOm51bGwsdXMoNDE5NDMwOCw0LCRjLmJpbmQobnVsbCxsLG8pLGIpfSx1c2VMYXlvdXRFZmZlY3Q6ZnVuY3Rpb24obyxsKXtyZXR1cm4gdXMoNDE5NDMwOCw0LG8sbCl9LHVzZUluc2VydGlvbkVmZmVjdDpmdW5jdGlvbihvLGwpe3JldHVybiB1cyg0LDIsbyxsKX0sdXNlTWVtbzpmdW5jdGlvbihvLGwpe3ZhciBiPUppKCk7cmV0dXJuIGw9bD09PXZvaWQgMD9udWxsOmwsbz1vKCksYi5tZW1vaXplZFN0YXRlPVtvLGxdLG99LHVzZVJlZHVjZXI6ZnVuY3Rpb24obyxsLGIpe3ZhciBGPUppKCk7cmV0dXJuIGw9YiE9PXZvaWQgMD9iKGwpOmwsRi5tZW1vaXplZFN0YXRlPUYuYmFzZVN0YXRlPWwsbz17cGVuZGluZzpudWxsLGludGVybGVhdmVkOm51bGwsbGFuZXM6MCxkaXNwYXRjaDpudWxsLGxhc3RSZW5kZXJlZFJlZHVjZXI6byxsYXN0UmVuZGVyZWRTdGF0ZTpsfSxGLnF1ZXVlPW8sbz1vLmRpc3BhdGNoPWoxLmJpbmQobnVsbCxTbyxvKSxbRi5tZW1vaXplZFN0YXRlLG9dfSx1c2VSZWY6ZnVuY3Rpb24obyl7dmFyIGw9SmkoKTtyZXR1cm4gbz17Y3VycmVudDpvfSxsLm1lbW9pemVkU3RhdGU9b30sdXNlU3RhdGU6emMsdXNlRGVidWdWYWx1ZTpXcyx1c2VEZWZlcnJlZFZhbHVlOmZ1bmN0aW9uKG8pe3JldHVybiBKaSgpLm1lbW9pemVkU3RhdGU9b30sdXNlVHJhbnNpdGlvbjpmdW5jdGlvbigpe3ZhciBvPXpjKCExKSxsPW9bMF07cmV0dXJuIG89TjEuYmluZChudWxsLG9bMV0pLEppKCkubWVtb2l6ZWRTdGF0ZT1vLFtsLG9dfSx1c2VNdXRhYmxlU291cmNlOmZ1bmN0aW9uKCl7fSx1c2VTeW5jRXh0ZXJuYWxTdG9yZTpmdW5jdGlvbihvLGwsYil7dmFyIEY9U28sWD1KaSgpO2lmKG1vKXtpZihiPT09dm9pZCAwKXRocm93IEVycm9yKHQoNDA3KSk7Yj1iKCl9ZWxzZXtpZihiPWwoKSxHbz09PW51bGwpdGhyb3cgRXJyb3IodCgzNDkpKTt4bCYzMHx8VGMoRixsLGIpfVgubWVtb2l6ZWRTdGF0ZT1iO3ZhciBoZT17dmFsdWU6YixnZXRTbmFwc2hvdDpsfTtyZXR1cm4gWC5xdWV1ZT1oZSxBYyhSYy5iaW5kKG51bGwsRixoZSxvKSxbb10pLEYuZmxhZ3N8PTIwNDgsWGwoOSxNYy5iaW5kKG51bGwsRixoZSxiLGwpLHZvaWQgMCxudWxsKSxifSx1c2VJZDpmdW5jdGlvbigpe3ZhciBvPUppKCksbD1Hby5pZGVudGlmaWVyUHJlZml4O2lmKG1vKXt2YXIgYj1haSxGPUlpO2I9KEYmfigxPDwzMi1jcihGKS0xKSkudG9TdHJpbmcoMzIpK2IsbD0iOiIrbCsiUiIrYixiPUdsKyssMDxiJiYobCs9IkgiK2IudG9TdHJpbmcoMzIpKSxsKz0iOiJ9ZWxzZSBiPVYxKyssbD0iOiIrbCsiciIrYi50b1N0cmluZygzMikrIjoiO3JldHVybiBvLm1lbW9pemVkU3RhdGU9bH0sdW5zdGFibGVfaXNOZXdSZWNvbmNpbGVyOiExfSxrMT17cmVhZENvbnRleHQ6U2ksdXNlQ2FsbGJhY2s6RGMsdXNlQ29udGV4dDpTaSx1c2VFZmZlY3Q6VXMsdXNlSW1wZXJhdGl2ZUhhbmRsZTpIYyx1c2VJbnNlcnRpb25FZmZlY3Q6TGMsdXNlTGF5b3V0RWZmZWN0OlpjLHVzZU1lbW86QmMsdXNlUmVkdWNlcjpOcyx1c2VSZWY6RmMsdXNlU3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gTnMoWWwpfSx1c2VEZWJ1Z1ZhbHVlOldzLHVzZURlZmVycmVkVmFsdWU6ZnVuY3Rpb24obyl7dmFyIGw9TGkoKTtyZXR1cm4gVmMobCxOby5tZW1vaXplZFN0YXRlLG8pfSx1c2VUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7dmFyIG89TnMoWWwpWzBdLGw9TGkoKS5tZW1vaXplZFN0YXRlO3JldHVybltvLGxdfSx1c2VNdXRhYmxlU291cmNlOndjLHVzZVN5bmNFeHRlcm5hbFN0b3JlOkVjLHVzZUlkOk5jLHVuc3RhYmxlX2lzTmV3UmVjb25jaWxlcjohMX0sSzE9e3JlYWRDb250ZXh0OlNpLHVzZUNhbGxiYWNrOkRjLHVzZUNvbnRleHQ6U2ksdXNlRWZmZWN0OlVzLHVzZUltcGVyYXRpdmVIYW5kbGU6SGMsdXNlSW5zZXJ0aW9uRWZmZWN0OkxjLHVzZUxheW91dEVmZmVjdDpaYyx1c2VNZW1vOkJjLHVzZVJlZHVjZXI6anMsdXNlUmVmOkZjLHVzZVN0YXRlOmZ1bmN0aW9uKCl7cmV0dXJuIGpzKFlsKX0sdXNlRGVidWdWYWx1ZTpXcyx1c2VEZWZlcnJlZFZhbHVlOmZ1bmN0aW9uKG8pe3ZhciBsPUxpKCk7cmV0dXJuIE5vPT09bnVsbD9sLm1lbW9pemVkU3RhdGU9bzpWYyhsLE5vLm1lbW9pemVkU3RhdGUsbyl9LHVzZVRyYW5zaXRpb246ZnVuY3Rpb24oKXt2YXIgbz1qcyhZbClbMF0sbD1MaSgpLm1lbW9pemVkU3RhdGU7cmV0dXJuW28sbF19LHVzZU11dGFibGVTb3VyY2U6d2MsdXNlU3luY0V4dGVybmFsU3RvcmU6RWMsdXNlSWQ6TmMsdW5zdGFibGVfaXNOZXdSZWNvbmNpbGVyOiExfTtmdW5jdGlvbiBqaShvLGwpe2lmKG8mJm8uZGVmYXVsdFByb3BzKXtsPVAoe30sbCksbz1vLmRlZmF1bHRQcm9wcztmb3IodmFyIGIgaW4gbylsW2JdPT09dm9pZCAwJiYobFtiXT1vW2JdKTtyZXR1cm4gbH1yZXR1cm4gbH1mdW5jdGlvbiBrcyhvLGwsYixGKXtsPW8ubWVtb2l6ZWRTdGF0ZSxiPWIoRixsKSxiPWI9PW51bGw/bDpQKHt9LGwsYiksby5tZW1vaXplZFN0YXRlPWIsby5sYW5lcz09PTAmJihvLnVwZGF0ZVF1ZXVlLmJhc2VTdGF0ZT1iKX12YXIgdnM9e2lzTW91bnRlZDpmdW5jdGlvbihvKXtyZXR1cm4obz1vLl9yZWFjdEludGVybmFscyk/Wm4obyk9PT1vOiExfSxlbnF1ZXVlU2V0U3RhdGU6ZnVuY3Rpb24obyxsLGIpe289by5fcmVhY3RJbnRlcm5hbHM7dmFyIEY9bWkoKSxYPWhsKG8pLGhlPVRlKEYsWCk7aGUucGF5bG9hZD1sLGIhPW51bGwmJihoZS5jYWxsYmFjaz1iKSxsPWl0KG8saGUsWCksbCE9PW51bGwmJihraShsLG8sWCxGKSxRdChsLG8sWCkpfSxlbnF1ZXVlUmVwbGFjZVN0YXRlOmZ1bmN0aW9uKG8sbCxiKXtvPW8uX3JlYWN0SW50ZXJuYWxzO3ZhciBGPW1pKCksWD1obChvKSxoZT1UZShGLFgpO2hlLnRhZz0xLGhlLnBheWxvYWQ9bCxiIT1udWxsJiYoaGUuY2FsbGJhY2s9YiksbD1pdChvLGhlLFgpLGwhPT1udWxsJiYoa2kobCxvLFgsRiksUXQobCxvLFgpKX0sZW5xdWV1ZUZvcmNlVXBkYXRlOmZ1bmN0aW9uKG8sbCl7bz1vLl9yZWFjdEludGVybmFsczt2YXIgYj1taSgpLEY9aGwobyksWD1UZShiLEYpO1gudGFnPTIsbCE9bnVsbCYmKFguY2FsbGJhY2s9bCksbD1pdChvLFgsRiksbCE9PW51bGwmJihraShsLG8sRixiKSxRdChsLG8sRikpfX07ZnVuY3Rpb24ga2MobyxsLGIsRixYLGhlLFVlKXtyZXR1cm4gbz1vLnN0YXRlTm9kZSx0eXBlb2Ygby5zaG91bGRDb21wb25lbnRVcGRhdGU9PSJmdW5jdGlvbiI/by5zaG91bGRDb21wb25lbnRVcGRhdGUoRixoZSxVZSk6bC5wcm90b3R5cGUmJmwucHJvdG90eXBlLmlzUHVyZVJlYWN0Q29tcG9uZW50PyFOcihiLEYpfHwhTnIoWCxoZSk6ITB9ZnVuY3Rpb24gS2MobyxsLGIpe3ZhciBGPSExLFg9VmEsaGU9bC5jb250ZXh0VHlwZTtyZXR1cm4gdHlwZW9mIGhlPT0ib2JqZWN0IiYmaGUhPT1udWxsP2hlPVNpKGhlKTooWD1qZShsKT9zbzpEYS5jdXJyZW50LEY9bC5jb250ZXh0VHlwZXMsaGU9KEY9RiE9bnVsbCk/cWEobyxYKTpWYSksbD1uZXcgbChiLGhlKSxvLm1lbW9pemVkU3RhdGU9bC5zdGF0ZSE9PW51bGwmJmwuc3RhdGUhPT12b2lkIDA/bC5zdGF0ZTpudWxsLGwudXBkYXRlcj12cyxvLnN0YXRlTm9kZT1sLGwuX3JlYWN0SW50ZXJuYWxzPW8sRiYmKG89by5zdGF0ZU5vZGUsby5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZFVubWFza2VkQ2hpbGRDb250ZXh0PVgsby5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZE1hc2tlZENoaWxkQ29udGV4dD1oZSksbH1mdW5jdGlvbiBfYyhvLGwsYixGKXtvPWwuc3RhdGUsdHlwZW9mIGwuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcz09ImZ1bmN0aW9uIiYmbC5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKGIsRiksdHlwZW9mIGwuVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHM9PSJmdW5jdGlvbiImJmwuVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMoYixGKSxsLnN0YXRlIT09byYmdnMuZW5xdWV1ZVJlcGxhY2VTdGF0ZShsLGwuc3RhdGUsbnVsbCl9ZnVuY3Rpb24gS3MobyxsLGIsRil7dmFyIFg9by5zdGF0ZU5vZGU7WC5wcm9wcz1iLFguc3RhdGU9by5tZW1vaXplZFN0YXRlLFgucmVmcz17fSxMbChvKTt2YXIgaGU9bC5jb250ZXh0VHlwZTt0eXBlb2YgaGU9PSJvYmplY3QiJiZoZSE9PW51bGw/WC5jb250ZXh0PVNpKGhlKTooaGU9amUobCk/c286RGEuY3VycmVudCxYLmNvbnRleHQ9cWEobyxoZSkpLFguc3RhdGU9by5tZW1vaXplZFN0YXRlLGhlPWwuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzLHR5cGVvZiBoZT09ImZ1bmN0aW9uIiYmKGtzKG8sbCxoZSxiKSxYLnN0YXRlPW8ubWVtb2l6ZWRTdGF0ZSksdHlwZW9mIGwuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzPT0iZnVuY3Rpb24ifHx0eXBlb2YgWC5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZT09ImZ1bmN0aW9uInx8dHlwZW9mIFguVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCE9ImZ1bmN0aW9uIiYmdHlwZW9mIFguY29tcG9uZW50V2lsbE1vdW50IT0iZnVuY3Rpb24ifHwobD1YLnN0YXRlLHR5cGVvZiBYLmNvbXBvbmVudFdpbGxNb3VudD09ImZ1bmN0aW9uIiYmWC5jb21wb25lbnRXaWxsTW91bnQoKSx0eXBlb2YgWC5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50PT0iZnVuY3Rpb24iJiZYLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQoKSxsIT09WC5zdGF0ZSYmdnMuZW5xdWV1ZVJlcGxhY2VTdGF0ZShYLFguc3RhdGUsbnVsbCksT3IobyxiLFgsRiksWC5zdGF0ZT1vLm1lbW9pemVkU3RhdGUpLHR5cGVvZiBYLmNvbXBvbmVudERpZE1vdW50PT0iZnVuY3Rpb24iJiYoby5mbGFnc3w9NDE5NDMwOCl9ZnVuY3Rpb24gWmwobyxsKXt0cnl7dmFyIGI9IiIsRj1sO2RvIGIrPWZlKEYpLEY9Ri5yZXR1cm47d2hpbGUoRik7dmFyIFg9Yn1jYXRjaChoZSl7WD1gCitFcnJvciBnZW5lcmF0aW5nIHN0YWNrOiBgK2hlLm1lc3NhZ2UrYAorYCtoZS5zdGFja31yZXR1cm57dmFsdWU6byxzb3VyY2U6bCxzdGFjazpYLGRpZ2VzdDpudWxsfX1mdW5jdGlvbiBfcyhvLGwsYil7cmV0dXJue3ZhbHVlOm8sc291cmNlOm51bGwsc3RhY2s6YiE9bnVsbD9iOm51bGwsZGlnZXN0OmwhPW51bGw/bDpudWxsfX1mdW5jdGlvbiBHcyhvLGwpe3RyeXtjb25zb2xlLmVycm9yKGwudmFsdWUpfWNhdGNoKGIpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXt0aHJvdyBifSl9fXZhciBfMT10eXBlb2YgV2Vha01hcD09ImZ1bmN0aW9uIj9XZWFrTWFwOk1hcDtmdW5jdGlvbiBHYyhvLGwsYil7Yj1UZSgtMSxiKSxiLnRhZz0zLGIucGF5bG9hZD17ZWxlbWVudDpudWxsfTt2YXIgRj1sLnZhbHVlO3JldHVybiBiLmNhbGxiYWNrPWZ1bmN0aW9uKCl7YnN8fChicz0hMCxjYz1GKSxHcyhvLGwpfSxifWZ1bmN0aW9uIFljKG8sbCxiKXtiPVRlKC0xLGIpLGIudGFnPTM7dmFyIEY9by50eXBlLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcjtpZih0eXBlb2YgRj09ImZ1bmN0aW9uIil7dmFyIFg9bC52YWx1ZTtiLnBheWxvYWQ9ZnVuY3Rpb24oKXtyZXR1cm4gRihYKX0sYi5jYWxsYmFjaz1mdW5jdGlvbigpe0dzKG8sbCl9fXZhciBoZT1vLnN0YXRlTm9kZTtyZXR1cm4gaGUhPT1udWxsJiZ0eXBlb2YgaGUuY29tcG9uZW50RGlkQ2F0Y2g9PSJmdW5jdGlvbiImJihiLmNhbGxiYWNrPWZ1bmN0aW9uKCl7R3MobyxsKSx0eXBlb2YgRiE9ImZ1bmN0aW9uIiYmKGZsPT09bnVsbD9mbD1uZXcgU2V0KFt0aGlzXSk6ZmwuYWRkKHRoaXMpKTt2YXIgVWU9bC5zdGFjazt0aGlzLmNvbXBvbmVudERpZENhdGNoKGwudmFsdWUse2NvbXBvbmVudFN0YWNrOlVlIT09bnVsbD9VZToiIn0pfSksYn1mdW5jdGlvbiBYYyhvLGwsYil7dmFyIEY9by5waW5nQ2FjaGU7aWYoRj09PW51bGwpe0Y9by5waW5nQ2FjaGU9bmV3IF8xO3ZhciBYPW5ldyBTZXQ7Ri5zZXQobCxYKX1lbHNlIFg9Ri5nZXQobCksWD09PXZvaWQgMCYmKFg9bmV3IFNldCxGLnNldChsLFgpKTtYLmhhcyhiKXx8KFguYWRkKGIpLG89bHUuYmluZChudWxsLG8sbCxiKSxsLnRoZW4obyxvKSl9ZnVuY3Rpb24gUWMobyl7ZG97dmFyIGw7aWYoKGw9by50YWc9PT0xMykmJihsPW8ubWVtb2l6ZWRTdGF0ZSxsPWwhPT1udWxsP2wuZGVoeWRyYXRlZCE9PW51bGw6ITApLGwpcmV0dXJuIG87bz1vLnJldHVybn13aGlsZShvIT09bnVsbCk7cmV0dXJuIG51bGx9ZnVuY3Rpb24gSmMobyxsLGIsRixYKXtyZXR1cm4gby5tb2RlJjE/KG8uZmxhZ3N8PTY1NTM2LG8ubGFuZXM9WCxvKToobz09PWw/by5mbGFnc3w9NjU1MzY6KG8uZmxhZ3N8PTEyOCxiLmZsYWdzfD0xMzEwNzIsYi5mbGFncyY9LTUyODA1LGIudGFnPT09MSYmKGIuYWx0ZXJuYXRlPT09bnVsbD9iLnRhZz0xNzoobD1UZSgtMSwxKSxsLnRhZz0yLGl0KGIsbCwxKSkpLGIubGFuZXN8PTEpLG8pfXZhciBHMT1JLlJlYWN0Q3VycmVudE93bmVyLHhpPSExO2Z1bmN0aW9uIGhpKG8sbCxiLEYpe2wuY2hpbGQ9bz09PW51bGw/S2wobCxudWxsLGIsRik6YWwobCxvLmNoaWxkLGIsRil9ZnVuY3Rpb24gcWMobyxsLGIsRixYKXtiPWIucmVuZGVyO3ZhciBoZT1sLnJlZjtyZXR1cm4gb2wobCxYKSxGPUJzKG8sbCxiLEYsaGUsWCksYj1WcygpLG8hPT1udWxsJiYheGk/KGwudXBkYXRlUXVldWU9by51cGRhdGVRdWV1ZSxsLmZsYWdzJj0tMjA1MyxvLmxhbmVzJj1+WCxpbChvLGwsWCkpOihtbyYmYiYmY2wobCksbC5mbGFnc3w9MSxoaShvLGwsRixYKSxsLmNoaWxkKX1mdW5jdGlvbiBlMShvLGwsYixGLFgpe2lmKG89PT1udWxsKXt2YXIgaGU9Yi50eXBlO3JldHVybiB0eXBlb2YgaGU9PSJmdW5jdGlvbiImJiFnYyhoZSkmJmhlLmRlZmF1bHRQcm9wcz09PXZvaWQgMCYmYi5jb21wYXJlPT09bnVsbCYmYi5kZWZhdWx0UHJvcHM9PT12b2lkIDA/KGwudGFnPTE1LGwudHlwZT1oZSx0MShvLGwsaGUsRixYKSk6KG89VHMoYi50eXBlLG51bGwsRixsLGwubW9kZSxYKSxvLnJlZj1sLnJlZixvLnJldHVybj1sLGwuY2hpbGQ9byl9aWYoaGU9by5jaGlsZCwhKG8ubGFuZXMmWCkpe3ZhciBVZT1oZS5tZW1vaXplZFByb3BzO2lmKGI9Yi5jb21wYXJlLGI9YiE9PW51bGw/YjpOcixiKFVlLEYpJiZvLnJlZj09PWwucmVmKXJldHVybiBpbChvLGwsWCl9cmV0dXJuIGwuZmxhZ3N8PTEsbz1nbChoZSxGKSxvLnJlZj1sLnJlZixvLnJldHVybj1sLGwuY2hpbGQ9b31mdW5jdGlvbiB0MShvLGwsYixGLFgpe2lmKG8hPT1udWxsKXt2YXIgaGU9by5tZW1vaXplZFByb3BzO2lmKE5yKGhlLEYpJiZvLnJlZj09PWwucmVmKWlmKHhpPSExLGwucGVuZGluZ1Byb3BzPUY9aGUsKG8ubGFuZXMmWCkhPT0wKW8uZmxhZ3MmMTMxMDcyJiYoeGk9ITApO2Vsc2UgcmV0dXJuIGwubGFuZXM9by5sYW5lcyxpbChvLGwsWCl9cmV0dXJuIFlzKG8sbCxiLEYsWCl9ZnVuY3Rpb24gbjEobyxsLGIpe3ZhciBGPWwucGVuZGluZ1Byb3BzLFg9Ri5jaGlsZHJlbixoZT1vIT09bnVsbD9vLm1lbW9pemVkU3RhdGU6bnVsbDtpZihGLm1vZGU9PT0iaGlkZGVuIilpZighKGwubW9kZSYxKSlsLm1lbW9pemVkU3RhdGU9e2Jhc2VMYW5lczowLGNhY2hlUG9vbDpudWxsLHRyYW5zaXRpb25zOm51bGx9LFpyKEhsLEZpKSxGaXw9YjtlbHNle2lmKCEoYiYxMDczNzQxODI0KSlyZXR1cm4gbz1oZSE9PW51bGw/aGUuYmFzZUxhbmVzfGI6YixsLmxhbmVzPWwuY2hpbGRMYW5lcz0xMDczNzQxODI0LGwubWVtb2l6ZWRTdGF0ZT17YmFzZUxhbmVzOm8sY2FjaGVQb29sOm51bGwsdHJhbnNpdGlvbnM6bnVsbH0sbC51cGRhdGVRdWV1ZT1udWxsLFpyKEhsLEZpKSxGaXw9byxudWxsO2wubWVtb2l6ZWRTdGF0ZT17YmFzZUxhbmVzOjAsY2FjaGVQb29sOm51bGwsdHJhbnNpdGlvbnM6bnVsbH0sRj1oZSE9PW51bGw/aGUuYmFzZUxhbmVzOmIsWnIoSGwsRmkpLEZpfD1GfWVsc2UgaGUhPT1udWxsPyhGPWhlLmJhc2VMYW5lc3xiLGwubWVtb2l6ZWRTdGF0ZT1udWxsKTpGPWIsWnIoSGwsRmkpLEZpfD1GO3JldHVybiBoaShvLGwsWCxiKSxsLmNoaWxkfWZ1bmN0aW9uIHIxKG8sbCl7dmFyIGI9bC5yZWY7KG89PT1udWxsJiZiIT09bnVsbHx8byE9PW51bGwmJm8ucmVmIT09YikmJihsLmZsYWdzfD01MTIsbC5mbGFnc3w9MjA5NzE1Mil9ZnVuY3Rpb24gWXMobyxsLGIsRixYKXt2YXIgaGU9amUoYik/c286RGEuY3VycmVudDtyZXR1cm4gaGU9cWEobCxoZSksb2wobCxYKSxiPUJzKG8sbCxiLEYsaGUsWCksRj1WcygpLG8hPT1udWxsJiYheGk/KGwudXBkYXRlUXVldWU9by51cGRhdGVRdWV1ZSxsLmZsYWdzJj0tMjA1MyxvLmxhbmVzJj1+WCxpbChvLGwsWCkpOihtbyYmRiYmY2wobCksbC5mbGFnc3w9MSxoaShvLGwsYixYKSxsLmNoaWxkKX1mdW5jdGlvbiBhMShvLGwsYixGLFgpe2lmKGplKGIpKXt2YXIgaGU9ITA7ZWkobCl9ZWxzZSBoZT0hMTtpZihvbChsLFgpLGwuc3RhdGVOb2RlPT09bnVsbCltcyhvLGwpLEtjKGwsYixGKSxLcyhsLGIsRixYKSxGPSEwO2Vsc2UgaWYobz09PW51bGwpe3ZhciBVZT1sLnN0YXRlTm9kZSx4dD1sLm1lbW9pemVkUHJvcHM7VWUucHJvcHM9eHQ7dmFyICR0PVVlLmNvbnRleHQsSW49Yi5jb250ZXh0VHlwZTt0eXBlb2YgSW49PSJvYmplY3QiJiZJbiE9PW51bGw/SW49U2koSW4pOihJbj1qZShiKT9zbzpEYS5jdXJyZW50LEluPXFhKGwsSW4pKTt2YXIgZ3I9Yi5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMsU3I9dHlwZW9mIGdyPT0iZnVuY3Rpb24ifHx0eXBlb2YgVWUuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGU9PSJmdW5jdGlvbiI7U3J8fHR5cGVvZiBVZS5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyE9ImZ1bmN0aW9uIiYmdHlwZW9mIFVlLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMhPSJmdW5jdGlvbiJ8fCh4dCE9PUZ8fCR0IT09SW4pJiZfYyhsLFVlLEYsSW4pLFFpPSExO3ZhciB2cj1sLm1lbW9pemVkU3RhdGU7VWUuc3RhdGU9dnIsT3IobCxGLFVlLFgpLCR0PWwubWVtb2l6ZWRTdGF0ZSx4dCE9PUZ8fHZyIT09JHR8fHBhLmN1cnJlbnR8fFFpPyh0eXBlb2YgZ3I9PSJmdW5jdGlvbiImJihrcyhsLGIsZ3IsRiksJHQ9bC5tZW1vaXplZFN0YXRlKSwoeHQ9UWl8fGtjKGwsYix4dCxGLHZyLCR0LEluKSk/KFNyfHx0eXBlb2YgVWUuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCE9ImZ1bmN0aW9uIiYmdHlwZW9mIFVlLmNvbXBvbmVudFdpbGxNb3VudCE9ImZ1bmN0aW9uInx8KHR5cGVvZiBVZS5jb21wb25lbnRXaWxsTW91bnQ9PSJmdW5jdGlvbiImJlVlLmNvbXBvbmVudFdpbGxNb3VudCgpLHR5cGVvZiBVZS5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50PT0iZnVuY3Rpb24iJiZVZS5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50KCkpLHR5cGVvZiBVZS5jb21wb25lbnREaWRNb3VudD09ImZ1bmN0aW9uIiYmKGwuZmxhZ3N8PTQxOTQzMDgpKToodHlwZW9mIFVlLmNvbXBvbmVudERpZE1vdW50PT0iZnVuY3Rpb24iJiYobC5mbGFnc3w9NDE5NDMwOCksbC5tZW1vaXplZFByb3BzPUYsbC5tZW1vaXplZFN0YXRlPSR0KSxVZS5wcm9wcz1GLFVlLnN0YXRlPSR0LFVlLmNvbnRleHQ9SW4sRj14dCk6KHR5cGVvZiBVZS5jb21wb25lbnREaWRNb3VudD09ImZ1bmN0aW9uIiYmKGwuZmxhZ3N8PTQxOTQzMDgpLEY9ITEpfWVsc2V7VWU9bC5zdGF0ZU5vZGUsemkobyxsKSx4dD1sLm1lbW9pemVkUHJvcHMsSW49bC50eXBlPT09bC5lbGVtZW50VHlwZT94dDpqaShsLnR5cGUseHQpLFVlLnByb3BzPUluLFNyPWwucGVuZGluZ1Byb3BzLHZyPVVlLmNvbnRleHQsJHQ9Yi5jb250ZXh0VHlwZSx0eXBlb2YgJHQ9PSJvYmplY3QiJiYkdCE9PW51bGw/JHQ9U2koJHQpOigkdD1qZShiKT9zbzpEYS5jdXJyZW50LCR0PXFhKGwsJHQpKTt2YXIgVXI9Yi5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHM7KGdyPXR5cGVvZiBVcj09ImZ1bmN0aW9uInx8dHlwZW9mIFVlLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlPT0iZnVuY3Rpb24iKXx8dHlwZW9mIFVlLlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzIT0iZnVuY3Rpb24iJiZ0eXBlb2YgVWUuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyE9ImZ1bmN0aW9uInx8KHh0IT09U3J8fHZyIT09JHQpJiZfYyhsLFVlLEYsJHQpLFFpPSExLHZyPWwubWVtb2l6ZWRTdGF0ZSxVZS5zdGF0ZT12cixPcihsLEYsVWUsWCk7dmFyIFlyPWwubWVtb2l6ZWRTdGF0ZTt4dCE9PVNyfHx2ciE9PVlyfHxwYS5jdXJyZW50fHxRaT8odHlwZW9mIFVyPT0iZnVuY3Rpb24iJiYoa3MobCxiLFVyLEYpLFlyPWwubWVtb2l6ZWRTdGF0ZSksKEluPVFpfHxrYyhsLGIsSW4sRix2cixZciwkdCl8fCExKT8oZ3J8fHR5cGVvZiBVZS5VTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZSE9ImZ1bmN0aW9uIiYmdHlwZW9mIFVlLmNvbXBvbmVudFdpbGxVcGRhdGUhPSJmdW5jdGlvbiJ8fCh0eXBlb2YgVWUuY29tcG9uZW50V2lsbFVwZGF0ZT09ImZ1bmN0aW9uIiYmVWUuY29tcG9uZW50V2lsbFVwZGF0ZShGLFlyLCR0KSx0eXBlb2YgVWUuVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGU9PSJmdW5jdGlvbiImJlVlLlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlKEYsWXIsJHQpKSx0eXBlb2YgVWUuY29tcG9uZW50RGlkVXBkYXRlPT0iZnVuY3Rpb24iJiYobC5mbGFnc3w9NCksdHlwZW9mIFVlLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlPT0iZnVuY3Rpb24iJiYobC5mbGFnc3w9MTAyNCkpOih0eXBlb2YgVWUuY29tcG9uZW50RGlkVXBkYXRlIT0iZnVuY3Rpb24ifHx4dD09PW8ubWVtb2l6ZWRQcm9wcyYmdnI9PT1vLm1lbW9pemVkU3RhdGV8fChsLmZsYWdzfD00KSx0eXBlb2YgVWUuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUhPSJmdW5jdGlvbiJ8fHh0PT09by5tZW1vaXplZFByb3BzJiZ2cj09PW8ubWVtb2l6ZWRTdGF0ZXx8KGwuZmxhZ3N8PTEwMjQpLGwubWVtb2l6ZWRQcm9wcz1GLGwubWVtb2l6ZWRTdGF0ZT1ZciksVWUucHJvcHM9RixVZS5zdGF0ZT1ZcixVZS5jb250ZXh0PSR0LEY9SW4pOih0eXBlb2YgVWUuY29tcG9uZW50RGlkVXBkYXRlIT0iZnVuY3Rpb24ifHx4dD09PW8ubWVtb2l6ZWRQcm9wcyYmdnI9PT1vLm1lbW9pemVkU3RhdGV8fChsLmZsYWdzfD00KSx0eXBlb2YgVWUuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUhPSJmdW5jdGlvbiJ8fHh0PT09by5tZW1vaXplZFByb3BzJiZ2cj09PW8ubWVtb2l6ZWRTdGF0ZXx8KGwuZmxhZ3N8PTEwMjQpLEY9ITEpfXJldHVybiBYcyhvLGwsYixGLGhlLFgpfWZ1bmN0aW9uIFhzKG8sbCxiLEYsWCxoZSl7cjEobyxsKTt2YXIgVWU9KGwuZmxhZ3MmMTI4KSE9PTA7aWYoIUYmJiFVZSlyZXR1cm4gWCYmbnIobCxiLCExKSxpbChvLGwsaGUpO0Y9bC5zdGF0ZU5vZGUsRzEuY3VycmVudD1sO3ZhciB4dD1VZSYmdHlwZW9mIGIuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yIT0iZnVuY3Rpb24iP251bGw6Ri5yZW5kZXIoKTtyZXR1cm4gbC5mbGFnc3w9MSxvIT09bnVsbCYmVWU/KGwuY2hpbGQ9YWwobCxvLmNoaWxkLG51bGwsaGUpLGwuY2hpbGQ9YWwobCxudWxsLHh0LGhlKSk6aGkobyxsLHh0LGhlKSxsLm1lbW9pemVkU3RhdGU9Ri5zdGF0ZSxYJiZucihsLGIsITApLGwuY2hpbGR9ZnVuY3Rpb24gbzEobyl7dmFyIGw9by5zdGF0ZU5vZGU7bC5wZW5kaW5nQ29udGV4dD9BbyhvLGwucGVuZGluZ0NvbnRleHQsbC5wZW5kaW5nQ29udGV4dCE9PWwuY29udGV4dCk6bC5jb250ZXh0JiZBbyhvLGwuY29udGV4dCwhMSksQmEobyxsLmNvbnRhaW5lckluZm8pfWZ1bmN0aW9uIGkxKG8sbCxiLEYsWCl7cmV0dXJuIHVsKCksa2woWCksbC5mbGFnc3w9MjU2LGhpKG8sbCxiLEYpLGwuY2hpbGR9dmFyIFFzPXtkZWh5ZHJhdGVkOm51bGwsdHJlZUNvbnRleHQ6bnVsbCxyZXRyeUxhbmU6MH07ZnVuY3Rpb24gSnMobyl7cmV0dXJue2Jhc2VMYW5lczpvLGNhY2hlUG9vbDpudWxsLHRyYW5zaXRpb25zOm51bGx9fWZ1bmN0aW9uIGwxKG8sbCxiKXt2YXIgRj1sLnBlbmRpbmdQcm9wcyxYPWNvLmN1cnJlbnQsaGU9ITEsVWU9KGwuZmxhZ3MmMTI4KSE9PTAseHQ7aWYoKHh0PVVlKXx8KHh0PW8hPT1udWxsJiZvLm1lbW9pemVkU3RhdGU9PT1udWxsPyExOihYJjIpIT09MCkseHQ/KGhlPSEwLGwuZmxhZ3MmPS0xMjkpOihvPT09bnVsbHx8by5tZW1vaXplZFN0YXRlIT09bnVsbCkmJihYfD0xKSxacihjbyxYJjEpLG89PT1udWxsKXJldHVybiBVbChsKSxvPWwubWVtb2l6ZWRTdGF0ZSxvIT09bnVsbCYmKG89by5kZWh5ZHJhdGVkLG8hPT1udWxsKT8obC5tb2RlJjE/by5kYXRhPT09IiQhIj9sLmxhbmVzPTg6bC5sYW5lcz0xMDczNzQxODI0OmwubGFuZXM9MSxudWxsKTooVWU9Ri5jaGlsZHJlbixvPUYuZmFsbGJhY2ssaGU/KEY9bC5tb2RlLGhlPWwuY2hpbGQsVWU9e21vZGU6ImhpZGRlbiIsY2hpbGRyZW46VWV9LCEoRiYxKSYmaGUhPT1udWxsPyhoZS5jaGlsZExhbmVzPTAsaGUucGVuZGluZ1Byb3BzPVVlKTpoZT1NcyhVZSxGLDAsbnVsbCksbz1SbChvLEYsYixudWxsKSxoZS5yZXR1cm49bCxvLnJldHVybj1sLGhlLnNpYmxpbmc9byxsLmNoaWxkPWhlLGwuY2hpbGQubWVtb2l6ZWRTdGF0ZT1KcyhiKSxsLm1lbW9pemVkU3RhdGU9UXMsbyk6cXMobCxVZSkpO2lmKFg9by5tZW1vaXplZFN0YXRlLFghPT1udWxsJiYoeHQ9WC5kZWh5ZHJhdGVkLHh0IT09bnVsbCkpcmV0dXJuIFkxKG8sbCxVZSxGLHh0LFgsYik7aWYoaGUpe2hlPUYuZmFsbGJhY2ssVWU9bC5tb2RlLFg9by5jaGlsZCx4dD1YLnNpYmxpbmc7dmFyICR0PXttb2RlOiJoaWRkZW4iLGNoaWxkcmVuOkYuY2hpbGRyZW59O3JldHVybiEoVWUmMSkmJmwuY2hpbGQhPT1YPyhGPWwuY2hpbGQsRi5jaGlsZExhbmVzPTAsRi5wZW5kaW5nUHJvcHM9JHQsbC5kZWxldGlvbnM9bnVsbCk6KEY9Z2woWCwkdCksRi5zdWJ0cmVlRmxhZ3M9WC5zdWJ0cmVlRmxhZ3MmMTQ2ODAwNjQpLHh0IT09bnVsbD9oZT1nbCh4dCxoZSk6KGhlPVJsKGhlLFVlLGIsbnVsbCksaGUuZmxhZ3N8PTIpLGhlLnJldHVybj1sLEYucmV0dXJuPWwsRi5zaWJsaW5nPWhlLGwuY2hpbGQ9RixGPWhlLGhlPWwuY2hpbGQsVWU9by5jaGlsZC5tZW1vaXplZFN0YXRlLFVlPVVlPT09bnVsbD9KcyhiKTp7YmFzZUxhbmVzOlVlLmJhc2VMYW5lc3xiLGNhY2hlUG9vbDpudWxsLHRyYW5zaXRpb25zOlVlLnRyYW5zaXRpb25zfSxoZS5tZW1vaXplZFN0YXRlPVVlLGhlLmNoaWxkTGFuZXM9by5jaGlsZExhbmVzJn5iLGwubWVtb2l6ZWRTdGF0ZT1RcyxGfXJldHVybiBoZT1vLmNoaWxkLG89aGUuc2libGluZyxGPWdsKGhlLHttb2RlOiJ2aXNpYmxlIixjaGlsZHJlbjpGLmNoaWxkcmVufSksIShsLm1vZGUmMSkmJihGLmxhbmVzPWIpLEYucmV0dXJuPWwsRi5zaWJsaW5nPW51bGwsbyE9PW51bGwmJihiPWwuZGVsZXRpb25zLGI9PT1udWxsPyhsLmRlbGV0aW9ucz1bb10sbC5mbGFnc3w9MTYpOmIucHVzaChvKSksbC5jaGlsZD1GLGwubWVtb2l6ZWRTdGF0ZT1udWxsLEZ9ZnVuY3Rpb24gcXMobyxsKXtyZXR1cm4gbD1Ncyh7bW9kZToidmlzaWJsZSIsY2hpbGRyZW46bH0sby5tb2RlLDAsbnVsbCksbC5yZXR1cm49byxvLmNoaWxkPWx9ZnVuY3Rpb24gaHMobyxsLGIsRil7cmV0dXJuIEYhPT1udWxsJiZrbChGKSxhbChsLG8uY2hpbGQsbnVsbCxiKSxvPXFzKGwsbC5wZW5kaW5nUHJvcHMuY2hpbGRyZW4pLG8uZmxhZ3N8PTIsbC5tZW1vaXplZFN0YXRlPW51bGwsb31mdW5jdGlvbiBZMShvLGwsYixGLFgsaGUsVWUpe2lmKGIpcmV0dXJuIGwuZmxhZ3MmMjU2PyhsLmZsYWdzJj0tMjU3LEY9X3MoRXJyb3IodCg0MjIpKSksaHMobyxsLFVlLEYpKTpsLm1lbW9pemVkU3RhdGUhPT1udWxsPyhsLmNoaWxkPW8uY2hpbGQsbC5mbGFnc3w9MTI4LG51bGwpOihoZT1GLmZhbGxiYWNrLFg9bC5tb2RlLEY9TXMoe21vZGU6InZpc2libGUiLGNoaWxkcmVuOkYuY2hpbGRyZW59LFgsMCxudWxsKSxoZT1SbChoZSxYLFVlLG51bGwpLGhlLmZsYWdzfD0yLEYucmV0dXJuPWwsaGUucmV0dXJuPWwsRi5zaWJsaW5nPWhlLGwuY2hpbGQ9RixsLm1vZGUmMSYmYWwobCxvLmNoaWxkLG51bGwsVWUpLGwuY2hpbGQubWVtb2l6ZWRTdGF0ZT1KcyhVZSksbC5tZW1vaXplZFN0YXRlPVFzLGhlKTtpZighKGwubW9kZSYxKSlyZXR1cm4gaHMobyxsLFVlLG51bGwpO2lmKFguZGF0YT09PSIkISIpe2lmKEY9WC5uZXh0U2libGluZyYmWC5uZXh0U2libGluZy5kYXRhc2V0LEYpdmFyIHh0PUYuZGdzdDtyZXR1cm4gRj14dCxoZT1FcnJvcih0KDQxOSkpLEY9X3MoaGUsRix2b2lkIDApLGhzKG8sbCxVZSxGKX1pZih4dD0oVWUmby5jaGlsZExhbmVzKSE9PTAseGl8fHh0KXtpZihGPUdvLEYhPT1udWxsKXtzd2l0Y2goVWUmLVVlKXtjYXNlIDQ6WD0yO2JyZWFrO2Nhc2UgMTY6WD04O2JyZWFrO2Nhc2UgNjQ6Y2FzZSAxMjg6Y2FzZSAyNTY6Y2FzZSA1MTI6Y2FzZSAxMDI0OmNhc2UgMjA0ODpjYXNlIDQwOTY6Y2FzZSA4MTkyOmNhc2UgMTYzODQ6Y2FzZSAzMjc2ODpjYXNlIDY1NTM2OmNhc2UgMTMxMDcyOmNhc2UgMjYyMTQ0OmNhc2UgNTI0Mjg4OmNhc2UgMTA0ODU3NjpjYXNlIDIwOTcxNTI6Y2FzZSA0MTk0MzA0OmNhc2UgODM4ODYwODpjYXNlIDE2Nzc3MjE2OmNhc2UgMzM1NTQ0MzI6Y2FzZSA2NzEwODg2NDpYPTMyO2JyZWFrO2Nhc2UgNTM2ODcwOTEyOlg9MjY4NDM1NDU2O2JyZWFrO2RlZmF1bHQ6WD0wfVg9WCYoRi5zdXNwZW5kZWRMYW5lc3xVZSk/MDpYLFghPT0wJiZYIT09aGUucmV0cnlMYW5lJiYoaGUucmV0cnlMYW5lPVgsWm8obyxYKSxraShGLG8sWCwtMSkpfXJldHVybiBtYygpLEY9X3MoRXJyb3IodCg0MjEpKSksaHMobyxsLFVlLEYpfXJldHVybiBYLmRhdGE9PT0iJD8iPyhsLmZsYWdzfD0xMjgsbC5jaGlsZD1vLmNoaWxkLGw9c3UuYmluZChudWxsLG8pLFguX3JlYWN0UmV0cnk9bCxudWxsKToobz1oZS50cmVlQ29udGV4dCxmaT1EbyhYLm5leHRTaWJsaW5nKSxkaT1sLG1vPSEwLGJpPW51bGwsbyE9PW51bGwmJihCb1tMbysrXT1JaSxCb1tMbysrXT1haSxCb1tMbysrXT1FcixJaT1vLmlkLGFpPW8ub3ZlcmZsb3csRXI9bCksbD1xcyhsLEYuY2hpbGRyZW4pLGwuZmxhZ3N8PTQwOTYsbCl9ZnVuY3Rpb24gczEobyxsLGIpe28ubGFuZXN8PWw7dmFyIEY9by5hbHRlcm5hdGU7RiE9PW51bGwmJihGLmxhbmVzfD1sKSx6bChvLnJldHVybixsLGIpfWZ1bmN0aW9uIGVjKG8sbCxiLEYsWCl7dmFyIGhlPW8ubWVtb2l6ZWRTdGF0ZTtoZT09PW51bGw/by5tZW1vaXplZFN0YXRlPXtpc0JhY2t3YXJkczpsLHJlbmRlcmluZzpudWxsLHJlbmRlcmluZ1N0YXJ0VGltZTowLGxhc3Q6Rix0YWlsOmIsdGFpbE1vZGU6WH06KGhlLmlzQmFja3dhcmRzPWwsaGUucmVuZGVyaW5nPW51bGwsaGUucmVuZGVyaW5nU3RhcnRUaW1lPTAsaGUubGFzdD1GLGhlLnRhaWw9YixoZS50YWlsTW9kZT1YKX1mdW5jdGlvbiBjMShvLGwsYil7dmFyIEY9bC5wZW5kaW5nUHJvcHMsWD1GLnJldmVhbE9yZGVyLGhlPUYudGFpbDtpZihoaShvLGwsRi5jaGlsZHJlbixiKSxGPWNvLmN1cnJlbnQsRiYyKUY9RiYxfDIsbC5mbGFnc3w9MTI4O2Vsc2V7aWYobyE9PW51bGwmJm8uZmxhZ3MmMTI4KWU6Zm9yKG89bC5jaGlsZDtvIT09bnVsbDspe2lmKG8udGFnPT09MTMpby5tZW1vaXplZFN0YXRlIT09bnVsbCYmczEobyxiLGwpO2Vsc2UgaWYoby50YWc9PT0xOSlzMShvLGIsbCk7ZWxzZSBpZihvLmNoaWxkIT09bnVsbCl7by5jaGlsZC5yZXR1cm49byxvPW8uY2hpbGQ7Y29udGludWV9aWYobz09PWwpYnJlYWsgZTtmb3IoO28uc2libGluZz09PW51bGw7KXtpZihvLnJldHVybj09PW51bGx8fG8ucmV0dXJuPT09bClicmVhayBlO289by5yZXR1cm59by5zaWJsaW5nLnJldHVybj1vLnJldHVybixvPW8uc2libGluZ31GJj0xfWlmKFpyKGNvLEYpLCEobC5tb2RlJjEpKWwubWVtb2l6ZWRTdGF0ZT1udWxsO2Vsc2Ugc3dpdGNoKFgpe2Nhc2UiZm9yd2FyZHMiOmZvcihiPWwuY2hpbGQsWD1udWxsO2IhPT1udWxsOylvPWIuYWx0ZXJuYXRlLG8hPT1udWxsJiZscyhvKT09PW51bGwmJihYPWIpLGI9Yi5zaWJsaW5nO2I9WCxiPT09bnVsbD8oWD1sLmNoaWxkLGwuY2hpbGQ9bnVsbCk6KFg9Yi5zaWJsaW5nLGIuc2libGluZz1udWxsKSxlYyhsLCExLFgsYixoZSk7YnJlYWs7Y2FzZSJiYWNrd2FyZHMiOmZvcihiPW51bGwsWD1sLmNoaWxkLGwuY2hpbGQ9bnVsbDtYIT09bnVsbDspe2lmKG89WC5hbHRlcm5hdGUsbyE9PW51bGwmJmxzKG8pPT09bnVsbCl7bC5jaGlsZD1YO2JyZWFrfW89WC5zaWJsaW5nLFguc2libGluZz1iLGI9WCxYPW99ZWMobCwhMCxiLG51bGwsaGUpO2JyZWFrO2Nhc2UidG9nZXRoZXIiOmVjKGwsITEsbnVsbCxudWxsLHZvaWQgMCk7YnJlYWs7ZGVmYXVsdDpsLm1lbW9pemVkU3RhdGU9bnVsbH1yZXR1cm4gbC5jaGlsZH1mdW5jdGlvbiBtcyhvLGwpeyEobC5tb2RlJjEpJiZvIT09bnVsbCYmKG8uYWx0ZXJuYXRlPW51bGwsbC5hbHRlcm5hdGU9bnVsbCxsLmZsYWdzfD0yKX1mdW5jdGlvbiBpbChvLGwsYil7aWYobyE9PW51bGwmJihsLmRlcGVuZGVuY2llcz1vLmRlcGVuZGVuY2llcyksd2x8PWwubGFuZXMsIShiJmwuY2hpbGRMYW5lcykpcmV0dXJuIG51bGw7aWYobyE9PW51bGwmJmwuY2hpbGQhPT1vLmNoaWxkKXRocm93IEVycm9yKHQoMTUzKSk7aWYobC5jaGlsZCE9PW51bGwpe2ZvcihvPWwuY2hpbGQsYj1nbChvLG8ucGVuZGluZ1Byb3BzKSxsLmNoaWxkPWIsYi5yZXR1cm49bDtvLnNpYmxpbmchPT1udWxsOylvPW8uc2libGluZyxiPWIuc2libGluZz1nbChvLG8ucGVuZGluZ1Byb3BzKSxiLnJldHVybj1sO2Iuc2libGluZz1udWxsfXJldHVybiBsLmNoaWxkfWZ1bmN0aW9uIFgxKG8sbCxiKXtzd2l0Y2gobC50YWcpe2Nhc2UgMzpvMShsKSx1bCgpO2JyZWFrO2Nhc2UgNTp2aShsKTticmVhaztjYXNlIDE6amUobC50eXBlKSYmZWkobCk7YnJlYWs7Y2FzZSA0OkJhKGwsbC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyk7YnJlYWs7Y2FzZSAxMDp2YXIgRj1sLnR5cGUuX2NvbnRleHQsWD1sLm1lbW9pemVkUHJvcHMudmFsdWU7WnIoTmksRi5fY3VycmVudFZhbHVlKSxGLl9jdXJyZW50VmFsdWU9WDticmVhaztjYXNlIDEzOmlmKEY9bC5tZW1vaXplZFN0YXRlLEYhPT1udWxsKXJldHVybiBGLmRlaHlkcmF0ZWQhPT1udWxsPyhacihjbyxjby5jdXJyZW50JjEpLGwuZmxhZ3N8PTEyOCxudWxsKTpiJmwuY2hpbGQuY2hpbGRMYW5lcz9sMShvLGwsYik6KFpyKGNvLGNvLmN1cnJlbnQmMSksbz1pbChvLGwsYiksbyE9PW51bGw/by5zaWJsaW5nOm51bGwpO1pyKGNvLGNvLmN1cnJlbnQmMSk7YnJlYWs7Y2FzZSAxOTppZihGPShiJmwuY2hpbGRMYW5lcykhPT0wLG8uZmxhZ3MmMTI4KXtpZihGKXJldHVybiBjMShvLGwsYik7bC5mbGFnc3w9MTI4fWlmKFg9bC5tZW1vaXplZFN0YXRlLFghPT1udWxsJiYoWC5yZW5kZXJpbmc9bnVsbCxYLnRhaWw9bnVsbCxYLmxhc3RFZmZlY3Q9bnVsbCksWnIoY28sY28uY3VycmVudCksRilicmVhaztyZXR1cm4gbnVsbDtjYXNlIDIyOmNhc2UgMjM6cmV0dXJuIGwubGFuZXM9MCxuMShvLGwsYil9cmV0dXJuIGlsKG8sbCxiKX12YXIgdTEsdGMsZDEsZjE7dTE9ZnVuY3Rpb24obyxsKXtmb3IodmFyIGI9bC5jaGlsZDtiIT09bnVsbDspe2lmKGIudGFnPT09NXx8Yi50YWc9PT02KW8uYXBwZW5kQ2hpbGQoYi5zdGF0ZU5vZGUpO2Vsc2UgaWYoYi50YWchPT00JiZiLmNoaWxkIT09bnVsbCl7Yi5jaGlsZC5yZXR1cm49YixiPWIuY2hpbGQ7Y29udGludWV9aWYoYj09PWwpYnJlYWs7Zm9yKDtiLnNpYmxpbmc9PT1udWxsOyl7aWYoYi5yZXR1cm49PT1udWxsfHxiLnJldHVybj09PWwpcmV0dXJuO2I9Yi5yZXR1cm59Yi5zaWJsaW5nLnJldHVybj1iLnJldHVybixiPWIuc2libGluZ319LHRjPWZ1bmN0aW9uKCl7fSxkMT1mdW5jdGlvbihvLGwsYixGKXt2YXIgWD1vLm1lbW9pemVkUHJvcHM7aWYoWCE9PUYpe289bC5zdGF0ZU5vZGUsWGEoeGEuY3VycmVudCk7dmFyIGhlPW51bGw7c3dpdGNoKGIpe2Nhc2UiaW5wdXQiOlg9U2UobyxYKSxGPVNlKG8sRiksaGU9W107YnJlYWs7Y2FzZSJzZWxlY3QiOlg9UCh7fSxYLHt2YWx1ZTp2b2lkIDB9KSxGPVAoe30sRix7dmFsdWU6dm9pZCAwfSksaGU9W107YnJlYWs7Y2FzZSJ0ZXh0YXJlYSI6WD11ZShvLFgpLEY9dWUobyxGKSxoZT1bXTticmVhaztkZWZhdWx0OnR5cGVvZiBYLm9uQ2xpY2shPSJmdW5jdGlvbiImJnR5cGVvZiBGLm9uQ2xpY2s9PSJmdW5jdGlvbiImJihvLm9uY2xpY2s9SmEpfW10KGIsRik7dmFyIFVlO2I9bnVsbDtmb3IoSW4gaW4gWClpZighRi5oYXNPd25Qcm9wZXJ0eShJbikmJlguaGFzT3duUHJvcGVydHkoSW4pJiZYW0luXSE9bnVsbClpZihJbj09PSJzdHlsZSIpe3ZhciB4dD1YW0luXTtmb3IoVWUgaW4geHQpeHQuaGFzT3duUHJvcGVydHkoVWUpJiYoYnx8KGI9e30pLGJbVWVdPSIiKX1lbHNlIEluIT09ImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIiYmSW4hPT0iY2hpbGRyZW4iJiZJbiE9PSJzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmciJiZJbiE9PSJzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmciJiZJbiE9PSJhdXRvRm9jdXMiJiYocy5oYXNPd25Qcm9wZXJ0eShJbik/aGV8fChoZT1bXSk6KGhlPWhlfHxbXSkucHVzaChJbixudWxsKSk7Zm9yKEluIGluIEYpe3ZhciAkdD1GW0luXTtpZih4dD1YIT1udWxsP1hbSW5dOnZvaWQgMCxGLmhhc093blByb3BlcnR5KEluKSYmJHQhPT14dCYmKCR0IT1udWxsfHx4dCE9bnVsbCkpaWYoSW49PT0ic3R5bGUiKWlmKHh0KXtmb3IoVWUgaW4geHQpIXh0Lmhhc093blByb3BlcnR5KFVlKXx8JHQmJiR0Lmhhc093blByb3BlcnR5KFVlKXx8KGJ8fChiPXt9KSxiW1VlXT0iIik7Zm9yKFVlIGluICR0KSR0Lmhhc093blByb3BlcnR5KFVlKSYmeHRbVWVdIT09JHRbVWVdJiYoYnx8KGI9e30pLGJbVWVdPSR0W1VlXSl9ZWxzZSBifHwoaGV8fChoZT1bXSksaGUucHVzaChJbixiKSksYj0kdDtlbHNlIEluPT09ImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIj8oJHQ9JHQ/JHQuX19odG1sOnZvaWQgMCx4dD14dD94dC5fX2h0bWw6dm9pZCAwLCR0IT1udWxsJiZ4dCE9PSR0JiYoaGU9aGV8fFtdKS5wdXNoKEluLCR0KSk6SW49PT0iY2hpbGRyZW4iP3R5cGVvZiAkdCE9InN0cmluZyImJnR5cGVvZiAkdCE9Im51bWJlciJ8fChoZT1oZXx8W10pLnB1c2goSW4sIiIrJHQpOkluIT09InN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZyImJkluIT09InN1cHByZXNzSHlkcmF0aW9uV2FybmluZyImJihzLmhhc093blByb3BlcnR5KEluKT8oJHQhPW51bGwmJkluPT09Im9uU2Nyb2xsIiYmVXQoInNjcm9sbCIsbyksaGV8fHh0PT09JHR8fChoZT1bXSkpOihoZT1oZXx8W10pLnB1c2goSW4sJHQpKX1iJiYoaGU9aGV8fFtdKS5wdXNoKCJzdHlsZSIsYik7dmFyIEluPWhlOyhsLnVwZGF0ZVF1ZXVlPUluKSYmKGwuZmxhZ3N8PTQpfX0sZjE9ZnVuY3Rpb24obyxsLGIsRil7YiE9PUYmJihsLmZsYWdzfD00KX07ZnVuY3Rpb24gUWwobyxsKXtpZighbW8pc3dpdGNoKG8udGFpbE1vZGUpe2Nhc2UiaGlkZGVuIjpsPW8udGFpbDtmb3IodmFyIGI9bnVsbDtsIT09bnVsbDspbC5hbHRlcm5hdGUhPT1udWxsJiYoYj1sKSxsPWwuc2libGluZztiPT09bnVsbD9vLnRhaWw9bnVsbDpiLnNpYmxpbmc9bnVsbDticmVhaztjYXNlImNvbGxhcHNlZCI6Yj1vLnRhaWw7Zm9yKHZhciBGPW51bGw7YiE9PW51bGw7KWIuYWx0ZXJuYXRlIT09bnVsbCYmKEY9YiksYj1iLnNpYmxpbmc7Rj09PW51bGw/bHx8by50YWlsPT09bnVsbD9vLnRhaWw9bnVsbDpvLnRhaWwuc2libGluZz1udWxsOkYuc2libGluZz1udWxsfX1mdW5jdGlvbiBpaShvKXt2YXIgbD1vLmFsdGVybmF0ZSE9PW51bGwmJm8uYWx0ZXJuYXRlLmNoaWxkPT09by5jaGlsZCxiPTAsRj0wO2lmKGwpZm9yKHZhciBYPW8uY2hpbGQ7WCE9PW51bGw7KWJ8PVgubGFuZXN8WC5jaGlsZExhbmVzLEZ8PVguc3VidHJlZUZsYWdzJjE0NjgwMDY0LEZ8PVguZmxhZ3MmMTQ2ODAwNjQsWC5yZXR1cm49byxYPVguc2libGluZztlbHNlIGZvcihYPW8uY2hpbGQ7WCE9PW51bGw7KWJ8PVgubGFuZXN8WC5jaGlsZExhbmVzLEZ8PVguc3VidHJlZUZsYWdzLEZ8PVguZmxhZ3MsWC5yZXR1cm49byxYPVguc2libGluZztyZXR1cm4gby5zdWJ0cmVlRmxhZ3N8PUYsby5jaGlsZExhbmVzPWIsbH1mdW5jdGlvbiBRMShvLGwsYil7dmFyIEY9bC5wZW5kaW5nUHJvcHM7c3dpdGNoKENsKGwpLGwudGFnKXtjYXNlIDI6Y2FzZSAxNjpjYXNlIDE1OmNhc2UgMDpjYXNlIDExOmNhc2UgNzpjYXNlIDg6Y2FzZSAxMjpjYXNlIDk6Y2FzZSAxNDpyZXR1cm4gaWkobCksbnVsbDtjYXNlIDE6cmV0dXJuIGplKGwudHlwZSkmJktyKCksaWkobCksbnVsbDtjYXNlIDM6cmV0dXJuIEY9bC5zdGF0ZU5vZGUsUWEoKSx4cihwYSkseHIoRGEpLCRzKCksRi5wZW5kaW5nQ29udGV4dCYmKEYuY29udGV4dD1GLnBlbmRpbmdDb250ZXh0LEYucGVuZGluZ0NvbnRleHQ9bnVsbCksKG89PT1udWxsfHxvLmNoaWxkPT09bnVsbCkmJihibChsKT9sLmZsYWdzfD00Om89PT1udWxsfHxvLm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkJiYhKGwuZmxhZ3MmMjU2KXx8KGwuZmxhZ3N8PTEwMjQsYmkhPT1udWxsJiYoZmMoYmkpLGJpPW51bGwpKSksdGMobyxsKSxpaShsKSxudWxsO2Nhc2UgNTpPaShsKTt2YXIgWD1YYShaYS5jdXJyZW50KTtpZihiPWwudHlwZSxvIT09bnVsbCYmbC5zdGF0ZU5vZGUhPW51bGwpZDEobyxsLGIsRixYKSxvLnJlZiE9PWwucmVmJiYobC5mbGFnc3w9NTEyLGwuZmxhZ3N8PTIwOTcxNTIpO2Vsc2V7aWYoIUYpe2lmKGwuc3RhdGVOb2RlPT09bnVsbCl0aHJvdyBFcnJvcih0KDE2NikpO3JldHVybiBpaShsKSxudWxsfWlmKG89WGEoeGEuY3VycmVudCksYmwobCkpe0Y9bC5zdGF0ZU5vZGUsYj1sLnR5cGU7dmFyIGhlPWwubWVtb2l6ZWRQcm9wcztzd2l0Y2goRltLb109bCxGW0pvXT1oZSxvPShsLm1vZGUmMSkhPT0wLGIpe2Nhc2UiZGlhbG9nIjpVdCgiY2FuY2VsIixGKSxVdCgiY2xvc2UiLEYpO2JyZWFrO2Nhc2UiaWZyYW1lIjpjYXNlIm9iamVjdCI6Y2FzZSJlbWJlZCI6VXQoImxvYWQiLEYpO2JyZWFrO2Nhc2UidmlkZW8iOmNhc2UiYXVkaW8iOmZvcihYPTA7WDxLZS5sZW5ndGg7WCsrKVV0KEtlW1hdLEYpO2JyZWFrO2Nhc2Uic291cmNlIjpVdCgiZXJyb3IiLEYpO2JyZWFrO2Nhc2UiaW1nIjpjYXNlImltYWdlIjpjYXNlImxpbmsiOlV0KCJlcnJvciIsRiksVXQoImxvYWQiLEYpO2JyZWFrO2Nhc2UiZGV0YWlscyI6VXQoInRvZ2dsZSIsRik7YnJlYWs7Y2FzZSJpbnB1dCI6cShGLGhlKSxVdCgiaW52YWxpZCIsRik7YnJlYWs7Y2FzZSJzZWxlY3QiOkYuX3dyYXBwZXJTdGF0ZT17d2FzTXVsdGlwbGU6ISFoZS5tdWx0aXBsZX0sVXQoImludmFsaWQiLEYpO2JyZWFrO2Nhc2UidGV4dGFyZWEiOiQoRixoZSksVXQoImludmFsaWQiLEYpfW10KGIsaGUpLFg9bnVsbDtmb3IodmFyIFVlIGluIGhlKWlmKGhlLmhhc093blByb3BlcnR5KFVlKSl7dmFyIHh0PWhlW1VlXTtVZT09PSJjaGlsZHJlbiI/dHlwZW9mIHh0PT0ic3RyaW5nIj9GLnRleHRDb250ZW50IT09eHQmJihoZS5zdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmchPT0hMCYmT2EoRi50ZXh0Q29udGVudCx4dCxvKSxYPVsiY2hpbGRyZW4iLHh0XSk6dHlwZW9mIHh0PT0ibnVtYmVyIiYmRi50ZXh0Q29udGVudCE9PSIiK3h0JiYoaGUuc3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nIT09ITAmJk9hKEYudGV4dENvbnRlbnQseHQsbyksWD1bImNoaWxkcmVuIiwiIit4dF0pOnMuaGFzT3duUHJvcGVydHkoVWUpJiZ4dCE9bnVsbCYmVWU9PT0ib25TY3JvbGwiJiZVdCgic2Nyb2xsIixGKX1zd2l0Y2goYil7Y2FzZSJpbnB1dCI6cWUoRiksQShGLGhlLCEwKTticmVhaztjYXNlInRleHRhcmVhIjpxZShGKSxwZShGKTticmVhaztjYXNlInNlbGVjdCI6Y2FzZSJvcHRpb24iOmJyZWFrO2RlZmF1bHQ6dHlwZW9mIGhlLm9uQ2xpY2s9PSJmdW5jdGlvbiImJihGLm9uY2xpY2s9SmEpfUY9WCxsLnVwZGF0ZVF1ZXVlPUYsRiE9PW51bGwmJihsLmZsYWdzfD00KX1lbHNle1VlPVgubm9kZVR5cGU9PT05P1g6WC5vd25lckRvY3VtZW50LG89PT0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCImJihvPXJlKGIpKSxvPT09Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiP2I9PT0ic2NyaXB0Ij8obz1VZS5jcmVhdGVFbGVtZW50KCJkaXYiKSxvLmlubmVySFRNTD0iPHNjcmlwdD48XC9zY3JpcHQ+IixvPW8ucmVtb3ZlQ2hpbGQoby5maXJzdENoaWxkKSk6dHlwZW9mIEYuaXM9PSJzdHJpbmciP289VWUuY3JlYXRlRWxlbWVudChiLHtpczpGLmlzfSk6KG89VWUuY3JlYXRlRWxlbWVudChiKSxiPT09InNlbGVjdCImJihVZT1vLEYubXVsdGlwbGU/VWUubXVsdGlwbGU9ITA6Ri5zaXplJiYoVWUuc2l6ZT1GLnNpemUpKSk6bz1VZS5jcmVhdGVFbGVtZW50TlMobyxiKSxvW0tvXT1sLG9bSm9dPUYsdTEobyxsLCExLCExKSxsLnN0YXRlTm9kZT1vO2U6e3N3aXRjaChVZT11dChiLEYpLGIpe2Nhc2UiZGlhbG9nIjpVdCgiY2FuY2VsIixvKSxVdCgiY2xvc2UiLG8pLFg9RjticmVhaztjYXNlImlmcmFtZSI6Y2FzZSJvYmplY3QiOmNhc2UiZW1iZWQiOlV0KCJsb2FkIixvKSxYPUY7YnJlYWs7Y2FzZSJ2aWRlbyI6Y2FzZSJhdWRpbyI6Zm9yKFg9MDtYPEtlLmxlbmd0aDtYKyspVXQoS2VbWF0sbyk7WD1GO2JyZWFrO2Nhc2Uic291cmNlIjpVdCgiZXJyb3IiLG8pLFg9RjticmVhaztjYXNlImltZyI6Y2FzZSJpbWFnZSI6Y2FzZSJsaW5rIjpVdCgiZXJyb3IiLG8pLFV0KCJsb2FkIixvKSxYPUY7YnJlYWs7Y2FzZSJkZXRhaWxzIjpVdCgidG9nZ2xlIixvKSxYPUY7YnJlYWs7Y2FzZSJpbnB1dCI6cShvLEYpLFg9U2UobyxGKSxVdCgiaW52YWxpZCIsbyk7YnJlYWs7Y2FzZSJvcHRpb24iOlg9RjticmVhaztjYXNlInNlbGVjdCI6by5fd3JhcHBlclN0YXRlPXt3YXNNdWx0aXBsZTohIUYubXVsdGlwbGV9LFg9UCh7fSxGLHt2YWx1ZTp2b2lkIDB9KSxVdCgiaW52YWxpZCIsbyk7YnJlYWs7Y2FzZSJ0ZXh0YXJlYSI6JChvLEYpLFg9dWUobyxGKSxVdCgiaW52YWxpZCIsbyk7YnJlYWs7ZGVmYXVsdDpYPUZ9bXQoYixYKSx4dD1YO2ZvcihoZSBpbiB4dClpZih4dC5oYXNPd25Qcm9wZXJ0eShoZSkpe3ZhciAkdD14dFtoZV07aGU9PT0ic3R5bGUiP0FlKG8sJHQpOmhlPT09ImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIj8oJHQ9JHQ/JHQuX19odG1sOnZvaWQgMCwkdCE9bnVsbCYmTGUobywkdCkpOmhlPT09ImNoaWxkcmVuIj90eXBlb2YgJHQ9PSJzdHJpbmciPyhiIT09InRleHRhcmVhInx8JHQhPT0iIikmJk1lKG8sJHQpOnR5cGVvZiAkdD09Im51bWJlciImJk1lKG8sIiIrJHQpOmhlIT09InN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZyImJmhlIT09InN1cHByZXNzSHlkcmF0aW9uV2FybmluZyImJmhlIT09ImF1dG9Gb2N1cyImJihzLmhhc093blByb3BlcnR5KGhlKT8kdCE9bnVsbCYmaGU9PT0ib25TY3JvbGwiJiZVdCgic2Nyb2xsIixvKTokdCE9bnVsbCYmTChvLGhlLCR0LFVlKSl9c3dpdGNoKGIpe2Nhc2UiaW5wdXQiOnFlKG8pLEEobyxGLCExKTticmVhaztjYXNlInRleHRhcmVhIjpxZShvKSxwZShvKTticmVhaztjYXNlIm9wdGlvbiI6Ri52YWx1ZSE9bnVsbCYmby5zZXRBdHRyaWJ1dGUoInZhbHVlIiwiIitCZShGLnZhbHVlKSk7YnJlYWs7Y2FzZSJzZWxlY3QiOm8ubXVsdGlwbGU9ISFGLm11bHRpcGxlLGhlPUYudmFsdWUsaGUhPW51bGw/UShvLCEhRi5tdWx0aXBsZSxoZSwhMSk6Ri5kZWZhdWx0VmFsdWUhPW51bGwmJlEobywhIUYubXVsdGlwbGUsRi5kZWZhdWx0VmFsdWUsITApO2JyZWFrO2RlZmF1bHQ6dHlwZW9mIFgub25DbGljaz09ImZ1bmN0aW9uIiYmKG8ub25jbGljaz1KYSl9c3dpdGNoKGIpe2Nhc2UiYnV0dG9uIjpjYXNlImlucHV0IjpjYXNlInNlbGVjdCI6Y2FzZSJ0ZXh0YXJlYSI6Rj0hIUYuYXV0b0ZvY3VzO2JyZWFrIGU7Y2FzZSJpbWciOkY9ITA7YnJlYWsgZTtkZWZhdWx0OkY9ITF9fUYmJihsLmZsYWdzfD00KX1sLnJlZiE9PW51bGwmJihsLmZsYWdzfD01MTIsbC5mbGFnc3w9MjA5NzE1Mil9cmV0dXJuIGlpKGwpLG51bGw7Y2FzZSA2OmlmKG8mJmwuc3RhdGVOb2RlIT1udWxsKWYxKG8sbCxvLm1lbW9pemVkUHJvcHMsRik7ZWxzZXtpZih0eXBlb2YgRiE9InN0cmluZyImJmwuc3RhdGVOb2RlPT09bnVsbCl0aHJvdyBFcnJvcih0KDE2NikpO2lmKGI9WGEoWmEuY3VycmVudCksWGEoeGEuY3VycmVudCksYmwobCkpe2lmKEY9bC5zdGF0ZU5vZGUsYj1sLm1lbW9pemVkUHJvcHMsRltLb109bCwoaGU9Ri5ub2RlVmFsdWUhPT1iKSYmKG89ZGksbyE9PW51bGwpKXN3aXRjaChvLnRhZyl7Y2FzZSAzOk9hKEYubm9kZVZhbHVlLGIsKG8ubW9kZSYxKSE9PTApO2JyZWFrO2Nhc2UgNTpvLm1lbW9pemVkUHJvcHMuc3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nIT09ITAmJk9hKEYubm9kZVZhbHVlLGIsKG8ubW9kZSYxKSE9PTApfWhlJiYobC5mbGFnc3w9NCl9ZWxzZSBGPShiLm5vZGVUeXBlPT09OT9iOmIub3duZXJEb2N1bWVudCkuY3JlYXRlVGV4dE5vZGUoRiksRltLb109bCxsLnN0YXRlTm9kZT1GfXJldHVybiBpaShsKSxudWxsO2Nhc2UgMTM6aWYoeHIoY28pLEY9bC5tZW1vaXplZFN0YXRlLG89PT1udWxsfHxvLm1lbW9pemVkU3RhdGUhPT1udWxsJiZvLm1lbW9pemVkU3RhdGUuZGVoeWRyYXRlZCE9PW51bGwpe2lmKG1vJiZmaSE9PW51bGwmJmwubW9kZSYxJiYhKGwuZmxhZ3MmMTI4KSlXbCgpLHVsKCksbC5mbGFnc3w9OTg1NjAsaGU9ITE7ZWxzZSBpZihoZT1ibChsKSxGIT09bnVsbCYmRi5kZWh5ZHJhdGVkIT09bnVsbCl7aWYobz09PW51bGwpe2lmKCFoZSl0aHJvdyBFcnJvcih0KDMxOCkpO2lmKGhlPWwubWVtb2l6ZWRTdGF0ZSxoZT1oZSE9PW51bGw/aGUuZGVoeWRyYXRlZDpudWxsLCFoZSl0aHJvdyBFcnJvcih0KDMxNykpO2hlW0tvXT1sfWVsc2UgdWwoKSwhKGwuZmxhZ3MmMTI4KSYmKGwubWVtb2l6ZWRTdGF0ZT1udWxsKSxsLmZsYWdzfD00O2lpKGwpLGhlPSExfWVsc2UgYmkhPT1udWxsJiYoZmMoYmkpLGJpPW51bGwpLGhlPSEwO2lmKCFoZSlyZXR1cm4gbC5mbGFncyY2NTUzNj9sOm51bGx9cmV0dXJuIGwuZmxhZ3MmMTI4PyhsLmxhbmVzPWIsbCk6KEY9RiE9PW51bGwsRiE9PShvIT09bnVsbCYmby5tZW1vaXplZFN0YXRlIT09bnVsbCkmJkYmJihsLmNoaWxkLmZsYWdzfD04MTkyLGwubW9kZSYxJiYobz09PW51bGx8fGNvLmN1cnJlbnQmMT9qbz09PTAmJihqbz0zKTptYygpKSksbC51cGRhdGVRdWV1ZSE9PW51bGwmJihsLmZsYWdzfD00KSxpaShsKSxudWxsKTtjYXNlIDQ6cmV0dXJuIFFhKCksdGMobyxsKSxvPT09bnVsbCYmdHIobC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyksaWkobCksbnVsbDtjYXNlIDEwOnJldHVybiBYaShsLnR5cGUuX2NvbnRleHQpLGlpKGwpLG51bGw7Y2FzZSAxNzpyZXR1cm4gamUobC50eXBlKSYmS3IoKSxpaShsKSxudWxsO2Nhc2UgMTk6aWYoeHIoY28pLGhlPWwubWVtb2l6ZWRTdGF0ZSxoZT09PW51bGwpcmV0dXJuIGlpKGwpLG51bGw7aWYoRj0obC5mbGFncyYxMjgpIT09MCxVZT1oZS5yZW5kZXJpbmcsVWU9PT1udWxsKWlmKEYpUWwoaGUsITEpO2Vsc2V7aWYoam8hPT0wfHxvIT09bnVsbCYmby5mbGFncyYxMjgpZm9yKG89bC5jaGlsZDtvIT09bnVsbDspe2lmKFVlPWxzKG8pLFVlIT09bnVsbCl7Zm9yKGwuZmxhZ3N8PTEyOCxRbChoZSwhMSksRj1VZS51cGRhdGVRdWV1ZSxGIT09bnVsbCYmKGwudXBkYXRlUXVldWU9RixsLmZsYWdzfD00KSxsLnN1YnRyZWVGbGFncz0wLEY9YixiPWwuY2hpbGQ7YiE9PW51bGw7KWhlPWIsbz1GLGhlLmZsYWdzJj0xNDY4MDA2NixVZT1oZS5hbHRlcm5hdGUsVWU9PT1udWxsPyhoZS5jaGlsZExhbmVzPTAsaGUubGFuZXM9byxoZS5jaGlsZD1udWxsLGhlLnN1YnRyZWVGbGFncz0wLGhlLm1lbW9pemVkUHJvcHM9bnVsbCxoZS5tZW1vaXplZFN0YXRlPW51bGwsaGUudXBkYXRlUXVldWU9bnVsbCxoZS5kZXBlbmRlbmNpZXM9bnVsbCxoZS5zdGF0ZU5vZGU9bnVsbCk6KGhlLmNoaWxkTGFuZXM9VWUuY2hpbGRMYW5lcyxoZS5sYW5lcz1VZS5sYW5lcyxoZS5jaGlsZD1VZS5jaGlsZCxoZS5zdWJ0cmVlRmxhZ3M9MCxoZS5kZWxldGlvbnM9bnVsbCxoZS5tZW1vaXplZFByb3BzPVVlLm1lbW9pemVkUHJvcHMsaGUubWVtb2l6ZWRTdGF0ZT1VZS5tZW1vaXplZFN0YXRlLGhlLnVwZGF0ZVF1ZXVlPVVlLnVwZGF0ZVF1ZXVlLGhlLnR5cGU9VWUudHlwZSxvPVVlLmRlcGVuZGVuY2llcyxoZS5kZXBlbmRlbmNpZXM9bz09PW51bGw/bnVsbDp7bGFuZXM6by5sYW5lcyxmaXJzdENvbnRleHQ6by5maXJzdENvbnRleHR9KSxiPWIuc2libGluZztyZXR1cm4gWnIoY28sY28uY3VycmVudCYxfDIpLGwuY2hpbGR9bz1vLnNpYmxpbmd9aGUudGFpbCE9PW51bGwmJl90KCk+RGwmJihsLmZsYWdzfD0xMjgsRj0hMCxRbChoZSwhMSksbC5sYW5lcz00MTk0MzA0KX1lbHNle2lmKCFGKWlmKG89bHMoVWUpLG8hPT1udWxsKXtpZihsLmZsYWdzfD0xMjgsRj0hMCxiPW8udXBkYXRlUXVldWUsYiE9PW51bGwmJihsLnVwZGF0ZVF1ZXVlPWIsbC5mbGFnc3w9NCksUWwoaGUsITApLGhlLnRhaWw9PT1udWxsJiZoZS50YWlsTW9kZT09PSJoaWRkZW4iJiYhVWUuYWx0ZXJuYXRlJiYhbW8pcmV0dXJuIGlpKGwpLG51bGx9ZWxzZSAyKl90KCktaGUucmVuZGVyaW5nU3RhcnRUaW1lPkRsJiZiIT09MTA3Mzc0MTgyNCYmKGwuZmxhZ3N8PTEyOCxGPSEwLFFsKGhlLCExKSxsLmxhbmVzPTQxOTQzMDQpO2hlLmlzQmFja3dhcmRzPyhVZS5zaWJsaW5nPWwuY2hpbGQsbC5jaGlsZD1VZSk6KGI9aGUubGFzdCxiIT09bnVsbD9iLnNpYmxpbmc9VWU6bC5jaGlsZD1VZSxoZS5sYXN0PVVlKX1yZXR1cm4gaGUudGFpbCE9PW51bGw/KGw9aGUudGFpbCxoZS5yZW5kZXJpbmc9bCxoZS50YWlsPWwuc2libGluZyxoZS5yZW5kZXJpbmdTdGFydFRpbWU9X3QoKSxsLnNpYmxpbmc9bnVsbCxiPWNvLmN1cnJlbnQsWnIoY28sRj9iJjF8MjpiJjEpLGwpOihpaShsKSxudWxsKTtjYXNlIDIyOmNhc2UgMjM6cmV0dXJuIGhjKCksRj1sLm1lbW9pemVkU3RhdGUhPT1udWxsLG8hPT1udWxsJiZvLm1lbW9pemVkU3RhdGUhPT1udWxsIT09RiYmKGwuZmxhZ3N8PTgxOTIpLEYmJmwubW9kZSYxP0ZpJjEwNzM3NDE4MjQmJihpaShsKSxsLnN1YnRyZWVGbGFncyY2JiYobC5mbGFnc3w9ODE5MikpOmlpKGwpLG51bGw7Y2FzZSAyNDpyZXR1cm4gbnVsbDtjYXNlIDI1OnJldHVybiBudWxsfXRocm93IEVycm9yKHQoMTU2LGwudGFnKSl9ZnVuY3Rpb24gSjEobyxsKXtzd2l0Y2goQ2wobCksbC50YWcpe2Nhc2UgMTpyZXR1cm4gamUobC50eXBlKSYmS3IoKSxvPWwuZmxhZ3MsbyY2NTUzNj8obC5mbGFncz1vJi02NTUzN3wxMjgsbCk6bnVsbDtjYXNlIDM6cmV0dXJuIFFhKCkseHIocGEpLHhyKERhKSwkcygpLG89bC5mbGFncyxvJjY1NTM2JiYhKG8mMTI4KT8obC5mbGFncz1vJi02NTUzN3wxMjgsbCk6bnVsbDtjYXNlIDU6cmV0dXJuIE9pKGwpLG51bGw7Y2FzZSAxMzppZih4cihjbyksbz1sLm1lbW9pemVkU3RhdGUsbyE9PW51bGwmJm8uZGVoeWRyYXRlZCE9PW51bGwpe2lmKGwuYWx0ZXJuYXRlPT09bnVsbCl0aHJvdyBFcnJvcih0KDM0MCkpO3VsKCl9cmV0dXJuIG89bC5mbGFncyxvJjY1NTM2PyhsLmZsYWdzPW8mLTY1NTM3fDEyOCxsKTpudWxsO2Nhc2UgMTk6cmV0dXJuIHhyKGNvKSxudWxsO2Nhc2UgNDpyZXR1cm4gUWEoKSxudWxsO2Nhc2UgMTA6cmV0dXJuIFhpKGwudHlwZS5fY29udGV4dCksbnVsbDtjYXNlIDIyOmNhc2UgMjM6cmV0dXJuIGhjKCksbnVsbDtjYXNlIDI0OnJldHVybiBudWxsO2RlZmF1bHQ6cmV0dXJuIG51bGx9fXZhciBncz0hMSxsaT0hMSxxMT10eXBlb2YgV2Vha1NldD09ImZ1bmN0aW9uIj9XZWFrU2V0OlNldCxfcj1udWxsO2Z1bmN0aW9uICRsKG8sbCl7dmFyIGI9by5yZWY7aWYoYiE9PW51bGwpaWYodHlwZW9mIGI9PSJmdW5jdGlvbiIpdHJ5e2IobnVsbCl9Y2F0Y2goRil7TW8obyxsLEYpfWVsc2UgYi5jdXJyZW50PW51bGx9ZnVuY3Rpb24gbmMobyxsLGIpe3RyeXtiKCl9Y2F0Y2goRil7TW8obyxsLEYpfX12YXIgdjE9ITE7ZnVuY3Rpb24gZXUobyxsKXtpZih0bz1hdCxvPUVhKCkscG8obykpe2lmKCJzZWxlY3Rpb25TdGFydCJpbiBvKXZhciBiPXtzdGFydDpvLnNlbGVjdGlvblN0YXJ0LGVuZDpvLnNlbGVjdGlvbkVuZH07ZWxzZSBlOntiPShiPW8ub3duZXJEb2N1bWVudCkmJmIuZGVmYXVsdFZpZXd8fHdpbmRvdzt2YXIgRj1iLmdldFNlbGVjdGlvbiYmYi5nZXRTZWxlY3Rpb24oKTtpZihGJiZGLnJhbmdlQ291bnQhPT0wKXtiPUYuYW5jaG9yTm9kZTt2YXIgWD1GLmFuY2hvck9mZnNldCxoZT1GLmZvY3VzTm9kZTtGPUYuZm9jdXNPZmZzZXQ7dHJ5e2Iubm9kZVR5cGUsaGUubm9kZVR5cGV9Y2F0Y2goVHIpe2I9bnVsbDticmVhayBlfXZhciBVZT0wLHh0PS0xLCR0PS0xLEluPTAsZ3I9MCxTcj1vLHZyPW51bGw7dDpmb3IoOzspe2Zvcih2YXIgVXI7U3IhPT1ifHxYIT09MCYmU3Iubm9kZVR5cGUhPT0zfHwoeHQ9VWUrWCksU3IhPT1oZXx8RiE9PTAmJlNyLm5vZGVUeXBlIT09M3x8KCR0PVVlK0YpLFNyLm5vZGVUeXBlPT09MyYmKFVlKz1Tci5ub2RlVmFsdWUubGVuZ3RoKSwoVXI9U3IuZmlyc3RDaGlsZCkhPT1udWxsOyl2cj1TcixTcj1Vcjtmb3IoOzspe2lmKFNyPT09bylicmVhayB0O2lmKHZyPT09YiYmKytJbj09PVgmJih4dD1VZSksdnI9PT1oZSYmKytncj09PUYmJigkdD1VZSksKFVyPVNyLm5leHRTaWJsaW5nKSE9PW51bGwpYnJlYWs7U3I9dnIsdnI9U3IucGFyZW50Tm9kZX1Tcj1Vcn1iPXh0PT09LTF8fCR0PT09LTE/bnVsbDp7c3RhcnQ6eHQsZW5kOiR0fX1lbHNlIGI9bnVsbH1iPWJ8fHtzdGFydDowLGVuZDowfX1lbHNlIGI9bnVsbDtmb3Iod289e2ZvY3VzZWRFbGVtOm8sc2VsZWN0aW9uUmFuZ2U6Yn0sYXQ9ITEsX3I9bDtfciE9PW51bGw7KWlmKGw9X3Isbz1sLmNoaWxkLChsLnN1YnRyZWVGbGFncyYxMDI4KSE9PTAmJm8hPT1udWxsKW8ucmV0dXJuPWwsX3I9bztlbHNlIGZvcig7X3IhPT1udWxsOyl7bD1fcjt0cnl7dmFyIFlyPWwuYWx0ZXJuYXRlO2lmKGwuZmxhZ3MmMTAyNClzd2l0Y2gobC50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6YnJlYWs7Y2FzZSAxOmlmKFlyIT09bnVsbCl7dmFyIFFyPVlyLm1lbW9pemVkUHJvcHMsUG89WXIubWVtb2l6ZWRTdGF0ZSx1bj1sLnN0YXRlTm9kZSxXdD11bi5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZShsLmVsZW1lbnRUeXBlPT09bC50eXBlP1FyOmppKGwudHlwZSxRciksUG8pO3VuLl9fcmVhY3RJbnRlcm5hbFNuYXBzaG90QmVmb3JlVXBkYXRlPVd0fWJyZWFrO2Nhc2UgMzp2YXIgaG49bC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbztobi5ub2RlVHlwZT09PTE/aG4udGV4dENvbnRlbnQ9IiI6aG4ubm9kZVR5cGU9PT05JiZobi5kb2N1bWVudEVsZW1lbnQmJmhuLnJlbW92ZUNoaWxkKGhuLmRvY3VtZW50RWxlbWVudCk7YnJlYWs7Y2FzZSA1OmNhc2UgNjpjYXNlIDQ6Y2FzZSAxNzpicmVhaztkZWZhdWx0OnRocm93IEVycm9yKHQoMTYzKSl9fWNhdGNoKFRyKXtNbyhsLGwucmV0dXJuLFRyKX1pZihvPWwuc2libGluZyxvIT09bnVsbCl7by5yZXR1cm49bC5yZXR1cm4sX3I9bzticmVha31fcj1sLnJldHVybn1yZXR1cm4gWXI9djEsdjE9ITEsWXJ9ZnVuY3Rpb24gSmwobyxsLGIpe3ZhciBGPWwudXBkYXRlUXVldWU7aWYoRj1GIT09bnVsbD9GLmxhc3RFZmZlY3Q6bnVsbCxGIT09bnVsbCl7dmFyIFg9Rj1GLm5leHQ7ZG97aWYoKFgudGFnJm8pPT09byl7dmFyIGhlPVguZGVzdHJveTtYLmRlc3Ryb3k9dm9pZCAwLGhlIT09dm9pZCAwJiZuYyhsLGIsaGUpfVg9WC5uZXh0fXdoaWxlKFghPT1GKX19ZnVuY3Rpb24gcHMobyxsKXtpZihsPWwudXBkYXRlUXVldWUsbD1sIT09bnVsbD9sLmxhc3RFZmZlY3Q6bnVsbCxsIT09bnVsbCl7dmFyIGI9bD1sLm5leHQ7ZG97aWYoKGIudGFnJm8pPT09byl7dmFyIEY9Yi5jcmVhdGU7Yi5kZXN0cm95PUYoKX1iPWIubmV4dH13aGlsZShiIT09bCl9fWZ1bmN0aW9uIHJjKG8pe3ZhciBsPW8ucmVmO2lmKGwhPT1udWxsKXt2YXIgYj1vLnN0YXRlTm9kZTtzd2l0Y2goby50YWcpe2Nhc2UgNTpvPWI7YnJlYWs7ZGVmYXVsdDpvPWJ9dHlwZW9mIGw9PSJmdW5jdGlvbiI/bChvKTpsLmN1cnJlbnQ9b319ZnVuY3Rpb24gaDEobyl7dmFyIGw9by5hbHRlcm5hdGU7bCE9PW51bGwmJihvLmFsdGVybmF0ZT1udWxsLGgxKGwpKSxvLmNoaWxkPW51bGwsby5kZWxldGlvbnM9bnVsbCxvLnNpYmxpbmc9bnVsbCxvLnRhZz09PTUmJihsPW8uc3RhdGVOb2RlLGwhPT1udWxsJiYoZGVsZXRlIGxbS29dLGRlbGV0ZSBsW0pvXSxkZWxldGUgbFtfaV0sZGVsZXRlIGxbRW9dLGRlbGV0ZSBsW2tuXSkpLG8uc3RhdGVOb2RlPW51bGwsby5yZXR1cm49bnVsbCxvLmRlcGVuZGVuY2llcz1udWxsLG8ubWVtb2l6ZWRQcm9wcz1udWxsLG8ubWVtb2l6ZWRTdGF0ZT1udWxsLG8ucGVuZGluZ1Byb3BzPW51bGwsby5zdGF0ZU5vZGU9bnVsbCxvLnVwZGF0ZVF1ZXVlPW51bGx9ZnVuY3Rpb24gbTEobyl7cmV0dXJuIG8udGFnPT09NXx8by50YWc9PT0zfHxvLnRhZz09PTR9ZnVuY3Rpb24gZzEobyl7ZTpmb3IoOzspe2Zvcig7by5zaWJsaW5nPT09bnVsbDspe2lmKG8ucmV0dXJuPT09bnVsbHx8bTEoby5yZXR1cm4pKXJldHVybiBudWxsO289by5yZXR1cm59Zm9yKG8uc2libGluZy5yZXR1cm49by5yZXR1cm4sbz1vLnNpYmxpbmc7by50YWchPT01JiZvLnRhZyE9PTYmJm8udGFnIT09MTg7KXtpZihvLmZsYWdzJjJ8fG8uY2hpbGQ9PT1udWxsfHxvLnRhZz09PTQpY29udGludWUgZTtvLmNoaWxkLnJldHVybj1vLG89by5jaGlsZH1pZighKG8uZmxhZ3MmMikpcmV0dXJuIG8uc3RhdGVOb2RlfX1mdW5jdGlvbiBhYyhvLGwsYil7dmFyIEY9by50YWc7aWYoRj09PTV8fEY9PT02KW89by5zdGF0ZU5vZGUsbD9iLm5vZGVUeXBlPT09OD9iLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKG8sbCk6Yi5pbnNlcnRCZWZvcmUobyxsKTooYi5ub2RlVHlwZT09PTg/KGw9Yi5wYXJlbnROb2RlLGwuaW5zZXJ0QmVmb3JlKG8sYikpOihsPWIsbC5hcHBlbmRDaGlsZChvKSksYj1iLl9yZWFjdFJvb3RDb250YWluZXIsYiE9bnVsbHx8bC5vbmNsaWNrIT09bnVsbHx8KGwub25jbGljaz1KYSkpO2Vsc2UgaWYoRiE9PTQmJihvPW8uY2hpbGQsbyE9PW51bGwpKWZvcihhYyhvLGwsYiksbz1vLnNpYmxpbmc7byE9PW51bGw7KWFjKG8sbCxiKSxvPW8uc2libGluZ31mdW5jdGlvbiBvYyhvLGwsYil7dmFyIEY9by50YWc7aWYoRj09PTV8fEY9PT02KW89by5zdGF0ZU5vZGUsbD9iLmluc2VydEJlZm9yZShvLGwpOmIuYXBwZW5kQ2hpbGQobyk7ZWxzZSBpZihGIT09NCYmKG89by5jaGlsZCxvIT09bnVsbCkpZm9yKG9jKG8sbCxiKSxvPW8uc2libGluZztvIT09bnVsbDspb2MobyxsLGIpLG89by5zaWJsaW5nfXZhciB0aT1udWxsLFVpPSExO2Z1bmN0aW9uIGRsKG8sbCxiKXtmb3IoYj1iLmNoaWxkO2IhPT1udWxsOylwMShvLGwsYiksYj1iLnNpYmxpbmd9ZnVuY3Rpb24gcDEobyxsLGIpe2lmKGlyJiZ0eXBlb2YgaXIub25Db21taXRGaWJlclVubW91bnQ9PSJmdW5jdGlvbiIpdHJ5e2lyLm9uQ29tbWl0RmliZXJVbm1vdW50KHVyLGIpfWNhdGNoKHh0KXt9c3dpdGNoKGIudGFnKXtjYXNlIDU6bGl8fCRsKGIsbCk7Y2FzZSA2OnZhciBGPXRpLFg9VWk7dGk9bnVsbCxkbChvLGwsYiksdGk9RixVaT1YLHRpIT09bnVsbCYmKFVpPyhvPXRpLGI9Yi5zdGF0ZU5vZGUsby5ub2RlVHlwZT09PTg/by5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGIpOm8ucmVtb3ZlQ2hpbGQoYikpOnRpLnJlbW92ZUNoaWxkKGIuc3RhdGVOb2RlKSk7YnJlYWs7Y2FzZSAxODp0aSE9PW51bGwmJihVaT8obz10aSxiPWIuc3RhdGVOb2RlLG8ubm9kZVR5cGU9PT04P0NpKG8ucGFyZW50Tm9kZSxiKTpvLm5vZGVUeXBlPT09MSYmQ2kobyxiKSxJZShvKSk6Q2kodGksYi5zdGF0ZU5vZGUpKTticmVhaztjYXNlIDQ6Rj10aSxYPVVpLHRpPWIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8sVWk9ITAsZGwobyxsLGIpLHRpPUYsVWk9WDticmVhaztjYXNlIDA6Y2FzZSAxMTpjYXNlIDE0OmNhc2UgMTU6aWYoIWxpJiYoRj1iLnVwZGF0ZVF1ZXVlLEYhPT1udWxsJiYoRj1GLmxhc3RFZmZlY3QsRiE9PW51bGwpKSl7WD1GPUYubmV4dDtkb3t2YXIgaGU9WCxVZT1oZS5kZXN0cm95O2hlPWhlLnRhZyxVZSE9PXZvaWQgMCYmKGhlJjJ8fGhlJjQpJiZuYyhiLGwsVWUpLFg9WC5uZXh0fXdoaWxlKFghPT1GKX1kbChvLGwsYik7YnJlYWs7Y2FzZSAxOmlmKCFsaSYmKCRsKGIsbCksRj1iLnN0YXRlTm9kZSx0eXBlb2YgRi5jb21wb25lbnRXaWxsVW5tb3VudD09ImZ1bmN0aW9uIikpdHJ5e0YucHJvcHM9Yi5tZW1vaXplZFByb3BzLEYuc3RhdGU9Yi5tZW1vaXplZFN0YXRlLEYuY29tcG9uZW50V2lsbFVubW91bnQoKX1jYXRjaCh4dCl7TW8oYixsLHh0KX1kbChvLGwsYik7YnJlYWs7Y2FzZSAyMTpkbChvLGwsYik7YnJlYWs7Y2FzZSAyMjpiLm1vZGUmMT8obGk9KEY9bGkpfHxiLm1lbW9pemVkU3RhdGUhPT1udWxsLGRsKG8sbCxiKSxsaT1GKTpkbChvLGwsYik7YnJlYWs7ZGVmYXVsdDpkbChvLGwsYil9fWZ1bmN0aW9uIHkxKG8pe3ZhciBsPW8udXBkYXRlUXVldWU7aWYobCE9PW51bGwpe28udXBkYXRlUXVldWU9bnVsbDt2YXIgYj1vLnN0YXRlTm9kZTtiPT09bnVsbCYmKGI9by5zdGF0ZU5vZGU9bmV3IHExKSxsLmZvckVhY2goZnVuY3Rpb24oRil7dmFyIFg9Y3UuYmluZChudWxsLG8sRik7Yi5oYXMoRil8fChiLmFkZChGKSxGLnRoZW4oWCxYKSl9KX19ZnVuY3Rpb24gV2kobyxsKXt2YXIgYj1sLmRlbGV0aW9ucztpZihiIT09bnVsbClmb3IodmFyIEY9MDtGPGIubGVuZ3RoO0YrKyl7dmFyIFg9YltGXTt0cnl7dmFyIGhlPW8sVWU9bCx4dD1VZTtlOmZvcig7eHQhPT1udWxsOyl7c3dpdGNoKHh0LnRhZyl7Y2FzZSA1OnRpPXh0LnN0YXRlTm9kZSxVaT0hMTticmVhayBlO2Nhc2UgMzp0aT14dC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyxVaT0hMDticmVhayBlO2Nhc2UgNDp0aT14dC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyxVaT0hMDticmVhayBlfXh0PXh0LnJldHVybn1pZih0aT09PW51bGwpdGhyb3cgRXJyb3IodCgxNjApKTtwMShoZSxVZSxYKSx0aT1udWxsLFVpPSExO3ZhciAkdD1YLmFsdGVybmF0ZTskdCE9PW51bGwmJigkdC5yZXR1cm49bnVsbCksWC5yZXR1cm49bnVsbH1jYXRjaChJbil7TW8oWCxsLEluKX19aWYobC5zdWJ0cmVlRmxhZ3MmMTI4NTQpZm9yKGw9bC5jaGlsZDtsIT09bnVsbDspQzEobCxvKSxsPWwuc2libGluZ31mdW5jdGlvbiBDMShvLGwpe3ZhciBiPW8uYWx0ZXJuYXRlLEY9by5mbGFncztzd2l0Y2goby50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTQ6Y2FzZSAxNTppZihXaShsLG8pLHFpKG8pLEYmNCl7dHJ5e0psKDMsbyxvLnJldHVybikscHMoMyxvKX1jYXRjaChRcil7TW8obyxvLnJldHVybixRcil9dHJ5e0psKDUsbyxvLnJldHVybil9Y2F0Y2goUXIpe01vKG8sby5yZXR1cm4sUXIpfX1icmVhaztjYXNlIDE6V2kobCxvKSxxaShvKSxGJjUxMiYmYiE9PW51bGwmJiRsKGIsYi5yZXR1cm4pO2JyZWFrO2Nhc2UgNTppZihXaShsLG8pLHFpKG8pLEYmNTEyJiZiIT09bnVsbCYmJGwoYixiLnJldHVybiksby5mbGFncyYzMil7dmFyIFg9by5zdGF0ZU5vZGU7dHJ5e01lKFgsIiIpfWNhdGNoKFFyKXtNbyhvLG8ucmV0dXJuLFFyKX19aWYoRiY0JiYoWD1vLnN0YXRlTm9kZSxYIT1udWxsKSl7dmFyIGhlPW8ubWVtb2l6ZWRQcm9wcyxVZT1iIT09bnVsbD9iLm1lbW9pemVkUHJvcHM6aGUseHQ9by50eXBlLCR0PW8udXBkYXRlUXVldWU7aWYoby51cGRhdGVRdWV1ZT1udWxsLCR0IT09bnVsbCl0cnl7eHQ9PT0iaW5wdXQiJiZoZS50eXBlPT09InJhZGlvIiYmaGUubmFtZSE9bnVsbCYmayhYLGhlKSx1dCh4dCxVZSk7dmFyIEluPXV0KHh0LGhlKTtmb3IoVWU9MDtVZTwkdC5sZW5ndGg7VWUrPTIpe3ZhciBncj0kdFtVZV0sU3I9JHRbVWUrMV07Z3I9PT0ic3R5bGUiP0FlKFgsU3IpOmdyPT09ImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIj9MZShYLFNyKTpncj09PSJjaGlsZHJlbiI/TWUoWCxTcik6TChYLGdyLFNyLEluKX1zd2l0Y2goeHQpe2Nhc2UiaW5wdXQiOk0oWCxoZSk7YnJlYWs7Y2FzZSJ0ZXh0YXJlYSI6XyhYLGhlKTticmVhaztjYXNlInNlbGVjdCI6dmFyIHZyPVguX3dyYXBwZXJTdGF0ZS53YXNNdWx0aXBsZTtYLl93cmFwcGVyU3RhdGUud2FzTXVsdGlwbGU9ISFoZS5tdWx0aXBsZTt2YXIgVXI9aGUudmFsdWU7VXIhPW51bGw/UShYLCEhaGUubXVsdGlwbGUsVXIsITEpOnZyIT09ISFoZS5tdWx0aXBsZSYmKGhlLmRlZmF1bHRWYWx1ZSE9bnVsbD9RKFgsISFoZS5tdWx0aXBsZSxoZS5kZWZhdWx0VmFsdWUsITApOlEoWCwhIWhlLm11bHRpcGxlLGhlLm11bHRpcGxlP1tdOiIiLCExKSl9WFtKb109aGV9Y2F0Y2goUXIpe01vKG8sby5yZXR1cm4sUXIpfX1icmVhaztjYXNlIDY6aWYoV2kobCxvKSxxaShvKSxGJjQpe2lmKG8uc3RhdGVOb2RlPT09bnVsbCl0aHJvdyBFcnJvcih0KDE2MikpO1g9by5zdGF0ZU5vZGUsaGU9by5tZW1vaXplZFByb3BzO3RyeXtYLm5vZGVWYWx1ZT1oZX1jYXRjaChRcil7TW8obyxvLnJldHVybixRcil9fWJyZWFrO2Nhc2UgMzppZihXaShsLG8pLHFpKG8pLEYmNCYmYiE9PW51bGwmJmIubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQpdHJ5e0llKGwuY29udGFpbmVySW5mbyl9Y2F0Y2goUXIpe01vKG8sby5yZXR1cm4sUXIpfWJyZWFrO2Nhc2UgNDpXaShsLG8pLHFpKG8pO2JyZWFrO2Nhc2UgMTM6V2kobCxvKSxxaShvKSxYPW8uY2hpbGQsWC5mbGFncyY4MTkyJiYoaGU9WC5tZW1vaXplZFN0YXRlIT09bnVsbCxYLnN0YXRlTm9kZS5pc0hpZGRlbj1oZSwhaGV8fFguYWx0ZXJuYXRlIT09bnVsbCYmWC5hbHRlcm5hdGUubWVtb2l6ZWRTdGF0ZSE9PW51bGx8fChzYz1fdCgpKSksRiY0JiZ5MShvKTticmVhaztjYXNlIDIyOmlmKGdyPWIhPT1udWxsJiZiLm1lbW9pemVkU3RhdGUhPT1udWxsLG8ubW9kZSYxPyhsaT0oSW49bGkpfHxncixXaShsLG8pLGxpPUluKTpXaShsLG8pLHFpKG8pLEYmODE5Mil7aWYoSW49by5tZW1vaXplZFN0YXRlIT09bnVsbCwoby5zdGF0ZU5vZGUuaXNIaWRkZW49SW4pJiYhZ3ImJm8ubW9kZSYxKWZvcihfcj1vLGdyPW8uY2hpbGQ7Z3IhPT1udWxsOyl7Zm9yKFNyPV9yPWdyO19yIT09bnVsbDspe3N3aXRjaCh2cj1fcixVcj12ci5jaGlsZCx2ci50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTQ6Y2FzZSAxNTpKbCg0LHZyLHZyLnJldHVybik7YnJlYWs7Y2FzZSAxOiRsKHZyLHZyLnJldHVybik7dmFyIFlyPXZyLnN0YXRlTm9kZTtpZih0eXBlb2YgWXIuY29tcG9uZW50V2lsbFVubW91bnQ9PSJmdW5jdGlvbiIpe0Y9dnIsYj12ci5yZXR1cm47dHJ5e2w9RixZci5wcm9wcz1sLm1lbW9pemVkUHJvcHMsWXIuc3RhdGU9bC5tZW1vaXplZFN0YXRlLFlyLmNvbXBvbmVudFdpbGxVbm1vdW50KCl9Y2F0Y2goUXIpe01vKEYsYixRcil9fWJyZWFrO2Nhc2UgNTokbCh2cix2ci5yZXR1cm4pO2JyZWFrO2Nhc2UgMjI6aWYodnIubWVtb2l6ZWRTdGF0ZSE9PW51bGwpe08xKFNyKTtjb250aW51ZX19VXIhPT1udWxsPyhVci5yZXR1cm49dnIsX3I9VXIpOk8xKFNyKX1ncj1nci5zaWJsaW5nfWU6Zm9yKGdyPW51bGwsU3I9bzs7KXtpZihTci50YWc9PT01KXtpZihncj09PW51bGwpe2dyPVNyO3RyeXtYPVNyLnN0YXRlTm9kZSxJbj8oaGU9WC5zdHlsZSx0eXBlb2YgaGUuc2V0UHJvcGVydHk9PSJmdW5jdGlvbiI/aGUuc2V0UHJvcGVydHkoImRpc3BsYXkiLCJub25lIiwiaW1wb3J0YW50Iik6aGUuZGlzcGxheT0ibm9uZSIpOih4dD1Tci5zdGF0ZU5vZGUsJHQ9U3IubWVtb2l6ZWRQcm9wcy5zdHlsZSxVZT0kdCE9bnVsbCYmJHQuaGFzT3duUHJvcGVydHkoImRpc3BsYXkiKT8kdC5kaXNwbGF5Om51bGwseHQuc3R5bGUuZGlzcGxheT1rZSgiZGlzcGxheSIsVWUpKX1jYXRjaChRcil7TW8obyxvLnJldHVybixRcil9fX1lbHNlIGlmKFNyLnRhZz09PTYpe2lmKGdyPT09bnVsbCl0cnl7U3Iuc3RhdGVOb2RlLm5vZGVWYWx1ZT1Jbj8iIjpTci5tZW1vaXplZFByb3BzfWNhdGNoKFFyKXtNbyhvLG8ucmV0dXJuLFFyKX19ZWxzZSBpZigoU3IudGFnIT09MjImJlNyLnRhZyE9PTIzfHxTci5tZW1vaXplZFN0YXRlPT09bnVsbHx8U3I9PT1vKSYmU3IuY2hpbGQhPT1udWxsKXtTci5jaGlsZC5yZXR1cm49U3IsU3I9U3IuY2hpbGQ7Y29udGludWV9aWYoU3I9PT1vKWJyZWFrIGU7Zm9yKDtTci5zaWJsaW5nPT09bnVsbDspe2lmKFNyLnJldHVybj09PW51bGx8fFNyLnJldHVybj09PW8pYnJlYWsgZTtncj09PVNyJiYoZ3I9bnVsbCksU3I9U3IucmV0dXJufWdyPT09U3ImJihncj1udWxsKSxTci5zaWJsaW5nLnJldHVybj1Tci5yZXR1cm4sU3I9U3Iuc2libGluZ319YnJlYWs7Y2FzZSAxOTpXaShsLG8pLHFpKG8pLEYmNCYmeTEobyk7YnJlYWs7Y2FzZSAyMTpicmVhaztkZWZhdWx0OldpKGwsbykscWkobyl9fWZ1bmN0aW9uIHFpKG8pe3ZhciBsPW8uZmxhZ3M7aWYobCYyKXt0cnl7ZTp7Zm9yKHZhciBiPW8ucmV0dXJuO2IhPT1udWxsOyl7aWYobTEoYikpe3ZhciBGPWI7YnJlYWsgZX1iPWIucmV0dXJufXRocm93IEVycm9yKHQoMTYwKSl9c3dpdGNoKEYudGFnKXtjYXNlIDU6dmFyIFg9Ri5zdGF0ZU5vZGU7Ri5mbGFncyYzMiYmKE1lKFgsIiIpLEYuZmxhZ3MmPS0zMyk7dmFyIGhlPWcxKG8pO29jKG8saGUsWCk7YnJlYWs7Y2FzZSAzOmNhc2UgNDp2YXIgVWU9Ri5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyx4dD1nMShvKTthYyhvLHh0LFVlKTticmVhaztkZWZhdWx0OnRocm93IEVycm9yKHQoMTYxKSl9fWNhdGNoKCR0KXtNbyhvLG8ucmV0dXJuLCR0KX1vLmZsYWdzJj0tM31sJjQwOTYmJihvLmZsYWdzJj0tNDA5Nyl9ZnVuY3Rpb24gdHUobyxsLGIpe19yPW8sYjEobyxsLGIpfWZ1bmN0aW9uIGIxKG8sbCxiKXtmb3IodmFyIEY9KG8ubW9kZSYxKSE9PTA7X3IhPT1udWxsOyl7dmFyIFg9X3IsaGU9WC5jaGlsZDtpZihYLnRhZz09PTIyJiZGKXt2YXIgVWU9WC5tZW1vaXplZFN0YXRlIT09bnVsbHx8Z3M7aWYoIVVlKXt2YXIgeHQ9WC5hbHRlcm5hdGUsJHQ9eHQhPT1udWxsJiZ4dC5tZW1vaXplZFN0YXRlIT09bnVsbHx8bGk7eHQ9Z3M7dmFyIEluPWxpO2lmKGdzPVVlLChsaT0kdCkmJiFJbilmb3IoX3I9WDtfciE9PW51bGw7KVVlPV9yLCR0PVVlLmNoaWxkLFVlLnRhZz09PTIyJiZVZS5tZW1vaXplZFN0YXRlIT09bnVsbD94MShYKTokdCE9PW51bGw/KCR0LnJldHVybj1VZSxfcj0kdCk6eDEoWCk7Zm9yKDtoZSE9PW51bGw7KV9yPWhlLGIxKGhlLGwsYiksaGU9aGUuc2libGluZztfcj1YLGdzPXh0LGxpPUlufVMxKG8sbCxiKX1lbHNlIFguc3VidHJlZUZsYWdzJjg3NzImJmhlIT09bnVsbD8oaGUucmV0dXJuPVgsX3I9aGUpOlMxKG8sbCxiKX19ZnVuY3Rpb24gUzEobyl7Zm9yKDtfciE9PW51bGw7KXt2YXIgbD1fcjtpZihsLmZsYWdzJjg3NzIpe3ZhciBiPWwuYWx0ZXJuYXRlO3RyeXtpZihsLmZsYWdzJjg3NzIpc3dpdGNoKGwudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1OmxpfHxwcyg1LGwpO2JyZWFrO2Nhc2UgMTp2YXIgRj1sLnN0YXRlTm9kZTtpZihsLmZsYWdzJjQmJiFsaSlpZihiPT09bnVsbClGLmNvbXBvbmVudERpZE1vdW50KCk7ZWxzZXt2YXIgWD1sLmVsZW1lbnRUeXBlPT09bC50eXBlP2IubWVtb2l6ZWRQcm9wczpqaShsLnR5cGUsYi5tZW1vaXplZFByb3BzKTtGLmNvbXBvbmVudERpZFVwZGF0ZShYLGIubWVtb2l6ZWRTdGF0ZSxGLl9fcmVhY3RJbnRlcm5hbFNuYXBzaG90QmVmb3JlVXBkYXRlKX12YXIgaGU9bC51cGRhdGVRdWV1ZTtoZSE9PW51bGwmJmxhKGwsaGUsRik7YnJlYWs7Y2FzZSAzOnZhciBVZT1sLnVwZGF0ZVF1ZXVlO2lmKFVlIT09bnVsbCl7aWYoYj1udWxsLGwuY2hpbGQhPT1udWxsKXN3aXRjaChsLmNoaWxkLnRhZyl7Y2FzZSA1OmI9bC5jaGlsZC5zdGF0ZU5vZGU7YnJlYWs7Y2FzZSAxOmI9bC5jaGlsZC5zdGF0ZU5vZGV9bGEobCxVZSxiKX1icmVhaztjYXNlIDU6dmFyIHh0PWwuc3RhdGVOb2RlO2lmKGI9PT1udWxsJiZsLmZsYWdzJjQpe2I9eHQ7dmFyICR0PWwubWVtb2l6ZWRQcm9wcztzd2l0Y2gobC50eXBlKXtjYXNlImJ1dHRvbiI6Y2FzZSJpbnB1dCI6Y2FzZSJzZWxlY3QiOmNhc2UidGV4dGFyZWEiOiR0LmF1dG9Gb2N1cyYmYi5mb2N1cygpO2JyZWFrO2Nhc2UiaW1nIjokdC5zcmMmJihiLnNyYz0kdC5zcmMpfX1icmVhaztjYXNlIDY6YnJlYWs7Y2FzZSA0OmJyZWFrO2Nhc2UgMTI6YnJlYWs7Y2FzZSAxMzppZihsLm1lbW9pemVkU3RhdGU9PT1udWxsKXt2YXIgSW49bC5hbHRlcm5hdGU7aWYoSW4hPT1udWxsKXt2YXIgZ3I9SW4ubWVtb2l6ZWRTdGF0ZTtpZihnciE9PW51bGwpe3ZhciBTcj1nci5kZWh5ZHJhdGVkO1NyIT09bnVsbCYmSWUoU3IpfX19YnJlYWs7Y2FzZSAxOTpjYXNlIDE3OmNhc2UgMjE6Y2FzZSAyMjpjYXNlIDIzOmNhc2UgMjU6YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcih0KDE2MykpfWxpfHxsLmZsYWdzJjUxMiYmcmMobCl9Y2F0Y2godnIpe01vKGwsbC5yZXR1cm4sdnIpfX1pZihsPT09byl7X3I9bnVsbDticmVha31pZihiPWwuc2libGluZyxiIT09bnVsbCl7Yi5yZXR1cm49bC5yZXR1cm4sX3I9YjticmVha31fcj1sLnJldHVybn19ZnVuY3Rpb24gTzEobyl7Zm9yKDtfciE9PW51bGw7KXt2YXIgbD1fcjtpZihsPT09byl7X3I9bnVsbDticmVha312YXIgYj1sLnNpYmxpbmc7aWYoYiE9PW51bGwpe2IucmV0dXJuPWwucmV0dXJuLF9yPWI7YnJlYWt9X3I9bC5yZXR1cm59fWZ1bmN0aW9uIHgxKG8pe2Zvcig7X3IhPT1udWxsOyl7dmFyIGw9X3I7dHJ5e3N3aXRjaChsLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTp2YXIgYj1sLnJldHVybjt0cnl7cHMoNCxsKX1jYXRjaCgkdCl7TW8obCxiLCR0KX1icmVhaztjYXNlIDE6dmFyIEY9bC5zdGF0ZU5vZGU7aWYodHlwZW9mIEYuY29tcG9uZW50RGlkTW91bnQ9PSJmdW5jdGlvbiIpe3ZhciBYPWwucmV0dXJuO3RyeXtGLmNvbXBvbmVudERpZE1vdW50KCl9Y2F0Y2goJHQpe01vKGwsWCwkdCl9fXZhciBoZT1sLnJldHVybjt0cnl7cmMobCl9Y2F0Y2goJHQpe01vKGwsaGUsJHQpfWJyZWFrO2Nhc2UgNTp2YXIgVWU9bC5yZXR1cm47dHJ5e3JjKGwpfWNhdGNoKCR0KXtNbyhsLFVlLCR0KX19fWNhdGNoKCR0KXtNbyhsLGwucmV0dXJuLCR0KX1pZihsPT09byl7X3I9bnVsbDticmVha312YXIgeHQ9bC5zaWJsaW5nO2lmKHh0IT09bnVsbCl7eHQucmV0dXJuPWwucmV0dXJuLF9yPXh0O2JyZWFrfV9yPWwucmV0dXJufX12YXIgbnU9TWF0aC5jZWlsLHlzPUkuUmVhY3RDdXJyZW50RGlzcGF0Y2hlcixpYz1JLlJlYWN0Q3VycmVudE93bmVyLFppPUkuUmVhY3RDdXJyZW50QmF0Y2hDb25maWcsa2E9MCxHbz1udWxsLCRvPW51bGwsbmk9MCxGaT0wLEhsPW1hKDApLGpvPTAscWw9bnVsbCx3bD0wLENzPTAsbGM9MCxlcz1udWxsLHdpPW51bGwsc2M9MCxEbD0xLzAsbGw9bnVsbCxicz0hMSxjYz1udWxsLGZsPW51bGwsU3M9ITEsdmw9bnVsbCxPcz0wLHRzPTAsdWM9bnVsbCx4cz0tMSx3cz0wO2Z1bmN0aW9uIG1pKCl7cmV0dXJuIGthJjY/X3QoKTp4cyE9PS0xP3hzOnhzPV90KCl9ZnVuY3Rpb24gaGwobyl7cmV0dXJuIG8ubW9kZSYxP2thJjImJm5pIT09MD9uaSYtbmk6THMudHJhbnNpdGlvbiE9PW51bGw/KHdzPT09MCYmKHdzPUpuKCkpLHdzKToobz1GbixvIT09MHx8KG89d2luZG93LmV2ZW50LG89bz09PXZvaWQgMD8xNjpwbihvLnR5cGUpKSxvKToxfWZ1bmN0aW9uIGtpKG8sbCxiLEYpe2lmKDUwPHRzKXRocm93IHRzPTAsdWM9bnVsbCxFcnJvcih0KDE4NSkpO2ZyKG8sYixGKSwoIShrYSYyKXx8byE9PUdvKSYmKG89PT1HbyYmKCEoa2EmMikmJihDc3w9Yiksam89PT00JiZtbChvLG5pKSksRWkobyxGKSxiPT09MSYma2E9PT0wJiYhKGwubW9kZSYxKSYmKERsPV90KCkrNTAwLEJpJiZLYSgpKSl9ZnVuY3Rpb24gRWkobyxsKXt2YXIgYj1vLmNhbGxiYWNrTm9kZTttbihvLGwpO3ZhciBGPWt0KG8sbz09PUdvP25pOjApO2lmKEY9PT0wKWIhPT1udWxsJiZldChiKSxvLmNhbGxiYWNrTm9kZT1udWxsLG8uY2FsbGJhY2tQcmlvcml0eT0wO2Vsc2UgaWYobD1GJi1GLG8uY2FsbGJhY2tQcmlvcml0eSE9PWwpe2lmKGIhPW51bGwmJmV0KGIpLGw9PT0xKW8udGFnPT09MD9zbChFMS5iaW5kKG51bGwsbykpOmNpKEUxLmJpbmQobnVsbCxvKSkseWkoZnVuY3Rpb24oKXshKGthJjYpJiZLYSgpfSksYj1udWxsO2Vsc2V7c3dpdGNoKGFyKEYpKXtjYXNlIDE6Yj1ZbjticmVhaztjYXNlIDQ6Yj1QbjticmVhaztjYXNlIDE2OmI9TG47YnJlYWs7Y2FzZSA1MzY4NzA5MTI6Yj1RbjticmVhaztkZWZhdWx0OmI9TG59Yj1BMShiLHcxLmJpbmQobnVsbCxvKSl9by5jYWxsYmFja1ByaW9yaXR5PWwsby5jYWxsYmFja05vZGU9Yn19ZnVuY3Rpb24gdzEobyxsKXtpZih4cz0tMSx3cz0wLGthJjYpdGhyb3cgRXJyb3IodCgzMjcpKTt2YXIgYj1vLmNhbGxiYWNrTm9kZTtpZihCbCgpJiZvLmNhbGxiYWNrTm9kZSE9PWIpcmV0dXJuIG51bGw7dmFyIEY9a3QobyxvPT09R28/bmk6MCk7aWYoRj09PTApcmV0dXJuIG51bGw7aWYoRiYzMHx8RiZvLmV4cGlyZWRMYW5lc3x8bClsPUVzKG8sRik7ZWxzZXtsPUY7dmFyIFg9a2E7a2F8PTI7dmFyIGhlPU0xKCk7KEdvIT09b3x8bmkhPT1sKSYmKGxsPW51bGwsRGw9X3QoKSs1MDAsVGwobyxsKSk7ZG8gdHJ5e291KCk7YnJlYWt9Y2F0Y2goeHQpe1QxKG8seHQpfXdoaWxlKCEwKTtpcygpLHlzLmN1cnJlbnQ9aGUsa2E9WCwkbyE9PW51bGw/bD0wOihHbz1udWxsLG5pPTAsbD1qbyl9aWYobCE9PTApe2lmKGw9PT0yJiYoWD1LbihvKSxYIT09MCYmKEY9WCxsPWRjKG8sWCkpKSxsPT09MSl0aHJvdyBiPXFsLFRsKG8sMCksbWwobyxGKSxFaShvLF90KCkpLGI7aWYobD09PTYpbWwobyxGKTtlbHNle2lmKFg9by5jdXJyZW50LmFsdGVybmF0ZSwhKEYmMzApJiYhcnUoWCkmJihsPUVzKG8sRiksbD09PTImJihoZT1LbihvKSxoZSE9PTAmJihGPWhlLGw9ZGMobyxoZSkpKSxsPT09MSkpdGhyb3cgYj1xbCxUbChvLDApLG1sKG8sRiksRWkobyxfdCgpKSxiO3N3aXRjaChvLmZpbmlzaGVkV29yaz1YLG8uZmluaXNoZWRMYW5lcz1GLGwpe2Nhc2UgMDpjYXNlIDE6dGhyb3cgRXJyb3IodCgzNDUpKTtjYXNlIDI6TWwobyx3aSxsbCk7YnJlYWs7Y2FzZSAzOmlmKG1sKG8sRiksKEYmMTMwMDIzNDI0KT09PUYmJihsPXNjKzUwMC1fdCgpLDEwPGwpKXtpZihrdChvLDApIT09MClicmVhaztpZihYPW8uc3VzcGVuZGVkTGFuZXMsKFgmRikhPT1GKXttaSgpLG8ucGluZ2VkTGFuZXN8PW8uc3VzcGVuZGVkTGFuZXMmWDticmVha31vLnRpbWVvdXRIYW5kbGU9eW8oTWwuYmluZChudWxsLG8sd2ksbGwpLGwpO2JyZWFrfU1sKG8sd2ksbGwpO2JyZWFrO2Nhc2UgNDppZihtbChvLEYpLChGJjQxOTQyNDApPT09RilicmVhaztmb3IobD1vLmV2ZW50VGltZXMsWD0tMTswPEY7KXt2YXIgVWU9MzEtY3IoRik7aGU9MTw8VWUsVWU9bFtVZV0sVWU+WCYmKFg9VWUpLEYmPX5oZX1pZihGPVgsRj1fdCgpLUYsRj0oMTIwPkY/MTIwOjQ4MD5GPzQ4MDoxMDgwPkY/MTA4MDoxOTIwPkY/MTkyMDozZTM+Rj8zZTM6NDMyMD5GPzQzMjA6MTk2MCpudShGLzE5NjApKS1GLDEwPEYpe28udGltZW91dEhhbmRsZT15byhNbC5iaW5kKG51bGwsbyx3aSxsbCksRik7YnJlYWt9TWwobyx3aSxsbCk7YnJlYWs7Y2FzZSA1Ok1sKG8sd2ksbGwpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IodCgzMjkpKX19fXJldHVybiBFaShvLF90KCkpLG8uY2FsbGJhY2tOb2RlPT09Yj93MS5iaW5kKG51bGwsbyk6bnVsbH1mdW5jdGlvbiBkYyhvLGwpe3ZhciBiPWVzO3JldHVybiBvLmN1cnJlbnQubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQmJihUbChvLGwpLmZsYWdzfD0yNTYpLG89RXMobyxsKSxvIT09MiYmKGw9d2ksd2k9YixsIT09bnVsbCYmZmMobCkpLG99ZnVuY3Rpb24gZmMobyl7d2k9PT1udWxsP3dpPW86d2kucHVzaC5hcHBseSh3aSxvKX1mdW5jdGlvbiBydShvKXtmb3IodmFyIGw9bzs7KXtpZihsLmZsYWdzJjE2Mzg0KXt2YXIgYj1sLnVwZGF0ZVF1ZXVlO2lmKGIhPT1udWxsJiYoYj1iLnN0b3JlcyxiIT09bnVsbCkpZm9yKHZhciBGPTA7RjxiLmxlbmd0aDtGKyspe3ZhciBYPWJbRl0saGU9WC5nZXRTbmFwc2hvdDtYPVgudmFsdWU7dHJ5e2lmKCFEcihoZSgpLFgpKXJldHVybiExfWNhdGNoKFVlKXtyZXR1cm4hMX19fWlmKGI9bC5jaGlsZCxsLnN1YnRyZWVGbGFncyYxNjM4NCYmYiE9PW51bGwpYi5yZXR1cm49bCxsPWI7ZWxzZXtpZihsPT09bylicmVhaztmb3IoO2wuc2libGluZz09PW51bGw7KXtpZihsLnJldHVybj09PW51bGx8fGwucmV0dXJuPT09bylyZXR1cm4hMDtsPWwucmV0dXJufWwuc2libGluZy5yZXR1cm49bC5yZXR1cm4sbD1sLnNpYmxpbmd9fXJldHVybiEwfWZ1bmN0aW9uIG1sKG8sbCl7Zm9yKGwmPX5sYyxsJj1+Q3Msby5zdXNwZW5kZWRMYW5lc3w9bCxvLnBpbmdlZExhbmVzJj1+bCxvPW8uZXhwaXJhdGlvblRpbWVzOzA8bDspe3ZhciBiPTMxLWNyKGwpLEY9MTw8YjtvW2JdPS0xLGwmPX5GfX1mdW5jdGlvbiBFMShvKXtpZihrYSY2KXRocm93IEVycm9yKHQoMzI3KSk7QmwoKTt2YXIgbD1rdChvLDApO2lmKCEobCYxKSlyZXR1cm4gRWkobyxfdCgpKSxudWxsO3ZhciBiPUVzKG8sbCk7aWYoby50YWchPT0wJiZiPT09Mil7dmFyIEY9S24obyk7RiE9PTAmJihsPUYsYj1kYyhvLEYpKX1pZihiPT09MSl0aHJvdyBiPXFsLFRsKG8sMCksbWwobyxsKSxFaShvLF90KCkpLGI7aWYoYj09PTYpdGhyb3cgRXJyb3IodCgzNDUpKTtyZXR1cm4gby5maW5pc2hlZFdvcms9by5jdXJyZW50LmFsdGVybmF0ZSxvLmZpbmlzaGVkTGFuZXM9bCxNbChvLHdpLGxsKSxFaShvLF90KCkpLG51bGx9ZnVuY3Rpb24gdmMobyxsKXt2YXIgYj1rYTtrYXw9MTt0cnl7cmV0dXJuIG8obCl9ZmluYWxseXtrYT1iLGthPT09MCYmKERsPV90KCkrNTAwLEJpJiZLYSgpKX19ZnVuY3Rpb24gRWwobyl7dmwhPT1udWxsJiZ2bC50YWc9PT0wJiYhKGthJjYpJiZCbCgpO3ZhciBsPWthO2thfD0xO3ZhciBiPVppLnRyYW5zaXRpb24sRj1Gbjt0cnl7aWYoWmkudHJhbnNpdGlvbj1udWxsLEZuPTEsbylyZXR1cm4gbygpfWZpbmFsbHl7Rm49RixaaS50cmFuc2l0aW9uPWIsa2E9bCwhKGthJjYpJiZLYSgpfX1mdW5jdGlvbiBoYygpe0ZpPUhsLmN1cnJlbnQseHIoSGwpfWZ1bmN0aW9uIFRsKG8sbCl7by5maW5pc2hlZFdvcms9bnVsbCxvLmZpbmlzaGVkTGFuZXM9MDt2YXIgYj1vLnRpbWVvdXRIYW5kbGU7aWYoYiE9PS0xJiYoby50aW1lb3V0SGFuZGxlPS0xLFFvKGIpKSwkbyE9PW51bGwpZm9yKGI9JG8ucmV0dXJuO2IhPT1udWxsOyl7dmFyIEY9Yjtzd2l0Y2goQ2woRiksRi50YWcpe2Nhc2UgMTpGPUYudHlwZS5jaGlsZENvbnRleHRUeXBlcyxGIT1udWxsJiZLcigpO2JyZWFrO2Nhc2UgMzpRYSgpLHhyKHBhKSx4cihEYSksJHMoKTticmVhaztjYXNlIDU6T2koRik7YnJlYWs7Y2FzZSA0OlFhKCk7YnJlYWs7Y2FzZSAxMzp4cihjbyk7YnJlYWs7Y2FzZSAxOTp4cihjbyk7YnJlYWs7Y2FzZSAxMDpYaShGLnR5cGUuX2NvbnRleHQpO2JyZWFrO2Nhc2UgMjI6Y2FzZSAyMzpoYygpfWI9Yi5yZXR1cm59aWYoR289bywkbz1vPWdsKG8uY3VycmVudCxudWxsKSxuaT1GaT1sLGpvPTAscWw9bnVsbCxsYz1Dcz13bD0wLHdpPWVzPW51bGwsUGkhPT1udWxsKXtmb3IobD0wO2w8UGkubGVuZ3RoO2wrKylpZihiPVBpW2xdLEY9Yi5pbnRlcmxlYXZlZCxGIT09bnVsbCl7Yi5pbnRlcmxlYXZlZD1udWxsO3ZhciBYPUYubmV4dCxoZT1iLnBlbmRpbmc7aWYoaGUhPT1udWxsKXt2YXIgVWU9aGUubmV4dDtoZS5uZXh0PVgsRi5uZXh0PVVlfWIucGVuZGluZz1GfVBpPW51bGx9cmV0dXJuIG99ZnVuY3Rpb24gVDEobyxsKXtkb3t2YXIgYj0kbzt0cnl7aWYoaXMoKSxzcy5jdXJyZW50PWZzLGNzKXtmb3IodmFyIEY9U28ubWVtb2l6ZWRTdGF0ZTtGIT09bnVsbDspe3ZhciBYPUYucXVldWU7WCE9PW51bGwmJihYLnBlbmRpbmc9bnVsbCksRj1GLm5leHR9Y3M9ITF9aWYoeGw9MCxfbz1Obz1Tbz1udWxsLF9sPSExLEdsPTAsaWMuY3VycmVudD1udWxsLGI9PT1udWxsfHxiLnJldHVybj09PW51bGwpe2pvPTEscWw9bCwkbz1udWxsO2JyZWFrfWU6e3ZhciBoZT1vLFVlPWIucmV0dXJuLHh0PWIsJHQ9bDtpZihsPW5pLHh0LmZsYWdzfD0zMjc2OCwkdCE9PW51bGwmJnR5cGVvZiAkdD09Im9iamVjdCImJnR5cGVvZiAkdC50aGVuPT0iZnVuY3Rpb24iKXt2YXIgSW49JHQsZ3I9eHQsU3I9Z3IudGFnO2lmKCEoZ3IubW9kZSYxKSYmKFNyPT09MHx8U3I9PT0xMXx8U3I9PT0xNSkpe3ZhciB2cj1nci5hbHRlcm5hdGU7dnI/KGdyLnVwZGF0ZVF1ZXVlPXZyLnVwZGF0ZVF1ZXVlLGdyLm1lbW9pemVkU3RhdGU9dnIubWVtb2l6ZWRTdGF0ZSxnci5sYW5lcz12ci5sYW5lcyk6KGdyLnVwZGF0ZVF1ZXVlPW51bGwsZ3IubWVtb2l6ZWRTdGF0ZT1udWxsKX12YXIgVXI9UWMoVWUpO2lmKFVyIT09bnVsbCl7VXIuZmxhZ3MmPS0yNTcsSmMoVXIsVWUseHQsaGUsbCksVXIubW9kZSYxJiZYYyhoZSxJbixsKSxsPVVyLCR0PUluO3ZhciBZcj1sLnVwZGF0ZVF1ZXVlO2lmKFlyPT09bnVsbCl7dmFyIFFyPW5ldyBTZXQ7UXIuYWRkKCR0KSxsLnVwZGF0ZVF1ZXVlPVFyfWVsc2UgWXIuYWRkKCR0KTticmVhayBlfWVsc2V7aWYoIShsJjEpKXtYYyhoZSxJbixsKSxtYygpO2JyZWFrIGV9JHQ9RXJyb3IodCg0MjYpKX19ZWxzZSBpZihtbyYmeHQubW9kZSYxKXt2YXIgUG89UWMoVWUpO2lmKFBvIT09bnVsbCl7IShQby5mbGFncyY2NTUzNikmJihQby5mbGFnc3w9MjU2KSxKYyhQbyxVZSx4dCxoZSxsKSxrbChabCgkdCx4dCkpO2JyZWFrIGV9fWhlPSR0PVpsKCR0LHh0KSxqbyE9PTQmJihqbz0yKSxlcz09PW51bGw/ZXM9W2hlXTplcy5wdXNoKGhlKSxoZT1VZTtkb3tzd2l0Y2goaGUudGFnKXtjYXNlIDM6aGUuZmxhZ3N8PTY1NTM2LGwmPS1sLGhlLmxhbmVzfD1sO3ZhciB1bj1HYyhoZSwkdCxsKTtVbihoZSx1bik7YnJlYWsgZTtjYXNlIDE6eHQ9JHQ7dmFyIFd0PWhlLnR5cGUsaG49aGUuc3RhdGVOb2RlO2lmKCEoaGUuZmxhZ3MmMTI4KSYmKHR5cGVvZiBXdC5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3I9PSJmdW5jdGlvbiJ8fGhuIT09bnVsbCYmdHlwZW9mIGhuLmNvbXBvbmVudERpZENhdGNoPT0iZnVuY3Rpb24iJiYoZmw9PT1udWxsfHwhZmwuaGFzKGhuKSkpKXtoZS5mbGFnc3w9NjU1MzYsbCY9LWwsaGUubGFuZXN8PWw7dmFyIFRyPVljKGhlLHh0LGwpO1VuKGhlLFRyKTticmVhayBlfX1oZT1oZS5yZXR1cm59d2hpbGUoaGUhPT1udWxsKX1JMShiKX1jYXRjaChxcil7bD1xciwkbz09PWImJmIhPT1udWxsJiYoJG89Yj1iLnJldHVybik7Y29udGludWV9YnJlYWt9d2hpbGUoITApfWZ1bmN0aW9uIE0xKCl7dmFyIG89eXMuY3VycmVudDtyZXR1cm4geXMuY3VycmVudD1mcyxvPT09bnVsbD9mczpvfWZ1bmN0aW9uIG1jKCl7KGpvPT09MHx8am89PT0zfHxqbz09PTIpJiYoam89NCksR289PT1udWxsfHwhKHdsJjI2ODQzNTQ1NSkmJiEoQ3MmMjY4NDM1NDU1KXx8bWwoR28sbmkpfWZ1bmN0aW9uIEVzKG8sbCl7dmFyIGI9a2E7a2F8PTI7dmFyIEY9TTEoKTsoR28hPT1vfHxuaSE9PWwpJiYobGw9bnVsbCxUbChvLGwpKTtkbyB0cnl7YXUoKTticmVha31jYXRjaChYKXtUMShvLFgpfXdoaWxlKCEwKTtpZihpcygpLGthPWIseXMuY3VycmVudD1GLCRvIT09bnVsbCl0aHJvdyBFcnJvcih0KDI2MSkpO3JldHVybiBHbz1udWxsLG5pPTAsam99ZnVuY3Rpb24gYXUoKXtmb3IoOyRvIT09bnVsbDspUjEoJG8pfWZ1bmN0aW9uIG91KCl7Zm9yKDskbyE9PW51bGwmJiFKdCgpOylSMSgkbyl9ZnVuY3Rpb24gUjEobyl7dmFyIGw9RjEoby5hbHRlcm5hdGUsbyxGaSk7by5tZW1vaXplZFByb3BzPW8ucGVuZGluZ1Byb3BzLGw9PT1udWxsP0kxKG8pOiRvPWwsaWMuY3VycmVudD1udWxsfWZ1bmN0aW9uIEkxKG8pe3ZhciBsPW87ZG97dmFyIGI9bC5hbHRlcm5hdGU7aWYobz1sLnJldHVybixsLmZsYWdzJjMyNzY4KXtpZihiPUoxKGIsbCksYiE9PW51bGwpe2IuZmxhZ3MmPTMyNzY3LCRvPWI7cmV0dXJufWlmKG8hPT1udWxsKW8uZmxhZ3N8PTMyNzY4LG8uc3VidHJlZUZsYWdzPTAsby5kZWxldGlvbnM9bnVsbDtlbHNle2pvPTYsJG89bnVsbDtyZXR1cm59fWVsc2UgaWYoYj1RMShiLGwsRmkpLGIhPT1udWxsKXskbz1iO3JldHVybn1pZihsPWwuc2libGluZyxsIT09bnVsbCl7JG89bDtyZXR1cm59JG89bD1vfXdoaWxlKGwhPT1udWxsKTtqbz09PTAmJihqbz01KX1mdW5jdGlvbiBNbChvLGwsYil7dmFyIEY9Rm4sWD1aaS50cmFuc2l0aW9uO3RyeXtaaS50cmFuc2l0aW9uPW51bGwsRm49MSxpdShvLGwsYixGKX1maW5hbGx5e1ppLnRyYW5zaXRpb249WCxGbj1GfXJldHVybiBudWxsfWZ1bmN0aW9uIGl1KG8sbCxiLEYpe2RvIEJsKCk7d2hpbGUodmwhPT1udWxsKTtpZihrYSY2KXRocm93IEVycm9yKHQoMzI3KSk7Yj1vLmZpbmlzaGVkV29yazt2YXIgWD1vLmZpbmlzaGVkTGFuZXM7aWYoYj09PW51bGwpcmV0dXJuIG51bGw7aWYoby5maW5pc2hlZFdvcms9bnVsbCxvLmZpbmlzaGVkTGFuZXM9MCxiPT09by5jdXJyZW50KXRocm93IEVycm9yKHQoMTc3KSk7by5jYWxsYmFja05vZGU9bnVsbCxvLmNhbGxiYWNrUHJpb3JpdHk9MDt2YXIgaGU9Yi5sYW5lc3xiLmNoaWxkTGFuZXM7aWYocnIobyxoZSksbz09PUdvJiYoJG89R289bnVsbCxuaT0wKSwhKGIuc3VidHJlZUZsYWdzJjIwNjQpJiYhKGIuZmxhZ3MmMjA2NCl8fFNzfHwoU3M9ITAsQTEoTG4sZnVuY3Rpb24oKXtyZXR1cm4gQmwoKSxudWxsfSkpLGhlPShiLmZsYWdzJjE1OTkwKSE9PTAsYi5zdWJ0cmVlRmxhZ3MmMTU5OTB8fGhlKXtoZT1aaS50cmFuc2l0aW9uLFppLnRyYW5zaXRpb249bnVsbDt2YXIgVWU9Rm47Rm49MTt2YXIgeHQ9a2E7a2F8PTQsaWMuY3VycmVudD1udWxsLGV1KG8sYiksQzEoYixvKSx5YSh3byksYXQ9ISF0byx3bz10bz1udWxsLG8uY3VycmVudD1iLHR1KGIsbyxYKSx3dCgpLGthPXh0LEZuPVVlLFppLnRyYW5zaXRpb249aGV9ZWxzZSBvLmN1cnJlbnQ9YjtpZihTcyYmKFNzPSExLHZsPW8sT3M9WCksaGU9by5wZW5kaW5nTGFuZXMsaGU9PT0wJiYoZmw9bnVsbCksdm4oYi5zdGF0ZU5vZGUsRiksRWkobyxfdCgpKSxsIT09bnVsbClmb3IoRj1vLm9uUmVjb3ZlcmFibGVFcnJvcixiPTA7YjxsLmxlbmd0aDtiKyspWD1sW2JdLEYoWC52YWx1ZSx7Y29tcG9uZW50U3RhY2s6WC5zdGFjayxkaWdlc3Q6WC5kaWdlc3R9KTtpZihicyl0aHJvdyBicz0hMSxvPWNjLGNjPW51bGwsbztyZXR1cm4gT3MmMSYmby50YWchPT0wJiZCbCgpLGhlPW8ucGVuZGluZ0xhbmVzLGhlJjE/bz09PXVjP3RzKys6KHRzPTAsdWM9byk6dHM9MCxLYSgpLG51bGx9ZnVuY3Rpb24gQmwoKXtpZih2bCE9PW51bGwpe3ZhciBvPWFyKE9zKSxsPVppLnRyYW5zaXRpb24sYj1Gbjt0cnl7aWYoWmkudHJhbnNpdGlvbj1udWxsLEZuPTE2Pm8/MTY6byx2bD09PW51bGwpdmFyIEY9ITE7ZWxzZXtpZihvPXZsLHZsPW51bGwsT3M9MCxrYSY2KXRocm93IEVycm9yKHQoMzMxKSk7dmFyIFg9a2E7Zm9yKGthfD00LF9yPW8uY3VycmVudDtfciE9PW51bGw7KXt2YXIgaGU9X3IsVWU9aGUuY2hpbGQ7aWYoX3IuZmxhZ3MmMTYpe3ZhciB4dD1oZS5kZWxldGlvbnM7aWYoeHQhPT1udWxsKXtmb3IodmFyICR0PTA7JHQ8eHQubGVuZ3RoOyR0Kyspe3ZhciBJbj14dFskdF07Zm9yKF9yPUluO19yIT09bnVsbDspe3ZhciBncj1fcjtzd2l0Y2goZ3IudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1OkpsKDgsZ3IsaGUpfXZhciBTcj1nci5jaGlsZDtpZihTciE9PW51bGwpU3IucmV0dXJuPWdyLF9yPVNyO2Vsc2UgZm9yKDtfciE9PW51bGw7KXtncj1fcjt2YXIgdnI9Z3Iuc2libGluZyxVcj1nci5yZXR1cm47aWYoaDEoZ3IpLGdyPT09SW4pe19yPW51bGw7YnJlYWt9aWYodnIhPT1udWxsKXt2ci5yZXR1cm49VXIsX3I9dnI7YnJlYWt9X3I9VXJ9fX12YXIgWXI9aGUuYWx0ZXJuYXRlO2lmKFlyIT09bnVsbCl7dmFyIFFyPVlyLmNoaWxkO2lmKFFyIT09bnVsbCl7WXIuY2hpbGQ9bnVsbDtkb3t2YXIgUG89UXIuc2libGluZztRci5zaWJsaW5nPW51bGwsUXI9UG99d2hpbGUoUXIhPT1udWxsKX19X3I9aGV9fWlmKGhlLnN1YnRyZWVGbGFncyYyMDY0JiZVZSE9PW51bGwpVWUucmV0dXJuPWhlLF9yPVVlO2Vsc2UgZTpmb3IoO19yIT09bnVsbDspe2lmKGhlPV9yLGhlLmZsYWdzJjIwNDgpc3dpdGNoKGhlLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTpKbCg5LGhlLGhlLnJldHVybil9dmFyIHVuPWhlLnNpYmxpbmc7aWYodW4hPT1udWxsKXt1bi5yZXR1cm49aGUucmV0dXJuLF9yPXVuO2JyZWFrIGV9X3I9aGUucmV0dXJufX12YXIgV3Q9by5jdXJyZW50O2Zvcihfcj1XdDtfciE9PW51bGw7KXtVZT1fcjt2YXIgaG49VWUuY2hpbGQ7aWYoVWUuc3VidHJlZUZsYWdzJjIwNjQmJmhuIT09bnVsbClobi5yZXR1cm49VWUsX3I9aG47ZWxzZSBlOmZvcihVZT1XdDtfciE9PW51bGw7KXtpZih4dD1fcix4dC5mbGFncyYyMDQ4KXRyeXtzd2l0Y2goeHQudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1OnBzKDkseHQpfX1jYXRjaChxcil7TW8oeHQseHQucmV0dXJuLHFyKX1pZih4dD09PVVlKXtfcj1udWxsO2JyZWFrIGV9dmFyIFRyPXh0LnNpYmxpbmc7aWYoVHIhPT1udWxsKXtUci5yZXR1cm49eHQucmV0dXJuLF9yPVRyO2JyZWFrIGV9X3I9eHQucmV0dXJufX1pZihrYT1YLEthKCksaXImJnR5cGVvZiBpci5vblBvc3RDb21taXRGaWJlclJvb3Q9PSJmdW5jdGlvbiIpdHJ5e2lyLm9uUG9zdENvbW1pdEZpYmVyUm9vdCh1cixvKX1jYXRjaChxcil7fUY9ITB9cmV0dXJuIEZ9ZmluYWxseXtGbj1iLFppLnRyYW5zaXRpb249bH19cmV0dXJuITF9ZnVuY3Rpb24gUDEobyxsLGIpe2w9WmwoYixsKSxsPUdjKG8sbCwxKSxvPWl0KG8sbCwxKSxsPW1pKCksbyE9PW51bGwmJihmcihvLDEsbCksRWkobyxsKSl9ZnVuY3Rpb24gTW8obyxsLGIpe2lmKG8udGFnPT09MylQMShvLG8sYik7ZWxzZSBmb3IoO2whPT1udWxsOyl7aWYobC50YWc9PT0zKXtQMShsLG8sYik7YnJlYWt9ZWxzZSBpZihsLnRhZz09PTEpe3ZhciBGPWwuc3RhdGVOb2RlO2lmKHR5cGVvZiBsLnR5cGUuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yPT0iZnVuY3Rpb24ifHx0eXBlb2YgRi5jb21wb25lbnREaWRDYXRjaD09ImZ1bmN0aW9uIiYmKGZsPT09bnVsbHx8IWZsLmhhcyhGKSkpe289WmwoYixvKSxvPVljKGwsbywxKSxsPWl0KGwsbywxKSxvPW1pKCksbCE9PW51bGwmJihmcihsLDEsbyksRWkobCxvKSk7YnJlYWt9fWw9bC5yZXR1cm59fWZ1bmN0aW9uIGx1KG8sbCxiKXt2YXIgRj1vLnBpbmdDYWNoZTtGIT09bnVsbCYmRi5kZWxldGUobCksbD1taSgpLG8ucGluZ2VkTGFuZXN8PW8uc3VzcGVuZGVkTGFuZXMmYixHbz09PW8mJihuaSZiKT09PWImJihqbz09PTR8fGpvPT09MyYmKG5pJjEzMDAyMzQyNCk9PT1uaSYmNTAwPl90KCktc2M/VGwobywwKTpsY3w9YiksRWkobyxsKX1mdW5jdGlvbiB6MShvLGwpe2w9PT0wJiYoby5tb2RlJjE/KGw9YW4sYW48PD0xLCEoYW4mMTMwMDIzNDI0KSYmKGFuPTQxOTQzMDQpKTpsPTEpO3ZhciBiPW1pKCk7bz1abyhvLGwpLG8hPT1udWxsJiYoZnIobyxsLGIpLEVpKG8sYikpfWZ1bmN0aW9uIHN1KG8pe3ZhciBsPW8ubWVtb2l6ZWRTdGF0ZSxiPTA7bCE9PW51bGwmJihiPWwucmV0cnlMYW5lKSx6MShvLGIpfWZ1bmN0aW9uIGN1KG8sbCl7dmFyIGI9MDtzd2l0Y2goby50YWcpe2Nhc2UgMTM6dmFyIEY9by5zdGF0ZU5vZGUsWD1vLm1lbW9pemVkU3RhdGU7WCE9PW51bGwmJihiPVgucmV0cnlMYW5lKTticmVhaztjYXNlIDE5OkY9by5zdGF0ZU5vZGU7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcih0KDMxNCkpfUYhPT1udWxsJiZGLmRlbGV0ZShsKSx6MShvLGIpfXZhciBGMTtGMT1mdW5jdGlvbihvLGwsYil7aWYobyE9PW51bGwpaWYoby5tZW1vaXplZFByb3BzIT09bC5wZW5kaW5nUHJvcHN8fHBhLmN1cnJlbnQpeGk9ITA7ZWxzZXtpZighKG8ubGFuZXMmYikmJiEobC5mbGFncyYxMjgpKXJldHVybiB4aT0hMSxYMShvLGwsYik7eGk9ISEoby5mbGFncyYxMzEwNzIpfWVsc2UgeGk9ITEsbW8mJmwuZmxhZ3MmMTA0ODU3NiYmWWkobCxibyxsLmluZGV4KTtzd2l0Y2gobC5sYW5lcz0wLGwudGFnKXtjYXNlIDI6dmFyIEY9bC50eXBlO21zKG8sbCksbz1sLnBlbmRpbmdQcm9wczt2YXIgWD1xYShsLERhLmN1cnJlbnQpO29sKGwsYiksWD1CcyhudWxsLGwsRixvLFgsYik7dmFyIGhlPVZzKCk7cmV0dXJuIGwuZmxhZ3N8PTEsdHlwZW9mIFg9PSJvYmplY3QiJiZYIT09bnVsbCYmdHlwZW9mIFgucmVuZGVyPT0iZnVuY3Rpb24iJiZYLiQkdHlwZW9mPT09dm9pZCAwPyhsLnRhZz0xLGwubWVtb2l6ZWRTdGF0ZT1udWxsLGwudXBkYXRlUXVldWU9bnVsbCxqZShGKT8oaGU9ITAsZWkobCkpOmhlPSExLGwubWVtb2l6ZWRTdGF0ZT1YLnN0YXRlIT09bnVsbCYmWC5zdGF0ZSE9PXZvaWQgMD9YLnN0YXRlOm51bGwsTGwobCksWC51cGRhdGVyPXZzLGwuc3RhdGVOb2RlPVgsWC5fcmVhY3RJbnRlcm5hbHM9bCxLcyhsLEYsbyxiKSxsPVhzKG51bGwsbCxGLCEwLGhlLGIpKToobC50YWc9MCxtbyYmaGUmJmNsKGwpLGhpKG51bGwsbCxYLGIpLGw9bC5jaGlsZCksbDtjYXNlIDE2OkY9bC5lbGVtZW50VHlwZTtlOntzd2l0Y2gobXMobyxsKSxvPWwucGVuZGluZ1Byb3BzLFg9Ri5faW5pdCxGPVgoRi5fcGF5bG9hZCksbC50eXBlPUYsWD1sLnRhZz1kdShGKSxvPWppKEYsbyksWCl7Y2FzZSAwOmw9WXMobnVsbCxsLEYsbyxiKTticmVhayBlO2Nhc2UgMTpsPWExKG51bGwsbCxGLG8sYik7YnJlYWsgZTtjYXNlIDExOmw9cWMobnVsbCxsLEYsbyxiKTticmVhayBlO2Nhc2UgMTQ6bD1lMShudWxsLGwsRixqaShGLnR5cGUsbyksYik7YnJlYWsgZX10aHJvdyBFcnJvcih0KDMwNixGLCIiKSl9cmV0dXJuIGw7Y2FzZSAwOnJldHVybiBGPWwudHlwZSxYPWwucGVuZGluZ1Byb3BzLFg9bC5lbGVtZW50VHlwZT09PUY/WDpqaShGLFgpLFlzKG8sbCxGLFgsYik7Y2FzZSAxOnJldHVybiBGPWwudHlwZSxYPWwucGVuZGluZ1Byb3BzLFg9bC5lbGVtZW50VHlwZT09PUY/WDpqaShGLFgpLGExKG8sbCxGLFgsYik7Y2FzZSAzOmU6e2lmKG8xKGwpLG89PT1udWxsKXRocm93IEVycm9yKHQoMzg3KSk7Rj1sLnBlbmRpbmdQcm9wcyxoZT1sLm1lbW9pemVkU3RhdGUsWD1oZS5lbGVtZW50LHppKG8sbCksT3IobCxGLG51bGwsYik7dmFyIFVlPWwubWVtb2l6ZWRTdGF0ZTtpZihGPVVlLmVsZW1lbnQsaGUuaXNEZWh5ZHJhdGVkKWlmKGhlPXtlbGVtZW50OkYsaXNEZWh5ZHJhdGVkOiExLGNhY2hlOlVlLmNhY2hlLHBlbmRpbmdTdXNwZW5zZUJvdW5kYXJpZXM6VWUucGVuZGluZ1N1c3BlbnNlQm91bmRhcmllcyx0cmFuc2l0aW9uczpVZS50cmFuc2l0aW9uc30sbC51cGRhdGVRdWV1ZS5iYXNlU3RhdGU9aGUsbC5tZW1vaXplZFN0YXRlPWhlLGwuZmxhZ3MmMjU2KXtYPVpsKEVycm9yKHQoNDIzKSksbCksbD1pMShvLGwsRixiLFgpO2JyZWFrIGV9ZWxzZSBpZihGIT09WCl7WD1abChFcnJvcih0KDQyNCkpLGwpLGw9aTEobyxsLEYsYixYKTticmVhayBlfWVsc2UgZm9yKGZpPURvKGwuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8uZmlyc3RDaGlsZCksZGk9bCxtbz0hMCxiaT1udWxsLGI9S2wobCxudWxsLEYsYiksbC5jaGlsZD1iO2I7KWIuZmxhZ3M9Yi5mbGFncyYtM3w0MDk2LGI9Yi5zaWJsaW5nO2Vsc2V7aWYodWwoKSxGPT09WCl7bD1pbChvLGwsYik7YnJlYWsgZX1oaShvLGwsRixiKX1sPWwuY2hpbGR9cmV0dXJuIGw7Y2FzZSA1OnJldHVybiB2aShsKSxvPT09bnVsbCYmVWwobCksRj1sLnR5cGUsWD1sLnBlbmRpbmdQcm9wcyxoZT1vIT09bnVsbD9vLm1lbW9pemVkUHJvcHM6bnVsbCxVZT1YLmNoaWxkcmVuLGhvKEYsWCk/VWU9bnVsbDpoZSE9PW51bGwmJmhvKEYsaGUpJiYobC5mbGFnc3w9MzIpLHIxKG8sbCksaGkobyxsLFVlLGIpLGwuY2hpbGQ7Y2FzZSA2OnJldHVybiBvPT09bnVsbCYmVWwobCksbnVsbDtjYXNlIDEzOnJldHVybiBsMShvLGwsYik7Y2FzZSA0OnJldHVybiBCYShsLGwuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pLEY9bC5wZW5kaW5nUHJvcHMsbz09PW51bGw/bC5jaGlsZD1hbChsLG51bGwsRixiKTpoaShvLGwsRixiKSxsLmNoaWxkO2Nhc2UgMTE6cmV0dXJuIEY9bC50eXBlLFg9bC5wZW5kaW5nUHJvcHMsWD1sLmVsZW1lbnRUeXBlPT09Rj9YOmppKEYsWCkscWMobyxsLEYsWCxiKTtjYXNlIDc6cmV0dXJuIGhpKG8sbCxsLnBlbmRpbmdQcm9wcyxiKSxsLmNoaWxkO2Nhc2UgODpyZXR1cm4gaGkobyxsLGwucGVuZGluZ1Byb3BzLmNoaWxkcmVuLGIpLGwuY2hpbGQ7Y2FzZSAxMjpyZXR1cm4gaGkobyxsLGwucGVuZGluZ1Byb3BzLmNoaWxkcmVuLGIpLGwuY2hpbGQ7Y2FzZSAxMDplOntpZihGPWwudHlwZS5fY29udGV4dCxYPWwucGVuZGluZ1Byb3BzLGhlPWwubWVtb2l6ZWRQcm9wcyxVZT1YLnZhbHVlLFpyKE5pLEYuX2N1cnJlbnRWYWx1ZSksRi5fY3VycmVudFZhbHVlPVVlLGhlIT09bnVsbClpZihEcihoZS52YWx1ZSxVZSkpe2lmKGhlLmNoaWxkcmVuPT09WC5jaGlsZHJlbiYmIXBhLmN1cnJlbnQpe2w9aWwobyxsLGIpO2JyZWFrIGV9fWVsc2UgZm9yKGhlPWwuY2hpbGQsaGUhPT1udWxsJiYoaGUucmV0dXJuPWwpO2hlIT09bnVsbDspe3ZhciB4dD1oZS5kZXBlbmRlbmNpZXM7aWYoeHQhPT1udWxsKXtVZT1oZS5jaGlsZDtmb3IodmFyICR0PXh0LmZpcnN0Q29udGV4dDskdCE9PW51bGw7KXtpZigkdC5jb250ZXh0PT09Ril7aWYoaGUudGFnPT09MSl7JHQ9VGUoLTEsYiYtYiksJHQudGFnPTI7dmFyIEluPWhlLnVwZGF0ZVF1ZXVlO2lmKEluIT09bnVsbCl7SW49SW4uc2hhcmVkO3ZhciBncj1Jbi5wZW5kaW5nO2dyPT09bnVsbD8kdC5uZXh0PSR0OigkdC5uZXh0PWdyLm5leHQsZ3IubmV4dD0kdCksSW4ucGVuZGluZz0kdH19aGUubGFuZXN8PWIsJHQ9aGUuYWx0ZXJuYXRlLCR0IT09bnVsbCYmKCR0LmxhbmVzfD1iKSx6bChoZS5yZXR1cm4sYixsKSx4dC5sYW5lc3w9YjticmVha30kdD0kdC5uZXh0fX1lbHNlIGlmKGhlLnRhZz09PTEwKVVlPWhlLnR5cGU9PT1sLnR5cGU/bnVsbDpoZS5jaGlsZDtlbHNlIGlmKGhlLnRhZz09PTE4KXtpZihVZT1oZS5yZXR1cm4sVWU9PT1udWxsKXRocm93IEVycm9yKHQoMzQxKSk7VWUubGFuZXN8PWIseHQ9VWUuYWx0ZXJuYXRlLHh0IT09bnVsbCYmKHh0LmxhbmVzfD1iKSx6bChVZSxiLGwpLFVlPWhlLnNpYmxpbmd9ZWxzZSBVZT1oZS5jaGlsZDtpZihVZSE9PW51bGwpVWUucmV0dXJuPWhlO2Vsc2UgZm9yKFVlPWhlO1VlIT09bnVsbDspe2lmKFVlPT09bCl7VWU9bnVsbDticmVha31pZihoZT1VZS5zaWJsaW5nLGhlIT09bnVsbCl7aGUucmV0dXJuPVVlLnJldHVybixVZT1oZTticmVha31VZT1VZS5yZXR1cm59aGU9VWV9aGkobyxsLFguY2hpbGRyZW4sYiksbD1sLmNoaWxkfXJldHVybiBsO2Nhc2UgOTpyZXR1cm4gWD1sLnR5cGUsRj1sLnBlbmRpbmdQcm9wcy5jaGlsZHJlbixvbChsLGIpLFg9U2koWCksRj1GKFgpLGwuZmxhZ3N8PTEsaGkobyxsLEYsYiksbC5jaGlsZDtjYXNlIDE0OnJldHVybiBGPWwudHlwZSxYPWppKEYsbC5wZW5kaW5nUHJvcHMpLFg9amkoRi50eXBlLFgpLGUxKG8sbCxGLFgsYik7Y2FzZSAxNTpyZXR1cm4gdDEobyxsLGwudHlwZSxsLnBlbmRpbmdQcm9wcyxiKTtjYXNlIDE3OnJldHVybiBGPWwudHlwZSxYPWwucGVuZGluZ1Byb3BzLFg9bC5lbGVtZW50VHlwZT09PUY/WDpqaShGLFgpLG1zKG8sbCksbC50YWc9MSxqZShGKT8obz0hMCxlaShsKSk6bz0hMSxvbChsLGIpLEtjKGwsRixYKSxLcyhsLEYsWCxiKSxYcyhudWxsLGwsRiwhMCxvLGIpO2Nhc2UgMTk6cmV0dXJuIGMxKG8sbCxiKTtjYXNlIDIyOnJldHVybiBuMShvLGwsYil9dGhyb3cgRXJyb3IodCgxNTYsbC50YWcpKX07ZnVuY3Rpb24gQTEobyxsKXtyZXR1cm4gZnQobyxsKX1mdW5jdGlvbiB1dShvLGwsYixGKXt0aGlzLnRhZz1vLHRoaXMua2V5PWIsdGhpcy5zaWJsaW5nPXRoaXMuY2hpbGQ9dGhpcy5yZXR1cm49dGhpcy5zdGF0ZU5vZGU9dGhpcy50eXBlPXRoaXMuZWxlbWVudFR5cGU9bnVsbCx0aGlzLmluZGV4PTAsdGhpcy5yZWY9bnVsbCx0aGlzLnBlbmRpbmdQcm9wcz1sLHRoaXMuZGVwZW5kZW5jaWVzPXRoaXMubWVtb2l6ZWRTdGF0ZT10aGlzLnVwZGF0ZVF1ZXVlPXRoaXMubWVtb2l6ZWRQcm9wcz1udWxsLHRoaXMubW9kZT1GLHRoaXMuc3VidHJlZUZsYWdzPXRoaXMuZmxhZ3M9MCx0aGlzLmRlbGV0aW9ucz1udWxsLHRoaXMuY2hpbGRMYW5lcz10aGlzLmxhbmVzPTAsdGhpcy5hbHRlcm5hdGU9bnVsbH1mdW5jdGlvbiAkaShvLGwsYixGKXtyZXR1cm4gbmV3IHV1KG8sbCxiLEYpfWZ1bmN0aW9uIGdjKG8pe3JldHVybiBvPW8ucHJvdG90eXBlLCEoIW98fCFvLmlzUmVhY3RDb21wb25lbnQpfWZ1bmN0aW9uIGR1KG8pe2lmKHR5cGVvZiBvPT0iZnVuY3Rpb24iKXJldHVybiBnYyhvKT8xOjA7aWYobyE9bnVsbCl7aWYobz1vLiQkdHlwZW9mLG89PT10ZSlyZXR1cm4gMTE7aWYobz09PVcpcmV0dXJuIDE0fXJldHVybiAyfWZ1bmN0aW9uIGdsKG8sbCl7dmFyIGI9by5hbHRlcm5hdGU7cmV0dXJuIGI9PT1udWxsPyhiPSRpKG8udGFnLGwsby5rZXksby5tb2RlKSxiLmVsZW1lbnRUeXBlPW8uZWxlbWVudFR5cGUsYi50eXBlPW8udHlwZSxiLnN0YXRlTm9kZT1vLnN0YXRlTm9kZSxiLmFsdGVybmF0ZT1vLG8uYWx0ZXJuYXRlPWIpOihiLnBlbmRpbmdQcm9wcz1sLGIudHlwZT1vLnR5cGUsYi5mbGFncz0wLGIuc3VidHJlZUZsYWdzPTAsYi5kZWxldGlvbnM9bnVsbCksYi5mbGFncz1vLmZsYWdzJjE0NjgwMDY0LGIuY2hpbGRMYW5lcz1vLmNoaWxkTGFuZXMsYi5sYW5lcz1vLmxhbmVzLGIuY2hpbGQ9by5jaGlsZCxiLm1lbW9pemVkUHJvcHM9by5tZW1vaXplZFByb3BzLGIubWVtb2l6ZWRTdGF0ZT1vLm1lbW9pemVkU3RhdGUsYi51cGRhdGVRdWV1ZT1vLnVwZGF0ZVF1ZXVlLGw9by5kZXBlbmRlbmNpZXMsYi5kZXBlbmRlbmNpZXM9bD09PW51bGw/bnVsbDp7bGFuZXM6bC5sYW5lcyxmaXJzdENvbnRleHQ6bC5maXJzdENvbnRleHR9LGIuc2libGluZz1vLnNpYmxpbmcsYi5pbmRleD1vLmluZGV4LGIucmVmPW8ucmVmLGJ9ZnVuY3Rpb24gVHMobyxsLGIsRixYLGhlKXt2YXIgVWU9MjtpZihGPW8sdHlwZW9mIG89PSJmdW5jdGlvbiIpZ2MobykmJihVZT0xKTtlbHNlIGlmKHR5cGVvZiBvPT0ic3RyaW5nIilVZT01O2Vsc2UgZTpzd2l0Y2gobyl7Y2FzZSBHOnJldHVybiBSbChiLmNoaWxkcmVuLFgsaGUsbCk7Y2FzZSBZOlVlPTgsWHw9ODticmVhaztjYXNlIGVlOnJldHVybiBvPSRpKDEyLGIsbCxYfDIpLG8uZWxlbWVudFR5cGU9ZWUsby5sYW5lcz1oZSxvO2Nhc2UgbGU6cmV0dXJuIG89JGkoMTMsYixsLFgpLG8uZWxlbWVudFR5cGU9bGUsby5sYW5lcz1oZSxvO2Nhc2UgY2U6cmV0dXJuIG89JGkoMTksYixsLFgpLG8uZWxlbWVudFR5cGU9Y2Usby5sYW5lcz1oZSxvO2Nhc2UgRDpyZXR1cm4gTXMoYixYLGhlLGwpO2RlZmF1bHQ6aWYodHlwZW9mIG89PSJvYmplY3QiJiZvIT09bnVsbClzd2l0Y2goby4kJHR5cGVvZil7Y2FzZSBKOlVlPTEwO2JyZWFrIGU7Y2FzZSBtZTpVZT05O2JyZWFrIGU7Y2FzZSB0ZTpVZT0xMTticmVhayBlO2Nhc2UgVzpVZT0xNDticmVhayBlO2Nhc2UgajpVZT0xNixGPW51bGw7YnJlYWsgZX10aHJvdyBFcnJvcih0KDEzMCxvPT1udWxsP286dHlwZW9mIG8sIiIpKX1yZXR1cm4gbD0kaShVZSxiLGwsWCksbC5lbGVtZW50VHlwZT1vLGwudHlwZT1GLGwubGFuZXM9aGUsbH1mdW5jdGlvbiBSbChvLGwsYixGKXtyZXR1cm4gbz0kaSg3LG8sRixsKSxvLmxhbmVzPWIsb31mdW5jdGlvbiBNcyhvLGwsYixGKXtyZXR1cm4gbz0kaSgyMixvLEYsbCksby5lbGVtZW50VHlwZT1ELG8ubGFuZXM9YixvLnN0YXRlTm9kZT17aXNIaWRkZW46ITF9LG99ZnVuY3Rpb24gcGMobyxsLGIpe3JldHVybiBvPSRpKDYsbyxudWxsLGwpLG8ubGFuZXM9YixvfWZ1bmN0aW9uIHljKG8sbCxiKXtyZXR1cm4gbD0kaSg0LG8uY2hpbGRyZW4hPT1udWxsP28uY2hpbGRyZW46W10sby5rZXksbCksbC5sYW5lcz1iLGwuc3RhdGVOb2RlPXtjb250YWluZXJJbmZvOm8uY29udGFpbmVySW5mbyxwZW5kaW5nQ2hpbGRyZW46bnVsbCxpbXBsZW1lbnRhdGlvbjpvLmltcGxlbWVudGF0aW9ufSxsfWZ1bmN0aW9uIGZ1KG8sbCxiLEYsWCl7dGhpcy50YWc9bCx0aGlzLmNvbnRhaW5lckluZm89byx0aGlzLmZpbmlzaGVkV29yaz10aGlzLnBpbmdDYWNoZT10aGlzLmN1cnJlbnQ9dGhpcy5wZW5kaW5nQ2hpbGRyZW49bnVsbCx0aGlzLnRpbWVvdXRIYW5kbGU9LTEsdGhpcy5jYWxsYmFja05vZGU9dGhpcy5wZW5kaW5nQ29udGV4dD10aGlzLmNvbnRleHQ9bnVsbCx0aGlzLmNhbGxiYWNrUHJpb3JpdHk9MCx0aGlzLmV2ZW50VGltZXM9WG4oMCksdGhpcy5leHBpcmF0aW9uVGltZXM9WG4oLTEpLHRoaXMuZW50YW5nbGVkTGFuZXM9dGhpcy5maW5pc2hlZExhbmVzPXRoaXMubXV0YWJsZVJlYWRMYW5lcz10aGlzLmV4cGlyZWRMYW5lcz10aGlzLnBpbmdlZExhbmVzPXRoaXMuc3VzcGVuZGVkTGFuZXM9dGhpcy5wZW5kaW5nTGFuZXM9MCx0aGlzLmVudGFuZ2xlbWVudHM9WG4oMCksdGhpcy5pZGVudGlmaWVyUHJlZml4PUYsdGhpcy5vblJlY292ZXJhYmxlRXJyb3I9WCx0aGlzLm11dGFibGVTb3VyY2VFYWdlckh5ZHJhdGlvbkRhdGE9bnVsbH1mdW5jdGlvbiBDYyhvLGwsYixGLFgsaGUsVWUseHQsJHQpe3JldHVybiBvPW5ldyBmdShvLGwsYix4dCwkdCksbD09PTE/KGw9MSxoZT09PSEwJiYobHw9OCkpOmw9MCxoZT0kaSgzLG51bGwsbnVsbCxsKSxvLmN1cnJlbnQ9aGUsaGUuc3RhdGVOb2RlPW8saGUubWVtb2l6ZWRTdGF0ZT17ZWxlbWVudDpGLGlzRGVoeWRyYXRlZDpiLGNhY2hlOm51bGwsdHJhbnNpdGlvbnM6bnVsbCxwZW5kaW5nU3VzcGVuc2VCb3VuZGFyaWVzOm51bGx9LExsKGhlKSxvfWZ1bmN0aW9uIHZ1KG8sbCxiKXt2YXIgRj0zPGFyZ3VtZW50cy5sZW5ndGgmJmFyZ3VtZW50c1szXSE9PXZvaWQgMD9hcmd1bWVudHNbM106bnVsbDtyZXR1cm57JCR0eXBlb2Y6eixrZXk6Rj09bnVsbD9udWxsOiIiK0YsY2hpbGRyZW46byxjb250YWluZXJJbmZvOmwsaW1wbGVtZW50YXRpb246Yn19ZnVuY3Rpb24gTDEobyl7aWYoIW8pcmV0dXJuIFZhO289by5fcmVhY3RJbnRlcm5hbHM7ZTp7aWYoWm4obykhPT1vfHxvLnRhZyE9PTEpdGhyb3cgRXJyb3IodCgxNzApKTt2YXIgbD1vO2Rve3N3aXRjaChsLnRhZyl7Y2FzZSAzOmw9bC5zdGF0ZU5vZGUuY29udGV4dDticmVhayBlO2Nhc2UgMTppZihqZShsLnR5cGUpKXtsPWwuc3RhdGVOb2RlLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWVyZ2VkQ2hpbGRDb250ZXh0O2JyZWFrIGV9fWw9bC5yZXR1cm59d2hpbGUobCE9PW51bGwpO3Rocm93IEVycm9yKHQoMTcxKSl9aWYoby50YWc9PT0xKXt2YXIgYj1vLnR5cGU7aWYoamUoYikpcmV0dXJuIElvKG8sYixsKX1yZXR1cm4gbH1mdW5jdGlvbiBaMShvLGwsYixGLFgsaGUsVWUseHQsJHQpe3JldHVybiBvPUNjKGIsRiwhMCxvLFgsaGUsVWUseHQsJHQpLG8uY29udGV4dD1MMShudWxsKSxiPW8uY3VycmVudCxGPW1pKCksWD1obChiKSxoZT1UZShGLFgpLGhlLmNhbGxiYWNrPWwhPW51bGw/bDpudWxsLGl0KGIsaGUsWCksby5jdXJyZW50LmxhbmVzPVgsZnIobyxYLEYpLEVpKG8sRiksb31mdW5jdGlvbiBScyhvLGwsYixGKXt2YXIgWD1sLmN1cnJlbnQsaGU9bWkoKSxVZT1obChYKTtyZXR1cm4gYj1MMShiKSxsLmNvbnRleHQ9PT1udWxsP2wuY29udGV4dD1iOmwucGVuZGluZ0NvbnRleHQ9YixsPVRlKGhlLFVlKSxsLnBheWxvYWQ9e2VsZW1lbnQ6b30sRj1GPT09dm9pZCAwP251bGw6RixGIT09bnVsbCYmKGwuY2FsbGJhY2s9Riksbz1pdChYLGwsVWUpLG8hPT1udWxsJiYoa2kobyxYLFVlLGhlKSxRdChvLFgsVWUpKSxVZX1mdW5jdGlvbiBJcyhvKXtpZihvPW8uY3VycmVudCwhby5jaGlsZClyZXR1cm4gbnVsbDtzd2l0Y2goby5jaGlsZC50YWcpe2Nhc2UgNTpyZXR1cm4gby5jaGlsZC5zdGF0ZU5vZGU7ZGVmYXVsdDpyZXR1cm4gby5jaGlsZC5zdGF0ZU5vZGV9fWZ1bmN0aW9uICQxKG8sbCl7aWYobz1vLm1lbW9pemVkU3RhdGUsbyE9PW51bGwmJm8uZGVoeWRyYXRlZCE9PW51bGwpe3ZhciBiPW8ucmV0cnlMYW5lO28ucmV0cnlMYW5lPWIhPT0wJiZiPGw/YjpsfX1mdW5jdGlvbiBiYyhvLGwpeyQxKG8sbCksKG89by5hbHRlcm5hdGUpJiYkMShvLGwpfWZ1bmN0aW9uIGh1KCl7cmV0dXJuIG51bGx9dmFyIEgxPXR5cGVvZiByZXBvcnRFcnJvcj09ImZ1bmN0aW9uIj9yZXBvcnRFcnJvcjpmdW5jdGlvbihvKXtjb25zb2xlLmVycm9yKG8pfTtmdW5jdGlvbiBTYyhvKXt0aGlzLl9pbnRlcm5hbFJvb3Q9b31Qcy5wcm90b3R5cGUucmVuZGVyPVNjLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24obyl7dmFyIGw9dGhpcy5faW50ZXJuYWxSb290O2lmKGw9PT1udWxsKXRocm93IEVycm9yKHQoNDA5KSk7UnMobyxsLG51bGwsbnVsbCl9LFBzLnByb3RvdHlwZS51bm1vdW50PVNjLnByb3RvdHlwZS51bm1vdW50PWZ1bmN0aW9uKCl7dmFyIG89dGhpcy5faW50ZXJuYWxSb290O2lmKG8hPT1udWxsKXt0aGlzLl9pbnRlcm5hbFJvb3Q9bnVsbDt2YXIgbD1vLmNvbnRhaW5lckluZm87RWwoZnVuY3Rpb24oKXtScyhudWxsLG8sbnVsbCxudWxsKX0pLGxbcW9dPW51bGx9fTtmdW5jdGlvbiBQcyhvKXt0aGlzLl9pbnRlcm5hbFJvb3Q9b31Qcy5wcm90b3R5cGUudW5zdGFibGVfc2NoZWR1bGVIeWRyYXRpb249ZnVuY3Rpb24obyl7aWYobyl7dmFyIGw9RnIoKTtvPXtibG9ja2VkT246bnVsbCx0YXJnZXQ6byxwcmlvcml0eTpsfTtmb3IodmFyIGI9MDtiPGpuLmxlbmd0aCYmbCE9PTAmJmw8am5bYl0ucHJpb3JpdHk7YisrKTtqbi5zcGxpY2UoYiwwLG8pLGI9PT0wJiZPbihvKX19O2Z1bmN0aW9uIE9jKG8pe3JldHVybiEoIW98fG8ubm9kZVR5cGUhPT0xJiZvLm5vZGVUeXBlIT09OSYmby5ub2RlVHlwZSE9PTExKX1mdW5jdGlvbiB6cyhvKXtyZXR1cm4hKCFvfHxvLm5vZGVUeXBlIT09MSYmby5ub2RlVHlwZSE9PTkmJm8ubm9kZVR5cGUhPT0xMSYmKG8ubm9kZVR5cGUhPT04fHxvLm5vZGVWYWx1ZSE9PSIgcmVhY3QtbW91bnQtcG9pbnQtdW5zdGFibGUgIikpfWZ1bmN0aW9uIEQxKCl7fWZ1bmN0aW9uIG11KG8sbCxiLEYsWCl7aWYoWCl7aWYodHlwZW9mIEY9PSJmdW5jdGlvbiIpe3ZhciBoZT1GO0Y9ZnVuY3Rpb24oKXt2YXIgSW49SXMoVWUpO2hlLmNhbGwoSW4pfX12YXIgVWU9WjEobCxGLG8sMCxudWxsLCExLCExLCIiLEQxKTtyZXR1cm4gby5fcmVhY3RSb290Q29udGFpbmVyPVVlLG9bcW9dPVVlLmN1cnJlbnQsdHIoby5ub2RlVHlwZT09PTg/by5wYXJlbnROb2RlOm8pLEVsKCksVWV9Zm9yKDtYPW8ubGFzdENoaWxkOylvLnJlbW92ZUNoaWxkKFgpO2lmKHR5cGVvZiBGPT0iZnVuY3Rpb24iKXt2YXIgeHQ9RjtGPWZ1bmN0aW9uKCl7dmFyIEluPUlzKCR0KTt4dC5jYWxsKEluKX19dmFyICR0PUNjKG8sMCwhMSxudWxsLG51bGwsITEsITEsIiIsRDEpO3JldHVybiBvLl9yZWFjdFJvb3RDb250YWluZXI9JHQsb1txb109JHQuY3VycmVudCx0cihvLm5vZGVUeXBlPT09OD9vLnBhcmVudE5vZGU6byksRWwoZnVuY3Rpb24oKXtScyhsLCR0LGIsRil9KSwkdH1mdW5jdGlvbiBGcyhvLGwsYixGLFgpe3ZhciBoZT1iLl9yZWFjdFJvb3RDb250YWluZXI7aWYoaGUpe3ZhciBVZT1oZTtpZih0eXBlb2YgWD09ImZ1bmN0aW9uIil7dmFyIHh0PVg7WD1mdW5jdGlvbigpe3ZhciAkdD1JcyhVZSk7eHQuY2FsbCgkdCl9fVJzKGwsVWUsbyxYKX1lbHNlIFVlPW11KGIsbCxvLFgsRik7cmV0dXJuIElzKFVlKX1scj1mdW5jdGlvbihvKXtzd2l0Y2goby50YWcpe2Nhc2UgMzp2YXIgbD1vLnN0YXRlTm9kZTtpZihsLmN1cnJlbnQubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQpe3ZhciBiPUR0KGwucGVuZGluZ0xhbmVzKTtiIT09MCYmKGhyKGwsYnwxKSxFaShsLF90KCkpLCEoa2EmNikmJihEbD1fdCgpKzUwMCxLYSgpKSl9YnJlYWs7Y2FzZSAxMzpFbChmdW5jdGlvbigpe3ZhciBGPVpvKG8sMSk7aWYoRiE9PW51bGwpe3ZhciBYPW1pKCk7a2koRixvLDEsWCl9fSksYmMobywxKX19LCRuPWZ1bmN0aW9uKG8pe2lmKG8udGFnPT09MTMpe3ZhciBsPVpvKG8sMTM0MjE3NzI4KTtpZihsIT09bnVsbCl7dmFyIGI9bWkoKTtraShsLG8sMTM0MjE3NzI4LGIpfWJjKG8sMTM0MjE3NzI4KX19LHNyPWZ1bmN0aW9uKG8pe2lmKG8udGFnPT09MTMpe3ZhciBsPWhsKG8pLGI9Wm8obyxsKTtpZihiIT09bnVsbCl7dmFyIEY9bWkoKTtraShiLG8sbCxGKX1iYyhvLGwpfX0sRnI9ZnVuY3Rpb24oKXtyZXR1cm4gRm59LFplPWZ1bmN0aW9uKG8sbCl7dmFyIGI9Rm47dHJ5e3JldHVybiBGbj1vLGwoKX1maW5hbGx5e0ZuPWJ9fSxYZT1mdW5jdGlvbihvLGwsYil7c3dpdGNoKGwpe2Nhc2UiaW5wdXQiOmlmKE0obyxiKSxsPWIubmFtZSxiLnR5cGU9PT0icmFkaW8iJiZsIT1udWxsKXtmb3IoYj1vO2IucGFyZW50Tm9kZTspYj1iLnBhcmVudE5vZGU7Zm9yKGI9Yi5xdWVyeVNlbGVjdG9yQWxsKCJpbnB1dFtuYW1lPSIrSlNPTi5zdHJpbmdpZnkoIiIrbCkrJ11bdHlwZT0icmFkaW8iXScpLGw9MDtsPGIubGVuZ3RoO2wrKyl7dmFyIEY9YltsXTtpZihGIT09byYmRi5mb3JtPT09by5mb3JtKXt2YXIgWD1pYShGKTtpZighWCl0aHJvdyBFcnJvcih0KDkwKSk7X2UoRiksTShGLFgpfX19YnJlYWs7Y2FzZSJ0ZXh0YXJlYSI6XyhvLGIpO2JyZWFrO2Nhc2Uic2VsZWN0IjpsPWIudmFsdWUsbCE9bnVsbCYmUShvLCEhYi5tdWx0aXBsZSxsLCExKX19LGN0PXZjLE9lPUVsO3ZhciBndT17dXNpbmdDbGllbnRFbnRyeVBvaW50OiExLEV2ZW50czpbV3Isa3IsaWEsV2UsU3QsdmNdfSxucz17ZmluZEZpYmVyQnlIb3N0SW5zdGFuY2U6RG4sYnVuZGxlVHlwZTowLHZlcnNpb246IjE4LjMuMSIscmVuZGVyZXJQYWNrYWdlTmFtZToicmVhY3QtZG9tIn0scHU9e2J1bmRsZVR5cGU6bnMuYnVuZGxlVHlwZSx2ZXJzaW9uOm5zLnZlcnNpb24scmVuZGVyZXJQYWNrYWdlTmFtZTpucy5yZW5kZXJlclBhY2thZ2VOYW1lLHJlbmRlcmVyQ29uZmlnOm5zLnJlbmRlcmVyQ29uZmlnLG92ZXJyaWRlSG9va1N0YXRlOm51bGwsb3ZlcnJpZGVIb29rU3RhdGVEZWxldGVQYXRoOm51bGwsb3ZlcnJpZGVIb29rU3RhdGVSZW5hbWVQYXRoOm51bGwsb3ZlcnJpZGVQcm9wczpudWxsLG92ZXJyaWRlUHJvcHNEZWxldGVQYXRoOm51bGwsb3ZlcnJpZGVQcm9wc1JlbmFtZVBhdGg6bnVsbCxzZXRFcnJvckhhbmRsZXI6bnVsbCxzZXRTdXNwZW5zZUhhbmRsZXI6bnVsbCxzY2hlZHVsZVVwZGF0ZTpudWxsLGN1cnJlbnREaXNwYXRjaGVyUmVmOkkuUmVhY3RDdXJyZW50RGlzcGF0Y2hlcixmaW5kSG9zdEluc3RhbmNlQnlGaWJlcjpmdW5jdGlvbihvKXtyZXR1cm4gbz1WbihvKSxvPT09bnVsbD9udWxsOm8uc3RhdGVOb2RlfSxmaW5kRmliZXJCeUhvc3RJbnN0YW5jZTpucy5maW5kRmliZXJCeUhvc3RJbnN0YW5jZXx8aHUsZmluZEhvc3RJbnN0YW5jZXNGb3JSZWZyZXNoOm51bGwsc2NoZWR1bGVSZWZyZXNoOm51bGwsc2NoZWR1bGVSb290Om51bGwsc2V0UmVmcmVzaEhhbmRsZXI6bnVsbCxnZXRDdXJyZW50RmliZXI6bnVsbCxyZWNvbmNpbGVyVmVyc2lvbjoiMTguMy4xLW5leHQtZjEzMzhmODA4MC0yMDI0MDQyNiJ9O2lmKHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18hPSJ1bmRlZmluZWQiKXt2YXIgQXM9X19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fO2lmKCFBcy5pc0Rpc2FibGVkJiZBcy5zdXBwb3J0c0ZpYmVyKXRyeXt1cj1Bcy5pbmplY3QocHUpLGlyPUFzfWNhdGNoKG8pe319cC5fX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRD1ndSxwLmNyZWF0ZVBvcnRhbD1mdW5jdGlvbihvLGwpe3ZhciBiPTI8YXJndW1lbnRzLmxlbmd0aCYmYXJndW1lbnRzWzJdIT09dm9pZCAwP2FyZ3VtZW50c1syXTpudWxsO2lmKCFPYyhsKSl0aHJvdyBFcnJvcih0KDIwMCkpO3JldHVybiB2dShvLGwsbnVsbCxiKX0scC5jcmVhdGVSb290PWZ1bmN0aW9uKG8sbCl7aWYoIU9jKG8pKXRocm93IEVycm9yKHQoMjk5KSk7dmFyIGI9ITEsRj0iIixYPUgxO3JldHVybiBsIT1udWxsJiYobC51bnN0YWJsZV9zdHJpY3RNb2RlPT09ITAmJihiPSEwKSxsLmlkZW50aWZpZXJQcmVmaXghPT12b2lkIDAmJihGPWwuaWRlbnRpZmllclByZWZpeCksbC5vblJlY292ZXJhYmxlRXJyb3IhPT12b2lkIDAmJihYPWwub25SZWNvdmVyYWJsZUVycm9yKSksbD1DYyhvLDEsITEsbnVsbCxudWxsLGIsITEsRixYKSxvW3FvXT1sLmN1cnJlbnQsdHIoby5ub2RlVHlwZT09PTg/by5wYXJlbnROb2RlOm8pLG5ldyBTYyhsKX0scC5maW5kRE9NTm9kZT1mdW5jdGlvbihvKXtpZihvPT1udWxsKXJldHVybiBudWxsO2lmKG8ubm9kZVR5cGU9PT0xKXJldHVybiBvO3ZhciBsPW8uX3JlYWN0SW50ZXJuYWxzO2lmKGw9PT12b2lkIDApdGhyb3cgdHlwZW9mIG8ucmVuZGVyPT0iZnVuY3Rpb24iP0Vycm9yKHQoMTg4KSk6KG89T2JqZWN0LmtleXMobykuam9pbigiLCIpLEVycm9yKHQoMjY4LG8pKSk7cmV0dXJuIG89Vm4obCksbz1vPT09bnVsbD9udWxsOm8uc3RhdGVOb2RlLG99LHAuZmx1c2hTeW5jPWZ1bmN0aW9uKG8pe3JldHVybiBFbChvKX0scC5oeWRyYXRlPWZ1bmN0aW9uKG8sbCxiKXtpZighenMobCkpdGhyb3cgRXJyb3IodCgyMDApKTtyZXR1cm4gRnMobnVsbCxvLGwsITAsYil9LHAuaHlkcmF0ZVJvb3Q9ZnVuY3Rpb24obyxsLGIpe2lmKCFPYyhvKSl0aHJvdyBFcnJvcih0KDQwNSkpO3ZhciBGPWIhPW51bGwmJmIuaHlkcmF0ZWRTb3VyY2VzfHxudWxsLFg9ITEsaGU9IiIsVWU9SDE7aWYoYiE9bnVsbCYmKGIudW5zdGFibGVfc3RyaWN0TW9kZT09PSEwJiYoWD0hMCksYi5pZGVudGlmaWVyUHJlZml4IT09dm9pZCAwJiYoaGU9Yi5pZGVudGlmaWVyUHJlZml4KSxiLm9uUmVjb3ZlcmFibGVFcnJvciE9PXZvaWQgMCYmKFVlPWIub25SZWNvdmVyYWJsZUVycm9yKSksbD1aMShsLG51bGwsbywxLGIhPW51bGw/YjpudWxsLFgsITEsaGUsVWUpLG9bcW9dPWwuY3VycmVudCx0cihvKSxGKWZvcihvPTA7bzxGLmxlbmd0aDtvKyspYj1GW29dLFg9Yi5fZ2V0VmVyc2lvbixYPVgoYi5fc291cmNlKSxsLm11dGFibGVTb3VyY2VFYWdlckh5ZHJhdGlvbkRhdGE9PW51bGw/bC5tdXRhYmxlU291cmNlRWFnZXJIeWRyYXRpb25EYXRhPVtiLFhdOmwubXV0YWJsZVNvdXJjZUVhZ2VySHlkcmF0aW9uRGF0YS5wdXNoKGIsWCk7cmV0dXJuIG5ldyBQcyhsKX0scC5yZW5kZXI9ZnVuY3Rpb24obyxsLGIpe2lmKCF6cyhsKSl0aHJvdyBFcnJvcih0KDIwMCkpO3JldHVybiBGcyhudWxsLG8sbCwhMSxiKX0scC51bm1vdW50Q29tcG9uZW50QXROb2RlPWZ1bmN0aW9uKG8pe2lmKCF6cyhvKSl0aHJvdyBFcnJvcih0KDQwKSk7cmV0dXJuIG8uX3JlYWN0Um9vdENvbnRhaW5lcj8oRWwoZnVuY3Rpb24oKXtGcyhudWxsLG51bGwsbywhMSxmdW5jdGlvbigpe28uX3JlYWN0Um9vdENvbnRhaW5lcj1udWxsLG9bcW9dPW51bGx9KX0pLCEwKTohMX0scC51bnN0YWJsZV9iYXRjaGVkVXBkYXRlcz12YyxwLnVuc3RhYmxlX3JlbmRlclN1YnRyZWVJbnRvQ29udGFpbmVyPWZ1bmN0aW9uKG8sbCxiLEYpe2lmKCF6cyhiKSl0aHJvdyBFcnJvcih0KDIwMCkpO2lmKG89PW51bGx8fG8uX3JlYWN0SW50ZXJuYWxzPT09dm9pZCAwKXRocm93IEVycm9yKHQoMzgpKTtyZXR1cm4gRnMobyxsLGIsITEsRil9LHAudmVyc2lvbj0iMTguMy4xLW5leHQtZjEzMzhmODA4MC0yMDI0MDQyNiJ9LDIwNzQ1OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3MzkzNSk7aWYoMSlwLmNyZWF0ZVJvb3Q9ci5jcmVhdGVSb290LHAuaHlkcmF0ZVJvb3Q9ci5oeWRyYXRlUm9vdDtlbHNlIHZhciBufSw3MzkzNTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIoKXtpZighKHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX189PSJ1bmRlZmluZWQifHx0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLmNoZWNrRENFIT0iZnVuY3Rpb24iKSl0cnl7X19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLmNoZWNrRENFKHIpfWNhdGNoKG4pe2NvbnNvbGUuZXJyb3Iobil9fXIoKSx5LmV4cG9ydHM9ZSg2NDQ0OCl9LDY5NTkwOmZ1bmN0aW9uKHkpe3ZhciBwPXR5cGVvZiBFbGVtZW50IT0idW5kZWZpbmVkIixlPXR5cGVvZiBNYXA9PSJmdW5jdGlvbiIscj10eXBlb2YgU2V0PT0iZnVuY3Rpb24iLG49dHlwZW9mIEFycmF5QnVmZmVyPT0iZnVuY3Rpb24iJiYhIUFycmF5QnVmZmVyLmlzVmlldztmdW5jdGlvbiB0KGkscyl7aWYoaT09PXMpcmV0dXJuITA7aWYoaSYmcyYmdHlwZW9mIGk9PSJvYmplY3QiJiZ0eXBlb2Ygcz09Im9iamVjdCIpe2lmKGkuY29uc3RydWN0b3IhPT1zLmNvbnN0cnVjdG9yKXJldHVybiExO3ZhciBhLHUsYztpZihBcnJheS5pc0FycmF5KGkpKXtpZihhPWkubGVuZ3RoLGEhPXMubGVuZ3RoKXJldHVybiExO2Zvcih1PWE7dS0tIT09MDspaWYoIXQoaVt1XSxzW3VdKSlyZXR1cm4hMTtyZXR1cm4hMH12YXIgaDtpZihlJiZpIGluc3RhbmNlb2YgTWFwJiZzIGluc3RhbmNlb2YgTWFwKXtpZihpLnNpemUhPT1zLnNpemUpcmV0dXJuITE7Zm9yKGg9aS5lbnRyaWVzKCk7ISh1PWgubmV4dCgpKS5kb25lOylpZighcy5oYXModS52YWx1ZVswXSkpcmV0dXJuITE7Zm9yKGg9aS5lbnRyaWVzKCk7ISh1PWgubmV4dCgpKS5kb25lOylpZighdCh1LnZhbHVlWzFdLHMuZ2V0KHUudmFsdWVbMF0pKSlyZXR1cm4hMTtyZXR1cm4hMH1pZihyJiZpIGluc3RhbmNlb2YgU2V0JiZzIGluc3RhbmNlb2YgU2V0KXtpZihpLnNpemUhPT1zLnNpemUpcmV0dXJuITE7Zm9yKGg9aS5lbnRyaWVzKCk7ISh1PWgubmV4dCgpKS5kb25lOylpZighcy5oYXModS52YWx1ZVswXSkpcmV0dXJuITE7cmV0dXJuITB9aWYobiYmQXJyYXlCdWZmZXIuaXNWaWV3KGkpJiZBcnJheUJ1ZmZlci5pc1ZpZXcocykpe2lmKGE9aS5sZW5ndGgsYSE9cy5sZW5ndGgpcmV0dXJuITE7Zm9yKHU9YTt1LS0hPT0wOylpZihpW3VdIT09c1t1XSlyZXR1cm4hMTtyZXR1cm4hMH1pZihpLmNvbnN0cnVjdG9yPT09UmVnRXhwKXJldHVybiBpLnNvdXJjZT09PXMuc291cmNlJiZpLmZsYWdzPT09cy5mbGFncztpZihpLnZhbHVlT2YhPT1PYmplY3QucHJvdG90eXBlLnZhbHVlT2YmJnR5cGVvZiBpLnZhbHVlT2Y9PSJmdW5jdGlvbiImJnR5cGVvZiBzLnZhbHVlT2Y9PSJmdW5jdGlvbiIpcmV0dXJuIGkudmFsdWVPZigpPT09cy52YWx1ZU9mKCk7aWYoaS50b1N0cmluZyE9PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcmJnR5cGVvZiBpLnRvU3RyaW5nPT0iZnVuY3Rpb24iJiZ0eXBlb2Ygcy50b1N0cmluZz09ImZ1bmN0aW9uIilyZXR1cm4gaS50b1N0cmluZygpPT09cy50b1N0cmluZygpO2lmKGM9T2JqZWN0LmtleXMoaSksYT1jLmxlbmd0aCxhIT09T2JqZWN0LmtleXMocykubGVuZ3RoKXJldHVybiExO2Zvcih1PWE7dS0tIT09MDspaWYoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLGNbdV0pKXJldHVybiExO2lmKHAmJmkgaW5zdGFuY2VvZiBFbGVtZW50KXJldHVybiExO2Zvcih1PWE7dS0tIT09MDspaWYoISgoY1t1XT09PSJfb3duZXIifHxjW3VdPT09Il9fdiJ8fGNbdV09PT0iX19vIikmJmkuJCR0eXBlb2YpJiYhdChpW2NbdV1dLHNbY1t1XV0pKXJldHVybiExO3JldHVybiEwfXJldHVybiBpIT09aSYmcyE9PXN9eS5leHBvcnRzPWZ1bmN0aW9uKHMsYSl7dHJ5e3JldHVybiB0KHMsYSl9Y2F0Y2godSl7aWYoKHUubWVzc2FnZXx8IiIpLm1hdGNoKC9zdGFja3xyZWN1cnNpb24vaSkpcmV0dXJuIGNvbnNvbGUud2FybigicmVhY3QtZmFzdC1jb21wYXJlIGNhbm5vdCBoYW5kbGUgY2lyY3VsYXIgcmVmcyIpLCExO3Rocm93IHV9fX0sNjk5MjE6ZnVuY3Rpb24oeSxwKXsidXNlIHN0cmljdCI7dmFyIGU9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLmZvcixyPWU/U3ltYm9sLmZvcigicmVhY3QuZWxlbWVudCIpOjYwMTAzLG49ZT9TeW1ib2wuZm9yKCJyZWFjdC5wb3J0YWwiKTo2MDEwNix0PWU/U3ltYm9sLmZvcigicmVhY3QuZnJhZ21lbnQiKTo2MDEwNyxpPWU/U3ltYm9sLmZvcigicmVhY3Quc3RyaWN0X21vZGUiKTo2MDEwOCxzPWU/U3ltYm9sLmZvcigicmVhY3QucHJvZmlsZXIiKTo2MDExNCxhPWU/U3ltYm9sLmZvcigicmVhY3QucHJvdmlkZXIiKTo2MDEwOSx1PWU/U3ltYm9sLmZvcigicmVhY3QuY29udGV4dCIpOjYwMTEwLGM9ZT9TeW1ib2wuZm9yKCJyZWFjdC5hc3luY19tb2RlIik6NjAxMTEsaD1lP1N5bWJvbC5mb3IoInJlYWN0LmNvbmN1cnJlbnRfbW9kZSIpOjYwMTExLGQ9ZT9TeW1ib2wuZm9yKCJyZWFjdC5mb3J3YXJkX3JlZiIpOjYwMTEyLG09ZT9TeW1ib2wuZm9yKCJyZWFjdC5zdXNwZW5zZSIpOjYwMTEzLEM9ZT9TeW1ib2wuZm9yKCJyZWFjdC5zdXNwZW5zZV9saXN0Iik6NjAxMjAsZz1lP1N5bWJvbC5mb3IoInJlYWN0Lm1lbW8iKTo2MDExNSx3PWU/U3ltYm9sLmZvcigicmVhY3QubGF6eSIpOjYwMTE2LEU9ZT9TeW1ib2wuZm9yKCJyZWFjdC5ibG9jayIpOjYwMTIxLHg9ZT9TeW1ib2wuZm9yKCJyZWFjdC5mdW5kYW1lbnRhbCIpOjYwMTE3LE89ZT9TeW1ib2wuZm9yKCJyZWFjdC5yZXNwb25kZXIiKTo2MDExOCxUPWU/U3ltYm9sLmZvcigicmVhY3Quc2NvcGUiKTo2MDExOTtmdW5jdGlvbiBTKEkpe2lmKHR5cGVvZiBJPT0ib2JqZWN0IiYmSSE9PW51bGwpe3ZhciBSPUkuJCR0eXBlb2Y7c3dpdGNoKFIpe2Nhc2Ugcjpzd2l0Y2goST1JLnR5cGUsSSl7Y2FzZSBjOmNhc2UgaDpjYXNlIHQ6Y2FzZSBzOmNhc2UgaTpjYXNlIG06cmV0dXJuIEk7ZGVmYXVsdDpzd2l0Y2goST1JJiZJLiQkdHlwZW9mLEkpe2Nhc2UgdTpjYXNlIGQ6Y2FzZSB3OmNhc2UgZzpjYXNlIGE6cmV0dXJuIEk7ZGVmYXVsdDpyZXR1cm4gUn19Y2FzZSBuOnJldHVybiBSfX19ZnVuY3Rpb24gTChJKXtyZXR1cm4gUyhJKT09PWh9cC5Bc3luY01vZGU9YyxwLkNvbmN1cnJlbnRNb2RlPWgscC5Db250ZXh0Q29uc3VtZXI9dSxwLkNvbnRleHRQcm92aWRlcj1hLHAuRWxlbWVudD1yLHAuRm9yd2FyZFJlZj1kLHAuRnJhZ21lbnQ9dCxwLkxhenk9dyxwLk1lbW89ZyxwLlBvcnRhbD1uLHAuUHJvZmlsZXI9cyxwLlN0cmljdE1vZGU9aSxwLlN1c3BlbnNlPW0scC5pc0FzeW5jTW9kZT1mdW5jdGlvbihJKXtyZXR1cm4gTChJKXx8UyhJKT09PWN9LHAuaXNDb25jdXJyZW50TW9kZT1MLHAuaXNDb250ZXh0Q29uc3VtZXI9ZnVuY3Rpb24oSSl7cmV0dXJuIFMoSSk9PT11fSxwLmlzQ29udGV4dFByb3ZpZGVyPWZ1bmN0aW9uKEkpe3JldHVybiBTKEkpPT09YX0scC5pc0VsZW1lbnQ9ZnVuY3Rpb24oSSl7cmV0dXJuIHR5cGVvZiBJPT0ib2JqZWN0IiYmSSE9PW51bGwmJkkuJCR0eXBlb2Y9PT1yfSxwLmlzRm9yd2FyZFJlZj1mdW5jdGlvbihJKXtyZXR1cm4gUyhJKT09PWR9LHAuaXNGcmFnbWVudD1mdW5jdGlvbihJKXtyZXR1cm4gUyhJKT09PXR9LHAuaXNMYXp5PWZ1bmN0aW9uKEkpe3JldHVybiBTKEkpPT09d30scC5pc01lbW89ZnVuY3Rpb24oSSl7cmV0dXJuIFMoSSk9PT1nfSxwLmlzUG9ydGFsPWZ1bmN0aW9uKEkpe3JldHVybiBTKEkpPT09bn0scC5pc1Byb2ZpbGVyPWZ1bmN0aW9uKEkpe3JldHVybiBTKEkpPT09c30scC5pc1N0cmljdE1vZGU9ZnVuY3Rpb24oSSl7cmV0dXJuIFMoSSk9PT1pfSxwLmlzU3VzcGVuc2U9ZnVuY3Rpb24oSSl7cmV0dXJuIFMoSSk9PT1tfSxwLmlzVmFsaWRFbGVtZW50VHlwZT1mdW5jdGlvbihJKXtyZXR1cm4gdHlwZW9mIEk9PSJzdHJpbmcifHx0eXBlb2YgST09ImZ1bmN0aW9uInx8ST09PXR8fEk9PT1ofHxJPT09c3x8ST09PWl8fEk9PT1tfHxJPT09Q3x8dHlwZW9mIEk9PSJvYmplY3QiJiZJIT09bnVsbCYmKEkuJCR0eXBlb2Y9PT13fHxJLiQkdHlwZW9mPT09Z3x8SS4kJHR5cGVvZj09PWF8fEkuJCR0eXBlb2Y9PT11fHxJLiQkdHlwZW9mPT09ZHx8SS4kJHR5cGVvZj09PXh8fEkuJCR0eXBlb2Y9PT1PfHxJLiQkdHlwZW9mPT09VHx8SS4kJHR5cGVvZj09PUUpfSxwLnR5cGVPZj1TfSw1OTg2NDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3kuZXhwb3J0cz1lKDY5OTIxKX0sOTY5NzQ6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7RjA6ZnVuY3Rpb24oKXtyZXR1cm4ga30sRmc6ZnVuY3Rpb24oKXtyZXR1cm4gRmV9LEduOmZ1bmN0aW9uKCl7cmV0dXJuIGR9LFRIOmZ1bmN0aW9uKCl7cmV0dXJuIEt9LFVPOmZ1bmN0aW9uKCl7cmV0dXJuIEJlfSxWJDpmdW5jdGlvbigpe3JldHVybiBvdH0sV1U6ZnVuY3Rpb24oKXtyZXR1cm4gWWV9LGJ4OmZ1bmN0aW9uKCl7cmV0dXJuIEVlfSxmcDpmdW5jdGlvbigpe3JldHVybiBtfSxqMzpmdW5jdGlvbigpe3JldHVybiBTZX0sb1E6ZnVuY3Rpb24oKXtyZXR1cm4gWn0sczA6ZnVuY3Rpb24oKXtyZXR1cm4gb2V9fSk7dmFyIHI9ZSg1NTY0OCksbj1lKDY3Mjk0KTtjb25zdCB0PSgwLG4uY3JlYXRlQ29udGV4dCkobnVsbCksaT0oMCxuLmNyZWF0ZUNvbnRleHQpKG51bGwpLHM9KDAsbi5jcmVhdGVDb250ZXh0KSh7b3V0bGV0Om51bGwsbWF0Y2hlczpbXX0pO2Z1bmN0aW9uIGEoTixRKXtpZighTil0aHJvdyBuZXcgRXJyb3IoUSl9ZnVuY3Rpb24gdShOLFEpe2lmKCFOKXt0eXBlb2YgY29uc29sZSE9InVuZGVmaW5lZCImJmNvbnNvbGUud2FybihRKTt0cnl7dGhyb3cgbmV3IEVycm9yKFEpfWNhdGNoKHVlKXt9fX1jb25zdCBjPXt9O2Z1bmN0aW9uIGgoTixRLHVlKXshUSYmIWNbTl0mJihjW05dPSEwKX1mdW5jdGlvbiBkKE4sUSl7cmV0dXJuIFE9PT12b2lkIDAmJihRPXt9KSxOLnJlcGxhY2UoLzooXHcrKS9nLCh1ZSwkKT0+KFFbJF09PW51bGwmJmEoITEpLFFbJF0pKS5yZXBsYWNlKC9cLypcKiQvLHVlPT5RWyIqIl09PW51bGw/IiI6UVsiKiJdLnJlcGxhY2UoL15cLyovLCIvIikpfWZ1bmN0aW9uIG0oTixRLHVlKXt1ZT09PXZvaWQgMCYmKHVlPSIvIik7bGV0ICQ9dHlwZW9mIFE9PSJzdHJpbmciPygwLHIuY1ApKFEpOlEsXz1jZSgkLnBhdGhuYW1lfHwiLyIsdWUpO2lmKF89PW51bGwpcmV0dXJuIG51bGw7bGV0IHBlPUMoTik7ZyhwZSk7bGV0IHJlPW51bGw7Zm9yKGxldCBhZT0wO3JlPT1udWxsJiZhZTxwZS5sZW5ndGg7KythZSlyZT16KHBlW2FlXSxfKTtyZXR1cm4gcmV9ZnVuY3Rpb24gQyhOLFEsdWUsJCl7cmV0dXJuIFE9PT12b2lkIDAmJihRPVtdKSx1ZT09PXZvaWQgMCYmKHVlPVtdKSwkPT09dm9pZCAwJiYoJD0iIiksTi5mb3JFYWNoKChfLHBlKT0+e2xldCByZT17cmVsYXRpdmVQYXRoOl8ucGF0aHx8IiIsY2FzZVNlbnNpdGl2ZTpfLmNhc2VTZW5zaXRpdmU9PT0hMCxjaGlsZHJlbkluZGV4OnBlLHJvdXRlOl99O3JlLnJlbGF0aXZlUGF0aC5zdGFydHNXaXRoKCIvIikmJihyZS5yZWxhdGl2ZVBhdGguc3RhcnRzV2l0aCgkKXx8YSghMSkscmUucmVsYXRpdmVQYXRoPXJlLnJlbGF0aXZlUGF0aC5zbGljZSgkLmxlbmd0aCkpO2xldCBhZT1XKFskLHJlLnJlbGF0aXZlUGF0aF0pLHdlPXVlLmNvbmNhdChyZSk7Xy5jaGlsZHJlbiYmXy5jaGlsZHJlbi5sZW5ndGg+MCYmKF8uaW5kZXg9PT0hMCYmYSghMSksQyhfLmNoaWxkcmVuLFEsd2UsYWUpKSwhKF8ucGF0aD09bnVsbCYmIV8uaW5kZXgpJiZRLnB1c2goe3BhdGg6YWUsc2NvcmU6SShhZSxfLmluZGV4KSxyb3V0ZXNNZXRhOndlfSl9KSxRfWZ1bmN0aW9uIGcoTil7Ti5zb3J0KChRLHVlKT0+US5zY29yZSE9PXVlLnNjb3JlP3VlLnNjb3JlLVEuc2NvcmU6UihRLnJvdXRlc01ldGEubWFwKCQ9PiQuY2hpbGRyZW5JbmRleCksdWUucm91dGVzTWV0YS5tYXAoJD0+JC5jaGlsZHJlbkluZGV4KSkpfWNvbnN0IHc9L146XHcrJC8sRT0zLHg9MixPPTEsVD0xMCxTPS0yLEw9Tj0+Tj09PSIqIjtmdW5jdGlvbiBJKE4sUSl7bGV0IHVlPU4uc3BsaXQoIi8iKSwkPXVlLmxlbmd0aDtyZXR1cm4gdWUuc29tZShMKSYmKCQrPVMpLFEmJigkKz14KSx1ZS5maWx0ZXIoXz0+IUwoXykpLnJlZHVjZSgoXyxwZSk9Pl8rKHcudGVzdChwZSk/RTpwZT09PSIiP086VCksJCl9ZnVuY3Rpb24gUihOLFEpe3JldHVybiBOLmxlbmd0aD09PVEubGVuZ3RoJiZOLnNsaWNlKDAsLTEpLmV2ZXJ5KCgkLF8pPT4kPT09UVtfXSk/TltOLmxlbmd0aC0xXS1RW1EubGVuZ3RoLTFdOjB9ZnVuY3Rpb24geihOLFEpe2xldHtyb3V0ZXNNZXRhOnVlfT1OLCQ9e30sXz0iLyIscGU9W107Zm9yKGxldCByZT0wO3JlPHVlLmxlbmd0aDsrK3JlKXtsZXQgYWU9dWVbcmVdLHdlPXJlPT09dWUubGVuZ3RoLTEsTGU9Xz09PSIvIj9ROlEuc2xpY2UoXy5sZW5ndGgpfHwiLyIsTWU9Ryh7cGF0aDphZS5yZWxhdGl2ZVBhdGgsY2FzZVNlbnNpdGl2ZTphZS5jYXNlU2Vuc2l0aXZlLGVuZDp3ZX0sTGUpO2lmKCFNZSlyZXR1cm4gbnVsbDtPYmplY3QuYXNzaWduKCQsTWUucGFyYW1zKTtsZXQgYmU9YWUucm91dGU7cGUucHVzaCh7cGFyYW1zOiQscGF0aG5hbWU6VyhbXyxNZS5wYXRobmFtZV0pLHBhdGhuYW1lQmFzZTpqKFcoW18sTWUucGF0aG5hbWVCYXNlXSkpLHJvdXRlOmJlfSksTWUucGF0aG5hbWVCYXNlIT09Ii8iJiYoXz1XKFtfLE1lLnBhdGhuYW1lQmFzZV0pKX1yZXR1cm4gcGV9ZnVuY3Rpb24gRyhOLFEpe3R5cGVvZiBOPT0ic3RyaW5nIiYmKE49e3BhdGg6TixjYXNlU2Vuc2l0aXZlOiExLGVuZDohMH0pO2xldFt1ZSwkXT1ZKE4ucGF0aCxOLmNhc2VTZW5zaXRpdmUsTi5lbmQpLF89US5tYXRjaCh1ZSk7aWYoIV8pcmV0dXJuIG51bGw7bGV0IHBlPV9bMF0scmU9cGUucmVwbGFjZSgvKC4pXC8rJC8sIiQxIiksYWU9Xy5zbGljZSgxKTtyZXR1cm57cGFyYW1zOiQucmVkdWNlKChMZSxNZSxiZSk9PntpZihNZT09PSIqIil7bGV0ICRlPWFlW2JlXXx8IiI7cmU9cGUuc2xpY2UoMCxwZS5sZW5ndGgtJGUubGVuZ3RoKS5yZXBsYWNlKC8oLilcLyskLywiJDEiKX1yZXR1cm4gTGVbTWVdPWVlKGFlW2JlXXx8IiIsTWUpLExlfSx7fSkscGF0aG5hbWU6cGUscGF0aG5hbWVCYXNlOnJlLHBhdHRlcm46Tn19ZnVuY3Rpb24gWShOLFEsdWUpe1E9PT12b2lkIDAmJihRPSExKSx1ZT09PXZvaWQgMCYmKHVlPSEwKTtsZXQgJD1bXSxfPSJeIitOLnJlcGxhY2UoL1wvKlwqPyQvLCIiKS5yZXBsYWNlKC9eXC8qLywiLyIpLnJlcGxhY2UoL1tcXC4qK14kP3t9fCgpW1xdXS9nLCJcXCQmIikucmVwbGFjZSgvOihcdyspL2csKHJlLGFlKT0+KCQucHVzaChhZSksIihbXlxcL10rKSIpKTtyZXR1cm4gTi5lbmRzV2l0aCgiKiIpPygkLnB1c2goIioiKSxfKz1OPT09IioifHxOPT09Ii8qIj8iKC4qKSQiOiIoPzpcXC8oLispfFxcLyopJCIpOl8rPXVlPyJcXC8qJCI6Iig/Oig/PVsufi1dfCVbMC05QS1GXXsyfSl8XFxifFxcL3wkKSIsW25ldyBSZWdFeHAoXyxRP3ZvaWQgMDoiaSIpLCRdfWZ1bmN0aW9uIGVlKE4sUSl7dHJ5e3JldHVybiBkZWNvZGVVUklDb21wb25lbnQoTil9Y2F0Y2godWUpe3JldHVybiBOfX1mdW5jdGlvbiBKKE4sUSl7UT09PXZvaWQgMCYmKFE9Ii8iKTtsZXR7cGF0aG5hbWU6dWUsc2VhcmNoOiQ9IiIsaGFzaDpfPSIifT10eXBlb2YgTj09InN0cmluZyI/KDAsci5jUCkoTik6TjtyZXR1cm57cGF0aG5hbWU6dWU/dWUuc3RhcnRzV2l0aCgiLyIpP3VlOm1lKHVlLFEpOlEsc2VhcmNoOkQoJCksaGFzaDpWKF8pfX1mdW5jdGlvbiBtZShOLFEpe2xldCB1ZT1RLnJlcGxhY2UoL1wvKyQvLCIiKS5zcGxpdCgiLyIpO3JldHVybiBOLnNwbGl0KCIvIikuZm9yRWFjaChfPT57Xz09PSIuLiI/dWUubGVuZ3RoPjEmJnVlLnBvcCgpOl8hPT0iLiImJnVlLnB1c2goXyl9KSx1ZS5sZW5ndGg+MT91ZS5qb2luKCIvIik6Ii8ifWZ1bmN0aW9uIHRlKE4sUSx1ZSl7bGV0ICQ9dHlwZW9mIE49PSJzdHJpbmciPygwLHIuY1ApKE4pOk4sXz1OPT09IiJ8fCQucGF0aG5hbWU9PT0iIj8iLyI6JC5wYXRobmFtZSxwZTtpZihfPT1udWxsKXBlPXVlO2Vsc2V7bGV0IGFlPVEubGVuZ3RoLTE7aWYoXy5zdGFydHNXaXRoKCIuLiIpKXtsZXQgd2U9Xy5zcGxpdCgiLyIpO2Zvcig7d2VbMF09PT0iLi4iOyl3ZS5zaGlmdCgpLGFlLT0xOyQucGF0aG5hbWU9d2Uuam9pbigiLyIpfXBlPWFlPj0wP1FbYWVdOiIvIn1sZXQgcmU9SigkLHBlKTtyZXR1cm4gXyYmXyE9PSIvIiYmXy5lbmRzV2l0aCgiLyIpJiYhcmUucGF0aG5hbWUuZW5kc1dpdGgoIi8iKSYmKHJlLnBhdGhuYW1lKz0iLyIpLHJlfWZ1bmN0aW9uIGxlKE4pe3JldHVybiBOPT09IiJ8fE4ucGF0aG5hbWU9PT0iIj8iLyI6dHlwZW9mIE49PSJzdHJpbmciPygwLHIuY1ApKE4pLnBhdGhuYW1lOk4ucGF0aG5hbWV9ZnVuY3Rpb24gY2UoTixRKXtpZihRPT09Ii8iKXJldHVybiBOO2lmKCFOLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChRLnRvTG93ZXJDYXNlKCkpKXJldHVybiBudWxsO2xldCB1ZT1OLmNoYXJBdChRLmxlbmd0aCk7cmV0dXJuIHVlJiZ1ZSE9PSIvIj9udWxsOk4uc2xpY2UoUS5sZW5ndGgpfHwiLyJ9Y29uc3QgVz1OPT5OLmpvaW4oIi8iKS5yZXBsYWNlKC9cL1wvKy9nLCIvIiksaj1OPT5OLnJlcGxhY2UoL1wvKyQvLCIiKS5yZXBsYWNlKC9eXC8qLywiLyIpLEQ9Tj0+IU58fE49PT0iPyI/IiI6Ti5zdGFydHNXaXRoKCI/Iik/TjoiPyIrTixWPU49PiFOfHxOPT09IiMiPyIiOk4uc3RhcnRzV2l0aCgiIyIpP046IiMiK047ZnVuY3Rpb24gWihOKXtQKCl8fGEoITEpO2xldHtiYXNlbmFtZTpRLG5hdmlnYXRvcjp1ZX09KDAsbi51c2VDb250ZXh0KSh0KSx7aGFzaDokLHBhdGhuYW1lOl8sc2VhcmNoOnBlfT1ZZShOKSxyZT1fO2lmKFEhPT0iLyIpe2xldCBhZT1sZShOKSx3ZT1hZSE9bnVsbCYmYWUuZW5kc1dpdGgoIi8iKTtyZT1fPT09Ii8iP1ErKHdlPyIvIjoiIik6VyhbUSxfXSl9cmV0dXJuIHVlLmNyZWF0ZUhyZWYoe3BhdGhuYW1lOnJlLHNlYXJjaDpwZSxoYXNoOiR9KX1mdW5jdGlvbiBQKCl7cmV0dXJuKDAsbi51c2VDb250ZXh0KShpKSE9bnVsbH1mdW5jdGlvbiBLKCl7cmV0dXJuIFAoKXx8YSghMSksKDAsbi51c2VDb250ZXh0KShpKS5sb2NhdGlvbn1mdW5jdGlvbiBzZSgpe3JldHVybiB1c2VDb250ZXh0KGkpLm5hdmlnYXRpb25UeXBlfWZ1bmN0aW9uIG5lKE4pe1AoKXx8YSghMSk7bGV0e3BhdGhuYW1lOlF9PUsoKTtyZXR1cm4gdXNlTWVtbygoKT0+RyhOLFEpLFtRLE5dKX1mdW5jdGlvbiBvZSgpe1AoKXx8YSghMSk7bGV0e2Jhc2VuYW1lOk4sbmF2aWdhdG9yOlF9PSgwLG4udXNlQ29udGV4dCkodCkse21hdGNoZXM6dWV9PSgwLG4udXNlQ29udGV4dCkocykse3BhdGhuYW1lOiR9PUsoKSxfPUpTT04uc3RyaW5naWZ5KHVlLm1hcChhZT0+YWUucGF0aG5hbWVCYXNlKSkscGU9KDAsbi51c2VSZWYpKCExKTtyZXR1cm4oMCxuLnVzZUVmZmVjdCkoKCk9PntwZS5jdXJyZW50PSEwfSksKDAsbi51c2VDYWxsYmFjaykoZnVuY3Rpb24oYWUsd2Upe2lmKHdlPT09dm9pZCAwJiYod2U9e30pLCFwZS5jdXJyZW50KXJldHVybjtpZih0eXBlb2YgYWU9PSJudW1iZXIiKXtRLmdvKGFlKTtyZXR1cm59bGV0IExlPXRlKGFlLEpTT04ucGFyc2UoXyksJCk7TiE9PSIvIiYmKExlLnBhdGhuYW1lPVcoW04sTGUucGF0aG5hbWVdKSksKHdlLnJlcGxhY2U/US5yZXBsYWNlOlEucHVzaCkoTGUsd2Uuc3RhdGUpfSxbTixRLF8sJF0pfWNvbnN0IGZlPSgwLG4uY3JlYXRlQ29udGV4dCkobnVsbCk7ZnVuY3Rpb24gRWUoKXtyZXR1cm4oMCxuLnVzZUNvbnRleHQpKGZlKX1mdW5jdGlvbiBSZShOKXtsZXQgUT0oMCxuLnVzZUNvbnRleHQpKHMpLm91dGxldDtyZXR1cm4gUSYmKDAsbi5jcmVhdGVFbGVtZW50KShmZS5Qcm92aWRlcix7dmFsdWU6Tn0sUSl9ZnVuY3Rpb24gQmUoKXtsZXR7bWF0Y2hlczpOfT0oMCxuLnVzZUNvbnRleHQpKHMpLFE9TltOLmxlbmd0aC0xXTtyZXR1cm4gUT9RLnBhcmFtczp7fX1mdW5jdGlvbiBZZShOKXtsZXR7bWF0Y2hlczpRfT0oMCxuLnVzZUNvbnRleHQpKHMpLHtwYXRobmFtZTp1ZX09SygpLCQ9SlNPTi5zdHJpbmdpZnkoUS5tYXAoXz0+Xy5wYXRobmFtZUJhc2UpKTtyZXR1cm4oMCxuLnVzZU1lbW8pKCgpPT50ZShOLEpTT04ucGFyc2UoJCksdWUpLFtOLCQsdWVdKX1mdW5jdGlvbiBvdChOLFEpe1AoKXx8YSghMSk7bGV0e21hdGNoZXM6dWV9PSgwLG4udXNlQ29udGV4dCkocyksJD11ZVt1ZS5sZW5ndGgtMV0sXz0kPyQucGFyYW1zOnt9LHBlPSQ/JC5wYXRobmFtZToiLyIscmU9JD8kLnBhdGhuYW1lQmFzZToiLyIsYWU9JCYmJC5yb3V0ZSx3ZT1LKCksTGU7aWYoUSl7dmFyIE1lO2xldCBBZT10eXBlb2YgUT09InN0cmluZyI/KDAsci5jUCkoUSk6UTtyZT09PSIvInx8KE1lPUFlLnBhdGhuYW1lKSE9bnVsbCYmTWUuc3RhcnRzV2l0aChyZSl8fGEoITEpLExlPUFlfWVsc2UgTGU9d2U7bGV0IGJlPUxlLnBhdGhuYW1lfHwiLyIsJGU9cmU9PT0iLyI/YmU6YmUuc2xpY2UocmUubGVuZ3RoKXx8Ii8iLGtlPW0oTix7cGF0aG5hbWU6JGV9KTtyZXR1cm4gcWUoa2UmJmtlLm1hcChBZT0+T2JqZWN0LmFzc2lnbih7fSxBZSx7cGFyYW1zOk9iamVjdC5hc3NpZ24oe30sXyxBZS5wYXJhbXMpLHBhdGhuYW1lOlcoW3JlLEFlLnBhdGhuYW1lXSkscGF0aG5hbWVCYXNlOkFlLnBhdGhuYW1lQmFzZT09PSIvIj9yZTpXKFtyZSxBZS5wYXRobmFtZUJhc2VdKX0pKSx1ZSl9ZnVuY3Rpb24gcWUoTixRKXtyZXR1cm4gUT09PXZvaWQgMCYmKFE9W10pLE49PW51bGw/bnVsbDpOLnJlZHVjZVJpZ2h0KCh1ZSwkLF8pPT4oMCxuLmNyZWF0ZUVsZW1lbnQpKHMuUHJvdmlkZXIse2NoaWxkcmVuOiQucm91dGUuZWxlbWVudCE9PXZvaWQgMD8kLnJvdXRlLmVsZW1lbnQ6dWUsdmFsdWU6e291dGxldDp1ZSxtYXRjaGVzOlEuY29uY2F0KE4uc2xpY2UoMCxfKzEpKX19KSxudWxsKX1mdW5jdGlvbiBfZShOKXtsZXR7YmFzZW5hbWU6USxjaGlsZHJlbjp1ZSxpbml0aWFsRW50cmllczokLGluaXRpYWxJbmRleDpffT1OLHBlPXVzZVJlZigpO3BlLmN1cnJlbnQ9PW51bGwmJihwZS5jdXJyZW50PWNyZWF0ZU1lbW9yeUhpc3Rvcnkoe2luaXRpYWxFbnRyaWVzOiQsaW5pdGlhbEluZGV4Ol99KSk7bGV0IHJlPXBlLmN1cnJlbnQsW2FlLHdlXT11c2VTdGF0ZSh7YWN0aW9uOnJlLmFjdGlvbixsb2NhdGlvbjpyZS5sb2NhdGlvbn0pO3JldHVybiB1c2VMYXlvdXRFZmZlY3QoKCk9PnJlLmxpc3Rlbih3ZSksW3JlXSksY3JlYXRlRWxlbWVudChrLHtiYXNlbmFtZTpRLGNoaWxkcmVuOnVlLGxvY2F0aW9uOmFlLmxvY2F0aW9uLG5hdmlnYXRpb25UeXBlOmFlLmFjdGlvbixuYXZpZ2F0b3I6cmV9KX1mdW5jdGlvbiBGZShOKXtsZXR7dG86USxyZXBsYWNlOnVlLHN0YXRlOiR9PU47UCgpfHxhKCExKTtsZXQgXz1vZSgpO3JldHVybigwLG4udXNlRWZmZWN0KSgoKT0+e18oUSx7cmVwbGFjZTp1ZSxzdGF0ZTokfSl9KSxudWxsfWZ1bmN0aW9uIFNlKE4pe3JldHVybiBSZShOLmNvbnRleHQpfWZ1bmN0aW9uIHEoTil7YSghMSl9ZnVuY3Rpb24gayhOKXtsZXR7YmFzZW5hbWU6UT0iLyIsY2hpbGRyZW46dWU9bnVsbCxsb2NhdGlvbjokLG5hdmlnYXRpb25UeXBlOl89ci5hVS5Qb3AsbmF2aWdhdG9yOnBlLHN0YXRpYzpyZT0hMX09TjtQKCkmJmEoITEpO2xldCBhZT1qKFEpLHdlPSgwLG4udXNlTWVtbykoKCk9Pih7YmFzZW5hbWU6YWUsbmF2aWdhdG9yOnBlLHN0YXRpYzpyZX0pLFthZSxwZSxyZV0pO3R5cGVvZiAkPT0ic3RyaW5nIiYmKCQ9KDAsci5jUCkoJCkpO2xldHtwYXRobmFtZTpMZT0iLyIsc2VhcmNoOk1lPSIiLGhhc2g6YmU9IiIsc3RhdGU6JGU9bnVsbCxrZXk6a2U9ImRlZmF1bHQifT0kLEFlPSgwLG4udXNlTWVtbykoKCk9PntsZXQgdHQ9Y2UoTGUsYWUpO3JldHVybiB0dD09bnVsbD9udWxsOntwYXRobmFtZTp0dCxzZWFyY2g6TWUsaGFzaDpiZSxzdGF0ZTokZSxrZXk6a2V9fSxbYWUsTGUsTWUsYmUsJGUsa2VdKTtyZXR1cm4gQWU9PW51bGw/bnVsbDooMCxuLmNyZWF0ZUVsZW1lbnQpKHQuUHJvdmlkZXIse3ZhbHVlOndlfSwoMCxuLmNyZWF0ZUVsZW1lbnQpKGkuUHJvdmlkZXIse2NoaWxkcmVuOnVlLHZhbHVlOntsb2NhdGlvbjpBZSxuYXZpZ2F0aW9uVHlwZTpffX0pKX1mdW5jdGlvbiBNKE4pe2xldHtjaGlsZHJlbjpRLGxvY2F0aW9uOnVlfT1OO3JldHVybiBvdChBKFEpLHVlKX1mdW5jdGlvbiBBKE4pe2xldCBRPVtdO3JldHVybiBDaGlsZHJlbi5mb3JFYWNoKE4sdWU9PntpZighaXNWYWxpZEVsZW1lbnQodWUpKXJldHVybjtpZih1ZS50eXBlPT09RnJhZ21lbnQpe1EucHVzaC5hcHBseShRLEEodWUucHJvcHMuY2hpbGRyZW4pKTtyZXR1cm59dWUudHlwZSE9PXEmJmEoITEpO2xldCAkPXtjYXNlU2Vuc2l0aXZlOnVlLnByb3BzLmNhc2VTZW5zaXRpdmUsZWxlbWVudDp1ZS5wcm9wcy5lbGVtZW50LGluZGV4OnVlLnByb3BzLmluZGV4LHBhdGg6dWUucHJvcHMucGF0aH07dWUucHJvcHMuY2hpbGRyZW4mJigkLmNoaWxkcmVuPUEodWUucHJvcHMuY2hpbGRyZW4pKSxRLnB1c2goJCl9KSxRfWZ1bmN0aW9uIFUoTil7cmV0dXJuIHFlKE4pfX0sNzUyNTE6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDY3Mjk0KSxuPVN5bWJvbC5mb3IoInJlYWN0LmVsZW1lbnQiKSx0PVN5bWJvbC5mb3IoInJlYWN0LmZyYWdtZW50IiksaT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LHM9ci5fX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRC5SZWFjdEN1cnJlbnRPd25lcixhPXtrZXk6ITAscmVmOiEwLF9fc2VsZjohMCxfX3NvdXJjZTohMH07ZnVuY3Rpb24gdShjLGgsZCl7dmFyIG0sQz17fSxnPW51bGwsdz1udWxsO2QhPT12b2lkIDAmJihnPSIiK2QpLGgua2V5IT09dm9pZCAwJiYoZz0iIitoLmtleSksaC5yZWYhPT12b2lkIDAmJih3PWgucmVmKTtmb3IobSBpbiBoKWkuY2FsbChoLG0pJiYhYS5oYXNPd25Qcm9wZXJ0eShtKSYmKENbbV09aFttXSk7aWYoYyYmYy5kZWZhdWx0UHJvcHMpZm9yKG0gaW4gaD1jLmRlZmF1bHRQcm9wcyxoKUNbbV09PT12b2lkIDAmJihDW21dPWhbbV0pO3JldHVybnskJHR5cGVvZjpuLHR5cGU6YyxrZXk6ZyxyZWY6dyxwcm9wczpDLF9vd25lcjpzLmN1cnJlbnR9fXAuRnJhZ21lbnQ9dCxwLmpzeD11LHAuanN4cz11fSw3MjQwODpmdW5jdGlvbih5LHApeyJ1c2Ugc3RyaWN0Ijt2YXIgZT1TeW1ib2wuZm9yKCJyZWFjdC5lbGVtZW50Iikscj1TeW1ib2wuZm9yKCJyZWFjdC5wb3J0YWwiKSxuPVN5bWJvbC5mb3IoInJlYWN0LmZyYWdtZW50IiksdD1TeW1ib2wuZm9yKCJyZWFjdC5zdHJpY3RfbW9kZSIpLGk9U3ltYm9sLmZvcigicmVhY3QucHJvZmlsZXIiKSxzPVN5bWJvbC5mb3IoInJlYWN0LnByb3ZpZGVyIiksYT1TeW1ib2wuZm9yKCJyZWFjdC5jb250ZXh0IiksdT1TeW1ib2wuZm9yKCJyZWFjdC5mb3J3YXJkX3JlZiIpLGM9U3ltYm9sLmZvcigicmVhY3Quc3VzcGVuc2UiKSxoPVN5bWJvbC5mb3IoInJlYWN0Lm1lbW8iKSxkPVN5bWJvbC5mb3IoInJlYWN0LmxhenkiKSxtPVN5bWJvbC5pdGVyYXRvcjtmdW5jdGlvbiBDKFApe3JldHVybiBQPT09bnVsbHx8dHlwZW9mIFAhPSJvYmplY3QiP251bGw6KFA9bSYmUFttXXx8UFsiQEBpdGVyYXRvciJdLHR5cGVvZiBQPT0iZnVuY3Rpb24iP1A6bnVsbCl9dmFyIGc9e2lzTW91bnRlZDpmdW5jdGlvbigpe3JldHVybiExfSxlbnF1ZXVlRm9yY2VVcGRhdGU6ZnVuY3Rpb24oKXt9LGVucXVldWVSZXBsYWNlU3RhdGU6ZnVuY3Rpb24oKXt9LGVucXVldWVTZXRTdGF0ZTpmdW5jdGlvbigpe319LHc9T2JqZWN0LmFzc2lnbixFPXt9O2Z1bmN0aW9uIHgoUCxLLHNlKXt0aGlzLnByb3BzPVAsdGhpcy5jb250ZXh0PUssdGhpcy5yZWZzPUUsdGhpcy51cGRhdGVyPXNlfHxnfXgucHJvdG90eXBlLmlzUmVhY3RDb21wb25lbnQ9e30seC5wcm90b3R5cGUuc2V0U3RhdGU9ZnVuY3Rpb24oUCxLKXtpZih0eXBlb2YgUCE9Im9iamVjdCImJnR5cGVvZiBQIT0iZnVuY3Rpb24iJiZQIT1udWxsKXRocm93IEVycm9yKCJzZXRTdGF0ZSguLi4pOiB0YWtlcyBhbiBvYmplY3Qgb2Ygc3RhdGUgdmFyaWFibGVzIHRvIHVwZGF0ZSBvciBhIGZ1bmN0aW9uIHdoaWNoIHJldHVybnMgYW4gb2JqZWN0IG9mIHN0YXRlIHZhcmlhYmxlcy4iKTt0aGlzLnVwZGF0ZXIuZW5xdWV1ZVNldFN0YXRlKHRoaXMsUCxLLCJzZXRTdGF0ZSIpfSx4LnByb3RvdHlwZS5mb3JjZVVwZGF0ZT1mdW5jdGlvbihQKXt0aGlzLnVwZGF0ZXIuZW5xdWV1ZUZvcmNlVXBkYXRlKHRoaXMsUCwiZm9yY2VVcGRhdGUiKX07ZnVuY3Rpb24gTygpe31PLnByb3RvdHlwZT14LnByb3RvdHlwZTtmdW5jdGlvbiBUKFAsSyxzZSl7dGhpcy5wcm9wcz1QLHRoaXMuY29udGV4dD1LLHRoaXMucmVmcz1FLHRoaXMudXBkYXRlcj1zZXx8Z312YXIgUz1ULnByb3RvdHlwZT1uZXcgTztTLmNvbnN0cnVjdG9yPVQsdyhTLHgucHJvdG90eXBlKSxTLmlzUHVyZVJlYWN0Q29tcG9uZW50PSEwO3ZhciBMPUFycmF5LmlzQXJyYXksST1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LFI9e2N1cnJlbnQ6bnVsbH0sej17a2V5OiEwLHJlZjohMCxfX3NlbGY6ITAsX19zb3VyY2U6ITB9O2Z1bmN0aW9uIEcoUCxLLHNlKXt2YXIgbmUsb2U9e30sZmU9bnVsbCxFZT1udWxsO2lmKEshPW51bGwpZm9yKG5lIGluIEsucmVmIT09dm9pZCAwJiYoRWU9Sy5yZWYpLEsua2V5IT09dm9pZCAwJiYoZmU9IiIrSy5rZXkpLEspSS5jYWxsKEssbmUpJiYhei5oYXNPd25Qcm9wZXJ0eShuZSkmJihvZVtuZV09S1tuZV0pO3ZhciBSZT1hcmd1bWVudHMubGVuZ3RoLTI7aWYoUmU9PT0xKW9lLmNoaWxkcmVuPXNlO2Vsc2UgaWYoMTxSZSl7Zm9yKHZhciBCZT1BcnJheShSZSksWWU9MDtZZTxSZTtZZSsrKUJlW1llXT1hcmd1bWVudHNbWWUrMl07b2UuY2hpbGRyZW49QmV9aWYoUCYmUC5kZWZhdWx0UHJvcHMpZm9yKG5lIGluIFJlPVAuZGVmYXVsdFByb3BzLFJlKW9lW25lXT09PXZvaWQgMCYmKG9lW25lXT1SZVtuZV0pO3JldHVybnskJHR5cGVvZjplLHR5cGU6UCxrZXk6ZmUscmVmOkVlLHByb3BzOm9lLF9vd25lcjpSLmN1cnJlbnR9fWZ1bmN0aW9uIFkoUCxLKXtyZXR1cm57JCR0eXBlb2Y6ZSx0eXBlOlAudHlwZSxrZXk6SyxyZWY6UC5yZWYscHJvcHM6UC5wcm9wcyxfb3duZXI6UC5fb3duZXJ9fWZ1bmN0aW9uIGVlKFApe3JldHVybiB0eXBlb2YgUD09Im9iamVjdCImJlAhPT1udWxsJiZQLiQkdHlwZW9mPT09ZX1mdW5jdGlvbiBKKFApe3ZhciBLPXsiPSI6Ij0wIiwiOiI6Ij0yIn07cmV0dXJuIiQiK1AucmVwbGFjZSgvWz06XS9nLGZ1bmN0aW9uKHNlKXtyZXR1cm4gS1tzZV19KX12YXIgbWU9L1wvKy9nO2Z1bmN0aW9uIHRlKFAsSyl7cmV0dXJuIHR5cGVvZiBQPT0ib2JqZWN0IiYmUCE9PW51bGwmJlAua2V5IT1udWxsP0ooIiIrUC5rZXkpOksudG9TdHJpbmcoMzYpfWZ1bmN0aW9uIGxlKFAsSyxzZSxuZSxvZSl7dmFyIGZlPXR5cGVvZiBQOyhmZT09PSJ1bmRlZmluZWQifHxmZT09PSJib29sZWFuIikmJihQPW51bGwpO3ZhciBFZT0hMTtpZihQPT09bnVsbClFZT0hMDtlbHNlIHN3aXRjaChmZSl7Y2FzZSJzdHJpbmciOmNhc2UibnVtYmVyIjpFZT0hMDticmVhaztjYXNlIm9iamVjdCI6c3dpdGNoKFAuJCR0eXBlb2Ype2Nhc2UgZTpjYXNlIHI6RWU9ITB9fWlmKEVlKXJldHVybiBFZT1QLG9lPW9lKEVlKSxQPW5lPT09IiI/Ii4iK3RlKEVlLDApOm5lLEwob2UpPyhzZT0iIixQIT1udWxsJiYoc2U9UC5yZXBsYWNlKG1lLCIkJi8iKSsiLyIpLGxlKG9lLEssc2UsIiIsZnVuY3Rpb24oWWUpe3JldHVybiBZZX0pKTpvZSE9bnVsbCYmKGVlKG9lKSYmKG9lPVkob2Usc2UrKCFvZS5rZXl8fEVlJiZFZS5rZXk9PT1vZS5rZXk/IiI6KCIiK29lLmtleSkucmVwbGFjZShtZSwiJCYvIikrIi8iKStQKSksSy5wdXNoKG9lKSksMTtpZihFZT0wLG5lPW5lPT09IiI/Ii4iOm5lKyI6IixMKFApKWZvcih2YXIgUmU9MDtSZTxQLmxlbmd0aDtSZSsrKXtmZT1QW1JlXTt2YXIgQmU9bmUrdGUoZmUsUmUpO0VlKz1sZShmZSxLLHNlLEJlLG9lKX1lbHNlIGlmKEJlPUMoUCksdHlwZW9mIEJlPT0iZnVuY3Rpb24iKWZvcihQPUJlLmNhbGwoUCksUmU9MDshKGZlPVAubmV4dCgpKS5kb25lOylmZT1mZS52YWx1ZSxCZT1uZSt0ZShmZSxSZSsrKSxFZSs9bGUoZmUsSyxzZSxCZSxvZSk7ZWxzZSBpZihmZT09PSJvYmplY3QiKXRocm93IEs9U3RyaW5nKFApLEVycm9yKCJPYmplY3RzIGFyZSBub3QgdmFsaWQgYXMgYSBSZWFjdCBjaGlsZCAoZm91bmQ6ICIrKEs9PT0iW29iamVjdCBPYmplY3RdIj8ib2JqZWN0IHdpdGgga2V5cyB7IitPYmplY3Qua2V5cyhQKS5qb2luKCIsICIpKyJ9IjpLKSsiKS4gSWYgeW91IG1lYW50IHRvIHJlbmRlciBhIGNvbGxlY3Rpb24gb2YgY2hpbGRyZW4sIHVzZSBhbiBhcnJheSBpbnN0ZWFkLiIpO3JldHVybiBFZX1mdW5jdGlvbiBjZShQLEssc2Upe2lmKFA9PW51bGwpcmV0dXJuIFA7dmFyIG5lPVtdLG9lPTA7cmV0dXJuIGxlKFAsbmUsIiIsIiIsZnVuY3Rpb24oZmUpe3JldHVybiBLLmNhbGwoc2UsZmUsb2UrKyl9KSxuZX1mdW5jdGlvbiBXKFApe2lmKFAuX3N0YXR1cz09PS0xKXt2YXIgSz1QLl9yZXN1bHQ7Sz1LKCksSy50aGVuKGZ1bmN0aW9uKHNlKXsoUC5fc3RhdHVzPT09MHx8UC5fc3RhdHVzPT09LTEpJiYoUC5fc3RhdHVzPTEsUC5fcmVzdWx0PXNlKX0sZnVuY3Rpb24oc2UpeyhQLl9zdGF0dXM9PT0wfHxQLl9zdGF0dXM9PT0tMSkmJihQLl9zdGF0dXM9MixQLl9yZXN1bHQ9c2UpfSksUC5fc3RhdHVzPT09LTEmJihQLl9zdGF0dXM9MCxQLl9yZXN1bHQ9Syl9aWYoUC5fc3RhdHVzPT09MSlyZXR1cm4gUC5fcmVzdWx0LmRlZmF1bHQ7dGhyb3cgUC5fcmVzdWx0fXZhciBqPXtjdXJyZW50Om51bGx9LEQ9e3RyYW5zaXRpb246bnVsbH0sVj17UmVhY3RDdXJyZW50RGlzcGF0Y2hlcjpqLFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnOkQsUmVhY3RDdXJyZW50T3duZXI6Un07ZnVuY3Rpb24gWigpe3Rocm93IEVycm9yKCJhY3QoLi4uKSBpcyBub3Qgc3VwcG9ydGVkIGluIHByb2R1Y3Rpb24gYnVpbGRzIG9mIFJlYWN0LiIpfXAuQ2hpbGRyZW49e21hcDpjZSxmb3JFYWNoOmZ1bmN0aW9uKFAsSyxzZSl7Y2UoUCxmdW5jdGlvbigpe0suYXBwbHkodGhpcyxhcmd1bWVudHMpfSxzZSl9LGNvdW50OmZ1bmN0aW9uKFApe3ZhciBLPTA7cmV0dXJuIGNlKFAsZnVuY3Rpb24oKXtLKyt9KSxLfSx0b0FycmF5OmZ1bmN0aW9uKFApe3JldHVybiBjZShQLGZ1bmN0aW9uKEspe3JldHVybiBLfSl8fFtdfSxvbmx5OmZ1bmN0aW9uKFApe2lmKCFlZShQKSl0aHJvdyBFcnJvcigiUmVhY3QuQ2hpbGRyZW4ub25seSBleHBlY3RlZCB0byByZWNlaXZlIGEgc2luZ2xlIFJlYWN0IGVsZW1lbnQgY2hpbGQuIik7cmV0dXJuIFB9fSxwLkNvbXBvbmVudD14LHAuRnJhZ21lbnQ9bixwLlByb2ZpbGVyPWkscC5QdXJlQ29tcG9uZW50PVQscC5TdHJpY3RNb2RlPXQscC5TdXNwZW5zZT1jLHAuX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQ9VixwLmFjdD1aLHAuY2xvbmVFbGVtZW50PWZ1bmN0aW9uKFAsSyxzZSl7aWYoUD09bnVsbCl0aHJvdyBFcnJvcigiUmVhY3QuY2xvbmVFbGVtZW50KC4uLik6IFRoZSBhcmd1bWVudCBtdXN0IGJlIGEgUmVhY3QgZWxlbWVudCwgYnV0IHlvdSBwYXNzZWQgIitQKyIuIik7dmFyIG5lPXcoe30sUC5wcm9wcyksb2U9UC5rZXksZmU9UC5yZWYsRWU9UC5fb3duZXI7aWYoSyE9bnVsbCl7aWYoSy5yZWYhPT12b2lkIDAmJihmZT1LLnJlZixFZT1SLmN1cnJlbnQpLEsua2V5IT09dm9pZCAwJiYob2U9IiIrSy5rZXkpLFAudHlwZSYmUC50eXBlLmRlZmF1bHRQcm9wcyl2YXIgUmU9UC50eXBlLmRlZmF1bHRQcm9wcztmb3IoQmUgaW4gSylJLmNhbGwoSyxCZSkmJiF6Lmhhc093blByb3BlcnR5KEJlKSYmKG5lW0JlXT1LW0JlXT09PXZvaWQgMCYmUmUhPT12b2lkIDA/UmVbQmVdOktbQmVdKX12YXIgQmU9YXJndW1lbnRzLmxlbmd0aC0yO2lmKEJlPT09MSluZS5jaGlsZHJlbj1zZTtlbHNlIGlmKDE8QmUpe1JlPUFycmF5KEJlKTtmb3IodmFyIFllPTA7WWU8QmU7WWUrKylSZVtZZV09YXJndW1lbnRzW1llKzJdO25lLmNoaWxkcmVuPVJlfXJldHVybnskJHR5cGVvZjplLHR5cGU6UC50eXBlLGtleTpvZSxyZWY6ZmUscHJvcHM6bmUsX293bmVyOkVlfX0scC5jcmVhdGVDb250ZXh0PWZ1bmN0aW9uKFApe3JldHVybiBQPXskJHR5cGVvZjphLF9jdXJyZW50VmFsdWU6UCxfY3VycmVudFZhbHVlMjpQLF90aHJlYWRDb3VudDowLFByb3ZpZGVyOm51bGwsQ29uc3VtZXI6bnVsbCxfZGVmYXVsdFZhbHVlOm51bGwsX2dsb2JhbE5hbWU6bnVsbH0sUC5Qcm92aWRlcj17JCR0eXBlb2Y6cyxfY29udGV4dDpQfSxQLkNvbnN1bWVyPVB9LHAuY3JlYXRlRWxlbWVudD1HLHAuY3JlYXRlRmFjdG9yeT1mdW5jdGlvbihQKXt2YXIgSz1HLmJpbmQobnVsbCxQKTtyZXR1cm4gSy50eXBlPVAsS30scC5jcmVhdGVSZWY9ZnVuY3Rpb24oKXtyZXR1cm57Y3VycmVudDpudWxsfX0scC5mb3J3YXJkUmVmPWZ1bmN0aW9uKFApe3JldHVybnskJHR5cGVvZjp1LHJlbmRlcjpQfX0scC5pc1ZhbGlkRWxlbWVudD1lZSxwLmxhenk9ZnVuY3Rpb24oUCl7cmV0dXJueyQkdHlwZW9mOmQsX3BheWxvYWQ6e19zdGF0dXM6LTEsX3Jlc3VsdDpQfSxfaW5pdDpXfX0scC5tZW1vPWZ1bmN0aW9uKFAsSyl7cmV0dXJueyQkdHlwZW9mOmgsdHlwZTpQLGNvbXBhcmU6Sz09PXZvaWQgMD9udWxsOkt9fSxwLnN0YXJ0VHJhbnNpdGlvbj1mdW5jdGlvbihQKXt2YXIgSz1ELnRyYW5zaXRpb247RC50cmFuc2l0aW9uPXt9O3RyeXtQKCl9ZmluYWxseXtELnRyYW5zaXRpb249S319LHAudW5zdGFibGVfYWN0PVoscC51c2VDYWxsYmFjaz1mdW5jdGlvbihQLEspe3JldHVybiBqLmN1cnJlbnQudXNlQ2FsbGJhY2soUCxLKX0scC51c2VDb250ZXh0PWZ1bmN0aW9uKFApe3JldHVybiBqLmN1cnJlbnQudXNlQ29udGV4dChQKX0scC51c2VEZWJ1Z1ZhbHVlPWZ1bmN0aW9uKCl7fSxwLnVzZURlZmVycmVkVmFsdWU9ZnVuY3Rpb24oUCl7cmV0dXJuIGouY3VycmVudC51c2VEZWZlcnJlZFZhbHVlKFApfSxwLnVzZUVmZmVjdD1mdW5jdGlvbihQLEspe3JldHVybiBqLmN1cnJlbnQudXNlRWZmZWN0KFAsSyl9LHAudXNlSWQ9ZnVuY3Rpb24oKXtyZXR1cm4gai5jdXJyZW50LnVzZUlkKCl9LHAudXNlSW1wZXJhdGl2ZUhhbmRsZT1mdW5jdGlvbihQLEssc2Upe3JldHVybiBqLmN1cnJlbnQudXNlSW1wZXJhdGl2ZUhhbmRsZShQLEssc2UpfSxwLnVzZUluc2VydGlvbkVmZmVjdD1mdW5jdGlvbihQLEspe3JldHVybiBqLmN1cnJlbnQudXNlSW5zZXJ0aW9uRWZmZWN0KFAsSyl9LHAudXNlTGF5b3V0RWZmZWN0PWZ1bmN0aW9uKFAsSyl7cmV0dXJuIGouY3VycmVudC51c2VMYXlvdXRFZmZlY3QoUCxLKX0scC51c2VNZW1vPWZ1bmN0aW9uKFAsSyl7cmV0dXJuIGouY3VycmVudC51c2VNZW1vKFAsSyl9LHAudXNlUmVkdWNlcj1mdW5jdGlvbihQLEssc2Upe3JldHVybiBqLmN1cnJlbnQudXNlUmVkdWNlcihQLEssc2UpfSxwLnVzZVJlZj1mdW5jdGlvbihQKXtyZXR1cm4gai5jdXJyZW50LnVzZVJlZihQKX0scC51c2VTdGF0ZT1mdW5jdGlvbihQKXtyZXR1cm4gai5jdXJyZW50LnVzZVN0YXRlKFApfSxwLnVzZVN5bmNFeHRlcm5hbFN0b3JlPWZ1bmN0aW9uKFAsSyxzZSl7cmV0dXJuIGouY3VycmVudC51c2VTeW5jRXh0ZXJuYWxTdG9yZShQLEssc2UpfSxwLnVzZVRyYW5zaXRpb249ZnVuY3Rpb24oKXtyZXR1cm4gai5jdXJyZW50LnVzZVRyYW5zaXRpb24oKX0scC52ZXJzaW9uPSIxOC4zLjEifSw2NzI5NDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3kuZXhwb3J0cz1lKDcyNDA4KX0sODU4OTM6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt5LmV4cG9ydHM9ZSg3NTI1MSl9LDkxMDMzOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZnVuY3Rpb24oKXtpZih0eXBlb2YgTWFwIT0idW5kZWZpbmVkIilyZXR1cm4gTWFwO2Z1bmN0aW9uIGxlKGNlLFcpe3ZhciBqPS0xO3JldHVybiBjZS5zb21lKGZ1bmN0aW9uKEQsVil7cmV0dXJuIERbMF09PT1XPyhqPVYsITApOiExfSksan1yZXR1cm4gZnVuY3Rpb24oKXtmdW5jdGlvbiBjZSgpe3RoaXMuX19lbnRyaWVzX189W119cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjZS5wcm90b3R5cGUsInNpemUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fX2VudHJpZXNfXy5sZW5ndGh9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksY2UucHJvdG90eXBlLmdldD1mdW5jdGlvbihXKXt2YXIgaj1sZSh0aGlzLl9fZW50cmllc19fLFcpLEQ9dGhpcy5fX2VudHJpZXNfX1tqXTtyZXR1cm4gRCYmRFsxXX0sY2UucHJvdG90eXBlLnNldD1mdW5jdGlvbihXLGope3ZhciBEPWxlKHRoaXMuX19lbnRyaWVzX18sVyk7fkQ/dGhpcy5fX2VudHJpZXNfX1tEXVsxXT1qOnRoaXMuX19lbnRyaWVzX18ucHVzaChbVyxqXSl9LGNlLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24oVyl7dmFyIGo9dGhpcy5fX2VudHJpZXNfXyxEPWxlKGosVyk7fkQmJmouc3BsaWNlKEQsMSl9LGNlLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24oVyl7cmV0dXJuISF+bGUodGhpcy5fX2VudHJpZXNfXyxXKX0sY2UucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5fX2VudHJpZXNfXy5zcGxpY2UoMCl9LGNlLnByb3RvdHlwZS5mb3JFYWNoPWZ1bmN0aW9uKFcsail7aj09PXZvaWQgMCYmKGo9bnVsbCk7Zm9yKHZhciBEPTAsVj10aGlzLl9fZW50cmllc19fO0Q8Vi5sZW5ndGg7RCsrKXt2YXIgWj1WW0RdO1cuY2FsbChqLFpbMV0sWlswXSl9fSxjZX0oKX0oKSxuPXR5cGVvZiB3aW5kb3chPSJ1bmRlZmluZWQiJiZ0eXBlb2YgZG9jdW1lbnQhPSJ1bmRlZmluZWQiJiZ3aW5kb3cuZG9jdW1lbnQ9PT1kb2N1bWVudCx0PWZ1bmN0aW9uKCl7cmV0dXJuIHR5cGVvZiBlLmchPSJ1bmRlZmluZWQiJiZlLmcuTWF0aD09PU1hdGg/ZS5nOnR5cGVvZiBzZWxmIT0idW5kZWZpbmVkIiYmc2VsZi5NYXRoPT09TWF0aD9zZWxmOnR5cGVvZiB3aW5kb3chPSJ1bmRlZmluZWQiJiZ3aW5kb3cuTWF0aD09PU1hdGg/d2luZG93OkZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCl9KCksaT1mdW5jdGlvbigpe3JldHVybiB0eXBlb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lPT0iZnVuY3Rpb24iP3JlcXVlc3RBbmltYXRpb25GcmFtZS5iaW5kKHQpOmZ1bmN0aW9uKGxlKXtyZXR1cm4gc2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiBsZShEYXRlLm5vdygpKX0sMWUzLzYwKX19KCkscz0yO2Z1bmN0aW9uIGEobGUsY2Upe3ZhciBXPSExLGo9ITEsRD0wO2Z1bmN0aW9uIFYoKXtXJiYoVz0hMSxsZSgpKSxqJiZQKCl9ZnVuY3Rpb24gWigpe2koVil9ZnVuY3Rpb24gUCgpe3ZhciBLPURhdGUubm93KCk7aWYoVyl7aWYoSy1EPHMpcmV0dXJuO2o9ITB9ZWxzZSBXPSEwLGo9ITEsc2V0VGltZW91dChaLGNlKTtEPUt9cmV0dXJuIFB9dmFyIHU9MjAsYz1bInRvcCIsInJpZ2h0IiwiYm90dG9tIiwibGVmdCIsIndpZHRoIiwiaGVpZ2h0Iiwic2l6ZSIsIndlaWdodCJdLGg9dHlwZW9mIE11dGF0aW9uT2JzZXJ2ZXIhPSJ1bmRlZmluZWQiLGQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBsZSgpe3RoaXMuY29ubmVjdGVkXz0hMSx0aGlzLm11dGF0aW9uRXZlbnRzQWRkZWRfPSExLHRoaXMubXV0YXRpb25zT2JzZXJ2ZXJfPW51bGwsdGhpcy5vYnNlcnZlcnNfPVtdLHRoaXMub25UcmFuc2l0aW9uRW5kXz10aGlzLm9uVHJhbnNpdGlvbkVuZF8uYmluZCh0aGlzKSx0aGlzLnJlZnJlc2g9YSh0aGlzLnJlZnJlc2guYmluZCh0aGlzKSx1KX1yZXR1cm4gbGUucHJvdG90eXBlLmFkZE9ic2VydmVyPWZ1bmN0aW9uKGNlKXt+dGhpcy5vYnNlcnZlcnNfLmluZGV4T2YoY2UpfHx0aGlzLm9ic2VydmVyc18ucHVzaChjZSksdGhpcy5jb25uZWN0ZWRffHx0aGlzLmNvbm5lY3RfKCl9LGxlLnByb3RvdHlwZS5yZW1vdmVPYnNlcnZlcj1mdW5jdGlvbihjZSl7dmFyIFc9dGhpcy5vYnNlcnZlcnNfLGo9Vy5pbmRleE9mKGNlKTt+aiYmVy5zcGxpY2UoaiwxKSwhVy5sZW5ndGgmJnRoaXMuY29ubmVjdGVkXyYmdGhpcy5kaXNjb25uZWN0XygpfSxsZS5wcm90b3R5cGUucmVmcmVzaD1mdW5jdGlvbigpe3ZhciBjZT10aGlzLnVwZGF0ZU9ic2VydmVyc18oKTtjZSYmdGhpcy5yZWZyZXNoKCl9LGxlLnByb3RvdHlwZS51cGRhdGVPYnNlcnZlcnNfPWZ1bmN0aW9uKCl7dmFyIGNlPXRoaXMub2JzZXJ2ZXJzXy5maWx0ZXIoZnVuY3Rpb24oVyl7cmV0dXJuIFcuZ2F0aGVyQWN0aXZlKCksVy5oYXNBY3RpdmUoKX0pO3JldHVybiBjZS5mb3JFYWNoKGZ1bmN0aW9uKFcpe3JldHVybiBXLmJyb2FkY2FzdEFjdGl2ZSgpfSksY2UubGVuZ3RoPjB9LGxlLnByb3RvdHlwZS5jb25uZWN0Xz1mdW5jdGlvbigpeyFufHx0aGlzLmNvbm5lY3RlZF98fChkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ0cmFuc2l0aW9uZW5kIix0aGlzLm9uVHJhbnNpdGlvbkVuZF8pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLHRoaXMucmVmcmVzaCksaD8odGhpcy5tdXRhdGlvbnNPYnNlcnZlcl89bmV3IE11dGF0aW9uT2JzZXJ2ZXIodGhpcy5yZWZyZXNoKSx0aGlzLm11dGF0aW9uc09ic2VydmVyXy5vYnNlcnZlKGRvY3VtZW50LHthdHRyaWJ1dGVzOiEwLGNoaWxkTGlzdDohMCxjaGFyYWN0ZXJEYXRhOiEwLHN1YnRyZWU6ITB9KSk6KGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTVN1YnRyZWVNb2RpZmllZCIsdGhpcy5yZWZyZXNoKSx0aGlzLm11dGF0aW9uRXZlbnRzQWRkZWRfPSEwKSx0aGlzLmNvbm5lY3RlZF89ITApfSxsZS5wcm90b3R5cGUuZGlzY29ubmVjdF89ZnVuY3Rpb24oKXshbnx8IXRoaXMuY29ubmVjdGVkX3x8KGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLHRoaXMub25UcmFuc2l0aW9uRW5kXyksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5yZWZyZXNoKSx0aGlzLm11dGF0aW9uc09ic2VydmVyXyYmdGhpcy5tdXRhdGlvbnNPYnNlcnZlcl8uZGlzY29ubmVjdCgpLHRoaXMubXV0YXRpb25FdmVudHNBZGRlZF8mJmRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIkRPTVN1YnRyZWVNb2RpZmllZCIsdGhpcy5yZWZyZXNoKSx0aGlzLm11dGF0aW9uc09ic2VydmVyXz1udWxsLHRoaXMubXV0YXRpb25FdmVudHNBZGRlZF89ITEsdGhpcy5jb25uZWN0ZWRfPSExKX0sbGUucHJvdG90eXBlLm9uVHJhbnNpdGlvbkVuZF89ZnVuY3Rpb24oY2Upe3ZhciBXPWNlLnByb3BlcnR5TmFtZSxqPVc9PT12b2lkIDA/IiI6VyxEPWMuc29tZShmdW5jdGlvbihWKXtyZXR1cm4hIX5qLmluZGV4T2YoVil9KTtEJiZ0aGlzLnJlZnJlc2goKX0sbGUuZ2V0SW5zdGFuY2U9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbnN0YW5jZV98fCh0aGlzLmluc3RhbmNlXz1uZXcgbGUpLHRoaXMuaW5zdGFuY2VffSxsZS5pbnN0YW5jZV89bnVsbCxsZX0oKSxtPWZ1bmN0aW9uKGxlLGNlKXtmb3IodmFyIFc9MCxqPU9iamVjdC5rZXlzKGNlKTtXPGoubGVuZ3RoO1crKyl7dmFyIEQ9altXXTtPYmplY3QuZGVmaW5lUHJvcGVydHkobGUsRCx7dmFsdWU6Y2VbRF0sZW51bWVyYWJsZTohMSx3cml0YWJsZTohMSxjb25maWd1cmFibGU6ITB9KX1yZXR1cm4gbGV9LEM9ZnVuY3Rpb24obGUpe3ZhciBjZT1sZSYmbGUub3duZXJEb2N1bWVudCYmbGUub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldztyZXR1cm4gY2V8fHR9LGc9eigwLDAsMCwwKTtmdW5jdGlvbiB3KGxlKXtyZXR1cm4gcGFyc2VGbG9hdChsZSl8fDB9ZnVuY3Rpb24gRShsZSl7Zm9yKHZhciBjZT1bXSxXPTE7Vzxhcmd1bWVudHMubGVuZ3RoO1crKyljZVtXLTFdPWFyZ3VtZW50c1tXXTtyZXR1cm4gY2UucmVkdWNlKGZ1bmN0aW9uKGosRCl7dmFyIFY9bGVbImJvcmRlci0iK0QrIi13aWR0aCJdO3JldHVybiBqK3coVil9LDApfWZ1bmN0aW9uIHgobGUpe2Zvcih2YXIgY2U9WyJ0b3AiLCJyaWdodCIsImJvdHRvbSIsImxlZnQiXSxXPXt9LGo9MCxEPWNlO2o8RC5sZW5ndGg7aisrKXt2YXIgVj1EW2pdLFo9bGVbInBhZGRpbmctIitWXTtXW1ZdPXcoWil9cmV0dXJuIFd9ZnVuY3Rpb24gTyhsZSl7dmFyIGNlPWxlLmdldEJCb3goKTtyZXR1cm4geigwLDAsY2Uud2lkdGgsY2UuaGVpZ2h0KX1mdW5jdGlvbiBUKGxlKXt2YXIgY2U9bGUuY2xpZW50V2lkdGgsVz1sZS5jbGllbnRIZWlnaHQ7aWYoIWNlJiYhVylyZXR1cm4gZzt2YXIgaj1DKGxlKS5nZXRDb21wdXRlZFN0eWxlKGxlKSxEPXgoaiksVj1ELmxlZnQrRC5yaWdodCxaPUQudG9wK0QuYm90dG9tLFA9dyhqLndpZHRoKSxLPXcoai5oZWlnaHQpO2lmKGouYm94U2l6aW5nPT09ImJvcmRlci1ib3giJiYoTWF0aC5yb3VuZChQK1YpIT09Y2UmJihQLT1FKGosImxlZnQiLCJyaWdodCIpK1YpLE1hdGgucm91bmQoSytaKSE9PVcmJihLLT1FKGosInRvcCIsImJvdHRvbSIpK1opKSwhTChsZSkpe3ZhciBzZT1NYXRoLnJvdW5kKFArViktY2UsbmU9TWF0aC5yb3VuZChLK1opLVc7TWF0aC5hYnMoc2UpIT09MSYmKFAtPXNlKSxNYXRoLmFicyhuZSkhPT0xJiYoSy09bmUpfXJldHVybiB6KEQubGVmdCxELnRvcCxQLEspfXZhciBTPWZ1bmN0aW9uKCl7cmV0dXJuIHR5cGVvZiBTVkdHcmFwaGljc0VsZW1lbnQhPSJ1bmRlZmluZWQiP2Z1bmN0aW9uKGxlKXtyZXR1cm4gbGUgaW5zdGFuY2VvZiBDKGxlKS5TVkdHcmFwaGljc0VsZW1lbnR9OmZ1bmN0aW9uKGxlKXtyZXR1cm4gbGUgaW5zdGFuY2VvZiBDKGxlKS5TVkdFbGVtZW50JiZ0eXBlb2YgbGUuZ2V0QkJveD09ImZ1bmN0aW9uIn19KCk7ZnVuY3Rpb24gTChsZSl7cmV0dXJuIGxlPT09QyhsZSkuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50fWZ1bmN0aW9uIEkobGUpe3JldHVybiBuP1MobGUpP08obGUpOlQobGUpOmd9ZnVuY3Rpb24gUihsZSl7dmFyIGNlPWxlLngsVz1sZS55LGo9bGUud2lkdGgsRD1sZS5oZWlnaHQsVj10eXBlb2YgRE9NUmVjdFJlYWRPbmx5IT0idW5kZWZpbmVkIj9ET01SZWN0UmVhZE9ubHk6T2JqZWN0LFo9T2JqZWN0LmNyZWF0ZShWLnByb3RvdHlwZSk7cmV0dXJuIG0oWix7eDpjZSx5Olcsd2lkdGg6aixoZWlnaHQ6RCx0b3A6VyxyaWdodDpjZStqLGJvdHRvbTpEK1csbGVmdDpjZX0pLFp9ZnVuY3Rpb24geihsZSxjZSxXLGope3JldHVybnt4OmxlLHk6Y2Usd2lkdGg6VyxoZWlnaHQ6an19dmFyIEc9ZnVuY3Rpb24oKXtmdW5jdGlvbiBsZShjZSl7dGhpcy5icm9hZGNhc3RXaWR0aD0wLHRoaXMuYnJvYWRjYXN0SGVpZ2h0PTAsdGhpcy5jb250ZW50UmVjdF89eigwLDAsMCwwKSx0aGlzLnRhcmdldD1jZX1yZXR1cm4gbGUucHJvdG90eXBlLmlzQWN0aXZlPWZ1bmN0aW9uKCl7dmFyIGNlPUkodGhpcy50YXJnZXQpO3JldHVybiB0aGlzLmNvbnRlbnRSZWN0Xz1jZSxjZS53aWR0aCE9PXRoaXMuYnJvYWRjYXN0V2lkdGh8fGNlLmhlaWdodCE9PXRoaXMuYnJvYWRjYXN0SGVpZ2h0fSxsZS5wcm90b3R5cGUuYnJvYWRjYXN0UmVjdD1mdW5jdGlvbigpe3ZhciBjZT10aGlzLmNvbnRlbnRSZWN0XztyZXR1cm4gdGhpcy5icm9hZGNhc3RXaWR0aD1jZS53aWR0aCx0aGlzLmJyb2FkY2FzdEhlaWdodD1jZS5oZWlnaHQsY2V9LGxlfSgpLFk9ZnVuY3Rpb24oKXtmdW5jdGlvbiBsZShjZSxXKXt2YXIgaj1SKFcpO20odGhpcyx7dGFyZ2V0OmNlLGNvbnRlbnRSZWN0Omp9KX1yZXR1cm4gbGV9KCksZWU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBsZShjZSxXLGope2lmKHRoaXMuYWN0aXZlT2JzZXJ2YXRpb25zXz1bXSx0aGlzLm9ic2VydmF0aW9uc189bmV3IHIsdHlwZW9mIGNlIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIlRoZSBjYWxsYmFjayBwcm92aWRlZCBhcyBwYXJhbWV0ZXIgMSBpcyBub3QgYSBmdW5jdGlvbi4iKTt0aGlzLmNhbGxiYWNrXz1jZSx0aGlzLmNvbnRyb2xsZXJfPVcsdGhpcy5jYWxsYmFja0N0eF89an1yZXR1cm4gbGUucHJvdG90eXBlLm9ic2VydmU9ZnVuY3Rpb24oY2Upe2lmKCFhcmd1bWVudHMubGVuZ3RoKXRocm93IG5ldyBUeXBlRXJyb3IoIjEgYXJndW1lbnQgcmVxdWlyZWQsIGJ1dCBvbmx5IDAgcHJlc2VudC4iKTtpZighKHR5cGVvZiBFbGVtZW50PT0idW5kZWZpbmVkInx8IShFbGVtZW50IGluc3RhbmNlb2YgT2JqZWN0KSkpe2lmKCEoY2UgaW5zdGFuY2VvZiBDKGNlKS5FbGVtZW50KSl0aHJvdyBuZXcgVHlwZUVycm9yKCdwYXJhbWV0ZXIgMSBpcyBub3Qgb2YgdHlwZSAiRWxlbWVudCIuJyk7dmFyIFc9dGhpcy5vYnNlcnZhdGlvbnNfO1cuaGFzKGNlKXx8KFcuc2V0KGNlLG5ldyBHKGNlKSksdGhpcy5jb250cm9sbGVyXy5hZGRPYnNlcnZlcih0aGlzKSx0aGlzLmNvbnRyb2xsZXJfLnJlZnJlc2goKSl9fSxsZS5wcm90b3R5cGUudW5vYnNlcnZlPWZ1bmN0aW9uKGNlKXtpZighYXJndW1lbnRzLmxlbmd0aCl0aHJvdyBuZXcgVHlwZUVycm9yKCIxIGFyZ3VtZW50IHJlcXVpcmVkLCBidXQgb25seSAwIHByZXNlbnQuIik7aWYoISh0eXBlb2YgRWxlbWVudD09InVuZGVmaW5lZCJ8fCEoRWxlbWVudCBpbnN0YW5jZW9mIE9iamVjdCkpKXtpZighKGNlIGluc3RhbmNlb2YgQyhjZSkuRWxlbWVudCkpdGhyb3cgbmV3IFR5cGVFcnJvcigncGFyYW1ldGVyIDEgaXMgbm90IG9mIHR5cGUgIkVsZW1lbnQiLicpO3ZhciBXPXRoaXMub2JzZXJ2YXRpb25zXztXLmhhcyhjZSkmJihXLmRlbGV0ZShjZSksVy5zaXplfHx0aGlzLmNvbnRyb2xsZXJfLnJlbW92ZU9ic2VydmVyKHRoaXMpKX19LGxlLnByb3RvdHlwZS5kaXNjb25uZWN0PWZ1bmN0aW9uKCl7dGhpcy5jbGVhckFjdGl2ZSgpLHRoaXMub2JzZXJ2YXRpb25zXy5jbGVhcigpLHRoaXMuY29udHJvbGxlcl8ucmVtb3ZlT2JzZXJ2ZXIodGhpcyl9LGxlLnByb3RvdHlwZS5nYXRoZXJBY3RpdmU9ZnVuY3Rpb24oKXt2YXIgY2U9dGhpczt0aGlzLmNsZWFyQWN0aXZlKCksdGhpcy5vYnNlcnZhdGlvbnNfLmZvckVhY2goZnVuY3Rpb24oVyl7Vy5pc0FjdGl2ZSgpJiZjZS5hY3RpdmVPYnNlcnZhdGlvbnNfLnB1c2goVyl9KX0sbGUucHJvdG90eXBlLmJyb2FkY2FzdEFjdGl2ZT1mdW5jdGlvbigpe2lmKHRoaXMuaGFzQWN0aXZlKCkpe3ZhciBjZT10aGlzLmNhbGxiYWNrQ3R4XyxXPXRoaXMuYWN0aXZlT2JzZXJ2YXRpb25zXy5tYXAoZnVuY3Rpb24oail7cmV0dXJuIG5ldyBZKGoudGFyZ2V0LGouYnJvYWRjYXN0UmVjdCgpKX0pO3RoaXMuY2FsbGJhY2tfLmNhbGwoY2UsVyxjZSksdGhpcy5jbGVhckFjdGl2ZSgpfX0sbGUucHJvdG90eXBlLmNsZWFyQWN0aXZlPWZ1bmN0aW9uKCl7dGhpcy5hY3RpdmVPYnNlcnZhdGlvbnNfLnNwbGljZSgwKX0sbGUucHJvdG90eXBlLmhhc0FjdGl2ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmFjdGl2ZU9ic2VydmF0aW9uc18ubGVuZ3RoPjB9LGxlfSgpLEo9dHlwZW9mIFdlYWtNYXAhPSJ1bmRlZmluZWQiP25ldyBXZWFrTWFwOm5ldyByLG1lPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbGUoY2Upe2lmKCEodGhpcyBpbnN0YW5jZW9mIGxlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24uIik7aWYoIWFyZ3VtZW50cy5sZW5ndGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiMSBhcmd1bWVudCByZXF1aXJlZCwgYnV0IG9ubHkgMCBwcmVzZW50LiIpO3ZhciBXPWQuZ2V0SW5zdGFuY2UoKSxqPW5ldyBlZShjZSxXLHRoaXMpO0ouc2V0KHRoaXMsail9cmV0dXJuIGxlfSgpO1sib2JzZXJ2ZSIsInVub2JzZXJ2ZSIsImRpc2Nvbm5lY3QiXS5mb3JFYWNoKGZ1bmN0aW9uKGxlKXttZS5wcm90b3R5cGVbbGVdPWZ1bmN0aW9uKCl7dmFyIGNlO3JldHVybihjZT1KLmdldCh0aGlzKSlbbGVdLmFwcGx5KGNlLGFyZ3VtZW50cyl9fSk7dmFyIHRlPWZ1bmN0aW9uKCl7cmV0dXJuIHR5cGVvZiB0LlJlc2l6ZU9ic2VydmVyIT0idW5kZWZpbmVkIj90LlJlc2l6ZU9ic2VydmVyOm1lfSgpO3AuWj10ZX0sNjAwNTM6ZnVuY3Rpb24oeSxwKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZShqLEQpe3ZhciBWPWoubGVuZ3RoO2oucHVzaChEKTtlOmZvcig7MDxWOyl7dmFyIFo9Vi0xPj4+MSxQPWpbWl07aWYoMDx0KFAsRCkpaltaXT1ELGpbVl09UCxWPVo7ZWxzZSBicmVhayBlfX1mdW5jdGlvbiByKGope3JldHVybiBqLmxlbmd0aD09PTA/bnVsbDpqWzBdfWZ1bmN0aW9uIG4oail7aWYoai5sZW5ndGg9PT0wKXJldHVybiBudWxsO3ZhciBEPWpbMF0sVj1qLnBvcCgpO2lmKFYhPT1EKXtqWzBdPVY7ZTpmb3IodmFyIFo9MCxQPWoubGVuZ3RoLEs9UD4+PjE7WjxLOyl7dmFyIHNlPTIqKForMSktMSxuZT1qW3NlXSxvZT1zZSsxLGZlPWpbb2VdO2lmKDA+dChuZSxWKSlvZTxQJiYwPnQoZmUsbmUpPyhqW1pdPWZlLGpbb2VdPVYsWj1vZSk6KGpbWl09bmUsaltzZV09VixaPXNlKTtlbHNlIGlmKG9lPFAmJjA+dChmZSxWKSlqW1pdPWZlLGpbb2VdPVYsWj1vZTtlbHNlIGJyZWFrIGV9fXJldHVybiBEfWZ1bmN0aW9uIHQoaixEKXt2YXIgVj1qLnNvcnRJbmRleC1ELnNvcnRJbmRleDtyZXR1cm4gViE9PTA/VjpqLmlkLUQuaWR9aWYodHlwZW9mIHBlcmZvcm1hbmNlPT0ib2JqZWN0IiYmdHlwZW9mIHBlcmZvcm1hbmNlLm5vdz09ImZ1bmN0aW9uIil7dmFyIGk9cGVyZm9ybWFuY2U7cC51bnN0YWJsZV9ub3c9ZnVuY3Rpb24oKXtyZXR1cm4gaS5ub3coKX19ZWxzZXt2YXIgcz1EYXRlLGE9cy5ub3coKTtwLnVuc3RhYmxlX25vdz1mdW5jdGlvbigpe3JldHVybiBzLm5vdygpLWF9fXZhciB1PVtdLGM9W10saD0xLGQ9bnVsbCxtPTMsQz0hMSxnPSExLHc9ITEsRT10eXBlb2Ygc2V0VGltZW91dD09ImZ1bmN0aW9uIj9zZXRUaW1lb3V0Om51bGwseD10eXBlb2YgY2xlYXJUaW1lb3V0PT0iZnVuY3Rpb24iP2NsZWFyVGltZW91dDpudWxsLE89dHlwZW9mIHNldEltbWVkaWF0ZSE9InVuZGVmaW5lZCI/c2V0SW1tZWRpYXRlOm51bGw7dHlwZW9mIG5hdmlnYXRvciE9InVuZGVmaW5lZCImJm5hdmlnYXRvci5zY2hlZHVsaW5nIT09dm9pZCAwJiZuYXZpZ2F0b3Iuc2NoZWR1bGluZy5pc0lucHV0UGVuZGluZyE9PXZvaWQgMCYmbmF2aWdhdG9yLnNjaGVkdWxpbmcuaXNJbnB1dFBlbmRpbmcuYmluZChuYXZpZ2F0b3Iuc2NoZWR1bGluZyk7ZnVuY3Rpb24gVChqKXtmb3IodmFyIEQ9cihjKTtEIT09bnVsbDspe2lmKEQuY2FsbGJhY2s9PT1udWxsKW4oYyk7ZWxzZSBpZihELnN0YXJ0VGltZTw9ailuKGMpLEQuc29ydEluZGV4PUQuZXhwaXJhdGlvblRpbWUsZSh1LEQpO2Vsc2UgYnJlYWs7RD1yKGMpfX1mdW5jdGlvbiBTKGope2lmKHc9ITEsVChqKSwhZylpZihyKHUpIT09bnVsbClnPSEwLGNlKEwpO2Vsc2V7dmFyIEQ9cihjKTtEIT09bnVsbCYmVyhTLEQuc3RhcnRUaW1lLWopfX1mdW5jdGlvbiBMKGosRCl7Zz0hMSx3JiYodz0hMSx4KHopLHo9LTEpLEM9ITA7dmFyIFY9bTt0cnl7Zm9yKFQoRCksZD1yKHUpO2QhPT1udWxsJiYoIShkLmV4cGlyYXRpb25UaW1lPkQpfHxqJiYhZWUoKSk7KXt2YXIgWj1kLmNhbGxiYWNrO2lmKHR5cGVvZiBaPT0iZnVuY3Rpb24iKXtkLmNhbGxiYWNrPW51bGwsbT1kLnByaW9yaXR5TGV2ZWw7dmFyIFA9WihkLmV4cGlyYXRpb25UaW1lPD1EKTtEPXAudW5zdGFibGVfbm93KCksdHlwZW9mIFA9PSJmdW5jdGlvbiI/ZC5jYWxsYmFjaz1QOmQ9PT1yKHUpJiZuKHUpLFQoRCl9ZWxzZSBuKHUpO2Q9cih1KX1pZihkIT09bnVsbCl2YXIgSz0hMDtlbHNle3ZhciBzZT1yKGMpO3NlIT09bnVsbCYmVyhTLHNlLnN0YXJ0VGltZS1EKSxLPSExfXJldHVybiBLfWZpbmFsbHl7ZD1udWxsLG09VixDPSExfX12YXIgST0hMSxSPW51bGwsej0tMSxHPTUsWT0tMTtmdW5jdGlvbiBlZSgpe3JldHVybiEocC51bnN0YWJsZV9ub3coKS1ZPEcpfWZ1bmN0aW9uIEooKXtpZihSIT09bnVsbCl7dmFyIGo9cC51bnN0YWJsZV9ub3coKTtZPWo7dmFyIEQ9ITA7dHJ5e0Q9UighMCxqKX1maW5hbGx5e0Q/bWUoKTooST0hMSxSPW51bGwpfX1lbHNlIEk9ITF9dmFyIG1lO2lmKHR5cGVvZiBPPT0iZnVuY3Rpb24iKW1lPWZ1bmN0aW9uKCl7TyhKKX07ZWxzZSBpZih0eXBlb2YgTWVzc2FnZUNoYW5uZWwhPSJ1bmRlZmluZWQiKXt2YXIgdGU9bmV3IE1lc3NhZ2VDaGFubmVsLGxlPXRlLnBvcnQyO3RlLnBvcnQxLm9ubWVzc2FnZT1KLG1lPWZ1bmN0aW9uKCl7bGUucG9zdE1lc3NhZ2UobnVsbCl9fWVsc2UgbWU9ZnVuY3Rpb24oKXtFKEosMCl9O2Z1bmN0aW9uIGNlKGope1I9aixJfHwoST0hMCxtZSgpKX1mdW5jdGlvbiBXKGosRCl7ej1FKGZ1bmN0aW9uKCl7aihwLnVuc3RhYmxlX25vdygpKX0sRCl9cC51bnN0YWJsZV9JZGxlUHJpb3JpdHk9NSxwLnVuc3RhYmxlX0ltbWVkaWF0ZVByaW9yaXR5PTEscC51bnN0YWJsZV9Mb3dQcmlvcml0eT00LHAudW5zdGFibGVfTm9ybWFsUHJpb3JpdHk9MyxwLnVuc3RhYmxlX1Byb2ZpbGluZz1udWxsLHAudW5zdGFibGVfVXNlckJsb2NraW5nUHJpb3JpdHk9MixwLnVuc3RhYmxlX2NhbmNlbENhbGxiYWNrPWZ1bmN0aW9uKGope2ouY2FsbGJhY2s9bnVsbH0scC51bnN0YWJsZV9jb250aW51ZUV4ZWN1dGlvbj1mdW5jdGlvbigpe2d8fEN8fChnPSEwLGNlKEwpKX0scC51bnN0YWJsZV9mb3JjZUZyYW1lUmF0ZT1mdW5jdGlvbihqKXswPmp8fDEyNTxqP2NvbnNvbGUuZXJyb3IoImZvcmNlRnJhbWVSYXRlIHRha2VzIGEgcG9zaXRpdmUgaW50IGJldHdlZW4gMCBhbmQgMTI1LCBmb3JjaW5nIGZyYW1lIHJhdGVzIGhpZ2hlciB0aGFuIDEyNSBmcHMgaXMgbm90IHN1cHBvcnRlZCIpOkc9MDxqP01hdGguZmxvb3IoMWUzL2opOjV9LHAudW5zdGFibGVfZ2V0Q3VycmVudFByaW9yaXR5TGV2ZWw9ZnVuY3Rpb24oKXtyZXR1cm4gbX0scC51bnN0YWJsZV9nZXRGaXJzdENhbGxiYWNrTm9kZT1mdW5jdGlvbigpe3JldHVybiByKHUpfSxwLnVuc3RhYmxlX25leHQ9ZnVuY3Rpb24oail7c3dpdGNoKG0pe2Nhc2UgMTpjYXNlIDI6Y2FzZSAzOnZhciBEPTM7YnJlYWs7ZGVmYXVsdDpEPW19dmFyIFY9bTttPUQ7dHJ5e3JldHVybiBqKCl9ZmluYWxseXttPVZ9fSxwLnVuc3RhYmxlX3BhdXNlRXhlY3V0aW9uPWZ1bmN0aW9uKCl7fSxwLnVuc3RhYmxlX3JlcXVlc3RQYWludD1mdW5jdGlvbigpe30scC51bnN0YWJsZV9ydW5XaXRoUHJpb3JpdHk9ZnVuY3Rpb24oaixEKXtzd2l0Y2goail7Y2FzZSAxOmNhc2UgMjpjYXNlIDM6Y2FzZSA0OmNhc2UgNTpicmVhaztkZWZhdWx0Omo9M312YXIgVj1tO209ajt0cnl7cmV0dXJuIEQoKX1maW5hbGx5e209Vn19LHAudW5zdGFibGVfc2NoZWR1bGVDYWxsYmFjaz1mdW5jdGlvbihqLEQsVil7dmFyIFo9cC51bnN0YWJsZV9ub3coKTtzd2l0Y2godHlwZW9mIFY9PSJvYmplY3QiJiZWIT09bnVsbD8oVj1WLmRlbGF5LFY9dHlwZW9mIFY9PSJudW1iZXIiJiYwPFY/WitWOlopOlY9WixqKXtjYXNlIDE6dmFyIFA9LTE7YnJlYWs7Y2FzZSAyOlA9MjUwO2JyZWFrO2Nhc2UgNTpQPTEwNzM3NDE4MjM7YnJlYWs7Y2FzZSA0OlA9MWU0O2JyZWFrO2RlZmF1bHQ6UD01ZTN9cmV0dXJuIFA9VitQLGo9e2lkOmgrKyxjYWxsYmFjazpELHByaW9yaXR5TGV2ZWw6aixzdGFydFRpbWU6VixleHBpcmF0aW9uVGltZTpQLHNvcnRJbmRleDotMX0sVj5aPyhqLnNvcnRJbmRleD1WLGUoYyxqKSxyKHUpPT09bnVsbCYmaj09PXIoYykmJih3Pyh4KHopLHo9LTEpOnc9ITAsVyhTLFYtWikpKTooai5zb3J0SW5kZXg9UCxlKHUsaiksZ3x8Q3x8KGc9ITAsY2UoTCkpKSxqfSxwLnVuc3RhYmxlX3Nob3VsZFlpZWxkPWVlLHAudW5zdGFibGVfd3JhcENhbGxiYWNrPWZ1bmN0aW9uKGope3ZhciBEPW07cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIFY9bTttPUQ7dHJ5e3JldHVybiBqLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1maW5hbGx5e209Vn19fX0sNjM4NDA6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt5LmV4cG9ydHM9ZSg2MDA1Myl9LDM4MTM4OmZ1bmN0aW9uKHkpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBwKGUscil7aWYoZT09PXIpcmV0dXJuITA7aWYoIWV8fCFyKXJldHVybiExO3ZhciBuPU9iamVjdC5rZXlzKGUpLHQ9T2JqZWN0LmtleXMociksaT1uLmxlbmd0aDtpZih0Lmxlbmd0aCE9PWkpcmV0dXJuITE7Zm9yKHZhciBzPTA7czxpO3MrKyl7dmFyIGE9bltzXTtpZihlW2FdIT09clthXXx8IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyLGEpKXJldHVybiExfXJldHVybiEwfXkuZXhwb3J0cz1wfSw5Njc3NDpmdW5jdGlvbih5KXt5LmV4cG9ydHM9ZnVuY3Rpb24oZSxyLG4sdCl7dmFyIGk9bj9uLmNhbGwodCxlLHIpOnZvaWQgMDtpZihpIT09dm9pZCAwKXJldHVybiEhaTtpZihlPT09cilyZXR1cm4hMDtpZih0eXBlb2YgZSE9Im9iamVjdCJ8fCFlfHx0eXBlb2YgciE9Im9iamVjdCJ8fCFyKXJldHVybiExO3ZhciBzPU9iamVjdC5rZXlzKGUpLGE9T2JqZWN0LmtleXMocik7aWYocy5sZW5ndGghPT1hLmxlbmd0aClyZXR1cm4hMTtmb3IodmFyIHU9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5iaW5kKHIpLGM9MDtjPHMubGVuZ3RoO2MrKyl7dmFyIGg9c1tjXTtpZighdShoKSlyZXR1cm4hMTt2YXIgZD1lW2hdLG09cltoXTtpZihpPW4/bi5jYWxsKHQsZCxtLGgpOnZvaWQgMCxpPT09ITF8fGk9PT12b2lkIDAmJmQhPT1tKXJldHVybiExfXJldHVybiEwfX0sNDAzNzI6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDM2MDYwKTt5LmV4cG9ydHM9ZnVuY3Rpb24obil7aWYodHlwZW9mIG4hPSJmdW5jdGlvbiJ8fCFoYXNPd25Qcm9wZXJ0eS5jYWxsKG4sImxlbmd0aCIpKXJldHVybiExO3RyeXtpZih0eXBlb2Ygbi5sZW5ndGghPSJudW1iZXIifHx0eXBlb2Ygbi5jYWxsIT0iZnVuY3Rpb24ifHx0eXBlb2Ygbi5hcHBseSE9ImZ1bmN0aW9uIilyZXR1cm4hMX1jYXRjaCh0KXtyZXR1cm4hMX1yZXR1cm4hcihuKX19LDEzOTQwOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3NTYxOCksbj17b2JqZWN0OiEwLGZ1bmN0aW9uOiEwLHVuZGVmaW5lZDohMH07eS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiByKHQpP2hhc093blByb3BlcnR5LmNhbGwobix0eXBlb2YgdCk6ITF9fSwxNzIwNTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNDAzNzIpLG49L15ccypjbGFzc1tcc3svfV0vLHQ9RnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nO3kuZXhwb3J0cz1mdW5jdGlvbihpKXtyZXR1cm4hKCFyKGkpfHxuLnRlc3QodC5jYWxsKGkpKSl9fSwzNjA2MDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoMTM5NDApO3kuZXhwb3J0cz1mdW5jdGlvbihuKXtpZighcihuKSlyZXR1cm4hMTt0cnl7cmV0dXJuIG4uY29uc3RydWN0b3I/bi5jb25zdHJ1Y3Rvci5wcm90b3R5cGU9PT1uOiExfWNhdGNoKHQpe3JldHVybiExfX19LDc1NjE4OmZ1bmN0aW9uKHkpeyJ1c2Ugc3RyaWN0Ijt2YXIgcD12b2lkIDA7eS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBlIT09cCYmZSE9PW51bGx9fSw4MzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNjcyOTQpO2Z1bmN0aW9uIG4oQyxnKXtyZXR1cm4gQz09PWcmJihDIT09MHx8MS9DPT09MS9nKXx8QyE9PUMmJmchPT1nfXZhciB0PXR5cGVvZiBPYmplY3QuaXM9PSJmdW5jdGlvbiI/T2JqZWN0LmlzOm4saT1yLnVzZVN0YXRlLHM9ci51c2VFZmZlY3QsYT1yLnVzZUxheW91dEVmZmVjdCx1PXIudXNlRGVidWdWYWx1ZTtmdW5jdGlvbiBjKEMsZyl7dmFyIHc9ZygpLEU9aSh7aW5zdDp7dmFsdWU6dyxnZXRTbmFwc2hvdDpnfX0pLHg9RVswXS5pbnN0LE89RVsxXTtyZXR1cm4gYShmdW5jdGlvbigpe3gudmFsdWU9dyx4LmdldFNuYXBzaG90PWcsaCh4KSYmTyh7aW5zdDp4fSl9LFtDLHcsZ10pLHMoZnVuY3Rpb24oKXtyZXR1cm4gaCh4KSYmTyh7aW5zdDp4fSksQyhmdW5jdGlvbigpe2goeCkmJk8oe2luc3Q6eH0pfSl9LFtDXSksdSh3KSx3fWZ1bmN0aW9uIGgoQyl7dmFyIGc9Qy5nZXRTbmFwc2hvdDtDPUMudmFsdWU7dHJ5e3ZhciB3PWcoKTtyZXR1cm4hdChDLHcpfWNhdGNoKEUpe3JldHVybiEwfX1mdW5jdGlvbiBkKEMsZyl7cmV0dXJuIGcoKX12YXIgbT10eXBlb2Ygd2luZG93PT0idW5kZWZpbmVkInx8dHlwZW9mIHdpbmRvdy5kb2N1bWVudD09InVuZGVmaW5lZCJ8fHR5cGVvZiB3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudD09InVuZGVmaW5lZCI/ZDpjO3AudXNlU3luY0V4dGVybmFsU3RvcmU9ci51c2VTeW5jRXh0ZXJuYWxTdG9yZSE9PXZvaWQgMD9yLnVzZVN5bmNFeHRlcm5hbFN0b3JlOm19LDYxNjg4OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7eS5leHBvcnRzPWUoODMpfSw0MjQ3MzpmdW5jdGlvbih5KXsidXNlIHN0cmljdCI7dmFyIHA9ITEsZT1mdW5jdGlvbigpe307aWYocCl7dmFyIHI9ZnVuY3Rpb24odCxpKXt2YXIgcz1hcmd1bWVudHMubGVuZ3RoO2k9bmV3IEFycmF5KHM+MT9zLTE6MCk7Zm9yKHZhciBhPTE7YTxzO2ErKylpW2EtMV09YXJndW1lbnRzW2FdO3ZhciB1PTAsYz0iV2FybmluZzogIit0LnJlcGxhY2UoLyVzL2csZnVuY3Rpb24oKXtyZXR1cm4gaVt1KytdfSk7dHlwZW9mIGNvbnNvbGUhPSJ1bmRlZmluZWQiJiZjb25zb2xlLmVycm9yKGMpO3RyeXt0aHJvdyBuZXcgRXJyb3IoYyl9Y2F0Y2goaCl7fX07ZT1mdW5jdGlvbihuLHQsaSl7dmFyIHM9YXJndW1lbnRzLmxlbmd0aDtpPW5ldyBBcnJheShzPjI/cy0yOjApO2Zvcih2YXIgYT0yO2E8czthKyspaVthLTJdPWFyZ3VtZW50c1thXTtpZih0PT09dm9pZCAwKXRocm93IG5ldyBFcnJvcigiYHdhcm5pbmcoY29uZGl0aW9uLCBmb3JtYXQsIC4uLmFyZ3MpYCByZXF1aXJlcyBhIHdhcm5pbmcgbWVzc2FnZSBhcmd1bWVudCIpO258fHIuYXBwbHkobnVsbCxbdF0uY29uY2F0KGkpKX19eS5leHBvcnRzPWV9LDcwNzE3OmZ1bmN0aW9uKHkscCxlKXt2YXIgcj17Ii4vNDA0IjpbOTgyNiw5LDk3MjAsMjU3MV0sIi4vNDA0LnRzeCI6Wzk4MjYsOSw5NzIwLDI1NzFdLCIuL01vbml0b3IvQ2FjaGUiOls3OTIxOSw5LDI1ODYsMjM2Miw1ODI2LDIzOTgsNjE1NCw0MzkzLDIyNjEsOTIxOV0sIi4vTW9uaXRvci9DYWNoZS8iOls3OTIxOSw5LDI1ODYsMjM2Miw1ODI2LDIzOTgsNjE1NCw0MzkzLDIyNjEsOTIxOV0sIi4vTW9uaXRvci9DYWNoZS9MaXN0IjpbNTY2OTIsOSwyNTg2LDIzNjIsNTI3OCw1ODI2LDk4NTksNzI2OSwyMzk4LDYxNTQsNDM5MywxNTgxXSwiLi9Nb25pdG9yL0NhY2hlL0xpc3QudHN4IjpbNTY2OTIsOSwyNTg2LDIzNjIsNTI3OCw1ODI2LDk4NTksNzI2OSwyMzk4LDYxNTQsNDM5MywxNTgxXSwiLi9Nb25pdG9yL0NhY2hlL0xpc3QvaW5kZXgubGVzcyI6Wzc2NTY5LDksNjU2OV0sIi4vTW9uaXRvci9DYWNoZS9pbmRleCI6Wzc5MjE5LDksMjU4NiwyMzYyLDU4MjYsMjM5OCw2MTU0LDQzOTMsMjI2MSw5MjE5XSwiLi9Nb25pdG9yL0NhY2hlL2luZGV4Lmxlc3MiOlsxNDIyOSw5LDQyMjldLCIuL01vbml0b3IvQ2FjaGUvaW5kZXgudHN4IjpbNzkyMTksOSwyNTg2LDIzNjIsNTgyNiwyMzk4LDYxNTQsNDM5MywyMjYxLDkyMTldLCIuL01vbml0b3IvRHJ1aWQiOlsxOTI1Niw5LDkyNTZdLCIuL01vbml0b3IvRHJ1aWQvIjpbMTkyNTYsOSw5MjU2XSwiLi9Nb25pdG9yL0RydWlkL2luZGV4IjpbMTkyNTYsOSw5MjU2XSwiLi9Nb25pdG9yL0RydWlkL2luZGV4LnRzeCI6WzE5MjU2LDksOTI1Nl0sIi4vTW9uaXRvci9Kb2IiOls2MTMwNiw5LDI1ODYsMjM2Miw4OTk3LDUyNzgsNTgyNiw5MDMsOTg1OSw4NzAzLDcyNjksMjE3OSwyMzk4LDYxNTQsOTcyMCw5NjAsNTM4NSwxNDU4LDYxMTAsNjQxMiw5NjY1LDEzMDZdLCIuL01vbml0b3IvSm9iLyI6WzYxMzA2LDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDIzOTgsNjE1NCw5NzIwLDk2MCw1Mzg1LDE0NTgsNjExMCw2NDEyLDk2NjUsMTMwNl0sIi4vTW9uaXRvci9Kb2IvZGV0YWlsIjpbNDY0OTIsOSw2NDEyLDY0OTJdLCIuL01vbml0b3IvSm9iL2RldGFpbC50c3giOls0NjQ5Miw5LDY0MTIsNjQ5Ml0sIi4vTW9uaXRvci9Kb2IvZWRpdCI6WzE4Mjk5LDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDcyOTZdLCIuL01vbml0b3IvSm9iL2VkaXQudHN4IjpbMTgyOTksOSwyNTg2LDIzNjIsODk5Nyw1Mjc4LDU4MjYsOTAzLDk4NTksODcwMyw3MjY5LDIxNzksNzI5Nl0sIi4vTW9uaXRvci9Kb2IvaW5kZXgiOls2MTMwNiw5LDI1ODYsMjM2Miw4OTk3LDUyNzgsNTgyNiw5MDMsOTg1OSw4NzAzLDcyNjksMjE3OSwyMzk4LDYxNTQsOTcyMCw5NjAsNTM4NSwxNDU4LDYxMTAsNjQxMiw5NjY1LDEzMDZdLCIuL01vbml0b3IvSm9iL2luZGV4LnRzeCI6WzYxMzA2LDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDIzOTgsNjE1NCw5NzIwLDk2MCw1Mzg1LDE0NTgsNjExMCw2NDEyLDk2NjUsMTMwNl0sIi4vTW9uaXRvci9Kb2JMb2ciOls4NjAxMyw5LDI1ODYsMjM2Miw4OTk3LDUyNzgsNTgyNiw5MDMsOTg1OSw4NzAzLDcyNjksMjE3OSwyMzk4LDYxNTQsOTcyMCw5NjAsNTM4NSwxNDU4LDYxMTAsNjQxMiw2Mjg1XSwiLi9Nb25pdG9yL0pvYkxvZy8iOls4NjAxMyw5LDI1ODYsMjM2Miw4OTk3LDUyNzgsNTgyNiw5MDMsOTg1OSw4NzAzLDcyNjksMjE3OSwyMzk4LDYxNTQsOTcyMCw5NjAsNTM4NSwxNDU4LDYxMTAsNjQxMiw2Mjg1XSwiLi9Nb25pdG9yL0pvYkxvZy9kZXRhaWwiOls3NzI2Niw5LDY0MTIsNzI2Nl0sIi4vTW9uaXRvci9Kb2JMb2cvZGV0YWlsLnRzeCI6Wzc3MjY2LDksNjQxMiw3MjY2XSwiLi9Nb25pdG9yL0pvYkxvZy9pbmRleCI6Wzg2MDEzLDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDIzOTgsNjE1NCw5NzIwLDk2MCw1Mzg1LDE0NTgsNjExMCw2NDEyLDYyODVdLCIuL01vbml0b3IvSm9iTG9nL2luZGV4LnRzeCI6Wzg2MDEzLDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDIzOTgsNjE1NCw5NzIwLDk2MCw1Mzg1LDE0NTgsNjExMCw2NDEyLDYyODVdLCIuL01vbml0b3IvTG9naW5pbmZvciI6WzIxMjgzLDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDIzOTgsNjE1NCw5NzIwLDk2MCw1Mzg1LDE0NTgsNjExMCw3NDA3LDEyODNdLCIuL01vbml0b3IvTG9naW5pbmZvci8iOlsyMTI4Myw5LDI1ODYsMjM2Miw4OTk3LDUyNzgsNTgyNiw5MDMsOTg1OSw4NzAzLDcyNjksMjE3OSwyMzk4LDYxNTQsOTcyMCw5NjAsNTM4NSwxNDU4LDYxMTAsNzQwNywxMjgzXSwiLi9Nb25pdG9yL0xvZ2luaW5mb3IvZWRpdCI6Wzk3NzYxLDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDc3NjFdLCIuL01vbml0b3IvTG9naW5pbmZvci9lZGl0LnRzeCI6Wzk3NzYxLDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDc3NjFdLCIuL01vbml0b3IvTG9naW5pbmZvci9pbmRleCI6WzIxMjgzLDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDIzOTgsNjE1NCw5NzIwLDk2MCw1Mzg1LDE0NTgsNjExMCw3NDA3LDEyODNdLCIuL01vbml0b3IvTG9naW5pbmZvci9pbmRleC50c3giOlsyMTI4Myw5LDI1ODYsMjM2Miw4OTk3LDUyNzgsNTgyNiw5MDMsOTg1OSw4NzAzLDcyNjksMjE3OSwyMzk4LDYxNTQsOTcyMCw5NjAsNTM4NSwxNDU4LDYxMTAsNzQwNywxMjgzXSwiLi9Nb25pdG9yL09ubGluZSI6WzIxNDE0LDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDIzOTgsNjE1NCw5NzIwLDk2MCw1Mzg1LDE0MTRdLCIuL01vbml0b3IvT25saW5lLyI6WzIxNDE0LDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDIzOTgsNjE1NCw5NzIwLDk2MCw1Mzg1LDE0MTRdLCIuL01vbml0b3IvT25saW5lL2luZGV4IjpbMjE0MTQsOSwyNTg2LDIzNjIsODk5Nyw1Mjc4LDU4MjYsOTAzLDk4NTksODcwMyw3MjY5LDIxNzksMjM5OCw2MTU0LDk3MjAsOTYwLDUzODUsMTQxNF0sIi4vTW9uaXRvci9PbmxpbmUvaW5kZXgudHN4IjpbMjE0MTQsOSwyNTg2LDIzNjIsODk5Nyw1Mjc4LDU4MjYsOTAzLDk4NTksODcwMyw3MjY5LDIxNzksMjM5OCw2MTU0LDk3MjAsOTYwLDUzODUsMTQxNF0sIi4vTW9uaXRvci9PcGVybG9nIjpbNTU1NDgsOSwyNTg2LDIzNjIsODk5Nyw1Mjc4LDU4MjYsOTAzLDk4NTksODcwMyw3MjY5LDIxNzksMjM5OCw2MTU0LDk3MjAsOTYwLDUzODUsMTQ1OCw2MTEwLDY0MTIsMzQ4NCw1NTQ4XSwiLi9Nb25pdG9yL09wZXJsb2cvIjpbNTU1NDgsOSwyNTg2LDIzNjIsODk5Nyw1Mjc4LDU4MjYsOTAzLDk4NTksODcwMyw3MjY5LDIxNzksMjM5OCw2MTU0LDk3MjAsOTYwLDUzODUsMTQ1OCw2MTEwLDY0MTIsMzQ4NCw1NTQ4XSwiLi9Nb25pdG9yL09wZXJsb2cvZGV0YWlsIjpbNTI4NzMsOSw2NDEyLDI4NzNdLCIuL01vbml0b3IvT3BlcmxvZy9kZXRhaWwudHN4IjpbNTI4NzMsOSw2NDEyLDI4NzNdLCIuL01vbml0b3IvT3BlcmxvZy9pbmRleCI6WzU1NTQ4LDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDIzOTgsNjE1NCw5NzIwLDk2MCw1Mzg1LDE0NTgsNjExMCw2NDEyLDM0ODQsNTU0OF0sIi4vTW9uaXRvci9PcGVybG9nL2luZGV4LnRzeCI6WzU1NTQ4LDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDIzOTgsNjE1NCw5NzIwLDk2MCw1Mzg1LDE0NTgsNjExMCw2NDEyLDM0ODQsNTU0OF0sIi4vTW9uaXRvci9TZXJ2ZXIiOlsxNzAwNyw5LDI1ODYsMjM2Miw1ODI2LDIzOTgsNjE1NCw0MzkzLDcwMDddLCIuL01vbml0b3IvU2VydmVyLyI6WzE3MDA3LDksMjU4NiwyMzYyLDU4MjYsMjM5OCw2MTU0LDQzOTMsNzAwN10sIi4vTW9uaXRvci9TZXJ2ZXIvaW5kZXgiOlsxNzAwNyw5LDI1ODYsMjM2Miw1ODI2LDIzOTgsNjE1NCw0MzkzLDcwMDddLCIuL01vbml0b3IvU2VydmVyL2luZGV4LnRzeCI6WzE3MDA3LDksMjU4NiwyMzYyLDU4MjYsMjM5OCw2MTU0LDQzOTMsNzAwN10sIi4vTW9uaXRvci9TZXJ2ZXIvc3R5bGUubGVzcyI6WzE3MDk1LDksNzA5NV0sIi4vUG9zdENlbnRlciI6Wzg3NTUsOSwyNTg2LDg5OTcsNTI3OCwyMzk4LDQzOTMsMjA4Niw3NjYyLDgyOTldLCIuL1Bvc3RDZW50ZXIvIjpbODc1NSw5LDI1ODYsODk5Nyw1Mjc4LDIzOTgsNDM5MywyMDg2LDc2NjIsODI5OV0sIi4vUG9zdENlbnRlci9Qb3N0Q2FyZCI6Wzg5MDA2LDksODk5NywyMzk4LDQzOTMsOTAwNl0sIi4vUG9zdENlbnRlci9Qb3N0Q2FyZC5tb2R1bGUuY3NzIjpbMzIxNTcsOSwyMTU3XSwiLi9Qb3N0Q2VudGVyL1Bvc3RDYXJkLnRzeCI6Wzg5MDA2LDksODk5NywyMzk4LDQzOTMsOTAwNl0sIi4vUG9zdENlbnRlci9Qb3N0RGV0YWlsIjpbNTE0MDksOSwyNTg2LDg5OTcsNTI3OCw5MDMsMjM5OCw5NjAsNDM5Myw3NjYyLDI2MzZdLCIuL1Bvc3RDZW50ZXIvUG9zdERldGFpbC5tb2R1bGUuY3NzIjpbMzY1NjgsOSw2NTY4XSwiLi9Qb3N0Q2VudGVyL1Bvc3REZXRhaWwudHN4IjpbNTE0MDksOSwyNTg2LDg5OTcsNTI3OCw5MDMsMjM5OCw5NjAsNDM5Myw3NjYyLDI2MzZdLCIuL1Bvc3RDZW50ZXIvaW5kZXgiOls4NzU1LDksMjU4Niw4OTk3LDUyNzgsMjM5OCw0MzkzLDIwODYsNzY2Miw4Mjk5XSwiLi9Qb3N0Q2VudGVyL2luZGV4Lm1vZHVsZS5jc3MiOlsyNDk5NCw5LDQ5OTRdLCIuL1Bvc3RDZW50ZXIvaW5kZXgudHN4IjpbODc1NSw5LDI1ODYsODk5Nyw1Mjc4LDIzOTgsNDM5MywyMDg2LDc2NjIsODI5OV0sIi4vUG9zdENlbnRlci90eXBlcyI6WzEzNTQyLDcsMzU0Ml0sIi4vUG9zdENlbnRlci90eXBlcy50cyI6WzEzNTQyLDcsMzU0Ml0sIi4vUG9zdFJldmlldyI6Wzk5MTkwLDksMjU4NiwyMzYyLDUyNzgsNTgyNiw5MDMsMjM5OCw2MTU0LDk2MCw0MzkzLDc2NjIsMjA2Myw0ODczXSwiLi9Qb3N0UmV2aWV3LyI6Wzk5MTkwLDksMjU4NiwyMzYyLDUyNzgsNTgyNiw5MDMsMjM5OCw2MTU0LDk2MCw0MzkzLDc2NjIsMjA2Myw0ODczXSwiLi9Qb3N0UmV2aWV3L1JlcG9ydE1hbmFnZW1lbnQiOls1MjA2Myw5LDI1ODYsMjM2Miw1Mjc4LDU4MjYsMjM5OCw2MTU0LDk2MCw0MzkzLDc2NjIsMjA2Myw4Njc3XSwiLi9Qb3N0UmV2aWV3L1JlcG9ydE1hbmFnZW1lbnQudHN4IjpbNTIwNjMsOSwyNTg2LDIzNjIsNTI3OCw1ODI2LDIzOTgsNjE1NCw5NjAsNDM5Myw3NjYyLDIwNjMsODY3N10sIi4vUG9zdFJldmlldy9pbmRleCI6Wzk5MTkwLDksMjU4NiwyMzYyLDUyNzgsNTgyNiw5MDMsMjM5OCw2MTU0LDk2MCw0MzkzLDc2NjIsMjA2Myw0ODczXSwiLi9Qb3N0UmV2aWV3L2luZGV4Lm1vZHVsZS5jc3MiOlsxNzgwNSw5LDc4MDVdLCIuL1Bvc3RSZXZpZXcvaW5kZXgudHN4IjpbOTkxOTAsOSwyNTg2LDIzNjIsNTI3OCw1ODI2LDkwMywyMzk4LDYxNTQsOTYwLDQzOTMsNzY2MiwyMDYzLDQ4NzNdLCIuL1N5c3RlbS9Db25maWciOlsxNTk1Nyw5LDI1ODYsMjM2Miw4OTk3LDUyNzgsNTgyNiw5MDMsOTg1OSw4NzAzLDcyNjksMjE3OSwyMzk4LDYxNTQsOTcyMCw5NjAsNTM4NSwxNDU4LDYxMTAsMTI1Niw1OTU3XSwiLi9TeXN0ZW0vQ29uZmlnLyI6WzE1OTU3LDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDIzOTgsNjE1NCw5NzIwLDk2MCw1Mzg1LDE0NTgsNjExMCwxMjU2LDU5NTddLCIuL1N5c3RlbS9Db25maWcvZWRpdCI6Wzk2NzYyLDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDY3NjJdLCIuL1N5c3RlbS9Db25maWcvZWRpdC50c3giOls5Njc2Miw5LDI1ODYsMjM2Miw4OTk3LDUyNzgsNTgyNiw5MDMsOTg1OSw4NzAzLDcyNjksMjE3OSw2NzYyXSwiLi9TeXN0ZW0vQ29uZmlnL2luZGV4IjpbMTU5NTcsOSwyNTg2LDIzNjIsODk5Nyw1Mjc4LDU4MjYsOTAzLDk4NTksODcwMyw3MjY5LDIxNzksMjM5OCw2MTU0LDk3MjAsOTYwLDUzODUsMTQ1OCw2MTEwLDEyNTYsNTk1N10sIi4vU3lzdGVtL0NvbmZpZy9pbmRleC50c3giOlsxNTk1Nyw5LDI1ODYsMjM2Miw4OTk3LDUyNzgsNTgyNiw5MDMsOTg1OSw4NzAzLDcyNjksMjE3OSwyMzk4LDYxNTQsOTcyMCw5NjAsNTM4NSwxNDU4LDYxMTAsMTI1Niw1OTU3XSwiLi9TeXN0ZW0vRGVwdCI6Wzk4ODYyLDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDIzOTgsNjE1NCw5NzIwLDk2MCw1Mzg1LDE0NTgsNjExMCwxODA3LDg4NjJdLCIuL1N5c3RlbS9EZXB0LyI6Wzk4ODYyLDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDIzOTgsNjE1NCw5NzIwLDk2MCw1Mzg1LDE0NTgsNjExMCwxODA3LDg4NjJdLCIuL1N5c3RlbS9EZXB0L2VkaXQiOls2MzkyMiw5LDI1ODYsMjM2Miw4OTk3LDUyNzgsNTgyNiw5MDMsOTg1OSw4NzAzLDcyNjksMjE3OSwzOTIyXSwiLi9TeXN0ZW0vRGVwdC9lZGl0LnRzeCI6WzYzOTIyLDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDM5MjJdLCIuL1N5c3RlbS9EZXB0L2luZGV4IjpbOTg4NjIsOSwyNTg2LDIzNjIsODk5Nyw1Mjc4LDU4MjYsOTAzLDk4NTksODcwMyw3MjY5LDIxNzksMjM5OCw2MTU0LDk3MjAsOTYwLDUzODUsMTQ1OCw2MTEwLDE4MDcsODg2Ml0sIi4vU3lzdGVtL0RlcHQvaW5kZXgudHN4IjpbOTg4NjIsOSwyNTg2LDIzNjIsODk5Nyw1Mjc4LDU4MjYsOTAzLDk4NTksODcwMyw3MjY5LDIxNzksMjM5OCw2MTU0LDk3MjAsOTYwLDUzODUsMTQ1OCw2MTEwLDE4MDcsODg2Ml0sIi4vU3lzdGVtL0RpY3QiOls0NTg3Niw5LDI1ODYsMjM2Miw4OTk3LDUyNzgsNTgyNiw5MDMsOTg1OSw4NzAzLDcyNjksMjE3OSwyMzk4LDYxNTQsOTcyMCw5NjAsNTM4NSwxNDU4LDYxMTAsMTMxNiw1ODc2XSwiLi9TeXN0ZW0vRGljdC8iOls0NTg3Niw5LDI1ODYsMjM2Miw4OTk3LDUyNzgsNTgyNiw5MDMsOTg1OSw4NzAzLDcyNjksMjE3OSwyMzk4LDYxNTQsOTcyMCw5NjAsNTM4NSwxNDU4LDYxMTAsMTMxNiw1ODc2XSwiLi9TeXN0ZW0vRGljdC9lZGl0IjpbNzU0ODIsOSwyNTg2LDIzNjIsODk5Nyw1Mjc4LDU4MjYsOTAzLDk4NTksODcwMyw3MjY5LDIxNzksNTQ4Ml0sIi4vU3lzdGVtL0RpY3QvZWRpdC50c3giOls3NTQ4Miw5LDI1ODYsMjM2Miw4OTk3LDUyNzgsNTgyNiw5MDMsOTg1OSw4NzAzLDcyNjksMjE3OSw1NDgyXSwiLi9TeXN0ZW0vRGljdC9pbmRleCI6WzQ1ODc2LDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDIzOTgsNjE1NCw5NzIwLDk2MCw1Mzg1LDE0NTgsNjExMCwxMzE2LDU4NzZdLCIuL1N5c3RlbS9EaWN0L2luZGV4LnRzeCI6WzQ1ODc2LDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDIzOTgsNjE1NCw5NzIwLDk2MCw1Mzg1LDE0NTgsNjExMCwxMzE2LDU4NzZdLCIuL1N5c3RlbS9EaWN0RGF0YSI6WzEzNTU4LDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDIzOTgsNjE1NCw5NzIwLDk2MCw1Mzg1LDE0NTgsNjExMCwzNjI4LDU3ODZdLCIuL1N5c3RlbS9EaWN0RGF0YS8iOlsxMzU1OCw5LDI1ODYsMjM2Miw4OTk3LDUyNzgsNTgyNiw5MDMsOTg1OSw4NzAzLDcyNjksMjE3OSwyMzk4LDYxNTQsOTcyMCw5NjAsNTM4NSwxNDU4LDYxMTAsMzYyOCw1Nzg2XSwiLi9TeXN0ZW0vRGljdERhdGEvZWRpdCI6WzM0NDUzLDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDQ0NTNdLCIuL1N5c3RlbS9EaWN0RGF0YS9lZGl0LnRzeCI6WzM0NDUzLDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDQ0NTNdLCIuL1N5c3RlbS9EaWN0RGF0YS9pbmRleCI6WzEzNTU4LDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDIzOTgsNjE1NCw5NzIwLDk2MCw1Mzg1LDE0NTgsNjExMCwzNjI4LDU3ODZdLCIuL1N5c3RlbS9EaWN0RGF0YS9pbmRleC50c3giOlsxMzU1OCw5LDI1ODYsMjM2Miw4OTk3LDUyNzgsNTgyNiw5MDMsOTg1OSw4NzAzLDcyNjksMjE3OSwyMzk4LDYxNTQsOTcyMCw5NjAsNTM4NSwxNDU4LDYxMTAsMzYyOCw1Nzg2XSwiLi9TeXN0ZW0vTG9naW5pbmZvciI6WzYyNjU1LDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDIzOTgsNjE1NCw5NzIwLDk2MCw1Mzg1LDE0NTgsNjExMCw3NDA3LDI2NTVdLCIuL1N5c3RlbS9Mb2dpbmluZm9yLyI6WzYyNjU1LDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDIzOTgsNjE1NCw5NzIwLDk2MCw1Mzg1LDE0NTgsNjExMCw3NDA3LDI2NTVdLCIuL1N5c3RlbS9Mb2dpbmluZm9yL2VkaXQiOls1OTk1NCw5LDI1ODYsMjM2Miw4OTk3LDUyNzgsNTgyNiw5MDMsOTg1OSw4NzAzLDcyNjksMjE3OSw5OTU0XSwiLi9TeXN0ZW0vTG9naW5pbmZvci9lZGl0LnRzeCI6WzU5OTU0LDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDk5NTRdLCIuL1N5c3RlbS9Mb2dpbmluZm9yL2luZGV4IjpbNjI2NTUsOSwyNTg2LDIzNjIsODk5Nyw1Mjc4LDU4MjYsOTAzLDk4NTksODcwMyw3MjY5LDIxNzksMjM5OCw2MTU0LDk3MjAsOTYwLDUzODUsMTQ1OCw2MTEwLDc0MDcsMjY1NV0sIi4vU3lzdGVtL0xvZ2luaW5mb3IvaW5kZXgudHN4IjpbNjI2NTUsOSwyNTg2LDIzNjIsODk5Nyw1Mjc4LDU4MjYsOTAzLDk4NTksODcwMyw3MjY5LDIxNzksMjM5OCw2MTU0LDk3MjAsOTYwLDUzODUsMTQ1OCw2MTEwLDc0MDcsMjY1NV0sIi4vU3lzdGVtL01lbnUiOls1OTE5Myw5LDI1ODYsMjM2Miw4OTk3LDUyNzgsNTgyNiw5MDMsOTg1OSw4NzAzLDcyNjksMjE3OSwyMzk4LDYxNTQsOTcyMCw5NjAsNTM4NSwxNDU4LDYxMTAsMzc5OSw1NDQzLDUzNDksNzkwM10sIi4vU3lzdGVtL01lbnUvIjpbNTkxOTMsOSwyNTg2LDIzNjIsODk5Nyw1Mjc4LDU4MjYsOTAzLDk4NTksODcwMyw3MjY5LDIxNzksMjM5OCw2MTU0LDk3MjAsOTYwLDUzODUsMTQ1OCw2MTEwLDM3OTksNTQ0Myw1MzQ5LDc5MDNdLCIuL1N5c3RlbS9NZW51L2VkaXQiOls0NTM0OSw5LDI1ODYsMjM2Miw4OTk3LDUyNzgsNTgyNiw5MDMsOTg1OSw4NzAzLDcyNjksMjE3OSw5NzIwLDE0NTgsMzc5OSw1NDQzLDUzNDksODk3NV0sIi4vU3lzdGVtL01lbnUvZWRpdC50c3giOls0NTM0OSw5LDI1ODYsMjM2Miw4OTk3LDUyNzgsNTgyNiw5MDMsOTg1OSw4NzAzLDcyNjksMjE3OSw5NzIwLDE0NTgsMzc5OSw1NDQzLDUzNDksODk3NV0sIi4vU3lzdGVtL01lbnUvaW5kZXgiOls1OTE5Myw5LDI1ODYsMjM2Miw4OTk3LDUyNzgsNTgyNiw5MDMsOTg1OSw4NzAzLDcyNjksMjE3OSwyMzk4LDYxNTQsOTcyMCw5NjAsNTM4NSwxNDU4LDYxMTAsMzc5OSw1NDQzLDUzNDksNzkwM10sIi4vU3lzdGVtL01lbnUvaW5kZXgudHN4IjpbNTkxOTMsOSwyNTg2LDIzNjIsODk5Nyw1Mjc4LDU4MjYsOTAzLDk4NTksODcwMyw3MjY5LDIxNzksMjM5OCw2MTU0LDk3MjAsOTYwLDUzODUsMTQ1OCw2MTEwLDM3OTksNTQ0Myw1MzQ5LDc5MDNdLCIuL1N5c3RlbS9Ob3RpY2UiOlszNjM3NCw5LDI1ODYsMjM2Miw4OTk3LDUyNzgsNTgyNiw5MDMsOTg1OSw4NzAzLDcyNjksMjE3OSwyMzk4LDYxNTQsOTcyMCw5NjAsNTM4NSwxNDU4LDYxMTAsMzU1Myw2Mzc0XSwiLi9TeXN0ZW0vTm90aWNlLyI6WzM2Mzc0LDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDIzOTgsNjE1NCw5NzIwLDk2MCw1Mzg1LDE0NTgsNjExMCwzNTUzLDYzNzRdLCIuL1N5c3RlbS9Ob3RpY2UvZWRpdCI6Wzc5ODgzLDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDk4ODNdLCIuL1N5c3RlbS9Ob3RpY2UvZWRpdC50c3giOls3OTg4Myw5LDI1ODYsMjM2Miw4OTk3LDUyNzgsNTgyNiw5MDMsOTg1OSw4NzAzLDcyNjksMjE3OSw5ODgzXSwiLi9TeXN0ZW0vTm90aWNlL2luZGV4IjpbMzYzNzQsOSwyNTg2LDIzNjIsODk5Nyw1Mjc4LDU4MjYsOTAzLDk4NTksODcwMyw3MjY5LDIxNzksMjM5OCw2MTU0LDk3MjAsOTYwLDUzODUsMTQ1OCw2MTEwLDM1NTMsNjM3NF0sIi4vU3lzdGVtL05vdGljZS9pbmRleC50c3giOlszNjM3NCw5LDI1ODYsMjM2Miw4OTk3LDUyNzgsNTgyNiw5MDMsOTg1OSw4NzAzLDcyNjksMjE3OSwyMzk4LDYxNTQsOTcyMCw5NjAsNTM4NSwxNDU4LDYxMTAsMzU1Myw2Mzc0XSwiLi9TeXN0ZW0vT3BlcmxvZyI6WzM4MjAwLDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDIzOTgsNjE1NCw5NzIwLDk2MCw1Mzg1LDE0NTgsNjExMCw2NDEyLDM0ODQsODIwMF0sIi4vU3lzdGVtL09wZXJsb2cvIjpbMzgyMDAsOSwyNTg2LDIzNjIsODk5Nyw1Mjc4LDU4MjYsOTAzLDk4NTksODcwMyw3MjY5LDIxNzksMjM5OCw2MTU0LDk3MjAsOTYwLDUzODUsMTQ1OCw2MTEwLDY0MTIsMzQ4NCw4MjAwXSwiLi9TeXN0ZW0vT3BlcmxvZy9kZXRhaWwiOls5MzA1OCw5LDY0MTIsMzA1OF0sIi4vU3lzdGVtL09wZXJsb2cvZGV0YWlsLnRzeCI6WzkzMDU4LDksNjQxMiwzMDU4XSwiLi9TeXN0ZW0vT3BlcmxvZy9pbmRleCI6WzM4MjAwLDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDIzOTgsNjE1NCw5NzIwLDk2MCw1Mzg1LDE0NTgsNjExMCw2NDEyLDM0ODQsODIwMF0sIi4vU3lzdGVtL09wZXJsb2cvaW5kZXgudHN4IjpbMzgyMDAsOSwyNTg2LDIzNjIsODk5Nyw1Mjc4LDU4MjYsOTAzLDk4NTksODcwMyw3MjY5LDIxNzksMjM5OCw2MTU0LDk3MjAsOTYwLDUzODUsMTQ1OCw2MTEwLDY0MTIsMzQ4NCw4MjAwXSwiLi9TeXN0ZW0vUG9zdCI6Wzc1NzI0LDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDIzOTgsNjE1NCw5NzIwLDk2MCw1Mzg1LDE0NTgsNjExMCw4MjEzLDY3MjBdLCIuL1N5c3RlbS9Qb3N0LyI6Wzc1NzI0LDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDIzOTgsNjE1NCw5NzIwLDk2MCw1Mzg1LDE0NTgsNjExMCw4MjEzLDY3MjBdLCIuL1N5c3RlbS9Qb3N0L2VkaXQiOlsyNDkzLDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDI0OTNdLCIuL1N5c3RlbS9Qb3N0L2VkaXQudHN4IjpbMjQ5Myw5LDI1ODYsMjM2Miw4OTk3LDUyNzgsNTgyNiw5MDMsOTg1OSw4NzAzLDcyNjksMjE3OSwyNDkzXSwiLi9TeXN0ZW0vUG9zdC9pbmRleCI6Wzc1NzI0LDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDIzOTgsNjE1NCw5NzIwLDk2MCw1Mzg1LDE0NTgsNjExMCw4MjEzLDY3MjBdLCIuL1N5c3RlbS9Qb3N0L2luZGV4LnRzeCI6Wzc1NzI0LDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDIzOTgsNjE1NCw5NzIwLDk2MCw1Mzg1LDE0NTgsNjExMCw4MjEzLDY3MjBdLCIuL1N5c3RlbS9Sb2xlIjpbMzgzOTQsOSwyNTg2LDIzNjIsODk5Nyw1Mjc4LDU4MjYsOTAzLDk4NTksODcwMyw3MjY5LDIxNzksMjM5OCw2MTU0LDk3MjAsOTYwLDUzODUsMTQ1OCw2MTEwLDgzOTRdLCIuL1N5c3RlbS9Sb2xlLyI6WzM4Mzk0LDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDIzOTgsNjE1NCw5NzIwLDk2MCw1Mzg1LDE0NTgsNjExMCw4Mzk0XSwiLi9TeXN0ZW0vUm9sZS9hdXRoVXNlciI6WzkxNjMxLDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDIzOTgsNjE1NCw5NzIwLDk2MCw1Mzg1LDE0NTgsNjExMCw1NDY0LDY4MzFdLCIuL1N5c3RlbS9Sb2xlL2F1dGhVc2VyLnRzeCI6WzkxNjMxLDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDIzOTgsNjE1NCw5NzIwLDk2MCw1Mzg1LDE0NTgsNjExMCw1NDY0LDY4MzFdLCIuL1N5c3RlbS9Sb2xlL2NvbXBvbmVudHMvRGF0YVNjb3BlIjpbMjAwMTQsOSwyNTg2LDIzNjIsODk5Nyw1Mjc4LDU4MjYsOTAzLDk4NTksODcwMyw3MjY5LDIxNzksMTRdLCIuL1N5c3RlbS9Sb2xlL2NvbXBvbmVudHMvRGF0YVNjb3BlLnRzeCI6WzIwMDE0LDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDE0XSwiLi9TeXN0ZW0vUm9sZS9jb21wb25lbnRzL1VzZXJTZWxlY3Rvck1vZGFsIjpbMjU0NjQsOSwyNTg2LDIzNjIsODk5Nyw1Mjc4LDU4MjYsOTAzLDk4NTksODcwMyw3MjY5LDIxNzksMjM5OCw2MTU0LDk3MjAsOTYwLDUzODUsNTQ2NF0sIi4vU3lzdGVtL1JvbGUvY29tcG9uZW50cy9Vc2VyU2VsZWN0b3JNb2RhbC50c3giOlsyNTQ2NCw5LDI1ODYsMjM2Miw4OTk3LDUyNzgsNTgyNiw5MDMsOTg1OSw4NzAzLDcyNjksMjE3OSwyMzk4LDYxNTQsOTcyMCw5NjAsNTM4NSw1NDY0XSwiLi9TeXN0ZW0vUm9sZS9lZGl0IjpbMTc3LDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDE3N10sIi4vU3lzdGVtL1JvbGUvZWRpdC50c3giOlsxNzcsOSwyNTg2LDIzNjIsODk5Nyw1Mjc4LDU4MjYsOTAzLDk4NTksODcwMyw3MjY5LDIxNzksMTc3XSwiLi9TeXN0ZW0vUm9sZS9pbmRleCI6WzM4Mzk0LDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDIzOTgsNjE1NCw5NzIwLDk2MCw1Mzg1LDE0NTgsNjExMCw4Mzk0XSwiLi9TeXN0ZW0vUm9sZS9pbmRleC50c3giOlszODM5NCw5LDI1ODYsMjM2Miw4OTk3LDUyNzgsNTgyNiw5MDMsOTg1OSw4NzAzLDcyNjksMjE3OSwyMzk4LDYxNTQsOTcyMCw5NjAsNTM4NSwxNDU4LDYxMTAsODM5NF0sIi4vU3lzdGVtL1VzZXIiOls3Nzc3LDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDIzOTgsNjE1NCw5NzIwLDk2MCw1Mzg1LDE0NTgsNjExMCw0MzkzLDY5MjQsNzc3N10sIi4vU3lzdGVtL1VzZXIvIjpbNzc3Nyw5LDI1ODYsMjM2Miw4OTk3LDUyNzgsNTgyNiw5MDMsOTg1OSw4NzAzLDcyNjksMjE3OSwyMzk4LDYxNTQsOTcyMCw5NjAsNTM4NSwxNDU4LDYxMTAsNDM5Myw2OTI0LDc3NzddLCIuL1N5c3RlbS9Vc2VyL2NvbXBvbmVudHMvQXV0aFJvbGUiOls4MDQ0OCw5LDI1ODYsMjM2Miw4OTk3LDUyNzgsNTgyNiw5MDMsOTg1OSw4NzAzLDcyNjksMjE3OSw0NDhdLCIuL1N5c3RlbS9Vc2VyL2NvbXBvbmVudHMvQXV0aFJvbGUudHN4IjpbODA0NDgsOSwyNTg2LDIzNjIsODk5Nyw1Mjc4LDU4MjYsOTAzLDk4NTksODcwMyw3MjY5LDIxNzksNDQ4XSwiLi9TeXN0ZW0vVXNlci9jb21wb25lbnRzL0RlcHRUcmVlIjpbMTA2MDUsOSwyMzYyLDYwNV0sIi4vU3lzdGVtL1VzZXIvY29tcG9uZW50cy9EZXB0VHJlZS50c3giOlsxMDYwNSw5LDIzNjIsNjA1XSwiLi9TeXN0ZW0vVXNlci9jb21wb25lbnRzL1Jlc2V0UHdkIjpbNjIyMjIsOSwyNTg2LDIzNjIsODk5Nyw1Mjc4LDU4MjYsOTAzLDk4NTksODcwMyw3MjY5LDIxNzksMjIyMl0sIi4vU3lzdGVtL1VzZXIvY29tcG9uZW50cy9SZXNldFB3ZC50c3giOls2MjIyMiw5LDI1ODYsMjM2Miw4OTk3LDUyNzgsNTgyNiw5MDMsOTg1OSw4NzAzLDcyNjksMjE3OSwyMjIyXSwiLi9TeXN0ZW0vVXNlci9lZGl0IjpbODY5MjQsOSwyNTg2LDIzNjIsODk5Nyw1Mjc4LDU4MjYsOTAzLDk4NTksODcwMyw3MjY5LDIxNzksNjkyNF0sIi4vU3lzdGVtL1VzZXIvZWRpdC50c3giOls4NjkyNCw5LDI1ODYsMjM2Miw4OTk3LDUyNzgsNTgyNiw5MDMsOTg1OSw4NzAzLDcyNjksMjE3OSw2OTI0XSwiLi9TeXN0ZW0vVXNlci9pbmRleCI6Wzc3NzcsOSwyNTg2LDIzNjIsODk5Nyw1Mjc4LDU4MjYsOTAzLDk4NTksODcwMyw3MjY5LDIxNzksMjM5OCw2MTU0LDk3MjAsOTYwLDUzODUsMTQ1OCw2MTEwLDQzOTMsNjkyNCw3Nzc3XSwiLi9TeXN0ZW0vVXNlci9pbmRleC50c3giOls3Nzc3LDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDIzOTgsNjE1NCw5NzIwLDk2MCw1Mzg1LDE0NTgsNjExMCw0MzkzLDY5MjQsNzc3N10sIi4vVG9vbC9CdWlsZCI6Wzc3Mzg4LDksNzM4OF0sIi4vVG9vbC9CdWlsZC8iOls3NzM4OCw5LDczODhdLCIuL1Rvb2wvQnVpbGQvaW5kZXgiOls3NzM4OCw5LDczODhdLCIuL1Rvb2wvQnVpbGQvaW5kZXgudHN4IjpbNzczODgsOSw3Mzg4XSwiLi9Ub29sL0dlbiI6Wzg5NDAxLDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDIzOTgsNjE1NCw5NzIwLDk2MCw1Mzg1LDQzOTMsNjQxMiwyODM2LDE5OTQsODcxM10sIi4vVG9vbC9HZW4vIjpbODk0MDEsOSwyNTg2LDIzNjIsODk5Nyw1Mjc4LDU4MjYsOTAzLDk4NTksODcwMyw3MjY5LDIxNzksMjM5OCw2MTU0LDk3MjAsOTYwLDUzODUsNDM5Myw2NDEyLDI4MzYsMTk5NCw4NzEzXSwiLi9Ub29sL0dlbi9jb21wb25lbnRzL0Jhc2VJbmZvIjpbMzU0MDAsOSwyNTg2LDIzNjIsODk5Nyw1Mjc4LDU4MjYsOTAzLDk4NTksODcwMyw3MjY5LDIxNzksNTQwMF0sIi4vVG9vbC9HZW4vY29tcG9uZW50cy9CYXNlSW5mby50c3giOlszNTQwMCw5LDI1ODYsMjM2Miw4OTk3LDUyNzgsNTgyNiw5MDMsOTg1OSw4NzAzLDcyNjksMjE3OSw1NDAwXSwiLi9Ub29sL0dlbi9jb21wb25lbnRzL0NvbHVtbkluZm8iOls0MTg0Miw5LDI1ODYsMjM2Miw4OTk3LDUyNzgsNTgyNiw5MDMsOTg1OSw4NzAzLDcyNjksMjE3OSwyMzk4LDYxNTQsOTcyMCw5NjAsNTM4NSw2Mzg4LDE4NDJdLCIuL1Rvb2wvR2VuL2NvbXBvbmVudHMvQ29sdW1uSW5mby50c3giOls0MTg0Miw5LDI1ODYsMjM2Miw4OTk3LDUyNzgsNTgyNiw5MDMsOTg1OSw4NzAzLDcyNjksMjE3OSwyMzk4LDYxNTQsOTcyMCw5NjAsNTM4NSw2Mzg4LDE4NDJdLCIuL1Rvb2wvR2VuL2NvbXBvbmVudHMvR2VuSW5mbyI6WzYyMDU3LDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDIwNTcsNzYyOV0sIi4vVG9vbC9HZW4vY29tcG9uZW50cy9HZW5JbmZvLnRzeCI6WzYyMDU3LDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDIwNTcsNzYyOV0sIi4vVG9vbC9HZW4vY29tcG9uZW50cy9QcmV2aWV3Q29kZSI6WzQyNzM0LDksMjM5OCwyODM2LDU4MDhdLCIuL1Rvb2wvR2VuL2NvbXBvbmVudHMvUHJldmlld0NvZGUudHN4IjpbNDI3MzQsOSwyMzk4LDI4MzYsNTgwOF0sIi4vVG9vbC9HZW4vZGF0YS5kIjpbODU1MDAsNyw1NTAwXSwiLi9Ub29sL0dlbi9kYXRhLmQudHMiOls4NTUwMCw3LDU1MDBdLCIuL1Rvb2wvR2VuL2VkaXQiOls1NjQ0NSw5LDI1ODYsMjM2Miw4OTk3LDUyNzgsNTgyNiw5MDMsOTg1OSw4NzAzLDcyNjksMjE3OSwyMzk4LDYxNTQsOTcyMCw5NjAsNTM4NSw0MzkzLDYzODgsMjA1Nyw3MTQ0XSwiLi9Ub29sL0dlbi9lZGl0LnRzeCI6WzU2NDQ1LDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDIzOTgsNjE1NCw5NzIwLDk2MCw1Mzg1LDQzOTMsNjM4OCwyMDU3LDcxNDRdLCIuL1Rvb2wvR2VuL2ltcG9ydCI6WzY2ODc2LDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDIzOTgsNjE1NCw5NzIwLDk2MCw1Mzg1LDQzOTMsMzg2N10sIi4vVG9vbC9HZW4vaW1wb3J0LnRzeCI6WzY2ODc2LDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDIzOTgsNjE1NCw5NzIwLDk2MCw1Mzg1LDQzOTMsMzg2N10sIi4vVG9vbC9HZW4vaW5kZXgiOls4OTQwMSw5LDI1ODYsMjM2Miw4OTk3LDUyNzgsNTgyNiw5MDMsOTg1OSw4NzAzLDcyNjksMjE3OSwyMzk4LDYxNTQsOTcyMCw5NjAsNTM4NSw0MzkzLDY0MTIsMjgzNiwxOTk0LDg3MTNdLCIuL1Rvb2wvR2VuL2luZGV4LnRzeCI6Wzg5NDAxLDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDIzOTgsNjE1NCw5NzIwLDk2MCw1Mzg1LDQzOTMsNjQxMiwyODM2LDE5OTQsODcxM10sIi4vVG9vbC9HZW4vbG9jYWxlcy96aC1DTiI6WzUxMjc1LDldLCIuL1Rvb2wvR2VuL2xvY2FsZXMvemgtQ04udHMiOls1MTI3NSw5XSwiLi9Ub29sL0dlbi9zZXJ2aWNlIjpbMTI1MzEsOSwyNTMxXSwiLi9Ub29sL0dlbi9zZXJ2aWNlLnRzIjpbMTI1MzEsOSwyNTMxXSwiLi9Ub29sL0dlbi9zdHlsZS5sZXNzIjpbOTdlMyw5LDdlM10sIi4vVG9vbC9Td2FnZ2VyIjpbNTM5OTMsOSwzOTkzXSwiLi9Ub29sL1N3YWdnZXIvIjpbNTM5OTMsOSwzOTkzXSwiLi9Ub29sL1N3YWdnZXIvaW5kZXgiOls1Mzk5Myw5LDM5OTNdLCIuL1Rvb2wvU3dhZ2dlci9pbmRleC50c3giOls1Mzk5Myw5LDM5OTNdLCIuL1VzZXIvQ2VudGVyIjpbMjEyNzgsOSwyNTg2LDIzNjIsODk5Nyw1Mjc4LDU4MjYsOTAzLDk4NTksODcwMyw3MjY5LDIxNzksMjM5OCw0MzkzLDM3OTksMjAxNiw5MjQ1XSwiLi9Vc2VyL0NlbnRlci8iOlsyMTI3OCw5LDI1ODYsMjM2Miw4OTk3LDUyNzgsNTgyNiw5MDMsOTg1OSw4NzAzLDcyNjksMjE3OSwyMzk4LDQzOTMsMzc5OSwyMDE2LDkyNDVdLCIuL1VzZXIvQ2VudGVyL0NlbnRlci5sZXNzIjpbODI2NTQsOSwyNjU0XSwiLi9Vc2VyL0NlbnRlci9jb21wb25lbnRzL0F2YXRhckNyb3BwZXIiOlszNzY5NCw5LDg3MDMsMzc5OSwyMDE2LDc2OTRdLCIuL1VzZXIvQ2VudGVyL2NvbXBvbmVudHMvQXZhdGFyQ3JvcHBlci8iOlszNzY5NCw5LDg3MDMsMzc5OSwyMDE2LDc2OTRdLCIuL1VzZXIvQ2VudGVyL2NvbXBvbmVudHMvQXZhdGFyQ3JvcHBlci9jcm9wcGVyLmNzcyI6WzY4OTA2LDksODkwNl0sIi4vVXNlci9DZW50ZXIvY29tcG9uZW50cy9BdmF0YXJDcm9wcGVyL2ltYWdlcy9iZy5wbmciOls5MjM4NSwxLDIzODVdLCIuL1VzZXIvQ2VudGVyL2NvbXBvbmVudHMvQXZhdGFyQ3JvcHBlci9pbmRleCI6WzM3Njk0LDksODcwMywzNzk5LDIwMTYsNzY5NF0sIi4vVXNlci9DZW50ZXIvY29tcG9uZW50cy9BdmF0YXJDcm9wcGVyL2luZGV4Lmxlc3MiOls0NzMzMiw5LDczMzJdLCIuL1VzZXIvQ2VudGVyL2NvbXBvbmVudHMvQXZhdGFyQ3JvcHBlci9pbmRleC50c3giOlszNzY5NCw5LDg3MDMsMzc5OSwyMDE2LDc2OTRdLCIuL1VzZXIvQ2VudGVyL2NvbXBvbmVudHMvQmFzZUluZm8iOlsyMDk0OSw5LDI1ODYsMjM2Miw4OTk3LDUyNzgsNTgyNiw5MDMsOTg1OSw4NzAzLDcyNjksMjE3OSw5NDldLCIuL1VzZXIvQ2VudGVyL2NvbXBvbmVudHMvQmFzZUluZm8vIjpbMjA5NDksOSwyNTg2LDIzNjIsODk5Nyw1Mjc4LDU4MjYsOTAzLDk4NTksODcwMyw3MjY5LDIxNzksOTQ5XSwiLi9Vc2VyL0NlbnRlci9jb21wb25lbnRzL0Jhc2VJbmZvL2luZGV4IjpbMjA5NDksOSwyNTg2LDIzNjIsODk5Nyw1Mjc4LDU4MjYsOTAzLDk4NTksODcwMyw3MjY5LDIxNzksOTQ5XSwiLi9Vc2VyL0NlbnRlci9jb21wb25lbnRzL0Jhc2VJbmZvL2luZGV4LnRzeCI6WzIwOTQ5LDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDk0OV0sIi4vVXNlci9DZW50ZXIvY29tcG9uZW50cy9SZXNldFBhc3N3b3JkIjpbMzQyOTYsOSwyNTg2LDIzNjIsODk5Nyw1Mjc4LDU4MjYsOTAzLDk4NTksODcwMyw3MjY5LDIxNzksNDI5Nl0sIi4vVXNlci9DZW50ZXIvY29tcG9uZW50cy9SZXNldFBhc3N3b3JkLyI6WzM0Mjk2LDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDQyOTZdLCIuL1VzZXIvQ2VudGVyL2NvbXBvbmVudHMvUmVzZXRQYXNzd29yZC9pbmRleCI6WzM0Mjk2LDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDQyOTZdLCIuL1VzZXIvQ2VudGVyL2NvbXBvbmVudHMvUmVzZXRQYXNzd29yZC9pbmRleC50c3giOlszNDI5Niw5LDI1ODYsMjM2Miw4OTk3LDUyNzgsNTgyNiw5MDMsOTg1OSw4NzAzLDcyNjksMjE3OSw0Mjk2XSwiLi9Vc2VyL0NlbnRlci9pbmRleCI6WzIxMjc4LDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDIzOTgsNDM5MywzNzk5LDIwMTYsOTI0NV0sIi4vVXNlci9DZW50ZXIvaW5kZXgudHN4IjpbMjEyNzgsOSwyNTg2LDIzNjIsODk5Nyw1Mjc4LDU4MjYsOTAzLDk4NTksODcwMyw3MjY5LDIxNzksMjM5OCw0MzkzLDM3OTksMjAxNiw5MjQ1XSwiLi9Vc2VyL0xvZ2luIjpbMjQzODUsOSwyNTg2LDIzNjIsODk5Nyw1Mjc4LDU4MjYsOTAzLDk4NTksODcwMyw3MjY5LDIxNzksMjM5OCw5MzY2XSwiLi9Vc2VyL0xvZ2luLyI6WzI0Mzg1LDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDIzOTgsOTM2Nl0sIi4vVXNlci9Mb2dpbi9pbmRleCI6WzI0Mzg1LDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsNzI2OSwyMTc5LDIzOTgsOTM2Nl0sIi4vVXNlci9Mb2dpbi9pbmRleC50c3giOlsyNDM4NSw5LDI1ODYsMjM2Miw4OTk3LDUyNzgsNTgyNiw5MDMsOTg1OSw4NzAzLDcyNjksMjE3OSwyMzk4LDkzNjZdLCIuL1VzZXIvU2V0dGluZ3MiOls2OTMyNSw5LDg5OTcsMjM5OCwxNDU4LDYxMTAsNDM5MywxOTQyXSwiLi9Vc2VyL1NldHRpbmdzLyI6WzY5MzI1LDksODk5NywyMzk4LDE0NTgsNjExMCw0MzkzLDE5NDJdLCIuL1VzZXIvU2V0dGluZ3MvaW5kZXgiOls2OTMyNSw5LDg5OTcsMjM5OCwxNDU4LDYxMTAsNDM5MywxOTQyXSwiLi9Vc2VyL1NldHRpbmdzL2luZGV4LnRzeCI6WzY5MzI1LDksODk5NywyMzk4LDE0NTgsNjExMCw0MzkzLDE5NDJdLCIuL1VzZXJDZW50ZXIiOlsxMTE4Nyw5LDI1ODYsMjM2Miw4OTk3LDUyNzgsNTgyNiw5MDMsOTg1OSw4NzAzLDIzOTgsNjE1NCw0MzkzLDM3OTksNzY2MiwxMDkxXSwiLi9Vc2VyQ2VudGVyLyI6WzExMTg3LDksMjU4NiwyMzYyLDg5OTcsNTI3OCw1ODI2LDkwMyw5ODU5LDg3MDMsMjM5OCw2MTU0LDQzOTMsMzc5OSw3NjYyLDEwOTFdLCIuL1VzZXJDZW50ZXIvaW5kZXgiOlsxMTE4Nyw5LDI1ODYsMjM2Miw4OTk3LDUyNzgsNTgyNiw5MDMsOTg1OSw4NzAzLDIzOTgsNjE1NCw0MzkzLDM3OTksNzY2MiwxMDkxXSwiLi9Vc2VyQ2VudGVyL2luZGV4Lm1vZHVsZS5jc3MiOlsyMzg1Niw5LDM4NTZdLCIuL1VzZXJDZW50ZXIvaW5kZXgudHN4IjpbMTExODcsOSwyNTg2LDIzNjIsODk5Nyw1Mjc4LDU4MjYsOTAzLDk4NTksODcwMywyMzk4LDYxNTQsNDM5MywzNzk5LDc2NjIsMTA5MV0sIi4vV2VsY29tZSI6Wzk2MjIsOSw4OTk3LDIzOTgsMTQ1OCw2MTEwLDQzOTMsOTYyMl0sIi4vV2VsY29tZS50c3giOls5NjIyLDksODk5NywyMzk4LDE0NTgsNjExMCw0MzkzLDk2MjJdLCIuL3B0L1VwbG9hZCI6WzMzMjcyLDksMzI3Ml0sIi4vcHQvVXBsb2FkLmpzeCI6WzMzMjcyLDksMzI3Ml19O2Z1bmN0aW9uIG4odCl7aWYoIWUubyhyLHQpKXJldHVybiBQcm9taXNlLnJlc29sdmUoKS50aGVuKGZ1bmN0aW9uKCl7dmFyIGE9bmV3IEVycm9yKCJDYW5ub3QgZmluZCBtb2R1bGUgJyIrdCsiJyIpO3Rocm93IGEuY29kZT0iTU9EVUxFX05PVF9GT1VORCIsYX0pO3ZhciBpPXJbdF0scz1pWzBdO3JldHVybiBQcm9taXNlLmFsbChpLnNsaWNlKDIpLm1hcChlLmUpKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGUudChzLGlbMV18MTYpfSl9bi5rZXlzPWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5rZXlzKHIpfSxuLmlkPTcwNzE3LHkuZXhwb3J0cz1ufSwzNzkyMzpmdW5jdGlvbih5KXtmdW5jdGlvbiBwKGUscil7KHI9PW51bGx8fHI+ZS5sZW5ndGgpJiYocj1lLmxlbmd0aCk7Zm9yKHZhciBuPTAsdD1uZXcgQXJyYXkocik7bjxyO24rKyl0W25dPWVbbl07cmV0dXJuIHR9eS5leHBvcnRzPXAseS5leHBvcnRzLl9fZXNNb2R1bGU9ITAseS5leHBvcnRzLmRlZmF1bHQ9eS5leHBvcnRzfSw4MjE4NzpmdW5jdGlvbih5KXtmdW5jdGlvbiBwKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9eS5leHBvcnRzPXAseS5leHBvcnRzLl9fZXNNb2R1bGU9ITAseS5leHBvcnRzLmRlZmF1bHQ9eS5leHBvcnRzfSw5NjQ0NjpmdW5jdGlvbih5LHAsZSl7dmFyIHI9ZSgzNzkyMyk7ZnVuY3Rpb24gbih0KXtpZihBcnJheS5pc0FycmF5KHQpKXJldHVybiByKHQpfXkuZXhwb3J0cz1uLHkuZXhwb3J0cy5fX2VzTW9kdWxlPSEwLHkuZXhwb3J0cy5kZWZhdWx0PXkuZXhwb3J0c30sMjUwOTg6ZnVuY3Rpb24oeSl7ZnVuY3Rpb24gcChlKXtpZihlPT09dm9pZCAwKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGV9eS5leHBvcnRzPXAseS5leHBvcnRzLl9fZXNNb2R1bGU9ITAseS5leHBvcnRzLmRlZmF1bHQ9eS5leHBvcnRzfSw5OTI4OTpmdW5jdGlvbih5KXtmdW5jdGlvbiBwKHIsbix0LGkscyxhLHUpe3RyeXt2YXIgYz1yW2FdKHUpLGg9Yy52YWx1ZX1jYXRjaChkKXt0KGQpO3JldHVybn1jLmRvbmU/bihoKTpQcm9taXNlLnJlc29sdmUoaCkudGhlbihpLHMpfWZ1bmN0aW9uIGUocil7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49dGhpcyx0PWFyZ3VtZW50cztyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oaSxzKXt2YXIgYT1yLmFwcGx5KG4sdCk7ZnVuY3Rpb24gdShoKXtwKGEsaSxzLHUsYywibmV4dCIsaCl9ZnVuY3Rpb24gYyhoKXtwKGEsaSxzLHUsYywidGhyb3ciLGgpfXUodm9pZCAwKX0pfX15LmV4cG9ydHM9ZSx5LmV4cG9ydHMuX19lc01vZHVsZT0hMCx5LmV4cG9ydHMuZGVmYXVsdD15LmV4cG9ydHN9LDEyNDQ0OmZ1bmN0aW9uKHkpe2Z1bmN0aW9uIHAoZSxyKXtpZighKGUgaW5zdGFuY2VvZiByKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX15LmV4cG9ydHM9cCx5LmV4cG9ydHMuX19lc01vZHVsZT0hMCx5LmV4cG9ydHMuZGVmYXVsdD15LmV4cG9ydHN9LDcyMDA0OmZ1bmN0aW9uKHkscCxlKXt2YXIgcj1lKDUxODgzKTtmdW5jdGlvbiBuKGkscyl7Zm9yKHZhciBhPTA7YTxzLmxlbmd0aDthKyspe3ZhciB1PXNbYV07dS5lbnVtZXJhYmxlPXUuZW51bWVyYWJsZXx8ITEsdS5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHUmJih1LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxyKHUua2V5KSx1KX19ZnVuY3Rpb24gdChpLHMsYSl7cmV0dXJuIHMmJm4oaS5wcm90b3R5cGUscyksYSYmbihpLGEpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGl9eS5leHBvcnRzPXQseS5leHBvcnRzLl9fZXNNb2R1bGU9ITAseS5leHBvcnRzLmRlZmF1bHQ9eS5leHBvcnRzfSw2NDU5OTpmdW5jdGlvbih5LHAsZSl7dmFyIHI9ZSg5NjI2Myk7ZnVuY3Rpb24gbih0LGkpe3ZhciBzPXR5cGVvZiBTeW1ib2whPSJ1bmRlZmluZWQiJiZ0W1N5bWJvbC5pdGVyYXRvcl18fHRbIkBAaXRlcmF0b3IiXTtpZighcyl7aWYoQXJyYXkuaXNBcnJheSh0KXx8KHM9cih0KSl8fGkmJnQmJnR5cGVvZiB0Lmxlbmd0aD09Im51bWJlciIpe3MmJih0PXMpO3ZhciBhPTAsdT1mdW5jdGlvbigpe307cmV0dXJue3M6dSxuOmZ1bmN0aW9uKCl7cmV0dXJuIGE+PXQubGVuZ3RoP3tkb25lOiEwfTp7ZG9uZTohMSx2YWx1ZTp0W2ErK119fSxlOmZ1bmN0aW9uKEMpe3Rocm93IEN9LGY6dX19dGhyb3cgbmV3IFR5cGVFcnJvcihgSW52YWxpZCBhdHRlbXB0IHRvIGl0ZXJhdGUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLgorSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLmApfXZhciBjPSEwLGg9ITEsZDtyZXR1cm57czpmdW5jdGlvbigpe3M9cy5jYWxsKHQpfSxuOmZ1bmN0aW9uKCl7dmFyIEM9cy5uZXh0KCk7cmV0dXJuIGM9Qy5kb25lLEN9LGU6ZnVuY3Rpb24oQyl7aD0hMCxkPUN9LGY6ZnVuY3Rpb24oKXt0cnl7IWMmJnMucmV0dXJuIT1udWxsJiZzLnJldHVybigpfWZpbmFsbHl7aWYoaCl0aHJvdyBkfX19fXkuZXhwb3J0cz1uLHkuZXhwb3J0cy5fX2VzTW9kdWxlPSEwLHkuZXhwb3J0cy5kZWZhdWx0PXkuZXhwb3J0c30sMjYwMzc6ZnVuY3Rpb24oeSxwLGUpe3ZhciByPWUoNDgzNzQpLG49ZSgyMTc3MSksdD1lKDczNDA4KTtmdW5jdGlvbiBpKHMpe3ZhciBhPW4oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYz1yKHMpLGg7aWYoYSl7dmFyIGQ9cih0aGlzKS5jb25zdHJ1Y3RvcjtoPVJlZmxlY3QuY29uc3RydWN0KGMsYXJndW1lbnRzLGQpfWVsc2UgaD1jLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gdCh0aGlzLGgpfX15LmV4cG9ydHM9aSx5LmV4cG9ydHMuX19lc01vZHVsZT0hMCx5LmV4cG9ydHMuZGVmYXVsdD15LmV4cG9ydHN9LDk3ODM6ZnVuY3Rpb24oeSxwLGUpe3ZhciByPWUoNTE4ODMpO2Z1bmN0aW9uIG4odCxpLHMpe3JldHVybiBpPXIoaSksaSBpbiB0P09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGkse3ZhbHVlOnMsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTp0W2ldPXMsdH15LmV4cG9ydHM9bix5LmV4cG9ydHMuX19lc01vZHVsZT0hMCx5LmV4cG9ydHMuZGVmYXVsdD15LmV4cG9ydHN9LDQ4Mzc0OmZ1bmN0aW9uKHkpe2Z1bmN0aW9uIHAoZSl7cmV0dXJuIHkuZXhwb3J0cz1wPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKG4pe3JldHVybiBuLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKG4pfSx5LmV4cG9ydHMuX19lc01vZHVsZT0hMCx5LmV4cG9ydHMuZGVmYXVsdD15LmV4cG9ydHMscChlKX15LmV4cG9ydHM9cCx5LmV4cG9ydHMuX19lc01vZHVsZT0hMCx5LmV4cG9ydHMuZGVmYXVsdD15LmV4cG9ydHN9LDMxOTk2OmZ1bmN0aW9uKHkscCxlKXt2YXIgcj1lKDIxMzE0KTtmdW5jdGlvbiBuKHQsaSl7aWYodHlwZW9mIGkhPSJmdW5jdGlvbiImJmkhPT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7dC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShpJiZpLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOnQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGkmJnIodCxpKX15LmV4cG9ydHM9bix5LmV4cG9ydHMuX19lc01vZHVsZT0hMCx5LmV4cG9ydHMuZGVmYXVsdD15LmV4cG9ydHN9LDIxNzcxOmZ1bmN0aW9uKHkpe2Z1bmN0aW9uIHAoKXtpZih0eXBlb2YgUmVmbGVjdD09InVuZGVmaW5lZCJ8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZih0eXBlb2YgUHJveHk9PSJmdW5jdGlvbiIpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChlKXtyZXR1cm4hMX19eS5leHBvcnRzPXAseS5leHBvcnRzLl9fZXNNb2R1bGU9ITAseS5leHBvcnRzLmRlZmF1bHQ9eS5leHBvcnRzfSw5NjkzNjpmdW5jdGlvbih5KXtmdW5jdGlvbiBwKGUpe2lmKHR5cGVvZiBTeW1ib2whPSJ1bmRlZmluZWQiJiZlW1N5bWJvbC5pdGVyYXRvcl0hPW51bGx8fGVbIkBAaXRlcmF0b3IiXSE9bnVsbClyZXR1cm4gQXJyYXkuZnJvbShlKX15LmV4cG9ydHM9cCx5LmV4cG9ydHMuX19lc01vZHVsZT0hMCx5LmV4cG9ydHMuZGVmYXVsdD15LmV4cG9ydHN9LDczOTY0OmZ1bmN0aW9uKHkpe2Z1bmN0aW9uIHAoZSxyKXt2YXIgbj1lPT1udWxsP251bGw6dHlwZW9mIFN5bWJvbCE9InVuZGVmaW5lZCImJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVsiQEBpdGVyYXRvciJdO2lmKG4hPW51bGwpe3ZhciB0LGkscyxhLHU9W10sYz0hMCxoPSExO3RyeXtpZihzPShuPW4uY2FsbChlKSkubmV4dCxyPT09MCl7aWYoT2JqZWN0KG4pIT09bilyZXR1cm47Yz0hMX1lbHNlIGZvcig7IShjPSh0PXMuY2FsbChuKSkuZG9uZSkmJih1LnB1c2godC52YWx1ZSksdS5sZW5ndGghPT1yKTtjPSEwKTt9Y2F0Y2goZCl7aD0hMCxpPWR9ZmluYWxseXt0cnl7aWYoIWMmJm4ucmV0dXJuIT1udWxsJiYoYT1uLnJldHVybigpLE9iamVjdChhKSE9PWEpKXJldHVybn1maW5hbGx5e2lmKGgpdGhyb3cgaX19cmV0dXJuIHV9fXkuZXhwb3J0cz1wLHkuZXhwb3J0cy5fX2VzTW9kdWxlPSEwLHkuZXhwb3J0cy5kZWZhdWx0PXkuZXhwb3J0c30sNjkwOTQ6ZnVuY3Rpb24oeSl7ZnVuY3Rpb24gcCgpe3Rocm93IG5ldyBUeXBlRXJyb3IoYEludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuCitJbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuYCl9eS5leHBvcnRzPXAseS5leHBvcnRzLl9fZXNNb2R1bGU9ITAseS5leHBvcnRzLmRlZmF1bHQ9eS5leHBvcnRzfSw4ODYxOTpmdW5jdGlvbih5KXtmdW5jdGlvbiBwKCl7dGhyb3cgbmV3IFR5cGVFcnJvcihgSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuCitJbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuYCl9eS5leHBvcnRzPXAseS5leHBvcnRzLl9fZXNNb2R1bGU9ITAseS5leHBvcnRzLmRlZmF1bHQ9eS5leHBvcnRzfSw5Nzg1NzpmdW5jdGlvbih5LHAsZSl7dmFyIHI9ZSg5NzgzKTtmdW5jdGlvbiBuKGkscyl7dmFyIGE9T2JqZWN0LmtleXMoaSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHU9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhpKTtzJiYodT11LmZpbHRlcihmdW5jdGlvbihjKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihpLGMpLmVudW1lcmFibGV9KSksYS5wdXNoLmFwcGx5KGEsdSl9cmV0dXJuIGF9ZnVuY3Rpb24gdChpKXtmb3IodmFyIHM9MTtzPGFyZ3VtZW50cy5sZW5ndGg7cysrKXt2YXIgYT1hcmd1bWVudHNbc10hPW51bGw/YXJndW1lbnRzW3NdOnt9O3MlMj9uKE9iamVjdChhKSwhMCkuZm9yRWFjaChmdW5jdGlvbih1KXtyKGksdSxhW3VdKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGksT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoYSkpOm4oT2JqZWN0KGEpKS5mb3JFYWNoKGZ1bmN0aW9uKHUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShpLHUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhLHUpKX0pfXJldHVybiBpfXkuZXhwb3J0cz10LHkuZXhwb3J0cy5fX2VzTW9kdWxlPSEwLHkuZXhwb3J0cy5kZWZhdWx0PXkuZXhwb3J0c30sMTM3Njk6ZnVuY3Rpb24oeSxwLGUpe3ZhciByPWUoNDg1NDEpO2Z1bmN0aW9uIG4odCxpKXtpZih0PT1udWxsKXJldHVybnt9O3ZhciBzPXIodCxpKSxhLHU7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGM9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTtmb3IodT0wO3U8Yy5sZW5ndGg7dSsrKWE9Y1t1XSwhKGkuaW5kZXhPZihhKT49MCkmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh0LGEpJiYoc1thXT10W2FdKX1yZXR1cm4gc315LmV4cG9ydHM9bix5LmV4cG9ydHMuX19lc01vZHVsZT0hMCx5LmV4cG9ydHMuZGVmYXVsdD15LmV4cG9ydHN9LDQ4NTQxOmZ1bmN0aW9uKHkpe2Z1bmN0aW9uIHAoZSxyKXtpZihlPT1udWxsKXJldHVybnt9O3ZhciBuPXt9LHQ9T2JqZWN0LmtleXMoZSksaSxzO2ZvcihzPTA7czx0Lmxlbmd0aDtzKyspaT10W3NdLCEoci5pbmRleE9mKGkpPj0wKSYmKG5baV09ZVtpXSk7cmV0dXJuIG59eS5leHBvcnRzPXAseS5leHBvcnRzLl9fZXNNb2R1bGU9ITAseS5leHBvcnRzLmRlZmF1bHQ9eS5leHBvcnRzfSw3MzQwODpmdW5jdGlvbih5LHAsZSl7dmFyIHI9ZSg1MjY3NykuZGVmYXVsdCxuPWUoMjUwOTgpO2Z1bmN0aW9uIHQoaSxzKXtpZihzJiYocihzKT09PSJvYmplY3QifHx0eXBlb2Ygcz09ImZ1bmN0aW9uIikpcmV0dXJuIHM7aWYocyE9PXZvaWQgMCl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBuKGkpfXkuZXhwb3J0cz10LHkuZXhwb3J0cy5fX2VzTW9kdWxlPSEwLHkuZXhwb3J0cy5kZWZhdWx0PXkuZXhwb3J0c30sMTUwMDk6ZnVuY3Rpb24oeSxwLGUpe3ZhciByPWUoNTI2NzcpLmRlZmF1bHQ7ZnVuY3Rpb24gbigpeyJ1c2Ugc3RyaWN0Ijt5LmV4cG9ydHM9bj1mdW5jdGlvbigpe3JldHVybiBpfSx5LmV4cG9ydHMuX19lc01vZHVsZT0hMCx5LmV4cG9ydHMuZGVmYXVsdD15LmV4cG9ydHM7dmFyIHQsaT17fSxzPU9iamVjdC5wcm90b3R5cGUsYT1zLmhhc093blByb3BlcnR5LHU9T2JqZWN0LmRlZmluZVByb3BlcnR5fHxmdW5jdGlvbihWLFosUCl7VltaXT1QLnZhbHVlfSxjPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiI/U3ltYm9sOnt9LGg9Yy5pdGVyYXRvcnx8IkBAaXRlcmF0b3IiLGQ9Yy5hc3luY0l0ZXJhdG9yfHwiQEBhc3luY0l0ZXJhdG9yIixtPWMudG9TdHJpbmdUYWd8fCJAQHRvU3RyaW5nVGFnIjtmdW5jdGlvbiBDKFYsWixQKXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KFYsWix7dmFsdWU6UCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pLFZbWl19dHJ5e0Moe30sIiIpfWNhdGNoKFYpe0M9ZnVuY3Rpb24oUCxLLHNlKXtyZXR1cm4gUFtLXT1zZX19ZnVuY3Rpb24gZyhWLFosUCxLKXt2YXIgc2U9WiYmWi5wcm90b3R5cGUgaW5zdGFuY2VvZiBMP1o6TCxuZT1PYmplY3QuY3JlYXRlKHNlLnByb3RvdHlwZSksb2U9bmV3IGooS3x8W10pO3JldHVybiB1KG5lLCJfaW52b2tlIix7dmFsdWU6dGUoVixQLG9lKX0pLG5lfWZ1bmN0aW9uIHcoVixaLFApe3RyeXtyZXR1cm57dHlwZToibm9ybWFsIixhcmc6Vi5jYWxsKFosUCl9fWNhdGNoKEspe3JldHVybnt0eXBlOiJ0aHJvdyIsYXJnOkt9fX1pLndyYXA9Zzt2YXIgRT0ic3VzcGVuZGVkU3RhcnQiLHg9InN1c3BlbmRlZFlpZWxkIixPPSJleGVjdXRpbmciLFQ9ImNvbXBsZXRlZCIsUz17fTtmdW5jdGlvbiBMKCl7fWZ1bmN0aW9uIEkoKXt9ZnVuY3Rpb24gUigpe312YXIgej17fTtDKHosaCxmdW5jdGlvbigpe3JldHVybiB0aGlzfSk7dmFyIEc9T2JqZWN0LmdldFByb3RvdHlwZU9mLFk9RyYmRyhHKEQoW10pKSk7WSYmWSE9PXMmJmEuY2FsbChZLGgpJiYoej1ZKTt2YXIgZWU9Ui5wcm90b3R5cGU9TC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh6KTtmdW5jdGlvbiBKKFYpe1sibmV4dCIsInRocm93IiwicmV0dXJuIl0uZm9yRWFjaChmdW5jdGlvbihaKXtDKFYsWixmdW5jdGlvbihQKXtyZXR1cm4gdGhpcy5faW52b2tlKFosUCl9KX0pfWZ1bmN0aW9uIG1lKFYsWil7ZnVuY3Rpb24gUChzZSxuZSxvZSxmZSl7dmFyIEVlPXcoVltzZV0sVixuZSk7aWYoRWUudHlwZSE9PSJ0aHJvdyIpe3ZhciBSZT1FZS5hcmcsQmU9UmUudmFsdWU7cmV0dXJuIEJlJiZyKEJlKT09Im9iamVjdCImJmEuY2FsbChCZSwiX19hd2FpdCIpP1oucmVzb2x2ZShCZS5fX2F3YWl0KS50aGVuKGZ1bmN0aW9uKFllKXtQKCJuZXh0IixZZSxvZSxmZSl9LGZ1bmN0aW9uKFllKXtQKCJ0aHJvdyIsWWUsb2UsZmUpfSk6Wi5yZXNvbHZlKEJlKS50aGVuKGZ1bmN0aW9uKFllKXtSZS52YWx1ZT1ZZSxvZShSZSl9LGZ1bmN0aW9uKFllKXtyZXR1cm4gUCgidGhyb3ciLFllLG9lLGZlKX0pfWZlKEVlLmFyZyl9dmFyIEs7dSh0aGlzLCJfaW52b2tlIix7dmFsdWU6ZnVuY3Rpb24obmUsb2Upe2Z1bmN0aW9uIGZlKCl7cmV0dXJuIG5ldyBaKGZ1bmN0aW9uKEVlLFJlKXtQKG5lLG9lLEVlLFJlKX0pfXJldHVybiBLPUs/Sy50aGVuKGZlLGZlKTpmZSgpfX0pfWZ1bmN0aW9uIHRlKFYsWixQKXt2YXIgSz1FO3JldHVybiBmdW5jdGlvbihzZSxuZSl7aWYoSz09PU8pdGhyb3cgbmV3IEVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nIik7aWYoSz09PVQpe2lmKHNlPT09InRocm93Iil0aHJvdyBuZTtyZXR1cm57dmFsdWU6dCxkb25lOiEwfX1mb3IoUC5tZXRob2Q9c2UsUC5hcmc9bmU7Oyl7dmFyIG9lPVAuZGVsZWdhdGU7aWYob2Upe3ZhciBmZT1sZShvZSxQKTtpZihmZSl7aWYoZmU9PT1TKWNvbnRpbnVlO3JldHVybiBmZX19aWYoUC5tZXRob2Q9PT0ibmV4dCIpUC5zZW50PVAuX3NlbnQ9UC5hcmc7ZWxzZSBpZihQLm1ldGhvZD09PSJ0aHJvdyIpe2lmKEs9PT1FKXRocm93IEs9VCxQLmFyZztQLmRpc3BhdGNoRXhjZXB0aW9uKFAuYXJnKX1lbHNlIFAubWV0aG9kPT09InJldHVybiImJlAuYWJydXB0KCJyZXR1cm4iLFAuYXJnKTtLPU87dmFyIEVlPXcoVixaLFApO2lmKEVlLnR5cGU9PT0ibm9ybWFsIil7aWYoSz1QLmRvbmU/VDp4LEVlLmFyZz09PVMpY29udGludWU7cmV0dXJue3ZhbHVlOkVlLmFyZyxkb25lOlAuZG9uZX19RWUudHlwZT09PSJ0aHJvdyImJihLPVQsUC5tZXRob2Q9InRocm93IixQLmFyZz1FZS5hcmcpfX19ZnVuY3Rpb24gbGUoVixaKXt2YXIgUD1aLm1ldGhvZCxLPVYuaXRlcmF0b3JbUF07aWYoSz09PXQpcmV0dXJuIFouZGVsZWdhdGU9bnVsbCxQPT09InRocm93IiYmVi5pdGVyYXRvci5yZXR1cm4mJihaLm1ldGhvZD0icmV0dXJuIixaLmFyZz10LGxlKFYsWiksWi5tZXRob2Q9PT0idGhyb3ciKXx8UCE9PSJyZXR1cm4iJiYoWi5tZXRob2Q9InRocm93IixaLmFyZz1uZXcgVHlwZUVycm9yKCJUaGUgaXRlcmF0b3IgZG9lcyBub3QgcHJvdmlkZSBhICciK1ArIicgbWV0aG9kIikpLFM7dmFyIHNlPXcoSyxWLml0ZXJhdG9yLFouYXJnKTtpZihzZS50eXBlPT09InRocm93IilyZXR1cm4gWi5tZXRob2Q9InRocm93IixaLmFyZz1zZS5hcmcsWi5kZWxlZ2F0ZT1udWxsLFM7dmFyIG5lPXNlLmFyZztyZXR1cm4gbmU/bmUuZG9uZT8oWltWLnJlc3VsdE5hbWVdPW5lLnZhbHVlLFoubmV4dD1WLm5leHRMb2MsWi5tZXRob2QhPT0icmV0dXJuIiYmKFoubWV0aG9kPSJuZXh0IixaLmFyZz10KSxaLmRlbGVnYXRlPW51bGwsUyk6bmU6KFoubWV0aG9kPSJ0aHJvdyIsWi5hcmc9bmV3IFR5cGVFcnJvcigiaXRlcmF0b3IgcmVzdWx0IGlzIG5vdCBhbiBvYmplY3QiKSxaLmRlbGVnYXRlPW51bGwsUyl9ZnVuY3Rpb24gY2UoVil7dmFyIFo9e3RyeUxvYzpWWzBdfTsxIGluIFYmJihaLmNhdGNoTG9jPVZbMV0pLDIgaW4gViYmKFouZmluYWxseUxvYz1WWzJdLFouYWZ0ZXJMb2M9VlszXSksdGhpcy50cnlFbnRyaWVzLnB1c2goWil9ZnVuY3Rpb24gVyhWKXt2YXIgWj1WLmNvbXBsZXRpb258fHt9O1oudHlwZT0ibm9ybWFsIixkZWxldGUgWi5hcmcsVi5jb21wbGV0aW9uPVp9ZnVuY3Rpb24gaihWKXt0aGlzLnRyeUVudHJpZXM9W3t0cnlMb2M6InJvb3QifV0sVi5mb3JFYWNoKGNlLHRoaXMpLHRoaXMucmVzZXQoITApfWZ1bmN0aW9uIEQoVil7aWYoVnx8Vj09PSIiKXt2YXIgWj1WW2hdO2lmKFopcmV0dXJuIFouY2FsbChWKTtpZih0eXBlb2YgVi5uZXh0PT0iZnVuY3Rpb24iKXJldHVybiBWO2lmKCFpc05hTihWLmxlbmd0aCkpe3ZhciBQPS0xLEs9ZnVuY3Rpb24gc2UoKXtmb3IoOysrUDxWLmxlbmd0aDspaWYoYS5jYWxsKFYsUCkpcmV0dXJuIHNlLnZhbHVlPVZbUF0sc2UuZG9uZT0hMSxzZTtyZXR1cm4gc2UudmFsdWU9dCxzZS5kb25lPSEwLHNlfTtyZXR1cm4gSy5uZXh0PUt9fXRocm93IG5ldyBUeXBlRXJyb3IocihWKSsiIGlzIG5vdCBpdGVyYWJsZSIpfXJldHVybiBJLnByb3RvdHlwZT1SLHUoZWUsImNvbnN0cnVjdG9yIix7dmFsdWU6Uixjb25maWd1cmFibGU6ITB9KSx1KFIsImNvbnN0cnVjdG9yIix7dmFsdWU6SSxjb25maWd1cmFibGU6ITB9KSxJLmRpc3BsYXlOYW1lPUMoUixtLCJHZW5lcmF0b3JGdW5jdGlvbiIpLGkuaXNHZW5lcmF0b3JGdW5jdGlvbj1mdW5jdGlvbihWKXt2YXIgWj10eXBlb2YgVj09ImZ1bmN0aW9uIiYmVi5jb25zdHJ1Y3RvcjtyZXR1cm4hIVomJihaPT09SXx8KFouZGlzcGxheU5hbWV8fFoubmFtZSk9PT0iR2VuZXJhdG9yRnVuY3Rpb24iKX0saS5tYXJrPWZ1bmN0aW9uKFYpe3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mKFYsUik6KFYuX19wcm90b19fPVIsQyhWLG0sIkdlbmVyYXRvckZ1bmN0aW9uIikpLFYucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZWUpLFZ9LGkuYXdyYXA9ZnVuY3Rpb24oVil7cmV0dXJue19fYXdhaXQ6Vn19LEoobWUucHJvdG90eXBlKSxDKG1lLnByb3RvdHlwZSxkLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxpLkFzeW5jSXRlcmF0b3I9bWUsaS5hc3luYz1mdW5jdGlvbihWLFosUCxLLHNlKXtzZT09PXZvaWQgMCYmKHNlPVByb21pc2UpO3ZhciBuZT1uZXcgbWUoZyhWLFosUCxLKSxzZSk7cmV0dXJuIGkuaXNHZW5lcmF0b3JGdW5jdGlvbihaKT9uZTpuZS5uZXh0KCkudGhlbihmdW5jdGlvbihvZSl7cmV0dXJuIG9lLmRvbmU/b2UudmFsdWU6bmUubmV4dCgpfSl9LEooZWUpLEMoZWUsbSwiR2VuZXJhdG9yIiksQyhlZSxoLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxDKGVlLCJ0b1N0cmluZyIsZnVuY3Rpb24oKXtyZXR1cm4iW29iamVjdCBHZW5lcmF0b3JdIn0pLGkua2V5cz1mdW5jdGlvbihWKXt2YXIgWj1PYmplY3QoViksUD1bXTtmb3IodmFyIEsgaW4gWilQLnB1c2goSyk7cmV0dXJuIFAucmV2ZXJzZSgpLGZ1bmN0aW9uIHNlKCl7Zm9yKDtQLmxlbmd0aDspe3ZhciBuZT1QLnBvcCgpO2lmKG5lIGluIFopcmV0dXJuIHNlLnZhbHVlPW5lLHNlLmRvbmU9ITEsc2V9cmV0dXJuIHNlLmRvbmU9ITAsc2V9fSxpLnZhbHVlcz1ELGoucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpqLHJlc2V0OmZ1bmN0aW9uKFope2lmKHRoaXMucHJldj0wLHRoaXMubmV4dD0wLHRoaXMuc2VudD10aGlzLl9zZW50PXQsdGhpcy5kb25lPSExLHRoaXMuZGVsZWdhdGU9bnVsbCx0aGlzLm1ldGhvZD0ibmV4dCIsdGhpcy5hcmc9dCx0aGlzLnRyeUVudHJpZXMuZm9yRWFjaChXKSwhWilmb3IodmFyIFAgaW4gdGhpcylQLmNoYXJBdCgwKT09PSJ0IiYmYS5jYWxsKHRoaXMsUCkmJiFpc05hTigrUC5zbGljZSgxKSkmJih0aGlzW1BdPXQpfSxzdG9wOmZ1bmN0aW9uKCl7dGhpcy5kb25lPSEwO3ZhciBaPXRoaXMudHJ5RW50cmllc1swXS5jb21wbGV0aW9uO2lmKFoudHlwZT09PSJ0aHJvdyIpdGhyb3cgWi5hcmc7cmV0dXJuIHRoaXMucnZhbH0sZGlzcGF0Y2hFeGNlcHRpb246ZnVuY3Rpb24oWil7aWYodGhpcy5kb25lKXRocm93IFo7dmFyIFA9dGhpcztmdW5jdGlvbiBLKFJlLEJlKXtyZXR1cm4gb2UudHlwZT0idGhyb3ciLG9lLmFyZz1aLFAubmV4dD1SZSxCZSYmKFAubWV0aG9kPSJuZXh0IixQLmFyZz10KSwhIUJlfWZvcih2YXIgc2U9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO3NlPj0wOy0tc2Upe3ZhciBuZT10aGlzLnRyeUVudHJpZXNbc2VdLG9lPW5lLmNvbXBsZXRpb247aWYobmUudHJ5TG9jPT09InJvb3QiKXJldHVybiBLKCJlbmQiKTtpZihuZS50cnlMb2M8PXRoaXMucHJldil7dmFyIGZlPWEuY2FsbChuZSwiY2F0Y2hMb2MiKSxFZT1hLmNhbGwobmUsImZpbmFsbHlMb2MiKTtpZihmZSYmRWUpe2lmKHRoaXMucHJldjxuZS5jYXRjaExvYylyZXR1cm4gSyhuZS5jYXRjaExvYywhMCk7aWYodGhpcy5wcmV2PG5lLmZpbmFsbHlMb2MpcmV0dXJuIEsobmUuZmluYWxseUxvYyl9ZWxzZSBpZihmZSl7aWYodGhpcy5wcmV2PG5lLmNhdGNoTG9jKXJldHVybiBLKG5lLmNhdGNoTG9jLCEwKX1lbHNle2lmKCFFZSl0aHJvdyBuZXcgRXJyb3IoInRyeSBzdGF0ZW1lbnQgd2l0aG91dCBjYXRjaCBvciBmaW5hbGx5Iik7aWYodGhpcy5wcmV2PG5lLmZpbmFsbHlMb2MpcmV0dXJuIEsobmUuZmluYWxseUxvYyl9fX19LGFicnVwdDpmdW5jdGlvbihaLFApe2Zvcih2YXIgSz10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7Sz49MDstLUspe3ZhciBzZT10aGlzLnRyeUVudHJpZXNbS107aWYoc2UudHJ5TG9jPD10aGlzLnByZXYmJmEuY2FsbChzZSwiZmluYWxseUxvYyIpJiZ0aGlzLnByZXY8c2UuZmluYWxseUxvYyl7dmFyIG5lPXNlO2JyZWFrfX1uZSYmKFo9PT0iYnJlYWsifHxaPT09ImNvbnRpbnVlIikmJm5lLnRyeUxvYzw9UCYmUDw9bmUuZmluYWxseUxvYyYmKG5lPW51bGwpO3ZhciBvZT1uZT9uZS5jb21wbGV0aW9uOnt9O3JldHVybiBvZS50eXBlPVosb2UuYXJnPVAsbmU/KHRoaXMubWV0aG9kPSJuZXh0Iix0aGlzLm5leHQ9bmUuZmluYWxseUxvYyxTKTp0aGlzLmNvbXBsZXRlKG9lKX0sY29tcGxldGU6ZnVuY3Rpb24oWixQKXtpZihaLnR5cGU9PT0idGhyb3ciKXRocm93IFouYXJnO3JldHVybiBaLnR5cGU9PT0iYnJlYWsifHxaLnR5cGU9PT0iY29udGludWUiP3RoaXMubmV4dD1aLmFyZzpaLnR5cGU9PT0icmV0dXJuIj8odGhpcy5ydmFsPXRoaXMuYXJnPVouYXJnLHRoaXMubWV0aG9kPSJyZXR1cm4iLHRoaXMubmV4dD0iZW5kIik6Wi50eXBlPT09Im5vcm1hbCImJlAmJih0aGlzLm5leHQ9UCksU30sZmluaXNoOmZ1bmN0aW9uKFope2Zvcih2YXIgUD10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7UD49MDstLVApe3ZhciBLPXRoaXMudHJ5RW50cmllc1tQXTtpZihLLmZpbmFsbHlMb2M9PT1aKXJldHVybiB0aGlzLmNvbXBsZXRlKEsuY29tcGxldGlvbixLLmFmdGVyTG9jKSxXKEspLFN9fSxjYXRjaDpmdW5jdGlvbihaKXtmb3IodmFyIFA9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO1A+PTA7LS1QKXt2YXIgSz10aGlzLnRyeUVudHJpZXNbUF07aWYoSy50cnlMb2M9PT1aKXt2YXIgc2U9Sy5jb21wbGV0aW9uO2lmKHNlLnR5cGU9PT0idGhyb3ciKXt2YXIgbmU9c2UuYXJnO1coSyl9cmV0dXJuIG5lfX10aHJvdyBuZXcgRXJyb3IoImlsbGVnYWwgY2F0Y2ggYXR0ZW1wdCIpfSxkZWxlZ2F0ZVlpZWxkOmZ1bmN0aW9uKFosUCxLKXtyZXR1cm4gdGhpcy5kZWxlZ2F0ZT17aXRlcmF0b3I6RChaKSxyZXN1bHROYW1lOlAsbmV4dExvYzpLfSx0aGlzLm1ldGhvZD09PSJuZXh0IiYmKHRoaXMuYXJnPXQpLFN9fSxpfXkuZXhwb3J0cz1uLHkuZXhwb3J0cy5fX2VzTW9kdWxlPSEwLHkuZXhwb3J0cy5kZWZhdWx0PXkuZXhwb3J0c30sMjEzMTQ6ZnVuY3Rpb24oeSl7ZnVuY3Rpb24gcChlLHIpe3JldHVybiB5LmV4cG9ydHM9cD1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih0LGkpe3JldHVybiB0Ll9fcHJvdG9fXz1pLHR9LHkuZXhwb3J0cy5fX2VzTW9kdWxlPSEwLHkuZXhwb3J0cy5kZWZhdWx0PXkuZXhwb3J0cyxwKGUscil9eS5leHBvcnRzPXAseS5leHBvcnRzLl9fZXNNb2R1bGU9ITAseS5leHBvcnRzLmRlZmF1bHQ9eS5leHBvcnRzfSw1NTc0OmZ1bmN0aW9uKHkscCxlKXt2YXIgcj1lKDgyMTg3KSxuPWUoNzM5NjQpLHQ9ZSg5NjI2MyksaT1lKDY5MDk0KTtmdW5jdGlvbiBzKGEsdSl7cmV0dXJuIHIoYSl8fG4oYSx1KXx8dChhLHUpfHxpKCl9eS5leHBvcnRzPXMseS5leHBvcnRzLl9fZXNNb2R1bGU9ITAseS5leHBvcnRzLmRlZmF1bHQ9eS5leHBvcnRzfSwxOTYzMjpmdW5jdGlvbih5LHAsZSl7dmFyIHI9ZSg5NjQ0Niksbj1lKDk2OTM2KSx0PWUoOTYyNjMpLGk9ZSg4ODYxOSk7ZnVuY3Rpb24gcyhhKXtyZXR1cm4gcihhKXx8bihhKXx8dChhKXx8aSgpfXkuZXhwb3J0cz1zLHkuZXhwb3J0cy5fX2VzTW9kdWxlPSEwLHkuZXhwb3J0cy5kZWZhdWx0PXkuZXhwb3J0c30sNjY1MTg6ZnVuY3Rpb24oeSxwLGUpe3ZhciByPWUoNTI2NzcpLmRlZmF1bHQ7ZnVuY3Rpb24gbih0LGkpe2lmKHIodCkhPSJvYmplY3QifHwhdClyZXR1cm4gdDt2YXIgcz10W1N5bWJvbC50b1ByaW1pdGl2ZV07aWYocyE9PXZvaWQgMCl7dmFyIGE9cy5jYWxsKHQsaXx8ImRlZmF1bHQiKTtpZihyKGEpIT0ib2JqZWN0IilyZXR1cm4gYTt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybihpPT09InN0cmluZyI/U3RyaW5nOk51bWJlcikodCl9eS5leHBvcnRzPW4seS5leHBvcnRzLl9fZXNNb2R1bGU9ITAseS5leHBvcnRzLmRlZmF1bHQ9eS5leHBvcnRzfSw1MTg4MzpmdW5jdGlvbih5LHAsZSl7dmFyIHI9ZSg1MjY3NykuZGVmYXVsdCxuPWUoNjY1MTgpO2Z1bmN0aW9uIHQoaSl7dmFyIHM9bihpLCJzdHJpbmciKTtyZXR1cm4gcihzKT09InN5bWJvbCI/czpTdHJpbmcocyl9eS5leHBvcnRzPXQseS5leHBvcnRzLl9fZXNNb2R1bGU9ITAseS5leHBvcnRzLmRlZmF1bHQ9eS5leHBvcnRzfSw1MjY3NzpmdW5jdGlvbih5KXtmdW5jdGlvbiBwKGUpeyJAYmFiZWwvaGVscGVycyAtIHR5cGVvZiI7cmV0dXJuIHkuZXhwb3J0cz1wPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJnR5cGVvZiBTeW1ib2wuaXRlcmF0b3I9PSJzeW1ib2wiP2Z1bmN0aW9uKHIpe3JldHVybiB0eXBlb2Ygcn06ZnVuY3Rpb24ocil7cmV0dXJuIHImJnR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJnIuY29uc3RydWN0b3I9PT1TeW1ib2wmJnIhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiByfSx5LmV4cG9ydHMuX19lc01vZHVsZT0hMCx5LmV4cG9ydHMuZGVmYXVsdD15LmV4cG9ydHMscChlKX15LmV4cG9ydHM9cCx5LmV4cG9ydHMuX19lc01vZHVsZT0hMCx5LmV4cG9ydHMuZGVmYXVsdD15LmV4cG9ydHN9LDk2MjYzOmZ1bmN0aW9uKHkscCxlKXt2YXIgcj1lKDM3OTIzKTtmdW5jdGlvbiBuKHQsaSl7aWYodCl7aWYodHlwZW9mIHQ9PSJzdHJpbmciKXJldHVybiByKHQsaSk7dmFyIHM9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpLnNsaWNlKDgsLTEpO2lmKHM9PT0iT2JqZWN0IiYmdC5jb25zdHJ1Y3RvciYmKHM9dC5jb25zdHJ1Y3Rvci5uYW1lKSxzPT09Ik1hcCJ8fHM9PT0iU2V0IilyZXR1cm4gQXJyYXkuZnJvbSh0KTtpZihzPT09IkFyZ3VtZW50cyJ8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KHMpKXJldHVybiByKHQsaSl9fXkuZXhwb3J0cz1uLHkuZXhwb3J0cy5fX2VzTW9kdWxlPSEwLHkuZXhwb3J0cy5kZWZhdWx0PXkuZXhwb3J0c30sOTM5Njc6ZnVuY3Rpb24oeSxwKXt2YXIgZSxyOyhmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj17fS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiB0KCl7Zm9yKHZhciBhPSIiLHU9MDt1PGFyZ3VtZW50cy5sZW5ndGg7dSsrKXt2YXIgYz1hcmd1bWVudHNbdV07YyYmKGE9cyhhLGkoYykpKX1yZXR1cm4gYX1mdW5jdGlvbiBpKGEpe2lmKHR5cGVvZiBhPT0ic3RyaW5nInx8dHlwZW9mIGE9PSJudW1iZXIiKXJldHVybiBhO2lmKHR5cGVvZiBhIT0ib2JqZWN0IilyZXR1cm4iIjtpZihBcnJheS5pc0FycmF5KGEpKXJldHVybiB0LmFwcGx5KG51bGwsYSk7aWYoYS50b1N0cmluZyE9PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcmJiFhLnRvU3RyaW5nLnRvU3RyaW5nKCkuaW5jbHVkZXMoIltuYXRpdmUgY29kZV0iKSlyZXR1cm4gYS50b1N0cmluZygpO3ZhciB1PSIiO2Zvcih2YXIgYyBpbiBhKW4uY2FsbChhLGMpJiZhW2NdJiYodT1zKHUsYykpO3JldHVybiB1fWZ1bmN0aW9uIHMoYSx1KXtyZXR1cm4gdT9hP2ErIiAiK3U6YSt1OmF9eS5leHBvcnRzPyh0LmRlZmF1bHQ9dCx5LmV4cG9ydHM9dCk6KGU9W10scj1mdW5jdGlvbigpe3JldHVybiB0fS5hcHBseShwLGUpLHIhPT12b2lkIDAmJih5LmV4cG9ydHM9cikpfSkoKX0sMTA1MDk6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDY5OTg1KSxuPWUoMjM2OTEpLHQ9VHlwZUVycm9yO3kuZXhwb3J0cz1mdW5jdGlvbihpKXtpZihyKGkpKXJldHVybiBpO3Rocm93IG5ldyB0KG4oaSkrIiBpcyBub3QgYSBmdW5jdGlvbiIpfX0sNTI2NTU6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDE5NDI5KSxuPWUoMjM2OTEpLHQ9VHlwZUVycm9yO3kuZXhwb3J0cz1mdW5jdGlvbihpKXtpZihyKGkpKXJldHVybiBpO3Rocm93IG5ldyB0KG4oaSkrIiBpcyBub3QgYSBjb25zdHJ1Y3RvciIpfX0sOTk0NTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoODM5MTQpLmhhczt5LmV4cG9ydHM9ZnVuY3Rpb24obil7cmV0dXJuIHIobiksbn19LDIzNTUwOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg2OTk4NSksbj1TdHJpbmcsdD1UeXBlRXJyb3I7eS5leHBvcnRzPWZ1bmN0aW9uKGkpe2lmKHR5cGVvZiBpPT0ib2JqZWN0Inx8cihpKSlyZXR1cm4gaTt0aHJvdyBuZXcgdCgiQ2FuJ3Qgc2V0ICIrbihpKSsiIGFzIGEgcHJvdG90eXBlIil9fSwxMDAyOTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNjEwMzQpLmhhczt5LmV4cG9ydHM9ZnVuY3Rpb24obil7cmV0dXJuIHIobiksbn19LDUxMDgyOmZ1bmN0aW9uKHkpeyJ1c2Ugc3RyaWN0Ijt2YXIgcD1UeXBlRXJyb3I7eS5leHBvcnRzPWZ1bmN0aW9uKGUpe2lmKHR5cGVvZiBlPT0ic3RyaW5nIilyZXR1cm4gZTt0aHJvdyBuZXcgcCgiQXJndW1lbnQgaXMgbm90IGEgc3RyaW5nIil9fSw0NTc6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDE2ODAzKS5oYXM7eS5leHBvcnRzPWZ1bmN0aW9uKG4pe3JldHVybiByKG4pLG59fSw1MzQ5OTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzg2MTYpLmhhczt5LmV4cG9ydHM9ZnVuY3Rpb24obil7cmV0dXJuIHIobiksbn19LDI5MTk5OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSgyMjYxNSksbj1lKDY4ODQ0KSx0PWUoNTQwNzEpLGk9ZSg4NTAyNykscz1lKDEwNTA5KSxhPWUoOTgxKSx1PWUoNTQ4NDkpLGM9ZSg0NDIwMSksaD1jKCJhc3luY0Rpc3Bvc2UiKSxkPWMoImRpc3Bvc2UiKSxtPW4oW10ucHVzaCksQz1mdW5jdGlvbih3LEUpe2lmKEU9PT0iYXN5bmMtZGlzcG9zZSIpe3ZhciB4PXUodyxoKTtyZXR1cm4geCE9PXZvaWQgMD94Oih4PXUodyxkKSxmdW5jdGlvbigpe3IoeCx0aGlzKX0pfXJldHVybiB1KHcsZCl9LGc9ZnVuY3Rpb24odyxFLHgpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPDMmJiFhKHcpJiYoeD1zKEMoaSh3KSxFKSkpLHg9PT12b2lkIDA/ZnVuY3Rpb24oKXt9OnQoeCx3KX07eS5leHBvcnRzPWZ1bmN0aW9uKHcsRSx4LE8pe3ZhciBUO2lmKGFyZ3VtZW50cy5sZW5ndGg8NCl7aWYoYShFKSYmeD09PSJzeW5jLWRpc3Bvc2UiKXJldHVybjtUPWcoRSx4KX1lbHNlIFQ9Zyh2b2lkIDAseCxPKTttKHcuc3RhY2ssVCl9fSw4NzM3MDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNDQyMDEpLG49ZSgyNTM5MSksdD1lKDcyNTYwKS5mLGk9cigidW5zY29wYWJsZXMiKSxzPUFycmF5LnByb3RvdHlwZTtzW2ldPT09dm9pZCAwJiZ0KHMsaSx7Y29uZmlndXJhYmxlOiEwLHZhbHVlOm4obnVsbCl9KSx5LmV4cG9ydHM9ZnVuY3Rpb24oYSl7c1tpXVthXT0hMH19LDc2NzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoMjM2MjIpLG49VHlwZUVycm9yO3kuZXhwb3J0cz1mdW5jdGlvbih0LGkpe2lmKHIoaSx0KSlyZXR1cm4gdDt0aHJvdyBuZXcgbigiSW5jb3JyZWN0IGludm9jYXRpb24iKX19LDMzNDI1OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg0ODk5OSksbj1TdHJpbmcsdD1UeXBlRXJyb3I7eS5leHBvcnRzPWZ1bmN0aW9uKGkpe2lmKGk9PT12b2lkIDB8fHIoaSkpcmV0dXJuIGk7dGhyb3cgbmV3IHQobihpKSsiIGlzIG5vdCBhbiBvYmplY3Qgb3IgdW5kZWZpbmVkIil9fSw4NTAyNzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNDg5OTkpLG49U3RyaW5nLHQ9VHlwZUVycm9yO3kuZXhwb3J0cz1mdW5jdGlvbihpKXtpZihyKGkpKXJldHVybiBpO3Rocm93IG5ldyB0KG4oaSkrIiBpcyBub3QgYW4gb2JqZWN0Iil9fSw5NTY2ODpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNTA5MjYpLG49VHlwZUVycm9yO3kuZXhwb3J0cz1mdW5jdGlvbih0KXtpZihyKHQpPT09IlVpbnQ4QXJyYXkiKXJldHVybiB0O3Rocm93IG5ldyBuKCJBcmd1bWVudCBpcyBub3QgYW4gVWludDhBcnJheSIpfX0sMzcwNzU6ZnVuY3Rpb24oeSl7InVzZSBzdHJpY3QiO3kuZXhwb3J0cz10eXBlb2YgQXJyYXlCdWZmZXIhPSJ1bmRlZmluZWQiJiZ0eXBlb2YgRGF0YVZpZXchPSJ1bmRlZmluZWQifSwzMzA1MDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNTI3NDMpLG49ZSg2NjQ4KSx0PVR5cGVFcnJvcjt5LmV4cG9ydHM9cihBcnJheUJ1ZmZlci5wcm90b3R5cGUsImJ5dGVMZW5ndGgiLCJnZXQiKXx8ZnVuY3Rpb24oaSl7aWYobihpKSE9PSJBcnJheUJ1ZmZlciIpdGhyb3cgbmV3IHQoIkFycmF5QnVmZmVyIGV4cGVjdGVkIik7cmV0dXJuIGkuYnl0ZUxlbmd0aH19LDIyOTYxOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg2ODg0NCksbj1lKDMzMDUwKSx0PXIoQXJyYXlCdWZmZXIucHJvdG90eXBlLnNsaWNlKTt5LmV4cG9ydHM9ZnVuY3Rpb24oaSl7aWYobihpKSE9PTApcmV0dXJuITE7dHJ5e3JldHVybiB0KGksMCwwKSwhMX1jYXRjaChzKXtyZXR1cm4hMH19fSwxMTY1NTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoMzY4OSk7eS5leHBvcnRzPXIoZnVuY3Rpb24oKXtpZih0eXBlb2YgQXJyYXlCdWZmZXI9PSJmdW5jdGlvbiIpe3ZhciBuPW5ldyBBcnJheUJ1ZmZlcig4KTtPYmplY3QuaXNFeHRlbnNpYmxlKG4pJiZPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiYSIse3ZhbHVlOjh9KX19KX0sMjkxOTU6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDE5MDM3KSxuPWUoNjg4NDQpLHQ9ZSg1Mjc0MyksaT1lKDE5ODQyKSxzPWUoMjI5NjEpLGE9ZSgzMzA1MCksdT1lKDIxNDIwKSxjPWUoNjM1MTQpLGg9ci5zdHJ1Y3R1cmVkQ2xvbmUsZD1yLkFycmF5QnVmZmVyLG09ci5EYXRhVmlldyxDPXIuVHlwZUVycm9yLGc9TWF0aC5taW4sdz1kLnByb3RvdHlwZSxFPW0ucHJvdG90eXBlLHg9bih3LnNsaWNlKSxPPXQodywicmVzaXphYmxlIiwiZ2V0IiksVD10KHcsIm1heEJ5dGVMZW5ndGgiLCJnZXQiKSxTPW4oRS5nZXRJbnQ4KSxMPW4oRS5zZXRJbnQ4KTt5LmV4cG9ydHM9KGN8fHUpJiZmdW5jdGlvbihJLFIseil7dmFyIEc9YShJKSxZPVI9PT12b2lkIDA/RzppKFIpLGVlPSFPfHwhTyhJKSxKO2lmKHMoSSkpdGhyb3cgbmV3IEMoIkFycmF5QnVmZmVyIGlzIGRldGFjaGVkIik7aWYoYyYmKEk9aChJLHt0cmFuc2ZlcjpbSV19KSxHPT09WSYmKHp8fGVlKSkpcmV0dXJuIEk7aWYoRz49WSYmKCF6fHxlZSkpSj14KEksMCxZKTtlbHNle3ZhciBtZT16JiYhZWUmJlQ/e21heEJ5dGVMZW5ndGg6VChJKX06dm9pZCAwO0o9bmV3IGQoWSxtZSk7Zm9yKHZhciB0ZT1uZXcgbShJKSxsZT1uZXcgbShKKSxjZT1nKFksRyksVz0wO1c8Y2U7VysrKUwobGUsVyxTKHRlLFcpKX1yZXR1cm4gY3x8dShJKSxKfX0sNTQ4NzI6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDM3MDc1KSxuPWUoNjc2OTcpLHQ9ZSgxOTAzNyksaT1lKDY5OTg1KSxzPWUoNDg5OTkpLGE9ZSgzNjgxMiksdT1lKDUwOTI2KSxjPWUoMjM2OTEpLGg9ZSg3NTc3MyksZD1lKDExODgwKSxtPWUoNjIxNDgpLEM9ZSgyMzYyMiksZz1lKDYxODY4KSx3PWUoNDkzODUpLEU9ZSg0NDIwMSkseD1lKDE0NjMwKSxPPWUoNjE4KSxUPU8uZW5mb3JjZSxTPU8uZ2V0LEw9dC5JbnQ4QXJyYXksST1MJiZMLnByb3RvdHlwZSxSPXQuVWludDhDbGFtcGVkQXJyYXksej1SJiZSLnByb3RvdHlwZSxHPUwmJmcoTCksWT1JJiZnKEkpLGVlPU9iamVjdC5wcm90b3R5cGUsSj10LlR5cGVFcnJvcixtZT1FKCJ0b1N0cmluZ1RhZyIpLHRlPXgoIlRZUEVEX0FSUkFZX1RBRyIpLGxlPSJUeXBlZEFycmF5Q29uc3RydWN0b3IiLGNlPXImJiEhdyYmdSh0Lm9wZXJhKSE9PSJPcGVyYSIsVz0hMSxqLEQsVixaPXtJbnQ4QXJyYXk6MSxVaW50OEFycmF5OjEsVWludDhDbGFtcGVkQXJyYXk6MSxJbnQxNkFycmF5OjIsVWludDE2QXJyYXk6MixJbnQzMkFycmF5OjQsVWludDMyQXJyYXk6NCxGbG9hdDMyQXJyYXk6NCxGbG9hdDY0QXJyYXk6OH0sUD17QmlnSW50NjRBcnJheTo4LEJpZ1VpbnQ2NEFycmF5Ojh9LEs9ZnVuY3Rpb24oWWUpe2lmKCFzKFllKSlyZXR1cm4hMTt2YXIgb3Q9dShZZSk7cmV0dXJuIG90PT09IkRhdGFWaWV3Inx8YShaLG90KXx8YShQLG90KX0sc2U9ZnVuY3Rpb24oQmUpe3ZhciBZZT1nKEJlKTtpZihzKFllKSl7dmFyIG90PVMoWWUpO3JldHVybiBvdCYmYShvdCxsZSk/b3RbbGVdOnNlKFllKX19LG5lPWZ1bmN0aW9uKEJlKXtpZighcyhCZSkpcmV0dXJuITE7dmFyIFllPXUoQmUpO3JldHVybiBhKFosWWUpfHxhKFAsWWUpfSxvZT1mdW5jdGlvbihCZSl7aWYobmUoQmUpKXJldHVybiBCZTt0aHJvdyBuZXcgSigiVGFyZ2V0IGlzIG5vdCBhIHR5cGVkIGFycmF5Iil9LGZlPWZ1bmN0aW9uKEJlKXtpZihpKEJlKSYmKCF3fHxDKEcsQmUpKSlyZXR1cm4gQmU7dGhyb3cgbmV3IEooYyhCZSkrIiBpcyBub3QgYSB0eXBlZCBhcnJheSBjb25zdHJ1Y3RvciIpfSxFZT1mdW5jdGlvbihCZSxZZSxvdCxxZSl7aWYobil7aWYob3QpZm9yKHZhciBfZSBpbiBaKXt2YXIgRmU9dFtfZV07aWYoRmUmJmEoRmUucHJvdG90eXBlLEJlKSl0cnl7ZGVsZXRlIEZlLnByb3RvdHlwZVtCZV19Y2F0Y2goU2Upe3RyeXtGZS5wcm90b3R5cGVbQmVdPVllfWNhdGNoKHEpe319fSghWVtCZV18fG90KSYmZChZLEJlLG90P1llOmNlJiZJW0JlXXx8WWUscWUpfX0sUmU9ZnVuY3Rpb24oQmUsWWUsb3Qpe3ZhciBxZSxfZTtpZihuKXtpZih3KXtpZihvdCl7Zm9yKHFlIGluIFopaWYoX2U9dFtxZV0sX2UmJmEoX2UsQmUpKXRyeXtkZWxldGUgX2VbQmVdfWNhdGNoKEZlKXt9fWlmKCFHW0JlXXx8b3QpdHJ5e3JldHVybiBkKEcsQmUsb3Q/WWU6Y2UmJkdbQmVdfHxZZSl9Y2F0Y2goRmUpe31lbHNlIHJldHVybn1mb3IocWUgaW4gWilfZT10W3FlXSxfZSYmKCFfZVtCZV18fG90KSYmZChfZSxCZSxZZSl9fTtmb3IoaiBpbiBaKUQ9dFtqXSxWPUQmJkQucHJvdG90eXBlLFY/VChWKVtsZV09RDpjZT0hMTtmb3IoaiBpbiBQKUQ9dFtqXSxWPUQmJkQucHJvdG90eXBlLFYmJihUKFYpW2xlXT1EKTtpZigoIWNlfHwhaShHKXx8Rz09PUZ1bmN0aW9uLnByb3RvdHlwZSkmJihHPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEooIkluY29ycmVjdCBpbnZvY2F0aW9uIil9LGNlKSlmb3IoaiBpbiBaKXRbal0mJncodFtqXSxHKTtpZigoIWNlfHwhWXx8WT09PWVlKSYmKFk9Ry5wcm90b3R5cGUsY2UpKWZvcihqIGluIFopdFtqXSYmdyh0W2pdLnByb3RvdHlwZSxZKTtpZihjZSYmZyh6KSE9PVkmJncoeixZKSxuJiYhYShZLG1lKSl7Vz0hMCxtKFksbWUse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcyh0aGlzKT90aGlzW3RlXTp2b2lkIDB9fSk7Zm9yKGogaW4gWil0W2pdJiZoKHRbal0sdGUsail9eS5leHBvcnRzPXtOQVRJVkVfQVJSQVlfQlVGRkVSX1ZJRVdTOmNlLFRZUEVEX0FSUkFZX1RBRzpXJiZ0ZSxhVHlwZWRBcnJheTpvZSxhVHlwZWRBcnJheUNvbnN0cnVjdG9yOmZlLGV4cG9ydFR5cGVkQXJyYXlNZXRob2Q6RWUsZXhwb3J0VHlwZWRBcnJheVN0YXRpY01ldGhvZDpSZSxnZXRUeXBlZEFycmF5Q29uc3RydWN0b3I6c2UsaXNWaWV3OkssaXNUeXBlZEFycmF5Om5lLFR5cGVkQXJyYXk6RyxUeXBlZEFycmF5UHJvdG90eXBlOll9fSwyMjMxOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg1NDA3MSksbj1lKDY4ODQ0KSx0PWUoOTA2OTApLGk9ZSgxOTQyOSkscz1lKDEzODA3KSxhPWUoNTE4NSksdT1lKDIyMzAyKSxjPWUoOTE2NjQpLGg9ZSg1NDg0OSksZD1lKDc2MDU4KSxtPWUoODgyNzcpLEM9ZSg0NDIwMSksZz1lKDI5MDE5KSx3PWUoNjI0ODkpLnRvQXJyYXksRT1DKCJhc3luY0l0ZXJhdG9yIikseD1uKG0oIkFycmF5IiwidmFsdWVzIikpLE89bih4KFtdKS5uZXh0KSxUPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBTKHRoaXMpfSxTPWZ1bmN0aW9uKEwpe3RoaXMuaXRlcmF0b3I9eChMKX07Uy5wcm90b3R5cGUubmV4dD1mdW5jdGlvbigpe3JldHVybiBPKHRoaXMuaXRlcmF0b3IpfSx5LmV4cG9ydHM9ZnVuY3Rpb24oSSl7dmFyIFI9dGhpcyx6PWFyZ3VtZW50cy5sZW5ndGgsRz16PjE/YXJndW1lbnRzWzFdOnZvaWQgMCxZPXo+Mj9hcmd1bWVudHNbMl06dm9pZCAwO3JldHVybiBuZXcoZCgiUHJvbWlzZSIpKShmdW5jdGlvbihlZSl7dmFyIEo9dChJKTtHIT09dm9pZCAwJiYoRz1yKEcsWSkpO3ZhciBtZT1oKEosRSksdGU9bWU/dm9pZCAwOmMoSil8fFQsbGU9aShSKT9uZXcgUjpbXSxjZT1tZT9zKEosbWUpOm5ldyBnKHUoYShKLHRlKSkpO2VlKHcoY2UsRyxsZSkpfSl9fSw1OTk3NjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNjMxMCk7eS5leHBvcnRzPWZ1bmN0aW9uKG4sdCxpKXtmb3IodmFyIHM9MCxhPWFyZ3VtZW50cy5sZW5ndGg+Mj9pOnIodCksdT1uZXcgbihhKTthPnM7KXVbc109dFtzKytdO3JldHVybiB1fX0sNDQ0MTY6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDU0MDcxKSxuPWUoNjg4NDQpLHQ9ZSg5NDQxMyksaT1lKDkwNjkwKSxzPWUoNjMxMCksYT1lKDgzOTE0KSx1PWEuTWFwLGM9YS5nZXQsaD1hLmhhcyxkPWEuc2V0LG09bihbXS5wdXNoKTt5LmV4cG9ydHM9ZnVuY3Rpb24oZyl7Zm9yKHZhciB3PWkodGhpcyksRT10KHcpLHg9cihnLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKSxPPW5ldyB1LFQ9cyhFKSxTPTAsTCxJO1Q+UztTKyspST1FW1NdLEw9eChJLFMsdyksaChPLEwpP20oYyhPLEwpLEkpOmQoTyxMLFtJXSk7cmV0dXJuIE99fSw2NDk3NjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNTQwNzEpLG49ZSg2ODg0NCksdD1lKDk0NDEzKSxpPWUoOTA2OTApLHM9ZSgxODM2MCksYT1lKDYzMTApLHU9ZSgyNTM5MSksYz1lKDU5OTc2KSxoPUFycmF5LGQ9bihbXS5wdXNoKTt5LmV4cG9ydHM9ZnVuY3Rpb24obSxDLGcsdyl7Zm9yKHZhciBFPWkobSkseD10KEUpLE89cihDLGcpLFQ9dShudWxsKSxTPWEoeCksTD0wLEksUix6O1M+TDtMKyspej14W0xdLFI9cyhPKHosTCxFKSksUiBpbiBUP2QoVFtSXSx6KTpUW1JdPVt6XTtpZih3JiYoST13KEUpLEkhPT1oKSlmb3IoUiBpbiBUKVRbUl09YyhJLFRbUl0pO3JldHVybiBUfX0sODQzMjg6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDY1MjkwKSxuPWUoMjc1NzgpLHQ9ZSg2MzEwKSxpPWZ1bmN0aW9uKHMpe3JldHVybiBmdW5jdGlvbihhLHUsYyl7dmFyIGg9cihhKSxkPXQoaCksbT1uKGMsZCksQztpZihzJiZ1IT09dSl7Zm9yKDtkPm07KWlmKEM9aFttKytdLEMhPT1DKXJldHVybiEwfWVsc2UgZm9yKDtkPm07bSsrKWlmKChzfHxtIGluIGgpJiZoW21dPT09dSlyZXR1cm4gc3x8bXx8MDtyZXR1cm4hcyYmLTF9fTt5LmV4cG9ydHM9e2luY2x1ZGVzOmkoITApLGluZGV4T2Y6aSghMSl9fSw2MTk2OTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNTQwNzEpLG49ZSg5NDQxMyksdD1lKDkwNjkwKSxpPWUoNjMxMCkscz1mdW5jdGlvbihhKXt2YXIgdT1hPT09MTtyZXR1cm4gZnVuY3Rpb24oYyxoLGQpe2Zvcih2YXIgbT10KGMpLEM9bihtKSxnPWkoQyksdz1yKGgsZCksRSx4O2ctLSA+MDspaWYoRT1DW2ddLHg9dyhFLGcsbSkseClzd2l0Y2goYSl7Y2FzZSAwOnJldHVybiBFO2Nhc2UgMTpyZXR1cm4gZ31yZXR1cm4gdT8tMTp2b2lkIDB9fTt5LmV4cG9ydHM9e2ZpbmRMYXN0OnMoMCksZmluZExhc3RJbmRleDpzKDEpfX0sMjk2MDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNTQwNzEpLG49ZSg2ODg0NCksdD1lKDk0NDEzKSxpPWUoOTA2OTApLHM9ZSg2MzEwKSxhPWUoMjcxMjApLHU9bihbXS5wdXNoKSxjPWZ1bmN0aW9uKGgpe3ZhciBkPWg9PT0xLG09aD09PTIsQz1oPT09MyxnPWg9PT00LHc9aD09PTYsRT1oPT09Nyx4PWg9PT01fHx3O3JldHVybiBmdW5jdGlvbihPLFQsUyxMKXtmb3IodmFyIEk9aShPKSxSPXQoSSksej1zKFIpLEc9cihULFMpLFk9MCxlZT1MfHxhLEo9ZD9lZShPLHopOm18fEU/ZWUoTywwKTp2b2lkIDAsbWUsdGU7ej5ZO1krKylpZigoeHx8WSBpbiBSKSYmKG1lPVJbWV0sdGU9RyhtZSxZLEkpLGgpKWlmKGQpSltZXT10ZTtlbHNlIGlmKHRlKXN3aXRjaChoKXtjYXNlIDM6cmV0dXJuITA7Y2FzZSA1OnJldHVybiBtZTtjYXNlIDY6cmV0dXJuIFk7Y2FzZSAyOnUoSixtZSl9ZWxzZSBzd2l0Y2goaCl7Y2FzZSA0OnJldHVybiExO2Nhc2UgNzp1KEosbWUpfXJldHVybiB3Py0xOkN8fGc/ZzpKfX07eS5leHBvcnRzPXtmb3JFYWNoOmMoMCksbWFwOmMoMSksZmlsdGVyOmMoMiksc29tZTpjKDMpLGV2ZXJ5OmMoNCksZmluZDpjKDUpLGZpbmRJbmRleDpjKDYpLGZpbHRlclJlamVjdDpjKDcpfX0sMTY4MzQ6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDM2ODkpO3kuZXhwb3J0cz1mdW5jdGlvbihuLHQpe3ZhciBpPVtdW25dO3JldHVybiEhaSYmcihmdW5jdGlvbigpe2kuY2FsbChudWxsLHR8fGZ1bmN0aW9uKCl7cmV0dXJuIDF9LDEpfSl9fSw4ODgyMDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoMTA1MDkpLG49ZSg5MDY5MCksdD1lKDk0NDEzKSxpPWUoNjMxMCkscz1UeXBlRXJyb3IsYT1mdW5jdGlvbih1KXtyZXR1cm4gZnVuY3Rpb24oYyxoLGQsbSl7dmFyIEM9bihjKSxnPXQoQyksdz1pKEMpO3IoaCk7dmFyIEU9dT93LTE6MCx4PXU/LTE6MTtpZihkPDIpZm9yKDs7KXtpZihFIGluIGcpe209Z1tFXSxFKz14O2JyZWFrfWlmKEUrPXgsdT9FPDA6dzw9RSl0aHJvdyBuZXcgcygiUmVkdWNlIG9mIGVtcHR5IGFycmF5IHdpdGggbm8gaW5pdGlhbCB2YWx1ZSIpfWZvcig7dT9FPj0wOnc+RTtFKz14KUUgaW4gZyYmKG09aChtLGdbRV0sRSxDKSk7cmV0dXJuIG19fTt5LmV4cG9ydHM9e2xlZnQ6YSghMSkscmlnaHQ6YSghMCl9fSw1NjQ5OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg2NzY5Nyksbj1lKDkyMjk3KSx0PVR5cGVFcnJvcixpPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iscz1yJiYhZnVuY3Rpb24oKXtpZih0aGlzIT09dm9pZCAwKXJldHVybiEwO3RyeXtPYmplY3QuZGVmaW5lUHJvcGVydHkoW10sImxlbmd0aCIse3dyaXRhYmxlOiExfSkubGVuZ3RoPTF9Y2F0Y2goYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBUeXBlRXJyb3J9fSgpO3kuZXhwb3J0cz1zP2Z1bmN0aW9uKGEsdSl7aWYobihhKSYmIWkoYSwibGVuZ3RoIikud3JpdGFibGUpdGhyb3cgbmV3IHQoIkNhbm5vdCBzZXQgcmVhZCBvbmx5IC5sZW5ndGgiKTtyZXR1cm4gYS5sZW5ndGg9dX06ZnVuY3Rpb24oYSx1KXtyZXR1cm4gYS5sZW5ndGg9dX19LDkwMTU6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDI3NTc4KSxuPWUoNjMxMCksdD1lKDc2NTIyKSxpPUFycmF5LHM9TWF0aC5tYXg7eS5leHBvcnRzPWZ1bmN0aW9uKGEsdSxjKXtmb3IodmFyIGg9bihhKSxkPXIodSxoKSxtPXIoYz09PXZvaWQgMD9oOmMsaCksQz1pKHMobS1kLDApKSxnPTA7ZDxtO2QrKyxnKyspdChDLGcsYVtkXSk7cmV0dXJuIEMubGVuZ3RoPWcsQ319LDk2MDA0OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg2ODg0NCk7eS5leHBvcnRzPXIoW10uc2xpY2UpfSwyNTI3MTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoOTIyOTcpLG49ZSgxOTQyOSksdD1lKDQ4OTk5KSxpPWUoNDQyMDEpLHM9aSgic3BlY2llcyIpLGE9QXJyYXk7eS5leHBvcnRzPWZ1bmN0aW9uKHUpe3ZhciBjO3JldHVybiByKHUpJiYoYz11LmNvbnN0cnVjdG9yLG4oYykmJihjPT09YXx8cihjLnByb3RvdHlwZSkpP2M9dm9pZCAwOnQoYykmJihjPWNbc10sYz09PW51bGwmJihjPXZvaWQgMCkpKSxjPT09dm9pZCAwP2E6Y319LDI3MTIwOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSgyNTI3MSk7eS5leHBvcnRzPWZ1bmN0aW9uKG4sdCl7cmV0dXJuIG5ldyhyKG4pKSh0PT09MD8wOnQpfX0sMjYxNjY6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDYzMTApO3kuZXhwb3J0cz1mdW5jdGlvbihuLHQpe2Zvcih2YXIgaT1yKG4pLHM9bmV3IHQoaSksYT0wO2E8aTthKyspc1thXT1uW2ktYS0xXTtyZXR1cm4gc319LDEyMzk3OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg2ODg0NCksbj1lKDEwNTA5KSx0PWUoOTgxKSxpPWUoNjMxMCkscz1lKDkwNjkwKSxhPWUoODM5MTQpLHU9ZSgxMDYxMyksYz1hLk1hcCxoPWEuaGFzLGQ9YS5zZXQsbT1yKFtdLnB1c2gpO3kuZXhwb3J0cz1mdW5jdGlvbihnKXt2YXIgdz1zKHRoaXMpLEU9aSh3KSx4PVtdLE89bmV3IGMsVD10KGcpP2Z1bmN0aW9uKFIpe3JldHVybiBSfTpuKGcpLFMsTCxJO2ZvcihTPTA7UzxFO1MrKylMPXdbU10sST1UKEwpLGgoTyxJKXx8ZChPLEksTCk7cmV0dXJuIHUoTyxmdW5jdGlvbihSKXttKHgsUil9KSx4fX0sMTYxMzQ6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDYzMTApLG49ZSg2ODcwMCksdD1SYW5nZUVycm9yO3kuZXhwb3J0cz1mdW5jdGlvbihpLHMsYSx1KXt2YXIgYz1yKGkpLGg9bihhKSxkPWg8MD9jK2g6aDtpZihkPj1jfHxkPDApdGhyb3cgbmV3IHQoIkluY29ycmVjdCBpbmRleCIpO2Zvcih2YXIgbT1uZXcgcyhjKSxDPTA7QzxjO0MrKyltW0NdPUM9PT1kP3U6aVtDXTtyZXR1cm4gbX19LDI5MDE5OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSgyMjYxNSksbj1lKDg1MDI3KSx0PWUoMjUzOTEpLGk9ZSg1NDg0OSkscz1lKDYwNDUpLGE9ZSg2MTgpLHU9ZSg3NjA1OCksYz1lKDIzMDcwKSxoPWUoMjc4MDcpLGQ9dSgiUHJvbWlzZSIpLG09IkFzeW5jRnJvbVN5bmNJdGVyYXRvciIsQz1hLnNldCxnPWEuZ2V0dGVyRm9yKG0pLHc9ZnVuY3Rpb24oeCxPLFQpe3ZhciBTPXguZG9uZTtkLnJlc29sdmUoeC52YWx1ZSkudGhlbihmdW5jdGlvbihMKXtPKGgoTCxTKSl9LFQpfSxFPWZ1bmN0aW9uKE8pe08udHlwZT1tLEModGhpcyxPKX07RS5wcm90b3R5cGU9cyh0KGMpLHtuZXh0OmZ1bmN0aW9uKCl7dmFyIE89Zyh0aGlzKTtyZXR1cm4gbmV3IGQoZnVuY3Rpb24oVCxTKXt2YXIgTD1uKHIoTy5uZXh0LE8uaXRlcmF0b3IpKTt3KEwsVCxTKX0pfSxyZXR1cm46ZnVuY3Rpb24oKXt2YXIgeD1nKHRoaXMpLml0ZXJhdG9yO3JldHVybiBuZXcgZChmdW5jdGlvbihPLFQpe3ZhciBTPWkoeCwicmV0dXJuIik7aWYoUz09PXZvaWQgMClyZXR1cm4gTyhoKHZvaWQgMCwhMCkpO3ZhciBMPW4ocihTLHgpKTt3KEwsTyxUKX0pfX0pLHkuZXhwb3J0cz1FfSw1MjM5OTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoMjI2MTUpLG49ZSg3NjA1OCksdD1lKDU0ODQ5KTt5LmV4cG9ydHM9ZnVuY3Rpb24oaSxzLGEsdSl7dHJ5e3ZhciBjPXQoaSwicmV0dXJuIik7aWYoYylyZXR1cm4gbigiUHJvbWlzZSIpLnJlc29sdmUocihjLGkpKS50aGVuKGZ1bmN0aW9uKCl7cyhhKX0sZnVuY3Rpb24oaCl7dShoKX0pfWNhdGNoKGgpe3JldHVybiB1KGgpfXMoYSl9fSwxNzM5NDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoMjI2MTUpLG49ZSg5MzAyKSx0PWUoODUwMjcpLGk9ZSgyNTM5MSkscz1lKDc1NzczKSxhPWUoNjA0NSksdT1lKDQ0MjAxKSxjPWUoNjE4KSxoPWUoNzYwNTgpLGQ9ZSg1NDg0OSksbT1lKDIzMDcwKSxDPWUoMjc4MDcpLGc9ZSg3MjEyNSksdz1oKCJQcm9taXNlIiksRT11KCJ0b1N0cmluZ1RhZyIpLHg9IkFzeW5jSXRlcmF0b3JIZWxwZXIiLE89IldyYXBGb3JWYWxpZEFzeW5jSXRlcmF0b3IiLFQ9Yy5zZXQsUz1mdW5jdGlvbihSKXt2YXIgej0hUixHPWMuZ2V0dGVyRm9yKFI/Tzp4KSxZPWZ1bmN0aW9uKGVlKXt2YXIgSj1uKGZ1bmN0aW9uKCl7cmV0dXJuIEcoZWUpfSksbWU9Si5lcnJvcix0ZT1KLnZhbHVlO3JldHVybiBtZXx8eiYmdGUuZG9uZT97ZXhpdDohMCx2YWx1ZTptZT93LnJlamVjdCh0ZSk6dy5yZXNvbHZlKEModm9pZCAwLCEwKSl9OntleGl0OiExLHZhbHVlOnRlfX07cmV0dXJuIGEoaShtKSx7bmV4dDpmdW5jdGlvbigpe3ZhciBKPVkodGhpcyksbWU9Si52YWx1ZTtpZihKLmV4aXQpcmV0dXJuIG1lO3ZhciB0ZT1uKGZ1bmN0aW9uKCl7cmV0dXJuIHQobWUubmV4dEhhbmRsZXIodykpfSksbGU9dGUuZXJyb3IsY2U9dGUudmFsdWU7cmV0dXJuIGxlJiYobWUuZG9uZT0hMCksbGU/dy5yZWplY3QoY2UpOncucmVzb2x2ZShjZSl9LHJldHVybjpmdW5jdGlvbigpe3ZhciBlZT1ZKHRoaXMpLEo9ZWUudmFsdWU7aWYoZWUuZXhpdClyZXR1cm4gSjtKLmRvbmU9ITA7dmFyIG1lPUouaXRlcmF0b3IsdGUsbGUsY2U9bihmdW5jdGlvbigpe2lmKEouaW5uZXIpdHJ5e2coSi5pbm5lci5pdGVyYXRvciwibm9ybWFsIil9Y2F0Y2goVyl7cmV0dXJuIGcobWUsInRocm93IixXKX1yZXR1cm4gZChtZSwicmV0dXJuIil9KTtyZXR1cm4gdGU9bGU9Y2UudmFsdWUsY2UuZXJyb3I/dy5yZWplY3QobGUpOnRlPT09dm9pZCAwP3cucmVzb2x2ZShDKHZvaWQgMCwhMCkpOihjZT1uKGZ1bmN0aW9uKCl7cmV0dXJuIHIodGUsbWUpfSksbGU9Y2UudmFsdWUsY2UuZXJyb3I/dy5yZWplY3QobGUpOlI/dy5yZXNvbHZlKGxlKTp3LnJlc29sdmUobGUpLnRoZW4oZnVuY3Rpb24oVyl7cmV0dXJuIHQoVyksQyh2b2lkIDAsITApfSkpfX0pfSxMPVMoITApLEk9UyghMSk7cyhJLEUsIkFzeW5jIEl0ZXJhdG9yIEhlbHBlciIpLHkuZXhwb3J0cz1mdW5jdGlvbihSLHope3ZhciBHPWZ1bmN0aW9uKGVlLEope0o/KEouaXRlcmF0b3I9ZWUuaXRlcmF0b3IsSi5uZXh0PWVlLm5leHQpOko9ZWUsSi50eXBlPXo/Tzp4LEoubmV4dEhhbmRsZXI9UixKLmNvdW50ZXI9MCxKLmRvbmU9ITEsVCh0aGlzLEopfTtyZXR1cm4gRy5wcm90b3R5cGU9ej9MOkksR319LDQwMTY0OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSgyMjYxNSksbj1lKDgyNDEyKSx0PWZ1bmN0aW9uKGkscyl7cmV0dXJuW3MsaV19O3kuZXhwb3J0cz1mdW5jdGlvbigpe3JldHVybiByKG4sdGhpcyx0KX19LDYyNDg5OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSgyMjYxNSksbj1lKDEwNTA5KSx0PWUoODUwMjcpLGk9ZSg0ODk5OSkscz1lKDU1NTY1KSxhPWUoNzYwNTgpLHU9ZSgyMjMwMiksYz1lKDUyMzk5KSxoPWZ1bmN0aW9uKGQpe3ZhciBtPWQ9PT0wLEM9ZD09PTEsZz1kPT09Mix3PWQ9PT0zO3JldHVybiBmdW5jdGlvbihFLHgsTyl7dChFKTt2YXIgVD14IT09dm9pZCAwOyhUfHwhbSkmJm4oeCk7dmFyIFM9dShFKSxMPWEoIlByb21pc2UiKSxJPVMuaXRlcmF0b3IsUj1TLm5leHQsej0wO3JldHVybiBuZXcgTChmdW5jdGlvbihHLFkpe3ZhciBlZT1mdW5jdGlvbihtZSl7YyhJLFksbWUsWSl9LEo9ZnVuY3Rpb24oKXt0cnl7aWYoVCl0cnl7cyh6KX1jYXRjaChtZSl7ZWUobWUpfUwucmVzb2x2ZSh0KHIoUixJKSkpLnRoZW4oZnVuY3Rpb24obWUpe3RyeXtpZih0KG1lKS5kb25lKW0/KE8ubGVuZ3RoPXosRyhPKSk6Ryh3PyExOmd8fHZvaWQgMCk7ZWxzZXt2YXIgdGU9bWUudmFsdWU7dHJ5e2lmKFQpe3ZhciBsZT14KHRlLHopLGNlPWZ1bmN0aW9uKFcpe2lmKEMpSigpO2Vsc2UgaWYoZylXP0ooKTpjKEksRywhMSxZKTtlbHNlIGlmKG0pdHJ5e09beisrXT1XLEooKX1jYXRjaChqKXtlZShqKX1lbHNlIFc/YyhJLEcsd3x8dGUsWSk6SigpfTtpKGxlKT9MLnJlc29sdmUobGUpLnRoZW4oY2UsZWUpOmNlKGxlKX1lbHNlIE9beisrXT10ZSxKKCl9Y2F0Y2goVyl7ZWUoVyl9fX1jYXRjaChXKXtZKFcpfX0sWSl9Y2F0Y2gobWUpe1kobWUpfX07SigpfSl9fTt5LmV4cG9ydHM9e3RvQXJyYXk6aCgwKSxmb3JFYWNoOmgoMSksZXZlcnk6aCgyKSxzb21lOmgoMyksZmluZDpoKDQpfX0sODI0MTI6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDIyNjE1KSxuPWUoMTA1MDkpLHQ9ZSg4NTAyNyksaT1lKDQ4OTk5KSxzPWUoMjIzMDIpLGE9ZSgxNzM5NCksdT1lKDI3ODA3KSxjPWUoNTIzOTkpLGg9YShmdW5jdGlvbihkKXt2YXIgbT10aGlzLEM9bS5pdGVyYXRvcixnPW0ubWFwcGVyO3JldHVybiBuZXcgZChmdW5jdGlvbih3LEUpe3ZhciB4PWZ1bmN0aW9uKFQpe20uZG9uZT0hMCxFKFQpfSxPPWZ1bmN0aW9uKFQpe2MoQyx4LFQseCl9O2QucmVzb2x2ZSh0KHIobS5uZXh0LEMpKSkudGhlbihmdW5jdGlvbihUKXt0cnl7aWYodChUKS5kb25lKW0uZG9uZT0hMCx3KHUodm9pZCAwLCEwKSk7ZWxzZXt2YXIgUz1ULnZhbHVlO3RyeXt2YXIgTD1nKFMsbS5jb3VudGVyKyspLEk9ZnVuY3Rpb24oUil7dyh1KFIsITEpKX07aShMKT9kLnJlc29sdmUoTCkudGhlbihJLE8pOkkoTCl9Y2F0Y2goUil7TyhSKX19fWNhdGNoKFIpe3goUil9fSx4KX0pfSk7eS5leHBvcnRzPWZ1bmN0aW9uKG0pe3JldHVybiB0KHRoaXMpLG4obSksbmV3IGgocyh0aGlzKSx7bWFwcGVyOm19KX19LDIzMDcwOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSgxOTAzNyksbj1lKDg0MDkxKSx0PWUoNjk5ODUpLGk9ZSgyNTM5MSkscz1lKDYxODY4KSxhPWUoMTE4ODApLHU9ZSg0NDIwMSksYz1lKDUzOTMxKSxoPSJVU0VfRlVOQ1RJT05fQ09OU1RSVUNUT1IiLGQ9dSgiYXN5bmNJdGVyYXRvciIpLG09ci5Bc3luY0l0ZXJhdG9yLEM9bi5Bc3luY0l0ZXJhdG9yUHJvdG90eXBlLGcsdztpZihDKWc9QztlbHNlIGlmKHQobSkpZz1tLnByb3RvdHlwZTtlbHNlIGlmKG5baF18fHJbaF0pdHJ5e3c9cyhzKHMoRnVuY3Rpb24oInJldHVybiBhc3luYyBmdW5jdGlvbiooKXt9KCkiKSgpKSkpLHModyk9PT1PYmplY3QucHJvdG90eXBlJiYoZz13KX1jYXRjaChFKXt9Zz9jJiYoZz1pKGcpKTpnPXt9LHQoZ1tkXSl8fGEoZyxkLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSx5LmV4cG9ydHM9Z30sNDAyMTk6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDIyNjE1KSxuPWUoMTczOTQpO3kuZXhwb3J0cz1uKGZ1bmN0aW9uKCl7cmV0dXJuIHIodGhpcy5uZXh0LHRoaXMuaXRlcmF0b3IpfSwhMCl9LDE4MzY4OmZ1bmN0aW9uKHkpeyJ1c2Ugc3RyaWN0Ijt2YXIgcD0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkiLGU9cCsiKy8iLHI9cCsiLV8iLG49ZnVuY3Rpb24odCl7Zm9yKHZhciBpPXt9LHM9MDtzPDY0O3MrKylpW3QuY2hhckF0KHMpXT1zO3JldHVybiBpfTt5LmV4cG9ydHM9e2kyYzplLGMyaTpuKGUpLGkyY1VybDpyLGMyaVVybDpuKHIpfX0sNzEyMjg6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDg1MDI3KSxuPWUoNzIxMjUpO3kuZXhwb3J0cz1mdW5jdGlvbih0LGkscyxhKXt0cnl7cmV0dXJuIGE/aShyKHMpWzBdLHNbMV0pOmkocyl9Y2F0Y2godSl7bih0LCJ0aHJvdyIsdSl9fX0sODY0MzE6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDQ0MjAxKSxuPXIoIml0ZXJhdG9yIiksdD0hMTt0cnl7dmFyIGk9MCxzPXtuZXh0OmZ1bmN0aW9uKCl7cmV0dXJue2RvbmU6ISFpKyt9fSxyZXR1cm46ZnVuY3Rpb24oKXt0PSEwfX07c1tuXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxBcnJheS5mcm9tKHMsZnVuY3Rpb24oKXt0aHJvdyAyfSl9Y2F0Y2goYSl7fXkuZXhwb3J0cz1mdW5jdGlvbihhLHUpe3RyeXtpZighdSYmIXQpcmV0dXJuITF9Y2F0Y2goZCl7cmV0dXJuITF9dmFyIGM9ITE7dHJ5e3ZhciBoPXt9O2hbbl09ZnVuY3Rpb24oKXtyZXR1cm57bmV4dDpmdW5jdGlvbigpe3JldHVybntkb25lOmM9ITB9fX19LGEoaCl9Y2F0Y2goZCl7fXJldHVybiBjfX0sNjY0ODpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNjg4NDQpLG49cih7fS50b1N0cmluZyksdD1yKCIiLnNsaWNlKTt5LmV4cG9ydHM9ZnVuY3Rpb24oaSl7cmV0dXJuIHQobihpKSw4LC0xKX19LDUwOTI2OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSgyMzA0Myksbj1lKDY5OTg1KSx0PWUoNjY0OCksaT1lKDQ0MjAxKSxzPWkoInRvU3RyaW5nVGFnIiksYT1PYmplY3QsdT10KGZ1bmN0aW9uKCl7cmV0dXJuIGFyZ3VtZW50c30oKSk9PT0iQXJndW1lbnRzIixjPWZ1bmN0aW9uKGgsZCl7dHJ5e3JldHVybiBoW2RdfWNhdGNoKG0pe319O3kuZXhwb3J0cz1yP3Q6ZnVuY3Rpb24oaCl7dmFyIGQsbSxDO3JldHVybiBoPT09dm9pZCAwPyJVbmRlZmluZWQiOmg9PT1udWxsPyJOdWxsIjp0eXBlb2YobT1jKGQ9YShoKSxzKSk9PSJzdHJpbmciP206dT90KGQpOihDPXQoZCkpPT09Ik9iamVjdCImJm4oZC5jYWxsZWUpPyJBcmd1bWVudHMiOkN9fSwyODczNzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNTQwNzEpLG49ZSgyMjYxNSksdD1lKDEwNTA5KSxpPWUoNTI2NTUpLHM9ZSg5ODEpLGE9ZSgxODczNCksdT1bXS5wdXNoO3kuZXhwb3J0cz1mdW5jdGlvbihoKXt2YXIgZD1hcmd1bWVudHMubGVuZ3RoLG09ZD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsQyxnLHcsRTtyZXR1cm4gaSh0aGlzKSxDPW0hPT12b2lkIDAsQyYmdChtKSxzKGgpP25ldyB0aGlzOihnPVtdLEM/KHc9MCxFPXIobSxkPjI/YXJndW1lbnRzWzJdOnZvaWQgMCksYShoLGZ1bmN0aW9uKHgpe24odSxnLEUoeCx3KyspKX0pKTphKGgsdSx7dGhhdDpnfSksbmV3IHRoaXMoZykpfX0sMTExNDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoOTYwMDQpO3kuZXhwb3J0cz1mdW5jdGlvbigpe3JldHVybiBuZXcgdGhpcyhyKGFyZ3VtZW50cykpfX0sNzA4MDA6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDI1MzkxKSxuPWUoNjIxNDgpLHQ9ZSg2MDQ1KSxpPWUoNTQwNzEpLHM9ZSg3NjcpLGE9ZSg5ODEpLHU9ZSgxODczNCksYz1lKDkxOTM0KSxoPWUoMjc4MDcpLGQ9ZSgxNDI0MSksbT1lKDY3Njk3KSxDPWUoNDUzNzUpLmZhc3RLZXksZz1lKDYxOCksdz1nLnNldCxFPWcuZ2V0dGVyRm9yO3kuZXhwb3J0cz17Z2V0Q29uc3RydWN0b3I6ZnVuY3Rpb24oeCxPLFQsUyl7dmFyIEw9eChmdW5jdGlvbihZLGVlKXtzKFksSSksdyhZLHt0eXBlOk8saW5kZXg6cihudWxsKSxmaXJzdDp2b2lkIDAsbGFzdDp2b2lkIDAsc2l6ZTowfSksbXx8KFkuc2l6ZT0wKSxhKGVlKXx8dShlZSxZW1NdLHt0aGF0OlksQVNfRU5UUklFUzpUfSl9KSxJPUwucHJvdG90eXBlLFI9RShPKSx6PWZ1bmN0aW9uKFksZWUsSil7dmFyIG1lPVIoWSksdGU9RyhZLGVlKSxsZSxjZTtyZXR1cm4gdGU/dGUudmFsdWU9SjoobWUubGFzdD10ZT17aW5kZXg6Y2U9QyhlZSwhMCksa2V5OmVlLHZhbHVlOkoscHJldmlvdXM6bGU9bWUubGFzdCxuZXh0OnZvaWQgMCxyZW1vdmVkOiExfSxtZS5maXJzdHx8KG1lLmZpcnN0PXRlKSxsZSYmKGxlLm5leHQ9dGUpLG0/bWUuc2l6ZSsrOlkuc2l6ZSsrLGNlIT09IkYiJiYobWUuaW5kZXhbY2VdPXRlKSksWX0sRz1mdW5jdGlvbihZLGVlKXt2YXIgSj1SKFkpLG1lPUMoZWUpLHRlO2lmKG1lIT09IkYiKXJldHVybiBKLmluZGV4W21lXTtmb3IodGU9Si5maXJzdDt0ZTt0ZT10ZS5uZXh0KWlmKHRlLmtleT09PWVlKXJldHVybiB0ZX07cmV0dXJuIHQoSSx7Y2xlYXI6ZnVuY3Rpb24oKXtmb3IodmFyIGVlPXRoaXMsSj1SKGVlKSxtZT1KLmluZGV4LHRlPUouZmlyc3Q7dGU7KXRlLnJlbW92ZWQ9ITAsdGUucHJldmlvdXMmJih0ZS5wcmV2aW91cz10ZS5wcmV2aW91cy5uZXh0PXZvaWQgMCksZGVsZXRlIG1lW3RlLmluZGV4XSx0ZT10ZS5uZXh0O0ouZmlyc3Q9Si5sYXN0PXZvaWQgMCxtP0ouc2l6ZT0wOmVlLnNpemU9MH0sZGVsZXRlOmZ1bmN0aW9uKFkpe3ZhciBlZT10aGlzLEo9UihlZSksbWU9RyhlZSxZKTtpZihtZSl7dmFyIHRlPW1lLm5leHQsbGU9bWUucHJldmlvdXM7ZGVsZXRlIEouaW5kZXhbbWUuaW5kZXhdLG1lLnJlbW92ZWQ9ITAsbGUmJihsZS5uZXh0PXRlKSx0ZSYmKHRlLnByZXZpb3VzPWxlKSxKLmZpcnN0PT09bWUmJihKLmZpcnN0PXRlKSxKLmxhc3Q9PT1tZSYmKEoubGFzdD1sZSksbT9KLnNpemUtLTplZS5zaXplLS19cmV0dXJuISFtZX0sZm9yRWFjaDpmdW5jdGlvbihlZSl7Zm9yKHZhciBKPVIodGhpcyksbWU9aShlZSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCksdGU7dGU9dGU/dGUubmV4dDpKLmZpcnN0Oylmb3IobWUodGUudmFsdWUsdGUua2V5LHRoaXMpO3RlJiZ0ZS5yZW1vdmVkOyl0ZT10ZS5wcmV2aW91c30saGFzOmZ1bmN0aW9uKGVlKXtyZXR1cm4hIUcodGhpcyxlZSl9fSksdChJLFQ/e2dldDpmdW5jdGlvbihlZSl7dmFyIEo9Ryh0aGlzLGVlKTtyZXR1cm4gSiYmSi52YWx1ZX0sc2V0OmZ1bmN0aW9uKGVlLEope3JldHVybiB6KHRoaXMsZWU9PT0wPzA6ZWUsSil9fTp7YWRkOmZ1bmN0aW9uKGVlKXtyZXR1cm4geih0aGlzLGVlPWVlPT09MD8wOmVlLGVlKX19KSxtJiZuKEksInNpemUiLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFIodGhpcykuc2l6ZX19KSxMfSxzZXRTdHJvbmc6ZnVuY3Rpb24oeCxPLFQpe3ZhciBTPU8rIiBJdGVyYXRvciIsTD1FKE8pLEk9RShTKTtjKHgsTyxmdW5jdGlvbihSLHope3codGhpcyx7dHlwZTpTLHRhcmdldDpSLHN0YXRlOkwoUiksa2luZDp6LGxhc3Q6dm9pZCAwfSl9LGZ1bmN0aW9uKCl7Zm9yKHZhciBSPUkodGhpcyksej1SLmtpbmQsRz1SLmxhc3Q7RyYmRy5yZW1vdmVkOylHPUcucHJldmlvdXM7cmV0dXJuIVIudGFyZ2V0fHwhKFIubGFzdD1HPUc/Ry5uZXh0OlIuc3RhdGUuZmlyc3QpPyhSLnRhcmdldD12b2lkIDAsaCh2b2lkIDAsITApKTpoKHo9PT0ia2V5cyI/Ry5rZXk6ej09PSJ2YWx1ZXMiP0cudmFsdWU6W0cua2V5LEcudmFsdWVdLCExKX0sVD8iZW50cmllcyI6InZhbHVlcyIsIVQsITApLGQoTyl9fX0sNzA2Mzc6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDY4ODQ0KSxuPWUoNjA0NSksdD1lKDQ1Mzc1KS5nZXRXZWFrRGF0YSxpPWUoNzY3KSxzPWUoODUwMjcpLGE9ZSg5ODEpLHU9ZSg0ODk5OSksYz1lKDE4NzM0KSxoPWUoMjk2MCksZD1lKDM2ODEyKSxtPWUoNjE4KSxDPW0uc2V0LGc9bS5nZXR0ZXJGb3Isdz1oLmZpbmQsRT1oLmZpbmRJbmRleCx4PXIoW10uc3BsaWNlKSxPPTAsVD1mdW5jdGlvbihJKXtyZXR1cm4gSS5mcm96ZW58fChJLmZyb3plbj1uZXcgUyl9LFM9ZnVuY3Rpb24oKXt0aGlzLmVudHJpZXM9W119LEw9ZnVuY3Rpb24oSSxSKXtyZXR1cm4gdyhJLmVudHJpZXMsZnVuY3Rpb24oeil7cmV0dXJuIHpbMF09PT1SfSl9O1MucHJvdG90eXBlPXtnZXQ6ZnVuY3Rpb24oSSl7dmFyIFI9TCh0aGlzLEkpO2lmKFIpcmV0dXJuIFJbMV19LGhhczpmdW5jdGlvbihJKXtyZXR1cm4hIUwodGhpcyxJKX0sc2V0OmZ1bmN0aW9uKEksUil7dmFyIHo9TCh0aGlzLEkpO3o/elsxXT1SOnRoaXMuZW50cmllcy5wdXNoKFtJLFJdKX0sZGVsZXRlOmZ1bmN0aW9uKEkpe3ZhciBSPUUodGhpcy5lbnRyaWVzLGZ1bmN0aW9uKHope3JldHVybiB6WzBdPT09SX0pO3JldHVybn5SJiZ4KHRoaXMuZW50cmllcyxSLDEpLCEhflJ9fSx5LmV4cG9ydHM9e2dldENvbnN0cnVjdG9yOmZ1bmN0aW9uKEksUix6LEcpe3ZhciBZPUkoZnVuY3Rpb24odGUsbGUpe2kodGUsZWUpLEModGUse3R5cGU6UixpZDpPKyssZnJvemVuOnZvaWQgMH0pLGEobGUpfHxjKGxlLHRlW0ddLHt0aGF0OnRlLEFTX0VOVFJJRVM6en0pfSksZWU9WS5wcm90b3R5cGUsSj1nKFIpLG1lPWZ1bmN0aW9uKHRlLGxlLGNlKXt2YXIgVz1KKHRlKSxqPXQocyhsZSksITApO3JldHVybiBqPT09ITA/VChXKS5zZXQobGUsY2UpOmpbVy5pZF09Y2UsdGV9O3JldHVybiBuKGVlLHtkZWxldGU6ZnVuY3Rpb24odGUpe3ZhciBsZT1KKHRoaXMpO2lmKCF1KHRlKSlyZXR1cm4hMTt2YXIgY2U9dCh0ZSk7cmV0dXJuIGNlPT09ITA/VChsZSkuZGVsZXRlKHRlKTpjZSYmZChjZSxsZS5pZCkmJmRlbGV0ZSBjZVtsZS5pZF19LGhhczpmdW5jdGlvbihsZSl7dmFyIGNlPUoodGhpcyk7aWYoIXUobGUpKXJldHVybiExO3ZhciBXPXQobGUpO3JldHVybiBXPT09ITA/VChjZSkuaGFzKGxlKTpXJiZkKFcsY2UuaWQpfX0pLG4oZWUsej97Z2V0OmZ1bmN0aW9uKGxlKXt2YXIgY2U9Sih0aGlzKTtpZih1KGxlKSl7dmFyIFc9dChsZSk7cmV0dXJuIFc9PT0hMD9UKGNlKS5nZXQobGUpOlc/V1tjZS5pZF06dm9pZCAwfX0sc2V0OmZ1bmN0aW9uKGxlLGNlKXtyZXR1cm4gbWUodGhpcyxsZSxjZSl9fTp7YWRkOmZ1bmN0aW9uKGxlKXtyZXR1cm4gbWUodGhpcyxsZSwhMCl9fSksWX19fSwyMDMxOTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSgxOTAzNyksdD1lKDY4ODQ0KSxpPWUoMzUyNjYpLHM9ZSgxMTg4MCksYT1lKDQ1Mzc1KSx1PWUoMTg3MzQpLGM9ZSg3NjcpLGg9ZSg2OTk4NSksZD1lKDk4MSksbT1lKDQ4OTk5KSxDPWUoMzY4OSksZz1lKDg2NDMxKSx3PWUoNTU5OTcpLEU9ZSgzMzQ1Nyk7eS5leHBvcnRzPWZ1bmN0aW9uKHgsTyxUKXt2YXIgUz14LmluZGV4T2YoIk1hcCIpIT09LTEsTD14LmluZGV4T2YoIldlYWsiKSE9PS0xLEk9Uz8ic2V0IjoiYWRkIixSPW5beF0sej1SJiZSLnByb3RvdHlwZSxHPVIsWT17fSxlZT1mdW5jdGlvbihqKXt2YXIgRD10KHpbal0pO3MoeixqLGo9PT0iYWRkIj9mdW5jdGlvbihaKXtyZXR1cm4gRCh0aGlzLFo9PT0wPzA6WiksdGhpc306aj09PSJkZWxldGUiP2Z1bmN0aW9uKFYpe3JldHVybiBMJiYhbShWKT8hMTpEKHRoaXMsVj09PTA/MDpWKX06aj09PSJnZXQiP2Z1bmN0aW9uKFope3JldHVybiBMJiYhbShaKT92b2lkIDA6RCh0aGlzLFo9PT0wPzA6Wil9Omo9PT0iaGFzIj9mdW5jdGlvbihaKXtyZXR1cm4gTCYmIW0oWik/ITE6RCh0aGlzLFo9PT0wPzA6Wil9OmZ1bmN0aW9uKFosUCl7cmV0dXJuIEQodGhpcyxaPT09MD8wOlosUCksdGhpc30pfSxKPWkoeCwhaChSKXx8IShMfHx6LmZvckVhY2gmJiFDKGZ1bmN0aW9uKCl7bmV3IFIoKS5lbnRyaWVzKCkubmV4dCgpfSkpKTtpZihKKUc9VC5nZXRDb25zdHJ1Y3RvcihPLHgsUyxJKSxhLmVuYWJsZSgpO2Vsc2UgaWYoaSh4LCEwKSl7dmFyIG1lPW5ldyBHLHRlPW1lW0ldKEw/e306LTAsMSkhPT1tZSxsZT1DKGZ1bmN0aW9uKCl7bWUuaGFzKDEpfSksY2U9ZyhmdW5jdGlvbihqKXtuZXcgUihqKX0pLFc9IUwmJkMoZnVuY3Rpb24oKXtmb3IodmFyIGo9bmV3IFIsRD01O0QtLTspaltJXShELEQpO3JldHVybiFqLmhhcygtMCl9KTtjZXx8KEc9TyhmdW5jdGlvbihqLEQpe2Moaix6KTt2YXIgVj1FKG5ldyBSLGosRyk7cmV0dXJuIGQoRCl8fHUoRCxWW0ldLHt0aGF0OlYsQVNfRU5UUklFUzpTfSksVn0pLEcucHJvdG90eXBlPXosei5jb25zdHJ1Y3Rvcj1HKSwobGV8fFcpJiYoZWUoImRlbGV0ZSIpLGVlKCJoYXMiKSxTJiZlZSgiZ2V0IikpLChXfHx0ZSkmJmVlKEkpLEwmJnouY2xlYXImJmRlbGV0ZSB6LmNsZWFyfXJldHVybiBZW3hdPUcscih7Z2xvYmFsOiEwLGNvbnN0cnVjdG9yOiEwLGZvcmNlZDpHIT09Un0sWSksdyhHLHgpLEx8fFQuc2V0U3Ryb25nKEcseCxTKSxHfX0sNDE1NDQ6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlKDU2NjQ2KSxlKDUxMDkwKTt2YXIgcj1lKDc2MDU4KSxuPWUoMjUzOTEpLHQ9ZSg0ODk5OSksaT1PYmplY3Qscz1UeXBlRXJyb3IsYT1yKCJNYXAiKSx1PXIoIldlYWtNYXAiKSxjPWZ1bmN0aW9uKCl7dGhpcy5vYmplY3Q9bnVsbCx0aGlzLnN5bWJvbD1udWxsLHRoaXMucHJpbWl0aXZlcz1udWxsLHRoaXMub2JqZWN0c0J5SW5kZXg9bihudWxsKX07Yy5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGQsbSl7cmV0dXJuIHRoaXNbZF18fCh0aGlzW2RdPW0oKSl9LGMucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24oZCxtLEMpe3ZhciBnPUM/dGhpcy5vYmplY3RzQnlJbmRleFtkXXx8KHRoaXMub2JqZWN0c0J5SW5kZXhbZF09bmV3IHUpOnRoaXMucHJpbWl0aXZlc3x8KHRoaXMucHJpbWl0aXZlcz1uZXcgYSksdz1nLmdldChtKTtyZXR1cm4gd3x8Zy5zZXQobSx3PW5ldyBjKSx3fTt2YXIgaD1uZXcgYzt5LmV4cG9ydHM9ZnVuY3Rpb24oKXt2YXIgZD1oLG09YXJndW1lbnRzLmxlbmd0aCxDLGc7Zm9yKEM9MDtDPG07QysrKXQoZz1hcmd1bWVudHNbQ10pJiYoZD1kLm5leHQoQyxnLCEwKSk7aWYodGhpcz09PWkmJmQ9PT1oKXRocm93IG5ldyBzKCJDb21wb3NpdGUga2V5cyBtdXN0IGNvbnRhaW4gYSBub24tcHJpbWl0aXZlIGNvbXBvbmVudCIpO2ZvcihDPTA7QzxtO0MrKyl0KGc9YXJndW1lbnRzW0NdKXx8KGQ9ZC5uZXh0KEMsZywhMSkpO3JldHVybiBkfX0sODc1ODpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoMzY4MTIpLG49ZSgxOTE1MiksdD1lKDgyNDc0KSxpPWUoNzI1NjApO3kuZXhwb3J0cz1mdW5jdGlvbihzLGEsdSl7Zm9yKHZhciBjPW4oYSksaD1pLmYsZD10LmYsbT0wO208Yy5sZW5ndGg7bSsrKXt2YXIgQz1jW21dOyFyKHMsQykmJiEodSYmcih1LEMpKSYmaChzLEMsZChhLEMpKX19fSw4MTc0ODpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoMzY4OSk7eS5leHBvcnRzPSFyKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gbigpe31yZXR1cm4gbi5wcm90b3R5cGUuY29uc3RydWN0b3I9bnVsbCxPYmplY3QuZ2V0UHJvdG90eXBlT2YobmV3IG4pIT09bi5wcm90b3R5cGV9KX0sMjc4MDc6ZnVuY3Rpb24oeSl7InVzZSBzdHJpY3QiO3kuZXhwb3J0cz1mdW5jdGlvbihwLGUpe3JldHVybnt2YWx1ZTpwLGRvbmU6ZX19fSw3NTc3MzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNjc2OTcpLG49ZSg3MjU2MCksdD1lKDc1Njg0KTt5LmV4cG9ydHM9cj9mdW5jdGlvbihpLHMsYSl7cmV0dXJuIG4uZihpLHMsdCgxLGEpKX06ZnVuY3Rpb24oaSxzLGEpe3JldHVybiBpW3NdPWEsaX19LDc1Njg0OmZ1bmN0aW9uKHkpeyJ1c2Ugc3RyaWN0Ijt5LmV4cG9ydHM9ZnVuY3Rpb24ocCxlKXtyZXR1cm57ZW51bWVyYWJsZTohKHAmMSksY29uZmlndXJhYmxlOiEocCYyKSx3cml0YWJsZTohKHAmNCksdmFsdWU6ZX19fSw3NjUyMjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoMTgzNjApLG49ZSg3MjU2MCksdD1lKDc1Njg0KTt5LmV4cG9ydHM9ZnVuY3Rpb24oaSxzLGEpe3ZhciB1PXIocyk7dSBpbiBpP24uZihpLHUsdCgwLGEpKTppW3VdPWF9fSw2MjE0ODpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoOTg3MDIpLG49ZSg3MjU2MCk7eS5leHBvcnRzPWZ1bmN0aW9uKHQsaSxzKXtyZXR1cm4gcy5nZXQmJnIocy5nZXQsaSx7Z2V0dGVyOiEwfSkscy5zZXQmJnIocy5zZXQsaSx7c2V0dGVyOiEwfSksbi5mKHQsaSxzKX19LDExODgwOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg2OTk4NSksbj1lKDcyNTYwKSx0PWUoOTg3MDIpLGk9ZSg5NTAxNCk7eS5leHBvcnRzPWZ1bmN0aW9uKHMsYSx1LGMpe2N8fChjPXt9KTt2YXIgaD1jLmVudW1lcmFibGUsZD1jLm5hbWUhPT12b2lkIDA/Yy5uYW1lOmE7aWYocih1KSYmdCh1LGQsYyksYy5nbG9iYWwpaD9zW2FdPXU6aShhLHUpO2Vsc2V7dHJ5e2MudW5zYWZlP3NbYV0mJihoPSEwKTpkZWxldGUgc1thXX1jYXRjaChtKXt9aD9zW2FdPXU6bi5mKHMsYSx7dmFsdWU6dSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohYy5ub25Db25maWd1cmFibGUsd3JpdGFibGU6IWMubm9uV3JpdGFibGV9KX1yZXR1cm4gc319LDYwNDU6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDExODgwKTt5LmV4cG9ydHM9ZnVuY3Rpb24obix0LGkpe2Zvcih2YXIgcyBpbiB0KXIobixzLHRbc10saSk7cmV0dXJuIG59fSw5NTAxNDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoMTkwMzcpLG49T2JqZWN0LmRlZmluZVByb3BlcnR5O3kuZXhwb3J0cz1mdW5jdGlvbih0LGkpe3RyeXtuKHIsdCx7dmFsdWU6aSxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KX1jYXRjaChzKXtyW3RdPWl9cmV0dXJuIGl9fSw2NzY5NzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoMzY4OSk7eS5leHBvcnRzPSFyKGZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwxLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gN319KVsxXSE9PTd9KX0sMjE0MjA6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDE5MDM3KSxuPWUoMjE5MDUpLHQ9ZSg2MzUxNCksaT1yLnN0cnVjdHVyZWRDbG9uZSxzPXIuQXJyYXlCdWZmZXIsYT1yLk1lc3NhZ2VDaGFubmVsLHU9ITEsYyxoLGQsbTtpZih0KXU9ZnVuY3Rpb24oQyl7aShDLHt0cmFuc2ZlcjpbQ119KX07ZWxzZSBpZihzKXRyeXthfHwoYz1uKCJ3b3JrZXJfdGhyZWFkcyIpLGMmJihhPWMuTWVzc2FnZUNoYW5uZWwpKSxhJiYoaD1uZXcgYSxkPW5ldyBzKDIpLG09ZnVuY3Rpb24oQyl7aC5wb3J0MS5wb3N0TWVzc2FnZShudWxsLFtDXSl9LGQuYnl0ZUxlbmd0aD09PTImJihtKGQpLGQuYnl0ZUxlbmd0aD09PTAmJih1PW0pKSl9Y2F0Y2goQyl7fXkuZXhwb3J0cz11fSwyMjY1OTpmdW5jdGlvbih5KXsidXNlIHN0cmljdCI7dmFyIHA9dHlwZW9mIGRvY3VtZW50PT0ib2JqZWN0IiYmZG9jdW1lbnQuYWxsLGU9dHlwZW9mIHA9PSJ1bmRlZmluZWQiJiZwIT09dm9pZCAwO3kuZXhwb3J0cz17YWxsOnAsSVNfSFRNTEREQTplfX0sMzY0MjA6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDE5MDM3KSxuPWUoNDg5OTkpLHQ9ci5kb2N1bWVudCxpPW4odCkmJm4odC5jcmVhdGVFbGVtZW50KTt5LmV4cG9ydHM9ZnVuY3Rpb24ocyl7cmV0dXJuIGk/dC5jcmVhdGVFbGVtZW50KHMpOnt9fX0sNTU1NjU6ZnVuY3Rpb24oeSl7InVzZSBzdHJpY3QiO3ZhciBwPVR5cGVFcnJvcixlPTkwMDcxOTkyNTQ3NDA5OTE7eS5leHBvcnRzPWZ1bmN0aW9uKHIpe2lmKHI+ZSl0aHJvdyBwKCJNYXhpbXVtIGFsbG93ZWQgaW5kZXggZXhjZWVkZWQiKTtyZXR1cm4gcn19LDM3MTM2OmZ1bmN0aW9uKHkpeyJ1c2Ugc3RyaWN0Ijt5LmV4cG9ydHM9e0luZGV4U2l6ZUVycm9yOntzOiJJTkRFWF9TSVpFX0VSUiIsYzoxLG06MX0sRE9NU3RyaW5nU2l6ZUVycm9yOntzOiJET01TVFJJTkdfU0laRV9FUlIiLGM6MixtOjB9LEhpZXJhcmNoeVJlcXVlc3RFcnJvcjp7czoiSElFUkFSQ0hZX1JFUVVFU1RfRVJSIixjOjMsbToxfSxXcm9uZ0RvY3VtZW50RXJyb3I6e3M6IldST05HX0RPQ1VNRU5UX0VSUiIsYzo0LG06MX0sSW52YWxpZENoYXJhY3RlckVycm9yOntzOiJJTlZBTElEX0NIQVJBQ1RFUl9FUlIiLGM6NSxtOjF9LE5vRGF0YUFsbG93ZWRFcnJvcjp7czoiTk9fREFUQV9BTExPV0VEX0VSUiIsYzo2LG06MH0sTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3I6e3M6Ik5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiIsYzo3LG06MX0sTm90Rm91bmRFcnJvcjp7czoiTk9UX0ZPVU5EX0VSUiIsYzo4LG06MX0sTm90U3VwcG9ydGVkRXJyb3I6e3M6Ik5PVF9TVVBQT1JURURfRVJSIixjOjksbToxfSxJblVzZUF0dHJpYnV0ZUVycm9yOntzOiJJTlVTRV9BVFRSSUJVVEVfRVJSIixjOjEwLG06MX0sSW52YWxpZFN0YXRlRXJyb3I6e3M6IklOVkFMSURfU1RBVEVfRVJSIixjOjExLG06MX0sU3ludGF4RXJyb3I6e3M6IlNZTlRBWF9FUlIiLGM6MTIsbToxfSxJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3I6e3M6IklOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUiIsYzoxMyxtOjF9LE5hbWVzcGFjZUVycm9yOntzOiJOQU1FU1BBQ0VfRVJSIixjOjE0LG06MX0sSW52YWxpZEFjY2Vzc0Vycm9yOntzOiJJTlZBTElEX0FDQ0VTU19FUlIiLGM6MTUsbToxfSxWYWxpZGF0aW9uRXJyb3I6e3M6IlZBTElEQVRJT05fRVJSIixjOjE2LG06MH0sVHlwZU1pc21hdGNoRXJyb3I6e3M6IlRZUEVfTUlTTUFUQ0hfRVJSIixjOjE3LG06MX0sU2VjdXJpdHlFcnJvcjp7czoiU0VDVVJJVFlfRVJSIixjOjE4LG06MX0sTmV0d29ya0Vycm9yOntzOiJORVRXT1JLX0VSUiIsYzoxOSxtOjF9LEFib3J0RXJyb3I6e3M6IkFCT1JUX0VSUiIsYzoyMCxtOjF9LFVSTE1pc21hdGNoRXJyb3I6e3M6IlVSTF9NSVNNQVRDSF9FUlIiLGM6MjEsbToxfSxRdW90YUV4Y2VlZGVkRXJyb3I6e3M6IlFVT1RBX0VYQ0VFREVEX0VSUiIsYzoyMixtOjF9LFRpbWVvdXRFcnJvcjp7czoiVElNRU9VVF9FUlIiLGM6MjMsbToxfSxJbnZhbGlkTm9kZVR5cGVFcnJvcjp7czoiSU5WQUxJRF9OT0RFX1RZUEVfRVJSIixjOjI0LG06MX0sRGF0YUNsb25lRXJyb3I6e3M6IkRBVEFfQ0xPTkVfRVJSIixjOjI1LG06MX19fSw3MjUzMjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoODg1NjMpLG49ZSg1MDgwNik7eS5leHBvcnRzPSFyJiYhbiYmdHlwZW9mIHdpbmRvdz09Im9iamVjdCImJnR5cGVvZiBkb2N1bWVudD09Im9iamVjdCJ9LDgzMTI3OmZ1bmN0aW9uKHkpeyJ1c2Ugc3RyaWN0Ijt5LmV4cG9ydHM9dHlwZW9mIEJ1bj09ImZ1bmN0aW9uIiYmQnVuJiZ0eXBlb2YgQnVuLnZlcnNpb249PSJzdHJpbmcifSw4ODU2MzpmdW5jdGlvbih5KXsidXNlIHN0cmljdCI7eS5leHBvcnRzPXR5cGVvZiBEZW5vPT0ib2JqZWN0IiYmRGVubyYmdHlwZW9mIERlbm8udmVyc2lvbj09Im9iamVjdCJ9LDQ3NjQ6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDMwMDcxKTt5LmV4cG9ydHM9Lyg/OmlwYWR8aXBob25lfGlwb2QpLiphcHBsZXdlYmtpdC9pLnRlc3Qocil9LDUwODA2OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSgxOTAzNyksbj1lKDY2NDgpO3kuZXhwb3J0cz1uKHIucHJvY2Vzcyk9PT0icHJvY2VzcyJ9LDMwMDcxOmZ1bmN0aW9uKHkpeyJ1c2Ugc3RyaWN0Ijt5LmV4cG9ydHM9dHlwZW9mIG5hdmlnYXRvciE9InVuZGVmaW5lZCImJlN0cmluZyhuYXZpZ2F0b3IudXNlckFnZW50KXx8IiJ9LDM2MTU6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDE5MDM3KSxuPWUoMzAwNzEpLHQ9ci5wcm9jZXNzLGk9ci5EZW5vLHM9dCYmdC52ZXJzaW9uc3x8aSYmaS52ZXJzaW9uLGE9cyYmcy52OCx1LGM7YSYmKHU9YS5zcGxpdCgiLiIpLGM9dVswXT4wJiZ1WzBdPDQ/MTorKHVbMF0rdVsxXSkpLCFjJiZuJiYodT1uLm1hdGNoKC9FZGdlXC8oXGQrKS8pLCghdXx8dVsxXT49NzQpJiYodT1uLm1hdGNoKC9DaHJvbWVcLyhcZCspLyksdSYmKGM9K3VbMV0pKSkseS5leHBvcnRzPWN9LDcyNzM5OmZ1bmN0aW9uKHkpeyJ1c2Ugc3RyaWN0Ijt5LmV4cG9ydHM9WyJjb25zdHJ1Y3RvciIsImhhc093blByb3BlcnR5IiwiaXNQcm90b3R5cGVPZiIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwidG9Mb2NhbGVTdHJpbmciLCJ0b1N0cmluZyIsInZhbHVlT2YiXX0sNTY2MTA6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDY4ODQ0KSxuPUVycm9yLHQ9cigiIi5yZXBsYWNlKSxpPWZ1bmN0aW9uKHUpe3JldHVybiBTdHJpbmcobmV3IG4odSkuc3RhY2spfSgienhjYXNkIikscz0vXG5ccyphdCBbXjpdKjpbXlxuXSovLGE9cy50ZXN0KGkpO3kuZXhwb3J0cz1mdW5jdGlvbih1LGMpe2lmKGEmJnR5cGVvZiB1PT0ic3RyaW5nIiYmIW4ucHJlcGFyZVN0YWNrVHJhY2UpZm9yKDtjLS07KXU9dCh1LHMsIiIpO3JldHVybiB1fX0sNjU0MTE6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc1NzczKSxuPWUoNTY2MTApLHQ9ZSg0OTU5OSksaT1FcnJvci5jYXB0dXJlU3RhY2tUcmFjZTt5LmV4cG9ydHM9ZnVuY3Rpb24ocyxhLHUsYyl7dCYmKGk/aShzLGEpOnIocywic3RhY2siLG4odSxjKSkpfX0sNDk1OTk6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDM2ODkpLG49ZSg3NTY4NCk7eS5leHBvcnRzPSFyKGZ1bmN0aW9uKCl7dmFyIHQ9bmV3IEVycm9yKCJhIik7cmV0dXJuInN0YWNrImluIHQ/KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJzdGFjayIsbigxLDcpKSx0LnN0YWNrIT09Nyk6ITB9KX0sNzk5ODk6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDE5MDM3KSxuPWUoODI0NzQpLmYsdD1lKDc1NzczKSxpPWUoMTE4ODApLHM9ZSg5NTAxNCksYT1lKDg3NTgpLHU9ZSgzNTI2Nik7eS5leHBvcnRzPWZ1bmN0aW9uKGMsaCl7dmFyIGQ9Yy50YXJnZXQsbT1jLmdsb2JhbCxDPWMuc3RhdCxnLHcsRSx4LE8sVDtpZihtP3c9cjpDP3c9cltkXXx8cyhkLHt9KTp3PShyW2RdfHx7fSkucHJvdG90eXBlLHcpZm9yKEUgaW4gaCl7aWYoTz1oW0VdLGMuZG9udENhbGxHZXRTZXQ/KFQ9bih3LEUpLHg9VCYmVC52YWx1ZSk6eD13W0VdLGc9dShtP0U6ZCsoQz8iLiI6IiMiKStFLGMuZm9yY2VkKSwhZyYmeCE9PXZvaWQgMCl7aWYodHlwZW9mIE89PXR5cGVvZiB4KWNvbnRpbnVlO2EoTyx4KX0oYy5zaGFtfHx4JiZ4LnNoYW0pJiZ0KE8sInNoYW0iLCEwKSxpKHcsRSxPLGMpfX19LDM2ODk6ZnVuY3Rpb24oeSl7InVzZSBzdHJpY3QiO3kuZXhwb3J0cz1mdW5jdGlvbihwKXt0cnl7cmV0dXJuISFwKCl9Y2F0Y2goZSl7cmV0dXJuITB9fX0sNzE1OTQ6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDM2ODkpO3kuZXhwb3J0cz0hcihmdW5jdGlvbigpe3JldHVybiBPYmplY3QuaXNFeHRlbnNpYmxlKE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyh7fSkpfSl9LDYxNzM1OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg5NzIxNSksbj1GdW5jdGlvbi5wcm90b3R5cGUsdD1uLmFwcGx5LGk9bi5jYWxsO3kuZXhwb3J0cz10eXBlb2YgUmVmbGVjdD09Im9iamVjdCImJlJlZmxlY3QuYXBwbHl8fChyP2kuYmluZCh0KTpmdW5jdGlvbigpe3JldHVybiBpLmFwcGx5KHQsYXJndW1lbnRzKX0pfSw1NDA3MTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNDY1NzYpLG49ZSgxMDUwOSksdD1lKDk3MjE1KSxpPXIoci5iaW5kKTt5LmV4cG9ydHM9ZnVuY3Rpb24ocyxhKXtyZXR1cm4gbihzKSxhPT09dm9pZCAwP3M6dD9pKHMsYSk6ZnVuY3Rpb24oKXtyZXR1cm4gcy5hcHBseShhLGFyZ3VtZW50cyl9fX0sOTcyMTU6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDM2ODkpO3kuZXhwb3J0cz0hcihmdW5jdGlvbigpe3ZhciBuPWZ1bmN0aW9uKCl7fS5iaW5kKCk7cmV0dXJuIHR5cGVvZiBuIT0iZnVuY3Rpb24ifHxuLmhhc093blByb3BlcnR5KCJwcm90b3R5cGUiKX0pfSwyMjYxNTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoOTcyMTUpLG49RnVuY3Rpb24ucHJvdG90eXBlLmNhbGw7eS5leHBvcnRzPXI/bi5iaW5kKG4pOmZ1bmN0aW9uKCl7cmV0dXJuIG4uYXBwbHkobixhcmd1bWVudHMpfX0sMzM1MDU6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDY4ODQ0KSxuPWUoMTA1MDkpO3kuZXhwb3J0cz1mdW5jdGlvbigpe3JldHVybiByKG4odGhpcykpfX0sNDEyMzY6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDY3Njk3KSxuPWUoMzY4MTIpLHQ9RnVuY3Rpb24ucHJvdG90eXBlLGk9ciYmT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixzPW4odCwibmFtZSIpLGE9cyYmZnVuY3Rpb24oKXt9Lm5hbWU9PT0ic29tZXRoaW5nIix1PXMmJighcnx8ciYmaSh0LCJuYW1lIikuY29uZmlndXJhYmxlKTt5LmV4cG9ydHM9e0VYSVNUUzpzLFBST1BFUjphLENPTkZJR1VSQUJMRTp1fX0sNTI3NDM6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDY4ODQ0KSxuPWUoMTA1MDkpO3kuZXhwb3J0cz1mdW5jdGlvbih0LGkscyl7dHJ5e3JldHVybiByKG4oT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGkpW3NdKSl9Y2F0Y2goYSl7fX19LDQ2NTc2OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg2NjQ4KSxuPWUoNjg4NDQpO3kuZXhwb3J0cz1mdW5jdGlvbih0KXtpZihyKHQpPT09IkZ1bmN0aW9uIilyZXR1cm4gbih0KX19LDY4ODQ0OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg5NzIxNSksbj1GdW5jdGlvbi5wcm90b3R5cGUsdD1uLmNhbGwsaT1yJiZuLmJpbmQuYmluZCh0LHQpO3kuZXhwb3J0cz1yP2k6ZnVuY3Rpb24ocyl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHQuYXBwbHkocyxhcmd1bWVudHMpfX19LDkwOTM6ZnVuY3Rpb24oeSl7InVzZSBzdHJpY3QiO3ZhciBwPVR5cGVFcnJvcjt5LmV4cG9ydHM9ZnVuY3Rpb24oZSl7dmFyIHI9ZSYmZS5hbHBoYWJldDtpZihyPT09dm9pZCAwfHxyPT09ImJhc2U2NCJ8fHI9PT0iYmFzZTY0dXJsIilyZXR1cm4gcnx8ImJhc2U2NCI7dGhyb3cgbmV3IHAoIkluY29ycmVjdCBgYWxwaGFiZXRgIG9wdGlvbiIpfX0sMTE0Mjc6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDIyNjE1KSxuPWUoNjk5ODUpLHQ9ZSg4NTAyNyksaT1lKDIyMzAyKSxzPWUoOTE2NjQpLGE9ZSg1NDg0OSksdT1lKDQ0MjAxKSxjPWUoMjkwMTkpLGg9dSgiYXN5bmNJdGVyYXRvciIpO3kuZXhwb3J0cz1mdW5jdGlvbihkKXt2YXIgbT10KGQpLEM9ITAsZz1hKG0saCksdztyZXR1cm4gbihnKXx8KGc9cyhtKSxDPSExKSxnIT09dm9pZCAwP3c9cihnLG0pOih3PW0sQz0hMCksdCh3KSxpKEM/dzpuZXcgYyhpKHcpKSl9fSwxMzgwNzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoMjI2MTUpLG49ZSgyOTAxOSksdD1lKDg1MDI3KSxpPWUoNTE4NSkscz1lKDIyMzAyKSxhPWUoNTQ4NDkpLHU9ZSg0NDIwMSksYz11KCJhc3luY0l0ZXJhdG9yIik7eS5leHBvcnRzPWZ1bmN0aW9uKGgsZCl7dmFyIG09YXJndW1lbnRzLmxlbmd0aDwyP2EoaCxjKTpkO3JldHVybiBtP3QocihtLGgpKTpuZXcgbihzKGkoaCkpKX19LDg4Mjc3OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSgxOTAzNyk7eS5leHBvcnRzPWZ1bmN0aW9uKG4sdCl7dmFyIGk9cltuXSxzPWkmJmkucHJvdG90eXBlO3JldHVybiBzJiZzW3RdfX0sNzYwNTg6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDE5MDM3KSxuPWUoNjk5ODUpLHQ9ZnVuY3Rpb24oaSl7cmV0dXJuIG4oaSk/aTp2b2lkIDB9O3kuZXhwb3J0cz1mdW5jdGlvbihpLHMpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPDI/dChyW2ldKTpyW2ldJiZyW2ldW3NdfX0sMjIzMDI6ZnVuY3Rpb24oeSl7InVzZSBzdHJpY3QiO3kuZXhwb3J0cz1mdW5jdGlvbihwKXtyZXR1cm57aXRlcmF0b3I6cCxuZXh0OnAubmV4dCxkb25lOiExfX19LDM2NzUyOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSgyMjYxNSksbj1lKDg1MDI3KSx0PWUoMjIzMDIpLGk9ZSg5MTY2NCk7eS5leHBvcnRzPWZ1bmN0aW9uKHMsYSl7KCFhfHx0eXBlb2YgcyE9InN0cmluZyIpJiZuKHMpO3ZhciB1PWkocyk7cmV0dXJuIHQobih1IT09dm9pZCAwP3IodSxzKTpzKSl9fSw5MTY2NDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNTA5MjYpLG49ZSg1NDg0OSksdD1lKDk4MSksaT1lKDk0NzgpLHM9ZSg0NDIwMSksYT1zKCJpdGVyYXRvciIpO3kuZXhwb3J0cz1mdW5jdGlvbih1KXtpZighdCh1KSlyZXR1cm4gbih1LGEpfHxuKHUsIkBAaXRlcmF0b3IiKXx8aVtyKHUpXX19LDUxODU6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDIyNjE1KSxuPWUoMTA1MDkpLHQ9ZSg4NTAyNyksaT1lKDIzNjkxKSxzPWUoOTE2NjQpLGE9VHlwZUVycm9yO3kuZXhwb3J0cz1mdW5jdGlvbih1LGMpe3ZhciBoPWFyZ3VtZW50cy5sZW5ndGg8Mj9zKHUpOmM7aWYobihoKSlyZXR1cm4gdChyKGgsdSkpO3Rocm93IG5ldyBhKGkodSkrIiBpcyBub3QgaXRlcmFibGUiKX19LDkyNjQzOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg2ODg0NCksbj1lKDkyMjk3KSx0PWUoNjk5ODUpLGk9ZSg2NjQ4KSxzPWUoMzQzMjcpLGE9cihbXS5wdXNoKTt5LmV4cG9ydHM9ZnVuY3Rpb24odSl7aWYodCh1KSlyZXR1cm4gdTtpZihuKHUpKXtmb3IodmFyIGM9dS5sZW5ndGgsaD1bXSxkPTA7ZDxjO2QrKyl7dmFyIG09dVtkXTt0eXBlb2YgbT09InN0cmluZyI/YShoLG0pOih0eXBlb2YgbT09Im51bWJlciJ8fGkobSk9PT0iTnVtYmVyInx8aShtKT09PSJTdHJpbmciKSYmYShoLHMobSkpfXZhciBDPWgubGVuZ3RoLGc9ITA7cmV0dXJuIGZ1bmN0aW9uKHcsRSl7aWYoZylyZXR1cm4gZz0hMSxFO2lmKG4odGhpcykpcmV0dXJuIEU7Zm9yKHZhciB4PTA7eDxDO3grKylpZihoW3hdPT09dylyZXR1cm4gRX19fX0sNTQ4NDk6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDEwNTA5KSxuPWUoOTgxKTt5LmV4cG9ydHM9ZnVuY3Rpb24odCxpKXt2YXIgcz10W2ldO3JldHVybiBuKHMpP3ZvaWQgMDpyKHMpfX0sNDEwNzQ6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDEwNTA5KSxuPWUoODUwMjcpLHQ9ZSgyMjYxNSksaT1lKDY4NzAwKSxzPWUoMjIzMDIpLGE9IkludmFsaWQgc2l6ZSIsdT1SYW5nZUVycm9yLGM9VHlwZUVycm9yLGg9TWF0aC5tYXgsZD1mdW5jdGlvbihtLEMsZyx3KXt0aGlzLnNldD1tLHRoaXMuc2l6ZT1DLHRoaXMuaGFzPWcsdGhpcy5rZXlzPXd9O2QucHJvdG90eXBlPXtnZXRJdGVyYXRvcjpmdW5jdGlvbigpe3JldHVybiBzKG4odCh0aGlzLmtleXMsdGhpcy5zZXQpKSl9LGluY2x1ZGVzOmZ1bmN0aW9uKG0pe3JldHVybiB0KHRoaXMuaGFzLHRoaXMuc2V0LG0pfX0seS5leHBvcnRzPWZ1bmN0aW9uKG0pe24obSk7dmFyIEM9K20uc2l6ZTtpZihDIT09Qyl0aHJvdyBuZXcgYyhhKTt2YXIgZz1pKEMpO2lmKGc8MCl0aHJvdyBuZXcgdShhKTtyZXR1cm4gbmV3IGQobSxoKGcsMCkscihtLmhhcykscihtLmtleXMpKX19LDI3MDE3OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg2ODg0NCksbj1lKDkwNjkwKSx0PU1hdGguZmxvb3IsaT1yKCIiLmNoYXJBdCkscz1yKCIiLnJlcGxhY2UpLGE9cigiIi5zbGljZSksdT0vXCQoWyQmJ2BdfFxkezEsMn18PFtePl0qPikvZyxjPS9cJChbJCYnYF18XGR7MSwyfSkvZzt5LmV4cG9ydHM9ZnVuY3Rpb24oaCxkLG0sQyxnLHcpe3ZhciBFPW0raC5sZW5ndGgseD1DLmxlbmd0aCxPPWM7cmV0dXJuIGchPT12b2lkIDAmJihnPW4oZyksTz11KSxzKHcsTyxmdW5jdGlvbihULFMpe3ZhciBMO3N3aXRjaChpKFMsMCkpe2Nhc2UiJCI6cmV0dXJuIiQiO2Nhc2UiJiI6cmV0dXJuIGg7Y2FzZSJgIjpyZXR1cm4gYShkLDAsbSk7Y2FzZSInIjpyZXR1cm4gYShkLEUpO2Nhc2UiPCI6TD1nW2EoUywxLC0xKV07YnJlYWs7ZGVmYXVsdDp2YXIgST0rUztpZihJPT09MClyZXR1cm4gVDtpZihJPngpe3ZhciBSPXQoSS8xMCk7cmV0dXJuIFI9PT0wP1Q6Ujw9eD9DW1ItMV09PT12b2lkIDA/aShTLDEpOkNbUi0xXStpKFMsMSk6VH1MPUNbSS0xXX1yZXR1cm4gTD09PXZvaWQgMD8iIjpMfSl9fSwxOTAzNzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWZ1bmN0aW9uKG4pe3JldHVybiBuJiZuLk1hdGg9PT1NYXRoJiZufTt5LmV4cG9ydHM9cih0eXBlb2YgZ2xvYmFsVGhpcz09Im9iamVjdCImJmdsb2JhbFRoaXMpfHxyKHR5cGVvZiB3aW5kb3c9PSJvYmplY3QiJiZ3aW5kb3cpfHxyKHR5cGVvZiBzZWxmPT0ib2JqZWN0IiYmc2VsZil8fHIodHlwZW9mIGUuZz09Im9iamVjdCImJmUuZyl8fHIodHlwZW9mIHRoaXM9PSJvYmplY3QiJiZ0aGlzKXx8ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30oKXx8RnVuY3Rpb24oInJldHVybiB0aGlzIikoKX0sMzY4MTI6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDY4ODQ0KSxuPWUoOTA2OTApLHQ9cih7fS5oYXNPd25Qcm9wZXJ0eSk7eS5leHBvcnRzPU9iamVjdC5oYXNPd258fGZ1bmN0aW9uKHMsYSl7cmV0dXJuIHQobihzKSxhKX19LDU3MjQ4OmZ1bmN0aW9uKHkpeyJ1c2Ugc3RyaWN0Ijt5LmV4cG9ydHM9e319LDIwOTIwOmZ1bmN0aW9uKHkpeyJ1c2Ugc3RyaWN0Ijt5LmV4cG9ydHM9ZnVuY3Rpb24ocCxlKXt0cnl7YXJndW1lbnRzLmxlbmd0aD09PTE/Y29uc29sZS5lcnJvcihwKTpjb25zb2xlLmVycm9yKHAsZSl9Y2F0Y2gocil7fX19LDI2ODg6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc2MDU4KTt5LmV4cG9ydHM9cigiZG9jdW1lbnQiLCJkb2N1bWVudEVsZW1lbnQiKX0sNjg1MDY6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDY3Njk3KSxuPWUoMzY4OSksdD1lKDM2NDIwKTt5LmV4cG9ydHM9IXImJiFuKGZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0KCJkaXYiKSwiYSIse2dldDpmdW5jdGlvbigpe3JldHVybiA3fX0pLmEhPT03fSl9LDE1NDc3OmZ1bmN0aW9uKHkpeyJ1c2Ugc3RyaWN0Ijt2YXIgcD1BcnJheSxlPU1hdGguYWJzLHI9TWF0aC5wb3csbj1NYXRoLmZsb29yLHQ9TWF0aC5sb2csaT1NYXRoLkxOMixzPWZ1bmN0aW9uKHUsYyxoKXt2YXIgZD1wKGgpLG09aCo4LWMtMSxDPSgxPDxtKS0xLGc9Qz4+MSx3PWM9PT0yMz9yKDIsLTI0KS1yKDIsLTc3KTowLEU9dTwwfHx1PT09MCYmMS91PDA/MTowLHg9MCxPLFQsUztmb3IodT1lKHUpLHUhPT11fHx1PT09MS8wPyhUPXUhPT11PzE6MCxPPUMpOihPPW4odCh1KS9pKSxTPXIoMiwtTyksdSpTPDEmJihPLS0sUyo9MiksTytnPj0xP3UrPXcvUzp1Kz13KnIoMiwxLWcpLHUqUz49MiYmKE8rKyxTLz0yKSxPK2c+PUM/KFQ9MCxPPUMpOk8rZz49MT8oVD0odSpTLTEpKnIoMixjKSxPKz1nKTooVD11KnIoMixnLTEpKnIoMixjKSxPPTApKTtjPj04OylkW3grK109VCYyNTUsVC89MjU2LGMtPTg7Zm9yKE89Tzw8Y3xULG0rPWM7bT4wOylkW3grK109TyYyNTUsTy89MjU2LG0tPTg7cmV0dXJuIGRbLS14XXw9RSoxMjgsZH0sYT1mdW5jdGlvbih1LGMpe3ZhciBoPXUubGVuZ3RoLGQ9aCo4LWMtMSxtPSgxPDxkKS0xLEM9bT4+MSxnPWQtNyx3PWgtMSxFPXVbdy0tXSx4PUUmMTI3LE87Zm9yKEU+Pj03O2c+MDspeD14KjI1Nit1W3ctLV0sZy09ODtmb3IoTz14JigxPDwtZyktMSx4Pj49LWcsZys9YztnPjA7KU89TyoyNTYrdVt3LS1dLGctPTg7aWYoeD09PTApeD0xLUM7ZWxzZXtpZih4PT09bSlyZXR1cm4gTz9OYU46RT8tMS8wOjEvMDtPKz1yKDIsYykseC09Q31yZXR1cm4oRT8tMToxKSpPKnIoMix4LWMpfTt5LmV4cG9ydHM9e3BhY2s6cyx1bnBhY2s6YX19LDk0NDEzOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg2ODg0NCksbj1lKDM2ODkpLHQ9ZSg2NjQ4KSxpPU9iamVjdCxzPXIoIiIuc3BsaXQpO3kuZXhwb3J0cz1uKGZ1bmN0aW9uKCl7cmV0dXJuIWkoInoiKS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgwKX0pP2Z1bmN0aW9uKGEpe3JldHVybiB0KGEpPT09IlN0cmluZyI/cyhhLCIiKTppKGEpfTppfSwzMzQ1NzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNjk5ODUpLG49ZSg0ODk5OSksdD1lKDQ5Mzg1KTt5LmV4cG9ydHM9ZnVuY3Rpb24oaSxzLGEpe3ZhciB1LGM7cmV0dXJuIHQmJnIodT1zLmNvbnN0cnVjdG9yKSYmdSE9PWEmJm4oYz11LnByb3RvdHlwZSkmJmMhPT1hLnByb3RvdHlwZSYmdChpLGMpLGl9fSw2NzM4OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg2ODg0NCksbj1lKDY5OTg1KSx0PWUoODQwOTEpLGk9cihGdW5jdGlvbi50b1N0cmluZyk7bih0Lmluc3BlY3RTb3VyY2UpfHwodC5pbnNwZWN0U291cmNlPWZ1bmN0aW9uKHMpe3JldHVybiBpKHMpfSkseS5leHBvcnRzPXQuaW5zcGVjdFNvdXJjZX0sNjI1NzA6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDQ4OTk5KSxuPWUoNzU3NzMpO3kuZXhwb3J0cz1mdW5jdGlvbih0LGkpe3IoaSkmJiJjYXVzZSJpbiBpJiZuKHQsImNhdXNlIixpLmNhdXNlKX19LDQ1Mzc1OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDY4ODQ0KSx0PWUoNTcyNDgpLGk9ZSg0ODk5OSkscz1lKDM2ODEyKSxhPWUoNzI1NjApLmYsdT1lKDcyNzQxKSxjPWUoMjYwNjIpLGg9ZSgyNzA0OSksZD1lKDE0NjMwKSxtPWUoNzE1OTQpLEM9ITEsZz1kKCJtZXRhIiksdz0wLEU9ZnVuY3Rpb24oSSl7YShJLGcse3ZhbHVlOntvYmplY3RJRDoiTyIrdysrLHdlYWtEYXRhOnt9fX0pfSx4PWZ1bmN0aW9uKEksUil7aWYoIWkoSSkpcmV0dXJuIHR5cGVvZiBJPT0ic3ltYm9sIj9JOih0eXBlb2YgST09InN0cmluZyI/IlMiOiJQIikrSTtpZighcyhJLGcpKXtpZighaChJKSlyZXR1cm4iRiI7aWYoIVIpcmV0dXJuIkUiO0UoSSl9cmV0dXJuIElbZ10ub2JqZWN0SUR9LE89ZnVuY3Rpb24oSSxSKXtpZighcyhJLGcpKXtpZighaChJKSlyZXR1cm4hMDtpZighUilyZXR1cm4hMTtFKEkpfXJldHVybiBJW2ddLndlYWtEYXRhfSxUPWZ1bmN0aW9uKEkpe3JldHVybiBtJiZDJiZoKEkpJiYhcyhJLGcpJiZFKEkpLEl9LFM9ZnVuY3Rpb24oKXtMLmVuYWJsZT1mdW5jdGlvbigpe30sQz0hMDt2YXIgST11LmYsUj1uKFtdLnNwbGljZSksej17fTt6W2ddPTEsSSh6KS5sZW5ndGgmJih1LmY9ZnVuY3Rpb24oRyl7Zm9yKHZhciBZPUkoRyksZWU9MCxKPVkubGVuZ3RoO2VlPEo7ZWUrKylpZihZW2VlXT09PWcpe1IoWSxlZSwxKTticmVha31yZXR1cm4gWX0scih7dGFyZ2V0OiJPYmplY3QiLHN0YXQ6ITAsZm9yY2VkOiEwfSx7Z2V0T3duUHJvcGVydHlOYW1lczpjLmZ9KSl9LEw9eS5leHBvcnRzPXtlbmFibGU6UyxmYXN0S2V5OngsZ2V0V2Vha0RhdGE6TyxvbkZyZWV6ZTpUfTt0W2ddPSEwfSw2MTg6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDU5ODM0KSxuPWUoMTkwMzcpLHQ9ZSg0ODk5OSksaT1lKDc1NzczKSxzPWUoMzY4MTIpLGE9ZSg4NDA5MSksdT1lKDI3MTMpLGM9ZSg1NzI0OCksaD0iT2JqZWN0IGFscmVhZHkgaW5pdGlhbGl6ZWQiLGQ9bi5UeXBlRXJyb3IsbT1uLldlYWtNYXAsQyxnLHcsRT1mdW5jdGlvbihTKXtyZXR1cm4gdyhTKT9nKFMpOkMoUyx7fSl9LHg9ZnVuY3Rpb24oUyl7cmV0dXJuIGZ1bmN0aW9uKEwpe3ZhciBJO2lmKCF0KEwpfHwoST1nKEwpKS50eXBlIT09Uyl0aHJvdyBuZXcgZCgiSW5jb21wYXRpYmxlIHJlY2VpdmVyLCAiK1MrIiByZXF1aXJlZCIpO3JldHVybiBJfX07aWYocnx8YS5zdGF0ZSl7dmFyIE89YS5zdGF0ZXx8KGEuc3RhdGU9bmV3IG0pO08uZ2V0PU8uZ2V0LE8uaGFzPU8uaGFzLE8uc2V0PU8uc2V0LEM9ZnVuY3Rpb24oUyxMKXtpZihPLmhhcyhTKSl0aHJvdyBuZXcgZChoKTtyZXR1cm4gTC5mYWNhZGU9UyxPLnNldChTLEwpLEx9LGc9ZnVuY3Rpb24oUyl7cmV0dXJuIE8uZ2V0KFMpfHx7fX0sdz1mdW5jdGlvbihTKXtyZXR1cm4gTy5oYXMoUyl9fWVsc2V7dmFyIFQ9dSgic3RhdGUiKTtjW1RdPSEwLEM9ZnVuY3Rpb24oUyxMKXtpZihzKFMsVCkpdGhyb3cgbmV3IGQoaCk7cmV0dXJuIEwuZmFjYWRlPVMsaShTLFQsTCksTH0sZz1mdW5jdGlvbihTKXtyZXR1cm4gcyhTLFQpP1NbVF06e319LHc9ZnVuY3Rpb24oUyl7cmV0dXJuIHMoUyxUKX19eS5leHBvcnRzPXtzZXQ6QyxnZXQ6ZyxoYXM6dyxlbmZvcmNlOkUsZ2V0dGVyRm9yOnh9fSw5MzI5MjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNDQyMDEpLG49ZSg5NDc4KSx0PXIoIml0ZXJhdG9yIiksaT1BcnJheS5wcm90b3R5cGU7eS5leHBvcnRzPWZ1bmN0aW9uKHMpe3JldHVybiBzIT09dm9pZCAwJiYobi5BcnJheT09PXN8fGlbdF09PT1zKX19LDkyMjk3OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg2NjQ4KTt5LmV4cG9ydHM9QXJyYXkuaXNBcnJheXx8ZnVuY3Rpb24odCl7cmV0dXJuIHIodCk9PT0iQXJyYXkifX0sOTQwMTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNTA5MjYpO3kuZXhwb3J0cz1mdW5jdGlvbihuKXt2YXIgdD1yKG4pO3JldHVybiB0PT09IkJpZ0ludDY0QXJyYXkifHx0PT09IkJpZ1VpbnQ2NEFycmF5In19LDY5OTg1OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSgyMjY1OSksbj1yLmFsbDt5LmV4cG9ydHM9ci5JU19IVE1MRERBP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdD09ImZ1bmN0aW9uInx8dD09PW59OmZ1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdD09ImZ1bmN0aW9uIn19LDE5NDI5OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg2ODg0NCksbj1lKDM2ODkpLHQ9ZSg2OTk4NSksaT1lKDUwOTI2KSxzPWUoNzYwNTgpLGE9ZSg2NzM4KSx1PWZ1bmN0aW9uKCl7fSxjPVtdLGg9cygiUmVmbGVjdCIsImNvbnN0cnVjdCIpLGQ9L15ccyooPzpjbGFzc3xmdW5jdGlvbilcYi8sbT1yKGQuZXhlYyksQz0hZC50ZXN0KHUpLGc9ZnVuY3Rpb24oeCl7aWYoIXQoeCkpcmV0dXJuITE7dHJ5e3JldHVybiBoKHUsYyx4KSwhMH1jYXRjaChPKXtyZXR1cm4hMX19LHc9ZnVuY3Rpb24oeCl7aWYoIXQoeCkpcmV0dXJuITE7c3dpdGNoKGkoeCkpe2Nhc2UiQXN5bmNGdW5jdGlvbiI6Y2FzZSJHZW5lcmF0b3JGdW5jdGlvbiI6Y2FzZSJBc3luY0dlbmVyYXRvckZ1bmN0aW9uIjpyZXR1cm4hMX10cnl7cmV0dXJuIEN8fCEhbShkLGEoeCkpfWNhdGNoKE8pe3JldHVybiEwfX07dy5zaGFtPSEwLHkuZXhwb3J0cz0haHx8bihmdW5jdGlvbigpe3ZhciBFO3JldHVybiBnKGcuY2FsbCl8fCFnKE9iamVjdCl8fCFnKGZ1bmN0aW9uKCl7RT0hMH0pfHxFfSk/dzpnfSwzNTI2NjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoMzY4OSksbj1lKDY5OTg1KSx0PS8jfFwucHJvdG90eXBlXC4vLGk9ZnVuY3Rpb24oaCxkKXt2YXIgbT1hW3MoaCldO3JldHVybiBtPT09Yz8hMDptPT09dT8hMTpuKGQpP3IoZCk6ISFkfSxzPWkubm9ybWFsaXplPWZ1bmN0aW9uKGgpe3JldHVybiBTdHJpbmcoaCkucmVwbGFjZSh0LCIuIikudG9Mb3dlckNhc2UoKX0sYT1pLmRhdGE9e30sdT1pLk5BVElWRT0iTiIsYz1pLlBPTFlGSUxMPSJQIjt5LmV4cG9ydHM9aX0sOTYwMzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNTA5MjYpLG49ZSgzNjgxMiksdD1lKDk4MSksaT1lKDQ0MjAxKSxzPWUoOTQ3OCksYT1pKCJpdGVyYXRvciIpLHU9T2JqZWN0O3kuZXhwb3J0cz1mdW5jdGlvbihjKXtpZih0KGMpKXJldHVybiExO3ZhciBoPXUoYyk7cmV0dXJuIGhbYV0hPT12b2lkIDB8fCJAQGl0ZXJhdG9yImluIGh8fG4ocyxyKGgpKX19LDk4MTpmdW5jdGlvbih5KXsidXNlIHN0cmljdCI7eS5leHBvcnRzPWZ1bmN0aW9uKHApe3JldHVybiBwPT1udWxsfX0sNDg5OTk6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDY5OTg1KSxuPWUoMjI2NTkpLHQ9bi5hbGw7eS5leHBvcnRzPW4uSVNfSFRNTEREQT9mdW5jdGlvbihpKXtyZXR1cm4gdHlwZW9mIGk9PSJvYmplY3QiP2khPT1udWxsOnIoaSl8fGk9PT10fTpmdW5jdGlvbihpKXtyZXR1cm4gdHlwZW9mIGk9PSJvYmplY3QiP2khPT1udWxsOnIoaSl9fSw1MzkzMTpmdW5jdGlvbih5KXsidXNlIHN0cmljdCI7eS5leHBvcnRzPSExfSw1NTY3MDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNDg5OTkpLG49ZSg2MTgpLmdldDt5LmV4cG9ydHM9ZnVuY3Rpb24oaSl7aWYoIXIoaSkpcmV0dXJuITE7dmFyIHM9bihpKTtyZXR1cm4hIXMmJnMudHlwZT09PSJSYXdKU09OIn19LDkxMjQ1OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg0ODk5OSksbj1lKDY2NDgpLHQ9ZSg0NDIwMSksaT10KCJtYXRjaCIpO3kuZXhwb3J0cz1mdW5jdGlvbihzKXt2YXIgYTtyZXR1cm4gcihzKSYmKChhPXNbaV0pIT09dm9pZCAwPyEhYTpuKHMpPT09IlJlZ0V4cCIpfX0sMzA3MzQ6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc2MDU4KSxuPWUoNjk5ODUpLHQ9ZSgyMzYyMiksaT1lKDM5NTI1KSxzPU9iamVjdDt5LmV4cG9ydHM9aT9mdW5jdGlvbihhKXtyZXR1cm4gdHlwZW9mIGE9PSJzeW1ib2wifTpmdW5jdGlvbihhKXt2YXIgdT1yKCJTeW1ib2wiKTtyZXR1cm4gbih1KSYmdCh1LnByb3RvdHlwZSxzKGEpKX19LDk2NzA0OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSgyMjYxNSk7eS5leHBvcnRzPWZ1bmN0aW9uKG4sdCxpKXtmb3IodmFyIHM9aT9uOm4uaXRlcmF0b3IsYT1uLm5leHQsdSxjOyEodT1yKGEscykpLmRvbmU7KWlmKGM9dCh1LnZhbHVlKSxjIT09dm9pZCAwKXJldHVybiBjfX0sMTg3MzQ6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDU0MDcxKSxuPWUoMjI2MTUpLHQ9ZSg4NTAyNyksaT1lKDIzNjkxKSxzPWUoOTMyOTIpLGE9ZSg2MzEwKSx1PWUoMjM2MjIpLGM9ZSg1MTg1KSxoPWUoOTE2NjQpLGQ9ZSg3MjEyNSksbT1UeXBlRXJyb3IsQz1mdW5jdGlvbih3LEUpe3RoaXMuc3RvcHBlZD13LHRoaXMucmVzdWx0PUV9LGc9Qy5wcm90b3R5cGU7eS5leHBvcnRzPWZ1bmN0aW9uKHcsRSx4KXt2YXIgTz14JiZ4LnRoYXQsVD0hISh4JiZ4LkFTX0VOVFJJRVMpLFM9ISEoeCYmeC5JU19SRUNPUkQpLEw9ISEoeCYmeC5JU19JVEVSQVRPUiksST0hISh4JiZ4LklOVEVSUlVQVEVEKSxSPXIoRSxPKSx6LEcsWSxlZSxKLG1lLHRlLGxlPWZ1bmN0aW9uKFcpe3JldHVybiB6JiZkKHosIm5vcm1hbCIsVyksbmV3IEMoITAsVyl9LGNlPWZ1bmN0aW9uKFcpe3JldHVybiBUPyh0KFcpLEk/UihXWzBdLFdbMV0sbGUpOlIoV1swXSxXWzFdKSk6ST9SKFcsbGUpOlIoVyl9O2lmKFMpej13Lml0ZXJhdG9yO2Vsc2UgaWYoTCl6PXc7ZWxzZXtpZihHPWgodyksIUcpdGhyb3cgbmV3IG0oaSh3KSsiIGlzIG5vdCBpdGVyYWJsZSIpO2lmKHMoRykpe2ZvcihZPTAsZWU9YSh3KTtlZT5ZO1krKylpZihKPWNlKHdbWV0pLEomJnUoZyxKKSlyZXR1cm4gSjtyZXR1cm4gbmV3IEMoITEpfXo9Yyh3LEcpfWZvcihtZT1TP3cubmV4dDp6Lm5leHQ7ISh0ZT1uKG1lLHopKS5kb25lOyl7dHJ5e0o9Y2UodGUudmFsdWUpfWNhdGNoKFcpe2QoeiwidGhyb3ciLFcpfWlmKHR5cGVvZiBKPT0ib2JqZWN0IiYmSiYmdShnLEopKXJldHVybiBKfXJldHVybiBuZXcgQyghMSl9fSw3MjEyNTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoMjI2MTUpLG49ZSg4NTAyNyksdD1lKDU0ODQ5KTt5LmV4cG9ydHM9ZnVuY3Rpb24oaSxzLGEpe3ZhciB1LGM7bihpKTt0cnl7aWYodT10KGksInJldHVybiIpLCF1KXtpZihzPT09InRocm93Iil0aHJvdyBhO3JldHVybiBhfXU9cih1LGkpfWNhdGNoKGgpe2M9ITAsdT1ofWlmKHM9PT0idGhyb3ciKXRocm93IGE7aWYoYyl0aHJvdyB1O3JldHVybiBuKHUpLGF9fSwzMDk3NDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoMTIwMTMpLkl0ZXJhdG9yUHJvdG90eXBlLG49ZSgyNTM5MSksdD1lKDc1Njg0KSxpPWUoNTU5OTcpLHM9ZSg5NDc4KSxhPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9O3kuZXhwb3J0cz1mdW5jdGlvbih1LGMsaCxkKXt2YXIgbT1jKyIgSXRlcmF0b3IiO3JldHVybiB1LnByb3RvdHlwZT1uKHIse25leHQ6dCgrIWQsaCl9KSxpKHUsbSwhMSwhMCksc1ttXT1hLHV9fSw2NTQxOTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoMjI2MTUpLG49ZSgyNTM5MSksdD1lKDc1NzczKSxpPWUoNjA0NSkscz1lKDQ0MjAxKSxhPWUoNjE4KSx1PWUoNTQ4NDkpLGM9ZSgxMjAxMykuSXRlcmF0b3JQcm90b3R5cGUsaD1lKDI3ODA3KSxkPWUoNzIxMjUpLG09cygidG9TdHJpbmdUYWciKSxDPSJJdGVyYXRvckhlbHBlciIsZz0iV3JhcEZvclZhbGlkSXRlcmF0b3IiLHc9YS5zZXQsRT1mdW5jdGlvbihUKXt2YXIgUz1hLmdldHRlckZvcihUP2c6Qyk7cmV0dXJuIGkobihjKSx7bmV4dDpmdW5jdGlvbigpe3ZhciBJPVModGhpcyk7aWYoVClyZXR1cm4gSS5uZXh0SGFuZGxlcigpO3RyeXt2YXIgUj1JLmRvbmU/dm9pZCAwOkkubmV4dEhhbmRsZXIoKTtyZXR1cm4gaChSLEkuZG9uZSl9Y2F0Y2goeil7dGhyb3cgSS5kb25lPSEwLHp9fSxyZXR1cm46ZnVuY3Rpb24oKXt2YXIgTD1TKHRoaXMpLEk9TC5pdGVyYXRvcjtpZihMLmRvbmU9ITAsVCl7dmFyIFI9dShJLCJyZXR1cm4iKTtyZXR1cm4gUj9yKFIsSSk6aCh2b2lkIDAsITApfWlmKEwuaW5uZXIpdHJ5e2QoTC5pbm5lci5pdGVyYXRvciwibm9ybWFsIil9Y2F0Y2goeil7cmV0dXJuIGQoSSwidGhyb3ciLHopfXJldHVybiBkKEksIm5vcm1hbCIpLGgodm9pZCAwLCEwKX19KX0seD1FKCEwKSxPPUUoITEpO3QoTyxtLCJJdGVyYXRvciBIZWxwZXIiKSx5LmV4cG9ydHM9ZnVuY3Rpb24oVCxTKXt2YXIgTD1mdW5jdGlvbihSLHope3o/KHouaXRlcmF0b3I9Ui5pdGVyYXRvcix6Lm5leHQ9Ui5uZXh0KTp6PVIsei50eXBlPVM/ZzpDLHoubmV4dEhhbmRsZXI9VCx6LmNvdW50ZXI9MCx6LmRvbmU9ITEsdyh0aGlzLHopfTtyZXR1cm4gTC5wcm90b3R5cGU9Uz94Ok8sTH19LDkxOTM0OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDIyNjE1KSx0PWUoNTM5MzEpLGk9ZSg0MTIzNikscz1lKDY5OTg1KSxhPWUoMzA5NzQpLHU9ZSg2MTg2OCksYz1lKDQ5Mzg1KSxoPWUoNTU5OTcpLGQ9ZSg3NTc3MyksbT1lKDExODgwKSxDPWUoNDQyMDEpLGc9ZSg5NDc4KSx3PWUoMTIwMTMpLEU9aS5QUk9QRVIseD1pLkNPTkZJR1VSQUJMRSxPPXcuSXRlcmF0b3JQcm90b3R5cGUsVD13LkJVR0dZX1NBRkFSSV9JVEVSQVRPUlMsUz1DKCJpdGVyYXRvciIpLEw9ImtleXMiLEk9InZhbHVlcyIsUj0iZW50cmllcyIsej1mdW5jdGlvbigpe3JldHVybiB0aGlzfTt5LmV4cG9ydHM9ZnVuY3Rpb24oRyxZLGVlLEosbWUsdGUsbGUpe2EoZWUsWSxKKTt2YXIgY2U9ZnVuY3Rpb24ob2Upe2lmKG9lPT09bWUmJlopcmV0dXJuIFo7aWYoIVQmJm9lJiZvZSBpbiBEKXJldHVybiBEW29lXTtzd2l0Y2gob2Upe2Nhc2UgTDpyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGVlKHRoaXMsb2UpfTtjYXNlIEk6cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBlZSh0aGlzLG9lKX07Y2FzZSBSOnJldHVybiBmdW5jdGlvbigpe3JldHVybiBuZXcgZWUodGhpcyxvZSl9fXJldHVybiBmdW5jdGlvbigpe3JldHVybiBuZXcgZWUodGhpcyl9fSxXPVkrIiBJdGVyYXRvciIsaj0hMSxEPUcucHJvdG90eXBlLFY9RFtTXXx8RFsiQEBpdGVyYXRvciJdfHxtZSYmRFttZV0sWj0hVCYmVnx8Y2UobWUpLFA9WT09PSJBcnJheSImJkQuZW50cmllc3x8VixLLHNlLG5lO2lmKFAmJihLPXUoUC5jYWxsKG5ldyBHKSksSyE9PU9iamVjdC5wcm90b3R5cGUmJksubmV4dCYmKCF0JiZ1KEspIT09TyYmKGM/YyhLLE8pOnMoS1tTXSl8fG0oSyxTLHopKSxoKEssVywhMCwhMCksdCYmKGdbV109eikpKSxFJiZtZT09PUkmJlYmJlYubmFtZSE9PUkmJighdCYmeD9kKEQsIm5hbWUiLEkpOihqPSEwLFo9ZnVuY3Rpb24oKXtyZXR1cm4gbihWLHRoaXMpfSkpLG1lKWlmKHNlPXt2YWx1ZXM6Y2UoSSksa2V5czp0ZT9aOmNlKEwpLGVudHJpZXM6Y2UoUil9LGxlKWZvcihuZSBpbiBzZSkoVHx8anx8IShuZSBpbiBEKSkmJm0oRCxuZSxzZVtuZV0pO2Vsc2Ugcih7dGFyZ2V0OlkscHJvdG86ITAsZm9yY2VkOlR8fGp9LHNlKTtyZXR1cm4oIXR8fGxlKSYmRFtTXSE9PVomJm0oRCxTLFose25hbWU6bWV9KSxnW1ldPVosc2V9fSw0NzA4MjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoMjI2MTUpLG49ZSg4ODk4MyksdD1mdW5jdGlvbihpLHMpe3JldHVybltzLGldfTt5LmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm4gcihuLHRoaXMsdCl9fSw4ODk4MzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoMjI2MTUpLG49ZSgxMDUwOSksdD1lKDg1MDI3KSxpPWUoMjIzMDIpLHM9ZSg2NTQxOSksYT1lKDcxMjI4KSx1PXMoZnVuY3Rpb24oKXt2YXIgYz10aGlzLml0ZXJhdG9yLGg9dChyKHRoaXMubmV4dCxjKSksZD10aGlzLmRvbmU9ISFoLmRvbmU7aWYoIWQpcmV0dXJuIGEoYyx0aGlzLm1hcHBlcixbaC52YWx1ZSx0aGlzLmNvdW50ZXIrK10sITApfSk7eS5leHBvcnRzPWZ1bmN0aW9uKGgpe3JldHVybiB0KHRoaXMpLG4oaCksbmV3IHUoaSh0aGlzKSx7bWFwcGVyOmh9KX19LDEyMDEzOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSgzNjg5KSxuPWUoNjk5ODUpLHQ9ZSg0ODk5OSksaT1lKDI1MzkxKSxzPWUoNjE4NjgpLGE9ZSgxMTg4MCksdT1lKDQ0MjAxKSxjPWUoNTM5MzEpLGg9dSgiaXRlcmF0b3IiKSxkPSExLG0sQyxnO1tdLmtleXMmJihnPVtdLmtleXMoKSwibmV4dCJpbiBnPyhDPXMocyhnKSksQyE9PU9iamVjdC5wcm90b3R5cGUmJihtPUMpKTpkPSEwKTt2YXIgdz0hdChtKXx8cihmdW5jdGlvbigpe3ZhciBFPXt9O3JldHVybiBtW2hdLmNhbGwoRSkhPT1FfSk7dz9tPXt9OmMmJihtPWkobSkpLG4obVtoXSl8fGEobSxoLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSx5LmV4cG9ydHM9e0l0ZXJhdG9yUHJvdG90eXBlOm0sQlVHR1lfU0FGQVJJX0lURVJBVE9SUzpkfX0sOTQ3ODpmdW5jdGlvbih5KXsidXNlIHN0cmljdCI7eS5leHBvcnRzPXt9fSw2MzEwOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg0MzEyNik7eS5leHBvcnRzPWZ1bmN0aW9uKG4pe3JldHVybiByKG4ubGVuZ3RoKX19LDk4NzAyOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg2ODg0NCksbj1lKDM2ODkpLHQ9ZSg2OTk4NSksaT1lKDM2ODEyKSxzPWUoNjc2OTcpLGE9ZSg0MTIzNikuQ09ORklHVVJBQkxFLHU9ZSg2NzM4KSxjPWUoNjE4KSxoPWMuZW5mb3JjZSxkPWMuZ2V0LG09U3RyaW5nLEM9T2JqZWN0LmRlZmluZVByb3BlcnR5LGc9cigiIi5zbGljZSksdz1yKCIiLnJlcGxhY2UpLEU9cihbXS5qb2luKSx4PXMmJiFuKGZ1bmN0aW9uKCl7cmV0dXJuIEMoZnVuY3Rpb24oKXt9LCJsZW5ndGgiLHt2YWx1ZTo4fSkubGVuZ3RoIT09OH0pLE89U3RyaW5nKFN0cmluZykuc3BsaXQoIlN0cmluZyIpLFQ9eS5leHBvcnRzPWZ1bmN0aW9uKFMsTCxJKXtnKG0oTCksMCw3KT09PSJTeW1ib2woIiYmKEw9IlsiK3cobShMKSwvXlN5bWJvbFwoKFteKV0qKVwpLywiJDEiKSsiXSIpLEkmJkkuZ2V0dGVyJiYoTD0iZ2V0ICIrTCksSSYmSS5zZXR0ZXImJihMPSJzZXQgIitMKSwoIWkoUywibmFtZSIpfHxhJiZTLm5hbWUhPT1MKSYmKHM/QyhTLCJuYW1lIix7dmFsdWU6TCxjb25maWd1cmFibGU6ITB9KTpTLm5hbWU9TCkseCYmSSYmaShJLCJhcml0eSIpJiZTLmxlbmd0aCE9PUkuYXJpdHkmJkMoUywibGVuZ3RoIix7dmFsdWU6SS5hcml0eX0pO3RyeXtJJiZpKEksImNvbnN0cnVjdG9yIikmJkkuY29uc3RydWN0b3I/cyYmQyhTLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pOlMucHJvdG90eXBlJiYoUy5wcm90b3R5cGU9dm9pZCAwKX1jYXRjaCh6KXt9dmFyIFI9aChTKTtyZXR1cm4gaShSLCJzb3VyY2UiKXx8KFIuc291cmNlPUUoTyx0eXBlb2YgTD09InN0cmluZyI/TDoiIikpLFN9O0Z1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZz1UKGZ1bmN0aW9uKCl7cmV0dXJuIHQodGhpcykmJmQodGhpcykuc291cmNlfHx1KHRoaXMpfSwidG9TdHJpbmciKX0sODM5MTQ6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDY4ODQ0KSxuPU1hcC5wcm90b3R5cGU7eS5leHBvcnRzPXtNYXAsc2V0OnIobi5zZXQpLGdldDpyKG4uZ2V0KSxoYXM6cihuLmhhcykscmVtb3ZlOnIobi5kZWxldGUpLHByb3RvOm59fSwxMDYxMzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNjg4NDQpLG49ZSg5NjcwNCksdD1lKDgzOTE0KSxpPXQuTWFwLHM9dC5wcm90byxhPXIocy5mb3JFYWNoKSx1PXIocy5lbnRyaWVzKSxjPXUobmV3IGkpLm5leHQ7eS5leHBvcnRzPWZ1bmN0aW9uKGgsZCxtKXtyZXR1cm4gbT9uKHtpdGVyYXRvcjp1KGgpLG5leHQ6Y30sZnVuY3Rpb24oQyl7cmV0dXJuIGQoQ1sxXSxDWzBdKX0pOmEoaCxkKX19LDQxNDMyOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSgyMjYxNSksbj1lKDEwNTA5KSx0PWUoNjk5ODUpLGk9ZSg4NTAyNykscz1UeXBlRXJyb3I7eS5leHBvcnRzPWZ1bmN0aW9uKHUsYyl7dmFyIGg9aSh0aGlzKSxkPW4oaC5nZXQpLG09bihoLmhhcyksQz1uKGguc2V0KSxnPWFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwLHc7aWYoIXQoYykmJiF0KGcpKXRocm93IG5ldyBzKCJBdCBsZWFzdCBvbmUgY2FsbGJhY2sgcmVxdWlyZWQiKTtyZXR1cm4gcihtLGgsdSk/KHc9cihkLGgsdSksdChjKSYmKHc9Yyh3KSxyKEMsaCx1LHcpKSk6dChnKSYmKHc9ZygpLHIoQyxoLHUsdykpLHd9fSw3NjA0MzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNDAxMzQpLG49LjAwMDk3NjU2MjUsdD02NTUwNCxpPTYxMDM1MTU2MjVlLTE0O3kuZXhwb3J0cz1NYXRoLmYxNnJvdW5kfHxmdW5jdGlvbihhKXtyZXR1cm4gcihhLG4sdCxpKX19LDQwMTM0OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg1NTY4MCksbj1NYXRoLmFicyx0PTIyMjA0NDYwNDkyNTAzMTNlLTMxLGk9MS90LHM9ZnVuY3Rpb24oYSl7cmV0dXJuIGEraS1pfTt5LmV4cG9ydHM9ZnVuY3Rpb24oYSx1LGMsaCl7dmFyIGQ9K2EsbT1uKGQpLEM9cihkKTtpZihtPGgpcmV0dXJuIEMqcyhtL2gvdSkqaCp1O3ZhciBnPSgxK3UvdCkqbSx3PWctKGctbSk7cmV0dXJuIHc+Y3x8dyE9PXc/QyooMS8wKTpDKnd9fSwzNzc4ODpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNDAxMzQpLG49MTE5MjA5Mjg5NTUwNzgxMjVlLTIzLHQ9MzQwMjgyMzQ2NjM4NTI4ODZlMjIsaT0xMTc1NDk0MzUwODIyMjg3NWUtNTQ7eS5leHBvcnRzPU1hdGguZnJvdW5kfHxmdW5jdGlvbihhKXtyZXR1cm4gcihhLG4sdCxpKX19LDg0NDYzOmZ1bmN0aW9uKHkpeyJ1c2Ugc3RyaWN0Ijt5LmV4cG9ydHM9TWF0aC5zY2FsZXx8ZnVuY3Rpb24oZSxyLG4sdCxpKXt2YXIgcz0rZSxhPStyLHU9K24sYz0rdCxoPStpO3JldHVybiBzIT09c3x8YSE9PWF8fHUhPT11fHxjIT09Y3x8aCE9PWg/TmFOOnM9PT0xLzB8fHM9PT0tMS8wP3M6KHMtYSkqKGgtYykvKHUtYSkrY319LDU1NjgwOmZ1bmN0aW9uKHkpeyJ1c2Ugc3RyaWN0Ijt5LmV4cG9ydHM9TWF0aC5zaWdufHxmdW5jdGlvbihlKXt2YXIgcj0rZTtyZXR1cm4gcj09PTB8fHIhPT1yP3I6cjwwPy0xOjF9fSw1ODgyODpmdW5jdGlvbih5KXsidXNlIHN0cmljdCI7dmFyIHA9TWF0aC5jZWlsLGU9TWF0aC5mbG9vcjt5LmV4cG9ydHM9TWF0aC50cnVuY3x8ZnVuY3Rpb24obil7dmFyIHQ9K247cmV0dXJuKHQ+MD9lOnApKHQpfX0sMjI4MTg6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDM2ODkpO3kuZXhwb3J0cz0hcihmdW5jdGlvbigpe3ZhciBuPSI5MDA3MTk5MjU0NzQwOTkzIix0PUpTT04ucmF3SlNPTihuKTtyZXR1cm4hSlNPTi5pc1Jhd0pTT04odCl8fEpTT04uc3RyaW5naWZ5KHQpIT09bn0pfSw0ODc0MjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoMTA1MDkpLG49VHlwZUVycm9yLHQ9ZnVuY3Rpb24oaSl7dmFyIHMsYTt0aGlzLnByb21pc2U9bmV3IGkoZnVuY3Rpb24odSxjKXtpZihzIT09dm9pZCAwfHxhIT09dm9pZCAwKXRocm93IG5ldyBuKCJCYWQgUHJvbWlzZSBjb25zdHJ1Y3RvciIpO3M9dSxhPWN9KSx0aGlzLnJlc29sdmU9cihzKSx0aGlzLnJlamVjdD1yKGEpfTt5LmV4cG9ydHMuZj1mdW5jdGlvbihpKXtyZXR1cm4gbmV3IHQoaSl9fSwxMzg0MTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoMzQzMjcpO3kuZXhwb3J0cz1mdW5jdGlvbihuLHQpe3JldHVybiBuPT09dm9pZCAwP2FyZ3VtZW50cy5sZW5ndGg8Mj8iIjp0OnIobil9fSw0NjU0OmZ1bmN0aW9uKHkpeyJ1c2Ugc3RyaWN0Ijt2YXIgcD1SYW5nZUVycm9yO3kuZXhwb3J0cz1mdW5jdGlvbihlKXtpZihlPT09ZSlyZXR1cm4gZTt0aHJvdyBuZXcgcCgiTmFOIGlzIG5vdCBhbGxvd2VkIil9fSw3MDA0NjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoMTkwMzcpLG49ci5pc0Zpbml0ZTt5LmV4cG9ydHM9TnVtYmVyLmlzRmluaXRlfHxmdW5jdGlvbihpKXtyZXR1cm4gdHlwZW9mIGk9PSJudW1iZXIiJiZuKGkpfX0sOTg1NTQ6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDYxOCksbj1lKDMwOTc0KSx0PWUoMjc4MDcpLGk9ZSg5ODEpLHM9ZSg0ODk5OSksYT1lKDYyMTQ4KSx1PWUoNjc2OTcpLGM9IkluY29ycmVjdCBJdGVyYXRvci5yYW5nZSBhcmd1bWVudHMiLGg9Ik51bWVyaWNSYW5nZUl0ZXJhdG9yIixkPXIuc2V0LG09ci5nZXR0ZXJGb3IoaCksQz1SYW5nZUVycm9yLGc9VHlwZUVycm9yLHc9bihmdW5jdGlvbihPLFQsUyxMLEksUil7aWYodHlwZW9mIE8hPUx8fFQhPT0xLzAmJlQhPT0tMS8wJiZ0eXBlb2YgVCE9TCl0aHJvdyBuZXcgZyhjKTtpZihPPT09MS8wfHxPPT09LTEvMCl0aHJvdyBuZXcgQyhjKTt2YXIgej1UPk8sRz0hMSxZO2lmKFM9PT12b2lkIDApWT12b2lkIDA7ZWxzZSBpZihzKFMpKVk9Uy5zdGVwLEc9ISFTLmluY2x1c2l2ZTtlbHNlIGlmKHR5cGVvZiBTPT1MKVk9UztlbHNlIHRocm93IG5ldyBnKGMpO2lmKGkoWSkmJihZPXo/UjotUiksdHlwZW9mIFkhPUwpdGhyb3cgbmV3IGcoYyk7aWYoWT09PTEvMHx8WT09PS0xLzB8fFk9PT1JJiZPIT09VCl0aHJvdyBuZXcgQyhjKTt2YXIgZWU9TyE9PU98fFQhPT1UfHxZIT09WXx8VD5PIT1ZPkk7ZCh0aGlzLHt0eXBlOmgsc3RhcnQ6TyxlbmQ6VCxzdGVwOlksaW5jbHVzaXZlOkcsaGl0c0VuZDplZSxjdXJyZW50Q291bnQ6SSx6ZXJvOkl9KSx1fHwodGhpcy5zdGFydD1PLHRoaXMuZW5kPVQsdGhpcy5zdGVwPVksdGhpcy5pbmNsdXNpdmU9Ryl9LGgsZnVuY3Rpb24oKXt2YXIgTz1tKHRoaXMpO2lmKE8uaGl0c0VuZClyZXR1cm4gdCh2b2lkIDAsITApO3ZhciBUPU8uc3RhcnQsUz1PLmVuZCxMPU8uc3RlcCxJPVQrTCpPLmN1cnJlbnRDb3VudCsrO0k9PT1TJiYoTy5oaXRzRW5kPSEwKTt2YXIgUj1PLmluY2x1c2l2ZSx6O3JldHVybiBTPlQ/ej1SP0k+UzpJPj1TOno9Uj9TPkk6Uz49SSx6PyhPLmhpdHNFbmQ9ITAsdCh2b2lkIDAsITApKTp0KEksITEpfSksRT1mdW5jdGlvbih4KXthKHcucHJvdG90eXBlLHgse2dldDpmdW5jdGlvbigpe3JldHVybiBtKHRoaXMpW3hdfSxzZXQ6ZnVuY3Rpb24oKXt9LGNvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiExfSl9O3UmJihFKCJzdGFydCIpLEUoImVuZCIpLEUoImluY2x1c2l2ZSIpLEUoInN0ZXAiKSkseS5leHBvcnRzPXd9LDI1MzkxOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg4NTAyNyksbj1lKDk4OTIwKSx0PWUoNzI3MzkpLGk9ZSg1NzI0OCkscz1lKDI2ODgpLGE9ZSgzNjQyMCksdT1lKDI3MTMpLGM9Ij4iLGg9IjwiLGQ9InByb3RvdHlwZSIsbT0ic2NyaXB0IixDPXUoIklFX1BST1RPIiksZz1mdW5jdGlvbigpe30sdz1mdW5jdGlvbihTKXtyZXR1cm4gaCttK2MrUytoKyIvIittK2N9LEU9ZnVuY3Rpb24oUyl7Uy53cml0ZSh3KCIiKSksUy5jbG9zZSgpO3ZhciBMPVMucGFyZW50V2luZG93Lk9iamVjdDtyZXR1cm4gUz1udWxsLEx9LHg9ZnVuY3Rpb24oKXt2YXIgUz1hKCJpZnJhbWUiKSxMPSJqYXZhIittKyI6IixJO3JldHVybiBTLnN0eWxlLmRpc3BsYXk9Im5vbmUiLHMuYXBwZW5kQ2hpbGQoUyksUy5zcmM9U3RyaW5nKEwpLEk9Uy5jb250ZW50V2luZG93LmRvY3VtZW50LEkub3BlbigpLEkud3JpdGUodygiZG9jdW1lbnQuRj1PYmplY3QiKSksSS5jbG9zZSgpLEkuRn0sTyxUPWZ1bmN0aW9uKCl7dHJ5e089bmV3IEFjdGl2ZVhPYmplY3QoImh0bWxmaWxlIil9Y2F0Y2goTCl7fVQ9dHlwZW9mIGRvY3VtZW50IT0idW5kZWZpbmVkIj9kb2N1bWVudC5kb21haW4mJk8/RShPKTp4KCk6RShPKTtmb3IodmFyIFM9dC5sZW5ndGg7Uy0tOylkZWxldGUgVFtkXVt0W1NdXTtyZXR1cm4gVCgpfTtpW0NdPSEwLHkuZXhwb3J0cz1PYmplY3QuY3JlYXRlfHxmdW5jdGlvbihMLEkpe3ZhciBSO3JldHVybiBMIT09bnVsbD8oZ1tkXT1yKEwpLFI9bmV3IGcsZ1tkXT1udWxsLFJbQ109TCk6Uj1UKCksST09PXZvaWQgMD9SOm4uZihSLEkpfX0sOTg5MjA6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDY3Njk3KSxuPWUoMTU2NDgpLHQ9ZSg3MjU2MCksaT1lKDg1MDI3KSxzPWUoNjUyOTApLGE9ZSgyMDMwMCk7cC5mPXImJiFuP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzOmZ1bmN0aW9uKGMsaCl7aShjKTtmb3IodmFyIGQ9cyhoKSxtPWEoaCksQz1tLmxlbmd0aCxnPTAsdztDPmc7KXQuZihjLHc9bVtnKytdLGRbd10pO3JldHVybiBjfX0sNzI1NjA6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDY3Njk3KSxuPWUoNjg1MDYpLHQ9ZSgxNTY0OCksaT1lKDg1MDI3KSxzPWUoMTgzNjApLGE9VHlwZUVycm9yLHU9T2JqZWN0LmRlZmluZVByb3BlcnR5LGM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixoPSJlbnVtZXJhYmxlIixkPSJjb25maWd1cmFibGUiLG09IndyaXRhYmxlIjtwLmY9cj90P2Z1bmN0aW9uKGcsdyxFKXtpZihpKGcpLHc9cyh3KSxpKEUpLHR5cGVvZiBnPT0iZnVuY3Rpb24iJiZ3PT09InByb3RvdHlwZSImJiJ2YWx1ZSJpbiBFJiZtIGluIEUmJiFFW21dKXt2YXIgeD1jKGcsdyk7eCYmeFttXSYmKGdbd109RS52YWx1ZSxFPXtjb25maWd1cmFibGU6ZCBpbiBFP0VbZF06eFtkXSxlbnVtZXJhYmxlOmggaW4gRT9FW2hdOnhbaF0sd3JpdGFibGU6ITF9KX1yZXR1cm4gdShnLHcsRSl9OnU6ZnVuY3Rpb24oZyx3LEUpe2lmKGkoZyksdz1zKHcpLGkoRSksbil0cnl7cmV0dXJuIHUoZyx3LEUpfWNhdGNoKHgpe31pZigiZ2V0ImluIEV8fCJzZXQiaW4gRSl0aHJvdyBuZXcgYSgiQWNjZXNzb3JzIG5vdCBzdXBwb3J0ZWQiKTtyZXR1cm4idmFsdWUiaW4gRSYmKGdbd109RS52YWx1ZSksZ319LDgyNDc0OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg2NzY5Nyksbj1lKDIyNjE1KSx0PWUoNDk1NTYpLGk9ZSg3NTY4NCkscz1lKDY1MjkwKSxhPWUoMTgzNjApLHU9ZSgzNjgxMiksYz1lKDY4NTA2KSxoPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7cC5mPXI/aDpmdW5jdGlvbihtLEMpe2lmKG09cyhtKSxDPWEoQyksYyl0cnl7cmV0dXJuIGgobSxDKX1jYXRjaChnKXt9aWYodShtLEMpKXJldHVybiBpKCFuKHQuZixtLEMpLG1bQ10pfX0sMjYwNjI6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDY2NDgpLG49ZSg2NTI5MCksdD1lKDcyNzQxKS5mLGk9ZSg5MDE1KSxzPXR5cGVvZiB3aW5kb3c9PSJvYmplY3QiJiZ3aW5kb3cmJk9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzP09iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHdpbmRvdyk6W10sYT1mdW5jdGlvbih1KXt0cnl7cmV0dXJuIHQodSl9Y2F0Y2goYyl7cmV0dXJuIGkocyl9fTt5LmV4cG9ydHMuZj1mdW5jdGlvbihjKXtyZXR1cm4gcyYmcihjKT09PSJXaW5kb3ciP2EoYyk6dChuKGMpKX19LDcyNzQxOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg1NDk0OCksbj1lKDcyNzM5KSx0PW4uY29uY2F0KCJsZW5ndGgiLCJwcm90b3R5cGUiKTtwLmY9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXN8fGZ1bmN0aW9uKHMpe3JldHVybiByKHMsdCl9fSw3NTE4OmZ1bmN0aW9uKHkscCl7InVzZSBzdHJpY3QiO3AuZj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzfSw2MTg2ODpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoMzY4MTIpLG49ZSg2OTk4NSksdD1lKDkwNjkwKSxpPWUoMjcxMykscz1lKDgxNzQ4KSxhPWkoIklFX1BST1RPIiksdT1PYmplY3QsYz11LnByb3RvdHlwZTt5LmV4cG9ydHM9cz91LmdldFByb3RvdHlwZU9mOmZ1bmN0aW9uKGgpe3ZhciBkPXQoaCk7aWYocihkLGEpKXJldHVybiBkW2FdO3ZhciBtPWQuY29uc3RydWN0b3I7cmV0dXJuIG4obSkmJmQgaW5zdGFuY2VvZiBtP20ucHJvdG90eXBlOmQgaW5zdGFuY2VvZiB1P2M6bnVsbH19LDI3MDQ5OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSgzNjg5KSxuPWUoNDg5OTkpLHQ9ZSg2NjQ4KSxpPWUoMTE2NTUpLHM9T2JqZWN0LmlzRXh0ZW5zaWJsZSxhPXIoZnVuY3Rpb24oKXtzKDEpfSk7eS5leHBvcnRzPWF8fGk/ZnVuY3Rpb24oYyl7cmV0dXJuIW4oYyl8fGkmJnQoYyk9PT0iQXJyYXlCdWZmZXIiPyExOnM/cyhjKTohMH06c30sMjM2MjI6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDY4ODQ0KTt5LmV4cG9ydHM9cih7fS5pc1Byb3RvdHlwZU9mKX0sNDIzNTE6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDYxOCksbj1lKDMwOTc0KSx0PWUoMjc4MDcpLGk9ZSgzNjgxMikscz1lKDIwMzAwKSxhPWUoOTA2OTApLHU9Ik9iamVjdCBJdGVyYXRvciIsYz1yLnNldCxoPXIuZ2V0dGVyRm9yKHUpO3kuZXhwb3J0cz1uKGZ1bmN0aW9uKG0sQyl7dmFyIGc9YShtKTtjKHRoaXMse3R5cGU6dSxtb2RlOkMsb2JqZWN0Omcsa2V5czpzKGcpLGluZGV4OjB9KX0sIk9iamVjdCIsZnVuY3Rpb24oKXtmb3IodmFyIG09aCh0aGlzKSxDPW0ua2V5czs7KXtpZihDPT09bnVsbHx8bS5pbmRleD49Qy5sZW5ndGgpcmV0dXJuIG0ub2JqZWN0PW0ua2V5cz1udWxsLHQodm9pZCAwLCEwKTt2YXIgZz1DW20uaW5kZXgrK10sdz1tLm9iamVjdDtpZihpKHcsZykpe3N3aXRjaChtLm1vZGUpe2Nhc2Uia2V5cyI6cmV0dXJuIHQoZywhMSk7Y2FzZSJ2YWx1ZXMiOnJldHVybiB0KHdbZ10sITEpfXJldHVybiB0KFtnLHdbZ11dLCExKX19fSl9LDU0OTQ4OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg2ODg0NCksbj1lKDM2ODEyKSx0PWUoNjUyOTApLGk9ZSg4NDMyOCkuaW5kZXhPZixzPWUoNTcyNDgpLGE9cihbXS5wdXNoKTt5LmV4cG9ydHM9ZnVuY3Rpb24odSxjKXt2YXIgaD10KHUpLGQ9MCxtPVtdLEM7Zm9yKEMgaW4gaCkhbihzLEMpJiZuKGgsQykmJmEobSxDKTtmb3IoO2MubGVuZ3RoPmQ7KW4oaCxDPWNbZCsrXSkmJih+aShtLEMpfHxhKG0sQykpO3JldHVybiBtfX0sMjAzMDA6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDU0OTQ4KSxuPWUoNzI3MzkpO3kuZXhwb3J0cz1PYmplY3Qua2V5c3x8ZnVuY3Rpb24oaSl7cmV0dXJuIHIoaSxuKX19LDQ5NTU2OmZ1bmN0aW9uKHkscCl7InVzZSBzdHJpY3QiO3ZhciBlPXt9LnByb3BlcnR5SXNFbnVtZXJhYmxlLHI9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixuPXImJiFlLmNhbGwoezE6Mn0sMSk7cC5mPW4/ZnVuY3Rpb24oaSl7dmFyIHM9cih0aGlzLGkpO3JldHVybiEhcyYmcy5lbnVtZXJhYmxlfTplfSw0OTM4NTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNTI3NDMpLG49ZSg4NTAyNyksdD1lKDIzNTUwKTt5LmV4cG9ydHM9T2JqZWN0LnNldFByb3RvdHlwZU9mfHwoIl9fcHJvdG9fXyJpbnt9P2Z1bmN0aW9uKCl7dmFyIGk9ITEscz17fSxhO3RyeXthPXIoT2JqZWN0LnByb3RvdHlwZSwiX19wcm90b19fIiwic2V0IiksYShzLFtdKSxpPXMgaW5zdGFuY2VvZiBBcnJheX1jYXRjaCh1KXt9cmV0dXJuIGZ1bmN0aW9uKGMsaCl7cmV0dXJuIG4oYyksdChoKSxpP2EoYyxoKTpjLl9fcHJvdG9fXz1oLGN9fSgpOnZvaWQgMCl9LDM1ODk5OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSgyMjYxNSksbj1lKDY5OTg1KSx0PWUoNDg5OTkpLGk9VHlwZUVycm9yO3kuZXhwb3J0cz1mdW5jdGlvbihzLGEpe3ZhciB1LGM7aWYoYT09PSJzdHJpbmciJiZuKHU9cy50b1N0cmluZykmJiF0KGM9cih1LHMpKXx8bih1PXMudmFsdWVPZikmJiF0KGM9cih1LHMpKXx8YSE9PSJzdHJpbmciJiZuKHU9cy50b1N0cmluZykmJiF0KGM9cih1LHMpKSlyZXR1cm4gYzt0aHJvdyBuZXcgaSgiQ2FuJ3QgY29udmVydCBvYmplY3QgdG8gcHJpbWl0aXZlIHZhbHVlIil9fSwxOTE1MjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzYwNTgpLG49ZSg2ODg0NCksdD1lKDcyNzQxKSxpPWUoNzUxOCkscz1lKDg1MDI3KSxhPW4oW10uY29uY2F0KTt5LmV4cG9ydHM9cigiUmVmbGVjdCIsIm93bktleXMiKXx8ZnVuY3Rpb24oYyl7dmFyIGg9dC5mKHMoYykpLGQ9aS5mO3JldHVybiBkP2EoaCxkKGMpKTpofX0sNDY2NzU6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDY4ODQ0KSxuPWUoMzY4MTIpLHQ9U3ludGF4RXJyb3IsaT1wYXJzZUludCxzPVN0cmluZy5mcm9tQ2hhckNvZGUsYT1yKCIiLmNoYXJBdCksdT1yKCIiLnNsaWNlKSxjPXIoLy4vLmV4ZWMpLGg9eydcXCInOiciJywiXFxcXCI6IlxcIiwiXFwvIjoiLyIsIlxcYiI6IlxiIiwiXFxmIjoiXGYiLCJcXG4iOmAKK2AsIlxcciI6IlxyIiwiXFx0IjoiCSJ9LGQ9L15bXGRhLWZdezR9JC9pLG09L15bXHUwMDAwLVx1MDAxRl0kLzt5LmV4cG9ydHM9ZnVuY3Rpb24oQyxnKXtmb3IodmFyIHc9ITAsRT0iIjtnPEMubGVuZ3RoOyl7dmFyIHg9YShDLGcpO2lmKHg9PT0iXFwiKXt2YXIgTz11KEMsZyxnKzIpO2lmKG4oaCxPKSlFKz1oW09dLGcrPTI7ZWxzZSBpZihPPT09IlxcdSIpe2crPTI7dmFyIFQ9dShDLGcsZys0KTtpZighYyhkLFQpKXRocm93IG5ldyB0KCJCYWQgVW5pY29kZSBlc2NhcGUgYXQ6ICIrZyk7RSs9cyhpKFQsMTYpKSxnKz00fWVsc2UgdGhyb3cgbmV3IHQoJ1Vua25vd24gZXNjYXBlIHNlcXVlbmNlOiAiJytPKyciJyl9ZWxzZSBpZih4PT09JyInKXt3PSExLGcrKzticmVha31lbHNle2lmKGMobSx4KSl0aHJvdyBuZXcgdCgiQmFkIGNvbnRyb2wgY2hhcmFjdGVyIGluIHN0cmluZyBsaXRlcmFsIGF0OiAiK2cpO0UrPXgsZysrfX1pZih3KXRocm93IG5ldyB0KCJVbnRlcm1pbmF0ZWQgc3RyaW5nIGF0OiAiK2cpO3JldHVybnt2YWx1ZTpFLGVuZDpnfX19LDUwNDk2OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSgxOTAzNyk7eS5leHBvcnRzPXJ9LDkzMDI6ZnVuY3Rpb24oeSl7InVzZSBzdHJpY3QiO3kuZXhwb3J0cz1mdW5jdGlvbihwKXt0cnl7cmV0dXJue2Vycm9yOiExLHZhbHVlOnAoKX19Y2F0Y2goZSl7cmV0dXJue2Vycm9yOiEwLHZhbHVlOmV9fX19LDg3MDczOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSgxOTAzNyksbj1lKDE3OTE5KSx0PWUoNjk5ODUpLGk9ZSgzNTI2Nikscz1lKDY3MzgpLGE9ZSg0NDIwMSksdT1lKDcyNTMyKSxjPWUoODg1NjMpLGg9ZSg1MzkzMSksZD1lKDM2MTUpLG09biYmbi5wcm90b3R5cGUsQz1hKCJzcGVjaWVzIiksZz0hMSx3PXQoci5Qcm9taXNlUmVqZWN0aW9uRXZlbnQpLEU9aSgiUHJvbWlzZSIsZnVuY3Rpb24oKXt2YXIgeD1zKG4pLE89eCE9PVN0cmluZyhuKTtpZighTyYmZD09PTY2fHxoJiYhKG0uY2F0Y2gmJm0uZmluYWxseSkpcmV0dXJuITA7aWYoIWR8fGQ8NTF8fCEvbmF0aXZlIGNvZGUvLnRlc3QoeCkpe3ZhciBUPW5ldyBuKGZ1bmN0aW9uKEkpe0koMSl9KSxTPWZ1bmN0aW9uKEkpe0koZnVuY3Rpb24oKXt9LGZ1bmN0aW9uKCl7fSl9LEw9VC5jb25zdHJ1Y3Rvcj17fTtpZihMW0NdPVMsZz1ULnRoZW4oZnVuY3Rpb24oKXt9KWluc3RhbmNlb2YgUywhZylyZXR1cm4hMH1yZXR1cm4hTyYmKHV8fGMpJiYhd30pO3kuZXhwb3J0cz17Q09OU1RSVUNUT1I6RSxSRUpFQ1RJT05fRVZFTlQ6dyxTVUJDTEFTU0lORzpnfX0sMTc5MTk6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDE5MDM3KTt5LmV4cG9ydHM9ci5Qcm9taXNlfSw1NjI6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDE3OTE5KSxuPWUoODY0MzEpLHQ9ZSg4NzA3MykuQ09OU1RSVUNUT1I7eS5leHBvcnRzPXR8fCFuKGZ1bmN0aW9uKGkpe3IuYWxsKGkpLnRoZW4odm9pZCAwLGZ1bmN0aW9uKCl7fSl9KX0sMzgwNTU6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDcyNTYwKS5mO3kuZXhwb3J0cz1mdW5jdGlvbihuLHQsaSl7aSBpbiBufHxyKG4saSx7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0W2ldfSxzZXQ6ZnVuY3Rpb24ocyl7dFtpXT1zfX0pfX0sMzM2NjY6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlKDU2NjQ2KSxlKDUxMDkwKTt2YXIgcj1lKDc2MDU4KSxuPWUoNjg4NDQpLHQ9ZSg4MzQzMCksaT1yKCJNYXAiKSxzPXIoIldlYWtNYXAiKSxhPW4oW10ucHVzaCksdT10KCJtZXRhZGF0YSIpLGM9dS5zdG9yZXx8KHUuc3RvcmU9bmV3IHMpLGg9ZnVuY3Rpb24oRSx4LE8pe3ZhciBUPWMuZ2V0KEUpO2lmKCFUKXtpZighTylyZXR1cm47Yy5zZXQoRSxUPW5ldyBpKX12YXIgUz1ULmdldCh4KTtpZighUyl7aWYoIU8pcmV0dXJuO1Quc2V0KHgsUz1uZXcgaSl9cmV0dXJuIFN9LGQ9ZnVuY3Rpb24oRSx4LE8pe3ZhciBUPWgoeCxPLCExKTtyZXR1cm4gVD09PXZvaWQgMD8hMTpULmhhcyhFKX0sbT1mdW5jdGlvbihFLHgsTyl7dmFyIFQ9aCh4LE8sITEpO3JldHVybiBUPT09dm9pZCAwP3ZvaWQgMDpULmdldChFKX0sQz1mdW5jdGlvbihFLHgsTyxUKXtoKE8sVCwhMCkuc2V0KEUseCl9LGc9ZnVuY3Rpb24oRSx4KXt2YXIgTz1oKEUseCwhMSksVD1bXTtyZXR1cm4gTyYmTy5mb3JFYWNoKGZ1bmN0aW9uKFMsTCl7YShULEwpfSksVH0sdz1mdW5jdGlvbihFKXtyZXR1cm4gRT09PXZvaWQgMHx8dHlwZW9mIEU9PSJzeW1ib2wiP0U6U3RyaW5nKEUpfTt5LmV4cG9ydHM9e3N0b3JlOmMsZ2V0TWFwOmgsaGFzOmQsZ2V0Om0sc2V0OkMsa2V5czpnLHRvS2V5Ond9fSw2OTYzMzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoODUwMjcpO3kuZXhwb3J0cz1mdW5jdGlvbigpe3ZhciBuPXIodGhpcyksdD0iIjtyZXR1cm4gbi5oYXNJbmRpY2VzJiYodCs9ImQiKSxuLmdsb2JhbCYmKHQrPSJnIiksbi5pZ25vcmVDYXNlJiYodCs9ImkiKSxuLm11bHRpbGluZSYmKHQrPSJtIiksbi5kb3RBbGwmJih0Kz0icyIpLG4udW5pY29kZSYmKHQrPSJ1Iiksbi51bmljb2RlU2V0cyYmKHQrPSJ2Iiksbi5zdGlja3kmJih0Kz0ieSIpLHR9fSw2MzQ3NzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoMjI2MTUpLG49ZSgzNjgxMiksdD1lKDIzNjIyKSxpPWUoNjk2MzMpLHM9UmVnRXhwLnByb3RvdHlwZTt5LmV4cG9ydHM9ZnVuY3Rpb24oYSl7dmFyIHU9YS5mbGFncztyZXR1cm4gdT09PXZvaWQgMCYmISgiZmxhZ3MiaW4gcykmJiFuKGEsImZsYWdzIikmJnQocyxhKT9yKGksYSk6dX19LDc0Njg0OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg5ODEpLG49VHlwZUVycm9yO3kuZXhwb3J0cz1mdW5jdGlvbih0KXtpZihyKHQpKXRocm93IG5ldyBuKCJDYW4ndCBjYWxsIG1ldGhvZCBvbiAiK3QpO3JldHVybiB0fX0sNjg2MDA6ZnVuY3Rpb24oeSl7InVzZSBzdHJpY3QiO3kuZXhwb3J0cz1mdW5jdGlvbihwLGUpe3JldHVybiBwPT09ZXx8cCE9PXAmJmUhPT1lfX0sODU1MjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoMTkwMzcpLG49ZSg2MTczNSksdD1lKDY5OTg1KSxpPWUoODMxMjcpLHM9ZSgzMDA3MSksYT1lKDk2MDA0KSx1PWUoMjE1MDApLGM9ci5GdW5jdGlvbixoPS9NU0lFIC5cLi8udGVzdChzKXx8aSYmZnVuY3Rpb24oKXt2YXIgZD1yLkJ1bi52ZXJzaW9uLnNwbGl0KCIuIik7cmV0dXJuIGQubGVuZ3RoPDN8fGRbMF09PT0iMCImJihkWzFdPDN8fGRbMV09PT0iMyImJmRbMl09PT0iMCIpfSgpO3kuZXhwb3J0cz1mdW5jdGlvbihkLG0pe3ZhciBDPW0/MjoxO3JldHVybiBoP2Z1bmN0aW9uKGcsdyl7dmFyIEU9dShhcmd1bWVudHMubGVuZ3RoLDEpPkMseD10KGcpP2c6YyhnKSxPPUU/YShhcmd1bWVudHMsQyk6W10sVD1FP2Z1bmN0aW9uKCl7bih4LHRoaXMsTyl9Ong7cmV0dXJuIG0/ZChULHcpOmQoVCl9OmR9fSwzMDk3OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg2MTAzNCksbj1lKDQ4Nzc0KSx0PXIuU2V0LGk9ci5hZGQ7eS5leHBvcnRzPWZ1bmN0aW9uKHMpe3ZhciBhPW5ldyB0O3JldHVybiBuKHMsZnVuY3Rpb24odSl7aShhLHUpfSksYX19LDI3NzQ4OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSgxMDAyOSksbj1lKDYxMDM0KSx0PWUoMzA5NyksaT1lKDE3MDI2KSxzPWUoNDEwNzQpLGE9ZSg0ODc3NCksdT1lKDk2NzA0KSxjPW4uaGFzLGg9bi5yZW1vdmU7eS5leHBvcnRzPWZ1bmN0aW9uKG0pe3ZhciBDPXIodGhpcyksZz1zKG0pLHc9dChDKTtyZXR1cm4gaShDKTw9Zy5zaXplP2EoQyxmdW5jdGlvbihFKXtnLmluY2x1ZGVzKEUpJiZoKHcsRSl9KTp1KGcuZ2V0SXRlcmF0b3IoKSxmdW5jdGlvbihFKXtjKEMsRSkmJmgodyxFKX0pLHd9fSw2MTAzNDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNjg4NDQpLG49U2V0LnByb3RvdHlwZTt5LmV4cG9ydHM9e1NldCxhZGQ6cihuLmFkZCksaGFzOnIobi5oYXMpLHJlbW92ZTpyKG4uZGVsZXRlKSxwcm90bzpufX0sNzI5NDg6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDEwMDI5KSxuPWUoNjEwMzQpLHQ9ZSgxNzAyNiksaT1lKDQxMDc0KSxzPWUoNDg3NzQpLGE9ZSg5NjcwNCksdT1uLlNldCxjPW4uYWRkLGg9bi5oYXM7eS5leHBvcnRzPWZ1bmN0aW9uKG0pe3ZhciBDPXIodGhpcyksZz1pKG0pLHc9bmV3IHU7cmV0dXJuIHQoQyk+Zy5zaXplP2EoZy5nZXRJdGVyYXRvcigpLGZ1bmN0aW9uKEUpe2goQyxFKSYmYyh3LEUpfSk6cyhDLGZ1bmN0aW9uKEUpe2cuaW5jbHVkZXMoRSkmJmModyxFKX0pLHd9fSw5Nzc5NTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoMTAwMjkpLG49ZSg2MTAzNCkuaGFzLHQ9ZSgxNzAyNiksaT1lKDQxMDc0KSxzPWUoNDg3NzQpLGE9ZSg5NjcwNCksdT1lKDcyMTI1KTt5LmV4cG9ydHM9ZnVuY3Rpb24oaCl7dmFyIGQ9cih0aGlzKSxtPWkoaCk7aWYodChkKTw9bS5zaXplKXJldHVybiBzKGQsZnVuY3Rpb24oZyl7aWYobS5pbmNsdWRlcyhnKSlyZXR1cm4hMX0sITApIT09ITE7dmFyIEM9bS5nZXRJdGVyYXRvcigpO3JldHVybiBhKEMsZnVuY3Rpb24oZyl7aWYobihkLGcpKXJldHVybiB1KEMsIm5vcm1hbCIsITEpfSkhPT0hMX19LDI2OTUxOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSgxMDAyOSksbj1lKDE3MDI2KSx0PWUoNDg3NzQpLGk9ZSg0MTA3NCk7eS5leHBvcnRzPWZ1bmN0aW9uKGEpe3ZhciB1PXIodGhpcyksYz1pKGEpO3JldHVybiBuKHUpPmMuc2l6ZT8hMTp0KHUsZnVuY3Rpb24oaCl7aWYoIWMuaW5jbHVkZXMoaCkpcmV0dXJuITF9LCEwKSE9PSExfX0sMzg5NDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoMTAwMjkpLG49ZSg2MTAzNCkuaGFzLHQ9ZSgxNzAyNiksaT1lKDQxMDc0KSxzPWUoOTY3MDQpLGE9ZSg3MjEyNSk7eS5leHBvcnRzPWZ1bmN0aW9uKGMpe3ZhciBoPXIodGhpcyksZD1pKGMpO2lmKHQoaCk8ZC5zaXplKXJldHVybiExO3ZhciBtPWQuZ2V0SXRlcmF0b3IoKTtyZXR1cm4gcyhtLGZ1bmN0aW9uKEMpe2lmKCFuKGgsQykpcmV0dXJuIGEobSwibm9ybWFsIiwhMSl9KSE9PSExfX0sNDg3NzQ6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDY4ODQ0KSxuPWUoOTY3MDQpLHQ9ZSg2MTAzNCksaT10LlNldCxzPXQucHJvdG8sYT1yKHMuZm9yRWFjaCksdT1yKHMua2V5cyksYz11KG5ldyBpKS5uZXh0O3kuZXhwb3J0cz1mdW5jdGlvbihoLGQsbSl7cmV0dXJuIG0/bih7aXRlcmF0b3I6dShoKSxuZXh0OmN9LGQpOmEoaCxkKX19LDUzMjM0OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3NjA1OCksbj1mdW5jdGlvbih0KXtyZXR1cm57c2l6ZTp0LGhhczpmdW5jdGlvbigpe3JldHVybiExfSxrZXlzOmZ1bmN0aW9uKCl7cmV0dXJue25leHQ6ZnVuY3Rpb24oKXtyZXR1cm57ZG9uZTohMH19fX19fTt5LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGk9cigiU2V0Iik7dHJ5e25ldyBpKClbdF0obigwKSk7dHJ5e3JldHVybiBuZXcgaSgpW3RdKG4oLTEpKSwhMX1jYXRjaChzKXtyZXR1cm4hMH19Y2F0Y2gocyl7cmV0dXJuITF9fX0sMTcwMjY6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDUyNzQzKSxuPWUoNjEwMzQpO3kuZXhwb3J0cz1yKG4ucHJvdG8sInNpemUiLCJnZXQiKXx8ZnVuY3Rpb24odCl7cmV0dXJuIHQuc2l6ZX19LDE0MjQxOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3NjA1OCksbj1lKDYyMTQ4KSx0PWUoNDQyMDEpLGk9ZSg2NzY5Nykscz10KCJzcGVjaWVzIik7eS5leHBvcnRzPWZ1bmN0aW9uKGEpe3ZhciB1PXIoYSk7aSYmdSYmIXVbc10mJm4odSxzLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9fSl9fSw2MjI4OTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoMTAwMjkpLG49ZSg2MTAzNCksdD1lKDMwOTcpLGk9ZSg0MTA3NCkscz1lKDk2NzA0KSxhPW4uYWRkLHU9bi5oYXMsYz1uLnJlbW92ZTt5LmV4cG9ydHM9ZnVuY3Rpb24oZCl7dmFyIG09cih0aGlzKSxDPWkoZCkuZ2V0SXRlcmF0b3IoKSxnPXQobSk7cmV0dXJuIHMoQyxmdW5jdGlvbih3KXt1KG0sdyk/YyhnLHcpOmEoZyx3KX0pLGd9fSw1NTk5NzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzI1NjApLmYsbj1lKDM2ODEyKSx0PWUoNDQyMDEpLGk9dCgidG9TdHJpbmdUYWciKTt5LmV4cG9ydHM9ZnVuY3Rpb24ocyxhLHUpe3MmJiF1JiYocz1zLnByb3RvdHlwZSkscyYmIW4ocyxpKSYmcihzLGkse2NvbmZpZ3VyYWJsZTohMCx2YWx1ZTphfSl9fSw3NTY3NDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoMTAwMjkpLG49ZSg2MTAzNCkuYWRkLHQ9ZSgzMDk3KSxpPWUoNDEwNzQpLHM9ZSg5NjcwNCk7eS5leHBvcnRzPWZ1bmN0aW9uKHUpe3ZhciBjPXIodGhpcyksaD1pKHUpLmdldEl0ZXJhdG9yKCksZD10KGMpO3JldHVybiBzKGgsZnVuY3Rpb24obSl7bihkLG0pfSksZH19LDI3MTM6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDgzNDMwKSxuPWUoMTQ2MzApLHQ9cigia2V5cyIpO3kuZXhwb3J0cz1mdW5jdGlvbihpKXtyZXR1cm4gdFtpXXx8KHRbaV09bihpKSl9fSw4NDA5MTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoMTkwMzcpLG49ZSg5NTAxNCksdD0iX19jb3JlLWpzX3NoYXJlZF9fIixpPXJbdF18fG4odCx7fSk7eS5leHBvcnRzPWl9LDgzNDMwOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg1MzkzMSksbj1lKDg0MDkxKTsoeS5leHBvcnRzPWZ1bmN0aW9uKHQsaSl7cmV0dXJuIG5bdF18fChuW3RdPWkhPT12b2lkIDA/aTp7fSl9KSgidmVyc2lvbnMiLFtdKS5wdXNoKHt2ZXJzaW9uOiIzLjM0LjAiLG1vZGU6cj8icHVyZSI6Imdsb2JhbCIsY29weXJpZ2h0OiJceEE5IDIwMTQtMjAyMyBEZW5pcyBQdXNoa2FyZXYgKHpsb2lyb2NrLnJ1KSIsbGljZW5zZToiaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvYmxvYi92My4zNC4wL0xJQ0VOU0UiLHNvdXJjZToiaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMifSl9LDc2MzczOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg4NTAyNyksbj1lKDUyNjU1KSx0PWUoOTgxKSxpPWUoNDQyMDEpLHM9aSgic3BlY2llcyIpO3kuZXhwb3J0cz1mdW5jdGlvbihhLHUpe3ZhciBjPXIoYSkuY29uc3RydWN0b3IsaDtyZXR1cm4gYz09PXZvaWQgMHx8dChoPXIoYylbc10pP3U6bihoKX19LDgxOTU6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDY4ODQ0KSxuPWUoNjUyOTApLHQ9ZSgzNDMyNyksaT1lKDYzMTApLHM9VHlwZUVycm9yLGE9cihbXS5wdXNoKSx1PXIoW10uam9pbik7eS5leHBvcnRzPWZ1bmN0aW9uKGgpe3ZhciBkPW4oaCksbT1pKGQpO2lmKCFtKXJldHVybiIiO2Zvcih2YXIgQz1hcmd1bWVudHMubGVuZ3RoLGc9W10sdz0wOzspe3ZhciBFPWRbdysrXTtpZihFPT09dm9pZCAwKXRocm93IG5ldyBzKCJJbmNvcnJlY3QgdGVtcGxhdGUiKTtpZihhKGcsdChFKSksdz09PW0pcmV0dXJuIHUoZywiIik7dzxDJiZhKGcsdChhcmd1bWVudHNbd10pKX19fSwxMDczMDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNjg4NDQpLG49ZSg2ODcwMCksdD1lKDM0MzI3KSxpPWUoNzQ2ODQpLHM9cigiIi5jaGFyQXQpLGE9cigiIi5jaGFyQ29kZUF0KSx1PXIoIiIuc2xpY2UpLGM9ZnVuY3Rpb24oaCl7cmV0dXJuIGZ1bmN0aW9uKGQsbSl7dmFyIEM9dChpKGQpKSxnPW4obSksdz1DLmxlbmd0aCxFLHg7cmV0dXJuIGc8MHx8Zz49dz9oPyIiOnZvaWQgMDooRT1hKEMsZyksRTw1NTI5Nnx8RT41NjMxOXx8ZysxPT09d3x8KHg9YShDLGcrMSkpPDU2MzIwfHx4PjU3MzQzP2g/cyhDLGcpOkU6aD91KEMsZyxnKzIpOihFLTU1Mjk2PDwxMCkrKHgtNTYzMjApKzY1NTM2KX19O3kuZXhwb3J0cz17Y29kZUF0OmMoITEpLGNoYXJBdDpjKCEwKX19LDk4OTg1OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3NjA1OCksbj1lKDY4ODQ0KSx0PVN0cmluZy5mcm9tQ2hhckNvZGUsaT1yKCJTdHJpbmciLCJmcm9tQ29kZVBvaW50Iikscz1uKCIiLmNoYXJBdCksYT1uKCIiLmNoYXJDb2RlQXQpLHU9bigiIi5pbmRleE9mKSxjPW4oIiIuc2xpY2UpLGg9NDgsZD01NyxtPTk3LEM9MTAyLGc9NjUsdz03MCxFPWZ1bmN0aW9uKFQsUyl7dmFyIEw9YShULFMpO3JldHVybiBMPj1oJiZMPD1kfSx4PWZ1bmN0aW9uKFQsUyxMKXtpZihMPj1ULmxlbmd0aClyZXR1cm4tMTtmb3IodmFyIEk9MDtTPEw7UysrKXt2YXIgUj1PKGEoVCxTKSk7aWYoUj09PS0xKXJldHVybi0xO0k9SSoxNitSfXJldHVybiBJfSxPPWZ1bmN0aW9uKFQpe3JldHVybiBUPj1oJiZUPD1kP1QtaDpUPj1tJiZUPD1DP1QtbSsxMDpUPj1nJiZUPD13P1QtZysxMDotMX07eS5leHBvcnRzPWZ1bmN0aW9uKFQpe2Zvcih2YXIgUz0iIixMPTAsST0wLFI7KEk9dShULCJcXCIsSSkpPi0xOyl7aWYoUys9YyhULEwsSSksKytJPT09VC5sZW5ndGgpcmV0dXJuO3ZhciB6PXMoVCxJKyspO3N3aXRjaCh6KXtjYXNlImIiOlMrPSJcYiI7YnJlYWs7Y2FzZSJ0IjpTKz0iCSI7YnJlYWs7Y2FzZSJuIjpTKz1gCitgO2JyZWFrO2Nhc2UidiI6Uys9Ilx2IjticmVhaztjYXNlImYiOlMrPSJcZiI7YnJlYWs7Y2FzZSJyIjpTKz0iXHIiO2JyZWFrO2Nhc2UiXHIiOkk8VC5sZW5ndGgmJnMoVCxJKT09PWAKK2AmJisrSTtjYXNlYAorYDpjYXNlIlx1MjAyOCI6Y2FzZSJcdTIwMjkiOmJyZWFrO2Nhc2UiMCI6aWYoRShULEkpKXJldHVybjtTKz0iXDAiO2JyZWFrO2Nhc2UieCI6aWYoUj14KFQsSSxJKzIpLFI9PT0tMSlyZXR1cm47SSs9MixTKz10KFIpO2JyZWFrO2Nhc2UidSI6aWYoSTxULmxlbmd0aCYmcyhULEkpPT09InsiKXt2YXIgRz11KFQsIn0iLCsrSSk7aWYoRz09PS0xKXJldHVybjtSPXgoVCxJLEcpLEk9RysxfWVsc2UgUj14KFQsSSxJKzQpLEkrPTQ7aWYoUj09PS0xfHxSPjExMTQxMTEpcmV0dXJuO1MrPWkoUik7YnJlYWs7ZGVmYXVsdDppZihFKHosMCkpcmV0dXJuO1MrPXp9TD1JfXJldHVybiBTK2MoVCxMKX19LDYzNTE0OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSgxOTAzNyksbj1lKDM2ODkpLHQ9ZSgzNjE1KSxpPWUoNzI1MzIpLHM9ZSg4ODU2MyksYT1lKDUwODA2KSx1PXIuc3RydWN0dXJlZENsb25lO3kuZXhwb3J0cz0hIXUmJiFuKGZ1bmN0aW9uKCl7aWYocyYmdD45Mnx8YSYmdD45NHx8aSYmdD45NylyZXR1cm4hMTt2YXIgYz1uZXcgQXJyYXlCdWZmZXIoOCksaD11KGMse3RyYW5zZmVyOltjXX0pO3JldHVybiBjLmJ5dGVMZW5ndGghPT0wfHxoLmJ5dGVMZW5ndGghPT04fSl9LDUwMTQ2OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSgzNjE1KSxuPWUoMzY4OSksdD1lKDE5MDM3KSxpPXQuU3RyaW5nO3kuZXhwb3J0cz0hIU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJiFuKGZ1bmN0aW9uKCl7dmFyIHM9U3ltYm9sKCJzeW1ib2wgZGV0ZWN0aW9uIik7cmV0dXJuIWkocyl8fCEoT2JqZWN0KHMpaW5zdGFuY2VvZiBTeW1ib2wpfHwhU3ltYm9sLnNoYW0mJnImJnI8NDF9KX0sMTg5OTI6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc2MDU4KSxuPWUoNjg4NDQpLHQ9cigiU3ltYm9sIiksaT10LmtleUZvcixzPW4odC5wcm90b3R5cGUudmFsdWVPZik7eS5leHBvcnRzPXQuaXNSZWdpc3RlcmVkU3ltYm9sfHxmdW5jdGlvbih1KXt0cnl7cmV0dXJuIGkocyh1KSkhPT12b2lkIDB9Y2F0Y2goYyl7cmV0dXJuITF9fX0sODk1NzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2Zvcih2YXIgcj1lKDgzNDMwKSxuPWUoNzYwNTgpLHQ9ZSg2ODg0NCksaT1lKDMwNzM0KSxzPWUoNDQyMDEpLGE9bigiU3ltYm9sIiksdT1hLmlzV2VsbEtub3duU3ltYm9sLGM9bigiT2JqZWN0IiwiZ2V0T3duUHJvcGVydHlOYW1lcyIpLGg9dChhLnByb3RvdHlwZS52YWx1ZU9mKSxkPXIoIndrcyIpLG09MCxDPWMoYSksZz1DLmxlbmd0aDttPGc7bSsrKXRyeXt2YXIgdz1DW21dO2koYVt3XSkmJnModyl9Y2F0Y2goRSl7fXkuZXhwb3J0cz1mdW5jdGlvbih4KXtpZih1JiZ1KHgpKXJldHVybiEwO3RyeXtmb3IodmFyIE89aCh4KSxUPTAsUz1jKGQpLEw9Uy5sZW5ndGg7VDxMO1QrKylpZihkW1NbVF1dPT1PKXJldHVybiEwfWNhdGNoKEkpe31yZXR1cm4hMX19LDk5ODg2OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSgxOTAzNyksbj1lKDYxNzM1KSx0PWUoNTQwNzEpLGk9ZSg2OTk4NSkscz1lKDM2ODEyKSxhPWUoMzY4OSksdT1lKDI2ODgpLGM9ZSg5NjAwNCksaD1lKDM2NDIwKSxkPWUoMjE1MDApLG09ZSg0NzY0KSxDPWUoNTA4MDYpLGc9ci5zZXRJbW1lZGlhdGUsdz1yLmNsZWFySW1tZWRpYXRlLEU9ci5wcm9jZXNzLHg9ci5EaXNwYXRjaCxPPXIuRnVuY3Rpb24sVD1yLk1lc3NhZ2VDaGFubmVsLFM9ci5TdHJpbmcsTD0wLEk9e30sUj0ib25yZWFkeXN0YXRlY2hhbmdlIix6LEcsWSxlZTthKGZ1bmN0aW9uKCl7ej1yLmxvY2F0aW9ufSk7dmFyIEo9ZnVuY3Rpb24oY2Upe2lmKHMoSSxjZSkpe3ZhciBXPUlbY2VdO2RlbGV0ZSBJW2NlXSxXKCl9fSxtZT1mdW5jdGlvbihjZSl7cmV0dXJuIGZ1bmN0aW9uKCl7SihjZSl9fSx0ZT1mdW5jdGlvbihjZSl7SihjZS5kYXRhKX0sbGU9ZnVuY3Rpb24oY2Upe3IucG9zdE1lc3NhZ2UoUyhjZSksei5wcm90b2NvbCsiLy8iK3ouaG9zdCl9OyghZ3x8IXcpJiYoZz1mdW5jdGlvbihXKXtkKGFyZ3VtZW50cy5sZW5ndGgsMSk7dmFyIGo9aShXKT9XOk8oVyksRD1jKGFyZ3VtZW50cywxKTtyZXR1cm4gSVsrK0xdPWZ1bmN0aW9uKCl7bihqLHZvaWQgMCxEKX0sRyhMKSxMfSx3PWZ1bmN0aW9uKFcpe2RlbGV0ZSBJW1ddfSxDP0c9ZnVuY3Rpb24oY2Upe0UubmV4dFRpY2sobWUoY2UpKX06eCYmeC5ub3c/Rz1mdW5jdGlvbihjZSl7eC5ub3cobWUoY2UpKX06VCYmIW0/KFk9bmV3IFQsZWU9WS5wb3J0MixZLnBvcnQxLm9ubWVzc2FnZT10ZSxHPXQoZWUucG9zdE1lc3NhZ2UsZWUpKTpyLmFkZEV2ZW50TGlzdGVuZXImJmkoci5wb3N0TWVzc2FnZSkmJiFyLmltcG9ydFNjcmlwdHMmJnomJnoucHJvdG9jb2whPT0iZmlsZToiJiYhYShsZSk/KEc9bGUsci5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIix0ZSwhMSkpOlIgaW4gaCgic2NyaXB0Iik/Rz1mdW5jdGlvbihjZSl7dS5hcHBlbmRDaGlsZChoKCJzY3JpcHQiKSlbUl09ZnVuY3Rpb24oKXt1LnJlbW92ZUNoaWxkKHRoaXMpLEooY2UpfX06Rz1mdW5jdGlvbihjZSl7c2V0VGltZW91dChtZShjZSksMCl9KSx5LmV4cG9ydHM9e3NldDpnLGNsZWFyOnd9fSwyNzU3ODpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNjg3MDApLG49TWF0aC5tYXgsdD1NYXRoLm1pbjt5LmV4cG9ydHM9ZnVuY3Rpb24oaSxzKXt2YXIgYT1yKGkpO3JldHVybiBhPDA/bihhK3MsMCk6dChhLHMpfX0sNzE1MzA6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDg4NzMyKSxuPVR5cGVFcnJvcjt5LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGk9cih0LCJudW1iZXIiKTtpZih0eXBlb2YgaT09Im51bWJlciIpdGhyb3cgbmV3IG4oIkNhbid0IGNvbnZlcnQgbnVtYmVyIHRvIGJpZ2ludCIpO3JldHVybiBCaWdJbnQoaSl9fSwxOTg0MjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNjg3MDApLG49ZSg0MzEyNiksdD1SYW5nZUVycm9yO3kuZXhwb3J0cz1mdW5jdGlvbihpKXtpZihpPT09dm9pZCAwKXJldHVybiAwO3ZhciBzPXIoaSksYT1uKHMpO2lmKHMhPT1hKXRocm93IG5ldyB0KCJXcm9uZyBsZW5ndGggb3IgaW5kZXgiKTtyZXR1cm4gYX19LDY1MjkwOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg5NDQxMyksbj1lKDc0Njg0KTt5LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIHIobih0KSl9fSw2ODcwMDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNTg4MjgpO3kuZXhwb3J0cz1mdW5jdGlvbihuKXt2YXIgdD0rbjtyZXR1cm4gdCE9PXR8fHQ9PT0wPzA6cih0KX19LDQzMTI2OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg2ODcwMCksbj1NYXRoLm1pbjt5LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIHQ+MD9uKHIodCksOTAwNzE5OTI1NDc0MDk5MSk6MH19LDkwNjkwOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3NDY4NCksbj1PYmplY3Q7eS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBuKHIodCkpfX0sODMyNTA6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDE1OTA0KSxuPVJhbmdlRXJyb3I7eS5leHBvcnRzPWZ1bmN0aW9uKHQsaSl7dmFyIHM9cih0KTtpZihzJWkpdGhyb3cgbmV3IG4oIldyb25nIG9mZnNldCIpO3JldHVybiBzfX0sMTU5MDQ6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDY4NzAwKSxuPVJhbmdlRXJyb3I7eS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBpPXIodCk7aWYoaTwwKXRocm93IG5ldyBuKCJUaGUgYXJndW1lbnQgY2FuJ3QgYmUgbGVzcyB0aGFuIDAiKTtyZXR1cm4gaX19LDg4NzMyOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSgyMjYxNSksbj1lKDQ4OTk5KSx0PWUoMzA3MzQpLGk9ZSg1NDg0OSkscz1lKDM1ODk5KSxhPWUoNDQyMDEpLHU9VHlwZUVycm9yLGM9YSgidG9QcmltaXRpdmUiKTt5LmV4cG9ydHM9ZnVuY3Rpb24oaCxkKXtpZighbihoKXx8dChoKSlyZXR1cm4gaDt2YXIgbT1pKGgsYyksQztpZihtKXtpZihkPT09dm9pZCAwJiYoZD0iZGVmYXVsdCIpLEM9cihtLGgsZCksIW4oQyl8fHQoQykpcmV0dXJuIEM7dGhyb3cgbmV3IHUoIkNhbid0IGNvbnZlcnQgb2JqZWN0IHRvIHByaW1pdGl2ZSB2YWx1ZSIpfXJldHVybiBkPT09dm9pZCAwJiYoZD0ibnVtYmVyIikscyhoLGQpfX0sMTgzNjA6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDg4NzMyKSxuPWUoMzA3MzQpO3kuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgaT1yKHQsInN0cmluZyIpO3JldHVybiBuKGkpP2k6aSsiIn19LDI5Mzk6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc2MDU4KSxuPWUoNjk5ODUpLHQ9ZSg5NjAzKSxpPWUoNDg5OTkpLHM9cigiU2V0IiksYT1mdW5jdGlvbih1KXtyZXR1cm4gaSh1KSYmdHlwZW9mIHUuc2l6ZT09Im51bWJlciImJm4odS5oYXMpJiZuKHUua2V5cyl9O3kuZXhwb3J0cz1mdW5jdGlvbih1KXtyZXR1cm4gYSh1KT91OnQodSk/bmV3IHModSk6dX19LDIzMDQzOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg0NDIwMSksbj1yKCJ0b1N0cmluZ1RhZyIpLHQ9e307dFtuXT0ieiIseS5leHBvcnRzPVN0cmluZyh0KT09PSJbb2JqZWN0IHpdIn0sMzQzMjc6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDUwOTI2KSxuPVN0cmluZzt5LmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYocih0KT09PSJTeW1ib2wiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjb252ZXJ0IGEgU3ltYm9sIHZhbHVlIHRvIGEgc3RyaW5nIik7cmV0dXJuIG4odCl9fSw4NzE5MTpmdW5jdGlvbih5KXsidXNlIHN0cmljdCI7dmFyIHA9TWF0aC5yb3VuZDt5LmV4cG9ydHM9ZnVuY3Rpb24oZSl7dmFyIHI9cChlKTtyZXR1cm4gcjwwPzA6cj4yNTU/MjU1OnImMjU1fX0sMjE5MDU6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDUwODA2KTt5LmV4cG9ydHM9ZnVuY3Rpb24obil7dHJ5e2lmKHIpcmV0dXJuIEZ1bmN0aW9uKCdyZXR1cm4gcmVxdWlyZSgiJytuKyciKScpKCl9Y2F0Y2godCl7fX19LDIzNjkxOmZ1bmN0aW9uKHkpeyJ1c2Ugc3RyaWN0Ijt2YXIgcD1TdHJpbmc7eS5leHBvcnRzPWZ1bmN0aW9uKGUpe3RyeXtyZXR1cm4gcChlKX1jYXRjaChyKXtyZXR1cm4iT2JqZWN0In19fSwyMDcxNjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNTk5NzYpLG49ZSg0NzMzOCk7eS5leHBvcnRzPWZ1bmN0aW9uKHQsaSl7cmV0dXJuIHIobih0KSxpKX19LDQ3MzM4OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg1NDg3Miksbj1lKDc2MzczKSx0PXIuYVR5cGVkQXJyYXlDb25zdHJ1Y3RvcixpPXIuZ2V0VHlwZWRBcnJheUNvbnN0cnVjdG9yO3kuZXhwb3J0cz1mdW5jdGlvbihzKXtyZXR1cm4gdChuKHMsaShzKSkpfX0sMTQ2MzA6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDY4ODQ0KSxuPTAsdD1NYXRoLnJhbmRvbSgpLGk9cigxIC50b1N0cmluZyk7eS5leHBvcnRzPWZ1bmN0aW9uKHMpe3JldHVybiJTeW1ib2woIisocz09PXZvaWQgMD8iIjpzKSsiKV8iK2koKytuK3QsMzYpfX0sNzY4Mzc6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDM2ODkpLG49ZSg0NDIwMSksdD1lKDY3Njk3KSxpPWUoNTM5MzEpLHM9bigiaXRlcmF0b3IiKTt5LmV4cG9ydHM9IXIoZnVuY3Rpb24oKXt2YXIgYT1uZXcgVVJMKCJiP2E9MSZiPTImYz0zIiwiaHR0cDovL2EiKSx1PWEuc2VhcmNoUGFyYW1zLGM9bmV3IFVSTFNlYXJjaFBhcmFtcygiYT0xJmE9MiZiPTMiKSxoPSIiO3JldHVybiBhLnBhdGhuYW1lPSJjJTIwZCIsdS5mb3JFYWNoKGZ1bmN0aW9uKGQsbSl7dS5kZWxldGUoImIiKSxoKz1tK2R9KSxjLmRlbGV0ZSgiYSIsMiksYy5kZWxldGUoImIiLHZvaWQgMCksaSYmKCFhLnRvSlNPTnx8IWMuaGFzKCJhIiwxKXx8Yy5oYXMoImEiLDIpfHwhYy5oYXMoImEiLHZvaWQgMCl8fGMuaGFzKCJiIikpfHwhdS5zaXplJiYoaXx8IXQpfHwhdS5zb3J0fHxhLmhyZWYhPT0iaHR0cDovL2EvYyUyMGQ/YT0xJmM9MyJ8fHUuZ2V0KCJjIikhPT0iMyJ8fFN0cmluZyhuZXcgVVJMU2VhcmNoUGFyYW1zKCI/YT0xIikpIT09ImE9MSJ8fCF1W3NdfHxuZXcgVVJMKCJodHRwczovL2FAYiIpLnVzZXJuYW1lIT09ImEifHxuZXcgVVJMU2VhcmNoUGFyYW1zKG5ldyBVUkxTZWFyY2hQYXJhbXMoImE9YiIpKS5nZXQoImEiKSE9PSJiInx8bmV3IFVSTCgiaHR0cDovL1x1MDQ0Mlx1MDQzNVx1MDQ0MVx1MDQ0MiIpLmhvc3QhPT0ieG4tLWUxYXliYyJ8fG5ldyBVUkwoImh0dHA6Ly9hI1x1MDQzMSIpLmhhc2ghPT0iIyVEMCVCMSJ8fGghPT0iYTFjMyJ8fG5ldyBVUkwoImh0dHA6Ly94Iix2b2lkIDApLmhvc3QhPT0ieCJ9KX0sMzk1MjU6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDUwMTQ2KTt5LmV4cG9ydHM9ciYmIVN5bWJvbC5zaGFtJiZ0eXBlb2YgU3ltYm9sLml0ZXJhdG9yPT0ic3ltYm9sIn0sMTU2NDg6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDY3Njk3KSxuPWUoMzY4OSk7eS5leHBvcnRzPXImJm4oZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGZ1bmN0aW9uKCl7fSwicHJvdG90eXBlIix7dmFsdWU6NDIsd3JpdGFibGU6ITF9KS5wcm90b3R5cGUhPT00Mn0pfSwyMTUwMDpmdW5jdGlvbih5KXsidXNlIHN0cmljdCI7dmFyIHA9VHlwZUVycm9yO3kuZXhwb3J0cz1mdW5jdGlvbihlLHIpe2lmKGU8cil0aHJvdyBuZXcgcCgiTm90IGVub3VnaCBhcmd1bWVudHMiKTtyZXR1cm4gZX19LDU5ODM0OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSgxOTAzNyksbj1lKDY5OTg1KSx0PXIuV2Vha01hcDt5LmV4cG9ydHM9bih0KSYmL25hdGl2ZSBjb2RlLy50ZXN0KFN0cmluZyh0KSl9LDE2ODAzOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg2ODg0NCksbj1XZWFrTWFwLnByb3RvdHlwZTt5LmV4cG9ydHM9e1dlYWtNYXAsc2V0OnIobi5zZXQpLGdldDpyKG4uZ2V0KSxoYXM6cihuLmhhcykscmVtb3ZlOnIobi5kZWxldGUpfX0sNzg2MTY6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDY4ODQ0KSxuPVdlYWtTZXQucHJvdG90eXBlO3kuZXhwb3J0cz17V2Vha1NldCxhZGQ6cihuLmFkZCksaGFzOnIobi5oYXMpLHJlbW92ZTpyKG4uZGVsZXRlKX19LDM1NDA1OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg1MDQ5Niksbj1lKDM2ODEyKSx0PWUoOTYxNDUpLGk9ZSg3MjU2MCkuZjt5LmV4cG9ydHM9ZnVuY3Rpb24ocyl7dmFyIGE9ci5TeW1ib2x8fChyLlN5bWJvbD17fSk7bihhLHMpfHxpKGEscyx7dmFsdWU6dC5mKHMpfSl9fSw5NjE0NTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNDQyMDEpO3AuZj1yfSw0NDIwMTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoMTkwMzcpLG49ZSg4MzQzMCksdD1lKDM2ODEyKSxpPWUoMTQ2MzApLHM9ZSg1MDE0NiksYT1lKDM5NTI1KSx1PXIuU3ltYm9sLGM9bigid2tzIiksaD1hP3UuZm9yfHx1OnUmJnUud2l0aG91dFNldHRlcnx8aTt5LmV4cG9ydHM9ZnVuY3Rpb24oZCl7cmV0dXJuIHQoYyxkKXx8KGNbZF09cyYmdCh1LGQpP3VbZF06aCgiU3ltYm9sLiIrZCkpLGNbZF19fSw4NjM1MDpmdW5jdGlvbih5KXsidXNlIHN0cmljdCI7eS5leHBvcnRzPWAJCitcdlxmXHIgXHhBMFx1MTY4MFx1MjAwMFx1MjAwMVx1MjAwMlx1MjAwM1x1MjAwNFx1MjAwNVx1MjAwNlx1MjAwN1x1MjAwOFx1MjAwOVx1MjAwQVx1MjAyRlx1MjA1Rlx1MzAwMFx1MjAyOFx1MjAyOVx1RkVGRmB9LDUxMDY0OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3NjA1OCksbj1lKDM2ODEyKSx0PWUoNzU3NzMpLGk9ZSgyMzYyMikscz1lKDQ5Mzg1KSxhPWUoODc1OCksdT1lKDM4MDU1KSxjPWUoMzM0NTcpLGg9ZSgxMzg0MSksZD1lKDYyNTcwKSxtPWUoNjU0MTEpLEM9ZSg2NzY5NyksZz1lKDUzOTMxKTt5LmV4cG9ydHM9ZnVuY3Rpb24odyxFLHgsTyl7dmFyIFQ9InN0YWNrVHJhY2VMaW1pdCIsUz1PPzI6MSxMPXcuc3BsaXQoIi4iKSxJPUxbTC5sZW5ndGgtMV0sUj1yLmFwcGx5KG51bGwsTCk7aWYoUil7dmFyIHo9Ui5wcm90b3R5cGU7aWYoIWcmJm4oeiwiY2F1c2UiKSYmZGVsZXRlIHouY2F1c2UsIXgpcmV0dXJuIFI7dmFyIEc9cigiRXJyb3IiKSxZPUUoZnVuY3Rpb24oZWUsSil7dmFyIG1lPWgoTz9KOmVlLHZvaWQgMCksdGU9Tz9uZXcgUihlZSk6bmV3IFI7cmV0dXJuIG1lIT09dm9pZCAwJiZ0KHRlLCJtZXNzYWdlIixtZSksbSh0ZSxZLHRlLnN0YWNrLDIpLHRoaXMmJmkoeix0aGlzKSYmYyh0ZSx0aGlzLFkpLGFyZ3VtZW50cy5sZW5ndGg+UyYmZCh0ZSxhcmd1bWVudHNbU10pLHRlfSk7aWYoWS5wcm90b3R5cGU9eixJIT09IkVycm9yIj9zP3MoWSxHKTphKFksRyx7bmFtZTohMH0pOkMmJlQgaW4gUiYmKHUoWSxSLFQpLHUoWSxSLCJwcmVwYXJlU3RhY2tUcmFjZSIpKSxhKFksUiksIWcpdHJ5e3oubmFtZSE9PUkmJnQoeiwibmFtZSIsSSksei5jb25zdHJ1Y3Rvcj1ZfWNhdGNoKGVlKXt9cmV0dXJuIFl9fX0sNTQ5Mjc6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc5OTg5KSxuPWUoNzYwNTgpLHQ9ZSg2MTczNSksaT1lKDM2ODkpLHM9ZSg1MTA2NCksYT0iQWdncmVnYXRlRXJyb3IiLHU9bihhKSxjPSFpKGZ1bmN0aW9uKCl7cmV0dXJuIHUoWzFdKS5lcnJvcnNbMF0hPT0xfSkmJmkoZnVuY3Rpb24oKXtyZXR1cm4gdShbMV0sYSx7Y2F1c2U6N30pLmNhdXNlIT09N30pO3Ioe2dsb2JhbDohMCxjb25zdHJ1Y3RvcjohMCxhcml0eToyLGZvcmNlZDpjfSx7QWdncmVnYXRlRXJyb3I6cyhhLGZ1bmN0aW9uKGgpe3JldHVybiBmdW5jdGlvbihtLEMpe3JldHVybiB0KGgsdGhpcyxhcmd1bWVudHMpfX0sYywhMCl9KX0sMzkzODI6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc5OTg5KSxuPWUoMjM2MjIpLHQ9ZSg2MTg2OCksaT1lKDQ5Mzg1KSxzPWUoODc1OCksYT1lKDI1MzkxKSx1PWUoNzU3NzMpLGM9ZSg3NTY4NCksaD1lKDYyNTcwKSxkPWUoNjU0MTEpLG09ZSgxODczNCksQz1lKDEzODQxKSxnPWUoNDQyMDEpLHc9ZygidG9TdHJpbmdUYWciKSxFPUVycm9yLHg9W10ucHVzaCxPPWZ1bmN0aW9uKEwsSSl7dmFyIFI9bihULHRoaXMpLHo7aT96PWkobmV3IEUsUj90KHRoaXMpOlQpOih6PVI/dGhpczphKFQpLHUoeix3LCJFcnJvciIpKSxJIT09dm9pZCAwJiZ1KHosIm1lc3NhZ2UiLEMoSSkpLGQoeixPLHouc3RhY2ssMSksYXJndW1lbnRzLmxlbmd0aD4yJiZoKHosYXJndW1lbnRzWzJdKTt2YXIgRz1bXTtyZXR1cm4gbShMLHgse3RoYXQ6R30pLHUoeiwiZXJyb3JzIixHKSx6fTtpP2koTyxFKTpzKE8sRSx7bmFtZTohMH0pO3ZhciBUPU8ucHJvdG90eXBlPWEoRS5wcm90b3R5cGUse2NvbnN0cnVjdG9yOmMoMSxPKSxtZXNzYWdlOmMoMSwiIiksbmFtZTpjKDEsIkFnZ3JlZ2F0ZUVycm9yIil9KTtyKHtnbG9iYWw6ITAsY29uc3RydWN0b3I6ITAsYXJpdHk6Mn0se0FnZ3JlZ2F0ZUVycm9yOk99KX0sOTU4Nzk6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlKDM5MzgyKX0sOTIxNzY6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc5OTg5KSxuPWUoOTA2OTApLHQ9ZSg2MzEwKSxpPWUoNjg3MDApLHM9ZSg4NzM3MCk7cih7dGFyZ2V0OiJBcnJheSIscHJvdG86ITB9LHthdDpmdW5jdGlvbih1KXt2YXIgYz1uKHRoaXMpLGg9dChjKSxkPWkodSksbT1kPj0wP2Q6aCtkO3JldHVybiBtPDB8fG0+PWg/dm9pZCAwOmNbbV19fSkscygiYXQiKX0sOTMzODM6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc5OTg5KSxuPWUoNjE5NjkpLmZpbmRMYXN0SW5kZXgsdD1lKDg3MzcwKTtyKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMH0se2ZpbmRMYXN0SW5kZXg6ZnVuY3Rpb24ocyl7cmV0dXJuIG4odGhpcyxzLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19KSx0KCJmaW5kTGFzdEluZGV4Iil9LDU5ODY3OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDYxOTY5KS5maW5kTGFzdCx0PWUoODczNzApO3Ioe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwfSx7ZmluZExhc3Q6ZnVuY3Rpb24ocyl7cmV0dXJuIG4odGhpcyxzLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19KSx0KCJmaW5kTGFzdCIpfSw3MDU2MDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSg5MDY5MCksdD1lKDYzMTApLGk9ZSg1NjQ5KSxzPWUoNTU1NjUpLGE9ZSgzNjg5KSx1PWEoZnVuY3Rpb24oKXtyZXR1cm5bXS5wdXNoLmNhbGwoe2xlbmd0aDo0Mjk0OTY3Mjk2fSwxKSE9PTQyOTQ5NjcyOTd9KSxjPWZ1bmN0aW9uKCl7dHJ5e09iamVjdC5kZWZpbmVQcm9wZXJ0eShbXSwibGVuZ3RoIix7d3JpdGFibGU6ITF9KS5wdXNoKCl9Y2F0Y2goZCl7cmV0dXJuIGQgaW5zdGFuY2VvZiBUeXBlRXJyb3J9fSxoPXV8fCFjKCk7cih7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsYXJpdHk6MSxmb3JjZWQ6aH0se3B1c2g6ZnVuY3Rpb24obSl7dmFyIEM9bih0aGlzKSxnPXQoQyksdz1hcmd1bWVudHMubGVuZ3RoO3MoZyt3KTtmb3IodmFyIEU9MDtFPHc7RSsrKUNbZ109YXJndW1lbnRzW0VdLGcrKztyZXR1cm4gaShDLGcpLGd9fSl9LDgxMzg2OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDg4ODIwKS5yaWdodCx0PWUoMTY4MzQpLGk9ZSgzNjE1KSxzPWUoNTA4MDYpLGE9IXMmJmk+NzkmJmk8ODMsdT1hfHwhdCgicmVkdWNlUmlnaHQiKTtyKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6dX0se3JlZHVjZVJpZ2h0OmZ1bmN0aW9uKGgpe3JldHVybiBuKHRoaXMsaCxhcmd1bWVudHMubGVuZ3RoLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19KX0sMjc4OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDg4ODIwKS5sZWZ0LHQ9ZSgxNjgzNCksaT1lKDM2MTUpLHM9ZSg1MDgwNiksYT0hcyYmaT43OSYmaTw4Myx1PWF8fCF0KCJyZWR1Y2UiKTtyKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6dX0se3JlZHVjZTpmdW5jdGlvbihoKXt2YXIgZD1hcmd1bWVudHMubGVuZ3RoO3JldHVybiBuKHRoaXMsaCxkLGQ+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19KX0sMjk4MzA6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc5OTg5KSxuPWUoMjYxNjYpLHQ9ZSg2NTI5MCksaT1lKDg3MzcwKSxzPUFycmF5O3Ioe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwfSx7dG9SZXZlcnNlZDpmdW5jdGlvbigpe3JldHVybiBuKHQodGhpcykscyl9fSksaSgidG9SZXZlcnNlZCIpfSwxMjg5NDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSg2ODg0NCksdD1lKDEwNTA5KSxpPWUoNjUyOTApLHM9ZSg1OTk3NiksYT1lKDg4Mjc3KSx1PWUoODczNzApLGM9QXJyYXksaD1uKGEoIkFycmF5Iiwic29ydCIpKTtyKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMH0se3RvU29ydGVkOmZ1bmN0aW9uKG0pe20hPT12b2lkIDAmJnQobSk7dmFyIEM9aSh0aGlzKSxnPXMoYyxDKTtyZXR1cm4gaChnLG0pfX0pLHUoInRvU29ydGVkIil9LDkzNTMwOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDg3MzcwKSx0PWUoNTU1NjUpLGk9ZSg2MzEwKSxzPWUoMjc1NzgpLGE9ZSg2NTI5MCksdT1lKDY4NzAwKSxjPUFycmF5LGg9TWF0aC5tYXgsZD1NYXRoLm1pbjtyKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMH0se3RvU3BsaWNlZDpmdW5jdGlvbihDLGcpe3ZhciB3PWEodGhpcyksRT1pKHcpLHg9cyhDLEUpLE89YXJndW1lbnRzLmxlbmd0aCxUPTAsUyxMLEksUjtmb3IoTz09PTA/Uz1MPTA6Tz09PTE/KFM9MCxMPUUteCk6KFM9Ty0yLEw9ZChoKHUoZyksMCksRS14KSksST10KEUrUy1MKSxSPWMoSSk7VDx4O1QrKylSW1RdPXdbVF07Zm9yKDtUPHgrUztUKyspUltUXT1hcmd1bWVudHNbVC14KzJdO2Zvcig7VDxJO1QrKylSW1RdPXdbVCtMLVNdO3JldHVybiBSfX0pLG4oInRvU3BsaWNlZCIpfSwyMTMxOTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSgxNjEzNCksdD1lKDY1MjkwKSxpPUFycmF5O3Ioe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwfSx7d2l0aDpmdW5jdGlvbihzLGEpe3JldHVybiBuKHQodGhpcyksaSxzLGEpfX0pfSwyMTA1NzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSgxOTAzNyksdD1lKDYxNzM1KSxpPWUoNTEwNjQpLHM9IldlYkFzc2VtYmx5IixhPW5bc10sdT1uZXcgRXJyb3IoImUiLHtjYXVzZTo3fSkuY2F1c2UhPT03LGM9ZnVuY3Rpb24oZCxtKXt2YXIgQz17fTtDW2RdPWkoZCxtLHUpLHIoe2dsb2JhbDohMCxjb25zdHJ1Y3RvcjohMCxhcml0eToxLGZvcmNlZDp1fSxDKX0saD1mdW5jdGlvbihkLG0pe2lmKGEmJmFbZF0pe3ZhciBDPXt9O0NbZF09aShzKyIuIitkLG0sdSkscih7dGFyZ2V0OnMsc3RhdDohMCxjb25zdHJ1Y3RvcjohMCxhcml0eToxLGZvcmNlZDp1fSxDKX19O2MoIkVycm9yIixmdW5jdGlvbihkKXtyZXR1cm4gZnVuY3Rpb24oQyl7cmV0dXJuIHQoZCx0aGlzLGFyZ3VtZW50cyl9fSksYygiRXZhbEVycm9yIixmdW5jdGlvbihkKXtyZXR1cm4gZnVuY3Rpb24oQyl7cmV0dXJuIHQoZCx0aGlzLGFyZ3VtZW50cyl9fSksYygiUmFuZ2VFcnJvciIsZnVuY3Rpb24oZCl7cmV0dXJuIGZ1bmN0aW9uKEMpe3JldHVybiB0KGQsdGhpcyxhcmd1bWVudHMpfX0pLGMoIlJlZmVyZW5jZUVycm9yIixmdW5jdGlvbihkKXtyZXR1cm4gZnVuY3Rpb24oQyl7cmV0dXJuIHQoZCx0aGlzLGFyZ3VtZW50cyl9fSksYygiU3ludGF4RXJyb3IiLGZ1bmN0aW9uKGQpe3JldHVybiBmdW5jdGlvbihDKXtyZXR1cm4gdChkLHRoaXMsYXJndW1lbnRzKX19KSxjKCJUeXBlRXJyb3IiLGZ1bmN0aW9uKGQpe3JldHVybiBmdW5jdGlvbihDKXtyZXR1cm4gdChkLHRoaXMsYXJndW1lbnRzKX19KSxjKCJVUklFcnJvciIsZnVuY3Rpb24oZCl7cmV0dXJuIGZ1bmN0aW9uKEMpe3JldHVybiB0KGQsdGhpcyxhcmd1bWVudHMpfX0pLGgoIkNvbXBpbGVFcnJvciIsZnVuY3Rpb24oZCl7cmV0dXJuIGZ1bmN0aW9uKEMpe3JldHVybiB0KGQsdGhpcyxhcmd1bWVudHMpfX0pLGgoIkxpbmtFcnJvciIsZnVuY3Rpb24oZCl7cmV0dXJuIGZ1bmN0aW9uKEMpe3JldHVybiB0KGQsdGhpcyxhcmd1bWVudHMpfX0pLGgoIlJ1bnRpbWVFcnJvciIsZnVuY3Rpb24oZCl7cmV0dXJuIGZ1bmN0aW9uKEMpe3JldHVybiB0KGQsdGhpcyxhcmd1bWVudHMpfX0pfSw5MzIyOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSgyMDMxOSksbj1lKDcwODAwKTtyKCJNYXAiLGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0KHRoaXMsYXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMF06dm9pZCAwKX19LG4pfSw4OTM0ODpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSg2ODg0NCksdD1lKDEwNTA5KSxpPWUoNzQ2ODQpLHM9ZSgxODczNCksYT1lKDgzOTE0KSx1PWUoNTM5MzEpLGM9YS5NYXAsaD1hLmhhcyxkPWEuZ2V0LG09YS5zZXQsQz1uKFtdLnB1c2gpO3Ioe3RhcmdldDoiTWFwIixzdGF0OiEwLGZvcmNlZDp1fSx7Z3JvdXBCeTpmdW5jdGlvbih3LEUpe2kodyksdChFKTt2YXIgeD1uZXcgYyxPPTA7cmV0dXJuIHModyxmdW5jdGlvbihUKXt2YXIgUz1FKFQsTysrKTtoKHgsUyk/QyhkKHgsUyksVCk6bSh4LFMsW1RdKX0pLHh9fSl9LDU2NjQ2OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZSg5MzIyKX0sNDQwNzk6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc5OTg5KSxuPWUoNzYwNTgpLHQ9ZSg2ODg0NCksaT1lKDEwNTA5KSxzPWUoNzQ2ODQpLGE9ZSgxODM2MCksdT1lKDE4NzM0KSxjPW4oIk9iamVjdCIsImNyZWF0ZSIpLGg9dChbXS5wdXNoKTtyKHt0YXJnZXQ6Ik9iamVjdCIsc3RhdDohMH0se2dyb3VwQnk6ZnVuY3Rpb24obSxDKXtzKG0pLGkoQyk7dmFyIGc9YyhudWxsKSx3PTA7cmV0dXJuIHUobSxmdW5jdGlvbihFKXt2YXIgeD1hKEMoRSx3KyspKTt4IGluIGc/aChnW3hdLEUpOmdbeF09W0VdfSksZ319KX0sMTQ1NjY6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc5OTg5KSxuPWUoMzY4MTIpO3Ioe3RhcmdldDoiT2JqZWN0IixzdGF0OiEwfSx7aGFzT3duOm59KX0sODc2MDk6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc5OTg5KSxuPWUoMjI2MTUpLHQ9ZSgxMDUwOSksaT1lKDc2MDU4KSxzPWUoNDg3NDIpLGE9ZSg5MzAyKSx1PWUoMTg3MzQpLGM9ZSg1NjIpLGg9Ik5vIG9uZSBwcm9taXNlIHJlc29sdmVkIjtyKHt0YXJnZXQ6IlByb21pc2UiLHN0YXQ6ITAsZm9yY2VkOmN9LHthbnk6ZnVuY3Rpb24obSl7dmFyIEM9dGhpcyxnPWkoIkFnZ3JlZ2F0ZUVycm9yIiksdz1zLmYoQyksRT13LnJlc29sdmUseD13LnJlamVjdCxPPWEoZnVuY3Rpb24oKXt2YXIgVD10KEMucmVzb2x2ZSksUz1bXSxMPTAsST0xLFI9ITE7dShtLGZ1bmN0aW9uKHope3ZhciBHPUwrKyxZPSExO0krKyxuKFQsQyx6KS50aGVuKGZ1bmN0aW9uKGVlKXtZfHxSfHwoUj0hMCxFKGVlKSl9LGZ1bmN0aW9uKGVlKXtZfHxSfHwoWT0hMCxTW0ddPWVlLC0tSXx8eChuZXcgZyhTLGgpKSl9KX0pLC0tSXx8eChuZXcgZyhTLGgpKX0pO3JldHVybiBPLmVycm9yJiZ4KE8udmFsdWUpLHcucHJvbWlzZX19KX0sMTM1MDU6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc5OTg5KSxuPWUoNDg3NDIpO3Ioe3RhcmdldDoiUHJvbWlzZSIsc3RhdDohMH0se3dpdGhSZXNvbHZlcnM6ZnVuY3Rpb24oKXt2YXIgaT1uLmYodGhpcyk7cmV0dXJue3Byb21pc2U6aS5wcm9taXNlLHJlc29sdmU6aS5yZXNvbHZlLHJlamVjdDppLnJlamVjdH19fSl9LDc2MDM0OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDE5MDM3KSx0PWUoNTU5OTcpO3Ioe2dsb2JhbDohMH0se1JlZmxlY3Q6e319KSx0KG4uUmVmbGVjdCwiUmVmbGVjdCIsITApfSwyNTg0NzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoMTkwMzcpLG49ZSg2NzY5NyksdD1lKDYyMTQ4KSxpPWUoNjk2MzMpLHM9ZSgzNjg5KSxhPXIuUmVnRXhwLHU9YS5wcm90b3R5cGUsYz1uJiZzKGZ1bmN0aW9uKCl7dmFyIGg9ITA7dHJ5e2EoIi4iLCJkIil9Y2F0Y2goTyl7aD0hMX12YXIgZD17fSxtPSIiLEM9aD8iZGdpbXN5IjoiZ2ltc3kiLGc9ZnVuY3Rpb24oTyxUKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxPLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbSs9VCwhMH19KX0sdz17ZG90QWxsOiJzIixnbG9iYWw6ImciLGlnbm9yZUNhc2U6ImkiLG11bHRpbGluZToibSIsc3RpY2t5OiJ5In07aCYmKHcuaGFzSW5kaWNlcz0iZCIpO2Zvcih2YXIgRSBpbiB3KWcoRSx3W0VdKTt2YXIgeD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHUsImZsYWdzIikuZ2V0LmNhbGwoZCk7cmV0dXJuIHghPT1DfHxtIT09Q30pO2MmJnQodSwiZmxhZ3MiLHtjb25maWd1cmFibGU6ITAsZ2V0Oml9KX0sNzk2MTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSg2ODg0NCksdD1lKDc0Njg0KSxpPWUoNjg3MDApLHM9ZSgzNDMyNyksYT1lKDM2ODkpLHU9bigiIi5jaGFyQXQpLGM9YShmdW5jdGlvbigpe3JldHVybiJcdXsyMEJCN30iLmF0KC0yKSE9PSJcdUQ4NDIifSk7cih7dGFyZ2V0OiJTdHJpbmciLHByb3RvOiEwLGZvcmNlZDpjfSx7YXQ6ZnVuY3Rpb24oZCl7dmFyIG09cyh0KHRoaXMpKSxDPW0ubGVuZ3RoLGc9aShkKSx3PWc+PTA/ZzpDK2c7cmV0dXJuIHc8MHx8dz49Qz92b2lkIDA6dShtLHcpfX0pfSwxMjI4MTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSg2ODg0NCksdD1lKDc0Njg0KSxpPWUoMzQzMjcpLHM9bigiIi5jaGFyQ29kZUF0KTtyKHt0YXJnZXQ6IlN0cmluZyIscHJvdG86ITB9LHtpc1dlbGxGb3JtZWQ6ZnVuY3Rpb24oKXtmb3IodmFyIHU9aSh0KHRoaXMpKSxjPXUubGVuZ3RoLGg9MDtoPGM7aCsrKXt2YXIgZD1zKHUsaCk7aWYoKGQmNjM0ODgpPT09NTUyOTYmJihkPj01NjMyMHx8KytoPj1jfHwocyh1LGgpJjY0NTEyKSE9PTU2MzIwKSlyZXR1cm4hMX1yZXR1cm4hMH19KX0sNTY1MzI6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc5OTg5KSxuPWUoMjI2MTUpLHQ9ZSg2ODg0NCksaT1lKDc0Njg0KSxzPWUoNjk5ODUpLGE9ZSg5ODEpLHU9ZSg5MTI0NSksYz1lKDM0MzI3KSxoPWUoNTQ4NDkpLGQ9ZSg2MzQ3NyksbT1lKDI3MDE3KSxDPWUoNDQyMDEpLGc9ZSg1MzkzMSksdz1DKCJyZXBsYWNlIiksRT1UeXBlRXJyb3IseD10KCIiLmluZGV4T2YpLE89dCgiIi5yZXBsYWNlKSxUPXQoIiIuc2xpY2UpLFM9TWF0aC5tYXgsTD1mdW5jdGlvbihJLFIseil7cmV0dXJuIHo+SS5sZW5ndGg/LTE6Uj09PSIiP3o6eChJLFIseil9O3Ioe3RhcmdldDoiU3RyaW5nIixwcm90bzohMH0se3JlcGxhY2VBbGw6ZnVuY3Rpb24oUix6KXt2YXIgRz1pKHRoaXMpLFksZWUsSixtZSx0ZSxsZSxjZSxXLGosRD0wLFY9MCxaPSIiO2lmKCFhKFIpKXtpZihZPXUoUiksWSYmKGVlPWMoaShkKFIpKSksIX54KGVlLCJnIikpKXRocm93IG5ldyBFKCJgLnJlcGxhY2VBbGxgIGRvZXMgbm90IGFsbG93IG5vbi1nbG9iYWwgcmVnZXhlcyIpO2lmKEo9aChSLHcpLEopcmV0dXJuIG4oSixSLEcseik7aWYoZyYmWSlyZXR1cm4gTyhjKEcpLFIseil9Zm9yKG1lPWMoRyksdGU9YyhSKSxsZT1zKHopLGxlfHwoej1jKHopKSxjZT10ZS5sZW5ndGgsVz1TKDEsY2UpLEQ9TChtZSx0ZSwwKTtEIT09LTE7KWo9bGU/Yyh6KHRlLEQsbWUpKTptKHRlLG1lLEQsW10sdm9pZCAwLHopLForPVQobWUsVixEKStqLFY9RCtjZSxEPUwobWUsdGUsRCtXKTtyZXR1cm4gVjxtZS5sZW5ndGgmJihaKz1UKG1lLFYpKSxafX0pfSwzNTIzNzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSgyMjYxNSksdD1lKDY4ODQ0KSxpPWUoNzQ2ODQpLHM9ZSgzNDMyNyksYT1lKDM2ODkpLHU9QXJyYXksYz10KCIiLmNoYXJBdCksaD10KCIiLmNoYXJDb2RlQXQpLGQ9dChbXS5qb2luKSxtPSIiLnRvV2VsbEZvcm1lZCxDPSJcdUZGRkQiLGc9bSYmYShmdW5jdGlvbigpe3JldHVybiBuKG0sMSkhPT0iMSJ9KTtyKHt0YXJnZXQ6IlN0cmluZyIscHJvdG86ITAsZm9yY2VkOmd9LHt0b1dlbGxGb3JtZWQ6ZnVuY3Rpb24oKXt2YXIgRT1zKGkodGhpcykpO2lmKGcpcmV0dXJuIG4obSxFKTtmb3IodmFyIHg9RS5sZW5ndGgsTz11KHgpLFQ9MDtUPHg7VCsrKXt2YXIgUz1oKEUsVCk7KFMmNjM0ODgpIT09NTUyOTY/T1tUXT1jKEUsVCk6Uz49NTYzMjB8fFQrMT49eHx8KGgoRSxUKzEpJjY0NTEyKSE9PTU2MzIwP09bVF09QzooT1tUXT1jKEUsVCksT1srK1RdPWMoRSxUKSl9cmV0dXJuIGQoTywiIil9fSl9LDk1MTk0OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg1NDg3Miksbj1lKDYzMTApLHQ9ZSg2ODcwMCksaT1yLmFUeXBlZEFycmF5LHM9ci5leHBvcnRUeXBlZEFycmF5TWV0aG9kO3MoImF0IixmdW5jdGlvbih1KXt2YXIgYz1pKHRoaXMpLGg9bihjKSxkPXQodSksbT1kPj0wP2Q6aCtkO3JldHVybiBtPDB8fG0+PWg/dm9pZCAwOmNbbV19KX0sODI6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDU0ODcyKSxuPWUoNjE5NjkpLmZpbmRMYXN0SW5kZXgsdD1yLmFUeXBlZEFycmF5LGk9ci5leHBvcnRUeXBlZEFycmF5TWV0aG9kO2koImZpbmRMYXN0SW5kZXgiLGZ1bmN0aW9uKGEpe3JldHVybiBuKHQodGhpcyksYSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9KX0sMjA1MjI6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDU0ODcyKSxuPWUoNjE5NjkpLmZpbmRMYXN0LHQ9ci5hVHlwZWRBcnJheSxpPXIuZXhwb3J0VHlwZWRBcnJheU1ldGhvZDtpKCJmaW5kTGFzdCIsZnVuY3Rpb24oYSl7cmV0dXJuIG4odCh0aGlzKSxhLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX0pfSw3OTk3NjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoMTkwMzcpLG49ZSgyMjYxNSksdD1lKDU0ODcyKSxpPWUoNjMxMCkscz1lKDgzMjUwKSxhPWUoOTA2OTApLHU9ZSgzNjg5KSxjPXIuUmFuZ2VFcnJvcixoPXIuSW50OEFycmF5LGQ9aCYmaC5wcm90b3R5cGUsbT1kJiZkLnNldCxDPXQuYVR5cGVkQXJyYXksZz10LmV4cG9ydFR5cGVkQXJyYXlNZXRob2Qsdz0hdShmdW5jdGlvbigpe3ZhciB4PW5ldyBVaW50OENsYW1wZWRBcnJheSgyKTtyZXR1cm4gbihtLHgse2xlbmd0aDoxLDA6M30sMSkseFsxXSE9PTN9KSxFPXcmJnQuTkFUSVZFX0FSUkFZX0JVRkZFUl9WSUVXUyYmdShmdW5jdGlvbigpe3ZhciB4PW5ldyBoKDIpO3JldHVybiB4LnNldCgxKSx4LnNldCgiMiIsMSkseFswXSE9PTB8fHhbMV0hPT0yfSk7Zygic2V0IixmdW5jdGlvbihPKXtDKHRoaXMpO3ZhciBUPXMoYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsMSksUz1hKE8pO2lmKHcpcmV0dXJuIG4obSx0aGlzLFMsVCk7dmFyIEw9dGhpcy5sZW5ndGgsST1pKFMpLFI9MDtpZihJK1Q+TCl0aHJvdyBuZXcgYygiV3JvbmcgbGVuZ3RoIik7Zm9yKDtSPEk7KXRoaXNbVCtSXT1TW1IrK119LCF3fHxFKX0sMjQyMjQ6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDI2MTY2KSxuPWUoNTQ4NzIpLHQ9bi5hVHlwZWRBcnJheSxpPW4uZXhwb3J0VHlwZWRBcnJheU1ldGhvZCxzPW4uZ2V0VHlwZWRBcnJheUNvbnN0cnVjdG9yO2koInRvUmV2ZXJzZWQiLGZ1bmN0aW9uKCl7cmV0dXJuIHIodCh0aGlzKSxzKHRoaXMpKX0pfSw2MTEyMTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNTQ4NzIpLG49ZSg2ODg0NCksdD1lKDEwNTA5KSxpPWUoNTk5NzYpLHM9ci5hVHlwZWRBcnJheSxhPXIuZ2V0VHlwZWRBcnJheUNvbnN0cnVjdG9yLHU9ci5leHBvcnRUeXBlZEFycmF5TWV0aG9kLGM9bihyLlR5cGVkQXJyYXlQcm90b3R5cGUuc29ydCk7dSgidG9Tb3J0ZWQiLGZ1bmN0aW9uKGQpe2QhPT12b2lkIDAmJnQoZCk7dmFyIG09cyh0aGlzKSxDPWkoYShtKSxtKTtyZXR1cm4gYyhDLGQpfSl9LDM3MTMzOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSgxNjEzNCksbj1lKDU0ODcyKSx0PWUoOTQwMSksaT1lKDY4NzAwKSxzPWUoNzE1MzApLGE9bi5hVHlwZWRBcnJheSx1PW4uZ2V0VHlwZWRBcnJheUNvbnN0cnVjdG9yLGM9bi5leHBvcnRUeXBlZEFycmF5TWV0aG9kLGg9ISFmdW5jdGlvbigpe3RyeXtuZXcgSW50OEFycmF5KDEpLndpdGgoMix7dmFsdWVPZjpmdW5jdGlvbigpe3Rocm93IDh9fSl9Y2F0Y2goZCl7cmV0dXJuIGQ9PT04fX0oKTtjKCJ3aXRoIixmdW5jdGlvbihkLG0pe3ZhciBDPWEodGhpcyksZz1pKGQpLHc9dChDKT9zKG0pOittO3JldHVybiByKEMsdShDKSxnLHcpfSwhaCl9LDQ1MTY0OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3MTU5NCksbj1lKDE5MDM3KSx0PWUoNjg4NDQpLGk9ZSg2MDQ1KSxzPWUoNDUzNzUpLGE9ZSgyMDMxOSksdT1lKDcwNjM3KSxjPWUoNDg5OTkpLGg9ZSg2MTgpLmVuZm9yY2UsZD1lKDM2ODkpLG09ZSg1OTgzNCksQz1PYmplY3QsZz1BcnJheS5pc0FycmF5LHc9Qy5pc0V4dGVuc2libGUsRT1DLmlzRnJvemVuLHg9Qy5pc1NlYWxlZCxPPUMuZnJlZXplLFQ9Qy5zZWFsLFM9e30sTD17fSxJPSFuLkFjdGl2ZVhPYmplY3QmJiJBY3RpdmVYT2JqZWN0ImluIG4sUix6PWZ1bmN0aW9uKGNlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gY2UodGhpcyxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1swXTp2b2lkIDApfX0sRz1hKCJXZWFrTWFwIix6LHUpLFk9Ry5wcm90b3R5cGUsZWU9dChZLnNldCksSj1mdW5jdGlvbigpe3JldHVybiByJiZkKGZ1bmN0aW9uKCl7dmFyIGNlPU8oW10pO3JldHVybiBlZShuZXcgRyxjZSwxKSwhRShjZSl9KX07aWYobSlpZihJKXtSPXUuZ2V0Q29uc3RydWN0b3IoeiwiV2Vha01hcCIsITApLHMuZW5hYmxlKCk7dmFyIG1lPXQoWS5kZWxldGUpLHRlPXQoWS5oYXMpLGxlPXQoWS5nZXQpO2koWSx7ZGVsZXRlOmZ1bmN0aW9uKGNlKXtpZihjKGNlKSYmIXcoY2UpKXt2YXIgVz1oKHRoaXMpO3JldHVybiBXLmZyb3plbnx8KFcuZnJvemVuPW5ldyBSKSxtZSh0aGlzLGNlKXx8Vy5mcm96ZW4uZGVsZXRlKGNlKX1yZXR1cm4gbWUodGhpcyxjZSl9LGhhczpmdW5jdGlvbihXKXtpZihjKFcpJiYhdyhXKSl7dmFyIGo9aCh0aGlzKTtyZXR1cm4gai5mcm96ZW58fChqLmZyb3plbj1uZXcgUiksdGUodGhpcyxXKXx8ai5mcm96ZW4uaGFzKFcpfXJldHVybiB0ZSh0aGlzLFcpfSxnZXQ6ZnVuY3Rpb24oVyl7aWYoYyhXKSYmIXcoVykpe3ZhciBqPWgodGhpcyk7cmV0dXJuIGouZnJvemVufHwoai5mcm96ZW49bmV3IFIpLHRlKHRoaXMsVyk/bGUodGhpcyxXKTpqLmZyb3plbi5nZXQoVyl9cmV0dXJuIGxlKHRoaXMsVyl9LHNldDpmdW5jdGlvbihXLGope2lmKGMoVykmJiF3KFcpKXt2YXIgRD1oKHRoaXMpO0QuZnJvemVufHwoRC5mcm96ZW49bmV3IFIpLHRlKHRoaXMsVyk/ZWUodGhpcyxXLGopOkQuZnJvemVuLnNldChXLGopfWVsc2UgZWUodGhpcyxXLGopO3JldHVybiB0aGlzfX0pfWVsc2UgSigpJiZpKFkse3NldDpmdW5jdGlvbihXLGope3ZhciBEO3JldHVybiBnKFcpJiYoRShXKT9EPVM6eChXKSYmKEQ9TCkpLGVlKHRoaXMsVyxqKSxEPT09UyYmTyhXKSxEPT09TCYmVChXKSx0aGlzfX0pfSw1MTA5MDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UoNDUxNjQpfSw4NjI0NzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNjc2OTcpLG49ZSg2MjE0OCksdD1lKDIyOTYxKSxpPUFycmF5QnVmZmVyLnByb3RvdHlwZTtyJiYhKCJkZXRhY2hlZCJpbiBpKSYmbihpLCJkZXRhY2hlZCIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdCh0aGlzKX19KX0sNDMwOTc6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc5OTg5KSxuPWUoMjkxOTUpO24mJnIoe3RhcmdldDoiQXJyYXlCdWZmZXIiLHByb3RvOiEwfSx7dHJhbnNmZXJUb0ZpeGVkTGVuZ3RoOmZ1bmN0aW9uKCl7cmV0dXJuIG4odGhpcyxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1swXTp2b2lkIDAsITEpfX0pfSwyMTQxMjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSgyOTE5NSk7biYmcih7dGFyZ2V0OiJBcnJheUJ1ZmZlciIscHJvdG86ITB9LHt0cmFuc2ZlcjpmdW5jdGlvbigpe3JldHVybiBuKHRoaXMsYXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMF06dm9pZCAwLCEwKX19KX0sNzgwMjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSgyOTYwKS5maWx0ZXJSZWplY3QsdD1lKDg3MzcwKTtyKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6ITB9LHtmaWx0ZXJPdXQ6ZnVuY3Rpb24ocyl7cmV0dXJuIG4odGhpcyxzLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19KSx0KCJmaWx0ZXJPdXQiKX0sNTQ4ODM6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc5OTg5KSxuPWUoMjk2MCkuZmlsdGVyUmVqZWN0LHQ9ZSg4NzM3MCk7cih7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsZm9yY2VkOiEwfSx7ZmlsdGVyUmVqZWN0OmZ1bmN0aW9uKHMpe3JldHVybiBuKHRoaXMscyxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSksdCgiZmlsdGVyUmVqZWN0Iil9LDE4MDczOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDIyMzEpO3Ioe3RhcmdldDoiQXJyYXkiLHN0YXQ6ITB9LHtmcm9tQXN5bmM6bn0pfSw5Njg4MjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSgxNjgzNCksdD1lKDg3MzcwKSxpPWUoNDQ0MTYpLHM9ZSg1MzkzMSk7cih7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsbmFtZToiZ3JvdXBUb01hcCIsZm9yY2VkOnN8fCFuKCJncm91cEJ5VG9NYXAiKX0se2dyb3VwQnlUb01hcDppfSksdCgiZ3JvdXBCeVRvTWFwIil9LDIyNTI1OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDY0OTc2KSx0PWUoMTY4MzQpLGk9ZSg4NzM3MCk7cih7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsZm9yY2VkOiF0KCJncm91cEJ5Iil9LHtncm91cEJ5OmZ1bmN0aW9uKGEpe3ZhciB1PWFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwO3JldHVybiBuKHRoaXMsYSx1KX19KSxpKCJncm91cEJ5Iil9LDMyNTM5OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDg3MzcwKSx0PWUoNDQ0MTYpLGk9ZSg1MzkzMSk7cih7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsZm9yY2VkOml9LHtncm91cFRvTWFwOnR9KSxuKCJncm91cFRvTWFwIil9LDM2MjA4OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDY0OTc2KSx0PWUoODczNzApO3Ioe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwfSx7Z3JvdXA6ZnVuY3Rpb24ocyl7dmFyIGE9YXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDA7cmV0dXJuIG4odGhpcyxzLGEpfX0pLHQoImdyb3VwIil9LDUwODI6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc5OTg5KSxuPWUoOTIyOTcpLHQ9T2JqZWN0LmlzRnJvemVuLGk9ZnVuY3Rpb24ocyxhKXtpZighdHx8IW4ocyl8fCF0KHMpKXJldHVybiExO2Zvcih2YXIgdT0wLGM9cy5sZW5ndGgsaDt1PGM7KWlmKGg9c1t1KytdLCEodHlwZW9mIGg9PSJzdHJpbmcifHxhJiZoPT09dm9pZCAwKSlyZXR1cm4hMTtyZXR1cm4gYyE9PTB9O3Ioe3RhcmdldDoiQXJyYXkiLHN0YXQ6ITAsc2hhbTohMCxmb3JjZWQ6ITB9LHtpc1RlbXBsYXRlT2JqZWN0OmZ1bmN0aW9uKGEpe2lmKCFpKGEsITApKXJldHVybiExO3ZhciB1PWEucmF3O3JldHVybiB1Lmxlbmd0aD09PWEubGVuZ3RoJiZpKHUsITEpfX0pfSw5ODpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNjc2OTcpLG49ZSg4NzM3MCksdD1lKDkwNjkwKSxpPWUoNjMxMCkscz1lKDYyMTQ4KTtyJiYocyhBcnJheS5wcm90b3R5cGUsImxhc3RJbmRleCIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXt2YXIgdT10KHRoaXMpLGM9aSh1KTtyZXR1cm4gYz09PTA/MDpjLTF9fSksbigibGFzdEluZGV4IikpfSwzMjIyMTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNjc2OTcpLG49ZSg4NzM3MCksdD1lKDkwNjkwKSxpPWUoNjMxMCkscz1lKDYyMTQ4KTtyJiYocyhBcnJheS5wcm90b3R5cGUsImxhc3RJdGVtIix7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3ZhciB1PXQodGhpcyksYz1pKHUpO3JldHVybiBjPT09MD92b2lkIDA6dVtjLTFdfSxzZXQ6ZnVuY3Rpb24odSl7dmFyIGM9dCh0aGlzKSxoPWkoYyk7cmV0dXJuIGNbaD09PTA/MDpoLTFdPXV9fSksbigibGFzdEl0ZW0iKSl9LDkyMjUzOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDg3MzcwKSx0PWUoMTIzOTcpO3Ioe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGZvcmNlZDohMH0se3VuaXF1ZUJ5OnR9KSxuKCJ1bmlxdWVCeSIpfSwxMTA3MDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSg2NzY5NyksdD1lKDc2MDU4KSxpPWUoMTA1MDkpLHM9ZSg3NjcpLGE9ZSgxMTg4MCksdT1lKDYwNDUpLGM9ZSg2MjE0OCksaD1lKDQ0MjAxKSxkPWUoNjE4KSxtPWUoMjkxOTkpLEM9dCgiUHJvbWlzZSIpLGc9dCgiU3VwcHJlc3NlZEVycm9yIiksdz1SZWZlcmVuY2VFcnJvcixFPWgoImFzeW5jRGlzcG9zZSIpLHg9aCgidG9TdHJpbmdUYWciKSxPPSJBc3luY0Rpc3Bvc2FibGVTdGFjayIsVD1kLnNldCxTPWQuZ2V0dGVyRm9yKE8pLEw9ImFzeW5jLWRpc3Bvc2UiLEk9ImRpc3Bvc2VkIixSPSJwZW5kaW5nIix6PWZ1bmN0aW9uKGVlKXt2YXIgSj1TKGVlKTtpZihKLnN0YXRlPT09SSl0aHJvdyBuZXcgdyhPKyIgYWxyZWFkeSBkaXNwb3NlZCIpO3JldHVybiBKfSxHPWZ1bmN0aW9uKCl7VChzKHRoaXMsWSkse3R5cGU6TyxzdGF0ZTpSLHN0YWNrOltdfSksbnx8KHRoaXMuZGlzcG9zZWQ9ITEpfSxZPUcucHJvdG90eXBlO3UoWSx7ZGlzcG9zZUFzeW5jOmZ1bmN0aW9uKCl7dmFyIEo9dGhpcztyZXR1cm4gbmV3IEMoZnVuY3Rpb24obWUsdGUpe3ZhciBsZT1TKEopO2lmKGxlLnN0YXRlPT09SSlyZXR1cm4gbWUodm9pZCAwKTtsZS5zdGF0ZT1JLG58fChKLmRpc3Bvc2VkPSEwKTt2YXIgY2U9bGUuc3RhY2ssVz1jZS5sZW5ndGgsaj0hMSxELFY9ZnVuY3Rpb24oUCl7aj9EPW5ldyBnKFAsRCk6KGo9ITAsRD1QKSxaKCl9LFo9ZnVuY3Rpb24oKXtpZihXKXt2YXIgUD1jZVstLVddO2NlW1ddPW51bGw7dHJ5e0MucmVzb2x2ZShQKCkpLnRoZW4oWixWKX1jYXRjaChLKXtWKEspfX1lbHNlIGxlLnN0YWNrPW51bGwsaj90ZShEKTptZSh2b2lkIDApfTtaKCl9KX0sdXNlOmZ1bmN0aW9uKEope3JldHVybiBtKHoodGhpcyksSixMKSxKfSxhZG9wdDpmdW5jdGlvbihKLG1lKXt2YXIgdGU9eih0aGlzKTtyZXR1cm4gaShtZSksbSh0ZSx2b2lkIDAsTCxmdW5jdGlvbigpe3JldHVybiBtZShKKX0pLEp9LGRlZmVyOmZ1bmN0aW9uKEope3ZhciBtZT16KHRoaXMpO2koSiksbShtZSx2b2lkIDAsTCxKKX0sbW92ZTpmdW5jdGlvbigpe3ZhciBKPXoodGhpcyksbWU9bmV3IEc7cmV0dXJuIFMobWUpLnN0YWNrPUouc3RhY2ssSi5zdGFjaz1bXSxKLnN0YXRlPUksbnx8KHRoaXMuZGlzcG9zZWQ9ITApLG1lfX0pLG4mJmMoWSwiZGlzcG9zZWQiLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFModGhpcykuc3RhdGU9PT1JfX0pLGEoWSxFLFkuZGlzcG9zZUFzeW5jLHtuYW1lOiJkaXNwb3NlQXN5bmMifSksYShZLHgsTyx7bm9uV3JpdGFibGU6ITB9KSxyKHtnbG9iYWw6ITAsY29uc3RydWN0b3I6ITB9LHtBc3luY0Rpc3Bvc2FibGVTdGFjazpHfSl9LDc3Mjk5OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDQwMTY0KTtyKHt0YXJnZXQ6IkFzeW5jSXRlcmF0b3IiLG5hbWU6ImluZGV4ZWQiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiEwfSx7YXNJbmRleGVkUGFpcnM6bn0pfSwxNTY5NDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoMjI2MTUpLG49ZSgxMTg4MCksdD1lKDc2MDU4KSxpPWUoNTQ4NDkpLHM9ZSgzNjgxMiksYT1lKDQ0MjAxKSx1PWUoMjMwNzApLGM9YSgiYXN5bmNEaXNwb3NlIiksaD10KCJQcm9taXNlIik7cyh1LGMpfHxuKHUsYyxmdW5jdGlvbigpe3ZhciBkPXRoaXM7cmV0dXJuIG5ldyBoKGZ1bmN0aW9uKG0sQyl7dmFyIGc9aShkLCJyZXR1cm4iKTtnP2gucmVzb2x2ZShyKGcsZCkpLnRoZW4oZnVuY3Rpb24oKXttKHZvaWQgMCl9LEMpOm0odm9pZCAwKX0pfSl9LDY0NTc4OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDc2NyksdD1lKDYxODY4KSxpPWUoNzU3NzMpLHM9ZSgzNjgxMiksYT1lKDQ0MjAxKSx1PWUoMjMwNzApLGM9ZSg1MzkzMSksaD1hKCJ0b1N0cmluZ1RhZyIpLGQ9VHlwZUVycm9yLG09ZnVuY3Rpb24oKXtpZihuKHRoaXMsdSksdCh0aGlzKT09PXUpdGhyb3cgbmV3IGQoIkFic3RyYWN0IGNsYXNzIEFzeW5jSXRlcmF0b3Igbm90IGRpcmVjdGx5IGNvbnN0cnVjdGFibGUiKX07bS5wcm90b3R5cGU9dSxzKHUsaCl8fGkodSxoLCJBc3luY0l0ZXJhdG9yIiksKGN8fCFzKHUsImNvbnN0cnVjdG9yIil8fHUuY29uc3RydWN0b3I9PT1PYmplY3QpJiZpKHUsImNvbnN0cnVjdG9yIixtKSxyKHtnbG9iYWw6ITAsY29uc3RydWN0b3I6ITAsZm9yY2VkOmN9LHtBc3luY0l0ZXJhdG9yOm19KX0sMTc4MTU6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc5OTg5KSxuPWUoMjI2MTUpLHQ9ZSg4NTAyNyksaT1lKDIyMzAyKSxzPWUoNDY1NCksYT1lKDE1OTA0KSx1PWUoMTczOTQpLGM9ZSgyNzgwNyksaD1lKDUzOTMxKSxkPXUoZnVuY3Rpb24obSl7dmFyIEM9dGhpcztyZXR1cm4gbmV3IG0oZnVuY3Rpb24oZyx3KXt2YXIgRT1mdW5jdGlvbihPKXtDLmRvbmU9ITAsdyhPKX0seD1mdW5jdGlvbigpe3RyeXttLnJlc29sdmUodChuKEMubmV4dCxDLml0ZXJhdG9yKSkpLnRoZW4oZnVuY3Rpb24oTyl7dHJ5e3QoTykuZG9uZT8oQy5kb25lPSEwLGcoYyh2b2lkIDAsITApKSk6Qy5yZW1haW5pbmc/KEMucmVtYWluaW5nLS0seCgpKTpnKGMoTy52YWx1ZSwhMSkpfWNhdGNoKFQpe0UoVCl9fSxFKX1jYXRjaChPKXtFKE8pfX07eCgpfSl9KTtyKHt0YXJnZXQ6IkFzeW5jSXRlcmF0b3IiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOmh9LHtkcm9wOmZ1bmN0aW9uKEMpe3QodGhpcyk7dmFyIGc9YShzKCtDKSk7cmV0dXJuIG5ldyBkKGkodGhpcykse3JlbWFpbmluZzpnfSl9fSl9LDE5MDI5OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDYyNDg5KS5ldmVyeTtyKHt0YXJnZXQ6IkFzeW5jSXRlcmF0b3IiLHByb3RvOiEwLHJlYWw6ITB9LHtldmVyeTpmdW5jdGlvbihpKXtyZXR1cm4gbih0aGlzLGkpfX0pfSw2MjM3OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDIyNjE1KSx0PWUoMTA1MDkpLGk9ZSg4NTAyNykscz1lKDQ4OTk5KSxhPWUoMjIzMDIpLHU9ZSgxNzM5NCksYz1lKDI3ODA3KSxoPWUoNTIzOTkpLGQ9ZSg1MzkzMSksbT11KGZ1bmN0aW9uKEMpe3ZhciBnPXRoaXMsdz1nLml0ZXJhdG9yLEU9Zy5wcmVkaWNhdGU7cmV0dXJuIG5ldyBDKGZ1bmN0aW9uKHgsTyl7dmFyIFQ9ZnVuY3Rpb24oSSl7Zy5kb25lPSEwLE8oSSl9LFM9ZnVuY3Rpb24oSSl7aCh3LFQsSSxUKX0sTD1mdW5jdGlvbigpe3RyeXtDLnJlc29sdmUoaShuKGcubmV4dCx3KSkpLnRoZW4oZnVuY3Rpb24oSSl7dHJ5e2lmKGkoSSkuZG9uZSlnLmRvbmU9ITAseChjKHZvaWQgMCwhMCkpO2Vsc2V7dmFyIFI9SS52YWx1ZTt0cnl7dmFyIHo9RShSLGcuY291bnRlcisrKSxHPWZ1bmN0aW9uKFkpe1k/eChjKFIsITEpKTpMKCl9O3Moeik/Qy5yZXNvbHZlKHopLnRoZW4oRyxTKTpHKHopfWNhdGNoKFkpe1MoWSl9fX1jYXRjaChZKXtUKFkpfX0sVCl9Y2F0Y2goSSl7VChJKX19O0woKX0pfSk7cih7dGFyZ2V0OiJBc3luY0l0ZXJhdG9yIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpkfSx7ZmlsdGVyOmZ1bmN0aW9uKGcpe3JldHVybiBpKHRoaXMpLHQoZyksbmV3IG0oYSh0aGlzKSx7cHJlZGljYXRlOmd9KX19KX0sODE5NTQ6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc5OTg5KSxuPWUoNjI0ODkpLmZpbmQ7cih7dGFyZ2V0OiJBc3luY0l0ZXJhdG9yIixwcm90bzohMCxyZWFsOiEwfSx7ZmluZDpmdW5jdGlvbihpKXtyZXR1cm4gbih0aGlzLGkpfX0pfSw4NzE1MjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSgyMjYxNSksdD1lKDEwNTA5KSxpPWUoODUwMjcpLHM9ZSg0ODk5OSksYT1lKDIyMzAyKSx1PWUoMTczOTQpLGM9ZSgyNzgwNyksaD1lKDExNDI3KSxkPWUoNTIzOTkpLG09ZSg1MzkzMSksQz11KGZ1bmN0aW9uKGcpe3ZhciB3PXRoaXMsRT13Lml0ZXJhdG9yLHg9dy5tYXBwZXI7cmV0dXJuIG5ldyBnKGZ1bmN0aW9uKE8sVCl7dmFyIFM9ZnVuY3Rpb24oeil7dy5kb25lPSEwLFQoeil9LEw9ZnVuY3Rpb24oeil7ZChFLFMseixTKX0sST1mdW5jdGlvbigpe3RyeXtnLnJlc29sdmUoaShuKHcubmV4dCxFKSkpLnRoZW4oZnVuY3Rpb24oeil7dHJ5e2lmKGkoeikuZG9uZSl3LmRvbmU9ITAsTyhjKHZvaWQgMCwhMCkpO2Vsc2V7dmFyIEc9ei52YWx1ZTt0cnl7dmFyIFk9eChHLHcuY291bnRlcisrKSxlZT1mdW5jdGlvbihKKXt0cnl7dy5pbm5lcj1oKEopLFIoKX1jYXRjaChtZSl7TChtZSl9fTtzKFkpP2cucmVzb2x2ZShZKS50aGVuKGVlLEwpOmVlKFkpfWNhdGNoKEope0woSil9fX1jYXRjaChKKXtTKEopfX0sUyl9Y2F0Y2goeil7Uyh6KX19LFI9ZnVuY3Rpb24oKXt2YXIgej13LmlubmVyO2lmKHopdHJ5e2cucmVzb2x2ZShpKG4oei5uZXh0LHouaXRlcmF0b3IpKSkudGhlbihmdW5jdGlvbihHKXt0cnl7aShHKS5kb25lPyh3LmlubmVyPW51bGwsSSgpKTpPKGMoRy52YWx1ZSwhMSkpfWNhdGNoKFkpe0woWSl9fSxMKX1jYXRjaChHKXtMKEcpfWVsc2UgSSgpfTtSKCl9KX0pO3Ioe3RhcmdldDoiQXN5bmNJdGVyYXRvciIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6bX0se2ZsYXRNYXA6ZnVuY3Rpb24odyl7cmV0dXJuIGkodGhpcyksdCh3KSxuZXcgQyhhKHRoaXMpLHttYXBwZXI6dyxpbm5lcjpudWxsfSl9fSl9LDg5NjY3OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDYyNDg5KS5mb3JFYWNoO3Ioe3RhcmdldDoiQXN5bmNJdGVyYXRvciIscHJvdG86ITAscmVhbDohMH0se2ZvckVhY2g6ZnVuY3Rpb24oaSl7cmV0dXJuIG4odGhpcyxpKX19KX0sNDkxMTg6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc5OTg5KSxuPWUoOTA2OTApLHQ9ZSgyMzYyMiksaT1lKDExNDI3KSxzPWUoMjMwNzApLGE9ZSg0MDIxOSksdT1lKDUzOTMxKTtyKHt0YXJnZXQ6IkFzeW5jSXRlcmF0b3IiLHN0YXQ6ITAsZm9yY2VkOnV9LHtmcm9tOmZ1bmN0aW9uKGgpe3ZhciBkPWkodHlwZW9mIGg9PSJzdHJpbmciP24oaCk6aCk7cmV0dXJuIHQocyxkLml0ZXJhdG9yKT9kLml0ZXJhdG9yOm5ldyBhKGQpfX0pfSwzMjQxMTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSg0MDE2NCk7cih7dGFyZ2V0OiJBc3luY0l0ZXJhdG9yIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohMH0se2luZGV4ZWQ6bn0pfSwzMjU2OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDgyNDEyKSx0PWUoNTM5MzEpO3Ioe3RhcmdldDoiQXN5bmNJdGVyYXRvciIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6dH0se21hcDpufSl9LDg1NjI1OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDIyNjE1KSx0PWUoMTA1MDkpLGk9ZSg4NTAyNykscz1lKDQ4OTk5KSxhPWUoNzYwNTgpLHU9ZSgyMjMwMiksYz1lKDUyMzk5KSxoPWEoIlByb21pc2UiKSxkPVR5cGVFcnJvcjtyKHt0YXJnZXQ6IkFzeW5jSXRlcmF0b3IiLHByb3RvOiEwLHJlYWw6ITB9LHtyZWR1Y2U6ZnVuY3Rpb24oQyl7aSh0aGlzKSx0KEMpO3ZhciBnPXUodGhpcyksdz1nLml0ZXJhdG9yLEU9Zy5uZXh0LHg9YXJndW1lbnRzLmxlbmd0aDwyLE89eD92b2lkIDA6YXJndW1lbnRzWzFdLFQ9MDtyZXR1cm4gbmV3IGgoZnVuY3Rpb24oUyxMKXt2YXIgST1mdW5jdGlvbih6KXtjKHcsTCx6LEwpfSxSPWZ1bmN0aW9uKCl7dHJ5e2gucmVzb2x2ZShpKG4oRSx3KSkpLnRoZW4oZnVuY3Rpb24oeil7dHJ5e2lmKGkoeikuZG9uZSl4P0wobmV3IGQoIlJlZHVjZSBvZiBlbXB0eSBpdGVyYXRvciB3aXRoIG5vIGluaXRpYWwgdmFsdWUiKSk6UyhPKTtlbHNle3ZhciBHPXoudmFsdWU7aWYoeCl4PSExLE89RyxSKCk7ZWxzZSB0cnl7dmFyIFk9QyhPLEcsVCksZWU9ZnVuY3Rpb24oSil7Tz1KLFIoKX07cyhZKT9oLnJlc29sdmUoWSkudGhlbihlZSxJKTplZShZKX1jYXRjaChKKXtJKEopfX1UKyt9Y2F0Y2goSil7TChKKX19LEwpfWNhdGNoKHope0woeil9fTtSKCl9KX19KX0sMTA5MTQ6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc5OTg5KSxuPWUoNjI0ODkpLnNvbWU7cih7dGFyZ2V0OiJBc3luY0l0ZXJhdG9yIixwcm90bzohMCxyZWFsOiEwfSx7c29tZTpmdW5jdGlvbihpKXtyZXR1cm4gbih0aGlzLGkpfX0pfSwxNDQ5NDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSgyMjYxNSksdD1lKDg1MDI3KSxpPWUoMjIzMDIpLHM9ZSg0NjU0KSxhPWUoMTU5MDQpLHU9ZSgxNzM5NCksYz1lKDI3ODA3KSxoPWUoNTM5MzEpLGQ9dShmdW5jdGlvbihtKXt2YXIgQz10aGlzLGc9Qy5pdGVyYXRvcix3O2lmKCFDLnJlbWFpbmluZy0tKXt2YXIgRT1jKHZvaWQgMCwhMCk7cmV0dXJuIEMuZG9uZT0hMCx3PWcucmV0dXJuLHchPT12b2lkIDA/bS5yZXNvbHZlKG4odyxnLHZvaWQgMCkpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gRX0pOkV9cmV0dXJuIG0ucmVzb2x2ZShuKEMubmV4dCxnKSkudGhlbihmdW5jdGlvbih4KXtyZXR1cm4gdCh4KS5kb25lPyhDLmRvbmU9ITAsYyh2b2lkIDAsITApKTpjKHgudmFsdWUsITEpfSkudGhlbihudWxsLGZ1bmN0aW9uKHgpe3Rocm93IEMuZG9uZT0hMCx4fSl9KTtyKHt0YXJnZXQ6IkFzeW5jSXRlcmF0b3IiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOmh9LHt0YWtlOmZ1bmN0aW9uKEMpe3QodGhpcyk7dmFyIGc9YShzKCtDKSk7cmV0dXJuIG5ldyBkKGkodGhpcykse3JlbWFpbmluZzpnfSl9fSl9LDk0Njg6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc5OTg5KSxuPWUoNjI0ODkpLnRvQXJyYXk7cih7dGFyZ2V0OiJBc3luY0l0ZXJhdG9yIixwcm90bzohMCxyZWFsOiEwfSx7dG9BcnJheTpmdW5jdGlvbigpe3JldHVybiBuKHRoaXMsdm9pZCAwLFtdKX19KX0sMjQ1ODc6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc5OTg5KSxuPWUoOTg1NTQpO3R5cGVvZiBCaWdJbnQ9PSJmdW5jdGlvbiImJnIoe3RhcmdldDoiQmlnSW50IixzdGF0OiEwLGZvcmNlZDohMH0se3JhbmdlOmZ1bmN0aW9uKGkscyxhKXtyZXR1cm4gbmV3IG4oaSxzLGEsImJpZ2ludCIsQmlnSW50KDApLEJpZ0ludCgxKSl9fSl9LDYwNzc5OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDYxNzM1KSx0PWUoNDE1NDQpLGk9ZSg3NjA1OCkscz1lKDI1MzkxKSxhPU9iamVjdCx1PWZ1bmN0aW9uKCl7dmFyIGM9aSgiT2JqZWN0IiwiZnJlZXplIik7cmV0dXJuIGM/YyhzKG51bGwpKTpzKG51bGwpfTtyKHtnbG9iYWw6ITAsZm9yY2VkOiEwfSx7Y29tcG9zaXRlS2V5OmZ1bmN0aW9uKCl7cmV0dXJuIG4odCxhLGFyZ3VtZW50cykuZ2V0KCJvYmplY3QiLHUpfX0pfSw2NTUwMzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSg0MTU0NCksdD1lKDc2MDU4KSxpPWUoNjE3MzUpO3Ioe2dsb2JhbDohMCxmb3JjZWQ6ITB9LHtjb21wb3NpdGVTeW1ib2w6ZnVuY3Rpb24oKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD09PTEmJnR5cGVvZiBhcmd1bWVudHNbMF09PSJzdHJpbmciP3QoIlN5bWJvbCIpLmZvcihhcmd1bWVudHNbMF0pOmkobixudWxsLGFyZ3VtZW50cykuZ2V0KCJzeW1ib2wiLHQoIlN5bWJvbCIpKX19KX0sNTAyMzY6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc5OTg5KSxuPWUoNjg4NDQpLHQ9ZSgxNTQ3NykudW5wYWNrLGk9bihEYXRhVmlldy5wcm90b3R5cGUuZ2V0VWludDE2KTtyKHt0YXJnZXQ6IkRhdGFWaWV3Iixwcm90bzohMH0se2dldEZsb2F0MTY6ZnVuY3Rpb24oYSl7dmFyIHU9aSh0aGlzLGEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTohMSk7cmV0dXJuIHQoW3UmMjU1LHU+PjgmMjU1XSwxMCl9fSl9LDg5MjQ2OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDY4ODQ0KSx0PW4oRGF0YVZpZXcucHJvdG90eXBlLmdldFVpbnQ4KTtyKHt0YXJnZXQ6IkRhdGFWaWV3Iixwcm90bzohMCxmb3JjZWQ6ITB9LHtnZXRVaW50OENsYW1wZWQ6ZnVuY3Rpb24ocyl7cmV0dXJuIHQodGhpcyxzKX19KX0sMzExODY6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc5OTg5KSxuPWUoNjg4NDQpLHQ9ZSg1MDkyNiksaT1lKDE5ODQyKSxzPWUoMTU0NzcpLnBhY2ssYT1lKDc2MDQzKSx1PVR5cGVFcnJvcixjPW4oRGF0YVZpZXcucHJvdG90eXBlLnNldFVpbnQxNik7cih7dGFyZ2V0OiJEYXRhVmlldyIscHJvdG86ITB9LHtzZXRGbG9hdDE2OmZ1bmN0aW9uKGQsbSl7aWYodCh0aGlzKSE9PSJEYXRhVmlldyIpdGhyb3cgbmV3IHUoIkluY29ycmVjdCByZWNlaXZlciIpO3ZhciBDPWkoZCksZz1zKGEobSksMTAsMik7cmV0dXJuIGModGhpcyxDLGdbMV08PDh8Z1swXSxhcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOiExKX19KX0sOTI3OTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSg2ODg0NCksdD1lKDUwOTI2KSxpPWUoMTk4NDIpLHM9ZSg4NzE5MSksYT1UeXBlRXJyb3IsdT1uKERhdGFWaWV3LnByb3RvdHlwZS5zZXRVaW50OCk7cih7dGFyZ2V0OiJEYXRhVmlldyIscHJvdG86ITAsZm9yY2VkOiEwfSx7c2V0VWludDhDbGFtcGVkOmZ1bmN0aW9uKGgsZCl7aWYodCh0aGlzKSE9PSJEYXRhVmlldyIpdGhyb3cgbmV3IGEoIkluY29ycmVjdCByZWNlaXZlciIpO3ZhciBtPWkoaCk7cmV0dXJuIHUodGhpcyxtLHMoZCkpfX0pfSwyNjcyNTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSg2NzY5NyksdD1lKDc2MDU4KSxpPWUoMTA1MDkpLHM9ZSg3NjcpLGE9ZSgxMTg4MCksdT1lKDYwNDUpLGM9ZSg2MjE0OCksaD1lKDQ0MjAxKSxkPWUoNjE4KSxtPWUoMjkxOTkpLEM9dCgiU3VwcHJlc3NlZEVycm9yIiksZz1SZWZlcmVuY2VFcnJvcix3PWgoImRpc3Bvc2UiKSxFPWgoInRvU3RyaW5nVGFnIikseD0iRGlzcG9zYWJsZVN0YWNrIixPPWQuc2V0LFQ9ZC5nZXR0ZXJGb3IoeCksUz0ic3luYy1kaXNwb3NlIixMPSJkaXNwb3NlZCIsST0icGVuZGluZyIsUj1mdW5jdGlvbihZKXt2YXIgZWU9VChZKTtpZihlZS5zdGF0ZT09PUwpdGhyb3cgbmV3IGcoeCsiIGFscmVhZHkgZGlzcG9zZWQiKTtyZXR1cm4gZWV9LHo9ZnVuY3Rpb24oKXtPKHModGhpcyxHKSx7dHlwZTp4LHN0YXRlOkksc3RhY2s6W119KSxufHwodGhpcy5kaXNwb3NlZD0hMSl9LEc9ei5wcm90b3R5cGU7dShHLHtkaXNwb3NlOmZ1bmN0aW9uKCl7dmFyIGVlPVQodGhpcyk7aWYoZWUuc3RhdGUhPT1MKXtlZS5zdGF0ZT1MLG58fCh0aGlzLmRpc3Bvc2VkPSEwKTtmb3IodmFyIEo9ZWUuc3RhY2ssbWU9Si5sZW5ndGgsdGU9ITEsbGU7bWU7KXt2YXIgY2U9SlstLW1lXTtKW21lXT1udWxsO3RyeXtjZSgpfWNhdGNoKFcpe3RlP2xlPW5ldyBDKFcsbGUpOih0ZT0hMCxsZT1XKX19aWYoZWUuc3RhY2s9bnVsbCx0ZSl0aHJvdyBsZX19LHVzZTpmdW5jdGlvbihlZSl7cmV0dXJuIG0oUih0aGlzKSxlZSxTKSxlZX0sYWRvcHQ6ZnVuY3Rpb24oZWUsSil7dmFyIG1lPVIodGhpcyk7cmV0dXJuIGkoSiksbShtZSx2b2lkIDAsUyxmdW5jdGlvbigpe0ooZWUpfSksZWV9LGRlZmVyOmZ1bmN0aW9uKGVlKXt2YXIgSj1SKHRoaXMpO2koZWUpLG0oSix2b2lkIDAsUyxlZSl9LG1vdmU6ZnVuY3Rpb24oKXt2YXIgZWU9Uih0aGlzKSxKPW5ldyB6O3JldHVybiBUKEopLnN0YWNrPWVlLnN0YWNrLGVlLnN0YWNrPVtdLGVlLnN0YXRlPUwsbnx8KHRoaXMuZGlzcG9zZWQ9ITApLEp9fSksbiYmYyhHLCJkaXNwb3NlZCIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gVCh0aGlzKS5zdGF0ZT09PUx9fSksYShHLHcsRy5kaXNwb3NlLHtuYW1lOiJkaXNwb3NlIn0pLGEoRyxFLHgse25vbldyaXRhYmxlOiEwfSkscih7Z2xvYmFsOiEwLGNvbnN0cnVjdG9yOiEwfSx7RGlzcG9zYWJsZVN0YWNrOnp9KX0sMjYxMjU6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc5OTg5KSxuPWUoMzM1MDUpO3Ioe3RhcmdldDoiRnVuY3Rpb24iLHByb3RvOiEwLGZvcmNlZDohMH0se2RlbWV0aG9kaXplOm59KX0sMjgyMDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSg2ODg0NCksdD1lKDY5OTg1KSxpPWUoNjczOCkscz1lKDM2ODEyKSxhPWUoNjc2OTcpLHU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixjPS9eXHMqY2xhc3NcYi8saD1uKGMuZXhlYyksZD1mdW5jdGlvbihtKXt0cnl7aWYoIWF8fCFoKGMsaShtKSkpcmV0dXJuITF9Y2F0Y2goZyl7fXZhciBDPXUobSwicHJvdG90eXBlIik7cmV0dXJuISFDJiZzKEMsIndyaXRhYmxlIikmJiFDLndyaXRhYmxlfTtyKHt0YXJnZXQ6IkZ1bmN0aW9uIixzdGF0OiEwLHNoYW06ITAsZm9yY2VkOiEwfSx7aXNDYWxsYWJsZTpmdW5jdGlvbihDKXtyZXR1cm4gdChDKSYmIWQoQyl9fSl9LDYyNTE3OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDE5NDI5KTtyKHt0YXJnZXQ6IkZ1bmN0aW9uIixzdGF0OiEwLGZvcmNlZDohMH0se2lzQ29uc3RydWN0b3I6bn0pfSw1NDk0NzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNDQyMDEpLG49ZSg3MjU2MCkuZix0PXIoIm1ldGFkYXRhIiksaT1GdW5jdGlvbi5wcm90b3R5cGU7aVt0XT09PXZvaWQgMCYmbihpLHQse3ZhbHVlOm51bGx9KX0sNzQ5OTM6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc5OTg5KSxuPWUoMzM1MDUpO3Ioe3RhcmdldDoiRnVuY3Rpb24iLHByb3RvOiEwLGZvcmNlZDohMCxuYW1lOiJkZW1ldGhvZGl6ZSJ9LHt1blRoaXM6bn0pfSw1MDY0NzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSg0NzA4Mik7cih7dGFyZ2V0OiJJdGVyYXRvciIsbmFtZToiaW5kZXhlZCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6ITB9LHthc0luZGV4ZWRQYWlyczpufSl9LDY3NjAyOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDE5MDM3KSx0PWUoNzY3KSxpPWUoODUwMjcpLHM9ZSg2OTk4NSksYT1lKDYxODY4KSx1PWUoNjIxNDgpLGM9ZSg3NjUyMiksaD1lKDM2ODkpLGQ9ZSgzNjgxMiksbT1lKDQ0MjAxKSxDPWUoMTIwMTMpLkl0ZXJhdG9yUHJvdG90eXBlLGc9ZSg2NzY5Nyksdz1lKDUzOTMxKSxFPSJjb25zdHJ1Y3RvciIseD0iSXRlcmF0b3IiLE89bSgidG9TdHJpbmdUYWciKSxUPVR5cGVFcnJvcixTPW5beF0sTD13fHwhcyhTKXx8Uy5wcm90b3R5cGUhPT1DfHwhaChmdW5jdGlvbigpe1Moe30pfSksST1mdW5jdGlvbigpe2lmKHQodGhpcyxDKSxhKHRoaXMpPT09Qyl0aHJvdyBuZXcgVCgiQWJzdHJhY3QgY2xhc3MgSXRlcmF0b3Igbm90IGRpcmVjdGx5IGNvbnN0cnVjdGFibGUiKX0sUj1mdW5jdGlvbih6LEcpe2c/dShDLHose2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gR30sc2V0OmZ1bmN0aW9uKFkpe2lmKGkodGhpcyksdGhpcz09PUMpdGhyb3cgbmV3IFQoIllvdSBjYW4ndCByZWRlZmluZSB0aGlzIHByb3BlcnR5Iik7ZCh0aGlzLHopP3RoaXNbel09WTpjKHRoaXMseixZKX19KTpDW3pdPUd9O2QoQyxPKXx8UihPLHgpLChMfHwhZChDLEUpfHxDW0VdPT09T2JqZWN0KSYmUihFLEkpLEkucHJvdG90eXBlPUMscih7Z2xvYmFsOiEwLGNvbnN0cnVjdG9yOiEwLGZvcmNlZDpMfSx7SXRlcmF0b3I6SX0pfSw4MjYzOTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoMjI2MTUpLG49ZSgxMTg4MCksdD1lKDU0ODQ5KSxpPWUoMzY4MTIpLHM9ZSg0NDIwMSksYT1lKDEyMDEzKS5JdGVyYXRvclByb3RvdHlwZSx1PXMoImRpc3Bvc2UiKTtpKGEsdSl8fG4oYSx1LGZ1bmN0aW9uKCl7dmFyIGM9dCh0aGlzLCJyZXR1cm4iKTtjJiZyKGMsdGhpcyl9KX0sNjM5ODY6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc5OTg5KSxuPWUoMjI2MTUpLHQ9ZSg4NTAyNyksaT1lKDIyMzAyKSxzPWUoNDY1NCksYT1lKDE1OTA0KSx1PWUoNjU0MTkpLGM9ZSg1MzkzMSksaD11KGZ1bmN0aW9uKCl7Zm9yKHZhciBkPXRoaXMuaXRlcmF0b3IsbT10aGlzLm5leHQsQyxnO3RoaXMucmVtYWluaW5nOylpZih0aGlzLnJlbWFpbmluZy0tLEM9dChuKG0sZCkpLGc9dGhpcy5kb25lPSEhQy5kb25lLGcpcmV0dXJuO2lmKEM9dChuKG0sZCkpLGc9dGhpcy5kb25lPSEhQy5kb25lLCFnKXJldHVybiBDLnZhbHVlfSk7cih7dGFyZ2V0OiJJdGVyYXRvciIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6Y30se2Ryb3A6ZnVuY3Rpb24obSl7dCh0aGlzKTt2YXIgQz1hKHMoK20pKTtyZXR1cm4gbmV3IGgoaSh0aGlzKSx7cmVtYWluaW5nOkN9KX19KX0sMTYwNTQ6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc5OTg5KSxuPWUoMTg3MzQpLHQ9ZSgxMDUwOSksaT1lKDg1MDI3KSxzPWUoMjIzMDIpO3Ioe3RhcmdldDoiSXRlcmF0b3IiLHByb3RvOiEwLHJlYWw6ITB9LHtldmVyeTpmdW5jdGlvbih1KXtpKHRoaXMpLHQodSk7dmFyIGM9cyh0aGlzKSxoPTA7cmV0dXJuIW4oYyxmdW5jdGlvbihkLG0pe2lmKCF1KGQsaCsrKSlyZXR1cm4gbSgpfSx7SVNfUkVDT1JEOiEwLElOVEVSUlVQVEVEOiEwfSkuc3RvcHBlZH19KX0sNTM0NzY6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc5OTg5KSxuPWUoMjI2MTUpLHQ9ZSgxMDUwOSksaT1lKDg1MDI3KSxzPWUoMjIzMDIpLGE9ZSg2NTQxOSksdT1lKDcxMjI4KSxjPWUoNTM5MzEpLGg9YShmdW5jdGlvbigpe2Zvcih2YXIgZD10aGlzLml0ZXJhdG9yLG09dGhpcy5wcmVkaWNhdGUsQz10aGlzLm5leHQsZyx3LEU7Oyl7aWYoZz1pKG4oQyxkKSksdz10aGlzLmRvbmU9ISFnLmRvbmUsdylyZXR1cm47aWYoRT1nLnZhbHVlLHUoZCxtLFtFLHRoaXMuY291bnRlcisrXSwhMCkpcmV0dXJuIEV9fSk7cih7dGFyZ2V0OiJJdGVyYXRvciIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6Y30se2ZpbHRlcjpmdW5jdGlvbihtKXtyZXR1cm4gaSh0aGlzKSx0KG0pLG5ldyBoKHModGhpcykse3ByZWRpY2F0ZTptfSl9fSl9LDcwOTI4OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDE4NzM0KSx0PWUoMTA1MDkpLGk9ZSg4NTAyNykscz1lKDIyMzAyKTtyKHt0YXJnZXQ6Ikl0ZXJhdG9yIixwcm90bzohMCxyZWFsOiEwfSx7ZmluZDpmdW5jdGlvbih1KXtpKHRoaXMpLHQodSk7dmFyIGM9cyh0aGlzKSxoPTA7cmV0dXJuIG4oYyxmdW5jdGlvbihkLG0pe2lmKHUoZCxoKyspKXJldHVybiBtKGQpfSx7SVNfUkVDT1JEOiEwLElOVEVSUlVQVEVEOiEwfSkucmVzdWx0fX0pfSw0OTQxMTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSgyMjYxNSksdD1lKDEwNTA5KSxpPWUoODUwMjcpLHM9ZSgyMjMwMiksYT1lKDM2NzUyKSx1PWUoNjU0MTkpLGM9ZSg3MjEyNSksaD1lKDUzOTMxKSxkPXUoZnVuY3Rpb24oKXtmb3IodmFyIG09dGhpcy5pdGVyYXRvcixDPXRoaXMubWFwcGVyLGcsdzs7KXtpZih3PXRoaXMuaW5uZXIpdHJ5e2lmKGc9aShuKHcubmV4dCx3Lml0ZXJhdG9yKSksIWcuZG9uZSlyZXR1cm4gZy52YWx1ZTt0aGlzLmlubmVyPW51bGx9Y2F0Y2goRSl7YyhtLCJ0aHJvdyIsRSl9aWYoZz1pKG4odGhpcy5uZXh0LG0pKSx0aGlzLmRvbmU9ISFnLmRvbmUpcmV0dXJuO3RyeXt0aGlzLmlubmVyPWEoQyhnLnZhbHVlLHRoaXMuY291bnRlcisrKSwhMSl9Y2F0Y2goRSl7YyhtLCJ0aHJvdyIsRSl9fX0pO3Ioe3RhcmdldDoiSXRlcmF0b3IiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOmh9LHtmbGF0TWFwOmZ1bmN0aW9uKEMpe3JldHVybiBpKHRoaXMpLHQoQyksbmV3IGQocyh0aGlzKSx7bWFwcGVyOkMsaW5uZXI6bnVsbH0pfX0pfSwzMDAwNTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSgxODczNCksdD1lKDEwNTA5KSxpPWUoODUwMjcpLHM9ZSgyMjMwMik7cih7dGFyZ2V0OiJJdGVyYXRvciIscHJvdG86ITAscmVhbDohMH0se2ZvckVhY2g6ZnVuY3Rpb24odSl7aSh0aGlzKSx0KHUpO3ZhciBjPXModGhpcyksaD0wO24oYyxmdW5jdGlvbihkKXt1KGQsaCsrKX0se0lTX1JFQ09SRDohMH0pfX0pfSw3MzQ5NDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSgyMjYxNSksdD1lKDkwNjkwKSxpPWUoMjM2MjIpLHM9ZSgxMjAxMykuSXRlcmF0b3JQcm90b3R5cGUsYT1lKDY1NDE5KSx1PWUoMzY3NTIpLGM9ZSg1MzkzMSksaD1hKGZ1bmN0aW9uKCl7cmV0dXJuIG4odGhpcy5uZXh0LHRoaXMuaXRlcmF0b3IpfSwhMCk7cih7dGFyZ2V0OiJJdGVyYXRvciIsc3RhdDohMCxmb3JjZWQ6Y30se2Zyb206ZnVuY3Rpb24obSl7dmFyIEM9dSh0eXBlb2YgbT09InN0cmluZyI/dChtKTptLCEwKTtyZXR1cm4gaShzLEMuaXRlcmF0b3IpP0MuaXRlcmF0b3I6bmV3IGgoQyl9fSl9LDk0NTY0OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDQ3MDgyKTtyKHt0YXJnZXQ6Ikl0ZXJhdG9yIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohMH0se2luZGV4ZWQ6bn0pfSw0MTc5MjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSg4ODk4MyksdD1lKDUzOTMxKTtyKHt0YXJnZXQ6Ikl0ZXJhdG9yIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDp0fSx7bWFwOm59KX0sNTk4NTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSg5ODU1NCksdD1UeXBlRXJyb3I7cih7dGFyZ2V0OiJJdGVyYXRvciIsc3RhdDohMCxmb3JjZWQ6ITB9LHtyYW5nZTpmdW5jdGlvbihzLGEsdSl7aWYodHlwZW9mIHM9PSJudW1iZXIiKXJldHVybiBuZXcgbihzLGEsdSwibnVtYmVyIiwwLDEpO2lmKHR5cGVvZiBzPT0iYmlnaW50IilyZXR1cm4gbmV3IG4ocyxhLHUsImJpZ2ludCIsQmlnSW50KDApLEJpZ0ludCgxKSk7dGhyb3cgbmV3IHQoIkluY29ycmVjdCBJdGVyYXRvci5yYW5nZSBhcmd1bWVudHMiKX19KX0sMzExMDc6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc5OTg5KSxuPWUoMTg3MzQpLHQ9ZSgxMDUwOSksaT1lKDg1MDI3KSxzPWUoMjIzMDIpLGE9VHlwZUVycm9yO3Ioe3RhcmdldDoiSXRlcmF0b3IiLHByb3RvOiEwLHJlYWw6ITB9LHtyZWR1Y2U6ZnVuY3Rpb24oYyl7aSh0aGlzKSx0KGMpO3ZhciBoPXModGhpcyksZD1hcmd1bWVudHMubGVuZ3RoPDIsbT1kP3ZvaWQgMDphcmd1bWVudHNbMV0sQz0wO2lmKG4oaCxmdW5jdGlvbihnKXtkPyhkPSExLG09Zyk6bT1jKG0sZyxDKSxDKyt9LHtJU19SRUNPUkQ6ITB9KSxkKXRocm93IG5ldyBhKCJSZWR1Y2Ugb2YgZW1wdHkgaXRlcmF0b3Igd2l0aCBubyBpbml0aWFsIHZhbHVlIik7cmV0dXJuIG19fSl9LDI4MjQ0OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDE4NzM0KSx0PWUoMTA1MDkpLGk9ZSg4NTAyNykscz1lKDIyMzAyKTtyKHt0YXJnZXQ6Ikl0ZXJhdG9yIixwcm90bzohMCxyZWFsOiEwfSx7c29tZTpmdW5jdGlvbih1KXtpKHRoaXMpLHQodSk7dmFyIGM9cyh0aGlzKSxoPTA7cmV0dXJuIG4oYyxmdW5jdGlvbihkLG0pe2lmKHUoZCxoKyspKXJldHVybiBtKCl9LHtJU19SRUNPUkQ6ITAsSU5URVJSVVBURUQ6ITB9KS5zdG9wcGVkfX0pfSwzNjQ1OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDIyNjE1KSx0PWUoODUwMjcpLGk9ZSgyMjMwMikscz1lKDQ2NTQpLGE9ZSgxNTkwNCksdT1lKDY1NDE5KSxjPWUoNzIxMjUpLGg9ZSg1MzkzMSksZD11KGZ1bmN0aW9uKCl7dmFyIG09dGhpcy5pdGVyYXRvcjtpZighdGhpcy5yZW1haW5pbmctLSlyZXR1cm4gdGhpcy5kb25lPSEwLGMobSwibm9ybWFsIix2b2lkIDApO3ZhciBDPXQobih0aGlzLm5leHQsbSkpLGc9dGhpcy5kb25lPSEhQy5kb25lO2lmKCFnKXJldHVybiBDLnZhbHVlfSk7cih7dGFyZ2V0OiJJdGVyYXRvciIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6aH0se3Rha2U6ZnVuY3Rpb24oQyl7dCh0aGlzKTt2YXIgZz1hKHMoK0MpKTtyZXR1cm4gbmV3IGQoaSh0aGlzKSx7cmVtYWluaW5nOmd9KX19KX0sNTg0Mjk6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc5OTg5KSxuPWUoODUwMjcpLHQ9ZSgxODczNCksaT1lKDIyMzAyKSxzPVtdLnB1c2g7cih7dGFyZ2V0OiJJdGVyYXRvciIscHJvdG86ITAscmVhbDohMH0se3RvQXJyYXk6ZnVuY3Rpb24oKXt2YXIgdT1bXTtyZXR1cm4gdChpKG4odGhpcykpLHMse3RoYXQ6dSxJU19SRUNPUkQ6ITB9KSx1fX0pfSwzOTU2OTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSg4NTAyNyksdD1lKDI5MDE5KSxpPWUoNDAyMTkpLHM9ZSgyMjMwMiksYT1lKDUzOTMxKTtyKHt0YXJnZXQ6Ikl0ZXJhdG9yIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDphfSx7dG9Bc3luYzpmdW5jdGlvbigpe3JldHVybiBuZXcgaShzKG5ldyB0KHMobih0aGlzKSkpKSl9fSl9LDc0MzIwOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDIyODE4KSx0PWUoNTU2NzApO3Ioe3RhcmdldDoiSlNPTiIsc3RhdDohMCxmb3JjZWQ6IW59LHtpc1Jhd0pTT046dH0pfSwyMDY5MTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSg2NzY5NyksdD1lKDE5MDM3KSxpPWUoNzYwNTgpLHM9ZSg2ODg0NCksYT1lKDIyNjE1KSx1PWUoNjk5ODUpLGM9ZSg0ODk5OSksaD1lKDkyMjk3KSxkPWUoMzY4MTIpLG09ZSgzNDMyNyksQz1lKDYzMTApLGc9ZSg3NjUyMiksdz1lKDM2ODkpLEU9ZSg0NjY3NSkseD1lKDUwMTQ2KSxPPXQuSlNPTixUPXQuTnVtYmVyLFM9dC5TeW50YXhFcnJvcixMPU8mJk8ucGFyc2UsST1pKCJPYmplY3QiLCJrZXlzIiksUj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLHo9cygiIi5jaGFyQXQpLEc9cygiIi5zbGljZSksWT1zKC8uLy5leGVjKSxlZT1zKFtdLnB1c2gpLEo9L15cZCQvLG1lPS9eWzEtOV0kLyx0ZT0vXig/Oi18XGQpJC8sbGU9L15bXHRcblxyIF0kLyxjZT0wLFc9MSxqPWZ1bmN0aW9uKG5lLG9lKXtuZT1tKG5lKTt2YXIgZmU9bmV3IFAobmUsMCwiIiksRWU9ZmUucGFyc2UoKSxSZT1FZS52YWx1ZSxCZT1mZS5za2lwKGxlLEVlLmVuZCk7aWYoQmU8bmUubGVuZ3RoKXRocm93IG5ldyBTKCdVbmV4cGVjdGVkIGV4dHJhIGNoYXJhY3RlcjogIicreihuZSxCZSkrJyIgYWZ0ZXIgdGhlIHBhcnNlZCBkYXRhIGF0OiAnK0JlKTtyZXR1cm4gdShvZSk/RCh7IiI6UmV9LCIiLG9lLEVlKTpSZX0sRD1mdW5jdGlvbihuZSxvZSxmZSxFZSl7dmFyIFJlPW5lW29lXSxCZT1FZSYmUmU9PT1FZS52YWx1ZSxZZT1CZSYmdHlwZW9mIEVlLnNvdXJjZT09InN0cmluZyI/e3NvdXJjZTpFZS5zb3VyY2V9Ont9LG90LHFlLF9lLEZlLFNlO2lmKGMoUmUpKXt2YXIgcT1oKFJlKSxrPUJlP0VlLm5vZGVzOnE/W106e307aWYocSlmb3Iob3Q9ay5sZW5ndGgsX2U9QyhSZSksRmU9MDtGZTxfZTtGZSsrKVYoUmUsRmUsRChSZSwiIitGZSxmZSxGZTxvdD9rW0ZlXTp2b2lkIDApKTtlbHNlIGZvcihxZT1JKFJlKSxfZT1DKHFlKSxGZT0wO0ZlPF9lO0ZlKyspU2U9cWVbRmVdLFYoUmUsU2UsRChSZSxTZSxmZSxkKGssU2UpP2tbU2VdOnZvaWQgMCkpfXJldHVybiBhKGZlLG5lLG9lLFJlLFllKX0sVj1mdW5jdGlvbihuZSxvZSxmZSl7aWYobil7dmFyIEVlPVIobmUsb2UpO2lmKEVlJiYhRWUuY29uZmlndXJhYmxlKXJldHVybn1mZT09PXZvaWQgMD9kZWxldGUgbmVbb2VdOmcobmUsb2UsZmUpfSxaPWZ1bmN0aW9uKG5lLG9lLGZlLEVlKXt0aGlzLnZhbHVlPW5lLHRoaXMuZW5kPW9lLHRoaXMuc291cmNlPWZlLHRoaXMubm9kZXM9RWV9LFA9ZnVuY3Rpb24obmUsb2Upe3RoaXMuc291cmNlPW5lLHRoaXMuaW5kZXg9b2V9O1AucHJvdG90eXBlPXtmb3JrOmZ1bmN0aW9uKG5lKXtyZXR1cm4gbmV3IFAodGhpcy5zb3VyY2UsbmUpfSxwYXJzZTpmdW5jdGlvbigpe3ZhciBuZT10aGlzLnNvdXJjZSxvZT10aGlzLnNraXAobGUsdGhpcy5pbmRleCksZmU9dGhpcy5mb3JrKG9lKSxFZT16KG5lLG9lKTtpZihZKHRlLEVlKSlyZXR1cm4gZmUubnVtYmVyKCk7c3dpdGNoKEVlKXtjYXNlInsiOnJldHVybiBmZS5vYmplY3QoKTtjYXNlIlsiOnJldHVybiBmZS5hcnJheSgpO2Nhc2UnIic6cmV0dXJuIGZlLnN0cmluZygpO2Nhc2UidCI6cmV0dXJuIGZlLmtleXdvcmQoITApO2Nhc2UiZiI6cmV0dXJuIGZlLmtleXdvcmQoITEpO2Nhc2UibiI6cmV0dXJuIGZlLmtleXdvcmQobnVsbCl9dGhyb3cgbmV3IFMoJ1VuZXhwZWN0ZWQgY2hhcmFjdGVyOiAiJytFZSsnIiBhdDogJytvZSl9LG5vZGU6ZnVuY3Rpb24obmUsb2UsZmUsRWUsUmUpe3JldHVybiBuZXcgWihvZSxFZSxuZT9udWxsOkcodGhpcy5zb3VyY2UsZmUsRWUpLFJlKX0sb2JqZWN0OmZ1bmN0aW9uKCl7Zm9yKHZhciBuZT10aGlzLnNvdXJjZSxvZT10aGlzLmluZGV4KzEsZmU9ITEsRWU9e30sUmU9e307b2U8bmUubGVuZ3RoOyl7aWYob2U9dGhpcy51bnRpbChbJyInLCJ9Il0sb2UpLHoobmUsb2UpPT09In0iJiYhZmUpe29lKys7YnJlYWt9dmFyIEJlPXRoaXMuZm9yayhvZSkuc3RyaW5nKCksWWU9QmUudmFsdWU7b2U9QmUuZW5kLG9lPXRoaXMudW50aWwoWyI6Il0sb2UpKzEsb2U9dGhpcy5za2lwKGxlLG9lKSxCZT10aGlzLmZvcmsob2UpLnBhcnNlKCksZyhSZSxZZSxCZSksZyhFZSxZZSxCZS52YWx1ZSksb2U9dGhpcy51bnRpbChbIiwiLCJ9Il0sQmUuZW5kKTt2YXIgb3Q9eihuZSxvZSk7aWYob3Q9PT0iLCIpZmU9ITAsb2UrKztlbHNlIGlmKG90PT09In0iKXtvZSsrO2JyZWFrfX1yZXR1cm4gdGhpcy5ub2RlKFcsRWUsdGhpcy5pbmRleCxvZSxSZSl9LGFycmF5OmZ1bmN0aW9uKCl7Zm9yKHZhciBuZT10aGlzLnNvdXJjZSxvZT10aGlzLmluZGV4KzEsZmU9ITEsRWU9W10sUmU9W107b2U8bmUubGVuZ3RoOyl7aWYob2U9dGhpcy5za2lwKGxlLG9lKSx6KG5lLG9lKT09PSJdIiYmIWZlKXtvZSsrO2JyZWFrfXZhciBCZT10aGlzLmZvcmsob2UpLnBhcnNlKCk7aWYoZWUoUmUsQmUpLGVlKEVlLEJlLnZhbHVlKSxvZT10aGlzLnVudGlsKFsiLCIsIl0iXSxCZS5lbmQpLHoobmUsb2UpPT09IiwiKWZlPSEwLG9lKys7ZWxzZSBpZih6KG5lLG9lKT09PSJdIil7b2UrKzticmVha319cmV0dXJuIHRoaXMubm9kZShXLEVlLHRoaXMuaW5kZXgsb2UsUmUpfSxzdHJpbmc6ZnVuY3Rpb24oKXt2YXIgbmU9dGhpcy5pbmRleCxvZT1FKHRoaXMuc291cmNlLHRoaXMuaW5kZXgrMSk7cmV0dXJuIHRoaXMubm9kZShjZSxvZS52YWx1ZSxuZSxvZS5lbmQpfSxudW1iZXI6ZnVuY3Rpb24oKXt2YXIgbmU9dGhpcy5zb3VyY2Usb2U9dGhpcy5pbmRleCxmZT1vZTtpZih6KG5lLGZlKT09PSItIiYmZmUrKyx6KG5lLGZlKT09PSIwIilmZSsrO2Vsc2UgaWYoWShtZSx6KG5lLGZlKSkpZmU9dGhpcy5za2lwKEosKytmZSk7ZWxzZSB0aHJvdyBuZXcgUygiRmFpbGVkIHRvIHBhcnNlIG51bWJlciBhdDogIitmZSk7aWYoeihuZSxmZSk9PT0iLiImJihmZT10aGlzLnNraXAoSiwrK2ZlKSkseihuZSxmZSk9PT0iZSJ8fHoobmUsZmUpPT09IkUiKXtmZSsrLCh6KG5lLGZlKT09PSIrInx8eihuZSxmZSk9PT0iLSIpJiZmZSsrO3ZhciBFZT1mZTtpZihmZT10aGlzLnNraXAoSixmZSksRWU9PT1mZSl0aHJvdyBuZXcgUygiRmFpbGVkIHRvIHBhcnNlIG51bWJlcidzIGV4cG9uZW50IHZhbHVlIGF0OiAiK2ZlKX1yZXR1cm4gdGhpcy5ub2RlKGNlLFQoRyhuZSxvZSxmZSkpLG9lLGZlKX0sa2V5d29yZDpmdW5jdGlvbihuZSl7dmFyIG9lPSIiK25lLGZlPXRoaXMuaW5kZXgsRWU9ZmUrb2UubGVuZ3RoO2lmKEcodGhpcy5zb3VyY2UsZmUsRWUpIT09b2UpdGhyb3cgbmV3IFMoIkZhaWxlZCB0byBwYXJzZSB2YWx1ZSBhdDogIitmZSk7cmV0dXJuIHRoaXMubm9kZShjZSxuZSxmZSxFZSl9LHNraXA6ZnVuY3Rpb24obmUsb2Upe2Zvcih2YXIgZmU9dGhpcy5zb3VyY2U7b2U8ZmUubGVuZ3RoJiZZKG5lLHooZmUsb2UpKTtvZSsrKTtyZXR1cm4gb2V9LHVudGlsOmZ1bmN0aW9uKG5lLG9lKXtvZT10aGlzLnNraXAobGUsb2UpO2Zvcih2YXIgZmU9eih0aGlzLnNvdXJjZSxvZSksRWU9MDtFZTxuZS5sZW5ndGg7RWUrKylpZihuZVtFZV09PT1mZSlyZXR1cm4gb2U7dGhyb3cgbmV3IFMoJ1VuZXhwZWN0ZWQgY2hhcmFjdGVyOiAiJytmZSsnIiBhdDogJytvZSl9fTt2YXIgSz13KGZ1bmN0aW9uKCl7dmFyIG5lPSI5MDA3MTk5MjU0NzQwOTkzIixvZTtyZXR1cm4gTChuZSxmdW5jdGlvbihmZSxFZSxSZSl7b2U9UmUuc291cmNlfSksb2UhPT1uZX0pLHNlPXgmJiF3KGZ1bmN0aW9uKCl7cmV0dXJuIDEvTCgiLTAgCSIpIT09LTEvMH0pO3Ioe3RhcmdldDoiSlNPTiIsc3RhdDohMCxmb3JjZWQ6S30se3BhcnNlOmZ1bmN0aW9uKG9lLGZlKXtyZXR1cm4gc2UmJiF1KGZlKT9MKG9lKTpqKG9lLGZlKX19KX0sODI5NjQ6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc5OTg5KSxuPWUoNzE1OTQpLHQ9ZSgyMjgxOCksaT1lKDc2MDU4KSxzPWUoMjI2MTUpLGE9ZSg2ODg0NCksdT1lKDY5OTg1KSxjPWUoNTU2NzApLGg9ZSgzNDMyNyksZD1lKDc2NTIyKSxtPWUoNDY2NzUpLEM9ZSg5MjY0MyksZz1lKDE0NjMwKSx3PWUoNjE4KS5zZXQsRT1TdHJpbmcseD1TeW50YXhFcnJvcixPPWkoIkpTT04iLCJwYXJzZSIpLFQ9aSgiSlNPTiIsInN0cmluZ2lmeSIpLFM9aSgiT2JqZWN0IiwiY3JlYXRlIiksTD1pKCJPYmplY3QiLCJmcmVlemUiKSxJPWEoIiIuY2hhckF0KSxSPWEoIiIuc2xpY2UpLHo9YSgvLi8uZXhlYyksRz1hKFtdLnB1c2gpLFk9ZygpLGVlPVkubGVuZ3RoLEo9IlVuYWNjZXB0YWJsZSBhcyByYXcgSlNPTiIsbWU9L15bXHRcblxyIF0kLztyKHt0YXJnZXQ6IkpTT04iLHN0YXQ6ITAsZm9yY2VkOiF0fSx7cmF3SlNPTjpmdW5jdGlvbihsZSl7dmFyIGNlPWgobGUpO2lmKGNlPT09IiJ8fHoobWUsSShjZSwwKSl8fHoobWUsSShjZSxjZS5sZW5ndGgtMSkpKXRocm93IG5ldyB4KEopO3ZhciBXPU8oY2UpO2lmKHR5cGVvZiBXPT0ib2JqZWN0IiYmVyE9PW51bGwpdGhyb3cgbmV3IHgoSik7dmFyIGo9UyhudWxsKTtyZXR1cm4gdyhqLHt0eXBlOiJSYXdKU09OIn0pLGQoaiwicmF3SlNPTiIsY2UpLG4/TChqKTpqfX0pLFQmJnIoe3RhcmdldDoiSlNPTiIsc3RhdDohMCxhcml0eTozLGZvcmNlZDohdH0se3N0cmluZ2lmeTpmdW5jdGlvbihsZSxjZSxXKXt2YXIgaj1DKGNlKSxEPVtdLFY9VChsZSxmdW5jdGlvbihmZSxFZSl7dmFyIFJlPXUoaik/cyhqLHRoaXMsRShmZSksRWUpOkVlO3JldHVybiBjKFJlKT9ZKyhHKEQsUmUucmF3SlNPTiktMSk6UmV9LFcpO2lmKHR5cGVvZiBWIT0ic3RyaW5nIilyZXR1cm4gVjtmb3IodmFyIFo9IiIsUD1WLmxlbmd0aCxLPTA7SzxQO0srKyl7dmFyIHNlPUkoVixLKTtpZihzZT09PSciJyl7dmFyIG5lPW0oViwrK0spLmVuZC0xLG9lPVIoVixLLG5lKTtaKz1SKG9lLDAsZWUpPT09WT9EW1Iob2UsZWUpXTonIicrb2UrJyInLEs9bmV9ZWxzZSBaKz1zZX1yZXR1cm4gWn19KX0sNjc0NDQ6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc5OTg5KSxuPWUoOTk0NSksdD1lKDgzOTE0KS5yZW1vdmU7cih7dGFyZ2V0OiJNYXAiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiEwfSx7ZGVsZXRlQWxsOmZ1bmN0aW9uKCl7Zm9yKHZhciBzPW4odGhpcyksYT0hMCx1LGM9MCxoPWFyZ3VtZW50cy5sZW5ndGg7YzxoO2MrKyl1PXQocyxhcmd1bWVudHNbY10pLGE9YSYmdTtyZXR1cm4hIWF9fSl9LDk3OTY4OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDk5NDUpLHQ9ZSg4MzkxNCksaT10LmdldCxzPXQuaGFzLGE9dC5zZXQ7cih7dGFyZ2V0OiJNYXAiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiEwfSx7ZW1wbGFjZTpmdW5jdGlvbihjLGgpe3ZhciBkPW4odGhpcyksbSxDO3JldHVybiBzKGQsYyk/KG09aShkLGMpLCJ1cGRhdGUiaW4gaCYmKG09aC51cGRhdGUobSxjLGQpLGEoZCxjLG0pKSxtKTooQz1oLmluc2VydChjLGQpLGEoZCxjLEMpLEMpfX0pfSw3NDc6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc5OTg5KSxuPWUoNTQwNzEpLHQ9ZSg5OTQ1KSxpPWUoMTA2MTMpO3Ioe3RhcmdldDoiTWFwIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohMH0se2V2ZXJ5OmZ1bmN0aW9uKGEpe3ZhciB1PXQodGhpcyksYz1uKGEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApO3JldHVybiBpKHUsZnVuY3Rpb24oaCxkKXtpZighYyhoLGQsdSkpcmV0dXJuITF9LCEwKSE9PSExfX0pfSw0MTA5OTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSg1NDA3MSksdD1lKDk5NDUpLGk9ZSg4MzkxNCkscz1lKDEwNjEzKSxhPWkuTWFwLHU9aS5zZXQ7cih7dGFyZ2V0OiJNYXAiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiEwfSx7ZmlsdGVyOmZ1bmN0aW9uKGgpe3ZhciBkPXQodGhpcyksbT1uKGgsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApLEM9bmV3IGE7cmV0dXJuIHMoZCxmdW5jdGlvbihnLHcpe20oZyx3LGQpJiZ1KEMsdyxnKX0pLEN9fSl9LDIwODc2OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDU0MDcxKSx0PWUoOTk0NSksaT1lKDEwNjEzKTtyKHt0YXJnZXQ6Ik1hcCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6ITB9LHtmaW5kS2V5OmZ1bmN0aW9uKGEpe3ZhciB1PXQodGhpcyksYz1uKGEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApLGg9aSh1LGZ1bmN0aW9uKGQsbSl7aWYoYyhkLG0sdSkpcmV0dXJue2tleTptfX0sITApO3JldHVybiBoJiZoLmtleX19KX0sMjYzMjA6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc5OTg5KSxuPWUoNTQwNzEpLHQ9ZSg5OTQ1KSxpPWUoMTA2MTMpO3Ioe3RhcmdldDoiTWFwIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohMH0se2ZpbmQ6ZnVuY3Rpb24oYSl7dmFyIHU9dCh0aGlzKSxjPW4oYSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCksaD1pKHUsZnVuY3Rpb24oZCxtKXtpZihjKGQsbSx1KSlyZXR1cm57dmFsdWU6ZH19LCEwKTtyZXR1cm4gaCYmaC52YWx1ZX19KX0sNjA1MjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSgyODczNyk7cih7dGFyZ2V0OiJNYXAiLHN0YXQ6ITAsZm9yY2VkOiEwfSx7ZnJvbTpufSl9LDc2NzkxOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDY4NjAwKSx0PWUoOTk0NSksaT1lKDEwNjEzKTtyKHt0YXJnZXQ6Ik1hcCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6ITB9LHtpbmNsdWRlczpmdW5jdGlvbihhKXtyZXR1cm4gaSh0KHRoaXMpLGZ1bmN0aW9uKHUpe2lmKG4odSxhKSlyZXR1cm4hMH0sITApPT09ITB9fSl9LDc1MzQxOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDIyNjE1KSx0PWUoMTg3MzQpLGk9ZSg2OTk4NSkscz1lKDEwNTA5KSxhPWUoODM5MTQpLk1hcDtyKHt0YXJnZXQ6Ik1hcCIsc3RhdDohMCxmb3JjZWQ6ITB9LHtrZXlCeTpmdW5jdGlvbihjLGgpe3ZhciBkPWkodGhpcyk/dGhpczphLG09bmV3IGQ7cyhoKTt2YXIgQz1zKG0uc2V0KTtyZXR1cm4gdChjLGZ1bmN0aW9uKGcpe24oQyxtLGgoZyksZyl9KSxtfX0pfSw0MDAxOTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSg5OTQ1KSx0PWUoMTA2MTMpO3Ioe3RhcmdldDoiTWFwIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohMH0se2tleU9mOmZ1bmN0aW9uKHMpe3ZhciBhPXQobih0aGlzKSxmdW5jdGlvbih1LGMpe2lmKHU9PT1zKXJldHVybntrZXk6Y319LCEwKTtyZXR1cm4gYSYmYS5rZXl9fSl9LDkyMzQzOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDU0MDcxKSx0PWUoOTk0NSksaT1lKDgzOTE0KSxzPWUoMTA2MTMpLGE9aS5NYXAsdT1pLnNldDtyKHt0YXJnZXQ6Ik1hcCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6ITB9LHttYXBLZXlzOmZ1bmN0aW9uKGgpe3ZhciBkPXQodGhpcyksbT1uKGgsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApLEM9bmV3IGE7cmV0dXJuIHMoZCxmdW5jdGlvbihnLHcpe3UoQyxtKGcsdyxkKSxnKX0pLEN9fSl9LDUxMDk2OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDU0MDcxKSx0PWUoOTk0NSksaT1lKDgzOTE0KSxzPWUoMTA2MTMpLGE9aS5NYXAsdT1pLnNldDtyKHt0YXJnZXQ6Ik1hcCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6ITB9LHttYXBWYWx1ZXM6ZnVuY3Rpb24oaCl7dmFyIGQ9dCh0aGlzKSxtPW4oaCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCksQz1uZXcgYTtyZXR1cm4gcyhkLGZ1bmN0aW9uKGcsdyl7dShDLHcsbShnLHcsZCkpfSksQ319KX0sNDMxNDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSg5OTQ1KSx0PWUoMTg3MzQpLGk9ZSg4MzkxNCkuc2V0O3Ioe3RhcmdldDoiTWFwIixwcm90bzohMCxyZWFsOiEwLGFyaXR5OjEsZm9yY2VkOiEwfSx7bWVyZ2U6ZnVuY3Rpb24oYSl7Zm9yKHZhciB1PW4odGhpcyksYz1hcmd1bWVudHMubGVuZ3RoLGg9MDtoPGM7KXQoYXJndW1lbnRzW2grK10sZnVuY3Rpb24oZCxtKXtpKHUsZCxtKX0se0FTX0VOVFJJRVM6ITB9KTtyZXR1cm4gdX19KX0sNjMxMTE6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc5OTg5KSxuPWUoMTExNCk7cih7dGFyZ2V0OiJNYXAiLHN0YXQ6ITAsZm9yY2VkOiEwfSx7b2Y6bn0pfSwyMzM0NjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSgxMDUwOSksdD1lKDk5NDUpLGk9ZSgxMDYxMykscz1UeXBlRXJyb3I7cih7dGFyZ2V0OiJNYXAiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiEwfSx7cmVkdWNlOmZ1bmN0aW9uKHUpe3ZhciBjPXQodGhpcyksaD1hcmd1bWVudHMubGVuZ3RoPDIsZD1oP3ZvaWQgMDphcmd1bWVudHNbMV07aWYobih1KSxpKGMsZnVuY3Rpb24obSxDKXtoPyhoPSExLGQ9bSk6ZD11KGQsbSxDLGMpfSksaCl0aHJvdyBuZXcgcygiUmVkdWNlIG9mIGVtcHR5IG1hcCB3aXRoIG5vIGluaXRpYWwgdmFsdWUiKTtyZXR1cm4gZH19KX0sNjQ5ODQ6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc5OTg5KSxuPWUoNTQwNzEpLHQ9ZSg5OTQ1KSxpPWUoMTA2MTMpO3Ioe3RhcmdldDoiTWFwIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohMH0se3NvbWU6ZnVuY3Rpb24oYSl7dmFyIHU9dCh0aGlzKSxjPW4oYSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCk7cmV0dXJuIGkodSxmdW5jdGlvbihoLGQpe2lmKGMoaCxkLHUpKXJldHVybiEwfSwhMCk9PT0hMH19KX0sMjQ0NTM6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc5OTg5KSxuPWUoNDE0MzIpO3Ioe3RhcmdldDoiTWFwIixwcm90bzohMCxyZWFsOiEwLG5hbWU6InVwc2VydCIsZm9yY2VkOiEwfSx7dXBkYXRlT3JJbnNlcnQ6bn0pfSw2NDA3ODpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSgxMDUwOSksdD1lKDk5NDUpLGk9ZSg4MzkxNCkscz1UeXBlRXJyb3IsYT1pLmdldCx1PWkuaGFzLGM9aS5zZXQ7cih7dGFyZ2V0OiJNYXAiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiEwfSx7dXBkYXRlOmZ1bmN0aW9uKGQsbSl7dmFyIEM9dCh0aGlzKSxnPWFyZ3VtZW50cy5sZW5ndGg7bihtKTt2YXIgdz11KEMsZCk7aWYoIXcmJmc8Myl0aHJvdyBuZXcgcygiVXBkYXRpbmcgYWJzZW50IHZhbHVlIik7dmFyIEU9dz9hKEMsZCk6bihnPjI/YXJndW1lbnRzWzJdOnZvaWQgMCkoZCxDKTtyZXR1cm4gYyhDLGQsbShFLGQsQykpLEN9fSl9LDY2MTkwOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDQxNDMyKTtyKHt0YXJnZXQ6Ik1hcCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6ITB9LHt1cHNlcnQ6bn0pfSwyNTY4NDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49TWF0aC5taW4sdD1NYXRoLm1heDtyKHt0YXJnZXQ6Ik1hdGgiLHN0YXQ6ITAsZm9yY2VkOiEwfSx7Y2xhbXA6ZnVuY3Rpb24ocyxhLHUpe3JldHVybiBuKHUsdChhLHMpKX19KX0sMzE3ODk6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc5OTg5KTtyKHt0YXJnZXQ6Ik1hdGgiLHN0YXQ6ITAsbm9uQ29uZmlndXJhYmxlOiEwLG5vbldyaXRhYmxlOiEwfSx7REVHX1BFUl9SQUQ6TWF0aC5QSS8xODB9KX0sODY3NzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49MTgwL01hdGguUEk7cih7dGFyZ2V0OiJNYXRoIixzdGF0OiEwLGZvcmNlZDohMH0se2RlZ3JlZXM6ZnVuY3Rpb24oaSl7cmV0dXJuIGkqbn19KX0sNTkxNTE6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc5OTg5KSxuPWUoNzYwNDMpO3Ioe3RhcmdldDoiTWF0aCIsc3RhdDohMH0se2YxNnJvdW5kOm59KX0sMzQ2OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDg0NDYzKSx0PWUoMzc3ODgpO3Ioe3RhcmdldDoiTWF0aCIsc3RhdDohMCxmb3JjZWQ6ITB9LHtmc2NhbGU6ZnVuY3Rpb24ocyxhLHUsYyxoKXtyZXR1cm4gdChuKHMsYSx1LGMsaCkpfX0pfSw5MTA2OTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpO3Ioe3RhcmdldDoiTWF0aCIsc3RhdDohMCxmb3JjZWQ6ITB9LHtpYWRkaDpmdW5jdGlvbih0LGkscyxhKXt2YXIgdT10Pj4+MCxjPWk+Pj4wLGg9cz4+PjA7cmV0dXJuIGMrKGE+Pj4wKSsoKHUmaHwodXxoKSZ+KHUraD4+PjApKT4+PjMxKXwwfX0pfSwxODg4NjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpO3Ioe3RhcmdldDoiTWF0aCIsc3RhdDohMCxmb3JjZWQ6ITB9LHtpbXVsaDpmdW5jdGlvbih0LGkpe3ZhciBzPTY1NTM1LGE9K3QsdT0raSxjPWEmcyxoPXUmcyxkPWE+PjE2LG09dT4+MTYsQz0oZCpoPj4+MCkrKGMqaD4+PjE2KTtyZXR1cm4gZCptKyhDPj4xNikrKChjKm0+Pj4wKSsoQyZzKT4+MTYpfX0pfSw4ODA2NTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpO3Ioe3RhcmdldDoiTWF0aCIsc3RhdDohMCxmb3JjZWQ6ITB9LHtpc3ViaDpmdW5jdGlvbih0LGkscyxhKXt2YXIgdT10Pj4+MCxjPWk+Pj4wLGg9cz4+PjA7cmV0dXJuIGMtKGE+Pj4wKS0oKH51Jmh8fih1XmgpJnUtaD4+PjApPj4+MzEpfDB9fSl9LDY4MTcyOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSk7cih7dGFyZ2V0OiJNYXRoIixzdGF0OiEwLG5vbkNvbmZpZ3VyYWJsZTohMCxub25Xcml0YWJsZTohMH0se1JBRF9QRVJfREVHOjE4MC9NYXRoLlBJfSl9LDYwNDQ1OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1NYXRoLlBJLzE4MDtyKHt0YXJnZXQ6Ik1hdGgiLHN0YXQ6ITAsZm9yY2VkOiEwfSx7cmFkaWFuczpmdW5jdGlvbihpKXtyZXR1cm4gaSpufX0pfSw5OTQ1NzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSg4NDQ2Myk7cih7dGFyZ2V0OiJNYXRoIixzdGF0OiEwLGZvcmNlZDohMH0se3NjYWxlOm59KX0sNjEzOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDg1MDI3KSx0PWUoNzAwNDYpLGk9ZSgzMDk3NCkscz1lKDI3ODA3KSxhPWUoNjE4KSx1PSJTZWVkZWQgUmFuZG9tIixjPXUrIiBHZW5lcmF0b3IiLGg9J01hdGguc2VlZGVkUFJORygpIGFyZ3VtZW50IHNob3VsZCBoYXZlIGEgInNlZWQiIGZpZWxkIHdpdGggYSBmaW5pdGUgdmFsdWUuJyxkPWEuc2V0LG09YS5nZXR0ZXJGb3IoYyksQz1UeXBlRXJyb3IsZz1pKGZ1bmN0aW9uKEUpe2QodGhpcyx7dHlwZTpjLHNlZWQ6RSUyMTQ3NDgzNjQ3fSl9LHUsZnVuY3Rpb24oKXt2YXIgRT1tKHRoaXMpLHg9RS5zZWVkPShFLnNlZWQqMTEwMzUxNTI0NSsxMjM0NSklMjE0NzQ4MzY0NztyZXR1cm4gcygoeCYxMDczNzQxODIzKS8xMDczNzQxODIzLCExKX0pO3Ioe3RhcmdldDoiTWF0aCIsc3RhdDohMCxmb3JjZWQ6ITB9LHtzZWVkZWRQUk5HOmZ1bmN0aW9uKEUpe3ZhciB4PW4oRSkuc2VlZDtpZighdCh4KSl0aHJvdyBuZXcgQyhoKTtyZXR1cm4gbmV3IGcoeCl9fSl9LDgzNTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpO3Ioe3RhcmdldDoiTWF0aCIsc3RhdDohMCxmb3JjZWQ6ITB9LHtzaWduYml0OmZ1bmN0aW9uKHQpe3ZhciBpPSt0O3JldHVybiBpPT09aSYmaT09PTA/MS9pPT09LTEvMDppPDB9fSl9LDkyNjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpO3Ioe3RhcmdldDoiTWF0aCIsc3RhdDohMCxmb3JjZWQ6ITB9LHt1bXVsaDpmdW5jdGlvbih0LGkpe3ZhciBzPTY1NTM1LGE9K3QsdT0raSxjPWEmcyxoPXUmcyxkPWE+Pj4xNixtPXU+Pj4xNixDPShkKmg+Pj4wKSsoYypoPj4+MTYpO3JldHVybiBkKm0rKEM+Pj4xNikrKChjKm0+Pj4wKSsoQyZzKT4+PjE2KX19KX0sODI4OTk6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc5OTg5KSxuPWUoNjg4NDQpLHQ9ZSg2ODcwMCksaT0iSW52YWxpZCBudW1iZXIgcmVwcmVzZW50YXRpb24iLHM9IkludmFsaWQgcmFkaXgiLGE9UmFuZ2VFcnJvcix1PVN5bnRheEVycm9yLGM9VHlwZUVycm9yLGg9cGFyc2VJbnQsZD1NYXRoLnBvdyxtPS9eW1xkLmEtel0rJC8sQz1uKCIiLmNoYXJBdCksZz1uKG0uZXhlYyksdz1uKDEgLnRvU3RyaW5nKSxFPW4oIiIuc2xpY2UpLHg9bigiIi5zcGxpdCk7cih7dGFyZ2V0OiJOdW1iZXIiLHN0YXQ6ITAsZm9yY2VkOiEwfSx7ZnJvbVN0cmluZzpmdW5jdGlvbihULFMpe3ZhciBMPTE7aWYodHlwZW9mIFQhPSJzdHJpbmciKXRocm93IG5ldyBjKGkpO2lmKCFULmxlbmd0aCl0aHJvdyBuZXcgdShpKTtpZihDKFQsMCk9PT0iLSImJihMPS0xLFQ9RShULDEpLCFULmxlbmd0aCkpdGhyb3cgbmV3IHUoaSk7dmFyIEk9Uz09PXZvaWQgMD8xMDp0KFMpO2lmKEk8Mnx8ST4zNil0aHJvdyBuZXcgYShzKTtpZighZyhtLFQpKXRocm93IG5ldyB1KGkpO3ZhciBSPXgoVCwiLiIpLHo9aChSWzBdLEkpO2lmKFIubGVuZ3RoPjEmJih6Kz1oKFJbMV0sSSkvZChJLFJbMV0ubGVuZ3RoKSksST09PTEwJiZ3KHosSSkhPT1UKXRocm93IG5ldyB1KGkpO3JldHVybiBMKnp9fSl9LDI5OTc3OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDk4NTU0KTtyKHt0YXJnZXQ6Ik51bWJlciIsc3RhdDohMCxmb3JjZWQ6ITB9LHtyYW5nZTpmdW5jdGlvbihpLHMsYSl7cmV0dXJuIG5ldyBuKGkscyxhLCJudW1iZXIiLDAsMSl9fSl9LDMxOTI3OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDQyMzUxKTtyKHt0YXJnZXQ6Ik9iamVjdCIsc3RhdDohMCxmb3JjZWQ6ITB9LHtpdGVyYXRlRW50cmllczpmdW5jdGlvbihpKXtyZXR1cm4gbmV3IG4oaSwiZW50cmllcyIpfX0pfSw3NzEzMTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSg0MjM1MSk7cih7dGFyZ2V0OiJPYmplY3QiLHN0YXQ6ITAsZm9yY2VkOiEwfSx7aXRlcmF0ZUtleXM6ZnVuY3Rpb24oaSl7cmV0dXJuIG5ldyBuKGksImtleXMiKX19KX0sNTUxNzQ6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc5OTg5KSxuPWUoNDIzNTEpO3Ioe3RhcmdldDoiT2JqZWN0IixzdGF0OiEwLGZvcmNlZDohMH0se2l0ZXJhdGVWYWx1ZXM6ZnVuY3Rpb24oaSl7cmV0dXJuIG5ldyBuKGksInZhbHVlcyIpfX0pfSw2MzUwMzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSgyMjYxNSksdD1lKDY3Njk3KSxpPWUoMTQyNDEpLHM9ZSgxMDUwOSksYT1lKDg1MDI3KSx1PWUoNzY3KSxjPWUoNjk5ODUpLGg9ZSg5ODEpLGQ9ZSg0ODk5OSksbT1lKDU0ODQ5KSxDPWUoMTE4ODApLGc9ZSg2MDQ1KSx3PWUoNjIxNDgpLEU9ZSgyMDkyMCkseD1lKDQ0MjAxKSxPPWUoNjE4KSxUPXgoIm9ic2VydmFibGUiKSxTPSJPYnNlcnZhYmxlIixMPSJTdWJzY3JpcHRpb24iLEk9IlN1YnNjcmlwdGlvbk9ic2VydmVyIixSPU8uZ2V0dGVyRm9yLHo9Ty5zZXQsRz1SKFMpLFk9UihMKSxlZT1SKEkpLEo9ZnVuY3Rpb24oVyl7dGhpcy5vYnNlcnZlcj1hKFcpLHRoaXMuY2xlYW51cD12b2lkIDAsdGhpcy5zdWJzY3JpcHRpb25PYnNlcnZlcj12b2lkIDB9O0oucHJvdG90eXBlPXt0eXBlOkwsY2xlYW46ZnVuY3Rpb24oKXt2YXIgVz10aGlzLmNsZWFudXA7aWYoVyl7dGhpcy5jbGVhbnVwPXZvaWQgMDt0cnl7VygpfWNhdGNoKGope0Uoail9fX0sY2xvc2U6ZnVuY3Rpb24oKXtpZighdCl7dmFyIFc9dGhpcy5mYWNhZGUsaj10aGlzLnN1YnNjcmlwdGlvbk9ic2VydmVyO1cuY2xvc2VkPSEwLGomJihqLmNsb3NlZD0hMCl9dGhpcy5vYnNlcnZlcj12b2lkIDB9LGlzQ2xvc2VkOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub2JzZXJ2ZXI9PT12b2lkIDB9fTt2YXIgbWU9ZnVuY3Rpb24oVyxqKXt2YXIgRD16KHRoaXMsbmV3IEooVykpLFY7dHx8KHRoaXMuY2xvc2VkPSExKTt0cnl7KFY9bShXLCJzdGFydCIpKSYmbihWLFcsdGhpcyl9Y2F0Y2goc2Upe0Uoc2UpfWlmKCFELmlzQ2xvc2VkKCkpe3ZhciBaPUQuc3Vic2NyaXB0aW9uT2JzZXJ2ZXI9bmV3IHRlKEQpO3RyeXt2YXIgUD1qKFopLEs9UDtoKFApfHwoRC5jbGVhbnVwPWMoUC51bnN1YnNjcmliZSk/ZnVuY3Rpb24oKXtLLnVuc3Vic2NyaWJlKCl9OnMoUCkpfWNhdGNoKHNlKXtaLmVycm9yKHNlKTtyZXR1cm59RC5pc0Nsb3NlZCgpJiZELmNsZWFuKCl9fTttZS5wcm90b3R5cGU9Zyh7fSx7dW5zdWJzY3JpYmU6ZnVuY3Rpb24oKXt2YXIgaj1ZKHRoaXMpO2ouaXNDbG9zZWQoKXx8KGouY2xvc2UoKSxqLmNsZWFuKCkpfX0pLHQmJncobWUucHJvdG90eXBlLCJjbG9zZWQiLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcykuaXNDbG9zZWQoKX19KTt2YXIgdGU9ZnVuY3Rpb24oVyl7eih0aGlzLHt0eXBlOkksc3Vic2NyaXB0aW9uU3RhdGU6V30pLHR8fCh0aGlzLmNsb3NlZD0hMSl9O3RlLnByb3RvdHlwZT1nKHt9LHtuZXh0OmZ1bmN0aW9uKGope3ZhciBEPWVlKHRoaXMpLnN1YnNjcmlwdGlvblN0YXRlO2lmKCFELmlzQ2xvc2VkKCkpe3ZhciBWPUQub2JzZXJ2ZXI7dHJ5e3ZhciBaPW0oViwibmV4dCIpO1omJm4oWixWLGopfWNhdGNoKFApe0UoUCl9fX0sZXJyb3I6ZnVuY3Rpb24oail7dmFyIEQ9ZWUodGhpcykuc3Vic2NyaXB0aW9uU3RhdGU7aWYoIUQuaXNDbG9zZWQoKSl7dmFyIFY9RC5vYnNlcnZlcjtELmNsb3NlKCk7dHJ5e3ZhciBaPW0oViwiZXJyb3IiKTtaP24oWixWLGopOkUoail9Y2F0Y2goUCl7RShQKX1ELmNsZWFuKCl9fSxjb21wbGV0ZTpmdW5jdGlvbigpe3ZhciBqPWVlKHRoaXMpLnN1YnNjcmlwdGlvblN0YXRlO2lmKCFqLmlzQ2xvc2VkKCkpe3ZhciBEPWoub2JzZXJ2ZXI7ai5jbG9zZSgpO3RyeXt2YXIgVj1tKEQsImNvbXBsZXRlIik7ViYmbihWLEQpfWNhdGNoKFope0UoWil9ai5jbGVhbigpfX19KSx0JiZ3KHRlLnByb3RvdHlwZSwiY2xvc2VkIix7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBlZSh0aGlzKS5zdWJzY3JpcHRpb25TdGF0ZS5pc0Nsb3NlZCgpfX0pO3ZhciBsZT1mdW5jdGlvbihqKXt1KHRoaXMsY2UpLHoodGhpcyx7dHlwZTpTLHN1YnNjcmliZXI6cyhqKX0pfSxjZT1sZS5wcm90b3R5cGU7ZyhjZSx7c3Vic2NyaWJlOmZ1bmN0aW9uKGope3ZhciBEPWFyZ3VtZW50cy5sZW5ndGg7cmV0dXJuIG5ldyBtZShjKGopP3tuZXh0OmosZXJyb3I6RD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsY29tcGxldGU6RD4yP2FyZ3VtZW50c1syXTp2b2lkIDB9OmQoaik/ajp7fSxHKHRoaXMpLnN1YnNjcmliZXIpfX0pLEMoY2UsVCxmdW5jdGlvbigpe3JldHVybiB0aGlzfSkscih7Z2xvYmFsOiEwLGNvbnN0cnVjdG9yOiEwLGZvcmNlZDohMH0se09ic2VydmFibGU6bGV9KSxpKFMpfSw5ODE4OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDc2MDU4KSx0PWUoMjI2MTUpLGk9ZSg4NTAyNykscz1lKDE5NDI5KSxhPWUoNTE4NSksdT1lKDU0ODQ5KSxjPWUoMTg3MzQpLGg9ZSg0NDIwMSksZD1oKCJvYnNlcnZhYmxlIik7cih7dGFyZ2V0OiJPYnNlcnZhYmxlIixzdGF0OiEwLGZvcmNlZDohMH0se2Zyb206ZnVuY3Rpb24oQyl7dmFyIGc9cyh0aGlzKT90aGlzOm4oIk9ic2VydmFibGUiKSx3PXUoaShDKSxkKTtpZih3KXt2YXIgRT1pKHQodyxDKSk7cmV0dXJuIEUuY29uc3RydWN0b3I9PT1nP0U6bmV3IGcoZnVuY3Rpb24oTyl7cmV0dXJuIEUuc3Vic2NyaWJlKE8pfSl9dmFyIHg9YShDKTtyZXR1cm4gbmV3IGcoZnVuY3Rpb24oTyl7Yyh4LGZ1bmN0aW9uKFQsUyl7aWYoTy5uZXh0KFQpLE8uY2xvc2VkKXJldHVybiBTKCl9LHtJU19JVEVSQVRPUjohMCxJTlRFUlJVUFRFRDohMH0pLE8uY29tcGxldGUoKX0pfX0pfSw3NjMxNDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UoNjM1MDMpLGUoOTgxOCksZSgzODc3MSl9LDM4NzcxOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDc2MDU4KSx0PWUoMTk0MjkpLGk9bigiQXJyYXkiKTtyKHt0YXJnZXQ6Ik9ic2VydmFibGUiLHN0YXQ6ITAsZm9yY2VkOiEwfSx7b2Y6ZnVuY3Rpb24oKXtmb3IodmFyIGE9dCh0aGlzKT90aGlzOm4oIk9ic2VydmFibGUiKSx1PWFyZ3VtZW50cy5sZW5ndGgsYz1pKHUpLGg9MDtoPHU7KWNbaF09YXJndW1lbnRzW2grK107cmV0dXJuIG5ldyBhKGZ1bmN0aW9uKGQpe2Zvcih2YXIgbT0wO208dTttKyspaWYoZC5uZXh0KGNbbV0pLGQuY2xvc2VkKXJldHVybjtkLmNvbXBsZXRlKCl9KX19KX0sNjYxNjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSg0ODc0MiksdD1lKDkzMDIpO3Ioe3RhcmdldDoiUHJvbWlzZSIsc3RhdDohMCxmb3JjZWQ6ITB9LHt0cnk6ZnVuY3Rpb24oaSl7dmFyIHM9bi5mKHRoaXMpLGE9dChpKTtyZXR1cm4oYS5lcnJvcj9zLnJlamVjdDpzLnJlc29sdmUpKGEudmFsdWUpLHMucHJvbWlzZX19KX0sMTk5NTk6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc5OTg5KSxuPWUoMzM2NjYpLHQ9ZSg4NTAyNyksaT1uLnRvS2V5LHM9bi5zZXQ7cih7dGFyZ2V0OiJSZWZsZWN0IixzdGF0OiEwfSx7ZGVmaW5lTWV0YWRhdGE6ZnVuY3Rpb24odSxjLGgpe3ZhciBkPWFyZ3VtZW50cy5sZW5ndGg8ND92b2lkIDA6aShhcmd1bWVudHNbM10pO3ModSxjLHQoaCksZCl9fSl9LDczMzQ3OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDMzNjY2KSx0PWUoODUwMjcpLGk9bi50b0tleSxzPW4uZ2V0TWFwLGE9bi5zdG9yZTtyKHt0YXJnZXQ6IlJlZmxlY3QiLHN0YXQ6ITB9LHtkZWxldGVNZXRhZGF0YTpmdW5jdGlvbihjLGgpe3ZhciBkPWFyZ3VtZW50cy5sZW5ndGg8Mz92b2lkIDA6aShhcmd1bWVudHNbMl0pLG09cyh0KGgpLGQsITEpO2lmKG09PT12b2lkIDB8fCFtLmRlbGV0ZShjKSlyZXR1cm4hMTtpZihtLnNpemUpcmV0dXJuITA7dmFyIEM9YS5nZXQoaCk7cmV0dXJuIEMuZGVsZXRlKGQpLCEhQy5zaXplfHxhLmRlbGV0ZShoKX19KX0sNzAwMDM6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc5OTg5KSxuPWUoNjg4NDQpLHQ9ZSgzMzY2NiksaT1lKDg1MDI3KSxzPWUoNjE4NjgpLGE9ZSgxMjM5NyksdT1uKGEpLGM9bihbXS5jb25jYXQpLGg9dC5rZXlzLGQ9dC50b0tleSxtPWZ1bmN0aW9uKEMsZyl7dmFyIHc9aChDLGcpLEU9cyhDKTtpZihFPT09bnVsbClyZXR1cm4gdzt2YXIgeD1tKEUsZyk7cmV0dXJuIHgubGVuZ3RoP3cubGVuZ3RoP3UoYyh3LHgpKTp4Ond9O3Ioe3RhcmdldDoiUmVmbGVjdCIsc3RhdDohMH0se2dldE1ldGFkYXRhS2V5czpmdW5jdGlvbihnKXt2YXIgdz1hcmd1bWVudHMubGVuZ3RoPDI/dm9pZCAwOmQoYXJndW1lbnRzWzFdKTtyZXR1cm4gbShpKGcpLHcpfX0pfSw3MTkxMzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSgzMzY2NiksdD1lKDg1MDI3KSxpPWUoNjE4NjgpLHM9bi5oYXMsYT1uLmdldCx1PW4udG9LZXksYz1mdW5jdGlvbihoLGQsbSl7dmFyIEM9cyhoLGQsbSk7aWYoQylyZXR1cm4gYShoLGQsbSk7dmFyIGc9aShkKTtyZXR1cm4gZyE9PW51bGw/YyhoLGcsbSk6dm9pZCAwfTtyKHt0YXJnZXQ6IlJlZmxlY3QiLHN0YXQ6ITB9LHtnZXRNZXRhZGF0YTpmdW5jdGlvbihkLG0pe3ZhciBDPWFyZ3VtZW50cy5sZW5ndGg8Mz92b2lkIDA6dShhcmd1bWVudHNbMl0pO3JldHVybiBjKGQsdChtKSxDKX19KX0sNzg1OTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSgzMzY2NiksdD1lKDg1MDI3KSxpPW4ua2V5cyxzPW4udG9LZXk7cih7dGFyZ2V0OiJSZWZsZWN0IixzdGF0OiEwfSx7Z2V0T3duTWV0YWRhdGFLZXlzOmZ1bmN0aW9uKHUpe3ZhciBjPWFyZ3VtZW50cy5sZW5ndGg8Mj92b2lkIDA6cyhhcmd1bWVudHNbMV0pO3JldHVybiBpKHQodSksYyl9fSl9LDc5OTU1OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDMzNjY2KSx0PWUoODUwMjcpLGk9bi5nZXQscz1uLnRvS2V5O3Ioe3RhcmdldDoiUmVmbGVjdCIsc3RhdDohMH0se2dldE93bk1ldGFkYXRhOmZ1bmN0aW9uKHUsYyl7dmFyIGg9YXJndW1lbnRzLmxlbmd0aDwzP3ZvaWQgMDpzKGFyZ3VtZW50c1syXSk7cmV0dXJuIGkodSx0KGMpLGgpfX0pfSwzMTEzODpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSgzMzY2NiksdD1lKDg1MDI3KSxpPWUoNjE4NjgpLHM9bi5oYXMsYT1uLnRvS2V5LHU9ZnVuY3Rpb24oYyxoLGQpe3ZhciBtPXMoYyxoLGQpO2lmKG0pcmV0dXJuITA7dmFyIEM9aShoKTtyZXR1cm4gQyE9PW51bGw/dShjLEMsZCk6ITF9O3Ioe3RhcmdldDoiUmVmbGVjdCIsc3RhdDohMH0se2hhc01ldGFkYXRhOmZ1bmN0aW9uKGgsZCl7dmFyIG09YXJndW1lbnRzLmxlbmd0aDwzP3ZvaWQgMDphKGFyZ3VtZW50c1syXSk7cmV0dXJuIHUoaCx0KGQpLG0pfX0pfSwyODgwOTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSgzMzY2NiksdD1lKDg1MDI3KSxpPW4uaGFzLHM9bi50b0tleTtyKHt0YXJnZXQ6IlJlZmxlY3QiLHN0YXQ6ITB9LHtoYXNPd25NZXRhZGF0YTpmdW5jdGlvbih1LGMpe3ZhciBoPWFyZ3VtZW50cy5sZW5ndGg8Mz92b2lkIDA6cyhhcmd1bWVudHNbMl0pO3JldHVybiBpKHUsdChjKSxoKX19KX0sMjk0NjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSgzMzY2NiksdD1lKDg1MDI3KSxpPW4udG9LZXkscz1uLnNldDtyKHt0YXJnZXQ6IlJlZmxlY3QiLHN0YXQ6ITB9LHttZXRhZGF0YTpmdW5jdGlvbih1LGMpe3JldHVybiBmdW5jdGlvbihkLG0pe3ModSxjLHQoZCksaShtKSl9fX0pfSwzMjQ2MDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSg2ODg0NCksdD1lKDM0MzI3KSxpPWUoODYzNTApLHM9bigiIi5jaGFyQ29kZUF0KSxhPW4oIiIucmVwbGFjZSksdT1SZWdFeHAoIlshXCIjJCUmJygpKissXFwtLi86Ozw9Pj9AW1xcXFxcXF1eYHt8fX4iK2krIl0iLCJnIik7cih7dGFyZ2V0OiJSZWdFeHAiLHN0YXQ6ITAsZm9yY2VkOiEwfSx7ZXNjYXBlOmZ1bmN0aW9uKGgpe3ZhciBkPXQoaCksbT1zKGQsMCk7cmV0dXJuKG0+NDcmJm08NTg/IlxceDMiOiIiKSthKGQsdSwiXFwkJiIpfX0pfSw1NzI4MjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSgxMDAyOSksdD1lKDYxMDM0KS5hZGQ7cih7dGFyZ2V0OiJTZXQiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiEwfSx7YWRkQWxsOmZ1bmN0aW9uKCl7Zm9yKHZhciBzPW4odGhpcyksYT0wLHU9YXJndW1lbnRzLmxlbmd0aDthPHU7YSsrKXQocyxhcmd1bWVudHNbYV0pO3JldHVybiBzfX0pfSw1MDU4OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDEwMDI5KSx0PWUoNjEwMzQpLnJlbW92ZTtyKHt0YXJnZXQ6IlNldCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6ITB9LHtkZWxldGVBbGw6ZnVuY3Rpb24oKXtmb3IodmFyIHM9bih0aGlzKSxhPSEwLHUsYz0wLGg9YXJndW1lbnRzLmxlbmd0aDtjPGg7YysrKXU9dChzLGFyZ3VtZW50c1tjXSksYT1hJiZ1O3JldHVybiEhYX19KX0sMzY4MTQ6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc5OTg5KSxuPWUoMjI2MTUpLHQ9ZSgyOTM5KSxpPWUoMjc3NDgpO3Ioe3RhcmdldDoiU2V0Iixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohMH0se2RpZmZlcmVuY2U6ZnVuY3Rpb24oYSl7cmV0dXJuIG4oaSx0aGlzLHQoYSkpfX0pfSwxNTcxNjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSgyNzc0OCksdD1lKDUzMjM0KTtyKHt0YXJnZXQ6IlNldCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6IXQoImRpZmZlcmVuY2UiKX0se2RpZmZlcmVuY2U6bn0pfSwzMDM0OTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSg1NDA3MSksdD1lKDEwMDI5KSxpPWUoNDg3NzQpO3Ioe3RhcmdldDoiU2V0Iixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohMH0se2V2ZXJ5OmZ1bmN0aW9uKGEpe3ZhciB1PXQodGhpcyksYz1uKGEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApO3JldHVybiBpKHUsZnVuY3Rpb24oaCl7aWYoIWMoaCxoLHUpKXJldHVybiExfSwhMCkhPT0hMX19KX0sOTY5ODY6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc5OTg5KSxuPWUoNTQwNzEpLHQ9ZSgxMDAyOSksaT1lKDYxMDM0KSxzPWUoNDg3NzQpLGE9aS5TZXQsdT1pLmFkZDtyKHt0YXJnZXQ6IlNldCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6ITB9LHtmaWx0ZXI6ZnVuY3Rpb24oaCl7dmFyIGQ9dCh0aGlzKSxtPW4oaCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCksQz1uZXcgYTtyZXR1cm4gcyhkLGZ1bmN0aW9uKGcpe20oZyxnLGQpJiZ1KEMsZyl9KSxDfX0pfSw5NTY4MTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSg1NDA3MSksdD1lKDEwMDI5KSxpPWUoNDg3NzQpO3Ioe3RhcmdldDoiU2V0Iixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohMH0se2ZpbmQ6ZnVuY3Rpb24oYSl7dmFyIHU9dCh0aGlzKSxjPW4oYSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCksaD1pKHUsZnVuY3Rpb24oZCl7aWYoYyhkLGQsdSkpcmV0dXJue3ZhbHVlOmR9fSwhMCk7cmV0dXJuIGgmJmgudmFsdWV9fSl9LDEzNzgxOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDI4NzM3KTtyKHt0YXJnZXQ6IlNldCIsc3RhdDohMCxmb3JjZWQ6ITB9LHtmcm9tOm59KX0sOTg4NzM6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc5OTg5KSxuPWUoMjI2MTUpLHQ9ZSgyOTM5KSxpPWUoNzI5NDgpO3Ioe3RhcmdldDoiU2V0Iixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohMH0se2ludGVyc2VjdGlvbjpmdW5jdGlvbihhKXtyZXR1cm4gbihpLHRoaXMsdChhKSl9fSl9LDMzNDQyOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDM2ODkpLHQ9ZSg3Mjk0OCksaT1lKDUzMjM0KSxzPSFpKCJpbnRlcnNlY3Rpb24iKXx8bihmdW5jdGlvbigpe3JldHVybiBBcnJheS5mcm9tKG5ldyBTZXQoWzEsMiwzXSkuaW50ZXJzZWN0aW9uKG5ldyBTZXQoWzMsMl0pKSkhPT0iMywyIn0pO3Ioe3RhcmdldDoiU2V0Iixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpzfSx7aW50ZXJzZWN0aW9uOnR9KX0sNTAzMDg6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc5OTg5KSxuPWUoMjI2MTUpLHQ9ZSgyOTM5KSxpPWUoOTc3OTUpO3Ioe3RhcmdldDoiU2V0Iixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohMH0se2lzRGlzam9pbnRGcm9tOmZ1bmN0aW9uKGEpe3JldHVybiBuKGksdGhpcyx0KGEpKX19KX0sNjE5NjQ6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc5OTg5KSxuPWUoOTc3OTUpLHQ9ZSg1MzIzNCk7cih7dGFyZ2V0OiJTZXQiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiF0KCJpc0Rpc2pvaW50RnJvbSIpfSx7aXNEaXNqb2ludEZyb206bn0pfSwxODk1NTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSgyMjYxNSksdD1lKDI5MzkpLGk9ZSgyNjk1MSk7cih7dGFyZ2V0OiJTZXQiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiEwfSx7aXNTdWJzZXRPZjpmdW5jdGlvbihhKXtyZXR1cm4gbihpLHRoaXMsdChhKSl9fSl9LDY5ODc4OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDI2OTUxKSx0PWUoNTMyMzQpO3Ioe3RhcmdldDoiU2V0Iixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohdCgiaXNTdWJzZXRPZiIpfSx7aXNTdWJzZXRPZjpufSl9LDY1MTE1OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDIyNjE1KSx0PWUoMjkzOSksaT1lKDM4OTQpO3Ioe3RhcmdldDoiU2V0Iixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohMH0se2lzU3VwZXJzZXRPZjpmdW5jdGlvbihhKXtyZXR1cm4gbihpLHRoaXMsdChhKSl9fSl9LDUyOTE1OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDM4OTQpLHQ9ZSg1MzIzNCk7cih7dGFyZ2V0OiJTZXQiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiF0KCJpc1N1cGVyc2V0T2YiKX0se2lzU3VwZXJzZXRPZjpufSl9LDE5NDkwOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDY4ODQ0KSx0PWUoMTAwMjkpLGk9ZSg0ODc3NCkscz1lKDM0MzI3KSxhPW4oW10uam9pbiksdT1uKFtdLnB1c2gpO3Ioe3RhcmdldDoiU2V0Iixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohMH0se2pvaW46ZnVuY3Rpb24oaCl7dmFyIGQ9dCh0aGlzKSxtPWg9PT12b2lkIDA/IiwiOnMoaCksQz1bXTtyZXR1cm4gaShkLGZ1bmN0aW9uKGcpe3UoQyxnKX0pLGEoQyxtKX19KX0sOTU3NTI6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc5OTg5KSxuPWUoNTQwNzEpLHQ9ZSgxMDAyOSksaT1lKDYxMDM0KSxzPWUoNDg3NzQpLGE9aS5TZXQsdT1pLmFkZDtyKHt0YXJnZXQ6IlNldCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6ITB9LHttYXA6ZnVuY3Rpb24oaCl7dmFyIGQ9dCh0aGlzKSxtPW4oaCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCksQz1uZXcgYTtyZXR1cm4gcyhkLGZ1bmN0aW9uKGcpe3UoQyxtKGcsZyxkKSl9KSxDfX0pfSwzMjc4OTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSgxMTE0KTtyKHt0YXJnZXQ6IlNldCIsc3RhdDohMCxmb3JjZWQ6ITB9LHtvZjpufSl9LDI3OTEzOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDEwNTA5KSx0PWUoMTAwMjkpLGk9ZSg0ODc3NCkscz1UeXBlRXJyb3I7cih7dGFyZ2V0OiJTZXQiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiEwfSx7cmVkdWNlOmZ1bmN0aW9uKHUpe3ZhciBjPXQodGhpcyksaD1hcmd1bWVudHMubGVuZ3RoPDIsZD1oP3ZvaWQgMDphcmd1bWVudHNbMV07aWYobih1KSxpKGMsZnVuY3Rpb24obSl7aD8oaD0hMSxkPW0pOmQ9dShkLG0sbSxjKX0pLGgpdGhyb3cgbmV3IHMoIlJlZHVjZSBvZiBlbXB0eSBzZXQgd2l0aCBubyBpbml0aWFsIHZhbHVlIik7cmV0dXJuIGR9fSl9LDY4MzE6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc5OTg5KSxuPWUoNTQwNzEpLHQ9ZSgxMDAyOSksaT1lKDQ4Nzc0KTtyKHt0YXJnZXQ6IlNldCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6ITB9LHtzb21lOmZ1bmN0aW9uKGEpe3ZhciB1PXQodGhpcyksYz1uKGEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApO3JldHVybiBpKHUsZnVuY3Rpb24oaCl7aWYoYyhoLGgsdSkpcmV0dXJuITB9LCEwKT09PSEwfX0pfSw5MDI0MzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSgyMjYxNSksdD1lKDI5MzkpLGk9ZSg2MjI4OSk7cih7dGFyZ2V0OiJTZXQiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiEwfSx7c3ltbWV0cmljRGlmZmVyZW5jZTpmdW5jdGlvbihhKXtyZXR1cm4gbihpLHRoaXMsdChhKSl9fSl9LDk3ODk1OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDYyMjg5KSx0PWUoNTMyMzQpO3Ioe3RhcmdldDoiU2V0Iixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohdCgic3ltbWV0cmljRGlmZmVyZW5jZSIpfSx7c3ltbWV0cmljRGlmZmVyZW5jZTpufSl9LDk4MDMwOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDIyNjE1KSx0PWUoMjkzOSksaT1lKDc1Njc0KTtyKHt0YXJnZXQ6IlNldCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6ITB9LHt1bmlvbjpmdW5jdGlvbihhKXtyZXR1cm4gbihpLHRoaXMsdChhKSl9fSl9LDIyMjc1OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDc1Njc0KSx0PWUoNTMyMzQpO3Ioe3RhcmdldDoiU2V0Iixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohdCgidW5pb24iKX0se3VuaW9uOm59KX0sODYyMjA6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc5OTg5KSxuPWUoMTA3MzApLmNoYXJBdCx0PWUoNzQ2ODQpLGk9ZSg2ODcwMCkscz1lKDM0MzI3KTtyKHt0YXJnZXQ6IlN0cmluZyIscHJvdG86ITAsZm9yY2VkOiEwfSx7YXQ6ZnVuY3Rpb24odSl7dmFyIGM9cyh0KHRoaXMpKSxoPWMubGVuZ3RoLGQ9aSh1KSxtPWQ+PTA/ZDpoK2Q7cmV0dXJuIG08MHx8bT49aD92b2lkIDA6bihjLG0pfX0pfSw5NTg1MzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSgzMDk3NCksdD1lKDI3ODA3KSxpPWUoNzQ2ODQpLHM9ZSgzNDMyNyksYT1lKDYxOCksdT1lKDEwNzMwKSxjPXUuY29kZUF0LGg9dS5jaGFyQXQsZD0iU3RyaW5nIEl0ZXJhdG9yIixtPWEuc2V0LEM9YS5nZXR0ZXJGb3IoZCksZz1uKGZ1bmN0aW9uKEUpe20odGhpcyx7dHlwZTpkLHN0cmluZzpFLGluZGV4OjB9KX0sIlN0cmluZyIsZnVuY3Rpb24oKXt2YXIgRT1DKHRoaXMpLHg9RS5zdHJpbmcsTz1FLmluZGV4LFQ7cmV0dXJuIE8+PXgubGVuZ3RoP3Qodm9pZCAwLCEwKTooVD1oKHgsTyksRS5pbmRleCs9VC5sZW5ndGgsdCh7Y29kZVBvaW50OmMoVCwwKSxwb3NpdGlvbjpPfSwhMSkpfSk7cih7dGFyZ2V0OiJTdHJpbmciLHByb3RvOiEwLGZvcmNlZDohMH0se2NvZGVQb2ludHM6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGcocyhpKHRoaXMpKSl9fSl9LDIxOTE3OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDgxOTUpO3Ioe3RhcmdldDoiU3RyaW5nIixzdGF0OiEwLGZvcmNlZDohMH0se2Nvb2tlZDpufSl9LDY2MDg0OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3MTU5NCksbj1lKDc5OTg5KSx0PWUoOTg3MDIpLGk9ZSg2ODg0NCkscz1lKDYxNzM1KSxhPWUoODUwMjcpLHU9ZSg5MDY5MCksYz1lKDY5OTg1KSxoPWUoNjMxMCksZD1lKDcyNTYwKS5mLG09ZSg5MDE1KSxDPWUoMTY4MDMpLGc9ZSg4MTk1KSx3PWUoOTg5ODUpLEU9ZSg4NjM1MCkseD1uZXcgQy5XZWFrTWFwLE89Qy5nZXQsVD1DLmhhcyxTPUMuc2V0LEw9QXJyYXksST1UeXBlRXJyb3IsUj1PYmplY3QuZnJlZXplfHxPYmplY3Qsej1PYmplY3QuaXNGcm96ZW4sRz1NYXRoLm1pbixZPWkoIiIuY2hhckF0KSxlZT1pKCIiLnNsaWNlKSxKPWkoIiIuc3BsaXQpLG1lPWkoLy4vLmV4ZWMpLHRlPS8oW1xuXHUyMDI4XHUyMDI5XXxcclxuPykvZyxsZT1SZWdFeHAoIl5bIitFKyJdKiIpLGNlPVJlZ0V4cCgiW14iK0UrIl0iKSxXPSJJbnZhbGlkIHRhZyIsaj0iSW52YWxpZCBvcGVuaW5nIGxpbmUiLEQ9IkludmFsaWQgY2xvc2luZyBsaW5lIixWPWZ1bmN0aW9uKG9lKXt2YXIgZmU9b2UucmF3O2lmKHImJiF6KGZlKSl0aHJvdyBuZXcgSSgiUmF3IHRlbXBsYXRlIHNob3VsZCBiZSBmcm96ZW4iKTtpZihUKHgsZmUpKXJldHVybiBPKHgsZmUpO3ZhciBFZT1aKGZlKSxSZT1LKEVlKTtyZXR1cm4gZChSZSwicmF3Iix7dmFsdWU6UihFZSl9KSxSKFJlKSxTKHgsZmUsUmUpLFJlfSxaPWZ1bmN0aW9uKG9lKXt2YXIgZmU9dShvZSksRWU9aChmZSksUmU9TChFZSksQmU9TChFZSksWWU9MCxvdCxxZSxfZSxGZTtpZighRWUpdGhyb3cgbmV3IEkoVyk7Zm9yKDtZZTxFZTtZZSsrKXt2YXIgU2U9ZmVbWWVdO2lmKHR5cGVvZiBTZT09InN0cmluZyIpUmVbWWVdPUooU2UsdGUpO2Vsc2UgdGhyb3cgbmV3IEkoVyl9Zm9yKFllPTA7WWU8RWU7WWUrKyl7dmFyIHE9WWUrMT09PUVlO2lmKG90PVJlW1llXSxZZT09PTApe2lmKG90Lmxlbmd0aD09PTF8fG90WzBdLmxlbmd0aD4wKXRocm93IG5ldyBJKGopO290WzFdPSIifWlmKHEpe2lmKG90Lmxlbmd0aD09PTF8fG1lKGNlLG90W290Lmxlbmd0aC0xXSkpdGhyb3cgbmV3IEkoRCk7b3Rbb3QubGVuZ3RoLTJdPSIiLG90W290Lmxlbmd0aC0xXT0iIn1mb3IodmFyIGs9MjtrPG90Lmxlbmd0aDtrKz0yKXt2YXIgTT1vdFtrXSxBPWsrMT09PW90Lmxlbmd0aCYmIXEsVT1tZShsZSxNKVswXTtpZighQSYmVS5sZW5ndGg9PT1NLmxlbmd0aCl7b3Rba109IiI7Y29udGludWV9cWU9UChVLHFlKX19dmFyIE49cWU/cWUubGVuZ3RoOjA7Zm9yKFllPTA7WWU8RWU7WWUrKyl7Zm9yKG90PVJlW1llXSxfZT1vdFswXSxGZT0xO0ZlPG90Lmxlbmd0aDtGZSs9MilfZSs9b3RbRmVdK2VlKG90W0ZlKzFdLE4pO0JlW1llXT1fZX1yZXR1cm4gQmV9LFA9ZnVuY3Rpb24ob2UsZmUpe2lmKGZlPT09dm9pZCAwfHxvZT09PWZlKXJldHVybiBvZTtmb3IodmFyIEVlPTAsUmU9RyhvZS5sZW5ndGgsZmUubGVuZ3RoKTtFZTxSZSYmWShvZSxFZSk9PT1ZKGZlLEVlKTtFZSsrKTtyZXR1cm4gZWUob2UsMCxFZSl9LEs9ZnVuY3Rpb24ob2Upe2Zvcih2YXIgZmU9MCxFZT1vZS5sZW5ndGgsUmU9TChFZSk7ZmU8RWU7ZmUrKylSZVtmZV09dyhvZVtmZV0pO3JldHVybiBSZX0sc2U9ZnVuY3Rpb24ob2Upe3JldHVybiB0KGZ1bmN0aW9uKGZlKXt2YXIgRWU9bShhcmd1bWVudHMpO3JldHVybiBFZVswXT1WKGEoZmUpKSxzKG9lLHRoaXMsRWUpfSwiIil9LG5lPXNlKGcpO24oe3RhcmdldDoiU3RyaW5nIixzdGF0OiEwLGZvcmNlZDohMH0se2RlZGVudDpmdW5jdGlvbihmZSl7cmV0dXJuIGEoZmUpLGMoZmUpP3NlKGZlKTpzKG5lLHRoaXMsYXJndW1lbnRzKX19KX0sMjY4MTA6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc5OTg5KSxuPWUoMjM2MjIpLHQ9ZSg2MTg2OCksaT1lKDQ5Mzg1KSxzPWUoODc1OCksYT1lKDI1MzkxKSx1PWUoNzU3NzMpLGM9ZSg3NTY4NCksaD1lKDY1NDExKSxkPWUoMTM4NDEpLG09ZSg0NDIwMSksQz1tKCJ0b1N0cmluZ1RhZyIpLGc9RXJyb3Isdz1mdW5jdGlvbihPLFQsUyl7dmFyIEw9bihFLHRoaXMpLEk7cmV0dXJuIGk/ST1pKG5ldyBnLEw/dCh0aGlzKTpFKTooST1MP3RoaXM6YShFKSx1KEksQywiRXJyb3IiKSksUyE9PXZvaWQgMCYmdShJLCJtZXNzYWdlIixkKFMpKSxoKEksdyxJLnN0YWNrLDEpLHUoSSwiZXJyb3IiLE8pLHUoSSwic3VwcHJlc3NlZCIsVCksSX07aT9pKHcsZyk6cyh3LGcse25hbWU6ITB9KTt2YXIgRT13LnByb3RvdHlwZT1hKGcucHJvdG90eXBlLHtjb25zdHJ1Y3RvcjpjKDEsdyksbWVzc2FnZTpjKDEsIiIpLG5hbWU6YygxLCJTdXBwcmVzc2VkRXJyb3IiKX0pO3Ioe2dsb2JhbDohMCxjb25zdHJ1Y3RvcjohMCxhcml0eTozfSx7U3VwcHJlc3NlZEVycm9yOnd9KX0sODA1NDY6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDE5MDM3KSxuPWUoMzU0MDUpLHQ9ZSg3MjU2MCkuZixpPWUoODI0NzQpLmYscz1yLlN5bWJvbDtpZihuKCJhc3luY0Rpc3Bvc2UiKSxzKXt2YXIgYT1pKHMsImFzeW5jRGlzcG9zZSIpO2EuZW51bWVyYWJsZSYmYS5jb25maWd1cmFibGUmJmEud3JpdGFibGUmJnQocywiYXN5bmNEaXNwb3NlIix7dmFsdWU6YS52YWx1ZSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMSx3cml0YWJsZTohMX0pfX0sNjI1ODY6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDE5MDM3KSxuPWUoMzU0MDUpLHQ9ZSg3MjU2MCkuZixpPWUoODI0NzQpLmYscz1yLlN5bWJvbDtpZihuKCJkaXNwb3NlIikscyl7dmFyIGE9aShzLCJkaXNwb3NlIik7YS5lbnVtZXJhYmxlJiZhLmNvbmZpZ3VyYWJsZSYmYS53cml0YWJsZSYmdChzLCJkaXNwb3NlIix7dmFsdWU6YS52YWx1ZSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMSx3cml0YWJsZTohMX0pfX0sNDYwMTk6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc5OTg5KSxuPWUoMTg5OTIpO3Ioe3RhcmdldDoiU3ltYm9sIixzdGF0OiEwfSx7aXNSZWdpc3RlcmVkU3ltYm9sOm59KX0sNTAxMDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSgxODk5Mik7cih7dGFyZ2V0OiJTeW1ib2wiLHN0YXQ6ITAsbmFtZToiaXNSZWdpc3RlcmVkU3ltYm9sIn0se2lzUmVnaXN0ZXJlZDpufSl9LDQ1NzQ5OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDg5NTcpO3Ioe3RhcmdldDoiU3ltYm9sIixzdGF0OiEwLGZvcmNlZDohMH0se2lzV2VsbEtub3duU3ltYm9sOm59KX0sNDgzNTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSg4OTU3KTtyKHt0YXJnZXQ6IlN5bWJvbCIsc3RhdDohMCxuYW1lOiJpc1dlbGxLbm93blN5bWJvbCIsZm9yY2VkOiEwfSx7aXNXZWxsS25vd246bn0pfSw1ODc5OTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoMzU0MDUpO3IoIm1hdGNoZXIiKX0sMjcwNDE6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDM1NDA1KTtyKCJtZXRhZGF0YUtleSIpfSwxODEzNDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoMzU0MDUpO3IoIm1ldGFkYXRhIil9LDQ0NzY3OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSgzNTQwNSk7cigib2JzZXJ2YWJsZSIpfSw5Mjk4MTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoMzU0MDUpO3IoInBhdHRlcm5NYXRjaCIpfSw4NTA0NDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoMzU0MDUpO3IoInJlcGxhY2VBbGwiKX0sMTgyNDE6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDU0ODcyKSxuPWUoMjk2MCkuZmlsdGVyUmVqZWN0LHQ9ZSgyMDcxNiksaT1yLmFUeXBlZEFycmF5LHM9ci5leHBvcnRUeXBlZEFycmF5TWV0aG9kO3MoImZpbHRlck91dCIsZnVuY3Rpb24odSl7dmFyIGM9bihpKHRoaXMpLHUsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApO3JldHVybiB0KHRoaXMsYyl9LCEwKX0sNTkzNTk6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDU0ODcyKSxuPWUoMjk2MCkuZmlsdGVyUmVqZWN0LHQ9ZSgyMDcxNiksaT1yLmFUeXBlZEFycmF5LHM9ci5leHBvcnRUeXBlZEFycmF5TWV0aG9kO3MoImZpbHRlclJlamVjdCIsZnVuY3Rpb24odSl7dmFyIGM9bihpKHRoaXMpLHUsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApO3JldHVybiB0KHRoaXMsYyl9LCEwKX0sNzY2Nzc6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc2MDU4KSxuPWUoNTI2NTUpLHQ9ZSgyMjMxKSxpPWUoNTQ4NzIpLHM9ZSg1OTk3NiksYT1pLmFUeXBlZEFycmF5Q29uc3RydWN0b3IsdT1pLmV4cG9ydFR5cGVkQXJyYXlTdGF0aWNNZXRob2Q7dSgiZnJvbUFzeW5jIixmdW5jdGlvbihoKXt2YXIgZD10aGlzLG09YXJndW1lbnRzLmxlbmd0aCxDPW0+MT9hcmd1bWVudHNbMV06dm9pZCAwLGc9bT4yP2FyZ3VtZW50c1syXTp2b2lkIDA7cmV0dXJuIG5ldyhyKCJQcm9taXNlIikpKGZ1bmN0aW9uKHcpe24oZCksdyh0KGgsQyxnKSl9KS50aGVuKGZ1bmN0aW9uKHcpe3JldHVybiBzKGEoZCksdyl9KX0sITApfSwzMDU0ODpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNTQ4NzIpLG49ZSg2NDk3NiksdD1lKDQ3MzM4KSxpPXIuYVR5cGVkQXJyYXkscz1yLmV4cG9ydFR5cGVkQXJyYXlNZXRob2Q7cygiZ3JvdXBCeSIsZnVuY3Rpb24odSl7dmFyIGM9YXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDA7cmV0dXJuIG4oaSh0aGlzKSx1LGMsdCl9LCEwKX0sOTE1OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg1NDg3Miksbj1lKDYzMTApLHQ9ZSg5NDAxKSxpPWUoMjc1NzgpLHM9ZSg3MTUzMCksYT1lKDY4NzAwKSx1PWUoMzY4OSksYz1yLmFUeXBlZEFycmF5LGg9ci5nZXRUeXBlZEFycmF5Q29uc3RydWN0b3IsZD1yLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QsbT1NYXRoLm1heCxDPU1hdGgubWluLGc9IXUoZnVuY3Rpb24oKXt2YXIgdz1uZXcgSW50OEFycmF5KFsxXSksRT13LnRvU3BsaWNlZCgxLDAse3ZhbHVlT2Y6ZnVuY3Rpb24oKXtyZXR1cm4gd1swXT0yLDN9fSk7cmV0dXJuIEVbMF0hPT0yfHxFWzFdIT09M30pO2QoInRvU3BsaWNlZCIsZnVuY3Rpb24oRSx4KXt2YXIgTz1jKHRoaXMpLFQ9aChPKSxTPW4oTyksTD1pKEUsUyksST1hcmd1bWVudHMubGVuZ3RoLFI9MCx6LEcsWSxlZSxKLG1lLHRlO2lmKEk9PT0wKXo9Rz0wO2Vsc2UgaWYoST09PTEpej0wLEc9Uy1MO2Vsc2UgaWYoRz1DKG0oYSh4KSwwKSxTLUwpLHo9SS0yLHope2VlPW5ldyBUKHopLFk9dChlZSk7Zm9yKHZhciBsZT0yO2xlPEk7bGUrKylKPWFyZ3VtZW50c1tsZV0sZWVbbGUtMl09WT9zKEopOitKfWZvcihtZT1TK3otRyx0ZT1uZXcgVChtZSk7UjxMO1IrKyl0ZVtSXT1PW1JdO2Zvcig7UjxMK3o7UisrKXRlW1JdPWVlW1ItTF07Zm9yKDtSPG1lO1IrKyl0ZVtSXT1PW1IrRy16XTtyZXR1cm4gdGV9LCFnKX0sOTEyMzg6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDY4ODQ0KSxuPWUoNTQ4NzIpLHQ9ZSg1OTk3NiksaT1lKDEyMzk3KSxzPW4uYVR5cGVkQXJyYXksYT1uLmdldFR5cGVkQXJyYXlDb25zdHJ1Y3Rvcix1PW4uZXhwb3J0VHlwZWRBcnJheU1ldGhvZCxjPXIoaSk7dSgidW5pcXVlQnkiLGZ1bmN0aW9uKGQpe3JldHVybiBzKHRoaXMpLHQoYSh0aGlzKSxjKHRoaXMsZCkpfSwhMCl9LDIzNTc5OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDE5MDM3KSx0PWUoNjg4NDQpLGk9ZSgzMzQyNSkscz1lKDUxMDgyKSxhPWUoMzY4MTIpLHU9ZSg1OTk3NiksYz1lKDE4MzY4KSxoPWUoOTA5MyksZD1jLmMyaSxtPWMuYzJpVXJsLEM9bi5VaW50OEFycmF5LGc9bi5TeW50YXhFcnJvcix3PXQoIiIuY2hhckF0KSxFPXQoIiIucmVwbGFjZSkseD10KCIiLnNsaWNlKSxPPXQoW10ucHVzaCksVD0vW1x0XG5cZlxyIF0vZyxTPSJFeHRyYSBiaXRzIjtDJiZyKHt0YXJnZXQ6IlVpbnQ4QXJyYXkiLHN0YXQ6ITAsZm9yY2VkOiEwfSx7ZnJvbUJhc2U2NDpmdW5jdGlvbihJKXtzKEkpO3ZhciBSPWFyZ3VtZW50cy5sZW5ndGg+MT9pKGFyZ3VtZW50c1sxXSk6dm9pZCAwLHo9aChSKT09PSJiYXNlNjQiP2Q6bSxHPVI/ISFSLnN0cmljdDohMSxZPUc/STpFKEksVCwiIik7aWYoWS5sZW5ndGglND09PTApeChZLC0yKT09PSI9PSI/WT14KFksMCwtMik6eChZLC0xKT09PSI9IiYmKFk9eChZLDAsLTEpKTtlbHNlIGlmKEcpdGhyb3cgbmV3IGcoIklucHV0IGlzIG5vdCBjb3JyZWN0bHkgcGFkZGVkIik7dmFyIGVlPVkubGVuZ3RoJTQ7c3dpdGNoKGVlKXtjYXNlIDE6dGhyb3cgbmV3IGcoIkJhZCBpbnB1dCBsZW5ndGgiKTtjYXNlIDI6WSs9IkFBIjticmVhaztjYXNlIDM6WSs9IkEifWZvcih2YXIgSj1bXSxtZT0wLHRlPVkubGVuZ3RoLGxlPWZ1bmN0aW9uKGope3ZhciBEPXcoWSxtZStqKTtpZighYSh6LEQpKXRocm93IG5ldyBnKCdCYWQgY2hhciBpbiBpbnB1dDogIicrRCsnIicpO3JldHVybiB6W0RdPDwxOC02Kmp9O21lPHRlO21lKz00KXt2YXIgY2U9bGUoMCkrbGUoMSkrbGUoMikrbGUoMyk7TyhKLGNlPj4xNiYyNTUsY2U+PjgmMjU1LGNlJjI1NSl9dmFyIFc9Si5sZW5ndGg7aWYoZWU9PT0yKXtpZihHJiZKW1ctMl0hPT0wKXRocm93IG5ldyBnKFMpO1ctPTJ9ZWxzZSBpZihlZT09PTMpe2lmKEcmJkpbVy0xXSE9PTApdGhyb3cgbmV3IGcoUyk7Vy0tfXJldHVybiB1KEMsSixXKX19KX0sOTExMTc6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc5OTg5KSxuPWUoMTkwMzcpLHQ9ZSg2ODg0NCksaT1lKDUxMDgyKSxzPW4uVWludDhBcnJheSxhPW4uU3ludGF4RXJyb3IsdT1uLnBhcnNlSW50LGM9L1teXGRhLWZdL2ksaD10KGMuZXhlYyksZD10KCIiLnNsaWNlKTtzJiZyKHt0YXJnZXQ6IlVpbnQ4QXJyYXkiLHN0YXQ6ITAsZm9yY2VkOiEwfSx7ZnJvbUhleDpmdW5jdGlvbihDKXtpKEMpO3ZhciBnPUMubGVuZ3RoO2lmKGclMil0aHJvdyBuZXcgYSgiU3RyaW5nIHNob3VsZCBoYXZlIGFuIGV2ZW4gbnVtYmVyIG9mIGNoYXJhY3RlcnMiKTtpZihoKGMsQykpdGhyb3cgbmV3IGEoIlN0cmluZyBzaG91bGQgb25seSBjb250YWluIGhleCBjaGFyYWN0ZXJzIik7Zm9yKHZhciB3PW5ldyBzKGcvMiksRT0wO0U8ZztFKz0yKXdbRS8yXT11KGQoQyxFLEUrMiksMTYpO3JldHVybiB3fX0pfSw4NTcyMzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSgxOTAzNyksdD1lKDY4ODQ0KSxpPWUoMzM0MjUpLHM9ZSg5NTY2OCksYT1lKDE4MzY4KSx1PWUoOTA5MyksYz1hLmkyYyxoPWEuaTJjVXJsLGQ9bi5VaW50OEFycmF5LG09dCgiIi5jaGFyQXQpO2QmJnIoe3RhcmdldDoiVWludDhBcnJheSIscHJvdG86ITAsZm9yY2VkOiEwfSx7dG9CYXNlNjQ6ZnVuY3Rpb24oKXtmb3IodmFyIGc9cyh0aGlzKSx3PWFyZ3VtZW50cy5sZW5ndGg/aShhcmd1bWVudHNbMF0pOnZvaWQgMCxFPXUodyk9PT0iYmFzZTY0Ij9jOmgseD0iIixPPTAsVD1nLmxlbmd0aCxTLEw9ZnVuY3Rpb24oSSl7cmV0dXJuIG0oRSxTPj42KkkmNjMpfTtPKzI8VDtPKz0zKVM9KGdbT108PDE2KSsoZ1tPKzFdPDw4KStnW08rMl0seCs9TCgzKStMKDIpK0woMSkrTCgwKTtyZXR1cm4gTysyPT09VD8oUz0oZ1tPXTw8MTYpKyhnW08rMV08PDgpLHgrPUwoMykrTCgyKStMKDEpKyI9Iik6TysxPT09VCYmKFM9Z1tPXTw8MTYseCs9TCgzKStMKDIpKyI9PSIpLHh9fSl9LDY4NjgwOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDE5MDM3KSx0PWUoNjg4NDQpLGk9ZSg5NTY2OCkscz1uLlVpbnQ4QXJyYXksYT10KDEgLnRvU3RyaW5nKTtzJiZyKHt0YXJnZXQ6IlVpbnQ4QXJyYXkiLHByb3RvOiEwLGZvcmNlZDohMH0se3RvSGV4OmZ1bmN0aW9uKCl7aSh0aGlzKTtmb3IodmFyIGM9IiIsaD0wLGQ9dGhpcy5sZW5ndGg7aDxkO2grKyl7dmFyIG09YSh0aGlzW2hdLDE2KTtjKz1tLmxlbmd0aD09PTE/IjAiK206bX1yZXR1cm4gY319KX0sNzcyMjU6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc5OTg5KSxuPWUoNDU3KSx0PWUoMTY4MDMpLnJlbW92ZTtyKHt0YXJnZXQ6IldlYWtNYXAiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiEwfSx7ZGVsZXRlQWxsOmZ1bmN0aW9uKCl7Zm9yKHZhciBzPW4odGhpcyksYT0hMCx1LGM9MCxoPWFyZ3VtZW50cy5sZW5ndGg7YzxoO2MrKyl1PXQocyxhcmd1bWVudHNbY10pLGE9YSYmdTtyZXR1cm4hIWF9fSl9LDkwMjAxOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDQ1NyksdD1lKDE2ODAzKSxpPXQuZ2V0LHM9dC5oYXMsYT10LnNldDtyKHt0YXJnZXQ6IldlYWtNYXAiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiEwfSx7ZW1wbGFjZTpmdW5jdGlvbihjLGgpe3ZhciBkPW4odGhpcyksbSxDO3JldHVybiBzKGQsYyk/KG09aShkLGMpLCJ1cGRhdGUiaW4gaCYmKG09aC51cGRhdGUobSxjLGQpLGEoZCxjLG0pKSxtKTooQz1oLmluc2VydChjLGQpLGEoZCxjLEMpLEMpfX0pfSw5OTM2OTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSgyODczNyk7cih7dGFyZ2V0OiJXZWFrTWFwIixzdGF0OiEwLGZvcmNlZDohMH0se2Zyb206bn0pfSwyMjk4MzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSgxMTE0KTtyKHt0YXJnZXQ6IldlYWtNYXAiLHN0YXQ6ITAsZm9yY2VkOiEwfSx7b2Y6bn0pfSwxMzQ2NjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSg0MTQzMik7cih7dGFyZ2V0OiJXZWFrTWFwIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohMH0se3Vwc2VydDpufSl9LDIzMzIxOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDUzNDk5KSx0PWUoNzg2MTYpLmFkZDtyKHt0YXJnZXQ6IldlYWtTZXQiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiEwfSx7YWRkQWxsOmZ1bmN0aW9uKCl7Zm9yKHZhciBzPW4odGhpcyksYT0wLHU9YXJndW1lbnRzLmxlbmd0aDthPHU7YSsrKXQocyxhcmd1bWVudHNbYV0pO3JldHVybiBzfX0pfSw4NDkzMDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSg1MzQ5OSksdD1lKDc4NjE2KS5yZW1vdmU7cih7dGFyZ2V0OiJXZWFrU2V0Iixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohMH0se2RlbGV0ZUFsbDpmdW5jdGlvbigpe2Zvcih2YXIgcz1uKHRoaXMpLGE9ITAsdSxjPTAsaD1hcmd1bWVudHMubGVuZ3RoO2M8aDtjKyspdT10KHMsYXJndW1lbnRzW2NdKSxhPWEmJnU7cmV0dXJuISFhfX0pfSw5MjQ2NTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSgyODczNyk7cih7dGFyZ2V0OiJXZWFrU2V0IixzdGF0OiEwLGZvcmNlZDohMH0se2Zyb206bn0pfSw0NTczODpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSgxMTE0KTtyKHt0YXJnZXQ6IldlYWtTZXQiLHN0YXQ6ITAsZm9yY2VkOiEwfSx7b2Y6bn0pfSwxOTc0MjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSgxOTAzNyksdD1lKDk5ODg2KS5jbGVhcjtyKHtnbG9iYWw6ITAsYmluZDohMCxlbnVtZXJhYmxlOiEwLGZvcmNlZDpuLmNsZWFySW1tZWRpYXRlIT09dH0se2NsZWFySW1tZWRpYXRlOnR9KX0sMTM0Mjk6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc5OTg5KSxuPWUoMTkwMzcpLHQ9ZSg3NjA1OCksaT1lKDc1Njg0KSxzPWUoNzI1NjApLmYsYT1lKDM2ODEyKSx1PWUoNzY3KSxjPWUoMzM0NTcpLGg9ZSgxMzg0MSksZD1lKDM3MTM2KSxtPWUoNTY2MTApLEM9ZSg2NzY5NyksZz1lKDUzOTMxKSx3PSJET01FeGNlcHRpb24iLEU9dCgiRXJyb3IiKSx4PXQodyksTz1mdW5jdGlvbigpe3UodGhpcyxUKTt2YXIgbGU9YXJndW1lbnRzLmxlbmd0aCxjZT1oKGxlPDE/dm9pZCAwOmFyZ3VtZW50c1swXSksVz1oKGxlPDI/dm9pZCAwOmFyZ3VtZW50c1sxXSwiRXJyb3IiKSxqPW5ldyB4KGNlLFcpLEQ9bmV3IEUoY2UpO3JldHVybiBELm5hbWU9dyxzKGosInN0YWNrIixpKDEsbShELnN0YWNrLDEpKSksYyhqLHRoaXMsTyksan0sVD1PLnByb3RvdHlwZT14LnByb3RvdHlwZSxTPSJzdGFjayJpbiBuZXcgRSh3KSxMPSJzdGFjayJpbiBuZXcgeCgxLDIpLEk9eCYmQyYmT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHcpLFI9ISFJJiYhKEkud3JpdGFibGUmJkkuY29uZmlndXJhYmxlKSx6PVMmJiFSJiYhTDtyKHtnbG9iYWw6ITAsY29uc3RydWN0b3I6ITAsZm9yY2VkOmd8fHp9LHtET01FeGNlcHRpb246ej9POnh9KTt2YXIgRz10KHcpLFk9Ry5wcm90b3R5cGU7aWYoWS5jb25zdHJ1Y3RvciE9PUcpe2d8fHMoWSwiY29uc3RydWN0b3IiLGkoMSxHKSk7Zm9yKHZhciBlZSBpbiBkKWlmKGEoZCxlZSkpe3ZhciBKPWRbZWVdLG1lPUouczthKEcsbWUpfHxzKEcsbWUsaSg2LEouYykpfX19LDQwMDg4OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZSgxOTc0MiksZSg1MjczMSl9LDM2NTA6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDc5OTg5KSxuPWUoMTkwMzcpLHQ9ZSg2MjE0OCksaT1lKDY3Njk3KSxzPVR5cGVFcnJvcixhPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSx1PW4uc2VsZiE9PW47dHJ5e2lmKGkpe3ZhciBjPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobiwic2VsZiIpOyh1fHwhY3x8IWMuZ2V0fHwhYy5lbnVtZXJhYmxlKSYmdChuLCJzZWxmIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG59LHNldDpmdW5jdGlvbihkKXtpZih0aGlzIT09bil0aHJvdyBuZXcgcygiSWxsZWdhbCBpbnZvY2F0aW9uIik7YShuLCJzZWxmIix7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMH0pfSxjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMH0pfWVsc2Ugcih7Z2xvYmFsOiEwLHNpbXBsZTohMCxmb3JjZWQ6dX0se3NlbGY6bn0pfWNhdGNoKGgpe319LDUyNzMxOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg3OTk4OSksbj1lKDE5MDM3KSx0PWUoOTk4ODYpLnNldCxpPWUoODU1Mikscz1uLnNldEltbWVkaWF0ZT9pKHQsITEpOnQ7cih7Z2xvYmFsOiEwLGJpbmQ6ITAsZW51bWVyYWJsZTohMCxmb3JjZWQ6bi5zZXRJbW1lZGlhdGUhPT1zfSx7c2V0SW1tZWRpYXRlOnN9KX0sMjU1NjQ6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDUzOTMxKSxuPWUoNzk5ODkpLHQ9ZSgxOTAzNyksaT1lKDc2MDU4KSxzPWUoNjg4NDQpLGE9ZSgzNjg5KSx1PWUoMTQ2MzApLGM9ZSg2OTk4NSksaD1lKDE5NDI5KSxkPWUoOTgxKSxtPWUoNDg5OTkpLEM9ZSgzMDczNCksZz1lKDE4NzM0KSx3PWUoODUwMjcpLEU9ZSg1MDkyNikseD1lKDM2ODEyKSxPPWUoNzY1MjIpLFQ9ZSg3NTc3MyksUz1lKDYzMTApLEw9ZSgyMTUwMCksST1lKDYzNDc3KSxSPWUoODM5MTQpLHo9ZSg2MTAzNCksRz1lKDQ4Nzc0KSxZPWUoMjE0MjApLGVlPWUoNDk1OTkpLEo9ZSg2MzUxNCksbWU9dC5PYmplY3QsdGU9dC5BcnJheSxsZT10LkRhdGUsY2U9dC5FcnJvcixXPXQuVHlwZUVycm9yLGo9dC5QZXJmb3JtYW5jZU1hcmssRD1pKCJET01FeGNlcHRpb24iKSxWPVIuTWFwLFo9Ui5oYXMsUD1SLmdldCxLPVIuc2V0LHNlPXouU2V0LG5lPXouYWRkLG9lPXouaGFzLGZlPWkoIk9iamVjdCIsImtleXMiKSxFZT1zKFtdLnB1c2gpLFJlPXMoKCEwKS52YWx1ZU9mKSxCZT1zKDEgLnZhbHVlT2YpLFllPXMoIiIudmFsdWVPZiksb3Q9cyhsZS5wcm90b3R5cGUuZ2V0VGltZSkscWU9dSgic3RydWN0dXJlZENsb25lIiksX2U9IkRhdGFDbG9uZUVycm9yIixGZT0iVHJhbnNmZXJyaW5nIixTZT1mdW5jdGlvbihNZSl7cmV0dXJuIWEoZnVuY3Rpb24oKXt2YXIgYmU9bmV3IHQuU2V0KFs3XSksJGU9TWUoYmUpLGtlPU1lKG1lKDcpKTtyZXR1cm4gJGU9PT1iZXx8ISRlLmhhcyg3KXx8IW0oa2UpfHwra2UhPTd9KSYmTWV9LHE9ZnVuY3Rpb24oTWUsYmUpe3JldHVybiFhKGZ1bmN0aW9uKCl7dmFyICRlPW5ldyBiZSxrZT1NZSh7YTokZSxiOiRlfSk7cmV0dXJuIShrZSYma2UuYT09PWtlLmImJmtlLmEgaW5zdGFuY2VvZiBiZSYma2UuYS5zdGFjaz09PSRlLnN0YWNrKX0pfSxrPWZ1bmN0aW9uKE1lKXtyZXR1cm4hYShmdW5jdGlvbigpe3ZhciBiZT1NZShuZXcgdC5BZ2dyZWdhdGVFcnJvcihbMV0scWUse2NhdXNlOjN9KSk7cmV0dXJuIGJlLm5hbWUhPT0iQWdncmVnYXRlRXJyb3IifHxiZS5lcnJvcnNbMF0hPT0xfHxiZS5tZXNzYWdlIT09cWV8fGJlLmNhdXNlIT09M30pfSxNPXQuc3RydWN0dXJlZENsb25lLEE9cnx8IXEoTSxjZSl8fCFxKE0sRCl8fCFrKE0pLFU9IU0mJlNlKGZ1bmN0aW9uKE1lKXtyZXR1cm4gbmV3IGoocWUse2RldGFpbDpNZX0pLmRldGFpbH0pLE49U2UoTSl8fFUsUT1mdW5jdGlvbihNZSl7dGhyb3cgbmV3IEQoIlVuY2xvbmVhYmxlIHR5cGU6ICIrTWUsX2UpfSx1ZT1mdW5jdGlvbihNZSxiZSl7dGhyb3cgbmV3IEQoKGJlfHwiQ2xvbmluZyIpKyIgb2YgIitNZSsiIGNhbm5vdCBiZSBwcm9wZXJseSBwb2x5ZmlsbGVkIGluIHRoaXMgZW5naW5lIixfZSl9LCQ9ZnVuY3Rpb24oTWUsYmUpe3JldHVybiBOfHx1ZShiZSksTihNZSl9LF89ZnVuY3Rpb24oKXt2YXIgTWU7dHJ5e01lPW5ldyB0LkRhdGFUcmFuc2Zlcn1jYXRjaChiZSl7dHJ5e01lPW5ldyB0LkNsaXBib2FyZEV2ZW50KCIiKS5jbGlwYm9hcmREYXRhfWNhdGNoKCRlKXt9fXJldHVybiBNZSYmTWUuaXRlbXMmJk1lLmZpbGVzP01lOm51bGx9LHBlPWZ1bmN0aW9uKE1lLGJlLCRlKXtpZihaKGJlLE1lKSlyZXR1cm4gUChiZSxNZSk7dmFyIGtlPSRlfHxFKE1lKSxBZSx0dCxtdCx1dCxEZSxOZTtpZihrZT09PSJTaGFyZWRBcnJheUJ1ZmZlciIpTj9BZT1OKE1lKTpBZT1NZTtlbHNle3ZhciBYZT10LkRhdGFWaWV3OyFYZSYmIWMoTWUuc2xpY2UpJiZ1ZSgiQXJyYXlCdWZmZXIiKTt0cnl7aWYoYyhNZS5zbGljZSkmJiFNZS5yZXNpemFibGUpQWU9TWUuc2xpY2UoMCk7ZWxzZSBmb3IodHQ9TWUuYnl0ZUxlbmd0aCxtdD0oIm1heEJ5dGVMZW5ndGgiaW4gTWUpP3ttYXhCeXRlTGVuZ3RoOk1lLm1heEJ5dGVMZW5ndGh9OnZvaWQgMCxBZT1uZXcgQXJyYXlCdWZmZXIodHQsbXQpLHV0PW5ldyBYZShNZSksRGU9bmV3IFhlKEFlKSxOZT0wO05lPHR0O05lKyspRGUuc2V0VWludDgoTmUsdXQuZ2V0VWludDgoTmUpKX1jYXRjaChKZSl7dGhyb3cgbmV3IEQoIkFycmF5QnVmZmVyIGlzIGRldGFjaGVkIixfZSl9fXJldHVybiBLKGJlLE1lLEFlKSxBZX0scmU9ZnVuY3Rpb24oTWUsYmUsJGUsa2UsQWUpe3ZhciB0dD10W2JlXTtyZXR1cm4gbSh0dCl8fHVlKGJlKSxuZXcgdHQocGUoTWUuYnVmZmVyLEFlKSwkZSxrZSl9LGFlPWZ1bmN0aW9uKE1lLGJlKXtpZihDKE1lKSYmUSgiU3ltYm9sIiksIW0oTWUpKXJldHVybiBNZTtpZihiZSl7aWYoWihiZSxNZSkpcmV0dXJuIFAoYmUsTWUpfWVsc2UgYmU9bmV3IFY7dmFyICRlPUUoTWUpLGtlLEFlLHR0LG10LHV0LERlLE5lLFhlO3N3aXRjaCgkZSl7Y2FzZSJBcnJheSI6dHQ9dGUoUyhNZSkpO2JyZWFrO2Nhc2UiT2JqZWN0Ijp0dD17fTticmVhaztjYXNlIk1hcCI6dHQ9bmV3IFY7YnJlYWs7Y2FzZSJTZXQiOnR0PW5ldyBzZTticmVhaztjYXNlIlJlZ0V4cCI6dHQ9bmV3IFJlZ0V4cChNZS5zb3VyY2UsSShNZSkpO2JyZWFrO2Nhc2UiRXJyb3IiOnN3aXRjaChBZT1NZS5uYW1lLEFlKXtjYXNlIkFnZ3JlZ2F0ZUVycm9yIjp0dD1uZXcoaShBZSkpKFtdKTticmVhaztjYXNlIkV2YWxFcnJvciI6Y2FzZSJSYW5nZUVycm9yIjpjYXNlIlJlZmVyZW5jZUVycm9yIjpjYXNlIlN1cHByZXNzZWRFcnJvciI6Y2FzZSJTeW50YXhFcnJvciI6Y2FzZSJUeXBlRXJyb3IiOmNhc2UiVVJJRXJyb3IiOnR0PW5ldyhpKEFlKSk7YnJlYWs7Y2FzZSJDb21waWxlRXJyb3IiOmNhc2UiTGlua0Vycm9yIjpjYXNlIlJ1bnRpbWVFcnJvciI6dHQ9bmV3KGkoIldlYkFzc2VtYmx5IixBZSkpO2JyZWFrO2RlZmF1bHQ6dHQ9bmV3IGNlfWJyZWFrO2Nhc2UiRE9NRXhjZXB0aW9uIjp0dD1uZXcgRChNZS5tZXNzYWdlLE1lLm5hbWUpO2JyZWFrO2Nhc2UiQXJyYXlCdWZmZXIiOmNhc2UiU2hhcmVkQXJyYXlCdWZmZXIiOnR0PXBlKE1lLGJlLCRlKTticmVhaztjYXNlIkRhdGFWaWV3IjpjYXNlIkludDhBcnJheSI6Y2FzZSJVaW50OEFycmF5IjpjYXNlIlVpbnQ4Q2xhbXBlZEFycmF5IjpjYXNlIkludDE2QXJyYXkiOmNhc2UiVWludDE2QXJyYXkiOmNhc2UiSW50MzJBcnJheSI6Y2FzZSJVaW50MzJBcnJheSI6Y2FzZSJGbG9hdDE2QXJyYXkiOmNhc2UiRmxvYXQzMkFycmF5IjpjYXNlIkZsb2F0NjRBcnJheSI6Y2FzZSJCaWdJbnQ2NEFycmF5IjpjYXNlIkJpZ1VpbnQ2NEFycmF5IjpEZT0kZT09PSJEYXRhVmlldyI/TWUuYnl0ZUxlbmd0aDpNZS5sZW5ndGgsdHQ9cmUoTWUsJGUsTWUuYnl0ZU9mZnNldCxEZSxiZSk7YnJlYWs7Y2FzZSJET01RdWFkIjp0cnl7dHQ9bmV3IERPTVF1YWQoYWUoTWUucDEsYmUpLGFlKE1lLnAyLGJlKSxhZShNZS5wMyxiZSksYWUoTWUucDQsYmUpKX1jYXRjaChKZSl7dHQ9JChNZSwkZSl9YnJlYWs7Y2FzZSJGaWxlIjppZihOKXRyeXt0dD1OKE1lKSxFKHR0KSE9PSRlJiYodHQ9dm9pZCAwKX1jYXRjaChKZSl7fWlmKCF0dCl0cnl7dHQ9bmV3IEZpbGUoW01lXSxNZS5uYW1lLE1lKX1jYXRjaChKZSl7fXR0fHx1ZSgkZSk7YnJlYWs7Y2FzZSJGaWxlTGlzdCI6aWYobXQ9XygpLG10KXtmb3IodXQ9MCxEZT1TKE1lKTt1dDxEZTt1dCsrKW10Lml0ZW1zLmFkZChhZShNZVt1dF0sYmUpKTt0dD1tdC5maWxlc31lbHNlIHR0PSQoTWUsJGUpO2JyZWFrO2Nhc2UiSW1hZ2VEYXRhIjp0cnl7dHQ9bmV3IEltYWdlRGF0YShhZShNZS5kYXRhLGJlKSxNZS53aWR0aCxNZS5oZWlnaHQse2NvbG9yU3BhY2U6TWUuY29sb3JTcGFjZX0pfWNhdGNoKEplKXt0dD0kKE1lLCRlKX1icmVhaztkZWZhdWx0OmlmKE4pdHQ9TihNZSk7ZWxzZSBzd2l0Y2goJGUpe2Nhc2UiQmlnSW50Ijp0dD1tZShNZS52YWx1ZU9mKCkpO2JyZWFrO2Nhc2UiQm9vbGVhbiI6dHQ9bWUoUmUoTWUpKTticmVhaztjYXNlIk51bWJlciI6dHQ9bWUoQmUoTWUpKTticmVhaztjYXNlIlN0cmluZyI6dHQ9bWUoWWUoTWUpKTticmVhaztjYXNlIkRhdGUiOnR0PW5ldyBsZShvdChNZSkpO2JyZWFrO2Nhc2UiQmxvYiI6dHJ5e3R0PU1lLnNsaWNlKDAsTWUuc2l6ZSxNZS50eXBlKX1jYXRjaChKZSl7dWUoJGUpfWJyZWFrO2Nhc2UiRE9NUG9pbnQiOmNhc2UiRE9NUG9pbnRSZWFkT25seSI6a2U9dFskZV07dHJ5e3R0PWtlLmZyb21Qb2ludD9rZS5mcm9tUG9pbnQoTWUpOm5ldyBrZShNZS54LE1lLnksTWUueixNZS53KX1jYXRjaChKZSl7dWUoJGUpfWJyZWFrO2Nhc2UiRE9NUmVjdCI6Y2FzZSJET01SZWN0UmVhZE9ubHkiOmtlPXRbJGVdO3RyeXt0dD1rZS5mcm9tUmVjdD9rZS5mcm9tUmVjdChNZSk6bmV3IGtlKE1lLngsTWUueSxNZS53aWR0aCxNZS5oZWlnaHQpfWNhdGNoKEplKXt1ZSgkZSl9YnJlYWs7Y2FzZSJET01NYXRyaXgiOmNhc2UiRE9NTWF0cml4UmVhZE9ubHkiOmtlPXRbJGVdO3RyeXt0dD1rZS5mcm9tTWF0cml4P2tlLmZyb21NYXRyaXgoTWUpOm5ldyBrZShNZSl9Y2F0Y2goSmUpe3VlKCRlKX1icmVhaztjYXNlIkF1ZGlvRGF0YSI6Y2FzZSJWaWRlb0ZyYW1lIjpjKE1lLmNsb25lKXx8dWUoJGUpO3RyeXt0dD1NZS5jbG9uZSgpfWNhdGNoKEplKXtRKCRlKX1icmVhaztjYXNlIkNyb3BUYXJnZXQiOmNhc2UiQ3J5cHRvS2V5IjpjYXNlIkZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUiOmNhc2UiRmlsZVN5c3RlbUZpbGVIYW5kbGUiOmNhc2UiRmlsZVN5c3RlbUhhbmRsZSI6Y2FzZSJHUFVDb21waWxhdGlvbkluZm8iOmNhc2UiR1BVQ29tcGlsYXRpb25NZXNzYWdlIjpjYXNlIkltYWdlQml0bWFwIjpjYXNlIlJUQ0NlcnRpZmljYXRlIjpjYXNlIldlYkFzc2VtYmx5Lk1vZHVsZSI6dWUoJGUpO2RlZmF1bHQ6USgkZSl9fXN3aXRjaChLKGJlLE1lLHR0KSwkZSl7Y2FzZSJBcnJheSI6Y2FzZSJPYmplY3QiOmZvcihOZT1mZShNZSksdXQ9MCxEZT1TKE5lKTt1dDxEZTt1dCsrKVhlPU5lW3V0XSxPKHR0LFhlLGFlKE1lW1hlXSxiZSkpO2JyZWFrO2Nhc2UiTWFwIjpNZS5mb3JFYWNoKGZ1bmN0aW9uKEplLGd0KXtLKHR0LGFlKGd0LGJlKSxhZShKZSxiZSkpfSk7YnJlYWs7Y2FzZSJTZXQiOk1lLmZvckVhY2goZnVuY3Rpb24oSmUpe25lKHR0LGFlKEplLGJlKSl9KTticmVhaztjYXNlIkVycm9yIjpUKHR0LCJtZXNzYWdlIixhZShNZS5tZXNzYWdlLGJlKSkseChNZSwiY2F1c2UiKSYmVCh0dCwiY2F1c2UiLGFlKE1lLmNhdXNlLGJlKSksQWU9PT0iQWdncmVnYXRlRXJyb3IiP3R0LmVycm9ycz1hZShNZS5lcnJvcnMsYmUpOkFlPT09IlN1cHByZXNzZWRFcnJvciImJih0dC5lcnJvcj1hZShNZS5lcnJvcixiZSksdHQuc3VwcHJlc3NlZD1hZShNZS5zdXBwcmVzc2VkLGJlKSk7Y2FzZSJET01FeGNlcHRpb24iOmVlJiZUKHR0LCJzdGFjayIsYWUoTWUuc3RhY2ssYmUpKX1yZXR1cm4gdHR9LHdlPWZ1bmN0aW9uKE1lLGJlKXtpZighbShNZSkpdGhyb3cgbmV3IFcoIlRyYW5zZmVyIG9wdGlvbiBjYW5ub3QgYmUgY29udmVydGVkIHRvIGEgc2VxdWVuY2UiKTt2YXIgJGU9W107ZyhNZSxmdW5jdGlvbihndCl7RWUoJGUsdyhndCkpfSk7Zm9yKHZhciBrZT0wLEFlPVMoJGUpLHR0PW5ldyBzZSxtdCx1dCxEZSxOZSxYZSxKZTtrZTxBZTspe2lmKG10PSRlW2tlKytdLHV0PUUobXQpLHV0PT09IkFycmF5QnVmZmVyIj9vZSh0dCxtdCk6WihiZSxtdCkpdGhyb3cgbmV3IEQoIkR1cGxpY2F0ZSB0cmFuc2ZlcmFibGUiLF9lKTtpZih1dD09PSJBcnJheUJ1ZmZlciIpe25lKHR0LG10KTtjb250aW51ZX1pZihKKU5lPU0obXQse3RyYW5zZmVyOlttdF19KTtlbHNlIHN3aXRjaCh1dCl7Y2FzZSJJbWFnZUJpdG1hcCI6RGU9dC5PZmZzY3JlZW5DYW52YXMsaChEZSl8fHVlKHV0LEZlKTt0cnl7WGU9bmV3IERlKG10LndpZHRoLG10LmhlaWdodCksSmU9WGUuZ2V0Q29udGV4dCgiYml0bWFwcmVuZGVyZXIiKSxKZS50cmFuc2ZlckZyb21JbWFnZUJpdG1hcChtdCksTmU9WGUudHJhbnNmZXJUb0ltYWdlQml0bWFwKCl9Y2F0Y2goZ3Qpe31icmVhaztjYXNlIkF1ZGlvRGF0YSI6Y2FzZSJWaWRlb0ZyYW1lIjooIWMobXQuY2xvbmUpfHwhYyhtdC5jbG9zZSkpJiZ1ZSh1dCxGZSk7dHJ5e05lPW10LmNsb25lKCksbXQuY2xvc2UoKX1jYXRjaChndCl7fWJyZWFrO2Nhc2UiTWVkaWFTb3VyY2VIYW5kbGUiOmNhc2UiTWVzc2FnZVBvcnQiOmNhc2UiT2Zmc2NyZWVuQ2FudmFzIjpjYXNlIlJlYWRhYmxlU3RyZWFtIjpjYXNlIlRyYW5zZm9ybVN0cmVhbSI6Y2FzZSJXcml0YWJsZVN0cmVhbSI6dWUodXQsRmUpfWlmKE5lPT09dm9pZCAwKXRocm93IG5ldyBEKCJUaGlzIG9iamVjdCBjYW5ub3QgYmUgdHJhbnNmZXJyZWQ6ICIrdXQsX2UpO0soYmUsbXQsTmUpfXJldHVybiB0dH0sTGU9ZnVuY3Rpb24oTWUpe0coTWUsZnVuY3Rpb24oYmUpe0o/TihiZSx7dHJhbnNmZXI6W2JlXX0pOmMoYmUudHJhbnNmZXIpP2JlLnRyYW5zZmVyKCk6WT9ZKGJlKTp1ZSgiQXJyYXlCdWZmZXIiLEZlKX0pfTtuKHtnbG9iYWw6ITAsZW51bWVyYWJsZTohMCxzaGFtOiFKLGZvcmNlZDpBfSx7c3RydWN0dXJlZENsb25lOmZ1bmN0aW9uKGJlKXt2YXIgJGU9TChhcmd1bWVudHMubGVuZ3RoLDEpPjEmJiFkKGFyZ3VtZW50c1sxXSk/dyhhcmd1bWVudHNbMV0pOnZvaWQgMCxrZT0kZT8kZS50cmFuc2Zlcjp2b2lkIDAsQWUsdHQ7a2UhPT12b2lkIDAmJihBZT1uZXcgVix0dD13ZShrZSxBZSkpO3ZhciBtdD1hZShiZSxBZSk7cmV0dXJuIHR0JiZMZSh0dCksbXR9fSl9LDk4ODU4OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSgxMTg4MCksbj1lKDY4ODQ0KSx0PWUoMzQzMjcpLGk9ZSgyMTUwMCkscz1VUkxTZWFyY2hQYXJhbXMsYT1zLnByb3RvdHlwZSx1PW4oYS5hcHBlbmQpLGM9bihhLmRlbGV0ZSksaD1uKGEuZm9yRWFjaCksZD1uKFtdLnB1c2gpLG09bmV3IHMoImE9MSZhPTImYj0zIik7bS5kZWxldGUoImEiLDEpLG0uZGVsZXRlKCJiIix2b2lkIDApLG0rIiIhPSJhPTIiJiZyKGEsImRlbGV0ZSIsZnVuY3Rpb24oQyl7dmFyIGc9YXJndW1lbnRzLmxlbmd0aCx3PWc8Mj92b2lkIDA6YXJndW1lbnRzWzFdO2lmKGcmJnc9PT12b2lkIDApcmV0dXJuIGModGhpcyxDKTt2YXIgRT1bXTtoKHRoaXMsZnVuY3Rpb24oeixHKXtkKEUse2tleTpHLHZhbHVlOnp9KX0pLGkoZywxKTtmb3IodmFyIHg9dChDKSxPPXQodyksVD0wLFM9MCxMPSExLEk9RS5sZW5ndGgsUjtUPEk7KVI9RVtUKytdLEx8fFIua2V5PT09eD8oTD0hMCxjKHRoaXMsUi5rZXkpKTpTKys7Zm9yKDtTPEk7KVI9RVtTKytdLFIua2V5PT09eCYmUi52YWx1ZT09PU98fHUodGhpcyxSLmtleSxSLnZhbHVlKX0se2VudW1lcmFibGU6ITAsdW5zYWZlOiEwfSl9LDYxMzE4OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSgxMTg4MCksbj1lKDY4ODQ0KSx0PWUoMzQzMjcpLGk9ZSgyMTUwMCkscz1VUkxTZWFyY2hQYXJhbXMsYT1zLnByb3RvdHlwZSx1PW4oYS5nZXRBbGwpLGM9bihhLmhhcyksaD1uZXcgcygiYT0xIik7KGguaGFzKCJhIiwyKXx8IWguaGFzKCJhIix2b2lkIDApKSYmcihhLCJoYXMiLGZ1bmN0aW9uKG0pe3ZhciBDPWFyZ3VtZW50cy5sZW5ndGgsZz1DPDI/dm9pZCAwOmFyZ3VtZW50c1sxXTtpZihDJiZnPT09dm9pZCAwKXJldHVybiBjKHRoaXMsbSk7dmFyIHc9dSh0aGlzLG0pO2koQywxKTtmb3IodmFyIEU9dChnKSx4PTA7eDx3Lmxlbmd0aDspaWYod1t4KytdPT09RSlyZXR1cm4hMDtyZXR1cm4hMX0se2VudW1lcmFibGU6ITAsdW5zYWZlOiEwfSl9LDMzMjI4OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSg2NzY5Nyksbj1lKDY4ODQ0KSx0PWUoNjIxNDgpLGk9VVJMU2VhcmNoUGFyYW1zLnByb3RvdHlwZSxzPW4oaS5mb3JFYWNoKTtyJiYhKCJzaXplImluIGkpJiZ0KGksInNpemUiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgdT0wO3JldHVybiBzKHRoaXMsZnVuY3Rpb24oKXt1Kyt9KSx1fSxjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMH0pfSw2OTgyMjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoNzk5ODkpLG49ZSg3NjA1OCksdD1lKDM2ODkpLGk9ZSgyMTUwMCkscz1lKDM0MzI3KSxhPWUoNzY4MzcpLHU9bigiVVJMIiksYz1hJiZ0KGZ1bmN0aW9uKCl7dS5jYW5QYXJzZSgpfSk7cih7dGFyZ2V0OiJVUkwiLHN0YXQ6ITAsZm9yY2VkOiFjfSx7Y2FuUGFyc2U6ZnVuY3Rpb24oZCl7dmFyIG09aShhcmd1bWVudHMubGVuZ3RoLDEpLEM9cyhkKSxnPW08Mnx8YXJndW1lbnRzWzFdPT09dm9pZCAwP3ZvaWQgMDpzKGFyZ3VtZW50c1sxXSk7dHJ5e3JldHVybiEhbmV3IHUoQyxnKX1jYXRjaCh3KXtyZXR1cm4hMX19fSl9LDMwOTA3OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1o6ZnVuY3Rpb24oKXtyZXR1cm4gcn19KTtmdW5jdGlvbiByKG4sdCl7KHQ9PW51bGx8fHQ+bi5sZW5ndGgpJiYodD1uLmxlbmd0aCk7Zm9yKHZhciBpPTAscz1BcnJheSh0KTtpPHQ7aSsrKXNbaV09bltpXTtyZXR1cm4gc319LDgzODc4OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1o6ZnVuY3Rpb24oKXtyZXR1cm4gcn19KTtmdW5jdGlvbiByKG4pe2lmKEFycmF5LmlzQXJyYXkobikpcmV0dXJuIG59fSw5NzMyNjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIHJ9fSk7ZnVuY3Rpb24gcihuKXtpZihuPT09dm9pZCAwKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIG59fSwxNTg2MTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIG59fSk7ZnVuY3Rpb24gcih0LGkscyxhLHUsYyxoKXt0cnl7dmFyIGQ9dFtjXShoKSxtPWQudmFsdWV9Y2F0Y2goQyl7cmV0dXJuIHZvaWQgcyhDKX1kLmRvbmU/aShtKTpQcm9taXNlLnJlc29sdmUobSkudGhlbihhLHUpfWZ1bmN0aW9uIG4odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGk9dGhpcyxzPWFyZ3VtZW50cztyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oYSx1KXt2YXIgYz10LmFwcGx5KGkscyk7ZnVuY3Rpb24gaChtKXtyKGMsYSx1LGgsZCwibmV4dCIsbSl9ZnVuY3Rpb24gZChtKXtyKGMsYSx1LGgsZCwidGhyb3ciLG0pfWgodm9pZCAwKX0pfX19LDUzNjQwOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1o6ZnVuY3Rpb24oKXtyZXR1cm4gaX19KTt2YXIgcj1lKDYxMTIwKSxuPWUoNzg4MTQpLHQ9ZSg4Mjk2Myk7ZnVuY3Rpb24gaShzLGEsdSl7cmV0dXJuIGE9KDAsci5aKShhKSwoMCx0LlopKHMsKDAsbi5aKSgpP1JlZmxlY3QuY29uc3RydWN0KGEsdXx8W10sKDAsci5aKShzKS5jb25zdHJ1Y3Rvcik6YS5hcHBseShzLHUpKX19LDE1NjcxOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1o6ZnVuY3Rpb24oKXtyZXR1cm4gcn19KTtmdW5jdGlvbiByKG4sdCl7aWYoIShuIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9fSw0MzE0NDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIHR9fSk7dmFyIHI9ZSg4Mzk5Nyk7ZnVuY3Rpb24gbihpLHMpe2Zvcih2YXIgYT0wO2E8cy5sZW5ndGg7YSsrKXt2YXIgdT1zW2FdO3UuZW51bWVyYWJsZT11LmVudW1lcmFibGV8fCExLHUuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB1JiYodS53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGksKDAsci5aKSh1LmtleSksdSl9fWZ1bmN0aW9uIHQoaSxzLGEpe3JldHVybiBzJiZuKGkucHJvdG90eXBlLHMpLGEmJm4oaSxhKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoaSwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxpfX0sMjkzODg6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiBpfX0pO3ZhciByPWUoNjExMjApLG49ZSg3ODgxNCksdD1lKDgyOTYzKTtmdW5jdGlvbiBpKHMpe3ZhciBhPSgwLG4uWikoKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgdSxjPSgwLHIuWikocyk7aWYoYSl7dmFyIGg9KDAsci5aKSh0aGlzKS5jb25zdHJ1Y3Rvcjt1PVJlZmxlY3QuY29uc3RydWN0KGMsYXJndW1lbnRzLGgpfWVsc2UgdT1jLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4oMCx0LlopKHRoaXMsdSl9fX0sNDk0MjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIG59fSk7dmFyIHI9ZSg4Mzk5Nyk7ZnVuY3Rpb24gbih0LGkscyl7cmV0dXJuKGk9KDAsci5aKShpKSlpbiB0P09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGkse3ZhbHVlOnMsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTp0W2ldPXMsdH19LDg3NDYyOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1o6ZnVuY3Rpb24oKXtyZXR1cm4gcn19KTtmdW5jdGlvbiByKCl7cmV0dXJuIHI9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbihuKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgaT1hcmd1bWVudHNbdF07Zm9yKHZhciBzIGluIGkpKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGkscykmJihuW3NdPWlbc10pfXJldHVybiBufSxyLmFwcGx5KG51bGwsYXJndW1lbnRzKX19LDYxMTIwOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1o6ZnVuY3Rpb24oKXtyZXR1cm4gcn19KTtmdW5jdGlvbiByKG4pe3JldHVybiByPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHQpe3JldHVybiB0Ll9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKHQpfSxyKG4pfX0sNjAxMzY6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiBufX0pO3ZhciByPWUoODk2MTEpO2Z1bmN0aW9uIG4odCxpKXtpZih0eXBlb2YgaSE9ImZ1bmN0aW9uIiYmaSE9PW51bGwpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTt0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGkmJmkucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6dCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksaSYmKDAsci5aKSh0LGkpfX0sNzg4MTQ6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiByfX0pO2Z1bmN0aW9uIHIoKXt0cnl7dmFyIG49IUJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpfWNhdGNoKHQpe31yZXR1cm4ocj1mdW5jdGlvbigpe3JldHVybiEhbn0pKCl9fSw1OTE5OTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIHJ9fSk7ZnVuY3Rpb24gcihuKXtpZih0eXBlb2YgU3ltYm9sIT0idW5kZWZpbmVkIiYmbltTeW1ib2wuaXRlcmF0b3JdIT1udWxsfHxuWyJAQGl0ZXJhdG9yIl0hPW51bGwpcmV0dXJuIEFycmF5LmZyb20obil9fSwyNTI2NzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIHJ9fSk7ZnVuY3Rpb24gcigpe3Rocm93IG5ldyBUeXBlRXJyb3IoYEludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuCitJbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuYCl9fSwxNDEzOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse1o6ZnVuY3Rpb24oKXtyZXR1cm4gdH19KTt2YXIgcj1lKDQ5NDIpO2Z1bmN0aW9uIG4oaSxzKXt2YXIgYT1PYmplY3Qua2V5cyhpKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgdT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGkpO3MmJih1PXUuZmlsdGVyKGZ1bmN0aW9uKGMpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGksYykuZW51bWVyYWJsZX0pKSxhLnB1c2guYXBwbHkoYSx1KX1yZXR1cm4gYX1mdW5jdGlvbiB0KGkpe2Zvcih2YXIgcz0xO3M8YXJndW1lbnRzLmxlbmd0aDtzKyspe3ZhciBhPWFyZ3VtZW50c1tzXSE9bnVsbD9hcmd1bWVudHNbc106e307cyUyP24oT2JqZWN0KGEpLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHUpeygwLHIuWikoaSx1LGFbdV0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoaSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhhKSk6bihPYmplY3QoYSkpLmZvckVhY2goZnVuY3Rpb24odSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGksdSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsdSkpfSl9cmV0dXJuIGl9fSw5MTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIG59fSk7ZnVuY3Rpb24gcih0LGkpe2lmKHQ9PW51bGwpcmV0dXJue307dmFyIHM9e307Zm9yKHZhciBhIGluIHQpaWYoe30uaGFzT3duUHJvcGVydHkuY2FsbCh0LGEpKXtpZihpLmluZGV4T2YoYSkhPT0tMSljb250aW51ZTtzW2FdPXRbYV19cmV0dXJuIHN9ZnVuY3Rpb24gbih0LGkpe2lmKHQ9PW51bGwpcmV0dXJue307dmFyIHMsYSx1PXIodCxpKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgYz1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2ZvcihhPTA7YTxjLmxlbmd0aDthKyspcz1jW2FdLGkuaW5kZXhPZihzKT09PS0xJiZ7fS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHQscykmJih1W3NdPXRbc10pfXJldHVybiB1fX0sODI5NjM6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiB0fX0pO3ZhciByPWUoNzEwMDIpLG49ZSg5NzMyNik7ZnVuY3Rpb24gdChpLHMpe2lmKHMmJigoMCxyLlopKHMpPT0ib2JqZWN0Inx8dHlwZW9mIHM9PSJmdW5jdGlvbiIpKXJldHVybiBzO2lmKHMhPT12b2lkIDApdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4oMCxuLlopKGkpfX0sNzQxNjU6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiBufX0pO3ZhciByPWUoNzEwMDIpO2Z1bmN0aW9uIG4oKXsidXNlIHN0cmljdCI7bj1mdW5jdGlvbigpe3JldHVybiBpfTt2YXIgdCxpPXt9LHM9T2JqZWN0LnByb3RvdHlwZSxhPXMuaGFzT3duUHJvcGVydHksdT1PYmplY3QuZGVmaW5lUHJvcGVydHl8fGZ1bmN0aW9uKFYsWixQKXtWW1pdPVAudmFsdWV9LGM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIj9TeW1ib2w6e30saD1jLml0ZXJhdG9yfHwiQEBpdGVyYXRvciIsZD1jLmFzeW5jSXRlcmF0b3J8fCJAQGFzeW5jSXRlcmF0b3IiLG09Yy50b1N0cmluZ1RhZ3x8IkBAdG9TdHJpbmdUYWciO2Z1bmN0aW9uIEMoVixaLFApe3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoVixaLHt2YWx1ZTpQLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSksVltaXX10cnl7Qyh7fSwiIil9Y2F0Y2goVil7Qz1mdW5jdGlvbihQLEssc2Upe3JldHVybiBQW0tdPXNlfX1mdW5jdGlvbiBnKFYsWixQLEspe3ZhciBzZT1aJiZaLnByb3RvdHlwZSBpbnN0YW5jZW9mIEw/WjpMLG5lPU9iamVjdC5jcmVhdGUoc2UucHJvdG90eXBlKSxvZT1uZXcgaihLfHxbXSk7cmV0dXJuIHUobmUsIl9pbnZva2UiLHt2YWx1ZTp0ZShWLFAsb2UpfSksbmV9ZnVuY3Rpb24gdyhWLFosUCl7dHJ5e3JldHVybnt0eXBlOiJub3JtYWwiLGFyZzpWLmNhbGwoWixQKX19Y2F0Y2goSyl7cmV0dXJue3R5cGU6InRocm93Iixhcmc6S319fWkud3JhcD1nO3ZhciBFPSJzdXNwZW5kZWRTdGFydCIseD0ic3VzcGVuZGVkWWllbGQiLE89ImV4ZWN1dGluZyIsVD0iY29tcGxldGVkIixTPXt9O2Z1bmN0aW9uIEwoKXt9ZnVuY3Rpb24gSSgpe31mdW5jdGlvbiBSKCl7fXZhciB6PXt9O0MoeixoLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KTt2YXIgRz1PYmplY3QuZ2V0UHJvdG90eXBlT2YsWT1HJiZHKEcoRChbXSkpKTtZJiZZIT09cyYmYS5jYWxsKFksaCkmJih6PVkpO3ZhciBlZT1SLnByb3RvdHlwZT1MLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHopO2Z1bmN0aW9uIEooVil7WyJuZXh0IiwidGhyb3ciLCJyZXR1cm4iXS5mb3JFYWNoKGZ1bmN0aW9uKFope0MoVixaLGZ1bmN0aW9uKFApe3JldHVybiB0aGlzLl9pbnZva2UoWixQKX0pfSl9ZnVuY3Rpb24gbWUoVixaKXtmdW5jdGlvbiBQKHNlLG5lLG9lLGZlKXt2YXIgRWU9dyhWW3NlXSxWLG5lKTtpZihFZS50eXBlIT09InRocm93Iil7dmFyIFJlPUVlLmFyZyxCZT1SZS52YWx1ZTtyZXR1cm4gQmUmJigwLHIuWikoQmUpPT0ib2JqZWN0IiYmYS5jYWxsKEJlLCJfX2F3YWl0Iik/Wi5yZXNvbHZlKEJlLl9fYXdhaXQpLnRoZW4oZnVuY3Rpb24oWWUpe1AoIm5leHQiLFllLG9lLGZlKX0sZnVuY3Rpb24oWWUpe1AoInRocm93IixZZSxvZSxmZSl9KTpaLnJlc29sdmUoQmUpLnRoZW4oZnVuY3Rpb24oWWUpe1JlLnZhbHVlPVllLG9lKFJlKX0sZnVuY3Rpb24oWWUpe3JldHVybiBQKCJ0aHJvdyIsWWUsb2UsZmUpfSl9ZmUoRWUuYXJnKX12YXIgSzt1KHRoaXMsIl9pbnZva2UiLHt2YWx1ZTpmdW5jdGlvbihuZSxvZSl7ZnVuY3Rpb24gZmUoKXtyZXR1cm4gbmV3IFooZnVuY3Rpb24oRWUsUmUpe1AobmUsb2UsRWUsUmUpfSl9cmV0dXJuIEs9Sz9LLnRoZW4oZmUsZmUpOmZlKCl9fSl9ZnVuY3Rpb24gdGUoVixaLFApe3ZhciBLPUU7cmV0dXJuIGZ1bmN0aW9uKHNlLG5lKXtpZihLPT09Tyl0aHJvdyBFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgcnVubmluZyIpO2lmKEs9PT1UKXtpZihzZT09PSJ0aHJvdyIpdGhyb3cgbmU7cmV0dXJue3ZhbHVlOnQsZG9uZTohMH19Zm9yKFAubWV0aG9kPXNlLFAuYXJnPW5lOzspe3ZhciBvZT1QLmRlbGVnYXRlO2lmKG9lKXt2YXIgZmU9bGUob2UsUCk7aWYoZmUpe2lmKGZlPT09Uyljb250aW51ZTtyZXR1cm4gZmV9fWlmKFAubWV0aG9kPT09Im5leHQiKVAuc2VudD1QLl9zZW50PVAuYXJnO2Vsc2UgaWYoUC5tZXRob2Q9PT0idGhyb3ciKXtpZihLPT09RSl0aHJvdyBLPVQsUC5hcmc7UC5kaXNwYXRjaEV4Y2VwdGlvbihQLmFyZyl9ZWxzZSBQLm1ldGhvZD09PSJyZXR1cm4iJiZQLmFicnVwdCgicmV0dXJuIixQLmFyZyk7Sz1PO3ZhciBFZT13KFYsWixQKTtpZihFZS50eXBlPT09Im5vcm1hbCIpe2lmKEs9UC5kb25lP1Q6eCxFZS5hcmc9PT1TKWNvbnRpbnVlO3JldHVybnt2YWx1ZTpFZS5hcmcsZG9uZTpQLmRvbmV9fUVlLnR5cGU9PT0idGhyb3ciJiYoSz1ULFAubWV0aG9kPSJ0aHJvdyIsUC5hcmc9RWUuYXJnKX19fWZ1bmN0aW9uIGxlKFYsWil7dmFyIFA9Wi5tZXRob2QsSz1WLml0ZXJhdG9yW1BdO2lmKEs9PT10KXJldHVybiBaLmRlbGVnYXRlPW51bGwsUD09PSJ0aHJvdyImJlYuaXRlcmF0b3IucmV0dXJuJiYoWi5tZXRob2Q9InJldHVybiIsWi5hcmc9dCxsZShWLFopLFoubWV0aG9kPT09InRocm93Iil8fFAhPT0icmV0dXJuIiYmKFoubWV0aG9kPSJ0aHJvdyIsWi5hcmc9bmV3IFR5cGVFcnJvcigiVGhlIGl0ZXJhdG9yIGRvZXMgbm90IHByb3ZpZGUgYSAnIitQKyInIG1ldGhvZCIpKSxTO3ZhciBzZT13KEssVi5pdGVyYXRvcixaLmFyZyk7aWYoc2UudHlwZT09PSJ0aHJvdyIpcmV0dXJuIFoubWV0aG9kPSJ0aHJvdyIsWi5hcmc9c2UuYXJnLFouZGVsZWdhdGU9bnVsbCxTO3ZhciBuZT1zZS5hcmc7cmV0dXJuIG5lP25lLmRvbmU/KFpbVi5yZXN1bHROYW1lXT1uZS52YWx1ZSxaLm5leHQ9Vi5uZXh0TG9jLFoubWV0aG9kIT09InJldHVybiImJihaLm1ldGhvZD0ibmV4dCIsWi5hcmc9dCksWi5kZWxlZ2F0ZT1udWxsLFMpOm5lOihaLm1ldGhvZD0idGhyb3ciLFouYXJnPW5ldyBUeXBlRXJyb3IoIml0ZXJhdG9yIHJlc3VsdCBpcyBub3QgYW4gb2JqZWN0IiksWi5kZWxlZ2F0ZT1udWxsLFMpfWZ1bmN0aW9uIGNlKFYpe3ZhciBaPXt0cnlMb2M6VlswXX07MSBpbiBWJiYoWi5jYXRjaExvYz1WWzFdKSwyIGluIFYmJihaLmZpbmFsbHlMb2M9VlsyXSxaLmFmdGVyTG9jPVZbM10pLHRoaXMudHJ5RW50cmllcy5wdXNoKFopfWZ1bmN0aW9uIFcoVil7dmFyIFo9Vi5jb21wbGV0aW9ufHx7fTtaLnR5cGU9Im5vcm1hbCIsZGVsZXRlIFouYXJnLFYuY29tcGxldGlvbj1afWZ1bmN0aW9uIGooVil7dGhpcy50cnlFbnRyaWVzPVt7dHJ5TG9jOiJyb290In1dLFYuZm9yRWFjaChjZSx0aGlzKSx0aGlzLnJlc2V0KCEwKX1mdW5jdGlvbiBEKFYpe2lmKFZ8fFY9PT0iIil7dmFyIFo9VltoXTtpZihaKXJldHVybiBaLmNhbGwoVik7aWYodHlwZW9mIFYubmV4dD09ImZ1bmN0aW9uIilyZXR1cm4gVjtpZighaXNOYU4oVi5sZW5ndGgpKXt2YXIgUD0tMSxLPWZ1bmN0aW9uIHNlKCl7Zm9yKDsrK1A8Vi5sZW5ndGg7KWlmKGEuY2FsbChWLFApKXJldHVybiBzZS52YWx1ZT1WW1BdLHNlLmRvbmU9ITEsc2U7cmV0dXJuIHNlLnZhbHVlPXQsc2UuZG9uZT0hMCxzZX07cmV0dXJuIEsubmV4dD1LfX10aHJvdyBuZXcgVHlwZUVycm9yKCgwLHIuWikoVikrIiBpcyBub3QgaXRlcmFibGUiKX1yZXR1cm4gSS5wcm90b3R5cGU9Uix1KGVlLCJjb25zdHJ1Y3RvciIse3ZhbHVlOlIsY29uZmlndXJhYmxlOiEwfSksdShSLCJjb25zdHJ1Y3RvciIse3ZhbHVlOkksY29uZmlndXJhYmxlOiEwfSksSS5kaXNwbGF5TmFtZT1DKFIsbSwiR2VuZXJhdG9yRnVuY3Rpb24iKSxpLmlzR2VuZXJhdG9yRnVuY3Rpb249ZnVuY3Rpb24oVil7dmFyIFo9dHlwZW9mIFY9PSJmdW5jdGlvbiImJlYuY29uc3RydWN0b3I7cmV0dXJuISFaJiYoWj09PUl8fChaLmRpc3BsYXlOYW1lfHxaLm5hbWUpPT09IkdlbmVyYXRvckZ1bmN0aW9uIil9LGkubWFyaz1mdW5jdGlvbihWKXtyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZihWLFIpOihWLl9fcHJvdG9fXz1SLEMoVixtLCJHZW5lcmF0b3JGdW5jdGlvbiIpKSxWLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGVlKSxWfSxpLmF3cmFwPWZ1bmN0aW9uKFYpe3JldHVybntfX2F3YWl0OlZ9fSxKKG1lLnByb3RvdHlwZSksQyhtZS5wcm90b3R5cGUsZCxmdW5jdGlvbigpe3JldHVybiB0aGlzfSksaS5Bc3luY0l0ZXJhdG9yPW1lLGkuYXN5bmM9ZnVuY3Rpb24oVixaLFAsSyxzZSl7c2U9PT12b2lkIDAmJihzZT1Qcm9taXNlKTt2YXIgbmU9bmV3IG1lKGcoVixaLFAsSyksc2UpO3JldHVybiBpLmlzR2VuZXJhdG9yRnVuY3Rpb24oWik/bmU6bmUubmV4dCgpLnRoZW4oZnVuY3Rpb24ob2Upe3JldHVybiBvZS5kb25lP29lLnZhbHVlOm5lLm5leHQoKX0pfSxKKGVlKSxDKGVlLG0sIkdlbmVyYXRvciIpLEMoZWUsaCxmdW5jdGlvbigpe3JldHVybiB0aGlzfSksQyhlZSwidG9TdHJpbmciLGZ1bmN0aW9uKCl7cmV0dXJuIltvYmplY3QgR2VuZXJhdG9yXSJ9KSxpLmtleXM9ZnVuY3Rpb24oVil7dmFyIFo9T2JqZWN0KFYpLFA9W107Zm9yKHZhciBLIGluIFopUC5wdXNoKEspO3JldHVybiBQLnJldmVyc2UoKSxmdW5jdGlvbiBzZSgpe2Zvcig7UC5sZW5ndGg7KXt2YXIgbmU9UC5wb3AoKTtpZihuZSBpbiBaKXJldHVybiBzZS52YWx1ZT1uZSxzZS5kb25lPSExLHNlfXJldHVybiBzZS5kb25lPSEwLHNlfX0saS52YWx1ZXM9RCxqLnByb3RvdHlwZT17Y29uc3RydWN0b3I6aixyZXNldDpmdW5jdGlvbihaKXtpZih0aGlzLnByZXY9MCx0aGlzLm5leHQ9MCx0aGlzLnNlbnQ9dGhpcy5fc2VudD10LHRoaXMuZG9uZT0hMSx0aGlzLmRlbGVnYXRlPW51bGwsdGhpcy5tZXRob2Q9Im5leHQiLHRoaXMuYXJnPXQsdGhpcy50cnlFbnRyaWVzLmZvckVhY2goVyksIVopZm9yKHZhciBQIGluIHRoaXMpUC5jaGFyQXQoMCk9PT0idCImJmEuY2FsbCh0aGlzLFApJiYhaXNOYU4oK1Auc2xpY2UoMSkpJiYodGhpc1tQXT10KX0sc3RvcDpmdW5jdGlvbigpe3RoaXMuZG9uZT0hMDt2YXIgWj10aGlzLnRyeUVudHJpZXNbMF0uY29tcGxldGlvbjtpZihaLnR5cGU9PT0idGhyb3ciKXRocm93IFouYXJnO3JldHVybiB0aGlzLnJ2YWx9LGRpc3BhdGNoRXhjZXB0aW9uOmZ1bmN0aW9uKFope2lmKHRoaXMuZG9uZSl0aHJvdyBaO3ZhciBQPXRoaXM7ZnVuY3Rpb24gSyhSZSxCZSl7cmV0dXJuIG9lLnR5cGU9InRocm93IixvZS5hcmc9WixQLm5leHQ9UmUsQmUmJihQLm1ldGhvZD0ibmV4dCIsUC5hcmc9dCksISFCZX1mb3IodmFyIHNlPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtzZT49MDstLXNlKXt2YXIgbmU9dGhpcy50cnlFbnRyaWVzW3NlXSxvZT1uZS5jb21wbGV0aW9uO2lmKG5lLnRyeUxvYz09PSJyb290IilyZXR1cm4gSygiZW5kIik7aWYobmUudHJ5TG9jPD10aGlzLnByZXYpe3ZhciBmZT1hLmNhbGwobmUsImNhdGNoTG9jIiksRWU9YS5jYWxsKG5lLCJmaW5hbGx5TG9jIik7aWYoZmUmJkVlKXtpZih0aGlzLnByZXY8bmUuY2F0Y2hMb2MpcmV0dXJuIEsobmUuY2F0Y2hMb2MsITApO2lmKHRoaXMucHJldjxuZS5maW5hbGx5TG9jKXJldHVybiBLKG5lLmZpbmFsbHlMb2MpfWVsc2UgaWYoZmUpe2lmKHRoaXMucHJldjxuZS5jYXRjaExvYylyZXR1cm4gSyhuZS5jYXRjaExvYywhMCl9ZWxzZXtpZighRWUpdGhyb3cgRXJyb3IoInRyeSBzdGF0ZW1lbnQgd2l0aG91dCBjYXRjaCBvciBmaW5hbGx5Iik7aWYodGhpcy5wcmV2PG5lLmZpbmFsbHlMb2MpcmV0dXJuIEsobmUuZmluYWxseUxvYyl9fX19LGFicnVwdDpmdW5jdGlvbihaLFApe2Zvcih2YXIgSz10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7Sz49MDstLUspe3ZhciBzZT10aGlzLnRyeUVudHJpZXNbS107aWYoc2UudHJ5TG9jPD10aGlzLnByZXYmJmEuY2FsbChzZSwiZmluYWxseUxvYyIpJiZ0aGlzLnByZXY8c2UuZmluYWxseUxvYyl7dmFyIG5lPXNlO2JyZWFrfX1uZSYmKFo9PT0iYnJlYWsifHxaPT09ImNvbnRpbnVlIikmJm5lLnRyeUxvYzw9UCYmUDw9bmUuZmluYWxseUxvYyYmKG5lPW51bGwpO3ZhciBvZT1uZT9uZS5jb21wbGV0aW9uOnt9O3JldHVybiBvZS50eXBlPVosb2UuYXJnPVAsbmU/KHRoaXMubWV0aG9kPSJuZXh0Iix0aGlzLm5leHQ9bmUuZmluYWxseUxvYyxTKTp0aGlzLmNvbXBsZXRlKG9lKX0sY29tcGxldGU6ZnVuY3Rpb24oWixQKXtpZihaLnR5cGU9PT0idGhyb3ciKXRocm93IFouYXJnO3JldHVybiBaLnR5cGU9PT0iYnJlYWsifHxaLnR5cGU9PT0iY29udGludWUiP3RoaXMubmV4dD1aLmFyZzpaLnR5cGU9PT0icmV0dXJuIj8odGhpcy5ydmFsPXRoaXMuYXJnPVouYXJnLHRoaXMubWV0aG9kPSJyZXR1cm4iLHRoaXMubmV4dD0iZW5kIik6Wi50eXBlPT09Im5vcm1hbCImJlAmJih0aGlzLm5leHQ9UCksU30sZmluaXNoOmZ1bmN0aW9uKFope2Zvcih2YXIgUD10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7UD49MDstLVApe3ZhciBLPXRoaXMudHJ5RW50cmllc1tQXTtpZihLLmZpbmFsbHlMb2M9PT1aKXJldHVybiB0aGlzLmNvbXBsZXRlKEsuY29tcGxldGlvbixLLmFmdGVyTG9jKSxXKEspLFN9fSxjYXRjaDpmdW5jdGlvbihaKXtmb3IodmFyIFA9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO1A+PTA7LS1QKXt2YXIgSz10aGlzLnRyeUVudHJpZXNbUF07aWYoSy50cnlMb2M9PT1aKXt2YXIgc2U9Sy5jb21wbGV0aW9uO2lmKHNlLnR5cGU9PT0idGhyb3ciKXt2YXIgbmU9c2UuYXJnO1coSyl9cmV0dXJuIG5lfX10aHJvdyBFcnJvcigiaWxsZWdhbCBjYXRjaCBhdHRlbXB0Iil9LGRlbGVnYXRlWWllbGQ6ZnVuY3Rpb24oWixQLEspe3JldHVybiB0aGlzLmRlbGVnYXRlPXtpdGVyYXRvcjpEKFopLHJlc3VsdE5hbWU6UCxuZXh0TG9jOkt9LHRoaXMubWV0aG9kPT09Im5leHQiJiYodGhpcy5hcmc9dCksU319LGl9fSw4OTYxMTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIHJ9fSk7ZnVuY3Rpb24gcihuLHQpe3JldHVybiByPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGkscyl7cmV0dXJuIGkuX19wcm90b19fPXMsaX0scihuLHQpfX0sOTc2ODU6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiBzfX0pO3ZhciByPWUoODM4NzgpO2Z1bmN0aW9uIG4oYSx1KXt2YXIgYz1hPT1udWxsP251bGw6dHlwZW9mIFN5bWJvbCE9InVuZGVmaW5lZCImJmFbU3ltYm9sLml0ZXJhdG9yXXx8YVsiQEBpdGVyYXRvciJdO2lmKGMhPW51bGwpe3ZhciBoLGQsbSxDLGc9W10sdz0hMCxFPSExO3RyeXtpZihtPShjPWMuY2FsbChhKSkubmV4dCx1PT09MCl7aWYoT2JqZWN0KGMpIT09YylyZXR1cm47dz0hMX1lbHNlIGZvcig7ISh3PShoPW0uY2FsbChjKSkuZG9uZSkmJihnLnB1c2goaC52YWx1ZSksZy5sZW5ndGghPT11KTt3PSEwKTt9Y2F0Y2goeCl7RT0hMCxkPXh9ZmluYWxseXt0cnl7aWYoIXcmJmMucmV0dXJuIT1udWxsJiYoQz1jLnJldHVybigpLE9iamVjdChDKSE9PUMpKXJldHVybn1maW5hbGx5e2lmKEUpdGhyb3cgZH19cmV0dXJuIGd9fXZhciB0PWUoNDAxODEpLGk9ZSgyNTI2Nyk7ZnVuY3Rpb24gcyhhLHUpe3JldHVybigwLHIuWikoYSl8fG4oYSx1KXx8KDAsdC5aKShhLHUpfHwoMCxpLlopKCl9fSw4NDUwNjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIHN9fSk7dmFyIHI9ZSg4Mzg3OCksbj1lKDU5MTk5KSx0PWUoNDAxODEpLGk9ZSgyNTI2Nyk7ZnVuY3Rpb24gcyhhKXtyZXR1cm4oMCxyLlopKGEpfHwoMCxuLlopKGEpfHwoMCx0LlopKGEpfHwoMCxpLlopKCl9fSw3NDkwMjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGF9fSk7dmFyIHI9ZSgzMDkwNyk7ZnVuY3Rpb24gbih1KXtpZihBcnJheS5pc0FycmF5KHUpKXJldHVybigwLHIuWikodSl9dmFyIHQ9ZSg1OTE5OSksaT1lKDQwMTgxKTtmdW5jdGlvbiBzKCl7dGhyb3cgbmV3IFR5cGVFcnJvcihgSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuCitJbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuYCl9ZnVuY3Rpb24gYSh1KXtyZXR1cm4gbih1KXx8KDAsdC5aKSh1KXx8KDAsaS5aKSh1KXx8cygpfX0sODM5OTc6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiB0fX0pO3ZhciByPWUoNzEwMDIpO2Z1bmN0aW9uIG4oaSxzKXtpZigoMCxyLlopKGkpIT0ib2JqZWN0Inx8IWkpcmV0dXJuIGk7dmFyIGE9aVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKGEhPT12b2lkIDApe3ZhciB1PWEuY2FsbChpLHN8fCJkZWZhdWx0Iik7aWYoKDAsci5aKSh1KSE9Im9iamVjdCIpcmV0dXJuIHU7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4ocz09PSJzdHJpbmciP1N0cmluZzpOdW1iZXIpKGkpfWZ1bmN0aW9uIHQoaSl7dmFyIHM9bihpLCJzdHJpbmciKTtyZXR1cm4oMCxyLlopKHMpPT0ic3ltYm9sIj9zOnMrIiJ9fSw3MTAwMjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIHJ9fSk7ZnVuY3Rpb24gcihuKXsiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2YiO3JldHVybiByPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJnR5cGVvZiBTeW1ib2wuaXRlcmF0b3I9PSJzeW1ib2wiP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJnR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiB0fSxyKG4pfX0sNDAxODE6ZnVuY3Rpb24oeSxwLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocCx7WjpmdW5jdGlvbigpe3JldHVybiBufX0pO3ZhciByPWUoMzA5MDcpO2Z1bmN0aW9uIG4odCxpKXtpZih0KXtpZih0eXBlb2YgdD09InN0cmluZyIpcmV0dXJuKDAsci5aKSh0LGkpO3ZhciBzPXt9LnRvU3RyaW5nLmNhbGwodCkuc2xpY2UoOCwtMSk7cmV0dXJuIHM9PT0iT2JqZWN0IiYmdC5jb25zdHJ1Y3RvciYmKHM9dC5jb25zdHJ1Y3Rvci5uYW1lKSxzPT09Ik1hcCJ8fHM9PT0iU2V0Ij9BcnJheS5mcm9tKHQpOnM9PT0iQXJndW1lbnRzInx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qocyk/KDAsci5aKSh0LGkpOnZvaWQgMH19fSw1ODA5NjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIHJ9fSk7ZnVuY3Rpb24gcigpe3JldHVybiByPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24obil7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIGk9YXJndW1lbnRzW3RdO2Zvcih2YXIgcyBpbiBpKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChpLHMpJiYobltzXT1pW3NdKX1yZXR1cm4gbn0sci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSw3NDgxNzpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIG59fSk7ZnVuY3Rpb24gcih0LGkpe2lmKHQ9PW51bGwpcmV0dXJue307dmFyIHM9e30sYT1PYmplY3Qua2V5cyh0KSx1LGM7Zm9yKGM9MDtjPGEubGVuZ3RoO2MrKyl1PWFbY10sIShpLmluZGV4T2YodSk+PTApJiYoc1t1XT10W3VdKTtyZXR1cm4gc31mdW5jdGlvbiBuKHQsaSl7aWYodD09bnVsbClyZXR1cm57fTt2YXIgcz1yKHQsaSksYSx1O2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBjPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCk7Zm9yKHU9MDt1PGMubGVuZ3RoO3UrKylhPWNbdV0sIShpLmluZGV4T2YoYSk+PTApJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodCxhKSYmKHNbYV09dFthXSl9cmV0dXJuIHN9fSw0ODgwNDpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGF9fSk7ZnVuY3Rpb24gcih1KXtpZihBcnJheS5pc0FycmF5KHUpKXJldHVybiB1fWZ1bmN0aW9uIG4odSxjKXt2YXIgaD11PT1udWxsP251bGw6dHlwZW9mIFN5bWJvbCE9InVuZGVmaW5lZCImJnVbU3ltYm9sLml0ZXJhdG9yXXx8dVsiQEBpdGVyYXRvciJdO2lmKGghPW51bGwpe3ZhciBkLG0sQyxnLHc9W10sRT0hMCx4PSExO3RyeXtpZihDPShoPWguY2FsbCh1KSkubmV4dCxjPT09MCl7aWYoT2JqZWN0KGgpIT09aClyZXR1cm47RT0hMX1lbHNlIGZvcig7IShFPShkPUMuY2FsbChoKSkuZG9uZSkmJih3LnB1c2goZC52YWx1ZSksdy5sZW5ndGghPT1jKTtFPSEwKTt9Y2F0Y2goTyl7eD0hMCxtPU99ZmluYWxseXt0cnl7aWYoIUUmJmgucmV0dXJuIT1udWxsJiYoZz1oLnJldHVybigpLE9iamVjdChnKSE9PWcpKXJldHVybn1maW5hbGx5e2lmKHgpdGhyb3cgbX19cmV0dXJuIHd9fWZ1bmN0aW9uIHQodSxjKXsoYz09bnVsbHx8Yz51Lmxlbmd0aCkmJihjPXUubGVuZ3RoKTtmb3IodmFyIGg9MCxkPW5ldyBBcnJheShjKTtoPGM7aCsrKWRbaF09dVtoXTtyZXR1cm4gZH1mdW5jdGlvbiBpKHUsYyl7aWYodSl7aWYodHlwZW9mIHU9PSJzdHJpbmciKXJldHVybiB0KHUsYyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHUpLnNsaWNlKDgsLTEpO2lmKGg9PT0iT2JqZWN0IiYmdS5jb25zdHJ1Y3RvciYmKGg9dS5jb25zdHJ1Y3Rvci5uYW1lKSxoPT09Ik1hcCJ8fGg9PT0iU2V0IilyZXR1cm4gQXJyYXkuZnJvbSh1KTtpZihoPT09IkFyZ3VtZW50cyJ8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJldHVybiB0KHUsYyl9fWZ1bmN0aW9uIHMoKXt0aHJvdyBuZXcgVHlwZUVycm9yKGBJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLgorSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLmApfWZ1bmN0aW9uIGEodSxjKXtyZXR1cm4gcih1KXx8bih1LGMpfHxpKHUsYyl8fHMoKX19LDM3NzgxOmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse0I6ZnVuY3Rpb24oKXtyZXR1cm4gQ30sSTpmdW5jdGlvbigpe3JldHVybiBsZX0sTzpmdW5jdGlvbigpe3JldHVybiBjfSxTOmZ1bmN0aW9uKCl7cmV0dXJuIHF9LFU6ZnVuY3Rpb24oKXtyZXR1cm4gdX0sYTpmdW5jdGlvbigpe3JldHVybiBkfSxiOmZ1bmN0aW9uKCl7cmV0dXJuIHN9LGM6ZnVuY3Rpb24oKXtyZXR1cm4gcWV9LGQ6ZnVuY3Rpb24oKXtyZXR1cm4gRmV9LGU6ZnVuY3Rpb24oKXtyZXR1cm4gaH0sZjpmdW5jdGlvbigpe3JldHVybiBTZX0sZzpmdW5jdGlvbigpe3JldHVybiBrfSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHh9LG06ZnVuY3Rpb24oKXtyZXR1cm4gbX0sbjpmdW5jdGlvbigpe3JldHVybiBFZX0sbzpmdW5jdGlvbigpe3JldHVybiBmZX0scjpmdW5jdGlvbigpe3JldHVybiBjZX0sczpmdW5jdGlvbigpe3JldHVybiBuZX0sdDpmdW5jdGlvbigpe3JldHVybiBXfSx1OmZ1bmN0aW9uKCl7cmV0dXJuIGp9LHo6ZnVuY3Rpb24oKXtyZXR1cm4gTH19KTt2YXIgcj1lKDY3Mjk0KSxuPWUoMjAyMjQpLHQ9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiBpKE0sQSl7dmFyIFUsTjtpZihNPT09QSlyZXR1cm4hMDtpZihNJiZBJiYoVT1NLmNvbnN0cnVjdG9yKT09PUEuY29uc3RydWN0b3Ipe2lmKFU9PT1EYXRlKXJldHVybiBNLmdldFRpbWUoKT09PUEuZ2V0VGltZSgpO2lmKFU9PT1SZWdFeHApcmV0dXJuIE0udG9TdHJpbmcoKT09PUEudG9TdHJpbmcoKTtpZihVPT09QXJyYXkpe2lmKChOPU0ubGVuZ3RoKT09PUEubGVuZ3RoKWZvcig7Ti0tJiZpKE1bTl0sQVtOXSk7KTtyZXR1cm4gTj09PS0xfWlmKCFVfHx0eXBlb2YgTT09Im9iamVjdCIpe049MDtmb3IoVSBpbiBNKWlmKHQuY2FsbChNLFUpJiYrK04mJiF0LmNhbGwoQSxVKXx8IShVIGluIEEpfHwhaShNW1VdLEFbVV0pKXJldHVybiExO3JldHVybiBPYmplY3Qua2V5cyhBKS5sZW5ndGg9PT1OfX1yZXR1cm4gTSE9PU0mJkEhPT1BfWNvbnN0IHM9bmV3IFdlYWtNYXAsYT0oKT0+e30sdT1hKCksYz1PYmplY3QsaD1NPT5NPT09dSxkPU09PnR5cGVvZiBNPT0iZnVuY3Rpb24iLG09KE0sQSk9PnhjKHhjKHt9LE0pLEEpLEM9TT0+ZChNLnRoZW4pLGc9e30sdz17fSxFPSJ1bmRlZmluZWQiLHg9dHlwZW9mIHdpbmRvdyE9RSxPPXR5cGVvZiBkb2N1bWVudCE9RSxUPXgmJiJEZW5vImluIHdpbmRvdyxTPSgpPT54JiZ0eXBlb2Ygd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSE9RSxMPShNLEEpPT57Y29uc3QgVT1zLmdldChNKTtyZXR1cm5bKCk9PiFoKEEpJiZNLmdldChBKXx8ZyxOPT57aWYoIWgoQSkpe2NvbnN0IFE9TS5nZXQoQSk7QSBpbiB3fHwod1tBXT1RKSxVWzVdKEEsbShRLE4pLFF8fGcpfX0sVVs2XSwoKT0+IWgoQSkmJkEgaW4gdz93W0FdOiFoKEEpJiZNLmdldChBKXx8Z119O2xldCBJPSEwO2NvbnN0IFI9KCk9PkksW3osR109eCYmd2luZG93LmFkZEV2ZW50TGlzdGVuZXI/W3dpbmRvdy5hZGRFdmVudExpc3RlbmVyLmJpbmQod2luZG93KSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lci5iaW5kKHdpbmRvdyldOlthLGFdLFk9KCk9Pntjb25zdCBNPU8mJmRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZTtyZXR1cm4gaChNKXx8TSE9PSJoaWRkZW4ifSxlZT1NPT4oTyYmZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidmlzaWJpbGl0eWNoYW5nZSIsTSkseigiZm9jdXMiLE0pLCgpPT57TyYmZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidmlzaWJpbGl0eWNoYW5nZSIsTSksRygiZm9jdXMiLE0pfSksSj1NPT57Y29uc3QgQT0oKT0+e0k9ITAsTSgpfSxVPSgpPT57ST0hMX07cmV0dXJuIHooIm9ubGluZSIsQSkseigib2ZmbGluZSIsVSksKCk9PntHKCJvbmxpbmUiLEEpLEcoIm9mZmxpbmUiLFUpfX0sbWU9e2lzT25saW5lOlIsaXNWaXNpYmxlOll9LHRlPXtpbml0Rm9jdXM6ZWUsaW5pdFJlY29ubmVjdDpKfSxsZT0hci51c2VJZCxjZT0heHx8VCxXPU09PlMoKT93aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKE0pOnNldFRpbWVvdXQoTSwxKSxqPWNlP3IudXNlRWZmZWN0OnIudXNlTGF5b3V0RWZmZWN0LEQ9dHlwZW9mIG5hdmlnYXRvciE9InVuZGVmaW5lZCImJm5hdmlnYXRvci5jb25uZWN0aW9uLFY9IWNlJiZEJiYoWyJzbG93LTJnIiwiMmciXS5pbmNsdWRlcyhELmVmZmVjdGl2ZVR5cGUpfHxELnNhdmVEYXRhKSxaPW5ldyBXZWFrTWFwLFA9KE0sQSk9PmMucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoTSk9PT1gW29iamVjdCAke0F9XWA7bGV0IEs9MDtjb25zdCBzZT1NPT57Y29uc3QgQT10eXBlb2YgTSxVPVAoTSwiRGF0ZSIpLE49UChNLCJSZWdFeHAiKSxRPVAoTSwiT2JqZWN0Iik7bGV0IHVlLCQ7aWYoYyhNKT09PU0mJiFVJiYhTil7aWYodWU9Wi5nZXQoTSksdWUpcmV0dXJuIHVlO2lmKHVlPSsrSysifiIsWi5zZXQoTSx1ZSksQXJyYXkuaXNBcnJheShNKSl7Zm9yKHVlPSJAIiwkPTA7JDxNLmxlbmd0aDskKyspdWUrPXNlKE1bJF0pKyIsIjtaLnNldChNLHVlKX1pZihRKXt1ZT0iIyI7Y29uc3QgXz1jLmtleXMoTSkuc29ydCgpO2Zvcig7IWgoJD1fLnBvcCgpKTspaChNWyRdKXx8KHVlKz0kKyI6IitzZShNWyRdKSsiLCIpO1ouc2V0KE0sdWUpfX1lbHNlIHVlPVU/TS50b0pTT04oKTpBPT0ic3ltYm9sIj9NLnRvU3RyaW5nKCk6QT09InN0cmluZyI/SlNPTi5zdHJpbmdpZnkoTSk6IiIrTTtyZXR1cm4gdWV9LG5lPU09PntpZihkKE0pKXRyeXtNPU0oKX1jYXRjaChVKXtNPSIifWNvbnN0IEE9TTtyZXR1cm4gTT10eXBlb2YgTT09InN0cmluZyI/TTooQXJyYXkuaXNBcnJheShNKT9NLmxlbmd0aDpNKT9zZShNKToiIixbTSxBXX07bGV0IG9lPTA7Y29uc3QgZmU9KCk9Pisrb2U7ZnVuY3Rpb24gRWUoLi4uTSl7cmV0dXJuIEIxKHRoaXMsbnVsbCxmdW5jdGlvbiooKXtjb25zdFtBLFUsTixRXT1NLHVlPW0oe3BvcHVsYXRlQ2FjaGU6ITAsdGhyb3dPbkVycm9yOiEwfSx0eXBlb2YgUT09ImJvb2xlYW4iP3tyZXZhbGlkYXRlOlF9OlF8fHt9KTtsZXQgJD11ZS5wb3B1bGF0ZUNhY2hlO2NvbnN0IF89dWUucm9sbGJhY2tPbkVycm9yO2xldCBwZT11ZS5vcHRpbWlzdGljRGF0YTtjb25zdCByZT1MZT0+dHlwZW9mIF89PSJmdW5jdGlvbiI/XyhMZSk6XyE9PSExLGFlPXVlLnRocm93T25FcnJvcjtpZihkKFUpKXtjb25zdCBMZT1VLE1lPVtdLGJlPUEua2V5cygpO2Zvcihjb25zdCAkZSBvZiBiZSkhL15cJChpbmZ8c3ViKVwkLy50ZXN0KCRlKSYmTGUoQS5nZXQoJGUpLl9rKSYmTWUucHVzaCgkZSk7cmV0dXJuIFByb21pc2UuYWxsKE1lLm1hcCh3ZSkpfXJldHVybiB3ZShVKTtmdW5jdGlvbiB3ZShMZSl7cmV0dXJuIEIxKHRoaXMsbnVsbCxmdW5jdGlvbiooKXtjb25zdFtNZV09bmUoTGUpO2lmKCFNZSlyZXR1cm47Y29uc3RbYmUsJGVdPUwoQSxNZSksW2tlLEFlLHR0LG10XT1zLmdldChBKSx1dD0oKT0+e2NvbnN0IGN0PWtlW01lXTtyZXR1cm4oZCh1ZS5yZXZhbGlkYXRlKT91ZS5yZXZhbGlkYXRlKGJlKCkuZGF0YSxMZSk6dWUucmV2YWxpZGF0ZSE9PSExKSYmKGRlbGV0ZSB0dFtNZV0sZGVsZXRlIG10W01lXSxjdCYmY3RbMF0pP2N0WzBdKG4uUVEpLnRoZW4oKCk9PmJlKCkuZGF0YSk6YmUoKS5kYXRhfTtpZihNLmxlbmd0aDwzKXJldHVybiB1dCgpO2xldCBEZT1OLE5lO2NvbnN0IFhlPWZlKCk7QWVbTWVdPVtYZSwwXTtjb25zdCBKZT0haChwZSksZ3Q9YmUoKSxkZT1ndC5kYXRhLFdlPWd0Ll9jLFN0PWgoV2UpP2RlOldlO2lmKEplJiYocGU9ZChwZSk/cGUoU3QsZGUpOnBlLCRlKHtkYXRhOnBlLF9jOlN0fSkpLGQoRGUpKXRyeXtEZT1EZShTdCl9Y2F0Y2goY3Qpe05lPWN0fWlmKERlJiZDKERlKSlpZihEZT15aWVsZCBEZS5jYXRjaChjdD0+e05lPWN0fSksWGUhPT1BZVtNZV1bMF0pe2lmKE5lKXRocm93IE5lO3JldHVybiBEZX1lbHNlIE5lJiZKZSYmcmUoTmUpJiYoJD0hMCwkZSh7ZGF0YTpTdCxfYzp1fSkpO2lmKCQmJiFOZSlpZihkKCQpKXtjb25zdCBjdD0kKERlLFN0KTskZSh7ZGF0YTpjdCxlcnJvcjp1LF9jOnV9KX1lbHNlICRlKHtkYXRhOkRlLGVycm9yOnUsX2M6dX0pO2lmKEFlW01lXVsxXT1mZSgpLFByb21pc2UucmVzb2x2ZSh1dCgpKS50aGVuKCgpPT57JGUoe19jOnV9KX0pLE5lKXtpZihhZSl0aHJvdyBOZTtyZXR1cm59cmV0dXJuIERlfSl9fSl9Y29uc3QgUmU9KE0sQSk9Pntmb3IoY29uc3QgVSBpbiBNKU1bVV1bMF0mJk1bVV1bMF0oQSl9LEJlPShNLEEpPT57aWYoIXMuaGFzKE0pKXtjb25zdCBVPW0odGUsQSksTj1PYmplY3QuY3JlYXRlKG51bGwpLFE9RWUuYmluZCh1LE0pO2xldCB1ZT1hO2NvbnN0ICQ9T2JqZWN0LmNyZWF0ZShudWxsKSxfPShhZSx3ZSk9Pntjb25zdCBMZT0kW2FlXXx8W107cmV0dXJuICRbYWVdPUxlLExlLnB1c2god2UpLCgpPT5MZS5zcGxpY2UoTGUuaW5kZXhPZih3ZSksMSl9LHBlPShhZSx3ZSxMZSk9PntNLnNldChhZSx3ZSk7Y29uc3QgTWU9JFthZV07aWYoTWUpZm9yKGNvbnN0IGJlIG9mIE1lKWJlKHdlLExlKX0scmU9KCk9PntpZighcy5oYXMoTSkmJihzLnNldChNLFtOLE9iamVjdC5jcmVhdGUobnVsbCksT2JqZWN0LmNyZWF0ZShudWxsKSxPYmplY3QuY3JlYXRlKG51bGwpLFEscGUsX10pLCFjZSkpe2NvbnN0IGFlPVUuaW5pdEZvY3VzKHNldFRpbWVvdXQuYmluZCh1LFJlLmJpbmQodSxOLG4uTjQpKSksd2U9VS5pbml0UmVjb25uZWN0KHNldFRpbWVvdXQuYmluZCh1LFJlLmJpbmQodSxOLG4ubDIpKSk7dWU9KCk9PnthZSYmYWUoKSx3ZSYmd2UoKSxzLmRlbGV0ZShNKX19fTtyZXR1cm4gcmUoKSxbTSxRLHJlLHVlXX1yZXR1cm5bTSxzLmdldChNKVs0XV19LFllPShNLEEsVSxOLFEpPT57Y29uc3QgdWU9VS5lcnJvclJldHJ5Q291bnQsJD1RLnJldHJ5Q291bnQsXz1+figoTWF0aC5yYW5kb20oKSsuNSkqKDE8PCgkPDg/JDo4KSkpKlUuZXJyb3JSZXRyeUludGVydmFsOyFoKHVlKSYmJD51ZXx8c2V0VGltZW91dChOLF8sUSl9LG90PWksW3FlLF9lXT1CZShuZXcgTWFwKSxGZT1tKHtvbkxvYWRpbmdTbG93OmEsb25TdWNjZXNzOmEsb25FcnJvcjphLG9uRXJyb3JSZXRyeTpZZSxvbkRpc2NhcmRlZDphLHJldmFsaWRhdGVPbkZvY3VzOiEwLHJldmFsaWRhdGVPblJlY29ubmVjdDohMCxyZXZhbGlkYXRlSWZTdGFsZTohMCxzaG91bGRSZXRyeU9uRXJyb3I6ITAsZXJyb3JSZXRyeUludGVydmFsOlY/MWU0OjVlMyxmb2N1c1Rocm90dGxlSW50ZXJ2YWw6NSoxZTMsZGVkdXBpbmdJbnRlcnZhbDoyKjFlMyxsb2FkaW5nVGltZW91dDpWPzVlMzozZTMsY29tcGFyZTpvdCxpc1BhdXNlZDooKT0+ITEsY2FjaGU6cWUsbXV0YXRlOl9lLGZhbGxiYWNrOnt9fSxtZSksU2U9KE0sQSk9Pntjb25zdCBVPW0oTSxBKTtpZihBKXtjb25zdHt1c2U6TixmYWxsYmFjazpRfT1NLHt1c2U6dWUsZmFsbGJhY2s6JH09QTtOJiZ1ZSYmKFUudXNlPU4uY29uY2F0KHVlKSksUSYmJCYmKFUuZmFsbGJhY2s9bShRLCQpKX1yZXR1cm4gVX0scT0oMCxyLmNyZWF0ZUNvbnRleHQpKHt9KSxrPU09Pntjb25zdHt2YWx1ZTpBfT1NLFU9KDAsci51c2VDb250ZXh0KShxKSxOPWQoQSksUT0oMCxyLnVzZU1lbW8pKCgpPT5OP0EoVSk6QSxbTixVLEFdKSx1ZT0oMCxyLnVzZU1lbW8pKCgpPT5OP1E6U2UoVSxRKSxbTixVLFFdKSwkPVEmJlEucHJvdmlkZXIsXz0oMCxyLnVzZVJlZikodSk7JCYmIV8uY3VycmVudCYmKF8uY3VycmVudD1CZSgkKHVlLmNhY2hlfHxxZSksUSkpO2NvbnN0IHBlPV8uY3VycmVudDtyZXR1cm4gcGUmJih1ZS5jYWNoZT1wZVswXSx1ZS5tdXRhdGU9cGVbMV0pLGooKCk9PntpZihwZSlyZXR1cm4gcGVbMl0mJnBlWzJdKCkscGVbM119LFtdKSwoMCxyLmNyZWF0ZUVsZW1lbnQpKHEuUHJvdmlkZXIsbShNLHt2YWx1ZTp1ZX0pKX19LDIwMjI0OmZ1bmN0aW9uKHkscCxlKXsidXNlIHN0cmljdCI7ZS5kKHAse040OmZ1bmN0aW9uKCl7cmV0dXJuIHJ9LFFROmZ1bmN0aW9uKCl7cmV0dXJuIHR9LGFVOmZ1bmN0aW9uKCl7cmV0dXJuIGl9LGwyOmZ1bmN0aW9uKCl7cmV0dXJuIG59fSk7Y29uc3Qgcj0wLG49MSx0PTIsaT0zfSwyNTI2OTpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtrbzpmdW5jdGlvbigpe3JldHVybiBnfSxrWTpmdW5jdGlvbigpe3JldHVybiBjfSxzNjpmdW5jdGlvbigpe3JldHVybiBDfX0pO3ZhciByPWUoMzc3ODEpO2NvbnN0IG49IiRpbmYkIjt2YXIgdD1lKDY3Mjk0KTtjb25zdCBpPXIuaSYmd2luZG93Ll9fU1dSX0RFVlRPT0xTX1VTRV9fLHM9aT93aW5kb3cuX19TV1JfREVWVE9PTFNfVVNFX186W10sYT0oKT0+e2kmJih3aW5kb3cuX19TV1JfREVWVE9PTFNfUkVBQ1RfXz10KX0sdT1FPT4oMCxyLmEpKEVbMV0pP1tFWzBdLEVbMV0sRVsyXXx8e31dOltFWzBdLG51bGwsKEVbMV09PT1udWxsP0VbMl06RVsxXSl8fHt9XSxjPSgpPT4oMCxyLm0pKHIuZCwoMCx0LnVzZUNvbnRleHQpKHIuUykpLGg9KEUseCk9Pntjb25zdFtPLFRdPXNlcmlhbGl6ZShFKSxbLCwsU109U1dSR2xvYmFsU3RhdGUuZ2V0KGNhY2hlKTtpZihTW09dKXJldHVybiBTW09dO2NvbnN0IEw9eChUKTtyZXR1cm4gU1tPXT1MLEx9LGQ9RT0+KHgsTyxUKT0+RSh4LE8mJigoLi4uTCk9Pntjb25zdFtJXT0oMCxyLnMpKHgpLFssLCxSXT1yLmIuZ2V0KHIuYyk7aWYoSS5zdGFydHNXaXRoKG4pKXJldHVybiBPKC4uLkwpO2NvbnN0IHo9UltJXTtyZXR1cm4oMCxyLmUpKHopP08oLi4uTCk6KGRlbGV0ZSBSW0ldLHopfSksVCksbT1zLmNvbmNhdChkKSxDPUU9PmZ1bmN0aW9uKC4uLk8pe2NvbnN0IFQ9YygpLFtTLEwsSV09dShPKSxSPSgwLHIuZikoVCxJKTtsZXQgej1FO2NvbnN0e3VzZTpHfT1SLFk9KEd8fFtdKS5jb25jYXQobSk7Zm9yKGxldCBlZT1ZLmxlbmd0aDtlZS0tOyl6PVlbZWVdKHopO3JldHVybiB6KFMsTHx8Ui5mZXRjaGVyfHxudWxsLFIpfSxnPShFLHgsTyk9Pntjb25zdCBUPXhbRV18fCh4W0VdPVtdKTtyZXR1cm4gVC5wdXNoKE8pLCgpPT57Y29uc3QgUz1ULmluZGV4T2YoTyk7Uz49MCYmKFRbU109VFtULmxlbmd0aC0xXSxULnBvcCgpKX19LHc9KEUseCk9PiguLi5PKT0+e2NvbnN0W1QsUyxMXT11KE8pLEk9KEwudXNlfHxbXSkuY29uY2F0KHgpO3JldHVybiBFKFQsUyx4dSh4Yyh7fSxMKSx7dXNlOkl9KSl9O2EoKX0sNTA2ODpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtKJDpmdW5jdGlvbigpe3JldHVybiBMfSxaUDpmdW5jdGlvbigpe3JldHVybiBJfX0pO3ZhciByPWUoNjcyOTQpLG49ZSg2MTY4OCksdD1lKDM3NzgxKSxpPWUoMjAyMjQpLHM9ZSgyNTI2OSk7Y29uc3QgdT12b2lkIDAsYz1udWxsLGg9Uj0+Uj09PXUsZD1SPT50eXBlb2YgUj09ImZ1bmN0aW9uIixtPW5ldyBXZWFrTWFwLEM9KFIseik9PmMucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoUik9PT1gW29iamVjdCAke3p9XWA7bGV0IGc9MDtjb25zdCB3PVI9Pntjb25zdCB6PXR5cGVvZiBSLEc9QyhSLCJEYXRlIiksWT1DKFIsIlJlZ0V4cCIpLGVlPUMoUiwiT2JqZWN0Iik7bGV0IEosbWU7aWYoYyhSKT09PVImJiFHJiYhWSl7aWYoSj1tLmdldChSKSxKKXJldHVybiBKO2lmKEo9KytnKyJ+IixtLnNldChSLEopLEFycmF5LmlzQXJyYXkoUikpe2ZvcihKPSJAIixtZT0wO21lPFIubGVuZ3RoO21lKyspSis9dyhSW21lXSkrIiwiO20uc2V0KFIsSil9aWYoZWUpe0o9IiMiO2NvbnN0IHRlPWMua2V5cyhSKS5zb3J0KCk7Zm9yKDshaChtZT10ZS5wb3AoKSk7KWgoUlttZV0pfHwoSis9bWUrIjoiK3coUlttZV0pKyIsIik7bS5zZXQoUixKKX19ZWxzZSBKPUc/Ui50b0pTT04oKTp6PT0ic3ltYm9sIj9SLnRvU3RyaW5nKCk6ej09InN0cmluZyI/SlNPTi5zdHJpbmdpZnkoUik6IiIrUjtyZXR1cm4gSn0sRT1SPT57aWYoZChSKSl0cnl7Uj1SKCl9Y2F0Y2goRyl7Uj0iIn1jb25zdCB6PVI7cmV0dXJuIFI9dHlwZW9mIFI9PSJzdHJpbmciP1I6KEFycmF5LmlzQXJyYXkoUik/Ui5sZW5ndGg6Uik/dyhSKToiIixbUix6XX0seD1SPT5FKFIpWzBdLE89ci51c2V8fChSPT57c3dpdGNoKFIuc3RhdHVzKXtjYXNlInBlbmRpbmciOnRocm93IFI7Y2FzZSJmdWxmaWxsZWQiOnJldHVybiBSLnZhbHVlO2Nhc2UicmVqZWN0ZWQiOnRocm93IFIucmVhc29uO2RlZmF1bHQ6dGhyb3cgUi5zdGF0dXM9InBlbmRpbmciLFIudGhlbih6PT57Ui5zdGF0dXM9ImZ1bGZpbGxlZCIsUi52YWx1ZT16fSx6PT57Ui5zdGF0dXM9InJlamVjdGVkIixSLnJlYXNvbj16fSksUn19KSxUPXtkZWR1cGU6ITB9LFM9KFIseixHKT0+e2NvbnN0e2NhY2hlOlksY29tcGFyZTplZSxzdXNwZW5zZTpKLGZhbGxiYWNrRGF0YTptZSxyZXZhbGlkYXRlT25Nb3VudDp0ZSxyZXZhbGlkYXRlSWZTdGFsZTpsZSxyZWZyZXNoSW50ZXJ2YWw6Y2UscmVmcmVzaFdoZW5IaWRkZW46VyxyZWZyZXNoV2hlbk9mZmxpbmU6aixrZWVwUHJldmlvdXNEYXRhOkR9PUcsW1YsWixQLEtdPXQuYi5nZXQoWSksW3NlLG5lXT0oMCx0LnMpKFIpLG9lPSgwLHIudXNlUmVmKSghMSksZmU9KDAsci51c2VSZWYpKCExKSxFZT0oMCxyLnVzZVJlZikoc2UpLFJlPSgwLHIudXNlUmVmKSh6KSxCZT0oMCxyLnVzZVJlZikoRyksWWU9KCk9PkJlLmN1cnJlbnQsb3Q9KCk9PlllKCkuaXNWaXNpYmxlKCkmJlllKCkuaXNPbmxpbmUoKSxbcWUsX2UsRmUsU2VdPSgwLHQueikoWSxzZSkscT0oMCxyLnVzZVJlZikoe30pLmN1cnJlbnQsaz0oMCx0LmUpKG1lKT8oMCx0LmUpKEcuZmFsbGJhY2spP3QuVTpHLmZhbGxiYWNrW3NlXTptZSxNPShBZSx0dCk9Pntmb3IoY29uc3QgbXQgaW4gcSl7Y29uc3QgdXQ9bXQ7aWYodXQ9PT0iZGF0YSIpe2lmKCFlZShBZVt1dF0sdHRbdXRdKSYmKCEoMCx0LmUpKEFlW3V0XSl8fCFlZShyZSx0dFt1dF0pKSlyZXR1cm4hMX1lbHNlIGlmKHR0W3V0XSE9PUFlW3V0XSlyZXR1cm4hMX1yZXR1cm4hMH0sQT0oMCxyLnVzZU1lbW8pKCgpPT57Y29uc3QgQWU9IXNlfHwhej8hMTooMCx0LmUpKHRlKT9ZZSgpLmlzUGF1c2VkKCl8fEo/ITE6bGUhPT0hMTp0ZSx0dD1KZT0+e2NvbnN0IGd0PSgwLHQubSkoSmUpO3JldHVybiBkZWxldGUgZ3QuX2ssQWU/eGMoe2lzVmFsaWRhdGluZzohMCxpc0xvYWRpbmc6ITB9LGd0KTpndH0sbXQ9cWUoKSx1dD1TZSgpLERlPXR0KG10KSxOZT1tdD09PXV0P0RlOnR0KHV0KTtsZXQgWGU9RGU7cmV0dXJuWygpPT57Y29uc3QgSmU9dHQocWUoKSk7cmV0dXJuIE0oSmUsWGUpPyhYZS5kYXRhPUplLmRhdGEsWGUuaXNMb2FkaW5nPUplLmlzTG9hZGluZyxYZS5pc1ZhbGlkYXRpbmc9SmUuaXNWYWxpZGF0aW5nLFhlLmVycm9yPUplLmVycm9yLFhlKTooWGU9SmUsSmUpfSwoKT0+TmVdfSxbWSxzZV0pLFU9KDAsbi51c2VTeW5jRXh0ZXJuYWxTdG9yZSkoKDAsci51c2VDYWxsYmFjaykoQWU9PkZlKHNlLCh0dCxtdCk9PntNKG10LHR0KXx8QWUoKX0pLFtZLHNlXSksQVswXSxBWzFdKSxOPSFvZS5jdXJyZW50LFE9VltzZV0mJlZbc2VdLmxlbmd0aD4wLHVlPVUuZGF0YSwkPSgwLHQuZSkodWUpP2smJigwLHQuQikoayk/TyhrKTprOnVlLF89VS5lcnJvcixwZT0oMCxyLnVzZVJlZikoJCkscmU9RD8oMCx0LmUpKHVlKT8oMCx0LmUpKHBlLmN1cnJlbnQpPyQ6cGUuY3VycmVudDp1ZTokLGFlPVEmJiEoMCx0LmUpKF8pPyExOk4mJiEoMCx0LmUpKHRlKT90ZTpZZSgpLmlzUGF1c2VkKCk/ITE6Sj8oMCx0LmUpKCQpPyExOmxlOigwLHQuZSkoJCl8fGxlLHdlPSEhKHNlJiZ6JiZOJiZhZSksTGU9KDAsdC5lKShVLmlzVmFsaWRhdGluZyk/d2U6VS5pc1ZhbGlkYXRpbmcsTWU9KDAsdC5lKShVLmlzTG9hZGluZyk/d2U6VS5pc0xvYWRpbmcsYmU9KDAsci51c2VDYWxsYmFjaykoQWU9PkIxKHRoaXMsbnVsbCxmdW5jdGlvbiooKXtjb25zdCB0dD1SZS5jdXJyZW50O2lmKCFzZXx8IXR0fHxmZS5jdXJyZW50fHxZZSgpLmlzUGF1c2VkKCkpcmV0dXJuITE7bGV0IG10LHV0LERlPSEwO2NvbnN0IE5lPUFlfHx7fSxYZT0hUFtzZV18fCFOZS5kZWR1cGUsSmU9KCk9PnQuST8hZmUuY3VycmVudCYmc2U9PT1FZS5jdXJyZW50JiZvZS5jdXJyZW50OnNlPT09RWUuY3VycmVudCxndD17aXNWYWxpZGF0aW5nOiExLGlzTG9hZGluZzohMX0sZGU9KCk9PntfZShndCl9LFdlPSgpPT57Y29uc3QgY3Q9UFtzZV07Y3QmJmN0WzFdPT09dXQmJmRlbGV0ZSBQW3NlXX0sU3Q9e2lzVmFsaWRhdGluZzohMH07KDAsdC5lKShxZSgpLmRhdGEpJiYoU3QuaXNMb2FkaW5nPSEwKTt0cnl7aWYoWGUmJihfZShTdCksRy5sb2FkaW5nVGltZW91dCYmKDAsdC5lKShxZSgpLmRhdGEpJiZzZXRUaW1lb3V0KCgpPT57RGUmJkplKCkmJlllKCkub25Mb2FkaW5nU2xvdyhzZSxHKX0sRy5sb2FkaW5nVGltZW91dCksUFtzZV09W3R0KG5lKSwoMCx0Lm8pKCldKSxbbXQsdXRdPVBbc2VdLG10PXlpZWxkIG10LFhlJiZzZXRUaW1lb3V0KFdlLEcuZGVkdXBpbmdJbnRlcnZhbCksIVBbc2VdfHxQW3NlXVsxXSE9PXV0KXJldHVybiBYZSYmSmUoKSYmWWUoKS5vbkRpc2NhcmRlZChzZSksITE7Z3QuZXJyb3I9dC5VO2NvbnN0IGN0PVpbc2VdO2lmKCEoMCx0LmUpKGN0KSYmKHV0PD1jdFswXXx8dXQ8PWN0WzFdfHxjdFsxXT09PTApKXJldHVybiBkZSgpLFhlJiZKZSgpJiZZZSgpLm9uRGlzY2FyZGVkKHNlKSwhMTtjb25zdCBPZT1xZSgpLmRhdGE7Z3QuZGF0YT1lZShPZSxtdCk/T2U6bXQsWGUmJkplKCkmJlllKCkub25TdWNjZXNzKG10LHNlLEcpfWNhdGNoKGN0KXtXZSgpO2NvbnN0IE9lPVllKCkse3Nob3VsZFJldHJ5T25FcnJvcjpHZX09T2U7T2UuaXNQYXVzZWQoKXx8KGd0LmVycm9yPWN0LFhlJiZKZSgpJiYoT2Uub25FcnJvcihjdCxzZSxPZSksKEdlPT09ITB8fCgwLHQuYSkoR2UpJiZHZShjdCkpJiYoIVllKCkucmV2YWxpZGF0ZU9uRm9jdXN8fCFZZSgpLnJldmFsaWRhdGVPblJlY29ubmVjdHx8b3QoKSkmJk9lLm9uRXJyb3JSZXRyeShjdCxzZSxPZSxodD0+e2NvbnN0IHplPVZbc2VdO3plJiZ6ZVswXSYmemVbMF0oaS5hVSxodCl9LHtyZXRyeUNvdW50OihOZS5yZXRyeUNvdW50fHwwKSsxLGRlZHVwZTohMH0pKSl9cmV0dXJuIERlPSExLGRlKCksITB9KSxbc2UsWV0pLCRlPSgwLHIudXNlQ2FsbGJhY2spKCguLi5BZSk9PigwLHQubikoWSxFZS5jdXJyZW50LC4uLkFlKSxbXSk7aWYoKDAsdC51KSgoKT0+e1JlLmN1cnJlbnQ9eixCZS5jdXJyZW50PUcsKDAsdC5lKSh1ZSl8fChwZS5jdXJyZW50PXVlKX0pLCgwLHQudSkoKCk9PntpZighc2UpcmV0dXJuO2NvbnN0IEFlPWJlLmJpbmQodC5VLFQpO2xldCB0dD0wO1llKCkucmV2YWxpZGF0ZU9uRm9jdXMmJih0dD1EYXRlLm5vdygpK1llKCkuZm9jdXNUaHJvdHRsZUludGVydmFsKTtjb25zdCBtdD0oRGUsTmU9e30pPT57aWYoRGU9PWkuTjQpe2NvbnN0IFhlPURhdGUubm93KCk7WWUoKS5yZXZhbGlkYXRlT25Gb2N1cyYmWGU+dHQmJm90KCkmJih0dD1YZStZZSgpLmZvY3VzVGhyb3R0bGVJbnRlcnZhbCxBZSgpKX1lbHNlIGlmKERlPT1pLmwyKVllKCkucmV2YWxpZGF0ZU9uUmVjb25uZWN0JiZvdCgpJiZBZSgpO2Vsc2V7aWYoRGU9PWkuUVEpcmV0dXJuIGJlKCk7aWYoRGU9PWkuYVUpcmV0dXJuIGJlKE5lKX19LHV0PSgwLHMua28pKHNlLFYsbXQpO3JldHVybiBmZS5jdXJyZW50PSExLEVlLmN1cnJlbnQ9c2Usb2UuY3VycmVudD0hMCxfZSh7X2s6bmV9KSxhZSYmKCgwLHQuZSkoJCl8fHQucj9BZSgpOigwLHQudCkoQWUpKSwoKT0+e2ZlLmN1cnJlbnQ9ITAsdXQoKX19LFtzZV0pLCgwLHQudSkoKCk9PntsZXQgQWU7ZnVuY3Rpb24gdHQoKXtjb25zdCB1dD0oMCx0LmEpKGNlKT9jZShxZSgpLmRhdGEpOmNlO3V0JiZBZSE9PS0xJiYoQWU9c2V0VGltZW91dChtdCx1dCkpfWZ1bmN0aW9uIG10KCl7IXFlKCkuZXJyb3ImJihXfHxZZSgpLmlzVmlzaWJsZSgpKSYmKGp8fFllKCkuaXNPbmxpbmUoKSk/YmUoVCkudGhlbih0dCk6dHQoKX1yZXR1cm4gdHQoKSwoKT0+e0FlJiYoY2xlYXJUaW1lb3V0KEFlKSxBZT0tMSl9fSxbY2UsVyxqLHNlXSksKDAsci51c2VEZWJ1Z1ZhbHVlKShyZSksSiYmKDAsdC5lKSgkKSYmc2Upe2lmKCF0LkkmJnQucil0aHJvdyBuZXcgRXJyb3IoIkZhbGxiYWNrIGRhdGEgaXMgcmVxdWlyZWQgd2hlbiB1c2luZyBTdXNwZW5zZSBpbiBTU1IuIik7UmUuY3VycmVudD16LEJlLmN1cnJlbnQ9RyxmZS5jdXJyZW50PSExO2NvbnN0IEFlPUtbc2VdO2lmKCEoMCx0LmUpKEFlKSl7Y29uc3QgdHQ9JGUoQWUpO08odHQpfWlmKCgwLHQuZSkoXykpe2NvbnN0IHR0PWJlKFQpOygwLHQuZSkocmUpfHwodHQuc3RhdHVzPSJmdWxmaWxsZWQiLHR0LnZhbHVlPSEwKSxPKHR0KX1lbHNlIHRocm93IF99cmV0dXJue211dGF0ZTokZSxnZXQgZGF0YSgpe3JldHVybiBxLmRhdGE9ITAscmV9LGdldCBlcnJvcigpe3JldHVybiBxLmVycm9yPSEwLF99LGdldCBpc1ZhbGlkYXRpbmcoKXtyZXR1cm4gcS5pc1ZhbGlkYXRpbmc9ITAsTGV9LGdldCBpc0xvYWRpbmcoKXtyZXR1cm4gcS5pc0xvYWRpbmc9ITAsTWV9fX0sTD10Lk8uZGVmaW5lUHJvcGVydHkodC5nLCJkZWZhdWx0VmFsdWUiLHt2YWx1ZTp0LmR9KSxJPSgwLHMuczYpKFMpfSwyNzg1NjpmdW5jdGlvbih5LHAsZSl7InVzZSBzdHJpY3QiO2UuZChwLHtEOmZ1bmN0aW9uKCl7cmV0dXJuIG59fSk7ZnVuY3Rpb24gcih0LGkscyl7dmFyIGE9c3x8e30sdT1hLm5vVHJhaWxpbmcsYz11PT09dm9pZCAwPyExOnUsaD1hLm5vTGVhZGluZyxkPWg9PT12b2lkIDA/ITE6aCxtPWEuZGVib3VuY2VNb2RlLEM9bT09PXZvaWQgMD92b2lkIDA6bSxnLHc9ITEsRT0wO2Z1bmN0aW9uIHgoKXtnJiZjbGVhclRpbWVvdXQoZyl9ZnVuY3Rpb24gTyhTKXt2YXIgTD1TfHx7fSxJPUwudXBjb21pbmdPbmx5LFI9ST09PXZvaWQgMD8hMTpJO3goKSx3PSFSfWZ1bmN0aW9uIFQoKXtmb3IodmFyIFM9YXJndW1lbnRzLmxlbmd0aCxMPW5ldyBBcnJheShTKSxJPTA7STxTO0krKylMW0ldPWFyZ3VtZW50c1tJXTt2YXIgUj10aGlzLHo9RGF0ZS5ub3coKS1FO2lmKHcpcmV0dXJuO2Z1bmN0aW9uIEcoKXtFPURhdGUubm93KCksaS5hcHBseShSLEwpfWZ1bmN0aW9uIFkoKXtnPXZvaWQgMH0hZCYmQyYmIWcmJkcoKSx4KCksQz09PXZvaWQgMCYmej50P2Q/KEU9RGF0ZS5ub3coKSxjfHwoZz1zZXRUaW1lb3V0KEM/WTpHLHQpKSk6RygpOmMhPT0hMCYmKGc9c2V0VGltZW91dChDP1k6RyxDPT09dm9pZCAwP3Qtejp0KSl9cmV0dXJuIFQuY2FuY2VsPU8sVH1mdW5jdGlvbiBuKHQsaSxzKXt2YXIgYT1zfHx7fSx1PWEuYXRCZWdpbixjPXU9PT12b2lkIDA/ITE6dTtyZXR1cm4gcih0LGkse2RlYm91bmNlTW9kZTpjIT09ITF9KX19fSxzaT17fTtmdW5jdGlvbiBDZSh5KXt2YXIgcD1zaVt5XTtpZihwIT09dm9pZCAwKXJldHVybiBwLmV4cG9ydHM7dmFyIGU9c2lbeV09e2lkOnksbG9hZGVkOiExLGV4cG9ydHM6e319O3JldHVybiBBaVt5XS5jYWxsKGUuZXhwb3J0cyxlLGUuZXhwb3J0cyxDZSksZS5sb2FkZWQ9ITAsZS5leHBvcnRzfUNlLm09QWksZnVuY3Rpb24oKXtDZS5uPWZ1bmN0aW9uKHkpe3ZhciBwPXkmJnkuX19lc01vZHVsZT9mdW5jdGlvbigpe3JldHVybiB5LmRlZmF1bHR9OmZ1bmN0aW9uKCl7cmV0dXJuIHl9O3JldHVybiBDZS5kKHAse2E6cH0pLHB9fSgpLGZ1bmN0aW9uKCl7dmFyIHk9T2JqZWN0LmdldFByb3RvdHlwZU9mP2Z1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0UHJvdG90eXBlT2YoZSl9OmZ1bmN0aW9uKGUpe3JldHVybiBlLl9fcHJvdG9fX30scDtDZS50PWZ1bmN0aW9uKGUscil7aWYociYxJiYoZT10aGlzKGUpKSxyJjh8fHR5cGVvZiBlPT0ib2JqZWN0IiYmZSYmKHImNCYmZS5fX2VzTW9kdWxlfHxyJjE2JiZ0eXBlb2YgZS50aGVuPT0iZnVuY3Rpb24iKSlyZXR1cm4gZTt2YXIgbj1PYmplY3QuY3JlYXRlKG51bGwpO0NlLnIobik7dmFyIHQ9e307cD1wfHxbbnVsbCx5KHt9KSx5KFtdKSx5KHkpXTtmb3IodmFyIGk9ciYyJiZlO3R5cGVvZiBpPT0ib2JqZWN0IiYmIX5wLmluZGV4T2YoaSk7aT15KGkpKU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGkpLmZvckVhY2goZnVuY3Rpb24ocyl7dFtzXT1mdW5jdGlvbigpe3JldHVybiBlW3NdfX0pO3JldHVybiB0LmRlZmF1bHQ9ZnVuY3Rpb24oKXtyZXR1cm4gZX0sQ2UuZChuLHQpLG59fSgpLGZ1bmN0aW9uKCl7Q2UuZD1mdW5jdGlvbih5LHApe2Zvcih2YXIgZSBpbiBwKUNlLm8ocCxlKSYmIUNlLm8oeSxlKSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHksZSx7ZW51bWVyYWJsZTohMCxnZXQ6cFtlXX0pfX0oKSxmdW5jdGlvbigpe0NlLmY9e30sQ2UuZT1mdW5jdGlvbih5KXtyZXR1cm4gUHJvbWlzZS5hbGwoT2JqZWN0LmtleXMoQ2UuZikucmVkdWNlKGZ1bmN0aW9uKHAsZSl7cmV0dXJuIENlLmZbZV0oeSxwKSxwfSxbXSkpfX0oKSxmdW5jdGlvbigpe0NlLnU9ZnVuY3Rpb24oeSl7cmV0dXJuIiIrKHsxMDkxOiJwX19Vc2VyQ2VudGVyX19pbmRleCIsMTk0MjoicF9fVXNlcl9fU2V0dGluZ3NfX2luZGV4IiwyNTcxOiJwX180MDQiLDI2MzY6InBfX1Bvc3RDZW50ZXJfX1Bvc3REZXRhaWwiLDM4Njc6InBfX1Rvb2xfX0dlbl9faW1wb3J0Iiw0ODczOiJwX19Qb3N0UmV2aWV3X19pbmRleCIsNTc4NjoicF9fU3lzdGVtX19EaWN0RGF0YV9faW5kZXgiLDYyODU6InBfX01vbml0b3JfX0pvYkxvZ19faW5kZXgiLDYzMDE6InRfX3BsdWdpbi1sYXlvdXRfX0xheW91dCIsNjgzMToicF9fU3lzdGVtX19Sb2xlX19hdXRoVXNlciIsNzE0NDoicF9fVG9vbF9fR2VuX19lZGl0Iiw4Mjk5OiJwX19Qb3N0Q2VudGVyX19pbmRleCIsOTI0NToicF9fVXNlcl9fQ2VudGVyX19pbmRleCIsOTM2NjoicF9fVXNlcl9fTG9naW5fX2luZGV4In1beV18fHkpKyIuIit7MTQ6IjUxZGViNGZhIiwxNzc6ImIzNjI1MGY4Iiw0NDg6ImM5MTg0ODI0Iiw2MDU6IjI5MDEyODA4Iiw5MDM6IjA5NGZmZWQwIiw5NDk6ImU5MmE5YTFmIiw5NjA6ImYyNzdlYzVjIiwxMDkxOiIxYzQxM2M2YyIsMTI1NjoiMmZhZThkM2YiLDEyODM6IjUwZGEwOTIwIiwxMzA2OiIzZGYyYzAyNCIsMTMxNjoiMjllMWEyYzEiLDE0MTQ6IjcwOTA4MTU1IiwxNDU4OiJlOTE0MDRkNCIsMTU4MToiMzAxYjEwMjUiLDE4MDc6ImZkNTk3MjUzIiwxODQyOiIzMGJkODBmYiIsMTk0MjoiMTA4MTE2MmEiLDE5OTQ6ImU0ZjQxZDA1IiwyMDE2OiJhYmQ2NjM2MSIsMjA1NzoiMmNmZTcwNTgiLDIwNjM6ImExOGRmZWM5IiwyMDg2OiJmNzZiZTlhYSIsMjE1NzoiNTQxMGRlNTIiLDIxNzk6ImVjYTk4ZmUzIiwyMjIyOiIwZjlkOGQ0MSIsMjI2MToiOGFlZWU2OTIiLDIzNjI6ImQ1OTI3ZWI2IiwyMzg1OiI5YjU0NjNiMyIsMjM5ODoiMWJiNThlMzQiLDI0OTM6IjNjN2M1Zjk2IiwyNTMxOiI0ZTRmMTU4ZCIsMjU3MToiMDk5ZjAyYjgiLDI1ODY6ImY0NDgzMDExIiwyNjM2OiI1ZDVlMDcwNSIsMjY1NDoiNDRkZTcyN2UiLDI2NTU6IjMwZTRkOGNhIiwyODM2OiJkNTZhYzNlZSIsMjg3MzoiMGI1ODczYTIiLDMwNTg6IjM4ODFhMWJiIiwzMjcyOiIxNzg1N2M1MCIsMzQ4NDoiNGYxMzdkZTMiLDM1NDI6ImIyMzk0MjMyIiwzNTUzOiIzOGNkMWIyMSIsMzYyODoiOTc0ODIxMzEiLDM3OTk6IjA0NjI3ODg0IiwzODU2OiJiZjVkOWUxOCIsMzg2NzoiNjZmMjJjNDAiLDM5MjI6IjE5YzQ1YTdkIiwzOTkzOiI0OTljMGNiOSIsNDIyOToiMzVhODY1YzgiLDQyOTY6IjhjYjY5ZjI2Iiw0MzQ2OiJjYzMyOWVhNyIsNDM5MzoiMTJiZjI1N2MiLDQ0NTM6IjBlMjA3NTNjIiw0ODczOiI2OTRlMWNjMyIsNDk5NDoiN2VkNTg4OGUiLDUyNzg6ImQ5NjRjZTM2Iiw1MzQ5OiJiN2FmNmIxYiIsNTM4NToiZGQ2ZGFkZTUiLDU0MDA6IjZiMzdiNGE4Iiw1NDQzOiI5NTM2ODEyZCIsNTQ2NDoiNzZjNTZlYWQiLDU0ODI6ImRiYjY3YzYzIiw1NTAwOiI0YjZkNmVhNCIsNTU0ODoiZjQ0MzY3MjIiLDU3ODY6ImFiZGJmNThiIiw1ODA4OiJkYWViNzY0YyIsNTgyNjoiMGEwOTc2MDgiLDU4NzY6IjQyYWMzOGIwIiw1OTU3OiI1MjZhMGIxOCIsNjExMDoiNjViNTM1YzQiLDYxNTQ6IjdiYzY0OGZjIiw2Mjg1OiIyZWMyZDRjZiIsNjMwMToiYzNiM2MyZGQiLDYzNzQ6ImZkZDYwYjA0Iiw2Mzg4OiJmNWZkNDgzNCIsNjM5MDoiNDk2NDM4ODUiLDY0MTI6IjBhM2JiMTM3Iiw2NDkyOiIzYmZhMTVlZCIsNjU2ODoiOWVkNjdmZWYiLDY1Njk6IjkwMjllYWJiIiw2NzIwOiI4MzhjOTQ1MyIsNjc2MjoiZWQwZmFiNDgiLDY4MzE6IjY0NWJkNzg1Iiw2OTI0OiIzODU0Nzk1NCIsN2UzOiJlMDE1NDJkNiIsNzAwNzoiMDMxNDk3N2YiLDcwOTU6ImMwNzQ1M2ExIiw3MTQ0OiI5MmZkNTJjNSIsNzI2NjoiNzczNWRjYjIiLDcyNjk6ImNjZTU4MGQ5Iiw3Mjk2OiI1NTU2YTMyZiIsNzMzMjoiNThmODYxMjYiLDczODg6Ijg1NjgwNTBiIiw3NDA3OiI2OTY0YTNlZiIsNzYyOToiOTcxZWRmYzgiLDc2NjI6ImY1N2M5NjYzIiw3Njk0OiIyMjRlODExNSIsNzc2MToiODdhNjJhODAiLDc3Nzc6IjIwMGE1Y2VhIiw3ODA1OiI3NzM0MzIwNCIsNzkwMzoiYmY1OTI5YWIiLDgyMDA6IjZjNDA1YWU4Iiw4MjEzOiJlM2FkYTBjYSIsODI5OToiMWYzNzNhNzAiLDgzOTQ6IjliZGM2MDg3Iiw4Njc3OiIxNDI5ZmRmZiIsODcwMzoiNTQxMmNlYzMiLDg3MTM6IjE5MDI4ZjU3Iiw4ODYyOiI2OWU3M2MxNCIsODkwNjoiMjEzMDk0NDMiLDg5NzU6ImExNDU1Y2EzIiw4OTk3OiJkNTZiMzJhOCIsOTAwNjoiMGUzMzExODYiLDkyMTk6ImM2NDMzOWQ3Iiw5MjQ1OiI2N2Y4NGJjNSIsOTI1NjoiZTBkZTBiMWYiLDkzNjY6IjJkYTFlMmNlIiw5NjIyOiI3MmQ2ZmYxMyIsOTY2NToiYzEzYjBiMmUiLDk3MjA6IjVkZmNkMWI3Iiw5ODU5OiJmMmU2ZDA4ZSIsOTg4MzoiN2Q4YjU2YzkiLDk5NTQ6IjQ1MGYzZjk3In1beV0rIi5hc3luYy5qcyJ9fSgpLGZ1bmN0aW9uKCl7Q2UubWluaUNzc0Y9ZnVuY3Rpb24oeSl7cmV0dXJuIiIrKHsxMDkxOiJwX19Vc2VyQ2VudGVyX19pbmRleCIsMjYzNjoicF9fUG9zdENlbnRlcl9fUG9zdERldGFpbCIsNDg3MzoicF9fUG9zdFJldmlld19faW5kZXgiLDYzMDE6InRfX3BsdWdpbi1sYXlvdXRfX0xheW91dCIsNzE0NDoicF9fVG9vbF9fR2VuX19lZGl0Iiw4Mjk5OiJwX19Qb3N0Q2VudGVyX19pbmRleCIsOTI0NToicF9fVXNlcl9fQ2VudGVyX19pbmRleCJ9W3ldfHx5KSsiLiIrezEwOTE6IjQ5OThkNzRjIiwxNTgxOiJkYzcyYWNmZCIsMTg0MjoiZmQ5YjNhYjkiLDIxNTc6IjMyODFmYzljIiwyNjM2OiJkY2VmNTdhNSIsMjY1NDoiNGU0ZGY3ZWYiLDM4NTY6IjkzOGJkYjFiIiw0MjI5OiIyMDg3MWVlOSIsNDg3MzoiMGE2YTJiZjQiLDQ5OTQ6IjM2ZGIwYjk5Iiw1NDAwOiJmZDliM2FiOSIsNTgwODoiNWUwZTk0YWEiLDYzMDE6IjUwMTJlMWFiIiw2NTY4OiI4M2QwZTcxMCIsNjU2OToiZWY0NmRiMzciLDdlMzoiMmVkNDIxMmUiLDcwMDc6ImM4M2M1ZTRhIiw3MDk1OiIyMmFlNDlhZCIsNzE0NDoiZmQ5YjNhYjkiLDczMzI6ImVjYzM4N2NlIiw3NjI5OiJmZDliM2FiOSIsNzY5NDoiNTJjNDVjMDAiLDc4MDU6ImI5NzYwZmY1Iiw3OTAzOiJlNmMyMTEwMSIsODI5OToiZGFkMzA3YzgiLDg2Nzc6IjBhNmEyYmY0Iiw4NzEzOiI1ZTBlOTRhYSIsODkwNjoiZGRhMDMyNDUiLDg5NzU6ImU2YzIxMTAxIiw5MDA2OiI1Mjk2MzA3MiIsOTIxOToiZGM3MmFjZmQiLDkyNDU6IjkzMmNkYTkzIn1beV0rIi5jaHVuay5jc3MifX0oKSxmdW5jdGlvbigpe0NlLmc9ZnVuY3Rpb24oKXtpZih0eXBlb2YgZ2xvYmFsVGhpcz09Im9iamVjdCIpcmV0dXJuIGdsb2JhbFRoaXM7dHJ5e3JldHVybiB0aGlzfHxuZXcgRnVuY3Rpb24oInJldHVybiB0aGlzIikoKX1jYXRjaCh5KXtpZih0eXBlb2Ygd2luZG93PT0ib2JqZWN0IilyZXR1cm4gd2luZG93fX0oKX0oKSxmdW5jdGlvbigpe0NlLm89ZnVuY3Rpb24oeSxwKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHkscCl9fSgpLGZ1bmN0aW9uKCl7dmFyIHk9e30scD0iYW50LWRlc2lnbi1wcm86IjtDZS5sPWZ1bmN0aW9uKGUscixuLHQpe2lmKHlbZV0pe3lbZV0ucHVzaChyKTtyZXR1cm59dmFyIGkscztpZihuIT09dm9pZCAwKWZvcih2YXIgYT1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IiksdT0wO3U8YS5sZW5ndGg7dSsrKXt2YXIgYz1hW3VdO2lmKGMuZ2V0QXR0cmlidXRlKCJzcmMiKT09ZXx8Yy5nZXRBdHRyaWJ1dGUoImRhdGEtd2VicGFjayIpPT1wK24pe2k9YzticmVha319aXx8KHM9ITAsaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSxpLmNoYXJzZXQ9InV0Zi04IixpLnRpbWVvdXQ9MTIwLENlLm5jJiZpLnNldEF0dHJpYnV0ZSgibm9uY2UiLENlLm5jKSxpLnNldEF0dHJpYnV0ZSgiZGF0YS13ZWJwYWNrIixwK24pLGkuc3JjPWUpLHlbZV09W3JdO3ZhciBoPWZ1bmN0aW9uKG0sQyl7aS5vbmVycm9yPWkub25sb2FkPW51bGwsY2xlYXJUaW1lb3V0KGQpO3ZhciBnPXlbZV07aWYoZGVsZXRlIHlbZV0saS5wYXJlbnROb2RlJiZpLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoaSksZyYmZy5mb3JFYWNoKGZ1bmN0aW9uKHcpe3JldHVybiB3KEMpfSksbSlyZXR1cm4gbShDKX0sZD1zZXRUaW1lb3V0KGguYmluZChudWxsLHZvaWQgMCx7dHlwZToidGltZW91dCIsdGFyZ2V0Oml9KSwxMmU0KTtpLm9uZXJyb3I9aC5iaW5kKG51bGwsaS5vbmVycm9yKSxpLm9ubG9hZD1oLmJpbmQobnVsbCxpLm9ubG9hZCkscyYmZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChpKX19KCksZnVuY3Rpb24oKXtDZS5yPWZ1bmN0aW9uKHkpe3R5cGVvZiBTeW1ib2whPSJ1bmRlZmluZWQiJiZTeW1ib2wudG9TdHJpbmdUYWcmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh5LFN5bWJvbC50b1N0cmluZ1RhZyx7dmFsdWU6Ik1vZHVsZSJ9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoeSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9fSgpLGZ1bmN0aW9uKCl7Q2Uubm1kPWZ1bmN0aW9uKHkpe3JldHVybiB5LnBhdGhzPVtdLHkuY2hpbGRyZW58fCh5LmNoaWxkcmVuPVtdKSx5fX0oKSxmdW5jdGlvbigpe0NlLnA9Ii8ifSgpLGZ1bmN0aW9uKCl7aWYodHlwZW9mIGRvY3VtZW50IT0idW5kZWZpbmVkIil7dmFyIHk9ZnVuY3Rpb24obix0LGkscyxhKXt2YXIgdT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaW5rIik7dS5yZWw9InN0eWxlc2hlZXQiLHUudHlwZT0idGV4dC9jc3MiO3ZhciBjPWZ1bmN0aW9uKGgpe2lmKHUub25lcnJvcj11Lm9ubG9hZD1udWxsLGgudHlwZT09PSJsb2FkIilzKCk7ZWxzZXt2YXIgZD1oJiYoaC50eXBlPT09ImxvYWQiPyJtaXNzaW5nIjpoLnR5cGUpLG09aCYmaC50YXJnZXQmJmgudGFyZ2V0LmhyZWZ8fHQsQz1uZXcgRXJyb3IoIkxvYWRpbmcgQ1NTIGNodW5rICIrbitgIGZhaWxlZC4KKyhgK20rIikiKTtDLmNvZGU9IkNTU19DSFVOS19MT0FEX0ZBSUxFRCIsQy50eXBlPWQsQy5yZXF1ZXN0PW0sdS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHUpLGEoQyl9fTtyZXR1cm4gdS5vbmVycm9yPXUub25sb2FkPWMsdS5ocmVmPXQsaT9pLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHUsaS5uZXh0U2libGluZyk6ZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZCh1KSx1fSxwPWZ1bmN0aW9uKG4sdCl7Zm9yKHZhciBpPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJsaW5rIikscz0wO3M8aS5sZW5ndGg7cysrKXt2YXIgYT1pW3NdLHU9YS5nZXRBdHRyaWJ1dGUoImRhdGEtaHJlZiIpfHxhLmdldEF0dHJpYnV0ZSgiaHJlZiIpO2lmKGEucmVsPT09InN0eWxlc2hlZXQiJiYodT09PW58fHU9PT10KSlyZXR1cm4gYX1mb3IodmFyIGM9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInN0eWxlIikscz0wO3M8Yy5sZW5ndGg7cysrKXt2YXIgYT1jW3NdLHU9YS5nZXRBdHRyaWJ1dGUoImRhdGEtaHJlZiIpO2lmKHU9PT1ufHx1PT09dClyZXR1cm4gYX19LGU9ZnVuY3Rpb24obil7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHQsaSl7dmFyIHM9Q2UubWluaUNzc0YobiksYT1DZS5wK3M7aWYocChzLGEpKXJldHVybiB0KCk7eShuLGEsbnVsbCx0LGkpfSl9LHI9ezQ2MjA6MH07Q2UuZi5taW5pQ3NzPWZ1bmN0aW9uKG4sdCl7dmFyIGk9ezEwOTE6MSwxNTgxOjEsMTg0MjoxLDIxNTc6MSwyNjM2OjEsMjY1NDoxLDM4NTY6MSw0MjI5OjEsNDg3MzoxLDQ5OTQ6MSw1NDAwOjEsNTgwODoxLDYzMDE6MSw2NTY4OjEsNjU2OToxLDdlMzoxLDcwMDc6MSw3MDk1OjEsNzE0NDoxLDczMzI6MSw3NjI5OjEsNzY5NDoxLDc4MDU6MSw3OTAzOjEsODI5OToxLDg2Nzc6MSw4NzEzOjEsODkwNjoxLDg5NzU6MSw5MDA2OjEsOTIxOToxLDkyNDU6MX07cltuXT90LnB1c2gocltuXSk6cltuXSE9PTAmJmlbbl0mJnQucHVzaChyW25dPWUobikudGhlbihmdW5jdGlvbigpe3Jbbl09MH0sZnVuY3Rpb24ocyl7dGhyb3cgZGVsZXRlIHJbbl0sc30pKX19fSgpLGZ1bmN0aW9uKCl7dmFyIHk9ezQ2MjA6MH07Q2UuZi5qPWZ1bmN0aW9uKHIsbil7dmFyIHQ9Q2Uubyh5LHIpP3lbcl06dm9pZCAwO2lmKHQhPT0wKWlmKHQpbi5wdXNoKHRbMl0pO2Vsc2UgaWYoL14oNzYyOXw4Njc3fDg5NzUpJC8udGVzdChyKSl5W3JdPTA7ZWxzZXt2YXIgaT1uZXcgUHJvbWlzZShmdW5jdGlvbihjLGgpe3Q9eVtyXT1bYyxoXX0pO24ucHVzaCh0WzJdPWkpO3ZhciBzPUNlLnArQ2UudShyKSxhPW5ldyBFcnJvcix1PWZ1bmN0aW9uKGMpe2lmKENlLm8oeSxyKSYmKHQ9eVtyXSx0IT09MCYmKHlbcl09dm9pZCAwKSx0KSl7dmFyIGg9YyYmKGMudHlwZT09PSJsb2FkIj8ibWlzc2luZyI6Yy50eXBlKSxkPWMmJmMudGFyZ2V0JiZjLnRhcmdldC5zcmM7YS5tZXNzYWdlPSJMb2FkaW5nIGNodW5rICIrcitgIGZhaWxlZC4KKyhgK2grIjogIitkKyIpIixhLm5hbWU9IkNodW5rTG9hZEVycm9yIixhLnR5cGU9aCxhLnJlcXVlc3Q9ZCx0WzFdKGEpfX07Q2UubChzLHUsImNodW5rLSIrcixyKX19O3ZhciBwPWZ1bmN0aW9uKHIsbil7dmFyIHQ9blswXSxpPW5bMV0scz1uWzJdLGEsdSxjPTA7aWYodC5zb21lKGZ1bmN0aW9uKGQpe3JldHVybiB5W2RdIT09MH0pKXtmb3IoYSBpbiBpKUNlLm8oaSxhKSYmKENlLm1bYV09aVthXSk7aWYocyl2YXIgaD1zKENlKX1mb3IociYmcihuKTtjPHQubGVuZ3RoO2MrKyl1PXRbY10sQ2Uubyh5LHUpJiZ5W3VdJiZ5W3VdWzBdKCkseVt1XT0wfSxlPXNlbGYud2VicGFja0NodW5rYW50X2Rlc2lnbl9wcm89c2VsZi53ZWJwYWNrQ2h1bmthbnRfZGVzaWduX3Byb3x8W107ZS5mb3JFYWNoKHAuYmluZChudWxsLDApKSxlLnB1c2g9cC5iaW5kKG51bGwsZS5wdXNoLmJpbmQoZSkpfSgpO3ZhciBDdT17fTsoZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIHk9Q2UoMTUwMDkpLHA9Q2Uubih5KSxlPUNlKDk3ODU3KSxyPUNlLm4oZSksbj1DZSg5OTI4OSksdD1DZS5uKG4pLGk9Q2UoMjEwNTcpLHM9Q2UoOTU4NzkpLGE9Q2UoNTQ5MjcpLHU9Q2UoOTIxNzYpLGM9Q2UoNTk4NjcpLGg9Q2UoOTMzODMpLGQ9Q2UoNzA1NjApLG09Q2UoMjc4KSxDPUNlKDgxMzg2KSxnPUNlKDI5ODMwKSx3PUNlKDEyODk0KSxFPUNlKDkzNTMwKSx4PUNlKDIxMzE5KSxPPUNlKDg5MzQ4KSxUPUNlKDQ0MDc5KSxTPUNlKDE0NTY2KSxMPUNlKDg3NjA5KSxJPUNlKDEzNTA1KSxSPUNlKDc2MDM0KSx6PUNlKDI1ODQ3KSxHPUNlKDc5NjEpLFk9Q2UoMTIyODEpLGVlPUNlKDU2NTMyKSxKPUNlKDM1MjM3KSxtZT1DZSg5NTE5NCksdGU9Q2UoMjA1MjIpLGxlPUNlKDgyKSxjZT1DZSg3OTk3NiksVz1DZSgyNDIyNCksaj1DZSg2MTEyMSksRD1DZSgzNzEzMyksVj1DZSgyNjgxMCksWj1DZSgxODA3MyksUD1DZSg3ODAyKSxLPUNlKDU0ODgzKSxzZT1DZSgzNjIwOCksbmU9Q2UoMjI1MjUpLG9lPUNlKDk2ODgyKSxmZT1DZSgzMjUzOSksRWU9Q2UoNTA4MiksUmU9Q2UoOTgpLEJlPUNlKDMyMjIxKSxZZT1DZSg5MjI1Myksb3Q9Q2UoODYyNDcpLHFlPUNlKDIxNDEyKSxfZT1DZSg0MzA5NyksRmU9Q2UoMTEwNzApLFNlPUNlKDY0NTc4KSxxPUNlKDc3Mjk5KSxrPUNlKDE1Njk0KSxNPUNlKDE3ODE1KSxBPUNlKDE5MDI5KSxVPUNlKDYyMzcpLE49Q2UoODE5NTQpLFE9Q2UoODcxNTIpLHVlPUNlKDg5NjY3KSwkPUNlKDQ5MTE4KSxfPUNlKDMyNDExKSxwZT1DZSgzMjU2KSxyZT1DZSg4NTYyNSksYWU9Q2UoMTA5MTQpLHdlPUNlKDE0NDk0KSxMZT1DZSg5NDY4KSxNZT1DZSgyNDU4NyksYmU9Q2UoNjA3NzkpLCRlPUNlKDY1NTAzKSxrZT1DZSg1MDIzNiksQWU9Q2UoODkyNDYpLHR0PUNlKDMxMTg2KSxtdD1DZSg5Mjc5KSx1dD1DZSgyNjcyNSksRGU9Q2UoMjYxMjUpLE5lPUNlKDI4MjApLFhlPUNlKDYyNTE3KSxKZT1DZSg1NDk0NyksZ3Q9Q2UoNzQ5OTMpLGRlPUNlKDY3NjAyKSxXZT1DZSg1MDY0NyksU3Q9Q2UoODI2MzkpLGN0PUNlKDYzOTg2KSxPZT1DZSgxNjA1NCksR2U9Q2UoNTM0NzYpLGh0PUNlKDcwOTI4KSx6ZT1DZSg0OTQxMSksUWU9Q2UoMzAwMDUpLHB0PUNlKDczNDk0KSxidD1DZSg5NDU2NCksSXQ9Q2UoNDE3OTIpLFR0PUNlKDU5ODUpLFh0PUNlKDMxMTA3KSxmbj1DZSgyODI0NCksbm49Q2UoMzY0NSksb249Q2UoNTg0MjkpLE50PUNlKDM5NTY5KSxabj1DZSg3NDMyMCkseW49Q2UoMjA2OTEpLGduPUNlKDgyOTY0KSxCbj1DZSg2NzQ0NCksVm49Q2UoOTc5NjgpLE5uPUNlKDc0NyksZnQ9Q2UoNDEwOTkpLGV0PUNlKDI2MzIwKSxKdD1DZSgyMDg3Niksd3Q9Q2UoNjA1MiksX3Q9Q2UoNzY3OTEpLHhuPUNlKDc1MzQxKSxZbj1DZSg0MDAxOSksUG49Q2UoOTIzNDMpLExuPUNlKDUxMDk2KSxlcj1DZSg0MzE0KSxRbj1DZSg2MzExMSksdXI9Q2UoMjMzNDYpLGlyPUNlKDY0OTg0KSx2bj1DZSg2NDA3OCksY3I9Q2UoMjQ0NTMpLFduPUNlKDY2MTkwKSx3bj1DZSgyNTY4NCksQ3Q9Q2UoMzE3ODkpLFp0PUNlKDg2NzcpLGFuPUNlKDM0NiksRHQ9Q2UoNTkxNTEpLGt0PUNlKDkxMDY5KSx0bj1DZSgxODg4NiksbW49Q2UoODgwNjUpLEtuPUNlKDY4MTcyKSxKbj1DZSg2MDQ0NSksWG49Q2UoOTk0NTcpLGZyPUNlKDYxMykscnI9Q2UoODM1KSxocj1DZSg5MjYpLEZuPUNlKDgyODk5KSxhcj1DZSgyOTk3NyksbHI9Q2UoMzE5MjcpLCRuPUNlKDc3MTMxKSxzcj1DZSg1NTE3NCksRnI9Q2UoNzYzMTQpLFplPUNlKDY2MTYpLEhlPUNlKDE5OTU5KSxudD1DZSg3MzM0NykscnQ9Q2UoNzE5MTMpLHZ0PUNlKDcwMDAzKSxWdD1DZSg3OTk1NSksZW49Q2UoNzg1OSksUm49Q2UoMzExMzgpLGpuPUNlKDI4ODA5KSxibj1DZSgyOTQ2KSxIbj1DZSgzMjQ2MCksR3Q9Q2UoNTcyODIpLFNuPUNlKDUwNTgpLE9uPUNlKDE1NzE2KSxfbj1DZSgzNjgxNCksUGU9Q2UoMzAzNDkpLGdlPUNlKDk2OTg2KSx2ZT1DZSg5NTY4MSksSWU9Q2UoMTM3ODEpLHhlPUNlKDMzNDQyKSxhdD1DZSg5ODg3MyksZHQ9Q2UoNjE5NjQpLEV0PUNlKDUwMzA4KSxIdD1DZSg2OTg3OCksanQ9Q2UoMTg5NTUpLEZ0PUNlKDUyOTE1KSxwbj1DZSg2NTExNSksY249Q2UoMTk0OTApLG9yPUNlKDk1NzUyKSxUbj1DZSgzMjc4OSksem49Q2UoMjc5MTMpLHJuPUNlKDY4MzEpLEt0PUNlKDk3ODk1KSx6dD1DZSg5MDI0MyksT3Q9Q2UoMjIyNzUpLGxuPUNlKDk4MDMwKSxFbj1DZSg4NjIyMCksR249Q2UoMjE5MTcpLHByPUNlKDk1ODUzKSxQcj1DZSg2NjA4NCksYnI9Q2UoODA1NDYpLE1yPUNlKDYyNTg2KSwkcj1DZSg0NjAxOSksR3I9Q2UoNTAxMCksb2E9Q2UoNDU3NDkpLHJhPUNlKDQ4MzUpLE1hPUNlKDU4Nzk5KSxmYT1DZSgxODEzNCksaGE9Q2UoMjcwNDEpLGVhPUNlKDQ0NzY3KSxOYT1DZSg5Mjk4MSksYmE9Q2UoODUwNDQpLEFyPUNlKDc2Njc3KSxScj1DZSgxODI0MSksbXI9Q2UoNTkzNTkpLElyPUNlKDMwNTQ4KSxIcj1DZSg5MTUpLEpyPUNlKDkxMjM4KSxUYT1DZSgyMzU3OSksamE9Q2UoOTExMTcpLCRhPUNlKDg1NzIzKSx5cj1DZSg2ODY4MCksVnI9Q2UoNzcyMjUpLFNhPUNlKDk5MzY5KSxGYT1DZSgyMjk4MyksUmE9Q2UoOTAyMDEpLHJvPUNlKDEzNDY2KSx1bz1DZSgyMzMyMSksbm89Q2UoODQ5MzApLHpvPUNlKDkyNDY1KSxnbz1DZSg0NTczOCksZm89Q2UoMTM0MjkpLFRpPUNlKDQwMDg4KSxVbz1DZSgzNjUwKSxXbz1DZSgyNTU2NCksZ2k9Q2UoNjk4MjIpLGFvPUNlKDk4ODU4KSxwaT1DZSg2MTMxOCksSG89Q2UoMzMyMjgpLFJvPUNlKDEzMzk5KSxGbz1DZSg3Njc3MiksbHQ9Q2UoMjQ1MyksaWU9Q2UoODM2MjIpLHllPUNlKDE2NTY4KSxCPUNlKDY3NjEwKSxWZT1DZSg4NTg5Myksc3Q9Qi5aLnB3YSxSdD1kb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbD09PSJodHRwczoiLEJ0PWZ1bmN0aW9uKCl7d2luZG93LmNhY2hlcyYmY2FjaGVzLmtleXMoKS50aGVuKGZ1bmN0aW9uKERuKXtEbi5mb3JFYWNoKGZ1bmN0aW9uKFdyKXtjYWNoZXMuZGVsZXRlKFdyKX0pfSkuY2F0Y2goZnVuY3Rpb24oRG4pe3JldHVybiBjb25zb2xlLmxvZyhEbil9KX07aWYoc3Qpd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInN3Lm9mZmxpbmUiLGZ1bmN0aW9uKCl7bHQuWlAud2FybmluZygoMCxGby51c2VJbnRsKSgpLmZvcm1hdE1lc3NhZ2Uoe2lkOiJhcHAucHdhLm9mZmxpbmUifSkpfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInN3LnVwZGF0ZWQiLGZ1bmN0aW9uKGtuKXt2YXIgRG49a24sV3I9ZnVuY3Rpb24oKXt2YXIgYWE9dCgpKHAoKSgpLm1hcmsoZnVuY3Rpb24gbmEoKXt2YXIgbWE7cmV0dXJuIHAoKSgpLndyYXAoZnVuY3Rpb24oWnIpe2Zvcig7Oylzd2l0Y2goWnIucHJldj1aci5uZXh0KXtjYXNlIDA6aWYobWE9RG4uZGV0YWlsJiZEbi5kZXRhaWwud2FpdGluZyxtYSl7WnIubmV4dD0zO2JyZWFrfXJldHVybiBaci5hYnJ1cHQoInJldHVybiIsITApO2Nhc2UgMzpyZXR1cm4gWnIubmV4dD01LG5ldyBQcm9taXNlKGZ1bmN0aW9uKFZhLERhKXt2YXIgcGE9bmV3IE1lc3NhZ2VDaGFubmVsO3BhLnBvcnQxLm9ubWVzc2FnZT1mdW5jdGlvbihzbyl7c28uZGF0YS5lcnJvcj9EYShzby5kYXRhLmVycm9yKTpWYShzby5kYXRhKX0sbWEucG9zdE1lc3NhZ2Uoe3R5cGU6InNraXAtd2FpdGluZyJ9LFtwYS5wb3J0Ml0pfSk7Y2FzZSA1OnJldHVybiBCdCgpLHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKSxaci5hYnJ1cHQoInJldHVybiIsITApO2Nhc2UgODpjYXNlImVuZCI6cmV0dXJuIFpyLnN0b3AoKX19LG5hKX0pKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gYWEuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSxrcj0ib3BlbiIuY29uY2F0KERhdGUubm93KCkpLGlhPSgwLFZlLmpzeCkoaWUuWlAse3R5cGU6InByaW1hcnkiLG9uQ2xpY2s6ZnVuY3Rpb24oKXt5ZS5aUC5kZXN0cm95KGtyKSxXcigpfSxjaGlsZHJlbjooMCxGby51c2VJbnRsKSgpLmZvcm1hdE1lc3NhZ2Uoe2lkOiJhcHAucHdhLnNlcnZpY2V3b3JrZXIudXBkYXRlZC5vayJ9KX0pO3llLlpQLm9wZW4oe21lc3NhZ2U6KDAsRm8udXNlSW50bCkoKS5mb3JtYXRNZXNzYWdlKHtpZDoiYXBwLnB3YS5zZXJ2aWNld29ya2VyLnVwZGF0ZWQifSksZGVzY3JpcHRpb246KDAsRm8udXNlSW50bCkoKS5mb3JtYXRNZXNzYWdlKHtpZDoiYXBwLnB3YS5zZXJ2aWNld29ya2VyLnVwZGF0ZWQuaGludCJ9KSxidG46aWEsa2V5OmtyLG9uQ2xvc2U6ZnVuY3Rpb24oKXt2YXIgYWE9dCgpKHAoKSgpLm1hcmsoZnVuY3Rpb24gbWEoKXtyZXR1cm4gcCgpKCkud3JhcChmdW5jdGlvbihacil7Zm9yKDs7KXN3aXRjaChaci5wcmV2PVpyLm5leHQpe2Nhc2UgMDpyZXR1cm4gWnIuYWJydXB0KCJyZXR1cm4iLG51bGwpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIFpyLnN0b3AoKX19LG1hKX0pKTtmdW5jdGlvbiBuYSgpe3JldHVybiBhYS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIG5hfSgpfSl9KTtlbHNlIGlmKCJzZXJ2aWNlV29ya2VyImluIG5hdmlnYXRvciYmUnQpe3ZhciBMdD1uYXZpZ2F0b3IsWXQ9THQuc2VydmljZVdvcmtlcjtZdC5nZXRSZWdpc3RyYXRpb25zJiZZdC5nZXRSZWdpc3RyYXRpb25zKCkudGhlbihmdW5jdGlvbihrbil7a24uZm9yRWFjaChmdW5jdGlvbihEbil7RG4udW5yZWdpc3RlcigpfSl9KSxZdC5nZXRSZWdpc3RyYXRpb24oKS50aGVuKGZ1bmN0aW9uKGtuKXtrbiYma24udW5yZWdpc3RlcigpfSksQnQoKX1mdW5jdGlvbiBBbihrbil7IkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mIjtyZXR1cm4gQW49dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmdHlwZW9mIFN5bWJvbC5pdGVyYXRvcj09InN5bWJvbCI/ZnVuY3Rpb24oRG4pe3JldHVybiB0eXBlb2YgRG59OmZ1bmN0aW9uKERuKXtyZXR1cm4gRG4mJnR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJkRuLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZEbiE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIERufSxBbihrbil9ZnVuY3Rpb24gc24oa24sRG4pe2lmKEFuKGtuKSE9Im9iamVjdCJ8fCFrbilyZXR1cm4ga247dmFyIFdyPWtuW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYoV3IhPT12b2lkIDApe3ZhciBrcj1Xci5jYWxsKGtuLERufHwiZGVmYXVsdCIpO2lmKEFuKGtyKSE9Im9iamVjdCIpcmV0dXJuIGtyO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKERuPT09InN0cmluZyI/U3RyaW5nOk51bWJlcikoa24pfWZ1bmN0aW9uIHF0KGtuKXt2YXIgRG49c24oa24sInN0cmluZyIpO3JldHVybiBBbihEbik9PSJzeW1ib2wiP0RuOlN0cmluZyhEbil9ZnVuY3Rpb24gTW4oa24sRG4sV3Ipe3JldHVybiBEbj1xdChEbiksRG4gaW4ga24/T2JqZWN0LmRlZmluZVByb3BlcnR5KGtuLERuLHt2YWx1ZTpXcixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmtuW0RuXT1Xcixrbn1mdW5jdGlvbiBDcihrbixEbil7dmFyIFdyPU9iamVjdC5rZXlzKGtuKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIga3I9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhrbik7RG4mJihrcj1rci5maWx0ZXIoZnVuY3Rpb24oaWEpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGtuLGlhKS5lbnVtZXJhYmxlfSkpLFdyLnB1c2guYXBwbHkoV3Isa3IpfXJldHVybiBXcn1mdW5jdGlvbiBxbihrbil7Zm9yKHZhciBEbj0xO0RuPGFyZ3VtZW50cy5sZW5ndGg7RG4rKyl7dmFyIFdyPWFyZ3VtZW50c1tEbl0hPW51bGw/YXJndW1lbnRzW0RuXTp7fTtEbiUyP0NyKE9iamVjdChXciksITApLmZvckVhY2goZnVuY3Rpb24oa3Ipe01uKGtuLGtyLFdyW2tyXSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhrbixPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhXcikpOkNyKE9iamVjdChXcikpLmZvckVhY2goZnVuY3Rpb24oa3Ipe09iamVjdC5kZWZpbmVQcm9wZXJ0eShrbixrcixPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFdyLGtyKSl9KX1yZXR1cm4ga259dmFyIGpyPUNlKDQ4ODA0KSxDbj1DZSg2NzI5NCksTHI9Q2UoMjA3NDUpLERyPUNlKDk2OTc0KSxOcj1DZSgzNDE2Mik7ZnVuY3Rpb24gdGEoa24pe3ZhciBEbj1rbi5pZCxXcj1rbi5iYXNlbmFtZSxrcj1rbi5jYixpYT1uZXcgVVJMU2VhcmNoUGFyYW1zKHtyb3V0ZTpEbix1cmw6d2luZG93LmxvY2F0aW9uLmhyZWZ9KS50b1N0cmluZygpLGFhPSIiLmNvbmNhdCh2YSh3aW5kb3cudW1pU2VydmVyTG9hZGVyUGF0aHx8V3IpLCJfX3NlcnZlckxvYWRlcj8iKS5jb25jYXQoaWEpO2ZldGNoKGFhLHtjcmVkZW50aWFsczoiaW5jbHVkZSJ9KS50aGVuKGZ1bmN0aW9uKG5hKXtyZXR1cm4gbmEuanNvbigpfSkudGhlbihrcikuY2F0Y2goY29uc29sZS5lcnJvcil9ZnVuY3Rpb24gdmEoKXt2YXIga249YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT12b2lkIDA/YXJndW1lbnRzWzBdOiIiO3JldHVybiBrbi5lbmRzV2l0aCgiLyIpP2tuOiIiLmNvbmNhdChrbiwiLyIpfXZhciBYcj1DZSg3NDgxNyksRWE9Q2UoNTgwOTYpLHBvPVsiY29udGVudCJdLHlhPVsiY29udGVudCJdLElhPS9eKGh0dHA6fGh0dHBzOik/XC9cLy87ZnVuY3Rpb24gZ2Eoa24pe3JldHVybiBJYS50ZXN0KGtuKXx8a24uc3RhcnRzV2l0aCgiLyIpJiYha24uc3RhcnRzV2l0aCgiLyoiKXx8a24uc3RhcnRzV2l0aCgiLi8iKXx8a24uc3RhcnRzV2l0aCgiLi4vIil9dmFyIEhhPWZ1bmN0aW9uKCl7cmV0dXJuIENuLmNyZWF0ZUVsZW1lbnQoIm5vc2NyaXB0Iix7ZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6e19faHRtbDoiPGI+RW5hYmxlIEphdmFTY3JpcHQgdG8gcnVuIHRoaXMgYXBwLjwvYj4ifX0pfSxQYT1mdW5jdGlvbihEbil7dmFyIFdyLGtyPURuLmxvYWRlckRhdGEsaWE9RG4uaHRtbFBhZ2VPcHRzLGFhPURuLm1hbmlmZXN0LG5hPShhYT09bnVsbHx8KFdyPWFhLmFzc2V0cyk9PT1udWxsfHxXcj09PXZvaWQgMD92b2lkIDA6V3JbInVtaS5jc3MiXSl8fCIiO3JldHVybiBDbi5jcmVhdGVFbGVtZW50KCJzY3JpcHQiLHtzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmc6ITAsZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6e19faHRtbDoid2luZG93Ll9fVU1JX0xPQURFUl9EQVRBX18gPSAiLmNvbmNhdChKU09OLnN0cmluZ2lmeShrcnx8e30pLCI7IHdpbmRvdy5fX1VNSV9NRVRBREFUQV9MT0FERVJfREFUQV9fID0gIikuY29uY2F0KEpTT04uc3RyaW5naWZ5KGlhfHx7fSksIjsgd2luZG93Ll9fVU1JX0JVSUxEX0NsSUVOVF9DU1NfXyA9ICciKS5jb25jYXQobmEsIiciKX19KX07ZnVuY3Rpb24gZW8oa24pe3ZhciBEbj1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06e307aWYodHlwZW9mIGtuPT0ic3RyaW5nIilyZXR1cm4gZ2Eoa24pP3FuKHtzcmM6a259LERuKTp7Y29udGVudDprbn07aWYoQW4oa24pPT09Im9iamVjdCIpcmV0dXJuIHFuKHFuKHt9LGtuKSxEbik7dGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHNjcmlwdCB0eXBlOiAiLmNvbmNhdChBbihrbikpKX1mdW5jdGlvbiBVYShrbil7cmV0dXJuIGdhKGtuKT97dHlwZToibGluayIsaHJlZjprbn06e3R5cGU6InN0eWxlIixjb250ZW50OmtufX12YXIgdm89ZnVuY3Rpb24oRG4pe3ZhciBXcixrcixpYSxhYSxuYSxtYSx4cj1Ebi5odG1sUGFnZU9wdHM7cmV0dXJuIENuLmNyZWF0ZUVsZW1lbnQoQ24uRnJhZ21lbnQsbnVsbCwoeHI9PW51bGw/dm9pZCAwOnhyLnRpdGxlKSYmQ24uY3JlYXRlRWxlbWVudCgidGl0bGUiLG51bGwseHIudGl0bGUpLHhyPT1udWxsfHwoV3I9eHIuZmF2aWNvbnMpPT09bnVsbHx8V3I9PT12b2lkIDA/dm9pZCAwOldyLm1hcChmdW5jdGlvbihacixWYSl7cmV0dXJuIENuLmNyZWF0ZUVsZW1lbnQoImxpbmsiLHtrZXk6VmEscmVsOiJzaG9ydGN1dCBpY29uIixocmVmOlpyfSl9KSwoeHI9PW51bGw/dm9pZCAwOnhyLmRlc2NyaXB0aW9uKSYmQ24uY3JlYXRlRWxlbWVudCgibWV0YSIse25hbWU6ImRlc2NyaXB0aW9uIixjb250ZW50OnhyLmRlc2NyaXB0aW9ufSksKHhyPT1udWxsfHwoa3I9eHIua2V5d29yZHMpPT09bnVsbHx8a3I9PT12b2lkIDA/dm9pZCAwOmtyLmxlbmd0aCkmJkNuLmNyZWF0ZUVsZW1lbnQoIm1ldGEiLHtuYW1lOiJrZXl3b3JkcyIsY29udGVudDp4ci5rZXl3b3Jkcy5qb2luKCIsIil9KSx4cj09bnVsbHx8KGlhPXhyLm1ldGFzKT09PW51bGx8fGlhPT09dm9pZCAwP3ZvaWQgMDppYS5tYXAoZnVuY3Rpb24oWnIpe3JldHVybiBDbi5jcmVhdGVFbGVtZW50KCJtZXRhIix7a2V5OlpyLm5hbWUsbmFtZTpaci5uYW1lLGNvbnRlbnQ6WnIuY29udGVudH0pfSkseHI9PW51bGx8fChhYT14ci5saW5rcyk9PT1udWxsfHxhYT09PXZvaWQgMD92b2lkIDA6YWEubWFwKGZ1bmN0aW9uKFpyLFZhKXtyZXR1cm4gQ24uY3JlYXRlRWxlbWVudCgibGluayIsKDAsRWEuWikoe2tleTpWYX0sWnIpKX0pLHhyPT1udWxsfHwobmE9eHIuc3R5bGVzKT09PW51bGx8fG5hPT09dm9pZCAwP3ZvaWQgMDpuYS5tYXAoZnVuY3Rpb24oWnIsVmEpe3ZhciBEYT1VYShacikscGE9RGEudHlwZSxzbz1EYS5ocmVmLHFhPURhLmNvbnRlbnQ7aWYocGE9PT0ibGluayIpcmV0dXJuIENuLmNyZWF0ZUVsZW1lbnQoImxpbmsiLHtrZXk6VmEscmVsOiJzdHlsZXNoZWV0IixocmVmOnNvfSk7aWYocGE9PT0ic3R5bGUiKXJldHVybiBDbi5jcmVhdGVFbGVtZW50KCJzdHlsZSIse2tleTpWYX0scWEpfSkseHI9PW51bGx8fChtYT14ci5oZWFkU2NyaXB0cyk9PT1udWxsfHxtYT09PXZvaWQgMD92b2lkIDA6bWEubWFwKGZ1bmN0aW9uKFpyLFZhKXt2YXIgRGE9ZW8oWnIpLHBhPURhLmNvbnRlbnQsc289KDAsWHIuWikoRGEscG8pO3JldHVybiBDbi5jcmVhdGVFbGVtZW50KCJzY3JpcHQiLCgwLEVhLlopKHtkYW5nZXJvdXNseVNldElubmVySFRNTDp7X19odG1sOnBhfSxrZXk6VmF9LHNvKSl9KSl9O2Z1bmN0aW9uIEdhKGtuKXt2YXIgRG4sV3I9a24uY2hpbGRyZW4sa3I9a24ubG9hZGVyRGF0YSxpYT1rbi5tYW5pZmVzdCxhYT1rbi5odG1sUGFnZU9wdHMsbmE9a24uX19JTlRFUk5BTF9ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVELG1hPWtuLm1vdW50RWxlbWVudElkO2lmKG5hIT1udWxsJiZuYS5wdXJlSHRtbClyZXR1cm4gQ24uY3JlYXRlRWxlbWVudCgiaHRtbCIsbnVsbCxDbi5jcmVhdGVFbGVtZW50KCJoZWFkIixudWxsKSxDbi5jcmVhdGVFbGVtZW50KCJib2R5IixudWxsLENuLmNyZWF0ZUVsZW1lbnQoSGEsbnVsbCksQ24uY3JlYXRlRWxlbWVudCgiZGl2Iix7aWQ6bWF9LFdyKSxDbi5jcmVhdGVFbGVtZW50KFBhLHttYW5pZmVzdDppYSxsb2FkZXJEYXRhOmtyLGh0bWxQYWdlT3B0czphYX0pKSk7aWYobmEhPW51bGwmJm5hLnB1cmVBcHApcmV0dXJuIENuLmNyZWF0ZUVsZW1lbnQoQ24uRnJhZ21lbnQsbnVsbCxXcik7dmFyIHhyPXR5cGVvZiB3aW5kb3c9PSJ1bmRlZmluZWQiP2lhPT1udWxsP3ZvaWQgMDppYS5hc3NldHNbInVtaS5jc3MiXTp3aW5kb3cuX19VTUlfQlVJTERfQ2xJRU5UX0NTU19fO3JldHVybiBDbi5jcmVhdGVFbGVtZW50KCJodG1sIix7c3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nOiEwLGxhbmc6KGFhPT1udWxsP3ZvaWQgMDphYS5sYW5nKXx8ImVuIn0sQ24uY3JlYXRlRWxlbWVudCgiaGVhZCIsbnVsbCxDbi5jcmVhdGVFbGVtZW50KCJtZXRhIix7Y2hhclNldDoidXRmLTgifSksQ24uY3JlYXRlRWxlbWVudCgibWV0YSIse25hbWU6InZpZXdwb3J0Iixjb250ZW50OiJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSJ9KSx4ciYmQ24uY3JlYXRlRWxlbWVudCgibGluayIse3N1cHByZXNzSHlkcmF0aW9uV2FybmluZzohMCxyZWw6InN0eWxlc2hlZXQiLGhyZWY6eHJ9KSxDbi5jcmVhdGVFbGVtZW50KHZvLHtodG1sUGFnZU9wdHM6YWF9KSksQ24uY3JlYXRlRWxlbWVudCgiYm9keSIsbnVsbCxDbi5jcmVhdGVFbGVtZW50KEhhLG51bGwpLENuLmNyZWF0ZUVsZW1lbnQoImRpdiIse2lkOm1hfSxXciksQ24uY3JlYXRlRWxlbWVudChQYSx7bWFuaWZlc3Q6aWEsbG9hZGVyRGF0YTprcixodG1sUGFnZU9wdHM6YWF9KSxhYT09bnVsbHx8KERuPWFhLnNjcmlwdHMpPT09bnVsbHx8RG49PT12b2lkIDA/dm9pZCAwOkRuLm1hcChmdW5jdGlvbihacixWYSl7dmFyIERhPWVvKFpyKSxwYT1EYS5jb250ZW50LHNvPSgwLFhyLlopKERhLHlhKTtyZXR1cm4gQ24uY3JlYXRlRWxlbWVudCgic2NyaXB0IiwoMCxFYS5aKSh7ZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6e19faHRtbDpwYX0sa2V5OlZhfSxzbykpfSkpKX12YXIgb289Q24uY3JlYXRlQ29udGV4dCh2b2lkIDApO2Z1bmN0aW9uIGlvKCl7cmV0dXJuIENuLnVzZUNvbnRleHQob28pfXZhciBPbz1bInJlZGlyZWN0Il07ZnVuY3Rpb24gbG8oa24pe3ZhciBEbj1rbi5yb3V0ZXNCeUlkLFdyPWtuLnBhcmVudElkLGtyPWtuLnJvdXRlQ29tcG9uZW50cyxpYT1rbi51c2VTdHJlYW0sYWE9aWE9PT12b2lkIDA/ITA6aWE7cmV0dXJuIE9iamVjdC5rZXlzKERuKS5maWx0ZXIoZnVuY3Rpb24obmEpe3JldHVybiBEbltuYV0ucGFyZW50SWQ9PT1Xcn0pLm1hcChmdW5jdGlvbihuYSl7dmFyIG1hPUNvKHFuKHFuKHtyb3V0ZTpEbltuYV0scm91dGVDb21wb25lbnQ6a3JbbmFdLGxvYWRpbmdDb21wb25lbnQ6a24ubG9hZGluZ0NvbXBvbmVudCxyZWFjdFJvdXRlcjVDb21wYXQ6a24ucmVhY3RSb3V0ZXI1Q29tcGF0fSxrbi5yZWFjdFJvdXRlcjVDb21wYXQmJntoYXNDaGlsZHJlbjpPYmplY3Qua2V5cyhEbikuZmlsdGVyKGZ1bmN0aW9uKFpyKXtyZXR1cm4gRG5bWnJdLnBhcmVudElkPT09bmF9KS5sZW5ndGg+MH0pLHt9LHt1c2VTdHJlYW06YWF9KSkseHI9bG8oe3JvdXRlc0J5SWQ6RG4scm91dGVDb21wb25lbnRzOmtyLHBhcmVudElkOm1hLmlkLGxvYWRpbmdDb21wb25lbnQ6a24ubG9hZGluZ0NvbXBvbmVudCxyZWFjdFJvdXRlcjVDb21wYXQ6a24ucmVhY3RSb3V0ZXI1Q29tcGF0LHVzZVN0cmVhbTphYX0pO3JldHVybiB4ci5sZW5ndGg+MCYmKG1hLmNoaWxkcmVuPXhyLG1hLnJvdXRlcz14ciksbWF9KX1mdW5jdGlvbiB4byhrbil7dmFyIERuPSgwLERyLlVPKSgpLFdyPSgwLERyLkduKShrbi50byxEbiksa3I9KDAsTnIuVCQpKCksaWE9KDAsRHIuVEgpKCk7aWYoa3IhPW51bGwmJmtyLmtlZXBRdWVyeSl7dmFyIGFhPWlhLnNlYXJjaCtpYS5oYXNoO1dyKz1hYX12YXIgbmE9cW4ocW4oe30sa24pLHt9LHt0bzpXcn0pO3JldHVybiBDbi5jcmVhdGVFbGVtZW50KERyLkZnLCgwLEVhLlopKHtyZXBsYWNlOiEwfSxuYSkpfWZ1bmN0aW9uIENvKGtuKXt2YXIgRG49a24ucm91dGUsV3I9a24udXNlU3RyZWFtLGtyPVdyPT09dm9pZCAwPyEwOldyLGlhPURuLnJlZGlyZWN0LGFhPSgwLFhyLlopKERuLE9vKSxuYT1rbi5yZWFjdFJvdXRlcjVDb21wYXQ/ZWw6dGw7cmV0dXJuIHFuKHtlbGVtZW50OmlhP0NuLmNyZWF0ZUVsZW1lbnQoeG8se3RvOmlhfSk6Q24uY3JlYXRlRWxlbWVudChvby5Qcm92aWRlcix7dmFsdWU6e3JvdXRlOmtuLnJvdXRlfX0sQ24uY3JlYXRlRWxlbWVudChuYSx7bG9hZGVyOkNuLm1lbW8oa24ucm91dGVDb21wb25lbnQpLGxvYWRpbmdDb21wb25lbnQ6a24ubG9hZGluZ0NvbXBvbmVudHx8SGksaGFzQ2hpbGRyZW46a24uaGFzQ2hpbGRyZW4sdXNlU3RyZWFtOmtyfSkpfSxhYSl9ZnVuY3Rpb24gSGkoKXtyZXR1cm4gQ24uY3JlYXRlRWxlbWVudCgiZGl2IixudWxsKX1mdW5jdGlvbiBlbChrbil7dmFyIERuPWlvKCksV3I9RG4ucm91dGUsa3I9KDAsTnIuT3YpKCksaWE9a3IuaGlzdG9yeSxhYT1rci5jbGllbnRSb3V0ZXMsbmE9KDAsRHIuVU8pKCksbWE9e3BhcmFtczpuYSxpc0V4YWN0OiEwLHBhdGg6V3IucGF0aCx1cmw6aWEubG9jYXRpb24ucGF0aG5hbWV9LHhyPWtuLmxvYWRlcixacj17bG9jYXRpb246aWEubG9jYXRpb24sbWF0Y2g6bWEsaGlzdG9yeTppYSxwYXJhbXM6bmEscm91dGU6V3Iscm91dGVzOmFhfTtyZXR1cm4ga24udXNlU3RyZWFtP0NuLmNyZWF0ZUVsZW1lbnQoQ24uU3VzcGVuc2Use2ZhbGxiYWNrOkNuLmNyZWF0ZUVsZW1lbnQoa24ubG9hZGluZ0NvbXBvbmVudCxudWxsKX0sQ24uY3JlYXRlRWxlbWVudCh4cixacixrbi5oYXNDaGlsZHJlbiYmQ24uY3JlYXRlRWxlbWVudChEci5qMyxudWxsKSkpOkNuLmNyZWF0ZUVsZW1lbnQoeHIsWnIsa24uaGFzQ2hpbGRyZW4mJkNuLmNyZWF0ZUVsZW1lbnQoRHIuajMsbnVsbCkpfWZ1bmN0aW9uIHRsKGtuKXt2YXIgRG49a24ubG9hZGVyO3JldHVybiBrbi51c2VTdHJlYW0/Q24uY3JlYXRlRWxlbWVudChDbi5TdXNwZW5zZSx7ZmFsbGJhY2s6Q24uY3JlYXRlRWxlbWVudChrbi5sb2FkaW5nQ29tcG9uZW50LG51bGwpfSxDbi5jcmVhdGVFbGVtZW50KERuLG51bGwpKTpDbi5jcmVhdGVFbGVtZW50KERuLG51bGwpfXZhciBYbz1udWxsO2Z1bmN0aW9uIERpKCl7cmV0dXJuIFhvfWZ1bmN0aW9uIG5sKGtuKXt2YXIgRG49a24uaGlzdG9yeSxXcj1Dbi51c2VTdGF0ZSh7YWN0aW9uOkRuLmFjdGlvbixsb2NhdGlvbjpEbi5sb2NhdGlvbn0pLGtyPSgwLGpyLlopKFdyLDIpLGlhPWtyWzBdLGFhPWtyWzFdO3JldHVybigwLENuLnVzZUxheW91dEVmZmVjdCkoZnVuY3Rpb24oKXtyZXR1cm4gRG4ubGlzdGVuKGFhKX0sW0RuXSksKDAsQ24udXNlTGF5b3V0RWZmZWN0KShmdW5jdGlvbigpe2Z1bmN0aW9uIG5hKG1hKXtrbi5wbHVnaW5NYW5hZ2VyLmFwcGx5UGx1Z2lucyh7a2V5OiJvblJvdXRlQ2hhbmdlIix0eXBlOiJldmVudCIsYXJnczp7cm91dGVzOmtuLnJvdXRlcyxjbGllbnRSb3V0ZXM6a24uY2xpZW50Um91dGVzLGxvY2F0aW9uOm1hLmxvY2F0aW9uLGFjdGlvbjptYS5hY3Rpb24sYmFzZW5hbWU6a24uYmFzZW5hbWUsaXNGaXJzdDohIW1hLmlzRmlyc3R9fSl9cmV0dXJuIG5hKHtsb2NhdGlvbjppYS5sb2NhdGlvbixhY3Rpb246aWEuYWN0aW9uLGlzRmlyc3Q6ITB9KSxEbi5saXN0ZW4obmEpfSxbRG4sa24ucm91dGVzLGtuLmNsaWVudFJvdXRlc10pLENuLmNyZWF0ZUVsZW1lbnQoRHIuRjAse25hdmlnYXRvcjpEbixsb2NhdGlvbjppYS5sb2NhdGlvbixiYXNlbmFtZTprbi5iYXNlbmFtZX0sa24uY2hpbGRyZW4pfWZ1bmN0aW9uIHlsKCl7dmFyIGtuPSgwLE5yLk92KSgpLERuPWtuLmNsaWVudFJvdXRlcztyZXR1cm4oMCxEci5WJCkoRG4pfXZhciBNdD1bImlubmVyUHJvdmlkZXIiLCJpMThuUHJvdmlkZXIiLCJhY2Nlc3NQcm92aWRlciIsImRhdGFmbG93UHJvdmlkZXIiLCJvdXRlclByb3ZpZGVyIiwicm9vdENvbnRhaW5lciJdLEtlPWZ1bmN0aW9uKERuLFdyKXt2YXIga3I9RG4uYmFzZW5hbWV8fCIvIixpYT1sbyh7cm91dGVzQnlJZDpEbi5yb3V0ZXMscm91dGVDb21wb25lbnRzOkRuLnJvdXRlQ29tcG9uZW50cyxsb2FkaW5nQ29tcG9uZW50OkRuLmxvYWRpbmdDb21wb25lbnQscmVhY3RSb3V0ZXI1Q29tcGF0OkRuLnJlYWN0Um91dGVyNUNvbXBhdCx1c2VTdHJlYW06RG4udXNlU3RyZWFtfSk7RG4ucGx1Z2luTWFuYWdlci5hcHBseVBsdWdpbnMoe2tleToicGF0Y2hDbGllbnRSb3V0ZXMiLHR5cGU6ImV2ZW50IixhcmdzOntyb3V0ZXM6aWF9fSk7Zm9yKHZhciBhYT1Dbi5jcmVhdGVFbGVtZW50KG5sLHtiYXNlbmFtZTprcixwbHVnaW5NYW5hZ2VyOkRuLnBsdWdpbk1hbmFnZXIscm91dGVzOkRuLnJvdXRlcyxjbGllbnRSb3V0ZXM6aWEsaGlzdG9yeTpEbi5oaXN0b3J5fSxXciksbmE9MCxtYT1NdDtuYTxtYS5sZW5ndGg7bmErKyl7dmFyIHhyPW1hW25hXTthYT1Ebi5wbHVnaW5NYW5hZ2VyLmFwcGx5UGx1Z2lucyh7dHlwZToibW9kaWZ5IixrZXk6eHIsaW5pdGlhbFZhbHVlOmFhLGFyZ3M6e3JvdXRlczpEbi5yb3V0ZXMsaGlzdG9yeTpEbi5oaXN0b3J5LHBsdWdpbjpEbi5wbHVnaW5NYW5hZ2VyfX0pfXZhciBacj1mdW5jdGlvbigpe3ZhciBEYT0oMCxDbi51c2VTdGF0ZSkoe30pLHBhPSgwLGpyLlopKERhLDIpLHNvPXBhWzBdLHFhPXBhWzFdLGplPSgwLENuLnVzZVN0YXRlKSh3aW5kb3cuX19VTUlfTE9BREVSX0RBVEFfX3x8e30pLEtyPSgwLGpyLlopKGplLDIpLEFvPUtyWzBdLElvPUtyWzFdLGVpPSgwLENuLnVzZUNhbGxiYWNrKShmdW5jdGlvbihucixyaSl7dmFyIEJpLHJsPSgoKEJpPSgwLERyLmZwKShpYSxucixrcikpPT09bnVsbHx8Qmk9PT12b2lkIDA/dm9pZCAwOkJpLm1hcChmdW5jdGlvbihjaSl7cmV0dXJuIGNpLnJvdXRlLmlkfSkpfHxbXSkuZmlsdGVyKEJvb2xlYW4pO3JsLmZvckVhY2goZnVuY3Rpb24oY2kpe3ZhciBzbCxLYTtpZih3aW5kb3cuX191bWlfcm91dGVfcHJlZmV0Y2hfXyl7dmFyIFRvLFZpPShUbz1Ebi5yb3V0ZUNvbXBvbmVudHNbY2ldKT09PW51bGx8fFRvPT09dm9pZCAwfHwoVG89VG8uX3BheWxvYWQpPT09bnVsbHx8VG89PT12b2lkIDA/dm9pZCAwOlRvLl9yZXN1bHQ7dHlwZW9mIFZpPT0iZnVuY3Rpb24iJiZWaSgpfXZhciBHaT0oc2w9RG4ucm91dGVzW2NpXSk9PT1udWxsfHxzbD09PXZvaWQgMD92b2lkIDA6c2wuY2xpZW50TG9hZGVyLGJvPSEhR2ksQm89KEthPURuLnJvdXRlc1tjaV0pPT09bnVsbHx8S2E9PT12b2lkIDA/dm9pZCAwOkthLmhhc1NlcnZlckxvYWRlcjshcmkmJkJvJiYhYm8mJiF3aW5kb3cuX19VTUlfTE9BREVSX0RBVEFfXyYmdGEoe2lkOmNpLGJhc2VuYW1lOmtyLGNiOmZ1bmN0aW9uKHVpKXtDbi5zdGFydFRyYW5zaXRpb24oZnVuY3Rpb24oKXtJbyhmdW5jdGlvbihZaSl7cmV0dXJuIHFuKHFuKHt9LFlpKSx7fSxNbih7fSxjaSx1aSkpfSl9KX19KTt2YXIgTG89ISFzb1tjaV0sRXI9Ym8mJkdpLmh5ZHJhdGV8fCFCbyxJaT1CbyYmIXdpbmRvdy5fX1VNSV9MT0FERVJfREFUQV9fO2JvJiYhTG8mJihFcnx8SWkpJiZHaSh7c2VydmVyTG9hZGVyOmZ1bmN0aW9uKCl7cmV0dXJuIHRhKHtpZDpjaSxiYXNlbmFtZTprcixjYjpmdW5jdGlvbihZaSl7Q24uc3RhcnRUcmFuc2l0aW9uKGZ1bmN0aW9uKCl7SW8oZnVuY3Rpb24oY2wpe3JldHVybiBxbihxbih7fSxjbCkse30sTW4oe30sY2ksWWkpKX0pfSl9fSl9fSkudGhlbihmdW5jdGlvbihhaSl7cWEoZnVuY3Rpb24odWkpe3JldHVybiBxbihxbih7fSx1aSkse30sTW4oe30sY2ksYWkpKX0pfSl9KX0sW3NvXSk7cmV0dXJuKDAsQ24udXNlRWZmZWN0KShmdW5jdGlvbigpe3JldHVybiBlaSh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUsITApLERuLmhpc3RvcnkubGlzdGVuKGZ1bmN0aW9uKG5yKXtlaShuci5sb2NhdGlvbi5wYXRobmFtZSl9KX0sW10pLCgwLENuLnVzZUxheW91dEVmZmVjdCkoZnVuY3Rpb24oKXt0eXBlb2YgRG4uY2FsbGJhY2s9PSJmdW5jdGlvbiImJkRuLmNhbGxiYWNrKCl9LFtdKSxDbi5jcmVhdGVFbGVtZW50KE5yLklsLlByb3ZpZGVyLHt2YWx1ZTp7cm91dGVzOkRuLnJvdXRlcyxyb3V0ZUNvbXBvbmVudHM6RG4ucm91dGVDb21wb25lbnRzLGNsaWVudFJvdXRlczppYSxwbHVnaW5NYW5hZ2VyOkRuLnBsdWdpbk1hbmFnZXIscm9vdEVsZW1lbnQ6RG4ucm9vdEVsZW1lbnQsYmFzZW5hbWU6a3IsY2xpZW50TG9hZGVyRGF0YTpzbyxzZXJ2ZXJMb2FkZXJEYXRhOkFvLHByZWxvYWRSb3V0ZTplaSxoaXN0b3J5OkRuLmhpc3Rvcnl9fSxhYSl9O3JldHVybiBacn07ZnVuY3Rpb24geXQoa24pe3ZhciBEbj1rbi5yb290RWxlbWVudHx8ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJvb3QiKSxXcj1LZShrbixDbi5jcmVhdGVFbGVtZW50KHlsLG51bGwpKTtpZihrbi5jb21wb25lbnRzKXJldHVybiBXcjtpZihrbi5oeWRyYXRlKXt2YXIga3I9d2luZG93Ll9fVU1JX0xPQURFUl9EQVRBX198fHt9LGlhPXdpbmRvdy5fX1VNSV9NRVRBREFUQV9MT0FERVJfREFUQV9ffHx7fSxhYT17bWV0YWRhdGE6aWEsbG9hZGVyRGF0YTprcixtb3VudEVsZW1lbnRJZDprbi5tb3VudEVsZW1lbnRJZH0sbmE9a24uX19JTlRFUk5BTF9ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVELnB1cmVBcHB8fGtuLl9fSU5URVJOQUxfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRC5wdXJlSHRtbDtMci5oeWRyYXRlUm9vdChuYT9Ebjpkb2N1bWVudCxuYT9Dbi5jcmVhdGVFbGVtZW50KFdyLG51bGwpOkNuLmNyZWF0ZUVsZW1lbnQoR2EsYWEsQ24uY3JlYXRlRWxlbWVudChXcixudWxsKSkpO3JldHVybn1pZihMci5jcmVhdGVSb290KXtYbz1Mci5jcmVhdGVSb290KERuKSxYby5yZW5kZXIoQ24uY3JlYXRlRWxlbWVudChXcixudWxsKSk7cmV0dXJufUxyLnJlbmRlcihDbi5jcmVhdGVFbGVtZW50KFdyLG51bGwpLERuKX1mdW5jdGlvbiBQdCgpe3JldHVybiBBdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gQXQoKXtyZXR1cm4gQXQ9dCgpKHAoKSgpLm1hcmsoZnVuY3Rpb24ga24oKXt2YXIgRG47cmV0dXJuIHAoKSgpLndyYXAoZnVuY3Rpb24oa3Ipe2Zvcig7Oylzd2l0Y2goa3IucHJldj1rci5uZXh0KXtjYXNlIDA6cmV0dXJuIERuPXsxOntwYXRoOiIvIixyZWRpcmVjdDoiL2FjY291bnQvY2VudGVyIixwYXJlbnRJZDoiYW50LWRlc2lnbi1wcm8tbGF5b3V0IixpZDoiMSJ9LDI6e3BhdGg6IioiLGxheW91dDohMSxpZDoiMiJ9LDM6e3BhdGg6Ii91c2VyIixsYXlvdXQ6ITEsaWQ6IjMifSw0OntuYW1lOiJsb2dpbiIscGF0aDoiL3VzZXIvbG9naW4iLHBhcmVudElkOiIzIixpZDoiNCJ9LDU6e3BhdGg6Ii9hY2NvdW50IixwYXJlbnRJZDoiYW50LWRlc2lnbi1wcm8tbGF5b3V0IixpZDoiNSJ9LDY6e25hbWU6ImFjZW50ZXIiLHBhdGg6Ii9hY2NvdW50L2NlbnRlciIscGFyZW50SWQ6IjUiLGlkOiI2In0sNzp7bmFtZToiYXNldHRpbmdzIixwYXRoOiIvYWNjb3VudC9zZXR0aW5ncyIscGFyZW50SWQ6IjUiLGlkOiI3In0sODp7bmFtZToic3lzdGVtIixwYXRoOiIvc3lzdGVtIixwYXJlbnRJZDoiYW50LWRlc2lnbi1wcm8tbGF5b3V0IixpZDoiOCJ9LDk6e25hbWU6Ilx1NUI1N1x1NTE3OFx1NjU3MFx1NjM2RSIscGF0aDoiL3N5c3RlbS9kaWN0LWRhdGEvaW5kZXgvOmlkIixwYXJlbnRJZDoiOCIsaWQ6IjkifSwxMDp7bmFtZToiXHU1MjA2XHU5MTREXHU3NTI4XHU2MjM3IixwYXRoOiIvc3lzdGVtL3JvbGUtYXV0aC91c2VyLzppZCIscGFyZW50SWQ6IjgiLGlkOiIxMCJ9LDExOntuYW1lOiJtb25pdG9yIixwYXRoOiIvbW9uaXRvciIscGFyZW50SWQ6ImFudC1kZXNpZ24tcHJvLWxheW91dCIsaWQ6IjExIn0sMTI6e25hbWU6Ilx1NEVGQlx1NTJBMVx1NjVFNVx1NUZENyIscGF0aDoiL21vbml0b3Ivam9iLWxvZy9pbmRleC86aWQiLHBhcmVudElkOiIxMSIsaWQ6IjEyIn0sMTM6e25hbWU6InRvb2wiLHBhdGg6Ii90b29sIixwYXJlbnRJZDoiYW50LWRlc2lnbi1wcm8tbGF5b3V0IixpZDoiMTMifSwxNDp7bmFtZToiXHU1QkZDXHU1MTY1XHU4ODY4IixwYXRoOiIvdG9vbC9nZW4vaW1wb3J0IixwYXJlbnRJZDoiMTMiLGlkOiIxNCJ9LDE1OntuYW1lOiJcdTdGMTZcdThGOTFcdTg4NjgiLHBhdGg6Ii90b29sL2dlbi9lZGl0IixwYXJlbnRJZDoiMTMiLGlkOiIxNSJ9LDE2OntuYW1lOiJcdTVFMTZcdTVCNTBcdTRFMkRcdTVGQzMiLGljb246InJlYWQiLHBhdGg6Ii9wb3N0L2NlbnRlciIscGFyZW50SWQ6ImFudC1kZXNpZ24tcHJvLWxheW91dCIsaWQ6IjE2In0sMTc6e25hbWU6Ilx1NUUxNlx1NUI1MFx1OEJFNlx1NjBDNSIscGF0aDoiL3Bvc3QtZGV0YWlsLzppZCIsaGlkZUluTWVudTohMCxwYXJlbnRJZDoiYW50LWRlc2lnbi1wcm8tbGF5b3V0IixpZDoiMTcifSwxODp7bmFtZToiXHU0RTJBXHU0RUJBXHU0RTJEXHU1RkMzIixwYXRoOiIvdXNlci1jZW50ZXIiLGhpZGVJbk1lbnU6ITAscGFyZW50SWQ6ImFudC1kZXNpZ24tcHJvLWxheW91dCIsaWQ6IjE4In0sMTk6e25hbWU6Ilx1NUUxNlx1NUI1MFx1NUJBMVx1NjgzOCIscGF0aDoiL3Bvc3QtcmV2aWV3IixoaWRlSW5NZW51OiEwLHBhcmVudElkOiJhbnQtZGVzaWduLXByby1sYXlvdXQiLGlkOiIxOSJ9LCJhbnQtZGVzaWduLXByby1sYXlvdXQiOntpZDoiYW50LWRlc2lnbi1wcm8tbGF5b3V0IixwYXRoOiIvIixpc0xheW91dDohMH19LGtyLmFicnVwdCgicmV0dXJuIix7cm91dGVzOkRuLHJvdXRlQ29tcG9uZW50czp7MTpDbi5sYXp5KGZ1bmN0aW9uKCl7cmV0dXJuIENlLmUoNjM5MCkudGhlbihDZS5iaW5kKENlLDk2MzkwKSl9KSwyOkNuLmxhenkoZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5hbGwoW0NlLmUoOTcyMCksQ2UuZSgyNTcxKV0pLnRoZW4oQ2UuYmluZChDZSw5ODI2KSl9KSwzOkNuLmxhenkoZnVuY3Rpb24oKXtyZXR1cm4gQ2UuZSg2MzkwKS50aGVuKENlLmJpbmQoQ2UsOTYzOTApKX0pLDQ6Q24ubGF6eShmdW5jdGlvbigpe3JldHVybiBQcm9taXNlLmFsbChbQ2UuZSgyNTg2KSxDZS5lKDIzNjIpLENlLmUoODk5NyksQ2UuZSg1Mjc4KSxDZS5lKDU4MjYpLENlLmUoOTAzKSxDZS5lKDk4NTkpLENlLmUoODcwMyksQ2UuZSg3MjY5KSxDZS5lKDIxNzkpLENlLmUoMjM5OCksQ2UuZSg5MzY2KV0pLnRoZW4oQ2UuYmluZChDZSwyNDM4NSkpfSksNTpDbi5sYXp5KGZ1bmN0aW9uKCl7cmV0dXJuIENlLmUoNjM5MCkudGhlbihDZS5iaW5kKENlLDk2MzkwKSl9KSw2OkNuLmxhenkoZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5hbGwoW0NlLmUoMjU4NiksQ2UuZSgyMzYyKSxDZS5lKDg5OTcpLENlLmUoNTI3OCksQ2UuZSg1ODI2KSxDZS5lKDkwMyksQ2UuZSg5ODU5KSxDZS5lKDg3MDMpLENlLmUoNzI2OSksQ2UuZSgyMTc5KSxDZS5lKDIzOTgpLENlLmUoNDM5MyksQ2UuZSgzNzk5KSxDZS5lKDIwMTYpLENlLmUoOTI0NSldKS50aGVuKENlLmJpbmQoQ2UsMjEyNzgpKX0pLDc6Q24ubGF6eShmdW5jdGlvbigpe3JldHVybiBQcm9taXNlLmFsbChbQ2UuZSg4OTk3KSxDZS5lKDIzOTgpLENlLmUoMTQ1OCksQ2UuZSg2MTEwKSxDZS5lKDQzOTMpLENlLmUoMTk0MildKS50aGVuKENlLmJpbmQoQ2UsNjkzMjUpKX0pLDg6Q24ubGF6eShmdW5jdGlvbigpe3JldHVybiBDZS5lKDYzOTApLnRoZW4oQ2UuYmluZChDZSw5NjM5MCkpfSksOTpDbi5sYXp5KGZ1bmN0aW9uKCl7cmV0dXJuIFByb21pc2UuYWxsKFtDZS5lKDI1ODYpLENlLmUoMjM2MiksQ2UuZSg4OTk3KSxDZS5lKDUyNzgpLENlLmUoNTgyNiksQ2UuZSg5MDMpLENlLmUoOTg1OSksQ2UuZSg4NzAzKSxDZS5lKDcyNjkpLENlLmUoMjE3OSksQ2UuZSgyMzk4KSxDZS5lKDYxNTQpLENlLmUoOTcyMCksQ2UuZSg5NjApLENlLmUoNTM4NSksQ2UuZSgxNDU4KSxDZS5lKDYxMTApLENlLmUoMzYyOCksQ2UuZSg1Nzg2KV0pLnRoZW4oQ2UuYmluZChDZSwxMzU1OCkpfSksMTA6Q24ubGF6eShmdW5jdGlvbigpe3JldHVybiBQcm9taXNlLmFsbChbQ2UuZSgyNTg2KSxDZS5lKDIzNjIpLENlLmUoODk5NyksQ2UuZSg1Mjc4KSxDZS5lKDU4MjYpLENlLmUoOTAzKSxDZS5lKDk4NTkpLENlLmUoODcwMyksQ2UuZSg3MjY5KSxDZS5lKDIxNzkpLENlLmUoMjM5OCksQ2UuZSg2MTU0KSxDZS5lKDk3MjApLENlLmUoOTYwKSxDZS5lKDUzODUpLENlLmUoMTQ1OCksQ2UuZSg2MTEwKSxDZS5lKDU0NjQpLENlLmUoNjgzMSldKS50aGVuKENlLmJpbmQoQ2UsOTE2MzEpKX0pLDExOkNuLmxhenkoZnVuY3Rpb24oKXtyZXR1cm4gQ2UuZSg2MzkwKS50aGVuKENlLmJpbmQoQ2UsOTYzOTApKX0pLDEyOkNuLmxhenkoZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5hbGwoW0NlLmUoMjU4NiksQ2UuZSgyMzYyKSxDZS5lKDg5OTcpLENlLmUoNTI3OCksQ2UuZSg1ODI2KSxDZS5lKDkwMyksQ2UuZSg5ODU5KSxDZS5lKDg3MDMpLENlLmUoNzI2OSksQ2UuZSgyMTc5KSxDZS5lKDIzOTgpLENlLmUoNjE1NCksQ2UuZSg5NzIwKSxDZS5lKDk2MCksQ2UuZSg1Mzg1KSxDZS5lKDE0NTgpLENlLmUoNjExMCksQ2UuZSg2NDEyKSxDZS5lKDYyODUpXSkudGhlbihDZS5iaW5kKENlLDg2MDEzKSl9KSwxMzpDbi5sYXp5KGZ1bmN0aW9uKCl7cmV0dXJuIENlLmUoNjM5MCkudGhlbihDZS5iaW5kKENlLDk2MzkwKSl9KSwxNDpDbi5sYXp5KGZ1bmN0aW9uKCl7cmV0dXJuIFByb21pc2UuYWxsKFtDZS5lKDI1ODYpLENlLmUoMjM2MiksQ2UuZSg4OTk3KSxDZS5lKDUyNzgpLENlLmUoNTgyNiksQ2UuZSg5MDMpLENlLmUoOTg1OSksQ2UuZSg4NzAzKSxDZS5lKDcyNjkpLENlLmUoMjE3OSksQ2UuZSgyMzk4KSxDZS5lKDYxNTQpLENlLmUoOTcyMCksQ2UuZSg5NjApLENlLmUoNTM4NSksQ2UuZSg0MzkzKSxDZS5lKDM4NjcpXSkudGhlbihDZS5iaW5kKENlLDY2ODc2KSl9KSwxNTpDbi5sYXp5KGZ1bmN0aW9uKCl7cmV0dXJuIFByb21pc2UuYWxsKFtDZS5lKDI1ODYpLENlLmUoMjM2MiksQ2UuZSg4OTk3KSxDZS5lKDUyNzgpLENlLmUoNTgyNiksQ2UuZSg5MDMpLENlLmUoOTg1OSksQ2UuZSg4NzAzKSxDZS5lKDcyNjkpLENlLmUoMjE3OSksQ2UuZSgyMzk4KSxDZS5lKDYxNTQpLENlLmUoOTcyMCksQ2UuZSg5NjApLENlLmUoNTM4NSksQ2UuZSg0MzkzKSxDZS5lKDYzODgpLENlLmUoMjA1NyksQ2UuZSg3MTQ0KV0pLnRoZW4oQ2UuYmluZChDZSw1NjQ0NSkpfSksMTY6Q24ubGF6eShmdW5jdGlvbigpe3JldHVybiBQcm9taXNlLmFsbChbQ2UuZSgyNTg2KSxDZS5lKDg5OTcpLENlLmUoNTI3OCksQ2UuZSgyMzk4KSxDZS5lKDQzOTMpLENlLmUoMjA4NiksQ2UuZSg3NjYyKSxDZS5lKDgyOTkpXSkudGhlbihDZS5iaW5kKENlLDg3NTUpKX0pLDE3OkNuLmxhenkoZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5hbGwoW0NlLmUoMjU4NiksQ2UuZSg4OTk3KSxDZS5lKDUyNzgpLENlLmUoOTAzKSxDZS5lKDIzOTgpLENlLmUoOTYwKSxDZS5lKDQzOTMpLENlLmUoNzY2MiksQ2UuZSgyNjM2KV0pLnRoZW4oQ2UuYmluZChDZSw1MTQwOSkpfSksMTg6Q24ubGF6eShmdW5jdGlvbigpe3JldHVybiBQcm9taXNlLmFsbChbQ2UuZSgyNTg2KSxDZS5lKDIzNjIpLENlLmUoODk5NyksQ2UuZSg1Mjc4KSxDZS5lKDU4MjYpLENlLmUoOTAzKSxDZS5lKDk4NTkpLENlLmUoODcwMyksQ2UuZSgyMzk4KSxDZS5lKDYxNTQpLENlLmUoNDM5MyksQ2UuZSgzNzk5KSxDZS5lKDc2NjIpLENlLmUoMTA5MSldKS50aGVuKENlLmJpbmQoQ2UsMTExODcpKX0pLDE5OkNuLmxhenkoZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5hbGwoW0NlLmUoMjU4NiksQ2UuZSgyMzYyKSxDZS5lKDUyNzgpLENlLmUoNTgyNiksQ2UuZSg5MDMpLENlLmUoMjM5OCksQ2UuZSg2MTU0KSxDZS5lKDk2MCksQ2UuZSg0MzkzKSxDZS5lKDc2NjIpLENlLmUoMjA2MyksQ2UuZSg0ODczKV0pLnRoZW4oQ2UuYmluZChDZSw5OTE5MCkpfSksImFudC1kZXNpZ24tcHJvLWxheW91dCI6Q24ubGF6eShmdW5jdGlvbigpe3JldHVybiBQcm9taXNlLmFsbChbQ2UuZSg4OTk3KSxDZS5lKDk3MjApLENlLmUoNDM0NiksQ2UuZSg2MzAxKV0pLnRoZW4oQ2UuYmluZChDZSwyNzYyNikpfSl9fSk7Y2FzZSAyOmNhc2UiZW5kIjpyZXR1cm4ga3Iuc3RvcCgpfX0sa24pfSkpLEF0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX12YXIgVXQ9Q2UoMjA3NjEpLGRuPUNlKDEwNTgxKSxkcj1DZSgyNzQ4NCksdHI9Q2UubihkciksenI9Q2UoNDA4NzMpLHdyPUNlLm4oenIpLEJyPUNlKDM3NDEyKSxkYT1DZS5uKEJyKSxzYT1DZSg3OTIxMiksd2E9Q2UubihzYSksemE9Q2UoMjg3MzQpLExhPUNlLm4oemEpLFdhPUNlKDEwMjg1KSxPYT1DZS5uKFdhKSxKYT1DZSg2ODMzKSx0bz1DZS5uKEphKSx3bz1DZSgxNzIpLGhvPUNlLm4od28pLHlvPUNlKDU1MTgzKSxRbz1DZS5uKHlvKSxrbz1DZSgzNDQyNSkseWk9Q2UubihrbyksTWk9Q2UoOTYwMzYpLENpPUNlLm4oTWkpLERvPUNlKDU2MTc2KSxLaT1DZS5uKERvKSxSaT1DZSgxNjQ2KSxLbz1DZS5uKFJpKTt0cigpLmV4dGVuZChkYSgpKSx0cigpLmV4dGVuZCh3YSgpKSx0cigpLmV4dGVuZChMYSgpKSx0cigpLmV4dGVuZChPYSgpKSx0cigpLmV4dGVuZCh0bygpKSx0cigpLmV4dGVuZChobygpKSx0cigpLmV4dGVuZChRbygpKSx0cigpLmV4dGVuZCh5aSgpKSx0cigpLmV4dGVuZChDaSgpKSx0cigpLmV4dGVuZChLaSgpKSx0cigpLmV4dGVuZChLbygpKSx0cigpLmV4dGVuZCh3cigpKTt2YXIgSm89Ii8iLHFvPSExO2Z1bmN0aW9uIF9pKCl7cmV0dXJuIEVvLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBFbygpe3JldHVybiBFbz10KCkocCgpKCkubWFyayhmdW5jdGlvbiBrbigpe3ZhciBEbixXcixrcixpYSxhYSxuYSxtYSx4cjtyZXR1cm4gcCgpKCkud3JhcChmdW5jdGlvbihWYSl7Zm9yKDs7KXN3aXRjaChWYS5wcmV2PVZhLm5leHQpe2Nhc2UgMDpyZXR1cm4gRG49KDAsVXQuZ0QpKCksVmEubmV4dD0zLFB0KERuKTtjYXNlIDM6cmV0dXJuIFdyPVZhLnNlbnQsa3I9V3Iucm91dGVzLGlhPVdyLnJvdXRlQ29tcG9uZW50cyxWYS5uZXh0PTgsRG4uYXBwbHlQbHVnaW5zKHtrZXk6InBhdGNoUm91dGVzIix0eXBlOkZvLkFwcGx5UGx1Z2luc1R5cGUuZXZlbnQsYXJnczp7cm91dGVzOmtyLHJvdXRlQ29tcG9uZW50czppYX19KTtjYXNlIDg6cmV0dXJuIGFhPURuLmFwcGx5UGx1Z2lucyh7a2V5OiJtb2RpZnlDb250ZXh0T3B0cyIsdHlwZTpGby5BcHBseVBsdWdpbnNUeXBlLm1vZGlmeSxpbml0aWFsVmFsdWU6e319KSxuYT1hYS5iYXNlbmFtZXx8Ii8iLG1hPWFhLmhpc3RvcnlUeXBlfHwiYnJvd3NlciIseHI9KDAsZG4uZmkpKHIoKSh7dHlwZTptYSxiYXNlbmFtZTpuYX0sYWEuaGlzdG9yeU9wdHMpKSxWYS5hYnJ1cHQoInJldHVybiIsRG4uYXBwbHlQbHVnaW5zKHtrZXk6InJlbmRlciIsdHlwZTpGby5BcHBseVBsdWdpbnNUeXBlLmNvbXBvc2UsaW5pdGlhbFZhbHVlOmZ1bmN0aW9uKCl7dmFyIHBhPXt1c2VTdHJlYW06ITAscm91dGVzOmtyLHJvdXRlQ29tcG9uZW50czppYSxwbHVnaW5NYW5hZ2VyOkRuLG1vdW50RWxlbWVudElkOiJyb290Iixyb290RWxlbWVudDphYS5yb290RWxlbWVudHx8ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJvb3QiKSxwdWJsaWNQYXRoOkpvLHJ1bnRpbWVQdWJsaWNQYXRoOnFvLGhpc3Rvcnk6eHIsaGlzdG9yeVR5cGU6bWEsYmFzZW5hbWU6bmEsX19JTlRFUk5BTF9ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEOntwdXJlQXBwOiExLHB1cmVIdG1sOiExfSxjYWxsYmFjazphYS5jYWxsYmFja30sc289RG4uYXBwbHlQbHVnaW5zKHtrZXk6Im1vZGlmeUNsaWVudFJlbmRlck9wdHMiLHR5cGU6Rm8uQXBwbHlQbHVnaW5zVHlwZS5tb2RpZnksaW5pdGlhbFZhbHVlOnBhfSk7cmV0dXJuIHl0KHNvKX19KSgpKTtjYXNlIDEzOmNhc2UiZW5kIjpyZXR1cm4gVmEuc3RvcCgpfX0sa24pfSkpLEVvLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1faSgpLHR5cGVvZiB3aW5kb3chPSJ1bmRlZmluZWQiJiYod2luZG93LmdfdW1pPXt2ZXJzaW9uOiI0LjQuNiJ9KX0pKCl9KSgpOworfSgpKTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljL3VtaS5mZTIwZTc1Yi5jc3MgYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljL3VtaS5mZTIwZTc1Yi5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmI1ZDU5ZgotLS0gL2Rldi9udWxsCisrKyBiL3J1b3lpLWFkbWluL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvdW1pLmZlMjBlNzViLmNzcwpAQCAtMCwwICsxIEBACitodG1sLGJvZHksI3Jvb3R7aGVpZ2h0OjEwMCU7bWFyZ2luOjA7cGFkZGluZzowO2ZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFNlZ29lIFVJLFJvYm90byxIZWx2ZXRpY2EgTmV1ZSxBcmlhbCxOb3RvIFNhbnMsc2Fucy1zZXJpZiwiQXBwbGUgQ29sb3IgRW1vamkiLCJTZWdvZSBVSSBFbW9qaSIsU2Vnb2UgVUkgU3ltYm9sLCJOb3RvIENvbG9yIEVtb2ppIn0uY29sb3JXZWFre2ZpbHRlcjppbnZlcnQoODAlKX0uYW50LWxheW91dHttaW4taGVpZ2h0OjEwMHZofS5hbnQtcHJvLXNpZGVyLmFudC1sYXlvdXQtc2lkZXIuYW50LXByby1zaWRlci1maXhlZHtsZWZ0OnVuc2V0fWNhbnZhc3tkaXNwbGF5OmJsb2NrfWJvZHl7dGV4dC1yZW5kZXJpbmc6b3B0aW1pemVMZWdpYmlsaXR5Oy13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50aWFsaWFzZWQ7LW1vei1vc3gtZm9udC1zbW9vdGhpbmc6Z3JheXNjYWxlfXVsLG9se2xpc3Qtc3R5bGU6bm9uZX1AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpey5hbnQtdGFibGV7d2lkdGg6MTAwJTtvdmVyZmxvdy14OmF1dG99LmFudC10YWJsZS10aGVhZD50cj50aCwuYW50LXRhYmxlLXRib2R5PnRyPnRoLC5hbnQtdGFibGUtdGhlYWQ+dHI+dGQsLmFudC10YWJsZS10Ym9keT50cj50ZHt3aGl0ZS1zcGFjZTpwcmV9LmFudC10YWJsZS10aGVhZD50cj50aD5zcGFuLC5hbnQtdGFibGUtdGJvZHk+dHI+dGg+c3BhbiwuYW50LXRhYmxlLXRoZWFkPnRyPnRkPnNwYW4sLmFudC10YWJsZS10Ym9keT50cj50ZD5zcGFue2Rpc3BsYXk6YmxvY2t9fWh0bWwsYm9keXt3aWR0aDoxMDAlO2hlaWdodDoxMDAlfWlucHV0OjotbXMtY2xlYXIsaW5wdXQ6Oi1tcy1yZXZlYWx7ZGlzcGxheTpub25lfSosKjpiZWZvcmUsKjphZnRlcntib3gtc2l6aW5nOmJvcmRlci1ib3h9aHRtbHtmb250LWZhbWlseTpzYW5zLXNlcmlmO2xpbmUtaGVpZ2h0OjEuMTU7LXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OjEwMCU7LW1zLXRleHQtc2l6ZS1hZGp1c3Q6MTAwJTstbXMtb3ZlcmZsb3ctc3R5bGU6c2Nyb2xsYmFyOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjpyZ2JhKDAsMCwwLDApfWJvZHl7bWFyZ2luOjB9W3RhYmluZGV4PSItMSJdOmZvY3Vze291dGxpbmU6bm9uZX1ocntib3gtc2l6aW5nOmNvbnRlbnQtYm94O2hlaWdodDowO292ZXJmbG93OnZpc2libGV9aDEsaDIsaDMsaDQsaDUsaDZ7bWFyZ2luLXRvcDowO21hcmdpbi1ib3R0b206LjVlbTtmb250LXdlaWdodDo1MDB9cHttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbToxZW19YWJiclt0aXRsZV0sYWJicltkYXRhLW9yaWdpbmFsLXRpdGxlXXt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmUgZG90dGVkO2JvcmRlci1ib3R0b206MDtjdXJzb3I6aGVscH1hZGRyZXNze21hcmdpbi1ib3R0b206MWVtO2ZvbnQtc3R5bGU6bm9ybWFsO2xpbmUtaGVpZ2h0OmluaGVyaXR9aW5wdXRbdHlwZT10ZXh0XSxpbnB1dFt0eXBlPXBhc3N3b3JkXSxpbnB1dFt0eXBlPW51bWJlcl0sdGV4dGFyZWF7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmV9b2wsdWwsZGx7bWFyZ2luLXRvcDowO21hcmdpbi1ib3R0b206MWVtfW9sIG9sLHVsIHVsLG9sIHVsLHVsIG9se21hcmdpbi1ib3R0b206MH1kdHtmb250LXdlaWdodDo1MDB9ZGR7bWFyZ2luLWJvdHRvbTouNWVtO21hcmdpbi1sZWZ0OjB9YmxvY2txdW90ZXttYXJnaW46MCAwIDFlbX1kZm57Zm9udC1zdHlsZTppdGFsaWN9YixzdHJvbmd7Zm9udC13ZWlnaHQ6Ym9sZGVyfXNtYWxse2ZvbnQtc2l6ZTo4MCV9c3ViLHN1cHtwb3NpdGlvbjpyZWxhdGl2ZTtmb250LXNpemU6NzUlO2xpbmUtaGVpZ2h0OjA7dmVydGljYWwtYWxpZ246YmFzZWxpbmV9c3Vie2JvdHRvbTotLjI1ZW19c3Vwe3RvcDotLjVlbX1wcmUsY29kZSxrYmQsc2FtcHtmb250LXNpemU6MWVtO2ZvbnQtZmFtaWx5OlNGTW9uby1SZWd1bGFyLENvbnNvbGFzLExpYmVyYXRpb24gTW9ubyxNZW5sbyxDb3VyaWVyLG1vbm9zcGFjZX1wcmV7bWFyZ2luLXRvcDowO21hcmdpbi1ib3R0b206MWVtO292ZXJmbG93OmF1dG99ZmlndXJle21hcmdpbjowIDAgMWVtfWltZ3t2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7Ym9yZGVyLXN0eWxlOm5vbmV9YSxhcmVhLGJ1dHRvbixbcm9sZT1idXR0b25dLGlucHV0Om5vdChbdHlwZT1yYW5nZV0pLGxhYmVsLHNlbGVjdCxzdW1tYXJ5LHRleHRhcmVhe3RvdWNoLWFjdGlvbjptYW5pcHVsYXRpb259dGFibGV7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlfWNhcHRpb257cGFkZGluZy10b3A6Ljc1ZW07cGFkZGluZy1ib3R0b206LjNlbTt0ZXh0LWFsaWduOmxlZnQ7Y2FwdGlvbi1zaWRlOmJvdHRvbX1pbnB1dCxidXR0b24sc2VsZWN0LG9wdGdyb3VwLHRleHRhcmVhe21hcmdpbjowO2NvbG9yOmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC1mYW1pbHk6aW5oZXJpdDtsaW5lLWhlaWdodDppbmhlcml0fWJ1dHRvbixpbnB1dHtvdmVyZmxvdzp2aXNpYmxlfWJ1dHRvbixzZWxlY3R7dGV4dC10cmFuc2Zvcm06bm9uZX1idXR0b24saHRtbCBbdHlwZT1idXR0b25dLFt0eXBlPXJlc2V0XSxbdHlwZT1zdWJtaXRdey13ZWJraXQtYXBwZWFyYW5jZTpidXR0b259YnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFt0eXBlPWJ1dHRvbl06Oi1tb3otZm9jdXMtaW5uZXIsW3R5cGU9cmVzZXRdOjotbW96LWZvY3VzLWlubmVyLFt0eXBlPXN1Ym1pdF06Oi1tb3otZm9jdXMtaW5uZXJ7cGFkZGluZzowO2JvcmRlci1zdHlsZTpub25lfWlucHV0W3R5cGU9cmFkaW9dLGlucHV0W3R5cGU9Y2hlY2tib3hde2JveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nOjB9aW5wdXRbdHlwZT1kYXRlXSxpbnB1dFt0eXBlPXRpbWVdLGlucHV0W3R5cGU9ZGF0ZXRpbWUtbG9jYWxdLGlucHV0W3R5cGU9bW9udGhdey13ZWJraXQtYXBwZWFyYW5jZTpsaXN0Ym94fXRleHRhcmVhe292ZXJmbG93OmF1dG87cmVzaXplOnZlcnRpY2FsfWZpZWxkc2V0e21pbi13aWR0aDowO21hcmdpbjowO3BhZGRpbmc6MDtib3JkZXI6MH1sZWdlbmR7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlO21heC13aWR0aDoxMDAlO21hcmdpbi1ib3R0b206LjVlbTtwYWRkaW5nOjA7Y29sb3I6aW5oZXJpdDtmb250LXNpemU6MS41ZW07bGluZS1oZWlnaHQ6aW5oZXJpdDt3aGl0ZS1zcGFjZTpub3JtYWx9cHJvZ3Jlc3N7dmVydGljYWwtYWxpZ246YmFzZWxpbmV9W3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixbdHlwZT1udW1iZXJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9ue2hlaWdodDphdXRvfVt0eXBlPXNlYXJjaF17b3V0bGluZS1vZmZzZXQ6LTJweDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZX1bdHlwZT1zZWFyY2hdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFt0eXBlPXNlYXJjaF06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb257LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmV9Ojotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbntmb250OmluaGVyaXQ7LXdlYmtpdC1hcHBlYXJhbmNlOmJ1dHRvbn1vdXRwdXR7ZGlzcGxheTppbmxpbmUtYmxvY2t9c3VtbWFyeXtkaXNwbGF5Omxpc3QtaXRlbX10ZW1wbGF0ZXtkaXNwbGF5Om5vbmV9W2hpZGRlbl17ZGlzcGxheTpub25lIWltcG9ydGFudH1tYXJre3BhZGRpbmc6LjJlbTtiYWNrZ3JvdW5kLWNvbG9yOiNmZWZmZTZ9CmRpZmYgLS1naXQgImEvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy9cMzQ2XDIzMFwyMzdcMzQ3XDI1MVwyNzIuZ2lmIiAiYi9ydW95aS1hZG1pbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljL1wzNDZcMjMwXDIzN1wzNDdcMjUxXDI3Mi5naWYiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgImIvcnVveWktYWRtaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy9cMzQ2XDIzMFwyMzdcMzQ3XDI1MVwyNzIuZ2lmIgpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL3Rlc3QvamF2YS9jb20vcnVveWkvd2ViL2NvbnRyb2xsZXIvQlQvVG9ycmVudENvbnRyb2xsZXJUZXN0LmphdmEgYi9ydW95aS1hZG1pbi9zcmMvdGVzdC9qYXZhL2NvbS9ydW95aS93ZWIvY29udHJvbGxlci9CVC9Ub3JyZW50Q29udHJvbGxlclRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NGVhNDhlCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL3Rlc3QvamF2YS9jb20vcnVveWkvd2ViL2NvbnRyb2xsZXIvQlQvVG9ycmVudENvbnRyb2xsZXJUZXN0LmphdmEKQEAgLTAsMCArMSwxNzYgQEAKK3BhY2thZ2UgY29tLnJ1b3lpLndlYi5jb250cm9sbGVyLkJUOworCitpbXBvcnQgY29tLmdpdGh1Yi5wYWdlaGVscGVyLlBhZ2VJbmZvOworaW1wb3J0IGNvbS5ydW95aS5jb21tb24uY29yZS5kb21haW4uZW50aXR5LlN5c1VzZXI7CisKK2ltcG9ydCBjb20ucnVveWkuY29tbW9uLmNvcmUuZG9tYWluLm1vZGVsLkxvZ2luVXNlcjsKK2ltcG9ydCBjb20ucnVveWkud2ViLlNlcnZlci5CVC5Ub3JyZW50Q29tbWVudFNlcnZpY2U7CitpbXBvcnQgY29tLnJ1b3lpLndlYi5TZXJ2ZXIuQlQuVG9ycmVudFNlcnZpY2U7CitpbXBvcnQgY29tLnJ1b3lpLndlYi5TZXJ2ZXIuQlQuVHJhY2tlclVSTFNlcnZpY2U7CitpbXBvcnQgY29tLnJ1b3lpLndlYi5TZXJ2ZXIuc3lzLlVzZXJDcmVkZW50aWFsU2VydmljZTsKK2ltcG9ydCBjb20ucnVveWkud2ViLlNlcnZlci5zeXMuVXNlclNlcnZpY2U7CitpbXBvcnQgY29tLnJ1b3lpLndlYi5jb250cm9sbGVyLmNvbW1vbi5iYXNlLlJlc1BhZ2U7CitpbXBvcnQgY29tLnJ1b3lpLndlYi5kYW8uQlQuU3VnZ2VzdERhbzsKK2ltcG9ydCBjb20ucnVveWkud2ViLmRhby5CVC5UYWdEYW87CitpbXBvcnQgY29tLnJ1b3lpLndlYi5kYW8uQlQuVG9ycmVudERhbzsKK2ltcG9ydCBjb20ucnVveWkud2ViLmRvbWFpbi5CVC4qOworCitpbXBvcnQgb3JnLmp1bml0Lmp1cGl0ZXIuYXBpLkJlZm9yZUVhY2g7CitpbXBvcnQgb3JnLmp1bml0Lmp1cGl0ZXIuYXBpLlRlc3Q7CitpbXBvcnQgb3JnLmp1bml0Lmp1cGl0ZXIuYXBpLmV4dGVuc2lvbi5FeHRlbmRXaXRoOworaW1wb3J0IG9yZy5tb2NraXRvLkluamVjdE1vY2tzOworaW1wb3J0IG9yZy5tb2NraXRvLk1vY2s7CitpbXBvcnQgb3JnLm1vY2tpdG8uanVuaXQuanVwaXRlci5Nb2NraXRvRXh0ZW5zaW9uOworaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsuYmVhbnMuZmFjdG9yeS5hbm5vdGF0aW9uLkF1dG93aXJlZDsKK2ltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLmh0dHAuTWVkaWFUeXBlOworaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsubW9jay53ZWIuTW9ja011bHRpcGFydEZpbGU7CitpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay5zZWN1cml0eS5hdXRoZW50aWNhdGlvbi5Vc2VybmFtZVBhc3N3b3JkQXV0aGVudGljYXRpb25Ub2tlbjsKK2ltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLnNlY3VyaXR5LmNvcmUuY29udGV4dC5TZWN1cml0eUNvbnRleHRIb2xkZXI7CitpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay50ZXN0LndlYi5zZXJ2bGV0Lk1vY2tNdmM7CitpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay50ZXN0LndlYi5zZXJ2bGV0LnNldHVwLk1vY2tNdmNCdWlsZGVyczsKKworaW1wb3J0IGNvbS5mYXN0ZXJ4bWwuamFja3Nvbi5kYXRhYmluZC5PYmplY3RNYXBwZXI7CitpbXBvcnQgamF2YS5uaW8uY2hhcnNldC5TdGFuZGFyZENoYXJzZXRzOworaW1wb3J0IGphdmEudXRpbC5BcnJheXM7CitpbXBvcnQgamF2YS51dGlsLkhhc2hTZXQ7CitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CisKK2ltcG9ydCBzdGF0aWMgb3JnLm1vY2tpdG8uQXJndW1lbnRNYXRjaGVycy5hbnk7CitpbXBvcnQgc3RhdGljIG9yZy5tb2NraXRvLk1vY2tpdG8ud2hlbjsKK2ltcG9ydCBzdGF0aWMgb3JnLnNwcmluZ2ZyYW1ld29yay50ZXN0LndlYi5zZXJ2bGV0LnJlcXVlc3QuTW9ja012Y1JlcXVlc3RCdWlsZGVycy5nZXQ7CitpbXBvcnQgc3RhdGljIG9yZy5zcHJpbmdmcmFtZXdvcmsudGVzdC53ZWIuc2VydmxldC5yZXF1ZXN0Lk1vY2tNdmNSZXF1ZXN0QnVpbGRlcnMubXVsdGlwYXJ0OworaW1wb3J0IHN0YXRpYyBvcmcuc3ByaW5nZnJhbWV3b3JrLnRlc3Qud2ViLnNlcnZsZXQucmVxdWVzdC5Nb2NrTXZjUmVxdWVzdEJ1aWxkZXJzLnBvc3Q7CitpbXBvcnQgc3RhdGljIG9yZy5zcHJpbmdmcmFtZXdvcmsudGVzdC53ZWIuc2VydmxldC5yZXN1bHQuTW9ja012Y1Jlc3VsdE1hdGNoZXJzLio7CisKK2ltcG9ydCBjb20ucnVveWkud2ViLmNvbnRyb2xsZXIuY29tbW9uLmJhc2UuUGFnZVV0aWw7CisKKworaW1wb3J0IHN0YXRpYyBvcmcubW9ja2l0by5Bcmd1bWVudE1hdGNoZXJzLio7CitpbXBvcnQgc3RhdGljIG9yZy5tb2NraXRvLk1vY2tpdG8uKjsKKworQEV4dGVuZFdpdGgoTW9ja2l0b0V4dGVuc2lvbi5jbGFzcykgLy8g5L2/55SoIE1vY2tpdG8g5omp5bGVCitjbGFzcyBUb3JyZW50Q29udHJvbGxlclRlc3QgeworCisgICAgQE1vY2sgLy8g5qih5ouf5L6d6LWW55qEIERBTworICAgIHByaXZhdGUgVGFnRGFvIHRhZ0RhbzsKKyAgICBATW9jayAvLyDmqKHmi5/kvp3otZbnmoQgREFPCisgICAgcHJpdmF0ZSBUb3JyZW50RGFvIHRvcnJlbnREYW87CisKKyAgICBATW9jayAvLyDmqKHmi5/kvp3otZbnmoQgU2VydmljZQorICAgIHByaXZhdGUgU3VnZ2VzdERhbyBzdWdnZXN0RGFvOworCisgICAgQE1vY2sKKyAgICBwcml2YXRlIFRvcnJlbnRTZXJ2aWNlIHRvcnJlbnRTZXJ2aWNlOworCisgICAgQE1vY2sKKyAgICBwcml2YXRlIFRvcnJlbnRDb21tZW50U2VydmljZSB0b3JyZW50Q29tbWVudFNlcnZpY2U7CisKKyAgICBATW9jaworICAgIHByaXZhdGUgVXNlclNlcnZpY2UgdXNlclNlcnZpY2U7CisKKyAgICBATW9jaworICAgIHByaXZhdGUgVHJhY2tlclVSTFNlcnZpY2UgdHJhY2tlclVSTFNlcnZpY2U7CisKKyAgICBATW9jaworICAgIHByaXZhdGUgVXNlckNyZWRlbnRpYWxTZXJ2aWNlIHVzZXJDcmVkZW50aWFsU2VydmljZTsKKworICAgIEBNb2NrCisgICAgcHJpdmF0ZSBQYWdlVXRpbCBwYWdlVXRpbDsKKworICAgIEBJbmplY3RNb2NrcyAvLyDms6jlhaXooqvmtYvor5XnmoQgQ29udHJvbGxlcgorICAgIHByaXZhdGUgVG9ycmVudENvbnRyb2xsZXIgdG9ycmVudENvbnRyb2xsZXI7CisKKyAgICBwcml2YXRlIE1vY2tNdmMgbW9ja012YzsKKyAgICBwcml2YXRlIE9iamVjdE1hcHBlciBvYmplY3RNYXBwZXI7CisKKyAgICBAQmVmb3JlRWFjaAorICAgIHZvaWQgc2V0VXAoKSB7CisKKyAgICAgICAgLy8g5Yib5bu6IExvZ2luVXNlciDlrp7kvovml7bkvb/nlKggaW50IOexu+Wei+eahCB1c2VySWQg5ZKMIGRlcHRJZAorICAgICAgICBMb2dpblVzZXIgbG9naW5Vc2VyID0gbmV3IExvZ2luVXNlcigKKyAgICAgICAgICAgICAgICAxLAorICAgICAgICAgICAgICAgIDEsCisgICAgICAgICAgICAgICAgbmV3IFN5c1VzZXIoKSwKKyAgICAgICAgICAgICAgICBuZXcgSGFzaFNldDw+KCkKKyAgICAgICAgKTsKKworICAgICAgICBtb2NrTXZjID0gTW9ja012Y0J1aWxkZXJzLnN0YW5kYWxvbmVTZXR1cCh0b3JyZW50Q29udHJvbGxlcikuYnVpbGQoKTsKKyAgICAgICAgb2JqZWN0TWFwcGVyID0gbmV3IE9iamVjdE1hcHBlcigpOworICAgIH0KKworCisgICAgQFRlc3QKKyAgICB2b2lkIHRlc3RTdWdnZXN0V2l0aG91dEtleXdvcmQoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgLy8g5omn6KGM6K+35rGC77yIceWPguaVsOS4uuepuu+8iQorICAgICAgICBtb2NrTXZjLnBlcmZvcm0oZ2V0KCIvdG9ycmVudC9zdWdnZXN0IikpCisgICAgICAgICAgICAgICAgLmFuZEV4cGVjdChzdGF0dXMoKS5pc09rKCkpCisgICAgICAgICAgICAgICAgLmFuZEV4cGVjdChqc29uUGF0aCgiJC5kYXRhIikuaXNBcnJheSgpKQorICAgICAgICAgICAgICAgIC5hbmRFeHBlY3QoanNvblBhdGgoIiQuZGF0YSIpLmlzRW1wdHkoKSk7CisgICAgfQorCisgICAgQFRlc3QKKyAgICB2b2lkIHRlc3RBdWRpdCgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBUb3JyZW50QXVkaXRQYXJhbSBwYXJhbSA9IG5ldyBUb3JyZW50QXVkaXRQYXJhbSgpOworICAgICAgICBwYXJhbS5zZXRJZCgxKTsKKyAgICAgICAgcGFyYW0uc2V0U3RhdHVzKDEpOworICAgICAgICBtb2NrTXZjLnBlcmZvcm0ocG9zdCgiL3RvcnJlbnQvYXVkaXQiKQorICAgICAgICAgICAgICAgICAgICAgICAgLmNvbnRlbnRUeXBlKE1lZGlhVHlwZS5BUFBMSUNBVElPTl9KU09OKQorICAgICAgICAgICAgICAgICAgICAgICAgLmNvbnRlbnQob2JqZWN0TWFwcGVyLndyaXRlVmFsdWVBc1N0cmluZyhwYXJhbSkpKQorICAgICAgICAgICAgICAgIC5hbmRFeHBlY3Qoc3RhdHVzKCkuaXNPaygpKTsKKyAgICAgICAgdmVyaWZ5KHRvcnJlbnRTZXJ2aWNlLCB0aW1lcygxKSkuYXVkaXQocGFyYW0pOworICAgIH0KKworCisgICAgQFRlc3QKKyAgICB2b2lkIHRlc3RDcmVhdGVDcmVkZW50aWFsKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG1vY2tNdmMucGVyZm9ybShwb3N0KCIvdG9ycmVudC9jcmVhdGVfY3JlZGVudGlhbCIpKQorICAgICAgICAgICAgICAgIC5hbmRFeHBlY3Qoc3RhdHVzKCkuaXNPaygpKTsKKyAgICAgICAgdmVyaWZ5KHRvcnJlbnRTZXJ2aWNlLCB0aW1lcygxKSkuY3JlYXRlQ3JlZGVudGlhbChNYXRoLnRvSW50RXhhY3QoMCkpOyAvLyDlgYforr7nlKjmiLdJROS4ujEKKyAgICB9CisKKyAgICBAVGVzdAorICAgIHZvaWQgdGVzdFVwZGF0ZSgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBUb3JyZW50RW50aXR5IGVudGl0eSA9IG5ldyBUb3JyZW50RW50aXR5KCk7CisgICAgICAgIGVudGl0eS5zZXRJZCgxKTsKKyAgICAgICAgZW50aXR5LnNldFRpdGxlKCJVcGRhdGVkIik7CisgICAgICAgIGVudGl0eS5zZXRTdGF0dXMoMSk7CisgICAgICAgIG1vY2tNdmMucGVyZm9ybShwb3N0KCIvdG9ycmVudC91cGRhdGUiKQorICAgICAgICAgICAgICAgICAgICAgICAgLmNvbnRlbnRUeXBlKE1lZGlhVHlwZS5BUFBMSUNBVElPTl9KU09OKQorICAgICAgICAgICAgICAgICAgICAgICAgLmNvbnRlbnQob2JqZWN0TWFwcGVyLndyaXRlVmFsdWVBc1N0cmluZyhlbnRpdHkpKSkKKyAgICAgICAgICAgICAgICAuYW5kRXhwZWN0KHN0YXR1cygpLmlzT2soKSk7CisgICAgICAgIHZlcmlmeSh0b3JyZW50U2VydmljZSwgdGltZXMoMSkpLnVwZGF0ZShlbnRpdHkpOworICAgIH0KKworICAgIEBUZXN0CisgICAgdm9pZCB0ZXN0RGVsZXRlKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG1vY2tNdmMucGVyZm9ybShwb3N0KCIvdG9ycmVudC9kZWxldGUiKQorICAgICAgICAgICAgICAgICAgICAgICAgLmNvbnRlbnRUeXBlKE1lZGlhVHlwZS5BUFBMSUNBVElPTl9KU09OKQorICAgICAgICAgICAgICAgICAgICAgICAgLmNvbnRlbnQob2JqZWN0TWFwcGVyLndyaXRlVmFsdWVBc1N0cmluZyhuZXcgSW50ZWdlcltdezEsIDJ9KSkpCisgICAgICAgICAgICAgICAgLmFuZEV4cGVjdChzdGF0dXMoKS5pc09rKCkpOworICAgICAgICB2ZXJpZnkodG9ycmVudFNlcnZpY2UsIHRpbWVzKDEpKS5yZW1vdmUoYW55KEludGVnZXJbXS5jbGFzcykpOworICAgIH0KKworICAgIEBUZXN0CisgICAgdm9pZCB0ZXN0VHJhY2tlcigpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICB3aGVuKHRyYWNrZXJVUkxTZXJ2aWNlLmdldEFubm91bmNlKGFueVN0cmluZygpKSkudGhlblJldHVybigiaHR0cDovL3RyYWNrZXIudGVzdC9hbm5vdW5jZSIpOworICAgICAgICB3aGVuKHVzZXJTZXJ2aWNlLmdldFBhc3NrZXkoTWF0aC50b0ludEV4YWN0KDApKSkudGhlblJldHVybigidGVzdC1wYXNza2V5Iik7CisKKyAgICAgICAgbW9ja012Yy5wZXJmb3JtKHBvc3QoIi90b3JyZW50L3RyYWNrZXIiKSkKKyAgICAgICAgICAgICAgICAuYW5kRXhwZWN0KGpzb25QYXRoKCIkLmRhdGEiKS52YWx1ZSgiaHR0cDovL3RyYWNrZXIudGVzdC9hbm5vdW5jZSIpKTsKKyAgICB9CisKKyAgICBAVGVzdAorICAgIHZvaWQgdGVzdERvd25sb2FkKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIFRvcnJlbnRFbnRpdHkgZW50aXR5ID0gbmV3IFRvcnJlbnRFbnRpdHkoKTsKKyAgICAgICAgZW50aXR5LnNldElkKDEpOworICAgICAgICBlbnRpdHkuc2V0RmlsZW5hbWUoInRlc3QudG9ycmVudCIpOworICAgICAgICB3aGVuKHRvcnJlbnRTZXJ2aWNlLmdldEJ5SWQoMSkpLnRoZW5SZXR1cm4oZW50aXR5KTsKKyAgICAgICAgd2hlbih0b3JyZW50U2VydmljZS5mZXRjaCgxLCBudWxsKSkudGhlblJldHVybigidG9ycmVudC1ieXRlcyIuZ2V0Qnl0ZXMoKSk7CisKKyAgICAgICAgbW9ja012Yy5wZXJmb3JtKGdldCgiL3RvcnJlbnQvZG93bmxvYWQiKQorICAgICAgICAgICAgICAgICAgICAgICAgLnBhcmFtKCJpZCIsICIxIikpCisgICAgICAgICAgICAgICAgLmFuZEV4cGVjdChzdGF0dXMoKS5pc09rKCkpOworICAgICAgICB2ZXJpZnkodG9ycmVudFNlcnZpY2UsIHRpbWVzKDEpKS5pbmNyZW1lbnRMZWVjaGVycygxKTsKKyAgICB9CisKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvdGVzdC9qYXZhL2NvbS9ydW95aS93ZWIvY29udHJvbGxlci9ib3VudHkvQm91bnR5Q29udHJvbGxlclRlc3QuamF2YSBiL3J1b3lpLWFkbWluL3NyYy90ZXN0L2phdmEvY29tL3J1b3lpL3dlYi9jb250cm9sbGVyL2JvdW50eS9Cb3VudHlDb250cm9sbGVyVGVzdC5qYXZhCmluZGV4IDEyMWQ1OWUuLjA0YzRiMTkgMTAwNjQ0Ci0tLSBhL3J1b3lpLWFkbWluL3NyYy90ZXN0L2phdmEvY29tL3J1b3lpL3dlYi9jb250cm9sbGVyL2JvdW50eS9Cb3VudHlDb250cm9sbGVyVGVzdC5qYXZhCisrKyBiL3J1b3lpLWFkbWluL3NyYy90ZXN0L2phdmEvY29tL3J1b3lpL3dlYi9jb250cm9sbGVyL2JvdW50eS9Cb3VudHlDb250cm9sbGVyVGVzdC5qYXZhCkBAIC0xNCw2ICsxNCw4IEBACiBpbXBvcnQgb3JnLm1vY2tpdG8uTW9jazsKIGltcG9ydCBvcmcubW9ja2l0by5qdW5pdC5qdXBpdGVyLk1vY2tpdG9FeHRlbnNpb247CiBpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay5iZWFucy5mYWN0b3J5LmFubm90YXRpb24uQXV0b3dpcmVkOworaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsuYm9vdC50ZXN0LmF1dG9jb25maWd1cmUud2ViLnNlcnZsZXQuQXV0b0NvbmZpZ3VyZU1vY2tNdmM7CitpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay5ib290LnRlc3QuYXV0b2NvbmZpZ3VyZS53ZWIuc2VydmxldC5XZWJNdmNUZXN0OwogaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsuaHR0cC5NZWRpYVR5cGU7CiBpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay5zZWN1cml0eS5hdXRoZW50aWNhdGlvbi5Vc2VybmFtZVBhc3N3b3JkQXV0aGVudGljYXRpb25Ub2tlbjsKIGltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLnNlY3VyaXR5LmNvcmUuY29udGV4dC5TZWN1cml0eUNvbnRleHRIb2xkZXI7CkBAIC0yOCw3ICszMCw2IEBACiBpbXBvcnQgc3RhdGljIG9yZy5tb2NraXRvLk1vY2tpdG8uKjsKIGltcG9ydCBzdGF0aWMgb3JnLnNwcmluZ2ZyYW1ld29yay50ZXN0LndlYi5zZXJ2bGV0LnJlcXVlc3QuTW9ja012Y1JlcXVlc3RCdWlsZGVycy4qOwogaW1wb3J0IHN0YXRpYyBvcmcuc3ByaW5nZnJhbWV3b3JrLnRlc3Qud2ViLnNlcnZsZXQucmVzdWx0Lk1vY2tNdmNSZXN1bHRNYXRjaGVycy4qOwotCiBARXh0ZW5kV2l0aChNb2NraXRvRXh0ZW5zaW9uLmNsYXNzKQogY2xhc3MgQm91bnR5Q29udHJvbGxlclRlc3QgewogCkBAIC00MywxNyArNDQsNyBAQAogCiAgICAgQEJlZm9yZUVhY2gKICAgICB2b2lkIHNldFVwKCkgewotICAgICAgICAvLyDliJvlu7rmqKHmi5/nmoTlronlhajkuIrkuIvmlocKLSAgICAgICAgU3lzVXNlciBzeXNVc2VyID0gbmV3IFN5c1VzZXIoKTsKLSAgICAgICAgc3lzVXNlci5zZXRVc2VySWQoMUwpOwotICAgICAgICBzeXNVc2VyLnNldFVzZXJOYW1lKCJ0ZXN0VXNlciIpOwotCi0gICAgICAgIExvZ2luVXNlciBsb2dpblVzZXIgPSBuZXcgTG9naW5Vc2VyKDFMLCAxTCwgc3lzVXNlciwgbmV3IEhhc2hTZXQ8PigpKTsKLQotICAgICAgICBVc2VybmFtZVBhc3N3b3JkQXV0aGVudGljYXRpb25Ub2tlbiBhdXRoVG9rZW4gPQotICAgICAgICAgICAgICAgIG5ldyBVc2VybmFtZVBhc3N3b3JkQXV0aGVudGljYXRpb25Ub2tlbihsb2dpblVzZXIsIG51bGwsIGxvZ2luVXNlci5nZXRBdXRob3JpdGllcygpKTsKLSAgICAgICAgU2VjdXJpdHlDb250ZXh0SG9sZGVyLmdldENvbnRleHQoKS5zZXRBdXRoZW50aWNhdGlvbihhdXRoVG9rZW4pOwotCisgICAgICAgIC8vIOenu+mZpOaJi+WKqOWIm+W7uueahFNlY3VyaXR5Q29udGV4dO+8jOS9v+eUqFNwcmluZyBTZWN1cml0eea1i+ivleaUr+aMgQogICAgICAgICBtb2NrTXZjID0gTW9ja012Y0J1aWxkZXJzLnN0YW5kYWxvbmVTZXR1cChib3VudHlDb250cm9sbGVyKS5idWlsZCgpOwogICAgICAgICBvYmplY3RNYXBwZXIgPSBuZXcgT2JqZWN0TWFwcGVyKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL3Rlc3QvamF2YS9jb20vcnVveWkvd2ViL2NvbnRyb2xsZXIvYm91bnR5L0JvdW50eVN1Ym1pc3Npb25Db250cm9sbGVyVGVzdC5qYXZhIGIvcnVveWktYWRtaW4vc3JjL3Rlc3QvamF2YS9jb20vcnVveWkvd2ViL2NvbnRyb2xsZXIvYm91bnR5L0JvdW50eVN1Ym1pc3Npb25Db250cm9sbGVyVGVzdC5qYXZhCmluZGV4IGI3ZjdmOTkuLjQ5YjQwMzQgMTAwNjQ0Ci0tLSBhL3J1b3lpLWFkbWluL3NyYy90ZXN0L2phdmEvY29tL3J1b3lpL3dlYi9jb250cm9sbGVyL2JvdW50eS9Cb3VudHlTdWJtaXNzaW9uQ29udHJvbGxlclRlc3QuamF2YQorKysgYi9ydW95aS1hZG1pbi9zcmMvdGVzdC9qYXZhL2NvbS9ydW95aS93ZWIvY29udHJvbGxlci9ib3VudHkvQm91bnR5U3VibWlzc2lvbkNvbnRyb2xsZXJUZXN0LmphdmEKQEAgLTE4LDYgKzE4LDcgQEAKIGltcG9ydCBvcmcubW9ja2l0by5Nb2NrOwogaW1wb3J0IG9yZy5tb2NraXRvLmp1bml0Lmp1cGl0ZXIuTW9ja2l0b0V4dGVuc2lvbjsKIGltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLmJlYW5zLmZhY3RvcnkuYW5ub3RhdGlvbi5BdXRvd2lyZWQ7CitpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay5ib290LnRlc3QuYXV0b2NvbmZpZ3VyZS53ZWIuc2VydmxldC5BdXRvQ29uZmlndXJlTW9ja012YzsKIGltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLmh0dHAuSHR0cEhlYWRlcnM7CiBpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay5odHRwLk1lZGlhVHlwZTsKIGltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLm1vY2sud2ViLk1vY2tNdWx0aXBhcnRGaWxlOwpkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL3Rlc3QvamF2YS9jb20vcnVveWkvd2ViL2NvbnRyb2xsZXIvcG9zdC9Qb3N0Q2VudGVyQ29udHJvbGxlclRlc3QuamF2YSBiL3J1b3lpLWFkbWluL3NyYy90ZXN0L2phdmEvY29tL3J1b3lpL3dlYi9jb250cm9sbGVyL3Bvc3QvUG9zdENlbnRlckNvbnRyb2xsZXJUZXN0LmphdmEKaW5kZXggYmExNDAwZC4uZTgzYzJhNSAxMDA2NDQKLS0tIGEvcnVveWktYWRtaW4vc3JjL3Rlc3QvamF2YS9jb20vcnVveWkvd2ViL2NvbnRyb2xsZXIvcG9zdC9Qb3N0Q2VudGVyQ29udHJvbGxlclRlc3QuamF2YQorKysgYi9ydW95aS1hZG1pbi9zcmMvdGVzdC9qYXZhL2NvbS9ydW95aS93ZWIvY29udHJvbGxlci9wb3N0L1Bvc3RDZW50ZXJDb250cm9sbGVyVGVzdC5qYXZhCkBAIC0xNCw2ICsxNCw3IEBACiBpbXBvcnQgb3JnLm1vY2tpdG8uTW9jazsKIGltcG9ydCBvcmcubW9ja2l0by5Nb2NrZWRTdGF0aWM7CiBpbXBvcnQgb3JnLm1vY2tpdG8uanVuaXQuanVwaXRlci5Nb2NraXRvRXh0ZW5zaW9uOworaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsuYm9vdC50ZXN0LmF1dG9jb25maWd1cmUud2ViLnNlcnZsZXQuQXV0b0NvbmZpZ3VyZU1vY2tNdmM7CiBpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay5odHRwLk1lZGlhVHlwZTsKIGltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLnNlY3VyaXR5LmF1dGhlbnRpY2F0aW9uLlVzZXJuYW1lUGFzc3dvcmRBdXRoZW50aWNhdGlvblRva2VuOwogaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsuc2VjdXJpdHkuY29yZS5jb250ZXh0LlNlY3VyaXR5Q29udGV4dEhvbGRlcjsKQEAgLTMwLDcgKzMxLDggQEAKIGltcG9ydCBzdGF0aWMgb3JnLm1vY2tpdG8uTW9ja2l0by4qOwogaW1wb3J0IHN0YXRpYyBvcmcuc3ByaW5nZnJhbWV3b3JrLnRlc3Qud2ViLnNlcnZsZXQucmVxdWVzdC5Nb2NrTXZjUmVxdWVzdEJ1aWxkZXJzLio7CiBpbXBvcnQgc3RhdGljIG9yZy5zcHJpbmdmcmFtZXdvcmsudGVzdC53ZWIuc2VydmxldC5yZXN1bHQuTW9ja012Y1Jlc3VsdE1hdGNoZXJzLio7Ci0KK2ltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLmJvb3QudGVzdC5jb250ZXh0LlNwcmluZ0Jvb3RUZXN0Q29udGV4dEJvb3RzdHJhcHBlcjsKK2ltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLnRlc3QuY29udGV4dC5Cb290c3RyYXBXaXRoOwogLyoqCiAgKiBQb3N0Q2VudGVyQ29udHJvbGxlciDljZXlhYPmtYvor5UKICAqIApkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL3Rlc3QvamF2YS9jb20vcnVveWkvd2ViL2NvbnRyb2xsZXIvcG9zdC9Qb3N0Q29tbWVudENvbnRyb2xsZXJUZXN0LmphdmEgYi9ydW95aS1hZG1pbi9zcmMvdGVzdC9qYXZhL2NvbS9ydW95aS93ZWIvY29udHJvbGxlci9wb3N0L1Bvc3RDb21tZW50Q29udHJvbGxlclRlc3QuamF2YQppbmRleCA4ZTgxZDVhLi4yODMzYzFlIDEwMDY0NAotLS0gYS9ydW95aS1hZG1pbi9zcmMvdGVzdC9qYXZhL2NvbS9ydW95aS93ZWIvY29udHJvbGxlci9wb3N0L1Bvc3RDb21tZW50Q29udHJvbGxlclRlc3QuamF2YQorKysgYi9ydW95aS1hZG1pbi9zcmMvdGVzdC9qYXZhL2NvbS9ydW95aS93ZWIvY29udHJvbGxlci9wb3N0L1Bvc3RDb21tZW50Q29udHJvbGxlclRlc3QuamF2YQpAQCAtMTMsNiArMTMsNyBAQAogaW1wb3J0IG9yZy5tb2NraXRvLkluamVjdE1vY2tzOwogaW1wb3J0IG9yZy5tb2NraXRvLk1vY2s7CiBpbXBvcnQgb3JnLm1vY2tpdG8uanVuaXQuanVwaXRlci5Nb2NraXRvRXh0ZW5zaW9uOworaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsuYm9vdC50ZXN0LmF1dG9jb25maWd1cmUud2ViLnNlcnZsZXQuQXV0b0NvbmZpZ3VyZU1vY2tNdmM7CiBpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay5odHRwLk1lZGlhVHlwZTsKIGltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLnNlY3VyaXR5LmF1dGhlbnRpY2F0aW9uLlVzZXJuYW1lUGFzc3dvcmRBdXRoZW50aWNhdGlvblRva2VuOwogaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsuc2VjdXJpdHkuY29yZS5jb250ZXh0LlNlY3VyaXR5Q29udGV4dEhvbGRlcjsKQEAgLTI3LDcgKzI4LDggQEAKIGltcG9ydCBzdGF0aWMgb3JnLm1vY2tpdG8uTW9ja2l0by4qOwogaW1wb3J0IHN0YXRpYyBvcmcuc3ByaW5nZnJhbWV3b3JrLnRlc3Qud2ViLnNlcnZsZXQucmVxdWVzdC5Nb2NrTXZjUmVxdWVzdEJ1aWxkZXJzLio7CiBpbXBvcnQgc3RhdGljIG9yZy5zcHJpbmdmcmFtZXdvcmsudGVzdC53ZWIuc2VydmxldC5yZXN1bHQuTW9ja012Y1Jlc3VsdE1hdGNoZXJzLio7Ci0KK2ltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLmJvb3QudGVzdC5jb250ZXh0LlNwcmluZ0Jvb3RUZXN0Q29udGV4dEJvb3RzdHJhcHBlcjsKK2ltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLnRlc3QuY29udGV4dC5Cb290c3RyYXBXaXRoOwogLyoqCiAgKiBQb3N0Q29tbWVudENvbnRyb2xsZXIg5Y2V5YWD5rWL6K+VCiAgKiAKZGlmZiAtLWdpdCBhL3J1b3lpLWFkbWluL3NyYy90ZXN0L2phdmEvY29tL3J1b3lpL3dlYi9jb250cm9sbGVyL3Bvc3QvUG9zdENvbnRyb2xsZXJUZXN0LmphdmEgYi9ydW95aS1hZG1pbi9zcmMvdGVzdC9qYXZhL2NvbS9ydW95aS93ZWIvY29udHJvbGxlci9wb3N0L1Bvc3RDb250cm9sbGVyVGVzdC5qYXZhCmluZGV4IDM0YjI5OTIuLmMwNzYyNjUgMTAwNjQ0Ci0tLSBhL3J1b3lpLWFkbWluL3NyYy90ZXN0L2phdmEvY29tL3J1b3lpL3dlYi9jb250cm9sbGVyL3Bvc3QvUG9zdENvbnRyb2xsZXJUZXN0LmphdmEKKysrIGIvcnVveWktYWRtaW4vc3JjL3Rlc3QvamF2YS9jb20vcnVveWkvd2ViL2NvbnRyb2xsZXIvcG9zdC9Qb3N0Q29udHJvbGxlclRlc3QuamF2YQpAQCAtMjAsNiArMjAsNyBAQAogaW1wb3J0IG9yZy5tb2NraXRvLkluamVjdE1vY2tzOwogaW1wb3J0IG9yZy5tb2NraXRvLk1vY2s7CiBpbXBvcnQgb3JnLm1vY2tpdG8uanVuaXQuanVwaXRlci5Nb2NraXRvRXh0ZW5zaW9uOworaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsuYm9vdC50ZXN0LmF1dG9jb25maWd1cmUud2ViLnNlcnZsZXQuQXV0b0NvbmZpZ3VyZU1vY2tNdmM7CiBpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay5odHRwLk1lZGlhVHlwZTsKIGltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLnNlY3VyaXR5LmF1dGhlbnRpY2F0aW9uLlVzZXJuYW1lUGFzc3dvcmRBdXRoZW50aWNhdGlvblRva2VuOwogaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsuc2VjdXJpdHkuY29yZS5jb250ZXh0LlNlY3VyaXR5Q29udGV4dEhvbGRlcjsKQEAgLTM0LDcgKzM1LDggQEAKIGltcG9ydCBzdGF0aWMgb3JnLm1vY2tpdG8uTW9ja2l0by4qOwogaW1wb3J0IHN0YXRpYyBvcmcuc3ByaW5nZnJhbWV3b3JrLnRlc3Qud2ViLnNlcnZsZXQucmVxdWVzdC5Nb2NrTXZjUmVxdWVzdEJ1aWxkZXJzLio7CiBpbXBvcnQgc3RhdGljIG9yZy5zcHJpbmdmcmFtZXdvcmsudGVzdC53ZWIuc2VydmxldC5yZXN1bHQuTW9ja012Y1Jlc3VsdE1hdGNoZXJzLio7Ci0KK2ltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLmJvb3QudGVzdC5jb250ZXh0LlNwcmluZ0Jvb3RUZXN0Q29udGV4dEJvb3RzdHJhcHBlcjsKK2ltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLnRlc3QuY29udGV4dC5Cb290c3RyYXBXaXRoOwogLyoqCiAgKiBQb3N0Q29udHJvbGxlciDljZXlhYPmtYvor5UKICAqIApkaWZmIC0tZ2l0IGEvcnVveWktYWRtaW4vc3JjL3Rlc3QvamF2YS9jb20vcnVveWkvd2ViL2NvbnRyb2xsZXIvcG9zdC9Qb3N0VGFnQ29udHJvbGxlclRlc3QuamF2YSBiL3J1b3lpLWFkbWluL3NyYy90ZXN0L2phdmEvY29tL3J1b3lpL3dlYi9jb250cm9sbGVyL3Bvc3QvUG9zdFRhZ0NvbnRyb2xsZXJUZXN0LmphdmEKaW5kZXggYTJmM2ZiYi4uODEwN2Y4NCAxMDA2NDQKLS0tIGEvcnVveWktYWRtaW4vc3JjL3Rlc3QvamF2YS9jb20vcnVveWkvd2ViL2NvbnRyb2xsZXIvcG9zdC9Qb3N0VGFnQ29udHJvbGxlclRlc3QuamF2YQorKysgYi9ydW95aS1hZG1pbi9zcmMvdGVzdC9qYXZhL2NvbS9ydW95aS93ZWIvY29udHJvbGxlci9wb3N0L1Bvc3RUYWdDb250cm9sbGVyVGVzdC5qYXZhCkBAIC0xMiw2ICsxMiw3IEBACiBpbXBvcnQgb3JnLm1vY2tpdG8uSW5qZWN0TW9ja3M7CiBpbXBvcnQgb3JnLm1vY2tpdG8uTW9jazsKIGltcG9ydCBvcmcubW9ja2l0by5qdW5pdC5qdXBpdGVyLk1vY2tpdG9FeHRlbnNpb247CitpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay5ib290LnRlc3QuYXV0b2NvbmZpZ3VyZS53ZWIuc2VydmxldC5BdXRvQ29uZmlndXJlTW9ja012YzsKIGltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLmh0dHAuTWVkaWFUeXBlOwogaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsuc2VjdXJpdHkuYXV0aGVudGljYXRpb24uVXNlcm5hbWVQYXNzd29yZEF1dGhlbnRpY2F0aW9uVG9rZW47CiBpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay5zZWN1cml0eS5jb3JlLmNvbnRleHQuU2VjdXJpdHlDb250ZXh0SG9sZGVyOwpAQCAtMjcsNyArMjgsOCBAQAogaW1wb3J0IHN0YXRpYyBvcmcuc3ByaW5nZnJhbWV3b3JrLnRlc3Qud2ViLnNlcnZsZXQucmVxdWVzdC5Nb2NrTXZjUmVxdWVzdEJ1aWxkZXJzLio7CiBpbXBvcnQgc3RhdGljIG9yZy5zcHJpbmdmcmFtZXdvcmsudGVzdC53ZWIuc2VydmxldC5yZXN1bHQuTW9ja012Y1Jlc3VsdE1hdGNoZXJzLio7CiBpbXBvcnQgc3RhdGljIG9yZy5tb2NraXRvLk1vY2tpdG8ubGVuaWVudDsKLQoraW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsuYm9vdC50ZXN0LmNvbnRleHQuU3ByaW5nQm9vdFRlc3RDb250ZXh0Qm9vdHN0cmFwcGVyOworaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsudGVzdC5jb250ZXh0LkJvb3RzdHJhcFdpdGg7CiAvKioKICAqIFBvc3RUYWdDb250cm9sbGVyIOWNleWFg+a1i+ivlQogICogCmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi9zcmMvdGVzdC9yZXNvdXJjZXMvbW9ja2l0by1leHRlbnNpb25zL29yZy5tb2NraXRvLnBsdWdpbnMuTW9ja01ha2VyIGIvcnVveWktYWRtaW4vc3JjL3Rlc3QvcmVzb3VyY2VzL21vY2tpdG8tZXh0ZW5zaW9ucy9vcmcubW9ja2l0by5wbHVnaW5zLk1vY2tNYWtlcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZDhmZTgzCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vc3JjL3Rlc3QvcmVzb3VyY2VzL21vY2tpdG8tZXh0ZW5zaW9ucy9vcmcubW9ja2l0by5wbHVnaW5zLk1vY2tNYWtlcgpAQCAtMCwwICsxIEBACitvcmcubW9ja2l0by5pbnRlcm5hbC5jcmVhdGlvbi5ieXRlYnVkZHkuU3ViY2xhc3NCeXRlQnVkZHlNb2NrTWFrZXIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9ydW95aS1hZG1pbi91cGxvYWRzL3Rlc3QuanBnIGIvcnVveWktYWRtaW4vdXBsb2Fkcy90ZXN0LmpwZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOGNmNjEwCi0tLSAvZGV2L251bGwKKysrIGIvcnVveWktYWRtaW4vdXBsb2Fkcy90ZXN0LmpwZwpAQCAtMCwwICsxIEBACit0ZXN0IGNvbnRlbnQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9ydW95aS1jb21tb24vc3JjL21haW4vamF2YS9jb20vcnVveWkvY29tbW9uL2NvcmUvZG9tYWluL21vZGVsL0xvZ2luVXNlci5qYXZhIGIvcnVveWktY29tbW9uL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL2NvbW1vbi9jb3JlL2RvbWFpbi9tb2RlbC9Mb2dpblVzZXIuamF2YQppbmRleCA2NzBlNmIzLi5kODQ5NjcwIDEwMDY0NAotLS0gYS9ydW95aS1jb21tb24vc3JjL21haW4vamF2YS9jb20vcnVveWkvY29tbW9uL2NvcmUvZG9tYWluL21vZGVsL0xvZ2luVXNlci5qYXZhCisrKyBiL3J1b3lpLWNvbW1vbi9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS9jb21tb24vY29yZS9kb21haW4vbW9kZWwvTG9naW5Vc2VyLmphdmEKQEAgLTg5LDYgKzg5LDE0IEBACiAgICAgICAgIHRoaXMucGVybWlzc2lvbnMgPSBwZXJtaXNzaW9uczsKICAgICB9CiAKKyAgICBwdWJsaWMgTG9naW5Vc2VyKGludCB1c2VySWQsIGludCBkZXB0SWQsIFN5c1VzZXIgdXNlciwgU2V0PFN0cmluZz4gcGVybWlzc2lvbnMpCisgICAgeworICAgICAgICB0aGlzLnVzZXJJZCA9KGxvbmcpIHVzZXJJZDsKKyAgICAgICAgdGhpcy5kZXB0SWQgPSAobG9uZylkZXB0SWQ7CisgICAgICAgIHRoaXMudXNlciA9IHVzZXI7CisgICAgICAgIHRoaXMucGVybWlzc2lvbnMgPSBwZXJtaXNzaW9uczsKKyAgICB9CisKICAgICBwdWJsaWMgTG9uZyBnZXRVc2VySWQoKQogICAgIHsKICAgICAgICAgcmV0dXJuIHVzZXJJZDsKZGlmZiAtLWdpdCBhL3J1b3lpLWZyYW1ld29yay9wb20ueG1sIGIvcnVveWktZnJhbWV3b3JrL3BvbS54bWwKaW5kZXggMGYyMTU3My4uOTAwN2I5YiAxMDA2NDQKLS0tIGEvcnVveWktZnJhbWV3b3JrL3BvbS54bWwKKysrIGIvcnVveWktZnJhbWV3b3JrL3BvbS54bWwKQEAgLTU4LDcgKzU4LDEyIEBACiAgICAgICAgICAgICA8Z3JvdXBJZD5jb20ucnVveWk8L2dyb3VwSWQ+CiAgICAgICAgICAgICA8YXJ0aWZhY3RJZD5ydW95aS1zeXN0ZW08L2FydGlmYWN0SWQ+CiAgICAgICAgIDwvZGVwZW5kZW5jeT4KLQorICAgICAgICA8IS0tIFNhLVRva2VuIOadg+mZkOiupOivge+8jOWcqOe6v+aWh+aho++8mmh0dHBzOi8vc2EtdG9rZW4uY2MgLS0+CisgICAgICAgIDxkZXBlbmRlbmN5PgorICAgICAgICAgICAgPGdyb3VwSWQ+Y24uZGV2MzM8L2dyb3VwSWQ+CisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5zYS10b2tlbi1zcHJpbmctYm9vdDMtc3RhcnRlcjwvYXJ0aWZhY3RJZD4KKyAgICAgICAgICAgIDx2ZXJzaW9uPjEuMzguMDwvdmVyc2lvbj4KKyAgICAgICAgPC9kZXBlbmRlbmN5PgogICAgIDwvZGVwZW5kZW5jaWVzPgogCiAgICAgPGJ1aWxkPgpkaWZmIC0tZ2l0IGEvcnVveWktZnJhbWV3b3JrL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL2ZyYW1ld29yay9jb25maWcvTXlCYXRpc0NvbmZpZy5qYXZhIGIvcnVveWktZnJhbWV3b3JrL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL2ZyYW1ld29yay9jb25maWcvTXlCYXRpc0NvbmZpZy5qYXZhCmluZGV4IDA1N2M5NDEuLjNiZDQ1ZDkgMTAwNjQ0Ci0tLSBhL3J1b3lpLWZyYW1ld29yay9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS9mcmFtZXdvcmsvY29uZmlnL015QmF0aXNDb25maWcuamF2YQorKysgYi9ydW95aS1mcmFtZXdvcmsvc3JjL21haW4vamF2YS9jb20vcnVveWkvZnJhbWV3b3JrL2NvbmZpZy9NeUJhdGlzQ29uZmlnLmphdmEKQEAgLTMyLDEwMSArMzIsMTAyIEBACiBAQ29uZmlndXJhdGlvbgogcHVibGljIGNsYXNzIE15QmF0aXNDb25maWcKIHsKLSAgICBAQXV0b3dpcmVkCi0gICAgcHJpdmF0ZSBFbnZpcm9ubWVudCBlbnY7Ci0KLSAgICBzdGF0aWMgZmluYWwgU3RyaW5nIERFRkFVTFRfUkVTT1VSQ0VfUEFUVEVSTiA9ICIqKi8qLmNsYXNzIjsKLQotICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHNldFR5cGVBbGlhc2VzUGFja2FnZShTdHJpbmcgdHlwZUFsaWFzZXNQYWNrYWdlKQotICAgIHsKLSAgICAgICAgUmVzb3VyY2VQYXR0ZXJuUmVzb2x2ZXIgcmVzb2x2ZXIgPSAoUmVzb3VyY2VQYXR0ZXJuUmVzb2x2ZXIpIG5ldyBQYXRoTWF0Y2hpbmdSZXNvdXJjZVBhdHRlcm5SZXNvbHZlcigpOwotICAgICAgICBNZXRhZGF0YVJlYWRlckZhY3RvcnkgbWV0YWRhdGFSZWFkZXJGYWN0b3J5ID0gbmV3IENhY2hpbmdNZXRhZGF0YVJlYWRlckZhY3RvcnkocmVzb2x2ZXIpOwotICAgICAgICBMaXN0PFN0cmluZz4gYWxsUmVzdWx0ID0gbmV3IEFycmF5TGlzdDxTdHJpbmc+KCk7Ci0gICAgICAgIHRyeQotICAgICAgICB7Ci0gICAgICAgICAgICBmb3IgKFN0cmluZyBhbGlhc2VzUGFja2FnZSA6IHR5cGVBbGlhc2VzUGFja2FnZS5zcGxpdCgiLCIpKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIExpc3Q8U3RyaW5nPiByZXN1bHQgPSBuZXcgQXJyYXlMaXN0PFN0cmluZz4oKTsKLSAgICAgICAgICAgICAgICBhbGlhc2VzUGFja2FnZSA9IFJlc291cmNlUGF0dGVyblJlc29sdmVyLkNMQVNTUEFUSF9BTExfVVJMX1BSRUZJWAotICAgICAgICAgICAgICAgICAgICAgICAgKyBDbGFzc1V0aWxzLmNvbnZlcnRDbGFzc05hbWVUb1Jlc291cmNlUGF0aChhbGlhc2VzUGFja2FnZS50cmltKCkpICsgIi8iICsgREVGQVVMVF9SRVNPVVJDRV9QQVRURVJOOwotICAgICAgICAgICAgICAgIFJlc291cmNlW10gcmVzb3VyY2VzID0gcmVzb2x2ZXIuZ2V0UmVzb3VyY2VzKGFsaWFzZXNQYWNrYWdlKTsKLSAgICAgICAgICAgICAgICBpZiAocmVzb3VyY2VzICE9IG51bGwgJiYgcmVzb3VyY2VzLmxlbmd0aCA+IDApCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBNZXRhZGF0YVJlYWRlciBtZXRhZGF0YVJlYWRlciA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgIGZvciAoUmVzb3VyY2UgcmVzb3VyY2UgOiByZXNvdXJjZXMpCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXNvdXJjZS5pc1JlYWRhYmxlKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGFSZWFkZXIgPSBtZXRhZGF0YVJlYWRlckZhY3RvcnkuZ2V0TWV0YWRhdGFSZWFkZXIocmVzb3VyY2UpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFkZChDbGFzcy5mb3JOYW1lKG1ldGFkYXRhUmVhZGVyLmdldENsYXNzTWV0YWRhdGEoKS5nZXRDbGFzc05hbWUoKSkuZ2V0UGFja2FnZSgpLmdldE5hbWUoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoIChDbGFzc05vdEZvdW5kRXhjZXB0aW9uIGUpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAocmVzdWx0LnNpemUoKSA+IDApCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBIYXNoU2V0PFN0cmluZz4gaGFzaFJlc3VsdCA9IG5ldyBIYXNoU2V0PFN0cmluZz4ocmVzdWx0KTsKLSAgICAgICAgICAgICAgICAgICAgYWxsUmVzdWx0LmFkZEFsbChoYXNoUmVzdWx0KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoYWxsUmVzdWx0LnNpemUoKSA+IDApCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdHlwZUFsaWFzZXNQYWNrYWdlID0gU3RyaW5nLmpvaW4oIiwiLCAoU3RyaW5nW10pIGFsbFJlc3VsdC50b0FycmF5KG5ldyBTdHJpbmdbMF0pKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigibXliYXRpcyB0eXBlQWxpYXNlc1BhY2thZ2Ug6Lev5b6E5omr5o+P6ZSZ6K+vLOWPguaVsHR5cGVBbGlhc2VzUGFja2FnZToiICsgdHlwZUFsaWFzZXNQYWNrYWdlICsgIuacquaJvuWIsOS7u+S9leWMhSIpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGNhdGNoIChJT0V4Y2VwdGlvbiBlKQotICAgICAgICB7Ci0gICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0eXBlQWxpYXNlc1BhY2thZ2U7Ci0gICAgfQotCi0gICAgcHVibGljIFJlc291cmNlW10gcmVzb2x2ZU1hcHBlckxvY2F0aW9ucyhTdHJpbmdbXSBtYXBwZXJMb2NhdGlvbnMpCi0gICAgewotICAgICAgICBSZXNvdXJjZVBhdHRlcm5SZXNvbHZlciByZXNvdXJjZVJlc29sdmVyID0gbmV3IFBhdGhNYXRjaGluZ1Jlc291cmNlUGF0dGVyblJlc29sdmVyKCk7Ci0gICAgICAgIExpc3Q8UmVzb3VyY2U+IHJlc291cmNlcyA9IG5ldyBBcnJheUxpc3Q8UmVzb3VyY2U+KCk7Ci0gICAgICAgIGlmIChtYXBwZXJMb2NhdGlvbnMgIT0gbnVsbCkKLSAgICAgICAgewotICAgICAgICAgICAgZm9yIChTdHJpbmcgbWFwcGVyTG9jYXRpb24gOiBtYXBwZXJMb2NhdGlvbnMpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdHJ5Ci0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVtdIG1hcHBlcnMgPSByZXNvdXJjZVJlc29sdmVyLmdldFJlc291cmNlcyhtYXBwZXJMb2NhdGlvbik7Ci0gICAgICAgICAgICAgICAgICAgIHJlc291cmNlcy5hZGRBbGwoQXJyYXlzLmFzTGlzdChtYXBwZXJzKSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGNhdGNoIChJT0V4Y2VwdGlvbiBlKQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gaWdub3JlCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIHJldHVybiByZXNvdXJjZXMudG9BcnJheShuZXcgUmVzb3VyY2VbcmVzb3VyY2VzLnNpemUoKV0pOwotICAgIH0KLQotICAgIEBCZWFuCi0gICAgcHVibGljIFNxbFNlc3Npb25GYWN0b3J5IHNxbFNlc3Npb25GYWN0b3J5KERhdGFTb3VyY2UgZGF0YVNvdXJjZSkgdGhyb3dzIEV4Y2VwdGlvbgotICAgIHsKLSAgICAgICAgU3RyaW5nIHR5cGVBbGlhc2VzUGFja2FnZSA9IGVudi5nZXRQcm9wZXJ0eSgibXliYXRpcy50eXBlQWxpYXNlc1BhY2thZ2UiKTsKLSAgICAgICAgU3RyaW5nIG1hcHBlckxvY2F0aW9ucyA9IGVudi5nZXRQcm9wZXJ0eSgibXliYXRpcy5tYXBwZXJMb2NhdGlvbnMiKTsKLSAgICAgICAgU3RyaW5nIGNvbmZpZ0xvY2F0aW9uID0gZW52LmdldFByb3BlcnR5KCJteWJhdGlzLmNvbmZpZ0xvY2F0aW9uIik7Ci0gICAgICAgIHR5cGVBbGlhc2VzUGFja2FnZSA9IHNldFR5cGVBbGlhc2VzUGFja2FnZSh0eXBlQWxpYXNlc1BhY2thZ2UpOwotICAgICAgICBWRlMuYWRkSW1wbENsYXNzKFNwcmluZ0Jvb3RWRlMuY2xhc3MpOwotCi0gICAgICAgIGZpbmFsIFNxbFNlc3Npb25GYWN0b3J5QmVhbiBzZXNzaW9uRmFjdG9yeSA9IG5ldyBTcWxTZXNzaW9uRmFjdG9yeUJlYW4oKTsKLSAgICAgICAgc2Vzc2lvbkZhY3Rvcnkuc2V0RGF0YVNvdXJjZShkYXRhU291cmNlKTsKLSAgICAgICAgc2Vzc2lvbkZhY3Rvcnkuc2V0VHlwZUFsaWFzZXNQYWNrYWdlKHR5cGVBbGlhc2VzUGFja2FnZSk7Ci0gICAgICAgIHNlc3Npb25GYWN0b3J5LnNldE1hcHBlckxvY2F0aW9ucyhyZXNvbHZlTWFwcGVyTG9jYXRpb25zKFN0cmluZ1V0aWxzLnNwbGl0KG1hcHBlckxvY2F0aW9ucywgIiwiKSkpOwotICAgICAgICBzZXNzaW9uRmFjdG9yeS5zZXRDb25maWdMb2NhdGlvbihuZXcgRGVmYXVsdFJlc291cmNlTG9hZGVyKCkuZ2V0UmVzb3VyY2UoY29uZmlnTG9jYXRpb24pKTsKLSAgICAgICAgcmV0dXJuIHNlc3Npb25GYWN0b3J5LmdldE9iamVjdCgpOwotICAgIH0KKyAgICAvLyDmjaLmiJBteWJhdGlzLXBsdXPkuobkvJroh6rliqjliqDovb0KKy8vICAgIEBBdXRvd2lyZWQKKy8vICAgIHByaXZhdGUgRW52aXJvbm1lbnQgZW52OworLy8KKy8vICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgREVGQVVMVF9SRVNPVVJDRV9QQVRURVJOID0gIioqLyouY2xhc3MiOworLy8KKy8vICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHNldFR5cGVBbGlhc2VzUGFja2FnZShTdHJpbmcgdHlwZUFsaWFzZXNQYWNrYWdlKQorLy8gICAgeworLy8gICAgICAgIFJlc291cmNlUGF0dGVyblJlc29sdmVyIHJlc29sdmVyID0gKFJlc291cmNlUGF0dGVyblJlc29sdmVyKSBuZXcgUGF0aE1hdGNoaW5nUmVzb3VyY2VQYXR0ZXJuUmVzb2x2ZXIoKTsKKy8vICAgICAgICBNZXRhZGF0YVJlYWRlckZhY3RvcnkgbWV0YWRhdGFSZWFkZXJGYWN0b3J5ID0gbmV3IENhY2hpbmdNZXRhZGF0YVJlYWRlckZhY3RvcnkocmVzb2x2ZXIpOworLy8gICAgICAgIExpc3Q8U3RyaW5nPiBhbGxSZXN1bHQgPSBuZXcgQXJyYXlMaXN0PFN0cmluZz4oKTsKKy8vICAgICAgICB0cnkKKy8vICAgICAgICB7CisvLyAgICAgICAgICAgIGZvciAoU3RyaW5nIGFsaWFzZXNQYWNrYWdlIDogdHlwZUFsaWFzZXNQYWNrYWdlLnNwbGl0KCIsIikpCisvLyAgICAgICAgICAgIHsKKy8vICAgICAgICAgICAgICAgIExpc3Q8U3RyaW5nPiByZXN1bHQgPSBuZXcgQXJyYXlMaXN0PFN0cmluZz4oKTsKKy8vICAgICAgICAgICAgICAgIGFsaWFzZXNQYWNrYWdlID0gUmVzb3VyY2VQYXR0ZXJuUmVzb2x2ZXIuQ0xBU1NQQVRIX0FMTF9VUkxfUFJFRklYCisvLyAgICAgICAgICAgICAgICAgICAgICAgICsgQ2xhc3NVdGlscy5jb252ZXJ0Q2xhc3NOYW1lVG9SZXNvdXJjZVBhdGgoYWxpYXNlc1BhY2thZ2UudHJpbSgpKSArICIvIiArIERFRkFVTFRfUkVTT1VSQ0VfUEFUVEVSTjsKKy8vICAgICAgICAgICAgICAgIFJlc291cmNlW10gcmVzb3VyY2VzID0gcmVzb2x2ZXIuZ2V0UmVzb3VyY2VzKGFsaWFzZXNQYWNrYWdlKTsKKy8vICAgICAgICAgICAgICAgIGlmIChyZXNvdXJjZXMgIT0gbnVsbCAmJiByZXNvdXJjZXMubGVuZ3RoID4gMCkKKy8vICAgICAgICAgICAgICAgIHsKKy8vICAgICAgICAgICAgICAgICAgICBNZXRhZGF0YVJlYWRlciBtZXRhZGF0YVJlYWRlciA9IG51bGw7CisvLyAgICAgICAgICAgICAgICAgICAgZm9yIChSZXNvdXJjZSByZXNvdXJjZSA6IHJlc291cmNlcykKKy8vICAgICAgICAgICAgICAgICAgICB7CisvLyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXNvdXJjZS5pc1JlYWRhYmxlKCkpCisvLyAgICAgICAgICAgICAgICAgICAgICAgIHsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhUmVhZGVyID0gbWV0YWRhdGFSZWFkZXJGYWN0b3J5LmdldE1ldGFkYXRhUmVhZGVyKHJlc291cmNlKTsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeQorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgeworLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hZGQoQ2xhc3MuZm9yTmFtZShtZXRhZGF0YVJlYWRlci5nZXRDbGFzc01ldGFkYXRhKCkuZ2V0Q2xhc3NOYW1lKCkpLmdldFBhY2thZ2UoKS5nZXROYW1lKCkpOworLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKENsYXNzTm90Rm91bmRFeGNlcHRpb24gZSkKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorLy8gICAgICAgICAgICAgICAgICAgICAgICB9CisvLyAgICAgICAgICAgICAgICAgICAgfQorLy8gICAgICAgICAgICAgICAgfQorLy8gICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5zaXplKCkgPiAwKQorLy8gICAgICAgICAgICAgICAgeworLy8gICAgICAgICAgICAgICAgICAgIEhhc2hTZXQ8U3RyaW5nPiBoYXNoUmVzdWx0ID0gbmV3IEhhc2hTZXQ8U3RyaW5nPihyZXN1bHQpOworLy8gICAgICAgICAgICAgICAgICAgIGFsbFJlc3VsdC5hZGRBbGwoaGFzaFJlc3VsdCk7CisvLyAgICAgICAgICAgICAgICB9CisvLyAgICAgICAgICAgIH0KKy8vICAgICAgICAgICAgaWYgKGFsbFJlc3VsdC5zaXplKCkgPiAwKQorLy8gICAgICAgICAgICB7CisvLyAgICAgICAgICAgICAgICB0eXBlQWxpYXNlc1BhY2thZ2UgPSBTdHJpbmcuam9pbigiLCIsIChTdHJpbmdbXSkgYWxsUmVzdWx0LnRvQXJyYXkobmV3IFN0cmluZ1swXSkpOworLy8gICAgICAgICAgICB9CisvLyAgICAgICAgICAgIGVsc2UKKy8vICAgICAgICAgICAgeworLy8gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oIm15YmF0aXMgdHlwZUFsaWFzZXNQYWNrYWdlIOi3r+W+hOaJq+aPj+mUmeivryzlj4LmlbB0eXBlQWxpYXNlc1BhY2thZ2U6IiArIHR5cGVBbGlhc2VzUGFja2FnZSArICLmnKrmib7liLDku7vkvZXljIUiKTsKKy8vICAgICAgICAgICAgfQorLy8gICAgICAgIH0KKy8vICAgICAgICBjYXRjaCAoSU9FeGNlcHRpb24gZSkKKy8vICAgICAgICB7CisvLyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisvLyAgICAgICAgfQorLy8gICAgICAgIHJldHVybiB0eXBlQWxpYXNlc1BhY2thZ2U7CisvLyAgICB9CisvLworLy8gICAgcHVibGljIFJlc291cmNlW10gcmVzb2x2ZU1hcHBlckxvY2F0aW9ucyhTdHJpbmdbXSBtYXBwZXJMb2NhdGlvbnMpCisvLyAgICB7CisvLyAgICAgICAgUmVzb3VyY2VQYXR0ZXJuUmVzb2x2ZXIgcmVzb3VyY2VSZXNvbHZlciA9IG5ldyBQYXRoTWF0Y2hpbmdSZXNvdXJjZVBhdHRlcm5SZXNvbHZlcigpOworLy8gICAgICAgIExpc3Q8UmVzb3VyY2U+IHJlc291cmNlcyA9IG5ldyBBcnJheUxpc3Q8UmVzb3VyY2U+KCk7CisvLyAgICAgICAgaWYgKG1hcHBlckxvY2F0aW9ucyAhPSBudWxsKQorLy8gICAgICAgIHsKKy8vICAgICAgICAgICAgZm9yIChTdHJpbmcgbWFwcGVyTG9jYXRpb24gOiBtYXBwZXJMb2NhdGlvbnMpCisvLyAgICAgICAgICAgIHsKKy8vICAgICAgICAgICAgICAgIHRyeQorLy8gICAgICAgICAgICAgICAgeworLy8gICAgICAgICAgICAgICAgICAgIFJlc291cmNlW10gbWFwcGVycyA9IHJlc291cmNlUmVzb2x2ZXIuZ2V0UmVzb3VyY2VzKG1hcHBlckxvY2F0aW9uKTsKKy8vICAgICAgICAgICAgICAgICAgICByZXNvdXJjZXMuYWRkQWxsKEFycmF5cy5hc0xpc3QobWFwcGVycykpOworLy8gICAgICAgICAgICAgICAgfQorLy8gICAgICAgICAgICAgICAgY2F0Y2ggKElPRXhjZXB0aW9uIGUpCisvLyAgICAgICAgICAgICAgICB7CisvLyAgICAgICAgICAgICAgICAgICAgLy8gaWdub3JlCisvLyAgICAgICAgICAgICAgICB9CisvLyAgICAgICAgICAgIH0KKy8vICAgICAgICB9CisvLyAgICAgICAgcmV0dXJuIHJlc291cmNlcy50b0FycmF5KG5ldyBSZXNvdXJjZVtyZXNvdXJjZXMuc2l6ZSgpXSk7CisvLyAgICB9CisvLworLy8gICAgQEJlYW4KKy8vICAgIHB1YmxpYyBTcWxTZXNzaW9uRmFjdG9yeSBzcWxTZXNzaW9uRmFjdG9yeShEYXRhU291cmNlIGRhdGFTb3VyY2UpIHRocm93cyBFeGNlcHRpb24KKy8vICAgIHsKKy8vICAgICAgICBTdHJpbmcgdHlwZUFsaWFzZXNQYWNrYWdlID0gZW52LmdldFByb3BlcnR5KCJteWJhdGlzLXBsdXMudHlwZUFsaWFzZXNQYWNrYWdlIik7CisvLyAgICAgICAgU3RyaW5nIG1hcHBlckxvY2F0aW9ucyA9IGVudi5nZXRQcm9wZXJ0eSgibXliYXRpcy1wbHVzLm1hcHBlckxvY2F0aW9ucyIpOworLy8gICAgICAgIFN0cmluZyBjb25maWdMb2NhdGlvbiA9IGVudi5nZXRQcm9wZXJ0eSgibXliYXRpcy1wbHVzLmNvbmZpZ0xvY2F0aW9uIik7CisvLyAgICAgICAgdHlwZUFsaWFzZXNQYWNrYWdlID0gc2V0VHlwZUFsaWFzZXNQYWNrYWdlKHR5cGVBbGlhc2VzUGFja2FnZSk7CisvLyAgICAgICAgVkZTLmFkZEltcGxDbGFzcyhTcHJpbmdCb290VkZTLmNsYXNzKTsKKy8vCisvLyAgICAgICAgZmluYWwgU3FsU2Vzc2lvbkZhY3RvcnlCZWFuIHNlc3Npb25GYWN0b3J5ID0gbmV3IFNxbFNlc3Npb25GYWN0b3J5QmVhbigpOworLy8gICAgICAgIHNlc3Npb25GYWN0b3J5LnNldERhdGFTb3VyY2UoZGF0YVNvdXJjZSk7CisvLyAgICAgICAgc2Vzc2lvbkZhY3Rvcnkuc2V0VHlwZUFsaWFzZXNQYWNrYWdlKHR5cGVBbGlhc2VzUGFja2FnZSk7CisvLyAgICAgICAgc2Vzc2lvbkZhY3Rvcnkuc2V0TWFwcGVyTG9jYXRpb25zKHJlc29sdmVNYXBwZXJMb2NhdGlvbnMoU3RyaW5nVXRpbHMuc3BsaXQobWFwcGVyTG9jYXRpb25zLCAiLCIpKSk7CisvLyAgICAgICAgc2Vzc2lvbkZhY3Rvcnkuc2V0Q29uZmlnTG9jYXRpb24obmV3IERlZmF1bHRSZXNvdXJjZUxvYWRlcigpLmdldFJlc291cmNlKGNvbmZpZ0xvY2F0aW9uKSk7CisvLyAgICAgICAgcmV0dXJuIHNlc3Npb25GYWN0b3J5LmdldE9iamVjdCgpOworLy8gICAgfQogfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3J1b3lpLWZyYW1ld29yay9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS9mcmFtZXdvcmsvY29uZmlnL1NlY3VyaXR5Q29uZmlnLmphdmEgYi9ydW95aS1mcmFtZXdvcmsvc3JjL21haW4vamF2YS9jb20vcnVveWkvZnJhbWV3b3JrL2NvbmZpZy9TZWN1cml0eUNvbmZpZy5qYXZhCmluZGV4IGUwYmUyMzQuLjUyMzA3NDYgMTAwNjQ0Ci0tLSBhL3J1b3lpLWZyYW1ld29yay9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS9mcmFtZXdvcmsvY29uZmlnL1NlY3VyaXR5Q29uZmlnLmphdmEKKysrIGIvcnVveWktZnJhbWV3b3JrL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL2ZyYW1ld29yay9jb25maWcvU2VjdXJpdHlDb25maWcuamF2YQpAQCAtMTExLDcgKzExMSw3IEBACiAgICAgICAgICAgICAuYXV0aG9yaXplSHR0cFJlcXVlc3RzKChyZXF1ZXN0cykgLT4gewogICAgICAgICAgICAgICAgIHBlcm1pdEFsbFVybC5nZXRVcmxzKCkuZm9yRWFjaCh1cmwgLT4gcmVxdWVzdHMucmVxdWVzdE1hdGNoZXJzKHVybCkucGVybWl0QWxsKCkpOwogICAgICAgICAgICAgICAgIC8vIOWvueS6jueZu+W9lWxvZ2luIOazqOWGjHJlZ2lzdGVyIOmqjOivgeeggWNhcHRjaGFJbWFnZSDlhYHorrjljL/lkI3orr/pl64KLSAgICAgICAgICAgICAgICByZXF1ZXN0cy5yZXF1ZXN0TWF0Y2hlcnMoIi9sb2dpbiIsICIvcmVnaXN0ZXIiLCAiL2NhcHRjaGFJbWFnZSIsInRlc3REb3dubG9hZFRvcnJlbnQiKS5wZXJtaXRBbGwoKQorICAgICAgICAgICAgICAgIHJlcXVlc3RzLnJlcXVlc3RNYXRjaGVycygiL2xvZ2luIiwgIi9yZWdpc3RlciIsICIvY2FwdGNoYUltYWdlIiwidGVzdERvd25sb2FkVG9ycmVudCIsIi9hbm5vdW5jZSIpLnBlcm1pdEFsbCgpCiAgICAgICAgICAgICAgICAgICAgIC8vIOmdmeaAgei1hOa6kO+8jOWPr+WMv+WQjeiuv+mXrgogICAgICAgICAgICAgICAgICAgICAucmVxdWVzdE1hdGNoZXJzKEh0dHBNZXRob2QuR0VULCAiLyIsICIvKi5odG1sIiwgIi8qKi5odG1sIiwgIi8qKi5jc3MiLCAiLyoqLmpzIiwgIi9wcm9maWxlLyoqIikucGVybWl0QWxsKCkKICAgICAgICAgICAgICAgICAgICAgLnJlcXVlc3RNYXRjaGVycygiL3N3YWdnZXItdWkuaHRtbCIsICIvdjMvYXBpLWRvY3MvKioiLCAiL3N3YWdnZXItdWkvKioiLCAiL2RydWlkLyoqIikucGVybWl0QWxsKCkKZGlmZiAtLWdpdCBhL3J1b3lpLWZyYW1ld29yay9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS9mcmFtZXdvcmsvd2ViL3NlcnZpY2UvU3lzTG9naW5TZXJ2aWNlLmphdmEgYi9ydW95aS1mcmFtZXdvcmsvc3JjL21haW4vamF2YS9jb20vcnVveWkvZnJhbWV3b3JrL3dlYi9zZXJ2aWNlL1N5c0xvZ2luU2VydmljZS5qYXZhCmluZGV4IDU1NzVlNzcuLmEwYTllMTggMTAwNjQ0Ci0tLSBhL3J1b3lpLWZyYW1ld29yay9zcmMvbWFpbi9qYXZhL2NvbS9ydW95aS9mcmFtZXdvcmsvd2ViL3NlcnZpY2UvU3lzTG9naW5TZXJ2aWNlLmphdmEKKysrIGIvcnVveWktZnJhbWV3b3JrL3NyYy9tYWluL2phdmEvY29tL3J1b3lpL2ZyYW1ld29yay93ZWIvc2VydmljZS9TeXNMb2dpblNlcnZpY2UuamF2YQpAQCAtMiw3ICsyLDYgQEAKIAogaW1wb3J0IGpha2FydGEuYW5ub3RhdGlvbi5SZXNvdXJjZTsKIGltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLmJlYW5zLmZhY3RvcnkuYW5ub3RhdGlvbi5BdXRvd2lyZWQ7Ci1pbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay5iZWFucy5mYWN0b3J5LmFubm90YXRpb24uVmFsdWU7CiBpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay5zZWN1cml0eS5hdXRoZW50aWNhdGlvbi5BdXRoZW50aWNhdGlvbk1hbmFnZXI7CiBpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay5zZWN1cml0eS5hdXRoZW50aWNhdGlvbi5CYWRDcmVkZW50aWFsc0V4Y2VwdGlvbjsKIGltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLnNlY3VyaXR5LmF1dGhlbnRpY2F0aW9uLlVzZXJuYW1lUGFzc3dvcmRBdXRoZW50aWNhdGlvblRva2VuOwpAQCAtMTAzLDcgKzEwMiwxMCBAQAogICAgICAgICBBc3luY01hbmFnZXIubWUoKS5leGVjdXRlKEFzeW5jRmFjdG9yeS5yZWNvcmRMb2dpbmluZm9yKHVzZXJuYW1lLCBDb25zdGFudHMuTE9HSU5fU1VDQ0VTUywgTWVzc2FnZVV0aWxzLm1lc3NhZ2UoInVzZXIubG9naW4uc3VjY2VzcyIpKSk7CiAgICAgICAgIExvZ2luVXNlciBsb2dpblVzZXIgPSAoTG9naW5Vc2VyKSBhdXRoZW50aWNhdGlvbi5nZXRQcmluY2lwYWwoKTsKICAgICAgICAgcmVjb3JkTG9naW5JbmZvKGxvZ2luVXNlci5nZXRVc2VySWQoKSk7Ci0gICAgICAgIC8vIOeUn+aIkHRva2VuCisgICAgICAgIC8vIOeUn+aIkHBhc3NrZXkKKworCisKICAgICAgICAgcmV0dXJuIHRva2VuU2VydmljZS5jcmVhdGVUb2tlbihsb2dpblVzZXIpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvdG9ycmVudC8xLnRvcnJlbnQgYi90b3JyZW50LzEudG9ycmVudApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZGM2NWYyCi0tLSAvZGV2L251bGwKKysrIGIvdG9ycmVudC8xLnRvcnJlbnQKQEAgLTAsMCArMSBAQAorZDc6Y29tbWVudDIzOlRodW5kZXJIdWIgcHQgPz8/Pz8/Pz8/NDppbmZvZDY6bGVuZ3RoaTEzNTU3NmU0Om5hbWUzMDp1cGxvYWQtNjM5MjIxMTY2NTM1MzU0NzYwMS50bXAxMjpwaWVjZSBsZW5ndGhpNTI0Mjg4ZTY6cGllY2VzMjA6w3foHh2CMiCw+RLg84KY6DDvhhM3OnByaXZhdGVpMWU2OnNvdXJjZTE2OltSS1RdIHRodW5kZXIgcHRlZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3RvcnJlbnQvMi50b3JyZW50IGIvdG9ycmVudC8yLnRvcnJlbnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmE2OGUwYgotLS0gL2Rldi9udWxsCisrKyBiL3RvcnJlbnQvMi50b3JyZW50CkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3RvcnJlbnQvMy50b3JyZW50IGIvdG9ycmVudC8zLnRvcnJlbnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTVlZTMyZQotLS0gL2Rldi9udWxsCisrKyBiL3RvcnJlbnQvMy50b3JyZW50CkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3RvcnJlbnQvNC50b3JyZW50IGIvdG9ycmVudC80LnRvcnJlbnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmUzZmUxZQotLS0gL2Rldi9udWxsCisrKyBiL3RvcnJlbnQvNC50b3JyZW50CkJpbmFyeSBmaWxlcyBkaWZmZXIK